3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635342207222582848864815845602850601684273945226746767889525213852254995466672782398645659611635488623057745649803559363456817432411251507606947945109659609402522887971089314566913686722874894056010150330861792868092087476091782493858900971490967598526136554978189312978482168299894872265880485756401427047755513237964145152374623436454285844479526586782105114135473573952311342716610213596953623144295248493718711014576540359027993440374200731057853906219838744780847848968332144571386875194350643021845319104848100537061468067491927819119793995206141966342875444064374512371819217999839101591956181467514269123974894090718649423196156794520809514655022523160388193014209376213785595663893778708303906979207734672218256259966150142150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706414011097120628043903975951567715770042033786993600723055876317635942187312514712053292819182618612586732157919841484882916447060957527069572209175671167229109816909152801735067127485832228718352093539657251210835791513698820914442100675103346711031412671113699086585163983150197016515116851714376576183515565088490998985998238734552833163550764791853589322618548963213293308985706420467525907091548141654985946163718027098199430992448895757128289059232332609729971208443357326548938239119325974636673058360414281388303203824903758985243744170291327656180937734440307074692112019130203303801976211011004492932151608424448596376698389522868478312355265821314495768572624334418930396864262434107732269780280731891544110104468232527162010526522721116603966655730925471105578537634668206531098965269186205647693125705863566201855810072936065987648611791045334885034611365768675324944166803962657978771855608455296541266540853061434443185867697514566140680070023787765913440171274947042056223053899456131407112700040785473326993908145466464588079727082668306343285878569830523580893306575740679545716377525420211495576158140025012622859413021647155097925923099079654737612551765675135751782966645477917450112996148903046399471329621073404375189573596145890193897131117904297828564750320319869151402870808599048010941214722131794764777262241425485454033215718530614228813758504306332175182979866223717215916077166925474873898665494945011465406284336639379003976926567214638530673609657120918076383271664162748888007869256029022847210403172118608204190004229661711963779213375751149595015660496318629472654736425230817703675159067350235072835405670403867435136222247715891504953098444893330963408780769325993978054193414473774418426312986080998886874132604721569516239658645730216315981931951673538129741677294786724229246543668009806769282382806899640048243540370141631496589794092432378969070697794223625082216889573837986230015937764716512289357860158816175578297352334460428151262720373431465319777741603199066554187639792933441952154134189948544473456738316249934191318148092777710386387734317720754565453220777092120190516609628049092636019759882816133231666365286193266863360627356763035447762803504507772355471058595487027908143562401451718062464362679456127531813407833033625423278394497538243720583531147711992606381334677687969597030983391307710987040859133746414428227726346594704745878477872019277152807317679077071572134447306057007334924369311383504931631284042512192565179806941135280131470130478164378851852909285452011658393419656213491434159562586586557055269049652098580338507224264829397285847831630577775606888764462482468579260395352773480304802900587607582510474709164396136267604492562742042083208566119062545433721315359584506877246029016187667952406163425225771954291629919306455377991403734043287526288896399587947572917464263574552540790914513571113694109119393251910760208252026187985318877058429725916778131496990090192116971737278476847268608490033770242429165130050051683233643503895170298939223345172201381280696501178440874519601212285993716231301711444846409038906449544400619869075485160263275052983491874078668088183385102283345085048608250393021332197155184306354550076682829493041377655279397517546139539846833936383047461199665385815384205685338621867252334028308711232827892125077126294632295639898989358211674562701021835646220134967151881909730381198004973407239610368540664319395097901906996395524530054505806855019567302292191393391856803449039820595510022635353619204199474553859381023439554495977837790237421617271117236434354394782218185286240851400666044332588856986705431547069657474585503323233421073015459405165537906866273337995851156257843229882737231989875714159578111963583300594087306812160287649628674460477464915995054973742562690104903778198683593814657412680492564879855614537234786733039046883834363465537949864192705638729317487233208376011230299113679386270894387993620162951541337142489283072201269014754668476535761647737946752004907571555278196536213239264061601363581559074220202031872776052772190055614842555187925303435139844253223415762336106425063904975008656271095359194658975141310348227693062474353632569160781547818115284366795706110861533150445212747392454494542368288606134084148637767009612071512491404302725386076482363414334623518975766452164137679690314950191085759844239198629164219399490723623464684411739403265918404437805133389452574239950829659122850855582157250310712570126683024029295252201187267675622041542051618416348475651699981161410100299607838690929160302884002691041407928862150784245167090870006992821206604183718065355672525325675328612910424877618258297651579598470356222629348600341587229805349896502262917487882027342092222453398562647669149055628425039127577102840279980663658254889264880254566101729670266407655904290994568150652653053718294127033693137851786090407086671149655834343476933857817113864558736781230145876871266034891390956200993936103102916161528813843790990423174733639480457593149314052976347574811935670911013775172100803155902485309066920376719220332290943346768514221447737939375170344366199104033751117354719185504644902636551281622882446257591633303910722538374218214088350865739177150968288747826569959957449066175834413752239709683408005355984917541738188399944697486762655165827658483588453142775687900290951702835297163445621296404352311760066510124120065975585127617858382920419748442360800719304576189323492292796501987518721272675079812554709589045563579212210333466974992356302549478024901141952123828153091140790738602515227429958180724716259166854513331239480494707911915326734302824418604142636395480004480026704962482017928964766975831832713142517029692348896276684403232609275249603579964692565049368183609003238092934595889706953653494060340216654437558900456328822505452556405644824651518754711962184439658253375438856909411303150952617937800297412076651479394259029896959469955657612186561967337862362561252163208628692221032748892186543648022967807057656151446320469279068212073883778142335628236089632080682224680122482611771858963814091839036736722208883215137556003727983940041529700287830766709444745601345564172543709069793961225714298946715435784687886144458123145935719849225284716050492212424701412147805734551050080190869960330276347870810817545011930714122339086639383395294257869050764310063835198343893415961318543475464955697810382930971646514384070070736041123735998434522516105070270562352660127648483084076118301305279320542746286540360367453286510570658748822569815793678976697422057505968344086973502014102067235850200724522563265134105592401902742162484391403599895353945909440704691209140938700126456001623742880210927645793106579229552498872758461012648369998922569596881592056001016552563756785667227966198857827948488558343975187445455129656344348039664205579829368043522027709842942325330225763418070394769941597915945300697521482933665556615678736400536665641654732170439035213295435291694145990416087532018683793702348886894791510716378529023452924407736594956305100742108714261349745956151384987137570471017879573104229690666702144986374645952808243694457897723300487647652413390759204340196340391147320233807150952220106825634274716460243354400515212669324934196739770415956837535551667302739007497297363549645332888698440611964961627734495182736955882207573551766515898551909866653935494810688732068599075407923424023009259007017319603622547564789406475483466477604114632339056513433068449539790709030234604614709616968868850140834704054607429586991382966824681857103188790652870366508324319744047718556789348230894310682870272280973624809399627060747264553992539944280811373694338872940630792615959954626246297070625948455690347119729964090894180595343932512362355081349490043642785271383159125689892951964272875739469142725343669415323610045373048819855170659412173524625895487301676002988659257866285612496655235338294287854253404830833070165372285635591525347844598183134112900199920598135220511733658564078264849427644113763938669248031183644536985891754426473998822846218449008777697763127957226726555625962825427653183001340709223343657791601280931794017185985999338492354956400570995585611349802524990669842330173503580440811685526531170995708994273287092584878944364600504108922669178352587078595129834417295351953788553457374260859029081765155780390594640873506123226112009373108048548526357228257682034160504846627750450031262008007998049254853469414697751649327095049346393824322271885159740547021482897111777923761225788734771881968254629812686858170507402725502633290449762778944236216741191862694396506715157795867564823993917604260176338704549901761436412046921823707648878341968968611815581587360629386038101712158552726683008238340465647588040513808016336388742163714064354955618689641122821407533026551004241048967835285882902436709048871181909094945331442182876618103100735477054981596807720094746961343609286148494178501718077930681085469000944589952794243981392135055864221964834915126390128038320010977386806628779239718014613432445726400973742570073592100315415089367930081699805365202760072774967458400283624053460372634165542590276018348403068113818551059797056640075094260878857357960373245141467867036880988060971642584975951380693094494015154222219432913021739125383559150310033303251117491569691745027149433151558854039221640972291011290355218157628232831823425483261119128009282525619020526301639114772473314857391077758744253876117465786711694147764214411112635835538713610110232679877564102468240322648346417663698066378576813492045302240819727856471983963087815432211669122464159117767322532643356861461865452226812688726844596844241610785401676814208088502800541436131462308210259417375623899420757136275167457318918945628352570441335437585753426986994725470316566139919996826282472706413362221789239031760854289437339356188916512504244040089527198378738648058472689546243882343751788520143956005710481194988423906061369573423155907967034614914344788636041031823507365027785908975782727313050488939890099239135033732508559826558670892426124294736701939077271307068691709264625484232407485503660801360466895118400936686095463250021458529309500009071510582362672932645373821049387249966993394246855164832611341461106802674466373343753407642940266829738652209357016263846485285149036293201991996882851718395366913452224447080459239660281715655156566611135982311225062890585491450971575539002439315351909021071194573002438801766150352708626025378817975194780610137150044899172100222013350131060163915415895780371177927752259787428919179155224171895853616805947412341933984202187456492564434623925319531351033114763949119950728584306583619353693296992898379149419394060857248639688369032655643642166442576079147108699843157337496488352927693282207629472823815374099615455987982598910937171262182830258481123890119682214294576675807186538065064870261338928229949725745303328389638184394477077940228435988341003583854238973542439564755568409522484455413923941000162076936368467764130178196593799715574685419463348937484391297423914336593604100352343777065888677811394986164787471407932638587386247328896456435987746676384794665040741118256583788784548581489629612739984134427260860618724554523606431537101127468097787044640947582803487697589483282412392929605829486191966709189580898332012103184303401284951162035342801441276172858302435598300320420245120728725355811958401491809692533950757784000674655260314461670508276827722235341911026341631571474061238504258459884199076112872580591139356896014316682831763235673254170734208173322304629879928049085140947903688786878949305469557030726190095020764334933591060245450864536289354568629585313153371838682656178622736371697577418302398600659148161640494496501173213138957470620884748023653710311508984279927544268532779743113951435741722197597993596852522857452637962896126915723579866205734083757668738842664059909935050008133754324546359675048442352848747014435454195762584735642161981340734685411176688311865448937769795665172796623267148103386439137518659467300244345005449953997423723287124948347060440634716063258306498297955101095418362350303094530973358344628394763047756450150085075789495489313939448992161255255977014368589435858775263796255970816776438001254365023714127834679261019955852247172201777237004178084194239487254068015560359983905489857235467456423905858502167190313952629445543913166313453089390620467843877850542393905247313620129476918749751910114723152893267725339181466073000890277689631148109022097245207591672970078505807171863810549679731001678708506942070922329080703832634534520380278609905569001341371823683709919495164896007550493412678764367463849020639640197666855923356546391383631857456981471962108410809618846054560390384553437291414465134749407848844237721751543342603066988317683310011331086904219390310801437843341513709243530136776310849135161564226984750743032971674696406665315270353254671126675224605511995818319637637076179919192035795820075956053023462677579439363074630569010801149427141009391369138107258137813578940055995001835425118417213605572752210352680373572652792241737360575112788721819084490061780138897107708229310027976659358387589093956881485602632243937265624727760378908144588378550197028437793624078250527048758164703245812908783952324532378960298416692254896497156069811921865849267704039564812781021799132174163058105545988013004845629976511212415363745150056350701278159267142413421033015661653560247338078430286552572227530499988370153487930080626018096238151613669033411113865385109193673938352293458883225508870645075394739520439680790670868064450969865488016828743437861264538158342807530618454859037982179945996811544197425363443996029025100158882721647450068207041937615845471231834600726293395505482395571372568402322682130124767945226448209102356477527230820810635188991526928891084555711266039650343978962782500161101532351605196559042118449499077899920073294769058685778787209829013529566139788848605097860859570177312981553149516814671769597609942100361835591387778176984587581044662839988060061622984861693533738657877359833616133841338536842119789389001852956919678045544828584837011709672125353387586215823101331038776682721157269495181795897546939926421979155233857662316762754757035469941489290413018638611943919628388705436777432242768091323654494853667680000010652624854730558615989991401707698385483188750142938908995068545307651168033373222651756622075269517914422528081651716677667279303548515420402381746089232839170327542575086765511785939500279338959205766827896776445318404041855401043513483895312013263783692835808271937831265496174599705674507183320650345566440344904536275600112501843356073612227659492783937064784264567633881880756561216896050416113903906396016202215368494109260538768871483798955999911209916464644119185682770045742434340216722764455893301277815868695250694993646101756850601671453543158148010545886056455013320375864548584032402987170934809105562116715468484778039447569798042631809917564228098739987669732376957370158080682290459921236616890259627304306793165311494017647376938735140933618332161428021497633991898354848756252987524238730775595559554651963944018218409984124898262367377146722606163364329640633572810707887581640438148501884114318859882769449011932129682715888413386943468285900666408063140777577257056307294004929403024204984165654797367054855804458657202276378404668233798528271057843197535417950113472736257740802134768260450228515797957976474670228409995616015691089038458245026792659420555039587922981852648007068376504183656209455543461351341525700659748819163413595567196496540321872716026485930490397874895890661272507948282769389535217536218507962977851461884327192232238101587444505286652380225328438913752738458923844225354726530981715784478342158223270206902872323300538621634798850946954720047952311201504329322662827276321779088400878614802214753765781058197022263097174950721272484794781695729614236585957820908307332335603484653187302930266596450137183754288975579714499246540386817992138934692447419850973346267933210726868707680626399193619650440995421676278409146698569257150743157407938053239252394775574415918458215625181921552337096074833292349210345146264374498055961033079941453477845746999921285999993996122816152193148887693880222810830019860165494165426169685867883726095877456761825072759929508931805218729246108676399589161458550583972742098090978172932393010676638682404011130402470073508578287246271349463685318154696904669686939254725194139929146524238577625500474852954768147954670070503479995888676950161249722820403039954632788306959762493615101024365553522306906129493885990157346610237122354789112925476961760050479749280607212680392269110277722610254414922157650450812067717357120271802429681062037765788371669091094180744878140490755178203856539099104775941413215432844062503018027571696508209642734841469572639788425600845312140659358090412711359200419759851362547961606322887361813673732445060792441176399759746193835845749159880976674470930065463424234606342374746660804317012600520559284936959414340814685298150539471789004518357551541252235905906872648786357525419112888773717663748602766063496035367947026923229718683277173932361920077745221262475186983349515101986426988784717193966497690708252174233656627259284406204302141137199227852699846988477023238238400556555178890876613601304770984386116870523105531491625172837327286760072481729876375698163354150746088386636406934704372066886512756882661497307886570156850169186474885416791545965072342877306998537139043002665307839877638503238182155355973235306860430106757608389086270498418885951380910304235957824951439885901131858358406674723702971497850841458530857813391562707603563907639473114554958322669457024941398316343323789759556808568362972538679132750555425244919435891284050452269538121791319145135009938463117740179715122837854601160359554028644059024964669307077690554810288502080858008781157738171917417760173307385547580060560143377432990127286772530431825197579167929699650414607066457125888346979796429316229655201687973000356463045793088403274807718115553309098870255052076804630346086581653948769519600440848206596737947316808641564565053004988161649057883115434548505266006982309315777650037807046612647060214575057932709620478256152471459189652236083966456241051955105223572397395128818164059785914279148165426328920042816091369377737222999833270820829699557377273756676155271139225880552018988762011416800546873655806334716037342917039079863965229613128017826797172898229360702880690877686605932527463784053976918480820410219447197138692560841624511239806201131845412447820501107987607171556831540788654390412108730324020106853419472304766667217498698685470767812051247367924791931508564447753798537997322344561227858432968466475133365736923872014647236794278700425032555899268843495928761240075587569464137056251400117971331662071537154360068764773186755871487839890810742953094106059694431584775397009439883949144323536685392099468796450665339857388878661476294434140104988899316005120767810358861166020296119363968213496075011164983278563531614516845769568710900299976984126326650234771672865737857908574664607722834154031144152941880478254387617707904300015669867767957609099669360755949651527363498118964130433116627747123388174060373174397054067031096767657486953587896700319258662594105105335843846560233917967492678447637084749783336555790073841914731988627135259546251816043422537299628632674968240580602964211463864368642247248872834341704415734824818333016405669596688667695634914163284264149745333499994800026699875888159350735781519588990053951208535103572613736403436753471410483601754648830040784641674521673719048310967671134434948192626811107399482506073949507350316901973185211955263563258433909982249862406703107683184466072912487475403161796994113973877658998685541703188477886759290260700432126661791922352093822787888098863359911608192353555704646349113208591897961327913197564909760001399623444553501434642686046449586247690943470482932941404111465409239883444351591332010773944111840741076849810663472410482393582740194493566516108846312567852977697346843030614624180358529331597345830384554103370109167677637427621021370135485445092630719011473184857492331816720721372793556795284439254815609137281284063330393735624200160456645574145881660521666087387480472433912129558777639069690370788285277538940524607584962315743691711317613478388271941686066257210368513215664780014767523103935786068961112599602818393095487090590738613519145918195102973278755710497290114871718971800469616977700179139196137914171627070189584692143436967629274591099400600849835684252019155937037010110497473394938778859894174330317853487076032219829705797511914405109942358830345463534923498268836240433272674155403016195056806541809394099820206099941402168909007082133072308966211977553066591881411915778362729274615618571037217247100952142369648308641025928874579993223749551912219519034244523075351338068568073544649951272031744871954039761073080602699062580760202927314552520780799141842906388443734996814582733720726639176702011830046481900024130835088465841521489912761065137415394356572113903285749187690944137020905170314877734616528798482353382972601361109845148418238081205409961252745808810994869722161285248974255555160763716750548961730168096138038119143611439921063800508321409876045993093248510251682944672606661381517457125597549535802399831469822036133808284993567055755247129027453977621404931820146580080215665360677655087838043041343105918046068008345911366408348874080057412725867047922583191274157390809143831384564241509408491339180968402511639919368532255573389669537490266209232613188558915808324555719484538756287861288590041060060737465014026278240273469625282171749415823317492396835301361786536737606421667781377399510065895288774276626368418306801908046098498094697636673356622829151323527888061577682781595886691802389403330764419124034120223163685778603572769415417788264352381319050280870185750470463129333537572853866058889045831114507739429352019943219711716422350056440429798920815943071670198574692738486538334361457946341759225738985880016980147574205429958012429581054565108310462972829375841611625325625165724980784920998979906200359365099347215829651741357984910471116607915874369865412223483418877229294463351786538567319625598520260729476740726167671455736498121056777168934849176607717052771876011999081441130586455779105256843048114402619384023224709392498029335507318458903553971330884461741079591625117148648744686112476054286734367090466784686702740918810142497111496578177242793470702166882956108777944050484375284433751088282647719785400065097040330218625561473321177711744133502816088403517814525419643203095760186946490886815452856213469883554445602495566684366029221951248309106053772019802183101032704178386654471812603971906884623708575180800353270471856594994761242481109992886791589690495639476246084240659309486215076903149870206735338483495508363660178487710608098042692471324100094640143736032656451845667924566695510015022983307984960799498824970617236744936122622296179081431141466094123415935930958540791390872083227335495720807571651718765994498569379562387555161757543809178052802946420044721539628074636021132942559160025707356281263873310600589106524570802447493754318414940148211999627645310680066311838237616396631809314446712986155275982014514102756006892975024630401735148919457636078935285550531733141645705049964438909363084387448478396168405184527328840323452024705685164657164771393237755172947951261323982296023945485797545865174587877133181387529598094121742273003522965080891777050682592488223221549380483714547816472139768209633205083056479204820859204754998573203888763916019952409189389455767687497308569559580106595265030362661597506622250840674288982659075106375635699682115109496697445805472886936310203678232501823237084597901115484720876182124778132663304120762165873129708112307581598212486398072124078688781145016558251361789030708608701989758898074566439551574153631931919810705753366337380382721527988493503974800158905194208797113080512339332219034662499171691509485414018710603546037946433790058909577211808044657439628061867178610171567409676620802957665770512912099079443046328929473061595104309022214393718495606340561893425130572682914657832933405246350289291754708725648426003496296116541382300773133272983050016025672401418515204189070115428857992081219844931569990591820118197335001261877280368124819958770702075324063612593134385955425477819611429351635612234966615226147353996740515849986035529533292457523888101362023476246690558164389678630976273655047243486430712184943734853006063876445662721866617012381277156213797461498613287441177145524447089971445228856629424402301847912054784985745216346964489738920624019435183100882834802492490854030778638751659113028739587870981007727182718745290139728366148421428717055317965430765045343246005363614726181809699769334862640774351999286863238350887566835950972655748154319401955768504372480010204137498318722596773871549583997184449072791419658459300839426370208756353982169620553248032122674989114026785285996734052420310917978999057188219493913207534317079800237365909853755202389116434671855829068537118979526262344924833924963424497146568465912489185566295893299090352392333336474352037077010108438800329075983421701855422838616172104176030116459187805393674474720599850235828918336929223373239994804371084196594731626548257480994825099918330069765693671596893644933488647442135008407006608835972350395323401795825570360169369909886711321097988970705172807558551912699306730992507040702455685077867906947661262980822516331363995211709845280926303759224267425755998928927837047444521893632034894155210445972618838003006776179313813991620580627016510244588692476492468919246121253102757313908404700071435613623169923716948481325542009145304103713545329662063921054798243921251725401323149027405858920632175894943454890684639931375709103463327141531622328055229729795380188016285907357295541627886764982741861642187898857410716490691918511628152854867941736389066538857642291583425006736124538491606741373401735727799563410433268835695078149313780073623541800706191802673285511919426760912210359874692411728374931261633950012395992405084543756985079570462226646190001035004901830341535458428337643781119885563187777925372011667185395418359844383052037628194407615941068207169703022851522505731260930468984234331527321313612165828080752126315477306044237747535059522871744026663891488171730864361113890694202790881431194487994171540421034121908470940802540239329429454938786402305129271190975135360009219711054120966831115163287054230284700731206580326264171161659576132723515666625366727189985341998952368848309993027574199164638414270779887088742292770538912271724863220288984251252872178260305009945108247835729056919885554678860794628053712270424665431921452817607414824038278358297193010178883456741678113989547504483393146896307633966572267270433932167454218245570625247972199786685427989779923395790575818906225254735822052364248507834071101449804787266919901864388229323053823185597328697809222535295910173414073348847610055640182423921926950620831838145469839236646136398910121021770959767049083050818547041946643713122996923588953849301363565761861060622287055994233716310212784574464639897381885667462608794820186474876727272220626764653380998019668836809941590757768526398651462533363124505364026105696055131838131742611844201890888531963569869627950367384243130113317533053298020166888174813429886815855778103432317530647849832106297184251843855344276201282345707169885305183261796411785796088881503296022907056144762209150947390359466469162353968092013945781758910889319921122600739281491694816152738427362642980982340632002440244958944561291670495082358124873917996486411334803247577752197089327722623494860150466526814398770516153170266969297049283162855042128981467061953319702695072143782304768752802873541261663917082459251700107141808548006369232594620190022780874098597719218051585321473926532515590354102092846659252999143537918253145452905984158176370589279069098969111643811878094353715213322614436253144901274547726957393934815469163116249288735747188240715039950094467319543161938554852076657388251396391635767231510055560372633948672082078086537349424401157996675073607111593513319591971209489647175530245313647709420946356969822266737752099451684506436238242118535348879893956731878066061078854400055082765703055874485418057788917192078814233511386629296671796434687600770479995378833878703487180218424373421122739402557176908196030920182401884270570460926225641783752652633583242406612533115294234579655695025068100183109004112453790153329661569705223792103257069370510908307894799990049993953221536227484766036136776979785673865846709366795885837887956259464648913766521995882869338018360119323685785585581955560421562508836502033220245137621582046181067051953306530606065010548871672453779428313388716313955969058320834168984760656071183471362181232462272588419902861420872849568796393254642853430753011052857138296437099903569488852851904029560473461311382638788975517885604249987483163828040468486189381895905420398898726506976202019955484126500053944282039301274816381585303964399254702016727593285743666616441109625663373054092195196751483287348089574777752783442210910731113518280460363471981856555729571447476825528578633493428584231187494400032296906977583159038580393535213588600796003420975473922967333106493956018122378128545843176055617338611267347807458506760630482294096530411183066710818930311088717281675195796753471885372293096161432040063813224658411111577583585811350185690478153689381377184728147519983505047812977185990847076219746058874232569958288925350419379582606162118423687685114183160683158679946016520577405294230536017803133572632670547903384012573059123396018801378254219270947673371919872873852480574212489211834708766296672072723256505651293331260595057777275424712416483128329820723617505746738701282095755443059683955556868611883971355220844528526400812520276655576774959696266126045652456840861392382657685833846984997787267065551918544686984694784957346226062942196245570853712727765230989554501930377321666491825781546772920052126671434632096378918523232150189761260343736840671941930377468809992968775824410478781232662531818459604538535438391144967753128642609252115376732588667226040425234910870269580996475958057946639734190640100363619040420331135793365424263035614570090112448008900208014780566037101541223288914657223931450760716706435568274377439657890679726874384730763464516775621030986040927170909512808630902973850445271828927496892121066700816485833955377359191369501531620189088874842107987068991148046692706509407620465027725286507289053285485614331608126930056937854178610969692025388650345771831766868859236814884752764984688219497397297077371871884004143231276365048145311228509900207424092558592529261030210673681543470152523487863516439762358604191941296976904052648323470099111542426012734380220893310966863678986949779940012601642276092608234930411806438291383473546797253992623387915829984864592717340592256207491053085315371829116816372193951887009577881815868504645076993439409874335144316263303172477474868979182092394808331439708406730840795893581089665647758599055637695252326536144247802308268118310377358870892406130313364773710116282146146616794040905186152603600925219472188909181073358719641421444786548995285823439470500798303885388608310357193060027711945580219119428999227223534587075662469261776631788551443502182870266856106650035310502163182060176092179846849368631612937279518730789726373537171502563787335797718081848784588665043358243770041477104149349274384575871071597315594394264125702709651251081155482479394035976811881172824721582501094960966253933953809221955919181885526780621499231727631632183398969380756168559117529984501320671293924041445938623988093812404521914848316462101473891825101090967738690664041589736104764365000680771056567184862814963711188321924456639458144914861655004956769826903089111856879869294705135248160917432430153836847072928989828460222373014526556798986277679680914697983782687643115988321090437156112997665215396354644208691975673700057387649784376862876817924974694384274652563163230055513041742273416464551278127845777724575203865437542828256714128858345444351325620544642410110379554641905811686230596447695870540721419852121067343324107567675758184569906930460475227701670056845439692340417110898889934163505851578873534308155208117720718803791040469830695786854739376564336319797868036718730796939242363214484503547763156702553900654231179201534649779290662415083288583952905426376876689688050333172278001858850697362324038947004718976193473443084374437599250341788079722358591342458131440498477017323616947197657153531977549971627856631190469126091825912498903676541769799036237552865263757337635269693443544004730671988689019681474287677908669796885225016369498567302175231325292653758964151714795595387842784998664563028788319620998304945198743963690706827626574858104391122326187940599415540632701319898957037611053236062986748037791537675115830432084987209202809297526498125691634250005229088726469252846661046653921714820801305022980526378364269597337070539227891535105688839381132497570713310295044303467159894487868471164383280506925077662745001220035262037094660234146489983902525888301486781621967751945831677187627572005054397944124599007711520515461993050983869825428464072555409274031325716326407929341833421470904125425335232480219322770753555467958716383587501815933871742360615511710131235256334858203651461418700492057043720182617331947157008675785393360786227395581857975872587441025420771054753612940474601000940954449596628814869159038990718659805636171376922272907641977551777201042764969496110562205925024202177042696221549587264539892276976603105249808557594716310758701332088614632664125911486338812202844406941694882615295776253250198703598706743804698219420563812558334364219492322759372212890564209430823525440841108645453694049692714940033197828613181861888111184082578659287574263844500599442295685864604810330153889114994869354360302218109434667640000223625505736312946262960961987605642599639461386923308371962659547392346241345977957485246478379807956931986508159776753505539189911513352522987361127791827485420086895396583594219633315028695611920122988898870060799927954111882690230789131076036176347794894320321027733594169086500719328040171638406449878717537567811853213284082165711075495282949749362146082155832056872321855740651610962748743750980922302116099826330339154694946444910045152809250897450748967603240907689836529406579201983152654106581368237919840906457124689484702093577611931399802468134052003947819498662026240089021501661638135383815150377350229660746279529103840686855690701575166241929872444827194293310048548244545807188976330032325258215812803274679620028147624318286221710543528983482082734516801861317195933247110746622285087106661177034653528395776259977446721857158161264111432717943478859908928084866949141390977167369002777585026866465405659503948678411107901161040085727445629384254941675946054871172359464291058509099502149587931121961359083158826206823321561530868337308381732793281969838750870834838804638847844188400318471269745437093732983624028751979208023218787448828728437273780178270080587824107493575148899789117397461293203510814327032514090304874622629423443275712600866425083331876886507564292716055252895449215376517514921963671810494353178583834538652556566406572513635750643532365089367904317025978781771903148679638408288102094614900797151377170990619549696400708676671023300486726314755105372317571143223174114116806228642063889062101923552235467116621374996932693217370431059872250394565749246169782609702533594750209138366737728944386964000281103440260847128990007468077648440887113413525033678773167977093727786821661178653442317322646378476978751443320953400016506921305464768909850502030150448808342618452087305309731894929164253229336124315143065782640702838984098416029503092418971209716016492656134134334222988279099217860426798124572853458013382609958771781131021673402565627440072968340661984806766158050216918337236803990279316064204368120799003162644491461902194582296909921227885539487835383056468648816555622943156731282743908264506116289428035016613366978240517701552196265227254558507386405852998303791803504328767038092521679075712040612375963276856748450791511473134400018325703449209097124358094479004624943134550289006806487042935340374360326258205357901183956490893543451013429696175452495739606214902887289327925206965353863964432253883275224996059869747598823299162635459733244451637553343774929289905811757863555556269374269109471170021654117182197505198317871371060510637955585889055688528879890847509157646390746936198815078146852621332524738376511929901561091897779220087057933964638274906806987691681974923656242260871541761004306089043779766785196618914041449252704808819714988015420577870065215940092897776013307568479669929554336561398477380603943688958876460549838714789684828053847017308711177611596635050399793438693391197898871091565417091330826076474063057114110988393880954814378284745288383680794188843426662220704387228874139478010177213922819119923654055163958934742639538248296090369002883593277458550608013179884071624465639979482757836501955142215513392819782269842786383916797150912624105487257009240700454884856929504481107380879965474815689139353809434745569721289198271770207666136024895814681191336141212587838955773571949863172108443989014239484966592517313881716026632619310653665350414730708044149391693632623737677770958503132559900957627319573086480424677012123270205337426670531424482081681303063973787366424836725398374876909806021827857862165127385635132901489035098832706172589325753639939790557291751600976154590447716922658063151110280384360173747421524760851520990161585823125715907334217365762671423904782795872815050956330928026684589376496497702329736413190609827406335310897924642421345837409011693919642504591288134034988106354008875968200544083643865166178805576089568967275315380819420773325979172784376256611843198910250074918290864751497940031607038455494653859460274524474668123146879434416109933389089926384118474252570445725174593257389895651857165759614812660203107976282541655905060424791140169579003383565748692528007430256234194982864679144763227740055294609039401775363356554719310001754300475047191448998410400158679461792416100164547165513370740739502604427695385538343975505488710997852054011751697475813449260794336895437832211724506873442319898788441285420647428097356258070669831069799352606933921356858813912148073547284632277849080870024677763036055512323866562951788537196730346347012229395816067925091532174890308408865160611190114984434123501246469280288059961342835118847154497712784733617662850621697787177438243625657117794500644777183702219991066950216567576440449979407650379999548450027106659878136038023141268369057831904607927652972776940436130230517870805465115424693952651271010529270703066730244471259739399505146284047674313637399782591845411764133279064606365841529270190302760173394748669603486949765417524293060407270050590395031485229213925755948450788679779252539317651564161971684435243697944473559642606333910551268260615957262170366985064732812667245219890605498802807828814297963366967441248059821921463395657457221022986775997467381260693670691340815594120161159601902377535255563006062479832612498812881929373434768626892192397778339107331065882568137771723283153290825250927330478507249771394483338925520811756084529665905539409655685417060011798572938139982583192936791003918440992865756059935989100029698644609747147184701015312837626311467742091455740418159088000649432378558393085308283054760767995243573916312218860575496738322431956506554608528812019023636447127037486344217272578795034284863129449163184753475314350413920961087960577309872013524840750576371992536504709085825139368634638633680428917671076021111598288755399401200760139470336617937153963061398636554922137415979051190835882900976566473007338793146789131814651093167615758213514248604422924453041131606527009743300884990346754055186406773426035834096086055337473627609356588531097609942383473822220872924644976845605795625167655740884103217313456277358560523582363895320385340248422733716391239732159954408284216666360232965456947035771848734420342277066538373875061692127680157661810954200977083636043611105924091178895403380214265239489296864398089261146354145715351943428507213534530183158756282757338982688985235577992957276452293915674775666760510878876484534936360682780505646228135988858792599409464460417052044700463151379754317371877560398159626475014109066588661621800382669899619655805872086397211769952194667898570117983324406018115756580742841829106151939176300591943144346051540477105700543390001824531177337189558576036071828605063564799790041397618089553636696031621931132502238517916720551806592635180362512145759262383693482226658955769946604919381124866090997981285718234940066155521961122072030922776462009993152442735894887105766238946938894464950939603304543408421024624010487233287500817491798755438793873814398942380117627008371960530943839400637561164585609431295175977139353960743227924892212670458081833137641658182695621058728924477400359470092686626596514220506300785920024882918608397437323538490839643261470005324235406470420894992102504047267810590836440074663800208701266642094571817029467522785400745085523777208905816839184465928294170182882330149715542352359117748186285929676050482038643431087795628929254056389466219482687110428281638939757117577869154301650586029652174595819888786804081103284327398671986213062055598552660364050462821523061545944744899088390819997387474529698107762014871340001225355222466954093152131153379157980269795557105085074738747507580687653764457825244326380461430428892359348529610582693821034980004052484070844035611678171705128133788057056434506161193304244407982603779511985486945591520519600930412710072778493015550388953603382619293437970818743209499141595933963681106275572952780042548630600545238391510689989135788200194117865356821491185282078521301255185184937115034221595422445119002073935396274002081104655302079328672547405436527175958935007163360763216147258154076420530200453401835723382926619153083540951202263291650544261236191970516138393573266937601569144299449437448568097756963031295887191611292946818849363386473927476012269641588489009657170861605981472044674286642087653347998582220906198021732116142304194777549907387385679411898246609130916917722742072333676350326783405863019301932429963972044451792881228544782119535308989101253429755247276357302262813820918074397486714535907786335301608215599113141442050914472935350222308171936635093468658586563148555758624478186201087118897606529698992693281787055764351433820601410773292610634315253371822433852635202177354407152818981376987551575745469397271504884697936195004777209705617939138289898453274262272886471088832701737232588182446584362495805925603381052156062061557132991560848920643403033952622634514542836786982880742514225674518061841495646861116354049718976821542277224794740335715274368194098920501136534001238467142965518673441537416150425632567134302476551252192180357801692403266995417460875924092070046693403965101781348578356944407604702325407555577647284507518268904182939661133101601311190773986324627782190236506603740416067249624901374332172464540974129955705291424382080760983648234659738866913499197840131080155813439791948528304367390124820824448141280954437738983200598649091595053228579145768849625786658859991798675205545580990045564611787552493701245532171701942828846174027366499784755082942280202329012216301023097721515694464279098021908266898688342630716092079140851976952355534886577434252775311972474308730436195113961190800302558783876442060850447306312992778889427291897271698905759252446796601897074829609491906487646937027507738664323919190422542902353189233772931667360869962280325571853089192844038050710300647768478632431910002239297852553723755662136447400967605394398382357646069924652600890906241059042154539279044115295803453345002562441010063595300395988644661695956263518780606885137234627079973272331346939714562855426154676506324656766202792452085813477176085216913409465203076733918411475041401689241213198268815686645614853802875393311602322925556189410429953356400957864953409351152664540244187759493169305604486864208627572011723195264050230997745676478384889734643172159806267876718380052476968840849891850861490034324034767426862459523958903585821350064509981782446360873177543788596776729195261112138591947254514003011805034378752776644027626189410175768726804281766238606804778852428874302591452470739505465251353394595987896197789110418902929438185672050709646062635417329446495766126519534957018600154126239622864138977967333290705673769621564981845068422636903678495559700260798679962610190393312637685569687670292953711625280055431007864087289392257145124811357786276649024251619902774710903359333093049483805978566288447874414698414990671237647895822632949046798120899848571635710878311918486302545016209298058292083348136384054217200561219893536693713367333924644161252231969434712064173754912163570085736943973059797097197266666422674311177621764030686813103518991122713397240368870009968629225464650063852886203938005047782769128356033725482557939129852515068299691077542576474883253414121328006267170940090982235296579579978030182824284902214707481111240186076134151503875698309186527806588966823625239378452726345304204188025084423631903833183845505223679923577529291069250432614469501098610888999146585518818735825281643025209392852580779697376208456374821144339881627100317031513344023095263519295886806908213558536801610002137408511544849126858412686958991741491338205784928006982551957402018181056412972508360703568510553317878408290000415525118657794539633175385320921497205266078312602819611648580986845875251299974040927976831766399146553861089375879522149717317281315179329044311218158710235187407572221001237687219447472093493123241070650806185623725267325407333248757544829675734500193219021991199607979893733836732425761039389853492787774739805080800155447640610535222023254094435677187945654304067358964910176107759483645408234861302547184764851895758366743997915085128580206078205544629917232020282229148869593997299742974711553718589242384938558585954074381048826246487880533042714630119415898963287926783273224561038521970111304665871005000832851773117764897352309266612345888731028835156264460236719966445547276083101187883891511493409393447500730258558147561908813987523578123313422798665035227253671712307568610450045489703600795698276263923441071465848957802414081584052295369374997106655948944592462866199635563506526234053394391421112718106910522900246574236041300936918892558657846684612156795542566054160050712766417660568742742003295771606434486062012398216982717231978268166282499387149954491373020518436690767235774000539326626227603236597517189259018011042903842741855078948874388327030632832799630072006980122443651163940869222207453202446241211558043545420642151215850568961573564143130688834431852808539759277344336553841883403035178229462537020157821573732655231857635540989540332363823192198921711774494694036782961859208034038675758341115188241774391450773663840718804893582568685420116450313576333555094403192367203486510105610498727264721319865434354504091318595131451812764373104389725070049819870521762724940652146199592321423144397765467083517147493679861865527917158240806510637995001842959387991583501715807598837849622573985121298103263793762183224565942366853767991131401080431397323354490908249104991433258432988210339846981417157560108297065830652113470768036806953229719905999044512090872757762253510409023928887794246304832803191327104954785991801969678353214644411892606315266181674431935508170818754770508026540252941092182648582138575266881555841131985600221351588872103656960875150631875330029421186822218937755460272272912905042922597877106678738400006167721546384412923711935218284998243509208918016855727981564218581911974909857305703326676464607287574305653726027689823732597450844796495456480307715981539558277791393736017174229960273531027687194494449179397851446315973144353518504914139415573293820485421235081739125497498193087143966151329420459193801062314217741991840601803479498876910515579055548069538785400664533759818628464199052204528033062636956264909108276271159038569950512465299960628554438383303276385998007929228466595035512112452840875162290602620118577753137479493620554964010730013488531507354873539056029089335264007132747326219603117734339436733857591245081493357369116645412817881714540230547506671365182582848980995121391939956332413365567770980030819102720409971486874181346670060940510214626902804491596465453301077546954130887141653125448130611924078211886900560277818242350226961893443525476335735364856193632544177566139817039306328721669057222597452091929172621998444096461582694563802395028371216864465617852355651641277128269186886155727162014749340522769465957121983149433816221140069363074304441732847861017777438379770372317952554341072234455125555899986461838767649039724611679590181000350989286412041951635511087632042676129798265294258829511412758412627327907988075597518515768412647422094797218433093529726652100156625145529947451276315509176367302594621329301904028379542463232585503010967069227202270748634190054383026506812141421350571541750575086399076739463351462090828889349383764393992569006040673114220933121959362029829723511632593867722414779116295727807523950562515816031333593823115005186268905306583681299881086632632719806112715488587980934879129137074982305759290918629391950147211975860672700925477180257503377307993971345395326461952699965963856549175904583335857991020127132045839032008538788816336376851820837278851311752277696097879621423721625452145912818317982160441113116714069148271709810154577819392023115638719508050246797257924976057726259133285597263712112019057207714091486450740949267180358151575715140503976109638467555692989703835473141002238025834687673501297754132795320609711545064842121859364909979177668747744818828706323155158650328981642282882327468661065927321979071623846421534898524762167890502609980452664839295423572873439776804957740914495383915755654854590589764951985138010079580107837599457752991967005476022525520344539887125387801719607181640781248478472579124078245443616823452395706895142722697504318736332630111030534233358216093331912188066082683414289104151732472160533558499932245487307788229052523242348615315209769384610425828497149634753418375620030149157032796853018686315724884015266398356895636346574353217834931998255421173084677452970858395076164582296303244243282377374505170285606980678895217681981567107816334052667595394249262807569683261074953233905362230908070814559198373553777487420290390181429373115293346444681512129450975965343062842153194457271186149000176505581770953024688752632501197052094761594167687277844720001927891372518416228577837922844390843011811214963664246590336341945406571835447719124466212593926566203068885200555991212353637182269225317814587925937504414489339816086579008761650246351970458288954817937566810464746141051424988702521399368705093723054477341126413548928068410591077166778212383328102621855877513127211793444482014404257450830639447383637939062830089733062413806145894142276947479316657176231824721683506780764875734204915576282175839729751344789906965895325489403356156131674032764724692125057591162515296545685446334981143176702572956618447754874693784642337372389819206620485118943788682248072793520225017965453437572741639107919729529508129429222053477173041844779156739917384183117103625243957161527146690058147000026330104526435478659032907332054683388720787354447626479252976901709120078741837367350877133769776834963442524199499513883150748775374338494582597655609965559543180409201784971846854973706962120885243770138537576814166327224126344239821529416453780004925072627651507890850712659970367087266927643083772296859851691223050374627443108529343052730788652839773352460174635277032059381791253969156210636376258829375713738407544064689647831007045806134467312715911946084359358259877828352665311510650416232953290477721740835593497237585521380483050900096466760883015406128243087406455944318534137552201663058121110334531207450868243394321590435944303124312274713858420303901060709403152355561727679941600203939750998976293353258555756248089966918298642226775023601932579747267425782111197347094023574572222712125268523842958742735015636600931880454933389897415714905441825597380808715652814301026704602843168192303925352977957658624143927015497408792731310516361191375770089295648233236482982630246079758757677453771601024908046243018565241617566556001608591215345562676021926899828553778725831451440826545834844094784631787773747946535801699607794055687011923286080411309046293508718271259346687127666948738998245985277864995691654640294589350649643358098247659651651420909867552038083092032304873427034682887516040715466538346196112230137594515792526967436425319273900360386082364507626988274976187235754767628899507521148048525279508450339585708381304769378813211236742813194879502280663201700224603319896719706491637411758548518784840120548446725888514015627250198217190669608126277854859648183696214107217142149863619187747545096503089570994709343378569816744658282679119406119560378453978558392407612763441057667510243075598145527861678159496570625597550743065210853015979080733437360794328667578905334836695554868039134337201564988342208933999716414797469386969054800891930671380571715058573071488156499207140867582596028760564597824237702424698053280566327870419267684671162668794634869504645074202193739452592626686135529406247813612062026364981999994984051438682852589563422643287076632993048917234007254717641886853513723326678779217383475414800228033929973579361524127558295692768372312347989894462743304545667900620324205163962825884430854383072014956721064605332385372031432421126074244858450945804940818209276391400085404220235562602185643489941454399504109805918179488826280520664410863190016885681551692294862030107388971810077092905904807490924271410189335428184299959881696609938369616443815288772140852680887574882932587358099056707558170179491619061140019085537448827262009366856044755965574764856740081773817033073803054769736097865438593821872205839023444435088674998665060406458743460053318274362961778625180818931443632512051070946908135864405192295129324500788333987884293393424351263433652043858129128343452973086529097833006712617981303167943855357262969987403595704584522308563900989131794759487521263970783759448611394519602867512105616389760088800927461158608002078033415914517970730368351969777660763737853330120241201120469886092093390853657732223924124490515327809509558664594776344822699860748132973026309750288121035177231244650953496536930900186377640940943498373132513218620802148099226855029484546618147155574447096695301776904342720318927706047177845279391604722815343798035396798614243709566832214914654380145938292773933960327540480095522318166673803571839327570771420467238386246178039762923771312095807893638414479298025880655221292620936239306373134966401866195108115834711733120258058667276399927635790780638188130691563662741254312595899361196476261014055635033995231403231138196562363271989618372548453337020625634642239527669435683767613687119629218187545760816170530315907288287007123136663087227549186613957737305460659974378109876498024140112421427736680827513909593134041558262667895108467761186659576601659981780894149857549762843878561002637965431783136340251358141611519020964991335487331311150227006819301359295959716401971960536250335584799809634887180391116128135959685654788683258564378961731597620024196215528962979048198221994622694871374624447290934564700285376949588595916067892824910544125159963007813683674902093749157328962700286568293444313423473512392982591667395034259958689706972673325827359031212887466604514614878503461428277659916080903986525757172630818334944418201935333850712923457743755793440621787113300631060033240539916936826037461766385657588775802012293663532702671006812618251729146082025418928859352444910701382062115538277935652969145765020486432828655579347072096348073726921411868954673227677513356901901537236690368653891612916888878764075254934942497334271811788927599315967193547589880979245252623636590363200708544407845447973482918020820449266706344204375553250505275228337788870408040335319234076856301093477721256390886404131010738178533383160381352808281190408325644018420537467929926220376987180180611226244909092426419858208617511771137890516091403815750033664241560952163281971223350231674226005679412814062172196418427057843289598028823350598282081966662490358577899403331522748177769528436816300885317696947836905806710648280835980466988410981351586549069333195223943632879239905348109878302745001720654336990661177845543646877236318444647680691428280045510746866453928053994091087549391660957316197150331669683099294663491427987808422572206971488755806374803088629951184731871247772919100702275888934869394562895158029653721504096031077612898312635899648934102470360366450586872875890514068412381242473863854279082827338279733268855049358743031602747490631295723497426112215174171531336186224109138695006888358989623492763173164783400774608866555987333821138299287769114954921841920877716060684728746736818861675072210172611038306717878566948129487850489430630861699487987031605158841082823512741535385133658953329486294944950618685147791058046960390693726626703865129052011378108586161888869479576074135855345851517680519733344334952301203957707396237713160302428872005373209982530089776189731298178819446717311606472314762484575519287327828251271824468078242152164695678192940982389262849437602488522790036202193866964822156280936053731780408637272684266964219299468192149087017075333610947913818040632873875938482695355830773957614479972700034728801827852813895032179863452161110666088393140532269449054555278678944175792024400214507801920998044613825478058580484424164047750315360549065914300781583724301231375115622840158386442708907182848167575271238467824595343344496220100960710513706084618011875431207254913349942476171156333214089346091565615506003173842187015702261031019166038870646614388977363187809407115275281746895764015810470169652475577408916445686777171585005832699434016772021567677240681283665652641229824394651331973591997094032759385026695574702318132032437164205861410336065245369391600506449530601612678226489424373971667176612310489750318857321655549883421218028469125290861014855278152776256237504563757694977343368460156077270355096290493924870884062810679436224187047470083688426710225583024035998416459511224852726336326451140173952480861946358407837535568856223171155209472230654370926067973510005655493812245754837285457117973936157561676416928958052572975223385586113883221711073622658162188424431788574887981090266537934266642169909140565364322493013348679881548866286650523469972355747384248305904236771432787923164224038777643301926001922847783138376325361210253369358126240868666997382759773656822279072158324788886423693463961643633087301398142114303060087306661648036789840913359262934023043249749268878316436026810113095707161419128306865773235326396536773903176613613159655535849993986005651559219367599777179330197446881483711032065036931928945214026509154651843099365534933371834252984336799159394174662239003895276738133306177476295749438687169784537672194935065908757119177208754771071899379608947745126547575018711948707387367858902006173733210756933022163206284320656711920969505857611739616323262177089454262146098584102378132158177276022227381334954104810030732751077999489919779638835307344434575329759142637684054422647842160631227696469671564739990437159033239065607266441164386054048388471619121090087010191307260710441141432419767968285478855247794764818029597360494397004795960402927462992035720997619501403483153809477146010563334469988208221205872815107291829712119178764248803546723169165418522567292344291871281632325969654135485895771332083399112887759172261152733790103413620856145779923987783250835507301998184590259583559892605532996737704917224549353296833000022301815172265757875240588322490858212800897479093261007625787704286560069961762121768454789964407050662417102133274867962374302291553582007801411653480656474882306150033920689837947662550365498228053296628621179306284301704924023019857199789488368971830438051821744191476604297524372516834354112170386313794114220952958857980601529387527537990309388716835720957607152219002793792927863036372687658226812419933848081660216037221547101430073775377926990695871212892880190520316012858618254944133538207848834653116326504076424283908701210151942319616522684220037112304643006734420647477180213530701240988603533991526679238711017062218658835737812109351797756044256346949997872511254408545222748109148743072598696020402759411789425812818821599523596589791811440776533543217575952555361581280011638467203193465072968079907939637149617743121194020212975731251652537680173591015573381537720019524445436200718484756634154074423286210609976132434875488474345396659813387174660930205350702719529839432714253711557666000257844230310734295515339450604862227649666876240793243531929926392537310768921353525723210808898193391686682789482811704726245019484097009757609209837240900747179733407881418251958425980962417476101382526439551352593118850456362641883003385396524359974169313228947198783084276004013680747039040972384739458348961865397905941185993103561684368692194853820557803957738813606795499000851232594425297244866667668346414021899159445653094234406506678519484177667794704720419588220432953803263105374948831221803912796784461001397267538921951191178365876625280836900532490045974109470687729123282143046353372835199536482743258331191444590178096077828835837301118575436599589827245319253105881150263075425714939430244539318701799236081666113054262539958338979429716020703387678150330102801200959972522222808014235710947603519255444349299867678178910455590630159538097618759203589373419789623589311259839025983102671933041892151096891562250696591198283234555030590817307351955037216658702880539921385760370353771051780212801295668419841403628727256232144287543022109094727210734741349755141907370433182766261772759968888260272252471336833534528166927795913288613817663498577289369009657495622871030243625907724122190943008717556926257580657099120166596224360802428700245473620363948412559548817272724736534677836472019183039987176270375157246499222894679323226936191776416146187956139566995677830682903165896994307673335082349907906241002025061340573443006957454746821756904416515406365846804636926212742110753990421887161276177870142588648257752238891845995233762923779155857445494773612955259522265786364621183775984737003479714082069941455807190802135907322692331008317595106590191212947954086036407573587502058902087045796700070552625058114206639074592152733094068236494415908910092202966805233252661989113118420162916310768940847235643668081821686572196882683584027855007828040434537101836510969517823357430305048526537380735310741859177056103973950626403554422751561011072617793706347238049906669221619711942591204450846417463835899382399465173955090008594799901360266742614942900664671150671754221770387745076735637421547829059110126191575558702389570014051178226469899449179083017954758767601680941001358376135785913569244556477644641786671153919513576961048649224900834467154863830544779143300976804868783481846727337584368927243104474068076852786255851650920882638132336231487333367147645204508766276149503899495048095604609896043291233583488599902945264002849942808786240398118148847673012167541611066299955536681931232874257020637383520200868636913117334697317412191536332467453256308713473027921749562270146873258678917345583799643513588009593508775563562488104938529990076751355135277924124292774885658885665132473025147102105753525165118148509027504768455182520963318990685276144351382136621523688905787866994322888160283774820355060160298940091197138501798716836337441392759736440170070147637066557035043381211135764150184518214136198234951596010647527125759351853043328755377830575095674254426847122196187091785607839361445113833356491032564057338986671781239722375193164306170138595394743678433926709867124522111896908402363274114966012434830989299417380305884171666130730400675883804321115553794406054977217059428215148861656727712409033877277456290971101348851843741186956554497457368452180669829110450580042998879538990278043835962824094218605562877884288021275538848037286400194416142574999042720095952046541705981049899675045119364711727722204361026140797508096869751766002371877483480161203102346805671126447661237476278521902412025699435347162266608936752198331118135111465038548950251206557726361454736044268594980743969323312971273771573470997139522911826534851555871373366291202427143025037632695013509116129529937858646813072264860082708813335381937036825988678933212383270532976258573827900978264605455985551318366888446282651337984916678394097613537662517982582496634587719501243840403591408492097337546424744881761840700235695801774101776969250778148933866725578985645898510568919609243988415692806969833522402256345704973122452693541938370048431833571965166267215755241934019330990183193091965829209696562476676836596470195957547393455143374137087615173236772042273856742791706982045499530959188724349395240944416789988463198455048523936629720797774528143994182567894577957125524268260899408633173715388962628896294021121088844273765686245276121303710173007851357154045330415079594477761435974378037424366469732471384104921243141389035790924160364063140381498314819052517209371039640268089948325722979545640427017577229041732347960736187878899133183058430693948259613187138164234672187308451338772190869751049428437693250249816566738162606159417682525099937416728839517440669325496534031014522253161890092353764863784828813442098700480962271712264074895719390029185733074601043607291909457679946149292904279816877294264877299528584346477753869069501489841339245403941446802636254021186143170312511175776428299146445334089209769616990983726523617687456058947049681701369749095230720826828878907301900182534258053434217059287139317379931424108526473909482845964180936141384758311361305761084623668372376959134926158245162215521348792441450417568480641206365201703863301295327776990231186480200675569056822950163549319923059142463962170253297475731140942201801993680350264956369558664259067626856873721103391567938398957655651931778830002416135395624377778408017488193730950206999008908993280883974303677365955248913001566332940779071396154645340887915103006513219344866732482759079468078798194250195826223203951312520141099605312606965554042486705499867869230217469890095478507256729787947698888310934874644264007181831603316555115342761556224054744733780492462149521332585276988473362691826491743389878247892784689188280546699823036899397834137475870258057163494135684339293960681920617733317917382085624364336353598634944968907810640196740744365836670715869245211829978938040771375012908586465789057714268335827689785547176871844277261205092664861020515356428406323684818072879407171279668200607275595559040402331787494473464547606281895415121391629184442976510669479693540168660100551960776873353965116149309375709685545593815137895690392510149532656281470119983269922000663928753747131352364215892651262040728877165783584052196460541054354436421665622445650429990102565869272791427529311720827939377513261060528812353734510683729398935808712438693859343891757133763007203197608166044646839377258069092372975234867029169104263692620901996052041210240776481903160140858635584276095370865581642739953493465463145040401995285372520049578052546562511541092524379913262627136090994029022620628367521323050651839340574501120993414649184333236465693717259144893241590062420206128857329261335968087265000456282845575745965921205303413101118275013069615098355156320043107846019065654938065425252291619918199596027523277022498557388248998827074659363557685825605180689642853768507720122203479209939361792682065901421656159253067379445689490708532635681968318617722682499114726157320358076462981162440133167378927886892290325933498617970219949819257396176730758344170985592221701718257127775344915082052784309046194608352174020058386728497094110232669539214454610662150064106747402070091899119513764669044812672536915371622907913854039375600778351533741677479421003840023089518509945487790393461222208650601605003517762648316111533255877050735412792499098593734737870811942530551214369797499149518605359204038302357163527276308746932196221900642608861836761033460022554774778136410126919065696864950126883762969072339612762872230411418136100602640440300359969889199458273976241146137448040596970625767647237660655416185746905272292382282751867991569833907476711461030227766060200612468764777288190967916133540198814027579921741676787992316039635694928515136336472195406111717673873725557285229400543617851765023075446938693078734991103521825329297260445532107978877114498988709115112372506042387537348412570860640690520584521227545338480082053024504565176695185769132000428167580549248117805198326460324457928297301291053183856368212062155312886685649565126138922613670640939533345705269869596923503530942245438652786776730275404027022463844835532399147513634410440500923303612714960813554905315390210022995957565837053812619656831442860579566966221547216956208700137277685369608407048333251327931122325071486302069512453950037357233468070946564830892098015348787056334910923660575540508641115214414814346304372732710450277686619531078583233348578402971609252153260925589326556006721243594642550659967717703884453961816328796144608177892721718369088801267782074301064225246348074543004764928855534090621851536543554741254761527697726677697727770583158014121856880117050283652755432148034880044429799980621579045641619572127845089284898064264974270905791290692178072987694779751124473059914060506299468942809310342164166299356148281309988707452927160484336308184041264696379258430941854422163590845761460785585624738149314270782662151855416038702068769804617474008083243436653823545551094494984310934947599446726736653525176627067721941831919771963780157021699336750837600571634546436717767233875886434056448715669643210412825956453498413884128904206820470076155969168430389993483667935425492103281133631847225923055543830582069416756299920133731754891220372303490726810685344540359935618235763128377676406310131253352121419946118693508331765878520471123643312267651299641713252175135532618676819423387903654689080018271352835848884441117612341011799187092365071848578562210211040097769944531217950224795780695065329659403839873699072407976790408267940076187295478359634927939045769736616434053597922192858705749574816966940623342726197335181366260637359825755524965098072601236682836059283418558480269584137725589708837899429105498003311138846034019391661221866960584915714857335682861495000190975911252188003964197621635593757437180114805594422987304181968080856472657135476128316292004498803154021055305970766663627493283089168809323592900817874119857383171926167288349184024297212904349655269427264025596414635259143484006758676903503823205729341329815935330444464968294413673234421583807616948312193331198190610961429522015361702985751055943264614685054526849757648078080092213358113781977492717685450755383287688744745915937311624706010912446098294248412875202244625944776387494919978404468292573609685345498432665368628444893657041118177938064416165312236002149187687694673984075171763075168498563592014868929431059402024579696229245666448819675762943495353263821716133957577907663707645695702597388004384158058943361371065518599876007549241872117148892952217377211460811543449826654798725800566747240511220073834592715757277152185899469481179406444663994323700442911407472181802248258377360173466853007449855647154200361235933973129144585915228874087195087086322188372882628228846318437172619033057771476515641438223067918473860391476831081413582757558536435977216500282778037134228696887873497950960311088991961433866640684506974207877002805093672033872326296378560386532164323488155575570184690890746478791224363755566686780676105449550172607911429308312857612544819444494732448190937953690082063846316782250648095318104065702543276043857035059228189198780658654121842992172737209551032422510797180778330426090867942734289557355592527238055114404380012390416877164451802264916816419274011064516224311017000566911217331894234005479596846698042980173625704067332821299621536848814041021944634246462207455756439604529853130714090846084996537678037932018991408658146621753193376659701143306086250098295669176388460567629729314649114937046244693519840395344491351411936679333019366176636525551491749823079870722808608596261126605042892969665356525166888855721122768027727437089173896397722575648905334010388559311256799915165890250164869614272070059160561661597024519890518329692789355503039346812197615821839804839605625230914626384473862960398489243861872985077759287927220685548072104978176532862101874767668972488411395603494803767270363169210073508340738652616845074824964485974281349364803724261167042668708319250409976153190768557703274217850100064419841242073964001396036015838105659284136845741191027364202741637234882145241013477165296031284086584197879511165115298278146203791398550063999603265912485253084936903131301007999771913622308660110999291428712493885416120380204113401888872196934779044975274542880728035093058287544207551348166609278793535665212556201399882496284787262144323628536765025914504683776352825876521391564809721419296755493843755826002531685363567313792624758780494459441834291727569883762262618463654527434976624111384513054814498363117897844897320767195087841586188796929558197332506999514026015116755297505754378102422389579257865621284327312022007167305740692868693639301867659582513264991459502609170693475194089753574640168308117988464524736189560564794263580705625632811892696630264795359510971276591362331808669215357886078127599105371714022045061860753748663063505914839164676567232057145168861707909846959322367249467375830996070425892204815507991327520885837811176852142693347869218952406226579210436203488529262679840139532164587911515790504605797108389833718640380244175113472264725470107947939969535546696197267632552299146549334996632341859514503609803440922122067125676987234279407088570704742931733291885238967219713539244924261786411886377909628144869178694681775917171506691114800207594320120619696377951032270890295660855622254526026104607361313688690092817210681986185537809820184711541636303262656992834241550236009780464171085255376127289053350455061356841437758544296779770146602943876872251153638011917581540281208182556064854107879335989210644272448986189616294134180012951306836386092941000831366733721530083526962357371753307386533382048421903081864491840937239440334052449095545580164064607615810103017674884750176619086929460987692016912021816882910408707095609514704169211470274133900522533408348128703530310239196999785974139085936054335996970756044601342424536824960987725813110247327985620721265724990034682938868723048955622532044636026398542252584164643242716114198178024825955635449072192265838636626637508359443148776351561457107455280161596770484427141944351832756984075526779264112617652506159652354571879566731709133193587616282559207830801852068901515047133403861003100559148178521103847545429333891884441205179439699701941126951195265649195941899754183932346474242907027188752235343936736336632003072327470374071239825620246626519740901997624520561985576257600087081730832883443818310700545144935458854226785785519153722923795554943334101744201696000906964156127322977702212179518683763590822551288164700219923488640439591530184640047143211863606225270115411222838027785389110984902013427410141215597699654388771974853764311582298385331230717511329619045590079380642766958190148426279912217929479873489018684716765038273285520590829845298062592503521284519259279865935061329619467962523739725655841578537445675589980324054921869628884903325608514553443916602262577755129162007727968526293879375304541810807292858919897153817973434961872329276147478501926114504132748732429705834084711123337462746172746265824153242710593225062553023147387592517247873228814914559156050363345754242337791603749525024930223514819613811625639114156103268449580725082734317659440540982697652693445798634797097431244982719331138638731596363612186234972614095560799206283169994200720548115253533939460768500199098865538614334957816500899616490796781429011483876456821749140756237676184537751440314754112067601607264605568592577993220703373333989163695043466906948284366299800374145276277165476238255461708831898108688068478537055364804693509588180253605297407935386765111950793732820831462689600710751755206144337841145499501364324463281933463890509365457145069008644834401804283633905135781572739733345372842633721740657757710798305175557210367959769018899584941301959995730179012401939086813565855396619413717944876320798688003716073032205474235722668968018821234243918859841689722776521940324932273147936692340048489760590379580946960417542796137825537812239476461478329269765451622902817011004378460387565441517394339600489153188175766505009516974024156447712936566142539493688842305174001299205568542898538979426699567770270891465137368922061044154816621568042198384767308717875902792091759006952734566820265133731115180001814341209626016586298210766635233617740078377834237091526440630540718078433580610729611055500204151316963730468492133568372654003075098290893646120478911147530370498939528334578240828173864413227100029683119402033234564208264732762338302946393789983758365545599193408662350909679611340048670271231765266637107787251118603540375544874186935197336566217723592293967764632515620234875701137957120962377234313702120310049651521119760131764194082034373485128526029133349151250831198028501778557107253731491392157091051309650598859999315608636554774035518981667335358800482146650997414337611827777233519107412175728415925808725913150746060256349037772633739144613770380213183474473011130326702969173350477016321066162278300272692833655840117914194478087482533607144032962522857750098085996090409363126356213281620714534061042241120830100085872642521122624801426475194261843258533867538740547434910727100497542811594660171361225904401589916002298278017960351940800465135347526987776095278399843680869089891978396935321799801391354425527179102253970108106321430485113782914985113819691430434975001899806816444121232733283071928243624067331965546926778511931527751134464689055042481133614349846048490512583456832664415284897139723760403282126602535166939140820499473204860216277597917712347510975024030789357599377150950217516935558270725339118923340702238320775858021371747783787783910152341320984894234596136923404979982793041444631627072147961174569757196812392919137409829258055619552074342432959828989805292333664154192563673806894942014712413405250722040617943552525552250087487900865683145428351677505422948032747830440564385815919526667582829297052261276287110401348017872248017896840524079243605827424674430767216452703134513541676496689012747868010102951338626986497482121186290403376915685762406992963724930972016287072001898354236903641492702369619385473724803298550451120891928798298744678641291594175316756025334353106267452545071141814832398806072971402347255207134907983989823552687239509093656678789923837125789762487559904432288953883773173489411227570714109597900479193010467407504114353817824646307959895556389918847737813413470702467473621120489862269918885174562517325193413520381158633501239130544419100736284475675141610504109735058527620444891909789019843154852805339857778443139338839943104444656692445508859463140817512203313906815965925105468580131338381521764182104334297888261196304431113887962587460902261309008499754303957712432306169062629194039214397402708947776637024881554993224588259790206312574369109463932528062416424768684954553249380176393716156368478598237159023854212658406153672286071317026747401311452610637653833903159219434698176053583803106128878520515469336392410884676320095670897183674905781630851581381619668822220475704375906143380407258538620835651769984267745231958241826836982701602374149383634966293515768540613973427464708996856181701605511048809715548591186171896680259735417054239851355600187203350790609464212711439931960465274240508822253597734815191354385712532585404939460108657937980586201433660788252197178090258173708709164604527279771535099103407364250203863867182205228796944583876529479510486607173902293274554267856697768659399234168341222746630150621553205026553414609952493560508549217565491348309589065361756938176374736441833789742297007035452066631709296075919896277324230902523974438610142630986877339138825186843165010279649114977375828889134503411488659486702154921010843280807834280894172980089832975369406449699031253998639195816014689952208806622854084148642747862819755466292788146216071713818801808405720847158689068369193933818642784545379567192723979723646516675920110579956639625985355127635587681402134098290162968734298507924718460568748283313812591619624761569028759010727331032991406238646083333786382579263023915900035576090324772813388873391780969666014696150317542267511259933155296742133363002229649064809345820081810618021002276645804002782133367585730190113717546727630590443531313190360924890972464279284555499134900051802957070829190525567818899138996251386623193800536113462242946102489540724048571232566288889317221164329478161905548680549434410340906807160880282279596869501336438142682521704728708630101373011552368614169083756757476372397631857570381094433905645644685241830281481079983769185121272019350440418046047216269394457883770901059746932197205581140787759897720720096893822493032368305158626572811146379969831375179376232151112523497343052406221052442343537329056551634066695061658928782187077567941760807129737813351871179316500331555238224877306534441794534153952024244497034101208740721881093882681675120422994049481794494727328947701115741394412284555218284249222406587526891722727806071167540469730080370396187877966948825556146743843925701158295466613586786718976612973112672000729715536130275035561678177654422874421147298816148027052438068176535732755786025058470840132088379328160087690813004924914736825170353822196190390149995234953871059973511434782923394991879366086923013755963685323738067035911442432685615121094042595826393016780171286692392832310576588517140202111969570647998140315056330451415644146231637638099044028162569175764891425697141635984393174332702378123369380430128926263753826677950341693343236075002481757418087503884750949394548962097404854426356371649959499209808842947903636662975260032438563529458447289445471662092974954966168774141208821304770228161164560440072363515811497297392189667373826472047226422212420165601502849713063327958143025160136948255670147809357908896571349261581613469018069650895563101212184918058479227206918716963163300448580201028606578585912699746376617414639341595695395542033146280265189511679380745733157598460861737026878676029436777805002446733913324316698803540732323882818475010516413311895370364884226902704780527424906034920829547550540034571601840725745369381455311753542107265578356154998744474804273234578800618731493415660463529797794550753593047956872093167245365472083816858556060438019770307642460834898761013457093948770029461757920619525492557571090385251714885252656710453498134198033906415298763436954202560802776144219143189213939088345431317696851018401038444723489488695209819435319065065553546173358140455448378847525262539496658699920584176527801253410338964698186424300341467913806190280596078548880107897055169462152287730901044674624979799926271209516847795684825833414022664772108433624375937416105367340419547389641978954253350363018614009515347669614762556518738232924685473569358028960115367917873035531593783630822486151777705415775765617593585120166929431111388635821596676188303261041646517148469793854226216871614001223782137797741312689772667129920259220174087700769562834739322010881593562862819285635718933849588506038531581797606794798408783609759601497334205727046035217906056476032855692762734951822032361441125841824262477120120357763888959743182328278713146080535335744942976217967890345681698895535185044783256163807094769516990862471000197488092050095219436323787197648703392238115403634754886268459561597551937654101150140670012269274743938885899438597302454148010612359080362745852884935632515853843832424932526660875889083187007091002373771065769850564339288543376583425967506537150053335144899082938877373520514593330496265314151413861244379358850709446880454869753581702129084907873478068143663233228194158273456713564431715379678180581958524648400840329099819437817181773023170039897330504953873561162610239994332597801268934326055847102787649010709234438846340117355568659035852449193701810416262085042992586974358170981338940459344719374938776242324098528327622666049423851297094532455862521036008292866497241749191419889661295580767709795947953060131191590117739431042090490794244488685130868444937059090260061206494257447103535476578592427081304106185462198818300906345881870387558562749115873754210646679513464875867715438380185213482819158124625993351601989355951679689328522058247994210345127158771633452229954188396804488355297533612868372259353900792016669413390911687588039888288692160023732573615882071635162713328105181876021048521806755266486739089009071951380586267351243122156916379022773287054108420378415256832887180469879525130732663402785190594173389203585403956770356113293544825856282876106106982297214209619935093313121711878910787668720445488760894101747986471378824621539559333332755620094395804345379197822805903959599274369137937786649409640487778417483364326840262829324062600819080818043909145563519368560630450891422896452199877988493474777291327972660276584016678901364905087411421268619698620441269652829810870454798615595453380212011556469799767857389201862435993267776894540605082188382279098336271671244900267611784982643770330020818445900097172352043319947082420987715144497510170556430295428218196700092025156158441742059336581481349026931115170938722600264586305613256057925609273322655793462808056834439213736884056504343073965740610177793701414246154930707413608054421002956000956635889778992676305177187819437067614982175641865901161608654086353915130392013168057690341725964536923508064174465623515239290504094799531840748621512105618338545661766526063937136588025216662235761322019417013726649660732520107719479312652827633024138051649071745659648537483546691945235803153019691604809946068149040378198297323609300871357607986214254220964190043679054790499300783724215819545354183711293686584305538427176280352791288211293083515756565999447417884383815651484342298587042455924346932952328218035083337262837918302165918361815542171574484657784201343299825945668845582661719790121808494803324487872581837748055222681510113717453684178702802744524429054745182346749195641885512444213377835214238659799259882032870851093383868299065719946149062902574276860388505110326385445404191849588665385450405713236296810691468148478696591668618427567984600418687622980555629630459532279230516167215919686758495236352989357885077460815373214546429847923105116763577494946229525694976603594739624309953433104049942096778838270027144784940690370732491064441516960532565605867787574174721108274357743151940607579835636291433263978122189462874477981198072256467146640548501310096567863148800903037493388753641831651349825466946733161181233648543976493250261795493572043054021829748712511074040116114058999110930624923128131163405492625713567218186289327861388337180285350565035919527414008695109261675414767926680321092374670872136062783329223864136195941213392780361182763241060047409711110481400036233427145144833346416754663546997314947566434236594934968458845515241507563766050866328274247941360628760412906449138285194564026431532258586240431418386695906332450630003922131926476259626915109044576953014440546180378575030366862124622786397527466678701210033929848733750144756003221006223580293437749550320370127384681630610265703008722754629667968808905871276763610662257223522297392064430935243272281008599730951325286306011054979156447918450046180467624089289256809129305929606423570210615246462050232489665939873249339673769520239917608984745718435319366465291258480644801965201628387951894993367592414856261369959453072872545324632915291101287637706055706095313775277518679232921349552451330898679691651290738413021675732386375758200803635757280027544903279530799007994425411087256931880146679355958346764328688769666100973957499678365933978463469599489506104903836474095046952260638580467580730699122904740898791668721171475276447116044019527181695082897335371485309289370463844208932997711258568408466083399340456890267875160087754612679880154658565220612109534907967073655397025761994313766399606060611064069593308281718764260435734253617569437848484952501082664883951597004905983808121052211110919433239511360514464598342107990580820937164645231277040231600721385437234612672609978703856570919985075956346132484601884098501942876879022687345565005191215465440638292538512763176639220509383452043007730170299403626154340013227639109129883278639204123004455516840548898090807791746360924393349126411642400938807463566072623366958427645836982687348158819610585718357674620096505260659292635482914990457683072108932458570737016607173981944850288426039636607460311847862258310565808708703055675958613417007454029656876347741764310517510367328692455585820823720386017817394051751304379948688223200443780431031709210342616749980000730160948145863744887785222730763304953839443453827706087607635420984450083062476302535727810327834617669705442871553153400164970766571959850417481990872014908756860377835919947193433527729472855379257876848323011018593658007172911869676176550537750302930338307064489128114120255061508964110076238245744886551825810581403453201247547232690875475070785776597325428444593530449920700145387489482265564422236963655441942254413382122254774975354946248276805333369832841561386923634433585538684711114304982483989918031654586382893537991305352228334301379533729540162576232280811384994918761441413229337671065634925288145282395062090223578766846501166600973827536604054469416534222390521083145858470355293522199282727605748212660652913855303455497445514703449394868634294596584310241907859236802245607639367841662705185551787029040735573046206396924533077957822459497104201880430001838814290081730394505073427870131244668600927785818110409115117293748736278878749074652855654347488868310641100510230208751077689187815256227352515503795324448577872776170019648537035551676552091193393437628662846198440262952521836785223674751088097815070989784130862458815226609635514018744958369269177990471207264949057372642860052114035812310760066995185361248627467563758962252991164960668765082617341784847893372950567390078786179253514406210453662506404637288156982323175005962610809219552111508593029556549675388626129723399146283584760486276270273097392020014322487075823373549152460856082103288829741839064788699232736913600488374366152235170584377055452108155133612621429118156153017588825735948925071088792621286413924433093837973338678061317952373152667738208580247014335270092438032669517421195076708843263464427491275589077468635821621660427413151702124585860562336314931646469139465624974717419583542186077487110573384584336899396459137406033821593522435947516262391886853078228217639832373061802042465604775279431047961897242995330297924974816840528937910449470045908649918727273454135081019838818646736093925719305119686456018557824502182310658894379865224320506773799661969554724405859224179530068204517953700434724517628935667705084902131077366257516973355274623029430312035962609534235743972496592110106578178261087453188748031874308235736991951563409571627009924449297491054898515196586647401482251063353679497371425102293418825851173719944991150975837461301055050641977215319293548753711916302620303285886585284801935092258757755974252765840117213423236480840271433563675420463751825525249443296570438613878659019657388028684018940876728167141370336617326501205786539157807030887142615190750014925761129276751930967284539711602136063030905422439663206743235827978893323244057791992784846333397777376559018705748068286783479656241461028995084873996929707504327530299728722973279344429886464127253481606037797072982991730292963086958019963124133049393504933254123550710544611825911411164545347103298810478440677801380771314654000993863064812666143308582068113958383191695455582594268957698414288937434670841079463189325391069639557807060212459748982935646135607889834724199794785643620420946134123876131988653523583129968622689486084084566556068769545012744866314050547353517468730098063227804689122468214608067276277084024022661554850240089528916571176174390203375848778429112896232470591918746910420058483261406773337510271956539946971625172483122306339193287079838007484857265161234349332733566644733585564302352808839243482787608861649432893991663992104883078477770480457284914563033532650700295889062659154985094079727675671297950100982294762289618915914415200322838787734851309790810191292672271037788980539641563623641691549857684083984688616843754070651210390625061281076637990479088796747780697384731704752534421563903872012388063236880370179493089549007763315230635483742568166533616066419800301882871237674818983302468363714883092592833759022789425880600872860388591688497306939480205112217663591382515242786700944069423551202015683777788518246700256517085092496237477268136942843500629388144299879053010562173754591826799732177350293689280652100253962688074980926434580116557158867004435039765053234782873273688408635400027406767838219635222265392909398073673913640828987220177767471681181958561337215831190546829360832369761134502817578302029348459829250008956826302712632958662921476531422333517930933879513570953463771836840924444220963193312956203055755173400679737406141621079236334238056468500920371671526425563718538895714164197723874226105966673969971731681694154350952831935564177056686222152179911513556397071433128936575538446483262012064243380169558626985610224606460693307938478588143674070005997697036490192733288261353293631124036506986521606389872502672380874033967443978302582968942568967418643361349794752455262914265228424192430833881035800537870239995421721136865502753413622116931406946695131869281025747959856051450050217159133177516099578655519818861932112821107094422872404424811534060558959583558152320121846058205635926993034788511320686266275887714460359966561084307256965005630644891875994665967728471715395736121081808415472731426617489331341746326623542220726001460127012069346395205644455432916629866607830890681187900908152950636267820756143888157813511346953663038784120923469428687308393204323338727754968052103028215443247233888452153437272501285897476914608083144041258681815400491877722878698018534545370065266556491709154295227567092222174741120627206566229898060328916720687436549482461086973672255474048128892424718543236057534116728507575520571311566979545848873987422281358879858407831350605482905514827852948911219053831956242287194847594078593980479010941940706717644390327307121358873850499936388382055016834027774960702768448802819122206368886368110435695293006521955282615269912716372773884189932871305634646882273982887631986457098363089177864870866761854856800476725526754147428510281458074031529921978145577568436811101853174981670164266478840902626828244482580275320945499151045185177165463118049045679857132575281179136562781581112888165622858760308759749638494352756766121689592614850307853620452745077529506310124803418045840594329260798544356200937080918215239203717906781219922804960697382387433126267303067959439609549571895772179155973005886936468455766760924509060882022122357192545367151918348725874239194108904441159599327600445065562064611646556654875942473692523369559930303550958176261762318495619064948396730020377638743693439998294302091470736189479326927624451865602395590537051289781634554233201149759948962784243274837880327014186769526211809750064051497558896502930048676052080104915378854139094245316917199876289412772211294645682948602814931815602496778879498137772162293594378110044480607976724292762495107841534464291508427645200020427694706980417758322090970202916573472515829046309103590378429775726517208772447409522671663060054697163879431711968734846887381866567512792985750163634113146275304990191356468238043299706957701507893377286580357127909137674208056554936246464126002437968454377733902647251281941632007684873625176406596754069362175887930785591647877727473927200291034294956244766130820072925073452917076422662104767303786316995423745511745652202278332409680352466766319086101120674585628731741351116229207886513294124481547162818207987716834634132236223411778823102765982510935889235916205510876329808799316517252893800123781743489683215159056249334737020683223210011863739577056747386710217321237522432524162635803437625360680866916357159455152781780392177432282343663377281118639051189307590166665074295275838400854463541931719053136365972490515840910658220181473479902235906713814690511605192230126948231611341743994471483304086248426913950233671341242512386402665725813094396762193965540738652422989787978219863791829970955792474732030323911641044590690797786231551834959303530592378981751589145765040802510947912342175848284188195013854616568030175503558005494489488487135160537559340234574897951660244233832140603009593710558845705251570426628460035440282367876855098267816176552037579565548167789603892749835560879154117774942357340076416109329400389998219926725708695732606877497422480202330752518765025596842076069322998858757989889646074438178817008154889522651672283404527721910699141576463948523112679473086580319507645519767562895742888179681209002638714525785831527761510908863174024369568056787301523542780479341426649522383370711751126537550394237209878466804913947344653071407962259728713050307725871487557050258257346686661380235142605611619740554343654869800544487929597028759035225840978268359866644658604569424139072909526624993290297344056816068380572662605727708840707347149606006456145407073443278251408747427550672230484535700609221439000299298160821171704791761450519100813267037521493074056785331110605835291278100739174994919784511291591368110739405517520801963053935074024850955377250036705466516233043042508744232426240463211507899733692998540704165626104197670020241509489241185609240963760442961200236459070644977062720791901923596480704892363697986019828308728422856475235316288279132429552481444750552190967204608068954518171220493032185374062724742151974030576904360268636078079200477623242955182947352202724437633902772139208776706571624163975178585925442692342853527432885633685078965196207251941655606187037055021846284543425785038300009537451829295844046491883868579348396115129716058166574509670367749583666669312188176367964494361713041603724305065848513174926405585519401800518090847521186822461697614924323831948643441590855801107307031120150224341607315792952875293683582039700338911211417068521936658978945950315438958901530382714300192958907414994359289408309707707836287591448403704503861896697581120185231923186865996803858381237032915620757883594878094168820553160512819015264759280757495815456422134145937816705699286829989561198235383715788048047870458417539466549769017322031089007030336291176730844845037214566964440146954517385743415781015861878383927855260939913057025557555906094705149809348777332007279757303824598946680968082222134848587382299928179409082566520958165547247524456674369759447468637633242890426977610679193391098330042231029372829879890320939109268283630617361017387812367989864514931170243712828588263048629888449220741564060714705913740552466575697187021735528724543942771480917936443765063786186132434863579741125852086345992780368879249835436329845768765016506511534500869572123950754478568317363155715352704652423525973751340882546160966144074667551422683603195980107215246355106917187133573168548563128085783443562367095965094994696882066118511808603420282133180124941099150260143545001743273079362511307029825049941799428445114647932915459955590958780762163666859179106543596606525352532027365072598912125568684280207724648772201099663182955955290339331228436486447597356085984076094729838954243393262315323991898185226418083129633354635687482886346561850481063228880559673784456200094146560349928087940511531005758712955257196411150685034077371060438037125957559698594936205847751202635494734753474818926225419035267161442928489985753674069216527163008606065437373682355658862648634368915321809557220445677713736831045807558452961283283260631962972852796667436297480082131862792186904428434263073576070399966943078950814726973025381737569492275179535432615691204059483286094999236641228788122641914850485632807206641855705952037503032291689448942757830609091085241060140068327420558396977382315073499610875876370425556496408685507194225634496673243065625925047458176273328181601701969816654242637876360145303594653845032547667499973734083566513818602515652028363738917101654541488267444800910570418616262683797112088614135727961109908829297022969212818097879895139150427093678644498319642013456683390877594300644248562301212461451169792193963440950808322928129427043659914648274998437594211302041829730841717881309037955854560324717081919530277146579455547554475428443440813938890860977601785738930751866190650501807716500184074432585402418436050111824299070232341724367452536534959479906333454075437181269939983371921848541873597984534893459226851506818266249007802933501265882497422624188535252663670282766249934982948874833106176420842901692305289960897860413006510902817980504058710767117904113021748279668235300196022025318557678984331758680637835996879160153892222023657576558158661140919939486159920915991755334178303334764313163501270539069707932656781241590643428472136023521823674121473312449994433415591527431593168747788253315509277033620290122259779480985539220006452716228085539827890658423344755282127651765057266326769114107503484587189699643487577513847914818363510062146681858509634888708145697672202016799119946241777668890791713686594596072646853881077878300216136827669702622345941873747673353799888440342704680304255169412715873932039844437460454781611305662517641275982118193966110185056288055594256606003231211618099462212930100247091334715068226843045868030090424286168202556214094608790006519109949557081581650582898334073946608445756578063669027284346201858732825292479650528668140850353851983752363745192562279549029055790703028395010485483592983454281448730435804705331508151050300152142811717539364913316617262123540552786330800208317705563029496359420165433309409417719632623411938710516157010179805355167937086029136675698609712412036858381295769530779814136570017476135696698614606849143969957383763169582460251334210807262171360194301808720988855141502416381832597525959316553186583311712685794152720661221842266141182515465748487831261034783454674925830872998544742120644509523324505087743149616655525179716802099172002640937492190756993689633028139164720896358177173555584859270652450486251641954055080134351032338981337830249770182275490638149996472333407961304146973947637265086927334710841568560843092131624043462986392084166005590459850649124350526476606760034444161818640367008377411410109432058895559865867007786367189694408962232137403411359719913313594655368544669236765258901210841377743248219181274784789228726489297003237187345615798159983483910041260105074696459943033197881063491392381249050306143340791832800406390709867259619709831126596014747372533052685371774214655400587392462372761736490519871336806772395257078136068668326139501432950947485159472466752720168431658660880751276858475554118438116901162200555211348448896066825922743131900796301158708467011765493539304656335622531124472779666900583119061610197266307397054253143981845737944948678013461821787593907699960202908396567728784690573640156401504769644899394754147460833991869688927115694234549265124664550779255402810503762203596753055860185649205606287909076945333920880884947782889485112215474323019138324556299388102061449026687601020775321091568497783074085964985796715261701003947549453991769879132354655010640735581699940975624814996744327842920276264418979391815839456270817330158216022551965989876937616401986120746675504886111085572676450705262244613022233585207227362048505728923881588493875453522918639971438088406175728622095012250651586310425888413435543197372985621775307202262947555248304444534043488887858117034134534252235431940787797284676018158322709774518092934219318981581248283265895004070485520609989378390034191416304463916388054965878650137504634169565515661829887863070584230696766025405302481147100789978421183048901046405689653970288559553092555863605215895737511408956490584415677493710585964801431587461449125054925319116465382158519737009328019453032057262845265804604633781663142993307664664653076059054896288872418971606022588261757753992205513150937720062486308556282049357575272499556708922163423398360256532873102919400704117691922085001511673567010195897100179701957812089291096941775436990436820256302405482262540190569650771058157424072149633956036527028333440730575007367456226058464988611510168961218111905847171446106871976101745658737379674069713742323875383903031720020020720592848878512391174647167374373792328388196620168762219134623389376259952702567213862211245898021213050140728890430032253550409586681872413936993819306914874471718664618311194260316166407037731648700186479960024304400324224180940227853330901150988087067826883531720076752255313800881878043169019007280483179928741412547612308960683309582837766768828757868868309297600101197453389833195258861963013291709438581661537417179449631917715431250695985348128568461937766989427745917091880252001274990555940728969659479333167224362156789677696670803522903901848573080627567086765862710476940920356559302535274341896592700222704923318682999156093641375700498853730459639615273462939697495174806269645179301871998678853758141597579931480660855723256837430528276417567005028804048942989958094810353483393414492788592526219241554723199714338508663732092663272824351493364070458968385234562474436117525676698776759722343920635750747155291810276261401299248042288399029787992541851749912963028399072963558857989059331779590876907390564602562353356722155225946883829845288292296627513716242217295467867071584092418408414755758253938524096330205134970474069539956789798172786092046228683973577981511186815265988460694975896548131465115039262637774951376155724819511611987725034456471073851343592735553871246237559819381321423844158192907004638977168388720791636174143249707910965816274642971707287172514274589835689709553462682016908535610894489840710058192030217694512077177458879551951047338418473998079630676788584516757572990430697154264238349800987086993367091210839445350624592243231234827854966037465718801489293794514787054060792457590060121962212392872001721558866634573497140953372115165598575794172441988902616701610161155783431502546032878119842402748460851072240667677876085524761777383308950261006438835055020545632434616785945194179566987496851524488384751361818066710831616556420936927052061189851729261714171443465550870630606355101294940030975916779915842604919712095432270267843265429657240327208871432199964531320258710967716512854966996255269860731176371820749882739977060199136209308323073683820645573256376598291257813149222422042797124144162995126594563979275938038380478262316042432539913285112303224703756194232173304785407857624401329171799297924078339071575798142681686465538294684739920588863165593491986789696284044734496802407709283137640810335225524271740410767356542444100448334744010172644105295478729634589864050120360802445119035099497449397361718157527709378020923666813584163626831926340671418279742134254622070541560005095967404561684045177174795279035325493258912048338574659009678173041600052108893461076875400424197780308288518120017336955912713771419501136130440975327919050489158324639914348353164868154857917863293512392555251021118278857369606027693130146966143344964230211438248370563353279385889526767207668897127443581563208810665014956814355879657690985776590276870745365927636497555344961730807816098710324801379513617036776345759497568620801399637455176242514778062872226597145548290676929571364357215267446898788941882075129222575650914355282887461419509786242752788157156640076372103780319404309584427254926998716923433189002214150311399876526068876156674021019720171960239086108297492763956954115303227546017387079562599357978530244347671639959146231793123998998692843797570249236955158729768385400522765149561444710597196288988815710941517170151811474351364385400511624620213117480079198374970010047136343252328157891135545045337190527506822915618500332846956792622620819044247334036250389279207158596003936315336884272437536679969864793474113319832861944146065392278409990314384035456504705678955202482717601187433564369024350308563130955905525039049273161331173492258464460902453507919018441129932169977045183285358648042855682220873721361649058630325636891308410376021567992702000532235543980465311933977545904404507856802139846500969342954731026924994758646605809166998416068464608729394380827430828581747969417287299031101319267557389798409136425347969494348037770336463495847686298259010347072786121862300198660798778268424593383563891957020685352160321163523006498874460020017041305698536515466875202385937518328037285114327481169968369284922044738057063349661871124094783591586962685864358914135985425357768877493274363451475448864086881803036965243175568830020586077325695971608648541583446843248996307701137134467515693024488548207712413355773230694945806726784523594363150787272815790157307003317879685443627952571902362327461426286873273800949774112285623766321490465329407202619753907174042225953924288816455979657003095714138910693684503626823105398674375324005270153474589332567951494185453780882706345729596216908538353537038141811557381637820903256151986974535764641212549807600515614170729804699481359348315056811664279321933527982271471576734018608872151879966935025270075755609971988286306428544812827513928069470275014816328972731434734852852950460488327167397898156367880478044360210900732072736974934463049973144257156043313369038761810094887312071348271081588985748326585420751007795311832686170803707093592761493678253085834048235100363216637895742620255035011686154340737950451648289675569835893552202017367954807578190950269798127114870343119036311224612829530382051287043092947197459469082102563478899543177152437969621128122450342606639926885213307919637027778044885792057304699080092344018663811325209712309647605998994792575985100817303960682221997532730160658262852758257669507854726034938298133582528178670608512656002268871781125359782933734779141273628418865617592083287944741096970387985473698402545806329483502235939354358748022398976091629625011047393116944910066690723063469313016971182063253526924404384009372428442820970936485690946892008737175325255703054353982872781230113980809386701547488580344563187131960267854879389331620500767526411204439023758334272429869965478636853410284885737025472550236566341868091903838867078790720840361940216467012153483797815183282647257862881520710108149955898033811896156944175676134071704653851217090212377788433364965187211990540758187739439752836414395304424591390317881300418879188711455314826746998705558793104024038888408385068734162507165727418513495208496367095554245043948394804597915622828248378793415272036226336956180555637107681488889361927574265993582355943153088793305276755874751236506584396947560429719200231986802435171993786810036110231256836425607959741057415362829718004649774857371837863903703901539737491165468549971645394161121641761071714540176519056505252066227788312904571969320599024137539598386198260320549583950167555250964413711822256149601400302303540789920969867750786720003807426797053030716793229601564862280851840335235017060858951291222324611783025316362894394607365277133651163164644619909902122492241231516899276785586373631552600250348848781323300191018939961670273141699962651194574263676196500243473717272902846220979839487106598227000995491887769618850543265321180221944428222842515255614118743401804194614139451471287252759239125596443735683397289633126767823491035633296129471910151571431157954909339032614119186547523762472153110207936911584874220582274734320173558507712243796985796549158062795027409771688611480761631516185530685669245717176922044366843312739893379411162972245169998546856221570241759471176995291655021168550010898576193463945590882627077531146577522388463435193765397349848024549760760244030808448901068387869726123709783578245166801171485983679405529046198262165669172027426285482393396001825459940925430816969103297841123402288560019054934275022318529471282960969397681373419770427812130014732867760571940596997927551246171843495698564171287248118346542064231871455182415286763056751311626771773506175112454633879942652912701057899567180572143655791835069177793070407573290439749499582241062381051491765023850418273009662017175094059080540895728375540635515221996582075735131570759236153986394592111558640009880975526105383825689927215847850417460651615113378833609760121148487005560165812492470682568442720454728963094203066504452986462235942260085549915891499536064984280345794927570094979594506023787750194706246323949549578230822830668408188025210766390742309737209162853371768062164469354323179178553058331714208479886303408465726426939557002685760575393478885870946005827232305191081175142349126873365859607998917329289158960018150918163374008060354752000515117510290122992487096154592802620607616982721810291673155489294237408519674330791660784990557821019357136624359908836138598085161564174769460547855400819535306708030896976304529468682332105328782374389441156851762717116363094014799096494563545929501307390036268210073263700823561506912696431833517162543903046989893142615442635951136346605737865495124457475262167895470362890483048499680403772251343193737344123661858694458806401858407314763379294038634043591941987235526301565460805186867606804316084512845916042441326987912538560299159967278766195195053176488313469325736689464438255813910848620966374267457983130122234387258312442203309457145754147047929387585823899773851521352372389559664312235643262628601147489086817159281066872708400820337718692153523526926347226809082598988984002620815217828261122931311820866007099686036540981832680755824776706950410997586143624355216194535302920025466736799648504337313349520821075119925892663899564756985870790185612379157886437446903787150950011255021003884531192365296559946190047484662064234794232967006052900370917557818870819352214687142723527763255989808694872111384598001412384216382782441273654244674883338167971620112886191415401936712909478990264666443156098372961501968624228250672306166720943546571425149308642488778598682759588749065077260250951829536765181182368616944724360783764294762469226319498921964644068316928766161506050813846319415116202577907863071801231159458603896562526554223346234454507394788690268159497513116885143694521021688319044616862976332522986385181885004928693572764766823855564636554496400631764828557578586661022855156485990882095868944436254698679523822686115969910056366082926791533753816066112247869531326158531871763885989377929188902998793879810003697307848959270625410484859315854323395683104239029907026344379787569185543408976440760130844481978626507947644083013494243583428188591525929347143631753374958970107287350127078898048163504567666769320755305184043244610074032167647183608370847506512693070766084982529900031785030585368213951273503863824605642510337775580986464339801718620814266307417259222600051109134268107467012901430165410106493321228379082751500100353001565459750832377296543969738204774162657106574082164996062622749618795334790706598897487177956433406484174564574790692517014949981009535341354890875483632757952240720698629102467170357925144176670388660990698572626058124082533622521899200041897574576531512300006444571593170177168863548333305192158205594611735771632113223393196532038619900511617817133400107057665268991970816920221946470432379535641186606392055860903445706415179778214505472227885298721019785884607004742002846887379584422894997433365627187799172113791616449254132971565287952953263975953853592095013863338050756136953089954758488302426196275898594151378051580502576754040178579585244883117210508927708922727343197382388468730716823024878868858551010807352278140537140652075810727084816726397709873145516264691142328610303693298433030032367616271426406758780673188397151500279816337477907877503830798675940459107392103458740421961703492580818990720596129158642020288573400911495523886510791137149533463976398818394880453007507474037228093682053543049495194833283347007516197900868728543996298157560589163762472306916287111113767608648032375245966493041175394613646433780467116505550467067183622128579504806716563042762671142999911348769844705037063790018109688862972175795173243380278061747049630204249291661917188624335559928209324391944571188632155632016165424705537593869662465633412154101403228699093015913288580883124124288287637387274283803859071029274863335150309044532805259779565892055456243429798279413489175638240077161217332473642854016061004433764145722078592171559140103783202013213383309638077890409572381055882939279637438166068683519505927701951536160172215890428785678482068291944169871819286273082704441630396254713053284388337913374768735826122116258360272896162455904189677024745382758396652299371235163048983301242141745578859159425605979242772181990855627984860561745368447892379690797559455515464685316302446232567403489584546225674485820204245739199425309426422450420268903815015268360241255980759752364816280930489127461511962315461140082205639678065853540766868822754265038122599916207601708955674744652423445201766165032594566591296678632462137991922296145867142248249288064768032108647799410041006003390679275237362546027742960073478803835668752200348245769490845686269605771570191917489226063520812973879744383548328613693956245039297680578322340217167655591776684037572348440946176293128849268993687138983882227106027903799001904558336007973927741092665573923314702590923389065438842235132411538801855923495613993022391964505045036935292701156630515335191864186482344249991927202729534595990630487236080415957600296681211168317236603811054280359144572024825645610571405546242082134352094810841715828957244507206354681600230512014084805435874252617101768185388355755871741542477544977222141926131552526910917556333193232224321852542218272914915981058368970250352281300214119248601424806807975369964777193949068046835528083473276103060494097330916903167830979346366118327845318687164626807388336567045660104237685058013950744364796392228411269794513477300492498786496563679490992913271252897765191817542796280608493237552081536111324033971316550439188796019838213858500077324246177884918758145964264233788979333081948816004011312652563569324465939840063689031525472292399141447437706963389357619260391892479363178008310261141954854360515778716004955788656579706658855104288246636305720777890226677704251268157197953322510763890368197628440286102588053923393294746720240885412764923864476021611626208242129916603622991849237822363009834781195229138218473263422857591209798054782852505918379833680178741124264474600225624149806914007409797210232785395756151283458061654111179267104279905793944971349463289504565128688478418717580205045832838748531373691135102550620102775345809439105001021833973245650472889476879298925945019875076712236379187586472012149660611512804870964886305622844083936944387216921208492008515583812510707419551872080937469424597311728117210519289038963703942357768621276682109318276366498404212493814409795986311422543648396549998347908430702176438555435125743682822815303222238083476795111355701480631820045322072379489186357214910624252699399467101536684623410515333814268477062758520352409920797208699145373010955164150331762820019691641154602682072366925527514184299699205398534330730680573723805041671972211273740507892726634063885068673445856077326664838457802771891147580132310551987841336521851907146068138986886710314759826461129379543952667286727599483359025974458786876849646268348443441413591771458776608807784535718393293719373932364083563375766884682111179935055410208556188490102016005056395416874510822060355541081766646052412496622442280454524321603203601946413560979200195902404979292367329892455399010198011214029086869992057589177718807414612220502472858571536753074781438973057178726836636015761361007722863196388526462351255380773194595635679653823624999265518043307963596211067455285214290262949826567553352731004687886573104724664933265679273313451229550591862329373933260860774513507753090157444382948733977960532284935830136183795862648032129736847481751647691366211036036950910666650517171150827820093278835872259839404630683763181180890442362621998812368268078579526219721668720174551747262781803268305854880397097704793483103543985590784355277667603313988460527150313885633246768892710459585193289513916782385773577265810047982563935519352005520408002870596782497393747886052835649359149783803779649600052124458347790017560424658666519980770288394385163809550430492196032443609034008517466042962743097683871519459826447359402342482110447572911177795877313415536095275957089861258677145625239945007593802060935502489200847673322930857422225502064556902391265436635785242724290560532057540308210145123820902174669757976534751725014658374788480805377351504222240429576036137543248619965589193922050469998210629316096756517907513229607778575533102658584257608668676453552092774827556754517716995087894118059363052499449670123759800655349987396663953944170170596981015127193331184076792327185395398097640485278467438723164329100290654953086128333026640075801296184992070220025559721569575883761687843643467927558635739722535648841330601192895746428093578580811323314331152874821797660397125795289003640719892332813161164041693773662801325973822223742681891764895964227033803905929596496964821331144731667650419767811084909664694257170694570078712640144865224284694889761725674653522050616210730010192624831468212035516995015220073163840041320303332423121670826854689317584366304307843507859281044784926639526523987186441733800856816923213474297545832694021612533328379009606486277854941266795136740458774169455961407626566250299006922672678760365871379327960418488393933934692635434154809518362332331752293703521029146413312752037117166754872063473892329378510729029514462927415467619479427471669160304978292889614745870264997970792063872408250230064255449959040119741085351678444090188064629374835443961440035352331030404117845722890295818058103212374382589870274737040106837777159251264535706508300921479258349892475127453622006105854575997369313529707814374284134055195444672148941505745283917160371545308252555834320251254241662445752456296445791076971715214709518505500355054390631688258105785074635656204791466768055698438455202770996971988980723371486956356703177687763789743273492829343905145567060744607970476931646278121417138182743785614621970880870210642110573778514713588373773882407652804519142713748811055974471831009393751976598021002410125112308136826033847449108771613228576602639388492849598982365657272042635720263748256494949126291419171306462805956698254936032613201925280434617043902892602799314043613702658201213128514881585731117821041310335728887181729526271120008147506402683046418988769747879173173703813999188824241699421215277604518595671190941807373479331099709283155468165639527101046113762540664495861838546389822089967783295501114314995936803982223037136329574232173574464734210974149174364199473195884005263872695923183642325491845595504534377846709470450959420120211422086419127904935994521373924871107432314951138042937936554363721726348190757113531270930795272952211247953149896990808946657476955651243605611420086639905609900038030250612423607750329341347289050131677280971316268349596340929224303119508487886710353352002371273020291659297525265703921042149634952385708560572343462157695698513406830454833154590753647114699682420910232143117176922773853477041779407644100130104859609270721132052318538222744487024332710398781147912754608083611568779215131131045008366363100751751102590028086427715020962713662397401075288445468331618211502789264307297635576105511246203324800531059951115054314848295534329598305742724517378865271930007323217362375873273148909109455374027048118555719905168393874535206797085921189640785489504109405699659887159886336207795504521932156336124685303174705443940294182926355240155452316098682553138970188015397045962501691796648125015559323114826730056338357972603286017784741496004569725783495620587328730124514555763452302986481495441009078835298012070126541095251846066620176742045257367994690771908453787482060802904825167017661982073061833123921935356900407052154989390344659388090475077241695436518580750664904594431888629787235716030224813522046010906352145082806397492755128476943549962033991644887919743790209571888632002475020791023790730729637463263366745942755637845356913673455240148971259094803685662823210050039400731066320752572831471151926332892852069672393471750982952602125494764330195357438350925828311133911539063376617373077236302798898699857994501659237690675488379889294006051628261400481504694828140330839164342486509396354589091328059511163345503656348245191505831794980831827281347950507727173359496633718821491928378711646390356692577994245739435547304493555939684803279020861419681508260648109246885433833298663907454780526362916156279880318782827074516303278639075665336219750632242486457694597535966732006038982629300007612514947980089567124525695598275854857690124636865949422422772717715184964175107159841635720724122437196806720392706478942789421712842641334271183184794413346064724314115015509855117124146682433123520628406572269260690474791964472975283227495698196327787281625954012020538073295825004974459308097824095299129654233184987988007716816319860865120883158672565065944140618446837496318929137459934216034848228831582897309421614736892558516992715531155888876007217034102445874402084434282730046730979555566681150130033888958380231464313829002600763228503475830780878895180313981020762788985174353478225120846759497430024437895842895680752663203627696299460180834941994912706559130840005862656399639110406851041282007153246256426371456355757694528492711263557719632506589654553648212545926335525729259528149934158787765156922311915102337344071699165647639820008969846298439977593853981121332181032819896994579261764935829748373387752352859464035138238230626945363458100319367250206982807384333411752831573143426398964163471270530347756991558003118159180911378802688385475769729233988828603230299770430666288695530121027270576339598976894102499684794981684201199256134807564404065594623837087236888125489491487948734808614168105521140018455170084444842948475507327366428272220633658240174549880829130188391401568090500008495465737300032747797209917507461785951579953202237285235920400742515225638616675620318839811761861196022162847431907970250367459282804678178536647393560035403827828184576694782337457113822121932616729501042706940952026502805228985909350023944908745626205345221731194095778301953605185038549614062182530618203651827337062111989390244889753863581809944918157848783365288654365422483020278924170496896511041727594750178122678581439174864942435730090917126487716059592097445811462955422310022008512052258976477811482703942677666427827462593951174380719861872226558650403002846914692786468003183603463817264057027074226203429718755580993868712404656223338914646583055430131550952851097263005080518826527268533537293733856918269371716773031611864749481042421512791591014606569795333133774095936749326441463702427524539335030130992833648540706984034399121245249275580299798824092066446404258596620088874191649877302754037292042158109378147131362262886666945474212449552849091492193371936234029433712557556998865296623645035351920267776379424820828605689362315215231788501452131321491469868548359447068658501098131420589267641611516210940535678073681008973424587293270521085357267638056422884092966588447779527954671073519329547471301507922084032823220442894467821839654711090211734072513972475735700855531274321999675125958256806323588088388436620326226619141493474043649800024739833209241183866742960926946070141838817811071428243965779638843986478231371542498947258304114514952687242361899676305881682084632743744121039055276521871073556452571336011455804558568455865043285991767651961932711434986654077745145004730727117147957122275720181288644644077751746032824231733853376529898104423224046772463204795179809715760258008857689751340594805482687728847762938464549604027037050853941909276993706680455171941604037635118018551365754510952470346022600207417428238494817822549063659920847490375832057446779591067556606407750093471298170058187694080279926904605949872117634151914882251867043955731001793710004665729218037284879797156922788883970419825456570642890898582795862565990137596875007856985342094439959715236676735599115570900614130188539560069330508261157883159790188291287776539696406753920808485822904755619051863754905941764720809084852392996636537774687098568014236137076370467423618029218679592476977765292629290417983927505343294338447653339850122828362798515026374542796671771484197573390657287154305432157523544932053465375423820484485088463459085338667729253852044498441313686375189411768486261360368193736351339325408068522692147430732913446762529322640845330844938647151561813941363435036481779475509763392559882786903696323863303425794452922923775203287448902004053266813935475285501746453171721459950814556136469252665022711533738181759785579504198807548581133628915490090390806077541575736137375598801875730753624873700129122382611343810392343723135368988915337494937863249849417642814170452840829693991724323286772564150483765773114493352155385230017811082761636303709020525950377909253411047057004656525197792567933141088663264059262317889312603152857587164242119033379872577587429012903759362697272343148935725724188379418627686456677586869202760143980501638714352047767388090057892836338177973884573441001499664332358222579253517110594856078918240152199828522694650958763149247127952016446764740270468954543510306982617999140223407285489154680684209574320750662115448762664467579863644388023258636088691875944227152142965066416138496381502797217307126592057826600278471814003420926569307030904457024596467576490185278139314813150920364104984596906022531447482294570702527043630406111445514222766936650125425237207439401827752508941432915215170599745459312594682121435106227633033185043394889512767206372915124936819357031910469357290527628876878250048505480059732307532652277925524199131596179115220694196854791873415669978109670256299399320816450717417349056433986521998663905570935211985243906798615021448623928438739820187602285471230394945966157258750965032007124766575938137212480113415355061675472036957910559746106711254171174536954301471914199373197227971690211613572625243116472289366644142621243854981362369496357128211603685441607108231775107801298304253814190892249208595364610821395648113205316073707772076055993498150342406407751233151215899924629749784547438578559522708926710247919919964504304016600562176296234014928218161152050464381405120101763279790269327122270125927081630457940869593885030885857777676988057712027746185837281858599701772111603710982739324147197937663864843160008415792725306116408501515001652030020014274337639041878862263527470225898484946907769474761327639105259940566038238237163694355547065817482730718247418272636272404623994402844447364245864447510469029976526749734435698570853905781915995859960967506128309101947488656507512613971363292764158349130420830095085110041407455744378492789857607261057697418196336967907551883832201734437643980536829626873285189395308159721384099875365774663549325311393625597895430009119142674075385925496901579734191837104016999179009456783596285732244714790732045696471978631549086284123332517481278482880984876102210097427834751646279055393851966889569651087606287295745908892017023867207401060245389415195473932814246622312689236265027205640264302177690318955552061127114631467170389157733900654528692327208081115787573749910353244466936165351752212468866080593973805468948675560258870687103081189892202421749529345821953530099156135536073159095673469906992487426800195382175246210534986270106132159075726024080430082786835629319838427105219835472751176423302799589268727305311835580568752761240919742444763356809568748444104546702835236514152765627008043630974774537678098208734980384982599248810670297754949535228299516546559850687428317628520857196139379782850577901499623213922046234152416823803889446624267373001896543376476503634125182850951208886485629471439877956655928074916489625621859267154146921767683960545008216421626056106423144435798230691965780470574714846007296818237228797756049608915817868672936323790241579204728364697021031397518009784159855000705536493875321257496167487587258325992595761507433918622843798830134604454088081780968549119454119347026896505991986041099765321119658106296655005116183651706202928808776091498461673164426864197089230648463056754573887202476016525776085293772109335844538710740272925919152462676235381797869306421534013163370113573563511109814182112966221073672626961567267483077524887444841676657370240048508393702558385910122669483580683915454791660164569148630523935977932446725588671741604855038711490317607553732194472830582219155807880752453696932744601747360524205864696869757706121867761972058749104516514271549542385392023252697512349546546309061329460056650728309872803387373515537522356318357025370064940926380803173746348540361146600048468762423108947237916500745179705248628467276633755173036873683856440370498066179092008317107882104981833155261485053735407503510822393924744563010969204227884473716968895091118573692689033665971852253777032962201670810655181267580094085251506847757921913893213809286961195312209050380181076587488368317882781425278626187966760682197703909326006729615127557125278643706989835444409613917379035454851804039733313748052358791095558304048153480453918785403824323690730431027406264177776265730103470338402112966908481804616249648739473458441215530258152221499458222499419419547256410317502114422808652302802213424093193932727678195990608112598623967339458989619071679777780259511631477576264028588262514815821643994413506196081175890461951158539082613354960388032371352224516968118059751218959002859179739086652449528040782713027004537743726785553250485039746375739464609840856589301848223416149865831503466082186223605801948114554903515474266266061295026878409754779814072682395693147248760982803450811893834040961534314863011248676465315478758454946522227531877356089083504383708112088244175993858646630939704811725300402030581340904474505115637705410350141668619124852526949334829785101811147232987404539612754022221909584405087230662326888849704223456700011949751859796494099148971385362279458874076099043285422812773058183040249451087063369869468674008948109753971009084947683041071152955063888765249054565999426077388634739455251144897203610479375725447239660235477481274941606983510131476402364194914610598055637570446515566712365256828270157445284760220781753972337164096986264920557668761564457744644664925477346729725557053882859078923175970676863982496629455560193873152710362720124293120176425224644803181954468333763994613138361445704160888342225371558783580701611560271775414247233315278135669400989800444582389984200640748958923892389275228914732945531240424775520838052379510123938435858775454999001272068286659998579098429303846007329623842629079721823337274766946401526920488143042273943883838698807236503400880952451272600136152570415774978954642745928669621641542751907207896576567620470876291025929888771283405806131718206887950962735523080228036658853093027046194006144644918627856642449420816210203832761116962244213863973115713011899185316991515816502583428128487414927536050735501492751649655689498688144578280724154009011617693658986281137459279032257848909339768816086708570029953457215794209809972205321457514271541122093988698745628011653320792545519698519103842815726835120109236799524290686799545683083885930136672185211353641724422837049206036481544497177998861873906197012650668437064042512445995190900622608217984541513987408615618924659308440274701471016725471601668601739769199766201111998930155354062817781328238679873988318548093651417526904050273992326953229393103604569842520594710877602232101677467927935625307683377220692980995213327549341076406829369625653809798299221502007619065671332333071917531109537696743144582704745219185656561730561853216604259464553856168837599345327673827887812223153728111341735545170735532082760440774525442307854537481125966546355745960432703685421573869622444796092593675008309891400068538363588177874864271068825787874079928341825197714084223048949791551798767827468475408492899386476349839175392445932931291380807387650050522006666627273438445404989680118343255349997625011921767875580980672332416782617825708911630179808819558379107540118050962160109308042257018054929764678411538769143070882475312172313794037236592877104345544696266599992623393329864113710012680408116027696940228713650729810644525201655173386046865040621292457892714722742676386142682367640851641194766265143710139385568064270077829659680486077517949221215629173867163546498898538357515324974315835413991322136505155138410903090275543323644120225300770428211147141918147570961833137822943420725434103155582818669328386683660726916383696779320102142029046813370491534380592465471149708354012272410065039497421641886692274473689950625289450277718989469132963467585879264235211633546474686426054856131577840361143149026954427505648038478887943295655604844339184060202704514682782423151406507022104851959207231200493371767383523709308856526434484194677345382413296885430630247782554350281959571754332687358317282793377410102634717252580005510899808792042744778385364274972065430922479605721400330661597939815697061366098396405520287669991722547240206396060964299454270591546000735367315498807739083001581335160357301111141092801541228066667058785550927033385009831156762851616492425509292830390877098893494607234902865856020542206703715680463500382605276371082398659793184830936764165636079070660523343411137793121612020588095146143773947683538839504721294528349865480864837885019467676945623267019987133184554534837360845127671800567875423588719510589565279780453783448465046814695167753813695184510308323903749657162143307963860154481614495523935111212189443023826954057860116467373664795652065872508159275305713134383569920048999618043254950205219555020617927799305642458366587216753519281750334499239183325623616265020814903557861244051834404038159913582717384337340452974499964059918656664153561242430800162617933750921429658088283221957057843171697946284551330968382460003698996180592987950660376071243272559753650882038636095880904003800176047507866974433258772321543832599839986439501144954150770097282265369583943808509128411041629096637012742498817616344101667423400506836167648232710388942239482025308696722292524340750602651298857635878137500851005688687432827471873232428984773354258150416258955023854489068496767648928297072811584351167607761726048913558510981478950842984983605593659371053202059979044369735340166287645320637188693821897801573219076299810361256838764838726985360129448160731761865806680596837338941198265008732624266960024090883207622611783999157440210584278984506303601419933928362455402768350998972042185962090201621015651922358421194882020912378392755718560554165620545534719697866123505834896282128608208403497311998810772590454586337661085050958238503075128425964285974947159675425924034955860979643401966466721757237237070785184646638370671702995416983298869124728187680273812549629389876072234084657095098943201654876047933946794685134373263039223093317906873031699418007404800068725136597857958599478019949652342728688988717813516171550577839158713864040578956591823213708140058713808836523047167127182200601860881125726033986240354206752127690892108155226032930044410189063723659195711953030288248586847825648830052518126081035421351812247158400462751059244487058370954083531897521523610342040845076413767423473005882203432316047463304350628142321082948724090259476441189103223374049794740857827762204826182195142821798112437267662584689519510699867374022732300260261505970642152746023269994970061582359282822297832868401997290365378168160028841173067332449662838403243536504139753620550910521974909579986059572694138402426755596748637742930858314066480318445315329081532154943458288044293735568005276670180009478873358860913649494583852689279136559434288174186455594102961792995812608097064547465090234261840345010812403353900061073469412097838671627721613708361451511050077201170421405751029551149137025545335020681411652447691784586943540341187913507194728683338966247610118301700497261895611839898160539092008911727724528273299586808380107378131400187606725012692645464509767337470023676782013523567324262478880482343629009996330109765730571074508621321877968280743439896483552427144875730583032180249452109231991204178629832110645618982345049505439716180303956851265380149225169487847955472418638278627582327821299397820742867554710924982182446861479580814083550046687559626157906171759021927186972378454724112985575731793747953518295584299133692814058848042157153807468531130233549462721418440056323974458753772751807146601657065035375000078000547610036786369911132398586213221822462464343501036322398596701728992842523411315434326293039073595342914413933874282187214841861312790716268582668472059546640356511332792729283670421533337815648978787243472316577108118905881159220534134477675212977463550655110980181145470892170124410634923949242422673834943940786546583638685970026019915416838558615578967012722002322003168619541970289247574216667668015248082402211115619098290952882934227840649039533967200864995696544707521184613434097785777736426316586916987627495418868313324751453159002335440951714914081359273191146192006775792158563310761254707093396116441508800727293945636849253271858915516881472096011415405664003892102811864854595041190055800792839471619967600301877000729916613487810389918979927793308260333338334057919338601259926635435064710091260634625238574346352684749297906578001728766596825621946854107798742184455047104825113899365427994459320244389898513442567266932786132950485170204267041681042398878776628283501931254549510108703766963812060312761799621889318777830520450194812047427052045732125487339039302866808539289855145395183070167737253391567927690390733624859034335147611787051779766471010750245076816165572539548200948091105863173298917531184160364021950346357321959475586008320829267512378849551667250649220720609741203129313574353745218554549830258041565179862278016468937481723971338112369536373581105739391053691797392934319775188032524352586080827553740999721015400800469799279434223454476897075803131490654997645727199699628033269209089155838176032139892644880237691008274209066808004373992504541223684971940977467046731673788785204941656447370713254372831395409623181337647384889412182775687605827547211534840641119286609198061422822955249075885258711407213414016352381199891274778913139757468280934247282311021898430070244399964290644450844788027668653946357835978633014357430738552248011805785516300305948035170230529176193766804489745519006229814174022546879385980914228583744941429466840567844786299687303736686339751013910079845588319718939840420585178312625560990751642566660914485766068367937448065297240370993339629283434833266104136871344725962944171536616832569298746075193490043675487124501251738822895942643220617183770595166566490388962341590342836592467623892154316210947396500986925708950750411415781971894579948516829239976768526059094084769255556032094730179889261822947383468868847877421474782112462900504876162420975722951786073395988696418605399569127426110537996486482728821472986544793727051143103641539950430249248903898719047380481217370572566371346514715413122205631956995297107448454232578540931960703748062432887305740374143132382158355626714275687557551361820191763301086283797258551156741723050471906087361627708326296442958048279756363082376436161545554061698004581964467066781024334784598806924847727489529826204516943700371120191295353112919713801759557797453217970689981078697996711614064725835573138528037814479461864582163474520398558975123171364079746838514559204145005217721229144669927864765201003653978899709419567795422900041438454871434885285565176308029925167644424768218649062151219172342568685160060585978089662366883201283965312270307465481821199948225388143004016811445036211672024446204828296777616016563789757634979554872551080910578133942034727744847487698984192182808563041649260299176230362632250441829629652154385628760703742186814004738630945015910913254210303256135110757558287347865626080932564507434633723342240855858163385371530694587826920205239506727247536900139801149643165945829716486863220484179521964244983279488063134646201089139328705313455615037887692114592726850514677135599589063223865076477828269016803601306170856982886336353398216641166133554804037038210034458380815055830340179712082249390950385660958557139537463476283240421751934265668639255917743378325548207038610563301262376287698173472822425094615318907021508205042181039774894076572149908324785285459510024679597393084110627252254156964938923682735814346077275980334626431259827888944181849173802687044960388670718647708315647875891178035430820131865658203435407342292834745576965149868391503976141261336078948099755916482490625516855367948247405098464960856818891720369987375796439800116529527027723722601935755572023263101476869284762636285189304849269092640985472493648181412831689383283125795662135988355445206674089584092314862575591105196220005030802042573700289966012413635564880280339995694656095885763219926030004685397559802876555831710706399750666047614867776356322611612715224267109673618402529108255244615388577666027796080898302837068778139849238125451717898757790676916513246031087551814796001216762016855436138875351111446464459659489862868500384293816775979619127299904591343960428362278214574384910806626737203981596833114583132775573719396476213947036948713448379653367208865076094944310674893862810166860809354876204062953142683679016223243442162500961919886528250184780750093092989616878935144048527844852101949729314912293366428383610958359117926697321050328658637196191306498573320866152431989177517561330725336906062894401403624673579168612419076797307215389609926091477800392182909660567805157424539481270515827865608617662808876754852826435345792975109103743243148049050997201340093871209967992266732745697219975739749835295566344453243455703262602782931368938896296769149005111791641573964151622345962414387998499723972106259104524266556282960145967901286176415352478643304785581496257111395603251503631837450619425879073297479906540337812932343549647709599415970216918103681473383333064151387713221517339840938174656833323752124521204263514948017957370648574825588129624111414646926617747817386015615569677680806354280813392622226805735860439573916273877143508484770186626531697488864738682430941960189287589120213872770961538488095065653207344205898497856821448109934432714379412923407297547932647618296204036144364112746524043691754283585661405959433261009132314486416420497649479552017171086517069812241608482170721710164948247980774918016666318076045716395251838609582718327208657052982558926649231274050673123487720349779982956094106360305165816819038480111470304239018204575837273165208592253994751093890012112219426665445908677926913711549507896665766765460962882777751995705545072979236662085235078168943400320475437404007621799091881351094993966943134279859921580629270421382675621435340592467202350206425854109685955128295988801679474853488276232260898821426027966949488339973538091153102615727526061516646757472311267311304563021016442756282782191487924669897532097832652921682584330479085478336542697584330779557195200010120787240198813494984438436763827041174210036951169011180168326999466120100860532094157901928897613978403516511159934642044414827682054550634184830616197994602704896489524389702584341717731903153309321479805420208961951250759293649016278147407732247725732201913504568055999785692775430546578798428594684085867841341145382412407206567559826482625761903033834174251848538540384703710069087650808535086402176210101567282914356736771103511643978363440428302347807354566914381770474508945872117878391541665309247269795195268639282330037168506787620787754817839108197321829047879932913960788741768330818653181999406597926782213227134596324714095294630761973967499846349363609758067253661551807859814534953582160148026023317625201506366399391351428775115353212411225150570657231152085376502843221015840618982570047043917186490724120891714561202491730043799349994206586637985787346060480619228119464331562925686710879697123496236406193738811218020737915981801097590801132722578430025011137880349579204391899288300516242921760033764107933719681331920675829918260784852475711775242016834934819414005391646393521827371048915003658047925976158343651355349438431915092146293081995018359167094253026540329803249676158439634711435324714370392214861784382826113866885521598461344505803302636914394174355991753787166688140045296893435198765272300845846550156565989521130110485288169394156867063517831922185595530500029864832544477477719955016508265889671396408898805679580669160658060940485139280102227697615613826083190760332454846528661464942948396677330080707320067510426251414296244714536875097068785066005939402651877861032765470280632572990619689759188738667230511012379493292597649574826255195927394471764009255618521185772443088894589313045709752725867071455651423603418198903151954572188621149171034530596578450826186807436497735831757700864758799643227445489500780966711961621513676950853089233612386662834811029398046074355342727244281049032807567670033772711209491284344874508135688221560330504388351754108148303753443420841220816836058132623457677542793161986045430504448510555800411679433767132055814705872720882536047310649679318479637352788447885205873182866006563349325602359088898353777250797020050541440210559461072076492440913633722789739946639751234117883663125090061416232276570285410485067974498127181467643084141030023752565373049527672754845459997871633253310506190240215181468100146512628510397598394128823698621131831524776496795777441913323947985528716530231998698023983984731981788171333103443398908379580000513196534523383390109097044471434794265026285740315181520354650728231183851986580293621352243797543193801983432914312502757766754316869888602865677013500372589696445868683417647387839066544421819235857731078700231917445428714160030268283724049464360347876903573326188114310108132188552798589730345053440330372276915140453182361878321719988989055082908966241976585598057834142873730648098529078214594112649499219651136125677730769946058020640723918086690020175695641759552721135933758979116047598231558725356445682571437465856688982037370549704529071584697376355587060928012017697805329357967838079502279220010520167689887325410838931925090717428881081070862320755101848004176969682629039239983938116236638478713081932018555926786589807098502295373949421754246962535470439547324133924764852103761177731123138500161871304710647783932487585006361991196778775326807139246898440388265936051085465236922261927240349912103831622629724114408355686804998074604837135925207539017014469373916409286486391905375739329455653677543563294895308547919735618116894346944344364303087144425491060982948288158115956356299337794739220978511040672166448032053106709130375948843457873439847370765374740479308090343824433970583053269585629984793830480817797508901932397881964474728134854864856399736790769039302521285919509594533031379751852981866262011761260953213926339182718256327583059118937210691577643838872278422852900912261251408052315081202726247737066716153729796236517171183091817152280526537593373755812823486429693226678471338695988769158095081150499363373569059008428920070548252546176895416471077801175860714328662404483055236425937757985524486960807267305907650248851408147618917999896292907954060691650986275070330910088661199318365347811068950055323212323104099431566975712843211058927290756266529830683461268817435027634457348731308127878539668259480450244508994538506262228156572066562590807106009071947415806434289617313151570605581139989607656842772395481206246549279224664410867393017052678406522475041053604323508688152543821884057815229519878956064995606982745328922732703853758452092709242946673468959337778965806769512859044905739913079487625397989989468534486708427632847644098046534885512094360642889373837105351559587950751036819995860092479405220515488077774998306131379026412827371575710612817362497836474502072277561952126743273581685496119698882583112616695052224021881146693062574953847086995865745998878927868473871986438379048046374622281612687127634511309478316617599707595085332574602849374001043645034556580449442950345318338129078508883338583786977108498206651020627957076698334451779345271803769114102075574774315429329032629532114978826203515987412546422884395277795499289564754347105898585159005508490056969036939946380541274407827207958812061095018266675052829100428644011596909156026024587211745604551094076846979736827481459790404552190484180115456634783353438088153414037239817881907757630647233836848076617187887525444073186583050118647563203017139833900789875424411026277749259455787263151608748702504806203816260628415675429971100845723607943683883177569711607177476019773629986084709225612419033443038680607516077836502789166628360931767596955301493681279793546665239389865492208212613277637898202946799581624398705936239170511750705049392442937122875207210047900369520353054174702688100313142753117445624640735452001303351544161161284530636382206203182714120347105733305706095610419997744129437897233361952936807116294649741746746061619442841957715064212449115406707312213842064141269671545664389159471777969493519583468433678322141303743107342917437343763544159073773807768335545452204160755832450014127128997410149470548864724341589912960922829862407455160589149631021000595871347192097972398368312801101752643186861118351701735867540649265791513740582162972420188375102977202769228078017323536585248661037355246360519741758718234908738197745199604135160468808608272559061048282225757674635819166290343907054759703480904400430433331741346142345412745677987258923240909151087305920242790014967370151347721514257148023878189727890993192321188518040030497628938731198868763397705690319074145176297505582950790551571289772603435467222518751947227775034780629888158027640883058588732114089935625654452632562629304285439933282550329502893699077705490294707962200839029322144411265738208956854344785225355843731269337547937659943069910056990821560314508198864943894886795977365202377638052694955587145427065851747444596468235269410568519337370049144862376065979574374294931376284954237476962984236204040699032232862548282233542016522829128844342157512706020215383178452185648411506693943643644633903294628692150012003317372231594599370244046654644010709546377862736676904564259977586034142337627592585363126437089730757955269968503132069091830679132654203064003148245598623926575975731775912862530894654125166228407163370149790267384325301619010137297886469540342569455726305220387629423264806499623816308550031265168054478855681997310896795755442683922048513091902688240337712017786398604639800256037206069295346015367351300935166490475996904153484422840649464357839627395979697011999599689705500713980267143153912391461161358183406808760534667255305042239792809656622109111184778965033519003128193081404706478740367155552114034070303989072232339159423512652971711214491591287469696454455709228043473384101385887428050725149320183676549865442619068767503039795693902421343747525920284449370703219824095085287439294127815958647543036695336546465043812295538569601870814630360006810223193535677588422170662717787522895393749739449846068819589926057904266324281818832976825708783089016435405464175367797521401491698161349930449104204274172990731837969851312455958606399199659668996108005049400729639709895951757463495011315239540543638424771576730579689978093511231012700060683156013470561688420818621059065843854685352265309940809550686451819643104550056985286403697227264496407220910728050656517590053633194257188261901685209110944462304938727622601300966509801815021611618931499175544866484510193964089242453518586296685358807237025208629039637513544240841676796106254077453543971872022038982925881504881746263214401932459126384677645387821490032187360528840161581467693409724342496695967974551295215247541300383824175967755422515486890349846758461066315941988121179713345250927530701408561426350301527147370879790229663568300178799028808419389392249188448911767008038038758887801697701113453349115348021065850875700255173632568820097595527487122535718255169787531509556908689854648379484303518706149231357340296313652791276152623061043140923956535229749326101802357414494002010757529248895892932458035188934833623226621107047222795178964311353322215133111281302699657056542366660712427360675833767835191012510994437030462907634661496449559967303212585228400681288632060138439153523932091157906047341393629732349275918089423365652609394831336481029064358631183082596587859784715023449078747678799566742485205104010399975710394022063069173474202089699175600528889873675939662936740172098219541833712823393286247731719643862566531455126992223677667770819864349679984152604519464045901639578960492791392910434902756838172684047052298140890671314915262504417545271011235786801298936828493391396383366078142291794554344916809706649131884537812025796215523212883988829483096025415451583015564562313284503174185769799799107895565679960825291655375861223383807006921957963941983742611767676910050735750147104127391778359634794411592416074096491892386416231443150984337999995741238608455687906501796604659040119009310649145976455087441691709361597805467174658993017041375390468254441984930697739630336143300403226370441388424564853196000910240359148604341956718891985856156554657750890144317771286164568621900128459460742160742957104583140046201246390110210193236887462318746390639051846090824746612222586831716989063606402540489350875060019353832358477797777718415669271122400445516770541931073038836943879788904624217590046666091040163622700645067167256329813561916957758561333390398277599652250990403870932789862215954943799706306480709649417708005812270559330916211844004635893785632435864191061540068204787901621404457877173981029526071730009912179711375424333488226661867180593453500359794062610169455894879852873823946192592738300586578623690127192963826592639378195968777634491927813839152734685103171283501167754128969634017633688033476132425006547944835516002423125664608010786702586037609939080045175626009065555413098404273574300500668774331352820617072990338937053222546700420588964046523936142830791854041696667832407095595877094232009415610955534334434913854388408610824862428985961974125657170424006787671236859353722710915670406062194347260204099413954720131755244915834594427491919291350235583440418720697434588605383370185897657206225466863899147406171384409111405424448924181252805873784443759903370271443232078520464193147559475831429194169719062976979044988213080192587590485875701028049890092764667431817419312738798791908667056460174141045183654736392112018312726421352990750753167418604113908507917404417265800928896640035085618299372472136843413149569295704019813001606087541279574664190317973325939240210741676702423535174221182857151618329768142226073090296369487133088077855566632397283342252706565073072518903090395022975145545081413444428165414364410492175062270643628610175717112048366581497058246357800755045626453744628052593284156788579850690105804527975626285722083047835436681313303172332381352647075257795233015289166395286543189995731745780167826728146022264038189956693799484242109824897420088233111400134104409516093083130905465503159555154739774802214624067611052716137579986283543969665783552456700793604975187679585004347859444483487473455259996323925882010445287895767233391108520813799484234715318952612818751089051213546549692460665576734518571774051139809005074932280070940569206554428799289768091385328823923127426496379071979978524909030460958502032813011881918979875386127705098311267968672117810060942886033416074080204485324414144579454721054698929166499819415997508117083997585525312534793070723771948237383367606554185021133373575357116049840886306962649890151155629827792230433349844936783915198562685043252008447985546296912629978831302936306463370450331552637520404739224157072857779988029635328900698400767818969756354021766194294424753725649845722655067873590934057238979378191460803198271139248049794110049229814317594991993103280897957472533768146061745433132644892480370134626426692631734244357427051774756506755634133360059178313763737592038902042651716918654224484136094659863626775433322172909728067721218122945017766423271673310919275233772424505908085892756556434411548443888953213270285605406006435240340117743942638314926942036676773124923344604615279222871174737320682073795040775380702487513973697487220807941836272457926715860587568437382569660152884501593636057997648795546668979631727641445826714098393026058444373118321952735782429923805304609792532175952943764669671785995655479752601048111609001925598770316036928905354642196936179009854720785512572597532576878034184282394193011676471278020013244905417068719406087486425099249004124377799025672362387521344875468680180570026771659045717416750935853746632784661471702229127753816489358140375420413163179662046260168300583584027808425084706102856321467634921644155965653995124411152722520988557631807880862837444395373363866289139439904591869356297993169132074310849123878269670817379838027600732835237130570383538812019217807455705392131250482197669340639428023453350969805452191964164969664205192232229332522498099068094382986082393386867739544526736321944401598659040665286702065100494097867130245089605063631147497897543186327376379320227953001087717684402618218003859090607702934597864093296951123385326149456558596771175442461946208674178988143477802702378918386547507367250701231645954210423036825301549927292304970650068874455290889366465514819384805637455447031971718642272096587063004983436657183030945852528562989254613260790172374623360138208947640472176710210783635306328391852894263097083524184268806663972454351949874594952723688235110647593837053136149452332629900606135442020790080078443591851423810954062463592880074917472326014282915066473564694914907531304041194874612758425172542299337656191322834413615968845123050979229080934778061000120243079336754606956718867847589029167162815104791098481996879505375747610343839289298183475591353372834288849228539396595016459422968490216357698460365666770688497906149378958662389785139503019552520711594791624303805713391044123512797717425894997181320899397240945763050438176542023774937292923666640858263563047018894284713662179628077947581410647203968690057335883783238393851564367692910953212630953023723418877637759513255857198868415635114346544492134618362582001773911196356597362091748028951071191193121616150493566140019891540677191474060450200848900785210448984071558724913181424123745314739095859285491926195512752815404555548948605304395183055163865296351143585542678957884332247030322398462969403700363866705975518962282166849472155167994010237260527619206175045604966371707626384595300533444387899443285436630146414207515026765299871484148385924204684351505285892648354129599964190638362225500616202985179080799955171614289274332216280696351216290296505034545598002429203806611312249987574877781454333495781365580083004587905455655237596430899472829415658468980629431127259755469302188791273103530021686422763366103189051108633596398607097473741955293417850780136533786877679115147383325251300237191023587588679803938552970499832183038998533373533151034580443402573042275868260972398342231501764080332731762263196756598977297183942297165227761967340857344413747591477931793339892435994058139603228134659247855875655057515942861161317673955283481508085185207154795143926672875105744138676971890208777611959245935929086383969620057686509962930381814549128073418097204032036336676649944391993626414522714507350370590760938575244000094748229713623772159263083602213915885590946140740697630129708656969066762442186183635520472790353317530936077977879847080239021859587448789607452374905628374741893102680628048174338130019822127770609218470081525232714598672343785431049783904364930586076453575602598382816254098496399831811297188143863954265440828008619305729179956888798818257244092308607770862635131360946309767740997028472766829666854290845405202291900303432247189820499382480607516387279456689408497366651622813369488285833953135050217053611181750210101696093737288217468389261806871887211712203206733649831281254572692763105648258790106857520808063392875136481758375810969559699338484199106269224113656117112954796777812386239349341400854705378458378285151232798730884093735721100458603654544945301868107329376110867978282803436613333978053861486359437163500877119311955984802182899267779769409139308492689239716108751625981364642795191163033917961291900176095322165573491103747120945790041860289922155117591568303624947160865051863227974295613651983035189714287602237507160599904685227028482420257009629938279147818015406641691792596965023061674967724784194741420092429772971388832511665522273033896444730527049024147727564715409237680664165282261122166055190351049532169538299957017411465102998489825164390569909394598682049855258312876445683898434210936589431051140755583849278936997409501389198821247991620988839243558736555452375362389064107266313657338688715014376676574392829832073461314039495261709530844896580056558463095232963187124518366166304277498527362023490678591557693622053472426111253263891430252893766737392628606460991664258399987464743414163952677732246933313408989228213523671609562825134923485926804073551815360719656739502706913535763434376744311724908455377670326669884144911480888480132493025843817701187856663572935398781140646588369417283873657084337575104479912359736597243445574271838473362051640986039310219592121122572034365100139638906494529671420560890861769828831638828382522970765818961189545729825810733945401727749783454068776411077800440742929663980795802668931294689089150061861841892185304164332216949278213392118277190216752020805967262749463002805388777945962185683074384298925646302408906336676064738970496873626773471431934643782695278376028614658389278933623236160368696588859944071709014385765008562370357074728812300427764747470377946320005543727473658472402618390250818502039941310950397081248122107761283245956399564073037842282949417904179913536533706092953580412844901956771743632655873343028440148149907546510328181387821090721433983745415095721808723321639314118488540488247613315649935403031131319714388566683380217666836082950323604059513677592715516567968029585973380361344069307813757301161300265797024265591786343194362646623018687258796305755636607828996953634981452238866007301477187919864160661439080577725519244870708291097673554991120061231753618478131765439557295038545292365366941334856217878926154740456150452308853118438978335074806994480208158304780292913950274218678869198017655546818144544307419110229272193186444074979031725993977136218099711176146890001377240700923484996330832030429732196758278940008466523507115511183481032014483529474488518863241330396067639585766239272743538647655332592611391601058972069491216041943843627692250204083601834811827158553439255537458236282552372625331435969964636667825593382100917598744440271852251290642515745359479613052718959948884782435317225627541310959985044277475352638887118926497707170550220105682325307115438956475830312255116287639688351432627286298152407558879959620980439465968893295190449010574191419981498587900005334896120691631117546825348582900768395376626414520527393607865138057224150689718558277653895215135856589764073014881111337386924588890982276022973395124413507510038725894820664785445392905511604925465568301792236352637755462684090494780037268471610264950882620693574846316439689789627008337630374301756194573890788481042430928552363102983551745174544660652976708199474320599516529159600871565211546129673541395732775167844348486459833913758485625055460175079220988358771933860139489675148337638021390341529042836264537637458087828153790470854457596761421037723612329619640229202289514696881144705828930980357001504103694841705472869227519704469469729203495196976621766414362032109874971729908144000371573928189152840831974229437336774778258709218717225298406930555693522583678625387769903710832987797950516916962995760702662487725611153210245228717970309373800563354059293108901874004957513305645755468645881925344372271704841107604583450525724291768442356100139456682456604288000474072926191657544095336500054458333133334866581972749276001242323822517184689306940857232461554239281388742202766169379793566344104503711559823675771431249127962314115016452888044094239005173464563780362939532778780163604410427591864202516771182359108124947844895488072585512574549607995691801297131720540384249096087363621351310975286209862242624187424357837677291264179188013767520032056332618924101861651303481024400685680860611048112942740900937527485785858684092297315779366886086199644290736157490533034510746792139213935734146937826784053313199235443303460719515520570066100116930106114645564891680500914500556137849404543693134859106184193301895454863852198600808200402863322268577928659474990069360751057802347420150353177373008364949891672893509093542120975207472725043666188006133495909306114071104645992447597175424019965407306540841697352392504156355003902644002922751551910862941367236000269412071278113087636531615224433516226691901231017136295013316980770097670312259233409954235276489844208910924390275648161700407217392725660242958371557106716854141871300357131023054472593770645420643730283814784191021868821846656713832612826378069753098860829066330396698468396246747688511450649131518615524629479248111598731109079771152980588092092858162277065275677719539311203573194334593434733729518994157214722761903678004308795904799926642428196201630098883714884504398012244624556026604086161331997232849787615931712681400404505618966869098470823941370855181326199637688970212415231378187331300156011219956570354141065353563845243965564267272174345053170897086203476547586741281464071979228057446954068492795994590458209018731765866162517873312969357262487630182748053065600294624181015143131869024087493841124215821508373074128337310032226683957690735069881768275484817730499539131031846532783838656267174760018062788758049254008878403927985646496451552789273450200154100313190509627108096288952376898287265139140819451167195916663181885337312798227947809638418633081232493436827327088471684840823065106804984019899661418486821929237124322629328442483023610179839100426990407744799190837610211112396067250719299793136517706731645047986232255197970299256653151015966045966901508870688829825272864059895142504765564643861397139093020257194585582527139271981132775888695544629206052026876752213679668274687758745287607786344913826995634800825441441318253472049480142126543298296784668605437790613389102060765389746783799090419822642829171356980043472466696993015751149537152043740319181079548689432406229094586232624522096675744952856601646578736884246540265604576973290012958378742017115100574265974925332868258662570245837811521822012775760787227875362544176785168184919799494976491000369349095508194502055638112249647967662496507858023271236894462286697963197153902499010991176720532965920102432741583664628510351940054145719071486388246944690382245688388500782441039250163597153748490569452456053125403791760331016534775001998649580583553661420716997411733105525404205521107731858104589461046273558070947146683528783522244243951951095964801933997282254412372911975335233397882005003209483077806628336460632466710018008706662889771576131803944530851778599796791617562364245799131874799529518736756020672433607862783164465504713334255774562203297058370652084614814618032795565723112891379150610787823672417063157427908602758268048328204825305959448653553053355736089436683787788779088357733165815665640463336311789655775538674513596547437928824432776177665299775378844321226267587896126638330684384900580057761373094604324573314159787616555372263016164233534510023746353682989424782425580648076643361805237741563140378933712699900811546084081424058692844640874238912457751936646699463735915844119317795008584806528052045138617897232991096461177097629716988054741486404035888392795004056809668826825267833258753583516005057945853148483777029676183263606491366056471185080491635911181680573568625676757483627962595423144408426869444178084654590010983008324701273276732518629652810119875667425123718547191741964461099638143692252764876865242964332848802671048804488801559106447698291833644325638379834789224992424734734749255855729315186110345341373356722746257827671875512852296157193501863251721759999422779441251276949166596411764533113076783943587557015112683397880778230893276729219673906565016790988495989997183620183772466979164681588840040150832641339017024402863907008831066490683497676288008809713157726433416470525153647177306613927224056325710013972998990955937477305596363485600615984961253518310745042828059910113561527646137187323074054864438709510376239129317441392679964474732361821363311858580406993658377760655841495332832660287785469689430022926853101934301987370587173582180980066938912507662570847465950628991846834694991196205056288100623524340050240751212565976218356834552257668404916525157075841461441328952097009306872902271637056385906105921696945735131229699292583567531883445210953757017356326181664424591830719173259280537351848183098722945626217254044418986403975038451360611100621071808868929053885565380321231977664500797880892291390719718321553376607146881588861466593708021811848640949124415780158696473723909595858031173549396393423239812188385832226906227304369154796477329036203102315846228211866082858960816909409000618964421346173446825214338630608641076491303096303860615612269477567270566164198322661282955940541852670099389441814526699815121965396719051384313536550321313806824245173488947592503124192484175255740381823511390261635537093686468847101525986682006296660433267158847028467252827367513636915893498572151495769695739379312933338786858701558643847212190881311947133708733823275000562399237447717210347921689995870015046980589562365188542682939856667127230583317473946798938791798447572639669972565150933504944962393298941183809511522027385936199162089315593735213193801270298481882968245692466401589102452240833407352947237676601871908356625734394683547048362244546199371292199455216077052265379834751066676946325551156649491168070523052817308690882682380129412541814673058459343581273433407463471098101697337845113700036146661477797375667676221187825394236037065492372256647519270025082488886040622340981154511333422390177368411359915337237318467663405071568966819381035854807990739961345388882685756724350459189974006910447041116287865267920106161324719998448237152334997836375230143135132826955395290108649420581860439615905305825975400157347529974982723095387057721000539641886970487452897359156879270799441658104944268793902227820026173884246389592211392638749541141959433002708467142370681281377822984874389225801960673229557664622256072650083204373463689206974257310148877783281459700550621125297094395513482069706780920457890090055635993193030074671042570179184746799520164509853815101539696173545527780430626775794877109799136259366223493706483705981684191440900869283841758136960770262652637398421792751865585534001802494738842479507635936962516581598005490110797072695324488613743499388440836614685920902013874629297290938453956893091552470325456494848342558435392750026839808919512438571472788922881800472797910594164937166417567650944337465409728901440632813018914386339280633443494240026022881047169997255339395707641070678950590524163290221291761570720281337963064985988232242671029826426454822793271548045876499212413212681827672309034755957930311584824894830141731719343104663561998293422660845241977274300089475751906443642507040115738131779480959953392691557988400547828953652395636741657296488046346305736737117215809990209894453733255406649244555657047977207914581230450618880669347731611549213528598081110964035642010320650313878329814443085638720657938940705623279586874460852840698062839012831994040317536981729101193027421648744601861963215944684538075570987221296475842610580437101441448910748813376672138354541424787136666538718207128484761707002802307713986200152328528467498051716009417700848306078163074067412915857045857980914354160929061349459709688925710567910055675290074750437994633821119211999009122153965563172633298735935838666500189702103768105655391258112742565036589214291019193567740079666127138230714081882841864932545670050478902357998346296652053903452672297367971122296475763842795337070307941563289311746634899628691051860472272688877875879795365481133097185257748836254995078089623831168239465051168547086261364021782044527622621850946877145846667658899947937102845702785828864945578192102470884098054884049428920275863251351203276836916550933375756877423110361610668383215808025643334645427172202495621806059358605778368398254618223644983354199190818175492396216871052804951422463758912011361597998438034553898743686379416430030513037889583127924845498683990658600640789933528127851940984016719729727069932213390718420955178247520680268463616539771651234574340304432466147817711996108553728243091711263519501191538103322617009607819792294603552601878766923621248636248851290354428397379232513895550640142391307665467538114524402470683765280641424872089134513796385999449351608677107460143274772385102847494666363346194172301607736297628897725128300258084687726530151682029250873001346219923156538719904106055074193036339018444239787442338499826069676057020535368456464272727034894392366484590024597949473948604166711335717028120922680527815688335313264331759029946538574852184710972047718248056721561923131996627637828206706279778643822558087274035538875576372258299905067359154147149474372649839787057663311505334211612174534089654152155497746247888629118303526040368732822025070893530843523458081507195695889241260528757183964963055076628600911167261753007281738884588123735985372692992626426660021729769040932291664578008028615731050138340599605215180202337467493294109576913999967663852175374648850721464227683648609183197332363921592490390006967888121011297463583734052586878544570222146208736858727966414530176263354155887940590732122253946707378265467560810746496041804339579538721133064646799286122948571393385632976161785089115582766119790233799986635770474963796822399350957954508205505111893034779357024430352830442834702410590461224680811375399707428743435120724179827100082933191371419288771409898637054627113614217060316038877158734107562660346260346932057574636326530612059614741096786436632812848924621727699060440035648313727017184326110762869070629628767824833725218167849520870187388883526681880688561553821029179384688125975922387175756873776636521727918293598889124812904849996547644596555459515319230198673421439626905245337463449860371792720542796816889295558794575534131465881283310245574792805020086669571693957780153414390677074688444371997229473142096243098464505318539652190602671100605662171450565239616762915821410039307333892918625670333714472417092407944822081957934969811552492557325408808831648195199484925188597971817916507188649753536943195763660262426172292425480056059572174815355934092538283243334477794234508946594682954801561640088402355037323496549878662171076680106251027447234054777387228233706324422346571309983353563617904512966453592077279387939270095466014610509180273269755513571365490940517098691433383437353862239566253167050813221234673687814427618547883058500581078515556788076939732421220873066182620090830504150607987867207800863874831471046796221804394757556309908624424438280907075163603921360973967193494081982005189308463418418513775869421385970025192357210352359781475656283700649893580619427747837673671656860440124253539425460837473462224960829827247240218753734151044388427140893032903966317059852727435757224919804396406893690833070460690336340376113566927200801720601652587016620924656531832178359034831846684963362317735446303933793489237958382338014835246620707688841775646825727171361914835528944036115796246825347099957785414816484667357356113380319206582213549678296294583794899259090657150858589924036877724709560225206030410594547223573430761992020038703424402223490949671809511947981181231766216132812657418887926717804023857800559852923256156882467651635904834058800448384582302419984176242039750282144203323781364695612918160908807052269274478502357943715614285496103309997013947721460617450078824754170067917818813373073553878679601012421924341739873289763228098676229374534372899811725930082223246243759854001837266087383264712072554491306433644995100194782544525542561198544468963386192334108861190236636252006167177340726844487670870786339928851878574886890695595205756080655359723625548665768065997300269614499791386394913764334395117818656169724575011955527139876663310241993649615936734233367659351899510821050854558659024045243950149586570975168801772980081992225972528916152832643287133019120720262250559930210552005936427206720674365808195919838946862415075380275165662282604255844872369634231527370496473601247293747058235189463777287608586271395235999069223258703599107092753607717873127548150940351270138170794870400279463643368842771692401282640444753830021680605559739911153275674304250791689664936534610664903033926454798262450752752970355117029389549392605026116732805080636191135041503872255354805249503072592208321299167699393857896052191904022659329689320152805385584883267673657568583799428685543148848459878043199371078484089337419779080033863696659632700048007534107331302869582860135928766135088569413072689527062211944465709013500028507817008173296936069944780801165089977469838327533544622311789004142445612565923619067137782218830990126205038713863746110754713824333342606611191124996043119748730035578467538558093194053656414387240871593070280022336202403420926692484103654139246032528151391060258069008679246947846415137742530490811333748592565903252108437870583690180305933853297001096960008742504481418458925985696534556980827237127625540048379270764101702087000675852444325775264579036182680360526238789966875626868457587113494826170278726420774053277917839660593024680537612528783622421631814764204764333456586924291561946174147929303267274533198796275905105825564390641279605996051629410558357700353656324285671397243309359986178485440971818172554477791409320959184050164998438612807378871881675478875650566319631976730470586489462404594926976645328510919874433735121566448881451325097829979985682830183029271812658757997491525942142606638449347618236694361301000778347450454438394059463825316417469621679637540394915211600835534045873007034167447688538635372417591191912573029628757699866983060284505512542557781304919657353708109753889805144982819585172096328879249759668785855762687283638577142823352346656795892694854891954487424195222854027581013272572588484604654951851622252721485896972726328951526610074191959717832883659455976857057726284785595448837240757916288363148490647791455348726575585011194226486996243910900959484219505011828545702189874103457183898179048636464908296777315083677699733551507417008122025805388524519536398345318761778123182923384516149201894678720217480245281591901242255865169874725902155076249749122673765945633076166021194348403239799144070248817343433029272571092865738989424064956181090979765498511842477113390072880929901630186941142126117034372249667476682598881833777489153001358002314602426047205527579931989940964316114429852831611486989731748642308262649341631684527801622286945217652487890699556099151096015879416910388459563596685293612599124572928376935749499600063745405102933125235371942115650133154753736280907142815773185118592763310014484781157730515727741163632176299555971064374278716404082983071046305419155993714815391612554781126437438903974521207357576777750742115050829810085737523835183835753993320297598915782488050412070590464407322768848308743534512264547062694097544451369757257089150573023242573567272108516847067390111372101828058046032247916600738326914541593198292432543374648604963396534224817293832547511140375938437780558100267902359338479895865486078741941416884073043417349690424069174289582911338815739432277101561962477635519024021712746862782472197996762662900919176955643810538569264018591476166954319407769348965559060313034157909445519756029662487545487909111753269937093712638067225675146306074023344598314820578077855253816934364805356807945204538688872214580520228137165269820116250616572973797480750029723392190975012204947494170065939296729602873876719522255063086438503602286418437662400917471903283390839953674746861310109327545085370103248816456357548955860367991893611297876190835673731227482378182701853106426309613472487143605493189037702613329120207411857020396549233685908632729003478722237659894186318952339757526448262322846781474167839417587877928413411223019880554837191966208599311296978303388651675854462279134053844760839423555344903316330001247579965276168526319453293095962731314672619266181983219456648004891272404216573041363833042226648978515562645655321971144729732605821321486152801009727680151040298965202063860686004598161428523749991208520934729230797735030153390597764783428907474877815173481573626882872884730960864188664530329476007533093585380277049260073288432941195208648297113175937525344388958814255548385173295283601137791532901133575981174759080829559047506576584568604989519869930506625060170970783298760630468160095210972977875136018632054589557818005958757171911723235091578713751539912551505260695947605933157635090917977332083361368071945515640749533035718842256369317118343973251605736503774732145350056359563826247493638224705836847521426072791995525107455130424433833640549397003333713488002997859465754494276518303412111970210299873361991177647930047649326491521909917772362558052712725779928418622127220259472957836424156951838904261862931949850239808827901822770867087071935398018357638280472176270261490249184634025236129564512600179754496131220872848373883319385740201890828176785029850526215633527508339394101455547212563763685464079094647653816550805001796737374314099089474841691430065081182103990094191714290554428743486917780828412716328334933373876018980519238236373021976500702991998409539536408192939354484433786725257077729595961387100715792147218370758041500544134986004929074996989379034881020827925069300574236017467712639825044479879477551383688753888207757212063531958650030083910654471490754927971155721846090155394573325186389812858246877695980082741765554992556526378718474988706329149439080307417260367589680254871837399996196829326612241217067713397137880925201702623014717820800639162135982052973855055582095940333264708915619555223566380626412574791346382537492599128801431261443620117181006104722585841850028634156211568844185662028272766006553624341653186172705470460182952332953648960573330745306473007739458174055622180102965869545542962321362680851935845002587357305866651956174463718111344775636102931642292999771284847399247914997524697574616765240133398871189935029199507259403541776788784275863173386202123143312232454999521022646419170590206372156364870441042698336333313821695884831981209369368359190411493162347872763662759215456841070241740529792569429819149817406395271447869051184234337195592612319193757906211785809093205884794836305795612156010565182075216489529364750499783642596878804760925999701865361111313604844810434313726732714932517640677959128270418092840993021480957457866349377922712137553712549498364613219105479011950805481637782317553188054048344745682348295528213063830359546479755313386037131657640783340885935945737671967408625251809781817880369860116613883471299915377112383415452874048995646902826030068854276345189623573554618158222214071967866843102682655738115194937131618234925304365477918872773039577291667603598906829849792753264457930205625004198215817833679758324582016703344016375194361307936066877060596155074581873007405885541857077712937653954611123552017737452675365027712360102626371140850249375451997238811849720048529540760537575504863349851760393434036589529608607344805531229553356882145671180576047588419420583496338454216537702022628873203281426271924191134698071535062364060488010610176139643065506664667145977479275127501313346596764639606994405703118605608781228063289678165765372750629672835762639748283846472950189179856048249198500799160923239976671964767833012638465080880428311109850255466129686185565035001236106852974356644656198492092110126637583119546240112661948930083828438659999992833337948765982135588393330975965394351687477025420380520337338231789387828254304773685927377235747888656685873609256869105637744685113155947867365164849217860389204692057392137396597629342661799387598861055713847390158695380014400337739425963524869263689609087053952625109612729088737679822241074767848829902625921417206513544327199164599833303338205097023670379189129777113900021796464556817013808941825846295987689363592439379803701260437000195453753209475856566862618691377693236555385533736640181142604011712634532053725124468808392504553806425476628093450603910861511948831424647739359453611346263253979030531061551540475704318358069888911685088278357540626047008133489427756419881104615033910819669743603856073267087156087766588589106089607208747158269701690562668719926815848335174102410950604976133322103046832009316294819666417866410892596335403862924130152476404151953276182470723527897727695774543149145720405417995318578837498108505057157671110581585216705522011002403121471715798464585433248907341098761099295649676156544718806244284933719422274740449837985964755841334894107426083336152120775019298015129465672084211550763881645988966176464369760328924324510530298250512242680703731212808393512202255408415132029479998057513768649336556761678499471334926956257739078483718248283155679298197287786862903631056068580099072224021538766147136448019656148112453886271654233428875619797920485573019299975004175881862203550843526937422418347754235756053467255495615418988381785602926769085061313659528803917355560245687971772310603217457604975950232256294196379063093795581044909587621359167786582953930306576530923070439867570625760671427063852605547595952532130478006326107107680832162100145794640977692680069139071937272531922852627428957389504137685477459296033592272625266668352170703189496282724565284582414254606303728040777479798854129463539799924647469133552433723183045353848908080893152518135768485272858917328591746450365612006882947050320471690415376867800192930506366957785508855054236989012229808779126706105235629735806022201829431580735552190937586577473626473699288881279782933393499869773523241375993155463631192982070653727478607258997312069306272104015723943842608756039326387063929022190308589098777220198559385372688147932288292236982590464309339788165229985971114388791916811255637498313161109319061156325528926120586515985149397612705562408767671406059062759367897286320465589407531927159129511701844375575853523697820603460308111408561622204290428905287093487193875366819942119678716034475116563217044041605351341390173136689463887385553138636824336997598597061645706267041304591264372849891483568904556090934810115809231807301845998408799090461574931098614313315919784060635683188419505707596210326850840753951104607136774315063186556811750456842910985936094863468695936722775807730607288379881424681003426858744195332034222592225911315687185512988438399771818481775752765286872747867997560955981443326979802322469251748008480437354026738684446482509456837198696619833088985878352579323281004784980000165924072903146602815056472411034520315765276577171450510804603051297596390336904878227083901331040053851493735374972951613489722639790211988963444866201881902957692950434647230578452652005806799064539004955427487396033311151334342323939281539285755241892542753368993670767360327076953407153977831769329985800290247380912222702470030149732148309934933241880821118256958623294651857563689754163574689598660266517287106373178211544073283084095822937176862803685645159152570329027569036857129883127811874734596074173100978847315628386494861931043501661812266303769593726764588538380943049453023030268014210975502503890721484246009339875439915383842137754597246409868737926602794166204708663284387662736608782721500359892776517074454770653839619602834310285238409133872378563979536825788370583048947266348134821317190888339633672412315363972952037995614054202652355733182260536030151610767270161366775347202108995240601901907310716711572131531313991087346049948558879305557329074866756924991779147777627525721533153059191543757640208556243114944537254595680970256475764244423090474070144938720093148556612673864189942549493136310475961893303490949930728432409009866042964776416063621289476951726567416922104126791976202629175585305961605883598150943813988815546473953900221085978718592405964780276788923924280477323241680115088099429075130067286149727378504160015538097278691011653816376029956001998756771052874341796486349487590228434508102484523242850619456464928288338024674531436007665393932531690693471534111025909155950980999607771081924043400817401909049952241694593670841551263350446837423540829126465380354941695384687191594786448216907197188279045374175897865653963543641749642113833239127266085382956774626422043748613750869656038144115446781746318241578012548976258024056722181651902552564665510417840313993155273497012827464078379677343103957500116764350123239218721736939561572561209629465861258179225997122936015604832529324660590007467538289113588769660502304327546441577272041355353431069230209904095882802842492545660922550473678663353597767011475477937895122163950391748837006069208321431310565114032165914971605450331526087562443039751201627044475665497445082910844914275328651257884320143371916195074243458542671276811026007996977327310910874040713888398593020568547705681283700324106099488089120372337515691677129447677010573628517526922673867332490411057618836343343739931740573619353690777058069918700110387550682586512339634192984733096678757320329048370056903353621683728691586822484931645864130995561280761354315839479796503645798442252939980325213460972862269536267247076289971779632763346141120704154148305304401967545816235986063466572733057403342467568253998855700384203956509771995410026837628297511970715692877805882319026171014758008973737834649921004305707615859532250733610872957027150743122979203137211031512057869458182420174183205651511753381284579981732961300097228591130828209090533147601196781850383675303470470005787483609975909091296303441827655051198429426117421250174531088376152772103209162330883357102085772162595099252986436418206894396569085647751243182903018353395109114675137185342463058517707443432161316913045445620729557791498890485478502949425186992301564204823672996782085432770817139937297136472855162369102809439490498095711147987353263361086154490921362107195786271826589846454595870090692492488205234351128687386269125293356955656244015333447567162409478118265711559547566993684235624999792277233328567847862452694981303829576715883682539034846167149680141385991940555979179178582819757848123724780229627342713273807017121315934540225441686146416206418549556220175802717174193296040307242855759140374875241255836486847826530579021129301504600930097911328939110209284222126288743972398792999872217126802442695704364082691751239472885809766317352190347740207830108250082306867481659929162142043785596907008396343174915704007049111330970230468766158574831350801444759928520207278604062469098624581837105663182549206666339286894164223168139785374174558983550239814134762756866162211863675611345401850612301450506414647662002547937273701691150910570058805838552877515535683461355508881431374498563637773694334730779223692023281951260198833485319308413912969210345115664615581718451609186530489711953801102485257498931586472339992674537252191487877997888075626737506387237805646976435268613067747611615640308898107229900613620291385538646836842458354434207249065269431319263630645579191032817462246523050868114539223790346999357618192283841178311127342660931717160547230274858700010478660598353687620423490935631467935443700708676044416080934303889641691229384629350216611002107616405466145328261330250989929553919275962994627826326321165658743195517335942787247995482872278107931497771103534255438166350502182004755984571947076429678271587726848362361118065924451595282915230181808971672271763496522837506807313174144533509330105586215719733675910516720488567454157281632172593979270182677659278790726975958652444479862784876695394914610177605776036071107508660345575557129623454066377584487731406580502181444145701216138894429425430127261439960397515488096841753887787099771053156896057795536359670078069985650119553616995819109185333740366199906618677458653659378289515861921683583853720551718196699002906225244297196477607657921208349979814831084253380066460564654628441059597587010538378376695134144117115765801529197239328318237419072418270556211429248125950086219348254518565539701258406477745909416107789844866798787983603594306705082646985065096507142428798416650133033647595971329458356905875969705836598402375264559514284152743093476002848059737445115482304008577453819441423549187838092922978318441402238443611232216885056243354185884325115447206432849620845632811941082705883189354288454365054845356330088426685693563642890202766923084866336118299142987263879880682998086123949763295104635913382691252518794669450894153964933273454972994489836299473991754744164719717317798726839436024010521661014981526554162540385451779521584002495879879741049524800475355816454411607964967437476718422118358157376737048968165761864668447399574573863895284956651895744786659777819507522588829870247890096406531852047423769523893355012184785996600740896503838595147018040723457768783856075809561645339216884897542598305991753761013232063543253442404886000030908226190037306341848688614387637364941788740120482609505127598633905097702424725298017588263922938707936732522111670579264414090854374014853045902503716963747745860719140542569438156117014437888441888309159229271920358412987162286685053246038943565002307341670837518645953680252758240520923744676573351270601601170349080682223272341214084695966733251615657580665902431013032064115375116874077567874060359258788617197363493677111426543048470811333032318663398550949431439748048407876477678327705348801596714101698443566978084548780518231995756407397883177027113564392420445203330076097643679699900409585495562013135848058753749472569340330909172832394183692193249151868723547739392127561179466401851180013807501027772171306420425326555361143239078820350945377075084348892301020693648517284976129383325793163280402402366224770735848850558619602148189507568896146498647108584644537329496552333726418838326212711782724069322657157078641755728961453382916448918652049552729526330028104982310985733943081602256698171115056421803074943611078136138968220487736518566702091978710942722765034706338508550084211709404050825699245756282826278137513327080529455232216084540576543785400717990812768836695374975228640671461534564901126938742671140362151382047758754942856572278533665848729086917495101023758749766072301695185736509057949181869154204951481895063313672323360017919244397594016416771983594510693427217293483713315270825228587814764495406616826606632817385906468170848098019563095401910023030383772107483227813901168208258238927793613956120621621339157864079040962777743062394588711681359324124433710944830874229948965727049696689190976787295678568374918266228075947073087639094291791846467289893503816657160323834130048221490735573101147560439107642307049971417179272249889362511853771844565361124353668033415834710999978127504593107294920164004043873689108489000022065896894950988355454330344806346906836264269262252604805038222965665856445463817257872024223930603167450160539775516554246030743256914538414066770009334817262533785783695496880181971420758304790250454493294344080654706966709208196687180957451822379033311686660106588546461622251368075580728178399049938203254035222214791278735733792405058170479343611160465752035096499203009430633851515570103965436156004250209175408368025107569627240540070613073914839978215497526962006777174612537517747408077042146949807246566921031380365590139144631933785249560765128958847039568360052405603773226648488976759864722223687045726002513146533027894907366831754285279304364168449130901482297794441453977670005047645453944199744253400902206497079506577866762562579041678795171932282160484279042228145745555525850110505111853205128248170449340850065111058596796611348054315799010027116370414625588451469531501613765309863467935139830644217212539142104848401806995555589338646984470972207292044160017446457448578988521913325497133025482098021992094686705513088504112321598940306060776407088621530225283963061061498449297470451281206439250952683933163016535406892928056518715726578741194021747809172799541874118113737353482320492402854443728542414478667353172039728409992107533852137685218992027547637515508803238203451410449033687861055113974555644534413352805893314950724154536504253686358765114645577638528618422250037354433860841945720257808362467051613544121936052124926547855797901126581591993322554214733610252203564003582790857550730527883543159467417937426497407409479489447795731660962302173239728840260162155089907451024629671836859160378905981635743926672782950299181795702806863651012454451544131814296541845245197887305202002880204338955209521262425068207362516464829688831505095970100022643721353487858260253357898428499264259849382698655591574552277223044783670045129262032590728447007071826463942993971057965049240272151309090201632257892936466206907911418909170955485858170999693984582418886230434638646853709469201908664425001423704907060547944016363622448420494614145407334077205613675377994717434641869614416355642947159197095912457298893923381500104122943958528812429031638189391182936404756748013200548377764224130832273379016805513456118786526378739084602983248449677767652671446090984272409221944208729050777247422712849199862752884095453612244260812236730263624166646367695658234050934786501143545223017211043182967461181271247726747558418347391829646892424390835898304107786122216466741392745808441093446709140768890811548042699046447661790370691318643164487293481162475314270947951218371189543080160613686742330865206856839261480478445664749457483232983711278348494575681848235738129672986025094456310021387076804904301108841043560659563291355136365953790577450863465841837937855021385507306606203236189202653437965542409138866780517648660235568680102444381998217408186830806326579344501366069588311635276590196371091221683021799431781781159756256933481181759016370453954880025438691950293948429633387880232454026868311592077147266096408147297425641352377071326558656729260935213135632697386334513923237949127274160440716533283727666360699207828988515818900740681788356003383955024910544219136949438402592897576804164798738875441907101007388250260025052937157120598821799751905251548135128926507035031295388797395196807146312979739398855224067710747813296611251424440942546205865605638648411769737650932223200581373898885989302233630809521934265228150675306773116834992003074978449533317392356287724988901104982913538099432346738706479293918382984736509174159934422418013609070218537683948237197255148813881635282508237808756177303718593310237690155181489566802645106695566763562703316375504282184693552607931286771716300815229705250139944041110995237587821689870722832415540437859493648816597106019417011177530819779600610206107580954184382263771744158930893440245480776358985983864600448191306329182121252200728063408905627313615628251425972911690969621167408247163145189174736006959669914230808783383786865901598670223214286915701414248070458972191054200479042072618389456591675766243374816523343101319777787506264814478962379685449183339325445226328238983995521435086472399882461823467833341203496969634652310297098007031272981130029874875884515562844310131560990894615878405840038361454306275028384345168367939943115519406723368803326183813019065159316862019183963643881182869704116494587694221136576981495173186043944768192239400670145512792825405653032464235241908378911520916520753450114775133761761316030346350015830432411983034504597311154802352914726755652853961549825173221870281189147558219251097518814749962701832012386646655447096270322119673520668256883487375964507251207969145168739639987295089292861505745093918352489864171151563371077207043719429897852585410651220208721985115201196820066851549509077569921619316805761225508410799564473572362115138442605911878523611115766746246167605894908847321882511881891653729413018475636508362290409687727075906307595173734465381235816720569986154493374413551158082859997972507000542569584482904215703296329695418372061125327781850782435323918726737975390106042189821333568001491762927635897397491510336102944854875541265945883082627308729741581359987850589708156429324159565205722438860158420781047504262811290442552635054829661343198347557885193222267186930364566727102649599400511663086637317274044545694973748748521103317754936462538061133447431080683263084662203937077310524427999513745019352661423522551418680551040050214387677859299011085925186749913131450008725837116693698249769940841616062428406308332897997161870505765196240492431659995151896649754750390011473989031896878326455784745372518045223597268776687624285075381661679248800082340903203480714652289022230806149657427044772212502661923714235626092912260182505837318119710390751753385771378077621317724528794791583171484322731473506837177881579852023035280059999869776669370082267088042043304271761036044360211957405318323977508253762435335992587448066952313140950826729742008271959187161696015340654578147571012432947034049890117240314562707007085891355513065947483050109267533105047676685100687279532443236896493872434914018868580217669706551588502561741520703150927265145873588577166907411895667629416813405784240677338866529843358282099209279600025605373161195748651729717114043583683023331026924475563496301826785735111056397494733570817580632987076680342130966827261284795060436152654421703635540658329019547411263216179414368623878244681088510060879820657196947315316887276558292548410060026288708470726414636981454676023069064848000195089152920883475200294833011835707147486046003231803664663011378346148102080104082416246439862858027535254054148117877257844982440121535808832631115767938834439941674255267181270687048579050017001882766115402598966456382269528408612570000031201513414621462743588188113752159623550909618693482530381968085084967571308026522100175445215043882446963539135452229483822752193978161006308157139473475716433100288572011561747191922667719543692831282660439606992546372196029142537779739831674438120809721881883123622660338707532678942538559169182977283327312615508417484951235989157986019310463020408836581232828339328287752748597870536473295156141142985324610343025553130194964301167037928656376695698547963744374046951440475248627476738025589674084963027253885817383209577772704426596764502346241958872573593386155268081204775136402786059671489936812371201186212349054817129245481543023804103650148753567454311180060450042613078768221588514426730296208404822613694974262081760999935003344619768841879030415959515392641119654647748208496035361889457612204857186264614323274971918808584172165024925561228486704440794528091825391444698761813663319439606463782245081613817787292827839764859110463455622717222178176922974115386786214605724201588982175494554749486363176722743647089802154620073250130237057212162666252200530396135167883101300856801679877138600808744144960859610304104119748536983111367107082479747419717080824301691666177077131276333136381545315891337525416839840847864317750667503948846636777214679211218536122363167218880380661069859370237909631869224025911914634584614974171219255019925474796004846006334598186460801159374470373166319535189087920564810728118777240203974402460212973911013499269664898978223364655365129497329341543406894694337381826637786050347493433270290837561801105493469017933942873990566379697634781069552896198764618985072208634587475775355868446872335724917904765480775103923736396185466753334959708917470501031396943809023634045799030707248529632851430888786688074249816358563633931419476252306615252056589630703714209157446786673768335155822444226371755529054939532882366689615332633149358392812822458493254055594107195071379970356374234009731613098646213937953087094716536125650803315785044573000094141394600147452544140381692099336041159658380050630368254566308062825009488020034180021455841755463480187653567764411516477104384366900853706116905032530314683543713358180929240076805095818888803131922996604986651192355333442715995130769082085266296774031025947302259177682013259107773158578447731207588645093398775618726625393836235757625158805620309231213866578072162611618127003756053446226349498386252566652422923443651396972082378259957626108099849375422735675122410923244793072428280291762353753386370876387351815527482111244800245912464051115111499664462619843390057925463539496228889243623252186402524810490595955408365028689357489054200091253386743431340734226519599814488762644831855273277494122878561306225821878120011628573521338086043652520123507908301505963245468281892247598913287169435985142267573258150924982124899051846590727823763964923211904205643849172556431873441622962006044719016116127860806915970507233831799024001062116474775843902375746789131695701182264621770289457119136412685871868635824932717465627067280751367431597507565774758376406338044944820668352178332133327896776383657446746201728839572367211098154016213270068168740231366194833250104464856464603641253174133332379607567293733052122974579333525661685589200437596251342030638342943060971584740953801974115495300102821650559592594591948533482273271554448735213653447294239495596453047880531794558629341890107779349027602218084991851412571653165137450875031401466774251976476204616693113326045387896451657290843861519443114016151423070224716393990100437906864103416236790741850646376825660389550334773489673113343136294285431488760312473133541967098000845264274014209763136958762258591009311129973793600135533529207482985367204276126984764006676698661053455207287218738180679105816290748701076736965216687344878743827719973271864925542480668423833027410696091855007115354892417444079433704231825456068386702420523393305803173064778859332292996554662168705712818066315810759698803795419028671051589682183998617226456523727215921272699856166884308596839602871715385266941479317328935458449531502185930086689117971366494924105395301740136078588915471340850039768036453811115720861295639470964557427082387312687498873097059005337318346168969341709300000861680278005895674152284436630022965265070138562656843588862975858927122897312250450193975398801959929585946674448852792346410372473341353383902594807739551764067414764658014533037551258783915206002730545980582800834158675087820218298029124179773152353857706406771166845213368665010906443991846647291438415228435595778052417869221343902620970359030350252703283979867654871112971641506576891539350909404216300292126234234712852108395421664911751887684890160163507949908725145944284090769519699618037712827929233063139463215096579366488528671853658985428232404638733828178481530209203088315697267343925583364321632066089888458071136277639996649570648133324300804430706922817962968328613163949834158178871426219665499051404499949051322758329020397338902854257513664074283771983895137584603568593319676365422978795979675682839983101815254236665985727858888680648518945970716203467370351680456789741083210206877691531050566876687732933492002389350574436954451602342979457806030671893157679519089580811282704868678565179494942531798989854558463511016629241506701611762219757292557732222995795702695142731341258703602132593747642947677233855393949608034943296308145907993381594311461023743648260905274892609114997817599242523396972869525241668731500923820412128542613616353249136625137866287441728736927773266853389990509144288059316961768257728559277785548891224880886696290222200907105319867273320350125608327618654686069004612176551141034532831271204435229510016794790313350534253556783869192234312490521332794361256904680330454064259314334859893529878822549531857424881037641375414844998295227489027969508981498646907616443895752343566506497982594152503242632552944116596940559895866507612153399297486410528083098879197123728761697290730295301586338095431940182026691046931393035266362835832196293419502205582156281151008278370219142231861577528944307401251206982236257041351162127934474793737507085853449040251894677691474206491390247315240473922375703568331255397444736369775913101672485564252270498558713299184758438211851524915321086608709389477465558909768150090915524531843711016797043942272006065934727864923765594695847171642902578632718343604387060615267993199251780719606018199788961891441329681532735536565531782787898770454849256568315404843368663589348279115378499601462943301785359189222687135602115638066888736024524286151770771110671285143971739462566840777072585891951865720028302687827488064624862580451433334454133086163786823325729625795380067350910605339652325575968241504827951961974945905100821796236567014770564590274789801810063095188896213790376936533729872681282088478870106308255415850421334101495828542771806949463381388168245190344480504922435510003314142920894225768313480195104195395648342838316899469970689361239529933647736059673795630161780318422618261992081634867619660275866447118087603253007087453508535754908948331667080132534824971180676522815802360708233390414281170229413525360033063302611245516864922753389765333275088373087354659141118979834197708121109080471374423563241997436195814232767405600444674915694945578714935547922254176429822307573665159603939567872952083076212995729056463332797905608736019668380684152160053409822871768205430304948296407143779589677891785265134420901479656996958603321761028398322325242090918749756952825023624449423568735010347018741990530029380969860908761494567287112680687195992424006465327711570046123469550672596301566722909054455688966949036381979374684658665340679559719446297756316458243438624037934898047300575709839515821613921444041889422681665534895414328206155392681993338132341431398790872065564411761005197910307921159446412482298695403958669789629636022480766326311185609381709075532259658171492545809500486428193072375865331093474102684608835101765523297927925886429690577225713908291190907196417085384594544335991896296182581379576619525337770939593093755869597915058546959060081600343557079220572841848585599616477156190633768504329365545474742979308228403401042147794004948180654572922448342610480152048933259789368235759477584893907965398613200977738878389002306649650673186526505682839582196258033807020970898871414621585654426237525431393842532127573407453319116295517118791369927035391723508149986623779442841884334571492927103332266309932715918117779842737897501478943326849720515430723756063998772961668725323470990717464054024073987653076499928272555573339710224468522819744063567415442339895224040425483397695537147315990391151995816094959851210374536599442439645586621895120731402017735567818531957450015913861910640899786932831364839009613757106272347800522824211842642755283161285869760156604643183353361039723374601999153889315730285882691609204948845413009226258837771404879655160155435937451107898471808847009606077890762206936840737849633609634250958470825725633681267006429102982227999157619394123050106656193243852913122708830715674719682021862720194847446914775099587377486602963126211239362626843231533917193569137898919660667127709734322808251984750619540620344933307037842679837994177188238477857304923986255856611633528615279571343531452481039163835170550778772229762397920840708871158662399192331933649557410994937541006679688014265020731066633219037296882469804080705418631788519380478271412256541799994252084728832820347685848972552574718194114111004174156679999964197532840324093311906319210471346702337851518168229866134384617955922289227272479295126971190232496391380440439957405009271208186132542943749468080349527402878663862439341710885765745650985947669489218450064054656300785760186337903961142713096570463860917634603875681169616742477001757012096224159952976060385348857001481403137001128029694543163723511250880211913858542622105689948995183018091417190615926369347364953071541759066678807228201488291988205155707763583295672191122035770424951685061882953088988913377428009260557482311908831910313193929933455923134282290824495258005239231203546840959181180376700411041242952060041674976055582275384027855722899442909707922037347988086735001702235402887074872415687791506214652489173325524770184486333604237917427498553433628195137659386276403281742636248147200965705761727339321971370162499437607223256132787424937777858926933033596401621334413649840271139133842747075776954377860117566491086194270718291744124265444598136378594344020432286589754638643482729148367579090612462084323439039192344334349677277355611142132001439444322732038136908572979573632674477894386577489038591809925988629697792589137470528577954613032054330367752203355085505264185246835194929346835243286029416899457532838210307005971426445390140901802991823336647440778847072021623062385605597582213448377296299598832119434133694583446147835969370283268271410484814528829052616640328149408184024376827980831494520463340131479318752237377806414495657562106053033737363146674997142819907423970558598153503666209046505844835829037062788217951701095497639603291046554060692645863021268740270333376287090086360775717231275916195076539133776329195822156023957434293446887129808461218026897104243417090833099109858888883525408594227691776828812075617943969011907566345241700616320081014184753329081130030931097586770730363184254529334530976661529175236632365647421690422806169751560533305992507917682502236464599957033774761084147501885998830265520406832253239105872448941321492042015076366197289000406059272042496276071999299976515689850478820851909803573311574154465550052413149012439899507673779114797142127666155536570002998064352235855946334029151965574477372577452551736846772411482287637268001963584486242603798649865758213080512548677536718044961870015910447387934243041878546178704578543664944284385030411648192666718497525267073658399302540061886594630044259349864218873674667791401028992193519034198473257602258531948483933820611464807036489978670865314053173481514324651853400564085301928990763601600914076707687486498786614472416438426254922859816791081292052188229151944743470410361926198224968865018328788122865526149448724335598640670553488667642160769960153550823282418270715618196314343109296280405256938017210064387456093585636653375409615209936844109006423455594967899258652717374982980371763864415540833993324732813095490090911694426764709960605136670340174411830366225048991020282241044980053063939224651764328196320044478643107106451818292490155470746630136658502775050796766694470923111695074284579269198646547968976985744247120250261993627690491868938537969774824130205607630433892247367574753831471341754678297496244770665409381981829405339527866772898388482829911423927736324571601437337526304802632494216545565767197675193472054649944251600989150852653750800251075605432655377272342230719696794527224661597386602174168903912272254713382591553228452515226694697281730317552536710851911358876542544357904129824103543174423276434327137065420996321570636406096871384524624566335269130122078920780385412037602063411955394534694669493091620795819911659307574198269298778666503659082585310210717015018441367529138484739081922356470866562195031986519855569037476710947140876135315487181593027818838207813940008699996704517400589029294720495124668073909517224305516930104803827814754464193770269424932724336812520246015715348610440607590563320374178837147535214395727778827463861841608721343254982369004837382182638400925102155997628249241483239110024692789253625384807769987524168277515798144534559218091235201623092356187262035618063713743705012462568124886351162269475668968136190873913861168278104224664184881377491637758235307175109336365159207832028507487817732945679572288027029253303930356296096550908111234599045006409831462600113397660037298133881316144986246073840041038738952334677015604765647677437530913530360277306494854818181579855584587136278315376804648221524841805002436048592042481953288367840363878995631933216318317783975299193755242196596089650655373940446089822896508308860509089024965126472119109692294038660590913782666359794484078326763625443829738263161238512713588318951107258099419857239426389659059498278241780923504759958072822879833836706610020415953764569087593608209053046464560549835109037784779087651974600057493782685696226892365647368966400237614213914040885302285301422924022934239184746072891824401584031619657037005116503748328361213051792767920294958449610757873121931236279249070877470494027720766863951289959581037918255527573701990356398551282402947935134304701498533163414882724147087051137221073263781677079570424435254240265878491032309944218504765710476292622152637991177350294554041471979736189391641364679582508105253622100956730870705995351102328225540688081842424613290550341124636820625956442929175740192009705746751783787094973834620003515202350965822051323495188128809741701382800727749270607384295786765456512232806960187359279384225029823945265456615376890950037612041625651830107353700390702915020475371427789436880591732030271185778991766663425716426953716695933183141768646992039329287314780654549961055635858785803559889382532562784277975277486959058290178435317038641967791407650481298094383876881163359953474978349632584042566556488352302309715263896108526328413993551737005570157924331455713392635064912691032874574336801684708832101983180572589963564174994799914117646408783098587388760126224392915251351274316311424091659579854423119407426391419957370081936863243954288891892159073355711777251658869544944649051569573242236049429106113988187879781456923008256816350893376885360878491509761407672722017652632700630404298829853236041000240401829907150582095348667865854914752310391765304392444451966513425148588659357253061878933173290841634035522164741041543526137582181818791279065282108056644581700818846212095327641882361937393715845416545004613763475572691672524761025578021119822121916167692479946814851022110835468697760470650797023269791794466405825458784123513783915987868576580174717357584005545002169915662489343277570531623439857465121125566976159579416550043092783958064367856201761093695343227442032372778292126410727927331538805426571871952314614760851241207116214537070523460987352852535263985551737598862152283252706233171771057646834420711218489697162632921249061416662418876041786839653352081340399319997458485163686764908868591045268078730621605021495859193782271492653332286096853650503986140379957839323592680910778905485558610885924282242259277447736511781827001981388531607305680336579676271784577742916999791936962962907299726810304970969706175036178487280491571455323402489700865182505718413909708998144321086327430762953464830106029176031739831629885580769714433956772901529479249489257305310362880929885710977420343390389424177496084967853115875752446072106263522179995794483282496498179688087770356049069740609755815112095162050132770910780391346114751004969867719578046728236822175885085551218737882384355023971353564767531284887511145584394413075616690802194047054025092561638873057995935710070954215242402389738661449843026964361569759383503580008652520663448232509342891281594682468813110767064807271539213380854908893217446305978858112744253448813196217550745390469229226077868286365875156680944750478626722735707695371489726486013628080150844226326597221147118721715445818774261586970793886955923103553477448442710277279181265419391255476048443180934367966463340428283327337418506298654994600120905668609109495035208441838991634030696334351997137223404510183936562839490571574119917388142068644918856489681633355195066000928843332524806735584171337496171505509342637189402325303542599384394187718742088145543543561643034891031481520576588694447827064491099533521284325191049124690543217380510679418598805440128942512325899099623123240538773982101446405849655974158659523205814498852510376930654974893135060329360744818149989820111827492778152011324046430383400093022310805472595975512167467066592294443857107582935686515980117901994804535824717234503017639891490221449489021601986841517587379191682661098385738453765280418900933755032348767588757658350816808489804889946134638467583582758945004664802602247079596073112347087019012293963842199250887685371119985433129372429484757883611517408335843753310906659427013258032954398152692068105480421552102479651145454331971153057409954937838369320017065641023993968520341513173309251386082983961034483756434854709456374110604561666832802636976055941078600530148540321252825322327251732324935578822659395950837334009505984530084486154937608307729323697805390206948984365228679285807815810808580649532633173056468160917851471254000880722579371359859196020321176985166181382057266644879714560505647641742736841891450673424567564160482903098189791759567447997044184815439560470233784356812676177157987374873165244588210016410619287671529519773096125795040132799512512304460717376533044348897583775022006741467780169732280054567344994253724138458236775963995722855459307838519140395047441361758910074146226819297696949886128652985517880249933196635638248382941924743192355842676350731985803030153430748618243783252279335799383568537811327556538647300247674306723758445557066433223967058378975019401109845845303120397416081495286336512248395115142651395213619949280477614567228484431285659615449731382785953307673696014941586370703621756586701043035869611457917148344582054822959711665470211362772824935407946290706014037201690357789239932630327260725450600403646050283809296100760006762109358216154880968279818045908769907558279711149674858710365979817790055992046199210862188333938643676754535782363369890881619356421821095595110093983753747755465860778655943306224849127897875450813558000955361863224778945578216728582156558348574169205578223436150325355191306945196005289498694046865586452883932391961240439959477905755435190582258127024682573216026993531237621731625638973247571162859606999708293949598146454681242911928944932167578936358775236587083126261297689522140371213333713736365700974961114679547389402162548668414635249814865684371299325661036903209843245244363745789283274532540101378735460870857849153391330184879650215888109299037143501149621191972437270363318901179929310091989720660589194991838526986780058093923091737819542985085168466812992334259466707617776755886208012614126146408861560637038675646128881437886181688406921057373100714712755602825523846104942873199498380141927494375100694790609597627570407425605279204037351322564372053200969027126178788419582439234331652524668209425466272979348242095027327770295359815649824733818061639387154774919753504932179174320668434092062017580847783051887549612442395201189649070476601860635733321398793734673914908088123513455137740715586822235455884575446863433377540313871302626071462240117170602401065225491198646843096415721944924460282817325253667035372300424249866064805311275019543565232256873826351560617978177490363147504957320325827228208790158003703947220784711440853530216267405066505125616695005739908327325068995212697526160602725247283665244676995469356947594725756685581189425853777257680983976858806496441857538717290871623665842954600064572836053138758138636294410431346299537418277627185306159193426121771320103100211452565766902870974555331090738581112895514039271668752247998498749917850258926890214824595782590518644548253086709605415246391648674819969569196375971963039809610580335461327894359818435086974525920005485900303729616830719576226854353641731181745095799331647769077464027402590525538809186293686045867395211331046855474844038171072506636910145573147382825053570575661393917552606951868964925034468664749146526156085505037913942029819942221994735438231783223036847137330247485594298263804065129848919712773126979399424468368139797193089451531301022820717602411322963912280618157095376184520228786336178426103531073417592039782916543702395343092259108501080565591877252777554800270019294614144153767227568255332141737201407471347884434363167591614387225594330494977196123384222661604896439624205326779704143080241164011968089101092063429038027925515696795324416192834866410838286054415369964365931969137777870059360304820229130265145922961345580297182724384196876724370844926367550705633405026837199449354732652656320662743808369958263351676070823549529856158343311952439229700398791067526831494422487587059711975013571688080770880163857843277818151302778683116858919461143010895892183928971335941392888564885450916372593983597420767157074607149752460598639896695746231577768604879720148035767956484589821970288761612319470132095592421448835550576272323443484264260117532230618223035658508047011011899193252571720549962926641297735042850437026228972358528162675637896302038984743559480612173873906685354384530392931298819388330411834237783614780597575058406622541336293357809319478196639297423503908480593200697899176788339686913197482588647470862799713132561371727308165334061394625685505907275458645068646565277682555342972140883383727882010289029324031324210200261063566424436966120830417686932201048993451559732117466300908671200835572420529225106285030294066927058050440068181922735142563465843548110959320734012749694900025447207973603791646697031950338328483551676760583103654527085765549800282394782231371887039652164207841403863200501687559289244248916432107962003137110746260693591895581823998836591531097004235817429460073596124743290572109290976292410410656620923503792443139268903030622034078705847521368443498140066439968281777288328306808296747485107268422856395031192396793997022782808329040391879427012564031731986705480903817290109382677032761818733382332992873542517912146741696844438416099579217349254754115169550363292946067218798381779848868362782909979843021720417536252229967274325716308033262679427008834667993123722778928049072690634359386334482737349468718088069450888240689972616587134375187407124435358999357495057639105502602348848319301097762875184555561427972842848760393872130490902541848842697751401162693761395504585689904730039876222569569528522702700707002236312782756472091890723661453383150645086601571667250304425313457307614248252993473550820094811107402642703287961354558997238769243881097597044445727972255955821483185792211683819202237666014705355033299056638996113950200355900395314314853199973395611006459629555821496162158045516324961524984625491338666155661305747107306606494761259251347398672404294705271394587005711446177435924891999977985398589155458011757075458419857074644417157352870883181556649067116137205248421240675688333346326309394674405915392812434686527415076367108332946799307960121322623629719228890611294395686589067468858225888839891650188355330752331981579035535868551557820654682183321590742910347469567566339248541522364537150038862178902634313785302662274488179999873853323415250050507599445291601038492429647379231448519967640031204261931101839001074559769324574399651968221115701722500007801852007690927995274819572235224900924551021008329435060470903821762340123527848387377273143198123533121673507416247841954632534461520828912237804692290850938628075267737336489167527510886718690748573151179871911275897371721222006979026862701539770333762353916857302353277808051500852598175329555080787788667281565096669161583911272169869938875911268864848545345289838450017200753178809612734774403004524167503239303836706170710130550438058717306756683353374537830368559993775908695130621846552857923593391741917120541796998725613245326657739756970932170562193800461482857499893752316435134747073658820981060577886541651473248981787009463013850792559222607297152262038819437484391431059409599258433446565768173968932611045987010037275435251163774416122729999410186195660514215969412063551314485971954528608097486825487452445903626047313806483937973446818662497007215547106019350023864838934375622763501279258494173264366237202327855359419493045001115249370114763463415754264095574739430694456354236208121224117637357697086777635930193563836444028893630507833322803667474394324865707989508525087274183268352719951577926527198763749979076208438946347212620360783081738142804787855497828978622747244177003016325501339705372417682815323516176906921997025569996205464243726535775472510240312994355386459483147019494015602668494303183783693655466186656625470825860748948397282515589160385534950645138474422118827562986206331356921343505354175325462294273857018514221604797918123913581857023363813544535711277117194321660466143101547419821554929047562109018957208060623490880290406785456674637241772486811900742065578482219295010659668353520867908758553449009271325107353781311232860041052918835504828256821243931809785796664144164197438465035975431670418385214590779433577314964845742148608548867452913145745893151848342050585427211602752070105302881218204425718504079717735193826444151430340000389650835476069521126143515144940969915151783325851724798947405242061004598407363843511382982933537028551641532818468987804359217581976011103718826011571521219899280357546083887409473752204063912336289828066187319532355292040142200095154808807061007453865639725897080303279855124057096752994877525034838119148447639606902399800858875101161290060080769119438103026094948065984761969048059321785213998286590163613972947333424529757842997590232889212288761745364343158375314378495746088747373425879587582199019353898142294239179415156131539793025146413798608959887675413694323040487028555419780922958044698990192904558906846597838337994492512716049413377907064865785894967575994050617557632934756808289220291115491864882015921461776544992118272549886765689622517063614832195140603084486884294749081714122766989529766528467187010729193377929282443532431382852063570615807692592826032221194027687790429240836532323215102354075342321094760532101716780478896041685107197396939918618794634618967971354678672244029051644439647829326694635849186615040116550321379582388464035453370675001468245089396350840796338833931644002155762948765545149622984945735704556398458286539010312031199558632978985996427424165456402215526931176182193404052804977001395818569950450626908321844220985806560360396650520405092652944916311224741224398545523345939736021584889595645760356011239472260029091102323581832707760318192895789319120042282972271927680105785644667334020318606579759989767363004515534412122274649211784192104299302330475459340814869573388558531187892572435996247019581049408342713006597163643751657463710249870536291692900609979797982081471471311289950851849200398640461465302509949141434035836955688421615182000667253985853203567078753447410182134499703959178739753496211472367771510750644341932067097848101390611946814299656594694998030150150504394991658193643406175471200602325330510056856619953988521096991796810306515662761140012393944127405040656002217098547779644246858748631969461895510351333916411959039718938761054426423024644127859663201484795527322743409286346200984059824533857638615193364432098339181957496295052527170415941103294160552007079700445274265503291068016829182150548865729790830657332005667110403931664289460739742761327206991377358887764684076726016450379690906737624912318156946132584214651124301808862838501872732082930493205348834908022579996208931538204345874620625236296812240775571667614708332530743518028015646615241233577266654596895015351209640740987993352511242368393255508040779538906513598486931485726874899490140853001062540369844024339857382126776294549192772819270727100759505419454503790918051636158083628887001538672439450070274989843218556764740324714392366484341116062093101960182503178068353985725839133571334493036144917086659797233388145309217403181174775203258167433894582649675275252036112627367210976454313402380658720112513451461172380163835947268752281763835665589618861321672998939401494125103564658336368877609065883769674182919192031194564697809424983860904160330963764529279423419300230174005434322585462509474354551709683543697560356501992385147371849267059723327757979117381524743531633424117298458941291075045550428858777627373406633041603918082687417260659615989336077863307019922231846664888930452715240551174612022301603661921939366157937867369615816259730058212811282557646795949402814667457604557747067390220019769831825970029381954149275908113373323605885877787161006725835962326049600160589914889342204736161327100754523004843943109899916372218862326257224723071197918230494443514033574476639708361069860714457006927639663973492029218346297644381860189376688053451277703848156908540614032803615028038609490335348932303579251173935304158411332654712905673988844359308222830330322211659298541919655979718488542388715808914036930161717257001557061483690681274229550279346352264500686934307748207466636874761476200227501815517969782667374145950438705887238733896329121395730399466305434028913277468168754669502161412465503700912659179830290388734841761397234339455693566008380160943556137855374689207145442337764671963138464652631570101713235839748746654423630277928541904501566645788185997947897125148114050237769026172897930130806565716312121207914290705421508889837954536591643551233417459879480927694175114903117460552245578545813558670215309007703195565589959974680574161333836164169114009923341556438683622586644280794033626701052266693619246747237136409054289852051883510036926818799746564705254506826839362640699442231179129973336410667817359159716289832741772887230205260980424875777100698819624037291271628455835847840340492436487818337243203716187881493183663213242424242014718798660129082954490209873995954287213906677698275630891679421740168823587653975042030244898641889636909631627012055768196992915499277514254378812946766508325035126716846644844454724041012452806421783273222776043691610288078358871843710051808401795801410835281635163603805346307638919476150186986736706050147556545191255634854744061620273938350356278561529588946817016999401433231109528721244827047206054602585006670407579111413682790697868658711779204356114892996871988803259034954625868507864515607372171539953391070545742084470048998112828994216021222092624494727454056103582092642512678039819054526594437375194281321713703361259105755169899284729469534242980723256290258883626842678447029836313294966054416253861474882834798167322881097848769413234367188334829751327755520981118356612998485687021734497159455814205167601363168104474987091636494315666700163412473152631466469447022286028071181399281588875163721426683212141509231720573189111732882598052520156090041554777595240408913500940365197084870074967833274323358869463126879009850231317206614113210860760486195706356624523048720492970167945781458200903619280678213945893743377769312698768681171248164084910525388423933369089463540923580231081725576349979969436459754448948566477328044988676235789173021502698796454984277123360252396013678890263912763167334869009946588810286310223749553599501716187794059542720325680750991723040604059244759347558781923115070860386436400166976935884441077368702845770379409283494140282212958640752706393539930444723850843968852757779835520831758107094826865455149234677116451188567223807600629987818448782700527203129388479982097194320227571363520398880075609793549685072221738190964275756846644078438497623595416437898607166734860499536429215769092696151709528254210860266888128762132282887012394111213560849984856022616743503488305211519952221309472231188245473926080854412153442104345431104283533610723224461095047549030823849762337877239798576467071485072701155033507917688942855325655578568914111053937681230076417273323355555569581979516167876516112715880238173705812584337644549639320903363088842383134647413254157583408532870162147846752736603532981421989990010399651663985781627083589624813758112852050274683143462186542100287357984530641972173311190325200734619298128722951789824511177032832347598640395627061908545507358079165897100777640229035197705516514631569542884142437557975709689422328873125015446591323568223485632308818621486917525444204250311551711252093266720935244538532857593078572051963112677159656335359564606638121569917613427105035796893469256097759229113557550044954680939594198807691937528886502489711246859161951191180573662336507492183673283957490669396689948638812546588558883830330864279223545971614086391328016968670609674779349702513696709492118518268068371039329768182793490904880992685297949785573337154568122911908288999964961736727582967722542718264223286640013272432730924295092305662213469775602749713113774964021604518693358959943345170131474316716699253553526251918229606855110255210661769391305899304704401305553947858663168437691828647234353248593887797337000237434440522305783385042336974867005016002866371635480721425727423634716598259200059952735028634294139066792669723798730437353937957758746704387095073567124554496603097896118194554170245592193009640593805522942769217350988195033854243901962235565665095981189508495583475832679441371943347770644174306876072873238603190937646745291892183927340565244912505869565176115620698125003931538845818440649081930551382206808102393363085653595383285081518528602490738088819397197419266456341614484265115413169562835251959112442838262881010308475545489736902540358823648314244059506043336372172311369797376625377898329148146768547541189710236465877932945245536608462987170976671452153935936295650841686793887474517768464701970560120629111965939271694287820010473842269120842037473633883862747926634381707460086181651770124738002689102832486145467289464377033943420464842419670256187916489725183867462223041651600018564312996541175982085005633239524163204667553500133537296849174676463194134992237442472246330220218595474064637882118823459394089968995866776637011429528531270793556632378325619667821366570922060283102565391354011906621429239381641120806961721604380993879930032791351939616054590672596572424438866730988394948040500199586995408776106691389068427993564695024599087865610481526261948802916220377285440431076191523309676134565789866492760231034670807839099262754764500023111598815152501667563739574019057703412613420416359044808390765374858277752596662854316298833142074778261209504077604333883663580243089244840348835410287061473396328346465783579669745925874011346345762321608104239762225168959734768174285127377213488843126429868916706963162387342001469489852142302083551071071050255718846277856440376053415487371340570353047160477106775293200799083008579633505891364869774715093761225628448351427933875263674570722200256769127483422379436606131986267609440621051523719848597473792974061772433307773538025430221894395766769509566727981248500848626425884845796771935614664646260149649514634714900618867260130216748107466054111926689184063788353110563044170808357801999223295643474303295979135889437938009727044258215069279799888314467253297689672092433109678778704372547040496937826853533277996781762915186712775413657266836934910872925660656228159152633504466949756792294976458396040312478260968080763245729179631357063805530181795061558934619200552502042127689204726523519590844163705976227580527335399057273772924589843113466208946935684628077087959342361434261835739728412166526019543848177450244296873787044781845808456698591816757459363007125099299455902157979712679792868141836179452938114743834591130494949062545777573965744825041893661050156722391140633790442693276717835728234784024292290403767470039713468343855464064270710261175300913084761273575638893444957801436719780138982653424377606720487305659206933281697377077205067321400057367553449808955405386888786715911240760240287649361091464856324351392282896169205384742208960466080590382309965918933425890790062237040800669979202979819440927717350270127336846820867383102707947935530220822775215446092735620715171955387489668190846802860662680526626173073955928932432766560820558926492281145720789325877823680827930505003074177435351425876432091818543266940690676007919082134203963689530945256334022130730209864586297689655472486526242846110473665750904177173205232374140756584899323927086821679426432687569473519121747691111577540799971999266828885079390393406103104213296468250407706477052176909557243268596647176986382914115377976976000258192723944692010496600428508547001480918081081726650456796718668806462058478809300711671419078497133939149939952552454520949465078434971981036142877818403322057069463951547694697276774770642486460793923519565436635083070252079824653742742569969457756462611987386294345328054150827620990662277435844486270376709248843139673126563568059785342858198446090082502281505106367269141887603978831977318626572931421807329055093538562444488808705158512055619441373703285405475722146340713736932655210869322270942390754299408994425444590686757411432252426167234352191278258543884559516797829932832364273745745254454605293989680626351373358721485080882020551865995803408148832970125378123505679305081881856850573123325755554241960542735831944797643249922882266043555852334960668090550290521633778474635193474971302232949396551041598783974016751661859360517933895039246620524551126883731112078525724424579962329445016834171359514025209517926468115682982031361882739642662332167644152469548755816408435821258504424767069969380375857300390579011051541477955717916931272909599822136411598159520145861367892066666353218394457911294294937274642464823921547797561573367089576184057532209850474858357089176635272780949535427448252511373938291237833518414718278488180937762594672554334206902383755976584674449885729710015336570259383860983788837055966165661226188124546387807403643775582925934013645173858446245540764902961622022924479177890142432724924562461057283299442767967831448193467055175708350294256732633526490651414121023786109329671886310371717046176289311616725902906771223985883659641492455308120728570841006607616854351666353034138280113381967791228997412665524495134833893463618128225649905341150317914116709383076776877423256980342914079980291910761139653077618040762219445151940260406347035679935388327437858815201108040649088517527008205623802051286421842482300263243205599799834692623266564470195635730067953905724415039816423908213623513271771458619121032811235726993308766255344089415120517990273147386818262664447528040672746408572380155038941891259589373992650168775274376974153374817242203770712866449077116260315441711941410834860689952950744477220336274426681847119656361571377242461545607047965087831290013343491113629297558360906017594945379686150681790850760756621273810011791829307611862991163557450260202127565436095113856909481542447672260734006103733426127360804485531214757889023755905771131745500941185974865296270588563917389715951598898701417586964865418532486377943378050698934555388050523312494984188757304644473314445985055247398653997073462338193980085773043569547616982826589381003060241121866568598020725337165613533509921885956010788152195599298483073711416176483995033003789882479034541053250205495569358801615459891893688657212474896361367186281885464478617924358171011255185131787177450430735364502976150729230110833080255153495186929484971690099173039476973337895650229561487787804836658283482754023019230369038581978853430382855827300672156130424767965099736738986396308459533099446736600527895351007751062354051809506207295912147787926626338542879258977595863058064650448452623913353834262705043086700946703622040633976725299136518784230658396670226258056212221073354116185029363564161665577923776639586049469324455080590361798644275574129498302104696986164493137010370277508486015396166586451285354530481559829638298598154556259248659186328817630110149973720692015386987741862165578208788502897085678297019269582769523940825795893466666688391835881554906943683070353276320793494510936539945097204283673067035144196315528875321482218932596717370781271405133474738608096369456351201901843916055733840805166382914886247935137940371319796687585625948294207463241614819626828884980096887564131779026576910555080254322803125858998458287208325735889476313492606249627183220073181354243953643770564819295399570014455438391087844914419368047106516347403117037448245850518578818068662884417079356604269800316323634912030291975370099601066619389621731876226707182631485228441727943340681810310183841753499734969790135260460838986493841708529346927915834559424778741475818626067224662481177224985686229897440438439218402456036091912369895978248806446319555555930832816734602312040667007248774759980632684527320255701562168766284058326889493050519390050495049587015400348542776024624858846666734238597445456716114198430383570639742666670385556096452390357020107365232835276920677221366635857460807615994825758902615564428664967372569208046851174626702467876686032287965119785761644265002553662207997203999865614691551199659189260998756919572198275509506475978615626474235578645011389704199350997640667655712085029584211559149472907523553499274100851294919385596259403263820252498822492144447558827002900367951870523576276442355841833307120460124629939915484195813551255146770934471443309247637321501186127983818560255716314174426442103923184124861561304709814802473388125696051967726943832149010465240998150118339414506008422291319416099500996449619633076617168027996614596490848571740823780571312943966103687727269790434903189674932321665723319037215414610364718842463568019712570977124204559927718940163080755579153180388638522632934912286894458712440718739851310980729960000540296913908632667141792364975629719250212883990970848468043907176319829838625897603127381810275493426101282445835103972461726002712472644102839306036777543984038462374655711776604274794044711025322752607088191525962388103594491210025921567550999035984902873663946533362227856019878524480781200009226725563043118702187832547386880440918833104825515033950623703534591157569487158440812225354661461213368329141771387120791132563299696105863063881455038293070650764250040959783772009135428432873110669407041999325305683169533185440621809608346131977993381716591706548795521144399346369103913258534977738053801424940934503627616581368950030951261057084123445629601328070394871467589010166411517039393214698903026672660584673505964752748056178078679539355103268491298676656542631273298852919270082470877400221374311565869690760658990854779808775648655941308902704568977297419559655010922193569323849781622587517646552420925574092571769546886051901000316080128972898705286108542297390939681507750096597173714600861152209262260852708298836437362438779812774511708223680806107707741366334795574353354725066344097928989918408218150200626290058136781545284857759527335953597484087245005388274103999870195212623316986282803438849726914169586295036202722974886898490039741471616745751141334602734497423550587807218665525873506412530832457388035608515766265910084790720477045368897507199743566506306631675876113475164418905099495304411719985149916739766229426944516621408087749135536734530651829997758201465753081579408167503572563130826897527686949131751660314196274122716209578299745125950736894997647865130983044553916761879316366404096977873117158004122655528863709140625817884692390364398767943899441959633227733151062417111111758958204213822682471585586231593661531289432191654892821195976227665814359674319046931897070954625498480234955018692311293664029290996670086387840042890442086248366177906430206330593392032243436516079432570246586846689771534328077217098798011814855157928164449213543001525299613772360107729210859513145995246165942271641574763236570257188061170634876292627323600831252569965434321893745077967445291542789471272289470446481314744124221166590081005721723304438700873736053316468302928700555720019069943199870645446550624282172711712459206812429481055050404705924105288357400656484547245607487562476347259620195541630808699130865678696787553970081279117686691949683813515098808520958276792948785481815843390389576480289850925724608625300614888628650306571986579365615795598257299189432894771618962056935467280544185635018462634426748571556088844337677677518111958796316841853639123374976612377125870557536771425535452801023619128824660846856736084934133311957993354042333577358896378053183909344428049227035216223087149443606730042311797968286390517195157505209765590273099670998902005130022633264738184520239976911295246061557293366996541826787561464474369388729088789425992271475632620666673290809469862929534311107624328164327360863086413386486466836833403411741724336137908604788056800459754328933272140608034447503284344114611719096701762539842822668646838817061002536499007431738470008614817616431964214609199373818877654827069979398415393897490946103080608952105623723373395529906485456547771113235115058351872397486970763522933435497256100301121589126783284926464529265711611514653003449614413040707869371417923311666247696408763548739901747753710201821142814214482462132048901366552314424413404287752981183566734855659369179625585315367510798067145279663745899421031188154745480752465185317021824996705820092817034714330564906110302966007788621864395862030912621953745931915501116913315595473394117208613535884052045859273604632198270224071542061403310961486299075908103313306591475749539436538701843065303834279040143059829881096866287939606842134010586681368770086255041066965536224307609748692066674406842755594708259403759545439328126461519786010940922100394662393810002488578082153053964123626303568044502330247943343213441880843146928161839236820186918939839333078257939151876598861585265883031305482064741992386116621691904597565625333631844676895075299258677730897811322055452689323411963774158070429791729618493376516693756215146488138417266217153236227108027841813774596097865572452165349267876088009188070751445179559189320746484076199051735585848891330328063507879705231316767693157737318795949072123726379925971534942241650491860959163929805153754153056010835414124426635088411708895426440977027422823212873781858481377393550974933555114062446643689420453552379302295569902568889247247648285698792777177043958436924724006222094132555494329232680626510065606711248779978803998822145863452959171666248165322874115532752641124896656236536271790517082015310026735395882470223528163997240153464122032025797780827313551205019368428155208185549975149151101699141271160844540090762083005141646188255296346203608737167901905825189468389540468266297174866800839302951260776692992406943522577743863181275967950694370015606250562785591434151241339403032771295325310711861748025772234948929252198097430895212231461957666207592355635972669076798666123329105952796101834310690770203222871625208361195649481175299713274973059783552852128578547844286181685257107399791644850737946301947948601093793836405400303508924994891380108931322703064366040921361522517503364759125529933623450874620625221161521345334640590731527324079559395600327487909738694260663614314509347957936425282076057673668224556127797885798509050746557599952332576801978516473222357344466124947799906429335103202924170618147695710507728019172716654227202802454806556829265624445710748443438092473558324059572792813700931794958428020067816670302348301074054742192686054019788027670617733116985490100532526580700391933221832551762219500495602329543188072487098922493307375904553488785189577342825125096765197185679965291017199510174647814302781333571695642231934075713767834608696712243812173079896938312170420491124145158622120573819892602813253361650633270961268112735445764503438627183739199389437969585611671266838339375985582646154279781331791205782912378998922762772561595125842754000144632044579106546866732414053365861918428042262582168827371032153821229001605389555745804814970795142882874275665707581482605482420221061203768834107343704461695313565847315846499523328897408613892603743654557103135730978703051579767418648833308333468306177619964953332343405916867838864524704127553143957940278842161375968491828232860066928911605076118159809805722967611642356090547827553099902283601182556875723878812585829342112120643535136234233354548000376373539228441337466447546489972715324870623432473939494074367849041727254265742675895182796020334362260618434065482929109694732775810631500580250568949213398370571061955381036992510061604500623195895685277633841453387092156878758032127460311284924887146975923896612165410078451665187599926607299020458345627963420439715652445650039332697584161527418689052810339622772868014570270031896278770775137289513749285389160134511814790912124554283511450747662061450207874055271983106491319508431939379405139356086244871206328233097256310656806715935871203992140966633225119104450832165354362199377758584328122723097176497270028253352023603346945160822872847275228184687773750722988339131876836902638244934888564346061470214101593355370833759261193543814375325836805068692651602131963859004249450260777932898292974931025747485191547582123684275563739778101515027771884673967343974182564271586530092136733880079123112661604189172284689063826787172246977341470030337709486294246783622917217912573978588957230493800358591236399689631216138583104648370796376626799297615668211984659341559339167444688620035568965184061896502099578794947503421345106468294189135762409949557718833764748449361489033733873640844876651285799060056918035580217574328223720982964054139849176861425411357801923284322356622012533756997103821037145053611352158087544325887517731498123415979007748415485246874718698284371642775679661218822589836358646123372708731616395878299381552734158028806222896032274479197315134195894883841952929056752913582847028899729046824217811588125445002757734897566106936993830600284424883040855689756491161569382878286204590171592066183555970557350218309269119605068711363792198916388264700303239855998258529737206759685021223259479609213701331543690047347580052669731636628087675468684315441200544518109639633177996327073327007842426159432871983671001853052211000499358589809347272782613245222554744663365234690260799520188298486579293564334105861920635765802134949712381542333263308182496330203863618060743007893628480494572747655596897690479630772584358960972355626885277176950957548546741563189365444345268252226873316585833671741045351860168973900370511403872160749256572866941446343428193422010787994447931528908070441678372085914038078719202046871489540429657782742327726300675482683925720474289569191676005205232153821140887324067972558836997229770397817477865544513393695280467309791987546440540501535598421490176493970899336823681797861826371377477618992421396475468152180235657008465062462125800933823937589398535255324737030726876131869326125773333729027491969501508404817998772837366525506402719361477732598808908149463942273075462113797425254478573065620616232758456633687160410545655582196322844425800161309229256116952170585617429297116993729879855268657367981622307685949173321863761507735171533780533639947253173790467038575527223738278135885645323766083898120229497517958499014168966345218786083583841189313847283257686487347462195353899780087542415058674978015601593113654055207095080352550048121231237718152107298003231017591837862540565962539948544710762023852340834150142189018389630276690864606288997315830500060541661052112618332456308874942376132111738323599102671544333398090301076751921560686091509929757948984709134048477603725331648663327399774574170787058858498903647825050060756527667766673018142798346299786311547247190463813082702695027155243458377713288884011332285612327642475805491414533400430735136820016710304896740791322041732936558863808199024025042475897990619973944942406139385900204374508171261603627839124114726820908569052683742250689109919376772207776873712677015290712968226158437571496653462961540352898069849819902381588132490072828420316645458645186778718177177277928321252696832297664124549673971527879680434765895761265338524573915134381378450051873859153296341405368948443972255080119607926902811622936704343711583719538657786003419467130966534425355235613503926374333559024877800931675855665020261424517552023105180379792416018681653272134907447418792630463793570195725465687076964902562831139490830659813925877165753432905182988307442209315394562671891365093277852758561418869150584311281806211645338346145649986102799088783159992332083497034990096448289736199726084130305016138343757350335026967919910039457648503139889980405347620797995103556280094271198077141386253746894200671129290379402110509931288176786355712128822058452590232988278448897285576764337655132098372084536519727356629454075207868377482599376950854745853778544015186687032127032510837885755352532742246745616553017529469704928603493523766319377581531269112157125054564936628404613157549323436161143868941551917955211604032794138704059736596828772355549369536724926033527449892888220448868443652751589546895588589071831729289129234577442844192725052768475503870270632829799758538825993879067899636766347263679970911370005004519151507050208574470532031134283753039645068373494746515254316164069588396569604776248100769812576232402765632471455867811665356335738413320375632857711145794773611775891097844959748713454994540500897494312370266916002277962151601644314463215567465798696913430209173753793295373631029348259418485153134577006494373909764208589573177423145767288296790675029922315257328698330263412335263163490206490429708210063264881567676324254446870392133376789489600125136265235472565170222559556998628425108866896847107872600167332422156251242927213080559326221307214093686435499689878743035267688492212318344924190763747157474462521597457646635724275279522289150406427767865661151919331918178305671646530481381010666734245915686417445768839062419201865410225266970615389099907254998428548419566819245451974709306142275315129844530918275771513611816730358093214603225847235281182550470606215426224324551446896457269382316655525095989504109342537430859997971370042588583403044972671096299697632336077767437347987883567301028647138454592879163749014540664751939489935221236247436613174783048688463151603659224357676276234466653958979646879055292390270201075721891913821483162685249049584867543293124182641346627228209365327728397667557267289731938129341943057239620723292007186386746670306364601331111164254680251228943053311250985386012012360704496997852109585987532930327716226798230551076769268000220741884903016500503853447597101830167378268194361241656963925229474103574318517658365603412327643390095651186326079173389912627720721351617522225524182961243396282518232869686254441186238123306403453315560164069574723203836514566355749873441168599416165518249604259798392678161314831809025345071646664426702627611859764913247682952727805703223834351506367217706637637402490304659096285960271979725537800141820199810181398125950423486624834404392113648723666292020639396288453144837489010260840361484073120067415622915966963669408360326433414963712098545475250177366960197146178464515555994167263739708586495987795324215832821841093916405283567907068642107803466075719798914815540054200510730096279623472724997011221778165679844919433222633415033856753082446773410455032742856115745538742140007192843017744731423009836576075155127779628101472205306681742035059679410509804665631363778251724709140992555247103681267051382467521172005284942952197488628489852778783562106004878127114406349908816459244518980104429357083290472201607269660461984260772247831071714390934928973795075056471053802916187491886994635301357293501873206687311501731531091296794862549795815121682207571231891909138338353447102365979448080471233882744403505346799952913354609413927284465139119083607622657983981564246382915999044162845276818935327913567474032273515068909877547218155749984883466946222711943435139572756093318776721574285783033018304222517049632971612296836752748983294723150697497887414002192670067206567729213108493572940763592895618281290011097847243283038465197437585736859123098178360303140528230081302663133041399253399217941576479853470817863611377200140857083863943770352918349740374183511622370040173188269393263087505487566452909326566503024394453622727917080038157851325290236510568096258917942400163871496121216946992544239867472620600571311538783883388307801653788387752115931194493595694917939405788488606239594441849728928723084955792607211329771213723886969863602368291622254647108806210944791323990154066781602893469428215506272126054179829178173824891997338295301682667906177801353365047188633978427353358562327918535797792266270380244569682968625491187486853054978579659891848621862374855639353215630489928348655615415406495122104661037654818060250676549134033273862941691177626381383478511836410569996609492020448950262944616846685510606624208831453740126877947813985957776990398770739941703256531935561300052814359945606126160832235899032489565956752757698532457440356076128860796818576197717887655619852375274472235992720206023891671879081470886706830279398976837802333757968374847167920420561188461443508423836973785948258849782595214143167689849592131938941287506959614919327114703587453366081494375469714291952903101938943563718359374914830742304493402959628111665238995811060009386222162265525297661065074527135894973344740728167392634862226297134715553293624445799465082319790876907445852537034570900774408153416786387014809967412400383780852342739778817469108053533050911944331387304083804306750603068626953212452290166750385631858585931743776949415741081057274944438400139915229529240168066745842469660556910769759698731095078451825185768980009394286371219101669807885171057114466950703127370696200473003567536823520581524918682390839740880926485270458168006391534013493735254715092352704416192657211004234584808532239809308197012158641732913053258987171588551684206065034055699685937159156219395459555855700934771168117983599584279819556435636530938905094196464188924341766121771175457371442940272937717765918310744305815153159609482635063365572386141392081307541461074051274134813889068752089651754728644348902015018720183661384172807988272958201897748612633836037110941408680441463818997551441905115201402418762897868823386652887495647401107245990553799217515564781980918495587675277828080382262981804394156397956172569409092951857744788365159447872068267859636945476370623820669620239662066592108127818321912746808145303142177986735336848938082668189691299983519942232127263877159757642852132151588371714648542881242312246840283905615779681998978556251027107062837939943190735797975362287371994784521038316866852142082201926672315581011737244237560915148938634366652657942603716828928158069315905715237948025661912687088764750695085011137025788023338180190302100297597559268182163595350706418857190059497444679741742025213094724619195027721323724702570296163168146476218464364465179953587775904809172469556739679455373497103221936945596277893779193834069725378841550206295838748309619542046154699022268434746176771131973748660008793544360730243366328086536847335066870740890018470306769821475313373154286221515513181409541497972467067634369769645830928679521201994140665404326668344081968691862291765441036492080785729242338875506180983659122265379728841112013069101857603049832953269421418842594286621469527688063208257196486713422469852641941902223624118633913028417184472482275572337996970748200243758037179218073420208053693574061876566416960773912090981349470212072519721369964234420930547846506923744649042088873263022615635791960630923699160278236493000344974712377945595124085823970994657027536675981330477750505053663457471551655837277310078578178715303161327684892535760784621147886035180402976569605848671756763665930874801609992795078717891310420384947894328608479705150428332652457188642319839993285634226860788344374530927289314609254429906078711173676695984963306217751488489933778786785978526528057054866121737921355212470239532560819067885280383242296807554471743774895014302315014696122549489533836275694486930467419802292255506508742977275807609510687982710919383714229096826872859632194283672724247744390906003680485278454385481995582874334418909552309926592958848289777196750543920577166893855239773609258209069343057898674235729531205148509038465249314006899617373173581622229445541614935787147750627037619249803638440016091361171372955766180892638646794027936567038530577991298857394478375763909267944333650549677074228596380872187039958271475800044022240421400330359036096054800471884730467828680774098983222526245316803203408443510937431949938029908124179211089542392709654258219584858667992411578844781521955749832225833567422679896009803200935486510854946767671340531034349986434975800021528683583572136597820843573260466126057046440920052064374880868404199958540869747731601750539025306490362044945847644088204005386057152518221779351801941471166008653294828106002191594469278346037982926881867778488378271314816066812848087479043023420037713089646478178559946183751062068844135862845063034644191394289376235474277758676901467822890700609268325225032463995333756672899766025424659795196326090274261515748186527819297798368110133133965162579331841940702696498895138692396126127536959206022969008742083472084083318841582683801938335897322433513641224432117497940476682416780963520356641543325415096450197791054146094374981599044579283802888013356248181407261142327597289482414188702595745493425472274698997687716231609932288504202807083810081409188735263331835842074074844657339783842980534710600237421998721176268333490920907386533795907492808928303010720755047245085118333467630475982066178999800446274480337019655502132044139642367450695370878169737996937906163784820116979627072127035848047948858065830896323128867340296384824112876595218536241125696974919905747828032629986123172479305032363770584569878577453161038667067555844068240891051181842902580329851409615733153875631143854779215298366383821587135882408201277838409736232647584435263028166475607999322148392715632124999083709893094632955985992872843352125242743349437902382494944578516493612703264233909454480862002835352626175298183552529788046502813539911284716128115341446038970316546773952587653838444574611035156164180927334625414221790331071472031059929495389595843688577348949522598210383159642062327307148371669179896744454184189037251127283530059298273937473757109927765235637036064734872478483968420374230975899887438787654284159356597358834506093612992449258746769154280459813281582587299911030078063159248172205221320601077149233660100318271006672726648894955094233689793548105579642377154495413717740799517750146669546557410080155793417959830131871546171383822033328726313699780809375628169857535292539023656811435865539828428324170005164199005176438351200575693343042180293152368541142405986805738973771720903281648623839549805008436023535858255461885594244261292892143414789826709417676045222513492987299743533382062762240633100488377452738118872258181998221942829367666600004037991487001856867455441231957351871237930599514821595486770105404782025853908333564061826222520802864866680976315610713764189090236060395412455357038066753567652472668036751767384556469669359602263425800155572089623840364771321429669219347242079872962986167579674608295971274857067903467039157865858111273825743251903978299544576743057529928302863418624254502249624197916398273490435941139589840434895757833246482216524972533181193055585614050310507654858991552554265288628752889554577367874202977037846847563664249476708485430735413284036163491347107446832985898095111020124254488464307122717488658696436722375125740766380757796859385182321580379013885132456704225278538766101351956828652339460402003567338602520551347530790074689452614361638124660209433968818299857253465435528540463610413121499376921630261483151823469420962791154941719466072066552844004435657532664143893427722090557518423691208034737988670796922839869375088816146073838246420008153936740018862573073695349973083672528101494304364563497521354531951950035076482370361845384975636163397442943098863871989880818808674749583176022298467250195918371787001546471943774402458796441934330527377861745024524970714990700051872692928345871786309174843878550639754778139797614710297480525893069221666222523537344901135398626602814192647629370976801318720414066687625545954222924938494627117755017586202137887676002980515741123780955192781815908206636365403568683324455662009516046337522568825585458292001930638153387365651794574370258875626473210773227646623152269937958253816250741193599257543470320751896392792921623091299025904455121720931896617993469495415021868337701522075911300888689023857991528263986782465460887462785262268142473318858857241665126195900032922440472840896196026492377307279303286983507199509173362220690426621137935737878963398219271111792437518683817576213472922730484110905289312739756654644015991089205635953955062268490348177834016388807477585910604735866456072994009420006312043562308116498145514965551300585461173552405216715566604133347587598792044559217567756328376722769011541649211224642236039540336845501134265424744898954599679203644242966524827350687996495015740462148251111674016381288237054926766797280057463290619456179973094448723746706306283461937692637284371025062943023983874718041127794451518210864000155847579128464012873995097762977082622634588250520781834576050530815712768164616012674561513103910717697384557873224133003000553471951166901258113520801563037304690809309792735365856491357471135090441275907649029919388200826217393959286123336572970664641027058783855131893465796268593304795602601154503596771014005799333688900402207538482513993086371634336600792371240645761765003641061220543568868817740625305700602301898291109153407117751712442370364363715890220116231710263565013024399121540427012730391660434852892171767800544353796026814476987479405571599377835639966210066927419271468108962040736111634720258986246474408196120403368752089701088063354284436925218017425121196785699110583349449991683094494698470780636754666776782538372304052848929117305480298931061328228524301397442127840108229799225637499186161909539509229235240387265633496244744690348057513565946504625030962501118599636302403654187824457074024589488060507416839071505803242418375586267960448940311842071561842663899300596835196088099155005408191160942615617799649455573893623350956021693845302940741535422017008850593410802153774416896976552390007001131094692800034443560636076613103027287389274226652498990981590123765157043277319218502844881119332011035710571944438712183523225548677264408667340454413536740399010464179288114132773295705233233998780091602670028929046700345506321135518225964545636558027046215314706032147678038734544203988775731536419729437465867827633623111986467460831716249593805163179101602174316003637213513550655568116276716483228796239003714331634809586892438471169048307896510059110496501599283143831201893252516676895589731051802070915612821279478576823150309965487013780142034235086218894451130917415520121250377976572630511758844557918166124319147934998793718897466767778272433292270248264548028499985675549452694687032750378394003665144268568208130902094905789962210081407736696556627978958759938160373929408189832602311979060514597803844941218550734723444046413633317148297819766986696551400518184541976331055635044884971342236033913005897971734678237347232923051738850500463602568199806272825811245559158601501843909040986418097171007546188477393491127357112710753309507903619794617087334466480524178880606773110645588414287431205536864507541312378920501641824559852917028552982349175681519817495356504045373588004097369310021016197409940885723368139890685230580215225783079858444498849002672215492888861292502885281352717378031820762808665819870213391861211336024618736264912859838570424605478859944208240180919736271175154047465634118048628864398751105260186007632086640320800588098124668287276915828885145355599297214513431881771664556450266633627515714226121270282902358703146786242730233599895133833106908036791228975922320900535339836105280848797434705051051242979946969587732900812070797287965358392324265767339214438047036170652959567299323441686930920186625715820350459222746011334917847686783106363023672435537093256269498230726186313109105016432061267424608679167037793094066960713544777204124017138715254147871337456602291427453682810092920558890079508483723267871865955621283765493043122746445977381115639667409274991990309678315704437927396416667510978926409311746824187884653928794391428071913722819450621119960494201416756751415522656932859693990054101116477675292564944042879583571003684509070345801908749999309273423323790664741074628981171010402778833821450983160613718505842790389539496134598694553433217338838044229221868482471011714851583471060997578697619681601243733023068446927105578932616600129599349859749171845033446105624084001095249031129151310207353660669914250974416710891804427926385025576622062566434705688881209134312965478161984539675154821081024416062444931858735121428601085815587151941939765526106247809254081424759646627019194378550718698349687692657517135017640200359938353017830278176710220244928865565462010559567415771159047285830165422561420054826851371916276898252726600077033683592676892711746614588644325629544170512168608373571659761027823884860670144632963682136373033174648717632014278800674249348568445726886782552555092500615469758288549210812222476682290277511682236950254398732456186120999673805014575214534677010802591529816042122311632876026457848920881444254178235178772946368491686378710335598802935287975131660096503450213500878614816527569342549157582544785878977900421015928011354809715815493253864902115138985775663927058200478330810319358617209592850309837197795638466498733455490133656606295899331266703542551795858953425568522216705720637316682093224155465652870620820268533260086658005839660906950497030225453493694184347991814854031752161531889360169898297123827273296188151354041870492734852626566640813648637887168029974341992184045267003615580203875004096372188655376610564625258596762311209145558061492374462248655905259414678341230133648812086451317814505464179416456723857750904521770549975833236091618246866373119959742563739243193683606633468788836648939977087099239751769429327043157163405058351989947721259861246595675803136402007793328797865113011947679012284933455937274544677730699424562602023887549309022335739830396642856599234623943430754355766148585186128446617314397997597768447092979277382764709356279494509375749758094022971955437014385922121605808100423974385330454346711914387122662709140126153844627736610886518271556640204899738718538427974087178039858785748721689263629340793705516018371405087714962816078738336233555978837136080966631521893228751052274037101841254829712856895416419492794385063945483861715452863298700743447464614650341446025619364938925571934232096238572840936220720551764698253040064322875603806977314699966010186101840908347452808928098339129091492583036511730299676547392515184502772448449537680476388640190634872967747990212485612731663998442736186230885517318239967881715818320630969964851472957372369464794425482501448372786430354266996443153981527716867984468577777317672421499306359765181359539276806871032304580251915603646418455272288614825145974092997199452910599833472410418542027208513605430735748762273840792001676346615109061471910813300876924398905054283828587174596002008845764482519031375548086017940341094418988372652319407183137053799835234437595489813215342408428748244280989888047197105452923399847655171775144109635033144384157428360807901341301639615794455908736627890914427598452297630543934086667826431401637571705618813450653637288873684577300189754353864153639381737629018229633304944189194065973057538512133986275646249847032791841511149121135250104685119008961170790218889188062488253842283641190655874808838120731232314134423335314443360965627192108247640392720608888626285258851992830133305890576527282957142619497916499589436317732474958095984149163996087240559405897409518518453701084239110782354479538977220797522617599737993180176602584167834585215453135785842096991306995209918786098861244401060741198637447153099351033428616375680948503592757047442658967956619338287688474667387627035779875559654940146628998920998697164854072303398883936761101330378404511307837997043311605332621995442577030710396843975279691973081280251126223600777540005130859749830464540495130970480342613835409134454056413410146219371605655280444840088045303964949297382686502274528229948457746734337867550280099756051009152886664658790262577689571241879315839487297388771483538424812931191683160601354302997848368635277312029030297107783027747389581346519427561606674284360702040023876861045920776965676267878197065606120339730472296548137344619132198858923218674391232241525774192907822570914140181569572845738336229188507948683294933053359319357209167636459558136799238696355674929865113248271394607316285501241323117372648773982965149234267413224728863284602104136696664426772810414959430276723876342860664480790484267719159856451260861870402572744277451430790173615156177315157500598839964014188049730699755066910129240753037495815578462768311483735161008264210568687863568408589201192682524370390352517666900923840826467526170926026971040704714815310205739799768157918298128923530414649198759361563221245168274617227796815733025325573522302296833982779941603482649856938263973605905623213929485507427648532942671058969945892642144119600084535333114504068653731319571484348541504151723470687159665889346879477616050652520532551887794276200067792917428629514803639371556249214921928994506784097205434600195629847440967486246536371130208738141754833381661656151851119113468473236553824853198785818181450105386941315804289410531085026258281571231111455512388549044534798670025707762174138029189276234523893914028052930968645560208707475029630568566687239774998591135620834859426470223854033139665551229405206772298210771698874906831232186566788925348437392893982430392706310460167855928753060178702221330681129914256487266497168032854943908954011598214937701703276762092987636152947610229638640039099466517428605271606511721401325095927055929483973612998179810256713853317710667503313178278732512150132783774865020703313550622755813048108002946051717988641864693830142722291579435039799177801649052827713029562457091027849444590050250012647562325140161203982032550275269695196707423516842119109820901473455345247385160545020344886526119484579467391032494601754606594913347356487848126818801870735259183808390367907272198713651269112873795377159952741342667405298605826727776084199746970641965902995956295605560002217637882818096465842429443116043410154032416183711241183341336908604073818218678592966006015260979204302690514322256814365746965542007161049260710551621362987930055591213266525433447237515483179612564078677742430707008766220291814065502136019166384385999886123275152903529870349532107528969061140401659802188280376805348714902083087191780477531360858414106596751960432401798589153532443423362991003390367726189914046681027614857872154303275752435932050311716517034302427376082327100989621495063849691002902577416713658504489820755135344694419418519912145668150684357307587654127131665423566812227372223338758776739362287460341063681565186649322813423042420400173053913958045034059680448257513405554904641633578438160588686022799179151567769918483857458197898136201297053878672660688951885072200744261029707371283569426697793382087809127052674022819034488781068280495959107943088810046956183587209343232330440969761237719689629821199168787098339611345262017695940034586738339782341473219138249974991406589677344743402835803153747984899676192496998518224017681930521002245510857860384690568766364128908975155436650656165061922181855860639525635204347894591616798123236057496837482343890555964335042927547726071932198308253807155388521773092429941314419026355802110535798866536264151014646071198559829289549075514813694409360717649426291034038171821614396041769852817328208821036906125977046831405987658981426853170031066274257408280910233116815975958654856178161460643447651930287173430092180010058739548345440376276460138242763405329465580888477374668362561690834309727006997481782424574194262607770979891422900350084332119239773590955945746815664694781101010369635694686789030933757110276208660708782106555537792608816413375293915596153910623815381314813176627603231988804979216779611049102388322750639647100769652474414609822625944767297584481013880841014521593298873538518073069810094601261678689308602437849860720828026692445109815391695973601821328794407922306758412984849036563034369087014258314198991054139852269307546695019990277201199343809980965719482859198767241455917159595575000602439147346499990949622807320890185317741662157073338928388639164413759397417797996190645277409657976928253653487828864697225365575452522803168847103926942994401774415056541083924818538097224626551468903000207821275494505279154369817549666187513478319186574125583553974077373341601561144528150171617511799963994061191100863047047957134095315827911496975506142525966187901940474528757334388929908002976987789308698733990273247229361876519329728094639215880105812091733035606960882552321797005760004159044881793922984453580379746071294707608200651516833656451241281129400207911460827424310952033600285057851031781296901119673208609949003674260657883323675998903174678418827376211282261504373578261282392358326023506215025388120503808761075779234110200663883596461693181575042860662121240253081275797002578725384490578740240767751761182828022057007680331731437332224972089532223176991483092291852524674905187716587192833914512722243910768803814676477682560519916242899466641586857003358971005817274611700131317272015264539575067017238873314438527194969975372458504518511212453237600924304723995439893327632584741996602126125298056618497682305041205726830278895901298479037010123634777326720390810711639303289268969858980276042853098125791957324080531453599950680281647637678616204990872205057179263264470138021032744757850959815376927943735399559906920110868457276158737474149781321992210097946361683688376980068019326724635633139361980228446602908257497088761161261939179889891414720360559936908838930580535936933911450316665837679068253381015494633685052702160528658989694225709635345492408795324498345015230231036833493083408235168291518964166715750476290195346765505045433189157265705149877638414907912672838031790537940390655134324257931330413249480760881046973124954534545785626432924575397544363110660436528940344384293413102992185638619690395362293619010163993528535010572993277183944687864902771924119694776679674321691661740183719065604639000765211961148350720755592910178537877056954207460072534754632987591800830202715029774978915283989453325540719516665753230926495139421142554045115377864569662346800500105576656862225655975320006948536438622303798485693682238749031954900491665783397436698609183391998723719472588452887254012846450566305472362710992642785702458292237304220010398925143760741811976799800496115848890313657440481472776934979335196907912412868049505017744535830567404267328578975726402516811291440172893889390600786220339806661965078580853482490794371510593186923206404967386563531281304079107222213576654821878051985853001988320719460263512142799370069407085655958724681365543416712160070267748292362040145298505602122441854833782595541641910011069844160611193613415728438557376822437027368021054904985965165829729445551918241516040655118397072027202084640204393072986300139055434860805727208711812587793844984904370529210374970100166399815194947629499986428493736752536317521883313087108880797883924177046278893607737691470138020578895049478115887563990450268575505617416055899462503460092102109352130947675934350822422873652738883742321134710601092049395617317488537802273146628841603886788153423753915600377407866832869398483480806707192360015857192029231113417351022174559411995983544456137561917963110704018047448038094383975482674455197750593665932950078695139834792987338878101779456081754473813559180829981249823150037350662654337764521831661729592356655050362988711935601204167938372520077159314190351927245801694493938939688612900011911705588515157980783219758636439622341155912478451870829040220207055268885676776757208433019621579008529471279823397076704667834310190431379390956741849317948755991990551409619689392255733193871822401654043894242976165912825960645565767896269500675457661057497034947209854964172219226415181027989110590330653915466596702202149545429252256801199732233186299301288977260054888305180190736561784872448961557321648257454753816143467084018257113637533942016840051144296003030823242762724402493439561055939330737827909395440108058510853811441266551615428095286811705096078289107899719529989342167794620020169989849651440553369490931441566374789827892780741711709779831715225227691017629063753678298686927280589881500482306979073492161899553670790703347937543360494530720796487701633503866124771679889404617208901243370958171600709412249362154964957549239133890521379284813256006540708721929520411745114657836210811062428541807816619494184580109484822606357864009531803805531752590882467441944083716975126383772221899903516608185037840103696419148911071627920249788407850357701405616347874226400006355817468995774598161717654247358213363439055746336700418263131436114181603329667629676001679942055334036403518166605499089721637891019331493529788162093954196820658190642836426624132370590392568046454636658820270576326491829158713636046873638450544974888393625563446902584799733972437826866792004894254402223869489172004665582573288023324994353981089464662938621067826158527899573711364825491949666999004651483304786736213896107397991573499337265679173820506794890335785170348015684871190573315030732364815754371927707826788849883018486465398211832288477459906823397462156125853826623722831969860252043378627735575155507201016059787121746506973699977488505823686182397405962823899061718458168239669939404234038027152149341645806650609425516633060493107167197330836033118091222672826165364917781545471333613951369357897079038129100817208674970566963962750528372743979162876486455768107697904387778853689843730036014312948664926231077274903705956214258751429326687828478807876284781862459567816866258302682036445978850982950892525944172113535585941142399515351241488610058114813371447620574893722416922190639131378281162017878760864388860506587083240869863946519451168883795277463535977800599642251188127560160179159022475213976910679863209283384060086102184671398118661205103771796785864715889119197808206511049872092732936744466455522783331556127984651988348361976080158313179067455124100208677523822065546145593974897869216323215553119290602588527663367002810850040367760202462557785265266977034006959215776156476425963474335647160218551276752648922167599801547259118353017790110214847022673250795852527548423162615892967491280149800575414928943724074644381116109689127925533486650439477764701668970466249702173347336807947732108619344342264216085801303502463711108941668102650367375214032824342933691937372637891689833875137555791026545295231372878571956727250352327250114908852401112212315223953566814175636082796889420199323245274911500056806619067100730562113125640182950499334281783611200441387083045411777990828298523910316521755322173908386337724070260851601865097547228451197539120397627596019905383829494982268416069423707468528511859666876879722986460275718450299124692064899469489774830505013519745922277894280494588893626617557558501668491138034540655338404509254779564836853141322067280529532217757679973297500007720903025851044324639934067451094331243587323598628587936132286240082781507656081553948158074626359271910622864529121954899127388993476898406306935015305808395651394402432325066622429876592396826941031130834151196755536137839854221179219411449561916538849185979570764326736974593593810668775110459390561587596349661795677581631290731439520021171624160236387809632990133247037859386552914051894854020217477434941180746937803653261313994620894555749060397697094955008026496879083392220773063033152719944794899781981828956639787262359965053845084022616071288706919179553483412729155634507839290955496217637809414476039267620299120979785261012616158712707535586788607013322937414800980534901978765117235013926032028283193813753046174386185487073152287896043801626021519321727812501015366095539593948266297850096472147696304142092856083675536971457674465825137792689300349818767309536656154094018181213814515718934852114137632397475912493597045511811135126263852182268414222905761672336221741638596959428555841526603258173569687347871528253854686617083171567897986920796685793852038673279363131109701750909153639715774785466923898418800085984984931159137283608134143739359840877268138815763164529904003317006143551587132104849086040863099554582932498512694150896588966201964410303356985757879719137187474794198902398557644542753175912782182067919400959794488980216551994749107670219496596100713430683605884398062502933339291805043787495845783955975219184993991566568420764440157702637349736079804389437323371035779462949595697528642416907667162597431170280130433527213920989591016293150314406167603304487131088893032925209532460424387158071374113333496752189467842043520120051017155888101407279033709013906082962325736543490225158571597343839643254968282425392777124223574763651474626863042160036737390572809741518026332536477880629778365031696247887663049465890413981453683496483767637972403013154653988084173969361425867179381914048143126221184901047710700206513634019865582459549151893608860207754337442587939235037833850250116772705272060991938026117950159381871004394547864261178425146172560272380476328699796611311614717459878855420378960304851193694719210877495085538628995850377779904479879768191744941429000980359750244314457216387987325933347484330457394081255124793772083829886046552487144520681203144328720218249171333241238941303220359557278051440495605813651409861600790510074644557432653939453916473024455409044935918995009300701806172333716798202231732619548655260653765962406939391279640892608416114880330646499405407464597314824039656863432159312994393707782160027095587125926393806265309063722715903021445408278903536701670981523898327042384001634810127498699659383318771950793697308356943672885650611025094535204704190595424682019898279610699732262136628167363122989056247377762923755761011654006559385237273915066906457679463920589716522864977434502284140350888083093446181683666737157251416382605626840092010884137838892076012300086402723310587403779236807772363376099963345491422951402634074069500035719201635541039052403529072732698238914645854980607121971683395177468457273270578300165043438522673289066041888411382508341361379961981016970527367724719795932611776223445398195320472440733945521293754849964621282877989475926355647112480984478863548576844040079645408653431178446986669963155071535534675331827894217490529540847002365155937191300707653206101646242846057544591362740802494426430247420387231136814035011649167388033979628128823708626314777371095092521166966772840005669652355331235727344712250584933421000654380467153351524918231784616510258088180164460499940588489085235408615183894043607193406712923672606944806459997807772492209029038624407445869701420590221988806846096515170948230600096465701436440766806637279687569407135156782799064907906327720904452450324857579280708225203262396833548515860693145978385283616945633618631495689575125205427583408433765438773575581133233224458741691304462333288530403416818532765079629533256719680304662622269392924233817614740621769438130181644683625060288786882638848622844076864987050543822925806584870404035562573256749520111431937547754077091962079537181488250616630692548318888716236852515548481080757453534756650691089989025790067471165361044635484862584532960111660552481236658133484434023033838766947308531146822952900928520339707297247845950326397304709692877275566741078792127067696914719162964677848426437554185756985108165871827151474955036156500371320738054521273860737134932832995067948381046672169613166745564983864106655385195711477979897804053131531304695355956012501223073013512282359030897413153187246065767650692731207540535622805396956670940455433100169920093401603015109670070870330896286586954811171164472224295645926247022843837363168276182638145452738190115715089522016695558952554622067920742767776923081152264751106824433913416500252404069330258598945633927036419440753978120082182135850455473521574804387050965377446147811346871656555888351972792131850455068355394307605036900936296238783640866701294439893854444187850881588375087629000114446901288812955855677523752165986849343242206433312659157488729539953386225175380682153450511244744094691104511632399585150575512312582940123674771515790267854663437832997684375181671324663954643020788768384514133131120043836272094728966779743948889034039333934771491655609878440626123581223512954925625958583191636244844911239536576587105078807396708810976691210513367202108849092498348141080851471979311983256014913407118169265377176694886325677385081130992939242797311269677458349060895901467971121975453286879491003849694060700564567237710534918906445065280295574475701857859353330253437314144205303581894725025659741992239008550333847929662370767233463629037599500875430750257963974150203988495903758576829100173441003016390174848563306422011752017788579842745795912502607278147035731188031082540722337056184039814643086670132641399107350024418877255635131802012518580814897540973697308148730540887173734744284091929164342440210244964263928735739824038105842003734586953107032797985022930946626806901792724178709806252382975492674271740109313390844006031771503988397175651715664250661408635197545734597473285460352577081637908053873158069228053306986610717617047231894172238541326756768641085069361977285088089991205932294787017236599579112547404902304217356116439548935384403866196678322738363099111005285837078249625061455188256938516357639930307559070740917791768960090942166268639945930987166518752762806121677655991791029060977988760291131293858955350180182828228425127176741423279437724908344684215709467901049134293973815659351333607061912518396634898789049470872644134458081024139652538971443908917775225241178022016887498243016237329016542389588802987575006283104455394872770124930831524949797471267648110417923690325649790862147591407233856998568489932072281268315037098991931307602227680917759601941966313606533754265145417078972656421694991277672019356518712974238974200774227060081833146868926602940980858395534529813264337429483971371578266348938881758528599643215246849202217050423643862971531703786120257828547239685501094726486865273393613270531709184960842867973063004361654213462676610101700359875797906998622320548802641853248629251096168796598076953897654536145457445540016522391424814892972938142790625588597012238728348902405738552464234439119934502720657717152104991279089921169924264097040941620723180394969416889854265615303280722468255424581111427009573232719015598853789575571161924596312339001389238727215278612420381681489646782141666758766918285458524439413730677146403734330940413644769293578325756754722460492377254530663122614055017563811599943197027883656146997453561866251992177475878966802204666776259774383389956603904036282986148270213861905360663668457915145149129662414918969008081539878655838537811570342660344304822550131978660476762711151914132960639612967956751485560535966427176487338775484216680732679344682737453566108015086057433991986215295787876111855924472352713169009007276022927785720407394928408102800388985665402155563337562229145898264058171848809035219592322984559191694639295796753009154987109014103988738347924936289310579711504620617690105468930136691256496076455191053362731791560064596482747654805723188947139841098601302864866561626662957625009817839445743520393794916318616232450841043616455539817023339682807540816067678923505102764705204099569714819307832159932255622579133690177937093754250417825765707059622397054241206716418742464155756617817518321100918462648717765091190334572307787317880484937765442539452471494240914793370735134878763145769851002496749829672571838957837846494786398544023121454640702316093210360555946195476083184107815497585524494732214389320523373497582947729369785424473319216585338317555224946584875939746120313681769249128790055178403707516106150863284334456738495665891503494240520078974138322121492467179808528463428682044702757836988286573044737017987549883391821644363204383602752611309004461003747799027949076124599381124051619199605965139007790963429358311903430562435671573409505616362874827820587615489988136228400631951119520178080967490670497658942820319324591324255961711416431669441618015524066188633117399506879643778155380972229297459868674364343772446022500821701314936991814024542091576768395501316818107403428304112686525498680326457932318450295097745201389805535819414101913198483386798555481994017166158488361181485049186467563917728633058374665125190995176278621822177837392160428438123658550359877683167988769176678640376960033967280640457345259752019328540390384327847518556147531022636373359384639799945119773456856654467428389581911035087502447542075011754726557934304064164481640001854896172357369876500209146312440068050665618211320293368595675472266646602468685420080392607405662982996622827886673306450655032884162938829562588755409694680707065812198050857892405667820730191320067060364216836491652563135377625483089594842053609872295558275245931500943341900907815467112257271079852122273755615832610302392053167927886141183298226459755765340454234610490295722395875331195796195022894605030835697403198482479375038973982795389920689718912962709702681601799948823685154410249063450379330463850598050068936885092159609249345461701869664702253261938819301682122648436877795239618136877735017839876014287972084836641077328764288692535871469783972618881033845033371181517114847157535728291113771363131977821202456846096977749219637968473749691094564421462352746752726128530180078957354303275355058900276072417108242779772273273590062666386669601352230256085097299631537578243379250716217207440633313796387517144392662381145539390043886785184247175875379030663666093268883193121032320723514090703360541657508220906033720166811388503146846445191695043655886615212595069382843445815287087122829314072755593369968121099035159101642125607110757656344306351170567316743528958194754952161142519311002589041345289007507758318181226707486169370511374740514479454619795301747600610679345348377394055213592998818346545867982587586043173404055460118233649355330635908322439166680612102928592930996275724503127489439096429633208730774671500777330083393431588596370124433769577694548260771609767086154816667942389103506090461460441303968713689488679983508780406806438162177240634791781191620062957777013993709343944321724972218231952125379413260275336745685586088441059085112302706065537968948611903334311829339108761961856541457096893874369570612342801977335573896240768163158443358487707336072070640126367241684125509830095138195768861512464866019104419000405387333567120152878262611453144400194905011564171801462355300334608021767589156147995037146733274581502728112721182646692255544413188398595093341962398594556118494767478653220714920141404358734838912071052581636449069203988138792728992853988460679469997338628784322251003743280666592641993060846936167567748471799555382249785746556725055674894930960003881116502599000599374017386660470626212388528481701094671013876835220025370049094466710475579000862748699860758010055989739775274853207418346619399378999761075399302511442615689204855197230784075822784838312358647816828634723970507033770155108037216863941507175891202523520030936445381610008908813050203916934115910823275492996997841354483322967187542418224655200379622790431069770241676548293949761640495002830983893942602243046169048435580474772240387178669349153928857863022989243143684173047030157010902306067503702447200332641348728560100321972365652015909492934148262122999823173320730648796012037972764731556363037609293837342346820918332034208803758319968924099274936352907356498472392751796483564603811318074452718462234585979449722843180527406250005784420048300523823875108485542664866184058788046412068103591989839609872713115064108184549045557992760943542184006717645354861510528247568296268598180602937728298792442529438708541207310252940498327891791277490031521755214882526034714160181953845417671180625218368758194154070367681561576618172047799869233146403361380334652040184261580390264182536185722468448606128873686999272027416268063766621120692903461969545811364344741598714018921166046622658266159054206976394359312366204552875603421650034736011943422561491403201579417118517154275639651725686453846709545248371305948985825597452775643783720939037376064487578053808966666139918396305543463515315481858867792629127253634262889852568544646981449746189241495863663671981400650685888608602242673379881276879694064970299154524527213257542819532491731150662085866520774909529651007534040492273565482829570256906293588816904146510697177724209554461302585438178630485080605899063738090543069502613842422270537535459859099326696733216515194817253453274733360274472585272453947857870490548475863311571836633235913234758825934064152103907287193632679637592847331316123397815498565077459574263019250136134421817786573268459498039257419696999987645982495670940955954906451431929975329699029290181133468491893973167337404737610215349790280131722337912799863914710105736458088249640377936691442602252243291822035969479652296324150462593037636643284086561602312161099027177979404824423743772421754532743690307492626172588806522332614106033816532093232026699108708475868198563990498575011761996369059699254104368753291819072004157598262345466727015736971133357041403209379345126606070799065586879616157998493410954090321243654431087316158637572737481745017866557379398486692291175992043422476006485976005497828062941873914749664566019768926361659828965655744580409914268909472497067352204701161915360094527363253066644020100232018732278197614868663489891327347014448203242931178410091528333303769111970512525118902970829429748839813714997780527816493437056043260053526981069189865886898161088992699204345478155357404652938225547579239651257816984986734218218531240734311529608214112091999940616010158219127373016501769581186190366897792756904678571018105939373143881192914749443565221896260286325866365190174536592121863876810777420915836469090916518273980753103066499806244849277475618845297329472713914899726840778589778686560487233057524228571724734436667418181232708415917914786168197800328752421946480119315937935152394174090419098412578099090388940779420467270491534500024860427455307306836472220758930821994452347214521842825620929143768143878021396936399786022126322109822077357144129412640653765264285434829706936551168067283061481553500677992734287467174083666602053729220484840870252301258571791456966579523963596862706459037207268058794398134006676701411765812522334810483868677174058797368961559962178465497307393409546604314586015404956157764561673447212642746874614083020638793598042849662247223255046609523176817245863626112848338740765075828895677458958873610951974207232126233355615193382471760218186838953006797502120769043883812835625814501250071190271565144346270648149505901969961390405607906737260724112924471994770283848353186332981761999473128331449159687775042903279770347619380629551238401384229100357676929698595905443982892666608780103440596705590520766837021015952195139454477311874107235279456084435494667607928826819356764666589161362140424785642792681562544850631668526832752465600274776524127942705341934828054626702815992453912487393755809401259197783465336557356259376680876997525746027021669649252998377538196938462547085188615104752264751364891883357381891697121958326810041957653770211921182725665088966824675048666996598850420411916153320898856723809260181428117623447955829428808581369886073727549749121306874374219430148667662596916951953688569117493823196975595579402179388737225151599714054472897083955103654866628196503684868466103927455684143635901777440387565120807714563648777284438331563572496836756314810394389680921192823374145076186305657777377941453330257820788793371355232819306677810347448788145330227671159824630146773913180646990171453231819572964017138299344586652810423902920440420503010850372288970722667320416407583835211625547293542097706718652620762946720436336432735056632041125212872258941499762804689148555075973614650511764125793028369745320360465061569238119721325105618061345213438176817327628414181021644134170249175584365681145479777519582806628442497503791747723620420424505736306091115484024269956433600353014366659751182803280395342105404919103056731421075413023579348772342390739593893004368913281485468821970534826806406133447603574659090656460980097171769957520437556354521685044224390827808348072156800312138051374475573866335806612898256952535572326630739519540636979469139273919509297099291348801486760727149785168270269050710767896576530440463362626888722627429312028751738497554214315049989074564612156955425357015201474626587358829154486936716821097263877036692987627033326926764051123565917877363247704611611875283786408803828013634904145085131829558738033657159237554043740366009431266249374473501836940883501231805702551089418469366688303806236043616899868181504628145439937084394672379528195303288606099631547805411053979831739104819179879337630991824007163695359256783586699908525682834617999204484921582868255426606669480659055883754767477890063030763977320119162644193123137332822364181193438305058658554498299868991146681311711942189160179373602575963218532104868749920473470299426787127613334237668342822565756501574897202803431803206244849572309739005715093145389184344943828397373451579980515625916432262701418620623694475930214105085028120360491099390536847805602166270463685525727413290604228995635102522847519070308253273849955553304495780330902592753163522180988988262911598033711257017217676690454568064922305157474689155717101756724035418935061128887302404314431986958652186676073303854903602774609635450195252965340703015970324098511502529305886567190112508328471496806489438130078371862392446817902162173569122887239480216484647377517681894212220710356555965079794844990082719355281479143404037138717208176090319885645874610810991059369177437947128793689503247741864858064819679956146436708248708993683951315072030565303007886859820360720669916737616414756654287719353591044521169167692816396364562978340737064788274061834054357077412161383202873787903785858932745536149564461255050554782668745445509088688946927185988949423449507483821850184341303236200466807001917504592628408385053643126768698034026811580709810345898604130841735509956944151799175432334806330732613391399797880003821091327660145496111570428580281606751623381353863052429563833095032019287816413249223004761179535824956059145300042464478806213024689786559692629257635740287994013569211675539040026996645560256829723695049590996027170973816661686780048327292990594281029681615746963060606101062267170212539667479513893813748538953517578329451364260069361377774400056699301740201136677317877044694506012922607496911061576207637893345041373365119560032907835235964653265747497435286721116298075675851083850160699896935867152259646305700913908762874164925417081690968473095488602332982888001016529628089769877231969074210270093488809344555121881883365197843185355960674763507221611787287356394656554342761406855941242591214170781163030801019258762199380989589430509396825182771303303349266488532956187952664463190634938964927974779630581823776065803540227966910818093226725142614287685085502340363959705621412515137620467224442897997855454131901372056002945670634038242991780751257244844635771525893472233684526800050490579407659261183404627646998353219893312711732710511293877462720081317263208671247247831036953250571166846693391999383834165301330924772942935847074388263424007013217132097282749479611635667826150715662825021252062763897515665851340604552901092611263816622423668992710649041886270014421128735923939982500565800643250607509458935850072180729322308246108258185874671334067334432680515475652761122900942154655618310341268701722865416226907574466637402578505819839033726685391283425113889776103701554705969784284381211041667496423619368984063561387622795954521514689288132823943963661294501387816765909292508975324716691236834827515460782728044518243453759655049256806485323099928145147534550927555277962794142455744052552188253239556250857211799635301956758117744367625509731975115565148451372854240749048380819955880915161179392191042619092848578161390514823147445531015161591784145999471223905165969441039727295741158339745939062050077580709596765898924961437343487815637744208374999146183451341178572135657651002882165343788389069722998862946226868519562883232057053789421789593678448999728380822512958573742956531487043040321954330164722045813979057452880207472858810311408587987472118632864898447340531146044004800111896474216571999311588903720590031466418126179209119408878500667780109991854619093489266918509118998532817580156149634425272742021323083262625378297537478084964862057473772980595049021455501089693480645109743330059979855532033131826917519159195006558488436551656335235079497441486995545934682666761749841931923239198584931429070339724907410433531550716185771284452704556151487208217879010758099459907819034076848455908034852561211244638832388776007725640595058576145061729291017634210620163227631335708698416113338433519159552199342391045655659731008231699479978456319598341143056370588841358572324394599937160845154432247333257474326902932111340553605260907241688375335436141287023423782527089538235765851659641732811004236702247942658948954200246277977930989345076021362417137031065132759759613489924270047047172533326422774262347566320225179842495249821276559511394568141270076623154851582573596335382671792266993633391806685509480289663970163358030635777920615129299586818160233278268287561386953489833858078404867756502916232810223212628623703647116725909111622074499444703371546717193557960340649572183991324315717586890563578201193562277776342162367247566768761722061015213389428844275546380391429829340970637684665116996845497749248421623454987901900590122307110248805880499208202673415213345261948227180404524659228844295541908154492145808904570493927298321688341342995368258674641083672846833132874321981230074513031444007683574024462780977013002142187123511884439078142864571486713031627438140533885760388529469050776911243964028442753921160112468485588590871112043313698335512983177044754395273511809456262736507213423867548781623509663987589890781058433372203975442049861899214534394570010766993023334045070623558228321979391210716339044784574064959683736835999610270559810934327545718226581916273764083264919446339254141257047278930012181409950288177663218498545308566679007037626577058382731749561209175232476012728488544222989867998826628395086789457714388158096755058011481632951013417845494953248474350246166826049086054349862607076952206845769308881019936388602056908101664505187218150057434727469240045662801352442429043237968476832649959785995418767960988824064974266522958440697297761914626489783151028740066979236203320604044535479441981998947525319571705208553161777916410772764613921571177402991355550151670979661965240622229141609972270298654087146907919329111017460401206520811903347933507409339673354381066776442516210910640978277403934724092269713998641932401833676257879516616692114857084403473110985771860414380657030581140896522799033707067927777173240196063669059902396600617475966027436477233417132112564069573043007387189697608262537784076168904565036964121017260551105063180587830717710457167891720931555100513126248850749712570882776081846297351566606413813185775692321942216169819818338615910911121296406834764541498748925967693915520889997434834825109771717334774849042415704476573657457752887031370873919072182505772993177204212596617789094627810737489396727533366949775977576140133909640059949599124774240582260227674347914043659775007117490687276269345637528762791538610334809869295742898490087041375521603759467876439843626959137289972377200731453366733526996836629260856570583903882359383118961476361331704366529764436074940164969717395660023248475312782613511627451693498591497284257801156635401125748838344957820547565134867525353393094929877785668247383224713634127815663824590502307339832536083003873024839639954184028662980876689960054360674637478175973859320010970384009432908482521486078558007203028392624814842107356768943650847829172394313537730783382862045256079371434798902477544800015738911657789491143660036793543639320677626302110521521013592154694544997058887628365793340606132391102338123478911651339606482327343027611585343257078225967456692639944506549281999054027881507062990362135050452317325013670624394106180766761378661414563785766044207492422926977034984501265149216717696331051676726784883729549005678657239784427631134732497719890600761875914089607306658215138449134561555571151084513215973829110011142873895994616239385058360323234420828814504339150737808186319372078380311364175837348751976507933520535426106483964680022831803234766267824389703438282856767409938801224558418282506165887184191773971348424955753553615428351062448328211410756609679699510482522794215870693151868682289065990544542897676834078428468663516950735929005944652517186518412045443271163745245912494051031774974327164330478610425203579403271210384808446436333013715290149884275237794983457479987528151196515943440298872149170655559184939637362023534636888218131437208134936589804188526181461668564638974283915059558370394712383217345273482136156961283263085165038215295650842082471083485563684152892779777775636659828621565022125074611675903211654209654147012294283854575672141738992979980052464181684733481802173252198821195035184670582808429271159259997015375097479007950930331880565580101398081229845654681618715385799281286103766006844083084983972797637004166030652461482660428311779328935587420559345188132647605029917983382716373959860235887851346092673231951588729729246677097635098946770140282292245909364931925193174285969415236656465995111925468588648001037779316307387944437871151634358086838550980361673411774679552505415696325551756593001109871034383335920075203177187132116942973736665048161622813974369194360219793318911371477579284604851057454283287481793287227871096158968260415191032160358867794747925929885099949904921648497138544125533916737983269837424487412745470962063371390474048360794157529363363904481795414111734936202604851201230536055436888793862914480787910052555989328252773354359247067399972692273992775653397256696715240967730735176129922142025550653142954908742617053358503331777460258915289378865430766613971869474350204696966875056766378250013366544341201497803953340948430588040808713869531589891754432305576148445992971287256207647002380883308255786375448067354538598763808584763650695267362809861199004026798113020461010194459803592743530574492962422737733955201691580053320669755130197311337039125611913305432979416991929482939055726795795281772696879329114257773205002147601996981522020615245179423898458185268279789797440541656480562100833028605473010316050320145740518887619845350296999926465795650019044827824173860954017910370254638143624452508870292266392336640435196780035665454436425036250795296489213906564841401827369714502145264316466210037380995041855887489630824657407334263002530994978155914212875197052710011571017163774988337879565686539344266119544077414439924874232060422661597714780065489643349623583962211353125728982013559848156570204574821091737378662802539307044655436889747490658477949409598122447874322186601530097345480246961726712947787951944151344017301188323674487204478062366370035242586176568380848573688569023709229088212227208341700897912925654354194078268993055731519169901180705018958859647404813904626097073419544942270677540335371029648360620327556173102159143468441553909565909746549927915376332947359960200898026407946829253612778983205853605856186118945140611322242712861116686725025703363488631585717397116032882123866374918745662604295318985208791769279853205968708273206077204908756249762398506391873788063610737211590757336298970566574688377351598523062078348566726739945019724570616041702865614312668507975571689508067386196133576130779338566529426117899557612822039627861630366976572927463176005226248813002620159344695993323013044439085141440696129490951435113240437281803780305270161474596669731823396165575509100944772011231301699270821104372848353646580227984353176487604395208073622595864078734581915310594558252403107537721574321457134477818430984474999189198857234881539219045201566171925554299875334540023811097485202700537114712389797470101585475386268028132317028620129038658514423644864928655235817137202938801752941010225202856911871860796450108765298425329716311744186507520187692927464210613131762030850679066588256061616245123298333856021225199613207285816407020906231271834484822300789404092439163274524087456678136735570039755142780739200343533132128228732868954206188188329141890423929582934929305948139194192101543032435674476992430684895495202395456455030650470971258953086410011569687327280575346288820928949980376942767152372469074527687494117376112489070191987929642324749483718639132922040334047627285290480570200588772263597678817471579821421764176643490054851532223351305020047426608426027581114308115877357853681413656836671339174031607056503790852843226782164643593015192070991234338444761974897013637518951684986306334712439357199345332511924340248672268509671224442280954862096706420714603892359340106844004753696386497513597358331093783260019092515744319203761229377089055745436284773845335137564981164123368922952288866851999159162996178672081918371734730700682281270186065027530298339014669995747944610702671611160278717065002344548526553180461527980301358894310966438222475439771623046764635318028199644937566237115116051978758708342921467498000152971410916725705796936154875615717823583111771013590125353955687127457997201759260654619005937960897846190272218145072358795484271499133150396203051241109165044196697558251321818617835694275540614559727053523826735711023180819720853948601822054826898663602869566818348668524544614408406952182633280487604446919008266967629645490754572236923327441664913195564864399458899338775870098805433186399855404932306776159182859287438960578046409842089740550683296113972392222269790364697767875517303966644741574726584654780659639564895358195570035797166891226946992715128448647722739811741814886633192899465947060089211318989429677196570486185276861342368815000041723800282976700527792276554084855433348616889849738718678861898732323800424009638640679843517162511269725924658678721107053801531949577164948506298157989469417142820421641655866599072861984938491754802695846196422947793149812238364153855703808978900761390103234971796963254719656491227455826354132341424364357459474929792785696077635914847280121218205712372291254433245566053407484951814467690589598069520034923001249866193762108500512364425478264357338213296609669731653535425624730809028817761133739720629836430505408619406221838502449854756687212600676339743731532578383548748244097809739336148731020239045338094741597766456031376811062989214090166123270039005050229476135188591241064706560312980146088899492786235478123370756373524321271800610530855171703405360330737630187113669353217698428260176112186006358489653414360670914199779246409721142744954698914635554828643401104014722300847400589719394255567755784403993657012637700923304017720157097140226189725490249963962566890848589775041571304292715928933801462762817804245124334611567291708721811698669587131261066558109715515556963348198442249377278998490016913340650139225583745253644587113153774964284515400536404218597690932979007200836296202467322396588374131752905866262694467352104426037919315211035606156132717795833242389410113783086245462951409581718941653818826098581362550702814720744101032283856977012126679321464728011596824377110164058829203812229822825505648850200090315990840966980142501599597425610220263183617255711149139214436110185338455682860703157664486057682509194621585069508284940853018066449912071428675989866884127906465394835715319791629682191642876269125672169472287743672269074631085341954406113360848716300832207815371548154354645837025948503616747070730275849967231328096016293612335740850516758670470322859872473980864732679403949139379130849736324141390294392845766383519842186763466430180868960692143383196042210094720984397666522822544368304222054701432565119426870397199293424806391183114715967928827659016065848116137229441994332637690168222434355926079908820340023435099058591392977157604947270770283095758427070913697704371357590202672271213553449733043050674103705440773459584309227693748403956382048859264704386362111993542255000025611449708505270500916289296049847398305977089314120419837701870006385807844261773612787580995515950384666207484815725018212354082543379820275256807457417795530258946819457764606537499326993288820539515184740851474436356821092425017105258634953457915902871522129953659591580769737340686493813561483468625939742529349372392299112609535278901474152094619169375233960791800588818378506688578822174089302237670789264905590178357330290498610475662408840463017442091646079276592403350052136975053666580334050131280712427989700062737291525907016667464372456678743256001955542420944533633439391956768045908713309834479621296632581163765466480890071124740281515643434631081445327339715432334544926861930744837353290342429022706323445090815537951237757161049271217981853535850994155387182194494270861149692620822283110545052601764694421498479691624938335086438997979437257258503494733211236420156454459583232102586733821208272011023617181329162813476936133623163000555185416994512370308747176934753063809491488282318114601484735917650196830571470471397168054171207608541527790614840815435277054711138661935519182555496737687537565590189158920767435261488529376321078731238757206484082373753032884640234882928758674575174119642595547325471299887844133769717447828951480606297501598104109651792487372542415860607092634345112218051515768050395232079839070384455908024897675124281118683112235359449536233280515642845091163825328468276903779894056097304965982167747942906052290642711540907596304907500457866948064424079141604249897363962238355342656882489249030940135322759829226761802139944680189960320675803429397947950058112356339869727902367019776289840733198614297089945534090372605768223447488692010297648871946187586293421317093272777691651871002498996665855083811335678961748113924008069204414625665382945223391551604594824870277524026560308024160840633583104991593130853947426907323472088411918202484707573291150721245446898526855311599851117939381080209773473817493399988897385653699403875952533621748239471547834800589460393665918892899621752104716304660384444123734509103829324838945600129836493417320422432165642758286269646298705494370864746342771185293824804393582160198607006217119659183259180757449365566031905742103306975370732230140442939136072997423148218620571279724084322974222530647847022287728988917204454136416830186205926694781065001577273034683998295511059964275198344209099429823941361558326538840685298375019610026743279608322676608982437399230458381935994455203647109590825189916629159319639863860998442524559194442374098076505561175057896146435919925564267596311962778375128746537965238665256816957003269642878507201847166057379227252095232109907611270241949139628074816965149432043193064899696752352377801336017153557941527226744043835477478346154171361080719710473088602374503121389008132562431720497688680228292550243349395991782746769594115544309850361643131639442573259674614175806634244925060402322028029469873751829312706554137782988619584810935026636452075093196152508201502395128106961883020837877917531424737800666136610712556138095687549097630224818254733695777442501363334650527296241951503070016298234339909100061555024946737128843219723533994529380672234196217016163432924793757445914665771562668285110792098013823602779085249086140613238204702960336142123967891694992342321715288832979939112946652538472686405318731979322677702760178715157112713190221683641694532904519520461503355347344697871415224470877070845614120831498011066671652074655536718787287374690498716276246805308575835228041919956073276659175695773002879207062873063562282907109317225412441028996562194393033935979312729824901885059982075302805818268734536262076988428838928963551772699775527089280711983832712641649813585056609297466819414332203763601603170238645401038041933756887455935123839827605652993796946311157362367658035157564368020797909806973589289503336310275094784781357000647031676531798437489385931992844679705050146584222778269606759197774314228489834622963809575224532923435922351304412034590961012744858914050582747677591103619718748112625960272458667655714727549394120555133622891690426382083573995206157239464517444989912970211065709594498556475671053910136404655906165911779062436459573934607185777117061118451700154545080998850040593155875095120616554563146200738739443327439156540822226551667114981361350737399548933917480863741966480932781710026395502591404777519347205269361172155291928948911285123125631052770972349386770893098856247973589327598084634232185162498530503627316455508600244801128794870890218752873453929413161466208814826808614162015915549122041986025984886099100100893552198600427434057310121427340294759435672697762854277727675979540678321549998708026058381328690281838621000610033764237919800194423704420633319989321465169743345769912822318261140907089861441540819914737474336816449824325266081666966973361969533212777691297726357984301509710815856277952410140312197253995009854837006991572638174933423198417086784859633091293669773835628870784080023922357823103612292313343138708713756072647955306878567678761408679785388418397508504683509284144719683435669245391453969726703865703172962418389792354536870706291053584095862528817292816924710463959137654339775103303861869054162785406796718856452314625346834643002030663624300772804183915050483997746390652352700476682203370156915852377013990541263834764846638411791076341639450962657613452483409138987537934888710844082251502479447198768883992003573792607365768549301553430268438483889314027219668203872768490406507864149839548386239914432710035484142857146636758141086857568497496424920588569843745946865744801849342280279582356377564388268232624187762216226070904519845932677347735018285436069393524165896011745073761140640689598829299446453818686066474728889919098229601789297804735791247963218691536870365595294443349954251605809083049273594088101251280459106505047664962675822241339331580270942092343548241375457305908715656756767010920950546711178377321047597669794363570249991724776409909961842234225938966846991544188772094653007034437183115728705732067398759578214079407363342360849638323335917902277126826303276948775320046801847577053943430079511966677524396159166308278083959053832295112723382075507441530788977762867716625188109118753519733009863771747861881547641160222390303195596789815373333325829836004518897341313857960092977745880614240104591501478206797394363629199355822760236751034782755648662712188255528531782535860103510822581450261120474709240171860256469006846173176799057349011007272876892619452758833587582219473843208345786330528075574549382895239005984568272914134643234881714858460678305948260145359687621596708124955323057637815649344565257825522938249626575117074949886687654410382705337408989210403686773656045428584516950314022323633757026417965778520817544892465570992408132366557869852645353888011188919328625192592221355667681557609276306155759306626473926089832783476802146055571315939157513419736238143794497888858119633437282923219663203357801261130770108572159898202801245270141944055108211091262826167070806274271062080737562374739117901880630391519189825171866613757572759710389811462813209411824321201157828817875559190831284165898101295993972458282885034709053028292225178972431329487897374321507341389531992364509403300894441779949785506114695615294856553112229462352630605156014992464164694165358171790659753464774747518944903388637694549101338475379570124343532832144929827573206494600570358797413728473085568500241405780699494442096564545420670406712691770342055893545921475139946586563795324498939480729634535959897732503522425366975520262596619022391137446470151563774946817344037945328859539492677763875590864797247808868006817235585313143563297543176604392538385405756899742985095171277824885406609203265598281270195713564281392540661309838725191388287432303850700660199215706888715653136986458667179283657355256586271881440144317143679374810596913709321216806242471623729661715393439953368054145698679389717848891015986030954129352987461691091925238097429445514885583184994985947959024263664255486555633149346893561503414883748846312946530056598074676977360194559815286306276126267663557735976758113842161237331459708729860471384174012488889187971332736362625113113346765376292998408903778952000085393997635847442819798576780721048963459907780154266971745675426172384022032773364763975517549166533844727336853524966915629769248343626504746198823359455938542388739013641770469453957981187527121597768442511799580716945466861749820038914136757425295199235363028640995847738080667594169715580833542623996679137191811974565095014215741445024655942823086685483454755041753280904924396975773383406920036596269823806321058421168311536080639600030298348698625014189519615977098530989341590691826447462124298360754346446243464183758912699382353801438495736433235890880340036503562945098957173182119387536060403375025733118252570466934470275756657246020243435805176179804305001576612206859107119164478367877552875557651495538646290031477843352420182232281862889836049955671009471307362511750465682887493345110800437057008572073227508319673684109210872646030862698701217604409040280697949111839643660521843149230735163158890444548056797832255596285773250306390738623703331339379486490735595468517965042966618255310526459824517353756325028373943551018059272053090105142909243352731278690015151305587405395535952649030281312758926687850268380277539808784196954244470759826527714763680134451227046469658616014050005981355426600455530412564538564899316031280559646970972771764775136237931869535642851430445630127610428264940367974802933019013443998609284058688100268883287786069070057522291637884595429511271236416290417249259287033518121777245720634744414071045798701168348653894086087934642885814053237220522033388278249160655075142849889502673047338689414665771519170670071546284933413054595326178257624745577860528907055681209392136360207948400190453482271750199199850351721819829155537394052447488160840114286829854219815417399461519446756653991108625702661728915721161670861280786442259687806540552408407698092622979890897438864871881241215285862107144171314682739415124540231527184641602104587509694837594318073620219293740011902747502717656734359424736706618039867767305606401858990535751230023066083708711686914757913363840862325384349267186066139046684337879651679007095096077004454535563136240513581616173843997008720780057279737476697330001951815716651448215634062181865695556952305997320961352796043608491646454400985340296086167453343809689982394369382494955094716954167064128394245171412601916247382708669769311806960971015572581478531946257461453503976260554651254350214524143432982492413812177132034032371867152062735928163374410315471046396311177083453501544825945760866597757173914576609587753667249840517245700825958212454852196164378931310988248170038422332063288500432542084921594423734706930124693333918887639562414254068324429613965686240316412840305878256465234281833656651895855036990943259530942506080824684142553143703739066510989676539808735874993770334589530194951951702175226452073203602754639413113711611622289900457080284754036140638147708904136189639814679360905829482054185806765374568452152011414513584740042491714183497910852675578692364608405102964056854716291147960516605129860116421892358470677447836979163436922030219888963849015241726483510873673134583953442150224626155336633614834786432335613805300749667620842875753074484767612212952046402684256157402198984963409036109218476043128882969266380818247741624321491805174576051652767148595672360585448148544021329075323119337897054213766925989414624437580625161532179973469637179645547335354924900140560743663106474176679985725698630252839944434637993051824259841257983586495906278906953651854959181602825231129648862454662474149878023489619904934728196665830714757725320158683554707783672825756239924355463937745447797338296029223953910136392484245799089520465639804512178911186836846111736749565952373215883192224769664295949694007368505028403776890626580850024671729589763991528855287127946920792122067201320528093964522632270868221231475800660317858618410693450455257909777395661801233418741794136221578605007833903459125252454048575436327708936373481376250658388020484570153291728775365851028430430373809464582794463170347696134486828805493874742078360720918196695607797807865955740709604430297860930907972073074960701081558685015948097534353052729341161714831747339661005175217002301479901086903452297704877598405728629894181021529690074555659724334836185037771505508603301115053176164169618772366138127227871098651734520385737873021661272225806239456342389511827106389993828193946808908917142686787488703236974236982543558888324608458202840234836262358836434932664801755904603428215172195639634953043008484166217827151449459540901179448852595049472655691194579203679365403761138674937619135288389765488612131811530304716061968670436442884349882255233129687502916354586542686608894604692937059649512844897404856780035852704039935626048982822152555719969935257945452617407432708598911300142906714002259432746902189829951795534427487181116421174293434661858125957750175413534118015591400125239948393901766175216119230063203926935030744080055648532173648116815833020317058976467823292023818247676449092399715748466900662684870792697974543610502665979171872565458187225995671847189539689635639827391169454008286772208397356485201960596067264555193429252306818637594677165747163985103758010266451314905894653201170259390298092672155326188112168705958416472932271969153732331551498788130347398894896254271704631085200203089349760747480969523143814485952336287596393157034764290005251909087525316574079244929463176141128160500604332367814921702447181040900025235729074509400875419094485013234277377902820376877759883889102242894658630718857836325840114004029582015157277750552204976717418065229681281445359630774683991974361507755608490148304881526622616887549680346283304068496724884583144896108984111641853472467904954298423368792950285053562273808693036290643496106389027342398164443712989675246221349980717909832538537518245143182298170149804714744052082067717348293075742446071778472524594618574890493050965097953905422530692123607017038379108571469830225772485251738459145607910558853704706629305268611514962570167775660509871522189311993190860804095893272714652003159911804363740649554498522211631107924025308412085874327508302573604673559050242876200960582178254070725358819424274822906126115650670990690000964622866691935026133569804484990306069770879179642034494706647343583130498593239705958907652120593897697617999546099025575012925295051756463328193778481798272892162688397915039028415489284840501018329343016939308597691882076098327288892113551698234456444733325307296239857923564576768444655740788184753280032062040912485037907903369696799857569854811754811838668849282624893373134636562096236436017604756288482557468798352316689203275812083119267273870776283087919441640602074628031822157640294565833974760879869175255503170496291961917121507212452773313637547286304990037502459348596003211514499284066215825743674227447550106391222421889039120688571499028125033222930101962598793831274820795145746636908690111021310530573875061028762582480472978297597037886652702174411246083737007276409150371333361497174009051602135428701865990605537125909298969887572687800067915869091084574078027399010187258340250270675234927908455645847233838793694839321219370566310273581109630944234629357335874395461017150974841760325948353621751671249004828787869344317863407778956134314765304472710158730835918654422753350609450045427094382959523450061795081549912226067705369540347087231670377358003858882018536060774078592030910013073668615332051430948329712861083660252455592697326600103297614111917437427678278974751030295465030810406048421266292749225871319580437832558381427972820610467164454539667827506633761195615471808114106637289044508607112165066033989238555537675320538799346850503492185865362156116256077378507833681394845092505697034605431168901434565623077243178045128441499021187993090482889896661964477429526148689757457320468170131393090511705612968133624656576703275299788425636726104684513955787617455426140794992788515941932345573064585536376766627790456519468752359050707029026423593768921741125833571439855472717969334716699045245738576573463632340209580112235447644417233019968875948411158859193880265208241262541577592395355713900994061925788576243834396708253598508677174520306477125971687162927198110872264071673162031199505749535335078557905805522805676870940035886214508419394511021296641803010250719004143518026258391841696334287108392447011217284273032774701343798411733012446913775974881728083780863283584806041092422086576772875220996324008042994492930498688498984582499837138589166913141159480537977042001597068934711183157338901047464798780815652192644112417536626682168177076943238146633641948679086382584713414390786785266254202550798750059834420864335320340338540716970048589542381941646320236449921869693519762514875895364475163444940641619894167113410443501482484379874639160009785800714886541351357234604662347929727283142415592080025103467895454275219424132570402630697694654016135485468798571442948680303910184410863890414481123754437128533082399373283668196231302956918569585662741137703388585366462274719316725033611040733156570076520712424079756999501517168219006451178870287463522929808818771007290339729922566421130560137577597719013994123632672808453894003190961542149931926133641122555360118366273278385267401987547818763539357339492847102958252871038099756543973256712948755822478362680745273903490374539065811519419572645585878826961885994749183952654963544757136504122860593117832774704317170217555427338113164461220577791460736577914630762301569877794279947080006669333908086631285203725804287139455275693441864382832163075424935767434066898429248175407624563484358599789479950735840897211272601098018591318726985820436021544935373422820998321512799675477151086725568882198976906794323199185003456465975468942090858651868854156500530177043477744794386727039309525080717481143880667694404088033700276228922940394954645686946736562765121574442727556185472729709231607710083303276120464400195010882554366611838401750643307987896018495725640922702645363838487828264437784676467889452186137353554365637760647667817089845054355114691231427414164836797645974961007517515958073916479931951112693660164858482939073318797391690878819561867435883137351553906131409862755152129544487710458089772191058276339894748491027833916995225437768143940741866823756712442332351482346586764996451945247633087053644068714145683260663976945480193094371008679575123989119060859807956189770286170467140202639004075521169679039679720071713355977146779184571361114940796671246292299933147763421654122778357482586275349900679211197806030788574954697328419646448724815492388450416874884403265627747095296067748119527859251481070284907091501865228753429418363140611237085873262940243390981983868089791860127462081893950209887488319592020920204199143110243288618404386721469844721805882747761188553143345477594991570811215472430488110982675308501879271223606726542472255495116778349951376070493031367598922164576741761560889488299509311427656818795044573907260386601558121381695557713584204354934789536420233897464954927668535362013175286570550588094409771668261877850356569324883700619168688132576989889215377016429415477035280056119484224729851874877749535465998647312837668102316847838642080357150661043760802759009924176268410207319104116864752349250603645638677729618049536610561814538747453647356295576007682838500265390338220423592553982932841939449420500089988724891806211287049039130029485565147495434457524482287158340654542307467849427493096347001514326312416129821109765779780864620896364347208805915536423226483126451502160519650265847206670613012049338696992206072120550748469831325044567903619793751145105610994059722706102455316434184231593135390530727736431563672645801322676377266861863347929609941243270017744953982304320400254498544641258218149205601492188788848500428184182953837747170367919128937630870104272072105279340761590955605690287884154359370412944870677376427126382152837911463086145996881385154958969349477753009109089564506288798749499879189773300553955499696722311303299622373574385677800288472896421335832669747258346061528037126274322172432529339257592492447411545058597603142539540190273271795348245344711818326753377256883131935700208316178318579346955506250987414808507383726201448358464003533691270556211958906298935556277917839908857649562403797143088390971110264225897462931766896722340401278924999440030146467922020383042161988077173466473516468109820565844567718498749974291629569527774417095631284596102690145422333953644324790898827529451163209927530749937938189831475679444124595963726257884877982459217012800557580271614757921687730287677241427839045907391273929426788438577192396805229940340533470735733345183672515542658263961999930983673079503724486864611493730495761294157070706620328918110723891552753833666381708043033055670727526167741946306060870155565744523087465583961240503014805791061458163090131489886188210793827475130476412486827801601908496784421890111018392559678015888440508539397683873601419123096060086888484095875909397988754571250989027721154014401926221727965465649895992143756911429020204111157924873126508075595972847278699682789162682786949115247674585192281108652677009819279435337913553500514689857938237138827353572717178938301422164857171410290069972823532328848462192811289408170797402442190544369303801749299703208434011087332111453684235999932090895156690859649152277667229639694224242341883180352109911640280643484735443798320000362808190976855849256117523929774165820418448109089512683647084624741173961271488101932945586738194325086126535883736855992025907815396082128790730606533354490598834747010168086963731773732582913940201499232920969270678316759681476696675208077482680711116784929358461984186261721109253221606852538815918559880627768721643818351604955385279364210903131036078162438914712543316537004929543573131191804284196503216157809042520133124856053203608591448176717054976690739276489514055215206092541329165702491817166443720366613685787673325110828590381921544766528622524635921917501303428439331954912297279269763953174862232078789202684450835204124961260947859764764050513446164577995797419209394138731127672405794054104620755970157418271819156561183209665877740814676916977483766418386081752547859685152469480775281790629399270652523129308948664501479045471076151553997996389545735499561642096460474745985377240519452042446951551105760149422144598507856289800520015014421723603039442834244487088873811175695484586881015884730508202936051430137010450699026815819894595150453748572348798071613236899889286204993413477844596482623886893449564130688693968016240225696097259058369035914478304640969184582654758153494500776516075819566412400743361172866660578064097906850684383908655013660341715661217741365352466629240385273163158429247510718207376199742570052663628734248527697091241463260439116468257193844749765274127912883327647534004587978756721972850802515877654905655892204714962052521040120166987644538174938761539621762099818669564349377520407867045502757495420828343826527279906640404630855560157935415801838870887714052300577774791013360758346370816037414033581662171052377954778031082878931138989447958611693922813772482097662231537416555187072430037844683873444610185876496624830235355290685620889367050129145033747129770829859205524051878310562165213224612288003475473255932571175091617659416648239497291335237054388627240848370552817002962980905865080479495462458224013571415849006733084457388181196744514291152143427939269965562257198643919606775303837468667222170355689084250348329476678415036783681989747562636076056173959495904537872887088011965418789247653078202554123421527555465375278485116421930021040069601544428550071743703540070335935650539865178570700658209980419574495123587644781248610414755659045005537787454257327663137388250201726489696161291010481279326374567313473871166387709984542067027002960111722637627272674521018118655910525861453388197012899119638473502901740007068063146230130805397545776028724740990975069178826192831971647212849587379180354955908545006179881321198211429825837530563509789912359405448601790248626076719483518442349058719075337294433959240918535280295720103839420962334277562087477231701175275687241012245302815387958450963485798391045192131863495690303912564113905964125401943629294949192135307171534484096842071064228228981186402676350716079693504702100231878109856135679106593066007897762553197898250066315156298335443916444925805700780106162803210220195704757986565811680933242300056066489673694876242617241011990759620694346859404061641090571155345453768092327128723539990744359195398397372110133494916569271429930280203147745605054466184575323059017078615644303819701791495676539404594356060660507017393893132134625850381073195038674483556019491822805167730576850268843254958908956081419950752565189355402263661008481614620386544647710712187951630698336202140746124327385607330074172908534137146764662082332653007577845780127550787262783016182508700842818774533207879778942964858597581928420499648296204273540733853100546993954125461947347217039952702270357793858512968366440678898374656563613544478066683846697651766149996185439896235023717671102740890919399583145146872361287138497242069080950442236785510287628680425188163584026162985180721152833223758097090574535691784019381600243965432578250454451969403488409243408578999827719151230309473805540308231556081860716158343395561728106373311060601526496414815684043194623560436301743175092077130490886856047273855173095380847501448651760497567736078331544722925343359638456302152171049873859253102039789581433366384155929925508944602780701796227452105550671191316326265279936696359892383006096981600167088134430020391177191630701637780038300371126418241460149870417148056626033849775175603849549191579141792953684959706286329717452214945264364000401168512758738794348666883757228899613429938664023640589448245291242820165800478166941847806366047848381761856515584017460372897821585659083148930651177919857231716476472418930431531999088154997137742072101183319686196849440518471348051037624488758181727723344272157087400085249391949339810308319995228854262630851814551410496748964257681720314577419760554011665143719337637218818650652485445039993766092267777074793998014225808662149871912470138746989567658098163424079513570373348683994607400148381880910912278504987422563947102858903617892486945519990491711623170929740819517216362506237142082526119071317918763800373820998941551673629031054940290537253798957737000881786588704904392091026112781111293551942277819214700743637373519008329473368732239654947632992827531835181262400711892034565885546809503026304251921987977737443263726092891110900521986875537228105305576414761482463985863718977279776193730876704264970441151141289006212611388530603736722959581611702139503007414176611284833288601673671673203588047015802478486463980799957676470792331064456626033730736158992261787526742601353600729527851144731299279145245062334029096397175923219795801119146699283960660905462007982374521224503601691041156322195329726954455515182840945395507867404093718532366038779628051431267662740364398239831881760597852813466394695605558118458939807050113575168206806948943855291350882854473482815176097154238595221327308613220412923307765655869279095700478430395568199401596422335959455022810565437799547086244855908003706950156080193072146489726731639389255381599586170220591397302709006385884149534616276426044283738912519184781985002549826303585100634103443763340733469903127035583080112435481586611646799047040995479238128789718678010981520497880605047666820366296725093693960731366933747203672430031896662049975065252017547135786573464383646763792685019584615106967653639024474899543219972319061169329622877894612265668306435189561638995745077221094512799188532444937648778904054422423347097958726521769377763707960407327897024558295386961641263246575492104481223808933638076494996719634861554060909141594976780877461912277082868446053257271801923246319994667678926030359795781182790004713940921719399874076000999706958163447923360510616646007787559395457858135619117973484724275643954446900185370303889947219983080588340583672047301059337164585377733373826188199786074067450906292255488990834435844707186834628390792947080116968639485118508116438134602812347712665009370864349808106119251169983906911241127884922501074046700100249875549803524056367371564404834835224610219675040334226809019609191836769753918448889810307693136036846490751851920899807967484952064252815039882199294501631224441929079058217550021246415643878011473635348603231817697699256886234224365116141378358486034572918456459731014580144233910343661909121175141432240043381471464957028036817478157339925527876758136335975360559539384017686767430474620112279164213879016271782936332025735406498294315950055471411440663728022590649907729721531848353962105920750948187022309948254672970184837824611212322639194350073177762006695405996037403765441062871924178666242088214648278279438113619744675884359564005433840353292127859574881400073749708325048327857556278773866528397788884309372421959455553543681653293719886363436817907518019612735093458041094465517258849680261210153466972738116149856071359331842125178208697644136628031319592662998008004999380179915344918391418600149176520095550574294390306323540512913272285289533183861280090024201859206830124557688515998603667088214403617994975769301015816840489636950570719416181922986998546181106643162421543438857448343388807199476674230925541425220464613263330219254123326554225179003962370011877224880121899739867454023278310111558138887625327523466564979284560911758393972476956922958164791705775346063017007527431401713140934708262075805563651383657797778566866723143389971585405128381753951728867267924335193242794464042748455722042713703833842824335856314255103756910181474583564146789534508685629018486760916770619988006592305344363957172825088842599663928971247757401309355439247332407918204555381766372353322209351254013248159029890264297425927878945475006549946921212466620662608214349320020805522405722398438304493632828192284548893289587402257932082077749921263608591189029646609838958881002923882049246229713322929703775199313610098035267052448685322637447804638432564630100081448629121994571564479009944608429368284796527446127653332448811033242025174738622234490697236755378803399596664030721437536023310369657332315237722987442690566896177962823218987189096251000966738160799485616991125616466451101755971637994994874517358658677084047168447477084990976997944707107221646280139462754592336253361858445760238686903734040234299795866218897141588045753756507850426102120697436970969214409411346899426308743785693181269940438714594895998350024823390435296021410434798710306835342977082983320775180715284808828337014599515736692340895220746753110902000408776677345208304107255415939005257603460912081402841774203771307008424371586729360593480664925608906006214007352462203466943404377629737141729565773844359400547535778336478717385883199572538063980996026454053272056287315112297815716086295737468456654236008290043057653315412716898974622851338510767066427511106126351131616092424346656970070932995217809475711291051481146984681636209949121191573759093465466617608592524996429649049953008495876078196360047102673940074073208436244200346144947032423951767853242453480993775280280525924048657628467141218672997407703083930742617401450032210497262071517016718491281343898195596976652192019081370003672782082548084440770548894977352900740939641152159281309852432760682475952253308028248314091145503496480558833631436378808692685098402275435610953038777070121200028980325179010492325077885025908326341435485168772200998294771996023052438855804487383316035861722692030067101878742606941786040706999025075004932336269299321409465809964653142858940295050759938374246713892699043308896968931712215225093296152832231404015224720069622519312187694832867420029173664435680663582105332804176726151562302124288855432501934774716280438341939284793348612220573524012877500894115331923097650828181118963550249584671068452926448455574277121347428588612865531692904976784566259641824726692778344002660727947414440837066457585123767092000483121940348372920856002290277977308648541474618588111570240287314904233747102205122542105996607035383950648233459260971244250184778080977172673924731940165503960786701230473957653328065850834841252600889465846731191572917457422417794933549798919007820621308610803865516223758124648355406507243292929115450926671318592967693090324380500504705798029574716346546186859666334816473756375825302952862923734367894946601088352913613146663832807119837174914550006429820817274506175115331643178506860559958041447050514513443466135434913237773369000477575850404699354952865082123106885520961899712439343411168098795396248170852933855760900270227949741241797404757178358915130101948311420886832494331481780233765095332429955285944368343551972731851780494655835099194309370225681931802468448831867708730934727803805915525023120406422360947098853016075837054367783741464411605342176004593264890125101094368883949375010807823551784950908235899540726474620437428881050839645588426654869276504840328312182091922525491147266406362203079345506603988385724860051085280789875092295415205368592926198779168922159220522055198532014792614710859188431868657411596378993112160998976110979633565444902734359098328947867883974966109031057965678988481463377937809720633905840102515148001880401230886131297554207215369649270580145527502161467808691366074981225162163435485100633443491035342053393469452497476955086265693627621261091572689185127730376383979571593669306794929864838663384454486312760855100518189458110414647084540153629145822745729015341057988169354055283186736038250883523047392021460703493319106727265127717991413837226705030042889515491348029236323928824220795773086577354430078714994079606303257695899262392059660138555418034196698932436702851049428362179024244477738192565459972644214164588018332426573856187867895985236347842353680905992711999559785401448359660621563295163890730042756825400192358883203001911349752328613006510978769294553113966895558347643708070331569246477056683170873581839480453887530751714783371195076879764077288464866497918231845023153810551758734071896253879853762143717243682071046881420524923936550870448913554165562666671315419217636666644546134197065884404803958628401161360336854813455050935903141657252576055258698787030511931907553636345440251545233958233658716038160852821850071410354993608466278407506123683876446214589192177914259300649731241854636559956751295850203082278410326137151135198390612415964633398239008789738799337167288720356789486961278469180298840007702404614168435709646116237948458002436915344623192970276370458105466861864892006481857884470461376294282061421070348036308441116780061481502391369013966575803093965904415912512096952973581273097903258329274793996928243831492062590293309286010332391740383834274571135139845774783202448838602196807671633165349867303474540139992159822111671115125442585376091673432769990400584497434759055642063076946934728356506499107776795892650798323481084018224489117074966510406187591847485769721036743268151484201956972207473448220879286996083629358763165389047839004874274793515152841972707861432196582841706939049681577256828050122020751092363465517693151572323810501802258551751824782234136431788165206850661394226265344697289359780575579260783216673889806612519238800016953432522620052889956108613287995075957355474955247424308328701918030564770827367014344539375937631550175093518515879850506946390523195829252309751407405254595631400743663136531859885757737887841902614118689544565042160337064786252627247085434175977950069264902695112027502630954367405801647213159267945379436949752610184466085800078312719131602123509138297042587023364160464484612847091863431519865365466090267618224747180122535599681323522386679559736925806895975303712648024482045813701820343286908637165983377571085833010368743465774110621814317655633962100638583167467480918871707737653558986622029499873827444255479241163465467940603650247460245618952590934996673595122712732052401111139185230270676142772309222947288101331929633399781855031829344326322064698010129517045570430063250156250431508365762832674123002049506397173678418891005142525305249688625673873847779662866216497362402883693096173543733731366775835835701794471457470812490698022977681568825722570894989089912066055402520608013224504825120813756743766198679642641298605943112830005408881881233133472974731212674444311867594320910668184178102655733532621387737473755345782790415115931321851828588777441772296620469138660209349694256053645066213331732596198768258859429879426709380114105415399391896083636192487418791693064635784480721565839931203794011832448020155671414285986372785984697074047554361823481587960114136623524548067203456147569397801228956585216225616967129836900853900438345103629959118876555485850103824200072825738319153990752707127241272013958199553566373551289090697625107030489202794525915565004855304667824943741234171084511127271602210941931455401579997525759706235711965092077965351455828496946412471272627520263856889880768351634588214744382212186296466126270826742263505719504739238635075412116648302620097127671004898267161324519103527836207012854444670111305232522693015087030633845197418927063406924545880913768037295753346806779350468647874587707376219253052874813619851138575784542929107665429283407134350225088281889291524452778398747219008131438072043020724546793175877846662665684652886150768840312232121873329607244268494339139482344004879473181001567234526177025767088679077948843575976135181772233032469991166575966356154888040497320129756009526598823496022332949604235511787278552924080285877667806337022880002218103354707338193738262267571929259335637095406157277805724414831116404280200117378104537735697122670282206349312690545498167184995028115689010796880290011256589179055592345472292137852872328218121250345182059548096772277660713101778603438829573318206423587236993410098106172349638246868300913325653449234684068069390174735320150444061138347551904288775406077581916178115413003992574037864435913019078461131559812287433383309853783972802072728689232029894397339481981775713924749169464666678961234291093703387932512337739713880254983507066465501643565968531458265075610705724702998374090486017243764198142270431480373845293687436005363912672650761568078131420041224119594940392977016342812407872080852166630645923056703207098161722529026960230630812926022797817743571613810291929806225097290234214027211916938032713298320083728506679616281592358286686576099904415991587203941836822473090366949690717745701217771446726835111945799235764378946935653542086062973010467307198227660774393023094688615482810951520215970525502361564783557941968817555609138577852192225964776994102305700383667476235506978823189655698241465028678631892113122406061809386048832645173084016950142082157326064292228869111525025499360218005104193260969073847488323914024155853326011528507043066093224442482524144174607444884453418552824140376224643011608492948664582998552054267151740545442020628070343329410693372726429706689108153584840149094569382462168479929707068737877406289283254513422604088371872199038355526747220941231267659633815572502448461126959274697523814493216404446898951622400692837095862738068883362916372400418759586455204637462756958305079845381534715230664110072569236293492763936710913135127040305457696996684553584714559181928377124625835214124458120274966078477181056994570433605081685095894537463079518395003471725194844359949485446852681297359019069065359890335695603100644796826312045731910115444965551122684173251522773863030813597582172290597661376276417661634769091250701619995537596432115575343966216882710840367511929996000886246321999875418094360053087413396269299820762966801548809052355871868076169855606043417539252404967999646517600026926916551698752652506773950851304080538844506092601096436881089420268561590738998509908250154946391822097006484553663668996858922863821597110767179767897501154280872303912887886996186789307198286754991974326270934100026851032592963268818524148957912443276487218014529821857497714292943666893783643822296585911141794051849420735706452832598845912259394927444557146677651511456929031395253758046337585796415811636218722766151898241220535132242248825616774245967654125403317844988384111376073500772008569727762648736527833891636142496421063088349308903320848779428644049722268286185994668934379485133485590582820696461239464975741223628313977338190874558033167517272238664736033632294221653127763584773063153429737277492314973942733916813987517165017810326131745506377657709788695976757422149371635288456874197560695360039337332020651649369708149229583433116310372740909866257470505147022723096296228767689369377387123902046516729559253963757042296827013721597849618036234804337906397035855824221088235298723949688535770504518289509919376347473203519382811144209254673933678229258496532200800152631802914086468882484513127730626798081559547648285041727113926403155385040583548821872063249822568308378114474967278883332002871767003436969011263337714068149248560992223709551854738445717905417687392791717851659319868288756418186776876841019149180793996112890707515885455246994765082176756772116466364276819985224100965213050465083407275744849661976161460840590607410221444976223667994484837777546120077234904834680479955363749200222871127185135606616822912323921800558278141858159904406240526254636771092443831733984763285147065350007978318491582401175956590053502706403840870712334125490430058925526833691094710188568063097486389407660730095765914621565050197607344889921706745959901008710843618344332778765368258772308223344345432927526450350827510368852787696779247529054351634847177830600434230680251041692709840429423261549283137612187925615980554961799348822340432228376565318861257502640780451529541971941954779774061554624267671433647051086815540321664452516231071226012308937104755068250860324046390867144369077324413439849284146788284714793329962152726567683401040035380272025275418435225372283448970658115608571059933666774519856604722008416019086000078805952681826691313841734181990559010582359290201354051461037292598408924440579962926120982981963175121453533210390556518543575501550633023039398321742416388765814182837549573824813579535376415648600199102097635339207548493483886928161124090428605168897241562593757958318989500729245960467988554419093112332985271844623356777359933348040747037205328034706976370027157282023073057696141487196642042557275049195036632300465139541814072510893070944397831211073327668759280377650717251360875571937648563674485588882578876613391844930211918822927090195001468423436369927531995461156713868570450744143216339040780299923490581446565204496233515435720105541820604402629891318181183565214801386554846503939174422768998320959947345326148515338090881844067372693578429319408508180054111250120345744530333139738044694885277098998056960005191411414227947762969039224152446159813681255751398494030158908912839039690682371596762282654375590561603002045727456152794596519182500713348715654510175277234485087001667162208813471455957733125187680564852910540739280222112003286278105640243980038070190569773965297877909880031620066898403721551962433429799281009560861602014910881911509793792900369449912062176537748237195532458063615013009808650442425293478356985149428846338401965086282619268181813314535227102216178688563979618042557270940196904195278221897237115760460016399090888725718251046884283461891318120296964133489317600548046104950927989751763111474022642196757645198488724532400325330251824830774912325256688475616954239348897784619157579442277085582057854100616348798261398555091924933763441969386470241543432823282768456841426994383723540254093937307380463434382820719655314032671584701694148331391499674109081253099843163120731085050169063293191018211053955855670398241962916952076571999272307176373081364238940148232626547055090384196166395745836874762673525255811990719183623735843687183430590922179954499692223300342870822693305654467683677675587796083757183281068255595685431680457476896844792012444397487470057375724574087492178275642473325859338271836011855063727116823814246245890459076029692142808180577856018865526909992792215471270895924017947650784451441464551717272454847694160766247832606573541389446198858375674984767805369839295763266022647239920413652162373636146664032315518541515481118581084433985515043673480709801630625247510197150466954597491414101130866168163686042103388074565199493245861160487111648627998380248125394189901363772731113383426677853259232453334485375966471620833853741226355530893744390195154157567994245323803340830721684199478996812426888461659706083339733717714436498679876718797251261506319728855406319151261038649620313740051544134572104490446705194515692273936673249768573916031054311481689222515925766878095346204881819135120128416258147210278096597999194416034438418232623144808167321891237994659746944737199473447546144729069858854201016252306419680597237228423373245114065402837552630397078426980459732101949345700252505595946981454221070283690676511133800827197043045192478092511785627291035262791697425806840262730758419021462844091789844256162986739091005370029788550698582319092885544099345771750787849254791713785432263146556661535870211691604317209842652323139660654889308538301968340192413686714206972763367197581477872361433017261255520558300247566655717115576955972073111366164764921241000743253672111718190269864734965813010136711373222930768214698233095862601755272167258424775944321583448325166771795381374496444065673813832664575174490574800465056840211185898270646002549842229320727498220697476980622608266011096184855693521180662292994038015726101038428296088987460656304679850229299020929193246177160616038480142250886912373424858644173126718474663451214908085532127581189474825178594017584472291425938199664790339087510366666154164686547007202202254597534809842350136484857494788554745921337509637678216542791413547467006281276744222299118827998135726907378546909110155681042971730577884247638537402679741523709462463943460512163924514821050797603268598660940087323415642353566766637531227634801010770454890510324057956596674130831157927974809669543472607247410692015339209093345827774473396165009357524711241707506350320886771741219349514666763871263737284611604087706301583760011153364921219020331806850032466637922173797926804663637619558362047195745588172551120008041991146136339555201130039423915975356674113670223255190193417645573146948220222522954833329774556051373077425177097744465980760759454660659310312734871555326438908338370277382207431456894458643717541210660493377454249047001490395946574594377123789728005842939621055267503956632149237672981406635006120236079359507250026118822988170244093230606654009722982433537652437799415918514933904172250146997425335378050436214109357723549008818690739026951401669721483626167233238511176389727375572281168991998039957293746032217281928453409332584411696304062383003542688742902118242985645124579520734798462734619510455242561373629943301498393729111087052996951918353365053484424284804631047652208342085936517309658449613028583365481954359818675622029416138432116325768598256296720182890678112418686878459731338714041872970071191986770129310629309694989935481392187592880483984513874075864302765615714733518354407350625531234366496005310914881303238446265204351362902626593330681205115888510435856994564993886957070611192357275711029419692899418765543688425692806386143513031063844433431339619697973356152324266641706639024036236559357494425103835682493854306636956562838134975783190902427704990944514111124123020604342232889259749143823157590798442351778454112872425949353333098571097875538683981754825212175181030821817650515556345242994845390457756267446578551759148916225117807053288117045974059759864583008005610322332538430075098113431012045083319042286546858779944012296561656389081595922394034392226001019722176573621711635990257575290003386602274925942193559612947551851369939324969278663506523882676894116763890898231461909596833861231185867149575727057568639974542711303659181838471780818084175201006556621304763267524946682059974639368806499907641342580893082040902363238351783063221761720643363201104034409940915840514687832626047756804071261548426034683388026809404479308919373423903638644025492448115739076316802664679967901755671870641363324028870508745716587139591642925361440259784029087134377444175895665581130737629688934752717371131377900031008272938712248798691412428008450272512254635272199201876242350802784479678433702368073614399285904811111254193110135095931272766112488895468919453556362187932997488458678348144862698047039900916289528836891137461673156170241004515775700160377837033957253926135405325011465741922480121824316985303536394598857504113262224005410970519491629257437928191687620492675684777486034513839694679909435305586150042794448311206309059344324700093753671005604492655603472747780790783639504518762448392697987313535284348463888133230439792774802201529619235548600047342730950786780625307673643332282419613242705655779452266065695016189262562694823800569503364915047116242857968968290896905836375827828389289552036322393096042046228781063765811178274276253234050556458534328739368288105558230201554434025666056119916083312452763767493832195233495631786258422134166574826288774471793387032908362503995945159111325505050600405519331067854022140139289307747103178334105594829183713076924569795220641402279584670586885775784687252894700750851850045306875707839746663845073601953573707378535670036258558206673724333862383506635732352725502987473715710495782761939356350167592836742308538385735127612882617320094878087312978109940137208753218796217675072343104204098300543075454308934756099996705300626008939587539803004781681712719509393419106833179242945159543851121090917226732183211816227957059544782253612682950954862217231236316650725721863453174107239765038264726120658627233900281950908857409600576878745913537314615158976810289446734608601099736780315612915571892379694137835123162740751694569490868054417875979200365546926344461817737322716700344426677604609492481205879706465849735288079241531563932434412578917793572590178637582569380634250443054588279581374107560228758444781096542765176706222370697241979180215229145483395625622846078386629266810605263766773584382487337825864288501212332924720709607596068275605802893569806800904247794144805224614080192982744535914261300673153997422039808044537501195397261944848449519911402819066003262802697095448716577923187991552650311232355363968668453024301596197349226235227432305360422337560641777731623856071805040559182350894142161260438937320034975326339693176839639740834087614896605346765002018018095017901524757381590514466840423320462519585964796028953155907754720418751680422104882739795248273749674258822122908418426732735405062974739562518609784580701322766115173325159280125006610307845655227933906611955467698467069311445434165385872999911772553407583626730720598192318641581968334407756173587601158541062885902514859706630256627278188193432044354405942641747287444638497088753892436548269542567705195500503048573967192593691831322499523829039519078750074774192883412833931514360545655499274003400051475286011764913688197540583518130106428191854277239798889115565442061329521483403974655953746931767971260593262273578893694395281403715549812562291836028970988448351999590927247614292738476113427394270764659658609967512305032437609252837453544759855871927974513545604092844631238388919297638722450948694664331645858611708788407259566344648877283898144806975933463489209208474793366411476916948304375959983029844851046697116761180315756704307486831913501510866268148110806626764448818763734119104630148643395133316943864867191253051197712222605129272066288828365146022194470819695463197824818062306429591934380319107075672891130341666939068376651437334009829176917783350235113772378070080134493751248050500732197381238516250632081049666953651739286885813977490771907824529794195616886972231675210450667137919208653893674998631486641017004445762995894532195598663958091794185105600868613728352055446420332754284596042843329042543986132359098896161049110403705381295507746816387557681316299190250815702719076490775784360216977227904172832152483111546737798675348633009709840718852917729363837896867045449380220171574243059909227766330242974417045007458994475150076574278290259389637763493531594783200225424326725184230050688202082549721292140563372558158112710474157018538931782939878771279827488656715046322466438555534848878687664135561276104858242058918651972343533639572360994808168173974031190309304510004396180691234477085551492472966785089521986109016552489835770049619203738616558373631326523459824531995105916058379000397996951777069795246952298367607431499008548564143327220034989033840428531242112340210049816242918589242224349575360808260306762401546957880647296192668452751116009590537854831636712454848677882017252054639855865003582350020215085164236635007877607151985614525626495159105550747727853798154063271681951117541022889298378222545336756651902512168230169181983942598999759411769587521509279463766196336087192509444685902213621857104072204996638635871299053055527028410467726202127446674545215457723708236444533570645225149756787051719480050080256782460781818548758389225888164176204903611290431281674832076693485228577606793484645865766909520661008787906430168167533916211520568108446789415912337414636821138833757732614027462466645150989210440638180830560804013701008907417193766295844421691227908932831982677233321279200768091661026838723843245442068679756039482673658206734515504267630881815855803931916173275442955764365162015166446685575937259409711518783692173299938415788276602267092529147461823418663672193112269842360868545204188312801997803348787565882710587023709613027479913234822581376961217046227422496101673375478801063408551486622869956915271626335017898033982736448774282315381482900134325678883228760716511011595871871450105783476297528874339274581827686000452775717724788020989656438529423881738799918747129758741165413323915565108908775257686286616807192109034326503014635427492044749312465201473231975770361204501174793986282152535497202671790895051950859097956215389121805648789967857306884996390327781322940152073050520209607654688325251752641013550651450298021343533658755591616836749428944121480486599822561119879720866930212849950166479523817064956427351552584684628920014188138574351067080680393400649398027820408450155974311129777968023582204399718918274081952024523016175994797082805860032889288674106247132869094694668439042012057741066994621572385110915692375927855868449397736068800192293491471758016316525474727285404111782500315404941649532114745075496654802310185518447420493368214986786738789249575147069024662390473966302006615781093579204636277135039469784343591741426437780311902195475226920895479688782548564570713556669850232754612398823027868901317573219171678493016365013895529131590117422489607374946020294851279855924507737935690813338697470374157396558258857374134903582781434074625542355164396890460779583866499664944507475657969935149351359732001330337208116628916765098694807294403299176129072301114046589113824272726329685176094284187939802605239565406645933007896574157669708671920929452539315527437352828004823457509144853354240491820583021173669376049738422721591348355204042576169928064285471401936855614110276582808570403423258758656946500920230849830826784327277486927795504066111004359764768678653849550272255885422498613657363173961480998936084740971764954715433406237073265869752764592133742971412420705112256449499079144192444832839379138042063623800297002820623931807561922648539739493308325197087313845811985701710024913652522719868408318404784693642902511129275176699398862034387891751726757221744214538576110028348743219052433329399280948839061529406411018793753941134303171916852635531673529853639867761635066119682247234864034096810385850460672960147613107402400742653402436803792106844615341970808088122076807110643890588634215785282582287743675470140831003113842985349352824935850403623459239266883114480775467105910694065472373465877894192487323643702402024017517597046829540255079677309844431798635413464595390227657432035188431115597546352330452355055292850636311524081176784645471413279813406592746732083545282276634305953054734309381750377872317646489096491044255879694041170527766297023256952463671775845878822028460530530546618172209655098183967544401193567027827210833556064466575228098058628703330757873821082112921021038961652312284879203280376653872019582051856182501442409628366098463322528411015741736148823414602873774984914984590462988903284925608395739914059102412068455762480345904723595368839274619006353006025286844345466005785745687250028879740781269950143596964947641493185049625552169444528557452948072324330277365557456104296608835697425307361113031082380003158538736286884921091749180339054828505462786410001316947199894889420953086446502679610071504843926206331171186086120818715732734551370014186768692196704885901036242331516776017271742233050495306158524791962889675944421346235651931221942844071430978955055985886244201736282607350511638463571118784683471588349062334258834361427479382954834126341741688260288873554781665323832154076835909681205488454817189269206203670965360564089875928450815742747862194136716994322945869330495353722967997800487191020347824739491797171976726253884952817305136008922705243085564874504121603355151493103964186380892659519034350197950366229937107061098032834728693454151359671815062976637443099493236957049534959141935272715141873765869451223636710793801152421662449411980044655721259753580463999102393279770838718475347998543603066177468548167430253509114142253635633838835435446860011086384802147927631584793510710622722123289000304008555103460768066519552168656718918133485068069377003906870137625405524668497671014459934961842246898041701860235101964990133778650832343686944378216392021885085996581311126588948291773489736110174739245996397882377084643593256464055446635456450627816507891000060357895847141178811400147045565792468479338985904435609519395598304841190708596839082696964630103312919540548356633470754825597162240957245607899522751374317292043294421457175702111966492732950458924351154224989284182930968016279099901439100065160664654765723303846462439511383067770124161991030939928940398116061674207603382917593065660440087162242294864120927680054840263546046021286431296861760486768545873324590490445815446897600129176759371782877815746344749744317472245714178249593326589599012326316543180978557825775355049571779819902461257772849446353525217033433931343645138304258981514773623679199418168832859918715721722876519947031424824878759641163100819127666028856647310961164666767118936763472129096300869239623420708862933863125561287340653467909741993828816638506027873280048505449182019933787113082949339025444084544528311079067175578158009386753600386035576806398106423575109973318402806850770996662013993830215705749043949115438309056158300113014109913958329032586958376761970744891911326312164098184347256008766211159695133389046258905040210397168875297634115653016376140172417412754156775733851563340968924430140617974975371744256647349345457924696799301102619433763644866753756108769161304361374833047944122595261241514898169980768101848189578003832576338780435311856971995174084040429215732071789387708959315570227427282658161497408013320634338400868902388939183331420045159614008986112156292436416947254313561701811792005595928543918333436945191945143171541350074200639050607167658190582421620289769684409055245447001281886858143549545420556689838786244832075212174109487364741091578604099102585558639401309155175600279765865384075682363973583472336482553352052477229608819305408210532813113048809262550440623955759039194431714152652754080895298657263071634073224395037998714881512624460631281385241074143597940857665785251694389927465562180588692066232504493702921288512745927021376748342927777412718922155406268330082860090179218753829486291501624540724777886699889007098050569250698581837390135076394365418723293031183658168633364477932900707857451061139914809110997127929438493913670158424189691093862380272576452166781402236132290468097724877826864188122877993432976707163870569511990189632309245899990217975713134517425936032513690208839586085467504777322929062846481720319507281491180095950512581344757157055467848443623776914819179984052906677154792911742669334885856708813947344848621438111159547544985280405742250695146472008424624472299321579226467217881452064820830276936119217385236785674096279108523422956090632666710480288192263713909073768444809318444989699293106036870095308727241026213678870697269856973400228036350475523688004955869735903902069193128307071061791355676742158772575982219129431864574547720513289458782737577521030711942554517528858363344593580055240089312099188257065548663923144808623744145953055900306580952924404261767525420677103355368495524654643577010178979641631303867495239610828903257724489918622996519842327827499595893408310312932676610272410807379546281880763426986176170331009346800830651834771328705425499623260325011619282730212993493413979963426151264850634734832759136317868247289444932146606184796505730406718748284151914741684169089722956160670072819776610831141061869274357335535646272541437940981346383228624336413347897889091264153187304060531724773810353708266941065444062266129376623363259061383819763194013039898558209482095391860248199098966486271356649875701497953400676447858682049107627096977570549150879619769194413901594125683267942639579018278254556896996803223178158977822565761387167701321480211552727673111734165311892203845147369902316477647593880601607553748338232854582595062910239360016544735394298287668207371219275299907369744081134237202013142340450525931697277559058565700313202246547908665758345126654568263055461931475471873912792397211846921778376200632624668145632249687765602801045500696828152865754259823483400926471012832843064302569765264469413502706214583191104917931941434930177034870263334601687102918360837412532758776315402230395628877684472328030214298729494647493950314649180413351420239388152487593737159283832660035406428953541698506199223530382921861048691825526902557498893197784720619919805017972262247637181445979641371384620798209083958821187048015563185208134305168523741584217478145801156305831176787708977094256915360787809113628435482402282839456580419522013031197722796595983884093635835590118574270448266505634384216253604983408543890402854304926899306613530295624400202826734367287192620794029735061796925410129175376266082539682218062164181246217311896733474309422088767060630546716996314182155902924351378436435063226209312068014316916384978101227107150216792472056263468706739088756753944244827083825087882653565581974416635778492417631881483621644122223236354993894299078409216509961123532512011031423383550654938890927596110536939808302386103713047566762605558309278494357851978563905347432674505604909407708591886510655453008198264452528174087746547899161511634875393067419302334275836504964156863538834492970269883021283850750117307225319474121886030606608665654771424490261810915095583074276082948581103520110703303058709257951235338922157247424785671676788358973767617721175130586934335536764903674373881704440543698738593926649447153503815259632505530020490676462445852260521393121962997057825503270457798044858956070209902153446695370684284521782144523866710469408107506167317478569718979427878871605283450429022122439834339069476764641314581807048184216581860366937640989433649381426799919717981523351084157064761650276045386329995224430338938448698694879649254150996947664654689769216486142392356827531850965408813353323603150184543091811589795300960882380182295483646650730834615875373909467531125542610804096592752714562722552735012176578243220128221736845401883409112563696058674173544188303029104229540931213916325166527162812140200393485246292677025335567801321211000746875104927292150677332824634054330514641101694580152392810648716511937484962847145205922860221643092270732911314850551462608765491036968970857811251399477489383288426598056121218316115303041915518697722069640705170655830745429556802055860647919856113720832021397337158971801009341952992408631804186229969441590014844534898620679645053077361183991361144007305930420574967863953731729127783584821562914800308429891763640342582197758590998861542291506488185489391946492442442707346065366282411043806874634642445248921727008002698896840097704990687906189943490599879123299393168654297787340536374108604116821223280321443018450796681914202371152463948220177093142729884554336272986473983606761973552064654414860620658273116315057177242088765562487222682926660203714851121462441496499951520297356963468957934911848613873235673727236286722956930702227282618936242091446834342646800266077199502216509365191242991298909496734886916099755708415385632669799928723106696812003873504357001390292512455612525900332219730742628557709051926829142078160159206846851894960268032416450232179784549350036868531120074399878675353188044734785139543177396060055361114406353642161812602126386573094690593255906397219492038056287678828743091909615406869152123189362789249870124538829074308381607486273896787745378236370946788911603417540455089169754059227394049266623912040646855819111208987613022144456972568625452950130411217199809106691154157468748584959986619908398378171263310681533641332040836168589505925150168276847524016347344155357829189499213859109112248318187172194868838657130404829477742444060109969015638352378276129095967481510722582918132998287427054987359677484220856206752067159942180911885102146438815360796234541509213403430061299786868257960293849765918712706805152707141861960573903188851282433872683766410207671757126610927458223352290512994852828161359254699066916018502759401681624498230386088013824249883069963917623093961348545994517800671078225519324205087390126795497844015698988750791231652774721289479153173128457969061288370019751895109166908506798567605165873074799841445684924921279790288124241008840884778373159193613204548263035674749277565413855998730321590540762951436378852229866981851496708348605274465264498176375321102923062590368635856799489149248808960412651107338909663443593384412495832698268242760102098965945460477365239871180175186513673393394494426767754232119108230942372896868022034743959324862376943741086660282017476556319495108722588920221524980324583927172427958667737838065801661372929777118446650250115258124073070963018040694074965568499308726304218300157041201379224567873194025821310945461093699749222618583746519732322036812782167978548254038535799586852096711956323580355674470587232686279282060364871793666055944117539018089837790280843442247968708856595271612788363404327608000580450948161376241757342033947798630322367382842571940605835474378389044641540657909999318560812430846353396799172288126378879916003383378858845547198231679388933628377732064114661702595420850885180512900843163071504331075395455419907964650902316442883447406871971893546673564945681235430496129888453760929770893199421463048220766023539824321576162548761284254121061611331336488224541324489754535662653491424082249134020661750072112694306124966341332187855468029459124917217464103818671362151457164950732198489695727687268836431105360442715715428913668157127442833213339763343000508127395671874826350462103931432431997549195809096136562570024320166580709518873058991978706793682952440485342023865275884507762927871463422193015005638045725131759401228561135543685420108182371586901339410613178329297920410991327454105471307174533004723383956546187163445703401855604718138157808981594703684942578682192636363447742822186059642474579472170150025817333302273204738657321534694893877232700555694600647506204148733161156862285269074168809349901746912760692719893850556484002433703265597529368602387426960159164509565088854902089848498876250095069667635938123169779034511780554066734922879806476973399138920735680864052470563221867382478507164461143098095494880924737318007196605892696476743801970268224103288656111365849274866963126807376841336743444843549156947581728533594401006332275230578399387530325507216780079595410679816105128701235325189048159356172170323986252992391411785715560131667449541431362322513430909381171389724401951230821032789265836285024029590494049294153277686423597978387245805939513905679556048902242960073431779282618475193395556459371504687561997579743169015357214406687580868655452485004827357130853173124413579232099358194008478035530266617899903400164500470949101383340177229462992656423345478810460564771403017078618144781116162479625532392440680096901179092285135273147955036450161301300382806788453356339113517314102426784397707124485599392643077445632719090320883935185236603305236997613131733483452682577284960574391671553951585295633300819418422656349976173206683909930722165580285405458697118901221966024066946082942278143215432436576101750205912960184367126183329145345884749623927097658169394040286387467768485985922138207034864983052250484391685775345481955113749471895212461814152399021533658511335253541411165644033399101481716030559606437342868032391003140709411132623263239983969953761922713697350014839858388497144816815171497459079590177449277445111306272842013163584376417920933292431674400554612311429161626397607066356038600656083714043830300413434746398954845945112697033377583290553364122253592752497345534833372325862570963384334203596640897285644317895876135181009427545203740088801072788481889595167231262118912500192087373386133650137343488640425225200177046207266882007044656184738968235564714710782682630045214904324105536355452559184213541968651137397886663097500814256431984740377591458789590609845742607885786320231440257646052463724839202431547042711190031890420403338170009864228643418074777777983442555989308922906974570187202046818294167524913485599606198009894844748916628760419800602597001273656939362975409320859454667562340804615013545821550863207226603893401376730576253406555169815277785599299882419464266516768776119173622270209227833605250770480707590718034363357075638283659681399539076072706818136565759198668375105461152180837811919647554096709582495601782824567273685631218502098047036246417619868271774847822246349032781088546314151737181432979288325624993711562971573739011583631087044860251030049694691425838693706512037704663082421648944335800059686873021485249287953824228610007364203649679148694242547730644728104255087291934196066705256450640960879002440406424731141356609900651467888093279138493846480654610178905627645635564452678797317660085645985904575945045293632732291403406240934385163140252600210208532500280314180983752338963958307623736733425481189342771892693033982841203649517717601003467519208158338293632128206631310891456020148225230455288294429174005143891311827980981984843229029838696282514873944582039109406532801887540772094907478611791577001719038791280637623661744014404520702292452320454057628069657930850203981218378402067202501202667529553130834943534719363417727340636026257960313651197855485669372846404204684892771577804345867761008528960736931441334648737735250159245211976597545908769502060561757819359107740362583576536008089376532813708436943902272298653222182884374001388258111629715534575674032149860975542868865798743690094970509798609377027835722338833145398049398921017143358261896740031225279973033645710616072849682640266823477045583015458557482717137243584709948613726587130254940244957385588996605353709033892511454055581245692941378882716519900043761079672572805998748204798956785593885849948346965194930897814997277634733058570717902709356822757630639304970229663395528763379913078585931420781133511143201210260198730421670626014357584117977079045808380884980881666261853588355924200630530246434628992308203070806494107304156759771007752398558686759457317447670945568426890385311284949880181447745665050961489899151762992416428780004741385080452032953053918409768994631996955912786769493195927336620543091812055669246215274078665143235265920707086787955864168604527753575020748767143337706011912940315857431076777779521359026130808289832488394832094998845683076724175929943034020943993227082754835738850741991713694004987985861942344627960841444735665203792829531701633511815302931272302543562910554586395777780221165886661126933574072944361455749056372007128254481135578340290160485176052432969813550274714705263542935264813662388695848981951679047612474744680084772588713945527367108878475084256882598396368306676476645133082342995384063714939655126025964126916639553294222162779760787495529174856884218248637463247477832449298323544025715676079286742595284943389896764343657548230757547840335036965376873654980223987801192035440491288268359419539718436472554090531421055666320732046388483827683792610550038057395379402151364136624967493537324104404348623823362492049535442857905306545277265072203465929044320220171632423583137835125210957641527412446577626167543609470974335640076904143622180682993551510913855657373411948903218456220443877152700482110127612081407824526498863610383265084808525295149522635542646067184454304265338266686100665577169517144295655590542368193393871753203864115522428847408796387265599650354531601787284299590624897569431465725329799565644275381025956667255876113030863545950868484208170230903776010731371062342933780745475082378560549479876902139056655858928600919904560260320637827290761553970383110180084490112148119277796748391027288205755978205350883461500219034837657646311056840142504210637833165097909347259499426617045207232691017186806893159895008062399758694838970524161223017172894039046699849427213392956812616100465090284562126757394143927950319586502350481104716856357835404264857212754026388128719462092038132546481161703135867671064365876605516551331133170227182321568773621958482168564652846069706619054395401406510630973336513811963331659490303921642708535422804979802671491189563642517489134412142636155478089214528367082216940259871126321143885299391696304804817892962988201123807490130529424929480161143533023900806706572137816797198568613029030129939944512498469010019891936059827916973051475943464960288332896966081505634505660937812923613349058578055094564210353090736019584463712165073198201564242201326845668774183233102473192186851564341203271703057306607851753850970691717079172528551174362787130160095220892024240503057564021537273695926679974781070727937239123557770934682847560107630127913119953917628186159430382077839824326173196631333620637934967687508952402364246923190454167386235836048283743927886654775948590289204020193959377065673211949099104335285517987140350203076055782019148388288094649648208424176699245675831226247807039055765314126326024292243620371953291855471809159644318568520578823501030910761280604457044251479975896088802812599786238774354965990492967322084497244345824350368978036518490995121422940156691745341683830903528477964306760861159976367872049550579563651669383452102120571246718902363583790833911908020689959689699018812232185525286934857365188863016045294102817973608068954952403606648894468348535737117060799430547192164875943131412697595251661025229095753755095093371854490007290767612634676529166464558037153306020553474162055566838087233101145670608219713601991166960117726535124144051093620360100175840533446898756534900244758018499028511290560362815437279676288312381657743751766245640457837049648569090428184674143410766075498411465742153343796282523773935177587703994255213181690173990186164214135439277973347087659736948171010331818637689272837636602301920591979295917914822441639403180414779002828571251776448410593156446753633092415797021262648130428083893377067239822865434173173648142456296618079313695325091128754694980155031799451669122841384464630874102798782095587734617666779332006361614129983611238785269844967622494946016222419848188284417597250896504323883882677621153869449072231408003864096674795565960336586550083450157466810037154981215455917708285526905878274626801895484098548064776732259308336464326667895198132303438478055425711893324488033710276608066426197680004014576819261412342142109083788260348803987158967469186812759503541904068967278139513219884211832561094874735276486643671335936837371907167136153442892072527305707780561606591615442358910784646554736956343970737221781859123010944369231395220301011367407345705952613302936743793212040615997089068120350786235412780541682658235374259385696643576271097354086523033339574924977199534666256942812121192667488866525631516970660724002193962668428251544756149635793336584523772409968735795322759190097974155172133484533357868142287399385190209367827402155999142045644643838160009990650537188148493816086550357227064177438662975167896665549998788957217902623090845448064651856930925569645317224108945164542679676181972883295841393513384459604167285457399141508049594466135343984501427618054220965984867109944082508151323925213606951062673373679223322142599523022293640904766459615450559484204881311441317204646926704975974905993511692043902760515744667739687080324780406343777841672502198884943540982821160007277291505075986936568472201694104618944458261855116004154945106281588724851403451900555634666152447374960766113577874837400388629388488610195028128078179274503495840575292845298389091576491324731010563331478134640265046262915675377909213724782897003196325968912513302152465612054358376226860928203077741687004590435263581749463672455178978493175067539046404160336384724054649807500393002457661071466060571949510914024823273526691221496016070897220722054628810038730762296890621526297111428927346339214378575838167995709651297512128824707622937565721348906236186014189959500029393433011746330033297290783402638252783796053000047355927546848718929972065613653375153747792196249551796922008557314794457428822592422876777321288598065370465402461993872964993594356323021311084824249501800675718939861189726218243077831783344585703611816094139763446516272565828861687821301342558907381840573422275279094401507963350696306831585842595975834413393166679973048051471042051621356217540904877733022739698065649590094569569853658432083562061593452925424189291617305222097935246571227066400541353921262095374160702598813126795666746170932371740523629631960893652984442507430228049766416403828292571371636030617625967249957176153695852486644931720109608534572342362545038544414412716384767262833330818958559364760061635249859063288744503255113776818130533466466995015477493242098568659350490106211412991417730998045997886539985559972088652729738821650877480019866860316305612301144493319357840763341833138597727323452702126526577296264884620440503237750927026440915992126524862677165996591324571541392540015381169966140144979220598528654631198814587419187337551855095811871019692417664292423893754945163159477245311019841450800876155626440788217209351125934261844683035210737940004183828936058544070651726449168857872854526507281049117224129415223468484489897349653315569393268554021166559449075153103970832462344595701968564326756803854451935868733514968195976960082012537990084001054633523364189127960544687635703710651413568371551244836184919250949941414462463217845967667191164877674448959946443158395848718188466274202784418999288032751244966696486793458941329860233034829288762606371364458073713401017269924003140999628987593282399732487871382265254741903488221774981954557079637800427801458791944118907707143580110302662454293625150543461651519860793423856239066455154590868997009872757833856476910334686388994289636191695331383106351444319469299789521504273430274505489128224046567516837384091737414843731819711882264119670295140010484497368688360489262885407453712460157846887947781317083920277018500839599401350787510645356146154845035346787490153402751409018346456754197604548330869216939024898067509229922940715506923777878266699123015899093808133728505552990599347167842350786739058036553895201811147715527516138372665668705503251456831582959065357006080657269902272143379149237524221958255515527390476641515242308413093279355619405005324441453950610949163270387153037015281008875408093329479098659178396540897411919871437341136512716438240524415842887697571497711414714279508295887029927924683321337051526756439423113502628776890344646636321844459217157587924113199632987541312018325222678696789964132934113176366538896832051191636223996373640065062421869198223064419813515321973198591015636256986218174854708888378220216171014912432492165323865576908527472547859682981249480686066444493519183037483665508175542257335268514038987865030070402899334381972301961473408648283476126073019822268614411798984367558389159008469991314054138319391816564308843497882991517174297486490963838967343065171217360275453757834311352172150182695929149322787473742572457213602566263841389526262793021300099661963003232522013138218844822215385253127676763048551870068314684039926818548765384056384831921002472231916610091343950767855513837048214284915101698975339078975632339921778903880476336813748465168922635716230718406415663249241086692396760121601081445609232133742914578448806124786377388264102086180249513057338836941585087823197098151586711709517388028679580151067880449339024806890990529195328446696828825455292078708090501661485367533081336907004801338828585461654064133202506938355963174243658840647261575760099347841140840629982366482357485543533590505361262742820018784805295304476986322636627829632741637011531118234081786739876610728127325778513921138076815418944404176329463049006186478075989126428325729987352871612774183368051756379419524402321288854911774150653111681836226989531900495922925083762608050033174333856378486749582231058631889407398076144969201791751393353298858853433644997913001657128680999951557636883579690344998472342604194318599122046582749564413763677702161143127001434771612016464832132927118257132879105841357861931189374595323631023912708890139129091665271923774586864170364801203295328751612012917060959270907773561674019391174412447124601417849679728249366145899072550082434997089096809636416891569620898451925626719343047171456304432399815568869354337262302614980035283716651359121693178382309796485222062854188473486939359438432529987537651192492335099196668931068393430992917742911260879728304331663875840237022011217239456114473365412763340270584541778577485248631649999170485476948432053120929273998661075263131976433765380295221416374236023722185067791138872580576777554374253574423899796335819714032277935613974470711946114165176151512388236279056488635894726860573344797283092570943913779516563058538904168168987692580836506882500936119261078911242709881222693468531985170663717420468096376655728936417132493864433405288735279025508689950937615120464984509308482094646064177940775927273518750614934528181767517108450236520442367768151326743193251095192005876749184930277695596540981225396357711694671126060236069439457213648076464990166378437484109735730098749733872155726959760331137128831583803062490323833048619521149826235866733363594360815330962043523180699058672531667967198977573967198505633203916276929612784504325093027849365575704663665005042353807000210433790543654526769156321162307081538667932875280399181022287966754927414138146006565485087779489944785505088949148052882658768844456627293908196144006839830805240372569506411438993318116637701630751930445002156616091239778765007387433986121377676316379949916035800294253941509361182877925648901997063611511833437732287805137817006854618939770780027545047057465744096115186501688721678158080161854864108089863222334099124749225808111853269987957362030363601202486339705294671240192398688862699835431092004562279169984416988321201809559455053488532617542549536385150631189625309217665291658243159004583496939706876586542432819456476478537355251530689891097966688781002569839068711319214254198866419286668754537724431761446354156657628714055353642878518017662196471266899624319482731009397417104259055243749687333036596872146018899966928025823050002504947431957887361774398118194129480046029505427368669231007938335527797500383591562081647286299516181415118243048649558704764203871577064527587236770808180590408423523775775754008846877561116658139251193567319094020961428901109648995715039720715905042478578296419139818646456980690038836467983679810123769463228883609158544301049426148760350379903441776859995675993305022532347652546889955258062893178117218231637950877845934372878641514463873034437300982480492495540033223434378058884644265651671117254089024251656807434576029571481282240947846055854321075345638218480483756258915751706013714681964216897177605495301992469530239019961482626017062848187963579912396970015944414686775318564583127254717439445008216298283049375695975213397439120310652126169622928117872149914975372547212930687038508756506150275226420337304121616234963978809943527080416693322721835932242791116573630925466496712499296143990750000976357102050913521721026748783818004596833106999955907782554648912836743394515824781528057461034151134356381056637703548798094032652665484582486845829067556435863245918075346077580169583997580648813770434341301059688439299179317417474286712514331325517759566739120611354673648311519793542086154722283275856040177338917321114186236520276449176308259943093916713016035555066396640063769917744823839840452727764172011229122906118559512750665064983546029610296574754375906955550751018593507588378946923408088442421040443517845101844946977660224325727576337213826673283184851041913722572799003023019519881457021217165722765189190273755803239808560285417910869633038050283058254155207922154675509988166071263796669062669622288041052194375553599347863223933308807429440316363392974318457429479645304848126672429605547789372416592547542572729481830358524079897060138339019218816473115578505264328106710783042538278625507357514417809437945152087696441803929450533710695800288060095926155424042953849392236692825186545787154155054376817216194941624398023669701764585168224184823494985612261220525940694686843355828800042360426716492051983003040063908216049484182231793780018789714732654139165969414662854460720116633852755083190003281934916500791575742541572642210731921314240334532607660005408832422430395364285170101907195968996222168572420582700804488458661600852468547117664403374541716972573166435712993493887181992917594663181328648661847971944939975673768896889421874125051812865226543689028478952394531890759781837842937386927112332452240270485501136807130149912753906376567761950408247294577951614725178334058293631438937472774496789651364811407002313274619898292467466885589843355545576042775737627609120580484802719998495539526723426269717512224621696901278008109844442553591517508360950391542809560322940245012534448001359071329437426440765715671941413957919227136541009016170299103199865705258409257998434141590790940476127073830478178955109473090662575049936351422786265074676659604091872737225477947297521215673568572609788566464575410138193018478212336515699772263615169997116230814735386874455953454013866559999562536246834629631683409797550456405010277261083787851820349370533279213894340837041728605351627431809719641851581334638617864058085289932616267479202822900779806148737877411733583027613120796025607848818904686228962784390204998370368536881027711277649164807893994443904092507590483328908728324142449335236463081679818407101984769366305538954028736744903373984749075859503560607200358784504301688110214426498847297177449594105845200382301253166078708859906630371280412152890785515342213121547113947843863137802569372757622158576792891521263000669716993847263443082846306827831953212479757976403014368143734615264691989502103421817625936597845326676025066744884671246096686617300970662524501769227885205690673590084316041245928474805668946978182767794755884701037881345716318817494428998929871672786857254665536773728311244461767304087523506505439172831961983050563809001407118907712213292090837662204930496794578667884181003586373834270913535280939425518198079349785464480249642736866843355216708089658368204954333674108689934436229704144434396109886127019621236168294238935804471970209738919920823023231464235056710649911360357731956388471918197698807100580670387057250153019061535855590146412669669192362905950385486873376121913721744271446155552674522825740005803470748350308148551071539938916838373110927502058170195123131177677851844877768726804213939286034213238995818513277666936559818064557155854038012159297126776864384285371888091790995730806801022541165164298547985978012005303253225752499741035431088380198432200235756740827330608396642555936595175830516153497134438263679902877179428908266042597494911477071422970252511258606039005296024025458262483257557575612161312795812812156853840855916278057092937246612436720588868157679076930350517895756393400311125929797253577754420056996640220213834735660376916954413189061916061446825181316017660986167723206634974560465097288265951275397273336869417550848721788938864061839846003716868968509185229834465775516415629814905434676268421144524839941312303852580518486801957088922618832522355364368736458347914690356787225982557597559602168145222994919737926897880657277499602061831236191259842299974459179319190700446995540584360693267316708926126170133984267188893421249875569902430595059536766540275330755030949068933593376555732175383356648904107287803731742673096181407451562072125983147245748301211066094797879629490438133242706116552697331798122204673427121226641381929147327894366091827878882764146146976422205029114448418441381849237635277149146906974336080814504292765761587542170524939409283863732947357784234240779548820953126235340275503505710289039431336814819951535661092447742704699911672378989551639046374983966032427419931139442903905760590741555533250655482151792922547642545087189622131135166993304543120000747182980065063873898926256489054397396866794321270549392327444279957173363591063334844185146953429812808968687408323754080262605943298620562918175441222290018402100592584355705001162633413891116472241032935430679924686315539002795139232997222766212995130994097950530207390559581191512433304040788524971092537241747430138830317970184410857045135768151291536244294925037526161101183732100465189614678269724442617804346498440708181946488570155664729124940018323157474892122721505485676173310551732867555555137275257228070158444430690911684207944852719275167523884694520140584365412441900688299574590054357430805615594652422881931272032923409249033976547146518111314592519057258049351511243668916540226006275545801761174352814314894999161467189352381443368464042767295387167526081339509875962077857277892498559828348232891772081177773383466334241884922791980529683092637567318470970487223370762475836981471774211480432136309414872547814926308746678478952455561005349890788889845921184102235978273731652128019748541341986977054395388749739014574122119048053900855254751776918270607097967712659724884419682338105825994352982382672363173424267155782964601050683100461379274890656030763632598102793661123570622546093038459223095699447464899594352803595728122073590021484674876096284970187989807161708718601131703969843543710968435176649247955442027422470637716000357522942761374328810277374243763384654818232425458586522993701908884747767400268001009673197266849558645446767079878771751353980883983207327701780462499327861888076713309254338928428954733998046782679145981967469019830683989226343929035718573309596628538845031122658632570149517844368139185358392042964337583894923848122175655021035540671058277268875751378435979790444914526917905927035088146718778168140149009915546216901425697803503595872473914976161903348045649916980438948284871605733097080720504665480348755712333122224862473301639986713795127886798643810255425604253579275162413162454955297310236459199301134961429522185316982957104068514803822139888376963907581425519571199359171118755087759625477377513592338703229940139176365803706784400859562468763995140147145722468543401280785856430439394706997121975940645921442901071293191405742653347134164128664510758564588123951140117795508073216367810160373433760157315563492556593937367165619355004588107322335593024482569699655583883053413186676168998085666828277132356870681226254846298210313176077180123905872553472420474152001617666021805882461949664874606456387899631507124429153884042324507560321404776242580365260920519148291010271577459241426287104455972926999565011286066885462748757187665066969779602823041381108469308787168483579092546278034944264254586120459971996080031663034795899289456325531254253443173998536945980583602867451850810533130476475285376287457097777675413077142430023253474040930306942182911681643903916557470032165881100062420718524757974698052765170972745153025094618659937285040116814957781425963612401478096837868885112514712762231791533148704487120579377655030401664297015076738855047738328881787312124600745276123541766657688170101149428992573491012356466763962580651127133964984228245027305669370892373581646095356116434375056502996315167974534093823532899970256271802165624362551179869721624983230956587196829602546680650000467162224023966538241855057306581446063590559554964198201139696528443930157393105206283089149218063428715535370059003504708646096354109788410609656603436535444906170070789958318056145339065047705274315664176097215179194892833648128660460835307188194805344217730423604084119157616446130913675931528639923396387054072054798847957988616996218064420153535317900447652558227276706459363505728780427573485589876829668923357242880868062463248979189584169445790029592863228882938280091603246063532023822312473773678740617940901041381533057610283008848864941592255754380946063025862676989173184615639367995770538251493415304834931224348063333168840269976702447327490618973633454332782808207744026670977817820783120857263445609470855485214265848910184957350318664217482298567340632852564208874664253405339504502310275449342901916000844150398495202153256001639276693664778095841265604290645256806170955852041871281481347434451539374647549634422053892610995494428914636753895787605584248419025831181728850215885837880689893059452153928137465408877753610042351014931084607654329094608679691001884038416225009088883741124483064612377523317654542014868433353152580752667346858217764625547987715800378073715241248408692569070492890066678114027979163653743339514516141110722645617628225991247884909928487298887052980830652459935517374082411336775797272335682680337811635754998347666990823837814554391621551285638557681880448034321321029394216240813548026230882224191231192566120525501613498997753721130333183980963621662471863300454136003383305305793860790211293203288717499514527204506239580054268931734818354080848734709388738861901021362175650259591135144212702101164809309303749416729159362456878600346602240033953522514244915160604299764794242349837796113498665910271782929931246528425630398244060789798697342060395170075318757863061612647145001003208115941696043578824718476564441351338509186208978574621805394727057491475888584634266518241468387985808048248820805502019288776349020535515856240018934643324268636634117403031223423717251943374514014690928714729058901506152389562284615203146170261756675858620951547768283562545064316264374580760714178578002758760804833259675887885318095959658148160080652129817919584398592529518445846927246647707609151685174638564718762214919321562301012713105284450748107002650244641785872435677992213039965218382791418482652816251046147211630479078224202348421762350643914152982300554362570147636995887845014405130574818011867308723759652465204643509343130396665585629392515681038169466662031363943991734489671398298156274119882627235109525122182170475068625339926753779784668099954204214991134354070102205692681999404251665893392849856566734733257949343731185204896148039890749110350313946833407778669368735475491107761126947029878211256476568149156669190955293673205595772792951298209071515773009178847796337430021458036031447789062007715549047648054242705131677668935326694373590972240083159402375838831476354214044086042129957701653672965990204836305777985457706702819058718648306138252752786007587907024358743812118409743929083622398912538931673184265955965954849588145573527311910746917982834574376785884144398093699453232606572599697588242192935879145436934910439042263781767557322498731475695701341604149887297960683857414839097389448234081301095658301659462807191784479826332845553635974512187260332535781792406870010686165062027823681063429287414508137306095489089247445066227733083852681090209081324313151184953359696898903910317086437143284268249064812666240692670421336716047057426553138242434220856097935006501412683886793330241865462230747202532071789380503171991787349112267762189970847823608111600798019560682135626640924595140594191988865960527804596189879889781246044507520439119510874257625350337428534435996680254877211293856191012207429651120888429546855443925190904093459699762322513668449395939143105822005497761651193236335578447738700727516708877018336089731053330616740094074876084857287050254039652206249843878079142123292038061883104817232109300172019148512553721123091515719016127137406536835464034590901751691907737631221262572265866454964495912374961837193955151966504573149034869814045381745736975898227511377456307867235621697668252392452981590467562185285845589145301482226584053595263909853937176619710158783873278238375584724428825363726210818665740744020130772139829403432459845503488984691608935046060460297207524305222505088484098134455999907586813154752220465614576623314045263269653527929237979293739291903748696719646307180607247847473965505170974750966062602342903764684445058224722202132386388557145132347498203499660406621177777297860644341467366211106480533161430705465164829466033764356209291270324090210435102759540397065472997927210896183967315084703036220498402080566869922524659535837374960133141790035370052464560586947767468897309441369101074420202722385751420522547081908963499142194431740411237485172889543080184574091031999461128055643344226228957934051736502953133602831432970249365622011880738379659686693856304036554244937571974210249374057019369451384825698600195321516256897140183511652549600636011031202819953496704616097462082917736572997856457130696516500162277788527383407259835596739708240463152591767380422974317852831564944495450369564011093698558179851150272119159176380048296581307898594703973120653780203227603441629732969801205906682469014302949399525015898904771050802538351571584280517815264264006574584027917036556283411551999177884995168857898088140509686764825608157587168921378526143482401986700859594918343799687274938039243990012408929267645452342219220757841378533424878833535474932468597801974307389167814296105044449662857971986849317044974915506755212791116158380570696819657259481529866721333525808676789995964951596061098889306228869661326312175575758648326279685711415335026472140795023598595852764820313639865562813744761293814847740202250445085912182509562477907388965494526502037078510053115696562202984993747508613619043976299599031311900804319752458094000091455821745452662580527403998131693257001827684217223180514068200502309296617727018544600370433014323452516468664561052172069290603672027333539615770828488823728813588940453449022699453876878465724857819287558201702633487954178253554555754906825006997973950595046134205343092698190572553123033871330291285031922813569639601283853455211594356914097746015819877741238198895866727111427295831082708986392046218034537945562433971856249712714095792596192307818840453555297977742210688936733885548588107223676878485938225154035440994822529059283484780136013500915158114532921442353962987554830680155885316596656339447818622239365806973126128512002422047411433759617769910633391463758052035815470306229527721703514821238530493265705844611319656225452385286064449330918167471272369727202950026266949386760673907235744132686071478130632796252252135834514617531970735280901135431467773945347102400608951781555830757211821507995005588377445473192612925383049981743040230702238909816076153110992888652872560217949886633964206182092131604317680117781542966367350787241918340580597801941364138016285792981832086842444697476095946754659351392719202708606667009644691264257896976005037528190966153756618554580626435229492165790834984379257431971587706468682001818232048689982564563340501384966557640297083448061878669689312163513396687831362351177497941993054822898661904006471543595957922754427777943966726337297466277977535731960843472491811902101192943925903802602648417484447820051685684303466144125006122544118553603669682994806572139535133407886924532705912914982801741121071884134268787888298002107119318415476906323213303566470428019983416257261051670413116849386770027750949884410851369316956444860759317083546767369017773894297315455114592277011103608430557718241212234032928229874439864464019195609230001439499345306044257996938491772397816149451131204204868637916752530634900665239580440289843539255578484580722003320292503465974481326140173373348415220872649858367236488056433128304693053048735390596848977694106624899681646551018255627690892330654374747732515748234642076182693720200111288490837408415666378790491771579162617447253356921102796313636396193338303169096058563478651583641040952185421892539384536519000945682188235121967853491290747273345761908795277007145342964288577789197970051773733189425647467787059514167095015125436325458585059092777722357441369061070592541796579407364489401336846212597403776943629267107864806916569414494764962755479752699750611239290659055560299806182775792321198690451590594249076760144944330214475381107886168394173626824737953620485786673661943401837539950788735707695697363348906096623415203303273664416840915597267506068186919542897295549678007420888087319998422933180164226391830114079597049126719567266193876235342306778374503739921556049731619654537918413623760136660987343740561564616345985238478285233197307913701982509058532692942864012889661556236653366808679676269021933858700947062040850270178945051681786827703193427843070164519313139114857909616968441606620928373208333878676414883913529892584818453086699758841288965867024287556877312359003496164995760829237752268936555707635413408265577248890243575485397525790911342017983026115347451748939422823882771044974234435922820366214729739913674036710121597094308248753447698010669769903141940785020801000638451622035427489532856955258016698714012790945546584468531729766388592232722802392295725516217043953779868091887085119555014834500653542058958817281907159463277706136347609047316518417732001776274966861929830048478422225166252681241060317143651945672834889281095890446951076541036189885348326694340218479313476380613355515202360217636561827113154532531524831850160025503530023509981187456840139784132450412924899510635618839886059399851860662669837430682156089353640803722105692217062106540290334689571523900667996984398197199449488473637992656271379144085545126277376803369248790964745110630943048104744082597529027649301909961828672066800838124770828042534854515494482673351770991586513972074445355962906202978965148227996438228462410049492538096631715849474649687732429417148601177579254648092229392563484734484973447687678972551867684457804193010435883847874498471915754661252774210651983403688768217709856479897496641796375853276088948339937898038693590500388591500418224769262139163222115117073297407572999505921614195341795453956482580695755819141010547408583669763889748544356703808877762253423725236685862528686070111207376644417703475923902205402921183363592076828746819163573443621225846855184911737828149893317329432868786673412770941950614067843095596346611830093772355931550084081882042990111253625495158658798777933201606023025399639582088857852464068389306031488155118818510633928013806882947755338685768700628738187175509620230167890829577299370394812355322511773065141377479705343893796451947762336804445661037728242377464065317471912285508752570124855530349584254775511192310417412608960417645304738448618495987688244554949742237079627425226137859561508152707173552251406092471466287707657592328000063623661781851820146612996897320450670193879122339028019679284857642151753605032428049537412601702757403030534227164186394957860000645995239276691728895103478325073178136744237372764385742521775361860499615778451640562125120075711268692543912705480417413062908526548019648798111143734157554754999170822366196507152797220508969852051364905355472784482972071078145745145684608611157295659631757938864748424633163765649448116161921604628737029040409753672886130662513809093509849143091520136859403499036297931364403312590118696488012087866614120892897810507017559263159328947593335355585396153573748647327788469290051483756269645692713830108719298422825611441326287969308554351482195929480670805922268245906695987049805652022632188600045813384821338380107140119370503199986558912494606613140897994650450291669772328830601951849785565324355223479476176792576544582052660516799447607227055026040253806930549886106509217465565888873017888384128959995965915932279304573808414378982357797812216639154001074121336095716896366700574845895205479261619617366617966892473003181633077684291239817740029380690464820050593056721097047072358576276559715286685740580991153560586905724472242083498594270765145780433987934167957681379636208339039508329344955805953637604854622311362516792364381354247748419480435893321459881942136057929416741226159998361085501672440264935290269294762413425825638723031974350786160646176951012185410632203081716611241488676440338872975765844395220221961007374345414850891687133744267835952705613152125262073869332183059356589306210304929209535538145495116012146419843979390371896439869348784158909220909390704275782190593570943076723702438900534531209670035089619222429881608768643298293971488249604124465132808211248922418833144474926880363423918296667166282241567818396752437966596745811699149281369014502279780135976931386539455472068457777174591385361784792669537103695089637722790612812365479157088869076676890819374934061036841067386005411002627870087470594710658645143919698055970695055650501512339366658905717331336447642130706567573199190393881189382530752108828595161475068094688392457400111354702747869821686212743214976651883003196033345622355344214173681170059576634936762232906918488032373451924349124656653297182384173969198658713331341207105170736834172412344723718672494151084270496155495037955015287382248605384606767203928758686262616984382280560158757866830925122304015998975384892283600959807521594902580747171577353748066900500153498535903697672297104371592109846939120490542624633960855082491823286584393402629382685637152596238947447178336999661802011547882499133236522159566534048570112325827708188621501307157793460027439516892752435518239624083915012347392466865100222767351541533981744380629368188431870219539467457880683873304502669934820474093085095294008870695181863254835482496626070665024995646819410647040712273110042154418554912316340734019618090749872367033899749934392439916588065128366790564169573652160502822448852175736113317429473563577483084783309849295743057306045041284029711489736552333702529333285934154488313740058107262424647751553561189773427429425968401940681333381416107490916404430780527772977009382768736682692808362834677259100328412812893578761188653303799439157109917313087684148298147316743892415070812333046638666526885171522877349580865070902110271308011488070525108616418161525567481710478621940010561280013464710004896008161813633986131437595378357344634700973802239706673331788471217421662379783395050849458405648043005911201841730050224196298113764325550862599366729792121239683362625433079201974575553798577860333993611397314797358588046748266319055503171475107408265754553845260052439117163947985454385464047744527444232082011580589401104109453833092047559831301278034058767338113451784704239620884935829339947629489274926307615195947580863523050039063526975508973719632143202797580886958529773162198359442566894666349865566418285278405307103946038370553195307057814332061654837208763730542151049819639823162239461555401624481922748898899154818161610141291114223327424807105120278497238490440264296807698034403160101365988085642296075406956955713350800535659518884145626531983654599814935470353339657880494761273209004855311359086974714535368901571896984157754811777941076041901914565272888404051882795084900826453601324291522888893797519995599859682889360891127109103099730675706218659729673463984306192842955042921054669160915418280351783236841552181865567963407111243064385515415624897517639771881262098408736098299238363730302750594187706262635737848136886836829333969889277444686969662949968966027691600369860596890471841716000197184123626519979301278741913927227986980227245952294015243220840481753981240082576371360670303344776541140427436996205412514504827002105151741189088254926097747214620553667790075520087998923234653592526127377276954567121544499950148452685432597408757444502355950317588809467867062427950496812231738195319346995561510042092153608326032153069185727225992986003953925473431806464770644415440963085983320989428117389795068274955248706628273280536479247410723546119459442653797874986979596432214495014352061663273608338778957462690088960941621373442638200267657533910341892476105635988817008353964495585219224076981305252173195013237419645342897616581354073313026303028547802248519255207832323745483267963289071256274752461229292964140942485029059474155759927512425085069966347353764294073839182074190916254160972844591625614472721705908293857676713045438433599082616086284671963287516028608040353472085362193749494136655199150853689237351274850742948144519654169382291793153091803782047287223894558772648584565835836888354176105647212556438640151856876957798827517422243471111552623436972117076334504665327247663342378211958791176157833972287470845127988659924518327916414459828021443727018946266803579233337517480641049931852188455068211836085689756325118138750460942419557443263971984310789277524723566722883955273552360662259878859853963287728445468369492367606484412273536829219132455470407442166682067461265670796430120055351599047417085461637336202703865952273806423126218740626890903998167108615021958265006449778173573185052157715160847631314297100682482491391624928925561263847673862182333452283028570138155437476505784656905883948253134199813962957362501919857105808466792364911059290880550683382177183709440626999382691970682447053200579454083518610036611615609450824239865041998731623838357466645452188735902612193453160485833921266637725062085190546236237337328114258166438424988979859667954175920036913004537037196275360687183013764812127410561482448795986351085005487349029844775297575349396655307150551544103909386537416665215918335499738256689326452686208235962140239634097122426826870025339558269322438059983242690845304781419914989311071015716947495557635219458745768629630183899058242012787867557969347231850307446106034839145987949779487113913546290254862822249743894474386826616436068318124885987232687910766162305380086029215833814432845322407462355418799888174723812853596838289500620225246463573161082663603643148563553160504991541441308872154144331745253732106513961197330694878139130968733186136669619394025720049930809999534821942765587811323521877812457183423976468069730697934060813830189077853792276215484664088231264298164212394174569713566615398255554352949817223901452223591925741943146421826647768886677250217123294152289784461629105662854200714538834167814891345667445069291290631913561846915331585581350764875413218594557457701564866526167466208580107002355681687581059596769989019854727064175312884874941390708664208080627694450131967019703355181004171924251364427448521978153703577709617978036554715010064181805027540735836312100758486904203604530637430343887615238289835573728526027901096581135839900820251064150068488603778514517039936269383226188823018995912710008790754166287483223944522850239184867913815692056863543217041633586370353243530386031382451788944252008048530148042326400652099629600966417769376130820806870201308834720999916645580574702972650642485903100718469895310690174322837847571536750984970434834820599312232247519854853545545198084228145074641693251741711660329326677622781908348972275100308089752520503024664935126461278489087411830385877998569663906345052002212393452668657992044238614847572428901051143288838145837001486782283330164072761140369413621157371699856058417354456080336888906925243533810539715931504525920940128868267619578511313238397636156621285764826409723566892206504594883179858641010564381869889428992763148161311411978394851438964020161614470282221756482734200646153016170156730451861843770521270625734225871506289598548861762052296168865652158377842471494798664877070673248179908424974414130307727812217275703938985310766265694827619763328744659604559350180212323136168294691051653679961314965618814230797900281970207530720413774496674530625110784565792463800382738568602245895406143936149940484842869698064832621084643807433365583986880899884715142957010145120549668428966748661018668765129731396283214410268341658603599114389318076256443446092747502825373247224396358231441866189835337323691680869502922048143623720481234723921748226842910666117849435316725923850410537793110490815729580082189041099653740522940462019848205947195654684300768220373283990614679207880313062108074288782674565222795103975301854924501080667143565220340985209717127515883904861311294666733964099243492647162312234605681600440545721462865662561689286997468382163390433176286370809582850819096974176212074055085110018153302081718136717685434872720891726067431810386875499096428742804106528574447831399487497892443435373201883750977953460440052811978526927544248963257416298794288255060763951651083871176646737663875269750883793989032883574021122956354320874374141624949105157682271174177119322329453919740921365908600004762024328188811611636449287155599082998145435840371709565305275679006103858220050257742242925697737322966093854673369294496815432605685823408507390915045923150813226767810636325059586274551489228285654069452221056355802862241676405576952603221833562396373988080142461187550546095550941227200200166732907897800070963848283124462955965450221207433264365718697134514468968889229510802001625680799512184131609833097021782768602448714433613144592320601473497481486913207742459736433949200730885748206722411847926824053304598692754589707213154584154047723222208392080363241272176311628918816433940368693171355826800063517320974505243783052633429820515857292937290651440822520931400383344286009437177696508292941118971208737078409355275475946676077007395829963258388610673745079261804330672514053521161337678960365385798503221845083723457258939744824492032873386027992042012799506284586176929349347486450464919686353383914495693293534991399224536641881006310307109505687734454230964589543614186308762414944474198666983477134053009577978720792914623896263908846392996906393101638336383213195393793042804984875962794959779336483584800378416101863317414981336434273879803025779702183088650364181062215710292820215871814456266435519128923907464494910427359692766523114695665844581811447637737523501285931265925760750556501984335677543209175069011358786716195493655202913909437717332015580807227333191001779316519681542280883705765075988375970217541177380871379853389628968302629816280553011075577589785348238548129828105014962885887182322180488826018274616448790291728418400029367469706652600862828438830881335633580243510577635285933515444380101024499421747818965531884708737815522364407145428295483213118953754081821607486597977762279102308233648436172336602917193399261678828689800578911911569612861137304042229962444456452288117974715366357914615049438121796999117195533929154679858885690828191103147183811299678656514530596798131908004221827090056930448074830083456425150236093637525563831935174270343629268402347764138990390433623518513502639300959664448987760417437860381723420607907143711944475395228435516778885709093405909842628007555002487258306505575112593538963151718260658460012893268297421617913081168782127210392175796983370070556004792659974323649525447559862348447404096171475662882753250917375915460325080960114432704119873159696800796893604075977501803740941714699818850466289826305034062817302823197991255309183628077992511330655577725895805497219375476854503466072184115570530967474247232869920729495417686489051896687507736218429791511575851590669815433469973569518765532300615728199574087984332687865483877037048388679696344710448810366625529586283434384804626781221476425166019764227020362945087987909230689977626220233634117711820153990501730714939961155484037152282685779983851093840045282636757612605639843913529408739455742776484992414146858242913857917756232954020168247866760021021513826664110130042178006234432179195236861776961388050065925090702529001557499487526013723194269628376917390123280026029927806831063027349010110031406707790045792769827931368494516308950918290483029650019089283364988372143961807932087423287680686490992044495073598605289572116995190404083389840835633066438541288900714754386656707085018469537900325716436271571357347225105929586511098406845689715658254557256333555945765777476180201568378523640314978538098315662531858094257851058139046154652480727198329095772958055300883576439354657145791359276746643254483845455827309139861671777995943499455031747714365979668345645423457823495302203379392308962273442866717466798655682537325145377430092237212027531693856659776107823598018863075075604083677127418714589669834570275384870360304258428021277883107135113277277749920464830373404864279022583676007739008365615912219662842690363666029854323536317994514703396394961386871671776305654609188565518443445168903346245846829124143175358657498912475955608960402921553939774464288772795162230612464779308826542357480107178091527740165487104682655357030989813108310430948667539415116316766582814037008668655476438339770427571250447492214229690806227876085444048588139957127475613019026375150738783118851441005371031418316347433675117492320531768258391503423545058602263058687027792432296916175459534404574473997117121192077899158121806247094415506947273514012345502046290677833781762141918901469088070798181006734859396797266934876965238322019108208731369657998137760621433456083913079919949161884261517662011516330133652402686506039217254034345528675180825801046290582083646811073518337297519614561225253713567711887842519940235439622424775173733453533891507262882321321961008440631515479985995215888847115997837510010625972439544429056478372428271127688613087297176674503877844706050498179263263011217932857796302134172905845069384231278574470982819903689333323225245658784864990971750320221672852149988277546583065590159584351618555205489782673613579627957493305220111916108420802369961389004399328350663451816407683899879224132306415886725004798621914872760913836555345671757845474556760412913322446095514831253536112871452107430436355478982136977200927930137261704890828039390999835574082898005613032632804878407025880190853877303188187127307461366420509108749612419017691344997077457528363397832315611035648212470903595368161039384137568833771578279382941354623916270576056022717798353211081825134419902677286104968703506073372089355308640081426599165087223597269462486048366658911303958507510474494726993926452646055226651892497645308072131093520962315760848831138260364791668246800841422358877741046115569322707887932687436128379575768538184074677820984677627367244691118916546554304847971042152397792892067638966358963835664180589442147453962262317532655797252681466311769780129937110982453405229270933003996295137144383195135057317880566639610421225778725280132528384833082997288182507498851831471768420564258524847512955453433867631293546440777340500072199683801405226959470919911895518840537007723165819521053047311491449137585879146562388719464798452652848026896471317271515010401260230712122287922468881136328743346672378205581117942027216479225653704224487763296970129276913150042520225981080099979885590235689043290231478538738724020947448385394177836794323325613093817720501734309796245324951033905554193731155678109600573604690408793506212987488240528497439396469465846777436237028014143003044016617901165797602697905113693090919413004043992505664956242468380203405089480290002637622005786405521562274015538802800346895591754312762186131476052556899895094989323834728790825399842346397579120047011707656479780085662647461192149320181526856763348584378214733117677538206424894580965820041347269571623703837207793565976200522780225182252963200325369276531984459658381037550792834252785825917456435006260843441631129701955375474851856666610908213017688979176081186745294529881571076612860214031901965386239562915131391540587849663072019421858020705480546447754769556787208960159717907361724140611419772765025290138599281353137970925603612068498388821519225181321799809333597821317510704838060219422357710899459174705182470860381957578800281615561611665853316284726372858902442337220872462933270283531749284100443472630417990086941692873722278380802882663780139205329286772928042365659125645148945492893200840060968418317839059349023762050002243391242619182832918010847706957415586736411928012834964582068331157546262339166418139061988522457343683067739836101046423164641331355323522737526644533820300409551032192889761040287882571654340181783887410155412948949210975077746095597715247869128811244829284257197468820488565490956157685128610593526780265614393833585921788673566005965300985365462064254346379106298885738983183543696792192647757803797609915199776315697301911388169677703831361743164453785457007319360521970015173541007668696013054372758816070499877893650174222466174381932691928624293010619842541634604853306131224444100538119042170529502102039492849932802291875208800031824083379536386422378318266935454676378570360640399221330699778381591952595555888781915527331155001317087949016677272842630344949747135658767281439426549205263006190800059109449562185452175790848418298466938419495588120747001060376835634410332054500161516572407201252986049588947079721834259701643847598486582809808690549036772614620215398636294163771793047627218313659680968500291803114107970431138118641849141586975849866022454649276513102872758629386704002130005951781635864407787481178065225685065307135073424589446026834620834580313392145354223387544486303860708727850277777750867762992022240271074324591340040289287209026586544735621084252719222866313141801122028687658119592727128351324215088164501912089966902197373677201815546709893992735421991162731652624506949920028485236634716192101353179446018193273960721248873981575039346181702082230279563933543167655527885029351632734594726579510401149973448237742065875730346360250516156139272689820660483210855423220840720240030913751582541746042105745596153391984589002739715743753802242641556777875930793480424536014455008046344124054408972659399663300799797259212922310941947078384204183075966255394324456096358954142256613673796928542371376474952633755697716260219922673491394272360917846761965872057597033676399659157563639934250587889437668301428916417573850338881007860021862503880088175428204767842725956719604840605712100796561649269169969392085577449942497756211414133332432379515093640966413408084475286141579712425085059258050810646205124572216884820197934411532299155248204859897513010075598847969586764952488027942323124198073887359066664964915113962924488710570456434199781743710931692166476206909405665634791222087667353162014395794445762166386846601655005339479315808774710764764454783961099927234890028514579797443446604405111760455861770084338760531480088536735702115650361045487992840375321759148201882993997086526906455381591739541840830826296942142296036192656880385459991453155319530519391834550185884549349557882374650985608212984240079518041763726731295371159953298713794809681866455468851443625835036662440852558593062441470020188212204642192591723459339896192579016317752923865551976562492371628465685389344727069088244110281325841910775755054815966754311956994397841516332406889407043926608112156186190253032207139064676977326836815066112376928002489683557571372311288425827689287823109567811899669697740948934872414661497397279494126610763694029582362830348242237176331997184323999039812849393985868272446460540716992594084518183571889109435126417684691477909225283783753239560194745349090551016423380781159966344826207141587238135420324049317575753370793509694613482852746513771468342056262363219717296199917086663830438150499887260671726765724838996673949347818640599731199005296600353299413932648526328093008221083677050197128707669900247813008513052729668440606101643782307191363070494220493834196009535099939871351587925219739428061513565643134081615688849017478248578366068004039267599629086309379031115067276719418768824628307518879506897390548979889399988362663176223805421655009734384360758921424204680681022487307387780947877235273901645574306789841755860978059801159655866608180878353193002712597379133589578973340087634431188614869768378811215108771266775723101833251113919851666507968096448532556638417583116694938859216141667456755553823786044244557126333966772146224467415869012956205456527681047363682609789864963005682790737691986315601291614256930647810069891970202265386741626030496339971273667679574289555663140148811846154458200759316788356682670899194556985802409067765427444507985684535490547587810827427720219796600382020997865951969944929335431694916491705544129448209296760925147990322588900495395499572299301806217926211240711016220957855270488860538192842360852957014065767422134831332602634217705437309535701089078073022135498263628528878265586915685634662594731325851956591384689244624458344022770496706653499387235475209097706488170900011063912557187406824704713672257092171222867211191725322046914596922156122975243745550688205617369549406662733252604137044629086544615104425600763291794861451069225887944374815778912508859111341722330315674973819208639722065135201582800869824687653737532334466697837732810111452619599588666501082168815975949566602903527583321493728643587459967647652582086055524473391211712979767298140379890972865069764920322099279240402066292979560833334837097343711038313640741164847600506985201567447227783589996084255788427247353061170516020218645681801484237712858766165911990118688140951609402458068261990511296112127545741192753463822939947534991074859561410795940104716129658891591656799255444422507796929870576970584791430401182545453561117242733713999994326721277193231933913000689026267852300420447759813672847437901286717096517647825594600907601267703866659554509740468485891271332399097293379835865350809726709485316164545307908715735299550751692425027520125482063398833903447828489486253263843703940445054343631202404956819485038629028569337191554779296289884532505765976820764344629468981452443342055804499465858237505365957053622440381842993593544150681350709205774449799905166769053802096217663656068357815873203792310267605286259507765452905795272104204138524615686057656282187475538902520578508007406933729429877374630579256993775040268566158661680407615422161938897946385363383112595824418797097195495224074795953951942297685825139007695483654789933863568806182905679340765197580246742179102503322169643776004412820779904903233081231761123799725721469283312184717521295801191664227393514437669837519984530645787366407773806996529187031231945950041645141202258269724698146148818462890498727283619238127204197791615571313447996875757033935401932546128936025654403122892178220340954344388369354604089544580247901808476297034197962302160294516112476916501860059811641727438266730728952978409244016569577657255557295761302425335479095067619819197014241516659357446039596736185325510610079244346653294418180701214764603012486296399753334724745983433900868516046724022521613626334375200406632342549930842141858826098209436157432408456471082544310188309077262585702511210465516446200720391537464739321529206337979709851707477303806053628389815119695460644201711392956688531188328062643343170171702051702648528131841251634392473071713355495060515867136110105805046978358806115072292612757693952140803029828397043141726570913295082911253431769430807546865513292224276499041740474813410763681949573977464379686518304446566839831848419482441760598638213837823531373045228594983101017622494394053901864942713232427248943202272085052667040161106549298027268862995032014078355006817832661244294733793470870403693394744488364014630143076654888691999519065406311664767819404973010037519857054167252764702308591992273998423414933499839097864034390769224272933766892660493494416947156971554705990421742192588257534259299956598642676845141061238468788065445791771750402776282360633007943758407436694813190183015709126766620798933170017202053954906864094514977409774109437345210942859684717270234064506710071428745863558686782369963390799448807437608835336820312113732445157104041864292587944963777514577235117586608817493878267538776413037795190605040647630268064742690687941447448269351953938097017849673194645289143892223863280101218343141180980750479702438991935727257052706054704728147464744620822245407471416940652069695167600105591770136489713227842017003356643205551146221793313232221711932737347771577886583769699079117113172835374019357198631824447047615448184577025234412484550968128116664970906043227471833668098116783651570046801876817095688932418440736231060256627475747969763747209063548402949173472748730812019505270963758360746254547935295423417127268198133990264190257633736116569738550874413024110469983643222100126772868218094989076236868926338441751885626283212965994121375179698905209247519987894668451205783735845043148908445688161384015880396987292009854086296947132259863231317127321942891413549432335912293724230966015461649969855796276327555457798445440322304090493465934666330885736959602328575018026850212000712714207655565772640798302072919480651293602177611360939113593935308121773628431894417396213554536050024613878796067604080531693002509344182571342161361444011915228953065300777905397200339662894179465964177798355925342228777465640003439352647735178351593305571994715981212503801755954757774595152071390843361001153790490150789070567088184457411450883051229970020996961130971218937285330835942880990492700746796012809697182928394128198960521323361070521443176014995019958953589718336907828313863423685795679656341929304976981520997452887831214597368460756747663606003968791743542138503489532629582054474876924133036611832868911277831754602912791295567600741873322554290824475967304300804589663453378198753699486335053772244515901054165665887069898901375388802432758515141185845435365298749157271886535640826832722511014700909898627167722415287768986226770369839699597828165579408882537183764537402218188411874481338287947196445493757002072346962533601592218202808179726049128292420726712980024237600224648500879889885723158842214694614749102789155465212305942486102726047126981324149381499017673574896094118268050477173013164589468234540907505186166101541070179554175975982804229386271555107777996745912246616384747714601117896485867721918610441753073190603997309812718219106724424419481471152783430392065368122142465502269302065675881276475434385573474263281549277056266006654671184876520726733565473166966217706983364583582683020776633777864748958731255219478599052629324698436382468573872328427778983992573759790403828529778739768466380962417547759148309642991552814516580372824423195752092772658269323059752461245056435575591405340142976750824433474662439858343761487938996414440251411300246886937195215783044869344384073455908669094644813823535320421925347916889980143917862323760175521459465427445917974760636166524018620618884755864873805830893796002947147554901679495904281561842872515852939829836320669197995673894788001995879803482831259925329759910502073507362660254243105132862940349554176399109476329448542904448102689152595895214573201226639910332168000686350486200735703485896106179027766071816770681793663180453823791912595619843885760951802894321579652120565761109398991549688403137754939354085695344990800901270384017262618018204667379599468295436971942325792206474709758952510700203774171942638934649675715427250404693871883572775634448769445950849863887761683550588497002868572692805421291795858131914228380387137282755286830645433314868809215169723787601375527981104596698829177796241097070913703788393045064501245988678589578863709104821652981152058332278081779915608263843346554197603150488841919860848406264900399587816932942706196229745312713653269444151463625697342752416087344026979787900214636269626201203775338836775496915720824154639242413505757494323179537955463238524199308940605113410985187805588409273559116716167018711815535058236609856919392270006468228835899448657522671480046316567521942019661830703452163928231825112778342832895414247217260081014787580302122947515344037127233216708657243418108047795784144265189977886011402027123294823762338268920964111163011032217548508094335350434077628341593003000533913418044642352624003807395109513701115850953473248223743803508935289352165877809760032571212835419531225508204126987603541890077136511086047181941080884311107425363917138988135975319323346515798647750468457586989391963118824114415430357040008264012677795384110666509640790498752217172264156490434959626706563289904578376011368513262468346021348455756462607773521883602166221683273267524660090778680934843387919815646612082484867805064429695846021029304537246334876025996224270099370735871074599684633237610502937874080790673626883143222400263425418349464974943378764251078629404943559708895096801337624024819095581134913297913613799767020614698043501490706733150637876240206623907027183279048028514829560611547406959972561949296683021021193050250622682638808965406298455619793389128419758811358200725743561685767723665936577518536374076870100824867273258270559473587594991527183547659915630391378571672985440402751717388265873849917746309881277693341113336407022766678610507168850450924177681798125076910950909144115833703031224085067230545812454372712593920137937129895049768896410465834850748194540118577023591724690129665114821500743422992828122279978737566992007129628455472834859249657682030788467950647021947309801494977443099497791041466285009066700904219602986633110301100111327823018058898455589663934608753728519074360022842303896215171619564180656270009999560134896928557393262657251636400204079984714123360388867468340872957614697626597150757397051452167403880838542015319849409356208349418084482165184390718645485793541198865262240327191774938527578225038226935970540054945456324866881669370213670549848865275526796375925429531152739433899621680155290688351370329024845825815071276360054835685965429410651704196303896699098713022758534590416511750974861330271136043531703717184168098731418195850315648707721494788546280039262775184566504309126034142218423042101331402856915028903541775090965422814083329824732595632824701886813189069773412240098245720477810212442578679419621797082454947151657388079121305594255798293659101859295214588919897364105748908948877461306386842597756423252686346343967798383912119284815590463257268442980690380184893738786626776014667556930214317529099268057699957897317628916600923519338328859418224344448373374585706226750497682736139292125659038855909391789629362867921956985672207711451676871151703638400990180301892877956685297391770541609614530699375915962278339171127981012984300277489093587489453981173533815768461395084185638045832986728493628692878012754723986638924135282045057803538853648470973275449256800942755965160291034577512451359419321526895090145445952416961136980647081102315333388276662298702841007248866052876037540430218578429642231635313350340680402784441475200826890037863547841565363689567311688395043354563178010166155103643844886149827139560795729139057900864661298244152281347786442264533490158637174488626108777428373375862772081968306963831805881107893895728376778301186999700894336560624571898381501767465512480893494477000837345306194820022438725236049547571173946629136182524460576260094886690256581329311350674437793232025038020543501852994980778105259985304488755072493125506510038857190824854783899326602860337393568736445574675696601191916014388077529876643945135794760714470988893277660530741163115301391104923282193110588097367047432344058908828564002679759435346427421078414906154092962408338791081565789909498815712690236620043280215289589615775222060621457988284049182338365735125431269368037987268684755236920077772138117964924003615902345770034941153406833557382487391313539191475815852762541337589984203618879551380731734622447712358536727905300835514369174708516100914754482240609224557576103986096635678828945500333604333720846556725164894623272786930989509455863098301143787825883212299067132918193976522025724558400814024130932133420950689694190778702026153575802182105123290813528319509157259925550067198796875146302345713152953633128866961298875104615085935633839150702622404505679511688694605110946627672376072375052884555332350474774899801582880457530050460916902159645238303826292106303225851732156752808913584883548548712412653274247165752201579356043381984648837766055270265526784708356010243568608832661178809770313606137790936091130872340772096181023901578532920354712719691056747947044146433121314395609675166261128944405036638819340286420485038072860987919829804873133499004845521940657346541555378014662305783921185114327966512426186044783706656942465109697462111066255726717641719632000060679461544447383009587849363123252352851899857198091600068141919186168389015181248046434719012840007070411738005402484159936710284924075593039634872403013753519911575118044416261522200880897896833332452200044042973126122516176556942460302075359589324020852892492435270739656513885729183164947634488104460321439087648326551672987621999736837094585493934338332588462059401572984464297862778628233290690449232765932924499124046133833969015247585601019682761237203430551089792317528677738782013266845098807180268203922028048492157434242568046730697177121873456085715203567062170083893698275361917197371079407399906036839520612792285497138600225654467398562769675644776992563009495709270131191929824955775763750859423691449068347634546043944371318679563025883826817928975790738675774381973520813126806852841944365315510971335681257482834697901789014318277526180883313639973602829599010000519724377015255864819106123617676411458323693479550647375250340609927897230719508277849700119603131624755510087288521738129185608767747856196063893512409250785806286682155371236246489693259203489219130671347171099770337362895959783509532523598271289649198711044815613010829185812739292211017926948642819683286246929210846438959969288165507695822898733723861578329428488075621932309574063083808914628364138116929229083233675690406787653576163961754266645938024360197471995403483650856887128855292429351867994655684451320866302074899531698788879839089895456546759232060581922617788376612225335473386370967729593023991180556622809264950044987752773346252173326389389494914654038212432180736158453611404602155525975366720223919881050284681073770437723293121597536227505157238764529436348387913528988787905821550111104233584518310227611334335804789714149771525157789848298936164491828979317790326467228749418675453269183640879828266619105953142528663092670701732405950706227386670579287338827184951879760685322806148088186465932879942779746124529540952671249690441046131073909192112396940683518446969930471686617424050519222976752985296684867348368116257663525545752244031843922462332556165225141042359232732018883363608901360504726337496205823706184846895299865267466363021958716136936786724835356109940373813996989004405153889590391032827945728151139758776274744531842930536613637951698172746052088546469232041759114350013503950753484896156924950900207556055754384170290146078181869924923939119438241100257051821388230098035458587811640045530311277179266614743774837366237460202073538403482309687677893623056167893806731785663137163538704715874017289052724912520827168930437398229658837763226587058276813473532994786385827743816547793609856131567793418000201475804245593773783036039563134913576340135030348407399275786595343912755160207530865236538527450378885971248667165003987741926537414501116049507100186493015358275730695530268422875848340321047793053485220954907925735639770275737320455079910158184367980977313035164498978068477009241246589017179499863901523452423144640733146239704547452605043018742129943821257064491507354692970932063802903775911881873901579103827946849262860649355770579275356999844748784544845580050634603101943277182722031250809775029951919768802465896398114153371350684361001131099629825109234007688626817381428582041411060789570114950689430862796526028879535397611684580730435299656271220921968552522884916973449075278234090379343664317568824083192949783543147314493991484494446342896571796553328504009467593996359499073386426656218748107263247872430406290494679202538485915398026608630282068371068192586367561616748830031493430128105299599888061886299723689641652045680607795101009177465730814546919258132731296730255920587165658804203391315397441591728719487570142622214719278911066027507612894427322429136699466592706572510419363102385981754907986994389243889008939346341213828136219471807981114503000204339015792043931255399519222609088999712563092330271429125014403981870500420259608780870813586866490177244473695219446703490650223840969305182593996803942103858321601640076947789192421214895435937440099937964372856130362894311674370894674473797167618208641593168356184240048454270762185606643959788021421643166519009607281746064137684655528891861819603488258520748455566190896931890551159916269087256988217638846374595506473777391415806674076650097783414934842161844038388310937601539388936310631548713459725290483703688341501686075158579902541153195356070770381497122744696096894095305260098081749270092193326742138874489748595826098162781123934793382770561974066637897136621101115062064178327309094386421044341001568487946244696759993524704930849927057311124823975923359898645282770415482776290851650379608150578350982302758742157795977900459206088800435487434735298281470367665784539260478341670459417691748946808253772836216066856869113519452383389089189111091279851458741407650285259067209111152799259142128435543975758998522071759099462414469284632686263402158266024982921158694801076576660549161908778645275866719423683443431434193812335002128977713142500052922497167310777100171685118882299889208472946752106224245534716079912083220472626821596886645081673509616439339924477511462369670308230209426462536749134703407424587665240882619103362519804641137116122739349796447567014545812884270106771962632936917848228627912056184982809090073238861546445788578285840970960477441126591618895177662916625271687217187625165136317089796176464843096986550203832749903690139566167724533477735942841050791076893352387935549818784678123081259581976513263542563940234617028903607081664241775014401517898713394071954068036840143777538230232741686512733144671792770675415259373709342131975970409314814919948898722867822674696519315663052914595713618397495524748019433927949365635114979908435426571310201971443459520117787594580375078746251804995052213989814784595033178625784899977510091836758799219228260550380285078100178544158073124700713812448131990189182879151729748063153541840272497319866760503046989214001220778491865416706288946143739873621697146657403395403546570420713258686633362792832121561488105450732644643989838002417068492199129748009428508166943564929578343441236526169848230319409486334102166069882846231098338701418928078207374832054307495416428963248139509455899337044918261866426541508190058270723588418982809980191510351770638816439664279347043773648026957853681036798665319390376877658266085036871810357283666433650577172278666728793090809972219221888136713093480501052572641573813406411781621048067871430238916681156631072876053694575377847806505850299526911703233303716719601123523444074752681289283558682868402632571605697450019444495170180661810819064410545524662199746055108376658288581298144515267490380226956781150070305237616097616075164743583933410407798055772293477599134331367215978661055073422783711677618319948593027585726139705865847098686679533960946291886780557171136878610078550074388185710641269205096699149289422749742545108502926884893954474822863067499394273403248683744914556473583037878860598475691837004542330128662758579270951067896905333597342936142003288246714880458353144138630797626597404893087110768851232307860793424512201715455801841692164076089577132875645199431380232720750051287556376203397533006053915208115880105429443178555893398246356458310469241582866117884901004634140760949982144654146039283751024735058944073491964954037027224534572201244636870031384833984230918324024901579518659337859928294701598579591968598386859819449054412980974841995536896369963547172061818135855259262329953991693759170924286136642185584676677206230544414885826253705320824543744822903027802706575103800171088178328186514598655832587195546458525341975776978217729236120713336412402816349700143731500885527129175891960828973889802021760821048775450013336131917131976208564149148137964066304065403542908487514460930454287978881572479698005656607995943883648202831603389466790445113655307314233276057871082079267604395353546642253678185026829228847438639303958374009738587014265108634462047051758476054990457272575031508505858568197468429290417067166141331885043846980797356017771048117683664107793967943620268481911773148240899769255512882631452780126438139137569639489110846479984997677906299545449515731787008040712480283337111702642723015442391360206618534063071130828152074975371931468400971062250371959216386582428228940836492726282455960515525235059120784146707605675873673361894111742761679155530171994367568479285326732265780455932978644256669444338925456899171225377298404289632547282555336798903507722310316422225593686622402932897079007749621309571349629289649293878759756447666331001001208538049136577804869477100465384219708755533249565430227984049186231967906253176993147358452802777820588676922324779653239355985991799263382568607931297153065955394878327773888071369814974640506625175143141064669754807888250621080369303014952360247668717017783045944939821354666812018915558951093237791066397432171715286101290073335180113311141356684680079103996224531505962071620704028551570261433581030078027781650237751720096785624016907881512749267410160630231957867333096674195332631791548690087721251730723578980925225302256322654190233991410380309934353845802706803344427165192772582342536905924927564449959931893373020241561339217286882111688625658527099872906016565710880738948758361695217062095632682460903996183788978720182268702378535683441810012149346172306767528635990112808891008964737792459795688250073985023807750959129815553066924895357372764132385668467817781405763877234876040325129467647135943665941345531063140695856263463368973106516380743553431261006909674537650144051981183492353188719407993999095538928957798750477277803270846609361548855965799697025956232802846174744164826320487241282989494781029882283774618561858232334667185868834958184219194388322204129256621821361627794490041022380140242165823660436391323122954434656949827222067908232880702415137352416231227477573032561247042685443385322470127977785997835181995430214875947781607618852708382020848349974712755282025796946996655381939593798289613778443007953018540036966166115762868120795797161535606620273576267247120993482629114587258566100302026165460068481438714608372797925961459932392110170397337698734954390474516654195473774411618809167007285249734723534800924594736914410232283436343841037207710013462057946640670753098240855503576886997007848143675510401545336522149188838320213279173749522508591040941264626158726646161917696317331416633744493848851485951358679018700795817364758504070965634445300631086513401545686454609857793768228464230331017327992712144695553139665054817276401972657906219538813253509632509474459898910878590169692258198604873251616314872253320868115250387783903092109639731408701463262774873619992516036903516401813228638410157789138345482086953949114165419212244103725882353735283296622540405395995512541880469553470169279658180842216911467794957709031814719952242004890588559374644161534909346821095273819069249340125854016212983888236067112990472785382510932212676008635678872991110606474438540631307026915793291147168357489308607341762034842422557974325100100386436881605524668277328014816697873496332099634172377923788303516605487167179287400111914472624567124700249762245822402739770702702350323771241691314913084480272640099449725957209235930230699273000522490736514197778118272030525906050536647931018487082839762435976541024547190212964624407218786854291307199115602213435981092612780992449298835321421151688044305242231335172036687591092061218171572150132304915038524312760160267807102779059878363028490995133233325655424283233126970826048284109116462935530797013471599928564268898897007674423346489650045114824894488438119052031620239561251550801142934559384022589044523549160677057526417751973609044020448336788189156897027789366044998316755033346099743453906679681237983313639844586220491826985980185062808365058175856328286723970216470379261157543687834566404659060788858593615726073376479473628394189492835760504833644940113498654912082100481325506837562819702568696995491876219763972045027900446675639511937613156006454486485525074979942085002895444499533574504683662276687208248316413599480307060161182230915617525952849002899529342873761735102674241881593715994890969792225772144013909127224617888387436080519675153031479114143357320736585904930427733798447129195444645430440095975183097418233761863378115291280151786636009016476974544958957323146795549938933751394956436260145495926467373472160218853132654468600885372077221345275103105952625307111023553788569164995911692208388877078051735438398567867015096378088686475757669825323540442454284008826874777703285382619976254258199293420591217977808277870511858452308972985638768651127507276341003599414660122279489574955920360994603780484838552595991081712362827442040178498021103176278778875030363022636160976667580106039555479978745699815797334233997424447588453139334536645917552581347550463442671610948908179968959226704644021691768051005907184473526312354164424864777438787765173853478975014025204069329911353255614813604353296831292899129535615290402759131767734127770463653085221325754863079335478829963834069993715154224943808824064733263123350461388215947951691759254509848097911089233113778953966407460834573009765117060752414362883466091800384906356926853296400551653599785791306066404745571908486625041462763357204425087660332076412002768371472025839577572548308176352281706577594153270832662553910968973058504562259368984989756227021582652652806200251844164898191969095582120789897267176461338008395664877220193204636718817239547049302092798661041184695704868470049638641259530673766660389421761893875423752240187458159722844252290797737229255101808867399083988549214491386356253886378916159188842405129981936517136925916957791998849494149771151943157558263070599485758635347496397568559703862678054007200897450252705193979698125296883119164590452097563052833730948602383296272132256900737675339111682947198127705742624375221375825032008736375320464500057389179346592355770836220414528501390794640672466736018275379854478140769212560856944810541661956752647507452390254517053109406626366824745757346070406527575357774320102391334113813577503322561143900976099469521398177028414610884136085659183932993931358081952707069270927607721717779098763854634460240516904994977475774828730093397894064147369457198504829905134842867070991509330445796639195355891478010944345098270173677240979049480592883846575269082140684093675224888424661256052695097801012605772822873599379849977045731761175869419846747429048640123199674462226863633260076411070293488972360126214984596841603187424531584352054891859045356941964460633379884931531169547583611157497667740703154480578978170504573192258815494311439025793450499895500372704236182645680415899700136977093646184318296660690731354763645120346808804485446394798810546809849670131795494286681388276584446505851797712368142674585475571382290726634603164381375014654291945359934360820628279072531886575179734245746612250274430190922429627769366531587168094442427862498407494665563526804502768435782113627340694356164251537923224666458237107932145904446111092210703976045651010128697605935565797997230393938683961799189869179915938694708632424160101610309887378543956773148297234896594767142721341284004376210660200550566202333951957558645128302417714282371577693287679784522757104237281724684454616224472703666186405467249250144671204565478357269214470538798054274436506654919003697852300703720061418372571130911168102172286721258959485746004353295033114695796564900624462269539125112528680378263752083462010919392052994067353165017583782632764100489944648907195082147841020836669964415554899731185444595312327881988435193646690756191744363874898626362765030272068609251880972360884793801625295039225521028318591195209521603087970922306318243049051361251785266783098964840762618711211938564523325880156358456632568153659741400635166538527833027993327618187316429284343663516156632552808774054766967000188148312992649497560617449945560484056516920660629441907471164740575561955183453874064046466344652333203510377844767588566666090172875209822447115645045567243110919573466626779195035111191248491406455543525772549656639267852219176238547538197108319832284839469222949537374931725775542580964794985891026863594535761355146603751391496845122967455478424717793060749999248715039173711331059841824004577425759178667121950517428961196738988890457931260778363161297825694113684507888434449786640449589578177977537633175038686569214328456590763877035085454922881774592134644790364096719378848001565990852627617509773940164374064232153788341300502620171319759124864587923006850025338135489151319984710933979884365446048272891549710760373174451260971717062154915230935580784562839217995093664990440960915699421493871124291466312054691322386063352687404641869764975134600318428982574751202584459831039820140609484687076916183830862387891061468241972832005261503851106819905835176956323656969414236261015215538172503693919882029271368544401062943672645120333442448082952850778650223588668479872923363345267582654613647644880992776331655021300744945298954339617526611749016912130058109554244912267385285122343836959839780483975246451012058826742830639996089076557344363448014904882983571898164096451011928985398760882296922643542082445684123687523325897783852438454227592056760926079584672793866397640133375298174103800839713669875017925188890050961627253029063851224481562947348667180792167574395023354187971463703413595070688796031015016464474223923286729237172565384290147065906886729406948425427159052053409339014321081313854582597043485809314855063394187054375482019170226882317510901329413617187700580911334579616422030125980220431073829668649070375044538684428440879094580713838962095449207599615536655713068440469527129948783097134507882757248448998973497039622465110498777004179371263198665504248264504271322916123093246164135330391676894514835856927021660319065689993035272966942540932985850471428540838671088927344310873634570026911192432496377298229400944020752024662066447383917204425754834014539408035462734099909640690720756229073746841311985865787988559142521470803517849673589369335350075446723246131252582687046375634396463905947907039289612597648667056907181584602993604285664165237827113760774562109031798086571731999343128179691294296204556952012433154460835957656507832446721125850077609968907142990621463722501837031998516922005081391020537898391562299250064687356797954066278295022474592665617686886293211625656050084542945590329173720098208588173537468783182064470226861276497609063433941566490264262194495999726278798874206865377484001240271202527473344361668130227204754587027046409864346757364149445560401804690256490853251672716709512790052393421702743032886141323309616964755602018386215997872360962122757042109968737000712257994295186963004129541887796287240932784617980486479076998905777338860558382491142283163748692878538148143146224283984962337855773508605110105092612932309949247418926751316188186207532574038684806964904698279991221611386656638203260191359684025156492479064439833300318078952369616518405614103384347993761781821004743519090706548064032056911716643220992154712404616942471043152222051048853663827047208352220722817923077243786214629860668300394431840318971195938758807198115048397750862492845205376609935703511384695978429595440648575150506208497122812336063954148045231830375903923041931293580470253223963911512793759360151408705351460629899519407457553548868619822693246955382102194720212488490442636553953053943533004050613359968320166698794772079525866914331899092118652260584960881496268365467234984048143810943198574036837746637093658063733929458794664451682611483334598089481323014234497363000817700302901541674017957443616201842207605357765423162845642764409375568971553787286959872245740725586288916275422740013939248909372055545616078424153956188399905582479740297074147881435727079149221043557745460934900573768159682819680197715906457966057549425418144532992479819966571196455188565565681215133490980465803768476182660137371756837274130617046443808292439165371329638261653072310606823338899995102553073274412094269941379201101046632087497154105874458261159959068772409428697875946269429880547786077645800522940757030840638516043605931255565855331231165546386554103007269934477311816907866280119553224809956171278815563935190125607711288469473226363577830259656423269738474469674793817191834984412010284235192195947941188864520779602313430632171743540692488623758813507950130195421256853896066931254279329444504604143997511059306830758986663120897091786738144310626732857291352473357373341399649816225605641974178798441560213301230296004214891147848575264386251814296191368983822274941558639578740823780903834140879297644511888802337200988640122361741764305063703810769278341189017294013294623856393085315322442227688185717288938851686500759048441570973663653939411381414330070841798311723439743212898269308828179084546083522761688392367067018193779063875186889826789859261224877072553707746809091738121955681542467817582498635908457752822108733709471005344704316264532650987541870482604085049432894496711511556404503759922183153150621894176807974004026780591637359492305802189105616245901301913073423092201187748905417634752347872050957508301245800976089449020142283215170817863829715178754102327793778540726836395180372272739907246132811667262023853629580447687448945589355612941667877115144459521507280112452897838988924398057926113395117163372724763220356134137665549360910760775428863941537509112835509538910175699273481058020524474988606569414068805981571455349610211640412992071191573822396496879006157717959575116755908481929690435593444902893696486190086611848364084454709229880820186964350102416589280672893461892128839980588675472338226628746748982760072139691790819941807236451438298943017355303225114789118467993569437692565453511408824626441787817540585204627520911945517150715322322900317837863929972645795041362243073887474295884203865379630088782849749101536714044872706052239832746544345293565280769604772215030240603299608201442874066463090243695582201751481902127695919485480650025159662766721156265827038707214581147446979436985067657688235035063279085526027524578452139311897121959560222778010521705631239634446112700212586723573709009024674069492576669653047973714276265705359574487908761992997975491547095674568662666933178160269499245637861334504012864826825645467814425734313848600668267976727082780868964032762594167884057145941148046291648812852001026105619845278543167673430194180028739280946151948185468663109907951504488133650125461221413542791228391303694726258978002733168003031221980792227233930233396990249323813630178121360113136831038867733900122525241037628839200114687473978301968151623448458441708471154056306712215025240060095668450209965442357785547880065844530633545865197485172711046869237082103742383445162144635916426832646976748511916117839341951421626343457280693936967164403452311179813313674725581030233003356470919313118415493271541872145395500896215199557764809532247281705684628352564627543057620000172149902896451384383311711658584177645106185825082104724546989085526057154334736407766059802184462230230357649286983535477228669116725509292642349535911297780867067640091417604725110184229542894697242719313957825111771373646612886109938596154463668555664063242409655115271244874081386339584032906830166375051593788944700324467944420500623238056780758614051617949156758784854753798036133204588672013137468422277739338301015927873826640352079385737273318787221160069788684910568876737354682071793442051691869120733906023040359531440248482755249884966863905615181291354913330689198050958319547452434768855877383104143445399339782643790560079325779032687723893359704089290637986235913268827691204823532268533111309492766145457891114707181678298795487397796649393340499958044511144263787805500618120194285658011511604965975147093608482447840715101656881915154763085370899177749500315467791994055430238455568432958712280703393036550805203590269022257432694177337833020778508816459977499843551470304189931092788636285559549866645215146083224327029398653547117146112097864464644325618002352000486416928090125195558796777707120141585403242927279651399821426254278523836182489744008376465719918339566033650949707852328897458814933477309948639738318201932446879191922759819287059190059075406735718523481186834643477850541578282244907985840870058612052844716335877723304380827091373968895056845553523261822111023731271368814205839838547470490005360938657617777304878307855972175388186172720052568368730086721769154412628775495032392221164872217861522620911242592377467055016125582354615442087445842149647760255957274029184716453158885258827884286855889496508427039429899354427475578488409253424367596461265438109202556299820515414801937470048035796677458741008841318118725823857854484888166827713303205091480499027063386694690993512487922710050927746141495291462610517648599069299238175990244161879497023565718095144258549957651792962105674460022141336737548079860359695946856983379772672852875925060444184643577824036237766702987283237060452744255506815180955588868358914753304570116921730819041368219619792444604264993438484527323746191137110824464335016948015502532841846287334922661345689441390024706633554707881416054856796686564326698130317836216464658820830050364454812922884964461641012502375768282189455118458059573209093946206486775093802437912896018008279404748174220633279147128420951370105619432717629286857909094932180555689790662862891547375486731986937384664195856188997708279900169246494251903473777039886301492011183528372327919965077715581634061761969840722231867827012354034994384291685565051517438377353920322561159929756879655748563713998498418898187238634477477355150135350791910818082698953601252478254704321409778469323294380147255125843760860998146021996986315484735762920809967022312307799997668926149370948131311761267250290202511250176953858317579332482374758716019598930968995429457152380277892235685048764182413910232691491655744448451246083051457874175073871767441735511013076455378978875222218520586133010759127201284158160990129182911856667157392998092917991491610004660333292257760867565666359653418185422560598843184427218109423181090631060596773327840395059606697721027773614118272064342985384424658772847185178836337528193254258300549961461483735041419186161986291067063879119517620505564105481485307823643720165399965209504238904116749764360290243419567622446851420894565680323277778182804023531717271616138474526434256170300403880716888884214757957281324163069397719048693210177484934395220889779774606413216065912354287306634985649513842991511937541568268804640344074003191648752422812899084960491088752481897662954439463753621983060853026629767762297282370884106403067983957045507986425562413295697069031260693727227049738584906354811946653533660264315355456127620022454365014092870701038450249422996824698948193110638058489638349668423154689585739417810047802743102434361706393732266714140476450553206852545277727133799598971912933510953352183762378144828212389833183922695403629441944477939338629478208565391602768654742216021974541625034794865733087486963621460507966572115585682647125640198323687221801627370274085461233153148746531939362613438727849840982678998619691220266975459012033474871715272034237848532019977394108939918323993534360838319448350407170160500197194079556929169441248268460290554602480556637492567690235856549630563054990947383386820022532727510147653820157189689176438617603846691471270502090101667931435388981799261389495820568431525427173339845849677842195542284969377538214198753983628041513853270951507067783176184926867492451878878256523880787559339874189923941064660842841595176800291899674460456234768417462843614905240996146091329907825077671729948737993004970609521902915918788156550294869249948263886396823849560868500579992081259169809576250063252274297757223532446463129919160295278283878086374379484878160079866918449449520338909118199684001436019370933054722190471786161995211092911279170019766720202163966918422241349535264054150343478493730094810750009923037091538820155082003301200760403674004750282381217235331054698371010096575548811661428174197142241111465396494088106871353167996748974279372263513581038998825451605536725102136416929003210731223430072399556914225246430126273566681782285901690339952558864708517542843979342327492533998925840392320798359932521574358425230374366613899386320008006457475088070937998462747096657080943692993610700273453815684801439818002264979616549839242472149538551664906133886994794487640706256601605517178911310515789812484067441540438634321808049603577636933696507502496754659653517150085997507640004559542637011962683350423969409324732540732174653657712189786335455682417039103781824265672441578184384945382562034978117494710465895082321408204782053999221708309637924719143570526892737882963017204598416396765979399246845120216731557594061085011084015014939584813243143264831706383522933898357328629625006453965323234090166345534976145397775435455101800227298781666105724231243062350399126692725593983870446822440569021752720890597314031719499393757606517044308178435846890232264090670255825631565271039919878744996005669653116942017890333193079128764045002452926077757355448308514991216046260407966357004292941415210785179395124892931131087234036875493332119971694155822422532345269916514842708074964982432091087091302719220736052823988903337764824402482164367448928389327178724630129521377758406567665034225484479527343892962635217069248295722337237260521214867559012437510688636168620684810753252551908087008239375667993000525640041056868732134577420110043021274796404626772079602886807545332844611639636702961676361061209564091590392267597725612770823369101797932402760094779050493905949903550976232855245692014923380389555114536945379896424390775315438661079617254935797164480344612666235380414555736764262514459057192580222293064033049431773991107745994805184843416903012471052840011453011701592641760310046687984340067636613575415938107394902338459599785664900633100192580761796592748902173088186545124915610084564921917339841849364007892425340052885127409782607281844993623344396777834164303286170746555744709588710661228597984383289888277860899498259344457062552084666933620736456132995175346499096607099343125635974902965671846803518878764437192734322849675753487438060586839387320871071234119603308930602352193502379647530151415937286211822952590670185758559048698103361310619537044107720860233000669435598229899720038942050712413096330124739898898650161344604163697641299185513985641334802440109038204209805098188163707656025354228852064250474895868089917946686117193250332482302410598055847663804552137893230572350200971557476025937720767760874681482134522531630208788823985355668408462018877633388938239400596938234755581196604405366017085155431409286335709215944811601753296583413334717730271105970905178115890170866029901605124794507024301232306702621797011415106820022681399975072583213035616679491261005420128645322980067268900094820970758541021988488529545960197473063613284296985538522652381613088966591450912488681312595353629605766031975042950411884393972470536057894798628317140039684807642119094142756812027324542331959311195239505629062261100996439894838164644874586683075485778532874081993757274852197413718094296777741172223936413560332119093344075567878381130451998451486289800060848386942062185271928018778042486680802995128970347329446317094600385951254533868355796890584651723006704488896840610863040612135155203874213928449620222575465858208669864060498655425885908145530994843493842733842178645051398542739742909585700856146256183495270022814173253676539794691275297470131700638354159654463424496835263505948534474472107805610781082964942647881002597931877563923904329178532763420375229756575274340829508454794701524526089931388578312391175126922556675728851334043976962540393117493371399449529356801060379694459568597524987726734807907326761824523355212162149680234492925428865514573375655765945557092395334281424629031727815403998341556419837718018982112476085595551899950620730071403452081550332981497507024426772643603387375397314843137407092665449229520423199007345946393119965350568073329814865841109199443946272328453677112848473622460633136028591059635237193871634598696364439068540532231931524135469324875767304633817030294479835226020518149444585049612032690923375271623551335262343207219430093588150339359897449335269578745727831403967039691001707341493253102206326301692523701801202442268849290981955511719561208381550144858365716651026908664871732381901486099246991315460820019927050473056887614189329810831023526482810810248545022087572212834413437948499972792025835434172044259846932740914178214394928017997456598736982874282682674844212137154682327511285341652370316530704325828337211237137609695939937549536223222219746596193325290740424876025138195242697391017563719753430044796178250431153315067582562735343476252539142515275704787843767885241871966346241992700802576108392749762263654900186532064549951558029083985132726273219672847830253852219047927868938953878036869931884660310436335243732715469989881118644367011402842620261504738823589974728149334325706547463702245188728906125503027379190264039657741760689897698345664647052047163592144830709958430647172750763371802071459744565251418850503716377381890296968528440925819317441005557608985029232710160089825722381739454369852965476949018738404646564373071319590114076131742822038833136029708526145123490730714762453405024542376366668557574012060405988695563011441544314169698607403220788600313279055391786967416355524025076765308563224273784714974603778406460934681299187190289275976307015984088778174519269014769103003023497945851100018088660621628680111091511610409832730880899543375511871831737865587764873588544903668790741691825383133063623382058201548854498278838217424375805492381597296406196310582151670919032631873093381385011309133277093034251122109721550561049138705042621980526024761160750597103794366477152935349171861250661163673833049956487877936569791129319587827777406010753337243279000973240725607038880087113730965963445709604117508944479119162174551697096484476204617412815453612842260155130158952586280695706392444354780239051686133854986192665676227603582349855691922489069011645986609615679554154921575812835409202539317080737814650788320352665134570706553685699281124265670844801778646149740454921184312276218452244108847150757019088349502243756988504945424105726624609458320959625728720309947765401073985580699661980195345005065145010549240188610891341730607592384394612465698616056090945417729073640093913219567683643332996199979654243480265694068369867061758741316765050602713588257443370721645881952261339705452052344128092317306505198995450285853835228737872869829172758078242098261060609015092521109089899643892978629430141114006762877499207817237947462091689983896189486307730602749102670388394335247424342123671217702461011602406111857168705082440491623894343504702508136491551551043272507479410247374781922652059335513625530181219642499248821299260177408010371988421254744721602969500277426850775217586691799380136258422417398560766991654327570612304528672807076318947058954406188421315713800339848740868094144618458542303449514485210539912489324554866593053355845782771442377433853392082412776321659675383266506430638806955691562026222594694142900799876983442091469998979568326670904141398068633325156525696878789922574327961396437026543144639333799000819857530797881761337436094839283022338032797320386536462424980551140224692264789315929449180403829836490348886386975644148556085605371772287371482282368642781136572039474969069372399156100368280751411784737825622127759959167758140385329868885136552323139384317422585356280701915440077630163476477812613243802484218656698552740076410511901095452898382563484070455808090522147697220428738220206445111655802021581372204663476633351756179905008977808856009320814541764439032352419397315472189209202024742704058579135437926009768076362987566147826443389261212134565944568010422276165241837640186734533914880790013636035284321747804016831467261880679364930468658736463114832826980492022787625545401785091774977282946756929354516660986419481458364447890960383045828536989560806656661903603100453047200242263938815720686746900619298730822484900168163489212554337544475803887361586588592485975587427838599929541709917225115340254222296922343661777819296533134967477572209784301938184450598507508056494831896792205834341478905102576174909975820012347244102850794123184376014714213782951102187358993917081686805598813354699137945378313771141354919712434658109311278332662175922275893699347704984352519210735175737020054573451305873132214384620876027751840534893713237662907112055269490530038882280420480821085192876107677281454892794403227236284124794319264419243079681370382948200586974201501323531987205199203538773142158822114859743182387909891993253934150378768995969580432725177768986612588939544201391713064188629510665268960624145208448034034741133148800431386473171584468157548365316705126017466407607280959672132729422453610426679280946977358363834982281147669169596955732770282791209979260863817017654210151115811092683287485950646262362992592496943781822291692343254853616041525142063692521477459809419889268147764439053761119174630260741704144922419498001706238668169466079892475169718500094287444466241005863803558630650636095727097973493070964889076063019079233461701974566562487128849867382678546268945120946229054827542330251732132827853165175869340541118457151048346328320081011525254131193679545612612161031974278321038795482539174314098770652570060376719683830478692910032674834420668406673515088586091662976572277996926003868273349641875833211808091686185171345911568508931494044819961072502337896779899188725826867053775743512465081379862813483506643132466270924523654698351740704265136988241433088355263194547542532484588409399378463186733813366103100581146455151877305014130815666018061132268352963971146240104983148464604395200616373542584698260521254538591505364620141659306152413774330372464410397598500156892102790937867860318517672404695991572340529003816760724247701697815214861519474627054614221125691272253815905020395830514685850036024200549094550268261850958754262109739913220950295489582891742329813431540692575705880157365453517892741527128941314318269476902588854786599196898835999043885422748469473118751974887712150191591908885813263769981215908089691823350590797148746133368039706350036955539422590734536933263896961623842541047946294837937463813246124082530690269146502151719655242567884712722975266792028038412966157502184681108869393992526879439503267287008758188610493008597501969280952048237571389454388442416217566263735180336432774017341259427455820267544027881214092868804120300022706318082593186766481490447257994467045942382811148786117712471299402343531934763897789484462560417454780205295530815025429801570903923821472145748055026968444380960380164437261953004403990818426587487953263601747734396347413330292755818200084648860981832917078621243703459404281501604147705818564413222318877939216398896127369924002251605351282937236557373193193898341753843970830903585333085718369311365037008190565450432984220993814900454454004486182214055060528716831341426278964416953339802968795175366678475509672567390773471816933997590011898911139624652061607188564911926642694016069590616104437801498666998284332465257608825710108991959111180835030365079742812307093951984025480169446262059236363510719901481567744000123130725410256056015931684053281699733907071537208809013265415408408486946485133762274828499161274747053222550579183371978299802173759142434471486634380845991013925549446596674237301191215691048473306980508171297273138066292296784931657070031083055678897912329813037510317467834011208135309146607336751187621872232478968370382795012395444953967588537384466413472024700158852017613121548143721334792656722446917956258633003069945836289103812648952338880763843818809211807397927683141230868809469171765526719713411290271581467529442762521329501543011533690389221384101337883275393592020905194209393897941289380765953087027355077304221911430043256684624072289034021711512731689053394678518738227848515822470484127739268280565172603764458440068284667373544825924969162142390338893181170113891315019222854107381814522925921851485752524761838480775838298666675567628883100860152635893586357127421777289515445831293470980084717828967273412903707607159708978389934279262557381889563194050727520873259994565456085868553582631337084934064139349137491790772182285311600949827036679278923587884316084918389533623615765768334222895927023939153868119581529960664520818861843896972001893567854894942216512361017184737604606038296164427331173040258699852153721647753632066072061232929323962407800474280678081245429927950935051439760211929113037802170395082950990699443939119550034072157414801775922997193282716303971339380034926791334165089113946424796613209472508981957237504911331291669842737114895866286493361339703036247163012832100708415202627689963068189695266669440516751132937869050034120042841739429541445844475412467718508710301949763730646456618634940656615955590222038813571361768234778463109885474803141607518313054403428112703507195990142030588149232148841293569445296431703131903577937739190165691257717806985121801152036378471823289495344465514626784682026303966630199069226106232408625749366744026581397192480133160604128043094030117818395338456973477787554965052267198920398064650880987659599040268354582908404887435901210248570719056955851822996481632457015703748335071625617787840260248079543643142774097520462960077059523215937839265605847631831645394608691291390297075293245752831122063165307794559970935880191017954784682220298137949673390087099348352365925215317478091492963595768036416453157419840829497042403902353402659221352598530803324317858577406056900395174966247831146154707471015241092709901906946055592396830561480772653739984996188802045261369572230890736822583697253467329304349079623158386261263444240863141034997403655086921605004628097939425957370775224212775596279285841773136930903645943638449398233929185489553676473560878989971977807038662092746318519850851926852624538258702495738050109938163238708202285644740218903503702051586824571125520231530878090161943705387176816448293944911865897681228582282863058898610296052832544386045241598879043704773773713685021353938226539490234217108897837100517498175970206868257027259712399904777313320890674211212008218398677787056562942469382004237813491306663028758752092564773273167463696647462570612003467156409034789631481868213459806127296825654557674985919728673797538106742173858019486939329232978545561007900054725330516708185495508295733164530389667280573878280582588338674395672132016122364271902399903185069780948472980377051720009130562696720528431664964904631103134009037815217492434067144662452624788444797032670809204796602152536229777984130352918249166775473338610975771752089257006270953984192767246810212714644651636182903867855736355070011836724154289540477483432843483747564304527445068084429432880032635348132660476017214226940034962856397025725628371882800895476023866630654974704534984376640385989464581448053195091992594514982336136539044123167407129663261870424198840786560346889440980735651117190884162131337038328475271580140233374087460550901973370836047200902016509576637603786372188320038639008631870025211594327839328479264705620690613940364883094552023943727600115564487678447540835616039984885137729230343235300979396783369830091277799794971704628531410043534933382267484965817752353127196015906172828462137140103053343920270345130194910703446174565771792191324143736496939690489657328257566913276453108344568715944990050920224047579942148514139245457253260782716471305699581372348962272410151358146339359857391762405734462715784143189580687674488008034901047315958190724146417291159828969702593777767500673203833675999208981411198985757705456900880667351053470372132934890554554972053530105573246966105380660995007027547522626763831652725279154833145361939167195510302515194171781239124482761114532218866777176734174064523789930150371042110232238847769373142553479838888837413246016948494522990510710895587932162056322085156530074079505592494459743510349190441133791566366617724617723425057713516044266303431268508796541039734739274529051405512410302983625893362358342678655320477807539090909460140438067643829114783029646518215386189201400711494551862692991324737572992206115252478291665457569566383251147867252560975782740644380460707154246177387337680719306797191303107259747170951488737474695034915202425718743866194207982872883105710281579364027146345327984734941390242082297386601437354856090802957134692265331182640679652544349899969780862934703855361570010379699864618068028932857297252901428290197040501117093960401799400772790730059574064535923916663881144597641874269200937829705225640556982994851451162539665867422363083935081487782114697145156264218397232451972563939261864816182977438532410643492525416862643522704313723804662598556860369392975077940069921092726870253264588061666922557296352244204858671812045093427166631890519262450149084600688052235094443465827402258290512950304979961401660772556448746146270978688973256721019292300982454765438008643740010975723666092413723186800774476268629452639172489702676745679273486954263296293307799383060695174258956537533033198251374669746258716171967671157859591293894641900519594231162554265589036040426117249989093064050953199964610719970516938281588424916149236396001113845325917165402764954766172956590312791649517360294213628187264592677678276896029664972247633742345885325543235731917632165397243501468576239165650433876800210156944358236086348457350102531746380709120581568187968385839451042367958767056686080265948295232559420292102688752911543692228947178983633062840897730393136992191147148162894383234242910144325546512377642992120827639297377159406413974052092305309640784163165543554240237060821781822992158282156540176766976612089914480600595299065437623636120263059889510077235755651659219714516783674355129084511136295559530875867083778001919961816556831004557022827891916130240361835164122316270904542939796741282350843309452202160626684268919718081496548307692214680927243772183273970929550675247929813115669882315933109698993912254344793577456066112690464296564074054192882264785479797974455922998213530029315531271761722186319708982235311610694068488157552894816208209181667248131289081046237699070132293532844500814089415189311098796540721461827574805585802435381615139187720044458506579847920254569441147796639922979053202771302349978644034421824961632018918118043264783111515946811148164726454776176349787130866887569529762603031666841214634302624407946869782859874183950317139429001355908772255770537385820548895316960180686323258791510705889327168594220715607638907859760776550843037319077176693145523913518622363114271160854458040847500024799875823005870882654914622078726726806363745375980674164794484814973892387547284593438752792867664432725647955615698313724625104542888500733489513025043675009241929034354360108566920829426185038839729213803592097852633481338499592725301325821086087156279941191224265330135185468301475883617271648821814983502877885575396597889061068322286186195298276402577225660572474465593403252865816014386518537361611416307557297037999446651141140540794271475377811114255133972834961152875330388644328160811651900971960558504031993456527982222342807299181713054322774875923028252948026550571740861992523706296814981242042637768598819539599684750680120317039135076007001949208483688796385142405835386068968037754420706427165194190884481774909538052581044824739134996228296437835613093745711476150935895945792653518444582440734844891009395575602291056062448456125600438212279003427907039318710752380856389211364039358354010582073711565980725630307728235851731361937077949085709984740133668500208412981911223595969682225964545883214339357119483477892683458897400760306939454021357274766342848666575966790937797646768163015848816770646038970658327592363081409299550394583781385143772011353236289264203778348412135950821407271208953373316878810000342084057618038903775566026792357942645825046342858264058246647041364199474705466118335438791076331452420005378089995503474173982479708963230657788066150878820932715957565448426168832058940287967211719805372836240656118907999138028832094343311246912681414321820670235390665254965636176151324015679568910354880795582582532800003740724316505915305906941655244026442226553465708270971438428418562650322627493196295890247541653457612824093535406270144007091148209548333649386576628566250273021544259798453829481913014999381683903264080298234887741471682495878481818005552066910156137025327368239846402589188012033765009206477291158684977059128142539364633256149381380988193472958921912237302958434157505102177387600274257006713072132715585027183263165673229741655699387896932382888666604753463987363328505616254877385435688300572624974075468515505447792066495159632292580229326617229622139077254749522646217975460868209939045420657122232019376562938297808861803061952849313208496738723326039474869730793856785007594093947867425498820242041547066719824068073770803660751254641737104593569506195610338555273220981093912275466544307152856539660824821860992013074825707698853489469154319716569722476616161766706519887344489662458628625152225384290156087408995434217695175410335336340373475038196456961620860504864141458492224453185569392104609170949935123097068124336744992981962743873931320970401669537573173363924066206733660664354609510478033905319817058757712382737802524734990313350046117788777274760720342573148159707116345409091842317519827442776377940258294921372461614244122992493589461434008809389144670032034652189837272897423974379715319830729612428502696561588466394484055677766860581950531483370976868517186306676495978906788870683150525108802156270017004232925652577553571474880717033038406465942131322256028818375188180027781993016740998644106271998252745569596806164230149058371294203283526086813465820686611208819994256087192395986575599068847944798957284718971157601126635233211871997466584003580218134043653557895102240963230644670362396496910274014153840261860400252104070107826599150449718939463765389742339594447809412596446793881059540177061710349317906010285848179428692776802516063469818648761586233701525160236371817879990343795955115086514540258797264232005725044441943317120137468254190708531072152085126939846628017711102642445638079158824956674349287553422153367398007018414596890640693638164153469373358041348621682362812485519628207372517116447100484339267712904709544982177124599735379498959250181926670099192319815139687203924078131733288227406183489936891596258827794341812597822374682335655696616170703773942455538602130433493640075319533984910869963335613308498200462205237942126112738646977343529840614120293357476985428379850731423029608600645839020326683297106647485928028070622289411984685237118462881782523378018175736273865633857652511458976914251738657976813345533125961089216796759921620047777736601739698157005189305563209347680575208239247093075056486535401470969258633244753524002357951420808860993523690497927164952973307312176270227758280584330992778199380439217268111765936516774634858681152391360381723993804361913708704178324583687073268792759151242132793069249368067256716409379581154374100844743180798479818456229533783159209437058598793067431495842128091771469371599883933836596763332855084521448717349872982802287224597211100337067885195708636469326747159061232018112861922070378166898254061531830765384398395669071980485139529940333118652808812321707773513270097093437728645069055248320188640544591213111790441279949017804606511934621383518200791941711869477902086478775088118722447763439728760053349119723576540686820193680867718864154368080099068512360463269609940850990396948362171570718698156808599431927550783617631063522862443582975777239716171244390007852725787442545538826516658015450494415164016924498904268345734562617340205714011793825315539669178650853286160227797761828448212867294629371491109116351044932010780072370744963492569121890493135736176727370757948988198708148032945608027014245740279928915695074977187763259012185583211683324563832463542641366304744206953390687461804874269573082528928549775570446553072537265354490916550585449050090807360813300777288059176211340781270220715772179918469199964764765500100977660172796469665522445266993376993129003168352117905283272874954475129813402506291381095496685728387795290504428896615155422823760174491373513862739753898374287836457085777879177722829418378625092628139451414028381810712499370857034960067976856336968647672081079401343326899229203210797152854322309368783898249784699775589777584162128896661183097189395618055898887347882238586298360614828197063885376638702369971905688791420015005893278157667955412656153240777511837016662680233363450787841366979508958640285849250404849337961711803280455707969321708308871176259199594356441397149528262209871179393056412254938187438143080847275530838917269346294899678637549361154624333630992676994687019223088148390348146066609544524703883761208316514201007631833758934939996200824800998604628306243249049275733571918058260532493551274110735860302253057698204994600214598639757850583213910161582089381025366404328385622156050481874565965450748771370455025814588687870941584142363695825390500441026067279434510615024772280622350966331573612514266794341407466520635345465839222611463235578393993709702620191622134738856245398302016554714620847629726525746426872338636231531355355681663605190357189524466423758661980411448025219901302595893499907018346443127068059900432561387112104506890557506790767625630503842626225137290652256549426548273213499848416053950047182498565601847314490742691964574526581135702651071623877334688337258997786436725917411557016552924842063152187379159524644831952515980633946037421867350241980390342917288205856935267866581582011958760698252396492923489146794430847865749745083669623296079018930796244587484372517492298595716781255748423316730358061373238720790093363369257424578919538675866761134125824716030708943168749649125716727634443030554358794396727983916055021351483332405448295912401218783134030459294416212927504998450167094648495344091524718377825576002939794250148934214633867588345896387026112729779481845303444231471312440784982148467358627326536286255010397360301794632125535434232983465042878299269795250762117660416274969836359499603243495791210300046219201462117222885844133017429091519974561741221425481510127488263009469748351230072170223802516362654245731668291547444218100277761276072978923682586116206667022106584256981663821798412038784102644877355661996291918779924348976235918131207934212628580852454714318097767637213645840433599276725551587668729268189864664577371815671372712732706917446076837023027879242438214038304398781254700621379655600744129064710835313042028929121521463452256753566839681362781899954496762854591729513324623126862712073070316867408660159570991663158646522388745623449645159907497920994590343139214940679848302722545724305143530454907855046857565598503141863084834865010575124492875671828991276457246072592552964338464547294520764118443817902834258464092984568121756169389359659757404292955715291507682970780202397891696925219956916743579510728110135844878034761204586517986663278274801506364902275231920574521535572880248195865656936663054699706295114422061255504568691480327448602817268281027424886402616018934181365408817027519036327982203827038208983512455779035361653446984428513345483864352548108312849983289418172916120839071390684868789213810103679650443525120422214656143647220149894200214383442012409701466236343858272692961086252552511892129071483604566795595168653305310545101978321657417626828559346918714924724254791232715290930876743532838750563162595363919968592580225709413045416467857239737626687111622820934741373839530974538562283954012484780817487662218271515701356954660145145276861488219451341105980195908637689785102904745476657438215181134510250246512821307882573115182513573208273422069550416205631424449297757854181047996194442936394669739813593669111845157777992643506435444778907866885667636555675101330203920641099446748697238001890185771237393338518911517615291790335703578359795955444897859498954246647154327706708272651894378379480640334221433772404786786940630662072056502773700258523743934557949437175759482223948482130909053923116986640964837350683077249445046879290633705387963710117044090375203852640296257030044175089847800778547400690983159410928873587189533947358288473512024777514415286414333015237602025716546639313515169580288664731538340423443705796376486698042917498972943309837151215686192965419767908754359006588519119491014260755969465368844561880990145071492835593653328658780734465634881032988679671646781357384388603935675481267316383463260815222677433610342562799044580710243729086055639419844097513553481936898944385856295365499862588604857134920887479532609109770303465012940402286028361334223505478683117531048043788706828828150004082704666900724460766081328348616471638169678446051551761653711887635152359278589755531581273539168302801968872202551866090543478414559163466458713173467524042320513784665145484852108274337280013486724506825679412532619761659887652396688873925240799849352814127096654205069769479109091969184310175731322507064339087907860867329003063983535165159800074053082689602417037023267069764470297602604698157613952922096431184121990812443297453496971403552504286138984205987355762655435347212310996418075573943049847583589778675340827775255945346907202949290138613691171938131736016464766254974355119237231903375664039955424477839442983518287742464123279166224872611661531195565153183793037448307105649190863769246430392533328182321026516298438247988940816153152609817835820542047575742391907906610890617263336352753588367285253235669995686270183081216740528018000255368992933693867881167440777299165427880446784135620093629755456915180767133129637553148165799090729310413796284759941779072489099883994658129887050988367268841726245600654681144806371742950845879829312533822895706426355589519574792100474878009906747134908177116597027874004848558461844362188045597553613978187711001600120973806585206022746739843219801950690953316230458982917616258601136021828935305946736287128555704204874035807380175224160105364492072700313587362744654707779352664844640806718320237279420143447234741680498214353219066185429925469027839023946936756585504715201141750008863744375280986335535666305314474278010855994616123990295628653163830851747979431177026166211075066725911367956573126107906874252713210208934204306864426562190889801026878816775863339198793606817796800152073864581118643322230027606609792372849188165221926276820901885478038944356032042433072568734606173702324526804366175896199744461169110304860590553199705636008633935746768254932730261029297265221999701378474566833692781960326841205387250396773387410094302331065949859757562894408874945023244710451411575928385431904365609979441778694565059086737279405018103589133007802251836704712947858393258945203373711540965251726143245821365109492864963727906756677570290788108245219873727940381999502492852736340743617223491460131337418826157775394499817582444937381706204950516722942428537471667761788064434756742240965920803803416278472569426829022925212523848585337347913671592469499736083501009084159991613780484158077661793091915947188569099610232560063679650977588295435738186298518032859284770413724366489514614505019206944691005545175316280653305226400767770893310898674759236311424921196473798385954255778544792305750680638612690209013250630793951922213386091859506512594966211156752477031726132363270363423717204669236175272964371717948451046238560425822273820574669416399792178115941355964646929848306709201425779742380093529530764213118796303250033849846428603634072498312855593980962748682443195781859038887550090259136755043758914720260583621377666420090901070593053387190959348338330299912816614493302348832428627809450374459419962277192591212973961871592020847315534698082291794557411069295622770746468292250640769884404759019173477414664989263523613471702165066560590473280364968243983685148167372969698615723107288050308655420546534599832179968137693852187938647137415299348482991880895775760669754960742573489972049994459247477655065588130988577915322125348254266184290083358153300425533240532142124836043612819221729578384448001546002989505011823896463097856070910788010264937937656509471879322583388446088955461529462664001960838911309128568907495244109929559185087086298774924629350984305416318920651890102210836873850768604495583670088449719941471180764413202319502904398729819740588179575559249432469415479940500957863464910789359582772786600741560112775892715697466918567208804615859568973929234646086518259734809876278032735783122824239714918079349952189648914987489119544660184648597939334327981695217348104730074648312530680755197063807910667955898766453000450685243345844501419438076057321597242893329409535776902892813273095037334413744484240496526726491230745760280033902974672600719069651789305684608570486241921921895529501206499382979045221890711544996993791443408977751170261408258401444153573912575268782112047795676433288753969726244731879032952501475268642593745614354879964023555025562412865641888711495639054779427685872504112799119785252786355553260549077541637281878794216675674857856141623043363824076503788015601988095772380487988087768681885315507155213567545824862107453652890422991722156412432965485960404760340108960793000197018816034018706687673493011680676253758341019449395995975179929452901381967248764294353034940384045489020690811451703580193819159005399253854990428116443209598104297256009893982978142801815867903361601288340891824265607696572754763199672245330775663565149889240332801785290967159121559220796605920051664715113084015747198573315595081493132744386096777289684562866947981365031356609445293868587621647238419472667526482797803646166461654600938432009638665105879383584087496361419706343732440744061759639504054302308420453116892618690547745512308142928671314547872493672262714019480580720895607295402660357300016591846228694429707353592797791351415457236366805613510337359416057986935094459307645925364350129491834074656822106802432954472119886042088970448772597852229355144143595866617108405761912964802496895729633619081064734292915801249233415950727908608747347297779283102211703600785545769509313647869059130192897508136820693747662440979739060858195703694795621733909224235687871954488870765540417538648949470012505326595490659115857931270481659345687647710613834516572863565673081448107224136252029771512301152163664361755541537773135312607367384511610608415135837496499914467183123847817266127832291011902305693426788974768845305927887905349031050776142554299629387548417519639979120671487710566996732225389139322340156445850150383589716631779696503376087263341625665152168570773753040224794403987545693099761184759503630211288883923449592670037904222571028065129805454695532114953758276649718670663197079169226050790892188740761776634726929343000028544451729601647189015641206994309986169366851898334010548662959489946569035360554157029370869503683225813239174001133578912283864381866214276391120167628509170158013239407971658678751993359226067740973101511742268902396322001301650111700896408566091596419960202060399859516759933616460872516105373830608301385470114691786335380234107417724977129694982389334746097814666330889062394193197079768488622039448966521855308553719676675096359880517797472617930326912831826748620578092652565290342801908827059014054663747001383302588936160171501548886893591056944044972172021139245648474988858366001193030933405042481909480846789876003827669218171908676966018297820355992071897780429236183663066794572605188960538234728759328230119515865551801782831335658309861373165259350308058239625590828657292138654721957793122433591473237524037869082536021646294813204884573987051367246382465059987311460376225349778221030101454298751138224482136735267372107046667779742422508385846488729490960052186147747715199660246552260696212706208541687872395159978268612079223288649559947129439200099676084626144529668818191118094488991955881471379931481529329582516076010711662495155659372028930345139657761202158250017927165821147493989825216413139833162921591167878631149035037080467291134675664573677603167044711872286977774937204984115525342283689364699486599281638902933332959670502333106318645471594619892117469604407479301121141664974922769663879341360554362801356521885916919160126501703473492198577912155996554507884590280024197928361468861669687294067326579448551412102933164767805043203023892916209496994094626811268847761941929888728302045325483555956456104975075261052442558093862734206358927768284422812958146473473670736225597282943726377487768399286376323453936634450584640322202749734150248757659910215195448391414894528223832681483980519970765592688983154471576951183155510618730067685680405712307832433568627813031698684340855208154148525567720882895194035878583720245447816863460841197036059946920420502238950509990547462252473281286675507560592665702381967985443697384303634755135301014223131859665983550172909122663560683962724430840465236286528423238142349908676609158081152998567318827000131093821576191329659314579978119982342630591411983389412562602152147455618597839408169145555130001751310208382556317361621545903512910618001537992129948114092826421522700318799959583363724143264712437805197524452586298660913976536312050348551968701426164273739442553870410409340117869028483173244466964383927413217588098000494988615024556839321369972260395131599909527837014548012759527925657066876033943012129119785059365743941306541784682021900338105036071495296968271934082499540824216163965539009310071446388762031349134077562755620587774807984394581194951882007132052594033442134001243688746110151026668901067251610584232452648551398239240043572195668307365786346362847139477187605142398707775353711988544676572934635846988478103391466784785470873151504290874245923946132610892919503710118254923184207210437942006267224493626435095955033758381719510544311687327960567532982916131257543568252456465008122805226368146115975321199170660364359744808288562193226739368656062542938224900619956077533306524648443072734872088797672926968147974853263746082115171227217434461213726243363240118432918898637112347583073897410591681818816689559537182399583109158955865155107939110515371592823919727238518934595024177790551515157264975708724287679440973145302040959076917387500961326483707455953415351331344900038752803101337856441911474235022452362008865534205354859562097776348591737878062122554402259252738483077651799963738230090961975938017475257830796156323362664637308389573846711167092750644157476328242109681866702142077632683755260776111089889449646732775343901491089616361841443514027645812228960506038155465315732310359157359227589113492569009356071479776887007319541022834271748757490709187163047623887234096963025340782474650972500272241452603350827917050952440893757333312319820302154163507867782655093217137817123137161142123181244080633098153607437639502654255747238777747951603707602548634894828153033520219413464669637514327152808029100281629344182641082759195249518173693711365151453769757463035503968815577039389834871549884013238769153330886083961520387926598342627243177492768626963541310684656244843493116508966874844693471034053482295484404249445480290150087120911679176586065278724812579775347478803166890035108745856817454970704973599571133983455436889482161005371526145300563991242445399625803132802285781555675337051796143359354831260719900258511108667542907999170353700606436838865760343284213467493632847981345995095244594136668858863653580165643967245588975213805763615902148421583350868717691213845760044375608187454847305378791606854309384081019497206105993813537730874309360802543746183604369148741127222098901147672877947895395173377894112656204674800771293805345840765561616367140328136450673896217852090789222464391679860438040198487605953575729784808053646541796474341632080188152262997279175361841901057253910235261006661285793861284828721151144331217481644040056183601867286327932539692823242601400072598995097051264681198513807028811692974703651388278161801811431468727933233145431510250480273769735906929697188889345453153536951518987596889246757887794347506970959483891870919998567821390784326370316579878408076134700595423153306313562919723476311123701263743716988364569939180204023601706548474104482716849915119737619157080068754318896722949153519195619312478770104883649003430712202169327164487378907486971688905566978934955748268599453881593423799010669245538086603569309347485162719970008372666259460916369119186683408760398160534571873044883787844599456410661946492827902987144851382966227706977101867972627483623450552498684334621758253519948935838926400082160425785815010148688691944139135668696883144598621199233497225849337410553246237223178411540422579197837762605724976861180888568657979800450074365599616849105084972307353455998115616755131668419573344751329229644291365157996632553834794507661032896848698762817246534181038300169434521758808549607478490075673039704749799412435126184213715027756166827369026168815088921349350732182693228066051823157630541607230367138987483779334050158419807105831531091345171439567188012503059886950631165440619618064708073612376753683950228243987528605105113518141919737956946936386812745316528106350383468283573844055142293480079936682108044936068621646006766344830319224958931559540458169497241368057496365679330791963671525698071861874731197459621434447874538755676792302136148597286303389418237450498917697400714288423976680628317290119085740325033854522235403375989440089793296037412054603543841820076325880936286978935955808509497565067995350334583706800572396726813294621407540131282863688230745377375496644876706623705867452856052628768437103120859783070774298894233319665993370672470968952524985445820981439492120793934365568025694559226089370437968088305921735499028081872394235008316672586298989188652170704858091843945174164560090225973841145776221030576886909260019619975636498357231553711648007804190340734995830844145512294281776021521049358131823966276787157371499828414080368819714227388302087450157398585239725106689569962349628354927273450826891202714752570427050611184594647182853205454272334515940869862411990632707461826679560117012752583508647388492046027857128502347846753390313187862966495520706455076895843839186767906678569477562130037760802451808273452521432055160633150403699415486061306759533659716800235921608947814046818533147106095468336916218480655870713410551936174510371015992161361995097086501377805338975939883669378739548227896833361381628700251093980230769216401666959917739312248390826447912809985780640532434091371862188532304910289011371610830868087486723811585974218156537092967446551849292875004065158071920282805299224441627354322382564952517424671577482689612161852563998936569445055835103281856641319976266974391111677809487179369657369037614319223834766554637308885177708844968323805818661049089021478787690731157126141234536496390084269944708025514624680875023203989773654607133043284170537344139038932348425031816883026913873884588479420355798916511772879206893386316827004321470084246757852941660469640375384119123764327438684183406337690865633424691994128446600486512177804327689855184022775180987901106967645819095323132112878909014976869469812633598854195455671757126766788371557631267027615259777699256164372103010849931303543718989924700939575282429872969224107111180096726415730726186239271371578280611414300201711142648258488927207225721220327713009982949992065164892245518836614215959589128237524836062172044495902485756809969155862344381651671463163310048739229322622194319536546576778120984486254203960830112776745283134067622943688413542209394960718259832600135575309969096916373496655974503738055417879293820300756984307669543903118727067442208400259867930924143662905227305487332037499318170389925641616744964935692665215348150771057177730318828452217536385509090287600520764445585217234669265970493470604553275629606790606632310267244205955949617383552205881466766722615253909909223734700140656139750063356944875096877152084832351897942123225929201006950720089427540980857268094505906415482184309235205988084931561998371348630863160817753099343135682611939113131975531178789183155992277502484615967066466405284880921192853256995495732701336628910201852959715102098731818463944280052695190904330022355676019778705309066426484472311654176854222119167486235082140555241633628561937291560265630374851963379831249371251258466854494417939893950361305635853814653497429452024282804730393196391966568679509781211945037151849483955346185707607532969762060421264450505727237362397565744000051885064382554728183969647559539802630009732975909676681125019203508629139643085638026878054242269120670846669566779380842887975906633338519183165807333128864107796998027738812163216461819722979938232792250343923207155706556369315292188293554619023650716907691665853411416202786881452063334351824445869277959804662797012743488199998367141615930040385490934771232162308539249668813677226572366504800742866450667231972813565442043144422054427955692892481651067906360543142276229820510603946839073598742744190252742980580057378424677214050758689327578238964933029539316754365582636829334227866799690862018808955961688981948336656830850488836176460312166876308659491983675260971893798508642961542780131573884226269097207549301238347693325994685064488503584484386598349300601794354979546847118805815318348388546700900036239016567509098519743826089176297051751626446321046822400453548606399543634998761793295439245093275322116718512553617107202565833354352696800851148963267718413948971015796822371232377799817045313497795344097553782240414687831031187320430287713984126674284308300996375651519942564082353249959052809366080177081548029774680469873018442817224891333669076425734983149530154917971860386848864164136682031527841507301603828760904785507046797051029723762400497326796540443757434614926309232993953102138573340394654643138039328475460166828945703985202898970561990500585663316810254247961224979941619238080817186956176833555930820343291711186119406614245930234168589283254022811223751448783838043753338600524598377152198085748474091159656051012610213573908775874485223070727867510269340595258400443876916608889983769297115767546444686686822582163159384153340218454302004455678786165353877900684796481611546147742567664346667861657143213956058051068524929302034863111876979067573730613086580498053996249830885162974483234209187093248655663168599888218076342633618038033093708068565521163083570426598784939627742574272212686526087553770343242797213162471865621815021272100153381435276404467438408179213985247176560645327166630534436065878850200216200832224339754743884656908084822976109598909361512918143246941901775429720168260292606936286775939441303998070048562472270746163817080272609324491040716169431127216932459613466992507264935833273692236372077527056795318598698939329745192340658032028977873471602317472274608055716294488616376900498802876817834462006220327101913512335770364900808455544255768267109148155967365538582594382219513580156377119716793670206222456863485469059877803465897456584478524088192688309227770546049463556158414097453554239477673427530500839360542653385834292408867914093681442328587900922305291527999159050090651924744141709100477084998890303385633941944104864392190202256628773984626697129628687375722161881712782123563349047154994707588680405946324980613245053389545238627255245644008130368634687268413792193795785077498902782431583827323503310967089933015706641952401640480259861958294666114657087896993126661948681911951688997857138260889720165022115150000459167591831413795284292401626307590692810259150476906872272115545836998472442221101278300842149489854275989287579626814082842462027344811563776158858566660628707597984538985888539735915067846667744073558896211764902638877304631228815008241486403525126070075059042685515458730819944836142517500969198812147177694290558463647557815938880662395420189374908403227510206348923283093410282378940889895317257072781466983925467615050901133856273474822826535359010089528178689238513054833708012163757061868763785954802148810067207114027051724468180760760129942225757837851526237298044375489744603759100293991487767534772424112309983814691187957254447449604200948758632104967562261710980657037545797784528755506706813330119403702836846318300506680753062470647522436185743826977839833542129935793422513520349235503103226324224496188486719775355803165214710619958410406221190835966907897963380812136398928437310743158230935296944233518933301343708243264385327899082614976500246622336013479717464642080798369546513329453775576622725244620507851699672019899993401013335072075807710403826558364817000188252048738626947279776868198412449713014367444617738360378450588677310415521380295511482941381968111653016235598910147759480759411771570116508692185411471004985307661544503263624343420505278561286837117886986242284537112278047537319214048956991086183575809549838444566013084746527651201522516404600863882540892101024615835361898855615679545559434153937745029100661215587064016652981681454915048709104536360233696267900742045245107874767111085816038833504907301984545965754311516272250132882641327327200458647504003597538841150858712366767330536716517667235923474108220556620738971458967361244286013184480990099661941855126591403124482682150505096821172238621231152652300713165865427360924785213735015263087364504209708686975277506519538734683752316717031793864707833381254703056742160675957181244817241549006779553950339497434406511014026688323398138407299525779426860509803857100388472248482378758702492339217271606723237837596682806558779053366211090973343419979784433485265324350722533603987194609870643016788954090843383183273800955490568085092791321896161996636262009622696371104592305859857933213945718121849704692397468471194090316286548267278160233466412458675531537220698657075888456159200392763767615955391438114106410712803664182738485702131664766755240750094911376831891968759459457677975505054359139588476862792044160738994386605970487557360320761893992907847325701218938635124345040256111531106159816041062934721259033810339622107691013592064184427275725636244992188419296928450488655716808147667896609363464271937555630095802657166740606967045070055976452397530935669267213475656322310521709797267882011756733844202585858563099582772237670124261950140214124151701706257482391993757315398056518447478149788507156871414235362443327302122681085470827797568225700932570140588369636640436028018657355839449184790336263501554324008794445528858414945115640942709224065884058157027469906282629123540380245799757493270182391447626286719728006741510646157842608708921008843375777396856008810813692857565080184359309963392248748227346979480784064776775774350810648131138541202668180146216960634863869351822833302134661336932791685950307992469114783325130820766910151785797169586601857927299671940055236690498805765228834054038295723294956666106181631097892263994073011570024576283747735763081837981616381190797360315872121983138196203449769816206423985075228327733732583324372882160597886109873551913778558814037298650838175116326674547594083452969670926281699808448890104436399294171335504917218530444136127553727404380196616706233382973802404906298258609513935027495898750528072067318378647302489130579054815627366934203153365934803545221237593231989288843748037324107862086056224621755669140664965603256270152469394700985147116009940891283519475682748329672272176682993494445340679073655254171748865839010393192874133368705592913800277273147754869775541198401388960452885541646155295967306253288304118555011888298415869115770818537363775060713350543268713538259132850979585614230274360395764960678598010893795565430875945538732132350076030077301079178964083799188708619632086790511588913741262048385411578488220395923594332704524591411473507805455040335819033847064810142486891972563811686319332164976298148495396460838748495439694585152579518091162665452367335174501636083335297396558922109211569119783167291844257925757550040307490466642270906643224285132454408076050309972583021790257921821690823779438834808656545165803224926641396247339605115247595839356366074438299366773118971243814345071442634906683367462679651448757604216490046578045668108976237352466304486513946482319660407267126392740537148060020288141194791417421096450631305594241005639877803076831545495507157300582014792515959046024661151783936785601612532406275242043711925061379648508919819095877705809924908420856001038860239431557064092622965854619405990986964765074089090371020410737732283300019434413131898982911460768793479475637926076608714832586479309319426065037650312207896059737211942645807433393229464562171529928698775723744217452435105937015224486976130482977756125599017514547595430957297867274007217741044287624195270575130818896669903902513418046187913963917519996106880395794578140869943557929398861400711417249894605120231528627326923240980270344039357213519034584028877988233814226609893318496674788926698874274514772695849546580773589496632043196842272939054023420699365934655175946440193569680887573651356552737827558456003178125785472579739016890446296702126248612178766264775483706533502859187059393901778046471759424323624082047979583793498520455967990254051594049454774417608395779736867376905855647918279488713678562976470361971927727368758174220619342121583922147169397052507247831658368690921206606029778144229145154061195058652651412881871106491879697943160479965128847403654083999670832363146792721324493626985707407047130584348263293188454405105866194037558732502573156652753929021523622074153014465759307227508883267063705821488431961565310418901791255484578746340538187505614044231461197845130970565453691268255794448780425882950076968232189862623811110723687449921424691504040400313321866823059154359549671890135590314696913736224077614431031226486037647919392677174935407534162571025588711228300980455394033370487328235883976509095216726564747258020548090639892790959497565422906184606794762581291478097037557429248089816541744855096727088920335142693606922157665634684417142514188413007346342117709133884972815682697556483084091332633671724772500819038332573981873743660364293416815416085287464587255653507621150730885068803456968232915354060692724241361263834962430252227348220766743282446251953438168663298333351231892641537539026898020923069024691880866165342597137031996465636551784185225207740037755013360935861416370449092199891298081723596202953847731659451593254575127621826588269650230832748779521264161760154839038458698458319371172093681990832889325916016831523789841750955421456573542447703079868907388542365511940355299976861512185036911858118061965525762964582474395494638849523052293904319208347004085959062477586926739003838567519596357188381477340819136711013050785355589760197241318688735176938889609209708119960863932376114367610703567567519545098566772609283078303333849478963026102904982778516773496566301792404581418889016861103714921870755368544212842300294361846299784470990238920908702825867759979329002406874041289587818001551262385066983520761015258102922206918505898797807610317527440586023149271114853812525022120659086590178202587801042247426440305081493400889355369942155412427940242883301635560084548061142519736000794683676743928913680375452258525035643374923040611881347898649501791203952139272589351885032274797283045553778306485639221525481817233208066725276659643162054180594480709373376273851917793186994730245908116531708464778489793524433572038061469870092327006538735123781189355588073827614313871047732133065852429217695200986522155832270762404786747201853835783437702235042508142457128437565714796893103634180893732997220191856775283873360133944177263815622028490159604474228410691468157779660193578485360756676916433461402954821501762780794026532754016988343543419531698259725727032376723271043885021457551160781078490367273413756850547512833318281681806879234839423579028304653257090996989339293195685942215104275316137785891330262383995724924625652092380982163100220099385178387862912847546474997380846098849157178387404461981374483906873405912842383139922683550617309537760077334415519711344778011363671293049539990019837057605614721077458334412357522587981973201543708493212917688204045074494910930517869705671177011419656169548746956995545794664902459880581820522678280554400630551716201091706454966577280912312827303711793448888192757525099425680572045715600308835125483545318216700312020988817566560248156433398561210335218031222038724546176492771976075616398999255588448247125397544419957528755338160752382890749579434084784098190504995472234917678089989735554281691198660291050548190046634137155573699308168787927857366696462826628267844983767811270499161680058808699835076429727402925188906394922183187369232560399158730451177448334267912516853853293533405574069546616393992231256623733289130824466051596075681864137729049551578853288990615412343781361699480463908311094735416191894425279561023915503630620246485820967519520566863096088982742416026648684310185357920109341489959132940129700809792093387285245068367706352271937561210705529957700568521654739563093401459950709068494399952610995037011491148583565840356944392440181375872950668205071295542099185087650711181272383052550942709701808367332460479643916371196248167128781688086672286327543572199760279585502124996042934207237855661033521342883540324720884075362274770767226570322161459853084807014327113323279558962703353311330191389309874263357207481014426060412219499873952098204314094001173960150011637464937393337425009359679835495980816817494264116175890029744537902464510011573256811536605504921822907182084906673068373474135408768646880362810534636606363963705084006032259444236806840701090414791408074372432537542045294549232054885409447277733086772895728448351993062406233360148946570102953727693192398007913742461289880620940425107182168700354182717824693588528969368387123395081807112652032316069421394350441642211804586597284701987470587704917452361406216647182684227650430987221302532920806244101356519019242976831941842247953230488722276199998130593434354096340873414940098361137992901040490216519800169653451050932011865288950013498554815797648691997535540019962392183037155704956611140749069890614688031627456504309292968564920493914266325600490954672462450603867027790659778255886429872457951551827889549293791361864335494956074796062993943328989560710185007412974027902759832985344536654737382544305064921875584905472536631374537077658929988754531817075803390144697612612080121923648496013191453758738420887032773631045444103175204216817020249242468543393848183239720117336727143759140357324974219076628395187262094877364228903555507099568064481385391213949440769981765712217675877697741374769300803853092414702592673097243425147389794333082207091984442963493682734555999275654308492145005895949858388972194908048002110310107746945750302798672045602966829024330049019586565615233850660108608524705125925107236890391442604480419106885691711560554676557754131337846734357281913557921521252441634267287935145798726236068476879424492454329593759322568038241243080404415170323303546805930255459808401814193883913099131378039516586688564053442504597686306846470385293042281253712888124063837191968251315506404586582122027033445251500245556971852044942712661755709779076522016314099243456249658234632741999669659190963031507721622959737941330449069123546628999767870639644275439705307201015678667651462562096649852069770710283319925355222101790715425549106689098901571435225232088249354832640582544332289933881814332460776202119276353556055401812466401180644907486567924930457530305406358998581036430506691788360446337600725210593072101922922418953223829158909341282287505109801463162395736714345765411805422274015650441113110505863376808693783303841959694538613373289247160253222936973132249379972928005992675567247975790953496341417002038663419614534418285905495280534099977630879343399759789105686041339012606507861256082320438045454486313325106637239101332430231854665265092939118054325741690275954071908417628867735299986425460585144807032455850880023749219853889982576356904694020369388274466818401399841773978038022542914925919574927731783795745010729161896999328831375419807672649180013064389905496374484069145828464261242049616787491900287079969791885341262481087950554207435264417947194040344796510910272448179190320555977587738427273813105814360328119623482496877066808719029887234172895279364187064069484639801089564315352334229003147981016684313694791961472060973085801361507055166513339144332448586946901204924773255718230581885747169914636031877933013847597598611209617071626757731572976133468570481409796915486001251242060298788553533764784651123129289985200406105400658342503451634685630309405097898362527739341235446910129362617019899713956710393977453100963054901054483657021671991872203463575636382441116170937888938549393556125009047936371715422408061034381188603305755612486733268456069417527934409497025997743501467019950271079144783210978457155621888327410710976530634168129793345934674275670724413469431451621670473376735826853171960542817128588708301593160488414921903243630580503307219660182809009404327179179905769932354438810503240674918606915784062898734473767092342257822449454348280812656771732125804023869289361125565308204506530663405614901036968658562063810884162112507243746872189242092630265334764851006488240187531107752387990519147513017011555125936509502776638656047599326777269553478063270493039489348979598091177892565374432654393742278506271653261710049130127647658588781300480840711844142690290625420067897649616996620372407499901838392496230801679713342360699757087490626659373346349331174723891567344412867677628500732867428934742984354169140694898144641854134452472851022266000796138096075270104077275968926615167444366066579171195189270912069311570060784613104860095902797295146546772338319753003929982023067750861479378310340923251667930588580944497178020124060753205842690453320997327935806562077891445512444048255269303533035133590148144451647017174096780541342209529918090602912607156833927661689267445611553209280009335523419347624811687507833375052144864123004693591272455168409493435643592020840086639728874526447641681222431979005740376752041131459356908294863650288665138667187098401912652087193821461049629177160561124132622984729181973501923264693476067359179204734601950214685020422272549906050039052717398308823934696132954605823559616885961443855177325568257200408640667157261428742158656293653466676503053994372643377711755248633346546866174710294742570747114524084069357459330581066479105872577087039412159583497208014347320216673200295921778311465479415676323580901593449839343603113947019602368064364710155265483303322903249484887401748716255541784323459835831317368567411948216488283219830392937820890066686416563563299900258912425367465987427578424453135056811633366503798136161033428769139977909395653758746991782052951266065435874802495310546207908286923825317348709348850922029899749216770759304665115811333830478324658453779995964224511055205282259855135799543314078046873828830918171688650474647342006016159445817592764878317510061540571533408027770017339348691597254483584995703116908905023479004182696112774389101113682498365112435221732941277060381302634181652357514835007798682610689357810835786811158166380254286394548824474315217144653188212265603371686438855279490837229672715058599839020073704352045196213006682618638971124575397983167483580286609024375336597037955301742860170982285254346628226050297822819229679749507068469470141114718271237717945439542475455823176370720020939524803055024861529194258380746445612475663032936211194064385351261733638375785199093033778956350709984872647563288157718587782973537054845621840616651638052116335535956157136554883040230839048499053464022753635053221312628579847488712087974239197129806515715622514535737622964969957851618947258601930480188788414077064277898211155038934041729907842887791396031909094756427746282346450496185589571867270893050509917508259060162303560854100261506599582940941882231711766856103431094090151955603594197629527151914465465701146273564760341664073355301078406612170688048776765829603445926238647585574773412285590994551261972615033569804674294654465241074799894679978464892745481446292704610242772494517285427202517075137258797350890288356512373075140216213117026404825133197504282209895138455281362688417732670088252543172435798898927526987160398846333076402741020725428607539146320563341900517801695481641794931734887812244472518611941008835131375554904941816728642441721880263881656275398573336004110595994336004451093825257880276648144257909554842576325666768618659127051483898044159755020202230844231648171457820102308761368940062171591863696647566801150589395069179486179388110691357391119291194764571638424398506767609270156013876254738775551308216149178633110756769969326398363601998430563988679303503631101462125926182324329202305048739735551038806183963033839202244502187780634180139029250800165476559906039088069177185244075096351519581930854853494363752693142834726012863215569558934759037521733395698605355818133404046834587120394074492363546970801353967029689205641532705761785074369410421620028138597409944580394843717122378085916106254729128941850143373320113941923776992728498792167957048572084826211789537450995901605731914510330159219504779986163997351363430181270766361962564218296135571474141968251977845129239951809480276157790515052996245646768594108003196552477778443101848753683776930481208594934751495753635190836645103834811783830402008724954329435980183990961161442520808102461548343772159007474654697078956825591781021535644406013968931598445159332120198273787780746052798480631885339359255326405680475871392736171274390494442064001760465960097267419950111801944219947030763868082018915210696080337311479275450469180708663306830471771276993888434975203615083864030923677079665962407466530320588557954353589859477754208465854466213117417321363819376111745267198453771073659565949816596887595352725655305225867778743619699554527008888504312759094143302364295198309281704636367105770040823556263457878747852344823998469437807398003882103551971467793674394843979504226155553063937295775976121390828294776160906986615995244347407208254872747416379054120320437632649767578839449115948526175508148236435201449006844903755254950452871127759024402682896602399138122666872871694391424233569071672197485298549065028669385313900278006222810546594919496576773408717385262225853195847657410136500168835483562369923544012235969360060512297048480867065598283362546162498884058080568387476805924167214899254667697070427975947074439924019217135876892945577148244404837002827609384443667265579592053332863638211834362027746460871764560182369204997521426141119495091413659399395988849687325390545616898630962962774556931596271112913890687533714285816832655822915316734128890277343355493447886835534106128230021846623652602520308299055735996294121284036158487698284476721665060508430933235779163412598672524107411628555608874176483498207142090696390405828539182621622899826869597594938059048857536815235174514964661426965879562019976643810050615041800687076584704534771470059633072335779079437670642119611920582425444418641308896296689603339150013243279609922778353395891846625759931945266902421463659868461586505934071484008604030338552638224638158915811836335966437381856210405820132816569854031673556381630196805645873480396751605716449040168382782016031003260680326683960468558981291340311753680129125576890009703604992591452651397757729834685305855369363518247572333780440075047551435090756127219522846296067221062160746123771515371186885040037147862817884264613905805364750289469072392890947226362566212572056919773693290313934135875697822879124283350725027285956323478025040789612019789216413238743692991691397743472714978009964967297895391487270489581227501458990446238905869642949272303541293353238761892115645887644297136389781641322138439455803462655791314402914125011688519989228707998820333274588508787396201958428491699988096256663978461402160950597299728709612433045762531292681564329180373839481915146495291988536197668964987775347004098933337972715949051939180303124409381216360642720597499374300957961622047067461174085734109744287490240722240719200849118581815181242763385231140880919338699052473755179697915334836986077884734179237590002069645477898046544209616558245456575726010982927946212016035864590980012146110812974865267664937754855501638009363914403874704406807417307111491203955955647637863687252125866419965181552726826102491047161897279219963728814057729543718948300129206125582500880958648234350311584272504471441799240885831604436354263131199883815034474732739773265725829183742486825322133620191484736976267555076004784747507130263315279144246484583105426179273255959789950216364980568016721702398636422151384913678946966518959963698189528929209109158145580415830296387791786935412183004099868888870765056067578452348837144892995803139722692500263442393372937783612199894600460805192918157365071406052132436657117486518651095866553176699331817383034483252372392809606769052368514645582723843589209066695738354627801124291041420564745807139444790481665880981587834729983910310275228746947404696773821161510972471275609181821603213271154482879902209158099544671791023985775776007593706623699315285106178001622280013068950348282438059889742807809786337323753673875156399625002026889171560872056819803813215927133464986079783246988263250521724677323215850527677276908073951802063323920222893513074342659786059370251069263878950489395563219211666113551555981326905757540944016636894260092675520406533365539514595944303364729869725224613028739834973048301961869455565752979106778727754721134723081066651220266183702365900835311812752978241047417681200547328540882448388546683741423365059125994228687922948350772627145754704620061650940034891292603995543195783268320040354268718280682549652538315835325773079887414298463873930588432411167585453287548999719550230033835213264235652711070175079374880683078560332541460194332096770637493574153953300374788399099007025314629659804152645589779939487647541072485093192760329489791717413621378419810350684961640393871356109818785335064948225067534562645152529774032989275375616918174853755507337163704805113108209276849359945306955812100822853145418170553396237627676852364626589367737334280355878578128082111574306197915537124356435476888116318086833937758278931522464199549300169784479090007976647619878336146456619219757545283023899841128019862103849883015774370873841082808014473728766681903237096742894197093402433644581613180747722821337753759924689494885688725904871418146023764695995080138660434705943517498600905231831220139459184889075304017368699612543946672139967231403034936228627011018302110667511115697441309369448508843086392094696380055670063404787656103708240980486788426585055996477627529334517217948195455073849381133042385946444639016837234401990718808607747458465023324552057248971165150373546124839533550370716633546955833592208900331481109310503562524157515546073932444462024389516294507183976761698709746973277318500836328590628633813257734717679708600828636578477101424365570873713729405753606851996199014232615351912187818324038266010409932276803870251828268990501392874943375476282680559264438064463585291569837975102408599405715559620169061180606385304794627810116368837111501855642083240988162569805452419611080501075913425742311627438861264992086892643935521215084790616735964953417920335729931922987009457311999116978422688536651053937230734148336277659461082027507201354847990537719775211020802148813910728443483895833745239607913126446165738853182117046599366534312649590347241970089105720731051403100314200160783683427754926384781255572681147907979017869070658706347495144162525321346591354161159377354271127487844264010320913869535451417510456835940101622677546837090867791763832995134146804688956935286804536200975579858801075441759285242964102754439417498319758454369167154537583187985830646715342764626016617073652015024125094132891717472435772793642305284204915384313671868862378670068866990269549824223482653556886677643797575821735368172417852613962129235281465101903304020295980863199433281222029898589174133129412548255309686872331162921846782131002620265685696863338986031149068251518406535826202849203691108013004510658289976889398622302002987302026668239598343372148343594114186800944102423948059712951621528595803182583624588407389192471713075627136269742883335952005433740229716897756514385002397963122083229688685441518076875750485099198641600385192906490187818432826073803657941537508892247333091289023297839157016547098990259096337756258327711521976990127206542767363431443596338669837899069142731429877121028098135403899051819659025752871711017725535981091889718059690665346225255996108710602903850682610373659519036598094590387568023489581209837818456632847510122625581176153911397278786965663647603878330958458695212974136021230392623072758316201715327098091760294702138897544744047645354181384402323951927105008365411261449874776295766461315292730408262464670170879217673162155902352103397158595470580242283827027971494018602228872477449515019204840639089778470639368376384247027691843714011326399534905539160928436499378627081492308485158569104536572034214111838272419259960984403071513288390846139536707141210527220506102534051019402940749759574527174929539079385860638632271697588309131577548083427308450034582094375678511762382918133228500723956526732881809023821928341494144956554284260221379058861020041883391973178632547226069678634981468979548112924564919562757485899108511676602352010867035720624104191113989650805631017762544678994028211648920629930993950416269193632852505659071223682642913459750001143812662446396194029226124931396646008217838602422263402909882607071413101340225182292518114507453249611798278098090904059866888739465434533741529283527320684520374228670618018757744193084575684590083048668952181850546205836400727652064823160244792294576503502716102402360482760918929259141865443107973061585721689758130145997794166716858356701456279748137762877912019970773376009154885054854373491910724448878268507976727424749887750371695099645685066210523598133155973577096559064049995701376219792921438423190219340151337337146388569975602575260969199204167969823087835133893409721274136179671333180216106553351478401227180500056058996254410874291771059638614888712165342027420219400108982349163214334109664552364564157442547616280614994862262819794712099533265692883575707687423148256547621396657615870188608830873520634213818055080953871062643310979218340123910155873234497899286404340085664332440355206342945708350867459782220190720434918209816527415475561920532871637706698839126538932588300907859330973252798030071390325461116679061262209148495864246313746047429285121225840905884715319438431133107476804463295291014411788533608414724183078822879553889265428666448434674012601752783005323779504717394619894984126586178838997327667730925977236372511240936935715309934453343631595721100047780613195625664941902661002920527566702498156483747966409720938614287428218067177294446686422969898060104500552718204741935330365947648428619741881735991210918110517831717355723362048767977349797951642582972286108934350157998396311335671442077751224522159445888123539318317898427767907761957475125202725763459241059992691541859509460537709471536644233681603453774944782038031479945248541902415822547307801051092213830438887300974159589762439285168272417354024953352564978836174476519814621487379737335020138996317498404803141747331125357681087728205440275301579499212248228188315859903217642180857611795898305076310457939415167540135991645960889661120356360724099260713876870353530836023137161827587949437078802623545134999471005751616584083140181416096414848555695573048403239322052485420840917721499157966705053940949709130942603584424107356659675150594129765057268149531775654706723150313046360845483584572144624672088377626519460492307291085755171808704011926298599674373996670398429978562924491578367945605019382322891997842022914384619287710339811795327919640087064849999273641610192982828364419870228318235369601337295269640031432055042715716563003478017192464206518546075681103879480426458869192365485930336260644027694822097406835423424397801948531719202606336030218984998773957051431924279415742837146691717756536221538380395561258833625325561989888138394131519059407836144156978797339022026664366760566126034177238527338171700746543287622673577991734420640145957598560581198520436099074878620106330950503989497135317475818349436118333585257563921246465585146177331430099874708293493663050146531674574921491274225822088849460920942321143346282517160783182427482236806311975876268107227796387411914481207607961353984499878324587780855847079140358040322793321570138959365817735396784757753859198605907702571498519979291886207175540665044143674061959756902461075245136349660724935824938152862368659264139236327584459542351653026603370230664555840862306562445697110879197830061029764884611057424265295474176486625207870400490901790467103598496470060348647617110294936726514970098727032847990599934789281851306023690074930957379371813869516821395468129591464986234149183262075502638768248950956748676320264693455175510292818249839119646790918239352418715552522863268318942087699775967873611749834858899300898246311854478422410113101911458213306528058112412300535896490363692652436919364069404865160756328368948571924613377198958925336526525704820267206476980220983714151087480827271214552656540049463226137117556522557855785438620484397274512811246989303953851327557208738586136332845154980999121622176081942298329537528843084974815265989509596031707675498664537413763046783260728838516515898281905983662442409841239767543381995641388773390255619104043407092540587331227195150043907332570074022910892710639857026423394507230166256217803265052508088792039039830239056304093083018130172614570730839500184286195290125738124421806436611596997022276933679377048967651600229489255184171690301299072120129650133350627007142276635497411119992198196646987095666400665324210039471451781291000017803245406453689450147394974900566906224257146068056925494622647946704886636289350462532097847012868109030596278379131960109090781603725759888909156680494319319589059697362378318104294372533961007287257463297767480226244825115785530275005860141541908753722113152887672443495488939371268118235765079757375591862260954758793900685505379226352071301751998848581413739120823909552910494808863207734526534495606973773156538854783575430682309858090330634518463435242119359009917725193273291229892982399848033143071342088986768649183176648276455164850978318312757196668594096546739916866673803114287725605476721566676445897568217849958036979388003509182753585483735102380350966032255255659914155544417369194496215692433112650812479498775233971600989640432045163241566124325014550343166056753606443540198147107297747801155023230507765864292355729797955055139760232195070145877926441473921211871557593117881085673494674367757908697004868600761048553967400939668266925299485376913467099834065831062322136420749971036766488090636658182890886783654476560523996116874664350388545496579393366782999422123905754675789611320021463888751427704284851614103790853626728543299282619009124004269300184230897419472337188277076536459963443767507305972448909468437335025368601750831720395152360017879073227288852436370333004444092781290593453686631414701046593418834746892826299882363013060137669269882177988517212454145733784882303824671916659511051746324312790315608741488607081554831102132540133568685405588343101887088938761393732502340880796593820148048303164481123176201540243450258972177670052598768575291107994887617033468123201993231132192874341846612599870181746561179146118689268370252016529911989888749488292420616964965430894423463417530646262066320412705247904652222594748526298821801665103773915209569257176760513915129079083306308913138467076780713608298991899449053998432749402438897106017627516486543243504174682174047720535790729788190300647621795656051593785317469975436785042996228068593836058350652163718143758120359463898013538578900875386377999442527513971642857645585388150959986542599611112126352521835373754089383829940714767194795565653338103356092091651358796043175645214900210873745219407016607907421171463892092871847601609024923191104226715102906017895674642383409519835911424086426457110707485300762498022067363837798445988414775150716229321920310260500551509076978943194378348211223131719769687308328746838329398680193191653702663820034824649888828009953080219176380419759462730434237050498168626631463313819924499513504093368521326486221662614304563801554167029975670181079914598371430134003203497652952164385778342024804974604813565562787670014116764532765709159469878574710951707756175897195470146914052898762386344666075216918405152920370643416714344581014881245904108836676936963016122140430307962334187927807074145543096121950988033073232712251430746743792949084700011181578721760472562843687444029999034907235233647795614826072754304750733835794169520854118581414211633663318843613930460864044381203050087374740743035198125879556512101543796185401817683516395531429788921097933506442189220638279260170808596615134092310144550959805004970933341826034628222661365245786243689338287481808083116632140886018962793337969179670238926003951088492322226248791469952469448221322207162281876337541174407176440825635977749100498441131586645655216934794699385345895276480298615840226409999421000433420644939416446515860822749727905680465910580231998140418166646897107038158991782599052443794164767665313637038164955688078417197066690888187111892963554097089449350838086720874087385891678280578464638730133563290056081755657051868983518288538558189418761846431885541883532205586551491960840135051091304296438673726701769209462568404821695594224381628363176054907299398382901877071378648219596279582737284384930210765170111412097127189513677811336345225119432564060929092039892030311428693110299616289715741651353122650976566387254150218818945769606338265402520174627484331378659366835358927288944137222712232373031899762712187563590305524059334406804067165885499108922339510318522804003163077793139388788124263739945766173505780454864709713365612269105452680323351709465782235132634711977541566480012164761891538394454382707413571109880273825243581929452706387243028983887862373972699481019099564763398726779743818824078646963720613457502040438651404814540848637229480891874953336845383329185692611600136090526980748507788080971992207905493846449129981160445105124820157681342303697584597931352507649917267189783592046244135583539680204390112988082084879270599398452081514555277160455545091663910861465981010943648552995834158940501132217591891822740788585450573707541719807935765713476422566400785520271235964984181478091852475405178298598358719450900926456203221456793600320098036589140365924802970597042389340141784940898340588942082813754108453271947659401578491808798841278671288346973044453463300113407842446974676100521632523146960746179723522751888911366108472825044733387698808997882496174571432653895931989193809453735620069779566007329207375987877395334012242628246381176046655295493277601516544433987977965759642130364849538029733629734054095365660271566620956242040189725410026903088730688596758323634848608003136749337880469881081792434870555858612604433511134155068347210280388630798842486479599344269107098070530828950651392898724560947408991150499159326607612639813504186421268398792438281063901902442716735076462402457681752412977343770472115340861680417829499676506858062512747529950655953249881866111872216992147209556065475521976145504910999069756842367521533929735597122527571508766565966450271917178205293885109369447210327912997299789495953721796541482204684847107971331529242256581065964907688575121283151575700891568839077515923394970555715543961203428758061751886703983086783340810134816839437033921934197424316334687716755401028790595185546970244107483690998853159223576836050185875678557363745857714841063401334897590877749058334553977057953521359016826647738272508556557813548876359883200278577063164224046839516165716965633117711645412249718086216525530845080263561891326043596292009640323843546372129515947537029341355782056091034650314827936141065660345442082853716002311366813190919641028730492085004174370383374462810464620942776963785580934275787598784183334039966019354202671488261281948862553950438151533608881983528174947354252961305205889894745297898192765362302146492716408632029235659299419175245477614408430602237931856760648303943416218753627041474976139638429863915287083114593851766848536922452479133970185679661898100702047221233180454192307994392215089918339722129466485426691824780579878782653881338779174799929862716454333930424609112847414100761105420089712585366728363148608986343464569341024174867567648864999320167607691395117456163032737449804460907809064030467634944431558869897372150230602240876896280899677720082954009728621969369799908562863781892068734312434251912571665860848853313223426184326055836735173575594624744942409189135202074248917184402231826670207364676861018624736484927580147358881296157116453077773099187906102988862871493020467922752516710370807163943912374316792866821934446224765726040705459985968287895948181229609966449841895435505126974622222840558216017815638489324156294294102354724474406529827595650852308039881041767531095394508295668667009805968039723878307108887309916708399098666703021614657172247840852262333384257208168100733965346032149843206972663930918651492548013701038387054784958056923908090714701468031944118829167741001086760714636703460970165877479386198655725149160321261997199738034901648422675449125967393123979900748310553850686618304829064433556813925304490175567549772245865537013114885452145575276500340012894742742237558340321677426586029415028540595957341787349070980159085826530220465780692136863441823833585505804406907890487694695230168242268953030195038490457409477237858413080942448126386762545261790718566784949159447575258904329859715562539168706640500338691147025275287746323076394773662205021243171119766975540707333112675955811430766435083776613839374188211987281402430195925772339924977456535991737370482345525690174683861816059068502523687172292558204547178143199185807494916821191010614101754667530762028915463213429187226015691453233924467835360929239259563179924773642655885414299302894571429764367323222629236024015550305643202837051864402703207009413308930740789714593411354663062636587285718897700556917963920940895404949675776691668312826151980538685795163887456933961269736698722204498574265207857339345005521824959736483872781039461205445156379796120302916594765746993415432710140747457728926544229966008021914307516320121147122336288689110031419826976208116102372004620991321164326070691988680286409722667809023807403593542144991574619796835571481367714201028436827004103443187994214361381197705387057025157767500874535392877472019654504906215944723770565106196759999085694877759391491159420150509913677419640531912235392749755102752262125932903159292020632274315631639883559894769491278028259845083583679986203533520206854605592167865528357649815669532315858857238729888822191559448037870908916485672990721373860536043712143961691038569517616028475707074122088557445480386155492999601110900895293056150928346650288039831552918890865902817664933855036021130100426140461218562027290863585170570520775006033082951809061933503365733692688723114598640046622373484736298028779881021471019245854937487774531159628979254055017807474919647784067465527903931955658138966925439286116812702860780164924717579476900407138384187102292173351898940764080897143188308922163936596875379870142040037849130127501003618935528646480423801407266877894994702425251395683293667201267277468876032284869428730134997355463449841082903990246143112485288482555246814876273994271498908989640658846538277748820154989400559486508510846581978619330248608338007255035370575267261626271208957483857078107167903963214061147985758927316520665138741418399014152408069427164153124841465750736716210143728566150672804848209459012141153970570484622153904550532054514086490834816933675066285207085044761687047642470629251984218234056711931759773850712138435661612005412914870910999681331855034567552502739480560945533332426165004974273699236895955712032345816444506183980944636812010841892621331466567215994708198176866591488326823185460165541728834534167044930916637484656897676342312018983264383910341875841362419674579946492022219798345930565636927568493597776710931030414113073125395642486385014555007579436042665449474702259689851026633743830181532607046361041203506982910077402475233657584243492598067819610676612549893669474579320383480118918046239934402048605474005397291988706489083532738462542597815237701653934090663961614181369936262272422063733819843067752648038741771906134560708695128829421341889432614115598374198430965061807992482485995574739758659791783500162512479117682056611245687897954672289441161207246221821503611187196038675940463408153405209319548994528013639239204558207050232815917711079086385994326625268337083516221862790696351346100018927287897223967334211224885525379496233480501745645714169688636010053871749288214974692896253474032490659110794774699550166290271429846508839179574390119154423166333872790505489315733714008430333877117939845502881051522538785585885276786724654682252601394142126380025151105253620202850883368116711791314535182745826907936214338287363671478550254061831507426381713513107673935765006518722579662135584845251998140046504966442936944626432535342270481087358438651531657478369349438175618439389101920993392079359173023513361343336174093788943324363676621020575206404986003394762611773065979007173384350861190466728309191914054876182490354096036111717587384282953107129788741300678157290071872028525347373683052683882088519006528889920671141417561482180485903016126993630220042457303654506308344452127181404811064626550218334918087281343170005938945464777807178007554115944795663687523130280968563849766467416423979403809780240068223930439751487761855101468074924443130493684240279796638069701072185944469466756952631588382852626134002780565139541647267978472018739287343174319563427146861286870318680268051307783311333649705142434586194339937603831348919536165221985717340060262681642333152627532561526998660446742821000163078713356756417605706103653972440343499640755239144597000424882780700901824785204769730606818272868950111230402025965464639168826534406245138943800868582630992637073830478363038980860109948994125751256140153446384423708749095624413019599875638910465209667545877660086590395215269307249475934637655249995739813687046823835782221350227515627717439223995541345490143078065888871451328133707614850257685232363829331474280596688096462099842247620743942690027942917237589747893279856242472965908532159472053323694904340279662663074027313164322304712428965781608109046022568044881972470679934948937439150755051735578827367466301133651280628067638738944351073404778542844945810324021530268892670928927343216222886653080791725525366482531922248604671904011881497966918972383904899214499063783422472582974487571387163937660383531958221258389950053175670095529364850788840429000362324607985108094470411877669656985270022423654214840823074249659128990965088853630872543273215141598918162875678113070516256851055815126713593448321780267835089604725800542617103328951883638910324473716748320591787336509628297455969434624092556528166566428133690259307587404400234673137376777924867261026258403688081693860941830435421605123289943113775339106511731742579190387744275557746660304066200990406304260514920298704318460132738950909981527030643369446904100445712022354511710113287564039593702423317102983934900820727390364959796732460701174416574343254996117806917646759647468797915155727815162473060583345263648512898167784698088189911321003939555111869683602326765781946083927775887735609407559829177542808611454330139500455246551242910049113728859660686718953557118903733300649089756833516500494824375020133685157284996369674642591495360373941154960982344314351093202218097093597803295497595988950811043501360621642003040542535251820091558762332175442175880859419299401661600036343910153400940398613816141852965918958274686221760040075402240523491448741154144506035042563623296960365972082364925594214765207713745747951220023253307577273544066672546063855660020024685704460037275403923296087432532813924489275962636999746081980307612158694436812543464760058234517098658868757896434602270548007083790041330514172192659415761568791150191340297485850517148608173156097398981871178896399754385938514812712285659202786935286076096100145004686282143308100288003423799080316038850406082976294182308278380860352272498102367705906046463477309524024902511871798642433919025304589573203908585078719522550177703765216266421852819817405073400266637251528093405208116710112696986779372259856933495194326932012590242307651827771352718844725327780205511448358644478230115471184418352293251149325726988617491226032840207277788433002018243512889526264348504018011766921894003013846230392559573128981537243816953077315894785564602548901233598445260305842110783664177049843804227277561814636149708220529789404684196421051959529763442794493800876237527458736540436860323925681203968153978062031844117517340635496464494688643129005659923971039802605527191344412176493157670125023282158682913399170943472186019906149947270419372232448113657773647843342022599969627985529882348358134519821814256759243498863133157643554985220161874700944848624572901415455918948887077304374958672079248383857434010982500628961660799710944183699874784439567679292388862416024436902715465276002249393490369054716744829657708307392421001528327233796093569239903388244656012980079191764303142021942373993964374442508813987203110473304468399440629881969793719757735325419364999703329803095057301944905176813411652445359329905152911986147095703537452655787424518568889601351304465467027075880994609033018356953660132791718794449541015603436922864802222470447675869609032209684225636134056348368297174343949134503501545627121130706912819682638673322131840444414977037384509444617548305453689936068205803889877247411952389292421637467845624985427985031449329953315855430027667154026296265166958091460788101747143069917441998658473290401655356658576263080502414955884775334898523646722389341636565324794364510059025225863213646412584998467961618435523403523247211105212266360915736027130213294482089766141037807091936558026221817849571220758511904228780008745928677362763323009690437803137089525207666717572718299861439365551183716692237254194667980821666681110395660439337503728075545148480681660436746789432640453711566586375053151208127132754920530682220005256929850143088587918383385888272261667756834554600420387321665037563085408359999738344203187925351510988383385390032909658740548739885297296837997229366012923123071602055097339309360503459039551443505307799861679247161443270747624508513019789738699270993325789524645547506763668264645271525522543338805354836273916262392529667664587548946734475772733560138382737290053938966565922305985710484827743980497205838211155382009892096613694689317719911147471703733748269810596270612913139960608821877214852557889824960571511974099550713992866920154565838343101426030808586884932719229841589509264357183140924710470518451287586998841092873590287431203934376279851641103244122629263110011096914955445030945335769214098033156765480642125772776756252536621018085063681829579287160839823402147203536259820636455200852312805800326716866834481511046373704849973483990721027211903580088432422211643344450800225977952817971722699732374386451794698445764806394894918334385251804287869326327529024478904759379404285984527499222779721000238911215489383823913828729899317311947617390611504478279287691102376475502522571732194818147370630130884178898195981629995410833902444106927067375959569971195359309384961102865740765063676944908930185586498703728972723433457224927891532609223247702287726296424917698080302782362172393798854005036257155488753610089011456864982824376781505124828205504920676147252714652189663004968857959976775225939740603051102898580396262188197128217051926322308951746815864772494006634762523998541731960261610369241957159776019716949023993287274397465880436565936496880168528639775155224759997649418595026804050064096984351130737971104411979180057464654930780215212529810087314060469473565906468924181483912636000073624710556481982589380887457645362774299376813587654191797357229612700089296847136964936836789635251823038913103992633758596525796164964499089095524355086589025530278599077553259012730600235531124137228833954640486577783316157682986151786509241374742372088701308805439522592788530239430921659564909840770609594261296282479677881113353326295287479754098788355667879004291954515767441486784044823639223350956600727547939140169710723185824412798923388200237794063975753657251625013351636726443591597747506119257130162300909373451004745276180163807096773700943768059667142294135896008247553832459748039320607960449050176920705851236726198458956830937968062543402509574621659518879755057796549195504949286712332513375567387160573563800289429902488512188012405686792361892475560482487495532826387314646416420598853851477433433172591297317119740004264987222438106142110327499241363713375474324062966725181565791386437025620243039647904890050442985262446575662362188208540949423685057327273776228365529386421319461785260626049990625479688474585304413059373947277930775350781935576273441069215589407275736285969449663889092158513270610171061497976205385708528120957527632949857667771947593521524216768778681734370556742374024365096351799715330205714311146401358640282902451517326107671692022525006337624310741617874762431101802901331809722311238240044665270255791343338648233847824083641509142630321466554736617596256169665943312066598512767046145043556505676323192723803451402535421280961853640658606595686500900542984050046093548530620626770476584564323035557962139704012841450715513295891545516692865827838940339152992238823329025388857260584924330742050480774965818966106091810585454197932480203796556828039992614596920546380587713649031487744048091127428165482419174572111024497423161561692475479084730751663266098195237956764638767882534315088220817956674771470680163510596475683188983249712046092085569971337574144650469347830224327100384214768793221424857135656462834010324241282632765420816089448070169154954190788990858389973870706701541666533841958350716971451934192037445743820510407777297327360839324163745628589224133765386367495504954305663770843450836517700464664638153286744482262904960184686050368834407760844823970025677621323572137726913923930959252379422056676983704392607890348267373475452833285765991776101256955535019262055179939802157103124143114530230698589870103035894212885231515064441420652849534936220244215603285094454454628741407401845085733373435077630594261225019252553251299186342147658214038307979527387376105273026392418224264154215090646009883184415256430726001468614601161949130240366938247501714189422592020806707745491575953845423781388608702178664247860286824553825706070078528273322265105633445664908743615822952264506909608316956172605265253491502070413802190340057017883118312374199817868723882510105974751202349065416840157335014317837335248193861982871799710861170481956079258642819561977024967004211000953800473880392004724546787309062927968600542682022838886684029083133520768865052779186562901289213124031511478404650007571261779711587696003625917889958455320352877641847839786316650707375096690883613167391476683106804830017611360594125583902618497547666962172853403585921903452376715116431337260067105594143593321358059343196515463231783380908185782331957168023225636454354657396538915851269617268356652954529933665361650739802987340183886461244163651746666698938924827378264542631427203865011755309707615587334543102676089168151624212648705807750635927882007357177805690888160798433456597061009242403609841782625417202152788307191579766742885145058773813376144840008391264395689171356932276133528160479732561164800243647813394194939199814446345033897730483079017221897876114152675849137827671364048145222417009763802459275416672698590142034111588045151837936470769448992165195823326382816833363255130234263516944400844577342648919320741277155095643226103868910385700958521921628484184898827326865547042366752750752984312290873054198395044089420214166780821968098279767077492898497124238809335414495108294256297327826692300410116180647868542163393012745589223242478674916076157695411688302134542171596584609084801971964948722854229249133226957718991065219268235209734285293627988609211679170762948584749614997835983430872007004771021856897441261723109103558622624994683902497802482310610773890804303172905984770452243032100330495756965955759098089718773551327482963398864571877846910640355644896125273514486823105300277818843106768143634883686881519793591948058645183785865973102712078058781768283476422045804174854652725579259321275422093550670915217460741863450104795444847280432287590427853279892586453224298523386332572078549434410071304918160075095719817838095600028747582755714595912142379824103442011990429800083484667984779173667633916755981233073604499817833000271462079471539626074240190517782696828793073342737263554559682051321475779688516552157856382150610037574421068786981759087972310547187859794509341635317309713427557368480465493684608589327951938780548353518384579551278889710753852648125918197952271446731488978306681441294809043876475417203288367931539487319278428206140837821111238551859257372026423446466169852063384534060085526687169998825468531836845011643354224246766319745613460084963085605745373590303320585846047421171983158007289300135611575620717423148933047964474680649638129316429235235811390296699494680014506883857295049880031742947556236767437649942436129590188781636342231949340725849731738971847387427493550985064726969684412652067805021942042876107362888938588503873245685564388165788462809886618203203578230333800993059130072333413234509602597374605200435709986002981455095784628320015135735925460273515967564416365301122647127864032448240077379969176466506023873396656356793403983565680722196540488511932248820542798091297110077004500227754612066171669155913980976565982271696317371323802330818946438128134866452495995445735996027340374953198103413735458599614954983609176126285395307873845707594632930371488225193038171751154383500267089958265452638110372525488774392601354060252214549198169957987371645351325509905208796779944078225308077581699560271112775854486844027605293945142888002909538028485411012261577841491581407749998414962922401988913083178596669153882290099469474502478449025713673569726397928304032860634546819859014808677414089210890401057657503110419221614941874314587847613671477391830535314383226695453832992239404561336060178214118865092922079294966409121600359051153880564921627054464191236518908206532775891997389222939012002682322223697736723300393821723674653052650743914068309474732126032088400989901480267801994826858553514806570539140057693454713673203875772451306975960605679539003726584611384511323064583372505805316793447259943055217500853177863633981947217743849839416646214485505188770661689027887474197775072785946167848196488792383924297012302195264384876917116929419136764539897530221318944274689864451195233611358086995256573849951322723448589323113867978311951784387713506482307870482998034471550701418820531041426682294816008160950246823597889332394676950155947575022359260204247226384941003113670440974536586103080120593089275276107285263942575292843621863776425354278189930648006656963672751616971819907226019375711689259479744761248762888217986501367475075006383234798839649774004884123575666865716142158311084736091393450002732005130798128157022256169065526833030836656381413470070819422166484822104159343491908204056408595224038800378073492616503002317179993148259291180037747446595015659399813862386928690626523820612336236745964072098350770110829907902806903410917509635731456182319044477049548661871606922803035013735952241233169641834879908074808040868998221727551316195878096775216539898309620348940936838565394211961230810211034710517424164346551719207792771385295060267518642439692655367233447841006814559511490367828388175705353800389460027690705631270232301414130663168017467973350972541462609599578815941072780659665422853016083098094827980877799541513306341851977872303012663922539995594139496211004195460782520674425080328818050339389218756524445169955413764778416716373075584797233865939263522401822608031692767084682690712884061919749117656286999690849707308233756477976874846675305269192985079280366818214376796073050873808083014464297598254170078643973049610834186196966195963220184035916356341184358185982051413631915309125174406624049390924513588519076270688936627099055946468937668006920468283630462501640210274379178544802485128618216125121145700035734674069253679036890950259239891548171622541825245208060039060040615540589290773206873095800617499719203647120978841924466670920444974987482408865905266935889487752575164013543674237920145307220235357683454468120686595139327263559276996599573777441103790910715683586584656220858621071395493545391225673280629527519007549409048963943888064254557072622115936312439491645972564910184257540822004722888846634512803044831901784007401167647739561543647139523558199976935901084177521973362030832625761659684119366145853311420753211952927669717042067051859842499762834604123163908122790890056023914727625472304465613738919348291198454930609446294509615911536755252862610591271212204144684177497818630501112974003941119350818908357333290551144074304444675853303908198677458587064667531058733204448664381954737084809840190145711080151111444662950746065233051734594525772575893078637007195767928495422023913726568259931838496357371745540503873578054083223542866825098340742461917212410659284052811166200923282960301721363849285104773585298392087098926316984358857422063744579956105414437052488223358026756746099254402277684009359318177750785767334532073118530837973695738202460474500960452405560064156835540468641810641559159869257448903034714608636868420714152951953996888639944162985012621982654789950631292147960564718499931339244495297288337833552253066560811391115575999790713828924183735740905193241180832753210575834434078628766429488113359530078115142595782796409283781276316746885253232980285679247320453209385421015807147401809479461160486277678673437757511437592333049254994572062768423364394693270173361084440187565356931607880312701567743292110954603746698646305896432996195799083916388510735836553973586858039475629404022863520963472170394504703852571085313362447545420010525967121783578746333594165923235625703933128018819799348769808508853873790156788859249599338041045070956681978068909791304753127014469119908171380579382353672715797874399564789154906407693819236783667232181905821363990349731439811967421740486606919650658688315134834018768134679042643955738590065483758071528181289510741440960450170439654853590538278043481358307724451600378609737374314721794026495307729429552473216428585864193133904622555731428767902253344787868856379770932207047543824471370721081728072621619220345167663856985421460029371066131784467434949460342745909707794025711988737531399123813260009563206368236285830789874153227446212759179354631214921585631006889095807780605937282837406604517338147569406689687907446437289032404571746893162279915260767008749579463655298108006056320535932346149132211508186917115500655666554774549787559290607422761924901312867775801342108401628830872921226157765095221015080446637440329782265047958483949290880913783491105270189158666597815395224336302038194307797221007492952919014175775251699297714793500137189964488911520647362966761218218393084899260246004189915466997385219675672930964342169889806341929533111660152026890675526392510810172592947411597057246702083623791445765730763105504694796613415062949874761664184570782385557437047474057201870953392723123250003365765441821501626602351718472672153312107509640158510189813774914265452998666920870889036949102304930463034175089835146799025697287651150445102675835608349627733345414395387961968611228627183777026264999954378975661863845224244739492492150548510122167075552405102103873300284593613184584427867338231426176973563642708421202831884367381928347131950871731221910120316721141109395899922884674801741656760993787819687707634475970187870115363507042680620343222196248189679109056279926872063157344359507897852923069671951104333055667838495384096125277958389105487968484862086797174930084521443594253462001124108426656675868978082776276840134698294192958020330574004749139789710591226422104073255789131404774670952163373109546710714788243474697322536208971843414016895152093293728957961799009745313228076318182899433189695689530472370399538905839657483550150819470100336494607541568093909482754499811810031151431124371620602850821167716052901503038399817787498619635004890805220896906827949155038157223974665114420407121328005606536244601968573857325813809450794347406603605435911681038547455413901005210856826964174364592697573011123142761569164064382930414419125809700150147626045084302994739777044340602558483155183709862104371824449093244999094123969680727355749909747543929025579847970934821903280850591023318505659588569341036975217879661677104230494235235108630072812871321479327804020664614262300785614084032598348925571208511898538223851362097287919518774650641861010501100015239214019881155010333190671539149661273638135349062018988011860626488814169435292751302012074448506939497156569637005281044364579654008558044162484257185448372086643338665752522858109482892172578391581914769136460326844762022558337884307066268201365625670604291660967399373963337255981754023690188353530079901593967249287745723100178133888506294267768452361064262085472070806053673762684766876846210436566255254577155820968489551256042709483869900453706023638867136791042491149199630147564672600279406939362920852680415939165569428310137017215002461341255538803212017480246619940571602598114205384973309909585864771311219005778516821354656769254369586839553959226979119815105678624278738635596963515965257801008877751613948594765302893365917624022970657836985360711004953475675722840793387469639698205275488541386380912804655679578673802477962455807493572388749181720103008919889932379533927562492951430639175417565236205655375337478403547514349918016962421277305751753172714089928417997105437997664693048399857656970388916180268894828664983964738224030523683857879176549873616284716015227511055535642270930341290634121405037470653876110440576312776776879558283969360687974929924730557570145071286487760372167136663996479516812181508956359322145080853486264524413804231937636533552748353332155834128888664778013962249460243584302230591757415527544778471665151580601596831434699386022411670339610331434441421523781212705290041529683283581427457205480763417399768540321142787027099465821456696142049358600517832030749599849994536775963901544332983729598770215879840453042417236885395654311324912800166886143213359018145988153451156496930872268799815440163790362584744940276762231405838302463232783555897049122876375516099352286387594826470923454896604043955282969349632732961945392634125404435830649127279699414425771537866021215962838480080776486006844211951284281111860656338162758796685046790939303024381941471345044461099623814170804588938597963438244761200943147501391451102903534584642339866533775034032887511784456217019070082687537123489425484526795290596728991141621687172072527895413036625313121616871840029084914010882474192903310039585332809030568981619595841464035008818383544776616176408343356576282916036527855053342920173444239999129821560656392330968312326061134984745904753481757247935228998935009434950753963734828911547110172984407907116384882298841792185428317498575601644356222646122594640283086477663873594598842450470990867877167500913930038211751981118425649944996192501939380472533739945933377312525246306404342992510063627726440425221293353639838887125586502821483935195378291219232513295504794270774798175730690981398175836426749156756380340241635030089974588466445595105263773038875334873440217725854816570326003356204904177355790973475984394759958454297654636741210753515070138512126171017094388163868180032534456078011389315457232587631687591414183933656822296246600914620551459783379115646479266635436278233025485821978207099747310916035110647009748740007315222876647396291277862184468355500202043071914200728462790183186397870257027722687823910369724454864110588891669111059220294449329436270354133098805268800879346170956304846028827660119070894073002820066435986694309912883866952379298666281788984272697048886044737676094202615377177917909677512787197471044080915599067919077234172080808599042860045454567514227713847378234110053118244306323887152844086268756605069723478477362196202376584411033721590438118946982931306928611598564531398931399489998334044009242283791251755521746218912876051394689884726771874665047852706643625748319169084915371258805414540363267478695396491037240057461302202931995031019877506028802379750025521574996446424533498859159093695439580845280450049366398305637822541056262416832173011323746636508183215513904980193919962514820348523360352029798922437731111500916585701032600353644447517742469891589357347056587514976256326803969581696949039759946106397634323054227213087624668573467046062234937841991983801309939280236522741919860542642497117922820503705375874271366672714855309460807796290809358385465468349840363555216845703430350063410235028534877663530471250688440872326675905655793347845911332126078901928698099359636775783128957269704288379935513039269512405891998449060463192776299056460394768756527761889878075082021154853642537919707547290711263442813605992811917357099215255551980276056037180905189020718577350555232713913962501594272539302371864450176617835950053674245283533462966004008468072728533180835272486343316020649687387392161609559277707472091863836191285755719394844572279339098413065940599965126384799973332898272447135236300117319458797298546955749664148606783193641212157264534076580706689602531854014782487479728063120191667380722377639208723247542101321740219317052468831195661303656707030521912378617793925690762722384770505239270622228374942381430610344037798238210887741439631390151070820312754566079546433713534599280628719694697255592487623405608599760254233805356029198699095607613736827707044286670464122474056996749209859838361282936506774498024522167809570099379281101073932308678935464775565148775074794665008756926950491325561264280600598839499515516257640827798160572755744396120181474978004513217821297863743751099747673376313134440669322169897906481415224596057960363749293853905804580982603556819528939522166957415642204303664372299146967604386441942130136759001693242269349130492467027077824818455231134611034534892733150600012302853833423036382471550255513687456321669366560444146424555698182319274119450827968870469417670296601950745024985165298061868054638134752514384332789919960927108581220089357662225697993598699221499254647176821012765199595978247005014221747545861942960392394590928828418146877484191361418987382812648355343241016964934655262953455634617083351095016806940228675056776344571474132177751673062077821877064922444475208280009834255704577849191916884176771786886303321268954919764573940753700988371400487025429260329638779287543770695604373399901002948526381500326289972855113010369858193267448850522284219180545540822774752760746538989050643747981698347177749076103760062828906194576396781299288020027596729449861547706520473219541890296708583780605695026885991520228616831779318138111337008466482823164294019403501667489299392408705756479425131999586127833097352653843359384167524753096842469778191862434377111559925282827313295136978782140742545163126864523275780821743915421468894359097731815658022057964044194212253701479918927885379033777432873409551174137835201919791527965001393868848556937474821612927167295727856384738632469385840529246749040224134389518832380107931460183429162163319657370015979427390045000638416513145176559085970026470032213022198522497413915779529879290963497289851176018113744692209425310313138344961355993181788354416471450387855471665976982467247974403116606061989122504156909044764662457128363820616674275647027759689746278418105147670135804259038575306203657293784016491669482713592856927354306769178867000492202732316264040702550279562093496216227338619486811060844935895601787085883133844172887638909315374072400072802532562764284026486565019686979744304259225849580474179227925340055252474495023408392656172390930942300609366303234802021086788680896591816847927368330143271469568445704936542127385236419762748941760376029752016153593894487622023573913546834272594628295090576514319420959551607261274135359833191841235784196421342887256687389708438311410465856003768822032463086565154107992964690465777065237950534596024614940206156054484306437872994525822626360919700634234569581210810188042948513682867398521325345198519868065279201617538965618411825224252968934634983238786265738322488214671822123921614521633252756700170428939905246548258778512412518561257886894555316654975464304753503190355902321438128581792753398401246082389071705460583596058677199021834652830571868277510762506653709452988830211962730293185889270847570148568998529665057338471038620599638943209413359577964476992214153786551124648537943925407362192752468482382849973125718645765551508695824151349798157017437827336637993430650906064980929838630333539425021822566381273209743546622445887643499407355388635877067206336811113229422983654052688215612702459628857235482642183145461433191254583311812559791473648401291468622198673758189771951882327852080933278280528503438813801952845546505139324690269115602676843585443935076285667261266508394535898309320803700107893243658291550801322381298871464809135644029247125244100245252544508023246157822063586871671105569328543801624683461967492375522775131051001267760576438799157199485970651760213891464063173502233846434583948354350279819027287973032028508468840198759498703781461796686462875466703998963042483342254904924467013293924725832362315311997123989446217658842719338254666216103821400699023027742644385714175745879439789795948158049729059777726218748279191542139015671040424987960383839873080715504253039320113817262336691434188476626755032586344926729416355440616416058126006897850489024654095367384485080441994812315226437778358928010770528723579813191764225440790262977522329943162440568228240489795858620420959030167530770098412550414395173705772057555508175512601790181200735133417723724762208120008604407951239514265989643403764245060829599666156088903857106846402914127173765715134887944642689107694108953101190999299956309309050352227772332629147014017864451463531187383784955438825008569273087839474528749201768864473117831041101991600631498818929990610152778168708421621381839557079184051198067597769599875313775772688789108864591654468983133474235479298051910921514683071632385535103872718754467670829529749053459537652593192516594514793368506381679734786636883270789543959667729832709668006279053959998294577731682383260738801806541025146172162886788358706619093677297966422255933690824586710321214530157614065638488320462046551157310033106271776366327253551051140113729479742423417996595373489421421400236584408113388319761752550589009245453137756058842247628652387606272469903021267047078094512414716294955702704018998666632017984230055070084407533279625699917718765426525703312549513970864944719145272944883050946018415295562514740409525798009901463383797769021293940853102488561567350606338634923684489507528233401007520258283062071137190594267815521410921860570542096103071329372555368225794735587462567776516453310929822876028379225930251318516581337706052092108657561743012334289084699223497351511631421745254267139789248050025172232090821245741107761163535916860465237641185208310455600513909589498730970708723111425470231216733203810854809201787391487934488837268545689214877830390016547741762281260580728355415331369007931396300063769702007625350507261233441510111428070936819402236989991308247424654012701940113222999932048332874671355383494579635836899288623290439722584493817107725905803949716259506636916042428812825483869715966530554742543545597343320165017471694261408641380380466595322388060995968930493981398914417781080440177680412631187307038032840781365152378659505510087403583849737817232100166230527219947879907436057423140992833458661530302659108802848943882627192860592688546252611811506554314391860473863832014952014199240165101739767409226043254842945659258581776899771652026749864198907493364258824303008229914088423037033492000321094764235749370825153883596128554028571511999684121309513297601060622384467853304303605283324594771517521109132184692968901359920399067517466637717540893162635269159223166758528381513309573351829442340194857599928875715896113735250073352994468645177277810729355506620011166278640684583474212201535461842745627781395631003503800901852220399726275905468272699143753600658655126345316534223994033256987619903270018293229045380216469805315530988295337618967309534457130377128599254581802272613746556905822595786920989804611674009391732335754451424181559427904164840501217527511162224841376487939528948768911062083467875763236881995065081723493681850049201395396931150450840631833169795650011516330083782711074977286046415193311497771862005817211835717658891646355701844887330656741216711045991852850612219680110732254829518774076669979602303847200725332760059467869526790514319525735477141111573062837948717238799010110737197033795111387902442285766119513470938240551686729869870945885528098965550905005839479776816362135995896454669367741167952365593301962543171459828163763773483041585352887106282009286734513178670579055862422877697703803358671896644007604521050778010902637401436327800462862893243121698489569692681269965570096116297810488083332264011584449865788691989155116498775950082011654710794954761627253597443140698950143479155214870180524406888053182445054861510557508245833483060153051527141034013461587176204932737682281179363822377263676950899606005764576074349083808672495330340119364736422164031877350174262838309181603371305308194700548145666334229294394379129613611797429979597898222018382043393751513900818795675780849881967116995779814800468611110202998559769628419388687612327451524627733080446573369546365493840400819777609706639132376542539186868203566854276619326843902885919967881472483502319505887747564159106418991240691253094163125619541095435308814642343408331609704950449309811673539831293735539341187320088670867106762928026623131366609838364307561568243371003247612866087421391893567521305950626336204982646550082066501877463331840481096537269399354992508460932223638918187900587249238610783215779790260035562226643917254444606289329459454295831001567300550754372474262118465163712077024599682774758902127077460823281087774656437622050892211762862594923337322306799176150246435991356381620607408584397425133159389863383102724114385075320805389733801159125087956234072913945303862707068178014681947724028939617221644175848630204516488795837610929850676053716776401041227878179550018233197260574617611883779468454732039891838117019778662208080181016483471431403292545031424952200821114330744664013624225319259875091575121739132432965349401209539286534708463158821504955168014428706494848315638437272630481694795792035566844577863829722889535344118520610069545041770445474492597086698863609934470061993886472734499279127222316585283623292536482593421073552499528548442312732204674710780642436699584238528637432273244201828343973400032241859019238030590058722292896105514993883061413500649369104739021291543977494536051080648720801311904902231107072307706242833919528937220911487783908790449596315222989682708220530489656016395945586075535222221595738349596092864920413661120498768165209416326912589404845282229036070277275509104234760715102608470372049953307356616520160803158835638796224312089007094192173450477878774094071468706792259425905227518180949282295331821489040420843933377285890253665084263277258143948601959376487549244711520859661665883085955336160717058520424797750579059521204948991346273733393517973537490955401805020862425294715561008799154147069653545729992240709325803842553897467763514808951876988364635894254942842207312036451005027160780398336131700022763357322058050472099901287776893533759857416645852007639216878048573675392949503384098229397970658314255553928295919229698068777227966397293907779082178517324761087355641896708494182323029269132494491340375769778800008521206899488519501187042430819704776776564770516660073820649884857171048322723457119259180652711670489692290985807515362751709550528429039224365004824880744813185743646566984452180536664675483798735679164220132961903517086414797337157754106151617424044495799580315561115791030873134720990353018949994658219299219647710568822829861410142019463905423285844381712408363322656243251238385947763567301206764410850147539814463428593104949686936382640046416259646951490319611104854477591917065843927067602400311452127176470833320094175688738759477706324099809206846305347743324194522002176300046622820238082778041977949338939188985224408550686669098726150999343275594219513614894603275485400282474638185574303867224848145712041289402200141526884770962461222114999228876439191910899400076450042673636033595644644270818978527417707745133958409576044621143276559892571212464070497606068894752177888846753657731308884831704130847083028117792594667012087718412865941990187787509632002811023755143635612304865546153298828299904617451774858147760123133434173138771090557709367065736550203175790043067229303144502419919774280967622124251992863274025837040075297281743548041063934506373267506843468818388748332354112166341880424123303403490967577941653779084125868798288610323527885733215533815198830588045853153469043130898096369406641813704154859314966671159813089944082545715355230065250822849617287239674650825190045324558235748687720066747949712163602820852354302783865361171124532148648794241321331700852315433727746076806637669961889512288049108911176595515736498473886069524716684752375144641521336548924672761225853936148416514385818691738416754348278131766314291169378556461817166096634029127205365302544476383065335504511464152247086512121312900999001968151695921524303910229496964390635521990651394321630365345397471515735014459156097003147953738250722286432679118022285454450510066868382649729074813258480871020887495051426964293739258136771841690654521561087615737802053527958004468491361369174682537172803536784350361890124577775833864677004871875515418115037141294549114272696877208861952903110006521480604793894304261211250474636222567539347681922221920063516876682582150682798801607357061108055578616867049474864042027000614400977944187614785497645823956249805444955125709106402708323908144600925117778765206380393713571176447632922162141265648373947107451322905073720554233262086352301211192300993282164753643692379063250335682531355433034789629153304492311538091995755532944987052801903351167407527636655981472206121804385730030729787921735685000125623318067425988724010996896981385239730619195592833694861190323949253594415836595816138391218541195151992655070437222451106336712668962567275866773882387907913364509386511722013962859447865442962183266784517002027818841924009364903662723574437287448563310872878958458482352508201562742207923922033920450828194622615291844607061975822852133877969632367864013313041099556453747740645777576849035137916732532182650044015006462416364046311782779660535756676037161374420266916172189142991639230484973825428942219985454786894825670545771208306069664015175470113984382899319336352288857298115482869135960324285116362192220766798190063884048427152608659071553704971859335226057118104150457934735396327639988723256063689608410315441364214878261192854183849957430442768683851459149189187424006619028314479859226445963347995310286302780183115008930007657628088707768885566711361061861689962499638799370291136195006215509591002663942980584231778964965066275652978344151497338825523633644652036220132162803213500493619597507026917278323701383715764323028881013296332873938245738746245096895082238330844176192408476051027246860191447430391510803777481923871052911279590551749882293907551274408036416932829212553780088491928702854675425466697357397053653624540072223989562013067604811339156349727760567144964090640451148094824868511796216404428068971957629753562236181688850027285694336528800131844121214112389838519527851194814679016652840688382186958683066129590397745990561487036122898098411382006158591424712862298600417189064530100820327940885803857608905122698760086424606482694850486186296517221848751835565288146631275237687067466752691724416729735456956733166771849284394313859957738504850610973138057829209449944463239430606875958119003860261904921098398719699336474633114066294511147152055694804027987358243091859738263977134041141601662377526935772236147756347905552752166482414609981486281328766311875241074174329874362753850457777425420575766273931569840438567729143837835901823517368770880480343742863236659074522885395228357786813472195376605008468619896263300503309360409978222914815147525771837952813848915680491921812383604122713582961164972471080261254592059524865114227833911564975466627448671852187561816294711964713806687771536085417869418386146607485365395525809016966237780000655836818847197698244458732298445308869902993378877952657197280899159793941934367522718663437829079368244403206246396018669904972319031502436250408130553533830653161092378952733391436979259369072869740426234042475870337917002214925834352410157186453983478454517589224123613673529136260171215544108493033216442300759697110588546958695711726320379851371929401448711950153715879163321253830793896944127468922739861011837208514286931971502864690987328481720738738152015911637945123010101966662036445412956291903554810519125343871316001524124785504522454804170858009744164360840375963801883860748953526626950353281648096816794488017615939929356306431457111483516674756546277594216725378229613379520048290422881659995670507607348704290859084996849095294910463268517636522463170134879989376887798420929485129627852301598830153361268342991776614639254947705193020500310556054936776339163283953895578869977697143135446101324961890191705701201820667021165776654146051368534345117330284374109752675183557592471851518890916898948657604164533212417028081148467590773013272547946094155097286789671879618012204433502968796219644048327886379960409838825362938230395839698373949610171235821842177439742703646911258107515945266355464675143678868797822902295599477157643067126525971855615110357476610420964178412476830158403397936011211878112008231745037140757004092710837435401089199345949837567061274097176992139541109521012508398136549562045150243668431133989738587361130651247452423215425715091709831141400860264890539370712774412440669076831670854240573003611786905243232054426823568650032703030650150774804738700240267292414480020515306773270191114548987396349292489206289712904783044926853800283148753581059970561483806927373009686610988863789029557324737732183929682372659640999994766795576053071821618693945992778164452536969658122450093564589944321917279168676398557892539969660988248722705869024920017849027121486353955328059468288469933578566896852991438034105283369383898081065416312507494946094474088864690836521657106852902937901140010171041875820439261982433726156111356858417307628652063100312749714469978191038819926090166461797540691029725658474690450719252449465833527641746399517886169056732659316334124585451782580824490071885017851428871766720831159955592926726211782561190445950693489617572283250711475204412767765750508689367098033666867867986680958545163564504567000982821304671244237580255335849496783455027631075616185676110242006229086221786801124345915647756613627310796173252346814090700110500979458634572441902662005773671790461232744208537976097262686877009464227258685007163645957236063816338474943499752065431904882687582535051569107427134586841794569558271770980275281686202031319544359749164686549228763080466621431318534173986503522645190258054517242379319713354798944313018430240118980856828428763561151135925450517590066090293175341972370373166267631045526770572841082661953953967680235004676392322381988953904099269167859156689219764620537138695769799990888413176891511374346270237557613560235953212929513393306880410662258095597530152275907114307261209980406112049595447025290224582981032604603666107907846145624771807212209453782243796089208478369881533998578438358476233111145529449931635895654517074349410086456375682365245225528902797171999867299638162137834713253882980766128714625534783529714630139379788432298529584543951967680386477081199962158170809443989580382507071135827079833478098566103008092483633401066437851717050086728560572566582490063038166592502760359401420724325335032907153406437209910495544172192961728518931878766754091358771099753068394228329617084806583434971118140092278253026159348139475517360355840894266447493309584619986206812924842999006904953095601991673592700342277058077772579429891924835075000262535753826874832363422767248087114413930325764451626363014157737299135855264761831061547505505435003978879153453277021596044566357030677066100192017932140171479697167384697333397070560585989228309253129526494279536183676079287994017708601760847530393479112478861239694532982336275032741764624321782050586312100328081025353090522811213357690673482789377192908366864035028279947062486247688670440208595385347241370469282593722752895964155974991677578726870096143793390912193869911363019731897109456037301611109766624424400181780650555724623398592568655386116826127043340700951800886897139894921319480765456160954465122643149669349697436169839616874112409269250879164951012251867524836356160571234863846892796456667649848464767165046561266990865485403705281050282325415823196482458286149790041803457596958657165789359912026924047544686256265670714416277114320705726232045705864254864853864287183259235882721005017819259103218621025254290610641964932197384822924672145088027677363100251061465898752818456725920500790060992633179350293026339149754789980559159838740722820121116031847446073130926422360572014068318740741436847356693028138596844963678163554669045752531854826599116179188647506992213268388078880217815079875262709591652828076767314368740762605540277158332846667905622524415031604568648941811259999795035307072839954188004062183769040528604637822068355374436554856947783615062635989936347870279090309974627721842411001764821590127056711820876687822757646769942854113054242846979677129365563719081124347524991889410442389988765581490981631338283443986788305614220699486564370563456816951020971434238126537052902311489174162697598468906754938151368823125531785534937461150504580356678194431847685134829172679530465154959807564116899823793686265452254476823193821655598816897565449898472233608040236215212637898570027320479709835073384755880885265600460111363664106953579734490868621432857776929771388386687549173683553591485305782457191099830298313951375705252562095809540178976954139461517202617649660795210633054864581189033232775355608042092880795481310443083142541175646937964493700880517884390646505986995299345622884978136790056842469066898234803767228391414146393834419705052555274566152430703116893995864095218468006890113619130090893426827828837570563951953301251801823500492931069727258057031966431977564341418649195709519441152022579601579421743329987124953984816432158840168231801567682205889033443405769062383726206054194708302698868088319400151779250677571751745937223847177220508209307041593117362202000388130607888400911177396641888367333204465296464459344197685964281262445125625778863231538319095654286792308345124027616888359652510288292547017458850877854674323354131435813989005234227038800607714317834252668029966525159580526739682566297578541127324599996348271937105702177276790883005849073633640131647993683787809427547616082779063539802635477089489921777344518972910084616490569126445840049207083085260645566055418879410176891602772833725715292633912480905600028233792017752640689351180449779199732378020380548451534642144112157409261171753177525342523126565278956547994952499966134186685611371726575357616124675639363634658529021988359358313921924913934186424541359344281660384057943034058583059516125841208664179704045005570901510314279790145799585671974561364535372447573259717624162216656098154776510792433284597303502214180191043778487240617468128371996146283916642534803096672402411784837905118698833839179026793076495649132796657819771695645747593331331342626077489713671970058790516411057560868039039268658263487063454055157631398616763810774144512259412855075449421595294857398986305684715535148771193322794310386006628760697072692238839211010422054182314187838700284748888389056675063312220920514807870613610842837440600890446146679737158262720291116842293247482478917896858777805977609418186443163400288502645364455135506712134011886907855574994102050120205843693594383384314211879849669579667123182969419117181580494352579524060183758509979343711308802640215428816443443067202863030612449853715671809096783674127520201113454134998391711172535385170214243067321000314413728871055440789582470237649047523203097059606207612027423317301765690320036774926942273303227577627517007941506913023523382295229380423742991955311001375700873574048960493014910013105148285638699842929417364755785529415333794939202440231719427160290231271594369364613047780157046975102606154335602353227271325523781649405525365188946498390345178857443963543580134349760271473843855119847810892866822945772575359784295454349909526907761869805012609732425756673965166418609433503841496183873703509380703801016953663046160924072943622113373553722563179924520868182716706419610045069000178351726815392178658474812406988299439446928475392120476967040089175169800447350134011378005521056304988254349320679964173418381132082260661908719833602171482565623937107277080044260302578643754691414064673799881333062749804340488444339372858514209290714069313278515053469681273452320463635666300917026335976323886142443801882404910085101582522932565567279300996617151675711037022790900577243226451934853958153367620180430790663469385952282763485280737392669541534068128659434699569118047243766089383156219243865641031313405891150807219328673916883238149447760719920810354753884234538967326548496844080635106715752371203075032887685369166123886017735354040091088039589275121002549716693707978718664292201401455882456234241446703132303501281032442016321630576537713870990527259684940878298118615258884925272186032895221824026282983232700817634556129971457746583785472429674618246643849029786530077631593791964425478394882826806550176331623401014632709472597201882333538813353025456539046348310517300849704261537367640620330137906478738737121464525553365835582825312986908539600263668907255056827141000417352289848217175999402680746491418887030638147115329646789559318086512230266369972047113174786349052776694142734227232795808700025982805258013785387832003118087215098462322707431627761529412804042731738766997695548191538084277357093281373760561766937072880612119558068900815993982648764512003321785648698432090637602562999928889730761247741228383269616110751648915228250644546268306417227180338343173765819712463951447878320009351333318655222338955660251647081019002244674779398750108774616269889409502813107485697512863709006577191414377029675485623143832515950385251731366442655028598105764183707048240607320787117705529545309698183519729294115418251958353083363474955997898763199425104174380877385642307717332540519763611239063521989491743905255002477559239394461077761413186765509240689222302864431715623756205532535947588834188411031832605661608570780124121329727491660000489927474140215834370124815741912988770947116933111041130464645731987871069570113548766016847239555580887290897174691220369251189724680591711257457394391145651806106080563786530895784773539118878095224396978001845823644395448244656556278922902372298460832554705494068221878803473178991834160540268599674872180081320778855338243052788952528970977080260850788175268441974747503008944242700277303247293819695799127666762690253597622952462332687883138948400393681704468721851013957132476754082232304378228175049812122184923811060720044101737240292002257194762803149945154783344703033464531637313152749162692772871965807579765624902962412134273947494949960580458288719222182437360162808616446829421784486643308194165490980503506193935373441844498848185595049650263222645086225208709839417951613729261563166641163790862599661958483269538206406102682517040494898838579192421686509829170475839529326011944310572999700948820006462825064142980885784611984385093174349933158754056846184430872481690382849694454914912112838991744269803554425667205923759401508528758412056238186705431189016681809717891902212293518874279092195515518088868903134477084577771454928357845296172487465733320431666064130222407809409924086148619661646179157317812411352085815169918245541054412567621643344107017351203236836922470239475223198646809466576700844147762711278182037067394773027252712992031143845135201994634708981058146681732870787756102442048074753084204104430163487263326788345044502448423109177551673670760528410517521452293493248028426483884846900209944528626464184203472216570956864347798111036622042605284032034121534186240396136792653976305723917678082394197387937396993118579045446878731500279916476825885174078440005612703428031312415940062560080603168967960775267805585158444773757320409868661508956832617959871934719108242562218826890023341053971891760363056471342188593599166100404311956899866854709529630760786863475180887668213990046769273709484748663262578526322996526490290475572655642628171067361227793268188511621382424146385141980061848256020216207964774601224999669672286852450602851380061764826341859670837636160177178787584787211352425712748345276492317626462574367092266211307733555205683386054307054158740244929003575611165555716998579313100068193328538001828777472325091411581985057695450951287072005765226634271771499575351994237585201083275572559101341983066117809208403270159630241973591496606810901929538788649629120915479131840927623462313114441025278015853644351302631195924384614550783343687132109051148727123095875779712220718360713602361416279336302762006615130143175584243644725271284482860833476749411206799900184731931904696130141786043225526710083095029661516123391400723248127406943374848131945857018441948519546090713962540695926556536231923829498572212861264509463919495411072692219061756817721293282395098163294236973124724084346206764151658372429522369301743268413874102094132231590431123090085591780898098639811472423431259772730725874965450798846085036494035563606421360246367250297582588214239709069638947515852196010056708757617434222006881840186782896407971342119879894242005426232263910916080832822172062383218156600956376613115070352539431370438476406712570736598637047057472995577056332924928706676715784263974841648189874644206273262918091863456951408211126211183077842318805504839023018238559619868972586637538368548518808900275672391487967574758714477044963905966647638840555139832085110518086946733442146964388936519874292945007963579336776306583547913440943749848749178110525952934946088696039617923756363527056828663233569387547828496049149559435581123376296279491108962728456306695903129237389498739064645482345265301124597093691663681984294019757039611050180939637076776957461341673659491868407159799409774921295144753643557051040490718226804775346892192192239665598892640138338542564942877508240456558180339798752807500932132516595562648968432647209508457269426761962032465242536113808128554108098613889932317527610005936827481891930572687927052706681650947384411241352252246216405896697737766266947223060479259376589040545108908727196692960261564605692234708307765972494222517344900495881032587117349851293340748288962822868451406587059582208854635662223796926845772708006242862470839100012713227466932910775957841160555232539427550960060760837053344808069613574798661003456942905048742886541585205718247493430292664502012901522850857613745521097273911088254049019546790225373255943701093302223343533679247915548650890561031509201053297700331149099331914415825403937671038561512589708413151515283217981162509440783844635992698248514779982623836715422818506966671626620176160970567094861125093594209257672502737040835833893160975056783035442840000397002028642333353238003083672757694716706320727156328814513540266545280537056163375657565561560456839735821127233493026657137376157808881484169546069518924508977614582773056447115603672340137375123911334222135099520103561776430770908044730482689991779764687600344803644414864134634689995078455510203029888633384832818107269920008898285719368413891539811167635237013599604776794327352194624941833983034177275287197321653523974783666159883000187013548007254996779481564122250731982077737494936934051592615121472524091331243285352266095099178862420621470761814443651682059066937026972848443035060252191404977551261450446572569712315957976429582179683132072049766762865704713117146597168994141419415585527921329165534108035864539423604397634616953352898463390144370977103171885263352978600986693086698435263934184369703188574390628654710685190800238247922659706695796912922827797760081119896191705187657704715480407623420146901474701230072367200637479414652488488002186972544546370568600472326742201969808221422778472139305509963930666588351205734209536232706833519053743235096424169280243492463752913196824007038389209946820797082050855302650608417290646789432924890422666237149391487185204533360509281927220026678354509006721929344835718740048645258436195009455202553385301501936082754550814836776294317346668701839896632736870667173889783817058514355616626575305893492837995688371566190511746934019853587525067274615771754279297665411243066168857921466304826537623629178636344787320604811685644513319633775974521089142064262107733716871629057910904737837639993403176101329586566017868615084132025994391846880266009194120701567367052752104460254246476622255379685622112998222213661949692780512346135893880093787006445888955300930967808022056712229117324496219466633608501509594916809119443188318875572728807260492048422572695023477727362566817426430792407273243055492388314054863945929521673461205934733108122670744358544306390513548612458469235277295559595081633912403448808461557483165110280565969126047382200962429878618959522873019383292859627993498447285095834161821543866108691365440642590891158969812989744271470860637344088950811207925632434391216048670980372692982232485582499570894311086376548403737521383697754037253509308684024083186592189475434254656819933192028697364168763807805594272649094054318608688358706239930380932489377606395880881692788217232840100800778744685528493009535616813369878218813198796091570780060658751204136810551501389914072160545407320984244571124078690275295563717649969227320973453390327493842246971775604291219637940043929139399369638343123810572712316016546238186080341693779232360806484166851670088458007079905399019138986928867886850125467916825295729795090778140077583729195952592307789852900953749693144648856042018307248366816453488890061641848721314017619792067384253885282960239842855401308933923814117570120808301554188871910117122035439604125881368880489293940966294766794056226564819392253637168630106007982286989053718470719552486361442452983986054972266738139927123232697913526781947508154247515825957071821517477933308380538542252593586879001120176971506948468723239775696021905302772913441798953328457172256959513939845008081855050284617312093463323897674396686784116298253664412222350542063236389978613011604606427642524721199538797765254709899138757333709587544460688181033307915923351694002680509969009201681369502875893937714949331121572415902123622515497269878580423624412748789986559314593826975693143055498179506531441866832732881951302751995672175382370571522522917889973898390630173991729947859647328824514805731576623972746812720692835468599720491582006549321426373785365377765776310542564915637728001898109944412679472769211509560728023628284880601982030177055736035503431347690741276028424070278562450186760493680921796666305062857919256903216092155038298157384365049568333881991420375632076289437684602476610394352022944810101404116840963522222446526698404296402530017006407037233171935220761783135003574256845231020154486184741129462404963288983640551545380230006576243147668415333980526779819872375955284634559435087597530812254078311528564591382669854061989075985920268537279230084147530346162184574848815554875180280750087011486020566300511079526262181650999704624609382003056246103553110403422874336687869698965895714605263601339474029550277428860048235899761603260749857047122184558667132271410069788469581712627149938589828585921462536869196078653561335684500757664674333108632471158007102508635704220042755102796922229828867950516039032784227388738111830329773296824160426832369253343439480561513027747565564224353863128341393926559729662026384969453375872939469025962873887401488070946338065979969831651119290880251192560285817304991084121641799684325236402041202666033906135644140131389322120287306294453261319831333565412520582119529293214940536488230033713781306993375262675257342720547182598519343971228475497423228254040766261730855917977487126298870022667410474706114686980287027351481988793306907804051852169828722319131755837755538329306419343327670587118572766871456496475004679237066771990706913870008711630394429748229895181509410741915838284983000890515633749970923445812684118905572039013809374492672632599147334552216665140583847415931793774701388310929207297257480726892748636254501022618036545799496941836305185203348583061388608915374757681450689048305047432310417567254445678677540565353246244263845011254015881133762879227914457699932454902071005719389024332315818067744447266723176645607682348386279213909238724304151108883374048260207564476757768523134578578434649845829336240746480141597946452143509285544414656623672600705710744294714808993054625246150539546672945745477522309885938349227321181401218199372897274783639130242229542283226581272993978869758174293364400546233397984792366191852240226254562010126296227425623817530051776328637553954276860419576758487868293565801648475164681085067253073869350186544318606782117480706710238606132897325712447823979443239268514685587071759326786933587685471603448961677611716341299667336450589792110754601830123633360691144964188387934121842194935378749966523797515391763059159646103471521214656427472391853965021316325911230816528350294868195657135887476772396290191693199167768645873058755288747597090159188858413402314944535163715820461193929538650063090196878114872520024632500585955097326566975940880924885276626744424667263984945494096333588544944385507082778660432637669558899094233921334532437458692369553584084415785410486788230887659149925858776134937893933817239566126732645860588609983313023881770669293348340480489448144118284346563752808166560294729887698489519112897279950597630327730517769376782997599259573447528148628394441893629920990024135806002423326855203253436464935897752706903435988090388776483528114172898522061576657718974599693126904994274595857748900715017710280050510218508746333748028182672386637611059367212151178910066446038280924572444314173858083144173658768637249757501724180505564815645888269442413625697379292255945902050613210392317227946862868956199674192340073901316879381804182128317285099359198047059989085315255060611129029607455276541605554323462610167088128515203185163523305468450163097876868862516095539218201938430432208578808474078482365115168524579205376362858300472488949906232202771501038935424792067272180390323180854549352300215703224048303575168346141950451837704613129450220640492325433720823309566895789820800186133500506875378551738982296086457926134601229336427894129347237377241183471056719947498813255663024174855112544613530731382508017759590020575525688293535410332940582476334595489119148002630594112285629020991982970892267520245118222001125571579240733650574612758838238123948024110404490718897939017921349177985750287517112124497071036628890526745050625093926019965399546707668561456593004672173104967569904556248663389377247350889687245530867838193979741498390808700712484440614848824896131026973307385912498790374187062600105142158390408876123703653713520292948787650548885182853428248410038398553662313376457670923704477054434480282490886232209658664498591943363119205831620545310144578482233739950955681727341450850356502805930648292718529747212853238817532400077625654889901114846834623218046070717582378163621157379393336563514361265578824300183870597868274534862241033127098248694442254632051824297733063193782880524736277279010236575158387770445736380232431010591330252239746032544228425304763924993687412259412525344274571914357904261985598032355410755517179602225731007940379296322417785536177805088049496315873832128675554297068865951555521682850849181846715119760879072356978603646204109197206493004123150188837770458311397629187009238052681820978751665089521199378270494551399204447989433788484231222487627259892997895482574664348575579264603758622423085401606220231239583793967906186082020738486233385006386037167953946412827981719113119614782167000830808950785445813266954818166386256950925231648219178221346241417591335437979028341423778353888920595668461979810523192825766529383288091196687610481858896454424402205427489691120693335345523517307201395279545216123690563455727025608582660648538391808817916070760661386419533907534631042316314346145514954683921525457176523017627907134670298964119348104686248731091290588286930561548550109865716994317948320400204615028922428325398720403509193836454205680657981934923777973992361643392328441222912416131023681238412309400859555943921238902610148002411843673257218566928685211711743895773556713694403655341882663032196737122047784613967242423934382065575710146521083904110580254990574309270936597181213253729453276129255716033811599327295120079560078112053314636112722208931150147192517953524282097046383536281323733050395799214257143099602033906880057835187398188931411813030607371891553698731169760498551140763775109513049911398393241826775067861293093343419446004710929787141898483801103110274188437832920482839062201145924541976522126891453178721214513312677987845560445615959524975452985753522215468171489841451113842508141055013085489623424362849791041944000953541984782940988043650418337571950530816933625465486685067659486021084403208883697917857456235888145994833927128325817566478148930763018318845031751877025433815121721747380864741836917805118542713928305925515203696154426557927433409517408790292846894847675128182899369369638005209662580963095224478411416233470638867515420150413175353850008132877162808104700188346896555554432576568037656735020267265299682668844678106657495635099985961788943244307515831054977176345323806390582047731811620890740012401492008019238695449202136793024258024646517698310567148501978569587399755567875029661732867079490827566132163830257936527271172357649371977298818387650160046960198076260717297338719586498709909968724717494761114101478259018801182453610215220422049819761816353003398859997872605603757975986803073314752247564007571518792201644858905540902200692157100677635924985723995527632014441216849154357780055265954849998512479780901999090881425545314201117411693915483314820573828041454362718046468662629137358234966482875220896995836290036596212940685485088790079706097153615049303070971447935664014903112055308082409502443841987582416470860586489907394068754413110174450351946487233176746260249006611578886109716268850323904256421665793019714233077714453553878628432514336021250189909452614454005268521377177876674943223919259355906514401227995323657387859633667188679821005112248481754029247501366950050475967084418012637345880106622530400185066981810971904908813022918728763660112598163407302581325662620787942939377308834058169822940480343932468067552000853043214053837036811967449736426643299033781535255022524682542776448272604906490826977213886983755924420723772857806701948407548250245903136671777876794582809712007470914103345397923040702124704789597241630631679390426246365331538246802784629998492955829706777036736178091274486510961319478375542147347260977852214220697744173339302375889154517446218414658881740633219251066399862636936880015612905397748917869227522718660000064868860694384334169568976191047931550407379069948054142393140342772120564176101918465198316227552484709378875008888303178635730728291876730356327135387492718627847836880270457848570870734728184365507652351170625675594045614751081746288865138894890196169187358664401789113965033124828628212773234149566257038143667039496496422017426965254125031386671549257792425824718393040622119315529395247295659610883491077311846506610853782237227650723300729864336816764066348271265966113355194054621502427959882603393437778513689665892077747703809123061987976754485388849348861517902298951335515131781694479389844805510160447538729346020810564239999565313294381811817949168206643422986141748888624688910910401578383578904647033850624225450915261785817209601549590419019808172498633323653239962035299833581288184440031231668441282092157103650031779327671655485926788764291194438852182338965094495108299292607756543518139988333500316594418749015738251515349117302529210911907594922425748307159707103394639477290177111179548387532454308219195710971163136558511133616779926745002254567461727026192658228096930167652635367978562181504406855242502063277431207892459280730831609544932281990578760422714125469899220372255809419313290739795298469074966884973028286127683424450940254197334278386371332162982718868028770488590398165426651312217466506883903438805406628761324151473649801132256835245396445917788087746545702095388905755986962043372578858288766430401486028813478566777522316770085281567031351708699368722839597977614270430443387536740461034096265981400795953733803766082066807101929880983464611253521726264746148090624508435609183266233286147657178873670704326449642375583111810861353206304527313550133893258469803965075894599527870986867736616656527294096627095361899238083435232506453540653636670081238084314212916084893926064757504243607733700769780104862268669732720613130877124288380795136823259604935462698754785069760870906213944467098705043539971706828557773245561833859672584152958438809541003637976907483263922322696763108630399810679689234160825946605411965782508337910051764307196006691422677808031086358949549126660196821689848727980997365188267877731053285059191230360839038340639111365752938473873273964758695119039096129214465780096562782308548525764983192372138419858188049149140812202983666476256389535915309542442102381140094220105435873360217656075153784198983618305840809509579232887231314482568811590029308704194884195222515577142536019696000711634744743935005684563443769003357417602825549108885215323925060878448597881672789669026317200106720647207404594248900508076282339720351383460410116855895150189454592283258699909935831848388833334959057125432197139992855669836826270542692759878814989388955532775219571619884675840926692371227242945252439825238364176386688950239364876702931815150767258597678484923374584494308923193531065125047084459459822932339044945520691951947530503597462788335698461320222129938974906934284023355296263560276993322927250894302020639727851055890584430078972050488044129234894746728867838915026228885291287429527504355650209629422473679346403525512695447933149314320123748438652466578663381046029077025167406752254703544717816861485292245879861896172324465895281971514061410121927327569484710478372857694609245181691687995355804049841241104919757439292511009593142809765921915887014638655140297759601295358470076861168292264437488830903589618611266068498281807295600945732186507395063439570125354825915035368957714669165095764450433626512511991682040885348821839921490374688320638921958396771807212607327885619513135576575243413453665708486593415984435464537694535909031407965508106604946822472145183834665013178906741103928036189001441926004517726990294651912262530275450380603248851883604793646322499054825804957760197408544823830902887041597312047031639348365489265472302515290804077270773036185182519612016624249355133908758669104232950252196222742624256671592982893040431190067957041201008409478265978836503276031030284843132564211053477207583503146038617532938273761710329521381275669939737444185337163250635583905004764405043184655505073040899038926993628862046940269584431506310889786433825298791700659552819878337554177791762887619777502524906729638062184794501401437110271575943654040883382581796441943083330859984775988917685225290274578421689690036843713892403690325632174580396528818827581867775090350407785677282152803744178285539246393030179355759946961952814180998160358562272455412759745369637536195570980535234513266574644682623554839759342756845834543058091598382508947389287692102976887429987118954151732043580651915856132717351681114909835419221182834703657288674488155998026216334728734343000146176038786590013688025581277660263460014492081709590733726661036073624230859884385252469347359660993796975691783492560369338961564602465312090800867027278477415610360008789753367663944924562295092340663833583613251463932391220211410475837363815388273912015906594748848180494898363656362234854214689440077525080023077786376424808628191028182034711831743730349334426177975436953771948128215642985465056109643559380311477664303551338888294851698137863875130749910740463176728759532365533291265947640487356284411750797139047400551332393896195551285697859802047769760052520606805483520547158124294736280121908831151208169368170922796178050408945578359913093476322808015149969889135696881361110514023419878417059507765640482463118885901480833776111552376819383063571431940964257422671435498184739540779481350877889548854413001331746125100043073325401075314242536243267779801060578340073046225673594886885619126692356012329843557726500006474319751470222670528280388950057002152053908057026851688179096653597758126368885914769419797482970011325857658785726696799680032089677189952205029203490718021401691020056286547729600869263802729111469401471195506772843968772487327158127480428597810302450513289974410757541535707520610369102909431370692300027584895321251197846884642301068044903732891922605837738861309121071177058775287031874653045525558154038878565241732495736977488760767011950492894183245918218070770062249502878998405996609728435314033200749819370748032083424556361863165997415001581892543723584147565843571193494334859756354649191752511745608308191804386335764683071924141075004094886850106059961850142045861653689695511475873960660607619517162625250236781435059299927432365421787159533803175923627889878294913269018960179615887369958353631530305030483258619209352221459420820741303977987383790906406212477970343951141630488008217868194136392839249637892044245671039999528975670486179028806273423845473978447281935512811607338126327917421992832097218939696111281497697228426437027540750347640790134533313313245649630288115713553811281549952388263090680098257040325222482141895457311947105049339274555935132042065621536892949366468640905631095853659861276550296528504908502547745982156692951273711332174559075315718029099432588340538699481640996723253122460832108993175248992344381194820664316769432057280142533520526218782872148908350656108741927216443745740883270167599430945650145995388325564824040661128333322934694473822981475820213179753550555457762429632551222563613964468549978940344397493681610165919412356501732770121225749665266463117307115734836669975131418259115846143281085787581342173761329838207675195559755419571723966422267645474652002119862782287820240364525990263546177059646470411832300096579549024871371179156318995621081675428352688809117989183270015100894309335022655098804172681489088122912870829521097664154447618330981136912789774771229802021332127465898526346719266245553883192771449991408341010595248725690306547673218555781410028384420588904146821096690543375552065329134232041114944410077245985564152890121622584263525511470785955532136098809328950696448376187763252594271087013146790767502763259873257667911904342826270514752453649423116904215703592269758532102311719445897478681723215611444092844987448122559723161679444150344586844820617812142689172348256874778766278361683677432494087732449489886910631126003804788658181342462107208455447364215184728768745937138298428035092082752117689938459491096246243754536774918274654184673474592704974484254733962575419899408081139888096178870114520143244990958695292621402193397300316065173591893933235875413795465408213880912747306543545173566449093275849006172638897645842184591345904519770084034522599909618879193398402889543235627906082493689415463236116775294038268346235551942863309956512636968001156488804892946266193646523184340988345860273058541333874462705453538350203975715425221285252128218301302993326617904122269238706146828426457480684458555758248668872135025417309371260417969124276481319974611402653413800502024718139556939770266513648400947926201458975913818166904817723165938055052706907683977461845530991260231230083999798410760478293851415988787247984223909143764543073187654518909532650231094774263686363967956510279954330455019629951028984142909911558001888557617770337346744546784876147552509669944506590337393015003131608383205997298445703580164953993575687340656022199212181567045592086580305446081036536888051972130577603369779128213097605368580630079515176056476299641062473983496958999491685187097498944409345983593523263468128802598854253196513163595894431454200681572435605398018596809437149428655669441490034911155697973461530423686606894504700045389192164359456291222042045415548339781836115512898331262102507696743692985516832037854186774223763371695145553084726091429391925640068094877398787536390431328452109577870245721680367654253697556693376916893721596826427575374494974180054169944270856774686279433457412781934597508929237014499253445514353396620616846162869463188341163816873263566096684426618168508783583022017268272795159491962988946547141503006699417879085694450273240803777842715034138537355605050774296153837658200559422209594072775101931880464424558912948593645383784405015959209169180992093220851226729247492051440151722161097921221026915723023656934985512430923066030593657798502968717352913344997241629647348256737640787833029427750736521959651753951173284253848099934666697011854131164051894952655495008143931482664881444646402094078323539342361234953898624815016462628725140684415403232410303812921202843427583407715871458381042016886254561952959225028937503794382926040209740029765913066860659527553275106987944541433996555161949869209406591523820117276786661628344383124816662520388365762541266998454645663056269563005241453508164490795914799096477820024481302876707249446871007039715991137593470149710862440766515214719893306301860213050480860703451838006279564187122853624232806654123242592970910977002929721219947444262285433086841273379116269847520854823004156905721012202655469803567154815773525190469140430937889334079783576638924079458310538093398617146133213150026795797258189622905766151199162409991932632150599824681596120350861961621851409553835077370973816551296513520263189529392435623951453903175442236331306573901918412314589429905606842925375989779182457369869473304239369233735211154133584762038181426924586220681605170577372233329961192988887052130039696680004463367180969237088530503608758432040275575677296700500709344562921987559009851741611710104989587970844695219578481169471998915071084496263525467031605791774211693822077220932352600571823423623934394111679245840915260616864130025591430568111117797082777361518323078893856675090928097083693313274270041040190294614437259108134835491707410473230297562216932801692770491932893191411149088697243890420492218758259799706756439265596940213811426712898167295742804076468583369870354233990641206190892587349011664057030824007649122612850101872935100246046182225683153238261980699821183840107194822899896073720109075703401473266785003056258389980498071984977342319019174724659837227207421085576954325059034070334050482242261430876280888342016729941844956162886958921347234185767972108198054618158397333178314797813928850648258250881896576169717918714150170609154500399663989704484130921254691232004758442453751004184464771049347738441125798496196654994341689026437129512680562302820852708780439998811778775264384182314057616524661931188606904051324232395317331395144937095686946093074693141642761616609318597058895663525960237753074830431316525457281206579123672849821857534745553875476826027002266247481546710531782539114273717207458271650962764009915847504336343182654635440264040597328437116507225403265136655394981890509934793798198580697821865502181327039315360049815369763298650553658774363415217958775612451858034830994833708860254890915258282377983668348739557098706627632980572519218791453602855717737671378299615779605186852177462472797744589456125497437428319048153508095360334517620186222460126046248802268144890302086995405340681415438518493965990384591117458690409573581466833603032345644628063430524441222099497111347024145602396931181520775528928748789363961892837294870079331117133257969760228398317745577545861299311051810723969487657942820375588446207770717323413389041519555404647557632702765338010792659045019913999111486319557132221245993272985911849735013224173775276724983321615737118005690929970080181244718689665787726800545551153681979719882684807894522754243348703672318842103520350485308724115445938475496586200922220756979932033803693719701186206867854194952555633246609115865504217061767650666487720230673352128712295728646285932926867706130769255514137249340019276522485394327005956196410907039162084403283279898661939875924646768939114950318280834793998604665837250695021325692175649023887656152401852170122116212746858948178985028647447787288052235235682285203593722441279936637967428244839643780680849492301720946887777425186607959324537172908026139941096976765466340943127143436880658920699238896633992377814747893502809437366027590036462416130091873498595963428047847369567350496512427843588542222945033800113262003971584611455196041542091202354470533820147803874100072252486231838881937801921658210374416709758573537411340839395522857874706821842943745044891824751438878123345558634507762627021771657630862420917470500401708664012755923070392599025709615495474257433275765180189688338285495571322884859164029072281974743908432916254992336031309377259116244716487414226815761994432461605729560600777557271214775550282195708859876103086165269974345677368493453307531078550952036834215382026867636799048087551299768255483326900052195031300284825693688810115009007083340100905416054397050104488012412314251727926697809424662461608953113615416805309768800790622553127495864955698799918885362553006113245833548285750636948822557373040371925279780093240196575453942601949749977794696391673674187369879878250594371175061368451255835800714655979918322786715428353719341954906222489359562248723500159655159582036027828741745205135745484097432753825755521956807347778912724295252854753774163105437122739220305406631653946079295428011949722859868862620959705771365767457694642298585674040854993161468923354856786331441819221221368862997065403171115279792138934362829963788413277829395098920549556847867473011837384550561314781570541630118146051812583181526609932668565644749486427236111006399020153193412882598321073694949529160862702977939042236362515914082470343247036819246398275189526910227950314933730899837799279245439411604715911973315412320997178133722888601536303280053212834939228219427985955455416679258510853206403209848850627815661621488128466767270416201689843688069485991007452575301982376453842056047226797984563260150554934161892553326356677175294303411190187870568223554712015982950289360956336836118560837692702315069334026594230419562045967244077011364731694969106130497283217640846953353920648150058350182558510308549034880383374818319442188130958477422037695226471444172459939593411907054416363079721417685593828641120947165620194101307656939546975599640082976005354188661788231110201727155730225505952903350137402586928542771974669844636030298141183451832193293466211910497206119736836295670334194277916762383415463921665589720671002110390859686683905281737196527813921345015475687862913183328433454758072201247546748768289818923468803249712157862218584652381817916033876220544502610535277301691773664780882417390884452589138524041891705393013605620502532289090913146599752230465464962648727050504279856355249995689435484656290533528389052407476828234694425124220524321460496911515995027451192115682913619877757442997508199457149787740475436646671218367186399859386477584804973795743103135561069226488933237941886210343030099671295756250603303590322176674941553563372391168890323669273923796055594782223183502575769569048499578355341992708004537102909673080487193192187349050957832790929334097901123050953551778787974257302591266151473309719502128366443945796395942721434847918265638596525320195043897241592694683925242421860380728712661664237383521768393446568942250005575813151840308505972561946962356965072584850934813782928372217068228979426416542578445420092847486454285138283727783813351358194082795357922839889739911377359314873156434126855773893828279744037394038580890547585376469202656818166100037622459230782536902831976059742661345582628952000747175198661393484522858606709892291398600737672164274502184189906875128210516407142066063895878028324319775810884437261383554629612460612810338131101281474830649250015655123906492637605631557241505944464475789719349309910266809570814842381048841857925500513676842913511411251757939022262587400884536416338712775753025819623722715907425554757340119363083529254662769457148113386654846390212303691690580495406784173105594659185983035030658313990683169764838761011995193662536138889762266165084667337594784663042039384465890384648834728228452379531706994116136410819446969967244407469283923641305679339230152919108360753578089544072265784231508405883419547823568799736621842186804968764307531395163670366263754439135185429397386393035047322416695286543843954922710470012092173801038357609531156944974648759568577239395946125495083017942186451249760690958553284814130398283321957441569941230839326637951758977091254917797311845939926153452213996141098349106184057736741482444413357246529150310050804462575025374527545985515392948604233021458280713117375319139408935171215518043017046220554479737669667478931730962714817804320524153739850169540905116883068125314868090439523232437602316225250438836689868570661653066181904568527474665587161772658516507341550659451756136678425907159518526492326611989419927697833028837779411117501447410422908089023660833919406521113932372676135978853892342828890089773054733631268033251710912983926148497000542686160299429609638488644406004910294550396652917023423634660650422229602109878588006944215698577053669844841086867310506963029609061934231606638748990018828949512561559110240446282053159377096842656480346033781731481405384504499075920355090644590990909144525972567149530282726452152739661221826041346147501028649224457265765754529032405471437060123443121775206577764552719001153953342505418075391219150598379852615733705162295441197030788874317399891457948253499871589694378773437376751615663954647624352081865315975103666897077758328386505752358050171402323620418208538777467983029508442338331103745806536419079447497062847706547679482962188669259068217600673139160665816078583284251386246833062603366795467912492230323889295687728947612151536396030940627653119766901091138048740549377875158608275732363545668580674906271659721599029921867086138968951373706831731568009195548277920465055777750668885211866929765211039077863184433695906723520283999964323963876867320361379164668679503112179126791204942268631969522649415260318384601653704509259257880042440594434946762285550854525566020694226877321894633390276715358202225470331223479856682702825245988012346839537763551746891225367881238189199546378441270332418737376332561304223327118444507497424223782661970461040111226532758895572384985057636480494092480401111627708715552798840790361257278835912414460810333685676978349582569733383995616923989000850293535342999657406963779502140851903006449547774735484116840551028776110864198567266226787228785939335839702878835954512635880762654146340514808297800269911581141860547629512881994308386653204842674055555102533227461342219931036194777204952433882117850322504622922142456955550033137758428571026505201688448712793185637412607277411417869893971542267276322865848616967758187395294670929434525373350650056960134607318025776790991551345034841583984675265057374239747147481254009357819535459734584707650074470973254939310359524408780242766698463084264446386736380162865119392598513341956303926559571167112304497992321173606848975917558263162239022622489846228657935727962491037640382310408048197494285927024632127390069050749887731732188546893642438942096492856644246175264232707272793308155715588664841631953161411736909081320190273895284251549967224303489023763280543729161398227252990836908892497388522995923775450126780887326119546163620900490104565727238121860734029185447799535289959211945518805213829562617740804127330379420903678075311256760080426049507406190564878080502343735589161553899274656330762008009969129076100632053732312693727962007390543343746221025899572139788919097031755019735593786924046361116027206338338409032239894189167224940658460386883599127252142008927927430986616350795728379051438551387295271129836678961619181394864073685794226166711785990514038234729140090097922491302499787040038054145640642906637903922523044921716095890520281781615990117043582891340913588943930495096599605113324294482509836510749851489015128230584721525802518501199967290923019534159104663497514809765758541954441938660301023932894081909479278480783045240452965721750860347225859417577247107124427077986907209955806822251978998647932984732830779343237408852481802412599360762807499552231046321991068299808118204157702024037867235236304158690964281330364662533949494024268686257659183352224135410200488785056997471685240672865751943425706257347366754736503125572083747217077731732426112803077590654692395022906758282061276734984710635197644664427167209384615607255682037913752094903953881686272030842192749330119689065021855424299174257922262045088519366428928772287755130094773646300064241099299000459324667735313744405486684875877715788647542882513257102499583552305099040681646341314573144849393869833134777427352150116669767950323492087026670633342677121526488087953659299373518992420672251194807313265923343577207964529777754867438424768926160681733916928124635913549460964501115658857292538244691171975572851078655298454278716583023412111155300074663525550482452345410485731877910034762330588407257833498442549880584587627134845326920402256838316423222370976454714050912364134406361959220500003871490019578335980781008598886055972848479116532070874593435630802187162111489589626800897330821420606706376919309905812237161050163381359939183593187130304492618018971089282042610031614996598585966795900943374721233344389517882139213168961373456008847211834055370417390886550221553897742480597895417234353658614901584283694749006043088952560611138755438584962726915091086239755480590136238040358262600530735745124871077414263477512509773977309390725282336321002648028822972706410952010528838078676946203715639576047661145005808047717642728780013131277413244302723408851298968560383152465747436798237046012790757806089242271283222644030799006153231410207971238005338205305121911738709301983853679081734700155973475132833216025461225027248671258349531573900562069353295402359717153946924644274388027596148649412924752773374134950714878033537786636311856230615348675776706325490186829580038258788485176455630870877721920831838898622536779155140403649128193327234646410410420881109312609839618401855846370235435946724857491530908048594183126096729940667484419440084259832175480334598617400200431378508286183299756817765710311963158186599504906723797917873672190751564065343776447630621705766985670874922707502808767246204225353894474142413436311016643663969988087857335045346724540669218104268811566954384513391960569769130745213394121929508769111217525555025022707891471738006854236503032373748677870255838905989363050210087166469785711805166173156702947958588442627198410355094621510005467265326668617442935116210475673902419773096614724220870452411170743338851786662622838975950520312887201895235448217394782194244399758999835006078041238792193065679325724872870197685892465232506696114739730088004771044338654372268843956825008857164813094684461270956543139557547580507935142675631381936217024229731878481227768318957407048462335383621659586843308579628537616031367647478472565866092667662925760874527312462223550441586597063699892768170434994116812797928212969226927665070866724480088023309789282035593082888597853534119785021182140046842505467402549771417333366895230491683144437629773482720505996184279601382438264090054050050543899562203257694031141072966938554123861845341651357163376862041548822631196037539535157965115615791687520081674536224127084386082271549504444160687673507152786736164990684079102050438446012308262194961869244003083142930447840925631186320777512643059419959491771706413089068677746385439177938197576164468111066389323583618409159532116359788090633295173261028171014866694864396113101717553654033227890444701001976312123410764636362458309773268932593277419195714992449855964697617304672915269924740555769815934966307737547040710403479749755177108493121353924293299736757220293459757588025764039177569051215528023145210293130499653339373023200920505409685661504058680341637934252197386129365897185693312537414578482782700860598921654039560817318742975871919106932757121799520873208269818635984600672764338764820681561136791228409737944035561387140597390368679930474236923503106534214666419163614019702393423257526942990274693396440815930157918795154429053346261410491553156884501255855500091332206111270101844350069521746173065959864168810938163042497608770615457839544937918719179778214050225790496722122077816023801492381294008546323714040529727769335214212268461859782117443585242059109702894198462468999523242239816555904667713228763619601838487431946537298122963352740628643961041759162471820635419743568571300716754368106285383585873611414883279233104600613445141308647000247195647216798552823676900196362140435649853331976888064888620020461779025580227094968342346108349257247535445213392688736939312898504859588223281475103811888094604514397803692352923365109003413934584678504122917413504943706196058666194826656431821665662964560637334750932895534325174972737913622427082393564558244327306600773155471301780840169319607522344183992270011897688984844635055266072691642378379008047941617684334383228458537684138118251167756383889258394020120613567446919670757527804706934458182769157795686023249588411602895983784051152559797838818410290147847623450896702896672888896476579778230699798819270883513493304458981708646817971112838182002044197499117721541034205165427027031999846634914695207615986506848852203163287322590381506483550100084517784375450743614505922194240241872628249035634126526431192655030406320257536605315091862694230400933310248298609192470044115776935057387004285904866973642307055861273564020540482677643880903258027885087690994809257329017331171653054678392387839859920844949442823545511110755671417941567061971198641995640898197469650383598560001537763197865942684706532072913018346587824492507819878301123504261299130804129377867117144174364941704130959984277496152385231195216354157162041855426172577328975427489642524558369008052069719897834053279524962832641569341561399857286730987422621402885181286001908460323175013330780748312361641782613805117793371447041481211899591909802237467877728128904530357995934005672043056440449354780269634646397191566000926368642173474117619390641454023179390631738285189036523986290070998309862522489234371226060985810304095763885109243895097633649477485841674766441412104426996776851984981650675379539545328708054990529826809162734102724026108419569462737591630570306936049304955176029167714525673235033671309570781769610890255690131338374511581734260872080919768962376158247232799696762659491769689035000181087114738574349836409909279336945471815629034528700893317786462600184845835027509394656574351979662469396278967133275300103362167058028060203271745531773549327571281289722301694317565952958213137736407650325824120958394227661748987572818484763028751860746198159530914517767537614228781538324691582039685564713187068248641469435543418642408986534022652979350425310530745564744585987765188270858920942199651867033066055402432358530574124988971883964658269498141403272968040098567409447220294441441026819291341109421874151328287331079823292514506610782792101218010311197042776907694303544975283057095089336353333318510969023890698062935716343038815074851498982790171065936441270747611298518681777313704723445403745600286219167913221365782707024079509967914180334821962558626695197436112488465946582728765644989771594444211823492755174989682744838464215544522543357771015711153126469088386801039213792718885796109842454401760358927360092579861974341024609362898969559726019190217380700975580237538083550621119923314740908846814351990335032977622554102622476650244698571713535726528821856861123930221223530219051627735697412863498354083903277354810508071163896557294476684579217411209448401996556143553068983086120849486986451710667370769181572544604668202820526485233586992499908059551927828814586941368229897692946966657523038260343104885807605511708300919710119849253648072836156976781877422150711037399536927661524524496535091003452889597770297427788541533978588106607156894926213082779492654943621073456967878550687385561133352065110009516722384444353315866717983535953576451196680957452740004243401544004906266613796295747065274075783714609400233265567720783707945010252698047934975995363121472488812065999504473245405295694916113543765127592357126014280388914399713206284195468196885884175292922668864426214340633843235449035871836990505347094758449581539405452988391465186318150939736233214054509690894535311623502316264542428788803218861917253625798092179692510697663155348667212890255353427663211799541889440802311171241078910639117913801116908415614710432641203243520194668781977732716307048851095190043634508471386726771537892816556212509319933084617355227009185624196261048152846404552681817698323603329448717990508744856244052584667057078202967384386993693546543645644472300445362273752665314529921962230988117645680676713978543791658473209504694430438488370771865018432569270115171349496173698078242694080406450092250682393379568371761215390570823858548291004571562854052309447709233679921158488718861524422945904780396105235477529451843291821776470401267419025562578477103968755033652996221448817935264058678133326215920913490441894123125521539959779526570682574624076495486611392481467006572277196024957345080584087022130787994543507255603602188951099248370331300766185308525391274076920389698099676917560701484757577914252713802209415938774884940496468312025721533555806488881999490244912487443870269648190456178567151821532142145868896572634255779575626527006292978459645061748964253000210922479818088894625167573273500296771470503279987579899629127928746607578196479484752392035222645594063126283248417539754817457010657092602259317232087409327491400979781869702601437421478631793853130815571167180161841988500770608288114464967535146217195521385239251104198410816414048220442494178279538017357430963694436495063518748203960509107089209844314167840644619109367713615057721430047516429278462760612587932649555864471865902984818220160210049977198361803778211895956516892253934182635010371363211577812146023709366910632191188391695270536319994253584490860239808314298724363262584106915366179150117100345827398845023001900255774774312143342156091021425630047292952168051282215647987913148361230334611027752033829796984764875107530862096284647678635312023068605098718087512822655052819891699944505458252874274597063402296033568538869497993828280147109986008705956848412151964733434766337627435135600524136353719011479120299222531533188660251537706833101548890999536990171736942984470666770482793224482341820656742587914678111518974774907255848915546647004332922203989506494527707553293229942626743329882814282556896573326678657561933719593908066429191475031113284467514873963577287934298975641336042658143050921348136798528882925725159524636866705264718983961963598492113415695319863804558148479071780907869529272791840452294301029428367110839506348425063820855586539232765452862272664883418507487413938549307417630279555031029081367706943028970120253177018494182091497923829631656022298361980348204057952319381326654609721358839304485216628721435257511372368450592929824956114742268292183057942653346922593252263720317019199984476757154104896916082005560929388043856153939388610800038893141551425198807281346757093933154300525690378371445159973023442914505699864146759503031812715272789425023834667263317333745588099435443950036775670310919094071611411540557340884834283353599319214437106006859366026469934657200936031623444263821514244283917159614658131742473170515632534823793147494492006979548016468218988433275915280709539882126839893642318106548904480489276848921854710676978861350333524498113861637395731026802516423133941154981062670497502013612853271679450641310008468510052112136399583903140226191080728990981630702063541311154226660786954871773820214105474014024032631964563930096218551712914326524427459441441827560214455153440454002874324957770584494080984033027258180963179652491735070149484668415725465928994947623637005980489039657631382402769423666262269015147894711690498025494902525878222068537260457330359730907758353931703088870854234953122303180229287959906405017737334421306274314312861522090518089923909090287912051223118684602413327860975002467507917126057740457529256436482325915999316644509890191461480286002548234387196903373987053600376311002385030885515627394262315739071459324738698502972134778226071168099600604407499093418534005721719934091308208823412305076123526962124545508422240149861662157316029979040149669949172746237826730178940942495960688437738947431540589473271470169619858250912821571405308578466191861322806103650342003901308140379286128430225378811284489468830537103303123570043462316590768763089808395415916852054588094762371192788990746785753669928142352470441171665252891003605377559735588435425423746517694185144707314525476876928997005954613496803973823293623899801986205650562460668131022520368054832484334969568965310038523754667587856799400946425372666150546757091298762361926700835987626785550302863066879939226509937739884608390668208206623012461299730378011574829644982605247059002013885624414633410581453363132825605320520059292648083031321203507877662958464544189169537342428139035162929142250483903626144425573581074868348925185396565314981963055712419995035132382195118696723815145833934908285975599196697217045343043273161935718967626863978978868443886119041809441858258695796026345630375524775831115431147620359386985073776707427651082481928976810133859699786143424430006768439420759554957407609325016782399296004574035775833310658604115555081469085084839959586167662512905315303224394011724448874034522407180535221879714738531321688962602853125348758585567251370781868635211696331105720317223706046781195086114266665602658062908484881723155659726462424913746676244614371952845693522156184400208981301595486002990251885850735730715293231231813184991789363734145399134110220355654105101077243598605563174827784724013798347463097245382607007851025263816602743671093497686779609742645392324196337989768248442209801913305485964528681424629087353705341164347696964729667525830078693093079849842711687904408338186326775973380325268242243329680739506418067156560271426821123031234294855165365321526945761064682470070767932911101196016546877992087415062186924352558605660814350070546365728251289908986529882762656823007437703610580622266454799657003762714425715772581268682546629468723995640650972832407761438918770424976762342214513091793687746062916851839024680313643989741696135882918597365538906457751308119345519829181491284576515229964072629833896418739380246322470736392768595129132896252267569031289898208892471349570142944686822655595752774582282842997280977738321273253051416992465522506661465591357598655474894260157123808779428472791143722367111530382747753341424240717948860202834057759385860474399509433265113648775432422147266313648590577719435372785810437183379009517981796311350895996055705684217532144079895592318480852487808367550068345948393424783285656352476418949336492249297708858162423150204913980435904498100431493233010594490247471847639893163168444347404750568117237464392161343183812685470940210927957187993693138600003846851436845821166800218282012999174809263989098956653940582958886002827448026999169801064240492426581075921272469063099245607421661169418389720402845531707331523151114205678509496575612039007683156747627210704573566171878402962624872115917692632706359138767846553619998598318230451455400969742685037750120083213320695886019730512187085418438806108838143347134325666897926277024434199218076863100164857338404082407585399136557908117839085420629330681229472933559716393679462033539152709063720694673423381513834269471410243982243883086676898962441571506447479056693233180852464295629231016005111864095688006805225939654913797813563666278658482540460687315167516856587130530521158705592738375347868908081484472246840335277000011912546712330388861562966960158721813302472824787916219784911643328606722244635288310532085836045805147849852094422354984713141131881735244076916983817007803170683363615105313355153309584662365539260080212583362096679555444629622348692244319084746391935174960159592862044537991279244395476191279923041584432891273052169124081319234088661680918543382424029454461017088275160881042747219249209453946970268602852630794031070690991309220431159645042981910857994426090015245142428334158154882276758200364152510502790358004805342809230236998208941459463316935938990700155598350644690822444986197170443076286932014459515648487770125948501151405397979633930100438405319067907436471299584718332138871109099823566722126380548683874189401010754001378810183931591488087478658787950015155396440761625775081863582179310117261440466688848182194560440513792488319715457124384193438967247551444236658936471851822607188363875070459294519811236411780972307434095521941405244642200902221666865483560810185144317155508745203070668135820388435215498794496039494729606547080639824562739470639744064051378929533572858668999008599086906703943434870800817607140504325690320088153694716707609996780837875260810732992479498173332139531838778328235916737012583124289064735474215088782551498414142350130167267508217911100255797251742760073937319214210392603297081076981905898803891618138257991444343221052915690578788474582111038266054989466937643057282009457407529253361163657509360063673498502843887265817107259941078493030813011758648611583290660573274270603069996948240058608640332505107457077136203520688649462344119056316806989240695412565563981942471888922035224322609723175488853172826677391037572371010673933766380898151584267604685203620367240789149018792735561807661755878181538307145722038817729718759389566296149750567853450813459765928283718236719243140097410543729784451016257543958762457903820890293493150148104836451353888928030438603690164265892316220721896665193559162749795504800925551595190461860679188081872269702979622020888002487787177912581021178942507276131979543109624664019772097232261002686374553001861908859825656562652793660854078228115251551182617048217569561541627851396377824799523943593124697524369059218677942638333073373920923189034739655757396649098205261877727084616955873614559295219812689331644338239731423847261594530885254088718865776402238510510879731017225228452997694761737582499526324714118173016020183311191811222813508856982100481816114616760485187369995611471710489695145284969675812583453612978034773231329653596522390633574214202049904797794971403687215328070643579877121283723586718612328481014289386688570376207234844796759291442195386422012108207798876551102503115293716932919965153887804251625602574632408504228844997762389469269631528657293741343016936007603532936970641782778773779306501056973945611621924033667640309078354145513831643488944997923755781587501445520648693471308649833007389808805689434606520734875952488738145285633118869663717726065392901299624512136216182124975855109246086067032927819860265252326322826483572273239183834925820212759389405715304112736281883610271502536481549937009962498261244882629179867282497649487437523772188232702328607878674144646760756001820948906734657407576764552556364224302120916796372613211785524325445167266178454961087379037460663294176926463458502392755446300306386677951156431097661700950080536746629214903192289315461344795220517567305078224066541216430977472513044952288499254238165437964069910930372676864436987715967455838788178236999390729136295113565859212624706051237992070984453068067510219235976258038209179599403622932241600021449483069498884798402571157588664260148826172477609227552782493180061245468044327036949428051996932474056765621398689679454104577806793818986787438960315493080875448508708413969377697387704317742865816964018711318755551398374341494804367385069109968928340845548658831507829804444292178135196816520654596288592489947217333292060737007254838521659865898890770988354659504458514681125195787272983135614348787393577890165063107586440694448397384650888544124079935717189272387604339267541421182404624139090542938706128239046744918290461763858177673659738693310685073570068839226144004967522441094393867947431047301757352214306870791138992751983374317080328301799688937442731252158213563170635121945802432086185211252156360948410862749282768825625016862899405981589304199588164286788710762011095607597412872305221317126050716005368280281377723429999177300500943273641748740893193172289404803345998552264108929822154491181471363488518083295243711560960510757651097870387631281243959587830946173490398347583369466057915452205895914405691865609642765085245895705877482881204132612392858948735235603381043140003572891237856274325025046365007438900955727406369494461883652866605437261524541722058298308509659364828419586961691157259324198273583245853831440167068161487347508612648751989780776187917496827001171248189184661389879780761149572613782398415346224573473913376690617788060546347492480215010001624112121713945435621200002729273788090686389119833516081162870910443237307015978376805284281909521539008995468145604809347727238999210771270883119994083118190220414788829239645428650979881116428598216955662881290310706500009320237365625675484437417993110218176231008020140461666848991344989424122449701917555764928542399239724820650415253703922881058863411919720344394148701657599845533847868765677734770917667146803823673134016398284078802053495468329590014417804615539401292235930446998544589414974439097524012233423549654251547589721418489379143502778941401688528164981439552982955401128307290595547761225000882002512272561369373743769265949008737460443447568747917170247900735627167818337666364901040589004908919037464562017867738315369910284000822875981974853524725020143724210479284879675997055778633111140447469807882752130953990808031170918739221378473632263320076649516350510825897887220534451471505163639234558623587477446622427362128110925795828761191662541536846573185406772626628180746456123652705702613999291616530551980465265030554548499179403755411083989139053949669149956241308657657440203839651663557873061789061420797246175671478853580693617001984457984350911655102002273651984534847982496446187446258304767464826173612333863217678883125049127792009266884842381818548089727394461806922746549046732109474947459117309631426559931051181446498491646573488929909562360569180745378234301662743162359500345076371867998693071862950698331108755676876752095740314348590022881123782362422610194674169308424929581882290971159753012490415058393440528022350651030862184459727403529392769896469538546962372842851718870062273433716976454998828682355302327643503763520442330312191859473589456042668354496126899092401308998337870135124523948795384596903934247060924693398335944514283381668768390601454197079224731086282168592765472336421218078738429972932575872522741969211008889948349564227696402311427539124474432419589510468682513841571172266308178034083469444691605476793293889420433966208647272271340585034694769837848111659256157715352284042764824972916255731478640882004014719734509654777030128475568141016328618137324409859068562663716058890707199676569693695577718697000834782679846572398312806248566411958355946686463368241014706634969054555589265162962210076841661897345442324855875315765411575235082441977440508940990094515586829666106709670902421885672635130220769461647419610124835004883243990996858554186876677309613636285574990531672834279055520874941700667820958305569962494777334336350713831665009160994458603070199120636209472616281628154305055797300197875513378835228335930191701502437749238293956379358962954953801061735070050621153794116136924540177933110673136807906291585771153435290634174027337465251218836939159355205715254803914101411607607349325512865322420066828708349329470271123823044819108063670170555516816605161708525775389709427072966869302260064896574146620726150470861373723724645325437825575900925675384226193084201930141705544579737519753004704168611858973324224553893793995888972573965585786621204211377058501004153632473380634849308781705566061533411288607376743432071404068751768453010249189447882289246709247645453578114727268341198125157937479385901365363192228537725907459494891650089063531037329346048208127547665544803346897509941733772273008008835138661216396087695080332774463275202112383366389075701736586883407143249573763761318902317957201193318346840757130035560035891019144267179484864097507034891571557880121672194813174243874698484019368355064257538885953635406457845952580263489405368485245661207135202821836091210728244860357098485986214991107205603824591948598298235436647477244318744362593852443193498859769508476998303011442779166402353624406948893643366651912063300227069643142891417815651576241366067940864427739315087645327820000514311441693845021360245385952735824128082284051480072499505950421581980220321191170380602272622853152778225079828160184848044638845423818778217104534761659376260729708884217699804406003609507163059379235337276032567908429663771490318446980759242293061592887578809375455664416098881032273324326116095521520558655728808412282000087549230838283980249303701852920622387709877042781012562268286458258207489374506573468058957357127024469933040752354544863848261179497749065229880663969154916194567573417174146656667761558913022851724937498914231544042036008376023193268910997554626585144244130691699988162808907485969048306877241500910924822607221195366278356268888066691714551472040654698672446134183927546666394924222757872605386194266203793909264926951308081431676592825048764721048635839380560930913730692084838813775627306414915510911084412526884282244779976582804516708878961001559623254578416946031392298780545287215559674980408504622708262598609921560665677605919647866196535011861033873012068186269889831755538563493334962036254588905835397049964181414344002208060299886141346858423913934015356423247214253014285912056576385693562776247087717263782078595318143314668428861440577879484394185441455390118963375663753705902427878782986981491497904899821810205290687974249099428432273239292737922935894937563460447117413461811876377556755317135332869446788663368525299779133888406252053557672745226875909425026988026230290295919800718727154390507570920489474278808112161753705708177786065723273944368967597196132409349773380717748506768066110002497094831775850489613168171047157601328115997979669711796489374936580182829314688532667068635647384591938163006141247385388455900458292731183045319492375073949535971393532734157355851621085639294721898095939341482083584956933469183118947980144332181463352839107766288844960868696378265107375503636164492166918087904910333994848244220747450873791935474569615644102072323320090426503949670459479467217232231410461977817923227968911516033387085969994751284280501000750793666686448833626725037759025211026258813348489287313666404959347028020629670055707734062202975577334989184277808485032949241500065621022687299216940843023786907112148745940890504767609155597377014065431151364199391015322169319775060536264632456293786010408510259722532517309265096592347969499224833117681165948060880008261892370405949807704001739674582189242954895071687713310010397851533534531471068595709445060537335919536586171963149700601821601511678164458777993723274548437021671969832403521589516853551392478205591282796153491663015145805178884114809718670698427226473253962785688562186013575514802584119125786169815402760912705074195114039656379289828828522740860145039535211265389538838677939951729586292709478412739115243311292594640007261346492499726818109451514403360630052871288117634557474400496852423343398859029913064236650173092311725493223569364627082647365396147019361465648808236638568712743118146280242967084161021875899860964969235031298244682022862410158118338086958732157760182237896180157677998926335274840895731040846106853771869639844131858461150414828730502311806695986341793389531746981770668663525117787844575853111495225289209150428157492245559138471133042715891355341114234956673240438530735724622868469222840837937344847060291693601399304095065459619003081838025272825630822093726975275298952076633889581100393467050195502721525407078422203158690015995130826384841974877768499169239221965372316654475744076410100996506171262795901780988192588847792708101654593733253528412802007575104825911652513757834010089518476852491018622117355534863696984157401995560286512422361874058340908447687897154212595303559132707207606150897381979948118563835674506257294695134369167891826306650795243115582636437199760377444620187910161354244770062736476565491962676164446807721909229290808662281129598849247811486715342571553676031195245475615652369677038537047688660469802138524803056117638206875750675813641286287801377651406190726700233097845877669182283339165129078707608669375171168917416276908095517572796980520168210271626213606970604160915617887053054072097976849302663763896866273605011398898836733591351396031547428897471385416969392931830868002123289632959938127165372211852951450167108432074694204902097667007422827466722215683386341302328609110460240156123049845591409523921046097565436483444615085503749970595533666022134626048399601227327364191069494399224652457000523913622733338328497275573933564959431552309012332305634341523510569628228677882109308461215686611444387076095828406715187534980897143310274396702320728683010530558547406112071090359352224531897377489287212239388744316548020903900810810885266922772461931438252909725863112461577955027598220706166870804876950054241987556204669927466398863934848684014223352872821444039547842289174547658271945439737217167460006085368620665973430515242833272893912510779922817171405917223602073852789264208037379292786435578021158357573583590602073781354710814495049045918321175530154501983683585986992326799363224360435624602028470500658345386692633431478982991467853814916433293733770647285611977754717802105720656241678062049249605068101450554440008369158538639919640558302728633212102715925478049198906708906687151219434944169901581812162969164529656672888226173464699874380606663650125491935299515634267061483686297879194828582851812784137702694022167558068283567621527125100272253217550117539167618570824410005697863552015457177509609839035001282512873029138851759746097154637478515816291219002842149372840941016515570616862064622207366895549393145435182266250177371479799689206120653252754184139144761139221521346140692864193558216544796702536944885444171239433349986029802709850271418159541678025432450545151692226883222768070584168571088248940081080598243638806930494014003605405882514727455882582328529765554366006097614188174543950683518994306440767709734158274975433460741103268881973632510295986891271391832732394065467765205701268560215837385465875625128673719730520083545205711511563796715242285437561231936717685670090063735425030945510191851196229951403259743792093543742091184315511683498513254915865438192839955738312594536724825067114738962967299087888584888259970107422725250403548180496285225705208236348512269383156280672836714743505598392797326066842950726351382751041974688976767259136901730651236573171953243101286956107258052833631589009582669841735396384872016520049064906403549854492372294274183784110330807773869403934504663332200174222405363394075275059829357491086988185410522731299102223339766125332469073008027004902589119786609546141221334121389196263882666178655614634421081326330771760786638063634243190918325419432274732411523770487756138092796048357649969536874851130880706247612732575037665910783165878576855066198839794583026908602701964112202257366058640739291438772259890740735987644733155270684661916708199094210860851403328060178785143014996799473634236622229182069032445301525015578576015228847367151823494492654828857179769926316352753845576557644067754489066824899661345595218009781422086726886305642915401382965346857348996719724201717604145629991302514144475248848788595219222684372364532964338807885110699339769612778269162546309732353545146226413765213929750680992477659734726126909397872213928074558564709998158942966851556270403366058762305340310983459322900126983226920502201581434302808000223658015463288255290470682507363006307811895687198094076715851261033440193829627188086008611697072396703943181261309742471117179019857430123990754035471650628805126492009560551345333620292630664980915408758176340212996001619491110349375157655887524827214237679726425642697736819889088217226992655530498724790479810006504684342655193059548646351596583419325601995394272542463731715151763524395140380742442385772476565961524567466993162860282648550406859122463407696639769427013669388291856076758200866943833756314593294171455199666977282218147062090620349763171208646603060567561493310916735968692629980336515985213008880240461816833186087792966500277922134760116174813520006025989515021896326415385131177521071464107072577934971822527267900599337018659615793278006617691118316761471579646487410695224537611456887923115088630362384071769195998900356580754727010719916644775922773065889611193942758602466572916464778295951779252172840786074432951131565811663618629044736315551565582337341020541097055398105511858777484725531770169456197732740007627466291601557814989384991548006700158802872713964778855533405015257888467196480205246724244939551864372558440999600630630028981857811273531940034448275340042960655950892253518601554222891764294635309728390571552519220067182252044834569572830248581587778354371951268596542670816960798234661679259260735618939895590289542298200690113501199927833705761754071258348058278068123894285619311111413250493316426052802330398141690067988980373760320995164384890586993696068307101231796152669245304649237463228462799082423347983303740344501786448039881275592259020465366084691021379484236888145262969686621356647670201426725320564435031311714441377135146736716972654522654651061440382027435161022546011116219577553769090129814813688328624816036689927739083394051471433848747692011642619481923964494632004463847468847911151704484391938676530311008242387049815245204055739620581831624869450329535091985805645898908744256831229254345074737341519527423647641802819954873173772129012524214467540429458554024239064717022570044642487593638766367067747962024427680943778548257665128437769009314209866607101870293385933104377328530343716889518480254779912733313963366725069762400444399984287154827354002136228003638783578086193032813099949059658918893750753834426925570332089037583246284679499477201616184924480670726066423943232192320717600372523136002600793811788852402504577314925350249739942544051399099724277891851189238955567249088332253210798862708156400032252780315109766866228334677738349417461225894542098000029093296907437726013869091027914062598515250597766818440107816706693400075149348285405556143047553911053314375746422948620974467908447587646836317892773085988511135509579474495421862986677496696159474444092731132006697861138085905453176264945901678196971498613994922697223384527051438093895135046443755122548611170891396680893667779730994384880861933190910435786072084967307382593792396359932847510040727279386262716704475407571920250393419197254518948311727902461404966895517907998691025376489096484598167090171393512067828395799612263119733149133778183433841931852367538662901900463343328532834341824921071916092767308013235369472648489276442979870681125654628061172604607332191763047412150640302017893205795687605102775250530436122270960467584531273866165214241940868340837589140095114133929545770094731748116885364094183528610997103416723558178602823498202031499867940174041719140283936210519480604819018245180081701371042197459212798404024268963005335536854941640086392177456769534458650883286298216584601645078000035989852129012395900704202660744988785062717607762225506063907453194771889250990581009367298919540995766335386583780980447935377991877121429774619764094727212140235326551777236163419660743763915386601945017769140062406841273162958608063506762937751252934367596073427199675135201580087373954838973439901238256568290785911442588285213661692014029900413146213680632352650865411218084749987584411183629097908919834118753766496048093626489329104390597725632955813887767446954618157978704191597558335000377286724607351853508854954642029309715856369497857640483741505558099188402093433335128195514555185733348881649167694427782405554336977311920143722541541927450597601379841443735994202876052555718937804114892612579830361838010771100500423923926441569227790057027947401364942291847933692535432484048780231777445184177958355825754761842549575395878549458343084804417370879849267419528932303148958991600685422879578929481590006873537333333386381390842099487255117261710872944088868447850811634558526921415402996720988693715886232220331485581742682635950689362344813422473786939460923256600754721256741410342184901311896396765473291674247189934243302802909269850752294907970944300923867287743936255111313628761591973832413491672268261228263127793811750807408958943971900254264126649479801764420164541588131760189726596246144139131920678503524638306577640165229732047089201146917133722878630370384531341942644142496649844744048617738513529373108099859472815111736507191398812693074826906140392864227662784943295588285938372148475070778355119896224911955882370450645820056101702053248444902150229456176556185921457439900955482294137515441361329150430469141799412246093381651362627902827884213812207758942403884062294331727989259418366829367925960422418459417706530195486439481703355241028747044731171507034775083432373331163258767276368346858444865625391872394608273247135004489570868031503250386764017353150794003455728550370018456027699615061568291416117061046161740824846267033518915255188248212726007259576567889912567870201497866790847106631074876467309890914719798792598590625733649734982350312609830987346861627393580579073549082468304972840977323811670824915163734680870510521919176205416988262547605445817711179937767786965421699257855772042634424430420744954897033904345072061190076973635174019526563221392825831205282400374669545909280452596879846081408707195342547613883633535119112144143148505520123581380626492313538338767580918892379758551573203658831762424116916752381458859207516403523668437267917590637053921979811265977081139473516719629999705209017090758985691638906642704235700744502775120104903948148329457443809746260351057898195407639870607875817740724911845069788429941383420608124283901488148725998541814802929492278783243561055491564109174887706706782011985910958909838688395117183801349148254992749142698552595177653612624215726624488960961482979703084202105160279671478561594064613638247758902011025199234215321006017523025742122375421074959187286751895521553299453226894251884094228267577442222755282076156072771039471825668024710660677383120630314662847443386204743259568505689287162653290832787843996507167242206138294532916600463808725630595241532881209370099229896006981396279686279567635198741824018562931984922623336431899309017048819952588273388079532658851449393812411543273205891645786422945268411751880818405095690469138134430778489021148797121162839773443054846149807935624354967141294733326664224830500436445454702749172320783995650868018761732703319065657954753952069292520153070643504713068812890320538545563987992101095667298287304794661005431635846234487441555407133814323441311788424196019037028686962422762465024004208137135046401599347205327556795035339067127216177906030216239978041857633481005448388703173071625525647995999986935319681301015629709787116730696494027491665726749434320813231461388692553349492941183163877889903259401093411157274298013318145782816879135142439557873420591561458773689880807917071145511547626616820817775747248427879712981548238520368959165240543730524667287313030192582952498763932098573120916105613572201763927169959868610886760613384364961695186548486046168484824074383811807417342224483947893998278014734222305786541021772926482091409485035013224151559999016307147814852705161443225825478014344010953366023936264249313852294054753641683646704157430055837298470401814557100296962346985059977885573699802182230354923831879762989415697721236384408891789275277528471447762189205742545315103747997770686236242189906303096282211773219708230347745455060238585911403898969166622077876832601239617419997623655063632660169906611689088687741333780919516149770549214171181911014954347869382062098082787895731327899060020863391127847153684304381498150970304770886881635974192534134122191396287457810993424832714109178276317654209631250713669263658821357511998754011579028028507806698333841833826673945536831965657170319462933641092726672742449927473229138009835744509134079930856836048467786653542105866800521154264867497239537936421566535872081855412598194547427516118416936625563241935915856950889053531412183366239987802211504245660015023646910815997419202544378736102267129412282988880533679439503294048049616771107287881031614677303715021835289024146481754309549059448875410425016804069999819671937982082773346485581585910776178828497505468567913990401138456243604035744024619123769440220076042143357338726039253724664089664914714654730072195292737417679613565233067804268200024230741218667486694628058788787382995232780501070661013854028801191385573091138057275589368194030938071886379375821544435162655991203087848205239374935189559715815518280481480783131053509682356716123550963161528665857859019528717754642506412984945105730353324334890979972094572917009587840832214044050147411438170956577125267157798170976763847864206487613679394578442385860356496644631401310486670561346276901749283229004327112081922956415894815282655842219261890253051381591180342310885149122665391794481743390432270050687428881996706196068850067332835361468049859608140287911963112748254664043703847828840079815791344523210166867374112129449681345101223798429402194794691664815031243187396911960215671211422794306820104087675680937389820546842147856014277688201880717174141274936746781751322771090467300153094677730692232909534956944916011690468181827234778161975125727851535569861629220291884745302698301566387491770219476050941748668411972766044408548329750498907825806153902003010352180271792099508178391212339700700278329061937133682183369615408265203927161518022791528640768315032997406092804831050625515722628713132768182478011691549378624832240172383707271608864192942118171856467481185694008705299611314105945829387033052862979188264932474201795512442329476290348834952722928308040122263722761102752038001209375208856240645311250372640153996437123370790374395120320285350254748277980930302021966325093290944881905745102985217283069962242195471016519393297693706545763334324332564331363912210835291355577008126505397931646814945134120751218835054739685955538780919473746566279031868161713641615215540774535438041479845458406344747450856802808623241269693993112296405603273109279384916918793335961485351700181496982616480034402782281398587901486285212867461753848503480683865201680747674402114766556964387396757966442958864095775591541926150719665373410817064974822204191350352239320369277923907369558805779975526019030814355084924759818577979802981264125192698083107565746594693511285627975905780034193234760013696114472901311372932651887731467214107412752210105151558657134939127688557300645655666359352535450945737896883580027707210807546851979021567766355960858995244927220497752998154586253592955688586552190862034885742944354883401766168305532660245835994454330952973620564282947453966410175938780787579040143195672644502565389640520071487068537065627117466761571918106422804643826867806417817017101455799878594929810286748774716790174355039931696835285921164814878612862891163759927684710887436616177623930982949823406413782807112174123783422241440699848632882392406563774389808463170433981419017041770458564678599349411376710185104828834584759112985991132618063116652097710932602545777664047811397981202739627905217807965659334830319638637263605481726175440262684357264514741114361974748853281352543231321040655374753560914051335764484512650315994993984759123386762589988628267424214106563170282684202742775354785278498062554779673095621350107513570108143767120973610656933898112877006439508682263524195798998752445315132684357712526955116568426062497953005641342367940326869432022127715528452294559060131663002332978618427293697054256408957224731479608422799606431211557228988841340690157060791698553970627069498692261315505954581624066542762653609898824692284240221705109208845226419380040506472351410654462939736295006268706918574350346890787025266889903105903073320209977070195562670800784214175004024877643693827049667540691448956340009298523549912969960465402832129951288171829317338025893433608886395618814530549363321022467023712349079740681256872488335280182087968683767489328659515635001584373454271486153424971252261517808647183501990499321781991553538737856234550871431390503843286965138769032905340152384282439639132568672927224870847796968092736560421516904023007501736619499358544714404152214106474972421615230372466125530179653345435408898008690163071891588084555221984311574223129451967037586260587762633366848507527528479034425016537649163317928320735720436314962933262171984120414969390021578987584055068836313189782803270681820620114709707824647760276296351324513522519224278604476601784554635868956418344082595532543340887101615107036746824529220467808485318529560302603933699879125296023073278584693716270374914483889163375005262169733233215240070875809848564628977918098482534272120248127256555150503057004181198951860921678780927093724148047112032092752163821969300536677508468358938654452815223534755755907638023785215194601827245682363954905681259327472895456989344711418098131536495974851541068546097863303248642987770186355313674508110767638604733464029576882115288981356644930949310435890364514131755241478099253505914813095314712262341354064609059803930072954096921369456449857878131484983471061858858025833538008663482207458754757769206741006757177870214802490680993540340497808697475231821368788671920694203441862152990046866853574977871014752845821521535098270986352770357562938493139316042388716899073982395618988722188420611902770942990322757366871860797707077215592326418136016971727774070288413457177320625302988161726406498017801926964155038729328624874511566944009014691037146658952807690750630991658019040282491239634567983926956557159476136694387393330068373830818123094204415929595171871924926797929712950294915811852694465448881606448909108574738497225266256135983373917831949599150654399837939835090051743387881718295516184473257069422937536525515347117857618497747797331677160714994214526381704752272729557050017337440135602978121687188613072957200868270472815099449365576135300683820300724872389186045558234056763187626236258904340796023955291440818688735039163729934716281576586285346544476718977966400943420249016434108486305364084940912887711996506980457880713797795159120425380257091986045596738860190163441482900997297139228277863871263080176692137049349769043808195656188012979091465075440684531805169404962484549525186336324222226145869950092979045626886597039309839695602356438896863299233237659081142486035803545169782067694889248663833068791765942638200926377890316582705029113785729750974004938675358051632321698473633858419735204876339455394642739288524974516748990465145947388497787436575894707717794356270743257228553610149292967565026585100600321814615361292859106934321487868637434297702059825451095805417445562508116488195634432335555091540702287345061766348980049281114848603366735880522429802762450658064166164609330965832277412016870046186470873546075946002355373436366858463000829891159321746543217351175531575551018630965885602744732881743617645365592624617643877740379976886080184145764476430357129839955569156559423117453065948362502060364382217354409655353950904574369386510431293427166581052146477362856041042715237293978124871060598593201780757738436706563113506859305888608362023477806498797585317840167290597876570281387580260323333798832030389685399914520291291252264234896619763397182681060237095975966298091853481901250403158996252047170767663998683531531966086875291254231153750347550051536740686846995676773305775107923504903457787782633964738764290564016443331682245650903957006685680098251827330581904243226112894851849188221425396861310033713722430186839559644173467084178320400757151241680837554131482479240045243081253677296897044406796431797426815935920313582151463967892385331469168480192378561366570636094221329625671822214085376580706834616858349637565564815213278800208251696180798484047486754286481247189232457278488099517849200238132149505597686097804392272136566791432558387293962885557531898513390471237808455940718448328361153361578025705836438593371292347805105809160715792371735883271261645606567945034809907997205084227305474190778110649402160166666295094593246968082788587382689608487744561183798448657304543205368926840349142345088153510167857570666874956376066630729363649798409105284008454623326178181497976141218187286126865346071166509551354778323062741181148207171646652654270991484788077768928234579548611067150494736473997364806652995373677999340235327496480103446000856397697363373222947146973027764094077539628839012582466293969389877015862089379918551693308463815996539591339262924500564406760974231690307802715597007444183278386392005915041926664728752789795492770341508263915478969268833081660479564209112379312512452382628913239114259259248872353135341403716733799306171199648037407664440361082778150937198926678995883750525547609294200184307444389649349681425354244228754826346725993997879597972547224411728760077126088409395048119215967488739555862671065490302132402247707926524977694495520510805641048220680217292763561522377385106360209720313789483890876087730444433910703713871331637490928215492129660943559957654250506597023923980013397192543988353358193260423553346407090728580486521415339035222970604712201304941234553577895471248630004705562889455044608622266485238473107331722303856418653118021793512078836789316324319258064485005114528227697470288129755672304193896966911516840342521912666860561300384520538933691121008120502524108795220346236601390629409586806381048615670349189528899594434218075363312957022412607656628378577631058413324970080210963951349160864205194055137980373826514725989990212475135972827648704803024095769246243692551113922353178694829284218555724374736182657795600351890158768759814426657626582583777353798801168581116118854587199032823772576597479255550151703522520432959456689504597798593133546030580462871210509920026539199902203280298551349905589529620350811851911623933176841545106106551624788219806941469531402163854294846509930575901842547725876857641474091708005076586416337693581466078187224450583794243757628708545403350110537092671021601688974251901726647710911877340196587613192382440167786694473160364332359105304639269254864734057622116648426993833030504817439731193500536761645050844763047325637642166613981817216715311128910245585162073197007003112540505208238290893128757564218754167861569179700970093805014298466685212001591511327205923213373624510092718572734941352894812323115992346158969097896744541306276268725633046823353137159651300040615332005626421384322314827035473586350919884465338356840048416846538351475298726685210475900910516731592462648535707081943035235987550492977333075317220355734702365170793159327874445498164459324739383779436527800310927753543734929701120308885081138511036298562059488346961563623208283108425028737613641284672645036795749821634469459924402320386636095796527312504891201235999628480875170027135590882128244592123659726362362619317174993060278006727038520443869442023962659430717338754484396493573940165446942543891831593959675009932984755318320197095868111474034114643077490787323473238318431697758006951047596253478039290531227897202831710307704415204096202753606616877509538749135648654899352851081375466230230104416440607874337993886594343197397276280988725535964218368862525286842920940766935310174676061436150402241061006575183857818459430973816665274228223595232656315600436346060661799295434268127824698023110783192217548828248443489421559050962496809551681614178408105806817300900263152721796074723457974475343900826623840807048876766201256697542263247684144360299612706320364247672556623958413633466963420183396378254225447430632805351464492080284011693507171925134344917591634464815473816005896456760840579801659025574897671187722539527000178383461807683357425061963779397290718664165775655492239895116050443618102059416850541876584715902962594030767718693860546243793895291773829741484639269221118535479059909509729976074738729626472760521045951128274356312709605950237557318061954525987653198881915837078060946073010461531407967225257577860927309190246919298845173987163150768576635186493797629738066031650319861817206511878673359197652395674431888795336522908865200801404998114956576645013571486997392219460316658901192022613706395492150000809680804936515617904441399365473211942270762716806623267993172218125745760915245516705097654927987579284966167376193685343546860426007927821050502935106026991107729258332233138942398087165405046314658617867219949974969729059791579184648037035187388643820270609804934004556786093076538261926526318112021863859251656925865948327448316434614594036961723580597179588829058381523697885331682301331452292999154059230227405855037406285359045976578596457380652160026315917742888124801830766646377077199854694714324604154308710677882187690707969413136784605770183828392830947916091577622835129330815994526976068402659423392885871105440868306366385810204736320944965349887762757862699053539155327911881192633510691931273397666740914861397456145254527568838051822852660871349632838841836848480136264582895400730650791560741028890834546596253808696255262637115923594826384545608725836860376198170672633744812876372682998877722944540407706789940164381250027554201698302306954511629983134310718899098625410160029355244154862591376159747870918515340256888813019892188445661116491063268883242344830962888049657974271034082237366738282557725076771530518606164830633559801934071098971630988408746725910445988875959605303292488993638521193949096828371086457135234560158043864297103538466830596898796808358734978576267855658883836495162723545207087795334676586720491617208798131491416989137566464545697421666338802887093115965529089096858324662094236872595520958765867639645258106276095395529149176518173767291898766779842511921680755258160046926728928376965028649208798782224421071404646730748519743713976053074322345155253212123587085161628521453800836861246295154803945332968377364248629645702435818923168622649949921863498324681214946737511994819504507449659704327176040133835522236081534000479598193685223092588145754597956696947562389495724732524848660706542882562876735928839761419619059132908399469163841005321889186943256572066776523238247316438079769604445729694465028343061665221698708026175757051241641110920735772620397041168885940376105843313029314448290659556842964872963771613219507321997164144170256546894610127030824597238418283604031166034891537160762328639666165618560009467155491519746730842325586767410973340298461696756421076322315367897998858068319892283085976337509294649038791074370774008463493623624008300849500735581649669167597778658081118230477074246964360473279351820384719889611703590083004556851252805095510667699602373878235376637278226774052051061532018998380611491985952875002662945542273526058148948809979407952381788622443301332364554325741038837042323980921416149632755395663617686752438176556625101337430464808207552851564911671828345413047238795984888999156275919082152195945358943987391987885447878558839301953170347124025007207286819666318891540923756298247737363589629303730274864925136919788906763582461536907572381188900038683408930397937519930653817228736677538511417161821464063005399340793672109509412332835057142652831949674694850212250586274045481109395874053728880966522799491313504114857375818994915227341352040220177174269756103240539002593855895784915494068759108510900445669877902963589995785804399594722284335544039138455157545905101223677094900429072516327250643891141494031439293381604921411482986961512607568119300488516042892565334373068623996218120083759114317308944198998029337723050652250270984972059596353606069301554054235809356222199901761551336947568289739010093518988689102305620334560674781595563737372431505131046388436846166022210580766055016338443951339275390504719811126778937842527429307171428737605543790415357814619485598470604040101633653118930683696593975950084585133272847308800484877403931718396492321212575915598639683100503344056052789887661147243089207390677171334489995904995565286687043138974556386419506525626338200725605325025449791258937286606936652747569545855493793654946690595626482216601109072227166433627147859946459999267490495496151264230852976404043695030783887567665223227853593755677217005441761522757890068849222464725810068548316761687053704714029329379429575971294561345245527545656824943971433138580495097372060753941257415629101102326051852161087629611346623796743611234251779934005960149443294796416460031088377668870592004886201801963376976145058292176891376685475541938116074706436461835509504278367638447274620716138197119177044448797513778892289958847382008296507046223127280621051269910394458936078904429066128912164886732932771245059557649995316456888885393740496576571688091303924234856937644501999120287840027354636310802804883903986446286631594078401029177968777418982862222702853291914550355495243566744611953366897039280307633613422784813008059024523229864536534759379247009771237251485597896223350550371408237388559899963572576815282498573230291020966336552980975186916429280761927498322965219448169604371548847590855272358644048020175814257540052934387946196431967349029347026961869732830560212662858359414291417643270438839971403798486296507440722652641634634289829191540694582238400532287197813012034284651150002141596938756059895846743378832151044581733491029314084926196254430106947558632673613396013154936002702882265375501691319481721677272774887979071308645912517689622702343482671737444762540360443612383426636852909793473026221774344093610047343832594705561796242470147957759938396128282186704046594736713467400380288689067343505606541962915439823233191663415772757772625566712728756776474035878251863240142935123099265241861053652623906898057679590093782672125122055111315834782392514171893266684869674104933862880589331412583648730855968523648709573522735515641731600057043568337512858648679877762687891197017419892629750373901696681145531056396389133491947849112600288727202243629554113302103288831252179038609153411678577623388013856364347123025313312758349214962681684346180565506437686484432169160099329793588697132634594804765801673028762362637540464177371171233375552907616845760984120314814906712654478813087496692652495072837633958248312795542416998444914156090821234201446635611514398786928367644038199996073613035658764068334110290878236852304517716218148049432624678420340375691218100204857133468386031640918904933187028256511334225965139518362851792326534003162530311776858304390585530314347000949954042899310620069093842985984946257642436427475502009295982199705371385675402423995822493614688183578390529256276625781476282549052153118845167267925851062996411218904742903268982903001953919556490734818124668433899387652291244231198145746620093780807965110820809202500372217656466226546285167806975616512298469040287638196536023135636136497663890221979236172338854918198095735229701423204549139476002030983118265134708319579082742177973229110014981104209291997270793913105416884305647668068288143263931229248475280351556328279527326560834108816169796102396306652310043702682309153399901101851784085347966645769639956438623259072566307560394705513589758512702593763532523454546071157876567775171323140719849308707274172599038347990837752226623850161890001369665331022529573865193690993625896333791041177586051878192070877765609994109805155176052433838149857884415802148300377380729422205761142218734191201738097419160390896945708128691961868771823441333977805975939917040852574024595279535895516836710461224141484882350704209894946405334610298148181498384962874854695004074324843010042370237702693594977809093900955516428125416837951222634081034024006017318562283671178791286350576512210523464875470892286547579799198663491343367457317808000101592280324580415606204058814973369054688383056831118856426927446668256282605693182711497110790802221674273725205608523980970519287617281829491707968108495634209221568005222657659050270810105964689600419159413971344320797487520061970362143653107681949231466574683330194256177258029656287105746356679361964293350904175915476056437228482315205448832642676308711147460636034732834323009419042086748123219633559808929813901374321723190294403380213835037846658247849282371602845709018509399863087689746361213922287446437282223068981442710808767398474519868597356568324758502379022904387433865650163543092049497513946517120423996380485152404382714004998736609221595167943665520971624671902878497234306879414622093306540351514653335343817621214097499529081334366887421960854630056294187185719897965490389226099400645813457698989029375252603159479352051728738371667007215479619563757407012855926075633358043611785695703271510860973326600211008827123199163759340997123032026138109889964222097317552741425536341306159729484372048567305363345356618321960256972367743766404198553908458665477313344243061721260086297605296720785932256229235584626284633318929283198361000259218711370399715055774932048759783197671362863201844282336539347163637945712771588409841768777705511446946524042208853820282498929639508467046570193475974601082109002237981389393889173661995870235322219629414991396048429927934116586704877857111337265349285665368928875089626084058604973081180779650060100681097962304559548011897685661967624238931275652416559831945661471675822057205150733187438649959207729217154115270702515737429327406030388997018176392492844496144989211996008741455920119711061917813560083117939437002185678808012611811579946414717303547906767039162644803691523001638097509549864785771530193320758707672807382416272997985657219816684445193115121472153946260624154747884492531474522234289814443935668965208172835201849104468501236353466594439101771286059078923203698177814414065765795314169342756627442756479249572256177112244150820590572608481471404592395307959706042717245927521655060051371539677724263182593431649599940848813489629443980192805044699030743329586964202347799440608555298026016876274594816524700132047509569931582510565956554511246812167410441892014971291705911320464869299521893607872571989543326870276421120797111258063437179070285365686818813064931529035864912313662571902811608044992533173093318861973891372118396348879203809214817739751512155506071421237847824951464949328585000899517323133417944919571954937381022516204335585096404429995065494821817491829820980285016135764697993067913222478498512958741989762340204826428706202051130484543207456436305468298589979035884055646100674589972300286489589524145330379221860767572196030001998405346104236967394846598198903322644713641778288583186156410899810633325669588014908754891185529444754877770703325428165404870114529025916253519801238741401043603630920528139960818578217505919920444071679901533844586401542054227660394950985253171464765665886681458842246276815471774897706020161939694773855297795179206393425938196355238038842483958103927567056400517745841545364779201707342682078953784241931871811251340019135490752230188536642456151886403026504152062258752697464483059606000866480846739758746940310044305071100803285756185260033706833217834100697307370364032129825039545915664516251801635854889250188649041767130862347416451200097805267165914094586669529719432662613627554666276397479883132420766002470825655516863465415732273037984633497435417605339118055495848517100306504714657091740008220220333420842716210255069982951669623227920520679012499910597901723864217585369064213618772371091338814995600185227362965360920637316839784737149841162314047954571631028508309649294656142890777360309568914137573724220084319536767372075167234021174327264670777570720566446538170861043049130199330474798596351648879646194492952890582573097904095062772066683569442798805496198375127327465076018212152053349220808519176266170836135723334251006968310417820797186065027973257761157165072402736511990861376703898866503275577438942275815661730769721836436801942195847681141757576578022594122936937628548376150113712094447772678839072637650618932744947410926405869319895905855996960097204635671095586425942225071342281083161078785456208386552686224968775589567428400965170789743998364521940287896992967688552250992454811316798119609584499945128301743956586455425349246733192769929221149864428842742821896234377707149143857760805808485642730371713537642453067937869457905752335076438815218106566079270751572528839918515710526005618833910853622127568842615368679981807360170875673642170133324263530619346354543601726038855255677458062131463820548899779437994865925280732477127701533566724305128745511130522707692262151065261479813961301205482595539849829038221658540002787182817945275934575981606268256693535910919702531758789585078642512381690228684408855504623386176809374387125500306276779114460427175023690482605349682200346806279793975282372351973107085666232473255481566912018466156539344860475403574057353264973565944918990736160811763133524918574724029491422191055346694230286637390630837957952652291658230260997650740918733400133052343101030377785078752063516583462778448353683665590270558349479612983505612394339024757396930505229513081104670913249882048315378942261322355663430981141830986684768102825715502868274838339757192587347401153664671682629370155268224421277110523909179693192391277379771768801542246883496201400997322757593293917724086463489283646444353876181138341439888235343530623717836037727092220679014913157494612352486498036806094484885719893841191968471524836899608147222418754317335333742369490081762643689316367885345454285713963603275099228957125803241463056342872931869971175945658363103616835157351924115291745856865483974709206998158899997133603670512517832216587046941565206271294188303672861697327759547489832700933761709103805515938607797518316479113151091832801275251593651504886079398848586099308119349380127789670910847840847094315489455770550455036182181154602650233359866262119075457284333340654655923652677967900972402255903766627701571787453010678368459746242411941460927025518165357449640803707635921820480703170780049503051527919804684148029262375914410938821175845422300258710509897434053801960809670600172944613159435393190215524986391770306032510939596603820623564441379417884276524064389978721528985487390825419481126849740034138058770293316002349752331437832506834683239029486296128917710704498770623085845558300725385819369995627494731655208956179446276477688277511157614704990194822843238680273470746738628147526753337201210107164668619616006337713521378211388572121554773972169330440194716653483026828509805531003676041798533591083991213560094604211825482838260805945116333374599933098540090956755312822504067646007341266354406248261660563576912527998130161592594268648699500472477533277064999384644411392955896914652204299081224390628600046503573812695217022563921682177336732020915867504500478898168703646096151846004855741439881726097384472127464419545019833559323176882955783064580208982952763154907355005465411111371947630436261732978590284651319161466655167663506411933457586671378181098415646592962365769083627160722338147885085506388631774907872349191987679896746362545471260440954168197799220710427640251548433196477390558104961000164705989515785294399191798519780608939567864719736389009852422340005442237631164031518642793802179526568429978142883832138959824393958877015579907839448920670917065520349676998605415590210576514771578737867513712547304466033499423963787796271176836236896244596776440199697869302789570435167443150980228986501287745403934073972426716050025587854988889409938420910016817387489835845628935275170791170549000543621962170642940432780627987378667673022285201837041592135242242759628375037299734959143125112923968531901297535611629672308486174323176389298817540247039152280625468479103097962829343042133940228841293104759404346083566834323249561364754257986254455449889635167136444593793573500702773176734884517488709966825081043899155677099848874017882990749484423316788301806059737151889964295032419913988064778214020010411177747896883955510807421116480422750798779310315115110843383177288725255853668013231927523396907869301592580852419159088376804536260897508342110444191172855632146461237202911674061466035739643190133267351138318086854427530611568220064205077627624316309076339574680273152917799081012535494361259147198875238666399374852539797888793077692813208745702729612199390812546255462541090083430520403871083838572264217675630290493017692951152885790854789541342729679084551526624977107434221537656995492169311900356755887971969593608944405602798532282974592300572929022501918690499605151963466587384576628616558370926229549052558715098878019153598544171672135730700635697462366450699943859586530458169557668141518863751672958285519470256814867521612134585393262425217446952550700769270083280535053695163837024826205634521190864360945508786374555688416514747774466068680273209052745681753951571320375462170698262614847590710692505568871840363000530513868109575388748063346329994876955374348108245413109810837369070751045263814615713736203505637412061154369839564311367318509717496343405832290723583401618290608716587101601304215919171390236458970590273481568107228986719530257968376456398971876922517593315586797334077373304321675565391075575423891616070212271737592070056307136843747821213528898979866821776283257253334518323039274761865403919208796565258928608193070403573964208098932108943220085199416761171752735397888202661874456228202205315283142784830338686027996517517975581988333102562543823041601894233917038633783579210320377866821806189086326486741966200834537726721380300483534966960106622413864272529253000537291773706116234865438736033357315122713930047525770309217990269105683369868147007004668071319009006387690689420354186765107497339382475859863862891901184985160567627206356818364125792244982802899653618617776686778141029039884734762717902348638353671988418153776428435790683635879056700585812134278486017342992731149852582942638130658497932171960271888398888136721030252937373068728428425267681849503279329574707045375230320864088918820469202578114374706774210439314645278658963807040853074482407805394314796823543620540986524254461309609568972992532000469372276519264525234710438680616284415026327290612571927257767631402242018562351489059030613122440819438963471259810672223080736248740388234464280483917599711890693049486869311881573358946333731378306463075822060360727221651203940831736077127229108945530997277130413106141567730248755030303311974593678235696920692900868406551784355069909796130120859134208252365383197216400257843865315526851804559506527621829780729270016262380753984531787493214571767442842240498063048733634559557141921655599069316011685456804757856944582581465254105690942130415186078742436405050757001169784515992851436363314191985622039283636376980736964248023175052955013733589796035987444259036369071724627520840312123803089261318802320710301404611955903967347832214727621039428519154515034699239286860608789482720401315517854889242118587503260120766227587948661078061994316694602312466700366406945698803378941916927909305638007712556961113855111068230718626350878130165915966571995616639269524013281937122686738399710231302371860614424028167500027852370132974280057314123377107673052630029188543218495203772625172519665489858630275201985805552865567017412424781398441147945614036133723592910024028800169542825276370017260558174084453430805114569010709200685375107498005622995679393703609421655852401268260862013989663997981826683814642688762945498686986956018358721332468705175195617160408503607021926593490727025109947572522191084244559520783085143427489795831409061138136873218656247805199733098940110047570718189852293784438141434541275082709849791964579292080235503643635350960125171771680565549982788366872030579533233548922735814390956051222929425451105961566598998015880640054229431876949270762221110284761808261596446602704309729054929180957757759026962478243427196842521066737089539128792695710391317015524198956659379628884094286905195234919075493968337433851086788683112974840774256142888024202545647075085740339539876746447064724122440508415745987731692742806579384510808293347136974573171707801215046556077308798757870502442018251306625132845793796693426746591767544732128729799255322939565415828683586256392962270161695814361047964633701681690383700255736494401395819022902590430291793301413198519600605393959301511803485506302148638173900592786593779628397460050166002456192425055935165239389938578583292259171164760183315867395892269179867719926426770722804451657455450128217130748500736779344547024871488371884766882437818598556832300391829250722212472339543814508124959205727385821638671741214554440720007746256677999930338858143839522468418606099465055117494931262474754541149008992988802447511714394147171562048431661614834901904600119092962556851628776043685120922176537252030663261027926045712112346384308976910057607603820506269489451831336812975700849465036278304450342429885580336356198454450541852394839890825148086679715953087237187329524617526196498905920546969084045225197466547763406553670508396129526943779829719822550740087246757960737559298851192270040140899223099769250729082437252930253655458496293343701951694483160099816953821753975089393183088183490256194526897726401106041349080453131450107139376971054634766542938733278849650778891157044338998759686206776694117023532572196970063355980127679632173540570173738734560027884615557553918888819015793780554417315212471104852527959766608726189792991456157552097970404808675605446942831227454025633219115710445542963152252304360826363084422103356833710034748286461973431203220247244393229338029788392731660966573419664813971173290576318607759419141898287478329113668433025352925249647921101964649065217824280216584448011941483756087062646822170527885558666093973084921172488988070552950041388669076368399430081887793480377554118045469519337436930740150043869156290274693614588145704566372976279494406160931199311174180452044928354561469971287682350175144537389283837680072041680696395364925057869308093258643237958397918508366785268709394339609878348151314236645262541524927558779906532561633208127186353644050491018131486487972806483608496665024892073569753621719047572055407926966384435426213099435243251883097135308234078731415494809665748791962070429813217624378108179660000362780596168645858331102483433125102935266385776539714735100522118161656726351353841367755589213883356137546166901506117537764963729764127572979618546006530588154337466463750246766187368286013593899796610488703732129989880771893034558284247986325865083297164788136878369340431586994415840560731051700807409062423229834214836459375406668988799024529677503806308864246235400067920501694025766842267333776234700738508610419471106994358045344557048916857268425464900093712562476105936696388997312784658624437991441399515694668108392632522318191172864007455876341045628857512550568081525229392792597814861747545269477638044769959550506070304057230748023470574234467241031229653495050651701165431324285219759223250396349180246543163466129180222569771408902123393287886041739410135263115203691114539200387541090012174008003707640680658246278050875572041054258157045731547930958472208291904617945375395547055895534904623810081663731945502358481019922271929120161775202444668605900966401426557247684365331867035220655801458913652142148842795655866270593388749187863939123109498561212629941292195705509821590414591386112526656218794569178586414084184662918123127717018560764298414034759248597953641392957002953996000447652417411806360908910703299357601235674502894896672436831132348273563813700784818092204544487869713639440714068381085375023790679254919907435453911187544169787977445880706127946791026105972678506875496861910266428987266041554000355937062096146877748021195590129744347561903690150322987650744211659407494846421163583607742142679643983102756815554612105716791531072217779302545732287453729298919495464444302147434944339915261997646175605004468761414451971378481762117897724143554673546702425073478364221897884302406489528463143881634350752965333347820743987447844243948343786215800052959412016958449975956621953145946385170657449406445413770883853227475395462267472178164107859715062639482911743733169123087794755840162452434673160765279230383361084033932278592304370696142336185151202016300371064733923601594093487614139315780147375520999305714396909361417808686920081272999501268940633815459426180425248707055293695120120933850061826700896112557402629284289397798199536585334676890135251331654478486211389757939533763847704378960005437463152679226126554035001329447959332038995044036912341008956512641833327189635116513065117671202257937290610148423524674378547404696125822110639983260451581254754677929322160100396891835166867336830393136298532998872877313365140099200771811594958529964781866067889568730412979681933386864036542998250248976083898727879968322479948612906215381195278117506535007681270346380699853213452396070408503822031138373124673544085400354980559889762848218255029841751924213819952951835534403125784310766698198236289049859569939761472019504074153418288497163679555729981157692899029453651754415265328609725311247060977431006428102157231991439287247182840939967413832697591370192060393452424462818209416205366883589174586151994610289297586116332625393634857916508954974755610887043082657833533954872060436193138168742118417529818004502462401321388921541354063163302382161565464533991219188665880282830367309947128978081654878897206258768190147486576432647455435864796605054419314007833058157665753933917660149690172511013519303276412543790817246689999810787074329882860632105428729230684618965421625785755601612552340300580197329431255534421488652069980970043014298345079053809234458243679438749162814834015294287829919084621132239087623502463789187701226754763087919453241491141091253487734704529022285676973757021670272351520368322814498653030193362473582464002265301781786230613182673475745562719183138593703869423224060783415856173750148103203795100191326222685916207583999928414258360755023703675143734725006108456521231782069026932327170717018071750076671070243830088213495621142096666279257629475353656122311963034872979923961295610014411768430991443598065566847331837711114898251668605288243158296681577367429301750530961966351587675538641288368646401680329010209836414539013618201231060000077579660767714453237449036664538190330356596405377484863770568919521436067964328702651141982058714099621884954127590552896627174371637870154631182349958080516726387898690116970574332525233066881141023090637160965393382917542474057228131824852865622014084294835890305433176866938862725299013743012988285332041492596472487084288708681215621556590555201187669920995349288586951293492562058852997594598147350552550331514573498130249635666005715621294128820162299984814529158027274529433671346133989549925197261429546713411065508748687356789905052618418649467003626154556517859007474346830220335306212633198282054810388329437727848015435298542340690991512207114081916532842162868282636635610834323566621845834965842435114082527134184467043885460564089153311183112391186053987811676276761370365842848180731392005624904716232823299108066060664706264035428591900796973473018870585654299212914106508310502492118115256100637422924329390473242858590436910997808736870161271565760862527256304137946186853271590894846828027643878196883034690139863099353489043993961413138596462884385448545178614698948363593025023338886138660578825349382042975420534819660539437264347797913552987090440975167142565491734186574028331056378689930376561815662351820475549941943497152154891214252064707929043762128454036356540042644388587991544652650458844150220834818998082523762637834939192990877418633119502333553507950955019850442946460037920770326472316538371677976322551046150834470572786498431040691955211902908981909550664375400366598915712966903738260586886220943158567621416946277003446146558837096145418383678165326467179887047516242002769841056810499347974174742755566238344821872394925598724808179028869791780821130782667388227175699536815810068349441770141103531411070982796796045742155734677372931318357429009881725107070010270568161059092561977387252629549670643826974876315270996332315389780214195846283702358552280297758021406191250393900095497206896922935154870995796216818651729414300236510071410275558943126234999452621742518340731495182266541367071120543595047705298405516414408231604009414859322767183356104103195233484846079523646610699869631765885028193317090927754380975029691292829028718271868676560565601038836259747689933191815086846351020204443191415907723646830255391680889137742672332139947128849775979539773479229678936219309925112006630115661739065757368376763659371892114223684991202147557197223055741005725452572453855565056864605371122682267950192963103945844174558065212238893467377781174877110853585636510480400702351384140839434491495873363170337452474420769031046589402807065204049010261018063071440950890118365282910010426311261217230160730391427829982605482593748719707894559086334217056537691155991337169641525291258655071927483459371130756268223314419307505994006735363650372935500767980421512143519725325605622643945414113167472987783687140996758965630701996956082462801450491199124071218574805370693964038921234646978712255066960696516150681300606294107400804707570130916173507733475564877254736912252150981350331929933833438210788554383323618735690716080545580984367005743508507531994097659653368721043493322280618834992004827873811252750304920888817484642831901653960063046650291562089053229473199966789104299917745341287689103090997671881480309327162698123657206043315964964934205359309749955463534159984382386204942506939320142666378368948120219976141798608305898382939006739514551757354999717075389248031529410901185149261408759447372115939328926370506958329918100862084041028648992346326034564237042482425706390912938080170465965363072414492818375533047948623350633663637588656105890660335316291117659790023653012172857536620189010164981597772472905402267078626833877730111700943185140357762194548167620643753196878414851842589344814052958399638497025395976212635978594566911063706013322795334191053037954042597830413766751674976878746529964917834233642700074547548194947135986680691566664585329149030823205989028120587812681576743093072101761358226318999288797323093201014923212637326715179649554896892477661184315456716175749393840161652290784408942315087668705466527579323880554912666169377759895392556108040693811822480005135080937204668602003905500914116539448199594173218719034097188255907262958428371977008581794185070102392475998828961357377875643588549634256114678078334051871095131257599993180519092190226656156950392826194790160170231224330575443126065446462500868662274804386674419442015394260381155782754000040402071218190131574640109342733574833610146940368545125644320347075284483893175456176463157220928781027991202902189223828247035054633830941944779746913088292457205029220624985552355105654164304576298864176806201741134808923422728834745432011980726606895692588229327024544775347217655283908061743002542828159828767471359831392486775453184684460838048150815663541946256581329635955059482907633010681564496651788032837772344264957347620939757595579306386710047774393400649834055072362181198948448212717277785138995684904476270086131269781577572295464760335927355634301851525659582920138209150226200880031749728538998215039065355933128282835302291042484991010409600808129227371345158145829596251438171754663416763065800124676193027393974968282716096494372311355756290781019612424029811176798261867140483954668523855807275940560932973124055553730447992932564932798114831833202137311156232404092544419362171293573215519555826930703620869391030956262579288494465718175291633610508440138556367920711571888579885134962980427561385500828166953039086989620802903035538006255632140366817790818021164843877948278512937817115195312920602534993978761754640800188549112650947737794033808138516582177365474212231932820826980804014905348395503964389278202924723734827169643746781354156230792934930724033675169925218892240566961469968147387885186031428976353797624324269819101596656181862939220488095891535233677225687364384668169767417735744924027732442718521724582490379444028830673844564001853656074654175605371082546817925693646964418020722076795015297467508384135231135616254995291763514168838458188793842769207700363308166744134057171504307644550557086201962187509021388493215588493146361185166819219333310687104157219222584513623221990026708380222348732157579711911396826803848840402814592695923283959641886626796149305159820371186283109450197691335579388158951141532725042249535888645052952518856976647677540641989646125632782259701702333755852088622218260028535928144630861090706741716126123002253062294326943978032683573008816248684496380618338129063172066698253927339740049475856958735139345476951134818732264175263119057768859219802373209352298817249598232180205141646542331746026771047957385695174672602807096815250437335898205504740080301330175581522716953096751972016120092056623087754287106964586347137428066751678319373513256522148383317367230811981653422398026247437655894767569216343687766915649479989449089533354826086379823253949166726899416749983477046990214640899683758249505829081453314220062263702658890856758926305062177250459027499099932791976237866665291918639558768793566387776474276695160789608393162352529278325036415584678024618159880514292691440698965247194819339632313685463418650909284138271725216953836200632300921099620624942506081118148675129816086548637849168389142024407461253734991180744446800456578072347621011306844607797942213204417518481616010190843118577837369230285339399275611116062550093838015931151113590785216256048538691432381224590429977294696432227371518952580297336604535600707534380412669670586791436932809218304113925179378607725904330105369386056453122825753943173722335852211681543044363584974277208363422787961783015362502801858578484425971986713283424851276948108214828989987454317220977924036083261987325361585956014193841365176258823231664971366187149882091304281551016224391160452496338425654078620540396847598413729509315814877737124018717977838047898994943654297767325701570538126378522274697246787424130079364232849781847838418709500092027232765464981769718563115946830120997154727353173557025264097429486253814814007859420937562638394686737163244650066947567053159947268781125617046006407444558074290199970126210536944280714092216615182130793486989728370011952930810736667285487985787148223531687967478735752661938542362400071391130567555033885290142377185416489229415567163845886141110633338312041108527645828402610255558454722593759618723463643099396380123444892556529898272029900367843915104186874958244295462621261555251986745094446529022196496329554000070385210563219676582484226507331253620546260268684522660968880438380474372623233161666015912793688199594050257199993291767339310271001259536094694379663859680832664319316496584963397729194414518373166757368853645182023023814826377065301139112891369134624913279126032535345919916323452775814247666027954795407043305095730585710512198291209443165335943240846813807488753872970853754416828066098849350666996372897944316567926876367066059226649550352104308343571403351838775617420963086662250481525113784858825700250405158386183616450763591975664564712150619898520627461072077885340900897413337888452905606432467837237844238116245396078973114333370609605259730199650937439545624668662812432752778817857645097868654913892339614539387201609954727731688759973321677118441995894848614261038915187575363531390084472167159313610565905523068822701639006046465423719340430985082507735015485199317471835737304491506949757248007908426935982914383093138985548754942322744949162792191174416817622585153292309062702886262732717271373674728853638621232215215659814014346174420864122382487018421762113798480012891846115029134072351040099682816355155884962593470228424529656446314581220877964148139740521318982878542842696578224348921862124534021422918738248798312836552083881102235045871328965119752972393956001142529640219606769679575814793597999314184981204111154282216513239255907098748163233710191611397919813113343628756085191368235626377581119520159283010980245617011022257367211180753783939970561978347858998010395864273294684313310109468796463429787772268219444805699924553685460167533539940861811762259294277647153412400002769010274117619239922487172129321988282132145815583308103276766568215762232861023578888664955757065519767142309504205762010616009270364200234045097208356485771816682415119269448506815186293519056117128036592678213698507508774982207319334861979007258977582664142806319759559863145370970654776647680072587850063099401087894554709720638038948369303697002697458292541889356827697675923286776710169803509732769360272883121039870404729507335731757223271391288682308969775881257914549379342985359447300616559315055902450692901802949396531937276413075979435030186195182849400682794556592773381062149016449883428475015304083572143224589265200027521484688613520268320201235650451901911872323559167037232979034597875506946927721571147182379966807463907229451229908534653261746797338216839409164611176212107568264733826146148780221208854610941607249501461647180175574523157572564916552016964627970618347370461961194707193166112753777075198944648689161124640677993406222196506865913705310362339187592819657416107839829879513864770740645142244930292524076236866433594986611393309682004315015611717440284570589293425048899723028035902438855797151315458832846190466314888130054461650106191633925396324995668918855812076832961375023195402633096304694051247986849565872764528769709915657361774733919053124868449462587226912095502070721707162187967918776070558048101519229507432633782002791831155368264376788757991198116796887396317781452995442566577309275671432912484702302278647522453354025140790949182546253529101439352289666482429845599342557559177758575824235233897374748446334004725931357292624483984877701765481318806697061502288930961065688203005792824776845650575916401812945586968803264581170511288126050608222011029481378867623478883248252825039466886560479147243495936240857533931494128559506580257628000890635688149232095192164003188097299919802546703286321856744877047667974008052444941230192577061686079333377261667952372310225603045607349457206356031317070375962721464901942508795425966836567349678477964017862775009417083925965179211371888502696058085928715465641853891151124482809575136933274382978784025912924252701523801839428277642307786599800714990011271862672569779749355858588276207844192101150122755574177976386270585270654598893783329649518770115264414216448752086329424108541931861114096827628512901437848023439124804724666828152772743115489646255670802912294104703665441279619458724516005911000089599347648268573468246049695113680191131432130230724663416373425090192136199058793486103011684913670312515932112231432891632315514863903892049073046753790603338481462237904763363720223176833541143297333311418939424737931987551333659519236920605564181536292745717249538204457474709743381119982520693905592573907077743606915448349546454394555065175130465938835163084824746341099051994962367971035899271356201097850561624995231890502155814684467724636155469783168324827569631357175583147078970917287783371804851989545984382859669977686925059438280995311638096443817997760350113087073944851928516254905890311087233296314882559207427401434402388147125455959070011936654709673891258727027356852730777519396886203870643053734199636785940852157897724435609553832097371222349936362340929899012531960339947214295787475147685543217321671274622768033233000563823270722754529494217257519412510539167218643358594453492687692208238733143003926135466300572963673315564909795980489924726693864564374620224968338000050557898268566769671142801876726217786557664915770035246110093279468256367716153962437927712948381379723447290968522053123318201578958447957484049665426250203956746823547335325896674648211886220773024416413964005743958993445124070810023107666728342986005755493637474986490855563048804573498089745784926319775144735958577735630772546785298233325468702009571974896190023249744687725350453317273092423088905788306207272855498567467904848611804926653657381113003182547299877874226322450523541721830132563417954396498386793829456411967522772180797079505564445083804357892004410159910087105620865457535861988133754425521273028942416530758030330807963603979606664242815793244860528724956074874090361813640624302017652262395586836828920962749246091188942919022126987681974610643447889946335490493675843048514349980646095449673288773001522154402956812345344894693259234979855786079219347904248738644206792284192513273004963905388381579374791162995933734710442586573721918359134231189246812151005641755378356731275277203394208457733093229393377414746291204143364237584532278001041819917548416469079889666380349031404208579751276702343697309017820412023120163323706816098096193762383531664281467808566072208949378140585082658256120641566908039133014503787374700861916342078689658413132733633143633823725986924785670108198872061494310116009326430205345194366867309888936587361852746283046848650865893166284417428158134399120583431847933143825136125768653093775747737196608082413879789095686319242787821365341453517151201241563214557726125717115423757523043561118558919663144423086936670511991381534032262106215943974271207654652317651989664244752620471519096989174455118437433125604112060004810628341774495189990610221341264453400653485761580063364046688273922022619214475711159414547570565243538867082174995562889089016770823973102051948388718354983432880888607110361769033231078137963055727389811291277038682799321659040531468963259863919429152076441218374053356689581994265209152060722347870111507849459926379425827381004560937340373847005260432400476515103397442629158978594216190276546124371007314153313395606701209923570558935555864373324662393682733813766609885613860817560855257518818229823656205930398480268468925648315727203819634275024490538138712272836538138174118903818629370668796552740183516011067772154427487631866938516652689190966932412414576525175477138616790707468769050286308364149318965595623542786245515875993374048688880593635094764046404226690237394346938131980945539830596379527850040281880171518968731583106825414735475048320937668798878682016249772079654622965998697092863444271187840432634846582416724416037900486290633522739626326436896952186374585547737927708108320998006560378549786179281682380184437377739659675829132206012553928697061311830757497364982101473139995137801195836304657845862188194414978493700984027560068549802633573502769035013349159994106340615470787332906037072311612403418705507883790008981769470259740812636634023320523475949462864772027962521136864483778421277547089060751025530145464807254596276113743167930832271444495182515532025306889930585319483180619097628180166772303612166067813695171764875979064176720782749004474566711439030261848117098822188891664963938685131934691125989498624773419222103929318565373462824471898957875867961128151109965937010037834603669908366054995393142099942349260195172005600349859404096353991054727739469799041357870226320692025454984165726774279463961297439136852179485034061807728509874281227690114136816402846752887542766483471728545123898591571606211062103861150414532497879130121380688937808878574113569402360108611727474907686345867962597361001991170298696396753605633035859850590240448570523144308227985585804210667606978466858561399205325248703555458537010107735008864951963541191453995475570655262775843576574584612584156310747495367701904508846045178961035630096449832567980305263711009034833683273800925855783963976978875745504097761666099027954291885893089179509868123115630538921168142337958131082941913018538766498384326660489096880186078698996946395195235541223544449510914904279326593168916538452464761210297732380494910269720631973144576872230188864547231035203360880327345189251460428378272357373813799044513964614587724157800991829452769114892564495544578208112585497462991227232646490397507964230600261945260981238603894172852569764474274292893781644102259782780808093811884898286656450750469903550368236404570287861926400784608310625668967210515107875998062605331021001223580899087864525527739274544838949424609773097681032881810483775584905357543698547824872097962396028564633703672244472560265313928132432260277494460178011800643538046561772418288441537932797330316564262549644575247852251514033329218029943636689200450280879301458362655927453036932085819923685824058244928679704700489293410367432496807871678052871557152697953873176161393561325930030985187458526074604280714530295334442483635278630915145811167703384349810903471380868798951289092704710360333677107781408348446246860614725498836547671435078971650144527699386002279228873124616118886865145487571245875831948668196071351297809734289009348299609161372171840805688912848320307378043990298011977674459526087245017878848275822031416079664684533840137300363393522391326174642283971469201272934108032240148629789074135636204355195830151240608782357990545993705598339963964272542888444321935083739604441268034988549867801424120139847994694742672513457504328416115283189343362578255557624860446989208108295158121308074724848831737971440657552370929620468722922975057390432552935848119802663290934039894973580929027356502652096862827876692654166187793651464999633518918591982811237177058085129088914798950229698022775369781832643658030659460809240080176890723258414412971928242472038004865907624832984326661253026851033499026576578579963305728578158044815065341472910340118651075275759146213859575557984653317465242124797035629657648497169968778459841432813641506265880323735372672051002039187208654889404916333923844805717563887250930123137906973034464028369489145321874796890368908009191076964875226793196883973083136328551644284854543895511923516267055241661011619193956232121540447458844931776033264586483326999953276131156081986730317987770968854732069736111069687352300866613257328235545132889270735840381580895934095400477668633738822098999477588872525139289471025761158113058137307925695089111060363374714300481807454470712358569670187616304402485928102941244816533043001976781251848873242914654653747653084078562990904537378476391634106971349483164149431772592573598987741410425852565064699225753338667022937999299024833844979636165826017703760240428543525146892938266773788401005040778149801065156552974765023025304818482902235166349070894498768111961215106508070884528940298303191343694788607197230910879065454559290442696210241265089620800237754863792190058221375417994513677375502934421394783438454088249683005596980722742714752346186384496330037201105848844426282284718356695105783641807090871181197634134679230482799919294233444343374526571185195827581724295569753655476535585715371587886731558237317912035819433685902461168954935845484381021820980564566711522781111528663148797912241046715034541226359174023105072675781565169079497535456954661023435063517892628200738767157841844853233126474816964104500932952639391072551402638097234507421452663467912487992195042495063983505756316700242220978888450142354933264477085420732956420064799904567282882730897363424016355981512716558570876026319347603574797113673228442544954614124103144112136532959073184466267811106274019900800574085133602171132919101914817238581103597632336215944590686068858174582721066360783247211055398822853111623083077224932071876031428355497239999095438674791190412064095816350306921536539525593982910836444057789476865590642695907855588927801481153129605282973963783052239656879793291341582956231550105619750057478825843506838948027201316800544924176554134155367229678186722629752193572967621597457292998278457699958185701247041065275523470931676021088746201894983099905626803547323919174388035285239451968559022629912340556236681684202614065946016614268981636489632267056714545276155208403199775521811222283069464028275458309078800952553826700117480894400858244223448409014439309950760458749929609291944867872842446552942603550401536630485727845750678903342063754856518026058646545350492315463660672149559792319961283892566068624538219662137909561418094819626802348373704864453909857960411713107012433147227706943816242616077917473589306040322161173190236290108124146346823909101474784534812647369393780345086690201178540922691890721139084273626400840225609527953662226878036310749929518963349372478078424620773854564629746985678187794641332775595949591985874191668447830186688758259850633580953047305926279587882662813566957418566351836629677963353661625690006588345284789326123079425333212093431309861700139402245159398630153300275885744826155520116321655830540110902479913174431860947888944247191765658573938336152938916463157877752069260989922377842721076226754713629677265283382604580315488184291834579056205585231384674868809874757418299514360895275711489696984659133055157182490172640634694738316224845702956882134783218600502197579493279575371401946919871033919215034601174895493500576483118480038321070455100031972994606266908170328465232638024224858174035422985108136931116248203781568240267054026506092762957413003945906744527919799664729933275003238785344552182030969527725411833131949298374542996743450834945692079455833089572194166974255446825338646561066514161947402732330689180554887144239701482488141302433322116028228928803159132754604063931447565045102470784782700310083062398337903505920853878236743848746907159107166138352709755851584349132103501222558659285742960510769146892529022359382791271100717798787378979020601040537927126554260278572353850665444666703866631450870991655715371206920784426287258032345585653143785432590390181683860053275496579257260690379957598881347306888807474475471119322401485057132580064528148510649450621787971736653675812418556178181865092565915089678588385373460069351497669402008541424119586157738199026180199575558106225483616404106207630901758560745738847326450713338575654604173253371130280137894079385793643399533627809231210839700233028364694233862029910331376974507251928193044810605361488981272372755345364515179843869973757297234479617541226385432501523178083972557268785022568712168135342539028347810191915420343242593460913311364251073193994337038432388613758805682715616485493653802378509039348336224822731820740996845329664200662680372687820264867057829851192845030221581505303564175689377542106313879430081690861925874286987546755092349447396156707592501916836911293037748049551990970398233638263648913505843039964819572362115740772576823369907023744639354292702053460448038310231444811459137953847492391572943127807412044060803097587296697310718198441066933408260496984151577165929551948655816486757794233936898827759003578942127616047047342116721879204887694233196384054499475111593254796176239384985382401964770818520948648559242287732496687300301024626104466769085254560976052527675426097221758042315321576735329075348153641113756403344937644773157010744177623582318651700354720537594043178245991335983391817819096329898151391257543191389833725440528150815457031022896802995772275083312116597704221998268965832469412245112832949898729700252886927820088561271599497751356215241446212011857260152524697229091514046407531921992817342803276185996457025802115601746209063589075186175753000042491967200921485676401596976159704057369425903568270576217269808261258458059616706188663328402633856482864261038593074900732614647683459041578797930499820505904321300238863933029787387361962755332185958012662216325846640775464765793633808544964957096554919468161205115569439108079681353938460597500671795063102561224795271996046570862538431272191945200310509319123694795458561223792958467448322080383851926631532382845070622235541635575201604845859578772796435664079289773151778925432460163741951653324854866212599811797246357628056178491675839232577223668439231390463625063640230283172300137855383978440596035683326842799266546160672110959606388342429504300233636510873394591424660824687867914224109725995512135343919323395208857001590380446982663110695458536384642995474068040679609633400896596476123350118154718221565202593800562590621502729012224260404147261584034278162605459873385724563714777921604748274433441112967312376761198629786698630802417950047309905486807868392900997525783605684232527345124938846464261174378459017654469540965159470872997650711276266611757869601903289742862638348064602583518365195914728710254160903417107626677581504651694625449579938289961786666098572735726068550669586903757230549955720906262171394703968503952363129448708741524764225060652166970795528304128108686049739229536592431541725993932707486079566741459387068412327500416690860257614875887987623593673475462930459683470578182433923747399924993182137763038375299038515104921386268559486228289802909860409840116650732228999532240562234847784269088277733330025209570716387891375728361113161508282405867748061283780997658812245009750709847914399252401416224053285985178406026775338192282678495278866724568933375945160731956862168560635120350246309928374185078076042047738430532548387635924125575316364522931635117865222823289644483191026924741636339992805353093665926179864424954948846174813289956813731394830959499581124735554883738711252190337005154680402367783261544240656690622404363579199589191618731985304828006197422232098836693647084018123214174762767322394733060040517262859354854118824613991225459936046289697141341652030935025735593612611451396476466490210627544573749771447155080588826860313596615759788880825134084175124084231421887595702639616666768421788501511665029595597861841596054792017855481164654185831131412091278284596904448081819980631438903805220749709996445926804268473445415578103344932059501563201963053976214180739908627084806430321780024760901439771564231200722635434932737991573155185911006524727748519971019847797665568944919671648616867079037571706648356280803259648676734045842056865018193702426952536481695581459090936590780768681243863993425655353304650567850655486555712821183817396599836335767803088710405729720638481947048233307935220906084398628018386708952979494559033980397505682344935367837444146988538880452810081360625583295193112119347517762845206651922225273866969263002566560571379874677472263219110395446393846121845585775692692112744696565407157141418197949229614464039021523936521713197016823791016253905630796286769037036699987201010551972758839049026661939716483481149742391173870422714295049803918440920353535056464826470908831627172704391412142384229216009271291236006701029524904826889528581360849432035380413569645159309243382773010698290740036378191072142201091906924187216027755580459326490152150594142335313528627788269126850570087709441767082111178033916132310778845476958923562860626769063681154808619448865059856349824207852248210273557171168286043742793001905324214732698076035933663485592468191202394714809212332841860500625853791085553950069351432572141821734241696582891687104773831105970509981349409693995533517245346454725301945250021970423672563394199259591390300437260389765339723331018927319980366786966546139807538001500749940589639656960444463410488891018772540175813648299270189893187435147571951190164326245651420062310747654521955306220940907622656396770318223285959360902816252306279768529106713880771274641902570560244612378307890264854860064900878587772245828110243449387066147744535679373207145334080832496103686003164871160455763852964000928899056590388078720153816868605784536026239537615843658764131568954201845166804253112509061280575860518512612612637270196042362190166991290755289148425500020316639433680320405711411604237579803585659563124749946956984951358676171716148613421187649219985740236045258155314008760929919647446288133829073216882269131573555149018421727816778521303836603763561290076854453156388109058718069408177819078957451433595938390351399592322158154787478672620334227303779525481013433488701126988252706945729704429254738586395894031625241817680103388373892597828563795133490722566439821360408060769512299054794220774558697799330344439044199973576079750280203525292863656227166375301043481541454332706533916509959467358711349333821669894856705573807822002173120939153007826526128684514242907265999057095825486043035452329999651555781461768952857780536654894859263172911706262038297980160841215931881886962902828715797871793688490402576691969478911970166423079447116300479691660296336654116567141292665838641676558425834662650669041699510798199041563897096165783606780345803858875490439836681107946259228094843989003473574576572212780205076636124247453027283277919753687094602692110264128505204647715113195909759784752009540677372174118439959013507272930599636253552751836512584260472280813050170163645829887952963874735239442289840412742307669265753891912937927022735871589067800740485921648396309083923403988400951287322298306185307149444124552897445431895856118740001809527520962851371172568457262195438787859256273722400118928592109735917744530909913760185710513365526899609798279669130166471364566970732370814846534938788898100994832982220454610020172043612751203153811658299101511869430491144759374415119921482776988466723909198092150851582445610520088718546069873013725536346329956445546387264452326955782438168955311089653134069842041218638500690537990290112965560297304964605482196018497714995871601601863218792857765551482609868891466417867435548639885767216407980993078464470041589252981212008077546940444869022853477093950868213234073387381521176404447604834555293052999589302071650213184557608516378241629071597940866179526322650908706250000978529459880341211082557760720141887727490710128389363243734475532766109946298202924784572795959958669060460001018255384867456565827575071585872968677167511148726521220658930514702981699114593575970624052382042720167609089719364403104714270189011229197278328160211355975632554869999224338850451985828262910381822612265599259159708291978623319316688106297525410684117108625987030714408608388908161734018394521786761691021784000705721511533181834639810904855059841908065379840393196765261825490144962826381313686830190537277629022140822825320503157581449110521496934008005917184288674742328188920822109870751009609422271796061186875231086513054879407303247558551585727129568516671150265857537215249702073566554287480481883816894380929471939249707834269119816210471308309570279144044887529446522288091642693221208914373532634347018941418654987580854438978375427611160482194498573399194641634510588275964150749708686870653330876746855170863672200413355069089822703363808724832477362384276712729982790004723750336569135964850589487117971773589537523517270453298808976870603717168938131149261179907638681757227782503037994810530997141332106791117693908249785759501734734327486335668431549974255543428798138728885884082866555063031169230342624006519246182085129405138410943833830994337323561184083415610952547445426678744153945274380854781574817180554292301725770825421551455231168981598415763033104102486785934451395633720568858890690571190839996979952133448395228759228397786569316970545027552498603759381380065895257056548715399259424999717317167976251830780718006517305152956338263279321271806269594806341649691021116023646432358904772434776651725043701882621158437644226666204751278252351887021789802726728027711822773152103035872642082452898843316831579166649925682161144990342466951532463913570478076852689899848932052533721012467448559451168698251650863150655902335060894613325964758574047430716451021988964666857650930833004568187275724168076705921604355468100929255939564895332950279715672189202732570815062770907173871031323842496009919676665726212488713499205697235869332407381117705573234609021579847223452138277157958034722054025896644153905341213744700508903387153834939078365114580792027210147906297989923573034032499697624060788973218431088244930826619080262204999011285974929556277217464611468993929401059494209733817594382878025044409968753401903886017717012459122767688467571523696552122005772424503653973769690285178582720108433598339845445681784062574904319170877438241040318671414204172036811429895036772565460710501286018318843305902670413591446899968847178334704082914681241547430930099815384258505632760473908768904927932249240953499190341621154460821389836454362734525542137157891521320603765643461287733464232652794907883819238644475577059500911944414225760474872733464246079592462981704641534606513308409571476487155212860865784707352955176812758232095338163731442904741798402689359511383623361903652219368694895392929861056065435057970271551124260864308592728205732038245286337536004053715977663220991349122262298215524644134152945655157701519189869240729862580527069848312895480796254353197417128584257661140282009534969180216778750906409638893891048450466408657503729405221041128000954731966004650043944216848594220901445242927222558490593663824402773328362645030305335399309698777034309071233257624941496016107924287316685263884527512670603005707641095261429896648818120396063873408498555009417321987796675327499620118697725690414469020624776565535065664237591469173330727489154340583008070722148098316774819302173684537002122864915199448086439186071365067385266280290156868007386584826956762542105298641165933869248253833787875213492229698895497703342047861740980716210184415161772214819110043733371169367430877326697308599010371973977949610284291618684127575699139864921142478781435310883070128710377476645242406304328370837731525611944730557552379109846177353129064424104470894516690488069509146073182689449278788849309395000995070229035343539213325589476525032807105285424124294687830663108279951403992648538194334618029560143112432856484696531717017391253878974666097145394227727410114423938795895987891054566410426814789116268572803599678303987097866634444047449502378053749408916979173853720974707345273979460572492759082492782583350682569083780835456936366817395591500548911712294589342501939702089639872042336081310929952781885040277128738574435470581971449057130415919250755715118568712451386170846137621994813881555082938848375691452590235639700631112601221180043703847770706721578829144725047038571195085880934755063748382935317775380885589411741926329374954300085072224839222875439442262626959819118969563052527909934629461536093616354944787917503777137415907062317596724558368532599842155881031625624442765549902532750176313629431277960119164305097169595321129920452717744965463360265153656582884193638793377535522100075233062499389170886030551349824542033286014988225189244497897136543887876073258396869412398388082043346266117220437998133074235136784990845864816666286201110167877285493227258973179629008389380937836886224309281603626918073213564653715350504886916477877918584277379081886131475435737043839641610866845447786051856988364354553941467448836225690758229765668051777774848742973152174071722240899625202713446380289384331452516983638073117992146783653334217478880597728426160203584308289244514390795487419205994670310937677692734600115726354786533037870508825586261691695475273604262765242628038247711129035653109206137550104153516350029477360280304265156068704450345658653273748883138871363601280833913126850405697305826236750606618539761570417421742759409404777662958560993046444536969357131235331390184473101670285366894180350236163261932678725773121497249824508730303420476258522565871384417192798648134969900336823663592588206010751421305993540511823982213935958424212886801556949601316342658839229035170296385493143120268575172092434167716759536738545958915630415154340888500416067053346654082813070083289776148824969628924016042114161510361797779321029713476265799794021546997803877847940159881608521421353530414979434853189195283011575006555852642361877164423608307897345825052329324364026437592459180056329087230507629703648435508696762133108287701771634937764001574077061929099773118327157053720920536540297077678672665327793308599658001092217362389041358427951933508882214543651911343401434280942893214788848307387257704974253324646609483535166578176707446537836480284709692610131864502931229616599437355582029288202344507282771381373531087386815666846805841655395240631511573679215491126324775012652980708686532078718046128679242880775557065292782594194300758842780120959101663775041401431445651609392042139955072749878724457109413555504501572289709470592871547857842375495555306882771627860681824647647199972980036733287720747522653591039754964088642547652414313788619066227139203374830355538284344476445982436340653278136319578083438991840207295633122742404063291136976226856540001062389860478166862977778403127948999170739672306752216295096528789631503782846767916109674558488735934754910866919617224603794332653671753266796427575943996049976680661204001653302850494997286070427542509372077385863700415441026059524493707585003637841381860779567606680646172342950075239776514594329489671900183945085350711525082628454534527375779691224833371923427615820308014628017675628250240714602509716056309317672459307604868824879005384715805207507448203052649668981999402515794942321159027841043254258353371777888992395174636657432613728518110052927573466418481851815699443404088180376875351974066363047833728440558181929943124928206995745614238266530509813446643009698835798899933364824964722667678660948382182006917644779951541006483149509234023132985550207601297659765482514322142772658066657557824521143511835733723773049243714259570295855158711563888077995670992404167839450785418474597908981580413082967546815203466039698784393830818392374771627897713828444340513409511684277340921769072524763108922444664789116879432513222007365153456231185501387421523354450308938853986101461106907489109566359662948150468546756229289415108923729431931956149182318256112906025836428781721949291753453882352799362858896363679518066994355394737960678838639432992182785568412558677995497954613302878621464651571399165914028458734870270526106981706256806358660128164497972466681641619698798867736847470963519634967576772411719388989116184101675724906528123016396816931500308252014897457973889001526824023777983097240046310850649974105912095015707758414148918052832467306183514095174913707885125975348247692650042368546235843601597072961828044309168026370057859215113722012165857223365413744447659413954964395531325161609658018099208779083525790375772675062232251858830607569323189563374733180715366869988498638691437039379137969021750962586928425716912905420020815546977772690884691552481174499936570726048504395080918943285304474939896300603185187727458210524655774108122548587461398410245523154697286056159900491973013387453043160232464499265125017042598959818255652388758779542910909672190883553577724986861366152804958762154417326193041179249699714236480394563630993072083516922495396202008388151191837244452275263668892099295766770956673835188966195961605375350086023233648287212672794571825927178717732484309582827357398194107946656428415373520978922889002103731720275866429011838350240103826226941855451746236005539053368444799037802314935009104335155598361186501260495696025913457693658762226557706320751802591029709744929517888542021192971691266310414209140107864252386132081347634547297753174408567322103225460739301677418956020272992031624797537686278078459710521326857264537362422553192509518617187601345112433762990535554619591752548043038904417376179131696274344878531155019525369978077934471263842488993435819171956729612216520534622308553410454617535160285303531706014088121363733345863747449007128683413621307466431499196264587662383247945685549526493664650173730252699119087348893838082204903139990505627544398890446347223256585859879118866887408069701032026820399164596539398276313976757586756306611912485289248569949554527475825958380592669805669093152791187730205978970631378708933883220709508976733530085556152945784936406639124522960126695960096262492362354350067173565750932462110097876387859400037811122554818628659191302654661216074980353256023443563676312411815896469738561508295193180065715412630622899429863180944708829996977823600837319327593124537302930803197083916792112382203775938691282057040125772444861579782897032372098243141995219135693399070137648657237940901897310267731464770491543124633531492311649828461191223204432979879886545504885502817224127196412962142552440814338331848355485316489156555947284549415951832993178851797857233334982197167452209398227947038948309387006888095009500176018651075682619018212259879110673576574102371886627246993510757585531487585060688926530110183871898352111721543535127593826432969022233949380459763785580907317163495687503270898657045091638820524807942352227535687082560260318281292577270037991853012635237990106194259570352197978694603793409090768169039374240329422244856490624292406904135555797817628099397846780875087378892721735054157216861062524353129717528701700217138926526862619668687123822200180819981055671128721788669286651408685730731420302602941758006147543396996144541957801734713074532518466502487391866312265912601566023637862665201617416091315672128370430238318580118360359563761144021963419885177735871538027980839239623069592894450288127077113265979220538364752490063865053846735265471279601392705742533572399284392566821190075920761228272723860856213827653499339217228831328929444455418559118523325131830035127913792520760388229329076831775728434767105684327997447620079687854596090230370601547443724261146739763761410250891819342787823041883115567958045412431192103441351490269095501799996042072322609942749361962125944584701579942673840826916807034200373342817358824220480345776191805538441867061092786475446871109042765649096133678966932061865099048116796598605503404920596174158403183736624449878891035047061650009254994233945662165624604863627523675719584621270971010358678373762859455190356948078418442046116427432686078748084405425187122732222002621434798954295282674932403815009818480465700784161918386349257477692646056917675531836754822789203318027266531093127116436793381962280095954133047870684275861578398159667863531221264910741628340363758489867323878266137690359301362324296156031166345795033480696041468095999851416733156416636610638135933370291055809518610025965969335853813370266720930385742574216786429063642546277737124516142500896386538595275801322289186537906079328441153123957194433305971116746266490238943266717961130794582310441191900797838817152230006700944002400638759226943622851083989082522875583396750453543274241265645394801066480187933702647796786435630154195928502562439369802444070041489810128503847612557665321967998949975116516655256803543642604731499806941576711495717908706191447997252271479529327963073535876112075829068056459270752877176117312662945676036633571335348362257492316090884997339500082390802270834018442186023971562268946975901121116417635281961788002013550898606998035550395507696017523557173491367658050366348098917662374727779443889209867951693893615953250815761042649807718788583191666025875455855802071249602035690143602411606765094417511639955251176046355458354558683733327378353855866576517556532384665889863983862957934979865807839120288373221654180551015045183910468920950564429261871307271889759719852246213142951936737845472512841913917280843195020814872144868180912262141950796248583678725120084959052492536635255753971301282522666319312674727117087401687401981820530095690121079949369324046386341005226062833597847775099361974110216099153341241745632227291428984531546044679324631658508205990084443044529235683561305958572769849765100357637380948890437898149713389441121553404782853834102515862734522092981378958015125267959050168838110797793737852314075453642383267753725911397231685879268790411956752555832558943262474631695959323793280773972152341316510233269555100425671347816568789443259010203076129931870611713111472446847380987616613298215895237336732356716715456141755516238807971200015234531119945417833872460867591965315696494597543435262414717377027351623521869084588169433264954360963069032786367827217343378723421220127791453073615284429176459375754527665511736166249377625834123266947038661801099526416141446943686665541214653557251088231326044430205947829570646964208405066397206393173650735131730038804452622596036548486365969426951483721919405374886648224695513800141661753441310943976696304892594972320831753099626143078452993318016508452080323635826442101627431013661298558705422918469185853580002596570936106888670740836870849076125799471641309963888597728060572543836777759459494879039592655876319211032276505838730439987043541540772170815337122816972534708480460678481530339827425354606736133106255364807823517193731976382923197606879318639973939709329235846525925254878475606695873672602507496468659320534760333026702258789399715593846707346382221087165431159871108323635901506917046254335142205615002339931636212269316141645163467224870089085755978428672090870503505953911028556125649913517596449387846853627188016450215023465660857544006212932808424563547806671370456568519259335922474643444968138939640957288030077415667409023826142450163971489926715058806214047363887717765209161257743011347519545220374908961631221049043534651801900090993521519640471458864773560214651224794178059004235182076679650785800263851082616667884855895074915864512661930983830583482629690713170673107171972808077684848057965875444137992944910704747182972801787259017034033300092303925380610416754846698895731350680386861742639924436900050778323469824069242703312234425338168695545685424131743688576721218523392455145195436629288774904004394559466550740842702513881542258012779936249482761255301095759410701557524570174019788509769995259561720868943409159725896349283592949176418770735118875573352390975338613904611744197549108582378945359488173409788639450617009227355835690040585622723780649116217992575263587677173378254508192811081021590238831184952959703028904546355239277603766971804645500936638939527129375661836498772135574322758352117961769740289374567771171020960197086099888919748227818340645149632401913419859546667518630438217822980536476808596413487848827651335906070316166008073856450236740863265104795655555239056932413659061767319157743940613838008162286942147836605812279660137868810364223934492899015582775604767214528875269651849840975725311412696979996835831311163623016679676374068208473522076481987519882298630528018228873740084633583983983511917977005782448199586712374407288542554258820673303865935123488499797026231342809325846120618731449057393342952618555683158647234650823356311168990392980746237301858961751274620110241350253016504735987391299668773165788793314681146209300688222308872061583309685836479381171758723221188044075636045626651016083443677231341484618712669394355809447299222058095400341747711692494857224976113166687150949060130424278786117002180954723913179444184167702457630140229750183193804488448160477701404081374189395454759655273539614603519113393012231332991332925650798965230809059858574069510691920327933473397266149554170561661608154295217879242085018926158908427708999081541020516351796459815754559688069426018001303557855470271598760068073314518161940783672212238517331773178365856999962215938487588392248992911068712777416931374725695651334300630652273792455105626692188080781183258673136960112090771466579443662883300144081586309863172641906333044044508058228112815488916198322932731818799958851273783872938509699050069095815055996862377712942317619729404081394181360272405148208207379513631484335422793933427765368610352540772583999654861874606811085441599378263442183839384485848529035304569715109912504423138252492529540089600277653873866357415638827431411023599533922274661428089503023576301847389969569687857964761481338527462600017284007661035335997001107429588617909344856882386140221202628100987841947785566957670602082972972849321728359478850747856268835413960452050327339001159768997592348823789600370474350944012621810109481571513305005269673475051595793024141924677188377990789709674198562062060336577626066200393475145895121231388967680521585832148587562100493982743377929100085634596084787274433460556184821630338722910556433093467219264786656314689814420038187211093438973898630381721295790929911274307671977729157837674854628928521808203967143785079336373695007727664266755854199958856972588894171885473245704126545387279293835554230412841370132131163168616764950318207812335280786703605753169261111141319274287790446455907453108303045956119947788929764950706463971681451462945312429436355548868636124882656124006440932704627209919380249935389605974433512849065936304283010405817460612320439445967861994375881821078870552909724031508851804469767207049321932642732747494746573527063140084600227060695596769687699358161220808761428908243828225082716265451015076507112254877678312710489858125890314808011532348223548575625016361343244575548970840185256248785584116155906291570640018619382678719167145422978427013185563530075923391743715042252368714308028697389723065940874726155832002885605643054367547301269759923912140930782051634730568394435766080505495391291458645641895198421266755703261404016526464718191682556178050004366263986812632605156770373757632282557237224033732656343992610107277749134762717616978002420241745421963354236834210899820509839969309009668335172915560518003291237502797413833634655705452783485374761577072978602826423169895661621536415061191691186958507630088773984133144332352216108648075376275627953573261927680750591791975382208050553608592143706425588204079499456805320998452161952903487471729158788043378980271991757552841249516455389736690366797745851060492373164749334851389131076704781689315092800565250807400336026255879746587338958865045549105944187115107898947642772391413200859027313482305147114710862568442443055612645731317975946690830413403496984189526412808130392379535423395514516436858329717672703387996607050275380884466661324952084705956236035132887635692831040423514230736898302257618939822104514711649750864957931331023051640070274041872292552531255505075196263090141904288158378608018722688533033426032418874199474309487098090077968962215212782040363871849869115568928526788514369208111989669919917593944222765985852960731611027277193039228750373527674603136498728601485908780108902769648101784192505137683639443277985897834996707510645916080799781498674621295942992949510345561239528518996648389315134166342562538722904207857003100505766723878249942293043318762933107599216334103488185307894578621304384469902259715109537842483964045195613952649940910541934802783338141050549750386325213441665253257834624105431372420513436561007097502647497506018793298970049526351080384880012217081134423115923301825065523290008053296095052967476178277649903380464927564246078440062247751022984090446457608828400843839653757251633090869365950113166805903176065399413046783186045006298095464117932227606439454509746403119000404610136363756652514763392205640853948811565665156414499546999798961551708519238964173504861644019602822837023105319549445571577791956758859753036660988220249688649624023737697414908962278262671716470905454589643425135810721550993127870018109479337800194288116971384559781303437591174498305039727200508838510020486452766917597291317151669041458699094829963978857884712415821518191513119364659265502246995225206586123710861707775297248009628557381117264350439772399159135333727943712149397486397926247924574630926880601612683328108013730760678963885303524762479577296233036320607975313117003215631577396114141726709684579198896782331749802500904092769839889486946584061970883711871716267895059803799281868790835967674438673941108953719698618297673845895439244112174432607281434415683337783965800933241626531197588638631457596991628226060779033373953780686154995433439666253404137239336058376135713663148496022846567534731883339597694060242585033382282696716025148826483767031393661503046556944035909979588086530647752720761812141539410681855315173588005631797895081069982071232635714671453116275825250080620098353029985987653456158772655905776777052350680073472116044980648839123443149699456629688381099231793759615151983265012059878144161793289005863320956390449673274096775615657921695125695757343065011177279446769975484639636764740951978746985740500256663043049693037828646730889074067621720816291000927084108802198036646903200660489829526544197361650808708999139972680652562279641804946454156448767012800583944430038777135570780465643299132187060632208151427506224046357396332303341712920530795518615942218913417439346426986003963040050800204287041572959373530995771667761525162452409290068764840944524487082963723479466340834676788924290451598405086071695341689272768570261007189617528775251605114575792348758289688272500582964348325725019488704916732932741441469386161100821207301489450942209156113531966015060095153004215187968005009256702774616975269173663358847895310487516279254152291573647418488012937076008264200657418502417040705431717287584945349675596925605810680009173553233924655397658056115062668571458886231368778250270750779389298522128983767573394440612389601946254801496866953716675692027945004146572845670685309943119591039872370249270901043532552598050115712122632847074507459034059643855282087291911849839551668044048721547532339125619945930281059752503341685465676518494539988852432775783503720834777412746381874054586392925447115055543227998182086818796986470104656134118680053965131346723238124944140474145964713110072333552028123385221405072386153693166089460593075675862667907505370161104070340909262826748877502859752375102385452677962055306027527774367819405779533840765937191233904161229938965877540504209331657806959653412589292769002105835347234056106514555429320091707450439470199566983662770224702288304266506904551219438370568467083823573011816322854340018430494979858262176841561991791993512415309491580100793747740403927636888269384149937580571751713447558159310327457741875763711877571322468922722424933777711395755848434693143205619352281759976456338446352366793269416636529382929947315541602622781043404597128258224267019760969254233568002538348946563112495170146899400464009118807408707732996430309440435818340841417580184789950262473895690754781926652219934967405417288191105033252790021585459431757345887327695863977413383026542251574881272858188927328497769691108525938565217239184042582582314470310647604648145020222102865333086563744022595880471321869450144366817538530731589200519065754801582344915484431777081767125204611964939450188625676374145376864560060142151261292424645967306428464885104976111918846720498664547599992680177566433790034005684703754475628782493489840871400770236296504170750104540300696831123531729340302631722131708617620296043445482095434867636952493941538476675380957735512146374990805038295646709020523046739855643558238071200134051795358177592661179297460148692132026306003931799564849444447316119372536942062347563745047826759397321270337280578134312662111738722249280633363983451930368038925930968899520925203527857198099238057623612284960652327697097076479039139423140213336869039480868768474330801226886994620347082371630972470472502810603314164701447412054213824030812834719100930862026974909153607225275128659774951950701446835957034266146025302815338482727764497900776889807445830108058076258028265253984671218499044394258918802188062975995631428163848511209471349952422729096625621310572002786025213027165243573020132199505317112041933385624321811596853531436428098866010958543685260108529344637841188537182627216507454141542909241257634281683464248035818333998660735773094094986065706615844070167350646845510834483041034071433068861350648161231335008442336241417442522038471620685815778003440744224089977379525077227224252216325270798286483423936031993600770157814548549973279149571524204777183259862557471172176000475918686134657668007479138823888252605950369614563755509483645524943318493757958344708256511202977130548905985889360490419843661556802806391016931507941239844261414631452720749063421674666562208207338740544102755527732642572666260325434141645180646462013591074636904814091394881734915019090588786588657560805463319115395795199226915101752611355353654804491538052352430920956839133923664186021848657405653138658589180388829010049544105395042819085217095689709852226604914977034425634152011335435956016208048334570567858284751828869432645728470941550706639004202184742841481507293211425552538487682398405964036946755855870650778052888118437054370766853940204366790879472757699767427174390824114225151702319553260149292053248523316443033614105813480812118784454016800498418637195377507912250981688395943984374349050092769074304972197321668269078681894298865543260393479960279152866631674245204993576832197598296140906096002775007541161182341365951954364768265974353872503433557560760309426459371768443525658456189413304362658549333964488136678141899403537812518636180986143109380468608423894176571709198375302735294605318217748498067641007278068935394877856208076607646288643497578138491675496948013336164585535923421874443904872822023274827900043809743722240905566579827925407920182719176407315686878899086982344333242984617134807794157926078943786937879321819276238320885621982562620537061570533650998666043733527800430297853858257772582081434930689509974690284212321480543625214410992658451320869835695037934121927877015483766846258848514803532821005762259531238439549984559771836617746969487713373602949024320140089369543524642846703906282961292533317560905458015241533626970463341560947714703878331140804553272026698516916550545808852623472270091856838115291325160755751473298310481745116901185447389050027079662813573733289152194735131715071421181962239506403606625079376610114109097571987519506279076719920841561838312623278705367794958720934808531033700370796769814433398653194730055395503613737169035404412274418482508972554341132914140992101050279406078134345274545748910397870395925576771973032662920585002184124305611014711726658858875858110980136224271917836015056300845061260958035114622186897039265600676775227127811508691824093126398323889514330730920806181836705332722219967122138243924941338450308553742913951006061214064015277299204721624746906019968753616129309594435319670213870262242747134252951983464115021525852171907334352876050896948985966187372464714844575400426321116913066108000759019927685277231229433845375373445561927073184207700352518881985100009105886970246361413394637364036291676485024313959222610891431245843108024918533766365473795428101980063946754916567388220937206795502245397495279360432187604167371252941868904167875605071581918462839749951776189847012014172849225316599764249139615534630455967370036698271392447461722405377563884525060573831172206330995224613827515438426248418305454616142397679580757579289295535823158379105998810001363558358025381930496087484840623244213019673128572797569638089158911415106268293671325339044322044393512256271342583571937580755554709952805865092748914856061501490586722186301814539552715433774411574843014604542104723710659093745894556018507470655512504962079763495262962858574191061198684337435959902767513512428421627873827040736179018226421161905654523559821346500984434684749893425519419061256853947121550938357783997339853597992080440914014013019692058848162416577920743850616592988429542875926765325764612786581365386930230643249514872291568341948933977325772383110186072859921382743995531670717977869463102412096562992515636907070979765746223022481118369933795400372890400355281383879166964514630501744667830267733915658485131337332213455591201694281994463558691199010467025724886303914313189269027234278807655956714355081008523328736761888331433062584028544613817909164915113898688610204244109694930399461881564346922592382271542373255618657637319111383935082984473757876309088819066974875034626160773620105614764919585888952617573029866000284492088330986935638966693573658315432198051146302918030353282391251226514579604511291362048141607426348368904872534774146049792896866547180431109637020693661800381564926460176322823546752577251006348108332460496397458189485625071592798514006882345658766432861696499447028761727860740162787937600313403053653720016336106731197354021657427455266137724641467970163423221094839273520539921618466844316578051485787487389956117356157422927107997893783041174634233172312368706298879939563796932343814093077303166738558758336589487921922929917029253219531310631375169956489555627920773263344399560699134012345566186600272386440912957768174567455620426969663979149248546317615555834788491120313298081093820200166708214261953839391351949433245587415772583694811634921404847335467048525276266990959144485709083160423866343355234799524193321743127082642757150153738114470464896147792343239188365976041732760691839647606786632267492919332316113187767391913271315644913056937058551533950582292262979366928009889012737440110729913075848391948372516387525152681209356155068966128156527850437743856737065968657129040745040213967864098050162871632426642267337613821529562365220402118843091692449620167039837724022900775191199017338872565494516702488423144667330169795649313895385861239811166830825720223337246985737787251767301674688527011564277582005939357098122586901258892772753477512459695452503898261166802128775738056368563156444219945818740281065680175318556456529558228861695528627420028196403061439105900321537979539693021851942326880794685279140725877194846904117641691522747211068243909658349368174072439125672601413920553750443877850971869061283089542144509045453485238152261213609136327962561871364143164942213935544220600533827345153079867230668801356293013165017655537704716300915062479212373919370575413872603778440942173025911250492386154938190070397322698270844593309383716314806112834117948631308461995943078968496411168708433793344057007952647802553242998827021223958907157262154491883119891179649225568725795187376437265210419618862359708076370825191601974822344820994433323650040151033080334509873420821279214120042048018050107979856172321647350440136981148554105881197260873953942549086287378390374680988320817221479683074313026938154363684537845761557520199479117741233670859357176920959284028880000629172087162737977415351295805029709944241913807628723085063578557022002901343270927772987375157616624748404739285155086316421530282083526501557563119590836823073403043927151810500275265003370868949842881323568496500724939884740105694734338056373384023824360725388733091113738840764500037734478470910018648045541171100256140540878369928869527413926193790851385229297895810628398059044992413872737639857194829128448347659740140414325981885024539106705917683246226948397361157181489852877065023792132178926953611637930446467710253991656844314443202029811685936616659255206559795684826916762997773403173737803087482081178487672545868373342463345241994141078015369212415987783399746699739542951868182009064969761036782152809895298760699571035690960283710085997898989463348720957080217923366574870714677736736097246399221575321940236988042560150000758404117573195749841674033303526039480973788565390288665909901358403196480373293898604594203986896616222754894365507600023458141070896150939469264527739423511469401112771914913692543785853948352726485755216020872048124916910185271799518375607328442667718476795407111621801535398791824774981618583564645228030863239977138499283592092705553078665155645276895916218692034701564555734028766926384132577036016059645969040322551231020295599709891641809071291457489862443029770711389414628364848487157678567794878143125124329355024768726846894693387893096861937217245242168739271859503264117183198135708927075601079299185145627502866219243697984178114140454031960916424784392143902783386837264171155494396304194058880675238187742910855178800207881176791477877311363880277285669694011827275547502000935927404948376919641741747437643099358828114902415856717211865451819540327446308508490018672136527178874236275133685438258435726097657633985935364879062020368888102701585005808302800529052500592040995400955993382815605515780805692775037640593242285382169458924730837269334803451554408908180300009713590313876036950646295255811932331910420173976968511078545102058841174742956674264086276226066772160763338326092443117163266104428145958606250699868607477542904124446463286078462792080416316171887736540720514693121214325169234294535433247282417296043324790290635405744264355101657618868875755289249058307322668857940636107263471314512803909679409368497933681487571329869781321192473059949601402778186483195060983999490292484822645196907669493668091852924654025480077219908917729196093156605486780271484478376604390600314714645229672337382101872503917315524586995542388613649792989340573091186898229687569221987835267888481656201217993235571811933947899729411316250382377160747601225078909139136007369816164496155077115624751848671864274187522209836992625110794587674427102605491018377141493953846017308993344936047697330192877913802703135070732109818820990421774795824467599020083571168178448830478739147534493519381401175208813705984398465495570550101894746331785135447806050024532228986959561098127445372003405068433161951983630318170374789862663270724406537943927775061173843773910037015604508542441718294622323098741599261379231030639797519629062149549367514934829553425573267340573662545638782087724780170125191080613807632941910483768620615503990171057754937943719814986022745743276873586654721193724736483688847386369550472304586168757789926241799192428880868466327656215489453775846426936601705490410696791396585650472314269792668892085692962878423316515400879707948404460626602059142071572641491184272577254451851792252299228998925524179313295561629333876104160849199666317442308779405887350839478730728309916977398349794368477463448015790691042083874953549261759171854122935975189900892226217219144593067886197603562218812780638813224563555606806941525529789749690521025558711666880394625316581559026470171799000399024833401918474186111779142508795783220037431338999438878790174932178328570913622593452398799211941358296486042387182406741709862281219018573336815685703235943091990841310032742416308560704018396764542197565982152583422886796490617533288038337592518802135578893511916333635912565307619634468859555567903193134267533833066316434060769725033746120456578575427494456057731809473490446364211529985330435369838466098461376693430846170005490836101239165487402155201807438320463746783904999935185678107922897258746903677495791338535035133607550732132560029191031551310728317711625077255153125730496232722086022521464840220284279859329283668879907714081923988378503562205294533615680282037531395403317643158940563253112358682394728921042814777090452957049128759352412051358687603284514258273469448854564319334456061039277195821292194131087466667665924574913853915794463552398869067679969535565940340083926630948915637051551833293940005032264170884889946017449665907668684722866810183423473358074816786082569926361457941434157737969727619536251481604750464457139352852592175783952785644120276963185951519925370647385437507348419804585231099524566402639452567114830535968678311138004081619234069234032609897041045680379348360105449292069273132391092894894161225287725417258807157698002902327692992653967222231259542378978187961729736923126986290413294069304779269034079608593696955308287063349885358980631703790655102345550359811047226307843243788750268086652866619701235843107548719344699613511024653823076326385989468574353065605827530017359129830695156395419433781212111804407015361531438457987316667203618404665922914000728615704709231838888371259011377511015467281568312617313584544495556934040160625159122144520263040073167862421234739841566360615700229575795125960678909491807148721992011513386033420124903343269019031524711111770537674903792507047710800078072437972199974867805127054386580977383660845571415922313112507699438505749572084470616176464289701673424853130726531131411329692244997325898693793362053823104304688116727029678179353151479252622771508731784134720117508291991814002438516518729332192236713933021839371801828431923462068612248771248161446437262384667227387169270434322667628213359572086575925299335704693016713770629372316184028128146654033939299764799450835563529313404481499746082157314367827706020903620002365614794817961669533898203303643151976058938824031310458646245390394575637688705927941914463513165656385303413805511607383011523496501602628983311752665408951427645487394364290003104649756341864670633839370264043271999344450176536211941839809140543543120466110710229491479572822300488815098928800520298222195603137155531918072367580873515739494158638634659242649298271246874287378871072117796093428528221850751761203163287865050956785978469694397066857436394417334190563835044072943862175261006067399446571445256508218511081123473497709235330607315603438336668128028972835529497834686120793065366622984886844589730236869505731807170927104880209369886005259423468558242146632371483603347088790508346751416318599787318213771136093379679226713048084006357127404476190169902128050362495514649375628572555347220155291627360048420717450788079507618459136069577882486187479496027948214683255363696480557947519580422659618175754553725757800638500788289428801540451472866450769363642926165614640923760991944230253071776066476460974890130071283206700958344414867959642884426565334806269850089001435859793432049547007397901976240218318645022518735576819538466957130700628882926375616032787642159655931252924924221613295745040653822016726239861866164858143429888315192031590579600733663059264478017682428057937751925499116138740816555196180080619144877294851166256997724515082137146328190365180877334737532213901795694554698558946099509944819766231605827389739243085310494440787084726990640317835935290461384822406081401306739211940359265892291196901683043436227971530484459807315903713539908523055541358503033059942630753008447497312132922813900414937292573158103903671573439298137236609677070372399756471131383650360610405488716098619039618499361053903230560359089527165216882441207600029377720542005493450599593284765791445138948041792035850852529938744500649077050320426246039291347918605296418151407354308345877036201626136356475367166760597478008590314293613337929331917500848550960438971811040988775200492122237069558581249625713314476066506933678827688873103244542439828907735107267733266784393233220192621936564466322054855219636285988698212459059484145389835524317193424912990061814639592356382859406169029756476311262291466746536626582357583297221661709968921215263224954097253009276090968909298153985477810475460397048056409701943861124378321613301721735201695386677893805184729999611330175309536392020079729438433442713241962980107195951189408020760785422475347076597267957086043738013371561484930232571019813287494389614948548783732970942781633625443633308269399055796881049489203758750785453764050536575757195557194024139210826876090887690522636865403018708227018835475847239992289403407907951367963796350726344224554191280957705903158772555892207789691111868653692807238302403892362710498072888312875535071751133424809692876972015866751891421714342557639048959469858075006092798100439092494524081766250952741727415601614543159451852217185574955268475277271673891390290147202350598954961574173169890428553994402830278383776236501085909369192015402769486814408826839215934253185968629688677073556817836034197051841911679193966183372970001938229801502724830835080109717730911105870894894672305428927151182464154409106645329532393545051930527899093172811499649272530603470215987196134565002063107133613651786165441649703573682097625837494386303922487734357175596671101166931279192046208898287538871071536313688155466795901553145462365337277109419292748404169131454197001775401916619419279523260188825373033775233601219617116125553889783561767083773878526075631342058656819701929804205050345095013583730270205832447069646396922369063859331108112201396771000674772455361451739824657873343641455185212468580407288018781059764871776307978933254645800932156135484194842177917559330935785967194699195056191293167993441194597294243460001028579758994049694365666190975793295668054246701383744999094886569721752978624999444038632564887331676004076776907176911021713324616671369335776775179668748237981197416413893296651098321913188912306128832130617534730645943263123690219424876504426568006403723735652001243194823731911164158611994016234561070555880366626031622166878471348964997725714436357031875007532986006333082899705127914581977792060780694205054949268204440463425629715753409492743557972516015720797972660701996918700986122241889692247833122306988351930268001333515823480974691137836974486763207815466488126392408284186516024914954979864427209866051820357176456894993560204307104892958158650639519173056385593822175143013143480759866933265048747990380564683509565616398416023155104796598859316847452297845327115630225679638245805708738335984861594269992353031747205620220372615270897606684602608874471195186752852500561782972888719675246604895413107910513002573103926269088847423715651830991635467374572399438350009251653919181018423706418278446319964905528885699393252826562628242869076046959122933888826367890525889629799260043658351292859166016816271158503859509920045023828805257871607999148577951174107145878927892859445542297574892663914906061225590184674242048983069603260992416053731980399309580318458741875611965516941030258842746132677152860416756259971668900919744620570788760619382471443068200786999515821869152348094620599473367284161874380183762446843114622719971835404199085721267006752205570817790802076422387700830231459632437697248430228137474801499459678297652451111647562844948823911265802232072339396724873534837968347090372172780718219930457961708748466832260754831194646363162955046142891818703440255160661099604396822797600851051090393629109199421193882665513643110459377398233754702234897098938238334960622241445881815717448698580076801768098313544889080730980104598298840671012861381855597791311265857946279763440209325404642565232144878549983704521267864862959677235993867028758906282699279492148880889025975297177478906720299367123678763451986595708011874771798648451089825195533914045264040275752862201560983909743678839234336869029379490238806297699255692023125042770510894350978320237026090787722102888386917306520297074268705923543037688984749133115084572724089272768529320256830382290269854983092664279816962154826437896461283683804207320924463481062482376286784819581085473378891721650337093171623008278354460953550001570873258537182960697550817043583499220434782397372708582326963623701760976748450030410906040116877481312364157224925413673506596999974351468311300047904376338946838115075044798362249775689187063312159825736569343060981010581075128320284644444466922583587764541076542454461602377782788423014324148376077527228666458631768687572843620346387264647033781045580384086990018470013294906720162910673208665601527200357037700877236393370846191528320488231140350582535412867184976918987401837011197112474081661540189701457760230237450381123110997102646614140418572610895636960583124466251033442176986955312306918353300561885184871146756537471284253783753602700254047815267696386800281490670826847143662704493834208868297956055915309143195923053793897090912350168317523156938922081723667794771797136271924145558888086019038040749460151095181573219926316308153672778639533982650376935093196217493071036054682746385192384010858938048215379605703755413634194531791021440277244002285950510525078853005636254879620396305141675053890281548398938260561846059692543092305011844820244405735333994864623246986164271525520414183945458833906450700211202816269037643723678632709238480835704928556654225657004171664346794270566931694659035590025009811020461599706922269604303931341501123852020843307834927685212802322911525197379137517432840567171957865482009683483949354987063341045109115580239978965553728671671998063562188229089859713594565995658390071990841135290070321279848681737876376919750159650347621049267928002979882816144262470454993187358737961144612207504177376803842330889951248927382171911705995177134534299457297252152140383430460734029321292971835990233671675519020483679889348578542813074091711212749135188966503880595036488660019305177479737720060385947944314665010410771923517224472581698761357315539473606361022608171954947748733465753076976238292997066593811303556669828383083276695476109668865318112204113255088889820627979806480301121722792334181960798412999720720088418393872211390347247310851532774836698378248679654485396054673324517828218373712906848843226097503190635530179412648238953511473878639950548602246000335769136031838256952239304394162767786502263671590542608217941626062786534137817872842038156593007446364067398966754926876493957184903132121136562023902615229840628730956481281693035018696850371310954723293767472224785729641708198589405216965981052533788923350319872584948893728640768329664533840034139733684656642998129620745325565166107548253738167396922771695636536682581378539295928048639346240680045612897367776564992644452755616222399431748911099786814130034087861609640689091934466010685781739964966919294071519797706196735563278083037486762428189532993799350174377033041267846394107423900040751986059181564659477586096999941255968962286988157890242657789777920452894572685978801512039187864497160499936222646124958687721434771817782721540331579087438333180945029353819157281454183268211248197232597214322349402628954695747621010807874258476571478016088334049625546506324147444237115967899237058982776656858977194579259926929040833893272332479302542032741208279443693635479139795797203963663957821049584163144039654240938604752833259243435007813065949179499077038816705671448564759014708193628846063438708308730139992537252983668910410331359439434771325452511125521110927987277859513827089163665909520741709275251299026204554103080348103227000462081993134977410339699357052008134906942080378722037904643828902499024012213804633979802421821068393468508849301679182896621304254933387996548743861093208514910533275877322690267241292966256736459068755914896312050174243945263893979024423237032649035968525782137809651504544989318660685590975663239442261822295196564215725418090320998044966138139531209853479671146993426949382451496674751598529004751805276612260071977572249670815150580391434618240125218092935634426976907759366545209082025060278046714933632677872058168159702504818400764542843654950033719423356553170611002844230300420530529529330867637602864565461103827537415474849100931287259564420569761099930208810403531866948926239609953565722335747574315878618459048319664295632227261052716481983985463379437083657296409394888203974869606943333151457916397207480723433442706976286568508894730949815971906831106120010286752309520111063997859704188194278438731917954837460367190355693038399401548373818626248926181581754672309466283620556512169174703278872845703153454448585223696069798688922493453282096934356761679260108472382625897599052637923259164150327636255946077462741704332544934574448894772168762718277270729479679929407037256821061295089993702462171998898944678766862734579413522640334981775308339939067029665213380346983727289053247600661939254582065928970141526129507274262922793246579170438371626932075365011196015575259469406191818184873777134268344442405293066005733445888690588803931774845117741023973587752822843859586720282398743743529592115562432243892896300272910568728872681616117730356952723169774369592914248446211898945750116903129574251482845174419871337174865767463539747457615954160878152194938038219063171978546364806877248861810391894489750730538558049092079632148308935231848037909066681345271782335322466125219499267652914275908909226211751081746705000595680931351952840080439007572617866577512574528843305355317484142917533742487750948993354373583595545788270603739739129226937030124396568971237739451673185967041931739307423102053944927937255669514349788055457033059083401130455242088377453018234714836854057038398030083490146661575627829724543844947365389473998534287543282274785381373116324699293836702958321529676293169015770163764597073115455682766349019482504203271623554376160628961010317789208130071331349683386548654072526999424381887465482728672722781054698999243638538389171009159271708230490667276596162378168640441085875745479366675438596986709554749996591202364718630251342342866031230832887254261484650491333914084557134897421213326279563751415885938343702328836763614272109109163264381199307118058137053205218187168903404084228331495613971410009101715099373550162504986980212807755241862004587089684443830634459894955514400987651922004434826887012701983039406922428539144344376925256906037856331636359169597563628551168556316245250277545376196294289043661945896802391851580679143860655457630666538550897916719672277397520763582919057664796718038856453881886603506454316833551245320523828327827721092596297947436508273341906948411747713586694162355151541897665027365243778292737501090510930825867898462418684947221879450928673056564729372657210556932497375301720300342984629399035760405532694801975212600306698038435039953622458649675717353644866229608676650221147619719066836700078786195257277249607749530158270401915630348962763155359129352170209298150999571189777124690854467614485083505413333978482613439531495371915024132149252570114576270103268359197885516410361473764759625097622302881118895404713480424617911538541632328400543710846426909503621868337287756445555844513212607093650888968996261040660972714901582592651684776350623657335276719538329789200090672985653235452227481654101948007407498391882302793263914494236957352889952770410995339475528270108194335733697184319508165751817731361789203722200462320225025710195997579524022444777321462083760083485538773062739020918868352510196397670784185032783930345616401418765456938000416667218785983018332497804306684137087899778060970875131224537331792104776532196322692920624441186024038239395826938487694386479921582750767801607506536356019247816328848950673931704750819664627195118968792595048559814225373534918820225223225452706403110045058649340196268324399675027094197725799996211263154981806629354071558361027497190651842740656593725451257474213565274061255142087368319535891534018300564376147556000590188755943248998734235441853629889772464142911298518495310609053070368529095174747046621759278212702844272027632422188650036282932734481277819082473719717873312282624529339033105661231369437672159701905627862510231496508385051784954746257928633548467647505619389560487127247631535427130602573246197073058891449957628661080519401608773839935947596879342063061649761016289384743787627083980936528689093624135397422309740440123377345283506225830076819495350573727124729146302429342011820559428587540967299824774332995253289388910288262385002918686066223060076954145344014154378027435465277981124805950108815688653909581055179251789261685947619890185128854853300197191365805093430865137339156714425310693345585359369068057311121352209014898432261639643263077611402495957275755180179589419401319774573422892233099739196245423781531637399205324766455348061014367306832579576051667436473662023462120548832579620677794658961534666628496225125599883736635615457380994239822341397785731811852669450921933340027839566052219043439079521876952862953625834511428833741880138976683348345199235437275950997248847549985348212875416021214200071674252732281865847130243740380124721275771551735438068693217817098469304772138693436239351851772094380919024767919123501634197498300194349251439227328399895275284543098006139755700791417081678257933982580345053035043559971630184552816829264227963795173998262569721393103488869523650338876723534591792138831157879766244044458568626611876186607785442345782556217513915151217506997028267121482353761675339029972479438694009843980337239260825759149712252496999091625168224188302770648315381122368712756122608584023252177282389919754616966871004680666839513940546830147066324372809717308526175004054058463579964387130602504665324509851371135047840666967408120622808495247082736778489675066868066569520461593590640327826022810236552083797774909998813393057249306686654387869383628943125351751613853047656960848342689216379531764454189162730517522167897208041102237228388620965663043269375053812605807435715564425203015360659827372446319420027263684000729039135232160978068208980025039711541356380741843338384377559456889934327573287635899539343330132152259001208386005125201093186688267356726049987995351226586460768784544884183383413662542219697146325189211728250097412198388943799647742461118287564927400801095806810716319090555440663768419924830303824453861204763918078777478409553293677312666506230463491542094550301318699283858704049776949876230868160119822506037840778293313714869319557690412480960028942859014715630035995211875113496092846464388277636681644429087235423656262418491311097071158811075995684882418627659429311553264355336578107862493660680973525672832824388047149533651630446322041993562377636592354694982486122240436933050644547086698381945613271731670628721129223308827822876856611293670404310973668158215665253095319273576065755366338130811412615041827425919791584686097566171115535926504724528901397973074836568456676376607503000803886827448092560195250182287786775116835185139009239907351059703270669619154073287289116846607505209092006071456463839356591565542668711062586079996634045775888276982303474499177127874165892377979611704433066549908819497037199281218530920424550101018728097074432904339482702886320072929682300716061300967267295626979183862541923927466039000712109973496105323355847256759415833536503896957888361222771610209908180784994235623092109652020074968190970233682046479621093852321055876215088656767684835432116346982157387655083783203733814319900742026349784281011684895754010218975450709832665427621469333908039904675311152024150248320056656158063597923618193230076288272946688783790788539740489695339314700311313244930932277053261300288505434290778900634031910022855993741995905453419829483886576419108382166429914611419105410407217183757715506151351539277140087755200122840978187258166270893127396454647725980889490463874441203383403984705474826484342166015060409787038719760453329681594560397417927703866116917540306056042759474927373175806087531129660798807172302188309181631035546996789996768141132238405848721504511097775413092733480856139943138919564591791374612961227432649028945058286960183976632667681848636729784429610824575327353237855810127991695760753661632844571547967757002225920394790124564718859527332353801320498670716155091587828895672746134396154959024810526757899163956156292280024734147290929456542414423842797513489457306058339555466206627021001410276707945843521164890881686243697965682341977082233313015802821876841167102851911373496255504415650032201321878072083632156727583289411942930094201762773431074932221630169690371102119681781459611298508035678247175572259523376464040239924499411713322706481409220890393406774165907933582247961761271957579062321607533348044259252472166376532812491737879135545453182838865387075647639734081624444987933614312318569653401386442209305743912872763381581387125506737122428830099858186321015635349402278310563117033107671249904005132001293489702721309952154923915078590421402689313004609865615236140525303927254313140978670372367159813508704144415568474093424285806826691887058701331464632050819150562484760044352070807540878211494946211509279233564167673683350164228427865293392832792845332151528920409430120008170861858410750441576216810260608335682836973843197136510829362124680025797679911553999076484038049928171803756534595183845950993400933926031105087975376413354905293957087659913428997297701816142947608013283728437159059062879686640047061491784659514338089797901747228882213053141514526750479695173436233472615330300093049742656539457947474078856366781947087581203460486212211973268398503198398806751235560721231422483976820693357970254541142678568828685762181461668246755029523775266140894926217941023421516354117757026907294430769570908960644149658816717421216683181149637091447791393408677917203636047183375907382009969094501230844029782431989830742991247475096595054024321134629833441563938684666384511304171688046800828350179909695445574285813277440301400336368378712361162753223918520093151086954785404060385142967533705144922858168231754675785993324897043319474811631365687622442092119616398478074939906325506586104726499462785709118482930764005230239571694045302297748433753449693479104278804649755091689284811027335593809440469348957848319661916191568767866474420917676961460159614300711876371159818435709487634197399138085628617818195168335660513197809453225854265525165340525641898360419180987756475470093335456463863745881837071930899277747477765194007121001602129242904288437751885569693798413746195948786640495288517970299440341709225712698364347792342000445089724019564277684357400046918068857882963825556857695524334810592353696323776654121361365941658964893601269083039121890796693463878269946256898943238426947900195449176490799259672833320150204055056395822883229865421520127390385712551158338946014788267961307059368446271407317663585074877351536087854710599450815737503768721757586689747637142045085859347552037159289414490384555188824778224888605676817948448850542482711765602041275625108169873029478991692904177807320820294539123872885057804711502794340678197206798706677346899175968570170964221498843862131723330140364840906229633661397312051267854801975140106876149786782238295155301447754388009420919581119084559317284191284475424593024043441560468496036522322070391819795473902374792889430628755879895504346332729229426581981899384964339039017485919007454985194324377468897151635061784044765817263836980897975093316068670902736290679673652827703154632011642375553779929847464033232739853551610977778107521262296894986051351716560241028710377241294082780755589199253507584971547702149091468336554322310865474877713862288757608100792717858979025987591886351963060456666333631921740794453033459277301240490432328916988631072549085903950130666659273011702603766298106832918880154007740068222930213859576454235684172436497530339103424759546679776970800273759435800647152486835066819946207850017810354281282583528653403952123279660353632408223180898254477105204750370425226479722869915914522430007083320007429597732272579503765299376768720265918931466788798396187665084089721207162147080505329655306838233758647809970173621775251826622594488975554791079002943280737776954120378881938575336245355575553862151372157904856451955247827238390439225555860854598378324204224899605866221584236888878281887503287720578409778708991012397962235928130415428146206709469072943044276373570795194638240638535397538932514553204039865813187666506718012855292092902813884649449913148962151109657353827367110519461256070483211206288125968749690533254651660985515328470502072184489791513038599618270755253508309417881533073713333483247287774790518106099400650621846957914160902586333765370269503363251590124006107726551850408574372050402869641903450601543414825874821359489668051697162204129218909013651942661633491015177709354187823411594434257301845846047967497734112396736746076937584906354299939745453007174309149674014521858837580790841009395282512399394188780009800085298325011797155246966298052393594260533425668348417106596468996024067593181873007607716569646002749184784539283759773956101054362297228330796712427595819133817907834096214082773026094598302411681339242540210247908295842719227209123104987777436008228204047939823835763173244317194831569713300108285253401780917584652294174735919734937221873348650377566376945451734805841274192964806237884746960032363296456071875008561994006290196361814327696107910102484774499481774730369751899228135576935750144684547038179643560419274820296641148426475538846160928431736673260951171414551466420877593721160664005713187183194037824930356602642114555465509638156171759883263066063541502910121381757407054603475894377765734334744331361457069549958552068159687192079552646702350322893258869265521158374045717679269786983093658441605217539839796914164692130528871247348215268404863354416036667164545205728789206539039689657009883303927822831246398832259368184889730076202950191392217469639190081298224475781030178407124137118133347420691538063731963420372270013531282315612820927307873336065731882243303526775361685144012848142160469279280062614904237264752955289806723868980112463526170892236094195142983185054938776422055983978423549606838430804446309187389828110323261749424902459296870542909598932771886727881814902205185942496497864372201915084587252415137733086590163437389903690961839418466048047641285774857339602432888485615948165391309950784326152761242743730419813219131097138233235365219625656568413210099779346586712530980916312369454565524086709902579573737869073570795762333041520457760151388345584741962374792667316394317081104616149280635883891893012927765043664289222295248659619647425015639365130455542218413698115505602264569224268844270921908249138797460468842621535222232159695297204600356284480180514309235146490648315581470733739099094033063516284763645243070399022890691032269063357760364860551940902782680315937808826592838678858928333981443121074324210574440779725530487580754382718089738160582946051048302938386321120440632379853101812009680047840131210419317231158801989412899950944905182352028550174784547276205986369707009621505367367800710401866180814138596278076915303308597359792227429779680644323689308438222161613445029092444424134286820459892391441005864948555982060284922716247787026995589742281427014367258362020191046924111432481136567823885316616782305910130295772373949421822062853229253296628105627894293746615051753207102325403956069542024998214315397713255432975868552527248013252592049623639186428240229505652917173498207387727486453474499266638334680804728431021137809271950366939837088898079287353281533984742606450074080844329450210486602352792585313312965313224536877330895416706614836311068277941901052865443855254758821389430878387554697438926764549662138072288425723934505208345421566445773935903272319758171765916091499223005364777283812733416662253384147224262994241192462240097854472979829127844039263998169698249831998810282024020189496060671263656610074693970892064689403357049238092701070510535093856117942730216979882535416280152727203897968351604236902381883598872104029201907105608751001679037111105179391713754662368383254144717859386530297056462626094815960597311128207255718281113324607610421774775964548391117971361887347487868253984586689749210617703503217366706570821698555986605315272702364292962106033276295129349217521429748836174989730538729795231771376516956560760094102572096526413672280471890194845365773052324718457685643453133418091260257540139039411638861092776307356147710429820371485588099882807701182076886043581805556974289513493920850270360998529136566724200040934068156266480004775036926701006718756549830267840394977902849840804112864904273731878732357492335157779266546405875527019733174152553436934333587817743947667698653410903424182885600468244271735589195629962507979082737456067765384902422624243413944410514766832862609811698696299573291894803130938365787720305440635688808739217336431685630197495882407785656469110058448506322174856027869870825449234350094624287811424792557092875881603713337049894447935541357861767774259300350199487881893546457069989802388428594340235293957359036387799554858018444355982316908424883535500656784002486228853977905919021010083266439140423785834714153921125211966441271967985001403777378161139546945562639343963722916983970344316180226380185350772747903835838776038137578386470121363152065502850438209268547160480494467248770511152956399198461966070480199092254387591936048994177642432378782451275097624575285549009194966343005632504215824785039438656573470302650698002722496538162275541258123830022466850559270192809527663208055323913607488598549525769899507927614076643457646429097181815270408434116864875195291524250698686972091219727276416639989480352938155720610365285429980422793399098463092628786791888447458228183849154137902575761730557372190989173358087060952118139139228370173304768818085099171090504440130249073627223745299812479422165881185896380881296789286027173502479061364226666970965563306010179050522655425750442591979884309629281030657817347163705682133316954675385257041275570407558625868324966666399960771750714245424347638073499350925572652501928764086492761849717304589762514871648859159895125537522822295535780927551577177349425449406463653286438873433421753070279721078884393578408051947775698254173932129280352819043283042266081152776150337280932222161462728022551727594025891404956780402766853683560064837512119565560379290890174970568828924953768000551170445147090402764770952661261789116435270849476633363303750476266818134938316846983860367178618075709038409994416681888508857156733750859452381605828850594971914115773519469163826632910009363196937626265633997143885908306240500221068562483937545166453897795264550145438489917421968312193140137299511841009750979419923746884095425013212364767075328956871649059351028968444317033151388148484475429115655149549323986047347014309945309592965732996406961790565718915571395922522237799661633492924092690021217235135430809375801321612313775451234872903356146091481642758104995200236087135985496480127596933372611487822048271416542861097287385314981069732753696855913268893124658863973778605279647314577443870375512914383631014808801025549750185056343837423264942884038079814325557800163924992969085284589836391329251793706254015022668173596465759859416332244151575736726621923042569556660186221382619088019258120372388154600776003859044903886176642120015712766244087630529283978600293770835310900439186588120008743195074102899806565937988870123097310069701795579926044738696361160786515983764865016794328593343196281286555160845291905914267792049399041189678877878667430392997576167646554681342473563258183134122662690037483369850318720011746032135725115548751022769220143344417041475936503892095454997699002142804930356954589200600890881228980848054976146423981241706535745430437630406316824995543589767797872906794047694811267909513557437820175241646753461329758000981295779099727071190393638094497139562962587268238358947185416563847329242758695098427673777219233217527653968660617728237159657082113035581036381518279132569446119309158813353194273406654288407415997081949240291838849762574831533937525466736508284396554011389663016763904630178354753694786523936554798320943468147633789840657847245614207599449897741287517449458145346573837899796025595862692807395026992775699077608492022155897434673926377917530366643870530714852519470220957089282863695049358558489320909558686670233457554319254514425181288007849915141850033013801828358291916795101513506325891573568794876741918382330615913768592234983322508319995527848625505908486745504695160242052152523566763826664320624401134624618483553823191903078979048915649288167569495129760602261851595750909144277224633135683572235099411255280916228242406941132232568995320003903020219696821738613098796980072131163862039032729719199555770591894651777093108673343597019086754637507774941816421366245871228362571309690425221424092741444428629467641111573339026068992839959142073445918210129878938271304750373833166795787273900628348817212343279316790078017927782057627942474196395117775094573952744389586335334736796607055052701214254429947908049134644735738109236893078603566236646115074415941923079912263580537526359624935883885499453578608882349064790166624557209478823103870099917210865162700174127764789314306360703172683961166817967359974052437218012062348194046773515110115013575303935536135039838765404636303172924040044393454222886650437559521679638559904741481073663576222693266433064224662251361964755994793944751674283039388495387860866631365660876086740168682542438595093098390095082474146115182797151479253878236323116039101597908370532676133565305010892559736947825669352228981542080144662048550197653232102181616621953034657184128801650264483177753037857572107572167270373519222403141487053328125560252379096528551710604474479118067319707100206860334909523369289943517346016999107184507049095286957774131794120530566393158259808009454159456847401673376199344464418595248458578067918467182672145793302716286484233254970208681474069158570524830142625134913013179318973838245254931717540343510630594415185851799332289184639856876612867808298214112906685003925620774769600566532434851625148542827048561423339710633961326931405248211840228020876493282460070792951867118770746416457364563422226184718124284383548826605654175590498795369362959566497254118371933569798469939982669708232831209910934125599480819873220386864574976150073150130803594050406734056012325709787469629188299464967009553229932888316237622770234460841617862958418100330595177229060066089581303058313139558858804827622596251755183942649806312004512718100192221949705766974884459659269299769162079726642341433969809608501454529911686784527877225801508574285976431805040716225494651215268950797614098356924309417467654518171956674720444984286032696803718410825938273355849743868558051359522845528759636138602758981945310017076089442733247468724295891164782188536209845829468303040751100830546676612131694944656386623369731490536304878907883287404207267338339692583482813533324626119663972767295769874440365471360016591674771423861819916453062722898155773566229226610897177977150083462794644093605843157320637834761951700001658106021009287840443568206520194527028568264322176071358160175222197346722332778027439894359711559780381276278065260467038575085560255608105166677818382636916211202759547635750927356103375651797699465779495961144911621311679160046072342568134822109174704161025408424839924042350962196912636812091643490379266934922254635101740341015465437528316207061053908212266935397141446701638713391957245620135139204050918614732321829361951891236454920882390497224882879142572991339778222478186521013391414371601077808100071612966209368046726337703019405918478585965573088936450785793600087862868663380797636890280780619857010023224477251403933032211957205696718642388023218633477611259943548649924474751661178360316695263754160436006356632387105927935792175687119998228111108914246461015465535659621270420999440319758735153439833319560989417309386547454651409993893976935539224586430358876231576156258615874628728187813371123513458788378558042169776439852599278904996242906538896215821222189788781162583829659073632484969779876120071306818833725190037037740348722504297349609934766072848640001631992960669543707142711831921409924423946958256654205419145120455361423648841481602605377486614986411028375951629099962209123298192167833923964256139072775365707736393725119822973696786924689151371652648697596513443576712282685837531440126280418404622869358897358246373787848447481641210733816758775922822307915498221080479590434831933876343307339949925194243372136321191536581087255275493903497011795310565274368888944085474666472727078090980804699730940520281612958244606562916550769680235614513978599953561449185685794960899022815409931896227352107475824485672452619510048267256152701723009343943029068805301926455353042977099978289188712729775673122508012156908989210462061030326541953558830843463311842324326679350246989405747391049323557387286249786807514404987381434351183852558258596508486197653483051655774653548492518470623584636112896123106347561348782919620808029021541889567169547057841263606512805097004486533945692126761074648902182601513600217640420759343042515496047121656063826907266881060328142047412200888667349415179972464443148785230281956677300924345252780354723713324981121114475271960517285263909324000741008504101353495340437750708682692909589645056777697550518169976547742490749871376897080542223103073699862144213444970480833388629036192462099417006595275523499456084088835277119951256411788748775542690695378901665837170505976068817790849116185702187460703920041121012738663425845845123645938488104904988917124685739269622180648113410347799910285334504336352935599469991079748386073093832224185655436504976494583857095754758924181079549377643168962607343645891301527446565211457861415577099210493343713276548550207819757756130190263162731243972242674146601694043536211266476206689557181471499791222039059360453171295309555401228551081121210265729697565469723178282753589325263383311106965765815561173594867954759424190295582012445750907537337046035362261549710395443112933407783239085701809046135796288485527163402699650631291909942696959662255894979756287212877571985424196734753015874634707330507378457961453545425206442308782408414080784627967368738878895852044709279081010712119877987278359242339335575561937132499795938760984147798982138182650343224013063857454488549358970704862514278724296521006566497870701568388386453995903650801711143641042662786967241419983265473341112848793309343958086678907543407020267937847743455352656651292901343372346289780107820115522188723937312016093709704068632553677092619190039894188411459261537011666865895636731505221633041077984886772114941600466211065860524850410795479483814251404996368249707396894144246667174873674631685170456357754242310515058098647646417391062874599047379248881072743081426295248909319854957628983241719089619983841001815466443780823753328402254416041489599319087300847247285574881837697581895347939088019845806289421123611333546325400404665357173166732386520784503080166195770809027132411891654620198070895546091872385437261138749662997666582523147148188003237950038066701185989421959948218404892260458854876888023375940142157915429528712356822719394165950006243911835934267816404835416238496792420808770996375733873397271385700510172163901028140061996402955555109205148237278889395862250635820057623558604606700333545148883088032069907961231844923797333900331150588294838020687671024091648595888839443246563446675746335849532241416518803282548820899182410294068318220651171221056358109508052676082430037550648338281503658350774394016308024374809798482956648727702134170055891139662180093523043539548882559026670900065711885335952330130700876190428286557679076216907339408560706158893619301348780259524996703159143624421997785198300437984441454865516590828204141139376731810408771959657893608900600929857187848245431621802453861168378585862345107828491821691458643309724767711314959030827346185247892215957636176194158034130313191841607759441012157439417745313000107950564422525109306737523223688543242791213530557592621003112211862038297502753817842541731173375517119681652409284367663014028433123610329234523189183702230344454974141886397398650837286068616943625131655980642940415960955828152794744894079600670401560663542330566088822410924622558187358804282793469664206274112459752152202761318262096736092737034186306804296209480151901121564632335461994960497408344435453142115006726825166877950667254182169648683330823372445854924129216731909818022915171702763953907659608450159458745976073782236371820491172490303721728475214768189382828585241866401407091409917788371395692161707697901006019230526629784219510099218401232206291400604821781949015619479026466313128750290832444837155466248494038615248535327366354838102400072695037536724813331564958131952983295824894569947015409838635883751052744503875423741635053454843905912980101603370240650914196544064089309928745635036122491584860237513287337313061777643833491141679742795635358264326565093438974387697125404890995439761030944701223017049596779161345460240920721494649710448748038255096475579233784085015704696540926099375292975065756324454786401781820868997603550120460528987523722840965641540104304874662760719959290035181390822646562780069174993818897575504124552628118769537357505250127280159222927782677371946137192165164001807111032606654657645725683990411126551032698984776200494525732076336611879466854680756555778816168336505980479975289388593446218272748276975735348116703851100088120600268451219316134987292279735435145251620662644675504351300995887599865911443487330276057832738606108196032567833536252139853721463271371437336685259428978409279847787866474664495788358966808204514776727190703126288077107717808759446592879491058281275131784511939021920436217399927104174817473553005514968071374613766826102458229788902686407062087169184080590668402107117975507316360971232104299798331921659946411876739047383582397271020669138686758222340768371402512878602433601375456956121012111866856952757609838762420131806009730015109487704186475014603471909560016445913258160110887003424095108600659668246618613700340454030565015603210896111956432794011332320624412968527189733900293043875268264132523728118187341837726683170798223668198492551731114048429226360049729836646471747032035892511190314552637820369748273764447465796347034362774521095560749209997068596631083188119705267540760841852099074526412683090143476734298550655555049583671068719038492443885017162418959241597064389551791976124801051183266210839518091919316864715007622854915463321002949231384348040570977701398274451934839221971306082370165463372568013935034810121226605114976878294628586232064347412112626633527821577473245248312413542866044140191905637144561933616734099663782714960097805768754169534454405994793961814891494772883934449386237854457107150266682904961403798499699799041773145349852052515468029679746264819668702286164231214776292412429658312763661501321599568755630321383495785041950236693928204408381491115068656842809603044852969738253800241726769870945805588238766750880469991238113646498178032327138862753999814306474612404775417177869633386139656178859648317563519023653894286098798132431059641075020220490603935987091595477942138098641791325093915143022918235919452911502943449313412362151981821583120320294860039402766901266322070662570651654600527475224010199238734690299750611631661928185097677922609310051354456493611645965660284911284552622478572687470611594626032730492603873190984272702230227936371756711926858364718578151551335203402009425573257024135674979298326066168923747723790923156448369939822190622395983512927748740492188486514861800676468364747663490435468522704418150329473466880598025997045147190867269754209092714637247939872429080014659603061266441660222860405072133181508294609888507098056622798154998927924314053239903486173808021493341026331550511037223388751481620439881629614499371184147306543972563580373206053741937671572155162520262879124347517695662745040518338716088598437046467204976925718626306817461111789650712733894134312640042190022842688463221924960269928537680961589319489023042583390128608529021358552535228729369277257311248398058709622089306846646263634164743178986700047406156685763785710758427494742964857966762548769795941069449268116576569257910637391280917433293427660082347445122646817244791345411283289744575514650786956589905282466534990938715111169679515364328261511982789866889710931016959104178450248828735231923844862422636297349757684392822631120200047132187201701783710975756685537139382475853381189805680552456175892532901241044606138626252972014495518845924861076157532019523792106931822465517728586422660477869383984421519139188494771204012480322261461711385947975656859117457472444182755643667550318617371053128406159154882124971937173021267439200820411175498546836398413567746088381673386741710047033045122372699632967533503556837425593278850528484397099534151765903293840285069219964260910899068429037128452934549490793498403703950159436563446313995129824581333531389648303954685377742386758238799595073127916663391213576229300823813749950880424143677063411867945790202225251977023599544884292304632875492349672208730074226185326239441584686508261531865605778576997292533518074404638289730436121312487416649557732058303198526492284003382122961982940003572188960922276076892173732137561281714012789476808601846173476133583047799555570110846589918465264716029062432682309721379199995026002007677928428128010218904655036864494068516374694740097967052287174665334653476683285299305839175291925684229461333033502992661474903553099705929443017566334383432230441543437034764664049273950265810912648824151780638495584732129259848639143378040535637602806068612781688892152483564543619165845905112065370194484792425462055879015583333543255865910183915327556343253047913740702466588858551732641557851082711621409191150201876161758170251311700794414086348631483190552961554113186777476030955399998608079384374976227303703716974916229200218300013533918129991829604023592948162240375734996478981565262268246922466182266003346563155444069190919446133592294764761753098401445696494985417874172123136077955700462315757407016476128273409638979769774019876160194157601529109109253122761838347867951852419370607979165590705751518051295428310185359173186365292029130842057807392675741156313456410600481485906597772775589233973047601761186109466683938317051367676598060864546532753844171933248210350034614387006425749998217425218212189204246983459694601714541080967173547847902896490057093695658507360279962669616846431118237198194995401755550793724878019693376504513474123702327858171705272875406768086778657331919180654146507023469304107602604380764983984187762433538838135818313963322978304519273542000124434770143914102028058351376152486834654009224148555589073720292194609496783093804725225427153971564461393207175620510574794738255630340449984090551893122525815170644691359945494107897660528393799502191260261204772051458836877277420393934927466174231696612724488814202863914202278124193533297421694509467954520673956977382806280091534195572092962087021781623595731539858049405991309645978436746168803327624713133218716363946718093667473440335755526219772548442024999633931748616681168580024161019357181587639139371591531076342504338406774911006239888597954611355539755839653053924251133851519729571507256719493159144543886748094127009297425772211701976780777554115314644415888813546404610034367546339543813657379417552022983704633781240452763115958787429154142041620662489126162385007770392863484726233343506441746226554888964328960847169212331084463333505337147173330331901721153077481815975318740320652065466630383402472404436419295851566207720195731935194885916298153300551052799525400109233465679859706454051429106571050430262847937593593880541200846812071657259589682779436299311192290462874989338151616124180754183887659727170003193889665336565273596570472983705556510026802792385167950336520665309178435468005322211811784568324368004432665902546285945991038547579652091234389503251059583028451450194530989232771984892807878455467496436275646169662618364866620367155784981383986825287619563857360852041933202576410865853082078346093735426744174587917981650977606748034235879437881661119989595666794464838215477158445223575130963086132598323044566468192097250293449035786589888840520552887864065938982709410986621527371617524492691264722285626744317906706605132503314572067834404637951426017333495920626461812732873779400130153571573662376126852832110391120166194811558779550403940865122360419497579357189797408115563734672074274241577377404441091238485558451967364835048886830993138982344212485495620233919819006035489851804406713580331408724132658155808563355292356505562434062217386358710059109166690201106008519210620615217298898708361337945882584198929728135937846386408146209732157488764585454529056485693476254092899106691922560246425452910014982009451475388690585078215749901642383258266123330308423601713313301974026436592810516974600611297413499543611415077890155231616362758211607345219385511127230089600339937108736340084744585828116929172840147159292712719738225355396398764592473836932611280374299401387580817617506936047380882591607654996602854941583979429130441789374134981285129943317567582440767341769510242443311732080541981225031554764825787016508657667023097852712134326096082828084722273551612798021794324863898906029251915448088529449249132385753214896412844565058336515343983943537063223690868184748916340829302685671978579660416012152288340986449503006136379847527887901953417743484446727480043634827618082339916100874051122351659677445178308192167027512514354946996687266873708278491919916820259037114776598260684642971682887151964827056579379456630484995342582827100202874575142531348788698880801239182527547486293592025797500281821975100994629178378511034667160915765076894240576434882324541062551714557685235574081545523266017767432094790156452054668753256510525147976320111226602675248332139550899312683263493013685192428403094260238790532320478767938488157817991207588399895118242016254924399375292502926833808912965124723281499026982302378886144353189879921507200178726947659321610518524050768636489123517516719370737742162435885629406235947704312005266062569762509684217812114888298800266160440592223293316241761229087433790222878045617013577237506195216034268628062905378649688713933857125624169640793244758313698859182729992757829492957513048250436660285323714020549644733807382457755582570927007591535821362248787395198064475365092283387321973789450989488122243166650106987396166729899209644205968175696192318398661917934084742578681546159414589386406022961329500381200383897674502086338557826679881065690369990815678277851637829345993619433669806529792215221536662888399402680386218387841389549979200722893711695077570617240023448728986838088894693258218633782343569120740289568718856687096061273862193498732632240960659606991760200545360381658966021438717712875530983709902071330847123039179755744838100506832809511893292721912316549409066402145683598744632162655757397928373087028606129397723683858149199392584157425491463351548204141285052561164143847386215794850259095916940167019222271520515924463847867368440341019760225485058596203745202103401958672160817127019264607046079599287131210748035118825068233530449698126552095670808845419410225351991313683529115972228197796519175109141257490667527198799284399037274106458867169811835091012056834981767731009548469910066421703751012964027952668079262013464908265708373127308877034985381688301804159107350878027897814445251654077081274884737965503318298936026105151709009201102220710016694799486064988416099255778210332925422202382431616937945524450771166127819572028994905923717876307137916207732805190043595063027837205242860716863197568319944953596546175823793319549221835571406382172621701189906243630164683498799430673248974840299006267563686639344986687029574632955927635822741739047673664683270987254008256582740793730134212501578722469359336023202788021334475471169254724427882347885720204784810966824957325946506938183932899440856293295484523469547324707209576815500031362868183058735976655244562923337098003920244653970819808809751677590008294523393382538737975166366848481990619171892305302932752820522887389977798577574644330667384284668342381977782239415152243638987424951701065667853026766643708546240614507510982382650823292192311694659360552162437012743002394924600084644191371345373908817105432971996259217859583689002275354693441992705635449944646484635692114739545423420930350956191259629427603323140283815641958123992168435705926115521864367293908114049884299540135030458261668561511919247042480677787488387131898718967382619247397490892216965648998157671704289017449666205968008681990919566483987127996000606600983366508501317267050667807381053625332404361561098011084767554948774942365851637194652793284979905770184510490917015335686136324438948796590343675903495600216642655815244439282787227173594594830789387202484734203222900521336068460531292940974975988932013490501554663997880699917008737158891759567768947270618115030196472891325767848161909193884597730528881739137963419101391228288186895766691581750664019066425759118576388754829343629921171912710549773853730155778381018844418606578305924104527243196692276439468819023029366036893929143527900678345492052288961178860518754083104918089177592609625711828832708643634672781816274725571485025357509356019445337057042972793165183243697073638748560927282169570755935217982829317630403988543895057250179465534119664384061183281712258058093138653669016323415504235539488039771007125070410567877416202585990840071768209894144867462299227628920255085808162173150838975538840534942791905673448766048309707910866592252931017597478538255714719464529629087845195651740959478943963376856887841336334073539072743766372205280224459160534573754066183716958052421718003218602285837532259788835018804231788756894023197519743744461335259745789740055466244243249759344049537626823640150573472695398011010025658251311957538915849382125129679967725362127646076391067226918441110591666718231748120661947722805350257938618987107329311431962195583590075732545492654405344858762379970486963982129062304652602371545697463982185040240616064721224738628536914542275828158930325786719200381523130703012314500162038355855970846362887285686618295880381514125979242712228006580721753759956097530281681324319088267581121397864589779915670771233413006140507207378747754227133477723187913877806041160283389280732294629861094389948042687763090413828200824932764378445694666855969135097280929656029683784248319063766489758940229747652337370707590295732296764107444779028542205710833186416062834832840393767133814809415308100383634620986740923141625772592601642413107683838536096774393896453881219871847087835760284657585006626430131835637759834394232563195673889217864742511539146483061056176185226614849862117352993003941962679783511543247197921009990235995010185045226336213662954175879041155291163005950929887093720511199532095191976119111178565685631458237425273363487442621789437342555944388272109955258344048078153363012318172504761120985862139119503812768576842227060228808579228022789927013545026898289812867084694808586907736873104882413520925337799281517828072247304329560570662234561899656929407990430103180055883851549560037101536288339329630838861183757251344292962374362569028623990818089667478407215416482153646698525111835609376953883824779268205403556229310339823461721774992876114310711261869817671651010213281748432268604928999621374426489178747080052177899145979368325769082544704995573654607383329544550376054556169384629935269555982548143695227451351596350128443816576238782190283447784194348491675433220898865725107216380125745592050062613832353331001746356326967882997952231221335922955987771478425621528196600958248039796074188068648146222184673502384649962094829002372167471513017616183486648569009580445271292413610774485501645401658821009469531851670949653202836855634394275525867623093990262646880252100234839881081031395915672216752103640311682769802044708468275102160076529128596181232892391998983761546540152884764023895640080091117077716866325847151888652134181009630978924681427776744424909848194620720991186061783788272560602774892025077565496092241537218489819139994930435616869362159642917710952569509706990063231006108564855544823176816949189203353825938397977955201780600261504538466022348058428066808005409727242488709889918140301721083740851971684465550686866825957621317618534741443776409811689746202037121131861503180534816370992805100579393958183960538157279905317356462047256467564657337523249604428666275422833411947710115861482251329057472336964545935077863028139703502693355867202542065320191136456842785222711304993084740155083205534502207111518292503782458415159542385729092055909315552709371573043650713919706627072083660506535925780753879966242782962602719086367858420342617942729278387207422703925864789969888520172854373296389141798564954987123131742107811174584783471481011302200669188117139063322377463914427871350133910136146547582354731321638779785942292590928732660398061705145105189352613846356490075823486329152025865510311034138140491015735161788607576439646188341017565444148747743969587125931820683929218116808835597127226537119526746391354728890901025277774299066816800531987062324755696316479419943187728998958907371744791382210691683031443021088327187369372236371598248511277737658543952206649876302769812346134536976210473975484439806649685515001824287241396293002078423904077017175308740062110388698127516133110767104226560953420656279648030919591712222568605086606974919587195285117201863014572231112559580580300595904517801620915600339271581356193961524505829409423830675223104876027568331931395370615940569008254671634076885187380620283937649414169522478976448274159243938907385870336831106474829591656363194075978797738936856825365656798119405558294689075620974863970515862806160495538019929879010726988526406869489610033232728420340618845421289794321886897072738273627785013727011496387088466407860794265555255548566482536726238855301957008990944181411968192782252147436730237577264790630213627009294351935375202448246504450281774735303130558784042890529565361669557574603044684002013025834728578786034796429662285633839093850405959963382052013134597759495495915282491367582655773708630985343103165699186477493523558769856167640256943679496508265951649361856390677613408634494961092308528159575947324469299784378750695779652340662703489343992200393314202215964047530798772485471928990319033113606753874099262658761458295245462962744782530607137086100932565610910629015937032345784651094254156584863367597171410368246906821364595022593823586898034205214584241562109771259419886051741846098105218023309134915930553236402118013539938273907609601881270857002216149942023522853011978515148254092669518565676534104044454854881776606291533342393558830409770803826294318944385077023904084750171040932368683097904497849323892155985002143587007713428715847006930247167663122853028391120296158483322876218731270254402750988697775241867197258039845678345286723372626819425913768922373279869636995719475082805749299080160929638564887577436681305993300301065165671686433116003817843318094769824924266082639256472210856302821228584359129114203603272060182523237946293109254102512454170051664917496978501765868001286325445737872529326712774516243343601273403978593022215996177517361486667939676563322195149342983767903749308251701618528493383442425041832303026410055781883185442893640874032039660088923438710023409268523884967322844566873657042343156698938113117085498055633424110903902940206987883668650096416369170528156585835647747550488319116484306459899663270339800109706271431548717437048112170062091860841624596321962758189168759471508236368927617174851631458451807054356379707232789574505387584471007564558747372456716260758755826316241638301758948123727346583284264334984211990679033276995061878866730634490328278376485909168680653984403931713825696659592365734822356876095046002069573673695394353734489287894541429944924229654199206870717179908202751123228830206374093324308284076802365996223074507239548291325100146231522838566996364648161993061080350119340985512877308159545015497909832610070008435163220914097131668390509307770678257938489159213209928659807516647762740421022870695803169101976906658492941163014490417552415284079855841920459422247224085795452489966149963129567459931787449783413501974760024855830935569788153697313632144525114082928418128045024919929598456172978864983652967173740653502757578465341870784213098057357585098708923218338602766809687867445876739370425061052945593448000033794844118691034384898199272178004569840882561800277402469715569634535370581771324966543170795487952577664211206856943407407369416521104530170777514495029664201508567341856133087936907990859888819541774261880314414174869352930128628687697963497164412421773800196909748627996089460936425306791041745935712831904029831131550593038611206192754003474299601297698456728568007574786825685265588805504465028247234062122672309876509524679555116757607551897367108186648733913555473038717714825992498209065563624636888744281635475973802009270337279723575620585201948873117573641520856887998396255395067204576563708667868496167399289905166395473480646884163216126962321404300430349787937658955255912612733494431374931875585152203504887715420612832321554250103695842011777060581131085740672176884473924121518906742976799528434604620851042298929559015388617177785962596590245374799644805737542590339557173690179397516001998758369909403534602006006114570812972728649244155588597502427490101997527856958345334494325002578020434444086828907507743961736705538376157878638538700095357333590259466811975123738983872665368795543001841504480720527649445702579946868034994929416867471047452363136504711526982781055205996265002245440734287139919498025383338505885393649941733636964318998036953211463174617170203880708663490647863404224584691355904242451402814259720943368039404264695762203519760525374669196864684057485227322214112634682007326809912835968043371248986512484713338659995815570362412843119237138052069855463052239628600169326092476187523212570099594164545017597913048315852269009244055311865815319784593140513549679750197159130563640796787427438869743181215963320242453695090810854010748674532233669488741744758456018977639584490217493459710477031541979472175590310489551507130337509226428947436615011461711285404898362878232177554033558151308900860023111908928317197946152733963981475579561048165472182282092824126224408661731611829531462701196213661995941087935835643209329641893562895075218341609495628660547608202339439036938294410706907378421593711008435508099349512584805561426027948881173577823141092156309775563343568928090624014704304068096745414285001053129110144071931810600556195293759944098161264543744367739789284558236168065730568681889329055524837773886978833848212690033855255772963294850362572416179456068806250567439834358406885865279847132056820332680158401186122537107299459297219831403982495464301364141209379446478463296730804124031579167146810717215465797595084379065463926894416436702026717333321428687279300067525680895947246054007739214366237747036693706479892806834363066623573549188363067408969053454196254921859594829635299144250681242195784939762493626997668432011717830947897645342821592110544192539567389068025874295234702462536272058624452991614257874992015478349251604342385349243843410303807273770776570147437343580798451121498902138772611307493125184849712899174590950039321906256807723932545455469176735002114278251591537139224752151026195751812555899192237756055625186257778715204024235643008015440647378686471774548533756851330395773050554298410274520848824563801811743244115088666941720292251387140525933292189039302348495217837323533446532626937774732504109205508276270136010762688057349283410615014321179125841093281226749115294969194414057983354038200794920527262073123858332785887564779056721104165441661470761288361000624384130531050140081010798755577315225042463587242081346517078196813266473052652668700975390102354840054319103030585050732848566621892307361016097987301096045787862725969718214977745931912172420855203832230977437336272600910791708541590654006954047576946452693527389589089465660935532169427129426114018933681755821233660928809368683610841295931368976682546341618079733799311434919945061976741403836739591043325083789609765463216344296844750471808775387966011594691058469856934631546715196731054018943472532735101233055566492446253089798552598896344445382941448838257096712360533891982931364903499133212284219660873657571369432863633838749656941544771070613803436739395432994554889460443286211704228102975764901084613036258098852044456528892538656183554374669050757948211069811160943622727817194688442239013643555822522433014093711548401136621388410824798090054297249286908770786394338356975808913448554837537677719658959365875154327502949340116362862841933060481710939239987919008842034872943437214946123970170343033707916983162457660506136245905491835880524520307312984242588018709607849181635833763214177655264846608626744947775131163374609853261567716821601314781904456057708920308018521540881268882246108542068433312797584809219544443889667113144461789314741293665128198790259329194565273687344836398893389984361211680689865797567488516548886337690035375291987757693081057355173951443795272703800447049007285730925262631673099074000684904599758787132093533481479980729780306859252749215403250806206296793680290963657119655454749832657557609467247229240892061371056217009793399279320665670945892120839049846047586480114455232781360281453445795438733659918540295506010018789625823206446714509639808919967566146598237014128736646880385940326652224087508860528841067197999140854487007293022017220260304786380710886172631415313923748994778191781040775452555369360545903637816192863942002266964803975868226345375812853550796206064636202276341001562539119946325786788360870252437252628303301021044894326226275322073667652910916281998887191616786697698617210689500902364059291757218594584763068921247043650275363283506500433461831897030508283915358506052517223442293318962943725776163152226873950058135915637995009070457200726096898837387536982426218631495121398835716735638806300562903254751451996618172677820789627279916563774802991022509472440941980146869018862528510042336659066430765016710023678735189804175086476038055608827119847886391169660571257581116143322031623986195399608106448911512990383218924496711518198579850277044697851841628073295318752217073754278078367450606084368877693049830230414364689139837008269396406069456288164169529166544373908475728196961464119571580663688131248487829600519236538166969144131643782128080377458223191425066537273186601585557631000545881914608634151201340660568618305399109284222097222772766642007099875823159076294391295156349672083809897247230420387327835086014741160482852042007439596077939676657454574157343814376292956109531158482092000199683492227462223320349229787977209325937345893185303632200218523329226604326327773869929525440037460654804476294982724042291465600529045986614905305330341184232774713475287632417746860051035196802595048933541617738765023893191084066521380466746652964357719605228927287905823336267171801047870741509786532744155522815509790153143256991410913299525027699164121847989035341734180288807859437047470037468716698072913698781051913482317431997181756973247169341124042193238323758158340750503251210242327215999762255953608171639659554592152006263493832779387174509876695534287878977466443638551706502650448577147587895166390526126187671738754045938775924493697246870221984680515191826034341463515337517354398346584036650078008251337619581112539605958941718804721787463604668507755956087664614979975907257254669309501812266059756338320451208463864464994775567471104882581862451811482160241731135115533763941801619860829325848285029721564124935435493701472218371490931352746516140422988403472587358480471003049710367861996903966400318902701410218747143973930479667127146967452485821961590443588575047471161083558276186011598867992523277670077913488062706784305823037684432240837285577758508216273267775521575385493139188944331137097187976549309906304370838121079727316041468874104427329403072777436378288442397759487234629173289643236489504230303395254772328529225182097863294127922776106997648396446154980303910368747636700744207201348680420978344656707808500851248926091270815723789681795389714716653163541792741324937455510490677088305382910466098618013354927364715788231751702295292557476729438071843235282789387873058507172169878408709360848912758296731845035233009100824500894600016837289698553478156770898606637024379918187127137483594244296364320947275727110418044334601305107022177824729198840954442915592472967931476641686467990945637704603699887007961285734670508717635799267264190775864829795801509614971798643932311870590230974516834357125233587442571650251307838439678124895410287899686721555835181821976729237267508827191325928904570539216996231573413598101626063438419741115955987121948557079154040991260843153449472936182597146663520940304301794361263079707780953877079498286453666763263533422068945343030626974857296018808465649020974995525667340133802823078862980681870520541252040119990430428919912401546306489607552348001929454875288055706505545235487917895598744025091300741641918093997294682210357018981186767215490449502844625996837678251688727079295334993551398511723804911695566612441880493518211954231454579329549732901154976327970042572529288516760556706957888189166689264962782660684281788855135682201059864864426897310404206420388620214159313343356506079776483728611747854101318195388209632637397818675015670201035161382762235549907816708176258006326519090723097311326126453948061274615763974697290381991575806307458753851733483346860760889646227012140401657955979081551364317926971432781160003950929530530156640538544014468195674168914395005060129899532520624256402569997354056335685117062631293788209655763055783267561616292217039451858995939277954633373520501688984643648882073146139928560157646190608827005218388294490528350185640650433641753501393498570510063500442327755328051663250155536001685586063216180167882288985927773980708234430121876498298821950764879374527324977571646794376825978653807770909315826869893218567541022181137066289150507191692405571751537297985467954771694404608728583402007168255878503502580689802794309461846725801862557176999143666925677662478882563671023905089297579824895222709418467443414664411911976248630886752269173795608464341636763558830851295486537112507449037322882719925727151996600021666938956050382795190662337107102964526112535482018081623405931612383383278721545090905442719803200644225323600124989344843636759371914232277851596265768452530758485537358308416515247778499835560996791452905537128993380417358033223313804348260191619102805347598662385415120389560611327005564966892813167555129799676336653554047090793988866895306857810173302660568853689560211807721622589219199243117304892522497125531228211758822528265092358229122520413837008286387959940875331422920255378831925901788817597894307727113160489156785086783738812236288755855266118657336744602261173633288022556206861495846722660537793575255583609340989163829636599800730784500136994588212051974271662951889363661788724519387988391498507463670116146235590918089146487824769832377597870963455931545706800552820706294643107638481718364124284488322241634530641777649280600316789700191373441459952908181300827357120244541781460612372671440187538225274535151552424500790797536879918711567102845303187326563112819187358142050423077462972254036963523357483065620485610864093427383318334634327351271592642393900491279730288837834637442360464419658158438405319108290323239391500637052537770106594292190766393180810878765575969070784073173239732355063441358556746002928122819448262638691858136721604139546331879072561693081540996943760021476848236668959583386445843391397341957739544589473799649939650197318018758215438818580492440153865707188767878906058943439705724396806766233077750215424777082377904412690412076066171751458329065681240190888065205921445972236876022617302455546374056207480813993774670094125222153273448841706368152443582561186966261363834029286644970066037996750179376316763918069437678433862149089623561820105640614012377885098835667084731143716888913942684794853876466509841171954337028921584835072586019765152460415435606762746411781037958055110585275094244729655712945889544502046822567201062098620677182166748688559677813336730489413888303965661219189330587140477845513287672803014322099270529021061771392127737590526124680357832336122316724513143018328278987695299046550698848503343483983359922741648106833596317970504048017163575811696110898875265050394554508189045782033398880552733617405890660762567887602344899655818219507130679827984374701471305670367804002790888262609687517984330621616836497577339489618134418824168865022899678081627975625692274980874020887688103594369299203957265613050681288387614411959186240022364452480039479994244058253172682465135209489596658726936634884015099283759846464753424030561559065105449169124218607878117680038993076090690483506727951214030034045948829208453567271632950120071121468376544941407069259621433285678745746838018539304546243136985598732642070733736209526825330022465956542110218831635555322102232583541986992666491353192963187823490149158700147749921910894650128017261865842411995774784463808881792358967236549615822753535499698413029394932056796213757769896654209615618393575485106101873663140267325061995658143840958843545927104275247448553201536290028879027363715117097611575104474448575002325858148560788985128350955612212441353238781623331816561192925762099918516879242862423080170586007655853464509921222138629193200629166710405344413253099405031484201600328999231910328401724803603264117395877373643931580547563446116674421959053416946656368004997460891763261639369972680056711919008111646000296009990629766649508010850800515867038581971813055231732463017352876930349789853304607612670691519805210418792169386199911313682841025843874830863102275566524082814123688895195062447293752240366903159218186432340269192932376887151770807674952389899214924574176299185804334862960608936311062581001413806306012314943627930687332687687714744549611824196603717301173226721154889414471580764346364476457590703340858879379388551175194674235340453941225240645707121446590466567348092426153884175026364996764039796403950645360330584671065916086949364276706384187525076396896156031731192926863383238674463351811330830743913035433722790714103079528227165884110344434857882180908028208295544281220038019526602186359524610566606314957612702515823033352249470789046610507885186132600708705312521009241881403331109803432544721875356433943220404659540269285044885564614251052654795847216630572994563578827156077280214821750447870011247793657070567309892113872193059290580864978398631943466325792242834020275207962010766746046940717056095351333399376074927130117650602222407844780821493839639881200547789380056657803599043114871016372770352144947284480659802102462962863743293337500534210984024858609771594603462650708927576848032018361905498852289280953768213151504355825172037286016959609587642513950138220984049612226242281734043402808939972622577393303661029868199221337757916373560345378075501813255961569355010328329942384997475152433810011519501213178050138796465628491543324891943371832694701926816767596061591878897636526032086512658522642452411995901898187884508287694437676631849223848799241374007672294068073105280395354023660352099842055043059212038827556559304808391165973062450177252527879079885468508425855517383838338519943442889159122536441186696441712424001358879607219106134942308330297896634430882711074670005236299743261023180271422662226187505725439690773814742635221552448324008043756966990710294726405178030151618910268009263587698184180130345266471055199507316064326755040487453177281647974984931681635188811325461499640318314012084999975450565440566511483583871743810710444468199573634628689300271371764306960414783227327567890305080957691434783086703540161620281849114412320084399928213181848433228813425512488866865448527084230428400988313855490100379402648447623636375364651105500810294066099152481479263173087744064207095391999167556393167624758908322427072948295443281512295290316475060981071517094932166168130222008489990733519284840900143323698869379175997792387280564485863635604716964436602044525970486822151441978159123227475787721639865752760984089988937377750893740406584561154045344889826356794496286422470716132658749959558344008024494005256475311275829458245552383399388616021670954090395096229843697536057944381677828156635171719015608678501022971066937877214909889193684543867259730079749381103429453581189213029104857204996735622116733366350076432627405882954486157569614320478963305917252500296559546804876536262815497576765802778755902367873481625042453157027418353906499723714308623953642833379852588093656358087875872114167358200023785857917146541612112026034272557384221551801587463057767793952936789125329777005082262500819374164511416847373657252267778908745799682373452773273606299464292416996715508622928060803167877150190204161663020493507588377690661867461629647016770563441830896762661887440329705177881452434012512226794104121776172182888508159721642083847933339829566994034959379072820339780087960497013780702940145706183227529603485302837192226100593956449912415092778754613668231461289469981672588247118985447614664135974724040011672646403383299904015026352712185799138187518382154225304799215388902846165379294723637963334793127084664272273704354107685379121319034331192450634520767333438091681290392671092987571771480282227330708585902259139290525897400243757102169955326576133351851876638602761997003980523930527428933709016910236752074517701696404723753863828765431904302903579819304468286320454301891421607505169966851233644518831394315814046520685035597675284062096864840014632988026383254956272132582757344853558300022255133185962288649772494481966641528190407028797109505677755838364707508929280129921465508984652700726965716889740132432879571982172311902810990922494210691151942704477358752026602177872997393804329178321634672128872843369790316934859245577217598633216922910131299649345656945683126728480958429250935515615358682033736722013612851719579917906788879489778741557950785828040051987951437931024097351375424452291066587300786546251418820808073071926898391350492537754374420265701651485490390378491533578352391950918422941007958179462613046216881844121746806220722871046251493876491783338925853594154399135800585902429854085572504489429103113066841061052521529436405894282256195150902988534967011852089646433204187932153336684750090937947458624405009441979525930580847057304417142280778565703712794758093456290877047988346971693235516960591551290394654649194697695658010447721221152971788542420630144935999036470488168696394545987395664956844680082797406485939762888615420634495952047787647960222248140451871122057621282895120964242624397691077791875989150916967488496901404178146248821899204721539789701004100445191637463548493777672404896305617608574901906641992085649882441665925913641149797211057092004834635621911259205315949520772857285350227717869113431709507474177404611259771054406639288875718393323600024450260387599951742135949797649404000414409398680931932864233231380731072605234702226995502975336413333363768383076991222391147770558599778428742569645259730458979891618440091187547381046980438055951700629630329433750112437691659207229530151254321394054433778916278191406215516820884736345341979998879516117261028410632336985345662271408982502069128670444116902582047965765068060833893544908621143873825659946434978803232721758292694516998631267358751095484558784631407597172019624337085219967792883082041708362821886710429402426005844004377358753310704188814221920924607149133502963690584664488320319474101734611287867351794220941454660418534030155181556232143165747332666107989803109068170082688732101936459561785851734505472858980078728721154172567402441979028843225315410192140135091238671110323213731459405115614706721289593263819675803769072313032161582473040701388589334636633597677154707019773249548814517149561588915972704031644349512185974704146717150973113294738480850210707300489521237484215403899818595132249014418572919357094375241592155456929631150144938470339489307624355383423543950785791770587588732868726361377231317957631881191749399736458295599559616847144784415189854307741455943009162727770640067845262221886063381067248472690244026426741339072193530058424406225946425394836856547845053434905296743058974864956438929352506968728255730738865347979569737963739416312512211357236612420140264683198752349137532591965158061938726661939160510493592652713216922096224639699245339494168148769759450227569316017372978252259321139227972644699078707972112927010072893164141328975540511298607130045424497219982559230173355939919666258862848902801610297741472814721799607430468636839435837620966370592178003581516991294767315483262434722529800380095958755554513635248529233660366613345215784920268506151949203452902146178514203242331042284863520896879742184540038734941728320117627378226479639784677713658735111930207072225600375074940781039463389519984544166314322973160808440498281354303038336316353145405299148316425601251068208565690016030297291658467891832210586994891004078010769247782572806721865866449357592377066019997260659525543327336425038947983366014319930730848093451615088048076463666752908667169362062492873981488799043653338716396911672736970273126537428408609734869729325527885419930190416842823213958579660248737540654392608495318634134694686789235833606803394455761856487011325964277558202631925680997158944893454073545166932384492149911855493382824457707668823052546979612822440415996689237159295093923732119547894507408067744489003806244345752246115557238942268385930515277549765454318083490238729198467486931626088717921512482924761589351414914158904235105073534967969487491863344304793625203651055672156988823952034980523015312238521251326166449473704612481860990143956546372710175562161122110472247926506088187921878564564770201918708174098274263885178517823195293419048193157156404001782600804746415453642585796882213147120219506870737039312153332239429647101433881763991811507421555422604821990245008205203155158803107676568812198575038451204473602796923884894398504077669391919178038513117904637264578728005664995015957625302767342474903557787303206946697620679371095314087874660907190900547871502275738615622840311999793601481740181407268559346424708186513726761279734277641240894070241225057591283320448767508382482335490062243196257292826480566009677509285325730388834182425044101944383749082928907704415181513432790126318627093441028058333197183938084511247877577905287996142480968537580976667637015694843487431747574899146388916335043383627398851102955909972689955904715112917945559126983594293067385743048698989855944326198964253434921711717619498688138115373601192528376348122187771094392593220573709562698164645264593052541308176804768491799670945909756270994574641668731299851777131558862076554331510263023608492235320184002464426949822200938856198141742352942110120448887865176204772310072355773711756964540267737869878293238488465868548243072513224599718195176378206516770173496390729119732315211045083889636900343634564977138841805680298414053230978368787887332357458437167785962319311821299654426422746033116562189958073857091407481709077707206012582553725598818255400017096790909741338551791505034624136279629433752798039212161244942285734805540929961742218675526706638715401971649592580419828457272339435872738491298062505229908230414417964201863239335975640856264721140987102756842328471054420476927372279586934325516237287061306248948317683005950316273539272221555960371912609270563209001688446422399745990762836038614515601146790867195227442253415373563043636807658209294481681575624407583542094450414818369400724787199371608074714370480527241227205762001482655673842585276152042257561677566344890835515904034755970552781149851302508741216556160585427292302899331654735499079156121786647178134339282499415905014092363201698408680599677236463118003230917231449065960183944335732467994721363667143093322687259227699597866342198486047640383312151598246334815753891362137470506267760949391565434449665030715756019052561493434123986500863349768772582014261603587642188657530917405182417491784121530322238300418806639385455889178762006878814048766927605976263885084187671723906882151375344690742052796875938629657498654417762942518703009114961352844389205145007155110873094664959499070899793052340129573493866881785927244230815215906606499607550272376081272387058512137274552888617735445449593851589568775195180268779856482520266240944486188286727054207475043536799845846802118161245119179164083882209778864182756810585076775657286484828360370249328715819806043555879980375757476331720000544959849872516688565706303352876068093081590181410593721378560788103151292531750411050960975165425371030855174854899280792792165082670247752463749983785047234114872240388787796856216589184157356593968703031935075029813828952996830357304306071207546629980584795107732290419143068162870295090071881413421458284156116327645897977943185244670333572201518300806773009843428145985559436573897199032628610071674691150902659464279237556249374235121744508031213499874102105040262541157631141230640337384023024844739361327771431778326487227872000031324379911584541073200832547176553357788419738811198783081161282533435001379109732645804567535626928483455102531756976137831443682524778543069370631432550964076224942709697276210616798163074586477313621029169131901935053917363387720959307728802113849522530852335642009147582113215081416345593732766381646209964150418142792614784856112250969744180739940121864957617087742985390839419901188858773363731131301710135777903347562044395262607677976568538504151780028622026017398315357894904544427165705596492052223188354474283111934696037119412186093964743696835216300841130921221376123619315550911877534644560429373792151668962024254716803778182746385907968207356409342994334271792080288752211254331790114149116004796389603318772204714551925930589486933504992233576520706393366578610808592005775957357706056346934576038849108050669551609381069436621287588273316132286483143147176721157046192356146500377405387217627411136601782358558451731002982077899936468177687598057719690442932656414928889506161743273954534823316663997917484984027478354053591200222609439905312070766019667274321466731325059919615374919120610926487819537779061425351892234661396095319606252617842571586992437826609161717464971634720477389613148671942948249029198941916758308889233973117415554172680947533102737797997098175650450547360227678621069754045059261438837781516179253790106064022916738026962573434304645300421104252766230305520724757393067927263937131887228801269585549042486632283070227740155528034220557317260915929275132872044337772363815466022426272279552426404790691285346647439567039015366644825118623402780402537808866611353566441069137697238823654053705720326485133071180018862177768059795321806543675321022250428000439940618518128895361407337239506631151707000571386315302132936855380184898696963028510893012021795064707248775032099948367568717247002905581456984051446746945071887173763680287347355619685317530756612015693057034430987614972306895286644415640748345880898652566166437972028958684422039218194317151275641117761475637140593686400010358802638912596923817062276371676287480628381602275941051146269228880912943302776649594724973844730933763274600371084359078599766718005586870287301832296672925665119592610059415810036508929062603999789107646931019522717446451994436169991555641564121510871438208088680752297850814802286234135318439205666397115246089048131844519231492910632815402792248937822825154576827162459611763956688646174239537158657446266439961554789051637325218257833325356445898929059519260586597986713448274478262666789841919627360593520221496681570436556904167082575274458817572811609561481857224369546475050830284430753170779235571329348761178390813029105991835522622374686711575705937749093797579381952473316322662359826956998047343344026168796547513042934616242661346074732526957031148814696916429336907194815454817908292910720694297318759719731015426199335646153283618228701515590331070614653042170066882533797013234495060714168352686098813122722054090309466460661858579999141539781448477415640822589035406449064635106154337194004013861603507145597360142786234514865734796217978467570218989951333364438192919053008577399504523493495718968461271137688957597933234953320895381453984677028512410913999962409428615356154952015641889962125930051264420968659725289941843503668188048075291059723360083654823570191986855092603500487657378829516292374183271323676865849464000596709506778345361003674425949188581955959269025123931107259512121156338241589606737480071832468778413078096938241482915189560427550175420651744208813401454360707135560267634995975759600410361609612137736218202235639801014559249360156897148979333658549918634973041034950079055097103732948921976405886995320189664933508204310048852305942984868017855565645389715296386871398239389278862831305388987044163387485323665505625430238286131768314743993446156093107653849475846489316215158358898933919567329443347903909096450020152545297422360933487377485709060186480705169912575593325182030441205733891169249497937444418172101800486952748158248607577122172413829852529767035268850421330346370320590111276927084231224737403990344676189570010259178589661470456118869055431800013574114545384809162384560193982145769801540367447309332421416472755521908773969174173735064145951846078512401813774545883762985179066094251799695036587235132911540694118558004057561078043579191051543895293017860705688578117217421391550953207211970898415221542531647919304616049811760099940434131909911892155136512261155018131107351940674896418609402848692830550221199243438663096612299837616589812747306690040713313153258193032028149674557028927119805023083429490724610549109579955078936602634698465662818805549010438789895744093141529641433776902605064364098326821763362870988262723974302300550638516752892264837509508861372198333534606984890685568590244467888633643960437818236493160750697952536617770448078628521046820932682668289722071591098008197780192649525383047246360795893917370036932896635802205065980285338702996809222867542712913386999402663357736086375404720211499273339955963867139414159950635550381622713179928761432989245958663210228050727201766328290281395136246392598794084119774242147849748879285348132922617580429695360568496416333588361246477604717663033985377267173732323243519297973342376460670072590569784778225901022471861849551087004140155276349224305850649791746999412247016670031010443276265309930152842068424685952359105309696810584311855103760808536810333170953490813488313117223593774387414621839265017156090327940281899356126944963967143320782904731916666780851825519771728800627735453991592789034010786288963661157080757926371251575321256434587976758227986056217853904634438782602247698316447309116773137698654394413974813448003818298103754950588539835429146322753291226062391782931996213986918817711118424419627718789923057350447245775383119433851793221285766035212168779011404776589767784356963513653291514930963803910475450116996758780279997955389558550059045533297935637026407703334811205596791096608804654458199117569673353817940202977420844671405547625380016657961957199126200807816682028859158624857236155994016255477707914111600676407826080771078947343728991156761306850732249631591231634197588462764728819202367627163751947669533254204908916102491648373349659172708001471152710129089029612110404724620656228209632836266708889728464849194505485241475581339237736269212766280901070396032994626272509471411769121429133539751301514317746716858402905968622217080111036660714630206206422073967367402754445111531868035737119706126321435523468555443824565325519496223092442226276161810763532712184867110387486332416707890468852233292111150197900987237667401554791675344748589116281268686736042229943560768269783317351763941137568187311853109391473316134714642957480258866120984333362644789232779921718938110490257508983329575231138511638411810192449913293008778472536273658801679273239119566773773460292311671472527543877323954096440741744930881033569016899447326506293568124074685916892546509211091423164339664349653553999052260304711487117501951086036214378879284074498252703324251691779534323933805375341542863344920057275796819187421842721885884666266028133915912265087032955629743121006084764623824061202097408858510971345024453456269674845217493795199836601359599598044210553393057994635412156592603739545481307090026816164735807530907005794698595121857669282043359313336580210439358016107908279426644878203528015749847777187536663886871469284922335979702018592163752637064707239232807117749755236536241706263154632700590266304024739804533530204093931304973971307917181514886323851603514091871517272596320603977518189877379429833548962149298830651687972617323342951860291979123542091466176185808120657850975540518126245478535871423498722824507628021855541643937355728734131770795331826410695802318126782729262172479047867331323026028790147648543358099932443723491884995859948625830676000122047336344668680030217744283089567321206573109092985212685308293535203316260961238719270474910316941151648388474797456771234335574429812684461432753371060377023811587306886288969394132363006060504289965200451060374867696136491725117214171045397236983765748250928625319917610379605050700474527519870692438307972081336510745808625339870452950365773947943751943255366001421055646414822436061646770791716585117656108592356346094854976447796211655113187009699029140731514839039089918159185783326502779539578418251970561524675181074563304570829594428891506667159297604128033547451551004399493399113574003681082145201003716633376952121337532395906445150652333790747504285781596952756961817847042381784203159924171121572817531382552899083172227080319334018499746246615068641371786793594805932728519643357368802741431586900765208723454663736398318691202096562075413488741155043517945705202192086628621570465012959513127937440724676204192266556744533344472968171487354493873384801665428264237833848317565438333617440873218792199714309719390756152899799193348168456648698943157601438028626335331361857237931672366063675494380052529671399740350994071219337375857120455594960284445640461306033622263621629341224576151165419387916848132809624695244456954621250879118935398322196378999498705755174877188610510452587091200155027181112140083303394599977286587045234191667304068557004717286117263358849682710717450035389033631066658091122161122795352059735631542387862792211740027929927660272309100878896448671977510644852854236760680678328702716021491220890738359867916779079846546847654432886332754592689976471361182191936371970943091897609589330741950915357899815945626817403109118621361123870326632874592512380172218592375964203971780119733013545486303115628764539733301035351993689089171658211844720253940470931783306012396416727093121636937919332391842597730527614792293021230131636529561376233305284546377449667838557241630555328610532755207843894044247233087001494007564853949389708563666247235115549684263707422419853407218843317118086247851099998176232258058120204907270236751559960385584667283973473259596127104496948996928070408723556135501883486098273344942119279511596389142170133713625405959158400657637103362185943540907214950797192642474168788661350962013130319398165644318423191036741420512556863328098552077093239955742204583728924383094811084233008764153663084724168976375194193998480863927695317901643727802977688806162490841933764103645096126040651273694733432136475166867454187542353324904525140012619910255049422060899086534891218519778520803538297935164736163639485284975628497148856270364254376152530348567914218138341546765630362935943271568888511396453417550113555234226609517738178180389386443090830539927386531988392370825144349766957951254066405582132495347608244642379595204674037169104022865060164401188212816887278392342736929260620640964091959614590431451723416161791510706177671741511297009743626357169179809791310760755444007274823165853639170769125919005551128507328081677051347490741450119502481084276777357730810360845003755565026865827089490664096114629969042922698380843496813891492479886224871671281240892627970065093741291428012018819220654215938973633819322591270713038489421629319110049071492253628218620356176446854469959430764190727133878182633847902690514134885240883415970409316671764584851653904600109634729323170245268608078649180077024542605338592009166331507927787324832590160442171566874940579151896771159131892750178044518249937438743299329143554374680946834026083464252681707351360267844117117547680302578284327412712955509267108574023047469600264457118930180581121892575725002417910664730201129469375495333839271076783815855808875670613299964991589394990408749778235503921051363016467163408622693653940345676951865277526856031286808815689169916046013679356000288784865017387036118613661682337006376249017187035483916530088806575237376799068155478888938646233804336788144738626369751444635331513645033652509877954130939941467601122228501278273455755159561984487267288862169113912786444182650107159343331816055288098093137576021954484236689181404876129698357403680117551891330057226994759192287243969471072449770404732967513384853728989198514487912693399562727628630157178270573552384501936652886942503015712886490989930558977451480649740071081376020676606100283353983207243594567205949451216844025305614161150472376796871252693156319309816082329795042589816674800878152648677364144935695842879538795111120900413882435069998882091565554032892502288051416967879299266268622246705254906674953625013269700318245101140735192981527091168287631615254533623132422680452228896149709173971135352554401236086188154541470853204672299469390714881886033268282617228269647851698409755613280910904929942058902099758680270118297143811306166501656069405094174470841365931729460368323148867837834015846665262779381103471856527342901126469689951352204381388359254084508757429340483048052570263674681999971113924994308238094814731925760115285382473572083149105271608169922281418675329911795524477487920246982478357701790581768433766677768902177649062193699589654676599694287218010978136921367446220974783004092718190513763561232548612721452226168051802932568183109314139665924531034423688433970673528726638300045419514644230326230190718975985612470235865005420759825248981990750316538032495026016937230583148173147524304359424989148791890628026340912272673533448537779853276889704761672615852883514060352527088519929217133070578576387493937455594009676153752177828011626903772652898962034412615988106321682532064438164061291711721200955674738391672229623555746124390155990544883226264416256871268704850034492114157576143154878838226244938257190720528224356540306686433949527866391978261966212889029317080915069335476093630695038779648380650097087712584207442114997169855615899897478765137505785362724536521780662897775073271570349854774716789029566639583511119977254308821083008387197030016360375482320318110345196341997195708016263754256069696618343629726907066223061431318636181161133168418495161296479946354081551662886453122010561796238101443846201413252468510264137934116621666604435554339672608390029334249856059230477254301604859689878161532425234889479927499568040575087859615846563996882770505824808037526244409922842655810719653139621474222234153507700313618665229024242427339752232201197300895968910498540544742769756380596262269087884764367655193756819519963044228090247196597798141122997611309966894840654703043061615428405289846055561052774316709454797654256999443256151512704117768402472629905184687393844031749092277867137465048775654003526182336135822096915951653100302994702612137983269955154794300452825040411617899229947911176412173992693774165820202835024261155795357710192869502646054359241180066807823341749833422352511940395786903578680997957355566463481841092353566380532162505873396127301651792091526963077416035393436148765086569589441668759310281972270842130060698903276812481364340882914506935350078426900283389692890036766306519621256911370825149526413073002057234260061434794784184662076337424740196523490639302966223377308206402287040880954039448926023755930275783818672711195559036264381803694410269895609970224026851892905705634115763456634535309178364491270655146521452745160957092696019819351482504230830933240208569382325737324655619783805079823678391489644132121190325383719305126121435120543467213802491720844572406756078389118361442061721960932418878715390653119345624231430505959758138968001459327268036990315314858981784218414086270354132340571406372423344162305201146005372433545440858047849152738356053700832984194419408785772894289429890556411184890127988174242713094173250224649989776184995844482431963338771360641700505758811206260189035461258593451545618175684097314733842014951893758158996012087525756276033295003011831880956429108679299364914087426322667213868491522412990329146293202682373490956625790320642804533851675572566335964328298369067971544894914414428445736613121471652577292832283872251912278185033318457537523118138891046873011202533293433033228176744479092066563250188388749917831245277956878032518570878771082132181754229913702999034634082431982200181814301695015867564772318455173516019353974118068162554986334692974279363836831228620901500847632960271542055409234721977487555773727712535843792997336755041353900962607546017704783200920900004370304772062396931123619969230694519212280751280626109033960808551199393625766456058454748929845661051643776323020476293348833136645533457348047357156744499773471782198157392629435661485332563525738007537342458569627322644329253912185483500847187261537611935992117554494687517220953402171496733230085430312773430084421703922356580523746997811952384744493338373857748511427462252203934675721232785066105269132797730634628873726222419584671667202215168082910005267022364151265227407760046197949668504424149290330375261532475565300931531455774156078548884372041571406008765128076133114000215176092898248986294506264798639727812087334479298478545315123293340514068472557469284862631503547709257191442014221858878025727912833117798221233680779311687586547771399946239543986001782171404451158779337645825217591991088192383005166331028283723613412721407224623795391293388364187931553299328948798748615386139152307468917410066261860777226791348713632214751656850844199178069486195460193408937081923214192638277533759194570326450236304347568717345295839955367097394731137451394332819779112222693972545912493837982312660709638222596701900838145328629046106065868563209780150854223348481105906173852298620528178960495007325704272220203936136382479583103543259855072621403409859627786017216895598750303288281768040946852093886403363652364944285765333810979533420258752306609947377791748340996405620837330431676710875929826666843546700959970485895374841511522145022499454415283865780292853017658562910138814417266938379020705003419101213867913463546522874814071533820290191923514672126838275100017394805179223575910310629411782671583818637819546488431229736302075907294961313226423551084910264998474188701812740398720306793583123154828787803868672076345498495199113445099124424731050522725276683206603485380567348512636931946652992516290262646589416341396091509721872364027550026970108838683249414212571204886964565829636160986536859883788390280207060702963996208929169242011756462921271784144386609444841530713275382741805124756047008456141960786049544859255813071615271768187109610417028646244510638699279903132980239383229230786002461112125625374929920696236055497397793370905509150615995807462647693070614654733657295388010846593077370926439327096173358979875513329851735335805761982037560717396495121026056824215353943220657878065433368166837918392543102962997862558313815084290234604146428506331820780266740857504296549353954494865185275647088143513231959734978991714151693732568833893316283389645184887032263989305568945183919124308293251565402367538500430945522752298621936349993079956068968446618745989474882341366408518853219367311437589463565702142223037174148120127262829105733185783922733479526068004131224044446906957003432657910956173422846551383028777081709280043703275264455762009029489870172647182289327617882346799595389668011402866870526336706006304261299460849499563827559906026477765219702537583064118146128754387609857828996342210595022534150439826096187609835216523165433169772144125177003803902159813797489132029292775543871170339116322480752465724972962312476509351794356748381143152864133302908912377714661246904486455116492679934634155621188228175642302405169489544428168314140490438057886059010737006718298499365040749470278557386272032710842602732695690064120155580946913710129842552905449576450645756003740314945879082105473559113639906727806481459191706433870697147736652477844338630255698388102589879309501971312840708918719696749394002657194057221592958688345786698103181835949381027193116152515301740904031945172383224596330526786264210007457363367972646143529714988846055291907822957213456926463834792175940578051303673488795449473344645606796676912782679904942003628806990026035221665252664880972246721212946167822822474271783410535858490938180843820769671226221556492524464101160066383911818308730856354226721501721889134911144340742316720185801544096839417218455292470306663317439699203209991372307939208706332681495027024183632373935575659483558643427585271530364753467460118162312180861113799324835451482289863062536933279374737264046931267375653401997300907614262122865011585689448208037142836120485831617475039077128760465033612361352243121420491140962045858292255435749009027171143100562027796642732820368408835142189973676612851541741701550559669295433553384988687023249020610644580716922863343391855394434659741831033154532910259130360646226668797794557349045467488232753173759959372322731037104452113311533828930424773972419572744011654184843155648940489213580557085576275584955348891913856437916383424089396022097880195875047614164578733843443198087351575166749682003791537961029734944321094760732700463633436612590711792603829657765048983399682005284642342068544946993038712496466424858116044200046669339857416855517298369829263584910447179338446832504338447175872526993668623375707985863799511764743787742210295932621738817179921125649607665490503647530112846059719986422397278433919677740389582319175573259941937900854928259806607678949854843333553305204429781468642262154639070566780479389131776519220499357616638821963223572241387580488187287554778343055337141624291591814407249101833736072586131305858393796369137316050463865378761619976568352789603916541221197123163706463843508750588046575531967200804810632083118215379561380098353559526093637000645317080644202888377266908268009424750615773653069536999464734442641799088072365856916238996365175780762373186136628030006775952545698303593502093103401066548823876059063096671525803190270180565107741796599641778895066406027884717068077927555703510222371473067950065096075380534263982026154071272137856032274328861680241733894597905050321379748466149030953017402300954957526179588969836097031429140848045838420177059333087278988292106539860854978417702268001994317231256072796693509378461673808145347108132937634521964744163193311786906499824823727616205615024443944723233791069608396885603267436594476132436686239105834352637258702655272723546810973613675379988543402247829732195864738470798498514172853867527792306584091743206050109910223892981893864572160416894923402085594048059798887199075389944836245759181795872647854824368717842805118165701035999489616756458144117743599941557415640541980940777060781817873278088392351665272981172947045182489488694025397849704040125785017085252294800326448553982933954102504934105444614356130453712369616822024270875468032257772246764538690691735846329099659789270857241360685294722841899888111976949257775673473149204541882499353860754485383273493160249445830184005201100597121122488189926014090339058430141050559807188444154763356093389295582703356383918920724411566241363467937554167389089309186860803126378923091291660755009898084043087717386876849306238533350915041060003830601639488536879210612389410574394034606240163718548425217716754516397600255050226439611525994294308693498690746297837599701612950308438036606600589226585293056378866958466784875726002532918393071854726101201435318123008262824539075652638481662843067124140915353230173735777223170545453318573303986361162909280796514000762580295868325211303562521349985400678329057981002626637678051720624754016353702521682187355287204019963596188736069347306728409608128864989228165452185240832827912818493863635272203008598275445998989995835111574368787888127048557173814857403078036294204859420644334157901693839596815335852775087815743971924322779883170605463400533096961159954373203941299551771974092493728193869104247191680745755805413172816833655379652759510402582937660069379484763050243686693087498612911515579029908914751147143616550977810891689159389043228611630980896160154365423970713173398762556138393349278906057471453816915692648820151026214721832503409165624542935311732839683741755506978877246043985562610853373740287709972880476114915778576510475290891138178065469222072171325415946797805559574054495325587792843232475048202572961072119305427203445431119018432651599832951192425499568866292451206155443548518778433760228457318552553020385780679964233347394328325507976814317493529036535523570833622729540297603622459678702246796108729006536915811032977241127196871846317120153108720228291216785136832868288998410063083059699732951240183437928080758668778898496043772754027589522929366853922675139928237161596447373298270175090837568027446669159111149779944667113569108892437919930942472130807308198426259314434796579085670082562885883611446330706901910636068599518538704171062385680432411229940699769765217189489934971880450386432175982864331340232731735034487552793783486413104199496595525770669045671843550215620189672793973426821625686085922488113166647341429891013875712757048305145943663609924661062720112440987239997104207565439150686310201357598460146730265119903429865063967600069668795828289243397825905874856782626926330346837233212406615776029515653722610682290383661336834150499989593428093201865424703607359076560816219599759343820172461807695817834722127150399123937330805981643494623136717495999946304211763818147830191021334473569265625880571016446879845566172037587428149099843393046523931220003564424865028020022103872381508554360806108595381742785324654979231101510181266741384662946267400340729092430677564917857934277516529509846000986282198651935014863141311338234081864181019598887229593585603437224236723960151462789656548533533174007419842426013606673552984075440257317771495402192754876256636632097951348389232398473093428272993909549226286852582803762571040814041407092153377982471219334648252071838785374450072385259360567659576220402194519247929124130758546485918127845559512533948537732743954653252016862250537285001304537240004647444790745978251029444790475972689949375374692808933115543550514205161236368344100734984299470708653487282616826119499544459888850359607914367111963913932091120095413351288550899249339285379476656164159254527588534790680348593042101431778577117245113741846243215533722405654121494232234673410032864092372275714731703809305846661141052866534929215704384371938758254891849894465897489211239804355925364919086589066917390808867500913233054266548207715736402520816248301658987303608659808379615767364117736273466976156665392134829345642399129280785997987881520429221519091416907854973618725169309999132270006749972335155765795143664747023748766149644049261348608299760978362604927823173889497922468520977599508049882697239249576598722306469511876779916054956726996908515258226529522738588543930217342747557439187441137663399412859483123438484881279457601367100667616597439589632554530670816842945121140912212009108666989989150010205569248485237225542131071661391982827657429818829175183372084175238696768280591023151992531280144537722164743682595086088863644346720804079957456104290101965608808393098287160616049121636045869086222897375645574135743071591089367242331664477332829682418831492171649497251401194936905670952961527043291961756410101851405960839542210112530043203244772904509568672868692837978994453347325407832005428354880451308874136319369558168287460790465669459004074428841873812325676996716469267998695588605208063729838321123862468120288170434815581406294988306263459334499888403865260573742230738578664000237741531288590945512575353933694086944429394075221828471001077665809512756702014775408298259436553900777906180300371040301910921852932847824116551890922870290124041600452149317093577536081634208565523320144384538895834220684171388239953227063563872426113302172360887531969248201179065222750848154653606346843208352519510833216068431733436584680591301574087870182295987658228300204252835566932045019819881714582611715984000117232324846223680233784983905719584208339418833025000410026003788342211483673054749609677924297044999837994790440543497108962658967669130028499096038606304624009333797909203575516255166640057112187717239030015039609540518458169993864304498040103991612865934744955827606683482489093373386292669896469705317415608922966624289143819273723567260303050110341597015039075941159915617925116562289244176755772026392710897852605994713153357004590483012453586022457077160582123321852958758220305193728902001773432061942873421475237886083007029979653155681030112879925893918338779647006752027036887724058406643691909028743876338820971458010174951013464584028127801131681398978065090074076746422096389980453326207651496082597745227584239041345026846186168145795337175946226830306366614536599202803008432528514981788177127257386753550285133836792305674324368696202727569049569472142242467988436041192263169155678827648422239119627403671459897414454318006168862933763562397525481610920180628944206508650886517438844517440293615708910665305181913440835241738539089529473312690900228814761735924054727557410087221186024807065527347854646708100332528804948728188464766451387194846470027398366396786911087224906894452544993013613598230210096649662658249790741793302604479616467896121763047354709410590547677874362769811146481959467653953313260216045188056852012381853835993525090558673048169589393126688887107245163758078691852980464437598493901498640886729121561514693505446800392775377162800284446170887283461332016027846935141710371898135928565444047388935336434225299535630671486435758226615070847224212139574905881236472608079566539182107806975919196272996137682505271901680135018259365039043148923742221829972943591050476651019843549677158363903560509027440945473762000866255189537989739869552494420945283689372916225586445881857232200509734021124202427013381380975063870736878622413461626607614186589036757567280494685139294924694749767044828627850379939428327879122033297139754384364472277941952483005331330832659412681654814318367241851907164537118394561885376718611463451009876355610396882403469322743163868563893669207826287866646316230586562320803446703322414896584429086201191797751836078981178470876262961531940034781546405063456598584539593367839204717781619611519781599153348323975611162122210452896830871383545998806585780135485937490426395602017295786811549407988789989527859449531291247582481713710885909691407061933036180030332389191321684024237117855941479381751226153735529282048462011908783557824107679589872826483801883630605162587458132380717021270703116015993195665321105590868446372301121939352882993284356956065971989301484189419246965141950471310036209138468408714367868832381248718738058221779691668726770528694917232969297574129371576503104861498264996394254251535522789265581765932812281351990499862833891769509864987093885286522464162414980091336048094161672069334242500172533359024122452069662742838060791570974610193234327442284279030092197167819796597905954912721055386447240760083100058808181907244787034365745427947504666021168615328207936704228315767741097870656528899580921512079009106248893864651748603366304880883858583654754195906352901696079598667197919515472675399988477621888478510736605567922374551580096127346370372954709964144895440357070050979597124970791498940575042016503073921008375739413281657808571980285113042479613451450427776366605487057390164979963880067492763356999017421424708604276336870153889542554486051966156011457074311012678360618976337654085955844167396998989917146866648409024190014931111734620629582307787057948676463855675872109951364683099777160945465572016812285393776737409942830395155749453169206582037145204582775357833798271161575355475475959880902888250015132690306218375355881522800804994621992631395147590076715044412010286404223234675721465222554333746454076955442963733651832944081148165531123178885685344936256510923382232508875197006402178562624050439203931155127424198127866118045752037903135226382150021077213050240662418300286247765591111413089474976417044276328777473666951415296279729847362290196362231543631914184179969689628035927750615513987557853672663537814008171531831879331479803166307354183824985477461434758212203503303949134626725084373973133134613497187865221548479521132806558974510020324872979223925689275374902704259866856149040537528450466261442642599122957699498459561688661293427415216860453695085827710553806842470639686077813289931062855112879954394336700991915208886144555645744227925330947510327863999828608664778246977669364695968209330630483252302728616288409185402107585750595233549174517563505589431674912911708620738469600487897826391090562573959948749249597901109019161465908020748496263935827926505836476767083830119688555050518615798097218529807820275467907773528459488554864209571848095773550264183796622010560620176724101647596182317714441988100961027947776081962562468208545749937593917557725550439016442709090994033368202101818918809431446872511944883976072610642894763770508381680928472870453085471610727866631012203668875829064624965329442150404260896079559602848376811583310656398188715410222918563637554680861467680606261759125475132626589633416570626511726817054930109406586302669220422989483023764432367142194636490032001891029510553731974203939930380942870786655291476928813856458781496647798082331482664021665548467134062401859714121754244097871277182877853413438373825809953777455566863903097000614928407730247009172019952462062453919858592371345074239998517182249542889513234350318233448378831929595533487901099211718992253652942936533625825953909465529635813744972936997465118753385374870942177080817457017422516040904388461215741244528502023798390369991138969673477880497042088863931284389157986861499535720637694821492093062812513122808049966626255322428383991735202566745252299084099463258646834111304208458988032414287824148608262105774947533003770602151682554216858882552052891371938772498690820253933629404730475050099704407094693589196990053347830446358119649104831638160680743239747518873774504853932080118920921762003254128590019212850780087801080961218699721567278787836037834285050223359104738610037900336819582153479531242033219237911869797381093285010367827880608127452828831039183157044148037271526911195891382735020626616788136738930058943498719262754217586783775861692911564196954978050050271744148214225317716645648976255943758267643094912605529285775355652731149295608791108215961940175702492044626207794680537769554416379023844428627076001335882937229058956135310992448792377397001263801039062103629710054009023326620528685512923889365400766396639839257245082449689892624599243943845087655789090281898568343345109961963840911643767059605484195253505687872305206791620579739800869587500465611961545040162976777009654701852843349776446794960280372242292312092581552380645150731758263978489716595610762944958737945685198459060936913497322702428238293584834762009727957320397390824404902652459373962572954491177296085988591097983191619192371557431477730561327586503018671287922333999409221062679094625850811692827966923817237985512762993523860883177146897285715591047969113529008536773754899551247186890395744660004847954014478028822320824256701845114754583859463997760412123218294512072077908176823315161845542195987497445589015119927062360518963407353934875640953156034070693595825760816676955874920982404806665275624551923220032514529417553964682719023521957637963789759417505215867542019285365596662014504563385527835712567120512822751960929539092457841885540127128286062203184030416252304573349919862033683941854919174431281417027468348053312363654640800952279867998081678614387670229917642042193577030302889240633823371188316668923472566531471542619736924881856774442368306762858080355776670852493943272675918271305802820474498683109238845183965692912826914135802285087920263815575944588577839176304153824777450273630047967685689590574290775328240318388741953284725057582369989841855736097379347926210756480012760660056848562895296270365033407284992457076821660600430851921449939946159274018679067024925091880842549753825000573641152765627882068316837456136116466105945296098764787617810657325699441300696040441275748480590815431525219147593078104140991804367706639566726344353562456193564075135654672716790941187948848086809230938328738225004285130861556467382313448911976530330590349488507090436408551170896815968188535559683677670828759269590012226813063407905218083141753428838750131652921876633335743143710101634779665888361886988349983289811640070259655020476119906884593064118801374335280937951098305220586575519025533132473935518421572608823101683181764097241796642821705539235733182359972105591467580990960157125453625914657358345108084976967080717266943718308124966413928529324205814835226274469375858569571687034502237757777835981585809545667455462729794730797569320508562640503528302556722866775444828408620998138979303709253264259640385349961705463860837230314894810013719990131970126280108496986832790805995250749377542359999787837446577837123753575785267771063814356136789079473724792426181599280191554236358409224109269519498675837014008069125945944555925467047320392800470111600155954170202879503592920177039686011345630444923339774354557165457271495173534529046221587766932103972565405338682391305809660021212324831138704907261634988177752506339880373528304413788504053529141957344862622148033294954488890854507924805426837419406691885551675721662211092089973185266767829352661329042761712071734330023452589195373557475092687431529363428449640771785673995843814894210462851810384964342773551924438540110560036409186090659830023373684591499584014449901293693725893952889834811556455810610307945458047566465048935767852752111834079945987442056755069846162829748169274340319574481121269219891324355031983705466444249609636337484865587143693424000842683069466472686782160543076055555157113010549963694214120145286056715492814503563608857935420449883125571959955870785833653305512108392849984112684790571297220246550138708205244749272341919503603039394603476770851534725433807691354302103233118270994105254373163717918996081338444036735092091110631733765874016000186973042529842024488852703317251469249747539319823503525226176160943848097053512457087513186892673700507442774120709790407346312262052900063918929099033196435333533778277303380095643552023728118934142222131638412466218762656292621316537474409523054540169190591210298332548738443149969008179176662444562571055001406036680013324958090641028348771641935647143040955057638038573852209871616795910485222080708395443816652953500877460681136027308248856626139286677283717030323783233467164064186510599162481767070634565314676407449265899040024929433820347665482730341522657904235101310929756783048481363297639763227467327299098939274496385721441290848706448070466163067183262697301895505226175036704437656063860897547480919952639440353604654399823773561902465026931295891402221059887340881632225625868617445324411589493035550997748247415150737341194757333735565276274185191642451462010498782629453689508844623211763580035118418359267598642971281398538414469096917190799516740467818935875027443503551180799677762498706284759291327261688448884939141128745320572483591623606741616344638801312351161263321415735073587378908986460331910104790495108805327624363438019532053136413435545936470419843997327319281830257600857675302583216967146468343588400391420370724267082601761625339029898671526756221981306035295948446464040396885600648176610903305607906503876896844673169485434389183689353793341689876461040506024109359855532664312999759390263679696925137693692615910228511721654148892157262235977366770146398458552104707476388972254902217955783473853630081933437898874815680276975999495121254415702713764902775150787799491095614895742622739879403322128257532457845619552714971773748923110717580044852610875339714409334236416700073947476053387663802542958635529369130347698689906133362459084735380529991695237406505765703934901547390655652892580819446962840122139245511198760380740566099410523116436019256847220532851072587588370887878354074617797601531730495005829381247505250302170023610957367090784022351162225972381301444079847918133032105443244311027197910059137380934837758636139977194367200655924569938147027619184666121180429617186652831069577660924377161598315124593617280103901636552046619370925251253631396559201177821427680194280476586534858158747031199267709791335049110720516524324623125383157448751295415603552750263679614546109344416853578102731389969995468673435181034432552595169300233005059257279978159048202235890526047920348250750421717345546642531252852594784406842133378979724559983814529024913412772434245097179511864461506281528392865023721292643684081326894231693151888189538526818004763103077803899244121518719858272225449899967787514587916023970766660441333059400177251968288276181389025401421411540322218807522149313873039438948386348804885872573129605440226754011944434427123955690237907150071386106419858388879568805486335172808444644724813277238595610521301309101510626429327631624722285985257102637159462999401322655051880446573989800377544218462997919330400605176161879860265557607689149567962403302092035338230064198575121280549087681264999866296820216008393577425692390014509676551896830011498580395006624633861680225506687075912748319753000145540601541198078411349482946568060170741821944826942029145919311797294425352351393310112186883167800232663769195193898930495655963644304998263623322221317379586337527290159802676243820849089436428312496796216250016352996689304462584580416724907109041427954474322776405586064497993774815979061292220293061983352618004261179665496758054829018106894737221612026571626304363530228212933724508394353437096785432438058312889505278663565717128803698528454871495079856246655577931705079028998685971436459307797350701401522754476693419823926389892945353431902180169387585028778687970204616823197351992807669758651276064682383916960148671115009603845938820051061526646256272708637399471502577181072308962043626415525571521279045835429590591012051850860519983358295202764452425123577351536145132912213357834119671870758566063500029766458721899656846809835422555679769978615295831620657432073721099684406194608527521399720774602837961829406778265980996983586608974386510365624255625084235435456301512197111167328336550705832479172735651427694109849863570666188025284345361197742349000160410913598065825325104777234873758588466697858029999224197366504115511962816004732157650700516628984539963791941447196127536849638484184078353921949516076075298476708413827460440301770757999666767568612536105140039171681725678050138978371865837968976150172098480602272151208763671116355293561961304020927396418528693604726513966875563040087535856868313141286860922825551242269595679930350249011366770936403499037484587419891089018945705198578124784403575786713931970855498938099970654105791690209598897498738447272613724351806561649931638973511197033103939780409280947997343377265021224971434098237823651965892886279223277990394182050685698376711662377215144120227663379491737437342283179727940119374539049057971446171836025673221405521946218628591454389656234024894537981195596496870707302186078051319309467852848444202128432499307154135644230793862725265852084922694843993948530535272706823358639486081705774075169738521202106289594177160792541306991346081438246328669352312659073430366809538595608450167393229096542828854097863778722182590727434195646611659593408713448120299579604000576414684856384192084025832685521237954962489115862600940098765413585870619251136537194814860857107708376020972374659553114403073394942348448615252372266625317209081622694000211227591834255298281689971968761014385191901289880742428052835555332523257154858756144775201194680111550944054296573101936215959187582194822074756153078334803008549943308739821340270700031128588792796739627366092071269711513819537715546410633745558491963169175525559918922408979783312427354538417960278459589864706009528418086646771109464159843150009597494702207595874936960934892351315530879522675319228875193269056992695901124280084378089758022372721112814277158092157861903143823282221584311973638679727227684958136328147018276523616998703831654805714617520177978010749005200986222538671343789879848810445030271773860682106718234856661032815984091857149084770741257737215296236289514281939493449231002475529468768814228268826338199210705003148229690781270685023609679524561563176253784439086838854547176625054868861453885894019065091841015885208833696129877316727526919756238642760951369458384261852183389570518641326320252293139134838082128796433881362984553904237312857385590062328719791590912181710334920882873657259600675103451691730348406647731247285364986970322550580285121031458139716550054021999125846712475229623304794762041748357339651293388462598605466902068727431079892009360086299625852649556926342244349075889871207540557239177888983747400628311035989363975368314316379155350844599499815179035719166459579726405356357962285223232099956252907295659686256664761182174368893655265842097358804838235632703846291741042746340327640442472179196338923330045235292002875730135630382111728971331694363722061750858152029084972463690556676289218426265178197651953852464303642562032129591608958533598154070650245252165708822643889695532003307123860177199426979987427119660353048528358184414608549134506444317130866665673247447943228054733913760627581890428365658659895466488561709859023357189364711022191554480141608108632865265720250373477965869802896975687596956655171572997817414912551945083377949744669806026864318152342292431677632651015505374677709204156476462475124967230114288483953970606056072465314227321889583835501398502247980616382349453661289940409355917809265868236064198494786394927392551467596218556484340287163998424165640792243204992151935270942749255097209837640554799507636962370089615853142082854978064406575694610740124283011677091754088048806266575048744970010064481728170337185716876990520504312691267589423546424263219268161260713525593779984687684876663746373708483091302303187597551925243991782626402799661636709436911253008628435029788667148387735570095408509510925426723708716285087204991001466660693435254396813242277505204120843117783620864259137414037018939058491308853076718033777597798154504060045084281692653954942424173439682579794296332233121321810780129321979360275038885263104587257887904993301724937169929033635452907496514640560912754875288157487485046656478815713364324270157712065088264725709115452935541510645510350947107201788001792464135972138429948710459775527984274506977426564148834068300809230546462603894832672239604062464659457420252210842881282668896752789802434682655789626562663797453689109293468920924841097023571316275330238902076986731432584276094818388124585758734014097068671895618131122294700219784482415815445098198891529424289069346605626079565664394339342799835882357116757511632925562149947095183522331245810913158655773591758470369414848815038632640986605244160899442142372446731857685405261645960803590461604594774723205628789108869923420195755264555491518628810370985562898184920845362817607417557822466638790726046775548345174434818904968805637650325035359262713745149886240548295624736933344962330902739113708105840712372655403944406661654666981279401611743803144254583611313870018005106422250474212674953997075909715271031416553633477320054963549146671949925664377111351964712248442133833448299147401916929709782733048209657023657441662164041385975719940110755054813835675097536770208621480224769057593128457961205201060652722159599745589563929274161013544777148660272222807878919031049330486064234888941265365091980468047266792907970770229050202576713844368458156348290022266587224538924207586781264807425984310372314483507393491632856870879893530898303553843839500797078015089931667721215355785047682448066812060081609252490055065606882005394397529404297779977739095481218233882815997862843934489379186155563845847942592989490543845037369764733322568524240216019590447240163994449258915452220947381972857356081416294420120829692342136751905692105337359237781600665668763641463665790435737824436651668510493519577657907919335490054245374836258264105168437864450295918358983964405685936888263686371050276878385312777705665995603001572358237147154721905671426014336879664684364914394999572722150580428992181009895079934494421419902144689255392867691751039824675824637343805239735083028068718734460641876299320312170407048304612916426319820862850786951729018997001434289682624417807819162644171950445075766685632424567458175518591360435999585745988250355384667413282045253701080509023511484048195305888064160408235523512941281404845448810370856942626000271639230100860372142424842912649571956987321905242756339490162246454625934745670300567283750846724982527983673495617708983651654782788942618610518327692085036036217800339152493371484445501415791162505068909107138275802244650509860986883276779711832579391871621676788356224198867538683931575658977686520163945282738867440651787566006894982173557480744432557759069273637848180513357096270189715205890970811986200522767934991330405828456720358566472410588945530875223646183843964025960112548528766088662848307636012870066672280267000361494230261254165504582961699316384370582967507053229269109161196749361273729163120586368847905250952735154380622219327300289599240793907443857366909352949258689440107342217802437077152816124253190882271732715433823740147454362184333256802959940771301498332370451096996545320274533507021770370706113819105163588030747477081980826531951055240343461890804087728558871026191299109229595088225181920585188744198634862518824566545078032953634810263484330308372418113655627830193910161835174032238450979146875216238771442392232324557636410797470012553983247122601905304886666493332284863290538086835170964354044025686679116884443421694025177269167200542365879524586487291931941963983705910834659556545737455427472252563872049196484680456121634675557800183911458050720291040917746197882965048612355528726975520004238203818320764255364096320893392454496759815230921518947305019785351001529957353054281128364842365947435959609595698016202753023959419953344628208264979236079421886804110602415874150857519458061568880834301854125378195459697414236778741870667215842752231935277070188776280303233740286266042073050523785203542104257724425591404270087490764352482693868107163766930730372723741717542458522477357582702959966498541023115101387432370479915917879029944855016825586545153881254857425414604291201232285561488953271771724012262799441082686913997298743825568158111262387326261042642491914673031393240789967378614329041420844114674153516742689733703219069028747706020088422190321251655289117173856747773113661537343917519627079549216170937800543404578737896895794065840260922267066639747064746191485114465244380741520552128686202006717232636847179672315491533594924534289288748593176642699362096734074977450530705684314101332632877759213057623147008743738450762603058757749787324207140665136179949569456010819284319373673284179893518959542351970228934729769771049753586499567318504695098739662801395315247336067459574653673422509659501098766962373414060683935034819838271821186844060176157656025470113953735726783452694559607917709449717272346947334367803872237757479168689555204136215380142825486737769528370384142793400440013056897835562279860713607059660446853343332247081996051727615220108066710652379501907097493741821633529938651891700778898834763609236188052690600640828079713434978942759592887202610785155541123973730460975923178834688072538351059080021866044902897911896725936755213964729068579735073675718216974036670698961345787450610971203501479565375164166153121647325441678927750724594362819238256233629810375653289132823923222725067941709469131856699622676300847493329492377248202516805506663161990345780050296216095097127831349754974849708075014692861779720539208773557354263446540469175078783629783037122212634499537604587068254665673292775397228603678192473260758753750363960555755152470447904689279007417440809916215353523795515931682503917084115733894721483377058789369541534827316071703023202492909454665531205525012632253174142737294089358232313041403596709104925718383520195357751110303018937387366729568834759002804669015028041569220627941078976828096269661012137488119556311967779804681249306478374053162747606283458684716459438243677534276082695576532344276053399712987080520898985614420659347221575351357313531509643256863269976011816768872330904784738782610883002718765026082629252331944769099404167002640065555971369918146697911356778065745105729647119638264380698960233881135307214985853687086285871789268796297801608941639363012094163552302777342996301526343577512504135198341187362058334547311853807457268433720690522085625501050610093794285614047418455921179339272708597251152880056940280536141144924020924620879487418362248544537016734793590201500699089471119500954771699606451569340980957608723061167985930544742494585592763754265507909850782622745241428056419619579470161814101885939670292884088175071326949126451479245871388347220957012545376287115461358447101311323201495490944640147600030237632857171395365471490013555869633069258112640479200531728092117912870096788138937329594906876916230917822286435333405933967916024289327484446631559457485611320451783064649166224181324629576750918590298833323065514502362940434740549255611764221609388471173418957407199850352736698693386698517025739380660230279106280853525493531661945852938854013476198182979019270269975539762709721332077521428883136382794037795481043639684621695249482298443229689692085335553085317409539710027448732528352757362479458012780445503610606455857803573626252556360647734905686383246005882645729967286706470688197188048995918209538769867241261058123133718832815387305324063517160488373186348319448785524534021310596054326978736278990273623581526866772864841376321754066899897348826118601800293600223626158849590389381838347815021647310891383695373808683164369908798085930128373528762206005362275872876794657916805763581432409253055023886548294925725127609771043084142413271492230145550249153801165157010725991966088910334458778020184201986872557983485892794115791654898418079655981652924400286000892833089959846125154134736412475537056580724960733728968639565510344975858300171880139293408159346577407491687314019903828427712262333244605887567398385935007695131185563168457383865551229294080306842203625672459181138606350480155226167063564964286732345965669379924358729329116688498393642069797039019159319455970361259262706370837171360797222924483897365994926322185943095293445517054009459274870328435199388140267085915289496359507636380732347053462309324415095756918504808919571739191653100024157142935668690970675538485026108040743406457426342832522110207103450374538340721719272860930797090878640274037560341962032609518023331944660470439348005406358691029418314381980766263692292015196267454788905487300853342208815974032892535678247804572344855566388429936517859381542871473470540776250407980710868325712720965952470280931298490597903061967508059944421798850698316109638043185757349320897027921443393913428290098389029276009981034971675340055350266575485135820698171894317365218737272703866524342059269683995858771658075362930491745821027533012670236222733052137092747575492754032248665363239284288788071811943447754439431574633737742190514462638401483845223060132636502788451471704790583180583489408569494249944151554838633423772040699601933580313753449760284449951541090113815606641323294310535403566334982500900534136214959747529802823984619728367006210584613977815827467657982601784729657646395894187742496331695884228391191590565640228193496801758163840139429208142088204546902994637652059988197831754480127119965562213173244271608021931664460718450670245160461201179763827239211348339438798962905840179686360943255300650628889732392513616327023907523959826534893994680658059487686462751410940649931153419873217299143125910097771886869455712444493582861381259764637551134279845737620234356256898312253042059021490709996741603215467075388165029658639915531513429055133316532483088503470195490556744841010321876589956758394558238286883108141862835473194755252747115754025434804661774803878685983787156949134278530829472887354120431902320905952954328610661326976076266926611352114662527698412773408524191382685828095507583757875182944195381669964759338058109744197040887688325257374385618259110897501964314793725720708094058960553970982858004455630785998611082978451980399882309416250986802635162822807560816507048348964416836183659463297691973326645044332702652964407332608359487129720563680362999226922055550219361313094392925616898258938095311543481328951849165428725462863519781030237300349037991793076886122045326513181013816898791956784667866144331058014381259912791415887667170290675999071222928172745278544319176377518648854469055214182947546075537345606085563464203961766709575287454949012046603519646368735772929742823475054967865445927360627608989246978241890713669103009266781913030559195116956931783197540796240338421104664465240458186863932609646353033471129213154369571442206723727019032161283163660683535359140279885260953147441976705764010907530604721386570676654997265613995625908185085303045559284076141246522180996543530716318507488647893313715980401910580102425541713566189612060110697612033871217695362774814702404628795944796568929166656151629117736946184946177683166359452851171641400879610965586719421163816545789355943747416596019104026506996537608910884905409088076624223624452531328521785687211710750728725802437027495835664624563513977205964778734767213709697787437222222854441505162581475900160010349873421642873794152091728087438528706874529967585063462361565683806568468586659128839299398749192804509759935762191530345339640241628163756457337985969012829274187962762503806403057998223939350958921995278510291646380478329362091927804077150418730068917857381782537931265322695642984805750570433859369934339345604496232593724330435766714771166426205667161937773757701820493615978206551775960445574271401595850624208614320221027947003286440974985311949339722052560172438067839808063019803303871401082373702021780239991965948474208100416246313999893872678129698371396533436978063946676428600241528248737856394129279353836077076083007500854688366849683447381380001948099946392793972548092617557123230722879914729499627829318121179995311913933682914217080039171083920399625324657124267114807621873238886630273263260510227485587685824829962737856303750205262948831696089490129163137263488580498192487545535248873262394393675045016547689340206821458565566171050775119437380589413425696041313947581919706682302632423409024450540958834108768898805836001905800856199491033238845013313960419454688283590614806279170274255056983630386819040807698607465088442367761705462260845439722219403554202652033104455269007046882774582145696636674469994288417347114807023479517943077836152757400116754238104978226516996793270179099132535969256413102120317675960263679551086925989193605152931611639993790605221621826257344736334202630750572642522552550069625037213380532448446537714971705777121738555021403641091178389721417976354731764860997323702087657166232862736406666652522444844237047431260270194052932539203881245611678392260714780011957184750455611615250384482208269186674529500194547955474267031195338846336750475341192430517289055830639606427300931789903397134393158405916100858639382213820227170819247577821001503916384866601709081390913595334061901462690424095680526240107056477766184073651996598312015914861912479104532820849003769623579045204928147481448465817268742916011125678009811772691222090702378514866112437144591984668576309473751209424335200446505329739125167083018255429713022606746609800526039196275579838950906924319004737564018360745493485910179447557716286315055488761028672918186758647664447865962782729403999320990533549691384757430422035802668200501835248565151703420994311072603747508216434958854143210457355741980118294006516384590778313094730099299395418271818059977319955225376562352261687988048284720314958906256968944242784076171974785212111708675294460367053355570333619526994064352330819095743708046560784123500619341564951004973317383620400422734437891578965349586115919181358972444956070703223227828015791485580886632670092404234203139271646896301370562218550399034622946791769783297015241275735845801308975952586398550215463677050900703329079755832652569733099251994233523426743245262878343487803932099014786974131728112549644590427779736912668770753379381052959792195600945196472452145664478112940888425973995022893156732048900359565314881818133524884486986948006125364742775500050420404621034425555880866214425237932464586130867091526143968878163367734969512409007739167264140941242164561853646208583805219480898873774634285140004397923506702424670667069730792355322976556684570476290256322597831961833397249154695255251435143479730725058985393503441430103727693308287010755526122132379489153242485015478457009774568367395706462453231678342716059951325335038447646180452988910089257614236456892093712162335777919010169852746507433133940386055838356051252991146475251049740083923818804095246656978219067500774512734041374694859890324303842177375760809258836398494285249166123974213403066399683994573153145921895618542973694163929127458660214919325606290835478894538705890991028776842634490924275819538227715445507550828207848836009388575040713380643144643510663577254200107215128214873801278325521947726666964351963995138809766453243327235576842641531380978229804632131537746252354042906035801705619274468848477598491780867455498329658519534616200108125422426766724465919850037372467000945314183285138022443386726425015956759211414749624518491204720646756094059335988791797905900136748853864506869620656149908349682257856811345564839572728890376856473485870278747092443784170154003374569827482324692217767073805998507558616687137871868309680967655837021661114077220785221064026826988873072896051684378352036740225003301294220879972807335520332084982518794763661742905528375912856416497413728193651143325413215966544797508896637844058341384482455733859312236750877569174580777066637614313837033604334586746501571999949357092631498313539476010997460000053765814494573326745861063304932150297383939354427370993864150604817313381076058253094394198785753236572332304795924957505802346554857601740783004076489467682586409510388043743992695534150692609552099668496362196097541990256689273001830398841155263548758410191862585651958949917543670137752629621235562608907598144724510634531684374203926963412512254942553244660392238541492180254748828765753640669566568544990494814915280503825352855646720044252289431463574597056054132111347761834591435006804097516578939671178548516522920677835710752551395314528231222460774326485780214710696712582490549532520029801187432980385609820847498781051624257385362174946834560794401386804272597372177995976134849268369259049454472854534855547672855092626966333515439531919926209022290117916503540532053541557323962865877885010012105094483643693554565652987025104273373112703686432701853930462298639018498497790852704663810074106064199346768348792149018237926231535776760045253983094883499531297315673811035767138095060268988103260660443176435502995330743512178353637422630730894118909833411963860551522024968443939425305314272823845197724460166040399583547279137257994876905630996389204706293760505652182054213457997735548935383680336528207608125148943624690017425014836948910324978639419114600540230621618556990861024673154864609880202781073473737770491883439815296069606171715477091558045391472137944886307027510625910079537399951394861744903022978921815233955882101576496402094591940900160611658741111198073433510338190204012029929324031443298771647219418758925676345923219909229015572393372888607136940617761645093456715228049982747509278302635993198163991685562604495679935194832038447039650098998538011265861333379477552130328891619787933732768447413283162153821350502232982479519855842530644062732756704048542157953717334383013657922716976581525422725319026917215835634790655014339322211845457743373186545271855941021062294882520434730878381222298316872357783733734451559948232923392695789294479982420094939266427073943232747132009716034757074410728503079630390757270283805020959161755070005016627792429318124505238672399685851931779590388404675565133255758214943153517959498790175939954018699586162066971538933325756001809207795785012715852501324370267983815321683151058802737455893982251650796556806740552933580416458692852316528925062441034507254751746696957664759912065568479831778838624441646954191913411663831359509426984078970554946580729459831838654621775210631145510433633536617757305037406342920891277502236209418309382037942049430183256488151462174731495312272496651940332666946548174825341725229124749705114616160054281880540354198947234572559079014198518298148145990271405143266071026229634919481259342145337898724583097604861888669585130390729173392077225689609836520912793114821797475064465597613403875759224022396034735708491833781121498925829532335444378531833361017437217127075561619143805327266024494866847503438075251839224592395717830234714190223503503807941127277487289504002308047407224556001247620731599212504578861913386499033912685147243309106085594366056248486764753301033636598577489631546413465281763741261581100781736701249544796541160122490093946034993309994023927494381350400802944899168793936676108675503546923865708941470394616477845589307011895036016968430078158866532913562055689169725157812754395541621519521053001313362218719381457197443546784636798831874133330551292210015747304782227473543623380608200983366453685586892563315746920243151683123406729773141705079853683002114655362735781206338697324687906485958758167228676488743765465044904838056518022973211179540565437944615042021563406645608062174908344929657888829537930350472608621682320154984933606588503695960666607613634125466771426576696693825333353829686677801855476375874137561497408516836293864444543728252821275965733418806978040386375624321359353338276914364031872205194448826998998678043790503172651953332428847616800651629802990750232478834434240656782881288607696374064960256307156567675052037053083913616628392164184509828446743051228444239833464130153027392175042011926614572750828139037673363576392544605297160176537577389894691397706717184212302966812872049713645325528993086401233052322605408161138788925319487861723276315274802047699701084142223997929110102895691963294280332770835352538903514318588286319374292654222129276285260042254539799810059553667839998923929180915038777361400928153081940786066474842382259576352851784924147444843684342520668215659669197697288057366703621563551249944361226689330580394804546277509788735672716123758257138391394108724319551951605337651555589253551826979714756066893173531053191521229835917302302675839274164931422439389744310087449119622244807371585249475527582841371687338856845139719357174351376651048952390290170630927122646840669278348399886285959423967936456417355871840199018757254634606762070626278962322034805371836351794691087763851991107837936690226478961426528198994989440958364692651443165658212471792078920335140593667828494017798965297981505475435803177585622558690610123023401093612955353576358432997463079288408167023366788970128145958847428199428749866143771185970104607861183122285674946913190044825643028262007248787525394397901252203517990670108864444173332942703850477762959484381499099891262534888002247011268538660594376622270365082672212322235157255037650385409525310175758687338353119969360241660039650928072743807137547048484456886848919687212310981990987307479532054140103959736196967523052442164056190052674275993979137268686278535430551791257504715766018492371822393484939196929539449988380196572662503651757494033119695979411721257623713831651147962605579178440278188122553834089639827049789072574304430334117910810905995054171220773737974775030368125820309958441194867999857940111713933242395262703619927063772417033978111333238271568277342014790547261654340193226714421801961053370502633374273190455187948713485249862668222211111318914455762210422898347390349981259778110809013186425670889103674298030491363651421324982033989238262331145775400763163825126866684850315841111141155886426790721346040922170507459824720702455243140352011956531392458331009142536349587897907439371365970955272555666600702420283910074594624663130745446751130599377751204119280556497291512349150553278102298643060840537644098917444310769987172760038151634428606521830692100917992794170931936294247745806817335335970175989328603148532015687697915652124189670040309591727757081603018694597140799824436333287543192214073599695262683038565958452089565549778101327453943408643865269541406604205250151308378086645729974925690376170930028161622503187003032737144860512516407239007008823823906811473995804355590351241221823298274366777890385385862391814781588353258137893191305164723901590515007329258274620428914392667534952154942924092785612941425869372951468931427054442270009324161093344478176261888491644169256081359077579447386206015924040120633749989542529116340952448531423182474586867921351026966287517052106460784704974666154518814151035167349815783088805062902524727849132883585857196877031633009755390490488456644897468888248422504227410769069154782415861985184219579094591392694553934970741708260129913613729331990899612447611270277043889271701723488617631963685024672082669876084819752651511784683974330831726048785403033294278644360911489762879741302033675392689318594580161832917944010095832498058750645836641276952928598265770333006234582654955532316653230563737351219528492148963929423810595598227092759973032994737505687449872812934702606624477615834666170491626975717975872429291141879750748782171533419974526805573225600314170463422031897578207730237386246978504165097975844527164585220435513975928752950895465228066269694344990148802004181186420397742204042702669554460329909254959435202527964887345800543458468494529753539158379291130570376177366337579523977108739337954733211854879061926854224008395361036877899152210452106502003800518083477093161510544129726850899664228246448977642323194767560243809769463100168877605725679893692800865024874467608245459575013283810001229747305653999137661127606785834512958030384050253041663117398222113792207474393966300340704960764328821987339877333802859793609821535465591007243170971570609710596868869066479067951508101151970513635751636112075963738637573858499983786453057903044394301295041097437837274732158210702226767570396614186087744396909624777614298268125725518207382106291429179289825779700233074929888582353993193563942526806194864206708332451046817067040554213418765164192197761886802958921872436739129792967021700260470795407599880696538294706826294750079920917805450108721318367103021403412399398867410140472913176444209080110919803524432113336535828527182843262367250370024116259482255974488083176067370154856289118665446550456305213779045057328185120197966540943027004974463254612122414112832936643794032198447927665610927170763559401220553590244673070737840681089160484022631613165378822613062347649322815522919522340925183960171495570625339301919067459718990077654358539453730570858767339377522556188759086266557260714813602684304809463378108948705332533469315286522818485015039938003366387897338934112884345773523321999762575438761947829060841049231708697927266856501771784535760144406871716869009528068034318933563042709727787065088633337297031001593202232479700410181494676461336968844790945361149017446298974932300375802531917695505241625006552842611437307622654208268221345946753703366218421816566443477572096300136885151459679472036012139399463261145414446827526486615867566816023239217047451257013486590616430860058855687920847833606246304195846417470830336606533005342062042836863188883242668160351752140074640269007587610894794635150844959617000501827708966824263274755293913446482687560096276222425072962721883787469558539680869873126892374812698135012870259485298709385372271299505563015937166285821886591605207403805726033045131972167929147718675630529355727688239029226621973058048731140117530813389217011861801173372514366353087565734208941704807219335988747973642686198794102854212952941043654806166646656095350681267986083772342685220615877477450454408597241235728136293950248772132291814474603528240905004010177366269864170218167035181897467051204279605436662794521749414856486403423375959054906013609693091684106291636794689232189120912740195170618038721228430708796077311372544130605417298995054837882772704666386419113779886974063277679996081032755656287090677016148581185167152557206731092594326602485559388718412430422561677461510838972883424225891485050847290517606189977758300706565252084740820884217337391076739811488077333220165889114100515854223884063672865672508971288503845294031629188371445378786613054000917050111154718543635583103320721198133485863115342360192029371830435261690844019550048145065893768715238471241858207056441353048742051561451208666809688655364730701451711555839964583567800349094903932744514411779916379631033825445061267296629820768928347383482756376171383960793925089382875193889083742482839533422566401300588877665791783597740406707501771087193911457846825425001211040115678138129566257255109176460365967780579961308628200115012516792484947604849884203733393954346866859023545752309540738153041167591919640339500823221212203194858219244347552933753017393518181466920530067683549832608976267360301178458554875270307322003532412239102967066481671955925453221347824974025002702748059981683762141181833876083487925809813815166160414642080752020537454958013051355297538783179556066095345275028999528430525995863149779903125995926852386759975764413602257604706511987193235262649108130193591599676247754200546833291360809332318453091032664269570273636886158684198635589869662161263694234626987065295164603659088977630943695328921497180259712631079198634234336833798542781592437536105952313676705884251472686692596225562333882544491533895148078035316009623627236262932109383812134429259616897760712961096532858126385635284069187072690950871990848758805976806154343849833078622373299505385954465287258009173848216395247618669194284409202032528586359734273652108417792406533769948709190400653628400265799102780858816942811241986780321267661190821206876943902568983185502950735813628332588132934978756119965706477032335460135933015737186998527595278840155231304466646700704457016737473029447784258379713395798102341927430114166335631047200206230346672004347363362091860740637938741083779837265910226226628166836817461450888105867940209169623707026722707855670246696621523592324890655654114232165300123066831581370950117516497474177077104786711442312703082596497028065230972652259535026093760320464181040128257029715290996630179728749671607818738643460436560312600913080199055913449698243059810448121422323919883233051748761776106038024224869336078269834879905318712019365657188113798828547000366180337646164180800562110656657135445738035572162702066987066596116302669281335128597234227347404355045030184366157059758602591897297176293782075851521436630058441375435301528736386393755920249401991229614783120533902040215249571623751771392074048121632069561687837440675142766118193570409262254428125724467479356699022400016162793569997737936222932889951096671881472547244744233245083281611358850626177813475226377416689306796189069817385426207116834520208661722554021513152030142615363529241762488724019384328470314533568553211634603241191096900498066163653704830044010118129186561089746980695576919135851555938337915890679818785736968733491665317029348327448262349678936713440726772268408403907850447337091690161948341749284476857660558238949976266570726095917281026112370882204240489674179817610597121652434189876973254051835763906896752464304945981403996019833681862821705860733720146993569728500023185154135769994130028979845463872060925991656750042574557721385582160662381881843260855908648842305772902458375483327194659221890608225577193031024428450880238041182458745459540599118793898665243467776067162411186100101040907349130306713696907321594348481297454532146506161170158707923782677675224366356639191960427312642890214401873475928547074256703449969176752335984781388655657058999833186012346150364759381711586038569704789249935904441279760418898209130348330214953067826196903024060825099184094962411171475019366825471966844473398515303878500511069790200649735354559385757078833367688924611079346271444198027290305966709465426946680003655724825053853726570034645529843754856057664365484689591987032555090859093742098048624130992674323728635611761809716368736588525875429289986840706674091310523331169139017590611779084055504104097301267508771676860043264047173173087489445795368280651668288418809763876877516772254015070039336937988371358231367550158528752403375539868709478397561579463085259914621207238560952292201024194226436550096437281621236592956492120341931085580480579252070560970733110036108725733655124436397417268775153220654225639339142498791922029924304015135326183042516398217599879940327177063065296019659466033166091932252139785174202756045328225580091107055701608519778065710143163012118809125580649860309480491466761077207455026345069561581532830704419644626444019789530416738083329238465451537251333168403315256389658947110087988118295323646800461339453767014912177042821942828505066221884630508804097835701153266549162552495263850962757967494757716034923473596280176155626743906233034700445381194095286975509385806797026611456848448463089914943151524881780244169740998906039084394418502530473572469373056161853793406882946014254022114233731397240857449458623776193225518556891103646376840705160036061406435708118477977704059956412001046014130008907880893775952957450476550390531835991468545540757025419445358817282302171840873401560659477066982172966386591321277165192516662912421600260824045564181828242071555930414128479212381485951448399656715057646027136104073454888170722718008329681401203966223752409176259305011964574375389928646189021874107501694155173074879655579434122134018619457111141451434767911050873858437954322814623925103215251780610220029850611715115229246844062336709270892264532410781786234930020364861529930701368469705066369587621303871918496736262861287731353077213166220888069011784522319949365322724431774790440805210124268282757760576852072110323533635517332228465853855790725929976584978688690119345292746422752555850487824174159627743927269508630037391972324328096423320985806746974551157236703879559324457584531226002395645186342413700109861502651950965012763338281967365976435594000089837050721922683756253424579642152081415381403528342327457452821886539984540277441222545229422654145010246288388525706463919904127385863747237719701816615015593065525804024490929824495350132778095325642634262634327989951686692296919787694623076382134287918534016638265861389810556650674010634208285394781800204536422696790163479917796814269701962431418370179332392082069639114568653435751789370246642695952596006543260916042709032773341248793762208978545694318474194345106203974665551472056170610194612226866815969048383942904309928316773541444293722192576392177792342237733971484881819101699820182786211318128453632639843862156550967765319885417831855867415823900430534511707373728672801882335457853069599677880674179643009793841325405448123808319030586540851532278542313542837423537587216882363220550706527064952513569636752121046320641843223935637795209989654547200169683510743077019398841978707094769498748642008554707457267060217127409566926654314383377690240131427899977567787241795713572230606323052385635147631325572644675977337769862841750940339381216921426735638646235434020669430635075139402744288976582370030756493010657345186982126947578850411919613610460934316440741533743957724358852565023137809475431957730545187852072098638611622730433453295875474855127338327972219185035047871897884249287106896182108994171586776120838015161888651454001285859716463013644965160551493822792834449083767432819892114291043106111086869216552792079820164932937458134215076551187848927673825487935117832351611208551784108376211752815007851854778186076794286414843233233191097266850032934128914045858204431557610778785762577423838489931572373959838110607812467786358556899652736884524094252870459643592076057934668432414532559635624874882117912081839703478464175492914224861988169835836819129231902407171295700076874633450585460536189741365291148748788266701276631750412100720315781088924376640367730911755309040928171196136210539234138733422593767876852625713512243413482449243786331885276827537431049035445524214357136931385640290400065699362536817799187855871844730770582529743505748664127084654426038472744533183529848936838988978082890186230744840470844908528494030394342955463852740854759015268816000374772522811781161157423713981950740674175343184146350544342438357451924861158088003960668343940190898737819244040021983228452076515479211369255074787416583660242218546219464307751521861355815198875404635517614095905437385700525013580939048596721620216069844161569078771684068127414376614091118139631085599151661481079544515324959921366825499632712373562568414745414312312060488195654935028235797994376777571835665900690204179933690917282410490623132712442494160142851609628077906360383358414199270915422768425817749922199305725803259512377120129944248407012279686794447341806792582657934958914767888378915440932631656700608894731093256105619880308605486520877456454524748535315405011168124284749579043721594155394367029071257786536897542289496401161850244371314084346303543580647721271143504313625484386609243615500319651085500509071583370415025568891024584004181933520252124498457167679255682218023266396231570964589079686994941373432621181495473897856248821720105582789845333331365484894508887856751904044595926531952158119244898113529022134550383565982719369493176565781867600470077316918164550341947667743801815903330993025665956668060102509265301151501606224686163897193090214321417040021914577268584078652097221680980634034097430869072988223097519519831002986126704890817788276877579611783302232901846001907160874768423152240507743607793306997142082661884079404692580632742472750415657425467147233099626039572865385905528880059112225774689762192823890406555213719749452232127683384515514576846611277668820788347588586006488657357631652755699941191083466144561867068127494633928642736615115589122408685970789270075033942198758365359734300410695592267610355330599310591763127935116297140796065012532936194013665063079415700502111880435814945337913208587325484304636596357544534702368957640754770441557149317686793022777531198821848373019117862893069401115893599512748299120530681295519298249382721477955410129443773451756425117165262161669991858356468746493579240977245513328023629366757099076978525142266411911935854345013740960793760050865528342280657264780220420613079516996395332476166228915466846940969145152525634154269767270965428923669684031925350949067384509020297243180912312701825519513834600293788217620776766147017910569870953277066003084161810592065874865600514839521848249925432548561325085851974364170725538031964069280715632213221733454518766155755263903183393965684200294607011191290037403223439767010625918954941108166177756219216231211370903139719951093000601030071533334529015978893587985958847841800525379600879834711092657875489541907538610662201899597895405934378739470638423676775021833692887286605278345445220240580571136296007597466519777111126309694695034238465105314336670951107606862905878290788220871334642003643903663329809885008513378149631661885771080663125580443242076986475122165823616208346814841408315252753960506270666965263019025938487440341266063574737719247252151652293940669552453422481299918326565944237591205598820047286420420670742228727590740971398215723796321454991672967308028648644840683221903368490269899297102009204118657870251785918357505527033476887756385854627396075099761474005721928981829667262012031145826081585538269222510138256110254294430679624364008997810054400678021342767076425499259367101022846748662259411752940516675558186269417505939971153767539966509833016157369709227005573096959556492723851825757875534178887526397885559646244749232640748216285423380363359493748995268060167541421978835090237310576875032819182590521253318493183061007022026785805278515630243241955539385657113306225224623414797114479325789937362652202228457992303460117710415744094124681972950029114139867615503525998194807352391545285811182229818156494479275635533223506290496237602188857729408189351450563943338935339776554563408665552826581360008164633345254494845059555667051631077088725052066260225605736292144516747211388601691629300542051242064155552724019455873595097526255337290938999075288085242342552687896232612745355757808171530910245963535539481476277196916419842611182758862589058043661548756206816374340800476001644198438029373414682867771761604142854126064256415809374396159129242713631367317761244589933859177730611332988466552457482834925231194587069989123810600838202270265985625763339190336729400012642906996683842381794361274698665931896190453222232936031663296014943687182809327430491523893225625519111473007531481288072064268422269811361855201544798087601072876094502692494540614879525977809863600696691013778141234900206869198389264153767225517687495152040148830312041130202278064596458948058713779967688734939187037982143916720645908696518972256916985099903102030966573633018772157910787814264457256174115841858776996356352915766115171611755619121463772138011365226362712785035214533306584240427193465708056180564286269988319327273724685080806372534586774314356471343299136108458711456701768060241563987452403858336379398356339349445950307144276942139216593351516100280682600186217108027589909163454624602269858671745423109772973060195045575021217866729268633665125807105050017472133692072698071927790633012919033429182201301171302068612463736153617639480556112267903595998345820736803032156050836640166915464026087260506651984907574962129633119204608642470105996627520406799085211118873939526222171718394567435843662502594075677874552068831770210182263928929333199461895562143393987537774182334907763855993540087193532155781063434926469216680197306958779347172225448079118111196392639276480012351772571927478830578397113669060645525433191903222891936095497184324910090454066272923850274056338385485901882681494358436458439802626111161717658428160979576525067876117951163239926351700326195341509297500553404886640965835191659794919350863488219261598144843692437545565112204194805526823075332476974088472778743545235927210880405262583536868919931984460989716084467426367359168005528478634062691271721731717560616771714634755616198078843903113584777164260510474745766361438320854993672197457399797866522775035398061891408888385909321374375272033623025787795610472928563860851309157784649600087363339203104897781691990454837211576932614722101693733956770865691376111086915327835405568948605071082295424809180558080958528406673528781480386538021466467571438965475808604345129553935513095869321108629931110605839939424965760106574952402644946365524442407305990365284908966648040467945517605689027631717191876872772574890336567177856382321653056921291150503264128157327075011383551978930940891074880342610908827414137119409123094371678696136360724776571046234861504060685470464577187891660382140143475097305369103110844079695504562377538119827552159521365018775633970735439580120471966019512882510545033173051621634109051819226052554631226435532259295747572882001626270808236042444590358136199045960449167540375537272061819889995147771614932760797999354053231793037435275849954268171872137473000259335615361921111292616389162184695669562033564970596509332371688551878420333041807503066505560625174160505262331664091925223825887095521890288129575052171165597917130825340460843307977465476881666919681447689732848391792177677642710321517452447950735880763289054167316031811926102417003817756596118256541525180967987602616343017278370327961732925081347047654857656059010727673521385459827689298733297583299446853656599192720272312841968966632593594772667223500113719502646730844926286095985262052240952182235920031470698269779266722504236559291924920543503544423909408805762010504653092697731349410857279976380113049279739865584198988765833201593343961046875079635201784729873173044084272669658406096180546546563193025050149598884019250855963188092332801473038791291957958251012920437765334741089180758072471272402761666296862622222316607044875229214715071461596077335123827216691545527291307887613670400334477105207700594289972711773659192429913212080970648963125588439119442642483455502072746152267209925644565283467989949066034174136847615577313440734698003798042141226713203724653210732173573760491932062755646766549039130286899780152779120272475105329245955273986420662452957180086809157335553970196512931004832314704135049429359651182657240498204431397567031470537098506131461559915459679080382063327112705397643894613068335246691567644480584790531856264957839354546836297097508864072557823669299065081270643207674253904368857138109407458556596741811348102672978012876597705816267284575615932812660645753286983567541694373351718691544942980395328095625329671764742784192171054963853414283219862148618952679148304004542302437244624942769588188513047879480515092402218472726874326028962048598568318074375214862909921339139921806953807443634711062302102023990801664283121979039310889890286812774491398778160123696349353837904833738861649739886424085640388600121735603712566302824193284413937152603550255365006846913799512533015708816931761980595766096113281453624863814374708137609973392793407138710218356044379465595763210859726380561131738627799618662828106580006360605669651605002754632000642838339900470686106215897801359187080238837576895579111713270218719138612446092285094662178800912356646714252845813168832334386170263454531063573268617141732682521099271958324907832321928980485122982303379378592697226931958950333541260677636845192027990112943513290085258960490613481768461244818586345267324944123950337024289552856674557637765483130391544907241744699033348963010326960851264053688782221214621521942382509078188940264353675156891044885683292128360258157480099845832054876530840824256135089359722960318588388580383581856644121538670876760124831010463084474432188014479093367474688447856414817445909124539810323008859206371015635875651643095961127396401586176978131408795073714288317760436689819626413475006971940565195045505167742397940196899862527890085237445807328867069741773963572545060985423456789852042507322860709420263948418286692566061665444072045775683939323122654078124783166688018030184225045200535518686848505584530852538497542612057943053533080747750826496088529445572785003441395589379335051184030225298706162915059642259996005856489572336531798691366969944278665789125256846260414798110865685571739072133078933108525903333113718587728703492627902715673291686627166749081993182583166832828500157570780161193169221931514754937755159804654092839991094937420103717085608605881785449005704104136040435137642468998152680609255401123465329504349180537477356166667104692983095678920316482063931739221248405512034780632111316813373224063216455415588237846091942738088502838312362266549744300558099898299574258432353764298631465635055283560477090757473282636770439630979234656297949344566413960851464371303932136774212470904452721540687921542630642597260292018994655298115142612604900763867141730235727276839041559723450666693866460588292012471144178831782234821533891876058363276181819433227695553112581904847517462905620013468996440716198232054347184611020511315550930226825107491990149608178562605108859036584745150376384915134000329516399106219240557283008103521761979616832213981692408357639556211657126112192905087163255258558649616638254193591482181876195923292056995506376458182685575221152787011802994335467415362762077497854054133303136335423682410108464763749063885279841490076464697648540094796358954975461448137636970591635699836811987525054793069353207570766780148447701424716241908166822490074207111864881547728917186535967765395799335033427282146054169649600984706979585592643042870363664713071314782330611576419913222420646099898830762685836055527409904784676107604241784215062851755735299964786255295428367429870664579433758010140740211618614484329765744263428528704778556308309631435278783041945019702946575777732816746858087453931603937253315899280579434631408735860861778826334927746151184911655130681846713677348823341085136403947939208876886336339461382358344794081569610914293877347138934237736191096460564244474779082076049660271356168954106444832136598082938909729618912118342914906163896386106937520895346883983344467189821243478072387407457697554507436846747135024858818399665568196344528811941833172636825050611864900394125520574571203603557802514190435267183721921384829905803224695842432315898443251039654435350535432292167470407786146848597625574461535118800314305699549278471674544972697612839332518381972223283607075227812928130106569412629487306342688373381817421706086475482763942423914027532180429519034116351704698074233515560578575624509992532017874996366404734770389855873065076038709977318431281098978988208543559550943253902371895216820233442455725753078792633985509016455942373396625223351648750589556942172972448959988250892321120347958941546546030378786175915716613988693268737496847305496532937821475648105793808285300532447080506569294223400109593482946145390788906616264021501307353300331920745637263770770999399922886212243248802062634850888530360107234368901360642758142528398785949179979611219637975765192452186709608809213711197750008781593043072934488393095757415924137528597779729189345385050803831986774590025186579172370808574164297153807884060713068680361982419715774763895072534684045691927595319372237022290155800656076047385473599044779967487499697694271376686955331951253377640985870966838632639261649456086841403745684207194059507017430354691821509004664939985517413893851975731215682616228622318810967297476060130283311937161140874727067625585677751199566674861519649129701933180849941096181392964927893609021253544332737506426062429941203273625582441749834509473094534366159072841631936830757197980682315357371555718161221567879364250138871170232755557793022667858031999308108305763076523320507400139390958079016377176292592837648747901772741256781905555621805048767469911408399779193765423206233747173247033697633579258915152603156140333212728491944184371506965520875424505989567879613033116462839963464604220901061057794581513092756283208453158465200102779723561292301260586353601164920990258745552140396979115340224158981324505722923233213104539246998366112750916134187797227187025774473612438851408346593203124872819298983075689239949381959832188510322875468017653126534895937994644103925671627137376567097619003782417795264140347759263663742390124885381837859047291046931988921561079247143327560002901718628542513963400457589817466555211460707993228399619364911473121269194530146775562326188225474217492593988176676151278888782979077553435112170839901883452233219690347465794550944768920757930691195466900825957171675926318703758916638893288894184538070029531880984810299724248092559155043938279808620169832057636310256488683733367556867575147223393786399927043705993835058859055605183654797144313221595382879327829489096701746076716010803728041034848152265656486364842824541104899413015270893607882480630118099269149851590541025574787021536788477842551734686357723334383406417589014470201880422018406000125079287353436837527969339058758306889900098667627566062713589954294693088070900005823695779302110886752430263587825512056311581937384231274168022851932522399589298184480445579580075384356355445305492378712540563814234364925039176227873471242189196891382630673102852200967908645711771653120221399623743134479085504502900733349918425261109687613808162888580112718834115417494136345138868088956782270581343850521480437693859925257885006784709339973262960295107668375552308155704844481375821327099188170402812193272260910760537489356705632522648960781514355497738488557175348316464621651930420895107806278954949083214378973758334005355895342545737118085623018544341094185289551309575967769582402181954345544547652471426683189804236684167240586428806533104869216127255054109244486284236046666396687614710584422726127481196528881151501048066826334780645290621806805655179629838189287150692670342310883360220256883230351700321764395616340505104257122581609931547519104362633875885509204845150672483875544944792855578632597746636727624655764572031942833404210303615883393384420146786723327798492220915205224772751087797360418348658333643140276396939107072379676387708089075460319191520078841614957763735486468184411038424165823969936822816403630388781648321432715341952500755157175292986336936738766945832516519119546578393646022340789867123877088666110461362640957639919655620296225771822659622911817677173943273852488446362636125648422069299840509967656664801226976925863148887795490060138494246298656870524908014301382883362081809730884634146320228781445746837567593989299292090446482599656139592628407710419921392541826216743024256480573535503181260755295068162462657195556551934687475933671778795880849638571301299366702600290205028254401101143186684718579896608518549500279117400554966044449177560972123161383279759528681651460606165070491001329550775907480344644581792257388849467331106987374086277300755104364314322382840286428932814628494129451646668272570991639671686030409889616806990615100501015735514093945990185335935030611648086858994954553660682200864666546773191947841540987210695710321071144350237223759089818666687000278406816137441506830047470409998812101510850728768591415330163221058539738262003037798199325447725538193050677527529436069455487456670389292835759987060311075354229668678976635265494847514978702374532535551517383788757112670904488589949095301929724724501514160222534727091195469228345289773867084945073165004855246307999859375870927660472521264530313410924227364570617666376401863501013109855883578572234566278902174547966064256155068710432324331746508982741375939327951459666246263106069562338241733531495789667839414023235727687714874249985215878356517177262566127223651628521628785965136544297475171225608743258477955758481001695365239434594250762142849853184462962170639599047765471075471451182450446505583958836715200686860474768340900936386274413389351546504815799444149800395263671280549677377990138107674763256494582446302859073940700718622789615490288327208177365315381210635137386345433885697553871132360789240995274359876785129307423363141747545761075437101737051871802911759656400685830688979190440032054233809779693437041277550484212349571539105619283983807504750755255485891551297546342542805109580980390410456235730027837389659024508210171583404519906243930056102024318330106572246135885972642146233262993589794999799849549745633072618602704025519897695432869756811410269434641010304056914564954930232519590739142410385277418028124115748491682596148011008863334060097212534013737880714710848264355297871752413035971745137412639524466524225018238115325618644350302819368701051570959016350625888560865041911092664880528360019714848523503489436822480163517560279413987818097589446300401450653538036945577926370824999305402545221006941952661391836430619404877711927593858185079847068077663009990756829688945546330458217004081784094780894083402972113713962288296161651896185164941613681271735949944929017961518733151529264767529460607409794594173811984172159510344286369586923779675750718402529991076639883766482320733899862437353314717542551669599935784294622226754895676998738822024221632146788443961752511108071077724880621886793651060690002717599887418465075313017503604312038278079088082811695185612913852844179214562860596143135372578539714232629750984162528567115980264921535266745880387391852260084102754456217098064161581443311752576918530310671409437765521181005597359666620875330887224791694986524648552355121959663223654920953320805703351166273141024824030747071276006637916978027523744847892300743948204720436019582276900790430965465881194864393720769977854684654264504725356659166036168871090841797365879133566522911428043244268137502065357122197363779612286565768688671073551432572912269759841774595521998000246001104706778872984910736346536070703377015669859435331057982819037956216422642878465917145586535915719601634754398134377644375331816548969839780011978276323077328444324145093208212521715641256054005736614995162432034682607678721939643617137419822472579442147975912838651878605480219467726492607814170161764870479947218496410489568406951289628865456704223278939703330931798248392657075353760764908526776373437712717981392786967113257069622246819533936259012742245305381441365930402446894294008222746330739561848127336284910327856850352911385768236402571072208880447669630028357030009924931763852950304089197422291647985562167570676527156627792939307319716435016137952607895059397582935732352215217000108351184752051655261225239868171374162475066366990644839218127067500391619779986318211199510227152971788053425440240321868144584123751856983721699137131344773738909928824119538001706269856834125048865930432090039408943452432203058358047052999655904391642973642698721404293129049015523275958507902692457665096415007774684878886170454869215528316049558407528070920635151616321500593655176396049900364796461220865103092840415758549979551371187993386237846448651382925278342265933077777740990195162092569319948623908262037817707627039551938251780587117737380744242739433265921281363945383004553024179415631399346101913636651017140197155995708024238421303262215084377606114926885700045747197662478919600303333725528659943094199504506862852949106694833172184221157550391183899655884047861198855920911227201441015204849221790571671805141371206884120463932961125485107911976689009881928379448154669960355234923886259845362296456715940103452596065982286081842345856104717930854972475406784284588843704639739065773262867403683941139595862633458467045288738639699574753615306929447850883148449012225003386776121522866927603666764860568529417885090796359363550515585914503371560774038450172429909909215409716738554049379303835475199754438483482505717880819340093560352443327169697271839249352823675641571876861752595644831500401552963859998025886519830126752446868856337502969660706422589532283451727293386862816326267680638377473627517594594272166394703003976640189437210974729981851186907356240362374610461958085377896644842539613121384640425464040441656551124879345387303664724746330332972622659009748985016809265452536662571488220342821394913550028691091819428597728472435263727367816629784338042832095279214573572380011707187593489878936108178108210550127122508877928686600748991502286297027061839006303832673313385695545704483590553500607397050837156990675847554202174995088683426647711569000877853601592482872150280097010703583054044855973882276809065169305050078027523216252935291247475240774191030189363033712341211850839508658846464502285412734117145346290090744153005025854827586445529961278337782026239817117908152983077095812534533178977550733398239202563370742361013090679121025999030109029255848597442405949765949630327899159635309568832894477885552180609165010911782683220674524633216259847011110981416593062754977981733940705730642637473214924215086423336407206723048974642504555441273562690590346067393545480925566444546349939477361093625832630910123467269497392216287863936535112797072643772839452659443278347478579339402241513735483031764972305326810556887912293885879178646094703172691555603802280773868901029919273359757023781925391263659016706270860597884665085997973359348926470382865650861766953741043686806608325493204653176787330980319610512402799309530864701866886033471558324158960416705354475526090702787686609137595871544631630345437726061950903265001028302045761300468293648059977619500346167638970750626882356067252948912202197292015160258683939306779838319012046320885844777216789272669134017242280348558947361341223543578529835077850058122734147005729124934847454189375769264019741048188010668638154063182522305782153384397722864233181458641702277018027065675896757119554399459608242654703576099658266546963955745024446403497040494339924668068603015644136801446892205200655153732393549852661337753241779327791089999312424666263179797388688249690424684731930347930361333305790389216167524210538309678212370574599651080911423894194283512207445528922777586136633496462872490611052391922839947670084309133128854318953174497340631465690791289577985975314863683592475181478646967086071255214110164716774322421637017073816414567873160130208213002403524216883886643133730689677644196348009042199682789555382474557684850693682538124490751997253798308152882516467456119880867522189843254351380069196716387142987462009572720677026654131433285590275966051728074121324068050566299124453439220599112037656661417981958014287203238829143682312224217993058006678197871646605106489623116882957382975717474588343731614066131066156298985430281480459252977597926702560732498815877081783489414466170479551409834544744021994565591418199513785986221562779134746218830994906403758570598705985163540532273090076245417562751118099150469036857167733019227043639386483639279458733663224796864251054674142236187095873299701323198920809703453633286479007451601086416390906198384571553719617881126200131786568115212466004274541507768484061222793439927595038338401460692759306501914427489784699699002780546688163762823447563927009629634961066679637742329728912673421989381443660955889155459213329551855751338311422133071999267567656920417708629764687550926010026345942121704638383710422040665616549277666744833681288312291792299507680647602518626385424657849190232130939803335250429112978110538821606534459525827018464970206032281518676298047592294645238702570573607946728955985925098999458704986204825877016673578894902893301711139452970644916125960683006452113902846696639754817408215506377418553553103594659814405944128757463385787354672152978511984114028846495231421116922552803249379215827474437568927791079859082417138005142170795550403168977800868214183182820315155010558112889184759955556650984183483583522655330960222983154663487857108596983249928858487953394794023246587023245115274630857661323731094587544027120537198663449628531442274586379734586172629582481971345131689666375854676246999562852002254489935311318370040462629647296927727558931352493418702951741145678638804417640819461987796109316460281814911975537932808430738463637721219967812060875682995003776835323903116366789941635652056998758108430345243488631060330124532924969252532635705884486313779352239666851416156618088822717076533627675876051231959738469937303222655355020439912318068940458270029983057378405882337495842095017692633449969163274140254190763850106432525466883251789907187347195860482187437836834287900655771963945772704710472250049357716319040772786887627698018871255126427044315689070736606921960901996974755262980396098316589837892224853638775819415973180685732532925040440220343695819525598443539719928510265556238353507846663937109771280744253504980457025213786921002442190679829114226772094935128270783758720298900774719247041858982800247626657659261072348440562912696647725622446382312426343294594051883237901665236187780583510372240359388023779863501745078438966193784371237751213443763089182604618085382631652494557960037789093831527560635137382694657985185558222708241955776561860106652161800093661292104083839138089477949036598892118516351182583416899076706218369852265532192759420076015795296298293296986682691633370064562901068301033977622048122398380665897878730707374891237646697914888389240624334837479708369348019631614942460919903541808080984407649245156331813487948222402195047315993663159964882972616455407024036227546281633012330228985922183050404965200650877975352553450993564546307683004419600486849906183388364146573464467680594728633919869629476995222452729602165331211840354366475827005849871198414193490961634144943071073274314928717850855429601585535507794917536367162991243271637046649145833851553900330352743306328905863990253157097679530745997736648524345306293310393270391545605728169333725104471303385352707431322529603640875616974440545662520078421531880244715825767179444436722375357740162348947267400943509825306785632127560957419613654338387201465246146812984377349806586757879651233090408013630155530823024802793128959143043092277783447354815277097130583515447367712016119247169612780948851115860272264883129758873879417787792495568703646184017322761125260184114531818596621552344325180682930275225377914471009066303493454000813740536856540918576869360706077323881131674148201474103473907750178571635991301212073894536662619307722842929473344150359429901550812252188871394521194713599582493628501384653402919044958849868585802861104542688748926083190908439009760318739535605343602781683190765653279826589405435276302147279415393062589389160773748930318417692696563210518505668888303721019744256186233938045535590436647376771268893234805751020408862246215191969264234830054794570176945338242483502020022661358954388137450655393359132252718524264059935135481355468902380096799430574863702611804911983708888391482704362384582306065737953535391037733847697273400628515661753652537121039976843311629091005987197110302573731992230716681561572312114744792348605007199975670471049671143723615837017555982179953020238859986098250952229424836760525643276005878785935381630923973710354155707865334511806614587034464955916109730315250449789539998427483079590681882646804739287564778844706121644518518080169176224729433040725939425311897907692232442722294950128161275857598890272398182014479679838538043709093190289132449416557234198813057670375864161389944342422426487718636701431791636989357309134905767395673300452058393687305711136634982627439757139586146679713884204929499539789737619368174455927249397682753535479751218245292573242174827713651885480790233832880823291688170883673238667143882856628943885748129546170230288072999918209460774571489676246693249400449228215115151868290505742008210274360954781959510857147038656240059156670932235030588925520931878652808327170944237249991768137979828968812656503777736220622475856868910917594762865434460357913723354529165852927039831163898363923049205537632229966434927492262968739998344276933633958243634442973619503529566972179865208737617307309262728941385576958194805522059815902738749321712050738754887942407950715053858742276379471600879438692250613695505699682939585565783157458210220095798425287085981770991817865167097265671963040906931159951290646208554201376525787217795314280888832863262430197299854518056180584516978878159547032975273962729233522341924277805653701627728161212179978119957788945489264423904676239405810877394740303140965431122776109530384988304252552128182979476543795187690078058693501650058321150758763927039305945375113849519420811630082091336934806170202552575662297420813631040943956702764209313319710166273613161698554698955360382890495250082568698892906055102788948586087649506944368312208993529495675751976588817385710991078893435230981813272417090490578106541799842839877265802442487310812183795936327116199618652791494508105517362149977408370108566695134516507715788595380972856635215733035814063725850440269939857904807981601403337471462743116712870598640015932437072162381765604680260135150932332523602132227703366099228444127724353366599268489658493631730206627451316944996405276660666694345484223144812146622859943657158421747621533559588216879159912615522883635721667387977936170741854586254809603583884445463515378821984686955215111152170868135924112288741650606085338288113153085845381204330679078911751970046670765120028423131435855989587511991817127988205121159672140141077157577530803688242289340096551769743924600851491747168883670599871978916472545127510871312242010005350616872538771895862772776558431699089693634961559006774544075826016172378859458698933923769521621412852311608689174423149777481640555272331982345712063934673661872923848835107951381492769580912279032831873763369152825683086879017819147948890601779188059638808816209122474231659613908184845542726796590769901476234144312825907057859850612233405490901891500406726609081376143531860726318491517305206515080369271528531513890769460092372452918877272456440124992349092269396652187202523593958374617879268496397249287257256426727832748698988237429771425342541354234602210216031970074234029382600861893556657359097226395836207924903445265953342335592355999953951282032280456455761756612178194889882968143471292831913379286571155216382602551680904885001402021550504770179871286272184808397663411957358014234397959563700428258904425433617837752652741882022106013229138636505819952609962976001317313321755631322392148092072661413738496444259440290221369113205443174059219250748169997594852798879801775713837774404489549278830674768752882151711748616809920822032284890452937127904192910940048914867517161034268144100097560129351235808553256518564252074577665811410116764536494016793879934011284048651754740247879643162908783481379370573994232755408712296872112292899136435412799792126144086283165487384086033573670464862910065693652504538094620514903582675355682124588963160740463620326274613518152333119178570847581649776905874636918068285805084114006836667913062776522901197833121732138652256550041066235065807368581039283301740065879626832073345703976981264545491931452620749462098001842805309198366426207321717785414440982922936910281157519844460869005041752554833630766701592973956020933497847967311243354079164049276640331535902087446076842669070307918122048652616079197161299455082483787739279647728268626580928884448227893751513473662040339272196089581486316281418017695329204929258713305716267802981466810181469979446610956943835995979976100342889021885097984695314974395502398855667588752231720857598584846653407926835751652376313038762240249717789116749730254423699815407497346244749393360600847500476188604335318341692767842131009793812993331277187569781457882970215841662130004881019609983718765055941483644913751930539365702642805268536054975365302983362723189706363980560354217177534529940257309299705741857997770227283063641545750210838693626763909149415089645342337051464968677803801656447835940778911660758926856371998985107822901665612163832904327730664465290748477940925187709676179258246472706258311519924771806893093426708219006163657297598903027435711906129936822086050219092476261517022252542159443101534324228431650050535924209485575625103647689529624834477923050581301084821470089927568260696551363342228554108815058783720613763484138398853403307178971948415076957748166191667027038723373169056471544049716965517413667622661957671586649790203882441061828395871088242653730413344141574077547314806877384789897084363123179598789828622886765731775530964219212946972838337281112926976764764618230918079170782570206800500199864048582284786227427470652888793508067783371921938177701291304857778163257255414866199462844789872352820129946752925557439010560056080380226580612655299536227486584739699852722520515431747381738654724185952981352953565505939994516823941956535993704312865296291306850612614664361677043552084271429136070289829943141857972430787922641785165187498850857284384846060485909618772884260851945775900036061031383545950873340972260366075620517834847395396518668602870003583179418968081431381104317818128435894073624773517133347374317032542787428958173021066248014722124996047399795180035121006868049666405577127837202228557455789319445205490461596722016021793182261814163033427265844580014092433765931409378753156802624673254221210087571381680871798509831307879655098273155225927980952727732868230640459200085966199249947552498655432347843095978585989604655403299011899247038587916811840099873881943865164871542537109858047558392294142244847616624689489615520913620289752363275074378353037386275270862741125268440733053708845149591274746417767863977636695063435452607396911398474158926480816047488882921806335801552580226762835098993069213269296290936028325939091376465952034074994835308906252889710182428327239995420981860640520349849438807197022517879577316171865851253723047622937213192801957429279480941115919166529621860483697273478199048566748426245497904439968570279524141789130117635098665897024654384474973848114570930768707586016434011216902674015510564018796840180377540253587337957329124853489974864873713015615793697037491268862990381565062687554337109725873792388573365711988146488219605280510064279643933202247938942094342471004793850429504837657938680933281903481322129989923243685708257137115992938121452740403047964575365989537537653470914678112471195547529245122999934849431610985591533522652356250815416605057917236602163073086482642165486369856587260988090207522362242852130019753966700225137893048310376682312042374636504437204751969566352449382724291554708261465304208430858554826358902519324832899539063550831478533050080569778375485652616759741435352777571849368475925777145444324365809477317334415287190059938950329322493928986880718899245359633492318339488316846337216256124869298854732330487286194198737665360880265127830767731811039348457665389607012508988950080180934349709144567090137233749556703312349680847945680501295459297786481903569746564154197214598536781121383785970531491640310243774213998434005172008262868695677445055329032295929605996598455524534755463147651661971493498306878551361826037166364682184210114922271969706643943242761043271470132497038101081852028306877507082370288295386367744237976980595884832052612944696598894760270602295762466672626432433463863804263691255245722723694490326104143552956269121789235801370040784797378192592200693038507027901397410780142134272044277793572063176165280890032106678951544338478937126954628030864752199725145040346434429897089211999027743222261271547423494447371428455309818741654118942170425230467119617820832886246690885555834793867149842566786626840675930421161734712744513689712096595078795548425136488285084732451822449948179188901489064314125065880033855172004245987375403362884830102751507637721433595339104689224804741208517092093924828161214011488393208499846594652487335761578197751895296792085690669771122854095831094564568809446452219142954936135522276856511653029116623419131484238653561064359855153148330084635740043331191493078845779359452218911703802327145702097132711662001521484371619589276718060187995612882736776918304959397860829055733590402387512204854549395927460255324742958967089065050382464349611132485824630664665180060092432503430628369220335287282519102783001114914671841588625346834592186938592822403565317892573375500688110713617727210427504809288860665008035739042294500823384694222780197739948566445358200091640884907374929481635238791231019992769300316002213908714682700354025708145919911179279180012935351378034301158179777678266052258257731655291760198109923844196766468236814572617736278462757219231597052177716070361923759012980322407418743112138767399396738028078021279912465676778910056722158641162854880931616902162631007245800727635817104840257105728332161195060104356809425037070310621639869948764968310405147356224229261239587285932254616928121658183337378911535578170128139870381947648895191403928578566676282345902196113475363177764021834594447162138239138395513475544161480202179395389665805070671606076264201577703338779276512173529609876508309675773155358989430902189303817595844880230220993272161420581018044684396972279699951522415583617844823191251019650503914644676931970969283903039221716236542277249310539194159644262728878740256883517802409078002705854444510834517815606768829999535035655671471327637064387167147401108905115052624880281852750812885813477235142159032429072301228545963910744430138685709384655279356626515039931813671546093989127988821136152845835332663219466135001374079077222640672545433813149140560242962853077317830077662551900018906747546153088546777337860541501485799009165116162759160832990839245090949796196210689093044466241468371012131349629064662827249810435884031733745859729955399295512720320931966671178806030692052603905671368900476439555798566203632177362955769858392517227439655452068550800381769831325992823110284822629933768193950424819403122540758315875842310273562271402368087029124188731295130415999506756878275655549018543128687574479657865178843346355016098944330708315653209214034295633699677855735611002787222231718469057225575716518225053906726863606206263851975359462380056806706926152689383883600265084969779580222025854602099614411832832893376667875096411624199856191438710951803204471673007620605469957789248098953795961663759803988228729296581815755505791542807729520863108174926214335865355600171398264958324378306707374783920199010109098489629075873541447850410053356916689712008272789728280533936649264302610307941485967769204481673809232729463067975500609691850926866159518284649751117742096782791321615197684414870579348722797996840085844329404080032639688895312130912882546814077543735818598184894450507307314777877339607336152370940914071103599096532992224592632095246991956327727184347678245923665200440348015576349029603758583786608847827751773726928642492695521543720581757865162178469250694927952569709840361412664771891068805945133322773408525257552604557037085857710736351264866454132886145916847219138619390452655635442730678738701052736298991593460976715693464654858202061663046096768347010384936659969965031803730591102220313071565930752982844373060219323953698062338111481761422965184199183810191335133709709193398578658013007546890781793054616779825031385907036695190661052706885263667964182844578076573018943716162809843369627751696251357301752320855626039116957144089743490386501438355408263880393185502902894490287555444141916759947710384499750097758806727780314871527220038429863934778206073816242863381246151805359944833731503747923438842540365053192065040661944071655780210320107818835399781251505230864601961586105044156384382215636139147921600417212857423605106431547496876642782991204258741329366659116729649333822598931458469630242764815946177635020431329893609111151188594916989225106264850240445377352335843455423877063386896020698943250731042194214479856185542681705411406765140086488452163385736345240434411355736137869753973818223577635732990175783690719991139484911853269802367386071899201701133621421265261872851528824766362395790482723349458393787715037892712822907447099096326404224859708479492382014687521100291150671978423780987713136757403269436182095589775679297354585570002928173494003687111479107485679107511384590334188971314193435370020492370708405273792391000174846763603292397642540995309225249841210767002871033393780985254844211989124171260039925980614212015375586270805247747695541175206907304291479523932277418998607434291335645419155702594787292704449635360238012840854268642754584341668622013040934100959022130092244912873452449734540787774040600390073123239609834103648245450750639695632400518210302946917820093539781944332478548094285779790024719353343660993831766625898872279601753215378064366963593972951125481324760598394140508445260239677876902566830580074746811627168231794357048726613492799726868877385188093643625465511957733556936470294166086810188496976820678326458864395364934026340702803123079091446605778758436416153795075656780240604127470039201064843148216207137179356336221374974692950466881155464146530509660791073414587061024231325255463701056547777301103185050086614598390686290134775939192579122679075500100395428492660257271430972094148516591555280370178875136744927769166745736801310204391363224491837591768341432361277206750559519720156566795122899736576894903437383078381815070703448777731675174618859776761134901608379410976443643621828030537695319227478556556206088713314981214764323966769480921538731479440804009774304955543554291395212079930714097228766924973609678516867212844718828345136835236226452189862327508183911046257234203875447716848760828782158008249181819040423771894063954300711819853865447826369631742563521096659040452235275961390770573305910986801847006150779840922154407492831409466940151519203030265345583071202668370507265261429822310358048000851264950247307711985581597469397520346068241818466257406448256030514167886934511061863492653225671898605063354431200295653155469761421318364142494492682957573716907784444755274742005597432603466697631757495922146723305483427533342090216919200280867133818151765134672724678560180872806985793062516391815900734019178126337720629437217584348434738567376454354936764452021055196413204190903475109089559010733926850768992818767336590183285996077004219611615319892308668841564928732239391933687758631957538828286880243222928574906283469880031800978211278346447369943068589274459351460331554052161323918049602851109420092006810860967113716990163112495777335628881475776751337975001021482842434971314482215556944824425129651731005282933000759688032026971471430557997272702402384556693200309336153400134638822651285849604943374136513620175909550076887257237908399677877104327832361821807928864451298570472294591887639017741016215492529443404466334553796035815259084482716504714210649494339056402967120395788936520858735686384856403823401247326470157568285626763148949096486370878037736537056228632422749199532968099537601176573560706688962334065473634628753017400138289335696564141976244273880653200559357195259929416191825008855942980493562562347576387675325026176810510294378948280038181909401633385362184824477857521114190200115722154891014126574623409409760478059024692915223769207021504308659984976907725846512005462308926730442308399098528361798087488216517501394768839219596197383521902537829218427400267994986835504779867088743493487788426349113577417379378963803266412166087864015102669353853929117586753982070454540099155480994055594771630227826822881996691199207772768569004256445342466159455191246984940917971312767081216355879737550546953960201992891686869013167822532699828311881176520517131424030310361907703448600685769071256829912292289041651418435412215189270926191182789072038647298902831244963716722622607947058907730151579237066505377355736785429749614128323981072567805447784550333802582299900614329006567458113138370620933451382728850951005894284364009347525826153481549343334392320278401906340610398822072400859571454785636314427709357818646870031383115060320239013819367383658231106319423511375220125930221646506772395367401083460724736060018732335957259674257792577875347464847438558336672633057975180627948174154553576632455621990677154365428762769211865397630554166772737118471255681953742987890612319779768238132231036099871107441163778245341555930694652870645143714518255481709386745886225997193200220125679477080345755340685593956471166039497550936890740914114081986740342973089775931954775849403202835925283686826560128537934159295817603428346619281327360098610986205325102030365438914766958145612587052851476579044833126326126127547596737061392946434465502398563499069044171681297793156045424478118151684323997331024904086120232035262599455138091994394242264420730669942230207875737211345397840918929527188365151157728433565072833963266727277365527127783510960648834916111659729647707283397881762071064236965358576000178613345742474716467547956055760431599211599617105310000789312031291659211814559773632128131008845996859651547991596733482069257258694465104840901607254303794793743992494817035408492948271673935387930918914910594027388257563442674029204361297196900355320278074601299701516776456616608662065098314906518399081340365789233077742757928881785397478425345621594851689925631541665380460861937576610115928271916265498459928441380917909345028944622269874606236912491022267635698462472987555305122807730603827231476727333923697147318274650823570649364585741650652752803365758850018679830223336153074856777018962152237772807866297099713846012456411393353523114439413631136412506303170575463867164921917781818872780499865142962369203289752132044164594823111651568070936018232574719615128398118245002857359411366899363002865197086434968015837737896070734050171102922190994235678759852991064219794252888071598268543897365101995698553713435634484449994806623871155983268000913912923052134531871093340605485288052802348009198195206408370146529805875340882775782419719096684509257273542291597339420966772162267503283801683670126832708771819744711341647404233364332417845575142917747955397326301847822378751103346784282157477199771872490788456928785591497880721527621677748783937259466769746628364636432463687008889116960306400801332122554403325990551075960130121782721673509087083036782806953561879824324975854315837024551103822295526928308768789724761517563450710932267048751958354389326726852062510652348642989681785128034625718673657734084030317254417206056261328930674428227072781896951304271369338673253083504352362268066472362036535955152200461086854195601500985180774249137520429031883739076881451106331945943196801603423831429470117790733995188051863224936330373742898766639557300491231154254744563575122821796031493192175536215597517354177149627057866660916604012942064133205601987988647919102808257237334409780655000467608465907721327762048534428873064107521635800858604283381726995542844073600686998025463466014465865058701796662801137504819512746475513441094129754440051736361505323319561402763360504371484993550097933965755693472835807893270151761668707167850521515782422118197723059610271802211376055775650822451073394062340440352245923246713297292472959059660765849167767975817545550062928970945807116984624833363185049505413603244603712252300284036644327050268292912129801325870485545184916693717561170693157529500261180729980457387032803344642240762456575309106117734268436397474238420782493396132435887851143322143968016013555066950049159500712952409714841832052405471308266600028940697737467479235778327956768661822183116453615298104323673965210990128616679765513048336670955819814573016095731952786889761794973866473112581368733198256266722915555934176225089278870215191552231720125761879462211681963125112601512878665933083997287020958944442548385781340346747529570984798348679100952939317706777959528293558693383892840178883126583401820741311305901231787549313260038647439218420243114250271793444984910953826980412133780639573064559498529120754794534337882186036781686916246401860176098950800575704000761361758372686927888940127937087916873132104176749274814698868386693374298945290009532262062343955709036500534702209683672069955991920696231039683488885524679068661710025052273563193162291648015338363440666933061191630652332220967717505076652650692894526710466359629139757041795199540763859269143529727392652585834922600128121059434154609049089666844835347947674018409169344082112143757599184497893588798119998837810439545058220926547815302419243428754966152987275206251242164565241443376998212057577397697925545297927554831102222749780411672329065059364070132683811693711786170936533611466179195889581638008585822727314639881250743188593062854047725219732552010331502112217952060290226150814842798716088771568304889462662811087516571931580348379138047560998119277925819381601346382056761579194768885811197794657373137141289694042585864260846135678036380959030494143601297651108699532755698212004415866804285135148594628009450268028278907836610313319398157005323577370982841962611754631277640017925566336886841014662578726448754017609336249244210556522277284327086563814525893989409528629944912638985150263996892528078971437305271170348287863254931135146856674374550263807933123389098758199744638354698288840886795836147857200410817819526727363079370197316110803551330754342631975832662312587344047184927537855550565974434764146717174934162313996684108407288369123992903681762489783384230492408691604933358572084952341574638999590255592984648416853092093223945009984260935365071296103829391417838405967360131769014219229446882477034330998038266333091076135795356703162032015652994263383638991703155296710115717138660538111098764980914225322121188549785837545267354359706691190758277342716570831105588157820265771905571655522991722592519941711820712747163522022416693262720429458500760267515572236450025357983895144030656708768964025198436204767366947624721322207648935318529813483056615726100467461609021782036809278980358443462833161529680014429438343481325149444783646997109430062787175190158305497526824970668196708424004153293142670724391091926901660270122754997262590066958906364102019680315052141840001461281315143170462928936126045139925563659908703511182217009204878683413815583686000102213931716293817516148142204543976612832848954879245148920391534687356412779380282294561882647003672613810072922278924383414328912195761584682588953224449126237210430995921748569360039307287559776435927825721958517328920328937364969565481001520940677075843319610801919152697035944972820542409921774794885510189257967383219073395543848219021391354610395728756414700979620480167903182327112961691883705586529423202821196777521103042782428532307576585752550180387277231195154073084300710042092231837895251060951014674480230778414332965396911748552637492501813651670165981316934196951682096386488092193002764928908785590657822322196440044244384550344447150271472756615326049843799649104637329877730946655241608174552773118840166081692169472356154594563984247435131073562115161225469673113375472032106663905739594545835788981118617832426123825838762948366419784369345594147388745695455510687953389411349879899059954332882565199318448923391198910242207273250330478044348248263167953831881234536432034397694106763420507402776209925044162859873800854206330940449084087462950118043876819956368097741251214782564145810960546394548353831212074113396709657576117092170156919404670300527883385011960688128543691425910512642937976359638044261446693690374144702409870790060928659145662774737070541847001412606663677725697066185399828183951838693514737030217082914386683491895573957114688224894383476801514731784208843090801465885876918771216564120483834695079910607882425853596296891164799513974190272537850463197216075753299247670201361948799107363098561524347027748328740870746213978975092298947562875731149123181919277777555684302137964362495009385085575130624494616128315806308498594205880457870407878551528971936045628264480468720456617288093146516702875228320465704749684580211198177629707409115942079149302378185841312320755823659980926525352423475698678428971031219337805960489698219075025130443122699831515645095797914381524955732103585350796626064334473398120774844698645352134394299139578401188145901672609468883885592348705503210140467295362906770080220595087382918085265511775631867359546374591584536339139380178892601912605510345935075796753398399082986482242321316517801147047953340095408680342079569541641311313550566611792435082263851486519280295837109462616696734295288820969592714431338276132100762149785566345369759884637652081064039283865914358829710499072424146118996711710346786630616969050373154315338504144144443857751928121208210251952609025698571278291938140301420620261068335039849945835622115915578356079576351529961060405154827333661767738340649685644925242332798264200981421894329173443574786681031630253844207655672219010059280730909007858044919184500382956029191538344890796446157112001822217342752150584642775137451467788523498681830251369238269629517702177269252870094403594057793411291506144947525882363904148618573414183329022012968783615917652399063989099157115955935567645903307681641441984512994186091071552617321947029535925682083110895481748873289159476087459481709888831019006508820422218668822910632737036085447107471080489254733089705230753833338415110897307630203273590578988048210780693086380536188557964576105762301884463372446961159796969993247663508404660592034432171442571277392303411504250570863049572511987677019386637092064561089793815422439773833602862228823647975876174148827770096248951018239771412569302220063135925192248893819373619055403561577008465329752655550304993852573128540382461495987932705655853196932478352187628282774827369394806596156489192534771984055387480442766909259685595602072789830026115520927791042822663101045418886527035316674729290708564254417222330910516356088208610990482062786970103694865589164539921911834540228033104218274841059056715058609153666923256340298863351846443295200776864308741967528093764326432667222311221655688367982646178477379962403004915780306020420261561550694274470775141569961269799188911202001852025753172473166734276301624857810328892558895728653096703227553058365533462514618969957762925211453212110173905650388694972767360938361076016160014032274609601944499959497956058450553246586726815516140992588355962738520707763715297681091064834798071614408727780878972653512490406248166047219772830382787489346632451728611925481994648363841493204896286959830606873356696369058936571003607537183228090046500333254945189545304990432212018851636421767335338049369889835107924273882340111678220436927326789717628905290072279391349130073362136046000471688916628348291645159557537853927061452696511502826866182775895989812266160788175172426701279400382972458090886398058120068469191247304796243335028204994290629868937973461703354981969554593943497347119475737975707560983410318049692165106000970189047905937597361811310649776915452355792944992785046532657926073080767134576586502963519300932386210722533876889237571221047783554618750318007472679810532617285557608628207870615185810860772330218683679671617300793985576003899692837865558302199811983269753707342390390255170953790998177745137354355241077830113771510690835493572449652016388569639382833115088283618501120351219263590546208740091342003290886788457335861032276265480855561382708997750055390733888654381340746798232858362200774302398079124246350949366234744763789945450204946586510514822441848714069247339350462416558573448174399281913823090572108488223592620599568899669148376919321848755288233104568842697180790689720641201125894839641595315591051404000613486368980330041007791371873622903180977508095685924404343654216992957251728419059444327413373395429630322378307319151530070854226444533188657734075277330930081530175651038759856113266496742777940412552645447026661690928363144064666644590242498689709304246137531807473765544945722189625543114736683336654861126194904517302935755676719828412957448058579147102382637354425270741547274675920675380133547184243405866289276239058703150369106957879221561952966173594259669608781940057004485197614980801131357968652929925730726608051316313843375086620182670502661617051748969580745413930536605642897837358310742082571815762564225739488558654194245533327083602167996047708319577234899461303298867240137381561814641741993358288812585185100357345238069008410885167038482259757335845375982433227337124263747907173826587243538321759054841403916134907641222585421374124928450234435778275629309240482921788325918215868391563757819933607813287982324644119532661547668733796742182821495911164148220320691807326874966564762201709783587922791005890089452871529473825093450713957590665636918587361998166800330330883594270454769129563867551664135368546646838728194152449323803213542277056127363776863300154655331217770306109944917816287594149662082174961689145814094010051884137368317977586916111737699818334754819334364389723046683161989409131934437671283300584626814866054607388829484035387397553190231613588903338033066737896418147019279902719767461014687467886922720310232163760367874519869140025879108002535450389491651185177187938996083144651640533089528087593621528336395348210287889193488981684712123644183483644692958782632711217167586681715307503860157496777451051880957913262792314446234496165421048343427391666651103544400513462139155304651500626073964902044466520241453464643518702267238191531198988068850131076796655350041038325418372868887650910198616470041873068301452406472612757902605869355945174103655603045705613822115331670199033035807239072923106121834616879909510815564090362602377793060125127036578182863698145726670498754887007507754589634676019838447558494046947841205782241045799013303911220063754143728009954837944907943869565552839543563007214516732568488366956564042161507114229360244900783628082572460079304945286859888197827807645173161751341605220871727964712829347318818148557535215042532655805446924131028208124974639019013010620842404740269733793931084838337858182508026721904912542394494086555869855708992835325574725204408931833572694104579463866349582424015299966961629576094705809269269183385364189579179843725193468885150103519313123300697356788320164160960937559978190513427884689504438139235894900130757067510738217884996947463610424565818054231358136513432504058116783502677030101841741398867614634767141417854256574913205124820122690689635796027016321289165910400738323087798646224990261039165192404179847929612901441884898578212523500219538250514043447739605546759338317414094099410265409760523700669826143402074950211368732716441124673456486378643719309322933392854697385748435057378149936226690531373175839437543240376419791005028448524774758652852159428694638607929722462280542864421029482597815512365148839285420105043384907013376790449582065461237314170172691998405028691005327774349574637527863131774003094652619616936552669137863413285781168634698644596882463743753620620324329767649513949781544774901170686073413798752474496658297790072809895000353295008103546155816161365305406778262940369556810481939522562420423290431303534381273188422921121849733848808029348918592960621991808985255875889504556407491750405448170133507138970203664351170303417784556628617157261830875759864052978825838969374616183436375651122068492743861068854409311767787660439578688484648034607154319538920918763014542862851921229319939209529603013558355495291958565242609225300859675636717790170084457139114431384310059157681675094581097104696600092625026990015096991869959466590247284103548378823322216720817938074201190433940477425920741931877374968046193309055548928929770822295763200540037271738836494743120898543392350210927915802957370122260708274608641174781364120788430294826006552814565032677027357222474210832190140844993769716739896642085714845597399302025520137522791961684768818728745815443237906112429822004833415967961258481205249381201923489000991212920168330895984108718855848677116453653218245365546996318020032677679992468368277154296439045093330173330201621781928636615717115994056708951389834533996186393970638594528210694906634075061042709130986167300015909615767302501668288426152732375026632084486392149052178070542762641598751393940233088093413195044269065352613033984962843984142833279616914133550276722016089926390267425875620953919360120504649286172177776065596275374216822214679095880056741434725158601217856786612839687866654440983738846615459461313896139435544845543403887339929852878363427481025375249206115264583062354172885502320286227824820725848444055087551327061675270150982618563660013232534817716580290368181800999510900807191530263851058480925832469454898972399654641232164009214268191900709396222118646033241214911916683625944407696235588414392780575364392053070584657431629103517855282588177964202147774815683823425565001999070753042954765390211156096939228041016247490735331709945916374292041545888825153339539458061047439332662015578320737680562791245123903987255079370676631510831805307195747939237025002546536397109416979212944308885232042642105170758802232700591173698649081479993613474727760359052269770401216857661874999802206760931748305734484130860138844731486970500646809194025697107683631555324255168354528006544892938735735676494860168285975410956522720384873512124450311531627712171058369656500961872931803369917020010352646853492507432847597453672047420570359451337511043839592098190427021307771306448768789544430143070667201582190702800349586351509928245767041034955974656959433710946041168074029836103035892402375353327906084326431386805943029160548874815762032286270092767688495736387544338460873690962837101147652836969678836106497175524992320540980982995467425791773337383322086774867955370269450421951155972443507423408091337738806591337525835458003783563356142958996222086388689503006323799465918286945177527550524141149302644977925146317119513290169466788685738714307615115060231558641916899576429811727905964272072944981502475187258378612109015187434019881006991818994823833638377679739239371758027302035314343810327700447415853220274776590939283625419883553120717605484234353392636007477422111061447562265816389058030615122945790205781255482017320716626636056866082223851625813504837094721175316343702397576598089060830312969737599634710545777869091675426959634625115527674538843114668858873050400734446043264800500295051494086449828312927743991599540068782360695029824012812837075073679223892835953394483457975805977428442212859654761078573322955724409943083536749439233828848662203154265534449456042400957370053193811155583027717533284257974453242605347223240517097653988473357855706242020075429409966387470386054390385814845871487804606083865089453322289030505677297582953736175107965791881244183290792732785164859667841672476465482633761893388230500296856063172150643520671310679318116663216306271781347806972050406296173286995006355833913682910205784703573531824084753682056449486529971734105035355734619350359250373305946704092946884688293700272687389888500939502866553466106117725815072042695831982702412951176529798387426625355572852775548023218639119849038441045154404186627727437787826483852943914570910332252329465880267711928339771679388196723121278115173792078368490115200282373759593656173505895324967911388162142759582102190309109349165551014527749896717584164167932121597508498691588548922085616117832286595755906462546473816499766521939503929506276876641351969037146198899116876531046803438246604630793901970568187998493815306484251358313885935892320896594200836592423084627586015272979689454759600701019360519138736967058659017380108090554371675063659543517465355230083569535848062358313786250990073398329546239584735330530344554189935384180294397330349204665142435194859864134893436102080910297208881888776972772892840431743383182176156684154993366331264404902404101529718726530125352514780497544647265911394423091253289207909721358309817779828178149441225688698204166764613953412976526402629672122539180030166281242295198050064750161462851249543965705117789948627961394484093361754571581899755603703080278537943032505013639504733197373662941121564817007508560444806315137063552584291766186712229301990646303053060461487004505358926862382503170497298987957729334235461988049633391377727018145500914967033623084124385409983843705812481020257565506479983551304123987965489691888509216160317664927602140803755057076389894605923933023407565505713052913670577253166875124908920627388438457578135027547891135670714351527289621724023236911075659954418027188436980738649851301547954814726934882726750189151082358637398170132799092918179506454698925152564367720486441769353820704407216185336871092957019213698206551769205679903021627162051936528039387593925174101543365098303255246030127780871882556831611332118009671295095040609324962552761006924175489740127732702522171390539159501556610364978777696810105776455952170042828369560295935006704456505158319330730176565696852999526101660391068654998927129732994023656477573303600630814799137457407399241132359171231362573147321157416109819932467981175650051598274043546299608667739171770734822104143513462023454956722593190917867911538700690403075685062935057087822947167091562009083097045556888624047504799651681090422230823888932091467491286383460594082803337865913190839401068297948614759098801655365202987250982404071967376656623490667681246689477946371129675755192321066434374087000103699485459852810352154720460368442291051996701478786783092671391425223481619622903832668392866058225121737480311378697356044740440702595281983952320379832900446659804139384125474288052111427038713915639198984117716083093382952729758762224144768885209886646123735001084211985268628863430500061416333460071298272047432612534719521191181261259302621870992544122272708181294606068788878773286196175337066278803708702225816653309932801611476704801300656985277195872945727068477480553038181034705425033002101575513297886481119112961690725241550028773214890481294508686553047865675878399093809083316058800040584722985626630205885390311937773434813130492463664681597558360869635025378607307802830800278221805811888970197815268729172999732456356696472338798964264318906236646739877834932824871376125310611133063009979427044221966611241037772994635881040697659542601520633737419951055580393999940135632763889366911620579513145257271126624363342299010025468909376504783904229550509425987150075796909539050867255172618486366427715536048125574443141981545770075853524151532648888046140069038186870720758768482428594020249256414954686806546302981571128528533429523631233727914858367581998107460855878037498792246248755168744870677295966267098874042455648297293968713584561231279164713207880628770856694194651301912053305603207887778964415157744239537979328378393987370158610435981621142318207370319090161718610984976713183378437392062889634230870930229812646226271963279590782256397614730961574199763177350921051269614570498995837792180709986587288248339848096474045561379674574117636005531043736349156010135035371099068591676571911396349388827775146604537547940369177020641427153561437370550083773148721079898081076746001048960870769357221901097398979036348151211374564087776279963933824382434172923718991973216492646552227929357448124746059082662156669183767005326672171321166995582657859002755334331621409878952449240672038083040340682833154895826419071214271357872650235403395214114943971181603401886673248315551678673532823759983821995725206437039189017853576583504764502961234927739165178947544010974963304649229380830988972732551846723084602175292928837788077693739066944888295327382304801918242361174085425331191479315489695923611621736134896097755462576021714450522838847199600916030637103211123680283836687262911332291167007078303195604887154372005742944927755868049321233193709499829889796702321529934376982796377731068152799197381897398356207055973264887223610330114020128877287553344159740418549323963886280943310549281557905194895976214984358081727759600689573910635311125695474405832652782947770923397998719338294627055384485418603344623830936417199796855445582006746937753506616079081862174059847504553718335805443450895671672324800062814715429944590044116572713040427806479247877278194760758849654314586752247208151517914497339350823809954943346349264600722191989629584507965107201006026355339554961294538941133761887015052381806249149447072731948449380860888612812929141395183760369787080165260994517750789963243819675331688213889503564993089194313998226479938053628713514026265603471668781413273559148207649192267343920144588396452043295290160192012145295133555660782743723797114816741820594114970582807162299150977870424906811386758525087683858754117933870769963567398660581231156228610656020457995681876747207878384448366999778634611380684949584137777644661515675269750886549080878147814682093764805638698815206934533941361020369987982555460536440679543281486309876482626769420117065539964191523733451253218217721713783416348784730842683063904144603770307901102796197451354919703166816531463270393631864517019745865362139001810304778978646453768022195298974361903514467632401189134382764067852863681723516016048451928457630535341850418173694084188559428540943640694874728934994983870084633998388396548287149594406039197884687045244387290851137329489284323364222328313829975035242542714781942983912078950109116469092391599626029367376108863195254779020683941919258205936120428460560211951201689315845293577670479620952335819827170656237190853353728348475345257983985473034608374475307962960247777323402269760685388217684170801683037946305168322344515675522291705153451434268191100263283531937375758868555799247824623257481124944019999127402744292576147518968146226426598809950987919344509949223724929337866146551446061739502714322799329784875844833192936446958721672825372378868445715396605664153107119516420921713416931594157237862305629475127637672308197152560576023482678438401561642499878364032127166453302057866991914230085918793237640288728646560971461128945796348558603137945140181145740532564853505595250143273796790417881696948139116434789090156741607874624447677249641634074641440163324584803632113878673713747153793589620012688079639424932106281795881211964712472407864461780363403945933549379824279289921143970402642130502468480320192445988200508187751649026450927003334648383238174928443907381453486218104058584370774226386717866008055947973911132887091774866345367748560957716035092323754030306846788179821042147431437251131292744417409768337743735930817107876615319939906523610842489789540733167518772296274308430005998149326944719566656561496953646158434861242940872164627704045223627058913574711936528850048081721093652891550329827986745123017952017472059149747051638019660899290534212792607354826517966215744144449407238917175962801967234352284014966808465587026445254123316527457845885459014528197037211850280100897125755289168670592339432471368130205258003730044518921545543969798677260260636658171793422330143297948397510697424326081747792932923945546614003070780879704241161231109281301000147460952910720411470588935709026552837315728566999511197694029860626405273606221725601059858356671150332505759490677756268278407429255231355553306435257814663006975712155276875517556949990729215467380369080963561465548692200874846597273843755791136455409943925348318961229052598779021666730263807510100889308520784143290351592816069443385360822273066083089011316985903028065402316288623207329175328419453218759420590971924746180746084635158055392177777868581771318090068527175818175714261954674019458220953331935809364741112659953412727194685267816529461021247856238627448444737933851937744896625300997623375223159202548655606059371034743854178123958228710460022069533242924448249954456349870028630245979688022143360334674530438453935141724089518115089469420161972507517099076810613951366924121132974859959234626628857187868975187315038277786195214626931828432431212223058701680442695101127322986381095813869224281175272739524627277677550218088202160275199965923813659349375883948502465540657961765424972457001339922919711227382008592084594519504851388557151519149454935176963253019285694447221938875087258369391291467580957580794853627361733713443908466921488649398267477599526008825882166419426261930169106282343736847390670090918127654391970270638686350634077109177721694570871519914957368092196265202431740674473983178214889473549312450930013691914503268104202652109276794525466141309794091645381541736647986133666333411809077667520893884947895584972187893422144393747162957992162480973056160260313608566104400335912303847858023074128019965748752804184294080421467142804924648647161553473448007398498817718109434738370122722255290912612659123218771021093588613696037104714101811738997084588382647201604747576924303388228800401345584042831775645276152409974693696915235453467895038985352503631912009806960335426751127303955927631156522108122376250017874104540683202113766826747203884185298680355310987878389756272006764239541763764809709228831290771947571867141364659865282413046126148340618227600083507050171557826566075233122289051425222406958985709407873097265364379319359460760764483446173664191040111595685475790175578476594027618386314558964660890168142081224726511342392558573654392782609735653692242012944026618218869541722470069593504549097094205186690067616894653370813682231667783680737787327567666807531583591119641853753173441807006055068019964919731909982861822483948859034917234508052879998170413703140012384403349691052261155534274320810135874382916809310606105958816179772907479565647173636615435704699231313195632641909713430059340473311519042481889578417709481443331292428232587255578397326851252662636595018850743168243773216309791595371237421125195146378313039912211639846478976699300453660355438141528650759306648580486412327740839414024153028284263149821965539558680277687824662529678958875202465843930995817818289365102223399205582701359336802061113917225681209094083943901829171886425220853728890253458798437064337439871499862394085523984175543072295821225098306026344490547744321484674712675134893958845445506364628929565456346725459577499346296416622460108476755758049648606386668947345574606933683156032858461119802722558189095109925303556204257474067622438127204401294134723034984700076147010007299227136436100782181493746074011626932541902971780159844871448319519304166471924401528090463102537531067589659389122078201806553835903107041873856399826737439932893359790576163032435614774039992603489613797895632975351624965642764637394454062192376080785913663288382002929382210082217956160777236708721156287796601675156293171475955928539155397685791609441389851241768339551572022492516812751988474093987044138616795488612242446032873545326245504454679775762180061693052218876481013796400017590831245297304455706638894649090676530713584803080634724822395987268745922914274049603722817245403064799429003219938885094837636220823075112028994237605985157458311842831765123476876119827576932416080385291733639593022192451721568744554497449103619263951696374716401734611855126612169579151392312015316380309277489557653174966440476789275216048173396331008523902516396633766260793429119204112250653726177875596479001374597798623233539688779457687177997960218095529158123318853839983136140646533460953568948824481483376987078537718244786661980500908509379050218635328207487658087666340703800267700139587635566175858874609561515078786443748942595556453487490499752883185890580315526596153987559851994507421366971823198222799070383716564490752653776784161302044697675318102572904963598102429634334075869305353250388282970080644826307786015067042640210117928398023727916915385859933399460902056909429133097898158039967316913747119170854441502062116128457928597247153512735490838801808601937176318737472098278868355961126232175875140736037115876133894374239074706063102060739554599253230822404385064509373664216874047119072234962812589145762693141785830853457868093582575967751581102014255671019165013428660688914617898659133819168962548761005271755379246977949598300151588209560643594479568726524714783000210508007659190506913687106602757393681962387463696036535618044879233671196361096443590367780386975698700066128600908972763784170681011023878327509556049863437825040729398711012419062681184758871778219575668716391096285613114851310262988018445483983563346369858961601638832451643833773992517561538214192538309284727574179353157974060772489854342438438245355877388064368436434962046220856817708429698234402047119136181368221567731203353161945410545298915549684475400595892053057027081236264377096347119504281136338780474294140106627187176646143400995420670355613336273253448831942522352664609751787167622528333281713424199112922596165413918546758746978960629104560960760869857851640050788361893312892630359673135798811322815470134970321372910569118863527433798746400098719084919810817758424896377131490061087102550736364479908230863220851692910781105822458070098009379303459424803490695549739993764147143292485181574852938571142292149809031778628090584719380515643896723150913789153034847192599958028005079997989768263164180670999083299620957579935579167406966445115054925999483414989795135437644361507387849597023731199324052676472451739825933648791552161619866553880411650567163737374087247037543793903661769519295729546061317761846064750293180187565555503390488255014671129752492960425004469365785497078804890437734786099942612121224691200346572833706086840769917324610697894910664654319506888958520697191426844146713025679690991790816184334395382157635932317359006047601837402827138791231193066521735638255297444185546158376187321568157553594310256684655923832024758835925595156630144833873346802877254115172365180643918454260329006228278003793850868686188460059083710586916494443454565066868331714465469448942349195852048187817858186418665262824511578600700034677796781152810887347307034073809162120623103790706858265263880509896005945715119097798781546198568394022454274371976904824828976886804026243257850407846044648404184535100517018786923619844449612215206290669204913751608729773225419991042818097226240319857219147396750139380296713390537414189131182614878343796938783470719135669128056336016756530683171634021194618120218899847823495815416668240757731976573190032956874158014912822329360992880785532892420528760506201182625119706636279508065975742132626987934092692642888469556595750596232513098453603153230644579255566605573954973491897520788476440195221509337741826110587802776630657532333924041579390120005333074668977049071895535818451067339986761468642176047313407455962664376967689219267908867637870975745856207795103855683781073730486014348324901482925766975098932782717975508731359853653730686601696816513238983215728226617476770978226904675905049465913741386336738639549341760191080938433352488467709654868104070986405750083477919032671162991441576455886397827600040384828742842443861493546515886715731271921762048173857757832194101564681233308274288950519349957729656901780312582712859870819818020018642640529408637594041388185472087488790743835758010221570537512107870535602931211703151602430963131902654075354782687825123052097392092658746103909275330038685505582093918994669470872712894659537011377287835155430845076604187125435510067862704137482915833957450060195340036021564362438881831892340026390924485926815055033472619423899874976692696000120965537578239062105700591978420770505731047856838006931547908520175594417315597347091836581043427091634094224060682571255585501172963104200985667015073854138762860834844109039799490063107686525962628774696949770716328882687828765005727600603993952748683700681151684195423794811440630481162674691432741302191820276372248888866810750918277659893393885687663824914183117800195444084219627070250670833852356365142016292855555970048672825902320987666513355438224769937810979737672240453920162650062559719056002199117493702662636717577719226650714596507252286346418434323171075510855804666217200930802825159436275318302935346278844133152752351594876559887995046170338856095054884305286737286173769996197529663476443792334066140274083722996951510312621131088948995460588905459764060744920276424449342417666313459705955848355249221445267177909721367610794378016308180679199951121423842304886578459372274506778692420555460958393855128817276236761159778217722196789875001301358757350873928790139894027498981343072068437980754584511692459969952372233191619371045058243833104059024950010904180340197077884592138733469393704088242267353424084030024067032946226993995473026833974047436154180927495284009114363678909453527042118687516903973635367951735480552415434804208440853721478355844254783013658611062402218146142924178574076799508197070611795756127606788754413161027026343821720009740730158344216978998138293949416967316934122811432163603049679274613247557915557969402137401412101494166963982452659604063492820645350464763675265001412607488918771742814744030991232704805398789204395876358143955816503170625854907078558585247659698094437772943085908679342481083500866990359292098395114572163532597777036011129571411236488016786586259699346054394980334033708571506370972146606360353792241828319825770046092359480007603647620982048017015967988161174930685991710171368583257142063944662881146946123488022028274665524407979362085232558179666018227016554929919141776451647431129448442602487781478409672150910808239857149545255879757274662510277729255190487290751796470524928818033615454052644380943245238825091022409370569515607954465230238674297272721111523377627644440776562544438331250172414578536718858657399631224181327651514676701406850787332925883997907216233695381942832166042030104179994619404025963881925685065359815852518209832502937546885565055533977562652445147847298695570796867605584726387835882446894472600635742779711502318405949059747631007798430459506571752665210241246578268880009943747311412875854650420236279463485829338049547758470233337787503043049092959451644581399712860323341348581526161789503031017648512903182781551072044616008934673100966253658237673368000816336515813168780819116985299641307152298089926851411881878401835775431710370497487607761587561419320077687451406856009348023898390894845660946915572963531308441873754716066400696433210327170835276144803053913497222203519476885434709404097050376633765763549501615092242429857701617895118827724370753979020310031399436317825013009178738423672220723593036078578096900768339959803816693350007481986001412908850692889696635149670912210555284013929884518337747244442804550130685078335842132240909023183112937309893263224509968084903600924287929173084369688408666907818840812509051401974124025843605812537519492798710532516981340641771380661380117193494478611233079937205839995199869238264477952843846598190424271918660981408426499157746058205263484658647446181594245306607911404908596600872160507442825865427311540597867705964990595159312949083760920247678150808879147302364187228922196644043390395395999381489642669022394088598287035971042776153065200186457889045850067849172792388542153028924745696893457404202830329265521776037609522652754348686338717261615421275480184163072227968865970299063635792994778873978197634395837425395020588545304498756288732523815433715433283372579001894720828519820697346145488541118622190112069898499585929071219059387499150066228027081394790538092328039957683585680348289853702628882548998543588469514688053188175440985077562809243821181791362720550609427419404356531708785619547111006489092905050442576861317703067553925332322054338859533362080300806211134084566507369509673647710526308149037568836023555707825510124247058618487671937304302464034509994963373705507621763253948180925704599463379323379637367036393030264619036219486165542950215451427369006302908360164689918584264311936458743638163947906271225307500609318770694729948526502778488467870332300739109482109419448219563706466818339754840137177488484584509024651959458307752108442458327710439385345290027326669556817399204147698680146028165307210992285249035578237503360757698120301173632024289765228329259111555675497741153798752139325047753087007747424387247210216427850628387163803261943237613560986936969237450051080535913307759833147723018751752934075582215826597470889069839584815965211756789245816503566688335450379788406236977268040720112155415819678417500591907469346485459657820948043704575829006909626242630413028207404839224464228505254583156348487040732015949938241050244004109677570683989228912567495690033024761099880584753666056745904171737415972506569201195823321489155840908233061654823793435902032728934659612878684552969174113406322661407381216586023372345917390591570158073007174200231143248974502010431861172865466955768348903433131847862732929803160322407309556113290476746009671778198731316600479919561011843289348693551484344966509587370851794700194457039656716073371752480592606726448161001872755180711312575273270478548035377198071239226320322969200091235473531544733933837805299484477600858247588640654354884252744910374108677024902432377615594800097569216580901686365383509260928868235259127505342745624494215729250729539149467890887964172376971836175561556454145381931878387995929677541104602034801724033140587641225808722220436063140490615798832761911472898002566335265033391746122368431299301829037454796161352320408146176362410862469054994992389033616031457712780475870724998140946663406198123086396602450554056833110527919491172277212606136441696919556437921236411830788679866587562507445265868556818414699018451613848894967740330295507740705262079572520205221242507031661529560743563531432750029418678546782720093516743220489401651368783038220535168959537497586933080707271892356443567583317004611078381819522558143702121067524633687832076745111963374795519128939138625977645164918624733716977720941085152139953362567560560367886882586549586122093268291393150617024195410858774463906079666948859700420345740546119420970785407422782843557953905665929420080807821081815349747884417949658386185049950095229679950404191888109867644522504129401746103335549859076924175925701506687062770409014751834151854582782442168383831825250869734398854883503199405955070543475996412272843544640125849467943458695569459470986821921765116348782457813722422400920193442703479821250481492858526922346714373200796670761522973844520662160578325726478661429241744561667057331450700503406501738304247105358027932984401820354994633424085445732702649924708635480216702435233490530527193036061995995957784662929164172760713595038243914527851218457131160073407299161287438673026144795490979101613892245091907480499692768591200228344312533648540100634349730472257208362753759543811112370571968613385115333839868255350699757820042714949293594817995662225406269004232947138869471243516182102123324131217532476995517228110351789791401377535387292713686175638390497070454003122118804608965266478825491654799223921628059081531543471130375001983061550611803922185611126408935156347285889070922882940196520281644693895603964130191018086371003374882414864680329428768719914277407068747777157804817648352910051573181056789241314418943892322687067606514776206930431147723058559583390601139896053413463829302573583242655855024448765262122602293980652561777901591531988052226928460264145791787916624734165778160289300448083847866199842536443499638123930151058681418647655729483527373673902458204399340741195374948177657079856724785778030676491736413423225109550094270327905308881768269175643058816279374639217917404440541362086187026808459454984870833721486237812145854930725797415499846205641780679204490787309913811770558801191396878298865936070270236954081970715039151449855412913987699566817856565335626977520758158191595759463037734768265890731337016161319078671097572573610531809634288694633880283771724817353054825233413973596340967462860224748843917719298449138075035988139521257226497019484769602327352468643931018633388151139342473834263485260358067270229626643506717060268043913215713929538204531099775720008810593436156041159524499264786569670282163228712556353422731991505046988511010564664413505873739096724565103184628584039448190119015480344412859102377874992174496980146258689520281324463495933854976722739299982978307597248212444305188038319132026344092623052099897559506809713871249065773086292197662552673211828257593398801017786605901178059770305269188624332347623464396384247899577928476429758050456649169049941913360575923596780379562440215863052249329836527166388097728660373861595082224198976332317637073146651963133506707996302772579877225391242138624578678749165475265816816150912921022318571775316476072022797630181544973841836160073551975965387085959753959032462906029093775411765510633468307573650651907805251169538273558309680357074839108954781343790592414397652176811155110039779587967196131994727764152130035624824392389278376596871845484602321864715044699950175357675231490660530668211077635784053519178967331779856314521308363302462061622556960418507079325604596531841521746854264077397477182040995200761452300322608981764834536773402188673980083718706377930026750587239981215643837859949480948223056484522156705245076336895650722404138463323018577686142041155619239469224850692566990364501150976786733947889326066598156554942258859364756337478020955381173179891688047353782263734688123659272041575810441365379873138441407549360573104507650554522816516598256441712111224778008406730482881668438756166508582633017204979177622941783582755202059209293751671094623562713124622038998962293278310877337205720515030686018712557154972791878611906704335690507451546236165999956276482631187669913193111293782208957566405537537149184335356560477969600753756150101143035465447621143135472539915308504918508835421799210989234671010775545906915682169219957911639896513551485324883339750294971424983298164229797425330986727823398505707075827798267755173856314342678324026716110518894818385047943730726884880261937813074062084497845286413558584082267985348536473146792778038448316271459496664877246278180326073812808648539252857245891559681179999202140140480653427963774451872056433693326331881803736547114562832564506516563100461903293468317705924516764241863691818400281288993225340458910690662560104527369865446472825454019351023332568443703317978556019379061451847088137302813877812153798025893451173912549256534319043307742551012967282350719347483724308032686663585540288837953541235926333347689626597481793565542059996218490310675674030841672663346247274059428112120677721976931630137875245937660734420417290833412190879872725663063428685805693590479279037640279662744267124828205658102416086813554942164066235116384604662209817300921350136225525158791823056210454186099672748476544560650255231774425801378610829881327969050005485893019026542926548553081350353684252764795195785697494947051009716090926608826437850705507313822222718620248813610800118220737419012147559120242655806580002264930689613957503485662245634553540852548124844702562623481790973514405281754492866835636577691851264734417236824763707038973912248419977126973342926611953710958844999163789833125177598687427290815009336166962415535076182939291733807204452224186494228461678177740461420806885972392634722183337682246283460402863443711232179802177041635820116796152178043674091189106279815403845274097594887260578789611507463025524041481366501378333002794240997252400800930253101802786319010558281661574111217183569931867144844795362251270480523412545903999173012339992922673964989552477216384622061738764413198415995328904404051640199837897863239576994563925957084247974033603068885851815661860794075621433200237224395458602102017888616254134283707361080949333052428422599803815192146999840303475758902214811243337777346175849275430836810483497258364097674442177310285324768390956294505320519418613698903521250163650338926428524269311620299291036028649413150608565838475958177978323752328740645555437478686836396165007932215806679273427402474151560055838154135823221546918444973794056450094791488110055750203055041227244807115122295595065250607827588723026802120514180066707431816555973584204361342258549280094030044094165758039819432888816175076166426358829249006756700434667401800518518358812743786696894369865436688434023588449431389118804825962313459158675486000462043323424748744474494014782690390212683876264963867904747127753955354699237739886717194842463586357520094053423813399906119716062204512903354796630031594542513698088110891094011134673824380989409521536606963578610363163213376201738170848003732465032370050846585055600596693099998948523391761745647281006237468291100214707062532445470337824161912633941960116004301925107260922644674790944380090199167173534847928606849064567260047537750890125512469845857307330184572330012895825987073197921021608746910544843041713601115111356318281414666890683128044553091546900067290421002070701583102551196522932573014100820358927914728555324554139346588294176813079657358795231736914802862768366575655904904946300005934482401541523492711964736938168356597255814188952732788953923432116864299795921695965130742817647347362354772151188547186699785357707114319051886079268480999877763950885740089906857064964146228587523587279974493875664545671600269053947086316155139242885757812936799398351748355261033905945431253903512895742153867774449638464006704084152908863454475098120715064572581171035423051653538450504518386014877224762849968286225294028277091245950090612893836777325233756739325945279011350287108510477753410110262257823672614852110617597905614556682587287102141497323622088370910976190883294295675001222765911195147847572131948729162425078423506332851676045179588018786648916185269345068459432095411174723326037841819358203924185037051649878132410393074884039242227022483384371853634360533337730229456750412093677067977898934544273498213214499883836566737095121881322913047643889806705017384308113577608625390525557603506207041315889077820011366844999223480070483070333956556971704669442487886324684091276018170206137952151258456641179593343544063103351859134495723259367564547684030071400138562081660791630040076256156687327818177651784329374433645317000760410954918456787005943845553488168176844331172230538090916375706962894197967514327228764263318915508604238217543028807883655870850654509686925191057357914563685038546460265341575077791018985552612916200253181951955849415325131849783949859989935390082675806066356331381324010734516965264832534436493810037208041661769168716164442757461147372149218554603431318184517241168483211866319624233286552158885443373892366247795295195447972293558192195331227651139457648639605222764304035727787288596717363399200622646692735769214239533729173843739241613504972253581065941791921917893335540837048849955909871226940571826957658602361729883504210482776895475868777353615346904919758986076064702565475048605352100549139104889825661809073779837337249511518627073736136689983232857487408209001521945533334111084427388832474524568180541180992795812416190053788809226041184924763559953638524020070910844905404246622870489353326682699462912149648780108791483407296653013223653303011900623594623082303632781949766423405898317402254309657311701805471115702135628252893301120590307818548335135357903182409031875051960535600947318850066069174378606704656147034034795182738005282758965504200276402167341920519576567123117366419753170002776711012495366732167143189746155484193230168383961159857734756261336509556783655357391120778557456830420097966862002589428682250045915418242358931541436850217093941803132907088995685318068774530212723575643929353536045784458023981010535281311548371894601915368974886549785287161521853637100964893902232064437962855745655496208729841832171344203830752840642005094377746129125250896064309259812860246489884224923348607475996437257410065832349231576843180785246022543334950547482773472633558673970258767509349767215616266314404375954073356487037713464962833419307129474269294538385465970021636295074800165138939798027269455868539114956147862078812593769859980757337173500029854815280256020331879335354130587389744122891152117726424420019422383166059453832227603036249616046662599576196473409198892058089590274584619985219209326110678430105305453201191464754276208440176443855365479813725251165864461897763451968408223738988904430611966567039435747680764685975305895222540830331553247102949087686461550482503110152283610074358169144014642496472806882049524014945618142084856317625512103875314200949124693044273430394880730722910939709119400750934960189628850476142457455050981380656524653014399102308153136654846947334726387651600611386544467157075075019877624437545401326899411111900335571338786948713226543658912798973034600831795409659949595237765288686972547460484795404832683268076290899130225082806773258271979576991006257854368244789166006345239536579747671215601618331871350133870039947182164893927289367569588375075496942039022503799157375790697572327107289991440316405179842606853794299292568060776899641014279129647997500238172046624871017583368889294622791734279284187442938250670866290137177495575490804459104798534069551812210551511815993097027729825986454276221255515875621181555369892547740789170321515895651306236623879336851924914068232622300207569101278368008574012100992189783357245578078619709747175612208785809423847824272548766886524351335859742855265691486191960382372887371178004311300605863539885834075967983776985321827193778942494423007922656559131681716936778030978977849309735389044362225566665111193503928973874855793904695374291040765977395542685426324111711605570765040583149272709340178078673269748722468490630622575348908197632131017104327106996441890129583382390450067131999029453105792046862460004219053395424026828406913204143206286576406980330059554759026005330982642700680232788752557743634631512469224722383415960101530083400221445366197343588801958421964441595460320139834418802053994141684273160118718063524913447434122596520304531988917162324751254021995648261436349731268393445204985675141923020511435397849916647543092160048159052079386679535788578519665555517825783626344977536107878544906245716101799710495510795259618522918146189614223590121972625963475983385123638480644315752213379854915026210912917384405208115476840340530169253859283586368652119037511365797795636221826675121314173559182238880730103921167369888817216111364104900615805272514965548320976615256455568927168183421428909638367291775811520830527097472090443212607220008539805320479769925646083385926230608457699732983872482143045848883121649071798597340741313508727922912531669579665337585274527363355953399694801950287814100335429116047957239858793903398833370668784330427841378700950342948267423984903016394592319348472907914407908204841026050809969170069056490311531518372319464566283163930945396706226977746993894269275239768212433725645262552038911960396654403023444433845803767904537999281668999130903029824057317612560282756325391675188598180745834483242464269847397553329648179810230459689359136891531948348697651597970783225844399834051323916793251780996083955384983850599346207555909166382314160918530008909070294833398527449914497460276381194162569034694702300763013084439615650041674923334970924824919653130485398722230286635246487397332425030523706532380767257599918695219809284930097130748594420554008854482665741166285338551522726759256027019560985161450067183200035819619106234962836431271502540610155653846637472147371674226829240883657232246836703965447005936702081785727395304415327584744890952239885149658410801670378571435832952294608173252838249079623844911397665196507550220564054079450698687486793140544630090924368338293153693890752147810811047528964160791513317086429597200956544319434729966713151722532397439543036198335125875130912141038455761687362730143313895753237179171430267042602004454665337561719295723990616348042202021852723870439562918415675823993049750394724013691151748064294164890188119691486469109625101422630207598832589733139982435367486199359218040712775496249989422066126308296128606468573382391797249324813417916087682719409556399951479082831894852293715425560900178436910995450146540633686862395199705651684519232418860612853266893475215403260546255132622039596923221658547838793082451521968188150647315933007842335830960273414246859474108886913720908551809824834004205124880182611184552624855956592743221345717106772577063555970232404109134206517642257569146270612969193035145694397264387816193888118471160646698279965608698016294758386510702793154476014780424515891232530788729150464158732752102309198624815352859901491618063758887343736958412778073810495099193513756800586418461995183540629845830612965298496595279535548172769972593194969939606982950662736968776418806599459053031658029290413580411290367693576636246789997061337971324575785933596340413790939088817833668096950245588950103813957146585535934065345027898055282436205522764754030857890197765491470163799395675767956387529451916370187601642377655690078646696420274976462382190175471355324398200457049768959606215155772850415695725783797117884506430932521515706198481135338215220511533172327619119864389565202306340473488322284022086861952367603743606583435121501183854439871156375895367101441146087139878557238473936571002693228397267532234830895519598776689569041025968733657189144277973855372538083890272761573858503150286960670037859372330614221294791494890892840963427235229953511090578721389235098393809840860992850587671631532945702266328475086329909791947312472050201321627839671540997613496410139428317743808455968160445115689151391623623283693774092663020436704716230180435575746645710310627710072570048387215900021555569656513254055821122338077739492846956685953251742594683179175263690889296635584763058507486199388267820738977395926764229238756294268773227056667259152711331739047887505814730772018441788962317925727298284850681800601216342470633456055150042827313348685819013116923407054606160537280749011472223890262383687990916766879293170332362577327235492145609393055205665929078629018589792521266955596907345864251743246030412153837630803986145777713575388051180211843397938033830389748231273326058428742401838938620048204258177212853270939376636482260096367780718049290195672447920519120015776728837797629832883759037776561215879369810896442649664274295644944442443731866807308616916657240836856962812423029504513547697192598873325063560426893428410559268621928651791341585354797514011391045493069179491226113669719628815807047543003397616135552220589451734694895352317329149410890596003362947544284588135947913424171927409837270181558511565105721930943491775668101098833407349905463522200516255476178525844855993891662055627675824841559303266381122694528787399784482670584277230708708340974011995013806787237681427583612422105782555407903763431371200369036781213404573162773865073484842806034924714672832938452853626348298244809133541860959034380928241896263296892555672935914088284584679586592110457313376356604429499026809904340953849330569185112334506592019219681856546836024301639317162370109161050112754838105304008220579317706606402244510606792587675107820982282646297746782517173238049553991075494394159763121420438228486452881918845717445360248684289568883377745001132392719085005306543274091712808698138003017302326655332203720706950793650525892635031857270258172331045619102565628049186809771000689417112768893997405898409257021168713581494562626378982498520966132797839119653183204844153530160833706499593118334407267190351234429847510926492107449074683049714856675047257503785978218268078871273142538562290857127630646564453073329430393587336376965405422516929720812971834418488019894587221283529650429602746687156463137236474251264923677963143199414582798399944337835069650150775535470945208149343671770322411322646140201842988939533114991233419366237902032264786264075606221681728991299739829707388757425571999708393230857578703146493473360337512338581610197834621629808652962371267698748949089817323420033613792948664725184788570463886446306570742839380419264547917796097492918633103878622681766379079124425089890702544149273724698636278484088104622322089526731755991647256837894430254746161494758692136776351640173971376154488671382326570075264279161185911789151559813702058444757106046629788610866453237084032085297054404093117070647805390704003343099656114862390695098644330083030939809236666251036126337761777055364458612519113696808793559464313618913209746066455735462449515446119962735763614166308375149896504686059621079147415137776243373693846761068288256171849406237742088445351103934518644056338114598054438909888273023605758258752681095455402274027178673407395153211072654532528669571530937657054888448954001250707535516920226803789133822755918604962501596874504692238816422675823819915071670793320255745332970910011264634521598091842744308623627679501356918823858432132849465925040904960320353789712266639544339028789982325596048469328964228626855445861738205790017115281629246477943961130775583158551227259429841142572163930718574193489930253505066556413153229943820570452359977008098296596175663991282644681892213611678647267473012115197384803466721855140022267335145424473128264714036412794298546255075126437071083444036688749012916958698367867332375060215719123327572831597737259945091949909135398911998184613022015224546039901347280903159302906707924254539347025951103089393488891486125734296892935276491187909613349014958434501736907747427978551402272059273944648328304330128953875058093972625045729216696590827365967926365012371509321103430503848432111174134033068512875396602879967187516758974796860711432371594917638202750535348794780980959546522978672013482092614543092794089506592892242391357077704233460094044698994560553279524699012333116554847918485071895788214243090441414770763617506351798278647648484406399091210227974993642414901672782013481156179292256805380834244824859340111007691741754376023954405627807731050236211174721691238754716181309978351370146379230650493040252811670128722708933804164559400119459385941454287467113935173894884384555944324570296086253246326984128794531081703572472535350497346496620250545058712640892079115635153369163289092452444699945929042392174234163983234985571732503546858998973536835467358624135166845290923604771031650292459411794909090298864697256198093733767279264850886848174451321317137862712280621934805996768454165698714891937987386786660780818167224714910985604805437131277743336815438433829771200900131264772558401287663355806774834576881087293503592196821200697633197953624350890118876979420249217327196140533803800408485827191044787535727040374520707509427650995607123709647237506296631340293002771551148117549344504882069877864410277695398208047774499522448343532176979526306497338577833367403412731881694705028571694973741076777750943977785905640125318736005819254491361443977984424662706429574929583372098920307756567852686053747898788238025483845690592056086488924454599940981328910988092358560215662241737794104895150923370015544614921221794929570679543988086231439984496286484168005882024475425533085961663869575424692466566844693534103251314498322196151040303797212276857769806546610658540378119784727810256676207161153674946376270450704051170699432035188941553268743803931827128275233536791242771246633203553596237242548764934077788520190964574152826103006783494606365420641364524814710391583961699369245512145527364176150829026812373162899875629053719599243791934769021418321954677603624575721022835849529844802424463844007167531600235205733312516980394047232239882307245725957861925465275177259207327218175591468855593656008331487733160714443043487581311895517341242241699521676093408944815315560532313655440717666329969025166917501092182743488367081246999323077902860532367882873503778941048354385438790205063211187492306206952073886808429471993943027224630766834685248346175447453392048488048182088860688396893551239566415935439241472560314066919572864252470414380821569848407460626212217817404897551493484938802426787059800809154632604670013469684103282318244916093038570944603153216734385665509199739327525655733166129670834947516937817496353185505501816147789774866797411253849689748359805159089086613892500508467261487388991957389062631704737047620986260489992036390220863441401183377323139800805102411062019782384222165341329474449535804638513095327074892195070813413119390555636276640603152782117199124922865119192560943566827285916393609696070196896346869617052799713508851621846099579373477874960364790413137895497374711995181074398461289950012065034806733057989523952737166311117364004837019252279194315299919668655256901972856866611271507241818083481877855639334906888889574541667424503230975959084775484391811908094939020036268100420530389123443695395040579234840066312829522866386090586973484459091792411662773015941048982114705670106502357467342678014826888381191980963860038699833588959602492670762088514237184037477738655950633174884714525777207347644586473789719581682726409525513315965924684544580109793012641439567603276293631260169837604570602782813975266079762337530364034623990601791958563267195803242426100516947335402942505198148910059350218460308121227887420295182756182877803663896264200419598212740428041627972282328653161271676447370880637715951815084695615225870358419694550119502349966740277081002712405747294868122028012608342947750376558055780783755570161114947361675920613422375743369719957579881042928385337874190571328610835770264375682930574816263388996902335113787192926163795011723266044438331782254623337120239123205548899388124753370133286211467229420772932932383057644557753063697009823462923199700510886475570701717559099269744935827774492398506282250916369566201208144557421616544778407764750721586113952278617407484668550004849118309533223618351458553874464430557646128522869002062552085551688521541322628183364390113683490735034625632183431514215010905467403197735643063432182451972689409794962578715123652422897074434571753394507578610472638967305196776626590635492892936594384782188816813686301624669234017216666161873206901615038119659936471789413822562544573605048578695045325696490873781976167103892801141165526827360840275874739187497590600345536896716910702317468235017308963529868694631982695336561293682155804352041126353470539753367618844275219702772767315447500872619224231592395586383403238108230443514920664294198296144662410899385874244307744320822395838049285202650821559875287237165705109792109886791457182133833358467905293244691996440453801186141840766442388113392961192395327419632860826723848783029079176365435750372340196521329889487303736423975733875466826035323103581367336132388875175317065099861107266196884578092633431219657423511595281108290279245359030901624418496640074825341328833457720245778758067851921009407517281404424212234194190151411592297992008322176454559608096968295276834576638673576074127040578260795470586974206370758703972072310349744168390311346751446996916100660595345611790619320314746474089788687830293429250602146598256885496353760735710517363203717666457641433859102653449443760161372057417798088569645540403887722279943421803652018889374407331447657345093245390183440014448038952592539261861848146415777419500595784856693259611388047654166743690160855183742906898120876112294127589359321163389944462936719488343015536402583785147451429459480667215128057523557626991862118469672700012772113210549957809065557631005612140156600544709352873404272328936143505457428269660940723447682592883463800075051120224593388523004662675364696089012957158492779311312487581734517688318390935925100467261251705960095833976192877792128440556899578434182985079151047813896756549420213388591285754474186384109450839463597023193564253642746236190337407611529868258997799505761495107162647075411507360502106878751011092431522976117758178595766022502640553784164026135715800010382374031908249066255053052120573478446004191090813315838216511446596116671619632581470611827621878794543925703105144512979129829310211847196775126281937213266252824129968000123068424415279317143585988917414396972472850633039685746478663672599181391257460168223548413107907206318143882060773085432158737246867041537230435234218487133342626462328583884291491094537281092980255074772413136090238122648641055151370916214389093984492317289323819736543443977267689921851455097382933226788295648069850436247031919648375583391445368638534255301764065386282067677216853855626508361559027372575141771025599118219878448016799074568307909685103805798508225199401061616417541753899891346920918467919092805981764623481244555068048994494013451518694467219491239836457530215795900780687668903436681762794187485728002183449856987313354425429337764209060006533660051721996003389475791993048453163581410486418922693432590366697264641042723010388299976563466737980545574722383932139888962322331981558911245253794109997519231753509841857096978802641533521167058250588717124119651608160190733792560827667462688706132318255493751054416262247696350674727430017794212239842121077035027839620303643037211327894359114102488009199659250076096553369973534571242048114858167025416392708044323021101236861603496728500289238614799821486068102094669801673722958708395618607030283150068994976768304066870457506529385656482656212941223186103720168377360711947139463651387069051759198387686093484022711421334770037878292532009358812638021208771369660656552452334663922059329937710039956545367653064907245653932371282359006511616682776226882616479021570780941998189919104127232336461047423457207114954592141472217512181893670412604881151427223632743064362934260682892892025172030673312301763210872303777653264405063535023736660980959764592578748584950422360789089405744233154896178442959338813884863369860072427755285526594257624099330926162926532948462085954232581493136140513163790317995967516849645300820358954133568440232237727318761460033038797395153412581944333472010596297504639395941346322836769367960351408405697272070841122129845233902929785770838823599651881495977370443152926242160581396011417060546845775211016503389846104702327495400963827751825908106434024017464158017183306399122130928152037805890687011975029124205350192381982837572251998663827355488552854109295784342673484535638739519093100369433190056075933754263259933473763160994126411558669411119675987309906097202475597181930824334821987066731754502221634661522538673944678968859030902208271421148974523577471554529052349319028217886821924076175949976113124665970802237183620435432155791496412778663097880080383713889420913071916844439425293920711528535805430507608192444525776989381547733718653369189114005595052646116412752356832032602823829921383290327578780781115421082634433634294125469548883143699426183053149774116016808194421222201569961920834228647117730046864405140271755272464044656826767172934942232529069344473725883037355445654695762960675839759540982478676199448093341705784412491206422089383074740888599066742133043516807809964002771490889919268300279056521926531108311610669516371201362879465032015148027796850733735316273746877416934300843891065210994908190055466954400019909891895566797976029040446971668681256692920314800032973286579865358897624339605271951756786198230284344481511508597798100142813824222983296225520695244894175181447202466514706180197051655317344312456432420699986546429182359014080463694906766345268994532061866348755751151701497097656457128373681319529962250618199025949877631501379418461240135133009336238705396565353547989319812332141198216154979126196918788339156695106463815036564793791588863826464850231011844607387919964297168300232463570056223549903015178474857082457823343214999333357817352208875385576538880603494464602241319835342027242581097803727060169312664461222838298015854231686038340941472119194406640062026152996369810237356986542197981945396271342915166836663147817691644097915773618993673208412770142484451872128822680206507178613729776704991770416167033422892576853613009987449351367594901136975616299294430578074653173967902191960347262019369085146073328995044679775591677254522468330941897158379068180397269597487210484415597135902460217951508393406240135945767256091747171201046773953007591365997353699414106191721312694777380910921688032888270104937486853028021036356315919799046138554042216275324845239787864405780711629449671270869105450591406893232985469169129047179601168754363582572114797005642898878177340034207384953146257178878808008583632356873760397294133659135718033063754016801537543941115194503947402506236547664166165790368978647928635529179605220310606581104504699241057390789343067298973853155130540005428085068358599859868080851539727051827976604337580469163849568955421283943253133807226181858461468531661541343922035810188585833228366886595403837004606729496319808537204110969417400448205977153800143497009247500592004794176499025727960578216964469080929870376818664744291459363296142542012224155852817684179062778170337587638949445212106482885151040365661844575369538871918399360011069870273861311253683441765043741793537000391704670886500085815684539478976789452552846226988721032166794314487759967857436463199999190500790446697128053222374847019583903509882204947946381914099996943270302060095807247867061966807069310406403064517646209959694394630524207377798634243775169109140156508843198098069811070085132045508624639595758174010209524188449579773699703215871943684427205112790398155143337097382291896071009449352920982618841975022581825688916440921618592707757839709370471363674606523340900774039703474069891008151975546583265491661954188567674950430388750313272564016818727219888012846384583528222499278378468365349425478901072470731929771045392223507191514192412113071686883643418857771788921614342550238662488985694309449423235526764451713315834099324937903085977772604437246409650918080417206795160818117888504373136571280998634919404727728482205420081721103839337727344462532541818078073262500690878765738987428166690941529132916232521935368158967544628371769508075685217290363014657263539185498991704094695809109652528527130351446727717106243821214532166169077366028105575660243606156520925317168247135368407812000434087564200591618322247443470482590089501325294606847059389939277437873191321970449306499936575978724811257394018583376532832933686986946546070782094903693484210466101985250843530125669197565084795704052754182942133743746065775956302386296498486406153703833435487327722120529060193218782593639217958255733267134082585800931770109650449239684052920423027665488618697795073262289552268655951375129646783645626816391969087174852505815647570783237181486274116737839997564909427782779772566188305162027068615315139269250382308356154222202896171379092062086924553789075278807169977961757803737322651451414838636241335697727601536928875370571822399975643646546783812751477266838165597166188800804687654911752006483911722620856272215758178138490662809351735821858409749880320047906395851326914418789889577542978022683967397478222015007179344751045519822975757063928717603142852774606687691975914749789043698635757292472620342251235668504271231781176586600401782998673636565244893229322148932456082741232368688453298164982260101898411553520778208814184900391453268301878691947585047781846625985223821944318716023218596802289637563772878658440397242897843386441446473875847346542583332583192350495254382291154064704751524436564388210421879426822266045292879272804754978948282300017476194445753505115080070595713597053512330440573370957764245881807767917469238205893082481564153492887314455755097075512197815017583264959023734409284787237365270006485070401596911573104639447010405782279903167983827653344077760676534950662693952663074311172179179930995718459379330452898967943601276754184357059261317989637443306550066982021415548050820393439222609359607956571774597616662246682420152116866039869791478489163219330691989868576077730187618489169650938366222966177176883246206390645288850616598937555451790616204570594035423146208287271682347416296188560942289376483296792035141946077772827568669689016616155219867565016480930135050976879956784912058428693410426814626611816919631219226077369553345573565655766268501860078432233375262925909571271621340879380857147287415764721439265636658007722249607078156066778020735271704501627977527120631025860212677315901872858144820761709073077231598327236469841136492532904858824178792236510987810421868621244963386083658418801418511458864840276333001158691522763666148790005343592770803926232154449929268775314541219574916278523457813798728476785847942973528711729246876364740149230208737304532485090662281670610908795030010172799808478614796874122168618367482336325027328427571788448852254231664481871331801979075897916757041258626398832507722743024695086541329559289338003386216248869141645115737088482183224642614484458114346474001706007898390099220642686999166089373705533476689878872793033311469047599857157295335764660354020155966068686696142706077267018947094691238713342116640586612934510939726747219391436586509924389214054130548467047583928391434163800593975309962783333383671351882740918605114337502908151526753065371718490406220637766033997145331734317574407579322228793023365858359638819825194432795712493373427528533356351169641819753827335872127899844759079113969296592251641294544492033508766919261779393470946457923156936314217147837430569770720466294319462205019313744830846711327066677292117460351632063190647519065349725671417435734602393793844798399891509240280304866381200529834099118490419223062825420690286641403677045032237713189037541175252353999424662556331865632484321202397840736264713242248143848565491910663604027839767113653439776732746599302243365185618636492213321425962112391776806141261754333622365752503824024879000117052229879107919840306428780099493999445529418475158731241907052580600706366939498860662827241013861553452586121160004969744825161299563106869776466849227514083613416297369538793204461763658307309679666660696411749769523977164869583544912411643529505473051537777711510645713890875105362878051506705403091093143474898331400463142399484976422138980145799109539947033946865328236795114701208725920710523209305660906959643332125611108098223841963417493904397402737678904814788650954902674834256270764310269279411668166046790271748616383539270369951694710674544654462321129457047288115771545372183861732367523147394510046820206080145927222558494879565146666763315399727994415862455845631063402383432599983102317826801184009956413322066637779790655379696048811069197188761379415438243152138058993130051021640722537035882472374879209964895970558224262644411761251054914821968486932474962129213635869915910567689880648720428754441504975845988421445473672515686291081286971272343997326027286818362345836312928390374481535597364068125581503436465983480276934710317567147598807668334967897622254125877013873714440042251840960069974158550498369921395943292661334379997675924386893583602637472115578976993300754804771186927542062759219530159070927590398163867944847649385227297601874257751251387188905948103209988213582081675040109660967090339821209080498964648164326493034514422010017108955181264725764433481445192293713203078652094188349260925202796265736570237997127165849839538628489098201465163403985147548851381738211138959124745526547057696578648337423176928223221421579798835985777978315670142921299228307350665606216126534242741659677137827774763149900984925540990449207247272297044893816012572643444497637217339332370461725265945434541708238178218289674552273204922448128731639039320368282616879793619399055196383454786019772225205705769420310749441856187756319427865888199384370675563091900851126720000896242352205748270115293984573203914908849545723020894162147357874365173872862260145583722410286380283237456761422245164708922162423766095322583370958783491749724886946731140123144185375326850498203246121838092867526628698354297659418998978730382390022536386825929863299882859925142482043226384377815186115322940337471706462792335528376760029997389797103457932448629176762381253096012222466246817983387862231130302681189526936031638542780114215358837467716027972778534789560594436428723433463969553736750457069308802899373253858384104381696338857308137052164753933142024388436947164204351284280841141793345205787790838271944360628804938317606132948840555798526362634129966498224352832604528051878435743530592066123336102495833056189769318425558146546904931530188176301643229054143678617928875981711231800743179389736619009828138798637391335757315928302247903057771398642089129483849844223452806734701365261328860412851886063688840207215880518981129898817213069655677353533786954949343648203756132655515600916800627838171068374686813065498114838012620563712759209172179082301046519736298551433777365243379484071409521004654674681990873244825413304536977356000354977219839567741952052621554493005593166664567005967937559131846140987904499726243439656054828962024029225355774368122483667312593193236275778551906282920918753252736567702979287145200029675196578797923424112618598105630788969214553371281783174443848293830887273598365167936072795679195987119245580601735687598971233550207958898143185511367841818951534630437408416019787053556842496865797111356268227130750444698350473744869529532336935723720805892807870023985082256945753668364400233117979184793492363492016364344555177801121394576854131076308257187602395495598925243889481270825536865133289420393426713312170322795495839384104579463785484317039702503723397977706759997281238864794461797147070314826307534201902008340069220455705796731451625234366539987664725446084289266422601855178615009901893247340550471063566845711857961119940326020188584087604626215477974546566456985822501762483270867521125412835070247951712100079339543880018875814357265668449995834694053211488128376231697927682543848858134933775135620069553107026042663231300293850015586417224971992563999857379949393749896881175335365788908591380706851507551981039767469343432686432885976813075617534096632555327672688711171253249320242812397574885409559625072050734659587651762057595146490218310733362832124340043990382453073206569652466009029396223681113659971755205145631769844840869365995673263033686623661661339723217665678371249856796869826782124966784774537506063565703903362128910633048652642120660391961896114203822197294437262661833494522952275767906171474703271290385690653255144748834814646107651596864310982890334437247971269372556881358404159708524538774829954070050164942792836606900443102443654440785454831436897908246406533932803153723475721921364949433012891263131470059494878961466489364719861505008374095818188342678800216103344711605752559057226228673721623944502048763698041778041634793376795508287565507168183813114801514697847520576989423364409119602917373897884678426370848164242193288350496329997441750376057604382689382106890727876673815120453581030038338053017859215962119472172743637900032628923228969473765945774107926344483426569670983368625339392791774681546193478221688355810510182259843305930937080808015925059580891572853436598198029588533964012827377896433318629139836920039598946999201291240238461537635727642116110388900170847726969458542637347941383509980670969872061712098484480129554134952281077122288647273686451285854219641544396926948486606511627408887272873093197912673508509981280670030864894510055060267898557824490210462105782618499527966043518603031959846250807462298478166741754211964299468898329107262374767941115936681673628843202946248796128334905286698135629524886115535190983867356218174593629532212087237820612504285618347321431541000299461390028219385494000576754220287503082213293485414947697665078604745000422317022474194121926748353323867228872474098293114769639122778228867157291194799423599519929883336193346490247112401466805418146872705036584080858641335886659268571048086310089429575904499572823292000553095208054635296959424085899478932381151217133425226111887592104701375408178792672627419292879097477028478699331632798760972857016947925089230607489801631780725083679793839153772794235145429560884105713169759815814977791018952473140482733254535451716278020423810423543122860011844613994698065675551160446695886571627711148193944023061129070099767756342459601454422620859497457293790944431001978593811136036257526714378215391224688862471672878461974132532297375429526278003883092924020057395391734097741858797178902133459381928009331851557597212652552368657166191093183579120994809425783652356211644246964906456761956585005876181848521834898937307052545770903887833583697949645343507101634225005823728231851551606880952145116372884434558219459138098533945022090221174120100517569511074517107691011360877793573312883552370575976174414207540931559479990663363489692265924353912311437329087758116826153762121708908678938402776858498104376463691527447667911958618672803144451761070261515400297044817719045026149952047223518387377768568903303896980334958214975906565958803624533749664567587324599020015792392376008755342890184574568133969123952771305301008327406330744607074222468593066176122994710416220623925843988214810819589584915906712213199407796846491147767501555852990230583141465754180963713832864644897804934398745682818119484884223290620974525049005489858062741206007697412650419441294520524585193005188395544186039870265515825173720545251369315713420761527064257328256498155424100601792057895995288134713599158434587973011609950760707449676873582071788143491452840632140068439940714534904992635257235136340007997864387400975104523322274629420661003137303561407221574130071980813383913390270765643436541674726725613156433732968419956918093973510847300878328403829300169978189268777811464292391309385088087920527585100198486341002265185741651614532837292846786433812608184544769024579145385943735850473788278532974178514205121908001749505559670918419392410657633722623032814283047865919908367534174084235704513330290989080580144067898440946122077161187913285782322344596517362641472497751927661704131544730011807385461980154220104687794923517466472489424049149229399551427600266844302549191497037750605756586311762922171565265738121061582736974401961774794981811131742009893497258282347891069825264044671862058337052290011846655996501012668748160724662448329022139377542351246121629881252543103169655601295149596439667893976779123190031618032872446613209109309282053197124747010302677910243719481688754843010033432739268669371940215549783022837541371268811412308609704110691590440820674365274319314187961783607404719278274447977498168133935278288164866854896118001772060401405148592660089245389120356358083822266265412676956491868696099676762341885645824504222558430166883984644875625256952833940437315429662307397634961679874167512414806988381932263103979018410885956161201340729165821236739013737636940835481933591142757562565613070625663557747379204367467723209843199559399646933395445592534946805042558733150832113793488547190015006950811785048677287293774692754784529896976215526274432593357413791090017337751514948714550944814961815635746640861458221400291771448133655233822659747050067238280219974521436066631704630167439304857739201622372514749730485076194405823137593187779333984641604250401625772666115299815221590008529624857379393345879291902291684232371346925110237093559540251742499703360689115504517720251202392848201691248769434256186936928190827345534922972233425868732285277577452519516546523735535143495888137269148423981141218816460319282429536125405439737518099320085104645151594634226701898880640482701927675778123459918096593905228404653675682314908567939862253708140535151157048809075483473261321669932136741036983427251774836142389904223992978523562039809889936041369624254892804210348081480041171696741231372428808575570916092892600306452790730798940387703218020014753918790086240254962319482886592328039079131537926130272057549961515023474075360247146608532146875799132438348573202779573083101183126607544719577497983846031238889979606978462303913980261848057992019731363920724594780809344865676425948654632273078078592062030447808154021294350661834167238164650153901539564193088099447809774943997436578756715776591859906045842682686685643581862100781831859422358698418929671107436566092613652691458698126158883134890943503242841752861812706006501424342004735299133821943774067072639177105715848288333479639605287413004909872854406504734511077282011342471138584349387427810977180915209028420439515770311283555499355548626125876237384125164412126984955713204387104037058775489030899283559112063306936036502203219578324357426271010581618899743111792252966080668329374978072192311374566164833924276049661138129043406625706829872056218081029585983390201040092435162234676257654152026618913477668005053374023266520480310418568568537824779472288832029136377899029557619220937176791763943852216094013698123196614557050880795504701401590377055667735680065202623848559863767593759718883290478347967698997726824647894571798249498339666907436527595418590852506952193381122609117555525552238761706741252697828836888775477480758659377062537311303120328300213363616403016297611815306301515317766604565590368986921058340919528552328613341353288822371746637188363229623098196436166170749678866620843125736817312732880164673097637212372435655297853621936831149674253053073468081762024942417155129928558195541482062749422856520760111901557787290731107492975898371061706707047389361070477418371562745205753621739415308773815944643697670736941143471883793870995970167289063907616271435406963551565690817605408991393415472749057505925568468345900366773403648611629730006110937776249061064980117125413804957349155046480841145624882258113790886130371155112654469810458798679901971740334317650079709383440098496390493115429479542530553350344642621803663288500225051341668950999127761245378082236282893227347540859903688004838361158728456133666161582537124681454338785872304739015790751496316409820485965591172852671970762624621376446433240472883885575345263456544979701182572735920284497529356325120851012606170044401202021538505385058451656289049477222018241706912241308085142914798792824848092781259573269280787817918399743629994614048673160548846679006886533014656799866170822005680001054492110389037783125367466316461292461917351096749315874280704960601520044711937235906826111504338756425903017746791392099746492297332140827103006875871591916837469292296167561739987993648351122116630931000673160942298908948494908181190793936790761333493178762787712512499731376245758856863493709560312683033376788526701414844452566253997606994190437864157297827527187504133143655599760833748204564219942304699763023477960157710199874736948267168611123270720527205588052629587614962908693925562926741504697322150448862443600027164026755362345261482941172868232010175236177246909115517032504019088822676098483727987608030710268344767979951284529589769429094413077818764964715941564476377152951266590529524538691767704555371612268970352900726028053534651236293633773383485868057812709988380782575212819600929426738132479973856017566583481454044863922457825000030083818350060292950294905790403808727107031706168349596985213259099086742403801713169356248125101317547923696347189574199012506538384215162977730030004477610953598850872297726840932621247524409380132377481875799551512225521904914937541181095432593041107554604777470819611036568087896669517478711013840367221993890862612330651925507802496272512042486236708633557796871339390621264986330734966665054166221855315135245153373076178091605391518804862842154499319780427845216033601207677967057151997934506946116453897859612213476353511741608150571797061046402640679551279343955919596920587856618740450847799710977988170051871222440185689917011899215774698631687270934490518683226414014593340957456114528067439877601968740527130609068585990629877981822180078144822405632246378246245635565885213227477256831071462372885220130212709706949195676978728540373917205326302360800731817937283572440663019980309875322985777009034271193048730856264369309172475011003088410190993201851623814275684095969552956260392601078118853019907025492079992557435060549931934639477558898674381031461034214575876790592032542732051332376209654797545294994066643227743087503972597910093090912540615384539654815418072755904072894706056732222135952899534891622521347960030034534119140944679971233502782843081068405926902767357644918540156981148035662100669677506210732155731484884494417252112279707697031053951148361167106448975130509461825984571916452553166260938159043836251560299877037518189898097863164137367662542750743345464868858871499335107231189648751096309489019561927188336723155832782393665058180108844239603296526767491838408750076202645965586672627577096522069047004522548059422820684165171121479754475221125811993020036776798213584282667678544997933211883226171428786765612766726688420908847436326062759476235952823939109363459285590255060608249993112849955555797086861947091549207193780441487469981182086222921058865819283756475136345050096710830277651908196510752299265108589455834314567692011825562495166823314218462507881553176313592176016174418433158292071806206590952869821069264689191706906770063788852550430484691438751399903565909029220118222685278589167184274218520396394192491987135470133256131793177834657790654518175500674568133906418269446229440315350266207465204717727123546118523109409685442723834161090324748691888206836943890491861685180632347368776876670262541322928557701698798584766551322013643610344998528291391406875306796483833695649323990637062442419927325662929345779693077604252866228745493362421879561585994111782531097850277653734397878179382540918082037245335652205158448247713879743681278254869828635681772598707094201035282630181531540368732804253295124093274453765415619838210697117084920792597120906370176708406814396165978617738901047483248816483130486211252732504677858350151739319472200199969312710186415609505879597543784479445809629207098185840575560778504340093088954026193385543563063943672752766670293037990050862709464411668094027860060939439605814304348747929025836308094997283219126134147526874742721721901047799351890538808638180950695142100461370667479991921394224134917377341785631504282583039639514865294343004796289884158584288719697703523594510583506376115141890123958977694155572020683490288132630242254983391431641564575174750924551363642845426527844131310455296025624985195460452703135145135397254214817131479089929523741709165162886324301719890037368026770798049445187555554874831297951491520236210783034321650914073255191550745637201495458714307440011636084114966390623458003888552089120876750651740577331191337211707022545638883117390965339576768595075348965955723594049252050410575707466265689259251240092625617495989974551514862524994754137817051816047469796533413912941712285602478468676939490216142568312125098254104681960641879262193803424312998553497692713941682102196385756794713612294986934711363342001045930698426881480922724891287238616976173629747741981358677805251801862809820574738865745845117559508770519752654859625080327012586547892872555565544669295961427417761701761974029645392850849603812666181250577984306632990660434604875828528216405169467915589848192849330630348785688644002544846642221725149921826035172718009704805123935237213569301259927386196339437695759585026905728297588392948209902620786754731230236274354259410692193885626482243787582701953221160243799366589434677474602644288554746477081555485310670245562819821504842895334930752991361725029554287164771418574114175134773153339812838755681279938678059650203716312078220160802772126619097868382633013213772147663292843591202802039459084357206745913934468248099549947429918069530365689472840141926161822832865771607453752741343300805179565811976961347907963741912005064960669646255790586840580001273204351786528625398149490103311512432831866179915689880476085091947915540908433561958533317639254856145095579771523669854549346028637611925438948010979541081896480755051325040134588543377007159015174941593249530455890424467262874500405532574271002946323433637843596538467308883431982536508031521336836878289797775568265647688550258641030216838755883573314878949239254523392778283307017798138961519630253108616027681207909394307403999154461610969254951113606328576110889594020099258676905126201600139218608651966307150585297966307779442159938081946211984790995930118516777490194643678774989201965623595672128469866758461559241231496997565574528520637442975370003313486752510617280963504466123391742168946079086203579176766543148446358618236744785180368569302120110969389845259455833246132663904421647745439987299053733243982887043198859791196734914855977397749051192169668853653957240639956065717053930529315674416407810617918900092661331408589108420660552324258432275172362529923222041276788443427266829076395998294888699940221449007242650091911326787686894108623773617972661265532110711922353468687022231488674371970556790989579333064972705486178944401907294743498334489558169072839707394789308652715110906797821614287458124182628589638399251280543705418255370477665599153670853799535501091073740271915070479808630372357783975947595505540752864131464281928490267176034272718155281584618881580626569369729479181876150694026029291854200584434041610489824899367697835756443231675482333968714274160137918223453012673059608064356245801452503427951808194962226461663002485177138074361714144505589990422903427434460688603168674718295899900511661710399671868091562235536114439177393918690695025523130439072435985176256763643221541288518558949098321058893499513701056276750038476685247350320335167231643830961095370156675281557738924927799201268174077537900871622579077482101905112626712676788123348668429360888255828273616161303389457496293645459133050227190317405515635940679409463333338626072100668414697134825797852043415777785940688156744570701805311911847360809738155775577500156956852318393942344758643028311729346713209176167375751465547475319708589449382677883080807007388175411782008460832659099194932518849541338981836103271350033268187310463864093389229337613805536461064958977997994389300957430722361100441358873149865997270786589707574252947914182751185956283451933312784379970960606702604897788106607695197409138602886007798899584692306229895923121855804073705253817314855465565402009657252359316263705814461274152243314024978773642556505231171157347762256450405383068381311706781844936096764197207591516858580960180320012379886039578415931656181828283629272298725292783928429300112016846742730282411646686936105204463988232076040850779631011764159895359955148160528867547950696827991723444822191536021146485692381487475355588218964601771921794375957122972364153695092813639474749703142187278374945409531585189651080836177484533516772555762327472906584820788157166730098152519580170359703394005108959202494464917997403896472675289294093108715677149778265638558023296252243131829213406498426647229579642159662290827200044437160675313446171528765239626535345793802977337356325075772018988971863341996143079643266312566026689073442882180028607372589775509647269090537812750776504814047312900613759995926731626329335562120384998141643832212219311847469365432426940847601346364953407233408011036518318242890881571147838981680548841775149933404457249696100328960473418213281584165277597204518398191460223986450535670935661346512949154582331975617947586263982475559846729029207188390952359313352791346273587915713300332701979302489450567091196547028654770048722740688697009637884269069572570940463442727316539102053777870206546543442521116169398593207899791248010235679920953193119602742575933115829552437265172523077782870795230485119800652934531333963099558031123767012939430693808519895793118137379160372591560701518766018842145984543986908844316961131194011163531085401832570490354716801675685438291493533234250896702208538304218934954708980894482456496522567303038306352571658932078043576707216512556320851829411227660260917169388070675625560084413458107313953169018510911037449579525980739095619259199368514155873044587691820843663636828177058825719174097969582260602239180142523818399587434862231166576998754949082813026691127006850142790766252754772376104068672599736390622427358764724778539845884669497573528763963381519470411381704560445081756372706971712316167624551261850194009713305714021288668540836573053611379413975385397411664026163627083038859530693125004798488425791182819376863148864846668348124963003086538413630854560633283123204991004835593017428420695151603473423927859010345249822333458274194222826373013380288503441122204230593278563147940289935675566141184802759950375415992764782424416621603479969297166775084878374965811028414231446649719531233202841117520801832124603798471334681091470028162735595720192627111031840564741515201260778806582880736483370017393087476767770512738684287156639732683766384627414029420122137979639367219213499706985879318820083117608262081855610435023348441678913723826070053108636184354917319016423601068779278232008429785561561441996284592534360480663583824537059076925688002011580168546680299196091595144319391952413826285553362167433325932277043231201238618684939529414042472760897655633786268100526089635398293621265822036925066841542752230864850929439928181931848032063310453311398560920769751170616782549361757700259254534393213666514257412901491817526260379666750149542659543742549790004838779558284076650583553420768900636023605523485457943542161065047060842943300107630767401054203528673330792583913895802480241277771042415109446557398944270419499386488585213941443058700193925814119894599221144597171482636289181547050090152585805708676555227458827238057846757276242955054003736188155182603036526813842435072153347460661185642725969987970181955102939385113075461940895498773683556634704717231479793411311944672414055919874596209281318045442409089063719507926132422902116306909088259601728982758342481747627944835254446928972079118080759529381092127502243015935914775326868743792150586655153264711373059425848020397632299435093746945059034672499436687716815052364901907066203353869371840728797560060393900197089969540039015919948723331817906008655348377226012586852671894524718635427201764846405630391339287573332988737810076108079076429959167151490807313674798737019608737951413868274512935416757012887218309513584005725225141294927955472922754078899441153681017936450177581539473093304630380729468870442836831187192416892001883346753021369442203058421691187007582077408711188574946158129940367395530189775880182592727229171878876995490885574255109772314552176014651705426955583114635825681426286395148813007479206982226809226969108946970186568449027704831299391895456498781944492853376446604990988448077231984277279408409749304807365775788343565298367571284476874435440940064278526735611105498047360181627131992982250814278570423457980775691476501284463202395530098829469946305488129205779193992208872482659891410290456240245691125124813748417856655520432800507369562103189201273941570678232919843773647460680298074915075022693853244229193389686431014664430375898547821363614428484688669221375235669085509252004986091999966962519205535745611425559265062825496499640315802306789525453915747182449396446025627942940638880238698629353192686175307788005829270904509671756241012006326191832217691851251061542423868384471254166795663741743735592314216253872537624863584252197650428930993819131245836484960088077773314485939131469928809950259788783766022610623712065110943675844576197288037647910010444767326101574061712854762482539609508779620126568039566010868783051679050869589959257856981403699887865130686668559497119099329977519326426137999248708644258441556806566612286376925837871430484634950417952799512849177192386180702804745052595584212045137684358438592646100588917240978011405497884314286556917528931984471076230134229969511206010607676991750621610624040017867170000950747872744865960555794558461954517581149913065048846110675552120698789713786013905387387913765784815455243677326377639500907961019714956155514380073656352757678328554926815430422984951638550200178948459227841206135458663079072310412972952245708217719963997092472689633413334463053972450924786978167085413826834591993439563913177639398575000413156815723356946425456004146172454016512982317426929276956424568039685903284119051665830726849229567357234802520261947115451130880750621591599223387486474034601403168540293663915600774867184539439299148678212485918317791974514941976192106229199578660999081607806236088798912324925543468585188826772954645924886164956280446189992220339283333318247595106172356887083181795231548353567771780143500631085240771682178360975194487062090103221397760320763207173040106947301931874677112048687216563663160381284728422789767663366733261751766200733147277780615089682709843535228312393274974016916790579901823944441430823830472509716431857530842455035482727855811163424922871433510519318154113001546390037173003487442884943270439035858527137162444074402797785694741623661639581614654264474521061735614188507018808396359911690658803266646974870696162587908316573935545253740526541192499765479698277025778342089071131717576205416008103683720939635366238285611757665753270196624442735498183397517874372907168686817472593773709215453036997150127161880430352556491933450438766518469204071332669080072503964633993795966132033682238037937948245725735649160798535479683287678913561127142210718926857004535810762520546795969106856528832716341172915913965738983912373427882644923963447330860280089839470965885986526235357132680656654105872663839142998248556427270578789693521323099380952887570986059988901166680947795940958868705264546210787975839148208156805019176363744926186933165259975467300469593045362426940840215053946771483864022014886466694498898880980054638283119634239157598894114513422851895892964028227679590313769273243029353567325642935551954882443666397163776801830108993621479567888170176983832431666143390663405036329789379248761266497336565092668063130406941083903691359125293573095769705471079168243954108873240284345162212728459437649060684853887478992665010567489221552053015167417317550449204069341374184027906457445608980657726607427379020074091256750410873744471880269344963251860221525425731204026658252419098889825847727215240334118646808901214993670884349550810438692911044458963112112142336862226927066390465874191249215847355004695096875524830148004760111041631426900838658623078103396092406798086046423467457760201167877784882293474292752698997203220474061827613682357282843196034580826527796311097584005586043482092158765072672281652559411040779362709848272410206653129979885949201221789359463139486524280267536071164909145121728593724776111418759574201280611620384614334802044832567241703434179702658280159477918272055679983833449767051383977605961209370900343220127805958713119405803345689642027873886987315055379451445942618496287374186004664109922790629325815786707153350859175300195339871115326580042936351143373001857681497173865295973441809952420394045660641965761337138425551149639835399814867765770082437398631983287791406380933502309794391516114603013011895585897179460628175352035274839344830393118258538199968003058733928109573862088877202317843534746361685259630306488432025192214358728952425458009681938424333872451802519345253548877280300599704621241961961847009617577045439262033473589000699733764853384836290225192611995941165470081830463312658496808704905118040416871720273173320026713140145983958668202300803103066439740162311819384303531739832606318503624487693786693301090431946988758390120980315395234441540510449330799408230848036112702803403301238137623334805142304337697608803949450646553172411527783104626069766686800044134508958134044403010583049881416914393154982024638486425954125069785387422750319306800238100704721678760166641617516761430437719688189832618239988862896103728826024759345226686072015409592959810577782914314545897394467550714827739528883773905267587292720685483867673107738083797404345232127063355780109326523775998374392081778947409450863458737790776269062125303301847165994367139710975363419356083931695583188524164153060566429897172043248590929689116851264752354745123650360219611534307975603514478042428904527631006482505113607516115763221765594701531307731266309735264339679904490706086668693954674301810543352352971890552933108461193469054204528899332787394275803013113959948185399415015077334654431820488362509814519760944343266901688313655511247858529315300712393167093989011786900158473858736738170093070900326208370261315352734974327735342600178895652789712683124985514121388525069269433118177363287417181685176859874114093952677123785259699468002934430264438296054559998531595003261220307742107749280242230832331333689178764201118119812974929885602923300967988213731915900715971064216347648078349410690750881862957846539071486223650684903451148238223621789764064312692060086651411092829067795213008058639288085433985699442298972129837370337266404409875918729847002948849803846835029283850032329360530459987748819337168781347489290008739983970766235665259645623926317385876104650582755028068278504491441086834603735688805550219333087929345815093559898740898216220430096772450531932945620391740860127649507645211654505731717661945905094168022454471967392265942951781024318452820316949982064830939467240351380163070879955418077212917155175695240971919706886604620123659108824529926532031510492244949745949204208160490318264590808147726830557026531095458314744395125858085521490389537946364702668607408605528866418142768197413578820688793243730388465183454756656480352753872983881141448308474840307779266032002780288396456899080140625583925896356226734073862598108988077864279392763526023932160026839758544332962512925558629660852685834136720256494452812289211067923202987459031809252331209719239746322312298092645655382746688146240388941547139794447728641627974749221980638487250981733927531230563005732207818509087572455759006107616190156218563882463360227932578416845108635977725321222686859355595108994337598662624007149096697251936029437101399924952291918868913401133984861959298316229173696061169784875261548378393682971264540574606094882294819491030908825983969922164372289417437487380660735587169682072499762403963293947906051478691711765451850310645747902661188290679391955827405874629222074951975403755834372750983943158117752774630591294651277675424989681771055547591413396305990386804215449458101599598783347817923425669562360844835083417539771889282500253167343477677911247473460889065134796480386729039118506046672373275688936858000525122203964410461172767442461620568304568751873016672488845470862803843765675779175629065519085019474243903460485555423213508248984487362918103810825173852662486809917160355448033933305184613737167273562086986531625061242541539315897534584833414319044710155955621506988974165083733174508276887342839842428389454498206757846398615029847990246522832930227725965021122250506053993649997356410710124352562463130481183795873739715724113544796353011235748418819846622673982580101073021546970365634341374304385205631465465934587834098148824426260725103752734807235931713030041852648242906269950927724328545553326394242598363601644072268585303101124412207832604290553076231843181039361770556782723809489821543861507867911300631888983547046105199535664897227110398872107179331915026203204642758981024800654823477355971942080226364580972779339119568830539811018990636112771526680464605866863209443377045337878781312461586626742196668811909159238499908802230811969885812779434330865519862873526450672717676914844056416952659398412227783436079898274886145284972420043719222572708246864025408195131656038506029892743190675750662678554114093789176003845271670725724433711121956842139515924293207653625240846082576305446795087470360642441582865891161334645673729623793321677718359363982822373844398502141412291818354570071743913973086365756377219487247131461861736652435794480634002179034950926757446822396487186462956076826603904376228498215395503449999928039478538072755537242491438955392962552102377386185575165203059602712208123142398289663607680890789449672318266513803655583979955340226463068841070922493878096400169932570190125041353581476966752262086515194874118233626844276790426076820613284334675304213835409844021325917396613781035640553660416815761690889128612686885230231449600293228738508877115152757919761842866757879367657918687628792415750935270209804935461116056098674847712063858219250468923543061142008298190843994590616895892675017901989986820402727445815423327219050782239765925247281840774636860053473932292674650963230646597238476002018994806281449207777767966416696352792127337791364231258991414150849256104059719286058417676865030673808548675888222251576353994369118410071654248920928767771239331092885888082838562219950961332074994080237804125225123140879328581480479976974447885027546041863489792041224909016008967400247890292470489672610106370913528496647605094161322512165932923355526518660407029793803217625007563208381547684132422713874998277503186179181679924252869833673257045957334824280884879509367096738903904601170850681391876921619805398790915506034540730567996897226017068832765792170117283110843615725326861058855003514167733937305831580748140091412522579299107230446499256917749886642232252897560372487307087151046910200443873680174292493253268623425936971486753129097433311759294743697770997577705976888330829110497720426767484703941325776362067079523700732143950702184758784200969616188998382969389149444261551908928765410898686641167449867019470490854546066194210131343878013138144958270111789981322050685916697174350175170756752456877482337468946820975665207596016651008160357063832368406299597447448178896032819359964863518557583321481883442791408099390108635409892526628305752584764014065327452652664569451979984748087483835038849965495890373237305305742260724357636711556667470619509257936108936977358969194176554616806150269557592980703034328771740839003754638113576271916734764833541144730043903130966504260189473422035187544597751723192303210929475296952053297259172752411475262875180979347006555624666573848600309344981413039827890930404121418870384480132888501567995505340965316137962615700924126565127670585868170278117123888248553247619760662943080915587361948780426377525416777921595678285815380770683969530843879556551601994120237661565317927451772058563931036040617002995078064984481929134312961648435627281743209085090681993924814273953258989593916764061320296985206130869605294925464474430981108949116310534193941040133930339597260092780479478357880158610912682148814692732520062500510240593094946335405107935383005119411647424974722970237457780314998437209308827225994308097558810188812124903022956921431982352470040786195618109079948063044688046643050785151957718114693178067316857825909003988393439315570637322961205963577025304449053104390285331463574244033698432715890646087840463869608314142275399075474929646214597531984506841621398372522701659830013068516339879888501810532912052352463992475019433035467140204525151026556951459702436908778991497415469186574918155742115747556332507367763083801374641763599801200498391505367772490542173012293905947891887831129463952335717442121208145596032005852753164615589596996668677279455607335642274428182930344144140575051419165979154452232356903353363381175439893415234450395317577583382522187699969139626197061035066057298295844763225062231916537193380903722627996100184031865849597297931787596214200397030768985027993042595198640838022627857730930820867372994507892971040383174913493570873389033992669952432310362621303347885337254063573004944154890861548559506534816304445540920699829427698900606426247512219101057135087752748595262009130001494551918169926084252394257562574029142778156606596727661881228018320713164615666059100805971131783624765221569759688411622948468500704086399021624908921114235797544936806468241188725055630388821106545726477798041499598223403828824342150688933573974266244304153268914723203542185722691489769067885233194035672793324375015930409034571679363134194488615530416448351268334147594838543835439609401451134412271413164849993291999913445741275535170052521721604291749628784350156011069647018694481852111792695988890515973387039322515312632302252254631926972312234355934168695005597741504295263395765854286150123343302985413754694239305812013838595682488823753844776199839449001084652795456476077394840547065619919152705030401230013871858530559731632603699803847963516003383824122963883261756698818256920224012434611412275238752350052616692977116672073375583703882471598179636934757561716567127075135417931434469675124866776999212388499710061752179848521653992274621373173059051545834892680585103445364788865242097160666890889360820435935126628493154819144242909854375815974746992201994355772222646853141226043612149851709798714050413420944522365986946656697106614168985041052797430649573799225922838313798968176078270959140288126987938073048718091802262889541234176376570305014067815760978111668044573076713730072299887878283814409199894286430912156267211715875094295803123901096134787441790566463753264816769313419730263938236304019932960099410427531209605242102429145654260478322427168111020945416771470643286481248005958249169321921753786159933186730209121220639961781250477605574906053078411688462972831922286622046973761572376271716792298360380292695362514242654555714475989966654422052791542937818532454786691631616991236270672649451216753106883013130425123214591254094398415795511911739861793763023121438270924534044281732169710952139327405044597073628442081058597859107711752826604920519017725747174615928892924070730106591290967482892707878727687629347559365788373406472568074071996053239354074973674242597165774669411198875291207041885627925049491521271571186884514473311360287699619224671876349127175021082460688765497270654412300962751258131387147046112179449380891955513224802003291529916139004025651627844598680323217019633208281675148424417922581235373267061185559429353369235361226247038044498527379254641461133365966596182590821353061665474610453109578162632449118948405202764625874513334835677655770728545157588227379091227044730033547009005974427195878465444892858529171189880025157103222807229956545034563038237638836606265993859499020235226564395450343967602426511405087187074369150212395067283241433564326285544614831736413320850803840046946867619019513785255442063772026827282754587496377783205293793917133688596072411519269009638533151229872244127591608141557540926105711080848514842829459155408778201715154158732942102779228158484727621128170072151968896367872192829839139379997067878672852212696570046375557882021154440317612265862677342435408838687973203786577653149422944699198503660246890455442737184324963858277471261260968808209879622138723159613541798687837682603469982695789569341836471169505183776424507627237659818906059227750016529409558212927840224979119100026759437807880799914725555201059318799142320301834396854224721486249060413297198226360047778385758904275679943681443680489561214182871869491760367479582201261466568228218722244581514619797733334770123463232588530513931885768854262052902809519811837746792044708204893624746003915982985552358887556536663820059713958053484911225450867480102664023010078182891908073731434665009672332492848401521099886319060764065977039009233111986130773781593130661868607653450683501718112839221666265364192576097420514944234280463493378519069009448325666229574551721383804257030834092349399427437640192960488991098052040244332873094744978643403498976768951836506165019910133945173790306588003855234300167346515653508530271534966784225460317606186403835537039155313758551486380770689158491062829331895291501579075594257668827094127725155048623650078130273971182340529329416094181464243279619142925635443307381238912623753564935886877355747316224409143819106403641009720567353395863161326352726791522248197028815182860147480795531448860610550784325451490856782987133404517647767103488863488680842620737641302708109784454069876101428214460038298400817938560217603182599731973417144149535189268131029722774652375530138851696429068273020430261167817814388711438213104450661447706783931365998318654893396753744628800487051452147154911626800688310233057361233104199136709290798265306864464979406505580219665317697194381126303813658800956352705287901549756799332366454508039152476759834553102352605973820052678208677420689458501351590074244872489015056983380432454486205828834552519628846203768626330775331609058965771099494867154017295964960341900891725334053039445385325909735407499855406320703046979675007214674966793837366076942146258645941509627475605773673767000971176988701214517890279789795769147219257551701238099678034606260759961939171241048906862023970941436038753173979988318523983563975434753900409420340918061870969000404852812433218427707771002262019680116368592503599361771339833557669526876286388687773801266979054218876444850252608301812101825779157346555338361690708585913481475381061773790174460136936797688066782620509937625875078712541024334115789670904954850328314872655105979216349790371577732513699249001398346126717785565312577077252871208903011967122770096187374107245361439568307320584077618969045765279411331319794657925977953269366950901060030159476903511639626988533866872102831695870632758487301659646580703691372983929639391097727374019299996486347211222725996388009768674753099313262805164855857970202905677825525364826271900876318344326393639610581404874807324898708065297921077884429904331721089624471035833877951521181698243290363322665328106020878533095937549428633154003161884249276484960795160773707357878724893403885477433878898856765229627187549875360536860087454644346131526426768780983154896854491598870524114884554816988964153740862027396915133548433616293091735391107662362682909179892640666185542461996674470052617197224692997280717867218500956936350275954174721933051126564337395860476570942026446948364360231160040386203320770871555252065839485356386945866645399785237964676248486649752856184052374414819992750510456823979525776142894763315219801295380731981723769572043183065198375700470122767534205416934700551540923423911625935391800312901924707040069624476763436642779759791645021731179287390248338172767766555003301878030755399485528663694792154808126339176148455814804765894603010561521644709389183409873990983853486192389248281379791194715575557729320833545522757740215604692526993805016543524463848935557454491392968265617132452944637871886378662500610955393664773167086777312806043183929019521159003840017200643609572590107382494613532419703142086082311244715210385044599058596238399258691337374523936253435567855727345390977506258080276322373280376784376084851379439392501366163865893085826198546092067092731652708904455212448849940827719778679975821812174432555927761789005504859538605498654038019264555600486593111135218617607376840857337429895264473124519459560048813411992983706500188305544201415123690549633370176130980290394463090030812676614379072223991822781757117567552973068959252658522313599747271551399138795609476410264732118353283121457019610988011054012228753949477636485988875324505469037806884051523015840144433622665717585446590736001157009363219102588795265595097855265610786393768165658568070225097701679101802679382871086733597932308970593512942128402054594846566046347890042610704283770564915766177786868886760036750180171858138140111699657920622884723485814295029693144193510724571093208171690408743152415128877977220794396943714633510011339868127907904794231818453875006004185643631109097619527892522411924946371340780136400994881125011952545945354607196653340305927977559028977249725412364511609690108590704745392411690588614677142295023351960952124311434997096529849563828552754143743772834126102619326462986054839270827082107652366602652452841298781786901112318541218656303039414735904230908290084919219818515356286015472173892605832272666079682295292711907705630214249582613798242773515792350379907529018286671857161416647661153481804744288493852090891773051062394997501152477749954169346704497436644984975990311358742584354871700039460012144206060731671269152260788106554163838812556694423367661812993224638797783544598259934063629161082772589705350353679086854377684730340646708421779622774269056828474403145239428397861644765188999131225231911192421177199747610553240287335836283121810654033921211998704795411723015603115825939210013757227205691652944085297937052269295583228017402976368790975029792870092009141656708652577700470246911315655817870012351673018170022200957850978660550929047264478603572587380447450116860186150397325329416474992658478808417773509486357430392228800328141065154749433608794290548027405659717557867981049783497660735287812389290219911479522363221589292747058930364613617347015065457378894845145803420516616356688086116320673506143161368129022380754193348725454031940482350776926849804956572310719321572107714543144167287813767226772926713215980470474983808068062761130939280900459776797285512363894640133268496484386673233642989414005820877389380550380750077690320776615783449048603268726419455760771616561275110011422490697370837324694141111609748421585056990743420619715916544719180004055961248140290642996622849288751056517932258214873934637435656184528578321534302155942519795790351202929175339188756151986413402546560441715240028839372014257394072412103854423193767550360984399556348767691227738152045062634020568063048215990269640260130381224731114738752378077940354728477520578014118581876076566930138771312048451265047525288909185681854919928164307169719490313932473580306799678101308606252382537545073319120035172551501406227280213105790773768361275515593916620996853184541088796365358321231959430249011977141762448663373751149970509727600079251238798177730400182170327604562994401039017479267996672401406990830476534926552711821558512776072758980174330126619069018210566926467047091733345221501559360361505161150047883436352682888406644350997951080208344220860257828437081761693101848171566035786879295813860746968039339873154585695939805105280125841927566802449601840649665611263515091112690877265873759360567561868955432679288058356809717048474541084977580078909283507240862511280400124386630260929461706206696365823120091911923705122329289450347395664568066960210673258928108408454748445831699368794262853094775161511486758976038663990603339824720322811470053902425785735038402361628265851337877345124236791274462295467981047465353847450116465388968649405963509944383999120932825602925698729666544857094858290451526833937526676362912159069556167286023438650977739116715383220155217856746760972471999226587686811861459360383703794894240079275380529969814723802348816779799831854974696356343236496285455030132440104347640417267660941690737623154324148392167869420910904464494658665884485876678161886559487138956186146792545654787306994453405970243952081949188141026489732019021747881070995073637254043918184367526547172262073424556773156875309059560002382677730895231887602213759274986645347544296557744794151430319775426328499384309253848575605971465690991958432021851027957105928408441121315708057973771708770600209298359063291504904456641361363954079404283351903300161677692270860418857440373007378046911322554226613231641480562523483040847182976384234509249675316035013078790587218642169970407365751677625953976488240920447117806548862535950676262169418665518892880081828064462265061704270564370787782342539384875480914973784941965494523053646848842925752350614108558608764325773727595709554567555536223462090793524421722241336867213731054231955555231822318098358584557424652718714001001884016208387698359959278603562919931687765493043616571590712117503914815886511732298861814603312792681322407970031340838894228110033400076965374465490229166996224894149603666925045040083252520310745954091293261349570002584189397829670164389985795443990828571637571075803636012698591514203803887413903983055111502868460044318166939716079863173030619550444318687071924725756315917432269921023506268446552376007451544828784791663968440254821313385669666907861865501182243485600181771893163960301011673489128925071282228368958033017138661053308045793377508018508347121429684897812533544626215196141779014823806650673865677612137898530376888100098642119699976204864120988603423894660916520414691265313583000777955117134180555766278433884444425839898220362354241272075415512266487829308346231229331192038288682446535266557042316272195328284292343660837000612513174008155769196267263713136729172382698032144999564732349893740810691838938562044679856411748767079719767669758882328945716964748544180350631727302541510464775223673543694170255018723377721375380276274756397484034850253358455222252847272385457772948158426315279786967377543007108819804993332280458786295411999085775739661996673664679480839245844040192078753262803047335286798557779891261426257709848982087553886984822816790891098417041598204942278568675402967285589021704705815293437052070309005375615321243016415886700423956692354177601462649452738056680899956318567090370492068451187994500703196272742432616771802889234311579152061004802439677482735056175887870731464565621397685686161874954249799306530943181732701644978074309953212076166513875935092328313348288412929989467717857767659423754535402545572500310081397818390905250759755180084134984366943907583413488245175598484150058338212023822260990356237995508875617009900781254127016837208615267418593095139067385952106703458911556956837724958190903569201941319743235208620389061494959625271981071078578610277993722913856604344015393973253024884405929140496361209631392891810154023596586183066963100389925755681250110348812046241217524896695251272593903711537771629895616141313724508193122494358762086373886846063984307002444443865310404385555576081735107842150394478356247159725298467298515942638064347650315706436091201867204822194720699789919077139241580915477283393030903269314974442626137748976233306431412253876951372534978731886743359917765730069440463704358417410404064223013158993542712430926008986025525977937163149989001290367830005979969884694255847085969724281425921815582862044399721641837498498878961636208366591059238671041585754122799710155989705129530947901200207167639910770265149865140665808602569987251443845084162940264807030608051395289327526420560739995602283580146510427486596304263302266830546987698062340176295626643302254711490507431144035727116693888143117549022639859545874784082800179662047276210525548650418072281670921448243296895143711820520808066551920331510491307471702838309607063780245589589536192847375423746230589868423346351379255173628997095630590896839558665627550696914936809434283113556473333868542887599992077716739065238947911867696797165664344905240471004242908704803351836110837132027932504938475510692518645400452549822638788977416839895743426284241122495981809154390814372576288614344940832828323633533323904012240103431451446642259262335060063605340859020624276570325112578559912951305725778711846063258988735169802447432954165847446469244089159625656213117466818005116896592219609792952808200754159324224244972623680457872546928367238146520113282645779337165481410066844860148676028466463364060697677919989866059738470430135124520889642880264978884159296434262115926318065390830973044585424083491137938929537584542209824406669940941652125911974428694838639921660196662809760051443054787930384441029221686259795969292530514148892556099426691649957914786518271625439386490930633078584525367008005660227898568322438137690478702889748880538147971064966728740817445218556110823423212166011676681770224488956588102741927951492040713680838289563920580887114877064769312656949088416234770852586707216308115217997393313391201964345041384892965021980584619503446406692759457371874916315275405187455055989969008359825911322153651887109812527912703652108474209801346461296977384737805209233428927227351006793038171921760587595926832074048824061459082389138125489716479037754843806028270445635541220252147371916898467230741924610468533363106991278185079521269390525950825279357464736874299203438846248666791524218769387049678066234834208041968265984318395702782388661429819831463610091309031617673422998839104795679577410648974631962042186624211334861957185868722984366394280505946796197763387108954458294939835076482988330780107879151839094759383857035725906330256206187194640823612511959475050442061086528313991298032761319925578086777075841883252546076861644031083611646065433208686525687207900894718094356112471480332647968333477092451343401850225088860484369179352539703953368338265742186244913131463409632771927478840729576331519584503554346811290461769649453596885783717130090602897072498284535122009184085285003026014125414185756973174063618501256706387126133907366277691786368384058533139099226817159483173776131045296645491729090910507597174060164516032989264059233676956926316124395692390367062490942759498710041084674453605771607130422661775260944380237048602447503471204748239237055914407237304067288295137815691886603168779075693843301722523605463352912501846202120439533070130010821592612708432409961495401864616721887239799688895436558095506359868996112153732276602513257153845710661168596600782801554278801990687693868020980019397616443742235737726705467728273753007922318261933142845749630401476400155742665022504487890979796840003420575656167560329006481180424723788751524322870678608908622740420483448418246410359467367497149946950065507726124572182769073932052540344799042275012155757070380254555441872618038997584303504885049262102294558261051835631673698659537005292207494475614868579518762412617455523379602756007626191700732612252619229563772264228496677179444162088995404755857096160416546667722786972780605912163020220234087268564274645519192872086795259376899537363036825320909010547662778379010726227587994067495966517231730782088562315849883215875951542288217583124001156835369863512715972628367229419541971945417417836550976381157341396370412394771609744642489123973382323321485326183547126867338174417677671981460236895866648321959652898645788202015156469097013590918275069515984703362887458919058661323784979088163100400948637742937542991355375393725239286092750865470975836441515311022425162233146119506768844967484604043428829453055686305570514127207344142118714451918086522868575133552455109070855763167275427461833339046048480092213031590206131486823315519820207470736593987175458313011626455163294059073062118141287197073705352093387722653720837708440675991595809184601285591235640874173776244028779173350776933193040020420768405975299589606325663962793852248583323885565042915575029065841582905652934830694998823869798436215834561750429824172215385582757625361458540276647670775195628981468296582288619122152907978599097685214404600333826771510288154774377393256418485453894466500008324974836555450059443633898881908170146814768707743494374253486253246403814417417418092157204547359637740501562367430255860639144339093299018826467119419930915299131414492887413569174413316393830020489279332112850585390940226623402121248467564672088244221628565976802086504853741723196378488185202530891428521605982127985412880097976972736742615493978382236304146731248599904145402057239185786636356432534006799587549020489270085719875953145143670052851638584960497980773549307581192609389068871715794513071787733298720389360687131868853208315692259130041285498639088223398374913630243199396343246236338707060287700602497144896452968073706924662351913159923096887598781566391857878068580182102157128255872930970312523698658251866400457044433616961409321209453807962425360426648068134940659263137593636882429252228100702873014663030718958313503729158209744459154820109628096470729327258022569705285245376863097915579749425754149851275224732169146464022887776279282297618920133578872986689471594312678840707209458222499145740830533787545705162879414942839926762680668294082022797924074813649001337462910302509848689872978607500077208938914294000353852003618434577259853755070921606669961689343364363411342160114848458304145267118059472028984540258733674713840781068423758912496533753251421479735412218775465693523839798156085753627887724863278079288184039950465350118947953180428370395636773382136560495516635874543653693868222898985323251755762668188191417309786110661671485502684733709293965982213282850896693406082396877373173187562190372049704981744058334179100860829701126209685234561761924830008844698561105615984621757992030892634664801506899492065617686265961547848052025701844284712767586884807420148459342675081476794965520632168987013926936973315467477978006643750060872398386910536878933715290021536533109570082548531091833957640146144249887650177162475083905892536254109421001843841530848869583122493608350386242798589624649360601983750113191602178089351798880713547204798844651664951792248131500529882881789475554545892994253962998257448622606146696255755148130518827997335067267202019773653091944901360246985258361789174909579719920327045921803315271692092211854110240364827323956296024926997386479577202606276426659834575960999016809653619526417509988984410906696117928420704766639376030240124431728159961609901552657208999809865435587260187976926461613776736371763110433606586937154075972341494175649437870284574935324137573987599184926108151270519090033971259743051430570297523951776099583708208716198851099447445306142656395637961828534214888678191931648715097320778590509098824919727945988520622126543827404897029466054737550366236762508243277810275775468828530786088843113276039499642345224417506029306326409996819911655702804142307784132238126953198850883949876834734718298134553816901566080257191530432292891711291189934986495429507742755737527443830965983732604958568562172278013578261235637615530952274620193820821938619974538931407657003872841268419411103456736523449579910174591210255157070627515841269018145418659193332080137519221494391311390322164307810398345490984097789912671027305749583358884110460762474028662813671706308591895511945386434989943065729606727446887524552019759310660042571795411224735030235786929471911361641408769474652846690413351973714468286371876204136070787809149677854038222379031325933707416713376670300074174297889810942077917603705239432210746250536561210893912063748003777852982810399961982366744888654858962175855103379602689038290443620117930662614103968573857757329466187920416717398710326247875543226747079766098661328829907681159356563964633273204741739784265369199190646712778194691142976960118511471239916246438581746961620165320380690418516622834351648532800087527289125465685629701201490423918431288488389663226033266490504625424514215347584116081980944438373488836186965881706169576409427254428138926942347770515747622285386000212947858872097964162848784823402978623645157658953918944950241291951379627932033037232242176326155841484954516904150481594884532645326553653281584852361499117017491452565020673881465567418367766013622884181398544575838175149216798753623630224986650429880939102699718848802597021704485903020255281376143367273000239314876299433294208753934637510479521663759369485928545296692388206119609240108921940593703503900889489567554362043651223813504612232372382866856077012147081993400632500504015944476137330293113072648737428865343019135662635609855517648157420585324060915889455368833801259706382927178595879134872875146570278175062411446232761653556428807613855546695349648767049259826390047902398515700112973510422734980397930594893217731377835894642742149082818960757531663530474132916766726095819881366751938560800708344597969448541187459637879570518688388410024575300697902067470221895246733062965330342647425250643770366535796179927235140168088257230933194932235877697472080831632355032305372876567519744991243310734787102283251543468653144891570018572714713571395281870574403999035495292821984194312175107601239606851671559800959248113233096097277527290408919323045138192140595486909598636156394978700520999400453737343156735490812703704510200581394407500195798398153412379254954412683033510100983294068693167631486522184212629750354696318803837229693273196369743552064935541432839605757761496876843255071820259896690012147396634121190161145159208872722508230507932949494079983035117439139983561499528317698741053009191646371157608033511517823544752890951669668677205601074949728003859896889690175959651632083599249657918715316651765549612330531322300490379802892581565885346905592047320220448582157391494245442560076874875963196383371954892180348425782151467432798324626713901150955473503845122706744168158795314683679900968850352672289130370503480372551647510513950112069430326188844836012931414513267422774490205843566135720229760256924370832441473642641686246364411282148668230832788188494762575231475975914601911830264703265364351048628723308503013729871313054656816719716890905587991979239236783607661069139729150170285367070569174329791673497006282391209582141932733273361327046384978971169436863631742875989441795970005150265948402811553367844892890987111274270014556977186037683662578910129563249421739324232168356599413714970634463931210308426517347819460763480768667087802256060833998196852703913918886249039676884620136475618424530109411795428278950660962786715984160333835560517106636856399954515920294897909002016370361939133668720115887227353601700656960651464471120340094309551938779368928571657979945702661759806750658584312007097858804395220899315610725582190373890438252120855893405296268706039463083862964357048224731511988823264965123392600187450587221558420062895641955723634632331736133539635988828154163245820868282051771812674230009967145556939963211009792089279391206198925227872517706263567390676915075036279049590617019026398853848242279793595660084466646208117859652920023970017257321295381222958572475480299622804524803151473644476070058401470111615758330158798602567053286960250376685894688955023257396063113350790062326814658960061059183444981762694684360620874637260023428731048777509719973729761222048448836153296814104084191527315302909848106065910524127947206721677857638503413335352953768616347649393982206113351167018085933748920098562602163753645763780873079879441630313293316895436085481882718279108027649824309170051899256377720671901282595644396814549721198775362462428587348366727741388547074278988113931036710074026045809509374008931914550371596430022079870990203065777948063315078278940388496027687867501150352659995965391190385099575413618646077638276100001304674420375584841941075474313628321747499691401725627458019098307308145989564263710707449293185933599496778454639752986682330066260519705295839655493478793407689272982386509972833688730942514477529332553010929388909505962166350064585168264565447845180421527102664145472557243576467412591500350973442004140137796425302765595800327792109172338906938023083570007457202077507051320768536767272669298257278806558077391819386526298795127174848702311339078814879707566297739766886745595026821138724850673265308769626032637977883817039169225967070289286107234695501370892227372415747352146311860616833296428089427109325645217857757270417410463370921490477550989291583656236696358717002254740672067093192911298504984090118749708255655051363127676195118237393101788940519552680738315732701998473140823010125986798640249312652998698370675174619761290586419715101691903811305389962591544058977983188111848636733518061096425229334202379950798747141179724133194970352120390227690761693998661539247323087743933199384739346554960246748514595610893832143463804437642967447806044542861177235622881235455493854936747031830938630059948081007775522664098580690978871378998953777268055931062615837683270227356952548162868397754059831321881072095957348925727333607100177373732221572506245554076368125818209945643331566441688211124082029632424927154040257558438562079972481372543147979164509345891752823037794163366234595408270359566741034205830065125966067610571237001968882883335782652565408580060812476178346121343470426599076471885291788165598760336660595722972060467641459384056050985003866257202499991628345347601214095757561311377201422225379992258192630947647380824921053667270233756952747512467574585656475437187370293203808164716184881757492845639807036059299858141720705239145558163312398386041648372208155081340838489890108366584225927027318649588730149154750457798656015794960986925857407280916123745761202808037828969730368470554068069623149508576585780179457693095467489289107241726997087828710790670221214053753348991612709489247267572344210192995716317251677202681645119541166379138729020266989452202267016878474342065359295371655476871469752207308654175307695502877479965694422846207438005525935426234468118729661835447521732595472403599115499033810989292538332301108126011194582913247891826145659005709191480498898106410926531986415491543906371153226168013913692077903113441179044933330532860222488114011183121690798555552765277012968970799415293440757744481215215833914807326588549027739291894694430223060336436124352701765988697804072997295130502643362922997685978827880727384238664341055561867323340524330442126542258092202612807937786831680936909650393071851886957554053551924474010188943418513036377102371916542473855697723434544164292942818412135505616030340415197305170567200415254841430480032671364932915510047527288635743156272212124828080394804923399414833168816848856114246398562772124899801046925246509842976800281988738917967161599756299490810318094577654993003353372766028986041305137208816749655798938564649312549305261794154357932439967264638223127993043825027457046156612228021160225297111191472604790679114334610532916291139941814270585956941209348705329859577332450152356744973314305978034707598118104996264834658498942908313702882424640767048658194554011222616640067209749347735432236607890982793629180178659752966916049133180586454418649019700531272110948672892161104504999285033923823873427727498171068639662551650545007777297633522839190936341662686730283859776285488119063765714156748522900276413007228464624776604071999694613008712309698169611776402458802404012277418711903828145364087877021405063492045688038663506375827652148287252840916675958836895125614744011243810584148169296968942308269772458826627968797006541223749113713683518273816786549949908789667069442237087859447037228743161509109596631446466201164070945609747984902336368998006439917728458070166806855050901362872368692311375217531959132603685491079270852283226079413342844843869645538234043507367517552792845759993897084065342413403330059654225845197743549315652525394904076905497553575974283270739261405029025531357059032776602472873309375923278180121805754870154845632321548818821748220175933259548451238642854569852437940055643359240775739243854042343670253663096934297865742526702990857323452167561710123261449059510089220234401191017621933825534855414517694923404167850494813081108037421525083298166315034405878206840508107976351147787203140491779334056996245570005100693036175538679862105922113749601741647859581459938472721179339102336288987467100288436021052170030892146382834642017249337751459461845171864693842448751077048033105857362742225568981078359505681344078125767276467759112661617171405478682692221335071159277571118093621635640070319886152791549715815318620255816103602208833140622334375402127944239891115148261761456759828494129184350381437440406672132027369655909465688771867557646895937998403428439243642831384999361064558995730821752409575198040756322481727837193912031933520095796798854086628858417158654024753194619847844915636237942278008482519000342182972500368077973282965382738268270964577883062907325769696592585022478834799000892773753323379739199484980079456201626834352930708261139150815401573863587479108768681933062234033983618409712895981877562602320509009083023276126078423856047623994116114319918232855723035025632996230987986981372198738395349508800511056502551983076631001619269793411377996508716998429506073438599287426692821325806226561042709298555323533190484297057597918028685911242678133278920001306637330850163745789963926841843244879175040596605681343473002115212736490381460146601752804951232356523323008822931562318907472490518120317167734021314247820386106747549184568130175936336823259562941510850663733241345865262633044277892032996301166478431055788674965560193634540666107980434433101760405369658787820701177835366459579770650091105134671806196456268045892855313927988654488718292361747895538135482243227886132438874537573063925535056108022035560618016580113110466655516833625015396973279483339203199122342273318161913617394790971735209725444187397616167995449157406664226388362108258654824667000046603045031769080346096803893749421289724462507372378801185645049543717747930590105413309154632762282060176177726835719949947210008588867775294851461832830022160531607450286227139406225752271536153117948325395295552742443222018538412130706088399437290030324169622364650062679206998011745074151388569172249881228694521886700365546148784018091905968464151740997383864403572306976416525888924650133328010595770874378130562626917433897663374685287599025182271698006671366646708361635272676281649125400544732434236003266930910899393768313144242197382299322978899509262145427603142396254271230092705131256849634464869986491336884943639089723126426985662762511195953309015856024338982430606220942126898955033347468679306819675596149852797331688931123863928159704872146311784898941116772994112153556595564602254923636029767497358206868245320519582507730379363207582534854244796943684323958300229664803194516068861469246983068428373136376435257635957350148686021954365414064201558168884496826588112346578630251592084439687290937301123018832008241085506946274755850721881988176641625353285219936784509184182428655803081514319124717065152153768560754252963760776766790355340420681950971436961093717825001040346833890047236835797188718171866901601416549973181593902753404297029478246885715803080708271595273198839570827244320729419541477376160496369054079066248569819214941742723336708611922624396286500454742100377481547483680701662129709692506903003943401395314388437285136146794894202202440990456468490128084942230059632100179967311469204503257922153562548371953645571305199770032984963931022431021180511979176412110170676120373178870189983365634887019288887530215727875646836504202114486565320041827358101052483179031323330999480349305949980910359087330683426208375330508051534731571048365541101858028938714764639728679708648175511967444202706231028853344602840098064273631390115188257354508704401278803203088045899940139285783137032014631169008275408416316137011378228175894830757274318712663013695540649705124014514793856161607269587551618897759220093725494342263026666980219056424941329713649058451446070935457705336461927026351091734441874165996058050721762322370670527694064598828269651738596744318504935088709778844538955509746429914941415741063308802091460270719921816981821848327678140565798031917860610615469014750739181327737402257584650193362927178684413597620946794413405609798352525324749547488537619645521287202144933951857167797183240136151680833948120338647768328115354036761880487119525767514184498817143299528951896302121924404678378057413972164676150352183581754195988015587818389877976475267585748818331264167501749810815143956777800430391656241421262183012497813989961269749311366312453454316541231370246544678922138633261672210957095956775874781360274393282525867880943190187831786885162815506666593489901119484204008654954306003803917832796210697202261917310139471184135238262439808203804472560429396888860804766181485442792435502261760433830379987532493633844337963930510645729014703350484425150829410029885717602209436030402689545253902264156554722967444069816099570489706185759483066124539686153354855144597331415848823064508729062747461691612693811227240324559977885023567656421042563528224329378227841337453906326841724811294747773030374330284546143127261463231054005353426874295074516071168211325894504737799852590628088970600841994325724353565991595671844195326672363569542603751340160430291739059688164139004648874461987704713895350172088782930056934588329435186236441050520472850795809082277452628379309621245247595045516612361438921321303632724583994778552010358178117546910511108562484397813271226425738183065824881492113345160118758678218223689876871510855234308438356729146224210574386173325666174196099936951870348029905664774658947108378273848943931133757530927421892233623870241278137474699439306717379258961666208232681848594299372006722042496665728301766117251770474243838873560953063077199230280701657315710923722634020253364566142117210250498340082245863258341695067797490762157337322084574771516728370216515257272690632420731081126675511116947543113934249625225886563205594333643320042519380168662236961207972080580740842366932359222684518055532782070923498976196712171677979162425780181446520515623399935707138000186543251139952406157139627860042748761022274703605630086648981855636851288380978403164513015656934545393867343428477068513872235729288140058166779277438303949914245719052875735721815448154682097769230039701931588853344831834588709784166083322294817764296269862440018956263080105855695187343003230459129313590389824489278817580776525982661720431484267406228422069358052956902096633837016605316358514824802924808353213333866336552655846206542647208138004228866116415553859799434407771856815108755523126448545964525682108101363543381796045718686396281912497281114155466294954354934914680495744830271969878908369322495792479826449028468729907283707520127828417701296038008043731360423501447543490823255460170757247290533176026007168578534904476930884455602408001824755381632930999047059579577019350151577466033079725700373762325590290641339382501275562649100510616602673582260016757926804227712563042088963082394958703325881815901148357758853131200675974897321484873801355473336822289584377169733243596867061474174214824198491715314444568644103073777827889633659175734785985830896048923788864995744858433237190790563871810177897048941413043979539619304755136966890917381633740202841805918926362634932358957961233483397612835753302169311053950963729495957963237906257024403791754295515233462608114735451617283191517000014474899195218776476917796619525687211950072287996953030485369675763637399079443068124854411943468769764884058346616632214254392467783295252912629907876264227606330177169498919015833545190931969710555142543804634544788337295850795248169098208668872949001376274936027610045903568066045868909058431258692363897381507878483913244730620982187600698931976648193331380052981213588470461356389427927750975444271361557414241267121343614431457693594318507539740155634504300721477338036015915644231515266680816325650072654491737090742236099788501752860483087906977643378024401438369175765823499600233283998024261432303051647115052461338692295596198359018526989237206162766722239182968662229969012836837210704579973823259553391994273015201586329031086623608902874311511451889364441672750585782363920478507306914908015077421383261345609768350470320648086900699266616858755686557297130854886848503055927422266456489552175234253394411505534725112646874301122506920502936588393469377742735748818930547630545685454418508778334402716495296764357654554237608683138550128461793410564132515360011011623132486698903783227670525440629689664390164466242697687371277902594848672305041883512738771499958322927201056908176477203657453830626321212878234468285712677402161319942376745969026344380275818965473334216076195899910713593304608006360114340785902223013814431675618941610083866684613067297879981602699198450160903644503543006885749180789117498869185855912088927342856240750598637464206718268858410438991569960048600167802922715540433478128168320697425259008189993852431294865490970147090348901658048570591023809840230292095484580270313579975506082780061492870342061018970592855562503690666603519135105061273768315360391598296544096119848260379215369282152317537330450074594560265041649063874521712882164977966308965320357792770559757387890470897607282272861556133365541746541733325319504614471596125613447283876079497920347277890260645594036838939830512804310689788320922552674030990727666325563098291433773362487639009803746799583633167074909560157767806252841815856088281251037304566516783812329202644333428924799895376370028470882057317814802861566947067176088301797629574365703863766543046743001822177521707979011378132020917101225944593947603263352210034409607288891180582302988000139210576990206104119422259014412676393754756585523326364613691909630559005238784905808585472189314329512565509891118545790904743098672451982156484092911235670470447158165412242094848952602395442514968969986468927865337205038152583553395259594977924503735072336029292568166440317544720933502346993573428041628057585312310210403470741055394794662342247219765418606633075609383928430245561876321522936953094967261453911550427797429139462348116389099455719879805891080940522085663477364025185331579289422226129519671014878689533990411656262361099307862774431260985791519865108219376344239750924444318888327216723144731398927565393874690848378599983903019284755990844803139757226257799580238371821182610778254632805016627569293348171019992136884912579741783441246362148079932630317896300773162287411001414744682958710964094360165114643704044042410280223715486434163126869710296745723799303787091192660226885434933928846977833183377275536002360452697553331207405219443841871317065004062303142578963962462550805346231951577272160682467971323982350711214667903334253166105009268282697832051707970606477094753322191130031634327466649212585334869826284993336490749757627177624238424575293760363736930665698580813242457184231916598443524836383914723677091125428797492840916714841056061734952555303808025489089798998339974419688164435811599635419445468244300187739344851567862993714124642025542762803464528194319699851567759428015890117242991147492324496362966536112256462081778084193736717417486930319865392314510420342087874944638342007423694674167379137718541729302110672529004985058939500157644652578426785050041281505141101676109024179981163673651173343630520421718834697334409607550618922832080020682321882552093166826822405525067853326727393544627953544503469346708868997829659766680155868555439280549691600153824644154729634264346247442338095616697486432678510537404871530783285248609214792938904006191940775854125772182974031111166845751943377154666059314963226057639579506672379248045566267449590160990445717007476853018258359111847027181738399220659114697386904071066889191440478183940152554984309841740429629710037588902667980037542352007789188689320658825673592163374899321907433307763236806306766031330580993650392784996633058344105839558423547061392583029625605937294969917786537007358259567291655637575333823794650667028133163367787785776540384450762237028156002664687600833008347769410652242313219628171717051745747315803146837794422992062584391451630642192807623472117373390541241689812221162744746047974251534951561448784645190598055852749277065110469689987912269209543632918756598497581600498178265342268061755799778870982903979477692149897138829441298992190611100972733446442254587081125627516076895604186952638176562972535253204654732232141127349449000707070999534382370431029954931899072903894039360084645792478097477068937779236093482406529080446823873867535504321438033607221229022859001521687474418687680218974235828115058684556368219827186838282271202295355952640981192206262566181745386204378976477473674013011410619178200547728890882134890713634827915593958898431114146844929317959587687310461994662172429940553363456043726428831492716589843358014580972576277627480086830414876612040715194827495097876062854305260609174030415856194771042402156317612762503789082642330948321292769031081330963355364460998113468658262919385030633646688385280452043912065096659934376120972103566183449142063297509359110553383819962863761112214598310028863877752253889871071693077294828968283881800878905575896287028220349555592191964282070266016697470450758824123649246793082836044047799202556780810097082707396392589823723990315016973687807385505372806600703393590298940585507101555820395192945275576341610560242684511731947093866005647220996449700057971162868387884806864575452129887621201133230783599445579624275161906166120865922288443999371369161337747764796754640447522236519879189066686946153634030497850427056326973688971767816963589121479450885603249203591050005270291250661744571090248823185230873847337576096296230032316319317705124188551887400891445227583872030393346341370398837475003700041303032374616810528227896302406571954284743956136305960663672766163707624386151793176856378218167072636652637274942966882649642156690987657556395389815173715391903738736617810851143735491718269151664658795431436691657455991450913469830055434697394681518491285267436821633233500240041534756336655543674785343566384349230826641011863794636824274147632133085558608911599159806929933335873799921170987761010008635122696610858237796007729825299164224524537757907863767700176204216980120120647778816812285322970158265153759104727982085810254471643890921459885993058738998061814443712467960927896016995930567311477876516454604182806808137305641139477003395510592967117921357356142213349770103555789039312036795077972678552069130961013305799573655659898421408011089577749635249030586721440332122663394577760336670739898663756555056683759019541117040024041731741919439459587410094912791893583220509607515445658310764632202074155673007349298392237588602436330219358760270235383485080903097240472306748338342756541939017566330534359057292536290666629244298849188897493018046336827406041879726445528790910374590152796299864191120641276634166546726010310143946482542731940826051925252551470778065053819397034148333188388624454468587502835136793106925926554234554314028772700964462593259362048415099761861355931150537433205957617181753937237683494896588055619710338460567651780607714378117511985495815026595404789716057114274816704335430798362768085737520359804547071898744462755156865065289903442705242266329006737706140738453314554636962039851463484540503624520515544809019044499277919701946340520402164922587968547709646591896052550802043743563249955278875640185485688090466172664721930353980257689554075607094508921639275173362484872746063445774606143001504714806638023075078467186626866548062874953343812650852986179360627305411608775132065067076009515969692284706002510591898168605636747228483403662313128400278349650264207429464809871958179891982342267801099136726586977957271563708382060384675085125037853686890500029292459138144967610368015650494006450172028100844074982488433633837738945146423499807434875419495706534048759930629686574017722989220704171237938036868930195047140805316367924427611498728243497797345189655310351516300192841073985195246807211364384786874646878389054668587014682004042476626691197850527702329950255237592021823976131403013182078110942434189403502878184833569987541954914249076492818501276969258450798230992456397400749002204140040814982716177223278597182320744436096387298396961769523263044226671403564480136950111512736195952338954246697996090297111772949798526018120959498553479360399587022603538684446006003645587837208173448481728984962334331616852328962817476865669477744784117666778555040540203287723129129612007175618218574966072128601155009432483206606717083733843924471749765065065395869480652749851096435044131366631171614909274800894797155128038089060266123387702102460871260236923627820427206321488569558386924455619295439798282458631291559701611213933766704160478146545373984820479320623054588918302366359110708613236136202530060581680116956767791721865838986110641028446669353951289078736735883788090729393355689242298092189993758565251999683035395720430381542383232155894813487973033498622566948609440452371096311204294737099983277523759028794351014807960241085318282272720652091714052716399557006854888993071327044426381171361613784216492670845447360153371535140322522669399315646939254888609277194695095102720565898208516114169375891858497767339581073955205541136116747458894000557926501251680225642913290464512246101611637758958600355196330846263680948429868557821245923786064491086261495283867385748460624329476975565060173447023224516932581959420480174438618277900997910269979436377386102343599019729026657217693490531242108201479010762344221176404981710940456467147964831850036460706524373799149575490746437935566086687350470688028880227371691506679616227263677914204453113812965788921907989306792807951963438554429930526671181883169318151533000819834137033633378116513644784495643202630447890568832539132756855006498874364529724019039321942361946858186092481991447182231256350361070990814381682009488814574791834007420880549282434648220201809006608931218487114220238905961481295707898687067309632835077280035846647252633326092546798831562814721665310429035510638186723945926224918971857466227564481923207912033462940462371645508682074780792120022481044824089437677296457037505214884323833477844236576265962577476421663383869681051556004051166589294226556430506743196066321493832685232411241030982926183965667265375709622727081637652222261279570378913027362242454280235776949669797916037806020611998296537668641486057372437857086856953671743052858867279415048697170792306809919635597090667086086704439569492989034984609640835521243208215872209856942639442068086152539322638514641858225508872435640761007555798603043006190293997750365292449627680630161939586896748428229696682871600705412188536011252621472619919345701124941360400731371035601235449141445611326208147972202445629200855459676710774526294464036987115667370523304227692060689219972122876515923491727088250526604784919584445695914954505203439722196057022428705963477199487453423035849734555434835752259005001326792895299683452830029249678715325695089559947356008771614786735890702422303452567709264186130652622402665593023796108908654028523635432570109503857035922516724133703077459528298681995945316181099708617790431952149454086998001928441783404417575747549841723432243952542187721471914287794622704245511038404102299632182148672447851417004323907658205074417433391390254937226005191780552886683592783596861304844805476520701103870545679050667133268614691793209741543043700590057514024530381135085976232049883500375219010731724239132061208453416364254209019908397895169749190801982570754695387176043555031029354560318825424123415380260235799848612710272619459461730250150627201782718347507953754614282322402048003534771308735855438658380898655790290172089921523626028544134566644210075571317411536188136435968339178366853039551978979318334402665763958177638441502047463839169434940375471889635956653883787817580085294331051564780631675597639684628454868517613078492352192875843857174211537274266247549460074982946468911313202604982426666061782362167521162446765571852014277072651705457698952689158654863836532657746612478287586163955105690793757904746800241480846173002350065115943759950472262795355830956568529055241243326065912396556616297515992467856976728609578387082972688818624776428246088909131027716809233417321818638941302991280178576810041184533170548780729935392241647084659276769596008613384672589179222468401965236004045192266880502291382525427442729668668684434699936464495385030296443141816833067956606591922422686423372589702974986779822379869703509156728825011897285054366969991182292764320134661426209667403469891881233491284987860945850830854116026791874956383997265879385404937588937626517521431340091562976766348403934059711389589611177923727197312008711902838723850420995136502089599650238692387431123007649389545870453740391327674275465856914324922344248795497854319421772955103290436669509712290579410542229713849833318456816780047165274303446215093737456890883427726549979589740027715869728175671621774716062393562513213218337706308123619906676206891261103358399766852794022800693326230427643632008046027945439821856926895760882981052034704162890615142695566326024123584568477402216153317507949045061899427754164876681283060876768034280137061515175936542004066434433426496963013597695711095384413054751373806515114656704272808787921116188386702583261483520335952489799880059843268521422166101213864234444740355415361812545123272541790375243284652613400156403407802950831738706863385821890430943726825197783543414044146312250502899850956296472199898959957027601716108002639004542806670193688700868737609635517053961091586488522475225982760850986863931908657157051464794306498079474003599356783157531697864016412102767359274484082147931616872014630736832680755323555072337845196658339596199008857560532046490439871878000387765344984827912729759792678589323883519784359774519933790605004783574741301134385776701277467765584964365349920729112750524478067990024763808133608376915934307344709990872461246951158499905693894581929968315256934346560165049073654345616899244178541830962787746864256473309080177123473827498653704276858941835387066249694535897512976364921662022519559782048820112202452063180174318531405357149398858353520725336059281656473662228037512543318119068635804501106000884894872519903861157068600129173394913291999098969965204028647974786711411264149735235506028280563867318913520620182265447423753075914797277834548519658095711767037248911322187418488420537545664304860548417143542098122079034390146824643080476309399999880943640362379049566908306658934411667123307190876886902228908245509439357653700881395446857595822159242377133759289049456699134195775694872099345523487974255495973472566824570327524856342058030051906633322261472984466356644139474153616390319636890970189293421841296547064212044157983092821127551232309411970468703667558586291468665816011469075818145323886259946881306110085865524313303888523617875416245193185488543052047658769717818718606032450922670502356233075286540063445374747739810330175301063928587670660068366242391593447479238935868447466881343976841289522085262808015247811580908728272091068270714887926222001887207133583473116049387503202471350511097341514271885107454394386359982516893867278320760656584329964192668772911788055306398770758928466546501756871388509785305437747560815981890538128597597587290276419145876804693039579894025028062844944399772678833460349871447159111864087508848011825046606269492813255058544606680721928076722631854197060899727279328835630867966582165637662126870006208613985795336872183297669435258658521810219711279998852328601454243886492106396255081129145245255616566251745398210791658322948273919890722663808593877706669201798454373338257583356165441482274134936688994627566230058234864163748912925743454265368720986163347195472560537649026110986160220637151720317310722335277790235623011612215887219068318476967121545447777189197636476756359883650485373868147111897171916809442453201656264658424153204609521975081387494362727391153970389810220502072113796428981678456571999832095782867548246199255241689506475624458756804765798271042064918280049611417899632653493836970996186563356252519127952746611645289324394250260539499129767894868554513836462986138705930084863951448275428092542582659281811623455857369643512166112757078658787389100475094950207414328556247532340688069460365866382241592059477011627245535077018832034127506165164340989242766361949066040514759018981828470414540679863377495897159330321086396794802452236021904707540849524380936220742042164446659094186115161254214397853035314714220427605099109995842582706534280655169953376413540568398590540391144111810793179235479297804177400311890283401420591317860176181401013906783945160797340933314529288335682667610873089655686663414746979909201291639517765647604100135923084640778111857701714754709305227961078051292259221379667679524230254777868690986986395932830175267134925739424766570379671996549057910346451721056316111628475761605028027414734420593798738570939365997645840643634710234105138685609815436419462070934874955657151525876473986387466291120525218861978644719353401218770856443049497646632721117312966307401474288533880713955483966615116435832796327071497036647204554823907524170487371109020356888784262714328459682948590109912056328006778172819559480835958863738006020331258120404741161951005570766375139185206350193775668908791222625529151154171611594311232297484807946000842736178369452653656863890892237921914888941513412764381286725354394383665876498935117345954658221046207015694624962982968658694603297164296105830273629466407866954804716068767401293098388270112694174576728496538949967770013549707175873976988535701609968871924398012575377886300452996060389424525329812768837975328294347847471727369483897844303154455723327192581956779575201768405949103945102487040529777546132413957473702495806952190611935524656130076060817036606398636909196877967326987420698410215404135877434994424845398736628997937049319920124331087177158890833145936949751344415030896988848336704889533517343836661375049886678850189787624889604189195656213492559957946958215127187360222944345760312341161622211878306263016002561513060089617958809133778599382757389116617492200048019466539716725319999678782464652070420255289580612934879221570703235051078873381035613246905891254280167314522261051097526884458173958528674970087328173702650391141880863625786006867709535709454186272037182959232939429007320456890853846769280767670607836273145466135746451186141926996840036355245786682528605523608783926337209495568657305888535524273171830355557661956018132069697052314728591603657415281937948039078057017766249677677083054533996441041149074448091893544237158751316371206909284971881865265179569625060876808637992992751438191755131412856983804990583832466407184353357303197771923402173355125247540289594645193497894187821116524420719647963354028084276825874550514307540912886970338275798291725270125051748572518656760529685757171043985177586346549273633497837457855775175982311888796356064292882610691522113877304690729117843968795717996919087674744626893901043838930893590681505506251804283424984828547453739091196550057874852361944267365338920352933817968794345885130965448082595216533488533142585906605270100209981304986906610698677234145150216180332181725178026163803550800611514851650187034813864966232298355047474814032213413711133904201565046862958632573380327318893633782129763123240816594658125293560698325945482097271872385586401208542652793657843708612131900849444631669227680474991809781634470515081160305546845477727121603537840550710447517401778915850144033399711975439333719021937161199593217216504348598606859907581486633851593522539828386365787049426792462482206465907637116079911666922700483457738349505076745617132967741574193605423046510863904707430966830213531313738391540186005483158199947853684079243886303894244866672916246547492520575545499832899550524654939646411067247024618161519868529574083506627144849297627610327661507954674098048556480451992670006754105146168240371336646870739180576224596451211251721492844607838729506552655624078233202163428422744973406670605785481312841617000682794165240861605304976414153531076247585161143189632664121541764788398057395181670827546264019133427246943406454609233310750056137488584560105870764280551049156832299217771877111422882139914235138999780480907419667504293426884405876930973969884921265740650738424132590499513328074891848631251366005168909867576618930641860145076889966436459847824247637921894682052933286181607285862549019360639659721734597424668534891907715096959471598414958835749940794307637165075871308430350659656327614249689170270472511828931530116351364012323319484777355643225618088550726863361566702774766513168447304589233046845035827341392155205655955505440270077095711891235370032893938471907130123006149485000977330419016297408129412131007436521696769473711944650430267528745652642711757677298510022731815314791218667823176381430013321357233316408367630482863502462292951039446419729011777230673981708549428213168548786358442315756515126424619713863569864264862557007288328497746525656989358881220656154327435235054226430476307017596203998944569375407760427720642856615642749640623182258091376046133355409258109348656833959259597723292629928394070710266205069602619147507145467295379193605773395142158577367025812554777780561818384862923578290486304116967594759573109216364874512873206098977515744436062832010751756050589863773946426723725663313291514763629459652957375045560330850717021865386497970399826911957235654663966487883670532499176054762463736883864743239368030711240814009841313418719023246139816728474348568584332490676322680788298969985320550015954564258464295395783296713684086860555137613483163819971069104112487722930856559611628925194327289567357930854882534621880597830361967314347224473607401904882543669383859498643896715844346497819484608704668424405885058132909486752810350894189176873601345670398402540953998391292616396401197585040283059874751989038363763360479521800905639994071114901634881160879755828688711237197841131277404749774716029903909862932011943419532613068755868700479115058427811892736018988455379428009383559600305556424905749338311315812689358091718216793938460891311000913782169602569619439156385709772108529485340840222526315380757648143521110178606079662021536457451980428792492155960917851467553471628345148097698478106679469525804386278933072854430755186746740317899205962325306968498506222564537980193324071470105388312457215975293737664144600024333474634216156471090800684485733100996979567508613229562153948966129070760870594577321109613959572068376981733321772272294523020117149582746246142300879245639153997758798889343605192809280534275728977229827041082526506032247474346553971244458211009418085288276642872155303732073030536999833190954644601349058002772687336090967528353698986915299188377794470867320805117295882852234634661352117877708220245152330986947204880236983903747224506945292333816680915602161194538071272085693994427112547056770339166068504188339211207102057971895974029537191378850823954184472972051258301450223639984588818848079532110961360706818576227037222246736786329888261953507748848219258010102816773487801365173708597515968635069276114868186791543306331072840528726329604274650167451209805724615983531249796508336096289846517924850865498501765792674836830314023725116051904820049237568869704813235670138712214034852597571698231493921035044538124934385475404287716292607871596597100032425350818006798504784670434107138023000235584229276244188098312102784984568828190562148611688382921380769559023859598888271842714129831535746594838350886367556872507237005788208080651643085130575390714808125198197275440604286072130723311251343547351228237263690205923346840895290394418174722218080880242037454292281950515602090325706656667513552221108389323443301310922674560908964892847160090016843425686030240651838712536444791084482286345723428630044777153567679200512680158320684514548462053772408317023075118582695882781968328062931814157962923029145900923892191050240033017159853602106898165730959705470875430491535075728347102136736590782988988985918825850638387058232361040134273680214577279781265035144713007668519889889948812511324071231122542365537410930571377676466308898081974667344019485396742746464858366303858292683316324747585607341129560442350481513665036436982413065211648732136172781537900111843876479214730602485996966264597689599961667211415767874271631457434219196612543824868063795065670783793056645487497150817126499227458770705140178403252025837430672397938751940738347821354249264480459416936012377841557568380219322451567198146831319351717687676754293680874293230325331900577611530377848807671791587371824189629234963357730887133014206582406472018436866647711019508225654418504141048595092331516417566835335903568059777488262860392163051142844014771122767735978005569968564515698154440497309565618208141072345550770948893164663871587978269909672010477004866204157743641851008897751229401338621572559796673030033335608965045712994860450880103006995708118327412201402884673187612114721507608286450080493350605834124400534992410079189789715694292906019459616663953573900574082818979586561063021425094057802600387806674702572785042310267925526866416478375723919265740833531010919946058689126296928972279969561618379658625395145776565138991560596911925701426776971953622126921492479330132225341796733804545690690022448631454369928050895902879853639911649610456934163523738167270079824864959372543294414750174225348800746053668527410735814214048138192609577485753983239643220276768982952993222991005911139480903062578671946852207543672331441563274745841367829695182090907575373808152255068158163451296858430554700340573093719565115333411882257911842912789762442742486688289460841733772762858914434381079663241858137433846559133612506562144086311856550748203659540631199451447355236649530742436126220822158777991811731823998791677268624698100133089934413410325565124475098167383057838800279317823662668005733866283045269150121749881110106626631699907408954678887249837606964267560732765502029530643202456584880357434091901845796967091895835921580643189211550207822254058962123850483633366864052650953988539601868748025439599077570863564711810781732083588241078933984849609504515786236906937909102983365861250578006128204283298987013036174255081417929885102043927760391008863991970883894224434374762445064994325335007553215013569164544740245063414217209263704944162854493551749667395186823377038822701742839530648662140220848023569461745193504452005508429896063854978848029230468765093182430456069066241201432328860358702904692695699377283699572561179998141680328892009972076764727501627836867650540928061436825599340753710851249533505218381221957941843768750343747861356974665962198992983397941774629139991105033856608029725055647158466340714418810406681604659430800847607423326968987058334079959140117356140151939292709382712687357412911864787881737933530797239221133192308722405119877675739253726165864549426970835248628842373051086923121187061719785188209150825532376382874542005836687239908789431347681712102521577682178540349826123344573321254174317451021853549655579434151924041429385750734501873226311269652614808725692696035706812151890737658509891075362102883715027221145715342089961875581653159753732286965870661344104392456144311878952574621725088814221073288321486438369157788502205553043793870438751785534900033336463282506360668434588165228858439143410744908874009501134992575008379355751565553008791180473363980280727351149899654498396382793230869298165472619999417035882464036822960347475410975925924275022130272331811193692525583679483444535581223185016372875460245591428936179898410034101496736734869279655352991676468139620318856482628636652051194815519831936924360187203396258643477420244385483432927070408636023717711895787744878210908310338603375716535638376914811155177578318605865271331483470470710147491440729526717343731889238041195791375831171724954701510532290212277885637591441268359099147735772189678566839478966554619377684371992485409203477479435973596459075100013413684632705399423663318275732602790593132890071752423297998820287298154569806857526027208534508151895589980153798591083302626595034092482208169698309450990517222297747930929601372231162070631805909809865220498412675160968993690871531261541063911409971951665275210265513746210672397545367515277226642733250075533038115577924901710819799987400343320689495430202123349165597553413847543345890845972105651261752779038737155802168102013489762300439393301236195606740565507257644762641864103827522502750248815204212014489487342731576724397775165196048771591399337573305215631600582818327524251249842892950456972662723179499982241389204581139222881970967286681341996585450892541478818661214316464611550030894295416415008044351267100077171910660816349116010494095288591507102731924530092103376157478528190111785253196093973770758834535501621051206186184601695948479242265582832053891743414191425338734928362625274756210650026892093054980381913505075158331536272952690233545490673069070794629027098043069677577723240682589082882508719228992384535612496053360909311987714976853491877105878152511576321782688003836432532084554949660599231613449029622982638366556956239029163639924053184573831973360568963029015672027874764742292374312083875364779798021170664041400362396034299054782146001596438490391408621724890011936393620529491164901901789376774177008184157364642482280347765983399559419994742351380877202735649965374651805059283762459061501248635490405903504435517739687521256993922531405466616753260095964401508144713408500599413358682401567968939165232995690256179570318736346002549275079758572406998775376961069554911245592937168161560926997401474859490971957528393278502955116373128363160941400264127714313438580936410729183188557818439119311302159185350578578267813740951513988287209329872089170879655840337995818036410913017605836428376834675026974479173273639254982660928654126686250869584057683826773635576101884075688046293110000176313820419913384229464217547622876326889510325650125780660911015418261759711786301184931204170788848170354445911420924626742573854926759929721582663012489607916028079628300823769849842566244627305478652271247538556587015184259367866607262374642936149312230316971149938213716237773410189346841249858333389712057460987653349543709544581047341194560471667637148877194001858503801665391884435307680678552100284220806101815325986672325936086291194279528506716203215956292623442108503037510045802167820585943121317849865165018388971429281020467276648339658336122005041226995409452463109054148670165621311141881464251400068594342141622950137241195028940402417152962021482131694268734550617483257748990172706786802213580520163171796597062549914891010408225901388069271225998766190649975539725379242097878052790312274535372212572367819816862775436006599316051608547194117693360065530493270015499640941246294027607786146284263379978708212413096748277295256590403333987130166360520515294387227092653002312857112773934391997242946561603149228864638304821182640063463224452327691249279637091900448243861527211738977530537784151082701879026418975985538377859626418290682069666145374500018130044232891188865769486602758387733595904246273151206531070012956386671945837083873337411674660109199277138739518504590880125893321230007687377301554965648760019617033561376853791722498869698755195865115151889923396437740402644643992447039889660574200480403272101503624189294033641113926337714550891811958138338368725394729324038967734941772757243263349537617769172900183500288324688388698795081953365568493688942031617225709608998387769660411434688738071363573288669456573139819587650261070720575343593698709143271078791162618225497690755373296838462371980377723623180973689147636315632068037900973628028108828758505399141297181529629141765341436529914563455753001304422165769165917258742509574579395765389375303642168057837534330285509866206405407545243569174626281387643468459350171741527868022302377657152180397749018457581075312454827466932201410027293930057292911762103521488068409654478422553268707160705059089900628094449404154412597990322412482501203552710848242832728758955828234601248079035945360755145245577897068612561556066185751995605593062939881571757993514221864407194173649071924161338862112697131969647091936269225927694829854536449149570007423761292129232360305966621359283628203069907880880512199966860277424965605746409050845143539104932913904253388842512770905760115118420203545641450644444901078278998884806471368700843752079399228578028570193534204744462127764800911598182661695878859097365647894047839370717313572873998225857396902077210380994288115046429888309449492404445478673612212302275703965388690868566088878787655369870741551508575529398412203165367114016065424206518133470142971786862867022801143070144416691616740865311435365445747979988394858181760937581338634333376661759053378073669357353601526752879069564118965020203335721073380889946630961082437206862321930214671845836389087018524113291813432830975165862835828020285355630548009557159955832579960732398973857856500547767477967039151109049875692102382551433357999550367301982074582190004874924269957415297989908687173042152473827524060590708247425701122782745792350939963373671874818053274311205184712026784775209008338648721303678557169164026097322614945348881087908046220422844744366463358250620504016213234850767221552338662714270673918452967533197678634661371233219982665632436325336658476343210835904929872094923993713760828094399503418911483038155747141781558250235426575791262848678437134315589620484212081618549562823673704885374015744962700878453841961001932284330352487105542925179969360705602019073534329462020076012559713016860944185162061647608555184614487697249685713376456464226581958552486763535296772626053500058178860746290906891752682041228890909528868065799259408343170737872890393576060334005101882156983757269545998261662979798504872923890214839218468672883782317659559863016746105706145244787170759273139468811538432732880366357955718691146742133107729056064117946870406282309781559799161001330561753599614577820190510878169108395518585811506348385896341932492241019337353386825801779634725492433349439533473082088511076100196476808353529697265175207363655510909355072282687805558294524373537109200172114203211924134565477028680441528898107039458586721999950155732480998582819470502432768537185822251395416977225538186320759406240060167501352676384618188990508765608077076064828011790562265025712498942231771115445179330141561339192878046126006583674811470149249586018186630134815283050041236529544847445007292515242337627310620978272504756600623639215152786663576378964897752010641863285768075574496628115583021377143083521258503874873930492185858730543853577257749616460124948441025664751994714839152228678163934673005052408981453360414855996134939449999477083994450694515544502249219944202161979384226737375393794962322672228538680247533599251755507988106530851411593662097230688130432002752351011583980853672678382306446751477327349643973713917962064289300760527297244036738805221630060125468801326284755965788140816479505828996653640362638715752552427960856027553833407822598553796481959239508187074651158962279304137427245813710972246796427637754413561875923793729007025092487826160594627158088038269851838968268523505634245186334611322082457168595662903615907177088823775817829744285312087177892087308068649657525082682394886835583060148094812032255072605444721628048594932008533690074156770202563977480400367071993127796757497985704322401303035123433793841119702982166128009611416748679205903443300609203812071232696215160248074500048253161202571416539529596794209693335225759842989241011248112816500927890735603481056779542442576021301472728928040615958014521760395499938205343934970601811690056256577265874935582551045380544207393872318672692410808506895204082913632421098919921528071440468452343826601028554106980718406456892539457833105503231245534582660125252842103459298640136340726152346253288623613727128415082977926702619662156847547711924124725017752978966778379712531137792572532714962345955160670930946024892189591970390274840151777137891748599692943503261652849973914256396997447220962817598273386580541143197201169520557135849025900335882503539669388068490012693504359285097729071504215746082123939853055848791454780232204462408788666437055229022017513997322328867868803834704299729957167316178360968095943803304647250107906214013276970724397377929151801933582226929961116068371950983215526350642688158703335781025102441279100436090852823243652611106292162470550400115289906113000287138331299345007389182945695650546486332656429625102011943537538690127668775616131036105010873797083991112806263165352053332606743479082036071811278414295898378421782142683492941943860202544985590061113756191290076483078860937127407553629714824856863504977304212766764826464956017887605603175750212161249680330203544424544151153329850888819224034339863853981329847909589209934093408521565545020860107098389760634298524519055512557088286615983162921523103198162965315331787247077870150713116574450314087492440602625101390993397464907079125533621640275582869441445946603647644289324243138410629907159992011055573787141455395568430795416474891840988797094759226817144792769848846309970659975182429697268041894441728711457857902425284315840592687860731474834229117656869677906187818996389143178029009599594437613553328507963596913968952459494712098384947493509772748584066159285828189341262359503767889095750750048031697919292777556235517953328533782427061978956821403687882225670155978399042307690342869645120576062078302913392873158204933604688247196725000513187529695236050799007226821501397243174527838393105369883940406430446603358220634101369780866038392175850949145371819639767050062460109181437447390112862202615038517153950750246570030542748998998663210644692347052448526635841986921548506073637363597010370082004549913553023422768361566092371837623766132307179429403505162058983788057576163956318965132833379910809862874371503218333793748127100691965566098102455034372043197579238016389338378849728009620067495263952292455253000391513286520043049480840044167616635725611033609089035787026666045741186601123915357092230799350627563435866941212414069020009842972885997105526204600735961659712462458728001921492282374570477005555522350790100742577964174566642181376076772802141676343117663347609280512448751798617501469765110923140199850247521055514321832032468386223638698021497325291726808182691602264014519857159898630636476938467346243735336212294526740029736632189275577631336143305221298373289362416838097663112178439064659213185276575754245214970640857261269485555515169441916963456349485189554909986185470749217091939721501418158355491517780349308284162785303200371138876697124701645305296251462535480884659373219813246040470050787455315777445301272216787096992396519448100276677245220982613889576119399825821350595390610825343830738461376643424814263503035635328088255456582869514568834834438986408470699615815535565709359785298181541228102493116267716647554232454373645520971605553434476004957991305958606654748091969975852369639105430605329969861777455570274840316051101500092750983054177882070165288780564858883539300966378414164514643065416094534649274971944308843019008324345001071122485095846236331155956540350010253810776548708890382448210596021756746917076126644465154974482026176935992159001084678942486308093110974452168053059968747071949334148212789460240478998678227086039521789819115257591092440949061082194157218824513878752510537877999275056350892651778227569928390407262594300994068365841150601554274085496917109322553335139905577143012245622535920908928995487890168873879441498176674091947219085853207588134243524146844094694287344230346798148693206669054764408187907564332780969073743156106540035033625634410455405611658425666194641315699592028166095466040404330784296094233642800676425202468843790370266432738375267344456677436044759117234554431213751299871605349417899062407462480591751545421450101525935018579497967709149427762987677618753591769766569335362007526440055827223378257461241917751039896982850087804629116124702935977041571227868208415059989900350764905681353154496010505837825215407229584781412092260773883685833256991559582762574369910089538863525857915815462974099288929556581087224687989144433932867800612434479704940951149872537221620712182814722472056079163203546845358270539996995617334265564380213934441344178143274734745857133433696450456688363452453000414941871945921948433658051838847285289573281231874272357208174646490615680708810117498592724304880030470536065982636244872218133622058442769634789925536739568916175956008312751253637311486289182885319964774051306528739011160279514724037652046796752757209461295488494347706847358388657408629879684138685412903844567349179194724354737357796297310950136368563409865248512307442492548600122048346377696577486982380990753387247381016163310452201814820517102454902704032110393175291412358590061321995807115235246532730824518745519017632123239266091955360533793394148102222392043058509911127812208341729985428532488899749378137714924235064622060497016227225755592720282304524616814483277945957726840574073524387263251217738607872522373950829206825862458295828660242237009164114532251562350867283570259206579379358071723165782531026400259164948657585156166324005963374332240583635768913638099660678333152055381942981754518628623952762224642642676193220057260940708007453797660206932150660480654709236700254554780937431296344699511936457022777042894919874731465159991743446636643115270320963181447439684666070170386568389290413726145179205283037798001596733221126213921110926943732426514745153290256779778978627916800742645700177658587727644110248817538709550286636628570263130432618216755997340755163087411848101599477854617199275806420800764503939309676501079127964575617677717231325287087711856436547981557213226713167103428333750264809232709279469361875423717132374321188201310401325775420615534777473809549330295605286314299239676172425951765259603785367700486543020503790556079849761798497675485222965689086687886272722881663572996507421217816710131844648983979274584104609174019553594521807726496016485658963312765177725658705566386246770220297306716190496476017555319174306942729638024399901578625879540380429250103996228423609657996174256641461082878246713086538672251974748647516003719122316432937361372141819045144539853812903065784552577768190642150208663935460111797607731446016980772214946201821547541834681569866974952214374839557436099093773062856953891933363227788414778314701635879527570580709036694132143464672142162087359745240719634441913987157226649562352091248948290329173792347539064790206405968944585818188316372505697150824954721001143061291121279649246144814945267320461180948317795371062613856065928110748780204744533946687840582328308436825234982878787872310438012758432652887593289055971390870948934329187893635875230950319724149433114780268151432864570907339900064646030459459193217549054705331778036306110802383790413261021706542397776828673948955234340911459098032180074217482663080331094320351022449765405874305268721871751194126218249640705330581976057803075872413989529192593446488328642132208951197285705808517291260809700897099588738088426128194756274681444265890817019397069511420115890096932921263505587869141442250711178957641260682120364973158815585061608863608760914541064935839738204605497699126066486974172746045562007307799702585100042720721119043832265993412558525421874103154732225960508903710990512434637828463484517290339609407754596635713245910096175676302902348050460563679641700962115939272348472315463593430594204787839165445590722304172140218548572929634729920690259418299343356328337461915893109936665149027063145534637819213291049536491616796863368662028092059092817716963601643203871763611018915264744243719685340243414104096601517523306310100542766017299959240798605265798181703543837224418970867749115571413959050458707124131886615996672031061178678423881754290008173067900077007691033159476847127480514574501241696094212206856387171920333447701431277835842830361255866972279922760055302379575476687610816995326968077992105624219871377642748393459340077056485682473456437429289628673243007132756972117828634286318030784608054389670312256520481572655059017359031806561866576369790133410038804810042691853738828839376414093037236973888255993801530160276509389522256254865820311082966387184788979192572735164865299482121112858223778520755257947041116516709830106738863680206503235122142256662902083851849739796921945974039967225929357008422321654449433810169404400146421727043690372530884977296761608382679528932724437332333246013059258415325852801854229269755050485123165132011744502006342289757497907418664760905666131360606644004496896969721234901516010316169115391263614115481201917544038429731064806138066724067945384198776309052041818645539885600160580820853034667419992255483814389142688603905130731134020781032205653990667565881183469712473184957421049259820412330069810666026726671169698692523699672571208396075810659906048855065255945374653337081631251973152731509999799454316474480365305254552258583884370365313584891449688761557809865456168794153263334329273263200548073298829269252395654703527415093876485643436347363905600675843429577925331852856286630802604564350605186946639688276836830339113210582713166901053696589484335303439442491749943703289756126911849678667539674575691867396018426595563258669824736263280832601304162200783776396286353566372265824774101874639846091378179702199362466943378756105142309160349673748275321854244734404698672281446219733445690655932260451363167757227697617515295131368522795798950006308664858333835887917085487832614008143431868553643254090059256577569636579451518524322789060466114324563345943833363555570874383776819547935859778320607279089685104637662956117536112987648110058105062857383302149141896917573236407922394003876101877306882080452098706306966501154560897823955897565082189529805373429424123902516132091506835256236064322914635015292687625630883954795867360657404046759760319007515602628699449176991103325491903646219156548965836387852617625447591030404311198331336748963735430503347083786802598857297142357028032030865175777763662667141435845626237203172929182711565847738519149300268114400936179833637598155369213119461654115199332979236583635470079853115340443755117269765360636963496074570920891015388454102474218922736775392901525451487617826532699223409345883444360653235695748306747586395982373806239220969791130375009247277674812096148001483698284586688253999225417483124877990984321388805806657528049631693850928166124148420485590436537526055706720886601983714724694885590600234629566807486927644853098894577702525592765513684348179783768031252200620116549962193837682463811428394275757335877570761665688716293017001837015018371039585441795042905179302842629842405220488528768701799286881022341080945003087434323860985202259358393977991699514148065835957707915336042152247757054138158305980517242682030239138996187855331493701001817375994353405179948284660272427138923242066358221373564025556391612460435931444564771617786686621907569941935452102405595785870962624757823742240872307394663742301511563080796212550769818434157522130201316698531153910951708625859211707534683392489847114245785797092997009557774905369344589302196286223294270737091393848809058076360162335885070711650705922090342270276836744047177951856215846423785380948439170215403091696711801448335041535015239857878624824002286350512450978753013336292748956588101355998357666413258418676881994182655877092540928202536575689091692064870164565203135191202308844779214201823238348125819252306290640591388907267004801705023802831075498774359515861095847845820471723204782141935956435230068240829331676949586378324337362921329744857648844572769422318146291690403874078434253998654761860070316378724449687240839325903040724630068839252743783432099978003100739485432559619959130543183380066808421700764717211710808314731304220101787960272769551848693156300003864739585964751270818062020291128101337215048299141598146529659251391347587063710574098462531744517551592982692631301956316327802317254511633752804934947821360965176783054911937170981083493894118411172845296156450433953058077636231039394002147462021382486706561324391289240805508436489450514256223086982701139177583952065947850574696720645565763994890082350616515822556520055579669151613607540596247592653021931538395770377091863536334412864433604192256364114309288138523092785864451792785038620459754236888815096591343013933535047234965132786749615875083439583719620312666983978789711663221128675959752925742103835799650996316027872506722612147074920282549401618272791680490582871521562264999860631095099917198795515037916354441215833577121665893514706355767077417745596504672346945444524877845827146498403990588973720719033607824291423543920061436960431765997437993284717830226778013327782169230146694267987382059428266191293591555024153465985971626643880788644806205027968290445532482201884727822601428802407661448569722237100049406235067431612274171114202159221157017426965220879588473073503337778684363090046603224555183258031040673635343221531325637195333564631541286439360189218973534629125332333389112203579331345521202437639041302920016518888923233440353193336743415268776177611117470226620554021693834770359186456374327614850160973606942232708930860722587503955621337020952852735317797731572447688268710501885838486303984739014431021463616448387936481069215613600358072147241946390307629962169121096320297878988358402117215281543006237161225328515980224643399157044372202464484053930451873942975393879588182581577817189339120338580583359144752382433845995993656299864217873554151433131337773324135343945809545978778488642988655869053115554377129586633595495592066866857769462869243414197437184868229080385250175062079643000612311914676501956972955333436564362693874714687171405244092288072481970997001029853721090647620266519015108944919215938056824042653681861982156126999457275648679946421579928782912908324577029090939431238334788341536534188840835214965839737824833257850121094767525370725809284199339065677110460429888446881112693501571242807705299641260875618224627755980596803038251962927663387009988653077062054296588416469634559163346283564227567391457178158236031197613064851001015750483303015477030249124853541041286723614030603109834943042506728575608915140967276243590336456430749154247425405915084577324843763421680820285207259555795894167592312949853857103982731575146959282977336649264887398210472112776254603086831856629752878771442438501899141792823091662196864474085495401585737502962855267428737264805272024411634342554429170057163180392424227621093184018957954206048353193616225373538142953143078525330814781204557815557152399325952147879562217843339710176201734575003437504662013304241446215111486995042668555217191018526234214092187859669436322755512965099328462471669470803189683634002974667370176447342755272621317185968334475136868181327611495065964436630031955609487562978955322574571495669014372876870647816332793905427614474932536237197419267005776690268626642562608898998201205793492659281260255085436402902692112150907259196852497343508371831558103437673193681937653670671727496921085918330882405893462547679710062686029515817745583011579370282473139114738620407625574173801490350685606125979679306329435540942938004181564000707613007592679331126110428433774770666950669371783131556775535361614517769807143606628226967203588742614294540517539002302946956999832630045124204704504552732838619833178152000382490484779421179267839858265095500237302076331124516009915075500760196434582483775703043616515373336434590775063947987536945671873303716663972535500834315915189219847902921970050129433994957067115048407939945012025656817976559611448112092993310591122503478599214283562252485038800289835341904940071177193112113071796240936287801307587845366869961413548627100360075079395430673270373617467264671721232945678950727566959774562808512023047707050511720851342293534279564975348578443357420600289295264160731901434758511412035691017519931942427221027338912953579533172439041959283374152254685107442774831487892636916085780793030535901406016219268253026530980745950067863032559662050487409317534847754301669740992582330180697593232856742621359677608547525780560539688000324430900042515501906037944998329384522992693628959826783586242809522988113301727002320072420881511372573211035368558221270247846535599307474706782765425917991843911541150220829330774925895029484299602267770932398160333191821168059497865809107723426864857072623851762486916630568744061351067092864733162746442251238036876847035189120513202399915874361043962271238322578152944039020353602093373919114998818805250687333721092700762331073588852764144890028861247685422986474207787587453955842417710142127152203980142699015880662857098805717066939066190690383973744015310793203977127476696600523505433373819229897671421449191743971648926305292749081158885580695873160617849459169133502018099285506792887259846588967995360669220761985410745686289667688437773502757154177569375930817523727479531539411267961903504965162457589722393262539168621561045892261122899944954455318631502649732988896794420768215610594072840246013924555076310963485344454161951265555540015626728930134172547426109126108152094686625629036168573730461126208076495932281547054483037750351134769884801902594830331581862006088707801848170842616476834048247363351285117091096221057319095022686860660909831834740735042992839374286156863332360438208709426076396489330028340910536692021310222119696836586727456015312977651715118364953230467022544193235292867390164358730470744812443125270341579722427206708979721174632563485899690717655498649346132690381201051279865425221457309781322820836570760738005036756131503655516426786843724169065556251727983490617586963176230322966964596607698571117955334410708261550394340827074396198879351362723743908790745481408318621665167417497176686421087527483742302347712720286718969147094306763695325528555079798156327995736387237054133521911188188191599781456123085370483605848991472312204053967727196304170880802172397612590633739476473422620764308675055604607205388904691036677570970790897052137232211364647613402318306126069403912027989794840009811640692879502511474420171550097892534300160338997414005926068207262097388106093629609922585516606618458710117305004098291135184453639260481381371534001157272765883049804039150408781218283677927444390874057909142430904986972548955699999768550735278428659295551493790607403756304909519141046227951388357647740363620055497029037582110440642710062869021858425083473114009507313351744322957070822914096122582435288468079416766437490094945840252865426499547506466764070542399135151576351916449183295871572574296111393530457297069006495773680320186575616912350882960932407899264876332693339845231382780951541981888481281781276980011988547422562795179926471949894083862026973552285590081221681950794700179590318230358113124919246751304513845069324527594125700757755217145148593380395845129397323242455180210053079393076308399839282017867498278506895020326619567676950077938477596570392482836071326157110650383330600532302659529812441324250669466341348794019470621704071927947340343427384149500351973275253742107672828932785183832405252019467836195537572534087278391800366522884881570515918190763359420211230589082897207364951907196256708594114821675009704233902205320679344091557533430814129046856162359172291325766003733393293835931917450004788738816071115551176840090429213374018113833990248372722764221155564404831519641414516494539426700179213078689039546245962434721063341383489835523068374211130211061371331910442851680939568036325071180191287764330492163982088985612521367624319840904379408014023166223151966332525367850033908059212172868844271245226003621108690306593308404466920274147154799039833840866948063894385333039919684528255201538798518536200180578581791278828884915960592642698589540339892405524209659430462220769068158604852539567432545256721574589173970389586151359563141552859335901129536939938979021124706057799005303078615364306385828704519558199149130254083633131592227787445287047987270685460040269075825835941985842511475110246975511475100702670977280638022316749886705632739884537494120098848264560772163743307229825239418188097188470383113082069225342511606094543192412715187603626382682219841244582311839750650006298312703648811238880989616787302539833068413331499008653992460130428059188080109002770124236001761723653854106333681768304871076376282785015393524713944771590854275741988115522813403084694671110438271145488691198062910737063952790387412442199261886909178111327270722680396369055278194559260642510318949796098240696911807139479494113434045272878172186216113643122817817114641037980336072067287260075834986892091579882289282200398006185130039181309743852312887170515550907015535575802425298267212123294646463544472303175846425266097743433148213486838191411389484140844221405070951729065212872528011487024317183137813685589049122553118054488118794887400700810829093329887968613198200907471635698292606090322509165261050863000872315880775433824220594393074100087207402442925164544670649816081495817041806471860139650408822922711413321048681127428768071914016721275852741009043107229199025582213730670521286915501014843247697949640574618473793771251773121221878740177397963102075489569120997747012128245360984293099779402282655208637059215715344876545278262414877879605111417706422078142855845846465569633140123179850346811230317559039243217548230256502304536755927532045559156546315874793838548746064221640994684717026456327955626062860212218902909027332534031748587685080309884180854809318059235554566830423354073212547378663948168675807247594157568767992352855971096247753735784978353813408522439700426075855685772484336519195031460143740365410632067557551647075866650939469733302608384524242620582247510034556174843572487429988063677811041798252663172650524076604719907621761042145459278301313719450249081059181377208086016170512698547249091962410449709256525517866736601016845945664452059094551179241832779872846506395574870652733027193203505389063047543617864388839929228895179939828726590454311416259810242014694535109537683447326179822728009500931967455351323373348932762797414824498286334119070741396339042300567130833374969755707114366686571962587401232606674557948093635363811792271942909369156300218972765091813164970143772648616781228324340281150053301111736313855858785372685847040310954106565567162722983161297620739006117448879482884850881925054030897003425289698979449635932553749925801254540679479443276702672902121099548437697928298894341933563828775765484398068724045212662961014583481924230663397834737516774912497027128441222369721542076535032999372365168820876857049583002004007802778047019845102154543407272316663289014803610900743046044196904984594628606304205404302702958743005633858786114400956088549020840458994447946566008868247453788927580349324432039968752789158241629799950877198859687493845164247462110101850222605585129730069675704818658480621342984344612686258743745206630741603373617697338711052498336964375233831119199687223586400453245701760579376370958606242078744701128564722962134482036724256829521468447493369284277955831282114014096597674040832901159438314885600381728770042042647731890685545118846421868858750727274929104631789558264769835592157224620408173122652906394382116852398416539484347780618834348949041736822743617543086311338496165055973475496727326928619136308086876548060998434481604408154456017587584413144775012051029417173912399038688384684836804647271806504048282428680122370761992811488384318396099856384579516937999145424465986926614582772641371711901375713705892019929287843450162319928142565932571697909063669759796655877965616839836409216964477733355655413787811937736646228341968390014553372078483211164730725968135546954559885771877116755030366001543544295483308259552771078000183657980963551924472126223191092348515234300014997996630084499049587581779153306500197542990218830253151365016933641225099050478985724176728382656410166465436371745690080291165693365534335353633131973760292715710934038706121245986223933472195350213219228284375009213932717023077028718097460501372211342861045585248929230757198025476058788335132601092696781694885621452113034190719561237118114519633340298718566606841301175467544197897573193642847029648514895951212123452315992751892682280612298943814983822551496402305433599161938899244651591794636474666431252876786884567170755414680990022981023755787793928992819985146657754927510063163308515165806111459114867818370866102312651638689323522458605852349154271670528518449450282723132941531210755024054638638993183453146901101996816041634558651769359993096035866123936418651933371763977400754389038908199381820186981364220768777215062319486496999431820218765735259367635537424122963136429383517351601248194266346415732434699072412002043291221691385170084812745846958293047076256867344741950630549379168872540759734198178419403255554592988041336369701385940688723159215713335465021960109920039586501072419534111442691701924902011188038056358079210411416959527132249847476034577772620037273724335946986570794980057136122821078004376589939385040404024574416426182205451274782965032547067452190452859953672135187886026976628190901030955826814940486561255983869937514106613746281611682830234710019965842555213318092568641374707341765619996619825206646998741719885774662270157275066644402533615266149780683961931427687882271150002365270949948374738126066377184496451281240971792490727594297652349918599000569748238974923673930751965047631259719181675408900949013885459825721268195729599155366298055637407597488657025467719284111115396835466043186998016116962493020242312261423687768267981280059864992597558607707775778721261194088754549083355843928735863585584051377750097366295520129463445917038426415138810861593925498475833631481438453403038969144309048241062267622185499715879306209694684154957250034982836974288221051457524569069370033620894901588628815141224968698074723369975215024412523803762360095642077689593959898600459698882778880623362792728253228791167688568401582931751052293598848828454954647503996051036919576202147791890557332819138936641665401902916569529830266817126108492237804803329876065946542599158897100456319570804957828627577678628718218871930716575143774961676879867584658308807462574806215096419704050456085195001753003576234839992304448887059027285908621191921976853161891209026112570660861540583849391910726489838663114553993553054204085566427659878799456783858427182764830936135454428443431814923612006793870511065356139675655712925906505984595311742498224933753652011961969500145256152490461281058823049767639819518533852676301840492853731435853702573012428414129681670192160182449001368533105569778147845703757231001527352389262891350171851892689413006418377119910974979273610887529890880071868878749967866890733761003872850700751774675051042272579895881838021823024959677054839460489968102757947399116200090609771836973571640694633612326700209689661244855159298532959985826808698024009042071915519420889741565350773879986022243934286200077246586910083322117977358908242019193895761422906296151771107746622562136965723780263402411245643911610146128947202730735460950973093079816669868895807891160239468502952905043920070580669564899513050323906154391199493739162684124714837080430528146880534563634358830085465726219640728675466347396636129365912950955568409518625332243851011025297318357726697521856586749171527247326374104502791549405038092357549023443622477211505817268883502812203295215613553778736803725568801657142367564502176877956274078087974190704019650941602815129337701310710077937179893285160363486004028679892866531063902351479858762634067646411731591486929503029693730701939546036882169214939519590444297718885683358567331743055811730672868076628434631990297168505855546238936005877615834333546215166727780188455795269438915279878596764528146861386400904825812769193637157901341338941271576010865992063084789640425698818791997279501834307081124525274455875112485829573333954765081846885504040304439114024687472324094902784543602621112119191102792481335728865287975414249788288327715444051743411313190667370930033486172485839375389241810991247234063480362748563854528664464314532935883568249748333900642146851101504350965947692110045276533703779864818927523273284495825491012428704544871692555294467504554096176787361480787833355873432546356261172461708495169209528441698523798464731479818579722309016467394945757307787896609689525643016682550516664545359719036797327863541770069101685407747763801455311172809346640255872586470245057499320189390563014262521640528617438072399121652276819801966345777072838276225796006969716188404107911707424149814254179744171039262455830886876621082298827288076455704524246291773102838519081538445746043919582417547275591834352078566185914284802697622870947127318435170098200850619604093584275612710244689044132242022010411038891605099421128254329541446645523196076935065598515848516542119538622251715324306932619148476977050577927223968177323477708684233836549348039303733185280884078145239655041024116175100186103827117951780343143218224259334113668307387293866003523682100540511430243709461306644877907356899579034975525133549858010035887269659298754463456065445224217227819916757152679628669223557442065368344751203122548883063104281214743025665061524959240970647686237364242656522163883822344851873651242849012608877468855707785392873707919955324864698338975431337112778297610932590598050028051127153986301449563489155594710527533475698138562077454681407922809821592710013700576393023685119954597622663641153408669327318863925177081842657712168820300646618031354879130062820473115888591700974977509287836340225674774206433035431501123302839310001364674871814383988561949321519764519315928568595492067662999743522978490202033428072156029594540434089598763426857954431988226280744666307345859215589786921785359681682628282154012873242389484496275223003281191942112598313168698731457432581967906771012482249441985295414807259290277841042673190250176450955502925721924409140756622170056512993409828490545491800175531180467195634764927665396597456220282304641304991576547873800872472298883854918211168710311976440264376185466616630356837886906621895882269067443732389792955466715552613343011399355747716748196077862077134482176290499981501595717537803508506789804729069189851537212328510118279734197994943397299856419340505150138753742295780826322322974410921453218483913662401724059023577471600973036753603664684873051145414925103403990446321266031588601173532046424819212090597429991882046615775246050367052381573392114245292783575557240409903083415913489143353288341230022793954672923136585181298550262655799545665662621918430888864596519736002033376293984410736519329252652080175574935862949061553306134074962706654195016463304987916916187237732115941602183940952326063212239305272525943493310416675715603196759338774055217517444213109775658159014065578280158493514690926179834445836791961620634521923222215457215891955722093523495150525582819882661712470573890982385534968144642573379534323010027380082606408894199045167479012833533999557143941358379417047704133791339174880272806525812833235986112341055383656355064907585537979869571883040263245949007896218521242861123959998727779045501964050837987259433460174649391596315999317561136845485835115621541457095670126354328866460329007994726132053109240488134373712336241500913266103384809169877778624430619041950035836727162904728038785603548847381719747728653743626327352875601367671273767090097867455223270214768799870432061037500755947479730111339018082774921726394173657212785575380058107721740810969809236933358905505268729509527750110393814581035253191478365364293976950158100883522260072603766551970847334971628401539331618159549713402729795071949581985577933421672659015378655242029700770622619242690025582947222206024231470552681160653604454931946232311283145857402378864204215693162944993068152632336392496611173449712223183149666232310085736220223844227973459822017407927193372474850163741467228567734596325942938093660657375097997312080816381542995809702229327977184622452136149230318444270164174420086403597748718050953360318448624085399718222835953941390169820350292263615557605072193509203506514704444362137776860684240130693777683346357826584801090810991029103877787635261944382784078883991027210058671436785271122749007284462837430657853066472593486408734907732017129192604063761757438560395367348873530642316391085464251479903049228853222186708802415782552360909811920743357874538379346431991121319472235879802524943452850674501323234578533075376448412329779770060728553744386042545294814174719070699463586379345268648120797385006793234226653753661448273671068511827548717501291281824112622445736228118618701117502942592496368335611218007664333087366896090878789995756921875676598603578091723940199102914977136213726271835660703772466147034469964363547551544801671405079627946048828467912595001653169948001843572642044011890837226325391791843690034703224007901621667216020217615299029902192087746140429639710982678527880886037990290770807152482335706559565918127243206802634942079662207361649786611408409820926631301500372392638249218319436762323586321058610430754506710405783517462110348683942449601111862941890154802640160068570209159806245149159190410899727729716078732435069537914162033467446028947431796492024430868427425255529223432958068087951486723042540124782417346846137938099073067850583299083898778741067775530986656867018156618201891493622445628383679721907476061759878502824296404038552210867880252912209268578463841054889005966208643029619340656511612634026070853241887369430106857964253081043619619141041899850703478016095324821018425359679328695054683856632196247233466493080316046360098569917082246349259069801290728462727962501930962494048043118556802598862927399357750283099622184612153295510836426991304222667048144139298049268773460146839156145547227820009273889134687275727146942749040655262566617991298090963507999212134990223212253880655422959386963398189575464006721971986435852343861305251744288159082161422316003111643235104058466010658705679284067494045315540824838120845457741738759608832060717780726103506053587647583776348205689872476561534465892129080778699239974896875767905362803144293486793137252996965001080673751838134180873374745465828225601593500083514218756293771444859408140980713428313808947662519406627834314154609290426223431512684052936176475353979175632645909526240772492712942950573803658796143607147241672945983796728801117614877552210112184478094762397992662015807140467208162850823665017876870205536534840345588544245056744782555628951187093582645109004755647153531732030465507146568264744713911814330304699892001929419901848566917122558044639267541581686974948394244728736768100444114889292221177536649523085170222535478751683498615161461175485467800485208842319861324812790936263381603809381213094136167349869416284895280374419983325089328032966307826837847944011336173664111985320725893567163628748458302406655374886630005814693906061433469655628664844800152265261664059584894483922816629867438119996986020846070731070562542738286436810593004494516932855622883158229354293450654959515562627270277324997903171845645622771989606932922553490245573730527154449983267067450118796610751414392572778990497854226892455943241812780979115893335333267318234612851845863042392385531058041909330168725151050292546579019362113238827293437194907793934373159860286492252061666369452979382269678826233009327918638919635379727471753440644479181341820520051981383889763113888834929328864509015649960772675313781358393682460689741869935537868074330035283711247654081422446633952951246224385231572402690074880227053973290062757395655366265153994170614860970597240036964743581349253156439164957654819080611814255674906096003915248740430830180568987845046718584610419005627212034419443984447844601921707221788045882126645532000070627382587358884869147112539410286414152705590071460693469008645096653572267715612696997173774516312754393876453105526993182566886123701162483412622364690564376376464961130858594134730162718419604920023915583287336825876774409335959711696938868844990048367732756101085973964748106476707131122047753139811870007479589456989710666106630462831727653169769066133200836348060276200506052482930269941894748845895765504046981723610495943638388660296538788816325649987335615016101982588284545679097214133828897068988862170680113657592043466909855711721939405982505944768995017839992637899053266485645801638825119177479246993380234909454886960144190920564504190268518279392751642332376940477479323395943387315381369861660972165316077855877347990985079774476399843260078999199038570974316192275754063602054382116526071719096924061503979263151962745042716149489121999020011119727829607844363602304456065327442026335561279078564501492545334410740037643826961328670369514668364063996060313500058339189818101437343146558587806982017992844184670024317621443240278473332746775055210466132481880441338652035316737148440185302022838711935556421962097453910853392828770328782740689133902712868629992189633907439096721953982324579624594377734489675408450899249304868335950662860153782970044534330174581827181714494499310842034046433651336409793077809569607846347126236840484420334074870079731824085504235151720125508599589687633045177838722926730253649407216762603141599487777678773249698922941741901930503738404926801999117713824946475636441786816640828881042065203082552726145585171323134987246089684927310810183194527427731107235924291022386288690036709208223944045881430438848437311899169197517015117562226455843822513871030156425288154611645133248887429659810861515690197010449503976036946090806136708734664111337200500499521365147006205749943472071550875061403892871275536943640593942138223400609200304798833399781447122035945944814373284055947164838752173989250965445022973608071740819341787961351111782157982429714512164143797553049406069820053583036407848487950912503968692084922130559816893828652170026107113377869846087835245635583578406158197938715894241828274318658565589172259943941223530998967987825917146142292976765492616581855738423080597839643191205373262796313261185881508304284674837073155401054736811366860445656977517919559194371502688972246187528310988501053546931474147917708378781496938297371553338342519440800937071772793361336924931138773777878282555812925967456050493538288588534766537820216388286758556047864194317579652077843841513924571711306881468457204163745419703141901124006875091356146516449100646546477630800606147809631322040204079309468029745802165188990613804388485496552264820258824553789723769117538551118451207983050399173563678741466462009597505894417467364833184594665322033008695255007839757266702454740929468999525349899710632794849299597068816809601264033888590860188815350144457741635884823371823292772366570235839572307819128265968754648026625071616939280881155397246988921738716115479263068383452959631524377547054703604786933238773511542629230661873348051430620857608565252907152930067858850165072629114544937748968713359327769296028253125171061414501936514651258146053554324471592780783190367393065944820286011254679257781020741554510740434194287534935713345430161984336885862024851791780895652233714834815228584340784292046278511354840028155206089206992120891045027604144194340246078796495663890474255704667801372962073617744606877488133769277763577094317822521650822560901566225416091927849719988518054863690081806170610826045214037023350718852275932756793590600795855812382061499897093217688555355621111480659916242887724846571491805842120467788307868770899395520837995615360932970672831647157659437573524288925025279177696641692115224766980891684738779547706479078310017240032645772260714487472541593285066752700524974249772125759484006618170718217867875866537984671723393232363457942251731787269323912673746974575737640527363980584360683911458777473299748999232540134865640969007904374010634195106086690135381330504917635247201467747588822835164312348527898686289632889640532384665919069965964577863850825796055066300628386630834802690449882154627284412108900165939463125609886811316166424404707211259456115838759981543354839968555895166620818945434809397066720495062953614844769337180942959990912062893108962325756056440745507061793478284521502487682392702869603355591653150430086075496728433113177773142636822517632562787940428600876046775097829101052568462187385141972692379290074397133549901770328567194528518037903352919777741418696660126926738682425505029764096567257442547086525886862913945566143724637985925872209211861493864416571830102458670179518532180138993712003786242241393514019820982118822887953653128942013983818074907905481767491657852278303083996970966573600862121847706946098527199907233201101472159625939887445174819378859368680221031150556463463964882992911527520511200395602629117092778260906470686477921941457583064261226094398708019091349740088009727113147840920028509282357905603990277121071844226177980002620470852699318734067840605111318723746837098054343499580174365237129387485727998904784413145352869090033595353232653934364618925297876740067215092322623980548088976881497554723933370595700341005774318401907957543264398140193069250268520183400103929254033379104801269645643495899713275354665430242212384310717077897562948911330088495785784017691748967743049075772641839856208431241067718867309610932288671162114779466072104746491708529243719783357359736998577834038211410283331125900648202033756153302080667545439646171060833244344242130078016833811334487332983879158811710093025933828819709723623780514160772414741169704249121956947887305819679339941562358758886601974482559456251260398886620012573434121580613194496232555084996559756919626170503090217332735009482021901762894923681693656883559420568131277539363177447900200039858627061490626071826745165187927167055843774000791193053858749829853771764389603077721143334747641192962112939767828908023044327124589937421589713573065132265091275481809262840566805526948494566081377884983117734170467637868128247523793748231429017108708503236110327519051701647902860202622020381339917127039480880451550969393145241478568722563760763679765665035657475391172531944465759433849765385355485774227761233766134853327099950620177649760916479071029920044444404478838858081049965801149794142033510690646398227764211791987637295662496640263594159532049736017149571857696841582090520648230489231843645443321271775153349923813524631749822728607471548422630923654050392517157844362266262346796724653963514807395027569049636530856169404885545508490004257521183069768410566187156607920186583984805211017948930416152897168177586749980557040511199841736940178096774491842796497155712923759363910577830923157782181472702982979485194658316312383970103985786560045712996757685638140453944144703901804209680745473923918280406663407545124989449734317760240169450022089622313274271922785875207717762637011681768387532199101230686195799642513038220880129090589790510346523602527466881375866488353950360008434260938248206731614074919090580254057711374247014726108242959846171131747696715694809159167896100832711005045702346209721325971229521363054510095840314188015045113893647183107918912367942036519086856141075618225370388788096283456035167658063284031776208083134881030879616553322991512036719667594831951642552207367591177999761849143333620123225118482051801621416255462595921204928038092464284736306194291962159092297955579122138916927055380455664092685389269956864468285468190663245983097346659762080783508313117389559999729045586391423879521961736287117041097784271250366715658371199768143875507705992798638825565723490991343796386091628189768904219386514915643671523761446795572021289454171666576793703769618688595634450335714151729828596666273541612022350294443021675710755597932146127494505586723897556868799906598679934858065905364791534217413013296616111718479465404255265715113583657468185719842704436458635683237672463967324478227114751908921736914478541579120030729343724356512343135060711944339388748999117075710229172510016721721373703110193042550518963631339826549415073201464489265561857641232053142485242779534090805003278131642129949945358893417850989972101734653405883699289558865714414365483656427532161075298110985546938805735325709392722947517452565038949692791742208967688432418083822625553163444649366163732952038088889129440652242590629078992806152307717492690361132578829672391930260200364229280528520720139008027764721932576712961014948399650362195026148799263547962887606533006799935204157544604072334562821294338266604018368433127464677454588538952428977897316954161767880422573025674835890785970382045600373614266591343121605494126405464082751681508086873535254332800505848961259360977883953626272103821816911242699698456364943329533633834861657352199794018178782055024785024938210524329868854392755436695698741212549470460535491599785756124112277568724337061888905703021470158713834550503911440411437922897131209899779763879598652581327776707450185987388767842417470056797025043925357908849653403485833207770261813285156280401845606353422707687926517865049831015896525148213390284371086905084393765531120042793220491851047074721797901018865582439295121116333904541815064961516563313143493482041303519700410653562830334058373922191978717644694728519863433400515473955219297550777127238039323382802445882309031726248715005154574266443698161540841459554907307528560459003702945458608625385129359802195715236951530371009243206071934378234429866833717813730263059564999823864470404597151605227044175736114325144366326770433177639264238961901955820739068104384140308945527510120491562846746709113265513170484063823533367596167659099538458086656744333604544107429285987243269693150573835948724194428546694316580942769498859171323426597374432442516127620726805365729913097084246675120112107705512353921948315879824482225422738599370683271241849647441165838476002003128315884080134038083297376005887143694796395279462403234643708721325311058141371127928039629731065041767679539500119388548347561847581429443383722007183280836653748348296548706385047033121707441992397452680566159364916849994486513852973860697266053745527947432984170878082841773596858693338084042817845476919744635944193951281588627319644309849089190600902826581556460389579232238974699141697393118631418381034784975041884288738301821212949278954419082476591650446202506882664322331403348857728556603493917063431152184458563405863401477407476202113842531085281784451058801196750351159932951392455442831982307949131744913266843596049045862235895498728265541895407979970290421726023714864213907916662818105594627240294179955466725663446806374492732857922692837763346989225778645236438366028334980003913897222429666662960687180454040703357192719710693846341581952330227092575260352321890574971807403458633578868046299434195200177118128036810601223772873160518784565710709074261078748790141767094065818233768061404560983666880022625764110799171268271703245724136230620436573390263298071116612620667616359771788811491782602728898232123100434998513543508525393884045913429263318523531122249106515523115358088070179235079874067767777760749549418033143549507346156303710918315015954865654784898471552231194233336746970448026667504362345897911226463631246762191159016979428281755237631501551647622724218370918266277727965144781302402952987047359733069910992800874807707991383025531431143799771761671616468777094270814014654237804875557002277460863459916978096170790647790771604026370833832501383379542903167337938560766847625199238922314198492338639435309636969281487984167462345431561041439733334717637303292006327213294007265139732946680101495317987163418234536143702213247504227944238682908303087110519404451411900830446372839235143441144238156717460871535266021255864080727980561193389066534842825402767798941264608103624288565933338052517403451980085929715303955379978103677899549129882524071693735576298705503091613596622117032822149408598351815757395842064417833452864680297556411383848933129366012855592609562169521363417660993816002271952653716395847534412817344309051847632253267387789261079644542395239636017921110311535464458603348485743825927471874657481590100184969044215459259262864792778188306773214021042652862171913592872443216871251870701398442868635733738339595085301674216910069318785772165949979965000108017539141697084195924302270437594580688850499332231304607273529741434221668667921222819198508516401250784114268988922570491729401159570690861900547350500173065653328404838511427807194367515031862662306693527579440208447465687075761505110923015154941715132696180974648955707187973932335574457392436333721160883953715678681138695652256873747948051726205622240878021863130590729239049179757637054942636978597337608003759390028969325821392040641989677059227345169636677242968703314315487436671415326408337699816738667870448441498417615726653102937360433247361938709613278563428166838698228561884396476450441052245795078876133248677243113151134340924819293539183824420538293668807406279978261054759971355679330594129715669398149252508620652400394371501685465788502723684160349915863522264367718651688607153502595108418267298516054592721915137186841477145536015176356680568402984359785310455518476185290406367856296807160377774248569655699947832324115071427088483729952655631568433367442513386798529773643342028732609294178583828099405159132079349708448409499242713417163822089710016560885174817315954238229164810064242105723805593227123974261201350815647701431877291233068925166058015886827190197554153934663113614895300087730625312800252938808093908849327709192785708898221812528596900743786766992403957671987826257628649595810785976211005377811496727637120712937236752816270586886927539796404165098395939830457281191580340842344453606167719488647899033307222703154977138863629378952179325440238465802174729304322249979781155682564750425651157439910527258096021668862122132608847020368976940387036936199251477135168784722088129654330914185276878893288601857369847552142389604630259021675840156880056208733792285524208212745064645044772648252369338369765161686639021206268761401954949037559442907058640242423573063812434686580009537297937948099945643599340407083678886203723828197679432760309298624191132392527788922402872069432342740405756177433586606283903928007141488711539942291214012766490328888447794131516521822816476992215487430268502434963790516143979576565335989008652594788318003340765175404281643277500501909059809000365751038254557604084664132801449030453870514199130921908287879676105177097322458867723964116645344650689410231411645614716332313953640376318870096864122812627248640079749620561354179060553014680917927930921981929354282223877994084255116792233357526936638961372352763989385882709617889250671101462329927805815366012103546350765800179398742178369386823253486164200649032922945653593183569805089827875754080092747425440438275406413654972086982870799516357946515456237630387103247742037308113147877026543073935966264504226019049190252789384712503855264197161731567433796918794728230286398309385407567619423254574663280374550604788880736779743463886602918812186060969327423381449379821281192521628762687059189070451484660355342789102811655938128451209912452507527177476114245703012311042217866285026151229107487245690679085417442592555369814135101114493680192916892670859896200284173429512598680322930477041422292675128171031126914792757368374376861804039504640079492240003265313304067668809030548988189007964203950279974181888674556194400497687397118893409912548160700653831278880615045251926736580634463799989244409078629286034564917232184308092565558467437154492635440140861414502920583440337245208912945255996935775177720815411526731647546939949525049821738784612363827546122229255470102371106660059563658352446303720417131193969296540646826592058627201913316962678604083269160407920841507594603938551141337633518124749410770795510934496658103506117891219588786785014241730039293550274216098528345037081870563946480260566029095073615232244329940711204240618993514880551813560737437678114400622975331724125353328847957730420101544021701291866787456490595519702992837556102077481176030925498899943817438474164266618911689062616265695913205254077443930795626145131822116224157961657914452724590471750882024765930514283467688114686347584796433927452685826306228615399333058817653576271939649575052032201427634120669231618119227096366400675652500664604395501663148098212131159674612422709897145610886780604003225560886447180568995473258180679877843469308234595508347949483222924383972275919269974914531296392209586320631287040912726267149743971630139997447056026908084595774106892353593150411371689312138843992502375279547833662374789474841284523188891796239424140264264627650602483426116878770824086679855680905601089069848195120741125550201529489776443249093067908430059733840323557590942804431166785270813530236234670001755629910454968407288452854832032228799120032139679541331484279627303887377636436880606680254156886965094690063229032381846743395281564255854823629471962277163844186725327243963324274906864003842442979512162314182455574746401926879163773149743603412649530372234609594720875571117456464616650735579503198887556269536949584928501920607195946552512954838182164333061174900382720557789321265228782240776969228584824885291075320165578816677039197186160727933982776295830841306289823207024731158341243543921354558975230602258124102505282087751476482405067365722054936121414382855178940191838088364926906703318727745513450373478747017492678818868928733357501591353477956311222230742563868802819982712399160282817378509133129554472961738190051795011955688823920758748590440179034811098378900354316743352646493060760472479173795424415796596785473157896419713753955930595202992966113331787357294882507397824267907396566632896116740106596248875128651829320519975474268948153922168578790753813971726200832334098646985289419980070558868073993327889731022666583694569668334226050875631814721404468242698125157509673624945844843446288398113448586784505514233184449436057712935699995868210347896007588311480734049811330094491808017294503384400609930460567804869213669182131255697044231973573406086745833823270043389829686408975255495223627057919042849737724036289783105104424098893260186104121792041875149397899931454613589541640494073150745838684596108415248829969216739557158145066823141975066748859281101292853065487540810685627315858892116170643171945137876506590201556480722726856943327649855922251670864147494496185485216101403955299764831093421999518535470301429668837131707766417916313363146973178970287718344377502519174780470861172510592687720692794063346737253935054456862692047059810814080917152893109512992805739975608670032557452296348473235174950194614656923924283615190863796800789506690379482903804258322931598229058035036266281975843923178440526794451179727274517557779209246393934837963950583547004095014121921962332689218834756523869314804708778241221225335119216253915248623470617784018630416133905522057675284172860715165768158087595133344847259767566764280547889115191231822563112579078192817548949150859604332728464243723487517578360863514909554237381689777194417486083296217403136432607234087983244649254397415764610760508106470436044287871289296035924879880718965384301408524375417772607797996688858776255476220329773391028828068738555778165249761567728368649009630229143075374183344731042924182684488460983967412075265224497767415527138057769293744197110916345586835477077245069706821296543334365693961237562569973604759187387058134001000381942655688179410201502828764711003955407073063803186891898595091100992044754491789557453376368628698072470753087004147680024738430217685630205991581495790761789393194544888360848757926392696154737451321976499317027150596161982890115588368715298941662925955084754511291052004264495687060269323475456543746333035921406864515840494475658732479825125505211493220202153186053051073323569205144920183965954683998729038660582631776198520825353473845548304937086065067720074592841827915828585366082417476122780495336945467593834987694561972773272722365031503738128646899780276720555524177683445791832375770389893641037855514454853495328861047805513163524904954335878983586375574372182222081038045541895072647791359718644775283819504283834644919802027517676104258003705316920223959449561636247979458724308054215243355625667434515683131968726786106541975138710718437598063912313704912737657902581294475428572365628493660107342748023271250430680384557749191107470103309655401776212865495439236045676980945563652515064312362983933815121523755411705394144322928125331916022385120945075535321418648296744365441115154059635637851069773992326669187180464239430944027803405002710810120422531901385002218784402865020179307966049280578256200266231142850017905482222049747549164844219787999976562627153299628368329585562127108511233059769602589725129314136975487648097976830521081951646120363590602405425332592740384567161848686108602178764587824220826878691715003765021037213229342872906933195735080993970877269264483001089032782282063042861768335148993832144923726944671936538422781775593550287973927127586022451613389275267986327993960604747538473989295280844708615392913448737344081986783872885322075769138194587852680973843103633088055847105640150795143374182898297971407255423613417354005226989183664289218992706312990972174157343293360876477248817786402239531547407540569187267386989051548089909263026217898465711587119539574192389261389176665038520527921127895307593873524877042701190707026527874050072511210686120095959615869978253595845334278292207979152961916627927007424701007894227256594599495845490518788296632129993414511501102770976386803349015756857678707552332397208085467212965715622051096584643221490445380490047437265171248429608890652483418998822604612936123858389021953485730679113783724655971132407255128081804789910922016466123325334802480084133077912247503631826034976935776607650363966804401702334329684883978277404819477308264766473460024833209573086374031517027401653209111845765549292789193441075567689777662147401410811202053443829362354218573644326988394887953189819458650676441476880489565620857680387568221256293159238389927448842483374099669715396210307163586026323596454032676344790684096069835200360905872875805404636941971474620128121866405749032967131073226645180941928445814938182743632007157016566928393529960085217536776750516796011828370414107184279652389801855085658432770947775670238086696825773939736482511074508919711478904901610897393557090701088687684154992631573040497786984457512142983664322877466820855436055315565015003398283330950400279462540668551585559806635657642173873209795794045714186781993565694016152185955498484703058077580829765214375574930543503373934071902710782930273435285547499500603442080021210362421544782700231736060082390742626711613215060996574665424014984716562463978622891460853283462062555533604660738950416340705421459233653814012758608826237868805925528176406413685912794707166688919454105300243118472181538533806429419480484439726748395184990705056256525177028504284578522669383680705288577565497487648659861933480707252827535460101275597320443287991996634147586051964371478465834365895153957808505833228022648104977023726235647403177677285679224785881185938284587695652570622656630988885606674440597747890614414919888914214169062103497773502978930693234280591334220600205797053790380119696568294206356052721428510118787882009046778649971890589306918025154076119868952101308262156900154359378908361028775536334946581003660846541882632213524627443416849268828263518295365312646609033634420355307782563890040781647238679175892499617085011648643322297126535217247664672936950771263782410756072075812567254497299479332854797367409515269027513174658066326447367265935136498179387722170840152747061739087360893917173407079667407713179950516521233688437262857203675876621933321103673150893254862826200885525560366889159658053024905165916765078596707653732391835255491525963311873440361449156272888927297913751988672577143334889313203957005648831775187778891229489721796989865109010645378357371168615923566840760972892584595485286656770897283608632841611128238658487737106715327754140853066446627958897209487197977163063764924087921035024040700357586668218790688123025648586563423908204074026685746204715590037705985657922730847521836581955855246706401692983846806837699177871794876321008995784645210660455591019769386168452280006859647190283636782327012509105406177372569595690353246732852132242572989517593085578773957493519403675831602918520712983617085487410700342403981620109450870724422999527191722489174357247520979421404199884686059620006337895560588077104452139229317319328799010614502519477449146236065486282782630062739710018444269995088007938573372316235738363938627155109117613391716618631006938009586080291897229406192052076028767696221532465724471997455183870277163864018098181984798727963397028806090309512849928608929758272794269611439955537888752286214913665864711791122137635280232259520830070850648397876265862951473639530125429036100330917247183900269148472058067751635525652571831222285288663979374397198210323149124280624677356655609818980435978623811911137440792404918820994732773678083747081340300120558083528504853090636639428948613246430706589975983267279909161605716822133644434053274878141158160267056571049743812471492158536590412900064895778681086376726398587649316480993935256138293774811140267567917948266653509575158195743337651788212410529458260335687464193498553674245740858670997002644243937682316655745393641761736088536110418372169970881606396000831309681941371676404981748659608093889710905797755970531481653358519308455135296508119048324189314141834493553446386340460322450051322012126657433502092666211320971460217354838333013112445849082269976404109804238404395217762561512575409478841962694442396044748803884881510068515577539869490147475347743097670652519999211662258435445466842479521415267423170957702703367046467260393511807338746459104255973301326615537262986167366642217277257583084642650068818878442801773016073610314709704552025782880171618721981085844464806602154567266848542272632804435254968230051686540592554535036590554910189776078892990008590070626129597051653829200580618377679729235754095980375312314872741275338490763969596718540611574267206146248513712978898688747590193250543282349147258027647667069423446703390439858084798783465708138080825488276208198759255647798376854694703023262824431159087050137296416644558045152798296286528674282624936087237263602164645122735898898924447892509381425941703457593295312444583581730814174528782373747368368683396897990650533765868365232031608874781917142554204284902915658869512873990977476005092657203295888963226080311934003240141756593231880675683449373423560393163530342355090996586430717722299871525469892947101119460559799550954127036880421757263358224962108571281547495842550633616159137533301523540921317876543366540301306085042633409092690701110274440300601883036912526039936528551298262703803257727414716651944008465986712206496641485033700192940095415537782333865198390136580791243490845245879559833612760886130225748853857498006855075024297894933695081586212622925813416364321247367879258632971521042776805719532921065720096578709456119427839411886520477514091876400027066257740267625180085387603808522958906388929660643451151820049102985813917893220191393089164780701925853894067057412742293216343399519316190339244289006738904556481690654225596271227248630495195659919037671865489175512224992456937098236552291826600394591816231598593051823807845001221994942798262066419730221758947025594831830029119078855832034548613923510663847629387265331898103324887517084235580143946531702204021866223348670742348988076360272609013377069832250687150167941930806932876906011087128300673538578368296310884852744978948054491778173051538614833642556969850569354783191983505446832438392561851782758152470482056116340262094922971667044501533079706556667571807680280291961062977712428603441270898131914720086238999889927678308697718666748760121313978470874655370123940554344781240832268531196858178013386517251598857846422260345154040931158459089976895672366156901987620928766501112210435838900579513091821680504575301878575201784582073111389986611993621730946748468673526272975218286397601916622579949064768993231860634005124040188066855069889382847153488614863940819983739359713607664971450706512898395523842378898072800342528122031144986617061425515704659523497567087547018349233945872915388218129096443766495249270407016252262998125823026155215385915855637696553699392502625683270879999089771629238258859607103835346187998969704528722704438046270663386529084656277546147844790647804574291306574572973194434539954361835581039121554995873486788396730810330368700535117442970544848002558134870594748009348624215038848940445762597974225847026885854182502312493762908479826197599620900621502639551965052273297701888727736977789109670000240501839293495928431504379819471014905811101442130434223073767556835194779289504187124998141320249848420823825785788871734790438534873313617926443149052324437538946959730777190075201221097178480937084260819068709427697719946697738308056698022096998268384955863150909546397566878844836716827682760957821596060813124999655224453458700103273211895564390905845839087709738388283200424505832528500199722826477318702182890449808710486166386601749246631666823489078071380831166210393247659725036812906182425775128429832318024763080492343766796518513704807932631530888482562783017421330038584090403584876080916309978801642721616504684371356758869264724500588826327855918084199258663051514905745040740034039535223095585698123221540304533376921426851611427353869332487792049024468541182250079531969053054325159479388767331115985494870305883145794585665656633416442353790687284500823437617490037359749400493909273839033058360329914805732191345018762696495218353134590865308201392005312514495718258742307150370749915057103448804792811969718439009296470274058892554697661376584386087627365104970293887787314426056848620651824881330835299366592205176227331724378275113947416985962754367266295373427170702025673709352101930344729125764633017595210657728268214585011434735440070745002461517229494984134293090472464020772917611127151691140544080623008742470700205233048533284911548690908132595569657606872440347245906754235155383810397146888599677988784656023340121524570663027507434281059376283459693750085893010325350269798117328541104704266509432767660071603777789297276750236288652692342501431571137890188965258023830538145166583704214126306810930191553049179674077667463152960923056446481179848650451699615031200064931506115637576878463726737441430182201603945830328465125431674824465691441251722496546507808220324477105140269818137474960989574547505949356000030296970978383385260733350008451639740040299315526249865209606401404185089098374217138964778615955664003829113198700552193871525896948723376003052688705533305221695538048668830187975763676274418048289843923084648885191097014009142999925996173930968982596309041027540765732384450474750031455852199662246255237431831226408040573127849494765391715926028779988432836862773873635826262587051340962025200086300008338429399732069491778313763810719517271132437548939039182926199485860680228112530909358353491544417238741429076531996582588764128815256556825794463765140421272567951660191027788599719834172280557384306294794593802016674914535876627067108364045732559049578181121084513441392732739205230363864147459162285728648056456246201527353379263834585124139716867787468671001369907558912314263842247287595866306532220376700488283910077539600159501868293564426149750540729779657962624701502091941816745387615982763152792805849231427074237688947668139094497805533320842549253578443094253528019381854228630812075855550784003963916187893634059696983024702209386367575921374333616458115715178343290862407034742508537466343900039943030437863133050249274938559915767905835041529165251841405198015364873130519801877866833040898118373345897160079619941920067223667244622708845694719126672988321809734529046656877532189097943866158960176281961911644299136895788665835239659665127747099116715074119580451132139778206618876657740859685165289511312253199176239989562288755954364388375693105568014185599502162847749837015874935213642175081105030303326270026600135419195730486116428310802378748213491012530002823024193956813909311288929590100096769254688539010933144288982068077091736623996958544004973858311918147072275472168205633263047169281648349222877277916209172215067274737415833612561385118356373034367236896981681678833870569569479002039033670296565149396661334616610217769348418256218395486241320914324356732954378978444440289921217252650548875720861969465973412027183028210821715014432359550744262750462482301207324123834689445676952494186189821106218262098931644939174590999951331303794542585095148084563437073902030273659930611107609723172608298845678367963359986412102879047834889659329545337941994602310251185224674598223917494625731065675100998851309381735230916403013984917229959636824484077123254853052178419000172133165295924747905609347209014216788382266768103402186319269836516878005495092887757697556835697271230459837941962594176279394398676390489553463546262558134694428998600762980053668345906523226287867394572931189312121839004210785046954384089376130404331939678757081973623255347502666491695483568355959828773643371078433036939516456770550510581679045004373391062400198991771895380696101907054275731404147293580440355895881585415279923716892524585378063273776418812256740770045510664725254762262941227109825721010917373349341640176067989064471868175318321539954621513601054839459441316299426284120407265167325000538126879053255478037545036643309674357215177745063734786991109933545677072312026074840018015350477515969940033109687734822795704709803691568751474807386638900455693574118471851126308702910029988335690032415224553951511149264203905144223089488233215627422393968632671922800185533919493119376311486202709915565327110245187230858017821489091761831278506705567952665123493317475005859237970726649935996973927033555047565207559975581881645088303016441431290147058368306558321440865595939188944954431485038370413067360088279521523033860248579878142842642638599027127869924555577179521649866342105021421458204467798849314833841646019317708346292072568959223652924167216225345746796677266499548074395839376661456513040967743276170716811307097241406085138933053080692989592554795319579021066392551987454505903235202085149931896580630775446429693020382147311160617578936118985870013819823759004903867529060402968050460554096959624742780288801389651983618430121905347708866860847330406974764915426587782933480229300883954248258056705593584187331709316720593584538988207801974937741455816208763624938100732414244651587022246401882721692327497700817215855826098750998349650462215725282520918193183800403101628073375221004195231159101387904863830961331031066080622709818317555520934673736778277605356535407917474627119392206153986632873720448867017868016736767066708997649032250484521961308521579000588698122621015653830752598666052033355794798156994095172787700222911751432559337663738303638606684713720525541076697020286995622136810896046654781463633476205092576956058354686802584874957960414643434387797684381797306179928579865018675269502088742897531045591141490958534295874436051727451282638755336277114133284024244131225027497283007952713130726755518949770993247641017399206176590699618806006036543791544791318589111909268606394650327802065189773293807277963448958452100173607519592230739438693347830322515312579553247221080256995711086690187329896470310438537031868116706029413188552483581538291391656341794165647292706245277401339596797684529231112947904960357852319060992195588171562787275260048842386183973846923868720655314648043530179414872128972950452643472258783477768738755951677001724424381498154941076862830319010991553355775509159250384400606079053023845775453693483857381957533175026023532131376956481444713468069214554994436312607416258823013924227764095158146828084717290656314895926188922991104164878819578985129031773892969551555756990898846850635727096642259284367892202108372628473066594387119307293603159044784655295620189310413349806414012037302584526685325347900961277176439970093573910711721365005173638783485311034918755132868371150515827608899293807749178734969251470197108601563229689921316201677296778505727005751792645063975634378982593802990070376442649445669372046198793348209477983137974489682067911161421221092620340442107106137618970641768966621097074103353028715983977476922883918775425167540642168423029406550589814812925238284039743676625599162240801677930170491572775560548687436061438015335839510309877357264998126424908079901946362268568134441732573231180174989413229124480098600565531140504981835297319570499475481811262979864315395765274596493758077447561044143154188828493317328682062339410592518108958084426307308416460505521656242937232242146214786473931424276429453940679698040187806792672444618297525485163686646171018865281507083333516728503532659007039352300185306185964170010846464366715907254327722718494260769553906423386216250602838324689377641066511863618028631627507530446988733648643216966006645987359309326111112682438165461493667432430304925895123807348210997945680037247250877228109036071483273596928178543690975376959585783068630145860780807945922461089035699186760787008016232409279657233858086765721760036917132669297176028625168864852046434431430219694409814907266459142195495885035878365552615848022017428516754067647800940851039532587674106346764870862981473189138358662408775362378475592634343842272508387925690920898169205035543981719201594252875936665689121562608619041968464514658885372501531524871904015108617323184357094641195023252461792865882555803154403598724714728901490564402868791541566624287557291327618199323643590117827865899931681921251284599934338321805508264832985139476105439354874387843115175038747463584403246690435714062271495613335646416904843630354450769566234288106078192507991737867928065519905040143092261268867482313494998513222831582677747748080026376583116666038295101863993574181077615387638763406722850078844390504176478452200954977920170587949117417518765778885807814549337734159489406125305513036483280290848065272386304916638627909282020330867805046114343559842266953938631837227210095565904692140745042164803379092392805615268375800286789271586850861841662796539505253318854044202782696753167903857383564193992396198043908743657773489613929001064886269682027378345163519254429501294926495485199102274444341402056959803634202360462104201123218197202673607399821244218751093019456183326126018847477867182760372141780393077211543651975067917767039523293368261161872037619861108541791777684335220765469211415875433178650642600782030571065470547982739549421710728332089232301117491517799853913620945484067228199839507258088007216485467294740207920067241315290012583529989627708597560245726110477074341679146784015194145243442882904627043802609960046350259755362369207111760342888942001720969269846691097737966722082414294436000568966558131526870712230222448820157595806098162617698429988272542837318689591305470919788410363734479752739421563221249800041518086311429397588591193117415975903751915068667888609790553102327178956009727794523129444606185120052788492312230395550209521062664571318458249849698162341708975325185716881318150252015874981617622081798184749465076080835909338945067907741095068451312811719248191842196026548966308760324591887245497512564298158228625289417204860472289349925895841484282911427757024887975739147836559012545383754121512166926145930331871470298747783014146907536805961354579442589767545955123876147065677429481723434687486298919786990305454688650620557108467721371173156324158389076488995862555456686030909461342143518781512577897696077783243610306325609343007106288193301052316855523667919473970519347101260239377600819350066874898390553876629551605684800347909033542421637317225739016266775257786364215107983479563406963709300935017494099601209770532804639481831092916330632929475655853931120605049871449239602530346096667465667637094512398363089997199761856946914486979246226191584801699598898525071313356318778038216854515080419360468994546535982735304028605873332819664821699940626503478891259903287141074203334336782890984882561400558800338869470705548006409001288261939639911999453957887487486072077296858769557980046943097103510679266253203782522262840901698458326250491159342407667941354465822436101986484091686803162925363154183968081740316698724289867827051678203189323083709497571933057279432227797716952599684726106265481845398760059869105930267136588424842324043457314073951677397218532625588256633930143090964077764044765392317473867010260882064251482641921013274422719041685578702118269943109609521661546853106095895542976575722535538542750709767872138209861723507972099909271403100049807543900852823367879540633871671248843671927388457146747717367202859702046324506323723365184464001309213362695244623624498919347311248283484609969592594432546038235369469528648085499533595070055672501478548210145009234771288901687145082145858276715155842126123507133503185699088362907307149462513014067940684473918405627082724473804763556211154153127484494839210369205546550100866788322264761610899178486014080846446318549868115714428742432514726463653079201143941493725581907552327392375826992668922752590318114369033025895802858707289026943886721549669705894873161359486852299716018284593193025655666031891674234810858014159248399786931673850224197078936468411999914863040925333280575704311344925872934328604421254787555111146198609624987861187977173635517243518195296002905251938781295151564800604627647060125261906220840958643469204307837930352491523471388319682313630859254580459914456526459914458330885520806827917443559908537454504754680938983923657663300631572454848433106045903017255360509361895725292915577685984723192428926867732532716284167162052551215469973689648669302877915688569903703153942798001249290830172096707035828268631535375245053983497147755428940045388074866758523154252707573755464857646268001594028465017955786671228233781548808063580997299468151248186928918914935611178402795629803459576395430477752698203674944510418694546478067769575842945169265143470432420135479026303012709620456120375724168132214753121283871722695068361380377071697202169014272550751177950972851902897929351768067517517072774206615874503254807122875763082600284940084601060640185724342573867837105060358795150970083174258724773745359624369857717058395759941938621973480930188115802236428357651247840813569700083734201254556759037815966582367928383812015047346276477454051209519911860649433652581976150779884078625049497783984360836486948892037444011359858220837688921769294959285735782035571195040478918797746493818013127745424187442546257741556386554718489310953635000029075642766373711027395582193041725745050105040023885386062211894026703253672307979773685543405121108521394504593670719251453861384417291400639418809643115592960092755974119841458110263185457840082874445564759835231380090098501030685970047218537120164318181852798281870538983105359314426567873449904664562585457155490623922641943154036852764823262077929989878062019049434076495750102924044484288406657336247517690417468757226805712401172900279708599134208691482258656772651680744044331337348043175922566438152464560038795645555544355811808104223144360946561777627339468024599620283562544359044724171580487218893783969821162601453180432846065841881683372400536888595279348751121233438687027302170524171665004489172230209249916352345911962789262926567483979360813409579130137664234333831143893107537035128469656602123423410461508144871073150429998934735102230984138532119009406913941355967084901875659942515853879710263802194810308238013750675262610398892301528643336019488342691721496156991542143626580667663806422974508359956792569652312389082365244030049773804237894900962213499677560540835512257074761608715236503244358294384284378065061616953009465387056765717933521370611494577028434583838027412288967706706209331879656793508109772823903035100973292858171942768419286598599850530282009723284400089504709671239607921094696573882850587805430263983116445091421400217900290181194105870485684226652248015668319088794240502829011751156197592087802572210368560869964708483627567800726299228790096533939463028273099449900181245975657067834350081294419938455048154666055687684331644621832119958221514140699217540312603263804748435839954170633226702684280286433873655267823296147894171182777652257800666826986829942022489981733560590915620304916386807532088544064377608596556787018884330092168680339172130334941415439333464662668960106850726702979437020590815603633286801485581612302136841451156067851394421608161845788330033264408975168594895677963909212217851467494896867235335710177886875380779542115361476122558885167723609805071365988252893135271599532385773612161782877349685308217473581026097764428920745762342168135624347177069139862479200031116728498249055408292409118424613077075860110157009296785960539107261419326693100137395649493726069128640215136285038356333546504434932821715122915304542074418467747552096810304565532912222236288453527821225304758990805941666294248153124248190552762953113313244569093854418846708851483402082449762653730334142677546987738011256627017619257422584059930709460955922711086740462810693332034623204094874825902707325366378357658629630985699133801343212134855401816570408975397719916548703672023526465173475181662288095540831789597651521361909114479445574710614172573701706640192606383443227544546618656949240768919626513783097056787071587465869815995052995849354003997640811791339764589603045674247170042564599337575594611252979851690789335696341579534009497228798076087709620268616264334492909376227314493720728649040600050578320331595582467173329985765148570763912669353107793663990129492856631230627109458189091673082738239309354929758596498262857643156946665216135902555096249579937726997501146562752347147257520865108192026446335039407612560133726081456095584969374673421223727215794061483424780516675975917679633733518007115377992203624722962027494780582359969015063895712210088322867716335047357108795587298469688626869023839755954239833456200894174118809104888046655579466131802125107774173548992690068901923914280257424086846702290708599112484883008989541311369532973371370849027542861223214532258964128472981638648356594077569870313907171711794328045047568925146000255012802556566241585557332873130927725267682294709677871995461853556883702987273207707764045849066660893058297898740377622804969805410239900196912544298313295823561850375444664428505826464354058705149138092304182578441159452676629353978109502436807512526062604885997808529232284933564650669190224319942389056296121434668766570527601359698075529572285732991398546086089246906473879249668034593291708188569500724213827895321015935486252949179640811293138885545569221908182715902728074938535788400841165951395213791996048152070123025536504448803224142849481784333876328970666082254693433699595569535411040235243330045581422275947222465611703205381046216288157794027499331020662377412179943203648246597794482704778879897410732264848104103189000186648288692055525045398948074030514991893991626454329664338446088308266696118681490062920382060349715354532335434763834704761166226162069874329752340118586866047810074168658686566106928956970846459191284268804079206944137698711041697008454822908235044453468298586976140392211366888731351427994678147307835320013497195855103055294292490033841740248581797203330816154405454944075597553124544067636053868402888707060339670536161863571190194110066330022732743306600869238014558086418964221595786760775362222868634600089391151079608846132843705572277402001863434335506051913415976000247202479858176669332506679740504144302461642837738938101260706396676051995721659080949333771108387347499942363454681811957985374728724057906576009206984926473393679938047661300093234174970961403256271409663721426987059194293769684569204340023706278579920730074364907834378520698146597259147443179192769430196437417374459152795200744765722125163192205917445974253362871871484878403076088087793021904901402738297051818380204252379807593507534069732316739589700705429580103970052356399588263099303707763707915241104195108372537043733933524242871834477185981694624151690867394607370279810544939781310136132461406156416441503293845591001285206279996137932723534245069852352864657266844033433748002436099677888057705304005135692505832347361643477431263530041505841044680051754552555009921703377215892948907837386058969178170121851331538414251611807334980999958467524866610907679294601939712431334382567816267322308326950197592244243548997339904745967695901365049763598304165974197675972935775698022460465054651678927132066161847677155904718245285857744692625530193768645228099859833989091453185765249979534420059387152605214922177703311878964024248914454420243950436642964733010670087339708467311350710175408014140271689933348965652389778980870956604556490184249307705738554941607320485176522816733469694948408260591791636353623995705691053597307270564725839745486864744447424188699068122486998809259038408267134335572065968364488675236146828125212894148698518883471487888932165768615641252385823963725857960597235816706182730225860697720634973600626337802675294976129435993344170077998977887717332532207579806692118472818976099087743144138391306159955411024397285672351309901026045092063740885832953416236122510710102891115151667106614793617770293885185560346216942384478525210632605500686143919085110973007891528954603532945999970157505803600363184184228493666443219858974483241262221018275155790819538529998017246148771884690017019993967342953214542776711386418329376258885097049778756458444232914941363168568538972505610905506642681310791910069029732259474764754009162510725228177642247124310812756973688293395482457379438234868510089377101642469847908660611816806546082722655407736699453609300042700575759083064557480909585763211801848260494003621160140722267278428176713648184198492393873924659059361763131032383260478210738611891705556687850542644615907966303911149648829606899587630647512684318838212335886332535848414461080521131856930047427380476778753283575922887321829912225491585632679636092810024431149117008436786434916994921335986690946807925776305636253482936225092907827231767644977721656837504091553180954333619126497023562550416280850869589588046680311335488182017739396210701050800664718344380946625129088419382525061512701820026982542359884635960321015803838553790524111375424030661255925060751879617293494713257188069610429396093284214525976146253408205788772913562426612229210077439776043836266567193756680221988504564391557698321634743350965808064914618652177597182723773324471796768363405125747109791146883940897787119310694710551758036590675710428295209085054130293396515905981976103669519092343447892550773002738859379526082711685373651264725500791290828889142712140454672438561147116011251901501288054899621595069916514503782323780694925087014288953211065958887963996255745506699250832619095448624646414034066213125908274020725935211594260615874544775039424844090679882739125670210502355540373326845072710517655458245508070285593733450115156227501831247892447173165611634816453796476588952205823367277559797330611192895877492499712056153811765488004596415305163101058679705795954934356492009004041776401672062355563067504297348359580221480108770136457948992568294745367659086568356679343525261365201167233941464392264911451625049539256147929742331608203537465311290068884373491321218628754421155926958846820025714774822823668149639541106848404851515519672758777664497231860184456589824848340782197060021951480792703695594316774629620173938778833182276953606488869308318465231782591880756435264040555881002340078083273427738385322878739323613311553656013351253116906601310484586150877661072352962672171464760219141601627817602688623698298341705563482893664839479756363025407181860920708311918547950892412163882670207305973081479568786780560972482259146689539209155338415178446637186568716609061095529164161288312651574499930129634703083612974318530606463838256694854997323438318468643976978860021384533270297421084804724223430887349395146861737426627520356879717621069750723227523066981713322344527760895016769171762591891516410070715888406300789472952296953966784819920532984699867072184756746193384801710883268117224550098809443771750040803703108608114328269201873006504080895030745047055991395385118114844815123020350731454056536360880159612806492174647895385532750986588897060972475255579027400918571283469985561413954006478343839670589349260170125868795581195231094101737971958262888948464982307453184044443254208368722823954428569515078428650686907366594637927018362362870890054132221796517963136557413022389338201606561554555341702800452046229363106085312008529199180060541008441463779799807174969038846912953133647996137885823117301528750823818150905767715047423937183445564647210723832730120990985401002606186489692732623201482701202646322396532805494802202480981979873806566726865061691587855674635382314888810941536540438376249696700084733719257565984982078080833853904661204430813291360875947936454340388828836960228075831174003569782917275906812994402892670694884474336513779440395622390385727239715313546160349759239365608122680060083315264842048593226686266510604025671618926184239842871019921100600339830549577753812025597931386447647711955327208592349853199307071249679924768612153794275810544325322671049211151270370703328827094507337945337191983352466764025179516715104238899147428936920057916641640695698216709410738080949117725764716114079705828948149520682341768254576988708460495775999704901719640386764193852351673205447455421098697590263452079794578449369710946692566326810736720109063287115591197082125337024886595795917192184035204476656541956930277519677721558051762733030225432766137928691731113381261764484499705206057332607117238883781877265415018715248276653846645255624356777473896424629207264512078269565900500608018252747025940277862087908655771596428659878170167685110384620108140423584020885368290714161192482676766203619891236792175452166411919227597576466774770055684677409888897199267842639127764478589600173942645273071584749834724441603704603238984568301303322397853955640452489691826563894959506874464596380151267624109924782517505182906172299453997986483887818726618744205865502312859330976973436955998758609409442492615768160162500042075777374736795009352961963473314010138772992295360801472898499860181766721447626259420511111542826512621138325818823764469461949409390882890345661704514123969053765531379792252265048990264182142409759742639939644332188244438158349989372398425815984764849978054780982587949122640350154479230877732782835566181415791024130005652497858005075671526473483267621990225032329458725471219521143395368028864957800851321198191141221597501827124221544418694025744182648242573898113196626771251807533253541261038279462644915717687299659959914325755851808147524296445907231798095397216229520872351206752053934922514418904045727596283168366408569727821073273433902857099367660069555441033552840317350147362837665891691471659625872033515250241382383785952864992308625963242639532088157218842309641446921553971773366603162906736647070954544254374569208919415754780067329481660195842461160778232536093339378030393701746309176664099037128577436952540146404369252116459939839915327516336628382265216193676581706289346480667895878781031684431514729558865207291519632695753342004567327151885883535894881411140889589025347311124452921607033699468579172944952809670306269570709660058616972142177048740425873620749230442775893697184623384344104115157815044166881247646282471396898362643275067568568961963154954676810252909412998117613573073461457756146460647001999699231071227816482801160212723583849845371415939170808204732630935775716148624903407731596229484251610712637878005834279121177570261242639020714433218042045982742805547955186965918957990647864414064986230180945218495690199934482540161326220104552996148714607321782524270033629550421508543507255013031669478620584259319679630458055278790790322504119804774390747822008215720040405626987602446970657649092379202879396847414221978032706748711268316397304049371733015117331139719403426342412023925400783667344983458757756168365095850570607387545778905976346027585192349462326956028633245323086158537631310014117515732405001987079691301025848674173761638390895130552847848129373447394396159037055256692412669355574457441355914710825915758838637934371117481982887194217902757645796899758190606524476224049056130132421604643218403125186715548878727947216147035757511322048462337667463858863509396850066566466641058263175927651327383566303241479809871473743633060297403749115356577465742784568092349865132904298672903408951756802762616284685652887963622862992807034787891458902193629203998012392747603681105080832428215297887029677155755157491278106607233583623038267091794013974036510721716587327336066413750626913314792756275777387788218390671376887858575239936314582082458871009819928498674219762093562886027560270205262724144101794362628010699992452681574877686639919908510557029698788152566060291514912542226185788949411932153759016798755946272634757184512401952376952047086934795292753519191631534403822741629169251177423200292592813885591293229435031539357641760760563825312508548030044835102357048707572130199349021841180329262471585118245479320326603262735447636144163108009495654841405160466649452536720311074488895821089298926147753801081469090536039299861932746676159135976761783408510531420856150987900508491686137229440657125999588572686828925263848862562278623377469710100909263143095174406778968332647911536477425432964203912848470210797235205321048497719875412563349255384370005435155988117481441032405053707514778030247161873805476723739825872999613933257226452940204813320159611637276232756270442448609728635229762865534399925785281900404302214075869479231023184524319219241981250364587870702236771630629807660721186271986974006229741555574127492334701918137883605203838964143340923683447183356465794779515362002888783452614905419818118296771073263128309598799718044525381873717109235571110929007525376858005926216425325124238918200329094994827343432361662523076039208269424755256867319382099814336939588597612710175563882184296866987777109446943890783674367431570507059019345413710136061313264270573980682535088988652790754487040876164507901766590609948324629278665789007154154687306793252045026379919982497240180129450859144127825595002360886903676487024539423978381903732687951158515895859891840303694713118801687136169509062823480507886090227527078612575471783359902089475403357424995840156677655105356796482891695563328941472473278437234589922209691769128383634442596317011408921902933345806670482889728451285697053036678260191431638887657637519519315568833581651736940564207840429646850960667662377735683266553698550167718881631002017012274671341669561195983264667640159153009367450936961539937905534873972741412414350081146024212657115113957740653498474699063356899065666029495107737629595183162507771989942223895248311298497555340182212886520035866932978156253141323988527809518107993214752389908951150815584355307456933537026179161194069177949160724806386901716341278371439907657912166172253948925830501238124205329105977790961615722347057865358385594789944858280221338310200450049924294112652162554872659326897896831663904453502927924372668288005070686051308824531069487155452364265936418938826093697188971970442654848059466034447700464531508781581431554378329529733370931398563421867298446646233769908491538357439657115859834362514850599161099481348437446981776461002389265506280917555265443425055739410766549127736002509272156943015030819893270903828029894612444840359953897013661789286075059538710825622125384573848918846532089219586610421583578633179411443818769426035270788468368560830684345094187641767118369328810966802873386167248862312164469529336548730312679011168592423313395694607949776548503030659333937503391458129428421235576387532394955331840499132070047799759214069048266025037938189437385712401649962749902307313859136201716777878394021699374638891221735880639379769947716193625354353779037944729883354691990401235088068709974866964300527243486615316937629308957010341909095600275044671508410164643232837731103722494323342766231870357104972800153190720207773151075415971044185661667965842590199304685918250085564082968020188096057241867995771344732622158185484104953362840873184718160424096726849317460847774706627529204434518469327748714194984039259186904883961322074997086557744406121883294118215224434463473104480477430993282622021880626823903507467825148712743327664319451385279427496085974090264336748026529971064309992272404353686382684745571776758991100506494679634262149294335756773640188897997355376866695398649206330941898157623614676931131202895777823039136984227562866040623408057469270265851198786498370849084288414221904249812623153393815394290730063956587069920874615091634746890163271551211011727315030974871927138339417472201381832484591316906949323671160003948695419205352567907793710545684913603593718139949046129004027580869756367830961890407162699745047337346224956715615163593967797227020641869211498383772772480953359456727900065343170931182910463108823218774115948694758558289342061289800757346589418531542017636997101979920834953801329965529215702054691082156798527645996735637005791106774492138331965515481813075553231991530071370385698946281298963400822271030384707563393116847851356966875099783140727068940100313641568124513494771130810672693095746324627172396898915667046238862850410014939256294727791134700599513557150566179909952321391330282195857041956931521682872665401730500721761325645719767098544674119245653253134137648774279862460544826123502669817949013881454990653365982875263821211488285171204299139156804617774304853261376364480339945442261618872276712038571785597098431363134833568379149850700310802121992235597973959884865728745862680885575333297079551547177794549203574308721480275126609331134741470626143969615945928084828620051551296970402893493080880488618222816606368889147812560007678244760922326329006973903997514382584331396510819063218769391777003550305994927379640938043736768514381855798816186049469799924114259423766902879495441304998492026203603141574145724366309438107587177721789249981795184180424610082584987861806528590725495305791886402833098113770645269316409987662971280179040111528433545972810278367027231822174890458757716826247292132938665203941716953357810749137498550308348341279995867266396783093692377805950159501841993402048755941703964069167036937220952903594474503498181016978948294555596857796392673980299966410032183257655367744125588866420488699052935090682684121075414409511081473522342289677409702895022299210654140400153439074640672026503097385680594674973189499483268285331531077464906380623929787453358556311252880296634688155013807360386378216713146809358112436894497910906003513074359969051237799262263859705911713131705012050167245638575644012400282832084080480383058704356559169405529829961371028502143363613634071340948987729711348712808586628102281321826622980686125228739236641106434989717839624119544449553635097080693269626020078751880334776012844954508203940179485570194805030853293635892822332635556799036418159636796428171900737697877243879472395628698683063486452599203991137625609384526118327152176273401807569527962212305666039776792233333660540421017261419967440328009090790086195715679896357806920014617097156079860275483568131237417086875320696430146194269554224590152966086632545086468101179982765050763897957372386107843801497799431632132157529376019351998589610427308747965152380220569611254728365216804527400102165422695558306107623411578608431226207524454263709260127493491141085356608775012107315193771751369508072854554144265744086647774637188111288757663592341635370048682520256621658783539925227650883470597884434969250893925161976152813842226259869547127738949109644344064379251911931237261185518647604555267966360090152074084598732915769640573875100903789529012595181513613513418631767297389051376363003933961978128022839958009519199775775573837686859628876225305839678400164731706037105545800593120636005963258005844921097097145849525444653331195412873518083186148653290378064355808820210468263900456573936310284247418606263633190027257089490847428287351750226286560001098402110464526346649701372273793547132950125925812326759355354763473539742905641358711892249731915545501134943473213077695684874716855587575461277161644174163416235223669137426684167151936749671818959677634742397656173283940270710877641251679913386665129367317326268426547161719455285780753762471339574708152745125356262708436393940378885828754858444264167903883615965799818314983862821409804054898163556290175952573725716798544309959608890943459248138750126506387415599046264632893070066553832644719888190439050058647551074855791900440382496504633879012591124536490567028654144036581524305080108213469659647510504180209753688736650223923088636038604770909969169857694970231067530003066474113727596519997037023464687207324907693019267601248866713122548821263557258152430765557339264846054732910112673143256705136383910581690809491435733658508741049739865156712877791545289545722813449448215340587850796759636557439632072632664555874180616281527814947363449737089990886241723045803213155337051865017997620101557372762544377155413823429905911422789058425446497735063344659801594979304507314280134095533675855768034961218338530478544934191638169780303595740014340836018045927512844513986648145454100673188365733099810375224543203253988599479578138426344996617386050287848616665851197826219532308164977412870106025915646664020265558628176952024825976241835614023651807061454736506889341428701859908654214022160962734250782429948907941651922548235864119799614296129487402640245462368375525956724236694561269033539945459986954617734939217202747665123616145242347675411870028271556768659369242458387711501937411134731666780607251789818435265651952263694539198107716187211702617643698610461770978673179725507152066918928242934513345336303983846682732099650465923068029673321245571075998125702364116127023224100953092876759331618423266524475603399094686819921544041139473527544618531129046915621479380738122931098903754447197715727692859123898179284557845929730634394068370703287235692477045235445514171874833627894069833201440422697773363191081346513427915571487858889256202850080764975021060587970524904355415907971253444653997727108974617528153458291043442901536157949671215356606738488341953541145341477671527787089064199683384395864703528041349430242872829826039910739269030483504419074113655387074391736316282424533273566774665748862019151600357572452992504111513648113066511683657950757695997222856338261118471211337711928592689519793312740093265009930455949177747310055010592541642511202360205667420514616572644015244542750646910074018810350207416759515418369159072480514754694421969860120394462040573486718072150303563256051948115257568830709697035475641028775782646658870800622202851195195344679870203690843285122015908505769325653850430998642083673512339827648939854361174523068539136074264583747523322877077189316384071228506712933644409548627422849150055267546345549853282214117539052442789094717447302962603423830009655262939195508688712657195877567791513713407552495543120335761071410738809012916615876163173627234429851169362186279696645763166358213979658529111297953102970285308931151776393216958740256769510312702463403859230016697499217848410062401133801745181903156895098336236532613442608961020746278790202881771604765596177082739927789407503099731827361425908571103601437958924025167165160414929507779645846398606012409685134052478835177944633317820275170601506768278701944696339009517123990184495425119658007534589173202979706611768681310398215413649552146138314796406675583343869856283047719766843949598046852596665028920264419224636297694112075092893564803088024579964861240684974731680542450819674712512187484627759418710717872920972153613010562824948154294531173463931522571119716281027173775677810100863978753074846976238419507766782082005412154030477691484971521253647351548064284661166885323559158395350788398635883708672776785787338361804299973463988679037088986767922257369551703578673837525083880758716013250125964133511997697969471053665484507058505461205714620180599812390901847361674927468755263436949625172902561809250673725553441593884563315135487482260131931909518922289497137795462348311961756612800580661824128007583654420236261322988868546979175713097790653032523126401966016443229485471328842768162940456856817780294190912983684687667969158806581382774896589984265945616190972180141366167294051781791852306269095065615218093424473741979652964141541185008792044076974035292463720014075313721281932797852150794724056561544278875399110955149923993052947302247394613821021378147557899258844167941677464766832983817006884221954861972352932305331559252942287112503845374137489045506604165819507329431461676641120340459299198179929214872889930212493106883973794884743140898322940121491224903308684473870921041039863163417689578490322834927849475923242983358730878034126177806179875907332965150543691389195794557114280745330059173532903622150012697686511364799803212732038196468224472262314459659674846703423116617547730295931812340331802213103935146773820396098275701168542153656865104658301666156563492814998015130267335950630947781338517837089233936140552663724132438657527813875543701604045347328877494747811190549466438486526723821104380542257385041906812226325106443032675559384000742503165196558454384791680242890682361654550905566079244291861423507661979239692542888334581770558345555226733606427245074889226027744975775864393063789828683142247756716055916486940788187937134235657901539219044425391573795240056447393649869357602495617157076420438546397050634088528339147945015189340431893283747341432615490168442385592934428828667912619401414877927444857418816490177342371150314367940636660534416170645229731436664182359781667660989392850900073856061926402031802569783298917126865831979685240145046231371138739593162429811024585432062918343449431371654262356280242738812533575283601608772348354720508163152472809072629551030192457794844552585867080981835259592742202538308633477250792140150817251771753344557497262213961915849811350101688464734830960445104599807742199255847251966571098958779807895982853885979778356882225100447509980822851032920078067199400112036141036752265643186784066645114068070972454088875520190734699337905125201848409078989208527224500292469017912642705475377185619336829782917027379032190713375248641602223551676894718585610230291566858293965718334412046615384134874569081545445947471702495483919960184534663901341124139359367781207707359518410679882297660390699181352856410130222462927582806485904576061842527073321519585411581100544526075930982979258158591232578605040815764089251571454658506243174800528388692722107840840946385634569149443997881845060127738114122367077593012676423473058058158893180248578514741138060484751355562309585290738953395655993902978153766052171933015936182916279269606678403534583809063810770483742180066514889890828366067388590935990860932722067650705911897077477759073832782276883577575240513841725676523115039654957445674203546395519796986761525234235362221688963174124485789314760164356674132072654911781952632151974251764033389849184480189530793514718671414201869258276998566800568801846729771148864942940626345968352063206671578965491725951526782165239256646290002825466504719310299693521944828653119848703488121261010082091920111846555574240533557254876177196868205025050109811705990063264893929868828736939116042139015317494188012938664916377463734283706375498198107472869169636050989477618594743719022165013608317758996479735218733068274013111754303421108315296948014558767002893601978565082601400482648132890272244395652037933247005609055051828651267353697273154195039159042813600042319784475683838590395380909871739068874665115258807487975031226017699926885307329422904935373963560198980477902100890102527561540819622031311166797134446669885067845408481089037477574604033920215510136423109065447645989127243659797638321174384721916080824554599728608818290662916866936332331011532483453389034087843338848902977897340663837993830099240740211662378179073318172741933469869204925516020594375490394702861729395752586935641967753306134175103084342363826378314013702135956058721080435988233807669117028301708244792302954210185625696756934303270130017625356727742686964541323668125250741296062745460991626200613297343177815098737218808551483660852304386454546693824970411689650388154595456082431182207356339575427726896464381793030450537803987346359255849586381610191545071386286769346990656357414284296990544242350671553554376956691024605187180103988265659962594489019349191614346175604921260363013461505727478426511791322278561834618617025145849237651793741124994856217543328111016800620180281156359820085108324503154698131263901481021156873016681336656493693842644655752069571952108346175003698820819286861581176429073437865612608188650465457857719024632537896563019298204182940291454182508124290969252349054941929885697528466974346616328463165028336776944492025151165611199994999002502567807504533594979589996844108302729229602535700272665060135100820264684739299868469845178897709478394427028504099154669438286079459206356824251298642449562445788026709040546249836033490673529058699870411086748114373484432899561697662587853795605933466863975784661742470306441516553963571334290041245434785664643445250541229474079917018647484537207963737181242055756048982693592271619866481976086012189269700455156288261715531457378404916162606096477524384724394767711721083711245206217639959017897685110958661640783001331817106296199296884729971453922896422848490207115918759560178440813072649489913901918302115995196859566964401907080045167802479074278580807265649709830211243386403592864649230846047499334936313324711198961161271364571711894520382017131321653294842599897788070237775178765859529386404277406856620457032831056268035338259778191081466610777758806372818221546964544206916627700316982670531491535886568256971291011732997177381182006985936551354279575347727868381332128531876466660208458303003313925117361779633970829326281824869748019294965186904875860499635185386474115661298829435545490274576589893874121542136577541246209219682086001166223255206929196590896650253090946591748592304118603293438142997779417152385894671804697591100433772151320191375856923739482523170139075482351218492040131978782543486968341589056671392627823972915183837261525134421339291042007029439423547150911734408356200925531056187885035088863103246061022427182422116696187753393093800331511584862402193088992735630048925883497076475321230724988530592481998419219095020276281205982160539439165917629601029877905788746294757206041147768905923329722300454679785918980643356746682429393257532347159795154129297125944138800587652132920485332679113264981013571308486361499650725749901453050543020018599871718485547664342570160878951482302167026320823264111946779832567608913153770799108081772180534519701131459541089038873293174422281754531312306068208982498107346485442544708819641140268039761591684254944213314042891958957811694204227086157083700880556796140448286981189928249708772356247103791135999300430701632973465642225605306798632983745052092711537264575748431770029281798593288914979156193971569048509901831332631186369283083819417582934758007175906357843846883229366814256354604570379607843685554368456549339444159865392413738910787002519553538284582608352316440650246811178109686497278308594457844430466699849649880530283966371461239377158895991103242882664657636433882339060729047959487597608640710027746344876154579569321562726932080925889508730037387500318635853724511763036515385713257812483082373109691851550116653053143156635996283508787984985504147749286624891380555973420900861181710808014892879444260721025525484005902153862855988184358236442099733386108233091268183427340276626544144844571213520994068514581466665795522985417384658804632036177040114791715601082585840114810094277898347917673126087325433800289109198227679285385493158341537884946820436888614554413943806143064220242709427121161406424753535877571094018414166604299831610436840964171701510089172269543671856202028746819196415630545513388013743617042617516457857309527263509366395793056092433882471101156806936898784070724422930136763325302659905365741137501728903616762518508400301958080240976121631157973885563223112308529852197297784755398728989975093765081298673179784802547267242178668139867295433637617327804793213923751672102705606076918802133801588084755977528796417658767599220000488427417967887076947813272038965305716074330334138221253760110755651627515908403956472807430526633263623090681484948032790704747679678167015754960387411459036401200170894793757016526745440314723463930161508165063099229550576446110509464312302987971263813366725663704771281226658012756710926025245738123111893562046730211636351140833880775484167653783472655127894528992266899931502252736959476064454540173253697158847103454806096443416304904050679908955867258476854063616974927958054524026288206959106563177834280595774432264279343305651938782340567870378492671123550148523844328392336447440603906417739025599137980983734069066712911993181650874721355413753702981397659647686454378532048369147533418450609880031166890124681778643505191505599566776895082172628571532853546878423873974995438244755501536182613176095847947759068016568103994929987060905029911770630861369655427963420857600630967164779006263629118001815597342892430748051221745361613650305055776246828835851623285518996147106214471710385746366439604557967901466206793553690423724176981462929767411955749717098786398616584312308006051399041438420811560547710636585461931825367747312848991195010739149477434602431062153031056188518991961332338571887949258808732195358064026627822826872799709791195875463266703808705537701979178404252427648581722944839856205401966421221052660271727107468519931683532111869654247958261330524287612730328800893595608816994358131922038450694361999637022517271569422255374143893531739413298457532243342651512713344984740786723905695529102133799003054757633568851081065735218904080732193685212148651859257832612187284786475256927233887785394322888965636932927516677187889499180644344053925317568929385814531030937208874984019788902513710857510400911173754056054089553253974676046910463246095512978981977610709246601416177606250498606192595372481421574876183076662437598565248699365847501777350867770734547313625881320391410035137204735573766989449738988544786364130547370353353035145701830464921820925904869837082329944695497156821827746455147944767395319462231668058518786516293174100911437981592332681866697802699852092884540546690020252690260654930681382655379269501169084838978803165564926177409113825000772304964131285522991638356054756610118684255393031381554815495994166997178104240883062075911541751646821626773310759868160334010479191359054813161656442683246018553193318986511568714215210053526377373235422893359041617534292299960861385691384989073729275360867928010052538139990548317822719943162794697045103806228730058461066954176283586289977662741997763091528015651476996003274971461542976693848055703661941671014581837694166305705985307452997817638361591810105649203627374453082239744865723483601109527847434282983378824445733544042043774184246806161162187570539069467681374128556904133435467571095097625970952210624934484838013658524054147845717100423383963274028076371432355711085436776881284591946245089833662716083976369727080818607569285338937675057482407245830814385446294643258860500275160885671005741132632340292163010235072487202726639431935171457414997405960578923852471555388808407867170203931450352638631954514142248003919454960493232031015262007876830413606062948741944654134630064207125119719486383032393766936209927116678693356051403616971589454037669565236019169167559999822020366979933619282900153972641903360199555434125620899410431770130844866972774849107124062960849340576715805415455750023129773861662488754157361171361950432551207866443251388538397647516710586882405571984437215723089846452171299912340429936134396121673577068234975348659223189876345825407632610019897990191455164978239476759186487375968728511386139847421155609957360612597964463768551397984153308646973465901740730989689392414178363451477740436671462754630133550821021632576828489882331535961145301253291049067648300619056729198246331832092497825633641913624911691547686137327648259290755177741271521350266992253662243444367766647562335066226848817177700313880738791974858663723234075656935601783827634624068558255084535953576418650107216940947516967041968459564662571025213617321612184370328649070233229899892160222203789181029260260552329136569532428879726118832164247796393663386663100491212219556935771604936140078171391313330626569300512089902248181614501983873838100809270269311382169749857067288901540622030661117810514766374444680903416958002728057584263422983334795531430660456098789521165128884821633006660723752917439384373173535401122635346542269274954188621933198298581884538108634344250673571120291158171973384990454998559885167605134573673113303025279036785863615449709867659352359343625950476338803100324533950172464340962630989994436708257836142249331280819779011061336218766663977003396106465475829050520482164194725001101156991575869751406574011777318115799765579798863404366817406827121817810222794316128956584798258104959715948703200278655363654717640650377976657597219670404202872449843850302229407494544733373339067212045655547084540996572901817580376628758886363038367084818240958231274221067917286313565572114475871393091848759331019500723791038700456299694343208468143216532622740577854667638090712224117092761955318562881567751939266614221094838739402593700263417538370779644830183667567516551800779285194455321362022508269061663782944649029969599800105550336332707997648382028474465432477006461972580767055955636075024177397895591548860447292873473395406325652094056574151387695561691435397925704053831555105755248629792651044693643745463718271097372744133348678132508253968565211406742392796174868231282283749008544188478202590957512527025510136638939263276269343847948096478816523915397420081109633824941843000343460150948610955068114404202894561882140658915161218566101308195936453679546695677847426426402078804755025996652866292696350014485359422548811363845315718767751761027894894725121339214460360847250837375287211126932508741626623863921573601421161604720230159582943775231181009825281065376630961616332799641733155733928536535732445246523308038776381698542615049662467943534122639544984560795270961548543849457928511060605660077299825143862068444120576139814429051855792712987952326271794684049069973872734597736263156000312090717377675815793654622763032718267906660445404205327992870844776516930461060932323502112427956008770311687828655663291464427409474881820586302690154169749240267239004496108307924694288692263797914209618677048876312895632307937346972722355559674697017162631629054708944900948101121652479229554374477495108994565531136519417152390947697736525050760686740663388577123134626262471933926536126728092149061241966252564050707148776455000998359199597854670827801479162135086654645017438903547711087681600560072635357857464177175479319220248084507024511463370610205589490571050685932816669435038052983863579629746587571113601222327277229585791111060537328360322993104441616655922766604591955293927377662106553722776963550397424730442157698849878721013463583953952113945170123970954889239226189792446899101425095385381713169492911219490079647949624105447263302695715022770515676569782973741245502258997530631228721115827528295532599488625134815903797869671520404769152214950932001945165375497016718933252744217359796141057761150624010007941966088605105839402670014726604021679495426914234612050961610427757841618404616762539638354207873247330368374048594859557812449919760333218199028158967902209531637654007536649011048981997801919981675854482828062237024634774369792129254105090907184809950260693678194102304199350360752775786048301214623116005787048724095410834630543285611949799197576078427673921569948346512569103321535311838849510187796857709538759674127741853164907800694834139196102848149405722901619284974533093670788022519867939314263204362875667555756202945990222695026736962552222646216257588371809187018651782872279944569177235152354357280734880287809479776731257485268702725526344268923139887446423193440684548175417238521819670358586570473059335962439335876850729223038574474810934103363039977563610615506880817095551882451383534920007422997784689578794593027308434418622670241009943690347356727867521231124668813650255749657465501492154338471141312696108571971528982200132119190550498769109798931855468637742127321021510549128093318934024728858494396447018349905793271660098171210699590035029546986583405770183666711064378659278891613794180037558959352607782634411766382440810899202661136635956370100141764779349425272819115455438092032371936889314447154735039460063599284142920896793933792610416480026236760600695409046971772552424087454363822256107994190881656653134818488003007389790998533031701885901976443706101966895035878079198050574385881739559096854206164229361008998954015721207200449711496686974839830451989077778769469993788721865505972646468887544292467426864661747075328044618386097772774518404277154285611540249786303291153071857939343610639277745523607920712322128104159345106916049416357443706919485893352044626797134248328401626978883199646957650780075851385894616071520695088634749401214113716855979374398718985279621994923112423930410497015455236392812413812015653371998368166935394211964665105973291522806471759362013932705286043480401821640459334329150332854934037914523248559762574655884428845374349845948426503639100221714595429203997862457566078300279594340792026543075295773445464761724176119593609671251733741289393750420943489105690378163250810065474447712067436032174734372839449377691244362941040552366093574579950634293035364624718124157699807336294395174786882933800209533811199575644096131703043286404168665739560644224254359277013716659436903241159036231682017483959857954911457266352435488601970669384760118844311633231643365570831539809169908601970461506908058302796363360566342863807534770280280691738546452038440697330741465181352401913028809730628246581107375114683244464923694364297187071052580228726726234351972911479690340999422330687785375406633609814833474046865007924938785005664332910940734084286068877114982033970480144936294558624194910542846244612038848927053922477814287457205250181643726331862220252631409233710227166185465406450307963045940932787002146578443252499590517326607696871901517804434028315602187905514402668000208659204801352969337679326492370900109681969126363116102474386957397725649096321015723749703578690134422464814165473661930904468181785203972325602038454608087149461993817382166396769510151056885631565841571907340746301561594343245432752177728255461716999857180209593164635733854802411521576805994225639307044234098000073654616129120578512093224186074814346715844884547115765300726024355563764495906317576858982590271529886523756393580926914623976032142610635540206247060927705428436023488850755542613849862632928558965138784177279535348606614535439248712456771766570659136587062655794890977972034081649448979768023978147693894474361487022790790959610987547277912638382185582165631763001863053287682450705268510806661349868983587704851041059697927287890833051672759996677025985412085727510530725059390354343207942726528442462498810576358576806663215910022104650823031507283791093520179349119930303495427373777997644936485718470518976611196475691195472147689896728311922149297690012963203772554367759341624173140574777313212580293106706904849542518204509086009000169370157059660801622782450379043356453712695691159177081313423408744380259387914058052494706685596711315333037158254812244357412316904814320420540666583680731593296248803208475165327164171160468388070311277741135124095617726528521222463119683770362317543133578092195687789947725415719992999962766933267971844360289129885310648624044078542986721743777835336574186535270986231763726569697814665295747357126532135454340060457866328954059504610905700992680237599832511690403640146124363238792504814400649264711736659059970687367302953012210725827316535466157458513104150810830745623700199991538468831256786063542179364112351627278849759254595607872730456124325627353003647981222843454137374364933329064062040992591441689387871272498284455024223395264318936972900836171998734591831551860402539755018474825512115709674828757709100802744797048729956314144683692669135674715545714939688262140238658490613124423403611452205250270966285494928099458566359842137796770247096399475629747677786497236504191806221943144946501239071972482612222295552459080601272642044162676357738290108305626339552846667003986210125220295257191446805103417321013178440948490393825976627332281040820011636805230726143043337877399962187448041762863744295489601796492963028331346776286467533241544508762344025191689987188828852035513215252236946623348172467964742380829069747251008832047885821292694988903974058479975149028557718156276781509565185933228868549244985539642776422350491318638110756981983967606494927724234166147412695700450894882901857245103022248143995535080498120520856195308192062304634564884144753826637534082598045102484557066692098201387305165505288414639902990535506693866128258831259636792128608442019184702217252429541779965065098565479521186720975671308289482667675223065034759386168765207548620891508560173762351010571155732080569480751836774580024977944806523463650179669295442383815367171516365166668577403427676211134152679756211570565282818270168882444922703515780554868800116904340042228044172067018137441558469256267728745282490912539152211431689241006562285010569108702995560379614039319983472734112551019918757224594371347000275510134199124253583490994129076027252453997576560185912929833509876218874898296435127479170759456584438785615157153375879890519434293211561299130728403816745752845989195444469630024339977439118304482973051906108715403544910034677616026969376918015896546581733981712194745100538171082192044564849493322213753280254251579766813159228377030812461782523641143203048973496539207361856116409387043527826586739789842019371831226640300660573877648974927987454003787751637342822113465710442794863444163616682305215117753890250148175667385666542900616962845622066462618462739736025104128229506431053668163512892109729351771905502739671338804291904863853816119324101058164494066236862560565344876516675922460080799526089061689952084961185141523660372934212724777450964054755018330840674120463710950552629121056027864758703676974018858920595724440732808008222505936703600078499615084892803357603765558158623344530372792694067807304830884826680481256441115330431887768303632609956415416278094081572343852907724791548901675178498514833814620050084485097331821288565602722947242184204920014338152488937496435423307803906439080531764907003014230579670282134615108000433170483876322488299118598107518277200898668904793418595956977534859348290826923263166008445096035293035276762377558329012876740779976504087749317589174768067017227186965675553150249365080701900124062673486343873887665511699728235766454097295911605944515599381371537911279527767405897045149596450399894096831466395030979030403796374021782132709561932463323678191428742014304061971081243032861925275191722147856628758253834829916380600615406720341853290188112049514582803710401286121380554963270663026844274898648610980458945893891288120338389593852770357513196266399437918936506379335310611818829070943819330519687832273085789124645315591659509109851026547378393645308623620738773505144300320110653076446984739889183023710293944074999065533982480551516702878240663767108466317946465792654945345772999087744380728325599125898178074676732896731537949620022921232033425267705758753860745091141084575809631868956648052869140924065862410851344217544499708872523730120504296294868016819232339902552753628950865554348952984471976231724529677525821685973090249627527723926094678964993777044428863279518393161516917611670011937840350710296105523321695123011153109140925891795587689497048706748565749558947029334890871573536070916442517679542933241208767121892557527985231867315094309564248913908321312354948627700091896306154972358783072783825450301417904704267226853932384704806435159748006282826234275000250294308720935467304545416053620583076958727849480230758634647346163082533833260586341556324024475779918767325544831051497162760835776431995618421041661833534762190182974646019261226862650683018323969109733877576255597175340881168589222976309564493468754675706264064482624705181276440135733726683747015596156779807107474366142419596015390911485667941682383170158717595232246808140788937697345247104461350220150690674943576134792593518716902702656241356419270825249077167130322929655769563032187313161965770108694215020488041299108739637347848944556095100784873720343094763971604622149423009781794339174226142293243577222433987347802239886777875463400608324505139077343691595237742616507233049631509117196637833138149612737880543994093224368284306581230546534086481130730193165600325236486898974792405718496861753738589398876297411350733701879720615724131692681858860929047296880905687290951266820644511816357962439038486116661955187119959624077565451720226416673537944340353175051020463366155208429025442818410772675066557848582458874947453516599445795944085138486461765177489172024044425546155262613919006834459684280060613388772337107775776663881830968651862125754940954626705092330166443596902831493551733827229102796598173721679595129183737499624361718168417560517253771922393061752677157383228965465582961395741112925418244728034409393269736520306659811687961495140613226972676819722801642996057813204834415766075077700581945948584856112605127145727386422686232108495918167382523472614229396818355577165615070859787423701536105739992003916159122373438499409992050003966326623072551418643664318439215463805664786751036082646279073914357679519565174708295819040684290483150311927117318897254400389548369418971058125025147446125317038129499560122793949785080135744619127484493658489373513991426151457451274445823904150932883246503754587561984582070052145086663762305427708035511380221277567293590020921594555289882337480000528111683071436694823697069683931736456714582745884390133645312859947179916995311218462276422430397014434264780193476732560806781053974043066079504603920879329074390032850820164846418364338378673100383882488876660441503418408966321303128975534660551615268962163979009801749521416417451670382356482650174698863793184216320131103994365069201432690537647031300112129111413433771351068832883917890059307452311442131915015339392124281489688411836705021876617082026248707085010289123270142781514375821503648767625285465175927488608870459598106447911503876160570574122913269180354265132238227365192861636811663331890201020168455623752510837554091552420057311132900561818483133157924544849809820689233304565336744072831718994688656678407724136822971232072610315249544419243313185048498351093022382376800057253676328985496776223019526696574704918224962387970554955816577600057215475597937827580905524746065617586849383460375218030172323176829555960527686490019969549962781938313566418856782067534577006889481598566093877765115551115638295868739491601584631633816627315887812092287868495025466482308023341878236701219995380739657067661172177805605450092192900213595968350237255885623660405379325093919165393219388085371530024150074355660411135017328688759424117172025130433664675335139068268378267080675454845459052196908782110927542555235505094036057987055806622258754412813212598908136516889076980435898096376466934351896337625745543601287648580722052428170083663107328941779725361508526260688128245922059210434939592297372182582348555230386622416745331895670596886784572526854543255920115058796446320368862901710460646790667368159597424444124950567232887925376945238379637723203991543998282919474175219937961932385999231772251860585581104596384605238722573491762026469234827591311653778765765968780633542715391584260638084654648337755937332168946056320828783675880356180863914099009144040103365241549850124872795869940420154805784478238957123690311071910731318654545973758101599248795519458859894359193261965380885804559358077751113382387252908590168847604904852148010868388569542149515854313729182649557031024811133034798761217293404139896558053808887647061317827040421677913271326618797869755076923326140396742761118895790234741434299250929150237256844565053425379012757530994121027282020678968277858179359685981558186467848931355507677681753753869458076225024440972895515712938133028977289247047719702384663011276518371982428467642911272535383022435884027448808555429704964446458420833876888925230672927060897421983907602341674436118247131623749895059594464851974154796536774055511139934039447300517853172468208030495224104202548932877409850366709621517128286863124051330194883792940781531037400782603644878386358681702548173449221578998433788278901412538691516677697256986132362853177522988240833995389793292348514748863051997325621514276385691216494609871390658596388176595958895803040531601994057177590774635842077309203659141893532933039637922720272636327180553584974117201771427586655906565594021117628027534128554726589526358109269455481437588672319703992773735015465132632357258567781228991372150362668513125197509534464964681421544641567568330466259620092205609005091872685160994766149814026925855941879652801877234600359827540495543778987510801856530936364487168169377031856909751960923218815450156730785752751116948170199594168906697670174251736399684270949217016972410528390896312249397146197782862496726484851122204544654317800484824545340811189415161095860103314456036934156888855990008152570700596947821585181904750200044893916014027996357181442147866136155046028904002834099082407712777117473899191573239987041230100185893921664530217651888461289406497276000151236915033715014496749211594455167323322667613531371098519637484198959080122108264020684049701973604861717014488718907312747744391693314174216925744415796884342981994581791462990779776565315955346737449642375567021833969819882781657710058580206821889305609709695957108270453461595170708581142778307651465791891269669746220307348295627224025726347031387214505157002473442134915147340522859136659806714293012309828514529859499920903835362270032488254828110396746611850296914802220668219277762486855143607160024068965410227885543655103835800414751416457825788766719030911293070852003473359782864343496459614117164922346101556987957673464892757260118631017664061354410851166811193829828654259709881958657609383703752224242224817868158577505410914931225782668954236046086695081838675693829593777415494582848177233141572348459005506870655448342053168902307377047956062353882428909697181163848117908697543505468878224661099570233046703543974886155424995926568027185982415637086868725941689146913607100433942896109287632922366963347977089685277262761545365618515727705521719724044528365467463414972715865391880534938520479825519359408633789627491068079197208552811320250589495375777631728615446677273702716281831859261064277887438763004933989194757583214820189421547195533198577192160934399208872135338352587251864398785205213520202492664833147822925766046090449453991217697528842373154611727198353092989301062722644042830848116737606348739750746178780607309508403387418735981457177044231732789573580793474941408948970408267152853570440369675859663831003420423758526809937265678255064170028898086841286088900666824435971330538707677069550899142876463567489977677787748815781658613153076278004558325770332711180805855525510731034089269815795732266695906007103566948761741126193892664456454140982086240620877925914024752175235885602162200055578623776759525705996808099153247483395121333998715879111360626697641024752469308506954623221340043598617659623007420502998151514371297379497079229948166324951779140210700678055424926387841095005628327068818600136755609914610729163429326598765102936319038710690215432968720169688929793896085311923263618440242020577834390235171417779461788521075832905049836218778709996542202162495708675099875667479141723244873452515522724867249224480562897746971918378473486552962620863234101427004015042235174192063376268606938802200603021179671127958118101197570513114177598035812959487055274932763672395490933901328662789061457894517663437193244900236735538230196431928164999071756682821784142133176514547405452052160890987887729276140052304652790152454273288040857077471442314799517747751333821706658916649189567725097958015747488063221402270949266215305452604339702361309342429608038492635817313645998375472912907942568666988592263793113252238217642142413912008350638421514692914157146468892902185124599475865211511814722550406063164999462134331790816169111902258403303001930311179755052649852445555841931419954182701332074625707923155960751980815196282772487169656841973909118506996534655789449714628154049593088811197193021623332893195165026754893733665742592628172716637770844310817952131292539056773396888513935006407205198690680770754834700907713576885042633039808784748687413282739585575291662806749135608985794178285100168295027208332835163131673200772553918497187465515282661510412322215867851503302772613355510201353937383176622204399711964890994829083691215287699508483003862721661917601263699546954979721941303222293021465947185620570066111431921061861606518562888713457398315916033734737257970394416068334542967758159012033216590528005664521466555273659652593755772980722372661867938889378210216879006388395861551628235947559786908384880071068274582717171113936910029134183396694153926905019459946435318468533664387994997542702372756121296191701936526124107773239114666863947575925383553064699721837790829263777523162773047772749271045715007612468780677496891765229067783970345857272061525296145511618668305947247821631797867377065316226994196812213537042055557928112636553932084696127087359727596651014590160614966403584968153242416948177347001156208511133949980627975623065462091837686269757846155832914941381278615187484093428756701156069834801695140318477760291318511881664344297064993431715815006266133541274178064324861348446428346117466655427026837242838069960010409346352593954224191253990764867787860278917140947780604001342573136473485101945749721669259004620459333747273101285590767828902540494621236036770412440268561016498257047096143811654076296700025458316621595590894850402648607025269859862678429468886975483989762821293970939090178330870798403792285267377224226177548445196332601513221105994625221378452094172231816133932979228470083825385285087680518645995215815094382696508452819565539899390063811669387069935625410029752474223092901201614728604568128908209433357403166512233800638597982546530828208023672133228677983227307895827656051974833253888885273815297147862848863584948744294475593379345974702922123901773629862945360224389594165025144729550330926644882522924039405917095990674756016580470018560878884124770440827008932186711885302599545773575187394817064445804728744655033261272503677382923214534700111061339162608983094458400060840404630255972818589010729846891305591443721607039801733276054359763178927288871715738065681316482985341523991714679239365559478238336589465604414938270660093557759616936618933849201667456034936526568546716742076153597439196803767766954181593899476273878232069624530082985914202537724967773503928158660894078178409897534883194684036200219184965294893637517487859481203008986666233853046385169055853635082515683618983203170925451513388444135929744017848221555530012809355983058361210425037258224489842805113468074547977090431253759362773234485978781879083819471362117825104101204443500274081257499749958578533794472603204563717827083072122852489368910636707256578632862540408648874675138833743724548365764687998303368955520277115089457586725071172270100604467233011608752349964320445829768896674307842685233949000238722316128028617330956174903008594804087421486724961875449041843941568067629713443259277681566964812310368577492885179964295312270085941072197587748529710980409264173869907843541905779172097119372699736658142032684660951228450423491731166853272426512907916747152056076948239313756770605909789727068237916343479023904995104086643409720267585126121830092160439669799625759290520121288949682043983290977005506032286371043844764639349952899173710456473360611059632729652316870901970992989883570094051477765519164241584078379753844040071029384829183994829172723807781571251772961452847276228561226239970159158606311290718499215772290322036279028364635505109704597491980061593756414242848158650892638415404045405505465471836635020404712363250756662885005566980043950063199545223125635311550236954478365248308063548965409276716165492205109750098002150029861245987513532464255562388235063117654593879416352719744210440293015501133381004282169121771415573778427448363834686611842537733141031579638412484173654192050183961242679941005967133120800194998437520342373537669283876368847724471790318849981574986611875844736753940536020562780598930676486102939402810856573387257802578106702560784267297383169827645602432266966546944550425825706876317786037736542159294514617922432077588336722729870514748126720304758790238216352009472602593813109627761781993243906892391491958611216512019531557178741197833124784548667595114991785637053311332564160257237057180475158193423991254296632124295395296415943366154675112988328215836403401385885188461511275491588930519287827261389564384963556526491028607436054765982101475881425329117108743695733015672908033737379226500913297735678407108564853547151195312742684529047334214991264610534134525285406962367677540202499229905255278357225546747814147145628106044258915021960298139146233161281038957562040267354049519108955259093553015190734839597314556249774950814858169751926757045249209640165389233112537609458475073680428436662494365929708604445291024622233800942394781594957119517939919907816057152464832328223575305493769397413848074441956881779336568142516690481254937518542783984328285204705594609771849619069503214152122104265168157381740447281867260269893952513299218162857610553340698071901202474300780967672259518438479687028281109606806099391657200382887994499430970644039334943237465041896217902408483772944777573459628765562601065539858791092244925975837818217404768564045548560228970202154828677341275512551579397114275120921571613226881795352033295070686259654020346589635062157100685381557088185652212316332398396500209725862904358373084804444469111178651229418119041494739717038255333836954864813844712737246114242684415166619443130681869801830715093364223569955785533100726262959467697979706858343888773593829365022762391411998794053575790151189125259386554431154115632910902642595124991363117570750976891932565033796382245185986624364677463584796449490954498424838396761285575047683726163404732444862612564105571193044714161158540080327862136049720032306096076216952632955895887090838942570612940909704471486349456978033699369977888465186707793610936623532960558574647300270720913195197728724930477146721839198532673306686332681706217374240756776788350207760786830320303717584935202927399404491511302421187590597932385268040426565767849660832449553735378738544769057159598051720485070464541553176047409771631878957394959528075996361751545695282124850492874738439721192159540953138321313221056397329935460905209878988234589106086607177584133907628768839812951410642902749752884276655768358021621091563946464968587191511177440417187343841108864363863158826903814384079711771339492910627442856479284764344960781053725593512680418446657669141962542274958776861662886143338359748624863255810897928696225524406440386038841014123368286932428506749561030035988773011343870154784319589781842330267917284121184808851463548407110907104689641571588925676701571817988920660253991102227313626057975047619547314778836080639841226025471626690315410833196795247825615532124763931203139414474930951910109266920302220261723893894134303708749687012024895796874275907478759843266473637413381597311024024626143305906559259383045049319543182532396963146718428865621081758689088643731922906357205167244049890735909416197344483559674747388844608888073743562261771386390844931593071875055339525168624615123773573078409710270714905231559505944014609270759073568008901927670535389267351142741085424219691792059927028861138117027598563442327826206085645276626522933988106049440056212212317955117037579117718516884219376448430531406733107637041212661149827572450276968303190238224752238178619224189704443271898118551024856774337349491806426789998959074054542008685719761991887817079271743645953952307862975141122147196592022481382744080374121633072742460133093285885867278867598491687742470995643741394577236750173254415687274281487988725484217286502105848713274809949374570119653032926485044793421098607534080490312058791367790144645105663748530810457778317373032062635689542128854918014928080145819389810415993388828693751481202598505298268249568226988617884904256503939377162292448403891205509819601571511450123888807743386968279338790505456418806537847204736413069732957168229391773960801027758241466531846376772253643976510735823424371909200561593546250700868790068829617879725971632106435068705261242715536558713131642731378544298653059981107095870392727812438538211919756202440295031397275850409314075615742962539687375364344474251687611028054968203112477503720136285666664179369825094200533727764414446278599021150332500311983187585396015257608059906268100562759107530557679665667052664400452847767185943858573605542596080534461587687190394440035054585274839716628975104440263615495948191476886465240547677767712307161114597426053051512738162071806029531325160160571941111974219124175744562803771690056704282000793219501887527262947318923835667335709545918405304576692854946627236967514969507294357499933420807622649258313051026915877752532089744406466564840500108587697900183588988551711153148089496025372750607236474225390048432898925109352733694650385223528130536014823621090742006594904045665989370705314619321185429040766757719333975508487358495413856188659819617529147838755277521521584701479061467608560682601472999431274215696871497918509556491922388987591205823089286478647735053499146834057098097449526182668412317054628938463662265848525723986763458479563877098682696846127438345132134323577909543362057514647633082226901694628222852735812526628352607825678338045342617461301773907840044830322610412551590523539438096806881745104386836869416499950014346771110006443460572095085804481150185770224060714630472862011454590029331276782788867743700560631541942792355331913903688525036044043795990897425487436053008629242709526155371231567483472016544330574060799988122171971963627292333243296627077103815094363579971642219126049283795054750249506885457744705491270716875450729982789363911322909514041506296611713971333286115458999726974236090408144933530449236785409344131664071598865939583558642780209143866682521720712647345242608722566586152739147314518339671958260274830225192898987472356321915391821594418019675543957424288309159945223265542118753715309027369348893581674908887602756434318624419609277572974145052596614998722931982290751361827419679484952976395333947664857431138058788027686997476243032886719624861149914998708631142563170819643182257273949060075811516446197268338390826443084299422518387677613995617977694781335391269236147721560699897064619246170025335043989851688070085315659771541209660465970537384189651070553531275498500809742689509908584410107984915370653771973599201784340660359524095219573897158008031265343637913878686908736843668349655652686590662444016891209919814463291615093934426011321220077014635032805185028013714699463008176703193495402316894554451461470991839362736702748084177601653022612926295788805000870129333507422720075250089328170466230263289604228540526355822973127407002241551272976713188237535882155294085636776257896979558419943704923543195254482827083654256115299736789039673868470753338091751675806532998497890853733679626476672768912955660976040715386612201451779546353336594226491671431257955127037864873918269103503961830780607466647691528731898759619852855498400460128540559513620513632350067824567516884982768342598061839716665868498679892950895046538708732188820932228997341780456779128055874520654936496177338904383039379775015147028927017228638719650933241264178898064527938584157927721930882552001149291961053537716832480656576637908569445944298481762296018828863506997923603228161194568856989553151300140732136185556555171444804337251520153878220666025550088086381348717936052246443651709493840292259264770612347091052993164735178447544110105531003158415419667332855450056321912056442613487478423057150659185771471244161957385671712403873974892972272530709582167745503947640950920431813415602533002078449176675287544890355535061220111273828587892035914220957294790639256843928502781304493448562276409364946533890891071721435661567994915072476810031150830902441967881509263133464016633135692096677664305106239931941303758159011628139639503454440291178958632717879322691975719763647059915428606049851652654657972408144946552364348446491569048252282636966360876612599239731337867657017513834245782028575209250091577535109016849818312366626051086127645355906707477125708496149187776941612164995511552126120084147330738703421785067597645661446781149805486158317171233959782299447872592582948305831273933432429667419473280889364708120943262874541848420123196614958510156318344960578692838039816680257229196154306048979290720813933586221202277207297502911628684514285476765662462998627777474453093506065438090248484850191980999522932019150725570008333357139092834588578471567397893608850509564919384575063710875752528897927984655567661376016920285628121233368299699798872933841915280734807998449277274124254845706067464352566593268719743884071792061812097586831189807883219022066118569823473805368295314476088200254028957614743235959283288934992309567197289692679558166037224485367705857882804738191653500666102630505793775601198279993022442248291870334088255496628185450824072319800471423933515505151990187828327445842193598148316523486944651211486741866533290172149700358679397838947239686948008821357159150528369290157334843072139804141589531684188061904896651792591918437267336533157752971368376010947235097766003312871094686842522293477110011852216497352233448272098478127546956708602237794171271843888755952613667942300622502711642130068002711165711882133599635885113767744417456716290124173332490952376568994891056613451142116064231156912195859595065814731217426711113791512845439867255387502929822184897297878391529388422812424937382900311564824108442910532414047793095368887224484774757832061798165403109841868688325798047063534537058115249276736138962018255937978495553245515718772745315704575908585341919926601991008457845647114248141646364378749928946060713194886677680515046051078676679684905255265800945584926340002634655905477752729848169514639511682273440666072992287690106348934478555197485935269427606797645514825642483022850628522851726402286655819570113379342875147275320952281791913856132631959663297240225915082948569424421412472736995889038384207897273641194902737373311862367409166229943051586400175052139447329059776214485300221840628133210370533051273156071079997272338543268973107040821861658961179727878261578776453022526718871336742156498863869154552898957299117086255706750371395022743562692344508862033321330071857956512268058516963110766666944732128158034775044295389680097551613420814508704503710330920780603366327977177824935278228207381571403266073134335258096981631451228539276694133495869239397121710886582191513534435661773474036400833004440458251682236147687961430092464041553918446263210358217806175146058832482762296856328481587800468254283593662867486032980549220555363656302197158637322149578254264725803012858008838368152640484752327099764450774259874937596947502651267360910598169127137223742859790397780989470757295002742400242233914115956293349098413435665050520017116708308053637370424263488870937370428618174818471225596276944363381855871317607562800396919607871122502455043157230042467851607322355644545258232062683625143773364053042142970255570818865087665776606480559357792198920823057524398112173730807641801952457832841584404278046383916670744168989227312493873291677277852129969979871180592895382065663232198235854255472934502124348680791619632520993074899206020387066294338756865608355577736544629265543171950295738981219543053648195316162685149989504624299237040848854739843537997564762833609841445113989141780466171443644963130535234511922196423813443589934628418979764819641434014023703411790280762882881162540721441102741608591340696340243707994968484041874462922847083924832522399963780278686580215563015008058204405031120785865915308372888591176033651690401721081028491146145409127913141813711954911100840460792239621937705056348125926412624494696309145647287775535646774946093348295780906580806623525218081041057614855435370855071993846313356012558401480328620584798803736652103988977177578128872025487586919986839877130081025161290011137183886875507814034090436954389673872218972621734716288740261563621060499775307700810756549214121692699052520117941464278439511985252362115689467559170171992709892649781679599790485001133355779322365744266186946695616115003828505646823418493983081310168267350508550862589894878218557084248530605579492832433442766792018306129191437199225490706476646082912100476211649107836505977685745844925406847173453673436364679442385841154212004832724175341949849746426053974123622708644720408112956859125912071349662847644460851822505980244157644305009756368012832446111746023755486332425436793472656200901932056709498609930523140229796645318792688234217646295704423309300509163231452719262960218659964395606657259763761158368282017559983383553032681100281125430227180108600193980546103311371822579060828730650181329602926684716520661884868636284416942619230184140592881295018250306054325194319513671104542001711259251794167625136989958535035278392977191357123563485516982469108481660508584936089488280547833794826496273113725150703584593109236186722822940671749528973794109466038748176587080846225128761218422446392539186249996707649219205537260588243501647534263928752042929322521888473655059466200652919737474368078127460834853464622140831671303410945004354208727395735173813398262145026816892351913396435433316434826216563670510603063354197273525731658678481424302461811994787098559085299947124629883468114776006576213852162349267511238439550340255663687439467120600741213527696558944526080214534922755569039064281533640906271879772653687900611949347950111162496832265802194622879821545184355892274609199869648477921622044158663043067372953496037943948629812135908008235507492569070422504011493870324447455477978994767840015298486238507974026463918346445707057928343818399738834621476348439763708290173074500134366263129593544075171940206426024108395238107546508289984938187678553335638484780397963204978617287246771145767637694689978488251372578698672563252310349487061115327252812756236442729274990855944044946035533553858245085978741330436758888623711382861516968692317626652368962355227118337427107740390734753354574370371664039997900733300523951530502154309053278451494248367040631187369959975502245042264035084996947254242990990467452244606510315794726081659700197108484293305028403179675045299063006913303623162561831814189431562125478780022693861436411187630662804262404570243372642303672015196311656226869287419038421695573490122580143642617240582213053845262954865693241574559957276553216058197725970258517851091247124526794155823574706758290305691789578991178660346005854519602618054533208903190780960107557160898692974039965565954844763530986837560770815236100837037986265706665707898506571054107285667797145072174181352316675100430705215441528491866385301255727899040966880021534806812970349730537612125880194499582490590567537530518911500250728303689464695695345960629377068830366192351641550823773084617577715211558713417763742746188548329658337121900504414631069105433091946444446632199887907037566084719136436505171168042382047107324677438677252082253667951695738229082516061360444358021179360396336732802516348252903977129198235337358364622912921578876950504072178036969961830516953225269195227161904389530573179073362141363068374365245917276720231062862359380908494279901053937795027704462783413768779696700350368094721575335435929767707835078731525467939282029402835750834805498846216532219462803735360866476596460223686898244430529302031584138191294785134479107623075454708385793316996148523949205417545849428986386812158468929965862315452760422812662176472595779919083482628270441871971841183319704497876776563524412355483297372089028316754784868136491338259641103318940773528595759636090325145677020492870620512362733181541798128663351260077053174315407450359236385187654832746952275997580180762266226650494683867583207838590299339051546829706235307312840275994297914350220696058989218888155050024359062843774196290997254602920515018975543483467367646736215459971695371554699535463450583974285774574223700661787223815472654498950145997055293199335034901622932656568665999241640280801426028306076017448874878894631921644044477382653277249001242598609176912441950964867876490868183809733832500674776633311324570782869504879071054560423357496312639647067021482040559595962014015709382033110107623261978190429216986631498112162276877402818629993060135554524119019322149845843301096863506121809386424356758189900845114770512361930400396018092282850597988524147967974526276399811819775610115913509307808446033069121228622071902770204593165350991773444857129498598131242326715177525385209073017742577647769458407549135142290148088336815982465501444702649490537323671132334887107577485431250414719957944680869066629075118917677978115005828243723882306581570346784473185356828057395181898666118785041470470588849293478540307066528862639932191611830272344812993993604711404709017434939360269604620792096047685677175110981234672065029992442647381299559622473222313415477808206913490515322786601809628196949153679254963694759324308971798695107795538409855883973995946587763365565641658951590804637465470169581459862551126243543681305801488587378250230682382193319863216313649118445966627150402816462723843524045765771909799141777667326504635278213557226621833468664404385907861465646794672429294569066900702463487917188996035825410264869088262540676542382898064416016762486433395086827097025526892584372433434836387871133984750594346861745756813801656669341769044416416235935954163882459384260889673237369245721070884419763174469581846652324454774161602977180060838408581303604626994897713182194938491127172110191030990790308207379868491665494012870487629715650037500328291306623720426912681683645449666888215962085578624503005581448084943810093991186071912044123376869507296128070831635294511736001272439099144672619201285565384197931113557246666622737664033613737836231090647243994926720339546009965542013300737475393602361315299131802604673347640609834552829036941538013734871843815516736767303065104180731646382664172296257383891567723049314454530704241280808779640228080070053024979392696194642195057225675203049659817314160244861688772396105606038946330155434719152417144331723070315257145056852907895832119546431626479508192304192317213965348886356076556269959623681053451891074127629756183833657715057315166528965547822854784797391811266492705849678796028985216450128403357355278126083659311393208285682719633178171891507636070553208944691746597086821927175201657406767673522105495454869658559627097003774685072801108940920463402783150588629553325625120858952613783484155519477968952435415994962436279256904545686032186813060585009058689929235815368939443911427068138076775208483008403022674933876996487389486338192718547954861403613515674379241414418072309175663413060833906464467731045371772244604046317761588018754564732643450822672444809503223641407493261415823032533460561232851422163094584891955039658325852437436735202841700410761197958532827477002597341115719084468893210210256960703965294220714591196026187195875323319852367816409875709896364820778032580875913613064906185499962402436578070397852177249489727318701472242173953776230394824158788405122712200686877958316568801318311076702912737331422436088233522949967693290468976863469502985633251275135148959632728743467276362622912261913425970897240227947704307792449874812886588505220397258738173679330634010059799790588440704861653763557345502950026417664547976841317336895384610089422354267585704977746900029227736198372148907294867819946297517602653205808064668620804025224754565506331694868921699692019485110319873550833921399590839914919149796750801149021424193596846646823659263740085576346807930711887086075276674671466665653793626179908714077532986586064595461558086710580928881559400416796391245021670984648074411282615566151694819673648606546357800823667857145647733645407266154887458917670557337154860284750328831832013771331036253464832297905721554143529144933180944668337488218467670229775612127171437767729638874466484326853452500361994208823234779838923968174443928226583153385046057468193396595139494122079471596354618998248661932487297189737765064536718207849303260515112131029931321984701449470588327698925358715642673154647327634315824285429347618340299987200696818329795701362214152310365828593203930090795496516991516943578941960097837598735710707215008067776148331749620039962595738044906255303664353446375387404741418059446612582834427819158597370661257610642881541722951790158191046881181768739673629280202656474507738939328896346675282504962485371921026123006144392549026177728483608438715077131763226701826350936439265321104326246173882952322364517235769488481331162944759747631036267645212674062951973783101125751356581230654579663046370707864380812941162289075860426183392965606656781458514945901952099979468827694080734072010918913629359917780878957718982754668330527338057411164379347926966056970179396124552021876607004407087177624539593353885136524575425499802201575672819079891973943195016475989298114648436987646930687328081593094751053132262155740171025454017254107149845107840324845018407877567862309820507407960483100600991121499171538456515683936926294861748251561809584620638024325406394483473248403744646675727080594500599689016486118040029789517430840128041538158979126841986949369407628570460049388172396191514291015208055850103412529006871948644077369988182742036621168459923794486869434595928329102216334014632757299046687805920540812932149983731750029229610028470389673026029169916124787853019958440841470820134497531644070028449914023786271381660970648914819136343206831784325667519936627552790097392361224174859972724168047123992665158817593464847117830953363486182544123711865544311715259983199284679613255746103741088297766872517730611666982833547267021423206645878982132447639241279328749124907259224578991640961462563304704267655091371168547993192556342479167733369997458557699731516415355458997085195371276362504040033257040545822271162170600234538895165580509881462760352558518485082439588682597331011245847639975221897368755295567050244078041518221128825202128040735273631884823756725875599772679743189065476538464044915514609627313130951463007758925705209923835718542294458077533292844373823413007567522435329261884319359979582598251401531595630449139999167749004788422117986129015517708117103373400764409291831094511792272995539215351492898411620008985477463414885797842344169706775827258805300863637712070272932036505264634279182609916085625415522305498745096530753956335064613681019822034749622292850088616977727979625496581352397297240367358954103147641372440160965605642570930346079904973957233459256289574649278899090121289302759264623478095995606044267603907805852649703530830265669207302751736838820895173765078637629899679852499450985847225769955710281374212476448462397713262192105029466625809960429310712708560553806844495480894966497204232067851818710378638583964189641995223572217180715732296829253013563519503979670626393086823662348146537436282055302588398471260738346561142932147027603131489227125616064722024226133605738817093276196485192501250825267923053064252218706495452689935046030903351051885438437590414528281079547531437369149752640555707898926216287182626758912659301933955072124746756340570809295597808315381144375644415183219836023084096907695267845012327570754832087849209916134159528624657452195893690372575949012350469910547419573442547965153034236234261700703296384645783071276582959754229030517276630242922761760622410596147939096753676606496653525010068748587484410796565952145228799400493196294288669537520815440927641946171977031398405860424210602762471591265320954369787545632452157936504928861104869400799705402899967068643366880878804050755076664947614626184217387067291773487117342365452076280948034868888319823286286249034248494369252788519101053212342443375407128156734766463110358714314280218371861954978061100511480675918524092967519575660496382213237088503191459293221960901018840133007338435518246899311176077101761230852937798178453153576979351957953342167767273316111573705856836521159248580096182286396460521484515975726248242264785752092214733288538487531259715215171780510761769051734018819153592971538378808684879594553124759170008080164228271372877816119685870898208161595986137277965561787635929420584047321520469597381501448177214195082878023961141775409108579273008490412820911304344927266698043651755715921801089691690305570894705734914955957848826643889103229748406955566413347953972103185791612661692692315365489988109947580657542644034958531784340561474471592668521685184652201103752862452155959538733988635108092454065719689712108846214636521578491577932361186434372766769629350551998697128604609192232399658400003387658224497746394501295150446921541750315566411083917222439676946207722880125583003709784908239493036762766142153257056212097488205709810222242501666806577002657532151988054293612180708504143249797129429996896676735142965552902220103432302677503194153925668612300934681731416373524650968676172752200052824819786482977713500800166281961989498077689154337865917485372364181160202226259778396142092483186312840956267178264099900472763720564238753542283480326720756754528488458416061289565926974138431390612063987694913430018835867379240631272945552729174275226458286825250511132104051670166603758055977460671608502289072011642047462780899992030268470360240958803388083827571362407976943289875595959593370377024147671829993284509609484247353773300303170189689578557187837822169481093045775683648325215066878092807274164359055850601263066188394189656130636965986240628242144573898073596522027512284825696810812931666088568288197971787971313543812517046957382770179055965334818398623089157392353318499013528937283061643786671902935734260923364039877713500480469484408537966710828598615915179296648854272021575908178757316117612482643072985816047651379035507110080237760625955949363128328980904871418510605971720831121199051335379753716858609763484914578295388355112777606596348054022607332107414570514737548284369943590969535861104038814471444963206636395942003891392409250151108833402516805164042421987962418472670037758793158692553939882536142110182829043781914871291278309356973933152443839760799967529947888413417914727432015594082017503860536034703589448446514667278900054767130265392309614367039785555090982759872781236586344460577127558017154993884126440476217570339179648255245825312716981935852378221922854669220568697172094092660815165483661009353809828747662360478208672190272241127117125350340650254496605097352214725015210807038072461844787987792957837651342309608848137053219697476876688166997996295265036974794904698291743544076011603821378998625001799480357239564045671562535712859618618567060987153509468117699085894921865707147613717982467420756311494079959851037511247971925297366303710304449568696573444517575400728694138945549677885608729306186536057929429118607464484870716963059873845507217240011679170668188577306205223208937422751581759108300123209435418973428679089310232075499311394518218589226808256584618596650018851736721619597061113345463548388352491835487353217345422301170887136609259215601522051980157216063057840417386188883403552888177213698942096786628469162840347198706460978644124004498950749647631297488276766629530351684614994689851279392051638073320414007914353824595067286852721818795014746830758216747072643512464699366442823033789344049141442232117577786119371225562047631916110356876878907952086939508920563508793687740467379728244586016946159176157293079024769932356193723922581443846235336244320089606201697257332297239178497138741454085847379710309857310820719168568593714709935846844491993084222769291207329716280857136966658237699037322222480690503487615924945733301089186934217357890931908717797369050695227808776146134327544330473275033874867355631612883033624157546303499399764029565133718884557538526117269633106577061425328038564898026618249728479793142328691039716263428949989039583320915238065792138209413620372054785739210523067458290843446687351472499987755005673370734752082974851547319614433344024843719696038307187588166004296207413539236104066344286207789745287214125545787497996085644120795068619404749900541241884629850295262485786292571400636668158259864092408828006051199903952624772545710828128791160122933416793683477540561475824790209706191733350041875367604409970619412857170357375005840514459984531144776122920283110818719492678156321453577443934983913521411292199815878943012939534333797596845477647708543595102542836169828270767195659827538659987308677752951512270155589055315037692524573791074142268847649822433392239978798228017427137061238622525596158503921946187285903490130199363479878145593820170541420172678864073133873489370694983959594617736030846610545841716934006010458606602561330400704211714170790495921038938472040211546136163107287198677150087152490059303882719240057315505696081833200192030182900140236052466923069687736926668911252730317196979887362662144208438934919279816406673714217528283511079889150139230588055208931568441808217948796722823841411712960162400729516627647442301005210768372712609531435357692554020782369704385578024956788680539413879870458432970833817375086372864694299973837821521771098694649316057762732266960873267340239583705197668182246891442329742066887782780130012852418516325275078878629783765141050399079611787515315016525000012483812670847023626386788771694502412743316846942514508847491288407930794262179306359633693856876151490335732250389683734041910094082561589502299787845084813388375951767697268221839700508248916016692013879435809045519343666198483970839609295180989339925850821372091912076834562177136517362237980726631391112361923669212797253327278697918558358242350082091958736668031091957983329312537076767212709185847867010416455826810399707871073802616363670774526373990991526042615099318778280048110345181379760353089754618642540423741109057163866363952830697096549504388639489092265330983668390221712286170318704150170408581327150830021530138782021947725111388283433025790403643365389424340094036556798932608187354541779616338641572570773675428489064972198592833328016526007054937292853835226012879380991109211016333232814421675129569467328127665319810351720726242426870114697878327393643392756456477532551580751314612547861152068913521837203027436217068568145694582153752866891798204022345324641125473297325171116832048687086693589575098103282465113816506108870958870521962691807397039529045615713585099447231847584374159537634209368009830752236397328637588752713545975447724260231887962877638230654213380863796225631603046054233672588687072684276388049898318551890830672412506283174151115825426234733146591604602398992697599642656920780249965676671214510708930525515885124271282352187839893047523316765733154178342468663493721318017123531219901140912637864920298624853889848844790288003877055459331047320991907490787626945795496196286629101253342445896842655448291237139174287735182709426773351588183822398594240622198110192146550961155322856585959642074615954184080348741624229656734920096872981606727546516981526472240580023652551141497293431278893114540413932619066523484107642685454789460284128295577840619838420531812335046661955184944171774434561522050161111967466602724084519939567635190921123382970568321567853626774213388141485358752083342084444492499075265474361118912348413874572421020316426175410823842338798611824365365863221191972080402260229679702329564632391941406240098943249159346280764180402734694102121002100038853585070425558011478145004232747312996563083940531862415745973550236724626609607603621928339799532628415127585265996070670086997967145770814154909707545493635547251650419191981755645103135320870066344880229745178612437801264625250269703717494883942997924082422828884219571472384199759306019356744020049329249227390601629590390627350419362289386985587396438474804140501329274210878758372371017862345090143362153921285189278600247906904167232550679540095334113432355109261085822697366236774713773475186265743284360754556712986881351131950419147179035563367792699438194043867180426810250574884118901922908891579185294235653940674399642667018676625170148783127026118667283700281977750215858507187403989345700139340457914113038894724433627826822086031951658644513479154297221074701573699555742381376505994286891417412928305074006816575605488268860785410252984387274572141381200013715448051063762334575396960481236001821179361586443380129259266059091945922209716276448376811694253809423295180296147204862343042812488557921128765332661861575588623758914976635976262671317999287985578227953370776744671389089788854126711610112477956955001893571644511840044577805108234218049933900742534402771812005699624301521655667605025338235914856490569448111763417690613942079098248472407973252849005479302477122694387162530574720739843156945453828516231556051361247930254494253286660746275457889448319872275700565248787905582144791866966451761443514120960493856298541264102307852161157289202149210708500794754908002951166044588805896279685671032484245667571509508738352033525660217780495948403915555302546514654866091308705238859631576260935158582606848173384648024366025101947978459720062552594800543785033878640075983455968386084481397923877498037624741958926542580736896210097055812978071089379002482533861894017357747837869026233527705520115956800562662307031041972029747315914741263949395688402982176400215511107707933358030743433320971956547621273806261219556650697800271309133777623453325092406825550599066490778751753866228503839850126593208723527059140915410440925082615878321765871085234857479670871609726657855818042083184177594826789624695246105789577776916577351824088540666921567783688733667765464379111528095688221559794726980766969326419490886816355988924853662946529777578217787259112280999347614330368284009606059485584383181585628458018960811114901565516729114190753115370055506568379897594350887270824531433704009228218349204285376397456114911436188605057225799808863966773008259004639917175556434964924499553256534350427293192847402561603618614118786437228772181567098647066414276290424787381728381010606536627823593628732401563714852487717165725030483587850950867259587848617759771007643829134764486960274269682957023792564632842409256513922627921519426886978662229776723278286232342844045424294846402053391766241774210462386243525357124558279948408821351492219627767513898399234552509630833296797257100746474561577711561951383855468380171673929590348268564858855550301700345613127381144551620481429929578030537220586718630322647863463127246233122798329629080695171224760184500408213175473331680673322004044775523699056028458188908477278635437874826664430099706735157138404624610474020146352886363664543505608717849905327637192574606724423517435028172147345798240684081850689491532553320317616579234939005085101254864620207888986996230288130542424230457942726301274554491629099205677008170406779037792257749345819058148862688883721513957054710900028839160040873311174698766734346901574228839870057765718746619997630402868171820434414543086063671428337717717861214365279564512662920527875035692788734770916031960016089458149508076443468326817611556387717017069611735779401272923399738377506673501566495744557602546562135607273956945673682196253870047672690407481192776534284776315796486882508315861961491805694818348758664924326276833255766614687449054024866182177359728980193391310486293444573461902254737211650877691406083378720566433354107677367386269435875247792631999103429316639902060797788321643539837653642225973510476126655057755196615133814722785683561020471896982941295367776482823433058257465820111403474139476383338288139913401475790898350420125447852898292762965360400804833062325779554115998681290634903050202695735813896460437838765308554977882299340427400977258630351996526788717910614882029306029704873614509577656885577017205817099116892420040413956656846696073167885563729634528986393613751530810126066106921542040482355330671717524759007499462069713501987117182283776480664183962876031896207550616364113281900979000417973770467169147912096509337534451561362455512853816947158860289925396954090673828205994407096406623007013258521528736165970227093680236761125540594189599970701765307983039762137086016877603529670714611988487691534259038351543015968389222929325558282232140626366733240798799278601811530440294114321580335458400397847113101565225739983207117427835095999604658979471882093454532480357285956192818162532173821557134503087516652589674490327745448706192109565777430681864520914739791855504372992928341281161890215717102355807381018643830542649806930037957979565139287925716006008898243874290090075977912049327075654473789988170649209974590686055410116094976306168491586883077302051837764432111122507722509620816876786478006921831249607663111374037869766883124232892800624419176453010969258501563700193500160969257525409814658503445221630453757445777507822336819284778489138933027958016346629594429229114769229477176136766279363089810601620447269896071959414989461522192875858817136272438373049544773875943317482876962005024545073025578080093873976801058462427975923336116331483982408225553941099333179434386638419307282510089957428202450674024727149628312925945823875293822161032580517186002611964862998949471832441452754889340471259303318874883228947169843359464368810260938209931597423626598698399700815873479691761343579379094765804586667757021225452570990187994503197678118744229680312724001166617637846953355432028364386028974644202071091552340247881641259667213481851834175257875196232075767338616792191940037060021569009318871129855539691471706342554008240761272524263005611969972074319525835699558451320738178815890429655776084143824094016119772366456165047603968396986742234485511556722026583514585035920038553541299507860372614230485657862103182251019321933461223211946413612002881215977363325627922700208000662493289347690423142138578866603160621176543758537134694693302094536814470441593868981220112643007556942061774027455949595733320109494741384429596609611224419245346708088546557764406176274545719140990651525039600060111873730412184289331617030902501555825425118996388525512594921672330011222969133691444976703322183113549831963899844672579451405506607735173061289019508943493450622664297723222819278481501282617890444801224320457817395475041946322549290061415756758829029645681041166828458009298190285497230522681273842052805080600337844192123482480659961983600253206072020635222020745888379432057860622596294584443696140087133345540176207770189363534099673244562607747983473952810946740115268830361965197066511276315046224875229603006482990427959135785498246838992880327367567191769876072565413866378891428962918349089005610204725402899896841740942078340058963566922366614493646838971294679653721459093312056623200168167967752234449244041077474506511756465382818836096297983814918036892696819535636695565675934135007800620937061643821982849291860509090105349175210137476172025856199337624205554365076565376540980865627028343497847682002111355372535424127153121654812326169363080400891113520729614149339738179651225232212870791695605191063654012698767414958089400937969603963715569057239407800498703632315756928096456464111419288547297706475132290418353244849865987778338757046601542796745518727955817897467328231430225927935961974964558680200887018234855455896266441078714208427678135848623193674573762870025499292719669348572254726764937209569905959300232205836502730241483361418449647207686910826769801317273117726829546983822337059102213358496512804751845238211528161413607603566066663119685464400387908893625215392989979660220700362981017260143550604066829414100109847117273602936947359841945360144415210653594478502897896615749750290098298918980675003906183500530469590035001204974586429218381782166055262829053469677812853933372933353356279669165200203033855665410410325593449974250103465151493178752302217995884209799474625735594046915907916293562027788740536606555720665628743016534405669589423396622098618636215181836626620738499576489392916997225606154684194580086792201987832543647243989993264923206150178537347611115149292010674929911713404647796805174698500276761468444915506249098781935876745900515230298972171137605649556643249900078712319007616259493415304383132131889024336889847667733324496322202102578488422895330821074811909873932380377516086045996568511680731423773098317714326369107522902475248498066221706415224873825261958917973917411828995089503656963488216084332899012351212546717338584725347252444349653766122467740217292634562269263912186332242775650607723450075355142993553067764539113695925309912886333908615135090310896099399568799518354754417751952762293872073085664700612423656364987702636811855686550768353424242429087573436542926808620500203713110791576601972094670607436003163718792509118247371611528852097251770830856627588777281469199494105683301125437960098233066741979541200553186359137393885810455049054648935613143469179799719590846325906637765855790003402278769943809212708280192632556643548808716670581965292555103320961310701100833037915068429714907454585167081203052972260480083129469755064798035344720070800553647406814674020052159234473282179022413087964456949046462218621409507851517373592160784880660102943340210064688024918931574003291527385754278669739360881707850477382916979765814791572050262214698478665312075930660135314277156192494412527223385973779847659319201028806368161542997066065467378751192873748579917717125258441660729212937071795690778649048419236725642025481650609798693394465823812863273147077421913298500534398236608214538386850302783551204284439319298727508332703876340566671540239953894198586960689334286551935258811342411145859960219032005076961600778259963336558187149096865548351349463003868813994303780241442205898867814649238417012842873613909820335720656805750126001889476988071864797135933474628373988241099394875933028981587697274634146917462813365042570029818776406740858921022851633761695850356304419197838556647520511197803379757691431789031505258847065670263914445013841674924682596718069761034747910724666887240316801858096517174403900097179969777810408334946202117355147556979092701022403895707442863595942351075904088828510738648216431985807949514105022486228384139368837074458479551881553979534686063156890336031793575799525839917421769051343763078491595028324643351410917640727255614670237149509210158489256564799052730760758730823241044604323880761960336822980674168155654247206279023165111986735838091314856182490284447587967777270492463643465954567416431472040092555764997200115979713372412015512365094820101607438517297444099085891931184203640470392176934467722625405377110451214632212337477629090227372940858945407977163088578753670159932471180781815966942330657254454458681354016822715216219672853084304135259150510630117418171251191727950689231849922931271560574530087150352115631373832262977318084817532983974840286186907653118810781687420923306334855886844304364142876507053643064507289470485182661860837087866217115627810226432428465390898648555900140242677802505612864235739222019447496696963160745736080636376795278653385889786546204227846245571856188083065183918967063701594987934560236058194360525470480287255980827265222778700021971969603590998659649784177081212734146355768836008589440190250279333269838319293173057586529445421249447115935660679983775925743808886839752893292961898596534897738775418044562997808698281991750963794967939928357585606624097504895975154153465041923926064145107395015556881080750551138957548859791501859837611947167908646421870015688299746216884072358609231415441871200023530713210480494161296967180640653456926248831812128948641462383523726371416390543843779562272956961946551850567625047459213502463739071131736494481402870274381283880143495932156998944220235624010781347294488078092628357391471665050762095315424424937067699396639395814003835696874628972210453915363587146559885929093247799600881028775758982961504560616844181418644597986930658768774828867407421608600888342767039677526584393354669845872353063545352625230587018578790986109449383818100296098274443106972117414023567236495265195445446275916999778733202469589475722601929654148263765201017026011077792746553389839524868227816678648203027299260789160728370636722539117243038240953897222109208023127429986678383789194386304764785429983591432307870528879982014457254703034202220605905428950778721981675183770945992740489753868131043551890803759734338480648571711911405447862666034908571687288260625624846670540736402107151243967197113846855413757688099290289888750657158355448639302336410852815408168724370872349689295158755092958163357643942209366241556466066123325025526680918569674294745111563659767614614408466353636552170707735380722330599946547530832995265764740583029188438021078688208167627487963603144262304096437871250660804671705728468313928306456838026736438285811005120824375268372756548260394220797843806431050768809806613990737870219884572004137323131812358081228448879617493683060475243669433356070334043702168945621532769226564214133792419393968593189986216006392988218729010757998504096063082873159154692936415771723651181791109956516884994266850083619659901011588672675449680223038676861163076238423230439687331060172619526416734302137440243533847384823418412287625484038360042204604366301039669342636345333593110364856363257177378125807472276511585159655081597165348979349186258832841546186320774534812449264330444659473373224950224314396123343850515408000674512957118892900930323028595408375157506520830711245782152261085395089338976496423456712827829325300670808039519680376379880773400525335705634165956869786459851163340409752940267408154610411820653915323422949047066984125185836064503090347778674142861863816666235346340127207004142013273766179050822744084007628498651858518645620264148106425841627296273206613873985561161173310105209780074206958666634211294905852721619848999930557161910270825476170678315449716065123277724738410688218861623979299777225286593355944563669119919171313594045327028534437646810926168135404799008784178753027291911819300789903302262630624651388402001032989563747858822229689744667626196441639737205723598857376041952614323584554260571407674810429119181305852442594604577606372815734148548771524774100733018411762817883140755123131050975370382081571345148733794463544988660061315655593325176862014306377191929080444226053753756250832479181207241063428870987044466610432009185546545511243139908425772197606430647426096257236795054718734474081898563319930928948674800497680931416413081761364763866203552780979024693017478124126008091034280892978352649505014718168982416440830269792617134353317291410722232254851814646573121249438152997592511718012042586482064396697247583698191546664037699028865837216561213893397817863361390952707231936045795309385846581890230388719766482469333046519034530295425063101119109540466393106139450323090602198427316397402222024511334755954219433580592553396805291711811906396143826598644834357789837097881428131659074954223999814093079510995375791827191916171462753820381361789384790904322585555272566673345218145910697109907015713672336603867525550628271519053282624550949937361259202298463490831487211993369499410849253027484647171667824614376617149943211625934478250326691461717667198409361464706083528834782548234890932241807675547515550121097549702093543221947273953819538860277251172713953292483050369741421930674533199566972427055770594765204482088544456428759274090969298966658026350768804923741816234412520987449200639787288179890556446282409811218599633078692781508787623111091901193173669024409638904030632893128729491541813682199216460070635181403087356092351343045977020682237891896807719686016141374279782362040939240849868935579118279557516177141800498063589557622638481511393385654127522931139616903411482338526122911303986431198038116928636765531466182411540636493035220572767222017878770709279590015304217614720029537758586675886535764680950493626720717232533762206316174181906293010652202986153832451128945033480675309851197331073552153215776924347477550188234097301453072892152981364542719998590037048078154851605108483145775366232187986451317942904031934112558460902068876201703338971153070813272813861617907340922644644325958421340101308185609502899024072865732750980457620150352532398095732900878291023808596925035294783867698797934266403908088065834034334626358602985413633426572505279107510732313381067129161822302203374547914404161583160394565632562874850709157134606531905211197079910475414011154108299664785485290113770777721641890723545580167757970638002598302612248745574159393602169685038558061605906501485382823935132178555286403710554143401041032732814735795127194518932229481690704070813146440181521016617580795197710444309846012680149748832289746031955822084705021116971713796430966737644931101399201064614621931986025751171890272449406475883524767520556095206349405173252726626029231423700207052070327273460232965433633858981410972816847377552758761584419816186226251415931082634604315641115625084696669196167716201523301494046735538862611125585064688589426967817012394104086347412315147802197228216808922229893730807416856773139679880045204556388566269948846207511579111288084734281919523614669448707654618815569724059942157377838886852043678352489586121150316530113930930894663611588157078278016967065651045023877212518229565951498029358525768325574994541391698938199165137798161642461163464304301784101353570840434585074401238800794178761207259775563238465807000717424472019740843136350149680381854807877468227641077469166521351451166989409225455572516381580545440794377079992462837834600105362140773927238717756883164488617207686182449340570752461674140904077695814651245270325980981929741479854547223859399015839792419517120942440373479924479633923489053373966770049185153812973325514381222459316029141990286617349643543929277886133024786016191617232665977201341177596641030809059170282445330824814075823288814100538957053747801114025719090881856259381085126701521847207445651584717473516549054253714725951009469494751182395113431306006566259794081393698080906582410115277539546663475570845756625878964956081293148405217663756042663888183118401414818226313331235446004953720405663983816073332295700423051445786018312869092652967693806131519320598031492013930945699315608528326950526888279855502616463102264912181209341566042331841812292775367888105087742353252255124959210063783777107523092380524537560551388266226164601173811187799093862565386876093860851303878128626789294556220997367655197587656576433655182971664935963756721447604491113493098081031687205472923445468499891891965115963765766243418584983731494582907355236268300390545078910986453157612821755665366417194576630975405663378653695865311490584243079826213918244944968931808583584622995276591227450991263344035558789160791674588717587534295100877903312970294723775554721742072202790584188138062293092334118955170348736155257113023428756094222864623301487474216591441439347151757141465117721151725334655877148678584431011472028527874646940839585720461603951894318302145278603901573435928596850850602679545818372149342613884708301909651324434547870875995154067147648382863919635412783903648945979073436654198324298485044664490498519198170252504149620127239613998692061348139686078204458358968135535592341682046284067036001535968354957978646570385694313496334008292201783021171465717820343465143537713569657835852550079150535832721963398050182612781916115793833969684613773398123702549877271044007041671252419928809818135234268499807576408011320355966898554729432130724140182316407821455873492983087276372795329747524985932837323610376113783945817446086386821141807694552049850584071755237627130312123300560261921966108833513445017259023244703731078493106366162430561417723560891907577596241446085882693456324453206681255193495692372994800852878625088117487096843744994225308836281262236149836325778657353091466003993691169344313284803674696528642907500551314844762549623830315996978218906993591967532580475979640639657571765311488808534924094279460836786054029122747827450144837284152366108317810961976618924029297557908581090558177005075419490817787432094598794536205851142989142479001161112047062432388591964959371713398762047259236592364300882951152545020691805544608270229277696591359987980434151946299433304552086777557128398390791251831011108836074419199632825080201168170803128308264151563830020891704527237595666178530181260202040079329219075906247541241733047676497233696981459099504936533972183416173814676000328658604347390506514953307562937193688685958279756429424026045277562266547655027230221228154946046320243782909468192259908204078529346604376070220396274278087937274342920530656533342234805635691291115230539679055124316586365822792517378693870035406271131063398256500624831440026823750950995525194498658824655540835641888482972588112623810544940190122101129356066911605749462273109211913690565328454128762116013534039783135243718392586143642998051236842158251527018644100875448488982088054840549395109092181140509589989481889652933392542357696311519101751300052122272746478217521130534914126309141548106293875707656737289724746831332185064986936265276582637312396022970759487930282228076964771248618428060507678003557089591619804178434718625314298605220765448026195420516714395596243591694603103018825261468171287192281715169847620998225039249812537211629512468440527503377575716259954470705628806857054770842472066268965786770194616444525437918920977894400063363297403422949805921436518552316783055449043463583744529980490137908540938829183200921358888544065709083559564705347642710106447389073091109033712813356718379480851713193061367112547531118676080480541972715928659792846514880049810229826110427807787410003900153630612786718506459340733557621969574017436389531844409410463797991056804073474221365081945658263847170296744892631824434832084836194665541376525381640994891726192945146549288305760416467233108550726758843251408144383369593366884813338925077582220648695022038627735737227169676796818089931336664877566404273807299507913466519603860714987799635359816483546663871446538354127443661375516693026438963278528574896024371171827183092696961336228923138200513111242323190542865408170646724292298789981703318885985131587296971440851976084252283744262139123070473724949091419686054315500027103405556426480600991935958587827826091929002699391545555217988077287562804118818782874711041337833966617505924024593295622632488620688057666175959763020194220794666040584481042981992647547858232795454424515917400643387660893023195772606296183779849858727155904078424132413920051973030742999154676458235563838041013945281517782343865583957037231929882884620168870044417292457008445099132198688194888107910643964505419363479410660980567105562157040814623156293278441753943916420732195100525062582860816568531018699481435831240395591100537476411411148683663784243646801518212177001529263204162998322922905053728240561529088509656643955325391641181349075511071832661115353406687120063451188414904094648061345073055745022150408514667230255168751140241751936155316156677080806930442482252542843136755483778238186689013317744387577556832617118543361588980724163691889359139501180928664085636844751892711960211732675756347379064184818853522073389794830700387813305651532866484187736963872917603081568907589760999150152161138540682086906745234425231915495113120984243291373480655769021817779318436555733416414845088401416516989630065989156466066294744334790371333799655588288562542384594522711108470574767809916921021340252767843744009302637885575150197953420142556922953022814332308558778667391843476087653061276248697558616053118192616844278933806055475153284839432037509140481749652934744758883057287579805673941100937494494650193408845813713837972001819151528093435708208535069647758492851326323285681819167033804686503026045340488279070822667705595658728561598970300385928666373829292478741257849620617086115128470605127123138221551953540211757394687259050676876424092957987162730073995749526977733285835504498891741986570983715979470628204792531890886680438074656634854811808579304597568838376076034555777126582030949598400063723200798813395861434784156147881104058147712896183694576701047160666550345540743468057553587277968309473336304386520846729665043171506466733072304793213598044507649379945242239963346905379159293545158401350673225559187433371010493757498549714977982964513158689904557927819442962704716522175586150052003307373961165343485163066643515395040061801802658318276075501462079106374138289075180819206543777092446282716280863961032993243517659493674858283132473156715694822366337052228830348130522952407994951715146604201854795564908311763235777756422481931832604696352361932174121767954179208258000440966120555889928444627598742278771904901872892047694137952689292129513228358888091328486718750279425973354190381627683308568153558070087322869931429071743835324174977548401283356708864787513450355781857971356183954757047082170623688969937819502195516591776155163617701432928519697396914686718917984841793133961064978310831038146695403464203839361418250871279727286800630793169525769221343775280974538621719729743746562018652776997749065854721495227182277833735597298960582872526500056285203957410860939611954926801747873049007825251874569853475729323706044760942637852356810816990852332664634240824832529858666183093496929825407229902479175080600657536382782678683934534124038694054868859378542882911230898169313921072028458484415579636634013166050962968943942514108334138841556734006020347702469481326437878698029378723112930488282972515072383181312481949757097519629975737946123919675752519916649691951293335068597271000318820379882996401478668778436322329712624042396361088070576381306484018994811806502065533633794649610731003408978019471810864486092887499024411307303098078524313570457392148227632809380243440996359837265618337774147436331156733710277358342041903488460172842329278868391880928118476792922454257683413150134660074585447054496861693850200752702279701921159712758088900408218711063371061882310932717054306026893368026713072486762779862622461782535747438873286079630222925097939466714300885741903821843526108065126523951575072700445385440001280149485562660425505179546467182622396903449879154092382980859589715700978865201310554829477770405686561408546889619363041462939802963281363686598467939206102866136053094779859784528192073491956173430212407713937202077430440230322379592019109409061039256944754401813208276880099180668245433535669164585225857287527404977934011749890140224266558984973836632121328615811693731790829287606218773799304218390689236595880319110491350380817702015825008337944244766880462202558972593848059455297675687074656978750737887456859332784961728948060924629870554336428488931303931668018597616742639275388797879008488555474508234643641765948586260827947404835019979874102381685739644507377881433663199973721611784377981486670922404192613518256912499784307833843336036781277538375840462457354359280057121393600767391368947760360468921382616507106343716676042172983942862581473262010241371867811288229439558632130383880214217402565025691273087261437150824671053057325951504705047942006444356504490333726441704870653611563810282274338978321361710873526668310844440893697507435791397214359022378304106607045352699109426745604039470468179481479931475929890964660417522978365744577623366624196507449722241972016952613214124967755159910101093084168653528878477184825089184696415540803716122103104810457598596863423173044573361778381660389545032990025512176896241351625761428778745774430861034688745969565555979117779817112540920998753872966668150608006663513791502641219479764865201654716257185247310803652549777716211824816868088607980869504210201956090011033591919401893598031318665802857425972697295495854584957327986657124309906421930815448479841602557488992816159893039216031949213985292433183180719844180368301297494850077670264765730271628977047181656042966205512739091585254354393576890621508209652416441129575275962527881121822076057309867428719287783120138143779853846683153654469925528434752897621863400953779907576069853845161839054158273680767800363185811617773525395983492056719679589107009725000272100712464501568679793299769282342148042436925307107955226391386005612143042691197632949570109073597981550965867148751416639161215768976599730149380552803854602899629676748013889021066840865856267090237304700913886124710614279486722018446633052465396255413391367214105921529021590728843408116358760114282859398993272905402305752956161228164040034201717968893877032816889611661313348568612213709761735668552873795049078269118972689640533504280324075276683728140291470015310249078955452802420633185920128947636842533510851855950457623286570643659621222154368167340661209694809199454367418585645154928896222886234256209946092986695775103764733789543727749977109854155435814404712661430570860991901614538766763600432559807303403977601305253537553191487933834678893737986171190434968437925156640718698697923709006767503773489510392802146599415591046047182336866004999323532470594805767997628723417941111097048889759693711069440943913420072929639092797693000966410771935882193583018262906629080908475887359945257699708924314372988820491590985026543094150187647948599141745763987700321798307898418761322072054121977819794145985309326768701384208047514789216191433975358985443558662562179256137537595075323197313412221784791405951423270790060969801220845121412873436073429567484581257564870111862611886747832409206495499453511978073370983367275421691152842160312236537131014181196861391137630829646523245208201656125750341916283457829945364259131418873374025593801027847825122022947722164962274465744601486786413607939447788346490625532439252840714967430705192036611084175945524956467637634656791979465787050059606142110050444305332784607679242238844255238855009519831873613931191323022152464305414480081975578210085620707480035493290797500628161749357483172401538282400818293675879202471058650428855952805344648449650474955401405849283633361020579463790504915538771831205502968884047752673323630093745368471014844795614263391649090670852485116538460720890002360634415851584381096763121064017653344951993484666599537365563443137181063188398673730922774852342535604365363776957658644540131329564305576234308762909793138294981134807185988056095006655760957758822508966604056125437199582538199281727158009338960198047465044202743963100533404358539938874690754736933705032914155147421763008086305022480963794691588080487153850649418842716240384864459649961026056618082191565452229895341226441022520833905121009667886849198655692647023127110384945326517591546224709042542334823478153627482344132511620736561487867764554985686701170314189201632813031578247030071922739017441218502495910092032706984416166882445312626392390770609186466049733461200014568810896236871297974704311634616687177208321104334448037841094671927003925642957131640642781149639403774288433054565625086242917930756690806312684726388926319664590878806537468538253681846469181887492240120186539069316933508335631741332213881986071115403387253771477999286146903622949005112015639030634781774644245278654455868506827667897490872717903501430926207739382120321955900787717260630326862586918338382561252350989385034059625788762497521780028341996393065260212022838353179166088281734438031353118234601525728302019490414465671389348698831192929245041265426633287228272943469543341006166888539036079960782828232639453101853255156709278505161579356461326084214660850722233342842750916176912038028815505626140431087476305929152038512141159536364008973376961737552171981370574195952511540391011363215302902532681068748747046905501767593814331473524885552332844457629209273454621344422823726342573370307726344793085074186737561216913362258968541554387452867250121039861075149980739200130324150084668381015889723121719690780813517024152611235351019907416363693280978020893065003072450690628198920735246334741545597697755615346840553014978220938705013616321446350624463394156772941151730552440598310545301543859000920180100096991924398725065701841295305692853254050442739048155509672753094598264759919030532224515808879256706680755574416398084495478545280472667572600133109873783113631305804855838841342975526450035366069662758322606639756880913220904301005682668548696649786443009291419874930173466107048807737078361521544245483341486667132491151213571518052679430810661114681554507874881321919811080491400714420358242530106268391381609044613033395742924592966752775344032442147777921274068681801579787651308461821661923473100796241238130582247743932370106140107402937539763137219298373273997312410634521646242053763210034913990339109911555536766267558791544104848020992469682391905555164591176661968261483646102384193285691115034181978499674835992479558833719275671148530868662043318622345320826895252959745128108490805240257809814529710866702205810572699880113057188390150362329961174624677892679691904507135241632961041003269247380499710945690304048154903704817684998476897687883353962109331911486806724692727950901438946214295105567972943779244782080865573325543004628113779414807630879502442821458868615136943791274522588618610616559140085441076786071181476220111958418508661416196828042250008160729995838462440605103435914630729725481491433600457941187452639719710822786322456311980892472858378021454577189865551919475194867604193971582201361177264975230293432619527832797702782294084061695772362784785848867600733174826640424617583329091685636721973109153001196952985511846417444663153755048827298569200677200151024192299362844163073734469658343980177613296614676414580132220339341003950387990096450868239566479306103650262046606586229362665492243644660119086834523891872110964995725645643022120441743794255258446595564098742040384923686102809542891264066716624120286333808187970253155600957755859089009059075958381382787262103788811826638886764970744707671159478650732508403406835490016658825179640801810954458934610006234697150324436815475505623527003067382144143422976780785203807479644109566729114470203435432159134427461943169093599506573992170377889250796377889072242841219425467457315209713632898205191638574863265017886816153158315048188987678935546853591906469246245499003826122235189423975593512694858181369081487867616934559207157402508274472291901623201531696592596437597526438622568116948664907045510373613161202477112752428517420087548749012795956476732226849964317263597495263116116413549167946163021991405070964743650283084372538000039907693377648695939631168655864635763594027785691322684951344872652221809782343468096333032264819546089009139867736462652011746901999464974816686629862928698052581104476137341344545216453206191520072887247625390733828997055844495669419751675009771512630380879844662466698642046360028370879681360336973348212433694750416282276761280253306471931880897767257711046194860326581882872506210189382206285131915567259430605725164736359716759654578458196791576649419396034135538066957018165653977439167558267572387588809844668663737249657273894211631598824867526470534259145334234979771703001065695572397090714483607454666261419727728766679129245796083508805303230117781864927017111463343390433781801052904019323112177931958923242512614854774346618179259972233956008799654949627348495547995017536402138859101869077001972924916699554525964050591853226502802574009099217126441890354237745861528785308010315399568283994306803263247528365737368352916612721469868288904717680104001151522989610403735133237451159682843567905291601043635755171626714866090941406006857538676971260934902071883348381431109145788702115350022638344428270268474000234477703418127268711822578643096500775180676831419601480124861839513162934856545466982007554003103303778660346890993435670232107788725984162776225447122652742542778166368031292004543162659527468495885216066424247751429604462136650497589068796196711696741633592985128683398995854624625617113648180012646353076281111967779689682566058675257959400818842295239485231256832357079507952533985346176260085415841635146281616962363237886932807131289960356702129333002602039539957885040070154397693875765632277467932185184660794707947033927163152968214562893240679917151381107034956258479013773889989168839613649310407267325895836515607828534016120300723412196369740333352367361211958066558610386463850999289439815740975997125312366963104232382934247406140721939318078973706161402410934696892520532506295915250700605713899301601416061911646390297975475727939510296336940386518608495798861363799945966043756051455260440438627200060169349956975211976045651780981353396264400552352828778752939104466786276635184165347000452742643671929262415391478329412400360472794667040215042994805446341267373879761862886537817699284529575505797111148976265088276539299667379662290316196435574729429028663398592737438487627195244670674581698923731996052722259822915856111626226012448738280705103126820552660813623732479971468368577998663273827586128324798595640843281007304824678674542106428010051051657211266670182496907638210066735976115016674419889339871575041672739795609392569399967008254780016309949463912507435400394086337098151358440672574963952911482391802919458680146293588086562411718940223405142486905637949109040167653008881339481661770476721110265033773179497189806026674142049151754784054906917156976592314558074222835717669931768266648828250808967613967296262478972559283377483339188224964216053457309070192462848995135028093332544782766374152894571290894056489850933050675249187244049214790137562801407045479859612156375365845370875597330950088783110513764609983253075566194467693720280672138948700285211945334633656752023422608862052647056370445015559697450223925595026934284858020522004982952010240073337079630238154114068130739924819764047946261502357215944403419842458922153137446503117771913184104482492707721468012630089840560800739556245085846012503402765888507206828469970408610231749842800055353030460631023363766037660540804581526293422083563471309651151956507032491972012699700821177541274995879238168077328444304424050183221080400907668012268828271825351417964337952774044563250143411823821830423382812746766524907713179290772461436547877064611610848059501079068879793277840278941815675401195569994239400439081769423992492208324747761595489143095762498531051596442875443887857378544680622885406551594180210554652477889664411582733364687852228435782033202979502617879497798787221093842585970627557383161765836850112401476050845783490734977583378193592120053293981936180523267039184509620031000158901389695449329441890293922835552668627755534813173776819263165795697808289674825802136257321502113039916574513201445484959501999769152321744665597963338804887205772347910211092739104296853374544352633647226741454588352651476958750385652901230604901799117691835416985100532503166547445916309390669161306693094921613359297606369335188061755119782991495526240460728885537681123947945262881996055778215768373774858088278606228300350029082672443030805518514924625269606864774918363124738955475317176439389900763041587370626520248179360360190844274580471008027856615127762645284127967568382947438065455987560390547688985510935471851982820305416720074337049257423865150130642042292030935519024797269020331002573211461715756647079143650862353114230279455147582123724060021379677533727564921026220694279187132476709340978785820689898667820167113603197997140116381962175591653081349228652691765684058220779546942564552445047900582069137209964873188834616937100678720194825930555608368506138888438903072785407560398824028988083377255662742014922136682400544660895938987819648040522430399728814506101405164110627368920342164482851988080238454236183097355192298951921777356951597978457828561461890301307700747863758386313285097694647316878389246023315145718346585633636776346394882810592604589518096561162297292093698488645716984161335338728405132216908759864527662277904489046311021035954675193344687182636761178187953580072271055961746606163994528457134319385492265377617508204523829234252371178257517377136354038328109955427138728663451751333951668949729378241560337389729115473728503588450924912378096230418394610304206761009561883916011457732625523552766132286678722848494613417208660947300523463944106896137603778233522375471544192635492948027558806585733032439806492310036090451055938788771757269366893365281194573542688088405500067184715040737309576829710537039578771322132796272636226219209476805779479430187648878308617954526799820294621350385013799355248538355328166817767693300983875141116217454457885484688510570855297379454884103009460067484194883144352545148126909729033714417411991666594455524831082815977168672491161091327473694985762575832278774745627863779181272709666339235563967761277211230335838626285866029441031904126546893291860571921673169186562354410643194396680539116912107891928389354884555573923734992993676982226200903626485607668030860031470296080794648287891450810651683932544857224936614698158947241094871615124272441822242027020064660989863258817927013512029647056374250494047590806527395095647390602259544629256858771003570848304616740283102259600275330121390878962234273157067031255722731486951127016822238700665738584955111050008559303017210542053014560475497736843613910040590276606226649600349320979592191185916777967179623221790915632078458584501046525224434698688296143934318510941328190612099956015132865896978950892334049943174626540003354753289282668976886012274867161198430424500083081643339373710093910894032176193341925558440116038962551062487062093371646988721892914492665293732011072402323053792159757773529717901224646101528906776331758427740360201548386400837209203668311340744971709502286058894321575470372141474733076138051854124896485483994432208522198297543305903875525017550410027595098955422066058716484327139074869173918305850935534505135168116713224370742703514720087795359437778546057501132599577085499990082746444823050566365997148537596882216602524469583576975106520516318421590825601412527305818929617799581596389957511820389069960530390254020822421609827710769579899999341604379193123756437137166146094795952616343992313386616361435743635596413927935917697828780110589406834463812429613235967049183577106373965128008210827374925084434211823848919377561529600436286135476734503888138793761249507458027354260760430320010810631684771813891625185538560384428243947677597130186284061163924631079033138366499812245919424719701383379934518931379498458491933128048456889409983376713597973201522050328162237513240140608245900102594558252214973972532399028351402502165183134656499612045416149173473855512232479366519047328716487455152672665480969436026066393700803049574807991088765022093470401901099290056472973904446880909168351144917015234879806424631449636493173926895933980071679193777657021108024835835116367429984814038188767534413005492147422286603121660139339914262184495420844114683086540999907470248273764114975077080874307623076761912028361850725424653009174967204036253911452869462762678154131190169366971314519224189915476496161009110743580268268548664983634976132202856033149792955731717512332414154387636638884473495730031634476905045134961736016656495669785134792889122327613268346619918285506317571556199064951612291807325622306451419988447099623922855793372859989414284376042651204662798020975337973966178861230954868184867727879036781065999088281216477335989696787587896490172944348421407943909761778691456625904491592464184018810471189194015011474498832434515181093630159339875143053555911548521375314247472546529308382073520262505695580482181475077993911275917820011626384062964641706468822780832179415683731486293389284300512360499917222558191510999920742241830525743034741758792619279077536772528321841324958720623556954324671208477875688907065165048264609195218648608985571085010154018287514212137951763306140336789683274852001078109973008775084053518177849928743573621887858061027912974657679332458077738972460156944020964509499808553443660290964586418231409053485855187646807367399173670731522977809526446080827259865559550060386956961397391420388055939606471769942011926486475019262921328495978496482256545472678587349676278921059329562049366771355835304613163091444513568201869768766384511310801332888241516622489207159411855224711284758252504284092642331192343467045063693559206346377245456835364511574256130407243783596136596896417753991511070514828392427931736832004620552882090616748569005736522366628954023983268718470306448434256390147314177498150045087114130868986468636291310270037875943310817415608077298378533755034043658604648942976901036983042550451176693360572409065199302070832423764081582740413736372109385653709971882530475564510801972710808451849647420069924329050062773173606629736212378456217943613798690269090928069151065037650166769930222574849245041754810476945925943038925843589661391817815701155387441800101671570971274030720177236445150836490886120429703007223062504789175594349239205974766966191740939400852814159576245859011578381879891371074787540339992981891525943889637708422141784024985209220631237209124564067512672535779567397525976252861965006648891254528966729052223951256543397298741550800911637287174698066694308306669543306099011733111446658609647293684009521647484633793871622579067614680501360328728310536266138746942635434968987849936317685723689372437087426132205784442698136611174344177973726838131026937133425798285716416100697624443236466085830205360555201096693919233283545553287672647565902302124186099499183243468566140060521348252695625592274793894562464884104064085796356808901014404902668244628185979910557364909742778680159614104031522554462642892577298319493982160209410751063129942957296120670252137821730493226482195642517678469151148366298004619873649626742651153898671651714460734903308202466439286091441195908342652344071304883212912686021825755574031092138319317611626809160536199090507972154931653101200067119858297653712611506190870381443116303572808809386065093163730928842790270701808133185500120048201761192199458729328807319179284483956511982696429851431262853556012584092134288280278071559040207982799056745491530122248743243587575647964829500570100711651170016589529780424508420708582834716638442175086747663143936204991247390183904495115313343555529941923622074513000029156296401423440352947442371470956738778877529736493289870139162752556450624180390414043492008976032886743907393739525964570319437175653883649239782669162940829690334226677087643177064566752969854243512604375202400953430799331922165364645373537622540545773060396641258453293944927795585630183751492733886782835283550664920237243103671376792701778161791190104399228617472071132142079226261259370701072933771592684627991603525259594746658987987841677303092062295857553901283928225527743891816223384044476236795647647167068843728615727342948490901152573265538524131455357137418504229615691428593526286309264852984355749049824831850010239665201996291736831596119358909082932506037320976910233938133508775400756938671457433399690674765704190276013562914303499966823590403861577246281781765632173265571476863432938710769896595541102095587133173894785700972129807873835803417771686726713367882670534151401129885859648924557363046082221886965787823862150018047482876827789359295551439523809503461080069713638630730196935392195596720125100649091593371330873695100117094728048678839818497893221596052174114434159108058730299947364993896663217989471699888443857309446840464891670428745069383314532135171490633987309421707923799437793112196726116429125886941689530302086803093551376812586812805729575630571525237769724368673360429466379193992330729622572976572347570012278829580590155536075380194001938627417201555550726594956175560541018143230895583683094294166244993884494926331183842672559812134057296271029876555420875245611282213540627883247627201692083223486285608928275990183719797682060951226276032170973041069044394857718973206106406885547165988227728677929955539653306415714524325200411135084177703062144916421194167609435534067252057767997777914658959164675939411912409130801606655568739702603704906557112740343690384908595002794131653390218932970513283716738205402531709110392738410887224896208452822318480799139140127008397930179576329207696456138979400245171300653280369757213973184374750477637032720677342116510650464607839899857290584303620370322031159876765070704683107773014662841853391001825411795729127319823202458249339397225075675471331316846636822692870802333293181608194808022913141768513856111068401144680671105607251773055121759199588263369340638359285898627719696660268134789385209747297819345990981760059041781100847526481228686182712962458103984464672084707155916806879738490789114168575484928321131716716700026495550006428359648340559972390707996956596720622399697367935652340618958133442425016190166468908331306313266576481014244171368710328538337848542993038145644211416830102359435763716381684150631226012538404971477593875931544567931216948642335481994002682537643514309072780217660200801025130429538149127474634876854752116325498512827111470684299920113780035582595479723192598406516977072833753642189258557651812352719727336502871306385479524712482789334647309644892062030841553802237590646873078519320888600726402112743527201509940253468384566090451645926595610991266750955654794095480579897984405564762339801603263767680770315075157741471708882185823117129777733876520055572215527526256812969927537766903496023887530276803749058583963585280359215153052271642573275665874890419592113998913243257903271349403503419757511345458779230397863336487439756006646518610316550839198983923275809833042183555861670093614247257642932197820741520997843628489052853066398060904465559938261039668117525494766649399886553025746715193428020387906048717942361614928274923317810309005803867263418163171482929637150394599191951968752378352709529910298970604540764698286449713380969820927609039645038823785159470819759420289466070585389699170540325909756413658904250979213336374183770892073206090421827949125505867777995983070864571937704771334414478159672524055230559878461289878783771191879646733258975074089156069953581579102607803955360673774869926097973745893913915563818183154812180025137018313398129045308113822144731832241974047585165715957291989172401821483184010262188475942270358708739331687899833221883280765996135629028978204589548384947255982506581891896832246140966883002107122022453355063572303651131391780244928313107668813200167323953184059452332385523122183695084987643071455409728562468325343318303062762135644410633658408349373034928786196631495837141886148397759020976886928270479844792035659926636374099719436367814023241618916530618919735222449294357844645846512724481247689407302853410781661070998741414457795165883181575965853790195404568710603536784613766141960811197346375771619790755643418799857782035555419408952688447685859577722384260454087426473669840377502923500050649186258585633250412293305944936692280591481179789740092897557526725860814377404688246590652844542012221893908820420359654027253774782347068463726416908569209915755745356060078256656341530182996574977092303231146000325376551529857793010263919767315760051673473200020378977167581322737920408143951497619415153387051992263732505295637192396198756358323748028464990440004551303598494677912164458699219118463005575136858957938345969744687634023015089440591498463367847550581606385218935539854243460352919156977105412506589650994290209826311959131545781256305603685953378977220059274225679795847259769894971121468021051886656307885485858438731072044200267657813916936435113004289852998786802226431122418214848218142741458527410713762557423889679279270713613394362923680320392744371431890673156105063080621318057662508275732364531432417640091389979849814538346845761233726619027117434751901005891430655015074774649845138864327455784630292575510078766104208709696817516988456667026869906608292608306091690757252848502870487943073723391204521644597350336270622409422638554152314708534946282202321637450129652082365210750864686682095745090452935190639992782169471304277907156170614647085318455410962531409137205013335741550034355324469736993675109108592043865715464435960377773962674053283461426330248845113439456951178499870060594012815058368642357330543262210226759959334331728695106501990551854282747842577577700017004117612234631520020146525492561379345504357752252592415363486739254842719341965831579500716671133518863466032116465604181370981822164761743127527378480480884399329211940006765279184352599931639927791207562404571967965139377177328262890688066978521505183906169545043214190499112863033756460577646499698574632240215925696205599398927939542934057222764003021782712239636017403487464271602929909976465671341089539189247285000649580680806139044277192101787321495271331914334179570168743625190432208947121484807262145031346041924324169881492137085603314775810219139526001564156006979928944150469866565080073213227680363912945807163206759944161783363732577487892751291875735762567018326243047555695194895223014863132448295933184992418159751605282568449461035911482116703538124005160464771050845660965034384861535378743386378574414090504386771119697697502148325355580544536751375229624820362348627584994704327378145803011846358189414455939984078969794124845183232323309593602622134691718970808115640942679437938074186924417651553129758274579121865037601864977053149287183290898530046627642353758513862088294644339486300875466892048669451207688803776861145811223756843277105221396528323304125168179556227800152139760578363012269455928015004910336055453940720314408573710682186343908735406916266596243314976804455882903473525975872333716897701732130042942411501844048270119677012762699835120814116357159603995969769899224740871438420141430323343966381579329434650400651329178361428159089545528791743671464773410332954961115854838463468217325258118141032697142945638849542591627996688822508724704778003749916537502597099719493388898070573748642577633379377889035986056137453315499412860698690236855180458948986238800262999669153196625630415554440537544964827399599276828218602064288482448595473085349139425942335170444574898301986038640747037660818896711048715954412170695507320354547000295371513522748450855339149129975404914382389710800771448089031093997812722953368928061665230277669362542497872151100599879147967505006476967726677986311871781202821330586632784193239841309551592370680898085437676317277108039718959590667572253700939872258677735459640211154283731620542459127005355188141198685917479236866706026608135027607504359867996319119186840189740032571201903780522721692471322267094112530633208616470293826283994293339426332940761989281816657763359349966958823406219114957359134024778136637592212264179410126826488762369092856720519497087725531424172099304251880553033561892826711723398559652279408409249075369172505656671058828437242508265914664867102683902302216560693114201198084155778689086920206288583165906544307658465441751562874539774120645168563166608316001337032343077880392739477215607838854016553981120509336755784678414813625238319019342453386097685801945940254813225279626750569843186240288753227057459861651123246038826271647771282332138254933727623826898377599661705557730374404472716440469845838816592314229011743836145095457578121674463169371597091505080788224646703395265929215710339582509643282510960300214705623868857140750591549693328759756858241370590124357541954284562159387175437596469562768361117881812443132188049888724846438036513790502002882389896144589036952784933676365212117348976241693006789934660987362569711903994655968814888157197696135179105931142433928186564969971187707680945765752105169737958060504545821892340224290256871750272978728377256009533919910565614492781289133184430006105199480552980241068145579323396887510897073071055536395135760934630758613168320600216765746992596740414872076288294775428242686595516095617053066919628364699073906041866500009337322954291703526537484546790647633502989700919524345137611429880458381748412095358283648656955784596048984528261186333593260072025875003744934462660242894730133317170195804319220985589051825085823923287106214828049816938288455578247575208775053200474415551148433499037371556689797901840868811433512480717508834789762233082897799973789947828398800387112846107545959734656124671340429820145694383180614005696919423387526090699072941135523168862593044990435629605277301343193276591873821099747425275603624271682278738561775999631990687638884174918530167545542503579044015568005354003514372213575523277767652807560841478373895143867098172503041677622459071113880795600624728273974711117228745771806583673566413957006059136791271837348251595082941792919952715540859417003724724234766501426077188711952434211541932319626778401850747177549429179420808089785319726251604747786767539246133142884962882195129246851590052368279737486244417469549867311463086162467157038184620910034436588461271336289481449453490163223185102205818851796704226927180067730850296909535793491058888219464886348906760357781663110861045000887260609236600749734230941287255770318569223996568897925808958996971351886660737109972446131513765818690615567225803180689413029255438556865927459579515242395337311427909569355193039996061924995238369516081249053300791321283924761267301350284607586019100884912060717253579584923160491618138238064423385864791580040029657229990646318860275569578988602911426612212133531690280163219557082552466718617728841162372085820394994479696147305693857387402679072078667371861052223068822689126758515104117101717163702049212289467927036669438505526645674588477282256870689550605742812814970698199150632006057191782901764587002971295955662768868034889469020752483207147200368432531014561951042115892452047075168793479101357397465406768749835698471574990437409133943689617653666957171957190573641801374936366423983932153142089511105312594528142999400912857542960576950152722326036840205307479823524492121882672738902412660368374359352914139992765094865238977135605248013565388871292379425097975215642133984320074454860147575900512251460462073304186189990506307549960348706331899732901377360831787295790515551854759799343276304614036039772178879093672092954616189454345548807729578021982831188348354822595813498717536861709649522104074801576637814870796387472953943511303312965156798538933984855343557048128101389316815572732133786779975752619407553279687656195083716446644283287449050599564425830614239447646610367488724666187976607346653160521139941951029003451354727810683478133563021434391874723270241930811978893334493959491694904594831357995668075695589170411533455689570393937039116728378161392022297819974312448178820080957364219907876407264220942036315994820420542173282817992825856248912581831221914196401608419790951865760089498328870650367129794573318520347210105703169162905063080710779094735308969989567479566005007640437955621007488769864095892402861815285946855310542059723169381200617280170885503378835564830385264634050322911461878193996218160896542978039002260054870676715465395929338215860136422028923194208479513419350611287622185916286625086534882494916478238765977385473770635235291700120276009749843740361488864960187727921328747373933801329184181512424083045968322348191759775675444826641461169553643862986924999555678881781788590497518935282495073040408514168008547470172155363985163682730594333334778484212782870045834874460190597263159136039664331231907968084178156540599785706295342018544960089458825480544668504193709666880952856666229072554013586434203905029102822081824590270882803936648558355195874168508909339622334029567025938810033395738917346767264565038948352102741428775028225575743099651548314593599868746006556505074999162322294531798762344665442896711146938054647477739869908369254044519102884030156287601145636633742044694495975632097714419110200922054000729683352473068244092301985323439692882458387235862199355051775645061721512726485182293065860085241331926364165312452229320724286163465271282931818101357790345452933094351516772403189582581825164965893765793066554632604439292715100186232415362855836396952770206442628713069207212068571048889237494258619583540719219510366933868682672272754194854363132887117071620342408571437556374773801255507488893034717153785282593516154317512578304692474657024232101138127061528320835009842584108204527759520604922865060137569870457713089140558554488348491049813073647344076348000099995693613703302244812156443188765962915807601882531866004063889851566878566231802893818084831690183852637486600387656558820811174687868983287753738413169802725898042157708919172034044772374266633646232634173107966348638625042759953456017431944184345068412389564694646356268500207569947370892145258802980089656922538404025493075731849517106246274272667655967920103034878559729811323792437718528790668600350265758141103039198495717927624999136839350403752488789143330108831229777730595415365846731465075991801626197183171154247804165088442718659884696727505264239593251323044466316903180911259656331247455596762603907673163764769554638031675640353467250640647684802093103038625606004799062896458228508285509065025263402812834868648256451906909929129246475686717325762815121935627556760832237783153542454086497686343964797636346975755086634879651664768600266367733280359392526690801692777541289577373966084856585372957543876220533818013804019508755344710195407213309471149182109872575662946223894714824975348622954245784394927277094001242766391280986464826468110113477221509735110977170699605279996225805036225029946357959385142790812014840561689496147333265032820838744068792316934646139066522120723199071475518258901164418973778973712659161753271536367463381971340414626192234955290399046258130500919714697956736396329436664824235936747520679905361690064530140744366704401817005414274770232780471864768894642327141592633719028826226382555589259877371547334958125879027685029652496588916611147619318581499424571407242100369797906472939019734687315360236462791513489666954593153373452617115003215390776039250836429501719081841561335108685268975552472663999414919339969821985333519667234061414392914551667838267314238048167999102677509376754069292390467048068463930505959542942660649787768399376104932931947204345368921225517411882728360337026303306241513804665424614208313462850236068293260901588223365969861627828299275959744174063644711269296618554522334406686375770816009804010867509043176044948386734976929056571673912632854130456748149385573268518881607175762554905130059041334986190581202035245466417417317659760860936793979686012949495080355210120015176955572364472021341436973046910034921942361389999213522234553847613136444889059042031442366911612982006391119865095396349317352423124828821922158359304522824692829946587012065124328746106167253939148208561402508626648699749099755214457570541851539109513740530750687433963474754969067126093306716515780184980732895058461829328339008468072595712111256509327716488556626681816391516663541125136169805400257955397886778602144381973114296725514494152882229127425040417337716442759080083427606768919709985362827863088733995569139467580103006234626675271632757058221212930375799645883514402738413235073238245349207705795028202281071823685952885827971575607082914921426907146414254499144574509123356690067526861535140684415530142034300913729567933614613701636542395075372610356514783774846603485595063636120373158227039602812434232349845319942317801757445785109292233440953182011794538990629711197047931585130119220451987388821087390330868437567484440432278247732916434575484578984473852960349223856196668568292142116114878540829005090344166732832861054480755887520029047051513543311884064249727077624100602783291645071624712694263508684943902769921677767674830605272882780231574328533154776862856199388923481900421218368368559032054215031500854425637584512786486037901362590566602087284329328213889865003014597689388886846325607294688896717353692104844470688038004518990872112330724704172452949649929438039805630858656140021896797466041063088115195158573792637232787757940595232793543558946700144115320743349078743781103082387690481919292036195888936549367732716470431026603237502726870087738917440828436259826718567598442234407795469089359688869708766997468496327165017189713268349939924184455975603409622902171373236700358819561251326159322921595723572755776432158794426587309763283226528468643935971468512441909686926385051246838590362587665588982552372458470027098276914629074966328286001775638667771797935728382920600048351695628117626540437776916782930831262544938376907635863828302172678008360102550178235131483125102108917280789458322609921677449569781301776884628772264692929346041879649195268858955018945231980856859593112936537174967593925706218798534066425966133054945244063716339259806407503899595485942380723447877411060385727137876413342301404501027403968873311822107484995521274957932923859160327749809792249045775877131612975369419405899970830541968466281013649728816404657007888468767087313699177605266712799376204880422246890222980027317410018032754903602199359031742920607512837570981563936611721341186967821438436193000039271539630152103625484982033577433369442035728392989926422771876271371620757964757898192751425143789838791256429623525255757816018978872852005341482243558084376261407444296996187744232690308489462693983381921125354850088379640201624880707895810545639132331355794044787358679340032840299510022293146125013131589765943648876639355862007366877674417295696863011615477354783371548667679265179612855938297183513494593284896177197215039403217542052405610465480060055746739078366488981506861789573165740994403859010950465154856969324947072785418588800871250815438323522146059027191601494681221022971235764090610951590068344958273462236772554645068302829497480512407918346713208148951821921810371257694532597995807476120785294930963873880347919929393091236084544289939286563626836308859152796014194084100148812454560941577809394005615060578666753291428259924836056106966579800055448226385933382977960832451182196371187037414994136089842453845132542792238393464948134572678648997265748949799361717891570147887081361176931205691983475824985515538832936610387601138907305010542122205651410785473667551425472624382569706173971436252577355436728712347533151080285385966808516336384475385760912974360460577538638683169089993734996814726587672961853525822727625775160979332074472294964037523334109113852709012474686750033172287377053569195255942225110432186970329539250893664714155290001460149721221686427167942354457734332973644489069070916859021355853911475315138531858129825261403562037945176392075143186229918199668653481170944606316070723528385566118548479108614537352247775093388335776092397028644757564953876152389947716303249428036424794840088633696830087241353753967451077018939264131760814193271523998427338634274181515135383293981361485839878008038367426932024772376431393705802758953910879135174560936588394449971080599624760716016923577767444105332076956338367067591241064850355064300060237471867601018990341227148742249081634174025304686498201049138195141152146886736880072703333983246213592950038805984679012228846931475237630170851778573108173361036221067640335314598744890707551640538672062229617508198221189784383286884377019271831023520521407266967608071169853929578546542112136676405225962234882820811942136411417671475318452426525442515320011594108058861327422683669228621949368326753701060844291403844842312705447840774121446378753140098127215580240874286712783025976246139373276460585450514362575134920817586171946930483743899617782035631216784109063105623139907158643076026799681385542992128526416564892444651750960710868289924555096062962186807545942445825513993681167605897760256669780187205232833375553999819332963032658769046101890397667685578253328794913791639708002528040049916193935060322289864969042877185045784688702846565589755678835551989774395874882065893630552769323389630520378241822310460128260269619235661842132316473451937875856538365616736033845748878263165375706284868522115865751903014224118044488607807730213167016138190695464273835098482143232289478948893027239079261526122319044003393541714248592273322202463154511680560126669030233677996917524739160184732422736731729195186688734244524555425849296536346945488447961687555408575598500772314510276789094065515647701392569667404523732160816918719324552184781053041460342650137139168443322314008671140217435950960604525172091868695402558169630326379314210189920683830968693394381198861629010887541847076618421864310268031124229663139974708495922943013753152579718352575798842214179340062550291160394858731668690486798268563663289190799525718689308174674515214845171145229659757116073986742288845976009638420371539309488397224348810277753381161234697726678347255594090345777660708651547684077091620279429041053239821193285657229818181631328777490484097096351360287432762454887983596642416125806820823429849125021965478952999667884067236131370700086855750714655729838186404855831681040578678550905946061345331122581356656614789413507026586748470309947327449766681582198877302586645087237098998523960930780881121148152117594816081667508744268089171518882564033160144919327471848962798831120351956361428266813508426716209096645773272837153313167793095826329608964676963156234917490696105392188373562639788684680458850189622814098932695794784923887949064712199819126505782377485083975877177941616209172592763117082391625882617610689388646730366423322528990596358182397750435642749385365089719699130997187250448959818350181244516984464835796408947083815531463786194885427819832394766648469038356923164485289030912715613386657778027866671149474401526824972395396120225427594642989271409493127100392696917236049166055004613492060192739294591471937472545982164618588991523576802989899827983989218992527348605352809934910166785263246431012873446257832434634289271690138429044967083002322656018789141460586358467245623684461775389109991441391715904321466938793967500633440354674727454452614354091156050096992374020934393627482351375563339255882184835698569993583655526025631086042050358322753589159826326018370759550196784133181458368995285218157655502024133754871214769163637296035784880431144829856360680594083401535018018515646692155633931785226043784154999434103323767658846626847042849132622252974520681844097909361984230812022873834525742020382520233191363182067129057257262374033280359991657345196075813013487502007779643818423569887925132647784491251338738132719805045864854408963565462459955809997079961341326970430050556219086497302543537981875163516476426924493321264334573934527610238272761585965175040695809712899038356480636943310177760713206132549906245479075655657471849778752832689320088616408623151986984706215439017225689174083380453745141015118141037825729302972875429283343667450076298415000023014757875403571791473483502549753267646327273399494877968349665490644030212568454031311741923493121717122225253406790491755936106200198067703040837593869579411921491671926240086792279663978374027307284013444392006205565724152325976989683402963299876062465686567151937875375671904449301042811367324832032348188393007823395883597807876020182157037123353405247425639645893718454879117997333826425444194535113104999056482865045342775829346429338709414630807929280329757475956927557494390278760464438997006822362546560418744973882325567706482653201609263771585393575578306008853305881145474628529733401803783557801350371034900354612352794111298853629993031467114570396631164992580243285181903711729047625070440427298362242324701468164702660115635351072578342266883535944185761122346928113964661686781536965582081957178527656238801628076756368339342223607435456551271477968376227649007222941548210914862955753972376384442194440789263895676888135144062361822029021261657056858848359241558235238967684620580598975218796164253042564095216625400867604163020869630456100102915481443610309650358380225662995269950918841556396430166047179444670069905813750029375736012821315298039826193627849845462079557663262906317415962424330833066395276355188274046209483458594633157137345542268975977249671516279400565375350486801343325175221222880463186433173861904348889786437241963131138029015362969005448550268294090651567009620594713166207044823695438899365930422141632156879455971089572080079006776786139567988733363412613372635049367631954425948337420241181280612894023930165898748010460947847352029293120742881115068615725651378381520890800441193481892015855354649619286744219599030984431888973786764345655951472970348461283489162420570528169232735612498207461542200649888459548462014218463956945515246571237818611436063631201565248922027296403020920929604226072693332640320159850477009275028232136066112823569364683570523104409782705238236273608683953517699590511944415590161515453714701242090751940788010272949776773436900284081224781560322793923715112897108791670061038057952446236436431965255436392873302024939526790340888192803585959719945326508515697014455330648124895274410896295171427650951113673534714783409908227946334835991082373098020795899283628837690533846948674410990490224392913020909046858225104858484978925384882074279410461212456845545628229900269484162239307170798407367927735934780037128241608301976764445888745227335128665116629189890336762792394426487703647175870763111826808232252807423210610830349321374730092548005557261364407440895916958434627805727729438973711724940863265184149584722608575809276313326248262644910874400005715246379137702005482058965231685794605382136415794077905844341991775929357266472770695893123872242314409668306293028662583974524907704342750403072006616161645960899115644237562340785149289928073295191744426065013560010403883829496737197473825269462817674269032200157044763279626182158199857738641011917112907392975355905106535398353914328348796377393284728144477065673201639233505740375221736813578797105605270231209871070785754562570053442975607187875714300274351779083223160404295443848696749773917144355725256861247717419523657833290247280352143329863108499701445640214488095436652663193550521860440542152101725607516048922125769178529647511384893285641825685953320900470015733246688488362692176420908478340164266408295144622456482040706027703544231263171160926742772484056882640533099771010430433124625304079467898690287784549828847317407115720333117973349971027275067153959683895888347779907912831909783978297813331580194698640391582185896304799830205386168316071517546072402443350447684204362771471388236886132413649156176801740266307452437045913061410524280230074047672475600671193315821352562427529321198230427766699860830059333536038726622383161352821187642119234090341269505815084752144730289910532985170724946871389892176466359018354439307341594869456162888693555693748819576495247738646069601720271250520237655636840728453334962839956958766535081647199801360799280166521363615820178276933361413906770170338282222106012631413652885386246591818476322660104581249577984154515773511316004838462175347446524116248410453992529294040570759793713094168634279215054856110957192268371587117580359155185152477379347408845920275779436267270928810777467981463585335232907632553303044543292344187905037237054369575957475564177856046763847444544394152746739292999611892891352447180274069841135325414593707967498958831152119228873702107849853997316072256242041604813929063685809720360368317863255389721991032074111977302320778472874605753145361290033218027709272692454244546177620801909724925074214016932396236466574068602428026763188069545595081698551410589633921277909824574279839543130404427023450855591374494371567042735591968914325872785358650327775220452805496410271150527152509873728163249207455668940532782406846428906825169347165215713826281818309198661698641126124858718089433459951494026198285676971484671592739546284784057280369943121276925353352512559642039649296835102209358748519324248429721169593588769702106406042892031429836192401339311986060346539576911736755416827095990797758801679607394693299422692045278368160722287710595686985828855796841288824243596677260330898732576414701261594087839281789880302348637489033089860568212617812777735788312806832277708162965405465859575724710070840943656570796000477571405459089002575011341013209520305077727918394682124041443233100265383054171029440549562884951166280508028244244711379596660260142731154271388092471638565081361415351349681592225760325874744087227241586340419093779152040438191175996002847443492133736983164179304260680266950924939230198893885821125718332673016297447954214052106589903428155855369116727246475728106438342288543683723636313340669029271703628246012735428486010361199697337226567687440297979879465164885018820504329197748819488425189072498713309362367396855961716226869331723630759386106980685565526249951709641095591890288428381688663686612529315145617467087889288745607156675635096104149297720330177517769165993460796493754265540587686472916940188850963046925411596712238958552233208360768127063432923790023729750898534966455447043065549879424654884769192478243938263959642426264621498087498563312427500501375894759043511867835012758350119912948703605053820581057328777405386357894616688946272371282772983974172244841859405765299297240610908189235375122315587705356176318147400110300289287076262633092756581265481449614840689373555694351011900255582653940578155574175514239102334671585500440724662379536534741052513107751857804892503962269649397336651945313095865878038127574629298157383658968120653960641920404873743916260558371111030159091524251953965911087201816018648534701292213389060468662166068625502563211120552423992429742608736978420742180671069431234969548451165139554857467067507976591858214954996375943542691371765757212415578693755969281901573210164139605478166383158258112742710966274420634813049372659872169521164330948437071680500025518531027072799155088859120578053829029686783613479446883901322773533859287276373980648911984752532911610683581526012564803733739051890168782795009879189179144381992911664112432760087720347667199174774749638240450374497216899543695682854307826508220628031058999483063451881079775303806902238445507965190401423660937179712204989389728668744390095037735304225038060392929673843106927884116232700740731042857112697166130736665691890435813508114838975178309389494636751524471418439814989195810143051378342385238772600597649867627939755361130311676561261477693760529691659810255886093117806512842174706875956746195980676255027948263510746762181564211742417439661287917720573254879680228512372793633419015351285308297627009916127943336125770686282531729973851114095024576702387268690780342940004890849717297052272176159614797041319719023876307607224617347167608017613197006461127432442053502177230534048399201957266668655519264914916052170607201895612354896436988524679723510558524740258433717687137260627761356965049734958112390664145469053445065622898593286921695723721653014650498646795905519902440544067399240465394282221911526086988411070221614547013580317150397207593041123579690160931930212122541530154292958173209917178345583618280525708561150590252504044156395584668805753196002844553620521057730722132176472321525679245457682199029599877185220459170410794116958376071267016008735391628559651552591925368086205991066239950927300632251170413873338334013132759145317637741317731910448986495950988201759902683928038955953795672042979872792935496121342686287291022915810240995428412502570037619968393690162606368857815675505396538902478367071648991977437994052633429812901548890149809302065792011144965929791396555136838092996504112697637904238812162722416393105282849984492554876008734381617102750350672712148186304749391334940249990032821723681344771479572697608026982539835498205968437570410195234393039912128345390047096496960170796679344121074529447968212094921091037047905502315605183930731093513065227886923603277280718636851321303895009640203946581117622092922224709299981261291677688060136723412136493288361702474104213913248801669410548936725820127563072521793081036867538004016622799907422346498224501430588817150314565198335964014807435106815230086520296659293328872127435085999722879767060599935319193199364060455882270681105973354235566201260622931420808304974591837405741384921819435605022255750005386056891116221406125952645774853876900826609604179389076021011986920939456570997835180810788016170758337170660718420841736288951802607905312341679136352478627805555238028928400935149572162926042397902538597305331369185604228112878180663529336026735294851123986918520882220190403746531103942060428837017682735797906444394576198377328267041952990518425989545328603822462073570504572804536627004582077336658095228068280117408262555111641268527314984086429861714437827187492541579993098455498329868175091145728687185414736040149889461746621995388358237539634917123485244482959700849534821798330966984545909274163702712775099516881363224476072068133375641501607486936936891363279977986510951180042350374753577244155652631115139835147336127767654968437082275295494731817789727211598161267717452932337792235887176697429727338450791130618179845552210869375734130386212028566601308211563856033551833626167865641708075799861734295848764201663848065573234614528993680624017604405766811587390248544816382428856616053784627783021357630287968241504655464526013533189758041401772308344400952508483697004162675941650694716672110820720154343325295533779558347913700425385363481459240766795595385765522717548126810151593568554259737062732988465818960099640126770152248766317054623446583940409338972321390357043329155124145556484560271277020132872553064746060266755638123723144174611180597838613508438023970846173213169403692778140096971775243802630206203665165969277644497592084709909600859500655399487474143093428689611527559404663415463287534651963023164028444498658772811837561860456761038752954943078051821795807937193890840811121909534762040375557279459955497433540236269258069096418521696629868913354140996601576492529315180881451133188747028871611042638803060205937903760426271043276224708366970785770839865445507284201461754790301370499825921403893033274053735354400972855338025408342545976495948811298709397280024176249899789927226337976126757570956972015101360109847109876763908021719974123350513410821493259783376950586110868199656692082096243926687979227448012428831525871917201226630588335756599900816972642452154477331460065169003844648026759218430871053006521141731526330399857208744577851551958207467238141402466097276591358719835498004841793220307455330575861840223844553169796500419117179918352965402807223411358752836676748916493653958506857074453742463087744866655968196533605378245532073553530970919691752561852192471851274878137849796909151074922146267793710878316645317577256943302772528061468988769060862599987308200565912254478986362681859251939409189141885833735429582514492096848147377722990288665384060809400323930960456048836296434358336896504016725840020964633959013350962652397944890195777229982329879419657939812629153000245205266767596427226787008500522657826496421597190409356040459528235566861377244867562539645511252020812026080775508088407553805356624486189929342907289367863826770677613979379610074738702182397240941795982636596919000601935180019127453315224480042326428029235894690849907644351935011457777560178970897018855337641900637311978249508075184206728986619606133104675594429199668456735304057579493151190346133907821340225296968773992636269364475040378565058779974208313733452753529774851666073807345154719469167950206001568448596341796600354436841187223185526791356434196652966156381775321742445752973511440972735194825897563717794816907869853882109829436852320083151510912556566909523211804263886541474740970616880407368824211529313692077160305085777262147240236694736990028686090896161526073138309923436812079791723940678254147552345523063754515232446930291396026849356405396380611122913487792767442341018490026132534812277106120663925628929963427410712658828735773742149626131525656575668656452970578286390826708940929684097845302355090969053557986580252405529417550001729120223589651064340979352596241811113302230857295282863314558934437075661360927912720843503451487865560242921689050418510247692543341269783697911585850625268122643802154921808223182152732839452618063840129149059039072795603494739136566860924840249618791782597266579093955998715715253546432152467119177729058469389893615661046980193355524281132041280301981390871744322528527370912096038678858380168211199621585541846298508046966905549747056764277361198125349607702231042141551481174660677041909822021338077562719882541551656166467817455711291140709686374838747378496209085541003345265676805390786590207539588121367060333952858329881407788605723726485445449413079667837952442724242938069342169642795653060568806382427235462309725097028774124004938774816065937678511960996354008270806042115844661313090524086355845882645659304898217955429425154467142669147279997258353634042142777025632808660807877240787102652287393511920768213836093516530000113138647999492097816135395276741675216927730927241213816425137944692317437712290728330734700095962438677395395665229599597764318519988226902267819334588595712163489133715637318571349096852511658018976246003632697847617787772501981064939331988052601854903284615589772233753277997445478304737317556854895966401547798109409051762685740879547613280474869331149977328159877061650158764110299746607195362569813115278815798182200661436804035395098446584205794258365829317996710143225499908736820403473328132067262982747168917937131900559030419311115927359246901788962771145400151361106329004551160343812390599330859858510961650007350446893393479746401867882096936447868410830228449454314606506478731401218979663531397266033274817293032005954085381944128675294440166549243625515563754155191335434279855646253752184508559015427830178228697599968364107930973205862867572363338566529951358115854142892931541556835353066567210720017983658118901225950018370015171854790274701174340968995573722828140317707185105672060132368902296475953069989987534399661722854307786765593864021488850136917725671101323835458248692843434366699500102511723913073649841356805147882811529128762288814656106313787142852299896671395853791692080019236916384032548740541082370391337955813811868054200636184857816141134664824368761305672828006746017126610138095691287128886532897078555316954292311117341082068661228699361085620580586989621817126898614321163366890747141998985284387180782120223003321229708282529690758942480469683986533322469537853103217200853441593531243339756324347937651562659667374185316195133588214505610144082828278277148340873404475204432111727910490373597998271693770190895061681044222030174922167582344126582984085327290976256061318941780521642753247477127479711521642170127055033392420791334441337979389859114041990726948311555873809408415185817043352088539396397315629735985850561330879305794974470192231400089381806691367974243275386352657226700322375836575883624051260726836145995254296288364378008827120339272018561140239901277505999341130028970933580938164659106278112711981949022173475256944414316655939047045979227975907271354278393645905555234846687709750822545603493244240336233698891533316368042516922101189209385791921325005087672751300806706518010107802323962415009017921884078881954292746887820995338685101389736986293633042392199354038037663041826126129142281457248831104911168235024582158032058121689079135991938684530125471407604425831293834428245025587188063393406279055439626594302385454421449567056448726043404358342908004458220436563753878946920010865185109557086702663661019419964596196647195427037047087817376652629362747578974493503235225678207374792702112486927649550340999092203440242363207273829697876937329645553501063479606077860673108152489706749462894904429657629093842892194009361039657652058082112980120383925580117361211374157019473723187420712048802806711095438110040745223339072997006748445026502114060465857534082801942459495944027176989792365055416926459616637078531594493991730462498640110284979056233704805915160050301377318092898242318904195949021083030600162057116586683106214396616973982767523812602750869528549393095166667458867606761696472644958789614718935034054624003357498305334901951452632650710332270155581857047238482681841857148654097981133406160527886853963384755787946811791373587126144957974147119404583232807720380768354730160685196046657264763846264507579733377491956324978847176533104308490726606807722049812410497459790390156604952752962731948347391783623202666790454064704570841996491170167127955015349765632727062756704910573547295438008846556273821442246310088450441291061309115636282080716104308673312753424953046018347930298056145131840186674605499710183285562903407692331379900465517955197214375609590246123959357655063165168645627744356168171993757232476266348592014705232381942469780854248368031011548566603573986776300958442609542766528841019475951424527323466694741033752071953134159323532566434295961452178482154740441442251414882153490420257206176421525626107100119359415363209841118294892941250127048312546619296435799983823032451759328510368291779834765236510432790993781032874420309615491093967361158120096586359775123534417106855017595453788214207966110624822549766012690810825914670057370786595751594589056658543563019535522283187262717196280429368991652457977072675398701086660300007682580542917138617303645544539525190921858042425527978448797525845745504212544928257953985898493330579041809480316609309755604426741072440305553314801234517404074308728042762354485612231362359091899241584959824509524456607765405413765501312105360696753635531157351504325611791771187379416251552713494773194525183670833120382510882560369580810715139264721755281752771334811931768378637918832342914103341253678815607092030061153301024918208978925155731485697806861920984868859001077256729366066998221583556917021626997820622171863274856991815903466494617610106761633863529840085017197181078763288098303519361687604033760605167051268788416980629394720373559131288131722360686334818972292099266629320496122179940483328104947100976538861081271259669947346197911338387645687660029195583100779556554560422186379977133606429225542457460094417401854052060596269444937855719740252568753082078913859008203434028172180809847866955089253117643480956557055912039672916827351598504375462149223847450208224297613364319091930424526178838407989287243791405924127349950903987203453960193158869564822678914518480988356975801171542125152000972150629153123229096078101562637516560107227408246986779992772933345769218521549105339619687423793100437761222167664087658528562961021450108940162945962306209247129300221126858150344948795185073184690095191904233806724383922812499066254404252378961238158039863059900884032522995801724462303197379872729614225756198434057030392492417170852956614659176779929806492205218755828191105121005256197118980944398236223423904054495693022646761562164819511993979707697464589027435584279523196459334577999650914693190414367756812007885139030069759229462857332355849574717204632610989374177755660982802728586342070683739335949298405639577734905488111049576528116020912098154152129457147440195936776195817365554431517537985787664958476619872392051604991580113291643917251598822529884499806529861174185392503643718951023960398712409599961012503586665474771901626008755388701957206279297931472165120957775646812946584238827189199551465575557237852971745459779577210772640461802852796523892695856408883751240110230143670868278010679685938885198517143205881803861318677783842525302969127366608151541456369500262592124246265165306004908241716933531310253221035518997270465409417706818941708500141688238149191897194021445968368761313871873122501115749770833491604672977008533532516626471677004688790931179879646841435615042359084762622786260209348128079832129542074703627771434619515041034709719065187386442528635196459761505186902260769921530822542892917328763765489750960458726447860533447743550278715605662923057981738938339180876461183754210797668882451028984519936976998545832340896227742858674744256410001349390499959058059405358714176097048685549057689334815806356530441056010527278593892073323434732155060080993370807521164316558981738965593331824909209497815749495265524447331465478634612390403433939315624626271337591099729946297477181134353273105477453307793398278844306465338548474263117780901685730466527769709719682320280854032288989830700830414676382607850387848766026550936327919241938863998540914154200715957157625562333403790710840064576178552138957832300703106132983208970940263418342887265137822560904817842109406012976000712680618871447961045152393466165602550195892969282244812359837215919583296633991399863555474009990876596388382788256968466514103709166800736237178199750435007173748595378619762063988291832577075549280835158726296897618263258346594391558415465614854675820017018323496174599134546731853262110989493691942791414284352834860526009802926216937304205431416984545394333893912120820547753328076203433631944246468257041091521868320085957621586914288481575203648173557536687439638249227205333715019707541587478873646401654505082093072908305729545925649650196993064862487858293169959591053984774546294567196119220813876495815469018076102918058950246992884332549884746695022882499772333838701361365379599237739919967526066429972925397598476830197340866750068993146427941068033937392025716008830084070827187002372604674077518779956942531542390409033098261316803354374298535304856025561533126169450685373523246859315576280343854748339436569235571998874233934457556029050771287962508043027182678486866102023738463009646118628046309499037579725023070641284502285171478438396458708600826398607789166325007549014469871622954042578117452254879831947923295774183870217632049596188690787521206602138771640000789021094047408164808614028853605566344317001677515791417703837323512035677429383230183034056384748485723110283631551764636393385984519563122574459209311930575518660836618736609531235357498572168290522370767167537337879581975999611691138933786429416003787586692721012445483085670357151528853547674877228513502445674286209729993942436135565767609316370795893742992217204891472373426321111333625903440636313253384707060193312147781843956790301529007941637871695625727664750785057202461170590170543676044715103278333885921246520336140098533802325750157260440145662546470443032883798810425203453857190659932421618634425732356637530341430363359798425261686318253972994217749531480037788118641140974434613983840305959368693037081854962004996327345497444831167318268354993081603048657182524459156661090732004748756587868454507297355716771284707827498253418770425423217490373071187005912711677730502835849377743367836739040700931073252754676769594250406445200569056750719032626557560023933494554716624711132685733817628969756871229227197925526675758121794046478943543120283759777511858642498685475311106152069547353147219068725937579113823553716541969261720212490251726864429119748393614285916755844831053840018534242560630834456379956543565177645627642352227953631545596813010752174229294557054665917266409683999830512679763315132179785929914186015758074643024055003129038828214132774218667689920635675202099294965209861161451626789628207995094754937657583806605567055413500837389384899069154546403243778131718921414564606310256512652437157353640555152418502404141814172334040688511974299779122682935338409707289402078854065762409532972366207463447129169799504425973258614929228146154292592649855342474377032273308246575696601012904644005957099520212901193198551841320643888239310101936048411070730497681813914065820946688041798804770373243483849057725545033210292022340725495156743332815361298524729683344415712020236280577924990904066878408851702972371331419674082572789993794319544965392116169286691290132908642548018318514422090404808985442599797145962967409948809621156814194198461874390342445181751708563862732209048746616894809516915549561065683640321479826581274139270747847076657731014874319376892659336259749506995516591982860600183378289572408659440260843245352843887139489854280953385588866194464133283944534988322482282699698513408095876962930944730189106778627286536095350338962332069449664335287476037481930392072167955377589617875712622270441034559735140786414550374597844572106655250912734430386527683214831347456921817881474819070304237335076756489797302999890821068401777186683460594388269746860749962034868466933491355274422658919040480761661650610892401679194047551134240699088171531918356060222508753561007728977147329890881005241203994158911077309120197575578599878454856465883244201022877535357121313512387888472963092428133847036653222884669721911951637884373025422212591879484519088236381067852480206055996043978975236047406832636016890376613669258284165473437709966097978914737963744136137350313501524990908005453899801213356614608462941717679911743909423666324801449601936868257728895723563148844879780245757838249919944527029429214694103510227828009638133797019715616296275696495138643118517216475129459654513334684411532213495272723847859404897012365286727889308999084354350726181228942007838867705214653621709715312682706979560212763611147304418461802765401203557585255445519587246767012233176402430876626332775658220392190804151956326547628397185222334469628034088194106002951815883456824837234446904537684217095058541645556389335752182797868909467727096156770316036356175757661115110982530402244253745465102498580324866857786316816205494312597392934216206522803489065915062314351319008857150239315038216340031215470706438206287484516445626212944034302417581091750056362446644868948791077203894817612441333036552916365622387450551934417012399708848613970876818225662590584704580277355438560830879991824598321946493226760805566105054568128311890695629886331555206006030385286443057814752988430024185355047685061058075205650875836378457829680578567963581362250397679749138183379073182413715166152083163438146698761971309277899371303517561759832522536684430773606586354645807651041409287528307967318273867346528491194025487192871944049723899728871989413107648708997836778851256244182175786309337783625048973818365262339606293353210106832217732407223217052176726599162683805903664404362163368509107483064614270915825501474407687056983630567549912828313793765244180235614459898486685082375300970157671081075599882122500741357467383164558040567148975173854809311518153369419087295740514561303824402421887484058390202481918234758820035992471455826087062682019533629471298971378287431482649527549303305765350353246245636547695868521474956389523970393143900220023301555453690185455615582959931132764867587788945216372414099126720641262845036239514143612196302066062934696176458257275228267609242040017139727171326181510327193655935541924085674128709631105011142829685895072403327574878357718195235961349774137308584591745695508015650378287274403107955318179813182069215020490895357544161047185785769162251804501732783436633228803534405490093855497009458824208603006543060111156457553977253420699629078619126100145722899481080670486972734992961547416287251920999901530476830265973304466970153021194792592799658777489930399043517086073786523824858263159232086891862458299351787094941217276952214334616296389303052970269041949626438651372596681068652931915830756777669092753222888528351723270370207426122561791419161078563599136928407656102447802758598146087866393567542306263420289334432274480813545603902134718103126781151688710128451616695189785102796516153600930537993809899540220545971915112683278126182042311381138614774017513972765445180018960476746020645973351329239316642909192975663368218268388694587741423095157400626622032579421661672568131170380966922500918568527219242572216432680887059501612342019979818964663281668319835337569984307846977745646109288445880420284998542440430342198841251758579294065440117618634820492499818602171949497160384532516217184450343470061895539308228865388439741173209063970191571093702869866686773059595331925492836809046543860475525303285936930238498364137301122698827929202859257377072083332995560968385342663444891520998246659030842148284933665340944477803224590798482897442027638857885990847742688107895784845769640530410945598594740964790980453311131642236177489570861156333250051810097172221740182397531821225804751545180069227481244576507136670529744991406102452948119071266965693778295397101722536540044393292817568536768057732863635803538320996063993270545209878833183435374999886560166348268640900497933047496373766099347231830222175274393625196672510489032989778186913378628190031458722545602214668313472357357227109183608623627268240630156470373694135354209480316819367013498520125541320833714622349882326532554576001648979107442035739946010900810799537043541800384129622655645108331026625716054448954839241812747512215011298139815625830908020528637739818409335868742148675912797038746322305072512201014481721652412757498005538143568088538171346273214166010487514035245258339230817619177710425672023969474519647458387466375990381352007096241015808117319041391306850103343965922575822406643763501850585925301810561714832647269712267639347259011583869841819470873442622942021196481719200732632585522003694479164983551552604723359588931362291314206462149489177600751237312685253330888003275320718830417092541679537464781487733640632380364811989838442657421024886516549526478346691038511429090294841837894397821594457399805696126903426278752841285989025774175419543910653055720611926730396112107255538793050720392125089430147579406185398003681838371139149745544633357485897795749673320995194261831794738015906580702771831559968943210251192179664978439089414600524651606596002304485532334218700656810009858757651698718606480704341663933509874529742568609586666592991425710893453468246403515670707838472408542078917450110569814724243955514464877806093088420716769657305797314776031639670971587121841111585787242942723185384111927569238815026165321868577486393196780886204892321669534215115631471384065635311937042945403202012414296916073272581674782333127892597275305556135111537580110595675155812281655822234641612774455838297686144548081809237131425924451862849796930782039379778272953039119931410963209376467300924507363360581088567026746335527419740931711126163858376134153642071042550709580578508429933071385217191141182887896633387292847235706647339708035881245084811798892879741755136417817251091118170931419480262423338997574385859235691034281684720415510232397171691778648368275188687560435139009422312487704827901476403206988801017605479287495402223301856562442110845355616977951771297681045074203625809690769621808001668087609115801672915963174867174977827485793015436772773061888077344371407448773772032323156852409333470062736956299926874883159732934201326347647912158848862652080271625896508100098132794314568966569399360137812523147309740490101035739295160274294640699953692333543329311667829910657755539245099617517209446749374032439872598631792832875881880552605171059357207669682564165785009296448216670368534301196848963901624069504481820145091422846641566158187440695181218277841950021803800515274222254624997918034895704685860272175685513209304990913656886088881497031395103657967357233988775604429336243440603703604349509333828155908129878255323873588548142095094643323691273967450624995716220927415606191815691637224471113185180289998571570506343734467266964192619055977757696063206988466194906095400631473606895141123282758182191108181561873669172850636712935726408931784250139423936200964592518054326567816134992116909965006044069783816027929615391733091761321571764675237130806761209764596752490192557822244650622001555976424875605269487493850379007117590784693072547224261964530961252006215522363778588903661859224110746639249688860167704995075751287222801442897075664271573437931575782032301218289688317727724952574353739010814107459142225646655980728315755784264480711224542070771447443224121934891484078085249345723758220286086930889110438660548219590095085215821521488219695227972824036933484463647859324292923119073235603588791061803289350579921996430051730087803334976683957280435298882779289874293474574198976139715135842741044763362850205191422515201321179176661783976305698438154788628653297341951044440837952194754135291567925577884652673694614017183562382501198505261943026530513567694119514172665228551360328817442470994213648043165251786178014555995258078097544228935107911764080702575647030551262630256921801705383699231381193406742555146048764429581698147861420294020546202479095192901778628805855575092407536569221178952707713243315959345337434837192381755391229100610950714376763966643087014613769406749713182088415325848046498243518809354185999859830681719369734205163936098234300416159977383625249290408837621296185623356702274271715160215835523861978235488235037492129754421710582590927318634256381141110633701594787293649500404967112479471511731960773799191446229524435205950168142137795374191310300287463188239601393283149936338166622654712132669468597900240947668092165433107367294341370554962519245712892031605493137018777394352184120600531082613825482438612670370512718014795378440080606432419606410759007702263086074164071173546374527540386126865041872907534179419019893177370619492476406291488832519765078362380722395181443144554765095792525321865402813158180302095136354779887807613707886399200440468836617357950589728679956126472050528909409625274552476898992626469447436535879313029466052935177512753374627480380450997053884951434010953493433908008994875725978507923022267795050820655860575917451026374658610803721806108780066412796367404549358322342477826308554485249851125673553149603116586826098680606470831638789380515021036158013256965536510448801425945732699999316014468179602525441212468091957005763198980307333370693892842824790260208324906541799583942388330912228916462078351171679298860966629647483082821360484860790803065468506330316489895852153240636372363163509187014451742304322342010834378474747963434132153682112590598472517516381621586870916501332292555713124203183154875251893365255153598455141114662863623463753570114985538713861816712192074996589982149389140384170397204297413568321503203760937331643621735811749196246868834421793202734917392131989832818722586616548638416975980870516087814970042041116596979385706129999863042281123210333606521982324761999491402781408909780002102684940746433112389873554051475158485443453077268874552258151836634121625037182137297215066778151189686150133715326398345469397966825767636005159218018284401648588282553888060389320279025017034452769442505553359299528794660841005853646463013710282682918677429555627876540192667143203382253476260389997002439064193633066899579159498696209435854958267078468969453415584916299699752304643155300070640527844927882866332114476885622952337887353456345773015271100492773767979751523186701257344645562129187461876777324280527503556664086098156327443592257558025175542650028119254140984749865727008423692231927182204347846370994345053830795904299453379040345136045751755696950366682059570975551937947112436558750675415202762649274535809141351231398801191358777999622833895098225478483194907154159320940200015684416050060047060040379956222791838283858219337585044489717069932313789495049090264548610291294273486837910320533051200759913422018339736226719000853080297003529171407462183783087760072985073784853129478908788551955424169116076551061766580632896108604440745755187057317515882295099959811917496031559192800883093684195787075407292619367974453254349875843236419394790598321598748072550555489144047009345738317035724883344280647176059668856105413810339080959565237561360314934436760856201557422273477301104104218176419661106214381269178439990916290759983133930612661731075739043262792614023705656080201778259056233420543527976894261094458742084823443959132720213740809633371023174892627983806133112373999502820449908165073881401078245710451436891136441834460485834959443611887296706663417144467373175987237689953470138124665549933218128982867601467158953218320383947390822053232966393210556459067376846636897980657693054151639022696146190112258887861596282575801039504841831091951868963359532873055996670419459507902505764231091248590068785481149615885010994959139556172973641973333219407481035718319969143485252284338898618138076976700627423542260207776475617984939213141767741008983185724327975347345957752688966004847215276420707814446490121535232063815283171518607906641062462672441019071016575765177770398395626346128558541442046032030291362131778658714010711912615580116084814368151484832136631419538080449847144560017123238323935928736754527944792436025371183492923394709928418475998713690776372591525107285709031828542680712557326041006012855943361399080958074367248466950851558749291497849996400168115523305049827804455868263637562900033077962742176714223411672399772678595232222848828900585343118835380536215316033780573229681694095264057627398648980673463507724195259241039702483180263805755038351883221815177996985817457168682367159248033973531723106854521214550273964610026358744710624509958910759281827979615114520893424150695854780803109319634949049145456937048557329809743804209334557218462088499677378576413264984148490427154729350782846034972438551981779965424869060575526708635424554577898435475770171337283714838689550040629973540838925569600382608509311657609880590042863793827532652058908435401909614023436571787678043853708011219843394114641879826277604246121811757672409880597335412461778643936474626426293264504794695529629354044397412141008356389804768613781722299447049710599378993421793544944080483739371992812701214430362065398514589227325377779375517570567111471949844008834976880609608777373475175576183205598353966894381602999540205051081038994698584765508643694989931923784018892352850739520728054861324663943124708252464737128529142368775064562703426173554415283192504741927705961825143736902747201238405246268426181708426339462864731610225030405542821951331576772861121496397082486850340927798971483897816839923561728009850713095282783604994359393926047264383745788007848480392344600467394441093480544010425527826467780856005111842376882105813572946319368531461407866053529092593935294719430624544126091186249443529113841195454403927335186591803722388415025675182599361739104937387964558145527839432125506522417663401473871841376369054553288563551885936238394745605988781885125179416784493482905343435200425441676073056260246009453223763559401430803624712979634788295158652361720411349865564739631762595198059021212868391462356523278262117105724915105232188056103685326999090193252001957144996302781018256206677359235702893099835679356572369826224229302408438533615614076151243341199666595791507048313026502059468987149185865747488303455316364028485114459988603773970797345417220021705539152769345022599923745393583830214085098647378432840735188184362201715880546102455214726516809275272498628747649274129662470209506268066545778689039520913260849578556237896182343713918848413035283727477040966631911314086050874357461800597471912223314786422262045470015968100738955180836981024500508765677487796955558999668663372271727013354880596045907632942524819688288716023314047088864344865984699970535130609545057905720057373591364309561099154234310952479898091010437712700778113196649628374830158054562162932827902247020241645474707948501307401425822621052914824162626174725023020620120701439826944916390166379957063852220176163098302842882108832988412252613661975128402796494126883843609744252282511293587823972471261207369565303895720235336817553686446242434850614938456143227550041950090948927991456404830241599362950858890849663318820800778256407877870378176376708510737878381444099079593484720226187352964802563645801533023864166742224302323374456092155341394384175107164014409139221211458172760255214509223614339993605448917278730208801524259801253997782919278979371274147016427922607627512132141067386210325336582229342826492037106508353632531829277869472921664440464151661965593189468907365848579472829889384391450620141591713075165378669781350454560889281302986709490821795288068048724311990231795353385405164913804693365118562776559620909664118370096009458889022869791836735063287954140559256833451523131488588123328504224155805561772994543082591739608398487552143212477661020272058380670130750597970390177573763250347606663477918089156496027316371203488989138064186050273450052587457391162173058997459400351484500172969356955020036045811557556480328991509318149986728725244792827785111379060732328537014350651051911367767081805124494601785107204386369879770436382254062477331569243624332184791582404718989862641215617912389124640683758612656279936428675635091389718496815780970768466425335838570275284285060783966936776503597298668761962662116174695900740584956990664937223878799501043862719711452367277949153429688539305448820110933885271355530377559660712759336262180026934242949932072011999030696190274616992716558047684155466216302230841985328601508083938313075947514229358028467425773317402732749936074334972886576994667901847745850100516211063267780061374891714232050053607748499547751849903692305018587282263233770132379223724455714184683101787435755153407790243482965852301615672721197665405536761412432295085602142160568747253457075109278926032531650682776471314526569779876602780269815414416663726185497064284965610404411495396186344043935313167861080168497877869137971639260506254159446662684831110686244571718936880446373066216438328876448758440687638959212102448148183911308923468825929483897399880054031486477238414436024923802813708383561561575800998008588662740989299130163805745485260071564132640717166677074492132987488798509867554568107175945159275002255024783896377250042572089844196772793344835301942704905231813680838522582146728389454412352348558931691202105985364471133185696424629517822711899403181081665333188142522098640098764301514287798188755973503863081654614155977982265598457880985130479969349452113622612524403173400325892471755166098999223778866989103343721063702778171815378730493276098189975501444551242422601997092977037974759305440582626494261074019953244143320578441611340570731380676755335948208021285442863011752459113836413458042686622510280394246898370201936014370732785901720113186061365742577380986029050069397540738243558625164018449738966719710949410387838480554284582993969337286937579510726815209370676561428388917596465763986104502938890634274433926345174775988151836678011421818826624156305259002350612521258619227059640264349433820359792206496815829982446828089895505987599301655912670304547922979831290644083274956385556228237848309417227175831138534349584019424204301449615894094207112065067572496152947124866662663330492386751234745179047968491966374156767957158300845791669507622043268763634849267887713575530065838422965576309847089257891761240513683023723700019473570910752049654842689448987120024416915066338537982263673719757010701781221627988243835402744230824965839405812363817284715562056138314464288615576672179234135493211578659479776159144171220934109573814584708114890129801565935173686598396799033241517159409130058199354365940641971632179891050968288533372554967792993047189922780982593173758295377137257650466915557915490497655540217087838456861915721069997581354220319993522766700448886294386374832914250540697281991221585941906623235191542743785240251551978514850130127192334910759340747639990513499880656393517597814609200989146777751857204850463615153052585459237499054367065962123840739811299460471774357014763384940731088776976478293182447924940089560053669530793810813496774088531405551168052817539769263579510941674408905355490400745269923377496624425591312601276341379538236031828491420338020350348656464053492466020117513410276864866717345861669816953657078995343420921315015651724486214223673134557657835983828769468619476787272262870742513923293926458117089204091393012650847161699845625698445051439268717452790845458916948462637253163391815110422315860623967598983465380243594264186704607926257910199222898349027368039754643262532351651713912146503498775672981538311320199904701301282698490878822617143362245100712222436632783082862131869696775289965991360661241473502119176358730470978817643077380939843801782853901376708928097757427642075081093863749043068126369793423268781338167676046621193824421008388142213891726411473905324697058440339389151816629813703695863983137917580028433516217275134979155793260314225974426267535836619950285827588821537032890537591279536067406089306823316166736834906697838329791612649305894234522643197103837543310050329698856620089728422905770289910907749236244080255554780882456029544577109580919540656267201308136585929974358470086764703273604900665027270593020196405172239532653852829096497007229337466191910476110154327509396463926585719399247959635654428578921519443115422258308561896675670282691404773960485799598172504784091150620122448161018767090486355572414920395051576033429371571603509628865698822601203868560562898151316818474991580231956172809342934207212069974528968901534658856829484245106116998681494534434172544196501007184596512509899610577929749517829823374384049458533168772283334721148926515642683489462541026078959252353334750892005341227752053284652406110069001466051589209748586872228602612439990883061669760697049663999645652346773870715530069871610110988761084784796843395329489079350985526418316021862142648774331175926273918713775032210456482689170831322210084244365249768976777496598684249901761961724716360257836220794427711584134416170028677516754017155368023153957927161211363860783739133937652326530026694284924643866516764020902880908930962476133812843100611603549841555863107894466953227348805839672314260654734158953894743751069049530983797259000435889833556612978799716185154677733885663842623796499463237437902058390417511705246491245558457817229663466108634189026977666347465551682238892765877940808440378337088763426733804780414113041792328962344191773456920609581976056236571347199705398730893864951247986495107516047114740501334238215048255646410252480994139475709704248473936637451562836874968966248383457465157978592821951803729579350133378113802382946116662950278418989550042205060783561594722035331726446113678251533000589222948665269527269361128882402169471044295882568662004922440907408251640862615492949143860824564580883180388310089095348787577726275581772047667010018188287024334380608700543692494017366628227128653714923694684975721496888366654567103453122842178982487642376909885754617464889068846985019473567484796233188885412396309524965156382117364473933368425110188293416617772408387877821888458542492785908205356873872394663013474133117210261783679249243526323026105648614536940836280313489615417111499888319863949017193937248525415728242017512785939412762067236990125210645008355090427535406478651322039944044701313293651109970090114679128375929372283797756836244991123631808064029865042065400911248832772879741268544815496355997830396192670641720518489772292686912477657417936637717063341999588087755319732231883473652546154400356757683827126433212097695659554084173806285695858433903835310211014708680822074573592509271591007318787697414394814775335914082398179669141426081670130310367944541190572417043145962074261560886687342902605344221002106811454183593432774343577601392979161997257450059803246169274267122049190730588244217538832540838767283260474524176157048242973955612949049687376718356688612606978637106844582306392507181040297030734338706201102340453151847877572356855323108201297602557783216149313330337127805382131265499563429007892181399760494886390646056133226581074450317126166454488123429666410478317671210792348081101999930448597839641098802481653159772098309795970785235164256201769840616676674441246849643429175759571470466517498585065221483407876155618638607828658357483780257973035634477560016885233499513577779919627665793677578876454492389674110227795464740812985971475791583775697645111904682162749397616615459184182768961802818507475838775881576935021445084832669240456430579040270739263110134272224123985312053303890172334642446423607155892845134965407190388484829158102179085902271242441877064818408637055497592024784899302337707594981287002531592110383427771229440051786786389093902485924862268450650166368696011071683408876038811999563903968752583714840170874288927187786938264886102173679485722997992596862873848589987789215722796099387567708298933704264500028227446893892347349576379575891147423754825799756904745672919492929096575317047290819985564548297049730821099038821872447995596260321028959231948887983993877257262047390220473270563683430000848321499982204575659812767875257177087460013391106295865913712265018212970424833803916763360233147325731034194180436034607118565516681951707505654891869857229813494316910652851492505189417955313616191612102756691874362389582044110875525123789196041267197339153108815232229707880880066670054997212860277193807164894479531209750985292650665673369844960732903275992796819646681782971604325995037883978290305995084458507784273355274438543501453584755928840236131739223171363171144465836785682155571642754751454092453903952115941941635539008121354137658940015522227926423578225629178758539833725048794957056228455047328160992109022888212086712399980599928369703206283482960801557941715749893865600011430672082720512263912575807726628514390567368526697120444011296937933497678907310066333930152973141709493835242518652334050077097875102565492546561859927977331799659057521132758737308896510687552901171083967549707878438043245902226000974134101943173396499019540468652856175543620038606725354239561866745069729810940626423264681841079392772139734647464944469160297663228488490538104450634200374414595775238638002167499910796785355930013682353627768429857794662448903196167232856041355395930819364666822053936869468608036616005577147061747948699675832445666328682578116935350239779298391920370601894293961307798732880151367363455378440637515618810899253609158754228646140486195357857317064089066648166416350632262667747241452656782274900585775932598602766013790863442354914866844302965236204454155578323049724093620205439167575158868307041885320138490715900284103246588777524554719761999765049091277981840693786261399203780385742653167123720888284991929879934140588070737322022275781140459727393223013237358309557698248395708896047163964237929207345634643310587586100511512779614953891306108510299353800472399496689753808514289068312243849632131986793756932302059885174064304354644709594000822957620349977274801570208864325125443974125993811911148188218409928989503336220758591942076452510198852846721248480921805744533720174888378338004993146170757341265590105597888095611533666068541760265742418230700638299161380505180817705198590815824045324854698728972138381848278672125500061857927349906120248719628163547192332107546513786950406936191061388494745412983267311865502799563378547599310547744670177825886052705622818359463262393777659329314067239884226062357860584622043300735294412373013285500954028107952018364421223325547479177420048613089869295769652142579314492582749037437036812108535299800922340092834920682144078509044922760496476408940655677265707720485208558024961604308023465289409397841523345535608367284449721542958967292357129412919042291278659564313634209439818500323149444376796646381596594898321625676804241932893042390748582292691680210301940134707772202259752215537949015583747722818340186896079571021744898315786772480533549014018049153291108389858625938190930478097609211541153625192341482043795834664157737041814751381196642260584729301852658323560426306122588621875765379707273302802996318216068373707781384518657176831314319270379455509874152177632594815781079160416476845448429668986779200882944263631544610200974285432759314610395539924582846011897878539356116823785010894967665574525459908425167070579097952814657012766640747193504609559606587620709973765522112414347046505276135473060062672201976132944977146359321526706547079884886221252828727791996333941614370068223117061295373821231637255124992083073958763011652121513508852606813627001281363298763067029170352838773142633551068002717410966912432309594481565200391708226754088208369954912073500167779976062643206735328005644207141379050201736548152016264072195561382928534737811265380458910120514376284007456707898932951909078176739275877986768074315094192824951673323132192087007091630038489135103572026632228486331647623421696731710095436638673988211133441190796465284893250783161502157493117371738506331915413055190405864530341350647820490044563628827594945420211645657498982845784152061319730216593455309409143181364654271100616156407735654534880635551219944314912678669416142082865081186499821752069808799897807153604079391994186433217474540867192696953834480269514482251487135156865833551101819985136075913550973443783576157031657187066003460241598687825477346583975848636682939749153437634644160796031036238796946936769249243850113747703548689596093332450905144973288117288595352543096752327165033843360297491172480131653954444659806972766689467102201936302647951291510830624188462403922395213863526597605817867313737647877718706379998238843093182619839786400278394164737882678974157812370291612093034701851403057275124625389036227971450801677483064263150923329150535858320387983645580600524055800336602753844693020969277469379145830451517123820745517530287094780712982836159129241564355789312031683725186825361112218191639847870655067784932097982475179054308236920339793739984457746009543798993893159247550515522853314867668458919894104437994661354635746147496427589121249862839424596840781181630228505394783530974108153029854308281392014682034109426379766988473003323556884614928690915496942824731220096707886483213335950306893375327735219457803187830682552397163469666308256045258065767743732581244494455274503312128359888408283901750216694283696500869834704142776501947883301745673152083907585841881062780317444357679578173988256996312739623069305364688998747688325184648933531899118538965572628964348401746404497448804332208903222686759212562687086079899933013427225279362146866487267598496456897835788536487174431442121787501316095217547399146744727412517773908337440549738552019093356626306512067144562980344146615319764677798566201822502315478180655503804788843564965126796568507987818365779592720993097176953857151516347043732150299176856976893717245355442172671677186822618109591351887888768470674891431519982198966042202263095231498229048003481031734329831606603433561187272604828234927033712777636856715778231512236777003291259482758212189139035258848363073049169463125731435226781445840481567591639707420061914490282638142279059139946015578425722035574180808388070190699920653333914186404144434129901494900696830074738797639465173302404448222061970777491737952776067301520919760100076231177390928873570740328530609680572303241507745585043149602842163609807534582674820465007170574568854561873522396861289572881129890296305679743196339848241312225077718349519799973636457597335269691267302392014113115188920463575436213073083843845836783179363608189711010680285327024935280755403520089323427049620066120844705813253279342887665701052631678171966202350151346763241884560335384279672607792870764153010443545842406953363340841012415110674795048980118256970877082573535382879717477889599324847905759822413035049610814017633849202309772452031122793223707750095757537784696190983757447432631445572175727578226857714214517006609349444521234140580833954868928505882893260362270494486640956496783314653841574270052599541242659786158803555051319250576867751687246859990739866346414155551874174148443493251923808744082491896919625652750736599802952186936764259555022455017323737567227011550833941066636385574242812638077565920737220971836705823175332179017206498301277817250349283720049072247372888047624480589700687934569459127871919453354492907523778514777163585942002463133758418135442884318281053576082398473761488716042270732244711994363416559877681392640910357907603134653620363207135331164443720215314490632288982311540247153135922249513807255898202473812803530821440835032184851058754674941406766336390990535248194213319046921733347502281862382421608612711764704851178087564306789334115880069956375439417617974817110050604283588698309779517735831214700044354079547649179402417524273989414949159506298106823442867713248848029916386931384289759163222047233900179085357999776503441798809486518284303241624262425544185499883580454668405147515440726782124637900293008173205841296399716968978438730742072516465189700092070734385118189979619454002495198939592047682223421827147329948949893641741123781391820184922429534447474122972635237962420267638204936614089703343015897226433245271401007623382747896304368824301455613980955634942765969820239535806014655556815857665804706130913054653544446393156780068219577528424685639535000598700853818126666744242596995688233191381384326219948765635582665028233735874411176328421454274925103745649777824054189330882911910176424800622081795380532565955886008382243921462277527170561648618621430191841743991745200653191260463492782265137421037802747791842477651675212683311613790160120183453570030459716511328058182514805925317100848196526763862203609741650213395307505672329867957506420625883753138365850868397444337047603376213200831094442769747043426840367576434713298164858625388512234882281869470418353155768158633587231053141711126171320648383710850049347348153984351226183901357529196265680057226816551837261129900573675900028220771446961136741037180643347418677213101308191093821926334893807366002163397132582658823119759488322840122307312500166518822194470193098723202446137683668156233298362126788038800528723528465817277724276236840516066533587060313598693990572946946171430141229083255592773521963325675195895146954040585369492644520091594454799709287578288314585910076286631179620037538325584112858353102623754940923981830547205947193631885315144127358879360725311710346752287339420410418309243774686379283806972529359472817612383311057764508849819427934976228875542271619204694738883394834933523563798696322536883366443754553957704831298482749328428496574686277600739101648449883576909076694545776595590510590630084772220228691680820036871356805171750292993377956927302665809850418568992035823017397815960353830840139758172625247801290290131522811498374819691150704283606111940224867392602005403484733716165795116362713830155743644491066873341685237337042174851292886419970574779553136954406661030684616039113577653796134253553348733388421224436708582389227231221420004556000736974130183254944818594924017996768839736109881205095509764328723615105756894867764822014577860499832186308837784690306394815285804060053940456527443645871094616168036355147823523061052423212933534523355909900412456131168769048877091568468876961174319658331083916643669119178310548769675513306640624860031000138947579265949251732639566416238041740959983841021500423496048251148496810588494712707995443585944332780103606557747398318285405416682893033245930244124352599731773633193635911410945398697917426384574105877000396171997078780211090959224911654557386918107054808859348123347880291901912385130277259168702493366889136086398763169003274794679971824623569485432000789186656125089534676042040286057000960210874089912732674468195428590944610932509508906446930858922619724016236027976460045449888678433733977257612843159474633365198747452390008216004638471935066090269630899642190708851322209680968183370902769101613391025412574747731372904105202707594993473164026867375133374552199550550137457152741302002710514758026048433195944641343018933508000575355147078668454129325458672329680208786165184693169188292016210020540991153019242874046398069078143374944329310374840226159882343267658637950636560005395817231921422392577196991061190181480742127182815337545477659238923041331766479220494775017874473856966139263042699483990782696668237144905310004716704862686358369042938301131348766909203609649296730262873920585245431954045513638506456451774296529406582774501656839950839175960147888396458436225449637196694917916057800884317821348223485545124304184341342694301438616481524017042361705931056529825837732219597466514725629467311960172436932275164117574805579251980337499417001640373776221919562220715305453504232245326883113994231770107659989573191061974133484716728126484766039280470511106110135951592269010556527481891591564184424194283166026704074165605923709668684897154879470313741043266703556517184935835578665943325394727191950231274877382720964485936532184238276154987099778045176235791141866892801137118429755292877866608411072409574653564884254256529756246721214081922951722468541510552279475067851950855701444515999959448239063002797844212823683129618883714229352667253507554299626649902620544951823587885728673258005836072466370761662703552661334446993948526560103166250719598304480782866378300456214029618631769234780381142122641189462792036570790246371788896724009305640534517537388502036635441198787436324778057198926247132369872410676375493445706685294329072612345413436201770536365380076200038879305602402036077360525457837744043988552599987424320565018543487893650436324225711280893516272024981593205962163112852229896299046048179892785771880604245033052054781920922821893909079896996396626262559642082703937830981138263895604657651033110141890398534011937749784161959238506403060028103956605540818224305929215759289571623937584496035216732591621730438159110226753973388448015572949362520731963236304381560455608506268329612516845375099934583193983367896575049786504776111410831317265884554358067150792174842794615391857674391465687182059575012851721811482820716006749459092424597135619437359288283133480890498755592938652549793020613447966968763320362838383522119655093528484060855597726030719156975363568717166362491969649451317126194124243054374872581273706453745188084678953263385796372704808738583504523733018638350518350855720902920680776729807245075951644010500770343787781399335713775843732996315255730290370313379742085285524219347691846264454584306101855797153725180654715010873129504021106365879299679626893293203573518228717827299805048523458113743862076471919960289048458674679040772761069795243930953040382306174626993961886105471882818895304747679554346339947258559920927240302366584996134789058020077466896986997879921223109497782898908837567033000604382980623040212523443081616764872555120500267005328765785059244902721379578168164361998578877555904142511722114318430935477738010289611546528849030036299380955455339016088451307659875432860906810170600911012452138481249860636606607802159270156963640303467636120058213215154914298166619422779071489878877675181120051851337270503516082955301486201704702928522577387722884172971193255508019202105989765318298769090021751991044359937701871433080733925241557604803954261619996058508099783468526596302023831588012769270909872434873698983370999095669782733526132220700558317909225148891722556518149205732206198490337091547627128876157598944331036062147124474920193902926273426302548591786727264859122398501666088637037739330693008645321077950056539177491944304636629648885513899864772051137290693522420048439732301864808940973324814952637128794081547529721488171954904638813294806766050793531429260712040209541003293975587015035757933683988790380005765724200009521648232478696709032936808283672513887735978732449598487399841258577060606319826092411429541560736165353608601961429697218356546050949536961091964649356844423375176609966901560828290474479113552262402129501704095014463454441043566600020931079675541453171938033660522535658438238181172971285703511242056315370416116546723372527913144708423972491216381106940786932136585483483864374202823923545193456128083007015710501133482162931952920964878473694863756377920706122045371649412341827009474140534008172593304061041346852785341005553474842454548318337226775423430008193337065825652876813282534512315528410262366627516312023215345681199734302172498722301995470403846365615419739770491295915079052549938815056556230312757682343623685706696173507033453104032063597095396984625914754159932904719176105398075642177355090654775352983211634035920666455120986648030256955987659036905766908266874171794183290005775796235228015730353040281933759737996901328391200915352771938106749870528499813570150665196293525214967932845339498053061266822608270813252669270140235556540426624310241122621382613895357488459736201676648228349404200827822258865765353122876825151869319128481683792514325810608252840313784590403097620663207000873239202296176962829410483918008064126344596006754728211771041003091304634620574676925715435925507991427270101981406511098000589491547098293027055150233843814778693269343419183078440747613123666356257930829868464929005141048371471142673615076249878346501229570500898157550319087069236361818266652588501170150251180537952376934057243792097550231516858986608596520750058164543722650480658913838429402131525858409112664010423705969490529655771357352533424338092839029310670615707393544516101159230746648609684641026752773862987551684424924270534933011572878220133090961118362799137873331413610303181033686096946189765013715456729231662328297184862354555694649965442653147410587395752942649255339403398579344853296265716514547417590344262499999065379260336420945663806247092885149549358623311285046170317808416442337212060548498194788980104255511571267779475091050369410026110322394493475647491091025984011902028234128903741708256497591256753538723021895075577351943582844925008847609537068312664882399400603601183810188567072877473416672276027407371830878396857384511183446052366205608873192803654168255820315125442675740889508686696535141265467145321204268534616242861759905994648158067852383066914662639050565561293892455635988484900870328843714426437985225804762434260776660230684022714318100574283758201389906527887872647539580456434766696124969542620201159940857213011636673285981576727328448896889209322650503550916668918640617334949358920770922706642011767045094721633037470262160339497310221603878329884926253835109593685684830481507670758245626621113978265956866594487557540866803571870360850011651581586679827884373042579838762055905703807474408274091986489826668676535449395030133928229487629410925269455120459648626247200881425087792432075262854220643033278294516165144648919170272150701231833001119590210108858420125763582908256567894946630015887487159861007693128865190227541092058453963283938576620937563112023217214639203323395285903074858712038509828987855118520086703369402768195084514949471116727805055760383926859036602691423849989445669332888985413220772350356402246573869271026099053135393339863039882697558084208712271708554017191010798109615502754795647035218388666389794706081110821683222726625508871588533291135795112194434321179925203167359478868826553920003016752784899265248790717942491986494579793172837437758293025707418583867416682434824486008376983331178694064670418954510113714112440682525824296930473476807453048615217745522908097797004963458515062751537365913755678634212409299257375215706264021106433257803295878430135255611502913942714895121858466201869332521707321664272880816311608730688978570622209684389501490267173659486506427568814351626801807514633786335198707756526571437911268528690114225423083241590678455683012753722321809248269828310656085533053512301652530564553513133962761900369993361563973449028505399630240623460329097543867569581159445517242772716315128385798757580266907535020085377785962190918622669240055866100792160444691126271624786033275661868047689039070126701490532097614666504592127261591034616891257903829385330023605371978286396035096024846761392614770439601352816416404909599248448024050703217627847545361228986128559219802654812885924269482187422975764183903296695884016690387836222411759622612973343672194969953560731045703730163863658280125622284436207218142036807502480247351732783768084124020140932992607404244930982685513810430319318329408278239305698911026216992265856106215908614962683062344174252609716726075527090138881692008148174143158643521023610479532831474350227382085593622452155537705700018246395275834894969939125189056743198791335629861494367702519397018728765134472550866419970753792093298481592833345338717889925981943151315731462280974106101048556390923332449295144695867639362108436809675777241688638388050748071152957945820029565033660638997945092833945487269959133283235525766521064545856718703990463447383237910927431375444767568827648893692580497507738881193221086534721477291870687057756763480109767209138548808633861074040939456189265120646356681114914860939314290888210939506698590976445569590491097933078304559110424371338824917211130201265114220363179225988205297606376378095924841118991229203401961148838636091526527673317321166595154661408959220311884392713153387680716619306013594432264046863709492996644012723607937882626265719054855178332216201325274705223169432880466301843057816260096483988622677108397892429562463381704392337776019852720776484622625332333734307830288519686058343253032582746368090539328033069517790506658205721762877537467104355186546717434014882882802052577658517525256412319809791779746518397529924205838822577142315404743916367262237952590703323453664942928744213222578217915295012972268206272184684138946418091781494498390673475882963891506346734341789610755026970665737528173982095596717934744374886807102970781604072672867948509531230550469095741468086335723878450467422808730029368247310965713894674424375718386528148117119626129352504218943653974022032274855647003474937916105676312233633509573367380514910822719140280191094955738942208314576681548988563676765410364282244071995185433850096677829682729580923119278136459840029107759655912043353909520577750350945385906705119589372984329067797137595349418602414359835149880129013306692148230601535337701553260428893133282576263017014361012252385804299700289408941260947277036679479243859988631261715152274311322879620279216082197258802927030995191237873154714210717908284059367487262384505205212582981850469676242778289635181013256889877706408794938432849826157565676760195023442238280284408066925203847742816468829135244661635457705378611588076233157002616459492187967092894670139977636866885251493971873154619605606861027398928426474267724335490720886481135478208553375531746455092219814485995583683142095011861047501938524210851105210989460255647538331948465096939570373099307279397434379429820354420411133887987321324779480291673565705109344820872810859347473111742909163855231643763724099375380499385845348174139410026473685454716506408737768936764776447637936933928013854920903577548161626640350928579471944277584689863758019367926770883331246156087755541006185964046268663499748526784417068905640153228240868787308934542906971776920874337645664232721208163192411381886132615989029426221585965206302885617141875395745748431483720297099987146984756548993805003261535821306985958649623878277924017466870488443441313826022634462391844967181614879197130332610684361725854176338751329989884575508237920020534731173493317884542957344642518305437884280715938935512115067916110864075800265241972888028780245608692465288528550681985069127075401333455448085337267575221278592346312597120442883534842348532807759489292384420418152871029442051966182221711917739273073715275561118689074478069928407092868753225682520115221317137463261316582431085827444397414030336771643999468741318259420903227226353828862548799613719412029995553763112910934561553810441475766805063187223549644379327196913483803625166943261549910683181802966134689106701971857198578343101524887219565510007187651384251712692964834957387294654155911085742887063683899262535176911986563866998297945346269152915726196220859619415549109638543940456505001652066802074721664807408022178992842088424498097628388077993292837683076801501520303944261433272877426731778031841564131619605163634708812287016886026246857738734756122389384385837556840105117320283502969333315322786956313486184115129188496357895014979855095631466736268943004252069383376917379613505413320373604265897132431104233587289233460021937428380898489013873546506885110839385657126641722154554662609569409189620836128460196779832220873249634954059038106310585388492449117115222525446893153285571846221252384915281638714041390799436861894802599865920627436770142891606780775490562590714321386566048410073175985303248095967447948885609696591430200614849863218724115717768815361471009226599272607541121573960041675816818363385563577938665239072364692092208575466621612165387447678033341103069819866204708926273879615293221191945848728619199783026462817816471630455917913607382224623727828126920762430942382687060750961248076404942835433194325228441224443668381039045459211300052675796225799236394970450886152731213744482369396183534337336763508642909387990860045572237146388410588433192484106172339571569852244903280570052258545492546403079894665852248596277407367395644295688668201630515562495056452833384607825123722126171903799371796561915198952733970856756873830402545153983147901118663602828601197567684109017546986718149603369876694208776540205530796656305713506929956308145075095974853235496709426541507224700746200461609754520526352059658668100265280034698064907348000408726788656279260002029758254769429809711455329051891694289721563476405129104442939692761502432334918864270003790657563680332925341990479637089857293742344928324785824689915736009914856722909747320004431486501156496237566058539091497525265047823802097334705139003217644448036725333268120578459563595451294609591142889878842159666367357062946563339634135198997659489830115087386037447127512463174540165412350963856316125935275196628394098754798586781987495367575089425152128083894697985629179446981462305536021369614033946842569232085856729019787824345290466687988622898782843628777563270874252353658294363989771885412363253940785905882328346527535926613415133557165261991849436431522587852938298720977203334770167862355525643652665588978435866813022651168459741851120701714063469390505388800574708362596596658336928690618393097700375625447245900203273669081751152529195138812411510418626724075762550868871305838493595559876108268615283044570043462915992517987052462473121322281614147567249188653084349972474746937335462879746120180157566665292378438116020024850538026333038043909157267018448125174766915870862409557790663449262646017821770886795072177820498751969755796333367010091046319051757130698429383443406355426301450690543853072924158729340887798302890242529203098784803991238234969066228511245439297772788704226207344977922749468846339808374307991113348217106929089768645830428722199708351659336537937551726698140501940496100572894024231785364204109633772422963688721144664078669934807048888508608188788415300371041093200917790108092429547176017586458386645659106389465598906437747557805969657810004437053159902189594514410489200539576715579323982025544023711685148302538954165182064430426790097843088410482349876705376545186904845948764122910521326341717403544077301410910578407695214714963408533383506808542834363859099152295341696200591212683124897986347219554827373765368988937892773377679640419359180947378295139734716604224988901186860760542831129834762431582712287125561889125605016836609101956800302218574559923930942190043986132507258036548677179997353638965530146827193394997636141329259472873422607294103566024745735813617455898208580116168836888118364654577941014426469919569634828806447782365632580007048689657617985953332642933588161315350433356287218277309315369463813454686769418914729888532587152287798307314092005850850553821266079442172397767419158858306142732224260990904417818934164239948526593526263714328394052132633264977823584846793889760178345175285342248873930670720873796394874006600132241387037792940310821464527923257836315311718763866032001847610298225106478501053676320000625034406737795667542757215337374279347048338162394365419841990516346141531139077793287731180748812780949770321799150564197574163644791506062028248173540222967766419757941684061932113802349726003180392866449789744327143294050481534080957930966028852636801166106580397752276259560488759085182148935463309651712228984209227855640691712442345784780048112700320033299398911997844016966262230408468292530550760591929729687328637111259664091154231879305997777768727409455364942429046508299781627373738407332331038917749642536475130817086725999795516791378917067927210077705007304993429187719851049645544259006434321064717008176600126912428193301934385496418044311023006433211860044928969074954674109172109914693593070279119905008880910789721695811561298494190704220599513120525005895258537104714758053159690821382539705348619934101885123744560087700033731412147345428295324531614790321098460762796455700610757614436941865040028362358069149784004659446218793660505070409648275840795302467596973592354156810259333176631228930698373810305413686121409991389116321167384029214706984213039553579820248277161246742207245297035096160633657364953068405298769595165262513494683040288361063321383663447049634626588608376011330282218686376092348790721271625154326157315318152374113872939225896739986349737462257223976036715437419734917464504791778612110203608035867556762679829675678285055744620821537399521132088349768368730131009247302657131877844301155358917674015528773208258416303257150599731931748057603528713858330219052278901277063817893800121425912331285386249765781298514976412543132944303228941833443653294413566691439704624875307356005267385173073203644798800824074493615006305963788154719590466930391219515980855846764311291501996294884455509033482533205308228302420615828667149429016582926631835729088169754621410062340579864297036684434127212549632125239959116699334477530181766844124785418564675757004626985252586238994995954302822415002290608088598357356304401827055507420810098559760568278296155495007769553997627660862567760156795284713681780617735017675121504041634908510054191448022475610392260878868838505603112981865517967766529437491774704652489827719017903093968810573439734358298972430050671463759823400742882781452557938193061372664162962918957843635056854377673173688337496990938970386580099273688145961097488682034025109162078081148413695217528648624917084880907598911105505887785213972668718083994364798083686426311457699462896778016193782987758054492520446623153641233962470603479588373217218644325604605987998411772999559783434443070770704248820594504828877204341011230659794970206676948418955969709267628521944883770649698646760356876123486813627531674716918884252125049147132277066904368641809704901549972119441013862784793353176546526678437609531929624081856261373745516376963631151220057862411046887340557899596294297953679860193004605918868191675962646761117788632115616134460213612777077150206732004927737064261709366587122204343572693555783106434470904055350466612691885172734864034670917680695775593752752938128143214398024975775524526935252710877968783277042661918550451184792369990956174617442776782500837593880639133169450200718006120818551587633162385545128221764132779548747020865304489179535353971179302144418421045246865053505927521788585711434040874399087907043154313442542952997823202124657234374475973558781429332234634614844189409577379216140801679260614653060468759917567143674527430686907338984074079703152298559712369864086176696145882451834446529568659756485159738444570997550321893396543457999669505180390862544223302999656805381126537354499906506713015910862991878721219447568910452099116920809081706529668810539114198571701025439900768895396892974784568081332719445007124989124993611867792702163782318207813749433213563603555398972353784021305578580786703749590069872945416250177609127819442925223869551558891312310464100149264294745230171645528419050232835640792308832977911250875222918623698674709751385780131789523586330436026997604886299185481198112217441407307326369726277185700146078341548798276887448330427835381061823783630435535858804236094751112737795313777748881097250911099144979873386024556718483760751617558169343933198757939326665491982268849099892472677250303387186933841887378412515256915120118532984717274317589737791378321074381891097101535047515928569219718934312702513462665066617045694168408462633070629348076536316731195083400488874567694672086676575511540770749917095779232808939980226222107595286169830969006221711084943433588196918495614827864507178029932271115453570765382492677556138448463858134539478467975256530229769441469490950053656697519442977611049476850041098301922719688043778091825432285605327415559785198169577655879759350692129949474730158835929270957925687645261738292568694531023911213817308986559465287198020857445778516707848666601547301825349795153021257413427052203477332134166940566550496552385055896534576748826365328972833145318424264405106154292886472334594596198864042172863363986346954232733245076683914057927078888928839145047292707444537628339964693259446138320601152717577031994145562223718499668865324030883745728407921222878512198385719918582893436525487661016798773229535960950981399322387226215009774293009372582399469595554853383773837821104145300475674490872145786711912719487167477392347787228409957821105700065150323063588522124441610513250799010085971843995072858595045165307311594883975819500348706631028241239831227747448305199579138381398417731716716335229320607886711248481620473408455147247902344223288140528456234582919480319115358924560517579303669712007907478517551454371195014398911091968533588344711041945034607910989835735141925673295258209616980547946896650192337738756003674593663929042523487409971239637129342563914586416898807021626997357071989391003308176270196312588175997830282939365213636626039998418011699742941605887153023008386427902454427146861072257005677296717262841784613902747051409428241506719792097636995108446570073942734307626739811475878423990008194181774156619617790979401745041747555863251946645038109478255719850816439439411988464597999396738288970379227017296786031061074132251157913915810884031052589380946910683922367304160713199622298795516934072005780751616989211687603300485837557024477755944590495824796273444901454535705261463470086479037895357732347770692206922119290914276691551275534467949232060218520671737749856260410362731945896842203000569710604471394369517648857041566316827874268279898729031955653166611330212149748709055137059845004142006624882053820328967000729292109695357136283832558368328111908087589715548041567590693100173197357549891807279641567114294191405178079870296393982999384868968190786394257365264486111283439729581335020535622554405826407656795490145561253277424686039477897177931015810415240048767009447444497414295187446244195616909366777487403015581083546151419457370793395815214694444750581344160408242905358408690044381786331263033505184873083593304700270207573115604692846003714492115067415264732097831072710233922972978451899225919329413703272087495516507276797961237648758950456209725794777470886538279196792804238565431790400166081514991828901999653223050141960392830332206935626107654987958277574192482785671683492053500394762245040582312440060048724035346710948421400958998367171533516903846075906247672628688265700379422643257297776634917734422744467389914501039246858447476527505587305911724202664200102799130360476571524791331356824381418066938015802915503127373546551056970908427628263437374230784840341752844696478184714172511960484363278418837147940849275130745601352038315451623460756861693796262789404389614683883186176288671179048238231817308929327121733915985412662499967997032251292835936467189675723295966670788604341936753252334737117262453764454727869374127384461928648658403783681318133676631466229168802385376041565770871618057580643128380259426125337744387802026331416056327089955280639711346516121419688247355623086364067484714431556277669911124831108788058708827029066807808882857999432541586277266449389980856738749884298919770754481207943241310338421799142506244127235739290467981601919557248680584162891239667144585310030520956217352522059907772460436922640098776904276529018896131984717318664611177239255486542992312192884285361593154312160887401417329996515131464743647952666951277230811808193001024844417295580779634003082832292576759467476131645549520074305360920970833359413949033108058727869041541038891486572934616393047702650028825022794736332317618360214307760063278794414478677830828179811076453615998760365064305329991289332661355550087114675788517124242818903095058066357277293522980045057635525202204259915580591047338975696017246631418805356586181468291060325238469495424824972219886120856063034816651296485293092564364371040815672603223813668330217402063456872370921745800288413114033591919160659199590904809223271438385052512277553573483085738861626258782792147835462793206516305720519296740489102730443147266356668115469131507965890229499638677596468550083939685140812829388804117134538144415265697941996373019859275553374765206819268470479004331653418007484580859802556914815021550968757280456330623620285210943239610772353099454491419618284767646314296835057276487568938309897850502935855718624116773988822373007037493806591344944267018558113720914163880946325721442952408196617310188745102680572902331706902340152264086870085227399895327875257251205390773833218744198952208680083267035079862950110053377941662331048590115569956329536286547937348341407228336114264279184030645950444000778928300417989735972347463058747701763940896249440517689794816353729454866075302269957077424785061078403672968120353948060343744442120777861322618417194873540207648977041966949044225239898920305030117947235664853491214389468319931095856034147146277471367519081433804157329091749078356387813207292994042045483132606218389597879378730572341889906718400903481791724758323633441207656523839566972195066955497351228990840952473210341602864543536686399954212654169880345944280401171620560984793773538851995126515610493409937450183610687817415392917888202723051176519427214300476425294061842083569993771285149508243000833280602311879070914427838336544766082410473966501512066259978154957919560146700011886516087040145939566933044688748670245538568152543350951754220280701771388620309867569099525595122675702271203136768188850548137311362955337965418786758673938612824587338785217406651153132888712084872779713102503580557877593804252162710234310398402453127026076529311089792830360008147917085545753972206652920926136508953937803894722704949684796763494268930694195636928814793111153032360310895583507712350789454228371232352788783405593820548245039586951581008616435334025304458144686491725683836426966260422271410274930224976179587221134320206308737961675065264421158866439553705196388914497311026959499272938880699654665826742399097085961805944442049536794710046742353084199295206206890541743281045226951041241942929464513019675418940376572444709850373428319025087709314821363011408500446766467201958080722546544608765837816968602878521915588370846461860883137813382194010751444924270984416135178492349630357995219415242889513905397014186547094446785254800756189311286150607178084878515008038412257376052154104314997259073229169092493022819853414721312568418963929553598418295059720399491382135979317021578380188121260877927643663822248124379756622775990876234392092403796227537175396541883804685084107143412328214670494177176181043900295025891514443491428736384059466790006566754212436260630590493843036882080155837732365828920854168083417029543874624789045729142381198979690693138940917259458715751144384071696691159396787056401427160439721454509975666250600471710407367258200317206414244270091475401157281498054238393991040367002225924849901378979542867297138715372458171961117136315861143598450614048926330064564709540834195252442114634978706051963964764647177278588695105852595285038122964148123114364237248828666242708634283713176486182622982629024069300339883328155779496805311562483127227348861273024231814123588992365904784327203443904696637219212138366866039554044442926042549568718970808396504685102719584675771417969765348738739948485895657164105823946138486397494981645414345516685123124954871410072896031196362532722926883197596340361197242908062732940948105251295492209414265847971694522586764549062772996009434561410437927548044368714557014719473984309606306256667526415143493648347186505014533901379187852040500181240195273714668968984899674169578874527310250374155561164175531111936001411891729266611618342475911205103409202268586694705247876030379272224190576117344441615063227907759860183605469483599904051228309695123528599936905371727713468946593055214619419072522483126129213345718542715479651087662365078499600477035640183262098287636016905221262388552166934415024684860522061293959642127155313378683054410001415429983202879728279692669597658569822432195238591072367117858122503289167166859265989915875850478705265328694055086007425367915392832013851755579110424178242906851396678354385983184529001744093220365842382331446797324683274789612524426678554948277460575462428574314348446907229742972109050028231676852810088376595010623176962695745621737188540542232191669142824780245791211911117678533217246365049854240679868765888063881051607877136531705611390358482520766325104653104804085362473703930780306864696821907443174966454394599875504411619059545192770351620381844342750172926174724418630016174291584070272050554224855575693816315181254366276918811618301977495665019414826060146872118414349514597688229541597778816531634152714996031597995597761292995825580974719617595846746295626459030627937265802945183010596327744083247981736211919829385875167966442847889361467343328552547103499093609334492521295785391648366305119325705936759281646979513964054692529922301868791218566089583759220563033159230773990078540382944507202638090173852524492724494959541325621495276362382623682560682767715488458062100211558676974044990384779853213720909168416374902668473376332036571433009324763728252589583814335099702046499157876486328668950987604534459534867077470800638872099440666124845958118316848786509278905342459382764318801570105019821927339646048784372960814612662690756085179650258496822706688933375935734743315201560371033579515798268700022567896721226196923717386960545402719938352590843648471660155543036249935505729592881823544047930123880369456001224946437830700339365446759327359560445532217767389224242480362921102855793609517419121321058831143138294821676436295232420458695653094827154708764569554276541456406166956697425771987349912656700405705856686099091966121174809234470329567064638541490814554665787422735762338566462812637610246338851985594716217120076901667818906102825504537830835234953661965664965144351971643267459627651015258688001781644983823571677207903142944846749229233132669149558464057333956816631414154645435894947447134506692720391783244466942492745657702918969645975881629628672697458369167766250118426684327537149375011286086708341460629257157940917998030023757386379978607870510058893134663113436855305540789242541940850281817799050605045035608593557532221488897228847374628797773284123215179809436871122897034063505361762690208307065345387346168864982771563526797918118230290296827676804356631829429721169476446175079317208373619288003251357187862987594768818816513402972903698082464415135631699153141251590095822963210139977673233114661277942111860762671366923965339118933361090586734678703149258234460477027749233639878639172414782564962207399930763204621487439405797086104418858081605627046284499363732318786488211817409472680440381874352831283893705653654756298240310780158920620931010050149789430398170452338155492741677753627075284258579273405330926639826015038810991472219086362401070689158236580513676606550600702737012970412541316836163837511691916013317752173928245060813407877618965990328795798785985225957349382059226143414021890412824819118077056495199079859369511063646708154741074324963610171583637620645052495072650039188774314128622370702080287457048521956793147946971434000005113141693483265239720137577009332749826038637018944892579625727895480060238646634841756350633644759075572758473456546509220772206315113244473368757092353855211543606205366249456697194913715705312268283133885745733032606209353690361224589323969294300948635023119364183721138797722441519486659164226867645066995866280609720779396678948016777829152545848032986156260310528426000279256975276297277585657536630582482317583114139412767063784544893085314148678589474333163269707244710054104421950007461063528789018073485123126204796282572280236768024525144941239792920578119573771362401479071254118609387904985742729166720564496688422563810537138714139808150992453513779087960281722613299371249836968268831869369731844952041671639616171005668278994288201891804323586282821288270746310585580233330374742944164564331617815455655081948610500361861548772932231830981827189845658641146862499195094534674280705891458322788205240769359803623023222061470750481352828335511503785809274584548474037123983439853858733570295455273491240341401424476048845463677960732545954411235378373580130156487177079699265358659131313468034848352778067019908504191852425526556147093166874385619089444285135770463085687579418327859759469367957872310995738658834542452562518702955746258647190660402390917068703235065842443888771193511731284362087748903689980163250979192109854221025181403127802314083038097840357157503767335844001934848684621000676442892164146078563956352153069775468549769892086014791899595207915927331870063532095395303565402776834903800681849654650274166466648199099935274192351849342824220950426093781838789703335071805432681959290657635464670686713910902905130950744638446451316288433865033790349088645816192336289176646272677546194351546672585969041884832547775826540270171933221038003689973163401562617443307650615863110091486509060802344252376876566606618341403686371022857891264099330444387179277834665708205365440418594449466820312184601384177741359112604841872033829409297725196633092257031085446376608201182551504113797248909804480518643287853697094571049700569233547854437656822776337266413083272338339842546661561934400915572442498302587298411323540110115125994575791635718461629680283264340268753112467792649499033747283567656044604477181499965997342146856934054385013265196673454273193857117059333602544642375255083038272976027766151241025923142662940612697504707155533512208931201686071904476176561353283627340525219482236265357093799108048533686225997565720111274354577689765236141684267311397465638336105782571540512969677333843513824169985707890248546782454581356256624947714623272379451769184646392056258144809287135327348292512169452197576343932297515464068350698091695743505739460553632574031523013190615655821038462933995942456644856324640386662167392385334616407704887939389896386352612271049096440618538026834234088541528822713745437145853319927718096306001045575946631703688068659015931095363651366334248958515430254872898756420334602736220930384878049957927155490797350617072238855078470052304455883130108610429272808631523903801343117115825606194492937224577578417567712152361800571624223926131260742305306161307260193282089726782408383918505865367075657417286298081539823601068798511899433270571456437716810157394209329436101384679645311719413217976755723139554650967551012868187619126674854518738683932705890656123864292030920364527471546886341923479715717381574896852437607921317791007096044975631765665175314364241620737166218612215436930802746847821126880051126941845745070480975460931319522607749096296264510006281250164064179209976849446109561152868497806808967431613777362097433514536918382246671073266858036595921478940554295555798924067976827781298427807064218172363165437016761071258761628297761960960360878640966700757556991164451428049352984064892026181377193035022671185047768584076730389471701106712696465529848746164915026596691398121582300314759581184092004140581885565371248467856935532281225589350438733601044385522860925709002749671818472440725638221607675092516876985561656823925532782341567003100552613949357486596615797484676907353486811401526045614897806503952246216914670588593908887388677508221243259246593538598251227654078733149851290518988598863021323548704421838674634041212452828596478164775004143896261468261699413575498024699290360739508049117829225254197661545411221495540943118401786473774630222239948591031464884338699947086164991987810460409049064294721172959929692775931043859727441218694048728862125512627629439710293938977061839691816288516040202702598343041991279388145071282628947005449881337199755974961704614896236316876266415440766740913473150385407196711749336794538722099802254945170181422107541979716822013275136272497282860863079141812601176776756789696088355230730572248974394919512712763920184923889143567900095716138895931034332691954334858098526597056168417284124715243050927352723282378706991376127483041392891638319154706238508011601623739616222822255862941843805045830006482790612774676979234624809431733868237033489665563662714102877527441526438516255973403447207181399281354873757863399724792418205661341793319437364124650964348918005169028594559326377399307640420910156976971947775855252035509510360766539399273820974424122542372683083295980723718338910476713396638171110850780974159645123305964343773729182000952636101700927807758559337158031498939863894597404960973377440204723859466422376398175404995193818425958964010634010101243366388836387897266120448791467757545945457675447412546214625611269235349415319175521287362592844142641678679925817059017857427722967900168634487263748766423101270499365962359382803702011419354543364284793627286210798159692427384560196722634140934383769317864998786871167720525457951354200299853716389042639110375467420930950212995779592590583318060719598951985990301529788050116174242478550853472849548360913631834384356612670520056379037292476516374087048928702973537431492450002942484777114276069577602264803794267389210522519867939851419285697574200036832639381991228570067731731287740212198063174154466185789129434862905512256260019304743546714719233596112397980794606847540947453117748736839045108566849259566300507293059599994442999362312075046114930456236474508163331509758056342097631177482377141898451764096019359631956359266741628650585805839000791123114165869600073351630693654037594195203276952133983551346684588961961309710390567257468360901022809543592588732912122439874546975680534773417062743218694966586895536082033767076600522073422569615997535026695350987004802298292943223245592638079799993778890756925684824009082882987916056758714927288814161516353121919036238522490929705425772712822166673965735546370051637520016462978266092826950657404226097603467218253555382055888112809465581014618504216951707343227173160502672062151522038376155106109735465557065718292932068704211664347176490638070272072716203694900306035927877224390334912630302085964107260203206007625107926703307689145912827233742942772714621285705741956542663601174676114380610006636715254452376301327091050147136207024278829263330514346133624823404680987410832918193203087023003611852105494433497457844820912274497663217755460556674353060763123954673098936642211180960493859212953798978517382768576016158173752138710607381995930480831739179476128103813304184115900920404993315108395724822119081818745404629653850030894458351817951575632292461426504888957122670048202790220767821295334054798721944512242918606111513572798718224119881045367961023807003685892167212426586775945148576998560810316511856947884799820053232118717430167411025890315196442087487659529692358613888225509938327131594766934122948848638940273499513615902087054231526021074263590372945244338964477882464624304981138686678625219273315278734932256041919555233014358173088431142432562409672586962155971847044741609807095830227607326875549435933671782818771629450449489823200574923677141449187363929224573941776828247884479936606366879954592887077193652391163780545945267322162362087354160565277999952307590148492796363048897639039173951671073998037692241756876988931515418372285248939586896050923540917609558587560100301886280901351202786115999763441214754033195433217531212199837525103199827603442494376835142764882554116789613788459679622787435013671954621480377436612071228622806901737559046904162928142424581430588040926991227700357353801218597265095019493384233837629738770811243790026642827713347532048481092128924166363872140645261976229272173165903603349856106236325884249131078983466680986595848868357870201968278150508801942387455261167060041107555451290268444145174788403150339987733184872363607081189162533402558452721711375762975827023811303971878273511614225647213484722019417753666313466924107850765084002727401503017309823179179814305379077345255324369153143070205453700493447119982654132016927502432254109877401297392390599575099443923268405624513996155984517159636351532736331083535501007199131429532180153738502621074066156421099635549172086224299495160159684436856493519193543191459487846458079072139962007670213139330520965974870881430425464670973036534339454606509750075484449215275529302115974426676506037474019275768499314386062829063315663326345928023234847162646326396908694796305397729501663006557314963440264721712315660489684302759779063699095034895598437183108620115590725965413152704834038599009414818154962764078038363149389307958519752628004115327533451681157655112362944132448576436303905896319006734221900473793399385659027396152598829437958349328974935625377525066728840566408944016977198165782293514774267081174113378156769150216922858598691014354137457874311280130583583648284155710120691926845656918581739319350313572214749170454514827592699320794170529208400138426500673357537209767442510484202787274514364574987355700750187091558548951599978196915436306902055113920819286497313978348150997622772553961419727182160365025949474315283205195997434095036257634809110879136216196826724440188374046726849654883823786234489607214706065042578845328972247318552125983976115721575814129795929575408776378927145238984722930542927876895665066741545495400128294342484502762543634262571119106991755325569072258324132971402633079960545030857743041156801241259661271495687212552059188049021026111869532041229726040066124299484650166805848066434141531283091556548602454987670857117038035795466831187914354824035218036425869342015372395587421585058796059722351209754076211349196410921285759007860071777867911943893456265826328911687090071169531406873901061316342325312505215302531809237176007460768061698217693026406563553253483110432330880268805027684444302358266078764867233075584487909625989083974828279114106039254053599958330422359746421490884302116886583315859504460108115456812815766700056929356967185896038672955643659715149988146682162341021546780175330421541487010471283364947761897700856110787299900345440461406342332458890768994548481728296664490107524534924890473462122834143696411933156696725777966925076596109164383747696161510484991049649946289018114239290883765026763508710645254130600401939680170418640124586656611530906047406187622944131219429638359174440529006238961376451300259651473057038479381709882679980672350050875347048091130495159325749330019594715229760010245322894209195270594873242454701384054042265736840527138078150439297479714490158379431067840729489492517687625548792280976829187574831079930808445419055663508984710625382030724900926848405901815184535306145003750590338575721829441142984205207426351985345477797558623053606950865652529497580807878428839741403554841276673763581234601848496799421165831997685357163306351032714330169916885812918121843686296447770766547464027463829398232120347753373301305435396739991176974499782793536056943655143937020643051177919529763950218847042249939080527417107767877306777657336979868571864037795339504931914515912067298409131745269504904412733468478619807969191497910030368391911417757883767971066275993236502862440928818130780899268648990521495225977635170941121476224423235532050217429608931264508597247465756876302913310615633370514261816717893072298402850730660884996995512936102456128206210747615472898920141906187399013128436190377717276463229136114760974081299640518038174983473504621692987615138913740644650997851975112415713184568509366165742324215939240714939484531899051464691571328926054495854212625247847937076719708431609457958194882560491902722306803857023338815077660815441442225926641076358815281139945359287777715327513912646929159376432363606999668574820600588192015731325049897172716870154932769421604240379251938370084391736478186042972222767100081050000219774354607041244025648927619632432469901269308522385281197137891682841626952788308306309309237398408377314851801036983990024465167836394368075117666152963746579577179943116874965077312638395367560059032615607011855073984996381812674152666730368195959282540540531013341137572754543752990070323902906323955730506447494857635163276673826248735385060980590517201072182319366092008959912905428286625901327222210660067104249368193472617284899303481464244976586955008520939050248031803379543718114405015210800806706896092506467332046468364276306439371771951795947279441930031287701171707823709076646365626344497826048068157039032358470471719297404519386883117656488396384701033682071561056290356938450915746305124657034136748173078100694363352578952530274551623213947856395808416784461363187059387479998632712077020134760468417765143084964419540916230597566498802227328082417896898321044456192369150465105668874247429260185738150604769993380772938524842027735615970200734542917373535663598492332736090789059774205984161071393147851420519974922324815726783819592753635682014090840078356650735897314697682983200199997954518138434158391211509725812227921295189535293416826323236783274340470105320405159646190111082000509032405400899047364430858869872187445140368564877326052518070759831349884136511239907176260063281178793648796852968159049144545051904663995064058467544835218212808571466545351836902421036978922321913113450639969930830500334439360297965281655437780878671018353155736903739055699008612434782088165803847869240719935956396464099977595466347431069720347890992769128597425332967704456805430674564870005436523262577626983376446979906885297787353608608950787262948319228028448926549308309596932224267399974357511050583988511339558072975606442432143812771294285118802850635157799417546757840764732935012825354002485444816518648952945092050020890062131763029603025151536138548534995567478045275246088590736659370954356398230842835316936720978780351941721342754244217381537595969162329073181864014912540965025213691251872802484542695007364482296585781685456995649141171452151976609471996532912755683641509697586587178795313684534333261113459610257396728098333323041152393999102889307911490778021953716875169886968912471941128996021867208120771153844822667020046613598630422506093901662578939892193179014070336817069794853837318631463056823955281598588018996343900172188885084976312781472922301667037929280226577952921913173149742421686027377817812538869721956380773837242959682442982574593292615523378690996592777027496335435636606225327893227255683898102871081266004181825194049647086573091705119243185614404527796518096373748782666479347431400076677368615616552621976844304914130749634482099604313676407985105006715976559335150136654148308014555776465381949153849872521553955506979970262276693096667399641685465938264478393954582872937684885878321847355617949295025867601547080983183442068376353613209589492548531369422064351623091008404404552294730679488489555915970706106935691560785495854344976506430397654506413540163092178834107615789884202913487743476680393768342795959146989186627471193349099905718673486786408682489956982496196641342123186931116888441123493441981001878830444053880056081893329904550568850405155513544107331454479923094104859494541780817078587404633167797413155314549908275819852837301176744383789347549123852390451752054366388793747735389691646325044097042400082579235866516539961749462893389168354769716843332085461264547885076092662391890967306250094926640434090058242856539193601393067510658929442157555603762684354673535476717405327728861018842898747927880263431427988347480724558193889633550379910884232200428033745649331773254657406858769693363019029857348278940056258140123709249333750083519230025368019645353597190115695765416105350118923966113876330307323946958959035377602852437908757268694009107592072200447113862805989583780606410346269292477276633749311819652282075311272936858814061051544143125600728603001652682831386842565277665381200298032117530541925675346156871916825930041428605267891230817804881192375885138257360749262910937072005303798354035856746738617690224489700524600655700055655785130135049102322134004291306904412133835289291371565150943086578027824157463237819172469366683100244305240503148383973389160116740949125544080153010439886808620277526964306646083547850674371436840849461300006893418640597010352566646147645190652516394932710261459246201019301679109255401894364513364077491236159148360688392542193362211905085176578574489614214385329699469948166133219014211741426844399202239737015632676785564534105110109315141005826706074966036910103807801554548394519136236049041090040229848451776987357784494958314097963991328588527860044711391593927815161749106183757469049906052451383542517657839799913514016950436583619401374685827498487372690560745818522524948578542782066917025020828308062612304590701468102321949569874569736893759939847397137637551215804306307467119308413542999215226373108512514419579971502685268126491176835459656580894282822509644743969077086836481363275094198147421713856410145485425674263988512354299828770175867662887223098182815439353381541516523285629348792492141927583658939519646015109682982683867853481459583394845846523672726357102390709093965544360743107619115887881148270090577816388525719829396909016947115649741121165125049265332719280377212411519164877834432949280327437978820104705267501559124285550717740644196345561324442680677484538969336113943123549074434895539364431383250844544971950256722749030952012625803139403368116505287910512424406137347578810086441926743789398287497459437688854803860577546102266024478744898313726367525844866155786060079036036397805021301556525122894128606350758151250931042455858754478396576120615425920259992280161467594963433058976298965244760708782859242089708340023022280190507271310576591566680507962867138456741122046444462948854551711766870397977617926005361937327008525204676927370778128116837304807263115653827678075374886055320804457595559506226249492571686185526786925511652217462955898955964097685893799356268814551155294690424609273232950690041458594354286723432481684947764599388362684588462269673485473348315775269799607255130044485154538575810737540419654384717084814970871291483381883892326962760449158536815106027496871448649546822084592898286146466318071641401688290500932692201071770587762546631828382770249131781998706304702539473161877311951600681921292481952751426805184542865776468414903089523452415759499365961581433356913873532330022357830442932184153578410255561602127264635842977821924613978052590233273549926669231543911648039820854899003750186223648909949885379781194585434960724768535835688707936026371070951201790166696378150432057686252899494735702689969239898795520644191985477841416470630680537474284325799081059744720990131003053315805907756539439988742694020155155032962545565206990554934835481177447554465384007615493296723376852649131648232983598873671738817733294179695387073937173730693009057503631854495567326484588932060979798237294555615838123523721424900790519760289544212921157334248343910529521329389293696270802701560648645867419353113504477164778785476399865379725988566940565543397217169364248424384134078320427023548185173638832823244966693069120486069530840757993545064873526249212018768941469593971287300046653645165881111050332711575035005264553805916208394660648806255214214530537575764954304721315925271575896990812775030971252580221768082839200005189996133737554368327555683759167140032779251308747382639727247199215757363440030795191038927643743464042963121080953113133526668453878433115468084539007488683909929276260468617072599521424506565538902073118866483586437641927683727803834067341532852567099345285532778492562011775955602627834304467559930424774377355609011646424259826319917867834022474032994985010759160520145325541643546496262214616053709828479629208213274569453845936715139737220688679896428510547601153846457287538368463816544814074646184102733172673396807017481454105941584108047878364081317418815215724555040537721183477774275396185668908146510904721122091071870145217999347062563636726291698745891232848289024519666963608611361280834712060470608282415069722364130658471830759526067837550916379136878656309205284927751999438799596680882762258284012511369957931726460865561417599333533286417826424041158574778564171797149274786602044279948417050895781114103028392307190555496790625223969575123208215978674203684205865473893331919405120441779982545370339383637431762152139008015474230487381117829328766303269710771011651362709111024149987238433674284460094003463552132819846331625767268279955831699513925411445345907132876852581824142357585193277311409108939556267143679796014028052502303103512415542797740862794367529982398000309519099796904841462379518378110566305383714488635938521494622766039495580446637110128142804166499743516380849438207977348460111867014210585764150172346310759837779965511390031935723006492630486196549127269861704291102246869361794143936942080999280175205313538413093433090423392605302812103209736067153499703936625644013276716364458038434091788839212477504761602402446991778431211697735530355326023292507796953065604509585248914901701164485312018307033680889415647654744598368700602177301592777182715165802517624869501160237741358481549155442092222276197269412385149130190662761666828744549301761108308775652966265177285687005779402079337485358255529354768323354726559538627443292231777967314386246583117648563930969807318999411180874764728445769432908475286496346331922893910098450590632018505442186725590215821331023159028270040771636240318064737808785296368335480725614264022434545294629313088121243361430173328981046177400002977609415153563261405917586425989070711038402080095527366055406606395624760152004373879438624311389585442204032103467584287240756276984164559230920692367138980184518547149291003953396533717301251869623053668048404459552319601421020346933292478057434966257000894787728883306491265985871044718205186472308615052951108397135374525281659756088324025732211995880413153163435403408954275460141624903928848069900467655719437745551177070876817812521619223001399962568088911269281407861019687068309024918250566892687019305279765257154587745463622991119075514927899947331698330439754083129128060123675624716212916230025695505842020543155732306072036045760794361993197305315793058628916997018246313993913400889040375489978554373076948734873380964551079859699750400112705009162115947684624953583981888676465750890810815387940996365650211588467694814837938209520860751276576110819559114196891109892086518552174202758475007832922314533940714493437293316061925839129838301899915216083430776311548950155338384584159576962218636676392582139404433504730460438669871663156128981193591271498670888389907466088912133168217028818181452538452051282195528135960394618645003164279339555980439368149794939593418110316584687975419810677275961348746619135211795978867288368802353304207206488713573333224295133878153540781083288157888781916959226344195751546932342007813537618467066774080434802322385594574571122673087025419992620636309081897371126631741419251730552231112983103532387177575150648943674159155155215176556249027758479887884596430583740371925889684987249523126900195897478130567066052940702061672205284838983670362119366370499048933802906154976745351741493703452481509547701447391926661902280623356789894029215411838159255328675339469355555404530459154574097508298613516209608714022825921024204233670185148410380878446658228029550188166066415641626242739189805526244251599325898083687253298398416641600702490275575984459866538115434580865911535214529804515272171243068392577038266995628849038592251160933981648526408058958116287345178176118415453253394554673795156443463243050840494227878853160109618770497179036654842505085315605579631767096762201348812784628954077749141169550785500895373635549586318520654109963044096553609417353785472054138480289669685637950975737574688182636728644709023810165978518933394904199913120133000011067415407928004817664511642754918515469776865593714899092935785146867271449353141510752671435708533895303489480003199361020364935019103603623638655939932278773490462364015165943289775370442995076099986711849064237004197365115470563759714073584139168037246651123816886139255400035657140527516283128654689219539480899197814673897453077257107149781490556140592666797361419599522041335841163306625172393771290261873008615254208805879817971097758428206851229819459293878955293959045834624206045372315524038867219078000644545594047443546327004257491369760372492366719463300752224743061744871456727783407910939668241709702599862487240292193156413973360730891454130993073965475158598888146060174181818476284732582266341945314271604534866983394105274944783506710247031355788824412721789614338673790641687727941328366136389139882574859130537875764131110800374247147237858160600110749098120499001357154784160350876993396060596179958997683736202436659384943768775558208185353965642666527830066580477289841801560763966091925673664976082042699760622571799694791935820573728603792796466494612358617666074440790552364917923534375985864763844820246082024660333397543860017329076770305757630628345380712249064066443915381660920035858583911492401105170629540233446965483471370745075466236643285481253463241048257369961172251938685148662606649199406560547282279808474343839348276763722708825049079986194830338606008292075041855486629646778101529129355940923324695970081279411534210797688315457245948468815114351134937760076685589840955642230887402184186510526534224948517506998540970669642385257593218157086891182933652074863434932233842492938594354653314226557984947878123206256945297823855273102430619408510787625184939428218932125831572927001544116989905457279618133511985408609839853786760072255258100023013762898733175380348644459191895579266208339267767587113860802833859724189520005919639152501278716454805686873833220596490123917160255724823282778165841488833656791528383330301484065571164142933200100832819421499614119779838592017063917795631411353197820126002865386276873369313554179592428443120406714414318096212627927048137036112547234302790789804723363176650459963047915433436796658809544609089704448789085548007691630013958838175854537027826398029087505941353268480926243692812556728147945361916165403742036044983375117168473660489234345263986789666398730634067334858421219234331866719901236981436209704724744463386592818265307721412394785885520996946205594074582068524710577559492752778558258450298839540601164771793111566617460401078615026297691404049678295754921728455823421363130755889782601195873341620009796244247096980576373170721730989304236100778706067420839013206855534087390486237952908249374052570178480622113151814971333045232485970534320754845215284551744745220273492985168990143673161774550980236613005592045917001014446925113667606064463946939246411810184396589689288233711423952706995928458272803566277365758967717857122385801500982586022319159944243543233391580492883280564133930911613229294563601178311360399407068860443178833117678058721287769650456313266640921345597360412917780894520446228812351284412586931211596823484941543094729639670286031896259922018325272931919348931001459619916434085420877185560548375676240389758796111242191858915781021926964920342879370241633256052747119098652035649176310610464449948678134796709758430198411856454720994113544343139732183354273344292848191953410898587494634835532870730923368984535787105455511623823040188226901993852589725596675683435036682426927734296761127584925722789045144825307743403803442865736191999683924477396007943537787133855456255881836883347685179841711382213017928791328571542355753804466367535626489394063728379689880128046420536245838616487482850302514906808797028626545603268155941283755910935731914675867378515778354260231638334332468942912059695829893630125024152162786607226486796429505705044255314992064517023717287498041614384017375980336998487756031550377976178788941085829704134204987273747130355461424280558752437847158430178028717194939600437472130627282628116455669534565552160927452697359276309057648202658584984404350245441643449462121610345149433020382572087386496455577802120755967374531003712585095517008576558346009762365390416510619059123120415636054120597166830958046741637162103971754407255088618560466669033474412924683620726192765590117148233542571495505112037055462207462786801062806746543136680741831920852873489076553444567442394805667674741308817243073144973521309555320829709652310514617044768369225479862407692457228807911260400395521271098495307669681443129748460695389774587659821365092157193553425284896114129617543719284533607192529416368790622630864699207021768257548011706999745520894938777231817606093831377016710609157967772355063617860495872954968407340888011017362406307768849187829035723782119144536906649466453718450599397505123742071771465554302013357210991789004957506593887971238646912413927072534192237815264368510101514391340554858966513849094348549037262970979199573988148675380122413040365145140605232415878295212121221452995655420875729878785020265481676840825065859846917864188454499558924161384631395033778491218967170825552489270263290559350708122997832299079469324599296188945421565850674603127765558905538159857017327168859605593388072955467840062798710305987187368033192007596970526642445795118204037453666228196368298938997740684388390353672183837858060607251498032239723391105607470971690085394756046133556594128407701416706985471521763767831457887177275998629510420257903966414381418953825979014929260472956240765649157381445737635874933750512989793831380909762809033145522598807283898586738986841522449444749941626209815285772830190109645885065072825631541740089464634531603960910376681095720184653466449667220485145676908159074242621351802596066791006587229631209439736601388578910933924375927814487166586772618925384267859715249610058782180590303921508806100012035534881556094499035948234657901861877483663586711870377984186175728011956827390263316224675211032785598572324670475559181909664108425383032140044755951016952619742552262094657995071788074918371843731150790097251658728041316302994262672622402715901533616261455199021782271657851178981004208159619746503804599940093026246201490306524133286576902393237332546863984382956537496587022239144454555375789281755301800888542762435712874583908655343819872740909895233292538795777773618310537689275332033852572925934280582967053892358883603893513566767696851698456659887099989789351618252279470763514401973830105520597041349539917860978840532855633703301857255009394045018414232487675450223023273687508033262173920228364319366074955497530105772491792686809884470785258209482953068053339819791319713576682846328609029340543903851993735873381459291781493089107932379435446059046371370804985341933730811908746391311217449669826442653688190968833221891618668524963060130881431358579264508783563439449779978847378832134454106348069278279538210008111697047561533156002180028114103145766194932882293292555600837735394325447904067071553102702353312683464910086820844285924274989282394170949870663316878064264179277199608732033384377154400903323163177547577227643782390634242981073842849892854234317658076797539863725117903968600759237382153330579019552533756948023113375350426307477296220221915939777216368810707250345849774364655136604061686632468968068695449530183700812012700794907704992513849181372469831981930231924902569006569584281170054013191883772327603105606694055235183211871679910023769152988947164541825745098455934539759935249426564867299404886061296986682137831327251701842555372719973044055226420766337970048709004169357959400752869610111207804220609347180027260315967379359363119336270530314633818548561829994332084764933416628130906530736310067146228824686349074023853975236541932037874970663685304921342343251780380392739342965507790884102529175372860059384498428111099739968666621110200580926888668919431129926656089271097225885224203725911594958506464716709664801045838143927831429844050254844427527678173021574318727615480307481812567494883487211154515518431329024597678527122910991488356930744059170628469428453348429002354699065417508660828348053411853792147334864529378870164041356586821373776822544939165867177595738001168733389425359183206981737123797110144586935020238715656177746773251493021523026419789419864137309418305946657807521754079056977716982799505903753339183904794286894983969783338869896704296426380102637315619781687021440490583212333621695822870046204372793074645544240495753844360887007547734114865971103530075265212955674823742021381031290130467698088718812189228642740267706642002571987313834490126248870987683269542803028556053872869769516079443159087837902247435668786966176059301574535438922348121976701429607585615862929932700854767878424112125856757996840826253565320934338833547310015644076299152196264571910629032508222773536800130222414931111260105336498261739857536722905943782026749657264680347053198856776805828496370829654063876701237291864386254994943799580025985690945191286014830160295149664524984682300431577165182058168070464656973528046914075791761557494297322222980446986828110848690288650876234485632080278797188210409986125632575520493027787382052958037512678835753991913552578518303667958643279267457692713964203359205815242137621507169893134006594468700049734927031130332892191771733662681619396491488207325721086491591887330698396095348850656619736060826424509970167986627272741597830264019599286747534533569803950056765514738445077787297912178470769094476245464513737395453057909439034348626756388983465013192183047749959347970424017568439493522358775362271823299705998620645642562894290295364429634500720272758840270296562030989787214000384286070713337433406247601698770497886831320196623822431648732566125423100310438525287514313529270145419711659428340647206008242760398927462423738037589822550042352078838458058453987489999957168331533227670230856593289463976516434472631414653751676335397262971942682721077831681225100624665077058635108096511468897598986485551451286509810013256040946209038922676193748630183732027682359769210154993302324708242980837785847932512232913464585920222585743782865206953184219191674611972684753889771398390516858690059593274718580858295319188900758139107218761585387673827611636619810081961183438002722556583265747707199680562168493357365526817713384278564580665125442329267312519589883635745416134360208483163017782037322684923673148169781737386439420085053843535847066501984286336894852624984311274553582023107963860294318298906197229401523308619825381575450636647163870393385157761991007227088116734205639818766178657960496143170989095030787800749400975870790604585221934479193166891129859123773433007224151970547231443636517193156007055311257484209739067917520962541017837372447074993157815434313546037364790849769149739165770538286529729610426513942924359464542043761051535184003794499872265437733870488476793323275644045346073920824757802338085106856312397677920769083598138173406099517134748983695357616108325061999925145369220881242528461875598637290247346512785422127713581868691410768727449314678937007616222492377358646992863745416243431416790193771863767789041332706762900227040302991919402146115916863978923307907606629925796465111529033795508010954242078530687722975956768400531251599027470940426224773996723490565802294691933205690078425046257329868049215995190054785781899018510395762938980527935121891405081080609887862773890858492353626329129884686009796692161196737021545688631779549803924975373779513151509725970128392727665830395497282947163724626200511158382973804635816826619241512001977714573707509400416009617042210987132797599368585864347601027073423322151262933853994352675024093164852589120885423766261795265777908596400864600118572036727641811508094709019613587750651396687325450356069421875622160632332898588510491349224156665401944924786592402901094812647609782514881283090549819473269994111083516757110194133016164182655469715440364092929939769382650824135532983056769555484379136227873872017789263752606845392302527438561571440814292088049053349730037718616519849298842521127433408979577560118692772271365265442592120090454022446304840135217280361793525556619120192734484755217078709444202275910633157287869321610558850613923546382757952615651369198675196184078893350660091504354868614613019711966699726538817331387318968806465082194537105693132729749183613142642490095773447768209592581932068955491376427677844028884103184762398499468925435924502664127567651486872639433871979418853015806153278379266798170298512462327538903070804978690767041325656401162001300628075402999487326220896554241284545834017456598161512521837795972130457105364533121705900427003649301775098353999123536743274624912291180644519723707548835335734994187398410280097230089456539873169368131133228087205485873903209383533077950052848603416917459023877010230932038703726474684440518278218911247104883800477702149236165335771432186713878748174521695660559043735786452256705465388191053638012687770079705883807307455868992764759243077460071412149512945788955452455641049727950151064494504259305105160074149563867689916194527755711780261017706526533910345036931284775179995015302574023167669870467748380498897623486883273774760267798022176369846086699232069973380005238581222278790889863173280915510470495744919755183165101103765510643190918108398670076623456204411015128222871383613702997293521166338418479726030200656004696826141922642638046194019136349582078054681560688640715871175306609983443525045602413099324728287081949355732561892665537392295754858040793159132253007406136467211318686384311836496952632223615180874000673446550598362956665005570340094877109988761058515978618924278462834248493978871187322041228995944900537890955393174160178606730164371639081672127097298013285024070657499482705514292244052395469476454102941299708203131060415164045148076062340931842108417714219928065889958160297658440927847469177243758175141970649036200751101258841549217856807640611981667047077081949746323453383436611612027283356815525944369086125589267064753651618111339496179104006544910097045607477926117931857828930864512657739235900220846954611779005211666565782216001768346976735256003358726409081852720885284146172547554790354957189484287341178103985147614775711682443704798040986358239409668040363363136482238699618268544818054131856676013510236364050238441662364751466653513262750858633083338063986518190521950431033587336544362582778266450324741247716499060042602316866055852285455003363034515163848411416905250264130288481536314592128561975038801355171465723363519456878836968300205925880979997711023594029734564608285817969596664266817529079097711085838670474457967474160498417364758410376841156021552283911503164896466494951978087693992921150160832295428986210760699250500625803168098616692532231817146890450982734302777071968815066385649469485808494196397013478367707912912938083807204834919452352820659411641979147397542216599823664239171071062086867083903225843345498569304287065813714928651417706028858017756079026344990213812928838868244662035362909705524841155479699714545684262869149610838420079224414932925366338268760247472404209240640882302480719988468137777449605971928365397542820235539344226895481049807703580862782970524979008958875537849835696032176361884904661867426680797379879162747291396040138385225347043964738496676451660218578778012341099654117180378212339852333990294283499025133705660997441149547868548134835941305567131669130794755790618749872078315653237992863154152121966211769614737304313297431931336581384853063400532576176088133948861447172473980276715286001255340807215001260306631665881687277080271026810801232394661259633297872492513047778395733263470327510762749339543038528524924766999043753255668298654270422159293178528700374432730840695243429734929208567592935555240231759459414569192963087638880644882662150646162489020566651211894236147483575393226981066623511493256237968808609403220342665088165711020765168232888861730257789979474089611125709050068852796972360296511777211528431184014123566423155671538346815965467787371920853152823579697842631700702041178767112768924724566318145654374780676267677174546845875998730690561023891919115670682505109064458156977272254112005948038840324662207843058627278907857057608858239772388034580578245566661129138240401676699548487692648672415950064948328670588146893153434726703943059737578001650509122613812562687923600687835470364489403773177785196858460433663956787509600229071150758421182973976670922632068432817060011192527915975281512486595714802942771155140958129750865419027006287682492931491748918582171718444364269175389197054389010919707403652419488143360129006627612973013854909256385593929839196377663759645526351408553053890511349413836327554454781574649400530051102631164781953207429030343840063084325798585987814923050493895258669617408485513516009187251492571076667718861235084158972239519970742083537683150076497114012050308853300847020877435623413050803981148023545271945671353708967408026751635429358087610196797560191808133202572244644566302790039640833355253228266209223110227094876467610631844354550764908387783641700333746118499359042589488315191663634529830219460406549610658846178898124537127283629802736159198788566016122803738237622014016369573495092194011841913892505776921552676681108707059030434444595406351079009377153653334169344079361036496585498919187595393195534851017278809934366789708375929080196970085138605303951543307514437275130108981935379001756668285741372780938785718840248612921014759664031989660278837310142677760556172680613118405775264323605971677786072149779782358114110732710126236724718229465202268319701040895878004814201078577119458013193847000149336929635535041200331052496251931174142669540689590148330093043970604932332331977004222839602171673018008239727918802413884712385294727925817084132122499203643499989237019066108568837481905311131195426386753841234585062590566449567901222271749082019044520332821282132210403995503858488248491982994922466252388497460099637803541268706167345721792434404766866870125749949458481625122657979099077121112358636444070001547135295995451118733278240893682779558799265589778843417082583830188658936716745203578737137626842208115191946778244140584627072024821985033188916237957705766962112984341256102299327141232024091116949363712310206244201543747149536881943971176273591913099602444068293165176801119671348882268046433096792671536193635509647599961519710251042395340465251786888223433637196657176246451403082712456783826533824064617180419150628360487839654988758483464485178364436755532995083431979672576037548743317580393586461179890633966266728543339424072993713763854848035346304458439408506679146666779296531280690236070081415096413878579038392972596314920194033240276205585145166769757675983084993899601721337826079996771630815289479479611576457547812757792686892459777664903113083738993131831759251233558694837296864983338165936560319657002317745822090249188486904704408322689135150730136231731466987750163714451754929787322409485056977098161873516478671878383185615549037561005088258818995159916337697179494358961543285586239555075850073720132579044738388311752722792809800855480564530811262649122857539346406336985960992878781181023908433301485174803626701343066583914468080144284930383588174068633372250765500427844346364900422231684721079927302301566747010442956281163958578272760748475466783157827551032369460308488321383370487798254489594338787467101670787876441635640584312882773289328078677831009431570273297722314668141509305888209633215013313861851932675712345447480549341618523052932187285720207205312868023145443881041696633772262762936496279778220632427659854050609104410898057275252201004557991063084683095655229880005342519263895674452740072958101259778021289516714770966550278053476907123389241109074163394065827471585947837010098661575678230561860902906832183799824441034226402449885000914687759782135188753930180060296699676445996204596723932714724039764390573385830712399720370683992205810203872755883405468321178022027794530099777284997457180381112594640639330976113111142784766717776809711070805899693067623376856235307934364894455624200765074903287814776390215992089856322122762754273251762493453849167959324380786255303488342570028901610514846651987944062944265440838284018348673068205149837556729717151228447118472677533712707669138140248901943678948895519105883068951194850124684749235096458692249550739729939846526213677708967112813097878771869604606865551496532899974175317550675968018768771083722051788378806678316567267386555149637107771980911744468538967683609222540874951615471472142642884144654943381399878179335636771314840408447072099876827183046888969856887331985381177442544328694697283332636117486986166341641586393312823377473300357306717977984752600661579219646144005711630397244365336180317455938746135513551743096576075364028802996640418738157913913482278453640477387705288755458906053214391787838127707128324660310205367810664249171568993304500066432672325411879761802095549425502216511521795388946463780346517710447373460670019914814099828496235422762719433251403439080864959443189588565978159001253483267725478007291615474336858444209994767444837703573050136729227752622884179623800584253698596564431556245870419193820468665990076841630044357229776986204740300197897367429986326347814613851660492045824123828791695380815859581363567292080210589893716325774317287115734103317945490957794705247496424293009279141304973042859527025403218534196039952143451790512112867051215441204402199315885779859270196394603317000937343832782131179805830952631349641563875469099467363726269215509951419974059651283950091385763856893338725815581373241700160441331341039551662200397863667187389486424706105166170391523709139890010648711920320144384343730717845180562512804263657817965215930362096306193495295809821296944066806570046232067433817989270849622324579963810599886318610135228783405225100783726800614449840719147630353659836453486595218363016291330051830834199170792450371378743975121477203024459381007354237616967986079420201862892986321728648756684663866817129465265739309477125424804811328414562681258231394457759994927260789480607894852456499041249419270406671655339608486002943927763105322018658530860877914486735946408046760954496269120916904634949759952741479644987706191486043678375339855723147015517203836028346678972645674270545763362091512672964053147825157989351888830860600053285167174029909496690350877141545480927193660002249285629753332118759232562216542186347981526453640124400786571752789915309022812393784523330548826200527414893742375621129536637995897668174037229550353429814255617246768130073900852010344996085508548570405421345962666567434589124704761561445148802725512748511656106683424410576766020868238377572993854002371684660324341541642531424845329415644227976594220821620531914573826781542506925725775898386627738129128766637717808126505223102856490281012845141836774628069163610797593228804238449051005368099436362376287976543271318447242551523087501851263130196713685143194580031723858562526407809329010907442552102354250484005963854566799218998489835163485625866746877842650704995329010304645192929568154960753512971830997050073705213282480724035120320210341587628411906380143615454363823338538816218091577094575068228400223247598846529712308848157579451350853419766546866582596782083013973414906027854376547270044586472904336611234187870939226334930914798369656694586009274383890165340028608505955532330218458955751322997171454036525493790867947153104602967454012464955563081890659049539399029815468265505050680622408958283686864444830445503050403314085454646009651241401499238880995510641261153855516542758426833092762865624588717138544471461400605324481172135711762414761866208527275919156124566986020097192299075558618307411860551900895948068046797280441634194396181701995890839213620955681296679225050467132926411099599714347253213685275318877639176450018134256242538596252589966358503201823205339124090369748375950081352601927716733677993028611591005639598595964149939913558676505387335563649395305618363542792347602960620887191772052917385058837755063202627402422408176559971691266525023647103804868517109052602064269033794994591216468165789155151824346189852140722634040960524404661558340652790085457507787492265304284347200062852149411001637802318690032496881673462798575519093320473114985470265974055828053016062524058494423589170757053814073402757856528948046563395535697436454627371977447741957358803581276643687906485870312539062481052927917942687542133303376623828047662744138860921805898777799880997310749058846073300241359100245303759605669693318875048237534557550134586998096891169220643385116588526051346261209863474494912782726154514774476250729944966412298639874239459957921065835761702465280718659344876095262840792037461084847990937863326107963353666491365845252308900142223153054498122715846067688927112771150988711249995637364426624168763343936339226202843927754785715799762828754793014264271981872325110571262479985951206446898460815540938533886961965614908441473721960901296657528464549334031392823712515821783661765719305856048382059527621369256653993619520612056962063365427245773781429001509716615156833091949169275587943867647461610595598972541807955512408424682588528784212928634655874553104225279704238777218317443096106166253440336966615747533778334075653935370418581234874201606356949436788880121098734053539979550105897058519532310837719249211435588288856296786682309851105895556925849481866062514469198048307405917355493392555313417998232306591571418430466647095895238997143210405028248819241467595374759526375005843981607073531860080073745392602287926776590023976814721896390583209494503460698914437305103874231346741770792718311222362852443845791381408889277509386916192520842321167785074170005000142414276330508644058952129246223163687906304151698761150856393227536103409464891112424074458535758458923923713822181018679020632367976699973136858406942374755043166091704237183394814351620084134453186452802647046749996110169887395874854168353902088717917248617754767066775419186261659100047003379916705768667438669607052856296372631068102882482977340522485596252014506327880090880212520428186050836111781094559367791322688268238320254570041507432572607533891059079029062295312512264475056676312689118774383520639251044351868372564953142014110868999000442881517928669270779219908706893329331552216843336119968522467121925763428860818082150029393453388689560512513690499836837005456530614115157652316498380084974172340184029538911732558523651940093320840120017361942699415191820851137481796183799123374319034170575565875241965060838362373611617952116308250732546161963644663942194451964004148725625161320554140202320850618698649483285589316773922996295036800337740687666562681901591295207879156962334111477752563320337123486135962286652463991418986621445499407840676938370527929620527899958436355614034768058314205418836902171384832890937848446077730582223587059006821412579409174734490624231902439804369257510426814093231823428184892657722902270114752621575104423916322091946827699491162639621249911347743992365945794811028549290651461940320956289073841908495647037743607271040145236357847091959630472442450341744979432568492705963056999815221340515038186655738430301019857891782862618362954377506822885962152225869022427665362512253215391979334569008502838626577131252610072674263415793309093496173634103997815003056370530237048010252544091977390093137995665394209013475513552854978496482855049626253254632987940841251641325789947806354300867685304227173850183540926810447921598020618238505305030905371023292189025686148668175639289631436854077154628193241498708095315274389896825204892710197047584313573381005744767853890119327277707824869570985051717548180650194902687807852447920142957089387300384200182581793506502053673880009303448919395584067970619862303930201941628937269441587210158171290375761028149906815063190709172822556483185819232914804014269305623420914969836448899604968124133576270825126156439249618145974256255198056588601741319549892999213139490767330576509733113742700623788041766559907742231179665176209170417371681490919714077523955842431741436406833129578628944373263705543538622163177205262102664065428632444784808939665627304065714339742558768329177772797806343790080189556635792752696930977696346090019696314541557528614245821905508059842357252502719868595486948353326198657359132641643336089395575825921031127527600168622993634411752571815289385588840480752032823553528792459713865097231737801341629196298769130290144237100829755271535522900404356966374538089998900936351893834858591085637184135309009794506972936911152806060709799518356533094031747517493416570807360525655454754635370384870338270272852763416636508330331860656059512263671887505049014746554166827294202831215701988066472213472665263914818572461167531168077923674742969454117532210681220907465768386177544263619627060726093608062212567420273102753738724836704590074736570898169792816207345167798079835995754995229388468612829344613345398220340805844949332125135548556196840502365632182350920687697826760078128077566399052343800523507635653383855633641969547270103510759927246606864274309650945611974442729960641737647051683430274012627275540329977862500089187233839135361103117093127659951965967005999552499468030340394821725385775446958702982780435028715456102536819319958541359775818188372631073023526877586915363213214294417678503896921721576645468888951439902798043543664815038089162591255177699790948849684582285429047938380632090139380366739852509846608718828461952342455543573487530243742940261976151857084716664711532476459738946377946079210945188289740437018450614593409600339529637347080474050202267335959896243432035354341016767046476958719452419099595959892309496697556905769004601329813999690110101788979066592824433893485894610010333429304697149013143089551876463149253263300378347024571393200405741525507529642702142085972140823943210228768424342254034598468362502363788662621142140260216342289445927704031653067149901067273550251543390346568731027431818014495039853655901707944687433318082502038624291252339787169695962050161021039284588282580391144773484616913738530100247036103611520828146620582967497323106012881422612019938210137419827812931195291085150606918685787907866111922815606421243433177569479490759622879219199788727031901737264763024581957024992368047252422354124037685927013081248087369541290027221618748779479129270663928991886872270137402749833878123576726614970898706988561593462891421580933339301463421943016899227432203176810963383297646042944742401364418565876250546947058094974668933354802515395680462629510569873053616568812582776810358960510710573063846848621478493040258218476912121381641299635204574702975095359405096680467878275509954835222101034926605286887551760887810859913782379042062303890686478979935691297491055259472936408102182613508224084736378363542802546970742991239498490242417501720623049640573664793724917669333979911069864365979585900734403164348415681992596197286391352978898057067668777044750914387712936270594858540615090586256457294978527259361337027322450566107242985278011027594664404047936746809220301022369134135389142202882568815656633000667946954837799295076726244936712204633372505572510183799071200794680151892218724889252828417660321311301579771747336671183541073909550268707700707122608048453848538193114343135997406993322679863995049649300593188629431930838372371182098095236649268079761940505228239526616612947223487817620073970482400785510664124723893696623114844845777673991202479033849906537552851787962488442456937708253859919374504451037890060946967921431367473293759803656919144256377944693849433273468976674236596755328897018296768741622731651797062164890136973680048837456596358287295894331496515665574861716782990881301340870092022806072224151226942541749626646051138333319807026908230945420544787231571564363377036644292365992523904671518154698710466137534871048441678301886480294482309040367678502545313416254512871281272750463056582094411204556503342818379854467253787668705711700320869361525663391167913026633472370371791136279128660082865144123639983007138575840132435731777617279179016659852851693663692930336885639456461927321607840659161302869596486992438333868120246248725943235172474851594399725544002177854261694456193073671355336149142065187919664162266840088011609643229472034191320365531793633560551757534525610543670724995754816191768673339942811434425564406530110673903249545599973111947134627801118535545284352416406499780638052779476826408595989927614069944873202567452442591106385425992052231712981715775129537300460846358273254039074078846721696062027915588144558117864666495784664710185373748184100109966217411781586698630338108456714665220059435841625062183125433782483570657649103121141744414809354163682191492983449060165691968855672727046535178620203069101847434731191368911262287659299045184871159778051783385565658535698492965983302599170850305612977428019502141182816317304849509131214889213686534424752928491936977227000256912123921990310787993408295557840967472599608298181081891616467431454116053348822491717867145431397801048623249210136176382998778531080490078381690344011464972155033665594439288830617346770466396186158332856595397208158167420530511166556651130483418330345530526962155283842113235067004614153052436340843065145143921940279498666038114781315453050620983430248799603161590327885178716117486387420670769691616698781007382522010605879770102577021812559214184285996220017070411023526247251539664589609207449606922148983717981173556343127430087046045918865418428355285758027267288820382030742564551215574087258414459796196487639840008633719567780581002379169884190174217931909620930019054371399522391014143823058139079892843706669119281505080553844337020307994959105837541847634142454572279529859665673487463273959259753490692657357353747009839311997969025429138173462712352472669766587944398196384503599488420923490247467785921632517271069013679579881972222476610820038279998333871848469164846157109384723733514785183296830533590288784896473000087870966739789804106110990708127063753349795225705962520500767908135584807216175687726620755577885014839034694266206331102624373711170914783847198237434158795593334949572737383997147505219695809295253959090806268193632178096098385764361064407461758019782292358176843885705455333811569378095945831497758986184627286079647072143355205377512379845496694240800266217313730003149742651993918841156120096530311839478963865635654281983916114022421958407232907411292965664179063456132462247589641051534878284429848692440661196747741009201248010647749151195400199733791718235901223997120928310080121855951926382106848749793590006255747170832185298049297161997391821146161674716233320789727301004089922193573691046374041587576074117315540991422198203817806184779691161291272997241615508462109075722254852246769495967756171201506126273129790905375504442491811943187884873693063576973462680339021654576656621720920981508234672039255651310395580594254500463985361000632784397242987357111062820697511679692601790290667052865604050713687461727615412884775761173448732473823681682371347265402909915122199788917177418205079973314785944779369638996812977536374707245693605731325681341763753725151556683911856043558924378037906094806765465372917669022974539163572746491604117865923342598703527662632746972396477328176105014209895840620229618405375455631381330210913036047804824265848498556392715080747124034171737936425985624114213664849638879945097207553321539696836434406590504563664287797844123277865419047146925700675316592804920923987399120918855453924646282574821800151106405554798730848322471178714088871322234221946909845863478448923958531607813678612311186131223907186380035360359097620605417311686494253881867845244371101288509806405400948801545324315982876458106063798962335546221698382047374881401746529599052899312571707220767644351805746847633483480892712374853593635165939858438328183844974682609108407895697557433048599553108806193681457920684041141859230022949593503125119131871798648044478090196958480530391446391956673890940764727579346703298295675221374702681425054762065562724733971398509197133932933249436465737985749578303652074098792610387129619209510515338905572439857705894549416818302265438531403490269039395027341286934577738642315345870294260800232102020331048150102423124278966719496071645795354969625759792112496110769952142981047933817935974875125538605836991487018827974623136352446756100931595599850831240258947059627949940149477503806773074306947697769426973916556870608452606302297422761586844959590156914955165614859644753022378717164601665963096074688021987445364891520970890688900184381075763294369264701166254128963412372436758174182556095106532395972189776442944510891344809112600085773216552283580118061035284009933924254094409740066764653139793880554131085969640381080209685295217932544080286950322964392319157803939709979072956567788327893683419088953581612690806526017072905236065769668126216357160678320538675451612609029784111489839279373679617290142697709143727713605291978570258533197398588584642304585507583996051425076477575268172707469387495510424762181210439430035418902346945981809548820958305984891704999734651809295560831217096196828045646714661003350996720670975915166028965642666148040920651200935845601811451249307348204001415833898234958233307561537171950641461529520025573918892050095385555763713562461324320928663727699130619445349236134352736237328789018648941713687137281276062401202116972813711645015297682183820190406555520335044281694374715583642638180572487485785813963394716976720199973578888222670291763282201656078065892483546078707130442669059225554726156919541149257535327534395646887310523362788645135335584508555487848376311754579324565123433815122639049250446999350949378540394849928300183316502476251976729419847286159547570942857951552165609688202154715236929938442929281395095520490675268898851565710286456790153743092070658402437691528045272716972504952329194815746903242919827935520167222686308959524087385149509249283156392119862490734532916879970712606392931549184467023101628220521918500217812779714826401536682804738460726342473074908995904409980446063913129519751583984611225347149613076600915467522793603766123338057239997313197506549365456366755012035053611010497680263930967943207619017867309377221850847730626239813111177978772266120054658272445079485378107701489153925473545597941920264680464606938185002307418669942786303036852561741662991223683831843966575331643355055259791666908799138007869618550195562260651781271307513238314502497634590118911919928865569015153297276739983933674358327107075427755949959620255442885774282345860769299904866782285664123720918766933715595305125370587846403295871025794317562711519547613110181150176142735031585419793524489609550468343690915339769624657458981321217413399764562156238184427283676477971352387910713152125850793116345179598145756897699187957865267413394827933716847187438310917460841261146664654551607225610540354184585983740257529475914058869112693518769557466894185327058900489543589626049203378668460413403226608563344899530386217443011051686667615290776257435833691796713519195884306867369314726965662901751641842197026834839279822898782743865250058892197036680513723031816978131135387160397733696823406399783071124766089390994470983949380591669440406867815434897479682183542493910479109179774290101387642045435866346944586882051984913794589150396758731978970429158663631757903320866486399607245780870161039442812516019707692355709698066988375111376389428665692726021189237671768880624122230775154741412773244704108360708954176291760067365874537026845480587204558858440110470001396777430349055694227566777389614789337781669999918518455609406014996391438831321675816368904744038969955570033156082296760704554269069644780137556567330465762292123379965287693966889517906040308768038757634280676260250765097452111093949881701053896483467029635342653806557533970599694283025268688833610388077684335185841400142982286145404567225931272007685512571084785746390485725775432632098892635968784441430814135696650424024128208279510866914292245978716316841055831789328555605013362485926979628100474247057443120931289518580268575564785219822477250503973349885805159691481173613733947472017436595805645428548233480113613431337803278319477696460340492674347192038234504175373291253872888912706200062748411631591954646303815713189742448135360410202374517238833882982917328891762404371386848695759067402561168009182466564638125518976321665610064795226688176562168450549099411403659180400913068885823810805523623558387963386182088044394973732068499086147002476098952472733308237029416866892448750567692685856070568760622017030169194824923324671982908560894758580976327960105670765501260028915206113567607268280142193064612597008681229477127541596268488304794912699389716058652075455890959156454491384659597869690993022306284570114899588880967463104556978704773047876873115065786587502739471643268189840198992796818176057564630945252954791018722898623701290706869826878087474934369957151720293932155911265705058084489846616062831125783504196417535250072469548008790892918167862807121671215886249901383236960588161913230825626741458359411223549049381503716062280846294970146812514637995286229926280890188182624701762186784439561941036067860040804439004751841985209478399694177919164113781487146224021339910829163310598962756727803631821015619721837261861841933662955429408299784778897891806414982746265352753923254784731139731599889401757194870384306926930138804428252129070129192311893080266680648669869918493192642613948737496642215347454122243825778258934371528642287496643666991131273075718863931705190136387480627803153830436234988809114642457663425976281370098872823847339727430202510311429664387661843733633035192437505509877883322100489527993726224588917237657623966992116837400775613115488705894019532161506846924197766790369426380864318611446298281428168065715487792297224010346481531221042717088489282197213723995412088531810030342335171845213457627017568821249719896320112184845590012826686473111798804992789475784238370571738512305467769776544039065991911439146843267502667879064570628278117300931764474137394550281110393952137461561452524496875549142800910225967328047261316429340311361457151869408312575154023852867430843810371542973807256602449710593409869874681209907430188050475165306315280356645123652573895519945219318423941196486902317538183761131500774225272328629518027253887082916922206388664500456101123815641760527254271445009318460506791508566802652524121664716710724806798679595578584230481954697772700324600036198229564225964273195877846941845069253060867598025528835624975056530250361576699789808175573444054344892207741023185688305983669780897868539250318169668972043889589221161502421584310788112670164516524560995080296168137812371399635900036119547332785900736614417997329769769014279185209165611813972490307809601783845827041549792097858137242034677981794431402736407304046883888461786126271981611736731697721206221009771550132993291871297751586528840344188207915814529866802945207581664529251040659373908747649017829721254136075539904651532927887447251795800008294198741247501568669020017696387475248617574440016231205284014185540750432563167819930836409129995571194311168350043462682276897560966787404068680759517888702430131219769129777441659230910896473403053536557899922265458449648423666873322279430070855287186658425480107956969934927941750123325378175196457792947932373625049776701826116813374776703402320834119404874556066584918199316705590722290840565172236908549695577186984942925488777456638504431376517393631112147019754144093227913154154404425479499602934957107956166444028619545442138865778190270414033947103718344876458327036726998792632426161590869651323612278374760102535484294355660247480385157139911078764711437312286523502462615008278483917628576966238041073183408851822229429807693660201549805391089178787410795428119504073765261469660047669536635929186456461149875452090397689488068398153832220667240412780437287915778778049257224770312465368947750538338722213761580341554638428534755262961455539988691381410999962041926023723673997513591060266468733204952649802063483971218503163435728877124531114004469897192484436575272685338653617370451932696157836584413190632563353238608056595012252411124632951818584174224063736927785987872673712690014069891974001069146743140944730864187331257611230765661744058208961133677230910736839570028182729471503316345361149784120894350489582192817005444015014718684369106944895342055391594088068399710638828867837769365340660584107284697707668668072098419107318333321547684827691962855522176118923540813326731591741186203292838462806417210806200573639953035561995253133174823874050107556789896220823918532462860095436858559692094991762295559682259072851930427509981775591681802642299250641551306491587869806254841040607579623899928753431593367714374784234425113029689251180669737189357933039921594141662857924806002008921888878905265804268871323498622153205312435844578949642317414088016112067779878086215831520890157276465632622644937626760997638267845154542238075131244163550707190798616275369499882430573263877337011279385064430424061172722413975418221136384511601458866169599560609820517474790631226801619031462943850681412374626045508517686663748922306587512769709857710188431335672668020393893709718225475166133070105590695853769745339242717907581389298619464003310470890905763511823750973158362032608660112583258777413095235922831002678515738241034298060373002931947658893348031366833678834079415227358396403833308438495803200797222160894318173582072822286598298710487666637759682630777808857563790220393920456847957135705804996551592661799954999161238367825243556119663530840068457186361605185659393928449083523460221468205439331720228113113096131410813874879599189333211243173315827649629423515723059439621048858334792338639045879687507259693381624675964289436096175485289292958976988096860690124947115267431230761607287720713663942659536484671830708326357411622191557215229667352071213225406373001567846690461953833831717315378676917801636515060045643778540752366759336675730873756342438911086878318529540091108170308070189080472210036932039583404434216213188605537012782077499995942413949222453437439658758997021600840249740723549034086963958455193846792080432854381238480535730508895142697637247098100097430130704738113942148125897697207369261505074553736935116835419455011184211293267353039503953657002969678952576405020348807455838946424977409958412438396460471627569065231306454516743309271013876580111086658736318426721618315742126930414429690046135244750207621152466259704866420598185211740055126959580926718952830205588434635743493562592105233045987494233775797231137961306445758479207780229540882685947298228737792713672575226736152913483112098682836267894691779772715472548280337563511623759515681607882029598530143370660055370124110394033026971345277382278659751091103218009748548232821388654145567564102628137834060240827015526768381779200229244368652698265708397476663316307661378115126468829118151311789142589210295536145250223429900546368770733362365689341904695663533515180664640201049873767008603719123100137259209101399983784721716219332307677150912679126307368038830606565446992714691041513916583395528697940668212122398703819822727290453156908711849480870153328543660342234099354171959916574094389997135938712242394055163354661500452825402323473551429315332004946131393760136165923466402030309439034023350259323291318863553466812782478204131475624667798431712933726020615087395313870841212793956972223578199415369182564206260743555395008392423073952261458489300949506979971931105570645215252264465888574808079988904545523618834021917545180156916271891580770168498453571702870486799498578932430401140687615984823759720788232383880307440838194816760166431467698156897130562941861060849339295319410284255373215599940584111595416319578905340537751761890997035682783443086395166459216068731414387752086402561756189787735074098860950603948352568581026826902056728396977126130872731212136658077521193305388785964278378203349371573550924295877518826969782462797071121724879165333392601840235678038956363807740424225408565037064677853573124572090006041479276214475779402352924264595436340149649145600246697100596292596178188943854508624062345639069141352912793580165591971974876637649244029273582013406015569373223140662386165830893141174298723242157073342866179545618963524242004979166691798930645734833864821527275449867405164366326488259254904461493122659701772974391050348926790065943646309083466378781152326720854651865800912705652439217464965366351676744193856009449441380887915422661606210447214922108046517589134260257768382118113438460578490300203049083112051401105586199442735997642401839720233323998891732873667693863076058388022098862878862870615970308541328981611169154730512739251873359574164308903054395901407956101792179100853298335275199790778641582276766022812267322309556959865799822435208440371239764246302033203959787730687285764214451735311663836190933872411674962433684191865448743958689770670141988269366461656131598548552945102674785564167115860326178310517516984102838393348726566178685312727389518783723865164366398608993800495582128348949079341744357896628475466682589783957108614594705341917871982215852967267103825630518549977164118095150023642248260911455846330982660648066826984644818625184416023209058373461778471191060099754838163997297103711373385682320945816452199617844049720336926695595439159251482488116552014797983693377299670131802840216431309793721331556224119723265457833212702141870598367632040000371770155836694916478193078405639609998582099685370383224843988468792674598863315277188842654607647329005553515682204092551878675047922199310064392931314222720959151025690450394838146928073700585981878724345067233016732669978110980649222037563109482363604894297533701774766768532228477251301651504977192147518893318925585939166205990542690097247936430032827698149333614694115510698964622424813670434700427834436746119327524860408728349422793008388467662579554777848487620607371672455948404689849838202304267943096280401278765903747940485599357683824181909315945511570050814103003794604230262740872729441998200257128357188892709710741944427183491114291872229743521920713134068045152204617065607659751610379071427882343218265110905712996964990470744086533213791288415948498704892543731026097226223405710398707063928850436317176464446245640924681616668760048550708272844795762207315198728821233477901673922024212681296885386661309674937812202927594631137094160202719099899118737897905783768034719568581903820137793024521920906030746917864005654074046716606642710629782778840348064026757943585443209026429408558374231393355701283610900596567250651891217250312175753876268303910769991488869962139275023256589264049275532111815632296239411611733708891656120520542125400766408127993753524069350474332097489804803344193942541382174000994794898108706750513501662483007521508648244492603623232913951047549530323464755430722039912906657448009606610011826661081205893378882134925893887862371977525798974976352593454562200062398889474431339218896603336243655987725528254178680932894908674311639317155241080432268801060648298927954493423000268181212700615225258475402167465364364258764655958421349537777645033589614170270296162967115817580463336538178313606977644972386605778122286339422169684511319632561026166806575048381122906319459381274650313298477130151441438254530509315423068377327584334019884173506821448274019681120453876473567003803642190410259856470552133967602733747354287087752763725293811582043582740196873972512347203347925036509540284255215448433437443411526619284026644136005814361188965829502723969606934443620406290504359383166089359668147204096987625730293844325684276657603791731005728759356750602774878708285336600490064328514234121553213360566626209403795045149554303122948407965412168861949759061448012317194372107021908951279077311329546948523661271248631896955421352807050948604715378302056574967244327812226363682518619920258794610001071845346420333921660407426197518744467518521544300973744375472095050548073064858787261735618608103369527378557395194230920203665530388841881286048723883648612186023918928612059967604519049315947108409305171110737508763853468438394246154007191343701122475352089448920815564906417527872076693608104081016155898954379137329003251876323045778574147701698041552838787777937500272960840374262544673581182555081394924629004662423985685592536381842614612330323207360352899048589679935464293310731088439243910889365167274485956255423967534966149447505911473360454488793701534347194347966375608139759579799952689628914260030827273983895596771780459193315245006212616517806418407450550297344038485834378813525945911631303356641963928017799510743455150706447430482034042603903161227971957868415525593414803317512805698151111586688242001302814206853368979461966654662377566622456359061790052417852660777016518932369162765088033513483604095324459199766204321423991091069850893334106399156570701343055598540703567646746564743424824741744611829301274322958607263497551064288346423222274677943700730586522222923703014763276847364046563758957498768279489131711696972286605369903504193961224505624956833552412384019416992975578015857501613191526484486679348471039435772143891822941265648291396475292997993769046312455054099870540263473430595949878882559952249575010246493611443281786289647227632750324732950692928589567495177084426477928094667876342657421082510385087031416735103953086851698494504737917814401037843333169672141629156872359368199303498544018458310749934730944997592292030595355624252031867880637009615630677792219893819967473250877785302467852774297122260843031682710599697329206539122222280635582619111154141148825415754157092829813299720912100396044419221200423394092562611360013704893962306877018954456078654892699955721457851115033014978110824827420135073740782332643304355154189430165000317473629390035574446195873181452219408962089573216660038508461188149475731020166431180897704993930211498429319939490015989903183756012449250770290107969482179208714750703514440818746419994696349545041443223895841331216652856138130543372125687168652213126890413389811898223684160247730457620586884635430762293470018348026717679450792467102581467277968692248538172340078379298436453729795343686824030144576348771501613463800563247928756589096366096589630048785530195395836624871155033236024758895494437249420365590463740705397766748090510460377292127489870470299143453560537010141196958406019085467714982388228854985438956893699731101520208183186904596105243459821774161142963879480726037449820753404358457842375729115846066266250395145811803151013138513595495205384769407782346081450560581608871041162553728279352967012631864770223670569081296678823539516254435650287709745249951076589719075844645259460015237132194501365059630253906127347056523492015546063028380388555430664643880672950016795861174886239155797201005719776736724426478981205772698596728304258088572405909474622228404808344822727527087691590170623866329573036331719749084363121832803571037942518086855523038989076220158468276024267829174011668050172951024059706543325042939334586160135432967482290662271249128554825088825191245041528320195894397403504714162900407979571378400331561520503062068934959370401710372972190066564166959447162821964071562021054580720269528782045778663285110139631451353151329906190557114803746099949944250772248009369295293551136590828919823346912612033447582381871047749195231223058628059003153448117839548835984146645447033481921960343293308426229767991944701748161342655915603650990370935254464613847324117732494891466984018838320167496736260721080630176380167268157352937988477469983695410031744094897508282223915975817072429355943882440765874651670542627510414553238606166503971835613462926625409145104075774978834300365089521716691184301092328701908118866952706732713466676975735919236260334453651605737759933143021041722259908813293093542202860195319807923915813979644907126943929370869743941098989742810040203651371262048675609157446740660276723811144175805572340843201597299074457147436340019518141570960885159236267416347356185814355450465910620613365946609086698532533697743789456627248254266717012738826537532000116508385002995462971841691633251358185221576837167230065616013394388468237638486786402047706681320227165486147409305618803780416544551921206583099792528320295119549398143064467661170043792001164721996631961722782861795175613752354521082067524687803096290278296999185777676317486070407884604754689365289347225238737163959416121917368596149785492126658002366125039101916629448136872665171062091115344591160394255512989579224893113864624887954035259932963881996343963882054967396135801506885129553701093037604933911239416788259232250512944938176638682816349115430133985187088774439047628106432596423317357811894474748103155439103356975525205854443482621195666391794425746534503589972375434050522874571557237035385891552687106501100373758659555835418460243013053047651343344522118747179066008874879689898557567497525545041726565245234072739997676692236929979805185093853876126829995126115360747599068497820745802053510010507896683223384622694224989254657393110150146603426986408075633082915364155032911575844570909089329090825737215130190720366807993504340455011800158038379627868111412415509362585484014965913355799311565413657245027440028826351988279063766916195221189910896887357610343633025409493185952535989777002965995571902127182617133851257136692550395843062878764549064250552200112850562881730817313339729766756874453455114396869166750603805057228162617916200590625114541140556285637267234301421560663998136759653703984724006040824714884944325125976170297138952333681607999040642389110022714182525494296377180890386377573292332171517432829270805876815540757262484310640653167289953692139135341397917087218368676961427699073723098044702448377692264873936843728635843930004506224395876836825111833277667766844539982517327332866780084641528506455957078592656616210706585762962260341875373079243798059877495055058001280937410916012536771865707909505437208619251564580695356973049144842707695335519957551706788180530131878195175041928609670626827005773569300383780457261604337147934668849290310095142969037244163158219298671040762187138885572376402291793865057264366774618129457587129884233222230685436241682266773697265119067740721500410776353142849308327085655556905397290568182797595200462334951092494197973249881586060322963036809876680787752910186349169489024701447161495819875004364945531331701087202524169504463262235671671222248078325189268847556109717708417193427747423022750226459019973672139228025265754779872014272032679871050425138184423377259035269699199662240669521014944591667859338866519690267779040414125297442264490745313724512460317534400949757525567603926431859533936242463607752914077687886783469477044094155141066517236135096241918376435071524709396010787171159494613386368799706458463789864569204733324300752051587143045750937826272728881426998153253222403510492192203752299708997376129375331268791134022803523044147224634480948083464867614859045181827597793675586688902257123468424627737431784204777076936427847931183090309536787495548723589353750302735581723721770465620650477201011618328915372060635468743352590995586861264789444149846300489528880549643182672033016656620264051549050405778460463685796801141347836237851935895986757350287416020365485528931156340642819096174717654450504980549394026356936574242654230029311278424030299227627342050722185623736674872009955738682016596744107631216813358364560375480724125290568555937043714431097559339430198038646671256816652425849623807397791811136027965344473006285243333853339685360711945890006675404828870516178466661914617471928674938698399250100814424904037464038225944399754306065353120672777161714218186051176789645984948034332954312612757310928769374011947678851342816364208210489856450994537606406443502686587389298808139152661955868421811001713504538116664273279452620839496463193446887215998250453068150677983417895814818267308012254644021661253738754373560427280555037580579314435516753375358497861431888936353945357925802547950057501021319433235270015484836148119061911464113392254279727814436672836471105411963525707495041771815102247565529496976396214344421501130343219278612011992167379051310227795279127849377037188912490215516978464393943209708053320429250996754068711160537666034693478750473018666048713673289498947499843549473671827152092592888044064988696008793832395425358848353148093255694909127532842075166928775982816862267408237564728322965811633421739364376995494308891050841744884197122866442691533988693135154076359255168723695450592906014230998532193401096087317818948960522356612430391044791732334431513675862589569219267245289462276095440092074831832744650815915520643552027414144598957051398857308775688580218680084003520281496874814980742740176173912663094949721688773324093254150064099701117310624165861750318691994358069172656796287149710200335800603159932274633459829403514593103201374178573291802533202209095740344732756614217026754007886968660374629056538547020534527224601152134803120354450832057748051229454726520932365979231336992077407566675165316792093900062679217582186783169385009582266191787216994528433034635631753264256706372015385680215164426323979128750005642015306960375763144852149493572651192669459909829706306422206612740694539720321482847432456281326303146272719135204354320669989482987387243500179500530400563684902704259418135709865592953355178308295442685459537304444094623382565847250583943282940357172583350912363324264825331466641917685795542043552696992822930655053397568205005604234744159419865131505696572447619291203931042455069819954049182737941803524196397668198094503228705293983759717908584980150618344687226860292913653843915714435681931960815661776444432126563883743460794563129002574029906416888788157144270474680922220296023878218856511122747220366968496297803678779481121085251502585326307792998441078748719511775831654083547762889827977063758322704798575102434613382725653398689121706832515684637304543664138982966499473642942086786050942127829764478801709312287507523322241707209901553102134579157689883410814708957092524883231527003624314900047725633122366523438411868809703693748363967693610768234234497943423448208262359318012645348896478516565775348144861610289058995752890922538486484049487844280803801163954121470659383289022218057125941490946921154268309806486458858567177774723525130762069473866926645610311993994748836557948496361088078237894837047358722718353738107375236438936798328809120404622736753093433285108280370155250129841622433053112727610952626335704272106639260411125411064896445225145700085091995005066273068415448593289023686723541390894356259571254351882020190770583860851467259057903954062663006670594817969258437155190035740674186158699747356184147973602066209132490593915043927367491232147030443359357705492079440822596027463012882247385787699604199618039914665972006736171895417969295653802259180833704353673473046276326751036856244242447458529594215194727894349814366890068876844021762985445769676433064043924053682531173411270578918477828221275382792128305048105075092502930391258534049209666103590494737561204265639751066438214570653138494844224338862019117675019464736412618076116552850411186188246950905093430793743741115188785143555254367805372343535275191722585689131257263817352252958267319133243947304573802199424436593118044591698337623401946320452684653989037677592531109431454327001105867821994614443354936618599051791251067914947592801060468822155249047625536250466575741885760006236680576393124696632525901712307841863016960393220009028178018110380565314905952173506202572082701682535141476992744824933470424389514935611374251670825842189988094624049692347854794873306171671395473052291890962194415023812964257061849258211498364631624412984983898712233181579326544908387823785746673097888408183358800688480040480831722038317669571817724299350121366985343412161132886024856028277776024650034003869838333323084215105049416458848707232317970109793450176771375543127235440950710549000889965565158048776163082201512131122123936334574169582395407549634684329338976529572006288785762976536464699103020854454450106395624559446013860518870250726470059179732669078889195135370899712732319417835480630706028582283500433884876338350870301852686630697092159584189044907988776136643182670052388474721269576382522218525047385752973507087325937833174274810810324575006484090767050226673881652948379734153473075677499317042591730892590292360754524568452883360061691143062221876348207375443835813475349852252343053866847719861650328082560852909426646562021630532421375521540884388303120064871605010211234610650115073703421447321429577495276510197494341506643920771072434923718447530416006027533340247956953835793448107806837804683388042808787177962742594773533227907150565607637686796334538241978802946879210985670009952401273008018051730502537248461153898674227397529615533320794201610924211808533997312157934395628418580174708815494800477294333726999736106739590246714741325881870705459446943206398149905241380001483614380334930693525552279091611279221346416012922470377984632821367642062452409991122097709008123647117907348889796774301515580325063311298126411504888146611618283825047332734307821876686456970263107936239977613179071857106986288182638298318601967249296235653620758310558593551738417082050391791160563199256180800792941685836461613460925009416731273798182578990425032085197409775845331513019821867372068613093519761623767854088852311473095059224904588744707250640391072942032481329189204461591729883502531344187003216772340539400891534295015672213037654798007435667992228576803051606843848341211015461456764172899289800695577258419823746023762288336892259563347659985149974375254635774189059185447778098341229533532040720817302521066605132759518599533046535124075949286187250415415264831967433499378766752647875129889299367231082989248031661329492505654281011597816687249326194449666466178882891328037548102368126395095723310201941938005513008989131133552626423841660905477586059246398545313718436943253892111066307653383748451773542155872674023693577863000776709861916949169509386440107107062026471705901288865851238613428809163381271323027172791821735488698833410453282153815080997779376839178608700933224098167825540316624233628015000256550666128786641869325773183369028447897747759396477709055760704232741400636994027213457819829876691048330938776546486774635624862824797751599366225617631617001472286355991083834667098799063351959304715499036908919351735574362003261146469688097014494123670355772938224841568220633773456244659023854825099709159159131699677083835532798556235643878295790453189383532086242989731163317265484499107141428768023815463690688294128903562474327592557404149563141872018587638711496873504517500950253646223707349470006915531704438997407153714049703501641966270779929356240368875453682846944075542748174618337870042089116265998923781560460752073135220448474578346119564140437278659353052693595404617377356026461014574993082572841878525727933073526889128267839231012672729797771485102242290869532935771133105312955310331663879110842301054192275697746419025896780524977681468756714498950833130220677563363196086659848754383296640840099272071982161559073592088138650155932603274333696663105346699244414394862704068775361021351157650818487311247179677336751269008977198448301922826408124283481875629730342621707260417122797195897226169789852335965490850945394862469439809615011510162004432759958235176308632818128246497646472095997889302423455602755227464884832469603561954353880925520065046628502663456315254185879910008362155880436221045728782120385688449943015263153040859560200787758415610837821599930607629509615915121703505806490071923228813755311693705236543832529785153896296613547308702067747540581272613673358567966458282416439849911130170769465975372177568386787051831593475352998647178586126032302813459348261172946593929843800514160867937404148038162043203710353730250514167437874617876142802226677369309526445188021424577351631907230254174163142998352293493588092408283364931573648846343160383482269388209629443974715334931676506149820548389414199429496942490714236492280979433052665133079400759543676373928451713624481098965423797370284192992147552772832122250655609763276035197715186727072949563373005370718879213212430504425925244114770716581715829452740266865321268032412121458558767118145199859399802597144810882508725266159200257168344288220017644205163407330956330905375158549163809094191331384984828289061325543023122267190747728458076648320223123286932249004468614261677039563375103255569365085895166214958089345648702681854725041596601846500457529588092086221739869088915314816560995900708624905538885568731663290417427811696937244129559546414060461605629909199401667422056419628292953332182184068298765053444833927830222878056455571443948827684599628427738191067130192710978567665714022746734925063754618805986959689104737715103392546052159777523734218727600969470368452736364154022286468937658825232897743442818148228159045494657476366470484127256765523444137946507474114260511210194515863314662047417048686717323796626378907271209476005704407540179053972582840104697536609380803641977748517028531735375497650362205238397077657226006940203627036050596229624552951084444000389378650308138010144561812435851327305619560154331145671704617375492899449136961733373662082551944537117969240917037184983795757920772998951798608586005842271286234962201352917199670558185107652325984584514321612447261445015714446906097157719881987094365276857400767708141004538455889336343729824928623784065786683878872954612436895836636058193245268092634121563216062432702512797043749135345323084882174908531395647115601948250524077336404361133738370722247265914397008715283032624070895836363171443655523320149122889657370858695742466154130967810071201002466124279464198597893845490703623256237719695970656090679580738098337334474068241780294751283612680693143846413978379676039915787128823038045972547357024886921780851421282530429802082090293247076745374303244139667630306526880610154125941116016779242429308228512428158726556728013017133383175053335524669754769485611802611296878166504684652564045457962202653526925132336964747606192353699529999067613627101196674586996747287159518755720898519469506329416883404665958274079022931493411406125926077666376591742829593433984245990168300555423673216076402022340414610364377412141234415652550733789186566531572154629811346492179890807493087276604873997292726157310915867854113821283538781745131035524951875043956341482410866719715997661893509377948529789963919149440927971152180760188334911200425072797125212850110713208218532252968944260334631293299234839358978379556672009322283441010301525414528889899950129930771925251832185988535912828694829757528100620424074771079149420472997754762394992995956010007905578426442403084643991893030281823258995089099373936726355034828976828982117836304657015996567515009548727562168392684215372584828581703104183973739776349706185107759145346598453559081031883519438575361323672412753812580998187358730744770361439900780284823383746407775082812605139711108016167505879279927824182725556387891526495892789806415212276382210854852672634945909417814541109024881742505336150694941871278466479083612160637127787947923074068662321431045553616597625134204875259065484598133887815124055200127732958530177598935561155144214801876909482161421402174942423326960979085741858892992942951725348340604162947797570140394061859226784192130559282324910724865182238601094477068100175489243107787450206055715640800801720521253473834507712938936232582220734435590646266963208761701443818222694024462552222473687005517542019486710940525153135896679135001881887052403835367764719647492256362029148776163239937894683823775553974447863350905724866710157822531136194354370119389204657592926005042363662517643449634306551414921343755420354445288008377370171796782214680341241423125259098635760112860527948150485451857936776127440458689212011366591852305510984599263065380700146845593566562711042299820557849936999445211498791803016736995464365533558051604363355415154009838193692056560076106399496346058038296136964304406931869830812985821447767141573863925289044517263835230434031179190086589111815003808857464680109665891908662439862019785605433586303983949838422395790350029611822857638688420655882825284004031537806000652561704466430099222553228302045004092908507936401950536538446109241785318443950656406634289878508193531406335672161350482997182477273884923171014040695181959279078279379412942421808765810005741824634753749080549845662493535308721692774859809462307250537411441484613746856893331813587218626338543315634453778190040417688192529596350757215800111327164997531196421182052754898973002795551341557559731976734533645187501167100325373971728657951927715522991822588806048852347142069426663931075968870590098277315233456079620522964493462708590631824011235224889555959819795101315704087450584857629203701881887933421764068659243959271188578699864657686925399105009110493261729866366507378384196162964808920650780995284941293020390011113453626667350762558493903212133189568647402663683962336674313642524429714753983599519808119709476324135889416468269041941658913987501531442180396107044542133084800084880402208001813263453489037706424657804931404036295542371178577127705228249698666548375345748422752030144729515639141662838950404976693667918348636645976490023704063109130600150816165126771912947340163154100062426586299001214934561181351851679203288172629776577451625692909725361176128100501659868470093142096118707704033797703110962381760592826448067603506846280657504000522790419517932336590355263875110272827003843610042007522192633388075062502815108467695120670226241231603531670575510648167363773982610342286626741047045524121678808414075505052441049813579812560059834614018586083984306731239584557553573468198001289308337306446773089980182488962215009553877269466471034259476969213923688627088525634780783477185231581737164606209212266430467087091162644982704061298565792076276577418202800668172051423482391705776502925721561034413469344596772418234797195889646362507668742240373937659056237035457883820138768236077718553967691716332061669197935175135674398185254369890577271018118673564953779985456700157640959817833727513251845443014334629067606795779454640675352910111164317371987498686398835054083354130074160103143157939811015140595294308823499849456251649647031525421804762721779531720336452738327786704702201730457405579329763107332747117997075426805370248182858023326734123491665707649340741372071418338891115721309716650607054152907176736278103094215844592185835449400431129013567721589524580099861099167961296110468950191349965107789042582762215973800023439356985348925182270400254683259759675884427654336735629251007809232410525873804900473328942535480256883249378977476284584162949774085425713396528099349275846864732041799285081640464461199791513398426585853838981629198765294585991540313431636854637433953752826359248583383962191132540016863096102039198577553849307905719234250038684810357496664932435252476295875123007330391974268679201027984574004480439137770387413507178570413911395220933300979229543138094124579982637427471893345420396057340114940375149827942174292787503514650885574285657016680454018543309143238766724155045940794214258707256092739856715719135092456972961314423159990982039511626531468393639614573018712178589964713081483340605922601124108517093486716813220473727006406276472528996577759542416934202302656155519454200962531471505634391026632612879796075837336983313059025377243573536708474584090579426667143658809427355510128715350244509937522902802766763235517865998503341763147716719893463052197071879023833519456101043810951689180513869588532030426528365890557771737362645897697033595836389477054685037074375481558507811307300256936278013780035185406313198354320574282939055940204569951613330781284990029332054731100495034106535812404134052592108885972074928125425510175916958840106872320805223261265625190977706382198249639655711237381027799843799921941823954339872266383072946153893769362380895553281414988541962843627598003121539773316029586101061481860505317417827216795309504769958180980675426510883492487458380230993709526554532405485557625801757345031754378108769787268266961882175615353582246547600315865047518987414241955155704777245585899001067354936536329835585878639129847349102068384215296201259110947864415198070691290564071497895357839668211463916330135419843812033781623300392920430141795035361231289537789931042231560828793229027863579608864836471564955929011659311378500980456615005620782803243419078108164309764747152820063101374854858186908280528861426390514061829799442221562115504132350563508000445684019924283312905521720967611808443732103165974685572474658928120990867672416778037570649006741494762451994627925886483154901645048561107830826261131677242905968406838850878235133523715321621013367647354982255770485182040995769481054747861698513859520527864908651187851829817012785527780342679824829981856513821021630921246781699894023523230873174533594278038663497675099681122669576049008848724751328182415412754940259242844444074573422256347484188508639336443598750696628634387446981853443108350674792183062041850700490900483997217643960338077786185857408555252399609056712226166159958790127030719345935287763292364013448865821601490296379290485042481081363176622819480771597577694470036809567778231665497157782195286009044074547725767351047242730062572185545802290221953915792320783946886139301888726291640354851156348009752716420234375590433841096910545438881874473105862132920545273559857293659758886802204343814566399968384682389391118680355556002601984403021857579704174087111713747188048748465580220941018099376975725161749402302328096043024259476375323835544200483803741079854404560505189091989487621125925565941316217726195080254899847978987553348513481752960572904147338775873222594565591344192430140181694535301971137088815377723935692176868195957283440030905823830372429878080722331949210161527475666740208990044906625994152067089732980944586368004306977841364552979201167696551295794992789434478517731922601453339584909384908426962720585710492551877277243803335995137762839492283750134764309618622716717569153253348380010271067001895652510015454379503400339486286924829688541463101466532097162294596383857767775226081154106928466358141984686376882819945131650380011331230430498496052231607932508705971282452824930009166459724533119507657635728179869917465190724551056286040242956187812136080170254845573385161678467466709633919591011330373842741929123146518847019211558141229299037277678193622012492362161841446724867090302161728020831963667735273437769204974820526792598480601784207058520317561239133929883109297692352990768781604340305985283509664370012630975115069106140849988526062877783649816329353480108096336321673246922056464381345163031133338404209283659638562497797318210064668204856319934796264291703299312330702177069149844142250909886430635619056131987473199702259994495414783376020168389855831725443714352940186660883021880244128106079820958153383361742759266987876928916907429216243585918944705176984637563589183087956900147723345622165105961518179928436261488821274785357605104466824690097955289723491074499046099238240466684942525829793826979631649034800494185827599379199459640091541702866312500290002329249227707896165822756256714766928913705364716187055901365399952926497899041414106655485050229134835081494979919016719959726794913528596844183964977159447183927258051474374414617490624854553695092588664633812057178683435677584268983150694058647411749428039132212624553367152775095026293234719115692895248824108851938288156141752640587491532023685922490123526763213006645612540378040960432753562412936660733360909554844912262590406647545072069659526736725097486770551542177094197312815796006803154937027558808563793428727899767610463218207871289301941638997190852282284377397676175204423171450932083233516234636181741845184036455702802948475682686997203935671113298023907330487849188908908332933199143214145938967683711423204679304292987577367746134979075883963935015884858191735419362521729805418894490618138896760729712545238098483798008797731310113057777132134623714256143861329447715246825684007563543026230711092266129476404084685067376944426105032981232356063869042918107972497676944409913130124602425381309120733929114170869682849042095147052814234202175908074621276961842128577827845064007788018839543751001280328869426633317760518530669564777868389796917718617724541547695348483205627456590373933080117273143889299391014195547237678955361179261224082793598250830116253041084140507347485809132149376956500105664000227270343656489889682081784468685283063579014351954295232455958506816473390932545441912614834934214426445593912069073734102132939078685059572223789286636718673929869425618713555614255956612526029976466883305829228050168218019576871587082480442077124694307510857229894151856087732572715933091802817379902434020374474096454737728133853991562600127615451656271200753902931767191527738296922113936031917958369349496311545924830506293220045817399516369056275978162376380874562737103615082403421473805602347136579724826902514600185329753078267487706442553383530258756198810483196991780505229047307000985391495446420881911865521553434716858422092840125889796214599701606617662957347680077265289336531861279847409186816557950203844583850078533288171499959446258662627858682392842424837095531730212194072727415549317270931966229533046538731011269231939923961758224942128999292946760056640097754630681015367533338481035058157003978490307139296386716842503701868132298738810927360173395586056138133578392466032078590686353402655984638898421054605757257219104531405361837056295394833709342690548077688665227258112127236086466866430999309401915777382379666076127146537966951442602703185944899072198626559837611819992071100737651502721701854584092156078362148352218341971764423640632064885692809252099651188234414434747045228745074244378247076422469236978453455165142341381227684496297399158606413726302259661120572999422840517110856328003808839725858188610378931514199820030182028606286603564310638992883785735762025863618338443736136571384143432175746918256070253245339039802579693119439594640420045252664620215710861580875994316824066736693322658339786029069827980094369556438130584999385357735378395664708093209213983551367787576720725765085547549595951707783780869935758766034743143534513179602620995011333869541923226074727674837824462748357798244991761085496298778507960424316388067817358396399576196434289996519322135696744718539627388843756491045303514806706351634213856004419619094905680424177663490180977879128978086716431020994931175957189028801155377415746799402067806788966464104885346418521083612530081989381960713829981609142676533084615051049915390155625650104738601493395392995258334280318005684080315316666551362336823593053106207269967358456506137945133551506755206288345948756513744351048417658084990295641881102662694235754003767036655165276200218953756887030772219469720625099083893611003328954861965114087509066846569917036978327053767752080504574129781439726141067170431855824608431322422615821163407437854637379441211647828098174389599839838355626355529314799371005199767083102026973687855407351034494406149294656658843167394115459720443943735788406086567615987369190422478261021301024964736036577696074168709220823347859283339857646314191473844362529370529809327245567161757543208356892380946043963938883111403754127427502285054989554887813988548120212748698085736871123769954438165776895675505871648799797011738459442608534614527861901024816933107126469533266226688876583828248107125608920795181694688383639159419654682266090281558178033896656997311888630089001538509885298441067140520766173963539131688672862254935342053238476780160525661622257219932656411812822808918655306812652554692908504030541041753431676611537206746401528738906897624695284763386219903037971333092520844278085159192487282857550250655353188404772078809234163606658299971957363453448792498206494442995694824113619171221241897659552565747468428643469612683459233313675894965988105273003618004560449357457375418093000505604672774655530522756463216572242819473946465037733002175653205347615261415557751531961937920905782739596917502519576432219350696632625253851669482255376811560530175356109734462223337871919905756942119863707675883266180874428376190151906303378021880614923759222987811068047510200126045621275420152549814390698535662017515537876618784816794149745752168369100308521626018253392354314266756673433313809434952775451772433082790636642315376741353290759831088866847633807628332561424609857636327283949701023445832383661537471818726426002813579480593456381892974519101473990344982510536435443777607949627868993288280255149347486154213902112125315238647570269086180134397047957115631106176487398977762539205403136845288817144460023568406097080209656212908411134861665637006891003906500478987362113957933246370850570742751743478691822255438207126349095928907443875261402867348258962233775940039245236803125099307642286110727265672453411622272367195408720120739307779299840824323977399672056108122548072893308039813715523572500367280561682219605333605891174665581926514582437181728704892023127203047564893241645741212967295517556767825848837031118399274672696561126032930982233026926758940567105216654030873811980199317384814229959971939185839736769978433718449972782847639228716132232511403227563539929476753620801045277321400305934298954025055116993467925434383719968844898287522659306448270980121972253650007394794011822036942284477640794389090834574615432148323216262283022932931207886658023899124715986860498217522760422404804239090768458930199899312467651985142237368420446410984257772187202890238993900388434471454517733438843573208813754934776422470904457819629971449290693295863434269345011058261242944288709943941392046391293743736135801693313320295451711695611321580310854662594904726674824484532979051720561482588358906549396555750015985992113619437221151909605027485551945742413561680802690454476042275730823745256553360464180507420114778635405649222525830758008344816094412703565910260540661901599853761804407662171948887014599820752102829122664649912018969330349560821670608620337185611303467927420467954316695645363386192307018695930567265203259807191770435726100193888780097530910041160406611670813219619119789791070806886717356979058701724911386863894802572897170063840952243542044214904248598644721706050712986022084237482906395294389532803351108016127672079687037833007691736355492215655359219416285511254595534636826649098267445247178052743283424725874502001213860143771912966811376571118176218679784598844002735061975238620934374519161959576351961034049660861679228757321470826912026622185862352725441375241289520155805965459413326434926759654818631285370427692848735151704235513142175323090835634646637658091052244616266662296468361379485936477569103007771343127349193431944725615920169913441097526705058856615990824688088397358804113435783597600544006057103650588555382519091443589361775884058829235984787456676514243315869542533959029725539687960732275235462212344175989196865584257887508190916430383217539566937206595633237969068113988449912515380755814941948466861284537080277783747508494333303583146689895212128016893952642544045816045343667905368616904915388785596911597667794927561440057514009682836455917575346728232776503396733480799467122156403403871826485472271859142629580160268330430304518707083848931742021464132398517584325440276305707232455845946143991082546322634925408962448107790375266325800988362620486737280488102059638843100050638629722552933023555558985680082230366277456761530464653786560129273561696565297302458363223274803759379651235015692609191111228708692025198324565211271149396637455499877020638162322666046142436194606519353264172614662814620995699374258553887267928257006996360700543564797801647950892469163559398013555084008883500163192576808361541477141846123739196024881896644862696829380909545261541482742787764267704291943373024952585839021721259618637824676576055021119113589612181156443849739002926282542507994468403315710724904032234989451731387779097313092081203665021073974775746138681788789519679679730459984193992297226657842115807274936979498125944199962716956650451136403668904952066588538681200248864329530153627831561871597152539610168376152293726112707027697048896043320024232326383894798292608321767595692964288423247337711336460840204906049810281429755694867209674993218291828425417080799927413831368657225797130206908403844494866380712861966902170419193139948617059691797944230229786283189342936586332907423518830067386983869054910173841111164898684674402309383323578014364746243372647175651977660789751730029053227208944572220967998559591741138760118282117913340984088778391951569505619160379713930562232468656951419055955520415941951186673247845806160356902991560132487629204104597995732910905498612305333403167416726253545236832231296973982100011684475570838438683446591006771785066360975467422927579690371328219649877878918991427571054621955331616765136901324078083307504843966144098831868001205133661291721927623331101087479055925452173256106948770950916849777423989864474457821889472372915957752950333573727469479317475394274407339299878958054123545511117656326049649500347506286419875051707658059449512554018209677046716057716671699985436504271250219526900714933106591663452458260587942828714702463049129801622157219136606143154491017019123025272399771305917334815170023414510897908454806985737688533590246721338452459938712228227596440220819988877344977875800968480722595999430710515699103678667636565069259794446432947791721077434973426377911034669226122117424694824971987674896575367741955959834882673667854969281823543375865710963746210162274951440251971521890816600831935848796392559857299204310228535663365843556700735592666195596545560303443113839805577534620760412537320172563075149158408061956796744526809302744785713612994004647035510899587260825537045914487485233858212267862332333623263073466051634765646629578925205768564477562993858230271822743865669188065112556215953081395759273922659499680678596312553564936102996739133195593857596477853353780555683457432380843523613390196679543935078509233083298777574029015445651372598953846095452265850879773495641353084815924467478003461817291298113758028451991785869481115405860252655457982581446596434944622455669896251877260921608819322764373981888765548322906789279887780807865378415381097093995989147929451716716648438563824561920547559622441032553693129879769994737859415996045406785404301174417661937995745452589612863969920561072239480674446487327742271608853113177938782981288721458155104438253782379827440385006926019894394520370792277928215305639019724954558272504299436169914117320497258780627470117161868925268213965761952873228940722945653198048493099098210098485080617070827072379474431252682649827599718216411144710342028620002304676586092145061463339101045038565414446567610970605369228073950006262295239898550407150399996816370998517656116666984048824937918909008218553364487747105237203427831655175765067254751806241034877304463494342192918529292360677783830774766691256972728573487153617265524245043966985472509897710741677140370697019363273757219430033303642942723108471479931088660596063005295595188450048104934602800328190774052405545306546678950861639953988016431280349968913830590519272855047756524042250337743484496775642658269413750850936611331660089183125643523728162527848017452808613654449246783511981543906659237235801386982421106392214676842641667973251901046896358662421859606584506386457661787709981990524116086660831807187546286776256869895231750312350859773241898486466737831390421875510750791924422068181107945947363375418481026571495238439659355981835398026427196441102314690626896774115527372336859147344736271414468808133580643725818206247196353764481809657845339027125427785697192792799952829987160005198579772371048853671103758082950559804500476805646443633233682453103942945499675930183143090229168246344819682725351749338569290100005504598598306226190729296191984806803964801715289228378905375567244703364176610167001243325108434653924047128416021140194044727979290819084334984146216855263509467301849421038305863921151753087719174834167668986337519693814413665302910384324753243115936528474264393706808750046563475757694198087596428676335252092910791626307323493338994593723247394454597538493371297555259459090582869530401763136407573895848393840420516925592193336202801020024713761692100037899931235254664109041989651593740716626280635215200249188511380493933202693595412044119457007892409556874980561023059603232870842387356800764205733553093687435268507101850657177697073798518484062477175147159625353021217342657182458972261262092515701323560217513207573986815072509185683864419493733739839983173968426108432503212993652071977555454077356016469635016720452334997937528651240295258990481869207986034180893895278837099212337134068737451085639270006014597807482744204530114523996315813821428163767323365688545325658277936520888525188246581996955196089273181458380365443351288182943915073427137745968059789354163462310104316274363304839292102098519319380869663897125288004565499260683848078343861333955609101469645351104930940295478062307137706463977690540319274169021140970481922697043960038019180665048588451069955575954278772442205082904609909851844374761337052109664360871436232003590600407468006501311105104550938695666668824734385598908129797734502674177782381094792371944307215668491887962419608908233282151373372776493299601142976453465087511622516536396620744561405324597346656674895016790290974778069467680710657021539334661346825338425640716139203585315084422200356450089421123279179418377919707639637722533758681081097601872987313496961212566563501325423529703319305015358048451098685889864699457831683536081632785243212826504885152428923582911580619904447380099879460108588532549374849994780705281903789098555576257833427530729766855502491586633808111482011093008840837060506616334402846660419657056070169222679445606675848784815437349058242499653895045183729118920646754737164227058864753287808035988438189203498905850193839537527287741626915083298242519664608649799192736646425094778637254915989275928754093410523565364096217000417532163804137820110196717736472175641401216377603394540053874663677011590816124850785076566253231723018497652786361877163876622079274692612934347222051985060978568460938183771391332829994048741399175368533495986664798893354431978940771688366572811141727679658419951521640785664942048791900405611745725210823163892498193583947039461718835878133285185809732148568375359777478371695083760395053442687083636792830665089110740307890489533596521520347444108955640214733323836792483710376431562414651116607094786285486841509397067561720875837902675575528563863932824806379398015944082724468984128035100217368262950356046331844408010855040736863077184906545747104830193923699367702127591940277563211646358046842185213176620390668949420852311447771728936886223163998396063082371083352643168527218654019647938011394305477560725957306850390421192374818634303770387335776693841282344871525570130787336529959394575043017332323322551110608603107714933978461085885145768226359608882726787176135701185963960732857780082655353977507930058082391284104524923250045730896004588395485335730426345889585645512620054157506251498900800766702118614837635766995876389681296385417002090059718686746840969667037333792413150439001912519767898556960071755222515745153536429863551980939505226912170301862503954722262384686124050849211858627090671382682740814049248093298434779543170601604404435990451695906618425909186837743729947276548091247358837767449253404601575927629761293005436773707424603833653778978139448758231507539111876325672069198880985138923290221697666528364257687815337597833721425773908511391881998457796958495134626466975403905292765564758305611385988903164409618753433752943045527709454154880150029006234467465528156849938507049060665593843134528934908763486338465589282079614864691608045351792245780293228244254258172536397042635743863295018881513643795309418723887038463685713858696788200485646097353556400329539641979313194278345506137045506447756994897614516741447747188298994607336977310705948649613743830765218864469431750855990723204507850301982020112162273108193467140679904656706597354021179190522829279863953675864316762000988040173341451699461847494316258661495347490193593625286370274048061374068355692365690004438239530610015275950370506523655097422235199615822531303984744702216530326928520399365460433996538590834002140020389052630962510945695769296404603794936187997373038208699741985872409678683125426087515061592173908819066782657555745158304705815278759691761309291787112076803099983943801158296680421391501721323579359561995855605555909029053541366957461910347892355027840944237149184228937069617367434882542241798440466999793792832164591177810423777117314652504762826598913617317505321263209844636553140720167694927061573218697886504768742062469500438112367286006615869145532370371408563472126372792106623930381919057615804255113319635459030660894330939733224216567208684883789043284516887353527814528301475978333523642222464914242776438941225558466323540928536050741291536016467227115608536312587797062076671144289872041452298358321132587356312533615358568311600890848914114744281245091954517467211599709330815365764377915904100592170401480180363329032453967052924839307521924418441095558122098493194228013685894033295821376116167014464141535308982692229601153815085884121141791497471440742978448428863033239754311919385873938999530445492991843910963240270472087049144944208580536139215159352219356416079770180634223916655979430717386275996714945198212958457299619482388435130353438255879437049386022659361347280282390118354524312880663083096891997762794323985770419745372173063630708145837363242748791043423734637337773157125458484985568233846965006480663600799507701296737070942591966628891084377098711359839827232317664670832437101134093542696624899590392961500873642197845592664417481612301294144337333617744996187694880845445031759875172015138685511915472119288583689654873404463390564631067932521402563550549609187150987790064076155297416557546568999781925351007196994395285992334199999342129873763947858349902546110411433373263030460109317251613808968510900073493707029349187708706902808255011196683020851484534169519806325824273409097784897697248003568285144886433861307288669297185482346381755410382856930747467720164301901853890282482352348281034196693028696164562626580780787922091199758481258009497136856896399471823334681620218510861080419501703325626970022682093030427713267918680080651552581172978076051398274534470842848802648154272323904145651629779264415714565341551206416495052723974705281145870440722739108239193886892954097512872556817726914785669807300890236981037516154655521084495023451156060539457501796381805235302288399378289406046816959755472702338740476422635198331792761755343621182769665302286481330657871637164796905208504751812763532072606302235195301244028355238082782711113092360557909736353098923282453576951132998419900418384314595079478741201291409522156916454794550484814844105876640765842334965805797902883867125696660018151825671789016851364349518951867324100025082788762187263372314381889250885230491100042328910137304490340842898318188668409058689918283731252782455231419525482199578975903334284372828063223713553605186886703696000325655308588404923036473425665765085795378830106581407361484775964075928559600712621132371110031594893163974952111231963875966122194081231725935349992362805104400398386999000795222000410058755749272956479256179421857585778553600309942189751409366071835426252329295953301592799142251001573145317948329379751880779843004564106190986345876977010846587680863976717978348477436152329809215998850088097792611171616270427146660663321413035638886746418583795953952959456418950320458179157717689568407533971105162470114213367337388694398915864840969275965346239684727479129161982123528089508382727888054668534084729161738290132184446107545943323167455489805312202537563461982457353895884510787445084068882985198806222461259120997953437565475704824545726280917398536470545664532260474532199437717730221560725745440281829528958047146087288426787759572655955586975940783677558740157210129633929833954453108870600811561222268212850503170570649971492617006075036949702895367874711596700724484086901293288336863836826841802552127654267749218341588277632175525683406290315902708065203952757059460358524779593720447975233361887050995527658650900085820395112612773707596178873302013959378760466986036365474527457059055285890252162313217661157795321241529601775363925865180180683019447868407156248853912827523396282102096420698023622030754086428635566446708808103961496039644872788395381955202084819117190811665363360846880323322485867345193644613748859125980277202067129876674780961969950801787659948596427026215704768705807438118269383875514648414267860978287238681614048827807747927345702876130297599704613573028375296540908713591613442201824557636933438252648765933688142377150944049032422266596120809465154274604453288981374597344611209669818290309193005979599664425054676186012934401618484310850087555613286154132040730373889951857404609518749416128083170778621478577636544607629222100652763565885696202533198885347240961359328285245542615461399406265970885193792234151792762567333990839487579845023619853963716538741794722869837457235595790048023558576640020706096641123149535641305400318284337158900755314530400934104236030254466567860222295193066256545725564252017356459630436726776565070822844430462310469593101148921383384542864909806894160697716785983252554778914727191585925853699875098901096026282805943723984194693235124443627667167497608217192815785729127727601701310706626977142525436546509564064979112397886367511569441455945216973172633499230472670275462686556395595644582597050259338729155244573790574518309797457496455511545548443786880822511655768016605108943226910586335625022863436421651671056900848342975295255614184289200392948889672971152122921997409104475345146813066972155980165526508240440269084426119696812050260061014586378408077642389726919188883889522824705575805430185258768497201676213539244389825198369184225131034044619934089755276066393179612535371799837582776895482943735078969086673237359408553684718746170797091584269244005638096886180624335440726361559602367719057562306941076635698197204437839897270420313914447149248652685359351645693372131378143324259777459463212182244716604484029039026549152540370304514593511764975466079402278902143108118503736412029888647860083347456287053901942297970080928577573609829101903938795382294690084792234394597098353819176530167931335435715114367744282836888574045618863541463258013676469795108335267450573265635862560540992843490549449000974463019319534278963334567756553387165509338017476983158129484863866970132067137101960922847151992779792708882783993875463187426380086351941486479701340569895004083534662530803618995546181723373454740502522630075410156656962660620573381109706160625321923101383748048086312410680461943859246301323650609095252727781737257766027445940370874523003685761746026014208443280548615708957235094998174819982290690449788054776657423689580095870823724113544696489577592638162491328934270902218782906100688974357713769996554737229595706828725201461549900892195118218275087741578319392303220388837503968292422674771506782373127604244986196532569556780076964555560528973888028321665148106345658035498786071419013725970644018107216096247226064279032488674411584724526361495393219025586043690503001389606842261246821273337088786864775326368514985848746791508278145910055406511513223580724919687610134987847290624078665298128378588186194117782964863379362377288094123260915293825130718563105868054317090051340747250739573669894983300799330424149869298220047860841633892464562195049980627824647033886103350889886644497076578658089768652425738394216644078407773375384816139906957825532565277627547364601883509096845623298275091593756184474791592477667478547608137668238994311453668013380161802230589872029392297977021778627193691312852213801072593769926323854289371429995005866717157207257461988721908340825523161406647844604255390517698051073518474074092855233506285823599552409755367125281982096820475716762108108772204558616042153591309370167890240346525762817219619129048808966260955954993442462459734119713571412796452300593636522293978356121676924290990422734330182126964071523252397566511905363223514359396908321324689553264427276462405465846882104763266836354099502835376765309703854544265779682561109433647884196294176820230822770900124518771667241609245849796458514497509850478302493810814042218168208756287797837484177223419340958575872101525900080904484985887131467600056321782736559079532092531056190873117128169878211533200075932864727452788152099685447254737575652080770042616369220183926560272122419827689438060403388000975344436423746005671227076023730213223302827130500909912748390976955655976217079358102786705562979732649858427022984675211047644386385920934333877654461623254448809663997492444464326271277636196927514834615691206869182827483835215764010942837916507176883058208568291546267423077156981170079917557872151378483589477073435004582357019305707029845444204616745132347149119256367930262987790631762450723637746180423897992889162369658980410016805185017910456613073528716069237977076555978177357331461724331408307569695544912299058361429928604844947818966921752879667417944745544533749766974862479221531721296624405254414962880484464396347366303275880264370602167005749218206809710664074665114832249206147708576344291537284686968079484449193685373383449684321854191033841611973626929894815069644968045557073946179898603855642330245315552859794914545761998871903773063359284592125460354602056217764202445273683105937437842573283451035475449382596332927842941421956717176158826741819767243070956360506402612736543923889984120017981789102714916500181267893053462791653846810001960698706827204877315939672945140226748442844254818621893474288348475874339934627144890836810715417535647318600148275398203122678069904076066041154336037666055107179639359903385131419596440638835950787009001078485672567139606906690839427646453016027376112078889532500887184173956727375716187001305680262682498950405502611634759942151843742745404397424449928455715718759926729787864654002100960505807474489387872384843813149417458890404368422990509748711179754704750419106650603403056376863905778720822768176090608609587113071053123942034255644596445120180051602192520351408453590191434946876909504681678351094947505023881614498584720289533713698529851972717140125722179059025017382851443104761219847063769058726053174753313116524719873532484548298362204938749279415763692503314949158154190533830438542956132699942110121256202742995271340490759684661325016965582963635261261456363983788073067735424195812912053791090090976673273773462750233307359771888779590508308871170693236983495187588863482583924088583213465481542324975481465053496044331160028622740435718515320203219813246559501881930190800251336483360661849723753696767391362818880971997525425911526653239340957640552390006538416968907601583663586245972198889458965412306972435270237258750017670662885918100213411716254105227731665004192986824169338751191401145742126471692983715938736307202330887283980456527724866620289853153077759273038083126704288036241111980880529867170821201016190337612186858212454794689749695599106789462320341161835933376091067210531309015266430653366261660398996069153644988030217897843228463869667544549577404698675535588136611619453566616797306535085187749680324072444444955590582168322521470643265185449390767663953172936089621791587565011073773626912117564253833851745136149253213586761297534493203253197851334302717988290903264170983986412223668587131746504414933180582144396635223009891250939030120941005410154094344224242360194090564124817766558637788618047088751992280433079346532050379103452448917027566296406057904114942172838444354811101754869875630748008461828888570436105268062129091713833984401940986384909659451778081414601296500898251011831480945963911179363213958388503635849904050062652314442055991431851579293884699273557478398327127715946296224174948454689447811338363899026956160328713320709525005036295627453637622075417566247665406264495034350956164442358127360610131643635948992959012042503155904894201908668578661222384543082715372890279204564501142205502720780800429500876241276268124446164792218913547405201124303266159595839548969618580417914648185569182949478096472616369184168557023625641605425464517358173064054404752686390589224064115045382629267479921886726311163363446155125400806717690758977483839952320591577658234820926799376172687317546419513351240264846374228904137690770673463248710020992653721807581062213386123398057832310635343597604808790095354511404501874291419003834630492626164128484209376171147114027634193551456893673527978107980666197552144053728187856604694976706760201051713492610684238245116224932020431015647871231854281286633068230205440315584454376879443839663997384415546318370352868421171007028441205077042802663818200853306449668355260920966718560386386499033673147811438740353788202450588831747550713924241620207909133640625330063357857880093444927932205699234263719759430625907217109218963292240302917421229376108093435190764198861353806998977951960694220889368734050055612500778065924185282604341171087712318242279861843628247042528512442722958155410983431238106752698349305333963202255330519013718579071210838003122399078146987560259573120271622013120568281268495333839885504761619921253129402271681542547628264467731935050121328443082831114887409857776262849068247499156794714307780303576434236834754709185347001342356138483559067228813185207280839386473771151615048080335144066030794733111938440163372340179532830281384633549967729445683835919556742352978003109313207408402056101557149496181576079347639817970318744832237864480911993758480307496630237765949134922312335700283955607306452536020637144093394033880194208172235045001617396473167793529706509123153848682126633569178851370069371880481361586583021495977245583167220271794219664972045630121046465233605123439844605345215564088483777418359693372557603698837452072397302803667758862744031867319908119773301324738127303314083249138978418713267862735024295744494250837649927069962522051916844097335808852702604671443569152412022964494210906930172442304022458448265441593685118345100866999079159536918320431037881639630688351598600929292349268717556290592137555222063821059297965118827417731396047964764937927729705814789055928897742488761088044730422285923791176020640278475007983028933781567458567606038146362018179798780875438626836018539346645625814541275914125725287805865052099932618944086009310819558120002591116674124257860999560123410487358321095189800902695682502105825443807470784840593149649181976495528659904658201938747286411995087400561357473495347476014347358728344254765052089908842366366200301017124010684755806797234942536929165375145284899581772815146505002338126486670953163002073385456039497965401243301733945884242188629576113606117918125923152909910994153646398268500170491722633207180142857118242512388659900762333840544505543960189450309772734143508868223073744987947153032193337014867130811415680952305789333128246167161298896188149273367589741974215737967062072626923586110079267846707888012212248774931311591562811406861879533445363407233063280995714463714309625189847620263259410100978301855806542899731390725139559678771628734159076915270379758726761696405261064205525971763235632402978311229597150938726465276244866554184215749189277260321893829445768030264973858041254113703513013173499536699173055039119263184247556670681185023579893860560239064040510793082853789882211776217006097147820837582458523952620733183360464180985431982848433831439117366672359086829994044809694122463310764669230431326967854017280873970663171336371513037301702652629859745556344570005904453338501573097245420785742975924738490835825585299229967078377090490746375295669644710297473032447504659041277008253153747073115160597598419430636652262378809592133092496284277655929226741368585519465204724180811298689179313400928022825801832861824148458751372963334873995094692633443053809463064199462278863084323328085399018638754618220442782131045092433085730164673599751741019723159634771150953745337936026585951890690519676041105524389884121255919849843630207301574049640072512020924185994549818044474753365218180961357493484755429388816027767393986213132107998025523210872258783621250825969405221954466711434232841927588703841261415810803768115435382625219541154283189861019651338034281902266426296344111832268185799462817061737430674309819396798710675722582852149555463587438002795299640829401618043331744837261603017894231561634212490634692304991844279731182419399377668050557152711755201513475839701836921017991006729717814032047178171917763620074637495158216890896620501750716950050509458584478598464803174503831439637323793713555886344742453338914594541165502029691279253260991863173256197033451869049305009404171688359237413718441735679458735973041307361623294951935808927439443791581596994917464234812629687840898606322729062257421926733028556315897918627600911414562396647616053622390274670905434920166935546875336183242799862264145956686298904137307539373111756014251625172641991471019802387692498239298308467542266816812099533624725689254377662339535417169474512319727531687936954563400033844143153798886265072577453638221839320075956054608474890472097570784207818901942118796399940677173022125314195426655824621030227598704610495795348564633559875914628818399547044028524864849260827265669038419171326216664367658240171188200665691656306393412942681715855878712823883701032712665617855558878304054427797164899122023137315452463417508372885135146803818787356804098090738042708335065953508145963188007289006070429185278123382010606129657602134821401240849452367870232264131276749985389970676743965969967881725550517947269176367038368450335400121236732345706030218667138254111784541204595338551039479669007434415390174360295529827333881161598861737439779971446148347959177780157177181101695515827086834547019742937614580304203534428131030736768236928807159600257450878644871358437696636725388731632290547185599895990424859095457870886133390203108577662704843472679640651223808296919376580652111627592456749386088853528978192897350468389279246335200746135551409658439944929109956809974383036435238040243054521074094308233039976101272312476466020238375259747744201602338124377120807311974446724565062057084961088000687546371902003580969616940775319356933856961150482075797930343812373086114630604922440419315960417082515953385078442168736126021683321523575149447396521718563816072545657383817829940925598303740774358811176316988294143946227608222367135252640130118068457018720703474863967996208151569850320318788865899294273940933563180348259939199124590397252439076908927735676313099058715500289484581507854738241801510269894307794939972620734967622476914837623465446770830549488615928722235522750267228939315304388588479948225274783865402574175409033371284891767484526924888187328346275849680114424586748834661043199377057463857437099611417534313940781029312866593198497865051716940040442658082975812392301661303871286751440670625167156067119943954672762041643239405391059467489486609099040802863317273289761273335203713540280180519319241762023522867732637978486491028441462294819542219423602131422111665137515914154884082547001489453214380569034673263765933663693315777876703769402694264391836599867712265325000618045501536742872136637493805561839620407536926989863179046096784179992848995617502499953519212054076738413425085840151745179321866260232617290198919760099367999736729525616323305665292703384119694899781924900234404687448138846037281153342316358059374333118812727905433965733025258775280557470721048319229620179113893773645856820418954636179215659932673340258461150023079759973746231095377359841648472677930181186786029790101150233973783634079928363615251661066700313290013456089353489543752653498963538503333834536151147208639117243771107714955235304909937670168678278344454640887035403356508649290415080514709488131429800270494132697175537970005830048762632523096948337258175004968615863630517160761016840784550926689137643159283702096153201682703380735885226399015561136674861735105800000059277587771416124575409952560349404067911515106170608355759091516753201939458186431499007840516900843208756143162224457208933070476864889811660947767712068220920688979031093048228584787658027183719339975619820965527302573769688821164378636741212686383908404713990365985175158081928231023389791879688711016569323177072639312262487059395750426071578027438788664085419321209283712487938020652927491620544455980656103433070507777948565515414495473492505710514950353702193919277294448104711858145784880362384409822190614568262805096966998454977366564908301485310761345876683797842356015039624450605540665712161261379392766091529274668109227489443662518648089126195993621485226792252523890998039920099664552103094420445899991873964528365065671255637809913077090410621046312404734048542852615618481031863381283076081737320148409411244401986262720360648590503622257370413789639659019501531373138988627535538826598930997985961631474368793643041350429189958616776611955722833751632342513149022253749446259003747326159183618883869461077324945903998753324680383597254929128002713839409767295008986698520924046482162894880408812180561658343817839627261057890256358482592847928111265650181730342383764668761518263590796168632386433544582005486098801201693139817104039268141274735702591596001080141542260144201435012857187671296793252447504939004902062174808626780984406175235618801860435951634949932687947638100013604077215966396419853080341539555082367528945578736918738673341736668285946188277628681325770751373767398089193859980115235330542236850195320327723096569508719568075059174912097944416911155477556753974785404121688879853538566379006041496082171782534867750357909630166182312910436369237202521213808901989103790499907260167039859566490346224580499543819350277933147735253146427359550780800271624713958898408692151025941798515418037943196064684624909967324060556586184982722820948616971188521740022808661169907762994902705650896791151343804749152800440492907399741756156220137461923119371254024490973200820752550083039074272438653183097801955313186977015352539009892835689073909912773784927059517436694521391948510540195560693535046243225398996383331648406243230326034763775001447496939164435434370777001402158558567923719935520482442248903757031194231517650248143849359598859404606939194397216608265026877278030236710382427483940292493765212618564096844836073521562837572068595701427079555420047603030076274904584960609562534853275175223956634710959077166623077083264788252527241397213449932485022858218500568678438443653217279195225937584363757023432063103704521371799799322696262410789008717697354990228181120441198679221222626017190122234820423688869032503710438013826269251061202208871297906052619570199355295151967100896293981084783991846175626128235537323764304766956906979286283133305236961609088191150894385689669309683903471680330058060288425195287239020609254671136308468250883387561272103331243586543352424991879974515156389506787000445143893430855380261917352744575712904770969113693812578730216416540514218409218315140153363168371018658402483828917788576233389329879180808281905812874411422584780468650941421960499903689493086123524979115067029135152912948819923763908352699959463251265996202220103721674837120000257725113711055201208336587817462630839142620832705361108752296364749583808339395285434924847728582350951572826298419864848546733299553384320223464240602680021634130318749145595613013560512399393417109798257187437225831508521672258130447918005502699969832765640297400221994877129631099731745745696495335591773878620386100365893419753835859161295462465726272752128817484733115740045714721656126158790612920752474646149272428643682550481080368055202468505607715193089136621223171420697039388112358853991232727441482781850999443811175916693490804207212927800003535140502649827648807659077490399500204210882959798441955942015125788342522897185697048808038471348824827024682461848963909662425571192681406625442723959408926438563639653941216666163696745335643884362281083777962499433220943698167080012542249376834220050737247517540917374039688064025516473629282310740884549018414151780670452607121216752632047652680809834410130471204283415366870803615056168003979507142915324625232182634211950856847925003706511911841297814466623088008480372414943259343683766980746572822838027448335711771411762393593979769271283710189907514774743228466182805242698406479439873554421304938941265356296279093778031856753558409211043466487015757545479786323265061261624468113391730611022247849830860501349894203272326910871264377834744918774600179290178255498385686189622116495686426177129467852037989348717997625278299425208414406757573008569724266884364032028285630078097768132763252549527746831772670966038693861177107127936330600841019466969611356892642182114511969472736292368854752852237145531560432808117411325441584924245360748828478918144807683368246495096353608052013062394987186525277266385225997212937780317377041190131327970279977776621181093011719219107013483392488075904969041880885839908659771416150848617491772277780564154249476188913708339659926416856466639033622301476617211324324408717068695771541814949039237594642554366146111366361752513860635037686490323085352836662558955116453565707057040604261192369204741705078018095580392182839189577329003808853644051905174751366474169003911759454176047474251210315137847533732254915766895481375272986134527494697324633310202868926656418458413287590861734207483182337130405251826655715525444043587393001434850392137577938344914573170616462758409783654810495201137889462250263978728965910219618492634397476027271939381272366591956308662675089375482100996480373563251269973525727353960999640960846619658851503176735474491735308263830294387071673843536876728856881115400887420755920674617535992810070162023787369810127112619323720582309662290564193433754559321180014495052066985479868897177250936804462504513930292752529222017977600414432827631592808405938790457857857192613590203955134651005172723864260781393393818886207856379665268612925476019359858092215911684625229964998891921474342262515276316450102493903571340570438117609593025922196324905675049589471405047642639710704499284697785978076032565422834867612644955707464655403896348989045544804680634000706011620714424282649576151411113289189783370752807126250339579054933751043697918149588732318658538900310901053193644087557173519457318727316373678125049932896374837657577216214726534523177061820317448503372783036590987025355076845888038668109262421145126793970988665219737665513034449720007643845459506485192966889201440113873218916013877253228292017049116889689415055949033799728931854469581189129971885025282407366044237585371224542912771760205405108560573763052372913488444310118007776691041337426802573027971170130332895883923682128923485006739795616612261435031296036608924249288126575996938942242638854888943158116779888287455719209200257672197618033923884310655569988548479131935004838238441790741719887321982609070424372940441588517806086269729733339776777861095759459626655213999970648740754134866863366205491641036409485248588306115051513066595827738702511794271646283389762583006120526751515046397594559840157555729749008177468588070856285645134486190420796435200261629999175372769923956546045040860034670194839149155549034430666562942023614590515928908099841512466967565580926469260938538887053082343135268551273864013378393354235485420210466614569286574229695991404564957216973989091678454431005650580755146553763789138912991850329074046320442001432444071484160040118076183234845047911273618670664740272517968101373593970628498386884231473507210915913557132505481967992130525317542794491696816218140476078715347660799046461712391792225502675500439119206880557004132428861420548665830112774082740661148450089778339887471546873408360003713119156201578125531362910933791467718773862121558236717798084739284078739890654451745742561256946732227367481939555799470136005712157125840237600997897910674999029969097056344781112054132358894129124065203787295495683682642271550453772498181063614134446091441649841546154933157538540729174588912507862898922161761160716266059972516752026840466695537311379257895854797891930723001917612159109151331508551884070267601999163052771404506124321647609483251725573624054169215409999108835000194050840906579522828293268411616926972301581519650854643670408112479141096818913351220028017371138393215023595295991787668783985734176946831655488624606112761816466901472783843559540011247692383478222415678057925470526904745425291049723162063806810364250362019399084262268083566278816743750761643573040072944594470085191869443489355721180071081056086724265038297589390870243285062027883876563580123341158730629672759150007462548725733972032722886648018867368266691351899971360800367104580764130289522797308624429132015800506829747234217789037661458087227755717777691984627631603861327866345551464846078686128036480016934968721065426081393820507110473177513166529225287908828148947695234072932891289297355596111828209188179255938385728675987339118673868411544442902102428713966552939047001033749447419446082507277929966438837696142406956009344964074773336380644924696728675564068825904778379799386321225475886930735586259253849766756676429096701045091567443288593870336379722006946036241165194881940748308675060295606094497178639976408460432443055533720182191904670357785137893644030763006278770345439219898204914518290900163843927303592046752259554416709350916710383626184310526539077053662607668234808363026985978761393413407149077057134062468151361708369058298089440952617087648431541913185866592874626584435343118703505990030064428946280133045926609983938529718875491617219620595373771796985948840193180620964112654031105725408886247210962940397814126872211428882225246119120686977436130804657660225621229716537748206697233941948386380929994979857573714342467273194760641270920377238354276508604271334479151147578577373386398524430075729732063486367414023749288787872495223972325791856569492376696032136271435541100064573164577970327102403564810569641073236823511574797359229029066628323356352604952358280388324701407647003398067935800671573698073410879514990455659563052326190032517049157223265698710467986759204086651039411837197208947000366847251324039623906347732296578258369495157193219452604976784522979263349083071445131784742872736372243052328841759149134657422448645981247752005072950907934989470556759953697350746445526688437963020798106294250585603517956628075348635806334141780947261479809929131556031489176297802283788908390449383498435781390306021975508090308310680044023370736676732233062157304225161188712454393689397416653105352054453129107354159533089356107625918419257436779519474360885783180778496348171656675818190827789564729475072362975469084240182081561809584307221652907300861485232931974534933379560444942498291824711428239216226123670135755048508067416715424236750352965178737128104542270574348690993011317468984240976531471517999335639771787518784095009978754954181387052770820002960641209978465212455494009793342272007890284275688124559799077259148348412784763673372747341436054087956599666636753835134166799029858784983608033778721084150006520008407202187509356712555328469428458201111063690931004717626415026457898959202651525168410315051822969714470079969735887782763358376563934266109988836017215616896202668987844922206740310661971437557543111911905559831619937330761948147653451258791676887166712691079565200985948884871154452339740922820810511342722301916438483038150308978130327803349819436368969349458090083422417040766327816365983830825775823049131625983119897890416865948788053792492741744988547681310172952290788713223578346793842040315015925815129575548948834555688372022431017884119659294117816888600993142922002740450329336898341478511277454255369640147761647270967876392404838331750036265096701817687888157146996992885101841987296804620127046065461499723424507550300246698069862156223354929314801378900279012282240469138351141244628853407277724953844966996770060552282317353488956904357972560704514929483607498576556278575013056404235477147114783343056280725503188149692581952133746527677185203988515991597684097888402857978776613329023601514820857379895489463256100489072646233972823394440518960895484353882169055797121273701156849513097782871128325684289857477118286339515028130067511297399020236330128595157008827024052977863591208775217660785110398284339352122347610836918832771538655119244780182572340054237591629802726232147224096175139595898074061118632079096346253641137470515053281958805491766239886433963223431406193174367352114363497173195853099894945820440142398346326621054196800258297353041097981133058012841310082647335772377751603985498843071162973995608358172770907723079206193371750570023146660242583659362709449550920648628012060823790887799732485407680573776274244839606223215278407117783524775395306214459348471615899748224953451784959227021633573289885021162669971253754371761806627034792095035717329628340433141574629483666277941539637216863878769205062648445944396782713013723650494881539826069852312699803565479048307713114331384599921333823111309531186567163373113289783729299196393714021622843199704480230759038033793443349710603622709509972699157984612402679075579210013920196354665090774398796506109701386767850337308122572149340634855395608342708763544687324835746286619013961126135220257995850627901653983721641478340148333293260137999262959656151099437013875173928749201736292533926834905653832065809150883384974062530798892815978547847631386946314897978936126077473015893939414463430197859165929198304305497139269074240789737908897130301897728788753799806225692630375657035224898435903155154478983991481392703120267757950036092409842444898744348394117050382497833663491728260922554902808591808514932653126773800847215952688937756142263933655713274524062046620411623521800485335237561547361465107922821017521260079063209791700696982022747283295798493530298916702133456584920348352228719674701570181476078275654449479331283168764454312909047606961379784512167982597800396021341110143293515677889168612069342469503325740143241965248926127025817518972461926709998973612399080055599433349687541126178337897031139268621277335330810204363720469306305114838314976132258656290061594131954721487579099430811252651513694549039133530044766504873744228313556284227256353912764044631276721379530999531608337304160840360669657346015540822885608589957620615183151831092337824077545043275828267167841840347423921344458955752088865277074742410632962442087850749820753496350448788805525806049419452831684185086132784103860592681135129462240712091691236226439008829898451975569523074436384582789794127992351587278872728580078076382494912016479395754764736036173208878947518056511722344269974141531907286376951872425676211969521656594188011211546222272301125659412088073291363776882148103011469972077743316745276943161392064037513684376420927182911112299819396973533953276401795935735387804247664035530280813742321709501111713661111328626389877118317869034598848640987189800437109165427478889974418920896991171630286919412706270469506743582193660706412886842654437249273370732759294708032178451572782545385215004392865932855371402758693758766080806458839029645158265275957155620764888773276879734683138932684912311139032956099330564468597869707715455804583139057820493255715324021074883430997331594511294050959348438229080105044091893989038014393459106747439479590699463076991089372097420042776346752923954643912488454230632273851056977083866978067304808620143317960762569485743720843487266379555031601000738818104428096089146573315313265838372826158670836596200103525280041787412465094493083089723700468597638322209434635016368627659319763663824605241533040663918611680453101990378409801089476328559276716514116674873745080877525239062332368182393332594580758017723935935496890877848473600671365842706762082332734405291874182550565042939508485260116946958908053177204988224726693734903038544434084702562555503287370778695361698740906356613027697061614906498381277598498394874268358204336005047172426565115974855094162639247819404845134592320817247644063812920265647370183890449631340688209199828805314299843383214813964666647653377798416249121733304436400075107102008158288124073313185883602385309837313733579801670920941508272265434466306827680148922015112299278893405837660464014573506453012461780410389396919525716758823643108107981924852356486532880171873182964959573181861741198309482721244200016958863277260563792189885496607780745435437494995088580127012891971565314717728401505374043314817557677722446523898010965550909248440549945021041261335479711442356219315401041300090296105740356957402891561498227758672801819290626895865470418530440129066163333103041787077225615809406583341552432386397625750138981882515620928054142321446425438302871169298631196370511973802963013222916842356338644460212674517766180322188190040403221422701642961417897479114776004158516401421148366716910715033021526239766102448794970857435262212299868958109866583619994346559637982741996108076876237153180667342498103879210724052771680907982045412461188162642936723664328475218303208680671020716531724253961915978430788964142214298855436259804596504183971737385695669851329959113003916521200698499921173765270317313991735848414635316470699850216845569289374254463885466593042970991134525955656703590076322974596499084275216373640601760290198896994740385301397553194327192863675246704947989793988849992274349978666667129134726320390471733524501640360590621890816978465718583783859912635112422275031119644559322175382845207755088629931714265835299173950576547048807124981425316249233956424683114650314871559759160996916440930372737809964117044245013035923510707418779051938726002712851066327852164108542592117580242475979163028948922342841965567329335476793645266094314689279331163563050535015344674295169953645460313488833683017241347151869105632768310561001320769039131191427976464573506498983536569439923182345823903551293662626406791781037101782693568347690372825457142269272780866168244944675069577453881369673699733999851590394889627447442884362306078962395152560606556469379615789152158541888981079092479596989795725435868488261505631231525331172901094928879348202056630669738949260238497229030963375327930810345203505595733502868907383799457602653037821413134630844869572761579270978946504996019142835791843297702624492536747195555583400846508138974648307995232405717114281843238501685366560434230409494904637389066603460707325908830643751791109809444781715626144600869446554005880720855075700381259326147304702151381869449823162772894190834516915031947337566681368465120240230590488176126715453018022208041994449632297229443238964463808577913758920568490476119589304395503047042719796314709393183091113057537037825058009343089990748766193329532848128002351750542902572488206745275622093611800378010558318061778084970107915248277619290235441158391580502503125769207291021654411203464430083196762313283237981653942485302073505842204041981373637282508192539438832238482689697219949931624905373580082654775949491169058225181871130103399823781243130346014783806972509787443709336892042746812994638349007516473114916223132599245424797146175628125975399718105360529918581893501287916336199542007793262253122725394934395860586257026685954667457573193073756023646818794232287252198596352072021937603317734603270948825620673513405659304150404482031858602398312704052416861219511647555250958981151816302537192743111787977115378704234451428985422716562806173214226000115132688160697188611400468380486294842525605883051449929763019591650731979895361082827599009695616110204051699726653144696166332602529152100506289898149602504410139232353399242829629448868826078724493483194666274616951990988719880567376588922231971179265472231039000190830968541211532311068007794292085678166731826590402077576072966689786339275172001334544618713056788458036930195061549579018684121037028928140023779897052467437807552452473817568281206184846226882939204074346194904305481057215348862376880384913444193422575717833039595005327022194926849134272966621194425069099828536628175216097787713771534317544701102502624607877200344087207912428740356918856802736721348909291256367380064135426614804862714561259547723767594254519368750377188364841941541752458325249048393980052775571556417288197490965326360599643029429314736476259114049541193720907577262064014294548728913917843421514957987772860799580727465700433814696291113969547530259575415268370302355076204224643408146218871877366113412372349112328184817357542819787412927966939858562790253956671811093568418939650762945606012791416815320929657023820925177497850716122229959349052818006412847493935104597840249334778394090318780297880792055177706107853669639906938788185525067787933154550788675959208062683292760528926663928182228161809956314955792400731285018176588798488081399040746909908459860901772089875238063498301725440812041567832929503967358337270705332424376815725225410414987597724150171990494560617793156548585011068994226915746148304935925604899546509995379255133014740066409113310294098759514247453644972719820493573511145023888777716917606487874436939506807441135882247198265048613918309711845000791815777376978551315563584185475831417636569334323046820265144738999916110487254608431158774995433307641215736366122464322878108181408738927730877763686187247726473365254651547745156950527854819700634849226269063881696277053432725012705588397919123686319939042789185365010317762845488344455192572370404919755425483876773033739043121207777676203880281981462895075275808730509028745897853896777236656079393766972866539779085193779983587797755122300199112315112533589947822508836905829573827507213577049614800294289735832613384530092186032659486266801032843492791770342852010878182508717210754638398412547587814000950711852306603434778240602737860552798898582113516240336745822264810209048598211480057814007062133130989383593055375368328012702660405598194682821994061527914799592643623433122741055810191128358017612513354941392199548801398486162789162206339963794229045247058591630586564849961489960464259386883612761570106334353546517480153727615726943842991128840092615720619178117442462522137858078724044515349437083485093488139970781330907430089701793829481633793484637295273184574174637993367023038085267161748258157098932278635503383893519414293059310692462219808108044247489260965595862578946103576150371668551929320077694306008632731865897910522370013988242807936721288562911482093525536366392155744467164385552759936422987341481246517358374114747258946323980301967554491470715148147085891027865548942233396642118856545427436651862742873105121084186972859994017698396727139288257200389664849041574175465388757056086460768049028020847330892616475541293912149091353162338520621860921512989756178263887484248360301339642035055286098901219050016135140763629791244524262945207937729235542488813104972883097139999999317668842000645774867313920615794975278776543097927936072374543546638973814207637140488430463063415042472124458204243179587049790193858333430625419604152510172844223408228680011467615562957378828156495228084008298953266748273218668131233186746091519657209590821303718574206038324575876623485437463803006829619687036842894460575509305868843069350145760065966613109176390996248800559317149291297245662999360618964217784995841463078313181926101308612228056183741130227591690640550968253898850827576715251933341986035244280956245955225849237340842612441561034132147256512893690552445143119912651738613870269809158005065818931620762395833203047653623155128359194707744550881169796623761890212104372701772335112593459183353018330497360152252840294679839989105710640508613724460962354233142443964788764234720431522320118558869137632389600771079734639892875126497980063537186091806934757539587826755590134918028408912422857984563039868503365503817310219870607536104144723317300276374382761650558545256095930812365221590015840034502688608166655679395076263382068306055904608390555465101983560056377804560121759068869726778553444504226738153699704967314075733780577099012989010962760129099390836795667232006794992716655130415948635909714507267246667782873578189299689640899278993263330242330582762216494472690248467054686544293472366278749460081893713430499397279739216286728093240446552922972120947692988912923531943860817742533022759436048105149994395589582705783365191377407095755894974095864449008440708107879404310676263493918978049169255383233628592163275807059560648263211601447390121759489690537465405693902265004368795191163486486805653899628100421692919334479896669877830133549694169007887522716529153403501807410175126219264719069775699460013634482993266999262534522042063736069850132158704515204287457658227049295559634893647991256617661687748298834094665159864249166334336959966132133116063389668773009749168821652942007442614776387508998294585774955149604743764288913333773669538596293563687629894297518342772618795421372246775178019161124097701847320626866136428666236744073790827440496812129691583718278842057663420331533007976178429956774202333691823252152018192338424937907856005101637229243245007530780462613976418491183693995672551554905328199861410882666070906428410828435608069833175723145432996095863296799888857949486273300115574969106286270261640892900506156779329722596809347494953253055630008783475643042443736228691761337272436251265192304628604417778203679346391032598414724350067714236724910910012734226274066103293864210543632672596589742801547443751531714556123068802336350612846095952579105949702990640696657216580828187200703490568253998887742540216304915303678639324446780064622831177735802661350902571512497595722095152055911032818494966330772987297821195811625739146093227718181009385220657340204938177379871707135020888082972281784111933178897136160825099945315879042869820577771114506776861775081414448668488668261662631457141351210966750791350285261238294670275667320418863631625351344017396472326724977833596579620564047916547566213338843737673775228231082393400213725021432042877605328564260908122181973170898564030266238001754220801510431103708430256879706984649901928496362366580517008214664153238934647547315916218294617690033784120799380255534759716062308325767286627038942377145742928628556891480943252286392011573977288922954263737550040640258420560901788379724743630181491108966463640622676455672709595749099841312437823253481514739331568268861984401790905650035528095692411474298398274903368904044374377674244712114706961450715661111778071942634721698962703433192720695587764912440854625734948282520857774568898461002542304977554633916918809022921158779498492781102839645577352945172310783125160159764113589899301665139873243068229342027038486940900274159764812447296972487901574302514815046345876046031623426704053572126766147660368080259152622942107629171981353510675921899158826511243171786950823670904337459160618869722446208256111074830147186385685051404355081158803215169379567023876061557259047371131940468407448569988778654193434255768741162265228762330007745833921184435458644451690867019113564218026526154147423826289816103551237829122904501087302758031709817534658605346978237880903538727852214916527305854719369751147402020420186406886764901195085813916489253848880060658329955633536973995801226815279825449275591639492315552014840749702529988773045303588686223810988699441131713277603950291616670085559433219175586501517313332875311946065567548324104420443672250905875115884732437383346239967383861931064195695319524669162327356757135778323883680841871010836358972201179758200773221391645671193455795548047330761567614315112057870829513302970402143640294416157815183285027625427010293407943596384698756835906263147583964106124416966344900417708932462523053001790255734164669957789124170451612948027942701164064756725786947735048713987092529163463529751987157593762040764572911822596490536902924149006319248376933080223908976498646313678745945311382582930737223427807335278312305320885493527499714414067283357443952607370511094427058185354925135153606320485224591647565133559571816650543686934876949735852820242962109769014934532893965077965271741557449865475131218712381944282168781422996631578073971699904773267308529311676625531368872626672221974159822003861974685429923303433120508858646116829092776761535005313162882060659890606473267610402688464708397168690949320434254724621590405311036835214792321896720558337029641137424378598324406878339797778603015933118963995764715452755159770834197316948690624961606941898100440353512871333364299186920132999729176179301832402252844187599952170593622312982601009434743699181312377909929869909208396797992431480899008018411666359792229681035215910673044494273344916664767561286061219972625025577912126704433926506828687646066468861014788621384008998153026197420144956776041128024590070928430577865049089345090122031849629454364306972570348894262263425144727384752276531775588975985087328304492109633016883771304472565719082983373847896846078187560299190279839405355141642394257620077569632164320227984283121567094103600847063155289866732303211053361941039526598299491246788138367481574404160239983366614063055726395304472889080963592586177224155115339574489834312248502050188979097782438427782229398512674636039637967190800282427792992035260737510131665035625498797603644385673431984995091721639443179870546249099797585227199444787090053966478925775919441238838047854391732439550282797437515746048204286093900106149723765208147133908935494359775497001246639734073350510692209062693172149101115292716295896256139477632413093224150479000314003686874494676668232019594433112358236313874706476566104100175934729272594731084058620156097660644275267873279932110106532416522945556222318367994172844911054030330300747226417779306564802724250208578007666424159369601645465033205056279177080091379567755985406986892039509343634077193288287136926528311450672290541016224195044972725824378325864360813414016298410012235145413398984155298001699512550285468090484265527734882253774275247093798847450631998326590695577414553816288255686684844056047336810760256770103490820424949543736448329375832342786099757183555081562086141668422198264712391650861458717992913282133940379125213190157582969940764881864050768035553434433205662022803987620519558689843370300919766045163625989576235315656439931843926606925469865367891463528922967610718614110187467483866288977952603624312044877837982107101522681898887620291393187811694371739229738130665893697459460289043552079116857987063834957570953518211978851078268194614229321818253725475301471357353935522583792603147745036041323876044741921192282415074391569182572690579545798478903353642983092234297601760450562683914147024561926999530846149030016061559705980765581985786449532673163288086632063871886946335652560396431729519412831595857845620636771881415149751725319007784961882942673631121627828713095970984527644091782247278139134941512899100094951299490845301316673945177492291713320401093965897279566052494354859678311670377072101237540057644262446392703744918387153491180588907521459635475670256223030014679994391312584431948627170293387752007827170977052093581187957583798465172632978644656081071865033201980166323510732193093668860630052818028055029594871186842451204916242536658648827944626667351366967910026331242202751139754576498760536712853895758326877032528815827835118189593647774599619123745497749286401813302714875949568889422948956052763447447472879003012797092700057769412048188656401311658904033031839179515904648223814101560940607570448982728507566883585547970562653645509720022037815518691829368930183218748788350695914952192703728717750537435013918359764017583371696398249413995268542729189742529717722341194649774431614921414820946398439314748388664566714069053879202762779121551722081656547763438378945788435496498130233401228177933024611487628319610306868016268939044072680914371151013552187699839595224213252085427288204913644916286024663695016303810282748568547076489054910364969711489592611982274339157383858669110030702474012795082332238593343129335314508313430232214869764659467664018692656390331915565887872248983313061357420019416625121636327935950728140073337878928127462871581978962915756636868358637422715438799334165574870457628958645913526199633696636015887976897495254813076769061388859699389360320810075459230926274490937709794352225319635720624439248701172135331113773488627655904577648420533101291477062923080060151067031203478600731070197926375002627129094550361493920681352816856587401295671111292352135776970965085922706543613249244102161581640533101438507924292559321272780604696741537553153666222186128736612880382125010092842114627544953228974248768032441561527975830695659476268934502442250695355098823194825382026063786061181447763814953829266777516762963989158867301481707332872075897133702018566620424730721218336157353976512397247823186644424443992035085556253116939899731382602851749159847422989643092710028283731637880630960986092747881031925456588368774159105757833020388901228949857921093070865284396667478295363075628059276103959766930603498680701306470801313029786800027484736924679903378934423343893829137548394246268828457862768111425527101969211059751262178040761552515403999424350145516266731865911256247375842966932043137321356034227630097046868040289480090425357622270152454991738500652876282082844947232897746221406568486297729134548066316034469825947357775630516155614948782132847032242948928794866944339632944617976682845829101181007034735179487801179223988149144397875134741624875739095613153720413700455216803986883714081602335799444156069410887872638213020338971003799951016335970766613394378645499920248975123249851105355532553697260376806840431030369847624103275144680598482749833518164409364407426106383430813286821838706901670245370646215821240801205054280908116821317559413995529540463378505961526811666007067075116809993103232721917052235278686527253123744565398423714807131269908021498142710907984564962394793103632503932715690214485363939535570996392613413706355283694079855691675861926761861022206910882095003175906255558799044148134393616778698527542429084263952399371565755451748962785200622560015667895265912090638318373362423859988343853824694259664295833241907529342274995126034324233674418833943067302876654357385269541451369333105026535768322846766096520368870279739778370350703717962545742445754051163217724554798081067098055175850952219887619202813077517115927515082176311728768285936435665761256811451194170400407490128413898373142534396718266812187402333410312253279064275345860703992770823166989754655078646555358641595287411267944980475080107549571270721469935283375954060689577249791577530068912962309320095761486922310891028548610054472809101465309502976500108897380505624111300277162749787960668010985853622550375036459585607881915305682408232105734761977447375543574363118277047855678207547357917451284528128929233019603620021968440751077409910672529890205220867476141986504023102491528828879490997516843702839884536884782520558896085978948619912272272442100265425242273619170560112198481877265166850985299865208474531735375591823591271057777366205507409482064859408181593694790264152429184122421578891208191929961882775609985860356636359069252469914184678526388777441479165457023371479473170267499460134216425860667595778199718717717441990038089493463551331933761447158572603076896505991191136417412284829360835010695799059001055607831543748232868730973050111899644412652084907746022176789882108467590939734307859519683086062161338688570880778167957337604105574448328822232366477807112396773278471223644501383798549791847487817888463161170242845486972732738299039515633003689285102102258403151049763730937791859124236745802387383415150174785099316522331078376158978760354156846551124328666277952861718702198668722729283615467690868654416593353062170303791048698373076967563893515294705021327544469916031857051856641071504874103965531180032861058780780640824227321424748062293132720099791019392455082193819018527398366218293196302517133453360812214425341590512815206217840555621251598839345799236917942561607027127565305803012065391861511569671811860224827977457049153466749776919870317884868298775320079992936165622769638960056882530217749980510007109625239664545628488327967528937682725289847695637682766796989588542844392587731814232405154222624633448316487884689217073956997496650461487670803790811272839530625701046413181049118384828472000395344294369187418446927247657161189515737296321205618698034409480452322930151378661227404614838108275923511743550982307614238444892466256080744871547994332924733034827422941928239907697984711308147339657422595031486183468415935397364916358381312970245114734742564328808543011628160712121701195343840167941267824151917706344830344838674833986989553883378623735886837535581021400732452526139976974030200201773593723453393392429604637674022999917173295641451358496115485872715110679979756957211917967312588801233594921452126730768507784660210257263118067807123994165850414444351916218206832707476474435475243635021771387291682498141537447992130352632056642740258454244647829725298376398037073313933734685471907621467615547586944589919407940477286113125924470358104584665737832856247919013146502521873208118597727213601249805643545627251744772072290422368850306213090841086629924481875548787372314464977497853754738686708209265146960181002095391899409058463592927109528879182720553135023121127238958910123529150023735624589869606396223581858235055578139363040675432898604647448081971321996688757725326007369075801025710932151886714288496966744989210878815825441962285031021370219619431877579712157402076818481104388944498331027593512663197408447378850319542251638656224131697049369947514897426205058862349359968235667187965171052669636081131622960729293572368669774797043914178104859912581722777863144079459945374057369324254004890738784761504898658475003647173078144440427356694813250101911717321698784876328438857927180194526200592860132565258766696301089807006587842893680255395136048502311067314223880788293295568432487246776927085422947846905489063074643937315314094471341871409520467339087106627007029590295199334459189171914773019962964526064826708089247749395547240685581130894672545365630238747868483600538986398874434868790750940452174221175525138790488513920601465884456216623117871547230248298036478513626596285502629212096108886336975476876306256280576324993603533884882986531236838968854623516077694354809337149174551265036491906354283294208405553208385378205010028718224950259176349957221719851816336805125162718991883923341976824495693634570197209230919181128116157777228037711970974869137422592538940623672749222749700810195459657628608079773726256392684043473283384785616985256709589244725278213837738712630652707779501342844752394295538387062071776057301950104003718033873134796221525837482328739148834019951170592822353935226059976931803875631460123607550360688341366357697401230519531569025023622561793217578970910798711615056380763810966332580126936200941501263773993545062408401394076897055010505637306881857901604037504030909383091823544926013355251008099472794690497372937944399385070272306340260269283097750572015005342123181682509328551634273450762959462862755370780605288127283378133557246350324824458771328547582050937466024872006242475290408915413616124207405956140175062747442784512587186092166760491578272005949629255429142536506047953602057230555291194143611701340381552346006032186154273703080772848653877633102664805028786437970879599836883209363799688451420581754157675231566841090099568525256656416104842663107948440000584941149317485339348037870826337752806296147240435049361604787433279935226944658487830204686882754154122244111569569230195531919040276163419465486572236882452970287206996509533995486996117631819504286684113199173844023545629828739181134069279017769371151881718989437629033265009589650774875086109512990166037906393608903662143740013836026341808131085251804702815174904132919991692765083129783452359216256611911397695037409555580314780347401466891324971925115736096669642834218373926826818706507935745128274121509300978919378050601304152644585928863516605835455733912680722309478995670604173928240490289515734489914893405957631517905651797527663119949053988902048286930294978715236655527170958042060630898922223596055743804886270707184051263476566267030790257842554653730502623313184499380787870320108670760844081102139939353566955908037204241793541187400568746439796159028189476541138884065087545998920032186479089693965668696520820057714657854838530529382261313145734709405515923484366187264401865418548826237849010636243128813270568434764679920975224531630338019640845645288068045245244514515023896393130245843928566957040244484458891593611311421736056950943895102663835392570746590961968862694114890856239526201598988208353208260526438117750030793808328282276473406876174383785320062525104634885082729766594586420127973099308959760536895157309777115758940644131654585341913414125568426145774041651288120376572771524719801805290275674678871729994710368766953357266268121486919752957442259267040349953251970901482459396169125418992225081783127556771890973789355559372278508095288675107664776681281354353632282569676966346151087561548686976170871191396795507216568082916510301097775383319580594274470574804575043219564416749147895210339062621917727000858700849264604659384270173035731172918136416162634082740790339737327153707463051747743757439711415362201719367434995226224983918626729744241532859806287568737935564445153701275991479765360960759877396742833566193426992333767355423947286702972043221563329716805759917037595278862326092757358481959606682020955777380708573167172922055134108683295874449752129341302574328922106967385465737581846280565341133378804261294788480100297961397881692889165235338146188964952719386086816650995860476469366249004127595940272353168471286058908389766212203739753050715780089995145743521366230612412872216250225066796771675378330497201506327134065857975467786271144514302366374204159536912672649931358104743791049170937185486391746440406087888730362777821702935913610075536338257420530029580489289201510898458291012217130623915998675209017378261995299567291699447036295819089733067974287632431563313983441836332109878054522796417078475967838818023904948721286897119124895304965422485565384802146385731440819295156662860972003546305138139236434432412860953989337054700907195851562661424768681436522718964776562850114503133770823320744935703467688164703323588234893817723990181023619840223298141424465305673681566783887304237886628013059834875564823635001663290054390631014403395759445045968881705350986424869215707256912363475873874462175849876794078361436408749950440603094597818947396471392073356961168650970467748202433835950922434029654864466924661400143782338503537400433391551146236475207252866375888604857317097620142408592076501100133871894249694405847384153548849457684179768628337052088110628050286774169150401919643565116537365159392198572120484457575659406372252338663927798544648869768387219902915723324872462223085820222756363041208385454541941766959462014061617295943411184209844352714984839587615602820690846771732946915552724233000828416382671100782272719647417141115027975237181686790444256149987434050387016103949736529287737992458097032221628634003849734782031045672934678417888623550140336529939660801987188104081213785543757058008175045963078197530157543791791939334932503101048119294725446400273395212364204045434503012152315565186073556081913116660043267679901293696009618078309045877975895025538026777911900748950174074078072414745448750086563652659154854174954872577920480624854838237508273717538016633100303057269577017355975837041990660726200637906973383852709302005873525598676810865829446475304057505837946935172307217527686493680881551323807531911288716974048627458527260806925338295592853154147825780250913401421627723674853857559817054371965016199922388685039041057242862430336233060833860270184726011299904248281437782680336636273005523936225256044071865590622665142779715705797669575775027549597687157812272853888478787810144094990181802975806232911554847205509074253832600983734425971583268962052146792412314729685744106550837455681065201192947126649361601624685568250359779722972263763163902425524238379481448094029046586135744772539537168042166067823778146032873979085975264510226020037165106787733345973099932507233031862048655729190719487710960718498762384815363177870946716760118637093913702431192946271308546524869972348302095296718439697087462449170225039609548191599260603193736792057731394434676667137376839105656068888634523555770000919995198335315608769102525909269108933006194806616257416713888466494082393503336070535048870875787973120334022848271659502138288837734554436445193648021672329217580423545485560464070969960378113718052474995481278362163565100546619847608053873321877283390200178718128371348509910119399289075732819644166528359346307898402913600453531784221160410374042640007658265507849074813721299797392088755292167418199197675814797713012323517524588334805693715422216712484980648507224068590066759751127738005832321353700802219699379318827418499760520113845387489797755870200432767493660483280522929315977510583892708312911286012942953831588052167787216505740303778159462558539666080531903553775652520091153768670120816224372415830858884934288792255919701152107733349065525091688429543573336430750290149092157339119727592058684792839972652644858010592095804154362769869499470028414376677970761449050976440717068524829669513212716369857628730119153576191667023837004294807305829119598991811069654650087829937961362289569238089807126758816994391502753486607912724235123400605383338791312361459260469015193323305232351491918518717711046999810222966455470854163409293555114650803583650354776211963294919994145877266260083541364375891964450720271144172892526205209032825931260691009002448602323159247827905118743503835535974512909851457210605208769490048361126910123246199889859978105790867009831772529750954926896615495804853959622147140446022162217406469988447870971659785001748989169361397112510507564178503827065270497977083007459292522803248698088547191740847599947593782969088056008600529759054897365255028463120920730289994530752493932538757938055599372046365449211837575925928577195060781868298604685567983319837863040265853950610595312223503222561286392986405510653294624814276651654050910762230442313233860846211900242131557137078363527517763772246910293954549934193427303473400265898748185500724326417007247289666318139249797436841329349207324864987534580879171583231009944650526922594339653775731428900981155242629770830396752787253476073445721179931956339432351373137377013847909367453367346051542684656352180662116957270721059368364856235151293038294441235313360094209834781414297237436578711911887429366516130992069089448529892325669466143020121619385257995191338038411861938923677998684932469788436546226997156110270199742636165929500567494065339873740338814735824253224758892674385378098986178158062499857699618895984215859448240312795119798335067557896607451376608933177502595063301665703509721343522252376948131668308292920639123113750792040188711389598424276281048747994457633681552773672373405399550885913224156945209363946119277460981662907195563333031896410272930448276763774547538394005077563010512137574758946574863170528269292044797893005369944154946291163697998742249270303678007499524460019252794290451405434049622522070677241741445901277584930438441916947182446358945359393908307895233788038954338903592229889974445062985891544968134390288308303609166838400036951329341816037308042375738707173245623229304241097201898604530031738996205535781285444182823550617923204408998774129061899731287154216382164682779863542002691228146159742805120051929177922103365539900248915637486703699436121201993317058150848804580802833056463332885595257958852334047613745794534356768209092887939422286804778254854043467904645057712034985042777862667706888210427475487085258418313655594441206241954778069056730881878809491770389781399106624129108546071129649749615329342881802411192148268798924178713535818217620640619517713340538704940168172571209860418763679829155262210532820084775167363916224942063692016101618187879017163339349022220315704649589291566011182078033059720646993709586856267729201104389900059574547657449628553308475776624167508182259030682872750698784882572170084215853048692583175582254683109048691827797411310489291371663678129755520834319214997207746449445113910953534513889266939035433372679185149710866060713492329171429578207809633311128729980942204313428531222055532304746353215032472203944806821418433802655778777043033133916124276625590801411267227639738807135092948016572426573780367193657961980924056177948615228622176079974280610786246068533606400708397071145927423343740372737485271588496450442420388270039859268718785248212867398353405289289638946489391312898011195224571091644014393047425719033507982412995117647694851413181508263358673886961142533238448641359184547935127406486273380176207150104063342624383861959519177583403430874421295095211751903225953718993195008556694514977706164775298537963177889162809818221847934935800872679179866209528238898763806090222672128534831931704537254342220357460882500683634201829000243846826263039778118487191973689157162078124722568025861761446482305117219957393719892222491304113083854324683629364774654809626949116495607809685830806722975916834289023515879905698174038247121748028815052815039776468100661086278281194465439762281332044477238322604164024823807964753964523462583072571175959884875079629897912552095336958419893687718694712660449718799732737349189324501593245418621972925956432945513135020095593376532864796186386628124300921955725776217963945276943281780657183420299465205701794068087388667443842550360803204860691244829170924814787198675757418381547444642829490023445580419645839294738764010631116558215768313731361622629983287154602551970950768287327723220294438892951032186313365263912459463041463489418973175901388472580712807809760515039604043883748261085754901816412360538748930760340322903695936964929469451425781429152059536271856067258650430510369758726414089279125125012463231937512894986416952019757974654634330572566712179517157363123082401069274011957902137714544711776529495602883154062972056898898587666861184383519260797893773097720970633720939693411944254702944148329059833289533187377675594576610899519450421876822960548508989908934536854603525690084796723189723896975867314564452519869254072532764264117538015564163100126592345641903186168919982737870629740081513501467114602123159748285622430871088598991905517385790782664581508023082212061997230249105780995789624529761042262684808537167763715235518695883373348260220685653020477186052252325016538150614441647681501395751101286962465121412628089414515756904747917518253191553642510481739458496435891380096183485860886439884421298577726871054791235512375028337302016247309594761227138988205436616129566245832534267552065511833215646596327312598233162296589609553435495614171862412678187189468866651926836051543672288807031488963683564539028062013278995559593123273480990984951203272580614056057443563101020047340082332334531320625573964608751547245288539941719231695400664347890283973122960821448652398626763717842814035485946205430512289139877051510696482429050516708668812672312014969244709919345223052032744300767649731589477171436896638462262866897871690926118781255386127125212308864075866984306153337081754846010154149335662397749362052181117634175842169026325481168202310961691921920228696824507215059718211502883410313157564219401457887872797176411065628377960867134711778032244025125373598750096513521754847061114851799802471882373217303279862556084181344755881083537175090620838495675530384993938923571019963651341924925687546270707340659096057455464125144620654291720731864147949462700542057142024621631150422919647130188060705065269914451160142936315965278245433470945418594161114411857909968867207854997947468677871408836668304043147069480396422621871123611092174928478543603480559432757951647361905826280666188671910802416365180490245178896013255493864928903024320281256709916436738251298823486515026925744809368685550468198321753699020472699982978504500784100117373854948677002520688421295322598165524537514036425003017763816881198554486249838368281030174011204885129917747185461917497937063773342589312029895921845707049739873081485141510042690350849206673687799144325462097443996223858727217385902174809381744942931190329899673320499501207608846295991577285323204217684633856311316447875560550538144049023379604929496736980771183831649730394472272563666575399422917030713326007292072013106707857021531488618182465857645393551408724645812688054246040334138338171452022768442274749478282098113983993397823205128099769949941414703922788734629590056542573904600057344555286882325162688448301708408414170380056919801265302196925156395683548118037024860016033241653135564470216696515376105303682353215991601198053615624374430804891549087614593063280705439773758017351785298405002639185165888345779609621557705351744288527975573926714267988659452878397442255967952331485016749399208245727890201848989733556863251749420704613725724635511686392410265447620707522051223530556923842542262469082820075202593830192617815994390239132156736988127372591213126053130776062022129449829361877569784632417086625983447647068042514601256868794424455157791088216702384678561612672642998407249438460102519867189173850889113785398684761957511987405603368019341587705276496809521586501438451429876660723476584865151291103242794880816687101728573600352970077009926686733830512017337498316246318933902027112780458975424501814904900284506344242503786069533969397720697860673703729056743621068584343281464840001120414955668363546831283883766859316841167168394790999317218568271857384728653957544567441395299038322361399289853088618538835132645671929328660152781990812536771985012593298994461779414110256729478796569036323539636017631771704377350776687941192958586777104968111542216320223477055601741204684387993359267033892345178276917896278507654515848356670167857270809562394251797801810288005607344336420511144824956628611879504402723204789486957916701711294894589340460774671990916055333845617577656244818103981844322048969678307050004494702395001427148878025727431953499407001465579848669669405899947676539645037210136977205137248500093518010286579939391759930807723978357033120743500819002429349734065290554100970854037569511508468591803157031556814972708862629122825373903107921812347854724662590452711430340831345611367197089771291948096542408679744870482873775256443233211291254992673924476756666125407891548607779510146118514245894358959288471212606367747882925054672881195999033159705896221710430393233538212727552564813302927416351280543225086876674485235180383177565091066333061880028446542767128480254347804630061709457812724731997123516671195522949165033398308690653279847254644479604334913350912982647012006528314357169612590517362033338675487451251605821486751301819672555374176337926678403192972215799007796028305526403424207843181589719496197248239664087499067473861667197549271079660012824577002399811441883066650809939319990753519571645881385371393920048365192976243026331532819822418267733484413510364795252212456037414770100127183003825155734840713832128794443539501058978055708117314677733670854313950810047198859943224568688772998154000849719486345212981252933076062874525131055554197201101500459501276201275447689361984318444207712330812258435671167531808198994413970306906733984491787455809254192697282160881298323493847279127025785464911676874602828079458881264960697340083268243918893742912683680758085035658108798666330070502176158218252515579597476614657884368882714898680254653368428716875845984258844275746897860990118501828263974528873527790861754342615967759505477104704323920668734339623576883221651301838539392339347880682024694548580093614403134394478999260612022858351970753666483115962022485747086496092697797503547621456997058053831598488244157758581164220497804973862336305071306013509847049450670796896595007694961646710924561416272824573341370014343637727857336225457824573724438057572301273621064712826141679918675764891126577637344395061769520885707689448614892208064202668064661014452660452475482364854453628844982477150937005524672316180429659628178381874346490369425565450722755096280167302568420314431589434024654910031307890729021758774338782299166290580783224076694448344714768922115999735595085870415749833019946285546636613785465869198549179168980167105507141808269542188127465621202021971376495523081925934779360781323019857862927933483475372210491174098676926391721051802408882103706270703540624987561676469583175118504171823982646364758285579131483728967873319054939019034259082582995746552034967163858538691006775558309960737265652629685271917179358900768420075551948802103399245642689360524322401133799516798742937475985033820787770864538827243269319639246699012454835199326877139052936624299161362923709050006300467037102129937175298608591785164481166135189368957513966923241971500258602024042346697787732777278174740435981161010706342634751222989699874327188619535067787826371964130903353069819179744012150898566802274058714459591056573560299603681212828129853783171759479929689575492673450153302479356823774313850658707807327428570393080683465501455929612941340956390408192133839699154233144292114313557289001547326410951031661708289005237383050799055074912971339225314337619512303726551403229547632390032904346247345136944274242579024673176748019610437553058218480030888670975580300203944798592259512110142900450074820239305141870715820581704315643461613395208621842385657015020760887982966137778829611045538109903889295748719605216164863671958696195700683835338043418164250947218008599617682953197686315882324472986924600062986350649238673925782538027900344365792476272324883584727466893527167304470331395840846155715632853422861945853562234403535902808692220196996900684322003277151971391627528419750823665153489695597936275135741877925855323516615638382222481264500363965184258273245254643254298163592709275937939176872739841762606136340382594773080217636739033231692507620814650223047848633109368210074475180252445177621983028991274319554925867471689821313245854632220227037937013149040707460343332658552805947866676224565447602252566929472969933695714757042662118271912419452251756415194770528689817950925998424057377421386462334416726580255553236943228336896305571378256357397108647269076072386741424874225158558034532830555053251312328481561140034020990869298410749622181156518970684783084734279476008399862449137405764477050906950987748259528544245503972834945540133235392901484940250007189315626619008377219708488109159033590629482989172228522194344422727221236659748538766720071467310623686998596008328310293968784187836904361470125767383673819639516433573105735545685265716682349289340218211346221727109770149525244757339885462693164471436384296625600202983848742217124742692760446267367705620751469225244915429734539318881140860889625068886967028758540502117338574970887989691609025677187015852875860344484245981390335331530686028616934863449350141931227649775481476910189735515908060026107080314020901546195867548590676224388779824556494070500093048067539383862693004053021952966500889885655102236099419658733088736476476327940536877448297094113581707175447023337160663458639722396590250587543662006081001366556634387485876501469551917578671233851002301197527400425908374799394783291425360036534072469522701134279244242652622844691733896843429731424191377080363790782326403102263732120839866316281442575578910686920004265174170509458628854525661988864600866924305044674816951440367061744497795108994936915845708574708576992999411498604419150054328911323011097953348299698206521621849060614558891507523369597936307691723984499931022536478154342586071809595283003348074817865333019188244545885674780839287563948846828807021423977358510599527663674090580843600362190947011181672818492879705551427514244803754775436839735775838993981395071895405920171883472980484594376749739360665184258920668662124528016270830749944391623652768174319312025121056321242487976480822599097387591931909820300126108898491811619888002591639896230454409961539170364142632831927316506524676148801876215882416454683370343605568590065598046013001962324477874860291525764819605012852773599235610142117642827127035997673194722381165835428867871881725250392961674401013341021808357375859780685489308007359120463267716908526341413286651000623648103220351550508071130914120462354801944427898837028152212535328454036853640803644506514926830386229530727796909536894759213044048556819059245115582155343112578223050011721204029552852395193365545131191969086786683874017343139099277784147683729138231503504304382834280762654796797099221011375968182946306537693218733999732193085615004126426840652997095410848222655654838711899958317093469875193585526122322235400306649943902161686936959538341869103967381130394889581816964304772387136955839563033960354473549594103169437710318772962862274931043707835188323006994668067426723329121140095429033610009126746572895384195693022041362565631340051007707683888931709276089217452708559988300303924626357419883381732442314159866426422690244944806987162050599254712764324305136132570781091311627133785721977318811465243224049458625276892853375769372469311621938233457925407528496943491261585340600247613615344122695875653124085944345231333376371704578620523233668848535029768208376875545949547421885372254736995671462469517832531530197864254893944867820322912527097950883150842430921180239357722095987933299945652042579536921091356993580268490671600986920329129672122431012828561772785963975752274249498683543204413879255573584876646527766714689294111487308527127520453842865865262416348999791179026285870696553576917693293479767998174440357774673601328064912152433195957081894642805969940220097416461552597792428207832406247559802922247672268000494730632159514845849063060544493554411511447219508265072308505979664717221510626656151115516907411412686809293513876995176083889846625594673994360873023504398068746762125767075381407009690934119916559055441570766217773262036684979668263813129252152418835029558399823231259026813585260339230384368842667496008734455317281501031533528936595093590203966932772054073795767690076891429519950165896437964570477380285338348339073117092564921720624320719773734429912287597284820642135518310274804728074284530817947159157553519826467271202960344133024285970804876597499776244968165983199638062355564379434229835192667019685183332652528270115156970992507634354195943316395589542823980376427278165739306019207637215790301261150424451806766262753828119888621626010581794310260403909092375743703074793668738434405744235013582124422250749064880959842198811647671462409445598254943462804554356345404185813236274047086193105741395335602894149799384688028867737762189710030667162938853943343127434369206975303177671726265630912190482316625286789518992982143301073535208181469894091604846987172785473678751859209405393497151084975614905133319348357436523141109873223309208721605013337256727384865751573347914315728837191030286077283981339066356086413749558383108980623811064709690269256862194383224330649499454150905281393120275580651478286564443905910548617936440608067367444027343242553190694538035923172994714699088304231424234265285882375710654220286227648657881644932607781172460015037912850762791733367934376106361783422739934107523430843122380787404353599769625386286243477478405346899480592511513026604299757734744955798775571913234726720724614820635909480988655577202736461005613036502560203814465294692100316155987086482304242632727283974090440461373938404573079770813316331831031524311842185943961094716612666704959948207921026724277065913620038918528686836459533944729200572590618434358807789680146361718258871721977588288996577958813216004068534129634633279420905672692107885313942739093821761807584321574152776254499327605408134386010999651150272008411909100424071071618807008210163030598251410902861771060805547971992090514719865976116852716270860219526824415394482072385821295017622829872975163566702246365046380562838532623239256382794883006913951899473668502669591697678513821428517114757482290864929396368714685334928131035321101149765522917058233336354423954832236102065705311398495461139984827581778276712221335002851174651431598682222090939473897450720402695078320162637322169759603810472470365030934091655044825609091836940892989768097624681753022675426790491545267231434513817128511909384268978968141656539954163665755767939393754092302769708444734052356221353460483178045133745221756232338964672276235076882611005045096750442144673278043090561594811006920144271008130738513075604658647551255928624777772976680692060923293540253894700079374401884687591116529091356848750496223665847043153688055497039883178110179499037428097762030224565216298326985250066896987765331561584288932518772603812068838680377339388385030290146525298799193180328440673348211830625993791085057712650648030666328189304516168414441815495837972918815212440105791775022647761871288830207864658397876823540736617064607381726010245371805418589613077371315762914238647985640423702839211412736138487831799107782990292088814469442193262095578200992372496532767016017774299005809404675761818762631113081752642041142965874321687553018338820333584897177687530533715136857788278089990918632401555052461201973537813557341038929796586388987138354897380713932190939527816273990466944640807444153667101675297945724067360346936193105489526486951328860064841832665644214966604884734505885662377470943300133609953305175795166542676833035691209347599047525829220266545447234334747146922008684186172264626133908204651016161889416363844388875268579799124034772986739085108028594883048477812106960583594083126587270350745235179361467036244759790710044009463844196625619798849478216480799542584561132827309527648782452888031364671296147996731316903770893728418676298707469913153771626902242393644599682198160580219294440762308384671691341286426648516213587132527124415772186527147676962217011325153969991794414974366018493536479219740833118501025815992299881860097375738723567022934130785389719611433237363903116273730349507042196445256896926452293847084281179925107621686527391024619138228693880411938254640455423213132958746376553667695995369728207561487870842642086014045537531409475530811177911820842866865179751514875711144417987740682341135055654125948934365373166752552115811292711575673366032884982619834775257886393876440947234729841967733232614981662398210617216099934831537694273046067468854914610239854853510785156003772698223505469667340079385384071712839362628086833383165643320813624236199372628250166596358601409074562257909239055011967619843105265449651391197791289787849918266788712620788136328606041473831179843228015777604441653698529830994356533245430421759330811115391921709700553880066058173719684647823656798447063614931826994054801958163862688495342461678350939918436242029831777275124213424628069240073402152339983932778411547865372684250026977924038794442583186385581979862931773009327162340876704620040711458185800255141344601603200092981096009294171339604382213220639262251619663464877055935615200117359398991283642779532119454518012452075625630916868446291318754550694916878239169623966240084948300265752592285664687836282351837323897191457716742995577403285169524252684031361574900468524416350625047005114060353732362786988948329083425004264012900731071421525514797210760580982429594264462696260765487104916684087712003542740402158578761646672881518020900379778814190239059361371273143673683132626962006340297148709741099469516876860034116491686702167120823857255731983514768902030349586487721046603778560816508254839034186939655330931657654275548096592900632167693137605677302273632076049243335466630337721496442877896442534167623425396983643729156135888779180218702551919903087051146651709881744458955560678692824306221093916512057714031465192002664504416864162198240294271672443716339375823848322947789161031014439393116276119048765835286661664359565606754970683869883140257354734472858340267232966581758316482171109174063218110261002971679677340313932372141166394372735321182765567197813552947035236944267223606768159555532101084416295363044683489703807902815385022995518300929090961980455112156206102176604629338410815070367450400996566566437848901065153273005873657915303393799980501010703511699555183149524749602629554210286539958877106951709626955217790361065896162639927573776022357310236857330951445040045749255905177471141954507430545870412876562628165832713460622669613290216352068377438704390102404803475597354433388875816768517431836048089082801581678846817966396560111527955742797948938323899488355544375744340525882577118818845531668215562888487828306994764821758006355139623499918675491428481186927512128264293000154137563823142147842804713190867319850263219116536633368639694460073228096557913589603097657409546743250757972866977313561268565575949971755978849719044092224826909235352771433329351875392326404892156965902735817655623909332298556682585279086641388889811556089657951602341639749340926310294176928258111013456628111281543850494157394978209214605449544417724896263606057630081793847869263936525512770818138330804771165796700172447686159964369556029800159321626021257729698438592826129253839500919972500185733944764334658453806934573476163472140463373118493560128478782399653258368219124178279032115060431362814998324409458955535435643619911331106119834935604387492091399778080068656180192778153800198531194452882409332603918403514593454874150369449295690180150433046620175205898439394027228249751196866126425208824805581596151038786204212217329236701779084976291278054334105413690343890610943838913378435663887308550086150986476677395816419263588156755387858186885651382145797606035266479066965254378770412835076929057221607856098539093969227850114695050374751848114288146541150592603594397728403907956344856341049176882165536833101729919149406760784183898958969737923921210716979533044982627140850056107540954379285476355618388129937263660410681069417387568784020105009314707228866911099252129842968299239829611755324670568379118506538781756304610704678477070577955970404718525106151213336162517223521965993268972202488727570681475328498212736759219143764367890533564770167199476610822192521089677138232650393905864358558314210978561963738198800821322625488213454865701656564138837663643953158515514293281054017445197304465700762184321393982135841365814765396500429819031900419403745695425098120401067817095396111140208829915242532665186705228499969109225580558165572108548597783708640026246922537667111330125295861958702795035596475458852848647410912004018194542282084743604873378515722558890161780963704626903179170539393688026215485568693229149453051559024141630710209054773273167503140888670339675137283440586182410398367327827695525696808929388623957574603141711764280420319128254886577075440287047403462927719211704946854034752530958476821061018129337534823030273755277975146917496594292547262473719053419107892713212985991689084322997977695615903042572603259617681763013999373735340230443500484441978907382442837870775297058455381328145669912654413192836759011421524811450281991240904023752364899730266395671987414960025182741083197570033509516000146181033741497300702485375704819316011920605889631890475971788639037907399493420802317959839516533520995972786429807520557939876120956830579092465361619956156457959923993115852791680497975594063834091470794475460299339225094634860817725347835078789940479650859469559039583164461235394728018948588446648505970098382006190362166318787402197669637792961585714886706184668722858347197230892882814557561318948786830580111596934837135156994802367349520480195911228806683534562772381377993732189105626825060057031818218979676259849744995532734934347404786415693985517697363867471119143898705681249207891624966671639083633346697871282880941013396000489703348255354781669642566747368528761027659541875674045861692730901254024099403804127415950798339034113488755638689333228426201648817274245593004856809375517045981672753152668601512531086963479371099240396324680383672899568180793728368486951017757813789966363831421610727071290550680044909943882865634136122595032087410662399448809572936909423005000147956338870302468427173113211730495350287232914738953452557192120996619957107638676562547358738813264155748073377594494690376408008154318193618664459051900517524402266814057980387100405605576873822237531800144540399413524396458188052266063013787018259901973228679002567079563510071445703513771998858435447910556929722367420641623467722570869390404718411057624636835085939899003482272456412119857682647559244657270288583804770173830628620225862617945125801767295325322964457191759013050529323394314810726550048523157158287825173397056373029924090051318122147069200638773613330569079630301563337118830696939081582759657080792555581311388902447514540466422807313334655712996019058584784747624689974120658373073066148525021016926635083811797815061481079615543351113647912503161835607338075996216196802957479555338473412398128749515984260732867732258887892059007834720716319268043522833641824703046218031664219597863131068464869040599842238330813473397266120691690125044409203755277801627243114161045218207245206740280830072433429110909187515172863885321777741646900116069117945642647382829817284527137930147369069274798664058934930018376730334544890873677480127864273749439907359602979106565073309211725384944475895397795255705660367865585637041310956936915962441219437945587864615950715829799195717857962811372983829657551568060692045607703085295111977149374383773421429137569839446177890756804899204260858867971964189171196995869069623161264732991853261802852198076410587897751431852786854480912575601147785580904475221300576389473729657898949996990067007481537322314660523262011348706363874432218238480051719847169696393379433660890323345724155779708465533963245243128266142091503387078013873363046274988666812060121748660451659699238003823149836208876656983492813634402504617977805571998273781179586958702609360098221626315230662226776076269276307447179293230256521567800528201419961342393875310335719994850928220545307300643179438390107681330430524151920619681930469700889576843273406945323538752831702760630481199781692592812494394664973026382136731099721424515782361708583710832263846523570121531617446602557099377861763972733595199746203876484608309981086549508196039728529773904675658525956651461297514816042197010695891397194600851193654871368846484667805927684534760909414687530953207068026838995110957984348615000529051937241054921926958917316407579575584434570375051825140570281188897004625935710287748758862206240035585331211890420859146155621093145943080426300966562204074986556047928977509140069368600958741172612986871999341072562473680485427643923817188652854757550038194485387265472040409693940647691615413856934257951351462854321275816757349421645742707590579370078582801393035660044996935239534475012795129543188719352658954358970858848363616531524425788466501369396558131648782754764586804911813175160415993208097083515136783325568710638732343599359285386575148901862708862499801280858426192901751514486185799350729636893990782229832065117337847865384901465518421116567394836715817905305830667143710436038258388722227001114161804632102252657592734850360043592140424018947564645445026681240761019081990343256719322921831775143283005349652935110868736595945936685603941295436232044418851734698470266026419641225787056604026547579342519471850824404951166756200657693315293659650138191646813466453873910037301736008788330609067201032278019175150403475678213079717463496915111021595716778235507505450190856237732255080121945666706655560649535461695744668578773728676562472731993113699659871437678520192481568841394000011923972198089057360993151316772864772386899904825649117780613646583632483609560238377273078449314936607989246632740954529632517052622735752322827438483143363506359371804682530690304796634169432005846924684513812894404289959555818930419508440986975650844797952942119995515768536012299588885834025939820256806694154285887460842750264622732310356743770589334478213654020774973027731655446701016548854843286801140635462180180941262298077493668023044829133078766265628393184555468068315008405620549870276719770962463998593594259791256367655192452761630088424233882304579818376783629604385239011758630371979259736008297512239542210302994130248785309784356782077558526387809522846709688932741845330918939354903310765597578001298200054936262090880582157156172392008068956944958367461916626175322097585711818499979372954863060901841058694106441861175845384837430636137828707301739874700024223256549305110533469384596632632687943688435724240857011659948979498979741646653230831343316824452341700937428986907875590814923034371731633710680682790340864166899901979672901119848000840645158683529279580610407386325331121032393858619132257896721735611236539042203734293268582153708555857275464126335469109666159896781390164094597480524623787243058097711252180606814161581741944407490864760348442842213998609942085650723672678868536157073291888036388338220524809187913809947762462588012788682559270166609580933645081506726521894420490861490190148822683512649421490581200168242754918085567703147735312019968725929194246725835253557104498580498386194141909770689114390002311643700357219753412893801154098691471723716093943209157798739584366320529827438360202433203387443389735037265213046989577094751708128909065625944601304765921818682351381605101474739474406801318612917365395524097107139025493886654851727487448473132149884667327967196810561183524437397232971272001638173825410139216092687783987353275520262462992210343518996122723077583577038792804275246960955292882708352539744757212577788929600956537901069472179811278971965588468988860865054927891223933897649978846854625405207556799250924702531088089818679980801811459891028152229364392991524811621594835986994592319106656197959508569393050452260614806640113190809151674533609214291437099806136894487397174210960895915969069246100056871224353721670392383891710951481817580928326524546598118125736433304679685646741731036959692184921815893380012463635460903150572950383326652400605683824622141672567367442779651205159310008972763291422983923703384214199895490578559166145320689020594813840804424925803221928041898853004127873253349608383945385904349039583336920034380109398445169300181836631099696977966767426546435130940780496308746123034562010134876476267365978735776763475251320166966573350341855164367428606337391728080433383738772914147578465327367934686484015759071274666964431341774422730282325593529190901029653173381316338608472841763760387635229989879939980366709560786472264752823031511788027907345612060604830919992408224118435872628958194754433066214483701101331842484492870732180712970277482623339299670646996123544924886848610775351770147038828642209186145575628618217143948757944316846308452412293591797597906088131864289366531886670664966827249866400183099860013643521154220220647254587274774551808605122709371412124707838628652849476259091717814121129819084709014434572600010169661199247472123117518761269604308858254366967656112584253974341484618281814975518447069023200345107194514806299851473277271433152442601546639753836727531957525217305751786921708756221701577734559868639790005293204505927197536307049552041633509866620177488145194806303504584975293225497267459516168965505678763213772947356286508090406172546483124562768201256507220700805637565727055387787024211461066202592303169543298840556831223505206375555015775476382033344232276279547125979750657455234418289662384278132006628207761749049884328291788823423870967509507593624549564906804645981825254446034909787525680544616803042461394784909188463718506550992509149439051641529834323080013245527416885713964744613753578770062084286544987158842532020109051823163494164767806379656129230734992228918847411460035432047459447337779547644420189526927801914147212326675265312072019881653366438161164382784445990983435132072576184451261878369492905548992364506140028932151793319044437720175271035078805229762843463529988657875596344491033069669505333902417740624458495514343711016429160971978655428139653982310541337416082235906642807026495083165562648045141673802334120888980483967768537750091443937526414995472019287217665618085864961340575434696935073804316770812792356685044509675802759384832865288245992667838116430246118497468291238768873801840582354352786940433526813678263805273595673010185793089033319780687337296069069093000859808318292570940603238443855489830159560796468462877005890540085308527637826102706541139747263867062846812674444453182043917968871452425165885885849826822404842247255177387294677938624133222132768740353771946647061287890934015084620877780208644338625937169217839144917355235970232491887765523452300553169010387890838811513539348159940795336565084785122344795907488470753888391143606858160329097717407085044927150689309384200271035314989521118974011790786139689772113233740068971932607650117078429232281561273840997580290879403191060842876671121135877032463514855123220273422214419763274214291267688243171082665294490093773753487084620940863500261432479813418818813379409621414029892611269943494570583636744872360549293082819280476332273952397176165083227376466176184522176632046274251831492323538526631699779818345731844732510008365227170370714390978140359460699511806470144960064546972617244792348163617738902103667613726343853672098707013730066813996095384621788003201627743851428856614287537884224746028214749763869327549679527198010211015874486904177427460205147259409165940668486440873731832509095170593544421014125208250006926065419696267590181878248304772029670344610817656840342653054691459990175642634762638709226388458830352977964753749185080483787332036306897850334737137713513270702380617442432841917358827128680471652568489477403209002196222709863603583392781832171243231085470021395268545350031234468911505734129121938448569387770480223928704791454061370325403324016057104575777039019854035354382604893665700033410262005854153146934345724906058797652064501279104287513210869557790049845758979437991051459267669033957458664667658832639303588343860270364744637309473602119064268011550084362189712025999471271985538203073194030739936437243479611418117588416646181579440290404428942872598987284259126873869786911225261806630956715123805901206067712609851798943098054813921371302498087106677886883102164140638479702068827341756646021956080782579837695257024657868940880499369776952425459263584878263682926882833885335895850721376673414622667516590477861369761446656089901116750434576184404555118474127765064072832880437446916128095012458655635138780524271211671889072045579850508452072818092768891975313799952534900343862663548012283652325724684181090451289299908897071987650429369129560390015106937167030765278019764128021381350865881218304733144424759918863083627278579276659000852913418425635792011876682685758304652318695312880164661105082684826544576172244855082635223397679756923045568482845703303828442747272346204889158819224818878871016681756463461036013148643685113916183854331625430783520024020862938567223183936698104771753319742596090522793236530000065804202701225539451082241879513652620161611961513747551814336086634394661705380462007583233964293366885685419570924934992335282843619410522216676816790766527523407992169683393269110095544830118753437278109065260796566935999049538659193600258575481314066399971845110619389630901859399232924366202182887220436671717316147420399664233950714726917978076271449376611314986850471383027455580082308118011871597718267031039205083320534769752739089504184817117117973538824843845553859256632842691712074499636947929106980813100160785403129972379086737012656496981058855086548148559743239719427448395170947470158331096037020675692502330984790297898038429703388588450091029940185895561567325358746842085486095066104214274443412905564826159418621426796526528544638391703615488308246102504724590916416609851239781364993303992041417347842200037873545468847478831067847160645760950787682402417587086770384920084874593935005669664283319778689573480417982489075592641006193527321292854162539108266524308139077775873706781020611195484739355071711094325738913591446645160178989343640262032686254246278681414772719068625293191812905870653406476348003326867216301432884318148892615394896756443555666411781663580422558448436226395545538821959597860053801368920406350904110593195162534622290746473345739187146910719672164315596191009149970340407047748081119223661414927554212246339123234527853151992410718733428347720596452540906510295997813711119171234211437567328760111553025005562508962672378946839092838757092787126651003691487413246468281115105992161773396172749913105240990173206027817031396913826102956062347061936499742156319508397263275307975926726411021463661483997226841904079318991314174102183945041844365712669129664654738204815378690694198584664462346912665973060979482516075355355103395291361452114695638892575422427368306729757906516499905789503318825000207873499818592394652175759918910276603418986047005242263825511043188923949326524574335592340802646793991684430418728941150206748730891555935954175613862232497763743022556827017125649482387889259000871457146054586958692768094039945350428070899393203766514296568497497249831004634317214090590228280028373531865014675755057247009766345435681742998446336698444694122348015739117781066943931397675511202109531888071360598244239802604526056287650666836700255429983763349714696119932222354126242614686566758927542057079454522411779837019786838703121185068449988619339654957791266206579348042280835065432336070139314463239515658424975590752657483440312248281066111032375909099684721801760274383281869873740436640214961141976794732364359739314725764554326616602201687960988775660616695983360597082784788545388232830966560633694868770843818131240187135773104445719494143386514881831296810620572960813613922605674322788640886751845398386763564938412069963307712126119981380783746947499473585240111607554879567011702020957042027140903050479599980771560568468404006927877919954535968850913435023753698691848831529418377014181833974696659820785368404752896968747391142886302697380197256155199859354375617633387596829534231182945796318174037644302214330983405918028186430372919138933317282716096025009018884178072899989041423156230329057329905674823473673213015756605073310381614315333930479364499370995499850045922837896302177276872397749376180124336466703257305767723774179770986889727845490097125655155604461635235701011449686714126021708790833568374646097054283314097107518794617237583705679513831619735834256141032828993093526412990845301213402283367371777531609479501230162909966338446121614606978339637890038713415234822456570707309631604651392567037745430472609409672204811577414645431522230516210670385900711201736212499815569278345791307269996857399020317517491428262797277097335470717392667384845296260542459717825243012251335980885602824344671544343940540731666563854665841271563266870203454748695093989093512908362141892487912789308546054720028043456941189990352327643540279587718003055859605561584970602609699393673295902913115699514227382869680405472877804612378630081554745154068417537254489543991526496540971473823716642985149842316499987495860806905056463383912277328770697000480099516606426271338462436938539958805271747614035138570268351921561652119505772604714759446802065061117517286763490344355975730263605887125896813150637996162005591963867351947776633412012411031324440893659554294667370114880979705458874229309648502172704262761096294129115536439074265492954848232597889095470101805837100352220517712121171967882011186685230391747854880428625868993974417517408202962497558078265131158189754942091848679100112334749237104041251867738301479659108811592249876955125371287456436094977110206686600144372131844034886481386182594455301119322608084473921173506154395619167083103733738022664708529527069108547938819314239989655579346610847914775953201339460183189400216581481937958409985160391935322846656428955674573336885453413559156972014559219540561504893018340393218914113724336819630739259176247137887988571608307618982636644881606926818226508197020543200446668987706970509143561782139375494385506088994855116363028977300860449271090452271829803832556043407220134052765754972896461189084010138622869602359789630770626922644092222040835107144581056985396529276765523953342208374379435435759401076173104116818848468370486363698850092919367165500248482234242871645792792014855261688467965023241657198728820588704076230856856981684991657589000569750227325832635613124806863751828316672095690349802314559217510360226175085928026341976162073312246861721520567790482838305357924467512384028147589583232662392564108321298334963555598546798623141357984340599459087557457872281050403186863833862985018970406813460277707685957457479428245565247084388342022153942157711565254346853386217694114049043483332762452155627500856904620142109484276265563240941697810324325867043608152789966850774460443678227155562955493120215572299168457113627320784151613356869909244737467094085667660609983339575004604129019459376353879867769337297791850967887027694818215023864111496366888302575588193477382411587200337946172119837916087787061820484251832689439663572469135359957269653213110092441404355137600907676247231986363545378719556706977630270741670532777370043456054657944969747464700987472532424046451984911058158536874912145039485563170812322544245517218332626459826724205843971612995618228952546586361814049211459787247074805929648327274035255100517446588334905464260537244234860141197677067064376427218153293856086805237195786002885059606193106573897205641960001195094854352327113892178950562678690839997383529899328837050875010122164999730892443417373973245405138453694408325025629322332796933442674371719544274744793595312770445340495505060819226909976842676746237842531517367041599326793275269244631980348303672807975776052932087944848562672886412552024598936853347360388695175324051593733136795042484279982532894051519456869083238588950737359531084287009324749523158656571969812461608386610993182648692709652886808671581883006944818309574350318392832418420837186536009785971674045677645917929742097962312950001708182890236801519397010984405636484391681888825011023963992901508734419951097142548977458182798865490459426107868643900401800783575810865528290134793436618496836277387041890465053069659445286713727369898599521761504628932479282847640123664015186981007576017675324290573502120027719352064322946788971836612837929719682490174103922545304717303599617661973411062113708932223117459211790139444870471398692661710506988222978404888992920745425338013386637870443720798720260247842134513091522757837659400695544877851683220682765437250622165532766314520682325695613775798777964910816315098616028752618348210493246520757342559826918093760867127101383760134193134868709024924016093044527070575338671814409993041418832420461096706597116468205050149109132476617674320056621127020617893560537157189374852949238949820502082368976418552608436175404994534596331741241251806439849480847586373521025745697850953978273251423018707907178523213593342399588198001942945241939279975618065908309192701175977275539140917206304099288690391418821704355249009622239346495487270919168862428197486512112772282467923996430400327699255113283088353868876586829480981933810151125378975682533170152062956055155733930448966831267695759703812689670244873203405536531645337087771099347880616002605927457585959460024488679504401503120781617482987648806190221699389250838602785877811731733541681088572166874643669634513356783147490838974901173780836214527315692165738938717595655412416417859876006370055204961755022246433263170823209676280765599601708606649829965243988357172164059498178509596354166140758576000291682735285862697288606399666070492125656951324347078584368443447442895059449341434713903637282227474745253319183806974447915853172940682642009841754184697403855940774023450041770457394847685583155319416153887440567213624041325738090681396204064114447438982874669676692325512112657869173936499463322312186398681888550150090839053493426138834894533809185320016920458364102451919467686114116429686418641480747294094670574558479873201298841133361409141031063981924800519865282579758570091576344512357129117686771559011980884373352142005120890323957420051647864336580714662476617256825605854219396050143286319795900605892817951383243119480433018930555603317486437439103685609007405664109006375003575106651291534432235901208904153202609744039153301077623211571383628772303692806470119770882942461307636035264762912736592703815521385657709489843049665129178332452592380738270943188295471198126260073527928217132637904103290903531046530727233983926853254710626446519116805462680430013240427349076148520068752439932838495734520290902968688683471593005709825939664087156970613309245727554000122751450054825635890438824519085409415124903358424752954120284719547504847239050190951298284540005897708046283227689451783926353688448253394417308689894624918442280043510791394535408849659424042322119612354678438215042044239681458299700172859635750221684153518435678753288237296808389414107647275108172488489706855063725143294764254316670256652468130118074762276469945941937079860305328744059832909810260937191751003814967673435887990635722241140259851292914795717598177726334208133074422352061866866798532086641588279152954740779217107048775154436741193669069989126553884077543983053921702270645601401255519867211474630473274343932890507029019354016733411056519730564318841781829137573981024225754685912326698447863231438363403889610452336832197826755630407670371577296390611649798716239127662382673048812886449567073669012330420885651686344439161084025596606610413352213700223538317149632214899871836917218933902892323275683802116878922637450831939466799307397564198325330647264413100654387456239391797086087481779731019297537376133638052932172249541462238324416537199470257479835068250140014434147299676292055681637217012087808944175364578511357265431350470290211176917559458850860842443219157399419298472622587962669774291674928501288397520110841672525212240161579473017002055218249404054636001207430016180532797767646473095494705701257205523292069260225806167179891609744467696483583224420706861243195269844655723913133164316201183666629624392979019682913677377412977887805028017124818582583458272617693945427797312801793546025440510445247021423910008303257932246447422913490073372705465327532393667894797134934016088868616135564786049188568205190721346341972362373167041268534863174428613870487101522323029844849097378464440551043520161113096402336470521129092931681293014622689987919077459343474875466061649071365929327207790504554386393846872565934004458481758293437165887573935629905341043948897366371835972455531173038769512408015958437712056600417220348104753727910985019517493102187051266703433100701786661763886337794357798793266313693399003278173369939462302555031091635266159331963337041958474573257073539658875566036796018822839303690373652538064636894330280578225494027316758695944801926724294881408045631326856298278220635138279017722737196474249424931534794767974419674649777694804423720575839021575912397246126082087236476376557778990213841056008936040974036805243168670290519471267434944580823444170992672384025743974062108827550939034620201353810909993471577801377187679071010253454907018665467999667460844522685441938412065373105211666497824686957102568794552491725785486479123317905298163556608350185681537095570598636067238406530620194545483731353513807961022455808832295915322624050647909457036890497493777097230819053950923504841122731533465485580882607134523725825465702231013380076341803167659184838211380262503623351812347066381334227412910756243262297464092418390599998103249137130910383534457711175321617788353086315768717257993951688615222222758943533864749511955785243611945424440886325224681055406145540824592860962988328077991380699880491337896237691503367318489807619624521479810278624723343293227263548959838282853171103540878539346507777212604015149565666228940556249227295988719043275108213688197663551826233571622254214730192253823145995312098934678742514025127824363129854402780883629069130905121471139135737104157624129682749149977066450333424171991401162037442985534417620483430498317654039047044756655106859029589289814009300723942441780741414931395644994126373708018122458468451353833828243413743575089126505417488531667668535856522322618119544144971707076842803989729183896864077351726999560652216639992016856347450868300843604054377624606443064156929559402139919051044931773553155204250480302786854830881977146284518111194147738393044260907040614766224029243883019533750005656139200477287339671536976296525360789242572002384242005773639743136032739565988612494223108735048505770613940172188642341959090602708342809988787841737091703909960508484724249823909642996543099583579864176843444280455460479991308097018789043585328003190926736283772771100062162971137861000908136257847516945559649296487328349964464472712558940535049501378708003607660002325216086824869737573902551690826313329671152910157707378935885835765510782574190816439623769306721624385095896469478339354600974420579916768883922708133681074692637794493462118336099669486744216780375939356127580376582178773609204312782961745821120851200984399566376125660496411868798104062753445414545500410552991997001060043305498899737209899180949159292679216181158488599484320658296763379149579145194766791351365696992299340009543379028501461416354629444715512937273200983425981128822839264441252061857845525230163785471432642568069566024887124533227765497140748733944531586470404449530062970531767329669452078281667651236782109469055995191382586034569152546532473135618138622208554686519736641612676812300880719024097539999297328174705616146309907661694286296971829707811019925953552937614783346160964164370189703927394301986663894670138168829902881518544041038397756706383532953037732489602310015025732799493627393613255197341743414414620143121218437653772193054971273392515502076855805057789882026777526989976347334233370792318398364941079657658446812409731936863499661701034653440510131190013506266979578784833507754372458812953373673761706336342784522069351336662502731431191739467049103907219605747088929154402924915424843548552234050570649034968582329314429913534978878649869268170116092832907712205782983139433587494238090961076734152404913524287352983702013659684036543317873853578761053167628442397794414480813728099123541475417346734968865702507375841629403048831584892558542191686038387856493655621766997610649547117544099116988677986134210414759344198285642441603668483260410440887120609217285201134230681921435659405066592526250546091054649024561105231324341063044489307619704944736129242358906469729034446942836499645328609604042433853940749995616653794798637060019547214823341593646897249288158572854524735805997831046023250434633297394496225361299345833013697698612496417126779571190927683308920038751777520886283624014417305994402957111750199926675715936566374481828480284082213445276763979295962688282870848403210263846157944342308103833073261837289769939570059511905870794284885843378837497254009509410347124973120105026687278664372808430331157006035203592509274413301175354879264836993244851254987262556487939118091085685649067333513802263048020189175864098010543197258346551444878240986455539884776881881645805750275681282196164306147643831753436682837920361887774279204812252817985561110260184248900938315568295658654689261653315924309312090554151978233874839900969729385910477318500255385812213307148600579616220190827722473261841869617472934381029760495667323612991707097486056214808282822355948764929747868049142044546700121947319896985152504455411976314863092782979688756357834343112962446978328502822851724474001049840715114989288629908278261488128671718363080124685496078637335161189835248998968292704154951034253847658811101482649878542940699756525842068548968911380236277348660664314763717792090393282119555216825226051522737987460790563139087697894213998039568834949946975364913347487352556394629054243902538669256587747983947721064662752390063368590440846372314486317330690834434739311078141727007663606672362636052497483266006480635942323295013587657909340086662503333539810827632166765655764671831605973854742796610334079369227085762413252346299728723862934393590268426104052748679382960682868563361047618891228184374057027724560566618338714557559562550572349593085155984951486126506846928649124145676456253499755930580416265861970040807664056448231645877840538314293733560224523753864618440293093255652742957946034249336484163317843948457677923881630331547775712093716983825059851447769602722701175509178408220305866126996351248612181515989872660476905119738498994139032710806932453099364965172228759111878447802443844316551040385409536563647430841639270418415011596201362217622216585449319863452966652904066182804999710859575227252941298720436157104268543515662917566132187840610042549127405302852307179802015169824746436126950206780315064074982468947341205726541075683514876201597734035921450379957622777965127653848872631637965682917946486753320230549700828895865821514265180746277518955958723039561574704543412684827748433961904401586886312757049054918071315846892633309651863014094959864805252169587178994941723409766820625266433229389454151983540523253675567327884236977391589004238768200977195145127418090345461007468967691708960156332716592870942373083890957573384749580174670363047976163175846187078924956048434318929533962358875233534548834744044550337070690470406264363571050747479826197607220767348743700665477231740742524443150027120095425123426735489023188968482784850931368178840191625179437740224705283539867383110808984225411581674627346893272621280870397179209306100990338124213976211096777722192849851912132563234094118968579158299321652500070570452991104271683296361026806515360701819129781222114641733313570505584428687773695691123743250841935587000689314076745963590695189893394171575906853438286756321417115100344783761843677587172850870186929420908177587306857428027375660102126014577357848352085249507998043215646080538003134052496145187483903380129402132239705480983718728631850355208830346764359083567526720983317732580960903391854437249797357876471567725271571520548969852393820759159740408070163678598235061812345479808134338514875066391870966149231036740198534606282971860608392945777742501338896963911574273154673785703446820811284086486997576707052466945702853908732614207023041468476831418179408347623512627417341713076920623371854691426169986496965654398902632843674868153919392933656458466903616131152984082085709211712849356602270604429771012725977998018097697476559798295667247481245437731728115671987693186348641952218868613357050815048653192700162451539077827074087316245843229829904987545955802564255860105826220752178253688688956111880052530763479595352958254656601855403614593528446284553075566329292991810609177100101434608789143913350791427566463504519572445125798028743677271260987096839936299174137901405504480719680996999225561900739595667270857745987306292995473901355415842610214388606236292936889447012740900523237053474813519658207649708418416232750914426909926220068448033675380481536852028236722920694051779167341121023211953177144845952351942292510445306703295851563563907348544424648577008250317707707561217843140755062946420288493731826047833323585596192750676308981945128401901613602647197911001771166226884493388454578936212357670129486984728312648731316297843063020889770274929477938075822906018143100288004850276670711834294208206677544651286267770143181089267131971264732525769275649749044256405811175944162430219412215812779852842989583431525399462725962858613209391451382758288410564724325003928217952316050667209013576809562622200738330882648137009168835982401827703487989624574173608262672960455837965969023315936103913692255430415267500398593598678189252374790454740826792633617050879302739769147465333480814045028188944631346718389785525584711429696833971460155742047029288719035735558668570000240607916957132978190812191909220502108320286129005598095827048994297298666019291602605633056707199851681930594601979335226928360733996777819010533693090902378075640746159556999591120195842063661507445203423311310123795044935371724598996091746295638643600012960192608771898305675165391740754069943350819614774924348187122356668184481851415566503086066891649621257534785656993849232372208030262461883445631945622998375539002562929901273168087268483982524153315898898706466794470756043588926116151363434566896430178338649831297874581028460148881680399575393588157893441007702344078135234246851106617998005218498302916144084369036992734365390488678960581732792429059733716180230636547558506832253192842756256887682124365170170532157523411314998122332557314634120954754104799184685392722614455406913568412828233578055506782181054484970218482764144244840946398014679125048100214545448948575254290061227566085311143996796254850137090998913209490881866743707624777291330484661491866952717681431056631720007409063797870261490157490201553369691049990199486460675425959914085961625758251173974266887890412023045120218704237717460307618107601528346711461760149034645177103559982399326175531052664053421596096803117052788384150438785802307972188959263258377347788400250759324198545964745146455459674237343557454539132299303696080904046687555404167098295082253325409274810198304238220322270207597272412818618008888482527835621392795009425681320828485373158509381471629806338736753030970160740947203135784392358688507152217970883271136836476353641265027210541225804945129506591759897734984828043731531563075313535803313300744457231842808021151236279756578223182547641499315820954270252562297899689462032861659886249204769202068451618317076448018051708225711708713160535903934432717803474344853978577669351166858562701142178408851851983037261735074451470460609517466926921270547029736390147297424774546800202938637391869459264401736013221720723113727902526277595678622556505614738733650113535617600015871393696766591022804785172902691169520733017992562219127611956437875069264317711497999974607092241554293914913020310690907159166228239769806932471526913380161637967850162224339885438325516065264286349532160787890611333451228923355502356413630207000198886962055212656077106917482035402552094370611953582087156577509820664338142751606846597724451243518183496958085815249199021724208403223404304170516429862058981250503263380042294163119666370126708070872854487956404557999364971857379787521746049966872831467383659731269561636745797501657486675682731388596048296430262713503859405609783047093646088973526794477064076175190983464189579392651532305895997460549928575194554010251927905954708300181091910355301788033803123161034981005060772774061342799177672915241549394405927285199017327931852221275001062995863943043215439172697350886514415783533515012533608609284795982262603459329382205531801044573018204054720930459793872899730719682920004451557288421591001415047125675787350467267944255189098928924932603526091602299032158211631306430319537043342893578400816869911123954498606166452023999724466706849202045910451480149470836855332925733927136456995936123576066085110060320178041613134750211468101894006535812439807774317211871421396301202670391253627859065126771338078662810711940815686712022406848376856457179481432753898802947753522100273598384189139580228659721165709058744634234717760712187518136375213258542804068009572048674705310553878846549308501335746176848251241677650746319966757974022451397595742232258155844427906108694672684599039732119255672614253652107767282654854028996707295122279070882821326122187286137900563453256399051901816768073251480580161231622653753253430718426825370820742829115164074158528354805137269461546350378891292749243592619917652894454059338502488249985257372847124851602094050051309013589094642589335215885042725478537798136603574110181097750601680190950996608457329413724864571668842294084032618990507274884316441454212549508665707441957860078456421706615266869286273570641899993609290992349197924574849900883690194206546186270111837574655487327302371736375299641358282340761478122278912765631216898188538729662231194024744605394724125273854128062153843583009223431044277067487991618496105487321765262291862132900872443195210739389105754100876265571859752285643511658243066946086957169488536574903321391521143851652858392014334210290869276100065593463189683746693437109324251794075636231736409082350245455341529385700328918402234354071236693416281636566821539057947932135445298479247125991267681529388449466764117018889648990524245566757683109834904863541006071427954892048585083137202449901891579130583303148339673402029464797607410829011621546595302541927118493100624720757164300733220172853268452644009572353945714599319797245640463200787655023402933168060586523552743986141687691940739720356783253417988335223903125530040198085660773319542561738965310633856843409037175143995046529037845491407089838785012572480147357770385609503076494916828058861092924975062645351144687550343977288432968792186789092719582514999845497162369615020549183142169799631876142247424019374031876874175462694971112230004087109301019715292398118817976010027240214068199361566514015796076865766167724603171538851746455443031662917351075125702505164362635058442323815621693712349432983944208462298333813250495424080545564578863899138915239713797117515112295487629705566453598964837203505253809669216481713323718020881850206850398571208714972829212469154832482486906916424246114889726406103168802393635702686561718741833445305528914428057697778886250037351319779441772568092914294085374768906532376674951236751070672154359310250795773453943957904958455162680107032412368277475521441726750805444495764746898549265710775324843156598839701238280981048589160246469664460823531194755137755678422707117801230713264846630852658416118589003878266836491934175454427536307281669676232990124575734535388607084245798737650342106828238119704547445887248616291848556704279839922156631978540006976309299629495612805995704826055083451843642922087091126777314061466532574820139943162817894733244676578351489626235134993214781924717187931713918050262218200379123376864547950325603468715824159577006037990820001346540604597075280568734137019529189600629332777288508330548843946556345825971053048205480692755978960329167947518158439425496676712481028033400274205947468194747762704416438006851735814354783275409903924261086254515928668468014172443648980219647757714999235590025476730757440668627759483589216833203376169590226933793403293077214684878683856522310946532021479637195762627499420818180430499495393282202989800773151052440433358792381456082519606976390032437625387641842153851522394880229423309129073088959938482678272211636425967703708089009752958321950911035864199199239795706798416633551334701176041686076746886314611456357617757130514901968151581684806834758235700732931848144353446922151874687348120602465557131114950335543997264389350569174012618602730726175483428937362754071272977180300774252386912358485069587159037822642377326842783190955044666584896694858597950610181232176632705088785018129627024940258054223021706857988607025119742553590686041277159960844807598554358557886449236675462556639373411415297598305777167778121447013992248547709421208059436770133862313137709115024384512472612780630673819842328616736752056272475792687760161653413885727960914352749075644564606475100940087344398059058755224388665748459929292245797167652375540617011800692428949348354881169114111693723138310266629498952059930331841067222570925275508513607736711361081264178203891138855864149104490409634681379640668333082049049941448032279093191434849208059067741272561855290432309583097718000595630520688962491661040475069030193564906674632066600989218191722774737453129325897957257863218920659881489051929679204002841705769088623024568038671350559355590236309380299324226265942662161004544903542365771606838711456242255388984244150700127346317641093864168859269563647688632689910359559173283849765353056335487247285162247030756127240406051327354775484809584637410504480465148533867530477729194028033837177057547380160044613623604156508144105934921549671869286090027799947704709149682970589326275168790494923375717782195499022424325462126662292456013641315878332483012362606405996521375231671879093887683905357122109738946387205261369737681801045747948354047776396285787781044696289903333688122225359959691636777189556890882665737857618910003335354001758896471282313282385139363087242945069182708603434796221566516883784717263517368444981560030709193455271078575262792694128045970433938933385657566391381264469799425751320205006296822398228516014667804602346279580337139962763974399552052756527371497307655180287886127136875866898673256971847006522513623983130888803170581099899074739149314361792051474467530550502536068339061166348635015810188098897204976952734686369488340342899204425837356333826184131317240603189284154884851236989084843279066740004454338081052092617284514416336770158608222730886349806383105010099508048485195422492605879499517258095876176344225411708030382264034768519833876167812405122151475164611030295638062663714276428598571195241475452771504166956543589196552265171842653053943234592433190010944281480442002741767216829761697632336865811887205384132061114712052203649048390622218127471241636731521035695768031234899455574600550254512349685218402823531783679918456797111974280503818763653123483547144803282698672791789413634092741308855231327568152492382976036250658297990081360708822047086398086946265148390871633815658360667039326310989196067061518875967121516914828882824777960701577417977123976898925311906052838476615776879629293357325824214283739591716128056978743997829814056428239033913240825461943998139178403647535042292022820293756221319357866179654998308916139480024238318326900490603521569174652515277995902691196223003000108018414035619487685329748272901181961262913547882417986713018845787724833530371309721585317017397731708445998395040799591095272944676059192922237016013998148143616846798132363774971238473190222877593929695853681141272185294598892944594376716834128713283807049332789608320080373440549761328838709286349864026400556378049130909703559418981464699805855557903866212367061527245301265142286613915086655768179360038890162941319647151129091849861796226415674776630532714716381019542466244903447857374100978597840759905652131219026394277605503995409903031482420142134113296324511316995998862409043050539767889285447827761812197200728132887636571957173482399187600512700515653037742721691984848754888647289088650499674319424857931195681742603384500216689157644048614615919477669015613438438590362291372198176171231585897146251791254441890387153582633243693964069934485287121552430801774671436758679696782668224812200515544350710148040992595438642304436263375802721473967749085341283824854276273139866044354770358294262776449409274551635365112771558199232091123581058107228204309042664913878185979119315465299985636867261487679913799701522588364096847012201593953807352140206070775576850988009650314695839822995889594612984444969128657327492345366882315911891852294004612457511537736964903708972705494173271002335063581037619388629831647784180353172706963383098754421223233270859639124506504255463626094445990269132422087503119838796091477426658857964377506740943039624247008791258785303602282570751341105015089291162108504901797729584824489716294531929558195477036748402331150810255000939301231190929541128530624699858056067808038854965324479507632632600078161390453953941041603993149117657597572832348400631945316383754129641146429558598290967759485539997540047332849461057958811296386647938323042257783057410314738518856748484105784058050362240981618670596158152925908368523231478061720756967050071380581237853845487905236977491832232888432102184521717463407985486613401882915790705110229895219240899232351670475384812796508752853189534469465451050064992488327363171822141939093073398478708961343514189744071115457854815984247757525270334904437659476509301977098668065531161650879283628100497409416626729936344399522039808327595357661852596670029860975545027316394787482440657201124891405071812813814744176910855536062113631720444175888970095701018101114688354502831152807144218262848757955561649670852742881642487439677849244405290760346014109664478787389439380355717066765158857245540591080066420016322961034801532332813534124418455913058291581112149753771459759522421813813551138025970370530155503368672385963739738643371522700166269011237459207003617423406351708771558666217209407965941001137900007263226460414721952707809127736882871091560441445454775274115858660998418642275469896261350971873544460173948186829044231876019365090096187010073172549321403818216284513462186779868852372312566635888694457188620189104636172788621780816655680021018878382883212756919515922749666644100305830953109754000329624124572093940311433191489776204562222307132180529058794432965823853746561348923939221364188612439976091980273876892673789054251385142635794478006749186682084260010948712468626909365809541880027461299197058963243984419730067948818436876888211134960632362500549230642124180695644746725605249538985450539582645502444069414699599716996391881190787820351842187658554063327618543600289606208962823132911504837508561244829946052174122598683059970033661934847317573421180887532417037215706364889080679786594463431720481693249752593667720688504368265591211178165912830435189231865413463534044528623133994075280120405325040652767922003354731445390064311422896741214630462335674560377724711223086259188402880366172474223719048753852994008611848676786973347233823527224878081477508176873517001714381050482035072770840395025560059425733622714170054797065970365645852185194715775920293905323015618138177195483886918592397623463320383244822889837608012604024710001119334964352387496321548469005744129186342215707436594161228639468255659565425254193894877373899148656736870618942300209559232927785840992342911047068708276945417424231827902677255296652419304910822643816119705267757429914501757988448701530833907076551047955752876408108149147585630978237587052389465944406428375066819206805316194579924677902196771421156309016991452095872030326018743138366663015885948243288886287563469297476870638977830773524456756458745621112216339264080577796255865402504554923392390295833212406370847217662321187418617653705859581700953812344312695924764992540891347155126229275895746748632195834745711187709347251416782454558814947685664024663057040548587033209777427169353355224462783899384394578657277328492107949197445330760013298609023276675979051196519342077659855025897753911919612648057721782504877379374491730990343343435365705230309242109135522945991545544556348841794312346659976655782498610184816975845176692002942382573461905334085251220970661191628019799881573201879324883579734384931775734712619011504100738102630292518273850022996487235817494382609891098060531431816608119087293398466443031477360430610338452847181076658428808440407229043255126766178947175372281948009469218319414153543342722520358419568289529115087483785991703887809386111281838222628584985091197862188873632055872051629813022568870776761822171532209627159664584812549230597262240712389854728639623893754214910613760056265673318659414323753792137374409048106800051718084062198806760284679745386735175632786333827045113340169930134921561959355751828812588896672622115054282949548558056408874642663999496625784905325313461725323897773341170761995679388329594282248396423459476761019645872111738603374488268366772338344335868302540675162916695059425229133006881392771562909688513362027265350375955476236952961790881736701155226212236268384904280343900798266666129575654855596867087129294547243171520329367920584732171935061012192709397329556326990458422906684402885955159698049417538126947029898721853705393546515692866792891998730838291937662297288994503785539941409643177423467111436311627782191700364319205168726091749291877297791946609316904473820598043265660122294868019782502947359984794764618878258843195597120674967741878370485886314391635236874617356903370669305122840611348016438988000527011414795985555867085234712316028860904374392869504453390592906971211307535218266270404243472208667246426236019058157198798078154664533800590809992144204186756828755390004494865266278280866729408676198013613060577997648044667551169204672453905042083839912372199969328384021781554432941648449596455801449402204920045328424354812042181169321579114310189971912426219653884981266148336134279240086737233253267714705107797489917019261164604175858927372572921911367071679956930469478904778736791830951145053473702970621235970032362922504651890113063248594329399132533466749890234691767044248447879327952440938182342984004465399352945149060047978010052408773240709396417321200752676030276239280100674281569534736777998898993776348427104280646075257866182698100681667265592720091723455976677201030341254910089664596525920715115110342174711843348657880213342635640475515207876333442189290725466098607897691995195812762633747554292356629711651245702130050187651959228845263029127092097742384496749203929440478933352537521498280341783149577698023563253161629344309931619008364035943853984751339240977899738840021827978641778865635129618414002068324698180280513416726548024933796333663682110670350961687477410793601290860466455546524914436103541373332584043132140901201100013024859631167203261240555889625643330129486955307587796570342736894136842808824181706804268990093218753268545419241772210231327139001433658335920211923764303852053218669346944575198883316072824282403203516809275023402262053949325907379585802955213930919119568640338515709600163997308296130986688647146277580410845516005000811558107977352476962252578696036501602632711413295303911361245871757363422522176073076412620665678293573118748883355060701205383683151745597804529677934584662286290247388786041311115392756204909520616478726323124423514962751813036437780058993904750897924933797582216682033069037948854553501214116242356014523562096628722761064701380258547865779094825751882089846398871683207452553315930547987510096433722514501008886313005996297750584775850355403711202914776565708669768171056893570712744619764082550032272717427212797391239148538277195646139401022368839202282954369892088333545032155676576261097077259755282532181801738056341611794254401127991354520052828104013876908816848965172207188820929542382394898347744877792580105757028098875553551222715793566419332123395227815926119397316222463879075174781364789179582242048645815380267278139120494575072112938598493411094725660327010051031589211375228654239562378332191868006761359677497928234788092554359737380367133169958248174659266324439984770917371531510148965900957715298311058506224107722404271608632989638041599836852671056696441165102691041269968007991342134162584657969392754842176838815727561469282847810689130710718683137857449233297525669508272218239609900208808761887882370903508880489210513541206347503707330286578227117265006638655116423822342421420273767408696236481322988878484354416784966904818358597277318370440035755681020136466090876424345528671147231905771497061612911012250889773087173500706651880957018114191539948483537916833746563846172081244396848207279362813441684820837401464580554186634183695657909940164070274379377937925469370894628850646556687975345200215092935606729347476091336134910076997064148165302418718873375352676867135395661966860139084490582173745021751891800621680975730183965451591944365230581583413864123430109898569208388979194170550708072407802081637952118253758426277084834574153774742084818838687133368789630852350097584577722016486992684645945928484270277743944815866369116830673594492812388684090912390638531504790174462864100476485622402469265556065157347597689407141331220595561074670208157280662615749384517533761010565359836962551012278977890692604600973325731880368305557821586505698920218506251629630915247063574967966941394472425396661659349609070564182014918602735631282684870916123212003520467906805475260042267320345009556479770960994304039196701349616433442285153107358107695265779554443138074368522524976948989202611477172314754452108545435477003972145399498281420281282793553319625317726573115870827995131760904185140765238343338023570636305462715722974892888789835232739284908910599830730255378266728229825001158083453897683890334295301737720083424785644210573765001371169282122022099132243046822473274751653562347368632864003685189609539789194300670108153370786205866536395980172766460912170123404590350166650908632985389264621201738085827605207190022288458176913740788498588998755434599534200331547658026385919962982089450556465114375039287925491873943033367898928870080401856127391212899951265883291879134075532056251733015517648196171355772564858778327376064690055164889486722942154181735901525547887480837925968397011773615910790161852436909873400448854748084955197898473658404867526106894217430741912919903703414162417963061388127725253134479618071386541442200491599337625985226586621757417097086877548583124492658690867200380953409247611427016538668544377622806710657503238204877426329563060288836079232453224231434977398563550862430490442314130432394991417905151335562000189727696101079881532483991831160744098001505872551130651413137144955763901131940361750691047598275063678030184819176137063607237667910998249786243656063500334004113194252296003234982122232920709521216148781069559317611204936837481900792880836548310766545339961983543995349816788087905323856343897731521095301015783386031676775863482795572357761723339333691448186842151133318580525358786372692350031964245613839009341902455245940535387196459340106299179556277621973008719183671363971608978216736903595870851436420704964103118825745095391986901779072062387748036140337725708907878165537147077003874885284720075314573958117870503345899388861136089212606156166756807213499303895602468504592242377469852122582014906110062789129131220959971352834163116982815716021903141525868889110119977841225759651490536284245160647263680650606578636446764090161883819854574845161423756053088518352797512216727380736546704957477590138078850445445125859205970974870692741644360578963360298358830681490323997890359976776579292706717877209831349633928699474160954872310031335849910749137879681954939910036928984557552190943536322180801213685175306594374259249862728511927098313682659786073472832931415448630350665076660013798125110618975794584040796773244198530621041308846694770709196895152007134681572071434961662184881710604188127777698913783728291572629230241762048939259621131342063631391543691634129993163222473579921165995711502480570960093322579210936857164401829271288979653141140912117132429477394303766729389704090533950879833976479987251853742182501234557018266281999276544195104120819969440148684973290400380869678123156495605538835229564606888894763629117626045182235102111560407684555022607563631166204764942996113915964843831520024839668211149016606534756225682207146528934606944833791751016202209871473842202396714994899898338661313699457177302833385396451847607427521796650742478340801573443017932136401141065711480059967430664701759951323847244458068646851154643621019849902370619883349708588464415848987723569585995215805364758224172682921586504964798787763187789375005384245406366753714870783017230197209600851190850531267147494470574212129609897595516713021053278355713871152910592539052076721532867085477000996700649398302005041301631957624791534253225480283669846315572746428233376609882594083274419570450181619448334997385003065828860555578635957669543036550170833635204574794454415869547561192480423135440829115019538290667432888086028058112801433710214016875780623632459011334749815639118766709154124557556299956776695304947089246611157584570270596446130293121918769689142859174363839257553292776093112446626248754409329077047005674311896300984253364208801332104681979785026716565295626475463495323915770292745692479209901549578639194764929244335843318346738075654292219269941818483693748754323851270449646211420367462336055671184011956424495811641301385841117837113606404631080218707081998540274692509232831773509194011670136621071918942174875595295118547643888355138354798316160442575751083687489949211148253905488585772691471076084406973523752677978350707021055231219566380373488663868439657737937893105674610708930096684095347212255554760998189379251949037909684347369345603707241122789574420852126733768642878078312665980969027491307979447365371030359800088123060375171960751821404243210208876093003973710620524040657856127806712041084433036821382098127157032493511932406390722710020809444961573915556287631534494613709014608100910031686045958321977013075009012656141262859911607513599363403919989118482054883989210018845590372625063753647135289243528248332113205330197237067042114647121131977334809681913326430966993882730257029988743770406935171577591475374855449367555801927752151341296872679905047433280294840329196247633420493498766444783815858363166471931982454455408635668955390851351328876541752493984147236555191788216345672426951211351333710666068562186886636650880325531887365288972417565704187665227212560083156653552647848803536011763713516714085136268552866263001424304050381980029314056554807710395338476225999326022174322751947989290471595240487335118366356395486874411552084965830542930592162656611796034087603776172071550662558658143995376163167500724110767032884432189815872187480230031821247305093368009549686880504027853673703412206634110638443736530474729495750277796956547500103636942858429565152379484821810949728656000338876326193644007976829574027351172374772441889427128802508609574490546483607983221100846042296861126707908877093609801094774336829924118084574943781334796722275049594295924144151111300148897090971749104114095024247484876955287735435187555664382266139688287026007924520295588862450971612861449031647827408836420133088029479078943640095565678850952719385345220669694943003571496568942841285825266138392805393267253620432271804846109581716562636348230115298759739389187762137135618505131701917172760880139658389627229983942377950617576616848617846717736391822710183484947581083701840991531592333890835234705529040590437094119945370446611483597384281151413741395095217135558727184266986746339400727630647623037150016136097647296306147127644143881293403914877619505777949586011605150344939367479010807842427685404685298421726152793751120024385075369192944191323851141576784431587682867030243073991833071503411750459787735405700706887433131180741689661345754984544004634836237861024904101011012726135182411783966849450132689443261627580802569083672659286925006268830909528620495608640354357507208858127380928778297288746636557009130605338812737705091426013731315777806347239395101875917137096035463741175063892292909869176540455951441135324172158753138925046162572709559929425959011917103177208567102178473956985137887610224935330188492098693591531729429651205464164998043276130610933508526050014450712151831620976664725415245366828351327291178801078362260017793623733411439363372805457498398248452052700163799566328988492863421828230529937624667857445015464623581358454775626675440341068049691236339372227582382733528352499104078996445388640854501276771410660378246018821168679323703755793633955842448888764278690942636509134570430591651773462741508367885451309976187416413510663260775482904088159883835339844044438883892897046873423652496648273621604813220496387687234662012982228990576678376593111475401310519609530119297450810555268137794400408895652955905005411083351832039569145908010394832593011966947108335708066726380533680315415910168945155373951864077778958539097528738260233384926491853367248463212224046716454362873376959313223598096753487951606723445097797344654097603170472929859857127707584702876576063557267357393404076868497851864353072363284301842013409468529680235082384693661682753127571691396417954008502068246668827656779390837238002335250255149308789335348298334798109981357853318993970371038009167043821610169908977092051731220977881684317971064147236107182005449059468682154795152127850519826739686132770745547021604934362913193782351682364622226410356819401031043549252880296960410407377489483745113331338048673531129582288776048908662688191726717404619888648410541215209360733111861857817781270874820177812422381255310483208162771881466081342307034807987035215822124414113835318605798683423421405852916974938845619602733950912744366718200205117855379584705278232500757480266186505969595415728975148742569284479135030543201968153619901293276642945946323963012546168659155884441653478529874336223997899067981798635615207006215599287663608464813679756580646659295949147366100160720995784639903673863814609334342172427152066118744798518049151013797481130283300780680605064255312944098480647072127725729055547342450953878339633389343918000481452146956636552749498281014067512095909281779127164293952829682406799031218821076278280771230778414916325803153840233552709734108913426659945285577461240110194080195643214053016842252933769939951890875323806800845860402222502923952678985331596019545101717723391016219506302585105546777763946936412611890039917322830074028984970199617235019585130212594046257171155480560545583139047333191148953307835203359049925944468258035594960521695662529895336608765665354379620220652317524993446457631342720320297450327365862740340004503926425157177076321765939057630387049883336046737013764682322555541228610661937904432306002345162373945085743371361650200228100199155345212675305016140923223617182934292964254488830700825748176323742417697680984388734862399893473813816903921974542624405544654154549287184291388122693567891823313351148647012705442814325020206072559735110701124779924744020705685731475968278006607301881143133049213507209724754269544908392107197134082453791004842810438502255967772373943969114803955024270433250973013403546953071363416769546621378189394355376418618446767803639240808568380293432850288439043992995634233179948762226386871785689670089346872571630747779100434787788919551688406514327112862114994396582311418757603255912596098454603218730218455435141413644996273032633722146298790056133112312180537577963472732204097994427688332844003433877440740420403158940496427170554881099721808428686973907666080301086941674748145220009171912941524613047531351263725161633165260259856826079961522460984549735728843450630733230144794003351177193621848961487095194784234730767156360589631222158684814295215258200356728796436857076792725347805889400528399456582876798844715481503235796403233048944466024826653250025867066142748493586736840602736761199809968543564243035905568708827879706030691235708825720882520000042201975390254908213253176092870769283841797044255875250649431704200250474370632865293012210376128129238995269374146875531772269334026205143624594712832114071209646899341771019586820275595084703586924545406091831404325244817621330334469054528896470166680888741132772967291669247489734264524855971504257911100460345198590815625009114869394273628449547698197922291935327373924389674508793345433452889725273186880524654061766743370636916040861003010802494834227287021762648673016967254896726827076692269026667786156816764296600548999061558125865571039350234050192919218009649600097251530107046900196236168402639210340754860186021592167817355539758999528060137801354994291177195128538304279063469093646758705200980521127640691620426934637629686397431589430903875273763953855400652757082174522033176390653287913986720816561247101392289085901631323965387832681457575904466413980667596426149008333868152972726956509255509538480488083039812665118827229165559143814950696825645210239839736838967568153469023363658809650427046863489925270035634240594673751528622542862629995913438390153161129147017203678368382846519439849665528562790384891119784119080349075778367036464630422279712004456756028954736349158799565513072986834389844381105183593153999485674120348544552819174794594376892425316862925493802225662165346946638487481052157881319243562192292144832398748333310800470150541786021486542588821615560523054714299687828687975150397266614974265006619611870845490339563111252863533342386415160973055427281821591472192909125311353201223606638843732446030912397152400237838304729168740925835367658010941137899419521484780027109602655776128041918835720252563772940996953693750599039304697253700414134892831597479491626534176660442631420657513042188339261684307453528560663531324193385719597220442708218293654993934765799621307369032192309401241391270181301199476503797569863609566746813881513406282937970912470165073382050004986827739194780249736911953422886432156419607953816607198870391235603730447083354501621643637557592599481073797439222331933693537117596648463427794260324658607829223330655718031467086135913905004090638848792975184479147336125055607252240786681606740000763055084839022131270544586821798778326355497155721075018398971979316779325686712917894907815369027843332482489931873390793805942564703319631772181323315747496569781707297877701484871519272150323350163758949857334791774504547612823724626672725265522549956805221506501544633150137331451551498161818445312803311541354732327880566413773129340108502834462049856943662591162087501155344774297458838357319246541865873887939301471130036751855635392145396247208180939964244297671810261796868387791900179493541383921893206043208740359016662990608573176493370943127243050403643743487930022324576282315887114342287682012986239437806768918728529191160840861055608778332780351496830565160016349813315954310188116321227853265203299459688156043757185965710357793282171575011040572123750450473575699581396284404594108360463867825361869233444256087783482345301374524042926379348569899154482631840780587415103785966521704787063128240267557503354144308074225149244556728813082068580644509618781467631069772043520686022003008633393067846095291573752800219334943168080666454726056796952197410605193572811107719020798628638341779041468952119958159971833477011156909634674947610744453347669527475009308099095325914467459127743031721827282505880813545284388453698981688030418497387854975185992108375358646975457445780683801405563400587463547285501821909773263016482756041098741297612427211999262595998865685741153282861467297801100681865025988907348673136574850093415587884956170855107337468059912695642305426552910862352655807400109607225238183648634908059279918840693011362957032939544362496228505189076405408032715547061638575683560447488759084954557503710789509441082475702734011199934801958092639463821957021130900320275338272242786364134222348281724909936086855318172561232307227830126563812920663324637946691009342599552305509730420848016885878125888766160442841685853953111638039871065380353610035790605731195307833219409320569166939410094038947119049958239873281865679862953206329882412190899933143884730334351359033597480387946335413772999930199798769690346804406981528920773670031179834435474193427729651297122037673299941863017434700760609805804630431870687259357594458731022765775523904422508281809187011110518278416537127146012426163959345372031618803053727984302916727513975202031695287826865783599995558131272525292373969060948728917335718046328773348067822666174334002762268845740149299245644674466454695570842051763829882712095701952451330262753691155162711182572128062871273178594449534883478640308830406650545421049319329635117578215383047835378500750552850055670720250528960027412885890717336714293871869953227731626269051515982155553209751303080332039786044479205723314418407380358609168606882643256701850263053687044002427288793354727222639509894015097199731186437464413769744278722871076328408738395647965992187039848189582827308287988975107970337917225012070569397500131981782547750454181294338993708344451272877250268217647742675511931939344711699625264463586329691214015327510005844993894815577500386781351915285888473986065192397588137285778779076359994739972308470377224464310813372042363636507699908416069935261632779904171749945149519054522433429344809792473278080564222365115310940041659340348075727506712044245846800136841438438015156471875833676344261571418625241791202038423479801624271155055791364643644530520266177491692142541611939958846385501558511461313884731258883608721795405396879386004302712957113902563797831493532045546341979323141349271301220862116370761356026095182179756236529074025670823917495898128828787108685454453254020969708479186884205229200170507297296793265846306856283314704233453869557262576605104272437311432526619897503025680554083695239303498494998618610186354817849698964746465405453345522478223257051945208403381300832324149509262844999137359811918513545594977813185366983728457095649131911271051176233510452493764661282875492978550357089829183550655909994064512913442429762510687575014122266672782099053292064032939467716157437189203751646397480741192703246146840535216459784859695016955736381725192830414944700721680719915317889273169415379838260276352284532127432096152689791963753081807345550382345132456722637579930636062468419833904635127551246399591122706086920772391163050999954371341702723684111462139656719118469138708497296869124667455224163808417801797219892810078675435985642542353179844715928329952322142467343721088800731321205282436791187169902027540874622952671962569309121137915206557700300713945973187778818300436829429382678403844673208374094616530321194775351597727650100049603009527133908742002227078341389273011990896330253313840225242950275995575393070449891548552966354727135201671960879022981200259264291772136729646684299534032886445016084522062275278071016629534460909344051609661096473342259056481809000642360976499354042064796246695201742581173455554542801857324500496634236689561797228189536798682119704949051626730132046481740427468052236399969997503126304358085691385594541181019990535215398050307418166582723612639572681400978182376012990746902853296919212339720924394443230286604901220650238549423142379499120941259328416258484484585283790579623381372952465502359894800490615772170392871688616351985626140782638532305013629732448749899315402393742976902683339732215319297502599434591715677054141589453529288003183503650089282127553299771737708118757555929566933922459185130074669477016071000248178831010083731560289978381092295175432963611817642933715762487318147559343287521893654390602801475842722998130798953029519631534021164323847906599032765647807619971512758774825399852069490301397758127347892134788010181994262916571460001202573711031126700901325531744517853564961114868726954480699477150358151905302918764639175025663337004496474384876179512895034342643752104092673725270560348455134049011819296464923339308292935135198138393858695086895195224949249063607736805506242540465187834436024714937558072613056974379553045109093710996153518856404536850764770961400565222965538344512243776808729907812161017716159254806551643289311886176631594340849166895680284245990512906754655713556815330293948995658820053377921735161843074864288085690428167962542331247771010662566272227678181930035201850515893072617314171944397566852710698768741972823316415608290505885207520441078824590432487855544925056221436524485818951758945073555865213335201841251877232263543165284667846683386744137042118406427028286024516490297432213077707757207883486930434632757598740047199551155315005630228520494057737072002396833127650954024736471282550188606382000547431789755333559251113771026990705631898880959685874290261975060215390007568920199880866214429722070319482416056039048909966562126082106677380660323073503469116075174888778596373580811062857647742869452456506629457638045087143403052704515458191453196514046513209145883452855340552390399903992811634605664397941651048996107420941663492824016622455449503291041834284878888645208394776366130638227211671566099416909287842992343616161246996248364797676404862706375321932229689269666014388323853552325827406312011452489729692395688734335024519119573028467089261150664865006073981797590361021774478324917302777462860891763522807460973521223817009568547131264535573999775879148404008144872808495841630066003058330451265965429186874958880318583914927070512597971693948814189934395672440360788393129756723757620445453093689898235952140267695682997248190265812033434635000543558919621170758001402180811513878246638293336627203751834993721407936530033936505610117001671516956886522819750755142336135137732659369443547064511444756717827778510970805941678645210380588585757292626367734506639777412475552599308112891212431412246760391120392033219222594075401786676006853669708604647863933983915771665831866068257444064080562384906809812083465626311848099236981072996446323382672036409324209770577897114101345779641203979201700336517904326893588240652247983074209260043768945358368640963780788748736427587322322942412114071059512657578417697969366046306580263812535546741364278416128508632857322812062167307895260151721832933342820563778248091073413245918727569510588412017356841607309235679611583720448747989665007835454152763967525295768753191258991466467826383152330861770228118566248775175637429712971726871643075482674189873170277619339184258727000099197281259257357398798678453506353620909788150444246046748938038314675377710438695368377611217119523213633518460181891546128714179035335230246056313233038893495526017593725926428339880073329875016713846254693297816483719009286245262401992598890593115417540478957022647193308987686308715137905702946263922688547554114896094617394791300416765025285039940125862572914788384332326795238440529911226884428193423612489091374960974412470724144511343847463935698599823656055696481726116282411388648953926416904009247976255938056671700053836429755810897470438850597941097738503920952305440204831004686661347338108344303372668255356254479233125785250454354969407004196601415455357028439952071500535633515377916500063795060198975852132695629939036846697608530863955682430030217219449881858939920850874669616269717826727350689196565973849269662404054068124545721219350443959411488787277941020119657134643411947102584628639944896596220782889190845893137840257207805903676956659437880147094235601868898792687939609471471173526031368002477315211473416964375148352804799581351077777253983658934908324669188521780519784924089194141047629402725238183029490956914471799375495050013497197826800293016755229530214940850041112769496570309951290870145340021629561576136373767613936588244580399883533016762326907604638396905529964667278867085059467601149507502893363587540613739258605881592708443589314249887820464006342860546611674128972411966633684510189024497106007429221301637639261249289043030274843104263853958478856585247321599853567223745098949123262302536243961378115131913799928589099180984487628736060247737012641576350093558305317701627172388359531612546713783007907054059716387872630391438701043873293209679733291822049523076293110873360920772527707723746388938725766811635627497766309998145456218318508728323433606537784620488383230133364159201164014130170689036625289222297573186330858364980098642927814177279076160857355661689722754511108207613872671125302491978031791363503951259716408054008086749078223338648298751907821215047977357894330752597312948979883954333584898702633847597259603955737493099504272007402965435113766602576713351872191080723180590611740780467324225598574746483794143634717162341439807808183607146968165686599780873821346251130573243426203849704380032154789863032485313683659993150196140934434464025598494966241650042843552150630271432696755840964346645297783929350594365768449483641271811774260264642263654404836889012943225330893975886918998973968432812040189005571902994144900098209569950683590413350749072598489508144261930747073639590116138854347439777373220091946350264289542237580742189216358474977316988487737172319153244359640877353294024935086419911036460569836679812879278225979762130666876825591629637987439230745311955646090980671743536080128353213979119804272571208696268887806503823438462348635307999710169830199648036007418702161261995789244429958921788542973333110088670722151668833576249200901031100997609098066525266864442384436076696385917747891554558402079531775090851444527851323721629963744838250502963032499372288235934685352686922121592414039301984636992587330753550649468287491801375232415815020228435829226056211495635574088740929048274113679960617155958444370951770805462539281514382463620364152941036627107381598069667565831358303265265873952775474579068017107396422361952821997921238565709822653718664175929739062965443517651450456535311170551917772236905999512092895459369385043771890083405436321326502790870136700137979498250205731747110470809882353049933341189832923500980217128133576710403608443157409781630642796584166729369000992942296513870287218933808446775579689082317060020286413437769907522634067146042257895238967752243167851332688923857695967024166921242002257839357347073636648282522709983766617598497000262322746868821625811903903796371294540158053140694425595306597684989996491339634750875021799075292429554159989967980386846670537437791372320047340481723877009632430288636001475123687400449802812379561212954427779610501966039746177863488749999214496262911576362323842484377742333145953477189810641701054204022039126124978066279631349595857354798232841749895463986074052063457608076331040997974605551419591441656305749158131433462476078236134202851213974151039718022960719974292445974503767832844774925115530471772864381576516416978332765351889005324499233883587798585785799511654211027728412901805051138076515027191432575007985838143649003976017533986602879688899414915866071265204370969410382719718507246502487395694974028957480303307368236442761495313955040642763960333304537937666178287844462706361063634540758895695296914651549978836805091833098901122147429330884266916446617942094246390920832358461376811701866879521302963763642951792802454258806597811429068218997214045799354069439352786565875643221869326769301291916805536723179528482066339473120901823684316724109090183209486917205713293347184883798199152157522223999850828937114069401164946665866574292713380571248865401112843215444016157638367474526198326213060481923415890885780604563543149196205894820039406577897668913485016442834916328199981571237193237334667268173442642295400761546514900935380972814486586029144945034409364312285242282715320715489332561425803365976222603062400682146535872818912552412428749834180846658124690205856941002826742845237106679505135444450508475704203325106189065530185450648542348634765841680405042497172672586938510161987057592986877017434955242275428899646051462174951754360104163106481620779830946914067692508669924819655700097016987132992740435400693307197653607951235271219855197597592586832219597999842043377794390796718982099716369971360059554570070482563925322024202253703277948425807110946160303302640998648738079707526581332992684913153731759571319772627636701126319957477655537441989279915981222403701867180563280451455644379573415064733122440354479644098389467719564515140834811208010961936353116931766476983351321258307018974365835628419755801127238662324536982269889450832431747272282468638111728386003408756357338265896053910796010517471595353817231181968035720526598986363808759857553668673381364060703412955867006013957613092913318519621924845950374659141095447582664578402990821064801881078629969629212030696813642491571734892627963242246599481674755189542214953076863524945601267070765196612433933072579398557462843829648201272383120090454623373954912410617288863008875674571369442350473431981486341267148467441368333953004133010405298330356095626197046658729597456972353953004345020616216371114662775061554462852380245423522584657460138352340713941302161373462278452833251895410676638336062815622657812492325951730515377903413161150354248764649981401989459213702888302579451504593398381508677581835086885953680315978322130052248089528495040995854881228645819245214537307169632466632625256358192249780161995147341596653170252071669287901868944710127913188620863137053225300187674887214671375236510526714169739623848466498413964695601300104379127674249895596852390386297882338958812745644978020790330648989255566052139581550984399252044420055599537993947281024008824735280009750667240789309900475472545197096283213522235440963730117768320754744921675580572558803527378383640791500064203600907654373835155092217896679782972558423793996167163621030460946649329239207196550105029102338128244352244061176369194702694195205522106663836290681595556748631026451327181852602799355909752989677394347757627791597649496432925704953208383569733223362871607563151068565932241420954305523997757279678962042258064324571762713856944342681341299763795092230786989656036876519219949802416497956433058013628668303022192259043031088533518666998868974659713140191860159836503470452011384131314084441564639345043614400603648107963105333582048004252368141609258227494824280132338014366159664050116729114647050324746678058895225301430379816485985099620300239560420245007679066161312557713689399461003247277162091102345988988259345791963993992783963065875800219877424585287264861591191253936881656058971502744914963296582671450636621053688454555634051763762905698215851139545676155977734356408232668335362375968718885145786072771026383527800333008562478354275331511797820889953426686226868888626373649532530738522888984477612040424848579515315377216535054651258730994462444376647425233461112362039275095970939223504370991630255731943552128088412365866558049839266675468036864904472588182017587045811684859268208771427888962904841897719923823178081430690262544411351627084867954073723118004151578052428696551682663969695101155411137971096019572631955333901475623027703281961961673959805569694971974324736451733216999378041000469725909205542500616427926748160388620409449873642971099457369720288998647349847072956855292742343245953292087359712568933406934694464652876093705954622046553819640754725399027039905933106417792453034689400126988065805733760536811515786966208447060220708662946323948280395593129789021212883891711804938479655148315344857990684599355760056760005938717010802646389648701090143973633445535550205709160058165835889872182240164935198531823397354716174563584641128449959494432531281396441454205083859915727086502350282131240684366646886933082293197929721709884100170825680526787171853488140779097001605382308118504613385927588837373776825471713339734496728957101159251241834214422855585524000856176444723714831333673612418040552398251681545646381737699854950560327787702692694657094172899539809293596578692339305452843243065283208506083587484943467391432727253967219272443702371134507750768456279740048153420065817414821521991163015602771552956240115264627064398532088247542604581340879191849396896813392910165892692403445606084097770434511329458547736701164779796529814230304276504332466387448190269911437412335322975057890774606244308434520912813307814497008170040483894421092993510984676248104958736300215824304765284079067210606324866061687259614647030795091142729482406995978324026406647157253903521932330257567014407882113482050039402863361795792133149840434800472242025389539779277704375761041358012953937708930304868467972328351091302903705068513039346277436426740972871752658258375943942149412242061576864098247543128416296964017866173085268255540429779673431744685814653827646303516860957205267100762511309440942322374155268992585280412052113215055343905514449540764973854146678013639983005009826671574045318628843595308012597302498519277975256949543239359539325858723536760109681412351140365644050203774548332697842367563494832451610157697517593496531816491719587259418248501982697665799650887702886858412202219399473966268234899959124411945198342680865135486453917209684852922382657363327489909267341940819706819634204030069317949675671403234729171906872127925306993996278124268276050208514631057324386325466278727130702524597650113995803127532381433294704899780268725955440646448776584106072950351298174493549025518744135869044471052882798972824062089513044637459105500873642247530982555669793226893012761580409990694024616093626630572321315489529240194444646703992691313368422080721495472729289558220353762243511887418126240624615570797305556272311502478827605710135471332563896411819181355623239754658725951137033159645089240532855096349633873068657124770641798357931327035308138929948886892006713330992742386377110040375514305383083686379300675760332971920302399028126157681543380037320345931454569689078576689350855757664750185665372437008095402064184757290497836400678870831138914888693264159212185172146386704158856561082031591645329680907834360435077012601371293558120050016152283164955789427373162308377758039526727894645542529879086332783546390816385489843650182741141918166935332468485805458603121941522501838891088585827337003154397835848824797029863579813296253772884175722806916677879002859749837749020605183182371301633345441195934037732375026619907057853141407778801725905645559137585034039781694876176799391716042840869400657663978080453525034958913441322977634254189378312342385476768764373145976958783334859693691202354775728127305325634308616861674461198915055828539931246092827039733528189373359706721245682238328955972391048553665289757399312218073301772815313015754684210562915019730917941774550332739177654085335975169593965985228187408871933900057073179262259441990205155601930819254422828775978510239407834639042509689204220842565095506121105182245635517677579126254712691564001691333021580997958728157010198453091677557241623606010982101030027394191737860091466958571465919051331866663621460893983677500315720426430289180586076101828201789136552911057390016109961574067821496750684860581095010393252704749847456258934895191672044826220978762149618656550734777834877724527887397849147212602916169431769715055105049191945598106393150803560075373658418242072111479712821800190034634834402393926895587468923688008912377052071840959258366083592055953895647672231371353400922641035331702686046771221284192001449854140957066310240718935608030311591161160508453572243172454517847867934618122932120192312475118560837578894685450195523472996787902874892240731318594583710187801543908118577187525996752536358878854488943008259659990759351857223852503616974684029549118649865026157334108008562154842084078031299693202021225061909608183136034616517307394047739090645284122927462684591369942072787549025664373711931266707684936237846381015784417275877841224360718276672510592452859955806588982688212539029964991676696495697799450656259474689527322892202143790135895709799037681059663186424609721634911615879405124517383904972944247765122633709460485360486653520790288953113112245542674466515843475931376889713338676264236657366979765733635968857000729619435843493683788918459929075141531797694958049469756473632799866026257091438351742320162342294470672864765571122154860814720195263737289171088442049694229047755555901896949685094998091693599776478960450699653733759740731193855279532996961893001075883533476020031411056226262815792096555632198963525651492346832375074476555054480958907545853095655344620544168371754222028798600376158095823784539594042824750655724500669436212346141623573146930367088758795887583740607512058255342594478558079781806910461284190511223627660214022899034391978415304413297169053473541877366788401393239872177996191686964591014598595546553915011272655675330253940479508480719299956082751204180213692502243741691187824677640649221356245101157900356201749520479383479837279308189955182322813613331596686082382573646690166879427670869801618764791562144151179417775250367670255955405162070949802132346464821341370650026112044999321071410616709127684098126867671007544163736734385312727756585961829127796680955428502066361481175335932386857490873986891577905476625798719038407614379985812543031556287737864109200829969145161247858862967670397845652716294302794085404620003734876875397397905214216410971092832406906451821030324964323800108157262075524637488577909774254733591337933532812099107825802407650251249426701256154671272675521504368267416235636182859879628115078221620072168391002196176638137743247933762104630528076280877297388311023140823901928493121303484394751497158426775280087321335544994515482337737360846529214953074436802790130302484108718732265893238788166433687404440527045876132144982954995972694250035849491701629780557022561674909093492331979003812119424140233158246811199150583370849577120413201470682908708380110159087636605002195368168530969233941235367066690622075982660959002170085307980426583327801414275527859915699251701204912855386166619924807204819098576580561700465491724856952370798381628480198546078810566196743692197746496197938053969634596588730198772734988956993726737947743508124239256923940821341270109202354692906431250064822199455000675663188705070807250193382676074494182222517683317074817989717106995445645072329474190047196995911775765311029247825854004828394545063005239517176609880444229577085386832235795964240607547774826924435782154069003532904582368640254470398839429541300185573221597763844090403030857090045637212106306700708161581798913885215879980258078140827964500062003935348566266046786519096745959249854835880884456856360907317519765876050138520372156445668438146051218414231978552939549481189443466744123730539648166596229980781496858091762955120435680772869462361829731080298636540324081245756474510142979630202302031182533836119342958436377208783820395324785645180366633324333382695937405007220315418309258414185936213847308369828981087927382482445967053109348017704885913109787475345538170908214337417049864260113502384348684387210535984187350780706768041581564294417198121400922347874395058103184898870616817276711694686332879508737407678763381919167387569429393463838312143053426838213440914006205345554342196101142285942967868841705927058360554053294111165547955852097986554872069901214630496173190308808472027295645225725568976247338732629272723230115586738744577694029718247030641603837283949974258590035667958929338617871613372948114367391393443401423849834829477370914403083342060974789624207341546024589139853349041604967072805373265470953405513482470105457233442360249065885010368900743519022063107395174823682814943461693439406452742677960120341783699010982855963057269038340158075499761639751803887404298748520462935168240561548632631349685357406059000365402154221319510726929641894798541760458884004023244057340538666927802009521969100909894145872521315038407276498822421716227199196666905279415879376755714720623253190416466425510540312912089840781659594533034383709852853993575464104687334410724341543016852973078284081440486870618947315860961022398552512912943842821751046776617816720969265235124080659557413016406343466874633751151606058510508949420153154819261094922365980194162549903517306395517565505570702696206864199694642880043809425083576398874089979295116297822182764809075193054564850306232732868092106899048683433565117227835777534310788432148336503831920237199347322039998881151688915020803012476362843983420716795863407625576526515175535640123351012732616728459860573623259498127330338086150931120398612906537484460750119049138115847441852919438162512806985061395355277287036417149025736999903254505852716784696471920067375975552864675220293952513835578283256319292411698768298854200485418625734067045800186567096702314365987142808511801176821103191521059021325982649772085433043991973922015621292981442069202952413539867641947331410168290159259434541720586509556666485855763118998541552351937056959548469670975068641588024879509176478569967923295853361750097154369830592757952263173706148082486275746774980361873926160737537215452971906061360921014377146459990231202201183891511554850096468456340881715935905404441185718284289447593409868978680007809664333655495433514331517492108523436032613455934020531147662809228941633097375768243903604713952397075614890251533403569335562400422480312855431593270487128431549792777792116461540338122070009107093502403849914095427192350172255811592289630348327640575227854865984098290618236158352211828973754366827567910096258418056728610941218330238581192878559025017384328317694073107064485874476094749852139695776319321554304284837029906715885454635741440538124175176919124498344137480673355665813479365091229887360410839318863577680865355361544784244786629116984679059205631086949328775185239118877087335770778875834614052116881779668911060572245500573064885284579111844067989246911664668535739348547579852084271125391488936479746313795413644766266522016034013495204021449262250441077572716441540082197555207358418570950258436514064884965863294423378673124118248822683947576655856996828785418266242880846867361681358234373620195297850501620217087298670002540769328549799334958518775512396048284119500490246706405099021472738824034191090520251140026777993345392353074290176085274236822190644618742837592382862967959690480049561338761016831245644567809086477924599292172510636710312178186231554085663266281628060816982846611659690797888012036398320498995393823782593208299879084277372170589619942375170104806533632470470018155478896194900568232349234368049812459568697489183272012957886371639286367421296922892262109725785717003879570481840797799748128568540555522461353290338287484797943388973008480184853675192909498586293187007834992055433231287330281192381754563624194642615953642055318872206726974405446177119793044003016023461719389986619365848095795537729419215908324443571002848745559454846526266464034129625399864734373245020381879182072022043497466076559948974678074612529810916840139790356392744283382805662001738036303760907200329013429286743505761373245223398716686501970857261437124167623325610094749597412248623967825342758518611754830348409652005995674192648600059789751934960661201648549669731888798079103634207604563746326627611818211673187158558684280242866637020811962946411074898767551102668561972929783832758962269928363396182350395304927705458450935479149419565436881280002103906722110067606951704626580224025275149636989862006863494890952970255585745007534741450266251993375014966531718132406860133069529999025604876236376186227688557654905056578256536280204214859455176771179837052399902957049983722751238874984900343665598095851130408303127378711287692226522101671571012739555358231352243591630936007233569572041044983958837019617375708399200585285509199951287699398432371637852090196481085328886760505986941826357593489444427156843407847759414759660959580708089659167009458688829826106021705158225096743803037241490221521133670885232786062747359053235901146463682157696661192511304491874155242252054685034353349972534346371376561975611565451782703917860867497433923657585544825749165042218560819897034594030756609923628128752908060913075971190909197716132799595845943040152053746992696829536242951163843285498059062970439752414523975071724108503258878408760533164573122362228977918594030121055658584263209237427120744365766539523418632213503406313388406932831460005894942221251202012184994166409688972326958260511177443000940419977792815263713673710726330604946973857996243709883499409933343565187073008011842582235271100606129956581879625491981624478873896484174901067783548149253612769828840548675563460429201391935177378173045211077188461290144522452068384451168483034042668793009993574592117644695878960932386621874110939893909200749789277062060935511946049294414430973683670478899298986482519618587523807022116966088957041984146466864715083934040256473561600106314461826210058422748933948437821506408047141414987747859024457352535854394693107254379100452673297489743058985213820404640079426854086393324904256956161832597352133741127724653833977524273098718968562181502100398670364180442493458584624325216497093243626015484250478696660512422724141322783958920464082513430717710932643793755259103517942939432091202866407169595605669221395940931796913193111979188071759597178374617083784582266718641757472739505877607651170564192035855730789951299772691786153179510367691586010216687306564569418009571102698957143322995575330216003663628325081910841424031051492765968428784062922689702344556566445387034390352696869471482928591897230016753296685327646887648945006403374203544896667029111803924411530335206266626206152571178255466373104427527176061684186355930875811335343758048928683457914090199436683745238682873631370982535661482587834874440941524458826306205964723680308150940756039772283869583344037670805113404206290277271029420583683872592451357411244118087911969923402319551714020566483785453129104187689817452273665436784965265430670625682944303687601751410402738405849242130846431218681670178076833115046689114994223977891829408933618457541110172900300575424498408854626521102859155245114427761088341369147465021625196484362829321539008789356430956462496394644371108788728690892068385921832594227850099114671759808838948537413445638404647308174937876343869973523573205755974077331703156658216285601001838265895084136682979124331982111620849009868532838669595909206313205849359378956860269585837132396496463461682022764518113407436698307854784645728279932853002766203359461173164434001106586360409790175024860578173110046385145691258770347570273061914319433992927318333650356515495395851232066037114057905422242938674071194552986236097248670343871747710462259015901530087452839262024207757733507461099956394246004267946651710992373947097895797959981459405260783264128417421486988697853001835155705559941604815952264907317407433589469379894745637323074245055323203477266319547345978199017901940231883181371580507495932696891870480539874677121483738599030036653927841318154339429665270627671816166491787283054908803470836973442509301133563156995584867574547132408436950703563315066724067577355528109187427321640711194903730530423748120237050009768797552688366841458072107717898311713907244461116436996655708976003612591264945781728422255858244375977648016443550622848387960746919515752057247257442123314625828237530706735184120110776383842877195542942675237280111837471579064171479813493584556196805323728236278584373433870878038995303974902851921152674958717705369808911544126218206537802423970448936143899253465826690067866922510535711846993727915470313626028796252012993880087324879208749286665064265127273486379886161739243824914860345669416348973301878770258866370332284935401157588094101469590727918515152947227520969806340143912438396977161695762263277703100642700493244345540646915282902070510375940715383243465051422358355499154171985815897045011822527406307832198823126713400576089363422966492721796270340314538335191527423786144676776855520854806191395508145983545076848291112415608503458063185735924074822232620693813478398784091975182942305043933325395843340305247264393917809390704384351389345213500176967812453766852980525276178733494814245111189583124523068546193215476398839498142929243528809828188366614268731891802050866328480014848810169248411304936947524914433191799560957461988532197925874704824891556015833811089240846382065403636629346141461341730708445166150389166680221839012879137871656606809543342457762879991640779442215059737836090389375081579016186113609748770811049444230479014038544272965937140727188613483228719341898783436249523616053168672401250516002088545107535618824172013791850109484059802128659634387753932220028861543179779772305151254531408849669098778107392006670138937349004681281395465809828380759688414054404707163564309998615957637196792733538466398239773819756142401951120654053354528476529594782453526611304502198268397550360014222124523129146132003176108588145343642365335756462369497435619460041519225015719840478810152462270814824795873797077191961132013089124647143686327710389291366811108756944532843472534843022633755345746946811208640735581212857126394760377908881599077479634605052698357090651427311629868630883018816849018106572383017977801938939451317186265365638718839382011056016198391723039019647545587016970017294217784356924359620637635547371759780776267106828695597227103313595321347860665657728259157190400178151904236985466970368444390033688655759978130456407232936288792397359687172468581321049206901055249963902601944560212841530954880852007999259135115717060011641239491700853281033392324830842915262668900902138262921386644065213690516503832265630559436608262577100282580411455514372223475269562835572274034338359879800113203888713369668139114729907063178057276321846386276022624624823618840168096630231487693544668164190226665544124845739571267755503727271431358654519363916270566004163035241614114906237667736959698849216336930526965363783555188747664054148948192155339129547878781923520847472134141974448080930463677647825215581150320240971376012634645072882451510165564406853137525261196734675156779779681941110135392540105434858685840126370366971720746582951797422212235398551316014847139409373559541840624878162059703278546055942831590279285787934372777395790274094456130832603725972861242162604300483253687349655093734426030557194560705912475149752219275741588358415347464680650865226913049331118542345836791977683139970770443146167646802474121637255152966782752663869481160324699102355845809193789262226305460680382109361575725175297048569871319907541166601929409694900546676431322329889547622014033466819952081354422950285305903781967917951707561428196156889987867062155191998010997419509727533469313855230422002628300068855819908819833299623408155023687470969156760486058934314761462888404538775033180125618710599842632123049806123075347761021170050034307299761955465438718953648163727738171200444905524388694103097515725535870038881138312413420557783484417674868466405980539468129193325075874258615743782608623221389887404695863693935591823505582571561628361672209446056025288192524759518440749194887994353304018969354741675673563352991983626517340735658716032578054208018675636248401335411918364152323968859735744099719270997935063477864511233346318229037521682204874114270791544001756799265718284711803778810511210025120785427029031976214059955544874107308975456238175173281896318105186996425959991458969981143417710430064796372451776436792681647082582257824955425808804641578631534307079171010044260011177302294109950414326445621115567536603778149970481018841066696902349062340132154858104595820172205510528095549765182819394313318080495635096549542624367479457127198541521804467657814338763617872452528815288263386421826949947962565052446766344120278453394482844725436698922381984680503326008775954382564976465006245674175141759203529230890980453325362180614516405224502827833134740396934846548290363186533521647268045983689253542320036607578811275627712406119152385791788110663990113418128450783839841812823367118376470800015724269167905520883205103394037913478191136247129385537688924156809270247686197706364490766564017474227271696923367335870264708414848490393539765720229774668426407028219190847982241247945316614310054980059052392887667058336885124822061495347109840810441862825548055322346934748149596133427068041169121053360630277921842498216420331065436101517853284471538459027247166289511861993040423234597264399090213531154152325460832991224204247775219478162269037424047748934439810630357712838009549153080840870803663837350997206705454441213029591917742629939514995307237270170415364196528927203728336860329061481527742896236191048328350414062420407000249939225745024617179329408207928353193665269407255944599099806968828827050844399246632574994600792042986449465323973861204179505212427321738063060011785376787169099568996674734130752643167760172233797724498815434102411413756510981799560546677324661474921731037030393983877227026116554878346257874133354569082738530480532738145585631399901294799080605124009685028647067730459209385223939212593555802805042031782216180874065806973058958358899893446350761247416617497556241557990104103085635563439454046265180898151998724996960780701829991808562771548275932182666540597115222527430697758920156535248064161349484507113027375406419583023177320645822322362085324006671864259865625979039238799801894333365487283317457744806936838573126776844059574470969638659651675749481925673792597009710439345222396158494412566761575017759233708418273229773614871591366295890585590376411153882534439167373198598219466370678017951851411602904196076445547003452514323026479291494948671492700771417117797432489607250484326351208157350357582355939189456061147294282739689693804878301611099021894090202740885158808553657645679514075187686321311500998538905612790144078514183788396979952589952465704680640783932815055715172233397693596584527506238484149267776787039826045926869126689635822453294703914662256822802851561478193453581948945103767462027983731742071008558772598597863403534466041621023572018601431037275307446841301262993350868509709192726673483679184041462517825852041770447612902405336123584659939081522770043656225690042709516180555257192148433789507455898369285508758833034171337625114614290752179017096478081800193681807911142629924728821242732029883930184476907613933525904077328399812440080689390030305179520845049421707375674338310822111110579877297107817250939076211691992858784475745131443746570293271350077569159449559561924989615577443435298064210273855545422897355016004223019907905983477026031232674305443512897580784793569477171171209993367829562602667090146130146815389978683455495222407787756743799423313661005284750281162456329350994608421240169587189986179336345741733865461659567652825027255606872910682899887486653335871434790721555426002400963418350270728191815890940684208093412803510965379014215145591296030602362442606798129017675882699896708947240690210978044738198392575106860569495426646856739079906296452779052989899406897278553046150739489568537958243119207358836625191603251710915923788036920088030871145290434879999481603875705686146050889359363195770046918743555816505525656757696075815257145561742704293386439241284552762528352293741022408308692527726158216355284331881245717053556334819538703934481339886537843911482532945624620840491955970373258430202376327505604210553295939711329635273406281585147632861181054105080664171772089470261840116024160464416895575502629517098958409346043801074164849779454757683025500856624974091222090409127274436598266305647991658265608665782693584756588036520502711395102394500904416904492145298172131275995014689516883248587882662646662572738380999590901338216769087904550221514042985090177039407389662887280323496144527404750938537528490051762552904877074861343908707042692377344413633640801430704989914790982241268009879934756379995281449359802433929528592050259521613721233498111332168504952384084865490454022762904400233119536532097049031110883825261482666122925946081261278631121206674013846807374738594264483957891952664679062203086427733042320435503524717833624635088407875331691565603843237338433912434849188271165595889806211360947803835010517313250383515238175744284935994080491815449870897796665204495676902026346974716778444595247108520496114166699028093638116009369070288427517567255017916266663061301515321450671760032588215182459025341711422975575418294901093803076620797107334643945640424816526590157852908103405868694005024761131222930484715008874393840244668094013832291777875138561307051232573485718985167458382283559380655771792956522344433043989688333326415341157444799008021392759900518866071766516733058876038670235753700810961139684111186767655270430035382775302994852210293136384836990889427463164253308775287261411091190833830267869606183583430473819662321326735617599835181375302620378679417970128138767302492147524875762641870014534147663422610189731065777617308949969908832051483971449255125608347204132273193794376483716561539415595909201294149168614480631070874040238598803497306787313404056396175286393521872429742724602364112699652176897857404084745881652671195347337949271707990308053903523878252610816785784116729650661988623781099938863095949210561127553648193668845796961564677129860221477172079179734178109216528652749727591693707223423516028226578389238333755022542540970798184470885789552131500909680205646538951396913950865759562190710945906420746154133845048483763383172903255278880646831658256482390520677181902602230083211204690823430316734865704303107481454693671261402297891308470034534961812932722147365963073381528833559895981863226948319420144498596868684225003791620815296677761634017789106758609981362225799984393373289036383069473965399688225009691703840391422711581991816080889956805606267492915588256674665990109327202281346333569994413348309465146086065771958148660537743159556747259495789704846565523739241908696415619071592075476580828568881090209315847184709503977617089154545383513689604163811712377983089888454918187995805328312689960907515161957161138271141331033901748110541676636234174629620572398076556429961981941734457872895339324062020940859369398459915971922421770967514140729676943042214507686568678027754573428919799188494608116436058446192315679488862714941415426283749278494777996102650407391949655741298753437421947541486302447455145966527499205729588352156159643118954168149259569903294484141072796361398642131063763981259049032409498038422380805105130565559654868548781085189294099281441946997069587233922698499619298638099897896465973050138094891822881644664009048528315868437197528977503266153253853492210378164318224791565844870044750552405805403935508387191133532612769582363443121704953545983000916383163557177923138637157409138604351645146468094965923975007335161771358550034453848077869341617191062611367846793195556531189565736895437128586603474681819069431551465260817262313031424299002065097676347508651504535210467209433704811631643669362241245452790293847979933564676901622677802949234274101879416294890193725996941174500184610907852942425397985063835745460701605268604329778043581679366178262110225273614044289955510253733447790106987554947124500439617353514003809637002332126819997294002931607537513818065205769560449835415848485806062310331902720540679806763449316957481750509833251783371522848714641945211225622428204591544241353188249033128085801758543976968631827764942423506222337791638498850562636068110523709322088028786183391231243618508222196324522095347116133827505658279254871704800345383407410374000064840313966226678104802631870048661095163795203960557696177222852238716327088899125969948276424943084481028101298540728601076988923319431519363542790865842485925578986019530962923384082101025040066505485419459301976950369910255412325267250797990275381645765096274739254329170097763419534257240466541709415319361031106669136007475329120123588689717597450565807745738591147711244637809981124863493326105664641115878219094069687545109844080137144190550766306026769119431754683268997711701566614728546415334562155534322501488465142397715916175306370642649359232585018643136381052021206465676767622255614250740449532321850096606408040657358803078303961444224478266500141064393448858277536571353683815856755295165789673087059675407143987424898146376596772692542527861331189526300140732352161939112860167207813665128593020951243725068898540208399160267007052963190438966439986856199096724560819904317578526694673841378191192527411060979660416938849155890571713357491691853079417981765954716710423550674934603557567926154698019421162712932251213186066813964041905481473585635170827353199119797904646045270663198907452213742036482805374495868628337148354177133267410194695960133594856099437951025313877392050299313922008273902575813914445464817972226908908990346108619788308845189171892035000926201327820258326679418601909673205355172711395643660607171138622735415698355586268716787507796844470746966244034022482994628321034923299752797380685304979835766130242700330487246915747705803175508878352782965877940134706978291065362217479374125484935293566576276720953015698256284121394434704415277640165984832450671707092692857579451146199542495404720414281547460006624914351724954433435287080454375638181609726954376691776738559820345052321271612629789482607934658300547909889363178405571888630188161859975848762804658033439959458201723915159283883879426924467205569685140926700398306421386635583787552331591791661307531918863245057373140655989454161718124670308451898511014225876314995230854982878692560893300769571670202653431977640819436033293722516078974199850954262200543831262210055494963517197093444936198630569836253258450090734294585811400394515557607108609170485774085618353462108770339252123343437013342411955206640240792535482371567921835353711522010758841167262010669197230348840025448216529117750811626504629681998832666134685015304438513205578784447837017854614704054690430188905891276025691950556125827887518684725009762354870848107439603932198383452419642840840931739308027679784177303017596279829176160195446566965085038661235977218980722888240591618484841830071038046748680959829635564835779942717951269198359784217648054381177218678380117623365413318865606471310979393807514883872180991009842623072658201493117665251257100421834640044959905085120424099001187441721365522979288843433884208430772370701071628061774954615762472871717403816250005350406009068105308798663461827817945736293445122393919281700428828575848573223983297735229684165166240388393102367097874537654010435507581651342120795228253656038123418886102170221107471344263996723634867146364958965342113707784366949199962476486360821444454907794972031826490206227898094171315045879481707580414168395903158290729931421627041750414500607351730788119005412179483794105270083946579208248062978922635478283168089495559109589545284153751879353677921721264420548443963235008533609696061698427964561909602789495776223243820288545937385520417916145124487707922170505344774268547489647610451674501078406308091568121283203270300157814898691068291018504574735027134387754857830478289162605250355437678135806630661407495219294342970252091524050311795576324494411541116389162688507118521340801813352105791191452780416687894932451748393571973851810018809623847592488883232689262784976716637553983656138716386476296446120015330815426086492700110840507047694241542416373884907381180435753497506462260123777044023802244131898585532532352316360595626014118174668887414466635122516336586893900784671918598201372068894005056091025961400175241820778685685791962346074437961619971811974723568844158412647690740700310112583727077781192474452415598665134380101560658494282162997426938454300432213633654596564122589489922890923464979447038241775607966212712925542468736416737192422633070014450973491590672172184983173887926072759275235732860471609357290223001737903213814555822322939405577544975306455056200830026489554323986188251725554793630660310877270767645672181642571220765938642622891404297357491173287302584932605059809314226209712596894338045791487103806240767232831272915942394961436692767478284592240711486690384176423827396870291723521491442340337756185321481690051203595091955487585258090821101210972077398974721219904787967948780008243186909535032336490827896911622393219063331854607034726707911601677107150352004026238013630569165191696211040574331688778931077689539128978316143161396445945906937939804447129473502957195842954929935527096049877398024178048120855708925839009978073692033403114597223832048055556454390919949848062705449355333662121930080445155807227287157369713891229257441478738495382217261726587088221472018200636408730774450049261949240937489912110946824275985267780402305624311361337400242320010678394123208979824199757317055652246648118076881319962673698616664017943235999041993108778742237172681520672690394085017475237560397255305804244990373907459834469223104986177231394183807134541383495456514159960638421755708878521028647816164243384616041020096059686823989417367894683466359860548159346960513741812774898134229284886168461776206398080124503486775320517662703897798592536115146153106578340087672191169694471736864230447776278699355587101845999124680708497503641911557880305388830545767004366766389610511736802591617569453692560805687297985118287432244889454848835746494987952124102660873513960191094452660865779294404323384393169016481295034053483651803814889321767904077478050192809907604546213483556743588674965418272238536716094299172888495492802328412251963832462594638196667875450866112799847385633482676329278271184852094021580612862018159168878822928190311807419301301441155028549579667321803184741856558672183023561943111177581303165289124520514325966923899898902451549936287369991698065163667758876478451791140836354063847457470059736105174683499077795282319415059766445601775609878691809978407351225831957573582676101327937365778841093117624355106684231634859179744731806390074952867449036102253025083113995473087893839509674341653712327039363151667629912250314140120034413322580876740770724469276806592699681367911973423281643018081973501498660540832327871517641151816915778798607107638082924982746189017394347708728333105806580877255649309881532127497435161388546736165786830859780091755967853604285071982507434977950396421575971455196834979296607059550825540546157334344060299937007516712781676909189197850938136687947050507120236108507592245045239758411125936821812143368196131842914929855048302737676072560946988985762766843069258908819635104262091134346526778537388758566066508292909601872883657909037816181010455809924548032153515664840858425467507129896902720853806994583114420328448158158765046632345676949989727124478275013040474670689810593744587859257839014551004336481587567809594762293283034489233972378085879769095734425858370955845957296283881282605625338116422633902987649285352848149685516132386716652476901772946080526661628272920683813698946391137242894254062205986700338599866673862686363390920244042918870117815433163616384257234178460865803372939091428634056072575619716659883339522354537259556363331734114860386697640303734266495470302120035055170392780909639566469829733078634698295066802795219628732545081764442691314632972128749772391506353872112282597396414507619010435446723961988971383070520084792059056902491153495144825526441778359540914454855989907047458613696579285016037456291046236116573066764570440250770410751855216155677070975753490865286496984655751461263451632323697334650433395017569584940223115545606643420585359479849141696387549905549615494061878025958141277670520873050209472820618271344371769241420798003584495413558554644205336977166457513596078993767717747323781189113109706568508040143895995249541057661876354865383405790055159728007918919332545246737737505308728350215357540339331259192958998096456452118208526344399307955873111696147212597175736940263688220233048982638597227391294683235496609622030277788006564558523990144116391157988363121485765469605253692369802293744683661083469289759487414869585493544441724611792455832644627398971315532320657304311381630113341663583807805759343465467445625701602773135061497538975524713113828391038387470221899298143814834151502276738355572749747034475765258950012526107681972947337518102321507205622192789876581330190341848578427718690455814666813745402369485554213809784350576376916588580362618188401725574228735883503217898370449388822500705963555283160368121063262572740169831236045173986472116839706824763354492360279409554679179158893354915742789859944511513179044711707372694009724355581261606821784244460636408002519089350375677727988107819448097943716586449450297192146587787399840028841203280949827083087772151965859643925793731630159141853083437636896470749411291899554656622547588206226953114881603904316565833098756987915255520632038501098768034046334630304397161765101868940945225582863651189422338790087619706944929695675247131869710885061432362239522326718621716046923032075990165538719688264690946667188574240800874529163057952984328141950744352842601404174961985254939545917863064084944343858282573362327323090033396559293807339326653816863351114254462890095505278580314750685865257906138667223187289790028336381704756697110788329667000489709699267876072628655090651729263799959291557953947463327056765083683157009416697358344928214379096476377564116842694113000037450365437707227712339837808671247142159731023458370652189087184800724453107204016569388346496384135591401571505938295887791048687184763009120638352591873392590492299703328060313169596595567362611136181719787072434947655152093227735082515232717614508720402136617243278191753051362173214977778295391126153742629220853320300417883442622609455405852224660358775327356653693994174934984642190627988307626219334234639267337314717271404536401296910218851131602736667171899360285193579759142181708690561891830360358312462499976865002367842676274481124306005293244285853168047710338995110952482981192561767649740515605867228818294264934696927459329904485825351819683302529448099991390059710123134736512681217699455336105563743394633631714324036996658414647736621950290428580658521741862825999301521460843891107730017678424820263651271129454112130443063040706997189872182225698064178783731140818483164347865834700895106158325984553982060018111711376496507579618609234670539805761668898293313822522035273606796639485108768854795216307094880342598713793421583791474012502338989107952623406236332065471277819442794028366828693126846093338599423861255685229528786801737681858309382644967946301673709967989593187593106860568605400014243257435792505415100286633469066914729927720124522696413335386165270177216124792446103033803752427298901531233930397458230043469868753890524002887487412245964811428540290437323170365175161604591284435178321910772301470743623310715919594595805854040884257931188785740641032099380757862566745164377827178590770043335145439919761542679634921532303305062532440681740132264523868437463280419079823569354698739092825047002969734553717760858725815620118989566381420513760314111152717472639204793890508814242033653603643254359515958572498877773830254802993756508844860125719146654556258101287675840666018571909647269339631082341449210969575231790190710293864212706173065012705765672424207844501396119812620199718291713551750256256259490846542282844835327768990079039676424017305442958357961105364237526815209122981844566774081942596640596217314295724961222464471794208106146544048457641085494581563075669750412959940346500062985067413497920872329584259068487719978191682427966850533943139093561590996382209000862243457617965909998562096817753239052860432006401028761347343828489471826616528867073408363717772497874327018579156431681788304102404691749112338311265691276530694548825695895248188131886027224227899344422713094326819058630027840048741356926033722740889360256522941011382537469595727828497143246556836845762892134674952990123319112512677107582746086594533185468884746766964687629387523242500951927389495794750677163896042130111237739960419125785891607909976165869149439517837425471277413339241209476830170864021040583596408897183643852000275237578914326189884941003084155699519808125609349862022722853406435375675690723136312121208840945104412337814468432852517366429156697466522740959216632750190511643330684463732478315175835865990751887241991784130762536941137509136613820158121029115021436521611626089598904896413038914430546647838759136403582147218643464917855894164206994156605950560673912091702689005561693892545591234129100437198178628709915829947193085661647773163214184989901397164887866909270091609781282540677895299294664117890238256172050252789378029735023901586724260707193848006512383264104491993132076673159222837811053649567936783978648350891619169454051905035027167422014966612222653952015055933140998119828844520389924918452173561199935281064415865586073347537556746834316001043204602245206571289894315317834560687888819109328289039616743681181531780910310225542230317553514132678264082440094263048098023273463543790124638807653810804330514301658129804764482806989444712169027067198097183665621967942977786033994372015920083651544741595009627891084616776320369117361090159970569206826746891533909265397485925458044708951674191409076101984701256513969748291475523833602547711351482708651745219310340068162446397468841093243576803040462513643628829959940230595742220044895684707514889736827553422996259747344959071796262817462420605886844385476846645715198996730397416803645393495767089716953109234868162170807880474747586879927659352174589317158183487899906679247570666531730812234042686391223869980733687083890626400534156690410618302037494155016899044637735637129399233537057686029083123246117347004520912887552735904096486084134910018619859972445437643580397674005213958520704047617510732313103120129506784886153332503862562030386208561256910471959863314761248342861106406598435590969827949361712655225062630454651673693394675724530004430808431474539551750816997296332265780142861056421039291598973628486203578699310197014181566764239610565816051846641420190932568343321335981686437898017236369721493899082395646069798285007400648578004489663030692689855932081878425784716619609676460466435860498719723235092535326387047208922992007800048755252780225496894425609220625963524524829927857849662863334514956130057879516214928479447942287892682667550795116957723523146681358319734801417948209025112957430515612652070292724397215105083634100646850827350717001183861099311897621457311117098329705470614574696539492765028063772024498080034084767003413700144267114774074683211993431888218798859416473493823247407313122948778855225691509295728054187799271500322188958609075858607425279202256976032571032945319309406091486815393704983829195921734942254275290183109235498483392848316983571696757853815626565910033924676853744801457592800870085560355881277927185394695264367163198598732276339760669581762037499718211943791556432571412591827795236963566613657174832803089869482550302527403389003101808007259303657029034623837812379270404919037376063467648154177256931602428911017404503180835391345341320988092103734270430092369046498830496066693278483588916150051337099155649575419742172380034530752831982531505202962297334615260166451632035574223617308327803153325155796678808924507846388304697675143663970738391894256420984616783648690203330546598873800213791216445301909706044477596440685531981110776013531499280204689609496151213381785690568662298012767152599239329743340158680038431109724947910449827852985693780809533675353582218045706451479741058842011900323172690445694221623260886048651829017975096617273924467258562440942840896318807085880772040214190093010657566178878175826308145208639747577781234713436184423931062764142294660214856243450131935849735072462442667520398795991778547528855692208061584752111859662331211867909319634815957763866824506077226855986593294722494709031954775939116128386059788373010009283252399082924070522952513331319758259788961058562757450528862592712657400803518209397733219401338304387810105410013006385705907384206142250776253172972567373717830708638480537508961831591147438301744110644774428215817652527877605939163110661544839555559291926495542258903288244736012362772187258740024207060088297368329484605532883706237989446260032107439003652867595406190590607036544464641601938405083231614084203284784437926369778741385917946751711516021449184195312602452679259245009323668855954429843204203621019495565885907284427255071914296474841705914392052156473976103474913042755151006896267852132482521676074498603355429016458391815155685481043248882654095552035369326231200499098210175397344501791095813014687815598216334650310166024025863884132717380778459180148896060703261031741893214085833448797972567750370654249917591574372639544884373142554808455901221433219546098198833979413466872659777944085747120298073298254670940307554827976557824993045146091835090141937246373321366562902197221264226479702078310611743829541625714081608201391917048427880052677453077933368887644271344116685227144734073561031079572795493543232510551226153179035930104534547123724316429376700402253440392998665405303728643855318074093146951151400999947798024002621584379203216297811382481748330478659151779353217850577277767457086310441278577321512555548986712349497286334371662663679725239680942606168718201376841976774798938220129920100823873437029931112688039278478101949501715506129760746377258745054031450330004968290338558370845858429128019108181714599460903558952111872238596309654902951684076395836668421507607451683077407415209163762877820593893460969216742872471033870365132892566796634521732540755744071707655615828692104340996880912277443773771950464102037508386620454489154129159057101081694259600112941355399355307176088374242059484384225915642915762131181762218842361349624053171289810248770261478384255687429951999373273929727379956247650561860786050868582858667948196616755220197779518723377843407300863688143098430370656893046263904408147977618772830458935913731726718218719620550028241648710571901077136434664978140750643579691376436442220101575578458728680588418277542508714605362202917341029166186222667017203640301564037661381757571347084003014967876126087166903382502984433984205240357236991225628414572001125821667035747367440762923184599925531560228107289280592957839431000046903040237784277167366257524713140197843138381534891989821444389961196180178608633977089816578941008078287141358592312253547068337709869670436518370842880520439108369382174631319824287798420143719672133158809529551525889054748268125794125987289602963169621756937415231971704138691711119311627733953622561380489157102074872829614984575792315237107145767326476128880886262067094277252001507878966240767433378272501520935388744329440155655259962707077484498367506036143535985980104007815939999745742659072166439135864883124059643244754334913961713338502138175581844092235666052075909740543083999953759803978014163813106065801221590932119373612644503017874824644612398321657969664440073793866205037164817544529335646913042253975102983742041945337813000488598455163573809169001115969104863557406981858373272987792598765027302113857448318685474759689123574423657582038907821657054171718403530020462174910089900580599502924483407544642630603079209327163277495173290276778446460723467523843695561884943786968028580339499719412327937113180772541479232449428846199735038811319925425484161634215953305671407172569637762027865417420844750869078416107630449371012682308556917619133069540194254555689248506885163061661535259472983167673595883356783394166666963504190654426630397576294511596822532849073272635595889790369928133307258911642416317247698030890463726270823572262728291841052310888816661878737487729543223661517485916323645959459558491639237826950781253126001319158423781703087787432318790859216481796431363992248231411703702359910299771576211686744658075288725246935868425457242668794737209168278557720204027482677733424221619409052990305614725499067834035490738039091163401983733456105418897446629470558389473105278428698080649026964142370646111961862484993460852106730283125270268053294488606164023017539408619065559125123660809939312324663519510970888437309945346789904591796532370471982485822899659906697119842075317482037066461803120897216030791751295414585675780388588567265500801293982214602684680921147571939048422353382648574293229105515218132314008673403961563702651904344614990150814913330130360936755860991687590567388105551548882207068189041510734023198083532473064102301497517273648100565586273563782525008717555221544066810944479776681522710262754703942993586551062942662700089516033843840938683096913686251362195774900592880942973715266013935524959469133083271370310180778738596274263441380875183753740970788669801384430686145050065550016828712411851058642463925709603201271363307621929765879682373839296334254267590207768142567145336155707207793866807582169568286130238157989405716684809086464934398080143577587833964312685723686899052550463502070961340443375846207520714644724528565045934385239946927653550318715273266407730494408559172282587271321395292016959694840892747909602644788121421052891044937594828628755809009890910420835989607270090923731204692487311752466959711084837413541167693731992854604820204533358700318074488468409592326481208723801688123945111988448282955724643090039694458419271138134935350231687192055368666843386307755973169710437791308988699095032648894268231195575108836538870991500682929229958635845581272959251498056002092091629100801864704079161739390610325304982951416713658465103811058175184178870186385976854752332912086765305623691322283464605666344042215902272334545737765688702992122930532539708901274115978647527436084947019269925278995867846462280772871996018044122709556767350997654654533432863988102613643934076264410138304438561456898851647021862288811789225695603595758000299928662429867462108892840187914816134158548669102331740650260515972476232720535456966387730660329160433908734172914636677910783394632916025067291677583284052198210891270768208658587643468150074922519145008948884004690079142670259459909415985625039616772827971348299173996099088456507871324449261075461601341852053435874872661627755690410559552687940701392224757594063580798186830336769887915027315691103689299840648735010255923816091338157748225935596926462906645245587813693012234110255645541171798042618199536584746346647697041158779186862209714107826369886270292568666834811036480790890208828331231875198536550737769872245791563983044195832483239819282311020088779664225536386979718786674484175345663910437374163042778716285862152842157206465260647895558368725640053551695350857402311850256692786917896690673802139083481558247491497941060621058076419374923700427131078230119169588334990517301575197535373294543464131971460488810802019336982136008682588969570038750543164665235616936315639828460443471004758706928069543065797056476995217035335382165158208768486955195499125099676206007954393587347464173921937771302977044957795827796028740078292292030552869453346594010091749092977737671592751566911836825465513585808434512937899212951944539720817665670729757019151639007538152180433804990105484625734431096847986481272938782879966472209198241912480514948169861424588666774554731265213950297322106756551988507980918683992599953360578489684255842916770848099392970352400200699327261542701646041711977527630643251167491025973838810977682191330039317231343457211790484348444798988313080289660166971032939893183134378914636057701065668392936983579647278503860243588424151401435895295435029158457214368203212817857375003807038514628499172928374384232438198990664838560707892450378184081277730786517974144069815532147376360186784602052587230873859896352031476275345191169307871364070803494939091760969869352217679445531463237120364627410123893618002988340782353610448792853581524363808447790859914347294301225054198490790328997488141521223286952023780401363523455438464744900067511659763503628500695648050174884402560701855447390305663195020272019069101851612513980796213514916732876821984779504247201937948492681447379659843230853131760614158038204856676823845644687901936758821477572965058389418059701128688324161105951119516100969418890711815469216713825969175278513856164183584809784426286791670849115992205659081194135180413841033100174153685236040621368626792749631089414778365012534636821494387812200363809146944697621585128589269549392742928351452214929447011837690499418733486706021122516129351359074029421043302887424072314548373524250085785106578035421678284165477413933276948128658964156113338509364611297783093714273761391064715223337081201951600694555451478005652003535157627282376717134847905532954256176742671125800327135188389787016273342418214331611374758045655941083340947028757410298357208919644093400724488128075398121134776009573889081376621501446854442423768466355946919124358329307096973043445870377664675141816194472664265621567186116153860898094241266650017196181296465874695051378793064985778549615238701898547193473328184802452091895390988599138809972715486148114773266918642178976150944137217019910236893542355503441959689321063328312342861165067373378874840802057448589766986226831240616757917868136622329085142781412693008670928854999907736616046755888092541139688763829926347986342706573396532156748327639776051602750135800366842699158590963139399369862276354572791383042114733051299433285557194159217766849190844480956757780821273872410420946320842729322547628955757930318648063628279800191662430150516483649243594415702048237025345389416515581260819620750095759606242748348670540258371012242431147577206409950849043023505612364171617602345059412896032698742942988182696136121971814133911189207727633094334764541825650478848119327260081006030386477573862178430746152065340069033425150766048908080552937559933897494856469476674778336544872449811712796918369136706264727501364702710734769446243769375824599548631343094952424770859861017896871797658660288362664718373728520359636219814144959742283959577315292705636715358678963181704522569551074908235756862637613298064322009929323392915964404418961077218816450209644714649171943380085827414599976749671908623834857350174975580175811738212953713116346948727962673468188190957482148076572379817988683051368927797158616197298443138101649429702638708340909424618788535463743080296603257461840587256071082697250420647836711880373793661782338901684773871924911953424451005676036065585757523031596749034557267869022242758961806153701520298306879554723177924518746309277209672631353717011633692120495504272158433460702326007874605722905577804715252871606915853636132337114130499618095987300753406937051796885200674400972102094509348205648122696645848506855670619945839990000029590222143303235218171405775551796465982308338235952682980344692033791262733399593565419365890486794922683903833707073209551473127763236557156757103623885500359405803933943309816809890190206183904786312591974206055303942501714729487113280963123030221874371119557118961567452873424449149687278526248998454294875565888467064106401434089346564336746203327338379767710037865590288577890640133864810965713658318592304043146876034234483648768890880906974786136608599729592643823377679264594228980108542712223837384102778550266986017508976340398483802402496250498566701909259859020789011784532711377495288174951364836115319445463355315679521506133900947525889182449382218596002537989364951990363535566061543564102347671651438429216578343559253357849876675660396342207905878094571193111230648715977187152331926695076277399378084726974462631001481170424712756187537258763938994758306201893185626669332954601552329031832052138816900222396514577476921653865050259003431921476647302138030072461046986217759204122769432146163830632655737684585244677842778581102608976287114320798446337728152527041436354354885378744335951694698419583600066595021190919513322589663882593709678528907439600807746395013151970940684526523712616183235731042857890667098057223378300160822707493194592837862715069021403847061820145470559842831202400280596048251400975238117293769404726549024316434123475959914141373626897059171892727279030742021411836593382186183966073342611316083327987616561682258575693100843389661532980794039611402028716907705860210555615236800178144088955665084642715172586038014422410980626352181373490961862632367993472208719975804640967317135648599770567884006059874511994369577601513543955765650120159657794781894205044140330907145493702666724916500670015373739114278055031333390713783508819662363982772458808806040751130106043349043561181409600889016657778924137852294241246115695275775472132047466510601180921290131623297603051040179852774116427243166986125231662483445429198983308642908097049896850285529481191036069289590108629622151625160003386360079425508200999890226208216597408868084972620126363755862428174295787918507013136061033170012353806192504212793007990684015730082373464639897735413835711785963664470371157299842296521313768316919606560727321782530692643359606938092960604196573043820041073403337039985193229499422186015866060343953784383152128874047288029551748919827629957198722061391529897250454437565644170385393304759116487365698674180773565348211590620562059173160037567576979177913916146402658797436881521789904782702572707289297686856626253789182010656902693240311731252181865652045045854094380246721315209904185918129213360663426368472158496167933841192984613871831721099273706803797820754021193316099046391089477076046633107744545684096573378518643079092237313629626502477657532562336875927604577253978730108847025455691263165140074573333649556086695036030296157278101537175312741377850548355103693680052139882080735054698660983364315939553888235758116772134308963524499929036732342784938797049559316505605339403724677036334840123752913331387735009456685062037797300611313926931822261434091740488160222696604621721015930258249834597639026015965868136284138728120924825689191108344395213497858389142327599716784421653017777810544228093021451678361482170831631118601307814655851810527158259832537663224652486341478173089324747474474944776572660166398765142133116772265845267950271703629228696139920586824860576069986492982783875405704813965583840656817065162393033466856901897700578055359595892382234388743252905091855843970875862432985120047806158897222491576696458558984038770951055591604762163867855390560645873435677431261679247873793365142857318796701730435527893781676184632984872142679904335551520013152123281030584892332738968328807555949342621575998892356702353446284936713633103076206587923953632342654197103798381201091053774364538561850564777643180776962415401491543404518098923328918721471554740653978060659041908468129464796389246032644426003913149807690544133158077168975636680975609802096010198623010734021713366954838828044594078121859298243171368931362440910780180522570882669621542125066421292040616052730282826617890568875332564785263072001723415016146744779272833641709739981987601821397155368632826915258329599837034353980091352418871354661581499123294046096554055407993107682447582299534802943476104619948830558852353417390607078656073166982853556356013530033032013414531366617784161968699421579473925068957465568634189088873932303191919235616871981910209166115084381284453059620926642280761762400775036305026695822706648612605943999145636617027287871316827592178603700039538815907004073681868196285793725065619052445809738735778353941747796286400071472200874058097215201217805725797131983420698027003793743937252718497485274270686215153078635347282351911981807990109936736840533396190280469915123174756439579261594404456108307914486313891309040087418424311332125274492917723007990373947738711543585410862250424977245846718411167983908721907375119165002161262951461498748558971394551278849793478946244940344131694911949959303907297502310364131489517643597204037639741484209332102109886342635981915486844248434062261597233817142571726014838692502132895998309283713687490794633156093158609313340821939090608207717739877130736788002163682384806139486874546575856173834180904419959158467961135276337012852380424694307657690553768367683790730505113587483453708155285405015182143812218583865161612167693058796268642331201256224138355677741598649225231074349061241270305809006004954122875562915776567221108161183885964884562440638880923279476306011996297280511702746036584284470182650173151416721190168526987986012029324333531370194863045600526557489277783387001881160016813552165101516067500938156633852506623135595566795576003377936640048336515730220064543682259398900445033876689098614582563181340541591134321455933002428795689699159878970442882048272233655476522210599278850669912096763532132314339016332268241485293965052303901570004533711882938709388474609655327710620503385870734268635890508908410247228640926431520482493618323423957620556940020257315691743421535209678647874687233993317527043059417291721932596053789744247577019655472968797244391686720021050333604144760708500507747661951000511511269934335053159452026705263109053905530884254501520656106265594065486508674438667245175487412750272077120446111714244357235047725317164018266315690235621857457744734878869072355986312033657738002649229314559645435317130063792190837144178774434490640723009088761776820465913917201035078613483671320225928811927917992265630843941186165869867993280832277978132798640565000709418440843264110550513099586130753144258749956676854097861776843479376571003520052155230186651514530494650611437659273598576331201859580443731045506546540228425363133885457891419471182218899379870897184174256049189268815937535210272139199895666965330070360609181848321947315192879785480024435881503483211601618533936564793950953838433251960467071847435180386365994777548059152134028560349761742100805012662091707619019192760815858179860821294023614494222364589005987113743433748579005765561711831541338096121237993938840249765178077929212287938379358815155742076258929376113532243283508498957611913959351563281293739744617993594683597385545999494652494161619017643525664819067182789754429162661556127137224859275352109818683904561679205221267875238592779487384446858255074114697179187048488557816950376743911366344648034269533974040916687136096393287797410524511250177977818956302535736336237144500182676090158808363563652880777623252285281956520971474932976123480149346794677786056217334741423852076993030590176853331030226142736178841047794981719032875175302073389967529127926222239399585081667589259382899232813431261113462408670480841695413712440315520103392729035954090444843080718516021317046071893273561727396690651527339391723335261136540746972612652562765745578246657871911606080557037103085789808296287978420770177059170594879366887726782686113770420889738183708134660339739242652581716002342457951388508819466325145663603416447379111012326747504057517200280521157656258024592868494228709889957885647102399947048942498618229309225998092029953658582716384586415000589666276389361346349715772516998829855701379056233592847346452144526353551342521507740649824509138538877964697620127064065970311757596962686748563426422524273506653461196777807786126671226976558403366523278173060430982930621841916285539745233579027816914142011162648224133645804806214160568189244381652697940144669830015650136921160499565499110498793653085353133394105159673801911288507538674811753117063176359727827396675978228974529092983666734428356529948724051538448923912587591171706754734598596059517046983854989775446642162763682603717552682621798744141587417472663431051395876022290183607304087876331188673199166629211967648709340214284033380418136631682826007237873909793030124528538166235641588699585537118502121921118605319014175812254149168091668912680683112366611838382393847883895298846297822640176331750926709717234865443176205093081427994345226845300008179114581332912662869779420983993022249893102587141167227017789764586037903231275662409222467575342885653351002611887499897593584062901954116272967252643494766127650638180239637538002932064674539513044224095573820753324273107767118964585097756724070263140048470512079858021307970022016730553096581374467406331114707882404093571364019248439614499233615625731679180186251951678340706519819238161157953390938395103945782282815012714644848424919479796470878141677808029388306127761834041832161146099608267733980303754461131307181662574299180010311993438996613833356455450811831309946291276695020373763914370580873448628794507416584395610987419241692085805720616370706235787073554662417428924224014158431765461890162997241284568530197294675443343161367902189409020979485241763199361439377455551855474110640078715280545723125711980953852629235786496798059983745964675884550338396255920114236374068406349374608486439524433434215715510225500698571704013184357521653644599827029987922335159929261206319542731177310153115402376933860003511148829118943062336451535236414785653028365734180663643587467206745875739197775343284544129052950466176232086257751115506914003407644379216513191313716246401008795021921440785473017131529563007767118979289304183071992487657133763228949788654525558633070733037307058435210129860890244278480562391594968731146872370758653177514548554186140429024134614945376780365082316952165036053523974948920013321065605166659726858746566219640512410152694003053219750051621120167033867195027162590029254190087678981792645977694249832182287592892293149632444646427665856347076554434711401738468973268502777547249955347918305607297223664335833127220413632288782146175563891686207057913641798952324947206225620240329850378687925203575784518529130832234643238372367645391382518852202084252654113902807484310591956525539949833488526529596858086101002131828358249569262771942854863855772697706305032260666756537830916936786210396893273077889902606241075990602596103046730464016981540553536290689468068072865200148676121029517836953028270042080234729148571348111133710350261709743787856714428015029336371630716769734920247718989975605354459758453079971162852844775598660829123285291005956074967791256556393672249831875323635916540855422431448127920802305633357492189969443634691319382361394453250121304297770031876664584340316429596476610685080493045895923032198408082781572027295652512300030066768781166496505863295694084259445851628573739233565192585035723523844882643555359607430004564651584235383606810651446741441001889668958962522357300118317006619416855604676050500606857771366503454076969576746253099712849840301874685793022705336605993446952707556028030431942980523106494235675270598081869569208500807395946902464927207718641231904085790275561044813540481737202533293102530907544591181662601552136576192803893431540565864719072613846867652960219578305348467351193477066024006207600654419284805613950790163335259652292921023966544777660199032553499753065753587859536904851543823929590726792283521546055966934063033422706609131761854863002914754861749806680155210521073120382665530607884419893328887799722203134148986517214380245535916146411201495216869791002350700413126263834092771409097230478583962508176076569404013955835515388136515214843387819346623151194632993920483811006595479411503294330926945626025662344912213424739495181273701847012308923771464440923204379025066472702138972282027761238920878123605242875016840045671863949344100978800241248680223523371369622048439043783100061693078254887902321815159425920487315698619883646192767152468086976087981622872728931480713067781311752442118192254099073623612372102943876047923876226394070130700617995349614594312053022356723068597329589814289504321237181598352366906445889427342915546939350122222439908239316424865570678421315022865773920233605283692880582902145369764410966520506693468591977349166472842271671950028682502933571503118361649579861035780655664843028162277768288228468050184354837078620340823090069744211330262500931579977826825987060606021841652739475630949694423339735879380019841522527530354970429072641827506792502131229546878936403958297944246955911898891812526920509226569838334121092503161644615446866921064848240346667022646136657722882799492980061394789859805567012105239737602179149900713479580859654660564253522402060678540748436757192495123095459964072587724030747608912889944548337726645352141328809315655291343666424405231723903859101881285848089664226571057459518216401201926802010902709247729892128977304939694969736738390532536811425061719119769579312029449746261422766741179968146986940698079148295709210154612217744362444245615290482819882454939733835658679405858910062852165241994666516354666217450109249976451496332947631392057959185482772804334672815067867238501699073967911367915434521830879818586151270660426806272430537158935339997913133923266065703088710398725993650056776364664911383590735782513632517615442636133974040170856839761472931963770820679532764350352618356805109223195010442449042359449193402837612637113934002722543291080612452731499459088370513803410702883609200556876622447401245399182697798623006457376652636203836719848806942794704205996048755173123273441540077340145132122752937032285475100909560925511631125760428478490535808747118477710517639295442711988024494519686799122457248646951281913961533674710469363056736261414462876678279669111452456658129896931003581253702438768495433852989364316306107683205182175565682979943095677094402641182250354130288756781165428692841205478600433735553732938677548033665565789569708710700248212963420727006776825445079540220013652474014712458381082957275616833100372701873259386672788185015082769149702195402407971457535977211161821544782781019146617388702374933823349642936487338236599077207064527153393790677700854751124391165117816594956188128102127853397341082963050727759725665073617984875294404755220237998024505795851645954918347709785045532336614119775836964855500677822623416467894114064589766666823424588278293554735975790597966968460798593828579038354088546891638516347255201821794433143627783176826094572567406526806262136586303984941938302426507780359161062158427955917128460812774246478276312134706059220742101454923518044074246617803980613577890134396485358808526503297946106739660108478210500395034103950611901555522318416970360911866447085000413717558022596810292005015474569078183724180794761416828084262377365333765247259510386077678882653425358713560805826718866230621987156031135995692812221227863011358849818895285470611622408635143723471919845064916367258608343611910774145468495208272702577314161221438192751817295334070771480436955619643617668099768089997858089064777534987165675024996259010652450651903572350578309545539331437828953931330700832195812884065312962728417737899485016834495765609894934313703407205236645771059984253362654084785865368566543896126249146638769659745758854345700703193203404762328685897638561368409641510005230763333529911133437512428938598465177637002541457522670191035034190701618027208375766974970589717728962453167393014683792433668009439053002646964451504964624836722449932486004568754615711786203031370671521901374798616900298085961380159478959767590860939901387812807607711162778415508352821668414143906033431900433198046669247977158249123915939079709473977312659160956625471495068482493181819436983040092166580651670234873335344431251548633407081455279391313946902999093784225824172439794274748951007943163271673922205281804182842905283466364526803532021064351095983986720937857241740934644161271642013906157709049497451514987118907771463332121575795786906251980236866372735458752771331189316589316444682750758448009182687367775819177135676561543906797427503207060743121359532109627323931928244932944136251002230904999122762304426983663839882798992280570698922660535681573773633766990736130777619706444113435831273209581404203919580959953708915195797046451889505623291975596206857017550873719308701399186459170484187414979209257709944677409779063336600094970661482070220970007480928538632686209261746121744831591813071900707843752401915587260521318046580406747102610191904771146769525983920252788939852596329837799004719975128554316835747863772082361811483077074926043731449986093797101583281008911229685531024694483350102890428385437909207307216176958447116629164402518168786636350780497118838156910131713493652174288732547140470328045286421694800840178819156738338572441725118661619553380414893420616053237494360669228862972415326897621004254599022698969895703655558839331729054497857369445111461712139778167128675948735602470520996488512983589669981287942685293857971332226149425171811226665373208542047067194930343413015492364718418210010489140452514096466594540789058835372816066006269246561849853906808485483044652082843259636990678009737921142559101538130535798033791221600622478928351430294566974226338659292578574797154462886435286573800636250519410527201753182334809624245524294116144374574625161145938764035874932671520506798453919912838261353663430440244167408509157693915125683303216718767108159384344399860348931974866987443700289743208561568416816750607266305096955761580280610582244273330366998179702946805442219397541567816178056759310625936576378412915789509766491959324149161953710794300114238710900052201811623571127525109820309139639714020908237665579387586326857057820833562046202542998117799074654810963394569501182024749346392110793740293871727435340720923977612566788093647676250893949837170484076926622557141413649519627495422325055780768275989029451889315437507923615612504808960550805165519480194468965243953134729606018341873976535332939099856718239377519298297641916533330272578076564944517881861129412277722593695007062610655684609405038659119028109249801950834718426339614429619214745269458810302974959085514398482946521469169128940943578123617100303242812497286459761363578531026403758949709762662122824148452950666389101277908667742944535096892659769741286762657097265975959957892262847299918734677906115671802879023081030202231777733475880879693863135113417598071120572891686475360303888304421977567517277229679837256776915788670804920758056467613704486661325817708701083484319002288344751594854024931782056414003100828091160521729263874208371081940735618017929891538611748742390851598229807986415727434981419426641810460660798260632776758831903935947442866178046272784135525602633439916389872416115152115408626327856678721328640219153754724406676950321965922168467352526889072757931542123068545623645769959957935242086408196573653893682063855295378838829972338630639195451419874649630359689997656339393529821781330967764550364013274639214987178935008139018299541318709036594417514012426971880756666091708257584137499800026356955684172550508091314624784276912959337504221430454181269678632991906354771341600339139880340161053706096783262961821087365734424215488641540813869845002504548048553506686360659814071313897277926471051795647996957496189904973820368769369260196388465699506781147753371150872588287643166790027435214758439117028593313337048043652412061403805690141848712709582342903213763761279398076475544726754265765350309335209273524934170505355619085841695880867533308374361552498668329699846299173122173364433946533930251904456090953336204274863448273397945427402729857906135393300633489463672224835064941414368314426157412313239447066808521596800299917341492416697167431239008593672026103919067256073045489592405262990742267668129763283990725112476142415326243745590541637547603967000766013855379911380366435858974309480077246586659573171365355540987193861363439037336983470062402555067005839708230484113571389884340501660303015466396107270939707602976945452411852508923459232531119290063012462727785601337871531248398675294494348500839670503612539628863744176065356697982750595991565203618346841543942599255599247510653573573964645314940122824047133976247250650830803583004180673718209670054020057862178326445731904700330081849408759173823395117657695534233244306686769255118686223844109110170360625040654834734592787829682741282251467369231177994654248216388181285020453404887929041112448769253451045340245995582739235704024941906703417813078470122014138562177915610258838865941044926201432995900965942251969536043822805414847625424301061566145921445641794276637411468666237559381130881298765861815522680713484819243284617525019707870593399048145135584725737060652849954795624001565194883916638311208545939251985932433656147921508551561761208380294842740417911604317923649496568483294077106583072212098367439660715295074563962559775427909227700609174246735157502853161627623523925605484359486986195942485168612503693676451931716685649854521751839124815536403522395423329264946733531579456241677960843877392219493016759866276194404046508377747307651239567922229307257753852924220771042543716306912259031981439570409427506352961762058345773321034458083248195737641573204156414548479315649163659815766239966691528092396030763078660511230907439815049790012471787465251149271829209825644721637781130494582512304422146565577534492506727474382945968856099398246305374126165811763066735415407999718368576489583657413712235194869314963170900766197722487407921834509170089850103692503524188575713848990057549855889971894580625632388541433894597799942625625868764968883798515210143415978305660255553598222508863170007318497750056631656457556441010379947942937395915459476444709751480676223384980746997497785405227568515757189506082102976954711740352819222474517419361694031549462120974594958561321467017607192179701692726330981314488760699450346526205273418171069645414188859683376448043713810669824202073413229807507384439152684623407613936356862207355157086088509645649022184584797007478693606536966423119990398458038645297846514226556115589123519492521242858538357920989699311115243850240769683255439981996591944501704924279711863518103450799676163297947706047156533012241835424881092229135272021011935313503189907275226786143548076734838519992881373451028025563640499759710802251930221369432611174756670319431432091062781606406917825223440466435939934872341166446831678555472628927407859721398856084821181524840077111829776420274820716860433860067375747294681695101726106380847579148903168496633385802039432151563696547015053287183687885449616221944960273067969955837573784266975675949220416893293501254841314642734654739412398603112475442018467777327711514163482552403704861936109912266232865390804367374587497749141216159221891619798051157442215173080657842313521213834560631882812508457966699473570539795962293798151746409071586313669062754304903428760381328285841434220694716249057400613206038171478305726175112905165630271108326992477318788707545476633946629913996457407753876183995627669139861748575294816394182033709221860728217832309364213051124843436417187341506710698458353713875500049353943548310992080935616694943973538846845298165548117263005983218390098377737268773720379879998886111659499578468863478402512896420498299343371732525282824124039202886968154585472625985366980276834424506873696880090960114143162045669181711623857580974370723490207315550975707053605668530791647241265072548176538984659131415400983704323265049214289572999964002579490832848059377436832934805006436507584334850554388977510886640235203869114359159564855497923713971236873807591731098336598339818778005301100094284168700128956829829845103599573162210801009778273246162780318739605454090691397946999079731948615511776823793950892091467704546844785557208689766226865720194578349619919023093518774484092169361792296059802207582061877965240141196886658933425691976528590697972890844115413193945744319537673109360432997641843565752066695929651025773679326128601607722974667105831756457360131533397957130892950956554194554823036919299923516820161947458862900546413884727027824451979034822930412469305428559702655230264119326818566216692207316095563685403265483007206230827837462785873815611747357884919058719161241272661799853978634954916791838669560172337071756827151953879722969464033010807375948103984544101427343280435388405257441748575667467180965065517169311375864189993851605471855861703016031149677112794188620433609575941183252879586194344029607473764204907878766320985941651107470257512231555657706095997521801748965669285113148878782385528431520410217171783871906982138039426365951837495162783377039554195572327374618292687687834882358251379263764120065169182989973776022380747756740578175889757206840275823807997595974630562097496825587542925863754524382470157092078954413796328068825556554503397928705084091829358505870556539433105953211497460065435900578034325865577389012136437343880361895681977337524746997956955514536449783860204029865368936378353780612613072272434832493236534723484176738685244540740271342006805387752999523884310485976147047352751826568950502333395161506541098717150750314336975519500998211102164942966343383200183458453607416307818942903482146780222026064145467917589437823017897964432389978071051842719507141951557316295795571978568641581464437694733187754260321064994469982112795872975549840608804226989871494994287151045053724215656924018965460963311742998699254147759412523872286197473836481677592826566719726793791055827929429106160772109790218589415147407739041603372458679360537187010404720518028407466203091932104008644120930263586213993649691542234665422835627879133266864575028305747504213932436547167131047815941965349816714103166660399849857676642226840685883141386876542577772734262953987009252113162028866654353231783213910027863340258867582159533876767581786966265159776277758174018565605973089504111052764898253720300294485690784905795631256581478192595607181529099099637766873162898506557687477566035595603112166092277678600772543179173303434365049773165168369453261535196477786363511019530939085403202064024505983014736542731873635010889407769412376455961509798365115587680762176125340094014667564844098488937105871708508461966799262511385867065980271057984189105898143505544159247979467964403809119801800212771322443984673358197338843744891677727725322142206371320604110301128975324811687632062791761856452409749428415933884144990855563185273362062872249224225127122658996320183422749000929199422677498275901614562383384345702581239847477486290716232278056302136941279939574463949431795863913591661819171224688658893506359619300913593602132462679654134983960212476903950801316405576705378494261470783367406961537849932669604932202587167689288810711108769634252159883233556706599220772145304170880772332739336330563928757671016239471155547218670140039487466528682186694407881952328150872851260889406149586714216305098411362484655585998309749377467052242008183323380494110860034854151347451133180696079377421347165842497081925450754991718373543524093017166820128668606661998299741011179594591680867536023685959722672916311634295588605774040489943476154041962982840169638029484137637795384475083819302927655694544046226051078588619550298895245065403562728496813436897560724654953457982845164981910824664015216471440593386646966080328105691942080279429940021569538684148317537892295750912424666856593859192775108740951120150651800958732076583040638442253945436544618961617145874103145890288779967335424652017332597377447402309860427033827026158839294955418935570664210953144176584129985443087799901517425830510859644401378650434016607949207963423962694980940906406091542269062575133851335167906118383176821984087900195355694840776871283483965196842743336917534561615701694030589100579519951333813602240696147837224415074744373099202092544677493752415951933520336562971447414471969636068165980415538597594839054246724742101406180480979911910805130154494285842602155121108693510021113351787808520638593660018256305214727897909602426692659812986575490029154909872297490273033173948321345623673562909192379555420359206515497029539673132418654766870214429278120499650919763052744839309507757364538088473895168146934741730138707399917684652737793180358090866774087811806712134261935373270362963119974326017514658809444300631523012418876336092374310688548743959245261916895413673072277788841927527217420520052094026430556972994652407245415009046659154084292861281893397365320648557847873290000072531030496755998515707359444942287550225000332935003897719025858107608979570984081884796283341493113650288746019910977351048385942158665911082124537568517707195600777318618421404743857397731321810442301585444507532746704624773055658220705805703390125748494395698370831864045483479903565927168606261560890596996522837281362309165901194663895705179510916108077119183216948024506098890670388503514364398315412935780611647972906788996927085896793577314417525702774788100544367227242501959338810874355332551726766256681387849191280570315360149362695853640343828344328748720302232966513397093751487059973835164233746970099012267543441599450788608667795371573996377930329649611205373732348405132383024795618041059256864047727640281744968897230883256443054369786507870716186310429349205148337990618210564094745207986798393367382640600839249661807081693496746257613821657448056200127344684053288240995891815402052299906768352415813592393043894511270792792873154151054051909132615197578106952472721506426330282183745134455743963448156257109194723927494689651698411911684583951000887420799686615608838807888543609233087368929144038494996776980452188128750606239813701726125216941911581089442984053047749723839154548817042964644343323575715168745436154326888658936063179792943828202261726498465960877421433921664247255759735531934944643522409470686554905976631306490133382875941725585259221960892181176152226484929288158061838429883565609396948007450176112299034233761137651387624235907703287569160325616485113138580230309037571953666355828739316221661380864473905123722298029796373843780062301415553314728327037844377361738600899846204026239026005150923281694524472313670196810991326690067357307786405475471462841641081488754957930406500257489795863131275294133222474053352725241632271710195974937519564614764050345458768715661639959884215782494517896285181408191925131930953119071625945059375513874953355404325245084909305982152154868530272678382350402323007410350497715522004762234400497679612662261137062825298251423929128705495450701617184689500514746229369298715347501152772871317676739903707973682398076134381341913715668027679683739698303402457666810019465525771067849219763422903084193390337452909609009828313430227300395972050986168497141335957948913355735266790172488131161103613978422957959163403107113303472075744941107660329035707338282326266728435070478370318312099142595822192019751911748198534599701263592522730572000440080554434491098195060382571943161298226523503365012834067496763776912341846876098824820364288011095911421755383690115507855335342301217909755343844061534507701221658064284152463398711807164139777308090464999348309166773756062665265759513347382448021670492115192951071296508178713707704246960266060988459379445212117616529948018012182301071957631351310156544161074361426661240140429575607051288726364651008156856488489678939006625890610748801394748715704273800442445504962493512939427338616680486893228559732605138167838527441171740889661499267027724335840199948997164711058203437863451103113713432226891560306856516930673331437787752567434967110369063867526268285115494815412903936446223388902300919545925325713245402502957490282748427319718725111851547005885184192733094385772387422851432894998514859148509414234705795836311051973657176751555298126918626403449292021724520450314186511283717201391537230879225080300308031896872019859247823407612922274685888251364359522030977410400275773334839557370782894079083929277979646674236305289809244335992551412404025287783871628026638253894994990235051363248291952086239096517253143597456055225515385255704546406454419992365974677325351262918642693785758435312110421037299348568738539994453242802380650157441951710532565585495048388354105877295517879180697653364054798950657704602710183758739952170710998973508255841736234372095352883473469146664035280237147462842804279272292484563497683986821708030005667191622295002864709906360410439919405232585423063973746633337467672519540524609465497904911457345355769862686959372436148895265578451101742738895365055886077854791454644468389926380359777579235786876771590367765957383728722924118828106810421151117989159505277613512638489507280795137338370399197980467581801494035653060436537497105710735397343022076830736404818202276816165686228177929029865975991030389724096056212083417582533533161335127355972650429219864814795541425330701379967535957648030212544081267640678041382761219694250451016427724492443408529767417190160681708829338963628910066289344008976663937954945023361223433253459691710544984420114062819992680370308586036458807893641799245994500568678441438097199491012039025366267447084022053273337308059852263113854103695720685534461862301322251986854338302225780303689361494837618308451958330058191965761388470635520495321208976950685227822018963031274830475148207378700631957654378596955588893733058239742205162324161609179834968091202649543190967378660810067382910019451072812560332743489892909173161520687463376768151438472852824729776983705291371662079300484179157660351936604857149241358996420735199285267009915543249001730492750744526179042249192357308342314674211689651206809025392186725700865951222499867870190801224823663007698148093285368697415225203431929856247792104640665517058462645369745045032649256967760685331468975702749294703021430151450636782351215043513156144321819140779059289203901894567436120334955665188129009082335135755495440214995589398703608787238226716094132461505536142814333699731943714694971722532027614660837546047519682695896681602106064073794154754842497378752091483539025760979965219832389205194037208856195701252802737594451563188810448978215070503950370076642184834758425150496059515610641694394308035082151555552796468959656871699073441339432332471238111171942617108518506353794056538847813534318461432891375472692139525729718630595508868643136991321536128429441063405578969196519257850659907283360960643643889183757606066919929411160262672550636459050048353319266081223159623660090935542311840357814009653845643064303373551576147312676227935197877525448970918422206984235072199391658601194215295530427493926548268626250586547710850075254985610592366565067732181315637280295590177376338849361059350965455570234037593178617692956819671919892818526732100453311403241908957653799688601631038974795665779519534675256232215116401888756861066025163881688667613747772927490635200767518997897204147345069572806429260101795178776532669764932557812020579800004392997150908238997256638619352008109519888289597185814757672046494995734412298134775600745051099982648452211324166992141507065605269805128236226237694229655355798778766775963946872268393055002049975577061180467818855539137844728113106667107555267746101573390198404400717565836749768851027664127247447701627499167683090083836270933492875484090800416647411448670058232819627872414187492976495942867156331469064824007867331831486284900548209833441386761798338667318577341848178540779723432400791518567023041315369794186279950159273895299742782255883725006491863395714188253531148694248984279176806118628009069780165335892516078240281439427472788627042914410520302097526533205430556839551781301299046065940657708915456172843025163459019552730257801505421247413345130999579945925441172872962655655932864654058946755465479528881984697858686999928610466155049978104205753244347293677328137434643264046550774140073597824279514711997704479289792594206285556636497300333767584092031346559071555006276165701419780877318000737466467013411049513468278892592819770064174993111202892808945083676064626084477775200694674902457492874139611053844422782056684617754664606512613848237829067050477099480979816080791718227534336886941597144675858230752774522742499336034866292590189806870117739604614730229750697653564308330272323778499212994274803819462922055349055184409125606985179945921812930073961944643842714526006641390347021284990065213450794883802881546563223881662745408690370414408915143453702878747464594926439706787457711418650730244183466595256726213894669933968660801288839101192649255278501449317605422595447009622765213576292120807378622485559765931210430999543769585258347053240799835303358963935193870374639059312556224265743253430417929978520320881879054037450029992960844507100324379573526415979742805495847036531634220485387462833902673745149003890135557721090454638126943936126099991115171759071782536900172296483073599001478290545811951943658959734796362927919664897904756023271710008845786923770819796862617485059450415922463942364863166290670002671219916125421246400652315277880737148617343086148373930908097011788378105982981889063288992006134310329138966918967650418791264893954278212985053266032241194311394838400344167786336889377974032551810819411803178063833167675408011428622851132251130192551845464064819726357655880221600621093047528348236571060056778023085046064507690259049253658362648998265247659029222346862026916285276536250427753555149735955491421244500836676591442065790315731535813836510805999178212406736636230267908072808029737487072037418543367048121093617138325562376985832569843021106756490279863832346215602239889271782731986744798890851015911070427705609347270417029604438447381634390889484509909238280992451610014591291813150871891883382458945356598659654520848832346508834369982143855975847277692451401373066644901832118286455298464167145277897199743677423474154557942741588395838041795863670429592007205848999515287503806025003311112776009813731502990980826152595955601908653760472014722557268044997821295580862617196294462615210202099825605737057377254909210458033607690014382441725380626480322311792778865327247988782543019372909170701254898054989491164837596426071328530456736257494077247627894413107442408163068116774161173027336194377434820388936757794477565017742907678043173340406856739375947025656238304620129034729444331091521430001788308147672441429976705079659822519910477006587767676478443729326736190299767958263176507622488189845040458983757762437885382449062449083683183568649495176513060376509634571665203941085077720234608198536240881232631630512510879897445903559061506337779508190355481953933289991065578709466754129678813400893274112259156514837381676035565268582498590144604889944816453958794024889052957257149748155645950041163643224887693502353720079293071387993954605181369581502107420036637604235994842896025906792830160714785590745406542870237225124858900259507210258036636680841255854337805999368925845348865426985986593525491220676371372408739553874890440576122814929004882855493649124949243975714540432167756597966651788536110327799797815060484738753758878790961397416156956254642015647406360659758290613952263258139360791242652793731253293341421384292980477346051911069869169596374325433695688184033614783275390049601842984480614748876013951808239172455713650807847947080228938446319221892570810236805111178401193192722194103056249858252663658006248429852009262910187052092762897162120577900001322902690175062864340168943863091618985137906758886809534740845970002374347007695366287615026016524681715347908730464850825527330978100171653642758038538015423571945496232995394385821583250246941298961354718762316321743263418457859769839508097150790144321705622882693021981189509732143767172675753391618258130550754051212223693800037942321063305437133518171569965481054808296372360318045509001139858286729948157512597141619582628544772482436755788114947007537214394905933123063999898195440302260807879020623407600224318448899905418686748485308240253623247956240793397976266036297118034268089641844932546330491796911061376359442230366573907567070930658849144650110141488620595813487906664471197795072921099349480414926265136400282081083998226202763805674410730278014638599143444994986274599531145603337363028099117173276270672264159191491363526543840571946766736674958360210424495146486682605218575189507672290924371021481888399469768025287013253879815972059787405617270331033066318821638528954243139884988421922426882394153713656925181551953501116566611880792628404646648778768926676671022920603124247044944481982681854653068810533132406801237232311084724679811774857192559210662221583729244917236790204222343179004181012898101602027058022158964792800073923970064006795848055905741967330225998605264943885110380410085967797617771626989789477430416823248214934348119923756515775818552104665418884181264671131231826784288692288397345058645760590081543721866999987060978555058403880865707965667627192337287215576798697915485471784216490443178330267362781013605273921458522632156252372146057278330000970530931412387411269947691173090410633457672801751618455606204497571553726916122982611893507594045522637720933395607360624688188220066429833101088028749470427795204347325912791430470772367221592880327782407229532244149758552244293060893068239848664926443891111466313262038077932943188575347153640594275485620581874476642673537656264143151323128880384029961102621558589140924191892311936021776594982239703696500374119662248109320395091182837296829519037266562149103843223637304750894200535481174439877880001711755724986638253976882909197438687982757726931176960252734333744307799073948810649416120204782339557852578694825948398420545422747899438115532415980089381558100495145837863391865232267170796701009349125854839723597936279768126407019586052141327746236235831465410698656679843331523383044721882052276335130499582164870723459983525411566454292196491619154290066996588667204789595569755430076958936038840067538701015284861401493967251241084683626634312204326265520699339815959006382606461669344540635138846773405825551995212180297855715775299137326721520121585131434523936297013631741561273376139226728182279807446416528368626546492333414914184054505463455508126719910442827722757519202870935641889703345242126102824127320227678686032230542313955396217971634346761613174550382603983128111949243430621628457247549657689111520184213363535571554724379511635202172517324958499620870873165176912142161965302764942497568144070943803384166572115358048658242631993650175733376067614240115950771591292676638719682715812251809212849008173349992279525401042015134957735802105300277598692043118550179031454433488646273633699042447445004801940123843845750235523328508333077633296231563324779873308826365732519470427450447136655598537450248866941909424957167990680766053828938623697200125970318631118132341215672846744314731906242843375957429032130453804629601897564676891095545339724205340896298503939117368831099682103649659918329623902751731118611032663805714087664862547553272529582804860292197327536449055756798337287817976158413164725795093559883721906108233952444271954242349408513122488052913492960075264768058119126357722568151758463380932913404511440706323308892548881118498389028131387457248766867951572352689412629581449377357218315462232998903740196127387716147462285759069465065440945645302966540918446627756701389856305179436897977622088193829861609555490012226781132785357800415226235245549670781389355276343284102918725332059303032659976291475367359103444150950716226974545067923129568692196570330115109452372700476584440614635344406203294941258074929150303811436935008174470827722752537489743794022247105147152304750406686644413131603418157288990595471261045072332276322746190148090960852256657146144051177682126302206877208533827720686934616133643161282565694455611039578180732984646811979102449217915066844978278312155093552294693073613056248768606453343584776424088739197595886130781088454523116766123197177244745875746638256278467293613217553133266912303705725512690506236409590794581046703195436275436481048852782406020567124761727045318304713965857230189150849138116700616866723502962690098312254883547333217155244418488931671507226378683884229966214620153991515698520516662050701802409954329124056313049935649976967215464118549009806898707963851874461203952018908945662413052672593806151455447071439027474245148529895183446877798071857674705604394548527479607431958025362120506453423432954552161114782229449107940147450450368821658092093102291506086474584274672690564773717262114566438593445763148346139426818437868398926260886435995795686230498296051756721940974369943235856871260886535725300594806965501400334142826776657834577361686192092951999899630174007388797496917286881228381492254185966108809880807112771601936107793334816118802660993559813013964768769898130073307518125774519967083041224326176791167524081311201242384484636778916925949556718935645256701425528706606801537573335675226833851762966693124299076633987043522753954036070417299460453518748835934596440856886426295355266404264869398077162252156623445601318757126780181492252691543435138855049440133825231341951082949427439681397638986804605934717220710475674073917253246540540753785825093830231781447516119201964893440181665953637286217758876633446995639352449707641343011016508430725514927811612941818538578460942471900099768379288642929402255981753986062180677288526716072912360203388250548270373328177347589609596269307062963706583569596725346908151883823445627962033751233318159888073257009734734591567222654441680034700661527241973974175305387265038657338123564810961952514342259010617788299314281332102287257314893809121712726849449883213703135063910475706636118950438645496582058083971463052333775626420254736399698069494597276421805226951142881402884015069895337658073314368660491036545453631982028337836703647687514832674121711746591739594060653801879817356174514526192721706594781491061607885448842708845767312229118167576906154684592848938987221150710817731316797052360571285264890170277988265603603642594610065431251528431812106914812451484831998474568820012472525771290938952743287430830622654922808818622400979639738989081716217468708196422089991932951634169266509483686189374391157138031555842651579524338838066487544550978842435166577161634368260514444330939819249416670349552287993593458713499696488614683681179095611948140850345929292528654781068481578332835818361561308108391429720740832324345394318360294174283076250042153936645822263510936892054926440924253625930439152976192174259369660027991187914315502317540787836496334982873233730134509207139663585134723663605008069054870351739777066256500278804047308134258738433664409469070080558077133793857309542871060242866230687559270329209484458578790883310301398133130443526505542326808781894384345757574091025846606358984106004760440239667077790030760026075357935575705724627362080548639176124532260993253280883028505157074745904533831161231244082928007104922777520459587937971680116881950697822586046426545286256510689652795216851248608334794728525690222163776718036525896705738378132664531161463457963378547425728868007205049701742178498254765309230968956966255051628508537708409844208308773351748060222108554787261393726279910764265777478586227855497392113981093555634757384416149190932292832250124324022418609288523266434093504036582491183056073481902309477738495825293221323463318701445918057276923280084378916669445748422911182985269593225654182290003608434416281046215341517326282799178398016947321357530278963212873846626508455486717725545165123964038890197672388341075043856887630284935893411945176156418745803313648119160487404555199522686227282577947877509709050765843794918815242655489381200376226412574390346371049195038600312460272777782293479595135713319648660561227368519428936989474926997490054859307405980738536841495384604752448388952420178806959350071591988450267642112885165555880247939630267424743052201708700243039836108086130684547250521397827440584441878192566950171379888353523588529746071710777963267447750729277287149150106563947091780460954024543187514358450782820225147285820820251686062923700486952405732781654793396770674964520066050594883375333418336384283967671496309819061080778792733183270464109295089155736195591929681587694162347061076978120841731904152707088552848033375194741330242790059732839048301200087161783263327346152098224268152823024597496569825261284200013667543671504021612718446212024473182724830267985298975105348388807788763386570514841986642083243111574083432829372676136449339623972277235632327888900973821012044355501502831326104840538415550032971581129825602868110918274694252199616598886179543930710230588636568323201797406556088583887666420684062826918094643388592772212689586321609567802376345998402600400179841686173076809633482119953168840262687003181796985253134656507584019743474051540037019878510606087459944669501454035257003154633431816523119811027008320099381946096157408119121673807689815059910524106719147468375666271260072969272822686565365246997617286025287726271640344125577393506273522374772250014287765897217988093319245907440227980569021426439425481086168706834781625217385057649107268393787014876998215550931416561859524500710257567262825951779284056288297000115464198655953525449968345439919772753675776002110830150881819854147376943459386561069320736797076471298493551694546652267090472942955083615724028048200582573918375295252673650649645328205450827657604678869763297037444556377563785610846727177075808255149645013692166177857654328415028118350315911240444618033661990800521360880357385128406547882769058326681835881607001362946695350710316558569704192778600593507855158952912338204630492181449405205349971310649476157860440032088560288920696153448602331550942690470289809777935378857964955002031765046276517405715406170605568105134056391604287655944926063873322899971410839137121503436133645142259986424829208305648589758160325638312816138096000790893573495731088963146240952801406819093123999898817717638985556218446780301693463530903059279623424021064492948310208506458685594333125395139524838688898062346679486890650903137855452250728662262683870750011352660291818955209926296756920484594326247693852973126710506416863950527379010194329269452764890478789076101263701367943697162134668881418919933639586018003507523118803727252572896666071662171424408019834788470121453447285991555577512065832791400531757815388568471286802773263857857441328392042729527926504880137401784521928995686186829357221339510448464882821735899576651296472563633597571214587783334957251546139860164745399964853976931167328737305519025888352383113578799168019033265227148164217325067043421386099355530931940995602627591368697415261669351800733010073347712770141982593018746435630965905683456340475293323748100923739616575013827683176358962432815247288297789361046954391550350282655915773984763264309029168743432801592361729415367361713300290173713184431270496886756112989693265296594465499667471535768696660558296310995106175792717578161573125856285897128276426779171689316580005721828235775000405956704409109666735779659605250605066683363919020497571063448723449863486714146678229714570703309269151236797430673875819681212986427235416426980698879790931784518059159901930243208904155530493648654898714577652218689894805439176308464525900727523862923607472070158547075540521099650969856640964372287015288533923562639273120465592628647884028387205892498913620141401164387019543641349086337928128164799463794627588889088646470966993849937491719882603931726929203942777681983683313383799583742768183621667987121421190501198920878193839377648862844948556180500608907765075158629277019592599324426192732697272823495911701530980436764138562625573321748096380286868504313937916168857634951731734859223470560443030172884025800753908911364147726027748745994192509770508698070936410551204321934903495578994074185271308762711888243078320238190300769074220833279777961813706633730432712975389193500517891619681353734042655631189602586400670148317603541154297223781992199556023858024503661467838605799056986863555406479548954720405639433339050649679126748131114051073250154080561646590080631515922117440237886515783921898294291755082767093268942903154938069984379333338691105277619859245256477895878482052188521414090323051816901214574000009966442659876813595238437727895869528100085711256186257365201598182562020216357308379209243078670007961373691021915105475735705150114643389612838724254673005051770323442384123571869697410805933505837712707198694359950796304714577450582336507964044785917607165988886808265296963837809706113313717750364278013101079515061628542206320344628466326332745483154440394667243133116032508249449050533238410324934639220218707275933492912672586293348099325318237472392541682113405819999541327517016320636278222271386691383348995336712136091150015173132961707402084824416264549590498444112954551292544778518221199109403287811888690571468617712886053979969818557792215539256717873481631609224827763126606847458353660351597799098967695958557320361292284432925853647979609412054158932642949070141158929111517475146758281987892607050622094077745207466321706415585266170788542750092579516075595593586947342495909558132220441256679434677535044765326501971237373175713833299270897407555978851283513045984552848837255053489638239935222169298830219801658596549312480683722635593267928851785450284402277438542102282490325780200694850277162127665806407460442951754134919521641600726850650926055337896947723965790504615650315545920837999411984047653281131765680767229529044545927040546403015287772775804810676349293171340851049207675359972862966146157420220566537646982643170513804734069779872530883891149438572337401186075160232602027764896907698543365147308227433882738695101099833670024128727413565503727405947236565447771399796685135931621234337544851903148567345541814753513518242417209118014685847208000730862144747606523813023525783587455301825281717171171015718862566712633423725220570050406098467854483788176358108948533115971540207042303614525820590385294533054215525297530558453819167532187528598516214901327719024316381694861068173772189029429012572557985990684019686316410212246831985853112323567481945936102796550518939314502487518074948177301109341947016827082389900261470702361643877766080942041049054468635485493122305933781024330895127082273531440571655947110323005705951169588095477233931840339027767987911592480395689850226115275444158320618765140222224029502054559218094927045766933472596857623787924529781560787343211974293958396751953897593814876988250625385358777662724507546902465810155429989048070089258311713170637950445268840612738875901584142654170475607523030375143208733562082592850178264308775160926789820001390613505871376592462332190404440055410942398267905897885139689547254922622137334991178564280498375609668141840048848730123001296710747784360661237285418203866476349827447715198814305491911669585617410233435433061542496201170954475619736192403103667583443494644378941368106444501687764504945634650421272848731047695308709883688646249809554494260241871226579845785739308975392230739226143943963612127146941410229439763311559861076503823370849856086741013044734018270146996320532480321622612198722761063082967359523544105278378892129976177519117764465881608000653371191361296724344282269125266390925412447450210926065513724173419891767557150588596357598793490197538783563658367697267863568522582833163097474123481253074073733073609998194262287404434549650747294904633417965646870617383984091293859352818225975882143718052913295447657845860573539077705255793937971890446253320489638960187738469072011853132503077041069244186558093130464544826576035620897490872484742374228448213547948834652793400540354495932568472177740979905736395866975286081479810254140777498243821767156774786614116483981123794791015664358048572783671091600862419885755080132281753843595684111703726561147141239651878899697255163722793292460284405767699251361815879579964427553237302394204383780437233958958654624999575196742575521197581872950935410675515939829373521611154333013101218397606197393639476252192033417790399006033197368283958253244627168591687355022612585968559972933286348624787364150024131118383245202231890129755644954732795227621021239612213463903158915659464565170028931151115838995840891206796472853033188981376388587555107786886133363310754707022741418500362131310361840406953168805178895472784920094230420492712867131644669700850727102018463616874856588970410659555414626982879264178083593342725702652032180950707546744984594470135607865478451604595391069748769298974155523133964422645501366382166517787242630974178641994515224617209757080825005108058544470468982995529324944355070541728582642914040967145656221243709004095792166706511165008760646071273762433734212149082582468986038099644176184618689572564502735402238330955425104263133356752324019357512695127790299018595816255206052521411701352429193354046859210129414428254516897691209514436280639457148833982708816842955582352399731139179320095324951789456655108842397799318241086990011684178564668651721746650762843567633742156096164220261201612394682596404506621745643494583273780666610519752481871694062466609695309599806955267300116765997688403728673087740144661789276382246666333464390095509747252303942650540425308932280146775346431203610557794395524480251412231848215988262028259644259967619867396570658675918183077336559266491516066778791051898706158876319019072007999420011210607273526635817597141241824062366925376555868441202675680559817657256665332070202064686575511021574253755022247021517925993343302541345605489426826333314549024487971506727720282217255867715657878582050820252516940114359515637451652608574994595025434389527768003520264717409086892423514519089400530971851647234523173506926172668878267171063688173881578897796060631452183858778693708734540094966693003360135869026540427097270623600492292296081310863820623632371577467779415797402484532798082450639053134742445006798450835594480744769945415906439499475775872651671793542742497006319636964300292292105200671567613966611866628297293707079875606803365449055456174068804328975947443342155278698562973267576655053715029185137102846357706980827329232531502006911852427392874443494647938213496398006129780887756245049988455372403877702348309998608366999859756737106958886271914691941912732072570723773540909339666469882967037862462373727420973226738742059575980803876288431602697568771412581404183550497490594915799545865238939194742639325151091858556902894393469505573066259692265689160715818537236650471672940961573025352126600539121701451300622014702523493475260476741639590659257143976196544752993213729694867219520214964209756903685163739345305181783466573867095348795181729514491253484081074026569849939436800822125995597654213257352321038454869578436312112594619326722053090046149457050825276388969813510186661165397142404647174358655196291359358309791076679204593365410608538223802648413571872993380233429856651508502649340352807197155910794745390065517046281762467044558322562717521852255957354599497783140787677153792536566105478976853462743996130611415112132548466122660618788735716028123226747181921528888523263669210346564873161965422985362182045726235421477498978612133979025337473446140068063972589239787944085099937220744000908744807063865971024146227630512290620085496190713583799561482945690351035198342287315755934262484661615189454945582022679624435043712298667900943181569004169208839726031268939689566193121833197827842142259055221401751680376956490743389418715932175684929262354393738598185338071320516816309514199459009694979363545894808328547660132882941444225114449681992730153750546645843363598289364660036578319172432850390018182148487616941457628961538382188701890863412093856427485936874149446875827103451741492004319567298678413978884786649045991569612881913618107480949910415708977401262815101242861452865802981066090455250499385987919041976120841978698760392527759782707450113483061035018278792965991362851752723479032019734473147292709622215939424347814352262747627307677104696840017100224038852950672410051667635212376481720052110679446599562233491873987483954834823498968805230934707587477385232877924798127896917631344517933729971274456248609576673293825568186446636406996989126898126005869070083209760165167026819637887897604890997230557171338375464999624068723855694875068938295763258938024541153299157039796422302399545609544464111391361006881586731846878265101696570049228345825139404655153170197076456238618238807937131665209078625310811533626689427061220107218041376448324303287477314120240683129201452326119540372701519078486970152181438104354441617173413916318485654737668111070220451081820922128072304433292912463824433630174338482858423379621232347711779389561668723780924251908129602793642419362818497894099020898379893583003242139045626712673457281618636658930624801460950559773473545547501396021732165400967206662905839818061316886700381870593781063857743678633372059557518427694758327773759194631398427243936334188376310834644995756352932716750417168969882165064807624518206250028262449568104264303200387917118195291985312729367041704796315838032793654739398572085571920350866575514020042147702348303894269032124325002588599108839418116497721384616412941855176171449142691293003597079831727614858632501618285460862041791448539282064000545434559730415821169028598568298410504602861296508328508032996786510400956486648671590337193346771943508910657314906780395638888566361201600508059217451379246327838665734472862863030077297595047516604545502407028830628040351382168525730634149438706851595639593652681449696895614564386488049450434990225567116629963924022144099768948708756714323903551413595210372444418463079854168219045043389657246402142570449535626454953662256500666967608460937064825127434811013467273425456479755805739750593124835487637158005602847134660108106254662722333463733430050096210519463672694904787737491240542069988757974221588879683851773214062098711827743157624181718478692679004155875071214336010854001360436143232895302095723593206714156110714319271992678558574157594257706146494556099955240100193058897292726685900152874875466168709224561313318513060175551312607943344023092295379073766331225859904209009467226702598707992776159900009317766531615288044162269427921689762984424627086362210910933759848947170683950956349697338558358260813169567621574933325470773488322048007903394362310808579052949172442306901130111365717413672920313058785551050396310945350309522183127386099095794188764345422171741633418986363999661149871577812195464079775575888464039370771934690870889655369124000306500968949198109100529774388490631250902737856046776237721578555870445997612116416145716077093607546517425995325934710757754435027505367313413114215152323060993839253691385884584655833003289817837400818187507152308062003130045402112608687745282108017140802090250193029041908358993291865938452890400184964371422767592128913492688625668113775493673103222674200933922950328605150189931727102671701377377747806819800920402807786005545214875755294099028732481940136108194281904706891140221425269741810465351455050838822651391945307554897808075542445696932196711005718521638648159809872679331664390265225713819130934736312569789201105396092428236455917047728534181140263932194570340601795388561843629589460649945644568845342602786051263125217008258819382970304457385544133883603080652857032846512716852124442381834142017783679437013947909311434814254859085530727882948450869499354859854127044459615954660370438862007144661875090130426556590695585728080074367020681697218351782742872128902008090696340037770891451901283937746713397396192638653047706793395605192705106723310309545779961252059096069452429750630455911318666948313642589452443235754979677412397647946688159576417355686983614327317002903251618252270030159492806177051119258911537129124482375524571696472676539447486109952415195614705969887214101515802339012397610830882199117404322356008911792084863059073388029852774767535322551612428367376979180054434711723233452009124690800216455917952417426782938515318930690929326615242566058188944196743434560227097273603426626632933324601470604809846778708159393542821003428078125408106755931069647392948262847057518124302884132653959725874119645501633325305025383502914686146161747856213557454385599855368093463342181359924918575130258547603703012881760936433684078290466439790742606578898750702329364093102214121746716513802406997054349858202349025939888642481855526553925237195681271750701842124791424929017032147007243357015970121197448700552340502077325700280387993297047543119931236570682807935238177453920534328898895257299242761304545427194317333299064997025898764184891676828540830611046209341221719867131576864161549942765384099159560690953138315503090920169456133454175784758520633312043580175872093948554165508691518068779796238225215534250322138840544187304695997687703050789524377319416911599888205225049978294065947534576511591007871639854156134567430809161131379633369817885586717413414135624336005447938745116496284313986194980906009398323090090581682947226257215013537238879393781220863079902350973020512392244563289022824925630413749658558184865137308493414924357086848551351597999025032461060202722909388853802613631139399542461648780182793753662504707006914739733170690468496031510552397351757320392674153910273189676771200906388728885368699332052075568758375636033475087415644176010816673029198608400088033630287086900996817485848932184601087058586682486371844389227665524576794164043883183242349829903765408347689537703220186680397101071439047386814021605267569248472784683431609984296552720748579837217695978775669658167622655142631388515000294637781009953999484287585441946943472649341651277938308626649058850081322768050075865491784512927492631282089022021532606498589990953615345428145666498846533354757620512792240078403065881793173496913854190307928714116189047357660246508018393353891710631101272866671634982962423289411483310313279065817329196766494850076768129269935387992768214746059295274887499303726259792961665658778639248638952415117432948621775205417617569093108558889684734942093236655697713176814012501242268464822287504292318369135795969329979172499518621868441296078646960289821200589293098838773815520117565114199952797094114378817494496821374286015622039179923668600485443458907853361191030273780898933525247553523084382458677566219560449284796299467927721354358929881880217667833747715123657426509442778788043350574747406237802259008494111884213829244582144873346591901591205179054776770371230424917211626591339903762208328444273876704783741454723218794233124360758848888277150458615435109390026436016829928031975068093664706662032055524163102898450382546211595787647567302752686929159669618549619044404044662199537289824109617707988366088887654648126634538353278450525419861833767864615055039379026068192114197238414612864245843323529032223609052777550047122985122950344628839055699759817206038916112380601313181051224943283595773306386309259851103472239464574086266531490001290366504156968191023297969769847290863229867362598578480167622526510811201633549021547144293743114197563458656015718299144811861268771834006238785484379786517856829124329539881416237544856686307737661037463235868213275665314854464506820125484535927360936186264766196231991833539147317185822298570171116719811432109085443425099503176679419544859729977895856841240078772661862914416639869008011219683133650969038860766012846159679783292588034904206339882720790699280679033647377681740600058441543858155577277229564975256864386894926154928924228110345016120281478621350616507463182464736997518820209643587802759464918366297821319477141145216382112747785852107367659239130608689985062592111415288971932787013782542713427563429480780133165976264287246002730709459011096433984874585556974092459808988543545431305366477491988150689289768777905239054268193435773863444151334186275763631033092219595620321529096161115368573985024605864701051667709323210306490109121855514008021660147362546999075778934166792448079896732417999250357972806563786242142984341972501788435717694957699239847452513712460184706931481550829969896117205821719110541676653243309567349995153203187845232576132862315817521988296302098228749431147653603993726106635495077815818858030555054266245179384251084726277484094162554341235438326094195159094716809305261858065381049450977858808221410763563947558090577247153072281948735583534654357518873551240091872464167043470873715849315882154843454493042808201465535146952280847830535719695273753237916851949729653135404294904660478288559185148276323948995379556524920114896939445150572700175590680499904065003947364242050546713005019226259136423473958794964703938493641909809853051219162155837004557731041966266250778351244107762562528573898858966021412834895607409325465118135324358760409537552121564336498604710628026520277097731951553539643675705115116692892979220109716562385963251817561593240977312253453310608071791150507230271714827180146896323782989112061027652717898816334541751444147306436543035173162130848676403691437684432001655598776687330187163453401141713568907183170271064144521058494882991153116497612678490939734810685490039497874035632060503073627357032415968708962064371706543639729046912221671642788853534337211583147198240230567161665776917017820475290577344397041284734954520896018554215313628071974078632123165397830129752601273112641440742190610669550525986681355149508384034723103687031255513725938458514992700501327593462777440101118628425525681632980861498878066552975426086042416068298307338181231161496917931406077720247420542528252231077270598641261194141731441168408727921530395179437932503895035037951699792518396227901253204631610971698139706145232722627936600708627139445775879642622991449792254520996097666447707699215361368602523811891922786914548471455312896040030053736331819603329414068654374220773403004603385896262262491435240745645704922504499349336029393087529334927312960091709522486099553748271054785916100513839204764478879768363884657133050932916582064016946942575202960055661957801927674293456677729155953699020610698986542955378559879910619070455826202385215432730319403772987184519126951494320762869532595171151007777683282027496901717925689854567595650741751212876239672473695167419919503611004946799135528840226940093183819564608813169211264965623741383168240623908705567153973971432318196729323968926351431492531224543628906244160658539676882357676474436398014057261425982234256107424316162548863671812353286877819050593006940751292134844398779257762726963544537130722468614513156314962102013883859371440188947792152927765845437734551634389337198873846881110548672335693279400544092121960934349067598389755452480505452080049815274920074787739628419996506533128269618867704334806369178079964625685724551962882319794874896557702147964289452151288336015875191595381037085063979729973568969058400778842970899260848457035518315790089034863718487541668538323460863919827808786123970194710265293188573721480904670776247401432168250261011266761374217089813675123108319176416693486998489202918027785135581501006674431059734383394473556772511783645804646461545117911035124093498491855159386689266593813696113035402406729896121976242710932538586944635942300254175332156565725024360330388461393299393786595927967896404458804607815305947751015115366245441889832989235777566093147716161282180466920613445979929367936650242017966692289797537307364481889831466824555230732125758153503948812726411504231721548244356124418252883500358033278670681387950462790687049011671237607164333985559130240342999861417747169267286880326625575210884784216774529591024550676930304179137524576880252358980974864502464188766637539555366263591538164059621982523587096641377312873933676579012003007305918409633820823033208298953534936324261402901484616291861876522411105377695269456121204618707431234195021931448323638308820027566298684307841806562123609095950078465033641754808098502135473394924775849530454811370207402632998258074096825612791634858851659144758879902921372448472706446119099236664757521149836486586703211095645471578791509217470262724373369697486280741725818514182208355170527063485096004044306843663516306182643746606457513265706074520503721120151516993491127839293391192223962543765447086105664574272556923146518553525426001160832167879442977942496273381357686446694333600035241446649007679870013156026349204756350349524791980428222218527805956930524990249954430939269243612764382468611426819781808350205612543372514508692803650535029843262285550604260319931512793874117318621879698699763447750388690980683604044574372286288057094291917693394898876580983873797269232235966233859693496512337434747699143631867782701148221401664754736561039237275041748176903753936733403246753415362773011550102093427218368909415591086440001909653015395410120690125060393226990181154782950228203223329400518386836450805131954814372720806437531932229698912349248103851284361756020740222655828508511946994884251258886969145458159206565487791233754270709845174793703995690267626201407506480275032723806567059132170827698609186429447506893768382664544559548308948604322257457938002850318627657940696147316281356917444159802799815435592406811490668094670992984574598701548490875924605374229064037360446774285406015761705325875571335683816574071264259324805169137044773568371830712081393035282142944475284234028975225917921516074010804236542628571097486446676357144082072400814533816092326203527981469996749572323657826733215109111802263693991601814712297202380475748395356455319694540800226480342555268090575820611244470175771605826925701851441394468849053607204361009675721280272405209240702361060688187138247651636174261913397763456138318136501256091104766318337722872063736159545647237414747974898359351816265143766971200341355349894683708489379707385024760009911586617429916170723378489353117717077152395776740308339314230502729263063108104270565130286484662539202988532879631677623038229937247272388041187544769765252350782950561525539475940582478242180671858245704699407739498472066385620557323344567434566045846783774213692258907310185599584106883462250352353728534963319528370625094250743576997497027094055747046645219762536141796662444272667694189303906676342859230048152445224261681133173758632783786881621047591537258975966869644976142248371194374904086560255007219893502650158163467368846512877064554251661078288560318969998871266451468410214402319771058241497970439246126604419241140601468338116122742268315690541247152897991464509522966270856875012701926725596500194500691612906696802810447518194292025511547494248704402631188754574476100184791278186581739976927180810007289603084898604618682819856309424121676316136237767714056231946113383280742418495053461686110194604382531930977109152591736005534399731333135849501017289547184952317906566250985046174665577863148875458623872026102194823242877652986385229004252619718067042541172562236071642639707822048598594167952360852817687342773958830828691056331069486623609543505565751216514943726300699722505678302211912865501271465487084140225223153149223497227991353773065966959998750399937809447331906601103781235090389018232562430634496575814744527861854559736247006319403745213472898121526972478109128556522537963473738871671260329930685488860197364027169827259109531924076555588844508157855245841112044490290390695423912848842519042245588371170888162750746147976246189235606500817934947717429070123897987807826051352689926894698419053814626163305900244704715876550365950178939076581413767687372513056774981449385392942166782820255779041732656058322935494834190658600928961029646683578155296421392104059327595406060943826670317269638320413335494679697700418397854342046766321555194844828832254976530807859106030120865055406042113390401326884294830908988458874302308227993023592854783522505718491063812864764548455171809907731790147058800482920620150442067845397717741908020153668160752550314373827952670837612432049105623462576896289194352666108980139562450209518150431998234087432113171069061682401787111226713659666397920101981704274586664036897732827327834824354272650977160431804192252309441298884469731083473896367381090190899526718997193921451058110812718546816370155095825516707124064299341476670161150355441441194041958291773485107112125662979098619999996540849517043900368922001042267078694579723196923585063115708693845969618420301450551502590120510826393703997436549880619703741739219144469416514106636079456974844934847539039281386745821183010667515431840484689692468261959399861571628430139644231095482686990322371644747157274936323184407429819539857799561475922984017440485153041766797849006369942693660002844979797785554026051121305234955737062675825799714395991788544988331066551623665856123359253271839646618237644829731889332984235825957793217130141217875919415974402076397295715318923688230819364762067147790956749070154985003751346191143098492770770798138818879959480224164865802702510746794094352044953103856776649587931702398251039066021471108615831162126071865990081911399381598101920698000241127350474628896671903790748563321428342740092168205493805627071218082873092264983066575219118534647501850135320606417641227128460558544761739453056560746356686442454462741648375569051412067351406096305126451667489406638299294383654360746506143950704968071826849163709545576424848386926818411912110924906610206884689715076660327450577773343041627637106097519790330632956817842597464262878940878385168455964410085119530978589644726690699998440632186762055303418051862939174406365332926189220856314319780999680657067623053407591615808200824362073932301142238256300716736582771093991522624799325280011454563312695691324690032873899391133992497324480045876587713682148976616097269938257076511586663107210828497049649365524129224044583191702848898207178884854389814512916675879078384962096048603692963291475594980370318139786797552893736137354696276157766296220771905122829174297094723387017653443099578431063479542353488058881231657678707058508246500048324511067253389916231431901305221543679126128662126202525285217912171349692406692095581130069997949230374601284527711387700629707699711438037455115057984111004434208922444051637714507618625054223567039996225197559236773789874643199570161360532291164093609531373490049969012995668979555332711001385841753033461134021084582654751012860004887609682955219284748870722926282904573311985604399900510484707663102785911891124646255931909842198789269785184378679504406465847572281723156769562991757576116072033804652994875879330654487129164307524196509275793462442419626650689799486103279273765620052305756620792920167880496283871511510033649592719187955925875040744753907196864979388197621845175826254789534385133481989809513250776516032189367643935789874257182383956741818445356995453150082542133306517010308732535611610693267909309202869922372785468521701628067475994913914993704927888567167506237662414914706279647071773520852781017167335998848281371796097777952941722426332318518355317167332029976303241877644623541759688590251447822207258221934007218347777608119640621380414982008082501255000941766539288008617917781449591615434577247406519542133708763636682423973656328189532210831624585975166149030189591823199426329955963185619311559853962760549639977759717446047517551697607483562759819357200082297757428277619802497403878260857717125856049294600640610936731278999492691310345764588448614990440208426302703669579307438588443140609014361706015410377588673856929793776645755861239978935400010928574449580222935467498754378309709514101261834854838480430241381337637000454392225853714037714479457358529388458142893720019798801308454781892628122220191204628353506938014819743955584677564588334496279172636082592761124865920059989832184060109355402376630907822491629213847591024241141382835251602625353264435600570070840451193106652690687989966771893249269469688345264273090749863838772405283366781231370455336979991957829232134682137696312863543658225069243913089568686769743433408444751908668832572786176711612207847218246948932532339566698857067024691758606989056945060356554952953970519099492885848945584654061082743735606094125813712294849204474005805187302300883740866929461498442748676303167772462752402015402800923415276891706235714025378508790372935560072864595428497327769753982087961076731134800698144794254862088170466743965487214385451904279579068136043166348631745694327734852881015985109045052789531469123475508715627103917239578792875976672215167624262901074540331212909101122408326517693204979603234477416252168222097499159489203371376609450830034334820944250251080004208805754692212049324914127403429149124538021483411683675384194160195388927703325746632749339705687372544875506221412737504640649213672165369431114748332224980621548316159465443908989830964153306958486278581514770351522551461015648556801551451579171818206935769917187560879264686555598801663358261869069835490808352983928611931266539140271238235531596038157786098682416784288288890693542609510793240038698063112279881719911286005237704529594564667943311292991163102690449992080672471691812199441467232776136292296289496335482858224848603562799520842241059144483833519865217233147801642443246680597736859537741343006655165146174903532425119007024957602473505469537643353252384938804584744227983239392758580595390239689382377128329338553787304844239078370583667419665706616550053664516820237450391074911767445963207594520495467434164634611797845336371443010390225650827191102361593236957831240809320998895155122204470251952176890920045776129938899316726391654507353710237411179746774258922953441902229758884688742839679528443198320318470711194684684141244418674970508561815890216317198775898952577134946204731898319068493505905674866560663614941618728148497665304222224413756517627743684453619589500060249813004345098771376246327535562290225970044769356938671757522373733676390238780750847899930466616752568908534675524469403289701167090970019534392103329700631964267401057700803514882977179802089995115543506977191831292101429500041254736983969009262575761741821728545141809026141793758628998405578182986921648866986631102776760131487057459553406360221049384537108679875355230041508447555432838234534050516763673773443574035676936053277563977943001565539664431729241428222037265938281449456457411895825739676360740387567846891913411645736552684482319507168620999899185474081674769652645935244720501915777011345431896086662983278007695170464937418397624783370979143852241854749035997779273001856350306941751766989882833792138425106714026450584079509343179634434521381204570086347894649963250269580681034369398794000636435849990816048453638334593846684604306821525728858261698496419482538499252062893500406988079407983196383923644388329960581825513076830665590931037684876724332038945128234634070124721463796767443527079673639051749836955205547292305437999399246680298206056265586771836565645826240134161312299311007531794300554307567347901103081337301818746142828270948828372872149159666533830549815667552318186115998049376470467035224389150678909051603293915232273611709544075337160374771423268811053826383887246167361662181517805276381066758661986267577132166337505869199618180888580903045341694252260720517428443859272062756313751472968595074280309519797141726331739368010406106613683386129715851165236456497809739048236702156654248307903445966644497733272065401992289497658850565150031452111904901431770577861528261634555817099206035562056217033667168027432739886321890050371041466159293920341691693973206992817664172607351481954815120290805414672497554537181542401480382488040864279774358989161217035450518170433679074493190121638814766882954942828876608440519638061544710060181676041660596784883145328718142018789095975157629660453790175665315024373923787337587718087109727536893918738287009573392549317349702236667547812978338686617231058952304109406748469393549164021972247514735839379894500543078304932829761936243280319206466391934859593118749212023284976750170414465627293769533461492856479056615983854425452090621652206424264316992985078804960356220589226444118381454088794045615260464264608151810079078625380888845916446074929079201477606179165477503645654306371912689705110712995517579886450322539603947757359616065133370982876098967496148109255041634890717208348491303939585615615378851125305845641385089391251684233297716999842655973456886167165268158174420240064763508783612818216146245764132594803567423136139964343639391341065774900547186174599285939120300246620308559430427403215696181508129085323326782725185462465187780806615633539423617509868577530557726034550042428762881600546634843583595060039904048374232549179227916500544384507365226517724890550923721188250852035906151160129108005832634878782391551918855368845810952027781682113357715394386605067906065758733436650066776399521215567248063260984146114249370984658469237868047365230170319631753046786094469740670197545003074758667124714933006072297845429826592232650987135487630297433253651430427110814970016099818708719313381462976448454595220240962884507116348277489935068076152164730916265957673343401497450887778866328091270900688491675220562135645144835055419915430644480354104276187142325027776544431189911367581425664822454676235735261065119791938114585311620670186753063702109736087822532012018554464673878258379121296731505722699189827202924606090100044546492392269582380770226143462997944034550136286013844817056797819407886701875240245429893829278480320850300846892177687808286204417776686730177017185871042244671012124158668524373176833637574357492220971735383985049626591413917747685326343454200227137975153451529123580489295621563226822224004555019828399336003175719854469512017819498312957614400863041232815655054180160807963162948140494288979251684215129764824181604173266777149152918832182159586211377257177752603853583025943134110403128184030970873530774403319317023408316239028481666861443828205988469311366608221758277833047761857555874338707276792649296677645275634370972715245140039695146472948089442719049442216587879628992319808057898295084904484970274447281509450745271463604549181270406897113094725982638469916690985828446348515964571957474578944407803056980341974226514758188059978209972770999706598862946670885107180638851536280870464602330440712025159884078147131924974605367193709794708474680924942967599923974777720127424825622483420742420537952278307759171185302047090615910966807670967756076836866648631330240556440078602058305139592001336342230556040625955097786582611787507002403461414936720303652804845946737160334615807766873947884090531931159130724330351923882682921173336047656376455473570863730090470484091999045310507810308097912261073549684411806572826763050294531961754278047341222072181355338875818569532724358941627772664451915056119882391977301758436463886465837887192915935109682940977399702912747477268317203875898484596916462074049854915110860091884909159063976605535333730424945146397491393940696781596233113231390011909578978470562048255013428117555704031945598367965147606397148041426058973019194363897886275755189751542536627983639864590417523730363891567436238382440057602366932187838525689735121580198183444412481868452727389211497466500583042468420262506486402541878219139964778784476916415206137692839681519556607440953170170399474867273660189469598829382863230047437001384579683642276288720251011558629089065669136066306989948510181638052089690057133633997013542718784972396709954870914126433698471865113698773734881151251241258371799958483485249412167234010487330491821510922260993897612232052493616160850538981942634310351453690444499635886929455288807516205205547894944403472062257299030430729795114830434402889894957635635500244858746228358206114477472765338049936232908061241545240638678848806603419064238251039206580243539168144532613369030955826912462554737709219394241999736723742796487066557346750706400607070243136234437457741053508306220593749920693969496822957083005921539862020341659937695905591332887978625692092567366092492777509437051939962577071486909874731288952765946676723512420875814101893957218581338047732999129265940376049555482483020787801286359330525997965703433323200730551910796732364517779115453503815064244985783081913796043608532565831050490789801651968111359886758448420945664403247233482274835494145619454464159862512350147449202266885801624748427601779809441867044870024681233317777436975659678907265479294439404691076191034701188631435055738898945376389985558901075947658369018547480802237506245255057635947047617439161634483788357533685291032569871564239466742920142828274716367667639608340332272738887088845110392374678368036923051230349780758497525118310557277448670537665947340424791725357367558193757255962884490801106644416754385472289230333036724508557602986985760110791485441673496638583331044843510180256502102335294547631517322922513799804068035012401717977804579593528935574629889180111792315633508051355889695885159466925688150486363732804783668087688357133590908248742358956922512185343213574996949967448983642145812731699905026215893973699290402318538076230520541097717720472966451265405759023672989611023696146597498967090954892106250649552826596127438525911024101230780314979175710726952672813198717985455317823994088577216145394152373052657767392086681091246262941063625834831858605946124673799118769251573372394985549273473570187359572551268222454201697695860720728774609341821909009392646538563864775287414617729961149392590063745356253030831749884329358128178051043222997112244415112082697681674262591267864527727377752739985455610304725145354676022407718081609453226231697729996273144050639354936143003290003702221625088522187079435030074807966724511170619423160130426721963374143478499977155099077423342236550871474125564762886384383165915149903623745866896721484473135668707993901642381118399621747968321608244359564951690145802492552077576731360117385132586323241988634224734264919800004811972347503256158283080913433166505522444352387160082280354094038692142664811021692795411138818127322019991376464395200802035610674747589688462554762473634742050711269857030841782468115305168015516549129186396141292418269922470699157165800134071751365033318877142921405574869504121159279233926168379758768683894730274789614748616762976858299562280101746545101701121561254941301901586035172346473366716830134992480174225139290512294209445599203349276034089460846403387609536759638019091941758655931287396027912510596540449621215177020957897106655259236971933822822674913229071744735892565046166373563236871065191457297909612173125117978466726688273303910534865307389017428273437618997891896235310767015851424532854251012276696949465807727822872688332584497969752213606776815581249702892689463950086960886838319549444467829873918977443716119466618367960924726819012196522009665102569675574216555597094636173859519019078036679985887262818217001624694651748587636776842678750352478157193712199896609305308071262421928322235474077326701239308641179581721686309500722500119089369340222871976728994799939735392453164736945356749286198242498927015330490313427102170927634276973873923211392561933966905245265950441511386046532550078235143570299111698533475803362987717514077117717478885194453466441122400619265750235351922345883946646810925668451428717893078891127645396161533195285729534817225389131088210952967852755832323977490878478430299299607639951656375325024152767744025537370161648464564092282296403108859324080300129977917228885637819183240293644855588638880761789452720518322184874324955940411609879659779550078065343678178930725443583336376137513394443947556736050072653967383955705728986910847146485486644930839451582687633656190487440660403166959637550475301127192901439590565370365387760573407865770888615704318274684462671648313989217850365168533906660098635736307688844168838295477544311459989858621291940855621003392215685015054116754282722756526020342124113168046109077771785148828162456866156139282256761166760665792757384987779717008263791456884402973473197898949954644350201484962987135533056876001552391155488878537266373305089520143504966549595574895190544642756163904753529444067733192846944718869901929057454210685648037805644610083520321118507863142756998179352348177260613999902195618776884451173197984713127693923964832696592419620688119736912774664791196493476010118020623304951903703535339273794849036547808564416864423001924240632103658245444093631544725517295886838893122751495346146533461804207212085395368207026953193651359605709529733818828009268012522725762428953185346608318893633399376764901192290506793195084930417921175847668145151486514136359591881068543284410395822978592236128572174358292094973466832987141599150813431730796568212131686298233293824506503280365536041246605202897229939870982598285803672807131225814723468024730609728121584614666095682048881335197331525632788863504122455134435483757112470501749844442765758975658970210696197906543356708883312633496908818104413801703874161762433500668677771920881178305875483472808748839761975888954995839380325231648037429473452725195533090673557264106435357314190410173239412260206621711808616106577894811054433803308107404590721963848682121965342857783799173911600394912661989004317072892003708349338383557810937342652952479609733384750890914300925440421628107011318088240172539757440206178943845292669718707770438906519436933129375778385425246594265188089267489689102535827523580055383912690772905541311612122950125299945125964641924101468902322777298598626301419393463162125714753375219069151183092373461074811480565577894412316303738739087542356391111177643112689587577095451093814267390018420090452159190976490438017315613194319159588679404028708230978773695348804929887923913381322229092362752223444105978432459076698174459416480605191397643968866580865853959800855927425929917385629677348258776369310545134280215872886327058027942110276207793988907937580293056346877967101662650411835835937615832919079674736251181624986996134911539746754040464495930408985114436127923803826887747089955041151298182408160664111341015965556614411667371616982212461574241043228979230873815993162014556158906721633397195832468399184069933754528739046304867359090100769870792867550696616720801544959202774082195900318433080501258918826007855650453284085025028414349470594714172712969315031746304952030784252422570825405001447097378392673425090936842616572044720319168334245624972006010722279465350586158072598348688019322756918871764613833841605595072939901588933792830070534980679989686059383773683956562878218903924462516083646531865476420777658847503393347339692566986860526601018959336535438707064793907494224975381459338880683097484756443898373964836322071474496291017586530708556175421982093852572882292338019981705012161442740081845558603547632307676008567779356846458256638381320327740857293877928178453513481635456528607490334395022345845093232752144928246232417924150977053631348214771598051829175330193376353871064162620587369351316397971039816829986102956291206005230701742702779581476488488237777444032080898160765987899172011865616101989038442100150368005986050810602154721302039423657011749122239368072671775757800469971038519708546934706318941530146442668447134886250640535251021908003359187494716816235774841933099643520004784823078347388268523674869625297582511032070668057723691011708085778514077845669311927563984837564527813275558666635870861134565515783334563931279758756298298142696672277336939133957467919605263193535502771313061602633233641558516451441958489727643000524417837453993690126774998421691235636821719968752455184832478819208439957650005738359023182757596626215987192858853385976376006491240565637793697296915222978309131462352256955660525670378041157309491091965295550202798320015134267615785680381474478923818256306103276630598939935134747425479797143768740794308421547191966231164848823310084491947716162065160878985223783587105394026350407355242553929109592870817743182129241118170018293155798597922116310254505379577419577384837246629975520244411478745631182324044979468716976764622211650666638367940618036178299185802757881728742539724584547594874542325506687063463344836878773030203939733759279647374487471779379525215085864771706082634963731134869466963826927431400970137081380944533965896309304996526934471170364286656914422194807365789857369271040394202183615302201561633483582745171523339945991394406679155932932698822504976441570281920496854452814327678553252609421283185250832398568721455539393227448918350296269816446833440698687752899008324733509854979989257054975458020275322007725867201135486681920059665599117699285712402069871571518409754653528318833175363468534380746465834121611370512626113468326218836282176122549859706221307846704795084830783493227715659862890035795450547235309463167017666371773966975817392148194471413849332407117326317502532617471858141538801681707025308418170793294444475273450728783386693325470740519829595536594148416053712664676955830715072673299745235391602319170844034520334706742940022630408306610710059983553487493501475359084119984474237271424469338918373284489154273529200657262812343748630452537635643450233396588380413742492366191217015852605759000089411097564850885659100026903086399433013439209102475212036600907835816134267575657105197480625878716759178555743558865510856009862783811407815333393417323232490902552472399587420250267064759008207531680769563320800302146487194404493969138248932094987520867168154089255552309555166077908444418173158473011162505205268373935883792060838555971576820622516094968107315327152048904931056610355662044814102454417142618639687977059899657766367641617363522115261032341135540590596075508297533040320990259142214392703009852301927360007312675452818622770046199189935312787747130920130027668480981110949134016676768343461932538638513268593411921436548882475743965789444344954113794044789453458887072555044906281823822121044293554608757017302202634915313801476372785406161264520258979439489868778763872252900728775346653464572663921254812288680253720233134888381958967303033342794055909790160215790352656757257578320219874687485418730070534984271185702391915085132322280105933784869353717922327396885122830014645875600129761042624712410983993259102378863660071347992101668264948299081670531495160733818341197070977202284027019020275106663990754597527352176460630982951913684407836268256049250541845402513874462361930094764015308068764142577529186568888039644722873454535274471227240905854343447532635978660185798342635762435921376289106979353110602237292696774930611947578296832022784557478341020689699213494454941108121543192279659219363763837818463732192011645131800979214357958366462331351074591149950691828912661571347789468745831296252031276946933600970993590738865405119917288037296504156226694767377154293262882739541300010636599489072051473446281764909425648088831224107471297669170548244499323332925941589908645542843112903676499834548948861486967895782812822194377777890626151531187838339955313924884723224924168389152270591693320763777066307953241611203039227245097821204843910296972509969502847420669314251825082760514801591235779312318217651252532583780907733220787726691144371493765646070579976492256767679757250865408551399372033424404774405063323115766911953458232467022447566679367568602391421792284913442887458675403953236317898510533890177481396922669475211268898553906617660819273886615902814404036778622952997490065052546531671765265641948323660266559220409066769902706146531605424726278655096022739271961871987417512728519914909790850615804607636443272313778976624464341978289001855487729812971598974262545446270777406027797310850574970097250889547807249310227593405945941525110526480748715485905039043557988801609767358377295007662536778988421677476860966948028374079208527746081741270258803679285308552081935533126111174586516834550943545098784969055266122136538798502520645163226576537068814269528966396927276248249821997049485319611654257725033753969712442258290507764125930817582678501320830209126278203820150467420211430850775328753049350271475810454535067038106812847572441627745747936022674564092960783915413646600559065591926995551210984766180234943391466412418541912430266973603270868860732840613791327787033949435067573517784228539533725722937802672953050301813594135859425243313838340438130372177737754986382239495888378186365634225987404016728582082104443176188388194775932608218816447931633071147095521298330741870934812181600231056168565074856997718062115536200134629821104152132807781110772780961547950489800604937135323556143494158299690083661206095536897968425874143127326554477361502714672806322987132099028367002372925412447522611879560921279220732812739443840102406521061543248466315380384775872395437575836187189719811833628195347735682958679714160055805264775717500458674429330625419723885196994523868821538203079635430395883808803889062212681236437145490495579491901379250044881316216986095955898520048965900687312617322709643833381359530269146891437876642098517947382286012256768452998668794533680552448511748601788598842782431789831140452429418677359247064089505322323184239181240664321785042168435007290298921824662249302076065379166668074676474373411470312384674129593267556717690325377445967349042631702188929130262873393929985541071143719745459314914294939286006198347320948344909379593553200259156775070614719473838998229871320314112961880077392726177928135563783401502188222431925744878637129707133040155596253447476406319835595067259818942664535127898219935324749683805742444789114542679213910280337155736041289114015170211850543433122982945337020251158277239835607390123000195575121134544964719773003510335102396832185581964960915347361927774174106787365838495956235885922083278792196003044097845737747037709822530136542207729422502199110393578140858091280923116222794958015268852217152193495349079203595873403760190480973443382011201210759790365668040957706388369144938063884013387365862618625074860146266148631831483134426498685349483738817920896817908418641031041896232852254179717175978643160902385221776622500798288396258694023410537745267256272854934213919978603489591875389777502724912188502374200591052366272569692146257938510505263312306093589457801247018766118831954779767680627813177945772704554858147842678264778267758416512146937687150709919771624510173324714841621199591188787141052168288138332544993305144863538814557514564754204023070269205380447419853942723287524579452723674606807249879546536471894303915361665859621710691886660040938240192032187241562410116925649541970510175728992622041941721022676436126251440317115262636969485362700909063416003322655009982973896602885748190295023672377234797063679803403963184814667962856824835718866889349073136056596892473038975482497241835463357674126853371279422019250824606680248171141733222371773198609961437285179667498875804171422945228391110955621769640068103051684734837797147171316965685512791569172706775096355446753043791227277063648462325185635145697615334880384654686382292893004975219747419123055075496458741274727203199783952520460369621588811076980150117915386458262493592135125288988482922290061186651336658442023532499848573346680099258738005686079361620324073456587674594522101988626855839026587216969079224705894628169435012682465242319396979076275302350081850134877848015993945642063515524956511028580063020246996297432437625120781436967239265070328432885506371787064470944313219602635119476374926751446278770761350340511462406355123645367748114636384017800974820694366845895426473677644599089232249606914013829296883218682641838727057339737729499520075548903622577476854745818851685609434422080171783961186339876622241244795653491867176114023794844283055963270668380069197768049340720064074196304080660954533135017160788671947293955817787908326560328609388333830573225679133862573800963576314942945622704304918675528816863159189772654930975975956165245825047109919215597157006239398932199981388408470354749935938065066537409044610889325784066940231565256427310045252123892926774381893333857922185946473944274730508060117267289809309435085873704857396435712320089168502303275021411792074712461779532237466695043227337996586504852512675413553456800591701597506233264251598110643306742021571097712197764659865166287945945632185852062446507775229033566872566295475247182290109383435661755639735971210799269714422279227566558067354730978420372630977093331360504344022909757179130870664786302590612697645931182327841423683139344516905607667662135663390416591534536161844729361318063447057341398220850827839542580493410207617010619063373414962779196665782711133997964125514153728611267129131946469533079010944258736741821346434282393234896899983109226673637806268234309854438376630194115315708648711188054437932973850579323557392053390045826889582141434374657057008449442954758835580817622075774254849454780693746753343423575201691862148451109535809334051389032816025014893674226486363804274828732152927408612143862560752028995948266911559013221345281861457938089935273908156820586578734649345404867565652969593336421863809083442435618264086010643082524960740315249019404225748736463860828485025877616627284497616665214744286350405720434077992588270610174292319263511556611384239506176342202646665434904779991009005718719454402463813944970829904761155468080634887215363531454620785021732841673539084352790297444561303095839368378949062293235476606436788451804360767098934457120903165408591597353104131340609888552770850340701837639678916829829802020083169756405782415636012117535438511137612421554420668756527716052208232312995906352283680768368872229212191669880149349929242133740702654095235809411105246990666372020512663454249492689304168757293259423530718999033855895596638216853097356084961485913210341549600069948555197179677146694653585169272113866096789436184582240136848003734276740217222366080333963736822962277327120378925590322724926561562238372414192312123657514051981546671193998307476348587914844432170169625338782548599576727229552276809943414007870918077334542136755765995121929985828890972491095489230715747369857234822299893433562531710791147969319592384559298851709393872631422719485432826968649550137425709917472465010269508949997187491072540665078487580952548673665293308689862350893187578295838692575368037894747965079245609850743659964627769904874179715738868743207163564056835255128442108367231375800756610485873511358651040807155000668356907240629477189042235183292331507586296482864657268544408845056552173963646922774217242041878343571481562916393849976068287928569210202261244086616301051496528203087069660998731558204471373312964177528751611871366407610435317171923288724474955005816120513075082796783927319608032080766840501168232466373934838133638367175317445659209628533396752306375455109979891158567474214148870510836736889780279915069319736538994502693091079887517174144664111468115458383688949894209322878265838796439829087318927362879316032732428667494389707067766550814083713335147813103247722908227487162453811914091710426681549429587855423144782235032605416470608771380783055854080309013596681080231121218682904483539553268847908656262742765876949751440006037820835756628982253288776799977936867281348297661990680447762796503601792460113076269397054080321738998248248417664914510917825020476307687982460450442167204819549843277836591293974646101771166954249065933428038526295339330984947410719392162358417749029916621407978683490766255145524974154067956499976987585261830087555122593080423305278461370668454074890287574403774515827885025692129442434768356024730569219487558569116169713536122227800605718328197914777857926125729310118066008743202341409507947530838707052796315250301936956818781424588604588125925597930015665891533215164432082865052166261460866928601215739616020037392214295878979557611450290994298118779027208792217512686678356763047335955338618805957208112776869605934505511442997901385666765247668444312160385377195769187461768440577567990947649796827436475873193305787230661712825308774983702439188344762966140975853975441978265980352662636626701481257577353589691090935052048918421571735661104792442835925952769061461205531517656194917789435982647361094367319455196795011913811453923767857433707292522634232487521669832650641353101164967490028896772611743314970873835865876059155399402710741608744174147542152025068977150055779122539054606211827064888648931829288779834496674426188420912479734695450245746781345535801056795410453300564029132775015208065614897738949189368928506974857884057421317142577471031624251359191854645478316837030488971013661082195344644790978814476621956850494784441044950175421311296878557864592785347082840747988031176116521997457185741723407348675064628588099481261439213235779372650767970509362999162382024030905222231723603798129804639630621272865704990264980601209789483972154242579252487252685129815469533378017684759053418481503068206063757025196797151645262027415516131391355488705215552807373776925800718845543424270947158547876022774427654749029303894224531074188660750178567553571391923170842051054989601258328902022684410030986523086240530215553812616583861177677733717478482600224286648873495034207273336638983242488507406579785649491903092608871924801447625497218931813428872068825145709077490603232058199853465945327987777424686411691728461706886661245712201281085962958103545592567313896889222312898201019576297956243650058180577797092997340911460735478727698486635784946163351441223398423441681076959862263012659563662816521896954436751326474276953947533797087496328153248084444678082173980294835856711974460009076407532166764485530091773105276183691421661488978146023428870070771848483466657227169528159647348855859813131867388489299593472177898474667176720389701904502695156249155141013062130856300195838510736466881145263144946550770688990661186846783293113321918738362591336521649422224106244613921102046329027867803275389984542157826340139137424190000774350584165457399229509063056516187473840217322593474334936393092893537573248388964809653278487087731602130667038025374163406076188504574443737934160927001153626696167632804034260206762246075123873322067215867797915346385536609690594838023402508628955497746986637271018765852570054981633940109258154048691639099870979403102213661694015047388337932468733419633733479870666164979614972992227671274915824635101642838381631890314463208070571834191690962921789709846340748743564243942285452246152815286724390275391153662318882324506526392103482034808707914197269000160851241759990557745608865462661536337913386544676211107415470372000159885191466530022934763309582032331387218807752553619390793393715797084860471723370567973242197501497843396223262792093245053598831338495784881289689028477430568526735845625910086548543494983389643867944801117950537965302106486708797106940720541227589018567091201496006215951218739580110683212339100746227194052134694582268283294011710227224186068985580110450218528486969068306505375842761205817487380318741838701246342616069139597833946756397350515956357163340979514148487157682577480111446578990462069835159300838224748532166002081664057731004180928194892465428696080577575384020967547787407711719901841635670039992378890025423662299592243112212382585848131410131705828392574770441601370450942284497556471586983941786445146041902175869720744125960898412452032290541137026871445714899062425182649628219653697675774438900999791991114597760005213888068803813171357143519181980693065323716459095848459449933238364000368217176080842599299718096301073043355927663968433449728916123423212817506394496378289939441784664038221133820364311267114671026585472796480412935175017484777480462574740690939816298667296643431318919393634981204612230809145125188884001674353580664695486534523611357411864887233525083484697814654134854000719829302739337825240924355320167113904901839710500676653364121357049612622510411084371397526565787259697710800830120114079797631565598764638501681064411821109462775469384077464937624645078415645165776735881676559519210196672741197440314234152541766480722191072781122990196781744106344110442261636064279837890361882711764987051746226056703973245548978204703096910062684517261439767712194267438713379736932115161340067772875789996019863421589904468184140875235430878643583942902846091306386275849870441104794810809045753382553550499374680508568497691734125941424162895228117694225703521562765938322280423745787388648865922081446987593658568248168044980872253657231054112203420141386617181914402292631284496134464052361351680966106314241617747143864992904069773042229199711311995688381737395364280929046193231603898570965207405552032925816323117786223996640156380036001530649763787375131780581722713230140412770540165822281829277446678570071604046472695817637237939211929688970102283515146964851251550404943215462591913158081310303685971168072493911637055595289743742669475925152454541034804823142310983344364006392496469389025960551401490828609706489324530796339754101772562011992593477650166874805298690885972262530053361099824677836269306197173313971669996627728556041681406580690473323942707992896834815971203934956499404822349050199956047776092320046545292169023517970995148314613306784197451151613667917183499996846271035889223002366743113990084550502711514468036414334300752731015183589302742071622974474892424282645872606008617020839074020639139013270664989110417732146446861417669372955272671349341272211709437388972021560654614066299568958402177156098033671697427615049820845054215828668390514828279501327046917448867630637581579050379925999653588542770223387525457016815188972339663019239638389358324744854701880914518115943726954079442157718499052731627119228702362118193899613633068110190742968366215846975101726171252612480707339785126936217414879147191349823526664408408201445747861630710475650857056129964766576562517935242214853508639816293922994164537258277602494028974862394218425481377693017599195206301906875293462411063064805152303198203637531474632818788287865442782816048595928779525620346031432646404503159109865969587457179809754745536682277363153911607749083918323932479363111104822498258526547341502123232208605857137448247736406741112965031360269692025368827663748511733937246021503138338134717075852868467776409682135565398564633922932439164292589206566899958805714077879442692486679284693176107272324791115255061448109602702486958035868076610208830736646488262715503598092649035647974408970890463160722541299128573459655765340025367247897817751261288855441341666116044736228769438875008667676877724218156947754683785510051845724416905472062635071349529701069390582530472818304664501851865403098428379658314800371601900733810691202012326262147314227545608845684733488044767619187575657166108885755908097614124093127579246788775162797787594542930515853251551043056216468414723780532949146855846967095772267331834029684719816057003322927256163655471897540016188305328210822855930135062996534068101266771827329367428195164956047477587889720281639662721575648144088693484350433982838827863956819211905508454994759290234386577643977889350959678407942478124275904547718186476041077938866190864952847365940760990875983957650362432001982080818874179376247979795296158675168277753936043063516875594428186489216335543236172855043295388975135195159352629527684648392636560245059613608186657778298191816696472218203909328644205974414507181853354567348332010242549688026454886490007773586583020603579859755850225494300472657974223439545407239768988444714927619842100902306525314270570251863374705505581290418829488272496408690805576502455521322205222040378233541205768322904381595627311949787053412408535484196851223952107220919813859176164865359676232829542541127872730890913826246217585531504937279463901900589119404772287643400097964627691083706750751946015962200273359259170332655110841254548629996408491146919743314154790002227407089897343492130361703179076996929164258844289956667786751359509065642588054731930891187674070289015559966889931104170383681798465589747406560060303165117444146950817505841837286058190375182336631015684055542636497107100968482410543197927686758906995496338185603467820927001715556366541070615334969098462396499479955559951087621811122690985900482251658750193708913423448431928569575850642938144770914211840817211163345371238609397121419338326089096024197491286224166152730022820294240876750360673532061490501741744705190519242048975357168108598359118092621240852689152114558101477705304384957338847105865399225950636828405175723666566715129062606961872495163538971762315181777655803512736565372268075285127361054008104407105021925865241917575927964322872190500397655338168975946365173240057942761564175520859575081789617077977631606918864335802532775252282729189195528360848596921184808510808625560434115243270355026354255741525253607448017901185176941854436693243154105967289508695920961971239133473516132066257869308703507391760656992565483171754187962562445638138232464645141424309381990776247011295731506575550509675014466791886738689018341084769826644591564403437233056848908226445526763329935157398401920973020775151651267445072091787845154466791551443003402929407311203770617534352198933600634462035613004495657140605084632806733110604874752341706587779169956332899795513430653477512628689033815327535214379593016963904978825429252693649861063929270499253984746705540903740991337212350858050555691217986478091265811927159116731553258148833171295346690308203849888592619667403898553148278168884817384394941741344407441854105746530941089893970561954211609419776764451142244504120645575753870991646361801888109690472458108603617740683713924782158664557244242031602891504129166130357399152732992766563222092653969939258559776818719194534183011841597396157827005875738035245515115911605923770110944156083559543105568531973257336709162550146444474372986515881003799873480437243782417360717565219645135692693762400912149424282501620958390832259590947451186969256278583197036352511054313069760005057496179812534956198719079731155356978418059060058679566423481997120225266310418777178749679489955784267059968108089359202478703311197415033154092549395603619597232155762561876800950326514745334301532764866370351539486142940410462495082341780230365219104089181581229918570820364664748424759326719528632954212298902366338068591416093975680535348902445820311329775234907236474384512334977504570216588913022002898551593034773217709737047583988379765749989363091616211011018010099903203796003663232242024622800412967486473464501924377480750708162063276094312692459051659834080480025900397764911271280838844529562084668783171498275424766614941546955587348617777876229533102885949692899325139530672538314227804532435801668134592213788761535597931177241404760700434239541154973322844554851701318819514155048730453576462676704029548418599767203460113285512407256726999210764633142905399772964335295018226640789613042470170470135606830737009241130179784515408010165195120437209021363172719066953387065883010569126780758590214948375661966229512524545295036566471623930598610042935005754190850768245708474295763951996912644909401848321463186238809505596807292599090666107902100307631469306108357690935414167246702258865202361348690527843215429197609846169323201491273011726622398548624240590975733871588204083760982586405749436216498181263100692482777998967429645314847202149802703188481241493854893837103548689193538800785461934010038962766833494689068230545698664472619941631237655188106463907651667989313810279521449317385269028583767449302153456979267071423341710614942890842253106284671434873030008457033797174031567880427553784453407438304862398017487108924137485245782447008738546225577202430852169872068563853030201528826499221208307368276826944011937448206311538301080310592107346018752072493043943354487927289840924281880305134933805353698819643897010859329242279260404650502802388101259108886977771595518633622225248937861348122557124360333874553354586865112359252607045778404197631512746282627670156128685597268803092209849459559809124493706441539197091265088477061067781959281798296971660505626879818996349244685372953511062990614903513191722951741245481241109439562521107693751348726800720155104376236651427187182568365210604839066569237844121753801447206734476983505795507379455733273638183098455460489113266575300802976189222190712390553469944789118871836926944032881690752656631893386441621534319337276863054852552755122211777794320098975647895137740054984388873782423757368545480612415778066943349098158778086204367697312021619346647270616101610186468727460982813882230380208816475404021486536259066823282143303614562342758891562814905258311530131838626016273344101080355386676475585647178508011539763816502256646197791662362659608391322975836062111058647490998394286246561630075679849821055534257419279544672917312414599148810224633680699136702810761541908295379852736645756109539665765610111677855558893292344369572122775609821207076660648463737925394206054249838224626616279185310192324958710076448422328583655455705200971878896578597629854588438388354545237989907053965299676844490768613573972691213555317726388663360687605364921398600396536513963578561235064331892115993256717809112383023461662929597583335328980930799849031496422883748834869234855746085789737790715180080407322763550450292992198909926788905933073116292343816512354294278089630079127470223760315092106842962621788929935447141418331955952063604747065268689605389218230790227527582696611111942370833317928103051990889515696108438945889154965114310154895301981923363449377011232732725757127230267453084123153197439401425986063973899132584328448612488115890695883708327522889633496021235401108325591428677390900765034824392517074887819762330092544656575751648000011957548693749772114603767538041582128627365525247999744813079396821062713397258945658033956912229220909361300686225715009970122866592970341969602310575795138947503461753665602946698486547725809520009044995045520545679262132388923122293281623558867332065475903244140399034552649664996408450741094982154100221012562395851044103061947266261003404472712518480647041244858921162004885247306855364632221222964144915955478419882220464765571309577070621191950909700925907813833087057162852214879455989063883655272322551740136506814461134893957233520959645389912755048985265388354933746226370893960898882857314131420412098893720502333840226963211728855752854622040632969704148719362385317428932737312622466199706384311579007415601833249209088327287625329771557687346556971052745114849933280296692489362170700046318054326641863339734790277459290505901202471593364689173120113427646106238110562802378960687292655126508713416652911319517115315429924011630165526372678738926194890906118343036926723436166176119308129241683055750324021367262977310932419053704612077622922209624374590018747770961649133776363295294948333363837097809384328235371302897441120056593567342326211308771633697340041921275487884456624699615006465301658184048449216866486096931317849775123411154849056344834354601774107773860644854148816362546799038843381562043614702467945272918313646059780157600389243553664564932529736667125123357859089934881721758043663724512027598954273895549943360374491762229065616620618765663087961646428501602070753787611160048009675003354315058573966762433363202710853933696577271140377824842382036794941128369716316685107822784627290071745704355524483979255460067785842560858918557095226108492728042867906398786497580618614902527075668056536431474999793876378312586637758484385890892614455771065710355559710977938020798162446691593643570725531563556751349493773209846323259003563085444197048703724539032034786184041308792112363187950425457346966137909964376648861482094358914858589674449156260965415117403364930451234292025349841877649707268662022533590800225554371626796367384473904748941394326010769780708132219662520511940954031339541210317695695054531248067805401569231168419503856127410047284672736342070722525171603853399848444151250960223279887126005991824970960610217777628415433413444078122972007100348458797834495877649454034637953072622588902784995787818975334816579238471764245984969295421496407513980183121829885975443116380370935996172249261912483435145206888405383527490138300514753212823189686363182901646501843237666197992489560452958486650255232018875170671179284548236502734424177156394438463073193467953146553024471968643731968417062004432761816692139943600976063362752521992010682271773514175481635569711761956164093259665743696294727071711052225993997492058623310810332905641436640817349247313395249150339014241228326023544847815162154535947405659686400316591852881910728875354769095220072889609579521774891773735608938891857567108561361645389601211492192581307950490843993230553503966987441853211651995738675437116540554921446219015637543770958028462418278409411067218513708013367388991158484697848393266170749996393049965765710276498296515317236494831060722890218863810068813451827568259667621729198343889764061010718028496225897374673934147365236104027067686719298891889946632568824958217776313266380160850371925388450567278349956455323973118038177882928881642183263476917202849604858911263739033915695286524981869957522761194784073211591525537480187390535461349709690424674181145033822440399649815556957318136435704211904112386300676678912574414858843212996056694082534406147236794478695189937205655455056782954327669447860785849503081182036436670501011005589909427869001920673308270159307085421325732286485047144593485361602162607948894872635824558616458264698547845759697239133352179429730509652155048890204585373004984924362652874918845056639013900567127538982435087532904673354589518075257044280866909975963457536715601819012209369182415629793917594009485051868286448246135186771764632835143688737154309993306209959686725204590673327801406366511362871374481723179197411429503923277976884846251549284420137998367286597575370568859303876457282475624703338621043028650352081037444157434179294030048546804269759397037577106352922189297620811414182684826413029419797464372774482000417814810335508830916768830421859208342538306855975018829210195032800315485855055560985810822606530520240342157530621792701170606246393017381530937085612874745402909943533633127503774943802252816604097783927052796765373430505028771926137601211310500731221037148780325068188905935516989177988492406732834923613416026696951645449678902654756906546228581620643430593780963025156455399712870485306728373139782555501183852577308988216121399143856460888993191745639215242949482707124841893274752830250468382363008564267203870458735498850312527595279679980449468327331810774008155484950239736265853699359544154363327712669471969072138049176033391739010010717044921224278909500031993913756273656754286240428804094126620202445209141691614334937714517420470470591175521553952643832858161470888607775384089567759662065807629352486142646041150480275910441174280886229253118032186203088856411146827228092755829869752812777495767076964086650503200273025715689501155731115930854270270445428145823311382183223338438098619322822805578833118629084225702650405773145644336596530027592248164465652517325905772433178638797657915292283486657779747691229964277203537357690960238536117668620250930495997808382014195036677951464176464464411063060306460851242340546050889890519465108912999567498106866857638719642687748179649073984239345848373597232798254527952391218575902308598936782542311681176174213244614081819216936582313270198251204689982905669913164467832652509074177821768903860257340916730264502001076926878785719217654824011318804366044701559519003286655791221716275446109889857574501951678137493057081005665680836945353138281258528962570045974276954513086233905995215024904796711648029048242161374965675712116075590832007611046922752586665274789719045846764601335427148733012482152468366758951303055546679256346698136672176717514769496787761062641522414669258165963706755243742188535348920071912310777821696005251009163558820617308332067473891784197678617064475043918592944663866293197485426352386842272994724224791422947483097426766912453654754846735398187620893449761309965331034430606491809726381143156294242560474930469259886695197108527022528389751152767245446719528281750778526551376990752005547020544675106736235251363864092403460335037596602118520294554031217568458772492949648737082565518816608862530227223235719508114698159200001398269650429794971841770312924390148731980369882630617995186596408013177147417074719794977973333785409231608918803695826118582478232632915707654813515028779602391032578572900072533104885347928704886678040480774955163463094487057773920263591057739433591197747136605367487482565980029523850065338430593303412736710445935316271949051818996355556428182908445679248924341208020619628715787921968571153878892986110247663366210907806236966603564523819160214409061252181646089734741702186316006441780682138402072976814067121936399252422759110873146001672424239104776025629660127921353566789299997026671689963451652755340646714778535343327904719352854259095523742748897716638866810786348632457884880157124979005524846116939164413093386587146468117058686187462429282874163419800589691504702100198092370178513611054081916566448112568883124536456391616269669251826784734066189322652286302171986477564518332529259213218489487071734248165291844444606030116589264421915250779181005619350177714276807666655424946364634059912797463310697200354607501114262555683773472345365828526722399789104090047912213734619881896614164584573345938675568213816629934487019548190677099779668408596681035965551897056026603539120141698015301867674835158506967685646103026636520039812808269875534712282864004449290450809061087834335306103744984923822252205760796596730796168747137730098042847150639883277013788150077453780105730643108242578925894360824681585735055750156146636028213296708088054356723681393821078079420615268555407135727740923680391508370384072106535769758836887872520435050324684902255762891960747574406943028399188618276489114828954361131110681374268686432279776969080566171058134103513515840099741685920775704970391185900571456370839158330426953479153106600831152879967651772571685991274477656965023138365961214921569958425560200771426324420734747784911312967350033791919399282296678003021142191701292323399341363583810079347740407195406261336912456806029107027590052713518114589925518335666622878523492515443168682028465364117550214802461741615647037943171298885766324587717289781163243669173818682232558730522745402907516779043139107890246120023796638572905180109776516736121980636668798708359481410430954239661869167768733389699780659165145387121854997176290197989810165429190739931957826985042660185772506073309789347005283672691807268765205614356833741818312841201125092851496585746792187963436152059065498127910705906688742224145962298553622721815265099461642580101383058841509195271369440991617922977918156513460148970628405704884691543479917985827977444808495647808163924282452183830577732414203748315309212401413966294580180165894805976422364810634680394550201967818146204316853738691218696345417097239222610188230237754599933084870679828008442711794267104137544915794563720595334161240434155700768374875892210387974403530585161124477373631441541872258850832914427246267036746606321048679698004252164090474489850481010286102904018756012507863759993413801108767320364901306331437235085395846125972405098919611850548267681118789995824208001602485305323260400040344797286977191259609098672843970153060089508013728585764897693266807131182226355403140127418954355484927989659997738573617722490998968413872873334113978132055797127133691977100212959207478932740073213090376563259679396705328354409541425085772240068627529377092810663158791060716725892646491791971980725391156704596772941079996612415115049546924625910347882528962775054446083853652852203040303548663574049857554364795454031314491424471883946406155420664397665854489502985777884000741615117836569711956294514396060567582277530915442577409307634688506509131228408328760184198786128716152115095179661878946325783469887256941096077130846605889230512933515464508859342226120494270574604718142828933452856507871379153815915399830332236462415419658582014495998439165159418386256482331171623008764427712347392952910053162738239157109574583721094534559404730826819582570668834655429006826842920746163627573891377091695474669781681262858291365234533706673075712984925815765194643382301261036722426681821767275755953196917116090350976685828202774625419964015247684892244082219682999617124998238593531278809524301069499551421284623598397817385772705981373810379178784242950696648776325212006474141457428311946773142903603779961911600319655796003370303848135261611880886643642825130816687304968286184816698386676095024345964125032637820287354551481740004752078576377753694947061938362744206316901962915702534963434365239554239985510670282986623989597529388649741254077580760970561983972722493710011934175269100961350036045965899844860653677249782239002172297985673701159363577940176109314262513078363743355782392430733975321714681471223476666858772355548467129041406293769931057937854809475758553090974241378708800612761628403181267876814860322924346000425669267984091394397413690324178626793568180244012092039655339442696263599050788180722829860405257358782815645587437090241639285282359046050201208158907475110985200046296350411108698614627104896662185749328172398071151659729807018220312233862783411100960882639589617140288065099643048432692837920465259963237091683506805598625549139363034907597580107550251792456233298547909987723374732930549732417845006327124810950196801378963465425263571851796809734338481154746356073514689075928013200151067843539586256422321495546414050425870729276631432951262551082791397691920829125740275243209120126571799958447902768369249984017031852742980648211674962236516180497259259797910458712136362931287404835441707149022867117893726131286821077699744890788191012847835594739717984896033995474872578838888774892636282459955617433258816008285867636839504955163586036046490331526988337001018876458678521482614555357390934974943040986851586441014804879342955140141701951635703569864594675133562266478211464919533235093489913520203238807623011946526510154322543553006003328588066339382423720728453719696956282859346607735664134529154613674814428607438287735229587019133033887819395217433688741553124654479441754919230095607963362251917126697551415171699439483272181566492745796024775380808944755787576093814383237854631849060538291456406806305313664630187074216472491288240219981233829695973018004621383272336913634526825057339071512435401810203028198972608887609549680622316219075157165203164843535887879490633105347229318111549055225216303850808891097990672791085661124311113340007687082547434807073888503820620001005647356920807090113576430602170441877053905572188332302695277834669299192155649794743024141065052083830215501800916166058610246504923943107639013362712174609220416110783474827662742188748398180324630246562183229792056366609988511799916600634600805673907459472623646013680442425515564086625178561482126889568842155217008199825968945968522524819725209627896406958766646770443165958872643507242793793960357321158644272523938362628907939476972416883585138758941908023019039230662754044437301994695927675967877615682468248067369510975737597674297816859665935381466191826110483819368540116920931725354015553869186911719359298829939311544955144982775361589428031180859425270639028084092800498273699981766467797826582442041335040237985147067593820019351240448801084281743451496042669564212593697464087708186265511149758027935115953961642634658732069107533218099405865821343165650889147433815230743909465612180832536580641939565246734043143462919552354519533313438435934246309653498980671427143734489275858624730858881744375552576925391368472095072022666379652847862522097270090667910334797135546015174545650718150164114335078650182468514290231766236738376545837775072635049878370246158322977024444696113548241483050951731003929015992782935423564758999961039816692064081452566194012315494062019722807543484495677534202768915942510512669230348558140991939909611167037398113900974600289245292368430091291512917638843385420312829817053752605098609518977719712669708177541511394731848599145388941029164465512174194408583677897904493826551285278552178800034936972413255948056256598937898816195261782575074807297437020329372899339388216958091877751732980350661784954459918794739940122369770409140324327174426914532067563638635035380157739584259000123412029061867631348074227795607532436166761228599547018321851619393699683966374316467235309333828688680169987767251338383904106012498424376621648968098698797678015791771871651121696530839649423208819361092268098287046587928335358228549912189881502569141190724644176484990007983056309645279484083893405810313567247439796363773655655750444016151778648729152127801586877786973965653920737039325661235654720662542221033635875762761324703455370787391033890415405590060652579516933193963910237647910405627884600475098779824775238394038036711539874656553738269048818418690683013128066279480757658140554597926295049904988109766565590810557918444606089893480534210414293986087339042980724137776289521684780933494058736348507095458528468950339072431147474192822868396574550477437811451352206084970047631431559446086390260869001255325958278040876318691590135906250562611041066464476527609740857709534621782744435625032264663064102364087328825749173753778266923390135792724216022733050628275508105975167542586052804179347749092481338994415323047762875778208271176730540227920782448818614946354207152657304690803374393431814591187798797642718925172161747575097383381707648116287723286214640990892029048008333959288111293039545579322748812771403496805665570323619470694280151218982980825593705531455086545192867142629749294417173512219115912304775778942741118515180232974812314810588781365695343117642658169195011627258949031603866290476287760238526283615427471366992808830088128799005871337639621649626507202225615850976566424659939704867104778476852748389213299364078810699268009997156689836813620268888458259725517667813228960509194873290643533529739404381049496567947690523776737990378317658943438834773781091566758820378143947292882160711653414111874085300886414424538825184716787242242084050200731092475598226988451594492269332144821396001206450273910919583656321636107444466315104605774482846216344511770384851904418654705276719805011666698897256984379658772388857440579568370308574288005236077768334772662961824423787365973201387560224654986456215211805731583976706984371927921725307131286643872885690899372305586705012515337896997021268853348979685589653573246695012435780016126778084269050522545675180410256917474930005701665370583862741056262796013105962018801105237556766590051192244365999311639588092752330624946707180653506854546864046240119463652848084508763270613560128876930776370066305330396634966450659160272954585901057276229163097381610642265636328558271572661344577572327792678472200513954047478815564590819076484509856876090635085589398221472945515633173314826632686546451149678549939814578141451297170147635498335493234300490722792542692368834813328363392795305011790731047543964721911585181815237294556176484500646514425079776004260081923764394260960017450027332062115011941720894474398183659755283327082332982549869535484944656353682213832539308922425492433140780188895879185796912297273022750722589469905896669533765606464532304338319284515938557345662220140144856044849484548310460670419536471539248363385418989211174773133537205099634069917212292113116015144126779376677532723267312636687326985304471283060654674502145908585529973741708786956915786824461102050630212054239564928110423906355175892353513025664603282195807675666312504390867873452170592189344582311078840830800620669849797255980695333484647800455456248442356911700653450061731618597161553470967757554106212077993566466639457736200200946691053293273173090354952291761344047951650080054994817377891416226412826656160955829742375998162905994569353468476269117701798113778249030612909379692156841149432679599903487253930318790787077869411146789116283398099162371226693651754408975080924044005973809258079767032446079296049951165160115097515705577383777797244656996199919004939721962617730665026429923804371350703785629566867286823080402064201899250231036565058514714431730571527607928879011564631094424439511014979344792042593086288694851894565862515487120564387307992465393128881773484703492578474776026401304133266310583669291013501484099550445224303870110750916153078564586208166084243780961205522343942363561419604501779336334950308822588729219273775819618352358041471930128896874942013905208892177437961601733450677260930775436296065663172884876118954114953748622951688044810969967234718564261679881178491316427629057121842718693255896110460212708640861881563895252063082573170465649332702795791258916181631081982083125169944296667919051742534944304730702000458160541098729405502885996710731690098104443879065843351244895307808101245131224255473300632089942309244317880402130531952800258554384015160981473076374523088369752411905457995227197360208974716879238384073274031156338879808335597638152359799377247559787078763165444918459593202599267465349122513873435994197648168933212623414692007317401407026296295544850521166569187715411339762071057918059545486281809646114177921419026843208746640383492631416236638530087482510654009430793626752681379733958071731012880270024872502096700777255979524575961650923047360970166130758042640355477832750834363014968870328773504589348712915912182191553756390504592682325171799915645683749915447763406771572530666913851799586612408209370175577094686371021360539305327286447368880295179930011216530772491454490103994193014066291760032863280825671519687540888799292890798476549100424015619345197500807237733709395631570233973494702585100017288571177096262783812506409952142348626105416599788217548800389749713128035819494643698202760915997517706562643713273003354926835306002322084869390331607547318763617205935075227087234550170615791974939347724520581281806116989366981701870993300166915340360803416631428459492606810206705602725598826050401288308089931948283508444012823458673278164092716558729823408714006677266168431742937784222538050501288001627232623684543813969821122670866937344096152359144224342813659024580099389881262982158612904047575407919924587516495441722532111301459302390667363571847248477110608725812911720486215279760728636352667064149986904093658579676357083662040351023372675343692736452750142134294599479220926269575339501162896908250069926717051734569784722891581935579881767919975638148413705824285382547663000983100114036750695256646929254025247342997700720798240241294599900741127856346920463544560868790933430710173444192610795894750102953636150806776409135597167245615734176650462367162827281356947835407181500701184408525728960757475929973431256726974101536830942936444393793560305201631837343267215047677417678582537326246551583002904809069956657290501521411019530392643126267302407273555249858827129871259453690488793207691915621071419229911948407847656676855454233602432565143067532422292816180341409829119132358888977669636208951606987755701676162789191013546015513607223429780866428145595536242195658530031125936429247990577433860688945533123288212685953628541051074825119437740282668566556403837163156115212354872610934802916094700302285817903168327453595072430122981885105650916718975370348366861446797388222805726124898686575081716853050890613252808230798716453212836518297382043295479137261658032193462257686129801068789377972427263238828373604879953217266260344077504263815941283177169523810341863453081646009170482268166111300947872107089434066069116397798068773683832492707911819184777359336277102685858644429296293929863967735413932227068832661892652995182253837943645505381066597135688857983390435102412131717601850075822937149616492614576095433143511691002623128480863231527772613374857201272764181476304962585698869409474434077589629319009259529282168974961075856239631677333245642601012544423466568686823656920158291340381734589148615798093219799515753886987860347913049101660239148587553598175307048575703290163473366068598884081373413165130617017262838744117674867464861092322613434263402694552743315066964796294757734014885995031453401172848699005526332662650142604079503694280561485334364947211796663842367007671027737716173802070562231412464793068383938585490802103104781106419807038625259478918743926598510055742332048232988963032943525112727622832600009443233276588557328625204722176184470301439312976801559338485218969283705359542111668565543290698887770327352076883103170953695476725618366022761165877070332436900876106521441835552964043733263800586959898920831260943050076546670275971528318501102204474632133103811644902056665465262270759027330246306825167069781720205357893045182570357639679519484875419253502302281123747734599340692987669303859774851129713655035804707453673400984417472323525277602226752865231241050025425914621529398055214696728565988830346574278752537534235807935296436668851804532625759122272541405857679351761398228920471817299457021188301151338095671295672556906709169119720302998838413732109718633635934994617344058314685155383962169401507520001424917621160703816089009457359837724292360829163434294388452479392696047656850402480752622688080178538677218347619251069569314152577859234636419355816657532449522591318201114150459968481487209384816205054472804901199895223977549093441725226663923021729478762634688202291328970431190217834235874578849914399349071330659679891660892675633666741388478756699966127098921607538161419213656790194233244850038524349594703682756792613878600752526732854802587221505954117920355188544219633806161684603795883628387503200627711999668235414166064960228998693182824220231021332993272295456791752124068727428567593494326558340177615215542657335161030502422626692454642968447815825502027576194538758298317075607978990204201288918676331565587191582006550580356583554827592289699529124405065567230388825452003621573572340485668867983406695927813904447406692521263714081229239981058727040275707771861547638041288962124968065728272624390247651556330841412967448766450939691117573976049704503609819425884808313403635549405689441799457369275288894532649504472749835181750845002064755554473435542530991488609136419792278687685310211993857953286993466181131104560669942325739804885718937946669678035632354150502576714830401510957163894668889412325350077366397210467216349122168448212721686309101274139910723954264764552785055710390150162146681862965912487517670927962680036443421033738278026453999818228878027742323378130894709153278275204404412142448235904783659076460885234277617902132186486520551431837897657416971926311085545063235848974719679328050275997042177698151524347944781629926238258523052984091468716784497657838852011980845576619299600649001747142967074508839184989334504684607655978499244080777248329482450997358260886525360705978166334477109379328176114917177696837543137175282506531497962700880420507164196226139050592102184434112455792251931979681281832337371933847241136350392530113483866209289076284114572941127266422022263165727383922804310618749833723390792257569577086287711748831180752598667730448343223556233048967139112827117617031648347630570794033931349563318952573885969854775633342459459717221686703622263783457201072185633564474392401435031329367956153807506006942965208712615303689924851074928096542744985324893531879612319605879428423259804610713266126630586046685480763625939289920476993986487946784369030895875445477520356074200066177300277840717838277959545008334582170876976675106048196634399961787140308927489627835162283542497098653678867140528220699695721110510786096106514063770142374762935638565789563880018868952698164463611972707313971805954973660749719595529791653089658283319156748056278997416747742991579912991334687345856025287700539353392688723319257400128019799251914302197225896455061297948875276803624469760451562415640304201211820211977275415564094539236908375180258165947798065926910782530893951462623814929719730945638156155228527256584163262301613462132067420659975081081641804281475250440561174316415318504074332364117520135999506276249751153644937035357962517603484390417143489937317545631261794911690429945726053856173016915231780398773894202367719259302362030576406777655109714001213939076561332132941730565321486393423677928998456856371651856536848382053056921990836820639206061063521663562479012387874467622566516549898650301214967263741821249547764560030758512541544877596724158608845261764340737510956134743455715992316862060403935850987731961793322790381559320387918409375325166584851159390972190643208405644521821157757991394544872410306610689006603742952976608321932903430392772531578030694985121662332982483087726725640514913738521988536195543143530679953800620549814930444983454669866396584080509168894464964673377197203534758739353537917951455481611787121067120983345866544331928654854372102409040212076842636150702768696205440546971415658575844498986734667644217438252883048419690229424109817659864658754883105710402260028059879381837238479345658512689470291937262592617671612322553233951531987413414519792708628502298071332023837930002590156699016107291750187479395652184255850187267914282763151979795004546496716645263169984601518124725539930520109920391739592158703447511056345542701545031787986826078588397063224620328518127717389818252953389376630581002393671701699834732031008509510869915744692203756916836117259424228984463479229924012366288449722428594835393063453248255308118501605791410072433443041505195681351367856969685334209535064978409920584710375369781464853987692161159374859881014257094433207202100635910670178971291600653051637787325473994778380789335010615045438379537136861050462631822017513177451372808792875521128067282033770785263537667054801924136613754564586530031252775164434092153577733205872609726853615265031633566310711689301245673403149048760468773151545347935889680119845818613717401827511352241531947584541497871725264582356455022974500611545638753238422994346982117993629192502396132304709796466603317960549767420181186124040323461795589162403244593766262842070861445553141888698476958111270804874704728666365850179637542672849255595297128917213502921864615644736553976714528022391997446890637544290049755497412634024807136602895679701917228485127221591799706254818906210672461370462471302170620906969541273572576843147094119980291229334771841129365155060749321403054837630725544880904225677146468752761447459325778169017337249334178475606848339145095711706995027639803072630467042456476362298026061661632380352653839970750462380948190579294579044716329701124180887834520310491866193894106116164586599397514356907811067831295382965917448123787865329625274674146107771913401730980081551986494274169935246297002449796103052710633299435011562198862278005460225245938802519729738591891798526796336184030390717264927389341835878365926927622251248108955638837505028432838706064961262854379385957492801742821986057834022674331596363803375523291436637922537938147166115301813573546117306018907921463210218886434932472284092466754158975453075320983859439109312207119328341015981770119652296343806074532009863761012667434495690760149009661434824443795419255008474807119465558921843881945158619090138594837043029545383082604273118012297832522912230445048032670267115037756801907929280382505191695120505627466756557388582621774160111799499790941249835068710955538266646990543473599168349135482691792457810196878192469959853399620486193388023461085699407278611448503319954474982623310196479005097563041299069542987228078997475090604946768047502262018384945756631685045987305253677589203187669736889528441997671361151553458300627891814401236321839443446469643166385996780705664048657339070256760619868325180456097393592167595422823653516597245180507588924956382043768327637048847713040905278719032015858961534577051161131558955932490962562644837726340154384972631371033298032196317210201258819721610628568291530886910017800518421116294795361243611543262196358727121721192650813439064105578802517442222370380875501248440992551550766926719583158850660996766577669004925423266675227834598464780069417046109533135428389171209491985745367401617854648492550598546511348820590457692160524719973192220628271305607377436461407087461914273396796111006229592232478551943046894550683616919355265268078559984198423044607550731423387955510050255325633190972107163926893846444847375338204176920923582387210755319854133330816016385925774020722918098288211745580761436174971640811478841133275184313308747059658673069291730745806449424304801577116999439442494316378747723495099682521474479636306685191425444491697189968070776590133760117350132923144060830767663484005943337086487583671640217176912972678825727071235263096898423361215293149361854492041972570755126737980845142343454936019975825767873874458280572826954045046061873234029528369263326788297450231179375880418341106081740810312783928663601908604522944571655930975262228069273613088508883004945209930940776795913984869507701003700298419240333708094997965728955662599419544403374993285373879986667431163941590627375661133892633062237298174582388603008574198126902883342105681735783809156525516139397394785246449471079953870135481437829187600290218653766826962059584944666986350223962227149132327953035329608962939863855774012786655849940356136155076526198523172270993944989717147889514398207235202344841878226653175454879629432415155026639023072703434715716966560828850721091394474252069431236682551003056810305937901402704042005300914684895750585173290497649180959691930017579138450170751944268179551271755628297071730121986331314042219787040558158928721332759662379107938091263646115365628592780139409032260825442112038977070077434004898535389593335787713635932602157001782555300780614576446013494411081604152388194481595198756898938382770015727726819239709746116595870848667764257963863175684186701328174856603762429544219299937882035750684811240072504666397432855722900726962828541839709722334857306738207255690829925616838555933106542368558143609847584203629155417969920859395736027642227579427394214779160733104690082150820301553920492933657713571366847642615728978452362447659636083901813519491858888656871122724175376045871756081059743598848793408756697744990394885241847018962785119369995568703808503741008068415261852775631007322265648507272187443674813000947819789534408834720593808210778897085949457544615216876591249213674807557270640787111978302444128444189526091918924857256755763732941591006977457498559622312576485351229485656675316724324935259089458032199381285988033182389757094850759988957168999140137072732665144961156674397134340689763785425701609873821742930276701165270037716608243198887513908464650524651368482995970249417033598622812050098070287779072357202009793135398086330935862977385728680334540198011462562438985022956406741330869966970714935981373376119104426639750762044718030048325409798318443640071749276518027357938764506874667930725752941216295285466959910433792005640193495456963657760349310679156523964483048471885920494481879264392391750550829256335251436596222004282233848807947574475609655573806827741708462392303797297019250921134177101983830145210914115785421169392990332929218834215563891330962065815665757610427314892695825293918395741271939455970471929347195843053939554503152764183971115618162820040202532768275287243443411009802245413454563292421263238376028483491574439737435277425759526879788926878938025602560230930651954486440496907775873088656461415602662461813987275070636416834436026846972555556896414114307914513126144165132549140581838502886000483462753717806413269260500358634059150693084383835834163230512820042623449611125658608642031096804074768504225349589427786371136907901507890685473099976555460555913843604473196341408710288884579696006690606546753758338759695650436120868399990898184915373083947844131306982794943219431576817967590446570124930065926574247425930944964396846565431767624478054371678566190944349499572447470165091767734905477207638107015627821724708385509033404910072007727025425944684714518396361145717873797833161452304506348449693914881135684813406866712402749996335996810020424616518359602556483068797966880276538364224188190907589686036796812553292221390884588237582535908365540367850015267794996777860808633702278642489130010192400290965283883596815045584497647534881306736988761759290040570419012987670303239623151492991341307770540480282986761309611329217627078474360389005558994448175215133187363184834815879954660423602033044869058850439763746045920955394206572395841173869524623615100133475961363143232980844983478111122960674322396839558940280885613108033192055951755682793723140546238670846913458320262546263219535239313860020471622945645276483842856007834333607332211823027058600117962600166763838385292293605774274489666811429349157369642431057438791318815263493718538579444987618318803741534326621585678190247803054003543331843550877808837784635476145658679951987163808607858154533153243517098179659491258080991621512657142732340856997636735264994301589258024941157914864594731661406237151463766863689042562838877311229016399474958173098138189147580722211713404894203226011956525011584247064675116626905764041770156143891943832637669271832993189019788838761202162473005536235410647504216664012914943297142529652759037934326938336339998874442392298324072016927170072587009697955579775122988523844413987131951714265425343256023428591460600982368294628625638756138137472350032108267653216109162807484730371980752468133474969517104314044784526468784008721779026518042730525750581818580917810887610802062023493978146757597648668705690783335868410936455102818939717161719424787538795830953026590051340110233532835455380043002550037833691232822424928787763479881160899127356547251337484095916750296044465593318414107371977436209263291951653696690217941234291238075575363619591534182875054276360813522768195004182096305922935715762537675322994807848811889422112438055589006352790616292305520256501448324724722663996601339297791644300848351956235488555717939132887761712111025327291867134480649348999011183071529917646574301696003907750142179766974017692343389361406926883628248460147433239527125259794878790191256514135513663313229181428061481477257587493351162258854893418630460085666464728103841256714409021591071241469193665376802533210606808101754100127670412764356503446718763202593198591417628865444494337562747017937771887907545069346222628438148905894903398502605902639026431369693525996608416304238563311569206917691136005301013218120140313289453873694444812782158091823739868535674130631336749715643051143390607029448193356153274679673359335571928462428778481897689440156166093190268391750726416568073725015858866912022627379938973691737297817331894188358785609543642035104415818564286516875795497638586583857393910087989551800617850492912672273645135127625854125522034238646949864754195533048907577458732444488352807808104177482515181379063953712262744038594437149371761346940224169843587714894366679405657098557722698466003820360666073511996747240015813976757750168188643274665537307707891409004081069278635398113047929489274084777378489048536677068491599635556387223384199828759146329462204452701021065400658523450397808445938369785200240898403761911197634298161562147635115639913254099590788011560217071511521468975880837609303890357093482189254366097974115267876687964518535676140616769353136314122897947937212108239445989894869380703524197258696496174803961686219573384541017726755807377114530939412028431278881698682436448780063021790944268118853232778003670717922006488996447999009179454281563471764063942539711294682474508051621854225546343156590283146742604265697062281791196453703763380222863024721723526924948107383423218847988441284101759774696365557583421404643478654864167214994064311923410562504647495862037182487795329958018042092902588060943155836540632175219485036440196738740070141082909897798964455593903390826932125499091886657478980861383029977490485299435004010787843652172122194426850299286932848024939067390078027593080561123326514634333967034977556458904930161320161575127534387259850142978345786860178153500918972497379539307189861591705612051087974349089802482325027568160237894363706833798299200545563879143904028643869061940111806897087543290178378529409792898946458679507869838734782705097223425791145476901821807937204397963867141393760319832717605214760554734092292796497898735464313236461965363717714981663668347431697970964022856869934607953539638135027854598793435628234603715982533446691200700933135248059199604180730318762533445400492927346048649204741824981893818618262403231754556185381158891083208773326559645920003422155077890172235046713483263582949453481496610225037692098634155349187526469362864540037021289443953392553150270711104382918138773297866942128597078630062866977828038947291699272202895885741957328085692009289751523110171814290558120025328020486220648421519538373085845311708506718098865782218159311577753571238542445376226371607598781519441351697251613590018811067701987942412727966025988791419474398257275438106533069759838455390098090839678852593002780716144369624981077053314683617569487419988624194102855493679878854524774798448204234815862606292651642744716513371952608702569594774942819095679718892037633049023979809042224749944546493326884450318208952683551058940540258281692224844028392490921884944660501546732010490114223115848473033807175009042973171009391340461511554383492707866891867927416281070041130019342917347824469166147413736411500202171185025519176781479735588911167078830420980422405106193948497135256251106444564521238182888702888460530456789977354273618948744205682303812090089187489767605685042165180614294049905681284844095002206557162911673907358573128627454348649759440454926625534473382370419389075702081907390542109987384213506660369338309690779010541151875970116452410672025801954990118915676565984159588779736382534838269860310060689493260650159804689629050443637852641335067257413270036228868509736053413779608433193315547363008209959762253823725561293791354620939913843112090950775352844237422933028876518014662762245308697427917437134591399589134053948769948313052982198365098966729516688274799474256530993000964556985558938547045700403852525115316246842425827229768501904212433423372857134038746906844420109942310021058544136460462082074243516301595576571325771062474632461958080219783386928631913287550207912082229615070501209611670880314301954300401575264039802269590534014151547857436789765664886529712675710992756149515025971346597652132138173348999589095271224314030315763536909416782279553842985805446769931087992777181459975169357977832334905594346580107443340164229098013884575613477071818373492687912770288553535219516083092079548970684595622837077002189962063882353539749618239268754205801520442059642249175427369004578754245440257445531912891349407012183175301778057200404764516659875420201723112082995709672519314242242152292936815323313619037607007711069539350581900985811472564912276464351683622914538501371718759383279513163011464367386976691421616421606560380557505130789189354887396688968634384276949937603034539802018204675471889842506487658188512660919066464844874567693703436823291395489055717237183018646087153739195935393955859928187026327442637007208589036214846714385694853888478416867917030088164172623612724155478717494843811674947083017692749870808352884313167718774034237148521457101481197983328310109809214260734354889582047128320490016028446004531874969014960712886141824414857146374064586161187749393852614717417160659710926386209421646351714666286939033256301298591617441319160835602196214105631673673931846605348414369192121933655138823703878558521225607925930723353593041230697445228036720964838083012811805013458113673842999655742018637006814408463693925943759619785908168507215161159944050896794745453252908379988386901941844023202138019547384745483281285498095948534778820127514579793182006748029907287241108037872187303201060822828500383485971157798508723838039461230617601083094561604086182944614403605185565529864243064938415700455556941443685725759497338473058596730440996934589945107932124585910338613675845133775437742239997715986353264809835354701301976894510908164783267235101245263920062570461594104709137371243704149927780085029726548892357300873098796586034881679359589245511602579505447905684885251689840101604557285943570241557227784987229061398041444514420427944849112454526521525697837422079202361726586462723739101827146540889808466498346245931276331837630911383705085008146348900895272161162689545281485946795497557644145477389425024694826473439375577138917848520904753587097354001455081698660702541022487642133996479594412635291493083171354112822851463490734818480984019034250496179625858208633446613002343510814034780261585143599261237066743980973009105917380386564855360935509770929524962855224257765551896340092601068592893538640677869736151738786302299997352504068719562908720396707634499008343187183475343422719426284874961217911299700320269736694747523861984047442882953755919824647789744869534473924876544343605045363585032216184920430733200321568557391669426670546127012565170898619192757199986883973939893722177227736312120515050441345246036307925811225876357128368023662008814795815166902436763294139611738297841547450649452247335256167023552081057181424988649741323268649716154902330660141838720706936013386976475494269754821923921877267954628080616622666239398627601407563266948552425722089175330735303207745149981149141874205572272620227328158592103350148769073293381408850481129266094351096435748434286478142102489128516026814056908802523148408661553397165112691374079585673088748424851642349549455350027523320471604186320085758565413864438931546082234115545016058857715431347714681144432747696121008687229914349518020376974734167393188552924336127498549977524289466343793404254541206860416582580528262486739229939870139193287970224538910548015001212329067404691157601716842383661835541857632828630120086332984805870291847563107310856744090385217688896655385578750080605030551785628985211923748719271140065963885981600292409861980232688794865984251515311232670537978062525849531961665322692353942903843874836098544214215001782556223225032871624746545582146310019328023925641406112974634688397170170110020544286976232495321486921329443889677099585852004171488926249901847728347462166669842192652233848779988527381988106362051704384392538405457048098669444410555300076603839301234862511060605546076442919680324745722566223157799958777566354134241298063754740471862782661582441396061274278043917082771386355179382108118130183685650708150913377956724961421215762885731082293364777255578268821851902102893412962770746730086861811149263273088493828846706151371920762833687079537427434461952227275717021650427481588300595238692240962932138458829401394918635384301477523197609920342440460814768687925806744865987214607506891193459676028866221676602117067316018012690124650970355288510475428627156704441367824336050351815568003347104356364201323752571002566740334824362731873041732943939048824397512088802220945088925348344015636815318831096141670039398524056206589642211604077756196481823480717587607169485465845123527483404096408657040465615022910417254242896081970823924210578028569386638346904924628792061417515001443766174732189516878615596857444423657850426751295904991086879123936519541948091783667604503484799533622842138573266977759139469369175407618916362096265670077983859253779629495196216970047698986697039963462175584734196726483304773059317799643179330405169640566978346684554710071766273755315724306703022096582504784158488556516414855268743316346062180324391325097122330417959288210849613824634005676391093277028456562213204871133574832784775694104508466705766705947966458979457450741782906616144793434042162823313422653289441073374782525398911984550647779001732867429290279821655424031493309637411246253613675205409777826824819119821854168837598437446969956533455494378411277657457227804288347230812175076992611623666348792563029136113556377796470529865459277896484490492067287227946131053057208788824216339891815564544099948825445927063753123171360848185044143191585392153511694908350183416322771210216719273189535526659641454871218155571974913443912057615696616812186233075228594168428840162794269467471789946145184571491366749954274979476969395070081581460767057027188341352765069058011571152992661499319478253379916432512092081706238960790092616209389177471511095720730838764806594809092128666429219309369674760963374456156333675156069790706515754292755648777940606148559959271908662645842312180586606812243122966200426835863723723888308281851253465280221720644976524454345824431461653026633105335175244066860378117727111197514978918975410325275335114784319813410397646103793509635401066327533714244375146196124856183012638643728045124228002197143594509056489974680005132814545926278503290917536558733607811612407724781390458051740123825428482440215771442932989830443501827615263306959077108063715510255357360683483159369479536123299616818349154433587471993384053901708724818694828553083421579697494640130757889446090610892755645155712360022636858666991377336712394643528399176115165635876109782376744882783961939670305425770439510963017478859025039004562537206335773372707679107917150509500585547508885056556693678183445372091666818829558515118416411114064355672616944467334775648414754884510108578117403772841234881832052118036895318676173287274989327025424214218552263021973219501685252351548997481412920305168102252947955837334952202202572532429843908052535488893960946331094832770396401005291397847819323195037188431458001745713544935201701561737141844866344450272901853285525779885820053217060565133050923703454419333032786522302587695455449579546230189506540773711013618370132112367076502822335554239160174486132452585556929916422555972993553856848150771885391267463641917659960198339996363895088248357478051488839869182801629340203510962143226723606593458481614443915244321540756773018809082124821472786562767573894698044261751174267303735454734481759583197954744141168215437181595820945606952537280100748382769739083300737032795451549152881455295983631641769282657972355658213155530633340741837998523246118955053461174968157625310538392424290093805517845135614392248710823842918686819487701866086905112534891138175608502712864704665344190322959157241013205735577084857831644785457840534724272555039838875560474874065625498300755460097300335405563618631025784694390619051423059475988904039886621651918672108537963121326030297427868646169697430429934048698352603807473564157672409327257184569769967846906628728355457376771151221537771690974233447295785622233581518934229320987564386638843115877358214478752092624323648443259075713770052026402186265410671033468494109912666481980248156381476404206364164663819165082051389927537804119305874753155766988147161209910126833439337545531016847214662503845509645132170770033357702087787082682808773989228067771075519223422050472256768054784487950427116884294776775773279156018237729457210795419443112260805062296449123640268100090744834415853424387564018762447046609668082007960022234076769451714472696087872351488592199486721563071665707095689620835968194914749477059350277490057181538687900346836653952442871084149191878943260227453376382797281940522967822100288317392772727019949979601180948927882468149414113651443306378148920097160359079839961505638896923623596136216950132684205272250217061835225512777016820130117228313623726071005378046607273981678602934811747272989905485558305754542990662830832165840006976953090692418424084879697840087197786709575645936639163867733862947236130250963866795631161120408452953669142289459287498296987054728720894918230599572580232064520817670913518495958282238295807313836609443342920841073574442854597700547663809013597607748880907567593466744371625474993448619055962643617905320404587191444463093537744838767496189247664006279451036967173515828046105260036562568757902468131259687235222082041692420029310695124712504352699213903913107131685477955568241308614340233733003563231117461066532286721145559357695428078130878274326882802176039227943632958692196665993312384092509958270468211919264809224933284165400542680439263556863089035821823754619282673325606210686710391066334620366634597471682348364909734592139674305012001760932727004106124522433916762528718966740591347917184732342379394379864225438461487326132155276598901133048777625750368078047080746254488746320597687866927672034873154994207272987835749181165346495352203995108927384050036873500947561555439122306971751228815056502600739558952599843782566343464907192084777950320330341878557449461035010394422340286442882846032967187284500482531069217732716036057564969975718965557368172795483127785176150020832690312055128757623690000438170813713610179288422362115928115418665535995416348116887171261076750945329737225664303254859643435916294017077682380215419543033316979415658974039711762262674648359968187120755134231740428377812051911105394442869278625544421546731196437722484242532867156317964196677930330379994379283608418670306668679159886511752074912766668641392091789836816285935928925179954811436663082841755807478142931173315168111547601683861838071286266344960877513434591347675951640979988497493757786286900072996013050382834136141245689328966654259731795253669131252143859169269941405094428028150528679160738054732365304245680125143805738906643826751574986525023106995328335769197755272234035971171175448353753112610194592959946413654577451034135129683399177431352389148974008060213769017155234998435140618564839682031726035851580277158482619449656749760233317825626627812425186176886360141288210616999318594060754562812194278261359852626185118146784471064053759298771278496683505599384970512082648473073000139100499718227769745379200383801657805085926111403075287661025592929063598805835253066946876538793019876706936392057031145328877228112370043058943678915240328412486471299993858270729514158466659924900267304475796751556477417841786733884742599263929850999075657267552985295607370854238248474322113083929225069446814399014579946278338359721331768744855172466201001253576366565481879056207671605858882695432540694018887764799656385424612584467525767222183073587478595070346430199570172172448673838708711534906631677973214209872058786043628215522264140545883353144363422945865207668932567792970163642409520403746750200286502574580211704397535389770287051971890175981184630464061177230650144636463339506735318218847262691980355109305970303686962828141316881848405025345390715758489895652262818900842317067862985625003812328602326967678300553679157810944397686892184512183573873853805446219957232679380944966518709848612717297954699213268684355232530880213524606928429500846419734160182995528116311232066733995263215293309611308524436631924952143531071489536499744299091876102069646531154655207888578946533692842569862878972048596329213013495937660137226862584763274966469585141203946834405903099648620161341116482277183154188636339327606499207176478132591311491450809473406621019294607822615348758704014081418933327226752168029842839544570827658778093827772576112788310737176665669478175185548546474804264649622297905493382138721611252848740075326144906227242529020208831636609097093637026910564651197126395937564691509688958288826188643415494486074101080769577565919595865287201518117098109255720990211130685708818516877169130372364561680973799360617092718939596261570786493685269848077455048108735411637789278145668913882189549444287768986168483368893978068864289653310726021607126345943019042686285550394315530245675610732889447818009300341979494381824305594984749468634164399850910194540963819682889621330741332094181523715108837047682875701676118004737828174095244495483559300628708655809987432957350688802240854859918965413812437980609971572561295796102722123828740567167021903146715859317324302805017682055993332727843082734186827289936542125225810276331035991484558836722458631375839175239360893337356621585029774376162583294966022176121643955934604407064870248380741147366218471863297235814543295901690232721500341414214679137594886058554918327205018992279270112628426185984551113301738642871064851419819605810191865445150889688267049281673636137911083948745647941157220537897509699955164487050243091127115398618127965584925823159450670117128836238006672079389402821557269621994465916306542881614782551760275523953389510782460803633195397821236373385338718376885389893483182548458274121204729823688140604745990466128103302017201818276012255640006508552046248662306414582435358159645693611458336157240809946052052000415939133698822799546742773755174175181468015757236667454594243672161332115451053799895969509874371022491525589896318038988982423793823866189964330976535331852693127322198216310131086451298891214579976051833123183663518106910600905439654304803692922286946350999626001221152008241330757596051106005411824262355889700705089740127876528282188940202001197223259678735763969551938816999534913905694107059867635146607463145076997016065366725728886806028553385762133314041811156401285049108699066029295372279332849552110197097911448901424500651751744292387171148646443925077201318346279306679797332312296334286140032588015082275195132343973326150989158100713063644339646502624135921783656347168423798086396486237479225913847707624472695355150666058814758078527856057178851038567132190286072359954031092630887246302739877753008490036156647019616638815537278960636355359650468753833263884100440159232885253694489399073639505503525864691784085930432515873321095821521425025252012896234776807204485232516921623572345535806247803776248648321218229104839336935756539981983988478397578643258123465319723173268327905437268474992953404218548698848005743812831719980252351909090140791765608643645102093871272759266413604998860764789613005175701480883118044096132207818161150485024446512435744687312308156848942642086902672342959258163421541958640177492865947015708070564270147175905233805076561743118043829210002797107804568602247395885029846315620816706580047044844131274614001429576502955558097385993616808465976301583141178758412313583578696930983187489673476430331985498467598088196366390031558323032240536046002039189019153491244036572231985903808844461403132299113795846183749237161078608423059685669193630589973513785702490233527726740628635502508506929224874139982185670516756897820137801518944367537447448497985971675002018702898142175312230092442239357569583477879918776410737221104666606934859361807208703137266522749799973910986229107113744109175964741710069545641536424490343150632592133130725656336077421782981802348641340176496064535963104985885110000847440620742359310074935594442422553803013567932461739309329516023804378876589306766388373417471506293273685390125412175220377951200910818179844059191107348765072735903796059480301079985472656557103336467556759231014180956872737451797932062036060983611619799741641341407771814955783131197197532629226572950273891058372350023029818446962906847256572944430305418247888554645302382358298245036121309634537833641101674960586338270821502929909530043687795913518386595223695903885174029457748257544026273796642615232157643569725154992833582778477351904900585336319669459614058957100740342693364969724426921267939590502201079773192274312742094877922304262416258713758983723196928105294571258410216493569289052622166666861040229750388031022157203929862949140184393116402494581078975590826993303975298265880714831688134017303843267602448449564513125667721468577495640071881920639670142778407448400173507329531199389065735456748562137859817368638953452049088142033288661937604104920996304832541036710411673479594214319433435857098518473249629692857738606497761629656618750439293875132413119734899398407081356813967853589025261715762810336438670097097917085958331538901056459928110880559736124763800218125269975624755939499860040068796944315979971262295180807202658873409145673711123840768789369500810872676842064741506629363584734993254666866692625875742634441379041750131431496378099406446475420659215962800627141686489851237695639140161424916732270282963618247554593798262411415685428422758888971686571047588289620274647067150639805126468331343971374814850007918411522758099335276366393326756770968784214431182787130713273599745965627684508174648483861864357473767742631007528929811620974976352549359977892495192744362879815916324255976509073601444823394775045660968551604177381191438575416250126898433238790332734590755749742816244618628816665451061360812562409065990671715901072277061280455021452665935487497055147840044413335990396857956541989988605724845186986684784527624185744024434092802890618810670481027470014496815768870296230527564332910368152376084053365866683169920427837834909885454311756249470436468087866280031188030035852438282967518576114348234539470389688002607457974520314906445846318564253318732514484460165112967324008008317489372309790968098747344905183027715234060817799026433467297998572520088071599052231237569076750131736413360822444534315354018884195436046003107953455055674764458042398357941257182296554979525043022237240818082515293789865797249171752872501864006189505382178304119618266797824560804785384525799593737985364855702844752743997878242840578595791196146631560326786325057499710899903945662268368333357637610078008699909054134253412422685328689571884726508782999706430412414359396753330957934543501053178571836855863276504275528681163936972409517124073414942133639500951840467087965537074378487102953785710897961608298428430134587475979330343145640418276893862099765413660432172651475238370669815639323523547928153663223376239216789295741311711881103670779233648136030412483431144291415185859162876392653575369677823439829705946769758400353098793430672618114158455443410309699204946282430678139649229627097248077570930826423676299647966694831485390365464756643095206773003930000538259060499088640095591880042094465246235750384899163411015741186678026531254200592502276107157058313687207028118772843295279982623719029994812401723256401325742956688343123404238163735844302540897091359762403028778267579951694193177956825840917889921081928052766584473011527501203836048844062384922490736605286088132229949061570452657207721274390463645623934217541948153917100600485382474391587253685284938842336381031342718399794439934272672435143673759172369894138669170181134346466697302792453626810012990617299091423059661654904202470230915104707569150203223503609785565290502410151654641294462867146439281069537457611651525174237943992892830988753956448477232262159065641978258691517313148081521291758434421681424515372034082824011938115056988991956442963738831123450813920413626628493702844023765968732858152832341210843160323898849149143061638896461438384045029024851846832678139131087782908495261394656099607519690618331468221963753617195741311827827917140164127612543500520149104127947475259868749274717103033076271013397005709503673932393359242736264742219458198413448551080825974947253291651348866806372302806647598765487489495859123942549758759193514508177741474295963524876935967357505229440498053928264156829135923099154305698719027372125239880145454570407024540437849190148521506063434274921402025627156557693336111242675165683483131683614435789601697462567473982795828698916849990201260433243263522895125727765280410004296875201869722773648918602128625601110955964979324783347382466300392407793619287001500283931938029265123613710988500910537919033234516360490417780547054491103859425564865332981140184305928575441512920225725868983334069251356810689275399633278839931034174507175362678049645842424275215668113097593005681573738927964435237878781620368212902945266488792834396009062661097898275370223319918419097919099967449915578492103192528920775367158854608380560245744462891547973092145499235627637398409514910204755324939452028336862421734810363590420757018022445551395598576404456789081336256394094433875090708099893545049513412491087920819230435554559394624542052952966942480178755686279828036008098985998125761541553066370384981551535688933125980410532872820915268041918842651671375330696691436448109576872049379645229471757483800306074558341150774110243895237051067448303664283585914489145542298119136240052767713213431321826668950683406832831890130227906798932318359314788952196439785840952736236522411493716738515041794271808949618151791960402982790150311210118578506607056790619244347271130525215148329725938391506634487003301940233858051072698814988730862276447128908844559789394329419838087330891056440863028283130019525148773774911724029005772486105452174067635323618260540195163678566491750525971327711297867101366490406799447917065994488884273344150750398421623602403307682582656009842997338973439649257993628252659433379082300163045367490481376585326913930356176198788212290254115606434444267187417318634560628776958469209447154905033492223563618012125417789041370439883872233695617041927679857913017361164838905167641356013190486308971288132365406750628536786944045362466766800152763910361889272215540051064177709998983462507633332140684311309712069363068726662754992695658383605840265586071204441536818778725309746902474775951672824353920142818977867321391007487649091520639869983896782659253694204250500944890016203664910002309648165718629399903192542869063461223651280123626555051895663765571621003218659274259655696132342179503642015847895617477947797336330494757736811033281986067473692243949378102805359461019899455513626648789281648543237187123156237213685534336831674119049879609832972010450134741217385763826859183252782144149991697893029198042375427095091431218369516237447659346918020080030854080420776054665406026359386050940002710575800515657464841529998956964809964065701343809738866059911254622846786088736721299765177137998535024589499725403960791842215219648260551742618175118206909612515794341618530291891211331260794552743228020625375488165930788848544315132245869319592010237589030699355972629763987761160062644897450762818333406532027319741636141040881408890110365391142138951248545836817502696348611808328549217815354352318756601254516737224270964409707966687471396818628361477542713149639203262660116001855589207131201994000317857869860160888921872865387618308888311603118779256480033988882166806177070931870041638934967490274919548376159081597002639508934916102752188364901510315926038387793140208336573986581456381826275818871493384072690403819105414553049289623512547096281630012163090669516056345948569694977000406490044233391608371062499203254506685622889244474743636960382522658027954837260861133408370010525620908672897950540781687148371394920241417372350418887447986373458747180518335858237712388907574699257360808319062949307552016494143334584961896972194691974260014954106755243772073386286565570472967460740465225415002538314843268186967072090683447178752952056222570915379264665358054159533512657991813285622792964014966489583461353724598576449628568640317180075452142986326504542562983035224940080562801809303936530950888000232379092459969847770574663864695443415664798581673554326314621341138603397350104061696124967309872951771986167448646852282136193690859117242326912661531339475959714698087369390081122548304527520241827826117741202649013636676404860265878450531422744375263767575480168051118126839531757677113183441130952149907265560088506267081061204155162318026615795198480071658978597135949200235857685043593076012666173534055714765265248738453351071639605599773951754944837910725743874940225226191582798374127663277386244189168376844927601255477787323941697874719397567246040745630527079625826009161804710199730853756793244666532982743461982419678228171821660138604461475500354127043216694488140551213488812521037458038182245798897698127858635585224941837527038955000451892858708384905629814616166267964721786790379973280036752778290459319683846280688640596540487527903015460161152133467369619136409675806243668414613888565863207750323664312379157119201120781919265813642650990315817452091715980203777064219027096149426038145189254902389145329029925738489293164881452455880979020714729565733845437750605584557462125445103766638263105461865207581465830832329589485664818131229896472518874167492989656498272852156389750105411422098274198460361895162153685041049090823930059570287328806377582743826417814995730264253791858597506506094983345383946736505790693529947457831480435244836918971774704940055324386051112549070984957102221226226063120334645712152362137976588641117899966498231299655556933789989426393209108388792583293031646436551379202931730682024972958024793134010598450246515050086842333650387539234972855796380549301949295469712807483803946779570941157589453749059668250475658412722835632225160971086100066670546199826690333556181036979916714871063352788966730330999134094659252797002193789489706345280622605691167928848149514737121269169643704997190385666356991814095252950306696497325657262121953862605931736900589613360610037904399566850533964368338536637025081058882223179843835130356742578093159499078047075600147608708078968936722467145598497841129094212236387051645511023040888780719029497120519775105750032293212302170473525617861845418966379787504396163070732281518990261564310254389099802209615102908380597555551004415613417581340946751526805644603634390885553482961439133712369247967159288709990712326051428631879430269353538738747291278620271285966859046966325780850238603582851835196908713855393947073712065096985762293827504395816708006823891254262780667013065425188387850646591682214040757128933874090905514188511976214126702542731763453474204756435832687413351270886248560439892595440993708563235465672397388215451545545540122214217473743987697324779059149972438973949531212030247796242806882927741035732231422695303513766713990694275479838503588037044790823230904557963456549848158299016833567471772826083283085367641330925844840552618063430029171072911480707517944366588528365343298424712461365033105236780233623414356635941484876833060644041550765919065616688081800622195672513962785272539001379998668698766486068591161475836242218571931479569900249783513184920647000667298474543037963999839929837043535728756809556798940660613979600793741066999609231750667146506219933260284047738785371421071662006227325965044176901048111857193627854649244645310048953232869438242038131696319444309523963009636863593829132722463670941857305080708568080609857227575759077987241179943073198263970515814493383926413043590195022343557995312373969220129155060862310002616164244254349556445285999889454496333384157507470516570591297689229499013338419173687897624946361885112860729682293860537023027445235476923233041660647902729476476992696598921667621081586953466366266350719847427077305220756838225766367210557185214654765411682571865274752693258613123465698427385937889301553935907423126275321465476701205410702322076904582167640280328140181702252330147649366995203628103757307737531834833057061033263000080453793344688261899135000277246903085327745132793985483225190754928726790143690007956084103829538590177849710996449867742663232571122477273175713970328715097506726904936140771607804658215878614335330570888850493798064124678994458976617217703906271309159900762056366326166688423129939092277438777092854312497080996808909799148145007913821304195755122671486501483950457842143412492486791620914457402663735455427553065922664817127550655329797148116523207928339334797027697795725817512555596681802406894057404788173997089898913565810940376011441325638416498673548186060839655178969125322965049408841637425718338747872429849436546904382401092466592778810030653815754063572519190769427598145452701825184087976988908812297481661700254891425167199428399486394535062703745913233274152715394951426810485272028424765700638913481516242442754750387060667366304869337076517050529251042005305407053304222700085747410361720809102101458048472936067488516016459925057793283155927416551914782037480869908769422359874444593331445833740270353659356284673185757922013030465405137410307147995204453558502835251366537905019675407421819390584191503358844461720731427224021299062554433926575435418156348398175722911267272156713686679364496348764736786512828023885406099993716893991693258807450935363827971400845553760948051374276059270873579490208361660172247514319526649678968470216010411135109069117492826112073479722604563461148307443429777883675912389932355405106532657530011905766024475157819969846939387737567549193246405027929561447911131290087958053960142283293053700977375825577991764288566244933074945712105488349770618334693524451715386138720942040173933321754636328402756249758826813450551544162060483177960288080507865255635486975728128070093651392011793542393758250604722388473213403160556950898211311876158889739209199367126458963142669236629512175094812407306079296271466677104066613860175345055469337854185705763766138108925787982007236424388544078143700220292813086244032229466067677204673536433064045120162509208347757428657434696062502651235484104072083458450460784069240072627729525048634230141490816692602057063912593992639250349750464384934659270183407858630441223696004641508860359407821338941889947306287845271268734559705015126462992172554058195727356298736789337140199085098378368827849221248808986571732162172991737991801772747509767170552297318869140118968577929814155780161885311117421288077216166865971370451458842239859068611392020094454791944840957216163972442252568857556218921455874592682252063947580375352317134007528150400049446469556424752071906524889623517597210040353326946998144380100209292988456358935206476943750056559938885443365083192061685545561560156530717331276086685924056138244832744003923232382106000091892677485077309939483434800714319663104678319468390098335135616323692564753669295151459748540989058490824356713523944221936673235708819343874158032035592403960242367294795133411711399717406668523850511119518281627794059418424959519666621703804575149778456701339216143349309649852668412618923183530111671221972532253228061145131294231984009457508977360109028153581112012957974184465765020392378705063852769503186135443022784064527602698201732192309591810806357861985472665081505255884065923795696820950669263203245877302010199660421503459260365639969255350646692955822339514386407424864681591224186233876403225014211436412371312119730754940489292942467613469214856877307470921675306004314427806625719009033376351093718622801935485104311659430107573719019954580904195399537932951334008504361803713067478341086367045422720490927777143140626202924163792989080012448291122333241947004633636479016373363702245167247507906469928960331791638876553752229622758996657404516608843276182968048947012703690882193128015612801502516774930752249629788794901651056653933499949181885928560380457044056780467049741729456279404929013456359233578339120624772614814561095611620391467586480293166400978472366194539238759075602044577293592138046857353827063118191781401836104268459627716321030559217547749256800345595303380066893448146462774153676625304881263658022842540497966353836380050403957784425758293302478688023186805618460251141664769095576728359811040860796190750438417516359688369528806960569491363376570416739310020299933862290369916040940378746012373825443099541075668451815692253538600864685805045220738000470537407264225509455041901806000989050911385201885546414187409533378403140467820212223794695175258635583843722590996040745866501402374298201733615319509607892642717216780182855802625206964126706750954973249729537561842959163117151030339222315024893903763909116478922645532811253862537889176881504786414868530418776361737248752012639058198553485291568947895043518379115036601040866821575731445278904152723633745580127471059045891438212941695129701194352333376458079927550326730424150687953231912359729609812506814666192086085707888085941970150799561508938903726284607985765510542398509675930608906905781864847197555534114827768902134938608357090807971754613782015870885086693710851295957486188258193213084987289805293733381823362532525650773833463294477909813308552229922506505880825842978007473822500196185335144178955800040679508789006950831958756084586633398839315419899350289411384415277881634348656352783093789627881427991003251334331513234119924467523667762389490878941979209708690572675936322419137591003178243887038112821830041218789713085922058832318044730977623977925829475866800067972726051629787674399231275275109084869212017590882024530801301879946750045142933151743969754244067680354830411322934289665738773662175039124821690224521894052409481175865098378641327077027943979833383879967756463091563603823162591516429822048985009605354734222104104733316224627121601215676361193852968387420677826104938157867608293984755695863630880211153348851246799937709025218239745239593473351264440627145296572506238966723275106479417045812826227351736038873608853646857810129904356754207177468434750758370359479993734332393767514713799663404773080059402827695823512173351771175414384303460044020327008233141436913186483378350259974874563529252808062353412344385416718766202703840721128470981757778126512583000241831041815032411932013342537759121352407373853586172815357096352800156962673116305423296155592735874303622933342539018827921294206808315071777629763214650021504883295385893887129159392503077579400581870034458745639771242753548694909129141696307648115674876409120657538451075012679242451784347964067012733096233913731045108945686965399646109271333427277794012339373963170668872067099923367472398483624006084349739222369487830554667303544697421548394831362416942391706275326047202175079419328840198813014212046147447259920839341854418621030209708919371857933477959458356037578102337393944406976131555670219822747153002340062979557260578952835589342057017479422904437950955455418394583844192240531769943848942905814837677010531615941581544218032666371671937313455427509271593119844051752951732234656957434013882862529414837943220141791570230144999797848927730359283459692856680611202353560074002109102508916510275609969008010530219441046062814397986039847064957128280353603597227220181002639353043915460113145495919406033658344784703934912790394386723820415367526874075321471070720247150779597120344833454740768863022000674086780283709258356081975371384846044221675580691619718123856562169647293174273475589247214109828398546263820512502452481660623044508555868974685770153404129790128699200941161799324688759403784883080150089973968299170982732795861657004332747666540644000139552657599855134675069139501469713443075362770855081332443812523228554184973939117071698989873965055719567081741594984262833612589729128364702387731040846195497898916889730726092570913454409051960342543940597147288760969882781636279167445538640012355375022942706597771649841023541016982503359352860461595675959014555429456213424352911481952055403573785101114049947838590235917580116239098925802970331347475800563080267603745206010233357364020219697534035837707859895152368118147157013202970959528741687136830866263001210162838196592904509448260094044720334081143937812839390841339976468646316686689829340716769788496065836289514875554443640907902720851846792824165658205884605471078034394253918470212086540201532675550932241767300055985753459592722494201006566807150991696751965946883489365983709986186731148054678689202539194871084163301357077177997639851267294335027626189830662484269499231428353627219256143375724784492997464409118701474428141676381190596479709421097524274570628489166985676985343846625312188880767021239387727965898892507302875219624067688408686184246386746743385069134489513880181668552501666960490817547933209338382922724149488010101183600871244190786129552042198393397530978374270539445981782634564447607308763454151042075687664934141556510543007620861856588321050825628091604336041007399572228381966239518884056427577114545811643199323877865262221030896921236751059016748041992689730715706648350926216608618631166785098743897269568010730034337367948887899627443444381923854573437758731924627396765156122221277514061462690155505450446350413380749354663403591607658783050761774726383529818385173247731352236545409791412780562221359841611473343031932279688633626677556555606156736316544180713038551740484619598427425916760215373962505602310531345049152146360183764372010187127538460860920188404201274746164435773295725442268824260040007932168983045426873372601087772907005500110378371367377193087662974996894183071791578739869987965961925539594095679988193659186879502245881518251517126587923406945423701430738464909033562094118811458467194841314024125813483594743661441157948766016588394674221947228095105472261237703339336343714680544486301869934488673714879269237421946638812147563927940687095926468460815126425672650047489887926951806203362789827166658856027330461206388120191106927791723485744229437941492029717284789362403370901388791701052788317706541467011072979725464246440706816414325322929989767559904390777594181108318582085373628190520565280749666483484220609147048638911675568460446439288323610742169776734395827019926555114912001155241168218731515563401899115629446591699508203337965328064362815115444817260070892909664087993378537962986144057884640621057920695877713791659851523846134611699780091992519171805272257244656561640994719761687878907634745344256877663202887224927047354802566765404148025009814168142748637468772141990212214812866864074957395567408727459256793652639444393759142890879280520709260298801426996442517118196803670337342580955164753850010281289477864898278022974962659047218632768338070897338968395074954931161761818919472574618959319070665132626898655418018664833639881568982498493488323199290579748303857584190192869191518344709237339458816053276649604630071651032910705792372402426270054166552926571406517828347119984680295012106121457753646660446863126992031653544638361575900382024416170569532143114984891804421514439288078063315964980833641920260942920479100832626964961817194281305220667715828973041230098300239635460078539722935695715640706934856013317152625189131281860606483204445670763768215415747732481046833464669325362600528675910464292162035271398181642067328635225169263533839086496037418005610914130613714094968743093903623625891277066772470598015075920421234317216231316780992635335938156176976301508756848825686124282480810322456026957893192002163268432830535097049371629985979288648366881885336334354897451558123606173057511702080715879555397795241763160428186768494288857821966930724622494786352449401223965104686232680297472216163347612595719399456468792105013996734878659737972551953444702471218463621633158531697539835438356819789725323631582438192609612776929345585025077009683771610411096360123733798828963400966601132603370795940998580870853600430279734044759708947599302273807676675567047109449822249155908862212534204234985337553341226235982982017502619353968033822706782187006596902970521051041489743527626134094882814938547391393660410647299172123296497678774001124687076210980116937219034364698252650248395885412156193927692278724933043985213711643446240957484571136922565491884403927156035515990286455212084203534493424933306278238474353724117002199399482187088387221948362937195110954242985144841119781969312625462824825575059974511160973489234000720715433093565296227127236852770168210349560427176687564256272459114971247466251448553430410188709790374902146060323577309688496102875221127157472980573248791073661982928347912816637467415564679882395419784515354437645464801943803949999892173839728236703157741167862391092168419260120455743289785738740742003442573755339156844366521083016197980301455332166523721243272289593822236801910809754728605279172512226773539344307592669432410112531981800427953700011790869092359979684362809002737272542525871862139650176387791241938260367278617141005284296451825939137094502666710005296297719811412200791433948218582142221300028510159802103540761584044330539286411272457123162012230790598251159264710469211731947392542520449259857624343402816410423751119033532720313018305612920712411686779995149547887710558427488678157916090864463009919625754110201658556527667055389582335115312157312197797354690392474245577052320631490000171264033146091368559251963770462182872034303908368347659926828244189215332025633445929198267282152926381062214516693205479775754659624048434933155693279146812113258342806683749560982866341335653073651887776016945611518422341850492878362092192650919328941017441975021326555071359576349165431480528756704084551541702774527360209238123146090089521039117332744842734991221988829390902422367261325710521762263704004772768392296608757048096553700717760803140964206746226136230966273909662812858952151218913362052385166884820760387478357941438476505198558983132220124958613348591610368799283151568570334139408329115660686414604405149272172090284190993041049982970218019614969018795432628023265316729092839342560389499553987858220059347474652386148241358077885084095174997407289744711041175692651598920359063372268682058511978292481643412816989272914584529622509554166015851133796925615372279954140030899771754503310372720751779558324686335245648084921493959385788223234639994105945935203445960798080253815773705725651499674195382205702941873949678503919278351836508060119917200354161790067269133347517855140095590536785644043527964460284574592046991046231351678038784613264250064459060525231709661094142174949767288361292786505761258056128262186911298052942794256715082894155469990202334585647317661097437116979890451661703273965208262792419033003227575211049983783397528662939056446280665910819580962035137397550763440666473640123223981582906306310293952193773116718136626560425467139134445671047076941444941505101603892870049455198665630290107037874932691325353513310825822245285302309758138202367038358285767875769543291745525532967562896192832100756466724113510749740136695980568684210927147285633317659384751743825286660651867355975793128817275318777937828715606341560732331884529659050915243954343544641029826944877274380030096386040907110167217585724297540494742733106155734353072292658496819224746262087508014037030130986321334450241729883802469061916935401946860528539383970065154836342142908466306714401323128353973261401530768750449133662707434049433730611886892090190324986644037218551603623777360551991352967778781178969053561123236624062985342506037334786917383394188934205659145955798032174738994068885111061577721880641522073629860313803949352825911880096859449734139003590931786523952124758903634107374484848426892795772531927044845406573112111743994031276699598328351806664770860565155798910348934556511891125485308285783005707047590938825781204565586326982675096345634634048545424593484100349458523177291998893892143584396875558002912653762790242740988576528379569974971123354241293307925503114532634655216984814649226601413759133132412301749423494369205807472742518595522823410488459046856155543735790485062253012054180513270275590391635329125832425017066415925841217787821340373527073873487646400604548201178528507657319348008807426570976954779432404503101674773153163190167250776168952622219539990630860862569420231864283376741160900159345718553421637763703190710463735655522887301909596296227341596382021993572120759029660673925023607432893323992258582826648727860157275317609421312178159213206745117864467457386128939539565324128837384459785570976348472578744290094157437478769151486025512366988265886494188131696322186874860378487691318500216320321863427035280588562254813780294404374146783375993938589255757008623152113055382214676132033692334777040469396345293739875561469400261874907877922384623302177683521088154047944335038269877394606208081234882674578729572346168013520291306962119538395428356720372750705549198157062864064592848838705007571451350409934157273695858349765937476920292673932414227107470793632330732871828190152252479112938871194588888402447253526735191811610014170392902191994145895014343550492352740526277809344518820461104056498113960928346413572659249390920738542635061135638931590836109740463736360946675372658443121613672618876650579678783336282834823407740353370772549099382104772295792944722250836401522882095890507678589225734274175291352738809908913373901246291794665215754297104107832410163936749974236733295241642112711843228617319165984988439589708383479244367678716339939703747413448659947435807587949324828446395497999626687395021273736793636685466411368726772197150378031448811844495594290318697694939518059707034429635937499979392547471354781068174646402170469138021164108118271902820316308000086778785075984171567658780210986982972380185725974952659252674975807015030237867671825615229014288797459877109667758099630698484724146171438579719962501169964985909538785334253584500356127771511707887043982750399154126740871338744206443701259336750397431077888893364512544789719830270969881562128512381905270146533466128195506194899810545955634866154165725701297890606965906916003182281906002989503915055725726300971883935744725545377399477655214756799619185205918261835653900185780136748696384403801153882130261707288810569701429626430548750699339261889683795907219547317951400687933990044835914667436757917936069801171531333288192560936108886674504636983143543335600808211418922511565716674152360793717204611852244183626382040569824648371449400478886396477076010083802271635833750279227634012466752636274104864876229288836077663873300709729515974098092139976837802605039118031980421769395532478240358488158693864519064313665360591482367045639499718345717288990608442732274789426871754854927549358978971054364727726201109967335022705421470396383460935421033655731821587948997154515897859589008344030292599443233854383906565632525696269653223309315449560950598553827749580719417131914148153572755986201248850095270770055617289707410663358193895249850968337962694212689308023026739765419706942270401079573315264619049649023920144743507369923525114112793323465147516189458701082431228398985625443339323600939684471347915110519450678469980514210444566623304803386461504021645105964849221468691689462235088287678124177255410600175487965374851835848494402588009481142508082989777505060722784372284667808189617235356032417206342498130600487894544750842527960215774094909285289045467720928119628395354912637795018840019271857530704896144800937708104996923760607973325939883308772267674891119145832069314751721113496147440924724029941242818641984001447823433776462253858199083865282747227663371430847204783531969446353509733203621894522913878108498422813140237654013739994063748934803507355539368142379830015880840826429730080518621598311878813805466885108478185051492613410103889168935641516359233197246945179054659977117633631928563549446308390275937177996560473927536365677789067584708276627813974318183062394345303444996741701431990964046698077944594777740472471390122652888781989636896110194100492915455354480740579049713868193456992623909580231876335546425643206488017285869660548401241734489010380992825034509215127805726436728265751735078797883979163399549610731835752452080793633076552022881865982494276092115193884354949841440793833222104982690835567378044713083962128478279678069955458930005581538962620745210729395527923914113646192981637885251684161772511264843259455139721949633311403829385368261018751329195658692792432871416472714999752338142207324898754213043483449843720302810718629766385898551283315320581530327008233183912432115571772853497448456044800684301045335176672943698785461962963409525804553774798067006823513972277661243643350215964257536478539183670397121293856660123895556241837766599175533155862865277300273807042871332419882123387208263802550091700614837971023961474803968439519247590538838344383745057932194252312043836021798370687118932052507489494412340881941757206119200820169722369212772050557372763306655848190722539453068863207385213102882285796683842664083809609629079321138062414677126369760874993164452694541270105455166925824423649631642996221584018362060050688859137166848777617487094842725501974981343749445860160109261952828256054067923735296124813240965552567846496858635329453557847808672126973213140534097800099682837269393397078632311044424050762800940822212484884569875027695115453989434069379620689505687734009845024041743636191955128496345772042968753563403344118561562987291063929187780690705692645203911337774766392143788794401219224742395916771993450498527401958160848795761169938004656405691985544127739326846359206822278621201880177438749004682066391992802434207404139119524232021884976278565183560937661831020648949319334995126098384695407857711685640257369208993895751756280015187099121217579877501532608718302127654389824132763676256267550486969279348547051886894011814534794263144718016352482311297482948840616586820000549130514420657738914879254788162181969602516207740756325008428275263383848050948850967584488469173731256566664383890498513964034237746860413807219297910510580196860221637441474552712460181157744967754666116948620174378478400878386181970871666343371504995078744136767408937485728414596073715898937264054023592973726197793381444128887845144749370593071397525452015692341108175539880522492938079350980827241727432743948703959115543422492290762331215447384223737975283805507002386641736831395207554105805750399544867920187331078646803855187236467092141600162019487575992102882166047667977080887985853844614673944208996713257334391924732958494252739069772800461997822291180794720725232436348230997764744486051820651149024357074776964277668749126381645184696353686286333136088147692349061357263777598667826132295090610902687245068465146491998514230217945304404373340786656951886859223607192835805767557511461266816056046303087648620417014403034794970156976429826837838025882879281970364841516055445822719385305074295942131961926476607792160346209583944109722468185836197971733712656815425562660624837984924172521504922422600545957583970902908472304907286844576040411367102040964501280046476116708141587947640723368124943914557882678812463513786796993328191782333435281210810901635850567598684841115430334832946584014057789242971119803252413994960248647973042067218180994153773784878723314316584825784342707860618345601328050194346082900656585829750599150672633180176864653040148787230350895177720721416595984981904852244328594302607721101179290513148963182136749177638776849541927279234161139838942231818448528278729072924347630454767781355667368549875884399431786558335715609558984956996657103063618823820029015184050450939612060159478690589140217092005365799010686571685638431990761172038458298859815921310627383247997474358643303479151707043265347183240473302726281742239796568708192329871949753454647666778194966119873644686858790573507909910965511246610361186564883361306271643980756912159387025614846485260473600293783565510201587445624405260394095271873889381120278972178860088693981701923541779210321018952178807062820919186195937261032036539938674247867450899358741619736506233908098927544121738516458128458601240381605540867872067988474314202026271408425868210773167392273748192090657344132046855195545941768410175264958274512407964165731815555706432799140761036559715195502986335815478015300232921928849724528754503101116447290558899634849776186776476632946056354609512804465643031850592355940354839794100797530999052790580081028670338956362316062876604189634818058735621705997582391779198228292627882023757664851077472707996144433017989860956451321799090116365388464468488829472281211126599457009375260215829648239105857735218108332034985064340426135991005818476000422014164629290523637340139484526569077540724081050713479449326201308742418136362178997969869718237214597380664686490612182358827207141176188117634969412385838840302540356267193206971395427079994143102647499912927714299605598328710594233419831861634863905482238863044019986208961277909506538100021859922599280853042757482532548693957839783812722952547561310809409450992145274526949365658434224508532541606453266559671148000799073686386828468463417907717697215647375396739308784153642892071322879635011837822202914667267224224342050242200279150966163609572701653703313734778066877609520451326312370559213820367036485264567428341675658575117369215652154523403466804476924808214606816411624574193870396402718658864328069742158999325727854585350525442645073327079581178764685341545123475711372074147971822103604445510832038657417728738570512111236954796596118574123968560080895839534787594871139141566030010165693244171847782400084391386794627145316160346852953088686340873171520173106751029483311148438524867757982593807141939116869048678058703592789051178959902747907275347403871231564362511940905851806010091341137032216155370458271582862560643164282607747628194720582074575962965635759715418010448922449156434502959094553992656265661939455996371285564795456091335321659673549077042126527592280999163296464119916846206327786836378840565163435843502347801380031959402888169112762254325711130073820698877135964237445450890087518948962763679195418939752801948904673947724291264481581605775076724315310652575868186224640312583795504186480133630844975630791337242923624533780770679519514002630027238010741839176299066680264678156612808679157224313502754961761619187358037568782801668735828546257995590878650991536755153667388620638312070779926376221801840619984276003665976198901658335656383158801906852708923380616473890930198659141224773136733517934396219214215590397627639968931695252114242826049689271265216681197601480753762576735192413267156501641315117324636077940224767594694620273435298894646100867284590022236704154173950327551365217057143860882199181109269144189578130777247361370521102155133063257594404416615228342308867978066520793826220001812490808884398232896810567293709988500994910551638102465923517002556708857726822770180579915562223238520627304993710568429147224198002125220243178162804777906844048705932027440535465154327309158902190958624279940905969897466210346385136622780558494569842586108913227361195965847459865610531300528587136447257789136755864787881469589564459088311081222946522910290611174653554298699941638942300398151498282096703277255871562310962719662699534518911503539773692734818873147818747405074726706570858941583925879376693941602665230461494945818029078453229799279025249314300877847461236576349271445548182119674850266149554444688579617327571856827131137179754099066917170188190227530782062326666287292393210006219413386085851607088293422600636544236437159130172754365927548709944976645929749643892825505385286137493217781951639136309534128294764239637053032842274160643825246902585342745562461195144284613386166690149623203653702936270681458317718321753893286136492623571808546151811245439733819437241985279973360790462726527976845227273502939783024034649718062453404969898259551307681503932901105680757962102920748448511731966258919262967737014469012540408419153238800850392808708101391406603734534149933420921109612833860722557800432790269561706536862904363004014303182215289137227851688158916121047759095734596942594072663434992337812056330770007930429270348408114263161462600949841262404854236166494011728550707733930185823830811816975850712384536973480084702476402297837816965089036639710360266327852445904883243941640938632879211157363859660138229446341595537057905894073249972240847020220961175738967274157937194546950915916752890026661990153581505871564081923620374834798312768547891840704105227036939046352959887606998836599193372114785720357456934382652266154071452690343692972133519047493745686918404757767721933368730971071202022304592532850523934395667438937993038609862607934126639585967759285056608822548503187031239928716331959231213764712561775559630117282671401500740923192068896055796856249430902862347672437916149802083948099234938837895595001471911066732319072532823426099707666510315979393288562081225737209226388751985870418663481791665122710526999027690121071272661860595009555360354078983978424151163118955553434407361475668393909409348520120490420375124266275897222022811280583333187205941691644967073785900426764253925557100749619414853608150359180656041377761835758454426562250844718941796443579814783311054487616540230753356881375956524340215225488322716016463718486603007930542384183352200848913940747505941261060115852585170965524660567132589188574261917744164927674259378566478319648454512417425834049428549672445955435594891377704941031418319764857647417821452293819857944269851975520236648071890740806037137521789328858086092785563418973052582480357238926710875691720528008432707030656629296276338799027831290090660715960015845331947268486717296204823523261147073712942739049092824875496005319875661842429230666289363258175038839147617698571910060092724057184130509083345418453265496577908831915476957608261147731140941441223232961757659133823966278754489781488574370811800910750540761399363545604775574943198695448504428979723817555855343037970724786925829648344287432579242245209311809549948070366016577144120947008799942152470815049680973598348289876446564457618229598275012192108830043432323701196347099270429221879572547788774794864239935034705396905837391318310541213284650290196484991269204782624411249963461077629555272062605480883071558791365141209651489462442657493984131266003672223651958339344915312602655579541374344868689234078523644674584032904445125760049742921742152608297951274497738893916064493359106287399425581599344318197661403423125985660841956264746392184979056217836064460479476821054887632111942061510587725614717983275472913773887744007805272459758632193035114308020940217445177631489662072624632050574371844564139398925503043495606925962704174693364847082123478724182179927863768154933206261964857314500969796866149194078784538474850702673296142462624020964797722191001542267306218550298277979315912922626981702220663364382197533761805684664047262623149220230744441709487970963806215247035751796569719916551368158051400662145565103038990273766557340806201804606267620035777643027838170378173866505771121256307132816247539370852405703599871139275553401021519550452591816503453341408511909931339561042019691088229019232146051897887899231720553802256940373020851596973805353667187719741057427400151859043358387239791701569143450607103320971558986051641296474214831358425834667744665323784446865703752000583548038208011933624040152357401617865807535919607183458136225139154759026047366527440424818278118115944964846825888617893302742391961500993674772831720859387406679825135123470340751498253414570634459166248375390034659233133917846958347642741264757642198579983875774486266351388957650290016951144271841957076194923626946167886815086640445528877176400963880342559846496376695330829406895414638511125746891741195140437492946560135513442408906780179887066834462608189063216621345156953589455795952497954042880330849016802053162133791555081353830113101480176218900960435027230216552019569668507309510072504684987774423275864468810383703379128310247144474893740276994730106017697501165677507582521935802080823757814633852569363970526491302783163939112117095848743991133255733434010345550765578528664177030643754687013789309900521068867013828561496642057277020905204765764638516554082120444373044817592559016783281320800687106894795965562980521926495409317415991941777263575999080474913906417773846046027089538929158864402454703491219752357973783820721253720549342941786334141466085160730271500320176625936410191733815837012286433466527715433032522571032372605187327991884745008677422925560043336740440570613746572940587296337303599505139282816508311202651805719433072921577213572974643402020813419567799520630694130719409414855001190495479794569106292389533586110059176023772313051096974834261575325478082788726608827819212483289121092425245995457956330021767814701601479632308900978494174874130493464070800653894540938760827045113099418707254976941089396984512492098682923309593222854494088587171995613476574190799978438719357405465643527900790297643400700502339156732405096308223395361501400513390247466526718376413629262284973329717349727842025699779018141229297139510391153880514841542752854423805214981825591224517078912361444850978298068139914810532548220761926271939261849740859953411247061567043472328249512111190322283613626228552305754772766333132366235355267308160868825486233307811702709564101589485577238725114996026831587787001200749244360500480779389362734584025778480880818795970740087082324575451749328353067491248574288008994102974845087209112414712657463900999814506196846591230519984769560115404177415488887916689065150339176203564568082048715236850901081862890851710977002815278691044204988286343555253189734917148243744541141304407876149431847686354216071592608358667966829332121668954044208705926222984812584708731101253003681860636425706504736121011018304552674277656147654137654699510979685722543085772867249863378511929079162904161724123082039340207213241072955427637815319278047391322542270210565473537396017736907323797635657650970700856990593119638135712062461840456045415788572675226673636563070810818910049628682048822002709726871303403135494578276613947463621631913946139628772405344135481328025505110568912542789389039996111338287919511806626551162426143698444009829781767441674286098055171194054497753597189436071902482614317100641147014411485022947936975131578380046147977507010678222381987413972427754163587023050267105911757819701977783198435955233985752981885875561930642221580466565717227873964697573207696449636115557739417755424989232120535596071079371535786499434074905286673809119072660981747844552064562248542842413727986123535465483226258220078171808793883143010208342954584643269444472254588711968625164481712099100691513904135339522124261007423073463584436488166402310434315721230262307457281363961714130543431848304453318798496404968825577860849458033256587705869431512628995777336178918476043247809841651702486958504288198159663886403637966441494134902686070732603731808521515699575186487563328315343658864907060828120375886137789977505833041006379656639900238178709488619256133590359670128710150481926495908035455059958199594537313064636633791354323546005969815963029911749329751839280948694842919127861143123656412639954716249419205589735415630449126250985142093810925825693586765291267310358303272482504542482768330493198546693420774877331383582785150230312617367480460224149078415073121698613795219117820160956035241759297613834653690633915447896119163559891943110948680090423310133686162025229872120266545308401044635484779846941897956949799022643438696937368260033617035167345343246660341202872380408916785759626256162460430012902322887753146597530943783081987733949919527231733891108184018095372762809629580475426636222627682431871272804941275472078211670277769555495323214938697474271143823290791480821791811454167999490404169195672786747237743605385021728117655623495586852794096795303415119868096513145982502559118890178095998125296749519185914748483918248274899150301370861664267584365662937008218669786410270971839762206147591150037899775314256047590374571814700250214665471127405033519549295503927998172762317220191989255217565419725404300930502069070737447002383680328835838143305484693144733696465536087931894184792331952988322871037628367092783127319210183280501119295075635950184111113812507767071979328143768506523435669120910097494858386776193259160010554322632835124777573315170014570679569325481693364040840158617424615125635087096211772687408428079875638987510979300694445756577708573029090814034905153568326281715097483219454931627786006927282061077461564314772224272070124500311890266833122227171717407773349388545869147476066724647510540481457133368321320925636946565241955500381164004896092472303535931578157211386014135345467617909547055248767522080899008138681868692178246002425482335281727923375263944781745021053929669815708603923607046596391505442751032732915242986128873762335384360501181547941706229156546156907927606108618364962547332670094960033321706195934196595326966843200915636091748788422247013205047509623104399765718059847836231805231384848805724402288415635388983478962690245687402826863719232492551275244460224479235966800196796972982527994964406956505791226398925792738709071880613983311724843352902271050417672247538742713323432359320679594976769219991757686804952730735100707656399163757167999043240356877418064836791716315009545547624579074211917381706593988382027280882400316785890951585310196555575471881594670014681959030739410052319576453529450756803534097763161001886552908592627841324472639496189456516125431907876237916734645894054574838917589257545922625667112508577516480649726236820815707787912810329040546494562304669066235884649541746480335677478253214445894922951060250932874261185419332183517879223996822023567938509265190345328895287687581676949225055596342895379534529355673224085330568894572328615814463849729301288942785493089761959290694932906687368810806231827851301229794280476187925670836473010977392771138051630082660557937887035081922720723794905208364178103981719594243089798348336251206789266257276412194451424901922401318859087276433324680153048151104197122287339006835965566805042769566922203641629007955270787920459154859528525661578868750193836881202074936260212075883808632564029555602832009623486901240080194332379856134645980645762799149143612369169090661300477856923442243165867646256890761364442442714332147324206882314303350628731692857264025737970276579266415299516528069381959399570478164982261838022850902523976106347744440545621994723663928422315127952226644742728804367932806277861573493785832467595267475842208745508352130098006668689948723802871212896036493240301391804380418335388483143531659786017765109980585793253261465486064538331244689699602977361870121648367073328508687349529790279782998058718303422521951687783574973919466560665965417060580068186897512435434257116421477681660507070341152889503915629667785839238378737787653339854448418372575604645772778929518660411851339131272651867676326874876927081134863462706676406732198755638495424314549178406765054784538106756049423649458477945560034435912619978159084701038768934864097681721636230214166383091464780744653886707772404290843598760852646023035143799567783328851386511563742617723007616163170540018069545427613682282183670244341435397731092108665052384787184879612587027307245566513350803548660148887347457915032641400617093995217783973206481029347786752901888319872733542446413992162282794228850207340887364422973762576224925762917893942198569250775349604712228890497931677077014846934306958884667092409095390327560864899102274024031575356059599707029381683742326819103858617663820614685793654251134333907060525125501521530029428253418998571496104427932815636422533380640924595376902362783479098455972949529787230276450310695062205221162275908074367631651566202681094096208339363380144639191513414352904168674496383214570244340137092314672948256328974648572243421224322209232735772823855881716768222757764852244924170835784397063602085189337385912623402465847723013545013353867232330723016483810843028290775939015366167037998436808625728873417570900957553948677910564338452733108645791800000501108318229895656344480783875270291687897993863118143361322884597968101452882591709776523232298046477408723727561028050681479093730376818617082869834958490095567574575166951255728067654645187593036088455483081924955572953246587067509873434239262912970393972414684982377436956057354489352096938001780444803482758433858283059671040294075055423760580982613538010985197175914877832961100495221821092996139703608674408572933443946309022983493349776093993168451895558595410139131632299910914019855611284989822950342153475709579989989295034037696290433856603271370089280225733409371642328391132434162214809229970852574839230048163380878281877640817724012569406897866947422057030807186630626442607649069035931747000518426159855787530763311504191925408528353766590817996530904040277492423165543161532691291348968663981282241744957802918164346242333382639154522294307761819204875600137764057477741419409896987653610753458783601132262255415775224559568571662824990140559191485404115825672019033031657222295040507824772527629565713118110027198404474503587578356662028198051267608950595353716126223609040133996703691911132630858305968079734888531777201811292445488416785865359541823351652156952800745917058436035868216608622713009468862633080608311749272740633495788040995759759136813591618300603982343123290675776087129921267804005606905720186813527927043893811672761889943196552867848370651563956747086159490737155705852843416862008978838222492095327275626076886854810692834502865396748021566237001422663760510356348928222645778360468189273964898566510856553248070745325619323965751721671496654840294784962411946749402457214724715369607471798147256273343126748498494836257873539238478614132816400247629761095551925668874563505760525547804867576372084933124515094159155822095676894507481508424905452717706233841341006100399628891418643374727175237444722810634535938050657357688664850147347477155122070001690655855354340641228484104805711085829475667201496628843339963250982147274585675762611077212186411713787546517863683033716371973130283042329488706600416190299274405117202629832807672207889728246150375764870868793431562579398620319720534878354472977281564111600421451716269382122016721437233636780338585404133891550590139133932127203988733737495871502060699204713914862960285410984545944241054612491431404738868399606189352257720707154162360341376514869591631181475668840266164606625510327780491897535785248856716765723682550056931890446254960282686621533191003941997260599068095740770084384920211942261535202724685970634961150283555159695262361881274000102374807451982890650765344859701293168887591661850131680244222555824929409746134375331344868941934037516842478199788224491139677337830833436580456492048926837185619028921097101478696428341548687210116813188350884199940504765736111845908652154019507216502582175440626526875941047409983112853718412821184556605624227318760091419293148800355236512512915809710077769604583917097296972022291292845813776414794466153738688397839659079330211428601308908796781595946143465165920773113332186862035231533477789646568735520963685168854245713303985579670183345784610483090175246028560010852403704416147142263776234704632860506058641411158997581794860509357329532903038851529553332359555516652227390766388830635209009238312356446853383601246357797244035621451114010803124486138852209824875045612484110282227386055188852759793239077542635283877382449944472009803459416339032250114713574656656862677579326605663969302146171045082888577413431725038322730159188500229389091027057809674633296284114116648142918931357343310904204624109054700813902370844187961654545712141477141033944570410724585440437778400315922545661191977679660018452568244672143236517066757632302423806550752355356523926065129571679070007627117332999404938973601842759981415507171709121711945365470918149063098108783383126954655829195714183604616125603100222380619378069179595482260263676424604584804481405462398458021690416253729820825468947152304373220504535251744211576849903987620416546579196604301613748799300803846347064762393209394119863106924048355167342235913718301331279287798458472595892241928112588115345223251792334992352928503888849489546428073299327004665510022960106131900544286390281546822636891392405217725858005129573985637137682026818167234757637754815196698071032759440617068211068166835248674880467209340450720855614745862558860655241263786646283748610533004596508703448220382993838262236365453524360700333893802912257879315092205171904279659741072944398072425887706465141000799347561119025661492611838443345836875036679492091701476859540857057054384399980222798989347329425631666953380747580575573037273057599494766503162052263097188790305397363459397612568993145200601505615913999066684618803205906274196894580254828704285421034432163392318861006365603034712667914783622320316149761006140901747440917542040918473594485363589283170899801954947183459275266633647671565301547126561426662425285500228614797602223931883025845678344501066136386468551131382115750316658805816326447864664933540591536847344818882745776690988136842622484286060194024519515634978907976614954647417348181762583597218716587274697044336956799017502306709139707642475346143029924420063455540670607963346145921278148913267366751821877932187230996338182145320721438506127380708165929982531592104474533905208966694559653585153222421499331243332871743051300519043494858825214398343116139115403096571021415461887861908793370532690124798762176259268170614772867843400142811547614215336503704250726460540750230804582981911626366888073309826546670253328368740156922522270067606867490645920531888198931857297227164200929228768741926013684272439490887584712858045864423954444331902943031231139055403505761456738358089012728775453222643193632589842605611229427144652833922744689468546139849976386736359064660400906314361943944831877459965165164445691722262914142867632396990853081203493785905809768612137663019487472958174987780938006118259183428424181020283036573440234927477530290805799818458540836032042964188284175514684029113201179361833091090208931457248612996514707037002506834435974733108391011739124701981830708653759923463040545643810685592562820614024401233328271812073164272984320591043360957688728541599409923639333071510842966119643040328365984357613665524199197865657119857992840488132847565780227457842972474208798246544716090213303454802301795496440548670065802737065658934773989281785649807562036168536025874772417860477520072833500704203165466579323270226198926945050127564759266832641240550124386214571335578217408281404620129818741202162249184611940116030482744489215064295820994281270224707043823459796814228326606738955996002925082102001773683783224457582308160901798096769868871082153378955874795116262870626777164871238940273050094103827124022765824753013012746160211085895291502715904404422265225980209718821275117508717527762408221343658631919825464021362532849474893177149091980555333429879162827907875513936380175221404860821904808093615953612226409578894845361329639066970562216198471724159936365925657448616791832932538352984290844564228981745427878139512159869777265801412057612957832809999423286105426328497101872538257516683218671824475148165385865674093087041161073328714266390412860632088110207928150246925613594840041773522642765476318285616718564333550503613587947978476890787732152740219208991038284940899442872354939072655359216587139517909486969179425145026804243974903233867855456197597573377950559492931678918798075457116760248734199202631965773144830568389260444911024544521743483733909731788877308252490017264835723752379741299367663619957675502478028887903367927913361665790687736611337782584332080136862468222501605921567293879301495809313524409600703354978187740957414362466887820041051284228611402085418033306738597934962399204822029188691306904373631152496119940863258679742756879010379880676725169637034526717306117126541214061617787951866442020133683396193689137000537733002557624397057430001418561348225558698029993050844738367531410111636157843078996220699102715715976989300473552704978195556576178171242516988805019212284742968858324226999267895842607000723089874373166544968109673946261629064538850659049170164500020617075035046501638637924773626509752864006659444768858118349161759013397319546871182877479732718852416601674088824071892610862874535188972675825500090672784497245557567719555324216848486250287859027760675177097874034393461002638833674370142829271549220653573562477472358416662966527831826008488846692892943048433225576277411809312627595387814917096897861920688935460675820047591994077097625706279772001357668801319192895566247368629789441227040161716878963889035761522175041917862076876050967170985877408920797586623972768140321759934144714942854597806088555722366671851670168354434447703961987469477699473102972910369337287735028686777080132213904755476876098387313274568590996369861381615469010889042057266267331137771327832425057590778431861732301746867037571743604085198363071833160521210165253162131345313885232666092285607247845196134078797215850357025692053127198350697273309161350704173081986395522150080603785255985116632205665910118135666558556424604932342264382188041668780315333372930308657584862124400148398705611140722710215301145724883697462335437520651038667564128111763467761061696637775765199174422812758143650682121944972269305621194941269437070409342700472628316347453376459208403788175933538539641222409260889808882563099148803150926423371074895874719233693822686110622800030333547076209289436224714372662613656456017368630471524172969317515509574798771307829682939457511384256394722834108971958374851419665254954309053581913274738318301962584202695659528053846331683793594628430758698652420907073084052681956455099780646983708991835458298354268990344890442130704833971478304757739877850183590199550928432464656742539106255194391567815354432076424597666474205581344607497374584440950821389300223555394152846960313091853731869081468781983688968910253141649052711435246793490008997624832871954087969524208650781849269151221788044741182272647684558320602727350906973575194777910884438853463959757304108454526202997724728228373347931392641970072808589605151657450957564455785328928753332646446159362240660399105469821998379449268860657769487466673248722734525634234814228109426650926507848524745065806094607433214723416127309613275016327998415622205078211846348081493264502151570910147198199122229614679604329136517803751931527654429013829873100154378796020440965715448313986255403521319441898346595729153164930959058204331323422590966320704041077844959397402411676635686096516325725006281649069786770628046138087947007680494342011163995635086586066213403411204346612409704012113037210331750474743536371258255037126165435145841549850883481872453361188848039665753778558437113309889715120262517944134715967844517704881753765586192412605890893842528125102693413041955310157410518960960459869132196111389667349446923771707181272299412227920041046801276718922399883431267162109431166194070212516338795970731813256149666420316575871962306296050671268182210754454173775063550804294183935199785476751982875778266102341629909625348028629484704852800698263635118562961828450525763819405160233538475139673479516596827609414498475762194660200529698731267098258884726586387805633632603126868091883400210764790723518324683405348001733065844708462617273173071199589380690790066708964663383783701258903949405283873586415775740296217848799243244976941984730515389182640055891614275320325945570581212116659840285592809730735478941428148246371835444022782308335387973137284189137338592008057689386944419034586036625956352923810145199915308901868341993827060987499024674444536528743133576717790621197462251417705884415926820652135848263805205298413196037566238639779748826716941659699937569816104972797782523374554898505811542440203256528209189855376441235547899682702779546078379917374098983730186532649909118802958393002413422990476802419936358006278372313090664890546323242393405571650151504436485256732659474012341171902011471053676642996042037442219278867925552789348197052042465480916602795154612236657368268575173879982630818363709810217520915328364012198089064063972945884413791379008484979566263592843137567066564159522959545878542067155690490810892017268431699543645241376176487655666157399143607919417546895057438607899660613703962759865501006790024305496906641085298553994301782885096448730325764537594346944544501788506566553275316582845371695235954952406577231466073161561102351026879920123824530473418464349555866820750355029837649169348269946206999117034364388988765662035601023277009217549236494602196389625282482383624632234107235422422187786875437790322669437856005040151374282434395342757239220875607034431679466607064892994448015177776306412777717399589438746179847726462702025975902748731528536917366657995669538129581708484041770050726708697048116672617491537376463843282238066682788034746299420490139294713781645157781208569999899152135009982233240778332401051965676121693035607759801781242727697404091154394402979078082335612273012207033715524359956042884629578522611725784011278935276556578818250443773311935168241453858991619107452012799432286751863404868270371776369453748360969667261946375130895722119337620570081455208842128122942776256700149696908649425912130952916888921855574114229496227193711800930902678884097282209103887405216685278868564265847512589446281777479358435787275085894997335632949338896455623304198836223999697915542980996423578644502003475893781872196353216643901524265105525497653603831342115247932313223852786756779989208054407130582330508562315643958864193575904269158954592448774994439132227019345628452348982069954082698555306443529075619615124512951690191700033177381980920246191079388008949899323832022520479925688382554986307640877457030852072867974532366741445570349603462704750298646009730862093124051939350194786934431027171246067033353060902629778843830728810139335813442915549252045573231083249722306134399079468205822689596942465907873762169662293249211465137195591805198479937814331861706944610438663600752918522267209540143676911364565975029630329019571605574601949086837323427756377862144077783489687624864268366601134053383612587931431146302033215010175502078490339283898449407014997192196204207575461193595195734785676157035372967125829281929321253802416838363626958358419704063378266216061156732197610634892253469717001046758383584499527183837431139385891231995311056862778146540063179864670433399012387911768736744630741075631781205643515020472923377945287040086861274200677606072261492312663537424210542807002882107002569109550667910086749349542316501221086950638250828755335780300287438369655048815688742421798446109312690556118149153595977188079040462508036840500832629375284802375187683900753739988299910031122006439119974889139401638540846589541978795934344225426139313337512110136617397525149172237703261894545236148712025041869136966222567556079088909956972020181769580034088994893976677527393926746166751642113993312046386801550976622487025369435820631160540876754097782357359465389090291980047290251676705662244959586948114351809806401376335476706031635948397124416005759289580731128251810297574623296876372440912795205142801678086499162155088236742336981660982295494813231196440927365594631431995229482343749941059956883856456283183643193812823199224476691527551420415013038280397374728185143081302008314528720686795855942597802447660942026270099548540512777429530372260159384100373567659458208465743853798416342229339599813743428276425624771726901810677219707004045062326138280819889544712698177019952753449110329341225803542294111874695200502977675009887938498215070985510646566842952522082169776681926150099360962886435546556266143449457208918908804358654506121693124263088100021112547114694080955667704460279975508368774356929127889435786304412660135190896644495613536273737371549673208937235892177958634741155422582117207324642396779731021717359579672090042889256956028254002245838851041417333686879278735901423378408685681000435375534025144955564935798559871751700852388022929774985294173243074076905961795202354948237089349267005130125361633910843684182101698699657221396174410423192078566372144745937280501503057450814393701978136286247368907932725244381733614535296332588284595949766227932283409889642933297212963035549414883570808495918740144881025311285668371519967851641839219522154059041976295691809353128433034323165714655345481468329618785366439744545606132233238336516632509394949641446587628237565814467792024934966525890876263775840233721716391333470941356334319267605180563959805986096639266744069419287330426254397568490825666700592264643219875727147301918532642295602102804173796949508670362776658231894608773029493588547506478939270545056872870586453676579579117675648125919342207593282085090652175695383972295116481310864892425422020712136962218116695225913420009927516779230996663689532022615281206259942358347530886072112268309396171026813103832107427729734563527552283469505350779961143400514733954749390664122871531024933981007414590962346237564480677299484148320462623765574673507769276938057011387320026621753643130431931675252336944260701393391783141723301639358003894754589057147695721090543719657948525127888464341849721966281257929554368167834763964659534861174698189463392278795444085023085972524498799366107651129776990434466357064528928443497233368580460317996222159924104874840006550698424453079296860210023427239605121764667361361162238644099670303635081678901941523540171347942155848430856614250092898967660226003875194456987371461895133607668478107021144580018331077446925298424037676614642830148821723358100829517862009250796370934435723240153409162129022482349779783216827965587090260568550776703493245218137605978176938819870200367338722863953206289322427164609303033553253097495155959836768136782418211634915184863507848387730337105705361634137233894649296344902583008336035176168229711725392216897309744975039479281854989366278001733690821605685416603452131535384547289005898834564042635859546909665280323885934141969726280708281763145612151092394400184232882727846767721096861489357799818708131176246758682372925680023743085432585195858040177732145481597976420471627544229569733639773340937947546841022156841679744189485278015444248376199555052554732370504977007169247534039145522960844245078940874615622184907037511620860445962345069357866843293954487462429198467155792840392969666148851317000600280929625324788329659587821376914890076030336291492259477239727744633690790948493438962186088528997546919581413210953904578865039514267027502674834308488341477935622610409286508924356696295970074127866234208952742720518736226569735062673039427870159833181731322462161772564880342416512371314034756862973801887957159283010277045877029658583059606831368653061022146301466654995551906310411832692058191427356891397233818671524862293056166766059772650179534949854332673645190265715732904066455779899454159363029893082333196750122742635759092341756863238200800495314244089456845772475050952122015818391031237777577891095916266115073091714979520170435854771681476689975768510623425472401502006221883077996284438462397802507621272486160761131719138382929304991482314992404833164211514091478177362975868827160924273242760563652820492599424025409554094214165761572296304186447242356076486601421850112390254750417455482915338344016539594136205587124449007080897513415956450783563026527370701687151186888182028195944820259268938493860986584245322863127723389957490037719627200201838917090343816061841987630839599820989368014339812365047177480204043901323589713896839247823552467876021170641779167107623998226502214827302778188473040951679340524582803883886340508495760653339766882174882740772815009709130709284615666414944811239226743199059152973741836893200299984176644977097997825564339033770144488646037708801254144160163573533629406579056997925152391808512569287586864278919300521253084401122286508383113474933681172872604102086461261623579889071020982838852070953439438117280238078882120178455406642745778587311348561131437525420657031692735878497565077741247758669251756717246025699759003943830229636427613444778275675680326427179709882904759509305634760803734507733530787658425236404163910618542054735597549087609827815804852648550858922003547208517890320824379074237471402175861165089200850325969123192388909733546287565959730784380742173661375216786046170640438565452282862300474796237788814659239377102962749598332828983046174042558126881708393280195367863938596919361923334938645293957693962620388247007332852507127071949156470072277747247674816368448445454333146890865955459828214712420389624270897430107232948871498041429654040802176798131295735119028242293854340446121512374653187057386011936564219625838958469983738092688566071569560136720421064935825604057736040173092384408054135000546265547749457533978177019396289407690070688619684223897892462762805846377056836199145369429159319022122492853415625601680546765229416694755526096208457067784152410186784864534063539743295831682640290757940828952376324050777967781833327317140396565807374284040298990185285093976044626898242375088208569830212573068353505508702896675592053357159666388443192303529001772692264199867352687415856856300257570032764140254443751318759202935327702679530540399879980405544939145756274525348437851009542833261344845783511543050787425699249585706551004313748771405784948886933194846142160085589453994335090947756442110610061399080628838363354586719800674181588948487725868480753209177192213279633891569568809413554143674614170305609098156188299252924760266429064974896657178267107075805995797754505819674862688444998618448840918308199216379429203956946189078350847912482281627816669136136898726880363020370336630119761088933264440419424731663004190936620155529607083913577129325174530940562120513155395957715664631541500948700691055341611602198461811683275718187146895045986306856572588756188603538315164285538688741897614558513082448486510114707182486316934042747019233414460276212781042931143106113152538789216879262106030040996419944487846110443757144159602082511491277400345573061276778222442256954496692909625082756596876835697141873468495516389440965188669846121814719301253440450287716575442762758729446002842761245222226985909338062053920398940105470523021112244548423355799796088339587731860713468769447819578341790208662126588525487051950584890583749568423679597343586620279387063972666669373322772644900103124076912858289062747654224401036980242295004794258846224603473949134679356494343888257412008541625754429211327537940586438961909200103832816890567504398552750896030864473285545376514932663785659540100703537851615830811803293462646045439966254122658996776405055182279067576210795508356183937878393302137136814432981370158744096496548631054972283162137413072746891704281609816390185532878738340814248513045416727964513700781608587599356230292050141981492911408664380541541665641248313255406359275492540460931628550653758665236359493191599154178354616757604693746378401245562211538176698750592421885164275247676128072658552532328955326088425193521451883848997378714453877918693554119079280294344422574730288480263045287205190910248323240661208589692959582861286777040345724812493646055095574579881228485601022011106914772972975775138391878681794371460906235299520354339236831760435470634282183937526207531368567824904386136135665670730288013699365360446273856412299955760093061727134346383986390230891780544439472818517394415159215217237821296180463879643776943799000225574643843199049128743654001019782587706179799900962125645386182754754819447060672363558043354180403966872898752326076028162485562294127205419124146743596354778830925801408797434659293485451342352102023442820509506406184182043872199422389196329675315376487376374046916277901376026396725074407163471897907183279834851668349967497368200251734864105221645681987027337751128188447637747826205885562629147168950057018292129519965234818763722305519775776266751919564876574639325098420348548030974565662144606928877744554564757474488022988701768398403347121828541655104512184111416497912705779356377897478412387698173694766543970743278874950809705083912562995311441787374461378530352039689190505744407733746061152751775504316496799135329021508978340887111223639304636280053520342744233036889752272670039064062344929122435082658262189667097864955133608116172802503777019591525991596640101309217781965435615408859198133565172099508356862225757332595058591475827607406848644034676205772846557519463864555428266169835167442512567236651178850585039034017686989115483939606333401724397725376788628823261397083058790023963788641704109588684251794847874250454859347542313901383703172994949771398846561272912895177882789986506633475568981003271177277522687534173202415786981889798834701801483746810863586707033651908056918277481930074434120859510381216887613678685202065318667805748789039063619124870417340665584911831382448270579426572914766073875972620975582128577842650338617124211189276243507847302223705273855076372180422507295056210558308933179478513344265415829244625344445864829213986552273784897805124970792638943051477752543648354235634174964486744329608741710276907996804835868102499767204602729287039619130444933647667286514587085635037567659873847666447293754806293296340791925956022297296421771924337210152611011242640361822005239265565118900393183951512440870591881666311371926432349282027282710316688860954075947965996205823019599573443938017217289639164441614819446001852218862688146097763644964710184348174411711871580522811395515858297692085402137593378343603279478277168123640673995935859580452471024577216303418701362651164329767930557468376709606253599664182346832282061435507474941074696255683863510375450385023405001532533047037948724088168100936850200152367740967849854262530935345354825074799603072850953090095580323502067510007668978065465431062389309541063228273154245193022895422641968501410400206207522369589742045873041472542347196378484200101346418630159016052323829942314521926257487974901076734664549674465823819559679497831969721059087922796582001935495324477261625241429969567546261849567465871347669799503030438012672069705446534297108478017001788278756711432765090118787649748767264824139600938264121533752469375711088777438228723182162128165711557905508304254790279839444853564053803794066945631176973645430964053435058005143975265402152982432637202826487855698869880923948506873529542368812991451051390365628024618978262312810712962525945886011396917760331505565115306997155608176790338332193691832459172039178963361852060060322635179846528912581084538903672639325023537519702615689045186740781540803047835754213117159141047603105925529626656254676505826405953264203973281033769977966044693485161244608419031547687672196316483545898541189750100497927027236667114076898732476504979762241928714708472885284650938828926981468854076525967348471029171642434938251212058162238755316530467892693816489082571931415879836895663295544888244056916358951935169395049077527798781863917706776384867662809317108497443753072826732559539268450491716337551286028581908935389157279426268726176140944450926274458662151003379908746940733417860483524380157799277798429205485661871410588353456639451506667412965569032120834365476865331352807373039041448408682697467727067262841954581696157496368292674224995233284918158711581498188474799945704029930081121746799129207229392413387146438243338811876508286044829155757252874621642397711587164916803158613473012090425284626589720741279002510456239001916760629393485900201003934497987702320023518868460339292291916479894726340003186785568466527288838901358856931984590330822100690129140084927372408127323334326326091271475384646361064581072255676308748621531527525106667930863899418268173507212043141364151619369847458375250173732588379658797553233806043863486869001939247051397984295392759805588735175370729620969722457567838773010946718133987414719565075471613537444360682821160369745432526413826874362166117667899421036614121187472572891325371998805769252715613686481253295366038198621102816890203175987140643414230575137459350274818926539581426952928662295616691055996213939757521695218940000930704764309797290876348086785579496760163971069036832452689357995354832162549270564530801829666547128992738573143327469839290240190672357690652072592023132083772911661790178379858928072661813557105784674502214798525095136898817561946476561047745405133713933794719517091544454791406655913230077940433792139210584651691254757107006277686666653777047564861274676907905959274181526062745791618956912132759935897957958500591393608322930899045527790758322090174237118367131611007969808905634459223076776528227930752173925931401254006754834749776425118474047081964865362348140293040518240274569991894712455670879832551411488898584435990487845525068717624752897044825431145185051508125313076551905944146060004328507481502567631585047298246547001345485820048165074453502674664858768311207584505637144226684256317324730781744494590837429910498258641056099730600135211019427619130232626047655031911907588821881484571234476957434707723371996990534257379836650530590630913774085938914897142386354993009565201423083921024009661889170838198044332879085205714917260759153996381238135855501403933082088492497983122901748510381323223059087403622514533063773426504857832742614635833385178961783510654076818688280474726208263262518060063555958925521612911136196792168084823320704641978324382863034278828217796056151850606646167818541289052654807528651282738916701103740016540690215236356696261052538104810617334847338853654787669468339816752122774382869292730343053168917168972329601841133458335206142345640738542371962718992428195439661608065349084336814885626409245177793497479185032837683461886438481543140894223352242559668833820162642346131253230520253642216216144688480105946726051645153554830230102113259171069784954399784573831562704106857200175238979315908897903911458174535034994812699450740059212395043835852769170015963064234597409607171157249915050036115780191896620592396086545256924926031493907499268204992933646223700163604212049512483885539154502498511481363464917259254941539088212466729831273506495151020184609238092440060992786298169032698145332215908855023621361487930485467759237144006735957094994321082120206996491929081171169064974695010367344902344947653130079578685795406919484352705860004964816370609428031911059056319453570035095830202451220920889498902186247928467989158562846141168857941111180665954989942506399285330546949014734414132980886843602777514458716434678100630861656670765326296286342128629776768357785319637772786949944920464149056979527641004465545523805967290991564304214610035909585279242669942664899678524280021704849251894701174927428711911546403999115814034853912233670010859956109743487077811125010745457165868817446125401698072353284343249964191376015969863670820010751156214359708441565139168276751790881224058542158084737583704540502182309817772217874553052710362290958456019578337402484805692083527868194833279741265905424571271582476105388905415157780276354362513336924006281561128800515293059252383159693294398308821719408292018450660753817027894161733031500737320584838364335082743096219359024009333969387857269643972547787478468100891873422834546028923847840780553865410637493562245647952524619356846886779489077101574411837247799943769906782480810746823431574930356004662874191035516518691178543782126860588796074268006155493544465692080478334817702885890135233851029250944431820549657461659564000703520548841661410481940749683525459884822874641441760639412274235069794822096670237617431042519422655026197479185711237115720632226107367083786824755815714209087857403036304987510135530149589691564755767681430508557257832211551795520976983996282272279926261262794816608201052067693556133240886796978758176141358737612048130156566930431074265247904813928227272904212526132097926793632053423147674625413773911165602354986564573483651654569332643328950552067291523790246017353492155393879521329226806659172000736279721097695586435670754266907355715222527704179124866404325846771972436181242145535821563169834425582098217146130090775508518780203962689942923805917901642369229040196707375984304433658122485937978450422117596432427592024364674295758402388695353064540799368174001942110519027131842422659769509232664251674087926199083084614381249821962209376834753724957168418130715284177262042925650586259244912188665849622040697083325639569582010981330618261211157529650976977280610776539657417771026544385606309681490517426726716570567609807588450802117509193306468692638536358734629435619039657161152978830601289909230280221377234353950859991669192495759072340879604203644011770989036206500220792159013332623790480459162074011350865592170577447762069298134357698111320713868202781413711448009631889351121459443575892076747071948662508120143204285512503598351487902478316732440411892532678535286242270524529860424611923087738221365302555643499913491705836363844106730431320751408986894278759852766611176382941880646046372701247230900499985771325371155056489424860513021968403121647203156838713765173138191563076674638294026355054526507853485813907728489193209828550663524530185241019417558334188925846825718824500199215467329658198579387435122437527032760060600520241780530924751867682405173911264596395866852960573609630008744428303408232751486083677779213405870535328642799035537768862460667000784609799494815965519699433424617554697780012856878191659094162985121619097111383453802517618065019500349669598381774406807463247610471269671004273392796133552184705523446625573465631856278588406744525887783139796824782544967736217742909400012712464988044274966744863168598571524357500636450424676560316829776163942049886708026354485718118464554215595434991665816012991579616801267462604960772620026238052075819774860823226739058869745500393401035705569142565062969029047824115257076967769508154696600323348775016646381722085954539218309828864581882984471487543194228874936299969087738025281497098748204736292579414571216595953501259430066612644021239094022129744107377832976783910416931172214942657408330361542620368541692107493393859882839471853944044857602551393230342127713473898850760246270019211254326133376211685202206315369043648019590785903714663461935153195438535015097876814238699316755169690786745068774916716672008951394346111548947456984794480883310295714808932047004493005078470310844133028754846498397976295700663592610617270715331969546821837092723021304680970182663306218439143452833923499880905412078177555298485451234128575582101627652621794758281559725747276219927149100259203012029454359570837363752868018080956592158676510994219518846987808252919864619637261166026531618240718148929025167083650483267615689872480270486002938352842122132786174247238582870574730950246884833004794643602174078290825824379280779952918440027965852158080614520868801237603824591674757366880283577273317690192334382295557494616579851402287081132404791815322758215195343865687496408350278348805513117571492314386536084271476543367311028659161299066949590000695534870699566760665694381241664121237063324427962565747168480790672776014766530270388589534119859679550912822101338939351246305619795232139896526791943951979165523318034398911288449889476288649762051838107058649521050149565317966583324030145283093745547966312536566602663094266594292745222697031756619282770236135208332291007932183738116038920107339375550500497337923617715726747023161237923391405378395209153110380418170956047721140361025000763882227382907246488919243044656122308821111883957221799325510011894444909357283476920471180477099217710639554912126111030738705281526395058713387157672828327408316946028695160030626610322120226491193039826477578205030473915353541324056062046813975034106612606321778837795555222969366743008191149011772061646661154211907048833591855525492621185624551388358524814407867628272974957174247913224488345377463827986291036259193160539720926377784320127771123971085170578306246681789465811940374506888573988370426631238757675864380031380323249761895689205776388109813003070280750657841170815907390719005327320184016592776442471364628025062653073560679177913568170269244209362358391583348948802646433026438104639620495135503509923422492513219182396171813925758430294463903423069474703030297970604830601584471134517914024908255488415879363646451635811531698422804351092895415110635601171965848933305387130916425515384364197278603415728795555934655380243925606859721036023055413973082444435498802997138051040563673866128940906896286677430859447151210067728538824511531006479535285236942775633824844054332603376048215533882686400091382334554198955081303924731305391709571646001902022377664957858731249841199432105921342009898438291815936166487334251435071016750625512627760999400058543766715529827619371994281175758673123406997499462448984838585275740061025288373458897495884858363295637792610822553949030349466202318225419610197788527079004882518302436270672890329675652268436845819258054087570465957015943404730415965811569706734623187960734276392872055904308011370476250203950350031473955212610389242744187083035892924027463252547727842508049339770520130806608080085360438775597854550404868013814119610621883337793323808242217529771283703306517782597338325941568620867305320755852528322318465505859305822386340062767879298393592436290201970190344714516949281796998750122423945644201929284994190203312287910039514289341868876238782945935010145720290669920423496532826667067417305059335313615545363803644173239437581601655588216055282878022134185823775252012081000696433978876420203667211318452506874334454317513210795935912827869151009027783298264404688775156576476591310483149696017210436904525439093192722029964876028566255241159167857275350141803018025353392127527857665068586118887538638972748182920944939549585972738968858543831224773074055647843858581391832212192353350596699801864658722970285427901639774511473986544518135785593966196804135689868314324101272274767726561867390991450683425002379298666334251833808864914288087058411090720312233405454745857441759637315232312557724930536395201834836905087492806052906405916540185102018324872773511138025446370482827919527271464956269516213510838574081153339778031220439399218080314772644192776365649007736652284845063316163013321070991444329982063469320123311003288786307253959891415656765137801032028413727300963980926210361335469948109165179757649727746921583576239969354695510986516536262432691106418150443993905890391737345408347386471033380167175196235881681628856090195582920916715446385167397441918741867104515822436221655340404701317256630142222811883791326637768987282500498137941761438045898257689843547968335488797997110194106062129346886690914342556088286640682886320747896095057442430431682721960518807255272359763255733920286848803848828007239478416249753654452088516580876861312894313310254181119741727535263760792669926849343947924628475617824811177080263005389086701964477306799044434871742976536680368012304300623403321923644060992929427961853452581026577133364088581703241209272982985297369994958220001669776526997285659769042585649958553474884948008514538433484265923281419038572704767540467979414922760235642493376300513164402256750103591411616554148202266908712075960289859300974323600535844314217552134558791515843865368454670894646099906632440012077384746590754636450997442217990444978561143951584597456927574964237228120992725389888900386486377012257641589555167816197490358247610754805112250152026342318905999722117028227929136860125412616528561231606872969480471937475647425997169424985585346248830175565920196074109314934195226577963008042949661956280790169353632612041005919035450279449704569334676322584904931414511225406941926764960173496008657788262981550808284144514451747041609740976970546044816071804847217192753698193048903909535691689645763608383777352635426726364613471869398515646662217808842171989124244441322076252683475331613796745964251936461948232926944526176828635852204720799839882687415074913421750459723658234955904626232904573391840624970341252580181439624778895676003173105267017080109859967451996204072813031701334652450759241370322366269624487693972471902644472867163899620304883870135980226143920372099855289037263603902121523640675348135204283291717541838918369156213426311007621361725405829374687158639351440253456573455760767427563870871905877459676865546327129592982953143978883200188550632466632373981324365618182171822391469781306970716250419697286470058200171497685278020633463818328087509390785672294265993187166551563885711217415856403468109227079374586592239698652643897960261414835904780025772424532626783531607793197297602869162885848103545492304701169907603628615222856173197431842402846308284871254172690533061724846139833923844381896436263361617507013522388928633030995149218487780364644079667579723333926161510164341415364870222275572576620597076651708246163489400438252687861373883937885059781949956681301575485705591437037577402323880007595740586539549075560011235051397765166583963817070697805752806651670196005847689030886940231585969439361126859462017637512490725318566458367788835485938822252078857921386583305542769059738851371218354205510638248234024362164282384938460101392237681160361576559220448250865300746204078341485238438227844606640322930477750793048093181144652029974729913039315224515285969127878185654655956711666819531134566151133210200064937132320005079667795628211764790479482971690453613218205121261442106531754097590567462268931435072438688327017537777232064675343611363420733372254582188967373248995399495049830053092721671739289350311986485988432416926652358402292429524708966362289948235774668524688799895633764404572154538756192627219971383634910426768275836740285739285561917506718830643247740807590164972853361401050834724294965386693796821847444554184550009338438194886253607481304623092773500890251404690771271966034360402846081064616249297059078394127274428592800264824062150163681520996842574499387376013738115991689434402579282888500038967120018066200622057064456683385500522833731517021222336902552415404104875484936049258740724182219803097912826331329598071458021474100040859145185932651012299832364136047962813252630541983301609007889622153117486442175828951986066543932152078604795416977342336985383096675658379151404848693752995005210987401221027256716875592228101040867083550622722539776048877616672161639867307648060711740853700479859423350794353592002294702471507500154649571975973653021285258313304318624499008031817924198384118740118938064428024261188998977378780073697838979720328623457087780781682383937764016604837193198838218923137033842349770442304077638612422854975560010511750581828754947208484344559337049261446323374439471297001011516916130516871609304624264158827148855747754245067903205415901806432816427418996095741663165637395750969004403667676303736824944785777763688575296081397023043684239962400636424907894462039698195542438118635093248794571883336106896981027861369839300484143289316548468798092147158760453070051350266614901651587830641135353697404444068067102344415441141474032429661688648237937996731175028768266243954110541160105690390013264383898967425162596791115606000667533027171384773461666635388899654740075930840606758609475331808077063034372698821826179676395771294549268690804966482033235423318899746223534220824572399600707137161263582915271491270989862382791431621979159778863983512278331379837829366085628658274231704154806314888590477514090107903593742036404136363595262694701909750607372262000822358898182490303784808145971462662068867219055606403026560344651767797322513136645547465251834154101926366358198171789940386000925561971197282025395348420328462582229005255100053268569397676827980714882223168011115114067253205477771658445939780370665277331408576910637111192922015703917740121766441913623903000439845622776583374945016267348003257372682777887457861791534967923330135607390691559756780297363914717694798060099598706637343220027269687023585373635060097762427659121226162290891910833651267692498018498158785329190490155175865537225864289339109034869165017593972235251586545955756293247440955681994735645554466776268380581234424590174563970072114554222928606747716563382900427275118993524175203115269591248306256321348599292186353970178853268295119059152169030504829870077896875685804472049526488494613144328211068582465277993549647700063478011093356055965919596310485105111682821473035061643320587150049005847984402531313872583876742733170103974828775978201499839469079902792101946922164417135053688700446936414218635259677701903159038205649699790325453532642773827552774953731580189374925154066406646974000559873866972100901478756667678212268500051734556505018022944346740020903541031396534415461665682554685706894492563047833935373358355972552650897355228975384211684395814118987207144011171829258052569603402965670578746146617877422454708114974073959301090958174799884686996892462057051345782095228264553031426634322039537510629836469893340680129148749854416518330683293987059001490343011256711005086455036895944239521022058412340943263291103141966708815480185233371459043047210376786793167967917236013486986469995100079090652706984880172868997303816821166113507455959301685873802234890445839009659421506250335439956329962270238433882443416605466712582774649287734926082851128796409798001342547679108612234187748278979352194667797114994831356274566766788722336819667340708574417865033686633199933613576666387925815266549195268105759724817907041126909053807487813323677839431196047349691955567014176810577499504309100951701330597720118763298796987175534271966321795453946126424573521633551410327383269057123963109611195468953491578222280338755647126593485205922289947988480501776428484888647349011694975417552776345123581017994299301530063070031003982463499032710527605262397510494006773551153644403880043277929035822780410898789549667503930793379654440624314208567573680530244828322467962237636853670842732593621906745891899376005075286119676699749743877211465264310379744636114006375102708449010596461977029859207851305906134997909706449652518568428934208117935779647053583001231453681324575017969774183129564265048245580225371674659085608619898227474965723361582099258629636491439176925944572166041078582938703980483073457196014868170205630018839802754443234606809800201884813849028893654894845594068041272657922966151219944366530355306912369296759700932505215113113230983184128692641648594094336139093514804393133622517383713265685656267754148689357405296747551669918264300656036232314539186431243190888664121735211248164701264769852019427501577829739297993822665995805813731555327497931183972890283996092940337832892479535131710076885708044472687171387206002642309624546304608876734379467390090339128104939285129849217402498229208713005851493398841211559675448003444999687817118231642941097756674755730224877703316914162440237314179894720923545075075069234845880090969078996978881594829158103479318142697369908116481092564540624871735511648201471146265283819160987111105738033285171120451589251559655469353070879822482273918699363741851088278073847572069938728107792689335844724796905158459838048695334663622547055905216691228033057469858206179120097143219779327683239743527624787809510275869480052921296387149190218318598990001506582826078637071600100534962398668401911353718541423795615374665042245306221070316950310863959344836688787611801235764033783313670483927282551165334388274866063397072229075811646759205873364842627348984511214607688835944810846647477039294953885984442536116560646829876224600898519804913077182264191618226037803260794662945214055666013220685448306894672832821160506372407285867664262764478290324875748459876291531660291573962079345663027056969724432674446442090737033936762575921165402021387768775757418312415524467818625814944375511993374647217095983216237008221821077067394958579649248173506382616160240022564222143034131562134928079110865315105901174008614193018021301615262034632563917396425712098422582075829878971840543969946858237129779479308660765539345765317244294157765456372137617164836057455083355807240620366408226692124802764145630281239113420209105665528760281893051257397792838231055622296264816247131970546134957462410568556093241819556985538662611184702487758974522205426491212797994350011785007204346894593424832959591722444505786977827756429721956483782060054832834861755417884064064291012545987007503867865112580406168217456737841432282102506784317639111141828307139977636831984249894358072202851394014725559813109318129296105206976462448654519586399032693370630985229232165150923928454133780756379629837952039905163369535899346517634774666409697260864985781212255882143817316402754197227906653864952134346339450190547063746535954245061938167010427293133051295285173281844677058309665383141507829808056918918744025558784451998381618648439368757724440842850166047495907806571504064396809822633969867749064063199939729018424258720510457514522862805371755022078325118549861401547281533519507252618222198952853777383393744285995400232094753823798746495582606285620820330609298403525957474070402671913512837897029351468352278430563802148107570262356191675468828094960466690531090926450539851825125313028546765006990975414811343237022506550778034662450108663520859116741078819150403627801507084381344940499335786113755887377529025176007135850176234772411266998601590800865099580492884339165560771339124125379399764320905257447928667356743066472047443201147320850329061255618258957922841343681624037358521445366543078084095360525437094059988641596476539355151732482244428414481020680833015448801345483721381725365579262604132532544863756793047104126596971397703098818654097823464917121004322194835539308014567968073251977905082609667803634878224274112449209506584743189445287510331688462427412916139846808234421646712941771352647929737622235960871851255113706416477005717782504640337729998765395160680347093079006464710221186354808499439314913167193584129130276484378450039955333378354507091612466173012274239127547699708420993514246140018918780541223113001829451979535616241590149246461284858406459711546706542388202575372004295639156682470030001215639273647601411592140895643967199883417055664311026954285264815977352071049207275137547195665623140954617332379395885472062789427333556835243837844885328090337773526253324121857448337673854115576570675546049499688504781481300308823397464929517036858696889233477129495401028525414413174907233729692836310179595937141783728829079259810966331033759006020327222914306883716594050369927947717550517428665693434095150279548205334135682653484006243883205370482984897016825872418147066964462900955170296981739017296774904121420844475400027286980085560471991266600725787388073025993796910055838109050518959199801576216677039065318848304228532548867122760402317877815321429800226160138632401285452924907757391713520880301272718383618394468369763328537935392557788138934720228510107801190460966966867592535926451779590714694977058642644328329314892770177551933323583571442698094586526859929813433588391103081117353866342417272666471736535695328974267328027575610975098436458718506579366588591261825830723702122235372004724436531912549387302225175894436204569915664117769965981369784581116429241874137315486135525114788641035182300113872561193512787292939567210497603014241542797039890181678154987552341100048147725485781281734768904765643968409749849534198006506961855264876595715122943503288080516409116669401053070442005963422878437751472689540519877759238940487268546099441273150212987508095073028451408826452410956139506861983376145179273609967487364388552620742797302971721922036888691759606379285507567621069014522424158818948215491499224786922615560097902892017753918767631877578314158411841407596626894241455758488882854325813559524982900999731206910706583495319620355568515939951405004799338245783154286234767092527150078839538630943784398278955898980963893223977773670760491049881718446724338196942675794779503055796381296383178992366511596487513946856874614760087781103254668110237125552596074376460160298439746883125377651698430617484056438504563692793555734326804431563267573018149956998809022633110241309202691013327260614492391202519824354754734012621023355869587373413430981936128525060977908582645284469994264201431775539652672291967918386116547239979496731924463855334906463929349735081374699998857216046996327165900400611354030642478704449774382900041940448491853786888082108031945467354224573708385602302449064278957487154588697692468870365156482290973516036768357288632387827124585311374008003718428754102549538751551549048625750941394237686872073519563290818666396849905180485019497547277969919273633256874904985017682320937255901526980242414997237679423078333569683691033460574760951851434109048693077242072794381917695014266646947576796214244467829761098587900136003733756023167078754023989892776399885018694801539392685113307483828585631725374033630660093897711129237292786442542102502125511944569659885965674535535960235384518277279991077945358436298797828677179807865474295459287729426917420073548096240855954722572679131437382182945351601317545186961479067987838277755325547896480790685547936040218964548768256925638330073212180492924787188105007398826048140062855112362989580836742549830174803612705386097479670033448932480595523132552881578444748157563762853944334819351580445516255278229206011444068182388173227821433009383837750664996211212952426907576311426756556837375838819988751281285424975138512863803718713557507463898502140841027899771246646825924752796270395351338381475628151072588328780897760519446378685636858066130181768281401211705119807905469216508620413181424772631752152790902180849297291493847301457390807454531053914260524082202947692061812708704784251423528447539925193469559198333230016910001575581219312820787647591428536548877335459817024494331352741104182310561007854400656508655353795865095679455522188398547202430175324544615477888798624356307712317671246172777228552596270248103192633224198924269016014921065803236314478948018116636700991922139259803289960430271891049644798538859165230587970536695046826131982740448900500245232212544136880057700655212246418500458413161795105032740975004776227018941614030502096129810508105761649830079542347721676288388887495903512863671339541460358080753665601627937741118752743641659773897912159998119427235333611604833082574608061730990222700731729131313835404145500887390957738985369840908488938365382496833606177147497413327430174927867634359736308261157315006223909383512517360030342162304230522092569134682381480128525152551689843533967612331290073050294566026977278219451886318628565562793308310211924969805832181388276085501969571228002061961725926571385521919262805981522260151009441160283708220399443010265432253651788613723942055652422172199795419725883750442220562916870630127474100767906640250506104816827581335510457604816682689674761439898488738372277368450247962562274425743510569359674566246633329091569638025173248917698925578513059560792578912626337019478716269081706722935920144474686292870426966148638518681854320867378380266582276679892266864451015393927333566893602190794198938483040493335718396392219815645415518565212348674182243224358251141209020798516175282228540504749717933664600598999745273457799450873422721869074421196657894247185109568748764633508656881968866631327791356627541898086901586475273203035495518358178289008725061946291352032756527037329226106625228579723893559743816574643725609089613928584375059759217569774562712541592544616087935221607485232460274218246446134978676188094404933227001134055305378686724705138396345748495046210128602066882708986473121914001273259193332121550534275859110239097989822007928750223927209174099507076493186429486459709858592406744144572878259365482368072229741919850673259641572116240135827472440173285887156834000164792909328820886938746462355069918452833632042220708638065281312058386325487556464847376121717071474570438326702787094813486414431966127717494442276783277380719388107821065914509700941906768163652367229621844686370134657624154080481487411993246633918904211132641999824429224227888226175034652671059380400601073353483413638611990107112407532127531788524942145729568423196643784119169634810848809900336893601191751829696869878058914700805041306560875083389455314010115503833358748222622476439525058598984028389162186464778755293430924633061585564419907343356605526295595558915350760126878627255528552476920771523306838619507186051256190911895927080257043720420654823262991251529560996174585065413063238994855610227233011447379214342934995238455375626458144754401772345399465151144165312455671809371209202582729284858343465522304995374740388810539636672384231510141459935151152420163269971873189770076253864179964590444703033445265278134955055547776565760130594833706748355625630785282492523600952280007069491000805761366119758280801891938549883463472801119480835425329132761178122794880341575070132888084083080795948001989172948338114741183623233430784344807257056256696024781880016617419926124746233895296514858444543313681394535746077219332762123444493966720951741426205493129563603274108122192647954532326592549102696152859994645231898406623068950345542134618509408938843156457364831991931752686602872038311353797009153316519330825181872591464264244163228287789346294727209612178966529011476157711681364799011484155183464276478326124227596303655383082040551793738395141417134279749062579802969793969741567527332535631333799642634569068191032544255829361100283912027512073962649487327510102804376950243464623174053517920267063979455214526058476783638240182508688009946149305435454607351952406140601181695927648689890997829761162190934751034284144912062106338952502919454445574238940912596583564401714094383523976906603079171632917925202772613426705697886442558042784484068823327996427220652509309800785856863324176581513967018408941605957314968476826943660747481817478443405566417539169466766910873341606891279893898018963722683874736919136085023891063491373082785954732770927278873832514262774519733654536472234717048201412446177912050404957130707690876174330614730159899535652091903910495596279349141690345866712502963160616801759363515409887271921077709151083482007687168320117120402072461311288726151314126463963366460279223041549124519585073228051159700911894310244921167915514930063520084354329321034077283186883570221267755168922824554285000066357615336436172857553221468839698041455945960885303867421506280945246963728138768836645958122588065873876801565926851914800240291634337932417996538957004487630704701384103909164863818116756177297321757742549863264646518396311190487570035207169981938381260101616446462120118931391339595711731488491347935433693957183499348819553936223396873331782630053923393160836055823254273256142662101606841719749400657851379588717217522317417925469741238421903504282357109111940628455826147281117995143626474590373119294468142505989049351392732431344113551746098024875222706405875522757072799753381479460265703715008236807227112578420358317752303830036457761224294148485427939971559492423746492453656698143026046939539714580521961143628016756818805528987618829584448392659440913600071088446224896860733696183188734840974001976268953541312470960481985895671795238833221727772042664106375502919849234462966023536833767443913159206151692111006229506156504196302152995056059621297944540611913758729358840538781302492559715788356296204484661010302379510078887373502863097260084226240642688619101633624038433005089722472503789204418562365051453429274084696426614382975383666944637878740702937975942701991573158611420930111425344962147209676067613257422860535345906751942667942812423398821702629412657561218032249160799526464938328167699037465874123482758964344220565669605113204226980477085869474526350822678714862101886002236709840700746021379115624856837447186972275214953612444016157035934411709363485691324880348660528389708799183187806502304490329403773894021752428174238886124576836718909451125220068407807375734956035799884498976329039462413380951100295910149477740841714986935169774395913498203691362402039624675233731794691622569461604446237186632958846832963839637037498805780697022518901662456688908266890527571207892929227482970383798307827757204383603513402293230752759604851025149132585937918952559937303073960170014906500993446866570740985699059203549090035958001119322369805662114413500334601333310840509943764256738665388771935654509504129007127360621218980049115638793542198519184903272551078143169511052110487601855090408605311177467544830764339822511311701230204107215631674006634275366429182170148319507372374536433455565514373050972565268189088008900873621245659709904655162556077914802145685240279587382274325088571785177153113015254748542451857582319307190298442534545401078292466696637225754391895278208731604368893451239296967480493074506525824772753680167144890047109361237365453658380228034079870294052993341250929172176737515250357968437080766277493725070969038645816667360271042459158067921124588941796137411820268458489608747190045772365855382838230427966595762090690886853806931871546796406540331929389975894205696877656031242798173670222680447109757499005532753064994481298366647867525303390680280284828868187789436338687659233938402329089867887289702846184548393833858924567403130181145963793162827095016644463650476248859320817756600941034363810800424337593930169414010797184007046477487551864954549025380067122033588066501441063845338394483279761013765982581997248811185503053517668562118715946482933305698092023635353707728982742536938987233491137056627011313744755917641726436537965458892932370709793761004757328090736440516991068263632308489733507293494254842814642563758799851359092801247174384757742139259186797983584672637859747397965129611114149851582146984640825169830271884919797164373478243220562318284198990517710902853217047104791519654205863226299019331632270930660230584735063075072949632475321489046154698008376477556100282284385074245670936736762263519067971126800670031715105514728616135462102208371844532053521698188211065349619636781631216449089315107929250407673983643970693593550897134469141832308450843206539502179524190325983277261093809674604049450075434842698035494910836874142308877366952179041739350050321465340229068519267858169488285104877564205473828309456949858593206835429646050475784861162319511564887703370337858221148240865899492765301425618458002703107502649970395520747741869356686780165644966188475575690148314507377822035164649462760658265035704879875152106203592399020707917181156423382062790626846878951645503968801824453106253311030673853453466000687405110405216375780250406177265907035927168157516603601241074866537202106426321354792999416687911887207802248145091003411528026048751248078124385392277945676027143971811731137257784667074487630819915485671564444497817804546915163848286253089205757543782238892927781547422517808011458224103549453661475164738947476225966296768740212452308785091836749592812896282767854162912793548559606036635965923166225895261438873880927261535460716753771047964809705431467264327262704838763229943063051912412286050844776340875926584346900035238642216407088147921858078150750047633569797954568316169052212281047113140504304104356862656325417806187538806322801104163666169507543684510040612234915601121988389078736083160371090619916273735405264056169485314080481775865763384021421917709383699315655878685227802751201089283514168381220757771850932664169198858174802537582999522265905174211119452606532754432387073431957158689525043840684729339511147943433311009364911560988375594359467543079246505458458251591671849255165015564574843937753661080023637421678598577997826892751570158177443126940670104143838551684642316354539650437603760162661405888339447419623455403436318381282798201379945570196409032997539725483055314659816723922048197025365583632391069386703454266152761005848992070755527868349140425619747438812897930887171810536873048608819641994061070521655924603344114117899596287078319158742193182358990340475150365280382154536547573368431841826050590443446539294894781754891484629883251223406246977051389398958979394134544400470738164776845995173787494222354849566519072226776520311310467399234978655646398606382221465572979308508266531022294447332268798917241966653697991680300931546118822400779047224401349651742611297270813900447909102240241070904674887302799602253384433221625510222864474777978775586159287335715976990604471467140090146733318148174662195867452883079833647068369078474206021315200477907093432587304682210670874414509912455598111016302184761585692530095782318516059350638524480388838604000547655659711611916684115396028513663415769569021114856581433202794683003460930497357787236414024726570440318493934772965080553064405695276503044584197696232526848315917172796700108251702213537183084908340116216755500680151287622650006306816876409595609072187448673265464175600941674213690289987020765861074483531665117936711760662737267077037887735482158123821445181071909750453254516951297780468082090951103466851585039611517398631870669637237335968895937507541759276119604976487592090512436478490854929560982043017633748253452206797525832889262069447346766061448227844476823072060647401361991991598496134408261198751535557675948516630787340129746313905930241168676158521695668056479487895138685124603604671809649308158481025178976368724012951961714091747147648969742091277613380318787766592258832982225948325828736902138020930940028905165563422280707524898677916126113050045480049405996759031276834230983999354723710919689687253926917451038637333103887461830467404868896496594904272917112540969797961076068314534551890008442121135837989375004346722619964323859061887963139710440214392398505095874168164347767776017185325117434077782241147716414249645323027511879933056118715101160951909806769451757248513688728794894340197523628489478127949352370895138840729011460139907142891418725355251804650168876157308494041735890232527620225392060836475777658628397954406228211317227098993384492598648289830334379589074581956730452752313977385450134563431041488783611404150751172451070588364812517447832841317684217416097224379851462491597133281078402117278279641117247960237226992733861112680525803601926347807745288079462207982932627986709291406013052060674071885466698721521920288161727866639388387809229414532867511347909360113027718593012976318225995089408305461436485434889141628911499708425369499968580036888821810575701047671874495316221295711815637649254796560110801961226554843086412235546729226422767959423452702054597977355516428694804012339568047096054601744718617961272654803045344800148409244092365835593756582618058270667693150678293001228696219199475110901660856120745524460319660049599652727127564456358146144458395412084670796867303779872370675387161141716369767208059869048536534094676360992602394132581581948967575588155530717234247447474581627030606710354795798668055980497813148322846117827087239749484119765462972968937542698503818745901501873652706159192526267871360663561592451519092451781265569797032179771216880619902853585948155317461168098829223377919572318862333926928978658528751274699449426903374170299632701260338547366132552679394199627649960924017938578538955503408097503609205195447601992677675542077596590554832820963852849039583704799467707657084953915473265402625356377483414904031836084115447784189407772144982551049822237849453690191128048950355480367314571769134694870017278306954515276452436986312072199869609710139236455411028056107915525184281959915611659090447052265814480142693867235353645187750205510327220382001062523189146833295791019155324418060462215818212506347713803093133633864155770528023867616013022927398134381055723762206417196178423284530914350570765597243044996092566770473972966392598998569241112767954695553637036843962206993472528743611054840664917600559522746872940138728791835864927032592243083318008443302024961215200826562486732329900034476913746495498907066092286160665695382729213426816516408107596007638671364316869179181154745774142267655820419695963688931090200478963765870115535096364468637599635466489025643219349081427066704211948064540320240524456030277582134958934216485856394517214863946530274439936634836459591070353798633069082438853942468898791142743142390200542486405467400184515648074915520082168460146763266227792379463343248128384856495107645995308136588576521762122890808466966180344047061483621491571583332697637608918735752416924412152519315859195487969368466624605917749126193171198669612352852419028673592073830173125953301575707281787225493147247742517936511992053727893859984992615630180627330215108388848712784535302828591158788398188133832802697461737073497774661546305950405163522563757102351256802081300595578147434965155105852890144502592971112125189247180342192181841204445071924750575353905211046766256876165583419972032193373761553878055920364347248529814754176449305720778574085373796807731236811964022050913758726100657497893423872265946893025260124716602270465678893723323934182231250729897961152392921534096019913676546213171678987034911226185311895735022345625713266758578509377409809736041320186993951422910244060554540844757867100473915707035670904356827664548697160403935031905078023252731547760967564883943449792625434489191323048350982034592124283437388713512832730764629653310668601696852925521154988119231547299856025042724430328463833132326631051345467242714284350215884152389036474844720998209957365996686735880145570537826517418544732759493496019936747267358525541136717209758657080606802699921480637927941407830932167244946049598630796247232414339396774771845843091737519699449220311229316836903827549367336996480498920427395964566484599180857144960142859526125961885906996948853500209139229948055364933860089742470879011108369207363355810445166013190913605276169227553324395542025392051523822334436374144019730055863129398282691277333630168869018909945311818732488214876065302975230453280721720609206478219321829611683522973684189480519489230493806380897739944376436179789609844738556846461958654920004489185579287474010571561508799713326981543788595866540121099824035271981873776059506877483831516373074493535469693224803458871411086937921976627562127952052033163274240529772851137592959159777557255320665670421779892472001765373504629317427646258243386360232405600754334274126572016092888514443265127023645737289772212209789725081138993704419676134975587765448683308083962986780141835162679980696524215031035041728171430267333907082875747335508217795085046152572600356914263049810052203308028710222449655443321474216346404034478228805201641198587041594655617662648221560227160527281659717548485911897259131022986009516908875401539614050161561365631864267428721266357605015380912186349449859138874505430430774945542571919136451011828775852301360552933756077060910523570662972459354225600323818613548927156936402325795620920408558953677323263555774657047371722446922855666358293250833971775637798877823912439568278718308742988641797183177564913014361513727859097409823651795058355181775227308818868549891742474643287608172494575096995240853534421632396419996541688613372490126417783760026333424217790726556765673600085739289697493286329703321083609512773081501210001388220394842561049653122051751080582828927989922578195759908044055204735976725371728887333081179835687480065045380933001737535686279943855309900116558362687111433845412836547045277982047161075290079603332110659263367597116259359203231721456067409301666128290433015024534103798652841318038282932946374391256735078133479375132594879903210390605836088464692190145948028996471563436060583207026459606234579082882015647525977940849081070739013975160611373498447753867386437535091816834640851419127281067153552742178653955362262178664338263926874588940429251189778877175648523450484039435522178401038683864002486566123276505991196969344875982337345266771374968080260356546957361648202952931331726964143993127266994261877087873430863572620751170712566453854926976121190580542371283023869911405724320944557336434212868872302023191502989072355839593931715375515369125627052778366526666403850529031291556185215404643530588477237899193778501358095447662544971772972358220425927194304915789286205225030790485338255232821800425759138660716154325125044102782524426088930621902036606606120187934291710764214661589797773685743389123311888080810081406247400856285219895656941504445267783391707937569359338904099905874736527845971710769791441905478850578962641835338681846260623043882379966478855271291683349827303857668251036031388805482094079430004767536782945442319530309386960944521025345470082108579544440583004307630665523498552521301706333106943696598951003034404176487682594846334384314370901241140131185134553838499193714292078718315132259677009798913381521651749037349218358560379163147582411010595971031428813392698432608175194818334837496438114924422330259592783684960793101437035450782665208237856322915233100386152290685029836301234849321494349552434823454730079301951628547856375045333120096133395372565391547166426313147851089122086306413412304894214611182155502081236928050517799929198612373761906962691456609517215308559942733346002878166623441729282679699150223219121954844780519047498217895569436382808771476616061986780750717663328177631603398579610352231939965965737216226474272959068616319468562837789643752451934931184449342389879554286070618902005071839131615211363637686537860106233122881977023355206129095969310825309518133886897984958723558427309104858694333575425640684117633527559333094490876639931384452361660640019749304276958240122785981263428498562079485980639176818402831826563895103138572000219154273398565613636244989130588840137277740192941074529011604658138901932670601349461470055591845516347891658422935544480417556363737389437842007985578447359242606422219174179285266898179721444057165135350215310769727521997586559733613613575648497329743007962535317875467648165032398189755276257744097556192242497065795252319731250355179172329010109404957744724990098639672509595887332573055285657515447218581351568219637103908150120573358960294379565990775988987678656943622073496533241733927783707044970059966998895703808452155526478282919015056195755519668243915022670012852907063466277813173386510714993958808983076657774060864145239479535335736435037264714892314671014800176584338502979274515976812363943601996384903585914759832614824113868755068819916804784295648055192358213066488011694548123239581650368765629177002940504050914712740857142852734863328394877857274947557600130331447953703292268634872039226091680488261457342398870799801221080384290306942092228371876165720714303717244068174629645955187237178379128686819376641651452229370190048543920967872692420981735578211850118218809713990965721529129805486551570469971700974337996720469095588071178974349899229784470769986606847267300323358413491648064310531823045357131004330984361702866710246993648297723482343570169336486178397347727051693498490508167787121545115634645699262190316320104656637545187232075501384378631970440894717099588447164332560273354390604221135179539734368164731979736559677094537356713159398796740463977166261475231728002361210885729107524230387032922539355393806372108387294597182813514785634654241206180478318964703661499483835234777115762274833472111030259386727172717554849520872623972242148857458403646246802735816828847782395717134549495203545576561180186202118067219727702935028062068746891307849394045456327101048927642298193380305581414042248787133930137584404092570036060211898421910291156748623569264118150316342474585284617856506732504650019552354836833100228658148400703471501946113509399521529380168670404119571903263569217639113736134635809743800040806083646930731389315901804718947357617338770183593241543132863209930062965348348430707435138677621140079117671644186158790016339973144576910926962249361127564856407529764868528955377357733661936461284203828995167002361394506669457968838254905604855614634050713209316391727328604965841804314476870384888582124160258109840094983626600996349337859226029091065099620426202962263203115620872834959999555305792824183093108437956810750017897652855919159689018302586877200866595696988596584622132720528427044661907083970841433479440776869382478384756344056165673645066117123557872472773411106899957045199904781291451905624252787268245128494203447925723891394839081050845795741862866406231666861910300895476728644502128025843240329685422601142315637098447400127550255934380322666207266952902752103405542466867049314888322201300667802657077748829340198572459385238625381924082390589708005486979724636231993663982099808300578216612736723918402576659930637635809560107447546130111888627782641067648860509842512551379039997869898670179825222343226555174274130250358358586192356532108064170702268855794422552744279044991855490609400008158435205243482121898085597889786483944663853284202749319134447467330256813569940684276660892211324204286639012271533193214410093497911503795433547608278333713959552658302164272396555477719357501480972560213125893358307880772378987808586819850457038839665777050459326328147921586808335133987870042841821722857184705889783788754461619888295637492978028895518896509883648678190232606499150291689393545910468432028421921233661506220893499886485567358657457084741368425028712206012998730804151477826732962185732150160350475393397896798358470735401268870969908169108307640903998120201888510080634810848949736877337525437349569486511058890065809053254053266022832728326555423923211897040258399255619069955523060521749045171039729933394248569021518052803537508331864502038430893631809354642106110236506118290102945904213516244375251922595551005956369976192745608753237135891390060827601421972550496537581734087412634604576968330910931635748001226123305145759406397262304942711543513790811297045275192408124876665243466852253613589752135284167816176364518405593846389421818630849982105694547337511489951435093094141181157823647957613573720570728285288250524326250549217155507636913762176821607141648544321183256167417519726368373588356465314846670704463865412952584127275230717686238820080165026642238421143960038931911467433022996800461455596285027042557781984136599675128729349027288626833536767189121549178079136108138029314241578488205203828542075291743892913275924335563768214419062226880465784712021571967040178753500529887722067857342465205647897390301172685945011394178597367529755714275317259321858822271873221009660210271400079901300974769501083190874816296791038621103427906716990781774729561691941060547417437011075306394332514672617905290712198843079479988658357749894615013743320219057814494923892233827543020996002853448418085949454675365571953066109663550347091779861570108905826395640270408009845125424958636857217624869845933192299243361165552828865916319560234861919809215757869371100572907180839353295291093886216693125081916761968524809200075836682269617063324995392544154275588861699989905746622206554551895231122610392869343979030674235124448435112471183217573154477290265766437574247403228363446026495367446722103055784631933204271022028130243219877988271232535694594370845709278475921115736439047669238879422747419297647326050918415627859707269335398055289965425637640951596120440795747385758719408086486360605857526375333895867384999204342848641781999334019609073788232907858459795639462414463560704234631654474405996465776935731047274826971203220432699011637120035825726386188382668913006773820625883225781560820531955172522032571169709917967843901759716220243353094022202876979738237987942449627899460321043514337371071663965673925046070794882056994531916696265400370294689069022118040400948923164035777657351545208232298719255295771048794828166901888855486304183548236648766419781675742329350664626867505562482452727858280734811414798186196772107609461741959177805025952735737436344211818772922226431234940817784545528609747359773001268734302174319636664502209205313359803102374451219486472265440361782905194351307628687538302958985332278618181790459582973679166398914363203616355137786545178102136960445785459655220526495806436347204433240494670572097590777592505849614095090556622734469934013721958502350772647468852555526072022024116234582647962572053756660529033404976707235257044702805496867557597764944260336495405656587202179480542643627503891209005661884772619918093235318892888158762434429176382358945679793866963880687586606802016587889229681283085035035216056538239732308400874020859043261723348219921534934264308036331967334396179980184377163619059588369403955598592267965383830587602696304399555099948415473755732920998086271159631386728248307704950661165458735116445790358018640595970330350980086440818542055477946353253223441442729975375760919389793168805488831090743720534020388450037087559794805926167365013828823357665861758015016298218512465940149459412928961848126407116778973666373747624226131906702173494833940557317250208137046122429738835648962129864181699934920437993351779506589166469642672237215954515226085794682139059437677297891743426382689602833925622241279992458972717428662963340731083654397161041874687339735591716080511432898655753291810278705193054871834326976496949410143244572077655407913978424427997678029879174183557762901739820757085377879652351618831009988315435948418818873357033433712962431308638727306377081602045595699474377778678350576037088288838311657818299546306999526907416057018835950369970002384475852644855781689863849107774558897292258825870672677724645556943985660418472755946973024111982905830070190353718496104327651246372435378302808906907563763895173287384496345340995009423547450730418297397235628374240878594843455854377104682986749896593264514363398586510938559276200988385334302565298434936039687231627914846909440019918581422505407617815246958748429069105101205672550737981305635338281526104682962380741794469451118259915026672205183201783957313356359410651931609131924650375247823446746837627744920393004794964878679952398983161668322432229620800637662443545908031093427205407730363667566327632084046788942011106333191454229700506745853336625405934247898696544080331522016406986973199622537875272389544854133131839773225851596067005926640850866073361722082916956745227064688485353695960071663405715802088105006543944546432987615718699557210751311830087245419705884377200396469391135896430790783017927746900897679981631885757291154932605256393035540388456555464624773732685932047508788967357367854308969807662546892921356168800448313750035010830137319995484480549517288383658175182128037984531421132907002216094169800773359313752870611052751768667651809422745893185135134441197248763512610608407217549941378528810152579032681185122317551571052688079828871962004268143978712420728443845967729647867780823444274113658373309925237153232130335855071846984286481764121440219987023963756892012289764294173029810030665606432481615021065011204972095159770194941846290629093572217198241755678468309304746738255524635888137982223318583179939802089456449268423000112302519826939770653506236537619318112730837556368989429018267875252307319914321064833520547491517312396114243977199665017100809897927016920865855986990453788936262196230750748804807307266631087784336713891256462397547853476763313049635923129166392642595065873608378592923781308500116425793285672282262100894920927301374159118871076994939064330861036413228951273249224670080880124730973284864804129837420337551330435102147145899617102633151491983718656304461708440780284599038870691943838775657183740090063119372759569046262233417578444355538143532680488918286141959895572924298706930117701613863318923459410969483864066555968113402811144049452854700210106253425854437417723448686779673347632569419391761244766334380248959570272647594058298738951971464120859879938353173024408609518718354911970882730704630227311286982401772457144708632174184521175156366228744810151932557257376154943085779734304837047600557875359841149044748557000754518450566147791219344096890920791092433715270509281193715411678020759120296410699031818096600096576210681536590501780291713017909023672715733864454988024867856020193364779718824986453770269872866283727431277543625719646307224857405255172890588728571774438948751030097134363642942482660601776546615915619488875364441674809503484665957371968945430592146784468048562225646173436226044989828170736721426024001632407763475332634633446820260902837939472056627410106056023827219033431436756445784634439612898164244081954271099674240065656027094830763350325817714117728418398560181928407895786414114081856314857319894374889282971895566965816196989607289985528031801242478623671354544629866520329590553882390207670039634529394201291626383658080479348853278170952202562269176078581952570915214210915880842628278332984888777567309313114888429341136648106922559816905422890267929027039163890944810725382838538959191682424047075014698822129863180339148667885586765033539566982798809678468480023124115180257393724905861245814146153393363376416888246567142171795101754362598929147557500707378004338266703673466216525916308381648699193392396990465090174432170009919392345089971037859735884367033859865940262350135177215197748550842772639140887506390243718674474245505279253985125334886856690825523616023794300200283995953919995858546358622546625230251991617278149384725437311053332724876140022750076261433926961670731458436884841853347115279233027944408776353219261302428853324091407561214141896083709618062719108154613369207892497194159599331955571585125843928686056229974010661676022190549193796876520986104514719539960988338997296043071099370471221438402135098054941645248665441040860063520186030758237581049514986390888826055751059611089849418815484468908383420547919979653840822428338385031073657163825039153130900345889201275505752525696573330691944112371121935762890056620872935261822361177634064208325031513663473877270765019974258995968728631218540458349506745348146342853376873679695780841251415286930970272497322395876702612950360180703887381080775935883881569333672692986056856029640454952024505407439815818722575215497650637818482875009812939410997112984447528296112451930121917389903145386484623041746198605391487797879224770253661608234237525980622134864890368323760026577281360131557383854619402708097384010801567786452524172261995357789240987861893947077171143229809764860250162325871538972569337318681653797664001831831590534397181008418815333140461305035267111772861849343618408162000607125849901915600457937038816669903599726618796692194411564247380655540938528590142993259571337901803667510276339316188865014404228242530935775025320684904153990150316865025242637049857005124383826438310399466675161879680014398009754809302361952170705174649103843785128111300732930803890056854312972159016337533477695179384648778843135738032609919569952365439493705698393806436194008242057818044757186450752710246303585417180500720661590978791196834118749179537900454903832262138389435732048280831078802473075633762525905477370183588326076873386250993922119140059239279015588263694769617316881385319569790242320359308337228598666031857377000805682677590362560538053889699512912301198648010705336023871163529799500862504828843866411393890920641180544991156068799387940549551473833454062025255695693228937050347618809225104849184740304645077548285372570891563682167440294542474985529841334386069521331852186341272272447207750992219629424872866849235231267901421373438183119784483603023573726964154942148103366480473007922822539073153302463475969607647661304391882456510865923630924123621903530922428167686186646553565950064060447896339796547641205986022117090670623159650660932629481939890173363044792477235042730465775766600120703082602978986776836617868842073777569843403854781781536212217882780869766321828158439761316520046831214895988088047734160371011307063659110013057950097674714498484135380509495468139199427603165596111718273486302327089336216602886684938429601339374119407224677246220524940366577288212770155620882385408990603615183342462778876151281097147537136481865736222781946039715639482876196292106856218677641335320996741532687146626728752958679993382265058590454095861615460491512719108621446075781146875969869995151747792904910865968602204776614207493307008411802941858840695965580914414818709503514259837505328810507573753323095089201604452313216908946187313903161908145132490484614059648446391354205031831599712952577721638927384917386314681415598391377980145150558022305149726512700576322548510436743872649208986879471382968761311077234943192656512422378853414419016050183505483134011667551508331735034430247036094425720111132468713506049174867406480003721163395938826386642224887486895810411378099013519181461839721210877933513675068143095757400675631504100726175449103572805708035179023574161329062800039334994580923520386560932814655117521511169231096399201475125075585834999749582413397141317681086365072365465288634387777656441500578507909126449017057418367446320465822672152043578536203382124950521136941384578087188886985241273848434805086024032712609876927539246677260506420454953356756964773632376690776390303376546218780052088700545690429867913825440241614496967812607220780999589884914020658177405405505694809497248375020709452925656201666887325384304793269366074011198297624854281555630439401438971934694623546983288719624328680868226866930817787944341247685574261367016529397468302676918568406894869125599481160855681357887312815906491794049744292039585053216617021047334301278181842326482152236513009219441636900605831655462258133639633666182275181948136973574211181275566748789744167248030924922150486797411259931953935266396416687198069226119766384383416268620134548834597352083619320169424537321961864414547542588885687894870896599183859954408769246235213615485999437999229035397611277349744829342548097718533760134012790432590522726140391884242261876211584731661303785562765070509555221221584780514441962443389863389764846752274819028222844503034630169686486975274634691960673838863600364697472769890202091037584387756778336677262359503636828734276774083789988438030742312626530785047559216354391000930589075132539698147954367116355943341206314575105558187714829405315453055359286323474007009606490136000761000257759327841230272023967984202555475541299258030849180817784709922414525476483358623083099768704778431736515750897229341164937867994491797298925810457623035558805642466213819939240066956688878646321849703605190282219074999144181495110493554714395113273636654680176772534648917952126975884162912990544632917974943892029755089936763214624601793533565939693502474495678057387417497112810405418145885137047821832424609968543604490803195040223034869012889804402739376720467154837393236480042712024664426056456272341259037109913534180201385730226601686150954104008623462343244944783130974730115409660875419538732557365162563449672605469600185009205793719115337537236353315307262393102227000488931535302489208596355547876613496599652879962618437200084964067550426768120493717947233338222487770638026549782651038008212326923290130441904788161380587832390571518591303381105984608111598865944266389046679531074536327128110171825838609087401748784808846862984168522992067983239808416927286282052835149322921294206602252818171780951460940463107368080266411705764557862829611217389656401968005758482091386268819798279575126953511604288846368860676191750206813003730953390232957017964959671104748006161986368762781860030865568246682368991843065619941085944290033978408278678481538656565936209696495230379637689746044696289558583989463812549748325707095685447636360550836091936996766726359916069450113636088118651682405652763246660960319833101790477439173373768086418578561196639723474644227868262366071259679887848953322096761740679266842415391059263974515761294813052931577569757135396397458088161200382042429237974691397399929157153454460508004416215541064654077472553726237380283871958967064479332526638732074071248643776690087749132945314520351740760865766301234673060636172619147429867335261039105039489989782137251331437656113001539900314279142121544530585246689420438523264909180205622146067526630306882634153612216277616968141383887695822197363566611525614923062817986901221144433805417012439777735642379237301960674768164557322621864011137341080451847388930628630258532452762578074461693991721087516164654698880536181278995089373522438653425974023571534342412812823994193285161390856765228178187923022408266828523984293375647124772328176384139194605151987496249853877662852147049007227227246644078165761554031883930096420892303499454418281591218481754333851435762268676488434936094625195339355811147631724390148757324981058797417278695397653541332778063534608914861899932339476083491428304363795405694593852705107973895696287828347882283828188847523067413429462763655584775066878354207443383959239068180177649218366929877954163290407532267714522500794648593556516303282603498433263613872241758610760113415202058215177815430728994688498629720454662225614866642794659661068650641354604363356496004446727132859906357968691697887312567959792708172579218363157386407633574387383545030976667075753876488399409713950549347233499050037488883142274699995980633384060338751255944009685325656361359247948103140039482437068158359286040788473635064386439484525002268869926001267891447391273338227099467451211623978318117789356410693661490694221107034906011190136104307276261397733779663403605818150039171763380521612679024863498221462884384946433900015749083216994279934264376649368920384082173396331473274484756804968265969766809854288796993795635468281952625973141354722635486368312794283494709045835321079032525632046480268370033973676105453480796853490188182241530517343936106354981639665777280455546876657984872695025632419514085480646994369983103247620939430537730930922500757334785542480940562630947316066541630968297140563313197819950025422167985087876073690545057180635960748656921066790966858958683262846596781808826951600065176207794758948381914145508898997655315098432918041569421034243483223731983871194425869667683073054256646712810690430027954209636386712455071205188232174258823515016246093821360686399996184871567529514790205445562589362373885136249761687526172624690597093905624439543110636828202901719347653023182858795440177749352070332530467576273514372880707929827610385663760840063848832178703235968321003671301318424611752836371860301702793650925646784161360422931840619188082374004308760795519654412984285390018050869711581276327143291148443094226226130442034624751506143800546119505623583173323094038710538741768927202247510476040982333455975767137366582213874087188149078470481229307014621879653637668666073138773272823877809164343974633970794550512341311523415356434431538013478277305746048958517599475537372237846738869372942647309533939749409477482909652587895769178825481888721519414153134139511867630442262421731356378229696602885455781882428521161843106662824294385622129447523297191129574458058191634855969792938908378310698389497078105844392855636507812882226392598657149786660071891106938123108000179300475609015695435618536397149687597373840670343451819155014824201849195866247606946160598125183431048492370327721870406080371819566876005301897618728387311672676384370192806153023595924413317839624250039858359579887010807346906828703670251082645255639145081808753170453630340319155617425816160679797478129005240540122534955317511844765962072588122049305961326612910683207584482063509262422113628624896924094262711520199895252253166027458453085572983033630540068449809648081061875337682513164164673231096593644705759901778117543636516992899482656680157935099887075875418298666576006919051401236789048383051257923321159206229578511967008654968953988503069069576475961634247668859187084344325489753203554473820418658841372905357429537682653560861085855964673248674477132582849983947882516532297924965425728381935704542777048563727230400733527843959145102054775659602872233917100090625872722384379287947912972378467788188636774293200191744875698231882723038248769692358471771865398802101642547362041786157803788139483721484338167709189022041807545353973708926448471565549835006384756865201578410986697482802566658330675903425100031142270745139462407205299103000645406859683280300486695216808266073030320614782506345153859580536052639358452191354964767771070826413455837362242942940064483176822023266236952125667581763914330363522025895627164578820342124944060736476748146429982624033126050857850832216979005495101030487865942272357865868064523517537748693609082031313917970507888980119071630867569704042031179664249830015588247909759962898985545666652489144683749751067164091775110489460412119808555072907094351021860401318629383213607310188439242561430850508245529044964518027083315715471023193688992535755206258991626918730879542528724370604090601885763960420699417776180715295726979636959663982927678495428458850392433095800195968655065721795887817966556058769278589494284202988599425980396086122871883198325803224801256134361698079879097020282786975889641915721999868763944918514112346778410936918950621967603761620931563208700621402088941861571198429251941041641680835904861236202073850653864574165949176293262942456163074008092630079865600293236244936097959050297212749338046476964042215012716982252022377134571444472402341459972149600902386205496321940987406522887234550760609279407222323621973181754509231019042644485700297094575024141257160019278401951287239680983968053691263267391939064989811000885331720732599861950297936144741912545935798971511445627693509430162696999279588290181331928155517015760625186311701491240320163294551063722403539399984792019728003625207320535195780342860170272416673997284722521389550390616461470307124371454234529126279156511354291556169076580767385614972709732818770090711698841001017818412692955863983781713152914046630880448874457979195573087352970141792021189667302693846414403784247248278080708769562038734773040037731234150633407321913558871649917651162295577238338528390403718463904269610741521954370121547781490655542577321640749740368895515091143645469727929585554267480534286271104253537780552902795594429466282539509222414322840055059154586127553472245275426736939658454169751750700755494524451318806112506439756970290011161951183757247660240096092295945867256862138312821643595543246607437239830056394871086013826467111211760110774583557470453321298825538522713084657097138619000875034589969293325977332881012645597613930921198834845594215327972694703396883178060189068873892158474222295215709830218736802684278436341415500906283264687928175881120163282531721093336697005635667491151669021198400263771552120846317487883699038600299612835466690143894979510039716499562443298766303578836122733059161992407511427316331091852120945733791566792851253032593767901157787681368514468539708466217540744598106145127417787374469048624066016350678816185326629084256252026805447318525915647245955097167514296506338522639943649742827881321726444847843639637606385628343467955504707625916652775022277484058679386712072197412460039959242213780452878387992166903794263140514302572533073257763818909555207863346933278814907241476689659953305185564105663744825618784989526052578077307770303331851861591560640005895655068564018010344103224499367549718925721828652167188928583616661458580628338388618460177895302865554183617440488462060773947845038371552113771092820123378000928105665951805422419627983533127752022527406836338410257779865275962615951017294355189287617444375427403290141748731063436558964850007891033393150117834283702232846708118995868799443714778072441256279711574070549755930084794770438859927011725784012870983697210469713861499142173279049386446825577085478408811489077549449680393256857603629971137012986882728225917497129545537814550993216309589892219754521246161392792535759061453770057555623885816126857892864904636153527606714597611214520761508325132938493281475284843647355121350194280796447582190389626029596278401219857199229897349702480079483949270253998607796161839715452943828552053126145795148344434683545356569377240275220123165039145623331840187044659286616349586015422819889617090418150310398957964109645752548906044216491212528032743383262289801971388296063314132970050785360356831018131474198762298929935290729557736091711074064446667393153537006985445095958962436859906796931098395158063858975124675692839722700870755781608263713571014162052718702558184313911321726584079017570558794447697905581571692868596686564103897080484993857647590651552696926037300870125002691580349850501296394326434246543262707074609512685881471280130494498429158750962037272898485939649832928096867066592030719945950675550307632321156875544205355287574314917315918418472294956104425402317734520505781506338290599813398540717853739701556906115651336769258856667276252535729826990487667969021003847435900303038765226986793501031722302599429760282341618323091889086119911505641594282966279324026713455205029677037204788225261791164937717919310154080024758948247278474046279375512910609745226611846165369678578156873985444352427120006027972690344196438869141849683978517683028241287196484150799387293233878114320449789465566214968074746867864637838211188543177397315112492238912016158894191387200721237785035231785316708076052969787515891158089516717677694211569138609415608816935637399557938875945962171739858787362184838632892222870878163658409237111770212590788346388100701030157181157038595584036549126111720309285251648368438969897103122319298190645288160230230384211711555074342334580201551817377424883945081981591717575355155505319560223447556130254182040230531051787893972783267055373780370598930732829278007248125152527233822299446967048143578412317629451107902030763603785526483298507938398661659554413036872737398432167004990018741642197077911549269823457671032793588668308302565093727570496373502744005644477800449754266394978124896121620908627908034341643955466318109799130303128511683063935129992604158643125376203906157219180030008746131615019102414572941423134623412934306851585214827539264504814542809114047635259712803527720069311230171634595441078416391960892952954132053709993053889477519363930706135861618791278203577226031938742028974958198231098861604800453177050168023651192292597252265249415577169401116110435958249019996836788545707911614915306564972708703655021825830197916543640077278893215608274972512156043001104873194762252037518382988338532960731540247779826386694479571009044420542380310955469866719072434269953695661264523404739898805915087859152269256570076796883825419123562787754629910675453850957101967143243857272065937227989256790690334715597739167545714221238646465392109344572874831851387986049160123307984620723105956687105443902562472066399517872066737129322102781976945198124590405848595637286229596775312760997329452567416261405229921196350116131881797746557369064937851490213161304800769010176196058748797220223241007505647520735330390964675163606036364274625265994184487241938600777170708457902073629426932843084199263762278023151273936035359428796380959536480367895840848113931764821585675536635918141148652615772450028144340948673201304696859062980038442738730947604917631179025005366075553798254206128858534835504473594096243782587119236922589954921816557014020439663499051110329580379470031753550854820166892879258893468606697682406121414694619281929884906636531383653944249379331562353198549204793210559876400152741506621981927005147546147737326623330635996997693643406493426477400128014738047820252561111945239276307960813212645246420680605863106322722915226703049455410593537754865023541705590233521818547043512971228223847790268204410188289402026261522257588302673323926838722645622832561469548114199420434418175270808854253885401114449765797626631393404573657619936020037826552792916635879386014601721143854983261458113726045888410594017856981403808339498419312204640277106391800428241928181898199629186473168907927538618449244596379059247194486694015138629424743801215990872062883724386954975356410354283637680838582155150546250105546032244361412540373464060259612866330010037801300962311352318446138505354192706377016277593014388698986974766891471717659900390063416199924172125111617835398662238585401111615833584016690190263877202120893201575140206727311755101047269627523559137675159058862837842749245349697437735526225700696180920809804832169391906054603210522768126437064334368493387859654835656229329911316037173024033312319435345526290501423132124905165422406031537514646516277136768365245890215147990499656595183005051417745928211611934997720801697190788426174515351295390943943743844916340055831188679997002124780884650777662087118177112076237548226635739045072318398585959292891197554128477645121392705441849786229816388062858088133802425633103140160192316323927584838341077805303653484451648472543257209580980591970169999214904942281037149345014126021369260792623587912934097545409060937955344576595449039810057560128308056511043451923465661666279039946923466149266049941622668151436763927973379090822216209575045586867367163916003389628596948820012821902101039864133206208280411082410256590872996813407410795026503215157111277572632402364520114065948617811942125909165410582918283679629006236303959356207445221758107290910717756774740696072104462187097146129130515480619790918007044246071044947281592128852735341205788104451092985879534828034773246030728191368780338268294641708992748148484856516789878424716465274005827792061460285275974408482380631173701408938134179178804363374825116908216059824680740334181829826448830724692628620135995766899205850035825817008304942003705272742043229777826186586284721902398994616362581414689766986310092354357990190722347390618134989342452585154986625352597665129096978784301877851627836353925419774059852277648490989575915107733078908946865065278832070488914093302052766442053557910214439864463501654291599653937893363095438744939651688070866488495363204402659896109521985403307718819985504033962181708865929500019054653405613065935797685938457762657291638950338555584348801458340115844876208127121125541282967412590723469433026304578582109043608188773959522081482395624804562580497488746167879528435278966917535143579727692688259367504638260561824042897100446197994427005134258665823905328880308756850412323894917579982095801703991236360351953872314052470232101304838622370735369581089694691916856679379084467204271903644277566076790505019109793503833940407351976838079418501404510929432119681926402956726132199507359571587169818433686776878996478533075366293064286989872700199319423695973418580784315734579519932970035901862989371458410231151914787884903824354315441339944763352936493338062063060439807608524297634978914416270430408124773752941679033735389909431381394544256518661536485492731983297122402005214351914748527907860033145036070383166813424452100273202811308330887391762202980014088356189673384981931904584436117168889422206380643318837801694385314292930825602239803403269515357958240209994101928039477951907615996071080903032833525554032745262747453417513552878373418212182335514807552431175415589936480007164007413223485800942879981953081886226409003488736244629996151915460905325769206848183273541328435172455255697384613535535285862760553981750249368997384185201341382310500223103646665728184412285206550476454939856112032778409342502195370107850301019617695106529874630702074244333318866292208254848235244881775412469979286527103421566740602084294960435077457965946926724909281131360976217789663368183379063252060626226695853547968469449987557759780621536167987497391034715729948582432037428628579699009157148530063956406964338047813224460915183346284761537494543725146942563172851605288494803635747699516664591880446733552674214826063038911211554341582070397816619911954862905034627520299140666280164421706645653379699272158110858050415952987331537986940314344442733171815570231683592622781982085063599633681957370586823104239016667231796094972911629181440681712582456965837029501533050739861835160600472662728188225983475076990627376759047450017230933400555059966775180770655539629413209879825656337557877344427822043561952085542390928872119330819950510131422492403576759468078537772004829342673701047476355458399458879577301435436691880416809052902498043422169676359483587624574038224407749113659749327275109703627145560624079190968912888488935319079660998564724018200365542037852465680434142048294913199756318179413773095509626479871366451844435190874157458680603612801515681464116513820427241114933939852920467201236690655598780609945018403199306266445712998418610739635448125602196211200590663772758691312850168972945386524262320347682710936363331118474845004506866730714828661999222421170195840876324929527214090765399821741641755639783057089348661132184300579338702471868062420729971020172185833962099037767336861283167550276964458658902624204812458942710042989879572333290172971875196322703898133907309351611440865105893872712034335734934387539602040601491185370721029944268177615341957118535874400885311851256868913983728200786783575382169713179232706325178901674878047666152518672852980101117879216267165998057460660215717522541528132816640955444696198097360141350221052743780862069137551516066169948646213972031223240923515535394130503422305104199844904055221170232649121038811355214802742123858457276680087739895305011341334330841397397071885486303873366756710577785924160166556753194322300065084388088954487010576953035887388438172721534045998760582336759688837331704491462803479974264819409417809593984232587855005683775430000355300057222324651548435318862104323117905502167973302152018704409153854358761947663656280170611394694206764545900243919536162998238450255828119966051162165132122428693569619860030523002622184254126637686798407468280270632018446989592214152325487293237189132462123379691051476572089468592558614510187307158667825106219007043952263553172793081672486071949375951777651484049388462480437622280179932662184980778277047697222342378674147524872070949440134960882550158258864581443692395013838951258023008613532805472758525466292739288808640206908967265931600500175313725599166873824613626595012437192379002716107822373705522831336461344018395473673258260657398837538254407365178321745741172221407210748327894990452358797219545985505923653173973420797392320167366150892012457641213041200026098519141672808387803621275228196152589550261281740193688981784185519311666534127061180608874178662655889141599050278131547470791291335312537867975816194898167875784524805687836972677174514263817282923005870893683170775017540433694515163182092514016055464572570436242182199974340709078008079942674000436555984251669389812775184157736166870159125795779768131543657897875868578377794434499181765604216368476568389223143515328188039798912314891309946355259640598536604813578608616191313252785264630463423889665714031649011687975168322165299706822960010173573651896699454683338390221245151458932751484920758168495039410753983121184557845188091200028692808683339075330100156336983518506673162022820120151353287951792734374199263741343671032056542929620887050409805885769684574001596091585945369325317260969330085342070008515688190989999030076143382935702955577886750717438748508062300510212098310709551608754741757113929397679595876405970890994014630463640079977999178006668812860945428730991933547787803412656007337820450299268827747661137127497077956060931374628027938424303432184913457690579664732241492431496852882339289769332477597961127441450140091355083729724701813294764235262821988048143533948167770415704265100270624172545729506046250904826345143196400640211714955865853280386464550449487247180416558063114954994987788329735842373226102677620144571311879716711866405323035098666466091945408218955646983940887023439439180519141773007884641478534567217806189118297880736149182837470509958439942758903242512135725333858730723259207486061811093055328121514642751131244758670385620641606162250446012487727964042336293227209518401802957346879937720941728788983446026616660328963787232104576231970579290975934725466031555773136940786977854295741782448961331379423216142846615104271472230990690519787363190062077664265368393222617854500668128794585143447190492279396800966706735077952263122658926538973280634675872107384039705765871934552706755485501154023813462854058996097445246575961743576744154734111181245240091873121242234537081502225342952014972586173219523789762556409807609124709350950713333963385769653853774283723649392318597952110572486046406117305331782915025224218953306766597539236659048234849119816089542032333115661965322323216551420580582781706396757438117755348174639132825572395935695380950259914850559104856182946971672858561012711820349061196932827769133780240649822578881636459555595090398317947303415145231312407301361116139308953161051712743058448772012178660558926508064168623258632749695484100766077116767991666910353129934245318144987430568021309545970746091601974326656600012201748837101516671830210268010190924276481522706999951164539347856236126239086685486962191308743632923822105822414021939113421441344323590291271200006425401471503637621757749039322045882547625196005884674285753692038563868713893887350575418593922003498874084946538107969125104717938739878666563584113954478552067868307320515554825550043466880417289693758022510543082193262877100536414267341626086410640397096586547476679173691704517077624767156451038408128520205619797383552847604309941033697548097270496811967604218081406748249984396554903154036079016242306390740716937165817947387125693678186063569090372223656010669866789629516177901971472167563654696455658359551730728488015687052998623271889887648244829607484925724520365257842108418041741810416945174200911549572450246255960680416454042227570601727556816601779046871907281455243219934827198655549923940951967779465745561549958257210780764673212791543762361264467802289248515977051936679145371624864045837935660960531659259856474915040294966250160562843304219906503048613803306739361410154362452177148443297686842633900872523925384291032698528578890002387975435988498790266319327127364452796448283562370378928254398395152025971476833041551987631233469498162595604313021139506647479783882937923485882967020945715908600502549080089755789322227138750719444190897753762025752844187168704881328443085413395909769107586710196497799602001064874302404461449860177176640560208204604924691582636206547810418102114243773337213459744072838959204092323200113983007467101907279063302482151655720132722459116487197735636155022044377393833455191784303768476200249357652251270031191831296073318911631150874916715143942118825195129560767296388597876071275862213047004722055765687902193522686187973365052582825616176632033150094858367347190783823362686380791537728180246190752730678199071418633845151445610837323402983660976145023697168839617446473204193604056215417132052961834344376794054384008879099476135923393145549429691068401556673649351562895966669930721050747278504597428148402473800940105747329053352214769326095950282182927709852531373290103672056181764356724824185275415555686240805892847878840845077477388488269060145453407492350283528572887251028501630649315720352477859347707167065534658229973369138155766765541024661374589181419687687268694104571603423553350263243507209539092806613470630860235474960580765348946938479874397174008396517959688263620245841952798484239029264750409825003480315221289784794892302600758375571371669391897437753875104521411119870776686292533148244702954537778501013035371208679262847472937139182395684448367453274154187314847159090693798259601284571971320610708552057062282766448448458357163649267464168317314244956604334436639139803014032077123490493051680806177112879518545399379054703763477096483161149438671349594723423646573509435736366824657656223590170264754186700875869309113053777221713636198053574391479311227955910256749411089090913186294078739541855256939913103050550481420876031484768318466686193569926091940580337570104639250083715397703990522376391696989866702632554002157929052081350517558735942580925568355123926735642673604571043813238915065227632302638660996740481458423725980212302240063144650681086102605340158021874979179692276785479931975851509140794219533144401760883797781755460693756715462781791366992649059301340438039804137639992870037883136130229381823792792467528914601184124973610284954076578314291346319726748426780011273064772891633720488322330089462162016409564400867128073223926420669975721397243136732173091431059301975032468523971077656605998385864398680001625511921951418366374197191262069806019606892654291833689893967647241116180873589245257718525996839403272287914897738445174907786867037870353404286312576994998749262388607126285952574191087971747671042173304375198734192493680241274070249417561368351033022051719106324757608783958027451362825387184114979636480751886343980487622547417226460503048241251913659355076571053274248708884696272673558403786863343009510864759606487096752136849088128964006669946376168198721845503461784910173895740129082282510855289721233356296970075990632648369523185426444113787323411016364452412383695681496774387549595194101938960180729623757296300706363028544869792322241868662018381783300330764985504989806038094213273045135138287482012852457645619716638733523764276951941733896958625678531832498062828634882127806241300415774286319779140707690321006122210391617605221588884381839476843253207306931811774984764890566116769668217157539577351198616655476887566064225041468552110370312897042611372314908253542384259982071920794332052650342305771879579748118090813194350858005311648214188081062775463085589754013032207822910091828796660363177929101956472901002029686818828401612506080064737965177945774999495526766140023385048924142547967727678224964003994482001315920656560921573527942749970856066954923222384381370665228923384687010713775146415944106041800164426565103092422025378547129785731481505126244260772643318893379255028873788469289953881329171696082702224433728190882706941947933991449713858771552793819418762672882860969393773219032857641072905038889272095805320834715351918058862079494122510754238532819120258992178873691188745166644323480086742269258635382472259994811618969484975447485910565099176659781446434719022291276242234584995372434380250129419888172432838815644349622481743761212580782017137717759405201542270954240491357004616002206458338864731898056221080312984645776241125720945168535550017402465850625246252465488661854027586411586285405848410821505176659993771705827158398557937036275703113647630380160339466215025983038326745722786909140779303370942577901060554417476458341031140197609123886251285111058089939183081226359788780539461181386022238673824112588819907787439357910250280378124395497978581677408766851507579360720561524592104989204350384733030671877999627469286874566357576744711240750920709307378638612317302336680714139313953610461192208650247701792452312403685127546258754546871529300829478179746070886595205795960882866786849621994410277160580916297925069897343511040290477672991229246876583856355698123454441066843955542807054291444227536178172158221185352467940343177823284148154449740672379634497137766477217681835643279225943133441654195469806420400464592736837795781531017457556113426090139551988854353514029920042492266375719560773908893942546534131907024777252979058634291817102235396088082475362772775842273129242390995771903251840605814786333389805555936840211804503045750837438843073783496286641238728307063263434090102267985816086112904717515738587032678423192402642606468075819381508350816580504613175663095603767678617697790530256895984118758659429874198916805522610749571685839342490096899461055671832568304676992947611464650376681092668903242866358841990637744393443197207575696007077636513808404876653318680356917399877205955494747146741635706470606617377509118006375411996184130796058205570410420034306608876373531140524559111176725940157618783466814161781488228235399004612951228236926639802136627477258165853767843679171309262353117940469718170171628033191825253531471958918760898170653886131604962351603144948967053826740829271351903610613660324972007713373953038200756229951863782987002875857603035757042424248098015177930490213836647694654973788507448819422894144988733380509401246779112717068049003299140408608711224368133180760918299376430048393507927546153200462016309723400565356143474258462186832885518284155366248756839716100331448154773838154428346394347824063733284066329296525557240965934012187384525822805846589117760368908936161459319382847564249224053870842770217088549740560569636192952399009272553513634064894342685096033183857269835498688392447285944307157247623234991167159881623203180022400909743387485863087915008967818850624903033500767987014252758642632517870321983349949487860091858455822361205195450840155271338930152235972546758857978642799295412151063148488981735492080711587006730016889939060931834411773961153143608816643317995794024076991604051992204310900953420749939376738788652597671324451205899148902370717350802086101359353710342824913926836972250495249987552813971713677300728904059554488742678182937448763631777352393450969904602692181943883472124909393602265450598301365174352781387326797637766732052843936994700753812342091235367862662270428287243854974321793972507250339576287987347016670822022249431387964639938140709144858515531173056616124716353195690615841840444335765721731152274361417626302526501796780606035653673304093444072419353128779748567188531800600233784297724516294315307300443835292124942729756733106880896472511119837152860898648121933009433319765611184190413982766631564287420006809016862011350116878215785683171514327758408099528265711380546492004155480324454711809488187365265846668581195392707946363902099544138326158672227646087041190036891676332028299037513517301450499838143183299930794815598671257009767933121179124842579583707693669047994078404687587972655415409574797855254423983822099621726929205447683447081943749370671945329754609877567046108085461498764277620240434543026638363787755278633595579620843371029083022188930262045028440666975066794166950096017225676763502356524817472851197450770026618101838734014338853849719662127282581095103694919891612155417922828256998965409293519462346448683427301102197965321810516954579539948133589361238262904216099455771358325814305333370226430125273717913112106950721543090588247388498567252708363791399986181021722153219775635227199451134733408911631655075399313114688930226401706711379025502599334603100267976345554207587504475698599850249862510495034464126833396756359290300237052834859367717404608747306515023123360191849971550545808300904824520684847166934443545464709690427273807483359497898086586286446244796519860981854033456592417518720042661067712454059687667921167411215606845549714235750007456225081943588875147268720824977783190091527477939529700514153624551743161886418199417314483522756020493792491592526785326163856094105804325181209718765445179259888485915281795652026383136351275231463355136514456948259024227218412262185764907659861124216985475511567017332249362624007758161400371638050717253709992745790792274400424230023825094189009629634109660466974810619421168099659186718587887484050881186944920853144170175543809231914128701323623913106280519747279914291228326008910911097228697606349789252509468647791530515360048427682969303955616284237610110767750356949659549051865533384679084659253914285474541554174451382755671658974059436209582009355244582587477986672891457039327605646336955634108760309176604346585149079315279375225392245078262524925683230069688406441491427216802343226901655446745397996993971182366785738894788242088825770458385780441890397792382117540625277447832547951121038127956155325607490687303112464240741978502958295243627912400058073344822204072571137382814776457559474491125266247655592344705995872352896566303011848124217416305134654028290381941048941474343372538282971100730758959649883644711274562493222363920194976697321340474229743208614487584595257052941060369340616218982462571075550337889790711597837022626987064332327689834956368084644260861062307926450112092225048942991059989051287005397212390003561300164006781724379377742634271945342470679057235055886562811545257940155043529067646331710889158983076346574776075022220609377146382285193012582705857506714774569386973125960105216300141139757729577114440951340926220955697053179766942745900968009239879910281220426459279693587801405204488171529648001159901994028448117081611196301370682324453534927866060026421439849218509542331693281489937708886235573099050816223302155215395544170814988136966605471101911862649751214050115032729711199485659180198257719913900523781718784519769788929394263432206125599202327480475499173882337531506852314932088031119904031267237558386868550310370847646588385493006545024489161166859359210968970643321955615570634019080729950224553229642503608883845031158679281774744302532692721707183904742067883292754426666914099985064502532571016845996023685998507531126127781312135670606959052145297225630866256781669752190322725202845374706622721818273079728182669720663858390013280134705044026408215050505696457337966374529462006154278405690402834313612404052147590768352316431748059950091083663239762387841923815007861452410601455680277942490270793372402104397777713498367885873683842653580871939871334323574199714463619628899656767816361078244646692171493758630706085811603677339862976875243115878432599173082877453556932710434764887720598298479768071156563194804749150999902212338341371646532332299812472279909577200227285442070143941188010195322818733600458962239991956264146219554578995412690771404601886169784186168644585759215834761358109575024650258535952143537104019310136880557372269242606185343637226951093154082200997259108223626035530256682309608320061267175459000405678536274254141393552219726364943307175995303023416398498662692572488984808704859009684149524236269045059141855158371985733614988635162949141726754694746057104861264640459192160235996198915346465026697438198861009918107801767184925409793172728324286568038774292447797316949218184611933305047039161997372346936717697380181477147872028142842305092188463396509643720582718769071246066816609305808936880528199088977085622566458106681990787526309150999838235317480632571564337008425359548686206199298265807081092234606676325235573615519230477911456851695859089428723862161285479683714253359916876806449914394073953894574738533227919329021904355730787923872884365729129787129927400137958013088227884910928841444089419538419575717201967358811342788235067424725811612877538294345037028484975762442327041094124031088807777385013972675268098398918961203313801848244517518856771459953876654822186960757403896274231865124936131541897029805145858326743841872445075847712440163688679467599443491373748072600073150929121248245333472026493036236273710854554846777953326752769489963830776365545509389691083397288171488574244419325325012672456152444562606268778469548740130955536310788500955091014457064107508757123978031948243510644474545220324622542257798663125894555509871403065380050515334465910123286876100019347331025876786503694724784320394173334352264775484071472186382957847046865128393690639710697570497014917284177318068890096849790456904102293590630500982039409052705227195140925547341335160043510874120478149032676023374791311161389693853652087565707144834246563657903768119352775310113814501706453591329767385248123674186754678747231494164684634485750791508885040195160583009048463364687902786712983242440291929806338785393802085050746002144023760744311498869490408803969220632092581293359817000519037050600106740169877404508707725996873028047378794780819522343833100146265251190759262548167779299359289004893035349109633510546531570374270981840867861757189905441533560842278601251764689965886485843509543558702718396313328501786792861191202175948914142957065906605770839834703948491662556702935730270190191784187649087235235501397069074376370702723257259643892002348135306105279105596138015742670130840651646040730218911802687566623279976633791266181466577153459850166861057888623761994375215623369043281366571911093314884391242793040092435014966821866884392467707437767285274338429621648262166140567897999255780527436599538328198186934308173366442306430881497831635319102458331130235746882244111868189887311409231392152371721894896772284699398127983292400905748422812078174068247382320057497665641928049657496674686328670534579345522593547195721399138431952656144471559419653402376588333554591715055513136881500027740202967237091112504519458897321294716156126288436057568578083434197771588713621092637905100798715314006263526400313342497892401851338813028260118045754343841974561447129972570047936642627604367389003555090995210216897456231642850379162287895895540741627619666176803649009790739317484902727695408934975070414044493137616444149887530325528356722970577235234915087336519563563103388232091229662110366070680187099623155215762017739444073011903712468095142423724742958537488558589685681881092396332229031906336063522067280408615817600220753200080997604549044325437649852602641265602986834867711459194730704470646323958795334367909909964231429541918418036595387910929327082784136669880482733662656761359838691150672590089363012138371106011238411386516195544221867846903639221637700303953656151393412975746558464225687887830046054481060923519130855883169084346068080440340366062976255424660145893296614558504440055393465651637220059621770957024718636959505446021886096168186065622576522682568221529784981077909375165449647404413928388103766219464949956600112280917496358286475522306568742457662886317655838830384115373739814814285582612375674788305829590013126968635954168649379476987806467546737797754861772097627033452529695775075463674931980969229455573582773448471254118826053759764821394228296203027755468614998456611054665493713105375597496029643265283728918111361474762386025358719567510140914937093123074426540043085845713232735996388927326454770296412025849208179686231553832496233128687131190682554497603167994294394055585970601893125290426170685138232393167600753472046848432387579274315438879287469481575873861794634012077489076145748720379172285793199430912980756229438760258518395843261841207698678925403851368927170140536759359781042477330485431292315575156296735577796204447990243558910863309414018337441071182476698333024325672862475249726758169913033352633342466904994770910187290813786548444219019736498134249284095639407595289586558150739585189653521592474508893789832587386780512817951564337888498393155235402680975452188364471401080894724974425375626575605820742442971193712265130438733690294752431233545851159362905392622072408579518684442247311937227929311245679771166577520324971362469535489649025404314360240255891706743261516316878488585894696563908982694489396848445307302994859416646581968094392166820121599611112965470817046970946862438513739016869955795198503659169766230784018607166630541998690044122435741786723408241685059957245609840414876065977256194897969207321015455950917384428410772036310349042829875607971732192169000091576486928115679619004155669306206495388351218287784397491063143616029124381764276729918118788910319089321128436454408631770286995430689172094698141388038283894534440428177589456279747996412465914295634472838121782584214874558008567513872305734664017081610386910857039246472458456589051377155291205370211117400698237054033459325413997807664441907523844512814607365059748389028092184086842301450098330692874796783000487091827040377007959359481787414223767897728172346643443081010847386371723453594278923828817295286982042780633320221902385264611686633114507504041714766552177483304914665118994105731276148961719443314490982268509660766866265082869399986243013256662193807474060311924283073902385395360466738128503437377861491193561959323999695805583039945759834820270048574210161225315366364136944636065405159258922499507567021112383023503381944914504574658146495132528607768895323103394734773708301867384002276800753924251118962511095726483063447347995681036318740007394401459366532640532353384111421777213921770245144474455935309941045332621756252254831053514115456844482269620106021045664860770048850669608859149814175831457448357357405867950359879824366634700191287860872380860120646350901024213980977222743894522087813614097961589036232283090835974804836602152383218377909113783525153496172653998063673316857482185054503938726812843626280656806552678175527901962110200992839146668384963922380767388309073305560913677501948717249317332785676221774412332187865567267212410668888867638215253424915505370713955996997163018640053402185533603099344110319243589316455237440374294222791323649578686326927042068324969145967022475640290913929968472624024180407967931919427943957562469436469798917047449024945821607843235949912855835683115637601812556740701106239025947470385615168589281199708996033482256035320997191550429081658646478080911561199635111166748174235755911792742690885047295423674927864912478814160651454667145571011884466590861879885966409727583138232303468080933577943994642496241320976911801664735487864289109245885391629888139649457595576245184530651337577127816485707906778123579810020845446960434814517128834155908832468355062373279120937212121351836658318406560806477922340478398780137612771541858336550278789218598249549266967349371507666594965414569331739952171914870179778967014550089340435771399420193265068753621198674500346192322686801960016155533150610278828283285984981949998457768134540784653054237255623725511232026874438623371369545729639715322832733913491876487204258287288642619863370583328118300836200215296065063149023637624939203737109365974252427580107265898356144875159761845174189033943436410377815182178956751772569385674635053549253746234148567573256416060805740822834767581369538034891195494170636738782361861460300717629000762919797834865457622176482973509705776811926731782399178637329108042967282562193648002833688199075939886485777544132082762589421079814825581759043298819389161470817215762858175547695515713170013611646495459452175942115460983595222537860490590560609876072030554653078983132719115838183071765669317269580900197078313799732595903145605323604605748606138999459187424711304550547066017249104751307798856602376754637749316571437406140172180343870144568356269883402067432897743999791217101752066921406477539064537129090059313703490542943538240856192848812231273701503515273550005431335928765923867119212494960846463896515292089774381487502864410997521133090497814134591614728576441733492940732524681422295272625529177289749358951756468548138744191084639852835986940698988973983041246300656178452020430120215927627139261805704216494776315398119083842439244218529046501799434029922216499669649387977027056173877791010671949804395927811905314846200741559674739965084638210084641103488757394671637882458298480390843758942405800771522895924079117046486544905630714597283787223716928768910084506568850760696913029213545695459529965205006488742106098421059632872871105057502038221168738291226843369318053879170727685829876418141723838663215493611717625344958023101520133773990038781741806655382478028651377798939944769058077824257815396789114268267541713347500844761842700083368871020345920367989058219778028705586762379557490658740577016294473584524574686695320581800902640996890001952377338995006506522639821415166538530836114734153029460405254424587823389209660641890890364853708225693200320842239703574282836850466719825626847722877437398611401098279947672824766990992898767949547556302950701763974155613923394571093431678272511712205786730828346881141093267449264497387802054187768986498424780771445820526731195569463566455753491340726485574077823754842596357267261986829523210730313162568766537890968459497824591025232792917084497159344242158034611282676189389770534483954000961739759127486274370349762202492069713797205075712140582855384615723475137748112894339804382132647165822040531524318438051420585523777412124596486454899806473508424464458894209798028722772743386454433126916834456116265378229144872541696877443908087958735702182826215443675722117518547701324483507127341340972662418002665029340611180820425198402815473590342998791976250058421025298266456373140085925854699512896319851753234918398313337938103729962330342326438331489136078655540240795792564209553037526802119257999976571462165870326858025193210541871938319839028928526445333953042914152327405685135499380350186624815659108696623175244776909080777675003426096586647080450949239496014503171883791677659653817643873915210404986794125994715351791725631013231128540954798835543597966393880844265998065829568073616808067757170302891580047110986977772406098776483187066316496619975047988828400386789987370373509516749576498725035041249643601988031417359863328358105547189543565066536066534162666611003404430331311663645915243812133577829373507734305695236531742794620991194266619143214355145502823871172556409667728115893669553314236925068188534367354373063567561767860105594130575588066397445041305210931538653133734220513687472698790494803474639273288895876664529511425084556259948333170412984057234696143088914646418120153646747027510885238770755689264282138243176414438290608864380954621600133435976999214722967371320838614419055591577112949481066787562985314947363243571005070588674271426857524756550601968480366892941021822196522550016684666955882839790563885282111244293626419505897634087342859975696601945315649178682713725785856136137680586083726857224725139687466333241518907168926951282410938207224662861006857840086026823649602222906979386116785308916946106105250627454717526792472097649360457058396746142906029478429084241141085097889080106192385293654437537575830125896493982047452700093937151377490994841881918581096634430439079505317152663936155907304341504681106901239428587270101191291120483023310444794887198410348695576389091480620271703110656535136326277823947047195893694138760754331039742615435761039177312497304028439685517850417748906079997481012080807876170929236983447558914459715729563054498050337136586312656664463927386724886588752932752645302930149803437545287872460455687796173451850790943165764029717511804108811968050185562573876337577174229712225260813523697283812725329620909691537177224600101163933655692375600225403930702859051283600606599105097522701730648107072576467733725822408547833669441927842761744500746354221181773595032190429405786830192072871029806089587046207589151053589053947063795748299619384552734671926629600206153110815163883481371918492611810525461280796287103304027209596491046773286326650712765433813090174314073559874531277476789529124378605846198096579984177425275104721057644632758983665473789808164160078536607100084085664445894762114577127316345498121182470133418266227010073268263461018831937140508771406076978072742833891671284460952710529054037977793081072920058294042537278425211219818880583577830620547317291958764337108142528241164503299621125561935532465707079748595398187447688153095109930228007123319043964006228591074773992717589604219199980223979503700022431265498440076494872325199220273042355117934918540687072189437457136086681731213344445437324264389738345192780058302271753143797348722729028644242793423569972428498479776165601433240388617225549072261860536599526697734198135096683696859400266420983258321972799694099680151084294522900297050782036010112299886653025552331101101269242378241588359163958839701635645453940361474968704027261681643374795937450127510656501148227234356387015231483516560543551047809050937579793424436484040813307827611017743741461806605251627369006397738696294879524399866850051783312906404373433432794590283484467677409798059132062080453041466583853509185132805552759947015210877017461698819385441605234633872192936918800610034466180553136673097423505679391644716840887924659691662900342549243074585707771289345099623896256358358178965514681689556346300528157321713229928309069858794638240605284916674499654165241304824211884631256961093088303648991482803304471010993395189250901387489443457333131039395119807687356730989112309455983800486177837844202868186741626781166118056421867287525134935497159962759288210046528882125680509785449913896911022103784091642904426298455472308803983506312177684418313295486050682037487909711521575855492556080881188350760561429487607960816880776416197119993725277982443216937797653878148464586490711250354141343352296351905284568592238403913815108322606194644755376436206400505698541004056891425518344691514794342232089280560948890849231953498980579883113168770003314115659156692510261882766687686439999902423538380345602662095763199523316840994112714472333974298999439679042272180549621955494944926930531047332562443902827105281826410834912453013945385525942404754174001332086593607624050025536766103675635332755368700931013904669837572334725539084714399839649178342418090707134245310578856231665634949169465577781699270374074068835537463196013403191254110742318390726664932911645139646362499633565100620792776500908196857616544800205448265657230671475772066979629070611020683220887611501232147432640043341829017191094849715959792610152882867020345608356931171786891366680406303664137015688454538363546624325102293342750529640746655107474173141377383438955997748057941951764433824290136655815906018273081780058247096240428214746161025821952145115487110086856577398995940055000214607690275025766958911701836450784238385887985247329940036113932561670501040777930466517031635190551953669250743207624490820194878552728357127939009442748579161019133559056450716457106279498734199095561579382789699632123531515088127021035675033883166257676484179112822682563959001420036664300201771455541161715762516777973883402792418996264665252508390600104792923458532092950693775366163364371646942479978312379951460406943796686448388278779291872491133048142487151784376212280938651539235356122531356408312637276179554923368713540265085654472405379089190886069443324215082363779391033762252773547527846658277677483567942633208601234924751090654073051142264500813238744424155345149223990152307492591357961029793486075540011775965623559968557546518221889068180915648366184950020448538215259397347837249077884431020446758092618477218271385146049795708669477618957648152124759915883647243853112608997734196161555480536829378317469585569150794311183675029686997702212928115454807976993315379518330017322715156662493163864338831064993506467180832757848790409108697440103474085324109253467338804452176599696547194620296332030506637552425204647663235379068221799164395255943588705022611538208497505494000535310732919743349628725442711615640546247724557767040749307499410663587712692722237045068533481491846930444723769609543600309291622361557244966123487946414636350476565628972004504114334443786359439051889478065545229423878985212715338550079266697425659391584538968403129791731522418126118794013055434546963864848637083684874775151686339394580649854764658318227203495484083798935003146951211289983992459975322576788853898842649759651867888340151470450516081520540515862116263815858783948324863673612515789499755115654238961899369992335478670785641307528564600150870700265384394837598130383864260390357774985170539731549924397595309986909384309343895480004112611135169454177111972909581621048823029268064876501539921953299164883490269409797182900998369666807118705706955137251753724977257924946863463441581638499434127179451286041814332430455258118391067000829697921954938905140323760396206210333147243726506962860732626391967720401736897349088254659241769966938591329002036808981845778967041917497149271070418290400009698204217565344363400631607575658005689052926567086358710684502873537402777196773698192975709407353636762472264556988393601360351379084876717043525602179343433914155784541573582932888465262984193576922921824409982079876819638233804256632985259851325065081044156533940841215275935053548280778685482293469515750630250217226712023657950068116545459488286642878476898583068856293868157076393363118850325785444964934785543072712189095678783883305554250166399519408469903915550522454454934570545365238627979118522744560317290110585716919781695780869508756519559093943411817855335187141209389799296373406336869268113895511824974339961240752585787476017661286790085425770362401040361540193693214076274944437364841549602972954260801767856580410055320579828268627829104032543301944224766023194126725493935234274569068972517185653884756211751974529223196866773209009930339450561571261856716712904738124519341316677678727986248047189777207648041945297754971816588955908773340163013898711465095069554032648169523632336154956183395605946959333006282875622635776838100512651474421611024082549378505496511835720809226504100649746042520241868903160273631650979544365271051756574434112412837243495310238594037940774199101252475889612176697028743884222548858770360201335866898315459463441840520289081559618481630739521095794250226047751438490663416378565454556936185107971548398368727405623233018290214492209660985359900008000130141470482752348905295973935680245554217963477044448727645151635999613756634514833955275597595409358521779008628682921959911361892375833705177617157397151914796978174380749301988458184313288038629492375847835103173370000364296683362080033829827239719580984153641624973105960113280465934409165188622232244420804860425079421820069724364247152068164465227379550777230804257856141556500739908220270152838140386278160384947091625804114808304067203174039247636450605434656240658965583690507233444360718101598880425221347053422989354932057837340939345235704613728481167912965632162934094141711356208357014957500987926494142631481512137236862713780011788678263422204218057227321689152885154941577318484278112881442130589228665305970705463742036092438617579123197316714470877400051780625673922396513932844390109286226475900307133192363546456193466336546069046021598130261703301060590488742006195784385958688876581213752499659413218892565902159564451452853979561595549028071894211439516046044577702206170132350570161823470686817562271617408716055735907985783722401931946623149255370867119692125936929761740210349143343131734806308636086988302462941315591566668360610740930378130033697889672022926349045721559075397602302554016705619343727893885041249776526307913245684558057429013461508810230117742868542708606558144223593866674460002849268119502955318330304063127325083262255677888321926068073904088133008144143722190153452762569343413285550208424126715662405758630380371659821799141398832623603390785959350244146497593851175038626394291219301469087895301387329736118520830657337792741633809067929104339885328130338919339995930577262228395757551240485942332522896238509449188384842932743416257145116595709462605563753368789684523903019581365423905898755555153572628517783781778211824972509942461864063247065176131338420739432284831263144258546034556567635680778412533877484942247337945710901674675520292122171191404735030101010571320390600212320047839919714014304986646612230926978098516017899031595543892828792543479939094068250817693323156922152307303124180765389793801927596258528523446650121809833521626024610411566515054627126117352948314592557320625191687492639374222305992451792550638093048659749561403976586849121214898843416006937430811886664836513167229363897113318192317322609188963236233997861211427156495807069255224058861850830789434218396152227655162266190545782876915181767142565733853766026901605505960842053926814926778325158732418426245082144853385161222016492948611528285343944865108647757195538832182506012184096634095870242032551806147313669033256413728200568010736289120530022901989703131110585885920963751857280074443919780723371038856439964052253881996577080852785247800063279904554396705510718360207551499520608537785081307418730308459760848263910484967220998049622374185806174877534413953507586713477557006095799105329499565763869721164004066127670337528874574346706656906394775960306831085708253224808056422955592479540662379024346322847377982721970073319058058317073445317809650242431110496112567592290151566104391580551080792452431667179195364802002873024490320501041026751012594827092505516530525937469987118855976414713009794497245463432520118908559534150637360848194821109266962329926025890080940178940667581035691667069878948991068404095746524837810266844385691388343407292554949875671584779078667351091001287809619843501041513690863968999483389651228238419142663914532348496727975823740237071210547141725902450659465838362706801814738510520989755512795601478906423475383368046081277737713618246160977738187077284195980189334298773076658697354986665962759944018647932301822676382472457742556513709568030511653225463238132033584140376630997231486822362264041895851780674012912599947908314874119591304454057378200030044561306528545019987497254708822247769202282608839686224355329231525832543501275698687541466612941207170205677196770641849795939790730507779481301216659777264034838480939382276242230812685635570740859714423726023305045332482891034356810603581799477567580778402517189960560208214231302003428204021916864176524774348189056718214939736964355652775118052737243672709708323505777567515771151914338684004676816435548237029995629666373054211549663331352318026771178558766408262005412265691923904153822789369978806733983837583432479866264620778711188538252164167759938018220232229305346397293024783248196804244112522294784241267201052270542012500241652081054462192536661432194323295412880763149552459159088023077368834584397788896656063973234322701897545205557310551798306250340105407455195938840711786846091494282194253802880472793422886912443042078015598030434400174443523745712942882350339765135397671527820237081536126098087154088260896411114086590258863290932137970599292709055596180764858692143121064446042824843767173105452367323832116463241490285507475016612164237812066953854477849462956012890177094089810842822886198924446347267933494228538243840110112842276657690017603822514404472279568396818562266779987336587558953409183783107035311935405810026810323863537794712884374156398679500667718379964114441669675925923668254456048241957763365727133917598663695350759950014554682142368288395577786651515898242011119092887912152858468393845913158447831682959632262789556692997210146451194121946902240875481828583595918328315604022655975900248430410468529130509674141098892494575463240228421296302494742505700388844220869610495867434415616390211784024669694687323876901633840540985194094774888023439972133659985989614744635713666876244494065962911009385241032730502971314969712084736495577392460137564577516162921373292200881391825682467829604228600603338986247361667303062299345434243171217515033072547930445074478050455547132465089107664918579253247543571692013206240351472914733739759206135962511601044566696629989164805745408507887453436947145947454579069359658935328143012854976509044382984145933566740916554878819469031383497781343993000229928775236111866078939182065394495399401052818125748556884298966668748833343643581574921168507160976769493073961214869096771773357738026555268194953096667163936892872502003897171077753617511082772222562487455910714250808044359247294120973650165762491198357871805549619284344804028069685728954476877864823929635252669768874644900343675008888333670425856907929086219229539179943310104324190677328097903558181018679020348344404732025090917163642290145286488597726255930149028138362854043682757592163870959877485773367696007077279499216405092772198873972112055799665647682672610513687859184129155964419696334480963894610787384718130539155342660172148472684011106475927908680869337778400634233114305039118530973011208461845408173711526432124727373496247932847632821663327888908860699075701531700262366702597022368635378945897480892118064211231982385837110338751645802939307793208186641161305337091240233309610299047454027116968579720835210163436807332973719749961987818788465521960337419199636198821265823509393106480476709983464876857845385310667989423515562286021562404423829293497873876966680516877647355778640695930965605686252407517468642922164756404633142345164727690410347975192195456802317494687841885745084740983139110156641889057805409912327883773272812463990583297180546404585545382202604255643534457387137877518527214865309382648833459321325619488137363319208529291477458130341051734232082515131839679881869435631093046584355950545207093720512431988214000725277734535324932434722338759076319388735401656822523550478931982533230115333848657507483059571879538205133549312095808605871954292228357608807456603174674818647371444331494378645627873750134679935328426348901537632178619274928327810483413153354254464915557595923385703293185262866651179166798874891503697885254420641205631647110203448408286060992555885228666814890054320213459232553303115273436671452850292969094010903996675458864055103848779552969359344403445379759471356871686208116439401242237516381717738427435128757939576157360608278495200955705066779405094752226044959994007564297214410348046204845885925293565717881777739721663732914035872728487461466133533274090663507653224192164433599976126146534635891842441614881485968001341743161445651041402580790012536981104496235498083340633978913459078881282036900738589192810582411846114309052209838210424328388156552259836605533717959536909687900008157880770100290476914416050789053893880929360129631890641152527344920900506208113890492691674165736255792255132858522214221548727974494084178075059477929747351034661543649771057560986240941550989241258806661173005219475562183409474346637181227265879137017800068602427046859529926488463106766967754346825326291736143398685241031649050657165191270861611187632695380019648483504340044380652395796474048383402023544488100941816945967848960652773924239663026774273106075245043975065320764688308081499715805536566775810063512391088370122734709572587918635808621170248941963563661408010871820941055206893477785795484893584262033090188440126974432070520030012519604780842074746557525688326729185148641145266933588382970634404283985966671964212525192833375037089107943332468860226302433365226389828656052199594499215610259885280295593964071340026615834583946397276160799852326097934215016183536375542124381267896108520729948753933305574974150680823479551833413322872682522338513241942707309759264072494082735884091316794284743130485165447775196067960214797385443370557059534713035482515142586606687312033090949511228107651467502521264619413600383713233995276789080784065780087710286045585172065720857194126185616356042823668549841107214580261071532163070972675930412886687210438045187164077690388611541746738807896285876257245281549036548263467521639691155571400312564493970365447349382033967305031926793951464350705968913130093238268088845094106068232371481993790561370721276885648294849519811007318784016660565660554457767190038573486383544746698533882525190553869300974970572695307813404999590775037946895778269004422651057276637974154520948508660389597685438264796401850189578415400069711859324699800405871449934213139966549439890558579511084996266160533577184797179682203189984684342787904563919401724127022058887900632543020789525921382882367482962424213511100762191872586036071883406643503491729586930974663105847201839718927257500611436853802858971472673234089672800733880117079811267023491258093539919962307117421461102753438173230430602221363713951098628227990103507644934259823710943023359685678421714214542726754624116640864616952074915720837891572755245559693673146069112607060383726387773567671313024964517116916489496475371011700838632799735947071659963268463179681886813232658138122622881486192494556163222111928738487862466822005186594991065442174975668073688064742729908589192274019313974231021555297460227865348983245071385286682594235550858580236241829786396718314066936627687234052812803335757586035887683016377852171597146840677092386443875483146851663508410991828344674989027277255508419158723565163296121529835621725515062215794110359700893789705603399350397470819841114591237042688709528693357718305203483841094935705759999601586953983665200775503736530413835369642776771658003080850770144295348413666852160621984405383491432096618011029099715316055551924973374312246116441479445056082679937809835680340919128665634582961336210966672343991842713540869244345292441357178544542212403381437705313967954190782505095602491962746086474398441504514018259039005165353922744621543930155718837347654543960288380880656183192280066784407350324952828238029951971819054665673436750053207652541332740518365931773675823074597351742867200697255491718405125240457797419817716625820979321026194784214966588617037810918705012182561588906512634737731093165088022482769043450385391077541984986201880777731866296719533956017553641393162613339549069949430990818297899353251883038401354330860975612977156444849554952038738064835988064436694664036686175361003182542242560907817906484905429031922793659454171447359420477350720366000408282421607624732044306013976253933055421061327032342153057423028657404677045413976319636704172585759694866159563557400256767926578898891360222888369051488640419818409326842973261065317165164601739528369109318949652265434879328070478945742719566386655804929424971759424378978549734740336701957179332311757180718126218251041230128693968895840657429881882704276894676992801086292375133953909491533649653929391182285840937346293520243463326780046948381129222965473338606997909862032682858298138965293012925788433572174317548413823229477246818132056412063454669211755593353476144831475131959692081213936785509398502904492669141384408461037829003386634220700613924274332567075330896947025750123033294184665389789320016457203383176198430968793851525744201876020450533473902725065347215900362956729220938874028706646064246131190824662600207412256920124385647100438266088784371755010346299316687668547161157351602082541895754673521208477486219733720045512046016270203603142705913713434675683078816748849126043890879393800051049664285575445273073619502285982533950225520069120989198900327348245096476857836621855264768500244472609459001694397768507054751318048584835207768921889897281004961111526867509852595241740047050806048880704884832783248310976631328254013501735983116119651611426824533494344608582612609328824344597823933120060509141915740876481775674012011016577401652190691385984547799397902292778523324871252951826562382985157569947054241585767606841207692504257685499949207147583354130385975990655471001576471174651899580111548555141647367462469973891500709355168089036296765632210896302811100174033506978921606360031100729118699003837578164250579918343014501524814157356818001242204738864358393723534281279546467552080856205969362984168167914811518572288213401703909751562788367789938832638644652827841663644398408351686464380048863432748797259803498241036238907380630105911272375420046622557479807095053828261068729542976801143185471618310288464610345743914266090435165689703666266795906960651285726126561935432609582690807486689257849952869448155883766727259800390666235512426370571552914549901598107781303007383270358195098172811018732415654833689612407801742326635585293523096282515967296365066791300167268893530259802434560524946625600673996559775964185802235319027951442762123200362670189592399603569337111470300423977136518671860319355322218128649563504796582692390613920850184572048884965445983255460898940930893643719872652492074811522927605294005416294087625292266642630178246773366141097780398222236607938190855801262263917134379662986761003131377344319203255929703494142318986262787402685284548883374982474981014391215316918636284789541194952847720856087837846133613947558468835935386415519468942932505870483134128800242505834717947397659424496594137281632806549296780002409173945000095771772160116270470704183871575785594856476028954699166838647364677021952032293877795526277662274496786389383076757416805624072472060062296536653890381248578892097906696655223282859642053719839048301276897662488432957064052575370161949578867441982608041089131237251177449897571190458477402655125970138780307034914793736362319850753200451619336249442462420815094503727330638627194195583665237355781116359861820948578252841214153382836048319226185779635960457486977539282995087954828134753166575630387647244895044423188649933362347709695908654843695096370151174045461172194153672955708617971892430276627502647978998170999667741276908030394788116353845702702008470455604436212579716069672440335712832554471291422271957664743190288919062394903054166778828700392812205911099357677256255760463347226027519824839928553751095989217657761926400510553737138534520931986764804154390382233378269130588061663717603088899205507821440980805571652671149214678449203281669024781500710259967910944421156164523892070629425514557328595223559430304567299586697818894014228918440461977440257915090946832102207714035405890410084726395078931429347767180276550009724590428779177935211017163831338092222512283956918342889570338397740202668169241207674630277051128398432270407463336391324150094986304097080094948745492075769688405511525652140736206166297318769180162794770039880724371770082712687896901689472743778820578572381308611471854294132074130103835030276827978061033525738928017421479300485038921688443019907460690169876112623141170290041088453130791987586684150792611202690254944480073530338274584740279983927756561584420825055092379567342321974075698721095229817914087920172338006837719308565378596234026914139554506511503465620821689027439287807831534613182194819959801476582249850946164464744457415600612684862380472165526732423465989481420231736148090395192296786043361169702453777184070197231158047186202773915198467507955802897413389453614158743851486882348980714250028131235452395986505694189285354260157261456065032000770291067841168000999022122027174367778869832656753851849764224080341365362425131777662354848738517446012864555664556171055001286769972054178476266776523893264942843539736705597682836875403952958985107782798582694586563344678547861201361848746989905580638643322659107819298851705018695400910057759050300506646159662434594807045038987667383798215601669169267535608002782052107962313805121188778473007168027828283255078556423006444659768078547630503973954450524340738963945523272302366674107138332393466489655768553766070914168143715173682508562572931453488868430164189249831586038490408396758203581621036442947080050752820189452786002900161498337314969334415565686242564489714768388771240449755108926251739783837522512301653755511300899456769089811234277801346757132783625907339570354503124681932272171164916800548696272098975503078596604311300172255325501801315440579998855314868877177120552356114420705167142362830088778879969386768534229836919744280985611223351808902078875618448294138839696525352658709005307185728384885018804074660927788788029498288083174846883277894156780633863904878872073788652414441450132971362158764246141099446027751191887596081416381959734862172526218817848174435830425802593655220883584747381741126549498327763911845385587704768309081373927047594183063761619280090371356250502283262059941349428014080237316142601507518816646383882850704977168022107875635681702389847196931639400177175870233558632502668720774407839962719763977744681212383478712211072967362334278494588926044229561043898099730589411521161889132355158337465414812747689041812718555461252544579155075238162415716761731980410582159541420663329717067714689947856223886364953105367010510974470131462259843657437280278064138384189846388546479480034097617546214241204629712275359234324069019981889477420263289965149988068589246657913193434505850378214663305923072505744834985236041089036007892065252389779566479363912342932676132876891358091885482481376337606341280579451813591699033292796211943904086498105943572311491241465389153615625263384802175288590012718556559625461404965089188301846389548418215334095713254660518105176353452870398962135095796089408453045656565014655429512501557630894851677977246935545753949340455257017142715444007064867115970361512998795443486292134725630515587867838194324803569197518686706558179523829862261166357234796647998471734637403065046058840630594236009784790866771005046653831336874289820831935286614733468257668950698766220015254772205007232658409967232326485252320933862406390701711273822257441227360303504296147299882012625241726511315105635633439561030454326693499575225616606525971028622020912982158945085312667636935159924433517980101251053022388475137337454837609242416052420177654810133598300525519340368390821621347266973414562667897530803508253493334760910888344923670108801119250500932706538242542880947856709106982810544847536913449967385165434965596919711090689142777251567269433925439761254192724732878416571828849418040017815535131460953376114759030076570733809747872951404933035216805949872520315068719798271421176391418836950431314724331099883099590125350710001690012963468810376416520022350999903310478118560650421187146445341323417708501352164941465795374881973335137766719485680086738839377561861207858458850288723193541159466468516257335646191179613967472072346255584458935481030797767951158918914426987026016192314550837449821012678613812215427497715108160512269072428624595602868133184016695498082246780858063783875574393781488538091627670184155799005121878632244457266296664055514698542228479163133904856177448507637558720422508109686600072422125519413902352976817168758146568668835928004380099989213256973639810850220300933622743096847039578395935782963402957484101866938929540376330840458862831943934502859076791578733719680847320131957902798551418194413799272016580797051678376240165088053193226586337929562273764902433763140688614912924854599093630142015216919246588923452680875243198500948771333564617158963858163445867940093109739413566735872446943074375581552249182266351187999132460879279766229826909777519575492020715601190884680607187900975497478332231697929349287582182465912162734816834491481577029874058063484866802202378945418190291912010984568423581377112168106425201112571360923333311915778152786498129224593935388951399755402411429935019096790452494415552341926470006813493455852758999310810957602102634546144314973094549310644350541632460098047088816435189762718658284445204294076853045473055938512607296344135500602577507149060558140812120287241638325729644153344178465829705866355667403062708030070536723059064983695264515031286408288654405308243557602893188089800526591442523298717104176767755845898813610716677521114054970337111902872572727884786840069553135127637681428664683158515275507300795379749995958623080798763366078118743609644738218112273106745378307110051268585251208953287975549209712338792414716224186329096630441981546985790289440742690942745365310334463770170676860635595964805940155845967758227715358271595058463204919680524497278125539172167751838719801485090109929216203156030610666038053106925684695374990694418114995980596610045395478589461936133154998962732985927492877825212348447936264440875742956858446784150239610675028786211216217244883351083215565072592123619245137172315695790838662481320627330380398186742618601388330614904582239727659498178731208553776160331465456415177928786859590550709269584528803997392908213511049792470361494443093922773978518192972819250302993638955821594574904326993410042976636397046559915809552069972059338616086664284958592267273962307066752845623829084551505438385100201420937920520639044905322822339785691575866857375097947442906553078500955581309694250577872053104437182784423278018059944503200218580893854492917020261048310837131384429304458340996348551771411071947010902306744320057528553619321794006511678844693182863679444314508065805018606544707336275962452835690220785941333493641808183263658523549697157851491080986677994963051625747309476104118213896509374192049991983018083065497078298868348000298239707138486306198127756383358550263025811365134732466041406382149694130831008064162982212336894357337615566102179793616573609217035295526563776770342863898260902747966815935499435773352383861874554097536090236809668528971749215586057626094862541141777197243831876643295838319185136557007323214165921325933383456579513274019064561224836408511824909927014932238177397044794171110571069770338941527481268963048482269026666759161118882109781912996143262275407650966971937431592712635995316693343034387710742576162311092575797503202298294935910639351574144108689473191829840795564108775339730130279416671673694343727933532204000026436936614905880126073786171523531929608809489298799266260129390704119643614868996057777180226723462471619753056094169596227921590187987397011641073085946539554364642411010967610657319164441800727385882860677338657569505825423787977382780498356151430416761726591449933509332057866199917170902612201725086055939757848871627362832392705565059920316441388301143067949588168285945022966219069797186107053625105291954749965087346708790463501323877451777538940718572370937328554995457451850057262868979529071251442971467925674459430654304221312819757418848027445739742769812925057159368992442540713339898492811392764714328339974163414379266230078823791340488277466011756325505239336997103818709208057707700047353505264712277553900115674600574261730951027155028729896116914034073726613071293231687392299913437147242282411264370549622072578094346149790264582859378330045763377640727115061070676929486255431666732299908514808496050066898480348680092915566411400700787524094903876200326393820209739764206536190521367558037381767040086909470036928218062321585444133488165706179788330421053328151000979863175592240505387767069496333555057610871950188385897141328456911644325228281266890902328717277827342916495841896821935293455397563779331115825986241547070069700885114144406754459027750041087288746917871003577777703846776401283045778319275262966496301077541663652037410855803177470779882521262262848215599906088487713355941142847134937852605618568459181151547260878550326681741494639839917428511828252809039821280710806901048843218195903813005327559012357242679915338622538804527668882202861814615172714581328625366218389647261390391732153839439187812647298046817312983512559818599256243896783958452499293339077281675724142974884049822133720892826776228781043596477741850353619610239111650609520907889991982427408901906006978504486001057030058070691936296524698534131832548898273525742950811959746872588437871674449331411689376364852306864935238296833454547794639151286021687728889531074913996434266664476491171514914068752208739315341651470077734613360204981387085850091635650361589582977800390479702955181659129052744397944090995809307074965392965380881486342446297643373191462547387070612665213677076863689586937549066937798130257694199707351955347599418811194676157118416159766122219677370783315284263139621071523662047006931299121157311605887336598050780947338417014514816767235630766334830426801032603018533058418601774836077493105280560209367024103937131355083106225157266941436605781133279121079924233745019588663919445944701062211099264066419740349935473133804709078203988762079840999343330472799223399576862401010755730955689582003731801098536970309867272272710959730527893811885413265523145603424264274127140646121207429956770883337830701293034565736085420032099687105706511116881185911674413818141287684834058055198304219764968732776088166941687813672410188387765803751228246719429276525661754597600141717014407165102073309237728441243259744171440445705144057358481462264296156968238668730176074735007632108564639371929292252877442841316705652054533158456766424846945090564493527930838356905309246693964022507634503998182944631508442568549951400278632272535263860401791254392077359400147945367482792237985953540006848795255088458603418833805815222063876591382857874786582463162392878410835015686760244323692757580792975507492786129992716776536755214043597177899317901056716650516831976150849498513316417068930362423605340723929787415795580779403886558344785428682540524775117061041608804687929909358429932167901401283593300434820308316254663661075933274282028992530061484459086305317381517658959685941930393580194899894091481514371829600003477903935682741424952570292076146640549601259877617825326959747642551507784647980578478529895225590870116778607558930090763181913589452066465989166449535452211479251177238197837969428146777078795205211280141810632076972495564401817502367279181162996998929518077616228784835030039910699950324281283881525195283038625973172636652424003729651528969505162518785725905019236814947704221268496383005191027916607403970235443938598549107461155839282671564180380724252723450440297774668274897523244576693030955589289757723747201518238136973063641650296813520993695971291714884467079915918027478791052574821445739424763400441329762889430575052815223522153728099766585750487264470947488409225949657015613337781819168656066993200300330124104141310493330533459381866020745142794730408821082258799835206858311925409100458007635189891304089784395855924156011819837225336186092767276595839921482429287005311395348825468301550994321054657006864384721658883181295910452144237585799996439893520068066418208236310569819963718215473845960204404902819523129778526630805867694754011293779686211292955598650445357145965057225378352573803344948870413957529287549608480834998337387427110368091282161383471079882265006728138569872513030680881933166703841111278458925335017605069352918799044190080359728868223363627199636666170888267024347789571850930269423712348170443222668587530280020711065543163487957067188928447647643681964565343885698768231943726903515342155583237500762299030195459929607673122043562259456028124257769530323011608800313606322523963400103325066323028750900682991901320364689988397490011040029356073567738723846023047266496278908020229004704211735657283243847276164203884647719920188449675819786689031571811868074514994794604311197841631524862905642328310763240019298518545685531144153693752060813681742033064645460444543296343927546154511924273763058352525785788569412722699141453424841978142272908232408673293961711196145704706641821691622662408401977398763270291155020945060157352567253986817799978878734419060882967663875297270527151867841157799132735270427502673926394098341645554901518818691235453208134414544890827105992207051574663866444427163439784361698785189717447908627816411769280662305857823245967825620426998078238991053709700556399872258847451580269813790708529738930349524911802693549067290415083045159546336068273420226410452134842685927984950708932939594531777025666893488133659733106384939464417478417737606285580554211584846908805124430054926280108542981260520238145612210157990994852706795060670504530164439343777615457905886397250198820785573804067769245861900776707166422039010274921709999360189290134015580320833750208814286780046360009597055210770870445849847243275115103350120970996038402662968696855250533132879123366678395887627332615871228094296368433945980780080447999656175534165928726417351590720378367978701325357186960177236845501705593535985043670105134808839285960128552047345510463449958352370197033843855872389154475898869772742901666953386773112337600306100562730927165715764707389894429552123202311547400401821954495757191134071423394269491705424568390957797802688323911224598645545955568423209065680361713448195427189920932094065536305165576921084157654911774002628555767093719558921368583123446502812353994676713892265303343153500330434707687308884224237540140680169296103714998859081718351431039314554645704505361517669441652396922354956414025422134496189708105670091225755159307302556906059641264624413246991485502913422642350240455077747928014517982627074038664465417377222817300416493952397912470337890135136167092816144503110323986221187791602834800748343421306827185314753554422431270030326091494847534605986354870479826678539284974590173778185748368194109464796082721313447086115463780206435527238268224320357102893868985154346260472635470308546675977906333183023806942469804636121102652065653408514109860468380890870027045287641956776450255801746457283759176660413319975862857349125424546380060731271966288809898010211425014979442749745603398016617062427097179524101462771333447019761291066964746872322206644604459422773993029766239970933239470839264671282176732284977797952714922288090405218284856516349319020036433579521900262739189255494526607722162394982471585055921977134940964242771773362183204449925248064220895437043678759573675553688374651408524196161904456477657107073014981616032230016110601448418470304030946585250533153956941189402721317650733178936135746170981850995468910413970134330266406884645108956831375277980920966969426360782084534261318713986387332805201810805274088771671644698026117506676350274560182720445272175922636367562170185229753592028561023614731303251541830954567924300245817586206320429090767091206858617307809648580851080720044320903500659556438228684205592352970415212525287578595932936605777760973298043854682639152563633873521692860739129283132268177670971351829513461153077282878137906733673359336067070981694879164794773676539232861001442182653640930660970496028891312055359276150373781111289539587474540048311873614704441580824830757503589605567901612188483131777402321695472553895618673302347462305512081881535395048638155615445681460063309005990276071695090188618139412374389498482333862335450391831239660229814850000511997654776266117021840326289336450051295476460091366790917334124383810074769059060684263513072145344298966057390644050631829252169251040894051322339959741594659749210587750040368617406236685064413756734958411177796675352918794512624413498335554070050745301552057605149818641757011396205656886003561736962651593262632678668138387824629388841471032676698444049847573287721455136847428613137916820604197606021499772631500948638130950606738040025865131470509237277092389810732398853979863778546318197959835594111194455160971251873366258587348975173818830631166018833708288831680069938207233059069620875859105556265227174269864945898770300339037834742655044895323213587068611256211660251887687243939544122463273755893935893228071367272829756999708079564672158127293783602271026180299140099212609532936867566796925587407141293937222917283897387595762788757643497620416798564781931215438772069872236375821485852939308915017506851037041537176886247648957651906375722100286560570773402593184572823567887565962817641820967740290593625585456872902158312620534647640165087471076410522302927540347177177425067738484549300055471277409619138383424387269843184001793601057604175676864509580342722096399482354335859839618823182614906608483237832052615311341117980719376116850478840373270991613879025999633418135096474325585859953651459573079486085835806017517740647324679723666971935170701539094606762972382794507385353223614255779955777600004001312453503902398828674986595303909526366242696286044586956445095508063855928797824810987914438418815656381843951019009741530176450646911257822195601856351744745650971183408513330574126061045632025627670478485471139285622751200777016729872351207467091862039106041088660691504099677151562861534901565427450021854230078635071989828655594803101422617172406964421638265045489007293483849531882210436180041599814120347737228040352887555526150101671899997456598196497189837854805342854093287823987682628116622920994779881987944138316128468452024307251535236485155324475292260550168585162923106627584016099515583982246322227554420306973455909340776716862547102359805630569090022145696047741666633426397016880883328209401313956208084881048684139282134136897022665155506247346218626589034250177441950793697510197499836918569835882443473332448479472678369105219537715084548570962889557189354175665519726213977527872687383959538919933551379544111867371661813446392878311292960614719539035922391114411402356395348768909993158670061752128351824997470876819697562140502757633801949514272935267321480938409517046207601954321706154159240219783822389204766336799517462358553454213423423547469905876584022199806343334299409565111340379081147089741003722258880242524257015670862228287045165153678992796272592946699094145577514888348817022982840201900883262398383435911900793455921215639181422197653418239133458850852853912493636642495374375830575781159430306034009924025190629414388443467822740883013660644620837822358070903142887964899293940360411737021654133239216197844681797063318881467973839007541031790447119515160383186245328395107271546608952709928743993592118206913589234629333698773923763469115092596092772659163520646708295528370065974471248138679810617710833015709501170013939248951390312773787889704130073384466389028334576308857908764294374817805637256773788765728742358602329389567115378146061392690876921057234675381046993477296146457365576339246279785412021504381010072863999687470216881364719491918939022636971576016711572609579008045854446781329798427353504945332952963556295390052972912928787658526905103486008355260804585160426689472657522795101670636333914631313500265438680714805726443743111551002778814137401792439716914291123052840049372730519661781123016681517339115822234139516280380439071750894539245115648072855507078082322419003009482055794412136925556862135478673153529084308036942204356724907633557387881954058445312155605891648489775655011429721125114018228430346897472887252257218057050956855879360592658425032384902442848076044196144926892487594666450984142702000239564783531273739971542663668644900642179570932040435474176142406720809556848104492060776073496256255304191474817560251154889854748677275498421408993960728778836647740513784002034343504865209611327784834397890938969643673402421530029607347562903183169221815134533323132425605459233517219841132287459061997251822256685142156434738702954305568202964292890290959412415749766469871094988688743104010172517059656543415879452472657798401014467452754817124207356128932028202116615757813751231708348425302490796705551207445270659027821827575222627501143954061585295473797227301919491498489210920141618468291192782660183837862800682955194596230736393709939336240117057312852630653259185808414592879511747060189529532145761977888430777364919372706593850235551907201884788315600302827304606678974700641025625444324613176431672101978979720210003491087999325383532969043726215592063757957104198910291502074695808228838969323351822518078195934440414042091294382109316806879166704627961261270982389042972569543887257122457470706814836617081292915176610003563394471355767532655361792029955337812382641420954019459955951867061702157410569818329807226973523955910211700363950955717746744803124084306090936882891007097758443806906661984885478095237186504164725793904248552586771309807643566990462660333056760815228793260029669631207928043210435896339994320840389524876513393131419698153921231177823125759732863652536192335719307552514903154470720293576482855845861460936462387024735270388203823999595445386926402733567191649920225384445889131591035004591456075329633485625317401006984313952560432620776422024885373919833761309438897130693740616087483054935061080002343416453885645401584529674937403486158778420843937461120503396883760921972641423622509407128213648023167658546526798622699511789068864813200229509778706348942664426494532286877303496884425589013370074874627893240882905915015177591949763008469608688202090160685190475863588926888718597291596779014381184803362710653349242948408601452380101257153615365143524477982491505607163557290331344450127429965223257902201954959834896277342988147210806197594243804553996097158898034758854097771680649453644851312523339566275949572564970647961356599160951615302615797977280605538705610979091139040096690076608340958933777992499205613424350268320597303007864086671095052095374511267644779952035052341739720351754524502672285798552062377941348643417156567505529390278219737345719120028982282070520035891256594849649353809474287051778911730177051995403676797851969186081806925062543135468040958014915510779091659291367631135710021025376737830989389262803410308340547165861936593397807927829429603050328398286844071461110937541649703295500235162958995250903051754425694250618031419225980749266690458427492730307772862168605095192950627406415765361847704361588173344987426449380786202035222932963673444250177807649135202528178727690439619834915801787216507572979954403927232776241706692322794066326694897008486721024008109086838589281681169547416494049452846191255356873054167231924084375101795038034118569643828574650590737989096671923649961944069634147034128774986441279570982493027670741796306371738518584576534202161015247353534381451228914793667456603407335676421689192524018603104208818168160817634941138455620480178332179904764964099831214588660895990236386063051760360801185432475840403160870450131397260356138281215206864266035027827752331808304869566537555207963828670660104667998053817434492793926905834053281927338392723333165645274081315355682910096324763996162613796970473342831872192150677770475576389967889965062034132782890149344385500434086378980828952124762699201175119424456275807751147613802857122698394186362869095160269244414320458504491545747020595385621286813573641148041497779695356267687228709865014357035428812669678162157192468177376416505849296622696673646733370129695714419101123041622338922492443293388188746898441846312365932199770154617081851912141071034075461334717002840482675226330219239454880732465569024546071673215658756338544716894659954090393526179565813157729512194126957710435151900730062078873208903879361098417876232961160761672768487856865177872080465673513535615726577618965896677662988231405886872283417197414523568257760947224123889203829807642133369450110306722344661172334097642461829034726193640989796176599971163750915326451813714507787437495866921650350916116363082393282404118188699453186622684617136841031168193100313606092207754684412439177584745675479725521029596951708373060661408000450475185922006195638141541480643022317349262480793916917880378008340347434866200349218494908469689979876269434123856949197507451864567228695438838528661349490562745189310101577197666238613067995755798266074888644132008775165577660914500318096175662218595389776562241464971992842682927595480297345059217212431570824217016101217775076391624018992073718940540170273401985160445519920907993689293993746495133787856227341692513142670757315523065741284039885303330950294223261202708511041120686666978436859600253695442664869481263106689507555711641493178013869756302281214007977543166474724748395846443425815158580387943533959791397464564313867662148051636327085994027994078763895873990639905656228006072096527651688528422240358167015316011414273348627007919013322900422423735911541738525587281710489610247888837509754696103851150146834884611038100067730472714117557700273642760993907999408537051372479140736549275070296942581267597565074455256026426610982585711551961471126134639606474613490938229604994721463557037354808521739001365016026586069459936285654033639434969317510408769456897831781615076023623671299713460268048276719571540423673782810101896114967343422045823083948296729416459372807092787011511522722669503964610998396688318596921479289187551298125358449380796185153351797823354760246339945444477011377888360316909104362374500202818903180030696883291285610910208400223514559716561913857133529996092976453536999867033828004386391622692680993630166065296928485415023600787499235934156274593645454593763572727809741758194125489705920744344846367547096929623198881123027352864469465238412967874963221680365580132986933619953273097379493126307271974964610031361489319060422345905228162038014602405363854043907139000997544243037467554737127575000972242114783256999123091024291499213587071487662027357942047250750572144085394173390994150323805448644879188828184193408095101513125764070579393195484378374733594817933188858095870419741404798592825205538497172099521454876710234308212624496427899057945860579286522839846351471045796616147887112272186051825943119688530328639571008741028247293439638613557082409524398277710118385054084699655516676572149029416910640391434413600502457875023304490736858651834497361904784945610568803044787796371117750841797930445380829378560622268465562043067862224280957155846607446978620747024467944688699061643590567131083623272280175555544101568004354849614141346120895667314470651071764201957006278794441625511306989101795460927169654602348607554389906980812265677133332221924624713223452700380559435894766007033329164221888769913000624965629498447499494638689593635017405800717680572221511860553782425111771110463927860613953415186589449987666386908088423222845486713953334710040201900524410602423135732957114044805630922699771619405749307671671378077894802201614241366480266427041161896191128555700508834695169398321863873702748207478283296541703127494370357376115232067642115774884492814903497311019057638463023314938958835269770405665056280676588047442978938899607503199725954594219042213175570069110724336523817277781459394487779505967410657774330638938783157566252690970587181756186991003524914877323038157102327607100237334110939964358127967869452214507458575519122304913449758782129240163585728369527061097045698370458257711127119369147880390061347769952120241360564320558465867112299658381132293779158675553011544988248925686480359145487772169796821591723077590920189114897478174276615589850001175548020144062506663902102237147658085908806766143263145139687217857760830701125336726346277783000000822089249634796427881350581993547780752765371595236479457153044154319416217604691652653497309352446027507897008213325094388541022986393767059534026399990310549623919053313380781775028015710367137135971588005467160340069454123506651060325992057517087799515450401009857703717731816189809421576882899660639320246921952355119125391579766494738504319108480948375559129103630428164015895095964837033205768351699003890549890958049553615481392482666453616719515545311174698951062751406650890341529370032649756497260830241470133986313746557579959015059590174414523785313484299991365995155059771521314576491304327118167524902413841836477586560177560757712820861279848291423445110099931046569516559119861340341192569199728469563249821867774750245812424956070410829388143148873375334638064656410382519337399829444377461080337721344813073467453123296942752772091611531515983063591809229385892755410383242230222025689617795009786732906692483627753330421979300625988528413597631873126032986544764239859361980554371426711532270087374310833959370617155453776301483914920935634020734145065330237888787770751208454676611451886833815056481440452259758989080000505227059617061570799116845828648005109209940500734774340873337029029500343425307834094094087032067852828835231221117080820344861930163299284806764956662073935989010590244863389040147121618736513417989706000931214443817418642427699435396127089822900388030128213838826566232240018687472000525221551381174331124608154541742665174668957424339869713885231129750149780735679636940528582130877254182433101960122004079606809239052571117120538746894951953919036414648066026813565282678198112113079830762301824924343585193649437267488854174867442746996304055703453382287126199544019912181262474059247109039857462075047462106797176802308836861147054189183352348126050517480005344569756326387889007116258087881415589910575002815471388975307288505275923897758049111136696187372910825839220248554374603944363713638437626035004673014295185339849887135265843241513184677239637556147278844903041610271234532438399131756110735901280384552632135784015030649136598034349637096945986695778459108769492076474530959438983657119844060382597515074322129085219620797353502774994620627780738421163361709298695969179822579296018802985465424793637883629442971016114904192555233490081974082618033955219075973983798681941245431995003000640244081819278725725858358770679938439825305687481510573534284772831261545826608013729184959663738190328147759722107966614759315110311108858373842944079112612010338134251304800711082984805237761333674113530468411556665581417206797925085046737058712973326057282995685587665628911082043949643255780207242178303965363053933655911097288400874753448527827248831841967586096963465602058301278353717148948786629194701554031161185627255816960298712304341705873227331146711033079837823367170572627456880808125781982111310075428750791675405008902664442917424639641866399946777519908310150694708578397294685313273669649046268642527857506855183800825814817911095365005549317843631615885185106087290452301755039790002170093782973677962212994394975384813525158225322258376189707061140014257377898584734492658435188569403346015081461279298947320592940120979640896630440951556799154188199153312940302494977271414520303447940474228796443230606600093465882304761790867492130730669277045017023837707485871637135043742071814187373409925176050198813657848493706602149862663840078093572743326191336576464305355134539609034121187132233378648271214340736139169994157836958227446237910802114516888784531444297222275539641597547175175327532917508656413610850001431588015929137282535414294663483718816520120573929374786828530482408360349831641378355066161614528849808746633633280400827568964228582512480324585394589075683856296212367710902270093391517228825060408952546363791094693643750599708898508761414241085274120410244842702709244691683355062871982700383626860125821436662332011548678330313466807494750909270365968210827965533870328409224451059334648287250914589166599308368823175488526055071995562203069435588397041845484105649983512781813259179866205581184375327059236234859373617915771859250490319726877081720315022094648966416662153820357500752019330034180194872291239612931279943513224225963918378750941036717986256615015771654064108510967885708358205660684025717640130230385390604929292098900990854829957857103375356438719975668169483567439829649508643899821786903669202570587597592064513194155918619532727035380040394234307275489158589996582129764231108700548186734167890217066658065088105682550228234001955429988267903255664658412339072646818550147924480713425607196662652905457850361566563721777026382857743218696929018653294346779895162214613188242344517579026977411633498453191404184130270290204926844797314564006420249386155184599314136061096433009238816678384095605583597687304892057807306732499524797425536501568292955080866944062520135094391166446413858923940075359914043173825514865642309095585721892817051244988286806319400869520730202186490872456751906172747541065676162295653445132418130544798320206523479788816446515171712527328470827573892807484568683903088582615981152117529186975232128519570970849854408726925158343194538466030005494314339221294502706832540027194067936197581945145849673567772325173557073698737370815945185621938527477840462037923472370205758353006851479553537759403006833528764506094216484847770150498385121499867776423751150552998891939112523323346888550368997271982661938882918192615979171953343644391511869832035524448228985127335354443456319260039687672766432347587170812962797179223053438696513599525369038382627053993691183869839784245098391396555271791890076190135492838875329176155021086027822070332336801901791422770066627250758020009094009476831024519682001743077313717033873104734705147436839475323150120786910659719252302321070449898476556680764927573753851694394761420920106405740583332458633977004305879936275143061665903963354075468200644292016346894373544604648993361527411657755096645278751254429096219485108766509448545946259759437767751293382953156684029992803524620867596488223739564382551210725639811348507688572142341773881432079307849367474621875525900161150784409399598090443835688546427013813781785543764603749187400058043853377002756509213302504717639761982574442900043425474840569487506538000891092160620570484391815288195002741813166576539574854093499335979085999108801692252715622064301778735031559953887763598041281403956153952021532105765033789978861940866798148482655771391286126580257079519270667060189072475908909741124820554341616317499121166669169731491309043890678399561333403038906228932416623004746891934931206539011444746900735919234935807632308721875682670280852541111846225759798118753414358247053022788481870173123777918713517695663350119798416035460640604561365154607796956658970374896526989172064054519024343984593977752480440209451474765788518666497089130311097977248092261859431486665559675246731947924922054662350555413882102500947022006550119454502824752052335345711176270544139937130940110274903078486835511070120345179072325383565874625185007136821325164417201361108129914316225104199840067974289162272270055459254288483177409727464383869126051230774425951187684935049288978924250936037554697928416121721129978125717084688871085669816684021513274326844162324219617651365544048615335558377536157649158289595632176084648796913660044660271248963717811534726451823820056544864923025314845357088249924716592782172784266282552924099585316844207364838223303005049846720096361294163415306399581215232003196416599967865046595603320534901270870240567639156688243145228700009784754425239139052595781791229626689360975825923340931943866498164397638349135170868419248424616999827593822987935772414019983705947387222268893358520363078402800465005276126207218566641022311698257455364854588562909336765484676656734086897149470865868338551303198149881981387578056692397286927503676349737492472044848455389528234629166815875265434001460322249106600454837969636315637633756573054806162058828113426968494410541864621882290374461297979112514664597684886371211183612655637703196106888230173087591989700097472004337999047299525095546508576872896462290487599941585172474814379300137367960853761917962841980927620770266679847385617546235958041126448424041391555785707223718162648796162803806886913425477181441954618316197313197887276499543307537289968434438493323920406195297561937917394808522486418806144648714815897692383802096048841036414993094925261498760571885864559714861203441052970095776148153401804272531831026686527501591877246732308306070097483903716191163191482930052485277984492758893011656809872472992859163811569363076137787633228574496551283515625437340364309704247177821819960974306955850315652299734564395921114146946243273165702571150193296240572374460311908399691999892397639224014043963884168006057533632773867908856341409167995028311399197383370208028261202858073269231389076700360561792129042024642410073217936373767098682127330389728276691665430708103370943138989884999697265861400205060951785779267224823531081742052314855669461040726133419271240705420856319456299790843485611216740566416829760533343705445794332171746731092264981478007883850842416820622260028021998045408102561135454746503085945726109111261905216434385630418605060932396135546047219968879000486386961451843915096925503472576128449412599376045007460020074511506517769388401834537623514518971810037876238496838052374772020146857408302088639234294852339156042394166449819871702983331230711259047363697727761906119276053036107514819552318851438245054701503383109841799728306353266033403373013820978144210491673483190731745707994137331776987400168761112493292654345333024435307031010612343162487940525412588143287056270840130773498551627923199956774685441701935264152112578922957778247528765375684407551704896595342731696607552997133808865752570256576384948258160036206839874572491877890072176546797462118718692469251838694196235413311374115815797434490011274408594753612232289668039130496254019918622967689915157113646957196267236021488356674288927698319318166203815830942023905776570581053632246216829737169539039782829627810358729454374412273843628947335576152069405743296810897280958603027437224609434110633924719780997749514662557493562936754570371177684524778648947778744974556618805043571497826984750698377644383753627002481900545875642063552342490748152025401768975387512585200904051971124193804631194913748117544372727892435787712107634230669199246352001580255913410644357630430004152129249161811793236170035858483018108392303262616681322841727041020336114810077127232562404897902015400271819281853280820412520305138297013055467319603794117524043378381563030121168590935287738645694109812109199825183515223999952129138958450977146899161741506776636360937016565166598632037703436942933525055349015332220171744286248361898964247841447626610260682112234403283202937680535915510332700491786857125189617243187265217905422246006340626713614755018309468723072159448759640001357631766123026121269365468386507575887775019323616990275963525883213773928297101913729247061771660807399229923725180452531810267790986245360934170138622625396320513198445684582314659495312720840300156839488530209271207452493963489104854142558414394213326662151548122979884552943222358409327397771658265277451816094896179444526025530384871089121788993755000378741383842692061669612614418493556274183969590004796191578800234622013333197769434001452275469775112047928004381191060643057932832161858139877695348796729867464880994080910262302248068044497788160131394398054587856830935190539802133730486113797333919957575809307328012217818859670553090159861306516456342465145456201457745742977329875525081582911234094978972197556272630498569928723456879156040991953112300539717523123820341999977772219557048281396161564960469212484511863976027965112755161682800524274357007189888343893980380394505455224921499427785925870435743813445187416002599550876781055639770907398943170232991680047564810531768026060576383739161130026752593889083463007515398553576254037899303712177301633412670859557270511790825304920776528331576822923639128894960167472751387972523734464533822330558905659781596078157035995439442833598736172927599320090536048271576887145954066194177593514033739793795319168569033268047697084323363703627309180512985871317045164635026696452854867201284356605348227818594094660677731553213628661500579286121470104135068026547606359942424513715379040369454671382298465081418435832964928196095845396079839707511178424073845826671314042551974684579075180648612086226969944444883491437319934292872168655320368871112678785510655939615312279068510436324816644373526983279515117337440655660632650357580376030697517542129507279200319809811711107700666259577162863608382193755896966861796504215532973565157001614721420127615400792880429430656843300234294741517219483674830893670218063306159950137100211840595499970873727362363112612208628809969703085677176855553669695498218301874603974470401059350501726636732947214162905007542460438703370464204864469417542061747601341577105935301853703540271912406023167843808696540448643463533941141067889042496027552180952968457867104082204130528639507538389808770786137589101651529541398278194094198151134308791104694616220935236770862587590450637912216714304535322466527448939541758337167192071884153608816747144094279688014468266765995259077387773139484535581206081785882349751293188890278030655103546693719342554266622630473202562337627631479995278752382566872479529908111278173128331815582495033155362156222729919756542462504718375587837370388465973126061026446291971614661914773695601223699446210006529770715767292363021721949641886522851752035754028224346739938069049710198361684647073363636170719829179694041093677123968191458584406213603089606643156165059339969884521458521796518370612095337707655068431732320764611084048387032964770591509673061764830403603856433723430114158096341377800262047751187899508265879524640409896141980570564938113779608887165941005949113451151719901530024916822555258148499149922104158082580397185143365892927083750433291330354577634783969653682666400809231638889634567353257185173898589964271152317643492522814446411884259671762581948949164148337530608843488815435023931414141834416510277202520644672984909202903157057850535574835226905659640179992401137934870492414697598655457366951861491243956795066375347503192260790220949151391610291923398818945350063220052332694217127040892664058251432042720278036315514504277634468173860245155723180651908698771778148715733467413184289840550560740715283901467500091951729865064655776114475811569976406234765117967560541148542284380301339075136623594824360421643769972700468414697438404706513530050765049337106410962949677190931796178424187851993862279024986296312371904598932722494284386091951122735662003741940075740264628743517859753631920266212400177899013495187966531048358417737371762177081016163619352134492525946824465270181188786584589528274877429052677880985143295732193277861848074616145807536892687202412038965138541579416591361144507126240788754975508265331438067058352070036572223277187487372752876494202923035860382508451552287195556290692820296666242099486261941293383923662496403181743781493656593921277063038278722461372440077967507564583458967735051206257699956053129373119197449497988321629606511929711961131334372709049608427715711296877803335283452681547218042342302925254013645711742253245357042439268779663847498022140126171923539422533062137298640623996068262977015776441580832766626503064909633535038754517883938529683732610966130502951353054075906827380878403426764873448751718436137701347300683701638325960997422981636702551168555733760703378598458324551286616818579051059676027099402280584407984249537114425221250340832628128967886994291082620746923580704713819087563832592381853648548996566726905372875712010869056507011085309265753725303735095973164170107582250883696158117911865960533833842014202088726097925330176816401881055395083920444770483012333934939616633289671211051789159182559596574727313004000360417907130917127061920351371124849615277998382522676223195338687519466884923723534833478636138006801659686431458409997950648697478555294648665049025205390390803514800491134314971431280080773418464779851394719020457929196113670855833297806022386571555621384219654542136715970171946262863526849731618761635744917072506746942497942048037559653368458709095008319735996337056014077493870980298019174544809294976679655692942754552396616123837514694630318814905634303930682894493877063965976069941426768569946573515041538305096027665074710968159305138298768905874481849910680919529439470347062865777515656463584740783627742769284442552060308996206711240834809674766704178154822721569699685650234932267264717563418462122399653540549641031991344403071313830530170116866325656138336778575234515412496076324487704817260408722801668921988759644936820244200776417809654647262645490559524912870911263525103884177883063550345461952240832297270794725725313513951556410692018466800823202146212998383753514887082972486666459803592153021204135868394866823631121122423785377915972080697508301167716471131480658547475704054803466065183784746487530385191209620749528594011409756278472631689284852963028931597485334300553570862720388167445053169998029673711886651297611748047981944339497061702059399446415264856074928251537352998554950198676971723513257995458924076397342062929489957128296347545767105003378031343091900410445095526520799151803867045571673336708206653133251894546901609168633022379768227953333932535074440234220070784278809448071970158106354759936246579967231917652286176993455360020506974925144534584102961209481732013930217386263422630933554345089687006028806423806084558215756763298487179401071656884029898703412943627802024945959093470364706993857107714567383149619564351782930376295226147827213810500410740776018710657436658955314668597620120847682038457221487958328486623821663939434725800994020640695549583416942279109137328630498907004981835302552477112742575639811006999729960650844738854138741916868289775175092783561979513191348181717529382242616667552215219615188442348564525207910249132119166063010405973063042691229115295706470991783182225761426788444100283305135800550566403337640665474976993642630056025448370958797860383988881242890973646211078354957857251573031830204089429263990752695577380478723637745607107662697924952738407473642093579001481268428666089167096150343584250921537614258926612732561246682462930228352565656095092278703524390703884424708890520895974437030001665042006576383594203771706064307902430274114261531293618507793622175108490242397982194796333324650752707203576986817265674715433880424548870153196610524212145195632365183044354345268593003721588408657629596706450731034584211313953068235224340607145462262219629806704510624593220671217532615543148728125799672292060311777381223860043858119320355229141761138377731177258126924927497373605539934395454127828019597616800123745541736425127484835994975046952076754286433689407714424818554341548198941447149854081578970732642562763517950326147929618458518995161450155183734741523769117749045042402801527553128464538543207234898850905514757151349902842192326021168515845717962388507092244309765780121477675629749379861061002705895958015692479614134640084529112035473705485021336605020659804905087046863742349558688815970275360266507168840453224365596631272573365829240901528221672018572727401401817229328762111398210623943319526718444660182716671621031256065912299426255559013043483098308996526446652270503244832038363694590127093514735758743496662228956566937661610879467082739855253798544279562963817386236992377780644189251681583769767166836015551799662509992251286648572413280713716941422475566781400107084557315022448594664362003123334841209572434903441104055488319730349939902628361103532754644868209906702150563913597753190111282747425084634481406753590448852369616578117979144682593946636889348434208462562344107546843031208457521887727645497495488780515769433276344646451143384695308599217258231745591011564832882122595163388368981031625197112440543859567862486242482354981102129126626052842148649750837232057869857578888318643721068964591262512863811645542471332584570860724072759362713650157537870451097394135462723651736554403823267110623093441163155971435685762157000877717921456528982869816230801542215524021996519333988772909420991990395979341446159925540851693006550004057714964852898908663687868575638724213543712631841035069506299614563163210073876618067363976972016585331162316051674195974634124297294795438455206502318454777568659453414690224269713544374871935879664345460135527002772725086572412788278554294032046018549208043069736016496698558414028424977970013605488250039253572043157903122276856288580651159540664685596814705103871262265288985513350486883058018153024860619416308031316043916339671001814144232710860196932885900048827477497181042615941620542032603362895516306928374424777442524815252167442749563341788097668276282532836957423198491822297536942368666816403561670414084442541251857859828348218488636915757754577315903673337197379769791851358999088136391089736060203695517007944004066435900936683689023440039978955061070203960335065397386441575385557480189407919187605654198615324404759575487559878007092649823977855053185956486156709038160828175742808899312549071809251412977792994724382979229353047205307253559270504860397173700459198933644502213946443979777915052165438007778999315360241641247563468791799644779246648283826328048608270596826847909339304224747013248852242341717340926604718891161261808502195793359330237808463179878561309320933932110979255278759258555263231703911200093782520243344616987422198055386224946745956250969469671460846412900405999171528080543264678102322206683209377532627974163222015839194870927204862179252986726468111875660714276758914193706747392323334359207711044774289450243376024346775650403362446372129247278356302847733481416727149823554366804999885956623935234922945814760293475230648131235815003935083960131627586633985157938254418731698690335367879713508995993960886550680420667710830300345762946531061357872148596001859650503385617208041411411719927469835407700159911395807418385087928296484757464242159473873231067025560716889485283864414629182006363317797725571984348139016082084519053703518764556872593612812225133917051542896662785444397868707082752899522795474872439086304869118909185414719867809444500972767121893982500767019472772558732671175652100379277081746462409640697594211793764945920457790659679484466670022386662539569878572468257873980524781252708416643001420554806541475085298954228769986818898880668823715109333904768978380195932995812310701126283278008480565946947450452329862189361726943036409392218718553420339822122570915880815347532464948017446210474275188796257913945385709431883411857948431203143136139074900273944882034609930388966056711200379213572481241213045402764964882643944896922659114777112027331969379758264493906083499593145933289371243391580148618571995890502680135571469721890549664328553067218919343963653357937447744178044162506705136089725464897726994730518237342326834281830974937462891143722436019199580751480851188278845689668571041522644610253383040211865344390287581812570431098936127142263362482632096899556123222842890975359933748206042518507804519217511204223044006418104129613977057252997589296788077436254263473979210847529688948822524686780522295786680858064600349348625407913541325398250487608282500378544304922844670278253836311721307907463337221670131535179801919408644979138628417680032155394819047272096177342723354842116917595323319854921651388687943198613413488273204233332355339536382096093473894266539903405162390360672027832673236762841775429700702260743797202168681386681332646523937389995003295988416156673328223846499685940413722413931368456615965783631326966440581747112508823191325864008264631788491637953351078316903970638440366430010400161358358371464927843947839454617088130668464811575091783789493702407928162215809131986006736019835551646350379138500855666799587210313996746250500458677575040024892020604014589107224380842693279935776006695522696838584482344078626151772848039546008762989277386659704466781974110593161860006779439838361725103320499591633156594162688385771936301823399796573012158061333827806304979876954892620081556041306123303523599831409895631258095118955840444850412317162152641656019741346080060520621179320068027894090493702597202858165323813826104929291376357949730603254340351570624430015971640778165777189722547944862249581385439997283202515314344449735634824614719644273054803144028725387697575281620658802652628840537201185897401414442044975632097598766202853031191118807683263289338180608497699367497636011411030207204562749734716802076698444146553961237733915958989073633751120196819110136290254907207729188156710348324887418110636631672975844762780732606113193478912590004094803831110215789352292515887857343765945450718582812818708761360784209750810461368582391327330235471998573468486590751929576015076678338899081282320445851683614666340824812104606055603829881928354793573582878358362342409911747286389699294398485137675067701215158933049047824907485291044318650346493283480448293699894610965178010174446342218230702634140782002364115950028151597661898524897119557416515842562541167261850420883714669608341998938236381267835661771438636230698208204371673325342012002486568865943795864713894069417827055665733891644058012302271354742693360081380290949950590081241684880019721541202414177274549768942026128453221698763980242146785124021631931031582359355448463842389592959054038899941479008615717957532966722629533890672705050717829840521109364000975571642378708154011264724304151859118008114928209957251133947771822679298007220196580716514585807771409692158600253736231341616680667742926504715096559117998552362381759942684109373943584387864907593196112942188570991701990342694278317412806963816071986168599646118845847764875531771125753430508129272863942028052051566511611097297846250872136925613268455282684895555637639840715874921290629955468580693197896233853104308567309982405613221690114323801045578352528784209253088309272070637449736811681969747926846902595420172733925955958109303365153815355622114403795428075169606532055616865589901272934144528431354009741540810404612819072157603698647342793279513552445833122884631620640232222271299363065853598052667107716684053022351769904206045235962596879733382070472990592649546493473004055879261321689949698737207882968325880636166036903102321461730466957824131145348713895688053997894403407114332118612312486117000632019679945012680159413328854079057726923971856256720420865030199951938894067118965662338890640169512865703708223861809973525418404395161419994115007600246950623868878639455568723780028550376801738988066402739042217934308551496350639038242728148028012783532684284942855674069364532545425530866549535754891981101809017050064171427831684548053265295971317353699478124294662279517435764971444763965097691478800439121705662102349693466218961980443953538155006243001246061356553681883515853221620884495376766525983750916743977144461574589030137964227454727594968951316787682368545770648013749336684588483988647255095508987945067885721685417799280225084559643990216915330959805986709601400111250590243997809665447525613759455906857338680450409104110257762193013921805746913537294932760900155020658880075299940298117542071553659180336069320555457247210907981729301025837321342473113966321651590680602138638465742268360904431846245330688905039656487527719220741931845461779361962226053048254497222382185050228893091650536277047533072888885036662119812512949078066688380404361929386538577565250474208194841207218629672551248742230243415228949056052949515838478781115394312991948627554601522615080213377409172336178424305464248882942644252265769629738450540269715144619817868093641199881237898037233946172039914817391277406783626831929809994143000120294588517816518958619272574063290891091415909034707210837973738803414894214257497503594513204265530966393445422791786502686561267143711726818619967264058565513498790620591483456619533097420597205740271917124482412189560079981903491857578248516278432798639119188807810296372053621338202240244318809714942692111951635806214483049055708231783886684556854609922395424622176416126482401875760918735316649316556094559130497386169911852429323661048225657359202346918135434272175671628750153106630583483403507834522616319910648007155380949484662082405681179577956434002684672494338738560258323009123392581745935773655988057628827603246908273881788890028542677487902880409860491638512921637024769304735339061406565804633378204654450632313753726218349280755610790884257929993324819350808063566420801060614128715236746482128426367409561279909495041078542241492154490872120493309102404250279858816139509162250449778256096299429509683969873170689673884507920871172380636148352146055751995639102828386129689120923553844969314427572703302162303024624845775870889089633657986180479422292837524666497281782221996547562783714298705110725899890916729932403945031827444383819659480740669626035515739682407274018036883844793422098992512466255641150415306847217276744979756813337639052118762020484083452259928122857863547635870815585258646914928246637038204195019934634997310803503778303065112490049865404644060661784571009451340380291833565764797105382913928808850667204700534355439481627823525229447389077483293312532591699471189989544594310337686436891622304495284434027937467663643865507451605865705754082387256058735015624777429177259284909119190813200088052120894189349631328031700168373099639493003891053334827897851471487362688310137288360328568995089478838476202694536069232352126443454708380367363116761097453007924107258491201706601031556109005345651233032505986445374202346258676488136759862242832374248047541427239225527138292303215741749579201122620172289592175237839731561953839275844913328137505962934474152546698788691900538864852514141930350782455340795090096047261147384974636372978292319351036849439619000812597010200302009135583543441568149567377329255909415239107390745206455543273785838770471586457849397835667894125317590480700660817874840446866929207071474517095093952840882298853146021678759731214507504409374233874087926548578501606734919821381864948779833579078135245684258617625164715512389404778796971744030466383920210813626076108163876246739025669582006429429541559734221966635201475664499634427385575106005659380395618201927571978739514937494834757418105132119867602557991993190352363310291104423899459613050492035865177096812495989220589111049839991481344598475803372391097624098461794317188836826245892125112292070182575777003851006753706938441587106549374943416969897202984294506013598592335294896389407942008012077054867106790669226765179318325007468904745151500751048380005068560123404958533816060803377583059823433357827575099619772750228790918525652149889839338795820741656400998109882666250202679660706953768629960152324896084426938859693002149698822289460856887578860257029251186133807671786859650027789048869117244518031683139371480322935557914497176918597196864931672676367052587063291423629690243851321397372321063358467066068302602890158363285213308908626889880868086380062415208737018513154216425654449164280902683914455244664933533866805436809474106763314056220240276157172875181824924694501259450883590619821204356686672521915688073503142144492961566121696514073484973789578800757853265661380567008522854885394325927428418733787811759040316207348735499630923691551785194405737187491893185699730698865997046281391443904932383341283248703519998611017810119747405088533290606237309350445814844394343321914322368167834761768544867957965346206931809325356452728780472675174160522804787530193431929875316431394496726317236561494684994044999490148907956128829869396306236863245361646348776966432876533305393252258175605329365933837480872416114322559022884580131326160179223903463528263791161969157255072977283323463099301265555887087104645704354317380991996613731365171689612062461457138896652715773736861522299506532471357824673580288891911147111287569376204444169795083151247289962273695824710928247956663577593934017326033681860085410415559540107414787720865584793779955785206273843546559003181011843217587050615429154359135088307000056524922530134249413292099585256127356930817308362898767855216146168833848980987788578622201565656480230797586053408671756406277784263330355763483054687638143566126551464064488631518459704142996766304963633384085640986252836487970330301959111982654964265677552129799713778575077714267442846367688946935844873296485171846181777638239862173801975172065173030722458667134004519146476041268095415727775047805349229522582974776725868756896931131334533315598892410350000851386722847520142501600575531930873032933646867338845984080584471783022433116784246828329617436800212614573802808363761183823519451146322416517740003518582948158262662239528478700256167750988399792791071866016241659263692313193357371369781391400092273357960165231108059012558231835736395610811788268813664135075968893287396954050038987886057191071062432847538213732043613632527526645446510534778364917465173749521594398705714030567861461190189660413278503109504897755597694773942884465389946835543168117003617307199266469031496586629127770118666763663971295269406956986369035210717500672802023493168908223309301771585176698957877227460493604376037476393535114116937568535208030631620862325133997140056149233965401761893109182056071556341256518600945370015715689579515747878651096717823988984413487145746797016865364827749504199074161392851430865282425081883714726288268721944334458466988503955242903928494960003992948281654215088599747029407967879344297903594827211637809749472376151457569970102915034746492754922463667137400642020163405552901505093717237037444230863190806954104941898973905069987535475078358406951976569819806634005849505534125774341194868053723834056444701863139308833699549027104103849899529620659909755845125251425387949297371501567526847404786501560787709900119681840808361649714656531807577473805770913526073878971808166768141792465520110578218353546213952682021422828251858121756892792351051318846705329476722573160229546547889577734006297896599765684468238300055961549991220673477434964569513309395565190840317570886209141983248646146997478170724105292841487793102422449172240444052459647119511186150794309365145161450343999860756023104333136659084474829709389933124170932831441757330844961683943055965623639073215303454836225488196286762624512184439621427827117952885062014943846930365781829536847256602190132065967309994170509071725402161477729693124822661583147126358081579675843345225062438545627873100964569918431242453471327587634227257787032299942781401274725630304183764595277526808832811314265906794101826172074339899852325827521420838413601090156115876664676937788549152339362279183941171052037114721022151372144054850774374384141716338166794847312242826376753299462454357454771353252000559038420564728408274260897025021653709977854252895932151801211035761459778208750470970057593206966237023337282455353848274408426799296138659845737456031171863729030570589659268039026533184462547169567245617826202985463120521519769200996786299666901243543490313316465656966794644056197126445941190643466217536909542131921364267430146026922257086185341412548570010896870754556747867615706272724170868629601341836526662869832710481075896866280742559818427860812347124559876915371850918256115907496912402804769158410560157836705032419234095385303017739714338481932437159292153989332161262796268151996963155681809366074023758308069332503582597924440356440944326060925389215627786579620765121978372877831878650414926420425574469382452428306931819337199544963606187351756719567236811083334092492455275494446445689377073595755585341666484420557389616243960629648726764321064150917848800917114371764932143415626792380749736467182312126217974959600653356705548336498544661338559131532051509170682834134791715431292635139585082511019170544010195408971754315410204726087149943546455029413666020200887177551349165619051394910918519352996090654790280645174356721003973052819375805348007635350806194841673476242619275550910961270217890585454701407973527851740672121452636376408785975032157480429220946945116567993754010579086879600514696713558472822466645171849212419392793697779834980092068036603259613098385395320660475935170963082803137718985679676188165647170172829955594386577750092246434449023902833711747448120056298241549494736292233715562890968116313572938678759437488716806843127936205258657959796306333661767438508999404074582589594972974713659818312441081414979197024520720364743225511896570937239595420537821100001440207861181589556002638803257508233803012902708135294693170517326574223810910770601878357230357937454531065865500100805993729209024277643490981056204014350741993779874644368376406211843884348332623245769762522228708934972963794545344249221840717646197638049721416813153831528336324396610054590294103435136484528459387045633919784246388713025924221456136047180570897492127532921677409587413473752968658048040491236761494293071657997441727579185755750204152214854181153128868637337883493754140409272529192546841485382030196509617486439337839424108265389456641978632454706874759802124981832364128048027496690676688076848598449993837458553651029283951020084861096746961098018335685714110215575355903289931233125465978473797410147354075313042193587958408951867634272106502542588865660154647940545021242482641689429540718642784564719126933978954317362917150806244393723666143715857892583242675765678877759772545510189400448766367797998859159866562139852629707623718854198536446600307944315017743599059575658574207782524784116822700166395733542807071289111677144371636382230238251103525158532450508535338916572951287470232453136577263704466654050729304164339168500134778642824331326177350753450097670841701385774353365686215987526927544624955207198692398529186277582223736881818366444322626726281231563018515765506423007101723984022741072336147204906420548754303995637839731443168507835340013854897501736659000031431744181866944609777837977523090212635480400577757142174031674106592324199902037037072904378598299427452718941181594484946661472492410018732897677547397950626090271227290303405616547343956789879618642530016904668714231179615275554519879794515228186787684816949255737700884885326440572503968909917967595905372841188094710788411396599225974587805261912308567079135351939270016936311566882862966023118014256004735925768026453345270012641298800371261333539779018126663170326474114352140734241974750869772895720429805994467244384529698663587557871769288943588221957155180564678284321923339186531315861986198295702225672534955981082041393347736992859255573007932157863625721714787472899396638870603573114008912808485086266939966067125980981052650230302570209666746641071294055616202445550262144146365872555659779949388258875098980120682754605579633475156321693649667414385411746473208216347820063335460379102346923306914000447646408338209778213097749741814105137891342469910076659265397332253926123913809951401158553208327548872435237096808715007379005189804003182279292936508403509657825107240699933727894234368665043017251104475317393840577256449547214063342303601598090454235783452058168690911097784835337086104569130311455989577347571004324475934757955697606800312065627489969843535216244480669475779668464013029735012435918197649556728301283003982125362601501807134160116577222205426568456996740083813247787819732955010690854526016414045712880976835343062371078691979579463425445650864223003166884936346621234166800991140893209712211810445499736640146911196538535727065528043004017644500099014873458267867727215781867964400536144335791270743678845675423006401530739087979487609686627855790898365647657993888336648306269569975669110258736291596704918393801555864070891761895454582178616803867297528593395529123352464572633066103998608023101539264136311458910657369830365783932011493535757898467995837704224902665028543553232927705625507575071163727437379347093790384018469212641659264727592150432754041345475971148370137446905988996149025320538911301347813528064777189525909363362094946359735336850138360906872261599478138568964440426175804976295844896434596774276760879944909990334798109351453229456312561620827265562243406837134899679265309848153296666145530768163749651900733479460669856110334516857585966492647816142459835666729921359043356675156945819937222132796255617716527049098710770506892013114703408360140246941822109212314703425556337866252735866747016506673418903456527091981387584005320502831484783039184568915792184452781389924567405454203299806605508730384283536657986746378345133054331408308705440283049367011952130743363926847039819414528724725034932325254567398657356825252686421094844575076769544809537367647516073517542477154166861597815600120180328442797589688597147080063776961365692107977961311733957062489556632384067082033534516401797891627628824811925613478492866272112165851691497883608515207762468817705755875969288208161874960834418126809761952496608952729250177643904761770944829174645329707758629282071636700235977509669312258407811788146725116356571087966344475913030086069102197006992943767649787362945086404965783189123741275556469327464618055811204807403732285061519917967085114153950149119708947225173835125387861419713791676697006828550933351202295242926646481370316019897505506988567247889344213402946362754791432741293868917775488633307512621092722208908876076293061644486705713069567775290588561178145097743444306433178134515847102664537986495789313342365163643140551832487929839713021372664461513122330020542586540934133364790547122307191671153229072510148502115770694917044396679377426289610834952987785044313448665625172521712548170323367299966018520032053569941110666855571728210830673523483816931966233295189097457393221502728001408931401572677915718392799369208139047679145141594195343887916602078793226944543802773658230238716347976056037330656246192930264921321987296873587249256580770321017025448900686458235781037894545894296842938069971619263904258706928287625301861117269348236658938920330823193868826201350348007515052696419619796293096102684296262769412363701294968711016368522786681150702350953783927680968780948163346359840337712529293179033713842578811342347085844627829598091704754335875468017816956524560898222007114493722101390835076850270254873712147081248346182085183897541814080169203717904329304964394114101535969289110628378850140280928781080296081515982015766310377435479113286661135021040999459173099210687591513498511823078359943930728181765554243613950794441667508228603425718080842161145398873346954199638689140654948427669471979512809442635428781047507980453785818549314026168685479240377337405557189633324136819914473899861955029603716967952318398782561545909905808881077592277697189499206899350392650255263168157363918964597329129738850030653816475372807036743483192761339846180970658848364257671261710774871421391081052171391568207414615865850542660686416881652056785809660408430107867036332829887657156114803284390451180839925242979871899019666296984208838332881550369211384215554773410376912025808253534055587674795045421975112782821666132240337959882971957254034339859992909738505059118802648359772372276897576886773043124485116186468742341850236908688029154217167211820759557565460763070784177013370418984185185600405205497667636425853699088549758289285223320864800467013523061885360422664008880536955280712753005990440173474926315343227160292180136045961487636281385446478353134217153444573953789489165848740433134029393429947971240356483213271447375964169026269495857282200394584438654920928048475600917436948437997789641358073667450826545127107038710307658539349239235527816307410795513619728327985151102209895782750307010081554495027495270127115373886628622465504068725160808699711035347843680700079259202826939557725374157264422835865848455459888295645992125237135103860588574869633261120906849329127961910664113290603836945546411066893715897350761560655668934592652905421583113967277474300317959481366505006773126241612751666607600442049315468546885450056700991196372700166885896532174025939022279263090869836859180431695412842066806728334513776689688751240803107571735206817376572557643156979572454803302715484059078208472072172943899464880545274750301869184522202098450412820000805369429028071924119592523835894612037050332633815826827427010925729666580396626263040486031718794258598776610787210077954135843726171249647414903127337221106138471098214308223516199978039522433930697880784610803924565439463049156691688745115252868811936708924625177939663713871596291172686341022283513066931628511655097004470277450848590198603436624209647064819906031663232027541752968215258950582119963684463118526164545568993315187822021909870761769351578245880862308453255436662507964902727937901474164453496754747314174028127567616395637101557274559901119041041605421219669646482990967635157422786464535141498387921916552262123671079833675185509533900874868598545656251653108271196853876867372189118712733863094709223531616266462792691711394323268192096960315816148197299095010638323354942643498730782031106847332580480776362214719866761239957896565506014045054417431051818075652080980333015083690478665991650761862556857709281239800734087969915907100927572286943320007947833600030107647892366699978856811130272387648068503459385274377521313637586331688684717876900548043847950859630111168233450296211118891611177829439012230615187338328861006149798929788963020104681177215235292743607293377350384065248027329765186274630099468121256962227601680838919504143682312819541620550889373645868083798230235809044054305523203423580252859955665469112677138730949416005527962471537912171980876309594124631445532930263031492274718853213073574627672703265539430855764632356989863018575416206160547391123332146345809791836306664620820242757055096148157928854088322900335323039610705027931828895266669888383790397695750151167446736847133069099172652091664386601650884507634455509935121576317363837763838467114152483692373008942036471643836611533199339023404474879015722966781375586396355795439876295810007468193808792625181695380443627333754370611623384426143063984615473645151960930993000921513240308353741288304497144193416663782153246846979694970602806234788251241825166825086550722071779688910281848744947728264351390945514017772306632259008502139771310496151164871182614043345573991363493880574208295969124925176433615248815469349426890785077904510974475202456586503463709929988339726140827360145152225440563080320794599171533917634228721704508782947941903433196910170235702187103834797179329549911579209233951532046947829472092069369015440684823058091748891138588648750074913121887076327169097770808352525794443544860177519153659705352306273459680502323572189855890534103956008953409875101814433746418553384581625570887649585551692335473020591023363243800545858628950618275250090453396070312705001945697556453840817866711603343966198724439648376897736715977000316303561701880699574036836281313436271936028194019248747035496021853642404370220211173311773741212332155467824782659983985412630909775495967893050333849847549594778750530747856642135528386987760620556138357930569596625426592867663816492052393044572573202814970880209585343857313543375700865157569710303182256968758955964876655056374061495037102238944540260963348063103466141727517442944918033191363869398499479944463530329226213397949916743348113970740175193916572041459036396280738616782949506244706646916407971376497424180254101260843865665248707490796803902523927926870218388352414760201875854017380450526896116961239271416057551067835517247795732721317538110710811232335535518334830870099478587670762565515728298704797935126463360782681301388935003395148754148390081196620977589409565463717177183511502608625137595132777777878034658948673434167450479207186583649836778628633799282210782273921304374314426977883458339042217305232010265633835971096907302541357464095640310257198614250156801145651217558930019184913695579147120181076017869433528402159923633716533321796028999986011722478700623380876627145143824713422375065511579166447926583914620962217796582987402621797213142141852522608354408189861464290186837040192570452124680743826717762055128041084534057356372429359654202180977165135450227402412530500191281299964396962960621965774033513137368727502509638622125094024687800292764612738216512340113195020711194042562517222397504111346241733431905419855739297851245561893044333240530216695695533047509161301064189421230233227072176277772520446109805961998375832654981715425264593272882858087933062026398757408009605599795009637899478045242332656787770890206409099838168496184063625316344942388095777851271439978605742453138198540914735881748690588468858624297822879582938381718635363881456054604962260060265411853602827208122310767786283776519047919929582176697775170486489701736799203715711378751223738572267063256097941047633967635487895221940944855950439297004478753725095657037895582431281024104114942769449183568588151152703784534899688921345666365420983682316862693010128528987705160063522988142110378430432361003487751315481703786483615691050753017407171768815610264857450834627952786292012634638142455934040045683397818678881246059028897407271997710288108307361680526384068257322783841115710235868289469780061542295912149915000226493328169883299350920351369414925879500840630730179405911908658112829528756341864705634402677290896215934982948725063667390161968715209328654633758172062091466986505105219992455694417758411598768551138643874498878955067457837252205225040890018587082090874736907202926644524118276983341232943551387133085774805372026595861353451152735985099829499277833266897867089888507848314712249096379564394589567746188432603874583478716704857309677027326590082420988405776670610962894114682586195751002903987068949595208903746442444139716781376012146566765354499370037896873629472128268447183444477016589437252667821268231496966063348510338558561486104474323172024638426374131736341896093499073144171300464165913407349738536008434440822021319579467135132295978726686122349738442628827140550521495796306500689135196314072746449753020991970485415421538297843539935763418210649023321592222107038069334614347647376244846340264155243763095512307241433844674238383103198670346674892297986047566038092546426995534948209021128511210614464196709576943623265103461367259057383782647493783688530137370099762520522616257550856087862624630586183413884996822113842990363897295809072425679859918508991326587387738271675466911574216218900847013621578611750721390702009850512439360594237531199462767869131057653224042328574789457846914277146723207457297006294721895666320223903543814624178745186135609378765081255023923800244583136512595829460753104319869716560904429826329663925486139172368452283523989002869427550319594790849517256563009797121211813792311242976583218736489865596208379035580601202624669661919994372557564683940274623007128842207174694131669564878667185565200283750745022738291289920787816737996595121749370368409020417180929779269033007726309294685436202527829207307423037215547247145023083922625638962472394195342634981584145624215661799358532837338503723436807851977408068181400696771003039829132568656689782531944123170290157277657420244440419362164003881858421736930709734426112364529093401222236544554803262505280885461213975554725591887606025630614794087082024620063931680692942541818356174308647947381817964635366290585381412092928795588498710211969237418332156696677652757745753882524418768958471642667809995569005221086708571304411399293814419458961405570022805562780038334358767674339942462177024811365442331318730696170107586694498861634805299609149274587913473835774644306159243082242889459058135774497747252281332527867412341111594940471344856716133267993122450722688402514043006145062369330534811914988113300890036047706490300894041085095241339208388691650997433564693550725478555668412513552258039038050638800382422367345341525099385478009681460070557925262811760929976106593954356644497220790183496137698143093031798300569061273532095450221955237107145074318283882924756157935891620181752458619499401051412362074983035891573036787990775227985634027244335877232131258647811594020310977782401594777968494782303736386277126573112597556730963761531316896408782267805303961410990744206078084843503029129371367669628970623762039566169504429562339654312030610974078060966908016981115631218251308686596017021420462845150734297827873872079073610326207290998559828775545749058953345149136969633179489548148539339024173760600797687907230346313234992189156657448983960776030133317744415916387135119235431159201375635028527272853926934325352749983524363746301068314330797180893888189657295192740663625511279564304503489126793330569713214723267298017345768761632763167176786500466416977946911994327628501710365084486956188132029528854983636742546409325041573145872602717548624468475423354992559233232562676051237270377145687354683502672283335177291225822203300528255700341169050208687056845739971679927978446309289706248154153943719161503279135341421569344472994091946021007953885887681284275776140434615256738406836245661485693525352215110031038339238286889458269696116032526409819765005964046547242932127091617917739238355743673277178675181829989401443573213225058917349934270540006836022717536579275344336302939537910416475491194834946048666667764999919444730449304585957715203305743435595068326023945671747723476624556936552173502503493671536502763119355669467067064438275345004840633302425246759689854428655670853842772315191901094594711129257413306911942038309362260985420957611387823664105112235883938180593975170146109752701583007559283443291920677041184554053597258020547483520019899449637938189054695203925187887563844479473892716915540824017657405399552157949842465252005497509930756395537441154118710851041719908456855064915904965125332340217212053062673292991128596545574199081838890061597467223210760482857893897510946319201373287181126815634683048974365062223905560776211582224413188076744421518975728485242964249897136946014272892654015064958125915739440641003583989276475506074900097559064994007799202401908132050872125436520541088694247366950647056607126964437429772993204186844752869323196705717718598896971780373606196367101861392496658762307722645438308272806343156437340402960778822982373646619940274025314388044476490521486258053138847686128781751005205233022615231621734976955292830811451034764982065645104743103087470380396611048504602263415979647360803975134936171606678623915596336504853569726463000758529901125242026753416481704181435071350345950804037043474820167413717958322533171022072584006252591200903065653190086067957215526395035279400955101491162946307212284970898109618912448662599175351910302322223360443982459377556181320008530297437003438777946304535396015376378726618530127082295237867494936200478931319736415698061712091642705827515726430804120881544759382402643859398574600916329839198060612342834631208952681514230267701843519613019329237174359028057949055519920405781790187936582828601509573993333662654357377303710771527638278951440350459088960997765921712566018475205622698794592657058509508145005650935818677890470629149640680893765584868861540978561009221744622203565941958032944199245065601006703198658402805918971467414390492940645791074853761990248508671477864035331940420095019233274139420906763090031562193784146098792997385011562410017164231475211654023756908708859804086856081352949065883782425352082910703498902049605868101402599076430152900131047614779536295824787305417506023370835041964063593203130528999122538283968923828627802686229669583240783947195642965828101850531348298739915288145823849169201394315340801748862126383211034659569019346194393884396582907669226443973958799283994676217271765825018673808318742123129324159325410213905838666050517397022243473992411656188494603333347703261277994913701924054362819039817740591118907385637599839867380409991808398238941496996187056739401360164642112522487488865378406742158279096553264550427855611191500662407925915891122749447107062058300153012971984447389674028486946979554488742868183613781633207384488115020544931915617482179522780602597909665531149550322933534187706744772032905624643611690946956740409509447955055210923708893196384012275892415612687848449469228354726027105048755132158098298480732793360461582425078009970497397885396691051252847893875536452020656565320220397610422646856942674644182991298649641912869232324502989907008143207503697274994029610901248207601175196733415570810138659897447759044833085742750623414981231927195949228444925223215715690488622873206219935210942773158233806785246501635039151275456546176884831715566534398962131460215310244411079574824571828120717404252622006882317548187951718659160644146504723873740283550707338095278800114151860169210570665814811150527567816477159608392557175937750518955527410039744408345871577053428169146708997896593685523965233564079254654194165070613454111383740570243335930562967646153431972095236699410029884949569656931018333432107028039064372093196394468393597299068554268238181660979766885583178010136389067909166461462360631285845874248552942171168985134389963304078910193182053414524850007101336464846229375806750582962650838227441778860555096685362862005795574391852557430900484149533732132527460949743738743948311866086755873762977418890101852334656786718409176278252945970591898609132730610617144561141962594001850631158844714355333565736493219550286909538182010699843297240500579889900547367389402150736242535361616318091748098025209495086138705879647296004055640274899055437073791364943439147121425281036406028365370077639292046169277231410854826794667789740617031733688450735752579490647349054628477764417856900574868993965610362677442545781002148361697737537975528273687834125837458544582446641291866507665368665983967354092270674930739486549985972126565682993701881873283144033310623411364558192790893703960308626363436583111489498226434166054063937230686171636824368532832064969526482736375098479947468936949065897207254059331494903074095298551430409638051089538479362029375952475730324225485613264421487320861967452459597121117820688228181068903837976703630180956445084959421936046558544093879666492948200110034151178851630567338489835185507358320628289388298048612267292198140760332260266563147894774654998446816139306264246758332525277001532929521234916419216619894971967331451377956771223843209949548697902075311286379739242057576587267306362239388622983142806699284087982229827814753504078426399347770433085041287985861142367760182724437055890820646274451560551758946955179772938739353273887474812610628118918166908002797638563481012787115219198207849023437697217634091421284605717448555596475624872008902752690558799403132499676823132650615002002165281097851084651950134982386779079482990149796839026705607306370849470015747340439006489114273764151525561631838464476222998107355401401822555417154322154704030619685241788210481453508115677143406005230325478926510770917359820529537699037977542918148982230011635639555324665014563055259177677266673101648088541074744322531645783357600617212156952207908766609086918994765938710629832666585726216753891307119277056942992160320999944620455584342955781938070775484695701181936863926463460299042658052317027310960526763819015817308113459890413412413762346706135258405926523319416833177228544224582780860314499958909781167149808906268193675366431815150937094936689544572762074524095311707842847979783108263433535476650523150949474242092988117458640411567766861121583757239040297565113976812218306436183032773982177876669284467954091605924086263139422301545152069521124072110706083928346627374243625643971853578479310957278223248278625474313102075726655220986688595288812336251493862072503279795509100072312168498580516046459041613551747787270728462309568299858500473808081242891812856133695177979756392007907135583434849753898954331946259213611706052983302605186016956174061672074293644922956546137276293072899916793223662225689831524040339073965941072155691701240010478205578779241378016563774586142458661668045722264360175810510213079919503857614726253725422091416471782586668931821956446111117612104541042629631788068903980191296408182487832649393088103389843382578703440702407580332777380098783506334096651784776318553432071074758880307604420672359366318972307427507635803252734444842205244809087033472867078978128878942472026503513492474095127600347455985505345246199738215014378695391841791116018487146548872774834142065790585698251372395782115896387016608981449819581744278006908145304849075326004602352355017672037874139990271703542597293795381803073039794394766583500403734984102382833334711290108933307023046880943452515378542789143379375779961890600735561290233949020271179138297029922018383046030929319014623004771909652187022315665691000393312005715970823016557765490478588993333835271636032840522870860012335724715914971877997740640325046448960646600445631478469785931599555196558181377835558568647145069292335564701501337141452515308821133109761293051001149921381196399038186068824373695142627720230986574333222709861288889380334087845185761293318920242141258876272205391952836971882921675766237924450115842020299883815709876357136118856642259662127778082170509443008263903938938267569565270254246311539323120714299627455722463599165383415930750900092819996609175224399656779003091617956266973827407243639213587112248447972252891587170520924691175961148662666633398500428119491630590755866847428328988987386214072744757176435277390123208361895508729415872762908501973375556241037744034280879982684894608531689008170274625417293547046612527775288757856285188818946383960459271789641223989106182037318695519962081098980126212943088933258444634392036912483911144691330411194288666308457675810884538857580911604365149544238706932510963587977373326687017079668818772201037556032379245132152880968773444793804978565348969756191482598677196337945426707045843422588771850641015044153910662066034510525797858922151674327996118914806486992620003233618148346626758295775987140537269511484362334464302140901811628542332931258643758507502045447436318517601438945864910824138203741952578341619377903459280026700195561701787883289141140316541268060501224059855117537633676379102151871253532168059571360576920804683148361791986966717075020667043335411663325853133287172950584570887532081713705160175676855750578783980776436711916062481059098290847322354611896234628750968629024843898202404080337929551079685150101009596112077763094218270347381405186858943754984868082770006232653268528365946336529663333415420660382346684980253201508370030004096197655032881327781243003125670712742180318106480348825305042841725672820276191023632639663326847285972862022711566627028097176524652953337016434943109472877109174915734446573506364615117542001003587850258543010917780585148537591411106502686275900883815430639850936311897769957285386987667019881622889245800917361273019383726435501527166644697822202141788287455057461626572991819316805700743578477343249624020509804522430354243172281328675323565432720931506779905887421223159207520397927582942042880162941454307381143036883777172756886242080126755527275770929218091355156827141694280652524171938782628149706952390312446011498364270200081211942469775065308155807202491842120836830028245805411202415836013971730106100931043330272523310602798853230942416165868323264734476876120366248257190781255102336621614387479125610122334410960152281438285824582024316320863161047499056435219560282771946232139122963550869975893742015015950750024842906529399094128941738589881903254191563073285414207779340756029307173947700535802674788120374957487572854814889142376344355784961325426676655237088409090414485832628651813544144326942640830538549683263233570719593299697927517513790996763238691878857073975719433954980256379478816246251790476002094685822950728296645109126891274428728484515753188901032701437619690225023444029276529856828920332171373430352136920147869923374741523958412714733589679083517398158252688029301718940620758715699257591300152431156451361664846817006180955479119717073148447913573837058167627902456305402010165307456718136413249527579798442659784954673986845709739090294919210217195816028071226558724149802259338104041677303451997842360393511194848253811719964038982467171831977215525432980135135143658935885102792745201286856436973615387242325097497787339107514592152497791238883054160360869521150145849707631011377959840492694027688133080226670678410668558613335329966621947363765197423119844368200288197818016925957522105456104400848823265629546538140669805058295200664808100000274799176165915881829764960274801689188883966190952197667200078021473290231854419433467135818854301537674653195758421556617648836932922237689854483403115448214693513568508941016337828433666871634055620472633116001928717950593726005845565129144902573115760472102402884585395381421633800798083863873432098396032874349414350522095223353184536213188466252839048859398003947768474112927999755464365402435523820735828213664376935845534504175571253383321590909534562065757872624237316075739988984904884377636009895947066172881457944436027625436603186689375102976691924410656940364336925219744435102550064150283140394974127201982569503189314398619208749527524577730292197630718925220549693451505802501484090438043806769802901247377455093868223321857975834115785587582478110211935263439097252000443663330323838567583825782178934431839559942192361424524388123346299448792642571227449162620671695151080420606447576087368423774125815397254810922688185907951092832166924372083674318464800259732560510779118859929204674565938745202402757826727878134239285665889217102265994442916699795879366409615818258555722100485822670884192503817486563569541200020793433134563138519170707176205996181029927999916861408568653851407434740798719627932763078875248055444012722468750883733715200473920138600589139664383600921159276117921792923381971117209053052727568351008041777146880226079646126025601327490127590992271863212051845608778205313729764865224371662969724392645275500191649747706640617806791244363121621972493579258652431458942965155333980301616991392884938301042807920722614006727442551064457318385129687550590146766062110184877407717706769796000929283452337643195815852123528960006178260756430719059029257104344010887030849181402805093183884429484189818965835538661354887852901521636685093188879359354497350029980549892517871499042222868492207314280789129466100298885509688346844084858593836630723145619166088430074923466714784311432166119078291760443281533420982101167566227735241016541832221022348087824333695589625064061102695471151813542399173348362928041222061062782478390188619299749912136163144190766938648106175467411601624282064507287782243097930717039615502613780548333757734887266979598711510966801125545026659869155439391108211991935168116437634448798482624914884141289114075251780547390216150420095308461545739254692142394943498236258747578067627031063914468073295468114016249704415448222312067180728401635778298107891096713539336071836283878422560082201009150694085627683502032329806355267130174521406653281596803939546050853793448091326330627925602646639579357646490733430630333071714084185622611491293589175391587021796153668570659278660598957834763157358882063206289196936700040439267572472224552927403187936160614080340769557015102799743754551733774830093424235348208486982274415538550199072032657755894658225665405305458242897422532888810611858468392970753850743465005752620729547688464880647741043225445851830911446111571465338846887040550600706725903673430481421319312226196047664780658645937759716440593991634760593097441453084343442025829598180500377167302072904330675218425721359316304738903867245862157277938591451744817100008464576837126579685960134860023116191417463342594285002484963707494758763903975894574185950329936817672731813965720662034736358970982370406668379964614457465300876917870034485733322534220389235574355707285830088925663983044705474156860864549519599765789321158409844255140949969857339646734193931634136002270905793054394011679103206562200035915380395021200063330614153303060208143743449687340078475992772788461907287066269865946691801282531372316084629418245774625227382030376836876047473428576618851478626706149179572311008992401316143773236179283493591502665596691118407276260629380805818937040220214411402062761656988461918660485812628727048385901620573791828741074459516539735372552248643412380895914726470093839170902375322688084252480608218410974499111139395890979282861953159059299187069948359147992255034237081746296241295224633354086061314800436588631704537027912853948492484870080938403509597489984863538881239008525622871608073764057151056946829097835800079761319674503131222938146583055043972305026180159599364013914958466182459631838268657056939766453726378939950392673582698970239845382923790798704846575166191431012003137032076347982579060779553247982503614375432794177258760022714733961995060981941740705151562655212861263348693468096274444683376657386937082472014644195299896398880197653657066295225852464751031826879308579350719639459053462728290897547921202792382622084788979176890043789574641439257995795020392122636441583620555310454754402471636618027156511752709872397260937206940048243084581305796204359494150568096949024720581758047836241075427150741232425965598939903294624473158146437633766018547484461912629634178289145314247065673837689317393963958160814018603551903022069909966744957017253435075413689612047158210978201097882778920641529160101727528744879455584596516301371207162607518159291345730852691203842926083318747526162182788221135930243184316807807494161279633968226723514266303657537770658940922447156431531195795617031579300931297757009604662200404494526092191838367191300908673964279614066964144898406137811176162995884491960898705096816159951517551665217707432281411799420996714788629900930943313206979691466020860373230528287739136757676488527862856329873381319607835754703179988459280274418727231970547098066077080649469164086352051264230747420637895032935546368010489586567884759805152020213318735225970368752928591271533489119675414949730910598080505186257428480584369284066552462551700198797223499151578218881245198577302440048863465742570958045158633302028189430720068841766110035105436411759887862653655788128458670295200977378111832283250171418791481731636540849055635544398149809182312879636168826380964562218616212086803806130271929906249716373231496293871151137396173278153523540487778150119900725269524398493678564564074469749550174966124618742216484277846843022823189835120525947131927944645084611865865455771717726133592881590390692289511039008462742119162244537591519464469010847995004083506891321667554241665183033555231943037170679920021654774811571845100101560901593737322948831904535963606554149282232443113289938935277524007741431707756876582932930674097248185081772303896547539641426286425309192559952560382117953241121496427116401944777710682069236138840113881538280643036428709629681127245861039622812609166800621414336226637182486521586010373609984942281288563154916382360258580436314271700205159222729047577454855344285101165047650054588649634770531593367612202461117007272659182536473983272544342076066845311780955965187815159413478788213498731845853907558699290393112785288795190264925414925648189886715206066528243431577012660386043384119389581137100445309557676460900136408638819489896291118301470251154145486515434526055165802618973664770272995888009138670777231645848361766849010041728410232559988943185007682165996188930391288513412376292834416894074856966694942439437375901969901441294405472649425513369491598297646278427605427079471139442547402011594303172203329635154028981730841001671564934149989442299820674381624575320169690073656112050572779690847879195650124231442105583148004727102870773439150296926795294928510697263032073504621583111133514418251360517544979718644788244854064302978287891256801270108946979421522418809745594843567077270217373395501969677271121483413947757541537727443313656557828468389411916788977677235778589919015643304161379290040548213402200646998418588136696656159898110138491874174211730056002245999360122563035649245451483903156402610123870557164445251439961839402268419721115026116601350348108306478754092944169304583478415573819282480282096798950629352369139749144576495293396494470719287017615092537825629827622818215787146916277121914889095986294582385991319155362983060177581501491201258126040719205188027492647959736204848443648990111815321614896628059943042458463380965960133808883683172035155295360620104756842807569148688094537543924265223783237550734026647474963168033544803708163640049997668733379912159013198352077100560412278834977311918181935402703781329403356761805280958773311386939696823450656942034897799347751555789093641661050513657768552959906502020402575497119387510655723879483988082756512166643209392719818768160388544041588264098957804375523927650748582878730652666321821590284408724500360293860574653857688586263399028901195526887300489646992516841983760640244047052286016704456489902394761448550343871747828793404973301508946001108666877450126280838665558028882587977768307391740726495175311566608431250129643757918116189693649793162716875750254003794365752066259908212970511951378967821287593708479603443415595355780150409913750551653616749616813279208214892430058527501643912683331853363527318421533929777953231858084695746110201509771087194307673434586424941149268548462173209543913394883571504353380213372071860846221439757810487409357495311612168169114697702045188646094194693709322518318476133971889356904551513363527301693154655232274058335291889188451466256031348906295937436401042221214638487897724407207075529707813015699081951111970535622127207345030207344057575847223120778843755894417969952198380703968952912195010987646339656924208923172244964882598986659171764909534491618228458339020594741063982400354131160767551324705485227736402859136678792343442293884569088748368051972146122427672477978806154831019049388927387133430598584626865489667797268483898095739853803380405258212905508515946717911857721077168510279042595043805397399705768712564034935424187521886886375432300769400364441985679165743009711449356113500410824233573919659588623094973597562698666872994680024783544002029404624256177781349244499322712043029955484101485688831934234498907828021105737005857912639653915462820043239952942005966946216551280327228899763788883008369386348826382478493915789040526886500442290147850009183951573477517046381728584803351550599138546830890742473966741471513202045486057237382232299505051283123515270978503377787636932423778589367768123815900373484308926930820342710625129407963297363020145454853879122450997756101990042567069536886154816994952560512203313702442478482273313808417910837483140786905981487179414901357578316766455280559899496186526204732951564148335594905704408749083460878363243006191603557846255957563750827443422946480115082143276274100314248512283384690922250349536456508416782556999657283849045976240985043318934499455673772974282169617080811865018792502063281383657025656577861239335854126380917787105455603333307829199318878716133154156333393837883250403534990486362307091045706071998365366070384930075846546069383258156400236261910950334355963815892851069353961416750397791631962887640924392350317043326355481390280317691825738972677181039819527499606160256706002385622745764841200135989937252698927132551581266300248985135520600830994318108682816120196443894621605000743332535757455830281232854482341647918208374377858801189862054385226891103823462271182324820577528974151904126633211097620920373077351826894083029389949245405794882903586754070938472649735347503690976818635153646820138525614431433772454717648363130884730940202605878188084500401267037569435067472713906553078657066401883508648806252732544782528876561539815744044844106851416551080558019976510448009445347144217331135711651341964908940692355882429926308377169644009203541368543792808442014296950446176475259039988634534442469692519541270730070514499024976765634886804396685196391413997448756843434713683467684405191628302400411300444463543904105050551088502982716308576980991021240051192505245400533996852921477011645488697170458489815728942231323809045241271828309703146439947409610886060046468371658600727223580545693680462057453364477309743017012414680899795738684692728722362225906862633988353336202752206881499261206230065171278595346629455825946643772481626755372924200317982948639187210247564879853694005010496321607465292483677332274960807481149738998687140053068222538494191393630921407141704855748365963430378812848854939160982790730873475635159596348281665217783384259229703425853805669542764097304355298687060744787872539281483330988156299723255475842831332758625248097830126012737001149034560385808919063218019116598721737140369508389707305340294512094886159650544965984421340624917514318356409115089633030283963762945950436585599055406093491662775253710451684972573907007860385172598087466126585219420374885633034172504785540747839255470609869088463825233691038797254371366095294157312398192362812887167762964489274223165219557826616988560411913157502421058963757077942821681208456422491701054120395295712019520432157791271396473233747777719456885372502684513340865836242007219687965664574076234638818148368921833672304218622584740038823812939390664632165032737160770254712319058523233683300830087237149479584905112647754425135077202372067383207596302024726599851674265867704984275186263330877202041193178483182843218944703593421447955038703314134961308516288358370774328105264887282623491349366183478658550890030403680486351367730627900771743202408773956682155638316901009295402760640247407143919873291404364716138355183364531611971812696053368907340160383894489947337206890849406330678630169662635109835730718374986758847071614187686761742427722035325802680748804962595606482846193352473924234332022145900674684294637746953789557155535727188908328459320742691328591922918498602298128228028115612506591409522576389420541056942275863826575850024073441710323931649089062142304531901676923498734372066630902328630501642446431676433284911713718114932694543960593323236131622385884998846161863204281384142510108606973349047120705036650493108820414989967897875151838940715297161401741799773133267639300110064042089122096239191722762752013897492643485442928511327076315782572381533959098845030269609931799751229081525018556334822563057510778816596540741782926930883698782736973861244356304168635284869296071074871476557114583219270398138425771545910479815917827862702323618915182636431595516585808281895988476271372308478868844583044906274136863311911644098763795149989775989375443757016246999623266938093059719834472549386704823166311704930646185865356815350082083315829192616699671782904449236786458910472710395871626222820458447090766359143206178734537369363744758577192660702771358904655464170081321494893823980285353504360524764650369917514437692733029107702038119930436739125467823655710341994716475026024131244246638254617466891900242715516919038903025106413824368904213440251020773287667022933819651048435127241791559241957845618771560920445488491050758815910601166368800882612300403195097531657683031729664453815524564913476251641708654635397902866902872426203401862728424415622370157969525759976837116994300717583190462558952619754723448917973502767828477895006432768456340725827871590112454299038108184160772608091415325011468035573299776480186707924417492553911142493358393571719041323953522609738879664752446563801369351624800716561413275598959843636922631221888097705020945230334277638357174317887635885628057446164478971966093039574978994060206752716509263759592436996899739414380525530596633081939853313524931349570132157001163845139436095065876315771267925154841389166530026851786711781087659482674505262450862688866871637163239595183077516535696612798770339000581679194937306140305916361287816130900703207001506998929885439135118487239848897454719542367260077731186765583849585286484083870334782721531721437981515141281137389818943328496871326160437131785529406551597921843780683730735917615097250058601668815280729440411586941217391470179541117981008240359165857081912230615129171317187548576047075808892442210983104739848694440698553203252484122667077920325785952767927224430733053944910454612364113108325554894698929129201613877520085602796940708765040781309293345142970580170132134658310200357434897075366624514544509941012798691496751324903210958632697196631605449975802314459775784032010244743899259048302940761305779613662315563921437399925057232424877196276676394317978231467957658471921599365963487548545882900208591916437154187376875527090396317511549131898868248135422938927022043836507579898503521589421847131593164849035748387296131971482902137067805376975392977642476863224592043091472684156244840521672748492943799143765367706308232193622928138183236782600786776858618763207204749379536315132516278268903612880697303455181715018013034663854566908433427253567452976661317863687271235456031364870778019991012213857103620942961611296823591721942999833622754508572828855329885474248031898060380400777750812024489497267722049837964756397874382880258290868852974660688578989900148247029708075560299505974825476126442445575439596449777748652327206714123088803895183825974602853387968132310226978468356193973934814034637959085189798409609840842971576296868567341017461204717521936918988385916059841205138593889316245990582697945835305887135834690356723062184042162292585152206116143542246258066159609444711466726431253598564251314976837580695657443027810831326179441740153671107898367742446773346858662144057072061236366007795337341804924072033375189369759924454815233318152147794793006419085545097514356768788706792256466475465507633818626209135560289182091446264389668633936893106357362701472698387527871760967633411796962502774055257795317023036570433731163265550103550067346594659421805123494820278628604458768705434374129521332906145651122170260002160708227294371215109422329295114982527803203253132621600457375800733907612056954988251696499242791988562689007817524899128601185869033480749183283753314165124616725633584467788869461997813990993178098045388438334724474114961861517576765342553521242044331430647875862613340658587467309015548095684914827268432827076411984453689371891505992504656749621929372552986031369750722050323039917031521458919237666201652995984040821607477163414541282040439443412111638873066768780046199538425591503213774001646715986741673354987175060966491853506603164827095929030531816139946141278862632071506014736559629610724751984856233653138534230246270339177298191976952023072846229656172102179860290722377613107599265264301359757063322196001446885727850878490469149614240366511000479980511377212568398249959228566357102246080299368735534300865103971755542403644172399081324272884914019389454933749027848122381626805321140800527176450303226835292776067947536715349859442275776456099504339327600601996020557991051086166894282917641206659604273476846207162615599985641894676614856337763075867827871222065812375598822739079663549155648932961962216240273109868306440460130736870135268724984602017991040588105122557575325675835644923695774893009804590657656014862801704455949596765103866934203981718796455707755943650196181785756137098272816392824757519752485540495058748607742652468574185354368671527461945329596524857078007404968218503301699375528879665924732238745507482941126681351328623238886926592954495708179084581299720874232021425308401766532403570880999297727831877261932905014531423679642707311961550366487302953435923825989809248845121589329191513134052860826347989701846837556771947545012062070280019158046794009552166357576918608779778258836786787659311781154368374817070406841966547629329895939147709941826748698695564260255503958298863456287026034818809086216607553686609613999043587578259532495415690149035651160173859855813663592420471817923888356826816809851261940237909717254909975548201078321109153091035642782422775837213851484776558335693919802561786600503529612356929939535790951145371769719777152017064708050249430095937538157165153183136395406454462999939929474858010357553374699487403253701709399069340450181850213201034387534557057110162977860604289089987147738230052162217090240433347642213417588351784668906627615404017938027404366400091737895272407665604667791782040812430557015174831969489027849396458824301566203768244066044029919534552302084909197393636590252590415442198785227803028450199231094775395608657860107452930156086214935587343125411281772903868009206439616176714849017261901391932657294570957717448526977496658963838611640065126233177384603832640018765813913258249024110732437396136788665671301798397675216556737150488329867293759290598212024107363657030001905576264201892060534847190316171743398506121823131593502160554710635028580859306392233060988597145745331812823871004747418855070150197144736515214161105332482645043708245332360595729941345583321708861879374994821046342799779845172971880664616936467230122649824187574709233820759812726960673914663450403373510375769906035973105892856060361649983932581457417378956100856779725575113425843774524623705365437446804656706834769347536272794425034246454787113230135668183077738282369306758121411275784425549513951538132114019685513462177570077349280101009048975757234396173606256527366649480940757447850091655543666461310695920904178647401850137422435760724258902799573899343279296886395867985961493491915805778807715059406619741120556503553326816420641765376193604609387346012013419541276783221471543950934939048748465411168365249839537136252048128448801607865567394289220633854769386873183624286303601684976240756474022584567397027084850856390801837806346288793641988641222557414016478737478658269556142159004914496326194794296111993512553147307545932250352169626631687292896508198130225844813082085412857869153695151842461317532930378503608894648014007204315805240824802091386848355212635791421769017852491572197524436505562988446433690806347021931677503161495937198537899784936801791342981279548313126563778391228415824614813279534718032807546800549165598618698683848097276211052840443796170269128942040198349320793426235086377980014965669617981767886200808383292230589356512013234801028603332688380099113156969768726636902796527409718231152667307120974096587580362886524287957513556930046522804601993951038591997024096239161002527070183121452142455647842653320791298766757340122934868162636071890936431107664301744335021219526284469312548719385410227942552542672032002879189931979391662394918786492688150678542108702968509067296885037365986935797139352147989558901175451878384440661780286430102489312537612897879247783303292669838077533475818372691169898264286319031434615614063381614393400531400539106349150081161724216348790341311889086302609219815858090214432610651181200271864415680507928294337640775741936296973377630521223402687043716270027288157550263036280409034638778996868752973750607045751403864226966162907386676293447930618715794204923587835140536444631046249142858635151911762910587819963875291063114516163691196397941140535426248167293459567616720361035467053336729336690024661055361118184798944501766893102252306059224504034882879993418911857929085003501902387821437397429741283274927326875433023049596269629438299955062458333579147154807932811553806465524487170741466474169215421178614125602562377150475902046330548797414007996388792724725646139634362404802879681442546949856663518377649115897873987874384119562685909389349500618422634877934329199854376657141627422684177566530315159828022090227402740993326536801776843390083317930599030790777976702768236954768417259028760933375365220191404727664622924439951245712498121858976408381779641462410122106968916106798163478456522070855822557323942994714253314688131923576424463753120606394671951244572229377738913019137372235356127894547967382357576276761817897455611926738063122465061748913778794671873655623712132985831792273210956300934862654878690448176606630559003181904548280537279346424452210273751862150810970809878494385818802706501432931358719044011487797881875563058020716729237074325066762451110295224382214099840746078157351907676128042842944373574604542775114742139529775370728034696586884233918275733613243483872867233360189666374122966973732766459703670510676878668562340596359356001729843846773378616907303800277812163235346091939732358090937924274657304479127023728075164413616473305252380728539389550513350101530945449552951531204186102708114433639380088806567995371065281130016091142310770285901000827752113519514279938875882000016651425327190796378721522355014519848994185188167202719776023413989067768797382051897736627234219227111759438439426486025329924602893688110284582487894132696099286872650135487460865865061837251203078984001801584519349643880381751085926472599445977681998522045278367895866271321393322034478527431434316716814065062122047900921627253606202797985910798055249602052388265700623975450900397222757049604597852709571144890899198862530754760844435958995026887996811976626348346355941051900734978439695955676408818377475352760688449141630299034757111924889531618090073226655948992598065568859436856071163529910701201508827154934909466626792814798951136140166594541487236203723370749336003045453383480911654284678623107495464370518217256164760501477090449246401662883626701612694236035260434402418698111076225417248335433210318698406575503657169893307783560335805444744146754355328093732467627092164866497538622364813849228967224708591415140634665493272868123964208542096931116408140979768675493551678716499128836357704050586142662013584010253093055942772439229371280122069730945808428308454521221589286394929886561665805982404536067288701608517439069107419385985265478345049504555782581011246915055309320146196999613062344270017838228888884968977190580924032794130739066198227302552864029836798118523403528446075750641606041893680644607604029814796225255511975098486783795569644193002106500430428722737629255863548794239168801713574982620005595454175806219752943819732837327910530177608184313685578821728433744801206648922302080752531107608276985286346503158704845920516574074469846468260121272054756618917217559668099032722604312470778703089846733292443047690974757812091187147836977124612666918496611289185383689295217802474987635028492997169834476209430472078807153804390526751919995321003173497410191090337197598860119092717213144703488819951215118816474102946064078063941640601250100467238739765422588851332458279511775178869803490114463307560016409265132779266425299264149734156033277168745378692405383866853212280885495774765650462785523294510180736318967467976984836981901002649492791504177988258057009464258574696073839921355815189405674301376345124280105785899181317323927512445259644423318740089777156444732456395441749695826983704761921186617297928871034635972160531139117584423298676918689962099547479982701367676090023297059583834560235109043589807255495229747732671220022560985662800883349048166710723265536218034013452843639084676832300435901290723457481529445571949017260456773938215397283556741123786155856101905713012921348119330925419691759648885690172091949210119012953279331302790988034693290351837116521557995264384765798356319728884760373113871338353589955457339819749167101808553237958448242302384651193083866843653870628896757142242764755917507043789331942498867525248869350350708766139347336024580174818232440776094087186581065800899360815813581527462696807213981194676220201278298751767149960928438964535640426558256326383317879846959822132667332219441995790551821141733496428961865040478738105102464818069838502442922300822394620523022772308806618122790649491358828472886157667066699097712802606572481725721193863059780186092858579625863786438034914421398554164538277361642434229032403913872345264537923601270963061172400077883804384503875589037231188325524457785303210348897541318591447647735861671232362425276813373272748882163877091725935508174159008696108091726315104292777801043696041585730836451996636528331246223169018364052405063302285919160971013583764391255621243013115449458693461960739700582392785549823253415143302787710098990456140907551590112917848509185351086360900685754013508349143304193342446140110558267289983131792467018569427085392204442392646416767226743213496306445223538788218026418336667522462356074959126618871929828429551758129744622608531075524494039602169141612909120405922826432255245543291210425589762653441181418533527873326963621038617507467297870939254720794451417949322186826513487677728432642970819489572838812041917162724077805144014299166837327773512797907339843899967290634902163269902876643522424629141089702377208475393454389753954555712444723354240994246683196449310097004382741801025418303206944679771183195261509660722352319528898860748979246277494125403624574800903017352657333308036043284200959580839279068174171953117574308105138974994192190974935660715431393111928056758554067230339903600644577424975571147018975393618249474027867931023547132397440203193138524886622037798062793337307260890656890900478755489229188963161572555057319018569760527896915128813465568536545424902509635810815536601146454512032434883803892093906544603416006020087373850185338696334103441740164508999343914644257672490309698834191052536132846449262315071313144258949196526555225915472365526706796412728571468729395155038234391083338277624882686293939370148170136995718582278225843767437235040232359571402894660474944330157962966559529789565571978791879551310171150761474616336731745775086922399869563913102875173483773458444825743097982731302655343917218273129387895324227912432915171442669193832292951215021085864975756435384553229221480052402730813504889618993394323919260214736009847838569057845092168139427957720573292744029023772585211389053892419712098752210907082388778379646769959994601165867667030820066338735254037489398669650036613801500773124748794283726149712917197349801272610827445081458170586856163428707208085246027430242140949157795902335203211485095983532477635075735858544876692742753487974415624268913809885775537385465285695134471385326375899270347132257434276084845990775701338778594387108151485676492337296035810973009223322638141137869333885090049607044659316588626431722514099480275256111915191506673281026188265360609787228330656865031843030261778799523092945651123950608449274984002264672280618919800310054893228810637794783045725508040299928502451400096759976666446860395028333722874115629524547989439673758949881052033852596105490059792007467912930001811092633492500032753767011179132264470604792508898741857997419145791143251170379631919557799510808072652329091350401457626792193300227426902841286350546082328429696253317373289413637439313564286996104718353239703089271662494639048666504014934312340553335886449988401176865227250766066637726198959871476535790563593001230305925847312354867370546507181308325764490084720342026096628845550006316924277136756153024795570448967970661198735498967572636801210297084491089689250645162150374014403291386069368513646250178930530930024779510685412672794877686693121797840034228014428182901233950253108462947073905724430590084797760528983279499351616839700194019503199492617360101042581897253915895705960037893054948910157565847439344066534575344809943378818955088467505365817447318672128587760935502533250793874296523299379651856975368175340938056072008719154733266380868184285354566529135824373157791621112654267303235914190010508839606467835908514216579022903705168805379630275733567643020443233085142710009798864926590650957112699881311038738586271345460503130766499189778687444055446540468131072011452129824630121490737804124583151349368055644139313014254069060680728178408581296920375324332114162991961326253376134372606575790237378275131918946880463620877225374139061310754957976938578315930569712487663297008114753003257086262174566381830705933583347419798902925075614871454013686974645395449434867873849232219035698922842084009066179169219390048795191553467869161744116604392537928463191168363687239882527426378810046071332381497583923839889530259918467201273480231379881822574277804259160238481467144835933138937362343223109153531408969559164176739191913593177149468531319043021872744475450545092721089649018905209434893331802127990199979616474181757830565078272628467514993633357772428845824717929804442226456285644983014661757289773356782088114758195498010404700235985329970311425428651851491928856743243905592191627065258471399806957181566691367092243309056626614618433885392242237737870060101488280223004658165706451627537132915606355604702886628362595211090540193646205848471615541362394822533996313549327463449596735459162725284370157006736266617201010131631813200034533404696294258561554238286616276253416119060507361703403457068903820779405952022764291269078147632780699489910950792109573060080185391032757053827155873104129853886058427868612691165515701672800455717647464690680320745075038626127340569250778748249948926975240448726420097026045099680212129712775575663414158376280808800347525159806002650362595717872647637124471714203048240970266024215330922788447629668754876109692186741773277125101564715244553171783259205403073406025576376040924046242750848412220085309809188883440620392779622725254316654685959851701064143901269966879609485145152356740684475916542442020476836465521258826360101354085256504593007987731981216264468244998434079594357487717763398733447081757331853333970403478302430287299768474902111751782299754811858354725400577771275344720925272318652966328695964111902250966187506347375571862052320289275075879112817284187421895890128607376909357418358043917582120782504114522927537556121994977585163968681299112684966640012284661511362367366250010699448010048350148668211168783804910554318851170078065344559597120373683315200548307671187020854779741277254364576902078144578215843718897721995681896009581900572601808420273123389290414415459926410541722103664534567684142046556217481036998460947880544448883434438305006967835561868746651862664426752867663374663989093221362450416876549447332947611843071826632844723800784863940692707452952247570674803966742715278373296782801176937942907864433513335509249666014529629090872931797707819016765632117913424522868985495455985325046634400775023638158542647567390203501793979469513508678604075095665962612311321372365497837537590932626553423425041595638202115349271847892361429840429194420418173486497667461365832361103827223818952855824019390114589995801159827547857682192406716752822560027354078825240767765456000084660198200799868140633980533666487935532764708425688819764494852265925744842827297065389037067973304482093582862643408878028965298686522496909063120796781196576109077055504331182784055599042149949723675425587676695956042543186768782417639904843681902492677022820980383960087520275466526152710595997563439499042973023673460396774487811471074296290123854398326720980280913963821783328330313844701941902812820895771133016037148538230535557491983085321613138944475162402538524232417883742733403760863616851203725499493097730003019838815397283998267093259336987143100479368760300265869023760640879470930797273911949656042556449286376590288672806255448908059093463926770533435113218724829103383707512585723544322874903609967323788049584041227903411654529579786079992925839506861238202533936850620486550766042424837760749504455755853351406182798265489035079463939254598205090798083244048699731546386359847298314458023131171957959281397630246747176903610958144401129508189742786694626189482798537998476513542803715113674778145768289674412193730935095217063933826900263076750224954716788187869353047614977196798006554606710021055746829979223792950165781262960258408142261316047625365123273719297105819115806255357217937687262676895534827978555598180729969054841132982411165607612573107387226539629382786377336551670650420946567011571935444399540299165539308313603982439556772356345633269080410689518517316091276636226655988657610924823462700356343032839374040587742186632688709724655223906114863740825835436689407221986752853297290853070798090434521236892946628873929304916621520140725465463874604581633439488833657211240370230090741928994057258787151006659573532538851016298546969712711484084900370814941503590875853053801307202439948911980028437887938679571187312227519327071685322072467303891039420962030528425210964571863645411074688186432094610302269358365882475596661794883154709232463071794058921487803551982572529440678301629945355518341525772553232567964564593781895351936503522653329024434522706309841016719829115090331262161819697188612489045640917449990119054740360811813914974137034509875491821606848149756810847650830770950989002143218993286832470935280384035692105723022814398264207705694764307866192628689108731874026455897089668448975151459586419517574034550363149711341631066086141704310608119646873394442728721055463475717242509543651996021570784121021773116895406987127415313241636068549051180542511663826640914029377351664445211994894875204477665631582007432664640014528592741675150793861817990286840121969167180891707350443067076320471211244953481925987551744130757030699205737695718759032938991371780319314820714291589970372031963409755560247233190084982112186101592644673848272662825607714584820497457102202728759981147217747149122320149978785586553427384062900928139593372715728382022402568180058456887819329280685785366307373038764735673247323560512630361595654850194200741426675167034455281235690823136796204568599735812456389854289297390802206072546435706632130845407948510878625239431031958673942634388478743974995381302692327001662890244694237358178865727111875386227209185824534148627766346317355277772297235625337992712065394033378141874009762813040998603423434478318028781456301512942993671242566439674249238121479739767486377762089136704307797172127961578551057750491556436419710749763143769532179470639275686079941792025778497186694237445037858900705290584404811269676987885171801434563129302207652878794247798155286056202380563514214716880542206726674570839395022076045244330894601206477257911541223309313830476040386038087602886082227627138576406454839841873926100900517819941377310328183652353669114528769236117399476470366652912477648816016839814343310039815458194556512539095547028989134919434783527112241790415739521037005797428197600853869985487909314045402528781518675213891353026433502706659025906026114413260468628522786892502271395657159659284854778858610304074578099567733781528183189103370568887985454662833112617701063924277314322012123977444093853158783994911501791974536062436112933276848350222948085248461491205273215913320881165932625710981638636612760155846766518095349631627381392115398882086647363610400435828004030988652799874579438900340534079912832536938472618103777845001129022596248962608690522493529956649815403569109430861410002797075801066859765133401984498765535858733903753258237474587214445028946792174191861830498541191309229145123190503839338809163173395190767880392680446259733465979938131514882737110887566384287837890218361058622528531466566989523197400209165403950435895093495477958727423642748335020714041678713037252996720175739763713204347495730287856391874445044263996323667456682384817648958743636078202319710030606573819675007499044152975260258460585817850605824252977998343494299188037374707284195048756472699632824293921017246411901112877590999141658181665191173440228686657571695091375147106581415471677112775607852969595168449089486410138677696193914937397542228935479428269305252363516157524864371551381440265045201016478489192917716395032013379975941856048227584799516244013100986334877566284038901902535145266548245230614098773568360763153471902448765421686006233880703129518286189773744758453692033893712541907432534243941411361805580528788276884377376919851747512420696817953400655006769475747208158939580568488042137292542490879843069124968965292253977678493423706915102192071973768528770213219570698858613063729337976789849467704837115095735488277480821722308210258774511265342650111912452703027108189542428735117027847825093611923008769408390887310305564321338411084334368431876299386394629671377778433764938659790648494332645680506863308867387000835966385167199646827719673618985592447305570482500682983942047729379196895560302256203420697483715958207415794789492219711866804348218328423938682283516021802124968835335861483424477240656012423787737608666286746541405584267409589197006320214205886273708351334589222104705807743914831688570376553267958218065338385891176211270432908816467832417565562783877843334888065225865498198268013707423820822910995343032728745577914705633081287951628162663719975212858204626370951314554117734568209412589863760488234526393532424572222597604473769448731669703694967101511263012673906346219740618614564351708826377000964816551806942806521094149556184906127279235927726791064082981439584495066304294445285974321586228993485092628988581195475065971919383784054051670143983555095129834882787384618729213677678024204919858461320573500733110358907011275392809870269352683551541236206636447519476986943140142936260190673677578311112830394126895128366119511565100455591903147689978267748127436554433422070245152465204128593276040380371015285474259152098942040719019240726594470673207879008339195352932298694339179449113785361547654850039141272022916581090690578596857424558281196542657833753386105844208618968540675765897371355988236566677668481823568370527300479871993384337855732443067820695532707184776762136703409217264513722805534912076510653328306061356269339268670511800497114881891622103433712054570077365025179816838826205436485425255179918088110512994793331434906101163167307794845287117397231786994798752957828636237059261627947055995777399338376637589115652049856934032924891246094020401557729735868172843882640074744217027263671608754770892176556755701139185793711175513783622247018705573508576784506944403176590751395197825516060704009308210529067035766433142823173407930386058703902038638695792524752332670989068519385394361185053146611286599734767751801135598209432313136567279876599064438169381074959147256996746893317235786497563107097967710111021849582575728771459258885125906019960172294684549563006591207408507884719857197144843558247989089939133406908678615498825089728164207423064186720781405974167739475365257987092382104980108722331681332827844920948504624163665234063220348755662636734460900843878255498919186207893925418941745345570665082012517242443692658001041006725484566252271528624045617605638458565536177293568112509338989854629525483487546003176482345498093382106954578811818970845078814565435340999660679306310661629019093772195261596011216904737422645182198742472426069692778778920675686287033443819464276851952725876782048940763428514247568015402181083750522423686976611545971515514519787938972733774073996041964942018984292020873310828638635863478611730100733805210260454519663984082777093816458066457908266239066892212885440525952737317337852917977322740857783146138816187962684195249547505272344951124733838712123867354886084612993671210966441435481873857599277093446465212446972735692904463537015687749182735753272431909130218885814443193980635117836659682393363886694799579844562899447552927397059800196699719716671220837202057776423981010649386080054695726900118291303000302694252122738677357059279150122728724328405854782096348057043939850498094796301322375828483438540736511308893872208750666130221218979960189933929973320181701185371692274457483138234637236557659213877245891188625191766469683287522916923368151767882022995010403066097341845131498485343581150422983683647239248757155579757011234884976187076729807314971883531638747849983375958184931570385696520741234813279879563517563661109792686832415115270565202203234049322039488217049639121712489849217257097288776484120855775633313098587225714318770687245675772599161527981799840223078428660133616908644951004700253394547729755409185881884300369793122419770676172199870501975053175871987363606706713087911642897501049095900534009370042175124821532437810841495904395231991122809550721724108361327989088256005828948798872326728389326053404961072271370247651149142363461842225575287406708379402902794857367757555098060993202473438686294597488278275377996274797447789781223518998105460399840335905378671262748596905138489296711400755911202718848080100215702504109839167644651004646267132812320228960252691744766643351672424115601780557615684874117412283543081028338466332477595798171044293157265135629200404887313969714491480739973452812167910250712535113646621542558995290219141605964131036956927684358594320218291187813495115472232986325060990936255598762195831520040844213721168463965954536597584863540154961757369885516835177172961872673578820694147438227109606840139473641575897762742948519539954926581614814850960171929487701503797410701502811583961362292673419983719294524749933740120937645964718377728506405642288926167506572297845116179348677982949697104767354759305958538907811226203954335491678810397439101188379737972666078110540994681556774957537712520461000869411592972272499866782439816603675837753816905990463821004877061452622557711781755482954137047521691382314872278662609726373569230834466784974023535861601254698485306417298614639963420555861673798016569009344499351621299234123144815575907996308923942482005599595407615979038940894028462105904845155430063174742418370640580937803921493023496578151186362745756784410022536120222980249082734090443153643792335150647049275955578554300394356459560904357651340537039773741577408475420498757009650714000214240829967262441267262998319725503469834295382941144286637158225985810637640738662186630806552684278117796678512181057696093176035481286149972187567923331299908928571950275469371199710093840643493310756638524673424304127199802907520000114187597133339098313002646967673554603224207640585773939131703029401759413008076139305473026453261551937085851346911867982148017277017765260277078555065651772300120055425124850892734141221345752165717348537577998143090506790177739460360143950454460676245657621753492040771756786191525759377228675775304942404523322868728439164270138106866263440135734328938908076283835853796138997409670200556085899715441002991027681328734073963645090850045488116399555616266093054389186224144359000959679265794411573193379234612180019607645527339161282290921284535054571114570432456957729371882326011795104940559698986457970307544910226216489399397643122986959332282204698728388345478355193972775341903852268987284142384065804217666173696889752245893772006341724231941832558470640108756210229174756061809575952676384580011142668622721155788391037059251537194162244976217098201153130993997432376953443506799597346143241003979700296836484520560391884501975520575052727308191485703645361696247009647284125706484720967385055119968420068732454519134953817147701894802792577110119172893886453219620566226402215176054716626933684839263179824959479280103626209667425124294291363054888490804197660716066281440499687471238520599162403338311875024049751180594594111239418336616231256286849156245081608932986106866072810919273230098521115555470842277201332156536767381721583785563760902677635401272290680469499572792196016036186447897038934687322749892359687614261611274500622926206734118262865594426136460245961484149567201364057691338425605054335349909703571581526040590175681537563664992860604984417691061817041445535378958147184780701780740118849481888668808622439023326035865493369324287770222375088221173181968412395043486171550329634498062097207613745204557111361867646793576865287618415534716928493668198942701130988801785362742766856903286367815033818232124854961868075971689356901502500840348694109366683308803827176912260496344455469737124673237381182029804944799468231123913604841199777326860575620508675418156831231385768534805013529583622839740559303641760409101815942895400368873650830667663054153262921229153623004786541152694145639607598641365288161039866955423823577078438673247372357094682936606888796247689729968346168202204346378242728000720637942116505877205167672358498380610544030607617079374253796457204573725088277558961935337556129880742333986030367284103940871288480596752852456219933722377829453340146694794393286849774801470753177604709012250935455838713799597541402864967226453841215493906757559034015243764241830133089001545097676539232564945346251114070655677905613876890263642105293483635072616321790015342613408013820025151117617050493499832591329119378042272627904121171133517501541561387503222440748795638549443389026384965821894172095970385699335861046851770379008529215465382837308606359584366903512131527654601529676357969865997023164579398764403794274102173976458805055856482536631723968818959136623631978029539782236976487328114721564132399056870803574998100783979501490296547952779319342379636408629832148328706180728232835502014780471819692095904926012845949261496610405831790844911278972002943546078100951391260959399267252456248944831295691153184809739245666100425440656704021685119056545632015216489134152979245583835720073487381904308214402732485084876074575573653641186675069556744705858452054313512327570856172620975722798963214023518795641457325778680146828000953912318324642937478202552952979641200116322531367730268536421950265290148618579307087331649947939761567197270781383590469185206691605431164491005641350729078505741490948420645859233232792832813222820254143404164852228749859715130915195019184304233796942592097831722298321644869902779612003426029853616323131675267031956219568865022744496667054549363397531105954056849632641739673789346365108856232302362341724037721665803352678574068075397241603259667891340877383306589793615974458107441569579499729077433536094419749454829620638273938110087252470307468781424634907745149522442268317865271647897601178431506643857993540667752308416848132100880124204335700080340768152521498739323199914361618221245498248772534787383120517153332131625146601614639506688080116220966644842867594025347881028531700046050728848866016224805274646441543513336579840165275695189867475131767105400967403361620294802207124528762399968224435979543414161259104044215149060301506250172878297553710239255663006456017889357792645458533692940460601484401453452042315377095273882686179251676365411824630956425853275697783324514964418603647957838806107666554734188738652218615384749825259370920926558973968364067336978628615098382065769602062085797568490515071527176091262679146898127998979879049609537795038427644803114692624173068453078411398569282989440853607529576935022929224734453861260419953427534521653268788813138921814747701904975733600870130175813824379725225593315534601743115696372051620162431249944740011718394607367890173956665408983607806124738846072640625987933203257854319156462299833744365308556171543648203482013359912171642770466874323494349206588470016320227241080258462605673801168706219074471989249737166670634602943019189901131455639458330404199921721300352103618267378998305452743892379108066347504933664959905913836056945640712932325075255891705015976500825080286076343861416062295218321906265462815896793442990336002837317476873429375879931802877447555973255973907042642816950149133779815312442577597211133406689595473508171461564739223440692323063522700819431667580314969475686541975771599919430552989393479476201695330492975365163537472420144856584627952803693681123097934582212609469047348578621434047777756083325130481500591308212101427229282132260375005591340464894388853086633756567697684626502718779518119981422946815474054307084852107582120966844048499414678451021992425878027639312260838987357640991757703072041979195177044382321137002233467243768930643373046976542251647179563350849586582940223115141154366488099022503251725292290529540679695093072491935932519235190157488192770655179807850028192235328911010477856698552814332971007294324360708790453041763204070420709547563006726172020357064069055689231315383611403839262958512254613620661295897485885807299280697573336973251044853821886015711935208024810270750785102006401308060755294632206404063947746847076046562029894894045963324396841192178714965801696859910249327912854621815947641029696327448991413867926872631541937299760227948982465690123598900639770952248144886721477779902002465100086871085284139674333824404774103313874231951257663668272901427949882958836416767381750969614245808282912159319336539354988779534598729094373149460321930754657644664514827352464821372500184317678042338012043545381557674850507460623929398194714613587725595026649485342283580656923794332454800824262537437989486141136781639069426837856322277014334173467527911503147760413326377056470797856477912042670987484430020174213105717824620130242700226014531144022011819780141126103434830694693105158570614329878895890430730474475021718360041646219577908360036344759911758793354941785475922243705587947594493120076506443357016552952538814874154595168420118859177503174522886091255024398425700260301936217703637919466524831837501686681642193850951022562730724377008980524882987712442258408937656183816603348138731286601321951193191512899723142041181716944055439979453159479365925762523366898539094195390429501847340018857605341410460235454089302802482966364476494287431176259402341420371338756484345684004568128219764006469666422399937843971679047297156746825455959126424666371089541069826409535324435355125034883960036294299276249868561999333894081650820773553183993452788540555626683388878081332474793777284793686732468957543930041277157615332784014382967897777437010006666682835693619845204726293505195288843621243248630176505924017282931606956481049281112404018484177212169090338652454425137228112849986683741822457584531572940150427751089490029642414350641040920451887404773386087727477263773700927335003197538127413973511472195609953521010777302379992527423654186938732000718307165861587602869243122296217522182510601031934499867647743298295456249525204975059386039043694629022901439833091111306035561591141953868956768108807622149890044072363938873003846540678389648202859867488350948107179837018187137975553672708792757869849084777545612626527101277003585334612894144318039595069244031647255860526419141329260378380099510820986170741417584235088202977587008748067768964647267893583313141861579856084841300607263056214025820156378438969330843679753134375094401060586796676003452938056379902304698648355872559046175049618851575977390675077130312175232065628231895831462249263358893198042325190930843453129018964946166891740429869294409957649414201513428649753134186550225525222954364839654693173429832732591020339379685567489527768916521799935357681211814117023632493004798248237514040356080425506731038077532330577645628365327355767835329223367485128890043600806871981591211884062374188628782212308699499568605845985242571586463003484469967180058666548722165630276436835377845764251840985727658464669452586823809323388398454550684138679134144111927949440225951706751458728448935578104603059277883417447633624074170370640416691900435431289267708111206301084320405698139451254212486123379906116245285450548170367579298460016103706243039870146762859250173533366077958624189876444116573010414824681680988657358850412774769287341619123626756299147789146577017490421296548421283145594254417753175492558954904180088680933730137925038846417962248289794690989625731064228131987451093982486440561727183255057556206658474437273650217716927216422278531043066416706824274020423067114588623690692003984297799084925645891923127463370579549405071464684379695507634507828919825387556107635766643464566549291464253465487740378255979787690435947905451541789458064030829931582472408872200479000263882705172141087652139938432031841276422212080596931397471051555381607112520468793850572165807692932786664139885488209855697123000277180466315419650947540084117605007030345626068240034887892946714060827562657318756622234780685890296390914270518032326116824315737934655579374931410457280863615450214244893139116982391591320312019954556813899716390153244265736316454374692306934131893397008519322373915460892119278425569186336617517172890085075325679141015558955588196828156760229023440273625353095114453517988905911991462401691116625089432073374778131485117375865699443513796606823373406799570487566158683291755561031009686166895495249933816413894768990925147043427006507005222585925498655675176038214890746751770002555332423781679496341264450696098051559427080022019878528974787691325752890236639647980289027129467669327042072153163056950674787213720741686221417134632069107492584169676599201158133418541347740594398961741262930256698821288899830044083028350333189065067605454919538428361012667496784363491261306907590152026947438411311221739715283497653857446510811869081012035056594309310417202460939013233317404923467300708123836087341616648303809359773264980335061701862290333903076815411040266026167519728663590699431658523550238457643099709107953653741678718100652107901775499662293863237802520412058768386379412584430429243569623363153872447776091309921613593882825214118922663155627730279236577729542134456319772379114388716932915975034194578690467924810061306398831892599007766489759586770021413580749918254956812227883571422054499457498713014190907619123444353107903491511994541433160854010364907741197944296123011110307371888411167517709511100814771053843979683786368333774682068116983758088890357413500872328620491306458613065793326608586852792817885110678785311665316170051774390769140671645829633582573395700166618477024830232341605596279344394214197955347268507862201483244690260143280086013439026210030302097467293606320961704878792973971577917411935734190885496185007582887927787804610949359508516259758543832507417826202238709166796561160331087781013870981620759194521253866582025702672726282599112902786892920615889305376470890369247668051853843535209380235277485451582956439080821618745168449407622227474688002683890099885965387853396289586923180170986446388299444542167061862925354022692165982213973000321031247598584733894092121693018670720561954016124756738817213653728372674000023093084618811033473424734879202385934328998870470602760782352936565429546316038499173449387077985349361955405536906834262373473982142168216920637846432834624375034869765055257798916859109978356972416453294174213802343449092526356275987544793260150527508113902161859452535453614423602091978287141093188177659503876205170623838418077671708802715350198483864621071362573315997096403188862530908646665299059365755548834051030740020898134764055193854865184637541520319291930023633378472507191484297840476000373310041371699436512777601742214596851825020476897788767964207616837904722920557702972128166621937666988713716780533552797500442398551378319530805468870504602372249302241872085050324293590225202853497718401832862284948500904832755433806366915565051812297904185909981151356195738684880327951534658870296433155103011962952011780562736867514573301224868226242917585375070398484469579659512983414829056836903902162589864091303563521836828241198467468056316877408583313526386033321479246095648892636081286457662520280445124246713974014596152211192819579307131064722513552540857124612539795306911092909893726708417987078335594943383439961428116349782456368370882559653203847676492867497968812223506744130235022847499093649823360195039579786114213066059844548948202976755994900800180307174689905169897583578950203250703330920577297771605286839634033434966484031694192554425793603577026344466030821397675157153685890039919752582346167436971305199037210887965036135799527485535818485217758074343391328778023900711068914695834696738916529831497649355542191106342418258176863364881092854067285506025623635290736609562069098083326615021681409454537835726490415565634732732742780666454394196952536235786794122125590380424727510287819269408606695795674965802036153267696688434674491370794477806674293500773408709217414713884417706158897093265237147669584204247911849116860184646813628971685875001155369556449707672990563054453254568743544776513559957176652316533587505116015188118121339317198472530901825696729820416111680595648684249904023140201216344956362474414827403989783186314242391386084902408996831305426933767892522220078719224786352057441378175961287577912995186116502731237742678258892473955283637541428124358637947018415471687456334373668349405862181830291498713216634216521807441819070230855498893905783141209765915505940037458639098765806529345260369300410925215864901073848586137807495731392728311711940863105231885703307411943210202576080035560692457130100691460792055193028426215242472209001274860271342985823084498119027315437973276820041363363246841962748860432161701881651153188714334493667707576901195601441469027689384600632669788702650162132730817103423941892704014039645625237077948366644830043811514797160033516552813547383887690902003923778167644473324660898586670155760897532626950966703723312220538483780155624788050264801255377510951700954304758308552641978660960798357396336359044318969732265289887034445253451889336636898862348562075265203348410086398205729619025505221911098817317325037512715029494140297211522530605532344581859157835592567710886838157075173159931142544699664115369357502158625623230782660303636896840095725683941273159605024437542601065925351605888319323963745661093525731015846674255880786439005923613897959384571424370781850685684053390455665115293589089751075208776749191739622483102037997829141766882830415307047765162386647627105896911656883944917600839509205343325760745410593124882466449796949904081867454324584007693056064927737226372026743647381063654023342053937968906734844380871529848128666122209029658353829181627135802249910260950736655327950852325800457441491124037285092736353818323639536758267399130763249756404135628033128136136955656472192504097454724859996551784461729516967959807745372424474026835458114047126939733229957139986576372531763209693640680602477527482289326946970418437863957076309970131380338769276808009448348038425221244980737499961076456022242405365093906578224792191916937467416625841526767138413710596153848130706919360945299172365220328901587048352117027728930673464975370069057692285193890967671274105763010143175065240901143668542202564669676415133831236472041778693375288520426488519962569989497142300491037934404180082194952541368702126341204794908316226728046882676069709707947019158019771330881382409322489752630064705582008913580867026597424635698680237922958987354501701653656181786644201201440094342160356385228981470927350482649961786362029118695249543589929574286794675007658690842426072333195073094601173254604812027947236338050466580959636358404759858287740453738750557182149949148644244274823826822007885734099476337651293331606117136637804323937417845366767394602464782198215079534270060885216805421591119969590287611434955472353708877912490336529949076890281589530022138837060798083782867421189176511580624888558486140523640217365114942574356649603758442582286159985497243146346895554092190881280263830801865908042319635180123444078715553569917163291854807399236755755595248655062052981767317702476686321076221559547207066389363843892286477233955910649129668039369248919165073758487384582191218064876430176638286159551512146812198079410563133485300427874018848778479349218216339294121923600203946427158533046390074915472327219424062171965755174664329261954666685884178415760087691259411475489716861108036807282178714236099760495302757542466232771902025928178282377531377372337411251325841356286698549182942076860362660132691229379339122743508344405209532779402815543909709112912168356313608456839001540801789423586780878384687693482548688281334005170486422128727372938627600611664536895976822887597077627859141533028247628703317351332610284870528001301320025722196750776561334287305420659952699522632649637075819260161499660829658190250654707118868485002485887083404905308786297597561245326113444849094483986716678394665724551769228192756977931405905682457638344424705509717499765743499568330784608078468813852171350785479619039374885753150516685613433613625560625092500596616857552762027703482221370723790845322274278356015992654016357473501084421694763284076978836240708974514284878096841196020702696120860103831470165170904621421948511855521109214188785114235124303487014575511965973094936120253432836762503890372039980198728288049168677850681196764007576475962899463223118241498381458444325118888420607531719384372625473362971965699349943076802909931206736792073628779318243626269726195717348855675461858700495278111844506619950924999311725569535089167288455574695989276193384084546613991981372987240799481061518199040425634725191619765794075658496479286372321546686492612983442090912186927472555531910730472469484097852152949873901896849082395490034787243308611915087888513206609075587342404242558190949577810183103678927186990843572189465968408259510756920234622875669854465692054304349504753989177036663015982715909099497082730434064331380139780415940974035131901045353997775870705342201224633413311293985785447166257051507635321790627054237588244182526200146403958323349747469469960044067266802743870674465939415591427380673156707497281609910828226289361761782317659207132389120641793877523613540970291990314862821398959214683666357816012418551022642081888845861922939673347021036816765294962164196713110985547219575193037387124202374564243480825355368239665109047586696287460676679349375094469456905139992016886737092629780704019627819039363068617970303041843038563324713544654525797950396121771543428760386203057253893710573181843671053244603778973972204393094111845898912084471805813130592420015107328864080059593083615956906873322537661340111752844449582729991994303998666952968480294417079406073525823288420679297338416179890782240197385995689735189566516877882646956420317497667972360518078640057606770138686366572682734056437255301828032947238030989105090483506465371379605218073983496711620917154313607731476989505969222038130852251406998554219033437510011699918633477983279637480839262434758518623705464003663461830692719478986503587793488381228959024086741906367655391359584122236462884230302054506437439764707727673275704438574589227472431804259457427983324076891929865135237046646131696868011311104155418647505855177783939863856356071014296361122578140191699828707931949024872141169279360126848506193940492029059633593375656212345634918731006912906359154859812473517725519938227361441152067256087546660501837520977935125603043467712863578771826344481536964774445293729715894397633717237126665420954059258104588640384500773633856165937787395659847869165577181556572940780202500572734389376438974715640020465028626572571197840691475895629729608129155846939482327517975538445455891289414070309588450963568475504937850713078633530355318857600950799619698852803951964219198341174976689600296094823056766752805180338863784697908266023036384448688001416070093655787779740856093241175589883365508265526746907603168655742255632875790132867470441892110203875982923034976260150174226076522599615349210057162184123263863324353955352069747193193126361455162169134029968845098480835334578864463117846869499881012269717422288056048810487162443722927035766849000659536194473833329849056889468232401704672922961548113301242557554137892176690711824613655896621729756196907471330366170895444572165480729618516962142637982574605252890140712159390083470174029844592834181529512831161476240324340354913564298979829329290033497687012029075725079454237292965564837747415496284175670778604582616414562359444623554825903546182666683961574382769364719148829817736236616552335191500862676166643505327503433969262685250360909056162992552360795454112972305099048071722252396812129124542836049665580571147780334018699342654188684445213869749344814766517160384822872034414372099854242179748357517657053080788098154848048761909526125245469594572482443216434368577440465607151051998963828825437682699067058557474559849119133421778299423354343352669951587206487085141222948356318622987757329578541657456481392565753733017150011881474090471471113682789916101396878822012493621213658948039858864449256943419289954129798641131190942559577687084977394424367174719408169500696461145687546022488037800548121961499140634405599628308590167356057931737841918102326185213275048984146201718023755954087490438207257575821237547390782895351855842212280506963065770834735437867823919600820802830697062637463042357561790318771419257384128604025333514981035948698257175377921799121095099065293855334517374554004236862324159626160373432181089280631038860997500259299837301021362192415511400450689820779926283508542619212430790527369835991095525440958651305261344234981141116821771054602412532046320186581454853091599658205655207780520666051639964967806797776430914924241140033742907206749615747557554557986914350711415279886996108089644934597256377901483902802639249043884655910382499710615554852930580574244519292642588320262497688413134848117577855179521154121268756643370276034960303550244298391639641718050131489731672742613307768794140641196577918073668957962981160430147691025430982343000819576284527335600061221164878667087408057724775730717186273540967970919127162406560711289812906421686956285904911410433760685810853026311314073720310032316034863646194954054584733298412902497670191852673656920783138074630352562704850091838658394182929989955779982362142779793922312831053070301158272581758075611589245207361482120488081352896908924422759823117202664125185192258258391806959104132628017051098906567627681542400668059150621186080697718062540388583580390025914474916779047037846544334865078605962449101124643173590120770448161594892422454554671323598160073787300137301151614133349127756932976116125420969993211924159675245665662503518139265475642963658763789747171078229310983677332245676363556402405790503859201616388177572471213980881958377159626398819006793944457882322752803582399528551038137064992522509265522995970181484493880324785189301351850683645080856607629568633893176142949644960158579168513397926673325507619160038492083493598087487409194094280465917965655700670573123213591938959266306163935189129157899268902178065763424382814125506247867734204319636545394857091474155013964817593785294555833705929336514931311868781166791718319144333637268467643763803412726666682046690350632840014112047345941230851342583366097300359035036819466198761932684491030031759968790507528077897584963266199559202879242463773504454936494250108754972402325812057604994089947743179375390438530941259414355161796486767394282983721976474867497192700417400128363740303375596343803340286669561388484300859982335776923208745005559542366524629410626805553377336861510245420157350474650831499067190261029358084667881751056055669091776310853715132913628646152175296407266107188159369014950533211184213583300559417690711102643691931139026266273056657115426441493298781376510750393027435444785961032933355953389744245049472855345473232739282814570498760419174196785877112221137844055493850603347232826441178331399763670926714247131957738202574632550046938595296208769109980750460022064672202148642418898061326000220556473367972097522007983356261036798413362238735460942679895329298310188217748057286762213072192491726303161327101949706695565509818757607960623929667459019623173394059784695553343598631137330491969831261439186987753711089257797673242430480560888596208083200830467826681675108949338174072697135598392533425640206762219329187617635221072552532871435087888500339797050755693762366495988602957574501129895380566021221840247684143336358902378686975596607764555324892211491985340234336289579103302293529121022993109602933467875818582761410467772107958728154480894310788074803612676064196183366397686190759188706536912851342365332316959400942261154414189877227589133156914975570543254975883931292472924831336078072186242594342967676757787455023121549939317172649690480713579208699460404644636617274726353699709042847104191982925259505949719134313325290662127062010944172905553637855003255331423240406541600127569094223446079997456589671669573236387281213732807089074628050542976982014197731064638752279629904465104800513688915397756501210530881816748075638690780526859280027928076711287367320222525367853628707713159182975867966253811929392771699246967486624877345099917371778779316683586288011156567748419773580495275066188119010195561343316944472117060987883615860819364660293800206468929658824563131486158220822113319728946473700683455665291997622404733817929156141724886702564550256687170322360603832150819440300726535377947102944063450313353492297051613013819417025869727871277661629181028489073720767455470225862115710103682476446155075390224084433645765173305981310295969355994723631783813819235898365816996056959676140005313625769889409638902605833359874753351970203647597259785577395267723061623363729286431027880129137068408540371621892973788295161546213279064633069705571121640473821872729231966303479094978676150869254759968097568511193779015651350794122409112271259908054542567267708705228389086381411206845332266953111367840895171788484175649330140610661923932625535559911043975103033174863552107212789504380869917773607877227260330265321205546027473052308809684070274208051985735311828270022948775773471984448671850751064962996977734375400048863428102000391709897841503063721940834442816215784448683219629711697647854723700388050124989000938607168920994112487652984224464943802925014662524409862596863025295272886830560796742064172713322688477809858899725564335635450597320116300940137160201451615782847215694266979340085127337190589209027333165025737307209643633129748472661032672853149620808490687281242323472208412269596881707215872578230887037312613034436420754589409893841598530315506272523366059286775827461962756906673920214673293234767640862914539236816776352934427123701135418973833739546962318082801708486859719047116009888514419834091932515627880153970983806223629260303624778537937973738357442847356479024906911359009607651339883736278585732944909525309021608931941412081356284179258257023771236801964742684170447150594359429243831299280687919787923513333133120844836680637947257867509563341710620718684650999595158759645931901806323520479847352698079261656179251303746214586180882428461241676262729794378230845093825541623127971632178247126123856688911942281887436386550074747227554399077634475435067987302569943684643260812919797303767708165664607739318794737168771076315012286340424531531784163813749372901463259497928200691178863797900564154934501237457907589041645389281597874305620166339470858981936621999421107798500502543637452615798104584514457746966869174888179876836058169702850006175946586066760661164612742347354118492176829496900801159098520223652495375609155496877510696527955931353663422186698322309531898475574765963860527493260947227565107050081669166575370523781577522375933580502389813568776363739263019213157634481684097802691259197890684781765821645074410860139159721892489107722446327974850357639506204722649613394199644142839034677288854095068669611766812513737366662075631839537000914363167142757955618599744606520510883866932004746048556875031073921613950541235319437046093250430679374242862060013364811416260348037850330247893117565664792713804166976260117621037639392906546186220167367453772897547421895910460282227366416481860826911623056366171231017226835332699951994020813882577853239167539262408604430059912859290896282051415499362950968053115869948673561466216746313575659644028369531612423052648782271382104541748356195930127182186033038264436385778590658719563156158652978002517946173385335662668337443619603808895016405755476863299786487238235924738883566550136076748407352727347066048144037732813537756395670982096084112060829518578228175129978042431316851390978312848107995498699655142092512645157963671749725921730753242940655685694746097107746343365299439130993782694819958230753293456989942386564814023859553922499288449916008432666384000325956525255682840756518686463911876590065964855973483954858074980539093019998121998662695187207371614985398049183922017491467393143154775675450895571210831930931035410616347431074165388640223592928904341062983128128047188401544802720922864676166282251852379553896976536561361263195591198321532767024975892478512154444307422804111371840434546804800665238631349214079074960594887044378708842818826357305780444859125625116985612047621926516809951000542379959240811712584335440863138621657849376087340629160388851584336055875600918606281628030074734902708441255713387990785727847013536404885320297990597266233307480495732369806830846033537428937591772790771309736904467383302300707000561235521135194358198384232766015778705921073193953463326515042781656820010971215801259636823514040364512452745525892281426277317074760088776592268833394396621892913605839124763833403158426389922820603272364949001539048691872921488100650707538324749687585570989601736519055895302395619957311565265073275616655342327340987699555610086390738467948512037712917423243759731515034566458830905446966416036470628435822852015457932192873358603927033044520586531553419662889413789219672707602742416827047417761425659440155236484454771246156420635217846368733094091931439321780203454623991689287097852252478861818826290754942911053335568927659292000055276284251839900884763145350184739467273487348045563598763685523250137946772247533035443338967953832880614882217317580253320887955182471191307470057161723753947039453502197841275502114019392734278179447987151548914289695503572525033771394723852360139877620434312340209345660465023833104479698655386170453572483454831597192357219615115206895632169597745919720053860836101181655949684866397558933019307159204103778066928092066164136482216318737252168939500563734035731445072760267599594817602798399651229793448389179827280781661962317817013649422964157536725308074300732149579953325522941766114416057373488552101714217143031764454774118255706270209082540925623017462333884638473469022818053567344779146415243124858853181797477114877535164985410905322163530502896826734333787389830786315513755282475642905941608879447910033842501609272810779202928846447539839346537583825976442422463088546451135385762825802981544686993728433632772177215632894777882815730037413068107828654796741381408840149564840971473928719058490501540688421785440121106613148432994353928882187552324743596354758182126845349766527063395527435553288171532906161025044821623458814654730496185491833431311588767688741075448817183326064273363009581162148222744440008214798654729413751746000578460188141259608073745101317516895810493668191773998365790456368594313780952514172435536708484403798260254854449665620346716104507329703174197873154871889925524073900195630410488809870253236431452411251296352273021927384593390140991609511166053808373955006782254911961484073987015256733094337015248687925547748193040913413479179181705852558744760537402520832900831068302423690197248970884786821484432680692207749020578286276357631911770800668977973673218013112809827789957491293566226560679512889386514991096378014822423804738475269070406789413476047019258902295154398524258695092490413194677032754780783000321123342665782817164945936342641437935740502857233158847460366103057797563800050047656244440228512383900306246140418003970018127838490845829321517964775834403994578562260420183477140092659983375052885802902762753484773113356184549428599961553197397603871040068638327709059594819767442851617786603354109517060638555357925546901173560366441769294673206761680459140774576294669610762086495433818086390085472932965017973344146402980862154936924919552974118741502970354716017623797176927764236326571609276855859656995933731332473024224116117111062982555837126745782998245710296440858577349004252584005276935497240033939900839136989586000983218736707236800790524856312617766862461940321609077748638446131273753068138700303472272263059625499044403419485758540835040533026906877119704317424298441180678362797704826700719311749978993244914509365993758518868958674158888613209114841906851797148714565511215737492704222959343699985546275075120129152161141434686304806973774060562355420021347912178505308602214513593954853512428320578531932360159723538501416875510972439167921066482174196253107607974091650299057513936035091157669326331021866568799287970891388639342296155411209903448763386479450006425545569451754571794200139645809398516190936270380639950533128878851515043169011714638166755332641986533771173535666907734669562336817785542255246719417274845918842567104566839413518262787765959502161594831083858278212378898264069375347591394074950760715077397247356637364509880932554734879462189467935436812560508651453464269944427665856897648850966207169393032998111556999419210702916969085102365016476728608067684928394152815139337052739400868994187427472628518234214716207133798873618294492065235653696473101588431629226864493330402313676095480475487265499041871667757640510421786495083616034754724074199777058411545462009311754345263988106072711985406979257023929359490784630272987035086252415183847612739588769594663460372090184964487195939718763779889928429731629841233846236901010347266466265331245817804870999216794207792160695825015659217914232464070276699430223722965262978472538545506476608720993138691759258361286980527911785110186096029250154773035738097660221247049167447868384946034587616738999518365140016368340080161560956135297554707565054033706914941707099118349949915188660838770582425340321895453847281007913637862389178876519985127989029242751730222372541861790571096301201762271693415111829600219090564535755475532339999971034038766671430094379075525658862016452548181463193055223361231469130606072938225021449715254520172942458978800856254217283269890041899641127081128564751748407305365458693727849855442826483369971875737895143645562228805627966692300797645833472104309250556101758962398802037372019357782335031784205319236260708119729935192785323942581556044993981182682979952247516337680027794644605305027491056841245652533883976730400428604271051640826365382422061954977085316815607992488703379771759066471194046794155140170853819735253028482027957708591931212820402309272173457590131915600670362066200191999256629675265562380933439008965179258013655729326519917462618455532028688041699120340507114053174965571398297270229480875783853990934537560872322910121879739259312902175716439975850014108105159030940986597871026587125309501662482681367615328061579601128142136436065455667967712454864041501394516257424886900856278394860245252623170713173401574198372678539076322726667874994220429937714944181178743201172488304808757352551060555730836282291395934753981584796238065813122431008855615069871176125529556753286063222904671442099925812913514352317451105049517286695590305937928923047550578411447368738672461336815700388950931491561683120061979727838812052337852648566889017494179816957341182673180636471904208840255365822641495557392664076063683761739939155051686318088357453860336780373263948573588133689716978819308379249946427496677182697688239884778713116458334103865231756313555559733018190379401117929558762970474754809397026362471603174158753436532062341900463575851169199058856999798535440943814022599766376571228640690267022787320776380323264940111829009474185442970939432310007040304853825126824036235490446811429418641024163455796723702444839600978233769285688628496177866797055877048031757825676673320085724853603975111679158268909035866823771940884315818759649618725223813409332791973624455434413402851669858045533015638557153256968996098609851307037645311864402759710743614590999113121535743263556008774272115031745466736835499893695022242774218169968818552186793184032740929930990516947869601710507948958134718089553398302604706716784652086111352030110193127181162961015647515787547702880276701388495006567057426672078087528436741483140080892893085919407277545646909267141066576785482298597416967212081085418702109972859697629486625943948589160559828112192847128846315307092191644599317808749465161111553576756671666027000564123315846304981974641295991070597380928772618356495039766712167909667513251195704661053285538664191472639886119674235572858086254495397227268435741536336563476193077910320634131230680006854869779049990431165055945477059174815513770175124913179137812938562473608232975989777170921874524320927755114809863530019839829913853118762777924173911764407487342889987974380610102225954580515369829656109442066705815264776219140003635175379084141056786778157605625960449598669520966708183898449089288633911722473967752914419615553184330803872003537101375325425806188578000387282797520332892484852157976557078965876997959929512611547155495436654388697742590003798460801802836676853774980859348070245585578868491795043036494190824223268570572463988885721594714916928740129760514590322502237945778621839512234366486145244236217618640133580216449932350637226130505019313977325887782893425237293129848248667574714535953306071524338250861968078382498408419609692642650409120901915846936883523112496925851183879948496207237854895495666189462223053782022562411198699689554404854539533194065049794509507222416085495074129336383773225619000965744563392391106551820480383101359819124758176046175876366518614198843171101076375754095368437833829464782453897380195986808535274678441380601000083770622677259805952406717382179835109369183144904183372334959791343389717272072101036383506273441840545225838669735295622870717644015158749902658047382697767184082959172119323812112097779000110925617940672374786233841921990926911440080728323594446528485303207436996098348805014661975622533773909363337921423666315832830245345267381900798958663309222135114933993300734709441896337894008913275588775045783994460708963038003265392229378944290736826587411890492993983376962130021755200869414757849917007815314102631220395682392527104908731147486850890635251070592165383298837084534155578435040024271636225622277277995841334234733247848211610788483729368005394063550158865728044740908087288693807371061960354162121320033623779110599334176535447879559443133833329790723360989986013534133180526571368190355814426700687044621814575015621289880246405237715446083990502637506418185253354250207824002031587667642511351012173814174031364146534053453710909226053337561540941038590460113202133689876900844922916661094320465943956384010759406739434385317184383977577137072100309852683895170097476065170556649710815912558599414723585897865268641333319582000291012388362984511608609662191139794706755233664316012112377518455625065039000809139094655135087763640447123005201069327734648306170604988333416896786535863346903646719888249928583528149434667528851791119777745042662770020921952079998011233642871509775428114163701829667142046559619755405573419594846422057386300596116492276314443229267604670934874604632137023340832097967297168634846602533877364285316601631033072459796686838207980688565325582462635531782111650495682136420095577749687942432706249199664792736488071038409582513454636948220897965770914510024918858422566644079975178014998381447268493153834207915609335527322352986515052545331826483581377730786977010859229669169408168571870905856077619795416115929028451002530445575798797552820764908631580548936628344663281134463406266368154572323987608169484065289682520086453733228908029416847803753523334007931599489045684193190798465770219655021988519317490535805397588870438460421437667866816105258797213099825873171404323464082210409899215475323102469799713089545818257382294707661262064375732574370855445247668513242845844027018175532802445075976939934624592490914227779791691596162068075167118220871740983727467370152872410407596371830380354847199937889636379562293713557037314682488925410246758613785100605670020356674826445818341938208800041798429067067922738077851917470502326487274131444896782245784562435158807942205755698695465988640489335941514393494463744827141758246136399583645928860247664120179562062219239155536991885860769775193810030644919026584740553593395184751404168531044767136570753455704753070151644949557263356152829437306021274734025145891217931402326068649725241463727729481489005293674446821275509150296047464674758620129222583458008153728209682680503784916499362606981957880171667117757087090394950129507619028525384879879670330074750914296971904795570723701437358593051442238778322349130590002485619962375537020174862504307763831178170439902661710864122952602350393546758056669803929875181951878401356481497377716006470209478014919122646988441438304764724906387636140618840011122049100453731271379487469342752190718868884235088444527799260297651923196480139306492975609517203594576995953342300595545599725345377688218166913925811595176255708278804252815511772470173804700248119929832388599863891048365142339504151925674879887058762675869139673721785737038888919030609048756914833587067827149471999267650788724661993857442987577819724851922779655998531935532558186409537171554065599918207669784743424683183958472976586404421014150676899500376933328766170340265858841107324515642598351791588869763099611683539310385950118124791456286273812486626953729924076592484030603074866700679953412200197643640293173899326370515558304112972568931001495663587002812625607595118152003803118228881625814242398478108626376891071238196803578731699563039937143697864296558183338786712269000851766072846689660737158131829110155154439648147673988814512733023854595768093482742728580888948078983479345035988857831334751523378855213444269151896029377826109268188846221392445533386374671814543504931761428275271611188837550935117170898729141131140933663257103233064619847487676472199323412818827572386431722029863332314873964182049635801328092750351833923231867108412191100158920525361957714278387020165767976422626648893596981927789255848826775482973675929041214276603126752835745445048967177582619757789437141887309571319995862450312645287800554787135268336794504319985625054116647365678471284911389040246504282763549351828277030700968547177822074137634407291377835656816903437759565128106499619308619488707098361778885642476202574364671830046331490999442332642109232572600468061245491224252623418864071837096040036027476466997481776066801309987859848007848832897316068507467173766564389612517119355459368211275398814662043344359889640824921323832968996408002216407760075294609484356112425214171532165412952565365047786022158145589443684768512256393969055521175726932786702876727944992716469276087605332835437516296767472540381997736534004702601272620655659987105674393703939047111405168473780951726403016391756408932279106671956535576106131063959540143598392407077482502633868264057303035394714610068066184399188587784703488147096943265845430138334819785085484299538692985393385479854189029726627234585636772663750750083806982043365064793792635567560878282681798950050956885107904545297670377825140394533225015688562575290144807942318214397177341548183802946874296701350284635214532372089431121781571064493694476723379259971440722456580814593203342033948444633166906855351076902384009652663478037735529083911628125166772101866850988653771931027097740284087938730620507254188466421532687278037287082776738434923396802962607875305522583346930168530124256448868789729310647365808733492543180154618740230315630411979995482535368396791598091811600451897963353544521682734595838461882540245029521880965284848442358395681237277459393530067365115543755649310982544803360559220503654123516786245959774512543517993265949854658619307348265008915718054953503021413320698432122505232038539859288941120334239922853974881517045324757364050388805479301690753221859935733352985639371796112072229344279121704684689430220905330231314033431315170898869205320972069866494969709634964986808660681084573552819360665509660096501565719068569833804074117709971950502232276478926646427024704622029781989434106581442693120748130187901159707041078426818779281911850936093290279720332393787359537473956276136982405791163417574263556464782904790582688233153495704965011109861283796476240558532994743522280091230548865516764378799625047302387593398870354749472362540355334815048116970929184010546518050035764584530518816370666565955664773198916473910554153851224624845985221645329563588252858577899442145295008775241741816389564533159114300645315453700405493534417127863434897723742631871585863783372366606420732590824950696832115046664007282218123071589652389332616840809524483884186564643664276662483355807117678770298948788224943911754047653388692579547712169634638207362728449767574389182553488263430260655715373323282374699754796389284030694190087954740184939456575627373940487105404275555662764608122268469112161428798810226090501609576053404298646583667741292050563402147551500348805145418510436068955777344824189728876143128130127918260000220326956235504079540491022420072564851309155580661556386754832354189166204756874110778904404238478779316222161991606893161742233747110200839301008524469336219842302661610211737046908512411588514466535059176324975649126903534916555852511542815427088256015940344137613217628886527290626202746834465326727248337984679301156221325263624798144628115899730774832965268062944071040498565252014030135532286381377336524368760403024555055339390478997275847196347690672671569153446459113127697296483775461520279243790020317358459683511766599538721473905189168888279521593069981038484208474273638965567200391726924244875988607610362704163461918413039112112847905165357773963764305863712074744636120905597823768772434339857553420892005662335105403897162378526857655627855132768183895180363085403592872709597503595467764655862379080247782041628488616519151786019847397760927641497747423687756978315177289756497085875238317967371404052513465040152253808925218937234819727666091327365533037565244698870178584171033796387287258933540072793598540506650674335175183718926995160892689492090890145606617564981688399855545615584911537507559612227183215292903174603292646661455149359209097769489817588659356074989988766721430734373051938018457022398275548363689822827702129139136488944046652950743571624459163390350632686394419888761619389022005944025955976173608830868553426156615818477405487839749996174072131159172501120481184124873784909103743725157342879215231166787608113496557594444819999649346044630180675590353393622483233749073836757613604577212527155858072593833372952996443292521561875260965760728699631338442793671050355669279294128931849580024304707497041232427221055373757893185188616866403523102941149197194712150632136389388572158154477887395408496693595795791645374611420497532917212100305620342851560742182874166206207500782206382746525735365298445331973550530070334348442811694381630089324514316325859435157171053770525752358344306625713842736332615731650242377745972775894002024172391800120981457696185302888028081741029946571691816980356955925680034642125205757469642359795850886873003500457972567781396959641015278102607387311958281502367476280279604914051487140931523483484599685310347709017406390621468852047983945792837359179939026205960165758677548259203368693044766705970021540844184181351970205707807462926979445563520395736113869612725198752135112406963300393758837160697519424855202773146522084048734927246634003932205587428105632443386518764024248510781458414488410559901163663520146522132283330979754551103093733456184502759133391223935844887400124429377332428277387576562669888761891277278986663057306238009940509642790600437931952545154244854344374488448391561268685844385709516064856208095437269434748510602032538808829400018326907659736152557381749269667678606829250261157821292368532287727745317796154486100475482234150088015359200501057507843649149984510636898858609556637928061506820494381608862943689371202147902618277892080712943365637360380514621609407550014896929440345111002976768137690535339125224637330332782881039291179102402286048231871684680186186068210487126915458855989358296344028727748872289001860554093233305337164931181285699153847983867629902481974106161360726811878330893199407645603158788646476968994748267305055273431940519854680721143343694559691605219846588500986553795984562004916656779481090057144076352397241578416604171184642521965771289007803496603940673101507052792266780317859443660381201524615813850159603522815519245528284037077615031969594124150619378215772046224396501902479355905964258016850817733709421621373629362936499436150156180089935460230709894955763405367931274840612909390930490058323879701405674663825559071383438579638312307211785107089909188778689739496051565544011878629069568066893375410782759204314703748652015630794478696400393507305154728880360751212281295892596702141437113301507296948390071351251872124742541760060044739767907337963736401585881339685086483447184584740602610694058982500474491127245454873298873177945657222133509938011722172640936492097069467449144786959596447657473548918380913896959164538671500303092383015334437985146966947997813260695417814546517515005658196066738407362731095413149629858437373749801996436690218758883318264884172946677001484155354137002502657751922116681144195896823337181987437899959153321088566253553459028023157654675507647779698799361489866987906830337805521434230263567638210377338555853705494135697402073030441337161873332181074084002661591527371652549580176963862622112457468284731025052517606271940243405048811968977458400111574951218502173707393530659505104602731974502284373749625192201315445120807355797073242920291207009070955503206977834063924531366377432666747531272717663767357486845964937483603389382851313113921088838544198359076762537210323225687755097961166455115162802709061857601184228720686861131075231450923665599348931778946026919051000983419757185517598239028086880089316189499092546798865955140746269482205500770710950971554994752549118497646476607849215499553791939254557496804709534731845725682421097381248655447091995336612110483737697749137885232372081534696027377948656931321681929033342773311644776993536622050198039854278456977354976718870249664600952227868184023493534169350209815243830557690471569521248897368510265435774168942048255281017854380755213711435417025428733870645189715461097779705393803047029744884243378813501205236969960083339237443343698105628668094643286830816777488254588756178904349629762336486539839807616902382308359462374550217686905149329478192950706242604602503463849486888908890219818889800245843460013614362427951737874473772611316964213259124986216707777528168115899531268807111063546411910677020339794806617324724053127516336377281036287560402779734992063621993406937895035792374977092921226921583095769389876503544769214220473523445798797731516573147467059265789730351040447169859899237778363406996449692679317764135408994621345099050434267463820960661432070981327971714472897382757390581926951539012762583975126125913225603994820152875488475902755342763150275283071301848704070152330145434467652719779727358370421527904057091776904786476231003163521088404757855911115115570691197531511068465129619930693262394394853328918779987538021715911005614036560186942388163836477205747126771200358270885839567250450580879220948933834809736128203156142410025290189837525385342755894365248654617050422681077381982475595462827806489638971986375496311285882787647276052732139708774975342802080756831573986439261768902827616382204586460923166451218309095583246275938715499906404080646418350169523254719808760087560278997596039329916733831578738789606874318988075412792397773274015115302420196030350742447262180819829825418686832982278936796075080494041440016619416371454627432511567122194129176583222918000686820002316401131240770939270276255440621639822146898218416197623791332803674831000831331050157400345275831049454971934505946615393501186669369111475850374357358243646913874248268125522117170882383746178856323821768268015871813144678260656938919743578764606849845769850250361345734349067054541976147632601063476769852041197094362585296163369409203540377273272931855394491099985270782049814968139894345380453453021551042399232845979118872434580078997441442062763912338839283958293972170324702954815827162833110485606005789631822798411181791073963097961065947137053239072130782906486929999196146833928966895788700219877124839809784256082262621627339340014166580440853006577676827868387994633174331185631097381685986378341790619462752371527628641013782874991500631514016597100832113306567673271387675779985388679284984169726494397810985452048203831592731040249507132409790436486365619170732870235514710187700498784172443442936277914775107677558342063981561801695857566773592237892453039861083067683934355106794325872222203880765500794417528288776349006929221189377034300402714765067162648026075997670179912035128803831736797042480836855982371433044050368745740008414834903862129838111640170150798137030592338885398417603984850810895690197809948952165310611814778636576303234644550570730151497615975935971775153999371100174297667207689818495481840225609954875677856685343750988472020322797027205768402372731595451659190498709286921764525415176205093559736935903960367768517005190529242744896509751836508034889934802083996345094321164164479999909368186506383377759410861549627543634148683034349862671982458434777362228377281343665686040586792021809720888281786724610291569437196904714189332496858320505626882468133901871305340950133231659903765820867001292255689626116712703364320240686695732515429613116377012901803380758059568504974773653625743937690959433802303931400735494841795628151365404720059006859755452955458121334588033620751789709646850799350175862455356642396622599983125568327056741653756211116414560286414667134928194314828804155173123196781254791138915321245020259811355309030697416156903735100206921360980486668542125372894490254011983545492150551224324697462276397391785810189771415246638350861413260229762884101890885299612254126166162646219561311254088337469637699361883269854950304554439657393105399583727817870526597040374578867492181917774291915956235317966279936683849567104397601182004733682252343216850809670659718125932697808218776510853038568487353748101218742450472224397595871137911680960789517307795890537913208580346767405684218526046750401011114731372246940217474003271307121166604157105431224587242686933816648281410302207722381352765829074911503788566943509232017641820642382461902462265069982162991288756114000860642247168589216039771517473057111478824864026071427468402473338030169452240174983041538134513754205212752585809592893489751421573619989779210235735123959858039354730293604747949449650480340668182998106973791812250425812191725403682443029087871103234500760314343412937964478211904593964935253475976980670690061086494112146930111299191827441482331513786932900596886918141473231990354820877078784947632056620764646791883729332739517751889075846351962789098891795875215689283339999566287197114640469406726708642522060014587658809186897754983376358512785461627893303208586203455893128702650679056560833313867376201100797890689929335037674932598327041754120036828957040165192630479332160995063231453338396682723488238012551855302774840693900033205907230619063605289885449743104361062168084062184276615516075499908090748061498444758316385409487985507131755748510647450324565428251374425459811807596137972307650130802052457816790213172975750941542783201372623312290806615489049221727853294527014644900423786057057950652045476924727559920819856673824000179130806752397453243189821366249978203491248342483353684410649575400187106942743406800659868949588928719600999780438370342538991733068576018860496011527615778606917341468744312176999299567973394614211712268491670639881513860381793463655429568326097404603491063401601923867423707807361543109809018098747948138833779408414927456255665885889088251254150969253281193845373960248386488297799940855463765898715429156701920358292516991700781147621802686554099353471427876165144480511839684446775909248607603851577160227284556221118030922812933949280609873023531154662646186853894260706589340079346668691341883360242054489236208916813348061284278297405708875014861010665104989721201400929573201899215375516238138766128440119319860396208209287178873192336569492749470221261345426728365258353589136776690076543427737465147825179954202020662078078411472667994688061698727777008378344995635189083193838576742862719296773130643443745790395809225074930923936478205434649814582155392852152768850079518215552103101878871136996713994262626479529058348650458495571933500513451196546156423516643010663858588918905253364499570746669056009340092613300633431282675108425632168333425615077760493274116423990648898355405711388611854371124155965568512971836535789102811696234660865329900971350441410425324275210544381312281023715914731363191722118477330813157262701545648219901215483666596424798589188331341719500607868301502386436334961581773373417229036471138365090498713537936188446313627543372995227388893667696307324911956389090240194229070101988565380698972742363106703053342733631959102687987067417999146239981834441216189199280644164724282237794093839326954196976858908270037525827689401627650403427163375718696908801494881238218604197635361487226376732196584583010758830655095008190033321994973449777443187160899593024484453303514772880434117924433887733680610667132420448936885299980159127761125912933201166448767978468318065211424738014068683439046471803360514355054601297086249657901343651565801458082398623806414389988141849107951967112950346205717712704352743515476190672796820509885906484115108739223023373850558443295204742376576509355335086197615538578120298142151495127119282884988841956704214063169333154669235728593663191299629082508007487520665294923423838837499455166875090404034132533236287976147273651952263152008711419580667286337557795949708624410948312697842822491233570601813685557101493025264294249488332803313074626930530094242460486229371051105676798084826883563779123059919918533768532308314317281011850736787372480980633073544931281456174485562345546833571091512844250217233034763295671999433361179543027211269028052834409321635144531317060145420877075205679021968864414995568094594938070746880312775547355346777964109062665184291231158167930193000218624001106360590904508654910278671217207640943069393386145538721533110725592091057002501814436501702821329501234836921678322136060040058131915706613666306715298599804821573550264297960377046438425990722913943973467666069123527225769163301097711545670180205378777265267244306976608891176784943442534234957718662945144876483265321313344887979798359744577480352633530068793360921288647143146871206309335857288737025352857025371065861753772153438897273263591767371955540311936524143207352721889185981468822980846421810261189849608524693602684380459983625751312218099062343887322914756624630654302155877379235159916680935445612249946774096238339199233467701798048696986877975792761268219769457021426643212635623926038632729913167966112902002470545199976687261014090717219996997394260280231372798355225106449939620921808028050456231516851339703560036185113094591686860514259839902612008459565206853663555850285728389295392433978542018001387242516455680315555526318313087226810605371873578710194220224532821950680332031653556983395758149637378770583916450804893069561649046744009181347321317727863660244214667294631784766128303082757798147275373655402118704650526404381105322984562673948980641046124956592313685112665386627689996977640885181926762035991184478374729137409877671544593949355338209350232111940367308147339552538279035707770686366164172020046880400250277428719571409195841611575667284024993547903714365370555732466782745113709180644617850953482905340044335945253962759767705788311189762434096287205274203458830294305194424031783314769135700751503879235496224372838221890605030273003658254944884820085270280136755914382642087831399034054113656295875847768412790012352438930957710323849355595823370231191491219421256490407664207097095635373259202016967377085100523736900997463272442639344574208751889494850895742275529794595588754951142716937288686501135679149595721877202629722079978428441449093775405530816963117103476383141413794414494317341367898172743789762916397511949210655191452527198243062315504179486333988065715622098051974876418645595605334005637504480995157751125224449411130243053049029987876469597282099155992481302187901243415266324749731923562094275792902159056731907131551200307690441451349866886143793705193110447746502635143885519220638338043692682518206743634110595684695925468763882999600851894887401573993627406164909327192822126040770757796424628608794121013165032805520664120766207051288285686960762773927550454648329224760446150851427046569882348316225428251604771403473724015433040394903339675189037196622598733081951177894568504512054957571535048195180739341628297898625562626064196802684684183128036912276753152446111575742161648107066613274997265688631368988680625490513036337783776794473037715200769705029315605389158112757206714779712872908107712643685262369046802250166315984719275283485490663162386324002827879654522967035669129166361621431671556031683545982823672679393230922707108508868024885518590915650311224750304017113261516167270934366616500409010154054492349916860890680187030792531022595697923768780456369753783734951923460288441737204744585437176185612441965596829716823547044011405370274430890467734887797186138291181168715008571979256481174384581466318735209511088899256737182085703102503293027356174118000195615770537251321966331546682720420962147306346649581856711826642448889602611679417364852354949633265407960845434846133986609526083042589591878533799856564591933966071598267705386668043556794637083635992923396276233010124463156014125913279301786066668518824667300435116376682251108692323010244067536860411891469676802446674160102914586133642084833947401468345858929130713627030554118855947043187912541477571929143857090952396391287787119382337489499869395941375786238732227285756551326177950799890967636759509093837746742967140510846658586080483630233432324174152281096682881029930486837275835991179065072632790099732392579115881435244941659407135605425348889469088205366642242015324771563310408098665348567957955815392752612711168402927347131665470628552921313256139858042559240399199544389552951659846997150499622444655114080445067707514544529871220328282671795157501666499773224293787792189630839182241323837237992733157291355957213486718575523239353272369647754518279435834046719040661870048414949529963395702835435096738163984410915507249532511399839666931675600269505120357701313144618861907684069756599645947829490886150784267684845796874351449564377042564394339753444620749744444500532691266072859589392007866455631592680818708671344900006945209858461568174412345126387272616652596642606847820349182606325686814015424768014506951947334592330765653582558646923092584414681407294081210991711983681454273074038837679923758705287405461733884631423175910582446367307061964632743030382129598535392577528189265260294142637545327070935526401705981561128401085145430290066349706937513423638726526982744815559065566867794361150760356253869778817515048009963636326376823897461191595665994380781402800617914767300495457605437659576097372190434021748075694999805198551719859759401432545730900651310714017832138484363225580593310715383412841474765658338701335437981700525455288546819981484120518593165999249505048993046179939819044941415131788277451582695049774214123425496225003578774029450795684711176362714478535601240542193736920010157458115744361767386674442224298733429469852782360236272955089345287766198530845239986490614753387339662637821857030707044041655208480955844550721700457639520121188075662468752849078639000902295416792405920142675418523348313866826654369678758614430542745086204401649309835271594923485930123125929686660627313878687651714291541020511898033084260945007140895440809006387176588516529759145964609257290910350898801453314397034452807582015268434120255074736774755388885023777373135202652478316327721897542675682713622303593197640157012306618028557872340715238793521440927401491978787318709779635762706321195557275676228020551469295787940692848128576843191315178266581711284389929669601450276677414771512354760660684640858209386815692888947108643320194280424187833631543007573146885494561749707643480396530963583187758823182695808320743871372846802235305510225366614107494456502184948372570127010794334664198999053011353881900461383743836377663871856388968514141947282084276211148401100468776264592232893436528166054687202936340317567000425703369654476475036320864108392535773489732210044236666097862904819536114634280523668983818798117240136796740223181794666011262960272583025317822595372282082370548487584484619914934834232417336530319595746392946269587259714312848713211085251305719422024974352927786189668177271126452276564452467661872804205376237499201670695725032087695305238320121550260790491067466412546986078988909664849460515138023849513962821972142965529745927344141823812122822142614378251239160297487991552957977794168152280755480325426120338017093746686397367624148765141300295376661177811772794332636878029508064897414782422812335184329357108973688415348259996318154385490556125279421706011151901463555578860341880903515718338343505844875297540612317094439784968414798228490139906291321517881421627486935934405855768798236750280314161356404299891115426701236822675933808178647394566307001366696055541147350524154543395794409632547157272146610423183254799318509958636037422157100306118432240296774762051349057336653200483981748508740905441482859665348428845312564164493425449806629292903109514758074080101639729256445595999565043529263079960799818527138276949078202450132624397498753137509381409657414885924286405584004166907141241529596043121841314726848813472138469784549949015754849468736038259267903413122054759412695623870730490292440488459830074989190833713487216002833983996541840099253689586029841039073271962659864413930896536241357508152918918756818897683958746426891569768041936303817708361413326590995967724749756434932233223630369575329676572260618868066795547496990269296023035822916058955594465507378225493750313038794479321475231081395871075593468924749866744380481365381099752036771944698153227160959529148346171897287689258917958637197486504454624962888274098692101956544143202496662897350593491832717051668070949976858116641524504987589930075225137839338871331214886933154199606007649516332642087572052395529712317629094316352868204752771810915604779131041207265625317181165134781323825195072856501466876358718424930725452461270068180845207703444183668220921872844383613183405882844513604735859561383349012355677775299378197468284131396110856161188694664540600129372072414457526316811169950757989920382702846064479596670546668493866759686779534620215742124817639826745591325124381495082300514572190364296192804854786764502162718849358253733413200201727971883029141062438957331771658669210550936361430203720908034491712558119645428700196012123634933751819822873904742384611424095420577151755320810401875227322853033173162503832577373664795605647993341872820449150852351740078749570923183926552958929411580619185616704363705889648366634403003344053424939719234653371218375015575189571728058279899188770015552549392522466498461152535903155534279349959561621188725173692374689820914482239953513313084235002091754814060478895849041249736222177374226085842513680079280508471610320837944134701678404808646473020777930080340883853733548511855330136186376911639640121261759305871374616639810329698600170273898073490473481998138810110536483873818096413113086404991789265797825128647593550840476689825879111605292384787838913494448478578438416356921311932013273049178612216572791739576960275551648926808201245590280959319452259985060366399409449374788480238932550571281766316403490549793543036395995538136396189920923223053070932638761146130034271691238723233094652086538888512313863937461775184250139796411942713443752403219918224478150892015813609809904135925764638365306493875477770384149159821754060606355368501842234063352997350245406390869525102176838171545266851670046557248223578825346535859244027295379547465807324568395697923251683736411085194617826008134029576100390665682761390653391666721131577717177015953955855207339853104840047286992665657404961163655379733196254053323646979080316675897464304962956179635002750059226004134013497841868613717726254740994287216973543200217514689433032302385299138600818769120901820819128496191798722479166181480818613263147804978659513092139539997852382013988840904430286609048854712267106810085227878924665823854711375935506718858696238262732425214361731717202913507145701980617351127845316897181407519809819138089153527837326841419314199791650604832928096371735469705046733623651827666021805060096820238414031107775752269639261641319484087707538897775141585684856950191782874209427031827187651088325068352000464125164807749170255140225422272384657414963141496621084153782839105164698967799362367669517463374974368371378740156040431693986669941904818381788746450730250789738787427113800582332931183576774186458147113048485846483547195820023529142354214174134798363928046037785541167298067287715689386808677198641664324259231488357013624153104010903603116154047983252232225306620104358403944817015666954757851665036427840881766855270400618027126500520573184095833456124109106521567885050108232259670613280709340365499097881131046256262911889522496542997911018113815901605076318924629284342784789806005854558826491299766500526191741952251005144993286420281116657964548573573940223048749733966808940948139600972153752261087429040980638608281495483067950374422814956781710768608076039904064495085160714267640295730670227050222586657038101256163418409786468052035015466234548573370609140914172177643482057225346889233420243322019805669561107017590303972481605276963825802536285747705182141372140516760211186247705968870264289307613669917736786673309887643853501142390861256781554674945563630224338586205357159278765868771110458239458934085749117141218015265600337323257758067097807782340720221085504392798621204468204173839173006155674858489177059094322367976311512049200660087946414001694560135178476017752420661037483803580287533988689401678885033741928346342012946617761493053095323145414137165156356421520712521911774358595663090987302094085762916420216764262339407524969421857851227563636820763164834065108879400718817000071252259300990742980707281288329441555150791557776144014140604152586749146982861091730042977860141208837707965117391587657566143942380459608470533880015493261947920848319343078736616848937801514975118349474458862252375342945938213058005362225303115528871546686840583393320240983896731605691063215372160805483053286072067893819443390257984402273802066822480542006560871625824802052862478645583840063230350958077834669133976577315858543178755664061010517888879981318902027434594299036891164028527852711724614680361710841191474730071597582504069699294278774904517100408417256295883715431178738836905464436877406628712682174304596870731310309819685845959181974168043796649240797995296302575717925141640785392177855863620410618202631311403572877571596233849376598252978716353411186859788140677630678241861416689170744890182026718773805423393651949713762371170344980982423327791466349281757727037203743242403874950491795093194502332024636826883776744584895132742819057809608526429567269497124951168638738598347746976494852644313826699748037407711789759197224716688718563358351601702397832689924517453913831910717727759671821454864607459535630511472332223470257543519743901810986549636875791784787527792539524227146231808034905385850310983161460867328799469521768501678223202770624799229436709065866177944207137603233384907823219543632310559513763190716747666343476889838354276982096853831333010696777044278544286675395302413255539145240698779990794347732174331624467129749804233210884498826352091082440216814877395326297887604240894924312097000347944676808026710339419088776724172240411434612749621980541525183805817699493993905777476637812439595751823693377567637148151344681394534552592753641718023949487756717306706929253957409176781016184284399423792521371997600991962300514281944856494955454583537540185307571853683485441024630578815636994468436926422688929480352590844172980245723328282468682370943740782636049225084757220478755999568455760425985392865295862220035882766664634120046605603288363038176722119241017307045188364550421872417647310301708028009063004301845958835542039155345344472486854673344986514520318267862381651213010976692536370076142500689829551964429846029720394428691631758459835117927272992803931911711542742639167421138399146536605300055927248347676963070044511420062158794327223548768868558578566367184532660825955133963175919254255310590933665713980185475864710458645440372654433749201421246719350829613862733616863852858727920493932095373480153952190394953362495134183613357160326301687771086833234305309241356453136800012445673846963426304374758132960781543573079416698324400491695588132338518073176799616179487160038509031641516711683027670749006261628585700650260420946712549138420102105529442509378809133596274539777141068389770358787496030717646089988221046977330291350541776162678856255446518355899839563003808963305315722612530299939941955149274068532177569422723496243482792591743992644823896576988658365148228829063874096857853213746155188857095469891998089548938925816399418356530706215908840731925543656730172956644443585690569186847321729795719801160337781612850223975774683566028401337668161564851493490386199687225597023456005632486147608829913344468413801305914167175158801538491673092726854733395781047958902196631035374710748275276910466235674991770003433887504302456406269782540764760011973250796078111347832751972961057808578480143837262469508737382462615977342565939449644153754692123593759658876830624289737947990998349762104274377216456004228695314712484376072310423027975307466718000061549954412276195098069719167564666615189013688102124447481182421250601564421096026440256717466485478246884976387727827010448358106430795686942734025849229418416573926140315801228249239878859952039313130668537472409163904088017333656444793211153096734492702541393433839015699546340455435551963240362090282141519344660818562818574717749630356591048311852117718529432059409327140946824145204745603174664885204836847253806114959957606000879385094607197473087015259221210507840033665081095987120254565184694264846158374898020278222444037788077779724815956237407524047316651581553379185256116036768696465194818787967376494502856313704562888442914592335608058327326813196213625650430451597144777678856151435780837238098544610803394938337754081185072335805877613861202930884679865555694767167611213985775358913428501994497903198845236254940722281178734424950071222707096288241714663518262882646007766103296236794150348324276122974413050482058780563867851990503818083577703957577986924534886639102862756841224974594035290461215616190928497861770323878850792801065116888595556720781999497873281486744403516333770780087649128344868105472528105771796545444646694015745089156244555734190902563930948925369734213737840696292445220043836459431947765701041340024064365230291030195527601850628211695679135164758629927941881922183445289020784283588930079215142331118071141035639468671237387648772583333500767989343989718006784939113602539186530846057897919559849682408734380982502504524644319368632841507726379442688457904712384585580013771882072612275253564114142298437141357875201268432585219968001352305601642539937214453300950259201468595269070354336567819038753508006426010635857626039414824658297009240588416947914225688215969925946231391604147182376731529585115452915977910447031966237645115563655953118514020676276008893802674929686471559572566360852830748138426021139999103249160343185580424347310132990520799316442327718011942076236672689927000376434573130770523461077741150419975250406300868812211266947814294860600696702803564553810603668867756903419589549811069059257511616495287504952525009894654906139539093393043461649396521415005164521574515742439672564475985234742353394796475758620471697849671611879698762264141299588621724158253334097068589383135304937865503182802926441930262204495568959620126851644757512497826032302179047433651087470956275588899016801817005256230126156685971346349083387913630573132561443147024947940516637191208055203301137329548855560075858943477532838687143387236748017660869474808128780694948125826087525141786953975585188429498838107420196698970681858930937065507632915685425823537263077595513161416291424294303881684247021989064869532047336656218430577297712922330299372683123623826964986489363795102496612251372489476471834410881632633899847053420327042552999323179014431340857003896648042105926789739178814066841723402529704489153386989214812311012536936023551016588969924548200170221630046018324665489350078816433148308794333987358366116667934768975415935432973785728361036754291276016193912375664399500126344373321948690644324975099281946770427365358394322162023087353688781741885456836482014491548132166344679085906765800802652222911786567509336109984273179105590588086328934749846505674366093653201221417852688879307880686035613664384999923235580773801154101323794594555874071074823301648258189501605103169786868401405105625627317264934663693380863330439646593571252215061858369814279178259376542951121735763398291323975388522228074354157242662096505500386415432003526143857187539473567425719216928846194288947793680459728595218551721384323777144500177054812466487117646896428041719600270206859442858328746593280986248098717419291987042504546647997766244711010307825984495870399129253564851170719563040129415526312949213347810905977038891441019869374060954006488894976983651490115613218013872270794517267226912952711931192451722197044461288633779947195775316904021812271926770910142063188925846593664418380391315287346796124891419856436437980904128255169445552126614650583538959143065433727777580364635745853625621671528362747674498097826879532296451662024198847701708096034822418029735806365679640480668858727546757309160415759206158495792808200875167332465147040834528790825637009863189610901039197919694625383492840171684609147748483362789749553998636593783576371254181561332543435227194304283710053654143244168420263169635969453367651368735079515229516109026656282071668007808049387881638000915345428022280202840354350419108306923783468860464647724785002854404030380653381017459258653714495415262536517343162979848087405045895299063109976740673440322614822268616683757294709357950477763441103457912635942953130712892918901725524670558295232043686710984830756439175151924289041486914755435864333317409477128340820339579720571385320245209007037412439081360524123043489190027180409497244697606963850871018496145344049349092646578730294628147413779177959870569266670045500458605549207417490952941306616230036949181833252919770109768990966195261526958798806474639763304975466075092186221162775476136462427032867656287752225086313294852648216998723594687511970882025858643358044652255929903608133022849877863976627997540823437119002434116008515640850600371516056793453383938939293133449126973497041377332693046384746192048447924358291196260839554712854841154208732482626261846653635710518867950034432488199117428582818420568984478236638074604295333661734323139604251673323257847599170243052277065628804227816847568450653545891860407104255231907590471015281937954202442907003337730858471594441752549998121548725066781894648309196341279483436846982139435285621393057919331002243971843470994843339438607670732786818762451719375599849196622331072619322673147226356068388512180060723469394735337559363301491174651269931462342417021111197217255881109598376798171746474379047035078820605770408967778326859801498623988739120995764079751708569282229869047939586152555213138015556783897122866410666308964512896195832847177488577791584387118168544123705502413311905329825669011663338116253057543154869744611122964033651402515372279570444456126006803982805351745679459037131548823417158703075000204905133120368211016728710989806807028242429572811386819931282451776644565296133392184445105470426471570418856943651571740781616724188689842834738578969248340978911416913965853049121956582540054146921642836098359858384133705902607095887987288744417925612366592966783314767218968512511233814929602578179907083073751618934598065834280407071714124276128693094294157116533304790758487179392102304450860944649731414801594289344841115440416806330945936672208448479903697820734324074367031793408460823397386818660307267749662460447853862114996002103007735606582208606717403704829766071407777238905330342494600200048172845298285340153276755006931959695639127090523109490387349084247161878150521556846691795692286319317788394187615434666393130745590322788386369878530243408530422733174832472522345618207785416994695218982619481584845900073360158969261932763499321397173887239571953357355100400832061160304140706749943405893043855615427500974574114220600702254486295885255882453577826877565451443110344873469377167388882332074622398652086590438009057757051883631572442257928653611782318065241647737951890092514532334011264874191687292517558502636584644998800224422078152470259287579069030719088835647406860293768003807681339795596993911002231971806611647057644636611576258531141497877525899484544492044658512384526623327382012573785052177817864448116263728734562646032717057856249749228310091472698225587928108263844483158316494134359941813460998459821679304961927887466673047912984744956873099372947899374252726446662174217000178012175685953134169057465746954666627101715193763754195616033929393206417390895295152382305701310122946975004244930005884272577673898009399169641174926841061848859566233768779389826993933949036840904067705498851972565810132081461337532383123086462794453914007073468753582085757523656451342996548728007043343397322167045133449050327332774657315426331837392625639424026696246565491447275538219401042769765806916650086613561021179972911861846291736617068840307833358183982776751754040411601100373786587193913774278872368998245727737831477989465848655581361079174882687168133230884057306401389038371345323070120149528882753110573319502073882448189606139498553583268923795761258218265525174475996812423817123147424773705185063995525972362045991055248606576370085259570784396229903715799663715663607249990847247806091449699463822843374956371751282104431032274316649231761858733616391820472051277859743707599977048137208322522847352246887212369044188176580566875954358651622401275510910009742495016128889213571030042293052158987783610907969170465683340168607509666384632083731983070265183290990585823504374214386524259644277313425024420507341524428933309445892038150206892068220619820031113921014379295232224418425539740763063713743803210981708810657475107301984450465993139118639121816957043502646982393862631556457767285248258624405511132092312723962321726146159926607250037874598127528033265575156837414261345772372694189455544880058003991943728451242983920242984409229047337430171207987984584598755278940659333884450446806524378552563176481072278200052123207382222221140527501722319477115814043700096179657798289576786739772282008442539790511251462949885276569318095793544505186179689972815146121478938139806969492001937687936990879907558692294592158615588197143991236390732433616674653360148919519333475282948051215291100611490808671757601756861133876308335215629210629416408414854677473520922559496293791610776883955181798112719048371898966466274785252460809508543770415025113746075900077519730533985863562838232643504967597345374303904009066898529732995910979739139121222580525756004997191185827872606623027418621295216089980127834471421555843619039495002412017157780229483204043310565132837024939119055844624481229800018057825581989828535224847864215662280863104238052529484939210303562569897447324845935272926976497584533865974798552852295918222029582390424710211880167131987352493665773039585247749835406193758536700924819803334808404268656929622433776496213655154740396622734507279510670091678297942830433224665750523244678021743101310081581100312956339927039806346744101837504555552956034388353572783430001236732909756249263307003429440926862105429055874346025312500762328233015289937405539881632277097518785296247593428548718096707965482191560868806461589979027289208349900596542495120653842190847294258461410497305103835852140319048626880844106949944120716820249482122696898089270026500809538028494683798218712926424900041811682192715665983215543433737964918091562066257898334096706882107537382975561700146353146543304582149307038708924843432133524618510502997527081263581484710209720359390601471681359272133965861024266555063575203874316530943081585346789280064159990354873484217807395456531762351662252182011888801553501229664141226682133949363536675044388112261568217266971651680679070322635658702503715281493361468075593361093422548463679355177600135649971807794035132150127714865601859819615144717281722508603275320710290065750290312908615817877875785983588350197063634916827011999781781891726777421882816866359856916289570082976748754778485565457110970342684613510249275140635048078402376376288325137627301172476797774422446262991885873250099052762630670513295113503051556839216681476182171152975934521026167856658292438572515435885991689570887607379984736832722399469567196030243041198357892364435496112196002252056140093377930421772244285894160109645937776586208710623714363098904545141107181483593562351630939604723840700174622946167897401383900625044229506651783067639554141149442459408956091458463658158227440672820484188601441560806439518620762488804183554224210773366253106231940185237173224693117782359839459618927326334004238542004896624993622326417148988625738106331964315459947327010723489163642632387968366258422371927363376820609993346089060715999240617579840689770161677686294263776874827886118157753640102501322946466858584922018266817563872866505070080943157258300847268273478264058422626548658568147395238089166860437234639104466955170998012756210144086283075299806367266021387119793385691684123691217198894545549452423784194252616243136798300091693381395975393737031063386132389837780931170598956508625138224462257503708543482548462197825288701054981373276437528948357503933035921033055832595449592080976860991119291235162434032862933852777725865552132739744973481155004134219910280563462751765686877185884041430210100028031451717132272610917358069524374046099071472893568620915392000047913988351576653679384823099632885978915112594305421332936902568400133660620854032275787361317585339184597023458719174360311366523024386115524519119177082320400937442420311377765585419562712182347830114189500582487378029762972125262989089422935786230526325750736858984514496995229678739925998366029562152246698671652182807704145573291348633081120506000407546949398237148822193357659467892741191537214908180319577869396050084517513204314161216450731385039509551911487385273415870388801080021336753068186169701659919807909703841102950216013460928914806910553221038401760511497303178990943735896486133314265470842197743250411617272498056041587388298912624715432402164438645648113887093670305346511843418996281187639039554916894839265762129372870901557516058440147576167241952358051550519417397286010838684809580432108859465186886658456988753734527027634272488037200400631281917625923592787379564571102450131723766019720610996254130763001866563835632165694046400063831673210801878445387739045976237528545227384137650890375345154173850472112662153552317423232423455480954860206321145788526984025477505281483688933846334027409039279495073429389872821326319082679064895352261875543370841585106546312934677171514642445111516059337408290954941289032875398228736085573230714852867794386902911413548751982498325309881884928460060190643913130478662435359007942508229089465601809727501446328802665205722103126192504636630487006461998509152527404778126347219549766349340731217952469548844651640025761443548542697701980563084095457773146199011197779743835099032183289577112134155727696145505890246689150520178646787301938956255727742936566187239849390338325381532451258245242905875210679067937347250047578505137341302709699162648603239237597816655189278608464305258376973493990811984426640238324549294642442629569989885925627180280906007247515254936828407967890627800789723546687855831674324297144918869720593293680594966680662251720191992429111096583502494353458036822933246250474320346549428923259459278508835150409930209092810382589549319817614980189927190456221734758546222438997936500749821965532527920243913250514903855822386036916431815438509399067746306279568004728271115607934852780198329662388333269591676203237687286229372434065133693772732589927728645872506805429724795379565025573205866014736136833549939447093920551236579583928061952511004739899968118880761641417500651698443800555882538798607736248950930238581063884795365872641963709542143234895982808163069203007779749482743100247457958464627745496665493317227619870503033248166135557558886308321515352541541803660569644464743053135809870326454567761153033235329082679128183627243706231388388963820329802704614417845834429993027428416262394161183750440443472907749395778500310426905555780727684559582422256890814594970015861474963229976999989512453749766333657617875795575407811072441578519961576235588769116120284321470140358944724481894882337610945192598931999698747874839562198570558909063332208726414247591314321289563691944612124331612780493772646854409143905382976404624764743363789521610097096763607169044666474641056035527277519479602329817831046521936911841251071932110138180782809397202805803788608937593336949023279113070364368386367698118143277487393337035605892706264211486863532297453380525711990011731937027562860360944870844567915463184526603801405663577416386791641978943996420720492539767118647002152642179424194096199090867252063069759096809741024833997267790314315848178503618930944602542362244450227637997266133796993516309741399745667483706031646175584247759228575900037598693649707512879848952773031841927917071799619217821279727457301030353301718799111492922118499122255363937806318680088583786115156030396243384663716387193017571517213865211780479274447844483792843380441747259770228212840395152947123857173140093058580883622508503343572297846514438230301573843191605534746655408359635614460830621610828115408148351562591018282697266032073062045860578030553974450057082621587378194509459063795471027163470620003298901939037592223952434544219244133979656229926421498334255886448226288212632218686317650469402656753488542604665583346425164016446893974658962291160324819143211783074392258686378659580774354164745789338495211825566979263133122857996474675649446691438957669647545149395566563505108124574384381772518651691391762246299788739687403621909510684941137868180401366708439280093428403370484363573934135024242523202809162342612673756091586164888275588525926862103740110450954305055584621878581901051989271532297063560335967864509963900541862589818211388435413799250132488188804616475769577220246142150301811590576884216921404718337017924988301708180253875302258789831892298350429508377077784768311426507535891125736565803401831025237456421842797530518960588164102036326523140040112598100058687705047410323178045106535064767298726619859979298597925449679658958687573027494914189005389306841522090074551564852118775032111441592429906281905322707002313715026404378715911748746761971431855588726886615870542692659125384926219355308946881342259276305473523485323008504269788075743476470935364323319325421261508190022951226742680622730443878570211233919236113050392275167189875867333065484184525547664371646288934508248202626992573848621840889984618901995773553141943015512291977157729891322370568594568695316388116679050138796304621230682813089994200711562704800877104421816246562006919093069071630542332634022997275209957728925456617978320165592488630598268739557816668964177060523076145933876614144657392302991047376668974597002149510373897329236440726867300640501343833809002232528181101766425932469671048207547837558278768531007163007290971500071528481197310625353780015216635990612633376888325113246551756155739881286637082594336726937739549486929444257565493261749894930982600975023249872894799526388514398096021001959495246062222754164316229854443845984201830730911866581162219136588570373947704993755319418742905045428584719291051195448402640174431350316956095136367740354224471411709013393915759390954771896489159624003974932785021133014616669517597237950090986930693784455320195469552028300586288128644522032724971368745280032842242008222487472796061419482827070460353231300961628739187760838149457585802404085783189685478381955264131601114961123008584645928208646040698326705549584657685785904843460041233924499925820043043084335457403647803837105554606778859550601027610613892941651272238183874039557840943298253312443924605440531136081694829239651522544981414121367372949929511549410818032662167399416834151660714870533076867121933567959527722620227678220187443664752911868222138000921194280181666557751037132802326487081526536235524580923774663967864450286590139342663815934045765570968098227191667446394042624462009771667309485533481872314121241634430069844619521069579825470039893922012318041408453175744524067779791038036886673137009878104112968803995046406920301231167542487580873777088464741186108832905471941848049667172959656062875435293183859028050998664148894305226497233608972080587273637455491412055532331935065018386219308428966870394975797245739184921472266071443308526127580182922750388543569214097728274927244904952494890019557230208949160215986974237874133528342081358573054064108718323582653576355167757455765800019640957584326636604522643173761459616113817313454994834153270770254538127367796510297260173451793975697183294022980921042509806594536967523943942900856980286734582170613056471179649937944876084129333097506120384525054065298258553735755724186286789861030852957233369185178848011548230446902969093010984128847014944299371867855032984856137655205693511848817974641525533132446958884702104621156796127328384338391015845452793254622554892662082831006140089029294537404954240965391100807703801420959659794129209298518627160766300632683446381306225632025374052529324235743167338043604150667895405901577076444732667656091699134648378157055624575095431406850542700098615560651453816331754702673425697107440439915495244958417196193138454828577994344743620855100773161707688720988903391425308441352455617343796486257085312572275662500001096664801772816773134892732948214035877218946479400071753572761079679138987445036788829337473574236008027232615802829960433191460925397771595387350861338075374592769156125383303941118030707044746267244404133139162422758586887638054414462203707186636409464501760696545519587595308189480050755122520082943142342199481674675932647196935040783428478014279581342772153639425401747152574532434920867023317507666114424232219335409517331837111990500945055069499019409459320009168770724353728043917988483215076962999183807857171500935137427612900760171123931239045261872395496384890902575173440186901196557670866230761363286887659582143463446942437424340428589495416501931966886596085069673917819890401542091573433798572734311458101127480063972562293963248357605233355553962571226214074789313159810434127294257514024079607191263317502856962529512339577276734952222758812283776210914203662927696962192111695376880300611515819445114394708016039053393119883093514027670243639843747121178784825379862092005755089111942437441502738170774626409142300812278607875409476403203986115585326940092827100504990301743055307474230232170097101480186505340295311608006235893325355554578643036635207651528492429022263908430197085966310556128556980483921023961561598993057766723249822637411228344106833719228975032160759249984305027074587597128768692996563131381275636913921219367048643005721839055366591162387181048974542308304285940829142122911424579039063228617613986911440485125911570391292127722526954872484551599976334836865383636626684516360566320044581820582531908135049820278895903434002674485907269993012036714167603593820589564161679212091718103742360999258782199268650267341067668455883130233920936939821970945501087587657882764161937812364865011100017829399660860786623193095569273758564179852902352413331950916366839130660733489984685966995851262101290648177407154638354728772018996696163102579627959347691915786571447330039583753768209552461594057760482976729203149110519398967171563936504559512258559416977488153833406003805284094241471788003089664721193046637842782289977522088412062435484254542709809533363196832503628127384268694564547255798370837654810791616316428905249614903207454391190651206808336370133855716060993335810414596683686205940609920429735239363334254911234831337542491452552532443833736660380848177184167112318038552237928434112429817043458350997477450161460209940085176193531940347717399949034203093695476673942079268776749044314012704260914662705546233586598040278304105357338386177931805680399882124165229023705741182133458492083241526451845242154375083394585862422146139233049977609347770825665326902053685160129252653991657013277135375451918304955596244391623887635292285211292455074951170822223577999709151732058489408118099786870111709766068237626237506361634232429327186872630729107640410564347643189995871264660082800762615620116576271531141402064622935037797279655810667813779211507706185082966650750861993108138270676384133212798332704851315814803598527022142790840902839755377881780510922088277827299244461139139459818856639247378088983983473627903917451095430322911542282377723724995833231099370530911292731490863658587579704315204877231940033431618770753463979814563301905615180138402814571648656258295927712156726900956058005629135268322291329664225207474204451495016996624672046879757626937889809227843665856151072765055361255564769509109311084063440919008819805902318304307880689238480904107933518661107325920685562380895549890596741155183421274501559772687090805924288721857439785175267641285722735997640116737064907496756538010789862176438643836736657317129459595119354254493419462158866174872309794035681958380744399540744270038740912898173167440354575583505286374381472664295075469954525053660147108189176667673329656551940254931865697361376000759003774748312961182690761568903060807349955709798393481045639624279567521575697300685168398441763035602676830094156302142489422913144801009080147360534188215211388799489269136045314688985479462215562641052715526676157759229451331687393788450461373546581364125730068329360915526996663762261292720833874846146990526631697676078300030370474125072882807044300767371756852594358516994059431567777689636751666120105052874068208694904991014385865140683050932886160615083339273454842144296023684601969513183094105418581278798946974664764991399261587879885468137963110906234083626012112175578283333184864080236268346118752520197352577091909554953282250246870038554663086206170803259566629276342537152159039628815250249704335253619617192934847410740645179224721889831310480314476071234351907746649011207523109503750656792203012781966406476460738938218630699406339058479467316492694370533145623570170043737932354682400687311948532100959340411345714572290582733346541642685513886575656202344094847701341250520323792211445925063644067793247630511083597443905707848825867035272553444971478066018876838739234495537561391124348949407979333091155964522377334787510116118744547506108059497015314469351919217231541517467009751728338873023897261675658740434052671809897525505064707595114254714133959715503627854284017798358056982357189744962489057595270455730793370285494269485317910033807302200163919533561384413875080101837486956672134933991591655015505332299072243221523920298860277547706968873074286549536918331399345698412424652447848722779388377980974649032572909969334881754310097829425277431462612149382291940263378659725684346302960116489163888882965376122321205505955136118777841764598455341238961108096929183144373316366959580656855317363731641756710538594173271539686643205350849501528302284618988241080245360351782118283461449103453617085958223508876180222657066254598501626686648692415925553698453769133411013073423964749131243516424472570082565165577893653586724809879693187014323845497016547383911028208240731225776017735695807409878277756046537386087869393084489958778033010826164664951294144352690147287154661234032736920412662501971930773486899203054794377551444129539608558660356739812289402018315929861069800535819662507910536389232620811894139985256084681955254125373433236978313623108686191749355291005715086550219977158143670822778380955052775145575510990063555304676044023968206313157433284099872098830289622251534788783694487692519707369430771149060535283946116433981469413086845272626662082003522217921568187436930663730393567628589306148967035135655948094489047399856762638410465650161300976410556225630828934982834525954407723161667019993608411319677736276386932768151930245418884500594120150054182724526737409107864504749960241768853536146351835120405643648980407140081805451074435309054593715223515921215797203671846182140346441206618241183866155263088342919640721292396070317055855819724722642425937790931983871797703565576911501239736859943230791388421859246915814936675455276441926709817634614831730989040886596160068795371985403174968046914258691076931688070031964843199436441224286897928485228430421316251333509623156966868440771482742264026587640422420988021276087689082863620975621114323540098012442514258232064086141236789207975443730696808532620108934890049627024697063986493924498984718891308295307944481196585235500254023440039769550117737283163746093355865556038709237748026002160087325889092561102050430396494658379110255523348731933897039907683964075879185690307908600086779841757505470394684299769510452425330364020474351864826557751677165077846242922112390344532441696563258723472868980560977358718505104218728808617811651775117265669813994144900694862679967089782579333976363065263367340793873794228866637147495763422460201596617711094656020109432612944753647459962190753455003053923077431625698908706242946609958621483431543136100462244684257925303091467250307799347505509853193876757146646843576464075776311854035527919793031876056665681318930167353857484231106227487193386731486564988334168408986495416887518212269659648486883796271390263916653833009807042744598432817556825376344982271173521650812922109218353322122722902206011958719818948404431257903449543776840822622937672335193397167402804704345105311849742689863227229492705763880337073135939302555855620827165320356265997814902148344451825170328192671721102797494143683660916838685202144686827690931999026779258806618371624161535393498080475874511669820125230182403849932995223833557883280955862032747022056728989066973489239664779629195698688432883810000284966882595368638281940077187937660169225674629193840672534082142604427224891314574360995605744072504408386648128612274909374638603511586458583705540726999248716550391835731575798521581064807069076145683467149221342056529315938097167231251619596831658234758732593623304345094624917362555207771709027044925809674029293978888678615023372736235941899869765605120058024004866624678035427259607132491749004528710715752779694121957702629716174421686749607929682099129900825170135244167497359417367775569110857851434116367900406292164041230868262569621992771285952613590183502757717502828022564910302698200026114870069620955198548292188810416433171549768258572416283288618214916919279014388133320694182913646010860373217283359693049505211597216700900822073765641058401807878917604647189209110952034890530087886617438316396006059351808460294238669644390130900094292479011272889673793028312843680619365221984307837007862407027890307445502050496538513149264474955199843441889815801225807740285062777392194575708508184511498174127685975773226900885959977311613495489614109523074992876318463851203912169596701956691459676203737274210963204263865039309997272973282203633546368645209517306797932926472935442291539239911498739787944317185147282611216877420721249994111654743121205358430567864599805393759830090429380792494607868194650431869898836456145136747585580082580512024399258279270496384560633625268217803807375928194460532528438243140896108628125120923277497206896024990606638667877895054079183283200779006039991786865936043231193457794794592992598797829894161052864408907771410923510705568875889945037141547670097579148880972932621589656798347315417821730760682119517468418940031813143436727182380386595825240964872872701213252018681697536820692062755825794495196789108307912932407166363265506898755181200365673196229426328487620796505538061604257374729615372751203215896390720122539935951267691480290152831869461975873753172230880117012468068881408311322956303488231776127337252378031728279083328928345602464612838739608978957053627785843110644823242600771202230194344591032065032773800940503291337858666892620116289191936569028540648496508009569397734999998632721984338409201129260412618457678649292569134536685838332706744061394832206068408593908464281508698900851209615591826099670932972818132989252575558321306030878882971280156219910184882729284578410913171070011695922586950141263343471207032894925107334024980679487641037627310607075775373072842277147657863272868209675444081967131404478693468135878023610511761421842592417927087411913552005175981808116657478851307059929967230384415172758727471261891344665249732549256357199373078303524432908325931891496771030147002233360659784826011629204950699432788895834370278591400200850997309818920936138503769871681094389564638602073105720876610205215260459029636453596024241642079281571263596812706391225679836302975150894117150588004477697914503978933772757371772325100678510075733833915166853511152045052811317259721726032510745484426144323728432162883745327601782719485462542353687380514411242189682505112121981589517610092765365093588445621954834719429935928204371653791970032068901444190325572431052102007898152429529749849226651315207876543728593316518697861985941488377729923421454966910986237803777229425419333566765790381372304157167436942783148494858991562260500019013637171365893635096713216337611029897480337463567042917264264215953817614942506374383932092215107267025058827534821748407013546499323166750714308742203275804602852749487956524390724141379013541273477264696762830973212258449111169034619562795807432234718274725186475990014106387756893674466067281184946167604918772889583241260284176870919225177509371017635488427618376346382317989625502225991387037857415653082179931490198458138066269829767583770432721806483322853543779374572370691036041222820942979041247774366314655087652306040777542894062989787363388979882139122571196584058248558157874362046361876134606028199444194923736906228535264832086856101664856738727454970012529051648815087525889463863630234719451723253609783222891642035920269927192167986954835765103123757673051874820391395483703177615899793523263594336872802116221041366529731530953635571455803426285988292109193087076480766501818188524659532104671910206232480498557067564438988864521476973193278318260158160798527705316363326765467949174598007368033304700981005861982189981572168705721880402125968077763670236328571393116637069851643889708019680421185584820227820101138379252560262696749737679835746296855363251087674165885706818255819587921950129664579465039335117076856091263253789500297751682390507119805751516589456791453606509717056305068164178108683023552024879492820047546830001732440075863001150877323187508604039627929188656982686315785182529514520236092229114996146780767220366079891730607629037329425186639446865999354033994319935069686474851494033164750518579366034893395815161134413856994748779089483217268147351487502059413128583458310488995320824765138601459603796187868100903875901617943530571965419054388566119927312746699078871930444622837479698526841709196749672567388584658327823243934707734801244694832258083708008638527086408246711692458513667236728841718910261759207406586332735773878410473661441449029628048915906023002409805198060049819171472893881199065756373441381715495693407226741145137181240379037689926281491881426963893631121883772548379330504199009825860312309865568962907250790288095178624987470063724883009495112432443055476893336717538403514272375318781296246512684673266879293380135078587593645720328220329620813017770466667864653119296455612685932956092744358493884735905378419497704733222905199543728034185871075515362486817939299745471280661460720476281522038733070214121752801580599679257512961565525209439204015297417145095813374808741478476233555279268025911658196185454108141782855174843477987718253190068282733166892502232050917137629462662787985636737258345903695988559061810187962944703501088502711765718431906835254577828047140142417810751884418312185358612185015215143076960648246451411929275541328294091384622944517351536627871014671664247867243056936762442990886821926210989994762206325886918603095621316775577232254586989449462899067087823264715253223978062098167060166686715514819406888196898626398407397168273714155544671723810743128983599516501561845058634513358498312593268064078924809733784890171918925483941032794043277308052459709091046861708156242139259107650803509197384679473887198841104245201700749054722041124402561844090096303250158625867978208316810640868672574857873127956422661700492536225447804565399342176380438597651068597076684221913476445883495942315904181705769925842655042644260107502296996464384209215566724209088548174304832693145165154676062779310252647695640520230458671224145943906007845395650353660510645093484140002486444911450373619558963685253479190589444489190127893267943511217693470827830488000567225813925839885519831251413218506469172043451682364926419440726266370871895610350590224404264579597781301013352662603541153994163192096459095384227144976782334485799320736638637461783555073389259172555443012157082220482187622560674953393861768070956235762312621224879503344022861358813075451175842191537985792776080578155811836709289976557439529962236135166573347347549950814334077102922634522944825974962736501135221889702348210915621534457301969279096323580586100154967893262624076362726376750208862712891110445588130984574083218460740485530171086965446313256265578983841608498040176713410834005986536076980686194292006827580380661060389382268366359703732831723807228798173630014712983876396419704616439023912559716899258430038481424964519501135299448819965489647758385313019348787057922495960271876052641952764338923616808344306774442414623641757328062980333210565880307579858329208156228838482176946143879320755351281297925359825556053614526615945368323852059802917950208888531695477591251613441214515348709717354502979360022669155522060781476566672151325907710037962170551123019459815522798948287773567827548362077707425834117961296745957811507873427906007157417588000917538926150252337826320625873381634714440034597789733812849942415120846641773321960822290594197604023657665237060799036952383191494381962939692904116878217934091660968294689439803687099698362516995820604252547691822451864787432520400793494997597054614018658932054674099867971703514652101544873856213215522083455578497225200889877728822411760675627473109518910141950871711335467452955359645725191056357096294697665201741840653749442460376298000653841572067011803010722894113102340849768382849238906316585101753217611399454278824882284985698989284719806642200777488392416294034157810651847309692842227441369697741808201944261407487453353570140871919725380954040959204683977784770616809848910106357148961623847062407479613998278452632179676805684355501073903055951952502870100140254513221252480587294748293295944556638535893662649068372135564565256099145756029969546234226075457738118457113907936362075415918611161102655318577848616232521667044891440541106679634466974462444949508709724465369937386098380467454670663680076001140573371642320300274966081136287847487597552764548075894186325146239565489798572133451030843187347763715086657950384093087316393636489483555247005006039377470675082864781169874812945253416575800978703426561287949920467738067308170118568025142386255159976017218812058212440257385134429126727067984724706963234908479589397937350627887439750065013412574465930007928757209094414545288283718065479324383965626993765260242635527323958414062760543720869448415707087787806520737342407211871401922955485808271813931462159711752163458613003940889526029103963761056359535978685118687687517622332212622838051648527506946977440253268630964398104496296166390299712290280681842604653246950550393495434863412395063060597945149374065170167497165261217730827182904850113592738281333385518454396209017663085218956261428502212802360141215515612913287766212739168089770539153298959852523049262789825176222889696716365838813952939413407692026310533750219321728312148992679971718548231427850565207551716694487477506337687384710491485341182114158501181226650534799689802090634144779483960294117063306155970904263135684691456716559937008755986217769551739494794500429017157881067166301376309172977941116311117584654348622620211061223296891835792291951285836228272398669951965418678854988789931324149022998934566304093698176553916204451338717051322817683495944344984235256097692611296332022309331068104580674329273665280947743133958512803184437869464662955862110894679597321448336077995269370332363450682162167305188701529456963094703723709090483158848671161406746904738380978427941206583749635206628966371075254064850327643226863860073352446543206735541425920410571920011024547476530326167134123756800666249303720020291647115897100205803730402102046568280979575883910125052303976068553097382292977122103712400566252559694767934473738618045492526726955390732255270780795163873090436032179306862007291584995931265783010107600814812339280699339356503524558874813082138063719364261556881611105735739719913442663603977382154299795775365037727962616197002907351479497035639160507283222039763086696037462121825655874662716475920551460666782312435419411461041157840873543046445155320368261932636698793676230134262138979491076342483497405554397891142313425016209502394081751159842790761428202026025594702489625933662762037565871658750493493247758735123678674065873709200764236966043855711272599128195342303151740608592945947418975401153533264245517292227770280835693516027685052465745418367382803116611322790137096059371703374889497695312612509746178234588912688961317532541560400266564227214557167231802649362103169466754013363026222342406578509827613836470363966511559211418377063713675796896825944835962351332375126226557428622775103376276291375116004578962616538871855389213033394829125387356819451324151554585125482470571909608957269458571061869787379518360519021090068576662037675532432214732391049295773818513808529605453599615374141183704521347068330315393907110109396413124184057541988688297745453496208720341986822265760089222927387611818909317289182987046287429357858918830007441204772461062861440035567376038608313127690556390076467726575346798054187540189751567396762945520056719128658052232956203319603350045628924705729140775879792243099175127526830191654680111057712431206393427864854366920061272449594177962232298354596592133220633816887465000878432104162502214596557146619150186258576845045676966220403414899889264565974085551026931800451916709094200302935365098678811867363086623181627035872656443662674643650114379292518476371220847293873361384657417483979725835684077182730839671420228302766670128033344208485742932389049806801620603969009505009477441275959400870781942680021526047086952944122443078852246264013197335090799251564455012602562198755352284407618512456898357405143951450793101027658070246365630357215571025703644724119597880257127074621863221523242033907918514774898930105038236209299972162837490836353768559791690783503259100716903890666490104645002524807652582952418913413781131717613032983415905536823063382495913964684882995295100865895027852040503725397707971295053380708605985784106611040870828428828713498024999530584269901125670184510981164364546798625319518449735298344910438297097648661351573370095607556455114644953244928578091547876300712593051928858809375352336254899545287456386343159605699512130101620414107401415904572781829904459567858839609666414260493807655891235928900040318158182898694316853611896828367583920865862921868204299572713962083275165751792257072538837054638680694043983348437077694031188358305037629879203406902359947382130142170923379966098279614605748801458565771400490364148296079451183459287156307246070702418700709242779986029831749430204988653679408664798795846036622391858097220372458101111582814016089109516185314816046153891358996276004631966105667580589079501824256193397229819581375868469619720870404577432758436802527922001374492794192297794816626551717480362714653673011748596267581832075853368623869042393517448538393072364165901682790264894903208118777489723846823160921867933604787749293754309893336070050158388352779474103891953919015236227841241369962070987617229957007332858242066170225500153903729034457561823645740027708061896409116613226604710946956608152460185880190459913023172142629540924254361992018672613411827220200035374659929992773061699049368117859726692077112561739428264834201484294175378034151975561356389749888368982254202618900728118076945642409380621960584121072628203475630879873687416879882854590999558147188550869441817390266024208867591649339453703806502814567416719002842737512362867726225889624691369852280318181733556267917434798161704249487120669117729914288239678406714771114694617000770381871263590593999057012662037339353410136079154478920022092961286073956500658548034769444976273471755465839022018487517367378417115668992605409922423766290333377847937501369761609661039351251696961384930846755313122907574895600565866556238869844020331401004935520761853528791409476481612444442962113213353078601048490266270229302018264924768566259446838735458019824930306953586845607910887232046892651544231958478208800133206587399981958787231533739142872664948510120656510916633410899201572268777210086014706580219185418603928786377994152992509763708385399199307380473206714543795540737953910695336763735877716917048632296299157575248842552456315365543863201854718007073250665512141395264634294393123885763015899667391665147979462443488957535825241657302295732387548117967395232398300284405617757068033086572490675680492187303955656512239584182919448671849925299866740603595279351251342384292632746001941353948235274076347818092203649129854225344953641813553695225863593703443304186631174184022185569992707333403465043027899001968254401891543004833257580790494066882613895545726924493400024523726242329917668600582064727791311273964691824809174818515629848429196760369764324877370773664555083592547444070426973865377536854956550615424564793361915081181734148167002409444037863648461859829308225393942103172759735733521013267618416098514472675381021250018303969303252272783094504469590047453714178163146300454522782304215512984860233401234391847362227770824896994102001182379335088829845873702950690328526969525845690767671260358710026067722876055039816847259718231708241952869119701111989066430807915880222180582095808013793683296157656192894187682416671782044041295173679302026804814638968178473709358315344466594797270481266855983026037790016210391462996406358787564238353422185982943196696392071823151617763864445881376683921032376031664842308613674814571467841708423110885013197808557380994654423486580551265154449407956892575511172137140903254446789939997772338077647327544415481545802530527704655206632367103558199042063667153207514136362449682193517543722445240446562712439444544029124228866042499975142855366952981172236973846111855046508262626086012894592955864798345031272304167898401954645519808121703860932802529474185657157496114726771527594874469281044227275980155989559504861981220899732633541861849050555473768268730358724436469356663595049498979664399897925900458108009634427846758520717343440002793217117844311035527678999083626505886146527250816833570072371507430448141349944440763399261019152452938142479387284705334403786263307987472428489789494013240865008404528357277981109904124394337051572436433343371638172165769587543910877142119952735226609200164875988613103107895107806132133473739478073887901453317261673118911389565946231368124310309185930555604057068517740646302224294116056276573263388736437431763914475084445469757927908911278536942538760100516743010094346371582994890101296042229320102633490302812278522057986830877318161585275280919725121779273111335852505021008625142246092857832138378849478972000403706166901863934409474144608160472437414258823146924872641986729157252634614783438535515927172975815197052251037932886551275557076049541554966225760660835134923900889697295297954754431460925213891934736164927819788500245850812730493026920684778936655125905092992882065123745708027449607956365478281211828901333114107375469783140407663001591506271086474895420511128997971249598277071135203702015602006570337604977870897668595732804179030316710378076340134787848504045060571725574417320267826281403796665729329518266691445681407996519910627193722086764744186155344367248052376595667429226868527569644416503511180027201949686222270365819209365969522695024208691956423090832319498991886301608906327890501265158592526461732078341986255376756371093639265765699810635295750398279028907636424480687559736514488208502641418243778618090142225830988873877045323845603021881940627151508599068747539133110877932932928567723584680202895971918334350958031965888596562248056205600121736035273129152502554764713799439556184938121037373110340501655117137366508048948851430158320533454190185139979377246121887689554308876151394370709245513073378982089167823844686063692794031689122874504530231220383808798671668670013722271784520617925654850817046540288205189635003260731142616365077261432089204448973068218286329928338093853744444179737990112159461231424895899694711591012512136693096684784826783401909491609271148929747579418072484613176465583167162299672275590922279163272819188335811882637027914176649264201441866246055483529699327770246527312338593329279238305111492482202527273491651555279287929238509935386411290218511922996249788904691306912482664364364203224021322155452542825279354623300354972933043548979976544864325393230371744759302428627517213982440650342355413909076428288520650979093509363286005868033718660134870485203470870507245678635457869249070147506378441831124119902682767958632155309004828038114938090104096679334796762191596218040052798791463332993827578144187219689927716649890865690772659002478334754053924542827164119023620117371947135347214705832659535517760938909280714649464256585227860695938875338107457081520659493776133930871638075871095183435945121568991823565212467017708344232120736609670336633588344301406340240858226968636204639498126171965556090369111516964868209411670867750373558935869114032599461138731535506194431847643891477061216852315650266647211618958150264269347118754424995442712541168560938598593185889070297193397198119330819789068852006863940655734774199340721570403318068297630839750552740729934229139911240037446183298405319928325786705337918981845352802186951584153527659657049225636285921816793904294464194081097545433735120163362303480407425281400988012658868459742267852000586846325275273657015002534058728841560905035263982544166458824127946064292412301168798252959307965810142453772224863965132138862639385379641616682986865900635078933788894074100323428068707645584638279999495016294802953651593963784053819477188957661844597829314980743821046347122151197541793567998811762068668554986897630059798390089244302532268158663574522212955391896211627492152705632555967530942920774814597048220831279510520769623457414822262144131307584644284351456525376619485762747610385348601124365577777634948076402606806017782002793193959307214322504189257780577130496164198204805412099124997818021984161874968437899162402900416529957655869020788622036275217360972747230850605054197370294267054228371413479936727039627042136924177467218022155375981387668069542261782536086410449713265468564764285086909205506883598864244333690103894566803660626071333636046539170227634428119395614175348458793253408389779527646995823994572243402565677904519287259021112324049761156109889339456997800695176580080404622587982374319966546648731444940986560528834645921945865957198632752748726569720158457593062940964836744374433673286504593745553054220758193845157628252639209333961888601924515782157707989842497842223864342369128478931960635363938929408536930449218949005317281962082632550786758263238355365496430660272832103603708818655816507779069155212836851006691621697072849627349179164390886064763551444053493220935595890498274176161779403217042437080930956890624667291153402438853653737213410414737488975022146684838003095820662079978242059496971464013024286417198386914304704952991005301270922175446401771193501527511977782935569382505496813700907272947178421609976415196893071236956588445480612422421515577006432478686789474928726556014220198241353798495608204450213540138990988373853769878077690218306904267864912542286116204132012031418151070133876888250106224868721167302108342794354746187458377933978744952977903297346853121351317767193825341082574704870148383084113974935727082154932002987934254197097971157254797142464443076455515423886517680784128483653329914616800011221209413361947290379043769898370617264420496580482366239237685777864530592055554213130497419302646690780016615143383002076002111518385850804693628688183910488412236639802636025800907595533065996994123020753385049698284526294718000917842648085638213608352849660557080840775819652392079815055303789396069686781615120839307309534482611609206709757154194077965850571264708054908671222959448583359079877188163044981510935277348103976000749160366284062115500399173532383596771828350993846474175038623941214513833520395903612998446835962057061598222974125625032703184200482204220608128559412899102717024492037173246845337340869077172283119605622397962270442172088954990329392574858484003980737076042140372792154074932608733704441831106424054657320235949732419538467616120291255803584279410361901100066019215360453216076246639410811951051005659230717882616207146708041424873059648644848510165776573047166345744554445512238459279230545604921818413854381292630644933668889199246033689628291705249426820601368999601423368770154217038877011391506876236358898835739205266457162975702735567940132862637097296346265576852169957015453645448237717192751342845373733003583711885537954033119374167774498088481230992093349945665598319860283531165126123968039480116240412894269883281300022743866257660304875126128164657683231062773931826016141379687939232276907281129433516425498669662359277756137043998746930724052046888508579699733412405388523705835369761287860682235598639246095529457337665281805130629980569195289092946069008538955721951129919170087365910096990477704167472314881635915156359519859542244922444095908483100332220337749143306501066328340879348338382061338740443778027703532936555157303029432230753004873770220741944275456446655392175012300505969043851396187489440501605363702013293645841937648467258816665883848090436928702754097561022275973900011506194940109524706279538395489344557309566984302294516994380884087633730177119976333834803242340333738143927631424183161297873932447984983496103140027396394186226234921394006887013300388573698976396838567224115724752072034477447243709764742971275260706655115779194771386674083635474676493877888000494615956976087897796638366397387693349229130351607734950155268879173466383608229467247738169911992773700230630792916265073499577003921095051001524241619329983621641351380544944504386882966852598217945551005289170706631007213253206519675172034421293225758823004832984694267745583572359356142158588851660892542636364911334124728354011503473211450359619017366651423022624698332214965357278536029277606020438484009006104523909874861605408800344581945119004935922877083537100237965778652652157083978574648194007167939677000174816639992933534631936941521687598207637855754645123118859608149655831071021462143847937267077385572747841307307021204609816074379010377179346208874612706860385058384425453060886394671399137751550211498658661277472105578595339909870407441301564305040471790628695414590010162449438524182218199309190703826523399608774671788336035867690129408829468270424657848804044719836085357124934071718755470149404254062271988704922320559553895201508360929600708866841228274317278968059810173032934408726676134039192054742141418054078675665441783891899035751654365051127799255719649495176748872048845862810077500362243395878577353961032138804193367821254485168968562980450101210096658689088312729971375435639019863334751479593508166528133869734599264653323028199686810642502464339678314000550792431990938748277765703316274698716874781866186783595584937119576658297802236835791161608020754326983005555718939126260814981167827690708844239284300402360660337077416593680214073474081344931890867087875413142192281900831870054195729711976503416805461866297718400755963368956214377283642734138498889460835747852672489884459400745012454268113315135219784866626404395317739328003890731884994351592257106808011301736554236392254850353132203362367371017465434650590773213971743390207984229559372399900839097331300310829064338969847892771311423825964145221531958022986491765002695692570675698187521154104543002817546595606734362441560641840720279670898242668180458694577159302644530274702088134119922599842894826683672185125910085258412326632581944080284528085281881510203833115020651551837556677588502362058493999633151835580687832038038147492121821027870295314131831156130923562679372310610708417707962396672663946103196009559951543478991522151146411693004141991230259237290210584242881760871724169819210100425264265710493802204838635151256631393072362640468533357688389537768045349755783861979525200278759331047686515517952811185410005682314173091850040137040636545847903143280405160220292082257350459786278641502884383986881194606690493108159081903854473862837734431706271707529887578917150893592314125334966481383881072517460804772803880603196945527136651933353656952838263413761627016464643507592224753314414134998482369380610078453586465520962039299176007998097374836455219163808478962737828020162751849451711833388984663198604622252137344773440794111631259831345685942442740286005267910967763620329401063613024063336615182217385647084597293588993622043709176912292478327046500790169904801961718778045022245590666828920255105958934005851044960046361810100448043053400920822669763201019456608676393009681879153596245594114409443443495150663017548711417325237317521652318831056431030950388622289257846568846136876588009461894018258097921149092619354034073136811111243840413641249352499193071080138193874380896364972090150319514393007097970104072085447026950215890164647429630478631086877081879104038507264604693150993515147171098753587385381885984651980365468093608337151878834090053793726054623312811214181234573602718043450489325694944828965782697919927333467674538968536707097771698226473256964539154398818317445672888249367304069264012919719623000549060104899846376288608535678216341710049244410529766974272006375405110324626875856433565174060522494340372647534657070378042432218695025432718271845928688096768400837380652697802189895159047896116033043332017355180092946706974865664248581346274478662811673413470768184993284917807088258753378802606565253313216134777366520056084931447621607566540968307137415410389570805420747674029317248823209277616936342627317832281198775574574795389633560634826486489516713527791846290653023958916922118100147218598017927912399237855974829732848601424217446664044522739380701837619659622141609534672874095945421591989642815878325533006512268384939103409304748163087070707419513536445336678523737911676377070792551525083922652959571938389970615660468594879954045041278700603682786215197862899800170343614371266821775964938097239149799456748081394767065107320384254123666632891135443317077331869286699594294839223885373090164847414559586936958014339087485320598580562065929509853977862652015233093994021554010330547286107714078013901951362311575114211866796556034710836327117078300151000629631764297576717468936833166633515855054039745026676265388911069920612014114638228347369663072022574595921560987058715047705471957883950666939791378950663140765576866753834739841076496393755926562234380075046054830873180164453515355801786956691724579552014724372730512619337406883763055373436311752959420743117064725424787236938032184206042720046168269027091800571918466489532521471316315187003801139725004905254136450290046549182887546459504213038486421528837228346227901206241325105726443646274743113778165833593318598487581687619684988083114313017834050322531373525157534739807251449951891724419453656902961505790199785216555726340156014692407466496962720578795594640196588591620316992234506925319836200269127215326366341926733969947308973143237139627960553308769244215611769691784309756128925534892508415814604955327879552345577372106711435396974527890403855673122657568891680571497131174662556505363673414997857174079840773574917158974004886430985293832962097911772643861219472046627900221627380599683468538057241199411611147906658511376687463590446057099810095503556188248830731334297343512897114251732941604601276182743352272917189056822453808398843397574314997240190185468495180593016642199817299643586012713606659300553731439179674055638500065093139390606914227906925590341339488978437253489632260928988300500297543877451533618451798461317485483974893205611924502469665989641617194561185681608583805823980981164883786354851523869371919345970574529513144440105265113556564010672100667715633850228773755874290014273792932617851899232373268224511268768262683033167404737750806094384343572622685006823186576074221494096469811057527253084260270625909408128788347663351605281627738241586520761648731452701405827230970972925272307155448031320517627490655752115739803429942688218671378436743852775991328659668051691800143385498755533358259257201538304085533983253957565617171466730478781486789176208771290663098491331192660624744585515693191287095852551513870683545005486323129553481171448448562391341079215265042331994815569896308679531830809702788426259663391243160832992634874515647987775491344373735577764651573288470659908514617761283461628021266047864254902363877209346428957515163406318434324281935479243872212192545490432427653204898773396161169612883253572574887540653016907263496117969068930309129093229422062856993847910044026648011938337955134775188550400801198017326478533842816241936336396175705729663473767480257721473141376835539254887332414121654851713167957436715358301567609682363765669683020636647993059574032441610387625146530590127561118180601359366393883440355092545465046645422896559770151942248410086938241175408748224301525754447488045678746331859150448160788517398589880501936160129148327117016833392218836260824036455020230546313296913857476313705909920874860256745478204174144878104619530575370815238778783664982726007505014349807809412240679758580143525746956356339096938595256851312833893337867782795866781275258844600037884214363408314552929144682614257337086691811516292364443549060104690277616290127438951180116123838373167578767476851617338945197453614590736610057126894042004007819956728556417098552107060630864272403749243388411037615040339315434960389330618485562924828644996170464310922257234522181027347262354288644631093392217282521006844038099832305746119916396290487925216944766821348797351538452436252711823377103958383561891162617503652465937859536003711467394223746279030286917678430902893642696304488386653268434892628787800152014556315190460640907461109510719435855542258496950990951108946804433524696465666901754770863618808894547001939656236397791217704424764350743092050213914340441994835212553063379326935535615758614055916883452687794692715494248703257600578122387303063071454937737091385705942016878877257642878269955725357254904598498732946884410249778880343372345928511748305196305772800713997942820796447881647928017306521068497402807963064963485938000114862071690549520935419815774396289019868586599447864281954217094077698271332764707137259338680603118511371735764972047897860265117160229624939557410629307796852733062738486305660369244493787213346079616766507266726369500716461135106891735280450131433521112969174673119310598875228041696804502100574789237811056303273446666375101017654320901022715463706831604088209938064822880917732845089364679874302455504048617988466528464985903017685788300671380440709698555697347575759513683115456369309707167827891680543900796373275921729297388753293487686620478855745365229881907028009798161332266123268149484339203249205913403283477546083320465926058862206954815440102377312888906325538009980977558093565315049088333722460643872763019448830600013667685528372270258562980509657234862369296091886032966782122425547828257617750633831569667025323488202256148300361910452754998406529803880086048683892417311877837736177166847588737512733720685278233435071292188204368498747201614618100479507008458959259967755379127761364485661259057448585417806635737254569795749490412575160156236907104305241108542764499375643870679207228241226576787026189346910285594953698914006045685183913480547627934531406689382821892916920991807825036969114367445787809585249498456225656118324422908133697930108219180829574287383991650746797651571998228320459172782673247810161068566054561802509011839473406225824953296523487861751926798892369811595607510099795572068992523369951396075288547822566646249196396092734691713266555440774479316118513913341428731407240965803001532896970164841567214338594050416196256958304977473186335184882328064934018371577088742170582696341524839791196134108785849461973599333496373635479338989789944015082846852202414875840165628953578353340727745783139790585160290680566330010568095432520901340954573359847211533957919745905606626992547762898314784898144529894769517864377043216434417422491173634003601845016820420852250257928653845387407851846235232891619758758244408216373994125658392657699042300561295740350901526877300293564696960443061562914644624094474486894952264941902682655661446929405175321054322526949275354669261646314295282580900926309364787362028248367665940439422532103756685331172329823587028770502337526472901259419095735735136049965575565653809429282699759689643462066491524360418310606548447716350094924131511990426037795848160295367129906871022722779352138670409904382606286613163317063152117280664558444957034622342503268167815043358118364887075016943002681988669251615394049450503949984791965748730792581916119200856378914681145602805006064836291344914286971002361180501268325707288096564751081545233832889751764525204893688884290508497509130056975514025555207366681751994295950961171157395609662212872992056996242693279754711203521102651354382655306697627749599914088750726299841614837243480754312495645586382272611841164826770397097702396941267910349111895681575454256783421568410811883469342044617917940568503250327507351611523046053810365533009792077460467227714590058314046443536053742704642018247953628534548599302643525773549255542094497475098036499368075117633430179639941916427192975947835821819886799234081570941472766816033696672789826104520177718475554020909644815057821575750082958669468790922724608099961698104394281368713804024748044609820797519115368742549719776888464223534240308317019199131266131211398239115740398658810692405528804345966525640226084993114519689770190096964511410259800167769536305251903845239574853487685511390923694323908952630614590933645506238685607577044323126546352188386632733398383345693797678753128789712944958967747462773276676109440687009071311004209741456684556530444407961735080609664509314155566493071023900547953615439711914175364492603014056854920842036571720974912757864522016692203411359276410098780081959987114899087109527882310114541546792883624635339914347479482127373195474817875088674216071962620523016390171407249549861402656358148671418985357599373622276661440329995958029214295584623597547184890732637255204466599046594220829812779849892962691485104745959864916877476426848874206760079571445867820240114256719299338189258590908462461885706391172057947131150958925763354234117509094920583029326258215452064605643066570703405128828001937034497009238756698663146755390066829194592817815522842444643574127687363796814518295696562965819002708685581343634811035928673397486702927999891746853092536026856077205813786212573735663747149321832217672376474190372537583869678944550891892578166818444654050187990139859766404472925645012484125645162241161927775649893824796322445559129709958056045786003831087562801976642174793981344697635906658478958333073483995114869122781744732441183096368506068893994873335764190478319444407836181370245178661840626134100204665332192022104441176618149449511654196234687512013730936788304608719541751263120082839383655972265019829152950561487559078179012928255301913704024943009297502557576135266661471380190200710942958211988799027449804956487892948858441910307799026638638547107055422530469147632329375545031746866430159477535094981370386346675516424544797022407460882188050491400185205354227244382688185126406803823451437147905186201958709348191007370532380358681399470294731478998578896052529407850363558495778556702152418278629494412571173096785460542553383320540711115523088186889867392223341574610144284376996405250979536600582918390457437568767165231004803221738268964964362506992710049902571806813158834308637869431260002461077022888361456209209425891064601229397784562453229340461020817322750116999821783129651081887261037836570042451990897584847808307315525114739334291838111562123439172804468490280631580457853830021038548513055604815724273712239580669094846563929314171322970711892375170037047753865090301364061446420180250154414188693195127488017854954059502774537094985081007435008921194264883601149150753243034488027238945598418990937199855147407232309390984861457478505975802469053121800212231168521644797182517161354144037098940245486745754769757214312921520501003224624156069081808499085099665626164212825140994042402446492901703251589813394876876108984228691780179373673397545219463303883686429261463533495397907557390620289129347579673000793515537102181468612904852652203899037919901269164015473610903345968894933248927568511497412834352658819566303918489163594085272920744510492177207012424448386655641662054230405717871237399659846145600818819171225695386230333260994533173429810550085181564038299448954785351071466998584165245789680911441254729710531909524472881886132494862430889559172384895332260969428681106120511510617496176017411289926230305171962969486473354375883632363360657930685619594140742794747635762332213330992173341172084145894368002287599847041019047229187988004736474639261542996535891495119859890145544241709929750068171264874074861938608003144395842836744765733491822616200717000057999533026876819853950651131855520894679582247235959780901691977237141641663043901804459523338291338926384464931287316672788894312018165472908919168101482541207357699192648943903415516645885834808927275809627903399156757513024947256577983766330265651509281277553697208604068819929774955737249209649341622666100058410602744957698520205718594699983193141066767329976806881013243387791733475618372273131825424696373579877619761760419923650653932262187915562127357180161919894028464412357565870066386053600411858918822999531048488388751471034324819105543171099901313747215350321916358367047383120040446230490244264724599955496482381832003835819495842748536289759724584742879969835933416783215911850761695537852440205002968246866562195724676234161760301283658008433899822599229875553170754042477524039771105957460360817172530196463200302489880859511699838895531731523083512805482483204382492447154569325907711041332280792744926100553137457975403957141875844076226715929415593652195144063715779966629095160202338321878143808619032069118793900315433337769214376172856892850668539667957320008260095542869311210611308587933543587603012949476375453428437210196290570216873828437435927154356853737903340588501555761140581105727238936655149387183322295633536852619030474713685266258204514095308184680070207256239670006832214879539514059619246937850186040646618217979002510881856747540710390203218972294091668533197312254287098361765794081550282053290817045323867623432072009180906651262026632100053019611811743208424565954955867375932023316612029342157926445932430758125954352628981456752014363425646779618588239647673141741803980472190248196320275363972963557223128645171915450570453735095757678119462948717798558242031569757014874853455378728956470667786361405813686604933082144522454664669891923969028900184913218063674086774209371195994752349408767981818599614887374865651964819095387094887265934044968476987110422312512214316082011715095127868451227317695696036156109169954462274899355850460771366938958763966416761867494319501227414044494995509481671472857128765625490523485724746709250360363855332340377662379306702413060309147268145942968346171973183632718514568304047122316779540944303711628606329149356328690101292238634466700234053933154108755127502320148807621066970426391222792916400291222233577064623651215811686524375682622218459970171538842828576886874479564879285572659948373825193811132031001836445882851887685722427691021376686789767940083469091537949758708864392896308366598809497308798024658131158681444570390526004006605766521049043518174507021040832988798568421608634800039316073474485377530725649791056242214184380146817822164019191717897726317391657822170121562230085896669336002229454381148632270349335377135111304491793729525896978346423691312980849330513948551222378704264571763514023886163759162640099749401406668444050688532242909169938995198402202930558701508967790053974652269387904731028868722732770781948751522292480818584732966395109220965025565040830166680694834678891205980363612883915284586714428264472603075693251445087850690024005126546958700666635401096860264904917704530305163730423470134604482576199724006028936510947410593396959679461559032821386705330880958178620117031024326873986525984055512212943467547594830467839372843940109293507849353216231605701200891525961501831817872568924471370222774822744293939743116698543553165305887027416804481662514738886820883372190139266883411434834487170174824159816608213547780628287265704763565071685153409896054623017364134238854661449221299569657352466999893813894462007085645725074407743181834749549918342267771227261428824563396876839263276043086652270790381855495135504879730745498795869267050721682503112380175693280867254278066033473250668791061600135867385915973188930494221667636391710900528324664755662694997984830260075290637164229444953133842294142486676068711470702634150050387651318603812887714253871640580232345615092542809860149289613431701021639621805760586033980807334404555207636745526224949507948170751821197632056723008854944863739773946514406575961248914631024898195011707895181703084332238977723646200730139770049390305242390348929615024357314599679225577574078531695975772170025391302915477500824696765065506378952916790284098158009797173811182054017047456666974223296007162612566021587176238140213042658151359844300585373260906511210480795684178864952918380661019125969805991034708851107778973063404261820274179246635715526705626441037615887363933423325462359850040482103431954325322181706820255573783177845977109230948039782231811134879025285821262179682571608398250244138976439146986518837491264529911666890602442347649733887310616498306995280184581837776136302483238461682593931450905167608838410154225098934194170967034820009844133104507173674992544902208726945984940541307897316208834314186990045200558226022575639171417879223378601134101984244272251017012983255388218301113200484225202980230951286832606938176160994907541377957455893701110870125001386955192169478790306793936539823545747497463971801668160013744076509959811895611640658965119885749045145808594655039417050151979510011009567515635288201875189571402131716864986065309413876572054855282622654017200736132098482228448302108382860004586473891640238437020004844599640879283804216740119049671026821196503477328183944558410005099349804716405454791838338808681221759877630469420399638992892059480251410639402605602777273486940535419528057257461967412667136336446661158080540616424902067596004027724971517397805259421646606997193659658770031919681132628799873497939755055589060363771883742165807366244853637703794865619962835715588419808435093895249862872852030433788164737872574018082960699420969820767775016351820326533510912100689266531373191416397171254893840305174809806823143147263744797784875709836434107181130858458808826190280882337730515735734597008451451538854986896354951951422521589503126279958316663001034150572268751905649858631567097514774268991111584259459329772735363148916299602671517280842064100242169533334975665276897193321576979686384976663972783306377080365897702820340360759960024479738224216770942091592864272770945016961715468881334223381121782805291708511347724940551659130981993483693109922339407938778877305061009657052694895900104373402762065351500435358469066322985354352603019218847603232791544602335239657691433719809805298887390903619479222264709793652365739774317053447078002623477522782565708090717645715538615925405858098126079504210285444103502826526158188941120662223452422072637043603892512426196281372074613097897333200535770981276983633220249397138517306417803561641815314752236667461262845176848499837518255051345098230914762698950854879360244662551659241492451984517270130145208207957382614934977906916510068973050725260241624693173203993254954899914246644061923373822040093004081808041681495854143212690319593519017820385032390512961041700996991185702078916944297544234924643747131123491989449457687192325810307339172302506624070384551925977989551242744364251028839200817449015163350614157924394944562441667182799954283675052559218218243472901648233280985310393865832834758230409472942510515868820969667049850269693771362859018597527399137990898577032070394774832581529591864984076249844272154266318370184193588234646675369682153835918309319464207789901230703088063418268265604409810724552330057008120627949834984147397032525648117507326232571599597130765675477425305158391113041202262176832484135185016342291422231839634410145680850466466680690979842526787690971027177554621522522663166663062188650624891766433324693971277432925827850031669297978011661762426225363608823649457151724661507242514532331623194000045623778133230635514073106314304344432909457433769023385023223395321265974182509486868648373972126532820660797271819722694766240041952283675261104713399318236254954846912733845557638359565305973633459050528855561096624982633579168850451222237948516483208142113693719850523907148506014484625931272764141062744334383932963777208464835809046736655285099995698822607234532474536666153295734412742807674341279663291115221387535211639936042923749839021166710030599361521526621410085458631371598170027663009893312475092996712123020959335338924903319295961448510465656469603312330084427496020025078712235709389019385020903974417234340774255199675516889143327446722448028425547286301826077568623615608740210529777102440061106047186233193830519063792022398580161938982324943973393792127047632578377683470234971949090522643000701879562646970389347656378700992919195530121377553764369879254168357905373680320508521416292520670452446156224656418447770131727543541648083958303111372384322762484840872657140640995874157270387639999461002901529005502933159629770370635172799747611832195459854339639553013327777462947196895843858876901553856496389170005313696333881027127477725665294697075229335005481276179658598151628019306246185489639963335152308274910267408727266056042150251630909823290478522553230773491225542238677552599122122900087217106345502214715167203475895885810736601315435153974618295248781871697396458308581124019831247675487878597832611299474364475180233961755635338269170181515794327149787201434540018656679852906737354945315335137525465492965486612765433303724584065193509107123879798006183897139460542132623181704053178465683576443560193713251669295058897787196338215031463842309618432910797504664590294129773667201088539659286237492279328397782363215446313081525881248151942513802437395550890068173934968707824101480726535311797744861457896851456249305980300081034844629992606793013446889811685229949010609336549160865561026616061159405069807417108949121350544133779836680407668748570895054058985601385997267884882076831747848531570788344148440799904004126392618163902657021560322571394020801731754953203386823324222884841557177321082163785656769536635096105680699242877590593739551118291880099564236183793038675231735138208060508592049552681079660048273007866789704840990396545803607955611251726580716022797370147251461482093392561377529291695547199033189898427292993837586290460472456235556024792925725392764660255545251184815909819505961735859260560802430381785015934583891894840954539041848610497966108790916497110633384130392541662941236619654973062937447163944792442829172957115028585966489325148161539834330062553886227555310976154229954315030043152183268437757867662191702272862202875450862962268876003221002268659786897158393921490405409012285037052320047944967121296592605361951664791793464325043130493818187067958685015875326983495226879040262435988896230434125944165006877262266907735524734656307357554549812729889148785314618383128794688918118508510093762970768354465148224164523163726155231695781727324623478863918002463156631181778956165222212623359121726241503555960602335877305486296996568030823014233528038588611419285512363399462637299414853627780380851783942286848754224284158475252047603444055514310210126864159575489283674818807808316717848992095528164945624918897148722842162444098438918156014495409427595723453071930961911226224767133900834905837623481883292472079610828296680236998273732989100744397126989283921504396432085831760409505559691036371296793558877282352558573247961818910714067466591405427023253753222037814703386243250515256992831432631896499577034080202527013639654871640350082020848490112996724597162897857963375341629090084879602506225573229192565452184082193962519109675058305968462943962408172977766103788863955857102330460105314337780213823229848371483746312294578263795374380229902460433306335017050807835654006208177079861566601991177541097404013838299229815596539216886495261991822873386661384075224513428496624084978188173230646650475775417742525501693505997380597779109352108355621820472668740357592217241477332411750810683104392951785062747520770976218089958096151880915957500541446709691851019509891999909879099263815006698351575578128010598469925216626608799671799789116307304421275233627867116303094399225222406247663020973632590816417578823978742648636708081001894160891823718170611894333931018323725442460265953623575310389484041500638675766543016802474370360203501728230521518255986276935374635148676503671385793431343081848899940985963552873706874351828359828010317647357164711871853695143764704934565635060353084257285265118709544349221293569527249479303548960445307784382867419040916223974909210362476520749725256565223623950312564965129184085231456572010439529634344524922698079675201555942422869681485653140772942837207892892598411223795576842986717292246918004707891595173361290538427990593680087428063110732966570188998487050848361832302480010149624065425414986568900017177390814216621594676658632451019946475766292194133061947177274444235623252336719625529634067934201797534148447123808684778049213248499068235395892549116118669883604645001690338805380843048149720272700924206128441171957341206761426901851126650405083642635408988579469940734171022501121752621064097057078096608690565044614715080805402583970284876721149663144691658462179431835324137417258248306819797508339715663203409801890976429384849032305639458703868503810109238630713877884828130228372392508525792550032838250778209459712926852426627406695092546902391336144803709808811792647805820372303480709375546247758754709253508391378912651363901941536881639114921738154982995287612112560209743526128877411071695514858307583503431242187918982204403148263421175261303876834429305910723979252386056464544336230807502641576409069636145329623591585062349791095840941878918568402477000621874717887193840722324107677636706939829648565566506524203904938425688032410532350085148876818906618812549510697342420995382517881311119104782066508759813704360930951899666547521434590724750732707146811390622059661530947126624286633724198611515990408697301202524331580944913085261895461538814376285670771054651869311184291792777319282936864420592034737668343527411634379515613617028835773292006658693503712391269019713961492130818212311679801686989463769600282099141947633843859648224462770543100722160401394633990539441592426883801805698011312450965599894827594342892173743257434778458622636407789491226879619732375496485498311037070078037987183995164470695190417754058140532855276650561887554550251327886620871443214555658913815282397478458946491816574300482990274843626259375100525552506242693271214666320661963823896928948999604391453986739063100964860637116582538060915911027990256470007211147521062450415008873085890142368514049569188321619202305024835021554581323265765965960282564760943226821835671203987354466791690620602640961773603511475121767188841554579008325193926736954139779343937787804213515908240474231259174198539244778767397353073550091826912883767335433751388795470252433390100538384232977455756264041626256069796889270414079782301130261338708711235981398889796751526467559479224665983447178159291058575157685060348401705988031230729791347366266246551150403615892653258799906620465021939255177976628545010880020717582299031623596968220707849835942192749816672712541581326506257474690425154660325570872014498233299850587267813237334190311360731639972847843239721946236687696131266003068706767902387980015023375953340148954702457582687092966387718790285862876727409069007963905003897505556051654496004348329087056139835643895533519158267146555935171571866626622270809552296933119394707289867476142881381292508650876952677977045813614855811339032638826862760160306038259544852625087280642255456290235985767373537870947949405762562571540706968691009747462402799668955908277244000488361756609196391327617504790194333841817135468665795387330184999549333036511726676771204153138751471578950255722925222143812488732174030694442903818770185399994705509581283491573081544483881750150460073395546946010106006586947952923043030904787621957760330780979756218115059354518589601193517583879584610771421005275780980798615933196153085138277804759243852465876329102669564341384560482624897685355606051218216942946818750403132357633579241770361486587993817538621828486984690122971902794118860846139015904029773145890653105339006882679273300924484648776650661691926248666560008446426881299926987918639188414434104786065299572267034967342288636062677430099100203838397669107870708173963437575198237552887229492572053131466576784429483577259823152485535870517325847605859907353459499231154851402135066383005607672342702210558234410763492890243294816448808269727337832769901171807195017811407090155071053994885366717253380314200659395481926755163388177793232890455097604052498379988657801936110874831062821522776955133416237493770583796314574027445342647708838607581730023031939085248630918695369242541391883276445041509070792212358860694227796618830722955724580249743009163920899758625870339610620873629794149985301886566039761086635435764947610232734683172157997109876047803623429473263061926741672300143369280175429467254900173885856396638697907825444241601233612396628783333145589626399047330624993199604485217829059917002295161030602518786626445556845065379221485875229600548694421715379348587052517993340452371822525794695310418789287243120821905717340798358780529351256761504740196433850528146829907588018325457070179786560976455915493240382045513319806119373792090277923291909727936251288349390259016379769520404041304456909047727828221313161798695821418376450672353837005707441984099251154550527350689945469146634064958811103374701026570274884834688015680266805748376392940468975392183009676289049229912114986256606089399198834360300806942236997205789821242447892029562843858599941774471792051834032632649775665716703111342452176329942158972269189731436680914901612871543577394289576629079003112252936956521377368524460649600135584497277719628747907876809779951480623518651889287676830754643842361377213438367201881361081523569415275465438432088235227824800684057923965915495678032492169507682250772266155503457945017533698434319876422306619580551131009310315425389876446442773539334016132642539427759977885542489464955178503796328722778317083300966288781940824946824493002675881137932967628667305285090242238636274127021890996335908035415185482966580001812417845967962637414401494691031878056155507038719724092585398756785534121314033590949048864895052685651547280312826711110947218804815336581999704537532486017559705203107308065941705355621684889112987056711055854882637905705784656987450083402047125819757965611622499405168036003868307272080117001265870423956435504048619658430828652222665747531272111798010748165981304556457195951178158025048681033964898419691317158414268824755107160237748150679356819728358610281769897191692275118276779591883985091753931932804799347414445573087157187280691849488634762797726640399709389482642526449053069781106149948505206005733549012206572074083594377582928037797542487994616483667155647460427983559495757211266939903153105935113132007220990296593408481607534531792420159772325214882540638276903121420154297217873466032320257949930388208910914766950647240451430105540733233749787914386357706468903275436678448776586245360397736761193942376659496447739346504933896099770509550702059978393952563584317769981062759315121054162893343039742599087163649230557752752180892466233154525561171640828853608357784079461748395894090897308993816703089206981806381877278150171876531068165674350707516900219309641655784718054444122509278147122774927816035942850687605423851746350447585159910607746845438421883275991016361656692477946224522841692592552634705980812784035222248961542077800962484874238544110999667129582969368285539470019154003643775118861325176772880872956061674236917156551542511542120132604497394498794128948536343141734808102227351907983701028086216210455175756431899736941398887077230979311268666078306954799161511703653686485389468939805735133777255632260516828304946811142854217864831573631438933853570794249915539579971890814490415994349811118963731596878949548559120499921201238248136311118631728705531642654981104786543433735440654505966744082889058575422077302698950517581873443568946180813107738602066143878140379542024361668238356642734257164446455261777069954633604824305781303983379522546095482947707211239480447910279242330006362205455345008725288661741538128575261492572227340296728151443130643976374096223719308571568083429473369234211328292589376969415354345915293245387499297921049271146338985907320043201666762525749062653961461195575095917628387428133472403922102609890602965659451309255496977969896413467728592863344650168394164621272415243481297555241410247830349372794883579457160146440286912528363496740521722123280688079326985013240722756600331527627973829421431713560403946965678890415606873986080356106081118467228404371980672355268548148014520755744312445584163390982297946860590011598801065292669651225021326035617996996228258568602875695383869792915697632923280329870804956860989256791425658686711981111801300861729910955026571037230278046831331164818710256350291642453625908181568287092781318473095035584476787859493974245987706927346369982946217952739306639242798753997414912011926576225394959538147595262090786692293545993682963854975820572166673406649886740586061585763508417148677610244466637325502427750221712260956085705125530078876489028780882764732526906858840306170837470374156168681850987934505141542091592251588989585055894042325444362141625269454289838340207122333496947355305046066366832846900116129907219700610205961679068753252292513935536427435013541944338500890960682400142429590398533251671463952885380825800839786713382607898739443394394026399006980692632598829745984159451519879349295639473274595232291636611224532467866333159111328708045204129737147656300813050264000278263505872661245660670823004016528319381894882753475787333621414990416552430234923543726603169713822044899141885480666363743548366713413667482314096721075405510950705595686395538929852022036027476716725247891723052862176774465646689670590392553295351606427117834268599848321491231611304684362770487854441190859792746667310859625192242796715052907692319806883741706446722080961089570227714627464286504276046171382340115214686393102685001042070923192303822699495192886597410005898283954864476331908788537193756780967007336386268051565020727851456783299286033058783668325019473480565451674915788119437075802265378144929003446006148302122570239823392961681173853815503967070472775370852842583284975341310148518591519828301180187484093009072879286775118448593648153549433779671163827628883859841586058316870328526938332495141014963499154306393130828832659694224158260135519854490881060867961526151867031710241557770374330632728061772550292856459289329349329895505630842573469531601457835032347759709901101907006345582414970554742520895593514352493462878368412990301096115921590808242966505050105456733839586825680434668523502459982357227941045618012508418489505952191930676243814584599016660411374438934005038746298483291954919921730192757269090723671657587830512996782751604819929236714487792118476795831782440338461072975308405908884875714995311355034637926605061938741115114001200874994203578860059094379970740286581976141383090042840975764122390020361212814631709577122993602090509752390475285082458287266964787371538929433039457891085762962505111179703505434238511476092575901173036388170089096939299877438892118351461814077438139829487962716977935785522403643497985154860521729640810457636060486982794317465571609144604062326917533608020029439133102360022221002119767335279090786196614930006477139089158911440181737201680120993526693927237230214323859389813849608297021592634723100075345476530233026933500527751826678058426692420320807935286214538555589079352478884425798602006060594347016100697611917251570665653981349985427278149289620710014998124084116772728683016064298208034890858202242896088990750514444066532010489726444702578801902284991074169626430091566697358520310678263351239047228887580416573087003930254440362539520625648233169172226031156760786536121837265268552684658916286309358399234292371948355936898418054692771450859882280067993271429818780740766332721181062750423941741980153182537193826625435698652240391668592842832805707361990734397983084651776228846765127000813496950587634134055243563917835777739885732498873238076618170337175947089922388290159539575686356653734124128805528982250184764647798475718060780764793270004802484153026191803928157710396049079939028858087145439636880647333337888277701226283147034610319206011708460158775355671357664631240987564110308625473638767236608342174818592132692925209108637782728409645866119101636013819932535173043793761746891846670400901504805381495109701090253652019183206258417484290037325135722234050725958150912969622414377274406947717305936427377280053214625584049390284643249871041459318117389571538787056050090280497005112114987716055972740297232941229626612883753854039167687784296943168599237634252633438718722503469669156937980552279162973591268985096739032640233301337100035852370402768408131564336230474676508766654582909436640520490689654865119055005174590732234961902321195331578508881487858825369745253876287647509337986970407546185991878353645911723542729890931608522663127414487109485578678463158022074075110742059891424048461420995105779644432412574691489322589000373322815588512998921707951676711586587731007841925323285147855106001395623388272463255749105809444533866369611692496649512642790263468641354561495472363776098623611929178124727012033931621637836208528080169925604362932278785246043300064642194436682415209737345067842542392719364936486892854632675338013392565981176009213666685459299386922725934276104788615886584871232389992136232657095195522825797941216382613841616206815366191753400299029361870975660502376896020188106381364043450033798916898615024423962752551540075743716002096739785726817471712521260958822779654749618942041833670957405939112692241645466672628790240914031220746066817645267964740437157369112347116285912392864829509964344671288071728996952200372051799620439586865171332578151693022494112965855546677478159888825969036119600203100762435749198303360993286980582653028582244172889791629778394182886373236729637502616111539298599283378897577064725312387000448789401092326132433952343009911055863538383678901890993332185409467198062382525171065742187341047815169581920868504635332099274336236009284256209982524703471313758166494091700000020480408256769739119321246407466330805818842624385137385095015554954328602490531865003917176490653133805887541398881795520447132924226448665367342427526214937373188069288968779529466543314958554243389582380706204294979490066274021563188244163691833663853429254190146359213859942240266623938236078166942083291439631000418584325819694599808733174977655390641110143435618594455152984780739742343160279728996068272118781624882953237301593503654105840878524909878814376090669791447912783503053819120998468616838912381131209391491248062316872392246613175225290876689227143564415401318835179052475977884203092666199275505161177450091965812558622508061888092526596283094973610486150784789478344987750818390604606926830909129749222737913598492176649066667258644920496893793879908983242669990573077280462850574837983609759216769623016540123271897734769071745332439964229199869296123455357429376844701113304171012793935284660188739582461239885922618000238779243938753567134693666825368808039405076282591748448758837639238445402552398455392878782865711903925068089623149175113979460631691831163423277732755581931433840088989561890624462507438973780131378857566859156237779103369684713103664840510158455369267020781698012066027260633298008133516164619220203635684380849536273212613637208963255624292477170667377514213905025167717216412724018117748987987617652997364311299274755050459951655764261983695835821738979024957356732842196773112678710456515340482046203356653180783632851122447602726963776829479161463737442800904194100779107031397375514604990828716919238935643780160575867319410581386611369800046683913799657191002105812646958586137088563637744375353649398628773260991505150440733726865577140929167523396991488942684731221450815110816636305772914785576103577004749167782467182537330394850363233683735249075762417315932282197889767852694802412850433665392567969026613535291496196380495893532693887983428217974034226650830210408478322369999350077128555502801161846080447808907164547083387945790791693520338803840483395917530382982452013809668683639837930929739566272451438948990164360075680869469297271745935402758716262601620029378389594191875725011511734382633602717173003964349994776386392546104193863933021040694970359871126624135823541317972351646012087491940230254726934523699246121984667861152194321264810417908773789607754586708995736853838192056917613213982099792155167757627636159347848465376111812544725236862570719388547202519820363200201095678051563484631991354379335648014151740487204724350750033211016229002767905363846186484944611801670216895419914854193813834276802539276809448398206388319720658293516762303306685530562502321369327966667001071963835968157912978849075924877170413432830115154723611159447225376734818694520725674371923586813537109397190953811788748141329087525774401685735153029586950320885827262741510902383852534958046283116184031394973391085758022183690093906924794966422844848039212868945921088550666340323515167103321584385418735363623796849176456752154397171206615541862920525258847943801746382606088288462067222994262147093813780054243028737956617647550754496374075512466754047093618141791062283466301233851937451585385040379913579862719773895948574523274467214344857952118294538660469691293987146798947520889684333004405062131328232205097427958933874217023976664839579931348656333900053164749218843522571568939832914570149407809666555324879830054755319275523705346683693198298732881608251515877725878024439958664319962869183913631389603072183864096169993513813603779836596519350184946265887748082536666885927083915993467508444690434805442977224585568926217137515403788917176806887820165238830114654295627883394570728472730470510401609395814155541351085590035571011545754057289616134610707254527344972329619587170323368583746801006012095457485172778889813264888246199830694944887401111265232240316093353095148024082815768828609823767864328636773985051302932247635123663351617145451161713826042891397332183509810360461766660177826230307508998108179877840426383637672461780914510691823096768102847074309890026820612614356435078092284545685325404751963539466499810071346928772227194510479969379355264062967034278271069602851886816139019346140442173815410612542941197217192892758656624156557897606964538321971625090475102492483539754855949547130354272897978220697987608454300086898624741059362121719708380664299319780818360292478782616198090820584093383646962610137550147614291024845960889930435960981562698152538810806683618484447868243236369114859227476521327196352344130149525085438016094875008507900155863448025018591806210129671340426891645720792456725518073171510585954086477223055273056217689427701279721907422302732263644881226825512989425424062686493217028995748250260629341616810287822984936666847826917185133136710909202825648545067496105115981611717846374788060973086556816433948483764103064320404843966778510940465011088192947433477652447127406456689699126817044911362891317688392773692368297693271505541061788536313573723465640711984839537337865366890942527459852033537230105242434184551793270430311583071331525931355966714387991249548088249783159572888008603484392364250993703691553885629944119058661616826729035386301979174431121419413292693224263049679437232501645115821288714120297015489828807839040465062729829845179717685824415597586085048813190820679811401803917233567256365484911672499799999874941150168192676408415076350849833719282751225699859954004724151529569544069502891505373269208764192980975861609538208428366049766376367223097410348924487416991282828251282888024581386323086418973276228050092692658151564507331117197987107130596154038491432858685532408320408941648428149754201686568645831187679168356694305885667356777661265975022364499861665975508430375254655674080278848323462633764288533505934346462868944242364900401697721751316998373578267001996619836495864190688074293761916444949124160912658335294298135440917772003429339461728585494818142129539585654055130335810907304960123352965359101745848700632754281262695137583679763865808595690298430589895718447064816150604433278965037681930993646158584991765413011384739903442138027446342720547544499329854516938937831530498251840041302013081376373118578407694002028606384487441963158700987479052147328276982665351031111589391533323251550082109789616145297539204859024474912048490479601379983758721476925928448567369226076736116214872871759587116435819118410258653277917862810499046882712586331110404544071016064914180464471741339109539728352158300607839798262112127547340418312384544472173860597737488306140401287406040975914208460922575389851740722250647561782343517352379120303278067752984818961026865186730147291109933364811561135370998604705917609335565799267192072605657753758632739042893521159258077008642082110139366449858849003090563933795968397449683843767133134777281756312294416727297167041912830311695189788536268424177658290773015703951826936730268343836221165873101963061091544501609268378066008498318814803042821746255789728379089957448445642450151356541950100452458394732421323853110656546117656929496589708947426238542485608408336773418505917613999714451928623079444203012644132569340983375484929214011150267989244502771476170823548124848747276485255217435937722751425180414609127795879780455610228018748563776433231807259305295208695889481586784907090787060578759197981218327615706592137666432504559715153440952586583272512384576294207493992615792933651021572824207547529423278366540723290614650969979845948464703012660440661209963900694321927039134247574055231675885859948583856512647243099527913889274100033012827476073506665658973385067212452097974178408496658160504924180700541947261646872789520827805357534319083560415252514983623446923473524032513059266794706862561004419869824078710043780212086085344641895197403664519417187067007505731586303977812089378786257184116089063044818613895427666839731531706795993018606946330248826342936451540482680703623288743541482551709915952279685318098407436655665374440887788518537615891711294262498247067647073821547486961252874852521420837412920196012770498077184037715058824529495695389121761811805947660218615329992086065008015873700399177691912714662771255646398529877704241437869487641765008331546110439146211717479991639819411166137429832338271653734295055420940417661022318199790928214321183906380974487848133037183373899385380462262328237790868489202805863065900150304974340436523695249898029326333924012007573926262233752013385527690965515009820244275075759754298789652506809144381427987516394143725789566788487921142564180733472315209012860518609424373211106198190772303592286574953484199855501690911174456288968852011196661719887791648184938161913737085566378598491310495993257499563294802749926037846735112165599081683616251274866899395212445503019546788540078914766291606387118787455451299722498807845591184745897251236543589673116312371790794736458777131745816185406201162187467610642567570517250897404587344945744788109121201108288100609393747377763755170647329853667228904841430066662361066623841851228445149848284760018656259440270942497146696215152723319774290984777358582885380942359426293883052625994512239200543639965872486897803078914004447721908742947008777726137819419772690597941068156332518111325349083398828191283620038573082913124412434992277984887432992329165193204650214640790477717061708705155169994583961067954654629893281619805350778386907131732858940893642031402862445302436111257519687197066546449952113904687395821043039476090399272131546669693704274910844649700118744194282774575884232498056156128093369658820831965557523229165274139570931240631861560629977480362125062269922122737912741255732690958384356883495687904953010408146787106087560712005398049469299616634964558273399764958477706672367423939336210693174531027024647659594316539324224237404238942819220033877669257235080924115360636543897510040842595288350733374402305834399490060992341611323216400398797631713342953910426971626038419807622771579983341818389938311076749759459737132581973169935990831143220500940710418852522019855400360950194828434900691627376902573638764361212177584976875252871170302467236785756387854634189436264572597606205552766628239130288937742532146753308451736346587240385059170852887771041581978860736416298612459168956892659203838798501762075805032188130705805024308218141250426335594763788594474833956634721205057050668261574215464973818918302747711406601377388173040513344750033858955297729017794941833193472271917666494857357717386101760504949576512087595842162144895523718994575771400772054355419049934204369318604835632227038559585585778468279305566063996386850447329425750906889857545342177617087616623240442797003131927388805745301228057383929207003387829503100999711256450303698877630122625995640979921175498745293231823554915637746131820542287064148598484809723063028118314768418827961768639589434717521310743095654742101037587565351296084962439659364579901264591673689903009579715543808444612555321968682519852366706844138926512434628607867116568103681197925023366864437509855357859194247037382021850090817928676682751170144344304605500071606968242900324660114650005748364311759951611108679001396856347808222840841104382649831756568019552482232782122581681353595772114026337249471288321470610807507387043332690681829570266738154389503244178512673373920947937647304509325656465432039118380555661778620270036770581774738026304822597258618496026877937686913906316034661336969018574773201722919106562166091583491645459636346199571464901613646804307830029676456001279480709423954331521071760390906369222575892564373046724988982554233177308527846504851398072793572473894536684075560696433762773941283346166274280830456286381307532700446006039058255564563524917946412388731176744882789973123627763482727261561965004366573310230577458863957457277579731606319549979556542704735394804504693646084991652812675882594775845375108404333750858672236200814406137441452591807201224814628785368588959380934667083566343760206428154289031306714784167234743274527642251288235849997610025513227447879421375365736102478392762418905775042126534771430393984436579574156421770497502684981352128869272577552769053023475553207059586155356700156051389054118429723357743797097796828587995111459549940960302176089616064520945989127909648627657765728106850517738778565551569307123785970943896167678398175229154613074740294686717860061563770119008080228208375868832813117455439230920116296704294716982489680495961511168902063371633669595514317895171346144951237561775579089886980435465279568148816231800652571227142145507437954763798814441996110796745538093720995665708342983737990408306338240917031300845449291050381227646784432580985425537559773126188473587570743482628016995135280727854679142484834716478741945020063204947571987186564950499336514831729476346968306795269491363473552345516061103056585344321906423513138243425744787980724303548139273108783943158189712961020501617706668371464459091985957555824690231538775261525267115230759584639106938987104672159745777883887193472677318975872983022820073559605928901220315216629908680310977847202144250082145289178771510674431932752481060835955635395040330291992247598848167075551645381013708086194204690988744873985426216909679259689973699173418276049322343973107567589800787684628628902092387983882484650288523724748545598022560744002643427132618257707974992379858236556599614167509910432299984296555477320115524720735013922470906049396797794595557588122807369845081761508418887196064533891105936989876767569262883675777702442109342097779717048396268868234602746681647442300126932483029428850683229126941216957051621987319943597884949048206582811645477415287684288263438284781216855780249465918063631904831246496653517896801830182301374251733611622807732556513526223117592967915000411874616566642905747991802263227104535692112625156523663076602794861929235027550367029681151982118148950739473482889735570822258224963279597408056992925408218155501109334457362887222772671121475278025589290890609565318247207789414018317855767188617046723801003445831326559628770466676072869341754988492995080041695088348409879489258305895379398126813183388692432319830621191984851984728132289032510475631527116747058702917955726343527645306380237339763825385187370621473478529581351883955946489242199461161970221850194574863516406062298926367208486004708153677830595940807280338653620905199256426148815266437009795772746601855245676226464590517953802096252832981046530910116633930907868766926628917670712129958917891179161000480774952053055012343012961571179222192891426441223432367421425246296079107918221327209756349881136844391828670257617518793608264929953280310617729773105499997764371932913556606367401689527168031117389672051135266664566455898104348687422483968332621061055434895212570087599997884497040026023955306909427682817176069689931432172412159393658020573197176207692486658797794728532998213855412553887226518138911305483275013007105279798938206538638012830800707108975316357949857344161879647694191170837619315852368691597152245005933822658026448879166756772801134646600596402925324621578341718280038855196818233077844330036157228386847653097991131026860895229623074795842422836758672949846857170541085594115444160026194361091917218354127136158959815632882105293351030910722077485044027657119156658476489030870941725724167230485956063389389188442135697721964278835392799308990198461690789347288752362621814333114090899364638536938660390144728222193289834131246230369618148785242141514753666569731829877327273989052909254012660678504665908519462716452120650742461212619120429866690836655510111939671950173575245230759188247321395467105695718491703035803975071661853894137827515460082556929163807324112900739085804448902886413146651161390394889741937843144700373733774811538826219173455184168596075925718240800666609778479619172912586377995482155047303635880599072557837265824027409914851994060225420764299622752745966354424746748006884876864967105420382548413941408553505397367753533541607450541097541440370512757711461166649274439704781703921293859569855603481127889239058167855479011543112338384549134747218727804545062468910786914531191872720402850795020333360904169591577582977206537649238495800065573539079748254117609619301496627543626613252711458563002576899438721392697175289056232735075970757429203779447481780252380117178133682660669307119079917226762279693301967516092811181656975230227499488375948778930470738852231842045167185984007634058960113658265911618723465945918884457762648875091240001171754475238573021470982299349232574127322953348541261159850530364548220815592586002316257686726599749962351415549839976797200107123801624869268259885904586797455498013086193656172487586997524929330459880670534744377404057447868352800472010792169780482473613283262985587156759018043894829201505371419847774337838327246208068907052088436754477981104169876646727885660059847523590087561586863156358390483586350564576938642096677805155154539511982665947814058933332194773775086878007559931872693928491457712962392728133218551262162461473932452019024341809158512999377737993654951412123075080120980586225186779414317932100299038266919931315099610782331769792831478341215566671405893589868734901698045596498241433039717327964624944743106294741288538177357766697379247785571799064063019560398964202815925198567344642561079378985159051022426540649594486131700478325955951481515467374596955721671060569662130804679102061659619490064201869407347687281161814307559440741134892778102455554319667323056461147444330184954339827732684542377109897344675353527247699232938942213578693243018484602928543226795810948346624353662735576138646570485783831773536723956468592713483399174882019046862255110430195904748509221424224647042255263805523151742807866558018350197331646085973598585800706933560841600398556653598688593547183678204513834065428755274891461123124688182274765697155858085377237098972223867534702383792618823844211044364713277142922440794821917819953598910519506411119561740190462033403545276818897996544423426047359644269109462230828317880663922368452456561924915462131220193339775819648646316925296732796288747048513636027571583512398658092185596489267528522391719224049121139313539563892829195448263502802733966720217174900232438439251848738853493353003097745743883080394201589577596165793687092666840415080963701978364279091449181805918234226480103888210604295885197795679970559065435484403618409239766691227039620169143142271986695931356573663331108876100876361249521913129528305163291594313516877823955004244102139580180681423658465140667234810418577288906807724213041515587137160216499243277304389470781906364757749380991540048278278154747125453401851578063066730475327387232264634358928579416570951686493899412925650079351035141153913697438245938994963336986239542969696354586403765416627239799591524908290096778520026242903655924547732370404445683924057746302144943435020269873040496656620827917948220693209971844839061644578765352715351105899486550691821697605223852942021344332085677039877955533820128102527690428666659986930222290636808219575887351240873880099570624764431692666127377582023046788503470646461359185151521605374213378128575190908578104556078108886142906260166236364315308189860266308248067852793186799694752707816698795370142315367486867129562424053680525495128542433547980794834862985609676358488373642254713601504281425854992290920775712182858555554384448439067580018211393649715546630885327312915955384711416541597432032221741317534697761494178259690656522280835228775322420383225995944100958603110119155880757560214073125014896218842520495260168356223974395254701543460777337970630438267700700596337622564960656656512302772390802817485543033788662007807998090690627744620579441272589901937705398391491835748625909363750161259009329340133505209699823272903672328254796686323823692144799159065271032229772719980606738097784094829718451186987510957653697483734120683514051174399682803812865862261583372627815606074184944890568775541284160834529679804638718169949239130137975756284435044096975274235576785376695938941143942849295796142703204993943236189434968594602357150357871922885437525944380114068623676351699804689889529344879669057971574578749986737492445802018490256448462450277109413605562266529236616496830760730984220973870008091484574209260729757501710640695704856129435261708153759812699688426758185563412156700004604799446476021767562215353560103632053740145861842086444142332460704643398806339438015797408211649444251096425681308705087786605327660485271227026826898859739110450246027415713223417677188931774601700691101331490386674520677484503904564818089259420039597804596131070130599685948863080833629794362344771701090623354310712505911475412088163818191970666286919981035210406235359381382651436948392018697746970787208274014506900467378494537379087695506548402098134407994400146554436403958001167967405681076031579478130101666781387303903847809263938940116072685100646936062084547842338604102658252142608526493753692241885279142465605473961525018038737210234394921704997359206907995142479269065372912130183208316622385435668089923954055804237360721776384960762182446794188043178424701494382849930531183190226814533068163928857569869330567571968357319569932999254289736514723012642932554437756798856922027101589163953354630084230607913687983867520613024335327753345883243215834463213272715240570994909054667143919766721044038071813234915225093893202215846315432882204401263728277809371186937228566462142977193827946425632555613654322597824234218052943694582561229208378768799948213210981714904195687786274085208107773122862640564014446483572605571888268720777548390360714674173254750820428892764481930218842995430966211845187332477371170861516568851586515099372988712289553957179042360194367886316815354815961391843036844747152728011366360408313179356768564689961641720492813278050037383555431490953068458634890177137632938099979046936639745082107258698114115690396766295548419780110668775348097030537338096700714295399199864562463089358096374007536698462306168110839959133157104009604566316213109183046624949546360253829935107974284256218391132385916097674923632996104531930059138719525251192724121980412570299576473473507962929126150332012239390759133575896109742015869457141877877156303361019929222973844811931868797941094155123673902823426064311778434818182730304649000965114703432340480674735537940469878354746750162671803445188394608418362746952371873585991091970686135463225137088859175875482773126301675287797175811583932995090326780184620191675925283509442775056984570911292102658590930426292828641132490487080989856610919490367245770406078608699518410048222446293322248939720471201062560692627440842035943699388557268603222948266915889978181722224456383596588270896932581921694904532802199235704340051791838199686604168315715708635771640061843704499885227542896241511880239863192201346385674185782753861364208905639643600776667484950051777748512140762697679621501430669565310854894595392593441126037369515757637575864563316278652235030835388764316758536278760174421410897388152356066375023714844629092108394004766337530620228774416135486946710942730805117155953147860251099339260061234966587260775309213671889524838190958446171054042004866665222318726004729569546733591676802010084514329763166637276604134380738304635064710386204974214603605031811894924241050626480646519818967236683635127222230402922483632090943013033817972755631903547635269999090988822165084471783017289903839375815754854630376252066896395132341212313294008959745009689450812819380433749641875459187570001296835081150050425104244305573127147094676060913412612720676110068072155086472438709253286148271668376227607361427379800575063513058907724053657699404301777134035537744145456507585975069812628014179069997492964166130424376909812901184819686916232152894265522736544223901805885896724304436192097670345443568698574782990503550157060306158914754939351898076197225258564686918596601412849322269810842777887097753341063825968453190160147924576834368203186409908977793786754732587227499605080731766981198244998478330810691788909497113733186058761242778549160415958222032300950296052961631929525724238004772817491503535637156902476650539550058274433798704179216915169096243387454683530088747715371692609172935292882554378840579838036045733531203818103822695503944281953903682847711339322849490781383082780934010740705730683669687277921007767875117446787465975701464371689475744023294147615652247751727881507355381025160495536583516313579402556779476953240112183183236794319778661818681902075036237423287096233329944685620844740376066379497226066524318121137701257159239461580803983412283324383959902230180082131476469231433962256593245288047062357808179635998100115184754309306737473005369932244922484719206288731854016015632492832582060612134176159923388826862128346877366455038098500566971978186918885229818988958196750955295290013518914713689380421688204270465640159155824837412348457107830490751855016286994049296175811511672391408812782435394437640257375187880277961628455899630027227935783174483853364812684445993644232824322778624104875080485576447855176654257263828165373887987745060425815357453117835536482902278482019700622169455592379116072642434868369206104717354602522189367438918557028456392704623804264969871358073753816363039981087837750294400965893666306088642864964664251683713976991730890993983018207792086351149676852071904201781801020775361736368534190298782487584313391769163837798031103599049316074400745311182799679496518735992532826349048258078130744912334633597384971111810883174050332497326719383908305505330850284048776274052837430000031554260737228017453860053466949388188573391288077348865991779467572070004522549250715455511605971779197276073758337237145689362642932852885277632132349329299767818476447024245429730996746884090541800117676785867284864756230422270221864313153363489046732722465165307290323611922406163308602038986707806745285561272126962452173511479001255937534692926308066180616707092056083863665492574718139577918089717269456330499018284587826595655118416961870800369683281261225841027213439608501973039026713478450580401260647455822414284384611296532451824548716158260025783723865867730344962910794170816133764084594765818486946811356256891496539011843318904343752662752228353690129794292825663171851027265047844600766618094496661424802663901371485060668852530347684282484185114461219208934688118592258635438007839898901942307896850946092194884319045876802171355538361872014536844739699678718759661482643578185598178451060408893956170487407007227441728161743779806228913247619299836040157978040032234737492700344082872054501002471638434000189043247733409494688984317325461801122898408425379613045588168951605511504576525221572782847858109562264807838031587175295421494371054581452316345892874703039366116950577284896011138381350769337960946074121330819540387489563648386387088510049448795889522031787940440620316710313943625153126381939946174825325374264242412558891426890083332249902643532125451486628799700513783934158432230574178234155218233245966289477666591663014743737763756703663362846517659502370733943238238087689631960165609554618596111373894612603073419828214480003340143475008954473352220632900968243320925453789505854429493326955175088380111442237102390879504115728221799056071533288984105665941425714612553514272502755512650141416058560943697666670319313228936382853320120256191591491824586312761842726114037227778541756808687477102155519498221697669155929824124213351994863923673226446685221460615086437754511511034748894450311927151692668510895232513294345054651051607145512667707757718699527326979074698341182711593808348901464173075501223111585111443681634911837606326446228488723955112821037773716169351551231906352115976662187119237725716381484897504106582773311512357790946522509292648008151060168886124261991818080149582925871007647681251989002608041816523525775917918013420655893753185491395396658813459400865752335615726954209375834957616637424230861434837016098351787361247630770035425005387825402076643370602806566521587714226866873641871943976964686468906023331216622267042437022320370438506658167921296153312311611156270075801332463306116874649731912602680658839624905959954687336203267412055736941690584068762118309061884714558811418922738107504887888046310964910662963838821683807329739122664046995480800398341791877084242179757436216219205382958417795260241002986970868417144434194717026798828372953713620200732197487697864772350213583399546671836039958902203248547756763150108988099901433878092546596461586204983423867568393160947890964264181156326367635803935002673008739099689844230778267485659013570842855676751107469380014932604657564412378488902680136630948388114231675142508501429276355478094508195485490210966178213346242339147753543661188464663164302499819516291134466217466086518999622088344588995284231163258059441158162133829028732579971732715752246941953221946914125280300346600309024805621486601502198762311463621492502391920592934994603403828137964407029760887015341857659444567858978039576711573137315293795324962228668213472169294616169989716148562642844852351125002080527057104400911151364865923597605751421478048771662467379541100229106379351977996095577128258140347697441266664821293440837510632095567181641048238222905442560728865447453034470440351367489622262488356107859262365399796631623238709908210756805633506530853453645189583629836105655264016779072150858277639517591002702467327217773328599449569423732574887875296637721123950604463526236899804030411504088885605630535407538857955386867452740278139836704510334291119564758975373368102431797726051552185401637590836766847119059370240720292444968666687987473360158896896937311706389487681906544153293704539501008041013835331573131590304743774202663931174718641847963979398310664474339076570832321311426609119250379085564548336200451336677909231174674363387202887190482811644146961441615259578721976233563020282040205629985919546321837745470179497652155089755739151747044320085676144611547296704605699167084306009774844100533727674301713570289552766988308171120414282356878452359164570201334596728342419363916309623926082778095042354635272593151706268854856344782592743371355349090317953483488034104823453387055717071389006757565543516552295468777607583147751842150985843014618792322336841429884113324071667305357892800024266290657607158571362440909235944530576626747004364618127201516941239352993485846914344624486118322118528003543460297161235962373768492812202012242493500995135695514291642327213883262821921957460453967475670730313118583741622912163771376598536798550474770869286558684225862225520562491875751073231210756034130550528202470193251713113026754427323483471065508920737777379470461949610297751509387231447213518571562244483249265853504980568759216683743801330324371058898116248301889043386341581139561556222772435085799133324762439412399157385126543187968293745224405602194904461431775305554188197996584442559081368949876752107331927288920741014611950467244491922813094492760513181701792785030749132465529869641631225399617761512885568230149303221375277224932167234364430930898822260948354707362628459776225431850220549090082312124850080994644342610697920546607306355952963845704997902312699738478253816861976535999301204855230284575747741226961755768405396131509337143249062057306862130784498141510961232206315728601786450035754833325637545832036248681855654466716765927295826611362171975511655255193271038850971548825146038378553859397100484895274973568084572629278636817098141294224537591944271333109309626850487315911894006137059574600963843882491841815636751079629046370082958055632791226480957408323706291962945182242924486103347561684026827545830332626364001752024295616299933851595926673341991663494428838099014566822288927619185313749585915849965490440890699472566620418690869523293633823940902735369848513380812443018800156301018171732570830261746113344432766221715916968811367007058441302753770796898323804253271948535479348989203915064341902896153349176327369477472937347509718275995917000061697459242587650444554487252009555315189888925077059953027085695246103880422755482658877428549748158286221823199865223162072434398450265899866972986721741539082282287005901192262846101593915816124704146114095887716387413270658703269023535132288954696380012166239641411646467900952391002247251170793819856743293399048213867341125262566203002534204406082296785837351220369707095712324709713564399818786407439660814222796308601495917938782777429427936459608924047408107036796323822039901626951919161966947722355530008885110441712605649467300230379415998610902426579118342505508434951769334939096244114228229542253032276771439662044473319378209728872426623916726155185526453294773853232279554437483777190631114964019252900336013451806624787198344223170691235571564880307696041716700144282627225810181684203552970056020115166572594024258317303907171342650877779369612260720390259201483832513655537188406944133715537093546927676543297614895091131271992029240981534481482972932605730480894243732971981137277510021808988512534989928921660763920641370885654983686814784390710663893382381333823946108616426923724590033618998242948012321080061834219522584222675950460476049826912901310961732919248726712597470014195421942960128185339430359381668021824458533345406016589562776062212135211545057219360378925874313800673663831844860113273237476003997074639000101360129717274372993245498525465722350307859968960592700642645545731555400098038485643826692740271208886919372110526125324060810892602880763180618621031667301867756424330424368566874602412319213064985177951314011392614048341812343456496152370536328366848225354025914247249025298214385884672984253152406456179936295136078926703092561098928206730381585744073843288600582718571613884320797608034309771536680927094486796915456571759447467673882564754934996347075767165614776634508276927088700802908881940198764615638582257935505713844720923790208585276305638933273465250885877860577766591071501284002109522395155577406342184753856981135643866903254772157425361589788312660952940266110826779123932428919472493322326407825915019390589643605266332133012337257239307218467014463966613165058805855755014141827060438352732132198605017790551791684809602220554256435264488899890886429586800637770231718208452041813012288855415825974692589443578035281703365615732764175326880794077438936367959322408383798415598222145713088663182663737498032293516399570364645807367533774346858582968937625507878991724165208002295505138066133017191372450068411788421503729280960694262165804484329460761353254073472035855580169728301643829212306530441531143407388171785515229026003503344295850364561418830609233073968396988711170633824866420858622571936382327352412722128652415106063208094783227266753005004563077061571664892194876015135849112778261873930176189556867485809379921600664952117418606139299193587150750714375535620766316599911215830688321476748614818388320383354625129997531201341429792625599250986478234545569647017483510437785086067077805796299357828267660031101229245022957331311369167561174329621607986087178580125077254757047063225113509632242606558747011334430777831320691140413895942915154965139556360568438040348819343686180485413107953155688357348521664677249542983655588768514632970526954140071055545062139559848295600853216572358647866605462849320957465974255704205447872160568628637169835288626235568528564272357248834804947601099162685400739842196236361308426337288240652631436705837869843358268666372680500706443722393062551313608413424704164182581084759938144715879538372922971906491046509555009482599061857922498226911803989973433652613895851659222676835464953187564783372737423823350083888557665622895773235318366496442694035472158821718878830054180327183817941440732321039952639966628560811291293900086259110063547537366917484266773458957724334402064260091814246992662579147552239036546730996919992366966066215068869616345863576242443700184635460179590077095025840536968259475111424664465434641625583111111215093938536663874586325211629285881297632799364972883531008054018551601809780292523845118369885166013427109414141844717317082573303059360657499302314674069483130924678057395481458312358110799653780767088523813937269414698950963340143322845004547494927313694359994788641400154445751677596943391797811647279680597026410189247138771302656486062117873027491013558201385948801817292180569315456296675212646782982844399090399530749362173475989951432212306214835857022004433618983177828961862525232318842324013744590771263212110789544770665113827485795603907245098662453299573500667601067584041480731384676524634791070632500280933147735134440157451069128522012259197671129345560441382200470475098989503432785556549258757026005404623940388222200372935572726745938012717245308433025439257076606264170166473242658998128660076670359535147510350777461010912518947013930275246685577857709572013994264396917135182461401820894907708520001832880455459439663159240135100673948674150917451813580518160238266272064118461822777169100955417128331030757367916324915088525539766640307309763082742925700311712750893072858931612761512685079184132396496702228776426648145412606977647452837991320996415487853525693461799720081062310528860057082888249791868756974523610356518955106929285584079583902624727778085656057579411096032732424661598047157508116863400494949866457215235210045637384449852449056246987053782706718542634555628089537295334082115657023168347082476930720914091482887320509168778489135702753102453452786939232023148483443988798507729471130894754628655657514335205027530290200062878305721039774098448453351171092825318678695622670365765649060458368022189467170984009957655446496315132567216981034650708225779396167477135932873970180525985125216497635315411115584763928136749153756043600932830998437739196219279992905082695749040031028815556795564106089813501829045530853415020431805842175121417945202982706236784871689109773609708476823767001572463625597865661185560529668064434787436862594148782402171741510693867286993177548752924451122391019220998662914283193686165817469241860239425631929625548187045838005069172278525053548223143881419565262528139277413831839861582986437525888557659640655386932662861605531502768318144894063811830023201556412964412672286910597936677203986237073763998770514916074120872990139954000796544292343310799778254173816800743554483507870358485964973802415709388381917143954595107228115762034426232568929855431137898122499569681897191905426293595789764021684107819058128914930337750055487675484072221735935965245264258891353662065847000580009026917737269232760515784854073972439781946391942359215977460438158281713519514806530484944034637657723969604194025029560336525790969461719439302160387989370183042948282878711509776991387600952343675047639196663480442234473266186409866811546273691273786692901014590200864274370908313778817564133689216838265425305518141966767387909464902939422692091253204785755212827551017034886718017816809685142644246484592869542253679104662384270173906994307175254470891828723052212810976208469019637105760710512024032725487289540243151587605857639886285143624411414181853717760367400751711670433415160894147410309569499661716320555129057073816543890328422138433574143651020007063448363842873827971853014016067276015832207182169616581172561073732499109218042899171234603583800185273068183597805792619713036970046263940817844951783250047361136960817936799965859886060850455815419417950300962301184811116764077751869719031350011435971802685965826391744944682484579925216997536435799489289267124523972348026832615618107174801283151575404544016635063320998871022810837752748944762983608546703808490278839295549382473356042715170411051734740682623062352623978878454491032073034613646354161249543480081516312377934079875245156856149771239375958529914742357206974739927570206945185971414580693658007112182870938505401186921421551430079929383182033060659478796004383406183877425908913673531781455077468284483086196691383284343309412627184121714501147352021688364745482210067356161400150133143984901354997913308301412943457679168818624048263055260852050851802382547448991189097688401822980120577665520817267261130529951126932075738181769288004402807216316413526012402988118467470485032922954201637721448117678692314604751183884518443100361496948616811987887801977150203359261356411099777895401866952994983812600707438802883517739551640328532105303257155967129650515997581894936454106005898105550015580681486025482979438369028959938905789432930084051519044929706245040762440753074905712616516529220516917571447841877492353558021587131730155572691574503704549278834731366007687132302202585322745046140596448128472373531442510464350151310376603968416129911198452264791261261667931143282979636711164616059058050400328260003097570129802057152820164933370578053001777319344613858903138548474018594586137369781424850171018089046715073614966727885829283557346368015181455892473366415354834654736348701353890502022514970969763310147735261288861687337358141900667351269380327189289966061915841463865156897048893817587140446937434264461558301370985672994195710990261728223025920604586795510410245080974149479859396923569817448841787464486370833210014672072930424176124269396584856795191555124256401996775277399036035533278789706908326039976075962055835836254036348657875028022915762835414196148716296637917982557714116992823466734190180213907911956786316964317045321563537183218179872079120362748869424785512796035210342814749105264089965216382928417267886009309599747998108730821752474553909752377881919660361665075398003830565969106949118708856149649278894003125336896861656827809083657240623755293149660815774619721482833164827258601327470518583022141334228426205197633473756913479238779060714306133983607589844725734335025653027779782400626737602285107611472023310991056858604854620972749721378323577015008951250199538916802307420316705437129285244064688871808735787846353025352944438501576911092942043482372025281744373785708899087554106404359064412211069533283930829796156570767240163155615912134215024104241971886343504505976519738479922627274691841954778569581208211878894026428756444776117159034880490285529695379894875535252688254134128941049132662062852837599138179405706694084287007241782217337382533077112961984747701770804286480230967869169198330050390099571398993960246158930858550245286134849084827819947142751548271108217224200892746520912550455727778565986684186959940478398577374252485048626669407451044662593059431056453520933772749062204704293852822078074313437232983752091320617640422260930200288547950188246770242923846445457561642274397903782940218180601623253487724971391531619769044999911704677662154346868818500921618887726968852836726330959707573780911169123836195782418639767333210560885451533717131613535384967042645661537735616766499077017669172737720735329575499251220273801247138425387004480463605221972364318292380870083536256126600989737331128288343420934574949051343004100536320897872750730491969291846213259456754923228219155109026602313602047967606591818450441182146922570963241741824204818395325677865601519967831310523026845223286172119121215078919755688760354207807502116535792347042369385624333849669600025635779196629853220126455825078219936818430433915137045861229779193661418791186260176601855792200991417323523027854628944219584118548665380245737261489347773529305735075886546651177104561203301602805090160238922841738798486533261066688309555325384833099798618106868139426061961265267572490127570820140882743130434390704424300814516162654201426434191629957221569476882848750869741870012217106655748126402761621351375896442335425123464736739856258787484693943510539497573908404593094898540728085374147688366483490168656570734380216854945386548282497385124072179838822896676092875577707320269926720011325594392780927789301933007265397248329348415792136428326204047180806903780182326007218288938606797045732282452450959009676555854291186456253791481987094682332254505696783537386342968469053535941231423032043750684033814679495216343890450945634496119342977570310172779679458070378489241578471937882374491115088988617171393796571375418617265799102164410236520985513355428979566444816100135795792754054695385382452324153984516765858859126581227928970799955981191311591349145123628686196476875782858310053709217625721080225618995715114251767049186277213272644838831728300782848586765452325745158339804550985769252276782634739867190809705109871718606055483790711062344262520222020747523253404725877423577872291263426354631752540827752052279959454380769445116457116957361996321330245442772631546269910860811257279610837964049127406195266239824043903458449222343615070464393901811942992091450370740453322320748717918761153475228491170300911742513951517201738464209235497751112884762732225263674038116774585311210082195137953892924138630021428551148602929291199460522143546598434896278106174408252200563055711529076764313709038381444946821103437383127981397429043376573448958516621755699488331390339526393896744419876809753279719376311981654914996605133303259905400336407369952064121890340174296548021240263727988709943302521518844870312574676864730346869403181478656929575699703030649893369356141157761508481198624199324615952016126731439393721932685130880103540420220033246405106277630441646779120181572674609286258008291486473579670445410944485929404197173536322060483687734563461745681632499125651318092758361618496052524957296740262867586152686991654440334684487050966426769148050592679757078552019934407943478000167713357922386721850906791821752712672671567773877189460775811799361418795748767027933437937849017555893503014410299129052027235214699094126120233433463619454365680012135630135701977652952762198787472836820815112281277249292318928707114789589813883928771812629501624287978146259593393569136928879736585131509364409657657862974102420728300415156652207832974459901642357373609738061905033324071149723526565113565809745803003466702127889349233138367911357251692975811823872168475535048681571357768348137070678027815481330480818546089735961212658985287082366197572640279573834397657866320004374817873621728446537186750139514373262971187504943438237933898993708491352047229011179752968838504064275048213037153597504984633603398372258985898689347921758479028197350149964410635025553803888864102522197617832609032773701880038238724916389463953994524676449966621537437765374345707773158071769490324413244414679950686667748579543208556215232559180966553843645947740378033742592399681710311265368383624128584354438051315644934069799054522489877832557113315596102463504994713890337468299110682039666862119807715233823252573279025716591208895875829206382616745403677848799528514232576708631883954037157255922296097752382817077340209005718614230049787749596567446233119899887540771165105920212502388506483520295168245859959488410030095137308183808968027582235298029692013951473899089051024246584135974158904150985905131976247825607565223365241517418264093534610212176146528931089831384746578990598983008737044477519321658624068690755339023343288834541602556376209322832221907557814077650318327645739197787598498022471078379000591860863969781297494723441832186471694692215047492578567278674975772253984287838840338774849974860703136692278239778236118883761093482458113235631825286474363561063863869688754131797019034067497240649730460177245438679790434082904298140871807289537978091010135311468597680049246760404245714021990021803635546224648344063532797769567923075292074691093022195037218150838742058299212983394042578211552581132695199822402859820163663700996858188340087894326445886849936000316621021817679698242359416303530156101941824722526010506173315758574952300654948546075125950029957972545159480684891993785038012975117837556491580167499687417176365325960584659120730210170876927294738305772744959916722706273507620384857992321868942028945836632879148302079404982769832099915255882320419760738321376119346556931697657553889311797053780643524675612129400324398056325313745166739485971728763103554356429450810357053362804510514907714305937222446736846036088271656535436375075673434314696043836822951714228409120119798868223105296637431523548229911511484215693037499861950436468013452587035211419146193180689591113918838402669989849188787923534387484778436533333100947329929566018637446329547280891445410098294689242829292096208293788095671250693445649034468313225800687054238511011602489208749446128366712581671792899568393995637904083635347795456110607347024940379352520255399722326686299816242838527219802523182095192573233516311670149584375167346563190412762150465309909243411672250694832981714391674809328678650006235258965493579519433200140636536897083330551486219722434445915524588146674370370319103020286174525654410858765803696144207918265590457277051609487274206071823498750716257368922911758127317436433111326809269221030042827097246591253699042182100401475919802696092665797262530798833858750993996249313269311940206473392829762129682932612273353245077764348967843509188467252910148970283999589790386349344624354614747932901289294366847476781712841559203405532410110903321438832319280050807497865183398211871128482454468946948650045483006719259727779148840093068602791185719870914127690735567434678228520686960820104254753880280781978903068266634650826557201397507451278429778114376414522997961632241785651355408628811579067461905517786676918764940842591183185822391901554535937118949943943855916748135460877989833932299848463768004995492072941024260837328922100180376505102104943348918093202116350907859785489513779989197169602884690609264333955871544456503254017653799361124737297990278165598295947733869073234641499844001466031200607520991949482804845956278432398674572799698408713776904491164533461490960486348787967175028553728862385912393421375049482770029118531624037635342555756295022140312975270693949863547279556313429981146592994431075465492084961225646581326730758479758317233935204260202080573985328479185982658599965002090606461903317897352710622817060595393778792287963002784880684848490438991425775787687031169079404993051395415130801452202668000534778556796845707980262218694936761288718367890511802617385989010835707886480900917918625892477952940882134036754247376975149230590800080516532411267475950197631712691842517210285476317037559876811215249062163294079810386860163550911813419465160216586434691692409904509480565896625493292811629603898475728230211860020157768679189246052520919313487223084475170711987378134553217197217512374830082277783184797051213602169057350148749773955559992129497410883134373223013333852863577775093642497661189615715853968694101519252230817860443248931907919904000731314888566499202713195347302763891473368500928084657568699581042384966080224606337329147151770259212056785708410604598428095967826212336213849153120084029946363584853640932498340871598814892295536189047499396001346922101026535453537643036564428941828307543395366318017187382182624463887601247625980052353503696653980625676066987100140077189278098983120945340612195153924402899071455184527821625908639068688931591502913054785095491606879364868166481276467620430138457104546669141832780316132446823167109522731017652899774366747821279211479791189111978138248687748600835249960091604367700083148117972301390033053692462291653758373479153507072755289346758278082234499856112841973093696050489538685979058110456665444991998308930779877981737440653764429891742536243930675209393316573745201734539217927278668363080287889181059011075171198146197452052706402619076357895991789241842044358105162588912955390534730512775710388825770066471391772183231952196553992435764642393421936740001134292375647213157035775047488209986786647515886053414213669744601279153078114597176320202483689137994176881846288985128390342232177571231380453109438402402501533353327395736456611437636748404950168976127624005813943515598355541521654696171489860174067649367553671534854336719265102687791604238907101885243191715953203988263244689618198606006998822707179379413414437020716714373080182368827982866442780516956148771168152997846868317015441364647516139417804611886624467876355886511863093220316588848183988572194093827814685982996586974272605677850698756631130646711635594654239400354204832115536672076868360295610567326709952175434999023297816937900721397067052797971976037559914396291542917430793909909791764631260672040624540168529271585948389259201749793644604174699413091094333684843887187535865729619367127928079047495441504467154366865767244464617172211907135723228162310900239319311235971830491018919563509634533626324855287535795053242022661945007226578488105386675418419227425756550313704913483813584855882858965741157640939677482391003623579736894388067759349448877939057482737379997837358401012334827829502710233926135475753748033619370529663356022244172340933558334836969601354469837009389741894091634745607012864760613155305821657632889612683783840818525681536820343002479572027822313758485064454028482497775540929556453323171687697586142786545979137316541531008858148726525357229769955239792572800941459830681846267811833205258786195617365823087207747954097504915822699177230879923985050546888685026378126564910855244795010016381266966087489546908117485625579366263788964677421424666320599372939015595559810509559047774827220796105253589548672668036419900009922913394609890728216697483874910359555635769593369642816269114749883363158809671462818862306390004257768788887394117880834621387881091968211229937609686889696515074133124507553230982812976796122759299999418400890616536429373511913245445136378770638158281230583314006079123681477377778030178534048215300770729782355170866456868909986460071101730792239182853644566686278828096692785361460701447406678732527507015767868489087307629422141830745807125643271795141978415026560713554248807012108526226742340656609438575318820423402656020888367584092344904026925392363440035878118472881905624100195553963435466993679040068376011212334202715947307052228094735518533113369835296873737374316981771995164573529711757099811848126948018237358861086645340882973814681278897364364548394211987181155942650750343695129988883984125658709188957549706064668654316844200578649768244957164501609932385691973186429233173879180870530453755168887039270334562030647195548663706378319624565724449683512656506202922974253722766533538755662626077415997242308980754197486420460085120719891823488942411587716243302219032387274639958145650149502917176053512544618479142114302122833872524825586218474642084368059354627490474253604263878175234482478419655253303333684698630174984952160846987847847729398449129051004177619075565887875175864973541051396018536166845456002134066646188434333869158961291801180699616235586340854415489555691977546945979540194650198155399798161818760100233887564049476770428081439710165934824578087484703682034323525051088932434604023936132539789777360725393348606985492592511542354465699578215265109020165636962596525339420413501792495517438365576029909744991341663646469344672312033398444127911992497915781053742842056962075158349947942316468391095499755763559831623855894134050932957307477318545868471101084100226184655960834731525213675305317333542739820373742798169624446686740722391752491509923377183896049360016729422742874285961971625687733875461443664354516854484252438105255152691066136892489310623856077884221087518539352690391348524210950358045991712125926242450900576332107474877494985578794857899199270850668758330856939176919096876278378750071367256101125998041688606876738624740284210258143296041193721826737900567058404414813774656273259607891069400590261736157373117167526626038555351325729178452937645615124601618024765013722758207364797243162714897741506422428241565393995687019128830497767214380981045381879743473488373325505314261704960950954264418449155119456108417645711727589326947040682165924698154110589412006235951673774687677209557745394186498285024662352307426069914266761031534450164319493770540599199682490635011993199706509343550924952136992465406732954785454018247539278877705044711359241319925881285340999630178728130507083353786600953499355783500798191305279669382885437646242648695196773550946224631200194480033279687360328709748307071967783859873380743136755110993647657607629328679675816920852969046284572824800673405013270400282469466302656843851866998625692843462944639580516900537516642956319276130251259099003986786707785631287344726610515059349892978044903460357574966289592130674043008022063352018875090149671278571064843652990799248942077181705829524318579870248116749023897297807659967953240598685424522030433106348247135969094124826961854117032613537780371680401052294293378938016028999295899168977867235909847875304687987656123850750801396848310694615245746318558514735487745263137104587379366700716382490927668317562403633401402306718100947467275325824269326990663520061930872420530131764047469223677135549047982577558314678441964550194262733128877341131023983026341556797236602498783669341665273284651001954483259065726636490839581757135774463712904922302792106529631860058478304778529176334984952552692195487947591302860613952963558593288356742248722938427921387338799732441210690817513648991724613242273490695743012254266291714906858685489829484190185045984994239015719762343297224666956619821956560047352760740233115630367511012263727375477106005893281267258689784722763781557260662402756389084655235237594950242595688803854303979129632564255689556100403913352140575359554684880344442797761093292530699056973111085033708585303486118867400387194530685496426849328184714522089192252049920098492786865352649284209478448188478812024457918762845755762820512455021052516770273397919916210350569183543201803768811590333271282261087821319297766131939892497930430034309603620974599502516091126737925172042194114701300340592660747262085803171266165368149908684316265804941944917028175195967829485002596778271434795509788618903007855105457548110295904980588026277618944217502330965584401625679270256372600982102215596351414180129477076252483888325690631504039441640136985613378541108053626066808863549361050273974812743433577991334271873031707846570391864051175830078991196819192158174749654753929683887039426919228811313969825221765797762215640727014642262147783995542692038353651878725287422899471783116349020240288410748660461789934603565568436900991753008125159208575952613355098334080723969641663273734956046472694982808727935135106338098821988488966782773322583722077407928290129858902510282132615579754588723578349843845079196056436372165303483459469041329567850367411395674588965982509181070442891375204770700057114568289852886892488372202581281436397198027054514785413749000838566959455536334746814714233824887618844708233346456932346124325790583534977302886180210536841628066274812788373177875339948995733001071407962152232411464569767302277759944716246832628110728873483099190345965179382136251303904716603068780931427660166653536630465422578689013116246810061452663195646980926986371373970653140470419807835689809387064864806424812439760692804540228290965482143750444352211386128309450541239392295565687035510086686371221145379913113913042647575213475038962461723779010743628173720813241470665440261627145235285494667824804153419539544077750450083572123079617461927067214938411811211970399152625770355242279994327174537216763575287311945572546241965025777292295291926610124748877087416916096255582693670668627735491906765248012653682421122050913564837531870910049273517571990662445075043743935845775644260367285585117301308200084816453902893046963832295598095521429479929011795193948605825032298657983188525905535832064426512405742867851015097238162100306191911973568225893667785209009720781699264985902580456145648215066737600025202517526646247848198995150988723631676625938952418101676354328426826826139892762304466940504195839454745718023075294361699137511487069212149440311407048691874059014546251645273523336162662705332954817842523926262380380605036301802913391065234418351489776843814073674901564199589956027150071289852591300188646214217630386362608296610228088138550391233800799486004912022107682701825670796580599159107595637785809019026658870602698021069249797889942881636537702883929085434995114306606991765257183540292948417997585116540121712147294363692383068781097785929050852557083299089601729739111448989940737635774538449598720295616653841691868028596812482007957412907725944954522019272213943656726474211784244795972061332552572178172001457730720961242621596535421086598762725057908564551695983611186447702857949218139676120530844066059699414135612457791693550306166705039131215963194350834404500603948484048027663384356748819665437306580411894963657093130896616613599102557504902316736093113988514821292704369438625107187803872493564575401638526496527949989295994867184745923547328347226905706348643709647685404683697274048384374273128719228284253103113277499151875210110267499905876608192170109253524860167492322323208967917726063249172603395424931481816978281649992076881750116904520079718225282958146913436143449267683658812111659232667595756017021256157449235619550086526872866602951019532905851381313146813362635870619514265751550311376054815492686057092122779191835431834076239116376155305712825982870939017672520365641824417182120593407597055154569735716303591252447683013479534374574506330222513289203580639990181130678624576704260023244968522230695799329302415643135146478781645322305925919254355285690685450383373609092947833218743062552743197467139405216858108309474685162101729960467918623269868806742020943589715805846044311435051361727223598846200337114096556918149316767930619588608258187199226341631262417692469109232180628888993107646819376472725944183034263696594378713707420011771781940654244601730038258885253044733985869316142751927232491336852234139573544486608048751056095805471798005127571433972114744202082180482715406132497257220208665725763854006555935174734883792874479586222159968780177326156927561497729856473672920082898974563977867300344988452404516887278025231760980528036010386820271375550721208961709790355531328025624135131523731534263794760636433306380032405405670696434763478064256710180409913150230590083361533506851691764398306121026891072086871247105725025326524537767496715409585047176724068641806788690760106506310213532721417568592785913372427491480616054897753922310028946622629618585844883256857127405980809670419285234950081280125391803960953873519371460630151239310104746151457553951261431045203841433370493679078066841408570992584648477549081717423298383733263914590081701168892152386888107334340377248511989874521393316233583194997484964958736753592148798149713786195964555623406420645255138972559764505839211260397437936203847439277741912022705314453724184414809690408465362542676772305853101094681541739866450481082419991711795688535165039368276079996234595104615194949444156822609706869707142328624616750743684545849340413578870771001426631758228688478514142213191948942488335893813572804119155420538120261206832844962560336160521000593489649848833943578251163174949621987055854427148073700121121220732247768770821157374225391227916335227742099770224255776378031521072125110054682090896800372337039586836431860692091636583829453346200734721525282499667239353504963320423891988667027135890534646076883162779098903781407925893606786273161931962922086197768878866578594011876520021107761557952982688378847763567805187169326032463379166152762996897175889683112365633309130470253743550034201100309032550109907411022000966736264318389684744284532153642854952008052419907660763695139968441062409603167168441464461992913116839274765369771513666653052102395430275769572976674026174641404328175940854053079525173651711662483125307683219064340896163859091650779681723160575685326177504354967592198020647980467592655101325257176910465420126082609950131816039756097766371849601618963122327029534383168813339229595052655180240969807418230842097473688179857724815778146177050225480958015857984981074048659009702680813956580537248018089904801658745030039578059725457941781859281409389209390808191087570670721308336790169750192698683151140018199863647179832555393428865458424669585779703736544416774410241129136042618110590487339753456859435656708332226511038140942746679348876747776387884668459675251443215584161200311528635036856589663761612351752435216901274467260550443901910338475321082844953444469681589985183414297195953072464454944104625410400305128768362651271528352227742921733970626775151348997386194291077256336128005042089407509251686931342708042643046750989953971283211719747238958661967040389979064402259920748458190582389517245165148829358792323589323156026072213062750080679748820951668563340712201414066776172107940327279271631450423046231033495417799635484328244949116598699813529926403861466373313425935399293485355247332725337185242357073018381499944896405690638994671058194301831449520099344371977282998708358550575345076989034014779651775952028737555482885769868478254659982844981418043754716840780304010319382596434977243313918424461475167870148120401131786592425616442093882901239529817637983885876484037177158449366427754847827363805757950058735507494555335430233166119634901332287736539618448727533356231822185272400662804845274633219138829777039828736969955761277633471162517328170541533500298576431910405044985610868069232406585760596198288540227541650417077342572132590503839762038844812866187746781035853511222788203839597336206985569250928270060261397674482054056488178298035058621055207470421884776906434222941609544381510970026668233899795086091588987518502343312121379993416095302283632595422668764671085832819267747882501515549091272476822400934732432479354966508233404017813409547975237471508656888979180691732262623502891433885652851048629649692586622360218091648502392986433848627553588569989982321670030406507729895492659100768025620779200702737022204737321735368930636548979398008536253234617126391675360136087848945757359669547426383556784069659020220697894781613535280310050550301828073337256865073298323702683799264725305523548110516386700226196144711604777314099680323966477694759652649606916187189582900483656850469429775896294129039158633282995827816774200267535065076767281137667024382427052912755720261719425688964135613132204424870350704889011876371545393768829255614840505694470631271532543911226663730091628501997449323667308936123376917743869684766528440023837278758135447252381878386507259133748893021709256493051065170983463508697114813657555215473531279621413862274017646988873234329210822685595071115318273598327639419815200616373425561377650640244662384610239650042542172958808897535681989839491796492254530446214850350586917724064782413388287223597372305432808943142639603120411063585974994269481070823038151702396443237962963999677109973362514557971501202365537334307546070845216180055905674550936446389257325211414675756481320218438294233851756137331091585593212649883141409143747154591226307363914678329009300324450585573132486984426156378361768900331198001665972946037138206727553209837950703765724745880804845957828141167172480187091968078669999437516471749123042563398814417676682693558809456426308514899417294008503243881055707352736081837421760378153143723759807280615550892157520591584127042103702242548064597099351161836215181590074689454063974618033868652239968880566052146877341071447158353265769146257852611766304262395457901017600321148767399972876754324919744510955413590195938092826210492272894513279129857431495015168776631189346859526003110878748366241641880562301331445813897659567119763266586481552891324745357876243384252870886669349351933516822569287622035003569185553337850740103745697713794756027108288446263386688245828113187636603082557846104834600711260858284282927677110978861610397877728779204412014346865925078720047148496953910852973998828725797800746283804061187389223456723921080955936382619614587080436286012870452945667469197415409404045129638639871562313950569645844945034415622336035107330737044010400724491665581263936895536695263013440934423251605657333495561665186234034448772458850379726038055265757125042420011595496454867025570141517052945577293662451373321195367644421860601546711252768239645888376796930547680809499015975526517143470069563895509136590266513154488019590932016295614926932202218140895662976700593231761114318405406223094391599227662436260115262248695999987234033096492387363303032791338164001490340388530691384834704586878375218816370093293219625730809405144454546335214327174603440948149532250585153728196760700534511769901828305683709257673262482912247129937820995468945896915529706206791765578923463301299243854381614771986019265258205911242098525468372470491394150510531787654990665243576908548841234829425798308882514495259539996813921906432629811535504646696720193775839436919033961452377301192564369173357343823464714581018467157188973368630590083223129421444115746165260298907292709544920551659436757969084396779741561731151132838527679238247387826564029915107292301556816612000275678407596115132653473459323180814326787874896180747265432069563177181815820154737484378974064466422860469511762210446966344963328750035975471106766967821545964770489465357548067725687703477172059086550268429272689381560890368817668604063516151577372004811384164345327328466587565428515235852400905066607759910918216645489255297248761300932523206018582858307438894124645611364783471377577933652822598812056648427840073389236027999858051964730659360475359897495391551944808069293035516028492081664785507647974033245181972781681208060334497225138069884174917450578152635405829733966630441765372821360249781809347804291908345186342562056586710436074664643390658695974405631968413570578270684746328017604265870230521611995712316040343488454273990362669954957393870840867148639264603954370018956332181198712417244301855277264630830089252267540293959452517881373340392222431761421682023432287900063605616089879545941439395035908644466231043229475246847876728934668130335764626195005644212582655319470891500338751486070425696571530624284918425116074033535483123010272930423053043717498767911732134403459860524986384122320046313427470474059073514740609854304559540925104461633795895691280930958236623378713806293248221791521060999268413102433261052791206563795587903820442011017911578020077934650992086782137581562315927562972716413578451359431879044856634482901668810339193101626925471461050261426268877908500854639108233875344298600305204174208049341507326162013460558525289282916728043044197831768805041166324696741114097462497460995293133278010139503020610696154595658663876940923679319443952996145223223841265544350892259528484473494723982134598120418428717870507241431506756276975377611500775385553796376101477194174326722504515601760868326511537128282496261458179627618187199065162923826612452480283505287246023493648748719142147528689296468403345472833830694983428519641822988348467939831817284488792894746083805154852047857393283050761661888169283274361352187553850574475493123282774471366149282884818773029700077529322397680269688114425401486649328534647097690132789486709692339595580448419667879215941117841597169804354924912737743413172489540601549842500383294094291030277355858664435726709455301582119599293360024354991754814458924654642470515779369463041544380068645184666948435617139335220438469339864443964521901591499232376241249976188457817206514886766102777735283713938063369867933816518221546244479371616995284537056613545587554570660376397058020351011017795119373949234415085834980573445622309191752780391355372121008613485381579880681542681923119687123079188837988856232940367875815022411066758478760717182278092503039066080866327310936891142351544329132484302914001085627053420238687075965821919851052475948419627730322182213311046882051658248304215687111742492745704785601160866051798194915716960809130767717891913341595286100569559251372248246340844173199745148325141946337938065402396285083585917079039227552486815523875616820916672789232802551859326804295449683416099691901991641077451494581072449077830832151471141910505971052344879514219550210546634752426532550168182257620740499882990304257046236727617014921744995794386640844269884587651538111997660674652187951611302251499003665166626563391814068734209931138622478308291088063474776809001405051810168478703291755708033218040095607589423218191117093626023314223645629296204191459106743747482975293882797257906141451844527082631283232371800648347875965240728215283375266917888371250476138157590622612256346748715192468180302797416892620809585785323687182844148933086908086260980860279702559798840837664164210228117771128257697681809532912008782352978645169857024583535903493475618522488437102952336853319200143329581909670826327454976327441021561664526737111106756477624790349468397893709937158740629584955712681889902892491104786460849504775739116079890934683913211506724659242993763091810746675703622251622719834856623493172203102793952773237367453740620820031927926632246357032047396087231348912965757465077236177511760147685706540663833907168939605257120809244963378290636007833031109532977802710188620374823257455878541452101303107187517495634326948232888373211188564686599449416386999139796588047323336570096438643457596167353101885023981671546865543043600925056797305224189722432501839044376371693262469193823859692353801293890727581419130798775591624566749212193751765051815437834343207130258192249072065666317903320588192640136075580101171608980000397377644822985118170347790764775305321915551131625365940416793331263207125099441956195847038079394730045969086555632028384793873223876380774866871756557006390779882139215609183707919816414407861901633099779898918493484772709353868521178509829764948866581006596085754366871629995035260955680024296358092314419977067739521847026276358989404018975227202231510131235911702900925756789128421515880156011639143008994096099142781388811058539853690178442140626225105804234577848429385158526730604747009713686427217657604750717721029128794073354224469886811876052618590924167397257089135005284054560146836602397926087547983105184780707025180192252695639347223029682776136513006614618750797653224625519570891409403153116680347442127249494720641657895480259000747283545821653616036078666041704384491506513388957312711420854126044875522408465706409017064432600259384450143772664215665525479041105527473470347437613603480201045359929828392307535583639071039865946453101240891316367856015011213045580629571240076458763911992215468224542299050615450844067781717843387262073168767906051863569905831610284244503725434971739131585841888765829017926343606432326442546757489327561147803810516419738440655795059902071186687256210881280117507567067046470893313125075710781357835848774694850969668058817831221857571298846950739675817298624857870127449116300376369298152643932309092068867665120279006478773442708170235257075433424876992192445053207152933395796286068232986849320777067283138199385769054414300641416733502834516769302546507655314007866864244136327366262961412357476775183904071621729096226874700536957720773326842418088744760817918280384399997338361662785677028130299282913012617989016988931922732837893688234855880363860446720890257748709022884038705391096079817113444814150995156772730224967991675093213462065099631438319641809880621075015125869821147422398224396629404178984765685524658530876124705157548495315402008054226942460376527150002420096074514428059321861317517851474183637681738560106672398655431271286234536612969531960678239788573524735687301381385828417719124790172701975130101307147627130214621409493676654019463863047388782463809123473095942850124546349002014775460771646124321934042768475617877899761000013810356915219998365749740131737356409946327029817747164103965682874319700817203701649729220772979057363447821172127106404944735724570215053087308533718450911935189159942605518956511941891885916037083559452587504340176744590862268653514492409738202362757095874136484059152115536006583283147596872614935218578062626556221156435691598492476342364367128732171448753647272119624576996218433241547885287356494328485631043583921103944277313755718255842018168230716251988171104470973815926272319794169964917975352806906027510311322400577028833622723048489170824982215152910114382050970856061541446775648091025571461259234682637746071240983522860512339916633579959529509436852260526578394670729010414663085685753509349395888675584159962489025455386955876451347990588815865757499924982121814868373539589828156423480760856156939778201217272698037468838988856369661336289762437660009687049276567538127541365303596807313405398241745585789181562991157790801809431175693319909818859971614059722317847743010042860436432355819552555903541986300970679077861572694014160914888307983506295651390357099910767711058314609013926794235845744734413975226462571067840910117343147101905265978772367965570301400539353739103582523119704732222925215567564995406207160515653420154531268199391721974223751772624567316576472543299084277682126061159115624744237290364812765228101848689481632430303180563489519504028234771657129689372028252753394427586393477561184568072514965243220891644471782548189269221847823009558890930290141029555811220213049841912029412740919670845174122790753547902218585715994998376771867200252242663887345977026417642448218674783275520699765903525507452275752319427699798178024525605107149226368517682352305921919786167885459539726674191470803928843069881779349337872577921257267170494550965757605127203369609826169911859291710114368889379360973893762341310471286135850754736995931212645238825662778476331842898048528500580332713105309080481949356256538563418808809416005794102080336456789660849075594241525177418233091376367256817276995758078169198566022773982570881281338044895767497158964116518297729496065384117215316818442967702355454117818681782214219589795714230955263394934196822772497001523941234332115669185914650406014522381255790014530488335742583728245340626452969729544579409686388775603746421953657596410048007097168201077716695316780235138048102624724700628217594043425046353142561313942167631497918460064676939682726857606193296003778896558592565005183066082923215557336786929903413577167455964015930362803540127635785159266184300366063636752773760433125455231285295358677518771396316423189101426646731829285453039832419145126520771428225103455728006545344235928756929387171638932630564416359758445130334059120872763393423189442994447384938420350688278986915810478803803454035284598595866327684653738170746636508399646065499501243730125925165289957554154977729684794143979249734248072721447756574099885280311579862149235509687804485840949025432125551916377883950892289662013711962800426342464979818086238493896751875523218389940343563363398903178387842404655597680218158589100585491019248900902174288932730483174755570201397033716992382966112316242344842375762065194931888929051329586700598721950986718262331450094915697592978298532491287364620044621634236944599281174089788921206073819651172295812588114831734711256772399008261868010284177364240120996199236336463570488177166923762557918167513498191387570393229758463644251617521981113215011255148140868213695494345731625606748053288502225581957501770000272671960791879434560637206417305856403106364731282648880638512345484019716819383516506610966572451098810709289227595174468299856257939871229767093666487383156142552622835534489005399558213140385188468106306971653916029775802311732908691384833026202501404999252184621152434606147903936654701320271233993848213971453753561083072297346153921191831578649673530202689600431577973853397810629630999207071467138732249122055671302468647195718533600250753507590075620769347680628182304458568655769849186434738417963427615717951553294791536119514131438833072447111268521509334199948812398375932582441055252321023156108995135571815538979104402980134762588545359859205830952597360226044744438366456706934779045211697095682014524498972437895220294396342062238944752472145464144588339994472201213213140808657209731691511070405200059612795383461028788667959006645345321893377135415164210335384206265190443538311939950862873538173157045605804270418724340254511859997645639710916911497286056499332244464721986714529598160033856146096495652072496121644042000745293085239222287230698004005585626370579666441636676594366432199670541634787283922111001626088468809302937768283476182051183638665994649612231564257539601407266970303635954529999094853163707062124236528794187765427864364585341786187946095751865058623220900648309310304791019024569177057687666467982148054040287946671231099814177333709608570793234703788515987896096679385735137519951629960786065424442993066496109575184096545128960490133357219637121366763188723827742948811510969656916977796754237305714479586170390997494891373520049811694087031435417913133664833736964307405119845272881811618364887783013076438204078638162167332115207646661873029211616649775277104325794335028521918922866261712722467630996822784341864028043575494648183865958892095998453993898963090073942267266550018406578958382712910491903504581112467919196591685687144527050204001991661074240727170631940497768959922268530169076067393053929777375293426908126810106304811567298981885489642024982985684944634175751570426205824440037089363193365715956213674520613690725646045804617189865940488445472615386873070060738242207122713753202250165916693820060673734207447632462603536846768517923083160438296476339705193448338487744103077572400708791925877042857884428353293342927641759132644234935960633336532904105404219222370679994347716207996223428069661870703962803221856013334413179542200373684841516655268427001479227792092542561478230988460824497898962748789331579783636851161791550145372589492846626292719474075677253158380603867371801324649040878566818427248107136851367114865823118586168622824367643564988186635183218009279050356272695770518374718092248974550427648058944713848383106157373243117161536464220343954796638548084736112313134842190583793932489634906315874942474080012828173089235623026530225337410088373370131436616183846665078680959626295810453659145329106783520587511471278122919631945468021809667786942611279604304436257623875747528060235642245881172835762795874220171625156916853958185550970953071165321912148774114448532978622349788369158107324556747258887290385973034969270420264011896985317007625691261563408629306513640999239908666989632470309606159611669493548415374791357381592111554208479623242340945460558026773011486936882667741386463145992233897338016101641041625833044757663947940313207434716791146913439085426522937121981989892872915353180619735691089348574828489325561402766605923932046291295355616894292229017242904718031630628502562479448559788680981322510406455906779762870027505033317743023532281414518577935671705036710598577584673260578875326742933959138722694045085826706759541621798316584506681341105762647930255054059899936548145541653689615046463722414840826605957956684954255773935505297648276893308371989830100924110471981352425503905249667371687201940135450359748215276804652128214539270061980139274882914394742019457118797379480769958180003826341499221264184675530815667827046071305182257624890413758755943324353417546032036620607319609338916662867718584586306219792126584247241696489734155937152287820507354410951770286345422690537339664709135382167393385025033910636505778433310213577889523535490686408025396568507052551235283325429507257340058136469320136807977484571216421939588377204362298510378904069914877005591163421203475754459392117170163919467175895349535548411928427847737731615902532546851390877347155867596599771603924159533982411220584014948470312475786580755184759733190227580371994669626940353793229545673227669200658642914778650342787006830032910333672572564378589189571842777333923926339272057954160939062957961137980402685148312655346098699553106095721409579311812520107994228467717732762717320195117519512545994030246565129764660250244592650811028455620156351818240923486456957927647131751561993763132408944542030935628119355584865617803979749179495635013951793613347134412381815568587226511480046602346304454459776219119058969103754553173361633133090646525831990246241259215338748572127551889358542062484683082477432821464801594865847654974790716047987287750061262893720737889901386468941672489907673564219882374552324724209183052968118185303077144746558377952399250274339783752268314852737001458095375675162848230816904463228185941484131077435739793735228442460002928947052393499049208725550132242359264414536181169000062161521727213018336804401483300933890285418086670389743104068365106826601282451482150638805593624537025901791165011356807461627814891504790956809637990942838782306583019207127057518469361207211239677663970801540932575608066131289604962120299241561782830398957624996629921613481868759345719853670093964904540005815241073773523063891120468602707164844947952956710191186328298954919736564052660777942513370774818645226486350440044226288619328297935234238977506421712029788109442885180637762089564985047039806764604235360797162551183660023093467745753167957392672389266061940251849224984560784634845424996929036228391975462130776233166143387031314040083761736215748300680209142034961864204408244819780174831851418652989169896409849187690807488001199673071678935990662074941281575084437671782251055664578156714208646370188483162840162254179952855373347642423569814339935040299597804994435462212698037974611544490788148154540737615453764302169072368638793191764108638016506465858376976375429434269472733207224199898522911922025479968746657814018633172501683308799577876273482471540270020142865898174635917819495929320408502748137585962579306339087655748727657817840842745522514036108091415799341382226724695765535319018377317150308760016886507748769155908810149767492331793657664834012597822025027526069482722687819783359885484039719355114457164162676524794787047770621664539156532312743360158714004900578832462682282149360291270181777038553499760230723123075599218189450815793469357620507786240323982739664461747861049971152277956706424349870141940527221726284328682218407514647040032581498498510957003767126860741901772076461093091337967519082348897542475139384452458173925369391966416460605881642544099059297786444330610499362637143686563304012521278080883612287631704060561509582935017645649578356126302696939936053840736172956454113084941225278485150339257986299758729549595053502929925554343485495957711192181412517787479219365193311137556932977150767611714472515812332813533001357385975843130205350715699050846268745008125970379439109396671588921119328288917513208226183483326192055009315789379464466463895471390290363654113860582865127201335649727638430572563437460570730163446901036556490175884696465331271320243157676744909393775638465820267921153851563156594398593941635517301776401251771221793589512357248835121725127786525297203093768277416504023556285297836158921320433039220558100510712732665399724637059390847881424912949584092650921159433504335861453379385694874877018238448927276878911203045347417174408713122673618768130228277728861844610968715041644822618085942379498925228231631488553251642170709391693153063019121136803275482064166064203371596080580487222291611358001837285787961407494714457731346385594572017876093570114555061066834664131480414834924009618843524862447203345376382252432132690803803932919046232807446330938642019961810037797180683865424119343098718924980607763284693842136785352318920567267261554113029218292746249770439062697360715349848250071321336407411735924782016529557263426824249873516184720109391557017501867998036089690988005031902009415637571312041427258899871167039421403222053114977410681525607500154279690601736206547139340464713426356011263009071151858835032897537767570563300551924296302967046936380232864519518516784046890100405397855479485137409455358338638220140720700259887126180544481129869257456664594138498370319570565326729736675558369034370552777421841579868237079273430752996313184230667445560242969761619694846626806733003951207934601830166222539349203012326148662325562230479549192077475006376318061421250345237921923803224825814473232597640127719738917447827144538988097532565159747515626601734751174371497849081809223297830619394621663258638190232536097226283856456433959523109608114923058392546495794845424772327167573737351653805431823971716431624821017413543329451659506713705769572435097852297137593692394439263392889991563330592811327128429751426751157325155918858104949545564548503609675455594559247729293857488949607385356321016505205539473401887346854706362610126424638717103708404017610722257200110474041428363634761742275169738007547453169909434441388714885771268312351167315848609978874869170441472472164077891363113922195564740467156795962495522563085163488830308561962521764749228092136870561264068707021070498126834685867497721624075634890891866067922944748749132430727500653634430213343295036734657457658660202684982942425554217429503091963998437860054245450161059575266908826596492044012324572752850824092390946975285843756112492533389993630697580134847142096683454884358516614787416292680539492594705711646607814122826869252396842350240714660467513797303738012388500769095445341386740002546192342528981861446418460006468661755058466167570903841872199229755086488331738613504297710119032105994516482738446933062221778475400961993237071247840297128758124943601021319348221314815563432970460648684936979469676613065727982747383933859787156133514500444316307025720589548019365944864952060849716298659126334087363010639919492934864958793602585281621884321301981853703945683546200337526328811447433684146092329679072072865048039834214451126020640203566188089077978529423797740952402298251524013806678968319874313874875853298642314738232143442567580925420047691898842928025475830308025655298176833795943470914464753281923533237536732466336208921983760670002751246155228848078166597458783649780404568521991395710147039543055926311767500580839384124397198130100759333981798018850914649594710626650725938116208045868067540749896702850305422128640277412239523297131087520772049678083249456903166301365328235113802739695064234376011612598728948544675939145017443595396385884669479978087015523316552795500135334584238049529447377379353573305923486749990439982650511131193263282585323209641399710642646137667493901653415134994920751017801333194621076802307796933946314926110313850140763497698817503739327651531268824870651761611219098402946915416032116663921733842493695985175655077807398854244528178470833300288277823959078065653583555909083695606000134124394991021112800750900094286754725600027751308141613084986210647308617831682188639059278554358836282653503470295989910843915556808527834437176235195949039495984637019174543283594690246237545820765339449368918096548725529552563364237183758894001606827645112222701309657952574348901277559350978649208236927734611332483563265256677721645681280252306170682439363265927270111887754353618459477899885025158442815376643598761862758870772839711707020168286049659188314376895089208896682088622433488244703770125305137426850513685354153099015455811113575123346844660248434438927049207753888840736996264956174280578955007450275076915918025804704633510477393625562542464443113839794790600868164787164589663162504860978943161298919552469009354395931145422157948964169403234117514009315937240176789560856724516053981860101244744126494055989836166025376947188419936474021393776447561287891800416095282188664650949938062731008827377981809338618601494273056448257418445988095287877491843257303171274445363750504034012238367274406523919073006138602172318183030661056472736176006296392522447523951608464943958688216719063074348691359792971395952828726932171693089981916747279454244236135311407023207804725864478599713124111666332058460040120954965915601979614724390705164669038465158136504017819682078673117757176737812498813456073212260894909314656346760785050778023866102847139956189090078842975035038330377091161650660777884839971345456971471532546413928800948746502444180293636827162027559824353508454797013006869646412491028250312868673656499840505391270556848861861396767896358906543692892449020132316615011950615645634992327545085010794894580692446202303790753958904240948245029899393956388667413406087866030672184636884275417521857570481477818652015308207276088970859753602253522687129087244548745474808538835952787801685337994329949785151094950352335181920274901327669225619539456569393096447472917249289959832800964357738871670027079674256497812698989648511057581754972634103734028294257830616012380953860226476786341026418841997693848162905613617176385336827760605336725354575382940275702742444597719035070040877021393670492826160209348356967298683927682203211815688982902541583063603780076027559585638805691662379075390184717276464973317693885043599073452933553460722171817200293105661388260645392866506493522440566771261829119495646336007017823589717448310433392664300121240726232321109975462559916676828441691080645752660821747097692884475604165188146198476439380989816774538085208200138946303882358302225118365276072646901210128109993022114373627605981071362260545318456636024003086665404371952575458276162840826322567114532341548705272491274902335660136166116099131714837966539269486127043491611251483420051658998704786526526993893007506703367478376952127868215855762084765801631697226901818304536438979183428293418965137265116475444321322198088202875959171698542294308679816732728583337427765748392248734431009478540458514311345699673912760300554195513461287272522549143977961460636765312843595534334812122757597771239832459849988928640207826590573950326198129426404005285486480848495972452722537169028777457048184035482023139742156610108443362105979945929052100481766667886946795596192765618978920981422096442133802763354784997965233791144917076563785871897579215342028891880276567504488595873352122356548247208768494492223641693944429179590094282200343594477636556402912592954995296400394861651734818368798473897380200886452430506711098781746757644293523476369020725841337664948716195484871003311446139384678149421595128258734193390145903912973922260282978994601577556050897668203857097024038041451097867931493611016454703392491796458537272632525619009927446390048592978707893522909030569105537124368598215084398560181746277554559945695032379920341157250030146647690180213097240707269458056937997235598969230902592757562906946548845428814717985832444883846935862621079759889126284356760354389350094523164118424438531175641789589595964299447921333917998993845977063347972913187299688399962884325190600742804666588671859942713850776948718661953099088458106598362083281118451268213608075784354917917127835887695912644665770055244737876770946017176349943360263196667865357359851735402934805865533944031877212106675955691362551842578157871336509682929943374239379375298016360370639050311141702155874810445094825276918837920140299952752864183853110857414536926115114070614806686624666570337152945254592943631050299465593826618839035113602682165507076934536737202902975938018529560384826486532826981412954066783953948940521578610616306065003012129848647450247457458272270525353842635411792269075185199133824199762512808995694822567644794155593157235387162535418172817903231720655458240220920791668413136690645560528013924722415169926467289409068331633527992133611214435261290287538254001681667945495417625525835048425130203096754681987120000160680720773714435317656399572320204874294248495813422230685294785307196847726228659900804509261044723205674790321781617074038337856420011874986812385643833423401895761272533376050050026244181127235100506130455027508753234975224953079952484552048930154585966392770237213909468134713086877667965029446417243112443961368496828514836072670347832706992358415950140927561722826493747010564614602103676632862650644207959623278066104233619804935492034473383883755530347368210573802328110245952456407446863414024516509673307143713917512331307799122345280325483616031118749783206470266484430236023728380066620648141293347988536825657361286558878651786025712772444698502524374319022091744932907706335733357244337335720321617969237700562530042980727044847979349431875866132682837268372872445777942833173669386631546949434247740445427566339684522075253490664903245627564278408111320752253510546386101912062939564967452375857953482686748762716435970353291024250659901714014773964479018224782670954867138497116775170845794014379622657992273259585618087774676929297837731443415545125240413171472827935548532725578900388213550915360592742637029155248311018879079215778134739213640724140345146195788938306829624926270654357408354689679965291501082742412645351924363761423584118640023713536613130108121958792884841276483729227983101462331524716038059759190267558649538305636474983821579570537284143393928665033747833306827749093404513701939675258345209944853810632583382111622684122051428064630370941054609414950206050856972919058589887673459956276772352205511199757604216525159770921754067673846061498647430579972934297252490348866653656136671453890414749488250988501453933431352379355738356155573802686862573950732351832898933781610137903270886391032594417641618230864983922845052053586176360320136483721228599381999578545977604465358406077264769253573700219666323018591505852483730740143995767427871474095673865061765615146025734136995009896542485232195669627586451962352507794693311288194844064498872476579328145264050375367907589524811146261090691776281918376411504809585036935891929622117320055036782103454826465006279836285097429024787666972446632253038833822584441988209780366976773968969908267545821375720541413622502808542861205615558072693277688860256483400767343589320500345283174096557486788618120716200899089401749947474033586940051879530544102963803128834192451977004272161641747499880829535758189990520719924341056711410419900378065020209127846213337702294747686782905934787483386354406930334775710369054513570970458105831227830846003558458774010680224696753260708057213251722802123197018911960089115235474593276301292089906419086269652314861384914687680021943540057830035982065522553226867341379795662667234406086364687599067397276114450806213999735453771820174780625052271225056891914450934594907545172710812033004182044238817872690207991723890199494741844030395489196843645759297547515775984071067078236815154543825451851859273387408141225090416679962945137402379044793227328019354881885114209284974644172358529733716145401885520717180044726342735056379230227614449001448209259604417682715021364449100292701110663147216409413577742221264691785986367646698863363666216971551876572390080826504893674268957073871795716124004131355080397659729415561991345272531225465563453299894299488283919532163236600135489611598543054541745297619113322715963780503865808037595975763240336111267330901247712346767775874435184090766743762783027100912262710780527893631630592272462600455354405091281928448926752238793439840769769689407543462950052170304686185979562027827047367766695178781470917495552778156521190864448997437040242151232182668203643478303223066815531721594915467565427293738502092297749939589501891513595208854397077162158959718512390113689865300614367652371857573186161889768045679443164373328431944727300440488802442764194606104940776170686252907906820869136434080824608143639783659333786412883971916126131677391574221477148663980420613882998189326463782411900550640630464542618641117089489418466049555944132100170125757191603251490689581695525840964542172328084862083176188331266597912400790391189679586057336205397160873770632125431278290132791579917126601470735676550230828600327611072594327306466764159263625585914165357787009172525078733236973918306362605901961662094591600090800897238592873732552191358253682114417571593268389557076054621304545991157298175325566649097925036890792239291901529544738583504761759602398597909925057951820296029817484034683172525629610112297389469932756217373622156011316778962007425997194987428366283404015476879071159705958019357249333793209073224274426189995476952607254660968969338658805787638716121051104954180021858770487657990898342984086123407333392960455636269327099816370876092098967596626516920653797690555379552614119171837110969363726706244024109526938207848668744087484453912068441452152316523012301336039446968784938764962478489218742827953591372797679945006196109332366764336300966620872201718987456386116627750063805756690052031848305964813183361151766429482997734871803923184176810939412915062016782016312146934440004374591669049380399779657673049440350784452472636024998695933058128539223636086792855226545393106532119739944702383500167447279262113980991468154338787580192398611654585754862993943799484555741288616788221121689277653916858596141415439613777918671850066344048522865549923182592046405438812409652488534262585416697195307565097902113879181873646009722569881813644180326571441456800730124188624056715296094999449444223467429706338030609937428344560759814735050527112840855321728092153022636107643919417227191305410981512711692741920404075204778210058229321080631608043900209701096357138611909132589042241151150684376770865677444101742635836164341335412937568451828112593385429437085343867333155542140721882581722210069086278336756180304236214756192285411341845885725781997258813334808629766259412747514286217876283025585167766422839020276601203772188254476115511363176082248686478676515707118731168486174907873414554028122597863450524848704807420678830903326606945649218029397677355463830942690839574834212495486347601143216073438689891844038654495233702331677661964346996883357238104435119118703017477557339758879096324507534675138408812765122462352819486360749106443693808172862408075437055045329767091369828259077067139727004254312137458698912134535185041584956499806381297055183873636253433644374379007672376497977651873279865828878987615316258548415895742746961397188293932594447248737064277828316947769919973756064210676688678694855265755624561698397484634674317963003000738084186019592962948096266102169293419817059962386286094460269022668069142905653878339256939829418579083845306079958791942467692404783857611993705773454857623572165741056210630697534770564788477119637308934371674387445445891860123939393330153922462127223075196409825055435733893585317700045888677493834518514841400544872957341460009531449983191726226219833937475021521732060349559535862131096871994614189428476880003562384710524447953418442531330994828983572125139254574235434692831286763358132041304427208363626537691032233687866306486883301170642709794304092485295046179852208943203263255981567362288306636615894168872665836627488120052104787341247535933044557027955658119664239125840539586178971113379279029241093761637314212988279693534833712890363640949943832832989198967552932705094136254959892812385715405612565382064712719106687704436835597218843756449219427725491876099947823738816562000611314030466165003488186194581220552083296475646811399970977434441059550446566481503972660069379785132684589580847446004031056229884405455163019211241588368719273903470807272561796327608858390766364903864921536602164862214377881804252131284052069301432547877664270625277143190208239154060123234701725939864586354382036878395089200387547763037986151686278126346723964226047921414500218501331143939067906727737345853490641774139744790727467431489366909672281692298951350049406556624628141621290620225394466757088610109071754845173810160697446622148553609809456137270380656503170415906227681385532088093560637133162345736687936024025143092530995372560126970364788521594611058594876220001366865319644626365493023885185323445833958101799639782343798843444256069851102498358658446610088133825140820089844261847429149987302216736210955627778526026148248376040483109210036209713569034638084760115913197915395014474590858806373293013844188575374791051880185648459353013800758441331128718862749812647257071162502357553794081495809207145701172811415579190503979875243660540610854485791737507420521250462250274380701584488961718158212997622554280219173833104552614472042456514685347206567301942378514117076685576117682222317940603794313509878967759907490008040544965882115207694130340181489898899837254524639866921629455200426195366370527918765056623027171164720411575879726331741675749658174921566786946354076909764747132077822579721301441611531640902584527914493920586479914407826023717181729835655066372834851379144443785876799342413561284715580319589138074234776783920732426264189899209741050400744174180935639888033687334055806670915812013733306891886615519505139409208022383656214060560369238618805202213759212520173258327114310094386211015897146183411628647658771024516073986319057564552608410024993255177111615262268468561936666351775186219073724766529242660670606021607646394786880459617186122994451278830850685159099346174671344351271342144472725230590576458530018713423434151709114708538339959020661701445265674559561440283439610223240043787237892013813778566891639121944602839716805010000574008746349459293762474798349447308072111626529897942539488861787763178098381295948256770504267391879848273291832302609094664501183114843305611013952420650804165963624379324861569225739874704434835291338388245758006010606352832683098380148906820718213837241373672826686619372703853791527903803745512734282150159283153616590510762008865337313418012596755395868653117785408927770846635569521579365659700447874539776268535464881337819295036460351275515001339062292195846843897018607602817814817389633912944519525945177461549172768754724470660067789278125933264632028819527400888984251880448995012983303376929277424096478292588376819240911917711427979167675470574631606422195341313133962221669219256737415900235236219094737143206912856366633005749202827813643183676912954098112420446222877505379901554792424402467415053186983515509705327017509780206097253149347133978751136753109846617250675562451587879014201524672098095629226607447357664792300030844089536302874718227954148097315045651594130255739274555055389570050349590845247415843619590667235469222633035121591265612351089591975514780538088550903841714224140749833634508506348463283227292554807137524282421428484108970060713979157103809715956098144706879232038054068060956840614882582060239309504060447065083445252905289944363634396554503104222519478571850949957104688632920815378372115397962307466069142493211961714181282556661434144431714904137353934739912156483150813710260854488021570283129643748156775298847315109704843953392831333141059842215651164844567296342239222780929799919198722728045872691881414015877157195239171648288521116813690274571610290498297977475897652542938178892932052417916887243233831529889055965198531477959398997758950592882486727404397964127800006471751671788570341111409392252536682774616734740323420682788951388912589993436605728842654796043191753240207664805735160342353559980910640381525252111591374448127407158846380484276497182380724580671676623860557737123974845842627193418098801650557607023619475312140065767261207884006979803207895050461164115351449500510313273210836490645404652637250127680930793134294160417288053604101979144684070585804275450783849887255684228412130615721919543511480978096312958040908390109155738578654984433472603576423281028953813141282405579709821699894074352300080814949436888457164124387527805915000594846569651934931800297558192132991205093866080209405757848463504917170046990239531286578855282920429941118284600937584854782257166052510108566105040518347869386991220792637382003707579074505866030325761040123144189545641530620936311514643256006166490929121053625554550207608688613409613267186126847129214039202828949784312819319142311064428804772735783112481622968572981220786592157546691153428628654913221215479839583882501763446552160064044293514418201505945000445391881093809858719622036348120024771332872778847611736301191908325541883637119540173596394713026880845578298960912654749023646895641299915843095942041969008178971446694458971237399154410770642573769280818705189165686151216263511865393437107841568970102481964158415095634757847801353465962098355395915380889684136479882896401883770288029007637179882763926630754790403195016412414622051443847267738341416102375517419881426772948266075172757591429878978510654452058272605081972236958645447174153330656116633579147886583005925017503975400157328815386473944295986552860949123965775173679089489447083364159891138733639892775510149844275798095067371824243870042003848271253264628247279624954979656094211206201117911081526341219610729706051849208595130461573916377958818097002122503051615637399545761363702477483980890892907679040787433645732148452115899398211959410834254579511168626780721817473331828330454829349279777409317718370997935700089910718923244050868785613310059723539946666370494586045965828095583110977595559455907618478796902834312405884317000631195030564436378139193836355906119913460796260985440089144940093025264726467306593718142238658422512412083162985345634986483350556896304287331015854020942214646320355806566626324616532383782555779803262362002375629935139737661700309279182255836188619024198894536913562216821500283194677190589116336533023995465918655948509478990887304545112822639741584630651370880109610765311697943091590778594728258785708485681905603338742090855741699396938573282521379907649226178435078186806713925419012606444642424065463885189038218699923592425556937874704378713901499421194292593971999231254443717545419563156199134430071502837245863369599260330383821803712292910353728005817636036471173831628153220763500976563774596847621271567560543338519930819673569063580389885102062477330235929891315681745844150235544826410604173689724912059515203823996487520470638217570275399418723794903709326698696891838624992284938217850001434565504976460805091662939452498651364227775555234982330033422499608385361698178315641054940050331775174030467934677656696562808868340198922646349689018603055385821756896502510506850314604685264175063104969760256589398558598098028352396614768104102338057804710961086686892498839046107735634443224962108947622752702663141664945708351874077166217368303349007317272328465402081085223827096380181071926238690582066667411741820097025708475684587586081464665658804259176469670331899998587507315134109740349527198167737963084063856105662744462729375489886457654564832493002419252918958799407010227308063817047864675457195489220245398272744822061030331874705417233932843315858784655606770663114948918771429680716611280186396262949659346039479695015360735281536502715866139162260500668048099292587845625809322032963209671742775707524338447979363009116257331837907908535615208853762987879886937574165072041814525256511010486807500316595416501579929823165498287053023751936432689269649002514534235844641823803358697982465314826442527056985670277114766778584645287659019264072494472719587624070449178821647990054697778218148388111627216670274466422213886971910090423110058235809702747756648371292421240675850139949449493094776032993180055859835603115274228324772397985159498495238463555506173933230151510182249523573688169515467106931824844583676110067308819525061643037640159961546510443048797584590857422883678055809436056951191763022472457465832810714451170966391803383131792461859298439379196084137127984483593850873017106276146574800313395544868725478037953287730496379090883883881491106896999459393584206120204026834148624463234217993625477486310788430281865688992592162156902548444053874557828508256832289350271178286216700267254878501714273836849884264632822959013885399938001264356533377098438051021566998923290719502817397363746457373893588293813572553810568725333016781134825270966536135208452511593013639454880114838596703734646034124111749065760260331869390658491672775067507784027834539249400558905433019790891969586639960521348939686616511292559604593056403582081635481705934813872033001034005388496754059479199892998153889445849743853869544263330559449192654629789118734278821610261839250645419841382632303746888826500612874691806575680815842419596913367240398123772618369453763458282780304345411963315238467142604140798824557435933803953446602451157062594201696362569439610831822224953826158733551767287881074612139106352224570950421746658001760827974435238311498553982138914091564394911887657785177907644006232007877019549962102359981617067773648142110335148535293093107970436442711274335847397856314372177589787545199051771941860616370242301982963869598015646986591521520122559462040312131375036842062792755290920136818755426459393418494836918991718263462373550268805463666855621831281660986808992388717542862066438247026220600317939922354885553853001954548176589674041823768059147730051663689687461751128882418831236683232636265357121649642637080713179782895319542998307330219086385006776807995067221131531892953825706794255421796873141956800718431699790137581268666723283252932492598057091848759667854816016851195472176514086280931883676664273831914312067601733614268382084739104461502776442189612365234425628807992665250457226237488934270628444109704625651598448080438536401495133513462676997956158041016000445319231094172708338936685111237453994380191593760506102726889551076419550589937930939774999342787993580718733006200026525445538176503053847224206273246861176518330188532191548569626193686783650848308366904570671136183097438121034618407059109982231022779366020303443435283904232715963327779644733432104071670043113012791154285093259835867836241121547925053742163516399459234668246881613050930534987831001094652233840159415470411461664621964550135224915785065481979923662668009149390963038180541968538100458817762423826549635190533800365125166309452071535325401479582230909443544253330914712959286898653705045543310971354600466580393794419876706691365134742854758840088272500879036768845228371119145903900391556333880740899320612950284712330238918725507015846422225546036376069908591785980617323977680932596264964404602477296067704182585931535897407222239927650592209259797616119656738000767797049894450867780622910625631420676991244461677573071777711334962123734472244735126561464188730865379531407649280019786940661955744742893063362833454103061793585623527137589468217092729753056168768822555588096743989398503951508935351473276844277153307179726813347534737161113062632062644844525179366241286008898838142061759525033759713944710680513217827276697345788083600252977822762015839302479178602523827043971513242271977995460778440796747287581718089348492934743979508054484662741255477756939446007173621687859640566486737751803866109040563148619944580108977386158677306544863053720428311828759996295600741834860111266820663078969634163022473904674076770689562681729747904704893613691693923805862029386568163678271664141525947074083681461175127719248958598866909781852693390544841079172869559707726479829533660078615225618542036349316624455384824022229832770426120662184793115173872617799639362167174382683707101555842272706705285247685342577855207833644378406838133844794705695644815209911557810418562284056845466914438418965665376820215099609975590679445814748490734094808757361556446505300928153280420641840042305879221204157844374779812541875274734829254339391460875249383989482365213627245666178700701632480774821522248556000101880268762631287760841799064467128889969607927863006685863052825616684425709167827966225752881755705796790511700970522928408783966888570773799764107676385512776419180485424463515804552496685891839743406256702973282063289639167244354725923913207136489591172143674422893835270482908607010540590105205331821145596223889116693025323293342605610904997830110421774813505500696193043636927267198810066063640048572628316986894974121996287019437375208753089230385537546889656020105878542818716981311299812971107460131515818201309707979418901598165655644762580807131260205904532765145205447296763945586737335900036841536791550799628288036274262923846896698995193144812297336924038469722455270026896097924717588189645699396247845983906009911178585595526261948239729660607837986207530300940671145473453825082500853948426237122723054715986432823459441213926374661826125241096073326124382847816020461388286340806078066124741418773721973214063395725175797691026584005727799406137237859319341478938565286874313281970881323556384748659010147808715530153890289673380621062198728603923229347321933147582781850252322354500771425969772252559020001054788672870619409961046919369196213741639474433544108352354899067204260170644795302276619265785097636500932466281019894559145011666447492317266044727605731154465970089447372080531586866497554786709352969563348670663869166526485301948243431618048595338872123188044036521646379531664638756118395255729173795692728631989838531109037441460823543207332131320312608139324820024948626736544933602269114633685188955914052229089868451820149950747931238549954083598002075732285956530416439820967164803670227077110844107771564555411132631510754597825921300306670218664302736279933515756428149472697792189708691141297434962690388155414176819304393857931776699755326464574060483149507224821133688803374366079298661202456652938444260440296357033887648970233826341283581935895776283307180825630611498692001364675004408337011599908980148644391597138274792936761017613321395179284237307768219647168177947210633216791358655107939284644368262218344707619508013281893289324305248087933518391744790408324876901943233646236735339034244095018953112906273833717864034792008687634655397289683149538047630222804306576654481923106325925236958219983669242981346198720483340516734130071906303342193909423491268022852944047452518232606492897511444416014143266537289836879603426028438002118663769212944427633587580266849476789049104969052082433106620645931362143913900427189751043886295144665352808283813490763484595937103395041510551036845863064508737892481484244904352128877097194351416539442102604128010929668177296298841958923350601964892915933135913762069840232414818292459239160257099965578463936708014318898655108684668150729670620665189637503564783777310499303039697069098856870992421349395171423486745058625433650556107156624665634392243228512372311219714603501676191429661019364942611521615474467192022718739178362916769480682030297691422573543688153347506655819751448700335791573048168341657875952065186755701159519623666124933479220897409265796945134089130841039495474398781966584973058155498795406754794249989761284934842555189115202942443782638340925563623576935398291049829693133373295244827883193052889499589512602019526371485893588753748753946468946666700571712078600480422362908040869338823317761120331774997329490748177603261252678630751099717884015821091803826019114190757125519326181255435930487877876186203467662622996458943891492983891722482679419045021158998272002801688536902751460642559823649610664865015814591615667783116857802525016802256012133670627703913545030335440435962886639970913542425228355897741218609106273730024123856412822524081896596498740041295633494567743514815922068628570350500487946907684952005696061526138964893573764688689243707252542894562026113957148933456075471301168225496947536906160231280204849536418064421048542410736317024116416687478743190125868600733199146334491336167511012662141174167524014812684317120835801164719030374779749413292347059311290307646516809703167579783149709262952863017615066028637322649070740969700311134691092805238032929050964589257597184262277539494699017201903282919642659493601428735020653980962478335457670640469058178186236995021427641134207442986245797274014828422248453540029931537794723409977231869604608017942765807935666108331923191481810060541767417295962602005961318510186565647762935955243812194214157012741033281628042988372883435212574188044159451728174388170955476660716155481717316134820394753372865249885159906149842756892332335806034968856372368813639994957792315472521973646973090957060399385010534874347542233493051381191508487236144359319441879191636052896021852124674523262955299881380636031354167164630851746184420317312080680229510079496018524911622506476416898953843308108456671265018415606993957647189334050029577066550146022823190563733043806772784116323728019971346269646085510661215143294414647218561994767238654142902810285500853423065455344502638121135915332925444370329782777443432206238376193817782997532705717810065383984570935713017632591247263229570825815452821358016585832421125943176611388945407838306066461034078816037999609145966304862605769780257436627374937693122916735101225370796635588757398637090812848425049549152692627023299630499520668601601787771623774012200556651861548507318971428408972730175751948102288057236970365589493804132288146889959159991639578395518802559864586037028466219897662172567311544781946260009237450236510693101852119002234073910167116338691594394539792212443092247407921829772836239592433224715920222270105961502309489085210950691283779758020474041767350483832117247054822137480748380454949054973974453196011605686312343895162619851958392556408212127866952858387764769187209010412630001982598680034339661895584503315737120806184000195599359785033613789624250717134429410784185913223969092628863008716116785691048120496670538910235436594474306178149456255170838469000038320512114852791500864393811974289288254441378258156729679463488842281548725517331009913087337404100726902399168710574299404181462568458286147074934176031863759598822398439430452868945392212238790958086942041087689452979410921055493769700037758677733038028843724103123684633396823111920546430130239551430015301519793761538036371215313466837547974668680271697110397661679701099599567220873229934532344787636859751053556976701213614604393604767380187807519326071716111722507969461334091566130941866431078997480908483733789142870828460620983873455200972687921919684515085786685439177655212810259555696709981607779803891729248087296503728300704071656253431342838834423867897751523010463119948502911047520751982910280592095669393781292835942059835553148493163697133210203833035073650355618882025688848242065922806635297129768831671165673635285903880902428444544409024167615152664293183186300855516124770597052605184625102052768273749168448295306609256346604426757327390337515733705674205142678971620753627148566610538527123203579390670720269132577320038614582919337551737994551936416530817499236238724180256680341481744509189725263568900686773641202578836094135515951056930620364250075650679803193124741115513504793591414360942759385899640144879474185142555049507475368327473635438521176809280715525717520917522701114731157161784185122125016378074639527913041115549343990334761303547214307276051012440587770863986767475114985588681666141779701456931212474509214819549753801419583410549835645931922302046111366773898116814675948889220620436393285151514284582548964385584057209167687156739594005143946967237475231831736310250007597332601200254735028137626173844538812075505378570337169859836183312324660725558477269199420894684961898757960834936206294509064432404499897710045987531683855826866930352260830955323262585074057978623687509317117596972064501118979917489796979127666924350480180660050494496017188626943865831539889964408293726159579843015415121360804940935364313788262442337827769895019441326217783573233754401839849798192086912764291584901804760543918905293423587043849802459914159307364535865409615738054319330823074434216413699577121361129622782595995711639187239845346421344775541563948739774728165338809522379587618573733952589957583332938720174006755752252507581085308827616796315758862801011272677204264009008643838445609342318613340994212111235500164431813573024266032625049253438557548377445399201261954322688745321956417774006479269543645568192173960672959433227197903667752914849967518472990857664894495297006704356421321268936221894564217296440035347296336359308008545772268307053762981762884823473882131668874929916237732950733040720055458299799889940347563174346072693872443918775437988104624905363611235797636624860082717044240901083921482153626460707118390545615835218120126513618339762000410675041991991696163637433574816504636585702468067580847919906047313389477558165094765006228365052810430390227296841743417795407792107595833768610893431606238460495267141082249101220648537264966899338040145150557205057568613576371551782081893924246469592824529592410314307051786131150511715424008896432986423923741924072991321653086072867724727169037124084279315783717012063077726225402198330342648655165590308323973960872827477278826347153912643064358009799826129890011615074696958426969211761577672042900211070391960979501656037825652098359889455427114765593151111460051027473284344235496185047671317003930990729945804399642280253989398504491481198253293394551985735562485790341559800343269784282219796550965364417308427654071913639008778610344713407655154824974952446354481331944915432615974687985541179797885757888272570223164610530036939056400354187851226808599670064134718883272431067621869045610576632819134650050376990155311552907114902441868042721871575147092152282688186263246769605935789859872748663411307086070467087721558325445192612930501956179770479853459240620861518363701266834872477858755772917480556039882342690405781069265552655860663135281923285961083347328102970930147639712929718445239555203824593531995857471764658092138999552305754466419701436607940661957267247455654828665172919975434498615481280262628695489051900365881540983934504897910358210428311513254189665315467927763212047701070055409038861284040781070714477648342510118646910208648329750876390626680468584490690366469618678002534021197463566484657716504899097886389059098586220982393637075500904996987527288486580858359269913201314981441897879681889168375199847855196227828953319353642009954770412795611787669504700657385244884791528985312913862666976023688513565425281472274199843917765261784800904391908605531822533344375914513747095212655780085707738144999595999758388529924611293874885664510662327594925715425969851147859319135155836293150870359969261957153710440955854160412634434394101832858402822351354950973395113979052600075734822303961864177782340559289210093594938884193781380517075316872594430453203842067594030113568010152531432118035943269889891051208167865292465845997699910079577772562871516849584655298459620531194946123901099321226227098841523000290161412043937445649180164658818455551925183192095977803854844359214416745142259631835777179122117230902454405959149827746562872131175976875707191767492119357074621035580410292873515351371764692901258391588199572625440813426942846834513797504911037194081665398171646088997092538804486033715874121999732960635051230160634229421744380255726433353888256959948733134963200805344729564300938298612804293108703609944843167502844984490402360087978190568044174047643738361211863221766266495301171845734010638742922704366604887720498848351452065701287986829683603212133404168334187386522982335386443388354592137836075956714771077586215968843867441482948104988083269752159216315116848163370856986510728892404333184734983236583798067317682263868871166695824527052455407896493966639908046560722774060505987726207743219880870927178810157575163621067811023448304087921453976976665989259752767758809069391986241909388543560435393714009792958712867366893564782321973868868386102655023142382661849335012526328317499855059281284591720135625275914598386416763976096667117227605665665127313093080998021259741105138943138974371308612867655304287097783030275661261117183112419059348934029246450344041580851677649490218609771249554133935838545999177789319430054764484803004318410810306962209521073845679683190798317237186755983260126069747250701647572650064596302637687483478089190458982887929784327609631559627157732100532627102321253022499276696968525980719331121424277158466391614715061002025648752278720458727425067682190774155554031960570506217108113042406281719800170567735451063272030885641389604628779503428691176715672253109435456822393599620901147041199204550429230290447224742954544421827482027964083033877211439220140862555416443008381834311903564601441546774786489133240896033004157125139409268062621470134182286460270033564106200258297807004604884413235215957722603701041217383925799522261010178157572255637967623965370604434127769819569305825998803929025110052180646582373755445361614948770648197471185297739777031429502120130928920825952417128950090008427972313166568834806343394551068512461561507836498163588315065159781384991006325924486788894630382558298230131004568175044118109194282499870889153415760101425876186880555419131237768463354032374966283808479511637041224676596920036109977308908070311671981982244391742548265037810265823905675303139312099045781106992758652999401083964602485157933382932689243656594914058278622186892793254534301080932255999788510756188567058414829990331250264151421955509157434411573361801006216990273005828731241871358366636649883999536566944199407161030623398396997763335316031939901661956273138875456092655407809189126611701304950734555216410474284742637132233307871649520536791893840966638095776408209916688011206626317793396301760362862713982977154878800218864755550023695473925364368894521147573217641168008067980073499617583504540692958196824008517120463968067559504344677676157173786063122725522574437137026609022713967653647085819385632744273901195264489691857423732299524420322471847787208358282432316328391838277408597182937329416844892662122711097546758955634576573496603680720558728498955800901070100002148060736024425807153111671844371427595008742911652887910058268963959539314329580213432829310212469111032114330976036721147469634302243885086820126278569025308080332099802165348545942526770682356012134858220929946326750892215555643482393119947752269495545154468586556664678590128478450697139090999760175832585779456540051567285728917416453462929364896546586835421079485427095831333012457612680756622770289997236033314089123937534268473812428357884051160120155649488559859721251219183978874728448992532315711251844186038019708180274231579851614769480819799123372741337888612258932254660791203847400051720453499311651943637918045868719765266241408559773298017284324909200718979943924621281258760856950969244498718929435850045788809151078239773189401414803934689849242383344643550981989595337948855986911282504998962186074722717711811279547557935001562249764980737881096706064665519109643623779298403285536529522835831459355343432917696489477993976151817496563164589793308749958938647676543565140368617498269924436864058675154637129243942251353173084538977884592808188690716623790444074263855275875628862625242519990576888446948582540658200755102970855510169211440127731509250518870122770132963096254873153140033182581599936262300788056957212735729400409182245472811188751236217503570987165930086342139206824279773957958082778137297197253963576478024235631767615809563058350776913278138120650902284010043072900342614685664961319560912471116547684613208632638734890708182989542471810164310537809557069188495046874655151056823336737700948349459398629360972357587466740486686136858770567628817195501253991525495166273090271142043395546275331728400964198578819461130099740266763273214419620381962134885429840800615281329424908872195853089760627313976746242514313808029649551838450886287436837503224721109815783116571830878326562991837736308112661749698340826750391828289936898049813416488293455423155397469769801571396384393429657165916510895043418362870871123872547385726564112545003155430294815447183584103786385218687287127044222655978304161869804684909291576639567822237655422102363510509280896517208525551272606847926169518558594670253616100547806806630836777106340371491852088958711930710369716756832678611651438833599984395705262872725599111662876614262804484885238899692559581177313813808698554698266120841896293684752939526462661307492557894043145944895456688265829937483769816202745194020697422054772194775195714172670938712431509911339752325239088193170321417922782173667108767575995959344210471595618840838759986829221790602108707165614919527887532651679593670073466742964650719708155644144661900462999125000242216219053062146908987873174874736685444699873508937020686404641942758286261213888557361741791927905033687184925785202167118187460793075288668181892594411518052417324747657983411810488258371531178497646459405220839996871372973436539388112346343746756008353094903729381783702051345835074805165597987131308855198749545010202610813494186819143528492530455279248731285541013960982216255156646737128108048045338305651026735073137056092479868785062696188472059465398299747071893269448917433546730317783024661000069654932367699841757238946305144823287495587546219272200044519324293048997969416441575765486339581081115111330022465156608160328158989238497893942655144400313286332889845637337245278136651873153616417751329386328449655453688304333392988551481642991905483699088355791543023713442824953908134015495770727082902789029936977478980160405861860623486769375575622306530611237669916606762581462476690455332449440519334886239076666294141842145309119194083074955248890853601822357264435429780576496809749720496943523954781842641427641321869139167284759043823195741316059719911743091449694654039011662204021700233300139768476574581392849461819187551361400159867505621447766442190343319898325163302018207047850248353767174332106771416037334404019956193099342588370014440830435046279943259001379242066200384709220967328201118360134143579420327574147259817870397719829092484239309658215853317477621402003852218848795429700210609351633296020095541793934174927111529328984700819849651629601334054064924500571773142919488661316407265269536969549268527197980542597081713207644895111940189671626523292490780233438415936651677841406071595116053443574347934932486304960937586632286481327616354583037497482247976577115631046559749819198702736727210381148240111050212191718906060581552977109919607926857055124175340509488686839892712454349777541971385968651179334110894148751357713043340967643071125012801315270742356622821337610482460096536811088945578699925873280146867605190673621112714083653453508841744425678570509948261273638862226391852415208743046530503703117327606479376064568152438438707349444245170127805788834281379343247352016434616709053160835597893636747757072238060718445001589239689128362873444012704398314462847667607563713421885300168472626559637473635589976603492767406586549820157027070122756727532861382685995000821646424007573325755276526841828010089828845290634785446268128931209765255709261008565864860193224675459803398086982871123830828939685599628145946464914439919978648004483035157606123990147487928743839588654773067035716344467596068058317428598815671115018979152107150426348735041085699387385262037532954035233460096483392915014800877835854728667388784643166468376434667252684162924060385544066725788373415563588200616117534454040756458367032004548342281767014356617776105683129068555231403826704441085815721243624958676310121404796143950264151592471407105993183578225253362996469161320771176386750489286509209748442454693745700090397091406949653693820131255385199083742250485126665888954321843344419493896754172195894684275283444472624787413330030260283228466992135933274458503118179280324052147217321780901097085031852335208263950178869912729892051687695194789490658314619613038350248089291452094271956451144457416283547065983658431549713580517240275340778721909307159180250790481492946938193314008300687355869797034191797169613003985883961101501896743601309380262354993928619196613697263110269726455673955322942589351893672054431591605926121098067129712143364840528172817181656337548416988482520193788922324029505932857715570076282140408266176845280649726918071782807627047432673671909650880775576699617020854795427496194615861037381761948721756363349579108118867295817474526406798531937202429259987146264179973423227548731716989921943232962125716896045705883563047557798560062378485478595463993042961324955025536745863912865153439424024634860512020376166135304907976153871026134376019044454785242478539018090514726828392398447522172164925859053341664035808113292175815553039439586419135761923675940381881411770539248899345468139696765510500029004672423605270394768466450431122401172737670032973548963136047013749263249012924661100494859503675888731122782045051007559310100276332574234522085361948662960374216392367887198523384088623689877458107435869141506360266380096068090512965525435707264897231540770167880032242169603039120103133035865594003493186322893364242082301817682088428205962620923698958093348753124095703511740416346674766276974655820155776439369944371248028791722585389595134720752944196269451949587714431375344343837237508459590403370381223037627867130780739863097712406177991874968666016633127154564474694894622942840371341037593806931347118474144668205626695211639804420810707770358889679080305337244386305824625414767828251777028815947816823727381847858047728063998300694002978551314257086640012660898932839880982995256724031644350626367698299042809548133158244082156375529380299708101043890134933603784508241702829580268430054056921015136675911545119961773575444720173430491349713328407014520194691799877780427453928054315121681013419506362344024175677510171936454343929005664220350831828260550915103776649179153101385773697984720709223363752288595363912808300992090970181781313841963897040965370658751001585246293974314149633517311249302050496961456302573808681665446458855675405092940435083153573896739314809849183571758983948144964563887460802449204607442876092491454541918235368645513874525344418146399112199562003443220212478148723304845596773101679795519590143851421773860291153420293253805614979024348056788246994255582783644999910426893727336047997042406113527339213510838451707546380321926662990565445947542763696878716372899141092515174517387234208810055681273790329354797052403104235528485394608585415761190393748933646055649094905284590388101492890357283956744822835075260695996381572715086699141103024166451353589888243600117572321762498572241683114951296565632908509903471949961841856321101690320625514971188151561482979251353599423094543376542647539403883052280530105561815794979079698079385280176184301076970687446640396331380806007360599069355299731598555058468368472359241080965437545541488962464576010138115467040677963681966851880556801839029662234428982931389282316490575798832504637611563307678993741859128144937123897946391267199990786337923312225307129168157977507436428652157985629755273695237989719745842214412193407156276983594665780461151910585483830274289424152693818715025602031713119116796954047592141303379549727486211433025910893408880298607050459494118593991709479850001131115104261961908068294872711470406388624677675110308593619797577580644584570494547452314715399273500455712073911216837115226957480281067154720843883902247926593335909481218938461749949664410920805365232625809949767725439478747144949793924726777768932456368658842252544818433674725794585496466534123958639692132277371378035963663064661326296360585692224939718004958758685991614924003977780680174141231113719326512789141293986906148065102511857721886457835703276246019467835697815579879451490105759321020968187654321068653111362928118837085700796225419558074417371741782271399108734874331760535673002031921067166233119666995329720350873472725477062158819366825196025450810858354277657870816960604853156888030976253571366882961333995363616156408951491828840824048278196130406068200785767030595660793272077552685786723825176382871058081647181382285094200515651709692112126587036311066102787214921173613535477108292157344435095271050780254593855159985770115009118004377462234703820801786493698968940359247838603838958915899409544236420586016293097466710090333178204316337570563337134106855305478781254609345367281199011750290942025042438598771386107549235451511878374988901287967325507191526934885493657236339763927742048774704908025889850478892289383666246344002740554035414689101415359698282998668179839013458325925596306684810317301441412761078861774532024731213647406049938859709942856038751753711434474226483341556565754510812851621785000501462604554179340632741871008233456003657563372705234450415977496492787577286213589859274211546371074484996334096819022366914973296264630404075732328606917577741438506974911618905574860828284273109537901841643600452415437994073153729295265488265445032986178339689433696283127563305766157913987309283293017023828309146829512006929749752436430061194167691660329487841897937398101152020537508906418482980000379232470611039418439967509580032533687808641589425750102622211549431410025158664562623098346878080454380433016276920743332170925818748165452390937848490097771968231690560219078663300770167192221027738574147315365470948654691627850116719520809812382256832172263404371185805047199753508322926674860208038434918230913886621515668206005965133305057222146027005198137918334523099808899602289476282749829279518625372142283848949054674361028713012749174533519051344122593162238110868818180350195674425567111374862203042996395812148877101053848793438533708365843363199728894890155862746354884660707486619362206308414310356155254267390559853042958865103458372885125710923281355549835282295165395222621172846556814285144622594571413051245305202569277631490103460188987381287272347357780168467541165458400057547906300507390527307548065628868373332174321830428320025265400186961363914063544995564470451580128439446099896874161633869707007823525750068272508168693228202658067444953779325203435344199401035146892536845926447094022614681362311774033646436958871802897037267958686551407537573349248529967084092031826112394169347994457880171308794073454811874946469233958792030158775091767001628572177955699422573229240583701273690945462993124104350895985471960850775311867929785357792567434208229531698097982329756467870423174062130032529455642903173226280208008110311975125167843438833493382586906002669867886309712920430261252068722855264699696067686254205075670464228004468393067514906018468220681019189720924578999963618893013095730468571804711400213283945811163308901077139069905985818207835714816652255504049771343874277595993300014224717724401793636499296520920567132157748682734909137314256621500220922808740913644057958051034156828361798756126217485828279770436040200053589548138329531333386351186134543421882627556368187191239909960254366625340563816227014914646700033288227815159165343468408766466300660128766893662483272949359320896143902185156447225787937055448810315461840520911710197685972064485470375310156344285336044666438333263450811049094134365027165365168955934872009962073025395800800313743640871353533815734510605735167716519274297138999541444889843313932040713057311145227336811141165252562259829662260131430972327754682738396979021027838331496921946048790810449790387038037759665593546739147287671340989075615699326995521045448284152373415772237123976335069241101569361356248145885840361978062956131499463500163778101047319409590190800593275889692602321383414341710837522042303984032679612449836662895299510550280578189098433730164942370637286962085638237354202368028699751619262656210800563352435668388450926187401231083296484316137056909479168238678975841396417675360491841880157479118412231193406542247153741276857948017289279183640785757673728940632372210652126686252031565978544402118911192946847877512742196693395707947821251872041662404220577505479741760807343921830185522638372505394269031734005272007596339266165113099801049390354364551813344143076869261538786487421155050095747074839327250802406772568136887341501121856711333509973680645746624768431455487884011714872570464856746135750679395222463555629113813186844264262869791800718823298039995755270630888035189629098188088199950228208939906379612552457179984559699592433726620939454358395218677601211208805344239355847148767862210013337320221812898536078982472041115163111527442593316948211728927588687648856234561412873014313049836104285921023108549971560923760269709926347860202583396812357430113594977906408745256356108670846561678507660646404957208531083639013238630223303325654782517711873372958903002251338798933811244401375076950932437763429426650714694150067352190086008882031818633829690252714246701808384173985699376692576347567091822354578399981124792260011347756626923533718461364203177703595731445961497663006544637614978550463872356119287178565267412809571848341751741443286072035064662662467676649899934452865775916580042912844914162672563031927821806394214399292513885072707433060265539395276780734860201531038626192074921164861431986572434833331938073353409398888216569989505279813229982016939114996464529663946616422178488023105395025973430037675310633285808233013087891406146368161229087606825865304859575090697846153968034729841267996715338199021211205246111446989693115459730477769119013974615455411308992543947306008466680853714512224267387080404104724375411106002376756233947766882006583183520083573706033230911152604212637719380783710374887839055936829593707336337809112253079195333642851155267600301077214483299614682403496154028068877721472464893850283556520330769326743868036896847672167457684923997038074310638497755158327193222412159107315363765297245852451708215726366096425664518189569968554361388123537606880071174006815554561985648363508717342542143761965117635767047063399162474805188216296382983614411242945852410928500891796871774813963161566398627927793291294125114738307017286461910254710269059435804410592404967010440924249873858667563666624295704041781208119959427621739883013260984554621343110753036950698546171082857839455585204399947111730589469350894620233735533622257756068938213591388144060100722208305305330011332808954033653245241515707060775003656844079547699496971388109502590640347442811978643995933200534413363143410651760656928388798448496672634378452780030583047657124184463633829502559107197645338009544732008477811196312353349444039875076458919913961776207311488252113806164326170922304023105403027071971783283844286676062741919537440878487110371034106111796618188809307993250511163254017746693023977663174521221992263659415460832419065222032952594000184808645445337047963992655182692305860552619803494195437031957404446173500175184752774451484772080090264955863859474330720618584177394001413038742307639270694857914007363065846569303812779014408373116491299391634895974946154247676813944197372938937031920201649158508750502656814261993375442331749094404789471691968418113982041718435351948628581547258690808212559770777280894809584799900498476582843678701812072024445648489195440745961047830745810037222413277238765955236665846083273345121682562273947536167563246921297039255180118431097058347783122373785892265782343052159565170750734206275600717505277154323709185697009981751818233786555838144898210348415386256928029360214565054642874501215641561869173291449577838695974897826921942819400839052917685523399142410988123187637990641091227938402326509498913884573344618248086425437196876195521049506490827292949922881087482583191809391295710039452893403754924941864325817345281968755877589110962082912052525920141578170325502646278123866787503688134424953424326591453791453354429473479281761550480838862006032098170121709488542459423188984178992834317279905402722445435700230702983203935032143470452206650549649526910991911195992001130551241550279114169318288024228309356051246366698881927705776147042610877523251145447536721372977202354208690910939382736657790255450975189977794728348918327238590019204678219255145539113495774932538665665881746770786417380338015232207979593600988811598997464949427083222949296495587040631744072067903421799538694923248942038827245268926092141460896162484950189781324656142292668737985366569885178840089460224124607589932632671938520160883783616228371701579098253282749590028448042863084480515164092759366295019070400356094974807239266483724906231634179859841843940890104224252749992858433333848519228901250075356896955234605211535814437996559764216483888657868937926531535936172674311630487932125724930388804289424604740729114478099489626262987090051510384853048008832047390446141666192513935782965230577962313515795526743264588391026697139177878309236808046549626529306101826766581002997227153780056846485844523447935910695032236315436480737179674633382654431376888117346348238551673789698399227166553691093227941123131361787671210921257048628054709039782612701629537353425386585884958894833435505272943909642482898438401524318892995741497817375043358141618272837670126299868232491113058937020932271346472526848004876874361828395678226955565606884982526550628470021209413695219014495143639770414351035565088670323641837244311144905827135033362879860558003619127077817368908373378187887101055158795617928215198088151935913122450532052882656438067631310207343137415148054714303747124560059875720212175376699723864696372365094560043123949086030121787458837880927199157408789221365215195535066080670807855463879782931693334987523206966466328172688673497992921196493833632805538692419413312809365035591427078298913373371117219789578249807800541529568327984509296891210252500733882297931386771761731729088872695784603410203815502741831922720237243658732640026804637414628248952510880984437380427724821163433034405096644786854302757435036914392885706807040729035577163853787633442585866039844006181310208320018351544710736023277041545039382496529681993191183308801512362690573876126996107364645971688398228960763222720376912664058154964519374089354924951436885341397694597415245075137606900359571492635429203371710474625043899849186414205521898909183713077295531301915972910688833760736389685402474554900023081300259462149608231265553645784304398720956972290956070545549431574893371215907468719876926003432459546897265537517001540511236813933579771208403941640309304511713983987857730752167029470258370916685026822173726479709811885817434941221905705815419073744348064118316496602809878603482041332921557964615628073351684778036690195003088211235955413610583129021770082874353568576489399106687546689080981963814829545518554964098040080268450608182545400848443710514999482354570598693598597567794466695122958422396476104459540362890416795134316623858358149195845710389963689822665538643502677220366219356388065820500976654590382198154647091861636748262330162315574771953892350606600838867429060987528802457162776078750000879277754982079633035350031052332016783902889852283763455370001226383889773593275340985533963534830755984665836425740588256559328698199268845773258670200964455845576867164205004356309555802862481678420004945036775091650155804369703014065672634873918268921329349580457813116374711141352231675964639034495012760473192338176964193671828754513788568167208597318119719638386184742745557515440115219513608382938214004799344525872460689257484628044119494598109546557564663258037983655569390624923709192024247168042614215071931248088495653030286643680536803815761967779941302365314310624909983909096737788411889698314711464088901272719725759508485842500934368754182586154027514793397231540381126206650095641323765226647699740080225004278351364167834558671776019261709898439273405979917431570041963307075749100300204328733411832696969661625219100268812442147985219989377470294120231281020773135361755132726411420794857290675138222289498941492726240284105443549690138723553671617461301795174248293303845706427437677630665888937822712877343468265300378642811530728824502573883913622489290214099547742908808904912205394014656971890305348906058232406800076281499782685161600633453849746150544184889695509277470754252406599866365105039547854836650442010654719562030342855357399310346558346135025618167381131800280875236609781173342265728946955058430155235263008253596825924761201746589718222736114197121137276361445781474524740549159852603440111412674115812383796081064729442189083544310911553508037530685736196292810516038445317808143544507077675236870739127184500824219419083255954947668382862755611188338142972860197889796179701500755042532008040360343504335136582111164723729515422501394631272047676584108088641134432302596226626103264844165331626435310389174495842866746880524717605372361835084297231970294941466145923494245935152839801117407304146259243233833988865024360448327675630782981735995658316411095158146093056515503115576136367810742768110613098887665906935103192066884300510934257336014104947709021778647083318084669795763249113199738641848833911149879825639381289478097709901365858137922000269212151964745848268492696753647897075339785353765486118510805589103919688042489119394295482631939798515770338556879634445915183428317426161010077568365883131783455125688204971487652815730821647759360171700856339410938741926963344454024053303603100290271523367711089342899000346203411748718132928134172798420433220105438167302081143199694333999582817388886953695031561447226576030232003808214600555954781699946768823538082456886817956826958115875978607424126148894229414814469657747634510942860256677347561063285352434823574877158322682296707316643542175535559599588933270421883592368677832015316110512474214133372554358733483360522651555729915824399913306956788178315485626813821041421553931365240877975923155131832186578296816471079424811521368528856106723615655200036167961753276098456943306584106152439212843953529619477746711806917521183922508743038567351200661814774564891638139289845104721192645925124168740315668914563712454887652598207030136459653563887316693907178617443937828044200104792786472913479872075129299044792738975695010760322770332954184547823127036264453509573418629572800905122087914953977818327223731308909145122059951381730355356380954572765263612847823259933271096382661629310304993821085473711294351742984305783520953552019446203700435144477583937385843002535266239842716552842713775944822068306123833398879137984478755483768628426470602236116374679592663329972324834641393123434207045548993417868407356251899893659901671761532856959881553073195473096211429553198847849125292103745116207204152063719213962280878293833970460673277329098637125437998976267724412461567918647848949756137278288817243433467956793997946369971625363897101128123659676788358602344713271152531713607716626574774466741818981642979318068653366578056107909503788370679855280229235400661445379112989267024741308008395097268809593754648961427397794435462571304900998026550527182222928892211206376535979593486854939003416945535952248394784085726901442357530490552946810620610048011549667957137958976227463256776084732436711158092846503741538611898300140767253912783812281718811712322435911269185971087778774642653763360612638782571735397443619939874838857448599913239759368353321300139545703735898321745799945837666798065050834197859302036763137653109575052870345131003048448704133337306840913899359398558953240196299156988142312522587985742146387137726240973683346056326987641912155559381398545218157025308818574686817243642613453065345335793970435819302496737446169725762112644697065819445389422028543047021886204313033763752918139959314914952938290139735460792651555548344675963201041687275580152525739109340833983739198037915837470094007420552243334922480879373926203493250953696338489184951423886150778152263294588892827252572007947696188427496758790715828165190730856149088712959768966473693514046341953747859118857791745043182265262020239504526377536562330344443963401038413480193405275876875913255610625447892095083327336053093572694974823416422486801467111270488399009977611671402949722661697882088568207261800237398562734985459810532874769845020285281494843572119977042920806492557151952889240768139660468769887956487777472906729745638041121289704948960768397651735350074763615365352604279493622505528259420165801977047178659222771685197595002900220456361369249800494761864150112839637136177611661000656594184544589423991941186951462317874102218428423981709408328597440806217672657244932309964822628336995371370585959919231163612708071820221615323668034820940255283683097262836226810997966046208605415181607595008349820767835625434973029830316627592924485695861994805563530131646801248140603939982467526908234505106949590566028876473661618022186739357027274083342815144725144108334645129622515651499295121999097740827987771017400527375909083352907389416534946639906892809820430991621524071783421347707211450857431020929395215422530387996097131299226355875026202678104677190625785772830787734476136112679385924793309587273400214591459967726135090805056232405365655602953523622904298068162107348910125231008967177679246737987437624840184070762875146243555352996120862837904605629570753053793503428092856882409576550742453569904118585174975455819949572811643060994549866107205957548096276100170824228299543444416917981725463102205659397792410253536969441013887360328153865105629212794972375834542913741675228007169054653567976985587604103634717700712702132245506706333650363714582953376507770952544757902564709777538422103727834097253927934162411833801153383745914112993349617679723650404128375739765591534180014866109555506133135703342247860375789972299997473550966308539464672672762880028722484439896856626370889066673562216684139175543079981285371812066738487762261778858267703218849141075891575793657633733057817823680371352356187761732219834167422826502917556806795217729731352926149390886429220567297264876721908193583330005714410110953584008750658901355695693544924571574448369388662493394096344825798742360821134572478695533020297242558684524214125646287576362772128804532926187483332690129675550762406412220644633178973567095767509464500491599084417333701274631904995567011988178887778240463642516846065818655639340396541232971953840349588009073494239835852589343176242390370672926045592185011080928166629058398064923376817386979308248344833748767394745506325666099734985251454810364282903053673121572663976439455138686934522387523898850271135210213960275607287343468049700096102320889866735567717613958614148790912919838598929754021748007998570457419271631391089143093553182875056987424565904198303702439838126048209736460301485886446240754124694471759153925771093409664333361114803460159788931112548932875931176698640579719183854305295272834379045395779918713840913916717565200503877602163513147230408388715928387719850852327571513486269803198792273182137052574608820345777418160723630875327547715300788420448626448928107084281810102316551080554001684050689307449808701537970507521248530870739199507068264639526245077336469807872758064488232746596429251778124752502226055291775442257910940072173060487550828440952551788136670451160718192013073894299157265381096115683597298256408851919276317231145954965772889862683065298833999966064830198665157643795634626838078167376183915808762669900492953301406697904674415562507008458200846787012061120282597337219820495659760492341065010855658436631580922213238441075231758990245139043701635945289083860984520731842394013444918626957849328306257538115003326870859601470841239785605241152946214960375998479059964229903164606233782085813741319446249625679393494364011177711939091423797087226462833795035030336923170301120574092597973347955459916673533381726693770567923803102751720925302757185656673606367033949625565080070640519852471428259793292989020160363998828929893447052862190240379131560484696999990325673478733703923004520704150909712876436930320439658786628624187033786550507056461269836265142636950334918509154055605792705936346037273463226718648157507782871043280183120701877576217468963118676179621788862901230133691408068415388156515504613634504152380024237274931231394855958764093693596093494592370861360003710455040191685855150005265949328507900927037459132716711471484543168587946969869630267749378432460964327168599739696788509175148155233059015013024581789122006317059798166260451220329480853257830004287275259995807478963531427437724458788396893031716805741825880904235817440431014432871026190920064883195314112452779020451641876585518710517727111747597771257423720798530816784719790112005167397554440058446242910711439284555122576590310609471993574423790259855261447797933084579663919831166853424439377018827323103118051437000624802189735080715202825093958615380226823735462998079704178856579727690812306238916068464843934041390138853955568542670256731301220433385528111781044725805671393827219319860715185325689506824137579721454746708130596961820669154440390170480923928700604996387043360568619636191118220421464159517455873507940550068814920011569281750251350393350675134588786092082919741682331835959853475311005107662663439842341079616161802054951229701794282480660365288353807157513677764159715601624620939196215498811970336712015377571064674103458391248389398549397374522235703433450941645329821250126096253646542586083695208449860409018543620539447484297357394161327503534138104486719253800261652552831385844366174388552264487879830428807293618344102300565541132612759129687894853448613667750614174817592797898341158992620579599079143459430590899593279760639175295910623469682155514233180767889957508344128938042481153729509286667282199709213375297628349154657710683238123559150178008458103919456150546578963600486850793666343091372481281328498960238410758227988126171423046607763122312192615421971781615237133723209077897755898399109996649710718558783738458821449707901130194709696273240257045939781307149143914277362300121593430050528849322969345298653649082548478850637234404682061463174834971602072771124027928316833495099940236319499974448953214244033011520618552861071501641616401897260308941403340085359523044643345687314381901709794075591893365757008676652492855334880454805049737780627769094295059552609148168855122993999824595432352683081032859043934828639546413155380916793412820829597667097376565018298234271602389850852899452231651261512779933964833540838658339080683893767466140632213656761276589734466188275503245577831127058541530854937148446483859060360736571864834484037908562061045768658799811648342998905894880510436084183240735707278556283315393700174780417153360212021167991186775123589815031026040705154815367951398397941466986420380817100884621801824723468047752294312945032059022146218987209525888041634026906971878146130201310543366170740509161356713224734105308639713539017260018334397273722720224663029440433498218244011192231878808636511173819283838228425790320020325212614757908305557922071315620618989527766209662506923276584609180382906160026032272772749699710584912813335801950980851571043827872383629653849976163329477757079901579762045607618955825851980491799912099189896476576248481333904635991730736518831516543443843518458140599339805599837966290315350128822988157233149204965284515633843226603460713636938529623896764851796931843598449419357130169832969247612553732935797718839158441692043808911090614116863801271239220010405001831153693184478995618755124588551357005812785784173927800480748356729163083758081693862384539328411013502324928239366416642833143824095408659244563581451027547316697668170328030461465940046268869176813001530894349504635720369237797254971784896503483623262773451818596198407851944489247303088651853449280376199204053753902017481126835438988926533888123537203840786615136190259165485256926773659812160536712606371121476623530341664459277691794966543740292296967597218915164354288822131420509374121644681126402297378459477109437808404333748885037673010830584829823858847763343979364567016582609717993783174123591792814008843836061560082034652906926874675550145979310064870198360982939083994229526302471637086944858903193080769450237643110573810991223678202776004880247993748654414202148703368309864529592984077937812549856205407828177625194402407381298181700361797726133008776313492001057315853001953053079499140970152056407092165724913974353263685218802302212598049125870166041081513825835454320592355248983606692000477688467004504427921392800286637025394225053099845305183886169528664456583067190946178608965434365691079205455699485793751091962091785898565801128723027412197172915245354223609841249646685912706930581351698911298970356076916188973533301392153837629348278228595012801089185411328282805074072368297210060027294889827571138981475127277498121642228631428964952933461028517468250331089762127555190857741682665855935694065956372787336632310487864992035516275876809737390348766803118158403596276456994669474753755056573007097515361602071683913058182275637671139869140395700029286614289616221351487249689275278892859529023787465437798048817231406194875135628112102778120398296403001287852213273250981945659560242401015300341104579838342591775903837627606790673876455545550047593097531893588171346722281812073045044744387663738980536120415923693931890155116783114176766285262302165241260923844758539651610043202919001365512666458472498125246514921692124386984665955778817407597787353719380441569898340972512176746472548491516494598722118375607805592916428590964867869534852100928051926209633719125134563464303819865823479572560759572847424316916924133653245492883941158386842431962945754728790387057507717709134629647404152953024878420832294150082566649455633162500764697276841146128520739326101215471292685708658438661422690321614129844386408986040810681348208878596195113281028671072724233451814223475245344594390427510956448572864468132986110290494203362676506881415583126409116522940191904834169154455323988208094910670666448470963040543672450279938944614892790975957008104100326497976418964177812726853304926211600077171920981378477986411266477146551399541182321532350019470655230118993016842214417855843726522021754880018150788246006321866925666897179813816007730303981039401320906193986599248103309942370613808904424933616189212637951093720962518047993267503009960159272409321522174877515983600862146305385329953206778429773490785562652014466693467912517269296289301488142770490133396754683329789999841012222774251282511666011931912438589911298184467474673755922319096976912042665687416556521319184282545181462723176683875367891773257027604722977470057883163690999823875643572423877150565691167428255609953565759584668688432986575774417316422008870985073232430063824978213502327239597533230330403434207836276229243690894564040853769849322769777932924038818273205124315573206376199712101441346952233014385007572017650216380666378294462645577060739245234163775074388350506110445094601140722706248547481012774323948184430018985739978075823328454821261207856077318402309429243636839648284318881607158265926442310612615113146433379715008312343708992722998255296250561863805440024899733889083413802792641062725701531336668198703202143280066065251059673658584359858168668940170466252392885056213756625284605115614866686499312766837543192947337894156856705017022909683882120354488075445162102722803198621582693863700923530232194231414987173717253498846513802627607555033100340178559818017492903492711504547203797563545493947815554368958046449180129354362966832333624794657041012072742434346694134625590690802868592120267407641350169261200527704670613370020790552448977103697050174181889623277405819962239114279523931782765855947422774026098327048959118759612655817919795283553900715306389968661431806379803565769700998597041699213818440126017855815760550426328265008566956237970925747166123022383564138190356755206391316124378291158602561374890381174131249573233033146611889351278956056063322600237419472455804193509518128396187695364954856711692715389849983112044266140400102023465551628615293966798704913813725256482176805738015570693050176976025232417128635258545340759621989532849625682110141389634529795899283620380311209056485323284073980532283788587955603942036457885867433944334728180598947836149621759397512054561666874961659935254895025950492132291382013809043007715764978221790964987408505055050871311761904846774553439024179058060681760525310991323979103775234553479109747017872369079121061107150409747990509676604141396185032717545999206171864241277139770953673765645478391642032525169451893261778581575898119267516215232160464227272485600876635685382533152455315985738620683436038977400598668764688377407622475499581339497892840157965836925802811945970005497294715905813157612596998417424947765553625051726188463419065286581623642610852180288919997405633785899539353096201972306606906191567364948615615026700622891221903315080305400990522851643273334139403273361504591266932224209740104070890084411567265899019965803652496206898624749199043620049380784701177276294729694745344460836335649975593868902413116587829060579900340440832702228292776908377365974322774077723058199347519292504347581725579541586494711917373341329490367154776676152727318393300530706793926472333860615654189762919666876829073198939453503924569835172348252957161073886266007569090385062993567247313523248487437297108499555870322521681171735655329558106821038274992552253027236363561432446593366671771502184222995991916185264112366533470622289011163874643197058531687703608996796888199255420980964274318464484826757087746491694501316441978042541984752368725357351646194603463684893699773913478361867611138752589034529914028435964544787769148637215809603680481320823793163700573388321604111966680712285389650401621693053225610497575259188928572443787647892479600832413377072481078477242037546354441335292871045948800932325611473691053596676214821175133773187544060222243644198222769827930836778758093024442550783123790324915250851749294812678792941461612547494399003515077027226161434343269195765605901474573888717243605050123699682025286963388697840803704567640225477794223720939142208778993713279438784089120105732577748624703798053803524274667566423734901673330784429004697706567560977023268725399393615189635990065714240685041206737883487125138977087051746887362972547331196128931237645720328223925451236502137722000583352188531617656594092407034540117744024711329360003697719664194122991805605850616924666568566295197183541841172281079758053585768151484771855055942418738109449715628648490197826494592128238639943154155301881579442015779677596755678833796422231169505967885775153503087880900557447234634867344649959129629753002327297700432883147954131857564532617324143630855112229683633370386138278198359508336086289224122376747082036763324526783744270771370023694711397683060149978478418775769992735904995453123357068621175437645341204836801720777929746716980022008169707945437995420626150277109417961503628756657897456928501658709689394452286803450249768897628282021265622940655451041330938682234088399464949059070765480227425768926303558659624350524050647099035679252122362287153973627803103464026577193909997860242530532622350876168888763353182923534449401879992471337870060878507990422795058471552936331354984625547457929753888511577763606569116308355448794497769466768173472578539616685280698031003418010148476880161427619267429813015137339760808656117387567970712979687291893099624896856357209722555817178843732280087717458505112447805244966481994686022997823273001918086245623799073978948506812035409764156239588650331110726219762780817154476842985572251291563554804142169900296195828384601870599570099801327957820120676414675676804197696820636079991679300579092244625938278649866356291673188117237802175482705300280153160010711897542596442686136663241645964299423478124053041501427552808110243184578415645102670968613565502262487513229136660459740302033777719336908306282222048615232786538675724393119592391764822680320004540651488715164261092708809717162658427826116666869537149722366672955796769844486497669618722904693728382597288247457207645182075412449294884477201625560333156715606110748073170651886558990380149612034356970771875383521595243421057072179888576547400428223032770831299730398910743410525259049263898021287239840734516494527530521651524097380021566064543092222818103257997118160140971048819564149336660070558473569234838870332423114748643939619073688639050316776380846872163147567057858362491020427243580846604449311590218367322060177060763804322936148121868975162472683011223715078822233517687220571671478750639010842480990571828411269742166089259186514296967811047695857493983144976814588584396626540368543015857904896605387326740824712145315496535692317721049600746963517410832394718374623753463592865473009605013014988384848973271409293336901052590867269962840747567133129075795123207881763651173463750707254312632095522862237135008467068279511567385219298829135253502093746916892236739055374722361707197757757198908181663893712299379621551990299420486619172188656454845679696127074708450406100366380686159922386155823452708080696037030752838049365212158958725673999732899641014053875883320248954110631584697486436671375230588994778182463351994161698626118413505247492683980819931445183185386236742089471102046614988090681579880784290969943546856575013532949088723554422194329402593608860646072518177916117949164100604818104924826751314452745227162022620009366852612466275582826632897205555128185462401077782319801380940443677823697214372423189539745362497802611046285028523282804943909290296261387016483232199447280803502297038278607495418288847613304372418409473063571476009195301518169607663791244375452781741323197690459842980047121563610169435962418105280031448708847514780702488037274976208459774040153923339132414344781467556198405147143208726015971188905169016773427327828563946408925386780287910068991937763373856797374434590878999553562068411210687753976123681635615377762277948773253866347252030829819751400002758220453782221071121279359859287910886956110113561992038756133345875051349340345842600727232319747013444271556230944276792477952400923380850535025605237470305991646372296179011410433304217029562147560164341177179169914761967624694679662735014036530975955982722580377856097402629656565283937763016379177242907212442915398139522575253522918082900853985954544755364115577050292573126288830845816521541742982250457589611106163848428196011266205239452904260824903594073137735789336240227819924021454510600403279974857594204410297974823036827820383840857540668414108906800915185984529709391208364368550466070065464197094135073950723307264521186905473656090241118646117167680398398792847748978355934488336875748497940917369821910176151701007393306774961276947790309595406518606757229357799635320137545388988255475863184985860318550047737424468252685407784191809090849032769480934641139955537309537648890009433783609951393991952906229140610112118256158087150655403265626516490479826946059594569792330017357010060154441392525489919064886350406066460823533898044161867162248859463234280349707492548332084760649417699743078764699322212996973980536211391094025193837223476289021279570331750053699672273403799036408879455597973029220058792681032271507051128102541787778777727348812583688815536400384337419095082911903807233425013727975028832431477152412546971527819709943903860147340738697549517923186225048535671938124951753421240609220443465176377314471018630423798300607419550730027605890499798611465957375438305931201949903474134596630506286925402567563251892492409670683500577106896280114001376982749867434698299757263845642377419533822205830581999914065295142290213822156430800203586440888770986511506862646072130728996969399429063433080188744470519805910372177534738314014040148191742233158284088771528387739790136382540210960896595332127109267046813543486554767814776368793955668150335767508469971386374723559452577552781726534580272202286126603819833081426775958014426006730534773207625062454944211650935443545641052039506668148837290473159677938039216971054742768721029622669646180493041032086983363888870897310264437400586615056904222613690582001607528912073139923578370953781765046723300625452782836355813762885767339650235815719349268398285863509248862241101187400457724588695896206345519518846499607608785013667820688522928197866058843724669833232368585662823861990979807587403666304763489552982514525188926041433905937274688624997411102729307837420772331756843822511942526451551112641971095695773169644925645856758227964605145413620879444544923572573762922055583820718905665575392318072353402418898091452536261235434339243627904310890003499045311594826208319092064852787485892391205182574118133267037558574778674176657654726764189774878175018586740283419033896076216457369096867893487541942062001540437839302795570115979048768241343247909627996348142445036810361969933998086975798265089801164262157735052246393764332173786789838389419222575543235796051530582154954023846213953830376610307888934578680569744974330113534339687282386829013127765129094964175421253472771414116634089642516281068100794014055307888200721084226649090014863620520509906508774704781134479753364915458535808903295800080041918556322678193790370031259828066558143847593299301676188618485490863900666649220991604208584531629298545165673346509384712157375408446474957534595960229120222842908385093397263704673055481103371419677371595150962166881621483221234603151618399202927990910923422213433629858258868299507750764082525463650102074581359159956551057846611579298787216255273495003710150478104749436265430282011098768132055931885253946884461602324886338524150415120807427630290802740995366155975226104382409735950811259063924274486043016514163988764662783256692555970725448694855038540509788384640686462230978876117138518816900638231245896506928752448462763567416126199289842695153449137306356590080689013853020468586257566010821625489657116928197989356707517648229102331120218583328734575535777689187724701788451462496980637373904713554969733204931727411981879060434648049747379390628127254166307407229888975869702056279232936467848525218460869280133569804534018467398117439804727858858679580083403346311210390534799063923800071348193209713193993409340413601755416053765399054396804586085114867534819536248628915149485642060735707131340552272158027459435460469932499360426990118548753054270228987908435400491188283535059842299766447261577725411566609253231324923973773019022732226827341694723746130956062423336303243615147611039026816360075268316664496143497711626336582312384964201121325093153437853513343136263055005895410613179816020942031627142814606669638187966852525646128502841412030626958781076153234189615303347295177109838655221994274920309377271741011191177403321801518766092103221740818827847641231094055325239774086968921768154069976312641442929368719931117143712692238460360692421653499610352105962140763644389409245156287331275781873489758076888050308075421969529246692636102498352036007035247767709372482003573874067378750239398208743133510969513282639948219450083619800554534793280026633885476154547442444603639948383658033276932245061163123119326394052188136275587043773595235615886895537664956271360370656558018689608623970056907830042176192164087626660680679747126498364871676591238035784621821569741823440137641342064451818453868111536588791974636624257779139538102426837685201597980457974383700395387132977010219195443927029152926518892534314250311541223904024954418663811470023426636272251766573191092688980738507009188610011334496378965933083790561523509712822761825212068318815191417878721797907766932935783288727080993210781851499192562710223391335368836545080750392423139802164739873559753543333409817127587706248750960728482164936666317648910348583122176661735635253527447833763408978611517043220051490874652206078587698160039579553656492168766659997557576557481774664078851291406872207218203853735448056587807712231507998183816841360887175970717921121169932070320882845587934419818999117726231734376724063715082654046562682971069908819307390851208479104093191195509561780634049638366439759881024637288122233516276655522378778449374934952686076531484964698684094274094748293898188984053307687361141979194390545502821214166347248505888277011171297572824993645823736010441422520733018779830389180616302926501458251851250994024198353049328781233126117904627588599595953863229439227347433334288427642381362636181958273058613542234515987387550207646124545285793754140513339995286981016442693434215072733344392358164729583029159176090004748863743210674182143360333497617552941894130780487694806280827557695961262552617465320053050170565391382562277675256686196881704418814565206382424995191830596954824027154887503602566588811167033085713531825677078439295565197627182056925122836111167510300501107921139871276444952678979592443511336705711984770319213651474343675089209808521553171351506134719523855382972232133436535911541316015160677135336484233252228639766232712209417233199364633338137351794724869224243384462806698782081062447031680671225643169946791712820123060731813848923985622785520782230167222535814888646690896469119144393383375812951324058389802970874582706887388469275896096353040399904386745764897001906351131885780374033978150482713192896840940651238955562466411107218661107421619928868118701782205705210948380969927897088657699062857112703526564630962723144381553786194495191416539304160825537642458549175235071785649741986791077857809819656345346687827485069399155372643644277946815125728338714344168829778981249228819233412461436725553184227791670541827300153153941168832919640573825630582814697713196279166051893999146878766871649473915083140192416155863090754398748246707642401906240790024672315586652677886797871819347843076790846780281262940470330569274550378013141553949957234251484836145779402265992242506575787132120394560663335183318963724400522124263831446436272163328459810862396866253366729600148058993615283108062370507233881851555314614794414389323575613522132548094739591128419374116013149598546605356572821805979823516986074375009092104049865396112254582528717008697062570359368887185578641808452317601611998942916305386019126143268532027925719920167735515772126851154435024998392955565974062136358912957694566817310016342436919914304431793021248405230021191229053559300757524467368148235378634185613694882582511281773813470448809878567586240229667522599901272825626743174947818554450001016882828590593508309023239140589146787092115745317746933778087458535529625512984175454461016747079851392911819518391083520447094557094947226412298450688897359704530410256652070421867047214343129068885615808665616126107898023057144043726145828908546479488856955824292639333020108275407579011704057142095364780753517330057330658069231153223688626538485275197814862951970667449892748708811779933784937727421988037713780269197417911242256218457923271199970728887584477317156801985634093933513422226259073556995081738024821827798533601609106168371846524880905183260338988367292516393880151816513217167216746606665948417579446932123063023069983725341606372464560571329354329539981756915292208604568276187415252683831478588123965320581989430505972714052626608741472553949829498519798307591261139899673792987105279181042952962199143250104522615078777249199835621209758266234409554184433359834542414858419247193017492661474290022260035280088369676450685411779745632477273358638112456140709289655892875786932397509452555185010339963198319750833311015758930924708447086995982311686878353532476400607456996539144171445400590091780311559620381688105525950831201141015074603733546043240750797986217373039611981440489833734121860227353258336392771937593981138752256183765491119708018371675902315236616637064881078330873299370062371663793359796163365857739595216820930738834563689976964815169791306523431815419107928410650451940255329358378132060126348170408785860525674795533309448581201914861629810610529805294176130109012395119737375466245752922552679056932825735107014138700568712569181205185403363583669410354010818977389393884853131023921757601149753566813187239846037264260680783869835262889092374518097595958831249007584713522384726398206214622993098467694151899808759502817150388943183377263664355020715821652384792461075798078420323501491718103679808257162353899994875392525804948010179531706336499347293179296588370917786005065579993711369330663355698704963406460605311477759055322568223967788801731793287348108893434807042365421083942163689992987987512267544222207638847573092646847233546054341972453277151163992906533328388281054946655768328137286679010924087233623595317534048403197392858499066237786419522425336205436426639866051036196779095555636975055459741416682292961136372312299781418679601632749809533674184029123996876425614041974249225493808447982807740995531834346844897495829287845263684991151128240030177452943195898206806367998910175197364587802304074914676621562468828872203803532375010173537118051708847390037629805026793260739770645703157072555637014438329389406889732462912462793041709653436310354050236174502166524239113795082419733455640203762962277463647987693897155725335813024532434148764538047484208019629582297004900052528807747846323073132384604411661674403144641221826093164564620113910440444642259058761445235228397934525463094645013538463283311513697765834193426360033361483188890404095742727100675560454110196670499278553611206560099386465524124666485912728507466898944492642682828348575230049955080601587376792038805429111836565775122076937373175264463381791144696990928937915808038661719060305174321432775215492299543642939775367682254360557479456574897402938616559277294266969200957947913383919025913890182538923730785235364636847728773901525749166693257501455559838710402037402439382614164283029113593308564019495232525869902357419946759553529331027757747791489154365749017884037708860521207965502517112045934260994008640647009329557922283285463156305386872951045790884333617131839956887212016909860685450779606655356662810764865078858849340417331188044541138331874383184183813023597971554456841708585930517840230701905506943894257588431263408744107031344814999744541552313793720397724592530803893504723046843137323519020423668721192289917441728380815061076135260188355093015587687272851128999301550206158742144359283649358903313959240590282841143302429067675822511560120680163639686075437204266404904796494676590297519656802523786741513290132376760925980232630853762142284029582901614891340964150861833587171562490955405770733597859406325382587992073743399033606897035062895304364007306985844942069058355447011400862319728888934375231754045455428454255493454715157034692353478366848929377489206648823677947754685619627706747443989479764698112781096536466162899352096259345437998426009608910850832007276849728351058990322140526704931224288515459552215373324365586289478909007683636429861965129070584021316888801544288146642040591230649017090428517220016466753060289623123450512908881254132126613573183729234847574566224765353922888149898443057958472700399101591863656092431339787970652588774246107586194436773283183157162314552847822078495760849939035615485095373165181064868378837072715854537196570068059545931709010115084045563298538562793442959418553763961271241994746110373326638782510710033203555618025994289992646841365383490523498018811871347335385189389298779013013206133721606180633511664016235915467588138613115265262525766139571380795049078457082118421039137903920468958868579849557674973273724984244396942780174122317016819992506802486523563413094444716776244729208739772674849956861426168978502224517364493807530764817953589898885045184707654712881661221366546444023868771941849990252895896129984675952311655588249070629262879385792267973424287764589931222785714534325770606438314880116682867527544015167873562754432888753726189933659904489310467085356487046407669703119608945225900408660661698467916146919230032353268601579729220565815302854387902151419396749170870698570666999238627354792747974290662661097529174739905670848825234744133075626522348548259950729491403779729501777409045067283889022352381792133124418556550029869629154546784579176367118875934119999593898950620598874407049380696202117529167265608824404766053583469125100560620776496101631073507474748734652501554290927116739183472659646563873958912582455096572723350558727043160472536924146813431737616223460831388961201443449643563319648149203993785066622941412926284867009066642359743098394646706105718807146518108545327950201748071230963248503931567735826297431183446246077855577151799719852557771221232244814453952418288944841672191701500284849315614000315216387395303283124642308546448713245633756244728800163686234888378755132773174159110463242294094540588564986531497995593122373876465539013984329105878721689376841149438460612040790982222902728670567804947338814595222088969903878697281253566974927212875126724688200051957223730121689831377649766106928850259847843932324815697114289260148931801130407340801671382971452071880597781823500129258682320713239452393416439208332686936302399501793211369811941568140953391019584346787846178375038140685222839541231872339121708378015680037724333676881061220846425170547458936810380491954596955791810469708781361036447462250715739209406105927509978429799522045338950473625363400698784602786581294692795535431367431926981390454530492087046963934654569737012400915137643777794975906349726216611984027847999613024029411480487616380826952877296505826090003936625165245793077004965742312626783939373485274806458753276604308150960543126113407000609534728992157445493640177136605601948998901005691755914565825974274023401704318118917171664234215757918219784281098000071938413573893716782294580335353912263301686026763934262325565668337429684543297011094927295505348711047048694586947870362771534355558666657828165329067414142781753510385210650936845009543665716620733970696842846723019691021261243636830476005679801389372427407396216075334962059475220006410615727177567344520845854439576710191029085630210168362705664389216464916622646210323441070902430731973916128938994308386114582281097700589275123955892475996002626193902571906730511994604785957852373072426254292812695693453780398490622658552358549202714259475849327276964263934105345493973671040495805615924325180960724741051179415857858994852973128897819856436064349821501967878525728994335949677752626557633910687072051311198767311562210737203900274269354551280103031074491487267992460741539851026143375048331086502959287803693750549586443208970704294154104055845502596386053829590292353265980466967868763721574848913210253004229610833046971557715270763524703914093343468827281044753497337955711972429713518079179397686478920337587140709042154774020618129477198472635734695318444530146758482961792491922853373304524526537528341669916309761879077436607413085901380050558303822746899636381908373475543457594345141552571004755995477832218539716084356305087653323349670688523176740404859484165261517668685980071138374673513100538900795946913872602494123910606744902446997492748156988780208777296996411792234809498989729518887801261713221302883237761483179466001974517788470028786405025090626282305391909846766508696584319991306483106984033144030708159846900098475674864395531920442535654643312897496444199524534738834868363345702740517047852647657720723925850872892853192896718376796179296381154937305433210686810985407616979414637857238707225686528965516654259314481603344832110708551719897564692748181374274802556968535794332192788236615293657588753625798782523081101191067126617074895095137299450201733855435518720072379883988981358034255851008341417794752349245379819237066512278121957481561419378101045915518428782859193145445507452532431282751628504949973226448035114453828189948853836268969316240208560150770512236243778680913809029159389421093111635240592308646069671710758415410082773403003802292674826760868716456841543162213313278296467156731653430362761259303457899393590664704723865230073386346066162159404550239819772849309831263038408444465217757017932307828231809740733941470123083919717687002234016673808397812296205856758366250395838061397110878066457036171259586787584699507705078938808234659679476505407470850986406143706357215625275087132939275277282101468794923108604318548385481802567441289825861306795898494685794455156396165413219718380686434437276695218619475213775645653410135733792348592130885801004056962124883695206604486680292023787486277883176881669162280584675583022037075550589316623928433032369525547388195654306139749680652870894656961045366407050873327119056078403927630697816904093345569490303552138064094463819214233020877101292623896336576028563423131492772091399399135019263108527307770183211607202764432610849862870702928521708193788486475929970309472307403638246877428620897363772968293082262597795513302430485480913933222094861230347108664598134304949081721720565243406027418471102006564752307564552568470998084189016141220991086306608306130423510214498932565117314565677883336932209800255283822536485718251096236423641631068745692719493873612462471147034430195874914637569752400397632751274519856704530301896079018372774481994206129619298268263080474987817073037404203694524162382245210674507153180683617379308837773401124826344133655049604705369694752588972944248946884481385149233104597801691839236483401942389435493792474486137548401235552611955911966366529384553571990209861274804280234628107245775729815014651066193200777863090065944847285488298322904862012300237591733308450120893510972544996759248614548171772496448325856304636781524517219312822539136134464455050484952448920807589017147632279298843920922586167446692153887876809338199010791118498270007805174075495212615048995063622298945560346738755895937877080025984140011713223845640817184675241372693226086055094976727651244744635666567186948502434293249905588682903621779985213901383067693284141757658223410006683690438559738926815267638435926100762216116160568098631687239117313088405971984049830123678980380591238432722936888344033654356439194319031029746337500050830514148493996964923242148072276582573218512765892807652986417306925420558808814523365717224170586761653989487098481030373936426495065740267107610812802477641224193678076393652500292347536107148002834107546699861064718479927293408909704245327481191879876135351723951191619685035787552852158714037515264218785444195218900821163275750853687989387973353177369455397860650573725994705247756680259165123639373060456980107253395465304863325504591463388311829578844998094884825623493133457348578365166746576493891048885475300429037300615021908248059366062615981618710259863714047709172385338138913482560437947431046351486579572473328655497079635454046938102082691717944588582748374675086966583327303907827179894938540337033758374473855893498643439454431114360819009624480774572238679266178251088555412301176162357207035903465587781944253570593715153179023384831517513057088172127637936627328877670952844507151411120860073386529442130754152741922992323971881861403371018399331199097012486158448346247581371238975520088936360452421548827470476183064143180699456464364415906513038473644819665296396560999585630891556268714640283449629895318501308061679784366794715963057336374197149362745871335301596830788631419545582019239660451990209966808685602885480588765142467494687335085463773789854419462208862942601385774880852743260412698493133040076449250796817237171609877010007838108309609074116478145584621889326472865684069951458144109083703286131827685994684922769017330863060168726347013215691107371518397734924273751170112769346240642503799851361207506777476999836843387531962601466132039965752992897928063467980564669310529491770892159158893314515292649442461637713805613699213972941030091697266526252817877111817023987894603001352196382027882825193299768430593578659606644416800773462485461500931796416357885489714072445978458831684915092785822334515846685735702860198700047939923652192140115597283615042082774764951748395819875363544347687402445090047304233109826843362056113926843884525518188934069048990056984372536315030730565149801361911095089893557086429395031641188682318324365486486543940290674346699933702420209962029163105797129643606307673636334344341809099885311945441168218673832912875052721405320611867311275246950508459631193857088924592043148993038453058855558692910439061062388431251459368200485618043025403356626381852655265907022274577556656438639495163277466576329298716977792095311943995572691311420955014449515415277051311083761818086876110144670010411925824464541154023187378909785296768161075305366118192016367786182954648570533460372791283668513923184441544517001671697159484981027047751587498709918168548299415630604947708999127611314894612798246997404638099329797396568606132330178831153378725250745156370233919147553514350892031382665541235983010108268061690680952433450160975524828466108539999064916496698330976478766917915203646532364659709861576264290576689873779322310507144251948868498171182335096750157262129785979100028817422244392313867496403434251446709962203533677586322899828394769515302023070613379331556852747535952657365023844830419902164273059352131854575041688704903082647857672364566717684028182291890707106400739854860685117343356709726367744200785543563837073086881396329655478400593461724304241485176668300723957601205089774833644725739404903194948702682293641125363448954609810906338821558953854149432387213811340504119675135980606980580433973262978626306695851269235157108275163115515035609605309869961683900699586801710813480134901788500534997100629139179699222918906857641481015803193770804003617696865362027685620812446198817515071495577156290095193458003071567278728761384545715552571347061792482989902106732466126879054239819177522374871077489648162354870040478945095283987488581747492949642833702534374577336500153364859899029371083101432116168380234246501629567924909370641919291714617520213891374739360648732047909801281846201983780855299901264161928415586998665877562171843497667909258348976787442622815523411194135692390922744354059605471462278787350077471051780499315006210322687002620771921908656295907213055586005734725393324486206190219475232429990361799422142614702464682933142406719765891033565549932448757785850016045992804904929297040671605480352999048293998227848153137666051592643072117977004747708416250307354805598064081895237805898741959071176221803832143455899415462725353588478798946459806945819803387347981714529130670921190485909415660979094580381248804142345748607808316240495641358887713973199241181267378671191544121928354452053254299267354748748256685742643204061549916732216979614142871720379971380826160931927307964717754946609419108388382291820402861744363976789701768754044893593625519387349216569734165008004441909262515373403328782127559445062170885376002779509143131584433798520751129711718407717100362479920060849854623466590126951153311709510751449935197863439861343339848751376858632434254893084975866643469233949966980030220407424813178581926519773949691449547364039360661993472996697786241414709924341425201098939233228099545819946136076759898948258674065616506290207146398884019782936468320205900183074265124026518407758593820209239655867236816067368762795953329961666111301355774400195300904839415025110937753645151202339578577860434556731354196209442698446550668663956403072785675601351355291808616747371564859111007176603164084071161918152544682530600257272484197542961575121367784086011182982910999338448267846934508336022091608712943032223414006471735118989171027626905121717530907263405604998412820838082692130454062172713106935387259770702889283730061820457977087962472467625404359942078374367661551265070474428848997582658444389644816808231095417723833739458656023686183543430129692702080788359708601485649057225194458677119265403458912823597557872597753934125144261737392985106204720212223628176058897540568065370848283088756348235196031239159317155838666390725855788260300116690559630766992301890440279619481034245710829885328695197229041699247110805867893204972980281334577538399272663759310671241627734054713149664552623448680707608457114709840873292566283666828778067766062414823155492405232907450284045439351821535369702724167640345086961237106867645611587639987785443277597934190387437717001420038600099237930281316368005989770444088963973102544121426118358638627160726240386694717666643284692261733074678185585585294744893299530961757165774968418939595915486582853116266221633145247044266417762767408300521444004450201037196433119038020950374555783369658195859630842597651307840989188276752866253251736778380338335021109374862202597493301358299470213624718119190420673320021229180038232891094000693775966065900239467640323006857910741687159223748820025675955287581550979173230363672611222174534930754969241714068723981797464609286779518202527355188009817634473668502390892494956338988862541469039159502435284453162339131926558268896542635753138394293932776030604389443873761570945459949910338598019931174313182782061409738086524397506188151905272654377655576017662800367849101254523562447069792893587754083580251503659722855520441786202342838202202499923016073769246714602744109592130574333487453792248364094472398680289391405481217107297368710707290117213031799618077935208586590854313273247389989731048477022156399188168201081445066717671048961281241459235976860728975883435803055305927350271132300873049976200438551008470800062672758957107762155485716698959282731753052018594057931224802737849927683189988009070242647827808702543961318201229185211225605157493957417769440802276958967725211185519968446704898894711738918935436280276658909835152539746689308213842391783336274156250747906776719502601692850215974327911021792255852021084264347838757585571884652686987382039577774188818808534597790534727059168572340044737687165748308897767539055301668051331044587701016875959528209199739877620209330637300401497034244657507668596790071480655757574790238429786923119215937890613616764736554991212362198043331047934146218363818161975143533365923588245165044114791662668574828950106553881207414313116156380150447994906019464879976776842187204766828531159362547284652764860398572926535327601199432135200004275910534809407887527705351521339626453310336993603804066753524256258150143452268826515363826721403315851091997728151253214431179260034448767174814291179391758388643083409338439798782248344587048682117156848990509205633583371642288423316312831066738659836900078541030979482234401034038735577921054287181995150002916478892177426763057290693291428152388526464372998648011807533887762686834787284670364069924358053601850836388069692902569232202754420689441999628943392020416938588616961121928350512280312280327955175605106967165299491810464547051386039219776991162795631919736041480415600026346969529937612399642072770687310548776931994801779868440730591409106768408027391669064830044574715533340771036712768557760302089410481822166455030653896900229366146749950781291342573937600795694049725089972741149334420656949034120966641143532990532679130499359531222663678007749367753984191930989100913538585820718675087629721124381986494876057594920453948356698161899742285012768344435369170004045498568485620555617003923806785617560414471512977090286475403095965793022492162596515543038361619513625411006177277610736943723202756988287129802061956464691272382668272830525229614932275172864089217046424660066801933988352663532441438192997828478977831700760778518700943955706275616387667219662585130736435236643776953115611045446992231149894999122629573574171612022021967919597218630533859806705712132719020464222831984706617872649259264537071738759778326738071738753857545388192325702872653895011761413383965220901472238923361802619836860569530115319394018673717691616352767904987976914609415912076647035509599058339817376166451110734499882260436522669542144673661423618131863216522867615020133513051958658387531399207023052150374859837539126960960180397035977067021729426685695483400190357345668859879405158894478008067086247203060633744211489984018440653827424289524032853517757641668891991708198182663469700585584778448133891237960508790013259790479895977593985219416806052140723534466090477365034591950766732224517369841526169432835878004606868812013250367464978501980339743377134044017927271482486659680343360543644776306841851872907217976216405362362702567440219105141364709969039978937769800163979360253272338929768796034321488047360029255110143824571880854011854067743983614229501655485959939498240863342366692740008081842985488475054438112885565103831049605406566713987121197213590392308394881990067292561780763491267014331645098842098395028651427357401297237468237709796556414869264928593680584945178920201039182287526295830525343160173706026022518735166790459879332649940639688316481869985392546007282303166919076698552617616909613577398859069374714584445111742337775750428391779318981600077425582356825727831599905204357897043947902804059094830919116531574171781115723569509518135996349257440966504021010520587957222797403074092333898771286668773772738182930803934088540455344013402182024180151187320861626354736122275256833278362923259092470061844091355106764278814655354966400252678297109436535485643763107596587978217742419190601807904412818463988088307794804081695868129041613986203560897275815906531491860315705610792710360674658355319849760750551565588739537656960683272588244823147856578376746615082798674887955992890050582289435321187388426795743893560411521826935707028680377598613254115782845185366423641644350693274325440585539053995661233880146112833809677555687757340976084459029676206075099818625208283761629502878246124783724485079857005068092585033806232868241269645375161708402774808295260099151054219244701560667707737948141493305195815697180277427163202225074332326767437395987440760130347308487277436389519600212280620162957703519151946917962223962401098640231337440895322618054385523706332457514513670989934391264181128712739864043061356372192099160984253343581230059157002631756339637604794138611479621667878242353380206518287321695040208184016129841555264474680692014555246088519639246580224408812752617971241441243500648222962516397693252769568826260324846529384001894951745558973557454916629412362522115685428558519434702542521053290474643481499334764500635365016250896939132641463409497988560459838168383497322433828102545501968296792170582101922668610659273886461151735001878508984281344699624016614688898126786459243549151316596837426250808707896357232400956324017368875979826344410896549705522928757137974810025267817492801481856597132465739381507670082328813896563070781758256796176509016347818688666138522323980807580865636798427988551959832112689452039004506841126781163471623163032253701572098635696633660384176502687069652493364801179750472053783241011696379898187210589063527073823087777064490202556437178969671472614051760559069923916084879932678644124569775370396108937181308174903253385445168875554909947076390097650830451848512516657496826010246253229334344470539515212471484540084409388101807167198120195687102198624433378988490828998855865779597716880595470509607760381285529770346659160947763325543410092277926157438721667841802612566687726650457075707937179036317525681754148254174635322826671041119278546887116489846143790783608566559397604018995005145959542444349580823605335250621753293245273251069069874972002623605946239330767554202430879949390323434739557882931937589608589613175431098174021983808694643099924479799932986538071843577996109822800287813299476958979816568182830081728833367107760199178421858663182485104339049367716967613196776660183656342214111761820931295140593628791266655383166385803977374728590258505375960334894945799074754907481720532783545520605055925555659169310444275869290674253129301534164884455025292130073030414019657639938681609052971919799541494693671445415192150320212770327434914824862352659285771097442068620182893446538121380733044457901291503784039918242864834140545508252184348940003267341141882469990594549098130030931245744044420427311039619731765930945456388606986340174927991572248337436007447135713366819290892815352344417789978099386052086119117898323344482936317259277076700984294878284408188535710926948985990731908014081651036880009610732697717880361032093154235706612457264645006647582526585352614953910317245396524662005315874630794952664304822016759289546916983748100991178827624330963511574965008997516640258830849717136805075046383902201170460907567904029677200945220361214516736404849135020558662257225037880257291247853670827255407337335662005879311370818978436266728883418855682173686933651959519306136919682706152616716551611386891970985356642193106764767692158857625059829919809231279490929556828177669008476266916096586130096064457239268427953363189027370327086039891646308259831585838262085554981957265528216019150331329759851611337781222345070984818859722957528915916474422256229554977412441604139049144290942266494350791025433817516488400637603522617139761571720626872070780040682141834514491557268753336713474380202408304948784480942981189257746371015521069313890555113494687311413097330997957831042287952312999269088461233234850697967308374337009071964073503581205840710561100836960420206401081398744636249694516492151070303610216024809651060973551907923588145680292806554013225402657150422875714844526346893033528026933478658418423266685206432736873283933459336930885154440023220532486227689466009276235164918862465593894913807052604865990421145311369790953651143146504804102091337180973768399825862591823081939989056324458159887646088213158059558670701265441848109579455196579471612598369473892966464491726423148457502245807951153830662498955545725478788745935118899073797706556416148169637513375701278514304614804489003343583900034714126808316769284238192671636160445671044061359097491785281185526548383135836723563546538941159689016210796256695910099053510588203960499204931766869906109900638119104301211567394520987195314972324078193383376640792958297768982219573769252509308897704862313175346955908820301628565702904554410084970219302755894474695590478347967800194445254775169794347620775429696131940954981962595008004554713299267271177806070750418823300263184652798193483427567497954040964823783061568287153101433372412717870262060869977836695115775604548137362659190874654056231890312887834165291777350784380629368674914026826358458462227853777559958393900302375860865577705249953669023039801883606363925736768861012606268344011280160333859512277184657418045771404123872119732733511669276477955769927461267048657921302322922609637472347151212438854060672980153142317237525350482416411703688596440137597621058581865600931938767567529774302862585339582619153931264087702103438973372863144662718511016650589317363065551498873909803324481531571769394678692986393457057207455548352148563190497094922716091298465350271870039140287090982518707313783049690198739048238573707010433876451333508269725086120629232333996200159243453864495331036364132909836724942633949729547671538969251062912032608942770744776404700784100140296633268138699582751927022651330906349554850256192641604420291123272378592965666283191317134892570605085294609782448132457928394343625722682881985195702331400375705480323300764624043652432290561799821385236098130848435062765358894005837150746669967741068960901569845765286345300117827614577165627826785953901992780352496852081966619760854477699048963245403168271400495491707594271299757196917730929511997776755335354319833938461510619938659119199190508198301878673990775357925331941131645587562869965624008470801795043911497288008177439226036927927170289588712660261009386286284377177584473293153793485253788870450699636778946729022458261873110115706113741236412299750847800149297297038679951140777509912109067406893288353023953855172960131907246324122161270128245817829370154203908281742488550315725867664986748471704911536708078871541174050464227346242484636471165498986811960928673373205565099161057824733242518197228378800511061011971408794950075279424488818590908392478655368009899389880134556372592398434593055658955776807893725904485439101314080047219438795275435908631417650438371896863307506498354119772354731381590737776892995490820794113686210010484365350643503433938237164678904077019054231960011685220785832439677643382288253437236832846087602171886405538097563266953222414376494696420711322559016998084948354850247236974620040662817799189904326269272853860575684014193213437820769833710757319993305547325496309611099961219515485429617941648731455073163922340869395756560002449742173370775556330829831809196885013731384954514961307293977123183309391813746968724225275852651388170463206673694007358479316093472271091453413276844417053805342452693748470777625174735709713194665664670070234983843691060006886978871174492371404992613228118007595947347855223032836909485758560747496744721211322748506604843815606083787508771462234289145973988994208945096633832949533702267342384321132332522686053949932692879446346039520230793714314870310348200439541544626514495138199303349518977931836312556020464874947810660233527137166245843890425444431585347667005575059830729016327281154039518523452050425520277456723341905386600961153572189766997424027870268878347428991251189757427593312477974051619314700898062102880188971296290192234652489458276557864347654592288482439991175739645834292013146098264579023354002688465094344629371530542715710766513191356825226413770782216274670880833095932768079465321472042935054920161634804530939687973338567246016556517670582783583566710547316044916191254177657438635868990863528853058328311993083891365283731555059670554433265179899438815474046690075626935172967245389167800023351626969683792870596213053536637275341396501625788936338820889008856074166676856436826013055794112568614291328459229289765854107914044227139355711167908922763788922618182420106483787902193311833502255422943152021719367170832926195530261162536361796027046901208431576232887451788046703145432970751566682125109013085193261719219747463460083826354627178180928034369758682411313934816036205351092912461381685641058145742228328769519579061488949712102008064300995887341484748796068941215691798574683988976926465344009678211023701778134511858121276257215582275097689312347507417783349509298305217582682379946895090513798214070307295055643108117673714791302301221060285414229307539956228235299670957518811132957362364000710255519305193191133550451252800797988878615256384220044629917222960502082145042719211573347634812870213268593800930913036803393457582514432728322628773550090260223316167233285253470367364729102203031734860910715244465588868519607856363971602024708329837690803733055092147514862894927967318216678361475169290890049016929820176568625506862213895391982001596095869379792334101457962748061477065156529075314872029317879252544517476697619748223401824102224230048070295190551276611025693525362903225666518740447895625380825686060494882090188409423679432962696795859733919922666000318835809164798330553193569032758925139412848667883899013323609361324522337621984425019472258865124667291679671969770138589254695635356149766659314803513198476596214780399420176648277000324991433630579502777997751903723492131647036277782091969881056851135034566104519661066075577687265476467544920218692689483273907211690867909689851082180395335719261195095231368560722674367408021198586874209854669463727305199981846373596686476454293762794834558665201314958965500484674171535594440731321175903015987757397570598350477337429585325936913036604102551054844398048379187459027088358140855756725639813078614649485872490232097674461611706075240852194537098992822637393787399408233934813675417092970751033063659569213470931653476210984472071946193157337763015068280668811290920586471619861735634531247719326211643661202154163409563687161303434549602495687876017242633496254065396999730452959024871655682150719847692378096189900174747342286741570334407193460914864059042866006333417486373887762728319882830221196910862919130915369795983693173900315342006732027448049139134533718454363290957839651157934734405163899223750031165304613135222506633981851016674508325508723436899286004034648713955274607736853759975181700702839754733138327971451306302759605514650656725616315036969123680310646181448145493784617903065458029540225902824082597814479816074816131480390725842971158812818173089119932181422001045756410640492864688295395952438596449284869022623370639103795941665069408929970385557486914396298755696341337173008304040426254752451327941350539169893761564574482176362378540423726126566568630166968866912454897982831039161308725332169946383149722234086627602838589572607064911523101208891713274521427284669828067098810819920889588669350312784246257199230432438633978907167129103794190362800026682812978545309685860992421024204114916203431429400842685817104913769660399436868659531370310501310649225957086032282384035546726224644572588931614312788057111023114074244681956376402195615588715284193135678209067278280523718288548657280252967697339052100615452012637163717810076512254564998991735932590101319935267657253135731394344634141098503969959618913638019615083041135475800764007539739879558044040204647446574210144929926665814746530841646240545893345625909133149404021265481419044811253537817870841854985604705724977667598427186071994971654186118004592615268192004579699868279955814404789019229192561736455613218922852751757750718847785706835009125283705355477198480964263049298218414456983339548088302570942753975786423608945468874012973942005992259859658780173707350418916555585516795833609118283642245671664949203620645296133134615329611166994272700402981366847144980380527415498089906638943869211270066206735992559260071604183484692185673462223531682243340375228186438581590851984182958925767419619404474889512478726558086998359316894628859709714690359297544545646298406322963124940401456496731468719091191939376646790045794766875204488954555948841286931582587864146930978853461564079853915495030566516503863451530120667612887129752145914071624045969590257625767070241828238097536226509286988363485571703799176282643659314120628347768384104053779174525058539119638354631037644364054913161231602092433524456383614355639686124288010900977406070671935760487261947081651046120305506852060836492159504178165133143486109868803271031410470069003402922915421546386338335204515987901862590562128576506034226981042356626741917938535797969846656627922262367115261029899353997038842678106730531999241071238775774118827127932664776474868960913816550815002472787125811906549211496739630660936118020509257494683277189580768798172690385799630533630092413575742684893163120855317774456166432462451162146849587066418201312331566878374989687665323236535206011646966518426485424738121140007098712201613702856736687974039598696431395594487821978803400891003765362600180161104804445757878371412645772416990948784579861592681349736312285726134769474335623155566832377510327639335087930427427536486223369609199938343308069438718141632374122229455155389925409441185678274835142479835973831615895452404414956257360118939749786315434275101553035580033512302498572331162429561035425143247147378087173130775611662965788611421910607111834087123008062568284030840279986565271920495896312286928292335676036022766641646905721886186083137289256693227680942008046874313253406103217256029921926072370684653080029412023659661998157520894713092294441557088412883160768356100625882915889864436576564919736280248836900140517396278782859799691522019624894881848377788680879734487923725104682691122653351758029133314759493927555251042941569675926933238469668699634124811495506521030393892181725009957858692270437233471725051239217361328343963942804574664536035680046535857468278929231398331458838371939716817028994410300797164898669782014989717874416906018555460506968549050631626913349972011649372065720159140908946612607302167810516428363022070632454073177239287924876264898221595409397598715065829501726046463314681982020578510703362086676387819629756862026867173300754028816192804127621612644144869520104678741521199702508751821922353788890449097597679859850132510877312266807336814222724074168914391844722702213479109845087054504159346033091741517832740189423359838284480961938803772590882122046959684510487229511940968190824005811407434022623287346641507313735195367536529155422646009910765970576239091378648406292439545004179770099017955538938180210679611089041165285730107063408152579910704607438444726172058887439672725126945225661799432229781946490670516406790919521364040515880116936078265450616435069734657904154770029764492921056216867826653594520078387397419877102764097680219771716932245539539415121467101099179295072881922788037778410221845537174954100829990886988753174681760426965468242893099184795486574250274568790751133620096093660753856130259510360010297359862109896152935136654224548712540089939890126673538457492498825195724175947987273852800192928727940132044984965549784786803336426083768340115021495739501781306857171310063118268108448561317979820693378941903960000152287753583435092006775373428755806555817441631597040854038276858249719389610424827608095863570671207524309183316251753900390310567700918248227518769649544677935720503032471936886222495306317682464070880442303667603117895503406784626868060399004563899874787187574156109736680540851717755986739455389855672518975562465651424022430055534506283261514855614330216308414427765222563530817985693949400941084874211289679478878758318334772355701997636273791614204468171554812980176886128519104638198430000541002994340916802786644967416529431616940187988786374919663692698446280927302844071468717294408979287604489394890365242162790877140141623909225873747081194251844091421444819313048656983041815376490570256548951677928866108482731132920770496691632547537805491480538107562971812133506734633791444373429490912592291296683196554718429188085085147084388287634777398626469346388448702692055294522314069441560286087051820484929902987818220029053810053343850518481334132868055339675013952662329968531596626127414876604316470947852807751708525256342862452315131097499538266045602709052012632050856193866833948846325627609114094959581219069174940160009653340460518668879513712650051514346540463342741983342150814440232475021380137084356225788177412485681793099665613100304536699471765686912435241848139432659991919170764044987315699875904945650619945404118155847744118939775281035229956951806175191313883262067036318445506495644504126807614216525205544975046505226840816152944706944244725062268964151194248161275125929299941811057751995899564683397162765221664812495793369278153474641184142466563812100544437739189350433199888224451757028416576404636971242936598424516226605630799071886237608855132180225362647121772296516162892392616522955933315025818274750647180008475323876832168466563465996040520121408170628927155117128008610567915776436195660232910113984253308993321413030040549763186097102444253540770118462032882025989426959435092638605414910243382292752886785935188616113641698329659616781610803464445886766617634390181865907085033128441462524777450394796953798754312764249679214485281969081562819983430026438925675481050786125070985832043305531244708929635742489881043861949733415392339541918148295458078923983337680208033501494650042148357384470155925304687757908576333308713207925731638183241157685781410496003692467330951100939582034933544205662056305000190876326445779351229804708209076771291023056397082541106704005661304163956641555796243994903920322169062728105784571562106280853207858132115265677427562006574707842860473788865265832811656063001413985371555074780252019865275229202942735067321435356370888605175305063820245985607719033579831816620445385320894761002758970947476200292167966806533554792205927882756582783993839949017347601297191418844228485151475448261918733166884461234461074964855514596720601907375714425485974781176959090997538584886071914619780108714770974680458252376315763225408597217905917048703974670696987047528645752066851748260290579966986071756837807468299362939576717249155335545006677347091307487786271019192692413174211328435431341728208033595653371565416268736692950815778236433532498659694146056465107831280351230327038560709845589241513199961010876708493200334608577547633795465474593262268992807627224456996046604472549689089801867572230040471877671070687380340509237821731837361680578304836294185918330090618285078575576374079377252314734850232862778152072767865417854286794333530775966790073735000820809973912375086606352451576647781243380750050734327146029523940968188445142265346203545122180496888169089582458000439668182963766799137807137088944018657679156820608845095384505577658599598831109393812177193086646228437740719556650143361931125429003041551130875442011152522338219814894105284075945565989277708891761650710153771293825565607076756030059467331028021604391292859962748108048698119221015942948653593264894216377931752711141891856736740058682874717933464786911240059664950960087541472533504563388040470944779080065982570150997727031660302619603260881995682351930201946364183753016022883285235381223608048237734942204689246711400943328075054482233396491008328465628101641609601026528331481565734063403924514333424196989424821026111543132406602983559445568730609494192959696114005946348921047552074287733717156272915189222753173611097600487472169202206630633172876426358729208418014122468320747193929165948466375173686066086676900090419364946384538916398621236575592485763894883583693726453825208290727261549185703177735147626648087609756006617079259122098798950737118292912085368254626103590241273684884192361808415816680655717299278404757951256578761453423088982091112620849218062667413346187243704763372348903857941744401030317238766989855815946910745218374928602009526955818355554887934141345996805815039072238191756703582374208380387246143756913971458761322877480010484077114877616098203535204450157873672904092216021016527363325346512609936037364688629786678377896791164781309439251838379416239147289541448207173617871528308083864436693389132083452155095939828592640394392351357909160736676713612877097078762353382320146731521778196429642298903821372313482219439808628249556505244389405665522371478039694754132554415837105480279153187996469482541338385182216784924712954907570637905041214890716085064378681508046266303834305577759642696258616127551329280785993765213986706443184815251161302581087309602367469639105776742004800992501675892779269945837769351332276772005510945651268394105424407896842316820772163911640481891136173289649468921239982051528999322192837355622593964909318886870912233450753916432774674818420675955061012396066271671193836297397068973936638994342256999609055685932480098491161052691809898860557875783970187962865477273261359221486936461672655700170834344156327752981613843717228494677775673973939310965393456601233477479253392387948184212266277690288202191629338981376770859624320657754718600310822457206591416573502923794508339752311597946704112500744243610859739112798607938774088019140058539390237514054198994576892283286093131755586091149266508604541933633419551178680943679166655915754377657926007650962421113836245338090300197514133568623669800505159791819532686993925041699676475750988555512322018499969586419243822043895409358311350255166989329011541287451825565242082802641336043586766457860996444142311612395052870029629038492738139305118238326678630473993261338106376130316474119437660132827028462320275370339985444370616461822952934052228868444951910688952984441837021937124646765735268067437166944857247385891071154763961449009579959993487414111660190233021750523399379898963625833455191834971205634040316174012958925156838392033064267323215927349953256691328129737672329023442557012303940947216998208406674464402841984672153733095087385818397231523455009439964028972584346077510417874383054381332024458217568717676773994597219504803173425971801561248083402765550940295286809227829785944368149098753702317967551372975127232411630355400405315695887659358481383129799501461877276433516003129342855307527502839287138827624452666675308426670839276494887650473689001106074569188841211147409281935364161427815588743752635707122851508763850796482619382142789159237506790975047291811712670344504613953503228115092762523026260831067404342074158642813457207342760328791192540491377725016065279156079191183996524158477866095979144061410319510983950620199625476683139564415711513436473950327565054416810603075301987592882272206605268280965901181165985119084949064888012528343104422957193614144304036496547112928967389200373964723018515846848625453395483791516618948282941823742454519824017921087419871221145522201648315288597439275284169978059787204029516449693455345823881219212410200268591161206898195999377865593088808109382099320455072589083378205455466798773234375412937454747449279651353095153690259612988059926625731140519451010521819811525073292717135315712856233606189576869617909037582074164307512706038117083800990417592127376738409638555069103788728138328362908227677532184543609051015037481062742113509840155053503839531702001093969491144869172043141490187107404632147853506062109147022640539434619068925632824261316560193630141156730209800239434948095731746048293907778568884289342465938506652615216661121294629548880466022773742988151553180619395520126233027925556575639045413211315629416515050154164075322018767484384316264298278597330803388714518827561557799129693551176987049416023896753428510034192399906970825546781020193645488455284753219108961875549013457859228964691981685745696477616302139101100078872844525888873289663403241017618775270397193858471609784251210012358653164307186445603928155232068341238863681480842952860192586978092291560318196919072408338421414298740995573523877622223771922547897769815736926877995656915563841698892028136846191131408686139714652741594251877775515298887708496025270904923699549181494204062752921151869333093222553577806765471094123672422427507927333702870012339689421642117858350246757048896833360129384341688658570341225481771453457527596689279683236417565604972339062836134678597409957977141845785767138441974338710753763987920984068418754534372839308873883718898746782748987601456341273500760206833689407943066329534876840786214519338921860162743634571157546034575212894378350603936196758216379955261096005171056472921580487426188811927540247785418303307250738980700484668446906820742932115915601509324027808737265004544163027095439635840243681965644241919554032211563237647049485140424318234154793339326058344818882675564987946127362505488446532500723279699007252624277639949416987170884334594308838678211543863415571885509322927357600745473343478181036908226980483630964563106982083487697793043107076289940954198472725853063619925634200758303112329836461813372229069640619262743062825502726512567401089424178907291807494273991437448320172252880519259945662051704219889894373323227566609011641337074280413186472311221009021671122287513995105681502540295779313434788090176132443804542707297491826888678722808889604884923187140720063734147953825412619194289509038715531462066256032952035688313192368130724149867213668437962265908750641490530367781210422930378625831170444343894766433549004086661538491303794079296645414170291684373152195976802510849836111784348359163811044277740732914064888868601203530811958863936028474368174729049350734432495348284913084321443415491205272615246263073781766571170420151272109325416660964143698217609181330712246189779103293868263719161363908028443177280281304978837360849468600877789168600138030489666755290259062177245526245535411939755514369708158433482040459896544527458119879492446778607679930445909193937525582188873568105684108490084883991463794358037623742151664863544380045547173246591507239863457810887651867879220573365329182338099136646183434926850621020869369696658079108029488549968243279335931195519394675060241374162925498556672566754058644436364761853951388659749116600017611753813306038894685624883688130979268605945751762320055321886380945248387964412066997577381116551706742536195939718456428591636054771228215078872814389322670408199654632401511413551729848812181330466854133212821620383737043992632291621251140190015356195075438239689169349817647645927417559868700490279043825134300271891880592052135630234661332430221060499958031739594883130973120707155027014475049387905502994945841073229524696798078254755297760300917607651285047005813095665120622603685771709150356951470259834038029917409718469288282751202909466416877346931176152952107048900645477281494854423519729444416632437829365362807732440714885879837527128020574569332678625038742325011848221666405141462252742487506608931446407885192560650069464503516508589043377292213818376328533313377032848568804287216517079469545797222398624690241192400454168254656228457730938685306556988922243373871403609946660201968286016011739171217632565270546048867611684402493412986735445723357566014959722249958834449972266885143604082041066433162234029783435559497175663060835383397434569990329381441639206470642794994890301705757539471663262843807038840541193963686524011578058640367979248448615480490153025388614916206900654193515032248105750233599597518434199080078421327191122421784800095311609559486029466520415275055041876587495447189624944361338399097804009207071020357280399371277793298698751577064544815692566722610344283320212025700864028589503363847575373845362289480796824865004542411914506515619487206084451319823790709588219967790698729908750460913466390225340229094407839291943589056844276282726065533371100558024094873422546988708283182343860266380021361163098139118813241672689231583114746851821569930725582549937304617441007530039381204565843997159660904232043963389342988594499097041270117554082673556737116945521998682629612395746971693761221760602600494389666877908639457010134886346137400246671530324727498159456369758803869460556458619115235598885829314007987362326838722080978367254442510739063884524801184912885473055432521351437839755810692437922983605600641207313607121996976598507289971621198730165059597559007053972149591721690804658904782987638680187058451578794469923712524232892573524403853992689529513950364913575928660606185967359093445557140520055151681678660422777646455544625375028873020906388350170031318304814578968093559794692867510933642306698137545233005160612330886080536876721213124599753731237371941751024872399238864471862859092657818419001752201019720815032623250325696764738619117889139548476191891604404520767511051411056188476006741562313555715014745573404321284341838562385091342541595207212388468177636318196500546088591988462071920796433668445665770558777600914575216691878009590020056161962096193610307718805654945011223658357613265734176077623153700927071119723404413335469246899960232005071437119754753740646127529001082782424035344966991641541400787695603809352981300663768220051460836224172226054146357420033983725595893103292244399776066855293878375625656613628872354697710130648779708575400377564762980521652958834692792349552738093141667208059166582579315752555961580370376781760628947032975062063065204150644114566349987797884365583087274164565327431182829238722249019054560446773284608029945235148240973059490362861585309691489028727730201372145069743133980325104270354852149624236099530488790267647788465673779824282986474256764949059389457932988040850090989399687481258236752615114407794037444042424658957405797509571620199418077673836805579644842084572133952759968352271670350631448135068474465829699217786798637101672884127976984999782462087698650124131669019396720656067125619848183674480381112560053441829988252197790609696979579609071122919271271023085469797460623997227787493782015969741145370928133485303414755296865416979042666057636663392908834116216257714927393084530371778268031096332339705302766860325341685766596009371298079342344004437335053432896704072635575361562796401650523738697985451402975496868311352094311497407609205470980956804338598700197001296115208170139682439334763466118530352514769163858088068446149650824857026232638007368949536917476607045021714153673917726118851301003149415976733313638388811922398515615204679807553501811447655744200616247346473744908202316743229300021894545563666875750401271977167731073934220928843584501881135777945217739105385005797121333261852213086577867577793866031822039864511387997421391659570475285774889581164566476009455354288344321437469189129514837044593244010652755997503366621005425789209280268282027348998628204594478124423002223121834209437238969401098686037540848730873418911849381938034988454816308465999427423342741159160327410863150250680563047383683663273784640282487443939707341166372436962434056243479573088510853094902969011405418584219379359884626830781388492290309659788124860727688520474066812747309124588925376417082935097981454907642219003723626789148970768321135097849341642146490830704889356892456618642057073862934191408423654181099684121911381927767590701415662860343691481614911201705615271437478739107314891453993951309872820631920810134472033346002165931234964433317259271333900170475054662265588581267377395163645300601129210571925622053165159774730920460795824417984719413914463315536544216235501713672929481616964932669932853836782588724423846997154855307146437742131600685763401152057709587689101197695631235043233041998231388968103784897179694165065944394444726038719625523875739346173469041299585806609527296891705978111228230109297750817333254268189928773617781713064676913257666502930790068076136901346244693275647041763929974289999804819719628809323569188508323933948701111682397778688614706726080560767026579974031230759284519816837830842094361236211082351364780748664130501340845401507226871164399574766996429831836948367797500535893869493577006927176422838214811244688089822712543774140727357867695849435555604683967523791960473565248185082539135937121131194192424139057889734704890815904483619569746240055830460305407699879574007914729263120858815671061655311745762644111747618491470291242017577517606929252717456021606204292432446336460357002953439442784987842939587629782204910706879164198700161511800127103033327412423340380354800674079773658665845178702174747251438498117363608425433502388253626316145181022860672531247947328687589810711585896080677778592125606595882829231591912369230137054015609782119584005672649716013655171259110007768667920797904093167242426504101300724644227523573620897043207721316838221023218666498591700017740590721306825777374232666862373882712778051003939432000334677727126446958981388087233666364139889606057800026863065399623925319093129332863420335135668197144928942152198350917177012579343697370274854190688275180001152040478516013389712946192778213925620076272545944922348807732474569787043287961194080451178549463368974162083660693111283367768043300915091685078405385845153908251979957934133419492821515658377458286202160074766043663505703198309632863566576462511402192161129026043185844237106758898991156398021437082482984200630411849744829029320096244148697091132339582550472074491313134744665385382935012991352625230663685165018656956327530888771309595388626378817637271015448547193677259311359818570208245352092871179268294729218441204959040858867672133768022085462933685844114532976812076858624205464074800110959325120518025636921715356699303210647662825757531446672449799339579138711050971797831361867366310525030285068011147737360513531989980166558659446448773013451800168054870873156162528608692504032136652398471785050419607778490734297550943799621769677999628900490653974836137586366992763150146904513042456908195628417704015593597795014175851215290234366090532975579299104617311537550820791269485574578599819732261114437753080392929941630654180588715958655685334890030261832923087325855350870459163652723156010790849321938663648458608867013387970937876252166468367721804995975088473611330654317521392051138419446385307727601189822324263844227923484958927119829290380862392668248820228877853469299271305943835139441092666826266032843431366311663186805393046556611608850495322495833704754851574771922219224446144724375411019961882775598222095211042013007355154307813236774841492516428371739910344368130379047017214940967541157116671791080063032694471128979885582964989544631675635908007746262720448104162985775308260186036154151956438186824237578516366018461096866335565410905346346076157593573884561491262594143122890337564242673569646806079918680340316417466563421494521465822509839444349593181652539930827021167657021038131820707727602973694423561239556505536830956695895475283240007091438572157832696876238502097075883281418730140668005349831067278604204756416640028459189565870448267930055091918894714365976593701079189217244671650342143842007086758556641880153361458653635118726508250469186642523641429779054363222250138280603420719557042880128937569910884296171029911486350988937852165599288305198073218614939011594241243120759921913562359450527275366613093743462533013046422621003642826216716688672345766805879642333907719476078349078553550508637691183447123554883402330528124972982938978872259322409412058860033962736220506002489270449775681272524136488161148993088533061275752465394071782521358303694046318212815916359595904875711365886683880864655328342123393734845632530545629268150791403250083831902381908326455441936438635302481258278389386085712895193048259692662044061665431297704852230039809215852923289828641028784238355793973452248880339442972106644329225897242909901048908878058311266374889292208432337261112513369937546957128993543640314281510345339323345737487477829494567059525617175178686233968773318634690192117859689146266052613353351363970073529513508983671882493138374558421564348510157815949172003172586551102093936093307134827377373066253351086917279071620027701024842462018522619799087105208423966004098419243945691622360152653458391248384460650642858672047710062431593319760603489311458311806488154268117922332732132646885694670571312771415519366586510477304088950793790555426967840420889094363193100964725690836609205034718835244822154554321323532719331450540310670786820833408058404816318315187743153986877849352483067328109674825784844470136405000266845072883241723448122403289967877500021972389581154036100561476701871457584910175677579077290049746195710049946746290693154417089858363288197158746193311949712198018030114919482384058851108438491012335805393394433850415654163173502581862396064352941844368375321625507337054780458011069694683910501162130853169976649678773848984582734889087327453963454287460144899784306259727826407571223032977499660800451044834492445554000325454476851892161629173192822706700037618248819975744707004128033800620542063441292882243908313753959056934493422401852864891384539217968311845987054379351448662353032392548071813740079761434296535893309938542812064631084503986087464503722589124884817839280333141004757794864059277504352154834850494427373108777365602233711603114231698047386340963683813102593972192608115495504959814422317769309677503496312415603829885604380534563872785269933501194900919282816756563592399497898827342257073642001617450140470060004418659823481286278511107238887260624008959260316421576327529186789372984896583922591414549593003914313890128583102784685365979909931815167176315898284477720577390497186769996905812525124436141363980140413709897239331543950418703438718231292622297309608507214143561341311472601646154045026981793778947655818009755509948393252875614391269790788256490556998822770713171234732050801130785827080212558642734045205148167165789985342260884020405959104066489388913882572405218503205643234614117337181589431059666655556317434271954329047722654840300026484611291201824789452695060774196627122519027338560390297396180167631794715253346348131551696467881291082542683208458546144804634388823306042334020659742334414247839753318769547680357081570511841176008186705142830920138805444922957595032597850540221024172872168278611893976380131462882130506989499416129237391080917180737116253612549514911800609353602722617317875349900439146235928652020036095032194775222127145427706809785744981059167336809044451898318691501386284328593461940520205490100987771299821210967279983270596243539218972637322623611252908551687601820820483978822047500822575191467278494232447546873890048548019110267844258790963741112224008608252216617355255836611532434106571642644110572335164195308559755947247297490251266461050586353387201968421401967009312861638930223552717883719332041944356991431513420835255846021479357779926745516238754065234392910583375819568131050908388999293461722159752378903228937122465615747480512083600485942379338246549064495855767820963397457805782733656364901503631190003581634834174153375825597683369618916469230679697232031835170345380799309298844945942285263729053412085126162988849495742830088161547677045995416331141267824789753138356829871241304284747231124036930697697052783202837639019539297018357499431314614943774419919637131451927445056141931639112219535405644912021783377620335183421418961473606295854028058542735591447800122996583078117112763946622944107610019099440581479923566719608545248417657890466070656192632743351712185676356736084114320225853471028250327725913101248630426613209211289055688318410195448631736406220773384028332062667426113124825296913311097400247832375008454074104943799104190993077494297731446351443541989830988634004299158862490205115523181727305564570790951326841487914206935665195034742188697914129177501868045831265137753560988315859497634983057572968860610901136163724965380371205013007669918126522360430347573574325113423846076384788629850194539450068908104003163627406335083500638537931236528740709937814073754885911326008044107060904572441704625876773719688090355264690121203254660954044796641622789229662379656460231668819987030204467971118440613030660556082456441918178816378149025750721259048917955922120285147433758474641100604349704922920614241860342212629105039022728863797659513856478883970698378470467889551751629475313350999681446242002412756869950362680464637309768213331016101321770316813520757925946963707475112956771676198114262313435079866481445319499206982789080026851995464052507890176732609930516298643449371987348521278930866589189648992782858376579450128402258288673576752350879981735945260814646520592217067259693945880439236507927901687710519384171497579441639835231313421333819443163906242914707917157895793133637071273143328963998966718839282863645528611923950736342546575661595234774107652691032857316674098857642204494705572743904362618355632525780921986302107431114575486456343848431952099506370693026150138042641660552883543612251564551130476981594906494483438386390156009402289678547462964262217152241281850892226835289935213166326504252367219821153252895834036972373557647357142959916879741444806704447558571948089425867814980497502481714235774830639223985735754022900475027759781897090376450012987330654625431879176363768990285129647856161571030904755698314038454021517276367782895179669935440206943768371587464631067829691259969089575948449270063746605726015602448211471171966670504045609934730671878103928603357510153539657391198444815862420785805417100493267636793896203090776508869395381530853063651199926299070833520003319940519090994216768183929259539322013902946379807855112881692363629452545086074020496060920991568942212448214187260092018862528893505567907781710132664866026521398019611726145588129946767778957433937064985902324148640172565976586862299065747461183155396537223494971697612998664358430521232643027875687535982006463835885886647886661370825636857290326746331582043142425966680133675631847212552704105394733574738245317463595647191284535264271129840458237727573331637743092857446492350978908910404873023565982268105680086777182360116617041356843286457953530761233948838198612892134136226284445463246299562242320264165506628723796858867916402094095690171759527099207119549346513962682453388115138227866371570883794813483796565306079721317709068369619659128918107710437416923931742112331843003900113833990008347848280629037341484157408427680819433349557800753178001209682070649095885012001954982703151453296218576724402612808987459728468438042425517847030410467519460904131328982300481737335944720419563701923979947063182473662075349608112869491860417730632770711704067200770855954205472877550755398926905936930990981169899783608695139341986440008729258327399280896031456874576338666729484612596156637917507203419810285384428859179546992386759927594924301216842179034755930328009891084570893528106199668068539431381797771981095797575702786970868579110240492059660823986472419267259038655074588078920386900766714006553775319681293059320524578377920264415354528541473433831459268626451733031807580942726821054952626097684312477997384349928793102309592969060872086640687611529150665768712192847924337750498924057307475074435900083218513870803998792614315544417222190224085156534304144563350774501900652402757020700465906375857047564666244147229246427708838961588310938698276210633385720552410407376922499015083141324323515790039031330889067836004909736631230764776588221162503861343514902704873050392125780901421100100897167901415533245967700416242925417346116745251576914094169932905254860685575100370000028421420087267851810260602753024646811293766888418811374066169692274105121483931410134626926936653969277945750900527853065494861030330964520083460372865794995335124898482122748947151830153869334776804643334290835465630553893965296231172709744291712568844167923267090435515786134744342165415858194351889164750192214769187305350033653247480915538466695765098278839940846575041440647609650328944015450984265097078925945226983892732489707529551920390076059084809680777636084031067559458690525332156207262132091875100329303311045286191184338097038976709949940363693253739458075592177674109839972314038422366446347115282356978369425140968697320728910322060589788799720489359855970475977371089049935583388335126904000381726912765749625534324499984758226571796726564901208440609418915454609731225793107752245883357049179471355718266532109320278733562041596772892827977236300269435839871773600839164447990744440112923264955163125170501970609202763446989340598020275725219682917156761043359514072035648133787274903071861815300514812263179574422390847961531779895623448394195328147403397260758232275419091261659901188007598863560185043031702519280556039370730031941424611258898295763158592484663848461511353463956059429296742146724857911229175140616053912074718169347683184095827711620083139888368307780453664923706688807077319982423590406729469815148409499834151410369896196733684605494929833818594166598088942365784932092489307904024193675901885116773911781650155167599271668961254790684674950807603728585521475398939396781705395455766774439379675314599168252984550747373316734372901177932484117392642676353847078686678182858485492035778714105017735063399304230597275628120343867249354568848177292427331449240030484941275396070747361778795841809342121832372819105998816319258433117720070538344412049857233651428137537874952360458885981371246416965389549979613458335737166149594133636250040202260226376570636916475036543079453619730046998965348921387309335083613973887754066305629575556895900739583706286803995442367757043804303500544756182183324794224984705319457730591616559749560328237543572570422272425616490346926868393406970546435925991402489221338551305012151068122017855956847464173438883473874852747746768649368604832602435943796534037768387732820925640023173696354016928313240284167506452836588404746456256259383356358817734936460175389376475509718693720752197059074720809417347029886960835895459683470775316096741477895081191870568999188638641691419300965457408559051029813565874806516410565629083665231737383090848689525669011040407350174984913672590248562458188189824009743089967270171029914483061182238972469480018487878685653383731945895948887683019277289249904856040668521172749816367057646799443557702349964329196599297076750279676156025865892026712692529094824362144335086062694153620233269412337630826386520755745769330159424961282410110495672058145145756704576016529623582529181030250485437615110529616192736557262968115408021931834117489251792878301219447227019690003193975452659455322356081884387424436021081508495768937383578889934299506966295954065221188417091267198381856161835799581846439560909466377529500147768076033645252448148359378900774374804020951442129216748710126621881732894756414748945484477474872673172373887933220588321650734331818808881028414391610365369074252722464733923914844520800401921477926985511975683126425386347427714432316692706321379732024079553405074193904214109849801694703856920411783112792750425408229773932444319590803053087744961573574098605306539012853342398382021678717753216088266324044930587658047538686905571668569765065669227628187301020542588123649022604722131306515349509693604830015019358559556706778537394273559065163548855340540268970422652358558720847179829253369304631955997811342122008192549292075672052559138689126038375804209231426522026045704915495026521947156300041992454745821343817296853244703401400544340594553238040750713474634982744925594206805833688737076798778204935707052138687395161134339723897080538598927808694594888335033817122938761915883595734194344790739449790598040631510860050384775685408041279768021913623672181289587771191550480847101752846600494281926899857855323662021183089030082793607863519378743204310448804724955014357383989848072769641612238023593791519370067224010311700284027126901137760054584842327544468174557635166502369541584623718758313882382336721470453329087188465760296602580018836072170172043070698202497140088208863979310605114400551559368876396734039050600234046916690490726390372688651086731867702623164816927089900393602815125247210407439981169583916622174314301518371847674388215089920291571084764581050176796331279598021061313332937583039964043127489430016026933727193479635053441762031448745612822644864610622233470895573331059462234467287986978922617365509356160530713832135155853538432215183563690822957602700913662520291410755417807113207779699010987236512326445673274435010850038025069099923914660228754759096750037877722441942503852128215141748559997064270186851168217277437608778501774330229971167817492048878830209518101072671613158777076945880091526095580736167782029158791172932648544068647573470184079058471961974681395778158589340856265185321932996671504143424753415301674644511426371223370711062681197369777696097936976811309214250504613341186710681569939875480238513898995002912521479319590618590317823121037610523831801403379139536256191518313010628279261751498201107245435134788019746588697532374806140782263359078726261132456414571187751399436345515358816804117684271188445160652165749267140971476128070419768925991389306066469146385980288771759755896734433137200075731384479447784128236082007047753461044304675684096866567859031212621191779564713511984307238807522863594863240410237145877535365098880570280605776535686213918738472291005440872017804734286380942373965209086843333485733812876093855443452056366057375400598108064591525843619617726425935979021076041717800460200686524564520677978947296233971080420209854312130235501425300752467615231803795791171995621059707431578685432117826824762656461879512052099819972983086762382464932271793793854380453427049241088726118564026888400574927763052112902979967764850970237510097996802939861017376065946624400662650158396625130712423576319833764327946273145773529998914126184634494686768125834545920390010532569470890962477342149278844193841430372384084053456673336562064673612095566373845673351679867622434002967331107591630662657894348577982636840472330488738925955926522289885642512360713486070643878828386293335973131536927575146460020560542930402700858915792253426065970610529696789875146797882677504787940019209728460365634930571637953633646003033561299315999719418778210417263109423659929691067540017019595958042587653639413821234058248650424689590398948673030657496077623114245602175720547738031498803275047975137070333932426321537180160782121005844164434543931348629031556038528195459996677382468334361765615987898878669382246978149976922087690250900957273211882346692637379420067659454999584945914069691109794727845149123558473413604823797911953789699987393825797115186480324002855260599221685120735388994692865042011468352819442390138473726611912088270016300956534642306175784420773599718940122152908504671729484720529291554610124565239222864030972843995258965768224702535509692397805436903381440810226668407191479407590647243920370796429293228641514300390146935242549058032528599546869954129362207570787416697863980469009153325914629366601077198413987759687711916065082781222245933813715854825367414765451787344548425162795804822383795524546297018588715016092821010958762977665688272861188026150049465953072337113408211107232464739486715242326608413081384476219831653073564450338132117761612689421187056588431176295646461007788195600094710447677070216827746694620664107464448707877475006696067988941339186414520837663179049915563411881957885511209158366954798798049161918237354475752482625084249939439755428706470879647826493048827730854641792366546109607861688781231995075263539759746118524061473548822673889478748322751355526959178315339605962920640187502268490901813449345489919584882559032622451415930136455117437650556311698854750053074073667713988192669799912375812137155873754126349735074596495064770836634593347856590683725048760339911694405090303499126091492128669598648812622672683938839504489003015013952643575916760793220760996363605798659959139492185570753433874257420722117086397332236345071863045491821549802854525320875399551716975410957784058437832462431784870028392203979423393495253260150372201703588493037650649386901876757143071262651208918733709116123258728742942974009960095770430786819040498785376859699601762136011714638215623242334483895076608768710683102525336843090261827586809490916273410533304063149039593413322678459318830180808886276887691916316020238820183896918605552714867288594130946186099505326675808038503913690774339827149387115295552170968176720282634063287567903042207751710152863741363289940235001828041018833165682179248960546432062321314843615420120851389735526832037017120667089803075274942524095223010187874578067674526604890856940806312940294057807975713605228536705290235711252823202848562168256774265888991297521483714749423850216195067973696011672886101762504786716908774373932068988398149908399637156202820017692026090260358356699702526486338163916442872353495162573108333624806843762222870120810525268774995456327843328568300458986457323631600622583537144681922326440990401922033294028429736543450497169614272794097205047327148815153506581495112311633916111335655271847035527134942289469496691644781578520576685514783602887645977194079477655983910247969273760949565632013397707524037637883191304468718442496205629829477327799583158666627188624427234910795749334939311653194805853879903044061851879180680190990384751648837892745897782916510281392024492758876895167465835155402806257883202312859547890802648608626436575838977958425592223451810289594561599187096846101300141940810586639150021461481389167855666755986825730318284510694825687696302271942255794066346637744081967073307811273737282728310430769258750204798480922068977178647334417589046951382481290530716835291557147488064879261163874489531766939907299174317285412289207617391987742001970733162203226290599965095242884943223185123997729840039050310530987307103640881335637233469253267378128447477977823910155142497339758402381710664010241078958690501981093644887466999221056450475431091392857279069618710657526681982695176273748806248214052739979578739948196741219757472089071633547555529416080731858327741160986610819993988646664951576880037776601557016207727127252326280635740839589054591465861758176264165406010048691065327008168813470028779677714791612607199472981655491894828025723260060185576476382094883651196840831512855119518488333324485762591906738486412330407778948240911838737912887342375662979166008891318972153720364035055713284885475585209837867438600052442348242127846661704456591466320496568316823517649720423667782505462431217082905823378433941608613301004901834902240480514506185185086720605797466270436903393224481786877446705358120235970732444355532555866164839925522364526314514284833082614282005171718715248624119276667644819847107318346351627944278783786949185862552802306011724049190345647321403733528988720573325234052486995437389939285640069173962244135159987811997677430075167168105211109949810891780014058926462564296047281527527399678638956267479205965982364666509729200214873486448916618659854291317242437774409970415015434427175666354074239763682836317434779959648347923991459749168518454859590659456416388217638246071722943450843834604649402860297530812505931849333762022264917611488293751179637197183473368577026165535269753836767206542711810917180406743233190193898283084936401046217372542493578372452859706392981192057204556715044408880719947064184076952164909727006938929048571450302364162851636089191081013313547915299366787701814637570132863677616628597555772649187440114458968800494528404701069023020913346531936725939506251397306840435511506112563471068996305505740338536850118717837857169940469721699511626897498624218951596895896895950305487322354984483688956499487096851256931930716671092497732438129979946474462773049141722014977049070131870801108156932049178236583844536515266525524018852193397240885006380538563384985234912262150200456970306091777392537744023954657688368221325886398450159262222402873810611083247045690858812483609552626046528477808959850654234954820725498056902465659510115144636875243258152863685262213693424483466406516117629596021097358989921047201942581314946488194814854621833794258413188985196554331066722648003861268634276419862419217322812782319309372727153299855404176206384020687255346642352661065835219137961259452662867693488561646898806342336142647615106519430393940074303047215546085231699531602815414889030240880102385253133223471601089154826270413637832097200467350688068652172424051662190294878644682088298403956708141966395293014446469350586329246247161681813956215332049793292342844184686338765615186397532473021032686087740990124446566130791741603298330729079227726253944483283448270316562604040403012342792229345017427203603722976389792742967055744144021380811379786466317169327915948180988132915058912322457229699519745987333827940604988407887795613780476234659459660122186319694433740109176058170500048708041076448325264815879721109520087240202370313530943864601412700189211584143956914067297629437077724409825021643900512900495691704218187560240223900259538583497407635578333865251730654672050901086587308819872257085797309113232794918604881558276845703954518277927714849030964399305070229805736976659040307799994291291235471436853670615853737952516481782079826026455999487709288496532298901852394519609730406024453104089758995890878734642279566011891632195758090039323281582506572787300917460917015763124029165092534515187342671845792013752970648362862236890384005132883409487803558025179526231663411935611235475777343407416810294779663062327131927332140323645780008506244563713545833817740173808615323324500066118181984935957810340172023833365579993067222982326061322165937524513423722804036368681143555936624391960835065661315937737175849086296931955848344963652997928143294253406872746730293177732851803449569672476199704598004711785791323774046613480524710056228236912317464538028419812775396107271673023285802242989075027246126480548382573509413403168249761228328616432224609339188013084313202058945430861524941245973095800632575950401353821460669862859581722474183151741465682868517666219479831504017636248006693736960402338986891837442582960199237644257361545109721605031453053704121030198712729661960125889424298174352662805209556122870685492257223157982680508214530213252306221506058444092883146842264114040442385393771457972139592895819752696833155752982349808811592976479039736266671198711125654340596632518745523806511569998917240398281770262881605550731273415746399697388363741920744076656216945944084685090270305043761587008756573601415446490700351536459732644592988305827809924112785377474168239318268354757465424890565463907831375167336221386730572173819883953804849581171731502809072869859358601855342446546418288016746745917712190923826994027468755828591071577867416763210065627890664599295571021474764778582670766556925094221205626426148007183476406891859990106330367797396483011857244499591608311789298744764965484748163148779733887908368743888724297495738262021483561333338985666708667824994097043250133414828767925965829608895410726145588905303210870323248042500499922582389694651029296273587686010979438426644686780649524563713131421131067659523496990958187031126973307194677743418228442648503534195898871291161523576770453297643220616295618240644600912324867787207722267209543880731892371134388154629033395803203947799607937580534073735133226782077184648797971132366100732999882529704645525928472411335573167807920032367939172212548390519390652873187189905833587168037550194337133103599296871620514568348759818266622906423662085985970538961172270213771016629424660789661230918125764303371707271944054214337628785919333973790654894027022212289693726288346654681490945070033815319877230738021847955273192868623120944726922508878792342661771111702993672463364722239536526204979642666480208711018561776678726666030542056969504660723020405076516513415891490869781480651861271585061803736290591201688986807338677910682198393809521369839851965316194276996059425748224218453471789601471060954597988040108326484062590099943590754926030343181064036825383829723585076992289402135889907717320828241375498602453925449483485082505224398963551990805953928645888936160365150751270016205322929250257672937501519666511067300528129611651169041419184597740052724585393785382774144403286279815585495080242581261692471545434454624968308101542658631183670601867819880383420529886622661326140946820011063540978609726523954225019005268856791528910657854820588659235567694114007190586358569688689781583031385074282114048412806994809886771566909288955608658171184237415198797977783824996938193895114199868287565034651782059689974811784882289530102718065433672256342594054520914500655089449871359457484536953588112633830592185471074733520712447839538560264129075331517896206077600063443104550001870990417370004870224718242954347514142750305471157660730379526499119057338886595298228307680503928507846680495015282648827293102058416552601809186756362125523895879237686163210227317334371777588147413407390483086129948690649253092962227443333052422872290704097160767465018523664906171966313692492037228075562848079480519127185431230887395318497790834531694715713199730373118285699402732309289190872669973077423320147493834639117414847520268711072802036508525602172942365661419799307356055542751396927714446561153246341412975017705228224760380790222748960279707420406617089330416888084023082841000629004962119458895338980129918593406919025106970586315018380235146014502632155701037069680578570429772293648857043145673477298114666305398185512973528631422295987150179957469996695701542501306894016552932940860686798546227777702472382588811220058389637046560524264750088677472412524250642656763613356864306055255265839241612026678514324907537176553807577268420627520694571448433729251038169706627665687961650196045070429228420525567260034840319313783867001478646355372135365874639363435225358886135575007592062293529709469391891786360470195068273708021314569893081456503860108685690841965009046198966060355720512713086498563554404713000579608117825933906093144173560500651502118028077277094140011285018897895379158470640282005721701676489924782750504906279847944529792062434996120763418963579055783880493866787677020423924037648713635170832784892345887698961705396160079821421941987214654362596691184938446872706012717929034719227342762062726369242723663755344578966952380978914270115411134394495377769314126142926573882278294872426069496800938269777065565143700947263900203463901531334212653871534287702779975916898733794752023361516475403178948672418413445877548944509344121368584771267917322580714002745662330582200741403777708129980215159478390995797353222102804140605676737750253147542482657284486024570999050542371410434897475910408324386583344240013424181987669986407068060603683269000327673107144849366488945912380942185698621296976755871543362195466339776583001699937362488831568646813900771467014307234534335372939418175838320272214494186496435116820314714476133625385418926989180326204136894719522461589067326028717282536558101493704469176177724030983750003584367380137308583936756469773048095557404372558525424579450719338583059261087487048787374754843165404887109346029007398170272269498618004163242198619826184436555950734195562737386672500257262205953387458784693982850586198864883033228464099351088434549810803632890946648138721035207647257612401321730117600383102632553976240384188962850196307671334429453156192992421499889542348609888665802702508904284430324208646386242700367366772844051350149934523889298406197130841833633844434669820514932113529897414514298651619614089834094116759991475361050535330012869068954461996853552225889750609518208509694340302996168332560421997942197759640881157469981888821308933802017981940339333771274052930551618046455866037339365806389686715846374915249220563795111181276534191667425426699129484679043968722955958698909404424982753184561710538557064140510181751900151809760233938007340483010111868394718875005804320795439795161140912547247109734029183645254029737646213458375395049055675902496615431402308954223828473831187400744794677503670175393533144670876757820167931225793768338196665647130722515197760512834621102226643601240570753732562890073907803538473688415223514510393080058895195225277096723189370262968053927338609118200462569621305442086863818746695463992082977829590998326967848040881744629847022173406699836829739826347021925624685803012525377764621830366569098914101745578607235724689832514598974730720767406058045551886155686919333367072879410840725161922225270507572500759158651445365134927326122705416295788358926670121131508916075106720119371659441074841089085236770844341750856110114113022108198235062864080165227884776110727652945878775752553465764304774997223566170708776779111156408972808081140965973255689614494756329075083570815592391208894721863913810292099022480750798534808562465534842937593011614926620663592509733699032590300926359257446230661732960058239887792578615993620525907016574063561296146708002578481728455481326133902771007017189651375266829630245961346118078238600973038244852792360735674227955772339062206932261019075926187618162295181546720017999999442226957904649820509339308039523234008088418545465968150708553361602639015086096702084980646474639648126574973324506484680482887898864818525756935236010328850986717082151079097761759372372340671893855862376970916005538827454204735424071878016327574539068383656313079780641849949322319926129935419987983010540775013347038079145321745092458537351793895718708689004538648070234912947546644403156306934651467336676649794628335731967248997497135987104250455788224269206436266218367613364262744970421482994889196779404545449792169095958817593330241938929454118489261377275473088296075587618620301948810954595059790857280897014951651323073674538309792797451048578201646171742821146566349923152881625780314009908990482769957795699367150288541143065044295619978646784750268642803309300310229958864552866183642755431302483252629899515453810017848633661235815752475000254593688975329152021345645560816048271842597666511391560049080732332691411790277204608467996301844579621396006064935779355186549206337735204176728367186653638834174730370213028164254193697443852358571511894770348110607446090440573527729414820699457640146834773948119644520528084705891043168264229985632242422449194909925221194704541540932421129948807612780965912513427813604007144561197133964464853619084204225885724110983486584753857536755451346172888821385761260942697223395048672238743111676497944831199644037218029166055733575950374303294694437296097577726696306982485376637982916857525322805620971481092168046064084028350789013625705753858281984559197124507444666233873960089331908151889193874153543478307606425155345059941868683091904305800303371122999014278218877859374291136808122791216851374042257053916844949972474463019587745482283693992773988988471212027913831902611735318248163227936086961903285176791734500264612838642186476326953919513053341593079700275720353201696843508327877943587638624037247419760726382594029005368414661396546480217870713729620585429157832213038999443770876938013248232253487577908219178581441226223681694035810526093281134005956939836524688617841468964408834836477647675377377122146122613806977264905350191677597893924080758615554068371976007062209811735867103177040550161803836160101366202154447359247272816911637642841297139205660906716915063112523000737483373838910334927168182364697996432599471561136552847172256674078276481749800505640953628002387501261258217613447523453557405665095513708538402691970598635273864299981814614596628140213975943331623709260783741370668876734735567180334185515127750051590308741916606631722471774670148832607720219955418508997609714167864721630635445394119807685113921975259489464536189278021177127141909580185939260181674007054065853463494450870045534610781965509739221317524502044164651202331541724266432352787570988799551680031417641430509162962163858990160912077142142347818557143134243883106148974224998463115239004161664465816197007518687080134176157026065367146501808085826464362529039359007052640424028361075609814974906761347934287032975917938170147478518489658676485155189322977317456116172230927631994946169024210579974571659555487890424350613231592515937472735392669411339486493594332473523333144300720352114803862686819159595803010255520423482118786392669639550294882590394579799461611110240311423843391575125143210500536387887831809536148365151043852651782254290686867915580277880416271300416869846499835970531380594639632301851517585175282261786549505648932305955435639999796895397397534174657973198874961763368923217022745443890203736055713875266998638719152884144987154818744388067627519427370740105388323291770146045592178699275073495261537520184667310610705685653324489716940997857141850093335383345200338232252145004718223010278691342564754450820731952734822110829749913034095607393119948841941324119481678012374651395997796221290150176715488206009537016590814200801938345561339543606822565945945888848493819751261865402375158537682176101345558752214308777013242512031099831352025865022959424091910564287373172860738864886816408152126130791988658852238407900161662606478438771504347561286891895018681910656533981130558801140380111120264692569934311116205737910560568528953745691714338693076705456259554256700075802229487520928378237233536834666356272349726764277700099648257738079558380918730870281987203148135949672185701180321094500624971857601807503664413724651861775882243243138121624983548904558495605074845977192925710268580858750935619378754955728163667273941057716180898545166072005624541253319664643543743581346329883526045554208180134107849999653076867896097313785195043448175346109111843299837002183308259073341455860314141104200907462132609407372915598245954043576685667036581604840968543666838616760431433273308282843869664939133379985596840696337662253200141624801951020217373120575387206511893483524271618193154468759302951219996319318000928146929569765579533416853708359854539765545578174971811933124435190556581109751993886672557066298902759734412629790042518903140441622630779865815485372784126151772054520682352887317060493123830671733147790441154308493948336091384651661757009071305524576900090304339523188919997254422355048468546180067296449129794657637404822481966005435059916414728420505832830612144111080740423319480352995885989997112180592358829066409017363729976355715298067344367502923456334889642907347930277615197051856377802251206202434619753968436721954222051713059589594010854055839273077862165554118349636779362125174223162257945093665258340165000123548785744485720612508439509498205590816301667277280623239217872778190287616875201272175426591408501188818165600143987768213612331222552557080080473176414143775053703387087011251049914270827226131062276762257535833318958130483092402244185994345297807959735773989466110848841505047095146193595532326484688876531240460132494957006724475406506536681931870096089198729683616191040664338857211894430441519373637592665267656573757391450208706026687379420249902742610201666796204278035832485236821263212799816374863097479024496366696512811761221679038708850477229777457702686471880293235953432755448833999798087929325928805748788459707544584291581790835274403011766826710683535138847463493430056549364513420928133619836742056417349413008037123695873643685394378425936403967162997924797237486175947483904221010681507843324604566440717516747758826399907126894696791656880747420385275102910099578555099787068928547085508656343797363665796615776997825994446515595217600679217727174236063247448564557380300147345941798694759408237269756052272786169121581898872604091944364440893687912596630840438439958448517566380214647943506743571124978567856011859714143843936330663129169037116622610089468448133466502303316010182471446826916459732201080590178366188398062812615082067835543767314312236438661973911703602320158430833769446504380767571908938834137882257114543059780600290232593548853430121615862986166215444512547553412450985551328164816205681118771973799292966219110280114220587737447535519966220261278030342311184948541868229891086684387593173038957279509160924288157764948073948912579667405710005744004509135525805893864905486284309161481168653762439942791284912923613278385947079039412694653063081193486604147050044866260569165876078405658008826685691176639299624652688489062332160146019336055231768781783020203713654772005033200158423508513468042044759010424022058132310707259795889262963380080045132826336369754113901128070517677881707322243298224254906642318632705280729733185165359075508372627183632744727127250633472398127974192151091250486723603694195486794311696064095267426993586958033376204707144831189559794896552922715170697258724112316850076437793674969862395469012276175274090465041891763578059108237396650149762241866555628921483713262110439335017911823901963104336085540692340634511587158469616901818593546354661164174838794613866999032923548060129944236234584350310802456365710512804217481066862292272500662704243950899663284902798614651087435788869563966742684647590355137946010315885980457410365793308635742581810991446198601740560730518672355044072996807367435877225234055009246471816628311735446309320859354973029587093342466284624879399611395647895740750386239618742822826751241334010587203503074741759273471222559741784797285586865304961772107328780795803501014660904562820045145301001891093433649328387721031774359056283525295459396842926461434979315451348949985704242310429449978026766894761933531634728578488604767050827853990172162175736220315761627292356152352593298799669686651286310502124227272854046945127207118952337825283261655792694815506690899727845778983714303759251052595702450016343822623742423734846701855103582469173518648444356905171221129275838126395968741640939279601688106789530411017785517133565550564504398165346360076628355059779847530861708621873259044731188911615337854203268242824679890310269775020603054331822273976496425502417207129760543313540852506002984047180365628464158660659350645335462439043057429044205351181424926537596049822350508187973667116479199998893765852830927148287719266578958940932180395274305734330807481792020147247213893169899551125615951726015538439093883614622605271604938460011020797658292780593616019326757656784068568087633243173975874005859696121864634479945517710049277963404084395204076260014529727734966490072142861145851680558856086883435206158809454249570352873034843290187175367701295957405127921347245046068360026006735979136108143027843316269451578859433231429967119664202532846789415159016580338079573323315043849013175687208368093579059377188650265884244785980738556322661101346476636140943920492344369506260511457544581262026269145359376624047901767425898434197901160986515545226305379759690781911831550645818977602018418919311222575401111623448121370170848979803352833798206613706335506731324131373661090546240255653261403395959322801041850256295025803782646379784259783559026405245328133723868831840146989236089440917068717929475123907759039624305229309975843846670934939843390819421858321320630507302272373544816626387138146548946345307860318048076634389426907254131327191912148538094322689707690564478442413893159570358248768175651394010291247142619578200045509665856734635580737025717680401736197715581892869789497353823131240143219351841650912534458325582689167879756790957428821541936753900411723623076462334424903704889587974893069120080751150309651982965568628556611775784576759186148169588234006838771567758812966271899882791822738417521710083558853543193051175356519246913163619560557509437732383670106382123283192655607910816051390608373589438506078077649240040185408207453666910301369902758648065298756644969685158822753825734166104462020291535895553598224098507601651995937844035407381708619517335513260682034295966512571668682387045203016824236014382139980609934006874372697773339800493217956976454225866364566753363475983117601525556696271980555316437279650049406611851222999059737780075814320242826127797686351812621347275441083095735817088807875257498046873497197032767622080951625650665304996433304565814668195591457899823064259284127997991403951170156141204958686147615358793400692739910908023315460304943858886858833419738730901779878326639231945007400181395636791906441185993270202824896361071763508452584412053727858532003172603200138050949822021078450956098645781511059108414991854605601338168873532902508666923820614044063289430893117951150547193162490082568160726444307714538851680690295294555655955572287123685167678372003245722746593733527289186105237914737299513707063884209007989947140177773805683085987691715278913081959456791035772000493538058060056063074810415140525163335639100395545702439757435322504409354368861724443033108533385339778333508805145825493760505847258656669825543260103986733629972432624254014865495763650691314693227534426422655836669222882748500697860858102167032934074632915315863583990774650382279281416386813715144332199984157970251737845167594096020803809735468580240664970625129840898426872262099639398591057010431255778563116860800866559226039633012661608041114839087254490109660334971717925914443653332116135490362974535400290754900916102625997290438710798986802779765715568716238578544748063483915698362898434522426041187771906668216191737118925473040963903676414709011431914611046469415852805442853742281777153291583404509361644530524941463755674772920836176387149108721952694890501939591505183163328975346156451674099327250894412789702819247056138789307835835517839614546083409965211100842356229933305844728203392790731266642150810689991467336902634229435640477210722304713652764916981876268159871715043547008241513239019864577978740921058974698636917127888420626156867148835290703419926037751537259073796614578796312973023414739276526643403393169628304524781631819554637276233654877074352718347440772437728333825552826737024746393532313248835122151647658048640500312339868242900475881551923550724569927549262090398101355786042286308370724436160230562502919889604703231426337506472730098853156230544855556636472505833757452955161711871242496972624553109111910399318583725147566014907178262543000595209817803243639712634323553220418028783890184460067748145330721583910602016994994043019188417759288583428165992013353999661066091967088013159415241135266956465588174182055686694190707989221085877705665980989487180643198709365584855486663958150235489937530389074688757294890950420847210972139982903039207343766864011564453607126484559655800274646075025275942435172503714066165095370878938384376948054025433177413756386944555108309350322011895403863595641822111309855535871574708943589603208374390195938889020671073122511280499691103179001477223439549412175282438026608656148335135714614714092534158948954453731151747694134093544258500979602477988309438299860788317805697116678522734220047829927451762957478584396235841227715650422936537760457748778344475015768269609675333539689654058820436518192140944247099550743741942031162107827646526377240493937729442549219858934876429014320706905264517110895284491440155391263301267501195076350496152670316797141170325502877526610701055439724993078880548829539226206270844276456866666356278993260873418100341934767674304523201557272958391012055320329895019335680524897774775046951432001899870363123229524077318582656056009097917041350341704008531558144745550576552770886333270938533513681682870526929634672507060827063793131052162918608671315224418668045335685424816596243863566746513221013080709671055410119966804518607646127586826080064956754860366482033553459628499551770709367672239347774685408374369758060066368224246038456147312527126880660148201328889951405001452352403899394722709485377720493572209536499685903254869116940251941359890095935095930740022593473080235814431285311719508903817271279547097258779996978978865165924409324038146656914267908701360925819774042681187346938107824156798930576929328285454483879702809536157936687365348808204987054816656318342807678793970627138625692770608935661272751252331654187820756824224588896207509424556410657058309823552103262788450822708138450380546113701169234753680531266762028703487737731762768929193502390623756952276217004224996395421309398916088265014610114671077647808207799633656981988734590633362741604359617286533517343520401128921622310347621353393428153716467551051800014747962281729217751881450360001368954113921240953371318762875642882352178244008655043406252132216939858296342026318672878054581999336527384493259229894979460484526670733589817648556786252766102115147579602550480984147803378637957714676950417871839521091291739614369910386935562305160834046938886058276923513515081229809180147561594645216676329939868321571500056356584560424460091417832823583721707402415554411998218872215154302903374358993413543957396509868511025840610516486894217971934568764077712156884904619227480969439715862110809563254897165450296629590655133360992512184384671087899543456166302470514430228657425463401313933031566020633259200936449939618589182804759497340560826846907682363119331659992807632722910490482343962118070345463796047284782297634875994208251122232636860742312107400492015446656466205208281008993206402493108349588118721951859021430639878570236247060031200070415496971398041025051381170438310502412440306596496506293608406685636951211375686804745477410907429430611371461284759490048732770909854647256810894137992557790068415458949151916143479432693687021954625026422220617159167047425911226552000181452313256778009739071551578293300274048934105579700828924319629710736600116039955878770251499005556739141241809034998956977391250092373158583210305639128813705207972336884136730472529939273743202624060547670469719158882666327629090306413032352337701390493988800644644429641816211059202672073803739519426075020605006874702291091552144268403803656082012707358953882124136044906199715115252423778833871339260035430550748418340767898029344847372895884473710089701933118677848204749501459251803601710974918467715998483052537753194813729480811571739828677857894525579228453969597328282993275378688456124579752723715281910095761601971648063298563912489856864764726013290322611767953034926916594449627984748210939631356045897313678840402734457552550844124275697454844401329265352093400384959703041207607928102444716266845187112708279733012182631348444917681015004613892535916153709537224357706897393147163939100046787555726974990294936233298562688219666415809794518424693234210294535937990175056951477485664149680885792931983212250627198708218868394236634343956230684535492649631371835322032203044574531177234923345079383930936052065241627130982640507313407782554524714997101009602477642084561028458480557476831457744974689585830942997700816604181242141270921190819501147801830035968277503235273534113018473899912416457916572750111122719662522112230015858681950974359861367826337120652302971907821974541630111051583324014129181926320277256408195294020589869131541763279409898157569847700331676146109469111842000091739414031974480668067829572609594933290480056386662984129433994399836402831423942538215941002565745922137992310870287660008487171813413539177354767523761662979032121504117667343501630412938781484168725173925468330395597525723179801299257941199879367531108293002378486565111190666069780780699744102646910673058369671824290154597729969796027523694921042075617805623128314896873457209507187625858501678815330301323607576213281206744129902120855689243329279418706390276493386629229967265495302183498316908685821038679983415133780054791152176211907936599181704244543900195002248463570826084386142828502528151353798605525296901397624585702411713079365678350152256117598869906819671375150688719406984171266893235113935590095513572828933393747252476452938569707892609737924901128776239965230366343080529650847665218567358114394134862737915629112658908407646306578560962104606508073884511025226253950665767158393048887786568955639639022794644796785022214643898988938366917586663576272303505801652250055087554569715742622841506171623656894001287552476851330159410935107499556079491345312916049863812812617648555446917775526642512220546676961756321281609616557955180583172650340769243783622977728548705933623440248656020299624194389241878315051926771661847915646374214238051066154775553160482057912935390437571125480682860646302833440072119330142862067087939942244934524296928854209474389986277030330278015646792979294766987227963996724455074031610958173060757881125932381914031214153788463692751691217049237175105609235100739826279205670330087527133039674211726191744188409083246886110939691740170046100398705707325687977239554944740121032763183390850834031190307682949555046299650894826923933223200582347666207407629917237375870870380717572250243011193120717687540302251381640177797575325687738756598282961653043748764945223404105819860838867504873557475088459537040982444364214368253454791565183834562893754319685502118414526914146190503177593706728349944315025309411252264074122022778247499001065489676875525878980237307944072727634130371730831485960646638946961877614321833993732292193077454074737198236192996745209258883066932116239138199543406615186841263088743480718769578253294771612598303047337883231820572043080588978897482633362509248796825410910695323114126301319594334129502900107725983272939277711265861704625048100278862576843671106044408208008825015903079504657869061423195676011848081576770086735720048629128389577151164442257170115537665241563312366260332086799945951261955902582915796458417546508485031326091111904226250561435472081609057812852950822897173985026121687566632429574497676847306165774821336501144269173477217530337829515349625826878704602189111254741881316248622014661799265840083759021524386232557556451500884613620587379952719894666440911457932208016753269468586422051086307949723953247262721470658828097187955538863757177879290605344776177694395161290275926889999386432932947823737973860677782434148760744394015200130154925462765193317181535903887275728265942918073735018635472884575746877951519167308091278543885074758316811631049333322052450590728292702842264884691735858990634837472530695014980766854098528822179032624713330785472630832194223794924631354885762070698120331313453765775486214611924711536471036084405251976147303793734497760553019746990280494725376667659962150780602846797929726958878673409761831288549044118467036441568452730971788226466527020301430994217152517545678984770817249868102241710861138557653744596237621032013839140161827747041728051692808126189178145422003923123026013905180158454556851414026257410349724133321090069091217483054450284747981079043692784964164777057269892303372683094286379666251052895615529875474336959303318733828330936142552200746770177610209330798440058757156087461845755994415043842538735960553509159800710672952625556965729210880718286836050983123220599462430597642869260108279462584342898423327779948682425491130490106445693000315753261622030253926248695599810767097141781078984416894523654102717790919149153492293484474513631647548328772214930707477844938075754176488359133083421333073566261797819526545926032229197495843638244441277391485244304852783947287505330401169987536917429324400214576950854228655384980029690715356492808701046823090686255461830471176846970939110483914939361296486135308529357454089027095729002646725597663119801765121234884791399187724097436987567299662399575111603747357706179098416693579752617470593154539128092951131012655682061765347637808941692051012060750769633638020495652198408146967539025108562588110062675921336775599104072473140213350438084363120046510868217104860259632664527766334003139012029442562713803927849360080797060079730660625132263938161885072957459579300477394322495909163891636167793426150944450789895720080684858362759789732116949866363857465498709940030072393631309394384639507043452949830656881581280389367650231489444138728913257053949665769745019468259968861528085472956226554029969037077766470913803860080836167131061419653581242269326135631403139051024755577870247109862973163153499882167324430247149454210012317804635485892513956781586350321966035030097105718360638820620925743068150505942393334564639434476563173154643240560236602535864077066777286520601642710237668720699894534238301337567773621913908296201300784504755571886739368480082783896133502788164488008368086190286027410381397478728206868725853517960120967476343335825673284675577198508650697907345552451141379453309414495760317700324566858087121203354054030251068301682827282675698680873799132600756398209288169255483981759617368137815540911501555043790038016723621167107041793185056311457542356756669497532594042070293850738034616694925049213081268034294384636843335352966109255425160092579321559414849889695239267575994357539752914271496172354373727492957177443813274260187672885348083300812827484120841691585524871592473940254582385441643120140542663306565317856546979275158699915650536216804721791525838461797838506712398454394315996319230098825257480450840335849943889752364882698127844150711437268580131178674137132200653026061757158163694192519863436270704131731651692479709134361606208074628475283052726374451228367132423691575888221070550497887801476521120067510696556618070965350909984154336930866865561298952175650982739298939727917929259299667974455989407433975247633516513133370695678449952761585831100635733327181500325724017964687921907463149497541144960208586378843038428035747970852038539013658703517623519479781830758102350744891810276939284145030054438778877596975359600723756899210870272007384522012446730308534349410138912287187784445836092132268258280901124848424942959172521679358613875814039359791285023388148104029829598880679678299943218008277628844861653360217119121119804723608769649427960945171977975677267656919452571868980622689455287302161967767993734472433045724847721499301136943707996185340365599817690346963206200480803002490500476904348109410556377541329314642904342423653432037029910701545613969501130472887969376288382990408594621844037129422048631691891958209681032717260176749697088612635028624344652802838744743469832513187719733531878618054708158782386069213996759856091330399288471184112412338536082320052571643635703344313395892666375697363215599035837409659812371297842271740542999355647767581976379336552051730438488322755622043309457214671455106387768222590251577890344101933689626084443308566640845018276476073972137936018826004308715153853502201708034886351312770628535747493466078702552035606192839442201992430960759083067956936276652219232545420580845071835100238186828468688657185378543214528455982373965922857900737650486492233177113778815330394828249674243508572403091951969175193946911680664641901326074846220347731927246901600933724481863758767095512485411557897301279463672066750630896177757527704488573816436792104885643955257366301858196866162345788734090802064945825256333589069439450212572710509783688007287861321524895053738857698660972694626678510588911541570356269505191205049163220837915293813115204929067384036639481212896606100747213932967962895950776933482979012872931954490816826956574525861836856251993503879752606337979699293715983819508847669483779267176189129789501554378135726891677975469139820876153687956636619927530543566267588684814575814474236583392039129190529166379578252557467641225512887274248505548533157521547912026759184629157078504647087512611481104710778910690823888396147351348275784644981398519030712427341160892129407040240741841351131772246020100831374424056335632440016185071224254220328704529676339837526259503896639072603427871389634781124896453250786630269601289714785790488338250801176444859861812392230091767833155590610428366767119180715639550206447930800104269316740529107070165607840240499697353887441479285445259071658807955936819494584042830817660517419101425743713276341689819957339907831199174150298225253152497749487298243032926507148217323636416150227890879124157127035535182344266191064310579084562502086258591369371691306270273286208461931214386939709286033516450184564985334868029933706206310996766449754412609130205430524463652577536436047246279879198789318051894609830631885500216021760518975086377814028625662677976869357201648573139491470710011979241513913309812496960631723049706990719415100928975934497475487034813772576564999327103165903404698058805755261494807866271503927648286900055065686082864039796548918421500423334405011681736149366597477648336580352101098628367853516446564421538658417844740810760976038956240899002611041358688503830712178229700227131878610292197400254633834594359935889851283022884224456099077619650220545545232108091041131169868661855732405303483277769760537822984233711695338906946095909178262758286272353334896804857682757378418033450090754426548136679613954920147496053552410467155743047149859606760150501869048781492406550742480056838897578633601139342391977887922030099357806719910689839831489637247579863774201473790060458321189402308523147795021182541228955898149256483956558377439982659592935392317430068367613499044174855365612958962449279858952304234369401613490734484927302792978257897884637873992242038382750770172724647054919476417665523059971456929108857130256557750909007969291873356536699590047826491429831597047791657916603721882928104670696343516234857597930704441194131045076950740403998375733330398320228061977496059347740741646700162412689770289405925579306365628403241979529181570265122146423717439808379294850198477470791227446987061730107827033652107206879909421294654419531129733348320932643545264414452592062336594788182347961820823299685967085172732516430329495872034628431954908671396613196902365510315617440665455566886366747463461651685540048220044315825435384301421553164664024764984227984291085584700193117984200183664028897084762135126862693219007482351572485117674825104325392940542392298267576452698404739982519388619283672147661617934543571191749603193091669204536376073416099366131892834268032087618021188767727590544163235393598892486608026252432352597324020439989785500469851303348752929322419562911019686114904480510304327072710090390837236670752459521589435293932347387143694074039438954962829807750229037767566796042147974756519720328045511190481263378461347774628986394114238891752798726519312241067620669459613583411682311181501577870164532474630559641079903115285446653375399481984149327215280929111202942766425252787786345981038809624140035871239369834414529606026884083547276361815000294803998311724142204081502093761803536112879068123255921130439102365634582738737034010187381363923535227561418712021733483360443913875392320022699009354511755387450283513987990228506321317619682306509720517738093971584395920111114339282062075477175463746680951449892722204915868641644886959351187914977521062234310214397108249610043096361651242399078021515402954566019069656475722038205282658703341718594928814214868161091662538949805081692064616939718265533296447451786271181045857050197678037515819541215767401627283906214527579539946051681633429969442566121262422956350712700471060355972415766831982947347132479571110333590370613003688844169246811500792092736059084711121816222409752975341356224401563793385283632979668208321431366128670439099646909131522392995999087839570093938869694273023257211511859701546767250511082850186845403917536916662464490059354261902228004183803367426205126909284447980269932873071421549893922523132814474807707572613997602928448259747321377959762223107618313980147253568870518295334612833158764351567482799612462196130684919018639331698154414133669764869510545327724869452309362703400130459592622454066316985913029425127153605998979747689092510743615085737170652457169090232825458104576383360657800665482566930818347512244359653998734575989833274334222192325265234657026127979765101471297599388601988467318120544292792305216915399443413909839087232094274505666844061084958754512500219879026759852688099565532294735204438556902515742645874192348395511839371505630424795062434328204007966737300217735050031684293028405308374151426962986438812824846828220335555295076033603536979812666502953993757155974195661213082591236708674182018417889133299932316952437815799240712811777445197737938719028441666409967559186211110625498384133711620811744059660343150280451429349665784015268298653683775578691335336368651692018326279334082888584956920490007157290261791118698156741166948520673546229092356639643603561796696052187308313160713219367322237348599456505548697261515543506400762081334476605029497207770045625857945212597656398147707118341353946891879781701715912321088726852142526535789074795027004699347266437021558083081567680884426643283460372155870850089511464465443178733785591111878714108883766772753458477430194757449007109975158855938942600586990487586053193524627743854764419188080458055859471850640144790272184188227787709162902288436874332150621878122479115323780168921815125450335184763303182488238528599150900272901265294981377877673687072021036161429806111136745896256511269013589636858942625525234626897473063505782090403846822524675223753151603760748260552009002689888549734880615046465203948953613251488532289395749797494399794277006282821710176606146498040562100054389391040135053484116896053298941567205338061357220145312693236084033198675000625394087791774619852441087980211346848070438626279696340653622408832889236222894189218159467807358070765881086763878348147404780526661869778027054047626912853367612588324785819249285414630248688608747553750042349930006502446979003935375401131695597280481161119362014012346580306226267739001634920547054333280070994831950046642299144996904367602225626166662128606149886979493768998703880778759145660038128520110257047037998332241023840062909513054497054936211489890543372113225375966441076290903431016663430492650025243406838551051331241689230757169527442285504196881856351315862618269641885971556437866264664618901330515609061531333372936214852111857101193757961881216939790450794427370750977787682193605447750906967448292024006941044414628183743802054473376219254016404788508102657280420565069985630486524521366849811346925298315241514631123117803926481175572125393323064831885292074153478262878894304638733790058872090131555271300428275522299448345825359491808710654783346889719506744412879913581740970481187623147278368625675644869848177753835369289523754297797416567155636849089474855463314703831953842817660552011332279431809858172927479638404800605649033058001780508221753183304808188529585267291299669453601948481686166746505438191422178612945296609181823455333005707453085100894869156029249007942715149438982387142647991880222314807195999077250775890650986260856766175724017194377925681323542893551121500624401706165522312311390772666893956022706078459953123595085071639216524623517105626674961789088867152154341494862808630030133178808059753812676483128178110431950792332135329093915619787003715810672432536453359158597727321989765205571426520887513100091037199248929498848088617670264210035551503874609193249895791709211445805866634856747023550294460057025214142848544596134118205546859732290014796380801381482113350583676421399134918283416998277961120596039976700903185674937377560126121907663585335585323130654636754806152801123235341144007827845618458286904331606815852652929451331356388168361120661800173372156616509099207196237657049821841965609961755990106717375010117928859819568828716175613429587209827318737143014209929608965228337477784453898779723026573381372337092085754719594380423874938955940847457539269133672591252859495334188317116912655713704731138565429418485040817710237639656340904461292857639837247310672611418200721745005789789451697333822959679201178428962435922785774415895856371667587150662792765773967663512755616046602232578952276618605706809180523307967912912637733393336859342895874452565061253500562869954234063314767477978389401028087402843055512731020228407792464338544116891570951053603039235062010988214147001127997993268381872044736255115697483369613651420678087262096110725576486387749535968627835914089879786878497615183620708502963450005988712295552483213185987674760010179504181287857742174276116942689845475420971440490553840667316155113166092168902635163871911813942199943927254089399719689708469853101208605069095203823957737406800114175918203800002853502872575376131411982520242630090379790552468232278852310293207336895538552037361722212484689390564539865855002517571745167150428098761056347636719268748392886536560644404814289768218645159314424745429001865349377939429270537473441212580417028337281486483406974515637285707598835811486749242773696851346156131365649886869108514800802639691389031355484433360010126744489486881303779163269199861573331510474707320814804900280828359274916025171011776802500906797292374963025914570986665385355320359336710500630618849808187910762097229998484277440772219999664821185149646646757680938820937984431917544064093364028815829159048878577941829846946577858436638105519524685854226474157176711457275145296643846635236256929966682992255804139133870358406860878595726297715791409287503802177657318152396452720862453688243306310340473804068798988761530751074124125852471993153223639505943439826817656911036309285819162620726063962495271430553934896571246643212749322878775894462921548122660645945038989850170142344995532949193485532210411912169920428300392542669610332805470451187437216010574101510974489920044906969054865383264828732724286440876001515984669327419093556795005518982351245305613761240221925995349590056432022763180021652774099180197401012511017839829112561681856197343987523357958908139679656014702114752870185156652517015343905809775504182328300602100821701023888462967182210376899776030494618360645834361559942261959589968228373476256927063799317857166881147462281877285090262106729855131325032469936783729675450813540553499479953231806261934723658045722899772951965711298340652305203612949259272811146248256222753362767100222432670228010306756095923367158410745300059551581012648901956657522384666695995906770683757171985493850744923299648031605404922145097134580067574887525343362867099938644203636299103473952850839161064175410643460492575735842922463868195571429887562996736421794546275665359314222221888187435634720288432980574679636270297802135384263363653272127724151772805077718922358158456146246981749583549215121288862886617885761036098848050281588518366010500137959793420186595426253650908023867823444147836366462831251641870376204995033763975660682140820166927174465414373349076463536855306721525749184866191953500176291704780218533720279916520108666606518025586528473369818650132585646279585052091751698937912078094219848556359992141355825368630449002313822398454989760889507469086981219955511034472859513997468490181968165905052698780036758753639247188585776686492854816552023788562462002638990119859496754705042544228596498138787492588618525075922535864393255472209240925975573823519603960375885194226159339628862794969415933523110302852748119492053887803274023849182588210804985012417652513018656360771926656437397863624355500059426030605215393899676811190956396298358149806672699073803735916294753539767507197206394085510090400116561186528568863077279393753869821246482121795477465541725383811673157437228635755966632546510443786653994800888914248500546113178048803063914188164351786162751502024219213885317205108664592911976382958701480777025559302924886316665960021841986014995181447777083200281507581498079391035943514584725209157400806885274203135678849652403561165006984627409091470728982488387447299939954471761658445800772623018428757749894611521081572373980817673767494194277156763457627388957121651591282320991774548547375926628936514596692534185676227141108408653358748070881509804647162327478932141510994498325286259256928447003762008706070919834289247950463359051437713118273134322826320729523169927808287893386585354125919656322579428185499955338682699011364100825374240034970102888434701736310318295982573697016670181086263345268792585232114149056156845686244326912974260011451279889049305487549502534520379621648008262903402266977330016839186659820965310877913863644301163583211969622595424076247562827802104070182584563282499209946730470262838407301437893667486527066854339702856484476098768108334758579292248789908573468196579677193762620506237464085909578942408477748386595386730600687258264891802100064629155417261355963430682257381257604799438245276467827366481717924171104307356977103584503672562580822108385537141409954726383611959059381539926793433176784021209443921092279477087437554947463184717820663814695334026951432716925278380602218993109899528213168997262113864453401444687293459885560211972650624674058989071232548748627073988448922644139608865348832505043184736530038943021790000511769847728768477734148358503104779237474885756683763069850618462221976864974608381378068613319012825223914118636148971691165668886441891322014739034739134000434309251118518322494788573315052397669440985771473457102117745575332799847317730490641120150454665897182373515630803051681418184679212556316191916687018938659785587225195712545653377013763390752256767088739761933795770444753543028458100973316679388999140635786069868051972186824796841979094622836907660048830177033434372064646147281275486834684988403187376624460869258866585919210549412274585097226407124735724268309449062399220509589891547526826629079542972604034196930284127617092582195132936166311227654828830134976693601112968595779282351038720412719186685205124323259766588380701541606303827856131043708820447388151427090718955691064771150093422408203274897958230563670932576513003557144044494320373163099273027068362815263311138111683797941002871678552149319574266689818682061779959526213581737608141052292046528205098926583978374773202691122019253426079235408605647139075565845582123827986522422630946549383854653389608602684743447285721508010262135835412411297186858815158251179201536584861687834522200339805915677464739624547906306580216880054515107308380314385946220693912542856631549775906282687142710635637241754620745611518502714944873725441975361320213249434576408370668338458656764648471709947018689137003300203207819925711633721247382648446780384446416209131534256835158276720561319135373248008124291282160325065663794453471656516871431691823720598522394090453902394599489708090789454791993515832873536745820899604262635223701448569747533936220240934102324073350968808052625622830077446990190710083535472668034267851287105005433907266432377623694955323559970020556187636287269499437321678466213471261521461636400734826668473722364863966385346220351360240381949884618607811765052825329427648310151311847567596579255028018001073878633789546208673932921703926350041543050776834619258513095964209734692369078451278059854986445910253645046596303122315801444868900644535151578408224866879208751866468215139384578010534932803164776626690469981500039240815486707895957721232713026264016327579152622610529050156031071559145930774439321341477639221993020497672624921288552196327491083191364068449241229106715386580340347279109910236000607258933511084435146799684653590200934175373959218114703352573381520723683917707534416215734414484156658890253240036332361083708209258727132755741568334361497846193511569840597568325364782426519315448035502358103217647724877840456421186995336106826944087283798443291697038986121463440230287135321817646359266414864638833292782915260090336165127464920904254049649714744540984928938575279464758967377336661770062837495000765571927445373010196160580236350015067429642847555051145889665303719768410169803885806154412141551706144097077252106531792785776352233539011642704147722464533898026168480741784472771917754688581736322631729079961602103452193130466003824562668532218040514412866486980273539128343366604706918080558543314583946676245510487222280650277978683758836791429659055720257942805260159857527980560956873794575257528931445753028248434805633803530069880696223957417111624036546571372029487295963697967030490263157214225219445854409998099361460841174667597220233421987593381551435035318445440071643112036976615447380410606117893331509130376473120127342175632899466349517794091965630675251264265839219412829532888399377525149475387946787743038106370841074966729406987412100950313917769208218231809052535696387630791491261208857262385180467164890680209319525601512169469864562007458849168412630791645940392332052194442336437955782371260745683689382139986531666388040579920260402478203531104170960171647102272349448787662957742641156632430795450761405050257213370458882218239292197014534732386360035007046969071517382412921418484194787681032517531882806289337142595220535287491095748487874061426931414536005284927506697307870844299105248672182912943493566947481880756959716896110263583497585304643990369475826507339622568622568605273335310294948457964632769998919365858178122249550390511680575520415199226557129579868758319587722210498388431784785808427624387640908929972844623704980738642260303193569197512379151264415283489857982662843644533009494134560548924353072142847648476057439079512052753392502759904140354206995065677111892408363334794220415834637553836981866130187481774777926865776023697066338432736504182631141024719293181232224347013993298024783891106477904730939334219125471473102027539336608094024455372312702559028402909788110112723593467738581979085208431400352302058690450134287767520802025200569672618793050667285161307604645279748554713032585428262691660381376584064571403486826788510365066943483048726382871179396740161542939263895685506068736795638657589368768529343215674153125709372195772455772305557488960753153876177057568671523339164939290723454537458340440066222593437606302049623973665586869775948252170018468251012829210503206343075416880795134940063470203288012873230776999416881092885678716205334951322756618163094139714263365215341877506437668936791224990325359300166951477857693561022817205281928876255837951060670987460537801543466783601359285364449158088488761572428518216393726008767112639786791205130319820305398816619829679700193231848439196295987617847402783733903993581001769569559354867209680259525747589085748505324931915082966478251283375067692305989284333040831631503586480955143648322102650515750439304804916888283992437405499143778358441766874781324910210905628610898212486927167725206614032542803522355429577288939079039429982567062628023702541688497788913772159413824804619549754190993263300597775792741258412182181327076237497167617660709544371370195160751613595983309006343372049647970126831384965682654697361564832393142268734927151292320606589187697481256215841753632765230679966071232983701681696515640569035159342280768444133824290701688349220974634035431943570285228743514861902834296633496808600745356630898967656953558347447472336890762533538800369111667033555342380295989226178485154304236833462447738840801655088449096748920501014840900454939595330811514804799647152606094356383080349621369380853719507760535597842558249996166377037311015174747123616683143535008006393710607963995702125962998807613862595040775738668143300693714437642190414752936936581652921644114115570986370007439891823088348677224723282999080717422955260325822238617602664298916071167412958954161656877024656089505910337831015708208708557120789419093794761608226737899013408150005971391874189523581784051776513476209365876636864361517640331179902974324791387348102264987415123242653678036376246366993869984216062892832001344102733396049754398891928192177734344366158882761575390590026468141127458433769141286940485881590772855885479975741530621007050453084087157699081303801724833037362546117830056528627413529507260841487674193685632108732750168105090153685837319446910741927702111815314576995559424337626389016827829089078618354706718876037502790328878117574195010918493644305426819808663014197526759960116569269273103320413535526837549000615627342594610760919384179515058257157087724085243161025257257333511909299343997515805249302527536355307369637990158490563012733790754389082115016594150474977497025831771726847551605749352545308055117959326131537826547948388966352459732900105155164689470645701973842037229589713483413975523742882758347386813282645099292012992779426175048007436726298959925934285966242876422747317893965652279169229193600758233507073702259323292812796401304062627417893610355938491202798161599843126003979717627321371779106913695772691777641995507555268928708185381519610528667131952141367963640917447710379739285654547700639410698820769338191615466088214743521771211478664557677665413389632348508890697025485588909063458203318220080469829093734519444085696995624329443936668552356701862972704479151692017309222309022758237674570282403042368818340986847144785131572748468761479472460645390146293379759076913366619899323881296841581662060936034701400714197212399175611254492581851322302923425925541053968287703019857149104714829061409167992162926133431705915811710025557506224796448087849070267297723458003751573449700935924228573161793074574080816942094180276642726991773007530457494803248716585125196576320971766082894910745877309752923860647288973431843983659022779756610363196608276424108136129907673175302665177651392004580526369370814046259440342915707602463047608618036275470990350823161765576393465775078655489680347363812694579020706318625196430136317495070558019506221579888189569329429677503835263390862381701612332802368918242944052725382918912850799515803756445333438139507851627558567402171147191867119946245294158705468677810051892252016711793864650986977157765389561964459473706329564176140920582452051724783700798231055626706032873369911246232520879672671982935085649627371076678556737806596519474240146406343071097898866326562014664947584676595368615145820571661068665451509425140820480608271802874677780216471541778194917317084169556005172341893797879827163213409432323381824983064859826861819706192702570047116384786886704817175972290802706808674150223908991028217901124877516793766850461757646174466662602284164937845100916930478486717825284767644837644208742326814352704645708400605851690536990062221464460299514552386259194985323298717092095021345760017880781788050112104690093470444461282026854383305173397173782006420839571633598336186308651797982320172734817897005807593444102531368031824458613382329051686515615592539339748770792361964877962655697856841384910651148970943105682719805798248294771243334442168750834100678393872927854655112759272314357357236251872286593286550468112778015059565496269902861394662032431924456562784400002201399555356546104777944294150564742502513574752794222803696152658728605317526455705817945617648803551669802411911900045540487334441693582601201774774192393088282349204341803021682277312312977241784697682828516817030036714860347911450091702417021941938916794743333134365825590661542450778807561386830287628170682291527660170831455696732061764496110252067933776939733297940387647112881015044280840107354076368261855123254128539771019256895013925116657588765677769947739682816834389008223641763861210925253961507717441270571347230109008760185166260990338018300199051902446470988561655149146921556732508631305341059861734809430346568578262899523433235938039698001592555073955156845675950499760764763969610903056503153809788893688257903398498515272682362647020459755458118908271369486940847092934631674513398096804024463774178411077929761138885325717679467754697669886735433565127002096239098167499342213500101300765088406145711421564753499165100764450577845089448194405516477800490240343561328473126833714810245144880233603581459232929278388906752572720465928652777623875618070120546721293160041627459653532346498181684924867037618830916427567727014243879504860010838110648170352849068880357127797155190523679070799566334870758781663294936697436110251951062154739732215568808865315089733636920284348497089189567547445378780854108155669575449844550519712939737162323536403287040461531578135625869805088834914373215965187958863468734020835015853511150000845267360247331967146635146746094047245951287504450998516527122440363979891467259467486791451302522772717475274239156903133586827497727402602975781703461855774549112722184547644577312831966909376407973403109580500135964319130162026079858276974867363815712151009948571590657512867784116488320320518907801402169246409113915688045584288042054326485072009260772693728389005812302063382551147923772935079067070676203531657975699166855391130861412621703251460094172643419586831800670715279530808975973001523299767232928067483413119887805695679468027679098202981184002348064555281861051477278820383753248108880969662312528242613315665532827213655433465554354837651414004291899856389527998957686144987045242502835897189804730475574710570539954688908631710020082148452695744536676591257332125631392438384162086123060136885289383642493593354164379964536728051041685239735149302424185416508553358290706549387728912529564379045472630526545184479094585083275105305883603398405078968727505221286298397154455822316148893675691145726454028479298587476198209066683392985982910234179558419444248398584244985921240415230694774890898216217697685388377782490200828372688365008868142955514835610220496778578746619303292398073534463576927201705153402847711115544883565158557957981874953899893745258928969793804724143530500709754735845373045556695129797828906657007838451101562045614809152109198503371261333961381273038852329567364610585328658651922992704598039280356557157169983610891724560993014138416922579937389049990545861427585092535275703399885469962735087214659090047870385652164285358518101715279011404352289972479923785586375423793124585355452263677088448918181397623450155493690954531682924366617777250076319420130851037932890557110876090559438853743344436477611057308812557321669663536922011932414347913001977069609792486383727635669979877010018613960329271176657731304202346878135581084064187119859523771390035105100506852447947713597368264601515353323886450296076013904690421133410296116987205804392763624888855218718870195068387175392001504971180445104490022488787647930630086200751275798942165956686679347757610507353604050204460584709413825299181321359019650107909192753592079709295778149263051894890697193366850775143980218611008438033195459566256141447805566984446334400796736375546426285970729693827785612927223509420882917596935413403099145310267170266799811489586747168017961210384595561448077682475635157024911108891366546330006242228161270998460535101771687990166619702132651460719101835431177290799245528702132374919798617745308236160146606799303917717282541682031028258101913085440373559914760843241154275237494862654709306062062444427344323953512482314338149182736147605591720801907267229781326845827727966078340572660256808883084593366880106758060492393833120880070586559201963255458516505438543926552751984706927195641379521283685300771678909949132294493968430188807880274750345914108058919770891984579129909959831690439794586803068065510874199300056672898217733649649084214027368502252384403744444624820327436938117587906329952144515200071959258841760940928652971300230421999322115679515973938367693468387756847023157452442746987122860808543957147314047568553120301523156813155304682948188717922387594816969182349811238617711033096759511482836281908845071814548175099448733507510787485212797230518549116568323271562401355784659537629051078070050700487510409476370651601331525426584331225244139574908920466204499357186903541358529488786938318378383235976071011134810278748250648984818085243864370367817563198842169425958082172765389594811135204992089646610815302553321271930664293386558644673936722133941513951361012927669508050068639484231078539053287311094531298217360253772762827925863837066066510197371797263331303686091586292903642602101711219782703164612415039044674512600550952534791091993865711612868829248840841691031469918545551722287762381065824844234861680376538926958856850002730196332596738337758478109051081314933037162042504035678495857232156249612364409289488593295268155156227977052017694389770856962246545298748709765727463283730680909841285541269881958601101829104362123179316959759289601844582427791781508433839113553683153264884637676009251352454649074518330715765928825619591255815800472406343212830869068858240502567672490904307381744000610950151361521885549811811164065404021834937632182548826895827213573591094654059149594597358082417940732938116187785838979353679360949827869122095822026085416570554523475449566277572229610904246301965290269357093301916008833508330784768665928112673885084137897670403659050109928621546504219138016860734231833665737608490703398911075450848853500842784188321876138582643062981576687358598474246712861922304600189714059088716778717306667255701809568574120608243104161122794916626651554543271399858672728409594490434922050175444493317578052965952265129247055245356840636487446728913465808957379580478848829516643414717635236613459519647595430876709246819996653764501539853427118709545944896837853043450375548251146714426325100741012370569957594079530529113332897626352309962975743838238737372572561557785809466948672212675885917190643428139405139028550987096355629121568926818809707753808871290381834572557128062163355673783446295110432440702034123926292340015873078508241945317518460666957555471533618816390292832527008394592485261737182405713595074321233254969189751694249669498515836412926306747930000812509276762956969324391372873569140355799800174580527545617945420804817799376844645929386129847115784240166607347728813453463949924707354003765075416709495300408972149771638179824822066942943091600846494340411096266748098177057634358189224168729418233872826118834086061700682738751506643795539372166533750152522047469100036142618158819558447129677399593382209949017229685609142831896365018736489569484564417488583547678567164209992665936500640480467075426763842860034413407273581295876389199891062019349965690376665694596526196836126686556041457613255268032081933708061679369283710502979693893699226270782192954100560324991098460962743090926831254305003965119723730660926079779289244340597694624390464000014646811880663689750046113036367977998588794947212857888654482288113377680008915018780896927581100640285274633202406079243303421690127446794225606307384374661955114775807355160772832635203562476602004197261142517187865648781726383578594122944791580791619908296543885020786399851611104495417837028662842071744755516069459461730866060845310454264070992059278043919550312985615012769368792836235199677957067956669256565657016374223089652079776868919147440089644089343200505141864073342291637621172265595713743009209147418544078206161866098836668111486454172858903058484344150429378365960658948693224767794597168256072058535346759263779472408511501304012527796627246515760430885044269337128913437995740607069053629577229872152377555724403308868402484902702284554008312826312388565882162853395356047194851230212375953187129084992646013738147375963589853163261426107684303144073320236123676868654664242668292893389819701625458408215340700913128728545849743830204517150923248927071190357071131279000392883025557201925347183786202594021124502093337767915438543320207012570798286487764546356182164384643272148005986867155359003951677677053204301393328565885499999803273924751286236407149311103828591715773457724779331987140436918286261547220462842585241106536434694892811611852172206752288329318261496378741061988595227853631362123617736134089752239784633097547796432755089510829985372373105695701510407136202988840687450995382805202126697140718133076254575051457839690689270093343699499291845701064108474341830278429246378660662790255958619937103738167244597265022837075196001951510278729184965445789280258019418835719787573261243436161271112916635668745867038958760868478484178433250193324223660436718896979512849947065435032240078793429318680033711843321807756338411724325575052224252563748323111795985036953004426970641811977748452998978868511623641239876283532277304052665409984624432266924904226734698024803658618724082681389823026118823446575811579567134471764499111201677940431707330174506977128575267630409665518052544928573415015929137495019998537448336280598844765336720471773513331860551203298306357721048220908536773519563457900811012611790220520634990569141790971467563146836206329159742660407125012080481248365869858757127675635381365455396505044770689819313859866256184212121575420288063564165088688374393291137369680005698472682509110981418380482968236819582083064061756315816389052791425181890305014378458963742638211075715587135848018284525475333400472848769375615154760599183391816232900945830498206480844838164567342428185502462895951863407052241583721572231170216771401314244221872400631090535755070177615322899411010591961747898241846278270468485920086858023238039061494360803189367883984793454095762590253670819221681507295057462408541448660480374852046735434679771700077713940223794882014140871289126356999495875827644288699377174666280185182723084362815216461819971374342319531417843714711140000875145293527674744847256252339234855250151375258389692574815810954619388649021706912683209857988470616263680775931321402237844892061632684443893800042374177575353627752551979911023237411216877016198357571495590557166512912853370718282567568132887301301128058177796002121368361949507253960633237471403907421349130098832687454129883178132838624586743388819221952648086565008988559548118202414125367175399731386090754074231350014566120127848232572185306650349808875849860662255880356394801948434837919602928114627596358190893924503474484694719910489615081344834184711910363112209425364916980947120723911216001243850519985280862792198050925772603299705108527163746487876873425961747697880839478761611275640449892970728386130688855085924282394881535552648398724215008813100717277622742746179780543230944846987986339023985286726290975535637779196858364210006990626031503392017579262747381575442413165612833213262700469251641983513361553784384632712037519751525110151686189730906433692465615168991245949869340574471989711827066106798680884245271576157780679458166370557935489298198231444045541943979318189041330323682474219369484241542358979264773800150752626202739951183257307003201115503944689854269509599013848107336152609238908937206229052228326598710409098941738117796701645595867595127583327236165032055979981828625185625882677924104715485700246999733902266201688363484857005813966752593893346212826769122347892507415102344739983761430824726723667479621811649821291498003279436196177084695448435666474361481840102683148043649991574334425397481892846880709128092244329670279209105318719609541484512839080183870891507498021650037454247840966584616355417205444262682116290562678227889787262355989706153139375085222613145534018536953970518320308977104609752545134916566145114172150037181431504449578249952491445202030321889003105939700689887101109733658752086581562465033295491268013894260072587363871994783801018776237747008255061090599165300042546891095853812231761160595243957245824752637701867169160830285324724335742769218223182639023649093503216127617989906051948715464301176059055942076108456778546944282372085189403197792145510611159316667358702678074165675249800061817547183775164166230800277537328862523600672351216109509003787228326529825984317643309463171896733080987524560748641981491927965861222094993385754959041689349922595605108847376920902563060498910253391773842355208849034572973000110864355292051909556288963801087275121402599386410099563881726784213953176253148605389742093477932746190764773994085786461639992483690082386276992174891420029975399786395497738369338002044511504316095454921846014888255585813071552925611418383725855319279098883889299586501937191663447603337256227161369132360043890097714868197350175704612891912930294193449901028495468171847964186219277146742139885021987110971757938047319419060644263089825664628713961865586779123389611542698938576816744568034244791549498315914827863704017204173759911948740272316001600200824145536865151982583431030710144441785657615313149591830346491211971825465763202939815930726014119919888151334442129416396741992923268080888120961674012592561547048519930791950304006252270628599838325751195416698076860241533774744246764604339444620406356145949250582905107788020187291567880130841779617784172268958303121576290836610445651178085720907274690553136106488552351878115681513976632499451391742309143087787907800082453760797952042326117204563550947352039658226363874056374358315597056148277160340848602971953371428253772360182869986635019872723744729397101152174644213411298026379758402986091304671105300458907120478921703947138989136457210532361905159373334712166432680326190576703755223183298384121982592146224778574289205894399054734104497150497860385015794207811940951208597955839801169214742279371326649643266297012955109161904137665947792699496839973026512171769331775452469410039074539855809708948199685117058977811289634992291486125197422948663112282947507270163988589803410051261479797951714804692991196669813095316687595477215798530962656721406921153883310450190234258129157809295653138439645115596555286048851503399960832221956727903082521078853084489509802897410178622628103965009164930880387079786126710938808944059546662309018007532707265931603289746468382066951215272329271003714499878101781239620911784891261814799548625653020683206881931091470777253241436440279198179029203831656648811669655387549832777045477762314132356696542200376771227429137062162888154979807063596870716241247749622297987826702385928895916027830297283955972795889005382133808681987720801891042330618372869604031726003646130078952064526275435091453781414010948112431151807865491792432233273010293082478445900646605995085536818630459835058634464715646381553980720905685810299546693527722042483527333788621219533167458636003076492985439728835370491944130369843325887474130969931052724927579163994033767129544312919979949708902972005895413067860471994539528988751016633104163834284885880040477605006977564715267990693092079773759676346607998902565515802614313390284370435665705564249986598126162915553982213468101421722385598458952580954149567768296520755840970461816727245429855102197440833174365936649695426592262232568609010935031062759836216756163370964396124408628354230630945774750702194399694484716200075277937047464239190192135043814464649941798518643114328609867523843792129535653215515505965468088410041245945867680971401783921243951557403990082486744328125974890680057883179100764263347396459448074066649658502006173551110615390961524906721857971649743084488441027910154523024413078711073527651113657922270858868335236819326263649715515031704852934794832473609582540952827189405669042370853943818931133373908215817786363221025141600618384065105988583022332186157855563906320724023024509124979574351137264435200204554522097574449524512474284796299974200162240449833975753486672905167243837514380203424921433601140424768631190287437482155358005717705347790770883244598614057199895779354703302309254032164143548125824893786157809111682715385912324048738041268682420092312526020339428358952319219345109759565826759729341817984454440782696737359476252691802543302911467526969582721272682795614771781561305699097809580871449406390370462242748077888698332959610909223808702786896298738499870453803511353998829924977898512467688583386810479832464129293363140137973453468472459016443038445991521684752747322354238862320625470766977128067863021941051743569310048260985227609714392920155961672695750141863399812263448833684089633163880656736727346712110096741123005896882200770957398167956065163343357595591904000662813112800670164194465967066693677212153741876018513120264384767157203275338718758551457677643924124503571210062764605540115797370830813753818198682244442801583151379241176829163837452824791831362727817871401489470142057564545673343520079279747586006456057525838492848112116017471918056014120434851253618116994757934349528944807616993616335348151134654688962265653418553015183472450778203907242195180118538016085141670499195114872108119011452364017190819125595026826868738503233529382467913465540365653273801445513130996447929042576046834302728459178434771624475269543405100185304322271837595716345423453175406273450748362530122976549165248685207165663668747324685409672089684583727946227871200728027426896515058361434830571979442890890079424237085065306268450299978195697967190086845811494462723367349233474606609780951490039777680207412979219630892725979150609302712137623851677881839271718796726414614050814155345406354367551009302352518772088736546904571904803394296066187354615760795945138370412810818385299926352440324264094092722827842668692411304883283290637962890625163555763706534889525928302606415182843373328363581541165383315298551874609373591801251397250850507358902422139964276326826241290718862983547086964566615138762556111235480972639859489796798865287872221620840205990365315142013453613907614849140390706401918913899737281819366346927920970407787327771042297825265159437976545599545681447743541259868400059230002699162831310914652367966128242392133719379668988276804639255807934653588495633393747379030650515860955938557195754439295112336145041164034293069718917426892189404214034487930673301655377561494500178213200225458861947707960080599910857828183752413509596730955092759790606954071271981946311041586852741227451856780589213930653925895294464509689776874936813869221396399708897812696386174809315077757558116080975856580266333710325771691206469610523017432431111421605464467211725339637246738959832352697471605958733335732859018080046320020834197433895294034164759513173202795208869980503139497709165565598007474423089909030840759090445977156528926917107541819154629264491150793829301588371316201507019685779875887588897956867919808309097483198108609035399857604657588730734015537155289416364031900118000535077101426362797638258430731595573483841871510937639312347387576795123255156276851306717653216937766042744568323745145783469395187744804090732384165728542116307111087517747380022641331263290914184803121667814754897282465665796698950825422253016703087216137917455648231658179144117799297993778528614325913067733148253028395837402886046318907012519802026526956922418573586073425387586147836051418085145892896497114874430814880191042019249943606371808051515721289563525695797026378462622161911576499932982775031043303863996413121137256952785203865462566446235129939520561821736163240260806036801573363378785422981103615814419553092790685103088777723020159349147173467407432711840019401157169975103632348551834958968906815914366099603539055323826285390117697857326302187786397028945664174065866868021558631445889581491832004973030764498305069107817744114855965598227363639671121974664298679604452442352010990733408719039040996817731243948786426329813667119145404380873644173086743678326090141306744273898883327382957444903569682154194213442782353324128394195406635232476079351921140906551137579421959168102604350815354632356808404346889681786113956588841289804020310146986008569641900919827733285391980046330308622299268418178137238152415792270075759426003070341984213700867323316510706211863434234931152932596151277732661670373896704747520052863749270209621978790754985692108200645619055638687099845336560416698004963166088301194739058972234801027268225085567162354659069515080607435646640654993422486609649655794533987134234659352895070829375075086835934247851467780170564841241374099296406822403373271019226190208908282972592359465735314096531640811801316555462650954083169233740491609047573859209702700848427996557777821718806113390636174261042552363637351173450700590811391730419517405699482287178423154257535947930120056208428006121948273642025657144814511624864081718051285457513381619580050659360261524169975792882775916183695510788015177481637947690801155243350829200299357327981530201316545948236487703092574759656206995998940655810725311607908784827445256484909495765456325992845822457716798199639706633129667616098172935259715961141648264738849485169996942562252477588839203181562212911227934017287127933092596450913006007548092088158857878713430088094165505678886286253935277489183322881911240217465406184088755492242229374377048919254617529937113404074256062203899634276641066297149050212384414047774850083194975943836351169840126207892242598672816239501478293417147856364627978836402235214052124710628819512024083338356460137718579421388078873279175850928671580995857486501080817266144394173399705305856564387290523523617684084657113989462559776708897978412315161781455434892464232870020819309754260397525457743486735189928915443144501027736943774687913379061188355192547609385775687819120239765438617552485208901219939986686001977893189675500808078564919453403663953534546852459028382658918751853019603682128214961376259626632327442133119139157420074474621642619781052558178623624443428736981308387922649782313587833416448327409530829163304516572718592907767706929507657916013809258645665032654254580696747829837719532200816701407776361334195022629363894145588665322651873773437020557771474093718049818320592666594186319823727824663996628995515877990062853581430379841759487371970016732321704635535453640932456251379493034301525657887801054757190065487973089837827824425076518292445119804886147730878540723048607517081971240475446344364784985734347455621657457568119902865846833315604964712062936383329538083525125242034841974758783307570558058396305807343935716581495000135981132624109441754326137160602246314051871708391372417916117358586777429740046689133771367849731280831562683238268852928022158522837344292235975889611219666621366703342810101728267068551164281470192630871533315680768234520316738680897091075753119203449904862013680593413972050394560798414813198073343953319742786037318158575108595328045042239834909828831158627873275998492221142561053122970780469133916996636178672800796777578298403677989257399759739108116089451681011844108600679973046501697878500766305108071496673691777687026536741828823942500284071632369819771993187163268855075781278149459020458262407139307972040873631644834184621146647131549864821561969151864049517806453640846253641074629408303191405347130885802749761007858237201387752925250360727755939370843384142941137383374347261130249902178588368822090975140851546082064689740047595012730285037516912181756512100807977796334077437352458578111378466373845953293630713720591734823816347493942335409154726644030933237850758715291512055382103703674887992005760167650859211723895807764105098599274235288968117455437972962269743504431983090377408659306649646475287422950800388539047010051110939547376456884603503126849075208583224932773516810551698455576678561141692522902296649378996499846108582199812616956234535216493618059930426228376184585342154616270377959027933857861573177206782916382031225169041059233001891554468778904436391925769395217580268421103393230673608973841827633955901076202481430751969595300296021043840073988140547431592898825645115636759674406397383649495503636186850326539094014502942160391196470225733796048411294751196611046482664744947246956569390169284445203125930897850209156582518662582663654062077871398369812164698123370334714971875862039613949675532031208880276941195201453850715995867887520814901698943205400919930050156611077286368148797258855409074032669618906770874361462261793623509037497146276057868823637688203838229455068567060742248655313075627602915892224804770923523282015677516101683289228546431547627827766334438960233989952198829704064514387893497106468404256476920326971583296674267839128036114001883350262013292281422648432157369066271875790670348372563000108694720642005155912540372738415277226264060784908634743975381328821304395529712681057753216393479620825886553273416905128543275569242842338564527543894293386991872358472926631491413459509154218126124794298892716598847540005418006321770937031727719365803086218216085458325317551953259144833006730736900065957678925661709405134187935567678065576538813288223558108209785676398718325743102534122514919019640115963040696235338089005446241940243297650401080293217145996251656434653675489058322172175631141014668514251582943828235347050111632841586333209247630792981145419588312936993176424663436213170402922130742537517102451724314261599231009520950558708272714932316519728794053860945467046153630423853119643674668829411984474946693179796239790619271656879543206797632953451435509859736914973085213842641647162686740854127254467637677882674959339391758912646729697329373432585782510632847204930831166178085658307481866244323093239276174029507068737281332246558620319599027657744116295481264529211148517558795297929429692979864499574553612397969314021803011704370886703026674150593641542440819813687231522810870932819118241572326795871593435821106073411808481587501261480430681441000258903091787760607701441797907715834227791698823537075985626523246321372252487135024527019780821834950347328588100570685455614478258412762070302912586777831406438150685084283529015686681071030069296121976987713603500641837513909795307045305959109528493606225011823364491999548160976990139010881132872894079402206116033336268951410331399466122296415757926384474555352374123818812119381977421383189413572571071151305595390857216998478214234533356888226039157291932170489710461522888958169460748653647928590448354949064461503969553046848240176811036730721349993183274300356648823136478523428998944630229754202926157270707011091319052629790835154067909545092331061386966357590452243272175119215758598772720755621840144185729798666500911845219460078333453185360631076327651258392884731294910071973659078971747518116402489575956471920846860340616576326383005482242990085905072393111778115582154531742388531204401727894186446011833953344663199686530667841431932638086736763796569458965676089503338364929745236679355147152650311027263265759831325970480033958550770816775732393084169973050610749023793451201410992193206601928480223570831760730880817513447935647383532714479320550793166407276624386309421696101865722594356504281268085016315204427893805989632847127982078336456267489429897452054989854065286285791971781533497727398959385207236319428377167549209470446993275443357801706165371881426836605606828363786703864751559565999262380606074236371566459169914475603090283749087774903278141208783330691844997758675312183124415544423903549118693851618707963457196366509188076723582895517123436827870505685237162089416970010390372924368257152567519487692208266660556410304152383146832559793562659962037130801736625698358391596499914027255302630465373096790149880929828698507654978579966954999452163386106059541047500698578879125341524929892533318454932971826233888525592795938756789096736518532044965365612130461800231356294571379830642630253312175018765436244034286913241079019174351675835370771136949560326021533088917989544968862049041754298188769370138507811211157402918326174941178027662650005872715767169691813547458573634247203896607611466069290883826169030043670959633054586971529006820545154647987174910320119559413211513433770985413814532199869958931466656172304602722784756699105032896989596126820278160875562218891432424718700591564129825140350669263939144625970249484685798094407895448305374110128199126409566516673920580155063955528521416216159732791586083454485870807226152492153447969047506419084438097485640443983628317170833457583475466893517948141168848530453753310679881165216608459662045371402432252169480360710759825377534116930723276876116621985675962705086044233055689964039831983208702881288237313911216742684048583820371578667825659815977083181020282177363164290702512783672271259676381639477277498423901951298358435219348626322624604033892552705478567277436740597415869291540878909999651267004261354695142643806596630876927288698914681461274312078785984738919044570981868982386199496008132858795864377199846637691996737480335694935931001992955014697604365893654760421382699432276538791048708575011646322527136503334290181717623037791083672392829728618626277047355435891685760554940297287986396086286712065148470503025725796523581528338647972110106133103144031363838282465960898604733191625417931006069650528867569371730139329107752156055007926996165722004057973450587122706456103256151767904145577026907762147971232464145211267894826735979424487086398385502798216467109959476906416278647751091549307242389725129167699734690346467094985347981217364787392856968789495939746514076510832811815253471965543849417347846681544633889506172141492620885712528018396178730064085357120457672369157873413760375489627592359255084635515304980406657491679582239658613243269499155485478838018822880430507101315410254047927684975434443238819281060902260696522956669489802775227601066655779683554755269155761030982303897689439977329641161238439144045734249542370832589869204687268252742233332020669213699737157836112594527521935846903451007336151674746282378133020039016593484298338487978528558965305043870359734057842742922922189241801790834329388851160479382771218530261383486484092220841519486944192799410936550022876253416928108968322227770102916974542259110277049713798123309198180595351208921112182633024726915973358005711799582561156579525317539442438455319315088336928619386926968953275213359102176696776598254168567975368520260403062035438786359794144119364837492550946154160735828166200701666965994935357801120367324746524789351842376656266741270226114562036948747323766068559509288983200196863983549811335412087677493164748608344596836095152078483978340251798261735973141530318978109437547592779681726931175849843084779116864712323344382234809990487875138917182052681647822284472976118419886303989291506018097311694429008354430188511102694601570478065640481979794215631255746411672057283236465633308051433167506422131838654014374548833885931980975310428366983501595921261040738623371992845062059828184080130313133107296924552397622657755430631699374377619896293071585120130108937080101356220803681190905669736975748823630364653836065855070838064743339801450425233415035807390552772043734672873595433677110696087056435372148937101899663336560835542986199637606993433682037435435890633474805187067611357556716944567090849119826682978510995328437149300970362588679629539082227927875047805339384772490198922170833568263847914297774477002238047240415840082734133470881799753235469245489237715051838246916190714501763359492016083814490528103584945419658277461358441242219509238827844351533878237571454312441354397475894043536444386068527156699791258248715910803650873638145284981695477957937504505490343964890450662623278780162339501237089840418041141656524754602037621969773309183692532750740869905905422725507993124629930611475009140311436716505964857548017376456468331265631724237825843986297930171226480836153899313543589412068752365498178405021734701768572474919473432513577717979332941987375583726324287514334148065568687898706469977683626285477001327584009895910230538819129676917894385944996127664088871094729603236240698979158363987786264228440541012953649504251127924910647777517206634959057338435827956199648065997638320281382251984593098375840806128939180934522290774972798835719458538879240925039087667455517144492524368985165069556902405919941537765954419494551182941380377830161585797295163074870046396561287125037618984496738894334148018490350950393388747039142645288602776323651743409097757067484157316210640353198479212099119567017756541087882919060113794481718200107246510635776845916880932207191155844782693127235242867385505571138358449257892315532700186108271713565557967508901209015018621225013759518822398212862031660252793061184937629044126655737928440039052938265462409207432543256105344538642784778785767102506470261893151022565353518421569013454274259594418398129034337548131014960491961805019611111831772808172888889559628971098509511887222690374740835993528225659010680835779231105086861524815645245741319288744970132136136679757806084117171271477117518773649090845480568160941446226352723754180513935394792974606542435281613149621571298350995219430797823546178613643878001612783656651752876265165105179180451252275228047496110750256628696071637161448661546894189756832413424164463578726581773791642855102876115982632791791005111780215131924902270694413746086861349610333334240946453327379258391481071510000987030935143899271592959007156445152736399456709641882398005645067013262282962553055524516913004859172172960378129904192809884817216383666029651721727423762236156209069173407137602093352446262205809424321758525505364296177390311903119235511167574355257125019168000552391912476470881756335776746238041656146793742969137342476476944986438796099975346338569574002722717777991533585588705410767052886000008484769131914836108022895730259483203676058345777006356424348694673162346561085935742387296651999358653020005947092238379118128449783730256504632468894741287620505889111762344219984346156620119535731923794567670163616434704676465194024727151122935127591747712973271397007845233284436535078289384872161079714938783979822341185364293586012874120076446826665447546400269416375877356394292265442553309333563121352333109628700563478516342700682609572738412776675267085489035206911420431588770461673977826564077457311675011881723880738457288718369115827293302765607739517336030003856179002842851497541297335876185818789992326764088657013670053469426206745324306764764055885469602719026769361919094649987194403924286624017662229962796576848402340521071395685259410691631753928116930312236651055984227096015522711345082042839483917860171862867730980775217144562654227519614944313354769740848603407316012468763635703824318017421123810566191846602137099887375912883802730201804814822089154795958709375900898803666688542406308358106849117675458974599250351243739319895679344713897715489229923687722074406148325094503060930800309017545083137829245570088175191889626815436415232691086743910442211861009044609620515312755906394991960025663585645163335079757674225897834142450310181893566292186772672386649956101638802702750813860080070578876108692056622877822321647979381598341451744938320317323861113241766960399228812153754990920545458633548113545394858418407182186759859372271465754632670641663578513153957152961799781380254871974709705238639082140486717805053665269127397613762646743934196292050120397097848582206716929127742380431821195600979069176647660979950156813399932286417515268134604493346334304315119853281815112747385581363930946522441219951185336597305897277828766139749175590016329249294066822147617010579450526744993829741267488684717673118688062252319248354547464577370918785857455705414797170114778908773508775201438592915040173125540014507137997645716899658658616365177900793638993497538197325600244939922333695508854355227696913420416855910298151235080606328361901454072743344980541318168463144445376236643394364961243506807015267964353988856237874680509401802209726990699866134955848978896017034930518490391089398849277182388261629514257525763501908033260459958724257199459235894068028486147703655609067026222025520248292051427928998711738659232913633788063634185748852906748340600656370757236527411498943794166209323317989818319486145272723831432319560621976947165160006226494500976957815325750395981234100014252280869899961042942937031442043117270352113655253396568226291196566549526999218108490359637913791740011660426275145035119250509614168680365694630630032747771060642218086269206064545811134696848722536221370915373201124952855421329404642390142648766744926035082946182695743212348400563784030081693424095199727058804265315911455294393520648852891542026531083017833211687283160190970735089202373388403051766651070354386123510860962427407806703502045150833451939404141451212087155644639296157241262627321142363570355816426982133047546073274585170897033703498543126657744586774701387082993701684973082948097057476985940429800473834337806003710342157194590920967683922431912488401898606006191539536356627142720991055905052756591628248831466190258981717055086856691975986886830731796510347612823889400720021883944183939987036673635126571210185077225633099723686964765780923711180180634796571203344972109228187829333580964880011759139046808507851670632181062054448576254879948877735285242718624778481632711575517197947178512005108638117723344490298039485482267469572590081816841665414112904484449270218033698782998393602349676432637215030260381590717323386961818499015297316072749920567587056170231638990182151961624610862650394972570951963157394147990473674155737645502883454538433182614603527644770282091913976164250072073980244156060859753681109958914634441938906848345897479895689628258457254442063895821532878575080281048845733288189730173495830165931261505845063798803024069254914525836131263913111235756392676325558323496295176300057426191949646253002175493185615604191989901733877582532017294650482179775054613250544135633564131084758218171609420099543055650609131079429320680403188832453677382744488741576472309060993414735927904108393146988200771738665257911239351673994968426616504487675062138379889811614354315307760797649200490933868290452633640169368547709860335875113612803530008011411723779043189813852746005577819438670822074552203459514607902485572414690374770278892675495901743204199734091119076421854854788011139259339756045810257664260647097485355205501246056629112275801633764425847919987995912416298177856690942592617039593111659525071735840114962443708520013741845647101357994796651772906796188712584846667614517749718100826325984134333225607552889127222054177866409398862527249979735089649771530784348187125711226290604929944669816109125304395105429087615461611346036009184706440215451685623663974183011389206366200475262921709415244418856033368700345119290261292579698422065913047522319184340803104450584114882620753621519223628571180594992856599360008944805541128576562137593789053206344520354149597885404305486030472423148512130012230891893559740698923063662988593886951675340818362377371390340899986818626709835422431228789466899004182628630192611491519359204000154417087266059296858837605626303241502475490215835797235080299954147374597192819845289195440239982324730639340584946527870101995600262306075017342897058775776927314754424924306629619050346337674238160343515174503252222205849178432385381346582408930298689823008706967605336701996016549962361829785087694173996502914225489148637753946936695810098557213890504433962723659090226427640136051614986627169179395229210858955830012903828893804435192515399160846330431233811784454013527555613242007499485402731468245317284174739242558486186784579378466881977010430480143649468003161606947013802747469072322989292979193629167158345827614343916535761861764710826465251460610262338384286607025299265446635815316650425065831969734219988265991565398004377582637754801181289808003077616215041443353823488916521085302143441691460748775144237580146231559505691338681091742899847415856800969880943279929541159106361663999757079812445507155671298905252335921297790592177738246784802709213722778651297860601388054439765374759203219775590185210524408929402843727191085598413161245230717483363130861636566954756383438970272652199634647373593410094309508878127810470711967020660906834506090511832206272576137990120718606231233058269874653943622757796255276530346763889480977156816829586240322374351668722282139951103152555797706430530237984302915946325586419208497502764643783926683557808397669697758141109268444426966037314611317611294460610112644339764875861119387450676575588928654711078830765595259354589470505953410131607411081172489819999407458447185156136925533372826308667227536208338679073918383744221780234015712782418221983383930701907544195204916628917270357673834266494366879888954140328541732833054421939604438165981792587023942924002656485301210683510378108072552538642273990716714913463267628590393194152664654045747121926630801148668339666002093257128907794293095441452800740795315899827284630420661909188629680150833173159888836118904768237551873631013117687151765366356452828901166196732925725692936583859082473502482816087674095226417358619061108926402311436092621321208245064660103416901840125144988111796709622804308490732634159728725858347988223349675428167812693804772579332233635604926591056350772881334599412726184392685336355905229237485083319829695328418193547021200729026716184395829553216836511203263732866607229560624019699983654032867386316623694352730276573066359382312776661931106882785785598714578150722474662552328605856605024452543482036987712756010666199724616983814868981076025478151764458608709488727443067184599293828673150174075908636233818302990284870901895142851147392172854307806346381460855789429099096902345796386912169052241488783574954334752561835579125349940298901139253837093500481610442687764387403290453549730644565555194846620332738485559312386061506358965885772756191932616297164812729071441796429798333819653930915657723948450721513081194634420194140563203505829995736666069708340633312047727855735650498203867231648812654483678161713396143909016786004586927889126765753897115819313991927885051617015038598371210226918900111166707508488747559249107787233281254193461447357719179646351550152261653052727460336076640163932111998433196392973292552525424801883887612689744708161698298337343176897066331487689475901138031546353521279788265637812228591484194882413972544823321556634094687296160468896414162808326363151162307290234859030779600427025476138552475593467163403021016993344160551949229293362667926988892207251887130447181541039751112947110451721702557532139253780867303152586040758371441046218285901128803376015420862124168030880198870964905706895748566165701072934970104052924303195195236289209403284699320535629863932639471175887144586049554896308209956761857684790016042364385757987656143833148211984055027322533859065750546787704139659047029773785933197662080577771147655235763401320339030915955320381136529652081529257246828939441883974232130867120045650087685072632149462899686369158545154814170194664978158112712272893531615744338418547633726746846594102456349312042007432748336977653617467458539034600735017879022401314415754500526483251031873107910920978370621371035103548701621682878909201485028258697812500025093922000757370074136497715582731977677103102317431297668110719766640871235004985107888743284047979112890441544175704028126568317598178997898613253034595447248419062052406693737327412890335034996418995915414036971927389919728780203941773992062832586558271167250783591288426347264182802799470166660709876622693311101925760871444824177390239253008581422382461576090829439024309213640376639426524873711941506262747344824152753658041543942287148101009355506784496944195153232971736687770062811675088348077638445552910429093132722559376532350611716692999358285324707036286641936886703916335682018930085455159720524162253410083292377014609024898303880850021491059808800767943653920389213959054737370645191677341874963554342912988818476947314234819190139692284562064634300586281819263148179017092544017165788750954395393979609778097982088870105713145114359704450277452635685598122645346874024124916550484251485303528319428479828041341212147403731456165008711190485138969489921649409628947538028766476256423157892469987859159346390992091445960129250195673554776715353369201756169584821785624021360705705409050523146465917913994134949131356878752088063800675966798734277979620565684931088945907483735466335817772413322421402253217939140605044201345783024658649194191461952487634325525773691338707883149399749297193524021378301479664579968861266896105188079794918734014638945130214421739445918189103106110339601428611476936106568435310216132689416278238698025168095696930018956248022352510213696891275137324260077584646121201797484917139718010605497276476628167998792669404355407381012418232733946939357228153909077356334088658473003986919910248210453069085526622425794008018845973528897265594258846414086729004332998065369343971391549204744693567972911009829480316737586611083376312158422819038247008292667075995171869260676872237279362235327561975607138601523225454740225088439990418322354540495112271204866999566314503899524878103134985594323336612134428276209882171361681902159624280229496926898403037900491074483230672702477316382076421744396282862269011068045154599053183648294938687929253305654756815960381188967495906140185884365262266574199986707345833103369864835557269854328248257882564451403223086118107846605977201526495321266966509617497363578983999002724180382130953623805460152146938311919085564052382460983485348499105966457290360064055207432434838319497175636664653401357556908031621466247195328084093514791036347193136655122052761405849070875045370383187620257054243758393000917142505072751594686658740954786548478721382804943127297933660951494675791577934060724089810722745725882108173003443610742148518215797593173182593630060751372430282873858102752461220665417836177770024784522720477955659274270924235723678483589007911510498542747472820117646635203212503844618321600229495289955032771742248573716959973695373284066164487237026794023383633015178034258556677341668788486058990045426517300490488744725986986607102238655879246175348536856423904524797892908992757573687909614251086419485915198593594583888137400466545726473975334608327440466535932328930397070712984437902330645577846168955904766738801447077515272015011727569465410914004476177096561704367869908850827181358493832753679533794746448140019278066127563965684086840939007698486589210916730054937970329937414899604173471175224869209616897505586642058848426884637595843966895200999318465783639491358428557041428114447693509364534264681168692536383020376336768115927887781467230189733230172066095759311429022352288276147917127640833700965903856325458743767541873776866717861400143969998344696351965338338106555138952502498854573383170584237006475863128476132770658670562024869175413756791198414083944535531054770116760183348003233002241542822275961327465005897013001628289879066237586987191895508826401353625885749035663345424692304954184238588848136673883148719598216029308535779189207724473372335135419197260443931198542606633033321879625614204975479529905025625494262315084293453915763469044451179541711649623096102153762928884484007261668901323029699257843000864513527658108445002029153853032656248396041769155127999829012745904613349088215844253035256361446934247307177518727749325075398338742146738286666527056304084218787823216716086015728884281888038776281636729468743256270204110189726222279535795932994356737534456330995500581998680175523499006181412318904788265750487927859784967782418528965633946967597987337211754624695528844881893760762866245637205434251791605346493450257329132529415187148619212752955928050582621339274343449520123964184731707778639016079814280353919215380053053746494186670278565045432433483971961817056066983496283255157928134563830226420682793807563937159916952700138587020281891702079487367127437299010708798008645518839107658040876638805657854306398984283185595503715033669414714124862710294756304722983265164483994135878381789255797118290048631603406420335417946260525728503588612253270639799305000456509351183504411611115287471104310126426509953439313822080233306650665173774037364732320571906555448542951308275238364791106476287222028501388575910558445510478992101837106335157971205810396763696393857248471790393504902012849474112430753925870148855140038013759409633565461383501062240146264989292130141796543157080711809246288612767887124813019562032974773836206640401417708266187659091896760801131130669857612671339816036860045819126463687042322029797333931636568133535551311142054301753805241050327274179746127573750291005840304205954039175965465398649531666402724106930900063909442712567147476826623435100227839386764601920119676221400872511191575705542517718305527526738306598791698612658324493319597122762484160411153719153780840909218389763211178480864638930549022722896264378706740421784481745666536774753667799201637086722660459832985175302643603946530245900413109138022153969853300247006368536084650221233506828733386351434495528035237281097226529852081085392630183267638965848729853972037080314872763914592844810372543177345274377019814602807402989381537360201794795433837480423525400531201402780384990284534176461266113733290029822177318841560080905515137756076271087908542349560258571718099778875091089198062054209241579022318370664374651902663756101725887196854232457639386706936162928496485306691055865009332401015488239939853067591374595579814477285110594508289351205836875655483398056955884211026051048251606339169919573178466553926995431187436937848840755844594758635630682100766800589545210037836613958747920389974496580172567254693500652011813321085953683199418713510770394981611644720456759136096812304608924032087588075641349797124266986394569137624348070977532316004593373532318646869387739429967095858117359794829012854316422715443999735215867570047881368721057453271150822165882272049895427023420850118164331252473634924099337148818999010204660835088460137432231861064212804177927220985131097843145334398121338513626179573757173356570571615548901742094709413385195245684896879728977946363375879703215050449050362258508742679665213613499317155234628954095455827813055665671184469135651877532923583985285029347883067950526126259914037639489561489006813880703161565597399961906130602110300426817861242431776597327902028702626939866374421208664994514915305252150386947991157496244392194653249293997864383320360798675655986983480687105949302134833290674423960539416275937727684318757698203370637506259490819192704593596432583473258800442819575134552010074250364360147048629876486349528383023473430080559963809995131982738031116799019803775459842429670129601863494100893806037899122401644366885961928386400874429472582810616100276982388494092454371379562459229507808422493267129837426185613398666009470949326217652852971577108917949331782295485250709185703787021459662934123506591575662028825171029212086399978919671887854153477558746994859962478442876847487380047570793230106422392908240858435540684343344559843595332254800086585929776043290790616725473379468929799051962091767549169386882171311100302089226130273984312200774933119822509810619846432503849676477346648266411045280496692805536429396711689215152820961267407556425116452836246001271381007730434141416233969914566137852909517110388780253127442852428266297583830991591172364625358195142137179714928107387209515652387715601091765294442266303819280897307959168751691023053001121413912113923208452829768995418213237958526394666469431799796300968959249189529325965125554009265382519680421149639851374574266809628606013263622660560565139208043633673730102218101539152124594340127152955977770330388543953198586450919152134361473583408767039456509629926588688847758333697554230367451043095062247641011867210470507688484063363641803108463375522296781297222525155460739034953974728738764749514167496329204268308932139780121249236586102471507355854681907753211110621362028007800335596346845204190620293543544096971948684710035105165062704998122571109108683975502922685877150158496247223063329517794060540143456562840753002049758354425739394655644531120702403235812790284937280598295819746896263410062827019561484862943156183106485045174577757480693961092452716942460503510464176217371492850754147635261116180337075192122309925544755315008709837967280467221647931170883658010376795110791890917985042038800540640298071356426583380824126411220389770737423258066780853758559521022504850065631305113208065937417032908027188158480899600741328139362183532146799928797704462948642706189824159882869908502921280778561244284319010053093990486287219772855384459452300490924317825825162144005009357026847696325210415190179843002521116472864038641482253176648299300887286090328683020118541812563101449623429785347777340338752544691231880619781423610226327696986284515445515320770437966038116023621310139139182327541821754959697626889507396454638204676460248993036773740653912838606993299941944209261452983593459260452315109885778575340838768327185165967315812979872441452347708587859393888906331944281037309857981031894382165300063117688315536161886530662743069219819827907907022627292797510332498937020672023417035340397569010819120883093764998553406324028881031383303712926064363428824475794635048600575926051582463469238135579966767186209021024851435211000472068440923711749006683952894549912705592711923927950451118483156573580859801265909563292840286663576104608450746763673724556537295717620805363703621303607544384568057231822071270589058631484863742990185817153981228924622071084104774354900675306642998487979324603565585298741184100228233373163171729308889906704211869773936009110160972740069903198476693767047897242145701133811516931415215811946252880372852899037337048839314750150399666115315422794499560110235519775270579358048699812681659209204255616475681811724977182994686689913321174107057869038675679874061716710453357445399903959228298090795236604210948949526764268741514399922043107495437439489614649476786056256025339229448594408533425046351976018671971862580739903391949315763047082950349764114747922892872529013406410469407215072409666921136894528610409261435380295837183656242163456883871885826812782511766965388171049331266890061281989382770496827079726495879983457831312597023354044175882676160489174380435517767134138036776873508972855747598814400462892511897042650568257138918457026161489777192252066451944945732810689482094900584046216841665560141257695880021635306968158193017205576828093673060880091476046891159980375774937882117510505054550963779225415186424926999952396417746360564463702267761849743848466658020587843953116731101045077708327345311005773058685985557980366371012785541307912388302284667641429168156423130495618542351371013719742895977580146398175661503274982029866854544130394486994527698161955507204408059734696117380387724654698483358571293912539841962949100920291080232774054794025169123128179069766906385300615277512489070106681076171091540946657739705475344868861704360166773925837130863749748726547304331235291967911801820394923946442205001279307919815615459280161285398409427242428355369636968822465681997271088480271079369025049908412815292024080335967945516936574483823205413541969628875747089777465821563650169284771584922734315924233127297908197740448809060059779454236776183935154031169293879511945239735732163971658878009308207509035592461812133787419546617083616997466890495221794461857112555050755936186923851859251089739121863617190519564229387974256719345764619437943048786798304433949897146299710013615290250134930508132122677123434789782372319294875915645676858417965208920412790676025418709214631787912011414112180134003691312819060845937928387012722030767945822027886301819990349642620256944122653779225415182319681957337253075514100519194547989964833412715728462297122305378250620177296545412488058549392368563725617420980653405542151848706257651670263184197400760195402468146591420089872740305396321649615716870660761669334059446178294369651649276677470138197738224941112638443035544149805274661797514680805095050711251851105361801103757628644573406606054828128822286091909856170652530845966798077714670272679603740290355809220396924117473267470798699592257942763959661467796187164047389159299367606313769715359136195083033734946216092189463622284067630730262753865751146381349349913883915066781357502532276290182337697321431060794420014141503508842815076455961042536960503947229728977115928377333328616245872200356529077392771262900458284212617821802979774540597613507562741684747180250532158427833470941513363407866669175896547803513759979547432541159789732033535269575785928686910155566162664964112889920109205905510780835915133766976947699322380472946134024999892063133212452729851086078936715215551445629709120646223008170978892326424379886750000672316479581117500538540283140682138559319049948500186081603380878318940894370649794446873577701932806826086808205057726458331485725298007092555621184307764724317453008334630740367174979662625976260580834454241252202488530855422339981153933778240829866647230942477414643897680021133041561399578884183464704386871720127315993878527559793230504692256999998584069103016460333098378818918053782853044648110124707124117342019828623688696851304437274382354358645156814340493943355146631974015852466489070862721996920770531530410280892085122279850038509687519768697812009251108937631219920250003185216262140287834703788761113147261952962667322118675875356597327024567069937474197548684996933871795565996671936841122506986858622039027134658407185800649855293280425523005768973079266281634067005048174886667588106146921908015766772565613202335032931209385510534764228019637859299619619868108858409221376993757088242835756112331891286718064888659365547045567017353310449295578525291392814797580364167896842407242418164753996173851747118113907645085229793934555122184723840482832131112978470093799537061141066553176773184692420652515603381880645752994030181578318115139808619571143027397200042645507740292656934819720968188974621545074975780689013952507792980772334130448613060407781368321323618550882790394343322072303579050485341274047009294432990338476861124909219965092240068795245680245151908214891262495834499106811943949958931805374403290581420643317349276480282908859123098883708916512014872656129443336172636829250621857473322657281063224550156370900587108091752224764495168509360966138043006189821479274908559087347355263263318139105770782039787742103843457961236968790379216539896612705890693254538263078026457734338240827860184755700270632268779319549641093893190270573737753549859348223774249373793404648217174942560717538800787139614337293463562476819374725742384032680857367110999379359385106871305017092045246040170237075888577700693398537609551345673764629166230297607201874377197911652528052908602301178282589324033758939083538472049219057126738166540949531850912621622813742171188707253258237657202152281633046547265059654934759180852054644079614954476668139972115649477558574511394285119644516263521521918042609459319966548465111941812861343109744769704882673945027971155884676695987831224107749561990721849342246597550812181576930767488113336435992687409850303847279352098880021297188916545628052383805046666746210217733982334005140574736396753978756607258256499208780685689347532780883931687033686244904674864096459377523206952022753139238640799042654560193779295051505023058379333871732024911418619265728048417523942808637536365984034718299731673733035804909423740546383650621931074540768013031007606321240782563885837104909299390027276103565726627417701533558086212990882735820626155712220198869982262684821789616170468358568036377325924982420059466531240165776733348811770683997963533532312549033223882253485296347135340345027694547221229157130322941033541751168272480259513829454892311700511739049710848291928994922663101175494838110333818883781503174689919012214131839294554795355970783094733615687501177390576041097133737371367724171855192154353170205567176644858876106919504339671322242069535086253397630309800412841828497481770994744918023225939136694311315060546198627624448647994186184569300102022560600861198711446255451621839741479291640177720976656460613289694927935547224790822544354186873006064514241140049000803676908523912120756513887076190043555983971837546571656821622926594160859691184790719776028433380896247650942559325741277817153728155695622943590201056623868769417415756999325490329808970202268238918938219085149901441811763239785819686956257666125523271366608439557744651978663786583154689369503854776966027461589671393363700520819645940925483122066427490552009764774088397661719935748623410427048524190504917599282607349757147966627147412737614251220788330943031337553609854712379306463349840753019350361547978338891463765410189302595061835403289712625919857134151739079293416376014546491904802943863544937526640685086297156853097123052205155845387629975571063758010219419027402307548734970548142293150907131058495005771273943060418229500187656530578673007457416109442246911415303399858066395349682373225811569649510584953196596312910933593667392564940204491609185119734856352833561114707308954845013941966109059086127784324825680006431356224704968247733000467576457681826587941611736584945073441037588066927462556061854773382662974370952980636806273054588910357277389091922051341140614868580497034224430769339294480015193820637363287877172668942224960559081360166304546181256939448451448677227208317381445818064996067953909558837449247172028510749602809266676586117102048259189715258245604457696987546413199013325509470403081093421606376070488208159961369793623040173090134852368268699742667946481294617960498148437830092281350709255527175255099553012980219404001279604272831613424563202362832438854547472336624784474268599262813963295978068987750850196445605931653069462167555477971926535214853578223773226222384335459297974439620721250790901243734496091122835490898606985872613192704547343614226372795100820150712667791953013816650959203598931849906031675543442362852676541807707795695931694855903028573710751508603355636929951217239150441200335406796449782264223510607610441670427704116150453476615541679063376122452527846952030557446957498889874428102368511991371957753489538509100194679951125453749171311410178139611357005254451055422522522217650311607654302120670291624191092178546426718966432906088249804745349987453713188256376680828977812155667885150102052602458508516221120040956301638297502282009854525861435698819285791533289928464943103740757351105046371280392393441495504442940060852802723132840480026197269380979805888571253792910981788789713668834841493082810345420287035755721834668001317773044314836413927831660805795075230826141508409141702116238494674441534742767499670469309258087938590379992693361257985253560620693379025467945275364042416157483284324479943158712882794047406336358254385859789406272521875371507402313151006784775915063898051567532917200722830358678322203412696409201721785032514577455614867508126466496515444729822709600558336681107399618225032359920995962137306645060038417210133505900927936652406983449410385538017928725094149110086752912827476061247307208938617356094910671623881015982511724095644583178352494869157803951294741789481588052007999534349890008216668925046719199291033922346805432354376694873405684454832491191721469983819931608952210968285585529426801522828355135003182039235529424029148893439127530562460983147334865796745017648700849858364723914385573849981247112941426816776776363242711169808301086600665588948619404237074044021615384222700915725270544048691301688840549385820845922668843784454672842726823984442992267745846554224038078324313275880175622282147300389763454840472093457424845289268034441620779757416951087864872926154377706871486179298244362183233823577089816910820680471237234243192070690078952466957886716158194355593861985677862883977168747725389090222380834371618241173235523492269080300465531759159136979811467864764631694050663236710101271906315975201525725405706877432119126402591084324719114524745107154668069625951355893768475357871593556669699883487332772803920447387492259117001674571241293099834859557477014046867193127592535929074563805235008394888115215975040082609360506938551893473972469343081731114267576494828381046605469992885628192358259693834217000195747757368061539766902443660622960126876479234972860995661482550709836039695140749722623210655452939203847074018644812096831985076090047687272129836892266776341841146897973978054798540118192627836087105771367178028062322960633732433954991939249178734107977194024993436251426619165246413085262390721012078640469101415284378847496630664810651999296353684060032557152747195013454533525624724890047122104236345081198451422924048788879875922504511723566103094207291897519145191879269885547705450698173549768846910225650772802801202947174174717340028925017630856795223969477721582352686556329606096209492324317267002833292963299634987760974318430824209827272936235414232535845640309544341061757145299206054198837089861933902950392226263207638507163191150890091753478658305286662175342269113734749260712884104570574118407520798987671394027002926186299578464364819828244075278663519647777229774754818486612777810092002404193076798855073166607147975146344811840092126875305329579083618178054133103619863266874910202201844306235066565076764758081320710221567810426555436930323111240131678051819729267186101308475573008584259868368148279321342727719220491819736477571465843288420475782606018595317568739633020240259391812656517881900326924368058069075932322154531844872116557862978238179962495538706657157974973587039994390047137082322666501934315235396588973717453845544519851039870942996309463764175137681283228183033309246365449685774315277081545452092803639257673987856914033971243111212174415767854913263015501299890104671973776019646534206573713647257582241550960854111269004313581233977789677588271121421834840581720584258010582577550006176781311350420476213475654482126663789901996221431453978167552439782219566306669301782452169707264920120526495405236486586424032404967812198818924660663119015254439711951401631167228280236096428256994315464905531474472997174185105219149911951656662942108034429183567744844110836971992749570768648758926997744190073556921456136190913751827356717179017991357095803429279808760173726209764328572735271367637234804434685897442867230747515099130489847975226695468776442243792730436969472367929770149660237421171610523684532292471513221798631958447343023587371594174537570635831166682139190721277429732170732398852437679534596663492174231759940252793961100824887853427401639173397243102621889391243608544494960242016920252686421103151736116257570564535760768394651575445190308761600674538939728500081816657733353386972339736343262148507456638602942557414438887894059198336948867236317297633375987681255941212516339004713672250088118600339185886914364887671502284778273386839535160987806944996233234637729937553738729392357067470257968294398942508898975179430617385276566140906446643699786907312666269951244297076137043368168191223100357613305001472815002120193920822744330214066101274722427261045666951498008962191755250363012719841418731278776289605051921098078002140246926868498219749900882152510842250058423144775148514045302516403435334021635130541399163025118474237280155636920584952192025421652495006746689228533093044434224670743408885311348177907876215129378749260438413243056554670623781157054525279334517978566198443605950591784781574873539090687228185803002689846735743470923780956964885175185587170069075075113854553237973193714858718353883935753419071885302361306331793726279679418529302420028744053304611568646303568076457233014842826359590939302454190385492820864978973333817619759039244725167346826079967033870521413909842368476282109203958203788948974703820887716083848756068296898285895949394820358298717771715257099597435105366517687692068303738834449644251969103133006009535738682466579501040116362192525172628305174488667988986425229126470417241293354479594840739515149650772820371104149206688100743680548561048775279140625821054331106793615823302637591835359872684943930093002906852500002705873365839577121145450473007237544635241735119505501656518624065799268575718672459234398040500418508603211523456560318445958263913698778637113363235585423012286466728324211730806767547797715283841158683730075678035875387276264393550000317394953021112724482875962314439624954817022434417297804780506731931008384201628458956711020986638445055841014177237529974674854410691355501691637524148939181711807155300215771507805803438744262338112310630257155160054391703627971427266778782645056785165009146024706874819060232767627381120848876798383278020641171304303659064764274238583885220929766159790808179058665389334462075554550713438294147201379910189746608431043675185429318973234036840233152141248673388763725760359450457390714764740351831629398788022408377214484491728084154808973533701516880455324831525137656451698014115961442458035641098954278551546467536761481058156097114592312239313780011352793586005199452341791936296926066400091407454189376701237416408375854963384805702770072752794882487948062185738660989002127149616915451786866001538824290769767096529727193643826896286535679879676243577201485292485158724311490786060272732822918331191232529853882124893452547528488344118485955161664577859799304259446762177459938662244544938463929401547167820234828023879194174800155317664094135994861157893470808498302372854417957194301797321248625590196129339146705289426536572498217848695896222266581241056106107450102826177893525368371150474578233187759242649389949741374646822580587547750761299472137933254533536148581841632295753265682251731423055969866639882069404254130590799307521351041887195525303247671246874618036743663322764701170174790254961354382678817271655186500104007685579454172907874413321289978832673069604287695263197192765944682285068531836597197321338359456177953022907750540105977662623295305221205506975993983170100923872592302113360425897243573059515998517743357696787363160070276742173117328085165526847284257840387407862751843623507773596346377680546495883885784428228628631101798978782963360119325085034842196083208621535987356714743841237306281716366655086586025907263543434071002661427049629561178735415140401796652799790327922683148748445025304254296844506421129267467279026702184922278966998037615693809239394707192489731089273538981855086667654360732167340563026712111063758524875919956754749336716882876049166111894799432121418485326089327945823477220983147986955297661412873047707596022727620953427715947710118114800795409911302463758185696995605507337917941384864595896651401163895677130715835541007470998384175798356371594221904491515438875855186225000580666606092947865240644183873103432810569833703370624729563591516420588198402691358747397516473495625982365613682595197802380109208488893635947570425034989472817616957958003257490873821127292799926747360922494895998739304240629208904986321681932922044785081050133007152499152506973097434733056139007648994896867956986844350129852756412705137123117614222097239776193674972851791977401179552410169827825994345236783014976138146793214493569729500344196787710276465680457268811336294685295061828595628887926885557489484391023971407122093775059121529052374422116830678535482142044071956499287485275476020360405830137087388853223559467966308321575126650923088215191573371960790345751982100323455822276474419088562398247142259597919143170385390178825209693301962704643739464162459757914984982376414557735269793271459200453331986738596701556357515787991147098475475892097883127199815665164649422966902875497829955422617113322872152551662446596404643734986990970540624249627626691153278491862592742651658978858577030617244589441846120785153277845258442060773712577071256173181959961476232922941259039642596245898461196695898589667359755427477359947563773466545595558622927587310542757371007962364586448894451412667668171020802248632593793521928925301906002069324525015781851379586693587434066427123855809741353591643832273789425286220346648512631258524722588249757781036789730141206502572802857610927461056162054129672536605226540437147416799568529067839056579456511453441293877124583104394369706791559990511241727544058595913122034323104768528767464701832194848700919672981152524003406292508153452379537013697064234925235612506771270230064883869526805803891779623581398782784119305628692408815638768657237956943894603596919414258632391561153030112407857244539219442385343228308876724335623274857584972926350525310469481771275226913493807761827800409499044890193862783671306706957508375456994896851327354912316887087258629171026347454327163301911960822505037593419379107316403576571845853826001872240220156256416620407172908581498099562704539567098490456278512824696132058276296371692075875616968735881775343856032582939981820911514014340883318083299756318797224564024326470962362653691238082516094761386461963443475960398953011583180415032188193006405236831698050310239017238610424528979781154063952878999405180266709991545272118022016913634320343669818398800975818665982694598360733167629665753851701009859513503000104153405652576249357619505338202156881233041930564923239054443498543286579469678566042422304118686520818383383341333015869579203528251440469448335783622953960941213284248261415579614791574815224325618367759075799689856964844820126356108114444686819261601287129448432872884226730247377492856990091896676139068159357367570214816164130599505599481883122263005682182718278470574197769554353586602485816380047193927344104928505741564933088112160534113712934050178726267070580980606605980616349234104002967121530698565208667725505011639398933072499925733456221833582680237167621767718613122526095049744717162936726682537780535531811967354676861363812458521172005364345092628919365515944927056050882006361023868992907745019709711881921787911211131515760732688929605199779392118793396120576149795960898702296602222262872511231079354601830571418183766017013760951751025692813397873311245485971469881922044096907123692397577135027062687149119522407790069994575066723831210637285784446533851512140746971199056180895679515204834211150402703790004926752024806417600170678902092623173547371284461995893931736924171542185382757347948430874260558229280235148757994735508039905581174591467408193965248396258406700695731890787257918789538347540130412829594862674269123913822765783705100394713215355301793247847842639350181124996959158093937821625595330417762045597223990567201222432161529087822525356721998794581402089248637500078055030041219356344533165173198908874293435507101419381603020421717668347254994373109278786961942670623626185051471207358984143543339135883318289533723230916955998528429473036008508619389273627684098593268199901385041293391971947522411009089637870076370851824528569055667950105623435604249633408714614569034065100867485503161073425179913938497936109289315023516216426759873257139316656736680077814262783228881123197343323314726089472691797271739332697617136322543368379955580766286000922400287932311029721090425756819881260718391072964716325630463800926580873408739651429633448449824838912016200373179718272215621693924201926230670368746561675724747643503397274924632409351691143929956229414042710221720357157555808952516532816504895336017536166690572938292388022152338878501668614674845429154504743178250770508870160820982141514020173724587917795421337649462596185970819125751830849496024710341485373564093645969191417566911152836467399188254558198942396793363996864448710724566932714867896121285103088459088752321157772753278657020627382157919730661971010598482482631748184920864456416726491003313902583467318693568346283748975940181301570183672040292873406470753016236932925780590757034370714384049045115900901152042055647889167287813190978014185949370686121008960073832992466275360162531501306818937086996547180273661937624238329475845162771607745146006501166436994641649150372106756089054311810928735770486673812045363933434718601563777301839165791010421914744721803659165038406890853946687994128369593924563122549808873665673034900431079588817108377071506510448781549048143033609525168176757505254096944973854650454996904164157396398303227004678895093760842245193280678614830642201104671262821606098987080237409953177134946779034129417257381970861776314138890995910713259834968146026184932803578439596470461258614546947419286455660430584709971713721431764292364285220475597392717213050053224837028964830245261096540270204010021934506721849495395433818427654159923531824184316780107672571846311115189569794720458216361398028032748603143947145917705521470246479318529215800152701433420686171345736613167102590917776487587329315152169380791348517193340805229082279930235708945708414739005730554911814635125998480134645110722863653580590618264135866292300919673842213404100735955684704969294528809653780209594736133408076807222458868128082156473811434731558837978250471951338408958882895656115498042197486647539864906450556441779351425794761468639667813304477821431445068600812778386541383745991324288916879620720977534128155862109599900039325619981652452815688788779321722225690158759966444519248788858875877425178352978798247430149350098563011765480388618254359018753580650315167697301384922672053815405972565929688501028018579521371139690510170378809743294757120960408212054137807510226890462187170618042468862728931374023704406997376961010474387493876249647674245930871103961760982284326807350144275488185965730721092634671772005691820220945430190444642957128747321422595776781724018902711990257393132291102649912037637074074665138195201927593842639835135553185677610833495737357013966448519080178705432968889927839225500995383208875228957321658963879736813952172778629820497919037881822390389949375634779850057368080987033028575586373159545980378231212405803079269399291178727725065153700503261941627019912985548390296417881352796049272387483046900456727015849543994307982033458692039320206173618046027821346160426137815706361844503004968144902507267443450430987593658075921922005611209824892663161074208739167726014233066703612864848854035357567263800057874470102130480443646110096930933007963926007591688356181968324851016885989060047271648214588551643724314864848495616264517639953828865452947480797154680314591861970318621921269945201017825326892449273835072766667811527739830580462990158198239054988392039827286486287860533346313152099937922814228083684638949098511640344595454648764853352920975020447755326769521005647974743573318019719786223560057778292263178406006543859309700700845425981797571658153696670213980833908594462531149292803243347772510017280643311047046404029464247811937572641417888635321212477542518821107507564112976169494258870841522240200252053085097663866235222508276802048878680337204581542628607718432970144618945182518992242142188286982589103939318637891867122676919282420771818170769418677007326378051040168732190342027752937383488157284028188897135152692832617301442767297365879423165552261371965031520048030502687988079276413086462649551060280992525132766267774641104900499583233880893723696012546974842161612877009977207283878755623324850815449948523065990574095849286425584215679423974154317501721739645931271749091373745484506898936515464372223097163254308636131674522221970557428590190745341299231771564413627302519821956108488008317753094322459496766671357080075648070351740627651062953158642379960509309041401871375370694820306798264002594863415259378665041168965059710321713478629435993619329946433524256219833520743083533850694658027230010238305986261402428314436532870101410876348745916148487262313520058369810274853014514333446110878244324289437052498856848301152890805551203356815563720560218548685343774123179753492484295633550648562599172120141135680533138052824259851413338988653732669120543551653644772265228945766057299360291250082204179245489049504743951452793647255233968909810572096597493537158713543636203317313437073887712962548960923617445149680505024706346705857851940229633282930543255425674891926412413852650381210834196408208776648440732569170234316868104096086777464526953444813938462123870765923242289970563969639392033873977319744532200619949365518338356453615994088124990312694019110430162688036624663714858188189105617497864089657413317357787872755164084201701432616655663402720472726485606975607785679956694918577302245548295782894371032074927237416840977213731152012883556478886415833794156563241275817513182233844113945258918664924570612322100056471338032783345286420910988413771387896978135597340078459059650795724795864949767016966747517397132110017127906551111379224622208131688533802792084609796457154038084469943487094730605312715733325649994518217153224137297917241491713839194403545757461647808988474491692439544281811395339465569022214883358168386502049820947015681293018728671574159265727111405419549161856635760723842114449174633070769250613842141501947973181197756195544506290496051347064811687605368249595957504673995075082947787631792673463880082475575656890204471896064872083567548033464162281597327525821545661407140883961186985006958569571963610966643014888411207357266102423163741530419408308616652337442563951047847351038587793121621266402364445309589307506506884378771104978352625529377789495487882743237132859410277867654316860503638534996195052949347081930746627161883940550120936592103202135598236190043194166578652035943622460379554675261327864486819133088343118359945983697364376796561131933413944377567946452575822028769849308726969267537988668131366119651345989765445242881608736179359741391121456266677028786381239345216712980170108760394719277525725847432407014017739647656673765198794059821996400516929580668296736274939925350225932881187924769332989304187751599343848785281274650977409720727250996430777791936899234199676667987651495661160410520681419704793218528730479918008127713325928370144673306797983117880012184234527795378226342958735807274090059436667589884651994200628975165094024895902344762338770045919609020334671319147741326833279965201337870880087534756057683388918471766789940671911460766587297351694097146601970582261049029214586671118825220628860737207467936034140996641940209037734372221519163347834506550919846918442362098395780952897470509156981087901907780229401130825156780074837618279061544985179452320534525120317445123110323368787513993660440674824996167850408676600725093342184397477916110823769840612049712859806597828311177146101440425251813752216469067062767301148625747720608128630273476296630885819575771674683865946745251466171446068257764673848131586944498406166389889330605822019351538174513153075272603786677891684101000723957219885181799800806976523349457972241798239313956167173979242491772622482988808889218027657278566471776278539757953017182758741831037921209899990280892402650057693540847095142793755250484003872574429752977735988958478712412154595317148186810918524286368880799714948400080685197449328333819035770315908420618288285459655895728758222583871519313982965049889584689612892607218768870737190512279218918837808733542494192373636568037718874535118630260522780665631668734326611706664552136931787200567675350604077546745662037513453875869387900244224486163909007585290576224383198011539416996916470832739979857670456698888746208502321207538610951494902265507004901557217483397917671618333512672201223946285430484332080566956117549965578540891982944927475418015710062476350506778486039034839884588814914495678335834906981809512555836334666877323853074438296274703460509875985192265070842684273380071941234591901431515547286576285419357552848597086089727398870997801917818556053468112951776446802687405306495997815489847293241816191682613270921722176086288514895470702183396192004962812695703054125109261562914657017882078082877283475095229083401562347011028828114028935208678991937832038919608237123091153392848316537439606267982080229091237045317113444259286466067370785660736671340523044253668263252472923112654683246614501250767475172285391665756303824951012620943556680302238080518341892763159696973300121728243329830860047136466626356120353289193906458515155241459877052399553665670295059496426217630754438146509649091891415945649909042189767276253562036673514272252159636433519002181334788329225867331413645642851592064549010640726278355715927142237473697506146667608963808563045959931797993819556089144563223804985732825520439696570208920267205854054679198451330640200241824555820266725407010104701033211578601091973272304825753748593336679480291679847886221322478670831123676351255890124476593178790898423123463130684739849127479927188094886324349582732195830132587850300722795795428574909312069442505961001121407767895162507742544674600625084570363904772552935650066446182439426436778345184504759216842701221381956738805778919483765905021384476472773950902657050227575208878400375405492271202215209560188294871131030495803590787684823457961607513105418900808930422459616489634442961415725212697175711112149743680074126240676304779107502047493262964523039601778483026945767258377852383193978054332771553378078117016464871912618192770639042782344437591890333231739521777807124813664347790372862150815838791470267358502476462772344693852320933370179518261871382704851291359085818188207618953991620533417659062836558653818908257871996630441583821127720179926417037160407930478636735880248729563268179643968743264520291768986134255235872925387498474984758458106884937400537916098143079968540017510391990949257163609671214441931237068992427237007019319226552561078970381206075913610969249251056130295325869476627297356286716103226767926510546517279825203269787783977727893539906232809095519188359323177176816088687122115599590192473331604068986395021985355052328605056627058521000197713297739982571352598997844257685610973874261527440183138811527758223704569139243438157428083052019851542253490402927332527343285499264065438892578120347306899490894396343490035076237055421769354839269747492133717540928692474313575530144468386239610489579682672177433346647400038322742508576953706363815985690766340790278583153369585324844926368161717354029280222087350696622494159670624019668554985221984914088955486709484808474534413480780884726233486655767100322658301568375261086932388052904817065209970870879844024084770148657572246776243176137251123201772723347556702765812660687005946093100722861624762974455582121835393921784171550256525749006248227956550432102611859370802026554655156227350589904088354941759157469882786676106855697791740293833949344280767137854915034794379188168909103926692839917168519785475322707310804322425385492719243796874125453608987199995705533971950449349018135425343761453749321167901869157806143612310499897358509815162568422165495609363950125033487107828845627156026354312125701416177434709438658514478024412987103883114659662953381833675005484532389373311970340646099700124785385866647284764647449444061517395324343713585628283701405580366435097742323467932017782273594893253876149021605998658706859236180196308494279014189472247823082363671191116881831207385890412142425205408600175750824609743165474745667959150956869652823716709205393027595759584801410424280697368301408422580575562473819561375195876529686657433171535094240687226691486931389518696273811473553092642869576039612942675401294571369325167383561573192463123559382094731411313786071131278714001216096167756705377695883847802976306554898707699572756302227867245442466922885551339697162954832491044619439716613683230557062707303794361337256713419916802349437367222230182956036519029951901033590324633903053442307005581265551068338891673445862673438557451100254593116977796599218467272370666580404202708525866243994170051068405566433539627373679375358483682503279621752280259881653281243234267451615858740966582878356315141065627079114779891535478605453306292299271165583024116471069389283872674373034982675401838325054137448691385152175281896940850351926169605666858975839967433718065785731039245122476655909485653013586821880058950493887135594390233826527258023064347098694989143322653265868471561570409585485125401438141120611125049668214803710076792770865740186868665422989234199161945285211587244400087056277513066848103003594235542836211444624230408489767933029125503480281680013653452806649059107645617712284070847968701214878086712957889144351470995072795723021419066397883431631162701392489056183414397559209761216964109848368248280442570278669366061431085625805044055541678337569358800691348468301793039808188022561398642603667973237788840947697871028160044282413986022624860978510890128061254380847523800639464919042166790005963405378938579149097375070848135685400061002794031950199629817400166861868445265877963423848443794603024267950808505990210535617396041722865730595594297459222361853829883042033719427157125806168575669300522672998597500628157930887403915721940078250340264007898635753181515372189068332021880730036774517514732814830865225939513901568877995486114174888685679453038253586118912656944575355079523847382711563072920192555633287621752752913533247290239014442370480919449175593413359775720263522269186352876920424829709545550988060089514595546285488661915342942948731162739735685884621349055705715155497555151262169327987876107911443338089236895834922804822661566888074386289935820069941111503124825358306350291024742695733925563561944215052185059776893012175298092676205010906704147907429780844959589022609366098325852712995314743180203974747474005113611128686159276610498915585425744653953637670222683580336222528034556941073052113001554555573289640843589054874759164104189145218379283502265845762308495768496127144328288774984176232369232311214052991308322685527518028180062470526573078399432444442836276678020205464693409267662710194534449231022374325119533638124433732107312904075977755254051892458326122306721342726173505823480111395616502823198159921967244158876898848383218646551061646289223262910641526275545137525217148635387847813482983410559691205215894297120304544430430457877807986468593449607006978444818857901851429157015251086724366877186914743726485142099648779413785544527410276277848159595762720659727481037123216496223605295030517940257111089843361637398218308741495472244892020568701237902334161299463042039020410492317777023297461343944370715016217073811556522228998943862247137366401207380873438292340446209417284358137260806038672646808365643610780848845750237146235789426799845815066743222686054522954262233460686880291068245187199001183793250400500234898844202125434341912166686002548924249953429853455744094398046151574232018209715353866372176000727395540292134515941806281411393586266330773913592094997912969315998924198400374296798674990601376312610288388187774076644170169592797836126363566721673318353099665352408024623825514778137539677039951396814528710260529413793675693401237317669708311857678324200014683274617785484385346187745737236957703380768187661624407710471198112683280901839526913651434700019247922002265013842151941353354282925739290524505642543381667715924699784006656811077506872722778745687380685747502685889530458844316916868589081770933826373033526478903392039811652266851535098530444874263956655801479085781373878999664854388515555034864641896507496886709511522783369514317060520795790718116135934635690729920443224085820000988649461497186040799530629245684609765335129711361438988888877325544677230460248595185932909538453638595745796772348987000685036797951621029488431886795278957671488299181156767680085502894848837660566358770236663474885521653504856288400308804894971068319755075727332648850894735962181539350054950989679819615094366520838945688784894827894862785449408938432063237266020248843321814016163275723496792352951027636542157869833577323367932829478926782784678541432989833773220547571442888473296325812473464034952082463330145554904734128245260351138599880286293322194682049559391310638599267657264342332874453477209466172746552342696480342508618223358800151809539634578256082335202221421660931256261765530387161991217288028201883686556984341018691289321758890330443472474884328887775560957838574566081988024833944582828771694378498590830445033099600250868894748774588285026675294083993559964513748961858250384817599122133331691160969439422018895081101493110406787853826327337150205208783768907733174231251771723102143920001407859554181137951982805722839238265314350861657666624319809325469296982352136648465595268101142047809823935086577349196138227061717482741045516814195243450070459229513484108176025281374868728423167808595240903791793927111770130708673407838557253413876539387657553153615779179942732156644263277820096115316248209108809058690932103680356825121619018453925517667569750226056883245385808426427596905160412397775507542418379218275869506743418020759609226059600392930530044856715274336869363666759447753069683480030482383720170284065304491156326740917508573342712062465005144513732119369270786370414097609595329060079933600114939686584037365131438120844108490871128586741254810026271629145268576122636772205330787099931288902474488471657255053211275191667320040285951217586225870096641644972276794186447469693385832467764784279201333367506453137775229163064642439443507372924131485038087709620240540231861509684658510969745949908456585658748814205102191722637578172751114126621749161538378928141865027364044790803396588529253914033372449922884848060577194116311100080271976727280272290700270137824677363158522504299714832574758420819208549868943310742295409189902314718821567279872116202657177130244163985613815027583419156167416274845740307341467557313239009888483781889602205009729847152600108935047465376463930073440987165429259805282763814952798472859863474326841635607555702809630040329191107465673747587693243203365905671558090165738449282284821825028075511860105245436919148336905344003978930746516725067805363065063356718049178687402991612108584815401335659793544235677649316055965487774041927570854436182985060372897150488044995216711728353330297113928488929773961085488833226444311654657523659940072267647490714634268309768568194649260210474263207036524208368949988950153925383737408327366503087960392638041110781137935245103613620971791108877150040386641521060818696519026988389314694301587581587049086854175006550442047680362401465324441017916604949701213081357053762659430534538543893573461093027366822402706081447971142468851822058771342193250630324401176060782560094610057194336619868663875676808495629542497102632782218224352473755707990207029344483197783667827135065992307275088539324690483291043779663184388618862300148854365451701352461730905403144345777633102141470197764869154044862059869420915726818735462412468062940445619615284635448998683206375679997163114809861064779196071736315609275550436088064619356861672886754014783688650897580884005132330751214118996537932244315431102472164459656851694755587528109957818994717900276208598377806895802044919922041714965157722270315537287590405805231561123653024945417279302380805200357345218091895318223743982331950455382509040648721505049180135151331834735107789098264402888058176037893781443965272638086420235925909942476273527925276709552899472022615350875947582151698561923440778231839402784121101439240382968041468480350017963047440092512014474365804692140138802476309449744484708325425749001930683320549717534352061826551356688702177224448945275402870796740082476389151168190264392064863446238823073291680754622038330497044920106392535539576345412686315661433564916275609115595253337914311603807124086837309874049127564197309772203202260727136935557634017467529005107518680764647949978007975886867417943866844165545876922034134140104535214463689573740653684656762607140610066580978509583881803362197944865082410965281513508542505463348263947549941435787221164320313503491125693795940376381527182032978865009117732778512158824087663878353518641731318288745826675014613082265962509539865500260478146231101802250354411099146099743534200507521648474913166362021309184883927430001861266903687894779353969241423238849881955327434798914432126558519899009553519921948727388737154197049090496210933418505720388806365294815372831740972624762119224032349392976390120576649851667770815719815974535590340388985542391340751585121623347873624568093691292000343370951832985539419100063040207880369078350631377811070341051854152867946575621749407468667177286261098129385697681772370000056041771128461449382251275672210869386484767107695566695998787780052685329479798971763847416554440904336416118999294606576788020448552324148660108262653546575495238667778573077110251612406997651895826382417572713186605070123178573221492756388203197466981044641235527657511423898226833300252410402269313383859874842127626999476815616781528995046426983901507983194596589879047453882530823344050927509058254375449339380933774667455053147863265115242009883203015989950006095948245495932273947375161985945468472826009300618851688099862651780268910028162967309803827547565892290061468605559875871408580064532305632843924547852669983046184169111332388536331630042587230046322182355068631526862073140359072160490537397260501845220342681379609408547279351850986302019295634871674972751082675715852029838372801499965881734491694464038565811102088775912974151997102596857456129042610815878751263010080263288671956620600246802373131440032403567662309429214586712022062372115180162934297973401928878491847366223356961376776462041390819130063879709629320251285008194625415272969627243154977447158784122607492488059829295149568509624199814897382675971606445308448626110770055802764531675905475082975617377421013310426596778554670407729950391808779926913876983204472944472388058134004466286044554863236900571117206786775416913540135613819926830263539954945459320100017471093264964308315013502174679586837910553015792589890796696239148173515084344882654531769389766620779906202044538675638358122288314586771569047255670928238297833454141557586826580749828419177682604023682706147607554199740482491214959560746599159190839900853260446442995040133410222543616225230173736128299413855105961981496332653963886640859877814272528805604799455330173934002071827355193360857165125906072881362633490240654572594747018694463494956262501958174292537565996264272376052931347902662559665025894402315540609384243185814378485377499583701816134691757519725510106538090283591319232422811503893325986640325008736776684205384179173308055157585499815080541304936463938744881465902398505695262483452212825883039238861308719884496034725859866594155982017112977369724831428783970350231843948724625519866551886289430120481031280676417709698268246719381867562647331888583496938952976034002820732482112490357270078564690991633796060262572900003635991791342851432217632074513710609234268326903697465327640152535420936315716346052858075036936862453279861192889277728576299043050640076270494055594169437440537346119548228475526160598915151527792030451456853504986861725572873749377449305542244493821447190695399467426559922118570897079785689204675599303840947586006955260605460552696658795891009622927060171431933581721403014392418335374768368167555364337677221086529432262769706097634719957021195649192593960159514071057571621079340133352087816694756922721757472972521477693417757462193658437160722131233724851223142388594446921770722098046733085854889204257304200678860080751496602432384101038808913995426376231646147057690705575144453886819630834220754333757064403171732254148628498153602716065699109784767993867409389621309820209132225780797834178061535370554530788838904763103384294544529040752018318945633542683596834149747828973413478815160834738137109114382665603442144759771408193667864214009450738165842825059734418451076855542599295808260063559825151083531319499070209855134559828605970553221130687017352885843571137742132932905925744851595073411743940943263672758806904150347952803754883981109570220867506608277708951873190217045533885068194875094347919760782697105484089061540848553253470684219694809864998141919745255945127943653965384402256687926942065257148851175543453443147586087180248265728220409231064295023955331057921680036462914858431044258963542434134602298257453231837155363252995120967024011054848842522817057109130813119653053014625809892365755759743352756694141502600193849666752406600780857261301233263250000937166620995329616165403736870284113206262148716979963664740078917423274484895935258640990302706574360063911097610767078038410175286682240217713787249381333678667123449370844558249242522298050143798038308516321902943904938841129373143917634882909743489515973100213568863429013219550529338624687110437123655028310337560285178398015489998038935186634841078102873163693502060474685093250124240578775865070843297205317371123754108041282275973269014850541369430946866962986991942027257518317044516626110417292437755422832797658205355928604089288543696676445661806739403201401015094169421581615119132672057858197229582137953287717433824264620805291726185061932240196761996270971517568742939302800841591186803490352208080284643615093381286965970796491039147643656982049022004523666719978618977001353499708201544047161288936783611052013811596204349424890801682892936127484271119682101196440686300711591776164520197683382060486234910625571255602372007345302001171759430639651427278031601139057029246730850434405373185220245925069168653346720302512988513490749961637153796093371369480113834578703267455594904607738699688710718664123958074140598642506654939507133734249817898806294176751924382742503661044395052973936680250405100168657961252200904021753399278539410342672459433919076866660332443745674582255648551543764453446303039961703605651432915194831418874736757595112635931972422150040213569604785002884723846078091333562213752653171468443780713568625573851128607812175533620751126733962584889640818367283893040033590062923197873050852702579154910242589426272388335031388885732576494111379759985336598056243744962672803988544853054904941138268714224847797526774286863671721782307284146165571693671685067242487864351916247041290973139311777637275880292442389523509891791357809977589413661668299649433084847858689347283803968499278871998905648423593663031554417244202346171899348758372323067837783935573441650426279112979921176196401594205414567511594510724117071254138640898095072859271155957098652997954840799917015516007930533665907797325296248119296456564440326216179449876673724046017462322057509467225146074837494270752991458272664610321114344416392742099634281944408566183017475629906382540305621665573641468898945735859239055979249279311928303997208180159076314137015882846870038453660030843753722934600641529958968976998940194056757245939376040597942863252608276385757621851019207791328566256783941958246492828836934478792067788101215472886544702986490030172215592901061876713856545812375103698501656321007815172171172690062463127418969467166973875371420504717181424496671369462525855411060184425040969700298157171104155060568223192088775943231343903085505962726672110132744589896011455988608600373944495579793076755066984334525327174907264124263137221469500885460098594028323880656309289895646213499454065153103064666276518987270745543823211575502315441962058514274533822095947247120168066203342040337293379170305585585614238843140361360995893301546534282799042642423242636641469838720993926781022903848413486649650689053828862970563981723766201342656911398843694273656509735720490326086158290854891221870779905261079231670521498720246828204632703463561682739189038693566475508461561333389140197592199272804981283534591968850247356046097601085739285174404119165996517881810254897053286648822450962591110460127429663878893577312554617869480782416486771932074898904351376935433250399290614542556711744540296094050251520819850230437091706160039793780830981331143879194760010235462197439873868145329085737439911107959240519113762348881618588151440795196800223295973052177716185908581954763485203814361965126216797734550538182294903133306998799354734202388669096174670710302992545701649987963773820636512844431797440804604761792078359493271627982762800126437443307871839951164466237429608802459288023362014226737783270053060600836912969193271914506882412260269878801243284915387657152715995776374658751035064458336615859104239654654790513930652427649154349986225879248458675548739409928264486107065230299132561739074676954981524986256480880148183397581896455757546744939762472427892936287618721430359835181910126784116730083777819614526782313296202849421852329876550383526982624606929170785152343299213135610203284827897970747681712186866250740690805089493108043062312343444912305336756674984052623856377849641533004283902475214033860959759422787745958512427583334631093107281381402464316933859387617746826022907092025624657967928226879545537475390079817275292835904903102378234171174748334356311203636764611166220612521218279275869259596774842818973087426049951412368465476430727709963320559533643515771177325058230250468713127997522889063899859388495566667959801991711770072403938800286763279314010357070861928390757804545073094924398528585520755720044365989197666690975043096655962203704633997787015024076446401299558424851770625126796127247890620701415269685395849497639847765117350521596255082026721919062443238143299567475969350407357422088642783346986640783001626444364509180629886990799574567233848111452096091535018811737522407421049094328985814534085424861480902755429662771183376701320243682820372114366586086135658192362689790480262800503180434185649387493495650014194781331066192690703199937618874011542960947761515015156174086522922653577484789178817353267439110646686487665958409234029943697794732098644396902473891652141360451058583147544725877563128202020815805128910640280850236378272176737983956160598241573873033619684541798397196021510632724351198045394861163108640459691995004857276705375375149695976372568104199257527368305283736544824515653245638968400137444876729447894381714309524467198864418028951899272198925981811273653343057326417030921843296700063445663129711623625139038457045932340300766785769101817729342446200163411979967937783789867953103309874779668446295891726433752837064633584631287913468174928335357010397429255270579184056085280451213586130776538915344626217772077139279091525125359093841327201046164798899490136634437461833013069788576071239685669794526890823900240062904841411851992833423702160542210153403893690645229310177849877133178624968384814300585775937428848090309448560719861335945785489844649310081492219485256472602085970040032747873242812890594282342095804538322599326675439406133066010428056108199552484417209603897650547602852188841045380273629594197458259759806686313812340798932483266747783153894009791555111545728897243238238158288920231629353401940760286268266832543211870184872925508900605704741957630362026451487130065320062529997130740323074403227567654282540590406496641430890131668605135823175089626150971931197934832149779711778267454213833005033927984483968350615566140125375481767509801489947262720201651182876338146905833189502811311873343167156101828890845483613622305960754779052712889062933039668898180480028136273358435575186452220680532613855908641438389667227408504340199170574306663586730450260394271445854015034604869750536964694244284778280737384468922060636367379727101629446116771511295328624831613061181917437981838177690041108888475238112673857223453510263158813551786525048468200148687479704482673940713866525789475314716141496506553591675503120592042060478443229232099920269001133203176150709111046696398924833183793487975993552081845147547402819948887349977721076019670605039722586177330144591672952041874662099317362804594468176521575093400621505797654380221236041130411922616433797969212123327171283865893019930473165054513600842340840989052620744408690499057062261998662551234235095516572129042770174997809579496555247725839992672838972191931089680396289797141725913507736612135951307939465446624725878604021979944351968692747271885761762966224835714820450829746648759496137083429181952302113779855285600896195236261486439769851737591373500457595750790402918539316586435222648748986606071679040087360423896004893214078088384679303363888044828820528469071241823643623513643185909575897164542672037991557617230122580807074029231845576018784636002354988203412313709097773282233961648445422680793614337346329554447945979133457820926404048032684505029349390805691949784799006784022638046328198823191018007324619011909326755991697210897087937381126518895343855479633445673629133046710761317894952977759684788466629487297916736486901576929102265623505651140750351155529000845995528991527821068639264038663477687508203030002427343619325595054330208961542151646780707175695372739034291929167924764654485029008659909117713186522705506250230838373155132586016400266454372265826445447419479825108684324610228608211255783568532405403365783667855924322366746971325734172521072210192022872913675975127998877023565342318544820052609295200106203302370339035014653489773265340269814795614914710128649113180436287962424172578967938444015087705347980638426204491735538037027451149601848552408598592531863940326363653589737198767976001425258140866987282680942715203501349883314022019243107560307121119094839577552220443921776066121089049500864065819069101417464261187958337731924955000917313071033118290232365782051451959796793168896282354017120657997941110077759761630641966894988730736714966033937412289660999442073976457879410748713407622755847845650990958454401127217539832738803339800111075672817146536838850090959553185525198622231479199632774688671221615960338241634730406957886130867143325837367143377475902433818258011052549927134289328560559927797026177831379707823966510208885057084024236911576324139214570182097628460727423025852891363523238518656669567664136604993713338998982834438312143134839973760765212228297004212137601654412202618026593336481268749554971750435804043214712590373402827895669388294736651302455839650181806755703291099909207828016910660745460775465535569793787725050130117408494266180235318039153946609915618708214991122250674708986798360734286721146001648694871015369072454044723418872086704064586198819129621247571999776270910600558214443988851901007043933818167661357528610842802622727942137830494146219769090907752046198824697898119407950483894944162926281646232262992321733621245728713487465016654506165691895200018023283598654359591379313074488737575578467916275748470026469270411435003426953805006990251734293494130234999743488656613324218976076435015016468482973257176780385318750908952971162614661808379749778180705544912697986437951236788442921001103312027393544230834673330886342222564543352005166620470048314412589269103321961896215949206404160126635435902209308285384094958718413443199608827122467530849560974568181334792380510363244651509010752499624016578808617263695030457696989411490182661252462250343047664535905768214326996430434327652215080767826042369194747019205942561163630336508690178304200931448491245582554023757709799828404068330406953198867213723361189885685571808031885394858311979582317693547182828900280523701367670246664054894663540322931782511888158024641431968610654309775361980840860455391944341301646697855500052852185569427115922469474123852075624977347391433208353894133029606834350370066977972498152541174600195168154447548748917570567975479747913533534148711551560301007270609343637638314033353561465559871355300855517904084103361510887432294146589757106380744755683150048581267408296407904972421484404594326154003921957856357948438372235486936616976603589085073298864726461362503726404095382643050533674938633805031639159144356246111396720748611592467767809830588534550005337892687845788772364594747282823459339412681909060987447321108197651772057719246358605121932430138599136885308184781342160803208543667563471157202469090593133714809001670418789753259828790404603630759907243221339038582847672516796472722620940609636935893481671619300434368088800067304635181817625825321249942983939573739662617087594282651101694352708198796511254960586332604233724546270965050351105168118564837970780236516303336733045864854628759209657513164150207761637018600184192140591388171729217882841971757146566303889816261418986535112954739740472628785709532210331416402532356594492794033208065838801412174107489526531860833729525593291205225416112839775193182517200865100572434863916575179642275701850799121762697296541304088620122941198121256913863470276831530895681867006623859739504769934325121408518600222928613162599730018289226825602630860233306120619624524655229587266197859949930066192828218047849551724625057872504246029231233246566100457073746303059811452597070521150823096263143173854804679965630951040800659247515851259509137005222807150177349235693785687202828301701476413754281496557364791185073693950562657354369737003307309080879223985744921838727366807609299778021121010750314044013767742738601592303204786224486736130338710394039118281555520711753797974698485288822922631381810908144593139959094330578123069604429035126411146925663266111229212892461422869276786255578716604856804158651515363505371933559470765332032236600338458995521950949970825452836033017052202969620295281901987436327346382664231751759707830031582312580352732233592293634603698851850151903308590153868852820013333918995441512901408259285381895818296750684308910922189311896715500559854291524165287655270305585799879248256269476041976799728930704338324805778969981775553786397390841237340831445041168967057113016769669668179717546251596792963446705610620491910800135906677355558324602270007456652368300723324167304311882220039792834561782635072071469318437859859406604749736714122358916072715048465392185635847915313938340309927588809514610070343296079187782562182848824838555872690131065949164518496002961626721956524494694800008228370679740690771408267133335283722688607185218038562012996955219504941757731460333098360402297542520413609338725385959100403126084902457584858503901194186382040400883223301599454882352883684644617135407747313756302379246218379299871845636707823799326654765656249921401112479560959754651137534743837506300608639563991747256502751629053601162659245615089075891082122014923461446016584953822856897664720897484080902228934388726679078631722878662299375401068049494854618415499811738855537058138978633075317537731770290455463877276459344799753093750672654575864675748528668796799466521927806910263976794230277500862372877373893030682374935127579337372329673047157461847136497432364271376497033130792809307434526442784257547129878233218661622538728101649635619320115754152338151359869174175041157614964400712461722564626271068784318985552410989736059762623609960723413196120980115276705862426930410445694489441767246477768214852964596056120322985674222038745807886361493459252415784339703790141344292939362338313663786399742299677360709118352863648404284538166443270333580863811959690925532187877704906731330762854401542372197912779675573587036326886679345019225596508672546514386346780370238491495654016246997795511156381219451505452943476151689827080726646695878788025080346272559483143316965214737607479584940696840169328594879007915710462686846290618878669775980083548596909047105531283529870148205525349159164947851827357946527215428604334539741567593858713885379765520499330059443439617701458237183845839600657100687491959424813973429594343834620709672240535795026119345207626473276677870770295552778365420601744541189850495461430761413242868393220011002811836459753121715139977638499047309288585849976198530966787074266488266074120981179613088737240871944190301911514313984734780218564565783649998690303318584721935757990820457947523260915688895471948667886757250174687846604507640946384338316175321431226241891248717073021846087068048567002913315674597026665978558321350999098007773560871778991145246031604260641319450960326960811473125476941494255675629136169013388991000704474697839118353139528221827922256743971369287508591458153748187860647498977203142286256892343611460469210440626756752851570424588205659828320700020408645705969272001633230592074475674592652768386830845952749735347574063634614804793416143794573631082494861296490145888596742365903823794080692956746740556451691979557783252734388719299587289366601049588871938037163012292575993631176637890129647742728356270301685042040562708842790210951992272038696107090784683762392624668034057191858825616400072548312857040453298018502498053038258394911173379537130525255139802021573025093137255670921353391995076586840702521583866034123726320360518895535124574667372650417886114206939154684458350912999351307641328182995978350845145645539824214514763514708977186599586326922006703327271414744815888023721142805425438323040478363151108634190604586498153144165835146804595156079678762909497355342007368704544224652028815168759894322215048504439582767418265596407344618788327877386689363298740698081509225643156663669118376521207505628143586389282677952320644894190700075453716766504822732261451005669328240282911533376536609534810055585561769632926260054626157809612443448247304565140267255957623162048589468787872276977167162409433034642030835808477209853277647498914192989049350644562939261022322963895667780719985805226852686286264990482854247975118594708142730836142139777729849844623700759696863120457601206425305963136920209098382140897869110904380744741981309558386938071112897701370282933568503943117682532043813985424595379869042942969162111016328871139350034394422408846605982053851920363640493353468329418313418653730215815120842953680296594998300014825109087427558769093361310782886951221942896766911498860115673085838587984094429310289611666274702738366240861181798912841568243732538232408178394289431714855144896330459716368021061394023972319712672448801567059351484566251815351135832858494389038428782756619667558449533630496139681157179257148820304576439507074473952249999739208177131751760528958960550980474176209693912343150492710769351982142262450302477076959354892867498686645025207663832711821239513780904925768431130173148148932814671430701936405796972564310070577422904587613884396087473748235862857770545688920025757578155398600749463161667995146121196330051921313670201565053223583687801447432505193778505297825285628709387789262244146588184061807011965644505131953465804475243861446264896840585069977828871738556140380754914040302469678170361607341906780993390061721109132948784405191638674081148124198272720128558902749697971904394538744031323352740922690713729711243913633268235275414439385154541515078783086352729220560487321555587369057100546587368136023150255474626045629975392730344121547939180508867473633983686314049556509782328229231469333805236075106925603768325241871687977332594789054764198364619265449604291641648442404866682936850315038140139825756307411514094888916174745713649369890305608460578548105000397481832813233795485131523311695767162212174264162334788428190585024666111153630931111508666873803553744042891971738494245151288392112278757000477275983602799134462708178008143127553617450340104199854630239352001181917552149930083295764751835291356988598691465933716790953457399340626155089992760146196342544541318547666914286031506861275457294216971518239766377621313808446434597250978303763666598831578213775897580212897412698700567184510159421628086848708346019845498699545320799639601658723421183476401873626578199341377405980532058607120706003275712473996912194118976866383539101407006385642687156171711948025067421056466509562768741814372702627313325439455280365155240789786713497075678993587227695330679309074438345794185326388546525982835794302064600935465847929471558375777524568448691000256995876612935422229990229824495230451885380458505393417163534612207508466349275895534815586501519452657734031336280572494802186334718724673190763467226455245539065267624902252786344070592260322139157643677940852473901211229257081703426468865358756397464337701769682389880634335552940425429750864043496507420558646778017061563940048132258803337855474941584952236679555646241384311567218111406791448081671053143206291289839901434939380517182758722310743004606009429319116240335167368841539471631668246641578284133530115056414461841959116908351767205824239504959889568777641002998707254513656991020080241502291639862183778987626395298735101204297575954938548302335088568767142996347318991078960130365978503658527360562000856023845771968014422974085094897734288395478161909295257342910149244826003975649216803061753957578692389841823337558802394500057864697498804848234978137921909527324465694243004443109797912398186354495339701757394776350862538482360078240638813290113927504051336961537099729920657893520048049097427951060288412620267880796026362323452470484362078677526756062600480802676953387329340253983909136864391474245812875716533221455502489343617138844444051436468377912027152760533104132971844239173983045996495185265903463134511438054280734702806032997617599091775248603051397061876265603314909704605291522745394842091650159907319227985846753039889952487424184448836947562004405217044418814382755055671919652978490837035067787859273149275438303091548277199792590936356460911324258658591270335041762090999715269015383763515682340395582465288134431879400974826232299277267568837565528463201216709018385453129140148198712583236976638869444531416836388837541019062259841610505669411945900835242457717159251724802116735531453217470458976077933753158467648469002187822886039823759700820325166230356280678411335315641990618315444615630350697901452345697475188803655290666346765097935912821539327188187363880149976176253345600857308634601346988279293653160578809044916779134204357282978403813273557830160356778802839602000996836614623379684476762758326536111038089971786276239143068550300480058692900771095947918717231905606770193117747806476129573469915263225020549745052927940935602754898497267061359746891675470721593255377040496920443941594215147437258065163604346505830203389175211823268330854265869564346902728117252836651394404028971809268148613100324368077354127806706989732499121663687927733539799258059859041512788830363288441492000794403138148677564736153956361230838649228080327742475302698522904156273799042707793301513489724904045424268601490903431645386572842532955895433855598047265855683549343087062946182406407077253453327187680543971832859197772779342291403117347997435796758829665331605009557300497653900031489660946479744209869240488067365642832910628676867512838973179314284762455805925743006286482737810727732724663485347147003179075887982052287704662580601824686902349476297544199321520157733930794640228689974597043282871390845763074994515866941928205139445730882961991341451140354896244421551044206734219774015943465587625072557996184329509894733319178060968646999459020956642019887519260660293784963961397944644204756335466537880810617392837167754001138418504807386778370125556094852869673557096224450455231469530293955397511109508909507402234149073719151974500135516866533447548922749186995155200134477366895243106634261440242566057595969728709848800070881105137135051739857584100258168355652527209138674452009813669289102713521004318490976999937982232079127150769492791109328163356564496139707655830077293822726723296642362725561490522002571891998689313279258629387558152320659207504814010709656290808920331667557143151058926807016695401286556721086525553250983879701026878983520200313545295446154799080039842100727651065018689695850518117517520061554631325030873193668572804652466996145979835916232876428676619838084025401854727025108570892979452892931617865619040249175375023116135478638688169589719226068177473448399706845443349430130853846193779567220044025280257530028737909240957115983832754777244084820024252207565642340584247627953368770527143803536335546407740499625086389054998866846782206897042802323223648307468791241970240388345695892887900190548486910845386522245052625004170154000418320696241527877786978737411123069796346364497330901785012934039351590096707508618396923872128860429158287902766689507330353049589120827815039263985397698566743472317125595210088754600047839586862387065217155263545570916718321936532485612730347235807418654418718068347036796661364710601218442301001897467890909772805814528681646935959956413145152542699694357591153570510331933017357051093249386494215177140139111717747667051095417921047415185797284551057794152525068326076711339115083419409593855312432693362622062139483037776383659079538245063539208637810064255406614153912594834185387245698421418054967345870588876458807561648173648925447917290484607183038799382724892502843882747680179449396785107489163492571654595709660186217398303383763295838639957861967588196292728231518985247203722854163143643015021646160453469077972542076993815655509097587598777853090371004572781394284688896549191320796052992116788696072559749273738460868399645765121830906019219584346040132864468332455544691573423417554121140020833238587174343819910303730479589917808350909690059133881140798866629150826609950480005733796189022594993477585520510317545710917672279703558303443507574354804232038235059785480383321356430451075154902719703406161225479008125226689517328999119974451033150102057868222009654583569192298394678648194406926566711091835820697436819141111624297236595820300498114184361874724446170032204299565198154179512150764416468509352357150953767889223013537037661189550447848546996830524063779791764387137962058370727629407224623181658705151014534714543611362067204432802471421803010113857887618166899771432568810311411461753629531904891733537086946257728076657575803946988150199408910081067460009028339271528149425660367308935982208312061001595091527976958832295642817585018260189152896129463041793518201634971577890841125058672930451897437558588627013923989064180920547114074030807825252863989357331058593683257011689534615660158841358008940036908921277344337633112391845786987807268416886683386299981491331151257722551492041449264095562503385049096740642934876865374539238575969657091764831405682501849360111316264973725800950096276113394477648011331428029797754885212169894303237326125778129729979705890578333552992795678960850044741257843447897263108797384453644938984156689500581149974766837932456036492103307625295420956953980362811727586516138138191824942382681276254926721637435616941731406444833524966907192403341310695839804817435395011287849327160676112221861396065302268943533633702950542776314160851261460778270033864886298677869787570520884227642137223070063079793578630609104273014642634649485090622886154809034487652012246507556579576650525200771117328270054815306874102283470611469476921046640118479380878468506873934640383655108811633845661612764307629772276513650221611782389809866570891231962417400398325875539072140478231244290498151656214384433051667874504178256374700070032182961906119856567121016844398486427509517323026991440069450675736271334770873858600620280641749344086411921775758881461901249630500458637322338408339405552457364566657375945746119462316763116272331775367980255755723655899402683468160581477861052316091534277220904609523225719898420622655316334754027917365732510354213348662854975886396748394758241960031845151619181054752224439648328941452461647595366431055318199718197357733995211233402211061852129520591739860273343558857597464487242329430906966627782952334846743844198622810662602741090147707288743376302137004762666272080095942830705512525490535191425261481990961580460484940916212378732671989902585858382031699247642863213807778339643463630605622957034389694174841220217209992126763981362072070688091089036249410197035715457042189940020295602473277310745044723575914702005654655365199919677364414817014019766606821468572506821725205334758972934581008047272726628140279937287448901173526153550851468512644182692281321516019595090067077804966558649007457494179494427784576002947288186620371440633600918960486196958989347012431892148716355961874024744429279181937280612865285212809912640099660210282643201319934051411659958506721057975985722896316429625686131824571401163186940659437421632697245179854727935333010468395822267809909473699503434497989527608797792311427448712545461857564846427586794717073054135624470665370883515272750671222069270467454711931129644361684508833763841205125120663085392152249841983616365721802365773099128010643481347588643633281310248977002870960710286945429601399601768665674236234572947839101460786904319595625864923831905044488664277719273370945487859206618434848860550284767627884151895833140122419881777338175103079710469769556888524641896872316648386689040499323271223308673828583208675295471322893987434078232556405213902831156532262166965728386428147472150895371767353677809050426188233753991875081609427060309200293220683946254509027540939217663324922301227560800734889453033733821347811095603630406221172138532067539734344824739529326478228684725952142744201655736939899315994582789224713751540209906830127551158943746879433664606774330060436913041948648563273100073137355798700288461028538546049054298239030254392072114934168566498415608679790176980084138946276316070715690464213100905322250165230187668360770668441538518661619312913828713217246718844270797775997734387024299462364374647416722775575881825886192217521953501059771740654831157649758697395952113253064761959371025046777388327564069167261480120478546727216936298995696938722332778366354362303267406398668521022464794575556009114492219607362625372640377961073633456417032641729025228356528257258838011126162769444564075828870551036371432734151442729311076112920287330193209891003467469451119668247794482977979218802153886714255491346842440733729594396978743656469972010142006568419106223988383238742888301468566856171685018043693264578845651036009957572489497040747103607571162713770188024384677302264288000061579090654780357064328267889647580993554600817306303435616645640482733107826957391933883108757267989430263458614812586275655463792959738311308875641400875603224034605033506544086791947872692268487983253267579539129162051923617960118403483367983348691123321536036223857107111451901404700857962668429642347737607789323123673253345964459076786832280321573792983503574254450554484559195984095449906514113952637913865466789095064356361417196251594151496683869652151315293939728931892822779079967054102901402704400226537715383098213985078137013377517927884362336738737445603981977523701870439303720871860725809291449515001365970079628036561761023121262461347004533540310034996909581983493869952623580546779773423940371857588444076438418363015933982182060050248969342474975538004087342508497033195711473289161331529125139746486537873329946299175789451567523453034776902371552034061166592994861814970837590853536543973403728979479780695888622760853314769669960150517225777162099755058866234003857077531717737904819317423658859942551438874927062817582667335979088877223327984269351463187307140045470487777875557719795545939480850221811876556482249493892953918334174504869902225951669859333236566615870338956352011056924030844249681048403749698028420548900507694573564252785134607324564886916482121123205797162259043780164168698430619027095093970721543407007412772788543136437950534391728722469774970263656795358519730252539117736355895212762000902757534292972603467243438086449046589265465689588379609733944997404855036178818905979858443511145877458340214922901381566713618364111812572434231759346723725265503139355763818586264034012975502187689247850158842834706562829165317326254658409430137907863875098475253716054218500796273635442041914581798458812535826201959848486041444881442259772667498233841483352582782379891627962310620305867374164898335431704849837957976695542247451796319687368471431829917123672926465346881069664319515482548723939649430699143965095177573000530383872292571590389555817294698189611788566829851730063009026863085681526777793453071861079286750880905310096291376806515599077378622031023321043959935154843052193284606434638847261087033977355499500897812409314545426531493722764583072065524336967529135340482072915287202858172738993570023652293957208586188268240275054413688949784580500814852077453806407469966027618880479320307986682510752840833458967413051358644673783302420780492530263344136413222677246906420278022229869660608745003179594891088771512399711004983696818624626474804875733066976563871138973204754881843083843262621274880823537981108638780262448422673001247784623349606375501911361882263142997559283997492290218216114375040325722245843269861840030911448215215654135722985513117579219725642802816502209300620543142372494305452552847440557712583616082673998724229002446388243130142104572543148885103379392827638810067787045165634452421923597184607060557852141019684762016047742609513028125105519106435489357985004848219913276858188775957269985433982920853215741422219885460422596913697019404240802230487421461766499806426154738089014710432538304812499021297366648628896637211261388203583244783799671776564929180148273793283086611076529634088658885876020746313772186525478589499105888404859670811440052710462015561855363577449613989322534235132828412512205502232543299700720586732974064230555909626303690712884346293181199644307749635030750641160278661535079835407900995465869181836608687544285354435093271016586978529972920028763999329972259932374580697238188276488624214273182902068098509026772229756055314782373468775941248571417739784640117322183375644114155961257206978891009295379474838591882641069984862595938678980783807417092886571506245774894209268842990249328267706385155024268949959730564776407341938562120435540159573612545504511489639426826573552580119681981269139381650570837772741314996756099692558583608035983612913943322618163704418485741297516225298821410264973589873199328639440616562963408946455029888317943791786756788291154039531646966697410497274629522295449895482729282030665818836590717992315257224364076333117611785999483789209299097590143818407627591394746165721404034608772891115561911819426915347036853710079443269894251631938627674590964662131180212354141848702584490493297044071333152324098718039174920590070915939123415312919965261703678075266102763189987312868565808534173388634788926278491232661378849868625770251785728236344620799746267049078111286889727621452094237682583251579003109171834921725244310150033789659466358143900358264657306350119311024298077895456618328036142682343821371072045974433698321851627568704746326407983045173927904961864718737037878733191060141344573781297217729139509224499697981763116815732130716611483569240520220900874727991288916584880430031716494839474878493524263355000868667375619593828486294220270958626786138111918444504300068039181107883626288107302474321983130220997245930508678206181967460160243777418830134824285535557057363346731991990993151516623336482956366229508989876053387597250622990782978234363092739032411696533802065864015357376540394825363557776624033951684527627005721217629938090076108834846840473989215127019108200401490104163031478374591817592345546043380676191975093444940568735642920899159798518899475595002600360486681130442234398804959908251487372454476907997239753028729640623807479961049221836310640681564324577056151517678926783226111484701719634260358194927666858245575071799729292910390993987890240484269298640361163316378147311630073311811782916466716393786382364026752430471981899141810006792585897115128560722653464564191523144657871890696241340914863803226858426086713964747534033748557899999981282347220594397885724685881521301304930508161826030364331237210779716442208668251860796320650614950626763529322159864633900891336740542630450442254727133568928977542509452941863727733765992147417855996132233029802164956977565626382803164924946208791848584712070582102199960826905033866314012757218869532343228193871024777019809286865560040292195040983817646216925309648202552258578751561854598552629163846203028316351199096427313786341817094831007008869891320295626681499324046444622449077301434665667357891514464914213157323023337726619439146993896106235539373457544912713116956792683628853844189395994832974534454343291735381686237158369335842134220494984323412527895921982512974530383969671250212321328347690644399178073776793498640788610912701281021515875834195122329941043367865399933699502975065065340158922368586751935078015410443574775421237511323927734212939727286067464029998646634482530033972639893792955995295498784683197378834694518845431570716657320627731496249615963695135876617918126719735500392156215230284362463958305748680570740029420272030872611910422048887488158909947350973989924061891967579780880325629255260990951945792413128076541534738401408564229677804011884269983961174068516525059773251520714756912507044914610851353098950477927012776068195669927988865192208362915554703248327299823968548924864724523274688807688055214837073214942385559476358903435124815169065958709287304498501901833122154102228029364885681781839122854280185249730404292596405654238786906478857857784690547298124676817960379380902547813863742403190163547015805857196838883090657108893360742710700306326653607917293657007082444236600560535767985331805341438099689608863865600536862212069168200016565166150333916497241431993227307292541461946917533732166834038371298989555003940181072058138608623259572481237300667005447753347128280174484442085308829947161201485398176947152942927342994358109757646129620430958712099410436762562277927734966068644125923372831482442626207578980466529169923541921794141939421478752508311583821872042146471762392019176155953062928515514238670797992552270732577041802676046420219331245168046488968811309584015827745684258131022655593265914536468966313089359970843209229715282967852823211711077714816209242093636732577970816223062043653358367279639192605827493640808852190711427164135820699696037064438052089332457360890208183655622080831499516342253661882992714106764681887891068372362384943604581459647087993780654087471803420974602635392108170716590388723050446180989572964173818536429994597550418750971220851905104974096694982092126754325410306275405143891360901152899421487401286267550654283070316431994269520398467355888500287485687022801817169174021782896445617521903335696220124805586528884113390065311683038962103842117086709509023699015797644110264762764126246029356481418724507458464463187306683355520103159508555388524182475628884760176172022448745568413650639879073353773275596948671810314758585550535587924612751484180880631170875176051997076806974035201621821261930116454435366569470228366702295279069940317174530323882010172586443126357992474241790480006897431114686880238987372226330180332883389488718873996614929173993698596448922499767761800097245134579960867174216888777536439129982941638513085482767670741081526618624987206265253028903326833514107609049302425901248575534774914516830355423953096135392404636606132043356353331756009612482720241386530478893843324474207459742870548320285126111503579031657531380099006509830822791288003400125429878487404091580230716441461948407198123940342538852995179616598724399139758101888471049579978285299751706697401064937124435688305071796969277052491589468546825308120863375004241434217683365471877418874007320647986538147545378895240733260127788845227997325006312753563584925476510801758636206309982400649569144265849705648089797635842894404361688849379684168198737370965810885956678094202541415234886700167559213415257664656392789889266079624918906850258868711801383394121994032043561825677603239390536359409175705041960045621681920738751837707256280986053459129710361879331426334335135389853646167212247213901371540413664506560335819278840940554811422312231196329538731949887618448179813892046605324886213027627978751869828992698190464999176771027451597341058127259575783675948311353441193138072853237625595029068470360823283909940139586175032726208557470317059285510459078529041114765829775777651909530805490913273895731568385114966007586446635079137758399977752299514951304038594790043830992532984050450252649208963252236151951144025248086442539427455594781302496062022217255470219421378965811735145950516661908716676926296165873192528632325059491824862751913133354864509105053930151663267704575868285484573132548073212714901104252072217136316596041274786469144363131529189113781071768903242639909758033403952207987990457823650680998569157323879478456817115724972333866358740424235082118838358467980044138528688649977452942597870504227782957063196283326009502557171321085928524581266596643992405071516105048015771077692849408243670341985953055005575095622756669767655219778683635423935341070105699728107633030266677337926219725024097429051573556858445295884613793866494173590864911647840062362203886635647892256564052457650178903816253299401702225294564965929889898675951350678515106711110362156639234596608682521197390087595423995994794338195576508614772549514691657037547730419894028602321197138560223886614378634952527549846345562181071786041868583416400661943209386194096670071445443339589833730052302406363764673442430253151203940634281720215699289241925589926950990348562920462088502983118930753016575970939294873580286686398833057423477430322639732613922881075504527681540337600563567851265588061099822530633756588413353139507893059232739282393233115976765173858006328883448939208301050641098263070345477789489097693913699034654101262157491892528040685412588798415830277726845082469110133867234320084312070141358375360058051649795974474405987708730037402799493125155718128377860427130146133587649361102515385560553350268128850735203095661306682198427636045649501074047812736103893410810466091418061392699974736284408679304823633640551673136972515781483636562595081576391789443353462588757589263521841729355129312059371941142959197922366110241830754555875270338009629751853941477752388621660886376815953149836573409661759834434437054739605565620240225002832897676779473160626608347577448874887767313967660115528764899089558838129312400185412496543553643558833347599537867568213213690758255303205805637078993797454655161227126127794885165201230551177069240813138698813523402404695534095248329374853823669905566213863671419566722911164945553022896633234312027372041356938519475604399600539132982604694985018017087564693988371424655785451130727539327644630377291674147339022131910937914267337479249126147187149800212654716626286850788124803926410988113871943297491539496189351446427410018655318303625573156604828599516793820203750491675755361252690168510086900924523351770732287710214536048092581320687532625101316545843021741585195981056579794857856804728817234507450299463479666587443236110103340911488544020279878443719132303166915793820894616774961562245448420688666377844366068995189012030760590299638018641818590754392385695738787352981403675016779390711041214849280247631015069428805473270383927883502112054575877814617495771114637678867282962886601460579591453892090621221281296585099817869630160819205353889527056331944537351189287751208532827788959698692544658345370901103358025827704455019492772234542331092212165842204028836898712929634277539925647501853769487133645791043566257326928577531232397972619012269101868348770450828552676443264396355171891308476798305746933326423561688502358204658346880255815494286987809144809949465438973063907504703432346188195832634753864615027327386562371573764158652424754060727400833642497146040949003768112975920491616350688262002738322094730539616219012790635538573934131499258358227276483406605693637640312038347998299191339950226104194090427041012199142054316469143042888160278802641670412706886477841514803547865071198737666680570909331967932533926397811492377944615944831673123821464832886036489081938448361017831673007362445710938051553587741136662187678940352249097070217051017403375035897046806614096660113211446174998802572127839281657874649334896924021158485779037460911912894364673057725123085005034445204540126122956041946580503451126030432694827253838077721915934483465266423675049621069881712323857469656293517338290638765740805103933238053172566622179583790882460027118036774655544589367711979870599611248962055163704357414485524184160016087657497227168442620498938568554883779639223026379213212412993163950991516403368615709373925114331859428829087362960247359386862257304874507419721085223261184795513168595707933307728185053204039153965407172118767587011578629075629037084896181836574497011819521423120250679444925371679843972576040559212773742599127850324747899649527819125241733032458517904310541114562438515370114221190311326399917372513286490399785283522559138190433022980300485168921739122604366022785153855938005431255688398481214577199073727474564316825992618951194357389222468985029703486486793772964340210269120856239157162749478344648612119593648100285311570693480681288578997340974591465827474426377154381243270293575325050192546210808878698785001304198288460023826623211722360886195896272040877269636280830863126120552592186802038575753749494750732735241495474087009518480351026576935576573578154231330069178867567257548128326981017974779029505073113466594614498015832452575525572169308870298905146733182536763958510289066100517140018788277635411167324611445217407261686482120947641258406893831602399327811285855370286875571124776734185028210997690940935842977761014096479772867760542704634050172402056794613899961270098179832661752289072155604032099460710850646893276711030441052032787520250160261369565357927080248513063090525594508680496747243133687007411983830694221501059028090117033942208774232198585272872666758165043050615223476523807606117133483549124864222599994480609805949385097510436188547225312391782136662070011442295936028971119291407642687785378505465276714235091212957586541549103660790952518853750484510493568563703253946537720933814497346039038633919735445192728679199816503500828916615554502076803721193735616258576547233186212874016365491589427356924521302829081202831863415708208044385364609457266097450894962174855005463849423642505421613219350973054855131254619206335222708927712370721318638975377780134777619215181818704281732649824197771402273669804610768055098512268695050152833747319916721416362291728952070545649769309223921515904016141991224489072944920285177585589256954786929278546498511610541622594284536265973807240462880097669112390898090750375588873176751849064046688072154770016952152639183539206953927078400715427627817358528826888924784109600830823921138361421055421922898832489649803992970433392277192265516431402346610704349198946116535867942547370853785330351688300765445780100789523432175761024670995222482943328779920348033026648193655113090657857660498143105058600645410816668773781243506933224399157379680004479470781900825225567835422703839872495592038627144756882737654010708863964447356186673235732990109429757364107453179145497448406332944362789134123802603271727697046603624644568125079437582483272458334384182418492610071933629870767619558996216933746383406233229690903210447836068780856703751174017735031003640941421663635108377163471503255723228285586715569716577546024816826584348170463354581196951951303190391753708348331255493788057040610494232425275568499339300022356520739800521368476720934834109055707444835860710987943990314410418072640406724751802661300854288697157671035378823413729126196720848360417399751737104820844944497793107634200018056281983240394215995139856378706144842895523994105185719594608034531961862910320817182884370792373348156182823434844270052129525181457499520204940397543103762420753066066361299402999328870020993540571639653316591356352490621203305167328623117336605341662573134389251652023977929320345332673785110273499202035153659341896855202218967616596737856438857779390857144229276136931860018614536279044426458634840678861845693830598254190635335115954437959520411516923229666244507306884041165871503174790324984758760446794727400249317253253024690658465170684453425622083794421276539080240892458489237713009922398664615942284682729421271855885871194023709604450776835874639077929015768772582568150771030468931014916150564813339147253220899755424214536418188578190292769805161489772681037356611008280193211981572997129653562909528082075638326222154336111431380128199309843709858959922171319201931483516747114206340684831214694166145025336129666221918610502376244202764536918134214777705640151069274145878820717583877775766109988290700771525282968720973055194263060103060949163036482337637125188778403388208727126888940282559987420667464397415194028978426721188268307066792410651303644148622447617008285161666127852267516407694742944184950432111702826901246014151116895235697348244118208359426457051679237099053642109637325192238319235704845907441731633393231416674134441776596906117187264616708352240830582265523629876776353763021049949354609505065379984529085480896385234330201923298513701226308161616926329345847842313415094000194169420648929965288314565506360959196274823713597381786955009386315492768866216741393880518181226901023444269436740197493170176314888834640573980740362765012218457005225864660395104383298092257345729217351996326961511075739453380920851066206498477239766472997978863388341018134529686425993812341863416196573480478201405264040392397335397499809802958647467639614829724337265130793236739825220265615226364615268088800929515324706841740654900448162039465860302242740567886074365480645479896996618877241182236494868749202611822039759705955562780476035491135563257047800580149130242520701943757452070569303833956470507417102934970555580918809040032076052752248874710078168137881329766393021129234669635561448578008930576544439086109116702018951388664351952100863987093438694635685494938849138465650406487975809980774625719548216661825375164891003421088692585679582892264606622346098857015643337998402268809157249484658604674525516006912937549412052518765398468577689839610123845737624558437154617387213508654653583629492928167754238267168255977247426124169321851094852735554073971297228284705889250893336115705310267153627208371364311477562710109181093497284058750183703105995415783065973010286113600460835314169393584236323831070453784120562108082303580353262750761278628616703142384133812982184394404196862074947669054001187048032200135270596386854668291184326919467694850610054899401061900728106054971605970522559489638264276175404331066814195143453556118148858521663805587199965229631812482055779537823935009394862924879406522081883565848385195621113001281450164634802055293778787855794256816364201122935537452435818507404334828665606126277737931096237399592206356298174515271904773382780749225653211931956589182043595773927606824192421836870737072429950123307295027023668469753629514164620731888774086639528730549852846879769859640536045026181304962863698073982292605135739418307479405489862579141088082847460411892712128959008740558623428063993817249747804010436002937363894734860995769799839766852816213602045625112810699805449755134571560931304007015048440870107697283605177008141471450877818822423360303212090096518068255964265423195751299097044496646637379005159401065362164156384623947718218018821926361419187408906818441479079988024645043790300985271577824832024737267457173045756768368464001712818727389972530397239395630424507552504578467801137505959681379033905862756133622641845565265914466739971492738634645602885740287826278082233281331975950339945476631985989876560369888821034024562584313887713984539470117733121271255371034711685670184105403537721065119387240466657941037409808278687838545155239403003295295926422405598690754079390620236948687422085883404810986371834513007773515760942634308935118448682396316330899801324893272852730947501627382288372751332069955699958188254039508929665525858466265238964860789109730967715284505206686016303633912450646589038938791538340539631340610288403829320660085039069412728211306872494453361308851141623283803369673260263226980685061252006126987411825765632310514595130343379554955222028571211437845614579570164081082075163133891912766901234991746745149822705514553855117779621295540455717453343543778932478013543678105582156311035130251822012184230868171659346958672410926923049622578051403159370554785584336335137103219031105753382185703813023029755116114005303397384080945143850570571892639301764422268472815226661527222964450247570245558242376774768031860549236817978366426657686015256061497830991080819747984990973943402830227843547516820528595055105514871413565775936256363722082364072419106242874080484055850992047989707645385087503293735084273922092613174612845191811826950991301875060468312565506120161984063042711693541352139573089768165425943069300761926377085171468719894281175526469234394779128036447897754333338466186275323620079773539674055161682467235765961163114727820142447295488831014040227381860240340954685729680275311677525697574242077329304151530797209141630435331787545754481359595570914264933430463000416403894947738969372572261633535306306734789685298459334800200871384191298949274735079662716910167398112342942049057454549949400160312443481198368443410620436117948332977235117849118314008956643420630512780662398470065865992635274358657460891541658624203149149209307175370223974215464970025610353849986559719455586886396652398776508545755665850820747473551674496478055725241173837673875242974730949185709960434148317631789910047443587879230216773753516248277828397404244438127306748634588765570830808139829702185927458829177032206332131151746389437628673165444169174970834005908385688391052108824777773278035231544022753708944873620128484220823389901683910534060453962724705298037872196595556822194357527482570909211464259465286655357914928189074138422189652030429555439313350556219051891515740280561246619069173407951060592828253702643019883034415133728591073502477230202389704343333030054174678372624211016687654509009611910009431497909671842193995085562585652604174817197724978001555741340579806708874413287006621707330053554609583047791939958710147406363256875210402027428983138734697499254578766587342408607517762909310508066934493024167559981322117891858883572826148428031469720014048927948557471359518154378107779359457493587979173299652493825084204137055112476524863295719636327009164215175556654176534231022591071428525418002015920149141373490201257766227235497887845263098420841787029314754381596737383208811784143482482967051531391291543187163334780969521473523682461159598223228544272471321515844075491748426407894136285776932659883597751036974546540515348851703316209715589329444643303626573773494994850933812301760306006104281432865407320057339961009978271404066053145675345627782488375039028306211185407688303700211915114336618941154814597206389260505492719187915318111496139016542595307541176522567579840555741445338929695690002977546580160758575300864123173262327533635796220375725822100485066609333288064431131298381582291932652092163051544809456072733414519505676241149132273590116645729443589128885799165861200142040984620105129485915714458489297648776328124885821298705935456239439201771141537657390173991019887791522923507247410995917730141645975893255303534990466949373152698248176993762822896715328979805858168910819380650651908655600070294831177808505438255450399662416166115367866954147646721482559646018899400485973626687942349415302749365888619930286356972815621469226588675210709999180041917361941082991763527086612085321317819765496047034320964061745254561171938550167274209258784894052691308915053739044150169454640042201172330267331602140769773886902031850314097959087821707919531339071650530475396546780072189352594545234281033967622619734710153495831337377048519067872738662071497284849637606338989904769502575613413728555832466682480435029162832711671012413503655207285356147471430199457764404291893948418494567220772276550509874774024307016869887609507846723416087158160423839988397919181277743633183344961697103132065924921281201335899843550137141179560080809544729612368840182675879128784766276412043236497171537637044948496074667842194068856548658939736845573424935631069126344804378206287810594417810119677336538502020518023876580530034132858361677465792048606263424561245747322492983192317958066188607735997021688698445119594234833040103159995169132428449205708286400474683037289446008590158699197890109193000305441030520065985514773615566938704217358124751256108133504133963485565675998786242744126822744248257904747514575565889272784496794983319516005192151386632071348178637541354913276085257727044290747854442803083862171897039143852669419823755616217844561277125463979159841207427983982662100024361074933981963121664452893939074504610896781696803192127043070425951873176400638170189695594421719707716331772800449864803299057812208832315949058676026287243659748776862383888877693910144531710829111029282978514053170199750125913892674065701523018600329947642482105343894413479934006173557643222675368497833978506437688709603356812487652093814315292667975448090489273078981826460566701662548877925152090692491618489717034843062354507550800483961294311291722911175956206619248887259596742987859007315509204004120636892167480911627285158077305271271990148843525413485262759798717724973294404196021457212146299874268433719488994131171975506004536254641831300246665459292712594523692368961381779876900632974731498587325480552229140859994414511228962658446940103754497391560905736937987191546606796069821731295207753010908931624641007470751829158692341998212104561425422836994434612836753534063124667514367195908263286115388232648060150953616272599737765101365920809115190837718699184943674462004158736276017135935273541921652609815671651244940021773074115481684076018189692399777825441512330762808357153495375777284056340915556525043632154730977499201393846197656856865466936984550751379216143380923729395502464312205581006026696235866107418136179656318045820286204737641136322948231545738389513772442020295790437229602301154683319046252304050864701318887132292602495549794496109778801216267107570140576919433053190347347177172114709863110864342753414144467261889065667767477945198748189111473893581524226848805583442329242687293227409363280372849062302321760646050957278644406374736006119745454303576072197843532924612315993091915420691279764010489278481477616404135047023774678874410424355124808068510807333570459630903445715685480013710943736757924319327884169395115325219843902606850444772556864411259236564306807738700630384210342901348074901551136527417210461912603507333403640602667114416155512637381487253593424415747316713151658833289733539363713638544824866488796596425073976711757659226833988756643563175239250607187592879765527166163597746771532882140435361697783911816023725307045826250216399325607632581590065868729967667078969469373749531071074847513251692808719793103515453636516121208318176698393643802081905090728575747978120251321621863421312576784114958782243697739333281893830216052445649721026084879326627416818057536722440226815943497682727767007430713966061892273739699434597710955031723237099401207866007071389674289003085890997396418401688619956344558312248230448342189768053007363343549856931529984503501183258400937554660265944449446502752821034514632586068209308284436538707344513798095687058006577922233445067814853459618479175978623020332956463212662648903391280455484248043556934871050816123437641208700029673971555133180581749980750435915599306283880495243976711256175078298068186510196159831548411044793789672188455561706042383011914696080303352489557015104859605941176334882263005304380113594561717952630156183842036692332660319293388869379020170682874599838027195674510088301993922032334934763071612738132481834512495842819594785447088529265901247854444363818019680855876093708700022198918464767511528006945635189841941367347756993646762156708846674517135102833714838993816114988896221205893049689923921193647446213621373526273167525334094151105626885434871290926307809803815357845095687396434874200423782729719135009729326009297516291924568442568540021981726583966275864267014136970945993009127948822502390105200140203720996715014187891176185890666028296725733774001060922499829816543528899357489911374220661170225756204758880390922078685753344960559526595673518127972492596002983729989724002259523745374178775187558615716280702543205226086797590908680329036734780289694324683542867666277119638346158883819255570761713434921677592792638603452329669819399486104022196869126775907435357732139591688789074227002214769670684914139089784939985183924021152614613347526121258919058019245328946683482628272613231845411797219404613813753507559319691464265678582376853585474273554934035984375007384375109415037363447111386064694788120808512808850653312788645370514890717787534025375801956567659060982361737429897827400248241661770404334969845887601235938374338533358432489351194728762136342397856653065507187363374167727713066296956059566637441396731228203999328269074409380893802343878225246909426883359200061322428247559254103886925437559413509724174765497418414211854285536666359645711670716863979066692082132432694017081723080583138917373589434086091306367013374275948910511232476249457649717302540294588971262785767498040115505597594326086976761420111775023736636035440231457777585603437007574194706547488907308339078964153240951800278396460087774648800042828270673018135389955748782313225386796118277325211462326393571398318984428740452552677675227254310591291448471833606176606061779878432565234299683526816896203671978996561745631291295007790552053402226184792873092138295396487876613301707841091566730681740891980894718194937207658060366281875852548134871498970404676604574869233980388977906000102366005825176540690392186890126971235437403660139508972678209310040402105018599192248551030958286383561604400775953843025808994521365805834232246517189371864089343674227378781237823519889776740398937588833337120981197343964583799025084878324034370169180162855295415578005821501944666697704497234349878497969768585306767807818619707318152326265173409582945192490719259382498826825496010891138418686506968765259860154266425750120291926793517784426537720209212709420288993026489205675574854300532195948079720043074994018257785682331222013493618227415068954678626323757952175566286790185909462000410193940476734554909627163066080465373344213300837829683831719053732465512272722633057551363331414724011034306715011971918167991398194080178402725161135100947033593298979133300537657160269271077048268100964861382606777100315759998272816941139610621258631881964936137198279392127976572491916343856855302080864253690846229683361541666157782740864943206879613494193069692960935392885369509483664780368076100945576764899507639272205100600291559290661906031710616540135755903760288726317099682924109255240077516526802378599310798600771639895867770696490921630876467149247559726480791882717096312932406737744584019941006793543221501159873652798258637241645062238604760208474699353031659127674023810056112465995945206149109857884879092424376011812487876901642412467534060328198195501387374617969872760136195061474966113078623846289435995520332878184469104030393160628678955536574641305235023812994978247829181732893658879956687180340706947187355621137232768214797818131115031858838803933103043161876011576349285563640687251964463242328726476746492551130493625450701169764755249520247858482413102184733801892460619064590145985834268791424098957880844814551209129044215591189665338399437940072670914907084608108112992348772784651555769699041677395059575384625519787204658723035516363944983711344038661879635754510833271250837976346374390875826715571649011061703250661855974473130775793224727076784792659752469690056017517927590543873829685264326320394756379437980476673346529873970621471873713109240036849090872953302829878143392018648373187876165153354742495285792823652319123638581894973308955523171667344643269109626534096719579853654079102849827121242448880599319594412726225351686699354903750472748805203663989965245208455090040875488822055052439263342591805028460455153136837623718792806303762243679133500015527619754715055318626648078298009351310655286473893664056330794736105856449299474627192086899171792651198354613638564450726732521262718856076280933125642558698934900167759997239648025790193992212304701305761045924260798870051541219704744400889660138813864867493197207583313084463756885436098126366968716891977533797070691621783583004836205581353606584370999139202040998657026995086515650603756870723153235201527512314483392277999652636855259954432657650704654355906922338356108427690403331534784415388837822979871726362128507778314322289851346803915655660150376401051582974687441732255700565702313712752354836338082875589860201432942706974296356877743287663746416119202572726650852310191803617079134650674477723417741172781386550200309253961890706062209653401466580221998889397044550218332277139326324736637535431616472088666783326039633877303227150785819708706889012133058923692846584105617113615354370742521081818303879378164199234225864299864390488907020064606468669740558420244812471153392068509851930589880307624560382329000502380253190726499583127673102136505899672626022452452219222480628809348734246198426777901194042635502837892477494167222193747920982860822507791351449402547003636216578855985482050596102858803725063051720263398241627745275737683893355944777880639703188511795259247852835943858684910847978843179201332780075877580974054766643016504968402854877597848303353973628827597157000766088096469499476541994159980740909693786599092751217274436217566054563323255321812494230520080634418835555180906636054726222751173492604251408095182039287666160840604477844770745337676616309857562058123409960664771576985271337591986460371794546250424172783388842375461009816499466241845723673547719874393368850961758257581132947053123791652946037517362111875555209029102712946922935346622399326686241276272014041631014710483353825989767991868570789807441245169473332875928523261711774166315963682575134441953936858066499684821071841388056251585574855309722394246400638335698307146701989965750706705770304674154814594554442724269043230700641572487613340833529393761150942093815556523894144123458588673906638537904558568422279799907535570648632730671977274892299640673422947745193356729731572867506124688849982505817269554267274963824702317789536829164803801096660731455566469238399289147255312474546212502518003854877773295028129127966966236838014490839872358062273289637030554408813117435197165078559984492039088724640761412510108583790333856724975164892098913367018345814652094321279022119030759826762404848588597210749601390193399400883659830137647073020104782592430537199649892592252343130542300770526959185533405479680742969994135519620981404437385704645281883693543247785072480876292314949668729685944923214277419128924323038104856761982065443310496110980011738172961836499415446113316879611068172989757869119224177652372022999159306138586869950294147520801001990430420982609775017959692200074929205355787004109049643940204265816810889248556138034495778065485985922305211883387047529004713703550789025148343644507860614878817682605034202851215538461284197054873708513809914241194366788593920182572673543024662232142345823714535681964186957567705525621890600068712386880949983583789271249310618157154362359911037895072188074746030162893264054081935787941931558985062106066472734431041176990090343581936258930184775909883212871547382343629517886654715046160422984702051281895986651429902830429713415080804427579346814559068025245155550220089810197062678127275555122100568898091941263956075673631586117281269067092862292231507607904483611526286767701816161407842327586738395151722022412627233278441681387594420830069661578869836403854605953857562377890638834525615975659587068568853990828741484590953040437280790461590989097338851896535264813598698904753239554459548717313789234462340040119719760985580197856788486905804415390105591370715748043491990521051995015309974689664419650141676703081524714563515984039770912184490009669249015407927676497217830260946510047838416420860610014214118654765677765111819443010430252488842985015658259217459384605275776357660591313497313534543110275096218778735583905724172802819380926972306808073733999966323591874152213570911377078238528122467380269748712823024189346969652834083243090726646705793921728036095041393473733374449897115027985248356745504937401188922252632016564941609813490122850456052716164785137449235898049867724483996451551258079577214822506198888168754718778685548281184416892566794315852837483259861957414654397053819867201089240930158591914066802440224503544482304955706734570440953110504348664720787766116216997286533718784357226021577130446909378390269598946777066485802346174416518612959602739402384792370734396718082868765316589163371104884308202183071091907130037384993636081403264958771070704622630907054786892180865799593161645954890580427583228380466884864132461181969428038031135429678770357422831534837497641006244082972434878321809747037363203888456106470337876529308603089638895744605437253019601661757759428335987767752967034371167221415554868416273575207634838250611444607677384210669862131878670541396828441257754465476028963935053152260728587378610445470916803268902079530048386058066209527562444900815039086979904568893158496649004672383773886459430836043300913826407808987478643033691776020041476664372140821377362553441167558245876157380811496483167631231236325403462459816983356844744031141183454936869924111361992917816441691331365948225011386152462657050992216031913545864420312895068228629996618901614133575974191539936797547841669428157956809202044149215265000384515938239474996711012449736579614590473339977426232626335128010318442330642181646279960782890042185248738818181126564157599625316865310850366172502349721314178471753267636003082659111197134827902425232964483916126640464067690764444760446179892105618884895272637625885776795710241709286077086020752277494509880274085909347010197813906087065028328325492384980258519028818655773081426153869001723551597686360556716694509484866275880673976908970507862391522452331623088970455101658005081843448451942158116650994884368042994423873520505089326002853450395303664351919080748656400447387702714577365409313341573636768658183834359040839419299895363546960420712608797412564895081223688951799472221662151236662381611325682899261988060725744276898059496832070621518968595723932772455883470418739742806937414064270804623620926490101628404322782435550522466229712423687075524304460984145290885698011333031604704154286910367436066901947229272233536421341556164845683187430033591075643084720923014137398163552983214506825714888961046842781106838651571702244234232901529492753172570963066875397079085349112886848916349518015029582672667149893685569815451808057950868579531336127695876572576074823144652237815402970608747326225925669145917864235663195085606853648398846661321518279758493368161585783365047264074061715951651237133217096006342028881644358230092896665613083773469569324354037842683321818104879208058685357890387001698426391485045801068133211800240875473507386107695551612349700403374385470454540604986976875053150948153479230221040733236253162314740451865865902075918440072690600576799925309222026139479691644572276961217323332833032828913686544521145146232091992433731061545794561519533584062578225574735569020756614919649364107464132425057102374312638328241415180351919316094197863855361039587575047396728315385400678275785502667122493634468149744910453601048762858635304227328007310626614630812058875318293401921091981518579490384757759437012779686997460160132526149536455630019172763031449799160936974373287418720986124997927252226907122146042801744915965872316796386368935496984980102963309818914889752157722505972965166080334491028796800177985527295390426961206087516176697636072646919647148707538225850132591439569395583285737426502635052715570212930749806550548850204837084740140098274319577004105306733921482941067254481575669928018928868091587932010626293667073609428768659148621562748885196434931066035910475103939645722225327550141711355399301586755759256150605682293173523593624439788766594159783312286393827765578778965427249165962263672036139095290176820252134199717954103970850560386143836674959403262450393312055426272324281391473147222971247951256810618720735621631837297434053011473835372054251908842645431126743629825890387066584914763205056288970588856904621191094871523860515810777638452500169525437903697473310069444078837388087630627348934021312524867574953779371118678091075553594072976371790263800610503406597589029963055496711410888225726877255063640935688412871279483130553177917464096064025050488412100309939671541657140635781001649142385060240211547296139393840950413803082931060633349860110240707944870009025768449016422486144471303181558250453061012365542455122569912326950641768739701563013466808598364773415849873950019842620800776371711675114273758011438254724072065687599086425987692246133359540102754758314123294401171140565653114077288155382331376832990263228913526210415373320149236790438526601964791269304519069050240946386046427808562486750716547980102324035658866509253208597574198470989288058361398091275216310094120606210142365230703547927421915753666814170363370634021786252518111502496084013534235961394361875844519767264068667359152464990786029558246029942376211746817209905062762004375254654290673636167054815395547319083931263836759445104302295779036276827389584787879381146710130075871115687166916725398301966634336123309057487203671563951736163332244454605950743695208293159104372217427383805958400072617489964181805842554623128507604762742472367419925006389036130999158308041984497859207490890042627685897924055901394661564538954609633492354671940402144629807100492488185930651970517673298973308247984050496869290523236862295267816240425757203895422345687353525456309256266566941380741141657173434550706652362143493427700695152782983521132699421751812812500062433605964692413177432556082176011547381652563638014589074971748769022501500924313114674974945438050042066719860647073394780748011975610516701834898908394499278530906933473466865558638497962493177865676804691662377810301187806480414677095954606062120572940958278312480079226420347615514125440241923121469359486668482882614220709729637121556947694324985431391573815574367633232078036366774949033611519044250974303294472521578091118520604797228513664516077598926835381805517325404039411924461988174540941258422591489689562914252699123155907659859806427054801709510375014034433280501960652655605962440717571880442246123322927511754084185071220510094467085656349805551433590852247320800789923727860879946414808811666491433670808946707381092229792784016006157379726743956061347518894237876550760579418411537336417962448681412514895659432797423386544971916370250245710695415613706484917856230504194572216535894529725645057785116590824196448139925029204864706594520512174176610349097295529940898939899359913137350947637912499126971716182776519314472973817762260982062369106321518599505790444961685756903744938644438170112498342171343255344358698169657423901571319177115020602158488982344872993305218056931306976837097667624662672325793874276160569871267694231989262218992331069260260482342729913696477310458535037300269423108662465581259945816853611361428011494671787050667561376451916284819971699274453319798096957188713121433750741028112183481983951333078655360821533349008342215999807023761422156666846887742426062122218787371303370388013875500771774157478018124651396015476877802237719651819808743456282338589152470967181534260561203959612112023328676712440287856739963428620497337318515643344089131250117489913165744339391926007201610146616856476900270951223593960374912363785731647978574159669554928758450049040952253917204034539489509406385624698065566308295004042908998954784416823297386733543580609000027635084294782603479461929797317431020141027446831734820278481627301919090481947524428568752473012066792335855566413085803875822061678202183368676875135182713166175240715142614452721603905299684586179426268563600291128093796332126088021566547082767964520975136738146894226792058146820651678863204439239674359500442349537337197838029181190213948638305006491612962068898534162090858517832868455460740998380637368502018681916627331108370931651312139920851249428266916538998741090596588528697352951964453785927910733027478925297333487367248872597617579855591834603813530358830936170262060263490062827813126885579387923553761337515092120775002735925621305837485061634103398782550904599668148158251767903108469971053559229379519083670978572205758790172134041390966608483376272192497312447637686355841336625826162796085440909999892000153732444387144712931637327886728542550214647947630183250823752262438977380415863360822239894944947321454174742268592600660861026215586939979300074146116615164079415219007954462406342962493782258964184692561115396452232647903292946398963515326449475040424122592533092205329022010653561923853327771612507195457623823268644090170162257655681061340133994949181114926454356446522785889121929756119356176143361876924255449308538051793414233124751199358727804199303984266375752745361336324862735386707175108968837417558698228281008323915929901684205266274871628846779295212029360421388401368838303506495689814877189886173068799960665491583570989237443849533990906350023369348343694325879642690893627568948085475669889181470932635829712588762680681498045813875741746424042083977270697822353787880934702677690553235112438838484723158672528418650364822623073041138009049925516873736642910742279315084181365311594656162165280972403602229860608539308086037953429607499108082005031180671585054681416166203361475622253039006234692673769647689736098733821825705920974853165303667027631622327933155409287727795078198758826220139782745668794105544197851618192751749268815664324065183997482690524358200430956416412429740122218762230022496619261489161029604427884446123950080008582487304997817699640384059623818862627438197789561409000897504812136947596167321943542955088403859923569223591049432230402827729346263423782210677178054861461034781038676746250455207828736191821260267588878656863179019146384336541155313569903941854324893845689962939796118356362442778806501388689668055077568326412856822258266439257264301575767207462209758192982280139974524065026599653193796007790129177518171106487115478434422478890481493829121954080885020013066031984353571033169883023419639613249046493165190718659186630595839253697185745349320614408589640635017363948859644406176081954659291061525596611020091474261723338617833071316141864699239827088497193475681918970844118126191506903130190270931604579774591965173620958047845343025323248117634848557819087530757597763792487081924194035981088394610226401998625174714464086777191211729723775353915538893381013226720057522536491836640536271460025879178521737082699617139770205571057927218257805779365474197914937282900003218483704887770770246341221120475294737226088630048610636578862803766871576329375576014286623687226783965480961030504750113024901520305711828760114159732054586716454815593258903378231434908519555093592065174769718134825459093435990935238776532805284107085428033653527552575503102284163594053351449290632591438457291827873247897349116200987455863656767095431343278494620897182457487018756028719546720410916991364967535529955528321240575707423393511561587008396636320584424492759800585050022424963871717125578459483894829263007232921073618840395823439925527688324717142559373677301655437646897724875932908426031641066019015069773960776678880249131683258936442691724559224752601917112473470711386143852865846717559701860441709037299435962942145015695871389289713428355604994130507308675184828309372660320067743507453378236363215566376858739782865188774103753301020284330179499320083733606063627100992719263082969298022795125129816237450999065939259192418904095483091162193126775954158748243588329673699881629241972799570142809463676678878913808292112134305390858350694162741058370923605031618350448855202450306301242616215591679077318124600481172804770949203457994043027516068126235246264845554033614336125448555500109713046116512668983306362865024503877655154173637861999845672342664912030527053429370859654469923017226380469371204451980195857033780155415369275494568575383501065676492322020794461032825939620914618059865604898503184859058178573346524989541225164908645580299140516039579940856250688958180922081549092884901811970824989557283488523142093417880000802052749268676704108170516509374816332736858861456847162636942137150685826507732709616686543692021104117542018112758431418417079000690114661468925564180698130451642567131718676194949429017965785679883743549104406843163953181157064150828943154513590853998579963463508972535989987984952129348524913620171103395549744537746901912453347410801952357676341489920247676938743947585027533274694186051513503049094110644742678779170750365577472243983824754454436560314569006822600978301606671717177972901558619280703883248471075733487535135094108994105988980696012425696006845342439462237233601999346128467311326177440398583895714585574513258021474491741799256843799909316476306132806352858082486041248840316972890650197287836258821079236116263837697020041341621379697824437202303054853854671940404366233093738447285895097381223785348332292646977710826427778075500499077433297098045184989532582078284014263161166520588797491136914468356593039571112154933990455650964938138063695998285296268340652607287533334717709835415030645383241042840927863725548750501865165150408559747109577326335446936561594736640493110818541489041800635225009158609023151852746827203138105476052662895625392165354528574010830971820522266979730285334432184963937233241394506548811454460505149283119646272098188501801646301246067257631761486341533015672656211024592628181777600353372183941788240927071626208480714379469975620834587142529981410621849885165627733560791721090417684200131533471436950655787228720397778814979403530007805852139214358177496751129512079578762548946873966914709757973610293595214722445557267192393423284421736471376135236571371442772021810042927025855137655570305586524621864022373363546519223742776490090119833375754338501201643859497118802776854110134626252493510207951381428984249572676309969010370347630716289908081690246771416719112611002125470146922823859519849330858417960877118447316355620000476233319816682478769058270601677969708907001229151305076796707141368975140753863999853763547236632914601640931161038186220402741599649346703376976533155019019949205397206854871287987200085427145461716342472659266090926535028027328542223946462085223951604529879498958469390693382900683904577143667727186441058042696161217478037521077804088645882916270214035567687603140314406606168344481491714376232454030464975180533058194301871027440058659714696112594142067158151405492484016111132521675365636730589813862424792581055589176128125188699585949409463223300934670509975423751423861046867116759001859584707813444885388229801217083414526979790927645974827370832905574037094549572632949444086917710897672964304493552274606952272596632278186498917615832507080120425317172890235543181892193280610126531339855947082752786008231383897957167463065230649807180968776494947754869566369754378231218540723147550202875552428169522077292929369011907903484235463907609390929373426654187112183855044584556913057049565034905381106228369583376900398308015283506042119885574964626700401647912336928834332442988516837451358246437857407701926497724967771642284010358500016839565364208875279691708633607121020261974026174764900490745716627202796115448109148475895187946489610089406884571943036799521551637121283227904095079108415733956828239920339056066985121255383378696337912798735877784169264889128969849814331784263531271635828431839001777382053076665289909475216175176556377218191707943091818196352118018365492684806242419194603049718954327087545953577926211229784560400723123452259302448778194462717194028621770688842133324872202229006819348313185295059572421711294524459654733509707091566523383219329567296161817174077257920986610267070680265293098274164315843733049595866276720145713977647116170190216072128440038216201719292635898771897323550273453177297055197261582856300896743262518718012123797419935160907136239350558675370790275279898267412242710230863917816464388758400711880164261793005789620005197891198963843570059522589992387905452785770799033394212028616908156394385964263670173500240673443023775318503307585009761329147635689852676160508898335272066352262642893383531054055736555542325394823973286155585246198476853836551859671880684312000629769082277633586828442235342336830522358450189784136422867187418954325538108696290014776510120765538989756668868397649355450023931523052103858991428313509815842683220016406232175890875337290361088933436444788697585820266645200208146558588945000172943338912964938572764967559747828515897726468295142938122747933630210936493187367211231468732071375310404173206529683778809856616471684164195495972334143473761345669799049097114974385877636582536756685152673659562596733416710823307959694615911437772109117845283287595750447703359643517230528322665064724902516388751409462775187658954722310124689634897836193288313884480270290552792544294114113846569846962313490566597225595696696452809221258313592556695260368647198112160594877135482897381219397774308845230117556829790847500467433602459727261677154780071097295702939584296912234302519545868925129755379667273062410541699523637347655663642935672724825672225923030627720263014900105634456610971443859789909825014902624921005570189815256028481168858248197914138462998632177598764870537252146041913998101183965460810651513979050240936867498646202448540944895141655411682833608324863554039371600234447856005851811986715439524233029588780836525907082981369776198683960115767853871697800322731688664938281341989478907680956390212656263203944406520792462117850898448878231376632411745307145006535405436033545209727707459859056092072442517217953521518455541594360289720929919355638685279531143442561635411464088955207832519193413017126769526577773362079079811923898713401078565082446828987947889534389883778583464704981667185167245502352852685052639827572388069207264885146630680441328244560337588194323050407590425285229530408003208294488934670188897865462901654153458770661997364420767187505485098546730240724863100062045818211228226479228012392883351317654471964785001331868130522754466684835288307936308597743947528823850467573221610302954781702539368506520165798770819287728657329133543815136448373653911801824041977925472415042663857348738513698318697327617140375128212837198189424710548937650507750906116997969833630403387082685710854945509558531029815870141746132088696093708644605412741713489920529166260365121044871665103222337890865100413434723787565937185965273836714494381963811523898131094876658161552670063429087442260051330010422078270621148771956808844659108513965414190200482007823437442026850156204087103394256174562543534239522955301395754711842510240113602688820789962415999626345562335335183208879250547738394237451195115629183053238464264672505950146814080667337525761271706760728722896707403969398395283361839146087311462892111649419439845693990536418659058369740633884281560869355714412832393400635530868289648335061059964102592657737181473123822955127375808775002252565071837358765145480857177878458353106538338015189830233724562446843544528052271955131480119447109183656350394255570382186674254189249388869900074104306806037309734237959459938699411732712910016655947212808219531847645423609211000696056527539687587899914726251982807123392896807006123958294018470919803865305118991919070983408715544489426587162442427984008835695834837841208434948375587136083576596863603334730058429389646209029543831220521511512608631176546377378005861733894939352318132455818443099688776005008564071871063837717898296658097450295996112879922607022706945938908530617679329184604130073074208240613309334718307809743758746713817535410034838076658504645963346224563883169471248995197557388404123617019741384052075730723452865921448338759058317071765215318584127790830904447008953322575656360972610742942668770678638912798766928399334869189925978354137615639154832217686299966439035734475163459470968975535024914825972115759492430385713235072783821911904784687917684734029714750406962025972393232443403177467270191752576553109903530790724274038047184137135086194133693886211336570643644542054571680874228684344956820587470850012055170815044040927885562028811099164762159379182025338198189695364564591094291722950240528916133319738591536155298137992308113021350164207349642568148413890408614200840901071986020091809622753217363760599661496390512203540220214834121965708623446301822745738667877279232011127674196756128938399186471601060436098566590482376065583570129360751491996240368853291307528440687426282549518706818650737968149292889437067721108851285760764978473265792075831958146028064332884699760641787558363397397503491925230768097041807587102837130721814373132019880102046541561867723346229362905476884822368077112646162483220557202959474149733537155330252734986386288894571033539391579778782482143522428420474494165204155114562079474587608441845052957911739118813820789098620045726886987311026795179650001309273560226487737937099053024938545383102198824403334664609812043443636357807714056546110243708576080251354295177714525687919742707987234323825510787679387777054848750682169574507928425031945596516645025939406515998432208005588871245164548627898227907729855693036105734511870367067956600530946471353190782060284433786654834231757291569680396871806431500473507370793531864801991216463965599889923355809688789087045662479986678159862769701375320731360683212193136884484799236093960167854663833899085065417953649402139738717777501715840247792779941126861128098730938992025072367947385297538966183706825834229206328044384348872263329889544970453213887944084349260519165476012439961796702222598345542338469982808346836169627673789430261086534799244591021310189156628838097001145482009679151401860162338103634110957553645807197647488029528818494892538825485279603483645512759796668517779005476850120663607646663768531541218178747151439422295420340346850873082277276607010613496014850266564188169129029962073709745751116930253929377191172728709019017167495303824239578234538505243887220238870020499145775622227481352007197097721853524753100447052663155117633112049450129057147889382224875571027572065158105304717026728675838497884553866803177900683666563448805601574835931852562047746951243693283217877319528759838616051842264240256153097399280993231953470719887679700949654599713190417342329032424992017159418504330954150591688477939061796748269741536764719223823066107691675137040784905439366482779851569327245121593143934811932960272854968651695320560342598603855343692288417227775949225714753621011986881173819675219964088975288943953836394459867390875251385039597116877432401502785378707349965928063088321432129793841639184006692926258988126669281733540305601747007443997012507109434820895963481354515527552003459130075814900828506290641378018411054366042563723988690416314402533525739881195630113931260998770903804313630298685745549224311027709510274430119386795342684309566515754152777985690293995573081717343762486338392881754542167222495898015435105385142157528888943506229074666314125149348469292446187319427251938702433353393897190064217328046240356226057485676180515089220366025408141524593155184285856261066680824014445391779864219746624325956264991845932506942265458233606933393154954413631883920613300595513110407209279947217413582941513195973228627613211593601221185927942955275507511025628585947997894100413001519308715623189524602818390733180458889905627849597180080589783431806914330808077574425353258042635312616211229129471006358001008708083992782331685365501638241914858607940022682465413611648687167448813210831096316935827217228850326170074322148708519158196909497695242003465069949049563910334605419601583798612136892866028240728362040118993566242250664827062158901834750811937201620981168112232136794662239926684277130480201348005957178973093889089718728372306677228930368476952740672243921043641923325488719340170296502793426010702985727221590690815587391127801348796141320784494395972668768650955381318712660647182005173373745475562980256836310864718136382252606414910689309924823111810114048419202969875957703594557120567401422621402369150868440684569415593378617936072348776806362782593299300359051780412530962146260793427414628920218362230957153319842235528541802678192895751283381637043695821546286097608685079668769570391439341630850614766309701562375950621187556135085446047993963942492551250085363749648483546726979455617623049321010755615027675195885483872697800012210461466149364847046398607883169338051979437578381985769734987852442997657445388664850104647653846970494363140926728912219184382223518856165933974637983085592441399633910261582185384166978035949717376007019981955340977943495280512269765197414386569254859253722352786610783168516543439304358046225969876374576823529812655451966896959955111172584919654818614387492683264170881768476199301867498851075886540151496526494911981910670360973927981837673025557221751646798109282012978416136921988275867593230366368060533428645787838067534417713873162457250422903923298259935381372784194516834045055521120120992182144288459714833744001979037553099672861195565157269530396377723598940778902475347627962783217373333030208669006925308772491761645408678010770739512320284658075763662861134079217662508658062366459480530168628536781790754695224413101345837328238080563906743733952525926914503412761549105632865541635000333958502328790840128438250126069694944401895586789393142988109951805889927877730016602412690438191000379513847617345028336301865708165229739506539430611284774516900465526391640649804823791745632785871075135788474545605405239071873649719184622911476866100698708835984033098108250345371755454037080796247506011400645482295803019469218136944905693382985918301640666252001844850037318746232505722030712228915834370837469355482719446653685702190949827335727834934167542132161947766325739322100885497892479219699734873480808181746799197834515832088845182780433386354758929648076928320629228444693102210030328538338488689841914838978341711152272376758594692907907694793100818925276390837298771711303087798492123608606283232509681002156334564938673978501186380455743124690160361760903637508234784940170721501826251140667606002439878461128783693777132365942435855868246159664672214803601407792761398122566949528012205866601621118657593906631521298532165648821327502955280039961770801512203372385119904186399993619366105430985195544270793323851581744173096599014695229939760536275416239578715619084044822221798241471047051150249894147374800723383393159654240205069781669749809283183759481799761111166532583624873915443030165374655845173565355400510910601573392408307645016406513634458241979220883712638171325372128034298701249134144943152977577981739249322550905982758396609170958319054012417107878832294598316644475891688990405270994973871219291676335795364340271741139291997154216789984252553012775986219916477742137160440775349039300645399209696162799793616559004646229443553752951630281199084829529415898013536382627111865722605014826384231703767192274652402278953363255740230794027766857589934662904177614703327341801774564442310844420477065758358534738413497091912235462804487477860724050391550675288692041630560205565564116731765698717967344135270811532360464815854079417998897810567021624346720319853104792882732136875322494993881206958035889098858651289616984226674706946033556273323475786339711832652925362271983844925871476825547506358439757736158235347852485104117573937546596856400488803915778417876358632959590680873427870056732482465203393251503018983197861694317922988618819515573272828223100962923995129013786607482905339191135921329564196744618514059957126584987692838227988122536533045917951556639753802235666328286931064742283822652911684518370150514949891924223434294548020972186203177372288826904394949006689166816299440509537254308575313222504801704628099548294947375777534741715552020835219184889376891428928084202347653988245570963333122817039358824681310522641942492717116429332919152430526260408324776342229712371437788190725839797384984087570696816364541607402180382570105293254130069849795928740638361897483029746949546944462620979382892516502850061731240377124603362106137285043134307009878994494617457084612999406620858193680134210222297427590847950790920291744310152839512176572010075446982736801755775569960120964711896906345401914471704164726840206355760821107544355201377974903774567420945839186758850384011401282438804856993923295672384418553587196632460823029947975856048747592306762283576019593975848168606693684491833044645301142030427623268131519108885416189874836402278096675745228544658117200443035413075447952534792511919968938072496181984221688156200677647322901214057704862724655364522448592616034079303886418266328184073446035221417806223378721372584370417501628866907500101947621875573593104836041295432259074664980817926686709608472926433883086428721558185600994028777678562603477976871589771712723272972547918145514527243211869743087699582221223800137531154693016854229179486125187756321235647322337202445632455527692947604013430423946286807813266940551368807401189537150864176828288602828995729534968862032949544969924060639925532658273191056814279691401713554430678228352755629515338291835880241186676373871434935569655788552471871807161082875746073237950528977915029617715258018964809316652687049048849494117070917162114529258329331342521317740157230808449001924433758915880440554352133000464239548588480595334533457757143994610531519414609980438356096260737513432420906159583138261995933534012830924065777244843480467934443275888314446928251074084760206065172442932322128443651681449813245634801643099952364383288282591812465925620145338569732234896966148474117565492095025803651846633624378936420974449361948897084231151854774417015575210969659174070658058443838208982798396722000526998218636656400510806113298359848306999003205647564041520182872476516855834079804053098077420865114654867877473783056858889894049600368093343027079865570566553025463375047347275491872827452717342309887378502756830531704057247731044945913171803577157923584025743058632424673800841505521138476346824267682431456955131721820836630913408462988109645964318241850788341933509969512525230388126993499804330248747738971810524485786260441187524029931616188339295291779015920601155242406832081814937040104899840627948957624353746032361592691451910446111936787080132127033841195246990207014313734119225514746595234194836171365018444638269372350266963915685026405713013609401121510472760275034348458616755922621978410351524692988971236661702631706456548311002418021115980682906218950541412273470804452446466781909569788520354034613347496644021033487133672320036992020700418650392181513529520882565133232579268914832684478409102664422676088175135182611390194648273834820853275482357907357846221335075547631784142902290888605001148114582939019936236423895322520290214906402436871580509300375142257674430743289969760608993946526446400082957260108131853401339584072066273545657625218327458160909685361544328664485339591238072313751740912504993877653680803356221439804623830047249383119791440470681474725530157411377422216478303703864251403509124448188503213049486796972551977360602532021325477104871418584867739398851814973444818468867414635228818961876745967121453347912440770397988053298579531525064475195181986055661342274859074244124948818887036584259995932895791019849759064871544446981144686069631118669515670568089583122123813920278996382126413618085244546471816776892484073908160884019838562456754169464586417842445899993026562243011449568949220993771374127092549529199102446747578553243143644819730956445368411011796310038386664824259465993333474096052204519309611025518010274041042547790678421179816528977599570197350619267357373628123168167822560630091035739254813683763566617611221492761007713396858454342032055434266671641348687956549800635097355742599067527123452259024389077056837658133640980649876692132400873659105251061860810594753262781923476932700272588905977206652707099557440397267879278817180827258950118648467723509341345056649920913199962236684792967229899056969140037498949054475455664635112494666439896281736189130943658122622747831060253611779976979316859925671870449340834857620449074290444357203031255247755293682377373345797357264147589083498984192053060954565704282883573843070309189422735296137209085314754900958983633746686385438331296526919726384449323715144424227844918252749696449678524346295619618249189505370603850378728347469042242359708195485761556485700519972708514778634912604230503330821325544462299589994843442800684788608551475612040601407014448843909221451344362317900023491340142792700707317267103829919281797563364360551368991519738160923241368964085989217368303338598828034270519356733785023567781167084719737788648019747057233061186674350027077157247715601592792754521876017076666765112992381661092095051793008092586545320850522912189571442420794446016000849873526508302916097914736574603722536902329865127299223178017717613720291897249727508166571958436304937535764724783516719622493883643842607054259203501850502740739100788297596769860954381850230816234271744128045624766707809355506756754067854149782498683735154134340611330643269465613883523800918777460197151660972856965804785626629733404574982992377056390369050680120190760239580360647806769603869810346896187916132535910661419709226609935992372024199636721701549271751081751324691318615303415487058315827162399784937729206573181463938672012948598777275703466910400474901762474978783739960776213951654442082706176333073271051383990262973091833798243282657235582601005166452514321932558570121990856776575163631644670216079539036728180819637562486542551613703286427374472565957453781555202353010928002037435720959836500531446536855343786240220729303016433198238485678431919502640926729237920321535530538126930110095826863613205100635511775697558546635369225885463910157356173967339364356238414020579967066035578570679257238058072406163985036744350693722231861384133272120862112190792836018189810418857150857619240608439829281996549907398193541625301045753096140113828486935395960102169678122338456279320156845960885979677449276935151130798859357388970136635940431516181511474790447405268243070144867823657179757459771902425545820672908277443498531966530072900609089447807307120877345622472364854800712778925233959885761308103573833292286215904227714224784868167229353797766658979677801765450242858400080860706854568111161573923366185749440420788888155683247825127940129278162763014908169399467017180234359221661287156856437214732576673196964261416834398213836522415385008082829734214713156720500479604427748258175063438957954044448161361379883378758560496108584500053055833372882664748333362038333913931415859064593133869694952595607479761597779746559506252357054131418249474832891539448561320403645178386852395983222281688875518867372052748088286192853817200378371089419687671399236932683786480898032596403040232573711458431093472559723298099237599972283528420625322730887070059006395430234001219038329033203640222723395172509027549935269761366307963677866253428066722667951632216810280019355538672880259298151789085089391718972423252686267040596278909610513206623273871551854886961379948490080933613676718988150358373311530816519810522154358883508256578051025571993805633866882361984100248681151059219055314512325300991744370590009255069741062966628949491797513011792535329997562865840446234320084106591211164285084325508081781619865673888801374962681781635894523834881069744534958619467098683720922279341620724490323181456794886249149996292746335057253037050833614245084495748434021281567914060255717789950635370691752987158590499426656226004225900764884402008226870913863162705306446917331512814682721301447565111163979356086773162925648817035127933850468641813614068246998663958286803002396795672081851790548063734299439900213927336493371456610230873611848518738538890419725036858907047037028576648958742121300466938428001702627581751693530231123205195983704766080425316502606624513635533550033325524079967920928727002147728914459560014939918447428056451689299408365363634114236105379765545119302258190124603162261641311330494669751570437737506363489827341380134043307736773293696212719276666599525806460355338790262354846028167281932566459981944447473158873710035172797159884878423785622730418314738631690546030867871363494908049485952495015771843393976064429103586954288545652399673801134248584466186847959228693847159409151522553103953672531893213400991367014677505811940765420830411094687977496004137236551653940758086955370665172670590986059003657228511648530662100931882856098935524959821329755053396416243268928230210113222802650346561843884933499811698806560663668778974475026095370571190989786365847060912020633775518361079123137772133603196410719114106512600537524230411648117778436945981788483134570606887378681398841685299380064932571635774432591321021930188070742995342625744494365391824352383502792671850168461736442114081630164859165792823591933556410176597497860174438403435926210409109186771193802720694330331020968878589406362624213793475282073509005226587698288266363714014385303549648031808423660902430472925018470244197040155339150073851621512516382969029735311437077587564635466690553067215990800524805412254069459216564365580853326726515482556407304554018175670318099822070180538042592657645472376763001261772832221221454537599453856803239004765001617279746979381538228485011999049783519633982613781672033952931475647127363818709607878559696365518502276609697189860368436025643746194719623141339968612940403707213192704112594067115480062853445261797710242301296713380098003754538539600094875129075142651888281226039014301667888211188152040855760124988050040762846395737532941346557828033004711896343367631210195561245614938338928839817803946120117255640319088912385502236325336578017325678387968486599276035569376073906151898576389293316744136343565359593866776305509851355530645625432991212092936455307342886927182738707010849244409276517411475659821011885974274753790445172082835396841559164296108132519240932608558419067124480783579413830590055767385344362356073211913464560306614296506395238414273807490027266531133459872040678952876136579537060664945759928756262583163175180662707106432647278353746871652954981569313140006407269634527704045706428174379631762568011311490772716597337886162942070653985344736815078416034049097422380690213710185023347617837334185398210824943441280297389515613125471068720262247837219658686493278627275834090978617897243353680300935571519622904170191398999512053478754414227211573908263236628320680646467960414867483783935030005324264789788457699642290954877379164820341446128788329161057533661255693644106106791984221244958961026121771771528427735122331134198164676802933609716606113801901242562080721862994600201272845801149359063479518613851760953206010889236584741090559312408362424340979118517468131315179786641090823918868188602180839925581672740860389738448359385019675656684028448462887242540137340699052519086732846339196585838544241120141981214480519417301424100614511547768504025538350906338484819099535660456048246853432270513970611907171818976078592752155023468353308084161459120272589109599370595936847454141774646952367624805007501886306928590942067417722094939635596967763961065436241425200900102308760115045739340434921540342909942306231839148894450166288662054189333869250432164027372949784794743398252478684506609170315152312878811120779110478083972605160178560006850933303742782446200514007615336461958878606462456375121286463109536342713232973237016533504411443164523329948968054616948530707634008910780269619034955108396733662342390041391302909802092430750700015050584165016300135003625089902550527617545717610773715775138004846944588005926508216720022440636703307674471310975435202762725580227779232071401863314191088088701989413992414131164097095239842792148463133388981062896366960958036124040149715983053250784054765540303195791245138370130666618452066815765570979073358264842467029918341185024184363649583539985794853213806034257973036257974465587615041129461115946048935228963751396596506722050057442219961270470827473315458620756958794900000155883156380056022056000873126078096232674218459240338826395541465491575331981748151745270371493101861830567792560099181396233771154688948840826182873582889758794348687607138765784524209952671170319259569148440556141700249635630644567105279874088842490242710108504346260953853459245574508826917360533056727565857446582273118522324544258490875579106852329041730381441768735281057319047737125100365086909061863528497589758781128930301559510636962330265117001686809874326092104849091231082647915674855521119637134925804627928666034977619879126682189504494700326231624513106297098318838135408809166004062105824743551588085341488287952190341437025144720200437283748274480346584147251805643146325535216908591780041440866681757300684112358127602952899596106802192565528255183830269464062954550245084268464823965854937598121498616815673658171220625091636446541905232761177343380801798080532015505332418884033101730568318253279664715104461304033010555236644842860832816042534262445304123063835523882003966132576701314017743160664631626737010452151636244024944750424143320507270493999602078598038744950540009007707699863397231164667238819324537313244398128358943227069181075753954592441118788395258305183261196011349637576458436856061206390519097915607969629806158760628961820261310085568908778345502402687284660471393065973484265325307666720025356528700236729219187803636828863072986163869596353330745369712693410102565403587026113612914392088160257938517287423865933930584174770176688613504514072776291952641307308221621982949862370671738191533722562900056796716326822958746317583063461773529651115407896026680851097208331237997400656756070915468996737684059701376312263124200499430880112074310123320934674957879367832180272950570617475065510401457757608341290313274345424768922718537501857406361971750404163036334669590908219215401629361870811191591755485926635833555114012758562056605905755184238602221158555632430199562627975678923179672547557580302151839782137742672069277568991262914842990960643896091440202861173707541850470757147573383719465195571771632681243555942700652720109260856310419970192943545201222953809133618738751084998956228709684742332457661533108387827516569004358000418594441759759027018112282653119301795688363948806709184862640010011933208067513131005962607261702657861940544745566310695632974015994877509069462666899168957001951896546138465851177873819235870195034614522238505234972369079263030950578689872712658030993200748047207089585935696683696649431398577993136410901516763814672251504198024233824850188124482449853408250595208843258876051736751673404920472360236349072301991653103565394182453393935696701208176717597299638603886432403447088726033693163611802041264854244719256431573859343468406007642686689448231993159634775005088322506893663108299263513545315158125423846144093069439215211527886118041125991315994389196963736837112088426730485341505961936801301208675690959896018526224485991494425364737414959196719237047293799413685439250116526616853757458967962805668071061662772282056761698876407317297042966084361032386281097310959485999887253172626540656803706564038337406909859441190589473024588770526308882135991285606284136414123271835233612324763955007731136812832152583656871022332273828709509069330013510763546086298115998682849057484092908758508784866175503577149453376481591254030608578817347783141404377078709293450519030452449828763212738017006641588934721975515389640726803068728934797157771779350324659265665315646682532163867069547142465167140163567213013125818478650900015354597483335977377373008123141387916601149714598318551331746207543558963284156537574584113858278965304984296803385385541350068034154600936109373951034362418719301279625904535314524795538574320325418021048872611595554829871518654628857429617343337739199148072834882325956243723498764589647380854293569826378114245991679782724305725332863864136515404459974583706608198109848067988064852329154604175073716910934457871518577974090822130855121832446600479574803539703868941472571456370626512863737586867207757434289175829898285819609875997766393044160012410101348556799714095946620168542047296083024465672861066578820578684141985028874261542872932122257416481214435771701001945493276959113947137248518264713245223761019861347384754017761856521457564831420756929962634588859562344944054897880466626606397702742567379217725111189797320046038888746351768412748407390784183285168967686126048299423635999694751348616757785035435526405325297566749912030908607797198452745721278511962351397516230426924522034717620853112766660866217997995236675770520425689705111951016897693343191805791688845810569675853502024569501600563650954366046427213707075856327131679377664009583742176481186375685216847207194624099954416324624208230727038702949897036283539978535974679173785996981698129332858190405419774063711597838507885598200723582499148547559178786506042189757890085828483455195445581665779387582383484313244932907558990422803618644344661468156357503570868648346484941896502658532627884709248087757352435086087192265092272707157287531735255965811558607062586232816920631132610707776703805609218395332980464728615465097353577829179795521661492922164150108997096120405146652929042646058492808813192661762204314532808526391220797607662781971617416263575793641065514521039551940649589348265773360220547227293619248111858806308696643025544130528338106228556694971976574282967422919591161255866990208360605032791315056909178282292105846612276610945160348294154737305050218348784541688063692271888027627788440029094539377770443873417346047138053720318501112099975441447117859579178304874191551739962767271453311230326845276019862991176508483196229782959714303849760826045462518623762979787361506162864037559934572917893539265195272335976378538460415878296823073926309321852756894039637005856593664838833533865082505545512766915340080827157167949539199672224260335439436347438628780363805307848182745493535758337994809463076372987899735623054715823107009462963620579172060134460276774783186336029977518636349199062077193403559688580228151715045220707581557199912062294684825688751906673243575684586207241160990242330118241259462785167957054846926641577890438448433255945826694193614097333188236942830678927326048305592477443213391395725681098884789567340080743279166571599561241052041076960045756976259004399675765701344579874187798088913697632435761310016308249128791624832521093323118191427466972485733864507673566868105337291035879890830284214520835824496119311232685282604633702427117878596416030190113076866724994851219396802036311438217478551452004021084656508696146371070508310747674294785349559802050930420883244243246027909715885698763677511470056738480367861451169267073616356134249016768320647492021446447880433151083525161733341337376347505337826374666864371568911158792434883755200795147238464778462312913650637232589977870905662650188768276847829315066117846676898127758517309055155482394333752060404872409825428828924404514060751718382300744578688332971597923220812615655784591147383106681954132362573405129868518142113110640090432027053025717380172955921238951442295096937400585406092023472665521825996526753905019677110930594687362595336746682575533592688796006275577321613660741126768314795108996749861147155617975231452947118884303254272269518000368525796905313358634573168915622763586406327181840048824678734364231915322429182053322794873734261306380203728689405182980739708411808996556806635511583888012390724303785659071994869078508768572625044621964677877115825358083796202975431821562819789600832332456025112329127667132735240896217389858962892576819094642520872616396342043244619799583625508649139962773269097429680129574800107519832124565600086303017217129775240857782587607895068985666225647787103899931512781350099955076636990698552613813172851008282274843940667526531721383706972241718305462340839456077281809802308798409605426585796265621696357320101159225839249104932759326978851077496435026422103565500993705313826881453122815928512669364476381723491049648200851539940049863740018235909957427463519918202613310448096318612048950780707764307423699392714391413314216525003867894017829535073824116750710871697781915138049767438728481281605620622530676600217796864510427141475670810098950746237539519139524699480096999851306605660920727150039405776353444813089116674163630481769116069898988537214875930616555843110205053962709348841933788078087173027373194154555800994815938937799861874084103065180218537856083956211508493360280777333210221059227602512471539979492830076642329954381822467301440136120332812729370431781437916603341131361815711638664848181037199995631801129368207447627789218585256977728946346919562442853978619625537898758819878190801648338478983443544254776181253747742733892166221329036234286063957844028648604054349394231370182121446812123294778717829991413295591082709802139216634975668514717064904454645042177417600896557134402029840996369006694732395851984842559205760741094751611103300808046484827254068509179472294997769590896470132506855230533781348227805645362789413698088262543081695440260762777423386784062772266076075557201839551862967535643287862687839885666428977147666755852946186648210244345509663977843901411452610194531744761454606059156805559283505972912114008585713497148744862372100183051034469568662259551182143994660239106503703737127231734848429879509542489293895704980299464654532806031821647666832136109694849542992173251820205227434637203039163577779151411212430553432527064018022379510468178592412496223399179540809701122230238222550548026946216391045558103923968485927969178690441544341228304865714066801017470907267495685688047219421620688245731571222179251256977461822669195966830923809431658059459942733557685854169088436999503945266212442781087064741175912982878223400187977505305760551610530767198030089900088026971359692549976724731242534970461487946372502559652683249649385481887937719500180352793550545912350724171785498428326053643456156616579752603680591416970130107556482688906932760136453830565158762645978621259665516025751908787506503122272121200286551304645916133190118887577919510674481737578258954634049630115389821197157614748300953953746696741841903034023199116682592209257371331270255776911240548972978752053608509574915089353327422351005791966596269813699923526402191371568791015631592813929535617908232540189033761476884601574635871945160084983700975864881310503595954050735122670939963406191466421915967574221089151331574606459481740692634308135970422311237413529187791704929531107910733263676389916933658086277572887147091673352654558317825517748254654103650696760187779652907851268717888364850571305380965918235512044375534176111870486363641752443978893541451370128186085557740429920994406630131586157965947595311665341237923733470387546870436048763503316365195650476319972243552792224422423916121167890916671039644476800498251868214662157089177104213440278995320652094859317324692310809969631526914748295282981338094413509559597789677182318467603249633561804898392558999077183734895381742625769974747133446913341353784863547702683700984858152576547334894077143410710461822811261748708485080671178118954716486540318693659297789717064694696629387457933705575952106231702675438209486221635983223600303018101409362811599492635325638972292226999237460898310484051145899099679910524955661602395154287016920698614357822837744778333154171928600739207977330098292122889870174552182529328054303552645443833064511425992379549864117378972223968062720515924362779784918908033721681530064940083875221689389156095907825538499884630928726529556419900209847589766655007484057300126938409062643932121148888886555274452721728949801567287850288155051807475715119640121412155397863926303390809790392812703469067115565345509631906480392794942077220882058269516221015460876138458770701464231628204060284927241762277323827739599928624591569499456865667915505945117102229416100466851500801798733496583148405061418350399112078260323258076326016076109435382070603921760013092449542806968942750227659445114588427382082308747654361229508573756058955509949552725849416827455450894262165506021923157486518822050714434660425887467319528394867509229463622434761528092774435165969562585739687089655210386285660299176765582539124067326896954357544291186091218447108243268500419844796497630399075388967024359615470725731469136101866046946932390952831773214877781716890910363095835195592061568909070351870216832989928734015159574227246971276376526257266865193237276528811370640666016087382205312541713978109347096245532103167562593359167128062890935670812615496528508758425738753786690057585853633051417960513327882925803136887492144427390847437096010756819393469253782348228900229172973561914643435286320492351966994491105730777245720751134439245907360798573885297165999998768361633503112788822517834577460842001856559994438075196199080985575373464170346175188028607765454514943414558399572345818521637679358021713753674625475890567934564920041857927274615602982856609322727514709711430009843342861444193615063644502154691132383428681165533409198022422513684653724217111814725676992864846551187374635562135089241793482558710100594678276818644330979981840008405804277880208182112457221449758165329043169946577987020501286641608328383822893724627381263675157315452596084143453385128637419357524592021612978278420262325398094108231591292902360110784821976009391927724330829417470411703990712975921176305776805194028752598844698494111340715197620549547348461767633744862871707118987753182985853572733572191092346131307686636926640321469298772742002907033268874858105013063755283444334107798462888810786877146318001519639520151772023915397190122743979145431221110854394631214870911013071404693475597004998835593576211406838009605729359232363592829399768565050060350307454025544074093327252028000106763302658976063545403575562137236288000141075556599974477675908056382469289917055506034767792152213362793244082666381699782707936834780901500274444117648720732418481616381967092843867536768140769507040061698351163880593231360781759031777895004674163832015012302953283339051131901971871871175809003559147930483918183723508363750034149736068992346503298556320179638065787571798993145246521762583699635138383981616426032600888931365580463149536962531020538461413017414382329154855105183539080499692659607781332081236184786249112674065313494491353907774042801899050520854068110889643235316661147825931964337868412438806379894193423159694195667712390590736791480539151382565414072264969957312313662618515715410707196527732427223746090307192309262962316689369569849834257813683526262860758156497425077833096002199448616768564786631419364197643694900770702936455426351519835085415128206409539878428292629490755173187567492474478978022698588924582987990379727868515086861919447613575230885605851796043347106806646328948814455421601677922401900717240043455465549378911391625345582610377529023084633729821862246701532605298519953402418858950669289822617044563778645844825317966425176962962641146007931076798168121887214602600702854791111614898201760762444050092916917830519611625855115087279599279455598347683737638609418275171329866748325195166112724931946060605427402410061541548567782963683575216124683475113422307276921950208549440110430727045600563427412466527806015096702936303484507687111752702210667468028660860906828739446407365641069683946882933488778470364414614305623251706722404926542643573213719380134323199844833559528831266647863376634805375101076026435782533466594905716993670221456929191856585795636937722530183289162459876508729960427628429964111288924781192522953844024829355041214549300016864915880201760694728446481676117301311812726868209649365644698266256537473702337783379750132053411364273224573718872362089439474180560715740027160132568464390520619560146116067532104883464410680613372504070085291646338991292786239927942098641821724344648226736716036851121609919802040154048052166028492632642941612910024084884196104840279202155654968917548986979116351725811855803290470577170129557718491108296393181726152691640078053753933356934085673595315983863118409781846911189137430246304496521655654487232912927519430295196872821866860195750450963715357586460525365030337403512028744659302914302826722349866600722270533400128058050909030768319582063339239618851286153844455976691569581169805406457776287028461181845366161281482303044196452643090392894182361052481754336278038757907876973115970390255464520120055160989826577866786135864598915576850979466084200554322352608493320871758420143232263985700809112849778082082552926418881853717466089838680068674368935659086724523349564845038872603792075203701136583901434100788249720591596948069426564049170659404274033837561681331205261363218355280604475794004419801662515611044393130361028136422949792472222312926258775082134094795873611139913393002069616089648838185834143856972704585280386818414227244566338729002827560884288384915323041903231848166422027411398721139885484353462321748616794269542726137317089974688149702405865929319928592138430127560058455837598849700240722139448693194905878712566962904571742291983584691705337315141707705024849196582348284602208442210507671741561628774667454052637641596542736306672716250844194430330287556409874417284897502419483554958703641482049840714527100710311466341977597462358340966539441154370657430765088295345162672714784214930819024167634890479196476388147802767480463086771951761866088803647850009047421595238113313810279017375010299536770743188684593676470621471298786574858818518326851131891935066498311972732001907785822163912510080001365357423153159172488715931913527626950224425320568779738287750208800841365911380004267357262135557954026327542025797184186730638688336626024168359194789404254425304572125635752706469453585198616492232899484960790472510881455997397774669936217731917721529786826235455125179478967239150992825575617062668750159109253468907828378475093731097437541973204426500079068183362353051552297143972738973616886504838515464882673489462042848027354979357275756300192453870915594524589609785263806928521760230022811185290681602059485588331320146475445595690675076652982423568337726301062115883859756490079517630792067986402202483357895095059596105175542333161791332095021393041253099091107921175094911532870689733421608565524898145415635934800147899058730344715829553050070119074628964326536654219188033859690564949971996036567901180507874999660474740701651711796008471279279390959988491787724276009194234856736264136117805561478810544958123306073075119424237106041632507811138660044680031083131701376277044681045910071243495204505200315445756792623239300292427667269728807717758025754237702492993171194565979111982811718629813670299628094514864783170509486732003821371385967468941667541935515863098491312969231372277033212502782764423065811861012231465927848345145895114169665977331104664497946078065818341302875968955125054648873123621003561996079553610170835951664269498106032632783771783019091613917838508285857843506670587634806574557931196686430442116642691114629919917513895976808192863322574405512719454934733497750648172031471296041657697899441137959014012674822499054279042478205397221802339231298801057020337686417658518672983230745066183982566375019086629875630380331662150935141554627428597356990660239611926729607065175541479023748690597834257352669720262913848103553585869348486409038499632067667119838821426339880639265953733358643261567777551631954598432035287878286409823999532525650671369319928233874048867828690414999996549690048200014010190856101992743302329260112269697567741044919762796019101698842911521306159812769988953972896707766088173261183736356262395961625522455024835474022898465597716554800320009268314629164830960898864955434149508290748612771847999555431842774037121897872354748616650812107025135660932641803881233580130058206338166762047384132259398230120871330548682673337017379102880261680577687273360921625154701478906880213374697008011108002021139429665998877146333339915274909896228924823710297637243077308115832504849917142644949915026970801749064919500562931622051563949733728885323227283410144349239184845896662756232738732702311349660187737278106668490113275237895988187813870258923039813953056273477327484401883533319479848359335072567765719719607829795889441905792065941207454402377088490346097147171192633170445228556486791431072711103976057685606818684116509038752930427129010444335608194997224334646041329216935830802024184354599512518321531900243007803279920259492018571600792881362818047913888089700548973247261866782881698424563579022644695195711048151428894044278341404203298170645987242929014660372863943164165234750764843594961195267436563452885430582427584127989269885627780422391495026153000689291334181285401834827041045239352690724776078806943054642890573765653075208082954515827153812223191384109334000793172945390697655488784935807386122689129617910018685744126143197659185637043143312778260253522237794997817430169495161879366418163195901292358652559651337871321788421210442600914341851305760412606443512222932206674905661240413809147640116836730790521001509546915224494477325625060707622377323357792252731658218237284665291609554677605683417647403696599659470320411838251749694058565883051836609951434243113037002340285330306363660105659226265789232126549906230683631564910103983589177207227845375253484695987499116345063962017098075403123835996339682156618628165993806445803630195460874914903567110920844207798284747577383717012238771380575020883276218327351907240827745748196385912219077217209676130714802768251258881908886226803673449677544051656169393700532167161676583625184502842035000951002237442984129687884163652950806135637933302387151356184352639171197400325824894687700849390166562739585814343522950089375461727398486017594058826127264591366761155549954879772577826404189714089362498120432803015421118655548199001216695286677663707191744568913531936973551772481992014069457524835319599074760775990418833534875722209153725420819367599544260078369969323360139083948992531624226074711183464466896667951022804427639415176679149759322290808078953929656633069838017176169685849419843802629422921746735546579925558075299309627104912352620477941505494772391086799246848520709760801383226776872347797611462617979074669496387043812190744892526647258191993885527946158448305757248949656179319888845564351974216157462841177080573417717694722290395446419468516178504285954359659485597496818673893324515843665671189986498698425476490524318509286529226172336662089086397545248290105850190967680801430077179941787472181363454538746660709615206452201982093940537945745442574270441947585196098216417880502913455823524070085251054245875390388400977671642597122404070147736435259480055396072530722227810931032832910673991797034780264650951401533640606131820018133132878883546191495577237273934265370444543409840582560342663248779572701866097395016060171372065872216509832852996235984898507459529766787271422521802230064359730578924351796365090671542851836855033801823830418982657743914150555401298648649053509584489065988306995188273697117490077085831967539598750944275923088362912093803789570957056270620368045067624165914597313587097688908788559695543613894291471298640005545564759224843581231323041971717433000818940425052095685817577581050080911558518249124798279144885581142020894423484906663785105974332434902902522650913364786959225886749274473197985605722727910073918239080401669965567373460373592225892002201288852767019638301968323189804859625141574182995793352081838974357717149092619641167163347140763890713323328122979681037775272280251394896871958162708178754278162113216415552059773669717603032790131581082163014033637584038506102748991176607127050913082957318290947602595294542792315005018044703977913446270061597781300340354320201095997774081922526783225145242814612405250854715951387794175563662142238010388639519883005127012082335755929859279132022373521636211851426124188836552634046907796935427833518114528672113235169897606858544483760659432524606881210128239687418405449111167732644054440665705321104949391329577937401365989139454116006204607544132474883129308467758414473530875752629471049492848146306935664294163708261961434735803245948718820858302491371322934987934993057744937287347817088256511708221176633625267201034893586490736697175915258839007266273374269331323080391543423930103876889532206051568047197150015445497242654016022949813568091030182382715003664607212953496034410085734739313664361026616073454701042202150455664788914394571600484669891503009478675083748441950735661189459910440221398490612426951536603741897058432670663829473663453389893364801555758784235868622744653621060536706501319864099873834933813220479318968553927370954044823819892490707588209560984299083887577443058857092443839095645293629854015651209067917721513644361385093720914121177488632202672562585233630348907874654523965584224462009898468730491082924894421125322229862385575538025033619188257604267906902827208516153182116249385406737363899561968610315894890551030946540588622019909394973537539009167625506948988639137348640990689823048115359688570021036120271784860665948441119466352473883467103422717415062227576098373716000678987137571960469665658123544297105824148397101041014875434470075852530414157818333298163969192358872713953988823733560378583324137206717203427338089207550619456855797906805786077185865323498694116447972622899956447472218660831916803408094212056162707086496201162276772283840061151009521101600623786527897331761326143722036100732043493854582419656782654299593914204831182545148872576516037626213767439718194172491587351659159763380716988739206957582950127152369759262349307441758761657932635515017223356053024230353334593984604860177048382342793083730213788810046663996191998600320304314478261860520372329338197926510412443152378524515069982737330604879925473490837774436672058186727135117857760739767218414618405041311122564413866018759440673136912252875904900307908724223965233921565415772445950891017143969147369671542654147412335923453314786896515241654555309119476823892857964359723963973898086728482787609927524206599490949927591535754993158465942415872483600040095815926963901544029710997214194523121907293607799993816369955593863010181604384427026212972838195029446128354762242423615030683739386275420214138453398349586628563470713946859218610070473288049340982040102992438462610094850830847269591495926208506249204616785270088639516598295297410188545685190858361121204950546273554887263777509410759895267844265694452871795170148422139743209752649318736974629360795897055702521368206737342742457462834652586542771595296903730044495099507918529662954052269915935953662549719062068614013927072149240193636617727319190210804344572966868539973124411030361672875225909218396249759354498445655570200168400233743214046123832335742724975708969166262803599048563064736423572858194320077262842261001969954182314760962912503713895724468773485780772431823815053979591553604326264784540905949924524224704393217747371533722127003435344791910752517222058942036492140164737031943600133009011630929513828685756676646532984275026428178833767833752525457731790911178529979296747423861959945629434045725756948063834507864952355037442889181412615566591113016027567181724933875248186588466803123372613099344139356006701869820138670262434123986474175256571854652722676114571540513457428527361936328627722417065019848496946740823697064062785165165624492056250488765318163788805604467494398905711520493251722671512560246102844598845043055053998544395226881752401442997393522735863018552218295802243416706954745829800271882354070343870682285570471036906514783199479357321186647645852551793483221815498056644434972071728885658470568999330290898128646217364850935428584159941788790098418446292286742851611838490719238070771000213765121535500932212909107573971817364557489026780969462950071743173749799342593564214362274926317334986003947870177761718724623083570767550933032243123632283007802310063442720721043181911970765521930318960677679631602114885230137345434512631929515368805740229614547804759586873222237892004469741428028284666898799418100155459366273225548247162803728215285371161501046666524854642366749728342230526133856400457539709776856175566597236137770768538433768502803871679021306426772312457324310803582110486869036870474542050054782026597765609822161275789414563136170372121095363772893280299304809050767464318813260905759061760480723512531043376550339422816353547882732182603249866551046531086998375965865751535418913785922453157379051221775680817188001344263165560306048524717639625995510309740716083742789529320757769103858577765313143054352114945969565359061950827390146750784699463007799362421258678448331626200654591372416327510224491369362286466153670578431526174393584976102118042558491994777938014869016721525321941291659617686284623801966533536879786647571523592201890124009555526324078140148691502254380730917804155173065801191620020327988257030991296941286010545215705898290692549725496237022418768031002776128691333469339380177668040781723389939340620936887679793355105921431609720117677028782496882532120487482176117351649502017572625706724409986918210823820364159142967431417137659062239435841353398307901817279444191501020578918768342669656590730639957946159840957453172875030558717450322297984710178105665736506337640588724483807776806025302391525474003879076130410706765909214665917467431142389961645501871812781172221863176728286406277727111251102818850843549598348933943766095016283795576313625584626666742261542445680044544224302312640170868111501932338034800692284248168416552528981766954359371485146783786386763839922111916847547992467565683267319200516907794713869197813656962098889419057968414905471349025794014576138351244388278368752487250506085901184126292398503136689350994375415370117296943871714005699445409738060164832262362771847311083277378880834197417565274381408840499509871192790837306848610971788332154142684160230587035052196436458804003189768644250267536078605340188273474349250490906210235865951212829838683088315155636785555214661491368119370865042881932546734705981395055782665087136255867767161067167593307983165898296160413028136611868624302797915688034699497447177150355722418505758979227218113329869577311793037643474441168484438591354740990230713223643986268242062438768207198670896958728753458354290474546872132215027505025155723889047994554468321331062875283646056248839497614839480656472999831613286574849655912110610204345327136744908184371765589481038916481244393895665545448511527403983044512490956320849913327602992365827197980370419619833007904610613151714582666920695156821390656957440043976582482500189743848714096876288355790420959502825651190886493431260865664403043577774155815321011468175726716407312932909012401163050132907656074987013663380833849980647781425520605310427189364223102561272292607396524033470877264608788994471938332682842547704034229481004638738587644970646346138791263188437289270654375162701645997830001139760778138027482605024850733092298094921082618263596687807018345597891415198618616811676203854127904739394639312486714930691676666644786102571041174147397253755545278768525478304610366802699960092783982264819572903590948753727101742622583414780180441394221610582829240942284902286701200741771719626185789511610221107038194702472317388451082312568739306036895355571567341219993821823685914106379995872050773408704487404014522769957130747319661534670920832724029434095098439279225013232400748250382046902935492230289378638632512656500998516371829575237155476225738407068949513028489842965578873981282539173427870308316360241099912598066489956026859733931939400610450118491995578340493093510134291579207930942305129210319834656383922543913274120774244216605325668540271325376850205002555565559282663973817329895057503505694388615487070292533143663247762235341672785375177773465733458657863562294374112579910762379614219628379533254254665093915392849551490667591889760465340002614895182034392215564289019364177307756363168490655609216110443565363198561588332748986707584102433409307858618621196052903968132623657024903029416922391219081093320528409166934000455315523473020548094114541169227346888972590188171520915567196172651910051187519155145346735265030937785024364255662887643853669960752434393447653455445907035229932401205560840790284594864447270532464054132715321805235520959829196848840310277534208880964533150346930757811752967923093638152365249221850300605090331075279813812645684980368444055036312817048235008832705976056821746535807740914311892700172892597756268435839948530606532871496567096377748699189938426461915991482114068228074161501228125215386046022719438314705996224350445221941894949746106402797825266136192841749201257351671624895056223390137346688471095272288779037607604783671341634852957074416670487636779159751780929922452530346018913005045802608791478086230040367569921690730255690236150735501677322886310790381574189410731426066397917976932838176634607683702254658804628724596524231608235579010942419975251811039687917301988873244095986494980939749458574795874324925955818688781381340552214550458085802887375445299928558439963913387341039384400095928055884953533432619254538901456941248952213785554794761989356180093727038847098276834437886547666895020379783238030742511497186241959210004869776263200367879363619889795120166487929898708650685091903285475888821953663895456790933308533672794310856360404818099105725359505602214031298775132671420078985319072247805558010040871890538453113851485783088441209661816240420885665009788188547355016903393752109006793155507133115843652376844836997792118391950250892293717872576866391570121263048065203587413600798178475160544226850780410126668261735973459020689161296073004993203938321331638929976303307584912918796180688905384375615919209359894695944760848204540459777904380048386566859388154766965829589559926007305733679810960819604486280735554665167884125710232312180186994831610209196664095990694345478645429746085751779889785841674716760735693997032274849127440614996397028985860285917074466607441571927886844431265803626763690950167855168777409174064569405939724653581202565268287737483538343083125368162722421540791223238206757498908439353442883104380727022354488928384189340338661495080107422590483336493627610419467703859437157352444437335739277329344913433831787447931089149123057951546822267831457382155287988204980776434699051843967450348572593687437954237149679476012675382354394104665486118987043182308306030015715165712731704210127428881950980545475379921319359916909736595901848980085564909363435457575578380342495358779079285246751112722154502436962594760417867286976217683736818280610086428458848422924229777571002031595221678355238861938460070902161863927623640501050307901488667024580061334803029293874448577453097058699840501736515324979890791581505833083809186279833667733546250320338254909525785686995868357925497323218538020335687999732512226890505622768271188621458354879027700653377261183839684410553096181221678851243937575370351235031201358637144807525410874843496696241742239316261650136654985964822741485464456784950020816189961829190574699366818848574426174427958369412034051472146006259281820824861925407055937406102148495360022973856951996276736042259993846988315465865912471561794591838744724137097637558069551747691286033673992643559864653871108763129579251002713131057897550443295541143149789343378640626145371989133587202945642799614236250270265988179377333483234396803775361744833437435064006955095492599629413068289359539337922898441131376660793077409186311724281178353117590715581610222290580220250709385913976308133367767096248905312552768506482929440351549213120780323055204447417328226568235453793836878239118212262397567399369018562334067383315611802939380813738140846382545598683979331367644114087013927579721311706575312562125771545653084201149699836410211469690362122509412393821065451160068078073296203428008555450001083870182524008299786141620467605050403023014442766528618478202099234006341988424290333633936023637621080919844512853006461142537854927979899736646772145108927166423349691221051367936257940948916921618745656465275523823670868676816586572154031206100535096654992565100853851933752279982125852692001264419420036901792249337887049029768729718057555662160741487886291079819065282144910447562533352803819918322776208914560706406978707034416652279203497467536884115066339745779443813637934932507270937978689006226932943662922401864173393065445630126300284097457974117268103645716182357559856169234857180810822883612824276224794879901044114745670250460113742631789486093440800782729989404270690486326353603924877777863224654819336713838449342148803743492354245423705150947636178488012784348607348597873101974408581721880368023877075759896466784277111643185700614500415622924721797306911717973627485822645138862868032345214119126811869793936826347349041005554196389175422758963361090967317019014755659655625389424582134427539851980760771642298364221182148055496244254674460792967702345943596533131391809483548589671437761147201238765447313145801024868489668674313306687437340085242316141593063028656126252983313620293041647785343604139846803005622841903007687801022185289073518142520630505503979487987430527922382046520255882977535364999590247587083325131035214051397358100613659981596584592360722931822033165535573203896349563682222041154295094902386625245332602858246857832950230369581034856863516724111766606805555943877735564309352112310171590831890187785157090435266342917785225506682885834850972961180295050795142168741708291897350852659939954211732503619821310449980231966866838980355556141814664035463714605293829237646481586551296348297469776124154911567611611769059598736885922191713551916758976727964648089480777199143166967377439511656766035272577312167752561343590966669005110600372050255545185618723767553130485693118746704936443532564819541277314434587668970465384286030954500398458324700197300398047776432713154471045478950211908628510079400392132434107254005393663030898987090857488976779283548247419367709424525692822702834313552802699081814541317164793386648130604426190963397612379447596621105793152854651766383502716479985650037550470490524812429260736377414886897580745319236750484229222689455687619511309434012184793841493035788185211947241445773345307590391962150258388557171519574268301342834105220772447688632058919173326462400721390818165441703859895132866832243590509762636956528898501171269055565908509900177566293433421944181222226554270005910364679236317845999986816278266893848246480992276487935052641332423316422577468372847208634678991125766162622460836957821879239604715629678774633967194904565406468981954999518503845415239580684959467750699993883523311400770888402439012921885612748640341875889553040742992947307488659575017944861853741942311991334005628479047935462750867043394020798701810024602642302684595709478146152147003911759685443464280685782215587702928840710065254168121026192227652299331111868620226621343020769480671499421469697890730821003706620748346891845215927636602910521771265295757262633824660592468329237533955227899494136644794956272280948977603178342378480508924577015214681885194553200536742600188673224952626743190548896231893225515597642798239214282895118458650003700402820832845873863321204760458846189530951163297452750697484970537357114163651766060716545789372496081920891984835096531704178690668885137286273591493660367503140783468559252401008812505928131838423909000447798415066398190913936589437979398075094751800141748474042314304359187459250171039393787343313406209789823881735136992902611941184554093562637286332661736363052941846726684792104199374001353388282630929967388785706805078573861471090531209269885466003398189049438939567747940753682002530707456384328641990677523434162596141658998772936470972059913282998562166594931414307725885356814040780581282328487806139120867325394015491868647235962123628177494419672964026377569188890219730781959608970122294222761708660671647368409082466946122574638804019531542132766951415532970536701779977394422817006543110810335036253203570252762679087178620916038788135805382881418610696610851238094674904234490633971483911515607083998520124713812809826221341951571842302089596849838918023150840761449972546104695528407749925810986760211673476349157069715395234947157643867953149362438391940756914418734359758557927585376926504302216560422497416852821641841862292480474499910536710549197653452170648242856907976466499859945699058537607733501499848862775270195984784906520889882310376781508093383039907960453587783182200840533726562426136137551294683737146844550347065118425998947665362197218175163575545991534302579796834778560027444534929186477449888325520276067457139553371876279935461551275868176680501595273740153439362843802240783850738312747908062815682932009358044913426857681293427595717969354948564438430372060946265685615419710428662272226978150382984055945256860521941025237217079376205318394718124772950965465334580940134329255063652003153953957696165866105557286006661593968970175354746823169983694727987765888890984327361009900948679907753786693218956003458962774617335239945414208631283334829888702712115429346259929312975636415690724241340042417120520191160567625922931651090803568165960908265397467990362510442011323373172829066787043832248275071107812422090866467484690560424972520694109620540980114445560416191601300112617865651588837359480952328650450034139153972111269917111263924256279231202075663399995293305675492078971853054110522427553202770135872365534997298668013358888269594499898596009353010644846243065407940999733666500502704869274035842836585690872737706003450831726313466836616536735832183653864404537150591937385166542062479379936984945543432448320478875859148170488288924456663492518923017697648219688328266125341610410113122184038907541359570904369198698565802906801522470821213134923406077581829949177427763767464338286847813305599831925893209623404155302697683146433603743435817340263165168085692517493691208514595721335838113512194805304553759933835705277915064253726050092344938231470267248635984060317914192837295852817620428260901477811288233757279932886540426738471599141006519245325093784523999897448327438991709412218742244731418487306713654761234733820457188376201690471468027829185016639922077228204496149795326381438556645358663219905273954810953159173799614746562989390371777535718100389123544727332812649059020242947940518533783026827042179360044709628629158923387820881983835762404635836308962568616583193153798001906128231556417034529440806326920588014824406260515450110372636135219445225452246658627055202371550409852206714917564725604999469562337734800641264520790609309475070212532831229302171601658426642970313587521987850000697600090767500140279377355332613218374524698580768237731411328691386721091300043270760421731668907774737695865887624930119704001190664336400335936691302735247785620049195948488997555091690362488503407279497480792189439140745874494561909085005330994403165345167941256562087854435908798226049836010581721304895007199557091247934832664454957042319807455168284781783094856992209010380603228610206016058294950017487347488825753295987837394310713500562202778938277282435005093658767433758850145646307126533264039217001112842709264323769766491906677979418908476363938450600155647753446124084119211152253594525157205853474702893818238364357447314283550972926145596304363735736481129459926126247307923826469872226645934395065486895850759918471612883770533910660101501587658116602323545380067707290085476685015775164483950222506881773554021321273100327157849920900324204991932338301373004386977824465298906116517158197319351387803037733682684161132973397868801010270447000254343870459771277019002596035306581757655218731080172680889492325425109917333195814822353969336547879322183682542541508715054064151803130652277784828262390730745552445612360719529847295846645875956097265176474143997659134740260681331923640550496316958802235240753934166429835643684742448171888486115033213980226771563673221124534881793923074088935749408577305908363082804156986268518636815310963022268977316264813020202991536070240869493413972501747746448554942774670674638760811172882254900165900855464828434250353049976744186547570461404794126350039384022186122581149678899892580001793498418320799554009438878328776503780621218741128843957678013155740693447699791254960479057383264923725959694408539217948162260419519705680635050247726025744149788620210426128527566962977202340149276435130610842198188462252109515197895228559999226731501076148791727665462213242900445957046355936665859271112217863253001114608046895716666403746566276719312815342648384269524815092294763998938782320013577299451977674343358056183061250087537436965985212834329031486726521725207835185888066644801105966816672948621162968579747792698611714261710218180284553428478075073448704669482471896527833853602874555678000027341498872406719928399259658350672858605415866699228123134600898343604457750283051238933235525951773264685953186698584130733762946183478726746081171520396441754154447357866754176839511361131209227654837074691945629118139482859918462620956485901789064947233243508676775477068477829522975317707396858252442515037923212503349005673790050258458908127021500863267385948645297676933370992781423051080757957746259716924412768837181967393872843765209838872889065173886159480132361726099892728789438338296222743114317772018772774039530939445436014198768447678514980841088256539526018263674192701441989515223834723276658051280190084254691442613851164345966922077743652570915914047583499690503163022893052321351514324605207380006721350235610551630572097838266084357190340443214992117317462056094809379274236097492033878009996219213072677384204970623384510798063169521513899147127779048824824038530000592401663462451131243935622954168037813498884233974663203879866911976905079064961396824524171858655985921107940190608017646278804379677005613426392440783806386468837535960169513453211721590961508236683083375733258644538492621184910599260130205560955683830713478929178713170973354083980751056210524994280185267987188309026015820465126032298365803848910726423546913726663380040401274838344242554454778986324981398095207396096393227457652791490553568407127914267132410602548412355238267023824574235459354830694251183042681354135237536690737341264981096255254400809384803677745352935637599440122346547304016494772429768459594101246862714626378490491285765711373155950542496899476512959463748465192995901609506505934744530340485074686657392040801461480788290801346238680293249682695816093577650965637722198150553155948635078760836998116656168083464689264954583131022096010718179832225286215887098196996608458044305001823530782557160230648505401710556482134143876447572290969053779194363724613907966167609341484317485277532943073777300506453199807986846083034295454456799252494344821829697000869364873325752389612837017330087912526513289215998130218828339510409263597004170439217539482634323449695543760368179367556651480339778193037557309472163994139104906849120446443271000931538808879985281915272384167452663657792695981893354414072666319249557681115039189355829443182634232960663141834651666787693749657008462816531190056842581489139831674347582485880038515756092204845325758851834107851112497336733456961255785830288172555499801989529100648524555037278837996219652311926847049022262050180669071432054919893374545965222252651557515704665103719808339461569199700379006194942927611808065921445023994523531601802627283825621462710708284822328853876284230878371979710116383885064492912856489015251600903140948476251757721904418391630940028320741619789836348399376201282751135951104597954173665896424144962946647058018882434196059651841111857586482647314723199878730477848734724561923578250022342900624201551384062968986367632141427281053546433254433440727837567515623319671690353964453505414927610523441732690675730218518362455015096750181398087835652812766569827617509730163082416541433916707975589296696056030661133170464575168779810875435438794442362586307050778287303764705211883770128276376807708313027342116411205617489848378556621457662944961215466237530710547825326934318482569043033688882818091161311112804148863094504200578159730814129054685953632108635118090216168162898979125641575454589752543014975382002840926620846959928363445718158660850957214929166640793788196728095164655539813451009932519280973502716608901273648951211366713330456527833711245802644049246684457037815906710550615544912828525068837128403671040753199424836118860342537638730972315795588687461324861721536681202218187586206222370279280327447597419481470077903932815306190395313113977487775260132045641043184198525084459754234216883092876203917842902927850874011386933851854613472311564351894317643852706015810519973610989520323142075539678768636909384351635585169016740539910120836998922821403005014625147771659081199135166436082665867143075339069322968736350777278496782816744717937554449709315972636359233565864582218368533381877813296353625391138875514930427340814057009293907706026892120816912186058296732820991964979885965723091513665905001205033624460179307381076702386893447360601496941058414811333619545526301627257621289943553847383770897337220447574272385788774430554778651197356864507858787053540929595376530917257718261496448909341103339173886329440956726077459899544653446516000145936958601794136749929936254055926262755905109209457459714973416631304305073174348167687686460089190142694442852023432450542932047755859053994928214788175699396587386941889350831024807091021280665666942422095518205005309145395260541727403409177052106673903175159504999474874816576750525498732322436053511739144392475941861209337285463075172699391325056261250282693595981846663628589240727540013862952760969620124177353905844225037191210498071660771622842654551066210322293260563451321262674339543752957225086964213697654373088042444847628084242531606921199733386906691869143555034530546759863488260382505141512619392800378228363087106118310296777407637047300284678413974935576626493352813126814255845979886423056934617606238014165489163394304428503227712873137508629044971753964606310007434354712829915203686644407758926617345671776375267964181670000703448011462614862008236548417092581710037504630824352669350675545510421136148895254977120064816901943166942111510804521330125864703739106963068754566744060026019442050091229684674295297733995495464707730546470067255294589212792048734889884201764201323368163229367145688606363690581526705948357203250837793953895251014235776543484447741673747708476560806977470813468743587885338130609849193284932786206301778882824805565793772324204995519228220218398876918916672767988888006729128476834305156195935377236627843630253648938401076930877810195821896346838096214931738671692351992289265932076386371863373851887343002395003106193384086937609089976445390796066019389994396786311591976053114523329349003633939072687524794093384816712579270989764644132839031949670040480095882079603803086940604767640735838461773185906764662392819455024886341331940566786086059204533946329104617635848746151021975766393681023290354511455672486338849693635574953996157229710690188096693330500631293930723281508827644367552922537102280026129244300958960963818604339890460364978913669792735651222314044885604634707082980436314911501591019129131260391036458153768699969942081206417202484009998344608820402052001196850045952623917925274628553736195606715886728505661575085535132442084146591759232333405978507401062199233804751338330156319587205412781990819391695602336500979867407049755357273137711164007183086174436235108644353513156487167468004085663350164296035025831364732103457103003365935724044220167212537275856594905885163696874516336512868708929216501776371711401185878290168267442074197837365511772347562256761767460037647353242077440414611878448596375003802896285185231417531316445517201963966709082415395347027892260821389081275139698799209852974324244445546041614255481876968882494217597402209635761030676978338697431761665704582498898983497184871695026780032356352549876310666868312769745105621550295473931588182780400455515037161381420126850893624856002245435875812761594419582562691088718103096573888989991984015205042076229391764333870888220565272171934347329007816721779500072942446108601453009161970803828923019516022575176753789014027503121996892116318285479745441760339663208978782878838314155094121461772155666881309887494859082012377781398563548222290436644805701328442482801855269166049582291905098140575061166416676218261000355628779052114109900746986590455594531616747779583960933406743363640728769936542492562602981403736338676914431214761541413918141759694043483693843159361616866104850453733969020989419191502098840213974051748610930627136463967676388466322015490301943258887398777902078680599576319780236845882634269892897728878704367745865633743145191890672871273795271554006926853655158397594699988675839095608178371992578293578290647446850267451034336600727490121480601282710689877841016582466705917478905954611365743800677206467904680152751809032466105371524062309221306747660483120765659394111665065007875123671897105723370320439815498657412867429832494915278334891758047172695303954353632929378190509216532296835644859382274481702990173668528108206340458787071125300243215587011012925637834662703588293260158713477205066636295842426281928827164579210787227643940615205628300511949346789902613833908061062040380917767945280996198041514122073603559864871518902089240696248907717491864280839075222289380774080766995514026905926542618223790897875894433135945265026494915214458724346188170735333908483729734165575595827511304872534971272094805237740928966983652380055805540219408221585196572640724019102914377406406445009853831739753999187768491451831443692567238737955886329566238535422965775853841115079846151799316925184992092088028564826012842323852672392492386806095943595316457824507215962650597755329038763428799533551806177097808065512113665121697102945864082981049861353871126848982100920330709701047946141886408820818931759165039617595244211036497675316658660976621406986460990667022720528926119581815048935541912769932744119184662111087972827763138842988943307108887945427333591123964868064447326479203070144838595881735355271903000514939506425304213327684727814060032100347307287257224835755238644345141683784620532548531371585273399756770291439000965760886373378804032759132708216835176751987252279108982096180157922367068015324690474429787738326706153372505480664459266679444970575559187140737470516647463506124247463629372408268619085630438358242451136606635917665855816560179792361265005322538641956471633439391491461287658020852396628387589732465253330658320746233864387337685112284812769603161035769683477688033594552950380012612941698452816747884164382441426053521534479104175983468147737272541692390462945708139834398057614347869250303886211173000253927683969462435885454622043965730293404529630347066881503116460907180890638896402270426343226653012243245823916537818111326627010102995772155670267718033320922342333477645179357794921152676833816880153593823238451887541065569796250799682098082461901968131540797908811847290859098692297580957773802208574847724685818562300413516903497148787593905247052885808029510304898302429228836378972328171346014001011217605498903792104619007959011843963843490101942947235467438778636599315668590163409730230605843214031651141558775679707210737573815809729052823651294340194011678145744631127763734997128653335094887049757664934993113121720389385849609515661362355935677174776308857346858817380811822353789973772658173242146473418639896603957379747608257717010037422337298232787628009132057494996363802530392254610206080068678568504085843350702671336677219297388851348859583382780807722971094100290398000284417844253890908346296742115255542687768439349526870206441393916399363940585448847178322218892698572416504400733345198827366980460446989965027555774873037586278166127779760428691606351742825089439187090125458232165983833834854897965260991500179672556415164516189272776565540963363777483220161981714718850485159005668761822145636316258202891515863112133477914909626895388271725364831152819629944454726428228933380549749887549314031896393056297409294280289184768940557627182808054448462961468036380142864395539470791550833498102091300969748588033215006212019182438084932792140599266327291421811675801311131078432702449382536809873931156060648806610744450171579747896281383056857349066137999081788063849613563888583618195194384285660017685819744684732258596583908760844336895235018072881782739963074290823516009747019113848245644576463435923529224474405628250969913751042934765393150240127919234842800877188498757762214629472692091890114102325038692959834825316790540776694602574804677918423898783532058129426375796970373621209217295650490250543331275828601370622254198292395063091749779896629987386882953631652582231176383265278167861220744471626281118356475324881041373986428497845320376966343483988792803056846367579947347051216598370143346180168187896524809579933513871307505136496484063309869363198709475707117530722554102102550707003661351860718272814271806357909987874405738497188381827154756218359614591679297193567051099357935703045660850303544236260855767357424379458700684916575976503541584764547167684661612169076573340306174219759977603146429981781430616006879669271818945207423741960516050753723177057736356484820478817462429624295615737458005067906350568351317816692150659075592265952518356534134368022533222532060436633154149003432817948636894882382680865679310317883423082940365384828518731895906412201906086272338367442387092286849936967399983022716518390283916058820960227510202967341075311516816483880661432939225914218866770801120854649401101702402431257080239072705831864423678581133406286198656324426393669250543894266244590751942813712966775811374912296603578597678219856692116087837758190402599666707697729767614048355297210921510205134918472206475985606401582843050739206294120037271503176458398119101292328827863290127628141435304793134085812555802570672705977338642527486206797657653128818429300259389902055612254044961530058149786290856723854440996701321281910029541249277416935537377037536883686918133544921093959192708503191211562845150204355739162277470216917853461553214385083694802737208066265382934811667691754930703571898741710458997047418284063570520307523664631061054687183653773001202939741954485691968384561414254919433903408524240979483157658694503193844740191901420268266679203910865555314639965414596942928777627399953947191936945492717903662265644670424434760134652211645503890899270881785138785337174932016393697324641462334943059926862803399698085479816355656884153645083959999885682807759687463415422639890158136816899468577315913585758326896083416808047548553010666466914827955320206990863832751112768070623132784626952696189059344230685998560356451403344233092931138238284436072579098307836120304872770217747850778661996124483055956978235952638815720754444664069398818759806972212051752390197269318070734273950813414705691961778814697998283965460401271170556214348413394351416667151257804915606901180940178520390604937743930852917866375521712754478821469369473354618870954951297745121390350745487625031549311659283878690770150852182888691774559509332828162368368144744118495675689168415969305462582959246327961774257415863352384366973617940643930952485829124601098261086996203176669999556321937900860590271685650181339569327494822971535227694904641514267775180824465027023437217134898470003096899007391072408084920344441485908851049104901845839809523281769387325091633075773963376316858374471752149775151662146097789230607035502024392404445545543174814393983159201197000312177867527895800787407312826692343225259038263281166688267479647809438187220373594766982438308669063944510939479735684313725632570187346863997719127842462218226323237295960562950705275607401581540741608153713401728055338704062775619940767051536045590390539328247375439413611981859734763892166528096566583940693647298793846901084857344187497530317767459138723718515182044624083376404497057235259483467036770243700655793973765182712632328654719772021447107846370489024156571307149935822067636986392215855087389430310497391324852422925735677985830919629254889499279831901406571861925557905839730198937601218180413064474626257640395520364084351205159665127649381012923090886411470395107193262409616588396658422149367461459245340669726908655227352546243920480432557290753779022195380732966008214462595333230148849488480460625704653124571175139351257473077081089590587375685163818517642264461564396983281696747461637841907227792213569120459619912216717875070886969898556687726138912115305618559286774382924981809755356112358411446990322392046350392653073188414879066989990272869474680988654626811147695250832101071564268551547879813557042860195906340753776075923043445074849252632608707023514105966240514568953818529221115871601791534550430194836550733149983812928051817412168455673546513648692249801593180130260118315803535910421311321311384315317743238520548468892388971782290655611195544535247147752036870224202624320974188098597192298137106263292858478113844148509181611765215962085470878393908218541763767908972169931567118591181575198379168507938870249751033250178148367486994806243337789266310037894926180605028462452403797596444628223908212949984254698106433599579526776622560428445677876484699201875032762033104252565500557845307277207792283362142861835136808379473577923921009859189683411776606270973860152375222832883377648333644964060765659785399778437627799504595944294819938954876661366439318146720287702733768335496876009207096524910970434066840902303728607550841420786648081059667369416933714523667601837372642886788898435994555382960148558792848280026501506135968397881536870312326513716165151394322698564578265342045380833511547579046856476277723915251832854644097404886429183480136994702853167392255927428381733993043691688497583011856483819511415908751713205110420391467391128962914819720914880537952126457167358811544829462492838696563344613682612627621432364562264974367298417502395111152585870707913646600298260754851225965273143621050313554919993004414269885262773647608657724790515350976274707789597670439617517262525393931687332401017309911341925479791800452850412123754310742408945954162491481998029150680097265005307848836878811212899463550224012402098278284610743262224176340334502134523960751209664671064793108644596116584130722449595288848344657447522716326956078412134894048475224096444002785668146122320030782065871006064769515734388953793855904956831393679610653806351877222302426088621114989497826058378066860415489973619948155972787910722937550026231013072437044512234371240547974803657226003862465642719722298701586731362947276827885923981514650295680813179965468949890943435479174542919746451977331910283111124042095229324340533955842697886083082575435756043132997409617600564665107976588782914998726532131877710045597473406298205431550705437418981542259639727195375513841389980826220651611997304195855633234669810584886200665891350337647046530532024810958283765248013984493647388593999757369343533516921583285929131403679889119812744306399252150938358107044417770716653425712448172239710324860153075839153220118219956178580534311820063164015147994861085574735156032215221220294735863102973302474200997973533410444101250681007231265220760815551719691153747014768519418973242670984500182700399975674184968135520362221196421683601192258168672477058438449370142060990751178448222734196927897103080907516334688578066591031867264051121187713067545913163210568868230761174539653637491950938634735328892123715498515551995447731427946759655882496131598660973843172721966070967789660568374817735426171244221902342914466956711026710659014747386529627600713315283728520293875753619366999540999835843866352734511133018638296999930449703317891183551334181260093010947142674986529040578226047221268458360458423762773893964914613318622592548525044273100586322085182035772815629484483340933822065383277769549901088666540079797561122159470153787031076503169863153706307531673757939173380456438316387653676713041358808451027419648198702309164271401234084978469261590799114262132844200727832143130356477987178331008988479936989344771376517452854705616506907372647095917928228890815711611071796205369883012691828238185750915226906213284368442803470050896534345379717100386889854104223641244683177404242220202861488502588537695638505718996111285530788127720314651029663037325760113860373210167154107732759566911091213614874877542682399325482873665593825830404828271539371101913488194390506162890227238110635596680524262247408248537737549333097737031501744756933555859465506217322966482054273444224271290818847332959011266990452513482605743976122273805941932098012566335805352936423625930288380298412989587854072038978232023048565203383707360095122517388647096765986537663848024580480481760620188393523472237273382678940024305767603142428502790237494220703349354014797926378674303915734486985903621971921628854783105348381326819986012313466571078527903101680797165608561335215976929150395334438699945798924447606385843965435209880894846620190543655405228545821835059931310276520592259867679389578867569567448099979471024461933984844278647732506497238516321281512765953932445892135033842631079926181417129613036570620113954957000269864878501858233098213190539785113389849146333702693638059052198732086736964278162680360944429839684106894345194553987259802352951220572038292548176210140835650958533249819541590707930507644227590393934594369134429302489644207380005581847314506089608195382466368105631854997983847869837088490129777689347537341067612592132305964477680166585599042475528547991189563120772693118422004071638433695832820105325843337813366468119674537751644244506194759449868855126355732425617758049680523386813197172361465491659730298803639437266718338384186036120851688223534039792145163426449637636903916606487144254945860358301760086331646111224890864151221978248688492891215259186226100534692653750676484138574941363471617385546384501708648882938517161571635073197049884982715123635228783139012542004727604282722353756576762736842801017534076605411070675893364868609570963368731259431300145234016312644437819532564165888004281886803237531610987829701094952537743485301784178176719143351772542558527180981350405566338850496137844097666421249646429097873144146843105944779646881519994208080855890026413522296890177986743589543917856345279281085875552256110096791603682026568825361856292581812034830511568811049526503339427486565681701687808347448086265035812700925537626766141496020205166936006598796765197832556241857617038110104883469343640386411393594021808380143246165343554389380556531281347388247286587503011298993282737784706499601683903566810906988801924766811748216853145441388826389432750726429320611047231112591185437667966331169014431760601268734615784284703856251339636779666285325686544235009073069486801952653737155534192669893470625900018740607704828798173256144852414057748237474966963896207041139605878705586200333579661483465412892288864720306417379486042306539588904948437784512869523177901025399951373885022657790902881144550746375470168608531174748147372482596889294271229352309085680695016258062203853538882025154115714371025015821178831855516988530526430562356783469317725672423929456243363884328390017571900167949764219925962517357904330057767877485242996781374063537605202876084075019047121321290665212953338751850339821118129856144678158553607931290450680698952899074275366576476308207581350818735566609544464316702244127749661926798715589044083189511561232567314317468544497585539221872338200547211406826735738356659121144485493161619369190871644050411479403030814433245037341502501926533780833648338032364940128989915393074532924519899231649990187128324050463913088224123758401101392623847604761406770021313286802780169135663121378258028079944083074874070511423255407139456681081363896130421730814797769412656832825816697113340275252332441747015080876154347161069950832900542211148122384980059918226348564158126117645451264413611064459060349736757695106353162764852381831184147555022292975597125253191294654850217756210535084860018372294782150696167731176346460850788171199505342729211684476758287720210690550795808719745032206798126284160453030457979975046678900780947996828281215146724477893248294614878668868867473530128051519638385694679771606398942303760085197064529692508124970025330016631764899790360492909215559459535934750832284861582608172760060144694021682102359235424902465969343210914975217930741368571113216251360960294466448349478309490672800865489023691137198773276823029217561818546473313044677516040072751284966816912492999047363154218196963732788117627013355432393529853192575017866694921084360011859136464223527584702246097737653687705553189733635856935115194341938067134097731108088226072513386195530479562282155862189806703441286586341885453102822332791102112305940558279604502068073478253592311668524873419613031105698525064969231906239594740577179595802757045545951624163224848065122910598642957705512861785670138631442451385299322116389713886884590678218139603582010868595660943066163658623999083919488010023877041322612079134272165954416790275808602688018749454925494366949239268501937779586487374055256644454612858217751240765307869330967146204383389594229707506566633338648465739249436838703261237660333333320482733202346169034906208179325941675376574804320362942010220120988333287964545432234808514724745556457228414979945100119354366045063369289317660128138040920151061842904662897913274807210776563171373620515404183626074892977222122346519457261409583958825819021973836019565588158889077516445695812363653983263177036982965385590064559790083605048734218852898023703576610829082912140518389645601411928300283800178867108451581985577914895341046774550245756208444223088299575685395156693951099293438756993212741181098802140172736266701832149806395458838973612680574897713079363708723078458574690836762430162058300957263507133434004362552544970692901774115842307322004454981309405784323047327155936944702603676492130734569682331841467728440302522360651095152067463824063437058109586299590430080848273976056244228551012203546379725667875174867156054354918116963683046441538781684210011952580740346372658847237493867307570819463275514392321208965839239181653839096912934078728441224089858321203669730014360858294728018162724233586302774695108641636444771071300717685752453548549202488784920854319523862947791024434046411342084213498622159739522433229180835090050016340134196946833178953290661633077091937717852627801742403924596552818189235871415752575780702569723762894567253863642967694383974784048053919577402810367744793980105690088064378524134257826259553509795618730232439095967020915132060431626820753084597225447767562945580199568775664721254888739490213126311775610459291848150554443363528586710032570526201367147177839698457065725287643303813618313250910923008268163354836401635851630276692013879419927311476521684088084803058205266769436785704457802130030597593777044290883334995356937198991814693758850105917881562073064389089636893343344975004348640670222315393823100274166278455404025778421731466234099089074721276624135903723166535580745039970100763030565237935392896217389861874523335360864800210886722783244383365355940197719392185046596479128882513173208347019066778459978542738445095446985415106826049738421282092244395784078826813360549973507986107363811888880474965597006660220163017480655067534083340707024717789744352667117587237828020121769869639659237340127981625115506397049442522179964470723818680980173408903177957800394594192755621131209815743024140405192784705664812139842904931053194201511268254098494344188189757356318038550799474110280616695208768150356339203065776583579355518666541952676241084185085483555676347944245041864291256637666759212180553259665914700867305069190184635265723913897973443599574903634690194098917587414166547294833517319332757504006535812443684162281000648004083487218489945948004326417652499432195546751739747640014148028466007168120757133761205028324266089530776660164239632452025861273733614523012386336233982707683550123410697819080961188500445106436608255782964604102198965655312585045559757764774169178226274293792102879189172272628111839646560296811120613607049887451764978451937043760377230268398838020737402801671619767929543695899461590956120278348514988057843158367801512428831262967407380966228164574518007525453329607751940300898959992132731899720171892562683002522769181758309746366097968883820954024993228378820036680033139094796330532702595379021802904427493866526518810218556183390013567589050452133417761921822616714411718935895765334543573958180738398978646575921259462700976009547703781039532217848936796372058826041339801999303033871458227057052992713368328337284169731328851802830559881997235431470424332591222203492496081567880802610315990784307883950508047254699185965813794454642628189898412679147472052588139107742492954272653223666600955949230657327540397759903495077780608016951899240478871050669102990912009120707205359759220477697527037384940945460190244204620739306906128150415955674100376228488397768343140403174170341446617994624796370247199485516120622228872278183249854239803285832729492549028091143582087889894727643333841767689892181013974567044611441921240152983211175663839323626880361187706258335601587369189709496345215343914568131776233290747636415943565971090874460778121398419348728329630393225167133654602998633900688394329722271125910037207749803122412393525887930891406329865893253871869357676501093324419624068376352033485334663282272407446118540892577287165430932095219416259920104263621676971696006094690607625516888344378565541775082541736743799330834852673107519129032948935249378645071339597842369458246390045178040592776689497383677445574353278841147152123565835361772579674624640304266220860186479250314860566701655804037990183824478412198227402868274774562716521399395322767621156669677301919739836259813589492805889949353810714019818815018276722947080585869714054331801787708798937027871790987304783327595533049813775400794008556475243767013057588125533848679913281469071202199803160071948657413568805332142333335333958736907883589764652672542303032934168222629993834308280568787474864835628865132768581145689913720912033948742532465175475462418116425948849443314608612697761688926794121794657044759442731151232556598188388679976226498693263029984379082477320073432491330762212560591571711078020542895643447247949443707435915550085419458372384319519752062713904093476905932838270083456253115350680904838891936888096517939974897277018373254503198188142961113742669273768928874803313501707404815727862554231685215722475699958983362184149638792261968850931785758406582416679901932925379137308300186118250345966122632091769318993354503232704674155151489062088810074016347016848189771497939853355764634341567683429919882428343943093686498736300075539003460570476672973327931330387546897082116113759120229987712769104882805366962874470251351867302325743081091741977519722181038110096565157630294729888179822316455069991922620878630183881381844708393773842618239661508702770216786849614860206436238322532618413730752335077898276364048606856012730681691512492611691772439767372414471904343430450546338662104552227089362813115749880490474758067803388285759611259933399250587759316714963549102236796512843142999901293908445889163403752937154263011690585433178742516415655806202428093425500969892581096820494608365083184181504119569268453742540550955044903848202855165156691475746877351376649555715641064489956345834723852921876616232416456209332399304659751140936465800832279952140708979486346100092433581692148597798428424033400414322388653162689417581507375424940196820353106779478548349213766571726208344471073952679632056820996944731383043511313064086574599749893099284639836440608774443222055555771150249601735166501168317059533047274910701599748234714104131911789411940163175068512469734060274404650621694821147972414912092446094277318601340558409617223004978091684361176675440631554197510717652976311807164420690710535907124106396745064549966321997178904685681838393504751256341283492060075117111858254995827038918813579161495663292756841728599316297262183149549961374884680979576356086929953642204676890931124109308673983948962386021639009352751049717397222487704548460589657219133931318936849242917276472816347077051262875918113496415859618543573725549845614199744614224294719593849784042025678319278727744423370982510782690613001151678103998632879444560262200061640681810546649231934958929891197038041868918065483631937371956401219615367919987917551577149290925894811152819503065922410885116969461419259424784468873900460282538848707929453309642181716128659401660075367584866438856760705718037465822357005801685720777037146658976502376197187030200295338746868774845105326475469690753538653048041377279731987327852789176873822545115512961597312921180458205156213487185810718955844707492924654581780574675283559039903045595296062406524013944860206544666268274792984180831643671823831487245673972811144492253827664887106954357061742245473929173008099592619680321029381562093225345627470218996568336186221654860056909536938045510752071335479739893995912238652905907138884911221956359869419760585015475889704662967591313206532325489209392946004870407434908652785981133112617704776246742105663456678090596008909167493825100960502614177878418794909909280575078971366840666621553734951717914168568206686948510453409278555674005556077661721679699851209173647003775097897857437529069663409101612489082670893808327862665083999299264198210860463640933119708142448748211978150800939640955268135665007109929678734427142917987357558753985011363629777761963415955834105668676477552022846758301046111357544571191812058371780493671906202295878490697857451208415321385062566691407382933708135611678889663902312731539461160344577278406905116134798704378237151075964566801813547509660706080875897269844610753181281321679548508425035414913194822206628380815358241987449303885948008131911781275333631000349759400577952088452948790202952601816533368186978947442863505490475057040433617692565390133540561641467369975103758404645423300455232587980008998803317953873819923360647718214315451800707418455698821393485551796461900509860077394586777861030897568337543357174039702520761851380335286242471209114020737796846370535443791673209023061952229155702697981417370920902801768774431870551588444827915870062310175648068113630745059853893943349338450955127061746533984068190291203968578646861224839007997927171047776567790235842232215980783178442027869251304512018612621239169635887579329575286539390711233315153796697436415014946240191065404838244172570384707591596070288237825929374767076027595261259296006971905178499667582286977157542278861084692520693370546352813310455219772996014756414134863481188672385915869960351683162175077350881541285530305836758123588564507799156537701339825763464624097094175701104664091778738026866544556436803479938206098222823702284606795784629347666093399613048612669642303965408563103360813545252693147234662720290621564761638929332194473746631436162668548723042323177121141369299690395992749966783941788786828687226285184502237484124392472642688927580397707768877550242050120091357442952196432404549917009254460838958177669856999666603633697317997971389594909448579452795611249563298959970168013364751665275767976742476824847900425889662213646583492391059479845312120342462669970988843770321477659192200528982755548457111514667925592597005083856049728576379052142646511009955159073481520295964518387354403008450146424135503716016295158601421033249175627539806082029853593982827339875621001475642924678455758194321037344832911000148581867157885979180615425606371295995150742322660486905767081201385079955898061929934006585554022888507128600372116666009813460396467689948402703037530802116697425600063916689792924943629174423141681145155962977174724780565183979757497162893954214946896354948474220317914600105003791878676816269781895663497321162405238580828328929506654673242403198488782651777399259762256068714021816422728945062086548782457934611723065079188293138299215309911542957226674819747543281622037975561582555484521797959526083115904388469027527674620750928778468192405013270594924587232527322800989495873001681562549739724947012449743431685440342288433371837116111748638616642065027182377325182696519091531582836426671607405092807108686284126022278069025740126874937853376540944619889984978556735497708493557592045273304127093160231778115868532731499909635094047200169286932234035634265732318204734504206772113458578041278840600383115070974204233904057159405328395583887052002310742121073949719936209043420769213850689687327053380543971773068784793139134763714731552212402138303670227230239285417726041023543270479084938974649854204247249166550658097613874641347191618515586456106964147714924505440618264527464987048287455805777770489216571484904196362583049464292181725909347184556894699125358888787025554864565232232091523659442356068499231313465770918773322252268356815214276658629760689152282100826677932327112542441150712824254238333465300162427379306359760782830714263889747227199394474524076023605660646963334778404643671288070332547813408075431984288935122358225001366140012701881421088364570798457254068365198561421963138078524671861320826820397594136444124673636391885478719815522391037875927733143996008853525307746967534038508668450527186781141087405764582214649335091563274710712766921508869664186385986469721850776644806402005696058508031307660769029822244875991177180083921683674540629630622082526306338272953931255248446781061608169230996537155343427318761385893008106346291958819561114905109626409303549072517799401877947285317493760482538609329376693868571309831438663484132253683544672504395744661262127589051222148126853438523084644656099648789746699634177570442141664803885614018180890731251835397795969934929621178148563795849834314899141140299053471868258122109901983059070485236083564250785861676957400383050847858804663577749518123905507207161296601852543029841361501554452588871216919265538598972496628784202815656097109610710358434653921573630719475756905530003156241513123513621084937831989811736342910707202129836974725793835109138079220453224035545027756038329601295925199691548891243474041245334389607815838330829863787997124631999562405990935760463327203332751926132215421632499438700326367783247720491916982546312890780627002777407207395751175141599100364443716975625382939267741446902378107700000381426200694655060819165511762744806866118902379267410059121395847288289428508463573178714490996110113136396493695721127413586692303610022525558125786991372942995516727639644865364986041946836795524341509551196881350519372969773806422845070577233228428697220335415461788855661954837240036119129970633326995418652632870962217548175716498887101981474848667994579637778881726300568786334460356258668304799020981093206848334814544736143935251740438889168405145484049841331160005670032819390560123926397477014536647988158482965163396554707090247616196024108854880242010155781346626319775786068249094733460015123093840887470388949472734651004632506379489719769554437007968867456417702752716662226503018003587315327732158129435282488767370218553010572350038159797470369874714266298900763240577746217046902905117944782629605657086774056653589500961894108546937115870670530866749494007638930513413376778965465707662955168691829087900829109404800295347861111110423680841676387277857402741289085902319422753878458029520887111787498001015814989559997742668307980874161438115288627043620959253288477250559690619985721599596224484374373687877311873574547527016864004837233348815784512802461078186407884181936439613152577162996997882468235586264315236854214926372373433346773297631363415981692301960421606734952066203958999804318313467904109821639527489672129483208747944348835243245217296657944447910808948258135098431256882142313629677607679972334018500795830566997307361488064102451179479044352954141702593333397252164761257502122250915971665888509808065384813550801751646720410407782329058917604348052726057461952555786232830852660085189227725552466356955542057688915645722438611083791706278314328294135936412658919834756780326637422055729309895719555219050755333510471192657849970076562841044669521826234063288477877087440103359501793590905680744536695517085431800026931891643681574681948487497441448033074709367160605143901404824463789905273160608381219805168514618693315817550699303000150207859299965430811178289450947140187230296394250118618940850339825701547969149555798943229372304876245247048285690636446340075785308503469410758558530338815310697805384611589516283196644873849512490713014810352286110108911358328816609644980180081911935800594936424674836432290324701022321672938132220706136870213279195744901103039041017471205204142917106858304487231416174244843408041186496026061093564155525088145887544124833022500533742556268652858375686743208571228255978496208430310544997901604082573745860929661546227368550249667547841975262977199996941531791936756759029319028868865530024941737529585261551820183235989648980690382051173989644696314266518033752614271710244059177680195854310654906394999110059066765066866229296329675548474539028172292867870461676789174643020880903966894939791615635399894450242570971864968950801649730294333657512617608981953575028148546487062152777728102279969150742285071016869231331364751903825979304370750647220084503929726024445946417635920320242105130763221618206637545426344661718973989187084175367859456811199483824121231704141319628478788526293863170192893708281071794104116666432444784238333584032371357833300678147799219411902735343710440485181435881979924875406054679830638194905174964985109636691820598712952716961330293732054425533005167962228662233275965641722814665591668806828436077444925372981232551674312173308364392503366476797011876854508137198590794770634337246724454587384134323444334235737357493250540662705538798884893998837790480185327264284307373771956531734914034951860755723286155848875150741905491692347966586803513594685104612614926313484751265294407319166797458417741684700172146123415585910025923881191656092946527389416464083671199334387820137863429327616892956257113828567754153875350486030047087272255951032021858765338607368345972461503883672849194596539488044468751789923844678073941727378277523391593494364188238263885740659965047648254037883847765788929442588372091711671496449614422756165433894377468194155686304662289846548882045025158825162220087766583134197129379002605603797955578951663408480049935215865368303436552945743707904858030659621717251372585690258413609454888115629190881637279606441922617074443418599146967359514000139550792236890824492008515454414070733395665116510630626444737112838853328086837229564826701753277972980394702531976186852713639524181819295734710524009560269350791710335503037079559143572372482430125275328663888227036357747433324788110988902709912532910780055676305558586625428662159289603636035460222654770046167189909960516936289759297488841665987948351807434954242778082777125322786066500311952825365060339187924030308647205817864243604064797709743899933239660883501707321397034574374477949655767202193495287312385453703442416906965531167726561062206049087549883567737368487588344075621603875243604750184785018993453534007292960261508255922929400188428596492062020999154962231463188576081356940030427455152465677677461126845426257845042056218764870136600600520010712713063118048035411630781444039350332001760862947222661541264466840638776489706041574956111726537040366127154502128045097374388275089903834814658800156783920388145808139826712905601717324808349872042156085006002011228393724551155515498408669437991344604029076240070838039564568456883407477663703548236276434189536955742549596505964884469006149848192321803209817490208989831020063056478993295626299205375717319907023234920834126329919938071941305971039848452419887625034453243957536683917048092776470823629308862895244756762015934254676922668502392227343723780984730738880366221452767390129252149044192530425114593757873256131617193238788042423592639539632780869049228095193870078736181053570378088562256753907501378739427947822126496034200002409605399264406500691397270434944967046949826787717174325108469090538179251726108388712129672785694776240484112589049782848089425747562556042868097096693379901298843895561810822292672557459437974238398963678909646018423588505191524693894550673360563078204909162089456688091894766443080315736817296853102141808496091496141036365713796345540505035586812211839553717507758188856277179233087314836681806572677850046726774732046085140509129188390269138326790786984396716109941297267704295295699651589975031935174507060424985710328850818067161200137117973158055260709511191279116374178853661281950018619344940777255171999346355127248901374011939210681245677175968640892053403232755520663445289914764053199926119075369001872229814716256637128407005802396108098119251093669729503150672798157029576579373031667305868998167366705531432525648358844012097261695853556564745517566455482851919444075814233032527659664853443125296500106166026345216644663626936078781942037608817685927283113791749941773107965799203007488850178434546529781390616672824560552127298762191401163293612445076321910426682752079779052011830417657188285219252901324023710831722143019885594259346478800922126345937670333997501743161599113404031812036210076437691466780900941685956202658757516377112672045909419391704112085614952738731466002608264385448258765701487476820575625922367633054306190895333485623202497482552185994093546975400215558570748249398557642938749951273454044923641168722662254320725260563233764572020043503054570825222282729219152582722038058201599932166523693982844207943107085135253341982631747957834945191914391092711467469363454325901259463959886839586261262829446280111654231158698391954336723653742115466639451792973852977236563828566857770066761943071825952676441239214188309599674802945716155226216161721161778512840917853566760030975754569172937422599710965876280890479733063514926949482251531637916091230829087430362103159550819121733011258295675581960250220330310050759880190110469742311533150514268500562015535295492582147034200510182012440285789742641146790977946264568049274215025579933134792212611583617480822042570420020677836163366566635481177372698710312029565415466442503630695206275145439151001311615664211421541009637474051993845012550776525705571285693356874427470170379907979463099507742140656355042780129612131565063455604431372241226576136956351991410107335048439301564152964275539471786842924587313455034741417641345066134598703690073392665594951734625432223195860774467344899889855163593844655679579621020694321609133992893176306486928047926164108020540478336743568853160764029158819506414340784361714083280686446406990105404440946819908701577439248457752158203982788901149596509883699485394317950036189892707785900475419346346773202418770209510160037887704399302053552068931109003015508157152981439580031601879146406763485459897158632994118674542206135618909266019808324114699759516914073480355325065743667911637069735657842799920529169111250967204437706319515559236926707355420167895840482880608833889628920086504474096207107483876510111704937555632701644296372139783537646134742786750586749429776777916676141623692124445422984033949318822224297698993586179670633892794442343208747441257466427772968248630655786735447903501959288435565327061602187585859822635303043141100407848457854843913521587054528643336331514779918752770697264795649980503231639098536018323734942737327123723632481049353789485126630469953117165484037871727662900370743705207520602352645969358663116982058159084991403498086150107653267615183049590325903261023261935790889575830104931148377131011184958645542449865212019235508818265277782771533484488401249520348361444505941490881418265460639922295437791375546967864131952309573666397445460437678281669223997824955762604079374228714378928938720865179765576624468096857169947769324281862959225849245011017738264901481406865887752641912999025932942664965403398680126313195155656656596091222090930264173382938935254354066782367004916881928702426290469914571412199010637741024098816791178407079467368166487550528482862481514122516623568509002708831613272180515331020991252645273958706377340330541077644208811078905048438003484748166605576217673069894717630681088127556214207772014525144439773594631867444909066006099378964716086566204609612453379013827248215882978459952423096260294070019315709966520699701547827889380448208973349622663289835614534327933478701146084841013590226182488754844902773110871819860244549835746742023888677931419410011478056753608394387694425486396776927744004972822542930671352732228289467187807896475194048044174815402236050047669592962566209582703846768891646277962642123799772632425711044762186262554695142340888364239830356277743468958818243764341410993235831890599528074890496187722294889738649437100204512269613810199460388430101233675481023180546953543200102910531463811787678036510769640596223484407941561688910591021190529903035299606065687341949397462550402601004867791059516157142533494609924000484775182036878915632651153514871170945837364402629530819178843922511951131530527717958343163795884189210511111532190638198951612583117182022936654788844251665668203827771798806249874185709821454688972658164920259890793167035340990526400651896060748447741950200356698459586337485843783319839771216607906553399586990879151503281310611502910240240053414434012954871425812870426648112039869317636351189918618151495071875836932442495462786011072851381617203230861773178357500939082669913519552203573432527110534025582572814677451706389039392820104775043455228215074999508293065295694128845698085280024946507188167989287293678390690611096715928984864338218641569195880706868400707387333705608106576154979965050853578300826385523677458091320589468457071416014486429022307885439671582776178740112194506290139392924080417034067540211048208895152209637993664031830464831941424923341968063284830829098902721780649289302140830344881690982817985105558958110371401837459321650717647417108193968019568952399241815393302706012923941219195703384978628946230173983931818922346108426898923877156690406239786382881074320784449518826335178013860084828283797428086300793125512011955754536280558836800773157287794424557185499554834528821006299191204334505099722449776967028917375579575168872436409431594618183026462861887336935126502828845141607037894452396852989753558618931051537176062577190501154947125289870777556319576312984298712321330409576970891617090570490103109544524337731768125569297043068058750630375348669000989841011047928573442906860615339725708740530489981838723366522864229886098078380770458692766700121021751480376949271577372222860696264226140755721746470082672124860224191934131932639959638434559306108750809443943924331704576707375363736954207902787540833069527783744439249605377733321222960543111934176630897107421591375306481352510213869524936104006535632173912385226657584066921905996329408769194643794109445300799837578282877834272122231519963173561321170328684024222784277770561452268818374859259291599472917458981190895345504762543413344380951570256327698696715862592598805407782991414115303405946081713051105508987967723774671142713004591154426728522817041609233579886914786305829368485206205437323661667205234363176960941124324601180411980795713163308531550086921264001557865759876909348813845301876225797182070945768757232898646584637908508426216212394467362538368130901198839222421975155894166564615495869652511773163095558383260589472242350529724495115348408701487412035173192997247788363792783285109367885144013656417889167218482728386310941349760134821501007774060469314785029301074715036073028400973843310192136045878393529998049166818695597512243643826148161786020279867013222819818521943776205605554195842068328811717914132386424914711144499362305617432742977996328531905806380945622191342914758357178806560962032973764970700539675564085507021509210337245602368479516712599165925133950055148790006051787351049129593459109331171161576686628113350979340633903686563782020572370240771065924476127269201800937608620350538591420261088705216246579670695132553053561764040549258152793583086027360948551983139193708604866362940457018389032879685618724626779183723351578687951214282898751092045229026909820038414824285570162094472423821638378457890588059630024695436029064129098304294528709681174106234835271160997884341295215525716235358440592106989884738906161706657041049461666634030912779501307259358970864256820230898749905545788456797019310267816641120325700834093426552772750784687558426334038616068510487253096348856974192511286291780508053168311483914100656521094626305124197126384056156046886830222604895376717285409343627010238626735745939142077079904489914905194736599352226939509436156222418319944532972513302557951855649147202563273446729795734224072359221010264416947910625740413415894749526518860220958798491323654100187937888978408480546058984058351922585606856569754345711105615187678295227488328456986478124802770307387653928220124481122368127570958789931463925983623769769547029485561469877245316899584597926074702928196056982033670294861919538902729736771895919122935416157451873705229559012092508434342668911826860315881904891795964648779952999437993043842470698014275732780423598306586702064250075336551629827510761833697102884951542714240815491656123464857445105626277974634849164680939070026330597117714607422467845450358128487982889775424665300755932447700027214155387182844259649229105590348452208278687894482783067821281747387304419175383158825205435406062150946062160564568565580973861307598336607047483024952630183929824449828690291893229303004580916481569300286531427619018850281339889440968768484214176990259705255615224690877155305385640138612156249269240690141273298642864858635048864579631965295277430233596456313092113451878103699959948632248183196429549358315254077956848415361951027853789384553772667803389045634972836640702669330710382149457623126964617467221879986662882793057353560613045142269886698773132715550810096776695987578900639068484901521043116280075969845451071005758530212905155147384449419309228849505774479455441316395417424745205257670842888747947979563374902651073771415224088285233702066657434484024372287491051313439457157144662725187748120151816068388372556787174848686620517200115274842992238123114455903635023086465893485854493226154141586554722737945624943400560838918146344152158502819743577735392070903676469544382725261233813545581264202276355108174102674306986714975159243610167447620659542282405756228649351156459352918174036717416019424705624758357986273871028093738189901260210279479539234019023588602642082778917343418997434076295656723705549316946888565695484094399555323549603344852828990076332458853312946185593484041184891505130979660319784717590334147841818984392423522563994123688412256420161239036121334516880393441996375031147287221539643630732385741568030723160383023427841112969332523346873201616135672806521255894739365849901606003905612388261704335795552322139620942458648546062783637789214357498301216683963277624487128560951673474683602707982750376024098846586046513933940346117099515873640619006032131128813588749316666792362132285827478853080125020085959090969839285209146931211823595921771974999791321568686308886069462520496286335543632820559136446168379378355088408097895647731858042012741161900996817205029214659979102990559585172325559444244646987152574485707602028355244281202397359802438717900145296700231616878442314532590301924051043564044901923004454233160365849068977081754470385422924252186237059175481579623168400613205591088841374245822614420408988729924551648282417007582014997688568644966569056531173143189094254726444569082512808926398629573718369032826749812890827058235181949853275587174725316813560673932666417150332443952609679631514111366446516388795887246875863910922815745080231929442564310207467405797387026055400390401614745261583562361028493585451251751719802362951365328479132159949357417974623923017558275905208591540238096582697505779158215752023688159294690383089268960903438019593539672916587366974347083906436764459783703714897116544425563315017242436959849964252105801625823066466518850667861403515052309313558402038271822470746176726995215040952020368369978657597811527644640388355780152749876425664202427883498883039679195143071430881246945237697787822386425233809387152780449255484660597157774274230093684437070556896866240606462805513908436869326169937373541942065229483859709979870695075509372610534946195899855333577420941466671750656952612097698528283822821650131173955248956518329861678668998357912264498202886642342342238392625487016429385046397512999181459876897293240124722628931054771451685233859268413872662999971839949218263693623198596908883207054505986800259603254820488207762733359246748953536213950329313748785804340001921465712430043840961119720193993501602318492248787233521936187128376566865348166511644142076128463021953870759890070307036368926031374861619606744845062792037590578353438405148090818103024371184952465267572163020000410424610499934010012109629909810032694048974989276555200137696945552673682534681255849171334616166949441430717933743295526725334222784359962951068110152339927857253535024265568408308495741425089178819732359888681546942170397683294757056308504344357488470468336495187399624241370707722383166912645855656582728625820332192657563588560227005095463110198153933552731312286888498322486226118691046346102887888800875259205197348901423318942846338898102119278676418609882181973363169818883386391787177485599082150192691230453388511095325253506909246696023371034811519495024676173063949910427958321026091776041709236544207901029309840442585283454229938113612499576660469181756097098322294238610935361748347902498004090002680206663761668668104607258231315740977997037975392321278821226087311025711531290634513336084780756945403020086512003403776976472540056894121921912010425234755370777596777273432601765769078883185850808094352407970697055567848269818145137326199853618502241091466099057137641178317075716886584080031136981286622156234425069269682587945179662186741848122157333829252124219673703190543507374843963435992056678160019900690859035495737903916067019947533736279486599713403669468680218440768286115929685904047799387992636746537720492025264140378974175914045333444665114235000921446375847483579049334796162247250357204313431740399024458523987176710276249423544502723649373934730909098032208648284187643765581314142774465835403527480124257445120006511688022457881070763464291568100290486981238466144352572301516014298094682789865673098041594873983488932185381044265114654115675305348764627068023361401261551342474297298591407650924742684988637103630340990520701795147339250499166175579852904608194396712774945000822127627446733220265054407617645619748712360018224361848201690564275664105983876748671166091304331780327205317406956920936325242209274419927019462654437358638070421871104399556633368816471053502221345075912121330333600567589138532591206929151777600258736658810955898129179754344646996342943063705824441377161115430261150170467214590428674871683695838043033591009836322696280038021894105160208593561632468614918306763073666404701208863942534343883343102430438722407955565252955295787236947961194248933618450085840596718620710762153400907295455478404885575990624486414953641742061704563718509753042069330657762427503022504770548140912836110377763260836121314666263596545658459508763220674538319070042309358570088830344863237656696088377316427196363279448810392409362505444948849207269383328839137478735110083272420778132796004914768244439029193968838674940429669372754013837852330806973416620288999268791463143204201529592583862654245636840102560819202943427737986290230362055329775360083469434185011724300487075230173779406214365574513010523387348434705351175073636976728718238875789688438721021865245819737312074081884778370635016854155995158469386196916420580885207237616119322899350307239924067076387171070787136232357918508793956254400819388295167449070167952902276382878268219693579043166122896591773074520501967963765583797404022161895784165526994759585311853149135270601959758657396958291305560476506485606082933322868502475988993341738360155429423477342196884426847549053594499721589405868900274741160171941842598306614814699391324620458152157089785615950261988699655612293605066722005672939159818568195013639751234890989272924544770609147507179117422880973569885936232432710687361840400088789547176429324438355612427611553747386092983831034539311857628530379798005136591020566087269645714797824902103889653755639037575415607895210382913566151432431842880174140277394307619207634357875224069979999121904828191128853718394373746206299643140709208095534948242792406727910977030672054701766094294877312081221824949037243962853975566356821446873263416829340181866062850653755060425789084184427756598239180607692832449014006633276395341834313136905658787062348745882008630654143819024924890863398940614968745788142844876672821265698451525406575426100273512683666498679862014594683357628859483847133726617222114282404160040340301549073149018798793295022169904945134858463833285790106851899159269366404178104365640418412983274313151493003253874667183445176154978121560966697785263749313550558235407751190556020605848215599011330977149150608394793906703633482083944887185781026080510309931370162293049467547540020825605314669225204016333774433622408618214372041470949398711690368928584144239310775587581286195118832652669183444882359446472448650023199859492585727980922016357852842461566728235727803872253720850822866469548073157426226328727988289340175092261155996096344358857132586786112379081679148072662363007577343543257355115814411476554074452461722966993802297277190637089180474156871787844510331256213791480995652220633147964584025809668015736928825634573473647308222885560454055893769874307140608550423424077365012972872815844377348135906718072739023934150387241801083998883486115804148892660540592046492714006348476752223211628088641470150472780968512517663059130320007934665905948282537909641301169557476696141994108354334733408449093726867286947614796563310754573581823854810105027649835116533294579431937459110839267926804456045818186894489514312653906332087263602471511363164921851502677613863701060576158678156566645959032959667040166140072615185343250631764667958246252534214260445406416180059201569440353348852722499812132014913698810118399076092842600304415013211669300914646316218520621913190326845985412648785067557664089110952436051327654453334536976609104726958897580903049021833410838881134745579846783882260260552753995306700514750361612405994778559870088677433932983291328721236604793557324902396281324432140278587190661094301858472897953614583936733855926419035880483361792436260458083045750665858598028111740351380399465932865871113782034424221312137657553177589909949885307404098478731660408784283577000144691460793944770706153372735885360550124592632508590820087614220874268669774674355125296776998484946759186751830110246627990640252958832611987473731544879646137277901351853793610071866288137319654840753531287532691924957019988963147395214378073202547215715461549497826800143107654351965040795798476503338348345632607981315273867416312756056629662087907864537392138344332558543572357020235027836909518376632172549426153079244036184700044305260283645184326103124074195145245067861572894366984283669952914343482939230449052107514014035627373891481974079711521921350240010893463501807042411811683881922838503904351999085857117355814362755628878343102672283698495188384187509946327187517895675674759010303127304881077725898616591283987506444873654373352641207487391031289833008662855534112854399948943335795758832274522699547405439560923887726535256720122883523298371992746546523164300097313330430010256280949435972458535491942286992562639430081200719958240137544204876375731560543614199806952261868367896094115172584374016118355404319888715873187151222811984350916435708546293872216295449990082639310710936011034082046236427171662463751414946584289223353611446446107234266926387555532449813524192248798596354576140604864570148236775738879946632850998479793103663277694832451294365851998708092977591833362466742078641462620082316321924430603960842427685315468059677063149931271022307519115868534130382632910908434981903270068818355243844143136881216056499245043528104446028888035985730622025228207878293120953930148639936884149614198603508327480089691442178733600771281831700895958890591063528947816520871436162400080627705133874578187112164130812835741974951098342281376312785598314466411053654751361833709160952460680413359037129047505832912578814970696319777768539652863339655485238369623144954109159386171725847053343315780748489892560836714967817324930872039463181742128710083774549184715590376290920101528185053042305733275286644747497396321466890847852561708370556514734692946463269848464730866705599046719382949232427525694661564969331409810805061443908203546100948847044387839613034070523259690471837095352610874671083438542584590719407997558087098150055258991594461179221831428846149148216976219666902479784236972893811368291762370296336083358084457239126868060862599029254084973157254997212056389451196373623443797747269011975715066831407512554853220691088606147177971002204164946519027172081167162984996662477244831390927450455969280113176072996613616206615557751026672911177428152392317028345580665239225339784855099596263574954070327204442961658151103927764618117075466941430249691445567849857371062458848207704658662826177083014585801711653794392013056542261740512172236696920707998992506949364933764490800932318220265639723098419908872237307909264715545881773903478414712647650638424026590609535880262880552430047135367808196143043820161930533456571253049858401524701173070578856324438900873557401532361372655054740336213656221390916950548527963725604711310012195471088481232362604760569919831795237399692635090663711846982246195309459760137094399428205709929256541398010045643971684889205584180875694785630648837674124518279194610483274694285244403322257144831541057704665488777452854267375346448040451423805835024958571296756572296668260523434578653304175896491431534233815439872123869468424800346877503366516949618839206686821104611420570979838657372848839151605869408439858484811917135857424440206325212343426979663855492173358515836069869427644672159199814563349792822209442619981805687563773849414349612944242574333357909260572942962590415902759514169330397012317317929935681146355264369969930761483066321887679001661667948095648883987344447064904301940569094935013574319757483210318389319327285096084910286772885582541733645281726007695527987131097079617205386079646873894892617167289772208326334481471093992055639146467953546868066386656345498881810721591777471911034762039390709067376049115200862198644849037922110657494248093347215964453292346812530879287272603376011432268375408237952052691294264010811529443190406871095492704323857531724383419548583083551517640163818387848304805456250383950411302053602167353999645618631382665703597374433159105723295965316732228591768350524290435783116166155449522164657300109939825777259087295225632354932914504135912227128347115672767367505321790216693664848275631033587461337287330883868980749453620229436003396693648112563008588168543951921191734648778151634978935389904431540267209706472229843036830629348838720155982946741662841630428629430800475204087367106197248555618503505640637435766173278093815447719687674785417028465401948644592314977025664985359908265660052042894015815735285566847657534366310196882359161911778079763525298235914690020606754445989116153834736173522650976058395838366471091957023566198875639394673563093133315969249889022946978709537145158446012920356558941699297059309053140088788355792597982140696659668372928497010447845800907305123142380593283721961152707441659969267833688943740509705017183580220596474068656872459752194200082604684493199145694698619482863372248899990655262254577401979465959380768500197998887192280225892519564648027004088573613295836264197990765630886775254368623212587858730422671286595241775342330839920849722893843659327389556045035789188856686548882712634033957550301880563445972634179877523186209207216436269824206118827300034268240036915082582513692635142431666473317375885149286318524255123429992029120769330688789153152035099077642769524584211922168921417612086242803560747337239100110544578756232861427425591080093964433689586703364530545844809041778822376915748511652116059506783920888246956251168345744278122307302829582685387548501355995544087855487539174659225348486467559627248841546420179401205589735495659195900108779967019432569043865148378298439848229561523168828616411458199836363604111386701769704876475850829316226978114269339548465747520996286042553600476840064691587008794412658535448383727725071725608443502019831290704420191594807320946625091097882172939399421276876823766824615911638895573549516489719083469941212116748109386764379310907040040175881743862796109493412175648565878388038706009663105725046006795413328748653204744670569660632383668117611443685355853288664015765613680338275984498273492556457248364266024210921157378536446313537463217720396151459397416739710499153044959825778285321554110146812161170942347579733874031737673363538286685819697118955953217499755635129883776229369968294105685199681422307277243670958657196656531856969434411885760197741343033526790980572564102869685545696797503580651106027802991108307170917428460297874039939546852333127821788723068617081823890291625556996209189562870741170570099176062767511443650032251110687289046434777396719077607573886271717002694220250742149736558057507335589575342187631773054573225016578196634660807450693631151925774577512685154691735558537934647815734347783810065086812715633792939009049206615656539440114451573247388472056104672229105578094871732550241121873859581800631525555205642172209645042100519522768371192734195801528583780410479971840283320967094648177153679624047007240497737137989918151691009288473192518893223425824510139027060379937394075371311139123209278350784709169592254904788448898214346566548331808125426985544632988166967213470201829018837916280637172318447457719105215718503440104875558203822657537089457734450530045028244640141810668599462679972722216814959523237875195296309550456885956550225727838541198749279835785469994356044818282597675299262056092296975588065315793063661396118623712177434312935077429561481861651278801920353261373432577298714801314805993148289681230165828711642718041418041486560693986364957641633838734282184149168355940585148352537906450614409096420697815861763897630546825556870264452828695145816411030396278933948611225157842913307759348018448367914966601376012494849472206348713124224851738245393691807682115249350068276366403355575376089236373165880106526980695318491100240020090950773388275802612521197541645675013197640644948813925171650853829983218636987974565868125780226993468865139999626692893285555103042094477175304719988246612173505635325054356899048656745908954038319494892697970215963804349217471409978580240931575886576903194537936185503735139847571054585872927778971696672442040902133776137386153317529417910487296153370932058114684254959249349382589777221133186475167133130452948859446578910615356831701685485787601983757847755330705104448094766689968810550972599422874671377840368709045751295220444368302894066559394778900988922666827535268521473237792615812488938006329948891175447821690108948980278257585449801500847789143369849854098524821821190374982041301297014477149657129455526343544770307213853278670251445748398789499572422808490653935698021651011382454068590813615076406611178805746958346146446697961019038429353079469112854903212134751406300112108055272499957287482524396096512220296431342832477321373628808456850955163258263754390158966907087518716317106359621921314302731253409865724218742451437983881763248587287103773226862411031996552136383806477187141528698393950569758179146246518570870893223138747374864182022337117422070030997237220662179143641248046790703902092716128019928219774228023204443909552938559905830360576657204455686984172042192526174818127425621297665231727064456196367955157672631432827988776355220323600244945664597788713229309463497683525066277380408767638339818816373118622119246129650048903942113158166255037336547100725310856194977695791374622173265430374616171997162213796087020213377404564998885404247424084822797958872871631580842018415426375278481031787429030993132467890694971013334038955909822206026045518657602046222411767950151918205063522814094027980218539473564808343543892632759184785947829438900316003526456144272833031342956674806427477921937689028232818316259828075891550904505568983256557352239126307416489333101529037178392717383331476263059681837260824962181035520056053862063385030729607636381655436144783340452122487111048706051919729492900640396206214880672665796214947435636897816025101921532754304383825897292959683472956568688682845209101122947180045475325969317945982534604685438089881787374077970296667119450925234354707761034714071014660799547302264962104283885518549917556824445613351998568047156846493330154450918645057906319941990527217576908015671295513354101349379859235407517310564535371793463173442041457325884034448691920178517451009078858376844366675915035145205328964211361608255359500544357968530219434703344069982973695083719923111346643312361180912506733270081248126798532783359246537094735203345703856093200851544107916586580557272881367742452923273413777863170746567877086707384991960393876896561319107418029004614795628525187581803254844855829981307303343840925894066271952167947276879091766885069431251650466718318722410816918495740831788007274101206077868053311512060492278064168216242702491173765097963547054823043480093212281195819232035473463747221999335443271553569147407821642210863887301249446932229448134606726450170133497366799192718719648953090927468104786111847478578369058988317890221102716790232956598497903760706897154272370641516863929871222287039097311833930742924192512045793754978586423564291177870022652979067948169987312274131287101342259984422378730451825435025637570508553578562724957396855918715644461881161589160798034050860192445286377854099975231974279241281324107918761731047980490842822206710935466459001259343577026948876141923852471100311227936264904643174985828470573663027166036614439861515687630403581075066756499467407100599256692851496641323469854975951091645876331145280275021313989153507123128688425526456609587160793598986051641216816397583383129072818296823199287885759975682687971616056486953848119427037508325597636329644809165452040618649643999745583315814191206089838218008626211524992076623965784518753922312800690890201248541489599496427158317054419629949818179962508014927994894030351870080338986984253828272908556725634123873854131590903040998643516372737181164145143337470066067724766021576254870763885032749281473681753344681750791283963205023644581768632530780018466601318760256432509069782224331914306898741876732376941386638010140557794617564113882433160020884934852345244134130989244656208876313054808554902335890350558600874770216346397760471178471348279302627471367537258338262285989651198725271309104861267934302322312479694405645013912994902706026123380772786761290338346309608271057824151833481128786656037632811220521137688936891251131172128603770027417486956887553848428316380731969662630548312761402766062513392124867486242852256322299133852515249228162111392746283838576267736290145155700168262846888869347299941512978580568688773392587459605919826648453427895558075938079025825666892709577084414183824325450628699904558021397044197493373506878009570062702172196941810175830340066183010470305487900617763038853394644186412535061001344231381133268367124972819700434562750322663894272761925587970087177260750390982519601471667371375045196611651451787121584897982319104157307749992459623380212065744133253573025736766177787656089190298016161088598826107963483018137554205435079268782625530682365049801817350747968217505195836368846792941517999611747605731775108136626356507670460096324135662579912497527492780004465200482756989134596533381194948200676768909143463165719736824118751131854763290280208425429544388131272753402792638621213086351092971379100889950014281784468740718548638328200003662822325933839185645787428259233136190118419464817483547695718776805563620267188575154581962953885960913681441374125813466919949084200058381923670761502355335716740267126225809016833101326571513133581045731486061275230658256714738449789005737483172814054987498461313574877044532279207104237519748161353227596541173393999798734323426268780311301639735246286850793941198923227934187417709383197775158232227257429378524184025912276064499461014619810211881153704199449069248583078296626970910394604841928724720042980787681092745227406935303297072760608326406925154217731255364511895973433658589273716455106288000628545506639140419885744210590169174298550997017638302072467097233135955003946721212919897357634189850799273063279146996371565851269895950085714132539105836624657280015999928171945839505028588234723585331625183616624354791318747953909057928558193800725569178758128786575368413454607311991091911733485562033599541785061380526135540290203677941636203430901109983404232146905006919150397203479107951498451877019214711927803689875128324234710226618000343323061584734521843917573932254664346828964435935026180870443849791216103638103956724147061607466240550284457476535010351814365890950429344438001261819936160404485854099588389151327565000371879012469377320717922529840704147398730919568734092923769729392866303328150820377452513237227921927704264374100043776267106462366959742315703563077232646427406811742486364969773409850789350097769464326245304152428947207730076051402290974087034498511660124837509493997542096755680003145598479596412386633943228444981949763437440105855169302705771978867050552345078964159544922819667478925381911685779512118441011887271706576051370810802323223587490582758426316826686363205268274893933585212357286856292775827492554276339937581941708048552850516523027279822398862375502078232919949944665218538101659996527134013249396424163126778682177755829872945293602404801154349659055894886783461747641890581154866148454090639228089168914087946439946656146637174170970507902346124280374495041846291249983284382003675234358279891782094385213763365295967636988570895525132212900784490700260134678317970291901701888117016141031877722430853825290462971546328000550424101941373526879130533211476795919115766254816407474753670529496076924843140705572479617066689683492613355318956683138062026743917935304023725871580674987977460384072077139892582321844536971222312480932564447612161433506533033537327189281388103596458964299161436272220887181563640853173621356201249951229981579405411675379160783018087874312289444413431796924742234234336730816399877321053486728002556062691281630229681842802829757988255288053847851521104274854452514045916992828076745346935775737356336796710432874173778301353302979921707078724975598156597193145678962361357993907603277332059027679220521837407759152446163505924881660832550729616238278796260673879029681801081777995128073287549834268621241154646086386209171631571217554389127453087295860479848897772143315793337207413976733774910185737808533353137422587964220652961878159970234709059475748853407441581657568990175364822554353711584674919922495520203291936444351027588711820117531542938607292850081124168364869741870744902771797494013202148537759391631239952726793730056809786983822362857462752354332266077134068143504294130044797745890994315814572694876209445969525830992598631344721031696036151430658981893046189738997298535307610910468734338325260401802472527069942720360922477545758492497368448579042483963201922458831162308460470305457116060068855991170019813099329750954573292555513690357926352911732105674797270578300500640161655518726347279049684274045496304431997770991749873894260367806475782225939441258357962797550712411730332251844537816033836173531473574740771005856495014001195260898101434112492697257395884204655910426054999976074100434682077755852391061115345885775648356913664274101649332861156136804237532289447980726075043500989766406048587906759576186689078894727215873016694712476710772283748680926486109298928480979944442148085377981646323358549697028327288408206429628809460954646724864681965053468257830402305658252964665916516638324673701270566561415512297522422892403492177683697408787557374870744141785638287835791527309422862760940856221265780850872099882276948647613462253826321806238916493681865685286487304279934870986837137051389173629632365239725429901209958094732981422634214104395565875146150376455295059262971838449809219928970978732157916381527639205780602875494456523970191596024517190937822629426702020905187112745780407220990897737590038034667775197144926985391165360885187440175251217189923242051941305540815897008195957775239736741902396680141876375204205992240120687181758154566515247432272710917962094768321332659525476416142924757554725438201925772602199587970036603616386585743977863524790934913603104197284942840868618937069748757172211753528637002558272772006390943594229476108906617026411116887148358207098392162194818990159728665247902270081316770752257509923525453456885887490915940246605369417828143056989443181376303574115623376918754911477558824812872871971871279981763681154507722278801441841536949425620200491666456252416846715754939869399536972495562008376775933910166586960241742247205386401674095259295950790410367583874480336316232709481014928154443766351982444423444469447738611898398468082722836828050455431560326190596668495460073135207824727029786474500429390045751366894846064708630467471188025477557611533986315856308627834475816472796886112498364138270760422937172012676637678425936133078634476242406140845567226566777683247350480734839438944014386795954263294588460538992260864181201026622621626097232051619594867770327917471604956295345947145709055113112526192946507305491601633781418688976736425631968748434707293923329087616337746044686624695403351124718661760216933819815989446877422205125878196562485416729584012117905149636910773094446331334398462395900577964354144737938334911109944823723834470955049088895001800275719255082733305463267191901973546004809042839946446095202369324261612139806100868253877279539562235109157733407997694913832732448523962930901957385548896127277970667717016718431762118541236979236515897663375477225785354351694112164791639321741884388574843838402327437407594953280887437286561073784044152384434417588011595133862489320724845142776251198257218585992291589552492265902358180988852036563996264525068648565497194490487943698728602389999386581064308869694117521997704200551971378288782093905654793353116470701449820338279181081317801907776209267248918551209201735253613631203024614809325271266556339104964139812401811664961957083220363227212830151271721398989067942932983351443648579114414499144713889203490477970915280192865510947358358816114012011521668485866721360300085838413276485032554803958021840839449045303196855177124690899150656255514902962451914957113680617318817934779736413984789281704973791885628039819596798016932967420354473260413137139957112535875236775694425684732033421623593350689669668021087007651671813894237376068437536562511894331801825457330982190359390226032352229277498826605737493358048694486168743898560600979905678729864475238095604961080494148981976532345460492937202682750194765215163770142957101263677036699816345461091701695853825960054021528688291697728261189554209425523298297640649261682283617769633604646340367183902525431877462524682508343474723782539684618835488854861551858224941959311209827628021392065610721037426939123076042077340063874628078631441711391360536123415465741124091614159581925987931502749423367584997492245551598553620946294128862966602469015598424075506564947273752070749377632358503393478461795531869446010121361159644807595090493993889285692587754487276639839593936232111035460084411143374330555679482910162454807667879636505859551428187618242443729009609582719704473845172460051434492839014873738608735855873621332306321935469695280396758059887007725215282173762550677546781171770699483356619375874031228151103398309693164519048420625645506411635270337310624817498286414327535811468005483133475381949019130321162920242081953514890982381056648205872306223126109206293513416635268179007498600968565459316068696541302027054077421543908224633930001257653294902424118728024955019034296080987111086732965917181345086516527243970967523079998915360193251495301355500996453159386698972507063486144520583182467672820239234610941787989779055415672325821322221641276163163187261074418478198455245694027360041523908957112434909514445866541459697674448095747854164862452136508523572728921194955752744178877264122418415936083648217517972091101905776480496230422737472483755507428583980369751254748771722702882693582314212206228202709097629291867623624663438795323908529741852928221708640016499278501930901182104879625465378078865595782772948672263577806397005584990507805392214975846827686605802054015969510336374484871365244328894729218563920249653932686300628639102086844852598232405526548251373329292879779779958075962721305681633972284425995292650002651017178450521605290977821657451985002284799354439697398267989869231135694292000527065553544016424569503611988349522684190588936309215828467713912602282526651249157605605246356794409147473363367012127445722583413428461947147000239907050677524567691405988104507333200365939549359929262299857447670029461202915706009939749073392480658450361673926058316282473295943597377654681795020290994434128735255679245805611917812951925616738462461833207398434494263005125040290393024545794026811127494682055300911805872687618942592468583931591881641153381186881291215058114620585013416018469969084862383706295417805516444702033299856777705360879994003838480340018530421463237122952998567927859793445766782666386672695585932359371142991095600490355203780854797855343168352600086310657106486333504627366026119331374136946252516608969610787971035249514206202212600456395130174231082000314928361822378152419095426011684857487182681529959265878774587439071654484306697433353170129725500253914844237795683480581553856206658947862846224885735514320830631255137583869927102886439451914748372925650555062943208662236554568569323145093084544813236141891350605835723707854851906916941542511937702346081602412277834657950075313246208249119778611690696889786998212861305300473529883550301775467928746947291433505312447882251222036278635084468332870027511008978860466485996022788777033768143797982716504515247719216556309812687122142604705512516641889612858246284677377878967774876245187878901756067002071327453338024324932175672625696784947797644374204813772372923745386774349674517622521565332151114572561702398821235092369606110856482383283764427650944679343779775708844324136748556736590470064237441375831094119536145131042006430317000339998318949293057464925106406110286846412791691330574575136733074067473508315559108707847277084796361864665565804425143727752476940406112038793319051808702035555307639029267048323329144385919846392990828020091257889193154124337737053809076244136601280927172088200266819168646864159136835583086305723097056852666494076258032116026657251499563952524600539682958414640361002559262078362110337432493549853743110261058569375499530814970950070445885313998024047694055508664472531332754247829694271547401003391751529595782935113509440832605999647702497483543898177661625123819384270768166804921031821111067706186224407759405076638905029573061850105256516125332151887717934469451011568379690513927222690621779699710109992785715938934481592902928702019289270968130262483062765061612888334145948632444602444408409559998990383191982675353856533378078834608253747583821063495347752576980845835324438962494670651360038394650370003612227959576433242153293829829850529939085962964527995294215932945570849816495640274284115411779877753316910563619044504222292747714717184827841290464335109826818364002690771826865335460241093224737965928829459524554815951414992730833885084985939715823808496116513490610555784389231208416130635698182761586562078201204766220882787300743478957110506270468675094113230263798238490520896746746949075962009785555317722762273996963157374355046856870387134120949680415636895027882532732999072010843588978235845801375218272720347122239629789139732836936411939754196081701595300203412876176583269745888402005978972106974831643151858836988700198747339587462743530610162081134992441678490667573048637462331146959431466312190728409718223319277564890258586617490871004652022593584978911370980823043985449175222026254980665948816261652444536123873463489499880790783538520668395327327396173185089149092666436965898146155892051785027782832714442145181088227413369830829747239649697391834802546416052191266042012171293019448307802885519111407936243388463504439719874455165487816105609613171180402403023422589124052174194528835393599746610165902715591510314199745083321302332672064367002694227329126981721617421857319011404814791734052318434139573007872641982645948398132328902038748517254669271227374393695265078920513895918872749629285754827446707469814432791598055740588660373170800365537843348496553667157307897487029422986509673335987722462389796572196029470377585116651791638490935308071567010833481198632084907474525849775893903083297776329729449133711380144132576143081855239453526993004379580009648854664662029594928172572704263132413772573525603692300012356539743333840769756537295091537230974885367938196100354302546090812463068863202008040315005058652186830241050314270684050602554747902718744871895733756685687548136233485584598765895850377525867286538309834724834561730905412639501753614601695904876697392175550186123308874762359331423836160731811482973291876813568220353955954880990865105613351323910605973646195192654257471000138070107887575242413476263047719735294273624991890681612649469288453769139499869570785833382660325740103857462403608322792381010777140455100308252146026974289197042808715200222536100605439176771799720908947997743224841635391619965217479880515513187747230605611560586187229344678887501794610153468108710135328523948525868703810421417128242084803245614446378538785796910788655156243722370006492643722537514095468417479415656133986037053555626933520425476615237000570614006166186458332937445166804884353037569766522957035633970938235303010745021510929265050630933641153422264328773193350706379820787485675474821994897352461709466803976647061159040036761490323798774111392316576243600533478067760505829960630830602226105472513382392914384126209066526599352454267544995349490074828115583149996276285170516774031814596273574190525685265417300996696613949249326109502464928586376941005461463998064360076945576198541805301775487327993044903087557128084316924922452256542712282903545804944124787065011902675238355791753766529993538577400201690914617756818067306969190135839270420258345576895367422274697364156345204203861863777779905682277400083355455966430697242375155909923315829293238257860084771307552314198367511464636873830361129770712948606587610494795143659135815337938195573384259589618365303797723843826193549734690103393608495727344430615042671754847693881415223864765980290705219700153130756299414636704929262698882020910410948130687269679491369932105712809391578809826177644540764809121502839522048625571795437067347296430667833661291378763580832714427402173589665310094402261289621799281997822935020441334868409847711080201945697344003728557501452010313121841138282007831245427110189996236201171448418949748595709608454826216933013553908174796729602004679253050840313510564808690474145725082328151317267081732014934214085974541284326898379880546787355688451093699973756739030029671359006333820487079944576611616080126836596857223244625681302996480631380616343606701036592052634261618261858928935839100380405994301201354242384662920681927919623433088842369335642670335387786273147294399756475296894491330431136105275046904617345031320814974755770611279431846576515209532830707252900083607902845311428918949814792455784054107301126171316842229697064151676799034961625486000881529640373977865248562510493624009087600088337643817002884986623546985906987802891413112540743466365325240612663293842540230474013194403553077667485169372219384453596180831277263959162086813593043475695898195806167043136688672339106893307641169152653844256862999298879594255608633229355279250663321306491500394018630943157309288357693953351910736036922842903303153783093068555607268545975390572335589436934764027450213789327594441848824294473050707504273252976473951526570604059571788809720050674378468703864597091667227936724510690833725413385199207830383957083971756236883072435686901341157225591801753843456903393369858967826862951070629870291524293627537673664510333083007626322675081801608528093127574291746834386316569414652701445829444238532157744891153562824761613550449405511426049780382657517853224416731013625491613658261915625020419019676342609185959657180044913618183595079025177663354156798130410151899138325337462564482086671154765008307418858049633340479432883909769650575125432555667521600685914093907451825319991581261950773560549063000766360614393872329956563959487444742488609988405126785910677983720645753294876053583756111050281987219301812748221496763454290743723428456388902987471506004031398039865223907711664147660142306725232163789448931983218509261139786520665030935108843913654828096475035478399308118416976370846759292374322857675989744333405454665729702870453917435935488184729947953132402990196041529998407521315424813890654099812885597364732918766172831591601128439171607687570383774542494857796397594716774269706069684614503791056259250190286317604392246438027812386707798076689526626061277310321805746234536932345023192798294033916406617326660180453361660117355289562494373715482461687106080042447191649832259782160084186979206678402990894697303294997782499591641392650483155092609641458843594718341427958055253236359440233481732251926938735076829557504406684777281476064457422869964157320812544886184963277232711133318454110457836228740489247872283204285439486479584371953623458434010222541988438330250068742474011950423672096586597062317719107462355360857365019733725080974140117525624088045568916301572484252647956252740099745693788451546323227959681268567905543137412438810868999941862638464092473634124770942975973014115860187423540938572636351360711655995999912400688869257956281993630507386305418892246572303364276377953804125643576294884561252308467614956259885351889911435285266008948217993379296988026308096392948223761998173668133181745979723577609024572683563105066825252077158587436075632098396443489445272927079479356335085123753442374185974297311417260447030084164431741882528539926777066928359180257635924530354925114146410521585334303827827094866282391745748524223518111538809414446244861222340252479051083752232836593677968252151442475313435569742124119146263471134548253216849162136512301756327736720677931494952967826589292409080600435819105078740211616004663481296184749319435143192334664339251236146429271153063591705553983959769059285999616706572785080531558805851178208127350340460953754384467245448965086529722125235807750069998837506735921486856973985484981692184708291196517765496264445452500263595265800254031799551479188798602799871373511732789905208301754217311019812150277513655142125042183080001292451387184689261471036462036082212561511944893045751093635193699737884684667293309473694998611787723438012345565174062987495110307161843256134375154062282299441305673375839034065728697595170714954706254620484886823262109679260269814209783405867460849766959735714927719448738100530444967074663147565485496265086422405754952234675936947404378760739094280610315356328952536781360640927850516072549891780794640762773088171565794396370757148592856405090512594577370820917187597820305644839855722874489055234955447844867373658727858921892098424909176710945443786662286685524329470448242847840273506912080241075667990327704724590526879307761140576477986938147575270419139342777093120273962052092468373952764352755473516492573097673639706102638866782743955517401452927669418681553815528313756355520775471555541122897529798759695183007961805170556761004098168467028598587082576982429721099470828500955771676716288154212594988675725201077718493789386174446236572963207613996531320765300977830975032159943556690356705244016973515611692700566825900944968547321763317523710189900574952860834830306980674997057134145482701757419750023642446310548688668855783627152451609324073766606882939365118397143530213907844833471336742882932750254214494774055364366279884865640705122733642981171509742708939256124025665655201984610322621760598719036998071798422111067228658302239486486108985854173167544819763777788583993478718278162263279276829929871445182584288451904467499565807045326761317037287967841370044661534056154379016053000187832084982212341416712702305985029998108250505631498189922417814902725093727610080307138229002497092567495440686603747680433374225872459542066853939523019381443425457410886747767544017858414478026393045137103231711576686889889208348838694920506331719385784654940780534218161989055970995867337236597875682474603692031342486223920275847591656746567030439724139865667705195739630381008253902071648245030604456044910250657985702698150680760203839662246298147132458595137679677286938877559105877388912043373644861104600336206203589894901565488959101712077629987865720155805310470776109754124280200033395241220262796234770653532538282017970970138832539695667037730837010238370871254553946914871458426500976779276232303199536814644382329206994707413426674953253284203091478745021399064075545817353149126293031055639355592231465570047030058313826261553326651192048022440726267526101992700685991752495890564219515535497198539958305439246275741267614963396332246623202547818004086647659756916411965982634700049982776269856567297316610285879158700957412820929447624820530252966321716555866597220214770698290491792618483935275632890169187094314349540513221226246923960663819682231234508827116582159794748981697853760774954800505023229727919386848264262701378273703161028295529176030533435685765667995273477509650853363060725617081013106853223881344134533488291869349214148062931557183556001539231232458543876204898120884233677784038075369742954826104672002611730230253607554494248503254856868450802245190147878771134679152995030383739294085260662276445423965294485267996203068636511058801614873115885199679325539165647896102290109448289930989545808059311781094744188736439554615722975913449100468505533824442037131755490994523184495557059896960717943501710460483452826622134219092444213284879574994886132603350762339580029654897705713784291258108110501162604781346860943389075130622575430998100038681365982509570785014597572300319789319882892626753072276307411390073709640821685412912224743493570660223233201975546637047521380431419195250350404058088415644749296304760207527790736894947459283610129213629228456822991475259514451993948542539587036767611849113784796241788192057378079085978865604614857321192809830184468784288896820257872936338934554884490987966472611857884107015153510444187955743665579306723880558302690333097717396679439875863253839457955156118681684554661152816710660015412527536898865707353899511602737009094308922912775423306381168229845094926492634057176163928584404375498741234355121421266558798890187285856429208351981674176948076151283607166119259953011486742979436846119375400840906125974057769379926714646743705289950871951570431747276865712675901917460191837363079048586458676548723197049401610655221702017084144723057421227536488229100292084988351292339847003727660643893829964083062262493673258340532392611097272453237331131256253669113782094315518024963073455257714914160484369292603145202732910165711311103599387520759175258421040045082748111215017073335321684155333237192140300329025237860979716532603314531989039747924285885723221399227794960663644968316844942002165840688991138446781869788275809489779762427890696160091443985566328488186755722326888895209972889820491508867354665306145421999801400137713802358449482858525668725319226191488615309578302025939715344642184180427331927411713316107814907609904532323245295689523832552688338839432912652068731381651407952093357417073052756648213972572729097923020682511179352105045269850961984816325995349080496723272829844720638149650953041604726583154012503860628892861860786660112866937379873841099924041173851311418875353571450955665976892070614237659942802533974813952993559603138854198129746317685203457756527419210905715726280290903522585309454744444437257774267832072177922392943169463210115416934330658671443750756497689506315735462889085458879224032460955393930134372967348355278650437963191828577931699409395274667215132139279968262889162603473590931990646397879633998607472580474533419781454272373905811920258657769124127585008660284867394391532713417763242275315656298970531274606229489880187759351420322642299307906761128081513904727952947366190098659378121400632698649027871690136819050534872534976764764915259829277312628241608596666280533730345431620879202021952568305514277979463507811379422044525637762740036203188900861659818688446875172913655562242232431740592175777383903983794600839080384628073380773210527145071761220417992325024813679518497990294488527271487404281145875211141350064660803837436594185077311018324952914010229927771683118971617443743123629019682822572522705598602159418241307052625245123930158460175769515238875460475932857313138411109571630828699520181730139457577350051639964443461726012923154458755575853678773552106055541378650244548092562175585491495944920815937485616070398664428638548851478826140384441928554098193439939123286772800894759466411056596603376963848163758314005078241258683132179699946230395166453178723674139626059686133092838648083084916279270619356786932919216469745647189466846877457856354274840162010084805360443643589445206391768889498660320093256019385309728897199834412857867089527640376854068630737803589549382228984141464829806851350536687453179701082916610508227994155463902625693361833693064734681935146946335843184673321190887462279510679922906593922011791958994815428555641389496479361381294034391686374947804853364983862643805616247001125878160703416144951544543772912825126640871953730641731268806264653994897576154509685037543369966849554738366818160877853098820878994172538369790662494552148044470722997974351185757354267345559030868597064612754241886643991379711224918372019995229873029462616770408005682270216548398283742893423540326421844906090153095381395445473447776193733227363771699117541817986461595499740978031049928773566633768001583077416237597482312512515789797147665543110733794274323770961388267855023658816742034356897405286296656218180454165647685221183409123427665144295212670446608095535066337599027442797191603469292774093936847301294045144316062521034891867168474957420112521002086559878641174165378296331699510675559166662516466581871023889730847602174502709190959582523605167676052423970517700854977129217205701095176522272525491839438374408996848369949223361470248691538742187522186928252503290014991836066023686368027375692784510219287177193642514721076273342739452149300290464687003202515087916144736816283744790830310925639692933221531833942752034388059493317141711484846971565505675548023237878796479825030907181661398719875619934599084882199336156730069681656278850605616475325510066266596539810541163358801984093433004747322550646844483979024472097998144115499022356405259768238103521444416236168492203146762804017810241440660665650305301483868858624866882520005503579184495664631299833879716825489075886618734482902998182735688736755123817168202054312663571121363527756715912205823096401857447168717700709648439749836618049728464938518137983298873010366722325767089337826696881349540411132998882985451753869430202211284975782210966691737369926805980834966754343777872509737830367252118086646301938416382610887521512694587387667354442042465047554103991076134477548405074603795374368859016732851643776058195666351559450995820770915318229375331003024594336348922617717691298859129404248031309582925111783185173743182676734094792518199542630661554390753156570724095544883999077253035009037251485199962933039207176130797250893327417235027903017276999138322851418891520045446807809704636193461663357160178044495419227434452847576347883354536432495749420890507208077596980531336626102386429241990292561638053441301693702558945860703587499384919004701914246415158908189037930983940245143178236615219249982356125421676651550437771844136506154884923936596425643920875992787969850236437410535924353137591249024556788862209135086363880510262556704942708393986575831204122158698378887266844088079551797189707374597456299983212285621351282877067648954383375720429511387634281028346823874776837077345109885372600645689805687938207182721093573083919059730404554778305938536968477568778907751106442648395334128675832775248028816007639827805587513455863940068954723159057242136296041917608370745084099488241990268426606342219351168776352991577026291167962255055826985933257371638147923006572777352742715547931999725309418748704861853166734092629772975509507883852446206511526075612535694415491127003365303424958655865047455878174697426595663375689158198515393209972424182729918899364801685560224414941011120000306637221478243325237681564085589000614937649893296779696956919334541492839741592230419317820718629198791456361253213139236834150085349789965477021583807779582166338448558341308208664976085496696216562239451807586375220267085606090406169920074092025290405768038680410219369428253780830193943777258966490886952494450063789227133268471034541805374104372488106704266943637278768517008330647049067636402498586574272113814861684363009319538350224694467162481779138940075507978357198173731926825849198960052494722569727673237619302410607195875949228320454511486812290161172152406059847462074599065246393293895841809908667943227345427842292699120793997394219081440044212182525561417437420862320112035258679552242535250970952092838092560733412946716754597086659287844128215725335499607477229959618356008355560511905068298429725836620905347209309154181282397771651656851576261510918862629509582520615407183695120264559818170444503903195895089875482708555154649927067781795052407408442821852605620152462330746191747703733384522129009041983889923825757978285014143945713620681871172535412358894567515955044253123007899032193823274149590451933747294963141499984342568490417233343233193529032411037252833941268407957687427617163591586460432363335922113611406044189932695834264054011854427583683947627180796596548658708394016504905447586038041726160929146386417441705505778960467796953637341167508545020164309329336585175506375660890033000374227122613658478470405398469032587037052414598034628159254390302955251790735069925509788297952747239020679996326197131413579684904211013553305754127277083713975902491932824283875199864218012216451867504276115705368000420837850834754237224845617932913559412932532576162978599931709870430200009564580184800003675782246285253322672646256860416700232139716337981398907935691580123499738391688057524075535958815442492473678521493353126920556840608837820417733864372113097944649783919549828536752579207237322733413086321583802442461151472522372745295161666048662897886417059025878656568266124235365714426013008508951469591599143952440490369364581324314537694657033681721915188520359668019273611831819142847831245590174134703607667811916611855642171857316375840681304051749523622884367143756603332744777137343130756755861057964859613719108279481438666650747196458041203425311679018542431320962428446856796706435336576760471182636238559363441227965357603410134124585195231361413008665975657428039502946598651591177554846376133324976839658049162756591916506130096333039729517919556775102545390468818404549462868028283177636279710667918422642705405616699872747224543977447011783209636225434286872981909828795980834128966907730306504748221620309870059837541315463966507962682742709737807080124527315966167644106028491733418381562611698115186047923098201344522991537990031371518454355295449472375781738669268210221911193288768847243191010274300869728991458956329884164747519170524742667976938071735884101549787810708042962548537165813544702328173688433303622307147844857625651013703458195212285261974603488629688985491856350222670006471765933309685081755833776286665007484721510264563046546304640079313665243153856737586710772053719528629025488518156160460918924946859475351575655873769949268248147080000565148670555628546725779385018084160456880925867751611506246867245166054298901057302721686894018108572789771633624237779003242671277102162861217071268392765846229419189603847749145025002553909889700107897558004226565882362456059925917357236684716931196538755711980004325978192174647388307171267357428296379340039187951610345357047151858685245955768444686374807470171141668086082290586287095432121900743185575437813925367386542742073607561352952411540794257089405952028428602266144598367203475023676019930158445507379418298250270384031475072558984785711944335470906689330903295887500269113904168337214059208747452947926747044050396167197670188733182003349346672939122113261156137376081488863546261265082445529007706756387394624233837917003922729005003175633050907802515477012482643441998429999210160674038450689421786692930114988311322908289996648490829118543302222447964279854108790834569473044141398028051286166266160270677147021384103565295522098707845846093606228538028914113034001864176252630888240726357079914914843920411409619700393979456605468600866928105142703631802875503868962661172413677578364309068035064805647020817620917885771488900564549147421041593772092996438089083682162775731081879746160159140541265157094069880720262002024489384301925345167822237140710061138446061773326575686579520147734140733651493933720359648805147606000782459258230868069950417843662231811024208060736315536649089137818311909223002879787375653862539520279754619078245849711513745274304414539534457628263754253346330113048608436425656305042180667375587441163924424149795109150716468812583651583990083917855499350662941836404038338272038085525109194437156562429310159490949561010078302065887758346683617484605567541128348757645632871059732924911110827228648576555394523582849425506993844367944208823487602154634492051712721654241289935281199220052796035122788139146387865970420810852424170499606781687253866431422066243992495087769446081563750084627186706009188793183644449916182681141761176379205652652748646626358377934269904606411408981193066840554664621203016596840534540343466278361730871448196079120130344692683504283865104602712798055783246023237340502683860745208282886746159741859803239576558452577417261424300227541544330855873927682510168662888647145295635350535395537038471592575148480945807355434938838272909865492434971564902150326275133671429603346533608586451013907538086631029215708394372443569377972203586981433514949299662539606487720438252855513526410221668682356618289194268747579184570553072697808860676958692371517293123684133185116103468501992035581212962731402462028873997250508947143911046283675406356550674348354145195177851322455309842113364830382536259910468226967420189835140725252754809511371940409029503503944712397732292222980663408692333579957573244610251422127249332332204919871501406078835016635325670706316593547599291377440231971980670057242296887924233510859659539456566333449895505143265521379419140055003142983336488717895425623457373266704644049292997496720375251643033424300303644353164440554231391636387512945135364653055492488413939892835035916750241702731132692405428498632656184944964082704295694439954213292440054502298474072390791523265482691771035866197124784189289579596945307415755131396550032116695031710514756930575675800112796449988365760823134913493494915716912712045098452449384304769778755866835222921290884630829959527001984573675079290549727103018509500530458606459847981310995980645842090822785956514158233819393262140544422835270221159342662788674694307295510398594648850975074675725310541412312700729446825070300838211196538527500138840140744371074012279410490967689891711201589386976006671450989603501574171385459915708174705800904538552590131542155307555719093923798519918148424547132199928276456768580620292643700108047576578815026464660799813483452921239901124582030807265106095929625573568942106867121889562552760653369016652335300334911721218712400357877281288686702300911042470791100329702986072710138349632716576157858668364502000765592421314417963376657631022728009912776097803282066117242319767172935548969897747355590015806355368855341920787082614062913718231443863571097085840225436079273124043865306857979867292376405449047206848826851917285172069940542772934670449410533568109209105329025029502641008537719315640692910302357922262695182645499813411918236442119027344290409096948892209677787558072013002437265935674140189464259262823170861352318391190725438409755397095538846516288509086894157125624964338276503587477559659702629044810580525446220616717751936573797333605356118177167277574723564991173201813511533740724521005352937794326591934557725586713356216137030829643451469879348378254156207549668526423046845838479993388018930548346574031882736776618850400238941681654376750543460982299124181247748008730957263459299175308406743315363207055175537361891244211638139194455958574498477475873664754148349005470474085682322927001773230516366530393128730613944069899652868068423491737235479374914833650099105885396525182527924859541577529545273025711790093829434765889708545876850318142775724204388298895738045765736046420107893374093892747182803385755777503223469772490653764140432939175929600841451328884483709403248490374385553041491469041128594558136409759356637809074175119241133935914931600543132463743096978693110592022319496720921689941569273825597710359342708415077313186823606505661676013180000070560537060197820369554997551110947859588304509938265768752245125380351764459889885557655993070920689613331903443916718238993682825189788700099840331512135639532713704539866166069911222610874051589226067589634635063358552343827956058019723653169692350395585983027773277808469355746104723766186021352439689979870919837674526902193132221266693829022930638578294798271187922884359554581821985714816867897817830256199548273664147740292094800747217989976205068598127631644284195127342727812778748298627333707701065865149667375118807870488983511988551391850995209856484619549715722254854905098212298026846955737198168982536024505742182679322293575798972279524121016747589982167135958670243371231308173820767087826645427393639265106116187312288944923151961416633951131041355468658084605187352911594924823200359371013146130164742496608639068879283035406172809180409472357513089394573943668417779453405761448341397154539899141882231439703045654714726636173617178306732072496596130739904980362978104770357483935999242479028256840855460738310352229489813517588622064073206573707937393367883305227333027166839869567991363157700018720253461728968958382395476889473786263712572374271768096802212858034684688920305476496449037786637234940874397564863002484731190186897746070563374397286388438188840796101279396885011238420963748119217866851333049927766028444326567704078941567661653002258051367038059991405405994235592742009484245271975995309906977525462087829711893333972687432195101052006042728826971711029430673108534778181354632501794246859491746295892334804933747224110015120357075580672811205954898987742410042897442507328214295520826470032941375441424795163482713210293737345523851489529839919867032370304288415274597091036835083653029190545077705241081230285697137182429704886704068744891208828183922441873611290573424111818544210085621113020372497083530112667820418436452186394796477495410097437280774695663636906662824523394033316673136549557792688955961588114928799191835484476717663677274324569813227461774932887269090078292131354113991397383597394621191252149732461551432812267272769877551574736554699599335749154484914608504119658518775206430721681896448263382756129479769895741243886429867717518570357135504079033782479955722477817134337243151753425925150755544370518117070862727794902291242784325921672809001175031084930718925269301534583605350582601476889185759792174355458678813307567146046058107602958102890458441014134970167548324900168893550020770377430222707903414660078268301909833641679321232866691213182693983172699171709771071028746027445618614001812319623127538459164378850169976358925926003554702937015208321308391106402860751417755529699021551056921694038396232628792193903414136010836270798505978169619714127384562351985874211579151038772420444744808133193054875414365370197878458464041951160897600956972661891569800966891085604161552009331945601544191239627958496467563175224286193592474515329419487296147882518989877196808397962038640635393910431036166016417302594396530726235378673253846815277154198385020612337063136470836662774109772618703776243455571125591802458340442629744383428529990727452607538240131448201556842522334818282365175863701538689722852625403423811830402309440737954845296623119719867399706094299194654406317737782641938822158846081943725437184237510275703089786978544380001057283389617870225679644525573859881877191923768359087153904367910153467094128884775281604507321806078385407299330298563268210824652505927484640411270190177640491788701821878923822052343605697714613605122669553029786236163623922262994876585662379520088443356028150854518628168680033772156157135997773617161657544946310424651605308329820341210904540079115794877911956577907067182608618432781625383164938528899796277061524323720802597088302481143152709800397321042419858980309023873582608608054582284325946925085298872785183843447868627750870503957903778979449821142489914736860264104539313923075563289228729039884325648678872901498409969826224997352836588448653872353417689614954507677749289334180492557913696766292783938748847527063459123958840664385869140185551201042342969908509586058803080181956481722170014125498648712473089829897160926418604849564088738290493111887311925888409341991447374957929208186369296272172740961632210889907385971812638172967523858051907682969145791756106447576097062701085075888052316363147151315421146929447375826872726960350235461551383796151545854269224821028204075941105939232117134051146558103511851172727249566342326872954330107494793340694714033269796501107470813889790220703581672673379636976197394986214558182361609487307039933618721027886298037917385404888125730536158808667270005669538085915854042243625167783203404769872008096172439168001292306641039532421109250930207173866588503474191597162892817641944241643299542095372359824344271423217776418582891510263654548545176915236415770284746484800615093948132043881426287208877227454613860334033820090844156150756409298185439403761264649836783278631877092329620523338669314410847743297620032931775984479166464278526066053793521736865956270543338130009702307977675389350865986127192519691209572337261807395734415872881756814135534789959582515627157443675721033859798170924172207450074044541466380327894038949010145342133864138130930974585386962764042888244713739180552624721963668036879288241499135319293701602701367312696468821314986288407717845775201881126461013778706674693679028275381085760213840196750540983259652163530657399187784939620959068855646293520061653375672769304522100127557148034095045813741217922576959079620441899862925571088432637410939640325417374588715715593231186285807242055782828279450027192170407245968596041091496243105624555452439082879522748490139202723990613666094029444340327760715801320931204747821584880427985848968976894554971343735455817303717348910956212950531947313776756978069690444572173886627908635060497926037205112332915972991787611700750495353767626563539465547380849052478693984959134616429687012313583375519065666219638058319427638258836643084539625042143277341282111487061347828541233731421208744390340789382079585426919829035293407556554690569510597347353905599125704969440940690429919209702697008239802402241766605829986561002867072496288454744226206483985487804655177452676864713059644813265994432542485031063204981327208299476636058643170505239043785958854850417533261516528831663761968507144538844198641201599265118181628298954764577036184378820032992207712083025819150246737109900306233772410464194920229253195825160120165322342167033987176031422957024209313238281292026768780744034221677462707634619063111455166655814504223374514391045688961639900740352799653938419315182613326180450338150541541033002152460808463601650041071149468947320149965753293550848203617432299447922246882559284556153877376672402760132820461433203652466103971130140886883321343254017177997003924550183132414165388769936315475487660155557644478488481037275779302875253601937829142090081691715401037948395936447730552248298079977264587017176611432084274807011296615383644617756284812577334063569170902854922735015723239723474892110479181652294817616780711646277828967313968655278722354013318613379952224573996059863313711450728889966643102653699720044751608340167888667016530866400265016467379700490881415665994870712144547107948443097266044683368663573286538022885338185204772321850677457612388864121928266592275901126819302081413676744119957072916245156836884977655624037767501352796465752912699994064264590723360968117179590481275675304934892135035005248459761515997769350617500689876784640915564335569456310918430281724484992663179675871450563330240528033251349534257327714474982002619062553711768237383718778390445296456306107861769899079473414749685369781727029436833448354410635829046002057031342476737144565674619927487500703151997287247112694864068815317654639055753610341341933920201915452646852051476778863757083963843822464906752068307060809042331122429056204762970419854892949477409533951556093882093398990428028581802510956081940171009049403800581354974428871517118222041600870688885587826349461211685833404258150845571104963596271178673501344597662891403432987178123181922362536101652470919421135775845953623780615223398251898046968703128772493236805162046766161083649880220941228800797556494848192245937383825361594793548695764001390563443054629046141403890503931705954930780964047392950259867945720388859009724116644503758910269600975838311970287045886020370759253152104387030225079341915643089444073434977343336605923368984331846457846536763089033085808927692645939828884996932943886055457526676589975483266181800426595796719466969783667528629312494636887288541116941714475697793739987516283027663364482958579094560454946940382897459111893589860836012920378683724563980304087676871022946322604398360361577113857897132117100842502860580774376147523244619649563170133178401827620034648082854283557734578265836529860539368784291077708602320446111437388353082097831590785002792879528647723868980270965602915946647563426598963671135644857674263335784826302821515359603212761792739330697372228446885745017430017070234456706564251757440625559583224869692389492795385530633260548045108543495598919912423137083814386534417448136480887180422208695434340915349803239937660874584567563357292573338790941058881514548196603963446569129199940708713636712634877844796404890397617000005157040436444778770058614033868981113101655037087948447004944970960907497801242714728164681105446515699973440158837952983486515264520355569556998380709975660410700439628068958164769198994587705100373699243833293199842283062799437559327316756838494620892433667060055724194888687970152013834504140277718923312563730373457134787904706938745517946261691663557564822677713622864073348808229760695336584883536834352180571859564080484165675540771485435915932475209137314059105176414834487674363431273770868401429957542016264656569074925453696521019071757658426407246246573021809869794544821025665303499601195244490149640899969046708151661077175050160937505695509234195686238187000879497043823530204593560947072128251596827249359769534396708683069414153556512984229598549617080269932610771816393203545110784871100538724818433578251401861551732709837582998564309354052327842695381375757353304242750388377595767194799265459859144133161928219167132370812079536444020736778816623202611738700296903661367886024811972135457718837968542485832532133200116412231695444693180124272444330639280110749594365182941489872164833529939425186048138633911351869025879116552560711511555430941398040662698301688266232993866677191213736674319278164791341797015682004795155925237384949475221621451650187973727289586554637575907096531143914640019875136329183625793450602824536602150502310124677769521031543802920060824384108561514918348521470486318237765597548990107693971795890439484217627779686384893168588325112053366562440568628657979015892519870020537464496766666076325675501964002977356146010998611791226204181621441201068394365973220080936997336783433740158190161447367017938686368881122703842909990292826143593834125201436798788642729104675596214780189964737521756645050131643140263597654348243357046092858169878197902971216139624174695380415833683279956081775660194876623559518347817780038225088123777227929858301514086488123098894393185836034774381478005054951661778671090592694632580054038234471932144059811127569918592189003180792405255836971876934853035865704689510557456535820014725267864330067865725468770402365931317480093584929422295555258029590826885299199278978361215898003356339787782753036572201354825154293341010875630703430337374706935711301310470061841038482531380082142187766336925008906172472742378372294386178198127499364427322528834329800402955709659784065950175088080347406315483405531763425378162086171196859979123951301372072720987567029505901628805766024003372030126482098287109736116872055978499913000063930995670777919500466163517735100621986053612398884584751830310723536363673365932001975097185413598116698182204375608272563144166516978371486120661174059884216742529967738086425514361075576389417206780376718165677751470753209541386657810322419478043728509531898268410203718568463955858090495990086532769734461245489533772345398286101916835822503880763732998396749187599258663734225004117669403658472247559479805399230190135756131097887814646446684423444609401419588058199829410255067135414005157935796377216468242010265262441440732121369548552298066690817624405126354525706055425708707468011197971780809942365840437597730681891182699744016252472594805632317424679535910921039660316440178946849788026137666910836807399775686418859203875726417420112054025543217595624003827640563115527049400683512230783961711545655377773601275429638357379786714405623079705906921628801940387488731784130250181446222362067172878752116531693396432604191385686657641019410567604520995015971510808275795442371291161038465181283825430137141503364127683147806897171652753633038204386124420994270585840346820746314770654163506327218094351265210930900966370199510108090100752585376919633433782371547393305252513734172393837243552593616359208668985435010651707840853369604826821417526040554907375304196158776460493830909688844645735821433321114630347808304751502613156057972832990345450977636748167454883856944397493999278883878343240896335054362022372748267286690766145940874846583059875080008642909476147933832335393465710325839166700974479677323559821455275212365899208775982502290352563490881266011080102487234531145086766009355901806543021723066237211015153243817016022537206907455987209935474078643303243779659751349381096097005780114417460262063068012237426018225078929813299745935899585422365627104423538963466644364226280404682436928161815332870882257554506310828030989423781184005245220595680597112949573799361051198275495988378953347531403201414113082550698300208546378992680595216919476789419751956337477657991642763594943167321130042884026857985622189132967160715553314803309729831359757026984314302593904408465444579222331158867688482760333053357620572962605611532690625049275696708190987621950769337573470434400974711068107148501779935931092253845093366674679433526538438572238077860879129674083931064894765141293312295242810442447833682729921626926809188608233936881099215130441807903804106318555456480377872636466281798346391949761474912300909856887238673509996829651454467783590671153383404022830892126463765511255751215153171567441989889677409711088223584501966146848963770840187234995862265205592216928110944654698086834788659286131431226239732253661658436802267521980514426541747841820919786072077439861594429495361235991204868700704432210248706532529823707303215248574235074318996700706727594453579337813151443071560539796782414788096680343040465648891306813019310745235821322623876134496553657080727418539104181861228629233915758389242570449320731421545398294521978019838012948091672566161308436918978239114875990593363982639089114301280934767697952746043786011697779054425269993253197953822245925621807799383400530650892744107822122286505282790842450540626641191164853101417930915514320542294525074821178515451721731338090621820394130716052128272086856683533681604040968995397763223920630283924578908398449516728867095098854075085611301430929033662072803081139660550061100270637446654317360171466232636949472888090212411125372542531494341709648451396016428481759949976114176063563865721579801479849311319498829682349347610235176143790321179050490038887095671318054987187914587717461394923401927592821844788447035133213433990045278865583043785494010633310452213514142482107244951108437885151448155117088873751406964861559772193694729603630427390985566699566709308616573881629585275018543424440731699965975800381110747717950101349342342797983869140486994739218768910687882925966904992411155801280623250123132311350121923937483834801682979561602879785220975339097858912897288531498675730246814603540692840980701171595828747727154365299013162645486273937330008309314966234047909357958175557324982747036203286557279114516573717030682128758221388161466872812638811285067501625579416304122051881212242456181816517169881265513368723776778006408847905732455108681242657828755034105795589805463061079498126692474411937296429513728931253873107166116004969275921230265577133185838934865709750066633301385196456331915167022059906790735790222987500285532484950036090229892129547961887278412691370341031472079361137430079444191562897808332670140292776709599166800532740499022323564540565871423681201359316573821054074383318455068596693531681978679019607006184498529951223404095095587857318042647458518152384021782474335985326852816476642270087114886394780072292992550206856680553002122132477064729943879962619986178219298666447543768362536805445495833122039318157144165490392686541697776479446735015906609442564112889860970319297330949875806054947674404194054890045385523294361642408117655557915357996185362665828304423040225450051127041621942884504330660816497051787635521717778376963254779318547751693915448122819450290774234960633663714677889078187718736783194653103295236841992863551324455249457464797999770989954482566006868007804310552510287233262975291612629858762814557313362806484721859004169199259019413575005569926055041216429116226267883074309061161469216748220589534489265907663910203531449595399089341728062210364614080994307254698226482686875480675236362675465388177784544576460544182371645172577819126336691047820617696988225025380300567907601465627791199301301971543120868522729684530241147443450391794358854209579085232463735591164531205039571544168006647382069878829132403533493498834346898816298889545923020737972725905285315412092370060892110895952280508341878371102403879873199325650905107298533092055740571344000067859079445239543854405194695126596600196822294579422418094954723974807572747747269359374166019851478537697759312835427514082630872289484214793672950021382388390291276805623325980640117244257658287611312033497557891185515554294380953493793639004933795484262148715574257640860552708528060827667094207977655241800253174861945517513703808423635210260277653195251930305794904441181744444461953534673060859909830855242512750961148047613621699454638201879214044396519643334738348425817699247801865856192168864696537110958384711538264561932263708143406167080415633885976015687430199256771168754298058969669009833190186155398044016102953919409823224131924468943339336912270046727157035818311081747425489999513836796146694283414436750649836320197252710734121690424888423096327028281569822736927981246898797361711043680286557918606541471875391053847923229311516278940380988114704355257556218359727025294760286279637672281451968763450985575423962284906399240262478151682417325459607658915243585782848268798403552424963540037981293990768773700374154505080245640653480100075525769226827121755029152947396494842291798608908882471231703021825304855386988770151120101350616483720119112447910101808406264304464090264577132345887396519199564184153665845902831181880495307383343333357402488198439041307774395214640149299517993331342819020080661383478645172767051944378303909121883889664719819101753792524260809791995254956990427013757251148720274768413513037302009046225804680180725081518210642412636612106237716455463189769367505645413994710177743026670422446140230992020549314331013968336515277900044291173934198780871554501519524946205057912874666904183098904508772774927865254892333225661095777119388176031103841182336249443305380581883507826577511907540025228020964140350755129153829307723979909739574036731981190168321112748049227872697066510411606809499578055600268088669350871745596323077239058325033406168635190254690166481045559531327376711452739579872836111158612962481200198033096359131438531838945500750281941851982839852591939048226831170910133663861786227864612954550244699770856150067985476832324518058745909462817696562026839271750207935654354844727180623321907467807759552561055160146061532204647620372347390795479525251710977822134343428271852158461037860690910763913856600988415939678947162721591088862152921000532832702186682602389860763635301139974417503643476304807218219198726900847929059139898750716220999364475850342809341176809788740040146253748960747734402139025435180191561137719117481315063901024319303227863488363249523774024919833474830112238014883073381045959654351418034031387531207658010270753117726704674393625313536196151082680710608405213534409799840995099633497750510983262854068804292209523746766933461692276431861792454531303540938492284194814508666808556159382325639067762275657733442391453940495480178333530006577736648355618109225421732792084170222722527741408026480490796603631417972728568820507705956119468415852447422100318402440250628703935722898302660048954472060128572792642707117948879548512472355134937113444128454826637302484135909540564603491385671982966892056333833747277548778666519135729291782158186947088507940815206668429472396984999901818922089486414012496355826645103323663691829094469033197354691611887790129136363801319990838205814550907322220425106541935450637899284659594566353820875771432503444153788003271865925887177747418732450990475509173887772109388935136099827964381198128794275239174026914742102586870889404959460465621970404615560735940958922995202673741032438017716804068590116691476040236144151623431775021421438142435522903830352244881733377170534243299649015941324233210925590057616362594717035424863152756596518950266495453821076514694885295400959556920917354268488055564282958856400841643840193534851391458981023302381323313736970152811565402180826901541071396270504160312968671195524763441492353216603979204854921244171625738707318081394143543489952234866950633871288252912103791622896990706516367809705292345961489385664363107544751827646306619503645246329973089609344389442408653006745018303489514330508497783572192634999232094714729578877502787087542681101194582048054859143689089995542383028990793421963547765844586470425293159179811320211471883062379451626927987128643819777967116596883822679101835550239342702364753197833012408900457572552280300571606401799430840056015459590330645920184567287192079868011853778512419944385383764873444469916889029472689262232086350987421081103548957425890073993258921838651045560084368752466365284152675346686098406595321445519134286195174430287759228387730290198690213769279980727072358654043549605926661778249402328674133080166960821237858537707617295234634394336497927410684842016287719619715400918287293520679682085153124671966430114236884030155217676945857866876245781543699489715868575693551686565689014680272440780399462380395754845143002146124662365985293243014775772593071140118315829527934624452615854993537299348951693387972307187723927898345637152509019270210584891126251074900629754208602552057929784739788826473818958847555144789951456143479619231664029341397628338477538687963690343705825667492351291359386475944130560120128226678158128639443228057984593628289171163816986377071883743635947614858555297464022570135041631954145780482490474274548215884731459445760678226238571010242494468728526339032081158269290168913421894155294638453132405260005270723645219418102742992885479805528049816948668539846319509921555349058895619694348838579995841227599392116594121084951501628225928828059244555040977714781309806496717424998686921720420934003848755892498407367922676007133025246322700017300697120605844263271815423189101092021313683257128939150810413673293224957167204426834773453247652207156665044466722460204743065074940212429640797152825421910933773304425374450177188371209086504583431389598853247122203062934401954399348989909278932380268781829956739572611085515443509107637469958202082101601933148361911840326502897141111109118207341011830817123660559512563817045138138311518742465998366648187746421394158316136277845594734807114824217789898013217545704623914531833927501922889383238448298432034421092199855881991688123849621429782116486653440886627966697573620917010586774940991434695576670567925715626551042790080303769059879100362419851195164871815761907970923850982950576744618643204900793511127293410513702242446676257923314699700388348183191506954567977345647243656462750781217448478675198873304761724462085610108155841523561137293312069590349718889733937457999398935077303673959276577611424123877702932575925832050203105854699576772936962917182764405824313137792478249367335999329434276563951611712857058284435670736148667097031555718909521575121063198629093790816920227558934380166212280773502502420648996227690053941431662289814399108527801685958474546408948978115793101058003803777274307714995262112840486483513281196428062364883939158646148548767409522358155389200319096961731511954265334942860078536181005716837884639846982710569045616454608573076019875309915719048591982422383812757066689853615349170584367840704077845628470054606400054933736147374334030108696002620447783159875277384077457520967486717791245460454022440712718447356563868002751095870718217062462073959457525696198374244720879665909513883047553102311533964004398285789129695518488663880055729219863577837177243345340084789407442601654196062902517334930962483125458469501218493128953420552669552943840455435096564087108670775495422518477792379902934693038325110967093912813514050106637983769743283524089099421395329377260146299037839348954683374103321687870979101365276794420620558959998909863608325961049439944011204721458199658381214390345812681748101383422558893313930610880976812510175123523808276860187796735321899156753271626893894043012648336313603010616504491924156083520683784333476237374758585356931020379489508961157855104936694916323698093217051842775091275388854982249014826682656297099003798898008521621407543747576678865579877685766845261657499355941318522413347916152879405881713211477631693152260457428421648559240060787523933844216169679066533137660866592719856683106246074123292040444688325785847261243838476566558034890406317097791937376841134227352149546580328987115935271652029573321140236524514784865633275826818286767162713793099464508358742935432837017636773403627688328871570657170361601283319945838672500437903556671078102906980058768810202341447918181055336209022252662717389839615463495473510698213059785445515321187298422506241347218589348173719795498541802227992790807124019883828329613602937481567995039777919429551897211178276256591496560749547749215315360731722046011028025556521972243777219386035374846535841811852368140289069545144366191509244630945268348916586169220080983765658545819201686587875190065977163137830697700218854507266348367479874838309710638002346489517038018563597774523769980156362949088343956852063101153332508799144207514179961536599733528573506131018510097273688877727613392899362899907078015474663558398559058079415913760808953738004156483824672715712472633713894487210007508781174384965941978415361918338544073859184940319604268476037108106596242645077354030498287128343164599505646987056467759607242334239388571606444639972901911496592479879364695516516377353561676765261173204668068903232362326068664253563840334929091867430367874723355977873265569519112127235269341427249290097632681207761559533141006073959499963837172749619120176311722665943367279070868163495127530517518637940229470520802243322859098936566836841730504547895806546907474895711496186676266279945084348395677501817216431184298926886193417022674927508659967524072929842559989006223089434412213611604524852101069921266195511403987991645913585713881816498333130451855269926709645416648405596789460478779758605314443570064688863805285794570599609004826642398483068090287625802563673114552956721860877227644542018812968788228780903322641214372412893673553061649088351181843892630118793480764580426668082985006770417569380154282741149441467838816391271381263797268195657674294605910627944108918072905219150659351148952051209196708587616968349360985393528321655764607925906100607345706869900137889710335733812514672400104939960487406244238232521576223189904403852544199859841733403548164188959900808936325682178824870774854329549622654911488936537572099384931384682422395378662000457417928293942170913876659231817522855948846892851897502458528504973178909576515898113354777783964076637382182577438172234722533260397696606963463498059212134305718954153523862042193542787665281159758603808006267310935505521905002923360518633364212857663336926771957579893875149960338596577755146826711239661429756048314567884648261706313143145969785725123409208904909865995756514911379777323637413968317063943273866262007239021024465122318956897295578453351776936680088345029115127674840495792891072981391242826996640251810535206823762116024310099809249060042044903350579066338036339427710929764322378029855757446356176856889774250929733731310587775895211340253911562316343412382229431547264705887268332450089750543721394040620467962726974710645790567435760067871409055017889268000630473539017707255607205768663443306145731888781726434141165368424823742607717859999712257383602814659698477573503468973698658152340910211860515189718489345167285123489420648738666265753963336620233517816212276029095222958594666241734390260051930652542804226328119975118000377564076153644044713809757295240136291926493779557421495463148151081986389894544179673646510883871275584947871147828007575268663706953886389012329407195251432025366000301005217378016184480997390974374136977816115528574950475300052777124358724953694128669707945263064822785671810858439827939512050694116671278176203118475518593387965879711748765706878833619944283837584764482052686682416077801326605382975163193033779204438886802828632859134912115718423875338603260837301914011361830241651296651610273655500056582957866423440666028088670042250723431017035029576961063496250866488147325095680083266470676722403903181064382460882975544567911628161270211607437197435506357042838364610433449635848012377859774472323321864888687230761198724774841928805828718641031612002760931114595351793341757680124500990086242763207547726229858265858454385853821055992805432280842510980799142145778145222789366433079806217064045463498421241567976438339164395553530692258722610223453856433698995959840016149593982755800440189084147097364582641311708534419843801425187414297504421053794661277890117232639416455801954169912327866434247532097715109959169233029316553910385696654152350129104482083973426083154416114753262654286297881294017825889677947279197478611370448967754618625341210212646889253615031774533471975094522495879285956148654456889852828538946031550443034734334347801546447546023993326072039594135152882018939514472787788803975070068494638131106384535301957339535799272267521789761512426308289461738126368355690729913297425165399160647988915422693288775746762139692890566725918283684377643757626906268316440754253870938247570458155557071231643006172855908516884428083419399546649690281515168370482867813756877238330775759993198115296130673499795069214978627480830029742701359244687350105477415351193423833962413938997450343459741163371616859023008521909373719478562031765293444586762787524817414250856578222390196350750553439262782158842073048910097908874648170349447896256072469285562744829557148917466363048836062163959585155334703677151972809477715296440279271706051010395010449997396043977425872250591696954536752802594839384600980962421903282958182582884757621226148731859896509528808959618630630518218031215279448326648624274053893633458399449890859177540115452106646070297153663968315694059854212145269746906650489008847452627594090969144907267295675746685948149218349990372224132414917610487054560466649625562389399536217868624119618349218389797862781946551853074630785123550685861644675517444912883733861778436469154885916814543679723323687315662808178119824063951623138895821137359461882572133633002649173121358652005337306995999700698747368272417839714499819813179813837199284226763721824091602554001905798651280618653673866561198297019087337519623725888763246688089670591861683423842038106920272399987400024247797606384107608840553522184707526949204013976014576770606605999931583324455023825520620172797166221161020156471834697632771956760670278724284253961780038896654750228430516925195577237943415791842790089983493853835525756981138992593413679114491787356416385496156701599777002028070630886814471488525223849028298393912819208426627246482143698982922435551749163658833318853951594105219114608707055115918078847992292692132505313452361764035140120968285560755229226430071501476333800230143338771047191167924727359269754918805699168922829611829329972405789292143907457177435117435122147749490884296495878043923417690717937913305388914350589676964917947272083102122457491478294940566561384732455373049552624780221312947314035901133689597402736378493695046243397862648255823430676991929223529685576521943666546935274764059375049871271684222154914055010649144588419538473360752658934924096190515620326855579606146326381340492492273581558777947830152346285886677606730596068578240946856024925548400961393858085071068255654905431688861112307365295462180641107353893521318016349437702241158159885494478117165459553446598620241847624437875555628411663285021070915434110232392980287890724697361575834116007562737401726166144189738618675600311556903557720682431489579627626597916054813844802394076795654349995963114218600713000089773861633894839376279581003586384551161602716555173426757192896834256249415769895189438771422775445065049903046658246960550732871779742382112978098934937554868097414830649446229884439579989509745373288989900442605052366755538268159698920937613226665031225744834829623673578649808115561513342362564503083197452734434046782129640693057679878871592175720720300875199759817004445302269185411011726283139457241536884245138890708363540842501164592993249253049829413277666581847062606408410951314360473767008495302632567243080024388442165255169043168292883172755359620902063667238419724466974107236214263843472944925568145560320927063024215188109060816121701436641793565096269634701174139226801446276832369793582807229145988430744004013278696591890808446420514148595330976129874642137214938647314850204624088912364498927201603804281169704764784751065262089596107732996483428604546038557857654483499885574929809585962746593301249360061739928555933848379043427550447051916086201102081981847391734241392436481838115891987261409199701005471032299845943967863675640294061325769250753068456260292969898744467635400935922604367309828700861782148491172707112113442994471582343813884729644148443974306119157197483993439196377486912444629680455604654168314725378214603093988573249667715747322797730125984575273213085473092119354979194983576168571700122528485851272561134321500345139991280360234802189065956098341360717101664652693328931061099271883980541051933828425359787805075599823877180802547590232653146420022909697911180993168611079603381070325303603675878018441595432908425552846285130541748829302540865097827625397414588878692629897227013687392360020726241987717104024515574798589793058258340662996954626413102607229314691812929127414802898886876594852924103484692500347685161226476266110014709663198158035710463392354185006143287167325994131538038734771676278386575451772446278767429606943321204428367264171747123297307759248845848213933950171636983518365408029271763432020181468240527231966272468029429240235495628571254346525821108695995784946090480894552920327492105597441725770296709971990951583523507077666320818314816850804108692966362165044757806592389481682641307141918807498015703318151357468635892010523994690600026992365374717534410776287096269699948452828782507855084006376732136861831701326760591478634080911149302627101701189566078498107086031165289191875322642291185853785895927416649409394603529421468853487207538592799666508960772789922753436331897981240763158856830033339417313139441394781710162600906305324223397497936373430754248591798505873267885989313704152825539255575731482710490570877765000083018815503031717242843109528295869454915683369180956592609851987590106268261543360823484684911924565189163461945570915212061634513161768961101975324805640734270351878864472366225007551344366383918878625411444584253371854225318430151995041444970406327348213627991164208929310430572901155346871681339776418090635912987980589302594633615175412585885577277958726323383083846999476014666556856027281089317933073857666999493892061573556927145253975774716615984410093853110070583606181400179567130657770871313495296642038152261030288146081675886859034347403976344371941467517106513952909077011082261534242733502550758764112227368785489803757129447962671413290053728363934336373959765424669915180510794376126159465732825242488721023345533193490630973591802687822544523897763584224174591220765134653466409630600066979591459574600877263929808808296670922695998514175901013955536238648331189757671032423704034175908055671415180072116935061605947577545099986647709468193047170801794617121243035943703088461835776682829395182441154665427733445278214499233584417338772582835816020194287268064324943151180352097211092630950861445330699144634063144812525318953814134342627656680383391158290333806824892694497136689635107350263366814585229016867125583702426754970065703239820968719921422872985965986782101167061064844571334866030584530337767764674293163828560455737073296938225682221659074593105135710864793951766407915252414201548674232199788341504527939773434977482805048569679444469898815311609548671619488096916091746855805853498414834295097211928693269720674816933953123949448787045690211768937751451796311237338858533902129536629450352329836020251901383719822931605210072177523443286235383385539213641320692219727344125444432238326351977442692963596689575759909542489262547062953613148317961969885123199725195350139584736108097128075160860200650988746059602156122213800745009867315581042103819394454320700585687980163074536529462308513408177497924609253685883538893144365305603069950734523141582050445173374737983996140516338591241933141153929009101908226272323582500775867018858937191099822042968708821827908069985755435601217151274963162053042751925866535092875019339114561599601705290841198500307661186357743126325297788391773548986668515327060342312250520708231116791518065747862824551317643344890611287182824541945899606325342122098986196159405164302548613458278963732788665313516271791994307735903849445564743968189859212636966695550216164578238386231460821560840569910889091125071657101695221118711074090283048288651311990810556973318982636722579142421492483270470974944417307034819824032208301111954994726912431121074427484255711688658731129181419675886902792810757071883536480838056718834456657558163653956166659756904971701016724077114424197229663859405971948766758052860218908836506303753595696762491880641916208128033452046598470096569946985643222827718119096916714007812001565994263495816310074940248872127494850674370354657880125269332394936789624779044141132082632833188830801158278618151157324668802196477518376040349031318283109673941623767105228506816039417170863254644594791748926466204088674791910104851589514594105390454587403120158269311261589149337449179694986657374501890685066758607069329503583672693294138144347403657157252859201685555615945656814488826907480444200094922335727418941745877534321292977707670297617216885451173241499116723170362273377862135277071945172333028392411862891822648045097115595853847304727641939448345575260103051748067396775418397287963159934891426672609002460735477475316448380499827745611591032385713181545303718483149830530399302551868040856774503078353875533794677474462396161020019297629598309428707729053605878703878335665338358643748734751145040971841501932891710463102965371851548509230067563063349622814780050671335076356735193416801902658727640324223846340977218464237668979419736319431730751567207777996112682155115598664243853451007911823220539388579123025549950179634844465533121336198674480963695944743933100872571514531122791546188628140564220699129834693732143695377484281273441758532692317151532342246410796314993827414747011175469156985463370137360050405630723344318547114505527998912567290568026796114902110543449546701491827660965171919515900912025756807786934886738785560087000057245961525991506754362744128673923414711960808166578157751759817695494291626795199297882442971068070740709438912768290689174436716964932740659225160718902052715900692722426086909414635596381976402078445074203074933778289840375121391067724543906798532328649045060725308689921872016602199286459261911142949247941113345056317086016136940419526763865750622134157783429177012857030430836897729424430214160655607224623704688732939835454777671574540143491547092521380529741681194428077960534198571315216549265235857143183424165130551814906689472426032398516008363931365704979666393931850298943760558952800464643386509617710077730336546968129468982982568447752867708631674519640443743371383368581853014192840433223455387030549604580298883661784246813642628323603165411545202810382923106373989629260060591514419989248128535219342558752300079462932630582327847305980125736042572435189861505345493414001796138912685635419003676287549044222998208792907521463769147642390498062051773451839868840824666857110665833104718766632039861698642659111107811860209847243365890905884066161740356970379387405666731976297776260117653716103539944509499169649675766119742652648308616235103320144076501753996989273125545518179302333400634444747541369536654302831002490898155772674487625012782337290535349738526896003162013323155062004468207882876231029384582212183146303679874359590113888096572061282913529386128894440412613786249523444947505596522332025294451178219959213450685005376828854182268925755038379227021597238339438802356299645228611865159708337354847758300479367795167296665015460073374857942090628714536197989521644515278123896008549304474999723527326166459556394237827368467163549782711923764146873558679232383866011968502756485321907126119594550807155777880316673872809293011782717732184143316464189615455905949020310410489810402181035843953532783346003089465890984842241887691859266206087483191259601664481433487910544974188336178488546745041161607253791979242163673679029621444986896599936507410296201840150382054116967699948182042235396986133805827176821779403526964221011545684931693938795336754128690261511751662387137298580732676193972222527454753866970752673450289485732768525762054172329890676078896130927973251609467315531961693986754136004985624618818375841192779430619619739527608721368764027867393209019547732531950627753141497449328513410636554723217809162434213045265895768151703767559732617294720268019865228837733909398890548586194319769944590376765650220824458681668009460384266511087867441189775627084479530669049615576695724295113767705222730835651704738768529725943369630353879731643761491966068427116154874795654400648762885160919170183968425252105944789805152692829719992433580577635328147140766030745147890622569590673183791483755754101163932776224839423706965008496142992177019249452880476896875723956645661335928241328131966507012170128491093318661614843081346627705881239426277675728345288909537567592354784153356987130358605432420599913420440791254395281165239118046555947771299759167099440269659589617684781164556084967877805019431930042744499129124736464481167952115415395716040749045035918258105826976912302329790848529007532060329597970141188733494298559180507787539949264337623700745263613418345499785910596208218374262596970732780302579549936543883632858622064558183405187115887532425032800479666658449887736429285861616231226881648795379600758546540346497015325904886471014630219449754795014759599112725757492329548813436030812758683636277533981907109164089213990282149374787403767966238961552439952287006486306631670863732481104478983863938642945196729573546981328522553689580059390889711630442801689851184963401231925841557299039694324039695542275688532398683875979093259713472782706566779567993985631507936814758352833804013809579730061782073323165988811171176998342749932488872746925053690448622963855702607900008762285201345998939386548358405007215340592234555042657523336912262334437297818983847796906145480180914058830840913510196028158888208177459261286028712675637366499743218598018933773670244011280105823474015976357432171921035303915442366438168845423016966164116537415612926550795067188034020803001317811454538169243377201327075030620442125687823916175103101391461221203616302795753226170875612187203475641644018753630084954579909358977007511102640130027403418039477852727971506948758108440184101469566222892963122839700732125182052072210888982615748545689763759066936009737097228474863061018793867709007748249433383446891298467428901030022729697524908198132409586581315363311000313163911448306305741937346374530174973944668554240570846769150007887122252043702124879644663953445599786371919052031940935151850673628503929189234716837040221539590666694950343606733986620725715882293836994579761629575254494347463105476645439400317505741379565057569696638479154269397577575425728320893041733747990573724844664177122420632724309929229866241232102997918625414934184526985585371311154273627549770129427108157425049052542146405413073808529813504540537878672653824672500297060287154864361298423258810613728466262987063843131590330643370172701204998867998340465205250317227528157324546648739704662196197616316675383077787527660805956263159901342766783336040255446661966507411512941370992915155345631308680740528798332412334707007702978419179414989515504169029235093381568798212750760369471774578854386617089625217414372245844278328835629543972463590285843778522588035079078696103497706453482293610730624849561824300195841706806125782483972763219514911374039226830913952426783194868432836555746555490254955545680135404114789673965261199900034295850761355376634102723357650178000622799323972784457877286155941398122082270896777005397288703090033575929965749755599813319038428490270685487145439978042470829018651451955174427321762033943243776698304221841213196539189720580108228884506928779404309140401549159377663149177744042972918836175020976622682550557059859460971415735922960895518170811695300629472344410724823436432649219615798001230636906318437753403635664811690870988515938300713442348952350021764365808989428296186688428760460254294239603312367887611430208636986733900570717211906073994670448345567478080489897525487808490742606107903512013306594186584806659017520786633524211826969889848815608090535561760650917895538914099088221278608351605628400469756637042404861318978193520061269923769685208049552682413386953726841533276270130333328453768657892163493530209925017648238741625564697922655502491886012844821787434983479368385961949670524356238580557420316323473062024000966748167978563799192408652627970103718627294495408352376788640546146931725017539070428899635029862079622062296621825765640229393216089368969928028984878235782476415777918384866256853420341086215404376215230262032498315871916939144233197420482666697346996695655367932179453235333435286544798393962351460246850665988490964741334545733781631094359841376644261353598997178435264722056602920893880486514266557639098204167634485706325613671257290520610700299263884607581640586730107981281899250526507182621192730919375503344528570583271662405160092926470995709720336180562614539216708533519950038151890306949160951702362009668177423597750850299863280173826760645641511473675927936458746464350170342234574278186824301582883312824575450996088841651205897696437810288641760651467642909605611767016794320830281683526770518589435743996118198066297632504850474211888328466088654900171843672511524559316351894379689458934903188090363679769156403188676626161623291182347138790077966313550920137759440406419257189150772371980616255913526632493031960159744783084213456906921621925924998744967102977345016837927007883161209269531714822581616664714868733402481244801514329689093192747251144415710615528060242516718265118851103308675666554997657004401577812156208751511963672088650101375099320482788845378046711176821072970461485622505422933027551495067702732328145775688601330206523496425547770894025798998813635959908148095430922371143332843401766761411360788750100485015943373685014978575469530312535723897619813897494235325924402612513672738612724612049836036255686775943817965767528957601043136396881448529743393920861503253663393283110940242995490729007180246092986895028513416672476427776530727455956898250158132678257503989683023851054459385491236624346765647753111932710302140789534155192645912010986675063701459014808515213784624510656634474893930610079538899115838728919376386772566783111206237457373894398893362591747715009467961203008221986075262421017106272803108044773277338165240803118387753540212220308329127646675765597602785056534811681481964053961861191291949980418561804236783694575145411188395433024942564847798798349631328182697185832316860119188071953899787873454479305908513101050396759352083438362034147819014118713868476372578535388451683249098831674385560764686708773537568517905667614536866515229352214794756385932739230190121953260515839544847423559328293431804921671446701548386748572997067780665551661870350203899439434282764578785938610375055204543446560933979377968505918761693703594544506127938651510586593704029495387467524580844949672254500487978460559784458362182127517455114711473990272472258997283768284350431343484538085179239125901912603753269754589973119461495342304294202249849411726001702925265272811946596759509764399593236319019060730095798996333957959847779429624386964281311052405909148942788865940656293688559584362706268237602949870181197304652944493023781630855988191425901085192295853100844009336009803562839381837518138393444638765199024167543637179343761198227322303054908268944031529646912183378624588610013808705211064775764461170804100581200307599208860742351943156187981050898574684941702137895795097271776994762279616559763943634651647721098475277670769662417079607248949639146064624868155199459410634624737671690255246570957431643522494577975236108976355424845863688183492993531126112752045606259437884711302970940757465687892229803854007715591336909098511292339777412063274766196917751213200600805968586947960848795368186356145524567102050714663264118712499532889542017861051061469408243409426088094589479483250895333676686941723643229078235135187247598673944360064841999384583135598586239899954655073680465481902842758946970681717740741650492449747570892173206317144965596178785069008143607535426153812053224172852274678395738441475365520237710751429990976541134738820217139500181766296101499512448998665670195269356263815408637733644009585101691935695578040190986044067873010358341508376838405024614048923672079406435469738046275031259612952046327689366714764661810074197901201818141263153583383590420685399056456631836034943676019499825709027823502999300664571109410689888187570370919274790786572603209507174306625603846595207034589943337862434333616055900554311977654059229837368559386816764924004837197276212461100435820335136600202443282643363726159075309781045650434185603499283939074417480751347331278979387905947796448263939369184283250771976424052234684712112502780253961288224573607230543013058206081148614040634015232009382824392649587705504293256020691448989654233862311577846794095648952619851725173491071195181384994412263112291280297406979003204055069110059209004208901410964061548153719499151273376697771751111372176748453293420603518334782696629805145261339665156171062487037210259744703486962635875893657541234969633115064405985695520138678348008398782934237247177771229923782333368787658712299977059624645719764439551932361500735694735529643551786002523307354500799114969198552293421905807815946585153611633664943007883320198197213182023601315364288165586993262401163194635283658344096197313826851688261742664285664365971255993361812198387170497962874651504019911881009811292726243627463455767996819442192793702405741891283545016838913411367548684202531499162364937233954621490089216898540158904858150997588664730423568689106953150485413707565302293294557573943670069410269139979550714770464850909499046353705804637999084643849473548772260027852204265890544869328125549661448661359009173299929719016957218934572640269911552690051324428353423624050411754141038123174581366107775720670170650771615037098381875542739290423285096885443457583163826794492203928229893783514476353833964689145092057985591298850072410070020735419542459801847953537217743208423074860103585369789171941833582171501744452029766707025832832487100663528814293563774430249248029806336814176150143925122595494221856967215432824378501097644465443289643142366706982742664369125522592455106347424166966757217472219287551003655106160435886897464848645269146651471417662521636871554841464134995041053437596021307673975753311769730014507128536746654894912068409025158555875993162286741013484097646702549361479215439201797256300225500244065142444381567002787368382784585265877777773631422559893773139232724090878027602295628937606062574353487567648237417132688937119698443435180637489768790441204629309606050254083203063735394887863248784035700707416274776316613830633703436383488300119170491194766063016116669173167521494530243118261659680195468237542535920030910224384826254126517324227397854548586508808490442217288141741975210652668656972487900952308737463260562133298027510845811334464461456139726681068924596607300433251640501059524960789798108779611629423715680015325004200794115163840676096489024366180622769566456502302152409425541312450849287188374667128429238141943170659366815004459731431735167389344416633415657174650119052430663099592714096224664262605444106229726900838295282941055833066506659339808643833776332971527189122360397565873903178044938715069169014586933582208696772798759140980242641964060878919090676862145967578382181446878894120923524071667564150126788814749969187521716239802548241341151662910387203788933074772076287579242015341548671215933937709944094838297928254255226268550298582806804536259897899447221054963197362438058413801948347485214345447783490378495717785497170628826039952881116800918704538371005784911423756914736900796452352203405067075642369823938425941176512157937288282652692466042964118963337467681366429006167090466598226148037715027874331757050911918113676057041981290054961520222178520802893681041917616236055356485284339149933439433128383843670449249803576165296560889710293611229913061963426067828090991183810158026792749913092377984571600087929665676465303361624074219718363232187566109641442488085640598989000708072023599351232549963862223651704976326378166732471025720754332040151255673048557870948637596689437046050404360400625707020173397473495037017299649528203105598850892640094430208316696586220067751699569541142691394138822076068323290813830014186385600403608314802420085837551658682771495169893205163508486449541193816547229230650538597637167680033442433806563647089339664629598797486129424183749394283026467071245916400575416521646525956388966399887974144043936289815498672539000350749710243988368768272212037811042249941697113459484314058388188301063229068109004993193263875636937919181196120092366394092484860909750400203921392202914067822353792789938104057021460764578647585539544515471399760904803117954685914706828422971222161259637694559457006285060397338934252974615370734933861575629383635647617847494228790512698387130753017842291151699046899363473381794321916650025322990392116739664554680143875541245247807261354872572643639412815319142975602410831648961296592165929434052816201944304897128962674451237178369105876559033056466829063905737628580157075431521186380713945674786507144072627823334918515687215846640847550866677143000892262014258414608257214515947797479383407296200640355303428124386215116874222220736483974980057320187991358449092854860062990954217690363045963022024118632901868242726745025311734133916494662632836165742609961137674653236498039976402107032732406944756484146790514695826966914134421745314757831830656828922903970989517768673207357076105850586354826944607017104598965046868574125923192118282402186310328145030267528934181413707102039695100255374302514727829904110585551309514496660843659161567241607094022325206697256744331231486252500488989370200867099587443726633042528484089167513539432272198643017478575943866611781286302670397390484191883053948943575850346770381865087995576821508090999938589839186969726400958782407821200753034264051743520818316633412586013922804393200215373298351118575921669186397533170317528426407296612524060951796341518777593802619157070204218845126908307063997955620634983544927436176230922768067784319563742982350771607349370316866671841269771195830963752577935545250439807993649102665651015272490163644142919576103204389402185844096784283963744204502205826891059843093577327307644464389504866154164541786975974428352831719203351635980510383935628105399063209878005942644109641213717634815932946211447806381470506294125490329722150352153617579951256011312848255635228440884567006647261597722809540080291197871246973604752019031200910557310502316908708822826512891801557685835527768630827478343190163324624070738841515874562205760306841605169847263159452876257440701006510298298318749242715116613087001039211953677534026330677803824285061266315135766910798796317528542268590810226233679317456107810186671884099371186559998677503674586957135262035162297992143817154569122396973728106883706767332475135088362539900451785957220946194698051715735716926263917832216922435667576085276883204953329268347633046359905285415902603884441156138037824027717499154232739152447352752104328580473797260394102834278718631895170608987989362814492516917287277913911094754396110059131329564692248390686578841336935398554263309790981969785918717470834294470379931223748701808966637175752271649365710338210291661594801344872215165565663266516730343751171278343622942875635204475978884631623654015920971270727319366900460999178117546127532140189146080679362846166368532652234239168493179012036523628768801090618336284454251532965832949043981984925063338890208369364629391973227585760827266221617304283537133501730327892053150304740879604074011948243367256278418131693413441639133011399700642762466971967122240365946270717458487333421144610017051145253812316671509534466982211838847440982913991690194760922290807114953674958655798037510386205555717788939562202437295550902070022006872621179174811501158740287411127795820194367375273737346553914139522018975496047062932174806782743463924164631861088379349450002681291063103213057658324255621401552692760556459761469253687552061599024193076962583887943127887082334243127453169328375697558323884675691559443554765492846920616329215283369027240910006756352758454995559821392264312080808036908886159580479942275153857048793976708100658705185051922046558257230646053536694741009840226919616326962627071099525736850272994093116849143455842179359036880503407406592556046083720932550961418866851590408483368049094638122419717290591167783550606391239311286071219731413560868919557877211004402540290034960008045642972640159831915101551620849168158208373399870998801611698046342671499340618194916748948434544712247000430021825495605931449055797389731490052734332109070180597647872632589388270719883180458139415514589003825991589617185238616819257662463792557663491493733065927833092879650695828953797608919887464699431199313507248250654471876473386248915423071215161450550290857204948859609566232232118355514733406557270280619699513449133178934705298139054458961112642184667463593928300815773396180513832162997972725191558660070361735916771604953871024727860200813078736119753587398045671488623557915706248279336178750393071178429574481694552217806601202905973829427585990923991955426145766467735983369255447041261178977405081984053162148127152348818608397689755096109658888047916727472849790849807672279351230255634791084136355057325495774531507812192595898301614055730778799757215296985332748263521944414441132240303841365274757348556365185992971464600529448163072532802381710394502405279033350599355658820687956029909954804730672807769776778357364589659287196411638188382133093053494863402203780004350175762356066834773575788775178277333051171180692915369522876235118084842776092103285216013185235711761991220442343307246090916332936777081587281110639184817295367363148046597694589904172747789470481011932515147950664706285962996942725606069242361910671589191593648844766720229624790110409881624426950935776994567694832939049580500997655499850581474119523556110358511412484987918790121682777715803965896445235713671967590704789176522436687738806561943927619346359321406836357174725290290714529721582883015931482161883562641226621315508125323407738782364057399904195872427472815270104133833561143675444954357855108774343244029964625201924224305710115666104949328989928356602902315322602903204495402626325463024813848949952625658815983443526316027918786758144135142174512567235126005446302565250974263430953310399203602967363545495020865728837323613674097983943434832962114341039896946150281131408739072709318529820605936210047607647933142792543909547043745933659200310990107054328941989085480312819445386334310188155334835052510867297098947427168558586759896781622761693511735231518897897013374088891201315131987061911512782971175869950310571387562907639020124387719774150189947368314326981132233425614153791912767025694458307717217575720297369503511432558673787447626166426663954198139276069316430282597907670299202635932204283929480922063187532970730846436182646516877788279656037542937660234813337870586536341766010478679538135984410553605625630004869213838541802013852610887200964940823953096958465419692079852280442056628913170849335046325316599119833794821150521557326510158460778271680371138706738938249078608675061366533225053756101296960517588912838528307447217312822784514606298763576577487880641399587685295797748260730233491820698235491682156008665606161328957741168896993624611042227346762499772829151965687072660262092891577364369972580308414307179675526651389573376831301539448538539270885335171326195787180474613623376816380628013901054938079628100218694392448818547538428478903909398382864822299179685152197253544483786257775834250661252575892268921683742941288071692301850227573081599259138014430044199137221880609459718050179994663613644865875614651296178665973517253302305019924320843209433319956993950299604099324874425190397738257835195179217665494344576701701441705535304138269316411966110267297551110395735264887504620437047580955378072780911423868215066888100703987464775030023596829329372681963719347947605252720861870379505410818378197174672470760868564135084174378752615884500720273707142315834075339460894495317013409256415445268528363372561356963079779476414544050952861182470697299657677336749968678046036539290882880164478817724738231403721330251086531086510817800862089632666354791939426091516417034064726191287443730362841704619360567234349222295747893560821620367385895285152270090154364378500572441790404636075884006491899287118985838648037862770305126718735196435942238250963253200931364847510775346367343778504975342209720110751901976036197263064061045476723151436177920225395411553809123559301263751078666611527986358201892735119038493560861067715019914173929045780703199733664302486808836267249440397308413916715944185246314241073311209505694657068045252106214316603884227023142664051010648268215445691573184963572606393770957212480604811934826538101710293416699859005152581335114986171234041543276906551692954846367310099871303522414825624365980945700719568957124451525809814998970470184923315392935024710266951035896173499618883626892449829528006622101204837591891366416682795182269580685427126006802995522567983469070982648818326371320827310012685856840079142248271484323170019022561380229182549993527119278225774202444947848683275361889941284548505939519381402762123746211679943031727301610164657867864312341267696886817545415772794971759512546982552372004514681203042067101668396095711222309905943253033780690568228439156522826300793333649901788152788428475046960780954497587687392362437814088144872284115333055833242685948897628408828600992880577811880993532640567734152646401260696303831079227967344570636556474740275531049084101878504853990122586953958629151078031619153285338584054720747266090904622909301751988446389157815943165595817037095393894955526420548719428777880944557602455223285214101084337366928102338513798499906443777249080035392419210180078980177473036805540853491331679046602309895710932086248632566221533507150469617933162243806277533174426621135197240884525225808064998213855831989201615130881170520091612746618129547293612539302820722695241582563697473186917995592793888312088117439785054923232549658970391927744728940071545527381165007903358769108292306845341845914475374748354659971624977569332805956323984308410892953213388394888569239706212637858613934376891010675236028127130628046942047800625942122285478942857391357413705863589135254525476151854806511386008335114296875913633633125799145095293916388925361711781481749712731180162283460727067841634722374380815380847886855514470287789992384133410273971806132133196313883662687753482063231806190872034218311638699947261014264559101877047153140215023805247049565947689584552044442720226128283702028867101807642900224866270935724376190939340349073782376697032196913208036087763794218692267687228655990915666991008548793034587447140544495302162267162701791933541561994805018535360020826338993111247039586406263995573205563542207850553189685186834447460792670156787841230643564451624275427440915794633130035376028285937077893071652494108894824891099675815005924829284090519484236003663760825238578278442953720618719847629361869294325829288923080162987581977854699865103813832991012580010234138204999405004962621901659705808956666486852746683559980079995203322183713949496922529814759548787860735150656739491697159881724882045749738604909011082508693249074574093079158926111970614828803875364659517003492366915242531819254346196062765283286887960966337132293543022370314355048747349279239892243206401015878769950271835464843663874727708402955515989871953978767145373232527912320928492034272302292693896152390523753374535592051511009419635615378935544252926815239424539710428509289589127822621544229662668243809942704948653308695761791047517775757279474123899419389223276953867084273730700341953422459526607059639099401517418380301530492695164407965655840200097374146897589774382793522094627583439089461833712115850945679517281919013546760636843821288303664631158592131358462247446945685408897527479516270553896277618237375491584539939941485734225773983367453925193571504734739006733284083447488605955902979413637513884956771921305808596853094833208843186150512883839714436945467476164502045115473711881754296468844041426648600204482630300047175471501932379693457807474242982065839087184732302705987343549811732100432408137964218587793132496632835728383348204424818421212186483435547809416837941680927213977344891394066332991923504118247185875480482348290269131365102240854994428456015223709072113278491104503212665632670471365398294694993553281128887810444340521490574585295145624686187802338315260198471184502788104620237044780497581541510114058361756235444688145413475361975920833272733197326460197392297983425664407697195224629314629625666452193486686629053667726804307986003609325739134466669751165271619039443967019619825032065322048782707697962542952209758272414195293390046178492239514806287343504937869019178667779248787771244216537920515969262026608648715767020704884894386731380037826776131345749235883344295731734703993330627237750554991058810149002056200329538578393982643257011804102633605997482122899344011734591156620111610694289538772805329238934813975586213816283094674543409410984811800499537909725137492889684063662074934289650535209238619052456548291953710362689985743440849310277930628431507368472306092462445020863044241897353673020954587724368962239534536361300027542988137624997772940870700581070179717150122889149159061473970869377425879119860080125129828011753143134460336533382135630342946079439221096208742940978579212226605427403108939386482609369352259975028612618464589200179373211851180107050695972859992295940809459120237836953176534953841421036972296594350885350215883434648412292259576528691462312608121412033520959291860981665427328242886207683206112207112762314069241236208501654218091792377537389444595569559537973698268133055585750367266631955720765456754754020488650618089002170829077174906116825126515268355160949929107747275490756726087862506778872423903822620695395874211393504907216922070640059763950168615429405925120088141931911509155416733394631250765779331657479334036827271183273434098168660625559013286482339149809837725123159956848931428352495775968848083128619685816833304574748280718435814901463384832889696578007307403333039110888006955003929034379899367478455845482692656149384770486712407627151276041544676340576992799692104564345870256903447378581433765605195992859251181698186708905244221900961049817541165494927436402048707428744447167732263373703586011302505147732062904175879856379007341800188091352230786248832895877181416375264414438285593162722574201274411997801939648426461562587233377852255343756636966862235603504381194551207420921877531367317799036577442257263983632791362091973942021138142760705047631457180349880558806347879616715623820982764082585427648471087018608219522472147875795031752699771134130712446320251685896083679242369012317523220154730267426075750671339915037217213682197755630841370244062819388976621431599422701866809031160838623897676090335248497437305605525344671238228793252202080649687848003088661659325042129382802532755163023619258029189391009834055269530790048660019199223105450057357213428231951680162535602845952597598029887867705062822661448974593747011758077797025643625333269627538298620219657705409066154722632783077587151378243972218459732812123877921883951984591335948055353018141959951856382506644741197930682725689944789235781315853627131836263490923191993568884884474317747308042827773081972060932006962383077176004773015253233236253046048088202283425051803506723442460524560108863723610157984142525921672140111954418707618651984888346771866077059326584507676426953377255746996531786313208032562575537851643825014543750275313934587844330199565764737232265146125899529844274219594406437555045052648934926649858144829849977429839557666029937522814350526178401358950735506716542411429920040438911564216852498925017760715148426975622920735694468918999311728514077217971514048806206131673909935392856126255566891481010737246279877558238925264233752928397979934564421263123887302327616562756455035960609309539150339772787855603142464128335799651404893959018878224916248890154723428857213133544875504854642878035413001972460758543157041364029095281556056062330477114635679793499543568283801171629329088530688052811238332792276042386255202873788256498850896242301032430018367643454661757772566559138896529187392210436304223547600096891181798455563357876265651268361106071650583276833250490755794742140649853274884376038737839515783280518481471241220763914570395558546247959776957727250398904353869972212741178673365238460996848992185278504321606064740669698384807535443122503625356580767292081867966394090956256911865764240082922322524476817354131954346982799237173630595424959937110097112915343650909593741052308060759625387049094857496242929446542215615031215099203174939977968755491965871241866399530075675013198179416511766467898670075201691242554131866551007469742373790324968808779395019634348469703590675396681979400283588565512900375287190092805301752165342607562295378721273329681961107251014117812543800261981160603076071603965656540443118803563465329650488114778906782203522785036739490723052131166150964286158681253805710957454804411954257399118534378243076204382018974028109885996620652273810650505033184961541461430625417197691987230376610834266297901993664026644251968701436788602445306320782807877526038619084285895956073179446223773488843906975133599262719500754584670059238737635477487643017846138909802867687976268351172727345120107223617814145281903156716735555567524455663043467215439978316273999768908798326787311626256882687607648190753021166013896998732883428582163300002639855149690754490588871207407080542676627871185456780447916484348795051704130160714073940883340540072627441100112634456719365495908577867867631792164958598331111446063790951875368167133546743333987615103274481117543941700106508253963629399700020401918696915837942644548124613726212859989666225188248861258408294465466012116373691602220201660952518748529654202405683626375070277512839413205830852013459159435901096347977741173908871638912755459512943488543517168735207323075736466282578384726899722320924611490620036614827406005191979513355277233993159676652127592660122469906400094936261123029330776593633834511659161368386961035059281835559109539654834145886218285462396390371275921933440168527140345032528945983540939356542457782088433197129841261473505073578591237079954930463948180160185350959618746762662031292804163316444752391805549289504340415180855652674281549167597172135131621910447379834379285513192320298943198324107510712742550607988166802156173129595826411579644461877160786140558596823341676131683172436540730793221024394804962788979872593211483049346082954608845569925678566966671109670741953896022233708818654222889400201150529776253323717854286768598671826883717427154919321692594997953660784049443758562187518863938013884990253524859151127244814489436128602554132381796864019035669122891813972033675009921164755263611220274533959748927030301950974788536697069291078729960526361957937339621102556795911412232829002314020520587846099488275219532794149644972060305508673278584985976945996781203634540051898402300300026827473359648582280095845000470850062667903209625284792604935650880301336269264650720659903426153659594233636264905693398537625136388520799739911103131994448602308379047318721168045336552578017336857661301251255156984769702018564339453750219699580286513383809937584880787013569718458304264676052619877696218813472591346793219739671595633090942555259261372522072843342147700721542388601337200659502518878617216397439481246040933863048419314922012881879743961655947411780695153833995491005377615956519582139067051689732587793337942998996296107513994934012759628324966291411654282914878067666295302616520265873560639676926902206456956283581799053878437623048832650854232059514708834141001146546640722416275087960850136111499951977389780201864718118533029034643371886990039413938131397611496649429910356589426823443310127844438304725009112929994853961026566957299504472111373611589323134869782716382360143998289891706208143765792346711894402771506974499004954855756417346821779214472866639057216259404074827619882274211613577310339562104139860253280325048463051175781836978109484663188227691863245868471608918576270532113879228828330967520874813024187241761496219175409143384550253249519063274479268493139287875568617338589818940903893349227442201501819953030047768611670142222185514717454955628455854105202789018325282359385972543025127501383639421343742193414506148542414564380782983163501840766223929643749151535683134626303618896471701988150382975856711315086068159647223966785378653174981205723419312492100958817805958761405915589620314662742120702343485448653019042418538045445748774902529847270003065339876264584886166298792076643299390892959564037315288950602716773533638914526853266870159449024948891267018641617620069788662437496717634425652227362913653391783545563166723602906499286781221817830273529334747512550497214277314050534615337269233927119159249985202774617806500767269131957902224754170393555507700178220460091228899463453999902132741118431024470021624538863976905392715245307437205127549650384417407108528655428195165745414566819188669680511741998039898251211296565034689546155628299638027601027954084135938317537923695619427802913762536721201257977971196481712616295970254285834584707684836742548664228946355225366178197739338487026472358062948482649869006048908475718635411734536390053737521614260921922804903472514233367113714790654459705337823146423089271745426632159065669826745046346122127206653467903352961461769651818590272938504398096468664096443549557676976743169575217589627403805082218796031012034574814467393703605797878147631288547696349811807329282641540387296057509682127897665742128271069190598225939912607351369183758193812463546220213945565188403838277738289072961581833152216712872089284248869437190312190960306391225657714868729651461299548490145768097461220907521231199701462951963207091599746630908771192533245494173719803577323287817295036475426370296066284979240461921582828829299544048542074344519042677569086058674807657334498349758453060252393656164125776743081888546764826387600340280836380855118103074186980936581330916446088609477864526565267146542728918936483516447453305232961455442178685841902677743171890589544147034528915419607769166012601875489097731292761748906092061448003266633954027234906704257313452195615624689726145147264593135708246996857503495706154609341091595838068344762905084527012079071075995947040476044311876249848607769548210406345673036095415282696828832728893353295491217310686587462907701452236280739714006445605457658156488205377685670112289050817138622876535271640794705143872269400283744388669132645585627320957481490358811064084782100745628805766349464487379708696856580578088268876180859948227897886733305779085657481793597761841694658907551506036358419099164635362239477434872507418136025015655459850784973884453695454398910772067879998694749186090300357898452788464882875172931881558878934737154795521560010500902063518262917829955813133929717756232790312178183798643298257813542544228108727438714279090899128423989722847799362005864163355912100283324740356624627104558279351672549243670294536440304585305085148739560848569365703580888677075221754188555023062951656205360006359052707550054049886208389190791048544840480030392668207918186809963083503643963550748287221693580105416937000600391270172999045047441649658867306154403895865918130011365524165119380886728915384787562434924103755751654478778357206518535756208381669343407381703426843249720520529718477366523773879089257442108488718771767966546661351619429931660676578490147208772813701044924991173350936573190984362632185875743192889975299358062985950915598328528131325188597126360254501725851292999711465187950564767689868559344734353087966796927071081389284177106082973256960706255701102783458916807740715243591195278474478012320178378629219365684876244544771573422934970014548677806195307811964897043488242206278329168946816941311949836771584303499897039406121673973511660271395063465888746188522842902821709036943523932346200294070188877398115262232560595830938224277366935943519110681086097960391222134651498804860321916881765506418009383870174925726082369099827533929730299268813866969798059666278545801167792458345711697554533358898359243680753936089456559793941519576298344394603692501386148910463154795135090343238466411033314926379754918516573816503967832858068136334403825433074235334078374868501046690051966774009149512963985003302975111176314105371025605901485449014000816637109486968646293855572734310475400858672385987638399846867762817956894009209342557471040901303672090953344801259126655128932880400708518501220973690817895373665739207271095468414393553354198804354521554029565735634676726514523977025581243576145701948298099730570651493386879151183354431596097002803789020169940742214043326609332425876799201635601544894080524389191232422380297097628223777005006501300998379163268232637645194510501357425904057301769905734851719140667064440791140821602694813323811677478936392714351986802636390174254691993883518056306317132734686995108726523542134064577407755865137879949291432627838608854173274306968351856685828676390120226569320813312485258735684141637654376656653463810440670065925583969763597188236495203346423933904899326891524914986436733326800916339071823992242262686860161152483308033605178503455847714611919849603293163889070168563445321207547720935809058209218008130201817901555242099418661715571298015372256110154097339496735877213624055372331359960088682703242833561629138638053279531055254611889401585309160271949724164243620415446731781799999105940375037500443748884880718366158440777068525853438643753344431802616433937608467843295850090501126935057021432347591992397925812907690637047590252078193379118471139844464784147997675510550349700213764627398731855286896452477611524174844456934576385704771505912655733146726126683663569188382527253717748088479926358589054219445643738051836837049438385406985553556372414386630610183168984801187455845528594146232168968984690274442289753532238151187171438094438458911637217596999042302913561225464316726804820723848982236528533170000533383833347641891103993207744649611500790091610953411580725933073099292946549477830599945442125679540018668325753914588450258760909407069608540054913288976983910294926678028853960547118389850429389574663802787646335481164802973447177422537037565331293498525975721616262157735986341776797789014648610445464882351486595734776609410953328957625124807217674372931070741249937050520801696464456163551265731104667869829400698761080698166638407783023399773231666560261680043799686629963639724468334791090462651844453980745692681944863598718763313475380330515933281838347108975053169945700104165272137415348053975566650799157174797679335246737900319065376209209276051490830019078054082138549873578010003120601743334674043289151848083619572026115381153334727225657446629072700164748194639731892855555312980165607721323402615973978131286967495838068122136649532478290391260207153124830783085047515385400834263064413628187006855164724317633891262138545667741859306679141181859432094893521385321351636158567602142170982460780607996720713505435509679944716723846768126920177849060326802435287412006027362536457501464771106550782956686137315183872017806860524999991822868380722693517034788336195676361596662749399868789710443067387019400532528246270234514780522954988167082614751735106488661123244308028355754792476211521000625342307684720827263827079471232480684262645776479508979370311701558491064347095851610623934019490352397762523871295358899906148463202552778461597502115980267096832964015028924462685494923019627238065380563776905431542348282211893755109163524281731085161600296101063092228088007203687122252541915216062954808918861159533484669273559211834371162078712360525172598572595342642467234284336891058114107576585669757691846697256837679082798755995472683855285131511249965982031379504328514847574920915039869522248889638838747760496237174394215336658992391987872362841803794086962650794883600743863705345649546887393958217877944175557317558056300035746976914817808393362354530807409608764166444782740617089983097913136872117050480057288816917083345617931500631528892308769251085378088602477298962813250524422698415383938845439087621703003045444243724413624943564803340009021945933253436247480366963896098959983380190392083943731221614377460235681466714978740771807900584407236213799795683962586725472491105895381559127654163181426585630070248496818701387962853270696073856873545942383065901418016973388179214375524015303407918922882698579367017566724307312197986670870108593467777550038787659943177631624098686360786424725549874282596929395042397462210238867529161270710941196646665823234958986666716670212690027113863830702536276636337555750571420384494304211996347992225970715164578496247654632565716176283594985355458079007081902487325974770706854896455829025453244612342635578953548032161567212964979043285575661638410722454458563899713209473578862050401649584997015407097130007650724997175767678964123657633655007382550969943565176908247631335543638498668109865008499274501219102072908233036375259548122268505113239909911709023757273337895998532552056343827826577830688680338418501303361879814463579182411896793423225640832202775192167102310530060163711283590289232105723226785419296723751700472051995607281912826529525093479824706669776134922713746859304038391599540433044848748155176022653802516569927081835235173929971246842977921031092313280548624672412537158589567563334962605952797003544468955346227660035328014922899687833580837901168166142277687251280313668644570736148209146665470354421964968993037991567527283014850035738575500289518739520443539526231518870497292209379810402754370805654841215912819898083173919830865237983938832080456449311267738659121781404523892191188005984425158603848104437921826353379750028992529022883257523732785202092411481730474599649319066177063711688467677234482507813113887543663777771546770002260029260997044965212091628853320863473041500801986315120913558800571954580445961898455974744986657505275320983128487944489935535968577212760804864400295866937223452080266256672593692260688640408207186499645914294507026669118897419608438799285381330203643301185806414397929977574925431895901206279481636575185402639816764002475029552114471684847152875475354727084858374243341190348958757309692978956131601372893767103561612656889438853164646278677141279392379795009064032071570356290173024922608581170584188204548367702821527497540211395371511797169546793118000902767869790456560770997685743781373933428593505624497198150691563886748008584182089074754354346009987121255669679426969631049137134509054272782598332123149643582719356630841109805234641337707769958249230923383878537854654586951546018404069210146152092804164265603038267699178079794011326859272349544964461988414915153065414436882454284840777128834933247385186904429264684858372762825415800897475739420861119786177130922566902944486698923251790771410214344127495303237802897064718850666852440110654196277368969455487373081479215166763828471780987724799907698954251961749006811430931243725529133530465510806700283976867035141371866530955725668581721870512796693089184400445887858332766180126164733840577173801208528869497843366462494820200044634027875319802885885285547709137950592934840243872915092876204921409496499588537797506515366072147643172268825364009393659370829983042191205571818340676841034006478026224108297135255073317492370034432288258425577575698164946623535047721796160967677870518307046820698737057429972270043612148634806246627796025067749769489730651908754398977872689955581863306184892344974574434888025241459239254424128692313954742926994188016778009660131816629071408851106485991433561111223978937867422378181773197227010284207005993145504332424553995268358224937822241338724258302173965548187266525323466090443231801186215565002443614477690358406796943190656217312329690510921204562304354898475746939907110930528952272380732109128380909855575935130801597258857947249159506933925715988255093004014116496116708699463001703197430131724502483906762400015036430965357374268457371576113071955464693594133605783596462371622775517431424494571510940409543186362874076072731585578915213520233570772264615134031112475855275182894863603325945722341769659868285530707064893815488833823572770357698492566347005842734786453574243054239325579391219378078938371310190411848876857140878668261585752520090236410444291442038762641213132820562065216127594089148491211714994392347979485420032083144899124757528390836843723290250299452220962521168224351920877152675638442445651480355112979786349849521840424649343887751053050757624279791141071565590059093785249990863715509784433878060482364476190840885730004660120533546313328418516810590713113406282969220968184621391530621984058533792477927202856029719410612943269005979726670937197096938565603440303092731212209123183361030624642253431295010474730784205808210669819900599371810684724376806972472477950243682121212985228968265204964921480162433646253785212142573411187316114816120263556812444691898338948788892764008897997581156042570203503833173655793108841022840237489803193327316508197034618375600078280108309386312711808386729444993543451448200434725049978837757265274741424882180048929663285492378336564377960262348474249116507439992385371822156497783877335270504160573229776932115071000672605820467364148403096819777679462976599046098885385754620488251624878569196506438824283629426014434532345075825894394009046105251556184796526633733110789111251356305000960107009584162494028960692875213749995421329331805751177954312371835955769349307081737219644218007621020513657329373950911548391646897010031447910973801486460172072651740904515649608138128391270098594980521849186618314567815190394468341406437638195214209523334883914915561135739721180671568478794067179545895559616875912993719274892802918654783069479595404931376335800468108320006774027523180142743205572692225930067929910256076318581774892033670089211617704875404993870585261799507334469883542107947618804704637827742562763814769957486302896927954077746347045868313387604192755999576616736427395207538006488205769229579070328144122725256724578097666519069671338050698548563005512164064054793165470097075851957124592031975996887373948982820530399417134960840572508377241007840110567294480753688734057147488072054953300135362197584150960560049609714196164850542588112381942919504602631556637496080344891150043620554231460977964906311450963444378868526445184183665013489989317734917248220560540062254043469876451751036887127237221516533059424783559791995997778146490525640013250209722594998221109997670618324687374904436508243515234223459524902328331171085216222027983736503358313671371680353148832762793773521867289748676153196911553475163082521437584265091461240592912030091968897445002644673781943707355560195447763932945761427784970269504486600300324541540969768639384358712286825144443785391305955459920184198559701593947347761365034772038107649370597711142470121697173658777700054807565549140598758725674140113870536608887172070877155193733997298287377410742503855975194836638819092245672120235775325596883315163293555880440678848904594456611534067577425503260050785615694680604765204629786948981802431537328171861256897175691555699138544393776031405824974726898689005104466452057751731082957789601534348521327788639912004921440045541159413992575450052505712598877340864316130414893616231218308941729871488541223887829286472153038459322247149652939829108086714091906479741363920473521894726066404475262046802148892001231816798177506290458207662599157083200722466383940346730833315366667631499771855167922327795877903174486043921795117736065865914008078264741504056717095616009582646118350754719195732022555417118359824985796135540879166789968708992052833732255374037758004720008799803927354949713735962244509637979987200282092072417669800672503670774927764000080410607626194315069535003003887839047965884097414178712770074201865675962851907278450089604456243972833510719138096063893217197546484866110439276654411110464329652955364704577310982787824249701951498241559093431233724988655806007585738087162669998744920970073572395384820838869035919156238919912228563334385726141370427690008708186554773458587044495328331183832382866906477139338151457847986417200360273442757298729996787310408579394956840414176660323664102151972817355026824320225688422738756271937190063741440342626974215685395466021581367653595278850800836397110332414119661660574895106735069083839899450994106169943035909682769018053507612353138352960513645923451099694602435075487444324281880250286047032434898767940661900554490074288195100262581641078461957914802051095599208004411243643236287190749309255719493234648214463354734268246728648233788894292438680898585929924762694767175630304845334803863616877894313781432292679787298549892620694088070697607599900627727341490374140190038337204009613664707975011383518844654178566466208223013735795102768066365169814749496794388342412488559652643893558048719821628460319354893238040039007944251331878623464858524116225353143847341217480976086891184171206202515677511592998265248573238807790800523400675340000899455442110213631292147427929345514402522336240827851518882782445375619326678297055658903714667024365234062480865923396252789844423871267010412689742721924683265662756480301664184069141781015625790295011931408591481425229578534944620889007247249359876267328305020365540834761022252572986332941985742100185106993804457140469252564785128803448992435758135751247020245518684730596286619858138091764061670954497476471194248189090455931220288466488727245207535640384254308625572531481472016137736316675359604687722604298501532943710596573867292205921388953826365892683858155321928838613669987244640963916051741901831208865438406639924730359599260915281532707042233160874157203034012071348791440573709271791315296260721773435170586499742288846923989127428243455810519409769040373814100147084652747268505760321804052543377970572563563193452638074930037153449754155338906685960562143134895400504569562103175482552787059996750074591523774178740410967950263630016053315327732697802803939629888089238722584631630766107402873344930144906256823657733260626219942472259911805663335814121657920715680081548794806297893744726801200062115449640433205169284905979641652276117820829847967413224348765729954597783048421670829004174600047215268291832960894023783454708048433400668133661999945930690829048796268490379707646740242509319549298454047356049583140060636002110270921215774074215212355386063307446171664485966084294949932080154813515080720148318711172029535684091183566986362420655590517100745572454737012812604469291193277561262956889496380581408463105023833411122137546458772241164672873978222709101199010923927609878692285579828025401754272331362949115858481328978062140369687329072753343769272231769636956993149769163273306365978981040474794259544823484700518341141624344654303505420127514440135656154750810469993080300790218846603358121876523326682318548099779643062408992774257325235519032012583896457391492565801282309325992971626469592826643315252047496079724184484232131944050096609461351337964781721180663664516832119337444151520899574095959012787777178530630226196619838095122150503164112825311838865016829312167665187426647007521614907421315033854088837458283968380595591647389614453220321323991742333186433540246286822812778557168513106750581680692149269726780984823646137418369874864862237624921501433076697917532070174842182660887030020467755963153071809460111849080709051484728929215136244714599645591827450193312373868841091894729009938203585582199987032367768486907635173896984900956506885822865313033462240454729632495303020849457046540107647742004137390791842068429985372139826433399685161855065555147036503829437625179919658541246587327953349407199992622524529408966381886010671148931019121965403708077170844932061492874844720414588864348183777362051419884618260682035157832995086588727301870507013807194303800137284100468109507812285229968486003942300389037964917748541143593438581253718660795289310108479519845844717906637954815584238835939795133439781345654000886144866833006320821029565556513394763216706897372017276145396022498724387047898069262146258165243350213463785027795832475938059421863797999614102219881508941312874212597546684167511647118890251733585073628949465737623209441947709887212428012678386876669727084944380172094446146318819401695178619803112771079583751455600767644702002263903231483536168365897164572868428595574431694603811654467337414450633535910238155351930791628163335790590328801920754633934739811858093522761921538970527269810715226796186629200028950723114100522235128070373344155206981352664313195006026607534351287803166838653834613015147125785546132155334418019102892994312373033121301062272170779594401840437999739718784734237890094978714326461956133468623316608636568064890163219465919519447333753623344193692390404862330636559741668476949650924614869982514133998307016908891586327900153817699841291698386668764965659824775077791820769610310492411133099874088723627953329208292379346864176057053957520102517994246568287360231342477124985713908811704643071930780081714879539181807177150568127172896111992497628725256367098213012915435777544859033941357339181189507276867731585833639747465120463010729330544480953618391736929794645205730676581249680189428109702191272977024001867301036409199999992731208542095620719919866451355198566601725567107150396372874654610912054054338656071520098090433278761200202417329789309839684032963437372837947021118317845464218006017132498759006544830254382989021176742221985555699358432622376098050265376228721767583158780599295890455136014171333024423082917503873178878877467150624654728911642149125629783173131626118067922811991037983653465495633891796671808174139551906985147953508810922186000627383060324261240889661382968194485502905511899223491711608613116700849553672449610852941088525850204201332854656100534360733339562230062827901209577862922103082164973125490106288846207683522609701828867696659265932106821159170455168903857984261885476465537443461877897202549575141496362106061854187030891811615957449093458194254252173142532075213901756821316578500658926194766589922499270634415753649884834510042443823560093838850731174424826917675687491688357964576020438128961989830047892432301147649686093295474953217952358353490763612907391661381059695303177471296613378302089466401958443400348591061360024514842796738893201385420370148285520429512068661985262493718258221108356595221184851733934880203923280115203434604553730924829476214779505258929510987094026635370262654088574768663089969556504513002327301713425583380540261254800549483763812811442303626245319474122457001973279170587564390220234485246907186067853951542750047878121565320745209193687455580829260876856730960883825771841731391941140988625871219061252168663275196660847776416548619873565833681937917748938663411211549368198296084306106212526735730992467468486995945784485740778498639779012100155352217394460235776148112981634044693694226389553007109613705454579635552004791269808512954635576863803264428592669340090978512920542691213504874149232534006101529798457393765283139659128519938058403201571836687710949937014099820632127416532860370479956807652927225594957326132647596939841188895293732491560571478668191948168361812058912249132396462060789341061860996357508238086332813467007608305995794777257586456094187064036501422041767982533107794990862104340927433964090677102302522883076194421643677804987199514296546584555190905646280096873184519413087616268060681944838340457628507634678195288243179178279836450687623342221866539648770466899164289066217050013619085808585555449798241415569154863599430537839135266745560617816161448369135178117554324787995480586508954109712151938922867497811605832467288839168494971690259513492043134985199502505154150068196998888227917586974946189103719791633237982444972634515228689980285622358373544192565358149044959874888684855837711420633702338225154113712622610972264828676907865937646497111191388113758706065935165321843360583620862230464763819067387507955229450058009445589024407549618407932214012232316540916975720858922578901160254122738188514242001082370848566954419518239163699985801346443886493116052291858686968026595854797839659950899422096259391058321939928321976673358162339659099709093463295676352224413064568809932574494122119890539982133048103967459240888560354969450092477939494081364765218096440151285986531126839933871045435898864653099247301242528653083924689611767787888131547604592765203939622462392140483584550595392042142793084341534765099149198206850556401707207839172635223573712006442060006327713837582349053858712597712353612989904199675988766915729193609987511641593590021476161445321567894792914165142235358308174498323095884284178066824898091264302309518776473242699097734169049213636859686566078232518940763122389015020033201741807747092303590929803391481997638521390194247634589066915375851393217563047123320760570786273833044234489901010736076614570482914212343115493306456135551902074401879011840025155552274679363986983925279004619316040209436835135391645800926806973001677519700384229514392292532134169096778673096073886754538469564424955341252683514413024804859620104091434222416026274918797928448681936984225520627967738453716961788046607557767397135327921242532125001929498101703291737461085125764387685584812263439829251078127785813233808300838615365983196089656015920962266354840438230946973148190453041402776572176643200650510463266157514236905701861663626186622864932786286997328624369550819946016709703457736113558912959898464985990673623620819714571875891862980447693729700162995941592607991863948620911485010621979677160084763034060757896020822990287867285991662286217138070299080050574600017963740316864306517254213074443624868687736642324057036527555644275367496551641879762246370090669318620299528010915576038476306955520600579295873437197940374895556097688981753815300758660828153140674591550468039763821506757658930099909533551949681808547420966131535846984849702238825099904806497837483571950603745519182728536344787910009365363201079850073276336790929547910859945547930095622510939030395560209724359816451670629553228063769388274875443173495201126880067419557890694591986147917517977763585748218072635540541097038745256240279258488999786619533289797493972204546570849192619824988448779117001797475293529416671475881358435266171669372280509148879331594355728884056571254555029299094432035206378765590212722219335728782308546931992538679200421366117794929669821244052146168477921279091920940525739324552832672309096571712137699397687746242129112378345040922966167494922885046636461100479690559803390526119608991056177238424982853781035457162590852635623162261489290873098260148243950732934353268386004663597483261899506751070796496146195970996010622011622302166339721621250671628872869445702756852711835067739125323649599929688957722824458264808278154604147969084998220203930790429232232896859471118232189014501859698643776847035726003974472966448072140595141704254331288596760760622626877867475847365800848561466697746685978119927786493872834111860870454727198575118788064616490326394520841347726034651849025867001953904332650650373086654782239884906131429986975842207221380658288791704682324726586162799002167032392793516885312369542880806074910161836019922859091208991356874072674187644571672452857600888177786402129547158491137647548471736948807044728760779937445672175341682868536860859956668973248440293608872127387991963397903898340453011207319907707952190861334523027717611337697700868333389409956843087190595489363815447942838781173860094987954286005788062720516256740054450128160766593317755404600382164320725888504849271850920858457945598253394478711018778872265702543396442632330422906395707795190905184172057903503064089920304701125322505555378997212066319828181022991268834968933979451581983488694984548418725820611625542780191195156813751724737259335993465855939864041747666301715997848187285464124370310091620744089444940958097423887339366848075905460831721166015487985438770507967369241534584658942219633883252680746630944747086271327058214806299272018739485957100350718563539393934703543818188065222411233958854036622861614764222623744414302961649324639774551585346705572176839159570154464257375321719415636486335821534647096732015291930339479072404045240825412716730461680301122384945213962045672915945555144614683989230026642957516840435826041845412859305291870086838844449874465743776390227492489081265364937143604797840027818790343017539181626216289794670270361989322258966154552501322976139916868937641341665675391529692258189122130270797221938156752040040715117948602875487963997706948802291776430591467926162273426422956077566641419236773355007863863859933074471126434197647018205561549579574152313268381429132933303193253024444533543543932329255774246591706269735578248397099401637407435862900324603676636847204616090789248827032288230850516262905229963845079669527135548692031250278291228869565430391012356108222139043955241608906327384487153652314252052178725849152394808451945175720453106686343588660272039451111459871530158319598753293720185557742477596940591898073400791207253227712111198228942253378414186135101968607613503911984885117768193181663836732404229869522081530384178362146696050111896617438510017224568871712010932344149319044179007265287776141678851624110741796853660852882436034262154513784913288425517224977118164306229689324993238869173610064183591060797711247711010204448816877735929746861400075740642116099431981665380765332915138199875654191768468534831918267133512968762835531284501952721970576442981260257929970093438815295351597884079263442270451912288411005115660828318247196721870367972635886988195810301271857376138280335651985877538861404588640803348655751757550669095896641559781082153152712639017360543820089755463142230270148252099440975025514681640219439418721227180444203019352844419035209623243626334036009512668160483720858279072278926994966093221145299503506709318042709592049317138813372479643483675163526436508272633787938867642340948578987990947186036298374324517641580991901271165327344669656504315322587057769041892918281363326945473772227270213555937815305471017158189012818049864457387799679299185043597462388758071786770920909455123492477176586733275396530360174890796232434536244818417746499890826077800906871585570720939612421941425563553579618645759469847121774383972782603444787307455079893198198776740882285235240528409396994823234198136166678543295529211653648836557423173327461795602770507786970506295812279660620172980352733562635791598362627010375845638042227818477198545679422725361385934857041197929437426836623852717172698668763948369442505422098337682721626517452393773769504285512986375740145119542313016078700132937054758888489604822408751824488609008231188111596781509598530206701979555606702571451424480197292991493461327097863699981428492710788173290645741142184526697833835241512555587879763573948172837913743707440115207151832867201046511040735181070880515922744472629049221248872155209237608778180052039821495307815451714959338959056581685500149316780391622044217440114615995456278317138570525414331396457601503983092841490920833562776936044239099411827701688585176416838657445049425672207311644660317550840617872018926451804671872096372950036364472994646880418299746394649578945137704488870534830227473942072737664565158180007053793769853159005632453609574833758528975700451047579102908403362741811428187724673936986158902824866195747014037235013664164156926673504507639994745264304242007448091123669302046594663178863974295569269762162643452152499488284336459628678809925217996981862067873620270155694672912846571253625907770273490811617391386542868190912677354422217288079237990478510067272089746847347011861181527250912213092519503696581082344675785631568108555806709591287868124772562567158529731259486836326750452744469887592896101618866705575715029125889909910192323727519441345389192804696130145574012289033696246671405992544778460842785391204698759478365103763598625882899238982635550604661745607462709246265143009707087902661343941833985777308369909893681981582649562323073969950460587688335369737584612152289854496621407317191198726596500588234921125247053374793674368663067441420561337254768325479619224752178565099555410384994619996825233809680549359513928265423131273557537094741032640646732345121318484848366225373064809805985920437157453063146515543668161188751534549059551946839818717277629896322256698622672011353225612009555177441261049680714480316282914673908992615212085763664568061291030311999936009327736624548604537638424665437394537145520935617908400400784890776820328189731298156484601933954393697880429296377816331078006207212053257655287471678597890525760581475143622401977912030688882597502958055098637846122537160338495645797092892472036056822442679558213160028824199149941614272720464898108704187281526264300997805134165960206475261708129154794997801069653713580505858053973042269762867273021702845730832769073337607924389765169561515969666309932508234387966202752717940556725429209851171095310601817283629638005415928730997908195581341289423363558800048876365455870685053653673146133573644325187145050939962405879324975850209280699004471156569489859955145853933220935502285760367356385901681757548241682707298419730822038510264261749560335886102082540639948088013429039608602202862788540230297543189596357739619407466601595897912817606234032363834544867350011312785493124796714502391722715617670048188104719755010319415526351797998797389292650648444135899218119180197555945822711084530680475938930748313965695100368923830054818513230970147035039973681687013899435346528196246317547708482132150630780703725994274684120861380867041150065122529911493159654970065758177323168442048103383150542568624661970582123483051641346702216267736530092764879098569240077087108019895468687039308999207372368464088675472490814921345274066448133674340338662203777541340432571372704864372705195375497117774064330430513927475081614849778225831841802078005497312846714945308964518372654646220559290597333860665493289166949793884274393642296735279299290824450858437073231450761910311375512260013466448109617665490252894288855972597542324596744031297277652575988564061383225945015708741599538578272914612981379893915470947628139191676249061840025430490315173176316319753653133034999883940676447109024491780466378468365980941191816199133486544988217251623965593170679663374840305985436589413014803188562554534256732363364859921042149422115150177910548858491749273256904411605919197422332367561989845882134844092243737117901764498341684403664341042051095866389008674079366974826214730528528436950833002861865753226182561868124151044697683694009576808489005538260658159961759867754815022608267501726060298429587220929312329349926529927012529727026098370721377138652238440402365441407670925277968129070354924894655441518852233321022221790652589427275724199112319062319760991818380646778166727282940651089744749974833135636160946670668868299557713709453210259204736330295330502726628060707866358816564224243822707564199778344316549709698477629502853415006539038057649224017790015582578816783821115344502818261606532334368661849754040494136120965618923433480841029582118485167487610266854880049009770447603223859076772857082730424404883487883761771381062830004925343357304683008042086203411144796712875485307875785199360369982354816635896564754304625152471439870172484360516847265724971873516041230507242625259767412547723207290664962087361153137252524906596220297190199493475620245178440907198769977343423373357674946046556963595845887196827562638704211422418910144926143297395499015670730585525082309664198217828945772717832737975082184030559151562089429630534180097404407923321054381739296110832366651015698524526287005871379327429342641089744629294788057697362727586681143935947261759033103244757404114723598693675948415291306269587290054334140930785671647721674808094111592795556576153348720716887126962765346725557633452521195325270423347918816080165226237531128654742403743210578483953553492048224435943691269772924413426114654267826217917087361097857887870879560425238817290295555822860444516717801855856232322504827428507169774880129476467960502188707328051058828873014726687159509542568941710687150810429204596938988057532331156257891144435495978357376751718958986558220060715292476073412919127781556674123768650491673838524270823161377803888961505503177354451564417025960087455689175415345108194555784632511055873523159792963577072649423995838988922727084154632222039088062743190843438406258354739318982211298162739328022588528808406678105333370996933704618177782630857206827278588890873760605863659161240676381783252986394860908548150869526742590961354729130493339704560804570458271322195176310421298829541161641040822809597949031690997108859339431464634944771189561684298510539763934256288363202684185916057116076659892759609434353483511796933642668669654385506568191586225638615509750260146674669856020237623431887999087916872898169448938900829408492085018840547136387785091040488621023436970966422507156811564948831941796459904828624677373621444059802326042493260385427095704229242265172532169034405107811392087830403065342570845566917409321482649890834432563062279741140929451131207350741864163452991907538044501171106054066299117452527744720853139655456807678733431251897567664108839293320644471556934148128530475808570040631593808994046028524915499450371956268287404958504612035166361687623984886233582290927259362384875945363449270356688974524141326103984339315813411281240407140741777759769329121165759104750738115803762987260614040010336376194182750294977687315951983515160686125146475053073188080147781766215184345719273067675916442707191490807445823408797985002462833498440026363966235133925564137064187436365495988613214677864059113686514810524285319288674986368048819734872210792413944445013559390972583639783667959835859071959220814624366937954752744978706905174592262073123689547589458185528413859299805946957219254541213660118112676122047199264641365403829805518727509317411524497033397540318340174044639725102823786973717783686859460745020918336428944441106476895700956044384776830549820758748153481806190750950444293967732575698859942864624812468746858506153428465768115477537795239690328563333182209920477041209887304107180465184013831773464603748640465858927919767511764276061762036077312887577025577345249414801321577377683708208454773048574398697701666431974248799947199807407780523321985181761571370521441576421165667457234957388989565898102939173981661269880260819465731314984730583479037915013908281038491733659736988865363336128581191941287074085662770830208624835470828089487638514653746495597504208913225577897176933533550122785829171351263441057304417429879138977311045397771387496042975822127769172355131893557975684345515334749238993084051943673649769271489738332595119909622452200030104989204290546611775064087048329054010241928978542420995613938771703559868901388761680438072034376444247834671134427586217776001657816388115827074389445775008197843770501702518823829166875450716352085000532636941209145141132324086447319726249631193188148984959604057700762905576286559954540257510893307326787513514723582783864867238959605995309742208302764391044929901275845520648309324172966473265703628138003360446387455091970099769585428796560384167891689459259662212419317154298010175088171226274372608081572136764827356293800067713751148841897586372247328034658791533443282577128476968925803791514478611329987232536616851908878859034537700899114933582471810636983051900261078071720872750044269094042208727996985595916073443366807267638393757740630405038528439256271019258209752614170082979594491930509973427630406959287802059175243540872104199166797047336421570419558010877218447233629374160326053562497617080073362266090088960474799223056498923057688266199817871188483048302972282667068203536841233708414984263245579811417862485361100378078359202841558532850507856073266937795185177222593194114440567232549024798588972230010712717947723735536563170018062931944628000115481258061399586095655561540588519275461142369336303375542472414877104073891924020210883666665924123359072811921159572914437480329339482788304661517721114332701590704909155733971087882221332415769194402005813696711171226366350655406703539216151168653094063248185808217003592808400192852464297022706415590095289123917811620337712651033384009460444236873342642175756772309793156441102505350718860824765207232958555967847737551440851013747940146787375639540702011336131987806200589827138830006477316711923658681714488931681257916448968598740458308238837699499404744997093592684848234574143692643693128573979724875751047355778885826336504936154703462112453764556291723440024287953913157760661332317889464969978576359978889550731186495168759591934385676529484640257702611110579195759557090268002191328914596587514538407401377929327630238890667269153377855825950124952495264307096517527704381761296682778689399092918957779336563765565195384891934498825468500479355505315009395115409713869586394685148414769907883976833924908098343935314388197598017938583396048845062884665830559646560889717503514938785403217805733952351543684731231556947900417173242230558621498884903805209687877901598138436190055034619696820429062073168846737167673591104747654470753076468667306630293752408845497412987984286298242870170372588129375728197404006314210217785553271394945831895776026558334389846848940013481708678947453989879289338580685840429750299417056295131873850992697668652865007150492445236353779696865882029773948764244447965790573972141145327093137820834159954820003960866901555818482714736042575233951938244645327270019969382739189161921492233329044097237874487652551847202933219172288436123555042704979439056095746872380418547950730539737181260677385308765288605038623810184197505741326171818927208489530328476033407692535077317747281930307133800805454805586543924479260461453767934751481235303301410973438216083096020169029730200495111356852022550796344760701850900348098326200723044228936519347914316127284402530852700169357744798881559133391520257614284968013041532240843518065262953391040089241281952502425489369570165347655495140421505085738581733512752101887276851343972862945483168740735730256512882514893779758032076603846274844654419420822346304187820410157078698228493278112238017032465621054772183773456986740813685587444640007455576158757115759172186515760790362740757467796183762423896529047630421183749268362635402485780274146165665644902383589174684339339586996516154691203889570526333194639855768460056483938086988126901225502484637125014486944195395177823674666646777017569328241462574062038971382074326075046967756393141384555364392455320309703352614803920922806291530475673630827757722067841475596371059132850405375407814315289391293323560128427958027615052520803297109898169665789728522634209744344512349073730659925130900454099725687660694750941625489793361595433278006327994134194121439031596587531578182835334868060984391811892579237626603591898493487285852768575831033226366182065534764823048375001364077398905797110544723636997598320478690340593340824138453511640355051677775628234171765089842797139629629768401905150983509733478640272298326426465768301011488174939945847840230320459070902046159970346129380247733630584504451062370989132653764842848544997030294731973309202772528126801071154102738373329566473259658664806039047109506182607924030389623708062793377440824612698241081354029969719078299692766290554324885868990775025843795976738279045841870719575403817464425924229022962352114619484709841501373831761686401878823422022056983890741814409992523461124145586176578428597666830631599464134516912471319735363636496697509850596405654465033497298523837790338476791970974909213665047850530506161186905185579562653907407056083173051003680224685865381327271906621220089573166250979237057567383266901305016444075840564808924666779670440458374247184124136988135152191922909274702586005925997350238491524882549194136127882124800339100864810795745085037382056906186825640002317454424259530246307519629302278319566325454655646767369609229752806963741464658624364541085752638187121216262101610465933316250888800891135256998311873385664640718637872663785368765321121783986565645742990819548571424739061038160990816435168298306210612587598032982632364107537159564780489200288857529682575635845846671143972569866889523444911492958567751811385653018260806924387991489093326918562005170588199758914611729929115919960120231119864543198524112104897651719904125274127940511479619783523778701787188877614505465738777975023901142175136703086311137348289516441838821588761761960835232232157837368420435828195663294471197958654594389414089228148687224768257082042015154777756037047947673114495358458105768219549047819589156107649763187024445696013838877124786780023892172930136884848316947165240710813486442509894846520823228855981616812178657929902584579137819882259434581648382225441795047183907971745545519145425412904275643314002303945022575622609356010588069579518171484293551246779988812882209636763244091312930073449585030002099360215193810856601019442341551956539696973774904229821351002697948131679189113272653984387784373914788766082484637061680876848434305855676462286391336593779250107233050174275925820968592550309418951588343238943103754855106274656537362080648820257420630613335558708069066174863198311842822669698941939803036780780676238836308242974136924532681553056129538801533173127187019376840456928839591331986732968715491066163871464705248385853790561452206452945705777135855410743077349955686100959975277211216560808160817159246295346846645570820312387845786660517177499831121845168805337839534711396903119109867009465112866384840809459219569465949695844119036421823130366828346446605180477526508998132835722968635622475031756629980304336836991271011067354919250787717503693882631735650094589370662958172126128503871356930226811317003882769273512294594049978616352471654759669413229337786603204276080268987850084749312166038092612962755566890073595715209231213018629904097799833855281638660873190203548672043040518013113131753286044209568153352182258228290713494713128860677914240215299629286153504784861851415892009787492128886891581099838775919376769996931316329003227709772869242941881175433527498258813430124041941566284355712636292259616543179495568766760170905858176883294677061797394568297005844226189408294078283314007884894861276201854167411970557644136059850361173054475648311499873394953774822582843130644684209477950025851162611473554899913924246988357885267189880212624500567668865679786520409196394905505289287860886102998300369083719029224260583502740312581071327411976779241799633757548712806175156837458146535674491949130528232960068220677799757909013017162696187147555113371160841143574935142341020225142862258791862368855556268384309382996736906997353372403490044769872515732542299538218869677931416802518554412312397156017725590338222518096787426460674067082954290881588009122413791043169204993851593978072124055844407632952850947797523411260940511856054000531556903866552101805359361248749564834092454371590799558508809579350324869399025939375210392704646846742855335266810465555352384110128894382687284953370980169549270867847938301051142707493964417483588688572301764525492161079094410179620509724023163445625416700674337399297898902417274562461908228148038940089639290514628189571587611712745360071916836394810797075436924153041243066396239071338206213822738646577462966199186153742632262601871172953495753812882356403497962576578435441088444224735803112651674409405771152049840441011383003209354438959132039286935687365472076846645189134541286700895123090129150763263247960873974064482221375677048698862281872383931979485443803823211877347238856874399598544408045629548726320655411144610923173793298538736830362123822136184726876086453528326312207264103748862159191210642097330140267143850782095622463967763938908111993096772638299090279388287279170960543915010973499431766455125544971702353620864600579354908185842314009029973574255228887367837020963484677588299637421351038044023596167588919981115171901281319587268362097173040373196276144152006277597342537357565822833266708586999922682780680325050665659233501422450861386354736945001913892561737383495870796248540067563644587894925898736190456091096686209810766121226749697377487808049375884934536471404345191429240959977104208015894157663579966323049412021497593678858742912486401512769670975382594413582930928339049690372014024531855399041262309154739715214628467866722666839349716692422115969754527052373465317530020900260031394862125551603795561011789870916171335525047171810988197973947469803309328524673217446081387338381135017746481009869095346584247324193296889992295373402297891521273986759761511233911917059326820779550615082236269158253352292849737779310831762805535657094785081111869247688439972519944065952157269479767407146117946955143351976147397374027184166891779428646762831282092132307240334679890812959580623542180772907143987637623165699776416533741154335074734499124506836500355648198837438667070949359805325609011181273763272548939540958300583624268693267558916464579963449728683501168208364150023341854379352706781433839044548771083315133965954528102818621730891008956567410097552961348083027795883521113523080336673210953386743137032164455771871629637348926133690883190403072898689164267153412807842253935009702041679034130564235523443121787627590428948163636386911014269903856664633441063032244955155183052695171576541302190640159173178665792194336002854847026632012882473507011208819886719744473808149219407947032619920512061349220849682072217456477237486685781270791613257239261051930520043429008180162439986166466575763160377040537172924807516072469798823891547565870746140933514479895591727384967785148694904075956431132157683102469898636615431097065631970636298408424853965483332813724677610023822823222865155920281093113027042852765923884149437254614656463670618374481391191613556817709154372434677748787831296452277459282283855892190339730819667605967524518382529132569795539616760440869480101215328558475557949795221874818487245699856842395825968806967084987229365592003734964490014408755526430681496883984603198727502827013957369609789996986806007122104201935854080368508470723336916002490634817319603732215344464851957721352515708124995653926598398223160669178935486137817731774446011861752708014822080023920381149868831041271326398447501965533921065424917318522077762072365837353359240895211205396136090415907467861679029816032810888000099530996153232381717377841337258958068356097684478406277436188747196419028821781036366981845960622712140213319070489553628072091839285533813959698980754358883273430667221622013379809486540369946695989240471967856298700203425999941471988732515386732447226729533888337565024623382792636573313178627484600641263501224369264843456520883399111573563007834752009252740869207726490483572767331669722991075013742600273830038226989824256956919398789444641931577634121797557954789986114141608328384293389589724463294771176463602209887168584867556120389814037237356926746064315429690438246651994054675523221358081555120755557842333816467615844951112995140428393388045013772867810132336495335314808638617792244716797161349358265049465795046733642543064727858088589091864719908013626182666259623602642611651540398141658061831518330414459636528079183321326587698625581571323881232354364064429795374520458476016019574196379769233441168780063412368065262583514555007613157755017169589590646933019040650081826151949325765860411496823262761539018491421017302599158114555241399156547662788689718959492390645570391474668595006585606588002734266292893364147119969057192638644792962137987985710239459729589021894669410073951619809895853066562367480622417681791760202742614388463312701634637225568804286294334626902911667205673388364904974671101958544082343854635307972059563894784136371110411904492434246499661993222928967559907396040598306794655584089813855258365561152394525131796007595141082504943731448743891419373790731923573887385500143233931707152442880149434248184667229075889480257351726479800061347301549251635819113664331808905001310318416948759103397925862613188125398867377628923324084482293195528514402006199263607210256835280050725804597809701174773046605122649237781320262191841874980656076405428722145817845565582368458978498699862977394151175955226537087742622262098525286600455156768980293181139880229191302059303866618768530252613221225511496550681592185235933153111291733834257122876751832432477738516496091688082264866535495786723702809565228626418607342126802511322353098120590297545685104199394429410643591445299519643449378700536672828178996373467032344636198808906591942439523411060581451610302784720306771230530237349353001347236384684174147424347622738464073098798231930147051714292667434346526398604673982065518494570474749397528406382249360340451011213253052699640327767626081966612918998616634547262925923339066545379619284537010346403008191069218675097953854569051143280825043536497502198712790518968293275122272054874319848016688118820320327001424040055249626724484227551904650117556865833689850682575461469705685689906415921785167043292144418643764254452274596587347824288628253909014215600955541436716228881578858684649191909506225896051131196645248466111673928131626501599623976932797753880372317704670284996566434005452351464693498629076952805376910097124049392700904555783374060823289222028716234440636675181545478152646302404395287906725715041909755722443664339090540923444103469662776491523576193308588094466242609646832476280026388798700300945127721275760001917633991267866652865908997387613315807231510756267166872231571672228284491668371377083515550028942206923183753721052787080653769393336912312456267115491185263761615217374012850664462177056894078065477877401946421094315511440928324358842682079980465314849626235434046589269490247107789314405082414995850562122574716856468145913506893047916554765088608662524308094234492203897630304558786118763856096983230369112475503140165049624983472130731400191632099688090044856926565795124282151852223268412584055015568537719092900268660094622036923216515338397500991631775845000963740982023488997416398075305243061553307617106719148385682781077564602321142679892290072207698884937326800209924084309716325083588081440907067230491514433030026588529605437701319131066518634646361950003585477783592137145032372627703483432439911578072546757674183875482704895532819414541881811106934445505308583738181689155082224497380339862978350417526891900154116498588725776077527350274921975520001459577080597447147363720340421181210811156673603001555147456334821106442673913898643810868332168113893521723312194492866588899919147980961551985238266722277431601519148551718659861368040022337213889352982848432210723797947651861594506420188037676520480349430192995418183842229809597204574870908530302526434378504246835334681664967635764474316546132941572310634780578144701547022340182527860206522860370828299692200614414744859259054742812283981165929211559796072645050297171629104490200676671322503125258696319036749638909968008516609348281902737390387536790033352792464353086446291641170209796037324323297725095337551193714689018592949945007567460638275384620179565994474247643800147773196050943905553864460772513918132200058444556760253829644987196073437211026141501352541760445741737814415752238283982982836645116706215358642052415251424619477883417448879062780759394628792740385546429080967252701361155600175212238475991862406292898662514884804404921613181497536602737416145965138361098296179206097243248225933025108441432621524510094858028665485663762484718159663932931000112849656591073716295193492808764799947221068451033728775937647324568034894471528561763895453776544128419343906598207970042258747673751895790467491446569004308014029707173050049063497786688780334490491030664555068657031408337270631892896618548870519302635142080271252261431982946383349883368559925265787769140987241642669937906268161514980278162163835194633797610734222080268007856169295963446613075400146821084354239927874022135550586729048700835969835880508709638069152056040132559843710196216332439798485815279402085305548459541367782757002681919512035964758440406725361486325446877995810332800711881503288739200394660562780701993015944940693200657907113357706749983483472306529641792884815136651973722555701744651688593067264745491344037104751173867798375095328506060821597029709225659442112721760042389187000003062987193163685676576189997466733944770447335514661040057260241528569531801135426789802639419176731501785229925459253874623861434082828948096966913270182199251083648612626415528153975794921810667662849995951232675060180544223991033764338800884187828088206467204590217285167231267614100480725610191048425377939767031168445008063497718405816032179281509704713165408941226312592802033669939777101249308062427295967990352738329231106757038538627979886927680716184152500630580056113190514818163043712622935370718452211782151108279932387351796101722270608191502716870070369087840046986570243005228241588204871085734699165960677340609903392750471444841872565301183835835079090151488345575155005639166537648545819784866870315809720007482002226941638516103147822818134829249113333461554925329460730405382968730799880243454416942303952911487495609171706888146049299113575078394857249481701281221872939545064732701510980870660148231113058853221266853449077569066806784397651981222281032917815859621833857399157427305741090491539950484211681967724507090252727308362279499114319452282137269420858357954291150240716535723486786897533709872211375195740334408379497054452875821560009797821244335340897319530657993347993314352101058078031191689230456461234099813752667847146046500865513491281711748620114794429493749393149691711268203086741818062865994628949534379530233168681632766352283360158143582026431354305947165684582287961550190947890163149933163149293357603238563648190088748483620167677926532346185711371742991311164125234379524209012090702885025632643755687485376016759258459053195540909701947113760035084883752865486514480809774616740736170307638079702958433600164175638234678152549762620104869082368181644664330640204255952086630274481687274107808701720743462345287847360837761701913456674500613894140670487111361929560687969711684881328061837637104166259150395497029013071986553494968996322312378330456395566369851361935693931447139399455562327656045527077900221772291851309983065219706769154896979493739553814883577994937971543647233120193628332387141596388108138574182089664624553026084115810756065967467284097666586733782505640065681486353292957146036684772535397671702365230911058156144817524127402030751815794694900157216921850590847957044385615835817117227690755876681090346240924605733469944340626310452419575833403469429996357209815351431778095124167367479858170179784765557667058704586131623570973349178327748419770878100140834727297894458570111613481411534479751720578236991639721665750822812525483773747704196666025501806124149184831730856121747098692018374365939174997365148243502258291472213445056955219048826706419934496661386781095924619410999029974372922229681753771258032958242578432427437183450277533781076076789562302914470898702308555159402920542309508778349595295954495093239335324579004178873704155970218000820833021285910809657990324766501926892349550969787864713751716689285934573759613955866777620236510014822540187183532001725358854293678421819054160354644672897100034851113979917469353527809328434540229975268322406277284660958991334017567963687392853268639831628468352170330863898002543411901988741149697273571370813512697030861338686198277518560328364912420213898005175133197419585699525644697645305872956462784894245579272727080781045015912929374006949415195388413330620773217113990093106218720148989345960085722516039390228124676244067654159608690029676700993175792216532031408017271443833736824772010992612316163262146043936183275804238895053728164982614493524112217503283191570255395750989124160640049312217846796868681676840726866389772123034632303209259545073857075033799500198523449565804667060736309880756163951388758753978511079218990433581618444228433866269504438325500630185014577666341829229351792244906260244887126503305402952516614135165909214944304449944806977130773079099528872538987008466039096842492492272081255313963620866774872123686277587537130044089669256078374811278294036664533044033965102256622195493057503196799815703895262856922248879382196954038181220772643085544826401217386556930832422409487587564657889576688771798793264781557852929147109507453842196283606951321797564272599965088243972220241886048828842644769275025278713991459293316225603089713172256092715606221058805458194753479706910510543026403217383144435720985790381358093722843940746148967268657890490093038368128192951962519743155273938266575462027543971869115039390970723843673853007940908635173225244357898879712804117424806611039677358948831677109524465484548731558723204904840829679531699628216218082904206159802844243503579834292648431342920428662732323338770998411822058785435803715085647258172732820118730430394587473868906320562154038584784136820571501586038333537761899532235693303849280002214055997633633073817483772395627829978457693202892072304635306366052467047146939211709279680559888714598414359961804123180165403323258014573225467647696605442836467828246390119875904245363300651500166619529259707967517860595848677984854898442637783802512310399957753631394068029191931717857892588589367928798218717159344999324594824226997012754753967678142293257681122630653003109539563076654094698356839337824269783161243273463433387877216331211508130448674299888787293567838762424736854072137239836219235719901868536787378324837756489945245920346494182171230717588370478974699378387732602443546323477395016062605158591935199118701964179155043614401045541437058456653024757069889858957855066942064480999199813506825638710244134435964204880879713778735015278801901186187003557027769570893012814602336657006692956783625662603313114330918052095803198514128818504094770200807071582040788384601270271872651601757723571594045328211606632690558417587508179547382204740726320917014841772247365024064082954478072455501608063892485836583696772893614563774574656115779637793230291585335879551936928451942232075596219854875497778264785942854805339911964429597327019274047152922725994519753150612752500945565245436834884703638386905722138710007403419602023581822501784904087970988941490481619702608868072576562499650241331902889073214369156465190217403523874370360903670544915488317934769184352952063478679699551100383710657223897528377567701976081932392373030491771109570123503068901977795609950733294417461157860514057285322090584507141124002945083697001964633291355513631749133159286201574509037377181497851166297674543444704550458661734135701881552726243724877049267806499005548391552488134061098978777891645962654802124295560337280166353834420177281571734732499733717425923388940919349673571740368984993058189230074464461432884838304712692842331402961352005259203642655850118158541075057831994899714307643985871266348856120166007876019474706708175545414455422287255172283572590989142164320603377122770061255813868268837975415725556831784350606927401608650217327220871202368028589804989167130225568236831083472887984407270653748505472915364125374245448906043347918170119230859300950187653298476663326903173772310350230187617682542104986367436526905250740824206092750745105714614525491507628252914234711171000723692995912318865010998500581206156731120516684754490457954848588834182980232727779143201212847334481538083771205132652158187939310095945984556031874199807537826447643898013995508830856951324430343349690947440871897760373870292642101868297964234135606587512926071396281079611650769111521577521747817446824086780393521171708443563447417693849708764317178008975485526244378950749767104232795893521138195777125003693624153356848936034241610110297024302226280944068851572271378921468355566374553686734283605757137969761083379329878502707694729582614512098559614703978462786700975269206646023455794699748124481157769984632702243832056817073088487180631608608864907101135361222835515187321190205182123346569280060205966675279811876229385999617863738711434301609707688021407840466324231134074875818035239784678499901008878191024322120475586851851825172405810587783264746692489713491141844269632032693628690441103331511568027588039017112591970149931417463697797731247179078091777637668005042750834998514081015687598610008171771376742279344288040672713157003664474610399551772980821869388938173810203286250999878215101578427751125860885875213123332696320194580925399285891686624354326341409374986948014710880349546880350781820389992820668140832205050615025244749828623009053456962981532288466011040321194286460511716412704240837432511156345416645359220707145195945866929126839658855167189225177898640616687485938193729767631571370429682315834301748381289416231726112342484432404629267801747472927044328446646161416480732441367797754192238479957175744044406204123937572101264172968101202314841022361942745945643636161242467456169761531061029943516597799421814251366889570864681178429189551798910240735842773246906258392334590367308233241228550895921970288753905244744754286072926988351897137833508825657054453767137028388202702230421850709038536765603216241425607231474962619625813841735339562260865808003946286399968795428672129840712542563094038723641255049701131487827213259131123481286295764341945439720089280534665723349798641046444719815540106617378229433193677724846796028724424113910189016097200573233037406802674561493143282172810831005580181016362724929280787324980547039111795074095736653792050636314348970509552338797522821046693742884289587190500506046413773532346188173400709517769772406905122669491694457713357099959640737733856628293496459914583468160186295611219043149006678045292539037631364620223684174383264742057203777417402864377062070419197491505699663111690103999349024414018675873214861312572938854703360196252318422817001219317082247142872422355839466021561454772094018253341474138204375696071801241983634296109757722124750819149955737608824957380483698508641850910806402971348257316153678152071704538338533533723122506199137755243607751519099516888799856570720348467969930612931074472407634546872783223497779442221423435467407198294364242509466527081171158242990175065778938318090974378644404298176128446080941284310257963109324334583571614954978013920269514975338067442072402275377942926811591472563660841419147439616076115114383000128329886743060543116984179530100073441828612677531070841250346022493353651028237358221385407838127091410692308773654528559420356727965590667027438608609747062299173168958030744346133787609171079646395558638496835626280132827293093959535901420717501835038936072164159573128222590568529615217277372264413607337967813083475463161896812909990692881448194983576663053816849661011387944158735597714374600555438527434338206910909057299446064126477467592112122464204590502070859307672265306382074039292175756482616340281640519978872826003661226391545928459636410067775073321132980984090052075601921629393509971698139953343915865736098497742238259857396058013315287786989126491318333988671645408604235533493236804278029498665413879101387966707816489869967759359721289350478034447174936508756061641026817709899170948626722648309970729170716823865913140551836428412211663325344140199674803379501943804868861396556534219810271703231951031470069985586647542495052862090038288565042344674813574821271883358315426407509127925337526721588172430830837808067178700633823818023858406570184140384586773560509562503597703892094338113124742938598485729738423697456933349781204977382649674632676497119270025569093690298295128291281309479920856358916647752977630482937969944726372633190939395444447529223028777083570194131159568706524621922474901545296247053785499073822432503911600511264449120353262229483078477406569685849180501473068305902884185991234836724962331242489440071199710467755408458825900262410048166219486066474028374899352842729615907228613401979159168043914764352096215920461785215583747070034296561554434854063984642940106675461217410068316212295734286443456899849694197703134367651221891977298547779271966008120578675791722618724131191915495815668649748557786749329746072369360083460114344680223838377246996132428140080758315323753676334824725696471223786133988559225576331255506729811409518765050303535416191934544703970628347120110824720302214601283643702350766726009708218776467646872798722766023451819758319052393989491644776824468882755758617985629351341470626968817418287192077918929846873601159354462047822258163559303373984536578027456051137693855674323667831708699611879571749587198266502587499029174069823701220606561350237961468777581474654515235318536127875242083307523794832497733631715216448296346398368073225879175697326976750460460402293521206332641075551374467534314829350144840470873001359724267948866994458548991139821917039920519416339872519227164922913818319895708400878141523266815393789086446946515701104891501495362966625190136531136567748031262357593034562773466075475118306425830021461942473979378665739669958460194852166885367348705778939260512790771256931425721169193972253977762767853203001866282042079492383323456238079896216378640382781085453630693889028706808343326765523919819886177576004776352039144753952703143692983392291745573938126333596643637153965107999063778249380474584014812301059494349422505257380682020209631622937874394378261628248783162079319131274104612502348364567269786290685214162621542550148912706980838965270603500413617337147591998110078654002896455358759335293633520478463107461716276962969983022436251523734779863498510426102161923384034522501337165208821131910133162223666431542674624865376902535060941239899822875046577499392134973569229841670297561679486010890191234840860768294274401506484889145146237804209375453280454887629845357717790081575771300274219059325207109198324634054658097070186979452274071019626535392124592501051893463502142153853514369113890623761885449385744098913934895207243463760428155786784455204031944281893091096922781548637879310101811960537997044517725345262597155025001779823612763934532315954917642942658796102004374851577016666948751167230862992318674970372987321808844297517035711801322413826705601097609548457734827667015937201912147157445364281216579188780211777030723782931858405377767265802633815171139941834911155615178012002324066481327066129680781376437644069507548143463276776369334964682256787640027829096642303839492395499960618435343561066569238678890964063191231914915806653182334893938504582769879982035452195514697714115410009987651281495783192947685516870415988642685172976783661311810628126072873619442027042019297044540098317782242188779293310237363967662891256037673103381615878985584797810299760844386207101235780505584964577984703212964025672146160540570477546743407069794566329540633939400281470477410184650578395739294261587733715063501329400509840314088627092449488132196303409042144932786123495119473101935154005116458020831942000277388392530092935041680435033069895679442884831023330066840822995324996202038016120997931442523172795808800825596413641558464449812324120455732934014795726184401788309126549423448445293090911826523182324827282363890896463954666556269314408786931902134156392195028228392472680743034370472126526955842344364253195033156958057441792113240942408726922583767821594704520711272698576598428022533318932738470153723044843131648540592889057126483870074745621783028899595812747389180357533973628681606456604810326047244758634262064891087392057398183679899400198720746450082013010058299119192520139356698141634169217018767183713906683942255477043889896057206045205510908168491881739200967529300948057279946803337610499953974116262049008046258363690093075189680494424690124955819120367381077278982241476122024523782433293776136169565623796938861851860948069348110465478866707764655517499617917129592250881891000469161706133433244250599899062846641416588597330714033805235794858086271360874096791401179084990693827012488857924538892296967824663114257882001439835087414932730703281339558806273015191218806478558425089598944193096848217027909393057098964127341357661610386779668752559563622670747701696235505245775690122839332090355103404391878744222169125967773314225435851526807571261988515527129320777517543148969094215727714407331712155238864344397366197388076047495036962995235826950818172716186005359337810980636358362471595968832401519028962588658214336216765796384110376464411679947000114192153333283207142276094319181079634348716337261947167354061721237766801408477795500472158706134266472460910586350278706589240270032766798105846161841263262665629698619017890220983084323217476680037879813930801097414097868088838765051233050256286118701538321419954543385565371695588035151448183684219896992729090778760994573257918749943674056332042881967696441687406544846798313179108684864893918737720962459467765930899344389280584008841055754702502893531255998620022474582934348953972164839842436615569484385754678197660127435679046072289384540492904781844938051903612703142364741746254647405912906810044211438772374753805711924732968244284885878480528639198867170870577742493134341185510412343781348989080653815674455715261822189629766561969694835239284799186936064498945174834071430052757346481505901939045173767357340449861905004770155823693193439536620720992322146716938595765822036819130216655364905919871130663671742244808876501553140104097131359736799560340481770890750205917285208524767192100954653423178628768629065175075291674209952733853655622340603543822344997692696393035559414696078259703985651684809654384853089814034925894757770287015179682580029412606473071605540968095684258892089622848590661260992350356608404415753969557699085408543850188393034715539655599762160772131624505238330212927801233639761742870051041234862148474683692055091919667565524415494657467821167555215992327694252644897470477257501975102778739671468337308976381801531321132985761751574689861803187310295540487336600735528474019849179939485442336613392012815563833034911340841939691775684451042764341673404975544475444041579728033972926714324550842031651697998809049077017808522368565634052887638191274739302553712923124129538690846225213253371619732261509820223097572099271798791983014873385914797843585946144821876136393837670914740586873035656774967668608743699848904144789994030743440028846392030473256756924754698838416051931451526783564572185189409983767954450860801918804416890625407557706220529075046546244035445568222809511630153704284035167720130120662227723119799687847795886916251779436717303203030655696608276476335508610227490513336502299610947901906459933004219989969520680981186090363223588355684004495792658505464150914958412916206692339019582088289579154565831142622237029945889996770496689019108750492473420166588662374209944857914302227107178976212060286284453551159352741671352495949749174547849995979402654886315522667643302868400610669201047608876444600417068804025609887922917671758578384428013329195160775120744538342155850209375290066234899759023627194361060877519377708705031123529869191601548107802772213216723832046845043551581919179213337773882652641178447932566624009802598044505950794170059349254998821407711252577892038011595348772924965183964584015152999422073040768673158299876406053382982297450178542341058057671736226271450840648846226010793453562222970026552072596036473717575795691590416146641200112416184302615394963784240244616009103624782475526483243749352849352928761269079743993433457055812881082109525556619794396802200674917400043758746255895380642760042439513316245850212325077039812470667048739120044269972619699503645581462515138991868341449111713537933652769445013968536330646229599859104146234390223826262188065699927279340571215046511529613398015107866443000364816050691096749500404722890780564418573390049701373609397393454818078766579340190674093902568311433151608038516966290395926704208656994820007200835737366429935431052774921568103093892557614014889885988297402262719542470196923950369422532967992063626294346564390261182529818367843659965057455018170907870468483627964779781377152759931718783085219987386458186446040396388567857435200739470684330367218521177134648893650560087165450419497157681405376991508545024957640069360938570548113504466844293066034390606091428956755725880232997589337295999398437843929035779748214045763812427161898590333874116071987891734701618748550311042694045690023855985289663144765825449013727114927400770432540236472642649766266851936522387835016730967110039134131644673695479848677943487343398724440766672247254129794890788853997817159208019629982794351829928060091858177883310252228549778791710286243043979537674634932042955544372146788818484955784345527626884557791211686474531974104999243931578568206530037905590701837785979142911523391193091048484297201679345650556265226117360685803748179040284869033970285951332284294725072709222100760957860294557842657252845888952773204176110574746433937176010103932708188769857993699626384612417556931661419113136527083271219727705367259530795408336817775423416605046371638949207528017346382195520271492640168723760020628972811828387067606092343246161973639890804023754195155527266562410470040277519186974954491796848010420723999440509496995842008085275663828925125016422436553799729420320594895916483979643575570870162416522326325000857688584099490114277961820596231704371885396662265145465103567620193650846408125561044013442870032943517375135830213822177538902653430008405015726773828017709733353722085592088575181655151338827937973885885318722587237853441809110104955811437442425800209391337970525363367228580594003845835475170048794813143489634039721348014904338156471508882420856388864655616308281288671826516533370188034676803787577634027834158134540434991813382297705063747687780628780166902808273286772712208476686524004252825655212009529340135178001514677189357337615590811054089529866868588975699281203440128732839569758715450775958725599339607022364349159914163006338454189527216109007226663713539177744121087123135143909425232426383451928828555669287013179840690215939339603925734724444285465128946740368131298383808271729342273093471506654752560765488902848211259269854971388470573139719164957178885958823899518684130689973791719844906055187094767906196944021560522998492497061566916661422689362021153397524367387677949775021001365839367698426108347452757711808213324963891636690120783974940096592610382511144524298364939785996969385484899406768681379470472564660956718605516996597048952596874913549579473703096646742711576432752660819041274604044362890069655483126931513633001771304523194374799483402217156320815592964227571854804188212577293325589845098942825703241590011259751978339798331226060449282858194556318562429678066491507684230301717481347663557535042185418433125366462587652863407794842652253953815825635730006007695666784928476831619279318799590139412577752546263918715855012097419124634108976894597310431930544081973798953637453687775703357900240472141585502148012682229869585636257991386876835143932665435081576018597467233299864717278777585980394730451263640450575334426032206605232083891612512112592585805874802260126291324953432907576872285254784665447999113462054005489731607449785071215293290695296834277217341766046485691707660601991567510424243890664454073508395063194249704009110721712573399922684207575312841949669830907973590737543586198141340495230747108648862515410236784337830693664074183911844454347052466564754874897394861569745440139044848628162715288858128042396056189222956518801457332287215698814938113913525426346517009684753871673100294523406074907778244649330171501749105307854813886927419367303794890901179358889786527728120900821040347564221149950236940173724835735168547695967340000865527308210633494039555872818409741300240568765736914038617926393440289775790463614868271422031186720617608227679135142465654241257925862200955335224646169419019029898714415763670751258384226156207324593161939004652500686874261289313793764781383707260687284882628674396902617505867379567649071918761872922897739739541397062873950291932760323342859586790459207601708499677183072815276137868851292783208806231559517759578836492885713753856764021010733666466250308044263052509429344121287072143719247092964322983623533596062582212195538125519522845687689150702081346012363937929787526893716860676708839293620505952454895319789434638889624920663386828139296588422134500122403998128964331820882747388867373525672013842164120003519205157984416570727412764487395649287018119750299385907610519445542245865727749385626013899865704443462692437843339501600109417370487929408929077104280596672714661081187090600853718039402172876109910203665462919806579575410588816389236212211607013506859508418219363771571516841429534177021361144734358269178134435912648147637711409115089318287439149651276168097298769736347359948831639564737140699875985765536503316230027202710682473378205826108463539674917843805847883814909213318690821431157648958509814819393276418665761523102044114808774882684600710001207953542649676343356248728490897229453044070596479716899098901858973406843976816592233944259047545049495687813120100912830334863136345641567383317418844099013570197544166080017390860664520019233363579798162201913523618155519071119759174530495268614894480834655724087039318024791277650238426218540994934624727182607433285182120522702431384044435557146821320227442451922535667280922916071024000033583704185451810060598888142444235731154868393216426791511891335008227789598236260519728461947254165313406113769583174881428816719522791182414706248779748892535960004209459616099743350132990255526048344990142075636122500357165051787016387225871831326466185654411202099663135805091133269014661823241263416120590133827926346965237987899804242025625651953483007552309144117235782204313957577553463987748386890851150522464613556978193490021592853509266428345398925503442823170294572080267109598710586270061750634885003396739964762951565732380934129488332427667998383827666261133719495740281031639474102806936496321915673865347935183278254767139223041857270931438507136242304448361193696800098307465561667230269004036429552334270220688465923559050779265550078937445390026818026563472363263774372974753974242439202266993958767042098609425773892073906589969952259667997880515344914428638229137797920938735098779624544750727192851804215511236767101375378419145526981510565243240458616202400929028900444069185146060713116207701172197673184793023609882258038713322466914670384994138779015230015861293975047640441493691164418065957894075892778127558593705232491711918675441816412768328903914555727893329974545927371295715265962330561782301372675625595653699003226107555777108368996999123448416681290103465933697690868137439391305922763595329360420065869762328989279026454953385151192019417208324894484722451157293938228981798176555630185960036736633338315349585064354290945074864201312620069256813901132206185519712245034492358228267969663842676429349340481221466963801511458365072062344928706393134220183629957877888093883237005258913327401319414290909831094716428804618255236246901197789512908658431648345922912009938657078148180053077253334217235853673832028894018163853283582640492304789157641037378312727979759394107408092195819862185787736414936822457713368778080765177565365781779893637322687696067100482580552280977055384133260537917772787213420384083859223442381274581335828163391652198715338483556504608302338752773069023586997578727463435684232753289939923975135624423025623729431057955341438788815950325185560186998992368556772871635395973640819107158772388356915849808218438507212885226293656541656542709737758071905990497589225924974541518831107038034518007192975118362830260292493120184205606246685163780893369522898665675068278255312556441819492664219860525807244127782438923619949592202964523727007226196206355945906483322681631235797291939467608925993914745962355776476507245888444540226825896547841143413627146997535850704177876461884075177660249396162073001296213143156499142947236715556135734369294674063610450842448848305520959923721226581694417005086886791769010265437559861882052309517974921811381212598026869186786516661798781300663652717036420338461754602061122509764900700864559072064502043601485198657703267184724306844815085872296994909862883883732713439523614328885472139316199175908065909608595897117835243525499524532209950116181980789612141472610334239460260365662040190204077146002972726922069019943707512588606568104896993194089162291378720586552635894267396031149466819472364742497551939821746070780267129142288448033068035886313428083591462294088470495927332450387723938138614655625974337638705166572198909020175729063016440787396963604691244866872884388431500812692434686203649896049718460209408393772751754251720782098781710839222837896066368496610249218051764906255937813668808256117110059786932818963475065836673717556110837796974057302261905220426589377229977960877726435682944084496493888816014974254256448180167628541927821454226457862600625738006637696220955488549336655542873820902316625336598688385154762592540357022822055104304978802685098494397656773428095845631276732314616051124639086899390813796524473927686499274689109169264627806773496517726221750501237941954286834397683060609787170743679664733691937490326203810017242686996980476648137788717494435411233025972673927344514622404116565816349860921133648587719183622959455568625452826829312576453079347653481111391275497914891609560116652152655580696773095955184377365818650988638619155902482002156874511269814406510824224261724655419323564770488434947734089045942914337580430583377614311050660458748724563043900589524016768285630589253961409741036419040942182610398362537895018521496551295118588867349763291893605925556426272633537004421342976269134226174260075099535135450903102828322207448633779329954309470957680948376481024663446336352575605905409494154143344355353640446596229994939546357999919194243578833047986705143743328615129492341566084499822280593292930090267087892687052531425030073043362240202808409416185969556633554215853738658357778344585712729520942426314822997486394841732869064561071104560290356985372559264654554101810571068698989172848286789891872142478702821353746727070133771008660900118300969054541147241882726623032011033995025314294155897211305682399317794680086840628702947065997109348226860023458045770304379290446475304706193989133807681108705775815780577366702557649437424061133008314548128448163524465085769948689521782666819465725980695273170038360792905553600743038254813833970471103620135923099927942915163329331508154223137295743483591134834474382024041173445088903773572791893130392349064149517052585103938756122798397898214921762802216976363207853582531984646660628957546992520010791514413284033786656321689032146270338552124895009861658834311015477822045861925537331746729296408315784763818194824245377240745449007263525296236945296162772416386178043255629828948429154289208276708829065271243598227896686147646507636705434508177576142793402202141153567924450574577756073177857163358825172460599456155845260047462300575445540876389198876460620108864725307249440600126766120565350862602278596805267397447164591570513201164639949193203013538729750120665975236933995231194062168182901935879930507811970182769555502501681622635678014414670515595523354652538154440325756772722168571158204683663919949964301519665729742787057028403594490038348305499111903807924804622150899301504065723752331630141013086061280866020848844806422590091403364206656780401093980628155185132724522035390769176112863996724651684679020803438420775697800695701504560087076011861881148332839470148279280662128668911224398636607265147783182376645753680011216040593768322853877427432443148317417464033218372896606421259246922338503327276965999540936097651916726189110252364621134100310254288850989246005700912000871319462280613712839042158109510911119699224007352432876980240799501215240718401893153841938137381523931655732454545774902221506112648485489128867507388737934425543260863774449910319597004897293801231820753501682143127876349077245879397000230734822716207004442430001803809598575871754016222456426584556804262458825521306238113361836092590847949535451906134210399738948584397868378608036220505797585710640173762872079022178629384409297319319132717063021257345941605287689549826681585173840284155111633653342065701597776464404912057650289981702328238975874559251786619306487298596649564619973405138081130727456057436417702107037739358900565004322369949092904563280399355580123658825323012540777314428107990396731696767281817301808690917635478984077910094033129623142337029782380489665560024684488502480905304024796651549880725721266660366888472849247037976149507011914163201222430328946561946546858455509183695463288041243062413715268737983684295954110772361080614022816548583616687914896896571100686589753302535394002131254506912153161778859422363199962176509663834447242891366098501599303185872907436512766405560744867245456859974775285757369524523361907753749046681996797389556836553391452323364716744836295933875311372091317255064286487761250553702404568049421120475485705377989500234937115141946845824663162393105106896119165073578785433493840681065889820202133205026052436163892602263539923918000951245782523790718080403497341878694166455706927579782503279017270642541538305728539560996057384596842273463483932513555076521121460001825908173468610899793918458987226657509866087332056860812017567017142834013904297101480745634331766090517452764646710791718625775890682359379318822842157707902012249183462933756730674024225700863203570186763413481127589806636773137882233782326302535394210049414813497653273333204285682437909866963592479401840974211626157995528272101105552278563315029370505315114446397646744174113240669950257280553544854197562708887984763580730896771677427822354335138465430837489454538219523423831525532708764167311331285401709792779750638701967329701779469658812430533206488975003938482625282087681712131857690415535813819791580226623001310991302871264505022152437284853556743511018710425283970755769008803825292719733133920165131775452432487873579222444028569564088832104304003594135902486476921971639216678831690845882354695472234250384668829265821274068382382210343358836491397807392354431139852625176817239506194920401021902166565792138290846795235855748042673851105434987155092718389707971441284236312416985437986839687353558865544400477758700570775318950926180433086164903847906260786992180265621905016321704752625682391540531335193180966886507234646869821953782474105924193055785844030559762344945755982941722906716844680770636963034681640934795174222017008263368142678662875277420137500846358311632630226991770996329508387026433298198599139370727146492444149286195302995405609352317987303778785449736921077840591698443513166629335826144974240739901011950684851519710977522147593756127809917780444201132911309164864682081194029261801623868985283085347569150622367739889630329202045672212697104849784505579890244780429457222917108375114879141858471266123110360685031473191488039336926226762539915387500814471569609978475257123856952410691024594061441089542198872080586545778418357158447813994488279077217159932804842114388830502660694370701438087044128196589967947908712949231966911915688465178263272835746805222499455102335338444835416139166495579908492014381734815288946871759720171829486596632955259110159674021243303940041742947516334046786781882615884961992746383169817396329292920295315549172863943105652489738004822568496727649996828912772570832502525395656392948635572753160795936430826313852227476748598662585004813481177207878723347798033455225012318863148222070316394752820682721690004247818037893520874647092180494549373491350212485853402698522615265636862172638130602035376707446125221314171579092051117400197772951217546880374384312128177237186160675775804259597251633620642905405621479244058375614116092038895754483953635153094519399147231047785826791481810647544047600618501976849859872491911334525672018076549523400842711793318386148710977259401785163182697203497260561677197852724057579567698868916863990942724360534145383143009524521737088870535443371027371331547187895626326137561376525936601325609583315974359330971117642512852045316280123907801482754747269648688417056467899253700298773174606451259874383920950779330868724092096763269849124860713149725929307229639602099031010374684254547220712618139685972366100207543704579258405479324406284374191704309708752921078054068398377138416559182638196919061666139601286633352577441881166352084705678070199981239838171193533390243619138928853487299183817810754437059931336339270228841423613138847452259194534803588589065277715359034278092230600701084730569828086054015680539911404868564105703170617791009880689074385583775600383376323469627540911175619122906863996965287248605668017052120545646927307720397815875559938080006677583798753402380838549190591709531311679734602322436932017494595966825323698955316499956685026534862043765238263650717122527552704939019081314840758030600095945365894375241417791097439131782464994108361431451917363808886329959562517436656843509161611643961541422476357271816126382679263618135790541580968011304026783878313816798460457759770479348788450792364715394304380872863913955437827200454526038555054983166707426733169349121509008795799845143951952380571451924372363564712192857331339389631102917883605787270699524682356153874354166592330543111085255634458782485700256199471966259017050775385585249312914296747990292323640778816742033530085169835533935383188011888243914774379194565560194129926089765884195973576789349298014652557486044294159955580380777327679719661074803543042306872373238166257941775068917900012241333466753292764290081029173737965791957660760515651458969566161567875140205510175849826594006176275348483145425242823887215880609420589003449032792814860652397507070787334449403421281177144345470014143445810175854668534460567710929570130630186449856230332534840812774711967450516370289390400439386338199743162029563667803503811279186148685316242254692620599595814644796075332247676803662050336369133026536622085949489328168740373975137930472132156144718230312948469253081589661245212624066655143712614879017041461643369441283282621455564826118557480274462512219483287244275580995095485726421123453884207066638870829532389275857164958081097529409445178452555756449486368627209165282814383078365413582437124946291910089864974431786485139019578671035923026694863448966379309920349455558346925998750891270664485594983278974168092016880048522379071302940493894301917069909507859022969364635589696587465689002992840525974835696249936274495611232437549614280046563704156342006147049421541882180358666973899114802517637975781177572800328459329572158222521701762195959144617849953184067605529852641650163746160909421329483092225528996317513706968956880172025796604082454087996569501627024372407606479055173301661819334721189197779389523268227292186594179093713475193876231933887413409378644236332633024635925988123432543566941401371325322609088751993902312288175654257120382839164000026725367335151283817935360718438152803832613770657363685307777010186988588493956058181954604021341447726609674831899647103096035489568511246726876056643448094959299765950815092957298758322492496446246901719166124523027786773247303614834003633002310987176913635515514191965139338737696452601333064362746741618913579999806545770031190625349168762866695631704778651007480037736106845733509350996911038943925748089488599846754758375101047096835245217518188173789263769544906316412749945442073859265646072910259920513005906623608164325792711306588729246269432329071196005324872482203620993363685205648176959674868723849739836785729970967839124775111907643301983016081723105754702061473331859902824458485899206739689733740364877330105681770795520855603605037364131221536554779698024702488295204552998476074405884845636446040650389224460818156028165233356423408494771396934746007313936732732417776288906271092772007485839727420032503003599241941044070427660942076389399751551235489993397409886282140095644537883874053775715462583090271788768173738948801320553681268057276877390763014869774306796429637542093153844614929230117038798727499257776285102490446310120132572544206861328089147397810462332674400125862207384526572313951471637708972523755296667331375130152191242567729934304238818010555731083925962841415346452633598545956559164140481768763881393469050435614981965009883077540304441885433794052168370453422728167354738333905781030609116878671976703105846646282712550507312682611729269373988852397976500808413120522916126921501851044808839552422847230572241951736523355360493637740284908615509525110852995426862214531996833098021037450418370904852263902646077522120591837487028148611028539227248928712325078847125496702680495871365892007399616875278134183066631250280859139467742904450592314733767934304660942145237328707509278093778316703095889725401335580602982666206539111038896481387971166121645551051872175996938807435583885710561392280673147755533142855522441277287414850932658658078487750153806038111822257434058139295734416955531839746204272718957234119951517382692812151789358886796867324234568474460685355321302291378613946145566684262954192757818590593112646821347197687117602376296054704796847046225062291648274170617856322588306562390605058887248602171780172134279973597821263582874391549937549080910364097669427910054768466434093205739360555654127867343284594211144738298641248919805534809434566236618715080726155309794476911808644975890236557564994450701850001233633125573193200617043108194681997190391827182773634701824651529832071610020629447712634393563125299452305881406634689816127258314804412331394489780696264109965116727299369427603926037241063692296534211390545734154843709424932862349761091398057165169129640261650509008372875722997270559415840799145429120569885145086963326092068867734908768730514406458319022656212543157155601947163900695563377676323307233919162355685779457136250730869633298380302357062149888766064444897659794828728378075351812370667992144287736458393355368804865226620926190058483291969852425017767754455666865827502582091195811393174392948207625546230988494720712637327592411943431285694360482520676000141228786634891875703673805886710288705764073154733976967267369843288254088017835278481812308353325923774645000778798894436636721332711361355231977526230890059552073664381150948782527710280632398761879747733817330293404999697150800835496040265132117996911728064864720237771252633713983768239255849701860767571307893279609595790117467788582046170887982497196758863167963776385802059221575229075045531234846039490864819343901874064323756413521982242028379968504315601101023154471946928692210802403207385639164112460453235035049827895444742153275266899869543031953772511719397756644650568414316785934350182223791161221912107017925023591122115421342867650974188270046600207640199480322525181559812421598076659039953083748318979286266318631591579428824880665649297755586492983829909797350734325550984206072027071729488004954755672111937150927842005751004218810777523578478224134789932871166098811645245401727054612617449201528090962557903953835597989741567898991812227913316005438776219649182394715351828977434671574226389915147583820634239418282467571677310159185949126956116158487909119289977199237346426653383232919705533677260905154066401570160825648433815088294707896805042215419106732278240590763987496371373863438438760516330824416063722273508690245083026154217136160189326653346696181528274457881800112096509798049378036040068100468486286817946553410109562991129075903938447119392610207382145572768863170375262741562302834845739320258803983020162544324889466483516598679555587345019707549559207574416741506529909232836826676564490347229893255301809005066467377392200296040812100898941122146878531382683928733380199781565537320985726968099326601366549599212602823186166935655913936209267663519522872866776497584762665825511277479846185670042117420516158388104941216043247601016493722658170335056254142528505556842758415848569037806394771471025731539119926857362971945318339909020343031587896226045018009822161830381811077782432300348049836374576167845366685501474086166137176222955794776780773112899597378666017338721139332158034362722564349529429016749712874377352598534352971851932071540337100954349533182801388536138317801644933390199173466339532783230349337368895232890172435455301748052597343903515963030718413166471867292617380612488215351332847450261518242392740875798376003236890442051379953914318209272236716187126481288761922863086273216979816151593947505350525994834570575021819850476190851399433667876072892738334990943965893677028740482888949996341853814857374716741367698825357736550723804748345535771941138371790669187186808950730527891262097946273375440464041953873042220366368371048671072829971390170142805722871487147142034703307943838816411017487500833692780730980285804763560988294936508287060931682264688570652968940785438449436451412276773519874867527170722871096678363571034954735168186676439629399978453079180622294401660236860857702441816961461369563600349332694843822001106391952068859507142954447370566861851312422658098844532858170981958501791381383347564217970168230864736759912522588619758755715910118771550753260741551332129981182357400202101233851684534307155581384483877169770843522492685614963643383368960107569298989978168710618441480816455077921135159820146645999624210578345419121302972252000148422737015851187489640891165900635139693659890082499361655831683207054845001463625247705164167133000264619842043365251683025924751914183492209288764361015550780808317350533018654125798058817600612332563661332111673566035020503020455584928279859294882430661010559033593269293688011296908516540074040929116316159700891050951681591001794827156776000330167101631472987555869622601392075103999754898318483005722842471271948588733086634119954100743714913309574533705916360934055243878961077230385184716866695881014010079830780428222407989906540586304194300732019470854203094274556887894592189368210338952424704413334469991619980772219599144331286422742964247859940720190558570409797069500189855431625023116327906709191784677229189070202679630694315732026942926931934589792860764867389608677208452314592598322665662174884613047532134634009710976014446010679275113002131396187162629294192965845611605244263270523165766627874531790361158815119677499140773491084060152449385048105189998050492839049875675187434300399886065231296322663239282310482151292555751014735602645391484173590348774404105911288243403671471828403619792185702538788965310431068972181328130847745487238952513349612419245420343116618498329498680933674746494209378993222652431937322977608661473568192796755745836304498800016042379072759437679700013313076709033000006988116699168607267700189499079264243553702112827211820985984808516335799558832484794158886258321095794981674277962814035926730696161473778721859999189020246796520153683884240467335816848807958414708981470540783339170912069563761668545887325591523954941775202056680394231171931679631425956925370024357830162960766921995372820712783077764190817948495719817188349544304107458429107315739891850550627911306928871376804944135692062743837132208893435161292273155265618925694688646191857473572990875149429987210936034944867226434048566213954632183322436488396638079149918245662120247873817488274241528648926467532962686296113779061893742473947233897530452661967633862618781826013035828622099172450181498020248357298501452813735267723027193908963210584609778746868514338497637556789167016030138728791270968040923880193923738417851937549290400488451560309920765582838112444043550544665673116143023655366372993404605250607596486919446444935482837897428444665990094433663495132706659815147148669014148724816910640383228918649687685344426170082451923111158712981843356204078635359363119136463254653730442745710944811195047413797882487912908817513655045175641642687149237612982723209521683801214830842003535640181561932448473769059284370610478350152995096587256559575645452803541765913301455306635481655061993005942726132245354074460536869598557796416391516847913939160833016451857201722113010361980457759312849075341280935240692436805986515335701731247751476108859304216378065047964324890706269412662243062332642365801861283032753397604325036275476035391780296585962246831018184588019177062102470003411833170734364018763386837436966412957532972752208371760665688493889313476848040810613570072896157207209167801132893478724680163761105837190380338552489141282197108319329314670395522678416257444077829622965953746365108839486996222317935874749478696781918206637831683031434831902996652417348571317682723855222914565325919008577873487482661398797351863423680421379547719523620741413637716225013430197462993260471898201672494346472953402589151614908615574976191941431944005166080824275940938582330261855293894509322087636523009343268850273937420173907561820087438172563236835021814527444252851991105811047069098849290016195624644901071451878927381102160392080482153203389683364057028648216525391438474538913831636785094316375966562254531701436564790214621188299293415180173691504496385241150141639807333544568525795054769092646450412052088578300563470933433394226352542408418494350992815406520564250331902572089642533299098194009363084321435877459066567873863100688420462026716840681450982753817868029500350835741573003143979077355842786525922918377005227479161806698450911174601490444369841641957357715167469309277681256705462237995296599823822080096302817975034276152516923684336258217695783786232575438529349166888391801972151010658581307511174188346759522561983392164130209634113863737613230479174761241515960430494334567054787941722979424561502550619746646764960413014777431755019787171632999941955187480698250688360752517329915619893356285920285032791703264353472236861386716196239741504218152340675714571946462513299109791597135409142396486317246410141232911499061790365482187334512471578222222564429141156741987703806451155345994655891134424396148642710722952832630226428529822065220124851719641587633642005828417070752907101247724973497899643724342309946124695881052061020761303324606967649407700707357401949642550136112768097550471653054788991133119858215600054814259435041688566465777360557258228183026556844230819644417563397141032054262117922055925755431867908140862879098801963909945182415258083477232692098508445474580005482188473241469705427713349121491068640263491599895267274642376012601506018454669003069987395282620937269530055820450946370955185874784911525265833907354694498529617289101474821125136630095837710769293700820467929663962378625357166906097181370098858870347933812703032856232456742893831830371287083458711456397730117800849057217563757990757545109665808953445962920930758973149287884521624992946484587939388868423466513779297454911356694629267584754905570149930648854262037924749891458378589897787609029047267120267687958594412088039242201518659770854766143512972046262741183524775719248807353209920756132520310303340381087501924691725027607825093142526731408562881325896032538642878435561452766206027817481867825993844941500237187657150948488633653840340246379947404098484377846406104086738085560914123627960672210526672895316008748128838925244533390725306642144465525095181209741252196854232972229658673828024672163557084634813963019339449877006497789910837678370267488712103158396631988322222405303347866816452112272555777327798477639793800236453800091101335032500098655865306259751032927035557539392129178294555697469068646640006134776506980045177084431783927199302849730047954263917339764680484874741816242697186477396008556066513641248206081421226994289847476828840385556440048231207966900212946389569000949123592136880789300017502066144193006861531973194037715308876804884999297172602099057587398114485483371921064241028284059990448259060912882986252265313035262346914841571975501812122905678825853594976997549214221998701943446475299495256158599831503495283323076657379787212739167599502848795895388775781264897269992406580313541593929289972268537813813201475925301670874342805006189338433649967517487380697361647061135719966251144368481430200362076977686189548122338665934967523131488255492096629265419339468746814041051429686143025416541574283477842789337230070824507562381465951344196590041972668311304302748766469291616037298375091208570745245619755754370022517615011066841822982041487364570810131136291299376618239657773701772641104894101886701099131572141629205311088807463846096381216478850781215329549700505633689997282128973485534687152071958429492862313692291800623648483792018117604747965708891327366067129460547123565856411417869709401550922176752571155534923714675192587970884633997441354250492954885874577844504059546012616427657583336481788153958131554824035864682896188752509095865205383352701096669890363413671645852031428293468197399198058378228239437277894527272115533586665987680657060838708387297874549957684036025488900428994395200097647086451099894894009916116667554029079814564712810084534787190463109996855641912342638958720021917321144933461153172004972067864861038421005839685858399905184216518988551037360580386005975229058304461979479161375071874409794273466166515862626868049564803899987019809504104374274291706513620601841652416090040400399371641432958715905997503986958935130348991407109143150354234752011230173837927803777978309163011707440893425918889452605785741036602495344896163347654303157133336437586299884108835845018602746132044269961264732273342241891096686372712531879939266908234189525726017709427402885839240969478109678634470753578319554329059082616323848958824653178340828752240657159074295339396164835947716177964697205630046983585376225012812874802008312555256498563266043454667695188603434092491408214449722593061342744391476918688174269732592306042053497182168436981270704747046847353541931628512179983391611598496629194906936147896238977047198558496317340387351135516312111219512209445651065377840661554021756696912122609112494178159483874765858127680480827801936064557312730430386613037975033612668862158376304767446408253952430704000754182783656722666076831315091274825157257106054634760257753978675077407985741172973642424530047234745706758498183281178280108557701197248909804557932775750510897328058020571529772521133600504809006344106672011661423373139672876656940395827762332623316218711885051438888572369740143233177057232098703956654564185802095352129540432982972359399576808231757164950391505904508959258247087508827927006974614900623259805523061057551159801337648232360820758863240481263077391415517466446299389542231665441078052919550696466644347791373110405595595454778323299465457274516160307191574570568488043174460325168763973848927344951251430881294410662825753641560302858356858647700061787949393232538363499796051036069849614806631205449021368077991143433134578254778888047102526429284097940464957768098228439218533801830157762423727072532479136567179274196904581957413448032979187941272008609152534662752590109833016367328728964435385677394844736104183061987037163398702175951555160857727452094792184002432965804031666621285104551696423491736742090841842385413887104534171075186665927848791316568837160594182148943969013077016982465161632487588410683884681945278081470453455277291462595539685438500412558459093350873456078868820140018230904957044172449703039224770994046790491090700145842978248233951337844587406501336580671738417230119844036213323140914010824965935006438854912216084243048423607782541533318754608556736820176726862684331479038735455170981439612740936278417361677163039896360020074792718953105386176545225457237183061190428065909469785130349453212489220200429554564662081609323349698333669280423150220211025140132942833260986988271885562888128259951095281670243723444302205944407834246457445390660139931022107559467801157796985015582966109205288635815042975223435735638138700631604942565427040617026454545578093367616800626698147333100116263309192095802360353739769712232293808004012416780914212973341306722564942787907514992941282484925462709190410422127449364778223626669992418670309536013492197748924978617409199102955389269236618984430214452759546001424345412488993296700810814892971820007160826945102022912845418693487362730571899913920378391183207369912009859073468113964318255453800588913465527325337965860710992364374781979859041554020296892169400562385445276991247505154814324316622887798658871700544919737445704538864809682064590903720550507553289376254044037255688603394278898899788046137542905977380739844507253910170140902064274545545011169519230257111908911372037917667144913796318222281284425596399575602685741575363301170516146472421633738118808357330094097080995133374388909416812582943368854474656973865936057782471073499309132466845063388966959350386940078530043302842306574721057074637440377662781263123429782974825651193586109253256661685475636742276156811108150656076263491471117018847850699414377199324120682287060073983179304322144274242968563341548166147881292249889581446023659602701074245080992075080350689243626800728376842648511736675059262354987104674553458778444578716884281478185243477345898488160822395929544817745089420683971678970043885208758269958110775110918916406636301326344669694581172502763020703683919795922161611622661088509129676253944249220110364200984396708242371826627624387841462899360229632590442305046184789832376837954878130865338115036893300510516638891370491603715962629337496858421507898086860879380425981956878242383628992015085509889184800778294457641835883847375405457364213869849834949289730336013547706357909437331357532462957019063957351562791018456895945856539674218390411863174969157805101676009446824061254768124990914796921229505155813097633086022629866066069393372621305071603476543369034099261664735016664059100991599335979625998061075975796907725950570236095216443437385810119648898018221364330185309164614125453762187074762608531603916852160756198760216089426168157866465183744305090801912895176446593477663399418884025681316751133949805573046535019214375827523305222303796383316396348584671624082775514516984643071615208306614416632629675296392886510940844704703985918876718199956226417196950721899624869766417963845960748484144455437587353043629980284374731534093947759674554150311774095526799775347889033185470414503635999646283864091268388641817523367557728805985938635634002370631438001755915828390606845949208302030344407591963649275532394609652874485977238729980158034822792547596299828823300323938573021709978712601707801066801493975739849713116427803242084179031809584757981527311792548549994492461021560949769282539575458590014514220158706656130118892982089950338683069942127874879462506436687772073388681049270611019950655747898581527835967031602082516905808296089878411203752237790632624837092397669196183646812147417929645276716453217169603287185160453346832898134318854827051955224056003372985332301334813390633750238245472311999149552437582617051274319135796439353551723694259351326111987438998099532000332811723109578412378191782991930380498066660965072263767251439915303831213821481249015295233733554458992681624359525654814347017883245288514035564237816901664571785628939519626987774643395467479304887859573387576473289790493163419110736683240434560892929101429004027890563480174966893904178209984319590373552701781968330087488107490392473380776121717615289923081141190096485019151876300245464087705631015908446225059608431237851270808119022391256847763888272040138512818911222224588777236828542879610472732502908474517344417262423549846963046008742862230817438491898473500712871511666251087308099915005140064039554758262694971940131864807727994748461092873072753653509817342710900184778378537646675989040100618886959267104863067327711292867364526488307805077169279426102361640582906037927039708250878254577547716245577980786486179800901243613505718545844776733846338815282577866836977004403104633200477638408507290639690319129100952797794281036357357265924223780839178281665684406030832494798292603334171142798374782516520892469735331958814386773338069592328968750344598084763044781283791586182730483267713571641791335523275198358637448736824085151707036370290397074392158217616569624567387231796937783017371698965269191373782092342584465636308822072735259925635646064090617510003823695626216218327210337157095707659663021063610575667401560275327694477753422635082934080205788874548043819231642887270229165440604047314128303283417056607378358952500824529410050909157622654544605334103453314635773917915962824570942428943480480873748183378514339945753431019748158444321038569312992172756586689210628764309229042653059202417086070028761198148927241692781715865680160377873094502908861325239740560779524955766290369822408030174977096655655135443026507377154131308502992271737143183531504632018354272089279815955918265459500927841081594191160356835986759904594362343358500792601385159224635948706719799478105823664308252203635102940513148765522432312882875997680054236735126668909921693396104643293687239642702482369354710220620608423614822036654170171064385257148306288433156071883893400820377327193084294029986089938725356855919254301286345827029787370824531237576380179559235653949052142100995959011294791825279532591018135375860659568424947447797937691247211949190161410661234344175206205919834781508231449277061888658332903827447829236332805050815499955310860210711018200630731699602700406350855864467478428059331866794638414610977342377483236007646527364953005644491170427212162566104215673626383913827711373548608762062989257729538994177024640324827924085019529319546811192626080248325234471210867190995544436882547305967399882676354477533635530155359981415221809858835478481828445885769388553438705681448757997544233668102774273330362022685941619355717534661368761142903183978938437467919828479184282014162299868574020956679945543070206599564426514709028047675615743608841065549203245108646189168360052300618315463801009729937371881361885471694247557044927032430851513709633436558641453474021746039915209304110577435941349683053974584658284601436855618210909567545547941569678252802773150552913162107861390283560449124050971146916124635951050374858123947282624036612069383806819901201475302824096123810048619402170400822313526711581715849305716539457668833287028682864523437095059716454464785872626190605924066369784051322549084842768914134673471962742438283647676213612698629011913531509363487434467907133109112654912967856067994472589929076945352705994485012460708970743624441470651817669908561745797802699487277785229531600972625792586472566580429800535909223263893907925321689998982107643188675036690393742815790826324100660662481833273464328590951602439554349375661556543678279715139763029532999404292623631773462205538792926144466567988166139455571013480543113878705957238560049700848897891508803612210079902046695829522727805047974300394262751189188805790414317268765153936749733083279214658494298924803884768217227398088451594460585168644911643179549220754875867576280669530806851145372947360359772994759063566485808156872004267336136583298211725984429311323896872645066084260207596655153424183207845404800956758872802130943292113048223635084545955060869317471081412015694401817956669007536429033257422265427610263930998221405033719689214820570332354316312073487380120148383125708199947344918011350648380690045131768773980312355827651056301121853692410953247080643917625108348608518363567874228850458982259333447678067060482904300986084341833763878442956027419338436616078538874017475755792411092857124625444893963829890829380438713869497154259825064027811801799814704760033613216607843071720760190719617177729638812550183527699288006409385238155092223785769692835432167151368365837537593612332911824327017965809851499539592144940786011096543203738656020341491668313038725213080824361593725380213940963103742924169498601078849629263896590415245851733479940131664032846442768737304240061831071268367892556966573686407035056409596715067663892298490245984170673799719241494468647605225573963443713550166808125750739113868923571437512179936250902846320690809278833395131629255617441005584938599775078950575639926310201843877384499608146896051615383927411081319950930826014072948383750917466717670194556916893649768449572415771646568251111417711364134191735497283488021966484125592058223994310370042534593268261076961143928672609686546122637985255465507155193999491633519695913553492594345356837741170384328671050754830220255171956563903656156911965507231899651327523191975290760745835459623617124413872469143707058955343596064775052203552600261612542292963361660188817055102456724935542758088740669369993789991619573885230685879915840871248061989807590745546072953850016701526488225578486325846366289230369583618880748744664935799704866232311806170819560505578240493112781485636996418102538701211613838968364083115314918318361727157884807948694582638900107345999895081685447210768826444580105735019113668654304322527947915228966183344292265088516144251746709954747142025492816225281316767314283648652002270777537921012235114447962089646093530239953592907607149676102219185764171532111724326454151760070170354630059134080077137643721912686046638039379984523125698937774845766201203630281725778357846087092760403654425733045241441449299278846509879826914884756480907112572310815853190953839404319919371308514065804720679174374298161925858320660679661686759482629725126160716006845177859650156465907649129743821311247401055915833451159138777041299562593760139834893023073302079399919417067536142959668132684484480508898877007557712483438450520022940359241970689618729230594276156807597561305420058513203816432601089733236251409099335860907656360282509114618353118348636408352170597296488776152659925385931899113058261220955184335308869522129416033496360486263755236909160331572188636779940363214857963793269504066252270556443138837000405713294019664986037458645749501214611077561938365802703655479611624495159111510230978040723459987026102654514465112911652734657606190230094558862620203306706492862515754610760641418519110407965928796530653706493349346728219520742947803698188063485753830482343607370505366382421276872966952136636309840961502952826054189754730824377946879882040683486712248427775080122762071814562984601575512961241557127163037214490969573486459700159378438663282709506937949161414318703995093257587599563751014716790748708711678654333898084108116213125312446765347853872760378517587987306911411735844034303948940844031478814614247646085032619729953313278920974208669462482393592230072913742189938124704297896687263242796082593522959836745209481160954376579233598215673632052796640049726504202456838592976048534906517021496195598258306539864138164546560240182979075933529064328052236372948498425394271072010121315912019427696566113450885846997535736617098254856244318463309355507386881378384578341034496637065849035770865538242618365898769952792932712461913690555540642305320639460757575683883526053193059632358044645404147204620234729321400160490208154171185430955859522734363424415101786202511958317646034996937050371707726875632771410542021175458824555151402495415119272239943296189533845954487142796321701984345479584491425647517571673408081764801344875924205150358662971222958855959925885911849491551793911174160387801580817668684453062227026466236061997442877766593665376920727566075378362557268098445225693256620749924165289287229879448899877352011848642059688191795273965870566286354143167974398637567559184420727706366024168836632787183793276099758658153568772138126191778439569379900956882770293490700945238539025056671218868161793591853263105144861403180861776358213786710164877181378477762758220348220717142874839082528987317354712898806820870801993600654121795136659347611336338944492033342242567448602827272025678722083073721916484917363506028916434906015706071452057942662068009660597949860595901876919617927611364186079164019061986006517245210705618482928595419099226408482004410770554722662509933257461765317163484527564377758038798066226437868197400381448788464835498830419284518191720578872366123761721088644184884265002918473455957855097581011152320413129862152475049355098785317130830203907875409845299636842915554726415925704360906491148960169038503958318851704473962017711795714810312634459563171418568635023914157025642079723035086780619355164532298197520587771395191315703412467898041391926403236440933939071330144806224583429417015192755590319000573590252940295513551571073314294133966404861465368793881382497482165950461567988855380036771105731028023570361964400776100583913553153828803418842773555837701901248212815313656732924337973285896074486684845666853268753134203216441557684641922555102951383469293335169991355292767823027067890471635870203650785644342657843581427712152233265650537758854204790740012358902730665560640979249571803501358647041461860866412577488207814674524192315709855755527621098090043293489195648138922510867146262557527416776406617482776073456039492141629415566673283497341399626884082156698011232145500599885831371725179239832409415205111521023132447135150751402779518803567039699135481276034779515843131255459917850021274699373874592827388081034635080146160144211648418458770612858358884017081437665281801950968694973095653788108349960155554351672215171604689208715084113199483902920471960330251716126195883485649021530565848797214447535422169601265355318392114101773113913032722991146268292351726281457116154530499117381276069343550171166086598630941178148848776244516134894039544741568689430807635621585417441258132534310662669686932284319594435565617529652850246744956951438711360318581574480285519287645046435064393317300993411256649186717526516579188870969294872249480492343711842715861358031915641166488992833662008502211035386920298672529597365501268119023336404993993354623363267251773021969394941069613531463660521167165702727427610943658525339771364956118016778424956729103991302553446997106741379220112660658944648736573958618828480722004751299491570454089086305301480182788850154652530289317987788328590044132147732521144160176805933983286184896995816288718778066381333198519043384937261219581861192427260298337224334706071307081286839971332178988847767974880723048830382084397570823874413247142038539508884932201100797619185028981790778328904651660167954448080614931582717381510649187900855388226179932389936824303303824580754694012339710669407804987477130970507547026143676726324618642805957346312052325017641494967149729580964150460699080284963661458000587437856907559041956551210466278320932556808964109248005669163958160008131708343056880117813810426762934883618262521975835428804789914813016701425949039052703494805295008966939906189525093655330214363544579923247287272959041349330555136261691505037025810876567670121895645640387627250877112943229091512933591081997310053001092942956813479874376801023763307499983617929541561923584746917522739234266614139743095535499411833418954695229103813591603710810789747363684818615094858121962852858075590400039503645657514193002010904162903325879397979834947700574212055438777765896824633352147134805377679741684710866446827973816415510889696358609514597234295135616966170784809325777729341407916802811679998767757103394035755625524585671364435203667620328041359592726244926032719250767445469193333348785614484588873998260032060098024159104969954133106843631736377848542955833071701873436848955905117142155048689127043306260642204093705150693780286984654727974065883847155501510832790373529003885836214699058566935395739626426450432788313069795283057938295637027479345631710071373748710510925161879665203618151625384711562832627076360132677100932216419560972854039595513640146800474403070877331942632962012773383553877360417674531236072302379559028835343215156047158570980544742821360722028843947823569182593995034169087827141642867139098295016476287204165557085384080421866674326188941639280890555472125128509479127473705272129134756352483880575580412174947795695441720724737221919115545671070590958759799788777956570161322336850370368313565443418641509764658149396802827900686119690863158893403193910077019971051997830362056837920919640034647522744823730927348578098885915919263162162948394705548098620772707887858586753953919570004942582856986922890844873715267313137513646406504776240587383524931209981629769143643295819883532693882078263725368025367904734353131618871319028794088697533954936225861822282310254825978446010627279051839094065355743425585525556546477246820964580361793552540363672900376021357940591008428996773718567265112894320791501144313426207411185599460777964386671094195523251586870241917914457658468465801270461217797922396799425444871725033712514235694118674439996293013795584605908937468471853416562922473999781020248880540793455963322377413656743102425013850076399485169062070895905862227870357778403307044301593290156371893285397985317461446798773779872480749601248521687014069603627474189968647003197038534310732496957877675925124937181559463002106197117715984893877179605084541924791624351255212731986304308110915401747699358095591693573305480074064224488801752313385650677105023176298333150513675884735820661076619343236485445181818437634722541959277378463949516309602177990895330067594533719437758724506876348656763044913624243830907214046882201971603558657373610746861845894661620060505938129709011345445588823676726223663919781301588140222558948171836609551158232640901877518460220084580109142309545783648533711539144238572456213029109524599402717722816637967976268824589785525334351489861464340576873899124764463764625247831989575993562944287454704075635272886586801411271729891607373541931804379239484101071416814123842336958436451732361822007620817078837988346621116060906212790834922454038362819130863054493035329749091964779510739016206657212900489356703281018534033611569903408905348397397627875981789928888502574874334826472905710586420630129164090250851373699344208271923732833103512929159639736227181741061038788093632507725271084379624364769943935645324007751353503282664121063629448023050700870590752367675722741264509732931091673597665880253366325239245304516289356489791170737119007165663833891238548201062627229807243688043945822391306411652655400936856871194596467508117482262630965521302575415587591386298715665451985274538235048510013824330934208178640939736901735205799094063010231390317387432927312639590742163141508323577582995111593687183155442523602070291760802662046389391426925846018486069808622827052289386167195300279759007301967272014503897043951249633118156658917929092864428670071604100119092049884582932303897213945655806514440566688725344234375997915817641278518595819796468537323116987203459735429417338701573002870770974529751275489011061086669605459557465011162436775624330898917271438667265129842828726134411186107872453399355920462758438484790506230651524183953686886839390385853140851161543275600305986861996873658381522538276949411301148127127461566354637407438490898693608693616478298158499912866381893212565966454240996898186404925758557549599206901903605896411360179055512999426044639489012503297496241194218946353270121571868759503249571663497780760642533489197756987353434350021291707007739717110559015329554483922500134076643220329694067628608889187823104270540390770941654394176753592169949857672941507627038574578273507658197462957811660967214109215909059150810909071009158599543887030891453245588761899470725592051385453795968353884666310779475816681855812777463700200906786651705448786333350821353677673944318740161979760062967001519226642204344531131222856071569986237164924462917810564585683985292224589623506351718668493770503802138100129316367211754607087252677153054689103307281768054165291355347890331491698326466127197806533236808500864168337227572182541454490560882826175517637020038727985758863143174175621452533957221031168600368356883587242476973146831197887547265611395720583660680390917245596346682603044922791374841411498100883732889845350257539995111191002627089905046516878853723242876085525791712419049669112427647969884496962741073167554097999644872261229446803619041428099324224923079746531032081034205700032322713594592234498145021365463387624094991894788550628234081819116069860103293459251701322637209895249593535223897060912577199775948561853257927278859077607170557140023017594977740916257664079093226792795399697256080866287958679378875878301564085143304864959978931427303706290470053479525155739619425171038747359282822812229566882646650153442812817540488772842461835502071540753259323278826095046211020171933013715894451979211935734537508253789712574590764968088983860504946166118948428585470247027621219189728169257997689108926662793943968493465340240909102055286728373399152225327667101286401324033872922473591806805345506949527239568394407107275881871951680079919137937712651635171640052922084515252474547526950512999083301710006834005784523556686891738008336616786183387530351021308684467570321928835932950905971011921999385258894020405782257644189634598865552428699825151038330839633759011457932887590344149146991157096135418069822359299758848303560003933403522251746566067804252679893363260331400058974728086581995674716466511783175480685493181877235751832017474977140460017602995861835120123191294356155959902621274703144121446850891862280673217157069228146849740236973070257783843733055353604540085243466546280084347986027077294517291082957452797458590863164966478475873521068803426278262153913614374100619738726364770377844963372550984361447744426258207171461855886126501340239586544150065475896865364545941842665620764860227951844803848407805127288863378947376446045365864013504482895884080393665270350634201718476767306138145220979558000998892808170678220103579450427985459287948122252702922148132843634975297388629100514691032521649533174630763541882468973949836423165709754156886017531590850493714169987212717206430839120886870587757131861256999371544297155344420264366298938926705327220176329146304402855201527947673056280199490538266187136844802801668786475159147499484531197843885312617483754892533833780200371187274007505420830764405260722516894889498604121481471274062210892173655712848819989936270375775323206036664142826475296028143783110753061160347242786812161419591981507935648426139264560794586250750391349762590442662680843639350250968842772316405200059976418238795073543044217223366357163876445351672651899201593046956504081567551856665005530386247915828736032288978442239489698276415108789548641284477286193802866939330039649793263105355158105898567355163557339413570498991211289438772716816813067071154741580996776468404691273142544205011148916772587077427371672083773343910877204840476905569382752170703957929582874794162539097472685030043069933017728075046076138628312753610852265039180826797454052477335323264770103021112447456195954500686254067104967549695796495178584719492350028136067887616784544420559664734205194927146841982043435023645747274448851361027478111045995456511192696524283198566745167453588721274576646429573282396871546127555101093574832382002457153587451753939006091742063851127621542020928784275537315786892982620209546183815320588722540798683918788732310520183234856579394205167412889538275441206549575361390935435588906994345853007121430219165384707589722456365479698215009970552556918927249237034809734156732687055661895938391515565525480935424891510154406640619527289803350470220500087878582582700254035083631608701312210627135021690604153547866460949547204802515400687971068688240163865792364310456087781305027777621303727723345054221345538704169853047710247036633965020042962421181930613725239867427512827947262090615931684785455341938115900341125510200437248374194106683559294510769955784529622789216890192997541361598783964974426490971396592306850469560325081372933454046840863729709311303966588483607985766773524893127760333221734993389042029293539371711267067850284640767023045895704264151315233805080425850146699526357273129678981141998531087491923867176644427712274872369860130856663259438168000200507514389796452906627408222203819427794458713775250710716511731286017603087192266135412242878328298486366762533723458423913244682107414114366517690275966851148555593722061218775209554495614548314885395315938905878504669613116514342164977142610456756671984467583891477572150602604794261872819429290713609095334162454122313922551109497232581054258449178948741886109162867545064338324696186008300055510368650916798028113860359709409466661271517560315879189563097861124790808104450507722256110573402851567448194563779303597251894419242141713048344416682025233445841886298152045138369140828814547076553317984522489838176840606871230463016166839564247579219871570883165192903379809529371936471325322325769986056838593124771536308995000671730921627698521513653382962924189153832654457761842175867180861921797029208700876123200510447160409030416426594283202951651108945705316130723838511341362989146749166805511516560324613569820256091263368284214037961913272019429330763071517417938179814037901397763623765571056422661093305860640529400741076266419308122435753742822741182863465637268679009063489159879010023028141658003918147060632456522873519174856213100599993771475627322334380904389167281791637900379563966085751028955703571306345298784357106848098121239012906233572633492267587770633765075228774821530385483775865072614276179447487968383591694301212730543013895691831650217943285547272257452187696781470550812170457707986890913374171571465742598746701465301925174633947233720789316490844015058469860841412142047318525064311987767950690815431732766322054803887183576197042101226931929499309783736296132202892155491668562977039968794893179897978983205907493245707003503591447593675262918173303554832870670021072937683251000429081186471472388670412348041428025984380936760072009236897943132056131187564038658780938955997056597129559641214003224669803926103925360348081895552370132512685765217527463082303860858460129403645618734722693564550399676740023812504431896845728427468625418152162927348043039330305138033383253655979889225679811586607679193626917272324995970645938220053795096187405950414766428935769416765296147500027489067318957110045015742583514259697428214411344985421513738015599181367639256861875585312909503181462431692988621840005215399974687388472773805056525950805675895411705515522450467650143142590248945200069481312187975224181445847348450149412063330752855866089302792107218316830652050178553209910049716964148078656633283892236749751909452669219337745074101296517043328519078429901013467420146074380104701462761672358118886241254068946223286059384507208366891986969197739423332890507587603620583160400595881773483418737337094083110054131996818490634284755090454701459472177872906458478174818791197457704616009999238321880853791385262417067738271337586941635464309812272411718129391565220521205963002752175203556535926077798906128637532832111448032030903690849932769355732341398634922547629672270384004927608017405608332983216927426578618832964037101783861850931649240367727663705141607806855296315465787716835087315586251932558840566501962230419821248046838015092807401639450220875434898260487104514908964629501506997818363981278047069628324249277949968831706329291753348139319995128294982941240546928022210379718322027162131172926859855175725589507873325487448693518507421802312901315619273458058948853670966596807601072327923203032197515833599567510733381518774989848134706878845992560030439617956331981444485522953705109101606179782208119806184531134699120582003520717789824240951340857483237935574416742156110608235520079491718271848563487787153473404889162324551418367164568831454441438325385556655335483910987044970226707336149698745731128799355755803627358011967188322792138454941034759932967249293150009191697919726861765910511278175032309959574960042290364099259140110227517930469631120142876399677707768289211234085588771952117715550709690346795003034299577500273552399181847458579563657048644873985727154700895809010310153915817048445374457362675728451273004999850290471029800942441929485402324050524333747709083341464650015708127940716647476472711765689335153691316658466233480613264464642857574446329083182826460302077345116433962809329818890062182928396204203370919034428240905392565730477494946144081673248277247555489901501787719255347338824754384794277742871134332304193004559564344400417769468470616511519825973216501498558183954496842731235684074281660397239787189536286928002884991782459153025475995908028041351212542169830083923053023752900329111149874562757083847160707596265013178300104523735333248937248489942339396680647091239683382527074447644057972742843694973955692064908610506085822405204096837321289312244559827025063200167664053118861232198351536994691261480145944441989341277754196479304481247793350645633704617544116878687530489360634177046837166162312970830289195925320103120504869734299703472089132166896008967154777156970702192578384815278998136855937344126444479174322593584067086743267562673154480127747312172308896058944135899971431430355321062261907944017276888024483520143129867862037726777192824573366960263965520093512994880707446071408202381003553719189640880373178501711329541272883184019466350718713276149682308331180938083043291651332873318402498475247077718112310305590103477484247593634760282997301810828482634431438918109353976726053163165393974158792092049150562162620118899546619847867135457430318113282523494874582119251298737218240859385839729852997566139079177217089601383851093715011260255015721361354580357511073410497620379398935923250947089096719386297786862535213834678449032212055494695827288642661024272697195873215112392558754983666709094380595627098265289770485728112353611417732661967629033940239792759904028127708760140217754048225645778799437537021740835956904070168025813280805003475654396698030910567708831369608043341942189283872670751820837340953812387819526636589089284577395438567226473148781990955590636774793699931769017737714758595929646596924847756273983330781298089764749344925275601751397259626844842134839054624385860528916070194755434157027205684181170287139881260083784919795497595135804776636656393232998751747320015097671160459711464916884673531731995306728737354964298516125672486897372238922382895448801845455361764862715012754738388572228786453515685528891020339727572495355671106078218282809461019874326155386863303956371658567127467036634412760525075228959581268764527576713283204015299054872431139332522121855910667094484304613151976772462463233309335869807770852450100725454292478594410277703042058590351042703088243520654635753426767235765707873827017661579402034857623735282487214140584276233640320108175749833247423273255479096483359599973110472258323556697552718864930723700061175332040593673451291358373722960866704137211068542207255313043912080630418269734546771382312464313047031372704996262052012626686686383526582654093501095019996837591855136910530418699947905913048738441647398868791133192372569895601727528409056137473091306210067000090019346417950674529191289884134532595734426671117436226085589241969165716358626112390061670630230302866930514584972636395498578594125921808285331206690099063737462683226383281331393781512220472952454797909037968037963559761732305181256766089269943056007762896882048477645941128808470419604638661101014148756173756596080440760952905517257966853246319566947605908446528231895857226759034978041505404887094931649688596142070417730352273073781957993110654124010867233498045530255900868256953954431024954349077223853600856017276364746264188935692114524671860967978958007426462614862596223872812350050668760047375704850362577897293861530348926850828278838528406738022051884796119527020175479278346433671662426723897781229663578539780875115186794055424812795215898030874433763209897232079966778459570619582738666608503272303855595444706535114266718333350356647764327189427317381189287830482171975657879362510764190505275072277048144936972882648325343059480655016321470874277609851978660066124975991763924200816342852168899235966320064353527958870097872615516036626382472791176355831407125449554283665470562028868158755686488636772962534919839704232066504862014465471345516920168264748358387246390113657267910271556966715772432247703234300151428283904994937699758794655887122339976963524316657105504782292656341729465307930146035173983608074917487077896383611588209687867720681074238121703269304233205988610017632463163059481126616185240496987576994358757746762385879971848720926404983781508153582908378703959634668831564668255078603722253045931657066063063490330398231477750369350285343116327799717043295644517856404509324465344367759301272671206613308048839238082322669734121573034341346592997257818177725033037578812643597048785850323673838657470045699536717441427407936878837014700723691291061522074831408146694158342347960730342260857669450661704058393546646481963942875034059874381191986194659211008229257885872158331748227896643214071752529750548753059132705009030206964499937839816225973596989705093993383952775549813757012415362230346869737979929547059259216813015855070003977644248732547770972583005031412587735550758926051901300208494775151616964952562068222299620912591167812511282590138980087441919914768180426467755447555557247976178456431933062053904932456530693494755379381212512740822402643523015779131401767257140017809190359850814919706994037712490854845718104830368628547923505563999734203430250530269890088655419927109904655084079564236294646056089686087177425774923986448441538589790204293707735143818011644724831612502091531150991622497660775890283971017932972669179906964949602520683806066812540904936312607484285451840332573030608074202035631538041659056870823610749486434930741118941237156681932836404019549850845863165064321850096012034914618994941567330298125726586952467511744625549867841940022278114451158571208044612231755544361425212504493646810216251110546307080655643119425367764004803401190429665740446613196494814735414815981591609018492091549575123423791798800919117396721630064519097148661722745900243878767808763812134996050099028349378525582670915378745866738475980144364433119169200599501426147754124033424456354418703547048733374805571344736520244828864319425899203128682992893529121884824519266359450285012169561916883843230103043182363455461716602315540642662870838984189468258677884341501068804519604999858886172445943116768648219582059733918774942169398323327834704252229075580961529785924763681036000690913406212951471243619975199600292068701782494343711998577164144840839949794391731998950371098382110167129380467121482644118392672441145211883299398855222181630484148385187863460678905170709505156610039914600516622260127291030695576058550082370781042957422775399777755009139774164777129847378632719111365344464439111503276814849870725879251564993069052278666705029548151397697991479822493374641678594846240550988547486803843133637618549024109237454077993618050955065818578359587953547611152468619884351572576932588014746838327593654868557132777859112853421111986305916908563240860468597834533906642045050882593591750791879104869296424056245460015073274846395361536252821168599522059737727709551014592632759427747170405055296138259378163707360803836864248573798843480552179090119572147614058041212451343873283072184412007539033320561260095993713789464927362460761859723476064204038286780073862781656688865784607864975545779597223564958388825589009859874405549694825541926603903989973711591884987522161901452224892760162013989904183449212681221255650110577041429651917136543077727723735193988186166534053219527200780617558334874802351714969026354570710238465861750924776094635785459119671271404040627256858213831651019096679277695043965040551273340489516940859780288167013291135328166607309900157203061760639218408191674909398546537412980828848967323085802710686043635222651164808301719398741903022128824039504413445054292813964746808115124018032369297489845478552405089556484401315455887170012395402856905294184403432251581312377912181604982208816948168846632317505257428920367835713637032374108026292593089500486666394169136534533637931367885760508486832995838327118741799360041538429768524249482200245153179873621386344775889983647900746736491517677830796816841956606359948082158744676659243681357170456144422787065064643635327489379913376242691726656746891908640558644840390851691230384628171894719615257411258683092328269209217899136155590497617174872925912828477675877994920720794387298312381371451046270284065570349006585508900681050402581532807413407311954972701180342002561254550256967905821809320122013318193940668179403467748047232897714348194394935073842539951420355247859643911764546142438450743109720574708514043008764808739378911961600712480539452070432900577492264928927784302554792467637665224641035417830092552352272116650289466203259691136894350567383581560176922598213740526922237530199158230639295961535683075797033985559075958223833301459358717679206313602551654048388769684182586666160759777495278915381883899827149608104915870397002030615514218950797173295059350584629080974120116831901853772620166739401776468839670983646149504993344818035769709264823683521531484261795503149702187500622815910802840068703462918943351296830272949840938977242065121626279092464743434838099352953702006487926269988216400728451020485116403493740336556359632778718911690555555523958418625811378124603223756083147454123774626501679489669483853298731955155902349637438025736693041204995557011680097992557647762107312559589775678960356014375529562836439311460282596857364322644209406796552965258991137020300784505574391122961837888970499920374517067109652852499601511202936348965280599215870553878286034403470431135286085091970014473342726086653861609969370085891692910311496957464941926377603501860930465686696356838981856502240551411647302214275216730090948378620913868479307750685265837254148370861349268930159322355487968854014822756589369556114096947944771148841203938153659033231909561408206792072878977037863497507777709884390295230189819209473379923766480715405601393405693911656796641771737453398322556913978415252667629515955747477897533299433492654198867373897207421299587320965426079976891272629650153745842561376118387204134189553407947117797519514042413320928112959349245344990434197701166676917915172184266998922122671527726718724978870886505584320039620633466587317539326924780880934984332587114189271443382297236331656095167586221693722132259719899988424140392691794149402504669173158780403681674046947398226108564527305236733880507814657650362026246751768755351490457819193457144892522265721809311760255894124056198048223489488244204762137270559771469437483009396278365103684596951927793363144373820052032335844202494302051330649021678919702158261487226068688341788278002984319959899565356986867086321266872739902997610636028036690180125278643606316316428821657793989209708224738142695785982130218719088637359154167809682828585685045550703475027683256796373147161606239813657061007213276404969785088900859996862666703263823005986825823251422219014106901075489016916723176864225773116888984333965903065408566541185769312580404502808624389226761701584685081353569008915292327127078426931169252545743657256971620400475232260320659070725750349935357286061257316153751479421345108473439521849737329069192386796348150140315886862635885809151737137557749602330796203184351790590107299741647140145448850404601750563943592235152993359443044272124657798101534983610707131528171800677312605991438470980857036170913229042260960639165506833693680382036807176731534570241443497035370000537495945306425993578045875550672439928902594474232151966248540996086780839169939716511265779604285753209039012562509339053020861742785911475151133656719277039994925950836565694211174143578274649708319325527813454586416764365877606476961730366080233555346091625967009654278320987197170821488049098412306341834719592365102871487232682345371898894105367841775661771778969035892204223546189877424173487190533192772106405999881271559701309319416391213891927097042328095874814704267328765297673425329758342637695149504472464933048534410556145686090761685244185332845792710812418024530583320623847961715978761403809563524996789974097909544367657515074080260605939569981919632804857024680445703373169774059222547090721425192098954292628646788647128717163001596939551436464746063151758182504608779916473677507906329960415241931558111397846376320889651788707394632204479175927864282766496212564087640835328537471552399158269625716730531488361679703092992949849501452502234455605512856682265070881725778685709901596354470935721201374283773402750245071515750182325768518549264953603706253803920537038206756414777866833138196285763558261977653732593283010000969395375532563386343671066239052187234653712886142876337358204071342787016770266922757774732489104382165563436878403769273897673227456827121865147412075243182614529074978935765283950650110078571224348717853395377009977880553591314780911142820805287623320147708985787571997637970024887024870447403565829523864238220049693541892123716768981987402102301547159315550378125124961069775260805993277963076610815177899436569056441167128468273955959499670435961539893856773744676252499571444752655991462101343383591030106608348302482248113546150400354942969564379642793475039432505849686030910449822227182236201083167578637092810356013874409282854453379219152237468475989247687468153120802241041963635312184828200496565488638690253746177844332307075054068427478732406112547919950887290561196730697660072942448129691479383415008053204833655060198769465295422921293310997610296435430293119802287273914324728949702504866218587186832748493949490125992721963999242154280161017920038604673428913554364109435324288477920105573142722625951226918592432924664314160664779441016653418313443244238896087443830273180572723290491908197938605045302096450033255694945712044610254449240244127374184958555581575423663470061467337892862639807245994950776999286516335917534510802427091603387317837307349239097291621355670893631620087624259140872724418599344861295115156033586371733739910349734052857583761543005757131177544761713417579872899134468031609778155061834136065427913200930900768699157379765810060957155637719039169676730647202663460387596606511226383014224772681996490284263100136953386407686989462220991496552513814724705897161135247087073670673089073348514367932003455697167487059600753015941681353999506439781017846027377015266641844072393708358322584505623158700704040635215837377463397707109225762597184680902448446933651564727234780310469541872019651642404720095597624162710511555987515963734296555307645515986158451823238379582164949662675370124465624111852861262236941415386335273812427827493475647826622578697603208992152296935229818001264950787761742684573389069257112021982185113902376484063551626065205003738275211205639329210238686728422888942995389797140635289294102181465550498088708210991981050201638166042121232970377325360628042883995608754920739633886187378996499912954606996717558314194553341167647649946490226291078060312172573062631570578619080164698252988193775549542147176048848072455052756256760199343860738299802545373404719476620355586908721891401377243157390667551109292447282070870024509099767335973622315222907121842117708469221433243245830546664521998858934471680908148272170881022547603034871671937090164953233769753516713034414335255330108618561148652854663278415896986194416716844964010754915229220335909215718350615108497305266222717355039811412950354018152906415202471031981117840101398056639295278291301208015777649135990864145058990723666958637215689423545530999702364038467919693321031581057143348569225232576851653128918657350958101690614050350284160435793718479382108873725655892820870147832402931578915791633308599967409496815567027432957101928424626094587438584804386263439989685573935637909048195825475348764985993927205625557485556194656777342561575669715582184950441163048872972837693598018775331386620327802836159951717719922376965512053136516343256332985322015513883910196468935026586708275717569573406677447333269260507066620487858152919721591966638196345474937937866799661775281000863844576387630188588405511962780131429551516519567512494413079421479942871329485017096089443191810397156396815510555497349986243492679733067874619192579519148558069031706518988680481261803890447939140147825073381550537708688152447087748137989881096343027312200033060734706514245809903525848341389345419399049649398965654520713856660765993618668376108577653934041697121104686294568540897591294787415859973249207657554032528080252797381746181610388683317812400993531884043698255986106909733531331441087182960424195763066352671378655166013934785951756749719051440000231927340802799440444074549051019741061978179158993763194767469918643410793873520653215607361340521178736483757845909796671567366655698641982723614274614635825505635060658055932966482111033197447483391332020696140307995776125412262488504805141573048905765933763950369047831351103914965103059458462762631949991396721184290548325979658189401804213766238589133785028184217235813917757853919271717075018290658662383372208467419502564546488176894639468843529278498479749369340765046942929157787166568826780559993071615078511300818775566670582538106988238211717548417274963727565467839351539563036520888077781509132876180777983469474339623899870995630614437641786153116138720833486884948666686214138870447170983815195891584394649469217046060147034609357457512836482532051023318421643822377292925337097664445230512469544509264821970568937231312925352803330316437148101902022952898923158480259331857101980526376544815140945578440972065147592814768385277803331618908070938955488107667993087521859006971726279751356063093300787310573907058917596187185958206424524649839347748016454202374498378054879767406547975249526220937725866267601735823173812358700885853357545001315127078391038148162554788467834351831637146105207196994726211911128327636415944727634042610364494614993014492768363069480078789210594000626269794958072025949587533439170240620609345271755027382687839848567909717596293897985668406757599791985838896281058018042627017548923140507106120751062053076701749773095528643939039250105085330223653601792882262732728560915370263653444238847417894939448900817471182457210789577336093122052386174837253886535937506809178926756118953520013998809713037466087825819500253151443669010465223604866757760111828905982720877618605988715321574847339654386193302171055504654126356949220952771017445308037186688183022993952027594760750436187000221156021903931354808065798403126769097558748395098601865333730472790538290779040863032036632943084413609967062959451699502011226208307838085488590420888810171681615121849779993284680837873682803033623389509040118796634630576116530322194072095289642993329141199424062100337489628228147977066683247811949608523071790876194247915848633531201107890905856495415467842911616204979598108118131927626306156858294525129732114066338509393614093841590504843386294385324088940407565820912085467057674618629153459172881707706808773094302227895288506327412691996216658791312326147024921060866361897178050079897064812379271345255961512391813083511423728199591889649907731120910102116519779025884977868456596554892520350326776856310632044881166617730170282664918891406672536637239891126559130288007514861311903543009887245390232824406066135011876701357660721957874900011541265364323223674046029576119356224707316975825187496909732450942625287692251137351295280802572303539773284869126727906512042154774616878840800543809864415545760261113366273139175339639702300162600067419489437003637657149488013570140736206180318414790950029300652942006633402330512500782157404410624188392567463513908656765710805826421652757906022865981021108156840029469455533324946127926608728710966448690019939955795753679303806192825627531312768045657809497218739295609862424868336782342989109023054058604320039747454699674785005186667996622040099772407859548758263352868926056059663512049327393498397738651704463127005176252648743611961900561939539816475974119402199836374450090489928416411166739321015273247390862495023413332758431935652760432683797203882067665493073148481389778295851998696340773960951803071154218693809669157376727716616801273367135202158872917066613227753441268542859258810012929127427468753464127321239307931213091960280632573600644292714797750430535369818032111557215976541990006716292878429757926281982732141340145170848679671355679165823174681047413038871615671587875040879323358429735850539767118077422586884715396268590428549984552358900683315228500945744885832132489688347508812744500819182181108917837817917236470937765652607763117131932539832141209366374316100580974442569153325997098430549349881779830344175714737911394876578956134915483424054173618741928198690576921145874852372514436357763915118286282147741466045284405821211706000650897847681389949659696607319366324605393975036324263832981370559488337327581509435272964278921460034350932590810661770309841696800639119414206194740308289520556871116052155885914456239712631275481184101657092321737951546877169317618816967018894059887600772835213645890639715798933785710488764632894511908272415009315075483286785497114688253620609102127573058280141832404048123623366500654930788959635708238947682703126628631930903214051868079142295809028832493164667945270265637219056080415584503216311132136674281475699998494922368115904198415995721093950539071073009281219029315879405049710285411361373435718985970289627038311058534883541997004655724085047008946480087754128941459412876779065912702243451711341100507455514696782300889467327156276036758847441689998489038020691873577071212626824332184558190903922923136192739666072184312459639087581270177248679861481798672868680815404569159868690897098440832733677484931001545406603723080715441794538336819544421132754263321407342866948887803795999999339805152049755093119951540920973640260652633729823655249212025468585890928008603464287289128799363829407291448582995425521468229086267721209166848719312482896040604923889911299327824196299904897438029651292947564861848690385129808605885700463639200728239625688250183423393881486088400131510231751524249986937938809181231544880311543525452582027841160710666169483768581009835597212791710861657043461553415110259885136315003093457403759071219517201936141311860301395434462873779939002683797323307733728668314702068734941634303390403536170588641922519526540565408613660835405022285915382286219232661477739070133576240248852147807032376747951326122924913092174823598064593645486700154440947251433830831994982850066082879070028160875302616156636364816670993106236435113718016593807662704741285781979056214786281119749135627949196527545042321975455746971648835252560518833957560612956235669818656901998056949682263872682320287189532149624082829491644402391724638170515567481687053752862568216067134649689120817238220583879736259827455242173834866085286606065887444621756905554257498701121413928717828853544541479276544276344389864473552943140176879209727473116075312185525332392558599147667926258191243952798859793366770597385673350359311641443118163451227758984323799597352305383822187696285564936966864849998712702284532855119736016059474235800181011369224304450957039937717299626600631761931530462797966785518115183036859785409941056720495135546634276415300894724741177686565901293798685816809748163257119035548439840679688584866240175148059136937192553679822158648201475869201414529994890698472031147634399481473541626034538820842983251501800273411146891834253336935676153015773211683783882876602501521981372013772584517056020140274897406733304936572002434118038403629259306901940003580466373145651949035512846281091173939936293100952645755797828836481966729291300069944162835939097598048009112364848215134616938075910520512645143075070403824683922419132801554875656331403114148676452504561461608852519260939111307475108700646141594359285949186240307861287174867829539216262462816282337952662438426120485616310229810009831040188275267366930587503560078703386869519759606601578526239718004863712373232244970504441041094326453166141964210114680406609241271949560427274158781263777406850590752643813207732535994691205307060560788476712420976943827925988009784031491942146689381877690335427317915006973090730259282075582791319216080848890314847256773302864926533006368012226296731165088841666625088982522220443216877360764668690653472955183717219755150386827976084367263934600486798550094543735077781783542070479013424534695939369737738027164080712812336016425852489201169239466829793241395039417598330467126842334346744215083343566164640123675055765897572613643845364345502772678720782586452188750923855080974588536344604958151258046147347893989562051314424723674752261122549512841436702953620966791406126783184960090253696092592400550388023182945022763113175471625739551536703867612245433149029181200609146379255765233453446647400356857744478061861503531291157196667152644605761300118901489304873940626511212872695255500009223263535731734190984427337149140380184726376834282388838853912350709143576195791709304571645268007031267943076010746859831811440612274625576391521285601281228459719637257716071506992992647316943965466796886333272316089889754851317252535518389582249243864570622360296855999549081272406051127509958648801421364729019327181221547565298401343688361697896228335615923399589562788111180194061488967135488826973451799925215263062504788945390767334833104241419171256926982417493348169539308787882476127327472435446047931507007447724518093109938522847731231668766431916136864513325824372236945013937933797381809271190555500189321050269359404570800204278457480222060356403369210173282181018750806361112763691529672136465018559773151244995664275633180608746053941877733659066520125866104511675527585848288112257114165342777225134730026093230676054071594297840092229766930171042750137533274999461854884633077989197678210525836002114506983467597279114425892254362970752102297466221320272417290039320297689859280589219502799621177917217240767789957936287664020574009965366984569260129144497142251694033608387843584309331934187302593124711106899732653956999299943981263433797684849831224109273274769313396635605975496802472728101346072985121614507665134091844946245756610689282348093845512090774419686304608811756289779652355941969121662015722117675534980675632581023046197929941416040748298924898472455837070916339963530966460150219715582110723615324374950161493915518527277742843550660016186161317292840600593403327271235170304518719908702883017654375291845408933564634542348136438376006890832532483444289295610808116296554639559643194121527589063878022523046211511213579229380375609169066127508073696492044325346426186238580649257200917042979219806725531227333345995448592866916650675766004124958473597582271358012850082189618042750730412489411916428855002194519276630526934559700764035496127392746484614378281306898524290998646409408832732032782936497852426555040902612110066390143691434182911673748854514775929637242695761454269496390407036992451243000566397159402352485032348356374499684597464645952276330720290644644907679030390792514275410799289598298996098966302371914917005082972378620908603581681790797241901340650030503145550952940368529554917824570340091688796967752393973671944642833077814445530558086081239519636326163852634625287282308924632355976602188800330770987632088862421206861793075001853550645484203487344207562791447398648391222687452919217141632689257002901997079308893385008643245202269546171327381338285976091372842191487386399514119393813768415118974580639420617366295162618554759890467698861524362521392476671062518142201700537872775183272841710427520665929024911969934958537572801704988444552272046191494165948845189711799390853076806400605124946840272546200749763578409223712500862559560746651691180026425172820444245612103383563538025945672978183022699373293970616051806763130924573435460896369833503988218253170978733502084353066816293119266989474740660935786631460088671529496299458580955666549849590365286412738655834625621110432265230146567622971340302596834825233279573269001526427998462319914583020401031363061837191403410231393983827579756786328301326312311587052727051388607369458089158714926298965636029126670460578136322249424145801887962107349418490368558717484883316208528484238324700669767794042246696886233808428523636655096207155008067870677062668091601238636775847145367213492552006869431476363607276119504284070490105339437000717878610751830835578597610811622150700666386817050653468242999421081541773119300251525183942520355202595528135152096181135541084392452178016996091110978259239427723339812439857171311829238111209954784860126829507473163377835317709606887383339852031239608798729510910785512810635931981601194509282005668942961249759842265439325903974203074812410959718500167290383959231745103127276380270902115686500177643807441469834414211546293909354825603384316526543130124200637936919932857776339062306556922746688956430646374687417549504204912660903855259838211774903224499308134367620140070456501333883666884007574902772149513811532758080617794517950203535058781623071091278030438317965545357579630891077628985296685636829823828050663720260673622230938579918201966987521504010134667731639824205701914678790582583451477030192568876656789442157723176177815782509488790603256846119120300197075518329106983222045375167322042894694597934775303790253254463588571792724405247023500469130750962615447164568906544618620201184113093714774973657257054319485447769907660454691311786790288440146507648915041479556547494765976349752017014668321228711688996578207421226108601072093458754051475056687481938114222612580884327885261367768063823337499044012906327501510288584809450199032737285178531326790950667702228641740835060242709263254272944680352698871556394774030924207808367936833196584798699699141300776277714080939860009020326141321525699071589492877976109874108361236818877563273920752199305758586684887804261838250033427799727966340089899064990915814664231440666439380906793607818504450156957304515252031567904179312598951554470206935553581000894482698034206366269736711337149682152930861886560291186996569533650438397286114928427356119375016018725873220329963320682400885370813254262886049893014645395007570478715641119660474960426305289794518539539062188647072000072425082919316654332722497086759798505723486286758252597795514911168042372678585112920641455834371626655094712948809880199519707903033046634852418648629662515984842681500070639759560611150909695169806757925435810848555897547391909626218714607198729283913312908227180430579696135319414637417706797548022731014832773450099561065193018406495453985070693833668258969751990464329997073440596928870881626487561858055712204051177294831494134847364945329087262797366085694959701126567837588539288613925061619832897659158376773139045152065920735877356684343608004598570828344410927747409212385934984444105404642435412901659011716239745450845698987257318601573153744527725275432098239121018249731645235496203442856089055709154629045822485132628786676260872823771524196681114675604117206765566591467008321295178712759159278028720197228066886845158386432545461986233768067085827069758668079684818855916256634925313233804997697878183426883242074880652607362640912484858316505934092338161255435743114760727263257798823175346540156006824570919770456488974052182842378333192279532959208387289038349326088341509564458286469328912578968558342700526183246504151000664042910994773609134538850995116985390519685971948037795880916094749013757637718361701266488217986053975416146833486707227149932978850283302864400024442304815658905721785614340357006478425613038565054677964111540833197265724351971170121455250960098877148738727751891036262350192498445922748857003777381674679910415122626814672724489207527753337525399507333081607935864285125587275468629104175295701145193788734614347610056307445116773571288712124089688881553223221316624222018341973502709092955046677491212624702349246261284633078525726275763399711905997492811146713754702208127310739595459683598874020604844136671054045268476247230242209384802262119211779879320313865005700625277577607937514664455025569553034887078780572809793379213056263385628114957815470710016817788583962885272252612347146690319341409047705501589270332295532767335593580456297758451236853412211097676098742692095187916430010104215109246623660933592216551945330131868092840763804726581359738741234484721527620420395723105523215242009612605148466091181934831197414129070911591726178331817371204684697710624734946893283573798562408591652774688413882853347223722028240934135555576400774570392376319065518323586137688209081062689003085600825939781029590558425415951774146452621959914593509523842574471801087277595503152755736716195597180975203777918713431311595374898253920220406667184652291425555756040646443975539149646169358450506149249138943963749923310018745307866364267104963959851963389203714725604323002765144755041244132584533570220275744506814417068183673662585630699652812018248424804937376610298750603352885796757539839977495015467692836292451993472066052831273990925691120969283199993782565682113234305370545217559150574243162731774693119371957269838183670123689047579305472991234023996985824998404707916997757968297196816498689866777273234558374934855153493379219299327072305710546138868282642805285627557881175035248803822009955885971028284202110159792968909741596715001364084569190723776389260613842626263577288672970211390456368130785702256226544334138731560891165448078329559325617989591083807541743883860027645460296081159874780075476525674021237645053250048812112043670453582534292914554600790240309658530862200454212592222881952383533655455655093011997379923150075397314118803925416325155407512113930602016107103653844578471247928698175649009823114262530932915000857305888853651875395018324220232345725567373679977101544544386493738550322890071635036197669872454164084430177404889978106474328605973477624248882837617838678836085855720187201223296410794076311636895244229851190273633610489670906659374538197174456233228397622569772765264410933004679365942790361400580029208658899600212198096413215556934228663164051609374508546434563757356468829756801478640991975379177004391542199377083835727830703670095803954681321820227763468737348375997384626038870992794274964663403236786810381337209846020795696124901173739444423777441255647516053367216489745764752883748044269030759207521705995280007394497709438812678191236256414115407278003493305783649876863390022330552542079455747568169733481313040062206442134884843287897110069964843812947434243037785999955137339467112269824437775952576688145415220780312549491107580263880704421830318250919768735321136770017012843095809925464558971680809230042318187034375361560048244256027634420491441381787047596153516085111275836817616263960441016444068679949222703905476456449277057276194647075567210008730482903795868499979032826027734154655785271254951752633466443100069125942575975613173424792158011838302382117231890573919862908769578157231333830149573434300341083121141392613020519714352319413225443699718134237417598863621746838012287553510859944163173917586746447855064110412684583461935661529462167581584592838564369176649390191531725375139166355360958276311122472247018912883500845977169592466578851525656067884675730758747739089359706357294843549915014349786049712966354394748871444574605858829888839943707500410759616772667608233090245811709207203651233243344498934635192306912502983637606149796154086634245502693039160659491765942874981235020421495050058718992573517983244063639367644829110496347566946455507312456661390956868943300393787759676259832050692411263985618913118613505651406585098884942355505663989824791679560407683873393886065351883683007508186287815418487652335365001690467306287297834931278767056142151357646755824447592423400118938508495079278422900208745177004993977772320236770790359461850262164096693074679256913907068945370308289352478261694897955670827639516629399932864709126986353240320768762591500361776987911484852078053546005343032846337901274952655911779684630165628895368597957102687944496906270954910288273541507110120011077525106693415209080403259829313969935648417008398648640453753802185566577596267033107686857784745477348086232439158284881589816790029014765813248578228098471908896954772968754601344749520942180322691108761373575161885113372015444133967619531696427035394729796705994712776598958631180504539130877353767617446416337638891647822065166123308073533710804186789433166577716071515923597643199511025856607610570537046831640893973192219904181109755586386048305893085936007558681106626393236488891826741569116690195375663915134477123537552149184360291381472181688224162438198823674083308739548619913402590764257165718007433892617863251043614192345540315840543791338222346779078832580342363877457397265140727702123298130046198508366955517147244525266869389193940330566363206800682940105619906501771560221162880026650319157195331776385545910051772095498432494790228595425571808208088845070476268658561012559761136802957741202754348552621944925721653069931894933846440246333847420595169176085470113430656499695312404137704914314106729754185445532166858592982522394976217796825934503431970559781218929369217433155699373021825017856217072990344256091638191129423321764942367274823719340699259922191549002356386710917922113979019316063885451343610107828095532624827104423938117722935838941084069660092604307655676073433773393900808005029850076672653234357219467316742395840111449416374282892620395910454338817842080737544890584002210707205972010023259160185802768648789119382431590190691735772139090743416883775367003311077776956320108585619292210966438008911760389502749589304258033929178895964028304434994069048907603189995326524970949656073593631174615619781655211520061576904205439179053692073290589391126673458379403806349086817689268544316389728179803277530715128634072318150725312353679762988469006039032271857367409909190713879453735437715420527933093732925271342901895595670304854538597015158203659300891836137664671967303172760493207735394188592671922158593240967513738598166945083043908590577682757001663787078457072082559252671248087464300091324823656613004359604411933061481153742215558310993167694501042338474737289246738675066065205175317331326855697402626002593883028854922606615833783156465282041021132393571426549455204498710995224142743593073716875922344354166129234641977206064079467276721437080437434093179558257379710587737506912185750433966070873289323522598687496664341082658286632435152099877407933335518723688723330248852773414311815360271114278559992685965286437920116212846874962802274742610907567690342665709217936801099466336643487894627100823180514022961833514997865461305661021588462821892994570921614384965782230068734538698039378925990653636411345044222563537146639347017085895985570172029922467395885056696045285052482994869631103293052108567251240716437417802512407944893906430610026230833482236588826431552418293326345918874009000370523026241007694786300349096366945907510935956835117042785392866333453971122226490045421631909152921016910503743001307542660884460876678621602533221918572174673449228077819783921996953477544424100686684143092124097689195438792612748112653345704558886447505827044284631811805471327390308565145455244871339543935033853728768705561264477554007561466865834100497058733679376348425455462114529390138824282470896105372171923531157584347261301710440466272827156682592466929892686621367968630561694879855790735748257542878067474667061012398496647361699815675472511581045537751063008837110804484442351555940910785995577933500640610176453216930733976352851822503324375546013212015965182492900273999771546095930038813736483951129714009369546210390825563628400702298484761065437219570141989069958267073847942524186847401055749661291273236212155186317278120596795831577619090193403188080542770026605857258865928325039566231128247562468455560189806790766708579958466589014943783046950032825138416430714733136495235080756772932859930580819037862905904531763067452418869846467938883760586246294163763356932291376794590693061926542802819802498999591452027114143860177818803033068051539673882420756604197757826009695330327315523219163021635892589537892271025545786857216466900362273391569127876853904837952901839311850227197773856461346536935320715162027115718786318785716843466884630542765831021635584487999916906974796901795517018817353095863710422792971888718583311722160009939481163663543780157588419191233193568405968459224770801694464902368443307459626243192933431000293750370278984531835308993285180658134396896877739760163922206563147113377056081915558952165937596967122836003363750499682695241110822314702154316777817460857701948860412992082699690301999920609014721957888617529950627843220852264273718374967276248736885630035295675107131627817088697308580929287536813307567809865330491630618418290766448805953640960061537944971114290970038170479259909144275028181679483199371806386513967149393885348554736450767998404608117416033017270265590931913551652634653807278528618559256699921397650755108831328513319596382542812238173690055049210962876097839839408375147451170533492199861944809460728087785830885791600518426209074985407604514492057286488735328053475265635226133194874160314137931856808997348445960493077720540318064981677622829757413327115256591740306432788801315506394842968296092485453061529140522787314561827647531427647852591613530024649260349325029001269250016981815629995677518744087566558751838329091845553383829246437630939836928493336620578972937558428811717049783462613511812317661766681006199902210579813220039926541130346443412094564298146367141360498515298620962626749620152146218619325430657324607912178223920402044246267882166099609582385174174787678930692340075607191671023212725857773388110435559023148968821425216124165975843237991196431519860713169982194409848489832770811396424400967298983669753279223131165702073503578995588831415062939809507637903135902092765007209526931175810858253207147760869251974237633198832554488070009792561851299454263150246373107859218253111387440281149336425696773057703642148494733021307750552288368906903929997450164008810279110713290485479135468323709380994201919527722756872134285358854857189371467977280970081451185591890805475969983495472774944940612915817539860342594186194393882563450840412734305340272385421528411451266997206803464168809887263656300692685636915104922418577453616198967889825013053305226473575276093681393506857096854701462923308845234568115383752455223101239222420087903726003827220393706988253146662826241356889574221926852104110703869593605980761583710290985798729223010646134790839143238576803399993630425354254379206051798496170711944168593842485312002618868403225715513358701801046341197784588960275145371950953242635746116161046873025589672599010408425557796161804426289365779122400070255022958558164350066249016148208744601178403975887034493555214454913768731085571434456574775532864332097610498630700357518754609318053116788989813536577016212090956481732420950278536017060819042887526868489061346144715556043268397215664477959883007791693070851787351698077505380185461343757723339893472989076294067475425444215074039215904024119934044387988280045923471443565054859328251585523450791945839573243095601983849254133098473741523453887769068418831212026210263127384101506108539886021044767437782837962401029834393763050421859550445335102756887827748061587522829574971029512437234411608740040874142212743108339638870956659811980521406556081512171860606548175977760403798569732420472333799795292732833255373231722546547258306601163876933655144673123162566163413076692029537677199467639630982958305687924685928623553191618664842840613685518247798167681680839624384141360587565443822914523803377091226992863747256811288163389955505146808787149433471986541088664798398764239567409687622892327109495610554388756282298513545274661122950202369945336449790735029643466287359752140835393165302394825292980688093346283081263187731187817772395740887702993555372921919593313798364022976395597263582547537668571876971204669541128509097195424866640161848386470207094982259816223085580944764404745013393806052005706194953018671041521523806145979191437435036648863677593036041278751563237116021831143955115248856526297093913380465153948108993181269555269496245027019525685806645568649734862403893039663653495012650644147886828043563633606530511406557621394550091047118767055967866882410974552322137239395237584080428252134101684244444432540688719466189588887463498488993552584901840204059008733606284555342357589850315572892156349780365743162811865798131362325014726953902691747105808646825800814999904518013872263476287905308723141067807385163509660669213803594937468925560660333977998278172942199551769801591856462513605326040536396802772371957994343027855561315537218129593510287433617197285944084094321673282136936952794636524554040436190259302139784977776770082937123550185200750658251313232972693975189697365882832688481860514788525416987951726908545722841406610209919205212713758815290577874692603742052716036672427153297143199701403799623071495997236207105145642054662011620504424871253448124305041016283424273560518859736167985444035392576226487739261766421188122969846441827321495576347779330257108294666196997902545308932340863331333303792677113757753766282991565623998395092921737463864692279223960931936765236460089494380552829859318749481017020504181938836287165044374611747453797804961492066813726214398654906323811786215510598768527133193847204915309300500057457049827391999712390350053307419833168784910626549319542910764667354722733268644129250813121230874770070295359005698095153219552488276136817467668897185966997894663633443897876490312633781965508106656280732612872946744781587142022920634289411809209290772903458015273943371088091468532908442471193111830844049947939257927390261974500994592891189172065590411032824053367642728326251755019363387462908341310676895192921369534515808616424045625235359651085024454582951883957951461483224002807323125483278626058217015281729949676699053969039284205641094849296930612224540992769752552684170376253485627745800374616672888278787975846136697570596049631341814042809486019739158420442678915568263278822635555325813411928528134673812965650015380331752449644283826898173282833622136520057657101607580258754454624402662720124464216758890801986531635287801694601652926239699827040131123202801404377886066827083736794044817546792205987200141143017167288165381574329154960094082522737986548375089871916729622510134516990927635577830285930830079717534251015122528058053825534721003656700432068174384204691533761029024542031773972853602029388000034177031416588448284545513436217223577382741613834962343749427986376979691982139053816221747898414245452561807478592128138269049559196728199341192157476785307496562325848177270722668450916403070486019370152143014351919987945893721459705857263332960648940135036960556152987024833704040272545725125587182797850817138278174661551352086829622857680103883514547628634248285314531372680989600958932558347968801783179556352754294211622951777960797570374549474704494928502965022596349624395512352156690139264758824564710031225754298399783130941098030302900187508740099357124383863636685975338826464600154915966279937251199645052581108190742959963137985559504689993979281855170691128010632915485730898481548532099263060365484894114538993445346612211127826629575328920788726273294725604992074175022155719754248602491976269651923329365757183701752140762770977373252232221061884708029239043060547089089402639515140454090280210434002943758470705298752046153594687554195232525072891214660683539918993682677178798784137583228910555868271001046609215782148281437613096155377955998532277912117364136299814088919411905231267907249165203094208865912267794163714079358677784444539766776546607125232565841011890878598284910256735350574126575217398822300256537168534921017600924359066608452494378042377070365357919057951016103107769279814128330680404311490787676593080130951566659061539534924357742514859345450830149030490288156594296197704395246518778701073165879831297259875625118375623629820160166334995759811777788841868433647772669527238678847308933722527547547643347371812249002939904196880470763592527286740144624404757889256776509010752778877841949944584248177080260655125454023344688068726894650313076278406604375287175962822857708801096462256462719255642732439352548636631083880477127548752233704603869493346634829346124963355659575496189305620494619441639767018733355998028549959944108312989343000331481018461809954969452130962978493866190793368091912129519019958786919685228292237185844927216360476992040746630583939004922453730095781040500865001450378148474003984439317436661262900040899154934437797010611136072629096483851567227796253343098230444022488275956629738132288606097738448905676792773951923808817774453820874696475313456165913938625527629362717177353995731460160488783269031004188101042902048908050630686214390009322791676411442832533842199514688010220965505451867578062877682501095038417483121820581349870079483935044419422257517931415468135131174686036113833596848301509967880977071408453317237306827306792957446710198209310313649223281036251757558809838657870139210274440789124145013537135691562729484658060640850628657880260753428928948189315025071400409142850088341283714496740871340137416300561631778061265651725544198899548280122239454843078440852733019986408341729501368513514461090960602842473979720293097197156636887033880246650208271787764358061104234221317360767252282181776080350240748813969212479534768741563866940559257470624073664066151023445036758388775676237324760707972461231365577016790846700521128183429341190379935509686396972750206470494761047367344964854483018046637565036865454222300585467218772744175917687964673611381998277925763285313358948458163883084388193686822109094667929039829836038925501843599491534483964815846990757140130938355666403928139644394565120623200541739060010599865895594614808235871342108148696675434933078079389096605834484677005480854460275842150949805504069134133414208191390416624011330487597843213965402419378613226317788147224757767173012708243772522604294464688872932921553209151406803013641836216208470374918294502455966732289877133719256848822315389518044654528964517080192680949977786953426782480368500358689990566890551312910465406519586807765866655543593027779097952974444776745547406948720734144382698588985454542544548048143687478246736971373242714787853115590139698341072867842498752600174869044986204689302966871924076499988312470195510778702622273133047875454976462114140621844775335002108406483006949960091952168081572235244405884276269775020013884022195642369264135722031515115664063129572902631811905450386813293268887410734945892942390783748993288531526112559453512530692871330593017801460283875464734321693136426480980733869841110527364581063442604925614612223876621165366489554716324977824906827642858617333805908948040287493371553494262119481764645587282444347612558098603744791610984645981956312456874349092073957743285275827113335018287089568350763732845336778375448277241910270117980499122585461296200219788763222717487277925274177910057155601344589089201052999685087899012947182788789120755722229138004235407782400126612805178372142668395572552591673519974035466433524972011004838637756554657701653856649574634644787736166101903442065039618580704745835345721966022647950790651981788567898501605032133058521533391900507776910848780745467251705514231074360964489583472876810932877299487376146050655146068508105503252040672640685431682479603480305770824208479654147850763877524371400753629618477959175658949463753716662763685023380984249636109855325597751368445246819561283173436677722246337307502048723692004004306365042234301910135086429218504852278162296005659844255276642023387020366191229450708878568266732194099313773948242252593135656075758350386873827982073577082656464076371589306076585805614341987187146469891296764526420091591767291193824784293522082348778355359094342304008394418596187573810693155070053731871420726131775578672853998999045929968376655554168274312999000348090121953070068745906204830576710878853649680154559104309977594191965314992364558255900119533387533611502075570948476008541202247067814586789868847767748837032383973699747884185920146379852217859530728573502214344524436739795985929179368526022135465966722957439663026130259013428361687750851372071802903193750795132858289288254337285400043714096605419525994714569381621324759845440645870421054390898135175866093018227846457457715262028102176485091215746482643953175158265064479585656000965166498622508667551408567385289671151177913824826655470370626090097039846894310875346010342756618142354559828992112319885195746880054644952122237490619597523420645533555761898300899574549508304128326200262798574331790862842500044101544386091915514110251831314340080560317998268585195554142189529430755548794737598043144268904317331516868235009292763693125850790378253954717900279038162879304909683856767633683427865816836955964910536619707273040820279983104823571121443384221134027145202727936798974611177079411245541371518382297221201137909501888288911892002458026478689698454117726394223023304501096683651521440352010796775091213132686863203176645697509264894030706391200159297994016421153928440660338125929784780840377270661600112273492644790560031915486011073718341644333918416964049552055155291901109775537682059647620696716176550365946405708428544921075774840726758679797734391563505841064097205805701528314759533848932017272932260214326423965062366941354817987420864832118522062648032608763126077702330715094050954406144347926293968602961271405771380397416734580241885298005403535964355849537106020625897977069434436937758704269173614623973732744585367097358827835315145330892255617427751006870943801746841218107982797543092050478914573591093387894906272859066884871857993506796300702660278490015915318899550411533181547240016802043469031459187463546285328759397476478907250547189254504211606475434276934934207608685871422731225306550839087283713082197105432811090397075266028691178106165171024400516769884480004193464397138277503305371312000218582085286967948194268463007393949951085555108126495472090877663521072326866849000647254317086947783353912465138759545983226919471382251440975204205826033982055940280560826500781095759750546716947548337882297350687968437790417643624694774733434717418537183919718250976878966401590724661684504867958993136995195272643688803426193221039539232978023866729878369473304629898289970424041433269012007465750585077806100344037786477947900109046547564482635775194954396684070688250779050549823764877421473287555563741369888860277046330012507236007965946908633759223768329429077655302067762206499754386467733577602251939109214288089509024065683864959829143950878078627476989323589599881382933571603977262963983708402215462966945121260823320175394515330789582691758890714692657464352374487182012633050230064623456122687413212000809436574461064057627319765012724536391334532182677574332691664418705031958511510590911724122269985460249777860768655710034607550413440498019352540965939260797431110550964765533424498868197388937656424470796272984013102810656449639376642080092068168590005098883757408646734481399357841940573529660121167892821177636225034972857713633176106571557008595135937135948359651704351959107281219292864212362772226107400395645401634875812598253177869149409476763010068082303692233354300945532125934254867363132229140423527706925415254572513213070784152365576763565311793644630174731156892077779008149355468993419660061770191013565242694816224719523759889842073433122622799091688143392582678932300708998719861969609678519571271318089187054836061646215214404875186245011326969251754902414086104356340781823021699803583926327720586643436187312570642884264223596812521144740489201291552857768678862999002536996652521572655372168426320576888575126167351012260584821985458572842395174309537285371229704554531137302751964028513308931656458885528333430435811362504855679005915510519226885725287626154700453245212510006731986800498578965101160545440915233325651734124919181155833830262552923426095362092975433685520221078409561040028131917964229561689994040801277450194860514665485365991731396245374642473716963756735086923126862444334143499649104232319090174214618073620758427739402338737866333305331790608892389060119952259200281070822895792199220217943346714424090017204741847962433808856419633219171513003403324703300167269460532454405785893525183455384378037983055444713263024324421532829424171786774311090407328845998498371765650181399250924055400848820466502471413548650899441568225262947158728751290657473703421923970068703344911706335520203864069683336460030266418165608630268914989140064490434068084330137344383534400280982510487885198250916093888308687110184090650250005905799971915201157809200689225752089884012264572444983068869119820345809716968500869576333139156690228078081278628199765275014662680973025907849299760951875728167735882612648151916980912055505821466287953946951538044373777394444396754544501688994373697317243821332652498233549180855928367381314088190737431131807587429372545583284932171961859607457406586841829211826629822696240033501779543072616856109044460993438588562000723283477270153325938789129424406409378068756625944941171872217460097076388998474581859965626978974984030782460020902365009585256056895541724117651479146845212253597469417860581644347561833613043713355200956413380411038086039392413854219928183358639833722393659929504929013663910628941467514492256269576028716129923443473338830063804567314930770212020779408599221523341939928204413252413983425833226830120643478684351416107041376446581207147059778683754281315010503946437041002326633084201327515072141132911801467102411734097265089011117870375022253075619225116343835666405913527527370670396850989954327026905206044659551197957248925262675734912819160454997466462578691172453649357703430056393424670767880792150988102518611977115492063058855777340619544752953908038355982001034938473895975623692035720629370458148907179136283565822527488965756707155688389620387679846874868361802618235471022219780452864412917014524321411177907028520777201043326771964859517886170887268892860208386923211419921115618530340114382975749641472381995362104637057327347363981820700169491174624658514198287013337187067657908445844260460115327744695602918993321407834008727646099601287421192017303454435541204132376567772758421962867204779524698290007239877517634323119670402374163254603025136149495223413514277453362180634367380278508922007412180315477866181493009395788285067405903622575714702490449013768304842152296203316765827121872429734518292357274449169228179762443576478231554810246799860314604942330944309995177398308819808925546718754325506637529019880920483387488107159129216710293087997780209942435742829708232654384539624188357055518157581131018817829415321502999135746934734618283108645721057415152995694948428616828716338230816571645155250657016877424581775161827060656784423321804413438385438940218933346652651937815257100912852083097702411457134152205459144943410311605131696660781010697490937048082976852724627883688954460467458725827143971353459066152710401780101223912448874780634763303289646100456073551788440598978021792447269715505765452026541240164678978349587206990380831223740955757396182153742394995363039473871855839374309543740889787326379543023176282083005276674312141846294836648544723597017186947862631064810659047769542134176330062129567659999905658248193938296941834157625424426370065901068590974254259864196897638333012267278522344914467044961136449529920960249065654514189969283592615090897775201307493787600761653243410621358505323510989455868751054295823155164640208199250350543816515591806373879078953438398009592297817267137412413244537196876993214709447656763190738199953392557799862569778196272213373459829411562146108173187673221990625344256817836023778562504441671179361726122154935816871933376223144208253194130660622871604526218315226109939318953240778717867577016211570009419956197015364255950482297481141014509927232244101369697628968434535774660045183656548524898442229909889292918822813294108055590353067190878710950318351668583395378070359578735538761330340165199844279870818202955186251981719357164849053006525312617677470921942926469651987765948328937528053747228879952878233682605480651823529012283351127053140016953376877501834141854908936124261109423095187058569054704686952711684086419669774186551261274685205478775958934806235724305227523007830633262817676978001706504140092678859522974862657091783370747897309790909782971636174453371103005510910363311847249436587916157413794928084858340942152848139442661555026934388127170890141255014330742459246298710449055835369846198963113847323319203889550294060774882383678783998741841543629345638695873789226267255694990085439647475341860148096638544300741890028110443305186410471860733516023353567489736056958778320186168731399951213491108309051844225768980309102863723709755225898843326256249125920563649146451191172022323915087068545342508216876898774853207477332296765975556078177693087623885736887388338194632001959113255283898920720541245044829908294629166626812522736984116604429039705502133977369410640102927448149437058859115613716703896310945809332665604464390412583850307419285493097510377481771393572351960904404152218665973722108337299219598760395100325270968072038754795190696340848973012920420773712396872623366039909322626625873234922043975636124361819821142911842869022630269892736498923688436369434425400057100012746708398016474406992608658838691265987414304497939329083834628792338827998807173645753604925808615361256632455115067672256366327966275449954386984695102119280002720984318513332754987328281781110067722037362218895918764947732879398790290318200589703129531598422425294639202599183560186738570271085837773662997409902568120684869199045056238868350303396753301593401557389690525954439500745195728544652296385127842404203495403062558741354978944409965249862967860903926362047795310317970892188095682109308725205877089217420483967081302624700242078594870688230398770395101712653023703448742029345263323215429680351475392941200819711008886338506305614531685371768980258738590473613475092835877572633097509331911195195388895791522911456870402796649875425382715642817980263382240823612932881345251926046904487555312179320831976715744836075700959072000923985526778380038347146085236075372613325897685288499835901150807156091941829486890497594592164046930931476221117392481977926553466270798185015789882941625067735762799406342854875792668825775763456020796065588320041205885263061849826511943126773921311010812047653835781573752856033598301053746914331457667457348634800387585256906149550193024107692388163591000362353573969498694575806798943425232481012599900973816779458696444824226393192245139755410834559722951343933795012707872302759492450886987914938416067033570756654918162044013125528112363804194959023252908070037081734483614770841166913541396122928857279319199307460820184266536342369628175296207795658645108379351712336067656726558441041119793751579243777397360807566943741951176619177696003361340605970475379762667468491528131493863203882571355642935820564634033689723944161771167479409494841764709436577665830110345126727048450570348739321450164706293166835402373804481406924336528772079991326741282451714624663415409674190384548738773160737364459993209604769220363010972857505421483585473091350877581441372074799843535840315773221558579665802367217786178054588243093803934924632854529869015999718595327130072194937397674494099080262759654270216874812341508418893205595189931098658664219521177406243972577951407265993563608144258119228996624318203534715345955536252146561826997858167956987465215309841338800951588640045181468836625956553579742010920012836645601511727183695531146318718387618984383216022597912554612843308743267967352792023419589414653787369813300840465503553616149278264012602126021497507691326435366637549912959862745493229773409220864670757459712187920026725143021948300763389500864384068459816226255668378933322273026977766922408040333610362914031160353175738514229995287359713254545147040492210467811088866970549717876980877519001041381333504272242419367981060012260072443685802012002707717983946841236579492956752043374501620267800635318030215937430693573879595460177000881435719060184133054996749457454934899813532746503160370950182199816402575003940579912584799129747095052943644165853981600740461289154094688690872776230634212593797414733405020976280591778079277260243720443506215615761677802387568250444382854050499107584091780607944245639710809687664593437840159423037559040301960223757043004521091848200755619016039399112524965077729807139877508541818475944272918355510786573483086292180454475636773696426904596904471754695325435093800894011653133453987962933611636659605228948872775725450292636445976809597187399945667100033025209034806301072799407397923621112809325130532768070454235845918082011238239666391261997129449902210588179080488294651585861597808877697801001107434367794613634640674382053606161108686584699264174114397082561592578187612908625498047343871178840688600961801066290189249978274231475021280451424540819931235803775690327999757152271564492242243627385949237300998257457974612575447262928918950814059152914132347157756713720042307665223318647331744486837752786966546176320964913167148989080234166828965617660433272306064742615061272699267530733264246218022392374028213392430129087723067029077004464374835646232394343309338471819242829761062638296501128027667056861991189003172301886297123451054463973251338045683690463189111726349943562384371622249614806073512989587327581667791154904190277451834741986365043138724915805715639062341370470198546898300149672618407566779569117860978269880915185463435250496186768190543205632953439165393145423115385779756172624267727609266934581645570086401209610631517040762998867575818323500427974606592702535546368926420572683898888738330063503660554653203849016323860554455671501037161370328341412978458254412493613730340181800385530684744623304043217431648528184669071710807958271067216554099728193483589485669542069907112296282204106484060942629861060659768389811018554636461920641835808019663422557510327516422946838878003715681879907998678555084835990811538590516331774822254337051554421323020306462982673270303067546969461176813229068303985456574937328609923433082904416820025056629172360062456115738809963819946638944719434922336094545851752026359997162740914821876320737571364290567883252998826868383157842936099286616473720856369209254253840084108160519534212738776413745543509020213380513095494260719252488983021703317005689308500282752884947552311387079538628113873161486665493923927157970131575749915484099731473062282659786717008814088382999216363264968163456207040347536983392784134949503227732950837845729710913328414648997463570444209630429772529384792839178606041959079377745952176779887386688612653218464559707697102809858523808582562548368434788582415220870148937789381215806737365062520852678261680414490049028428194084947342624196207158538722575544963609227013359096093926650299773691653343010571773116837538918976676998645275734068394662201804911597726777872085941963354799728183813981110456480568643120767523766330843043639004693219608129575333410065621033038465298489887928626693210535330203470239019616609199054314186567015927565244066244911586055467098262506561447988605850807999738122832614888147325769855167613324466569065745060942948119506778896747064482247264846521989289323649121773057392444104191040523021082634297370341335929840184777627289280503717527996953113044991831641795689588356177130739312894686767992501908722991660204532428664218576931533393126838863802046468090786814861350075790461947282047054181547912189322625077702401721796686996226208202762219615572256940178967078250603627929299495552410446800066760314894042689912838587414618151460415852714124118263110662900994184171623722462446612822229513477625942826197122829487722340584735243115636278801001542037528326088539088222216243735452074640642663944367335500923287001326558481263346401293755217967666321633345115912946709573289236510911033021199201264192465865528335538797713736219977096130853103839462699732910010655276268379000107598861677469289854257934087888426003475679543673608214706070620963062207141799819669283976705931213108422863967131441691392457907023819171342189107184877155636685799711082982281690025825970644698346091222273244739792128110747397819349024546999233624419864022043316294205147429370941437027718613625111045505150557274815074997429589526005751823911811679354484262117983124423007778940078242635808309685622382760337308055192219692356943258149355221271820692724218407194016405741318449608216072992453803834507622281798996254418832758390791710369510516484299368456494279213930838156498506602262858291681177388041531708816257409754518049146458946937521630722854366915731743257606677124478127740901792207728834187100080010153481874888124508920029427864602237710202151353032412099862164737479966035529271324912136456517325948113273717727742731940466941273370525633251845559592907468241024360731632990849266460736112870338023868176520472754686318686276887400008649279130957772045099639689882395006808587725397007475040053438836842251677485689949172915387811560628046579465677376855096578071196738195964211691897311508175327374390624474841820543932985851255614351500701861432427171724618329428548089702713203398160632981216695477201900124075788702293581903402348845780176674233240586997475887778499037550758542405899686875206581566501696304331383482583411550737800311177738893590116449439397381579156095765794296051420904305359947450522456863383975252560353770169453916746278574770300677379445597374144714663697400759063676513525174360340175670458908349133332243575383190234198011851194154870905076350710647593753190309905793900969144156424645941282012616506035363082372554319846766034372593831586625728656958537119959433098333779738443786546519477480479495876783465186278910185834359802730789448861965729997619723909579388254803565701891485185409369325872600346481771578252853632219379517617652899048599261211754051096658148472117600046240961851321752703338473286947782052476926756409198545739369800761995895260902968998081626332217020647817241462155281254162397552062626214961690892426519341497646000315040521390689811193364264798204695952251474507099930421520241980519536292477163641564382955902824858564265266457694694485462747109647964384036657649943573547506035366785315413767476124256506568084488945909107139974522278726843254878265408458678534165697042938735242115626667685054278848179070696802988938172320556720250991989792051023747630059597814204753686283086304327865446790320122003423181248638623654625190347083124426779317030212996876415497865474509814500682130635158666210823544521431126627307191295714577352347786488080102521532784875245279833101312951324784765872833318007142662593400873938021299146464304114483733332347201548289003306258136318723836490514219305770600864947402914225393965411942964590472490629659385283010182093997724996524260137751869591273988642403119508601835424048341630494989195999743743549125732733447326922079637788191078389754413662063090233027410751859600965380874013192176037675842963862828916898770716574005281490760777036586616645831452858304347407665664552323789071988734320429838703792569174565970884321546242018966914385609014552026768598482407070521217675610831645356937022602493631554016843836372956800840886082690463904101921510760063573103945120706989933074121327644123659863676132188556971424130534655468807719935972438407249089577069010866869654174317943299706491790023388097142726966414881230568405677327742896612748681341475037592756856522356717502508267038253987269481759058623500005935876158433430782068561660010941853032380847056741893030145623655472796982797737371965449922647653534058216333584792966279370384485625687810761743302332377018484571239317628339104041138141810790210232952634831111380543138079469059553328263347989799519697824229300250242523646553306264842576894789986366857207910732406043223336381606100592972554910889089242362133944576531390693758390103392363258814788201932804378599515528188753002373503841683487784517503782538189177134510815565352394240789133757757628956697325575272951034082538583303413633139528326219029438088138966803260553649957819697358051810959741854701816097985989897167816515031728533684078298051662149675452516662855230773844886271443786736180031428301723252117815682665965219562280292359398004255086788237552981890718070913632619966548592317797467735643426412631761277402713316028124943924896302299305477818697750808630763875964580704954680667335743257068097039409620671298013044852155675428536283803271920007047860666525395428132177292461289928875605946101843557704737143468992215136419984196302725648652107552044777622103084080384974815234187313784706877479161656830903237104546214978404901614891941485362281027626328424542335275373594173986608766586361700373413896549676279574708239008581799240734124227785801780700359640538520531674781329489018745732946907577629011515299536130634718578808671179750511737947343512430061324990004898750417900183249567215295804931068625791796820740279889874560662556723317528993121498524582961569686462392943322237914348498516218279051744724065450548661169015038402047557115308453870189586948042224090786970505692801421633532553604263572326368254828858729538090937283056652224981149770280289247581676226008439837095598585529065038301239233354197346170913281409225137427280154701747111919096757166791845231388923435386809859784635234017017708146793920766858599031904042989587196320088651494318952580584449789772166875111964831718927977588756412571992929923313183987720438813409309905240108208379123980038300269658632266246864166226989840816624968443626651719091526472039567284682905738538765437240861339322578200386787009882128224383137567370900736281028953339318443913469595499524478511493185404954768925884400470879555483517849921067842691176798597051901700531041812347494338244859031608035414701107818983730911864276409053872246792120339585649025343888151054232464113871647329702869166451423671423146579092116763111335085857627818787630862426850591771387541155062451553326507328430064199239297459513617880128614944381819583491221813138468949456405588164514761952336981349051538757734141272027233206861617351123202114418682825333171482236030164836859889662411343524669219266177962270671860113380224023984397919381937031974672873005944730889629987736943633804237860637753636182488524242720531324531689403050590118206009696372839363464553884985163010445093599421120912355311442919125992007966385539828239140567263600453206552212801884854173639557316536930368818505035990113247136734014044530569474944879010835335306497619252894735838183916167916716909146972215714224253126114308178360341980583906005726053536732133725607279453277360533383478247878591180635919058273649182561560154207359514969383447164234779113444053738916851403608820405993926147568019125364188466414734998165776766490448791576189081880332124952798432539601235695412138179111281699649594821835647862331385895753758175160838032149850910349866967226147594424156845511775486642867477158673664399367311102136880680027409813806709297256035270240841316461619561596236219398548427072824410046416462615322231761614242605971188738381159487607028886557969866392285026338740395148415663304434769409618136236445098402160910842771765309611726012032783726915169421521568984505156669665149758250887143955176291492620548289925248096059212354852825490073825920759484371117602318990329983759050390481698500830789517778737502489234035347183390839749919784989094250566788539220525482533846804498115233058731892354602093447604736171729197583816857922229163185173268766382183599474944860811660419823986315806319144319101477184613725363451638871661463273366724571223954747104348853804266953599642222778023458427029766985975909225703120906279929558574873678093086268208259479714440210875818684500457617256561289606316623929383616332037452772943239362822964145379053575774987626719185140484651254465173558821948868969598385826551466075381599395884514461794991389754433787024490738927586272560601261003198250184009200507313004690216302900049535842422991642645808885684225905931881091854502348906456802982225278635886479338280575205240864997015512092920527155918851654997563605460405254486508483090014654568722781401322507564577642562661677953983510681079317829884445843897140246470038213209200607968939484834516259975538913657564035631466118036162589734343668263418316530107080641182340960472466131618360176896834945057452398236212516781312504376234902529737952128657511999387652686980751042942381388512771605173673543861986449084793915998524891775265326263630855405313992940280100300330562544389453214912365297427674018681611854926421167369661994809416517268756423244601434990295721432565539862137346959754185912417752761784030498991668496632253597430668748444799412800238039373108325486868784258103307280169048201036205080509152149811454097753865226387740667217044758159757590754481922784598221332404141266932887860659368751947162236329642215152602078925907308401197053723489467160851701723796807562348991678157462871593417577470175006091392676343824830632123373260499209839452193864039048846802460348739929903497555969353970288758874948735131369007395481658211797715161054653212538353265437046635234872790349132171252349903887851112978574677406593657710100544671825393792662931398864306358365587254713912892494695843796459286587872964771406904456932168603073868417139357369807992612921448520374992739227494708718879480430566901686617546096114729177308652941061199850703259753215471060742214812807350318965525390408093430922622147682372333514667325740107342924190788958668613528378075949699050095311336399994591428217451281767101541178036150112404320202019324969932513941381062233590983441014451905070175346043494307748442447624934076913360345776077046322642520983880538739434132112295367964458901616660475785522477494761002646061983621782724404531725171458576617576816159693998315709614110099682642952233342012778900101756025929025425668370622653236167148355091142174118983392219659172540938528904542929254518118608612729454871071839067847923241825848104061723582279398889170658876521907538031682762740983813636185959718625264641901752744118207532784494222129453704230122335872524478645786474773127667721351596207747040511584652980338193086410725211185751243549940878355169973484498114467724041591129428413117412435597716776594144130423033487703662006678391721597957628128891245192282123428209689418395433127011781779281357997889871257599856898084039068758106918739454362508280386799050115277646125291468660185767903015130901286337501557487688927507407017782869832928718940578255359052227228571889740974663441183025901835254066458864720005777190798702076745437293904181603524493303000924098621254572014535480434927862073778701201811621221308660239719016685054583447553060293921117853092561047228524133166174681178966788377876138002651253713846866050195166658748359005721352596427654700883807359998253299362664428019489464437595553006874777646023317089461624925634334215488840796092214392734871394699498870509998559419972052070132880213012945566507499569163918475730929581375312363565319125344673055079099449407669594803902946240763443412873728681528421775823011644095713207475592669614606788306372029084803239505900210905949208401387863116600222503798373497730931163955235101641768107086994581591550465195156422061765323780441141344279466981732316762174182350440987911869671311533635792419517791200254483817609683785480126318566139275626327340710662607995224512323334775996147074248077337633527159925790879829009745824491825814034464469948739013451696176806216870580863598549767990913589979728665513825353417778718827864843354649316754118583631940105404928844930900814405570472611640167737500274669475171728237354563298053386895063808009946391947966289730123984857216888093701339004764397722611697200422182440813188601128982618421904590198452253779683598130594779690984324721570657045235456391024420889854452468900111479133729554730003455971876334455031299673978266016435848327916331470343369310001028597972608866132449237424302600700054278590605170376019604725499049915779084890005751680176332056287156092378184536020391146343997567859625520302416769559945294973977090850085433731000772716567998751249997649982675221633125243551518922014445849540903363926475465873083515206733486606334864854009370529475971920875499317705038466731887891097158173035524343179283918452828959097943607832651112633845233711542984982108160406684128480304770315986241173838451717655649173348198230411102277767984057950001267589390097208625137907184059207265295464591958773190071913710187395606332994496537991072173710288288989194933889952531586401226939821917725984918151599593970864636368966506700263367902815697452581905796547846556233830659318674685375480071217266267453574269878902269271270510963186181065369557132046495095196693068400203537285310485225697606111772245320637597354926720555111582939191379909382599048093281696719295859758815581032744820809649288875830750484322969776870802214647844644694584981471584526614802530082768349846471132309313266691414567086038494225980143457588689846035457833574485860118754437350155081367330662257580673255014736473542392687741177606517168693750009700219473196832881037568453720637379745824213437864202905844540861107987782309913478871641957638983743923929662615439188053290230908749624703593454363690642268160660319821326822417447418394724179912154960043158704555434469571784495826479455573211415702630060856279675497282123345613150106272932947624403265583955032847673719893252568458611950841623407877746471225709850326573912934335946389690257084324289013228563594915913438924088084849351221622148727357360103688484490722078768701298990209055665072987236612721189452304715386558798153806857929486950505917755570291694942097706944924746629972400019965715286123431284742671403818744816221222634048006478733577631247122279289967796751303249439035732209630169878040316398413903010815925951155476492371350823384589067681874147811078171566499391612381630965643930123478943255379494437959407655677659868846557046452122638348591040128218562250970089882787210548082835639314361936806817168231635450630727610046132471899631944396308548322260534634619538574968860254968786235515211585218701660318658823612144144481291369523910355989656847966497648511256174672874855007959484435453036796346712489509432815154240547589281832793581212620511948167183751873576882749684675258882417909337163799367248602030540144504964650167338283141840011727287220572681609583945889851623930633549846861719050708080028438411536651201067720090928992455622191789330276821728145286005812149079724008194111960950686402738000462887704429707794144355899054469931551381393504308304545203132356591589824964671083666714357495922164571010348849995684100748314503707283602309025235540242164515267687397199451107183282276837894990397284664649244820130022702276009704876281102992458795173908303878258528980810761365482523098446833383135473838749640619246472921546868579472035971345193408091899329917736761501659144889257967509039166265273513147917980860537561178289546101724442500458173656208513228086391013561436290447439572372340147074727148231532129173271183685802364915285133508230953556852844718814762112787802980366443615737798921772086620225288971887688343244341489181057698582653076769380876227799982256281087591544859590940666438489315828719663314570653410552185312593990423655563615521201812458680121247287415512717613710840872086531700324726706914170361588244033183995237669519843230734261698761705314270675485344016293232264754776128315155986525719032046496990106226892379531482962948446084835514947373403526440570798133441494896248316177296481610119081124264365364646564065772540193087261916062475575888609417268775165111970870500686340709487911571756739631295041481507736715860354386745554240122629023655361196364866565479940950549213961056518868745868186016173709792568333933421093979733889009101902546563021234228631776240926014764252534148998700939102962349385255290758864322552594020681355024795628870009469300623672840017501647901505115984445821100994458153534358077360673377782658227059252663692931701052039323387399913794694157482252962964296772666214923718242399981247536153545130179789936765822032622682406419285882812731026515244318796558056637105886004383889200546507152721125038063715593790393762224051368039591816275048077343697827393066109708372080694586591163925540893897878427677618039957450740293516571563011401456451966748343042484347695288133279234958634051265571758244176564646256706109616137073820518966444817780618814756303029845090955441000488578226057446959090398931656923543798084880624981096872898468678889430537117097649660896890883700618863903419652996217931137264099292082449388147691760649835615677462889615464828141912876783837854555677403595622173711638988158690434513717335860776908277123264715321188617599364981092051407754457471320904683459812574501658442109017235309129035429679544876525865732829191006976737663604054461288504438968729655718204208012359016668772627077380411141353008758088686607570326184696236179225073899282171855048181322422842840018046436054693845385736130843267130981028580903757230339589588597291113984727786141847040059075978773891526839765221168313360574992228375141072975768643045236789409367974904917729227706614517347218339427043349251101467686424883536578701485650886356330435933301356933827216624208694000855287330618661754239362611606554394173239740955996936579393290628617549022221896038381422748082919103066885518080053489084464069488851942868860866437030631722906243924587938045126813382781119999959899251488344472488721413962820885688210149343711541027976516506927885197477866441874980806426176297896129020862381136237075871841984390162109321989873036885512019271357958247321006210870528142709670101199731952784460726508576395369271427857800540334589686778831676164570825793070299037050196004878309686299408807288367012031212767445547198811554284435314290792096666572105268977626011567119019253324105596049842837968328013554440218192277258768269453138590267840003318092668143502938873961510524885247106155244488395594678502784774986658315852854125549062454180629158513160150223112567960713272764841251544639149841180882210672088420134941627707022421522229941249815019150182402851209423853495881746344047568250642841872736550380474724650671651875161840442573238179602652580726326928148724724042374728917041495001642743428368133448157899466309336253804882884774876244373006661819134284309856968443221015171355747976169585504204980775518035957073271282725470855819734043963580940907235871155826355948376697526759525719687236046027378213608230693099359668076754998116587299496325492073199060516798543467562632625435910996684622281614671516667895930965637074003271408755837945249879071812694353476206848419460321616741691810009847951276285663797156296702601041525998737709145928840019674531046834357938033157460872562915159650906888873133948283111096054141315345315893095944717133511923311883935448123271278979600160354623077816736311276258498284552372283220246898919938561367702524841393913917898040961721974043557793166173861415190731055927356628827157026737407764364172362544424790115156419732069508975641198951660276151936541816448365725499835827140258955387474844942666171533675283484325340434001368458615212702791453351471495483644376208327874638111740150811401492851234526048523678339868755950644248793054889920261281987764218549116447867506851196355511055851498328684778691221346562080991863172028704916597116979025626084575163341236039091646810054541719743198001185581236819975448333377996195820962274147911985754144483886593711183986038058532686432027041067382197076397356889263292353059649596391139438546507330039162994434358836580507221069097674010174107441160468862067907195585614671153541239966270542362742852304116061608360548031675329841759110212916254025103859532211692423107074970706976591945589316154000086879771268575713558957695059672300037851037309502060111732561279118860256841520978830954803061805089623935067485353209118151262221090336256268814658859758963940004848909668464159104558724872793410991763030722313501160963871717051479428514869897752643062660580463610303415398298831610035134399307723155101484223651081593275848032354738211886144197318165131917700924446139160332720430362912626640424270086866037105953187815182699364755115263338484721808701874846392554007869907854073307357082986781958092756258549551198353561761629248368083540154465526692749912532967652506301208089154154710641452543400431185870220393161708218959417868862607072030210066302751230012281033167329064422107334100824014161254602721307225576944108279050797414371944450008581557123119265010693855340182551793826093836596196603242949459359358118575673547649066295996883390103507920447608242581917112773269266337383102429031051448087893129748080799040942273951801448199455383245273011256905930607097591254419284036091423673744729841293094512575770516639206722149211612227873162248557994949014412576881144629669172889165664784739777653641527784066720783169457830599003331101854578195655180038323952443180559172655021260283810285110900339613970640612850700669424261643297423251379276215349575779366211722394437750560940242689515148184446114321929060890463444879008904135767438008621571448856799366881173405505090580766901399887042320273496566790549388609045950948116634200564912600350512888250825922324327607382141062847229167566882144151172577042883027504130413107378490394015695561374679427404861763429227994848123108710295166579171682404437557340457463447260641243526382291081660820561343917120025086133163344694811267508936350866092259980248730306032696024408542684621344790689869449056325515231856337386293633141241401562402690495169364239693980634320753906129417588388250439331680944150579680434534988977332466052861131457823019515802486732698634971548961802826083755783499480847074047778950586914189060195229255119501284972109461232690280196990584838330574717845429412639977358517299327513016546889719097552189658057112402900912970025389322189696609885111786207798931818758831180020815519514582639255772905721614209636444335027883388633506825839077950076990414276214910417115423293459257710480282307149659333038242884949054441996644917236428956198038861836393400250767618877948341927368586285157231477954438623530868202476733825724069950342729228175692445035031336175143300803711571553655814415848916958886240788291350424273598252614581088307154645085175129040509161363708614930057085895308321374013231172731656338004100977150872564381095326476289046065661460962859783634483569748774028064722612284352368984362361514906112938105527936748459634856743760723963672889174410390472163121359192801864458676182533671890491255768307524178341168260137839065705279893864951432374468343291475703968852802330812154574735680773392170786223292287269199632308522878578564631208156743017080591854357777853367131002654549199372629672982298321308604898842285904954599144210505835145419420027671174508324747482102653907107580035978686627460696818963162140829612384513381927909614690591843669889019172893824954361125239908432000522892784686679562733003067064839206660739316558160831799069172221682030073780766351975875946269594010077380600226669502962634719371439868040371677859117340302146759009345164864864751840402448594224284471810963755301425967127909889493585848356760616081303924256980428854051471400847891717599542812243913631197601441478375123695947659264543046417997388500315640890864156014281021155058986622849895211286190624999600302398726090021443904449727290401294493403131703971853198178259170962216291958886864463541210342020144521837483672305815817455329486478101017626024632240108869852062827598734984748549433553086779472033906099263244417635738730791857472679010931673183850161039073499683044591285968800892391615309680649500263375010844233375468162975138164660849111136890084627018893793743527883402460073639752556095758687241289452250114428376203995518930923442809796515875213872215328711982068033202867739478213133462745931902841421174892057114228317668581453665030930285148515256914264717364149219845421212855476900039074387346582629796281665196528600635192013800016089526270499150530563113482343231263944542313878386786255326928343407059554279272052942922875242626393950356050941898877593729619729549797895953520392674889264447156157513497323936950626967099021371284697566237184482369629365270814921439031101608677937891104670192062272248994246313760899547460037547520896638863340198165324683738165351158044858624298636750417438331393539402022047037669994919165808935974063562581985516166730721923301709092766744973919586050609856960497053417789663445548811556227546384906988850449553117492175062993533860782879438594059607972978467514923399729321994586085809927228581276241339753430356417817760422214116361450631782096569692071204366788465531954858584422577551607394257250562592350022433120366623856601318284592100278766392912684094545436627889147553017551730417693815618135328918390141824964871830827952766333492978695558236456881043571611807543280793357892462498509188332780398169873672741902208984496335180054863539743708215804180368210960261879215407396737748737308428804631317246328185975967120766524547111902551666126016042379049811880088205079784331509586309529193178887751180337312037177652101527647967089097795875835443682789541952295223630552356344105709733189760383813753970810409360179524418859590762984858585365975955861962756579666688975521502224991910417943500636065737835544255062005209341299461459802172882613061075186259559053188826026207960274018447889420020532383857916809487190431913367884049503656909575004351594331462257975769318321973767357480111343718364056056889599904282089698935609831743662931453297986583195051663013941647165675922674084128487538374349935510309703549391005467668339749821821115038636766441232164516947911604084974979987264469627249791233189482000842960362916695665082023793189212104070140282403478344754601374925862871702835719499742720796645021028784833310233598952526763443954234812360635396877793467019895060275107889745277096605531896855555840885204884163043161123210150436679428323879727240282521543511764039839567972955824087488030344421566522648699301553218959152720897571368630513556988562877525514804344774793934982506732186931402653478565041707612024484757696380949688080219794076358006994486393351314053524943048361667588519472664393288102704124221477661199162538562081808628010554969022375003389354226713850003279657218176561809240371802946331191299121176216583819323186173453125401794658579709100297725607461099145401363397043122726486310487441184724213661715982935610687260934505374978214127864972444465220503874250415742062035798129739402550518042348337992305705928032794667811779898897612290862603058720395131905292165397999392474530390766525392318630580349378026772186579122805164775780418612711349446937273666266680644069961789970594530075436048416375371770791546268435322815174979721988063306363363623760491290113071966003195431292149930958036572377325634591444457657911615904244326962056034116912331739002808192692303415373768895468243138218998465868288238368418951457115344680780208680853649741423575416714358374420017586812260752227495402665568088767809519713546999960319696461894947650246438015269377196569359997563734287818093816214476271222523383264437311822125335948502083749052776912484692620812094609604608536000082238558880117081421826013866952368304747522447031429247840856634673710284221463275953738450816666250337273415338013013999397595300183796169789747572197115667354927138717147833900165354028638445309026031066615973947444412059946027424318434898380057818725312260946111734735325724549755497687004371361542765133786232938321634587013724525875579426793978182630610310869397133318468754244746969861124050564213634155994767797499496547946892720154443394001398151740729944329781505025121987587717934118118710407530521375260670620413790908271086499728314877363938998881321989351577175867007806238441978787985365301025449214305635367526185309992645795874582829728563473859500888575586935344261404676674460709770545715872568418039821654044981929479614855485930061316972802680494944530212633026837345918628547634779618183333234414786419020865464643616664748370416390320506436666079388581024401038835149000529419503660900306306125203070577235407445723018771982464741793769769087070463312214409068133396275114467273912149098101613740468304763317163689063080425652545630888888325545760971477544602353696634979750630865881312112101632973108642108455210631841055486382478180616806346447496394396392228593858861279217130321270419063785457483887260937503062047590557752187752852530969402393317416292275937109988704079904409390561157227703973251236989708857411184494131049968237192830893490220890944155732077388422821950394758785925007735815539894765561804738542620817124639971819317969271619060199317826914843158333546153595608604586487846135589244600361125818114595101437225970276314285896738035011926661899020443179527886161432575328996763626026888061434006020544633141435791016142339859073726249181077996215514887540136532527148026098254499315451158501046932295232372670683944108344912307047897125086478862320931416665891032072111887224311943299831368825403751610159675694557878407736939108150695664039717821684500871295503779823251672889410494189218301913503791495662292793171818464083757845735814265425656719836215759197785268479424134089645394217548661847464416862444804873454864582620405893148667042185062491570663546225846585969421838245037274522513821371564086594987436213089126894755362048557092820496310719034611751323367967013653277150453767817503661809115856296845125285532429421849681911452286417762147004743414021230864823257301092511366115622673106563601456290506162021124864335368779005574466275121791568540092591461355057572879388651742145483489918826500807896835730750192310714341195289024729290806458761737561646936503119843771903637931771114259807211454081190276752210057162967617407266282041887557617694798269835784246766790732519697086732875162661789948344515481376788532523038389895485877432373761877815507615885075672314593134457436799032769618573952083026489609887533970644714392749879597500459634065378172704182131009959662105957086222173065479995693985197551289325534357900388685733055803743275861990089714950058534281138393926476737253599837890893916813022166715739968849840580767940106346354068657807886605382479129185696334458503943711097048012817482489816967667963953223299728319451341373016819945661802681921154145116106049243039760790460037809211867039968929489054570672018949965666583035379921997425801912767692063626798054714837244785719642624523263129649793102153645051552044808845828577956886924442052747755951562307574616092111057039971459384468949851262525629641988991866295729643446094613836637970453804163468462940994768492253239698391895582206660589263969394253855908273456083001060625330158933759604164378759809878430754595028780246707235165569230968231150777512655661170915405210006825224755964995682612124289028740741398951347236947473190831687571710614478717244834448406696130578006126968891905684240711769225983269685380886675746240078067431739101554633858495054250556239295745441356254852507384363700440841588220697152174173927387905505720383154012660112231410844479853745647289865149221284200592827883695501924574071331406829436020173937432024706600255630936179419700408742119010436478774888453416976525784986797468931758045115423411528172107596889058742679565556220181600482209967180560527014249564417415593816902295077945877597825190204609703949273977744714019130932375055303274554932837511724911666710218057869384536513127533461032774763496197202237556445604495355141590949887289723109947440909834408503399198106390008801987285357967911148945745147643950890314454478439726527827289564210770867181787028718516646673212261483459614753207673770386754382763668855462218334021906176008046617446243413854620396377664157889984583766506141685674774978548112024499872678739574645505674327224791229999678945221669369714978629596885419888377638592494806641167441122486602994158240342466555160452980797892858766346195438787882859659879636560603247741087441002838271037700281433512685527118677242544875979763905021749618165580113121038083985235145416050284250039009851187337143668502974923837407402417598253322353604657851158287493730412509461731179053968697115865532014975033611675256113020105709455798095948168143041098546329023682422889969968385526257914256891258688771924002006686135280420269068579450888293965723889481764603346582472950411888562316972385882391647136451498966392723910429012886242751569307431844845971219089277194703950023638164020679028164539669515457718027589877448892848694145620085869859394654435908127762380016470563051979838113338316620063251892244148867625041864182989539635558418713325419125228723271128504881005515119923717829108547349192697767531608981886091288759270294030266596312074388171527644161760646770269606219576112985734414964109318444077877079185136262940943605853170063389305566578560260019706915814017655520932995568700286773994463272120297725520003300765785630744762871676956669752469730516926219460601950796879129865141364887903856666055416717396917555383132924934292394391511593939896464503628029799994302274963036555382252233048504807134352076389839564982281816480714556043802838083697071236340476387014109777718697236472532910184873534797694746081099505676738548457506294349769356727023009587242813707651874883472090917432583219539375892283090064878604497667717699293873682799548059109731416108870870035057431174639313309942038677087618428999791130791718755767350312864102353328657429824912859997112926153078763814948165143235545459305650115235527792681439818618367245926689215246666382447585865565334430683107596216042987490780088360274719020895531451178289394889149858723440183143523930115690285832394788911854479270270338442845518677921171360536676528184862207094078851675368951043440758762096849694212661299900493261684861483852605601865071749264809390855192878010250577855756532192076715744300000880208851261788130332739779470606780468716850590621975683434331886152674820850792655087631001737041594393970650395748354778684394879553772189037339336606434942189655115458584847741136725974136123863696132021525824564734005718006682413196460297227081400714523370172162684624847866775985333604757734040863305610174731355256331221526483136414156997240166202047965489177856419912034416987828281026327993431822926096997675762712639562428458779453618673886187317000205514537422516935724473825656530372100195797956453376106871363278732159400423493667887596835877117181058033080898364211887301655572111180221049170593458636443650169181332292631682955489106968976917391582539787675957341995977346005199001422523367772151958811735335530865485553086714784803906745611268090188454182205980976999071451313073920978493155895111574953952970582093010840053395208495060955339216964942498422184782133024530127316840654281191615111604851192256818653742578412036034199953139191128656913748422577780365675598471757638613200287488437633364911863039432233483747073715617966680702431950901093187262562673638548944949874307168242698724126372573080032324085181469774731307390602688533902328456852051565850371918087051408881950168388716634009060768980685891199765747614334559255504528243251715143646983965502222319408415577475536446966660119619423784531616064803041648850973600492612683979334297995165883413290373306259399433959327436694691635789958601062819574576599870478198434836404470786445875226135275579569751536032404487398552363743152879668023074651901585298558290811013913341072676022005606519692602344990427023949775871116583574201359754113663565818861477413289344368504685004773259083001982508260123698631182796802818082049319967095001099742642429404266482609638933463130208709075173483354532018057956541511938110141978316721608659189994341082288414125480317784604662458118976940725224026643932338589969740423387742958479332187630599712994752531287746415155464143176166233902790052786895398654615169770141053288901080024802359635320207816407210802116641570792482101471241509829944406390255213965044723035527332055743166463514245274924318028030534836868588890167506338375339535698656344645833656051213323434157706512226538066005495285587710075539377861630093966310174897260282420026202902595388470788555799480298082927170085936433874451159797380173637674436607485367949286097884739820740987533578925275961625486223442119551264204339918068558990451839208734712763844256557418982954162240070560215374613027871925565405263403987619519524660399296691754803625319620912898583846550374525426066925584455715027507628546389755620786117677626578282124555229570045144289745970988318985715623196001004810915549162045341623030986937801601142978476047975712984900074870830729904000150574882371519024102906648199254163824242035737349679712972600982889263166367808930074231620519328850696703943897867094638673470803080388461529411179025226586086272078921568677955155381387034152314613359649568570804039254166834480590169924964439040833607001696430796317572814161908566986292997629140974479078188392719439989976651713632110404059016465608688576694071127653168207659656465565784863412980579180285581952802020989143085015706601123007835675984507946632023433004138687102125464359582620608852344033195544948943708651606517689933249409973348418412464886570900577847854077559727448076493472431678420237290290096013738127294490891394163540057947932016480631669551938425195932076139336604537033431203644953770312371292482706093788220250042486346796435386646473420274505372677812593268888907955105716034815741442883662930543054329778632426524646949042372182321653884422279915016705250744596443773477547269785621328994559934525940163175406260571649128407677069927936038085945031971514851041004741765657781590490541132409067502715034085067697863496356164384292237024818669005286329471299356272359440660060209885063451739672662199359668915183767978983274390869589957610978242352328077611182751987116038719914000459164331373651891870372773498803923084240188089567031862866225002518126182192460206614593690046307245162920281029298762194662486337326572488009458648632729874970101468741361172707721763600062537675094389756245677286055699511770673195230297931738049152762893410608580460532094947621249371137212582806012511936887065547930721048106149586236116445622161069652391762107679614225685266467902362281761680496906622630321352456590942627579188456985681427141046844035076615833011712010982616665702518033126432897493399782777802345521708573570494190737004915371195999917037183172453402893760081691720030915097470967334267924111604978322967429722814339518342928924435433158712002789682924623061916774301147077581738660041705475853312195739852240078332094460654280990811373079517009355931038341561021151415145590865399242134403428636650820866633710813286430253207690406507296147025479985576907547864471999947563288966933111796377009868931658922597261868311121707177125617725143758450154000928061216133543366593525054369504597757428467921241708895459967305679019755334948052620142167308644409137802551502806374185789503767332824306205250615269364670058509366074147295941472111163723959420498348122095442532512902777864454750206610736252841594648770190626199086698020672556517914275965027686332814925372407715116312132892229115912784724973821230688175109223429783721079279835341542423948599554610271539844463481257234632422226655021217454285369158102924703901193923517101682591831649654741199118480357792017168236518335939044693713920979124705787962339323754342788634264981314034002132889851148619774612137756684077878278329067506005265330823379637834218031289950812576214055726826214782322690372113418580815001874302218695671260036704516257719799752147423352017586404788462342049844032036424847794386053067342744668458455443637771091000004433026916677746317972728127706752379576614109392939997063024543992662351435657607899715750733593477322318517721225372313903383949132101510530034396668486811499781662934195532402351002517577044433408425860274210849083932026162922972836989047514095502271103476224795369097439535701655447476986006681046586156148376806708836297230165282531185209094396905750140613045861881149792794495701790790585966877726565524206917709692077371340539208729871631538578284443255289250197894307415589866350427518021480703194398481251572796055760211088032312310147739569233504611737742641683778808409040569326036241930896486697646890407020356784076707946991012541513177442817478408331789382850891670152576680390458718731411927686146568925864547138272903939201683702033446988467724884307682877571158365321607625847275492611526815755060452730961606324186566025134431728168734160800044626794247418235069513655523081662313648319763838558367944174204016041829384090966681813946486217319582532484244587087505363278019647937150689725127988512537788037129895011474102736654134782586746499333606149771188101718430095106013560115173130407118712675586879523822954945802235135485831836491233665876896574109228868217983547150983991595494036165051333369696042780728725475358344587608746940268854853640185899780533898351627684294724549871607381655705312163451541123625162975298735460577460481051896012421025696309369212457460073080422866232401626889183809809824745512116108719220161436646452174084999463172775932745725037622469394659276531838779486462672545606680983965016117749472348338374679807996821123242942494750987062383607710267479884476161975217676367144616109845032241017516162341786311588771500669371890135427879559649065537448193749048318828621469084173213437511030902481007155592467038248817778401676873272738403309008510846267529645072121081632939403260164524505077763222030623987383052770220983149739660379869113735913499775686332230280878392148737115386734794118410290287655794996495056392246969553176702524917771604547990567715812324308593742605042447288701970112484794877103319080143133557494756610624480145368170708049380577844989142081961601342021336143100779129025373427392594120317490518162640101773435650083297643111154967820921540769794777463710200442824846051785522359241541793374704508497322276407996375630321572789634629211154171335425460010709283001475478962376563465632769702819405419635098190678256435652509246958847689790119817633088467510102410036574882692125978368918528943169030867283272411844965173804783605232009288941951498832041978598083994725342883982266291612745762210542458742826343760816314349805745274720164598754152136147402397530027530297538758003714703274376876331488196572957485188022998480934353211988024446585481337578362172212704093676049786556554920694652540536057519856722796700319450043588604255048220660230381767730294309885266357286168326139134203722567615230005416614158405335462104205764078536635611747671450756781492554697469368763718664878293561940430092555758979920952302508512668569528010243665097400026323216934955417704530952767420562518989230189708259341694240266387202962344229752104292613668242176484430828931611041200387133492596426903425079077207415354897176423296397645823972594162497582426619386409728628721960514835931962189462546893752223454364261234827784007218998058969652784122737394378128118298290891782443472929468858637849084544574368061379807500356821393095302358695465088197309572256964435630994992862963736687663483225109548522642039450236391855993028745718294627324921669673931880675731583086375917865954642134143340720930904490557287193712452983241727625292857260467553038894821396458111274060717977642736683843668038275222773176388185394571216884915943718374886903148085807040504146764495840692133910459695105755889977284518137840773549879095975314401945263551895624838492983006274613005218701350061614569159485987842864497086645188074971075858287948342611899046373120786323407386334630895452772127527199492639444453393590657073781684195536562945245120901565455679653436629147129349113140858455364982253006220862723087584025698604240282151857955242198734451641315345960825988122425994882623557266229276932683879280068553812963810782311731576628600447038952992425211898715460865588814820317641843872314474957529675209388642230034118016507290063730380101861929608675143888595592267723961058400902400895577178381342630142928771064048453084026810093338222830125937346700379314509581312462889729365556845212829793331306883462432961819691486285533774703360717830232933474052275291808400776031801694707026815148680874455667842835217976695526364836974653866541777904576533503336297311243456498355273083836692759962249006600124023446896803133524610822518102670163657284011502518319121491499199434745127270331603643457192740000120226408173347664210235210872794608849219069425481205517547715172461525215699457948984277132508678996555550702820685827566793094479196212959670327125607696766589306636864307760772399187435278394637793786463455933448076302477031428609249744063627716408910881828619476553547018270608321890801002027095398453757166098697734212998083186112544631404886697339129751767433115744614326445779817789490551069849435001409518023791279498777853642943780338166484902053046403434539253392868942613640773513214463225974889918431668429079337686109002013057191141922546168002508396313626863534232882282560254383773463630892861748696952119024431827365460360134587693614601717685593607062836767121412176987279562874746703557696268920214792293759008939277624648575223566703372931683704333517103952349051143497599055434653061616826503142574230805078981857435658467034817271829156285675200631985069537161455239592772258285509666041576700243186676062775259057490561032082493357423977236967878458737754081871717537647208819011010853653686521410486802316610343796557527077000791222691600061016468259647308386337683388194576418058874488723324112533842471184720386697751951233405475212127261924417858363419646180567431997354775107063965614479748493050945207328285127163498317305547831006205248814813980486637088151752917839676844479331820265500945256698583846122246789950944380203167067368518750419426806099474720859850615105506121658912468166765576381421859877977445271010204313435744482068087362157452062511383954578289945061515790709864648949696271502058928148968493467747939542956308067164431919560802153075650889094920571019514356570337336228114482399565945064574938098535416888866694575985001857703512164983750705769187811117307246661253799027461648098990588973679864822991971483504324529584425130455336268525800362064552531771011748281786097738577675928558587807950759514414259501905999347290523166618370408760722747240457268220999396692467477687429216455989378975704416316282769712016631621845617561160452738630962653137492902006009494704963380139263665993926935309000886885966923717125667136623479415042452877910729196090815494896392410144529592181632726113163458290935308432270736255838853714655143815268468941950800695422263374726537867501512051112802485583758820335328598013471797226620641298780381649892170928939839563984420479007069591087684741998781063459972548246953309079707839612496350678520550371573283999199930009049986580374228079978741311280322174678237205440297588117528711762321377137834791823955721383382101748224914187093401281512026249459475672472681283726430312548541311077251605436843184563507071169123051394947006682916462766903004117776936442025380556247002472550732549789430596072771012670752600499158021281490691844572791476651068769717654787685587002000712715317436357293154338795388264557431845182966916081824356629530606580680739808599695378796033937163205550966621631492054113902126905330646769314838583724985170342366753352586656966250628268097863975200260720153880323769507807368162474343268739884970670006707476259042371920017216825242287356249478994104988684037353005839141730865338676752284840937909967084077068592522616448580287713591716821233053589188740590813707437007556015596644258452131062175975659744498290250465171070110877516146379864593077417617621856326019995680370698244699220113906941649525231362507741000040374632000472696339446885789159545393414385571152051979171038597514303601631880275565984304236400311161482102401263026277333583664205878632937685352496905038051379622369164767811576081697961859799988551277706154120824654314167176998737742688378755572411707441692872530226214148786507938687965785263422140054159007429475540166128498247767969308014188252510374415912849169009548982835631486751594096638087548631211627603187753567118194938669730667115404536132474112768635393240075488224112518011855990896110382185635730920943522046312963183343384694805997160131356237192240334905340586882785934515371527990430019766208755396593852574216741794921317982005202231256777200897012534586745783079211341219081959694053291080205180396260404244170228529359809761302224150737366267269702698770922442793005657031990562384494965232301183500102342473260943315097449821862729308834953284802637574916922519655447441617560671731344634428761709470058000491247329947469694826113845497722852148677683118357695874863340985802458355041968136715040415968724365055397942007409089650034242539177950579030857810568461047441159412746517904188234421149840987614302705081879207244871423326843407349155827135989066275689581309742052038863827167507319469431687285417152479815067787897481684857130910409055056523227560844027963617728179100540584546719596648085974495489422423869643517228349289622326958637402708746150176927214501713069447229934485504222389766619232859397490745167905167282424140179650713380812533061176551666529610931223756886920255842794353411908066932713461798279275937328472741772414008894321231773075954270631461472861675950631912436234665011432987782794807869970418847050720002300284807344946466056597989199690604488966146220899598115705722412836571640392856304395762405127421934109558948903565846978457040271618558265568013000427352250117108280437300982456235750763111632621769622940369196369092503597070454825431419619810462293535736124604699090515718855388087992400941516720575828013795384642281570208887367721864816910315226364333849575402398753086253695330474925459796036574192255653606025371890649759953037809453559462456417554126864195632827013928515730289552026970996478059729296879415626368247590073827419611452894672047231127231409079912183239279462420278387973193141845796262628539976201534762316762652596742545319620405875593910148317437348680495069541080507239299731740380651207763450939378513166202978071830446169495704302862659005441466018844098224554071961667915391720048988406897144502953671634888822643220537366022986867951011918633388046656431790911563879811258909729143070326022723137537321782737252464040999490777302595118890806061715925684790577300501622276939237818791172715970097786564560685839952418442035548312420592732305422415298624777944315447789493729373509814426743193221930565462349195190552818934595469875417024376765941296132058124020279232156584650195453340016868678555616569517576166998546027169174376158070884619904637145126693972271530601370802969175550703999789478444927172300173912692161625460398601066539712616647106533215159139598617817734556877869835175807847487005296474244749275005205453992174775766943823643139975416816049071233548436664369429810420793791324290904472483996503790697549424687690582660719360187275491085014036126556281132703561799807869734815784880525275615586079691358088407908588950064192523584510644210706336979686642391487644920270145056657394423170644199666119568390129424890133611055118830614080254585378268301570549355426335003545264311845671904889192168522750460429130967831581764471194485607932277596029987050548542807790237166704134777730907470398689980376071013665020634989897262994507241464243396668472106961253042457039038710513367242238422992601080117984021473967474565571789813823325226005415779019064102827368008150385562335512258407693781327105343844823263600777502604624120969823734079607298898537906855105245304160341007599527880875563604430807941120723854721907006344064101726659493439730485602220826515189901208229789675736735296357823552725675452258934175896658074687018576502702925203361124939046082370767553554198167208806315564040982429486532959008511812777077658772044411519241215197964120551436884445386626172520140781672905972912905037750424406772187207020944720359166565869863614683213411698566253368657933506176661893102431047563092923012524702630985098368426802541138674250917483347084736712255971565427025856773573737943939749909003660954149588152240950120298583607536630707028706804290113162089298300297850977403874763547923239312896019863642325270362228143774213773231243724304713710823804529756157382303434226870883092182990022562147913314740481575640926670064105492325036175368805564801331088654537222207562000922538364230782272216925876188398905635922583240961823005499158065056002551441920862656975863783649844258429020220993247673009729945356555040447881295947589121865883851346646683758393881971312509231175221398126358694417343931047671585963743134713281628676836316380611520695839760529827887958853335734228397486940558091131289897017128530703357517922264193725580949492935735157935301955489547493241380367789322205034108137620873845901651080733155304727403642470298555411792910565001360140639226214288661365319597965767510452173351132706719363839975867171444516378267784359254761432019832464581591540310154600813249261899137345234175467309280371482198739781460912748126278999445061821623291125909267079695755680813285288162609306329325746052656219312820829332072239686822521121245438125423895301110628897181062700736412650419421742411347996848110704972093773930071047547481241062899724337250766200465992314147450326219866916362598325065423071623008512691956710276686749872033503660579569929332640930603676409829460363970733238302904178887461093404187022270400182724457576610940381385166772347675587173814144654912645746689561593909093701281120237266440315703931616947249466322814584465486454719864991064819424731473392399747637112347301580684934017758674970707849767330210001786067784731774776394176460333736151642422817654320768498755188732983561072866335834728418538599025894778958173271397325117267634220551853999394621936035284110929168020464381508294734217901525210543964880863346060221844138223076135384851904702375025652596680428750288844621668746316547879076235159046120175112090094964971836964868424124942157111659850817419413319661672059651477200772916602393098868901392870301656762375741681605465140763388072252514448283684004155334233797975455590521315406821455193481714490598250319137937432479261841689700415328502120116918664952406762189359877930684373047900257196084748483813518300158730519053837139516424312177119437289254511135872587183986813423182207248313822732752035915782238533057960990489709750790255346647690642829169782854146573965192014313104994306582820475735335707854080197643700719031241422231756906461395805818150931914853400073672458590339340439950809856710627487554147003644129582334590966896363692973360729963122781346771185521199789965316666779392673686177368136005947812471165579041336625320785028753938453526654426840139501947025514559149470835364910495779209881932543670964232392846803491843400654634492561511116651716848802133287568618628380550944214916701955791246926957576971317965816646384447672559927313774653283067701648008989162871992518291034611514059827179568775525152683734753345903581759540946896794630532709514427899457470514301218778805826427425258609348010008947505690453652515012438754558262655295604670909472105961365619034944860156737412343726004683372384356623034257074862887570109791826532386752077469440572781696148376557874739317639131818176663068304960366201162982229677289914177094480777898194799387294047396564412847302343204998026543258488657329438766523128075861873647141426496441218988763886509554851358957360976005545183832228929767089666095582173695647114837421395430549395976177695704174877272164945839452211188723946626739848590517404035492746527205915193230761932573686116331680392149994548464288353774734068262654699430535481318840694447751877708765669231192127882551816537808361184402293415188207300677232253754109933982340223629373337624522003675759026313517753807022738726902052484174394313676466441835498377694524892693236619949893355676909257466048716359163640936709663031404217167558324829884520859630184485087081127188272999823595588478437830237864017212048775077501738139119066388157590494599886445304519793269399436383833312364825703079753814054984946413801782716623540349489556735685174069567214014028765227672083631390108179671693424518100775482871030968785842724119567469638775463387630960871823806381711160378373802604802680299869084229101705717326659538673449340188476806264757832292666737000584723072063652276781099269222753796857001382596249705933732143058353133498301380241390872894457938820856445798884402330149747367434968827604704448937164567315273305382549443734607685841570566491798368375732455380031033228798366806855508895049380782944125421171042106016513094461776417789673277972782900794534256904053501119211494741386202203305423483407810108727504816967414428115355739027034602377849057557585051396973237156260841340710300100386143033580682231529027112951528997532360628382357320992270673400862176972998355677636217333756059973698072405166869236955705596708736031772529098787904490714086612476514713241987148069744703639995833654514346814175200846546740814554035868447657993799471471746471850320041470479804947927383790847740761894933141483408864189268748946053872006420469900386093551805213710721532925245472915295423752155823640293109231743741315885448864911799276114458683123005144350382907014532053347672636934530689982310202546504295237914883549673025710961850852363523583634444412780327233104605766868555489535080331709942476555869442536482692051897213742591401125358682647497437156109201743664269411682311165595389459920957037811856153852469932600041598082507081413762879620784482572023159703539855053607416195383523884859649871703195635524992742325072855083668674558480957335721151087756941633001163641968629012385072935645010816084414277752571924221663187919470913919987226527352570895349030169331318659617489122547685029661506532939077892329785446235909430914327550470194689330867594207675116148011053571706017550653133820699043094528341272335496167481502337233636667002543781343039088355757068289665345583554541819316158933614188408518895699349814426565842050593436396890959250044843029005191946676683785057918231037546166941799787745998864022676332619232264259528932337434689375197814186567548135998574033099343806354282192073514107812301158148636270174325211699420866665465120422023714403356888617804150025638671011985391189754083944636122745965936231964889775712157150546817036827974882866013648765941701439166195453715755195580791498845406790831572461826350744310041424891754605821801216825975776931421662108312747160666944954817210116576875589970056959655720427291974021318991247555805800147421187777861247211916974100492415243506033317737755766779844802325654128084908757981196125010421973708272405344811267869135973495384077048514547631466919618375513322072533306765378112864816130346009832801156403388889516409878557827993923069124987810146625000427848940817723917473147144977328628508802159423045408617200573686127838440188267821269622363340129070014864546238290610488985552965911878492966310739378852171692894917477371559144911768877984293426150850046564883804277254090271522381026837340201619196393701450094016734860481546932089056199731915369925057380579067536936906123798949640696038844129309342159087940689221885278023493451746934762458977556850619713191607137156610414669618931504001954453945014310194515571968499153983820832500079796458569808157250188363660047000227153828398946830293048683247656858048598145999695993266415380588118246953161974983238174648967833946170706855458299973265767395375573727131313083639234380315009138540451294322768671434127065276202172817735742349893982662224365239451764416063251160415451268650891357732765273053069453536584327879795523328890659836811423354720251084726909071695421816253587990519116868537223599523522434093243770690265353041518668918371848419497841690413860920157781962048650332713453134088502006713196638693202226768735591197418535928025553508265994322414808013116995849454107892050359072645132204420056158470916845894148196151155799605641713733045801057741416510506160252112442175944750856665986861062725100366353421914158731810783372058374729786176687212242972434004096092798296229080775681382354005029727274830252102554852171692700794343648004476831537814074396265896126721072777918459216631160624776488764835470928682185954908733360004775648796827734671085567582302383011279822267488997801862338040187397884460428075746785437401003382865605185999210333446430437783762230856975481299616661007081711492899281933367628706768543809096879541901674460858167897765636451498828144192620518609064456486134727459286171434758463547463397916496601504120781510298820611777331826814500586085938247394259070852482800607084521282358102184285314459839117967014633783626637753996038250765649424405065625405526764850234238590118174252804096648340716259557852372369517300991904750724546120023108896949528924780365676840435079802181514542077884343111529280317159735047819828520843143251707782314497480678721952639145369013611836296174992605760408457568642171629640691126680556040942805404432900900781913821588744976813482832013711432403990014242939840169411174674448116901628758846384856963582811342433167748118540698390465100419468554706000912079209328248732128449421668384070601210807894310750696076607469389916691672593106623204107333156242100592382742111675489498055535777966290363278684385526539458799393238698287638928223342117775408791459813095524180522441352624109624316362836523241659742758814776511556729744280163967844811424715207883557674063177078578445582109613929324503092662512444812273251296006301456126566399217965424835513862441395516351188028844943104652514109687975175320700822116404431082565174153260096249906651065830963207204777386583505215815885900982657695678117305983510720080215293261851257616489258213031424883850010911294738455669737920411513042121742395452620303822129456465224469685663520294667081452507955318194063374487295223154920682716562939643117626806271897284215185587631838023981066140831293240809990385517077719027874701296529616996753028326700717902134019248659891975550896599446197128520529207571475924093175465304693746934207531133186151669191390417798740343883125092146149545761984039593932952252187245430303822294334860665625417756106248235550969554956299432900942711166311913232398278615331905188133240629045893394028723251038953503711935979365024486415666169072296726664033628486100975754041460821011925333227815918083699200225177302481090357330310931284219451000140138245389512624710731911657493295248578960941006632548762259056464839814846643009958207267754635126186073994446044775948571483189603187602265258616498010329526685698427550449043544019737028301100088798866842269002286215348370420220441714613801393043338004253516321255869103347975458277753207668439142333899556578608294834816046307747907778725567159440680407997203725724682246677730582742477399066456747321082327449462716242492430259107344963224050730745782350880431700291770427458126543572706812717376746658442280809618485873946892640227013715602962395662618043306416791991581562500356792447179247792837429254989299813438544021355095309704884651079522885317545055605107721549377011124318041165123065684007150003641872579062072012907744492896612172060008261993607935934091025343166846031510250789979653179094947763085410571551886461294136780875641457314529088220128120085794713761197920601441921547383656861378597231443039756245836640701066273330208285837571430904790721720807738392385384388131658593994006718546525717882147672903510701528007030542467866758278217540983487819369304650063944152523221128492063946442919000566667798320442494739011037141247672535488716297587883298006428274958379753002010058137387472863598353440870181072906887792496297934341385465925825899946193953445101053391386190917123775580890021778770032566939273337116750818324466773997446347012093174970099830396761718436519935703186800304990050498663624516843825102443519154905886856628599989061188753503744892358875107294211341730242804742219028867234102137403655341083781650750674406708615075140797317006888643067305700005216054194932919979654893821411424868488231563060022967095692915770827007409883805601010714553044086300061101534142399886614362819698648059388617440383920329364554200489706685161819676215306323701721650011414354067503661400070811649024528697149509863117183174146672707683928947544104375808088772677607069456042005272639906886872507021776532967041079826373910396615237181973513380854567497185824103462414265757201252869522348635741616513021941526319815070453435055517059460971741326169799986325950116284731238348938307751317976233743630419833799759922215168782079115429552686005287067334102724168581704555603139256970435829917813415890291253763109385666233702184416158023966028055386086200525582366179863325484601699948996088165951191197385626797268288950771315891432633673431325251652906806072264018563337147576413267522144313579675493783800252786175128648709134909500022787299810184013454476889496791039764908526432472148104650759739421035828658854126881453258655814693972184669415268280541838565692725326016215248770607728879819079072151199134154081398113481123551513769888245199331694738329998010064573895019028511633700055844731853992103778213074569016528392127703585602500493959807308767353378569131053305980750533428721950866336098749491631771062877260624957742499372806866858649908407497937809426029017000705831538504561450583255289815329731343521479336671365308560597625386129050628501260146532991615123582476061368389583075237310482180806400045175716009563020575046587101430500387679570332487118832456855704541498532820193664738325981857557854337068496038815607586205064219100068184596582751192704401896188428330509176985526183464862992551754611247863145570674808148764477600202985971658704172134593342985046478270840604341205516019451676592698287424834318263980957974382085280543543858771152969007348018927128905958405817971524136051578031695397807417912163611102526705640107015993610389826651057555655766317866325249817860488297878776869001856337616280839043967392817845052719265602463290615374087921770411090420675004898603693285354664628636871604441402947132221805084297822367072489495806269525623953326548074270171506102985142875144047115943668110228808773603567247711183512930631776953483897742811042859813991522947916939345658793759759680514568130512802493002223923781702414941702084561739412415914204539435337692340861719990354870277116623115382293916750205877938544556014224489470549482981198538969974160278854628321986250213852378664540726225386179410888192289016640836444101387404679762505736069474723115447876117523743944040610488880140833020178835769861499929147652879340771234226385463599665777005806099388494716926910148001123718982376953906268278179772637017691126767249872436491935429406069438702468700590985453530945725345572421591594686965993061018633590414832909475198153212522705622767510933627397448470163818024217858031305827318603881183724551316043133735955842088747433481938354563249966117917030036931758101909700906881770083646593966068163411253133514805828000263482390308772918994438875804772287110535527092232039634996434492141514701933298470646379658773844486229501221680498975654766837424308965071092392562028055196716428210268174382884266068331084585023316404647001070728130247425706500693278486984527434385883275246107744984740301178306601558421706775061694169793066767628211041123269290793011530641667488828210545327900809314694155700257496908701732669129341161766890502596866152667135687856346481693575499192906407046542819384196285070914952028958709223078132203590807473179775296305797995946231744910885119240852417874921816571727819480250396299187262258738173636586112770134147816870482156881691708688861426758506739417309237064172225940138547898446599903677148730785305555872592655018226009650439109834993241325991630655298053912218586677827475950144932242673768055291683974029169242265483082937138090125515286359464204147616023656993574694956774400562974529800131225033015312220078735891475310330172770774219355725261802748762353932351955348767569225916063982545290901081100826427434926728517386357677025581735915135565436670694697545358378571023829468403760906161005934482910308482877592148198028827978610689229330883714696980513105688059575040436953362799980363344101446540313052701111240514486272141546172300382567311354243911164624724158052461398867705445877654314754259648366062366619075135645129132442937501420542280748208257456975154873501077560534926142542201483680075796893641881660489729851477818048536490247423615359002755033153092209797537068214311394169185404773735263486448778405122586438255002995293698307116916902168822240850014039063856942542946440086185480201629608564222481421048687475013146758178420822880372584160139783599345825370165252081867652604751886245560808477330076878718661184640014241908145133144757758111397479969708690452153306903740924588127775139579169245608725325196685029318255771325431725247965738975599670114152305402911366219986567402438812106062954363602221224598173789575929972634233809566622121695609549081273730945674739228243145111718802942358953693487330487256278702890593886827004310162006125039920621015713499111145949306761137711401095619765687232572919213796188769312439637459352650999767471469579705021771993280939890742181081480679421683092557259127023281232009432111185310755040618363699468804453566515964361447295486473024846088572624380217298504152219041992777340458837443832769737649272241518707838482200180443882716091019947252762058219750365318062553900186031677167980960508578608328389725267338165250633797545048491807412756450918529567508871732101885273965505010824732205025002580300011325961271948223935867422464700630769505473362005229701737602655091962568206272479762635390518278690133914014455159855772750256822581618658361420543010627190302570665614815502763645750872675769036180476721805695281694947485717927914561906903139516432190101834152111522654763805151592592288789623424073873837775863191522754126855377527774585092604591205788222634125763612179677871805213794740002730698575129073439323402776406918454553494366485450985451294169019121949947575198949376506270922475134772836284722454407903515477985001967013316566010714457882146485294539388842608060801387087473778620258372821204567001514006554681558796430501252436282248936986181737050901457416876970853506386915049449705264248576311401052031671243856468154859789658203868087268884458551060667193867636850601088617031489477684382588115458218407526551412846020451259270870099622698181345618146114382850662208800245999210432744066426672752610720243375475931765944656662132246763977470378908904720675962454984515305515464363926498195123489607394140163484694964463416751966950024527822233935272677883193048094020557953522009725667870359548170568855632842392086112208313395477860424296617438249458025979372244185140210188522490194783822545665319785839401233597465661241507525215563459966350216101604533691960863093870750210865150546237019545856446647755777259932034374908636069998377144790180385613634602325577411334500032869739682885389179619101699113704822353489725295009925280284682978451784652565522468372773149627808579987744885508236923745433896120294491607609960162130383464717304273144393128383857653351148657246874494471343659261757051533721971248210193891080588845867957635256770412377882498936612294426858378891986557863484313804582849310685046033647883763293863488257175136831552676117141764303442102100770972579925050656422010407179833129963950003892361801797520587471092330783628955164815313977361297211585397645729892733149204400927108899323467578832288438201471136916071346959816480753183879563719552190908927514824376961723282776279718453688340864647042549565211746305709002678972189529309949370390032731002827445961802956756905688217705453374791277070972179131405584533510459862827062245379519892857712251049366044490732509732465224984001076849926837246150235030206978498811615704784194112934103486840995523368560552036339813039801170791038209624891569373304623539545874931749756351921343135617669786925228428984702352151462596349426047878677742301968264407912089503251435182036530869598768663000903248490555305381416148063794476750998352555517528737356817267758501598979531415058427027003675855647319942436763037064149221296004076257586378918300876927720749679343929335626268525129167122409145486105248626921602228519811950128834838691808678653965062313105359205798152359682516460008941614177349337658105688051172818822679426094322344104672370109614433707740188415840234890247344163834124080441592289200215979576314978023531416194294024022312299818282804478085127583830720975758388869188591531752119858793265696429546717983756798197511627547732478722890351363632706177342272412895621212266909539229443914310309652408232838313893652867921266703321322352320293328918348422419399929895588262600936780338716133827273358291082439585976461485823038022553782658872231506261514962353907782935236905312736858156389151611962714363077885597812371786381330202023315151096869716527775145838761891905607959599546350207096974397934847527624688470716614666065276299561381396569112534303668727413196091708047185731355249664233158850615551239844461466816545394853184543505035817693208848537151206757619830403007673924979476748061962070004676695013561277405073556751503315525051235606147908833826131156799075613261203438154925418322192799303826733411702448544057547286209154198851737949189384332047699743507063642029913107271854029984665641001639907463131054253718989339981405452094974742710713343684000630293985839013389181740936263292610496338155607104181059048174436564073024027504516645719122774631102968924816445978064456619315625339394916690346770569337307942754484601368309273765580224122282535975127331771305850921858897004694080786509599397218826669998125270688472226803253226326416852529581184936901557201530720292018352000662529745569115533375502197107422819006810608758885968833227957943789848808585530851821540924270483801760087548360292098414699062250857365229265508356363318942463018582629733843632311775110040284194093880524345451776826907646982117310929766297474811249302952866794838537073290654107499102723354324871927073837503287072507248153181154142461559713690640459800110135874557234808536689101223798900925080734646854949286141899797324622986345191535260170650312176372993740861494780398170479852881672035399035773151278175072573501892668883428614785639095502922140168833521630995483004852960333589304592596913592419807626608287653303700805618591328522679239724726317534946940576569334704204638795168618775096850209001454655823941964215299692490783082998388643203856810949470980412559610069165002262395005766023630587092217394084358859845213631818487843563568983014516931086988116769504704051706164341692354819823542591426199417188752598936255731320651502938866612767677288144112585378211089059862545524638414501218271507010184123415714814098094654030696524381751974459897666336784964202754557201521833634982846875318411963157810579891381059292080986071999139335907962604482913727058798147878016072004130236379705648313971563901324139274938669356858243838662314408432830126266106128101691613652651328302577588982068699566446950344384213038611440868433122786046460111528834428145666435225867310609262758911077802120133696900497854804566618651699394002362999921424377113650766869669453972175372958464157061510914517780212867441428317617141127975539151233075299926190865811738895810377302419455947916663603322893829256842619761125606358074033414725176698006289330917901607488157723687578636600320976113494748356215391081596950251533158555322089310249163251647061175603598470536203529171145980824493538533167149574971662680106472073416277344486529307452409339758583919875023068128730441319565955006294875491760482581201453703373772255169403070855546604129777562712767709244577031502724515045363868447539252137497519697911473839767633953185701927846795543986950620953921107222634769684730288468031421849696296214425323611546323649940165545997410682955315222158393534318426594857158084519460407031742410749795725362693542087010643780091419331188864968591741108031187024684901230211184870615901455495509419416207954083308244609260380528166232680899617260115199842328967211789920457553206658024158209795962697120033314258979528627474214818955333754097646117915785349721135157480420053295865887548661677604729854250130291475635840245367799381472488720653168667092307561354318121832202858565302019899157113808231498375492872980908813576303697479164634839606792794592675228444410430984819101558918523908378498104218557794264603906712958867012419323003686609161295940063652451271174709809583832625260447507815667427489140399722908906589360496384673512263044668643834168008351710369684783139614058518935123088026595951269303997044541009471913239529505574103086646093606985901762362617348015530555835061968581106857472951797525410956450894060657039705222505296961031581191670387410283197494598680127489262105473510307246104139447992823208846590425127963315158254870621623554454137369331155612911878799568731530855487557666420469732078375200919764159428454366568721227679928362010148741920426079737210159258593520452847936996163511638202755946282408841703501643310738095102231620317923474116168694041986617899083831347346024763395313886681892963114716296168937479096240556727425323264475010836169404889033738481348860715733861244688783871324853188444316337198976504908722308065888475115602873343221610925810452524744295832016812499000940524212035694177203184169323510107965912155794760050090929557842831200987633441066852450806543322365164210297444050941520221696505304665996479224714764506129331226882144125685995619556756688391341125971920343709331117201129554082097342500726632619233421401356984280324341668671806619890202676429735194631932320392732309319222198635610496060208006565654830932934293019223903807707225046166046207537912990172194864353566935356922700784603575577064385446389203639028419111321746609948258676855494107031708897528698669949735906983237980385557838869119287444283708123740803082900495725261180217258214619214602080351584564330846690382014867226810226803792713333831989366636249427202715187839874022697152076006646680157373064722606422034040296885184113875179137745651271380794198561299058029788811825869007294794836234905155407264217990907512545773974770053731253057679543007316327639466239443717223396611593092206318527097068430515918048460460624377946858556667054088644415541988541382922818879469315028160395280307739789370918721846953240295930331964836042343168845589353117921795975010906843716509518753704818341474616777757020115393658299304369922148627230938622156797126067296306425826998558685589772157059758197966421192429061730005613971354436705010727065765652731282624362754471766509254599603721462041350669967589779661743271079421260582349006236836939226360136013532618829864507358940828987987121148606225158522833415213344271353066305151405093062052703725422726447657688488147673133983851429078872158138756590614999641726715099193172037727066565149225752086408866713862692402555195156799300554296402928054691872945216197666880090111114560979186622555380967089301026820165458127322198836189354529131632346864400630249185325428845454660337472767806441312131246677336542955424154032626793377894441943935429536059229994575273567442277803445776062617742889799779971779948591192630232432463827878616237374370988134630090120005300302681690529325702276915955650923225395308298977251678633851244901655682317084946808680971901536695514015929974402283904336028325470797410211950955715901335890937376090742264244435501059496140503348088715910991557974121527245198744222331050357315105783209143815443737410459877783511372932541617241925452201326526651065136810353274296441221600360344957113705178897354112575871861833264809999366996818907094468718105965673523873419339132302956768021762284951498322371134238544977192514568802833987307997479374092279415942262107904690757748204552364668118441825298230563758280858886755450635884196222532268837225836866411492202054813708460091601409806872833545555182100569977664102378957910290185250006240299797826380997250671560829164510125655586215384866730658662857351477389336347827806795965040306478519759998738367118793218972199208770295282855885211700971657361529696671324011774574460691352905857886744010950864591049094952110853858038979271376903384718041450927036342632217493462978430318233878481438994922560371347546745500424691364387536244825581998462630965440509354009008644009139385989872420253207419473796808975048676452008723687780088036342530523495129868246797013095219009284355439574944148916047282237376581898780705134457150497967185764625605582077496917305086312238883825474189299648601979401052361000698066204732879297060460834854615834867222325516413814875578404949723665757992611167576757460256627033404472427150135322188805951333701433791318004099215000698744685907339813079816585924152142645540587356503694104368510134079187302574424527186854351272860707334573028257378713275983797213907414434801615752390975812363258208488830644407141626401850674112042248348198630084113182248737390790321301836406846613038888708581916403752777791167284544320123671470920177082910284637810422326393873899503971109006670269060609888344379861563349069359087714953244370434010478354486208206269572412147417538817350858593858839054657369513158789350828656789986598269260058878491443455802140655026074885851088695277267069403671730905763554494518673903076305633125184038538028409854862951250738717385730013302992871665398800050899317993779257730442508148730036796709021207485876092655799364863624193568336774301040004286384668324874551628899312082252230724908450477106514693765348373960168456020811531235533734885017394199219675862917038473455448224397812278354357425946284472678945502903700737275808179169645672644243006611080467753563663238183451382000137719312396407937655669865924752922755843878778673502515452667750058089974233623075682827659774270002748310206870799177443790757895484500004549299836710560988656663878821373307639340726586739229591290994859840149569370991413280015846397544937992402511414102738751915192391694270197716335020198337817773694518569024036579970205234891012146554471083417318123575507377993367637537590104455467335422436616757145876494830171326808261322996123508429347069210650558655095579175236624755590545860700275728488198475926701284381781749851208599611252751361655206462873885335719264510807211269976902811919874455215311367531138162208174977126048490275364967853439654237166111545022236570913005979289692116684178119498324543212135689530720844737429832438861401220543479590855994011509124936469668968582597479289602768777511760903314381267649933555760509064281650239130265006075346441153629747902758370178150157514633130531506537393897567114991123460686796830460767953486814939485204724458572496544424612606476559357751331632887062392200975930292067880246085132016033739853874237863211675854216492445779722204597849883445986075651680498108190501165170675866969002506593393078333652640484206951736309357887838406979236641250893253266982878705824009492927687279307194509633547249309490426251541293280142212662667877272400648291812347155882599572980694785880895092064105700670794077217913467937896856171043229022927077697574798721390418141441917929819848761273830582361821921233130019970166348576969251379034842468129554578722123617728355065310376091464376911683414602033506827869939800185084010932548548291238637592882399979397351177944272343782998308022434887505870889048808194012145627362329179455061505447515252036559800423734798678612668245345053445686523174671591890265263523271173182347867984771793672562336196876962653034225588440656590697579887785132262547711661905184911990754324093906901884358157278155830626077117605167274611751668050542588325310739353080024495532535085522229347252116725585635026620137581721555741416201650440326708208850662928825464052348235746556557728262458331850955282686210524861224087165250062353037205795548238038741372769776401563881712521241799491381123674303944929319941599220421065269189438359278358642326491880456064598883235974496141752209715269466484463531379295543796164176653915493399279540083120248609983872673992316167665673639018390607278634867329637522862745426958561767566205654913651470124331311078754078756919919376359180591723185337009012066507720902368805359656450693971067190057913869146656046700547289845844341465604650239640541573223106310438605230726307896822127779437596144655922035743289047843005277706287092791763240321022998665003249339428941283912135002116787439856680643899206515454389983839703926414709171814319188911706802680575836029209849261894093750074384235378460855882762040601074891870152090460711042376575755601863553209377153343054308274403606066823494415955278089817111279740305141401906112573993452505744556238923676908970472621171472012999099397631734781387532833495967355148900539672057655691021571234627606505697073343730738325761226764645614768615829422043413315340852805400286014500185339047304824888296358500303898990531128212479793229979346859207655739534072388182821246603411016856742833382120387994828653063762930791215865102169209518291596023315697021753265531382219136915901480907254212658817534485060695572611538716771132526276080351008158189482557547205135913661417406360494271165988976179092820140721005941454492734332075961996230042090696371274149597976245649949774104512125936623830932073426842947328625553155657169722796148723242424261506673698131632057698192973348755394314960920071235870861553976071436536079206407513993716750599865253011075947457103274129900217900605450624960023934611424378721058591359505095007065668809355013769834178168523874409884136093863506991984837010919336365977010708080227253364744389343597582778300860074362236215276432690648016944516842369248577125136899570747086389966847967778092494630449469275187193147364146215520123012887043533000454058720371944243983781362500608693098841557250514309835502527527251521291152724826988270213728066812757426059001315014974063915100576316926371316992420953705395725245221693061309980391785270445989954762431313138299697792640707464885736957688834730078632029409992379479927402635456402887356048514721622425151177003666671812268306506925477363796503799808346846127755296809245174167026017272344964307103763845009307504078892977912105669390274155803715456587241791936609533859496005843468516765301925936402661640828322376944348976875625023850617322931544679058438672610631952728391593344833842292022527454272338090496510065170730699878117772141692248336166343804741805414738241762747192540533970819639406974092828411504178700207395806991002544716885522194677751164365311571306169609542500640353641300452206164074365709203967165894083825064008625972464548465259802728878169261118384985136032373779701942698645189234458688636666159411470252051802637508708744659882634145762330330279609493395282774661260672825392900716567791503273427863529995827441434430279047676644250132986075619282204864271056668719148188715900571889709035419919076190716087441117573214754144050487760157445845792207089216683852024824694468068568127435119367793574871406969577007032194078946980822394895494375436155522865700333318472418642101857430393756576573887489340352453984521229000369048477899868940402647867351204278402669834109534951273512293743424223606246177040002461643117645972473096658288701232439991730785047830278986939737696089588629717963727385109162284098683546413805341212914496664127115069364967358917684717409437586360117199027636520296506183687005892899980758131183356100197963360787359115485668167540231644452625525471410839337757035253594641424580004894846722388114332518981263124027095388570521116630404392582358603560116071020774345328180463455433822166727362449592112675369676229481756803263721782842883456868835505510001308386818531215277739453739817638180027813965848846255340040640186826107407954167605317011463540656520527588058635277031292212978887457469463223113976402253713740177943549487976637274947735869739833728145391109995222782364986727609044136839780191341280081982738578434387462466315344805074103853079870586188401857824138670231014995663427525990656567420950738474038692088066266735656384816191198824190882518567804100874404245633322545092314671697445809661048743001884108999761239848149973361070992729068570465463871301997907858630815778157362159240870227914479459452445829999014420142122855601333395839445866942277724165265915070916269252224267895047956597626094746485061815803139154700459697044727635497205604887763486736988172165671561717549670722826401315903167448405424676731664110626862207379188129870197367160263699918311875994516347771479756202221775636208269935791783622762497418471223875800038828105658820054560646151191343048034957040497328398409470144658134996209760229669195262496755516918195732574954727873897576859043834146441792394631790364125339566649698789758970248062944423170462660844564636487544301827517760719034184351363637668042828115562800904304016278210619427605578351069598719699797746248002395539507160157652131300475483410320170476939487191546800788178052671726469779935367832123760381218951514223753599730745434319547430858028026460989424945117118231127138447645917201127459122693986600118386221334450831999401040609678960658714771662427081082667452872046406677594679063965073499351733506881024263992304513823822534076645638637254097567173957436051666197208404925273436682253445086155212118623058784946258812448869990409038410073182299793865602249792660556839873968123262191786925962769789680895141235537090226553737042590038403068245941366545525629718043305985863854809395575056048724327509958183972875166460541544984008999034036057949702351153515132482634265670778097229532453277794143945380619247504431903915353691215334005325171210356857389172931890096406169714879545067101258186575402250343719991686025542796874273345165951796555738947977061099816879694554656444169578168530049701644648510610758931162132894324603115829923939083245464752832261844308446106482270992930920184525092316041757861169960572610902815514251584962982325722519440845422013749818126277488953713763936459171887482987203032406894602405409957111278452809399820812734583848838422810708545313628754822930743113733252438814274877835396792677367638206525811586327455611677291149047375812974364970707069079449888597360072300522283906809626290948956891990690352144058381620384883299093168589317598582157019023378419863249593802371728187711827139576666698252508074784423572809306527118259982121279023557341023550384216624127669582511565938342885137235254681008941028801075770699124919301583496948866832557023658222332480928893147634781428020715421322491853275852493447378090801003330005309593041314639124642879751376883775522521702241630661435655263246433428689012147956729147240519733723340453026572658749629224608763149225103191926389827851677107756703074370543244470867761446586972851503565180057903080780569347119681871068683312217541486096448453849412650760529133946987149975860149476594991819587711587842521347870416229444884273625945559200557655011678339568490270987548936759792734235666628835259763761322899980894456410539881946304998256573137664060856425157168047182196718652659274008249619437358726141168501540128140125559703306775623925249925876080401816042647405543547150633920752219327908307762940955719046854630446760004787262485195808259701579000821836788294599202455593992110260643468462795592860469253289416455814413640149994806889367855990674332508052545030441860491333137369847992280270106583684527132781129279632486114377781189438187896581619361447320914249697241364936360178265240865107213059041811239782188807370932926850724235225048483461685166493150978775582423858975747186732458792652757975766407234561597742850757452756657749418225579608707630573175397576469545227260113010334581380698854905488989554284072540130824069623045713141720886588274139389059518447153304718207183909569196978375358784789452888599051811485708061815516043155471358466007685000417323562535543213448385247031807078731751443199125151482477219708598312321977958266960127695087335371714924377511196776542110849488977352561595736220428319444797732120459404649990942260008237624855981368111545427931303130432272770937196633735693682199099998465450672237586155553225578413122477340870517681899368493018883668634220037584558398707390594561822622115359603819077131439665774347734384813669338355682633254691533892111197225838637411494913680233975020101452659449741756417613629762862044128578275953404408037391581376848487663546574831187450629720585800669569830937014976727277141232270620375745803561252789504491507335131592528395945891258774374337899317234172643494667757445323660640825979680629678449325271263222349266891022212585112674063640781828750523159090970331908091310761968463051090346374863596560947843709096433086639061227915501330300950682610491600414626470725107141438237175967196324351548626243119876944935506705368855696296904827604275850167475062565315463303089316730558174648258170438267309719640925271695473396898417641738263839417910662235159140515361698871730507145463710273357004443465963451254921375766101144085748815307344614882217633299567209768550146823824224752657598695875101830872573779171223994638170145911381187420139013260692081676397903590558796817613388279427374974164251754089959303677634535753157619512508357380072436005743145881017639495651805624145488278412670385056546701564726470744700681256497898164990672945024472228895028175147929151911346482099905469102236315011862872533419007511526485727051799697265711781778258592519375072342507305343620858590409186835627537138959663950067896957343984183616151399733394358473041445580719691800274961560729297102741412968741177276367589990101285648069385974885059761375562372670716554567902638296962866524417880461449146395907448673283900717509931107247537202452968474170799181156454875964963560249709566722040805531582944820822017341372491934820748367978728464712618018701524734651382660817645937772182240327720357037533758757131116715961456750979061463742421687771223871589035868111564379278243210636466445616758335759380944876670481662179887265350282509619760553340567134895000460147756241067616598750068151668755727241258750743498951739381358559264232356434466217073055523544218952401871898335185584598297880958758481570846649770517611596818132805593129775942299040186262231619304948956721034391497796657190846445698828143037003377325606304835528296440877121551096331558909835046095908597662144818651278242249405673329143689566872593666635466625961452719191045590142677805297531674699518343541743741737818384105181938153540938522057727224289067411897829182271736603601742269123883437241430059900130263967164525739698758793712667945127848567420827093792051957625145934159569649064123430468506445347190136012516151068322206218291261446322534297243656229400322194258188593685385066651135625051046581177739189336698062237335683040128461092090279940735291364119575942540522962017315716919725866915382848026979514871047031096650004438312350858982242323292213805436995461800647678135071189347728811969528920515834365196399098567394826026092223856265593481180511566923152805169796176232796382323563945338798798115586267261395856408433227000886851721605839882770990099056566543126176188084143698326998674600021828195761123512156055912302809707337187575769405466437356487646570639799072298353153217746105902122629958146067874433792697987158040052635694675366384595824175055866004799205176925218052840937785494678120166499604438808261305754762284665809518759071457146725421386882144588434366150512360178202026280839867265755175449587268288675820895527971687620060153413542411950240346316618540884200100774485456212907966738392503791628220318880538087157163404594941608709579135210362471360578042521205300341646019153880704687296770795551013546869441817475135647405692047369139022170047773505144114062153260868276110917150704989687688238062871681012505177719805909846597809396678468537971058051424547994221524478276589577675936464694731204601324440153265674371861641702632770517510024745552136766875528883138190172201030492194892875056529491849704813803388249324981221234293744756850022666487428720472935259399575452041342899258567526800741190618936983473512208279392617946331014217826961018129922346285928852566462942261486417745020559662337299724326493982762070242941550727984253573649164999807025988578718627923649302390368600589263985123209419632038610810353532856089602100471615400491650489818761347702446401794902819646554687552419107235875689937642000859199992116230284035199398857759809999858591308527955562717208960731199894639470620764226141609664076930018840434842462297480036251391103046874523536495462865645450706269440896893893577996089966597403609589809782305567440407213234224020716752834536834410511616192014033913708492456894993628623059531617863629050295824127662060941575704899351137491435936921007843729668001277098186221636255496026348313993701591093088623342330878931969599560595169248660980930662948850090119249074989743865335773701352659307605827626405240722215438702678679496279836492742196383418647748684530832101108671313784552852770722437097415721593951944501983917680746095671421111822438505821196685939536941845639872945069899372208315191752895851290443517683663355951500634506026470577621232965139182724583502686662156085172166339532972757483195199700768163513016910286824779508946759399290316343119275934715206519985677383232395269316563044323994410566579656289940523339020175009687150990062138774513206617373966334021252648485046518954374186331543150967147900474194920194973278081481471189688055589290738621342106117078678729246794699988101501853208694599097196465488465812630637490402449957032037214449006487437154919356504597427207078102227626541158048991794134779298749348762766871280907120457570005313300149585973661708118846463128880439288021076150846871888505721738084077364363075109340942210569097677892102809323446118294937007290295833085403949611900711572998131695692057533437082927670646293904718698606473894738530034678446449855763572956285041881480350482723527988966029318377037916055586286034543408007386638767066982591626289932220234867856965218972846599028441129178454558399442182612186364591491973642510463583848591041195621081743318261008038370406590134462584382534296788255438902884851232539419454032331361749425207563753601506268233804970791445174107616377561839597929385279096163810955595546909298588704447245659917435397234191063518889702588638424705313311711338559652079878352819739915940369553798183097182184428413531396809518620498315573925779965514405240613510834966821761962340824461556560461974155366801153607293686884117052124538239334833385862292534569189018459955883866923896034966582107210277647247520377489025400037121340934412391106706035096014632054856745830117672965166258947422668384929682420780125395486612610943176859330476691922558693138770386134354594357107573106742370824705792410036102555011633228105079230844110350091485888010270403394750786337259897418613929548672607737319373574098153944403277526617931058321194662694598698389157592498064517950647500710586039561371501914518348217940214119651067401070672958402617855206456808998367138592724314599735212527469929705097494388223199145981495344082734014271871111376747553757247749069325757840543160782777731375764002361286357636372126573522107789334285436826035327178318331790068493388646996075609174622783862299220486290472286977979524207438183057928750600445341752182959286706802947260185243918115447047105674595897603431756287652383343442194275598818610588582370640558003434106788333296537192176164495098629385587307709355226418851476421606396476663973753783210480651261809233396346629699983546785723070131025581192597249330470075038817346615719947865598512330456720880195421560917091200148152295699172647587893914081294143325938479092285940338863044506050446380018204418061226251892274293921888190888289797382067804754820662514897460876389464441642555499232141032969566774816791922075586359449107722530175817819440622568279765172734739895447177684354422982639202531574302030961940923677856978915033530798424487197900019608425442022770987930282981414357748739989917347176712866261739761326455809747283560204882681780750700843315859545766756463136985618262670479180766532674776476719916811168545917709262271040884339696761639179703688843427515072964330822357922564233096774837206049814006996566732962942125591319097596887122738731479251914969174746745461787616065956421809044365599333155487555576991124109580581485229590332833371725065018830179998914628246171589133913515605329210596118657145906940026565409778225818303367326653005871485669758066683440261495122169311136907597809847792670275306420824769364064043161954408639412016724778664521043985679780930005930485224233189629890471533551179277652410588742368270997394845284397712669174099616570444684143867271708296215072910364062051767404675398445225808090491898337055891545964226319875331363134844918961302224284234824150738790938000328223240841536717812035766033755811304674694431881883635846552637163355375074239967337974625998258784080965111788594677938610137806122605099648271566216286184704408040642112418451097828429858026940516144774023509521428132898056996279313395215850045400062992895859541140182395246534583184217658454230863685296411336279571536747379803591071864111780764405600124802797673709468433666951719092009482074600908721384951115262338694078672154136450729990545387268004905296506634020321127028443982739216952460873459316783740718128869032005712986664052757370845550541926377947438642117748879885789585245561615281745617626504059580983620189893740609100997867559389946953375259219700446490045783131230846627655464583610814875890053227373764895689019339877251017191347366956511281607549358655728366262311832145649331938088945632339617890381640384495440731927615970234563577057976217588977363035362268279785304668884195533568642983447409919074454363611315116088738650904346928303679029920810952896775202854537974933349087492250143480426254793677229275685639152669946526247096434413815467695320027020965891058556549165369822367225575402054949560892008867503505727700214961675410947959743328701742054803424464160662345832367378526494042996705253049729244675500503061713394998344840963708118483728544948631633950395788801479657779277680865810182537335608008572457913736756927102692642469931918855323842822456379969741532824481323872657217573988312992943866163620239899723308895707175347217636922650736655724364092282274812544933278746114363170699432142525926245045588569402358701393014756426352134295212183531831850262674849058161743975718499399641417258805447451319269469778159527649963770826410513347545096193955227972663627347777020951510124945849593285350703113003258150438737462090193783497263794798923060498015040218735921223867626157483305384465857336321782188382333583374728946338537160941191989816878009510267867305398019681345178835941360306275526257391698943881485917245457403566970710731160199097470281380018218951739127790015405855009004260924124180130664932491730602932569440074417746206426019161924958468751408488107620336440893276688634869322422643723645225964361325220094157257240608601770879409746516540362096860783789999649633271245804755260858675642472006431113870995228657594739933555034356815843470156217367534188158321347005692993694842158641373239456504699079321499877274672897678659741154272844852163734358874051849745457186684568298572414906781647470093849256778069137641591719801359701633389240746227155535677315002232415869989953719968039686169986489953741279410279240301731865283993169381534938683885307274348115013486748737028802546813880913247400538254996101527313473087197848869251354750640131327640526694919962011839715775827911526171246021895130743023338303324764069207985793664457368719444883382009393612729365059834322335156379919940466275287453518807419106509873193673059951015813630756508413615747481930173862051908719190009253018591276976058066176913765206006270646388503884348925834833196590174904931839783999170949665598325763115914344083472681941532785694352913356731202072892962149621047820202833051332354233219146191328624947299262061611128439474150015874848517716458634852643133943099495471335642298085239723256780375461446585524122452499472104268395672472580652648148901423921046542210171986172174728048638164300690011160965364990255838926400042394007795250596449820442856890104209316537390216090734886531259651060890462035101187791771816508387048708475637666709346758079785642596906845951791597478386420939188894924201938390657737488293289676723784020311543619731334479235402705037100861525905485409242202702524339437353531719109371437090054878989677801936905304293759406098446212374755274361488408921142821061535915958087910082148202896103702305761191060905828680117060918640507130560960113985435343688997789843951207146437466265959798357843169022749667886593586773096919461965350189447511366415614267015956514557424593094857090619018856307376368404126492824135458713777419837968617734726314044377402188987935613983880682852259132846435884945411457071940282548478796672339908614934320584814784118266006214816298276675107578425737659330497994805798562403664419476649010906723615328915501749020387351718230385011163547538970398916496976812006167956461074425450226537344842425222171417852638044026011429411727097736103876581541413175286489524232301903103645904960355106713432050363307958373042437705249236916298961377320558548020387805224669002640937179401202329902409913609510710276246189419459267846984361591082113375971577473190778645771432936904602208245701170314438229461332896978156002392972231432082423621356152188351683984184221426735211386853796053987817699269069605252151891709566987936652374729671878086952224854066929139112233392065369541231936414867466658315891958491332081258556469792078194021759180920969161654426607328315128091809704421548360515734603764003594727724904485377413015349646229867437898910460343584478002413146986652530056955043462869547842355498391303654814525952233656319451373052421486525226288635304770293800023014068258098255103111825167307198620353065560925925006851824222131260304653214440869032514058458735564222576194009795027960421616177094714765733733760144682000870016524126950517511406690152626659716223157560803923207851746840991868084003000883387389046213163082120893433317392978415777898734240517667836344947070392934041066141007527749195791392264323332540157157594913716134005320847433211558051382434922318180525763160332258213356850910045262580133552785709991944992002609382059824972319572273667905050962111878984046497502087257688486255570685858646865744968557864997498728753223535445983177873362411283030425703314866195851326314047486151918067482995641818827418769638444771508408066374493013691482505085425471352176532806480937054475427837807650718971653285466552290774246571305718741521605915695844610955636820743902423419608867335811810685077174113559026346079899758882978443218669246569514360825348860620395864658982251130978013760308833418230329554792744274053421681727368865105763500191181612771242963219283220675899175281485585064989539032567748810496809677064058466419113635404322427168219264584548617514014868775942703473130981175822621610319880721555595718514413480470997595309798610395255203264124202095392342083835545446445387951434271354738685702434236760485885366725012240189942114382014521094520765150725190184645665298261628212550093010783883340611672047887896254492378423680862367480896205036508931841501430196558718197280841331205624588774260770566808757187443398189338637012842202971078695090818830768960353188751319243194990638771735290384040076881894928141443681681119485941193091385535473620214998167854573761338833998679661420636460853273575482473308862279490968378248011758038636696033164605358092132985113610353439666384103756419667656878435954037298970976390111564808576243782887274700432005075529882056953272209939980504047466893260213257204228698303479861556011815713763775259185353812087390607309400939334505937240629692030344330778253292538038621720519280893263420327682893885158659967072069309466017262926405323002407609471865304480709424010808219896218099111323518186771186624655264861414232165653024217847050205407556964860204049336124734889377008597791957356759490771875457179232699102503209772510204722341038889498874018227482462101684288046218594696593097304901422901851605910425300141270929765037452755116001832115990815128878228809758867117371618035838421677156345480379006465762601718270650980757590027463168431525455313028947772457997847840346385086252494044300856510312018393202325873370365337279709622382018081042684915497063607257040012164408113871451342129308228939147866455699284607868093081400620938089724953185547370642264808369234861933417778654249551474285839155280619209473224226646987029092770757388509689327823409317420502052766983971666385817864085567305414852395478726807453032364811222812116498885326839452479252425575426056471570432277640147445620643192975043211930539814662221856185453480931788342219613179156765633696420847514538163180786368632137972341930279702920300218949626648187431836386389879487127225583016498931313057530730190308391261834003810531566018884866690633330486208991397776300138911632794646519809430681868769104470759329291777259984118447118810448845233914542328733585781491018284926684609334434964822469474579524126853800387335396019488195786797134382633128614466716521808134721286448218617581141969201052699344935990374624195571659568938440446563787167082634257909853521294414977283862944082832214625614917131597415743455784802803335006494579782360719548670583301564354979047577591558548873701738517664646511388382368986509719436973451142012827231717562532587872554935402165920841596101849523593035582294439773595983490420899888022202925570370237304163472956523478735100943385944077965000879759185575210067158604282388679094416330858880730175371918151540103722835416018961733414492679655549750538349283385569254049777761133107584861714112133134263892365429013969739311711639855585053812911119545891601326889594592716921827988031420434838349847818772317455600156669749335659106083981294601577157186400534023622272779334787319352285184497185474751545999131647353187580559835532637694958581867549454037402409377690930174633177597388431124764504549744017229461302346602723206474131905877115847510545139164057335933383017377584379324781200350312079900591315147687382458441358978331969918056957927710101862651694436897203413474634533445116508534984426492946978608311034947920808423948740228270403068732151351205163107027898355119065534243411181440736722832168424096507775884557068230097847157944728665232312058277007335487325374042828470137026954469317444036193105462633838260333053779609580013634421382377016923310194478742389752416331628307558144833504213307615372439955946063128614817223443561101210912065008372803855555800159007605944303064647516715087814128476630358874822962214164845894963080759171678247190297637851663841100239665263604672705356205139659857045711711546314434244186052231483063945679041152740353069144819242366673273087071946308048670631056814527790499447292279841882460598527121242857984566223797527040216464086821522860866539130605322725124160628135676519963034278326842405463418093381038607987557946771882390435990160075772812226384978225441674616054454785353572049184840197808632638033369648168356381686176853171332313888357940179655928832392929292847014970939564454270537146775757863033432023231255477460001450061380796952056007268560098290448074832826948679851283861205335516268634421414086739618607211324122026712988581185926805751949926137454213098310017129981565446677426405151734570264353486503038907954934151335375519629117352623340726142590649049304339601829688806773219683299964515032856124355110953919172638509814541647730207850245537445573622905526272893656848723462429481108920595811284883553699841185350438137728879813054651547344327319976162763582198774594138511649768734935027645008389641344218930066411411756318199061229063730598248543558378475756525686713322580432423374433651914320500836143235706172211269466502692297757276978952597502674026211388484123386606911658236791691167381070391133043954315242957813537258789165339621311623572486804388778168517600328278026286305801345375600751795151636508108164553235716862276316929110505525475703649778847962396892253879208461524180841311619511458501504107998205101841301921051377171956300276585101546454951163090976285932839345292933267411782158815370453442666479714050192359988683415060382979783562807162188306306833555406355918421642574268916011911336872997580322217156378625423232506499780805342131585435003807787256040500715906507061133654792005429265049392223041949608615916038039730292409908686706181167559776892493652464107701166700322281426182530365948095052790309376271835591826281738801898431172313942042332024312365860140282082755912929460244291055358460752219585956633046242893121433716797262179025402849550912036951436576134129411739937383779160540144869955984107012754106142603080431395299593671302874686980079596112737441093501500919768744603624006490341475292035363809463486167546980529190729311125295504435315762235462169594079574526336135347993405955795752986767092795753523086530555339241652535549381519612516848248073617381142895389550940906706084872696447212719150735392322575758848617184842921583754557072537964968227584643026883700961864796892876788842032821438830554789363914191168034401738432659862351446219238796553438228564393964916236740653332118321158965007767885653502799382120655843104984324384444466727605563584392762420661980600377808663115073331260371876801451658499506119282760199908034618586940559766644709748038593412126347856200434193781014722628907755746246896991009683265614771253576124334582054658248630288777372709898273357783759010511414832765150040508342046636797368122958225978511298632633524640712164262432888353162459949043120306282423619860047906780170811230646853397844078688039780568538856684240720386069638936714260279447472065542765685002897527331317498482631837023371174013623618690280344835218594615466006974659572868783695770131823066188557400715536739838782943620560910564528737587344073035757536556351196575993489195442811626646471894752720023152941403507435819547958238221655119987749117316938305404899458757846370593579037509006734014682367732991609975287585355847022864872986982956095178935731009192119772620115459197406890288487259906088183954861627215268437348604816361663941985829898770575948279391508602498907666088310111030229935895114825471234696893195235209539450081791393049246902703730692388920402579292683112897309183618028489566699650164498867432956775197392408995503512472881559514702899290863822450421083900387214153716596710043487585675434424040555437977153804764980379468443107885738286088469316956906732156970237123962645204519567720755196296434267794188372364738963234140283602387102718477396734267987992117885472904275026140805048601355958505396624869373263158344827702256317048287708294771712975615452884173643904202718330678529512476194114209913404327623132367007152748303860628694028974314265922512357146042324133730802845185572393105171519489648286661759246616807003301703322935170961609259109983965482379052183581305656414185858461302829225274959731912139622993421024987372562306208904070987261266406904452059666465029104489942938856436646457342335816771523886641440677110680404392255549617049689630774379007709196811416873323376386124861547842505334493468242477313293229576186408971070202504416892480563884374589549208540637913564150022811923342954865965594247707636964416095810620393576852680575324935219324562989073621144546302715925167354663160848488584401960817335451228202590363378237914447278875737510772104792711153760245775828930495288554436770648034716876174627702359778275475498364800150690619253509962810389943137493235069476310855704825246818111460390900027759625097050378594879037807133409695803997365550932952695783086625258306283144229142815527632898811103073030697637441006289133993400915684500447623738566216746697684982319483065270157403193250943906800248377455253248669137661547608809987201104055366568735598692887059766473895076050947567831474334108372691238601866164781918351297750864418179648013758414060269540700368198225628128349978805413978085826590254972113241652345990925521367522147805516469457522565949068398777333267673324703595328861734443904821247799107162487611302611094387009559546504661928761109331988087202330850067515201799195738535058041912849308340246236344176547311251602688523885190533996628868820764406672043733985149409136977002094697704955258351053033674409371782881504948949644297604713932743281178476743348929269505118338164811191614604191828090237459468417724591682829946241221515658783996960798820688041805877049356660632380080348182549972628420059533008385457671073112276800785420203467843949148170431931708914733886153729269909876778724138457963992701643367386716166289023319667304436868314078848541671245823096908325153384942870314448240613586091850152893886728418814555644723044526785952477106281782778869730884349804303725902302568783804401231330424975008988131895799916661419670655710432495084244768877357393051511676868444434564663932883529026632969302369132823988502488624634320921338491620755283841345940554233660790216630108143675772576063588781493767374870187813488467712361368304712712463884728451585541497559642098585445595106663919557400955283510996375453281514656102746391290870219617415464942559561868376934436998822673993020028276895472467580583993311095800414129696301463234882929425893004087678482320706772786050954935570654802511293570173665771022663960002976375979681488831367235678142928534539245571480125444138808217826912091126125199895341660121279807761138007054214115857273687936790057684569176205693734691606290400545193877668543839934943350279531242893962800222718152860282118218032681117515302605032898596805513561030750039085501029064670755930190846626108425007068355631592776244869119012703753857632427502788812170662832545210746454985789969511734718562221860521704549849576847447398737660536422149429157946998832818263307009194821018583737641137105419713742636214223186330272281038122479707388028921840644341612978231127573934697375650591383814256090056217973158150948853572844142454546344441185416632930505421061589713991402910018328307937145400059252140129494757992847930411030947169918824844064810751450113806546046022274504242529486909114047136450013568663813728293589625160607225861082601047566053846558394527729644499366620366870316160634979476212741204584219512129888335455847609874034760697143447479326391991285470674489412740357348576828355078416689340743043112717229196085714990199147049322069332224279143818317041030038641882826794349549506030447868021796139363390523186974429986443470396311043169293132552212970191530885501793552381650924602057093667041196526862762020906523564452058244347854709511561200631145502918649353843828860393905349700356657987494249204117184321378917246255299960342301899708898732870528569829048964608905960483119695333885787773560123922347740252526134456214991329807826451452154114814083318729746838575025877425646928062361785277836883245615050050649776616266936011980914339419289997866015856086251447623418474536644704472160396763640639910356067898766187226173679187362836015623025869096793265673426883566405093685742111580395927841892511392220624882753884483889007522615673245240444009592439725715840000698338938325849269197337903265495427607078414976660197957296153522727831238572187895647807783710148678858823880058648654122483830119035062504348258500355672082573295407029913027963953403854525482380756785965223970842536555023254334910088820714819173144094908412336150962742152562219283549038403559402724740478975402524698819624540576130388346808942036543454474285962604544061271786338076909669331876400399625737542797144026948426567647402778113335507096106882904391524629061530694081442548147349383518404635030653137160005400001572612857294755384804833260859323507229523462317315762319085913714228358184484673275986758919751343206757639806356675317633208908541524230690396094201406615650994866757104913926397746255166458285793664171148007804825678441803179454831794676876933852924402507198380980050697965909899435768793725197656972691490145468071074393598092128281098386603102385582842756449036275542582881102823891720465877177126724462717155320087521059529485044984898869732865410666807849500401909896380580868704805092310573689906427406151107734480870291773285178295329972740519807170705922004606005322333282868888163452624377062767653473167556214943951811536163379040848283459606546427031638997606495180436783437048046289233047658581661093069015259856875835836157719345420684570920654627508519638815400887874952774794531355594243695238738673767799407824910236299048521070378345712364346562158921613087720017369026043216760939342631035758923708109745072925171659472034928661595694274561313678753616814308640943579026504411840390482448957473882011263407380592233114663286683461068807006514016953635380063037513033944277019254626679172385269568781775571761159986746728044015915412936676394276218296215128345377708239100347640592890857736516611233410899874972999671427352977257220650689072894366029818933469221584133834607367117084661691087949645796250304508777380791250706222897226329537603732766299585708054566199073913561873378469264848242412955378176920474095976744338338370410432989452592517497055951082242693001395622416962116668908378757117822942484609781593145683491336386385536640789674521513903679056493443461320650720590509938639523492218466806091199034129436778133482300198330250477362988341620522502818311475623187583915170730361629815847563234113179153548879553339793365360300848927820735670018711126539066685765969763849372847173126347333127981340751533483197278971306031633475760131364984639916733862507389989711740134565226581508547272975087303831029496020634351522927526358626104714558433670233994647922962632081673267230676424242519146804973581890292133804941927384686848238091183457009017869144997676222966969800444109113959711479426857487761062796147350592594397151721458135140958850241262064272402970983554679260720298825781682744640456013174969714006620200659758686969520634131435517375280456076754856405819521239956510055746147923311479289431270598824096796510529747047974679854122953535247354533195224231992751309962498859001580240949703456689090202521080099193369049236340660311676963910662295522427004472930383181804846488778145820283952732799811416129908914727937509849726941177078835378055556650131000439871086747846062435788710158358045697772421468708747951609788713267832783087089513349507656346087617448716569504738208973422538232986053355745935842115171888949949846794277004146834832364411790318256270979214869303895986535294196353779822362606232720649323307211779325087938404925977849766295549282628099899465083202032911408681276080910090406601317589330486607393713689322825613079773078619886165893745655897541648583482045290272842166087141486657194868062139748765923421966084997253469946670031085137040121349390218872733594951851251786297303444808782700534618659286075189916908949280730703389246360683681288047883692034920840272154826883044048763294880112780201999185827955448954016512196848318961177431032340682914974392152888863846182982389388406786180970268493508208955176344091786886479786415541751796735635672755452112185151513555642488691795916260555128858437458955187894200875054102176973443187938727157218010117373764461447701848986470416048400912336297353897690822783127083473885555158716420149816935475440073187207863653777016010751847003739068762901055837667825317489708718641657228618036156549283695785511068686727132167586552774450034933968460424034385864734754911238808340568181156569727551541259887966347668759074524505297303189441014821827096646738436204959856154171100247806191325730053814070228530071220090976797934712949995615248586443020440532552074552252267179641563311965327624140852851013445104441671457982176672881007021540472302291993772762833296135777757527225867828209007029217635396832831159316255185873277228491033412578020640842763612892156185774781587771917911622571775986666299126856779700113935292230398744024920801220209915898483693071998849506237961723385094302646277652933440175262193842276667183261994927692692572196679011101153339841173472811165057754561569740762101184908684450651109357685368359947777787979152567203868817361966694359566827537967591690297822097405241596062927931812909498839771943347800634332957526316582974245456515098768174945838916854543259318819119336905976740657166717980715285180088228944826185559896071562502518607122074320472868521838329632480195102133172072431853191023219643148639183336232896456256271388036466635640053564007336159557383779127631070576131807288001433016664957540346118265052369242242288816921329976451716423829190323633326261986395629703920936137284499621584028994769947672733481435959781924414762670441625013880123758617698862827462516540727194327087700235081610861243074551117034461930258689596167865899208605768753145889175808389249286064494411143241308236300969901941182584256079470479612911250808945850379231485035089949672915528953995870251284159074783722326387379339398968035402058536531081250586596451795953251566362051704870818414488530292371958078474790846042291843391710655432334981912392915466969167795029984248167218308056071831737317471110071362938354562104178947238371197456778278184635762732444729094998426430431797155617807744359190681754291369019848483419184408300790851449923778574929960029607405430736992221583274823940965038400276974677044484999570301546588706972558858547228948170896210120746108259248425666192826270623770796199967302778432024096340965005894198264682645498356708105080425067758185594353761185246534112602598155965573896733149680272888165812399718202214425274086504005578813741100071259484789617853439823802838274496623248233864306641661183501825729315204759921909276353978270544226547386080309110722533702347690553656533598724106298350295935230453992759683316263489261295108359344199176882328177756849606025757809656021650191262170839209576427728494782815592320960464398696199125169927273757441647004705941847506332843939568558437664841122457762192044856142418949256409353653542241409561523174700372807773570136741692153835299294124725409282714420786153879172103950496876573294872234871116914266041687548982271415573375751266863578386402182140128737125960225017935552179273875880217364442140211932400088554915914235829834515258176846551726891568841489107124252209740652276191697549199810298431552123642533680627767112281619171520249809708856034356000121714690973757111868603529879475748393725975161018791821653259170948653196055133960854342503589126373361727907463841779866157216408381658323282318902656613452513127010954783727927674096792092491125521504704959768338357521526534990426714749053827304791502183698123822278620696944375625378511532475178580139293568836082796644653675092990933775323944834914574755019053779144746995007310359755522283652308921644052629144097454518225279081226183783906309661529026344663719251470295814480034135107749314328927614766953857150992505273530443661588445638668032221075712357531021715999665507413469601865395942864744132589630071683883963284547524079116071614520909597198605515584490418019747791303124720538176119652109262729260929225621295043759396315981694071192655754666935308720469150135457638960469694193307407490701196963192000055422048062005395329853540285201821871544551995718192167363165374794713475709987781142488552782804513033570374999520698087655594698664849655985647276723454814722967161015048791194323104116501227494448472173982832928047662672821505180232177926516029939072898399091407405781047705720757596435631298382945636682647016784135254688301303383150124187884972679189894269140294630342987304117453469857390221287933271763064039258989068368759657223977262283068826450268395004675340466904149309517435291997981482077441002774870644363125225435066046668230816645193974751656135857243055695007261449371079618495301410655026723840339075005154443014187199740813700819178529096979316719491764859683531778368440106780223275549954658139294335284980988941011422458886811213167868406660213232987233191998014083526667540569741371200757666892825928780682246951893618182417326715834206581324968070490431713949088456452044789554308433601531358270230827886178280574727801764287254265497082875467768928192471006535015958503021827540158198318314314735270253485100546109505656573834439068829749695724689916010671777460725703017227865888124750831844101651132739870324452978209069151987254264792279187688184630340151728002375909948881665958332610600138794617913940905243249277936606446967575311242613395439869664736968447668496073293644319450463696376078955811989394694564876831087490485014313589344674236084763080886457765795850234618123666060982377572610665017880314637371911891336342594503649478519141038502690979805062209285699308706070101294512843818348972236494054621095904735880487977769974634322042842453408048121097818392197609601893835971067406051217457191792831593876808295431063252860653712095881861768696643106930697457565573998754003562551876350831796257835952025040728994221033893925913133476432293817163845852542493769061899292998542672556852147939569326795630266666197758750572827508241215689774196121494682448537138987563160121489129310472408550773809987065724887375619291167728778185990917067279332294165151001976119970523528180119111348974037632372854660357106809912315150761672575907240546347084066584093801217259041663947492730976794405119593672419111473433459226587896110129445032181610358125133120752075187344386267692390428259634783946758687366788028257105946145112775779524842463616235287792806817851940686461567680735125901450602269341940276218768399967115319974868074503248391882931550249410862219174834403891850081883614320655512790209402508026293463610947339187840678596855157270952486365889319725641089650695606651914193628887511744216387615735411996116634651272568507938234619304209569265722488300011692463479398062355391837671262540720027608260470949118615545178680285982784620890660414916334950064285963825075399518586914806851123382527084059281027800444290618658800356825292767135359553702188721062418001592491076611381165379380033025558814454943798305097817940560039480377423925881768076960991579604802983498842486195395792332821256268226203065630454415237773602417067946216628123364475734096255462658322820206210765346172364177563411581794478244687031099121198506037958956763261167081670089250635233972365771392482476127279294736724854205168446607965075501650483425407032664974061756925088845003417674898800149480075404883705168826744019152639162772787919429219920279108574040339566804613109602132928987102097183112535176280776676200248641526183491950915551090430260016549385356456384182712977724448964650077899218587714163080212572130948779737697969964898053929643939757960608422426605568946692085865057379215430645997773403546211281725672853294359618006535198362971342610078952910561575253117481483104226352604264409474766740564651017863092863595239452788900912308514747865217015815690287261756072292176474485054625678021896052918836264932437202070189450006615057126649516967014050810459213013940549773446340456665647412414678186434619252747827483095305008929787315590550388056608418832960462844765783432244888369380271854810514708382554124038863620780974780401125742997873611145942123402309306054916853292408102855405319414409614148133396027306505707336096234023819734939231883702892686710498759159236237388346867325549112578174129543382507310830990119006635150838949655289704965506164738514638290010347172568009626620066025802256982700963082561960814897442971464378220047356747674034459296928385324260226962116715621547343444670601522803840122524159241281299728753175725255044817693953045048443705757029227741235118100655402235760553397306078633103913741827381939729541902154704512140947785233357177303220797068374726808236518990330502773413248084075436331396704671408068284344238055480340026101234604593790352310197780703492976369402860900430321829153290326529207720780301820281567894223237555394143682491492508326380315498920679463598620870641201682878780568388134125584738824462679082938146693299616362162849097774599429112141696291898162468334040469774714186406010785335550379625458784183351194293370698133644648652955836441900457691640996361930444897900185173014311682415319349970163447998996315783890279846764498682210261390823479202068486499927575801895136896059912990240309018764239525498655268814743269610336628658713439363185538416076015590977113720710571571321156740776196960553045321819967798082730002960239238121250552520728167667440279684621771249417235059713254357637432841189932729196616483014060645708117232314149247248847979280214791859151979490265896804937977512519835179585221186615595180991143214666221136187001551340879413294508964159096363974443968503348188558307364059863023297343659000208468081337308012936386378358942098490021536401274414980814584232799835909117668722014771835434910860563526219788913057702173196427803262071733975001044691742557892946007006574791831518766252190229358336912628683737895868418363810154643278727999215469162467193787440328175449943845016949898251254942736208961460810927108596338158736704077462077122859778786648793259072518519968057187450944102615560756285862506673832637085870315966112188281343340818877314109831105410535736770053787214721722884626010308991490145193080577094911054509698179409012263286315187970060408178325830813205361793081322694401653921709939214184751117445836016030192946552280950371839962653440811086842539084438845797032869849209192129261797389877590118188024642118398755706795425622558223817896758169417073597009090770228538268458621069938188920739173802056652270905592910857820297604467389458475263142548283016005158088168549422293763173628776509829396863872285538125182476937592043487220242448327382161889780844709873430822015699658436531192916047702546712290317001313082011003337960284014386616722995701934447669600970469366320095795222999410377779110222449039596250262201338841242016680244425285283058054471401042489850195584512978115353244148224571903852348649005278357369426614758916613832682970034728989783036654374695330892017303922785449229843760646926974365150622459368066207571823469489637200635986212403505968147903074996706111290496633032467304719556129581874413418752324188413392527871018899901915889492990597018420624459012130288113575740057917679503948036188656569197839461140511100367809012155730042687392488777087825813171335263572678611558362797731231020186624330268224394720839863160703848708053595866416735819727582948789310959320966874259684388904884593105235959220216508473662349664939309193279420910050254631521635926337575682383586098119546707006136920341868306541455816197532686261002436236024714470567473153066052910733714918797631569048805432533516175437395981729766016452131340306376218495051800299989298341119425268723433279057451550398730537595539327646703808877428332160102193616669300281914715934068362446102044461013901182844269428530641319775395326143098955873964240481045429605321305939694522677772071620135217749831679837294318653744320321227630284964370320580721571111785515919457275650541016860240791518990997290233292424208290301044984936360494997917211901993643510164529807468897962885103025855181931791158471585315090639307963884069103769592325777903752125462831373962944813558452751464372852311710863051403851082385758504307735409804989428810127720447030746248218972647385938608840035987665359954561257699367715771698873500116049881276285355849659094879256797589045887558339821497652406651871562592702191404190058938566048954494773723521732606345603095567601825766654943118907053141217520268081744964914889068534293089538624105295358968200008967811895750059926512806654543204743048466038217580585381325343157254043829539919807779940377244593235847818057940637240028565990719543076124982732954103011631053552563140609551401741985548988465646542992913145668817085989417604585136475398829056853945203902525870463861688156123246853965403038361490292542487701950012845776823282995959953150486491879936215787794114799853730118414318309070555202150081886223953589046048385587814712522635490096983573063238451279234458973048036326483874618463715769420724810951476913728397461570280313957917327493878527548735436430664585828047700726434190948023839706525735460232677698939634377460269458000395473362046253220500171854483376232677611737221605401803177231600172809586579680536703096860570632815198233296183938566289116909403522655398560790740607078025797820730401238871151656605770987153834302571455950785534302101419375560968603625321205777857819786362487073120226789812537805637157363220446800439440131860183317196410657963311954196152519202863057989898665878999673310027942312322152571948862753193009020972543862324361417530225580563952207883176383924848357729797964291180131154898528880293856492409313820195745196258499742505678886850740511663009345563503397343252411520187409674268691513239083703627383291211028488061789391851521560762229639423069015484308283395662113594769761662289130423205288730897159195409708991402598235898254173512993370530041726381788768912501470166415950235395585809835020574557271504848506427407563681724088063943842530318941428292391811668610202524010015329828147226485103435271747426506375501405385684100678336283153450424656654612335058026272379079030236427287805214615068577252918171298741782835884203022001052230187881475903345275937048363038770955906301544424765678310443521534288623437752460313710169168637479697253195640392805168470434139669333587801669089915501581781103322073798111695301855760306124404087365670305437716890449065376575584212109365801392547532864414646904724346905820607891418489797634567491180949119807902865120528250933656727334344672316016253375653043000794615232370339083086271208185879672533393659125383193419388581225297040346400444031286124927664826713561695405384962908378502038684276538977796837312991202272721588545816578015369460537673671612292604352119123538196233590028282699263606648761992986331792120217569217434490053146742228349511340420226463549540790695560801174964866730460328947726258208645878046356987431747812037959204559907414586097574685517128445400460466958009897411572023535898723961478055721495694410498225978394476806544368808535992048430441117919429218458084617972530837433712638383560039579936496025212721320106226621961980828856090137005319115745777567974400986082951426294201892301195651031273945300655539673236188960323028193426547950041859750332545490532117140961258254365642540143696710043828647362555168013920577612017294996672948262426338057862761384498702435780499108371515821711827184943825862920167610006601160732211220018140892662636398113647478372836979428829520280406192255929759627084938999527960494663419668282893575257882654347710411987403109137000851123773776145047427877623504023963118582208282942922749530804240687295755676828622131354674066873754073211417538265788398903130355719047162763795282215348686811037834538327661927365230671865897375535945419690479307517534252225942537878330760603168068905715206287873976795166518622057083873549141022314873464863590529900180021601962165974953933576469614272420733708326629127068141911584599195006556874196925915486510430241004871565046296338908724742349795844395787901640133178244552724535225584760992756524454112410311552076044629580475822944435371148067683344981290044718145026790543073550479956035671128181717564150579037436426677664723339858012093150244392278021442522830143701101112099988622918181451035088249687416947267402274142055342253014827525701089618189833591124995446418190820174808489333761086527294817251486017202997524217365572817856778076687811610671062863721083594362557736403253320713233712643903578511060205425965432597159954006851604061960870588685527105431100286240243198133740644550864692159439480905554743027298482025532351719744004343550018447444941497658131099477243550819480810127826642232840681236159547073963036661649071164052282859092835017411931406157700948141746651754043314016605928999492185602625172442245779246033787541820424424813176867641462622741468422152679093632238918491540629689602468237954758592802310583095788128777878873849632750432334064592630270842629397782760529256130005474297278452437367944388380821272267405725889696083286334556717013201481235006723361291543393034323781062880265604844507435027820014205605550476174479003228722624796996337381356694351025515825104137732150848168833449808308678791310248751367955060821400148478558361613421451250465040316700393420307521061485674712646650541000412608799071460520878524271558987543941420267716743152344204343891227762997286405636587684752159531076124661944352691303669919742378523311089419811969335239260381419834076955512519363253138648006778508686057124801950630643679309114527487953510558611501556673572843780638791352357408331448669402259823699977706793255303168788546734100588374096675887204186517512501050292327609244806312052899093991545267437867227518165595020745561844602396787455143174045805215975375806966024535145649763281444941946022195693619579343852007115490398617154097534045915905424520919788290373213214246767134478080536676390476139997001390520398420832880428173623257563487265683084915819146133699305200935605186635679845201996598340465834386539094294956880567217023686550849219519341607832214696275440050626117716808057857006932982910396867014105857195567635396661278070632502767632263117028682342156304649595494266750938255116452080070662445070529805875183063995738998090479604991148969389382339000094259500799564628895779251449129771924968555691884603868568260811897021495239387599638797886053476269293356666963702984252098441531857148462662956888703275022988270197637041190052540849233221735129485194657898716295771090620219643234187510573974655134376823015484632754392946549451288013117106508585815507100660790929044167220952522397690866833719789760002541405999242437793427462587122810764420679279598394706027523725830576807765431363022263344238687114626707129298345745781732525432580829846643520443616606293456570804554727500091178599033179575920226510053388471997864534256566429309282839977015160564047560965451828629411902557441512899014958154932873003526788545133097764590129493107364239013343258339968537068991430418881219233611029648640926250487974969011559345503479169052868693261272894423407931793333252381167700406858715633348276063488546723548828765508122297574684929955854575410220563163213282230838497834917157643942174641489992084896784924671834744883673974923942843154571059698669701175543184657738070105713751368300060271245952886218238101931545422369839646271539628391550657512100621161805982955041735017585086454435157272445854951711924158503060161274124982363733722942062639828618264848967071202480621032592856219325244835043483191029626814862283901066488214067963248151469923729083926749690274066513085100679767526662237739788668637114966072590530108165488105260017950423895528474663931171512747700553719544715421655605520920096182002265772385537984141221513465694376880005016980437648461919623655725195587081491989751327970151474996682727032223426435454190500426978022981289461036348984875128647639866509460502282790505345894371171049324164006429898132000765394952773748789428582290940359154676036182423237695651796832304798287574135452661619960028694029253898518111681744091687277846390359503475119224589195328346671685437923542419998780879416353762401396650615065178112657379748110103339380532016734228150258524621088604229284030687478021389870575184842167663115177017396880342381273184940766625493257769583593521214483539172141152633404000130425603429980453550953482337495161830678510299292940062656013783601207671988791562729819685327286681674152164788605463155607378301564800063033909524794156932701328420600448024466895053964286260468148871014571552701812287098549187465886691451887227918028350730628945931120800591142157341460654344988401216070862701531024293851021576411814867285889779006729994421644962497901705462420644195773397036854163537570199053674579656838653645706771733873022564398822983514582245725833407317987741918620059114837480295623282381989350028073831173632566055724170508506515112025029194950103061192152128843675928961580977288580676508310859067340208947644456610982664244364258662983545446531593957097854438380859196149491454890729635186481446009464785630435363729863741134273417551677560393482312415681335713227269664866206558594402715562404983523840687697079302452624060401016280772063812015391989344495584118592795197230475731872394188867860352326740545130515118194938485938996497540512224391293992843957281464461351137646484405191790949706308667740721968480555285066497791032452962120693995139152783187543181421976219920577070186624837933960640588076180622015465629443190015399387676621495078840464700090768445167040787335698565385548975523659625502925058055663066187865157731121296516273376083647264442399356738253227823917719004628683374723252889898624214396941864657457974072474893611454838497879434589868330024201746081206047682114298037284772744122984478072043219923739881280601041465655686957395819922586586579935717424815234485044242952499914604862049805965589774478043153496064826096009370707261853710968207068044162985420349176107753745806870837207505940188636923265777030766808187472337878353243517170722725477977189468756194181407270561289660365848791352929308553865894149802328793337333400209356965955645800271580091028045419813177967581163241432496901101218908752027476742956098757494713278828237693121928711633325127321944328562131531119958830734590707511196167618889839662500037366007235052128586963317074546184731048601943736125949025260323703773146586109835117171709061400241684460315513128582275251183459592912477764034505086127062610350308551289092191670411129443205271797890744682607566927502166496985738515632740861975807508481410588190782164907842135898327732953702757398893636953341735520233331744328234618976235562687107394522929537466728821204733996030678372691206740682417790291302080135857314830721819945376308949750090391453622440192793415869837348375938760629076119633165441845866697982756849387842745518795251649331558955638141845665057546686201370138616196984486217429585125718101698214647341735407638848337246723158217961066509947879197050678143201793233476747746423456490856382620000698451955663082089738572486587368528010718179541743957468639307872703381641754046761626985910242242015007923607986968992849368058828107104893858301974646250948978024170950478129010068509694465927235525947476561557701828308993002566646953132101430064895860976595524104846785185769835170192364312709851776937887135581620245566784396515780249922509597203629859167254696027497328840689837315827603475718570364527741606236603795102345395385721017605467952040192690596111061881805830637181026974760367614149688738686098508498417158133715236018197845055149595985361778781010191254794416642652729546706524094283834089935665559294712838450306524564985245601112161804423608895929652473447414140709132237044151671771869003790626012176940668459801910472065573688276931797841770733414300512475740695063010698680245589113051748996619875749877316568001577113794379087241655352836405063424608810708819266923994816376955608507069509527036534254799893463401669943328629039442484400646149191273973637005083352804199854998042834005650252746497271805481597611006349345143628600044975273762509706857055176277030784304655731189145327439444397905269157364421927921932032834244681732870415363609146267777279386200575988269243619585862916411013837499086431604503028196452274125916528082699930559356050688126805502403175077202712263834085623882735593126498827720449217162029409492416283915354607954141772316466505904595136577744089069498062978064732803268122483117074700695092494373293737464940414212317983972698196799475863577868042130073475856672294036483341639252175944650586131693178837557123847364894307507241993891234403691620164316045630005887068523716072728035880325853172886043892627885184424748998042337164282111897285087168472313596940359571897944806618066653505087107576213955221830995249985372415568046330604022104751020899069875019965662024335726698716431838163814863946942433446844914331739037980609939487105466644772771862167079403500461577794772474033283694768780273261258444293775672267799826981837139717150723035367495547571407595442224466057172252914160397511240334619610065990235822890557434602018640172293949833791295042955167720613626984466688889573342009163174131576752687784870149072088045638846390517863513887045052092259821845267217077674203772674350429923986632781866486547647451560417955150223792543767810544092605889643151467152780609516510135900730398151501813382210190319178967348996491649148334301864798713442053896123365510287760506024793636361572559325128970828094164528383257716939268252148177397217764684642840042960735435588166159861568280626663654477138659743622123851917641630108321524684999704505283774202009116017035332526291919879677288172759262541666137193966541644568196276428038319831119311915239743912073622528979391866371905293176945917745764227614851186043695878847847882486947731619780545345467517736108566932792082692447794417266959049121479784693122831166910737349013155385333356183639079830034813459027833847608377084483967749330311779222073180750660405700406961536153085575898752646928050402934887912749835403007467403651787726682715976242644802617005519934970367392735127182947125140082687867682885341582517699278578120978794072028481690546274398516734661504828710272173766246613944325644841003778053956710188564502516831694791531830875438277987714234402429064997924477676684902526599911586115945352976891316048948993527984703191154041599601568214262274913527829743047144217642641075821378493836928926167989777368641325459658515252954465001692063047349534231843882126496842508681666370582907014423699800209340200935794655054176455382751159056824170822674592472695915102777114640423699391611401937193471528904234646758025560168697591630337146893489206225951258396185003995529361917303596989995590047007270276464076734513942469830456371488971201012908556918672914108554405451190151824606377002572714361883258733438500257540703421662053638555204220392008240425042990367252146281970367685961554329662389343679870782591570173404282015492192092746144553253785437246502301196951202725647974356233138874903786404111786376782368689575721839602468839987008844362788958892766345425389254132645994914929423501906730983704634920528199965155300076564125775401991776711721781671716592968896523885012169006814523323432616476089766050302600532246242267566558374164328784392884369061540381353203894487991276522603610557181013096451651734408451506193366442585153716423279443153624673101928922376949746217598737939151889898790734719805699421992357525894128271950604696970540035373959815929988788557649691270790556039032811971827274612834208110431625635253918023004237295039815841275081307686547384536993494698667514683585316956090340507438120044843532809759303281033437314205972374091008624716870299669236686206466703267107109486734115439030687286091483863784328154918786660709146613464264093979785430384286021396531933409249905614582691770410737969909925432210279888721136975908354904072143123025715469072220047398244791921870203784551786811222389191269613993045856355890602573226490839634479138401563827436074125433827298564187464742774464278138080450874258561135835167037814237887925264709836432195579930993677994862280850232877560491488016909064553955738206283986404769140584479835428456597455112228454005569943819449005799631425094432638635591688535613207325694998416013803974476436919686882700009638849476798474028286850447243719385398118105424651318394613088621444527792630380117465511326812490388910315477709854270334064161456097963532202281227865390446865571768125548527058314692918360999233076322498578450576986653536237738020838378097787855774382177915863246507018618113586893074108879618914281569265466489763956480891549523930403976849899840165643220122863691767274762085424184058306125475269621853641240418022847457399705092881541495634280875785660451107796767590082150879439758989078763238198609247347182095459845052698709256539814645130608188771926050205742924001674987133604501359118270597649450036076915623985653804566125463783023597324406363869875814344831669949890799876908617902945287943321881604012556451718972211704209994977248767131873650176966446831343048132228505374607205119594127767723092681612870354460902387375545309866714497068885592202866571352891363869503845241133654014334080915435743459929885935873875121937081430836380844899853548944800631564644029656252644625078543790024333685853574434398161934201433414827628584607841316275093307453497834029498154409660303301651472718786359227651382864954492636486660728481591872324271032735886836661254642216684422511064030561345604343928246015260393459859994265458658410101571478590090052091150071743444865305311074735065721711529021614051747277672480885909539282560026038106241408782762635819044842888729018737319096529938994054617231373307461143170676021299010827921641651319872592276540400400082621511103736488208902271196053866898114463672011424080273046301137273596719091105271758994674198566008443820812900731492601623073233005198596178074445119613520687146000254553496635651391370344989256516479543262579622528796022755132594052367361979871539448044700757458386476762287777312078738187791581777389918239179610473527513499222493686606837209549226225358982196766622093341024436072546119024723871058955571942022019672255602524234237145643613597707446571882237878831509986660790404347072995847890195615735621612352028470883307593457779690727508892728934489733027720451226755932240142391830621717591553399258376716600023104736695209864436549267985827257019721708766156152433644940786186487366680349557364880990898882600730410188768304667317547275369257549856616029731183940716447696291591140232125475275204581617294254343671386928818094137782607987754676672408904007097977546609603994364628912144250081496378559748988821729781272172918607734052446512427803736102465078756379631389662826917548164222344874681543079978597985318272981438987732785486196701398199858141197255278692178806896540561480264253226411671469579517260578273006912837673885552458593919718894486351497741066389181041218100842876348385756688783414777138159868822034962978771459557836790488820981274579618801475399811565081731479943379140778886877234973834321147592278647752701575426026476566072865584597003460909992920337933183928238469288357378342599869031006258406574890294018337001935599834168035909768430198732360118133830627226242548586807645074858206184730287130629221150335759943530816786474809842417091473478619971468206859870864383906800757997901296405629444783490384052111101032029759728343275003023659095147671002976632971163463610604574277909790313155676590142693616342855368545229464279103609616689638167426345253363843212701360038866768829491854476803256479522388246008895682251577524179967223173552831890327517848645536074099885524223010474185095782517132124176075969227473202584610409612686874559113569802397551083873990731127759593908126238630827700215966934926147205102592180758898968302074831688606600568777305396624883676685228847775179665303861893970451266677842692827255527212920954702566126781930342726604582427813684071676025965807796461169588888762335835219074249458004187589751315530283009022854180069994434746473380961417242608727164761275529274535829396390594101240945867830205014769358914874841374295626411873003907255850744796241252871582399789937046955932805201125665195936680231752489337227919581782765058452795961405101321126228161023904445218037466371736184044801475767445847181503109840709668764105925839837160324768058424509183581434282181678654201400199880311444075327170130697125416052477481068278492317013762644144478403496898479349009964389325926183503717978935852443485448114558635530735043836044972751971915520787459599160532736449312690245983137456272341757076994432241729044973678986119896759344493743427328241601112612248512106010654645286342618364472002339016162292669529636908616699859043404422290946016490301831707564679605510003611326333865727924246107272328937726148218491008892522221201700917994908158159102899071087937848867628011073077111479057209386001387385141596773578232210882864131057873949116848244534131789480789917261349849907978348284661257881768546649290329579847466613182605300413188430170603377833257771020003657452917502271273111468007001352049359625861170854818980014624108473021798661118752450687856091036775901016792066120018082610971139777177954096971821069054018510301354163440689481423802081753514505872961702930420760482834815582211750188181159695189842142320897066077196821352505526744151583899904181467723585452634354373212903218918919603190183043073505204351795601515411261193784172418785323370069128079756774264555359476585780266397876845208696813370344957255079761296009079321488744358515879479563192165887293916032748497420826980469301133311029125878310268041683099081339171674740032286719446896490720501840979565436673859933269385632450828935816802256417140025684513258392704445176186865013134004226823183093444939616694838227299647639939960423708998416814328450741910980018570530617188523528319168605567198526392235760142452695427076697549645262857658850193195072919694713373130233118895640483752898783771202628380524889363738875816308711273460092078309925152617208776611993163082654281757019150735526127642493125122330833635649742589026474181056608485653687034362146506659871229038551594237681774807648703124133561473277621088889628152901678179827962692083238900155077198418339506972681139674399243431500983268748947718208312955396736643338132779626354581806929309805883016978919305198090168338569908872204159842746825573449815724328197008838431348746389088915175045427316482091613937895531469983068256237713980486907065618387458630275290575544196081443989005686725395986049685347128454678615245082751360109981338794091448350349441726787806652774853564686186088277221288424866735102270487775436262837304661666966890609308752984947744128110338162415778008958978013812584211159153320689326986753690412985601033896327283977284109976170465138122627585791756077860221390601104211919901892341557072324149481131375328312811265164928833999269180135967115514174824654267702752481007793368040030867423271663950790092558427707668867634937310673498019959786365665699091202850095292522090917730581336862917814482570401700782552333756758077823985457298750008586209219476813660694384164607975210000403648848549309047654526128730331886538937210723658161000815006992436856411929982092194113074112009748442371699709223896461042161867253446738076878020525973681418739150051145989024388108614468022761515872019442932781057720826081518302916534934266813816972190297818754693167227624471364107167580480327292865593498457210967504851187209676788986865632703433594890371929823535434751492495403530174150403515175842690815670264437547594302774466036061374344499712584047862359329569766981321675162173546236278752859220930431701397716305525088471596882551087181364044198512538762117223815150777846805164421258307486106932438864980482080124069296438666901760708444440380226410283835718928235855058936926953759578736102020686322196119221556661566594328443367159455639418751295877810537114259657483364180706089171567493685247509944861361714212345632379212701661957792682920032253444530485501072471031424101362189726972291878227084737022932543680465931191840754125903485790003587399589398047677740951504701192152065027468390244659536854028601476645705239160849030640718129166267692900217879878881388362379444297204146059209655238158326750892710945988933964488453134971037129646720193831658353927800484883537811650728198129091193221534514742216557159507947481174657773601700904342828657675872869404123677297515740123571970420537212617599069377128267112652291856701336822739277318748279179036106950751461287631232374624421252679035238035238102046290764315088988483769112808015838771267449474562807334912421173061482050335200996580041233195201656694560389552713894451130446491229555390983473481205602607940923158980754781320754537612691506245288745759540429989472019905696087557601577449747095468044170734217462411611871919385451629599940259374511817663566834981726644119220533109700500390755620894087867667426963814700712258079230886615594378399170724488865990354834324077966984150427861700038733143370176614539482830173079117658459250524087891880602726060160691558412128909216060811964152967809139101858767478214731855416388392851133940885582298889112629452680862285753408833162634933766865232946885915863181712736460425387448233311645939292043309609578965064959934194940608106171621453520930637208034474461984744208952859284264480737884426744956078110940380801344094433603848309095547982593175259588857054532809207184488807650704997550204030282320693354541604446952318632019890229959015725797211402472661861348205477728973449676143875963154848406011745136478005058449030319970865304612106420467460208395085386297967949787282546907974820046331890984069918434236599057432366147779975738884883723965492494003452994372862980395031363147200957887068754806997878918436040671146951117108787106954129227759511439837923605344581255243709647670306898502016980066224167442471691332414036755557873537141577528467208513719900566952824667605719318677873942654696251549791149351367196343184928152349242748996254054669001620747732860134074366671081076871226729477469413295150701132883656426993018279169568336742763098027661343402600191995496334341738898429584389352723644957829336129275393740322700907928442030082185949577643299842190914726214180954639118192788866808127525039870889207637229778783573781781773627591208895697551062133543988524640847262156203239053962092972938529728234823612531546458237017162918917091891044715887800762761714457925618150728797317276098406441521841671268762995331711186130861327861523874208538736310986602953665697810763803565593369371373290230617664280675082005724807931624162407890678312747944675346274939486785262114601156914229250425359675189043259487327352365152809009133252696124065518086368070523019287922114288727726127570151683140403276554546729943791342894789793921193184355457478096196759371861855975084662833898001573559906674038767076823569709525753319936101379073262748381223366625421721662120330930733719367715763875652728061541159008612146280834850342641664590740094310550401503842622564481834649323030917156059116143506902227012934878580972867951732511813839949346244079783601709814283498225897038082043215572989106742447035368664887415632212832449398363024913800144540547633803600677900078551306505713113845031498943391074844283433480625600227686431061019606661093115763125604032389103059300035973186648195845709652700946993198628425990892710632616296553248358207268447634475763429737203860962960405963395328772072666511025870105267543496867317508685505858215736100113181073950566037296666008328171944978364020181396657422897616747519939872484629155893255458634284839772377251775519041471900529545823962993560551161606213129053707039605844889796429596415806970528579582081114335921280025823579289993150752322240259290912506577333997017961839620694707445742848108758384253327338126468575131758271602332735261963923903664940281153928231378455167553210878413661646639001653233586209569787378424034062949798792435126204956213290221818050521009886868849057427085699234079595002527704004733243127567063188905883902074203616554338529372638572879460770084907315546713447175943463163998921205978996994991833200405094411685352997585230265392671667172894284441806137449172559538562577883207281257143436650350267157716798868519088636807342502337594074219963361064093424660764723766367853614660343663419658848287409830444272376955537608643958960670986826378500470427181956223832942262024332653231385054020454902802511838148142006834603659942547013284197055675306083348054754813678485073039993510698842010491329380518449890227078053205425251259007718953062895947301060836001620984473398988279954178499061785393931499980838926747690658628738464812248653116654992568334026139436142718254838939849001808307470838227443432050385724786339261785537674239927650750393593848466385795196362385813519779784987734486484988938981628289120306030561916638420961155221210115457102333035909112811516081105763460677503337529194866715391461379315309935695019604838806374034303105811091746686285259063993937219446978560836831747210946559959277478810289689903527106301187010589990051718664226014809484524526999278042954924021424294850513037985422577054086839578017409411810681035555182339234011190819979744427510750695550937742298300868888273870274754752832321747265990295071015575725004960650216268259616947965757486344574729770357436963588070725723066119444075180641318329689394066636981656625145073202399638864013784533598884625178054291144581680473702632716844462317478076982657163384957410737936768554424734022377143857738501344862781232713767388423781029401096067486651009677758777133601193369699942780143196273677727804218255569331538901189521369234177766061421619008041802417515104706032236345969330086988058774406434941503482890899858438058390417171370306606326038864575385411685765828279606262811252519891344136575271445967426383816219052806447174059987260294650816437314026809181216732853144364029257017080756305710705334460993274292185906459230868577306819254934739626297870406559800151052776404251873594133957026764666769844649424838207965307666201812054151609363628055748701081324852775465584467211211994413788679092565309675213798100943677404403162082375939009650280399780883292637186762618771253889489976380434579029857148559068471932065417081210024913706959712772922156900349378160068620272552850582722721039885773734961702947009758396042277219761984714905652182593171895712054297696339795599326021453629662045225983338024051497498832401004879937770543051213653447950358059892159360551420110909315659375898706906678166325020607748126138479406304330932461493446007434960262528410926810031038849565462848511924450021985210632268265113488519976531461144822617353531321121662807630886431653974868487946406966027377809755958550679553818834440252561490182521296208353722346109716792154861345652735440125722618571496824161911810174928519108970717926818809872200487632391227820134681753043077495120764328944155094053520950784115860089124340911221745778180405851062938803729991014461136817706147168048711291215689308715485415907047163054460880935234975993027857737966601920111719903134890886118617275976358511123314981823446329847668102196987929181247551875622523753785528316668072040916225486517371878735925548078525249351100955050627071967400532056565433485149579741569883224477854869373548419068762002233394640579662870189430630630153541578560569019365433091531970050570855592175148376124661280134017670812811386186262293039928123286527743457698198923084018411138444384144536494730166936583002230091602365269152838028896931886818873644760805916058100947983976004049739429454539025700295470151821254639284485402087345706100031535002759532354624759919401162171450806019536740693890714451208082698926250942010069707858729354157771764758005679520853653513252060718263528849514782001895316251800633581610151399326025677377616681516090942783447246861381594642303257693457384034290706004889757445037210420431357371601992642536595185482624268739849757992639866416282223480905829425268428659275414009590349387226279898413851889761273684108770429721890740165093125120832302785454009253399338248962840641271436434491169773300299565022724356583395850457783490487071547992908405791754493546471657229771030363591960741379475559569149674083070757994118565239990509987001033913079037801767270068352754843983175147946313592448474366073180689839365953562883197810878233860488441157291300023444281283936144105216027609806426648259569739247513223640165987162141271819699317051147436008146302604825524311451667634028674212287221917511216858240759049771335434974917892281504816837917663359578516032595011052207867795534793346742935508777607452220069257489604347116736113823787299842893692304780844341576061767779744600404263449746524850275672052760835961587810527813039743206604404000751851799967175408861151648156322623369415928798453137198968476347741493207247057876054853886606644633708680678041878797954098000880431482139317223041781990506195778964894310255003867122115516909253282745082754208838647172536051896940043836110128606112137365209150239878639262395688300082330677686475924544794395137228052778240542551180564587681522795205857557732825492044532689740945182254229035921168351625481733001892373847498580174495771657699599377290704382976150615489835217781354871885811125263428840953852228050245715585163850493669607636679223209197187312639018008790503446487466076795695487270035558569884425314406627442267342292949876512405607814748366019414674588668603580939636113631347166220068754737836259973916625346997517147363562010337777896997346344698972104691986307202322292719071175525565871066411714059703726406731001410961800673642514675267776924563390605196834905208604502184071568981635794079166385884023810752080639458176681966177111566075020630107687172878126806215482818525865660711935295169479929706434587227810992169966353971015473897497516000550914569422429272308794601951382902177706338142649423512984704928283478839733504449957490717981340856795146560623421600081762479594226381871895324532491233343874916221618928417723563641525860573670340006326424256329273717496998606662066476696559977675659519228940656042877415695574402731734011522728317892019077231667942441889622528629320482106676089015361120090354612235178036225909720234227287287655414289817946691443275794040455890649442023018696869069571828393845874717832655660413828066311852195100629183192735644936560599495649141272989466023209449300139290265427643084228805371811346824844440746400416866906513149509975413332289823470046821332263303321564242661232210990787922514382561182993122518432899369408554068689151368747210606493444336898546875170035924614542868481633805372476944696858630503126415538998778497128122224718861044203173179516868541074899608849874879069354299416162636036051613874752326514839710164339736770633843711064919958610560263932690739989774355100021510799222597041405009941231188790629836282227661863168158012244841162272001399785121751670413044374207470065034282005385053372787851439527462077436042128534756000972778261465061579697101455863860812671270438356929123740431498089782171663406104603908114217242159461472463976253297746837594169292214154080968047532110109576349049593522361209702893550975761823022088848302644071292164781728163844531520767767462439386920597116391960557559487897788334160629524639489637391938485635979544287937548647227312159065830310516445755258076938994331218148427261615725189794053004889094236688986988957263228596869847552728751512438332475311273440355229803710512597949482444425671041317849639294320282659989695362846170341105784794620276833776646024511561331233906298574115771781176291705083810175105473827503780282354758551032249563755808542932947423419841822239031806022999249685315526212304324684079355304067309585819877332568296086896097012649375685998654980508454235033172406094035681689587199820981705976306085941540651671558622381360615919538118240312117523506760838800923512491556503048059353401644150833407957964976971353206121855913406855551983928886992839536207575196307944437805260497763664337556179403482339854856794868545830063505004607617677708072383874860760849772644507882965515347062938350925453870049402136230041396190074424391636639410905812241290072080546002642222802770802415456461503887934140044913579269436360038193507591998293795887865735169758984670391778618792146486467255373293362650348570332186489177906357763425921595863750068115989289185959496511247875580742363941788524251551930415637427737504533641165400320480634775202464997138597285397089141329974089328485684381436934035373020261641259458223001869864411978588940851749743058734751461074737556561921577398487446705520602083719289090421234269062880808444717682634304487164326247269867618434493991580446372725616450468278734860116710013532417323371907013029862883251806437312847928851278135189831575963790718217994452192343493731839918653232776656106572968842047365211890589817242567207810693397438433100109968530132116796026568017700958055060694979277329008768761019578693408453282687946916232036936114218013621412061730006442548901571500868288513643796601473074765500505923219606826255921131168045811649219127519100341716395328889579331940793997048577812704231512954279249207381448063222298994188767311595188173444913910408329497027448897722592209717770611396510954402218342797088418389086751054348055767423587691747751876756652828588799210083087625799084984922228768364620746356707576168593687731781474040208893017326173759347382785973640053661133380294958695469755251717048364096214897300688206657871231521147774588893850815056871288019092840073262992995116674275579221518115382503067155691217819053623066746659102482527242746408068162354279891703069861573046275155020147310035564551944398183153285096996744827987084475738546041155909388581104956649664079018614665616218629604358133824354869710900216135518382837249216666292011351682738990959842649205795528769287957513178992059187042535269948913479153648646025500103290834637712036700252232656159503094620397506829791564497804531185255347063225702471486711814479378959980670312831176614318210794472746376670379981646805758787583583904236608008442081739672499645624628671522275482241565048594601730989064526439231192691310116101752171293302629076076536104697498864557508788337548896447292892608304069204564902849954572270621646560004989662418806540398565601298093916495121598570609566500586914742420851595015771850472614725276379797023659921275235777069061763509989794240733662909860820945878239044689174700469736747853211811677890657983855214243073731881110093676559147901430488555702207671833993098614058730134284014453087828430222135537391537954091058032111127384948649550083966810274319891570163318375919057259631896763507908700542657737674492935044788216721153954952325581874118624734540096369069435707620199789869301957896174376866407811482328292259906273667824401516767986088324393037224469705097039676197788214131721518920380452073624385300627394423329058025977242611716638321725345047261206366038681985403324222150873732353056143968284786407004892437315796303124460064952358773120544846239358108561409453730968072396234510013546289322362832229544238657805497514253111840107592005716997552276082373074663914177456302574600202859396598431238414898914718024007682035448488008304737999911857563889280110774741427838507022301294053867481263598491898495893358893796552083982993182274742721321092054550146005768101977739932882912530767853003250861678102209837584131915854554865350410569840558878619775593350600356890525533118832316636256064914613096040562205940551507141835458887002022590416969834072033661016376507851475637222747511113220896661376177703274623122953112630606759870233747767093234721330138126402860520606823861312052420545216122713645924067913890582815326391945389332853108403264928904305527421767361103296766882835150875634741919101836445707310660552235692487521867083846815268449935657246644782227968379026461215729345250627308881234381739570794332289575994833299496443237010183138788384080223367188886963479963617246851757432487182389553615479417839936588598047202810379951490421105276664951996831553080523369295394168453411723051934510915504858528309238242574895324653099397113871396228183226462913847571046610218674601794214161232974931766077255818082088299145496367465442565644935902608225393107931066158855694175301880658716629296356178840009044183690764975851556368259507502591390615583184735559191943682132146357628677402658855427729356842918099181824221769656530402448867582783827032064058770073596880603603290874455654709673188875341097388983579597927774513729330631025161912158939715528898149462873578265839275401899459016438036655733062845663547340782629944217441224246673049660023183236471454667069013766843508386283530568587408933424740268313735401781272798963982074118449810246999518255538907865941119772697457979136867124384971113007329854136454109333844519377566537553302450206784545901131327954754121053364217168306684415768003957765277824185196794834585500027082937357844521003651898423792120161733276251281702425056201057284304470067800576870212367108339462090561593762197397613707194955733123056289958572599272835915678356159659263301923375273160917683879852089041716735806162900334133918427013763565385226553983238128821287252641661225935842232081542428790935612088654443692790705450640080999844000842406779303096456949818914379304941511373106715790120923500733785636123183464876874960086489406021058684034151029204693868194952658504670386266299879403917750742170964131606908096121466092102528878231596927700559240083743469278574615064958314628117877468667809465289971561290772068869542467226309085871091135264858347734643511345580384571945735614367867054699795564662965016567945437524670385602632331405998190278335488251422472664282051111103372456229236700660695839124856073350377684364168296083626374948556832537340273566624585728470660992290785901343463624777929404621025765875365241366738127400083751762657741979991014462139298044871012298638383166771120992576976508226594339889128008751351267680874106104764043186753418533896973520593463282271205714072746206578232809466565218589506380804129707875640039687019089739460129144677926376162765129450178028834914635276522673351963347859036461030165612348282057873510329737946033545128888899427593330786751755753922017000106499424305259680504931308973630192369941788287417429330030576692738916131391441988395181166672848704754473897700901357978846959041772528186490939981341927418138580773835606416105337780302992479118235311113059923275740320965646931284617192529208257799311709592183643096452017017899508953993287460487364296509847461668264085916647233560433264861386665653068826220090572193104759534200991369020083201546951347942855489801486460029317593324211317650401963144838337959718442823718724057774988073770369468664385767133485590259290657958736441591600497872374522184873146813126633225552703830192469069734589477306898774234333072786592865393111864540998726533341152422593606440158771497402734181347615277294550487885350429359042687379419462747011848626421674031224240767950722379729534943840444726627872112331388303893568273080173212371829091745556697490622820954724290197531844198568424209922441865783396526200583274680202110964637497366360805346645691343344245035152810233359145112813515799347499408476517574175779360246388203843130035992817723287627234084651182888229082431996118707443361761331942263177424299153335738962998279131162820890555596186944043817563786149258619623321204783970345302018658090556187841748498556599276283936229202672532403401962238047833806903318826826714313465266326987565162740950996161297409397980850544764337394322752513303362794341113079398061958290559093498339770124153347527463002444735070437269224535799771714888463335489914097868585188453182275120594063910813117687716298710442433905731618012772549917327117582433770358231044615488063572890859789875848714257555398511283743859281650044484154914826635263229097747406599314731927888910400318415760945272140876222438757326586105627792061841092192130570096335865704948089214339894416790236823521486414319224444160425253876738812624692906371736822574749932474343215833431575259453857114066897516158925212044432110518765158205448803708582320040160358445373222134288825972902888217992731170430201706662366362672366669059305454664475318180221680354990091660647593694539407192508056597988195241871866759784892194148437726408370384581073670065288447295152878945757509965094521180640694970072909828923638739662625118995660185513087447377268253332144939335326725159564460216747728288808820721911589169261967485034572621627717319110788729692237238649541412116077976045340747715694829765714409194674028131636947441839626379347013515096747699384322842891608737093608285506365706932299821615217537892062909584585576701463867264694400420594381643482086892463983486536172353036611106842986003990829738918529363028367419451822996188818119963150644084612001588543060608595432714502787730864322204990486173401375019539333909290733907296490987985367655052066279118970492141979162937617157441895190519868511678476979368258365480821674556632075742599283655731895508416369258164966206781909605723579291634740522536812191832840134764480350767541537050304757528735559242440778302839274772735775499912520457824789669024463595838511296832216318575397953837975982982807016045645289257516836619191139880448567053402396912114720762846704816394160121411201479444754845251882342843866483162798529523110972662781567717255238792300670934410169767522469010036050468987196938883489692361436166537081170061536509386474563678849057370663322511814038538536716926001335336686270277496499160655852355821987448513808986428847269215681920683847950779575536216463380428172672607675023622415507353937355417887321140133584887963734288452029064393887474113567563972134147943218290739706249456050632963688781119951824551305935363753589909884630839555978571125873988263565825964270964406875966733583352505614103961370208622045168578341807750529711628271687039440996448698259646841577686630822309138031867668576781961569333545886707627331602817445545158409814732153842706027557299591283377345980590039384047640359446276395413389053247836923744563285074659749909776536563750382027292398135828139986716530396607011731082278198032131139813407071395668302174479640489324566378477152244959095029787775265714071830476987923759681048379544718223668987374334074264000008473561522607132099766762299755402743737966794692586973248043532207313939908088561651078797679660003046428482004938803980201585331419126364005212449622655331624112804184622875799218396108886242562907802403172120651996039264945677568068224463280995565414616839629536027757452776667619247303681069093720151718949473461499131896877517282634656280261643336360802851573895595479321118543269802105397449331801950723770756112970372785357286864805735678997859920184249522809928192594997843072903551419385193659100744494603849142924352086737871840950256168038696223036340531710311587102432897621217423273813570511888056280532728580486720532651061071180863893822786095365285591074136682859383886446186409512694937355567331831363434811200244336382096935739251275697956736249202670244172341005309077115341041442526740023582453451798204695929138020745712986497510760342042500968087025706645357913669237067318030008582577212269982185021309291291777873907021295032945471848076951127232983075149245529500997914317213176360636191833367276213564630692112174142491271091266661978955337715233177836578809765064472339516601866334142456782991329103046489643626818389772602428174011367936652127099644276179260332125042650399033871922901401128801085417599724625868740894888242305562023196346883522067081811370942364095703503191869815682231544616689332341378490228864086285098352785881276185775537735631781765198304881269728934754809922125934288994504441520564767527895251198173441272915278123674818931013578378408945320868040518166397632247598455503957445431432135348849588297158829193757870873397317757336763030691239492212612826367163187040503566648996112429685621264223165266952504369655323342959323383588302575034655614868459164466971159333092365499096743298128040373741385488240285204109868643597338614421881623429566752347566260816691601368537144622490165184814902654145903939205505334826214084954395019826812223409874579193980859860028467338128432883386868533673034808112124993342224135599589791568608329387172611375590140323419701428968533831879034618365712264113153555369466965025442137012316225357393768997217901245019954474108057755042559913568849475326394437003161673010565388508590339647829766688383236739625018214041703397485149425734254830542571174487197651223385539979055012884643478243175010032644947343073690371437368174612534670951177476117520764925654096532201258151433431541960245683362319385080317881842558340038796675091123552887820397444775261918709829618117008637382205610666572883146455158537506022018559099822839295458745511823966760790241999375062702055723265862516445522144552740165920836578511837289239543112095796838522839397091463262353753174690278669971891181967200220334425977906292538047966737549156404486307539000346202045601651712637073178035100141275108532552695665075008099503668515290542793603071038131177397660942206043734552852144319798490171515637104687693740503091536643101973183295284773563645995702147830394117059824414158305616529227933163619435560588413095280625212032763456534958335479595029263173716089980479910092589015865741465451502975545990018703635360680661548530819918658702614751795388939717533645212579557848910828233981673706845309069120148412662482537987946832007042119470991191838929396341391319301610886795770645624750540671391076051079051286678152812162585513091927796905587346830554247941528293812778924297220840107680852682795953013342081802950230980748434672163052762233040071105162013081681613762336168500925866614165666903880349853467184350985106115968640436741552730957503795913144434468263989770953896753782835307497228462826354241158630637067034972433790740131887733332554150735815751725519344701766669247477406341744299484398079588400202935435993245144477157358915256042626317995105303145051229105322271381792878175315163180617308032625286429075761214439581541039723270398846937561949013031053736951776353621522535044642063099436089679009398251152336011136041440450597800710164299272183266404168441975526345185100466509106849084031926370076797141946385537101014779018859273993365744919498003388619210520347577916761484837760858609588578729781660114832122629312047379909829426681604442967680369129637241220823820784844033899640714334919579655668212151412674096020179268148164008966535337626598866322736169840861001050277300853923383946114650407921697344121404321495219765605293184081165134908400027211860051261569449623856254809431147489081515476438447292316552182157981238735174858555378217269252318872886281512857204145456340790147840664694906145345711427029407183372849253333641548575714926005373219011037751502099435480279666130459498727271893837532458242937660250713276574844151777636683628701768979109013108557493309051926348939368845302381278867899918943306987239521891950663721732653101159764852554043676200421620646282774202743165865026067311834377261017127558472312481009995320445772304380314789700399206198182461269117895004927812985671895604451186478165156768630941878776942455034908769867447890530963438313666565694986122847070861373504249521908094511767046625160438132355494257450167683697291230794885201416258557146768295633948462944273391106179372189890800781047225129836079671816547366525337444939078503691413329815596450062996102860666725785558368603956686331977305254289890065972985605210890494747747461226883896147632811771317520646401444827992015204323783205488794220088805451158814567000322334168683951792997841897784282121204518413700527993889030059922533390465989981191938614264711983638850324443332104514695899268884608619152438821847589062612592440029315899247434722507484963852461473972523374716708684778266524846577444108947480223150313031978901214504692977536796975842963974453678245872992697172886984053237846914495936550017679078726491534147952034475270336920040767612169886138868769893451608416327316554343020864235606264595156931510785445474561869268886714948640679676000307609755976948179435727648904205138215405182652941654705452817553249761034449107810799284319736543320028603283822376128978775544335064964408393972852694118637816159753466751824816972036190012106112962376405566475661871286345380644992418452299882361267344003436480714070249684967937111074696215071327988958561908380910344410899362438698562437847489541632810823420193229224383519385886837742492786118850242054909947756757357843228932166052429888079201232892610385424741762364263114156261300453346636219409673317926942387877887254710492900636337294867927513231004044706643498732888244383535761063135025638761950764390538712819368508497388025154525856241536314009301758174194615831114138099334380970160699761588910740075441283143424642925580304172049572587144366263554999862199424429276762412382300031022444694072241771791474880631430919105569653930351533960186492098701805870709827657623711813791004835785627178709628886994421113119837215505941046118816448254935481058071094918945071850646750108128493920184729711140520623734983185408306760212688609813560902627129982889134299487184947905068987707695403455222757015027153671182746409230060918353702313160774147404646089002649597648312111841251910740205814059162246295424313520909399878469828505674523561929427213971581500645979942728572206485632973504382784421291424605639564360849774027070662350740610182975016192696180201682685713386967272690701054592718385794661120934258340605104987075566571552170472407122792860939035631785992852856077894434743793130985035615292557629959256581883601494629323452308166914223369845796221158762012438695874227422500867009651378732679819118574165853756820651567601508416951797792762975410832704530734211177387332416332092267679208574688947838653000789679788606967525645480512074137513423590089335220143067681756399049908117339379853992668853099830074289768437100090278163723356288641188992676375465047275205449274044371837382995418258069161311969598349356850508282207988404493122961363114890772376032975926869195117103468455622114211237871406985874321285685139986793819658994019790130774452328268910954849508145993741748274835070145806877521675447126448222100929363401615327751681128581574236545987788401221764074046029821885775344717581737950475126332852166382062446802960413941871234520628872827350294642941380841634299901892995560685486459955215466435952346390393136067364663645009039937620939637032086514095613358088272479981341201528835959048984406439450799507514251413613705382094455665454232331881847962214473838482467848405775401875698674376260128427677132367302116096262914218410468511969366586991626170372864588557781484228985523643341612137133411042266304788815107045727561539619249174366968101963773893579676545295775995274609116262857393642496922519697165719015415134573437434752392015119566149288088816552117677687767449858823162437002033094903193357461114773861092104322562465403647572146721492743222439733765229457695860640680442520550440815726546266546493600641466519066596759491167272019675492541004326740756283947525675848006166348405082090615167111706716015157766639648502784846653670389326033283983452558602635141830735865318448238415157628444743376499285612291844512291291934258568087938120953686666301582368958886783353288378523935513892270387165720608236441373841793145754809275983152320564485169400349086622611135500352276272644506543071080761170014171965216759403869604460192455771731119369175018073966381278987103692697929386232462454315018597414345107307254558072173593934107379581206197035157093252049072971882076908432995268307866266922859541948869026640907819172077527394652136888144181590234611206165314981454520293319323580314432568893694132115316336918177477663510182605621387718814461121352686223683445850305295162952877451652639131990026152506376525456077496822801393162252524516328375082997943499082992404034844256451224138504915062485969724957678632738484288544791657612263342429648127506494797110483415976888026825522620456008811059071902703134186561837117954273567141911595057476499007686284978278880565966133724777638324648756447995118000801244006852362528668222940154147725050690809696303809848760104465904934378764682175200740019000115611077492272117671625686286162744703961848842196674275599826040980085342197513653640792045881741020890616205383448871809520256277730153053584803294157914644271331391361646463465473207089744346470892674006539643148117869282074444810924960282723675909408988811159951417056356996048791095250509648304219971884320798995856415124333836817763990482891940090004156881670083402346152074034445916444764725729798376718912074101030225987718832100627651448206656771173693315425523038516954825034541154231435755411368107080819374753272262027760774464327985807529114813898368792046384217610301304776590465153491610356792544455006473230302857452896124020463680767931196735512341623213838463763267233436547860389564461390581672075147211037726863429914728893421637876624703909042498931924667470321264832088390100426581037342809773399526164588910560793808021135333117689768205644714943340795849247948887931502633596609922455241720142861952326266580585016059799395095169853115468259726848412401911357562475969207998307534171880863091108956125418742371626041296242058159496866963419926998335659459621673198700031283125831045225703886450887824874457171993690611597274689872458917349909384627482066398138169871781505664137921126713802440213043434089969706970729735402958208863670218238950832271439186132072751234495640029768923025219447763221419039490615158962892714987511550769066843122584126916737136147520091948238657527218618518172030020677970841238059708548294588996496452686402286118054157532190637907599317270479155551829800868183332164083503932676986836586429768251238245908292277024592142067748268800358274257030558075420934111219426231473489152214444821649478747951159263041179673768432170231561030146020687407693945835824903840367050674837994916343934758032068683533166477113506910739831787993081592724638812691228341382906419982546257134734409844512436132835992718797466907889610888646789551461095488152351751193486978696667627994451958070513149360598139780025708974922772445092482179085621101456509177898351958556628079865091572202637375153952600810186194233071298545664270471167056519307036875687090934271527867021891919043296480905264118454987058336955526225647550142498493824206598380816645620760866465541662678582877173574661454188751430970594079503178007829042193196542628389569045042252906523683294498754165429313916579651265920612144248376783752305453690745668663291668580616477106650140121564518475504638245289138628441151687842858834243020839003466318160866580632732032610859047580581191929654159123288911976676927842678002525994918953176781815741947598222590107760200703618954648186492041621585258045074584648369029146112179475917082662612136142972177354023048126562257594021402638547101799440413542869575169307074236587819071400459305599988297676802414249246978741701219503032148715784693318358892832516250041611820161468644892380505937934480010544617875462136082742997433268570591292287784029555798215213099895877163436275268843229419554262321767158742898586588405124240071852743002708825289364745221063077441107653884383899394287201669990447886985385797888879714123241084034295052493693022461563963949987583645514540890631132900110525172611522199076980357650280476875933969816320123054390595908617836398896378709919029997854735121851458463776897202501737657943443667108255021070820402603695798498493438833287940992317637850533579092129508391737775047322451136368293171121990650969773438365722102562906489946773045885759382099317005917273689749268583902393993679892475569964529122485625556574323648931911242276731065140042481406269472610902006280166487919690588455886073348223965551704819446962853103246250578116117792379609408627219498099114990582974202454271007498904515485534241426645336167565435873872801542862934893732027586179104183491216779145538690354229451841755928270025847006288609994559272047626444765230148005304293809121419018758030010779995952940218812338558751731847131317292123283837173278979211396967357540677504654411192117383002330839594422649816023807723553394064306062685681808986755214802518670404427792962716308084105322136063285194968674529793595413624612403532493427236539003660550970596041153181084371963020512859993316371450332128394747819209504551341045598743601830558925413993993310527687548760017194118251744617950241154894267654330594320268569158144862455260938203780739221401923791108836919697599449519332807021179975796635898955212240164061476180003680301671728227506327951934189833396255724767467954726251979103237673103817872509361344581970817278458460399733709518758699453733477818773755627217483988869859679023370903493424983097905405938769439007160332740474427966203660435735918139236339167699704269353966241886074267047415251558999393783668628130948436157853209414913152661125257520999649112678713690459467979399878637099995136130995873786440257215874866290370807401864904065673682029167061700673153136277654995029620597859259819315715415552845842992327075776633501605785960718459105279926410273532406316093850366262080824001504190240112819662141366483872452773948505521297852023777443939616602042081116650258920731500813609668273377168574916806212791792336004546786930048698772170846170069561164450905759497152024819041718740517054676421646407998093902183859649498031736735244107545750916041063449462269192394856069770373452970419192303941713228235590090602027822908644105477211274064648822114133916033938185523915179784600663633153153167738953594416583828060187130064636069382574746833097364147819824803148313950548409043483326620549275366569564036985078678323702911557955527153747605052926748263587746595067228843930549973470983075641369260219839403065094398220904185692458698921801057649156513719880101562761827606656492877366757106246386625989525059157262696531395846495728701819159314635902291838470846916312588208769661661793069411445474577385416942664725833756070230075303648298397847591140909747077795905530648011065955207291458703031198035863298884016603418226258912169188801014292133400257028331142658337738969856764103913808934609842658370658827994004311082314917250688214870472640814604352721623142569710585514998464330727856036732534502719360678388152161124040379689373725238699711996655689509085470520699645620678954526678855467883682211822226386243229945521035874679173819194972446223420889594033088736626607489131223989638382643087916838833108037255064168228109704512861483334683864228960663314407261480974083952491703431877814864362093762298534282325067610042694260649683447638897541109000013840140184194088846083395144822104923401388526931102142387125653098825826062382132184286629060074572786924107675662453683041885409336412170463743312007319450408697021891024210866166961153191833248135328376699100623824852227784863992984418512011531895261876133527287947089042449582282366973031517366919284068318388431880242529206610875421254511013553940661530424329960192835447378515833134389406196212800293590467766363205853976218136631764536151263453907857333967299973406670529740440577822614347466487694857257146747029933115719610400725962540052859578476709783656018125687698565574643519718962808533915015761322776777777734058795344792269271740844133495422483329369982324778371251181132880201630433475371445652856716527076896928190204747314742413633138544161577820727802474836033205247716947996983807985134361931770480433851195564720898634129184822927128310591893117208849472754286437008933900431601616997088660950859702744607823829723309456284396717619206249220103794015180818903388441271400145373295528183152249986727458448912398230597653509505903037198535051916892325160367402145206981494653854610437712715076552082650420590884998656726809937693688547899751701808098440895590299262862846555906395099399909569410494521423133948222024982434812577021076310511080221025092161063756621834981659089727756633264644948542681327410475115215134144062796526347333409698296495886395151400822615802621156047351385801399263490340885688027261079346727887545347600356240886380903970982488089552722768042584019632114952042525155986365603514484743893043049783484946166631513082897058299675310547476623638780449844420837986184814106531220322143221951315517704425078703671675784494628509769295496500257746063775695723062558549338624476945180296097822470224438331790098436135137946053634337156468741890085842762675434450896483337637371338233363365299333175662486500893211571608680941686321555470898374186703289082725059696317880025116299193627610079340137390647436019603045232774768473769742729608973687373884679860380961864698747989435465438604285986999102629957268238874862528752632094737733535650720705229882431548449208312327418700544538995154541918319120126312884218187454548882824314732455063800702459312365096028568272684480105979038719103514928642020009658251266112972718918085354354621805483278998196799893955826287851938954297456109880886648598979766079340100589746816090275207401051891991834945530409032436821849524641963044628929138800529735870168634230926283350785454232869508844870160171714332509004959132455788252347302850359928648801736650784475318023171434968161702809727126782012885617617789041674084965001897998677429151779846406684990846901192413967062127618928671090874772462339698859024977540817053581134659186210954299886720835522869386360605644986105331793350865912851931955017077412863545106214645320621889141765101541202824638907777117478390967613164526129362572300854100648602368577113504777153085740563633556887247897803737989284126288658943501608946211652360782476115994917969571786422366102323658270190948401425826583014849330494880396585221671726135333629236605233591252717910571836366259417997864552205271454139489870125699354540564070144524920903719339833176202981080337543668984827584260989240965119747782904072339052727072086856807784254120555798961396946481955725335336735964058970826141168846392692485526608805380300929198818220548665729742933093330794344535077746488936481933796612981526280029575348026043677437698484437734146552237197864286975988956266011466070676273809420895558968823436194323777216093638149887096662738496701035021402502376072831715004011134951578413196989337539809806325704033613913364172379820842804049378666913642158348845908871700533281105416009374355559923637349371561093358773145479801789821406681600928089747962401673073484185747100299331814717013708751733729673794403012861769332483711787433042428215000051105584116290580202554565367822022408626818842595767068661652675262458945118450073694197906461860623451705601270041237522004604923187063878872243624638019743937278551028744205233454500769145987837388280625160417151873639914255209075921852289189738565343840364562335881204160583340960015032204798461605958916858110090437219800904922959287349590414943981801983294805110733876250621678872945339768810050211441416181884189620459369639208652290743881475241836234428546270486836838278108719888416614901290677401295960976501466473002317785660000540743299153236420919512561033064451647549113721313789234589349222113199994452166115474340076584626658921062323626227776330031822983814393214918744354661853585841987949455885872266471008941582608246322023747391461106730045190353769347429175583742527678556581475386835811252494818479889945653223145650856776397562062045664070705854757687703424661321614841249353432297288612863496491060429147034952627811380871928038094992774220568866497614687217860925031831687985827840056974743583356261046055023243617935894328387793372633690766645901539269306938625579659742381024077339192253274459152289499688075963071571083326146145722922484551400693306247177895306135392940322475526311071758928609340216199453500388260765901916464123414846876547088909512752720725137577387998330575662910667959644298900370798578345395471590974346908194904776374762841886357757913105186582725612441768284755435792620443208351547677281929149594185768524119873549165864764022837583513440625277826710664984416651909684065614644016180521828029164564438036089108384026943590774118967468684085463577276374603162193995223465306027716478766937915613958597684811071060911912834643679541580652084012512094171414791200551548637001646897863924069528871212842043174496232666012244840262099983833589803050130305622282403257218982615204672243349718435688509777684050443198860853001151708462144370831163444208070631715030483981525085576422222691934504413843133668756650641656246394727693304266039121546625445137553738897791593231208386295268756598797298380335439565228563623935633698417403492033099655812996130900489186812581421720750858059746306927769257661096288774239263295816789592498902974324805798664671860742718163498648030646248093966420641673675439481401451722685027311918484816605011692233003813972190648430020234033385365547590133651325533743061059929684156282889076564810541889557878814167458615197428810315940507591511300591235893211170747365046725721499729502415314759938935655823806852208376970487756048189362066195098218495658346152839284726504151555519837786382185693901411090752701613438855140466694807099582592839373416145641258075654596644424124869561139463802780228710028613120471075912048578276456832051837364316137819253688363295860207049196947785478722401838075080692961274874077121690756542946916694054818742374935501841254839424061547461004295313533590667842974114640143340274687922485505462981077374944419065179453754860644482718857652647230092938772648551768464624247494289680971293322568266149964844582042018055406237488114245574652607939957464917879986561948369929303353345753783983921990438814045299558494879833713015080508600441679170091376346159337694573035658644152599594799330411672782838713359944673883267141899440813150166279668139905710125661693113423319685364701036472827457726356138894131994378460470162305194208281432408078915817470020754715549219312760664345435216810892615370419297968092806389678569327621651232748972598594147192276416077160990638487351450936937738511009811815887710401149383471774333727173812881342045208597259073305238076255826075312117571642741584245598986758048290474299500377773293584805441438298362427512104471759589119900084890517936941151717440305377896876287692139458313416136975902310474920458911555825542996077491172225723450466866159502093647663039554855058788810865214364286511182719670209796585596270959952076868326571280209236302372737070680861769051667049016799279174529162203383522733973905621979641826739951868134599757212424757448062624281547786002842104901415477223639740381509415859726049687678843068375507648123586015632011556138625831039910070690557571544215427664847164153783809462745443975829138542473237969714917107268835856345009520429842902080148839527534051652396985163436040891406876003190805308723674638768337684197030223154422122068112135250805957064428906007446048356288165938265282962108519182304917033706474083391088226910020211579310722505682790614793833863626168194950702865128318238743222062984231575000720646165937884982599152891678600502132343661610810998503582256284338328595731041768616309310007287964324526393351955877833145454449099114508192153166800397441955223512844793835382068569376541011393886296775070702505336005034908469890204518118524334857691169146069940700444045068623792689187325504438528886739563404339576548914263809054716950478075262232473402295176511348862323210361196902432870291926884153302222641837139249505859549724249044872133081180345249481321529776978060576423694071354485068689284241211513624279850450549716522910156898565831433213465062767053541512276025230856229583803445216000231309384860468998286968975907825989960213927806286271104017803783907852334359930454904441990518405771018433604265792410397334026476565530773051440895298953351283244931493437870871551660924336205861911271735941185432143510435965522415833157695230603740461397241476649214777772743188019108633394592830476575420624219816571677188728143153507579084508370402303808259358536466871596669918151194771091578196189261135960169029187670177985220646246636201188485872104184097762375729245241254690906147027108251495632146220139777166939014337741234940825535373653320006127931164137697593970233074238332176216021667124002779495187148528652676184142158413244241567481130141843927606556538762950902152187647053463153635134644530162374848612463909489135342546610341750354303102766555643107363828591821518538766751464228703339714103525425640848343741564047428020243348688562461724737281177162363171370973985601431272117105081103819854764818313643926994964682042893319396312387321625654833520617801119811573858308850871691843365205222232957528713634891531830976087661730266827991832013757066794791820265703535495831605963744361751818341554318789119200243631551883243775075563855254026877983430485974164470458063039869437856689952427819383126476792193666209497968298569389806244293697817408139083474095594531285564336103832790424495120737724831637550647162308140647535528928948744618972253932311824055996599368924593751992113009248934672708132923904750374341058613800929739909152637076367016183768330168552479292745039680941034675808072624823636787810578857380828741380402713816325666419913874142463675180612324092714041110220052999090843669684669246568176162450555166549148123602563721743534000146567526527571104346927714874470100086236563578663283945363946532172997871221748995336991504027099104533135846135645160021513546595839921651557582523115142019062475015865777394185677674488810765906451669711987988761549792705054083200852019096573819332429127383468877648818182386739262823210421820895448609403488073093121820035359410508241573698453130496867733026355296202034706500921335552353805797832558706081678264593078595352329209950911430189901896798627325449463293924053687833494682609367687815888703886035789647791165977560755385640301900630721430113120231621665408547706928293818253734224765339416419807576521172389230637607861419192216392219925160751852873165330338868514058538166484324900302577560835558147651488651939332858454046609010232697847627743503858949991127097234943966418167439601001775846767452828997009370227735627771507253120150939840690540303877416230565198582492592814608622359383101661091406047644873195516512130196122806606684811024479707240355403620750307308296064518498595249957573709861936351154478185613996416569331036042319649009349063045798823542075648283512004841178119971516137138795740576718876331635624014060069581395794159848369498490104931630554606246987957102976428538951797784902592413092211492034704994623149520050951594341007059519352871903117262256188746004508037467831255783967491578288514235322287019469186815203057066468213570562293621831251028630980225809876879480484294107488456616576379176965399792313157729409953546131164320801118690577315791218011978221373418169029944533060491098731192515895169741949015542278116865806586048469216488211479960813880981266664130511363932828166494964525279816617759131779597444849648457784814545790155780857715100930976984843626537495328267349570588734582532493762821825129587674204155772944610111533767242143705458561065294643031637499277499534248328042157326465474472161564140131332142607089248814351249258574048930412748750543626434361190888254040338451453709524878658364381891402440479025884309322437471809135757411669446191406145097269491706469335251830322726183303104923246405765186703284441526733233430909744404719064448390416942075779267209641251260295408278877985809884799538161478973069184562983321892175275366848920277331724869258865376016560383339777614692587120909985310843742053928686946362515751346931010873951079249096793438805953045889791073143336570600797272235585805933733442854256914077025843535684111750743032443504881314782685018457727251760192691103345928697772666088230475300240641974790148875944375890540797456276121921570831351700892661417489346127652617032506023936445209132166178821158402027573270057478620355489895805516917725437854825216565407048421378850629720979038455067623427045837008461189169609603522609146538596944107479636032169298785018311782443563378529581813005878503641448462852713563876553336935932457204059625154426559648984650956421274774020979212346037749271974280805940618317815789335276341764258207239340377391808765990138118514741092584885764410901797369024419179295643720099729990303343661975537132248242768284100121349019021956422098119701998350527013895247650722418825528346358375082262089886262925508728790437353927749399982253727576215237310102030045222975144291234786446397856575092424329061215042010966640283303303813447522099763274633772471307000982954589187863181283909124617837241051010377868887214652133789311629866929728333800265064231314955739185698009518307368082970501765469135104476390693982056654268467806667666470804240356229417477509470893872177731368946996555537056816064181990211132498183761989829521982382734991965989354309982463493182667722849517680044435517384730409718696110523221734527361634846916289315699078865287508384147237707285360535763768147023582311664381136613389952583302701181800083668304814534931597054112003515775242610881208282235028860553076980126211495027054973483196010604793510230969574307467091320616171899209386694310502203954793872658093586794114029678453426440394501291490426152651336990822025054373731223957829133830598603215452442009546910437372419096775311339962751814043757535101886511335241977682341617035842176665792130002586176852897556864619637711641175396803594926799960213058590299662776288797831872571846742325070801868401681051041033827899774696501445938097848309351119541018879988061069781155723154786886955753886517957621213862339171336267999374632142397912893470737244386929414404660361341780626791449630980338026602875321071271904769794280006125041784057688516409263300321061250615970825648953288417256348976771069000967070547331784513803435010194582617731722285069894355283557068387241373735203975765598494832611325172959982258065771861354464146686953081782115616082767052582514400929104776809700025776364920773328283727367010616615866277555326766492108468131322344875504050619510881571205921741095318066032559698236307603480547355536982836676362292445145368778896387703064240825282741895362841460994661141144401225410117446757980587508926198102885900796218424168042990184426934536944833126394544050272606279507624217867159103357134615698016925377679074295609672876998458114785709900858357718002293126385070031963611642516839220209029051386762075998102204772049242288097051375646134986937670428763206379622930060152316544883592139523449759747949914557089665183100784835821498071881652348859102116416049150114879151526800551774781819075878000158535033926949339079283299529648270893696021645640503989269437283919323718618700383218154895602402316722052883812870090121242653111066401816846517576732105075909021951643131868504393026356951158128730356552177820070261288680407726214460482302416672944207263523640241393028901568343108477735749138432243602314586352858516365921056941014014319620729234610194978187169262021066741462995989832984723612761984889883622688921666664682038879017758251727775267715605026393616711384564224402741681893980420131538690705524310382495320246629653580424249586434276612691334622218056156080912556799092321639565679519331178868492768160777396493479228678446103582496502975177935932065417193225848789305450246408348188312476682375684052231192846620363182000891135758418485262216164643776606809400165166004787465414890548718409171502101645753922441385015315496110622264068235889873957481727624247261090164184547275830179895387705359114693079233027748346266734588642442555141405380594024915773074633345898728796679558619884361176626690323711277399668932648741461907374096881565265889889899231411930950789874895199725381845127615152745784824551500549647764038534581348621218333751036930600403300933325546013131307167400583669617869603632119635529989436194510586515420152983015598376867033695655592005158867508013132897162719153363855333941729244576247274347499465494663471633836045284244664367305757369097680072946984253843428408708110164194172218716082506695934343746162911471024447934086338670090693406466372353805444414922068580892566859963792772692735113535985019953541414431090365632223158499584811042999575183319644075817098905330588280324912164185434057344477538102450233559628048314491934184220097382267789072062312641442916788858896293043497415006375802625027543487108233003770930649605001703575143878839208538025523931400223583682357973609118638749418182855228572519943904706367308604275724360451309397269979071609865344944114633018268385570233908555955583186349705061186547505631147618198694827423488116165769837314420520143024169595022401550822575675500864563008874500675188198076876007316333819206297738390648037535547320316172525692181792434567912883586854465453795940274149968115470524171114764207949509528103208352351314850408186262797832676345870314906829419953404124072593953741485925179186929950628776837602676818314316079114917454814048536857110795800217940835573096802217818716838309523345452826493454770301366543549513406854239745443252670563484007454597206697844137105842370826286890306769408910525737387088411156697803114493252873591539460649464511273113032975677938754637579614070693396713658678513867082755398270761302128479758727525479061148184539851623619251001259313269051129324257370792777052651439971420570707955054731738296428085147365765017107510092755663880648199043186536740485009500272754250102492538795958182064668140517930133495885213587438938329154639663528692254904434940135742949731018186923165435306999768413504262545742881832970545838890082142421258370499760510392767786849768346613563455278499520347192742566812226094354623501894105602146181227950235961592154448674820240922759489967895434495802100789202265593266018141734805386185781037139766004847473855240070262995798008249360831665040664229996300058411087969663489859579204046636849942120689434714588658800188451363398692161559585627794784508385184226832218721943815005819897503924349598041608761248335845832729198792784144706101680842242535173751527792830825553036972898264695685283566712523372296859662846163311829426566487096679558947417774776654371380904963371406901626449371320851396691978994461955559511802691808054573531286916440430376819085405815530631797024201713453165172143925662302565735812166760029945633042263762060781086881106686841448403910024764968598141640361582112510059869783385830090935988919738182258794204956228129510944199478470519844608177890048210769940775735056437129679574934030914234507826844014996700616899344068490875484900000001006745658040652798399010043061542972789782721095922078440755550537673947177491555636078032227685806082742170925670203263801914561526595379585764880224747308365181128814024519350794022168105156634920697480699154743924923227341451858701836207276706897912514907983749295999206748176128096712444260114550749341939169598931429406688095309210810119827294738360439692663385406048805531599030304446307593719062246161648838139945757713547093266627105953670551980136735727855600940610279496672539308417388091383858578617196032467548865699149934168478477357599533599190416941514657563323907927674062148181186238397557443857151645841961244160159053379172710948644815524660025652330405131538691335283282749867380267132050451802100055595506558061796036937108925868944810825013460249834600249659069953564382330210467180058487240286183265143633928394912306763213962261340141448653968074484060291873527604797068886734533436700782362874285464103151058800661996598290676180874429813187075096479885306585147813535920162490048018446532213150897099729235391365951586161485165663887848811096481777134450050917224877426347525371459950639111719124625368594452525714234976423567095118017508173651937067786677230339377821998405883604214329415005137664152535871305463669605894884729552762191328818442415947118055896601557163119006437074132096326575917483560914203442353921851804536434149487013486002556086037018259359932411652966400807535016838636587220229646157535586688682873801371533948479263220318422521574355143240127367479207723854391392295686367194430715194709511888589255669375869159618970680382544143590677319662180383235502048478005899987999146316250602976980620049787140376938831400258899565291925411290687359679059154730538252446469519943711554417444665070491141138218946728970429499637962508927230693268554184463569330993422881800079876154734606747211837516506645414307177402681532196614514668769910918796576019649321104481374629757233981029224326322180151331506150595785069870432861261570136016641320287244205428297044333264658604957511764550688862692058457512583718977843901912824748280162809492321987303967246711466948535459869524041708889614416202349717050662552547718651155245803280683244253048747076164527970200742103725943182855168305135884337680964901198121699829901664455566249774578649578486797674100605438694307774587650822517330790053916277999071201163289952846398857484910326245540601509742972853314866727262778509583054802478918983298510980605278016465318529668408965583561469714042704963198764121538261665995933497620375723924114452821243254078115678175390509439848637215713959394849450754479808478490726654425491958042987784506034482463483563603255769185223634555517109360323240402476383709861023801441420976202672218555474413384899753189166962984391738314451946775144678021140696644145955544598369779140300201268806867378818929408191937540206816418038297739543882374809052872155295196784232684468646960671781591964409557447415481488962631473029427052242759184169573553432214076439370770009988915086937612751856826587774087790990582930345587656306748324179735374307217970085930242115027077578105334733970239216403293429267084404518923005063528101141020854297094771511265641892792783109674631807991377580863216595750692495750325163241978269001251690188385092672651612747768773745089765512196631549938047617971773122321039902565889958236199518918133889164249635764794714292422853303650977593123931124808141148454925210798355576049826143134259531474512109865862976556614572472256825087243471039018571397569205657911616102103628689273831025877769285733883130036460009871766871288629171308208046558436223156491703656466623699267753617399142406305596660528210514076658707942736148928935103528168420778596429224189558739244042891465619659437196371764814435448708623836682527009010033929797913457036409417428779877983691400306511418661798087026318119079948692907191229505729751741983246870342334172680256811070242430199533673509957970036159536263984692673895511501629182589514532648348582096290911142199898931656141701752411619668293104941208710490252411769672993127172475957167930608736730771511181358795727605853974852982457869608697373273150957515182771856670694458807452436553699099837275965122372588672969273370963014107748829564015607476062947447381127678900347062708677406740572531357449830628110323022033807470596713982627706545950195561497416003069464451387859892813621110226185427693202850589083103141146383774425363998926807691227038818097168569156419071244437989666484921598035057095920519799542243666026145939345143498635378199905295757445809554490996297777157944555247588356551282938898707765981535827650672102054228169878930107199269963426739635866260599023107672004418570921325085938573751546494690533159235989454819895633589678645185875499737034418395116755799281495000455519128750970030580187253949842120027778514618363438164842740258052346034677903293102927517018458958446577378822196388087631795141489429337405938084833819142966683091255564665823272833516311856184878073226383633214076689860173607845963789328399745512432677935298898348919784686072555874079332373094140298427549020076170873275054503942919670498303112057603700650046678860606517526610418145681637798315698537328684161229215867579293007699213398724211975454457422455928058936500417573837115754282879640585433271810727261754914099318710389137740734818295052359524186682650443498556779914765610632483679929030250342747512657310280844381082426478417976598859661230306970377339609731823260337848060035471272948227514565048527923446142240152202572048049486953058847450068343906471718215125915530403296970459479219031257236880629708624656673208352511138432345273283314431287760276694437010834027930357921286788439979877261013218381664154812430972785778945698590604435066161462622952206257917745002654169828391091316704877893415200345571135457003279862298997293341165309484416742787085205145037155248933323228695407271037980193526497012070355036853974123026258786194067238184682994449248014434934037699400821311204359029607399470802252407009815476157717503235054518763302659841392594699298453941370365519137598869045880204593185947157627895921146363156475764981200876663298915066268292438551622973332816835448570059054720773873431196881217411771568385836088389382333023891612556317101421430758230697991095190020331236452780347441679809393825159345208283196205765734505144878913946160556211184305280840016347394088323468102505744292826635629339402956895877996376959531646202458564570621661982944572675711630903807232896943089897349795718324088776453453793632452684387201544552323094081288681763605519146238636067309837197516318817192576027891676375983846821646118549031661381406579021258076667894908264600380623624257704792605248787803415198447505122927303330025260294395895968605115615039184988139474621994057806765439715006298452246904518629555477846161535849717834951070837986885268310044877099266143458127136359289732625463417820312659406570983180318076864194400995106494096089482038925471278664916352313916611000237874693920818225909387589948527115682013864841606142386683894167481494361402098612170324171982393193600292220911974595478059138631212194608429089706867958569020038536998796117580718453562024195332965711607060032899923907247534791491347418824203918239693240864196384139235452837374185783445667526439529296711568533153337064368431325224568311459252313821329151397362056782270223457900087741762279634276251192226816636644272042208977025598193565692496806672585745572432099307406245303516391636307734376230270425774669232907958170441976635146237100689369819296482562703349673282229377551080309603586104131141346541203531934342485649244886368890556019488097304755727319776479792719976835566859078532979556315306034261886404206272622755891756592191027805149844580856798306197004038409249870757185745241933389404121593344891550434414368918550900219758187866994783285793845675664287530194883648965721008689958761885079572398145912084505556080282201953938563378932633455220075029347581848100243782906454453727715075431573223659628304293958347504795991718289097177832316514123611124574155966324251375895236678745701724547996932050761089984720736388918625407364377058262719067204349575853068381672187051529881458676449326220874624565471647872208230172069214151730295934052746015903875489861115054364498450933505243157028787552478219569962797386014815305250418379620599415651095833764823036382540549146115066198132860553803852543968284814324573186762075349072234828671036212792877715675082523821071165081274136899250499422120449170353969094941939823479046514007474382248041953019080202468238256484275212836419845006244285775236981285704733547286754166120557782102171432986936200885372349666719310817002330703388631247546098068796439134992449900222056441064684159921527428995195411728396525975750583214995632788055033268196955872906704984049077879643041999723031366593055914830992552564310683137272276752787609331385599636443378962611488298537418303018490463922363745671002672469864581181469776077326571431320849843762894458295403438737100218870880662987577184125503188179399962301831758954879884917267867559741883567166866962086579689149155628140581256197133548164389015544075076416301246428566467908451882487229652559550279968455418108181892013242600231023825886377666040425958162153015281341809919281007612030191067592125484010972849032424461109824323306245901973485973180344429101253932935742716141050694647631198766883749128418632362299478435377790282633354034161157921409778393643841051520594225457450001588884591446705280663793192633700880546586495841289928993079126788717248286863040404399141770098510599876570617669562236408696975875892782859275113172423378622818904244209148476030910580985620667590726977995992863932040329847886094437808145053798192974839620123631621282834237936568277655711102026316291035666120379885531960932415962505322888817566815327166624314903654601799389341906682155029658595064790167183527463901864173065521167158225976093489385761019230156081349703010839637208239408098028096142808647916712298698556806742026729972903130962279182905147711615393760708628388322527011266672989747465013306236633550694950803498584111877264920931579559657013385635172670829265947711558477071940146659345310265936214831602826884776697587923027264698528551331838278790153401386995807390500394107264264057955116387310443272677860672679532997447492620301637251617656084351467026269496395537852110276112914267216864964244281878254686685099672006719990538859133066230532332739003477425047932749733629908789386227500919658744896573982064133364257704450756502172576268809652241227882841130553202399472103126042156001091803505638566382246649851467260291448839882788332025719296834486785133871785103832146410983164476983702583983420195823300115995540249025796972645261334079685746851484770412396207249175054811543860037989500142407221034896270021963956483810751835461175856213722971065910050708512829726182450134198129850946402428186447867125347745627822577360412135814496531142987246007040991497082147062205774622187014281255903401489987873791837858195395700590922438050655807226497654068041235720384288858713261155434624027064579969881101517545592539546040101742990096357892427615842772105568344384954195518572626064206727470183947486981452340414142165388068412027613589155749617057237184650790676957970138763453173320620111027016380507744612445069912806230952701605671543862911519247425740835326598320849012409667694079579054706085036631025396482021485128147121865875982854090125639748773203965578207525716503714027509277312401180587719032479740782924840345342725493353672846328160371779047979020800758766529179168875775293989540939720974792589709741316498451604698515406256213881256410613581132933581251022081298673521949407608336904179311563218794642462266849112106652142351495511618348696910072953018035929488320097440916048585251812422148830460388108818443590972624862133280194610006656520166780418021492774993066165808252498639195256489133979438520569264434372828216118345376047774515525534031844679632410186766905302444582405933010623964174882393653263025674303165004802758873078403939956043815875043335054190270750957085948519320781437917158207915668348415070009713983258469138246262573100183480158945909178608250597686486273467628128162460239239514820940527746804267712255052391050245163373774313333356738875213264151731833994473512762584211757252875262236298087932984184869213153479238481361680846178505471333134275145992805173951923649736237382609223557319011852137967490958182787135322830228833026963852222942030079450361490504825496959045240439411497212066822522577371672303376695245014930960183026229789748294709331956453359410896526265328217267199283282607657142110984129704481061849788994819648830818582679773248507022655095274752650630812219631651655523909243253550848794234765312618679328825957870842249666368202961148114898021839926127574085344380215437568796027270470227833743841260392128503206755779350242962684660597717462972933878789594307045058990753879346974516369152874614366540639568007414507110452045293051750572339376108298582974936930035274404171247107707182598460633878778901896186430190722154192918265826154547706871879998635599553705814045365318027815871932450044705836970661771908946837014141461999722087535099195215480371347421786373084228520467928597265517450131806008724384812440561148108593099972255850480007389844720584303869547816239625936701838752121770323668557621664098105679685958664137213945409185855246073331799572321219095348046292264496198434464188978902355837526577323784905291472361681633355495470495468367073148023632891488482423490158957663464235150330925813160830817400187198890065495848615364239092127652379197033190014937830416141073492979082376611840754977625627501298038147370138679259900216226594295527467349027808504685096663935461838863678062974663277628294166625652491022285620508579749818532496516832780072065895406488778641624102859494917497822956809772101501012593870163121015636204749389646695479410614354917028251131496170882322545902955344668151614306653555677238376056732986711063096283522898131762911071682939820681958450380228319854366121589886432201159079713883271941718089511304654394590025885890249962840404380080345534048555726406572845812332596819556648839784738251289395924580051208278613480267011247769917293173461007300489691535654334546506572469617828075078542468850350421159671334880935660462499810443961442090337662121994034446797477707892246873208992385052178642504429704211546619936176439201373570772693405088411055038865474883887377406205538163220888477039303601464611661874053468120411081348073749863043485295884879367439237136578925073676525388339029708335673210970704529738825104688558330806825685548973596126411561628540381659598488027414978962810361228767055072589015377193772262037723499739910095791449082128937544167380167147279338988413961275160285068850170791023137013518801517772440071368301271340992050371512489461034941104381064257445725201839023816369983124798954758009797505868216187565223265553302768169945530550348096502224617601747821300607382861616825122314138996206204135539413138066197253027203800791052574248248730420405793036008687141522251185119672081517825880350517651613085831975868314442667871899766422757260689965394391846595106036585870197016499154403989242579362403352798845890606236185736932086243334998518472570663169437929465074187712111060421722785213596212434481679285435527833727819808371351240920652692841863712357699752638537815144616096083824719458166365858937279539526892434267468985415696124840238807790202297156084126229367105470366353015804299211279735199057712645375098086821302428799357060821147629486573607077726343784939078635469058906771309879330701083532818276020408805424185999249378462558504298367421170007346549287897017900375806358613211652757141087255962300235706964983827637841930471948100274322181168714518919675362781624653756680970722497993049512147709477960688689239748980990469821425422575500641904355181711206620336177417678970003167090103130040730824172209848259419023823898626440774178382998645194400310883457347323043415450262727449893578396549837017781846413792575313001220415764702087526345242853549291335954821855335744765211916296421466419680114734676053079020967476755689041986602319758033835903050777608454949234867975170057778473183288845746249232274129454966174938582145218372057171836054662688571386261657558759344846677162516822525772141151608202438097716375880680563681949432760118439989647629546018298924450282692749592483689469356608815375704633612347972376446986966990332905040543376764285501957057301340971301526633445661138571553698062650209999677782225482070269077788096572637949791768025757261766462460908391216142453073653852035950956964259923403835698375949509019064148371864698403060819009455826916966068255971926761161056198093048497823193556081468681868612265744141116409756857074660738956297137705484771085214582586072013059521068395280572646469453396232790677996027380982381183229759543640021793118198112974588643853908681126891957930282644701979182218496004549222169246553397789993513363152831071155743635494896798914982443710760576183152887035450016403032669173073842071660700458772992096766586742139494435688198595379817161956441926229083882735299251854966724866271715043856980563621825340820140275646928184504001283523711281779652667545736036220294800095313747402144994974138357140619312453557605141050901881821507885982994194543840914057680361256708110576939850581671918457094130160884157331672100049270523247513730490316222869198498246376084510457147497592510630395391720187030876465605065075227829993999050211124353378725659498307604376452298848557272320336656657839920714830862189148077116480997970692190677359891842461076991181901072206576555599221203444711582610293110499846687048267182636853035067724406947702767753369458616710522675470339922914558017506992336871444088131330266211439042534476236393626481956094030438757652899650311704390702760734368507619961808068639701242938169158998249446689514183893566880967101891421758406436732713877487538539304800654731779222579965725047144540927537532753722823454379242998302508401425329903458493977360742462026818060856811006599974713687991270187377159873120407906666554493634876844101062893621399819069941000944601213908941797831498917858771505137696400606690544931932766475868241850100646372603795813944709060491341272203617237598564486947787522864062639607685248174829715248061876016459610912253473427230029287542945108742269658905860333581798951176871443438147714677734674326583807016331424129032052380751305110125245379554687611279968011244041303328575136447664804130210623780371250061373246056837747505742265437350033099998940857050300147637547705169952159739479251983585553050115716597391729071445239779322637082947101676642802598112414127631645996292501971734254189038497139863600278619252182571671331438014480881245162479550025647207690031079299086872048021230507686950446085563495923531126110893450647959187534791211547368738893384248823267945271617321489687801511630833636527862969012360743393122021085723953662423273215474229779882681570612837905050597875617672129291825869369582961079690914052854608973397926112880918686859067048370304232520658935804292118907505263796503854666666263958712794292847209592009692427294892147804880019038233440393922924096623796734129151936581833614080099652616321492007945067588260811162960817821139037367681385606747923051871962431321247358221671613084104299120689386277476394813020844269400477485911195271423787717312242032326851342330071215540310831913642265997196273291832654766753918757142489162962530779294357416951531308524759827389815283752783943427867231931947606039660374224085459094196706109655538276006234377352587554923667948593398447498613767191861157977982301277095752868231863865232457042903758936435468546693728744911151435415602429695207410519054153617889666085535251602051532597270905221799182828885825364706651641740402450916149909831670975273051314523741253187084221291746115450975047155425986074810840601900442999520450990566530483567925976543657979806479795474268909014175476698306443069154666313278637678560991839318994313814107608111755505792522405703424304043523348602164141522270305609221181121991398510389256942969266806386056725116306619207940282241082751064335848540950539600621130757406782886913649084638947159538357824797198752742912886184465933024993735549582182066568254936440512784133008483538626396891684270010335718814114767512564182890031873607120644936567947530687745819368013297910835808846869177756983630582987818044003716239529449914972405840294550482121820942308056297800822826691557943548525853892834446110370758906817524540593560523985776318840796455541172180103803585797189714544759426618396901265842513867730575638350722481724201245694565454690265741905852681310198541671314606837253305423402540097955536222281538255779160832480236649302545171742733313357836262341648715526777676718837475738864045061670848047018293841410182610656516137838658284128620452241137209975437629543326027212488286669821901198671997451696931587908797407668036228995651799991311387991989825638039967093354847835915366569431773747523711214651883596242834925211320718426284381639482984746489400605752971622647718888696307894181612140945539668981766102276078153216561827460092276565702700166145720247024833729705327164746524898083003237906618250877619652095981077260248070559369416339785269019853484895977413887622039568311000768534063499771158593581155945824489929329988659086207961527217487193088351384769008699233970895357359852331702005631939901491637468091677428127117284961305221441675912056948624699944967154862244154665302917488380718341575241672141801979096715042960803629815493110280294086040169290953961404111572460020554784668787178370049170890381996668421720716515026271387488476527511258454672128573104000834943370773143837480217599350754235838701115945408601709207262477752053658989407429058904525891333871654300346401944906044386258000637833631683008674977111562552121058142280360050887232120341666952320326139620317156465796435041989015990508173694688955177335828298374308672313756388886173304163826306477881433125811825815264503912570261380241938817625769026897603233047401894413251659717593287430453203197532550635139367657909217099594285100501724111101904064900488687042298343014245193375390287741412766774282548011855532509882469316268032952760194255911463493198724961875609550971329911845378246152482171688962753070308519343886576156468749685471394727786335153461788582594186290882886061072458875371884209642302176701944097786799328665727731888498244088489053378858997255440201378148498475103858685852850361089102284893033874508107785558002598678582543393267032062898985797823635469533883538941614277656695363972203603902281376877577140011602554981555326896790376500117244296186860026551281660026189443246391957678325700711543386606564111028179804912287831222061242723000511706105262523107468314771498844990820460215890709716125327636178035858346660424897995619816972410527179968819031549729941759122943524502676003804092289214403589922318788599777945874170279000676628226323113871985995949490972412347041982393771786342514779208021008765289041781040786368449563013446499730639600862733320354676171739869538955495172259086448646835921054754546639962182549661405518247032416068438899259124330552679662854933874511692768660532225075160008208516711817253106841877150200970772866065743270197448658869376359803064433861413007973428284838888429644581736598161534588305404492702753905753841694381519720168087516192440595533286670151027786293531417508299446033275913009629538818137444164780679217000997240758255153336998112325454938467619507969164244630097757168417653795587038489539541238588332079245077434321061924119602278332768837037686227152540177907740410807621141017479436481681460966908762092030630126880277308808436695802158976154750181046758561611516049741925831720212080412566069405349193272213519939585087233072205668863812439480634467248928285308424314556520804965707636452656151232709819460550595291889502922311584249272302833361392622575432237840266001020546735333446468318451814934758942020858315663322996932842417713560771454547648145009419544799745593345244076228950319872320174717146357628339479484057131051996835849745634654670886798296528607374236311224125408516603287630753244597928553546816185133750934351186855295353569471388063186367781679523302352502972791066696755611379311450620260073177362493276554647484219538116547224266717942421772573140151297377749648759100102184100492730452156285978280188320548697863944398357447015347478824336657995557626959179974738307394874622102381900612576293949404245087841604728535914058026822898012072038776388457698051946086672581200980450156376641782168430217774917824120658838923373190441071624298274826994389667837125215297796921554610815545799616066463785778261600033115081834386382281856171324600286314974211637870134165184051540454304799252691771899664870387208878381089595631004076487343303955849192231860841773541841762297142936780007661476861713191053393077358516066388536171528606030611763376973034088639276372453786001786435437422993577704202351161002143973940915962855053543558736565802149246534941223616120377213182606259539231681517841296813038638342663033151374910684913584820827914455654575303464913251464297028392687793403714774612519183801348163701215123292354756020636811026253221095552559932668792262403738055722170274472206794752019558109322181762786134699031130943441550923654719938946634397588106703341878539348728573624471003321670390976994073477691007053992824856977676958067243141127047592822883414821183014679525704114822912904621993078140439277443414122284493996909338665125808858458081213942719283346967908865928775154706820311489783331834963611521018068668305864508956130596802789069209883909333059033703709019650112331654550363582200536668487186188360302127919488534063233868979044951217915370744123854413691735839148707152252547146222447656733236647515148394808511778214298401187170127083506126661120478527395355359977265211817952512255712680907288289231890053849139986683689683406113284534735316303687799992852573792992625996254709907580976441770404790784334873332397399597111745999819074082717987429955928829938913245182133124782234682324645495217247936327439407533154329954269069149557018715679890597414143796228085140079082054483960862190352588879920765802189937122824982579922828362280074564405355310185464067746451893587727221815460869174604317341054189330321051849798740221566839810332756139016139729505357355476665930567899622177609440747850331079324864121434376560212730826775762004121547674124729821459274298060060645274694878363985681808220186569000310607474962271199481742851852462367569650227768025184205726429215996933607903212057736165006526497851630760042428620840179797000487179821364589903489428337664682205227526684380048549219029724093129944780280631678014109937193584688757561453186284595730765532646705960434940287460591327077004581465499626959957857446140687466583814713073280420328780394323624087659554995181973783983421458985668818566344395640882899876322244199218219384360211674222432584726984169580075594086567791228463361971786482511089575169723459288008279619765021356827354691791039013326165139323743705158893764937678491309764212532860940100847821799682160358452749559874086461167183750554032949815263365520878739112117148290300486181125615775510057310394236797813865593442503240218045482760425533242378642398916184981764933429055640307793324236619390730087536405475753488957395764201223189734452473502205835348871440663360411419726262364320360632352923500780791423681726921452745428627474707792636262425295402572204677467651555326450451251098015670279916505786877644473025532714486702503150707199870823390734384411175941613924913469763750219477868748245916108395634257321635338230557900443065058185454731140623388822150615822134504306743402249385780328456280341577641955575355440756820128131734392699247750605985232920055743132545774598698290047348174498925309833499377276046000152754384935534458754266716938699110477614242033658234536241976446477813496116808022777741903000159407460135312745911871189682940828647551894515335833026070999699409704102278867513499745721575564230631297149593347839335228220048205936419207124627942214350634327823736343247655483786714179647215746949049053754926594095129019544102567549673711848017483399297532436005095059790166537863822743342061477814349228360830783731481979100764242676240649842814586153209446543745951425412469437874873809806650887194417724085301411442571636521274106860367783816564387575679942862779531092790713543867633087781659090223292548263376805083205588287469515530961332585431988198509277200699277114787783117242727698502507374184601632755895345206162608665749802579507804383153194167549926128514925000871570823700130267890838304643865608687529289297849111800988542478232549878452069958924585661257763240866914409911962556563197570503943221398347683164045139064935924231661432652203058804645447736005150290433100637654212732491305983367042586473932720021106659498892035258241964695470130155645299645466745962114507539757940668588648119881919198780191819348934584415148768081278082074668614732434063950991157744229111233503574063978819165619549555958896292829686736594142980289132227060385737884135713355424349127382232915551586894223583088759433334023810331483997992365267806381407568598809725141999062211224593211539895659504352444547421311398012819023810249228069722146541283458520038775983251325764247253487126601924638349754963281354192620661690348499666118634921093953352430309573987474891797744570476397036140936326397562826308330161735078706301241801784196316860120642738856466211849006398659196647833955384929281014595695112243751550728717513146532855280642755637929128201312860571572923149785319945834101818906025271487634412494629505295688919363083626023358536935717606903185311319235794195240596812935418634011877838034538031834215252970513089564257306074103502862570608079417666297700983782178618297131507451880326403106333495179023399570592823384626462886646951786728582364122348048827837114987710164800918171388810218951452797190593287043629757139674754026254950825417348899400408227300776655288627625413475897011174857637140312229214587001460657823604993049734239142714755335495983928162873128602983651958851654294292086334920650003297604522939735506194748995938856600911330834439264534546712341298695765657657512247440036195286542439979051465578740003130662329143105689317808292888754562850729379874651424989581953768164338853773607927422608222852636453062826142167845521716272027812845308124205413030911590264901279627087988626607914976916854431569952047253318577698648848035177603168654505774338815908036660194723697392420493901738734544599830958412495094167004628677613546233426654770720820739158142949673563208934517936883764538784514390647276695504273344018057949727642770935903685527132991594963459320521714295031809976295619400337430386924967029490827042839499068953738118798924377183247660720701590649162260525749818639155376367360714349632648018406688344952436653753653669979485079482801992838239316437874826436728999330462479808447945229177534007412615515167805021332120716763579935207082062510631209390979225318207198031425548461722355709056022951435935467597988667595027000012247414901623251463937258598236675834560160699159112955924810750377721265421131078641349466274630586725675536757936361593841263045943326197886089045786692857740238080270387429852136243779340644750841894556345353113606327269155384457226599658698104519124816684236536090198418327686471350947145885577785794368853511241501032303677276320409060017616285051416101986171769966572046887582863112137443272924117011714091604936754651119073527647381219127112076032127529728031118125608111781054190960352526418167056838154833869708094418208889621553196323991150651422395098574754667887365224838602228846322140725383636711985950130313422687980009309306248870972842205215964912353449850779459443270156303395421028012110030714145040051794870687620815946183511499616169469889156245866141975217885048159348218759828439383797410298650660105947154086205804283544259790401773437861339437456903458578581155151011770551730131864203404946809370597909595642235439476610516135492466957154983145097716268257373497320753827230270859531811200167070202016466105863268425378119213013125269198579342388563390761118994265336345596426994204410271964253642970214182277707589138940270988327140245243967701774236910201595819234016319324129795835020184962154097358981219585815725626380976743784438759388286920561622550722166720590170715100751923853313156437114487249846726429526398173711497695145496455998026740544459733872197690312429327316032864704414840026152940101748148437710589852951110668740716601180118159852801775669563137615613432673980354228366508745990514540383854660329794946990271056929471302834334669184093534107716289735978308437178515624879579928547420554548020439095467126861809898607586968592252050521818195816529411334861653114039676590462119828121402971872652310695655610161737021937937486055162953704808815432438657955181047057490755993548519482138309385631279996119194295661996981786328329833412479901884145269924697967452149642062194790881443327998779200474764548437612645585309185469153168324260474644102578823845319154613398244283265526892553581561906838823916264333453128006927566337024392704494164741976660248029287525505299686935056682976886939874468265576437338976187106574123389925186755323120570787331376460217156434575201177446567714956207851002038129349225045903618787166379067163340115058029041338319649813911800144936634481127270695304184259760116567700254238684641403499352248871100100420847900395883155992893202565871849375877145437534631217132250273673032707735673656842209000985474208629679709118173990883841211483906352626829618984378642161293732507297752762216738378588344385099099188966903708581032136605380740670551044463190288463433743462868472354418220261591880721991565129650051701114993569817600675580976392251329913948623512459652605965836686102636447281299773604881158144479138032688038039235275263147625790769737209248416139252818193937012199408506555359759439996939186108135828178149345574945338168301657763830900595895739369382923603655573085641261995944973053860482558126912632431929832914045262829997500947645581152761855267904190507126848609660521721431770777102048558943483887818925125558719207556916296444718235613008132037371530225894558799853463640321808211512327149751119390538805292720068335284918082239848933390956064239450924776149659999822232215477521433143626309027268619946300830096410793184029118901250203638024687633533249240769504914701805689773197248714929044679027261116807796270665221029105291991537451518991969190779874863354874853341031617333607687570068673170459182316066291942734417100472034783915548209683205794665024513530750411103477810533006082684301676735185869839204623659701016118647846907998714920423612135703602691137683889241343427988886283408155294643356405020569091920308216972555285103789182127212333996989329450356315466921180722940912049300129294352147331199458533349544484006376553446994631075308647126693199194469316212132473473008237871430342809962279811978221757199483858074553310929616126300662744129220288272428655273969571238475247339759280587964451630671534046064881132697046833333493513429884672916791192461541117740562801775609070390770762096643480093007255829463144424712638354690155103252555185020658571239001940168789593646138891598803057764721382627216652182251739601063894853785267933388177508681428971227584745504284207230943057395127426562373975136906515897240211314686049013498053937136218487591356050930608201189316921107790443436114220396898369699053903949050093591111721742273674549782480765225996570522982499460893304582188949983206371231353505597724994806656180126315713750502111375585232448027564739991611752811950506622512421042422845863448804969508863523047439117497019788890363772896753060903120194193356090171584504052855303595942435800908770809980080111438974121438448867551389113599768992310897090312659899729175797770229844446725002129813090567870535173919027639137534163169767117706483725482804878139355635429785024533722538509511624715914643121070627479160360935480914079296035093883497832614362257235668210764561295811588868190944557987034566536981211970888901991774640715377807196949670444091696758456707708718463523860688242135207840443723737324469691105993552258020287574374373290458217740115478529981367621060917041364861955464643090390052440314652893121326609943794112253331882676836245126359759612510823742902269750820356329567086239269637395306722504794374090328390377093464930109710385472021993205006928156557187978172734656195346356395463222591731727469859319618587089901463490726096455513218849293166762412722127020627838603715473180548798018643838051155164228428126594375106028860960659653442024131312439659474029413386022922057338426000057282689863195875380872420083851826421650866451086655964053963517884859378963693794780694651918593602593438371232573558349983980674391811263714437497825887699648873183941382885256408619795586230138298895243996303393433438594854199368916488106496194126402420968665077683048287209910306488453713210454442827621027988196504325508441284969187159719558327788945487121354207183139184743929587028996034471559131988651375042282814370342093940693451451350184755878014929609233081485689410024696210749555102915865292925002900023928100698424656100988818553695183984318756809290988482986538896219282970318570134872967465463470015973933922418625683073959640680609960605184619116306970620951663253783167844517285261784941270881031283856658013753923944144505233427650772523429389285706571382899429532905608425236243466523755500944250279261889457683743891813573205147163721010789979484707313846455234424617701021820738405588828092756649123881247252452442882380817106834929934348520339584053645575773427192417064727253450959356044075364092079806003364849647398290042890440693187099065914774549132864932783088352421251170525739027718812611764134191322080758787706699784724578886139850563519665474858227563110825674385331958225961770894121314080819325769079102766979075116152549840996793429781368168467994083238648363481808709185546085794212676990078797013740349521804090027476688759423297202538308405171106677799280815310919287048751571424804654691626926030715615240611237723350620217031769172544355693663708248671084306258666812640360760418691535830052234554793831194078771174840622772337329019677958385677557818862154567467090968551318890858566188549350331826342851245550625155355386330883172144992160694544791144253511853408009185383583972222183243462708449259755973730112078636063873901241673917154122653365377803916059456566872356437955136515151556458225454399028629477215668047916678769223477655409611699307458382193268084715175355423890237841340526869233791390153245515583349556191425722667897124412128885990124736198716740971754797205254951011091331506924852091013456443479624997124834034861223636481522339330939988907044536738614285319425485682375062354546964849082044096353514518136461201122795586826186537201757830253560667773662418556402654181446456934776561513070643363769235038242554612973037246559420559795233199909184681092133223171706565428623834381981424810780704526530769471308383271322009324593174918908374166179093602127616230498686204520038975469606543584934407511726890546202568479914747151713342045783687432992301723404985687140834265893774164125187475796041534878843988185549372978060503232183580001064438445475765690165043457472023449204104433762823267495150871410180479732692353026008194555331628260936417644550922763282875873714998042116596178740366546837919170859761573315236914168919421365113217696220707260510082471979871678867794365129794343764756195108431887128049095963889329783508703621677849075810139668019431310334877832521608244731271654203977965764715312487545305901805096664050090014242120822010262252672993418405241817494214379266944746010578498114835835189363204079432531149561862735690099415256660505088208353672967273819743415026376546692859122660382771278813332603915448987447171619977294697102205540000958938028561045031783738944191830948687147013795851957626579772878457386440945963339647299387533821367793769263779865178705355256309683495123150115183918274770591344114877763340911546063079910782062460250167501863389422979847041472056679942595306629884304898491961479803617261125113439355977793178899524217149306060721640686101995059251734032018151469724814333825381760184901448500323825511722181461114385829395294991197004697680869640939143567661524289493496473416269602174024821398458506071867554271195380971887476555937429656625523038817197679307304289693541485126653933732580393001133823486025916259750441277166632426370691552803504711522044031987079743730338690312173210567886800319661738617267292209481710198619507097047389030577986198284116120804705970259305502537762938983292502663149004847634074025749886792339297402439950362288435996708429988296613408007626778237729388252415990591468452461438818361034524367901653640919191259481841442990703321193399577023450493805518558607655106470448932472834055217418360578049980868101646968441105268084521650134997723545425902020979835500548461482620052625087092836918411564205943902479874683294033151280710569111259876756188511717063485067691913665207328962352921392251624308473023738852423954636966814360389708723683871247289246500863430845531913889723804792099459077543283968209908971960641037930129161581198789833675720546863760399463144550668275483414083714249419170508788135131290638451757667273368422225267784437888534073927251711391413728836914825562429094433351130378223841811066158311575203337608655335081162444070331513367586028406294474290451739357222520728444290425818126559000370104374266821908847370462175260358968932262802915120900438626601929502298184703161563858940243426239781654745843442342702577604135043463595411692057053492272216147605322343547651992754733124680578732324317170864901069278713025336549333782848920658508522166241900691605048805891812243422711168554267402615802414077998134906077619966617409763774092198364632927508514804418701830023970835473416889745480063312900144043411358454228306690899097541402313673379435986955421353931910348273924019041637924226225152343255912806437648948400140537955429142468922376208831505443649260359933339482712647258410115112378186881150456801263950810635863840903476454334668761100811139265264278811981800718710329539981003279116814780888762398310027018743077802100805928319634880643064201162405470587137278585308886558914174742343636585837466655218086750185355479547050047715078805909440255217328358946508481072401532026689230977106006835586197555067654082305518778307119795065116766340051475975254196557557172268052578587773191387984839411806737578090892383283229295558459915446302329628434583148480899054036677008122715134182982694632311940741445391872623360212454454842451319286195082638347641284144760132493870697674345529108933041328976313515381219021091491654388057587554953836632944237132617875857631314503807889350727733084305585511374238829432123436781801466924444721573189592027315278748984939847139405642088747594704798248949971611607384617064021853510617813151352775328903663334193009482938863584712136763835571760282940964521788406026729945851179347970626729002887915485839271423745793002023040155658420821637690716586949748850932852700619269541257949813558729556187185826993368112411578885313659151875775969027219313911475768951932030734302678697533424200315048606817362085308255766053709931281677801271361765559008137005557105109734763487396658441144342452995686738002126054416609859627438736270028745961938191179641561805370691653540825330791448541505492296506711254713116248093722740587693773837297444804969936457711293386237177603571685740347770318874833351740039740845827511479743393925030481407790397177768783310040162609253871010629962265221738405437546025569864609067487026983676162014945352748326030724883618709834287979933967984227354158994000153937360281022450657026197524016356157185092693763706129577907300235851809621475572403332494235735966576528201602120630057705864372298126192273231436490005421813967284322316626705047804924174310358445953682574405267750250876961838870873738025251733514381590870203868612576504998558102986855586819634613176943738509976582434392315572590913951999738700828247534735336289787822780798388788370136775410083367890538402223175699692302934559271198800493739830616673612054663316302157988760222277885976230744386067769422336930608788518591726735551507790302732630163822951238709112788199684396846447477793598730102134020123749805083308608447856857256621531296899598232275382872484301726331011998784903812349416291179885354238712409478770921448337720526661806817412417397326483170800641307928160053644839971960319677002185160452525965122400562462890516669888555007820025682553834357104428629166043597689469846789827885417516884227654080985741567196287874943139697205464268258549875261556771938393030082253936164041997525620347195107765034307922714049267027983659011469571759503300242966559280642325424294526854694394795523083344796928823343557294641959896241514570904481503800704457334540563919629023123564753870834295589576321508180056289957282492006229530898653965202486590549109938918890279823633945153995026028685571420494980252770542361418020447853030935236039708370488238217318655470693938807550876625353355554244053020678364785237784828018376812727776445025716148490860490803694465737052595007405810005341495390882110674680846240535271680007605409901815146260995219369005342496296003788293455280536314767138544367762567955243427320800723996671250941251959786749040291916681778411423113966268666691426199824295954766231874837997874753443108384884848014932607942787649961816635390768388921764439340366256794330847349823081196522544977452234367083728307783309251709580729732394536635351231761185508926009449659194590513554787091495192412214807629358386057696857830121761726720609008086587563555459908902255943357501098137962558579750923348422006487705182742777623287602990805775912214191081675547436936905984632554776881389262585793270883060182314812749075268068120949061694520108866835239752651307705180091632263555161308647525491831711620593548580462096944188231291160367051998852078555761490646111094963716515443999192319934340861855208181187605430379197330884821518500791185940585681326556907916400363522715375044067787122706017719975619178148088612787393523448315527479083053991163475014836534393563172935520628835896640788033073452841187112977671173436390194728120688749193312311435479827180359795319597616220992776014825052811838723583783553057197330404897432234192538328107954618873442982658316153587659103556831519964097863857458275066013771805580671389107836406051881730169405234251730941624855307639828232273428865862910290355532536641522717351603192449195096545297961769626250503269175685424216660085787734182184191003297731815756924025063082807278270324838580559080186416230316393106426522184757350748757386438378891612557636787447151089898494961348968783285900223753820225193367354492382050327639619665419831243173203536353170255248206754479466996121409004016180379782381596439538946913235739355878939296381857134984259420692887063685070037228884526229121038027189681066182549985778025975036625347553207189849644093509007592511527286978054353288623081002225250294960904986598469054293215013225000210306772800123305569910399089742233246116303064030004826732346436260988305104786996999008190954792765430986086020290753254413989549604533239116995950677678916256648087330235161642102102967840360631854311983380914283879822782516889231118982556871460144375731234621151908371382891330523854950751977917771018672912434956439815343562511485142471074377608302282293454860718061011798612980445619116219103101326465101811675320596591606980831856851906406720446013613662153323107149981268007778986931206506321306522201281942469824323201689682918870823307858263605072671473643563515357386251129987228110876447157968116258334706014604907850650907281282337508830426739985222337371975414920786898723614632507010844125822541698648368634797482820662934922750148965152789821938554617497787148831656611130230496571011651330973555318488035386615656656196561319474764296571219030965015270190549272568451618230028939386651498034354240557390449678386387132264484056706015598167391340367139638314891834606442335376396231147904109884617369157614806592858213405625258015442850262745190675526235402043817751292640518468196665933696780695879116285559302254575807083076324642131548995925354718453738763985280981803455523078855160607756301611332024974523515823729597540138831621559062861332952424815928788163754733610556195556825641276159495937902699576731982573463528262044895183425436695189841700981961091035621741719851117749916296873124331143259307202457264477795333201490923633853694973414204751669288143320153628881893658424839841696763815156804499089556973757271696563627109891552812145965667160139968462905255536495260302906575914031832317347030508467107518469398288098310408833654241160068971355768932226570784063984529116637120008554024361170715566522578993210573182858727986368539354299557911528617014425209381842434292984746308937583763924693957619545101940306543286297793045679706518384244819524417332021269657355089960964842195993114911241855115994171560016456016689603991068961480167972164332071563604353352410313852132302891452981321943453314539493399449842566204604371735497932403862823564789622851062601533418007903473048711180241088935707813253618451953058418538976402875049177688087818450846080196488332945230893780195386345489258439277326113376223585101203967164443017988137142305169497573248727702268583664584149132195348382122236993547357514692130095396482682792308835647546112322877374483672287367549129456930105065096560576806869749896847794914738821271086134553684401967701704010377991508924270986894289539803637244542886656283838885784813268436714895348384680826262487200512635463425534189244689725748437691434009258831032278921350399503727604065560014313010626636104924058935677543243153837658436981392174785673993870974028000714298467175333995094903069277146485178013655154848102028525160304005800702738022779454821207283703370839075563752339974540147602787127652262204726145182694656583375976370815040381582434472673419392805772582203741628936467276031767386000447390249567040664387492777532004477217086595582828483906756324223402555344675584378841101364344411544211637288910346583815482759512804268390261750923228019774496323131471904541301461339515774041221562925308441238072932511343988263740063601085150389926805193699514516743164233915320931926117454639137300069947703034766529182751255410454918007131812524377630238998395373570842960640048102656533490141771197539579064377013015326076873936713039846668620773588369248987660426634646360553471051281145360656683775937591527170264094536690156211302134942011675183536724474437930115258974083019791627360974413963536096317083281011783171550638345501383964167948660041793061707419619604453384588052354738894668613506752771526716253329482715453008310933071560873296994698226473075792708730126584378723277208685949216410782849966976711612988749399181944155885641428085722903291987447741489279656839383554402046510971780986243671994307412081449902239207477076448310088796908714465487733679409389943852660761150117955276966659246264795791120882057574656100073075058740902233878460834365135323548487347708476873198588901241996443312508793501145029488094297266064646456153221612009329836443439933204178381666820807043909987030510600620130438001762099858528278588087254638326361169638775760217681205710370068247746216493604265636916117001892554227847289429373044020810165162560934112317080297488127474623963090409809290434310502639188872572961923308889016990260887484981224475828491727687926055018764361798745491443879567617505724435615330884819045842240655942428417554078062810589590260905112132508151579847923745956952172110036034347813463094636529342214816021286574616143677362091208757212956984523471794111861017967896590004125828524607295661895041955221146040663750350301755442242255675746618828382480974931265987789498511469336501046034232937709196849740692477943482912670766547442527153308013892621404275613252657669948686218833711479616173060147793282851422912598224872330113634563928645286473231742616747051425909898726009991440930318707534111034143720979861895694786713999667144380863563172913082300145386022935100257916024766516207250557773807921193436746842408016920935585996939932347465195795888642897649882874818946469828431472380243853282144192579303750544172945330958471972273539942884372270134826648903651820001193415638476401305699130180949827009590395634500621234759458915731583850487446850987340733756977859728689707381263911467807571983573745710674834067668895534569751197716833404183834496084410085857802772913376557938998216460397066035338637595916497046775141829699253576978726734425750485308786517130015708994138196373056270095946891318863460758183399511956305567158169289526427177594021192654791315662602377652190232269746170537759971257707599401821118410114770292846567589571489463866804942914663011159203484212964619932139302489834620930350948660517712953303290360205904576050492204707220795235096320713037239344667747887558025738906380271921820578406005764260406986140320898761399178387241141620305661501517256751833275507252374378534876330814225927518461579582025532738731424966772347299813023874062954213837499194332754954565816471774249572093187545517123438457176254981495140955274954137886799674781217655735026687516720402662472712329838780078299174622198532193313549935827228009856321740244322496198420837532753186560533138971008634945013728791775217753733209369664505407046597626993591953622685174451271260806517721767553185094426482937179889732861789333628940795004388467214796453730221989962048472402127735127609291966830371372599294464048454339467372941711085185474258266707216522594349000528422697494740090323859772292993623952641347711851611785140001717704478026799978936194318449162526431492398103085141019295245317240799495795317202603136611448699498770383444311153046002115177924848152769646494117701774326948228785697532372878709641783411278712978784464889973003919475696905732528302217038528902969700116320474180550574555707438556948611942762274657034942077523564722306982154507598917403392101916444385956920886874305673721241947965478227875811125886270153069539660292087266397110043368208116068827904933022301953819747892639803019797588047313512009681916260688135307568900908929040857952917992705479156455444759159998768197651802452266607237275099530086320408876128734125161108251404811704916213997455501502567448934157582435932862558748984700620755266634277921857317088943129385263448310939210261468520944646164534625026533616995385061202195762628204917823653064046254503798228715006684177465678690010221627699151068455631043383043745673890346798347900187012593554122205970987680753349473287386353088050948555570054423063871848466142190426590374941782049684183258094517624718359638426800334769188969477127503640521248560733631744279715732759744571082049044952736180026396390064592093502933267475942986798660305789443678554371318329059707084016004707762292652414200048872065696694729299757676567883756358273004377901342972375911708733157353527156994326681365101716889170888455605207493845575611987110753536818124885314700526549228158121614316395972727290442895566665664600176544100214771723980701840881153017303863786094244544869168897689549511288621931606368446341288971155130336794483999898451210324753970579187556765348526797811658533543577204054632510019849020474653678510759764790724273219614275037083007695864118205539816472857074168241046319966281331880399522769622940481347952533265744896748002618301301588695737666120608072108816698913263359800545432873853151083810847167756133852112014512130384006578135759911399855454411353537112671391681469053120060100094040210677065740668943821632585402076826873790855477355152597428051062833855204451400428614782864890566067166071532747646690932696626973748833862469577794085720523585369666630355673257570371509571450568865428308213122284841165657117720022814908154513678084947287484921164743029062816886633195955915142695876799527331846883276513368080945364234779935374829715375679732022670589726688508831805630490617623120698628546990333013901489789046573335225590230173402647665025417876283094480259758773588890222288369552416200935019328777503899661931539066071332716203929451693214708179552167906981342513778986502364751611635670607568052097838098597521761873094998736331389506438382380016251786738371427562548021961892010671678423999005701376609660965317992547761350393075099438914168328841605584741461865681341274729628198386716387877238711928265930325530850065994939762379411063295893908862846816537115810859109535264620205619333867257451516404374401308502985289330607344133542783851061899801264966358029893319645147650272667879657605490662801056177789766170757054558591457757365142634108203384563075418758549851029299560451225562304769693955566055262732360882337060615840520810478370487876885238843062212218997089933412026748675198848285640955432536278756062837892407838688020120247796171054421007508374181309747526174278525955235346841182830675238568797192067095386728244298245007834784015953188268090015583180018458704549566231759803505741156622502918675773073300094029278770667052976711494969811514993420744605174846242033129173125442682301390827261228967048451249107910288353667499522407781252711760061670617731115475317680468007375782137901612120266827335971028640450839220733620847001410338271161519976434023428314948027867256300832416924228037141041174247753127998687611082504445191571957231175707593575607051554556173785156550909545315102430028795601777653373634447216766442560756127452824304822692855622811686808726118929116738256381180342129049420514985062430844412008096755411248061406159775474121361142055554381098061564476649078202574938129432804283861285709423309551834175804266122958381422474362891533602330716772237035182188464776838247365234847585916772335168269566996937530187745569334651078656663672374855920639626199945816788029742406557861336244242270238969007581138899689314047535579372495334360992212481388521938930168076849421404176143117797707760790344871010565848520612768136656418834018786850733686131987285815544419753759162735206433111515788263582337760175714227561257926575956420825839933147034241724276375515280142799031396282246313304498420492927745970721892624719873554403657759617645380382836328293797784716715621207421321773370973339811236143120184594547987894476613191047040202920172885826023342245424618888741494357218195061761968112382047813981667635686066528034538796542733003467547974104939624007792047310880361478375296133409249385884629886246076042731829519817268836669311114787929206698295292757913610754988645246741102308882327442979323884793362959732117555155060512046271711935564363378315056609876589800073178462879943980809078012274712764969998313114330887638151900602349474712932392137376292249810648123014904873738182906538368292588251023236747832659315085905261063759039943518613979828463031850311313218152078505194621894334764619524163333443264483656071253484397025203997101021949999292981368561334215197602987145835757006957468169988195185209028142123932188867286774623174676987874608808092307178927726436008870307156207418733121739712880641182184354446314818654809010000688759976922801448628846860286780229113966132615453307306947594540988323655657691075871900963814386605196826629545483208033337544101937069138531023638335103085128239949917132910238197334072085037309742462688120804959627809061758529370310955855849806870861945839764266553048177149921846219863642815308015743395086820833580236523771710272170937384949397706850096580470419818816525518824145827118749011580994191933377488028179216545111806331646189410997630639183929156369753737341642361989282716213001048670604480394540744015756825596470685763120432073043496140215882631649102431537284341050272746484585690764362741857076601755780339892285861664141008505634795910010984252454894736007460686464077243739838677952551683077681917825399231342082956609751647250868900175402743510974106992623283713460205579433637826932911745818060242220770164281342463263924451536761170181131928989034428864320973080682654010347125155706263391303653787567809055780642325617664029550239972219993217739462211017869259921362572979684020699156755403422190842901774518356364515723527071160693170009237818772192400802300610722619795013518895376371093431675957167978521969851877226514170130439490772697447350197096173243571476463687395409977929332302459998389770205549087757014266054890506992609464009289945433612219505284188930640374014626997505217345023511977018679036525531526347166436769595189305367129694417875506608657261465832038712982527279597023987752345352270950823974301626325176852564839224255713683741150228176381172400770474849401869284493819948303201595962726027615797582443690828694412377765756109084718954520891952640341304419760757724098166775800165681361740398867593572568487344876942365756329992074601361421497825015715784469648032252248692878271147360013894059197591624649418176918135510669073246335807399809859117024618807132597733265833608213287364537940036270844467008628873889653466856050234049395193691985376567989052623527830104997404500287860817736177390548719696242258944567142465550838569726940170085871346736594419001756069414424126630400138412241294963276258386375297425024733322164948043956014777322443298582202257364232005310256106966051581120496034864966095110624781765694729147986848695812226736773524262169010372867284991626190795348116856274331247973357088255907960703258185344493653302941241558805598185995242152880622753485085833145640785094024085397260595941303742087290105323779198281612609767876715193853208930346036187385140485654760896124412678837265436883030844749891717928975244134574266862424440945798551637039951050618483421077146916750651870902871086841825807205328611425527685461519271460873193962946515097355385910371830631788902488721586429490852039479931545818958516511611692568503842422655276355885102454182651334268656273986966846306308543647811218525963367731659219214285394813767226608842808391716351036661572256659231786103726483481592473225994883234487354045736623540058782853029125178979261838652485987093778182325474822242583530934597218900131234326228885817642834011216856773558901679328891043242415709029236613217629205758876655288357647670583966271973065860966752750148988586778172325664288466432675654520520904422163150941536390435815316035081517342932235047537707741250183577179602406388358881902164826016985491890923394956035068743016860067112124303714970439847491299811262903292753967023257149379337375156863950016454076304155229822386574699465406904215806190182175437573611443291489230128394914402778241929499908080058434202059054457665523500606554574151749307993657931455328574672066096672814265405730081466849809137070389471368366356239276152295031456177355220938878554559476865173703983232117822517374720208393491389084679386019883305209010747979322289159331422747169550970052307291827364927947130322293573665351941693725419933457279657417393796131005578330811237070024246488500540557969405576153864740320115523468310264946121704704822861006795760869940242999061148852520338906670760878861496979399848612750082764748989573321419420380405082795993697402400749642016756885699042151019883554688291368488480657343551643188820609208141254625329124539021584545008984355753877563848155798159892442264032690014721532838693268525218743332504150293742527399869204218042545228958409965304071078222914431080407366742063918414379254997716344427613792435147191435324650500543257747067975624551876528777375177402068835389508308285241085700584418875980916995048979315263469531427259621977938830279412242245873920098295728180096717289369864714134085060741613823021535515622048044871072339272021394006496807595847249180117648617067070211904236080168286455647284440796137748452310868170844228351133292234611816886743434283829673578248204985493718477099045741947798466689339133812753524726074682045082133118561649087512538539616461804456163576332135922696787634116644177327906635359597541847110441123909926788039924351004733310790799902677193481090832835884864289545523906043859308284567064122446721146119143522030272604291147194351924077369820585827103339185990419798893653917028255742404567543182038535309748098664900879801782877086832876369569720990590489891329967247632141940744415513123184614065377174000397252714522573419173789874759202111289492445364718730191199814405359057489521398432752493905562192042208722515301481839147253467721203367658523464064825233816439706074254672064576059615634847865714956963731661047562612775674945156180247459488422906689487653922536712164191721811047675174999529266476251634015340122533281765866915177452171629815790085010054569186788865754969766536325946026546999099866362752352779452544672722571810457575811018728209637395689504593775815657618557782276267737263764329859699641674747120388039271983304788805334003288758334785781755306793025264111525265155572361031247282516343814554725896726745838945608796094133985260467306191492723698729354527014385034516518389950726137102364626907678998297308217625155340513074140997504903065610008759626621449630515411122208530133271364231271060638020285073090169289966602094743618356970425050796789987134514127126871047178434712185500796447066264589596144580245838768660848574756393373855031913646563781308061679274857084951672505584123389944713753704149565872705131956875200954809299438975493902086641534593198700904194576707516879753015618223514791734267399362161078713924460254416266239047740890801858952447031096761703799558306029354551694298153265635234682847378894166329787061836001473339962681382732709837718377898908320395328791322461741053725553692935351285826545591367523090541030567757562853715216334917722061951965441311009234662616528699365878400984681547020443104704497327481522525198508737978801465840205817628020097907835080771372689061613918228868596543305563034078022260751115220136955814172513175378712925367863262188952879213895024509447490627082062969888368013925662621861975060162895296201489098702823166697340782779774345828863113645648647438968122592119729692841702356018265097351376184022339196537168885425363876639827173490393226520982729200589336420663246282804080700149685443992909442721836528466701958156494058819565090274001638081073236724870048125503600492561676560929824488540486443491285829250248121264743469420122267235059610962096827021714886881433364028016837810415601201516387369936126262062540517478972856195984401888551143026175896645011289896001437577082579378768616918738762093691426597332014657874930404499778810500409182021135928999928004638598457824024035791184070854838846146376668245804705570819198200247590460801965440308851107635371024007620237434309315623033922106173191402558038633803623622215652364682461724624123235755469539054874325762787341692945506336641030100230480240785809651041105139644170013292334861589738722931072439302083440170546012478777594811019908746636984282768477275275666572047528683548577710287170056319448966244263913287478870658949730175128514835377140031301491094299614833695142899888391139588359640925453190050809515401231437631821510383785131314407617120347221431200266026037496619543592277369503964177884883220594023569708727434328484936103485265848490187635431248482337105931378428765395865940650816476362410143019563436411268683250362742009410196572887932238906457344960289616265498514578664615645081797036681649665710081433702777943097488281884663724574087500552601126795901983493347733824656205831831515290546128243211313792913694533491142908890404570339591245977798323791358565084265052120945047599245927285401430823107888696033208296325088617612547175144203285094119948744097929048708422561233631632013110966455966056926638310191993357782424308840750134032285794622925378700981404394738017461992852285958100584944842398940937028556193889622591579038179945688091880017225427021818387257667551779029971983298227628960309731270542880913695453604247763853260345459823555249310284583661401029563451352925328004148123101760617096279061405930602391773045742947137306281508590391713203805250982229560997408497087278509496477125148672489684013620304512299404576493462927474230349693096629435333104140550508386299810403770633016101946812008442019310492542758323798088465971609875563110062565459717171912050837356870936558765032867640199747036913074002866351369970741685238209918453491545840915085597105893035632480160310405619304844634370254506752436925008879705060222606216313259572744851486394286970704404254186380479900113581411961533923432004201367593418950957145394073989517768149419436719398508599085485681100724545925150359340046817406447767471257844632741396702951430532665921836094713933473108466091771802754310153335954807621076765126238777388541518134593249136433237046886385370082822900032607139218615977289963994630346629560111565371982727188173796772978906853210008944459276830408434485362205115884362525421088395391870202936563686941850145022319021276155249281498875108987500305335385251063713419138593689652978058579965481857697932937527039065384512331195514170824659130123255003379540591842513929645223802141113011600510931449245611110052086528840801135785094119010995862965540385709515727546083030866173436351381493987116362679053397072156823692696355904870021254523162939954734286290360621316759089495046450544912221858530891132195024266713288374428390693610014724207119537039714269717109074066297665152913961277930290429597321458258392338343396809710174483979978365124047775671584690945650030397429113329048164040781228209383755653011571241268745201509695256202966459815014086846426819002514088436599517377028183274814443330630475488624823854904744865179084558319910109808799380207120616336246542317951965050576149310684901051359475677552648750213720223209706035039074803523081204315460941424747223898092712737184936334244118873959087694725300302116075158522575020988743102999823672833742783959396065176121189475024588664874876775701368109307459594488540155553307753433761030566128213450219662863565914243902009836566396539754599733605898802425207994193798038194985796274766045941906012890225508883195779014044657737863393943172982352767617801233795620183233485006212479969671740904062903482048811870316777474948485221720943662583492824332586584168250969419944278984039310297380391989202930757140010345561758654362618130240057578129178458945371955752439770992188650039963052022184853111128512633401008945453867946070196409542240452018854568607505387698517144665858574453022551076047083400943845774733818840225971702014480078733960491412912880919082571323587263365950851026937374521198354552326929933209699408768444268951575680393474906483468076177638051696199539874254193304930313760839361871802437965391435928673240281127972646521968824156932395596970874393191892642105230872151747607132272705254679858074849604389469033307174296728582223473429229931144513132399271299976991010173051060297308626470457307407039413872100767675257345228574748614571324568998027961612134743138807023900866353878063986474340167097390742677297147934288356942840646494857465635642700691945858398668710750808995429371114451513508184669349837306186270925554951153570574344186883521473394639369549324155783886934038454618118854997559124892871448797722005049018204399284219497644739509357331405684303358235089668701116373554428389920652013395470673874309700981651319255408988515186779563919245118516016925388230152313307825014080963628562263570004073375852642092921968440770342567082088287446223291478430096617220337300688796383202093299862835316415777713763575856002260240556131342039968484121608609703846379388694411334382193331159662232342269105695375483437325281774073944523900144947681878686071844817666221903641834876453416845858051142335833151182148560386723588676947648575828594409268023151633588874677953048235130286102061673882806852444346915043198481469015998087866479966835091844275888281394003824385109027731450044476250909570451804749490841354694012742373823687131748249505320071855509810411096424562051283639601495293300669700187242440035910271979552315498140425079907902114505795151213331255436003992022053004009219920888206188121079064464127785064237020677433235923426572936303644433193679407404589187501482868933564971147431236245679245487767036388480602344378729105915872833008166467530192139551082952931113429370475657296605927559956764882143280903383820347174768361785589945426745719401261748554792770818487600613672335171805908893396010607427484454257494630615460418555484925862140054302708110349136245742454890264208878462990780720785587781632421908664245489951252628629983406894869832525153337757213040040559562796215919566078644329435370878464952415516350918178909622797577627652707992855137614074472787414982364388441997307021094487789499648318532246711059785990828203362896196742895744601727547449130408033976625182714557514659930577445270382648908677322985273398788350086588023066564057442662052441562732572594863063210872859599541084675184178638880422924091495597788806163629494743814372921912570467276031857764917627587072452234906626644711161096019879565164327385399323395713971087940318105428478648751298671550893755286280706689432411306418779594687922947337081837075345981519431294248064831639151931415299725862016789404268639096692634203465959711456636668701149239534513802614731411775422735376869017199614687823610585212154628419988243381874282506238655294450670024939604672051165202111328769025844911426468864584918208730962752523538370071129155304973157411043494204825818907732581938176740519937264829494435115081602118385647273302955905254005240542678428959410705854984758253609137328418300431099998053757588045299317733882017873076178367389579712205886571808564518314188978221309011059600873817409250454389849813137228847845687740212634477989346201887619423330163323958954988660857830428632253631327650507866233739311845893784891635504559105632163153854391727175344148284252934172604756209541785786280112208517046334511805287900265673926727321853732993384196297167039060842817529924212409245279849365793973850279974641477841952532370816346128431608714931264827317571169032462112541432195928912160954209128639816930736349920815976195394513441835963801808651554284283874666989448171301673784926320028338534179401594800352752347378538991211042842012745716931414605031775066720999155996752944023768989737800301320197026019994084081416241273412112907026792288801050398891440147874389035132680092479631312929951836701183621668517415783949770957288865941410571221289616316683823462235645527524892297542839121321480898505062308818741712473775122787176640141076097006117315768896973978082474908827011664551580372701691302414363827141391431395819103072107258485318496001578588105521397934399571724532738822677218218260890111264245694172155099586392134996562848676565493459926276142808305917343375442760172177069545661964439198256322328046518036170466158617468219084041073654946512623599329480367879676741750244609396364334949923996982500441877011526079492625954990149349100584895107503685790641281296792095405050586437635292262795344089043279431228115640997716009482709259332016590338800633546055716205086039354437152765473716640064527670363946468571149975182449435080361558220059196398289176175901959936788327687757220677946895502358681410632613506925355799979698261045560720665579264538363587715290903244093789266722408945629892326660428670590830208650643073230860927069403155104009088617378611464373902679104964221728690896458120147091968667195740753282577400313193033407977712403357297083281176089632352809062931475400137861497521700840180489244538716286298794370788502206492219183129854421716004406722387006796208777857730796673136522423974956297413732138869343123141264928897537040391438853094194823472575735750821316069782073045675127181958992257814735015649379852115991220119313633718837343269190387394083474088078086189332033400385414262040021702263061410630019235519931244256687780184140438933944399639838691673972684861936541814118106188190751673697489191843082676996183656723026854693772915493298098118971970391538782232879661183002807925128393313356349909409245564150938746226525435127480888935421309064878341350156408210376835234410901382704512860701564792187491025047343533816877214484267507457538714632845214581222129023537342403169026775335909723238766137608162744212822315004117733370209368001116796979901900224218587988138018417644350761529007258024803071704023650976871381813577466975515682076926854433890436487235458499432315670026367053013938262779334569318896185801814120127200531110912753143764316441627498244193079035151544114394212947869972343165844994372468298583112340891526606128575981096016536422398562162486026465449435036898797278359737367677720511255924142433282494663877515948249254444090165237051910869705980256791572089109415003546527651586810435383910409166538408969032747233653254559676949231462955491241056518652783127314549712863325916884736054320111630614931164750169187104455343210114753961201208960047733657801249327284898816064811834060289109446871456536589487185184094242085873474848354631719129086038143178607737567774530686440616050130957351927054720997409455631745106508378423202629259510271673285497274664959247904141485485532102174268226769714083772306196937165905373082776026245730573003640678566533844269943377623681056037248229778233542764125763361976204158438298288398524594050980199087357617427535594293618100575578912413864144017709228064452157607498045690171274563549669522250009992878979702243747512373136216548404065770308687138106952388299840174073471880548564754530657139636842830222403546568985999306640609600912690393190367092809100830079806602403635660462697891253014446621534258190069078961865789953041146492589111239341081814597289879352060072770102750164195638945308662393856300864079274440286790300292895458117215454454239477051401777562476113552327882671639555348073884563129695427650551147926548304501867524481320928319785021811033057511255663546375578850635880147564460998310529271693156912992014854282377894972180827467722897460149517634778467447580636254563127497444008601521788496795258516809406810251627224472481218876181688583608918256837247807592239605732556960070089270696136209523577764005038517235502960095380899309314895661781399725910315851517094094247223956983919930357720881142204612955980697580386000108218817807262559692379544640055874870301749740329251835844503963082013701173567857447872489896937671738609308473927109966910485511874435576456709796910249656362129258021631686962457032278008098039741990267466671825086991187916970686138597010865168490060053429721276199192143233298530095336534910545039865156845283723607119004790855922050943002319376248743364198085167512283144448338418194394896682537312261988998105764564465732317659800343178206124814158269887130960707360230165395896568412297078793845953273414060034573566399173670224193114874778717929588242461542648440231660856141863257511201729452828189160338194109138724129334533784082750277047079723902605239635326234091925935664530132114589459582406242336530005894497404181100218915838857388322719659651893777139471929268028016446295517117896679323487013303824175463090094174617128392002832884967704843831268007540081086325336873521483798433639630896605902184263327604937988076349305519560640016920595705289184782487158548817582554953247145975636680310741511310071574676856358913225373403646609198973867476729842727312949019759991856648100929539977731315621423262333654301499358946955660172780810026790483387567855927866782806435920187624155610096967896004281597178239466594716340415348287566424621846290283691076499542294539462720149768055760412495157795845028716295955048947936335315967407117228756405663448983724395433695468548614299098748417371902650169103859641465841684312512180004760684327729727154080476175193594240985678942921723041309304341414482462153689977684647284669386356056791824948248265226586529601531913024606672042331698901430854231904042058210855484024388278804515491955340817220403288670536051889729733629668265642882835992680494576865266356346234776842597543139766889531335456899808075078122549161359495862070748415012854660200969927122982052771049132626905253731689423598845890559708659500230855762031462272601937333937933761767047316024828205858612992924256516235525754447920135562732650990782743597533784431251865189182305678874419726381745676035520120812463134910464957664702832121846761534321687733138039595702671940968584013266992632589191431970571841415584866030203845281511178182254522252506953258128767293042521191462068072708974377119721992704678026744361452958441767089391521502579447705731669145260041009586935257467256854989313752147636142348315837378083892457224951372126342960928651110811857296953425062064650498589007973424170150685790893476411370999950445517339671131936108770586420214485233313412943473237386488149436661203886133916239810867985015394139748374521122094088949487908448896333480265895096386327760652257014033392711803172730196079009130683920364138689553904604091508880602043762452435282989068930730071898503898700682068238622265776769691614672279300696315424183979021721436871058427538349672622817362492064849308021220236847106857194090285721808643962822597928708638119242702069976796686113388615716238849514846562117365518127323877802017152986340203443542068585644158401273900459141115437460890881730428121113262961343253153925992858189085201572388313103312946443032436808800397995355201029129567044511754884460486719491827614500918759560402462780493604400128026929927263768145566822167801058122462233086279528117693429671997336088121429174303466630170693803089602356086043600881610617429339826935261158473564863643175846793678652153731943606672173478327793750200701842611056413050584456421781420598726997607655179933812402069656044512359646933913489237643495858717218740578370185445181709861909223205523961955578206416637579219529959290284750721044501575262718109240690512423190176436759546839021137200447642210109180157400532933914292700109759523464086748718161195018383398202250274083030097884561426080474964005798519679876985047202435849841464000435844019767898550265509589854138865663233917192904581581789408118968172981696063025224804194700449361039015480732087550174534603400992866287555862383575379283346077937421945234499944156326327612889094808790819859251147380435777687330178315283044692806596335232761334040894498494929248368878286547121128625467134295857780705185300460561501089524791632085488650559656673883433817562908302563393782560952936283801341173082965144101105009541058446388790244772761688866880038929655197809089718472901642351341911087287991404913050223043607794967366298868950470866227848359354923104026973266439056290540845740624632690798355915624097903517966997095941951687568485046913528863173850106353764141167379358808952338907970626473368740308262528311469761172001704064784929063562359822302769154783327232764597997647704072744277210306788846839872043822923218566987144686887130180747603766611134804905479358278182958077329789951435569371569838825782271873427070410074451107330303483702675235243661275819691866086622078296349517613524887252666025376121553076324862272956230385240164941843788556303785020041063415478309647167143623119607212111892244582221431275431558743150411651035643258589873203287480330752093476246694163141897658580740153252052643678597848656684695815090327526754466719117097040548954230395222731547629676659914007732248566274143270933609713024191262781605248744716086009384297848697622616145743325080834653395201942985671132045827129303354188545973548841122451544680982693786831448466871785414933668745042241536565691514550008277035240497018171336006165738696454453181309621537022896446253000309596786307122371430559385688253973077813730720140663494101498809675817101505079876291156885656996180801411437978346982865021399563597232542855018223155536948952872821378793346886962749114216181202507688231825829473533405571622792008728463669550621579593958131558749916260522276975499511292036985744654018523717792816540722993288896293335863995751188545901316915056719364001912663077942284914344544085048110968304858583858018439422784271537229135849905391341883874394489265987652544390510932050543721676268073632590003666813039250454029788105884714200747078376946105878137765061373354857595057933113132344603639879286346750913830015789143901074446427686491314163252847027740200319879381698245146536899852013283326443226018424901349288336611266270660003320987796641131805255769796677577830100975834337884158768903885586388884223306806485198369225639955903907295870795044309892075875908834425869646048590590173609655062594451388790671167659810489183914428356964185868310552207242656094273263150594301376403279925168417594325956228016239199609891219175276652800226406056286901073727495427097560962362421671760869418920927260168092104166047224613827339044889594857956191170059339329935196197941458212178752804384322644325068202641952820940949986472708510404703624589198971023409219061188623225940841530489847606413091927068485305907220201293908933510939874254377555509226517219065952254970723280800670117216481913841754668124490820477515595906137375134865341656185621163953989274962797700058155003305608879292545582243874860031806957496479184410356581922696064312334869057170964621298959602285154671169352482394858043450447984870799854602852508209590207875893642309038710522435358770073258426018438153497440290169393522125581684612106094527115468209983935489370929034073260364859488783217797668888676970299346354354724132340413598520241031022871400690048207979503190195728583889231944163615274013061160834800541948828831469026283903419073122306355298567960114703901253637884085928848095264053513222521259735429623448200788550308760933453534345287204154979406515458329940641660183130648797856835140331604769308511196388105805109647342687912124219461937333525686396022301191443406073226560064355311307340427517992776549048750855781461893434297444072419838902558322764584726121701647102970900328150784829723994679190891763943882377591046770518707388492279279593950273713437526017287735295108278057073058835392033033963962267367763589799346867596299374828679401328190965116061589252198875744615140089879511082311484084371318461812188999052459871505529452456670811142960314033868434446819955990682802436653492703667770867614965079380391239348943020266742888014688018788714027620204858284797639201657815096175353330024830298161781197129955503756252520079944323806408080045458046553834606839696277373104908225404352816126096345919848726554309325853823915494020552382959209724027056741778659769299169179272448685951581835293366563848573140723977239954162105093085620332258728198739163593589284667660443854503679953202631061298478955061706921556133664142241103716533358270071779702728980368928867375360025467992080700445708108648830932113240383780112952958534186239406989532279510690024046732285657100890770987486856550526297253941326824656138364793474914884461241796089841362110660194038904080923330871391303348426224944513745716715537412571861446830612047866604475382209801365633861213847480099121065922738107873167367309123484040799744691982192142343941600504012750426785568243953577510584120590861467317682595958353607984049217625848498605022282468282049653830675566182249915164407766812194265983354803070433672361909912207165665611958942123434901581221338076183295536620482055940793346132323765713132521159459519454343736862142788012653520175778580352685326671293832794742632233178156481391189122544897291932824188293879171911646543779871508185929232026591911794543490497341623131351405857872034882808367051583360309803495158310323366031908692861067132276164956215322662277267569449961389109419098036267546832524836270618096142729102540348317813785700557368554996735554592343290955455827304656703618292553997179932692118163501956217232790247822925363263278891492397912669344701062421324026020836804343333881179836194675799933562579888934720499226207712147058712284858760603051976244167529308992711204432640739328085989534258974518394769302624923949352041348668160040105649620811598718896901138441943145302606892480059030695182837317304102905053296519654807079062456497954739072291956763459698256443951274197526132485460938088564776557117375530267290805740346731278407749402927045313741618681353054076904219806817210543100793251029205587778982668267963858324584980162822453484286411529294486726405513101854116197016906806670991413494834983323111343210705222701107840955933420334372409704116621790515151307131505161222620435413942435566302053536408573821172445506218990716132453261401915160729221217849264009004919920451703651338171013559605766815754651581486283780208373892639914516576624655822491795888275485927026843906168095376937469307051411553929567353010157213377881255746450221274326449949434111234599394100594569992718705323359242258093191957488005866367889032705683628583477708807556789822201136847153381856611789112850946908848747075104547495762215073106318416435523683968015970901516711207744740858133283620905320742128991032991970843386926779962871459185557845548838603985043261842227408415626338870352011229441129357215759158830903624292907138365471981973214662322432093276447314835474717136998114513530978590747305046271732834220548413090494095992274473352224432392962902266205654338115297119075681222075351517220647167150391386613603196149745569288720804432354235300699435326408136172999362401728470212280304079714702013055112045309008581212995397383646167054078861191116534356628245112614110365059818389857522869665070367198168236766825686098826264406355481910742282997268218882904917838993206320613773300166803777044396140695206564659143043819636809471851658718513340144679589887580502956396988834060023101546832580522539518132172102755800048380387398425690799917532544861374394459511475498890210741499209325375411045197164285010390254639195622481496629369912975464483683862448263947768860120534958982985302557971338230080039260201317481402338830498764455474974742834630053895634566681588490198829383859795147805090741261757795459267960134467898569318873857293472689544553922962650982452708535739882199239802214098033741417762673778437843021409119856464889643588573319752106990278970404630005686795352317821352640811108980280215394572507817697657405811341004820685279150652126853212627214849414792200812414854588905614920452455560887371514982796947168184737478018615048695125021775205093018992565160781210927539509732474821468623493257735870798741239001814618400345407359594362440608888252532754356623858171101269433097811053607623429869520495285825128994725498804036809581786972322071200564598316015510369748387075467126264771997491981874522529932643541228911571157762173738232776528013827260713693708420962463718603681218090892881990841875422455072318843627593846358223354969128584032567496684703744030121170085372056098292817435490024086127163685426559694068697214669797638762565874028108615838168354049555994374188847909185452797715992111669177263829965516758850736225379550930750781786629925039829013676524345115023096673074517394511435971496319893217763342556129919890486056141158049234632130272710727242134683026196910532657890404135790252049340520220874460530758447063609970118408573398455961128457770826365059901661628013738821417423481552207455370520814647215548342689458006150904771395194354562047648052847783364391430306675420915929330569697478527944466615731332587846468911248585648534584855130406384086450363550722780112011419303980250371929721003863672917341428692651689722680824714738502197728624885700093075023056280777289294641406711759917857456720437726251342465674738200949554729938668592290301703874522135018469529296636373331370893144820738533745395466926109884326607413241263925233905214254628268736709608240486554139311188568508201254311561942536943604365181376950101544306072189760067285411250777993447722495843197428655305090998559860068955699449717202651186569717736824618622209001334078475163277408952298204963656069280224751094152557972329224908701737499386991929701174890092614745524095051889765528552663147366739693970225976250077883463469420239381697168737571630315494381865289226934186362423969481838460209920400163812087486995594566745065346154194558683545654239975156022581094739475204555111403777433324295500154853325512640006731212590365955585451134251282838227568047266900700186232113570179577932737611019575961018899338812040685930194787321409701506756290821226249472510103335428732776351209768169364877837515185449988636318695156596358062455448394686738221421686460285185049165107228458414355361697926877557161383250015662685651357782036790128774840850372855721788898021008817962363373241491016111649360582150100228048906676318123235932079851095153075807726968621329178749057578272250417375400136675843188765221448724427459324573945104693523983539898114862066962003456677093606058441836858468727129498407204309775005893425213998755132015321782680661267372727695426843181070517453556856201169830586921719996885551608610404404607100700236928364091975951469948315012237198738942920458246893348145902425047221666456845626352459132359792577125046295787724689146761351054234169684669501963873679763184999357429223292486015405048693162907335857420625256322471884532734187437087548807268744956079090638907851781061885733840806027886180595034715176998134433694737519178847944867540318664236303452274336194223266717355132442298384711700582401275515516177712716589371473227216044878149051729795275220343121176227177891606145868504698875400775507302886622796606103134775415860535639179523902568353524957126800495514819013427233392564346060744279167408643792793322065361613168839166804128869640936221043214785520508230209529931014424338329788059856550772735090969533285354617004175719911317503315262165902336554137566577615690797858665089548333149517903184419895081777924164578028336670657518525347019641213800702382491450369946721958245652412770506380199320915110856688058801706209109226829427039844340464597621281635658349934883947992567385053035873750025663090311367355544019579868297941374076610782573496040700133419551408727004690837826690040185342566296009410229879378590366468624837907443266000902845056437808552864240461886290707676295391306655476312789207164160302353057882876830079048649733368944410747405549679372497567682429428905210555716087491846636300108450147755295018442985366115372287010670092282988268580473369127933995273814089318985298561060615417594338971489348079189461598664942617318020747259641358740316365536364604052040190543290868712424874942230484276860304459290764515437597545701366120708026706717792389205528856789686158536349578496238218373256261305893532271598054736772749331055627501982079766146437260735396672522312220011191488932223165959565879843746120854778380152588079747252379061244257902752556542619062015169316698157872252802299953039024979909041680960267137631052213499245851594671131242128848280688511322781151707810836625061728794488673812697084944343947003940400403991129571152383306806776277425231376790668629068523620740361946232102491929525654126386556439633347457288761644570143073484695454815798955807517571571036980739072919613739798349682088956287695151647059089434219638118406838015356342050667301176324614559443334706864752462048520026812934579190660946557763023373160214659832113048211157645165234132342524231119234225730262475015083661013679791446675751700320648495964384132895035985142283022419114622874039152469784853954110355301200960063197896968211668896455904044804384433756330362126677538855091723073141008852472569145054636430353320742187025679967529104697839657861079093679954704312431846881909073704963529305549327548673118151991580674669751513408880586851138010200101865017791457917606249493916171727255165420937838375902886910035280020465003371366407846214963383422120797440975222961994701517902094001581482058527697964863168501928057582832634990998398113428607694000453544215922027852164872442629793284704194333056318303986144905984606113557134390098689152408115127652956360350428508394809199512283920629275034810779738452017887058585936550339221059641949395116622143739012828281196992781130321018074990262914889275395928154518346373527240254017255346064540078760062387575205851008015539976796743179348225202466070659999172080057068968634785786218877334552299810522054759742514274253432807818868792733801124316097813321500269292114501744079830774888211842179017131343473670982871093489619590670294114381688381691938893882659820437877447739214944511670313556755382457638480979660820657396125122231994640400020957373067375576428629636380814794293449017213941544184512723051418245939457164982083457646482012033255614672872231386966500102419225893135768495657306874421980008649380904828316172967457902282595667928359283583275062023246048806291206217501151592819368364178494231876635026809402401054873823824472291671581278217929304291405266539777112475334301520821812641380143810485671437941607486549228845374130804807381410682456237086413117813282853643598992771090324980642668123473247085602195448788168152834915622267092010341108060324493656975951878731362952158926364113177596263551953455048380988963748155202256773248681328184973050888737306565489644686301684419440830143015660128214570931688829177089292489543664042707353842370601046830134428822729234220051851932664468454561461361031343654103694621697338856806820802770382519873962570148510604090655606064825032319591495050452629110580063949167472352240586722294631011984525196669202107367054906643298359630071626972523742387245351343557688394226081634237094968849740206841060331434252286143780645167243555765963871020908452928973447949961933031087017129708100945206127740649266764507232500285920799544607519882607718732795227512934879779079066338102047576499702819504110056151207275759817121330032371103180119596276010669785490260913487356521831373571023545970762839263808418487769641059672831196837611472700549359349846039053631411372370952588382574807944986742456636040705012267791626095115701420839151741674073074987168955719458886888070292450207777901177756127812898774422138141387365954723012183143305088087830986041896096727385389004831176025514869540324907137545473658485671059477438643723961483502110341097339461680800972834549302761298162389761182841901104856444852922575501509098323696704099813446634268525104814427071786780059242151839966902514216519759671033257545152550830203571210478949330084747055811235753336267393471780243345024093915741463307926771844763198304075393032900109932625089886650340920631538845349800988588118798959868741983110133192286493840145043699902331722668008545496218538079339010450216881429327571749987405073383355111292434247138332625947389152882538917377860993897077187102128970321590389337534504100168827398809956019119799474995554708656724882466062684325079452161859369451251723572331439255545204262760878219305703310492116837951076593238140791511531507345895600204867451146295638880986148982048820753171218079579044882947798114151577388923723923007745287997401308702553427783932443927093433128271236810774756421270325985384902892593511606144479612455222190722776103074617215646697965591532656290388696624122677553063811751486564860347994492403382896065299230601530481245518305733004796767815680743387397700883325369977806781382730375613874126356713924485559912755739849441472534223100171153857039268670879529793966975503711717325312814084353230016676184126812695333932485069428985007238507965990385464885126138072854728427841677290760894503868916351358110779963493692601934374347894493981219508080806609149776201891696600061871835851375089614605955451326889048566092644065785621385747488829875236619991194472571488255228686075214203092896130789281552006865854708231496044930924613345011521450615150989361934271582874541361838308814261844203161697232339540087937639793493887844665515184578379342903373116157763866022054708034232628994276746644687078782389081282077425364231632481980329668968295499092343081838413890858547784722887705795442234592408889622692702345797249263455475851068848027021766333793864324970495671517058408476099634089391847330842861145113015964320140336071069317220099852302877335140359590465491436311594981087772873884907635346311958308774348544465811662923367184163705934842586280681726777055871063125523094232906568941975459349877429277315585121686582729921213946090821762376676052715660299666485853347076407087058197516382077782431027118248183222910959762579745659843532742163094776270052273597608667648754129681514312248241165403519110435744908015108092781794131264816615041233918687529266992666209588237651993279110080421292471333889663708402607349173098442672768403440686824096009220925812295951522473061409791456713656142411316034076090943552318122940374502089627852094720837287802877938968980666280516097380389953291588107491693404206898316493916384829498026912519113596023301948871874905820457740544528182651003909573196637031028093700497951438990504684208695485949406886824139656315386810202851974209353657184248151244642924476101632880978765024767927211179149653131975622386194345446308781293049864255987716333914928835347758853337141692368272298428196991146336594752316836599342972581169995108891258565542572939905206609821527587584837961629396518659363441715474237729967452902190228665550649004895208196738150486587639532426443619118299280561274985688483597077511558036783438908262941399762302410240096879163512219195633327945618421842303538225714323095183116455632598545570579185852531953040282165732950769494998387600550771541656001580239960490267977486125256796969646904712918362266891708154805664346951272068985370288311740826800933947907707457589786382882299211315411157406546396932145528065059545304669263389119464594885159851645242639583776464983689834370697473145902945061385933645920323006415248553994803377918586490627696080376836768250581858547358483219374602535727548845804515062379370401768621499879449209670941958204651523073069384299334321404087314061745034750497697513521183539126331028720268733674106958471271636964305330087319305752977825034508801812552217041324967218215921099703313490983224277230336659334906843692845220011295859471697388867573591673055923423690880519728517374322605500082974755040703304244282213402677746551820891682449371693900877390938804117795764714484330050414813276027302523739227538325233705927213178155538313596870389665917320475039864337891913792513428507901519592948265923427824514257268093581063944396911232606791363488112123706945432535642635691560215530193464314941816903523862705263514548543602591795108811972303383379950386726273812437249946924257419094000891265708652470654701159329274556748613223348640836508731808627820161255481185990667506766175140932160325350600287429117557248575085212240583463013567933880043463752412616027001849035393029202223669407979155912045814440099095937793142099099688058115641741112634406588798402519614197051833360110127747339747058372204022360298858767847182364756352531608113509719746857878978364925081423299165419299661978533897509240805144402568977269690966272913951764119987463482949855534113629857523139234009218205513846832094497628595192337142866526959673379877504052716355715607525138016337515179276471826296664067222697527581442684426266417642344553704474516002331096685966629439111802629695510033508056188117911413376147317468141985660267163206993144414780551447405012408389399366072758051124597756547844457749288153167908554732071712814786809122263885246036660387548279044783158710503316869214890481609887015405825339821945285709173290342020415679886442500025395539768425291622010700672170376093646044113765083893796746603117836894186567539073743557234119070802298737502575477110533180300115348285964309813093035761004053312631361010530766881924492120741143696269976755385626880303219465677819715322089102676776115519287738130662638470158090780540386605070673472059272135967302298973585962033127668767726486612067648488255831329992525533132115248010433951223092838570533455084121945308043296738326754646350094891140620688727644376776180303010858290798307270472496032064879880506843644149486706385310026869111207046501534382538255439949390815216570937294912037529604081893743919580615886966180330845651062165644667930385605062732908980387171990342984458612034357950536438231859850508598678991865901275078182989092115572829515375065219599473118347623891575704685073763365592625852444635181765763101585830411341173815606686757294548130965148096590450621148430871926374295562970140165063417967529356995583004588403907831179975319070830986856533562386370687367789579544136893593369231219713349418980206110391485971301539634054425928325563301460367018461393691523573279591439398235105215217929411657557191323522299299632619772759635961815493468313025878304340185492884777812468776198913883819621418941599906465652817129152559258440101876693179920090029151951797471256877785289868754387795433741345676521449616878184036016252337054257287843114862948504120184323168109904587807976422316613982895733392427247923341445229350969046251078527798570549249798975417688893522851099332053131493963789778795417638301288878895225579516765879410132913921875436788004305936052702015136943384177257284312782232889466553805306970599549224399251087712239828940863585241479503616230079066910487501387401254966822283670728648094515905858454569108015444220437640447719352453813458586302187429941089433536942218372640719312251139639391046015046973256644361619156377161822149646625265139205416568293619991739688048307008559034095695244678037482193459629386660686574406893070437574455219377922403623648446212243886945570876396271767367284906568268018620211122097236405524372764924479851665579293305515018179638204134612755527156277727976190077621227867148117032676657411212335834316743841229576980727938443649047469254021186572638577359439202337434898588799256410965904102209831184563839080441211156504828564830832642511487583651457901703262910399267844947008331080856742145817490904365102927381027653757186531791272686249007976339723180546664855580617027460808137143014087366365708305385470853123810692053675821779579774441521089593438870019622384993684702222873832510866440299367384437555317374788476420411465238517127080319662852602943485282134849961236068592104300150045792823466996600546417906728967389271700622571391626802610975768337634451443778793231289735869993143579348910683977040397980712524786269358791370226299502721113691564220786726271826891175460414853848679707358061474835335115363201108589950445370217414701462910738939027457587145233418799053162723903837223334209194901067292504132200626497358393100530104447196468152148144872644168589471639183917242001885949620467157221817070333063213999132307496522540770895800232028116804894550949681009716280900978509483372737942465774026141629622828834128850312133467125160730961381150813089755401578753291616656782650543208556278350605494224793529284050961637319475247138942430978494450176980143735967150627714795890681103655518018193371579891322493546141637845843123533751916505445939057555247483039223261388945889347134365792617256401417346384275017085036771811352376642039252638745470202333776561028273472563318451449397231116072077577010738540405592866065173870164578965765833343974081237427004750199791430810787141149054979728158926184889964880799626227746991033842689962188896981911692441162228725488193017916591510202865782573055321901812566921204294643971107256517910727235376716573389515591590161414181866607035370091787547922039228380889269814974254119084320114820186780163955482419250765316983719438734399999358447829181861877376884115337008346802673710172023359782803975481684911042907748039919600119171297728087390618239850223599747613307263751204297554096026079181164181024144244514302754917976642422960536146765502984401958863026501203272712149665895302572828902663718901384977838856407999849864870903585652741338307797131382530359518147439861526645023070336700479684671093935599869079103452796203485178373242134913284945527068785816907196344667742426000680686382242737136659310061011353338823343395400115748951884896121824917051932134087475654229185639065912954099616532913221671006768937135384994935978947359802929787011483635956996099574068007684842517080949056573788052156215540787716139383618268398437529545713773126903380487769644378734843389315229666036707198434715879104674839983944056452272274804528965491924470066152362423041503259632738729476123738409221162069390150448530182145971414291916052554388233117045512203276759708593782587462400882690806037107739349987316011925209704184695365768038282401471080901523155836232699520200854389745525066332591945657835284435223015367582135648973627979440985848518539340498940066665281142687100569050491921004191785593151070868913468136182982556388080609745332100003675552607327763366343350144386449175870217344832616777324126969471610656586432263173821776193034458208434897927265871790857776046100591880223991242892881349315460064178527159724104988143976403414966983514995777125223946480725126686766961552618762249335471477474921911811948340701289960943443185039094432167739960160784465851430297961904988995779770292990011789034181909307806786422509865443742976469586202371919007367126608662203993234947394726411934036298844271778680516307762493198612630369659788037976452524689045761027582129418549034698905332409087300942675901639172262249321233740286970610207948987911998270033195097837051916356458544524418784909788326667786143637420346970585802714555040396335112815455749082391939029264959393120899223038299653003384608341609594075758842946630240511335291075740542118419010592994631645464536363969036565900244950253312100982726668679130549792030183428929025297052973375311077391455898969421381674116274308072631201304934991769947955823064297928263491965989174800092593385235383298744252595656732683708884515777000396261584056298703602084118651931632496767531456914845709342455083467196147762960223601719104222888112069012149686546817072881242612337951922568023987010482668532906075532933245676881394564847277179380454858206658743259365466384847152479144449859836920169047176809930850938553189733396015506087322029676890915601250416841028711648208604537550084982553710679530295970164191187910636998791413750585049951604923104389126834331593040891774736764010117138535876494625145419039477554281858393270942356015135217141131018352478462617176157495966598511280992104608428338944955851238513673675557522163480459116631259711103126034783845024930906318199398465523803552498725512984127183542796824001050168168054185205479036286095270781173574373133138893202819402835413231451662008117170561373132444108255145147908712253232634749415871673218728720598778289717182312292015740412297930973592735802414425220488435301173740487247491810091068402483306982444826420162150730761186047725874436369459340213030292481451132420051131305224829141317008365054797820615897323061894879636510257561547329479848673186487953467763457500652955312459818735845109249565349394912600443422425657683438089432808911016585020094284368910059938252230087743345198082834968576712041381308964729097644273838098022957344201014911768170606272675803854340739761878637274704291002283728809632366292206046390370082407838817368312645457471440333239140243060461684255670925567640681895110956376671944991274871473398206314771213764491800480476087952677172926435914082671109750857921111305649824478209205780107511055101498267247889845649836252320921144226450624448708070652941513136234392419437647841642247834085175032782186777750348796367473033496121256317967679664862508639060488054913304419251916996818405223696065933440373774277849031948517761737765783553088740422525991647660275608153454750568063188569887039349892277925552642856925554732703715490895341607684952841195112346817731479277832980838223786398051370101748382417533807696635280622916445340767082368531221738469914571875454717460848971747487142232552804947824596389062363896598000917895528258613580730411995354314966728568479241157106880921738241006600849478196808279906671852385916062111982536781449185842335949058249188805414286767810570411016672941581811487485485538212890608285777675184773919864852239537284209131700158126158424055486767637179999794905593559979367997524465314078131962222949956267180539648397275572593011517110004646534973709134813373205964411979906527955740846946880903961923027556983023774252200792285032083146819210811641798106324733553013003234912245025623136150870255653003419810250745767330882045203513727554465700254780844322182188298819164810203684151869819417500518646964060463847819578304972030040516429438927372819874447788435051590050736965908604262363280073969761937478441039007117508615048139855385904049602505214924706575477515082687347839175837963547898451098801422620883514689820097071070468391674793879269670677601341096711998204222283951244225087484911368628356251238986664830847945682901716224994883920340761453198399955818686374781474153224287348685011739404709244463382540362678270780738270944186799855418592782942152624271238060141117659581456724285390240465215405194626947580196827027059099823585583749906982855931886069468380683707938897398197326871325399177365771278587154947016301402453705388601422296137719629077811366005474413844884461721636642252149565593720909908092574742924563303787701740250835329894603313135050320436194094885739910468512343582089893864042848988157143719742264620821919116805217348138577787381737327466959862618200970804629665887402045785945454677369451242168041299886268130270705403381498451256578281693520033462531956223059671287589143371302920922408211916986730689760622500530015121059322238304077794780181654179115862354099798002347106415703510253048910276731259316831087156878765692641152472904948090143020482986774796213699710964226634362564033023631426565311759739035674691627762807857078383530327026471297786549177334048816184839047545507138837512143005325136475973548846718371614087214585193640646283709602244364906289557875766793291256611984796446825513335286341102213631869451587010931443314410095873548900636074627500561688888444169106928146031110516207997718499361837355982980663294477823070167131001389060661699495006570842897151051583457564330405709772791729645626274558650688753198353077786259475243652071443091777216258324163355345701370621080059559891667046666621055733653687937598138642974479627242465012931039070201154882712764250311226022216086398920609556161953542111691725389211526753166487257602322071116903963482586086583198266476249047298851375827299938624890909791707692965030526591762268388733730958683385806202207147037189565324443810472708917670710415017844014588349436338678080121796519345172454889834422343503998422520617381097587002674062498435150596796045294736235396405305313332856752762265341101928302468111298042702431670655471056870618687441382242566625365271946334332733637951525036370054730756364905945547987750699802865637182359388214749532304455824594836982756332620404037002481868822983293440551986264058272358863916833146000598114871965704381913781152042004290398513313249983830590348814830745814685484369494119503123219937998275953193124299418553813003210800788853703161295888980566979333327771457480440893304688050952516484656700536729284479523696385503470723976135438407997795132951421516137724605755666422962704023111545624262027925174233392581141356821153758949977093893111278470353629798412894498222500636824014337748935871874045157119053167437227363563771556194724542738426362825488443596256777875605336478300122771014933805670787004923486770965157849666974529420763670083360000554460843892873817106809132573873549172241836453001310817063001728895357573240138074104314148788361224490029187262568594788354601728341627940312198878737715232327958788452388826841338677521841992040305139140358388024564266285277437694445716245684907152138621277697132907229228331886121323219050581262980825481058251896180429344819137445348736481673863189135525067257343962388580825577757373111359635169301976624913353959215542881665637832066263733380577059545909072176999321606936209528638591629859752662921570811121274589220974252194314541691111820891608716927405425431123951773853169929740669164483588403135813587491617603477080214519035443439456666459889424062185710585164061289112054555170525299458757874744712909327185847219642350289275941016577972850476167375364354163340214312430975576376148313557387184505784222161043592111300706206341228910522897022020303307652887321391496549344983123915390663939878703758511060414543417542130374974327331059661375815851129890149422715540076865926835130332064788001496045323498731711158435113095633284150659144751353676886071742140272089039833465163885977334863929046655154689737443874902903266964222374437668619715188366657441166135404247749851028439807344322577151581074533448264080878636230236703173404352975598807708358891120566422841885666282387647894519433533626646311893130793120547598381953560943921894277080600435589869857271068734544280227946994522060184826883426889739405747357255473822628263686622201265166252640920016931602474501632079109674029353437337917074361848794992747930283337213379291092875256383296837281812515600730002735658200744181653216981312861408599449952950574430629530279036112302999505922073937905879986334232483444120094632920916483720270224145575542692048980328641056255728996007630839045676743775628710754755803536786317212980455718626885108343464089063389919945783944369591737663028116483418284952155377708565023735131579552791061417785692625746530380933485183427639273573091313391586202876007141485363233987288423611066832782422256333323022362335474057219205643918798032861256064504834378847199883482114468521419987075577654317587649163222367859830878752804480695646571421036153486479608200781090691799534153695492561105836542999227758244331901412751981527088971475415124418041661146125663833117305515875805181013790124113810402243527132888493509598724203658771553795818704644166034184464532512400463641628930502734906033778536872597742386997333911686654088865038514608726409333916638465035155485734353192156341502318388267202573496425272215618946801290853541359468197314400136592591155220417195234381830737165774549301864532995116805030643101950246376242911323915366112119290138790415736487191798199130067638924769846444375370836543588267528579614048208761099036825371779441312799585563843589459318194446645145511125536966167854961635113748188779700777905724899198712201206506236450518945871107013753708350229063192948014018425065353031571270232879390180726516543653066570391480481409300724827660323700120966756579299860666947337988537518716972040160115050469654243464253530199379950048277317145074772487099427197147268820698678446576001747268966942680882412513485313492402456299472160924624958809967478290095357499383474744125829499876030651784379248583597214389471041940031370388975103699643233974453900355932310464661326461825655869488402705062092600607203609201697890131407414168047263940319557337413662012845977880723088774282816820069869497347947744135787620307180133413290866935097604892400911863298272444994269542846782290680133349063312755441769771671592734917356661859825827852627587622506038672323250503379417194545915479442333989887955338082315304127111583334737266934083646789378776654752673222175789842881512447622008217043814066951068691870045540485460304286073373163479236739256650383293986468404172254027332839576928541537031020329185047922078546581320636574306619489600183867220583609872022326742990828918951585051501075421546785495898785572199119703995895938728947632746700605372874684680233264100124331570847251011518956200533740316810839340055060586484894851990400784205270434014134596211713483992765277295580843710479483085308858738157124784747876317656896215393224652166295949751749657362909628451465265392981254114018656915459117630749975404375741491609505676288378799825948125425833441315714142051831816176689357608777103351726655173059366964889780773060256170802725074389213221558011511902034655750402234588561936153544836742017700236064822498918625528360967739760060743346914605472712220787043011713799132874044965196287826888163697762732640216090348951146118272114658784862213552470934599274805604419455908587804316831414815717539367201321291124663843106425590449936552519130913919850475736264325515275821017492522188754640376938020306053379160145737793309126020094015649905996272378303829956756294483800133693717932815086281705331589458602113529835290599927744906618605955312099418242246069915307042195368050160547248035532925201094060345721242129950319495627772283236431743199412458304879721404197373655431817698297282969640629262696547407247729630711148249072144601579950457354441491590755155353273329156932898130706634642606005034851218880571205677450344814323106354407064648730240540282394976849457349745748799066810432413907695325136212486977587666571739444064469951390479642910707252283989645362824406884416090050633130181743374239958528988680835131068170466359510187204208659246890646412449501360736543837711418089342288049722942541876574220588452119776147338501321212950815685516644558276796772924749333220277862207349589711356757317630659727697236213706885944988526007428604444283372532892103705031965655085567035685957062794437686519642509720021002701234853107272822685008372213480427535429886916732203119290657241871739147358894811885913455887693488874128474470420489440201629610848398724275345766469007473567892541760900878500288385850856265782972530583292908694161480023911141653231592038672500829296489271670839257182247908305345715608102713124383872226815017589572534511980986414962214458511307935624042103221179538929999442817509067483530401945164793742840591669947662428662559230743749873748993387880780742335021658443334211939898337596792078326924802588886028314154642083693128438661240870869528250043723938681640743169941152207494505635883664272296364650180869202830015500904357428666985475775040691729806060431851431648301048305026586144890863345765980209312583938205999853709751074780668713378433356171845559145344385107031985644674813243895088034092485804441950681656748777916446997221141212017209788136716360340688245781782682870079965704376168075485933195841435552242240053106087048045347166645365283456358918465945671531269201050462830765484738501232984294258206063824779341974729028414189254182721196949432333277825262211207017627062857035056104413318338966148667079981761601173789241299999834762941365442264914636980878515550202439785299903681386116979721388852720958721782798699671251376915536472338466768860028556989695776453653510622698378475038570718354294918642615466513640390272982785221118349598839835885110665118519240224747615001724500188321062892567271219992365893414520320645912674254988888234210202721050950825792528505915799943366719224259811267131586152700737413334241434961073010255035292249862619579212345984762670007326997685589421199122420480946543266492159150716546586362877737209024837232784223086987973357060639534163894122047334688841065465878497068564795661865239307798821321920059975493221936910017177998661516870945975095140314874940634902567010879471452272837317490957399446407740735032272870582600087452046594522456865031759433523677037317023900767760942343218916091181939885222913734020566140471839907978430473372566853576508605319050330841789376263454628637368674062207563098761237456675349552451669799228524338115998130512652819638769549607160935184980071232005504843303963934316574659027579223400213449015545363755288383714290020592340928502079035318038112181777760889529107670309446316354108436080349495596148895084711983389983342457837491663008479415595273667520972731797947815593343080916761184457711287727960252703000058973321481866501710049506735790403031308450090164639253887092771282422380042335767873033489457229792364719722355711478722105432858435684508153567641557718435528715797961201331387602274425511580571834260744790905092319477951306359040701343216934353786987579861852340388957122536216831623246977143850252400703859828660314395343004138054587575804958408452721207907871382016865929262290717736050976729800283781521332080778594424316903412717641665798258409483812817139001635996551614038864649892848678694474555019673292021849895680742450132896885248177345260062420862667800570763072631268189426683296467642826055310707737079091431971047131721776108674932256322511921450444424607437201258237173303917084684969543303176516255296579140990664451999446163668281187259380617273151510813672329417156030851418322016941264353512219408742580234191701755751832025525862824449664186909114917315633709468915752405277740113057720888308082378622384056288642903684535336298104559927629804355181982337633845644456250034180737507926257986819628033648583753176353941629436783864472650016972541623498722912275878390026747493936206262780269047802650435037735387543744353475208719094303750831534524342210469258568654558150685061461375820372504018026706599838114440053618666076593341106099087976395493696300157091697519326671820436206524385484838902687812465085087292907825890565827582633907284026855871587606675227094573243829099753850528861973065891388386742695821871544481660767330542630485290220615529826952401308626817562944931903049599433270309592275356642884018246295680220180159924181044004671031502762423601038344667456373072410688601753628818113158033904707117534382223398622499949832887103013598946373145766941586483040904494631752504496676157355183799213348233972693366281004287306779576520212368408460188629683180266535919248831996183858259772460002424617314768131558365301958176703950429551128494064998095220042291376742289653952546783031159783582991085937619033691405054748453746092477808868701925990269976115140045867047480999136854994252071955840400423041749415943672905096362274384873745783318704977656810626079030515598373319739516204075295425786918627624427214592912199854662061931885663645111289396628518256050677547928472659802906255889075728389285163762260868706977207359415199943284978613213358060119532040203408638596374827836135188307712336923907364915728148178904147799564135222533122217015720313109622024538894971337061951359516702930081136070055039574056062046116877949370195201409173370763925608976051565213272852091147513811450591965435019185794625736108550392477248184355299328241975343093939545471179991097920109251010931457415824611673065269976556739076827679990639622040601598329856590239220784762481748358566964955627692537661039606675299677509543383252381965299249428895085533442374420027468454944095142640045518518182503705807313806609058254836062661886914560476902601510621548698106508700487291999088411560509248795503851582220945493915548080211546637787846993575095337475393231432092383243884526400856503184371550399894439539137477496707708362679410223823484282623564503617358718159984424301094721001274475010989490703866005833732710555268573219245373826207498948617068762804935200457311014376339344646796162044299782215661476612862211110830332667874175883403310623957701768008988227654967927060694711638595708185234284583280508985322557738541001730081517521156587774237254650113229420889399897487592209636507964890559571895713468259933051336785768892943064788340273741493820913964104768907667201320906722632117142475787900655484736528679342990884988725516327729551733846791574691948080715194609938350741670746279152807366876990975491816871821226438091145483928334744979011856085105426004919323817014703329744491835944167095100692785772443767500886903963697079886074263374859265658797993085808871746618964684901016887204037508494182139186394734062174666484924670114710430799945404878275918259771174092266395797679875296513992914897253629845280197388675383904916123109504467715712798717653151083037837687308424175949611930083645924590786288705173314203556061317007818600779000812536016714848350150039846935361946542574609211446304991176768336300878182310903609045344785750048843863068702568115792111790207320032103952502443363178295883598087119298412125059558913419182696096458318885129560687409397418254015846519772241089396358612777101887901903314223992239978482388272835572524042386880360898050525570546829015409317793468481548250252565636921738166291209026940041630121329969258589848079624259363874473345167988892279101828452211567306346835960426745494388313645286811142796956153431896510868778013428109768221019180314461406970707917336510966359616383566128993812806680493997277083418757276294130175458649406932722617439114936822653472562985261518923907483223685906196712370853257197369933438631590157230933171946345219054475465155859158579545959866087310591890455448394437853430008919336204204843867931560341574180247214148218980801366867111691963572915883231602783266686208938135759765658802905896658679421826014539357592575955149225305875714810344104669902733373071192655451731489081943182509464367459100566351008519519631543280214346064238979515945109703668125029704846621288193139527340808106175955834310507076129066761436708368310207501389904101462905942718048896343978554311761094578290508362502749103409348516077954898485181000677673460122813062199884807029134269845694768146071096429770863099764666903761846495510785286309690317851314402969209435956107401181674008032086671297600302252651393393036984566673959352585619469862618811505109187339148169252702565865658132194033044098093454369920028823973931984672194513473081300131943732173201169806380315618728808489004641551762774433453071431049439523068179523699306960083610390264442632927058442685336120170256879283930594163280454864586614767545825375177667453896215811207296627746943540247575509170881416706477978393695909634914568104422630034098867807672976742204166292075422345781317225595143648749369915005117668134451896368605404566496645663174483141912544543722690020675886704502086834302991235889711203866005655384489786568216753956990606919997555610550784473688450982842428232450849140391487406364372503668980923187142625604214008546441044149122202571933231374689309640261775630422415818072515455928980360643303349594325610780845309557806480479952845404930755845692972552316567725503889858784756151126540003623074307484989704283874864087028255037496821784341295831608165781375734872292752041352317261387252703068379651770614762068346583269778216793421409866294496538746022815546358057921976575819294444934009138840701661244323011857696831986851950967824492519736997497714899901044177159294595256277950645865902596861414704966621614391429678980012692369713852388868808819289073169022481848157795392843365436860936525218770017678157580224613235618597163370491290239936593769900467940397828692102199664857476742765638725842114966507118554634051220373840825980900882677529651340511721556808950124932794487463329522766982948386751235061492305925894200849736418548719770391462003209465427584514724809048485553495557737316173369739978155125817319668175605993333705209774486306678609658011544124963345227004183876013356373773585793879271641104522265801871855514447507482769401333910528217543168315358731436395786826745500631957325573898310021021759402919482916252801992039948392260040352442788224987567222419298487999160958816798602643525365776016090914299308537727316844771545146114275685797725468542089622400956058476091567346288006556055029644159971713187562614163302110379819340782651646940964661519570292654226218747970690005832746377952476854604571013516241248479676095545212430900391443386762809357554649298809670339603354019850957594473127181913168254299318136132820707384179310241593786759686938814484325154436220194117700544967989315725181982070076316814039673695605196452416385459488515461139980171370272422424284170917821727044683398927131176909504089466337524127789643255155154929572451089530694110769048715461062899876095932650597135169845806612966230696065466941715326693985800223687536431282157006308269023551046343325551840058826677982947494548836334886618902386409870862696876205225547586096430105336382341230793374131785223067176902231598446057327420999154364684610673022014031506993790216275713013033742327119880060760736872845885664876275232063979107183620783498156486781931429987784123569561761020777286110669628525877863403142383219876678623454068483050606429715512700321915934599496865065940553856025987455786860567443501140739903962593246155293629925648450182498023827208197023731713353075897260964558969933958038718029731457447523943036271992934371811287308411514456321914800072074154869931259617386349792898479163344879650709704873644564250889438224132943979899559510734983097761447543957972367279836441140274831614020076150791531695771362285655825782909827993268026933670480435819500775742633074763614001252336627658548449348458681065817792684990392453835872159172960621586253587637623239078204320576095969741813693764522362134120957233551885276705642688093456670661853613976120382471507644805939007925252909719793006184807480598918218422682551717348652329397876211575937068798361331772986345447520472536486665496260953705492644185575185205486775383709216706355796748310045709604892038358189618574999056405107029341880416524138793918549277737313118335838397496457525991429876844326291728457688736016894106460060451475253395021897377149352022706485659011970745425701179705065096119138128136170795508926788373242116120632897860085873305368792724155965281164147674254462374228571586769599504624382977058038239998255279656009694088475057027668754593711620268076206919027709821388789688929180068178983304057058358836432157833270114241380424938748508837089628334562025448898762959276718645054269112244950218291166277485292130871355325609813790831516815973157669439724632803584815612040082122827273374904231254862622891244788050351336236223930464644364848800166711339341695877254148652760511659093153325042465050845418696472326285101521260258731149715783477472532870119359890005266705000385906543411922669264897189933006906505271392237360238418721183310418587826102784673405870947520360502103344686882520410540777272114204036210234862567627082661690284195062236217461575297696451506994620579488698277262665135118407581061317034057497118022418918440455604471676605284146318986800908226013797964783084089340666892006153383855487943978932913018526967228588050955377649699361456502425600429140378940728334786755780027835353738600757011528441879172989203621254266437729032384788747676183451522046359820281827124393756997693290456656510856445954006840007778933271567070153904996747345205513571959213834524859656448485256779320849506786416137978724042991177718746612430963404075574202955928695692243119978370557511705057351682388422922134151475862332296066906257331296690590643729289255709314839587876347013410961103547505653136133124641941293715779266784764702300091297626557841040404775174672728149426840623910981088291249777147179204990843901520602460244012990716048093802187706974780874536748364353521771270277786555505405965721624757495818237758860962724184217238837494149912667393397414481126114468625442748089162603413193584536702846767774522136913956386262711156089980609299140116664403983736141526497333611304724994225863059944526973304111855049925186985267871891324803105393955863256997997263187726172866802727875633868966306941476345116047308465760805691003914277311581346671942420666045902777114461879901774928372635725477284067304502477005002574821078481329994380981313937836596288084173848910788363591129915342747749454613769596727317158151882685916554060242794843996982685846009475443736365322970173598820942090970448293791622469860564952374953852159263614768731475957548018071554373049806982658718429227828405172530391728904463988685083581905779958830508845283445359133614377474655007149908458133302328556155550626102668466096824741056646021480609783361401024943596728508214694141599082620796918417599785391060294007567655131024780369554170004128573866933521501187440346479405003212570206757859060306965707035119538383349185409156184534938310549817949082384045879176947352497722012193542000881081835481236804663945699077493217381129395088333153505247823819162680424938545983320264500267406366969957687871486899379341825674983863352365409158219416650007622671680126822134649243622483270421784844550401189600595947072217144761284089546365230404679363644896608960180791144760462087041620784014961736555077509653844477480789536275511111991736344938491822799437960242689097306126508503955404004274220360339092585558073654191731020435124398840626492916645674279705166059207565649095597822614515555847150349839415153196692237921505509712144532220577180784916993939144454493678854915887543931691128939254760772087971537598349818102780956487569870643404239011287421758609240150025289929585789979370231296060185651738329073292124648670443379874421636032296953372187884332353791284112498316034348243417966086222583946756384129527534802892865792028660549276395160120756889614830239625124623315571179935232263101082825258694914292962688576106186565030183572329731748047501009551453698532557678068627208378816216571025044619052155111787314577205496609038467203011141484441775700359464407287194561212037554807624261671341056138278126450633134578558948831165045260733936896177870380354911904817154095914132307782922424108847473476829413263859160782634217579578707320545003374019972988817481951330857168573536047507443233814004706505221858751959552072609631203637517750196773215275172469180473745215729837817275865651003291885654488101404952068455755799102748954306963797682443969273933784249301361697032330500447407989843125935695849115446376517264776522154363454882258229776821497148847895268966120723461605916737700002614907437575034396058384709196000062793122359590545916624030522071654605134369787928862037727827294847928233891287429015912333231913629136544052680006026241234484757572917494809405998061879679014541059571203031759922402552008928664358234246093692892209951921299140199829333751805794564527613692884133392193774945771289372908667250087414184589954541698339893144329903042085343480329052974257468081942823810470695785309024694581783994978902758248995105180406954552054191966553380097990678842870044951532137921996471358463866881080708498710561843637662961947365747855850916691369906128329070151731786619710798032175959465235144114559188947835567786955044630412263894001281007171216809171912882758122780447632507254780479354275287139662285258152250719431594078870371137522466869966787817139405739377590103950022807805758830449319066446593082320501398182457395856283878268000116957195740988711190153254391525963653377641588776331231409678602016481969701687991052149876363880679041593041967800732987780549577918572181724740541931113671699827979369231830061803899885435170728696127021892876825682738259817080625878690337673863530868718813364612058056285428593958020819006009053099958241614689862151742984906682610815270663965331512977054837031374346916464755817098105268672471532034978181584510209227684923587134439560900980536739100014763851780607628930116491669109102421308145034473560318894569046824479432490776146507054616031384087274100850670994557392521589960445726638760989430234279039987543819122292963746474944600860148822175802271676445900482786925818416944252716401650919568485651643133872934771955383072724759574464383983509686988428385607604720496167484251334584759476645084393686886157544122539710817193944243156650961397149905814043775489160872526521838449703247225332152753902984710119222388059909328579601854393435327876842445542257988632303730037672398089657832835133926732185093092625647511631863991381146741229181570505444440286938167100809966766508093208519841655753356366467495972908882088259452862810855718478250235975343599779569045716786243938562176126462966538028779800319646464313593637673822719843385512446557239868433024040355846467313063178359814966889460111594614005719054492533487358753014634317954675559490012594177984801310497856297974524612927817286949140907892551292051542383815112997928191169555778200588352584187449384796073727909298098313199824069449313838247489528041745121906979461091032492409372196758611724943798194620527245448160846448553468132410166554774862568619331797866059584808240742374567768910194503677095896051246772812713916895528637120139004834432059450739923917132942212207124696956047236149763588800085163482383553012282186616398176839537840549671798642787300195268094457777495638651920487231858155291265572731936238703690643516573281648768683590649828483661990637212528124697690585024181155697622356187119575856465335412578131049843631190819385782200653098574975004385604808252660380660545930427509193844744318235429223880025044991459405209048285542650992636053523415573054515425428480060511116828483807372379739401409403930552153475679247623081772571942741070377121440214365337969095565550096732849819712889117539531078403899857167088597744390363913609664429963608202960099256467747047188380067505790693348626119352610954809993369734072315007829957672195396660458886896833415787588264476569295486210924383400170509335169359473112340173291712078746646249300819502398146947892893667337597027120884286581046446000912624265831593162932678738565770898704028821499321373386530112944397896267572769893743257883291302382157834842220686302145390933324735399770606440333872794914002053937331578433829039892679237669344775494496290175820914481499666353037133605620090772221625864597805441759318444890971123550992957276514411660491236019491012200986616231680108715963729253498791233473322650131575076113877733195340586508074151003164359628609585029357731615622338323681526001204404914820766321837234516872121249320348119926241433383935786281167358888979027310663102616369793707092181252063855227823944412829043185529129079067939078650233901935334556685533399630514789785444773014335249284681864342385480076193507304637574924713773725130449415378792297829100650861367427046676869215032810056449120706960682983936026913328051051868048379116948449247475696284826193267910823420447179383479914108702004688932561726713322493898951452582866118857819855742345313515637015416669769049241458855995708480150512973374858850506017821629142399704017147747839162847805433557109174316750736267374551604119029235951622198350468023586236980274792524074484254397773494909692791611337656477397333485552387450950237148199622984161371946735733771238940315570819928786070844385090138706880719694267054284232918251927076608993486726928547552847047306249848319471089772313462182568463703005275921964725927992299467276663744557450518192880880072974394270965983786562887208705950729971984259229829265552905125308166867426050843953874492865320416903880679483245395192029120706307681455464627565282919327406974490793585896595710046811339090407239810981530769861520051202804150956411489309719942616923377114664289353170967904308356604927597200428722083831962693620750769203471177262762785556640477386692410447368552493495774683216452718153245325883748559112153952967143512418095715079853443346252259391944034685724498690228093378702294972534333277193177811607376206952930554325782539883439585458809148143871356912321776998224841103504278461452230218560535825618301693100116666733264749591213090537547588961888948423009624160626247480491711187681139385881100186761328936534906211687613225027032774308255535942010327483997494182211180033054703267963500847978971637782133713439820415312958699837252718459229567571467619011462270591501083630383427135810927643757225768531180124041890420233206027212804784529824182323274753748883416953756704452508789013405565748418414760639838431020916883276262348182365668646933840222052237414531309323812016774191551906352454294175758000503247693203540736272834619457648690348943276794629530745372533803337859243856201982185435551753221423402264509718597204766185276658306708518266529909390220077526222016252432818754856602577253244961502018278160745191934113932557454889400995963682502326162625839580167810109663267222822935022959627710104592769018192817783141178964179368939538099604688954100091641634872255896977182989097445545377991390129162494566268777308167721924214574191519736959829805733936166239137187909429507104498620640511565108241853662612475460652159537928873778696323801026293602428367382615396854515124121195654548728828945959559989372591970362680108744443187992595106953304554220779343441047670808327473022933675805651236418257577447509674254866361062606980676207939919559171178542187560357781786128208725199262033377208167486410653250159157476905387489931302360342965734031048807399582997815860678959068812215002785117233518285817226543340763687479165649273119840498148881851052945660189519708500200921814462792538246818025527930466215929284581982754357554591470493801427536972198963020692603876187882831858973491193335234812359103525858475528182129189746706715469497767570091725638279758059780172092083937325263803924269968613912160187099321656703344920480767440477847211569538536621338350737115523374443724570032985055321747387673126138206505800308106435675984860982552990261507294504515726646617212890358836880025192665148258837015330944223344085168353244983787279435625128051041729105023820211185426533249116245691236910948112644351240894997447427586994169251770018163752010716397394784433079690174076622689437208576934277478673034825224830225015294539397113341258862690297281167677145076698105793962029213828547494361621510264750765743176220143606749940762640229006846480739430920344452642059011553778531426474936593987824516056703856764496107496376904666718852007288820175700151513360163281930973360434779486295782413694089508697955276186450061935015127841765952472532245871909956429133999747197921117396767797699726285177582048798614005725228232256923140050415639505747814841388905881251990064941765535079866844020578615853937708292531460498752460136876921826101107009603329837337450645915007454101464880179558288910006221000303054756569648937282370525347631822303067737280023491110168280619155150486563528471139841116282962724940686679623159475294302686565308203451908399106197921000655912092498542803250099850843875930609369653889589314469212312443966001395664701830089425589456295862524840046685840736743981930581082392432073786956167150419375625629930655604731775341887998913224128399331378953556065635123023820048627088244682325987489129426904781914597593501460046635340531508363457092676608815801032667473789160698945323933730741636033699506588136306144063600928606624394304331319695445020403570002824010043553170403030596050245558055737381530211204125989240442543531672640373005255439818348362058185234101308236875166057712482962088844134150090097012201394561557803634540569809159528820031000019602970849360771261490744456175900237071256086829666120809841224432870582398695318175477434447937988377813897931041352652842275510668204701098998251267003355693433331424437036024297736572815709256038149619836492417081300767650331670944588404378110948869811400718380304935392192513520349648796610909107409459954827219026952259880576099082419873377043416710788177345268054998337284869219066180628207063657282017479191197783230270620740271225013912970453169226182002415967875691421531121489585481481828327262161321815269247064946477996848261875553085154597652585463784217350153784770209890488418906137684930777428297537249391663095563256045017725782842074093366121225168545638273422323527214703189994489980400489075956508289259617359876410896995676940428941998225900300918601247668991808454345750356266270892302913082423279903055285349626882016242397992479429171961234260386868093101958459301406093262821125461059696966175606228490049946987491438994598972891199334147259600790679571334267828680373820834481555688735209572697290207218417720370493684930170892104702290569807903096940892838007561151748468310933822927867751215587547468348769195742087501106541104352499525737848677198402596415424806488847177617461114992429177194606828823434642376870044670686128258381436185808697883229391028252998665208439821603907588109707249499375774881525240500233004687223258423466114702395991792959342322725152480537984047886770073615243922489037422697690165331883571446386416054275387496331143024168685486688682111580508768477595998411469807834837727572562641032584342690680368130003321054713514121284288754901594339926992088802170669725175485937115383833059088700313852375563216405104860797479836729251852104100416943184272640134225379425338966551689017656553999496111891605039866374111599435763136702721387596985606465550713228072333236865673077157166690169299370342423657906001743079231030331172301542202875071899881064612171435752259050418977027362106133422327146232844837906860151266747823119846179695476756057944101029109254607821777746334990968465773065207922681722802698038017289463356664477565504602647871245125343881775464566342480242326032108456771988329717805860970992136127826972016166266822770752612958923443481241335203684320805020755384962828470199473553771175157724797320904850770349346587524446947604791411182098466266048140723458569351842636927109788168672559189760301636626506889015969087540005528808376498744191607951071493226894329337369814047819031481899096099361097507788249548339811438047162355373818675237160304074313605054443472732299202504552481124897404771933819475312041699450374239629667892215277484034194964049511587975848420925389537316358189550204848594072786627135165770705686767039670217302586742795422167314102672856036030470844015431260356259459801266208387661641830850545021483219942631473269490010488945772981624158959392583741247424045984081896469038713186579448529595729011439862246143453021777243410549950650269050424866968565513009937592403483482122174604025442952047576607007940232911760583611225713336716271256510093849587448529892090212227938338753837394584624521362272112905562030635782960425403564045107420872462820235486891742766622192921790655181313942003138638940678245764266348336153853833553168701156747392396303051805326849902943742730302675312968090708126978486542090794536509272910564056151792351033699025863244110412416997628944383619937604404788705291286074791223962594705813013049550941654895323804457651946734332989951799988582472851418098013861648356309583936219703040495426521612890526091035611391477394643076463378240864117817678735739933416987081293390796371831691764374239395881597493515147068850515605572615551177035646702124871148962196206397323909915028048270273472504810310511642016921874895220040475002745093681895381351441351135824714271389576328264545239732289746792916177189975422017056156386145073747837095100955296634395004027775619509586045024585189671910258195307227183508469784531025479501109953150688793616672126580749811974208054632405885092532394869962976098769365142463724717189909212081778764115354970064531359052911667784797377662991976961300380819197993152015665994044124202641702014467802291560347272552944467960515708575987461260197483328256582163754325219724196541627003628331507081280967798207618374149766781206044377530366361046981932388019534955450545153141292936119675584018363642711739692781554322676635931375207343000626950331697802069718654532523340102424600713011573705386701001682421637476935226250773936223464755866815246386318306739475296920011889175069540177270551599021295496240470861914174431251205652998563583720092092173271571406963870238461958253731938133555171267358286500906623059462907719471910228762297108839787903935315406719949930911017312566892508846001395234219440862356663094634757508520522638626332884701757336960092034949036003181686066653002297983948260222585171577528793520974942069100166077668938867684136703556225817171434895961475120793701962679484593458651524810994908694495036675578872562202785067274269087850978098883603029560189455692450517370076363244516054233586704687700561413480569673291822458685817476633783966417605192362404367612999810451867763464266976106822224601853219535932444544063678793793873549724302023822036022462915523477079847890872930978054892295800610477246278424249780111407511450627023688196203989765766477709562397963561415530861332036129961470085040706205776049258030831982010128564693831467958192008367940816616179742934480430181369308333628745136419990591637994961445925632138116426234855508065281581787046032089462371123810022163677967773948061770615966680203311405769645429942190546464112649565175908465003099456056936687443068298374188065531640642255655630575881869484957311049741361571114806157872401478942785393492645156730500598639521061841396222611950241119952422457734813451143539122921661378405818224266212384965966239340074958181722399930705480877056071499322365992904960300511222827213135319164138563717261473421191106841535441712260702789934198645024969143446491777750511864891678478296843502986270701793559280165897767707908584670545964045890236187704836059344871993283576730390067446653176903471115690139519164488348717502637548376295233169280799163887178898614075696437538489457501688503232739328190352457092357466471976234733027691211476697977074132557876050723622978967231964933172060639840500274653089493274007440812140002253812519396220996744610355245038744708968590687017075938648523977063817355042228815086578030422228757912753721455157821902037813069550457001907616848449764004941537597513568452221913778922160212241584717724604565917672984681922960117624063408947780627936917036226185976465671958151057293532105793489858993791978543711897190622572633545814438518053511391541715719248657968062180765255800255200448629881977672980209798623008077372278059051997228336075829511235016039323839838376988514581139468647042160556344306058114217589175502941567280952889536050593051974430172366223822970633223336538519743203829803340067445784445185416578872313918851367790071758265388575632954471072668597150537619686274122547488402192103848026964695467631587817267149816585919747113975337190672917427103140129870951373511862555176608180533950694726488325852403733144980566889436154569000773930168047237628009719640759915271379428661285861919312010246208175317648947285611603835069922497490168477635635503884985084199901412654995952942803807580055699994909115415875771734921722929824849701233087424820732469871128415611719043560888434083504909971490010880499919353072157178906602784077416295125894133661912918214212377224794422589191030137361637517535816234999675135333548944051731915382904222472304898434607300172094965906897081891225002434810474581100178961265234563123198484909664244660693903003773473069490353946387176002670225224921034252765788381201862767441592669539368513404083521391076291765233469620071347014793191258233918403949918596133530234588057154049397161415469871401493451311313919299340843057469643370465444246184991966770996825312644416960904971754726793538808638942834864250407652281134227234482452628676723579651919724611218717873204502517023801605831731259077504468736437810232851476188964668890163438046124550411207831297687616180132088903075866588966718679232320537751212777453859558280599530313413077607283487054508085800499994171074058384666240561331090310683261806625849323880075392666248876172416321483716114755995591489296827882931984111397842634207606184719817215639423479134554305599112073966087639896506572498088183713915723470932965470927496108210341703912967422100239997997670257298531245633416269117802463412430632456932031440006750752379025042776453751950791020070056456800171726362436707108305480103098823864376499350368857198425456334213447589910563807811688531499872533302075679760500787822124998957817838938545724334321354849170171826360701602019073338477687506204183478438322616602218386913573028253236041989768252691547261023633897152608774960418203323462079307969614932495804030956822296868209937985108417248441325566998900499257795397166603037115733387487197259858982295083714948216781870797895276168307682210352517208899668127939295335343999939103214605951204061289447853918942880613419866824629843194177053501947113030912911882445184511205967622680751135613878460183285658112123209678627899806093663657167073288495715791953515658096129269099706748485961742848742234764524697727685652624525946190101143952080294258509789025959724758661992234011400542741353065775838584696399611268893712264338251472162868985161976778633552750829582804032931565225125743575816461561846714773412782176311222823368248999877064270826171054456862389127434245250724217931165674230397379707089646367658269925786417961042985675957177047901503619390903455516771998145514730177972625702474287783902057027638344128536521771032198512839513157003943973248593058523078517190989946126316801956349027057007261414804272770649170250461233870124136087876816202429027481765916497798903198786812162100568684586200558090590250667878109679605138448954957926925445201016714416256286364894036695754767866764787157509130933025003850485826941068937497322969768168030877987001901534233651823361558733023754903219866248118577165328263829078284109047777874210965145100095513205379872368280391126677254492757918941024204369149685076981601595520619062552427975348558089595283415043026010188113391233802742983888358906222248906770761673589828819437480275476709254585173786698881357941724525935488555973291458008434970360013966482886747167812159389852496457872993787540012830619092642368399217633534157011320771413915701577834261040888594105979642947412701728096997304450476880823872431975017036234808008732879598651410909544027269451276924450658207613904331052934458060048684359714581171026242436031501866522241813997957453947537522856584148702503404529710030122137350423111687875355096942764156496035915891027011449406606467169760038230675286926218108370149164723513005511929593153577483211966309758505115162856022454342987395529512689907887349638260488581182333504739728999687998485181007362673378284670643764387520595476837707471294207511192856975432811108218003492967499715500085806251466241203972579216113912293917528005580456705292500759315720359942992819531901082269001664204736552397519309266847229195134779655855191604514563678456350921674780907004995889829576632522178991026843352598462879357101210794929575132671154004562061306014317133911925075138548620450658424400719915866367314773156020227815098528079056434624499248341878367427519757867515875766588076146253231156501285453627525919457938757684623645398576859831713392804011603987439575349497786603295995251797584562541460502671893790043576784505198134869687999340696464966902765392359635119412918026568330906087932811380046975728969568984507216018421676989138463495524312630550900023185291330627188930031161158025147248914348551187096340976703748991622351681857546278129628983499840243327405554154858736226613202790834331027029365290188754067789358723225341694010682612345119967420582935309461550441903663728907996164273961358109894079635820992107717102900537875606584263789472044883079576460561451965188888956679259701017199001135173532727028528161591901710700340174903159615059690266827195168222229436458958452891249345830914394223133741812730724649667155336321117493596031497086775045736820828615325894659392616453173907377183424184715147451132350461324507011931165736102523922054502193692695853373424833861263799041547812062148013021130672392276988779850950196785069349596554348789748272244247510342938974937672912289286242580134230859678360527396836315016538877840984076465834540586225252382253764808474275121940734695227799450058125864827603669500518215659208293970269987411790996372380171884111662302740177721889943933506465816705621520029204993591677659751363925744319179046531091969364172593330122354828924879475555309491180138441518338877674132344986077803274764056249356623972916499734791768070260515081422697835281795121323139668949196929775762689761921926771681093900404717250989651027040069497097313558384127432880681881444768563375377489998246977820978682210892155515077467512082267103575900653950234984945016112934875419571445818785126452708479099047722651251296532395583191925576824273445013104129944510588381233802967734349456231748255024386011975187309282810557829324474742668659662221831602833989510973281763836427084692775468915890749714720990000216852900340996907789850838212794821288283425788138461796426998265254137817341140127202765756368145669178687162955102035831211801057556224517996981053234368633740387468242794199233066012610147493235567512867169888047675734034524037926158975720653827664414024359144837596657005551494671100193983062805423766942618418278159031122490917843615461549891036484046957482205327925269275096318105814538390101353172121482679501396883685130013951224631024533037482681156659825118839987013464366988079162847425322842694708044137970597049527039098617693216183890009623936345033648072835812166073678339015360197053557246456429905880686433379668638733259446907315399438509584470020878218391763203321872327906126511800374204586238525578446620124867956804959607297039719313707898588324612830070205288552559478074642156458509560968798999383445829028634100265725194882514482674769034971958044251877878014717649291992970567054187655786616088027865078129460397103474316211944970082865608713869781295886234106076417556172887546198739241202777095490828226775571923329464263583113936461678862100053319006943921290825299945307890563777770595298692416867431270433974466961882846480497143305342294098821490375187543002338273962315805763173203667459012054673014890930808111430539531520721222491049338482045138499165365944897822577047368636745291625853438429133735197916495842420642681779253747006822985549349724137667900482371982398698881974736899247983001652154114256995400679207665583485407573438045278539341659101823307673985585995141011902005744166040892648924024885874423405223501531268953664529406614043237153887077620052991386276409270282170547923315957570941729251193805209028153883890415371990591109164731576680073552385724899843427950768126040889086426798405485768011861879305545531562220591107731355467847624721418256235341236651682155144853869880117874155910921759838111190572762838507250690860919410152421900431879198328591932801194553419408217781544537532049026710712520582988723201322355489933569977037208485743040597526181240887178083690162496466991360120585439053571853873184063621350712252621029102670510045520709079976191630373761109549871801538327369553936744900538338901721891437889140356843267056437803858552367886952469236622344929334996900137643950378005921339561714559950767373888665388508400228720643611682836938455306603207340349297231197706465052463989137842562925333215963889304181303293488195213239946797624566854362378093154285717061495616426450165185568281376885534628685409472044325123943740395064710584326902272113729515738673835575845440613407791000170140342297679488595447302746116622058784139784050116668957553191159731780580810259115080755375704057489043122483698696204064577599458140472839516873934409066138068445045366877756851872390013363594234546880823031593554132610087241211240218421064484278444141904364933610969046731682915259195407274249264162614964650520226884720200352247294416314343456637133718705651974904844312803249876723001473832536810532868572255105600690426808138373171063551771465560958904539374685231026865779487987703007260976252677767690658741362699630042668664470962338641812659851244535069837376478099352951415679369292356387608699359933497252148392171638248037123619524854750411657371925412273484211332486302542970066377480823257599418177289864990360570083974395098285245784584094965108076490382220865978004210645211763910540405691764899596918569342414921855742639307663798999197763510619651251763557559789405433247732021310410343490170635002539930658724896691266816136518274889241048971655725837109900733581640957605076952721437232736665068311515038021441841947359408765099646040473669157532422376089203713846341869882231036374553298511512052582961607201273003706385211581687427191057214857323884905265384589809417638070895749195558606622927102124948367163520183015553292471463234343426476698502425338700186967006104191616313040100428832865703474407307344359108619902508963266386228416778127011726434451294112341978727760833126886029176887696291367065750953210964925996340045466646395417572954758461375994541901193795467988433114762994039727397327277774694701452013435171183866323791900513992904331325878950121948952301769762551212677452776203079401532854757038319595551276637391728314547861876319032505864294122014512160034347874263610965089288170507901310652827199469162245785519956591064217330168206797900153807860174388463816247440307786036562247399648349738636522438607170860590473499485638686370160334700754011483873565491408029570351635659499428082409630929532814816149613375892179796684217792983931385734379369277095601231874872580382593389731864586140313327104284993317525640306869691012941012128916442427213739918268212708560378373378710996810409837739418284063976753969693530681883742259949098545283177106598668673835860438645423863174769503229872011780755858683649699486908014090675068919132060147246038356103392871486629177032481816236740483933829096438417453918532736583011666940327460299887063357272137552898793776533742475181757558599354853894379277745676280317315259741611848652190399463440654209202245703541251208971971690382436254724417304159825546673968714001790731652265127020762891142897159771216313856735578945700397569166142746992389826154134449311816149955942425194532374847852186310555572925458908270600498949503183393100983909466343282845410599344342952868360934628330797219941241365057730400935717022990862669472947957170727919196209856941078879738711653772242629300515931513046220545402660410477450597940691725744336230839083198448231020049870562284015366914799457620390682480869114079386355020984377324267546227396472320725133311370723413333215879438091446242920969805895826962036001230113749427045804154197110741406223053882550445477814895584291335734822941424755433537495084781652922947996465167782785246616247232365833659699279314449841116996395388713933171287176709534405899551082928574030853609844778665568560814223176357272744403430574579331310033175192739046777090212543518048520447162829552037376105135935137357673294552076489952030808543300943936658517431341541467826261422216727895079573851517322510615078917088185685326610779165774702137341517627308278419802306974175229914328787462715446777024459838670018453510571983478093142916204933048549726059963996170376103711995303509024062762875827035279055012411892689497410765384502462422272126808768936486645855671424695517946527139484045831020267206935860555607406943931250980102016906605462506025952158422153410255102904579430030660981409998877687002983332043606796201617366830107646045610359050257579207382613846039961813538472662729116010582117999530409797075296341999425893820677022549049831190756143264196142660394947730788477826527700311936946428789237480942485213729129053983468459093601112600601799816245929602895220148972011489632565580389042883777340551897294871458304551723615999001071586346633267007694978156200024192734476691726545355067246500666902958725449405657668582666860859531842255879050410825235363911529813815075701068938000510693310090094111666636731940835340214724593823617039986914268782993398606772293617677125858724301742980948234979470768470351379696967783762680704871275972629329668183535967735863213444016668829318576815156792287556981003879196530614826188140444813853579645338462945576323647897771729459873074206750914757858880852636988516415074181311279977001120114595296039251227265330943945979629280894569085868972323896459254227515099280892590604170042575214261693858787649539705653971137238176769877489425716758548076073701638162042054412399694969212238880740953675872938019534486177232372068594382631324258018596301236403041013918634344467322242914367862243228228562918264787000055855056728032221867080591065420253973460367489731372120146032582371614488583857419194671013550270612822814679563507511318695858020939630177678547732214197767903391274718314361103885792704879384255289497027081545661182103112164309283897214736975661208297660908102616406152297132855561082124010266575606507907764108626112900537614392975868614810926401276751998579748382592801438195603392121850543655353916530046404830221549617212093632001352923350466353738768277604823147327105731618588842608850464134545042966878333998275878432761151253808880652047368755409372273450251218640572071328027526955127556793351688242653063418895591562653119863694009436164370665318159899151697329635045475945546736806996738495639681030275677350425273929514064493585779264353033716681078761250804190703594641745830343955366098722580530659536984993151101643100299246211179886481301768530910829233671022697959990408625607021343058518812918432881946356160838790025570575431226218353786992335937757844832495514661300664475422835488809309747847000969015965204056116592601626837987085735087543000101954529115593026807196421105181037478496548120360813483160696393787229421233967669694253722991622553900138877405032860120500661038860092363434382835666878552701021487496922801502327413270251875966916370884048527071034528436507170826117903876033407650131440702439346265503829997085881941039002666029969837709730877139655260070407457810316668024263166103362250256475378501085728437425618053263399301914297764602736160817587321641847544665630063430425215311088826470779220175575213570415895283301680905458540553710150628742335655280525295167607653677374039960945479444744122283900093007780087362804125649521517621755328557825704550062499742474083593957985949242709637549962427267448034644745728134658306584746982619329376386932686079630406141334397824887534607873432702564357274791159859841303257392670394187349326685584464908240100351385139334019330042925640091612496857442715819285335868648352804529201495065090265910025659730203990894754274133681092372099664734143004839891227657716100795044287328340361094983394716150375213955028526797806448105110898533913786831735353303417060083957544107024264779343228437273078372708146309595857595940943337895484592654706659351085628546900518762155962568794543417911462727873218579869815188364989146005004867250169673058825491890586533674488123220564743476773680526725327322435891126492001132132986466647392462680934701445269991281101888325375818077457322816202040476232141277039977019301287544948496425080398408622667862183904951052452710194187969285746337182837988068627156860481678140630438504023005887852352420037984390101375203162538228106169328739189764535780947999529448962311643146562634548432779012946864586342239704152194303962990862587966294218898893984591785769178990029267497658105906502260210396259935857943404995660900731355575417183760046548169506915594436325210139012263894018297405825843994594200105340695363613675374893952879311776134316194004014717434379684902460212203164740741286972474396097109748879720817277491518863938999681024888931760696879945353242313144572786372815167016843082168145116713967592601524272499907232179115770066873134266383569461303404568219693801353887605530705419645221769889098101602332579904896247326543101000567249136231656518514137978984301329634357279890199470388840846644451272511991291802109330139663253008543506114450433577243016831567126741142506119452824359941283117782837884548809808315804708527055863786763655938030335632372311092489867269481483820657229289620895691944829745344969298092910131252192594679411182675896662710061936894962855603432433487430352363598015123525800134766939476196552871832703789255843020343426846943378672442196474594558890991901951730760008680737985583678682440983577103688769168255539445075297466659525895606259870139265881263523341807062161715212065071947513651800949292143454780277508886904655459193346445420130640377178600462679363318818208410160971415323619499186065628105787928765917400324114995105754449989294846186186327047939009798015745038965499236715532931113241580234413288683334509145502306163071011121079996144028800169622185642741004221905406922630712683940578244582705413850503335664432218354634475597840405497360331183958059128704658249639047862325823888749316248557770672589448809997879626335314460297920369748524959937530772862065726912756788542331543941916901003886140059843321547613654803822002257855711502988231530683922063226815582566394318645194046655745879557427528575989973900890341267704155454452829182999847558771313245322806523881565617555377000889171050786284910341886192130745733237533420711266085353274660591846614163156347235548984343000046785076626107864754149712668637685617846402613620896851788493796270847650957848873069362715813836736582942394245726019082300323770894725750607180959071002889305258185832189212529852641383408920058680547109641659513753677449279715246016579678263452190819625652754227488689782947958142634574034777118375456212523226337958166736845845909352463754455674604611955080229372643126457170605948188214468128564355124194921744237352304752833302769322038870119073772620717504956054730809987316529590522681558180161383570661110464533505394342296413827298565168371486705302201630004160092454552175994472576199755091754563795377533502214124101279276508878091853580747281478977374937474926272615029445698578191010058727558837033099063417776463567133821029784448678717158237662083391687024856887674398834200575146276183814133770598848747900515827531388049423445154056991453278224912267162611603088110195024502155148985437767228977509146972009453243570639932513584621728988266605871620442168248658121646068194485148818054973495623478561194963350755380839563730291417970938601553633410344819615287800241951658670647016168263194241527276379100712644057623235175039946292187983437763439475079077365258337942179509633307281091239733300638856627999852917133110432712751913528302209680173013752072359508329961350639089703046569827225764003130551374934802212391229720925996491824422842148851078813754828598495612357617203604041801054472452827725172248853136679446564667667205216125653470831932872939874559498037580501380929365767877899770374279132258643118594706897804682381287550101810777539773245821318732291878542995232910373795689031049639252646775443221507878872857056284210635332657231686744550617539975034833171093135042293299104300063944569152287759942884234890721677128452458142033842689504667202356330116187658725331259467334530701001776088369821611267194137986576685285445974396495681852966204323859117023943582862113463542426676869697354640142045363131365560005084366924285548116206791778323798469850190601682864468038371941263942694361728615245400368412647155169265912186135918386186772188927119663978075136295112668391227739327277907312993471692750751813318620622739419120170774499351328297871650287297985383386663387244924201905274929772993992840428199979536513849668826217824106261080640573188757829205717136471933184891569599524444054372102320956440801170108113866576924049776315638602197242955393964682321629428611036180939521997458430058499797573036638699100608010328113203914177458802293676518523811182447667769123052635275165252114930472901517757319746214101463874445033993974692785571845925812288599253894707276165480971254081479306071759660495785999648028899953033102868636005109151464245229197313505055638359185034211102490293897831692607041485088243359011816475296101047868482213975521997300720153535812051054553378717062081768173472375897344244244973157315824758942030893126791255670970456307369027692964714706190856285168744094066768331037018147975519138301937384120857923267072178190970055367369435034199722737974714965542461100249336835789801232647848834470112028837337881789154800988073100664225943909240463659387085728853037121459327673853416953097324669455228506120321010092101561708270399699430824994553293138270480871534918629771513282236723562221469681028198275739573840424810599144769008901670832371244460127386005668662248214689328885962456508736516060723708768724732720567544962058630734943409234770850243907020886334362378675809281246903154337321219031414487336800235891420369025610645151400276773295245798264729259884450809710702925352584104435388073012661373645767153883045124337478163611415314306990921848570821621278022907460892141566709508045301331069213032331425704623131647269825870328192394084131945130408948296297487002378022913605239598064332615284093830683372870418337594189248942307284503818923459521835226128223144836128936607054746608914762573003925203500175974727554572827926811892565354029781662293634823447046795504869478029830045213076308025569757885353969947974167819626062627765318712670382827225469567387287689069826633453305868414864743890895418062367767095185360547952180740334182834459753667470105683452194943991057496387330112275565925085438496926383307520266957744142352520692929634000979056363876753292276909460041643872234397176544871447726506216395701672364188661818721530871232667805276599349928490126715722996565341600259783768830222467976087271632942483264229944227356733105654179294743684256980663940430278110087022029753509954381870151417132556050950473254917671266969578221513187208510857682833727374653359934631944917263402302546193866864659745556845485632086417857319428003285303586971328879881629977950308635709066994579488189999950106895653800110864509240504868495526525163380594970575996317931683866202234940698110095643893386642996578071227990614850170115259746905389433782758962226181655414303380876287441474942395817411270996182367975286726269271763120627030864249630357072431923289192772115064792497347335837704656213030075507806590650826166642061575636793574757484080960723909786956336806630512985317452611354989843554065252240381565075844364157813869489392930909653602829787339968472783252482700896954793351886016370372510617986826160476707086952929270271295654178021813612891336516440473799962212515273018078049391974916811534501454883580918280669861823103042554141055042043523628670310143353278975085904003964165865139340155696611760174923519992915228693743235263094886210469115349329895246901312455913003881075278051335211264967357389309855928577129832451113014256392320593489649164527325550125448697536290547011004005765993049760253544580028989333464668560167908339832242577565750009850324200570328728925673591588942634974156185070586713274793605018388275383505832465736491747297312031431890154814822502949255824128031964967722986552201744634841813038253471231143785068101160386398317714323330015754387616743744848294096662164228388103497770156090759297126662158975705696883077644010916697942066485561417936492251685414242641904397936230248632494454468694045050882242999147468855974416616760677215660101892761385515759328061976599548741579626137353860520129231306428228773958692018993690512199187046419250851883225573989186506765220837421429033121739029568235291246868008351475069806172813100402083826000247020671179660023037420243418020282339158050870755026891504764579420379424579764509088424707162339784629239922095647717757580205964254998094097545647801265339663857980001130154849090550704415656590508081792844452016027335350042636802141211132882890367476012126727531673091834971588866748974306252187298856878369907754342779275062593097360174261304660902657054175175293596621118257423080621055505801741710792499049478156920401730962322893516322216007756110239952577304655927701294462267820636511933646870079332009482536569381910931148238036170814495210297312579500528444497837015027187650519617225546327717715960381576117023432768839019495106905666633991095759042654491917573150062036445877274929805057953058870875959644352384538788166803322192170638115083752607949220603226087767565968496614381897166172637093795199098674059187156218630986052386957414005791120911011034393859616491464139347409253447952035858004483085639457278694832631674245139700075899120375138241053679998733505993818315348722909940831829638319689327545027288189803615692863672777061314870109547068362195257970078830554239859382346231633659729604910475095812919599612146218373944169278470001743841851766908278682214439429442036955595168216431786548223547127240932475281754870201529327873527028929345782648386751038723592485913565717712791485416440116076569350753801280744088306974320406390192093633433152657438449346682954627226909996357927975815552018850000538858463244783650173880701010319600019839922321275667112970826799671929175585400242486048612919275082458992158370288538478904086302871412784550424150177687531557324281521232304378521897870353842163101094615076888905784315703062263010977717969820650892363103674545130056006184491900837447111497755200149381242390412952916653897731166488719525538503549175484112250972096098560422985705484669421585924253199362943406545879566841188906728985896677459317966083802846113598739447613225448811722642948705429955503911144252197293328742314834904088950521890193372543240265175018288032147249242171914743852031048548313645691852832770426762788178326436795693813339966982234801335198705959745707709233398054696656812146491710204694492051641693322790875475974122429654992915983490680431087533629644099393266336100433902417586521405555348152735616888916433334948554646913391062523198926874449871284780442898312636585927695212178485704551264819698749408208627896025718050167232133857891045508805790459975602920009616945517965632091906611033615065991424803499253877720013865730106192388723989509613296959596339945328362476324422053285772747632153125579343919036491438937993395065246134990634380556969508519782969431002818113017802055621413040716735867405261719596910845683377248714950065967596773514122342043704836578180575914255425915937392272749532578527796435068212233476664059947345088543412044141840446508875474829809083911665903425497232072608605359508930319445556382930536001824198840594198640435843156565133324130286878667411089235408664099125379223923827639819114864750065992683043389421013641315165314590974070659190722825767591352573193746586828860835378119687810743013891747941663483251973415044829777372210682127399483200405839541773198739521139041175148781457574657783394398454420889611799799596494708567371638529237678056963873274514085747227046073552077138065427528120673229930749656474518965838557497341922946226820978974777109467181815741109664851003828296830369634776488265563299467666939211685957987434242340535409996911650943809328844200150447681284704678089911812226420288704437224678736151654836195779403281072197710698209020588896967261196773198014863210565277766831538373926359386880551484904381794557042651034144929834469363343495244454074549949472539969069339432179732286231461580365274089624736113025400600273466221836329575858760605289636386932127989858170352215315969385618347582528613628687135056589202424583516579964041363193132670419221179032018874203735951922917552207686030683356511071116770796022842208972619722903870841669690750444732247652105558505876593669575838583350373481319826707367137936847439216729372850500613317102666726901652689312812979835076809583966399684360078361219496817555106106567794192827519586751116078736737514193082929714431254865476159098395639479587410616576050777569500423651284627326134157604550957922696237986320483050702182960673549929595461474351863338722003168767320786519214300122011309630481936009581637762480047338398446470360071569923488412664905543336012895567062280381132378960291036971443150165006112447601459342209502044983196825573222045979363387340309546450030681585866125500524888685365123719397721019698681423609263950564152643209470815715584544996858455732701662677210680194428282326982285832230549618097321721094187087139635297513675188781492934727012895045572843539089207124452404779759249849427098779985879344822112056595618381156155215630709389473842446072306352093102298615842953928361715301924858108427294432039757739878789211553577315087295807159827227699319196479278209404075023820672834257138896210935467963335303746987591280860286627100989504803455594333504117548884500950909656221908536559111373276105872946170059375118932711277422481457453661247943358879044452915342622257466511833701171646959269604690070487280150252137506244093969326821000171890504092404922105314736265617348783875568013449035559270486148433061573097034782975671598299185000763567883928983478483193281401903688230350279059359667530701983964521523211817892816629677274905930532862152838896529069396644453772650651838226879951157858156172912251040876377203558023639312140352223465268604835054296346190509146638470463168935678958308827261646759093461088943852580523142471923803770119100545338846391028470582616576575446593532863268042881747797660672217310312410949281934886517076475038639805754472572799189875553608970033939870026496444419307453249044973785529921612920827439709643572682961019515112518835589837564533470062573594816692988458956017544798857331384273964366113172366484291101167622011484357593203546815906113843851303756176008461292937770307971689431923310645205326202500035636895147712156673332268731764074275825993926727089951978187772264381203560721779892249805607345151152430776348602325818889623189599253971552968857074375255324911223843794948392888540280228029174888891226334583551691269371029436900499358635486584440416001475645068201428832292406914514482673083424945918528030410389268523486764705878281560874801845932748084561032170675613733565494034913935451868149345432270868312841456038968748161574019864753389957850343652606958264605878762996708321372076978717776578905016158208110549385000444025619535104984033945478872672415003342205980579707820331106240007154766725875667126629899448197969826606110865087340465996515264485881859311492908576858584197564715748928142960894997345758900628975443551682352754071838066530478993005986394451152107908482295622086077996198360341019299872210904076650625350609316257728102444274819396159451326107032144253930650861779901153722774556275397260715849439899470623930781189241597023123323774850096446308677906801694199001162997269350012608840408395004731235293175479772646057748015737621505070978212911993239105684559256991803556345643094132913818074936169261965764142380991199356555000434413887559127272453553916065289860416393630593756701594560388803475850436947609694457462096797870800030342818406396264677380368935306124276865290848026248466077897375953145877164153620836374112151583387747997128735670700615252262053212072968396714395843050016152532383503756833072472370873691163328055094964510786852882836015170215258665315524636803872915412789859073632296200067965648787806564442178245636233536854011932176105544751350866200384489391435416698137397569467435671641588097806818665895119706321803166319278196418611362364516736551198623211383645289251705957626698879866627717502103912714427369892392152733895883340910224322444743460740943896689755307723521281490756161785667551637704783156821777577054120175858152664572325314952900582257021190255480479227337674422554732195963714152955000349537485812892081300484271177435138960173554112634119606158649450076099077891559782993422335479108948992144029660700474798642554320746788225212087718756870532508068415120388821605837024671654117674447897275518553207199504810985796837168576667971292731165814093012388489920194418407292209480657648897173912928127869737660679738273658073237782163096364096941503794531180403508218394129693238311619543922072886953619959577515517560961292245499554446036011580271786175916012886488392269717548929686814359426874398758794508901185411219568783367366404718462045331201427111293411596322278560281041039233631729001510552061758639658406866483911396744520869595561122790992815118597340401266209101750564644973849406953288021370169259834877887482169169268700362719451517175576837407155126086355420967116734851598712075354483027817146786079799666155418639188922314114074316467277726146743685336630827290300284501670850306073806563339211738951880146025783669282790411746978321706697936630583365743349419885820897789831705131740846752344475637931236315772056656571498179556824058266183502234172955698913784592574122209109719055143972057172801257423497579018608080624819447819825581000478812656573314416386139653655209084630363311287781272718908135340230729237761836673642724737624633565603669242350120999321863565333462811414990602099759619172837448230716616179734678840209948629209987600360919563302152722650786772255657568924871690858288402427105281559849143894818529980951471994182085809771452055767991305612182934045609962977985416847924431457079729307885852842585497158904942612887074022970342261478104910411504215285066087008621621406474962724523532792657933909697804905840449793029803365583540973200965098697397669681473870854798704974863584390347139553499161007014748443990293011772555978411532618107544223320445320722094664168536073830208766441542771050092338809808769055710216240138283737305136068551404705544842029110592041680278748569362364148153662760342266502426146905724906775412713934643028480056702184590899074297264061396853176451453736006074371988920787209394685988220952939069480724123866537776849698658817837568659748780404555600747916157088312687859524121861781438630901092479204791529662786228873351154443365645878180239608816498758721461620367525751971069623072414133913048821995602026276920106845005804121719626647710563494396700679985584502931054536856536880251197047185381045667511696262228483666675165297256502869123933182452940231653746079211521389837118211851092283817881816674965485014397828469202087127395911503103881760002672948383615260364111556070581207886976055055156196993990146026503232938917089614544143286035538694819902934413018185034738125308940950582553372699679317670826445298003761797924380226878107766971190727872821506441940472670606964594025991971683592247201986613880949366091395797236747345548847507901887741578797257999757879592310999503234790591623290411497067609600741756506680048616585926872296334564152772602286973908534513054102700082709181436963864960380415656120890303025196575933766787864088584024085815050683616280430208008836305435026986087484443470497989034041531903556103691142203588977787692784225262933970593406609956786879190651891504491172521787964417409854755130405792565636529201556951486221673115892989249150170267275983006757548120208641537688883067694731651714771486935060466412483582109150742315605961637961288829295866626939707208689541370658143210496180873116151706776891944011237819249515555946886401637311304218874793231289644789450140765441591280452055035014774283667740969814711586630815511034743381352424333441576358300453112487856267862123326353487817387882787092588194765461328154465312187697609174185947432673314329621983159395410895132689155979496384000161189830988852789818533024885421910421280728121774325496196879596258767194433866851841590950707349978510676022977115499465608485591742356645980544335519111052218038830815408635304823888678869051651935880605062264152274619050137816199454215707476835404197525324489424564159459383243288633157324278731759265688705901990765279532139845521382794751630730246410436384235465210455485227705482767122398267935111484838332061047086455969772332872802282298701065185701928997079446303614942362180964396628375914700131258859822469349901992018730037401418596011312866257824118954406244357688102001761284211172016936257376399087610989245012908266767069412786805036107937760402762127204025153768278507385165392604395898494223518258023098561314849923592020639771523474860662075413958511812958995522933737233208720725078059721613818523186406340514880630418470696877331333288516489081342619059176406734411302899216950000859266999454388144909417943457762763194901533461963088568238955405037554588492212379561477718254055893005462901519429776689805745324432963513344509043606376738316933789052771486951356643208635643754135748849298534942649466457740920427724392000810113708130677443141232482020728651379708854052223152766425963428470386752159824761242699199282489131457501682663060035923220041824449331432092375040342751911945012351398752997458785705430647082304769114361339762754371747844524251845193640120450919602178566701274823918556606399004838501788918997086197454211144652643797174067912983072639457540695499029275245786684828717598078431037938197713708958941351365756588562854264363727644338877353430212864947793899377231709735263446189256075971195854527843821150618696224607383590118983147493939512531491288207475293305959853332187465719618727191866529358290052601476917842271643754760798045642887228405414823710120458530368639808787336078837653901353060094557825806782871457250594457259742014817289455277635683844655876075453214502975303595848621921809203510060693890826996109699811146767579477329674622738146647550789222462724063533238796020255241045328124162044255636113856137293708322202781056123843865990215024663243417177992430594487824467799279784132584076783764884862993983144785981113270610568022444762778857023280372044279952092902132573756270356019249781861870760674915815731082115167149388119865930210337640128375895424179898034884695082512414944731345848149313621566473626185416264191029694716607465543486918174606821783158489680659126631125888957792824074827150188412768575281670800698128628624744271085359734161035059217972896721196040221281918033862996458355112393494038832183638799852724847530787893664465562003518001049880891555332232284173603280960686605880768859084766869278907231799116484332738199361871452501608296718072266879503982683780736374149640230247085523756791102548678543126486524661103512158913334839037792883467100800125728845297925502700747297420024167450753855159945015658354061026581088333707825989043717992591277330225870609898386206287699321488892769535829259593187088441959422487785301976370265989054696256003560239459047723474929552058612080916662990301167065747804505175269642020344231831947539930469603629598175903748497998328585773782571480250746950834698265585031464026603511847903045852143365470315158549571347887194191261110286621734489637711418300444464266843522227230980890683136522045309603330465362800280154563057575430108447943287903769928958584146554196030165106360312513696725106255501237051390980535717918849488151986644349955741480318409436691852733317659642937812136216138558440316501603791450851345988685443028755389742136936500369533725395131166921266785903519437635856929710826189521560686502135892263717698426711594720470469834311406849955701925403460576098863119213211679766248827102242720496394425805318022896984128162258440775269789956446936737169110422528599394109038660299134537991109954404423745726837002180452770025178096224257758730924540427126876973354681560011983005598168855387678498491774931922213715390015839628604594165411804061061315189267436898230730312898677770781818863809543914262515404011128788345268800285148813745048613339893565587294825412052703969564764421431216945992866500761370197573457889044874367996415304638915506989898662468171420702247183366207896252313458561025888528436482524360640790766387715092447989068061328259335860135950690218874296893892925647322570729229756120336271926509138070623513953670205662972686641943995468378731639912916851155262881218443913939271199915942390969942056861676594544583585116323884650318132873640456892596435269323895241414599576855009358737954111174884337910282200983204193847318125647894515148072045987281518709214369570893888640394449983757728354719998838716399625397292215101402772198814845289217643251624746851783142352786576666628829373344087863187413932074977781595497911909588550388169029456280363818088845745550529073168308432820425527941305826830216581083376436679952051845111544206559688510882823297979007875168608841416097007672804550187365563152204604210744635500268316236906850369460930688804829451664707020540341771619321057090722178293225915758167098836830352168523442422426596987163972713599568801366354396452308619741549406280360326562325708846910758088923973937707229708826687835938364042393090026385227527328273590941188455648734453833305869574309400352156795374370254931794073811562271505046752604499277477176631761342851015773554710517131681247693867959877610000761684554371272277322827799244550727757031831432028852307262996346602676406840044797290235926440969737156357910904429095923959129969945805695596621840860046548964109474815817248494039981777328627426923071263356575857196393604736297874813850297216296233294485098907004783787353167744347517137067451441709435652169508399649342264979415271912599418379448862063513973949662041637854518161319293538635906613582934240529994636909476658125417328570511343958551164692232016028926111316125812574232558404802464479047048063776459449026577156631507049602100038393048657174953019062717635467732748196112629409584456711459321214418132135477142632171123555690654252485379169213664969905293724133637741719638906648885114148645480933771616844601817236666996085795671940918509028559934518823255244137737567709435683507085018648133357075855764532319125958163216926964114919079235743896901753882538221089622371815233830366122388808873388145074283244368991439556593292160526281296134748072446116933124525131651169058027060948229848170722069934241081047284844434303953486117434385060661971621878960316434337196990924381691484131778414977192754303832966755542616307189403759034415231690380091830659516466961729543333555550810798643740605107256403044290732796205114992128455730511086636434406067316570241252896439264403923678944440617864463072080826946290894075372892892623944275259075077735197370884653699113672918613224254177562998451641732336416618129265162303040055114687492841640867524912045705336602024281379442892869850118909312277666840853518428776329987108753330691327168996275835883023348802859383794964076234434759019883219451748989217474763765441274750982540537803599760364800328969660969164972593049797957892555989069293822127369612623981979974415221331392482007988193850415794800077324032364178023844495308827306943416203747678271347581342037109715214613911918020959546377554776107587255666556220463316361543346526138096366529572314178541766069028273203963872770659271306918798703594205562969549059657882818491227996806806329329453420228287587890150118900466806690664893599862733854837444386302487875835412211265537066016011605380848536706903180764740648065510163224614366951684668612788185495324171044659804553826033937202034626888227942048693804037534146704866048050161546020488497099458515895399297464997652944793181826634468777270784405773130681480002915569539249471147297648638434898024431672998332627837354674007991847257283479219172774756192953543236986880554328093464436424218659141123210244505185969654392335552113016601077751795935068755825767881933224280484830140908833192444639105809599406593022950797337854889508895916460999457510285132543656250483639026716966849334767127270909543558733155171246000353644539414220333030166632770415720747054129146676812290053030317657393094567001058983683514405852040139274634193385280490426803762452886100713176259076356180786445602578530949818902566320786332373066126496405603323311178134246345768521877653661968625940402156967686383583161853595881480670509570747200362805725412518916818463876911924712389000354896236829517500771449626208996095333014494545959858897043270629450776861372300021198469197595469324838204028196300214030510819613361323341109542637399345773217808835159051512713891935590188590980822818175024406340695718499288733476139152871997112631837668421575321057870453180237187247894834629177568999303523520223013193669372540406525843062831593293538459209062783970691393191167177358445097532545707055654777541938217395939287440450210431958844453467039538987710764987237972002945179422774517034709389287657895686245089381817745572693010483837635905321192359030453767795612672482247700994758972155288281565031976543144100978016229788624639369503566588862756280265162318263816032102799876431881627677679312218933248966711748484983640252903000019301713512051594005857031520637992522669862571259722072097549103897435873575607899107840899727271209777703656654015486348015045352618245236627335431721652185367096109252278972452822511896208387108053413282536825542505263057612236114945817869015806141784933259876603063596997656461673584677627319373956487673416555478493861068505524405625649409127358072710714118015798195756259599354083644026589483998824109930623830264056154327563450750858020525426742089922732889002235433233453050210267724934139484577244341679459266229997205427761231542968811089264545465207911855729719670815620806777455917427356834878592733371155178932543998134530246495513000101813976672505970815902435623865592559306474605897654642578141152586360391905474874292270182988690979638182516360353269843083112774104075730580599263052680103954450333480232518597873519755165090378601701393864907312474362988118886044303696125562756700548429903203229254674269005295434730875062942143911228818404245650736726484591461658472007908943400516368852128550161789784376480090429449748831251786468019185687066166930785200176923092272792067129395595851151503520718588090939207168098461439627447272989557018372466159233545530494418776853123829215894891797182167956259415250168406824701237741559945249385920451347300451366972967353812721485885822290251265423406231019833835669948029197648277806621584510962942023667237496121339318485610793094289978109908199209166899731624797717366090570651306826971952663342983749281227828061074651579674075901294732277652451502222988081509189003830543325489902465436637553583265650600143815530912555219419337970977745006488649396199968393248384005367955889339009489896132564415743622825624329424160693107634719393031794776756638400878716426064448642474358491044735301398532913773731628796025899652121104699604871701999408701479404026194320238938767926041237092987060154312861031225327488683700098335618924920395993596471411766043349501749857369048550150608980823328985496802967630978210131785738033326753601295140924853708609483304164791408631421438607599825195119217028468606727894667808786437507572066720589570344555070519110995715107833136934758312035866121782066801343834909498987177644934298164486934409219585952319817766843316544479453267874047721889565844357227743155776577685067126139070345521473860905455260032474469853419711302236787957064922094466558765792551742705329592216547103268804594368426876668856935041464387456127607955851796092537792077346456630588876425011990220306290722122939740871291716021304168634234049899611115886601292095560211834715916122164000604610986013892845245256799256163696668211558684313355787002954018314581162278384526506069820942775813077438130498520769511432125376254302579533827563006403799559326050407483491168518631002007517403500035275751364896679691452594591715781361133541756426586678822573099684519169368321878175649787163927396879957352131522639069020702461305084632682089541204626129667804219570939320202168974412375054469053439960837030646651596156325407187437460801182809601314941599070569607425626657529191589390750784922792340226080454479891487600161641533928345637755772299455308071829690901774023729981566704358261322350259553057302322204044853296676683727483245811412649185727887666243632062431828282209431242861498409942486577954509032490799078016362193106904803691783773044414865070668814190151347843713095216120055482687449318826056213580033418420480822730950855226835132803628947563448850962762791960709745444602422015412980037509822050757968142299575892251774762653199964095345320508053043972960112198462700324418931005981148770658516162281421064916596882029513448068508457050574367278957464832808369144308533757098340762873501172526174669929161854653726584175484497952920128309883566965994712479863075751922724350298836286001763856078471171395172986359276628303843058336513235909215602131478854947126420163679716894194334662215222127397965389782564949263120009931964924151808938639463278958071786237456741488158446824451600216509314148875196167888331128498062510861515293414450069365366756291044180501227604952108518118383678339485951708349940495503448207086420996662459524562149345630983804422278433609037095599351700577601541779307340923049872406057405028162989340278984181180391772599631899345776878604374169618286673457241112723477987263069527829712068919389366930433189758165800878967016565752227940686086346808314494468084896276032196971183480046745286335631543515971747164113560359065898571305514548323331188599631472336845533096259115693072443388704364656534142934029370261635104311602966797780228136452829816827388331639298648926500163204641700910674240899584896738557759999160857702344747734363481626449904704060498138105750051100393375575594775360160408688525421035680060769177099357819324725968622951338475833935114488360634978666182947861936271996160596991489659441187070241997519121261878187631699125076847658044652348787084515176670496085331971839631079600234325871202467636365147003470884760466881520465786655146775400800383867808815736232549303607562859530946142950407813762659975675391887228670551238375366665579286696076967653468375609293990418394544378054704322755068350175164879382930525362090670941244704189566487318042089736512332145655113523368858861418693799778899108327681977489794133212464236243802700061498612888963466759221519664391362251694899730463297531098257129673048727621326562888416726941407976639911809372500547577482191250835009266864042967952122562001689712906413390377906596789931572992622133907386381170846282000740487370192703202425003617789393482879839261243071747340642600790553401665671150687845490903942100273200677086592840923297970646046544559131557814991437701552680133596586539677222780115003133192074629348194861929922958170148088741942041986258331759789826310941540663730086084115279266963512098319139441625775202943874943973292581603294680398755973834736568529332399609165035825740510076252107925042689867737666785139547240322598065882978596746974733492033904084560894610696304154620844402299904742663512797172209752740114776776404214886290048502448818995344820920199682137245753646028911004763022884880273019670821741632774846902719253281229455285328223281329127863554712226060634646612478406708482938703957311915568581021330730892311390936691993142681842907768963834955294174254876163946245896628802165171221282690203309853336252998645864492195745290178728689886171492559361055970632397269444226575355779085490357420243450641068154606720491772455291454704982658314621737992914819118911065613724333096431223201561021758695500645387732430024655810124609671470964086150909721904859172230565657065613540729731677736777105391525122001229150114166527471651795471886621673464181108553090742242732963503199405085438669706594652811531097053920740458616017426568549643392891274715210946625504342245803771117013688007886672970672055042252538422775148884353389338844913869024530787258420487133356951184839974804451159155180217686625110071201219457351907243271286474407381890674214666419071133943962459567352190050175353598265575780639348180431804227211426485365513922485783234795924767872495162101608010776854022452191614263326979833680173840613884765011676029198078981759604315598396524838260613093085699570847734953197313066633016432581713779756802736396799570955388379826561294790023865394114784899821030258993315441140945792270585007592124031443034213665145121038562446549623875013255848548088601329191245359264337804070631237581248816420316027250459479597755734959539090626904490545195857616799911892451528570552594196511679016543922702954705434623781624398095193093935594342364704254689346517980549372735877942271893295735876349447429222882583938934745993961919388322727730932979793063222443713987692683002363699260707904306249333268517365934105790597300765954734312144288905359181354025565967959199738145568367769066827173056332036484473832107476429848055025454949846425194786897158156951224885808878824383604102685357966584861398622737954976703164425339950071748988754013066380021091518167649360351796364596455509890857356604354019618448626626086061772434154850424701925785196084325589003050531924730325649786024817645477104620269782939517540278593531326723440343077736824648261518832328089518545099025497681681000255740602117603218712918527411279129066749675129560947006656207763763614673214534119511436801240318867077691321073939946467903158555176476263331511890030157036643637655991894255896629936955222765532724221694683413883408452951757514022553566516413963150042530474399995832406908800519960483398642882891386819717832158816427719515755804623259583048954430746932788980880820614844487473912989900187214573469121971108868823884636985195691932655178337062249225772705746265286976392766694238051455134848937242782276762068031291142728050288058029609661469363154988172548854713096040823957992881710983531572027998960143017900624378373227313818804432305705598226382148875024643212342849730800840276580295270184741389857632989724785571194893475819258946637420747304161656665460392713143286447041032024432409544423761925613614037867980085578616421363586948088571533535570999766339344599933475896183379172088895647704038893565381718625020520107661697660394489438337054128752383120885554419732972631277306413391147084476185584955941834400267680636977205010471768431042749407148982351602851937884539540141440207604769063317029484126899943106967143034249142328100153738955015348859603778299079945929132225197766557442758707713355631782745972053861481356477108969353984582415860088118845455799199423091028824159611563728929581214681289648641976837869973434154360269923155587543138457947032333442021662917081310305600992947373054944437534375663165231089764687372252133289271783958305344487646702476039921480610683098229329182627606345072381246730538219954373272603656804263038914043971525809625013260212316819048909242217519607527065791039874416874630573079181856533978573493629332176050901818205728625799753432334085480439847694450382428823728672204281737493202022817688323876463028326739331777422961519162715057774419005526617830972195746742498835142682730563787752407728715077293706629961560148385217682535777240756052357109842849068691330947739742887708633872276669823821905179461752081037665203842001516206354934252308912122008787575421201195803056569803429203618814659141069606683843959948622184434400529584948981291481134609224810844475248257376273305099855389984341424395947248768546841803204578280910339867858506728628860375207414500062983701370982794928427816691097221200872578196692121200391698883092081978147712759221895297215771709632684060020047974461400229518825897343151017043965254398138565629955824840822652365673838857557207143749864204753373760663203087123143149883452819461077795516889051438356299093741804692949835555966510792130462471430058438728524882408049382843126277976633050593434182275075507251415407495816059796672963632534555436808037728902286947630546015922925265967273736740279127672279128868234788880766462757802175375173913796041916770901130697603345519090832973178799813362413090101225679091884478585506354987337966647733806628101066480281472299522352688409195852668347506154269402674068999831373068338815084554635849113549952717226292502393126259273140139603347863823322643408032407714958433815085136945116636003052883572397847687664070809757975772355496968125632929731718122920155507442338002280446125404328033755537007302432453225108118509204990314091806905090401997269038866436603585444851155718524749284100528403828554620429209676302947393346290288511118712574123913968546207626924664560429034724937413826098972681653781481453611216645061967301721128428742058534019655201171263805989352728443743224794772346631214055773685219947234310519613224900226019341673855801479464552412976564286334456324764200495014276358999298323529453171462508463985912989230071109712807674865477773121700031549863316456913999262592446579689158610140376853881597357388214082270824027814554817864279188743831412107516153857529236302205959811348210037924583149167024104166143353446399131491809446040234045471653008861909894130697488813301543904192618076752875226786461326968160823833084760118874943247789875610992966016921064200043503072233214073988550967870563237878564448292983055807842999757780814077174580726935833235180065638924550662525990645651080810667637926831239483978070601532097924193216357450806099826523950847132533163830901228106517427262589743473669808487810454536332559295921450619384206754296062326992411881398169427424920654600589477923783410508433532457534769492611400366050318779962718237318370936677975056553004866351580859245854697863531288316083772369066041259780831353563545061075130963496321315932316008889209095843805366715425299347182708562923817350953911689066020129624814416082280290106267450642633244509445792145272195570121542910674141627916440216688915499956345054197721464236978318196631717168912970222775670105461142495627653030347803379399175484083833960791616131626814775599361142439212626608556001525613531241895144305650026207797643611313257353169352752556628859327834913062970624319263418528499321995421804693478376534126785581275335515655362593204126476591851352935049500118055103329197574262996451992006896519188863971220149144287183871932351076516319673995269296317416238100182639705808560969138679550187984935037328121046109526719402378836343995845484112283814223683953619901181201617047634132249335635698875319761214221002325775678214408767110021459503145966762432621087257165216925098499479609088087485286082674895483897669276344740399166457162027070741773570162704704281974915420005288423049746642723189297254466605447251105065645891797422929840043719066778176793633653213167898700524148885288130690988400664214741931984295968518690135633701019165622696809764933739934410338758610097103160261237432482622058377931571962927273199427230522966179192104627196539394709625004941832186990598750440239002441262456700041654939842845737027483567582583531200236644308586037549607469579393253535260420745726707249994679477404657869922908593084494248493638923191378722270578509628355713054757949087451445685014364335662289995647331040290038222836299618034239721736277351089980114675530178092710280271604438798679510169966189355374285928450029114002251413408780255396779242822357693649650294273620112221565617777135914494874757394928847374331909151871609663028098510583918124233955173904125727075597212314305473387185002215492834864862525585968016143227878211573692136680986031743423652787009791620032823268718899814237937007600593837463285295425174670893619324359163669274851800411929367823704705651828291355330369970284667414576822621749084622004246645593307656311994521257998669089723743540026517000833786545423635722813265048150740387460157307808495778545410626160437007885167715180656805057863469087350858706438308275606003382570483899303089349739553841544388435207833047919292275854829674688653498090059732923471223189242830843559317234120823173471085732384104957050109823677927288518237176220269759035066615930409277931162020378120437557492319424787627535176648059120336941004670172378431294895731456156611254978882391069554363798246695014792241635249755783483522429230083586531269397451084949392614278460659518824975209650807394167072807441385198733479538457974053915271227641522028432414709031568341640493548329130017757648505640425974179935385682415193736710314467819832670127818004070018261726803237564884675110162276965116835777376292577875242086215797980455076625000704707885706378797578229252223580767622877719939686622080126318324317469070866189926859703424243731209641413570478175547605561494270063505033531998759798173404901168836667298727673525017642505914401086878846578396352357982798612952022284082629848408375448197814890090971367741128753375964931180786568615346489003546680207811238208826644770312721845930263093772688537598078561891543952611479527211265924604775895186760516869645321489724277605810195203647425072804668451438598386673875723836528173855824406939490058381747658716731645327097488021856359633411614897022229453077139149186811797690478177986810446617483803821999934365095399667498777529400818435520938635147218986574919614914086185036900141562746018859770292039893381336707490610003860585277888694328491828101463814894942543514606278134280511684456725140487453364708998874944822700488055696188577264215653875782750402851278928295211057592971559964023904698494150306644249244878471481798159446702693958946580055731961492124045729251085277358813099828650565883931698034119679547106190763155003524528714182486608598749036580505298753386769348981212385254791576917598415345722636981587199153154602989764939661982969870051750516967586044431699809850354862164869737283698500499018385309753111651841433557121546675572439996015732786869634712221790330581287296825490980067801669979966441649246481606525098042221142510284131499945592411484192253690231901576119023172286735736629890010468513810014050162091208063885977757968862400539931258190937954895916292858381588654615652501182406012716266504922921372677824807887888255105284383623630519938924717195753208909706120744128141996009491248859028609835890315914119516716883224363005731663145869734038396487596911339059475634253974912713496759070300224859780304306082758788777913516240803013973992545396063802316954420434354843988228415188658148395108307245499779252842244593864196329261633813720004233363230380973747171773395260068101164352374824579025237463911708778655711952986475500324650232463703880477589052670411579442598950585299559319912046481565941569843274954805059914160766534070105846645173982422575362852631775605769083947600504407786366058596930729548179007470651217976098116457525116223300201926246669073110563925118366011376390394484408643836850256398619076021867603084764879959300707895482960249455819435040073439641463722620758128143999919596609088152647890037967012526010801381129280428040483168334869121781758226449535986460773214854083991336359873450074177957392033367154043595654686028531146809802412113777698857013006297788358471531486671936478336894697923629019642380149378839931760161033951290594939076867608159510682362968593362958861613436740763415454854799141914389033947501262659969402356726425477730880291135855102244374990332804469156896917288746300122286897841035781881432527655862741306138250001335949735803462515769209983107911238892711395930926074877615346661244894376091892900618090203945277679737094785466454426599965258839913305396801475761217913081701226716213904812111795200621387776376652020045856753745004510823916858867669053936395695888851807805434626929011147383113139801518638989705970836653569702162211733313366063155192072154144192105821570374517700993660400096259118881954856466887486576548617838207416034249538597098171125185782803822532126501819347084827252045322349671796336415114857666425937781480748803421684797087823973045767240679900399414869522895632189412791504200091176477731675038064168593498095872049996825618063844261546691256160728977664080478213757844155537333881897592383580770441552810324072586790070517861944393074290212780584623562750412569129060487099923031489323984692982898889448058796954221340763450745549291091230525677122642129531541102364545805343522013202988832767721702373164661731306439473873166714289577458888750828719416522883860913972220623256921112724912795222426266812835233564098604173994419282473543810093702255981946824708300036643636652212199645482213588481158912135932758659553175068717424712030898182251346254589023522382499572716288861601448381482457510597080125248545014550425941431265844793806962998435711872044257374074331043753381268969836627995972508263577061584949374338119122277192981880240411688427015674301574804656772175208518341273842577351424077668691997049831813214480943093829954099541326440726868472091794268574397222529785394523662564979426649092596511136746581931480043194047293291834385196241688587908195075877100184552687173865963820679804766084251472522447864428462048551212683178188196207029332304671840968246442151495983640427853270568205968922232609216455962217047004526284472481808056377910441754695552014988666348057613170031106632374943768642067637495123309360556891661163223285579262658555266822038469535136600822348831127821334951798012923397745519256781530612354546490919128415295821279468479140872664073695238733268905743014895055220906007754080558736407439068938847549976859670690561434649539063799348994102783227701172145175023988731663160415590146450700776763286790729850370155874223860446674681746212473685809410679029158378480178354564532472310206452030965119751980039916707521103233756302746302360261147187907045415488491553523443317988416268118398502825518828080696273349242672852967235007439605153394393089529478217828609852551332609031270774043316526377968035615327547959164747253146985607137096246476554796754820948151743285387650247342570811659666678459386824189019858658815067472899225035826681618385874676050578683552391116680308366543762152642644421088298231259639072886198891102875365417635276071153228871975912265239064395931499291033694954537444136084637453603963219160305455587476712329044101440964110685606335534932962098919001581098084048921977410292548780585643445787029831890866367581823206223268568192050750464435616205310429510151790205299172416915034880848924940474574770306111011005907643547544680528667917340919837514598462051447002674647055100416875143011591264027104639305758980108177815892144004264470778925345170588030381621985765613541742850293756168145488971010462495842871811793837665829144344297457088744164440513735123733691450327038011122650988470693042921688398573299162758992598185110573536800062545800713976289932447988828713172539253245119741907177791328682997245691757627110416336890618228156370571403591026066816197850724247406545549679558733408668316707819652615333706816986147556856930137095552046685008205236363326588661010728291237867322899475589334163783990047114933529139620025574410774236134941780678484908545129419949569856033180979611212894901820992561703414820516491617297109768521713514438939371632071848969678070919396313632003701260338353248040904003392406850275142613810416113613259409049353743123927434349526862807725353467098447449197392887439331813070517462981598616384130733428680979056999169938939998871813877665151195739523799164650087102684257502250054131554718743997320037896169197450570283799097982368344764357422557260265723574251992389423049227347298191749293723866918475441420809098457775766281944198791767190090335046380330335646339764932507806306828941761779031454415748351627657334058622936964416919660137730086833449797047545549021160526090844257015003547769398565484538615385224368787993201157990595466274590771353839615629635208542620280407570839316520290260132574827773965297325791202747486806895956945661283177423678295752974346514410388384313556726912444419815359146840037840898515519205200659072786904234402044636078079110509338686610978165616701167886836550029083072293942812272282185571123188252952442948379840418794234924127664304735835250939875202541930609905925408175913475090419159111330312851712779452278135907007807353204004785810313268733585113443941809485591395273077553895276165705488597861323574012588219849277235312010418084203695832079195780116709970596694961411731720615532984086923350611408600070620358892719594642855601300941675108747254666737607752517012245589141775034304443672786338838986630894506882486252304518489781761829149505228187312417742062793509183833977266810771087058966818071654469125625972053920896131030673372410865383450153057664766928887700138815027755306549265994280477636471251779978475884528669336724397431648857171140307169545615118684587040462293633306305717748871274454471339266601496768017995299086032646663104372892556757447031794038015030427293106063122398208106855425521745414808830790989440142390202959572352228529701222076801530511755637076956618066989185460313315731617306683610646147530310375440249265069958677381802737199626589517571957507426294777222169595391201355914879762659146213284348382014944147933509208322061936650070155227871035864520241456284371623603387754581403519753394922324826729032737267257371315060469149433266106735150586679364506917039019622980519474660334381816407407979536185621084252571648519823806859601233617267360696889463402885424003653192776912505464041041495246017328984596502349778184419499452885638035336666510344702684491018867205549907111007694918533638847810951149618597245020274947113336866465499974669266501834282326706047146078933182208352262414717034708192174950205432069766651873143791188758615954245448186030331389813745992991026895218384843087823614380790266056969217167722770341772036903581572564672135739240978305426026019404207505182927362146549729810476081617135004591171531103958775216828284854403935547895955531798886324369423856630303957571139742227924913384949836405073394284923655252937048924106159929809920264562498043888221461512016503721846695380910221194912765182985621738043457987465544984312095995341608494878546058624850133553204147133379483693321747977740928864617380475283425714956075293467864429209562744775450633250416260428026050662358277776890117492129569055773167097924463907851950949123824838207004399037447274923338562110487849042452842818407811801398412625301011261201364161782005879825712855047072883181472269768026812297798969493462959465585995767414064401884743055181962851890128990556831515776149655089363239515311815883337948981096018737910896657079470757503493822640767520284911838700931355670554068378967674736369278099059272847992298489022845653068879174329183154951393073735489353354852237927693706600584017946235386571064535046788162731629877057029230472364010347636856765117463188103236619417119434007875558532107612496761239344155292590933040313565243267683853434867256440214117710500961340851728933655278968492897625498784386608165273920836568520936109109486915820048781039823929045444949055097305591699564218925549018102123169264149241936591639020971449105297155400507987803577724060787208060483389624669345262790468413362908709417857444600258703742876464496214592718941118508687816639020478335349695896844227479756192837910054302491019845657775072524890979058550121334305877885155913498440820348044113241872642048053383458068072398869427750668713588259942405385563654349209604899856176860881155752804135359879876843337844095773397087290753977071088986064807624714611936184802130028021917068962220250102458267861979454052983926876903800141236762785126962530816341269216745255462417439208280286152492988670819476463100921822623851212196098983146191502289960559493027036955494260853099924223582675778149078095421596137690507780939866800584716429148615083313548023270178530227308129684575653677642878034591702638245835069440567255847510436853174749506549873537954993382614857040177176117867300586434157961813765535103918887048510158419168547571525105544601061510437071395474003129334629979425194941028692991593193509442494456057826124455601695068985752642710711282351172298007905378156322470586624328450897354589627048358083388452328326478054569702844864725355303949292524853120255834765753297125939865999061982989906527594394921279046359435023676268242152036488005242263325927552598023992725429335296101292890188701973165798483525031362653552797460471826132787446604616690799691140130578660317392266201979095927974420018264783970278988918573676018356917526276203564154344203104615567033816959181789051853806576502913135663630153606176333710592935111846010070487798873560105982684542935027684180608897073133999933948065188079197696135851046138110925241469566228419848812898952004331015062092278122559545911518385501920785187613548435474880531976035948763761892912634873532698690723711340264651745600396987616828229344474204408537342051887562882747758972236723011089090004876378730758956585361962003037733374970753919853663528421304774287794963513795241668168509946359000127332369070814276513343526369807680292633066391259822274676440664973904619427823724566427369131662497587118214397324988363889856571006401314325682773708950354133341519765635239325670172953923467634953981447677808805958468423507424738252899408870612733528934523478277331043399107613285645933155365375082061596360544806845849215088703921712153895498014324510329500873927908195271434061994993405537350380161222065133132666442992789356918450817317787011483789963201876606873070495432155717210588307761397181084446551654055416993052049667362225755635502216115912041950616061195532948569787952764487098599500072053595527530061926566080595096574323893186104798273104947688560897197409173644345660517087413210592559096647235464837020090412165364572128096744062292858148141605684505800814836144007665984259189511638301118143431592239735426317184466835237917430144032809664415402571099894453836062405162627482823009063469874606130588781356302761690893060641186064146098597828457585699245582472520262568880264404368733506757312673163969999942813720390819573832599512482779314941752469523900409934038267987114616976625766523836913756170823852604036323896867161486163951963551026487784894958447075005079171075493900690404117026381103617033591320658073671494240922911472693692665476771070960821012214935053201779577817447515947986744151421897998820083738794795360114684871023328117537307572498459372100362884224620229791771033471433476354375899595733077123003824832731674645834925405181634413170486415888040068041902972456020052531673864961409665050643488450959363738846760019369772698352296875031900448999570327213869552933597730446250507385987485778374016610598917694682796277004002182110522310035034100605907371491157397614657648952705806410515950070334686553376575198177874584403639017943707833411746205917535619486616006857125681420824064196958578092226933997379486006472445455703483786836637263659488872673837351704153938230698540031230589630434997077130882819350408529974749856985206957257558713702088656157132564143475623900534014065766330549547263600857603073033330707828647474315590872215280351669344079068496391150770369532673008218074203909145450656847288140863024013467875643295364757979658094143230973957003828229130543753618027411999346385557025937470179116562362157474079241184229015991028116403396749702027383847154070881306651448233395544803303909775510537681959863663364528366120689455042171184916951105535995310515090453986740420410126887806424546587056794238273189875660427141399895694878637342435578528230324891773834825148460243590712660545171442310097764314363071519464457248938746568324297259575566352024294530347585133707889483414749040778167351048653201242986962039584143196827202565034461826334080181680943711696373689787800516249555296827134100359271709188204036353920543126967408968238650942557772971064794807656870182569028147505066230335778987434517050405431435343208020768708352135000797599792996479186462296346780836843589814671972550283837285794374129812630125078974794373698031489729747740783260710372399618186617498516560949384516140251921216084798919539007774395066127336687292873242127616863902107047194827094687202366734796519629737440266082449760383488832575861647784997972984963931183076160113605147900059289914690986485226439091121040852787066680299523218462173592053584293092744537751443050843883246771338533822655142509817283826474713910822442240107046466703158695782484534384876549840312223160281076384161581331815715880439657068264877700689438490127548330903771697712296507438337944003591486629875707435252630791081908372681299699388685137663553402946083769445431617911849704620857058700307265393716763161632468946408252707978772554241547986660983176315445309682320592197058298395375413896971933779740644604607915739811534446225048738496163151931233703734380150603852542396366697426869671182731362353867711211282432915275734655232808100811261932260639625367184816173230996825451138731481382921689220527298872124404662699154799268963510186967391424158415486322445413613275904872768073771019472470173130620427620745312200460046157577176133913056063023442784142766252583898769038047881988418992020404060752440146990541409535100972390429663519406688732880396299719258255438061263071439483987163823800640886605552995300290271081753696986504659874867992662093215034412770626717472465256968789808542838994610671891718479112173401375814839025970240159384299166633814971984340972054179068378588268959186822202811603021773382886852687111698352202932564194463464453650317479562626074653723388754429073294538173056040996176802334255980066904240482317223700410235004628310138284878134910569815480501241885434797555701148727525414576381827016397003707686923561293464418621615446424901083866606633900726173203635544655555680509323608873079933849712809909915513321739049578806582786875270319363520514492799399964065355653998055014132891676216750230347890269547043890213400483886488254916164355293636357820782182796187966625035014697609731970572357126465312294744231937193651373204775333911233171380609669947322204199083826982633546957506740052375263263719577832739539722456718192145642610452465693532814810174921773251747915802474124515982770654664367063391000549447847060281876875995227952689678133312591756341147712640243558761148119795591925230424074463678798683520005456643549851116736557273594536629436875233787454173189009075949578045274625702847203158969943286302658000835341677982254038518979507030879398684015228916937974813390215395184247258740680964855940809620851289757300264928597439987297227626305337865434591638966815748912699347954492146569448473612070549659254158999861279930227056393117820084661490373306128246216267470125520611914489844076510599392877859818158799229986138860936322020030935437795989454533183223516835519981281991104655868314312415039374926137928052208793662475853454605537068733671232204461339635266871110812641774567256683963909881528191072115978987288693988691159078446340382590289842839993028051565582417069903125095620166140693632987819816719662094750229057837733763912172830861985889981223202590686387539663869185141546749394650309337845617359974663809164011983592157729350439911037415590823461340794168387475152459348111629527075792597940817642820513314478741615429182522782643131756978432214765295603147026710856630381881317537841357335233716357674682442546108442786366755598681363908072347879854410971033167687236346123610265722914331625809502430848636677694652024471942699120797720597486865501865547918740376390563904591279250145964056850846753670033354819040013543326508410546500218984213115579881024832789783041245060910163761541900010583174321368937473339301040038181429001069661962039744266039732192946551440807975029497653529646948134891097298812524152425694290670255252187634633394509654951296720216773080926295486027275269140520874129304802759587792614559436808020177942515916854534902792153830145231261376758261500410840488203842003243684150353138087154976872474792999537252661171609353756213180682729538050991625321925177809612450569289995855572072326294952300728359922396541656549405351206846704957181655920412550750521561552928428831034194825680307534140123307496533044068646049044236649839315838468940991882872981337188770004705726646480746916973723835706828315833312700174018400420920004986561516350765638296041357877913174284214499141700295925062528864323477796258385936409531654410324642583839348871659356251640200078644781673826783269021742991767189137798450123938517917562348212517460160540314953690766686100198504773205043281113484394189464774353820201941654417456418497843088957306923860511453103745122968425625666549007839421486831373168613074938791902161377657394802826232011205214896371558283232139434418867499224039591268077136218695821369769906570257108653806147233702155960992985175586500407624246114466177722204947828275206048287431800562074290244018557230562796056960494662852218804131660322135809251021214575431799689156319593189765160195927583850651307816712007438493904434435353393245260003647518708653856505216450137056514209340827182609622168399617532105385361177698503757393364891516589586836570829115692180706057163204781907460896140067036348506055396025692382822702771844860408600595903472838200846778189757757146904656048753636472239509350893699789275850269999473928144082403310146052468875252234269347353361310536033661418603242361243595708783509695515947708884002696531506977729459367895259601849638454062648594070148899439684606786143220071438042036554786258694275499681284668765658120453464825042668278986053616527393075754212917866341893428242081312165713366740756067155582221406716592965956371379391854724212000270075503583405046971934417955739184441769241131065877184177150565638725344252905437039450992332436351411948318436763604534742804151084150486566282387750289906062972345822529431726237601306406557774721749391773659436033576776707817784741757169467402090616223451252574339622271764423526989536287273957932527803148852945128594649740760172418041661571999990695673524378016875944289538809220031289697669706317882752606921770808715017258355519366950323628052034983201699985981899554060326645317108876446342203225433718462456439028784634349170225597004852157040524153615065470737396741539729108950466025411859275781167511684339303541433534253195604912579961153699474250410340728194745482241155965845456246088273817062153906739747366876633489034210409133463984106331924439270442884227801299020595009602449642702016994491442539699802323164075536699628624277002842161379921916223159757867133032526461462798550186128373606221847139806066657106822525212368848751289406175549351310494226168463509993520947593020762272032347779442570415915189738270477646087414514986494464758248108257497158195778195207250238837055244890632861589320070101294714095613370720552235087132008899715670897116808946599820413122728538297534963450275212588130037316024261450000481015673787849183930307371327708838038323282193639346751108557430610692779185105814991833124128447564505129181148023121023360973603192950236990066115775492507997536610863952275175622564731752184818115910836560082276951051481826422818751750068302267288798368361314359252727086950567011878001801042454549126299730537877396860246694410337845067050862272067865980411271983028384814361315465278006095926118001189832501793631978183126848870929168998003640833250286095946296947494551361710721566888979326974771586946511575222042451890463460528776592387330002780956853019922794632285596555764794575085964382732112974161623878378386106383112244891355963982314956338081616200621418725584353568514852678602118202350264141211215790813684427563541909548698158661508211940986408195275604223404616739234079588770938520033743952253935037234793481196336505105655129646770923248057391617145443475095539744412725014118886737871309714594908262054478708941428474548506781974664684708984285477760469483129202684137584880146729874252713104528205724664891200012770054118451493695962249897131264314639895434606729098846074672273775862988692145041396031353320704420685445689427777238790688842532229056248450836468138377668722054103998024404077087525585767413868363754255729684250417445933629582749165310689590475421722312421361219193841309649961666919112881058077549302439606082055672621792246006505272164381028188583637150469571272554900861769802076828939978847283165022962930153621224447315728109185987256128761075471998893914688344440762513593444504075850810768682159892063325918774651795627375757520936448219093578056494205732021047821216877583552068437475618347632064397936210305215900193775809952400980277906640957633542451808644463309889622870498359853252189327083441092436121114227271397805311765143081086415332403924439215679681410996295975221406402017589281715836223765871057084150767084029064044075756769507171992324825833366092867767840934971423190679512315730247908751385603070481618143426565123929141422245097896280057433551252662103175073838390064819143767273888666436112657979454123272732838056929026540113227379702952336338885828959888985016858134588785662686977656207150145964643735302690976360446371678711511863710251864105814521049638139190733394731062708857071298200873624432880957455015904306309723854017824718199919014572436927139347793310878161731689032619833418792973870818860928761575078491182186441017435779101320520107131132289708845123786875966984870895144905011197359267212231109877235294662759355052080960835627979230452274893195722676820360179212453394130435362641195377523689516514383931766835511344369923683523546264265788980992586359215869431015540331934281624255276162009299290281208467505346537563182862412625987483082467670411354086250272625110646035651690595735201932831060106829252818747725122544604977846068112865614957601778003030823573674461783121869980131971753105400834728498624659699185964971340502132560700209183171592752407917603672979201294903797302740690273698489006615915345865103096891712665613437218319172777370859218226633965339648039979940020305106640711184426211912008882038799421887756085143892055415074510903558545945919399197112262058961316883935673022327049917629578429246556328297099833762504955919388281919595584068207340799598730540565438160858387777874914523002077402955405909539650720951524462921962734689443530661268898842739930935838448312243244162029165591317975001005185409679066387618823309178755258896583976881978736812797814931059309395681401784714985609907843707359009634900437621713739996526884317307570578535146314998552201205418681646910735158373615885497568576517619430923476845368930391883551221774248551289299237625668134473599220808283142374676263852259499879800153646115424143530646969267641129937317768920756156964792810534213472376137688430834399260173292617844973260715578927444000538761709165449726360661690488981186459859952528368696207702662154297757097619534290588795821468234926865754829547036987395300540832515513284656526875416044744701891264610267442038911784513824870749965192370129106296548804820972147763171961109559574458477238758702152868715015109226298411143100946073614135869388783968169752806496636597181457490860677049843761823272778874756888047679812395187790810285765207797038997659391271696416381588403327650282725456350038637784215588734889329906023323225303619024813721607787590798062441905395928251843106860887042282374520793580218865142230733296899269255060816814461955290068803875331498533522416838632293952974815600843571528820739308131529972962762925514363081024005057288851431927050772683947284882983555280980130813175650469074191161268641930573037461339972643672195708421336848919657525481492608326485642557282043792544104478054304814377152858310422542982743532159664403446096554623372248458367485487860942517856862360089016004400439475698595412995718075183621061785333928285995591399293960143821348790088013818948190903833887205131742768140073795091495621974958389872031163798103013479130117860604511087855027510581601097508022091710358943086397271347648948385666619626249182269534516014938382894726948823294916245392953869688604754266415951646112153502478418841673670406242290180323532537489535310690109973853138940913916546863920414831555305013621251112883149305398255182565266505324724063945582320331928385198699125646917964536378895002261168071713435912123428337207773089401421812883895700399528055602566854659448707382016812185639198833086903538362252154255605496900359573650511826739137531847487714907976353231938451881963837870716284490385068130608535423374683975628714348382990298601390545242606302843463583618207540790338068682588869643023200199559747085435527381028993149709133783315364917610135226177841152824636159552952920527521441214194339875854566450624576053721263824192109326328200525503327502056995943859092578877150286563087843671050267037676479022288480684512769226783613331714455177831804159319417120441236921818128001309871871572418718918001076560992668876989900936744751414911610860797168264568755901586091505717527701873926439285820139536282381129471338783400414066259047729823555461186300191863210269153817426120101961138977077994430366185349111995810774025727947556007869784033591142037263926827763960218109951726815067808620113822175606526749354570838043468094442562592020859579947744902044135819874597952270349966494933176256274260000292546649530860450579066441644684135498053246370652860258292675885670637793086195895468135279015337927630168477299820316472730836526623846859680957572320803281165076701506280519294850853990465571379233490673806787972336586911709554716812009356443060177342398191323810120423091629435952551811450701971166782633575177535831929230927220502731283054689536640309598430595484828279359398693045298595029502315753952342555468100301397046947471697518825817143539175329361027387824989097131856830548749119149057241992769550202928257659452006850763819700646156859062333918137768703640405607983448145208575908997194503653996443731654260853969474321223118406689372934452496292764755895272843491917558972813459092463772727852891500430589084382709553958132885286412296640921446099149021612260275109235220242898205610395771535746238915245519292745758201533356349357999737263749173361858924766304154358634055476787830860405917480466697214448804301902889284476885112657071731361391251033621653593766324570698178250033493309631843336663458355599278818019025467268190574459059674006790198003959119870479374629813069189038296653921832344707681497918633778417482147710988562948453275220578965445316693854900685266540817795038148114293901938518487180101353732752989417721028660780042966181749100662510605140521277397984490718643646618265623626180510406991275787337067890112694583563938009887255720224835156731318612028522322653219559250345671639397800053466233603994843704201376414715289986709672159378520019391761316479982854680927185640659607439978183090594748909062500776271910507617595560494120295808279029200439836649465967729008716565699289477278059427059357900286786643684993864400134922753372970760642860940595944481302556263127127328718099645847093640577843999981208551911299827390141922488391022091074933298013133629433354744873706956521705385665773018219830948897412676577056612632046690467043546863820786479922065336879514868210512665005159343467985598223291375299491642298426091276822874801913230420339815045581519950478965791505201759621948974952174259995277274292498906326677585438347892753326475448540342313554441493926051836055339818812462030538384299192042579045959945665463172617195072156819806825255128385774433217740817027810882927206481939963512360095386748676912669141527163450994638274881027206691411758823768758464315329400539491574569851588042988523266492626659875763020547284354792054287671736400286530705870111903291626959316040908701007802937604828814264412336672381858729203243507131430824141488784149516408260650852710744211533517785982937103497936576162557772202267591450175155924912774063344366267682905194142230503420293543942548129459788888790056928821514257275670484035338994703403508016622758095681243485821008998631481565515554995133492782977210397763388983303167693103265643149350909586905085382628758076719827928776334749673359011637774200934035522123423432858037520668506156787093556655883054311803799672097729024031019244182077437419049742794375056108392691806720295186473094378612724112001891344247598356075621489176148534877356831929795441377534140462754512672413821206529703666991780433669041180640023708558379025469350510340401062441300038806919583954939714030114520745036306990158603346024559357147946189897614863181455686571947129653384844486795873098938887261569083431256176638903758016195022412226065041943292752289160804210822765577520593833891066901388150554559017190723201068415755556842214975726945970952109720354306593268662320175527988199901120241425100981243796238353042680973263192933642941712291818499939152629651533361860568344613324575892975803147720178467882333929366671059310291872048570191422258838931296083933445115962633158569710751748415605807279260905482893556677552441670683708576464954853075270005742833540815806684999233893118049033752971810332252661712743807535679823036274951146925874652727933322781743024217562935369165486318132491308780268289010699969471450599821944592914791445745718781072311579154853250027238770162052533680545788237482512990137134723244670075693291237695116776814452944337360684848010218653453908092217295483023086141750707855180611152378236416617043914734962050684766884525239381206251353050008037844002821560919161819054006655439469260336563748467445830063252186624721903133886508318751112505153811483600667960251222290529030831254192559149440581614471960525421900581766345796958928512084326340480040487920341859396883741348210520468382644614638003734934910821454391476759901885797127575463649893164909935825765903994866399601733355199773299108872557831582408947672745805490719420316081283370188710937159342187819883189114921148799093554221163773858000572788175253060482679890245304832331207742530358603167579422264265610450277947040333952777290879441964217288068308889772234491339215152331576173211331707864908185465726794828400942492773938041534960947790034276354112032062449084273238193015994081090941389604001653647409732739512927499991613342724014708888376574126766660391180736704930740348491130310511339017482856030529175115268900178296012682476470484002148564665990992901446114053909938172961938971156944521009707741613692794131228016415264490100776800211974652624191207227359117179014203613563635550678367597454814063436811746111382210129242270349224856227345761396424594679999057945653288451092739629637334569997372116727082178658842643970345192138517940975013809470769563007147649217370316717417092034151279711901043462088534009062555635416112124591926138169475480442547531761218339472147987305335471338347672355705605397653987237500005749557116655559124678423816481091789179466350217132794205732180259925406060582209800600164887140188337366102883750426599021483730996447817524912497090677117110794997433468376800057969407042660023652588788852815692884011300090288795651876857758561409468137466895512134045728266892690164824643644394989847127109933000095039383507547106576338115219604661490389963779952132791151765264573796157451545625248252892067251238880170215688764348109243171053943212199258511469302756386004356013241382802604889166029189893537085281146799270990423790899006828421531037450457290030727338107250387464278347839946060246549891579358226595922466764234859024692966162860745551648788253200799618251290067028984548253258835696348465137710844683352516422693298718306113690052546708157557207938517331549751052334423396068235422307281576850480115889085198831185502054024760065237008735530950311000006056101727740793931753207145077148598478635674672474222002077026405705982920076262678332733792194488801228878747614905068569038628413760712490127511471372290938213539727915590136144229322439774550560505715430765896531302326041690499095584929122224345449514218977688255140616160691258703828120047860693351554385783277304576599153634546929892886951955489734244625004163391139425552410370149121720969603590765474729159238065217447984333186305533880317620825228581156969976615678268235549318191025196835812783532978202260784288006133586462296612181837427760842829682034576348231281240504132101881382146234890590354151375901546939237316146270213152656274254051253348040071629733368442101841373433429704325688112224405304802077185669043457106355071878644003644301750072045457371419424106705307006678165863899793746470867497482973500484873817838129858536502812731320666328298420389457904506631733592952476570123744241417171957223108291578557276259388578161182789398831565439578045256486474023648126042097072875387275852164912107053757000622135724598808277482475675823041295556226151543758349086216221794016918975620083913703757651910877521827311933642607739047250578070315473613588200506308058803327240672903252332066169627177055452981597445347464587772128477740254961959985937268710878470124726863250749364078856216825435377171020831248222435448258239924119843041278389275596555365727329961873651051634674130683085873777446533617618895847551151240964755824669615318123757784623760199361552541219642907513838998191230637817832940257971098708948492520108135953612306397371509707449437944768254284355921434740305890663487647495035226277926021268246564891750545868012680214241369142356094888242028343142427609633182874512122827618733637616567081760161208255935977988607927460422788593060784724348359737186557094888216502872805781755181343187314129936602437149462200710682056561088185407072290322316747846291440426609955846903478298445387599073878975990250493588251690207313994587024087780450927594285917744758533763873041481371406285102491575452132903207940560432116463835258592358510068530862616615540305812755107267661936641196570824208346693955776955021468914961214965621429159036856880908675488627440704946929526167932977208697646395378217579092973571745895814881238312161841930739560918572674419223270115681824016748115740335776307607875905455919675885056588410167146258210671884789945683931639033126850612229523020643857016083071461749842818652041436331079630758743980374234441441938144667501179843697252075013034917899558639572706712459073352102901375937109591305004690194353527264571179924368065205474599172714718701056470704965785471806858030822074505466684438778912854831070125641216642142501722384209563471830911701078910991104813046022803687740780667496590359225191633327564170497594443010933630480859970196041189662709278776440926328081866784485524161912581204147701053838892301108778997235709134554943434893672292068984926317840555851349434629848816884212027335191932955832180451453005268877639631498275816050300633061714046782656725717845690792799269209135944149329111924347015004514592348879767535854240531986431010223221720295374372366330665035874875406374494699322526173589138064032330324168484661886290390757985127144537065321723839225699063936072284428602100759281325131524966110058530540718472945059397055276371852010045365695183202145421465711081185515029442035161084026413409203760593929499757676525393778521419406773115506515412418861378007822415672786271971844520571432587014813360269610300222096880916719743756469820128221993091669703985402431169239302296699656782856914017447911847877646454118438894133230600662636427483086512003642240229806738573044198110241659276502111631670044422221925581524398811223758663395685669377366055438214941316919808079514414823791678855642061619958589299669841588666040760243707061241778510311514061124620488090020867053385642505617528910760721594921574286875303446508438104232841212485137547495842257714797012182831312798599487573590058069695427518184665748185483084701490658569498620367090177339634922901385024311250172464163019572220085307966842083664415893718691546225767811526526121730376710523780484992002091537496151082784678947395973016954231314062674086384635128149840107526421260492318153509507210094559900683593698596202588909745180708300950185929395158680138825857192494234447082008394033911693327913390608951595083629117599184139080775157092964104468573696061018757676060704242441526267823468137453868374081192689122642226353361791172308149972258668609390866980783040706970798218525564467470200378630603930617006453608815025885578047182179508849009165375225926579019972066677623913599460944466545549516050966510727956638014065442816925699681667327659804097116648407093695814076542686389958213669056941923730650256866237001087697800440629038512051187681415020097227415843198000025239327262316874229750797157243917537618891810053253946079157230054382716310878036166162582031094146224481511639965830837554727056424809463940718436938365033303756087666913741941293704931356425320067311756566897467491851763595207100590090566214760635528701570544766083282574310602267678854935755818228399011826900711850258176079461087035737477834354672653678961645678203294739368858881287155992096794752103388002756672323950277001573428011569402506106870691110021936846611392678951971687850134938520057505701892761959462219748065439220701659320381912469303330596779231018401995602797023896722737309420349110647132320221645132339672795683471791345115775322725378369738780251893218872758421667701645079704209814432037868972013600822880176180077415517409747742598809190999811359961923918891872538870383794123588935075730203299125529622138565919075531938816783567066524123861766680253509421883226052680577234358200627146290705416521594419465473200158182987313666970828063084040275678286902599166946713743605887814524072810779080756314835366482024621964053796515147290341277885207398440657555853026814467985593611959148701119146047333277801523381321016054090554930668002372836316346517929965873501071613683528706070241913089205087533407448003268128196539125544953970275138493121895639111322373325015202881846332651760613978169475907526561369929006410530240155040577372133346559857495047054308097008229772614153609501715739558944096411106534244869756496765499601617620142365184010280412474811526547315343652289750049328074704560844470437797779394634582410823090716325325681201924461209894620447288882463191070856193426553684730347610464904319445239471119564918070534018081014329351756197674263827034076216923536513279500211025156663428616525525360389617092672198487595984895383968146516473955105362887427216434982857871963745038019716038745057947679140039285374318150771866067023309143662404231198955349466039546871083944489405071079497988088206499654566170887433325631276312141239152834935688048867750171706294214772687289861031056433308809117943635132762100302480854339391461836101441261112603976959590955587131093413754547202862753956856505790593703182725134295367904724724818365045658404117789093028517269031600564638881876141991825084107999268545615560508379010707869271176662074615442121086233055150090081583289962508581227533611116922182438732695933330849284938971168417471893963359359791531107873937853849505132043472656198352899663308676110397160060612772979655162440806514384917522493997980839431700032329253027533307849969159212418883377034351981145850285165823238761994364349621141397681475599652857624964668906907938976463146505687653563095363846708535170230688395156325071676723521860911068494602595065065665429228678641340944547705837668450707580153515066173149236347552057419013393710716752331479713362221704018789300834176559710799566658331513472385151871279308757548937123498541382098720384741330547472612570102538542627887829699686668284976697423823919926429060068281643295993143810968090221249623529131928900643926424321021649161534578577420813369459315059489138389933203207340324246561904775889214501178830198803391584088349216825618488163575729572840992488261178480080189494422102065322316584678088795693361948811313818426964735839635885835068160732851956683446197568383413711833630537568471694202004279298422443036064642907611683817672452833062881372202440763019639769737295859432483266107425607622461010581003396547255022576098283331335136016766864674408076576442865746732339346207321492418978005946503619246075343592956217656364087325959567927427114001213853955311123505775481164005926280077255201394806022290358976178515273674303802187962421601234298309195743013700898511517271166937584236805254298416549621118422852854785637134122351862920871946481289561822448211587213885180139497657902256456850228430660469578378496730784286486913571033388683417339936102682809431464257825244449124776692502868989752213376816924482824767598059605508766810945206826454726239271564883260809705319145352756480388729553724185686279885476292793163691774167508530362180685338374640678765126465415477598123869372146530952497299702826342302817402578986676297470051693556184877577742439119399918497276685515470237522076948645986095056889708637404810221411204296637797108505061205654792399676216841720227930021710747738933622711061166283703052445170907233035846687163902206422695992386116565169550209784059943927153131645409849341655124927503315070625726020722423280400151319054785811466235701459518596264971695170436946200845003099405629531168260737743421746123156529799579041698103125771871042885543924816291442675578375501404008114137124908225585249275001038227415008171789538239905435960679998494152836346004292302900366487426388884000623990100018391044059997149115301095469085731413756676308491904006139378549594236789337317712874984921011120993019716041587259717201781656839171305479480828698497091888461206890029953561375318851142072279506786099386473230244759354766341630619021440436435000646919375230754173209023994244085192298303395260207623438922781772280005345808869032553787305175230661693813522912189403711944686943158868925331376713883654726333403352855258599034545768073086380112179509660778555132510408500553753994397116182368718117218348203364111173284252342993793182950570358007849508425566867381844552798530689049618156370344097153372594633516259866434785354731923941236577036002580386373539944849468431600424871236954562314254127758467475589655379462713261367299968423580842382805333495538734873003286465669108186403246787919298935561631639708456733807716609999848405619440877118475304092266049596385063791418474568122529615532726914578204226297234087324819007155943162917779801677921348725682113150064698332466652250534639543942406990364987024318483669620906168910970672070735148198284481279596991952109507777510051157843385074439269405042452833215767170757987086318824613141561528217100171734851437511358620275659371565005347443566510178515497973117779867185975851645243497021209178021965332285051839856242936177968346266873985926605900180588269066401882971578577948368498380234933255962259656646872679088425330593520300339384723161976321505314722719492437155573293831758841537245279771958876737399648430171288874858360541975190932607377371242550817206530512447360765263417065911282757629597908568347486914153205837810233358919478765218185755601621276093491451435582506296931921274797355764402888064635907152301215094500371397915843755348253997228678127768541786714710132367926966598613216466496103652954457695129520145271372619657772919252456907269463306458946194402249861085455984442912117557636857066506220094159216221681980304919770974833257073054353015873352950935239062269585071462151067594655818317755778871280650595505545155931963424135086841799499693620695116643758383446359455142471023215791963984824002132823616707515539789762442984981171637318532735904154073968821329806634538982518515254700296581359639487275543855532174509220746879777613581061306520228997286792426021351331046097664446289640018923370039002926581199516067038178509735278260797820237755318154274582432512070540520860645728384061895707974458480897899018607992966340796209836371271586867760995396799648033938288831140222968381548490344408984785772222912123185768019630834476597847850352521865334190127147139878397957666836105959707287310447221363452375864664277491199789659100414175944257376919142866211420272320400539249810229370705484666336203322906268526169523122282188167408947705992142830404088468189156299676063121727978369676977211448583654304101543008804831507919729055278705140409048073244629527368345562974832227782819369010329793258508526059230547804405746108736356504891830127320598452026659645076817513193049799792915941063213776123915413465267413216681999163220568868746267465547283211907375228421747776113397171004243816794391554170034823913088879764744702956825224501027661885175331649961813977122834337475978070142213535851638324250267259721294450661679293956830880674250917794901888261930487682415225822486635754728206273644501736780701395345132141311488601327727195851249357701234116045234488791937663145978261470890536479861817849828332292122102245664741910442423509246053479834648654902312105502830504078047526939083713136614994719901540983279079140929087531721882692278927138454080624597851638689104836029349302788491913525900734519091543459137251902979084727422746982522976528919697360269926785402538507789619577641878185873321183799262415528192639989498366536607571004371488025462717521571883618160796635587701933171269800137944828104341083602096653209143988519489874477287353022430589346253778448125274157480132489308913862069896917057832611231575877441597784683464451477794257086292396267059188754368391594631938381237572908062095922617716978816177827029212236655593343174167618278034501684972397619202090992964625908693308587836014845364126633640979213412820059270632371294789891887636334919144059388900834025930308221763232410104287638481474755102411917873448358938120887226546617935688686860310123263908131620966375969465505354092378874810197683669872271595851685702815415686388160042748249915291220380823987897395733094918364202190527714432436277149090616935400980442125048138502270509902812059578386720336253200502943550155418383586576752982548584362856676923222163689192508462512435149867874096364501421710461456641121107183571167704129161878662833820126162545885930472120410391326994676172834363269826932162654965539289712683344357180856780186339650859791600370776269135994914267477145927787264673623893638057409519277917454485120718768080165532969374130139813843446928750116470654509797040535375916381224416664116262179151059932207094601031516395485801546112233885791727691854897972096052014126104902825315184115978816350648582327099428622094327875610359516391826356825263517774055004711528801263781534976387950221480773903370254640611976694217174548744654319202228882773388314187987611851436793629897756137194269300051946002234784730085285056815468027574130766180975074595583118065372144637206891907224100044253144406457372928646660740639523340590684704773650104301753705534285984660044916559674516215309234908269484679314964235147878542574190388860334361016289779249953135610468227298980370183807319164450907853012564235834863048451250036128818036017306954598753557819204995045787197982783290964421961684444569255860324511951312614373901574868694930998786061179916220857815486330220584546975398355910457935881062122191129085574244979832588117609942433055076533518091575602387541517580151315558942517875021434351432298916086096853079226794900744218969507865783995995601016332408587526680363367124969367294818006398874723629203451683199202692970931071783011872745358057024124299880567313313457583558911730798447627884034289956067126751000411403713636151879189826850967395972023118340651380784733641938070584982244921449123523893513424476528727963274079132636921484348368157036008448295812327521881351008253218707589125980163295500110151307445347070256790495083315662988759540622655282603893894288423602462486852165050796175306131126290442325921865646447650465732068165263050912641986789495280593866087157144140747791919544309998384195419570139372304021814567008523763805070073511838991391556380534345292355700560135548407029244044541741770927309781837434852982675859372847008517597637201153969727784858241336121331475640768845427437858937527142242018929539527572744512752774932522028312562076869711699779527222707179825779370495751596530929199693725495028963189184193660071572259718268453816616496874273026009187251075703294621809683635462952578723003531881661599238159208106415735418405540589302428734256006897237891391383478480572253721837562945035565148411179166095384791030447195800506951369221339781857601582430817890188230004150287853354607671934061139538658192409511869580278957547231051421334700841061180913902256952460716424796719811748073088712083384592329438307402577568191405211142335858639720853109275771000387140093545854162298525675505573071670213840298723292604923081787709251058773891462982773731712462610822423626376726311512483692672467064339513508560410902953720465960135041142861801705823780065132536463940843761640197499058139313477557856351277457503495332399475858272718926000293963956873936056235902119190170858436589688216751942754852924792189377345476688076631660756133077330040986317253318848185030407537373586767648332783846128861478527908909125304904519724998183703490936551785328408819985105391702165821714231405971829244418390075134985124098309033160026033528575975119710167163699634673760513223135669631501845592081233340155547088479694775371140879828599413237929313264111897581334473496117907712311466943791819279962390652264435059336190175949100051814191405856580629000031947826451467099257285298054398290111273012658952531239513666525373861447704380368960081934185291526245568221257497875706032631157805555207874761736995936229357115679736965639185300706132589730624349829982249548043807545556106035220427097640659968526889160813011656295548922103890014229239965726001368976508422823742538692911096694140419124995631205836643006408628196507322615282095428014908316332303041561837114898961478523455387852857124983916178338879488119590351602505202286238780759346621075033892246907024606802114409450787319936138345094669092300216368139888872030524429856607207420731399846818557891427112061526713510272293675966115533456002780025745466603154076083317888067500924625224282763736000521715617827959832280568520590215824244608765716401609750346820737269692872293234142856431068187926510755448770248461753201824404915967604363398913171559101163875164463685526752424025310839091720591795647381497546068614301441318422147321479474564587304163998533442240110402791539207966303007298579203650537500797415787941908163095971904276564425924255291799138394225566596959544805109898015679308833908623032779634699298282404077363720661576089749813102694611943218286102078809592473421643466616776639052723545136670750725864262964823053753563228910993941264601828263136492512373488057185542583544913547333413225134846960955084325265646558174984280732114308948531345024026698923324094194352680115181677334753740741299880394148886428488203851212257335060802022957861675866162769807660714878111910360793058928956176416544784456180184880907774625509664853384813216972244552739957894680342325406993002793007656001047269671046229577934171905626822246406965270413218359719289370518931499123440652288540193562072335112280531332946695022569944362195959052951703434516863754048937313282893627195175369521832144514684586092707964680471469104774847117414180784744554328579486897480661267001207967664722745077891162032843821003322380902349776540760003947834207323278077384128671261179955286427239541953887971521763955064863967482957061124200945660407713047751086163345618460863615205731403360290328150568777124269049583188653255480399906865261426034138082049042738950241566184286258196498218355901046953937287833414744679085653436441041222609627563224347223929784053617619201244147874063851918435036568712596172846161237500749525323101952072481655267732850355353208686622618023352387487562956036663940973133293196146652305624256474854105050681174912725535659689976871624762382865706614949809456916529205357120256011807877664089302978632663393130433836763782473949944853122590996496854487974962655435549927715328689388803362413396970241231416969293081252950065907400509851893914885702320379767431845714739216562719303408228002672641158518261980502118097202296108424320455686164851689087702390939783318946992962840564305222975557271952840624210453366966629953024460836043704086849611778611737439723480369002819572280022542210977368717891342226484231535497189749059990477020790439640484591502794481085160076936401078716153114755437510440436499814011937407247212221163395536940320527796391061877422620653816987747716758554802142252499636785455574025216969431349892568845734994324156619212611945452047935142062544803862041313557298179146159251370326702671997059099430683749643800562616602045453685501682718808833351544329355311904358593772444160346937982478456314911527547104432118486001205633494645871318564136431470390123530464652752168620382307517544740092459434626120579042479482042621116394320208621063299814575858518102669283439744481592174300361186384997624513309804471164839899379308597511921804077119776953314899110048250875609195790419895888217755873321086202349125015077505500564857946590653437918976992699207626549580624676446652963359104803242685825855081607875465603905719963600252099296462658089955711113495258984265095971185440227654516897941554421184464789801599374520069858618435089093084687664807716473603675014353383281700012919098893502207780315949574086621731607496045750789846778578841563392691934313847186060381458980383075582282854585172733209994379739795787913654245526136854408952062431481919945295451812306073238127598465171774639577633561628574095741988295302584355681356201191901157540816576683128240354061691145615028303519998485680343901232732007991494282533993253966209135236340954996972390826401468683481436400505115447787772243281949467024440159393955127979468325224523586587380792913563816850239021695115617896903656405287019160539322791622690540002985489641628488711468386115649048618622487330311912258960189481262021366530805491988829434691796171517961954096268506347393051706385882294037959734098822634688209149793396121839780104796227861799765235235069461129313543893920647116619785169358304892622023204178373150055728868018152406495733197890316334751005949016950822676489058996508919629066498149963617965338529294785656436675114335799078584331659818271348671304974031677181956228912301358139675591867702112265698224829206196644438423920977160106555590255816178238858440781740638342199239907490304101200931848252744052476951902757217342138185226306837658620581252528421260765827248584930739322195997964933219649767139787732786646700994447478909394910093203164247666594635891441572801427888463663829519144121308108089155999963332104950775111766544023691886267503578330757655837907288336284474475299343995456325030161417203263230337407921140032362645404553912779988132710386407127206601186171200054851427721324848535659860335018775968795025779710136684229351458772642410094741639472651708324998560478602031753503706333376115623981600470951242070468653415407788887843560408396587314756663254006465287500822407496138239028146714824980404682583582985366854318051646711704021107352666530148715261824179471178989525688611810021498377425522236552127304446793850137303783469545208739624999694819017039695248457856636147285187062400839475112260988381004870769763918539707832606956832291317260011513473089426710999908635384468361132266283126841459057481317982282636569778410379984490338669755898263623559544532476535518986752640349911801802564910380027581930450950378753933430167833792931002668998960922675641818677136255843208552647705076907746930700158803385968776913752243042324948598490686399782828271912299754227650620426639398662905546518888994030056935377548628719916718638377249977060910878012027229673220085708301958928276270732138504561493780258288905282095535068675612655826166028733446035903918607439344312351918211008126728129191860656730319887931931127771486404270194838618178665998781198598423299918791282462654338192500454308775542589878113993914372380349875625750102645152916739386369219495069939911792715820441003688730309557969601854573695589144028980178564223742315187003743839826511383318090528651126316423532889100122383199976248801038513221341415479050828461400074878512564023161131473412034771062243480072131006919341302172105302000890735147580656835230317041059309565775741706999482222349102217008739970721758141434251668057057781262245310879021887153295614525283450002217801530235857412565378998014903882423558308563518093117151693742014091285624097146894760503414478971099634219039695247637129901405956493207409994778129661523832119799350546250091458357847867643051044572171804629566972701987223933623961115847057483868216990966747659633917813438684698797071629622370264460952834766646968581800397344025277904855232499422053447632589024533724412289496649715455321183523109818166470077698268487322714873308316101595991722843188148111210410919263679275244836060798522584393657953240110287682288229904214401623812956710599526200112804666506350479704772608289897641344386238825347356748311876563330558926692828650595736994752488002876933362497213806557882324280432131166429944985051985430867431538646634103832697699213495083307826957233125995773968872525054764243029991995279240201586588146665392506151091732435573225424670354496059109424289134303833736534019448223382194524864873505686475685970021061551929254563073704766907662986700054760413492880986985287939320730468966210666500920883608654080235854158448670830902158929159347474395239113442584321253638968208733122822802943127557213434869374602636150612236237051654760348918117430093112929312963124780542772502596553275628726668935549640789520476550590305195096724836167938824498785017224672334880549466490339417403882522240968119749080405020658395118310677729148807935146619921624400999767911078108368131600521244882904807136141328996526642199154017472141602064572425159967419485329404470517400013264258895607834121007194390772157968832048865180190641633753984746324179664473047748541067768783646479771785256619919032208441059389014168534882532956401803954720443551652350867225715792666154395923498086444134171577259264983668518726340315841766524584404829167099694293805314914697588722067672324827328155973075286011268232157558306816221032073190444482879319326527156187778011188261093014183439384557729002443577178711557269184805536484028220859955776975804649058232906394287095472053295929093483009712455005170852098129914516852531011086793141305915715766194889968446751009378068167463214182009058579344597386850551034266075419743533004650938532122703581833095265267234209952955115072860531382388843872480119042227792889266780771694890137035673523596421530529593301558813397768390640651829435422164597816465526554521443369286187054884852496846745188283044484912286333555261438700199406838652017507047221767359116564795809231644472389557300066306741212150710706493044035138447429341163892544954023281862298094774249135120915552752435148690296298516744094195671002618497721543180508117896119791948685310210030746098580514266595221727861602531861816055355453978542659683201450522296411929823828700059717399308531947305102770991281159011604238879772694927900716089828913483721213169965622178706993776733996056073612183537785720679152194941756175370566291987240110502124384580080235274578152432608168051061227473213565247082226128739501973159537508443815094461317321861419211232980818148180295802281903053263549490660598467043248911172613129427200429544628517829880131193108841123897232634551466859694042637236952023514920614758778098232131034415455457025787214555688756276690207899054591281913729103870654040773235626016582022903320596192626315847076854464573929852503478460257500693212695348972870658879949826497213311865812009490731403287559087978650506747173707083608268298170656861278426275337187548771725202362169511406667425752935119572408753058460451998055860341836391619017348343422272250788632194937106486492344623950238498149124085584114267873023778557132239469814658497790249060184177084233607934406079078886567775166253767896183464209496096055767281807119902793891343512612355477345606442224474299951233239960684350632405065742784686894306976171633204917646561357375953075431212937608149863016030567100995522487133421216311152408826531434811339200985960508387186841217154234921095524621944445074110439719993293438000052353352956169289886574385814119649696141875680330782969973125229904692775604616514543060062595469796582208857236767316104996349165347223490456842335865668632951803831866834139940712954927137911518342786363912556426993834468057118067232188196480285194216088192942026486664065774858576131021514494250258259814684429088423707171984777348236974554694265980680740138454250432431409830385137850389980360318976060100399495950046366495762939293942783354797241181000322991845511397327925442042767682911648614732425712040411914850587973747316283581640704202141319087166453244916294360500409268961915172958757943863086265660888020534727564668946464400564985339680985480520594728369034595945164473651632689233667074356888488666857468867579634210197775636212691233948137847174747697662708736317909650727907125922868154906715315701867169142545878175019120234577164771956410484769112567165253980277060140653059894841179536807245454422012966490089904134950183051363844759030557409272130744744877303264346314029523617028030148104572993685816042857898522066789145689806098654666612658266947408976563643481414105273274610462635455640078891576853335026171831043248040060608661270071491932004964289593012504626696295230159494269260632023388581967376674838778714294669375537995754935941654695501214412888856062892090713253831562591348941385190966873031071541548698460662081106530711492581586096305168302227110888296670904146168796616591254319018262308511369100498191041024858799793352078353705905813561474464632313606414979272098380822832778538238112728024932368711506699979089158083933318918458202601061364121197012913927583109968791142161309360404197880677265220646277359494024446318258472894751199013756199254204797035788470457471736556075125726786083412116056094883418648703081881776522343722431549132503884625326839397364993990398865577350698691690477401720641302566866852498485858672492801436358616486910528606291433867212801648027267625160228982060460013359788302319823067059725604867748814760771048094431591018478646683479883827227827504187764712175360391067921966347898138598437654350389283817546389408500627701487608867599512549401024766904760460726876182517228536135337768914693566689645685909088051925538672306577982766602212076786855890997428002957979095630715572679088398503544506389520107677638907412206145134999347877436540030072383696340669661012856225159638636689579791459469436712363439113872506570388272983315449322592393496443283147531062056516323876917722734120282683916086178627911520375845711263531114761182833410190845715682330356875186995974785396860651120632155691228706408639450819132397073887113891304896666736965946032840082003806151850339142980880678927408547477872048110791439847634583822308492142839363806102025027710646774960193769730630374349133757918691125506105134398506055059723418269916984769004445010511181851409481211467366045131177437851010064410022197375954500085549450183821547853984245573321257997374643804942657297012561834973471221233137071557000711075006374980258830421497794682721883342003639788227252698081958622112576855669666364734047960001446366144494545710208796801849050030344550391206135890045093331863339266616245588167905231155480111840953434191409956611309301102722790281240558164552906790335058037862591721998503614647530917690082071529174373255704385688567129321697955017327220425726848576822709153978036862811229995221054312050400100667854539917871304572911913943502612249113921562497988217379865582239240177676745334885840167045853206909980645386732640145633081822388221078128109992862241372129601368502951687824794817784139024145186322734778670065604309220332613509036937258480012090836665611862365091657437097904920787236338249807777603092510892291458658349116654818236310810850913249088571502984114294029057656743009956711784519331836632334014960182550759501325245909550827463528819409155051811338188354892867583226390840442322763777989831161940665266874457032733300779332743823761038015358036805499286692141399768335434853811599219540727647034783931994211458697949889040518893244691019312745574960527377920995142488156102787661224857705737108372072478808661394381829541199755197730544475460811483388238802760748214719678734732373363571091493143469042076187953076255456469256464090960932067653969520288114852525503763443173885999949147828005287154860231427175505334932645303172669078590169047212232671074713008936429429894859835635723670701718244926673513113386228659772037410707064889189672723469721528345186365272186999951554221381144837579608758214990503076997750313515015122689178295361914120516817307699383907224470827393363101399782479405053006206732737552528448153037857055577715360438791582996876568481852981049521968244204149428550696220192365106682377965285681508223997660400847556613857904820008849830111758615333393443699250210159220910637624374849616254129621161719144057749670301162619452591415161459117838240984220969233203487148842464565087442523523760713122922926543393449317118602548448001967812635971557588820853894411642441608923046824844059340060918585309754103267584800025910912414630388069950010439734057876766472400925725992010136325378830759907302483878125389777643413631715369125381161560628409062173502719486971028637833959418641491188413658247559643392826212790024517490392269329165066404275642884650618022034847067589008864717197906843301388665620161287646544586556646959496551968745430041723116966919413838438229946230832308167001468285714784176372272428352712149274970200037535145812729793285914652779857156358345359261619962901934322693984850735951734931518351077408544296454259116924855537936732509697188873547015978661081780786747595853700770140851407452690710733204666959247685530295444170184013264534323206074923170261678837031732769553881199252808172608174134309987134601393065274684746254475222272734307136335400379426276576538482346774399688230694582535017768969619331048999287318565728015040269668417225563087720972832941220606233502644933500396840659731646979614077339673568201054763120240549263539222004273380297841823305867021398972932972556332288313018552604320575414034678635562492997263452182471953534079689362177453313922619945785473411956940137000833315756454877676199754801575908401903097291915361243094692563620913778540638064508851950661374062249678013420602973598565422313057610547470457202140554404658304211915948901410394254617189663919115849497428623437814728170907461679070375645444735864839571148752205154589234122777086056273403329320053127968001267955194638135376882200668204505559163909313482519555401248359074553148516568779013370725825446096703316328052053023694747097608908261501914492827415050863616901279979985901095492971655940210820141627758519797129068341696121582545278671252724797815794303674814508757952935932405946961514188317008958801616089112203821286598824236169990263570528265300671805493437240890471137019867727870811439628975283923471828459567344460761232472084024391027052447207667335209431093094674276912229387026428282339561101242426660176401693100199047101255265451721889545668640882572513663984781274577301879184271719872731344800073080142704052721657338224950556102632614309933758004312350707232708179177198395764732143847663935001031466015411358005887355094797815722141607621728034613089215148595287178537419430770702634954798870407054094202855681583973548080193550448662592579439183778130430650638343245957794077884591700575991680357474070448494583991819797508072580260666876973950684789693164035493696197189615872232074169606246963738149931878008813840553754118755875433126472777474543258566354789174172050621561988822480781630973211182372471225223935658924133881106893227609889493735836087379846915615557678864536355619327644881387661577871045315264344435520654565684256502840268297885507731734482133248071804141754282134196143212663954543593408895734068147122772470206191201824360362057868863898328082713453635938528561948020995564774384595928162121602550998635460292193775471234010095533487021512221304259267963554844807876965208487394674917508922350083370153104321117680671522146897000464910948088737755416926538411763670453758283226843764892326632464202876568885057419565511689607764499241348049667674143793543009314119896079622575201575382762156946299757354600866618042315208062444686192680574157094891377911191850368094850135340208342419762838941800610232765088524680871781258301859931543845453651862916488133244744733144782583454254354428491044726167417834802235795498847203045438197992848084034359694791013592481495749395507665855862044482519229168399162582149177122334074667093279309975171466769378502708854447415480504460961601459695024884369197999956988338509824278197631858166165712415916718858747480204944863181952826190174142645196645428509251611582054336436916401834607154512728113104248972379829549551102119394629035110539331400655848542645195193665810549535310187475293233033031472810402771696932048315057673420473666592611180738004404436173828793982385396907754867776907040344046414151566927793209224270216646822531154370968811711468799071074148599417825998581439535160842082421010046260406031912399139550849796554621092310463452481656594904441967852179562369780259056663227634529420046184121303546605321985616091573552818544921614526566958079838566490925184989066443849488426647278449570886717680818095032732726954075809804839490461991565884979038685340429537971371110465628005833388341482785012993835154518919837414737200434429417782068880714220075824173972314841072797636663653863511852262168944891339851593916072771372591948163115549974935980031783421692206782953283387426598030694254473498620823658165276058079642306899809079570119182728901837419706321374979881820282928488637204356269263456094598281123138546999473355728703956981442072893214077524711491494754576518703255266103509695724090053144544453174607389987395231136277093508958271913039933449145125956508781955720294432275308990209258636841408704820960924131380168029438293137500894127015300501418690022058612702836926053572860513591364642685040240675349020455063797097396454642720043391345449188059786106506954575889964344100617901663449718390447793257412687975938228509393163978574950777700426543955882347527500635966941656145476596750092471444402481900026012403803739860366304533806856976008862534088131206616821786109393526004278492244894609485949930111039618982092368841007831026725715536702001650502274964399272190125636790426658203843473819766248588502467526521451583706640586988198969371659880716166198792323545641601037742128756875124459296520566037553095855537090683010188115880002621798879055228494341895005556677802403909772105589541252533953925782611395037081953089246034866783152020495604675503461091167718608227289095083471425059549796543863704510264541093475601262047035225098168174804897004297143786519728261027423735171166585098480440147618092010677661031703480429092865944194907616877148364754894263814858038943115194631686057365514250285988584575702017380893672095521875078525509327880273363438047261754907046524899266620759562781518113368545834964450719846669016726353327613623014914647759308536921637288595251400138836114419829717694196047916250650414567542262968945084675923749780615450983759461491907348002282984628830478658420256746240748195999278518905985962962008214019474588588934129592661593291999101127995178442043735318979498408879081947801485168841096340562040175249265017221727369956944408092176504993590135406154497619916527724647529630460903676137754076491961221906521944900909174215557856564762995058284347078793962337952168883499637976367805964906114065732225456377375588520408512216141043693536215743947724526987810894725614002993421187261130073576538325592767449907869381618155950912957833608028836602621430163425340895133591661694648012834786986481046408448546827384904058999521304988079856980533444634459648921266278327822743522146484160678657468446616927528599372970278092544935435997002564698727597972159188019149200767608568389675046342385816162484184475546752438003270092325963385315929216729159692856288179698202206914465291271821123754575409367017737488947563910514830162618402449625811828764369611983232530030281920528144183849762275559115804400637204835303671140184013876194157593003357672629306994241959148814575425036424531899050291390506679799790002553404668951055399689853259890402413552220333693540679063764584916843458698824648791532754134934850729846479790251108883584985750495229839667647139792917233892853109452469548299198675075650708719059925349737918400757487395519537703156322407976278928310483786825738463741207541254934402533425555048290637726570440358956440762107864717918371026511646335593286708447110540839330552890484254101215014205616806991460570284419650450299831292929872235774227844885069874744035420911790238588498249441327302754834261689743037512731996958768849349369888921803000186905902648576765303432874309112799286309668306703484535578749210463825013821181467932368679605798908158260450464448740209989650417007374199047444335264495149941417492083343961857384489424254406029322641157356502306286064165508456328682174387404633102663990482702623718463816131763589218107243488837588162855194676895498982813729300824935846709544250209177307278856198198732691083140729936569665302857055997440569546504012426976060722986872722246659778634555586367288046701372779544635697810742555226113609382934033694925104726406660671124828435875528965631755679223555773698289313607798054499716683962586338503371944172571031424908427852669320203832943389743720209334093386640499876047323711845865243963946572594583358191224219143374614259624331700440393599450132572272352057176259725920427628084862494679641517990706335266656064636955636347080381829524640284041501682327356970027205214594475236691429183539272227162623335033236938797377061955809057176784589214261722220939405767779999558111481309604821862038480912420014088390733813821648336490771267380081429743706238704905723664418253897617221231939815033457123929371135723885058000300708955240188357649662670241104399207079266226886023000214336583405926368746944909880602972778510570012578350409649562602798078257558854814254873686115104629671051172760393916734172953963464147276631293924575938362874330485696492519392088503969638082293667706227056705084746338936133209774735929295857601864574473448077279565528765040695134924925400562149709787038049344962777371931523581171097060527031699634315520377559483004269147307995587078790392122980303920007211343663772781644214906332022010810254635771021647733034695081303426341704827055950541972490219170241207218336184659576657997024136558527421639692001980404860063911440526027935979031034766971526321747264902130425097223480848651151874589498583316733147457479181899833060878575068051212321762520804992804561642984621811044489494441486817751415032389184785871140403707965181362626444402142185343443605129011015660567633566963674877743245049091839394910735362915730891929616542350691224105711729489052429944264231633745968188510260132889114629842145218712682762052942814980236314874979153643617475972801559292393384904809693219984862432925448164411936813368123225460539690544086854409025675431968124488678389620549333360620618951557675018439196090016886555737105119724724624228337959867034627454478729710887676959745901975742893353104556758702103926691225217711915328947055110496781230178438670280197814884899226801289207798863336803229981205058729625284133672676527037436359321470474807524830351322858368136125251181707762686043002656022440579689801361380773563578343396658166346145507549763469732978327063480385619475566226869736822657957357418488599055242903325675913542431157690037560223187828168351641858781061207975700690670560488069906974039211731514248293153143482582849872647867572398355012647648536469124345342834355346025449739068389327535558979796796718004379066532445857673816494049900937566044322750526931982955674192808695887039416675745733760718148175712997287539274893261836036883511933736613018441345804035677606462375799415267622177272398787522566804606180536178505786766042079728607031303554600280497555116686314508592426374391570865033337650756859319757925620757040414559044954179395123258892309649334428122795667122713864232794320746833847605066873873560080292574005984756372338502924104852762903611753110599989779792678330355753757101186356331314950899518983345240681165102660773130025006403318688106254915731264338337795147746428270993031234886283990622500857517350903356982886429484591355943030708211443877775781377669201569883781523273063871871827793066329534338189569485154191947078419522784610732066482684215847601191225544271325673261722644906292015969973152459422652271540104800672281017426666295303219642846964362854740961374086360905561555485704072231532903075165168928428715813481274970794788460961766220190648819551565353042053357707342437815919241609896452568523117552105177883437005106832176085781256208486012693856829577085755150707181590251231741799080984137733831088825299014841369775538941097181093439121299837716613274276938590755668835627406229601990419084088335557242323629908117517414703501109820625494126148071485739421562954524274061106442689996216606723992445011604105501493849317855586806131013405495498210247799056239818386184793007816749887335848585142850664158268046030910165846649237956086784854394310361514694602198351447503991667834414139605696915272283065713164619045567320335343485417534572201281649624160989990367477019014920435581418345665691579511764237222276586918566105212652082982114532346683714700955421368264024511330655197236700240396330346575886787959188316658114064437492963927010754722949464271838145372794728127901792444954496574000028185354899957175229757458503463172446316140990749865323980316398797044424937258297500982501464827483851160500500141329009419875214524323490465704613249751808024638348570142785931284098481839599864478322405710659222186082547642313769627038322793973802593912834750343480016770567407043846449190140959962665408717374416032299999554992885792495484843669474767726810242097123962852474117061464902564427429886427935140450220314581730138333578417816634484535157546986728747854133833592219558984538164471333261296129915585176762606823567829052120210733223181588051157098936227280955207818592675629199117838406917188812497563564177297481191141148620755905427484287495645131036622967694208184024672839881342163706070589115230139783639935820183129794071371363136768620823616871394981569139681306211148832098651442872710137818281150947102866346181296757361214508559642645247348410673671690311171339586333846656994974905428186396920714198034356974136352402919379084551323094051996193663786255283028719125107558880523428738470675599434402265667055286785188491557588932939395576652684901862517182970735184190585709219558025488508011177472842165113672812498464906531037501722959988159729164382894541943026192743244080908635984096513794912402525708395375365537177001183043486452675870896880437865710776529245147893263444639994899960527263758931880925656787761161209139049700091018508978467448402846680691879657821684017634648095324232583188574754920521209787423496390148018003551111875830916985852870670629638638760719136425861452777900536529384741535124275845271964111522813800488163214232299325284808971334301625398909407189902586397060642283558022240226100960600394256406868364233952325789747822747288137153634794853994838995261642958742960937786026904615046053915125896882402350045367766024131181345838005477775634751638050136624566668787576327678255131614603281810647612963810363117846294531971768395531544601295685774949262735476227661980885266105461976254449230256510594375230936822786268752792227619857670053790147423458047632537152080161413263354922877826209523916041354015458873356273542199231225370257079220096480894017453973965045971141107717158293597460740927277501405329334737366468886216868936703912344021631309267532176937700824744666088224542715560253655472078367036199841524963375498353706258065416766549141783763264932745110860513835191545052471960805114521161311143502471636036440928280109501021818971883151210919416080869344530821763009769306772935181835196155963589464251708414171413559926518611214199622044633548296686124130933116889557322629313299246958791036374294658515975598150270783335555952334848694312735204886545534788132469624875929243276713750834445482510397529760597338881273529107871234711713282411148935419802075858133111018150040817265269144622627225240475663041181821180662219404523847958418038534134175020731544478825176920222295527531325193450093925955861125892825474369083542870683044174259219023999586454589044779106164664644890003256572316971471074580734180398922205604603704440844793039918667393023427066888280705377740008679648004557060311728648340315139030419252001815022530147568727706674664423806710517048728573196769279180122822166798656057104386003629900417767700537281731462764748448818071160333319477869323458010050209176543535638720671056081986083792041976208998537606726858445798765002402299295532162367041786821472821066607491908358094573835587292795675676684530581404580929524309449801369490395029072862730234311683427959131450426645424889342780200306634127312372000475734321672247481264060703896964616996780466852884242687842481695646802536959367563633905067983777718719327958413981577397039821154057549015203349678400568451446356754155476840187380489214337018162874746834854112711445646875880726217941232097151380853049276761874831419626901087243557552988539185462794769638842642009799053469963803931009047224046512492523993440489135116454988751218448398986922633933656619157710615001321456262131674104361056085759811101587622998509650113860572920710101305318957349933219991713459213948204498854057244612712996991104790125236923385749037783648298537626037489139365365168453929320845872643868266590030485002246849144426279347499933386002828996058751594995079738067286236291085056826792047344396018882760222053467972252043661396876857225222672232523599200062530769145860952932250706470479402179434359866786738544071539264442215360187937492091689688106973624166432512186086829049503719156853951633302145454468410639195235582431083461341820636975074281032336498795488973043727459175615016599912126165309533094014009115711178734465929497727834304466378568632464135944422367579159543649779399126742428068430461775924089639856636997182668583649598217323327468814645503055832691624588261972279930742987920140622625366286678896031006805598270530657250827656156084558853860556363782229983036494444027104023634351100572298370188312823776577199866659528381239186696249933075945680610455598750380545486852517142499106788164083411107912639048610555389757670606674849998409993347415976980417892653617193986619466949552649140813887818033086870887864913299973181126351117481781524519829376371082017664614777572447268046061963692720028146366750941794330502226261687890372618014243610988457651792594374854062925395327673950987201301383628569484189551567075102111119243675001600686102792065121291740458427294179858938690582374801410209193902640936776720102339511899803650704795900456206771996744198712954059779055374660607524525577339776917454783971903442850326052397461689369758924241150471533397974723899372886182897622294778711312657198429992781711601643207414096274153925114095487346959798789855866698304373417313493866515094703573860182624951783067509561521986454365098663582395962024948473802753097605231501931743386350976548787077930799707722305898951150713801608523285843108958390540760705875123367652365038536685096584231553796386957833605556487266156916289169662986313382025444581114975969608664763179254146008692994574276005340496223866296790341135180602724962953689650036963216181880177244296344710744483451601303161778274080469753444328120544911197254831615261504304681635511123854535436506517198091406748413449015314297252889955674134083357194833002165694411027016733084184923108910840012179981664555468271239118364471459404275132986841820226961309524239726819678764528836565436180451405993715893589388448262242458433314707740063744460150725838360162441154429944014028240348542478826180300114432034233477421526776188754490024673112095216374439177291777482332346559642698640183742373463119220830084748787343421541549941707031489446410814592155521926766659489281308610927939303327145684942269812285165183330261044258090623586517094686845279974968287139799689531584615587151272783897699922162594278806008633483275851338843882456607244800268449985884875051017389140412535808446910969153019568881625964066399517747016147869260469681321106098878072859064859810470405484846410284551717586925512335487410607026658523489235997268426919875728491338064411810099178665017420071989553253601247943433412493456696013447828831809120410960437715590785162789786006634473747777768532086453943891223841949410902609843293917297349511990380451454364453697097749212133822273203098109611521424903783050593452544000814870867061475758434680325368492843426985317693666384559428511058933636808931183826586378318438864650814177304400783723763224704623809516479478865898288268713697244941006316097998331242125989875474634461114124308000097800770748717174131988105047843504766042610339915113060862755082756063700880836109241075866471040175189945125537465136259374835709608724275181623273343255631537229864296398660480712349631676962692047720865678299865239287553223904165607506543307763040577657217024712392619291692211279657816977345123032867572039555944647957036030617201717409196721622635014360798527237357372749758058834748822882261119913352324667967976785029009937930831855603494461191506083824219679623122984742857214714481458939458112089960250181637829432780730219318791414210532690745707166577860974853333336155139212268479152818497670260063974267493563251205797538697446557049837264818992003573992327342092933089560383010168654823074593765340594978079272066468254757200893780164340848055714028431555974458629133393200704315131580114546601260848965765642736973584248295595355304545718530356306550900708059183101177376046045800858812747370683297247363143409518750605993670605712793030823519616182567353871321752209392461635326596888373891483664339661155065904059926642137975669361054051580560183563749530729731281457666998642730200265416104086612570995935945801199744300707953970815299119317513884964721311313205137443695878199621353923806157600107687357984161642202672046652172171086031584440377202797406865395090434594540288979617025716551975407303819591460526399256760557778311352035281851060482860364807711859956981060107468926700800209211517534493143203071472931145706237993655772573778735320786535300541627771095492793131201371803540473415271149041838672515452978378183171162194164420701659553682217760751790727835689073097405568684505504076813647675094364438220544134230541213444328447361879083302258311760560314364345110615909694198567143850707660182599898279720302453548514859896551531099198268809163511037210244573786471566655083170891808811449841363407915509135801798116723088550040571369964081755667247536691160373452663103080365113160788858586953876230916195692284026559965567557226924689831322139324308610002194373050287575315321527306657091693259891031057939087830687047224967357408224798126185446708581364350888231752578697346491357217088376683856976298949318306191763232163059642888231430995553057694676003759939039720012673711854814945716793334079043784143252033982495677451942901189059524145765764990454888790620161858775757513423910140922695147942970655600595279412517925274836950631205540139083246138695285282972097370269485171524199314975814710780611128427327269294709694029020666654216958148973067447089428734390820226011684890456096865244346100443089895992127706243111206196405906105754819908657196874967744541435361279272416905440812198385435248318888971097830368981642333926657213099520289500209417144231626180846636970170580146407053149462587735659771696812061587261594173829226459971506304654116540021181147000068397400626700335610971301249721874200007804384571250125372425186884304089759290663912376878335571148408599232827257047294605918663064356013437350413243251403980263270782204136704809372303217065729039466462504870592759121714341015010919350804828592710771110514262176601717549428539622715053910122998079240047022691712632229169001435793342651020922843579742858128722247755192861156121880164304492908362320939956937820768473986202373463653369046897262580352474307312724229766723814413495161876661747793633959922592966164708613477226544409342565090980543649752029328658413562595679531287175727150052055918130228446425105812710348013958873896174802817191552122887463143950923366390518932144063186635224053275363568757450938976316059385609397447355118227399185916492771172031166106681136269144970639970977877786487057501409309770333580347770867380272570301582165220562539928016220005732311773465832974658321391121864353600669262511177325635856168592191121227241480223526966398241705923363852551982220332694537236691349898217738080385480870568656439370808989011686835325251167044794807311992983954100322959879825627304764267626417676151420421869629163315150197611740902765281235676051351028049284868931424309949311485310306309298368940102967969212059433754169185737488695537116344788800441308744654416342993850389691810731118968828256705538008404482918487870915107158541152551108739047234830047689945268617488471451206640193882130642194146295043730021744578151182253623243305337730522696897247581761404083531712850372579796327674368293649366354077533252256381048532553173392365528897674315930726265401612368425886104751940855516941907245767829530660482352515234161305516864432313094287379433229105936403213735495926690828692713664116996848582350025789420765945163104764677196743908913931348566707441127725125435167877803997305765752151633507691409678457900386193353145525829825381647523911713178624194879835968470642411786748406474745270466794280054076032876379294631318777081870863847036974642038320943308626638352341535417821803403181264088686276026744627594138142609447706421497246751537898273528743850982774811596064105222204674633125894061289826102983102810118502701125310755565105014161347611179178577013137970849398097577918924759444942462823579244607009151050479851301887553388849507820394431457456840841753103204773962699451670390237041994416102474859663265806672075427504369840077911595776656492735719017652255797994247312965944435631058044169644315416595239195774768194217178868268236178702513293614034193985765990543364383424521518709430017619276630288165430649793767892830981700059036770182208122438756824947360572149158033459169311962033025422636017922132478931533337433683677022098066118828883242114569857202464067469820188726947780584912826351038297510838836217135453618840094230571594437138942339356894144811160504576414817481797553054561105262638813762491391169296121944031316807110197947678630213647977210652005746103038714327913037132223592689571575970277324120406579370663249867594795024011545450325526709404061658276976692114948407403440799755239199501012224641593506919844801915345679207182515566722194647849864872928793532757925008528312025213823749444610326631628257848454204426212918520048663872854497363575274214813397070513596860461849591964888529310307052707482551068609416590239848944276536387546229903622181762726393601623326132071389736798642010794682469371221467985223863283760837694340338299807782727110359452130747927492796911109312167487913190431436519447386194815424846615811764584600269639685302612777256282935463356107817521456261660106637983158373214778851655164673577818015047394019613007610056078009184157667702883249505907003523770893365674485461155820767905387712102220791052412764432925996661963465361248892405445756835986456782582016103375809674647967545525112545797597991316497281401488142851077377360152875438155059768415976051384412402850496615333250139895322266143341225953611168147171738602270953152134204832304406729382230401026487424932053387082693461200746432856619021130275812734785093578077962791939848622440644031592037926815839112283195163381576286945618769933201995318062913494157242235546384884288186513716231470154568289966521734105480791368116945394735288121494835287494496224221819714172274518971558433604597430549288878255914361441081363103548742364621213763192783417982975883284406615413106922830772976233309682461703485137665574824507546655268893433133014852634974033149936583339446760288556651077236218128972962564749211798126686372617167627697520275982891153571047977659639324366187613876537518579986938265319956201059481087984466338247748700528712297769313780406716284965725511157069127154257461840675563983885682926917142623472949872440478545897300745048586048072835140454769271319601270432930577894167444123072000381940384039562799345210776559515602620664875001682237806673585388370530425624905058162167341174309429566701719973314140929515214959672070762001011022788875266100081101293625133909752488077122857836658329166193778380117853148610692685897926080245961575761578980600382830800312750041619641111401760508438269147347064040037780347806940847927616153795888692457363717216874999963863793603103127860813568176168531312210596601043579803845658858757878800233172296054664262464383841322008411642078145901515976441897543011605445258506061440336075534687728378468810833307159313476128345515325984473304416140724666271099137730389982743722813868991488089708555291273502873354201550462682185417895776828960079244103569614602043888549094430222405947363522219887372828223362288562914506381435869334317161416787433031086855750332166619761463285041412084280351748888599704500597396714779307455093875790462700440905948456322760627176442615869458452915595790505222410756020045850848118686762824704283944305980858085306100038773486767025525435093193174634414294253345763032466896744211077150185997821283378451802846727861956365401834118407228883994913787084300858213919836840856052886256184324683732420563561731947547816848589486840980662863745003290848416862837495021248787139078280481383830020263630896190443491612145634890499527438529053304052654427945421139879692131391190631591451339732335043161477134030473597993051129146240020379804762541284079877876074984088299373147160408529972609011238899218105481209284533227892650863184036618453262450059267250918007987537920827985885839865159160937647975474082900134253921981867902367869167327332677012895959569364759762946525214291988965136786235273771208483033081775686481438617203676034543285405102036318513596626509976928987606762667378140603158512365311575753806798106153381065015112256606885402516104545819911895468826046203930288299370587775006184715058530858770486622923367247811441131227610733432213790932071616529302667377629402784597477727496258654718768091372699729754363696725837348879667046117270576804254495448341842612108111288423239449222946759649065276076614462633908292436614721477291593435989344688192491794508348938539268884711571426568350329478897666198669672938205816309932781687670048393907847059737172562700196540208387028294081944659185401282991049704491073825253070974416671991475755512951512283039889309260206398203831007789230917456203802176906463433617601837513585612294491050298441593953536957889394141920958837002546480841828240943933913784407412694887587945380843109424680483040628224381968425862061328761892634301461302609670022515850060964524883141505550409297036866622345680430901589448027777522252629502947488974682822874978049171380535084686963940972266186047887303463474773860147298052558158231723508511974137876902820017655692514830449947511568254154682546487796794948213034285926685359700162630864203813160820751351836323769167052385736323804322665776152801420302893853922288414954155972733648173756094339371869060711702420147659146378870060396293694346689266263743029367946970362682368445180089481420158558562398672086029148207869310429794869247898555410196542183734334374032265198061196709815903555795868678837463712154773429688588868175601319281631761259082182705232605309943649150150757902445896761613073599848680344754982856087709169164719075713942161092445444515937065869811446146296122393381222363994692702495948254658583409553948454534299960772355735181410811363495894211621250388679215257951788385532555492118223646962361123852371054064257344249848436817805318280804832475729502976161562258798141412621950023616274058390217801187072168719107595219993169027528425602099531037715971851661028521103290989105278797804627608615101710146052462176229686797478113055823063603456804581159788574057202159770158121552914144447153390345642935328720155371379339635071182381942354429096175728320576740430549018833671738751586793837221977788427727290583601876425475615186730627331327372563098010325511725999593021206031464942273111391588402196396246834407871631000254140591137927973697396646669835048564448466110480717024546517696990342514195448947556901359021826545946761259708893307020626795605361632084983519768463961767232976839066382731890578153194349759464714753295938956769733974462867370991499561831903946722840554726042529941378720207301448145313466927487459801473139815288746617122511353819184002991442619629335751897887540474180978793444754084114900392954928021135713644179165321981595940371350239306253111784602988091197871714556169788362463976773112761110133616321261907831844436325093501878330152456046553534716009684985456879778214988857293929847604722226589345778271527716252401207700883267744628570975248662736382175911926177332406466476466800420754525319166921045238771979311667364601513136524586893756855592361545811078042791930125249424712242171167944314663453348017025995498077765070791646026966399559098243642051502762619157699889012386579101660205343082721681022621360344286845180931730172001727795252705187604897710506324581969917378630318532263280290834612828117118223189669878828792898460121805935223318074787504922257931379306576687415343351058738252049684185903598475609752415231524275640301328038758676883255488591968425030889024692307462699188338188092391460824873559317947517568934288303893240820587687236815799106944280391520868673962265390460288287113296189618302697711316041276781545006619805038240565640948601641619597208776046741549311814541133124048593045024568931987524537989281194219704466270110869266464748242273524672172179482221018291132766092394959520861264801656450667867271035413007344547869790744116345434394854670894973155953146320573982350554132078145070229219535545794612050011959863370818287079846404783446666259904090394528092770375506859497303586059018902497412472874931496343701441998995122901668836533322815079252063169279523314743751429057582714210413287108368336346715304652928580558025723222962168655323979328998604657247020418023006550913020114389036694675169614599064144671209044833749397823650315249794739978814184368704931911479407973925451847240213174193259917924897256503878315042492216957102108668463796570439410638292011666850724038821982404955951506199582561658550138435458959873108640227682207933112109233950147090801451550283821811306321533894143467685181598551084176229300662960677721694654914299643681065755565253419681088836182913103054610789411732619608051343394883582509704813844009149736695439158125087461799690862350180703512423304603257192179206869282336863567991653961137083998974874109108561051555981783612256493002925859487255531910614784573830175074420284169202880404894707631340277578928102363390116144150693915686492256231162864905330019945563136597921210203877403970137960077704988788118922782753504852920286162179538534853311931406421854357823856009193780140983411150144469201562126549571848939739148948741197059328475414761568611593981274640913502200387021825502477702080566628227862443849986167185835100193882390748443211308946754065655303222826604577196560735174721753091106584158159401411696779881185463607431930706120914516928669373543158420126437481845130820259728310267573603242726970601846616573990761529672243767888005241123829535381438586764183891608483481451714469632095145535627941171165301268966407646793498286512592819858924395732949063068560920690733831131754793187139785222192159919153174321595461006673134416284850152639849739761941981106440208986198543725308214173670171215994695102380936438138441270047492210312250717816407519073960018730284839815998772776871917545117639922024278591448283756320118021317386934238712065546921904667597773639286563808640621151896379094230407412844045974331151055296820659301585724005918838138956083852135415302765761877407039675495362595741168417993607790997309340222154761717948949658603956247437043840081356538090881339644872621597636610730518433258992772317770147513789298511731813054359772506486793692639237868759993799951017783350805438988811973941922288909571622826061706303740765009137206879001937088869990214242420260885460554480684546269905062397728321901047839045483974323904223393112977013703027181042924997315959517794277532290174271437534346260576453613224486851892786056853236311663787615346311287994072485324053294385324622881354194976445104064757865658132829533340319084045316616623472283552429154451191293370169889487214288741817709647010505499618566423348347256191177761209907749746255575850507307274203273770878074854208272816984709669797256711611478805771206367867786068818321417506765317277617801287004392353812570199432621558003093278639108031106507088383372313854905439371765597760998072106003467452508819338300877819644964276455745131692373637464351184378866560210640939211857791966285865013820805481476562769551738947940566662725080777858570480858417359852951316424171979789420699973807482422622271122002836750634591908826027948043103117320908726850538406042235995899323381347435025992210790901716483357699922948758569955134176092174896480343375320287429386803525288559056940409133864650925902462744377953289097022056699559274243432021554601166459509045216944785563960951348959610189321177715291889843455658650639427114386864947224912639714433457233108145573834362731011358149897389054353246109202433910229348067433673394652691638446487282787035397624138185598786766265953535237435474650133865867278088625730736771323900482172928116976167985234010475133810977391853590362595967828051441385964110619664172140934621988602666466811645190159258110120611183947915433746952595871008269730401865808693360679317140599192337021033304212983507624972701735083799918312077763477726751393737472517978559370333303195357315256231235881492129427859656960880372064968327543453853815119857194231529444002688670956991641312527939945614038820179315217913871914040984757266031632312355923760163691360657989232449800207058513893040740832670700075470554220762881439941748432856569939415165446862268844342384259876284978182534712112165170192974592845637967591988719876544514087850721302294231632840441174521515488823841043094304979639711571685427587019618549801492873392746414547577629925544989138663252047892812408891528412631366589589103040605146056047157117134069232054457117532275590618336130589378949864253436756412937089041475921458365874318160552436597964084353407367136066379045773038421227041637333954404778349915672216128433688917079064928693239304534813242771075383962098346530112758850273480706184764442086161581359690220203997396998433680790333714510137565737584812233764473962550695108705112456244576628388703508089743685259005303781315996010845944842342095412364233485024972921064685397863979137486226915905180505764913381245311526977798924700675814717193120085999317129401291430487874266964333415198728468969312482185667312138212749150380846471728625269221182021317858740547083443163812380446846010878384675450455229690119230616286438794371046563563446142502670454438104382698910474846888635967536161465443350662529702129451609044716009208903486023885440546124056361117527158497933084351232612685111507870143813098892794240574247169543057113643774361264038609783634489189621457721216831830891826754876581102191062673917934865328997734635491170327597406298261602973877151942195989998338837342923946370916595113470896412657901323062338164734708459127809282799284074565006919297570409288010570247606563792566117465574881471262373984136237972692598875328896372286111490659851286728581406870922805229824199813875658160383204474144783013089042339583045772761247045136374077024015946254010339831013613721950200040714414222780969221887294063404689035484811098933888844010320634040418265292528710649954134251555070824316687453962675897468438103567426160765611763047541794942475601405029014816901122082395422210497809002651974088360984814296517420449279904963683005013536982140646390497554078950254311078212609876089988329666978269417358805671130084282138051825293723025331363565662321949346031087961212319604528048694898709305415251041968643611635201106467726370128841499134593774348803913404356666639304277538919682764553661605340428661479886603750314650149376769097132409299371441070576773544860475125283053353541211037856003107469749607310336129499743620236881757306839445772135876720649604990982195840871006972693316346402741350908737893178158361288623801052087479486723426775075799881293971749074803911837323253145440949346159914023774712059601427281806874893965742380893166274154963636975109217975625691337094529190402986346702286920269969663744786300670129661666784282401434442620354020409590723475224443822412375819734135255188907347785468748774850768361051961826957125607268253892526512523771567693813080688471119244005954210020052566248987855348463699193927379163641813582470885346613647263582117042035044095322736286720166939632221988673921706502696933800210714080852094816597803041227380104886016500006233921917595160926755672161155691576611722138465799793272949539374732384991034897079300177635821470793656910051981399247782683347859504185256824304406509833997890038244291956831311731110002412077470034015352062274602635871678658527243438277252016292175042543666958690900991490459647323645569897077810954975019063684414668167388658417760639455705431044307285242617991870993470612651358977276502069376919110770670257802839688532774530655172540964038106589154169147552979891807869409893444603070079280433804703681347781212071773340721904159660916055108522225134299534898001579142619545005930986267698289122238552552444953305256524611368118795679124123493778454641843608070659836389485289452929370067793592011311632218769547654594869081359222373619219900111511034946840899942448313082650687025225150256628122761675085126918733565985573101116201203858105833037084902755708005290386563635033739076629530054092787764999585622073123264052398918534672645289775605555897856184362403449555222534067279742142213262534364783102193997251195450456220835925080211601932338856084013259708435561772867621840092536795847375258545998766057399947604271218753703043387210138652528345931563967448326755582217675549935437325277780507336728097643678362022147859965798869036977737838888558822410706642800457296358071665855808184094749043878723588557132142516820973775452925969911653261691280308386644894686866486153929376525447715659849609411323897798591408613785110038301346215649744134315993015599292277035093486584978616116617547795221457144349409013679975359436830632869380075512054919954091729947762438075108085592223211689651667100976888763486942253859090349113144116548304471329142662189373184007228939476726403225723522844089929546324916881185662815614592380546735031649109148969114383392118821212280907753215817698183499549901826967182048895575145963443934683321196938370986396199947571905175743646044521377521220924863359849215791293188797342762066961869092414912302011433693288160623449353525108836896024977356195308191220040192671480945421290239751402716355100217104877100555431297826640744549995982665217169663577121118844601476475372631478795022891913860118053584369571394100928663443927054342956642752093217760100470687564951875918718896207858405312272679993059488474768186541987875352973780304632366052103769882622147794039361372173431518791510442359049053696331777710199518005356912189822718263345278569202914529170420914309191298470109590067788961603000397328248503988025258330620170934468474660180706235660496110076774944330418413602565282356288123211532958622485460991385951819222531572804080816851661299016344345999766696398510402469006942202986993039371571296315214338385401791181302458661027139458322912082305003552728836397156494789526011137664504418644231505089108584865697921561169959201242385402027963114851297376326742565056089292814127473293078533747904011351334740584430518925104825095472866376285506801484279035457894280186300173187149537807067690758888191967754129279426948020115853131168142383710655887502725848318712933231806200184069804554968418489326010148838962366064306948566603616055660207860432904441248280481487494529318702458002921082121525967339926562976339679808891618241449069175710264250474694535927294649634307533889980171340237876546304939417911083422349211255931314825380419465476342025244564976649065777873775746138924595056642542911554808977368040766393006394193746320667916617715055839778094183039882770733148220862377867265196000098065574085175201605458776254915482670385978280321074855999915527815505833026327208515253212866032794622566653986627257935189562791262378240131619822338130757180954077658846873320876686989155548756319309184848554777712241513631381597060846727388378176430204641783429913776931658255772750129947073686035252926860063414059624269050725619624220072162749539153678245401033136275887064819442067415187593979722916605605948143845302436938708076752132878892576188344557146889186051651180259600492183634058652749995938473044594801094374219354991269598735411960554692497622634740829423231788405862456075797435535129346648435176438527660254723672028003395326416437613364546879962455625690230908028658274189164642532788212929450114479505379350507889319281866963928326936574889468728944532966348709132962707514665552795493570815043175337789376498002246196712565044072379558408544328653755514003540316445720268459303547154513178785268225217294346906466298683835684246874626709315100779912210857046012658185872986452211221074444213240525307190157205510650334339288611861628425217166478122131816099154932123144622261529783493686524146752411766437062514872942303514605450049539934930373202350864088378515721729748130280791330690902692668450754856626530448832971857830407539043984439077006929522655667873703706862743696778871997309166150090665301861300726609791918298913320967097306713030703436019246143617787592803083379707396673025717114886146072898710900590352060528516810694471497865437249474592088951307664914137820789319336671775811978193472340750615292956677657543837812973472206697011909014711255878196910283792487901704143806629006635986503652332350122199804045074496194898636291943819715100227882839691413804054700630793267518528248872505187654014709785477353640232639775923004070367334825856900498956030990586907295131792732390986645689762200312654622656673848844631314660424615982075224999505556695373085572317430241615804244848792111589099867607453291674354009101031518296166834420533267476595865624145530417456736736484008657465782990309238187530438632109799832646701050209774054569533085765131608008122281280171983315322341370464619808470545198416552440931159317385437678226616884909776972327980869021495148577287256260848485274838676452145802913689405192756905826930310469977751388936550317350381271997268779500635610216233405325945264501830855321528023856405659037891825909481284650745724476013023641518328496462277245725336729834608286734682090546303276564015772289524632775059000986745380516958495518033960714553675242899973813605772825875056653690196061496194274928342882512273792553804221525329338387802542814509142866959596717383202155035844284467455277893723350401025168872822826084394145762607604644596230093050922049463470070616185967422256707719049679282202844404150843533932446167049986203528278147150775678718858213839025433572166364605661142850992420791223504181474040558329243886002414037925262566824201200771352211789245155496596415644988168654421487853511422148969230057412308846747968104507650087965171522230359351980605946448805343249538903638510835395451063662114705154361928690305698896420609610899698694259391825025503855548743402028481716433674565254149110215846484227862447510577851862422537717808313496932971977447949084975093109674820839442284353788638509974223910698798068435762243771946093088893804679437858539207998982469727667691332416135992170681261317842480873908394650364559711399830680554511765852049827756437829358374218933822126856283346361800069529074390827109229161258770879660168271806334945812515898777939978811039930534533966354162277030111549811523588746746422133615103691470578952400653626549828378865455978077979653648991037395753096399207937187438853707140389237119937011688047213561096980653999119375665723461186997242802287845558042846434947302227374490765886303020972779262389443192289962311013498909362874675762249669267110397074148732729266272721371717321834639435484611480385120403717840017220531909399378327574225509753207439564975212767723560539254063474018274072388127564746631066063938610130688268416065811344617773848272398940641278977558733324897883254960546997624587195374623169539194554507494617939537264053531086965135721270653697754681452214739693829040682177379630096043350240741310460928827238611049732377379661638390367294505172722212256576786709545277600804370964958681774388872989879577637094021805636743018693491865689255717890120702559448979325868524254373578882866625181360178153364201107038576186104235404005874120935211880669205506221691934311752423132336323864019767923788707128030264614325070698804800558420000204855240865021515857419352471608962644629729543963428755263862270834733010212213713240253490053604983251735820936243310468016494513834476965174370165210641440228619080193735441433243674402749178688961893057707503012331083627055422404442191226389813055724454705062297284873248098082336737967506400281274377609125931361991452942137979621504697046946688807597173490399477776459057127027526663435006612645779336306161942209991673663868732020120674819204670331134399993114336801592612641023558252840267720809917096016359512270497766923798720112299266318135012583626887158603006060341562265237153112523118730223819027313259747538571703155349067904135473557244811222953589889656488581672651571341619783726123804444811883246946014302329991222054761414079323926361817595505328312012675726028819910979301965741860677005693892065131779470098867276692789566023507813310154800168209122665271456178522494357936467911886960647455083580622594906480162660569406678614389265670680983169303643102539831058940238338841058661723147618105640394452296897879531077818985232856399141102212718903223452988677089943406383675742213431636425479854002993176872727767301172033311917625155938936827620843776355393573256313747386583632313604624099788607886313313232639571853838653834384898837816745620927335819460228310092083814197661325707283361935490274631506485710460958026217017304075732441236162423411119992854644880646504717577646079396291136704353723055596695891684252108080471997868993045863976679515090956292918898388389490510311316890943327022822964286932083925629787867464358921854641150512264349452378027308658486186594309104802550469835311576279248260123723014152154769400593431751198354064380198414576175643642736222044563373924774158158290344551156387755981443676902193536937037421280513024623698041059107200251005403448908469623643116294274629708127659824526581279787271719456052998439400584563002751244958652638717923443838982191775308006560056458535414829334996460808450610969284132059907590783282103398619545001404009955637574747838065497236867191803535549180410453135783748076137048801544811027810436537634229261551549127214472822364084364593406739299908915386246449602498792133900120025961419903977508885391459381162702336855999061767582228588337449976040269542125505585860457316269714610120155930991756757450862777354397815477662496608618273551851927853558958917217817936959335616649894794854556192263688323775882514548748722593536871362638184570443297922668868249327757777593589601628310176476610888078464291393016489925382619772249407690754162645324931501802472084636101053887218698821575653415743165300964333066749275679378853570197336283960413182012604492711696299327571569417458367749917299651407472309375312704540036737204039174061281246550712399711287469580764618596210595517168559370860221899397796353887029922104033583829232600465992656566197591960083168902101649016809523735572848865672624168318784077674620329080305441682209602470243660867875762386852469070401542924313079472217391626718756445602133241489415955949067394727926498899179973362246682784523244491607371092716256061968870993749181585650750401415600853460297071901846018515849125214243355381122055182346962641359827965405884085701328648738458607593077536581040521785554960588128695490977377746643529168885009499218772974490282874277006592118457320692470854379717557027460972713127510797551934425065764591215399129039966757827861065357092374619583644850350299600209041186880379527216860575363641112474636232217186037334769160541223144593054438208459702318816552042534275154366646166666126224532612807489291783958824623156500421272567206232972681048256591467174214258349570595739508262223376092561293753652344952762873754053364659909872466981358261668810659265476594919377588340816316332007566086498873263938582020661418737184823477529433307801442251439492834997821546358614464774090871325436630283300914768628933937392716315267634548148888348081106905820445784329517660926755544908311288327208569197679279902006647274382198523403742327342202862422794148288137598353287210584470657320551630066843439738552712278754687969450358197002883303807849116851682631669333709038676739422128786642167362254958546871438355912905411744786228671673043992716386664328272707826910772471514333294638589098151686673359224779154322916311120496059574786473191297208977293264051520307315514934639104313863530835970611287986274835718898865270209143006829140501439331791216501351484908189589570258503142587031790084983743719094688113665813288743259197636820514624885423895298134554658215702258374563330500330423724452969417534763935990011439733804026905523799099011082100610219778487381397581602561857624697215306348771483016297410869378289410900081580708261770640249475034088963408360110947263450621144153162040133658381611152207826943196243713776673698812975433470470352635849833114716350585045043744521375828524959487649670438919102672557615138823781356666749835993423234522440414245137737903114645114746974310582707445722274640005863289502251276358838607010241686026321308884085849985626882532182866095728225342267157874486445582898941972174386081948781087205564054766208565011539899000657816412645139183247464982836387795045301466871971180908386112855829192712116962744292176141168738113686528121302282260113182342482832336190332223815203599464444232713391006932842905731328024370638665532079326959765997603583708614829093797350465579299098081940581700499529756738881768361700630996798639312441011531663930421299264735772639799987689858683318091701986577653908622424386643444788003718506340288285149492717626929520757473347266922576403011121392031132378944565720472198136671547005515577136865197723760477132405310017375173734062707477618471464368640163785602055448139021355354626442734517066288281976252203640364113683934492711951590214391659341043210575291658986156528115464977200857571127829641802979499089463009445707201449379933316247556107846163184812749056330990860450674954024632428732422829220198886668160027095139060950621524713076729959642862361630888355226136726407178378978852077992805154702992566289296464491172027233512035843151510588728021060742503628601741780241673133457999512208177713200020424728984690789487038424505315707274060088199025247583498558203589310283786374897698102701905104178510679179705973894416027710562254419724369330410010546726668681595044136792586495559733818265550521339688919345914184896636598957070283462439096844863757056690852997584444763921358944123967685142398874421120275672348384698700291144144587413284029674698521008401851277510282921197044436627492349188704890326657069999083032927647936063795949242530998824873704323461595435008870707136769005452060942641859179943464080231353059527104796607671414652037922651675402250591383911642615705141921416196481636918966945076851756274024474441266205927418082298872703654679631321541424002236630491437321138524739841337998513510205644281689068373850116472250061619408525369601370868286446234561404983243641171972682708334842835624010321953202683898939412525611064241360662099082098520879927532613872380964932230593972167655949345303179372565910615865369764493464425359276953661030520153633055652019535854074102960874248727141385616085518548336870129994369555522965660756913378725277376760809789032738585394227644626061732036884898016866175802222318225805571546678335220799303642627336769079896778433477140026374830143878116619177534003589840362681950462803646464861927765750475071791056866995719622295670354928101745833213434896813092104889928494088421295744227432854684886695532971515409805340910935175725864385512046687992511541237585167621979205278001055262984440985832818791463594386617539780068303469498291928508076380687418967484756587374310470643191705504920135910738368792998631219548431930212384791575127860439519972443970917054393142403850871780198985554646652485640323166129014712439636616960982717841311829687682192948591214071302674844266605017308386686424296922485440874309839211835823999191305343012562880044327713048632698378734159066293819524141252594868343155239843472604433313137992707595970027094978345299022436654211603053877489677343423006417369897800316898793391174189255158090944353427468806826622484781828113033674554464517292034972082307526550556107300880579136426920033296197147259720107603063155359781933413334922951342687647252557956558408933908489777906255128231390037781426468524787359634826227102180203373978515960543246618693742444438695249618653110713215826801675170642241907607187832759318234761070486399903607661732881868714780077746903650858729744246185056639756173788682324576015928121981541729399175658798739350167498847213178899263778272585750926309595129616379974496070129284359316141214312324443044443593587485435705241862892419826355992678941004012302155441039005497474302373694550022790637839245200074202985763611529192181193819253199691952831019830918655775656448944436072113355270510005928791594606004634244106039669632600936245236696217933686055731661870563144301953253259793201342447457443037468519288406728760070816768349604225199503747903191083573330900679715510483919100311919548224863014815960237330384457081108672795363429716509520599505863251847869914824847654728456401815829786059947515217479342858459767253199249990659960583354226090280301978053243455278227951536591242667997012021149647005513615456118939411048369983579781602919450284762412232438290737277686357417085313814673195499241085181004653835361545645735710988307573758637758126853044015015886280233346715530524054119500933195154394136307234853936775045595911468448368859113894329908541132829431441111272664009321065729381522565520367793126111207097603993527845313195302766596171435610021042915838675711986414243538560214922388900867545098713923828252328339847479950835738057916917946319942676199656319186048952257872099871368528846162728831028739318219558499402357340778032483060955139447116369896217808577117362475402108855021098969893697728236886166311937700834117909418017304673058642222384246194883464092701712042855870260488472316354490421497765659339544701314039111803283801933156229214299210573588359825233349426010366617522469506728941234381542104598314695744511668651783786106893307464925963042071516744502867084166620415047416724121932094595074160277689056139931112378487636511818195413577359878096720419935814995226287492776944146227679859547630143924637398223422243899357242002881269372099131743438512111803553845897103253486429508880556649229817239505146792378963166252918153535799200384600124584274794211300899284395375052824243726209071818015691188172557145361363160772902112194999549291552186783335682466630831100136293149905852862113264303960723453769482910720966002724720984331243945806036712098277751490345118232020314630487171944097837363681193917284044704538169910142735336052177176405885275473339860080461117471992374421099231146456216994830691954828558293667980275793162201310380510902575784704055562924186972285710450076774173915610499785573083070587858107391038025936125889530824814473138458725017560185098107935525057006330469189829591939279586628383972451913094044303841118264629715786464985306301239577351294224759690044186078873770160719910841176071445677330454527373054022346798869673785288620711382851295025751169095339461846877740727109555662324014780226775204973200996412967708819906882486403826877333264923203379880263498535757413849028818880982474863592259912786219081661895550907030534671540796349364666563576109346601380820003658898324351939052226322750466554870031891453051383123483780737955778340310407641171217653269434378940479722685681979336896223780620527346162016854950002266001752196962125374852215136673155872423755005062198598258734351478823501646545903047222510884455775503920057828549898918377929257216905584077701789021260751079096995477790534549342689056718879283987093697184714166006332241510998323557163952773386795655898282039621020892263039292756860997878609383821497457603816886259281211582663185322684713929818929621110621782730678246086195585365318271301435734239832100323044561356170683781863695136527088310219200308834702742940792826487240394227676679217060117964326643107134603406837899363357479886664447830293644008795904695075512542507696669745683436874332304825800926948594027412821917158321899783264706406039264730344218818962069913626090452254417489998646348643712994693196032823820269597371755727696919348711582066808326753417393271877069068777925630321390300265732286773733069940008984629184392589659163562780999982071249127361151078958343998926440182642864848606273518333295229875359806479805358609844238873168367567474417786044029041693179259687846988805306749285950871788936665265794951524556592211585157999436516077839727015612139256829834447425319717360145961030907835807897681450614078756518063394681511983960320088533497799489729253010863929429564490435361410009785088603141169784410876009431541154176043326655059215562373993865855371504633030184075598776805615999988465249990446585043194305023154019114134034633790383812641608435796384940563517037299160909678201988688776976255297567640703326672670313414816124373372382734386235371418684832370462370165973394678195738726410590321472107290163091551258528914452060634595676071788703645188367093839357483161451832410407678807117326746790999502811727949628026867506028891880488350657872195090434343044639837938048622395902765002901423674069014799914307280579210434044971246239515183678227530614905390041235328506278677066269159996888122320196616857407091624414143127019816365089084144938356304114536329105628730513803664459113341302882744412306747200722925724506848419380252590777437386095923718307090143969046654144921665947836839610476612863130162811377383720619734754916522382219172909033619350815437731877020445069447954514374669880265446972907520161762683062731554365340340721001955775061275820509904452120602110616031113385495335997068795314941141386878186286941856822155064108135109973780420761265452689600107032663719954507780919985089267804126634781073224756325111343794657597210888827000908318296319350700750927332180356878670118790554735897843493370863674500255275925442002853910938471935863065689129355856258612598967745688978549517588024583552012168908000714459885366937530020283153894831517574132505777831974811176605984170797594769595922240036938058277146772389851878603829320408088813040484282797699800416487656673899855064348879095174173577960847349067966417746932028692886023240573323725573352309167062847138938240897540297991005859904324341472431917818687555620789838425774995794859344156174120282157197299446012194482072800242624376881140884955283161125585586903189317464837081947550132295506994260843127301022895976628596535114455934841408931722274127476956175259222793227002589057046564801850965876870785773907648441215952400305421845608714145397806386526790494397700457740510465001192569301359411770731422793142557296240858587456924011422466260321048071894877344358609192899769044468651446839127147873620805694104919655832788284389759242270027313563593457169200946350057877052587894171952803973273077725327895929893337489489315160730847958697677962787578472448375843292317871066676440785500881868406701445399677150104510007907822692576420306822684653121297134078414624113285201347757745162032061305325967570655236912419491514387960730198809824171143876729258799026835777012954218787928372979292168822342578166089210506522899546797789215673427192362130350715501583197637917325126010240351352143364717663412889662517153639274875730704911113651191472727340612086067185659693972045042644297401796211292578437053691416520172621582826538646960420585244601780879472272454006338043510501955410914051560199158369307046860855346971518880848763503309020037843282247031211103737415274257951376662864588191378530259078947539022976341274492420029013961609462465510209731861051167679891468152490590968062977918454334427219060074587269143068746938173619453674059765702305464014522131617833765166358992336317343562098244649189195590437912236206923253457914584084772453271360527835154870974830970326732163163966985022557424138337515674609258184093806842020214000475407372533247660381652687262721397902391335487163529117621114966334653450566145757327340931042446641368169643057635215118168087797378384305107059402388636206052126752482023464240518996331398630392815687441118269690145575113392241264177920150757648744756341319828871791024780613317435963903441251533941165151623879591095741258013921027603645043686431306474141048242399378759962495160802519906194969330432738294565297851275870090620850587863810503699788279000035776493340550877634205410275158057178402740677098384821905102324085704633478084705168483808852572852502076432046216311903373356779409791956717407542082928091234003271901582426919818319102723983461550255191561453004025745595078041412126916255454997908447408765976260678368879243803773334521047304499281845468017304047532115670048934849854924901225596982184291126105026128903985596694774303685526041814180742264436193764089911585806842683346216958544573686955058057758130603883366836694491954476138781122723460025485165607000254603004224139907034018064632710199638657317485390644667233049078218013409057695460163494107597054560019361504336818646940028746158076252850221554648560728077674774351318366827317113626372503490221439156502579254825166016248716324271170790157732706098773925399985450804030777507807174371118707505595808449137470158514454090819492194151069223084386212698105443102354189884745715926877529833356172062446184552728410952867848150101644828955545117850511688024750255274695954640631098067561728105588132142786509058316014224611074109182154761265838699890295731764466206282528196248585033131724045828908176558539727024191074211045040651956276342322950491856000733475653783658871391042303392634824647795548849610555929882032915282737002336437922792115677706491140804947687558217492222653635680860293863182033679529299951623200060762399498364381997413549143959776766225045427040024772404637573144918298110568779820741556429150890470514157852454184959486864185036655751195264590254798024391763937473742250787447195982814289747141696524479504141471298512956674117529510955294672521597285749027090711416773359101813620104342004601200839399020696597089494751041506851380136606057353062358216341496031174379895792328761686640107057067630611223294039078981892793634319667454558330561290021424956882286668871052837094899100974651126901231479892169740503928605426358545266148728387545230142116372272284083378952948181068840101758607910633976894580619717446857619419370408907500106216785093390369737297840908429809475606403111643274946513379549940967841378065967252653064888968072364771091490525275039701129075830946334050840872004679485551084554477060968220966882487726426418208415083334200885967229779216406112645321410750795263016351172675387248446236905482046852087029416162031914326454525734580824101953865187157542178310264236184115953299853145706664957408643610120245698140611115127241178030946117769886117644043631523200673625600619908379648038110473015583055714877128136946594665754550452267505709593633830817817492945647178196083876289266639190528067382548566848639291854567867579659951297774750451472161198131469286720141198815227232153781437262716030005390393079158025467715725495739150417134436302362120967096092482150054184815321260706307882507411649810925477890450998141158308758854897736401579145625658593483551047691294431905464751421514126745693983017483969660995577231646398693361626730027642229710935279140093912290730902487082496995125038549326215537185844855644901157944070247892773753015325242985823076007781508968325135231984518840649893214474327086541164017073124219059053774619765220481497908898025784179955183138315618773936473700926683587300941119926393828055743771910836747578578047220985305466140999121013934581888367378362747949094785116336586905076193809124382181808770097454097995898029553694978673700063770505455224887745081915629011417079899340167132892935788464653486605157326172199352699444331543138814057051999884123166375283988557454129263275250820549549178631165874232659470505722131343008326022310840913749953927423352510270633247593464098552210513304474226418997130819307028875683082676295860315814394204085514868166153739042002821028041960878622430377313125427139026437780541871045913966291184247739255716986465897734229863683721204856202980748330234980197852981119818052307678888726684767302479078345188255731695882749318702759341471729374508417219270807875053071701444186933144525609180868948627741070570696834011983757452056414090559458859613739613739687954610326040839366523353737837724191848322980582010069027767278852291208427885649512494686150244410473883208053661248924771929776628955165237258328597766769356074743408271251189416840237029946594951032910960614363045150424895250631740993246184717143676304616234510195890700183141788428268540397528292409759676693997484839435786954017529136031303815200981208281401483544481231151261661436639337815583733807478613380926351891809418729382439561317193339704969159176315971365396332375657790503176464268707837130824223690566043519098194409953966787704107517168539908450764728645547598664611538950513881409604438165956530608762950266678298823923573481082560732755004437529911865227309363067917438058678705008200610509629787656487424892209230244960314487685891187899911457876010619492743928090823792555640124215235158847486986330542509663588418327823384446769954885160449708149081107324261822929852977572662193563937259684242735744451912677520385647352441496914338034680495482032001552005083383996204295076184296863636307142948626604755836042403385770937463726454341047760459426773864426868428435380284560318982744291931738096924926594391151458537143331947682564516023135556109859486341031637549837048896323117376467885355537551101766036129682064707841808415618335577226460038523736782131548203178248873007187174880326519407714131424478205589569778699592778059702696121974211150049877008124281020677752455630021726659814360832536146783600363873136952712611680105038189836253417704380438482586527170113110704755277899540317676238129074546268366672900993724852818799656313141800636902954098799700023435521104657403302491482150062667668694238434112434455101054739903629738576627154707044594487521854860392671310181918295661327034899958422247471966233291214359635385064214392810747268384340962193418995476198905166037562681936975194706478558071153031815966833099383272112023199237919056592960312461240890350389346574697684224738626783472992595292758815431069706837558160500217525034124008712512178088310726751969761326711879074640432974310945505991533724538228320084884136038646363786325487232380322016288478984915944268873674094070017218427129413354769883758042157294446204837640239389825472952640840306145440641844711938615827544738530930760578644783657601406917052787568733933604241817926567517321366705499721441334732558572030437596229145804080618616030053570740039117236496248593066129137060045304113416782928677381648365887491995814183419663116722579678610669442359698904715922320061141859054093584034903267274583279051210073232745872923676982517079905218680659635931593110045194976672362594793120637771559893230462060927943175817972356328513475002919768238020026560945365879545772391246079755315367701664401701290578242707053478228190001459734643114794429653263286948112353234429906206804569214889947295855851721669400171235965374645111080736381719762057011064142002796033376481894754956607276266758598054082240981941272461477886503693634400315594416872349005106473367039017317774445315676841225322585447158397973924830044574857935635716683172143040411520675429590691528022761445929025854069863714574354865692614747944965394110583817082201969014134625372004859318294109804862073946464999023264858114271565567846171821571254695038486565874919480247687792465471995758447168058815767880240102016229739310951147912984475070335411904866168025514083947657824289532675454624340261063866892593576746414837196590732555444709243839928454966131153564941921376812205339271049734813256141640542697538806176591916600487340382147752318618326031978901825757536010719706641580499307661994107805646198983489049268026691444965761137439164326740519247794648791290010366536677874133388634176247801837025492187072823196078561743299099942010720172728697726982585395838915860150872968295969588456469244148825070068795796377954328792632439492279527603700065629722645158546854208825139913798611217420387896989704675128732429177204280145382438700986525989008725792267487511570759214887792897669699968200056291758063695806637444279805464253657246203119693258753481183300893511345913501342586034699684747784231439177650782823072554426152125972194530091121662929989465120738134026849477649297533935978520852525878490731509866342045317631641551603163035695007129620099962158648834569845579079884598967034874052193622772643146962571206942800688480570853123357448191030376969208911869840709735551991085616545178172207792201396947775333308116856383504717858971954030244387500307300895007636099927360935456082644481283538801780933232179835174224860901530053021063998218611991250794740475999732149391821047769190355535037447608806325072049056271045566509573230773602526995415950545473535289184864697221321774802645520031799641052775617363921804300316233789081184883141549196287696102416479690348185928084819701877220110362662107115025110542544141115132040465356810643806938280793030298748945289676960861655818073217700016077786913241301912282981448569421263509890320196678317008306874159145035916353463956656712110843582262391878586493193030937657210373144605787132214036938793517766070542399095924768572130460022802303716491310005539682691055534392002626639564520865566830737328789648197603781770351666873068999719513704370017567560018278235508256673098282294943950889807010505509650991533362619757631026440841117972141288243677312732934502096674539156519551497668418890203672956604406106724358410836121065411894691801332542795603156176253619053792067107459438496032970131238689073908810247520393343086325277623886093150393439398399662579610797630133644785900000842016379457626555092619136400175079909458918636419447742290739799433712496085440007482326221783863624861324513467965081504024586119981874644165805020180848984286096288818061041980743121183066812648185402888256883512086997690082355625636822515331656327469596894540001685090163803422822780823660019583156192935981338693042091398845461618558400117647033717011314243505453877490934903604339156481714432987796156970477560881687991589177605266667783788974808883659133444869288426712167258291886228382682309187430502640682710805862342813840708946414311135158859376727469506100186927780512972871556843951251320893659086138657593261475207159833376315191396966609849441479132772234517419519104245504624925698434955178225064564878635099411462717660467905912092850716646579986876448547936813945656892828718350365268461499538968339080359438228281214877881531460675423162802633999337514911964849681414337514232825631142488197354506334891018586268055858366358581033664974249178876409442880952292352110871426011673958957544749749424700499612675556535055392620199084226542016982607365301838808267581728235268729417548429049933848511009292989746669782288347389486415222656410738538469846974288845483113768158710992417390942880422983149922060458666711123689218988924482653588678419064877402751035444845221077021059518031613250945488419546442032463624719749675364900562828747723100236098038377462802944408011493974100875784906394914876505912913359241523719407570759381910774320888825167242727651228616109543640176523850154442083551216235871627885883917126452287001577974081964238389873340735374293254069151171457579082503780736926638202351374147824280363541077762074518400095170968951202966905717779869250925984090517605609390137733938590847178967127604617486360685648744129310835360392550542302631660567392101492064946887783337358642066684999639807136124268650486166282900930359634401488221571652200425268755258485578917300325595115468790854433543699872875923811190653646846917680348976144887893490099844350757915109910882782273520560938257566619842464589385795586157840109728396324438621977671162416955813068468902595504106906069631844518109021067704846221981679372320418152078274849197569234864028282368936724842777507363513901061604056205847544812523832521339191233901671173225394873868341206075240745705526712325083497794599459475441720502964193919468176972142306553888614483638886797747431665837028425273448801912343411485570321171788305201646458351780320172819383742958899483981706790915248166882715927796712531815075496203835660554504238817641663445825541895844365722686134283894628048245723031742661919746693945981321973038476282232112270319517508987612188836233131192045902808831478750439772525629422139773176093322226098861128936671082663716176226736046456345038373838776232004764950712681140309519876647758667521579388650817477400187775149784152562679241371688731135676063763515786152173381879072991457936978725990676986500590292240223621164683374589137070683349729885765652510477198633167054793738213727062411053354518215580134641716547351200623461404888912006211732209344036754984525008078384310677791378834048788816391469761430267288809988265245762337090112905740559256931223480994188168470243038871100030908944497466372281597309061906959074314953566566089544314791896894388540663812789770456062133258146291897486272144004941756455339814851794003371408558604982219185038990271126478121229004583555316324319299634383001496043671158424971111593950371402835984317599088038465814409316860346392663017596295987278197954516830200443811598128431150688652948481960159525976262207836878276584077358232426497362956794138681251044272359508824930670229789125621096729060851693313777555699341523509603561819402614491071188529149162408995481996249996132375269982076865167834952595308436876878085889236262133025463879304109233799750771064716612941839670142135098426334852539815772247364660593069057962335116352029805762003614986778279838656437397716989434540316010683010439924611696353648813364530949495845250020553471296272786914739669920169820885058587773961754431027302906328224448278171302123131591825250284207472648636449399446637396919694403956742006019052246695130542275696608317201549402426299838458784430109241563194216931311588109680690207202287522953867307250334167588674576457777313951946500989945018489131762849958021150848362201767518472544744110330283018761943471855676287217199546817831244048272018710770072962059014241636882003078910118150175680399904386981041394170977786207657708334076666137913041097534985000806554486269540536729700120718830079226296619382959587557339513223802772462571547980391033314172423616013618820760302372568109296589552436485125606246707894785543452076844988271653495727389294995929232376208649556102781199003039230355605966057904194689163359397500939911794083497911383610134623928009418098779390958339860155965753388524418715997311928597922372089523758654579439072873010106977182818416597749452607539834047734041243298785332769729265912615795485729460433524163264859823581736135823333817230059873945631509725622605612148432930721247740079591614935408155679202167970395633397361183508226019783815499502053292231874193658573007364641558347428767415322779957193979426076765074522230605151489891040880712389269654339401086382664873187370386034319995666038797174657873124460855243864325487312950935141655231477923108860202450254898066993008999457781359655305530905731776546080543513215165124362371773234663403431422340558986701309936292010653118498423825559979964260451482939753408202872733563134551373239684835352670941155588932219611020847622608264007368247654389423338325653477590584546461556537542038094221460619810267155539337607803078385482759646571652321915402829924313895710771495439782483191699132585740724785543476923050109136694794378366771895805427439521765747807413324115287055378690829213976576699745672825117667904478332108375641207399510305940578599173473872982413035128496423928883490884031138208400237980519012407457407752333074731592208435676711342244689567681212246042071841308522057333878743781385960071594619455375198720426548809906984021336199066849311386826921616727820295042251105014601837281501605459996323905583975230515027278330065801836655193058723250955950412939682667414297666490159985891427514529488847136709005990602198485141252359112911788240849861945962460214556382603214822131661596129657139201329829196017277285960518625665873463337331230708185849650364890853677318852362977393730497769301427703223683645607970858445805688196616588640375739990459747461283216665000713014272187821859395477629370192340617509154653777031500962109268951006121529736176382548613146995829801243931986240335669171741529391621773104929886146355575279033214777765759054987172987721680071309204367114892463663365200141874507072252070387754187016315881846186588502469530918581327215843316470856464286725362933725639779188572089642991657514494713889518816515134633196572060908394128210245767554290378283127073429810348162265695059309700275146824379008988163543594377926147258599219211671046259613193120492383307683681358100071709571521575848157990687813505040370289695229147822589629110442679523029592084101872083612257926469323210148337946197414354229030840513087079339371744809392010924948761103260817074703292337083948916243254021529446470539959420641547629375589190101251991826801082212580942949054901436197557532534658677202691875610209833450812295249442279550185750566408136134688232571521401191346380712301496707021200107334815793990122607318124134354166743015877979263626522114439869789499677939501808608062791171945478318838023172121458067335707724654107396080063131965092142369882493500606299087886830655559438502413371339447617176671138467809618154888729263734393322551386672986055955066177352481309539605504519233293104375963964006942928493119658285350973040852635046813522361137831391826141026294031749824738548730939288308237581153356897253495547749146061840291014961513084341853576635516511012503266839270786433155701403157434347890602956635309422005544970682944936322553245708729793374310280048441664150904804699600357753196899719098181093482576647737021076828942089238855097547365296449475048424103318896167266921859769449515191329354374532208546859557380914466166085752714256485728149109743010832823351864670003507111903981644742466899664679791597525626966553040929277896062700854731155069596811086637074736540047123778003148984796502784938238737836707927860431450523382902267711948311061925255503836893920444185097694318226268487099260298736033638919296274279996355037410762894155896592774180765142477931370881571624624898732808577724027874407746698429009121047082445732959308720678514854285328646655551206617200115653431887125967397059034247404724259506737755634341691034081713545995247616389562169063907090407613862825154737018562813107356273651841172981843758427911947683361292180621101545294151187438776396522985334011122848545768424963139344198378736532094714650642234208276121560598918437580904269544601345646891541125553049884451570926777274397016114108087466712855845063853930984368087628172656571310423410529223651800002584578664517227616642838255010058415144665318601053520653291657808814990031057427350409995255659645014174511032261650205431538750948869578695050055499757653668618756432263234618883091183541359444661616005631012737450093880099418304034055305228306242457284686463700565795406003595543738278691161117076818578895031108051424054380767527942163630239487320291970845596804353589677698819837099608662842574557727280925335448022045805436878323237447944778138045718742902073350110749040818355559323486151636384346697590491700919133269622784569759786467521716070044642425334459871206655389473820403241422048570836021084187114488856527211756833592239357895341980731036572890765285509051140975232677385554126299621109971795789364672550306848248220258750724447531258876059784884730133144977716942022143978314892969428835199654873136676214268533380158801772409532105396316056810279237540896589970983814070001647080991118089100170978447057396793894962931605590554695616180772869539795875948605943076250487075387676715685572225033283431499021692925326358981788794631578118260646446866411262411044703898784112307490202784730392146732979595800721204567283325343312274389088378333331344709373026891999631605023062664912250200857757509894794388623735796783855341217167435283586785812763238496766847855248579751699453716435594884057209826885179885587566955895766029509693247476030022704815839189392284192034803309171499209590910418017410819358282449927836277948623352462818218635778639415150966464122883123089158987437575243268285112713668418618156950711323968832966179203012937164656600111002047478805071241899487501648077477083686889478599993230863159841156990841635305817355272000237442490398575584323193984537794992945811107969750891458244044231384276505104291822846811635951455323490175197440185501773872206605839630191612063928020399366814241457108765004152534845015486622361274695087027562140925928243091340330940897114711563755263657098922289649545594890928459523132432022739793172515440628843817538702704285743174159053128534101322670890282067153202281134984762538060249526448837169105259016199299238200702292408315078550948688611988595551783236562915495714126740526924263055861902454963065123389791270219747906435745719481064175812057144527681880307757956843967409631871901780140078408483223261896903123147326964098550720463241212604269529519041063774338237699697517906234489441886798783515802663456173005433403849041795700321658068501030318349339252909586240658324892026534255566904029164445125649044599353594094769045738150799713082138731781166636413934224600374102487168514666922660520812539189515847062835702484813326512044742060658973432201126862147294737014040983571961481745287097726377446608466398690108172469807285358170265351181844959363812795658488172954275275510264505964900542602434804684103149109761419923844962031280531807058090002004246887260762710595444894006465330055355177233746557585061175349181138341885850722183111656215804978943397709278138389017073527929451461364411298062125792588135755247652010339011061685199183751842071902238635322337703374040518318076889401351546071661917502152574008602620071910020433528355996253196957614955348082543246009349811350444513842924161550459103128438986905934014871536001546767018053509609524994023530893176062359673068329675580074924292531686693541996965000630516586928588120848980897296463772885109408344133505848077978901549313039403015085531868010021725689267001807505951667699186174550463611655280439487585738421435582301878044591577176478830336615804931012806442585818006121134343456824249225712628964457523931678466992061631868362934981782800287249349053542007991122421020827344003293261371842367590882823037472872274815655416050588491197483184775744304196386309488810647704776940533948803416539007239546697587283562847197636461224851380129460079142261983033515656470831228831560204597523883108749127203612593810466974115776291432994987575867364712950499703938776554899819826724968731620437121788583203263266814700983569905225489557249172940707769750140362034540009962554335219214905207374504820973400528595519421794356767751522245103793425092707414957753601722278452969562716702196902076290221801048980984697844154862566867291950047876708503370901624043430363780619684998613181209606949645556438473215881619897805154187738709583159201215113576369905883288478081506187363131783120801290026396726863941880447419056367371901736384276715298101998929900137516104968415526094657465010047881483725376943751020721615252441757651813136152258701913843364019455239103420979618374315478912202354842739420869052336531281909359110226391865656640922007284464692408771847820776653721914832172784671470432652759142686553880232968795763774773985659284815534937785287196223384615836951581200317259531848855030558527210529062862659131107913597414342077750750019520064825912155054591926868460447082938625589417748737599554905597808791447586908324307358103568419657928044104495030652533264509534944692434315345286074340514776012713035199425487607013436267241626806097097553735185608700647566733579744688198441797104497272455066894572393563159688628840342516510606859408941594497412537410089692949619097226085934438198375122412753134373369170303293761093639898012080635400373302428558343971893422747474506364071009463785565230658512394886210949672634753376061037732185248108765561364040545521036397886268372819706359603533499146138332474762946647353456729478340950364018516379183034937854170361011991608216259207619875903009735820827937362917794066548688948652257279378766959752647600895741431236753523994033876773074697679834629961767414018537452970929443853176032102576885397520319733607708450256463464087926711411584703892448864229263227692823978130577187485174689161787873712104123998717886773484722094146014164209666851075897350721925925699987089986357194386727464703017898653214830180441352933260771929505098363853710767963285987294731680182700794706024988063944364625825243803753078299355624799449668842471996559985976582840178243590519865907864503835777442916248979076427093263081515030651646378168937286614972407085792599262005664431840545790049033957151732647270696549398478077979369411362453834720345655186542697203901412860333719468940873938071256734493743500655978126995786167415478501842798387455430761560145464015850930319711552216757543269764858513925876217342652140706190795555077500105723165153929563452515760758392124096823701166669210759970889788061597336433794470390623258389291150306503873261604988408048713382609832873769194228602950474905960171602434824920029293330183613819164061833906060331547849847654545589583743282769801679339798018262625686444261369752311860870239713495111335979921680608172461425315495214819221542794669831525108426938056073242468493505560300916881389499859643821487962121041611001950426561027050495291763003421046887601657761955638205044161851953075335273883158876214836049585231967007358206017494125118907900391391797282214695787820629127523526105801613148482204386060098167702408422470362786473693832264023824958465712827888824393707970280323229990817561958584959554610719283083149861269559925335567068237855568082840175546530886408059478579471768468487618471236912232112961711333735955773307721393394360732218104280161536852500595055405704467657815216431529015987055849231096116832337667901015695740006042550132915950081616881834174720428042927323991349110298349492745021244149832171526489623890732121268745047042195072628457299012484225801616752421067661838014198889045181155490643734978172616145321033149070692742495512888232542723220477738108632547756857001122423814390822582147807035501054955877728102534144568737303898214514899138911220766246800184228191309445486893013010960205176694578672453142252323896825614647933382022744108410496327067079113008913131935315783753785439974654985760105668609050683119853377592650019693782375277869588806751032049162061944500624879524042401404822878769747256057276389298467681917007133766045272070969186294877552712564034834627890261907136222732844060863030206818485752833909464487509581149349949055236662308755994561979760541438821695989178952874269422629468579671972977548914231276139821805106110971017434675217176460277179949630709404412598676363612897872837687856457025372645455133080415116606351293355274748367924320339561631629897944334056236243128360696307211976693544093371636493937301677484711303186472274207276201055715999038142826952662625835572350994285655506158930170712034397125579690616747948396925441483288083405881696546274017899415836131134556590569153781925567899861008885873516305002976964994047051189187265164077830613103574180181259556995046083088037841245712719395077092708618483386165686259620739237876470272917246850398478514588468331670320186715436221118944068917459194638030417551310319255137864800995530528698845713225262808113642766577787686593339039100052948586502944886718252134813366141556015931614183211098870565031847613996552657517298576791385953964694815338723238879596695593970739183563506088807509481107901093082906569273529987655308202716951666993867357194375851969640247858146453086653361066501824141494874887726452860037597474601590663707779991335657455567806337964464584861890373632948209351938338573238697664022132482635649882616928795183804257612998420099957824311275914407867041837446335704967535067419293552145398154963042630091592078280330520963235492543369194813492491943516929759472668855981289307653033285072567774895246315281236093639068435838590176241737748020312642290914026398931175900488593956377360498887245416202853151931765162936216925400056021330055827419086107703187092870827105921392241364679171138085121675879725538610169567853211502154866400589805505486709408842276279940258471228003555607611162775426433685211134715549206809964409674723158082003276632071788468842067568870267209607760507460500923699701806485200797021736148386571313973432341034191364482145963028067179137936191955097246404273469163037767771065251394805457215593876335213235590463024758398039137006919215195003004772632810139046352687024563010577935353321438177308210490960951209740063239636879096674838949129929534849373033738576690052369720053013611614357454611177935802772702520969079084429806838161152054113707039250270430400908767863979074519562424385225803208521199381819147714326861854454685683419286268347625010236780010964539985099817277691895879157585538409736899352011273939208682652225570303749749343610912314194571658569878739019780814482841245946453199141522912909008387270360776753185830888945690680010838424289375765625795760185844072591523064564930252135032680883080475470622551693077765655387956395771584357645565771410953504754968501168046261132511460910525776263608937728997291053065957893012730476163902608741333532818628702310647572352446723391420057871395618415643852485453833552275526493257715613312059769027516332121920504524919951598946086343750303397512610924113350003702855840905968584468340889101762458039269292774788939936457038424563974675614038145791329933426384978140665366445469050525214617285212013527654054803539684211984383354540859510487274639005876551995748157559289746821426160286875024446396160434783994414987338257426025602476887087065544604250437097490390805171958466062849948983382340130148692963760343134204954129824951797034249991440629498370383701921485456586919559600704303864274981187255986600227750436564412370998726973776204636073685712252351646493771497713859795326266344236122510717648154560029051924018215790590293507135753726359749355196570195545848488319677440468796830173623508650467701533546109095632747076698231996901086822254952379103956063947543761774966351586164286279373410766485762157935215589845059235492241686973399867422747285221921525386788989747483980638770460259485828273556553417225754398828113137439362965007382551498992363626524588518362975138478692839953189716377904883526619967537506330613302272336626731866302389000081931076947974650835365584737892092914968149063713486575425551410140293577816702494399561006420529320888546900757527202234179999880549986540287520019915578780836393677620818153068160911156322495565184876743771303943857202394070265371235767202528970957558539901966051715808956842491758042155008065769857503023444949066437868749638235608507792501380836555894134518519594165586114864725766338630488942902508523080908603469711976544844429590812336038129204713639351330013589954317197347961844767386106375193747406213251395513257826140004512400501122273962622983464540667616425967969316525286903581518621102835832817378663466697282798759743438099792548972383191187710240162154012995739717364833074970488050020195462371566634595614628033200100596553586488876867523402550672896574603703992349235444464938239929344064950178667587160863816468703089904429977519248910525775459663681451649983726930794019971453156827731906257226628931297868040724099530126362563605113833145084482001385939654018749327831507447148291595463314297179286916630291681056144872794353215770839057827577922190063038969202289357071760926082889550936278177650947321944696047798898083852401911890001799460242877940175604939762537998290433182739019097319278485583588173629164619940826641289402432334160216737157653857837102639983366151394765987346457399435519074942470369079445439950614440857567541854101138986538039756395203923193836193213382333004599586579304925513585623313008916580441342425376200048628025287807480067275798299686873159180914683798942256022298542309916427429352892440735184251887543588586275216079980477739820445343967689312128124680037116145959924627834300730309632493966359778664427784496196361688895824075701611443780119896113788510769718419797584987426336115956066914052667798697300265766075123694853357206619742661149687718263604501886145393500541581534361039488581201957750434888928572992266077408519066831970486897815938679372021995134640176273007179300569693821953984941400890745911044563462965298503556717565719002094392681381914652135131281742720696358568396269586623207852416114399287667540487547558996451415592419048826765105138897415286407987517415418590644208787776757612240501366102177953944122768238320641728463160164454136644097003754752780868814004119838990156181334767083588880957569085413762107061386844710641493610765413960608344571828100547318547428736620158889400863423685482915606495808693677266555494247373644304171786746456031719173062446839720169235653970532557932358897491981774311106425874756617776954417150058796605205385863497054635292051872335034622179632308982759977106652200417796300371579203733796082639185358029172113829764381339504124920585161400297336537483535306157696126818441590784921144900365347082225857328992490765778677991828251101788506029566279946070264860468087034762767794803274950541450624722998970984008302656617342918550487047387423202135357546754892526663027366203068755173777430773099660718662331013420269596698395477266120174939997069241753366200806253260694027265756978081688873258390325775118221509467569648948605324296097209220643961259363490193246212472838740695049945933222194508863026275214352665655186805667558518167013319312316136511597022889851599314998689298098100099747247886089128815255564459942273892164809815818996217692538823187834297008193336633233073605484741041012176215202034647136647946721317779839221535773117836823717628639807130907364117580804961366459034552925119961387371737053925479158799874085743440157811563597244746798103414785109780751070370458581431415881653969737386400752714589464967186382216035032620750448769325604154910348338603994503760630128213117834965846496195254053712688696312005446432722482009698331909552883164856461995551558029111105529579848347642081195871148001624287252962337060576682495795444802778095020502077180558666756504824507631855408304893602596944883110922463941178541320546467260625701027978647248569790629077811914263002323652988919221543955529501851934086486783324360147080748978125388143072616722799828609782623016650899610337555358566883841392635274634467931548823911947085327682085349868387831028208064123862482167028598616252046920316685349247197043207053829608676237294857892302684217580393030487569924090744889447275389789557915099039298992469671366566921784293263749706734909524192982819306308099894610902885715410080391827565599099994951426084983580138071965890598201005142544465393179643714867539813088700650226519664956952521898465754326219101428370013875405370481173057385045074870132047798076149916526403756530661402391258745497179880509089204716472480038156362284208371456443893714444097947757963439405746954453788393568474930686584865650811799315657053882928651628941987048471434932387278700629131687413492338072907746055911557534093573689505567771258903759981942470216171387529458357554930102400552624597583791846404859080985778147798271894887622946474076522726109069004511636684829720459067244995319486597016241348080799540535892398990786689801451112103560651529814841196352478149419635322504615560183154915890831601797403714051473841229577441661102320449930982811013265943725676666597394140851826244620258612271868289686482043166608073986130068919582825961180281611152189120428515667463642003097782231514766961270651153113072382677355754839506986195490414561495292686453589961091137281773558835497183318168413024706126406157565365161508745725280659604682021724509040770549304086550793821590821645345159581427829650555609635121408724987777623856769561335858981720789944104166455959356190965610294358357712215454267469317293853223572450399058984699053922538892555160878316573720296902762044658001911270441612986732381285715977786871497373006160031721871769319982457091707452975213868876622799407515491862290147601397713529324956128780221653693282693783232113965416886941962492498449579045438339619782717310865177145317443112331686020626538689840062918905262977034085762907108625498842451367347642762441465441171767619102643550967425049450972710184596938010555874755208790413742370575977787964201215018419849831446256806600456962873137394485763763370366584071630504500427889994354275712129941964678019434415240217128106429883113090054167082131568389217332711988159174231879642202583962232789529727358867106626094406116571708159689310321758815519363260047144098934049228472020446492587290265265561306080896419169518461319638056763113393289083623622772180085038684488622012853397453291740285543767670198769599498373069949425014025554174055892019628926354743515946561069631152901571297117209089989617840947683543680500254058028655305821845917998477946057129238356890210486313560195093545579360520204580757427742492437034589112211842586336236315168569235784815616616626767892740304003522341715453387590083767867851463604630658254486737952918083882257270958629914756462657914871992487572399110003021228566475442281957849992003236638199655947070310589873358524079747733625926262362859515759450347814308906564314311758602671240911171504459733951316769187101648015933433976692541549320934797889122033190107768732238359934715272110361795219670966747460983780975595070211977795803502702893682687017792040588784871855846924198596249447291847913346059241197998258414186752242538575058642442615563568908163564586547936069772879512441090652063360525518958001608055465424883712754578560155460206826538216383342872736114478532857968985661963189086378314796051030854763954361194293557437662076958205177577501819697855558337062440267738106860966678425048163466714993183284944456784431526565715461566719126146841825402711919628748908313657117839924929248327756655303695753287818761637351408029345783374147380096289861895511289748447247791166311652331365394919196741969712085224978018742846910850561694227400897088670946557205473793052125615436725430262832734232043481347774934627635148604384811347217091350576396167184107596722331876372659426850686892248633582848673371775129233358380243972194271945900615517436027368177595043894306425134506921630830915377924408003909820414494209392454017557880351929761051848331482940603406881438633562675457224811634565796199090507276924454396371919366079481805401080123434056986660725749578685397200042957115143517717263073331828661247131394212318246018486115769513442661314642611746684919725650416004299413225496985964917917296448535309224050673711863647238817939529621831494248539262968697726339742413780857992730090755510148074114585688107168687728893809470584815251514358528744725368485749719924858554160541843224831792298559283101413995783784203918892208890613189314361915593348152631194938867686913058642975141030734554737990462994645334686437697136300149271475904945447261706310462416947908643045309625480903087802114950943032680637652672937778899678570597018962606358856328434726773598750737693530715744641224650739135864665927120767991701722278752797301650199419593860886946716479776210768369497974486663379354910715817712157788027622313615496685755090486910830967879294393904543811688472000886825508340279021026929102892065529468060888752409921482801226201031241657884588165937118939672595539166994726996194210056797047441185573873492043504033766388969976794507042647028478787578553636558545659702300384338444128563798200668087404770663747901880284621936907257843669565195762598945997491435593237611290572863371014000263373848218260268181773504537018671384420853453953785844270786324189166119708940169571699324546449103504166502092435402882943250782573001513412220973207613107527782444807206137241782737870868274518763610196066298225078283238577425855055922305120542680823487378152081320890527256973338732231415422822490095043568978874597912536380053470700124965540192188308672290381221517237069349760292957438701039125486618314515735875431998472651162362838445131253859230663704697925550505494991728416703499490110255819436094849200900534045805938999927767311794609930387633894894468629211876265581686533624723723449902925261651110818813135275278556066179813858528959216206188109783477502909938416775554603720852599734859617632488202054948574829229856013116556580814338565568133482766562986828834837906956052265498502905405485259354795753697867404081215982524647331146819228604014778786599656265823070104760849676581806098977973426421633780747854609901357193128599452268261552298922920385512576241304564819635110977094596621086956516169225379378800801821561526280772637860819398985070069763055592471703873283018330430992977115469369498778522167029680029584840331071000621889026979492517018101836950517154308602407174379914246436307590276832615048814945621763070719436840827175772556297795268792991846441976326048413099288229150850262779256847439405343444159920839607428009289806865378218111424638452855563137187932714825273299334084424497013801786730554069771842087052127470583691967855507275594246934242834507421409935323262975179456034036325518335736982711508262561829324458676894603550224627592372312070417478921371522595935957819128078412223063592534199696660901835412059501144725473192020689109054653101623299721860604379062533181074594711379978157289861842864188485226255181741042326235845616649131662785435378071095353709700886246178096636204787779679263894636127688427000641639225866335393610955510536216265287702605806454912455853657121113575599046599473529592360883661482317640875771139060897022621804345568960479277820239160279682766613492817430833933636541542679520167904375356051184786187978647825776311406045277610108077534559553822340504394397580615788135360296877247861042656357303352857246010942493652419381784458014840328302686319408400706928123987080682067324489488263808767336081616801760731167997130494626046630164019644830885828495466288408338088573551569474660831545717934601350222506492483273846120888576836114306146241614915346543766797483604165321885993583233169790138070233136873649592324866529282033600057663590376207046161469040367523423010259912403782968616252063734187969599016125488874964219531005310865032729933919418296861788774533123375547661507463485113837324012609999917071785476994772839340675624795903517609339880241553447860843327722039456684695841104328486463991621942179274399767854056674661075627907853514585302804260612003227960846394145948324459229356591361566439672340053209413382540219495840406600996903067939040933068551057554181107986180750147797759951611902122088025297391439250664071155113289255980641265169699938520178407869602282675222894766733322519701139271535568766068144073036072020101155821516057436498231770926644635686941958586966895522684543220004210010126750929994766967268458661929377854553930226465201076447027922096174382031274949287481686113145692488566237708599107739491692274074376582565937875665985965027644323311241135436198483806645651606422175054440319373189881564037652923853870715323019108032766303180926677346169071587880940818436868969476190399848528493217285173201482473329608879135770231566406136970589815760525092015062788042977901697709212536042967850212786771414853998732687096600833137259075995970460380955584863790963173847674736917096735347540465561815059468585548696530365605094071758555089185730523541582314417876178353495437392950632130576880651795731858775182317810730349470988576989433622325837377856906011510973442675508624156564048656414309217362343725176491263303815415894216767859648700390722617340683276812171286804998065065394324689064867076363183947761791611875258859387024705645536826019878387632046457888150194690152052946534813763211174727914232556727638464333018315399577332075596961806984707787648802751347929708893503048546213538685918401153333939166090481812922173023273688380832652563636058593807279031671100968707669197331495044517000227024486044029942096989442794517704049341918365204182300797896900482321570449304368615407277370507424759371062721360692103258270737890939058406334731146254010022898754166287023890453545952746436060794094113743097273378383784964743935463633869607229862050911454766100242192652198059697491288445741106191337351526270182534579165948684943205113659172470466545824783611204411145781840686093086801583670866998424378267610285459839839985832049785659855326872701292710141599304376670775836329624817931466286215575070869507689560240156286436385860157573006835138205457381356512064282722983885167935382753902021510705171637241039519118193702752377486451967042176079476528113053089669081682122584742266993143440436803326730952039180300131164247598516418133318522033608046887839000577152154316066209660788735918919524711471165378432054252094828383465127296399447115739341572776793449062910871417744123594995259509615023034673192894360727535511930948517671740812552715061420919452504674851842055256682236515575983137814911769114767675338127142329792514276755524318430681340414128936768167849282099418006691078809922131295331313946307046968143425559557653169250705048676884385854219535021781040067431145295047055984301158082330017406792683533817015354529091606547801567010749964673504175399824648466984391819696636461998805389243561530415127094795404417758317604047999552865332084414192752383885472205282585835268623860512996046556129198680110624847000482562490681836182646023566088710439397946947302682551052547385299293896316462441300625029948946467267906005952850688798845235319540185519367637002254235840395591169436521617168461478303009138178643041994425203018287012050928157242162376145994318162173300611460213944807579181599690604109528213554976318040789277398653154422367851124974963665016503530940376444470153919111130976736769483824485448800803718593216201465518230350019675540820049423774817848029855720361691170507964485776411514434786651627819823842220953243831481986857586658281106820811081988003236647424735740672357480046432748240612397643392139524853094151505674010139653216376068401061043398512537786480903379311369353309016130969856270375519010807686756425093076657828334218623846120146755442743864353626068230336251680414780851656713925645208642983993020153141600146657467898030061133315428985608370739036035323939870074906852788484966764566946080807267535015862024757640854337531012934408511791262949829944467165475782981897637932909822683750019016036980243024902850952044715084260592478220796622779807478725355576815884315582267215528441259374536831437396659519935456289995552800245625293236207134036388417258054706290820021770301205877300290959245595945723577691212577992382468895066139716905436283099343582860614466893838588499114163343995699999341402672337810914939320032246548635592530068778939511879829214700440516908274967672917838914855279424771724534320228191609401007368885766574493436849854583981961560131196815093345748906195075471644258139492935189996415004415073363029791610782335528934231426110953186447770194916912790773516146837104203602795979766540038603637378650318939408060988799797564673175901955010387090453191328960839725718883581169708713506045264731704700795789804500514246604520837757009914397255383695808652950017081492725607110745012902339560239059112806449948789361095440500450520858358699957404045761736500243104069719183726885498064814376891197906434063409488065390827729743796773082165264897398958991852946133964674029362377477020036291924945445537011539771621921614826740981937081336173562749800169015821461394793955694664680474942841282721529709439098820095739145433151291380730358990518871879520053436531508298007411289518602141625902903613372330754549414197833825710820950060714717155974903000927105759039977299034387798061447542419181147120902479535751495050819559759942263528878192098222883016790087578123971372908662171922260485117422511634901521297324023395367785384426366751430902920144569745711123883146333268651361941099910832835996999078182624821794536744503087021913979288744200799457094869120255779930745185757066470393921682581213686284988925200513205742617348063329125630897407166991907158313931415348509147330960569675939094173735365540788252329424221790431543732506696311453031254705986948467659472107436692582234286192886753498449048493939949263396384370703646089448228368996097080327319255347547786158100495718518122373436768435186641763841405903190054236864339417380056878782135108330453343290857610300266569276537635270873007813633666345004146022714371959243298126588293850951587999712594845583884428931117914176422907469278658324522318643613016986894586077273097112528817096579819031634428304604503460238228835459033655215866855010350740150265582223204490477077014838205702291631022725449261207794911757983151586234949625876303540519013449679703988921382091660543583502737628112243611910838351761150578942736941489028717506571016595974429540330438469568702632395954895474177561878028201961948392448555664276716238212293333886534595566384982581548609241457442915647562680657796187217060669637681632469392387358022352045910372226320124459252358092649657857235787173920834028465194846639257613957377753978548851960493448630708623412196369167879548553408151954073202040285811632206184064084345222191556852842117491968669880201107768964054178184664033034131600623790987527042687145711580398932720244414022352177185836097505423264320801251316431300012452495692601941980862935772641067760860731186287979303300421732743036594766768899189177665912378116817235008386926615945530284304450172260097705223727058318406710194883385359942513987727449000285764487982161594513179970497546011050307991189684826177890726940404888098278773256089033119503584172028148966829417458166570080138463820637085690159901957868317508456777422700627001393881604818856508413985143518618551966705197156422998276903314822389392775655464411286981309528499538516874004472362212366180319328827288247780292237475010795106919575551578561629506613362711133341716983856703479604894182194111086951907114395543154901787022011212187932272734982577241720211737385253487938461107486386535776321561192744522985206974202006758410999815661042649432966585938667871926937208296331652280147209195076055884785628698491121006161934061301689892829710760964125132773986044558431133864149407088566724091497929907263419997599448910076711198489103787697853598868197997092960430052405538268891676234418829948063274362899994959173044699070337953856979734963974805272807171559335603942227601058105223069227267004774651882277653647808403754554508183045187888589539858933812612781121244574592992720193112526513263744123081068952828881135236989659979303817983942098172028592112119880247747347440517067748124331512012564605264843444775203277278653586128655432888061361654536605550835673315385792450707229896051803778185528714673194606942318570130089618892139479042628955051026257535546342668570146566547210360809517545088952487928844435787264648677129838877449908939384205618517755073662731870188346668782571853622343471069239923763729428190664719774383368925612478904824005783005508844891022136489864846775307604603282181576360159705753068678071640372638799840685829322604389660924754286712855987527656134519055339559335220674947184279806072787227168542292192797128493367155295832393687941096425338331558541138638515716295313151718654117737176802585651406383111209647550325945887059076850339007240447889643682695449247435391781491412177423147845777898155230130891682147003815813141067556080990270144781497008582428695219824382757567830999728753799672537037140355336637451244143219815389173153368282083715803070289986678820754799774447427237426426332958670973893433995166244129996598496631897514482220782888571665663518855311304844330472305200470486875887753143762188217359307515780160401490092700003687105330480997761332732222935267452994661367775497260976332007331998932231181792022959559612086062721559956844247819638773379033371738660881388806729033955001038522309919484894252148948957630075350190624048817004264184773922255783751787908963021127676928429402244193404396146564810017071259223441472944794126994351146164097552091437935138460503437581592176542752342107041668254843449192923935354818306929070179438871144592757306424896597651061826392629698445180290987967404141968410041200325513357869466576804175192275492398873339061635209588667300872672061972251951990910035972993325576444923535730320922953174772638119333368824435616756667400975372269372676312163712405128630449597372872743061214860230525654588666437206728824709269645292172609932693067433022096742732182278580610199757629884797455241838660819495671382529302542261411989842215356397312793273503647643603752332308906692739534885254573359696871830371548276566382871804899455386056567814918445059022429077128357984066902540345374921516020660764287123388366523147848936058639948591780329947835937846397016371725928525860688094820523875263528302760593117394205097978227588892948236653406461854131502114690187284638686038166184674990841793475674613829549518078048069067010794918659760645505572651993881868124514945424786511593878487137674380676772354009578672000295239888459952766589127207834356112873868331283111835076180986375569135141608717628044072139085719753450721471715444393238260488758998058462051785835796268354803317631607895654661882044135285269685630610401097756840483865463264527587322823684850752173827231843406343127580242276337127255686754403531425306312692545361219852505886467750782975987824046344731913336664531136128278140064005420093505355490648891531962423161273723382986421496050845586817697474106280615863731829893855244843259470036572201897490555274795362918375077704775344786848243854813408804081415331410749814104317010534920759329239713009863997866461221730809619557038445396730593266191983423479135675136368284540821960291874179616037497291833802594376668728767307032719742252385797995647765197010359425383616803547627553431520209224798563930862056471970511686108359657809246374291282369159884147775044226059393601220339228704455778639074355022687571325352196591625760073710955192077861485451140904177203647901627955401980865026640491853674007854297377626065076535557156903496382171085736597897006841128005064899448237997751724712444322989789250739252128375053272728545480779314190526338743631941208130970426322414824044735000168647830965418651660144275876910413718700833623780367463759968978835512995281684526612980325248543323767045013823198603478207186125793263574065855157640427544851987780011900811850945962564986040988631018690063915913564039426557912357835053711844219205632454435561472630878091627766273965887510139831819600624117015221107397828006899121950354214553956313837952577726729688701408991866128793479988658948151491894774008322775273949527647848881018302903875210649544320984386310342464984924537991861474048539299415773652945332426242894038899570906567142740731815399777463934495923401914401800483067593379579987138689058494428163713369374804001734130645766745032811983591694701162435629177335777168073191554922163523701556185359028542561566278592741253253744971741092478896546777769688331056195309373583302586991933903840157904527388935426417341705438691509099431565897126664903566316341450442519284002701608824613472328287527552138451535869825691567500775806773939130738805031678130161748725998709791734068634337798293852937902648795418743326780577258253270757594040580867382799341937435825120489117078541120071843023145340666300288646047412929059580139776340935749969512967903315704839741582131989852268609326770241015760469613618252487596076126570756069788300368408974478322139193509828061177140867332285624954491561248498934655349015120185192621807902300221562365581335721541693294612458508548577847979336044451991919199239408237203684138107230513882756970102357354642895774790657807286896674366456651340639566718033592221714085012302133590404521529938559473703346268466836873787401797863584145629250431552208423453503409610157018399908108514951781298123145114328601717429391821789849040131373378446041232101093307510684437995692432582669642853729503228535248170669170017480826843564435621025887675683561505073470918223619552100100670128063802326623351751036568763103708351346377793603898147019328471216451327794388094310360644487448809195941576901008981045815289317096126238718490603216548061410868918330158875025309928954265845965339759197230605385378374497035723850445156796094407971278104637171431452258949746262603351461980156793873056328898342283541957079623169315424850415339138731992581244149650701556650885376033905520712918809766004986458966757322519849296105772141801246909523442192478538490187170099563547977250976426474894053932039336034364129775999661749463015978393626375923021544425190624855805153296078563128734922214078822978428327265406556833520677453980836154490885210707334044792238730663881384594100252423814131013101464832226908960157440314434531452570739374141311520293906852198527898385270933083497552290522629160415320620003371209359013904196417785455694645438926136480988906021848152847629584744219225754941194300325480306413936665635047932423028495487125728481022808569991544658449458303975364533910059590347305484949445370897755594918726690105081796595458581257944738799263969481379398813565889397549544929565041542699026385895856553759373610720294539026611252008662411018518907521852008367471164298218097120833663798828408020893345365173537168901167665413008115593998645685721248569751123426411596170408720876681070600484759507267266743639682459868091184392754700384042833071594195627695516863081969316980469212953654838306429971252063344596610010675097948255815234886946405245595635291469755274764995960855223808523703715915533276040812718752544568403308664434483779826023974095651416241072391417990944141839224713116126264483861487466546571261000631389207889545454884374461980470433432916130763599400194719585999878001564105097015756705782649443235492607363763388544258151801102043755422083539532385129622954818706304708138477539879634630827095598740999023867630803581666974100243914019209529419827009992417116996290165852587121759737992669744465722433700132173896928440241942084194134717529099608008081678689233950971793650135418682258570298351830074817501159189634517399524273148787984682085626922251450566757044632793048125570810811862151057198235022869163976048170842439013777747246450323056458313368850806356828163141631643052453245441184565723628030973193683345582929678327728163084903976268101959757888515827897649638548599680485509940253119174471819269049194110256691498886832350132606818093967435927030494789444229669415421145119177555177590307370429678726934110349211429073956762023207984144174573748206141683460991226116395463451278230612348922706998647243974548102680656834377767467819564725456357696604239602142121544917116505185792518365511632851306831425278684400132452300825806591392091773313128464473637104522495557472121417982776796190446287374159071696529231139737692720199760726151642309717639816764275092977368066073407764044993110962441089684492414809893033540512674722552316131446180437800059607449437243573160038101989414438901161888112263361226026213065300321922710625422027295404057227387076116140154765200521211944011522138939661777037813486957941017854577712157011258922032579166465685015928629592816637865801452591090469694700247724640201577128819698539907216137203375161698319526198399457136168849823326658130676376061329235150969621718184043104260700642916549903534658295845712707023758252265677464413720365923423484534535961956656856757715822230578219314273441483522737238478108224642779234534431585655124572111533907138716757981444209165366661550547294244553889397822678608055641084545538605952719896056665902870344825952290846205762437302448386132400228315148446211993840044420759768866776314322193218649669010086380761287095387663771308247745275110896980729262454687124940913524623046131223959011433613873987794051664374692009720504238077276324928193234508070108820067545110181421747711816596769111367009633639992156323091561786353944559145816288479558686469370386156831558918567223300212132165846144568903163543788940311762381894106602658925204324685995786892797548866877981284878630313056551041708979308665908410017016964026654267854083420463662980886722596391330648099986720897292828846665373659714700474399998258913320591799852571219606623178101292074662147214960586940908633658128112272937341498712626144920078074425299913876352771661078878503821102891426449099305862259884908451658129278957225736688800137572199367880876256144324526738693452093084219667260029719110085583145896084415251983922310548088609638474534965943484170382669816775148616022207775356132149548272335284989915655773635105599972613634852154300715043942159003767961204464617634198560791670748914696062076987028346514717849569172051020862127953520881261694654778253799098269851425948288993899238079601038159347336836116710924501529903087593511949419302532527368796032884291714175389520449885009924569276094375813511064272910385061549353077219325737759258889493555599005957590454225178395561732266982963396345278335350605543691423549692235469561677201245782995137649719154382704198538701593363368620398956907486376463208110053579815954782371838131054760148730167092006335112857124763373971069677534193463339495441686593522981932050184190380571687143348982391888246118708785348987010790418075609952856183923609913139897052513537090175572064476296103720293295989367628323108631280773264885616368479321265700531928610233042698681882034603069999581602143501898178088916938498521881469305837231853015952044817821807175991254068276249028316845976095699799311744929566982163932283417625347927848540926914944659308337181714454957965286203867988814045818285314813050924642914594699049267976245871420132128519725119279687729433068248242137752596494919454181525598714241580896752884032909473855760654583814994351539374800384910640538367488692693498124784421848074426601834476404055960391141161171214761122252025614849474194414949650780406938848160940794387468397742423426882241051593811797156392157651169498802118559914372939813930923180465673293005312483473945976404766302629712791887626693943146688879934421902694439126522836914114985627631814677369176893847676884260013147878627203203610597139858310993405029929684933619871171708882170951390124939038657127095325043798159836000025099563035232626382605424854833676761741278956392463437792168249751737515744166828756277292435584105522225220596420280313074336600005505692520961423415641450101892821277586905005741592760537277406770972585229989082783865028498177132393099778804792693065528373097697415632980035102280218902950991422121979226072755301563823169812731902047266729281091031720559724439606518238292306481237088866246345355195953937608124752175555043715420852961981962631036798711373477815000622098223097227845759440187136559863320282029551446290256231509550672916984045363909042107596428976917574666315907680819924125902962397713074167522630545434641372183858646612738526646024047440458864088118645107911512955049156120649364969028111298964529686348621091633509859592429232157032803484855828713637263544372097973010687038356178234151047638997055901959710056766168058194524636121342299713255525092660858662021294885461712116584580015014515286942929658179836764402242719966219925191689320400286056326061037729088124569652111915945482512552821132658519758424555422475631354237804211226396424098737402198385583981887692378312506724652075822544690210595743130373894784946244294080006794714094230399041332998164477970217407695023416481956806794615472905919555966143454265524884827167234958024131988216792351536048579205727621969074266204304724606305875736445473720810723916362595014504486669493683705175315376050994687662069030406827838776276492387969591787555632796979066003083314373873652060043143580461397308134674333245507608361856401136858357801742455127231818628594021455248161947983202385192930636038745100211273127634699443152389338320607597575795198649452528544239675022821965908818605322847840145051884354936482654238692895974540202174018688155610959543118279604021212610846893211410950960580062649833888646160088274485231369375455651561932282244240808743393154772728354230807674957239625247295479843460066131618589764478529968095059288585145094484989840324495827459972119399833262975906363052865210434596014337035549737028028961962271498206064014800463847274022300945501276598260774187477501807732696728251521456196426234428941444979438346662371809890127125880841651895926452966362375676493606883025231167238403697222851143337694303858976155763192816378749506464460997244519439341526275181760829043885451686048120460632798032722531100727401505779748856329613802563841532884967081313612695424268543376866042686130082477757683292719116614454576789999844144541479847894276371561379198165559346525109477717413537028535435603158894279228564784828009355336454632895879644656267827635318553746393872844033318167777535570664803042081667715995163261986985734749326887258241567854979530080956868496409571729224270381187939032528677215908670015882842184089591934591201910513056262919237287502586931283935019821041279920835905053893021705610643467946382151634065879468535884217278059787317834152181043819004705086457631744446255862735032197624404806596317093081651319422587436911989507314901881277293572045184401441049960604643743392965828208443105278424202509933241850882204252206471802476688038686737811815835891483559621009773167348754685093504406424176922193176113614011542033195660337003036888739863504228269070314784002883582905919893458116468836298457264660571136276953664465378782075162603924172373846823903648729011929214757858768011693068311108830569525604823418318740987751746221273564964993655906847230210875559445007450097478650468973949352354253829917739276279965592624014586606080854366322041346939768020064327212755936365424035558560185212804750141400894067565772518526990982721222935853421001399857102465166335083987118024211795020944962858938849668735012714008907183101140928341979414340411912689985289211844426161053142157892230793350444688622723798666560413954012282901313562062073589574152707282990689690766469602046209741153814404292721193308623857889795454862309211511631032131294733315666332494822238663791720937803499815591416150595105163016797555097065081622262999369222358453220255667146111014355817878854025569435059756374752269186016120379463451992674723458778450018999903297297049545984202498235241323872382270596269431092389806854419194193254760590696100074513193569900745524923210985702719942363164228114741355201824500472504793156992303619603876081440935648005950933807079517239175538424217369030724447169976864091167103454590269244334857367309485217968559815608065757532995256124509929956561892991079506984338317215704389121525341904700259909506347103585952458327951532699829949129463028337029248783213205589212251517294203730050324741599205292538701911801452153787902449740245294881429030217046855553699056087420183722064535276653245064998594579416403515408795486725373023721409896293536488417135937456942589169279528114186013737202147576394171105079630272694240025591140780408184098236244451729157522685792756884665207132183204397735127156652549878548962380922698737593055275581567205155441695156161336500242243070450305443768212535790075950612729352835441040947997694892388287284723908453983915411380166289342966773426072530843269308262331543878270498285776221364211602052270878137090793348153291638381268211750417789130086007880481640391187273034013764773099796072392851629739024726068635464070439517255012595339000010225064107245761228690601400574208813687824660270537772819991423833659687363396297535473494696312436139591088450109655600081540717685122292803636514731041780083255966279216489514625133178727302806626202311206968309838085047144604520600106312145208751230464786642183284173620485365353781191798729734508050121929442060395367416765975519794564828931378651999781189205936946670236404641624124387480022147724539099609706711133364691011111248814451900031752378532675972485899836890929222903030783146173383642539760358343142038005083096544642022397055284817100587673922090431025716571570269822082795354167443312345271939593587646529392422429742544038883463086166288257699592809837894301092216163738994717401328477808053566721900459021284278816494540829408978053980356663170963831419270259650262656799790497648419512042699656656199363330634940948210623787650714812896294629442256950108581695821636654476119705248925016708106225593625947239808012950150976795998101869110568381559086782799861072690387260655119497334247821898625842677578075740413592617552878913981793666102207806632961459497625595007660387103606431419126290129312939573839068578149834236444947611048511163485042498924912984031610118279182424357456563888441177279562168397515981038077518456195305506096489308810177956299728112414036558280888918851839220456684424457421999093558919245678859030912109209870595770109084891147844421976395411601985092851207888636063597134911441447314823993918694778088932668015641757858286544565711526669137209576263660924947406116509244496043578415699366195976341664453599987724340969270154122566909989125370811922081165904500451479053061885513927401429724576482566964302829092196870348991078950956196681957368008225723315861939976572581969555124345878464397414633436083294205604944956936811142043497373622054703290193443691339721219454867801740328975243730672301478590505801781162004413428979892481371833291179386147317468845345287307691259841152582537999269326842488472395234043315368468921349370205178481307265648781476041145668125348306355182128375996860989697431662669365846556299423782578828427111333649499137652437914011546557140061295726676555854929781310270012857432423639627640634953157119253589165400402585163531273433462629258911750871585742785598239640806119381821008084744448927514881753507979066291681538011827963528744813797055747424383225477575774856950588832549120606283708840650426579892808582110324045593194054557071649271628462026363413395990091867088703082187321423738215886614592077961036119860800772398823509458095020473071109426411840641236396054144183725032818147635399376240896151517004484694251150019637530630975629077328186705863753415697278593912857306907322227803936955713816046574872042231211844535382457269986709189737166599807158027701852110728780815499267186094635960866991229696035991044056419008801774715223807372542835281770850661000420000743326413585864711625877045402016474405213379393753846019030535010902823393166778383587075563098141212195762385168351420993312489548850153516632051509588528065547324709536663823789937216519630898784212681787102101763239894332027389702005643666990453366462149536732598373155067941496458409058833864841882430100593684962052496127159823790231271878808700806456193407897047265172036543757138728523338877005436667246001951088633014222223130325485318659756862981935762202331434111855709596686978203010942467566529133582457503281880231660123770666666883203553914002922282760308517573284096541374238821968027666839538643744378772822653289512602052365129837358517593605443441097970916857366809546441591969427927703115488817103688322003341402570333700893054140708015197144227663696735111263668915178168440116871638745048302812195529248578160560522599671133426052283944574276433418785912098542080473278086049473180982190601858366360430631353163612418766150652566986388117542455071042120609763718559623844589647075205765926135585102356426532470177276508254105175091141009104744084938307910833213652355564616400195965165342381536340584356282378461041404610494986297129968708909282071569509751241318436355948217401205572751560007162079336027491414288526349293553565318247851018139487698597596917893898799398400935526768850082793077141552032324803391233244949523754349208817268090139610946562225843929874936978081602255131339468975696517043852144755740329724719427230242155467576996836673407373166766381991702698824756331208053839476383554328368179294709342756333126117187086752588335857221532004860363732735677810266536960199753774106909933237664997106286933835011427321118417521266362264449575144227959519160804293440328363986536799867688376643236143718009664585648443525969121461639493485695435235713836435742162284846633886551928908130674897818540606044158587996980544258422787932655110881971961642694264922095537934461748803578084784101820218106286914012098111632047406339212347793880990408758547824951905973417044011818462432776889039858975462938032465744485552186106209503137475164342135597551465297187210262785780655768447089380097874779415650253294469900763502472912469964718315077673904629525853005218404321511403125133480788247670461929521602223768093532024476563428626509726733423292602449915576744310379472171970661915503424971659050277566267636987086204342271725025431801671037514687409723958738670481822958922943002437884796815564064652054265474049019768952517636399290169604361715843219336704155571612757859893091468801379746662295835486097501795167473700808328755095954676498258147237411615009325716597397749933287039710248969001516821637786540891518077045594876057017686682446930784901929870980980004079811094866509477645596856222274184530110998201247833550877611839171183884741508018678118150144911376466627100489519224633606272129145965604270233946681261049291454981937742319091454351232560751219134555951453627048151219500052341653099347041303819478515917927336808103719554161822418963579668305297120142867494542199920262194683501196104638133129180998970621774280930089081778596716879957837654864688967966836381616030284677306009273925572650590240922563930395505670991378099180092757170251247874129132136321645652046904491341226063307338848006808106618809228366343783700824947533864029240319934713968130132387271718503586270209217845359289739949674512497276359579164882107591849811294910171137479245604880613172157036672703789950571035127889370130769738652407112731662147514487293944350227317419609940024075533211271197832577375790169419517639652382897821495746078634776005292103550960983391565871297247036571855206364468256091772506926023512834491640684156224669826455496289583295701770523094992039534593560745816299858039162816004997207059288478285229592251641044613066881768020261961591710586736581130742565628340715112983921090216542271444245746713008922758486562622191142337636286052908590704031565377669923640378729709235844514749846417744691731154608881091773584100331364847671126580319276969907053760850585948850695429231856699335648218790713109083165318437800878778788207291218902790839590360640546397367836183689691579686687421679264153495319815085349762389975775611376768082367401261902284977156094612437117916793449709520051992795185054162578537046922796972742431887541604352045820553311333018092587292280336771713760269102603669267147231744986428612802391926352214962326981499053424111889225213961955813790113077653401701817417202620384641191656128725196189995379191434282852417685484935944921432795098734347882873832535357689883927672916092729149870398534580581632368778751170213863236010910235353918545509752468840770276721222802096551321327479888531713053955387811660329096584948807087638387093834210526005853804163863654328923575796853224381087061457514073015095525785128362253231186821233935422055004914959556205979046753614171854458355513706600990126713039751041515276127410711720967242898667593436466672242566933208736924563627252853340303605100740251347310849793516342524328544468206397115820142717943483431671241815639640891447758833934958509437904874359676615533419823809704293928319577824938651715440401643650571600437662735595520384893680044577226099745811376464162608265454821298324447057852127779954884193642213965497325924860747599724524965758697030916762699699133713440047254408374580024234632396931742545806617586403590241417535318994521544410448341130843055851243644562985038847421531745558670458495579485139717069658684075887507942104013858521475418673245053043875604562229958853783750165332496893285096007846512669085705287531892249696911450011382590096934402554547332765642238831052136794249591322488692401768611416124352598174660026839316681771009808147655548123578074948383025953479883865118711329742763452412059595768475058803898890352301869913655563591895229658109779623755924811234229984031835994011048471431343518780250872689594667479686091209291403074938914305310403700915745664701045855863910940491722087233512305393120789852558864006106047101757830044752340665884689918053903647653496569075093740272338107978245238925790503732184862287972812068351870007396706192276363766650938455281048537748459676365817546811711854669093894630562970412960994535178467528752592483431233862257585525309010790471442407093017266400571658485125978108244766280224771803709902643239778413492351915908107717993668010893071082565856050468798002728020215418153638463064412515549257178909410077540656477207345243622436345670599470589896987926975870707833225346430961476161713792010803544979282430125907865912087914195121841201180807309350968517876503944953355422996199758954514489882220355841060257106247883008816543659562045290607997112098665119489022756506155838721783692797688964044763976797902800048593885572233029033983235625683851082009752549880275999576319301358467644996962558620549358450572034461846239996412883041081458879428790103718798335738286987428858939800382209515116138279369848358377894841207228927748012329235701678674698362577152465602890656915682868178669901790731997484185858529908009778053257178652269301710816596189699517585795945663325251836847756567525069745625650716307382372801618188967542266439432220080658239206278209807183324649880258566054272586128839064387254270282889734894580024982240176826412856264614408345987096387965902768902322542395051462534847470913977568940985670270925395487663654881351587816579046448020065560360376884234555825613104758203823918033736357255703262517369262294706574228530936197732721028379054201039167328227656112982556001729950419904540432768563291195596962393957809321390823434148955370875904378749430024377427492476785558024423488817738759601719068139130764646823027443704652174024290135596781266702205510366207904621097069827337906710808296373429033567588183987471446970711128860637938012960907770585759467497577857286256672306924654504684074586566901983847611946586016558396770090330073612904056590320844954210704767007211584494829160376495477866230881214432307721050188443546136692932417108169594806963818569177121263002261114378834202105535433035843194526003337973875243005599552186661155060207844834011307195074805585951344446500290797145981623401495443702770101410392426652740655850531586591436359053941439821501650735114624152549051359608387868133676037333026272944961543907198028945293970647578104073062935927804594786480429172767473572186357097587724076823242046717171850902564946108976968506377923514740902871570595488491308593587105532204780467905366399384653851379792562538593673264179714489568731299320875104925382946748572635982167146708127560119445853221702063501002372845369041166291394200094378769834297561462071844048693907108627501059265683508753478448148395749140094142846694147105415383774267476531172730404218309301985715452661779672044167517497402694110419305149931489811522665427561563291439593163884010076279008539352777108796043906194839213295317706223041955618155281979054983272502582091023985054221453354306752557451227389920986949841703676525084743095993579682390700803713267993189817526169287675793490136558587170566829359815851998351709407671752397650219070545172885693741546573437943885395617713055811859868185129263577252427424425809271415786357050808975580656399563367781731378917817653465308027426464860261967884321250147989223010047230816304047370356078249281828008076044643817060125435848832595487234607995278823008365147338969823964229097699087072588378550222046901380802406744320007902370362326914845472916777340019519947847031592126407883216562916289383088389592448886215832825063551056977912222493633973952530808582297597836026375522395497362367464560315551593882537915199537680363784324447881178422139851839145603150608787973313174597864559849738241547936655640327005892471465126595998255851193857101462159253488166618980863122451719052654175296608176036079776430620043012538190287237991898532289382980052973329983101436392588849791836226663971052895459776067181976204482190829904789295480115118890038053303234001733474087683325312193186851434972428252336606913394668436845937729511150331054090587410421880705814992723932001625129940191097250016222207960598687401177455732063288052729262646159557265621879672699953826506213341596478549310030163257913830203177090869828475807057908251359126365526832012241567286990959756896951535762107451174499345202804158766559479200739668948320511427687260120347843142132582395150595682750444124878850959110202776187530520875997799545597153063068698534623857769067226800879042326180938862281116525402054180012109085559819977681584603571168330360048476301878422795990790841819954700157513967692073737694181421358359470544868821412641609293191681368298575493595831189109876095340251428107513061344388012274354853729335787479173582835928744280656683229302811575542423478684339125034380039640538813676613607608994362147247419908822771425951524554290052490770236945422580085267911451364543361263648744440449234482686868121811342763614882450720344332054024554573752077312057860602682754631062882353240882256501694641008332988890980545185225803988455751625188582479990055179598419789375095294476738445300728815191137366427875968703744462666286541840197040545843539339947627212732048123227066393116944825944802457796255439479682799807763830403967569339830602476766381461429263579500588281172699605091408645959657742806260357519828006233893683388387666241388500270389889932475394577223825319905161862397213311760754917890763352695472803172294686879949511293076155201026895458459905272949379603893642482562034168678910885039339437369835154058012838551929624399470009693584547687500817288921301758496507748078353428871753439469255161389305446185277683102382522866186560260489573947311249132961878733804418745899902981730295401336074479384349455663316098180768383733056751949979798173125471487205095187948791600447358830764954449837762660050209867464491479158995988458657565208025055344207521330992855807808022278646950758640725126505383228704575627688931596463411285075114754271892946658166159332805993170092340282424433091238416597162538498577367261615881357135997858701766098006822757295702278031044850284282140730753499582146861326688996754864537001920198040536870526702486267850789123830568708521131057225476193041084348306688448943134530360791919117810851957650793830996889408031663464114536011916217715918456711945353772028483393643479150739499462604973501744141093356734363110427476132753273519823296381858079758392919253895673175457155299365578594638247607117705319770476432174597759819805481826764604051419562657746204871031237365406476775490981965905143473436923911399298504470426140816624860344838257399813806772552507813644921109850662110499975086085649962913517889199198117395896604247203098459418932187644156410273516620761236701420356359609579169676400447135745867304088517632008350294735397751676478817085509856249899497129822177893659943035226705960959610812709600826280243171782496909027448935371256935736645858769887521844533007349562030944049444317288698950392304206155020765438022326564519765995125110706236682791979998052486800516032843274439023853289073802916071558608461105012784254060947972394102148586253055512586878599567749771667464185250816581428900735184885764933222537994725598549913427614466385945019247248486233611931734963280283589952825732093797199662914657733224863217576017215928213622905638071269196975936243975059725892909275123205003381774972857090671963390102920496745841274888380486543505564715970257632923730678153222250924418473213707175856932068628875938105221711055570093037276983658986736032438307912458536430130779684365888593167486791168252229075248644394606145477318795972386599041092364817273926060484502369515118414616348077330839652753644289737645049087690491710996093762454614925783786639262441436299521806488703514281088250646558131834208986870270982411469815471132342032136242485331135781911446400367090812098737169622897972452534284912617213312239467457610422788135632365806367981156712146985553698145341050710536812672686353530543099495797667911633410473200968647030583541094862745598794070321639059853495612890083952942177333874292121194494666904856518860652997517179437962461471940035302228367572006752870957818966800130501802963913819046082588477451256638933459726982535887943383896851012369172076368682109770008775461998635263403384514612853878277253859124841998886568070111379628218154641526582455547761213305563167483339595851158744056428657662587583535494022059227663297140785089453845097265257151830400900521502661648441482328117981341501154777357994847719689700655230420290755201012093735489658231735522333162455815371079046112780283234400206150148810832065065212936886035509438281439695709330552260113876149285566739406421172357165797883833960561024410383070614636134013904193116291316398105382994833220714953815198786721450404102407180724618912637767456474550946153253966260408812744011555727165900386967015029347676779506181108762523846116709425424407003617033660515666283255170287629694139882575273423863711450524854627982250234514779648763057528626880952497275918508911246659031874708543219269204986092067736260467954542285800239519185993388408487046593731143558046922102281841131893089356744569442413183484712897594066886562632453504458345018365310559525304368801455189518764729642376439077779670869931580266408760067496738508072881975892749053576729467163848561125717796888570649836845849486056777707018202206870342912005718439781538242836400617538518127594395730070289422409147143545791035419579726282044499574950963455417736649561997368372703188967849624098160642244192948099266525638112093805877645584624815453837059230459500605171767691435794377785185474771922459758544385682413774190909859268074661644354664997185466372571637513513303464091194146514406468605475098669134545100701539530258011807743223805450834697527368552399279559540300596517133045031746492532587554345008085201105038505306483781601489237676832717686951943397485298564180444977873040343590595238541085758429710229801452883229387362123089031365958224992275101726217604610419353236915362607566696194194153093564877449407811996768988495620398295718347526695110573997609461687667564929497500239573843302194736408750642369931945472011249554854275799815732485732173741689306328171180971484924508586501241627654411393360413623433652287449282962491103253880558203615232791433932863340239484221251799635461472173378052696320392896952929939276883697512844185003469852256043920969842355853671900592078704244260601536620425238045370859358918113085055132465699468153782269809084836031022656507436400956770084818887163805776451319523417301183156517452074109902941320328273777502663415451481743816747219846287909775896657245160020665249384312554399137085139352519915629153873987828338490132025069624067034418704936041865006539434883024610909495034106280490338002010494649043359984720051472527996360233810823425819575058279233104630243862331697853365423712796141359537394250783595266472290928516928650460693472683369560562656987542285546299976606567517720751209925808557093591244314976345947922877014055507271790266373332700499074070016824940252927568053289804248634557454340631965964424290128574480295612984753028407249682297761960862110301662717703407415344364058874192317980922785154044956444902702526537130042601917986010339610289841207834932126402850706587771603204686123683354216294111880589055871864129745318004839001950694650939117996583312778759013891006185248393099628555377822790374590439378983291152952539949313589791256497320716186680529095650112102701795418061107152772421324994287686220491272728099789301419227808407426385375666132789240597577663658744982202729648097623802905692497226204591836886618446097775917809076829687080141841267472633749317522390583948589752554564393793589431884729980739477556291296852902138276475135486506396465387725608997669993278806510577172904944697405273064707746647997829640343018396148221585795647243877816197727294645845579165713668149926943167849190942273076567006039869083602669931696730530582653847077941239236376950047888382132555113618836051812482262831944086629208472041993590080858402320523437914460508571366878639684131648278215875470756871766268835040725859259262277125513291644319686371870855327582601373692746381421464859263690274105409731886527270768626744503476399074068887441258086464601444433696332429438976527013850862187746259578808834343386889744865877986501182354876037596762578163591119453407051835561530240583400850691470901614713778130524215636366680595419675077887896520467424604034490241090828264023637958882654711162634815210179576956686726677532646523184728853806480595088914478874892274361730790261915630945452000032508475642734972586426011250713921442733450934090767469532700087990675680179957555933151175005025941799397342374242936286585110975023207166214330883845019868525862545222666239132201921105259151893921883541510385270867530287924266845220088315226090855712302907454502071022390513498584617081298787084413368563651728839269355763844019311447862071389651641734095977213649899250377403049374351819814979979644017482624870635407193275326384062907890428111414295488890614749528620947132659526284439625597606624564334444022401267318602922646322078329345392634399057712287622433361356561253335494665694888559434691018575288343014886722646443792469565704033269156910158257554747099962639916324599568023864962095728090177853272949256221656272568451315854820801264274069622536345293380111826510789206812204658335199452429261392613672329845582887060584636650835101538839200990271396193683909892821790347479181808567594798950944973468286180787755731020496958963463278270555817266357463698161822577467861942464720856578512062796342009193373063395193126398700798887852253599225468068179437391564372968889212101697519163606648548441506150335975191848052993745460744912589383851169317040996281978728186450074021270946506232195973517139137438767834072074446470079203109991091000484070254451173166535795430810334223733317487804723886132517352807872087008154877711179968218409706520317957290099356024659447708107819518460071839898002724800305677594275237052806443471640740897108033682541634119387185754519638662521622064209489922265610784317594079804730138426594568472402297226256810611920065839132842034319742487555334899501230334489162944951408656174493821382538889892582641596181618331925011809488709805647352584069867827584815176974279138074481723527279805891690552280717457625259914968561272645862686815472322870590820423663348732262000529041226814488838821518442499428803525405704542794866488657211312973644445650640255965650594127347764450363143320513217805724877340686135333823278177840527383997959790404727925869259938822130485932511079418403606422844767863637548086025860959620555507970330317786662970745646399294393737912720471882999323091178213999741129476468462817749138714622801383803910308013142863209361802151184341884922228823153050741307731836729597918656240130798997727243770711162274576429893835833246794835238558672482367211085240319976677529615677711421088562399477540653820166984493641795551910318818314374148347965330304581555408281499636297696320998088790131098463682908443720880488274862337391627966633404341957311054931914867385256966357948286947037546221975843337568151305098691852616701231499188928215795379855932547541809997510795382287641641471595961963973511389833815916330397710629081293694197240310149854608825309591440708263470554228532885601456010821491262208468013847137781197358696980706250363028339124827004546687961532470115400468577511971072974267846372463320370841731119738298713472652174279162115962551094440395716281257965979195319221126088363053684286159413159835972379697444376900249668353484173771288849462142112618255328994037033402421368493423911886877109398991649176970297185793340330369559038667823568412095519594947098532784226890692986568747230065431241765468961112697638117151677911564106103834122261927441243323165987332994298066961383513557320798564751763891051493440212913775173388258824563490293654190775976352008881122563095879688856247409047722412450452497498387393936974082318570103064647810503327373137672394173051210594109932893564158478941602092617364788092438391409741163514693168285691888369790574032282324327650767694742756562791675420580719048094003094296189216197379575348296589775934439877674185197884224051251135564698693642831254849663611811486686237931811498705529962841512679017958159663433531651439083077653513429834128803481339471977726044340087319206723789833290856851202001630033819567252728436120587897835373246961728999586605780041685576150101147190941512905605606350668748865883350664649185962308521141920096095709123669463197309095408231810112783841004155222695452641577559997899339929366185897515953051726130098408463669475978941019701481714565761264525650074446803078673201357806191204796836842920424551180056175121799368969273087807644623166104252817697849900115439806892695744938484526052761831083452719001412493285315393449549944011528380828646767490596057326601810720243823023688342304018454116479803155087667577106375037553737588911869160356889981831467335985346844898465198956750747324207558997839862801849043009966063224087768531379897062751548653031309075408965047312573612951703882580020140176634006242677644002734300878753639444323015681395419338697608136550498793935685743895752427854049627931819013782259005206575263708279744815239192715180044098159970495510849560013275388009281751424399632290756212414325431686124213672373446010100738813923914722101342042863473659006730481583889115330867932866663353946647458788544269705523528968093928284911750933980936592064560639481979410500881209831696114091668416564800889509255705350050110622231498183385182742587925219872250883954053945132607611593126473851459329918948251591301075037146919848908077033566625538090238668805755199084050593795753265300092995045051664993403014714382794780412070048919821005401058945144376241021507631985790017843406218500369346781355663080172766595665680908875585517986355173674516591068729303957046709410608570099590181999567324388514711289056462787624819912609308980098061378147056283936512544736408502017665385618002545402185516727362476130146501757852221739941064339607326590336371156716207997063663758713566095014665331199307828753878721080216116330616710917594657980354418375098232348619117956579957264007724949400664511209618822495507303754453610593158881815141286888848456001943655815759332663543577305409582920840821428644953373164680735359068935947990815924460632524501098903881147180648753164313823100187640889540543155830032840558670676269332006028132443130814451182568626121073472504330806518740801965420559740196623143595856406861033510422266888688976553927610106142361026804390121192612658425421142249225341670291340301828263712154519489347299609188189637710258309755766921611058052049745495089044006823164501753288725372550010518435671653086086472735502941391186100346633311520565222138601696627959660312455113221789524336757490852127403742351094323965155054676213044814661326362258489572296802005649739207136076560345853085745798362579270088943250540428587074537688324890935374149175045345835151966732026209747554943314280161756897803394750325906284012411401474037086600784777143145281168631676994789250463453017219276233838291797844272900508597721956674469730597428867493093804400176919643270622799949492939938426077302814547376204538692496645202868430158337924125106172680427755584319580539138288137926210297824966353341536660194912147393786560009597672921656645969556043621701093061957572698742514225274536707018711438447227603977023172480184525732145110270196437847799819673143166387574802990888126847874105100427940662715747024148869178103795421941834349819697896015164971852519695154887181366034105517732325879438505744149777887586885372447042885082113125694115224078695858258908298912986487048006489076415465100982580568495196348710844733720457746067229877619717855256614681677999793501351666516950483808672025241467568262263574904356871722924249727818034868416166417383802099621613898898684816920803650633625013589505525281913961418323039205815439269491974222285823770741736815438316246699957126348074465993002347619124674278759855331431267366388607424003474085333952596724267470901550631076694964545104691140822420572926206080057223523292242097687819324861409474470177495640172670922861444817560827858179730645512865954089288555929110152180930954321727717166067600731427252520650359656737854790344890431752640802307941837108645036969373460063931566145202086696222319716379136660388147380755041146971330358257912453806089178840144760686716341638833652069898443216981868364793781493450162035240211640069865231624152935831509668511130902836563000508419976518252898561409236024035126985841316765878914993418241334529397572053551612197741300121824623989000549633774335615596834975522333928250204264848899481957447871202053484580379263454919390778480266500932664384112437029094682958161142027610799040118492548795915328256960388818010034925732840154220109140031339167916955386932538115126906856509833403072785300210493310560176548993352793767609605403042723039828916989248232234490604484067322778718089479710020732286597897615190761259461681578376064937313639185154458584100852518760910861447333457994154334256770077147994188078991244065610659161334714423638882347569003038973605906600280082369255155713510374242842073449455436555933677266173960531790949105172220769531716103341532058508000382567356653017954060081515189994923965697711161595449123772188086425132160912441137879900458417658315414039848388518745881234135565417691105483432853922430828195284130460578066679474458220149484618818719594515178619108831063555701864642400065169051888800842332485012632062482406750436949692116587559397417916824845892956960932245199340961584153558203886757298687876606653448793061584020625083598583216261716117619675107031197887249196093987447080341130436477702555269039163429906306963319993979600667388351455080530651009543484275051846812454270730283960495729327935008469913327175462211076259475921203034506760539950895390349930693239071305704914767172585233962994093428174922705531791148307844831242689394837288467193113716468235068726566827741198335819022936988301160815742799105774957756735738237060258644646165349010211628558031401960264898792877179337120044667322589185140708963900922653716181470640003573162233066663767627719684214570852293333177793485766453973828946337033799904012851747947149069705631881541095404231171820411688511685731137869074457445126364375632356558991322028298135717569253962962239547752078418398690900064839811992110965221782806310618507102176155258189733563509742364710831828790487562389567805381769293923556034104967323561196159552897063396201033378490024537071911898068426379632766238914892748890311319195589894834481233246356529568869204711261064582772449628930306743846631964325011343650039578229070511879913800577425072854496322832456894731355567593227122379636640253064237775564953096042709225715490501773603745327348236129265767351028619541830472707114843303831272566519589483870040373920872918454192690816910053392896407590260287578979277327758580172624908816880320908277040747799036931815063169463199563818128669061493555434322477165616409072696511868607883883739885617028608875714031563920755951883712174390633291075013290920260426146803313814800476079275810251941278474095497121759507295200834838004623675475432952515190988872100975680304721745126797910544867074463421502456713792719725264799252242376712835835483376653702549483532101500516982235458384505507765096352023063312939603442121229266202608210015691887094730117126394781374199727843084236574878966236500159832525922772176595821510644233342828984967284474536766806378133346323364065397440312542385850739911755844031754265893797958541674713680492266694964929234908141360049917907230075191289593409821358972576958279808710153182696319609208656840025646219658637675784978920339176637045677576413650349749446590845899332555397897568922505340285163731999944555511648159275161205876692272096192452517533706324273128014485404746176477824016977491166988135959028619527295203684696318008253708311571342666892382837023188319970835667525079609488399704728349428555954388177712569397123011486094236209736451792430322542496726489539134005701204984363501759119982678214384992257251854553422909915092007022662532114009432687356730148014790378594005583619111775493344542615345958335468507387344755004301478916223410136583034799219526757760306826551465465025287694886186501564636107782414173576151610170128013249855541680055482856440696701814709742154542529986573639388491776882185836770644395994881879158733985788843638313834940335381899466687183567200143537746977383891800451549706226748504314939419634335425394227191301016761595681390766042782387192692751899488196212264957436019231529838444933170224356875230453809787479049124956110369972712117896585947243208331076522237770377720179614696281473920712942596781603592460729297062765161474376842504955966626874403030464020013632854373433229978950300400289927757588625487855545199597908226429065299748650068759549006972269433434983691122891006537973246692156249919990444151053507107911440207962605467614809807882357213585197620738037623029415398088132866429524789165419594627451323489979744883385203927537875684909608284954812817281612021338690621338415979648541578042477136085934314748832022642400771802887118247468151230578180598644149190837488807806976623725258854684383872746345118857019115917599500805808148864378945732790748753503833156106777724507236150530087202315715847426474315827973613421818274846354336417711443719900226201011625818735587033721704340650454226200104814831620081911738396589258576479261464029105980373432500869678576600859489813700589322170071499823576297475692111985362023128408561427021609235286027440353891772370095332403609234477390200077631055278062295980657869687703967099376215187138725884112395952268988827631437238635299305537224586963260903783533147505786057564368797211015452528510424051536066848819804564493720516284477692179065384176882992768602451014174877240060019934954121852118420666732888603395815993568749789789855661940972226530050503280789413973571437490088965286214233209322007844185780013984020125028814537331125577065152242059356015258995710827072679316338722610428482811943468918901215215319394726653051781215841489395118718467500175827481756418040865616076720696622764820585405990785631172162067771826999265199979584927547229579829542841960189927504282895391222696016753731253251775645576331412997116406501444267633769913561718484455995703010973359579843080800987527133595001157502890503094781120347895021768485238642668634910256293269760464163228374762021765015031985314113277210149163805567233274517499591044551337714376308330748258034088321619966678788357826361561231899359048146204881305565350847559964669416503988524479133727283880177876009107415233192255587726798389711074574157717966491124767062209143348185407348758869739288102424213452237267374925411308995350706303003822292290126848860708318318092770842912842374785945241744078252177367351295869328308141659959377834276474820420189916119704446308005636494272424647426783971097627639530702904066738398608027972042075617391273196816620112805309751848168373680390132987282136572883721132069459358338808230527528901177448239830278005466626370559628391878546366101808171795117210707177560165685332920228129931822223361623985067957522274808484417291033104688937120420500923385137026458575753732468230665778867152589575691669595386031856876856453175191339337923536600498797933363562873205950519242935210835620885711396464718128033183496125633461125737770863091865484426509013157870921551126625094299413368572356471189617113332080442908211772691529017895445147139604373236718970316215529272599543670826717671947108694546463138795743057888851589186385908959914991416457876172159366465460825211316670070281159559801751472856990245017728054223702780464448859953021132670870208333382370526362230744155714804498683171640961551600547099538506593701410127102536038591561882495726675287134881935465591351378135581662515225883705494617981136561908614715662146801019057627605132212447876328141094483193774768569047426786937141443143315217066192409566525579111861119850331233379028712566011473267106812554242461324898097570251622329611658002532056836901718568575380032634392566802813961907605786539002897394806567815370883424256491098606338747169505900261941232449993318171297084727315003083258915511394493533219505543770981383706040507155384445782015134363782641178230674463128586317844819379139603476210154874370131198292703899755286573928012257430908062201423078484055138483061729650202918493499592986240817618792495550258540558028137144526065218159827380083068666392237495985807549248371977652685989561474265274662033163092321905066331829293594592354901040139661640413150236917861286038028375439074037951280667489249050777178500307710283372483474937828222878969689178318694952377584100405085391367050600041388391235113354969129932550274487306040172266888287579846522852473222943620917624816611289818694168425691162053101217531284284428121786127486036452575190171194651696884271316981028011291761697334615785058586787855193630969514405560958838453632984559333511781523444966588212908056334610560108333672721371987345587284552408347556382223382337609362386266238241774620618073668468670622309202497927368723843431482269739007918513113902676045756128026707631859213108790775469025401048872090680301642636289543802852475031462778119931524486903272350442637573665475095891620548198381723597501410563134722182722581772898289522873925035149064896812351769264043188826731925712161318353030895840785738637522562745122472305728692583028027438894344780678924745061209066695966829190959912659974626726412070877726219300191026395328646286470756608893250440933943436753485792343502773154208317954750444527648862073864963249132347907702857685820142678845527311604326897570319121558855736047020353431589169039878738890461348522484825970232005734368897971228643440736490294689314978300191757873830298687666672179435444121457057238197961086404840819768030245310135030693333258066035670599662411670202261129885842975695994195556429076754186890880369241533416349376740450213610880312062479182871265322049270885487598232549331012732787850720798614656431891836338441366750517062664154452895875895290251474217985323752862181740538337722463908564415105612749972031890582557981648190147966279462142439364290704709331252354102073355403950346711401140660914596292560984012896241400703756840523168075682767965135943017790627962399864043350847335371982848881448673664691874709031306219001135167829441728714716445315809406850852382133133238736254863082517673326100424121556860177865780116743233146818360462124926504409873104467635385938523580818375612239303944661338367486613237425743581936171026747756812069993322559202412283286814494646495769534611534053097752849423800300098034717594119240140075118855432043687694865819572632628244462512452874719250459878329313382348618848309171944442201158039213088569558601502991007142363740823708019568925879930627391720023524927671230516045052540697362669602640033277765311935986811440493307590866510199594621108116896287170775093066413033739172943211338513263601570408204135404030338827711148639242061068391199389799858266292144051634865365810360730249179612290759669436488106916575774930352736737745991858228051409610186724101618290816674509448274774501991566965725914594349832690035695541189593680821377896960035393257263438479598567661830682877060538722280866263972490790819874564713491525522025618544938701630788065164813448962201264688214890087870622537216710278296456111739436371563994848781905328235821752022022176742366119034786949868522449597754112995709783804222001385090371798788338147644118411197901561550838808688733477397387094038017395746688718993852204483953181180568764017514977420561150695446128477481777074886791276410519704052339232209188432899565521683108955377318178236638083337196844356859387401226424163446749293010638373741725816650876293037530772716695962218939301226979430243400773397017201445483366255710282449863034257653314441569025134675375873986795240717218449243394035415752581102418847439848022248938460539211610827335392009916825821019067108685558427513687452829099627679964911417260729187638945913417430088425291056273910719884461063310198622799078826762635099157198097897939483058843629830567780844583374265397330560640144233143127940039617139905290926295335588978733997190974735282307508290784550538288516327880851201438712596981952655776125434099154653226044658183496427823746187397607989344801766209830416197777040748979047817074813331580150327624373756363312080617056068176505400156592427279902961642519151207043891939554316881259843709653009069008852203005487410563767844984026789242625722163636907235757891290769748341895370838629838490613338813101692862287181092768764112478513501491861665231054767448173759902170357042557438722875129539225474975455929167497529093416327503360107659899380582079637029586667611687068998181981812771554068324444911512002712532690612915003965624959462849785727273962047149617608496784039590066540594678322214200984141469348076739059515757949874416426310563646356151295619304807534185488089688887616236746698430376320260435002607155145433065068881308489765858550290813452066160980596902840159812115243109700427035820351462838647989769662220121017887516789624328760729310496938309409580147720626460721066769488727494509621911172294792223216012039852926350678619798184485717601796314622760680644206570662673546258470502221880663273194285848735019459730549358078770861028984205905578135315554715046210201249087840160915748032052451482502208999282377801331899980738457665258407041900758634269474131389134963710709872947773573858708321285776638719120112358756831460809564596886992556749643494172439714858210141264876962544960898232225957006309275088306706422381700138015103836020642947155572721692985947279738323535689822808791958120303852913340928455964908635643036086314723103504288776862540581255250656956137407958948708419565014250861639751345815554439790373805801911871816092472805331315136402541895580383190165121742535004718010567766555313972759233262972381461635550565188117618317966637121708939664054352694952794411131242788717401411343508228043138233185217582057969404718009089073280829966855884907059278029036725147775205683131738901848460093444924975057846514769870194109432862720904040486777026430622926675599864850130051034620307717599039612439098664061562931800294146781920777501040756284934718932789927305634070497765686467452289745460447177471978935291531398289263840621831089484315177758128783396287584258231292046119376342135409720337190953700507147992677320979107599069118344543691208495297887292010752787115795337754072620334088994527773648795405805565473656555300113039193639909920356513832203186770937307383758985076005135649752311686700351697479400234407861657985481723070805694383404467749659911546070821651838183137902670362712643648080166452121023670236562108696131850947069970255908728846949167784380311692232183260262202474870627395922258701536956655243216022798474344531676643331083193637805943652490530799644312071059243135130398449851447853559312956586429895600906621938117502544922272565882777644104338175753617803550188087568800312075713090222252306967774114315160470480825029635270480610604673387333354404571469291448398052514219187311531920054920049741743035402118668894959399916723641705695053668852427000663254545504825580084900184464516442347285385981917315440822443885315183404301067150606583204599537658298741510136723514895677894551144713079808079359343343180871757512141176663018335840219014703584336106281896655454922964407246355305517135245642047598258761699108960618340876328929574942120810726783532909654519149075521243540806672252403006163551790842870064641127127174400723623272930648288912716334391264263589635116518918053846735251839449863875985942179368479214531237022476595587507470626854485808921436208686023618873337832728872618626676472620261961180818437461165342287221460113386453728492372556627527903545473857928185242731553656916442514469016984957994362570967862709255006750694180746648574293830185856021815531658150366765612193613802876302594796559558025622759638779397470461209276267836360126157244579182538939442172783983804479613257573247109278637410162409229132313163185763587180035052393348542430441772406519132340425368300887731603221629079653893372873081595930758666106233182558905059864917067453181084347261255169062926906312357417990322939894530936210347722442962253857244845649310584727998923319083275996948685618726532274606879900113908857608388192998286477321013124058379833848205053765177742234452561754627836145698638338823815249180165276380803700304658502078985101100039109962546391824187315189179192215766408102402868465882981775906259859969388236597061304199458335418353925164768081681295609303713955338071125352105380065642461384867366942100280010838397229647512612916513683664004294728564421590021366799595961625409467727948600594478051830484983161529568730078319649703393692673602100664764137816028978789568919735523138658013954367363163291782944646149162422993624779708668046789511425303141589926405321921127333698818470888335526910925955155441249631503965720125108632070221539342015712875676644350754380976438611408368145819461107010435493590666158157387847967515074430986693251586754171818926649425332364577604031634269862849269779518896539012807098223034975644344175145145282042451032532640526378641481949566795049003559215353562742660405128548092081289396456930479781639429077763962122529026852827059355533787003245434525944553390485046608102524197096140225710582086154371593530353547733298330904833934098333310591203082191462783034912229273522656677905684285373853116430059297681599142794841959490215088235197825233998513557516281741215377008208276765016221065560044095797424613961214064121829831280345093236418018824037367186869862301107262912853066979019922446907511743166524141867107080111515013555112515887127457482726024676750382168747566379386506971336514243151523443456638195634577195632309944155525984962202285642993865812284196081646068703530500333808089702778750683434820033609345909299913689399324290647528706757336078094684934335790100352367610059171464906367820449996513295656927581888026955427799317503763094595367599607396699927839506521263896687919345633728337170856091318729422882627432685934286372059061170650007124582788965910418893391029627759058152236070074603600456620244390676464488176537469501551470611124126318966104123755752840499101247400113499536967430573144123966010368657636465876571449104530082255716957964936959053817361168599531173208012439042689138035066291357147146272525085933918851213887888051875953166682598439874298303169129618710722979683936940186066476508678174040455634253873064576853016215959710966658528226979763128919454505397331056196138735070277791157446021603051295093495561069655364991953087955552327311424775022366947629598803885142303958341439687436113367132904589441288723269770845353056971229676066186752960866073646084727541741708119414651466024785665352042534720991795155907120184693222954081853962967518812916323251109351846029576459237841066460793805833116884037419408777234773900750522749051664142075099296400339891798093380214558193383915901658525501876823526728015524408600312990898057415459858853377273326889013538516054577121232046559060547966399955731357678500259066995526547486799133498707012574262717716101951879012786561557044693977474692106876428933401117276207139877163743274142576966709825749182524665071704695030960818572276452086098852893858164055853524633011788242840494649616614102492856043123784752341845125695061407019398030488021363150562144305638975555616628846289051001449066763513250300790780855414606597320612334095514821963300887792508559205465584334971582251362822953752983014506415269502735987382306680264528873935926946695330558440595963228528169708655643104749409049848720136726436645121939595243211606692508370277877794890863040173150408817337808432201904170371936244012041587742850154341605531224320134480433312327814421081628492596449922218302870634315632804484334887507562593253612715665362541068481079047614780957767117887283409145885960577073574276474700139462941253401121401236490217096450074627452772242134587302292537187434392307799077521106249016127118051097767256800695473618453390443570378621440069481083105725371457860483383717148650655945179853735230738333228168117007315182968186929399817981797230829931476950554556042967702799647748641610817227310967326424465791974301205063128079524368104607065323156892923412256921984723493579249336659665873142538287102466987928828330559258682074621397625810902425282030638799779451625105968003404404783306201813233941199690285896549073221214221865724764066908722769701136413637737660023366735270200428819759626605906266949237377407172684658668161011422462535719613269686871863079805831181130629336723025553540475765729953238468129194933855640329737520247952151208258551601206653767738913497937106982525898020666047709554623970070586620059552394473427576435105345169102372565655863605993642657189197881692460950886399631246503759385369915781414955663914409811170586373675260170114668958442044442968091773764364703333710827291357506301791165244050726897056347868043060092284748356339813969238251206929565516113589279746400663765494715987901092780710961314388378800570829769114588256402597500818127572194169591918592260053659871196168113005163413107303896250031422577705818096683163434380605606594063649810569952982992168856924345698402296689653954572427716712308477145819475427323364886247690394461071650158429101861851578258133815105065779375122526434827852194154044928870354237831174788696772740050392665744830564992346246686336298733017523688586604703325541675069636767074748905053485507203496648014762193906976463438757156978021496969109774796140750891515227882969174122120879568585306124954169769983829026944082537101766902326058079628774625283871016886904563938306379870054239927685042679881004151612066071935335280806310021436749762113635356229956069852216099240479211702778480949109058997689345465225519684850828238803360637158704866185842240331118890505668414041553662385231400615189872856087026663003408455944218411897688563059457309049875430473081758732942931688248724571284016853912377803613499842576453795973231416204569636809527592575884410354868828006441782740528666561989712411312352129015396117157701770989872753108797758028329446759573023803446054282595864851131695779504601073738884035065604054925339831590761692208428562300774923304052256616817046167069741488134190056269625571791983986410574159912574853018445167939875764484275451030596334230578721003126319776893629784791754746048195348271390468678538079538070592823563528336143940236545478589579088693479328171036062235454773075080431499576965979723495308130517841005629242543324757177917144906040888169672885696327526845865416676647492097114623945249472605064135652383693151056735834806539106065208854833040263749440823959430518948901859806930840341284840491106783025647448223518039657941022032657645050790319476683976424032186288025871839600872992712982359767659723144212619442443408632441672597837609218019193172162080570632016212286506901658427715823164469911290095154145130553184037096562762821909198953265734795632007493854256760964677589189421664899413037468569102881884780065346631248873063346118556554947434809586328872346411038373986826202932024282768939779085327793432191058799145773820097750502472279072775628864958515488106962748897914728441236530911793165772635805114180527024873909414329038287260516095185467397525759917928913104543865321576605430247105426658440326872158568258440323242769064116597825556254740336630970674488767344560360332751542763912334286250307079073036084107659800870062413507428339301155623268731734073749415786702672026104479333904441012833358363600229373221641701048278087628998926976953414193952770460421206556412771246246124414853306977925801153085676459594805439749990250535726891712770470831854728856997457129572838444458998357022176453988148787006891392437611362360701500332560782189620706623375132494379300868277866241516033929906576586729842729793864995610585357764749289335800156258243831514949540646203938124504869888571915630374104092982714370944199237895840011340386644262928662211593941876909494256940934883860370020560609463322250789231297043986732569117431456149726211112322149671245240439791026098602665205175159760602768250972477414016638853306893575796570442348453947783774415162746314402999651213697450687630268322081078830774750232230798913674827507170749132069038767133910158384273331949167467783315663211685145196854323392124946476380579030528887606285958781868958325118357319393729737412178151463693228151202535823906595489395069186530732610119087574765513139887813835794673068687114471734118547269233494577385210432798801466324135126464946650905173154933987985664776229595229114676005661125767927929352840415774248638154012337689142871156501164610351901865712519222670788212243599910434333926702304105021681787957430868208681222764978652152187239109307849833960450424498341073705979863078977047301250072770118477461551405924166123378130756331786310851025645228299100272524986941932555262765580791699664735339964735497370541028931373455997253348978971246142327167554000735134767590100980846179943359807145129310006185922174118454195148640722164625510383936046907494682210009988509327902778795520504647751507998893916709490491185546602546402089118156969455891896794904993298970759148990921029885264318887454127915082001551012718986756968333639494767697269674745737480149351324160875702750253595484793583632992970211185161800314435927075806190839554426069783545119755339705884100157247894406724112217742012032388611599215599921941990831962851895850831721773087268495101707110421215945624832282747691782363909803755716626222650264810509248823914849050189441527173674860290013376979347057705968343228708074378789780361671808138925113377452104298104473421280227703650637081570530465912322464248742948713006430350825197222010724751812249812704905948042470268646737173345410367201717726476519828262905869476901153529250444306432840589140558794081335668050700935335781423717194155238665512520663299605083972928587401259990998297263409806191250242903265711889952551592308091324941455723629906092836140275292103513025000093875076088771766966629847285557273941330558346988330641972909705241308333463006991696553154417784164493520317436627071976732987590324465725895097210781562421192050277812907162951750539473651752526179514837915440977663687670057565424114320270085688384774392673853146136861040238745660599143041310949587927943026379830264332339322380573109269107548669587066581668964259783429400417257891786108895082010987173970683461103114678992594217897021948347295983833168613994707085990728368048657212982671993035506613512904542721733355636296886596860381489489549302445504589274736528062955384794893392290960797293895684815927189103367268517595391327508828454235198158108341758237221157398313395463165293417456014502171822478164883131918058599125915807789053651259089808875401083721274845216406460597893091219017555459716128501856995509017899602694005218678185182934720042781896869708933336984235152023411668486358571934634242270332767239118896294388589676901820861300069696933379825355108000777592586179060207433426304175764058775833964688573365254924210908336980892263905342318262054991209411030492388401960984774206564611169430087726734641561199194811628948832478795273184957027431048287846629784874959759593584435410136457342927867378227282232647249748175574845038052409133010714556190666915457371752040115126968212422687664992378945463096750457472593820137564989026032449344540337856043651595191642721453943655613038135781475251767099335996102901600795527070690406551398445154449007671746478320310957660123154132800347301504322347275624096550766161914949237921708453904475417285101496184170528600170853854293194147087508074611878059609827361693912035190477026597816925233112307590051231881137401947908939290042014314140099609966828381654533957778488210719725089910138585059191896847538948245043885299995414662350340480557140240974613943020358792827360314496385153394906855152215167010798955284985395611202940154307124658281668542038183477811326940419968925473546429146591963732217454483971412227441313322561165118159936253186820449393731177111916621629388510823211369143005414441350736044435187934073720064488490151590740560625197250183305497877189002633257941389332290641099762323733832142399119158997233617322911286008541174007634273264013002121074669769622918119142403566423389284038767950225684958237848437288195648310495984845079327287949108410675525548755722946122283508653236503045636406185599399751921168917776017106655690190839731916473832554916718024065258482327348037402516017226011380870718831816219524588073345260707711683937629203695170012626876480269536511473111500459592515704764624042170353470995150245690952636599371995305347302469772389194500201597542746555552556933375047179801994012054590733158498319079518508585619822278764298440189013718802388011226402484285150595504810320638120993842619159411364600140512356409104908750719721733549576898242818559374445886087506360391071136882644250652285311768285477488685967960307196265997696477625207626891602981162810886489050044047943321000519624019813109267064508217638558478897387221316079802572947008622813419869904842230704906483751406930861463696906214966469213211375962359088802073328235402725885627339104828073193969421666395920203763084716567325011642055431831627880026803592777405774979001262257174631179247326231075619591505075072928234926730616453804291950251007195269272186355227758403589825382407672513484968155158879388613936018722034397041954230201576015457069272698809418536904724259483456394866037419869563757683611596081143485276597446206710103449520497140876846230419834587717673437407198380094075349473811035012103520651446388965258557386250032295168337324849204794629529016532891617348724584233254126653174180509189849257757975360945218642114591717878025806017750641072016355676192773968868127732203039143038145083231411781730017073118767441531183059465358659650784370001021312547744465056060799397448878921310485786124066740098084735159731682623315129216630123355453726596653235082641635155141437869818722379771267386497082746300850523550504524392443485718411642330862678750094068484889489411831847942229834376089067221240073030577859678057252967221395175072062927714977417752522476361375625779239880254197677455971389067199361341205100035344300256244647535787789110063929179626045237086908273723562664773157925913860625019458512946397117356247601029995010514687315321755142888148612574628736593330703696498789118735657572877569074768040732835188107935079077899498331638560128273405846729245723125463030627535704381900219702660411545664770869616015847368316158159563197234538228475488433746147779459197753487015263392480309886820842774459425201907244673513365772874938202627463959013772748789679467400566293194025218537764353639711825815332448454222872622599493174932266745462037212981696409162403943829103092134938923264521110350261590377090710911372006359258161499906251729307542591793262619839737179320674326483618660980629238452783410755627117065484567587682538160932276370173274162623311088880833524431871381289049056500005104494337328222568779896828573482881647539620685636468920957582149524246425609573741406344484232678591872941518736182804875001207102364714590189728122391080948808148696155409434494150944101870988899768708150409401527586219322870504475189949393247324404118468316834758984912987475997607183358431304801928620281325148816068492483411423573373185828895095460354503854172406055035343663757652575004715274616842089276513694840360247780656367142645665682670206597951676145275697800759108837155111606089970750313691019452037755422835747486655571801925366709603886741941243333686271949379771347850303876162628075136832363275441855259348409781020064516444914837051587747860477562744016900504289700591374915808154018316788787179208390691831207947056391089148578003096457964558902448214551587526877533644297493409507469553325315178600898241326161572253660143330798799983092244277627150214798907551143031047538606278666095905024850110475703054611089327361250242898351702060783915424376637071788238222971267376549102752699229020476187168037808133751199035233275611789656588957842258598869968015135961399989556632574093900444145756009886025193962728737102539723692373485945210673981544020838968009485015853214718871543481211560953832669809024176894640163753160617999360532974401782915559583277025561970240255048057312679043055280662178248763096153354395381084277114244727780820424024465568743240808849117229602742560317669182047709482655310595123997239051006647729179131644344542265693592895330380238578897964971984824810764990587177014987358438687326306620968366520584642128066307482020838748057004393449736671780475377697334143151958795632203511529481797459085164166371884350448498969208583867296158216190780636635954970845698462120532685389856035366445457452926930629009152554828710852118850709919901772564787294031465961607457207102605866944670636190733330029405401580259820341113418183359074588147121379400243232578315622439007549707296377826530649369073435849024509296865983552223091936724929666364015787150894615498118735269924994138694581355653027106175980218656565901925671329628974467949611113616292598473617681280907855473085293517678549320175720851223835133109886978298594915662442614811527633795924484066653129315750596737048055602457788539946555611500796354842062065501532656028008430368045093676423909414598231526639837754580808260991748117525015769739400963003138768088838990353868106216595293722056142706175068789951863619885114838245585741959790947652256367131849613616534264873292863802837589946178940766840778775320681362045763002508355556989082399799954813622949710862997144916133743499516772870666709276285775031834885934603453661373820690994911355087947472288246623944327259862091711797485565806750704907697024324260644886208003228282792253352216623260626241146545051592928225700951829758589479463068541157902734980024912668505209119210231635440393221958696175028470237679815640814520561995842303390131217245784938736938360104456085255705479791645943606717295530578745254011613169557461068129939981960551902687258414225699253725968227611708059110342027367015071944463286203423843678363980997983063333778262185871167410333276863467601479958440394678869992576138832758316401197141399195075417879968701347923386520194387610782489411393611670655432414121029106714735837968577986509817409143481259527257978921445776888191458949120770799377102761051339531814215835784907586326514804177999578512155558829959943240190300534805978650702851187991946101337234292148270880480183665215169946145450712610794770085306364985281596506952514389383072377492750579602149170749373558913882639147904452832106346154675123516340507779491438180229401158948596673793067992607248861356440551691669614873132574807867376453207046700390535043662467856504145946961967594609099321606395828220621165630125458551283417129684760497956857117027319358809650397332012926441277701768311254845299390603053789076170028086795638009819953883201550698687219524473835152438275232478902067910770198128863558608647931319324914423240884355967975527185720755923546587233673135162952248934646399831075263506079828609185247735536094264686893692148993644046768290833140878823660630107534889886799123379695033773220822205251101671623064734200392770242386437021672798778717797800881070476651278210074653644098411288954795635692893083240802530917979115684729100772496244526648952244434997340243445255673013452914840153355141879295244395399536033979362411440571235475420091613121254100292514467840248807774753128550601131961670440963005838396565669168148949658758858019295128173595567306023566229900422254927958272900726159197049126273193153716784237410562534554401065478040138183402628162213354715753654622753746907132711649589022980115221080248597407787584735198546051845996583675373396087871788718396701785366249600419284749361559585792325450032087308205699224479155700735325496735628476694108361722341784237742603467585748869818352217118931597415427949829081000178614329377286490284927717018649733727587896134537968234762108480895324280243794530629681383273192868234511709497379079400741738214016784362475272715544804213784123381301804749282649999405410624886373393381242582642779973684430277468158424545168721428352610118262470398703728546363383630662145825170302705080379052190864351201759300727853341186893905764104597973026943488238681012196779027998472312163975702856013873367320242817705457836592396898203846016306204320893131109060684300108836915185482089591876098742230793397520508201116682201351512822068513239881907143672644831213292960658578385422799710841167691164188357284963093044821195114045548989501360795460789856180946339508575520584787858332621335342507705260843046546121443968318448231598992619293997332183398821996998963377685866576617495082216847480617194002531336737898513258498285534857844394709878635391440014201618269797445659721216970228176884141391901644795475326817591617174589307600448179544140021944975862056267693869778989899789899632473580147267464644534863255227064928639421642581837234019334815172285684660227166857789452064616511876932801703343841892140081362883484034047004428325261176215958423804928403912381058013525149419836712121476390130581447990599418416180870722697826399121991547100344643919976987197062365524403835138393280997457867924857071665547305381166044948820425314572491967685365843763988752532047320140690555237790066724205541592732522551387850715824071649084855761345174839540930094499983091017777497798949727653644301867771357411833800124932279426405307368990393648105963939243490795021153398171666263909260800234176869260211915400539158386647708239522413016749659034180635996076048481136911130202712875934486844488657093194592819359463997006523719200894500226356988721905336695170028992139345491545238705484175897121534734937232426272570995715179884634888412374043860645988325630235791119352645493191467641573784672614586748659207447373739614394539329950111055789939898714922057578462474939687563763064617316182896352053736643168923378381951440895475478682872339939627795116368611801349690401982391418863746946609713587506287307356064332617594138327423069074864526998843974413295546266743539518300174844192909953819663496390445205409568368313876833039345024237466789014143342350361574684948835828640014315768190617400035308464853087410766824434768355703589305541962730019581434686223140276004324276225495123696939328412864561430182852586911380337414069287893495054793934654085057777577847105706180939376373986709979080910838457826437695957580401996160514853608262102976313741921548814279073136926286325064305712156460037168896086059272897306934802095235498360721334280875362922781430416955276398653758481885003591565114233087373743780505682329255256033922270996972181813708830932216364150402519131546252929229227931630422858039681348733682890771412988984934949908697531697315301576507838337091667318491477722798198244981824827867931046690217683482651869546299195215665599277466911456123535003419860200707317858504744831672600189929327574675033111346038895093886422460513460339014351509654639507224578728898708972518797249104800696676460566526799434593146529375299830737438937164630866930724932184535346378299790812980287149405565843128389174513213216836865057345693690086504974368762773612742143941499617708137085639332851463316707774175938833290769397523882759887062293113995138204934191947008246578708976767567104768624828245190952459157847364551202637727263800685168746086886931307619585438600811394179279791654102702462826589906057697094245361066129352503157572309531635672847686998084545478072270195447925483340367500586310109299180533343862058412047583914329412455455165328545290202170009450846539182016210692545240668854821898192835094578556758926976048230940807209508722612873987602488399787099826729259551398716022693421601723383298095357022518489469786232745358580925668704130360302021668390156423519743041226136895667415824426728460186077474532587580796695213722490557477259624141394700426701137280449914953202880967600019648723828062592162356165367185784105703315701224997143264727422958846628366144985022268224639716525698513588810826021260365141737069659644570283748067873015428103288522659597119005826444185317094851639363617351598196905659229947739571296909365915547092254439269978051339844896943127444111953135828531175824401274784837281028385237467454228415647900611670102080852130038334737243387916552405932945476637733342561576653262226568143003996542765353536306962905898816547158197970197006733232368531109444396143169798082118173245923249106641243972473659199441057952543248556231123024010333220330747309542679725308080157454074923409720910355724672576925665561886791885461410205938071903658365011318598868854916126391870387565533699041236593018446251977296292365062251333447502879464898427294127518297590239345704129607881673920868850778992749497723113611602671739972082604618386033635263438452477840650670086937807614825084363774595420968063070251136961313239913659062128381324670796577540670496911878486992735212235404891557124296880757736197087701516741454969481584732872833150070011197222810319809368265987500534313316698226040295948356218340365364397770455486718890920627122398672370430772070562057670856875138403673926289733001328835092471643232115877830942327228799627987231910748523567355938368274811188875565764635328795813549350733511337442183615943743124591152917571518704938401736992405567406258919728566998047141305369390314112969749121681399349127759834335134592781083782914376081121490665613516877169906817753056207819522424662797931457989748153497016157540360308183035180461065723136730818215005206301670757560637183979301202424715999459026081608154747718237641182599480464853284994855046156600868825187776015887850019737669095542508189374001387609573556171781848078021581325608289464300072602573219388006332181636164814976217961244677247095688207399282634019248632165148682310051118777327790200083004549104509470670355022264420721881106854031990951177302591305913025077009132357204381550756569974848577861586380359201935178654900747789239932050764210263520778302435156100741640978271368019049355377600612882287873465086411592189249138048797933992530969384778544740529210657231174661081172792519517715404563758133742518444150309700007118065792640648072225876969488188902935483314063319213404718520065589348893033045283007841948324904038762943295048882424355032200605636109314342998744571343535091715167164759830250015462001359575205977836533134766466422966630280965250661362323256789858217542470368811017124152425181427316529183207763259755817835039934697370127954634229730829513221610700564858639693719666840421563856489693394556436749507347859761949859576287860178430523229525798785004835964375844886962934075557975595535036698122576746693356788406253610458526790914390411892041110917318469733220795579379797289220722039139397155208625455739580523587975996347458006161715833150370850955584618631779745673972259059183247454457747368322214488835464519394492829504953204829594466629337758051713679178665154095253508054370096768727981774175579627730795979652412978980972558537993656177210121190455706403692289113145716626854936629870763606740452306566724635465100959709605485423306197693969318320821757628149700101706029439414078911288085535166514685037398983510311465349483495322297135570544841201965023358317457778674677425511061444763735573544951308546980395412561242051639305761106729791606221272744729676098327221644007124798303881826402784342170213684314706721078977932722086493663529058079754618169822425023060771430403587936458685104198302242375007566681261415089216626951993865120558218736557014126779020266989448412797839835720721821572952507726269409163712258723171881412838476653394704698862982902327709402011224164196007482271346248952952775645231931593168649055597575609712918123615563865757984496636101881436049361199370909214357675240635617473464249786372577625145450310392090180804396580026357580393634931262354512528835143142180265958421938698276966184924967137773840054869467174790884903000165830912378091553253326771898595575052805263177102464243003959948753806298020023762532993890580994273116726333931361331298036258604003258415522507998234889255068925856798960196745253867826596331064779770649228418947621572993147035761228934752037937091288897780486683242677840146889359057379301391084116156434467255557600547184002124147798963043053585970183585866183585813096784553455031951850371432683433386149793597137530040298034722539169614395534784528172697957549082396739347624681959758031289694429899940577115230297892898143898264497114190696730216552592852214165009705325117496846261908075010023735616001489893111614461463889210355735778149312505480437294498041216754519606753425543673297746879727851712790892220041284273856458345078351320381931575750933530183916143412945990838983102573782840950479892897685290202409010998578623388857408976456770934429276594142963705946363220960561469004536944354540458568724120722890764444949875892353797785438514691960656043775517106770649678554920459097723061201758149426726123425649798252644134449617064614204081704022639776116024969800138353104944269884134079013434811264942266044806961742107759522785698851216094114042027522650923496593783430332855771393071581410882583224031322973816167555304829092086991180137559149621453201899075765784378956067903133197238564911880195511659875523908022423211633368581182365350329198769629512180041727415814134629739835868288045556547298870919291192302602790526378126433863044201828504896343208206208115153022884471015923057197555735142936770387906904479229140258435483332870667422135694461991270624954027500306552475698893905973518699093592681977749070999520935249376519935999758088490277570818823168400943657058491297883143568449455433315358492032087728420107322451017886240129299773416376918681013501150792185401731401378439098633532472086643506665115565203801960439178644671585492993627680430523172504390580392774393669534398385639149677414238131097114359284224115450618156435099053871194484756362159777130282505417355307938083071437552301939104485678260766295675801826980024370187651304665367937027115248971759064106270754836125178097075716554940594884123157345686796633906128663619683043726948465958651521138152059346243019291211061308908905337514160154630978934641729748807198161933824821787541723218440840139717150894936508462094537107877858423366151464735663775169695397216441585958529141126421797075986818385185920975263931461622759996364496423535961074186488072032072095671340772216771654746583083374489582855314832686779164049320239069436630806768227088264469367627219859955559641408171299158639180401199451511524525156447328498986480001037362251555152914576658195078440169677986741777802666099320627803225840743845637152279625326557951902993974857342122338637048902621917779332017180992275889891148836417748925258268018492812008988147062218970533364097991354404519658596800608071085312796096499885494950976389067905801592566154140893247720280189834556520730151398139005301664499490968401919233514658047787409979405982637057164032599339680425576965060907259106593080073294157952626327489571552760348319813479659809935860179679214568211101601943359004219837343895441743177096929446270100368771335434765492250877325129590965691586004523945677666246586006366045671153046772928490695257556713247453291324578750427183865892618827414834340303322386664836891603093460325603445066273925135463654140677532770456961371237739662330257541337585652481327336608037786556588236232718357072948204886182288350717367399707122982319169933146769799428552320931065433510633382332188938984330278375271366689859832973523691160654802541104485422437049022216398506081525519918873483009570519076387844883040289084629445470144516901449068477980951099710090888983969554689622493670486567489401823824619345476705364669991549784139511888787771740712160219925711683983586303545402284640570335735380884510141096684138916059066184587008524088402679281757131139743467393958163397907537751377665992422800128749056108742868298907579106622352746937060004236563518109464705023045265104711557376786193901470053826246113926127680664277124430998516950333434607282166023866648041372828263584839678287314831445539635376073839963052848474867230441760030569200997623280404747302054663545267589654695899590000277144078388204281188488549768636069058181134600429942292783611160921033435749912236894021021414513525342880383383586467268327392108927482730451546165896008970326008984766642506649349426943184434486280131719064885567259533132239065565030208052436655369440625958992585924068168396038617412380725383110705733974291722674783644750604664022201791682812359419420532656669183036885322526299615421506629940355017603006680260141916194553793418170675315792859141916311478063623912802746950211649397934161747270187276131533637517409553638341214510175441914632700994051942803514286093242640251194891209920825068382948299147673362534331287536656271323196894381089634291328443561022473049779697140845131837924476485202630397673361320790545186451145008275130500151216181309750608418471214265927873345955736636379505484194653981901495426763942501961590353033074355073962054712068365342578352582895539854033826471158097085021341626893669626549411230965258536119090635888035169826016434346543707755574641983570015872988818615515232049846942014083391090157732712497476842405617120810202003641253777079376651285332302143473345443922488322833895869312567165019060691093287095084841042973832594196998736046283671534135113483342548953459325523848763354861464713840860090440421653706408257670601224255253402977175686699852097752671164683525015447436001650337203873166697836415060712840650523253687406773000976913206703462880756049451779765677505125389859981405465470750140797947229970751156594240501218503261860861547233180247570202743594713362119968893491570465052876777967324381736739581282422581304748583833844998019954812193880116885799558903755250278304950540025691678541783516072497117443130388117145083507623608996040244554702602393366459909405453932062560191436773418268043129125555636056033048285441112077617880618349095232061584812488756557116827192064013769115218204376288585139242740761555509714644507971349033307389375860718120566630290163275376439429204061008463437513512682024911244412310155586374411344201551720804422097211645333078981499652257656090820132021690689446215112930819871236678688967000110333617919565519993650818283752407623579245486938954165610824704586059363295767704403909165048059983943125206154415932609437014181441602539444654034814113415500258898322510398485869167631322806258739965435157604001434492359512573040599594445869799434570213556705052248230825823523684375811406433844266102188329721502594453859734298185182940976445296999608576118229551307426439609612053159450865796408686374248482060891305501001739754224248449504115049840493624979441870120275428808232462658560034232517396587618567019587415859707138960397386702873696948472323255590140518887188193844197332081993937656453726879727847489739496018326646615518538625602476965751168955932949351953221031358723039190301812259715092298169214020003920761396739431992418576138911909908280870633993174167321818321826623234490109582618722186959894494744132839985578659496994295144877968313747049045845566097602814610188477492522633467685013438075147489048265688030528061554842497904689327868669078125618247464823059019388939972080783462815815994353154627775070990170756813988435089716132619067135632295818572991296900472028930380478947900566409507867598387578855007322628141984514977701003698041664585098636953326325514496868023856241266943389005022103974059507034950084004409924114014901740334224442520534786945375735599949714950323795824330212814336878430275623687982574727821829670259734235008127928135742949650797930047270681108068643409479110702725286978034120741085398254253381991072778048899982765089289386907426761490600069252329833612879054558687783827585292068096864214541964916689336819290273789870203597862881668805228479148400493837598756418073700459554849431019181507679827422517892219396998343725235428629808324236785638794995436818412348940436508644364443735384908026922757164256949128669078636476325674953593598711621844576242634040452590142973527578428530709593667788102850102180770398035001393859860130158288137118612764193656972163621861143724139944136095430883145043871467048833545678107405735444850393626055878358010956034169273712310867070485858991928894960695955170579457718023620661545718585510976526235665777130209390678854661549052781679535679639932677360209435616864950873893312081176335512797698183831663836856363842319828894714071382079077778487502949580742335166741607752915318604991818275888283500334103895512968502994932128483638192373713292845111540348983867990143456248199242373937605013206634633165018685417984426044871090665236721686727401223247492656162504310600074377613427648321049234265775933511429338285534433894938626009016186287069287718608407228498096034098745083653267484530972247586027073135176832603574773305437733174271263272446612705800469667557302117421233877143452668448766126889158968357124021231052917674817200980878986888100936083882306290814380148337108429576807442036504042768739911320192413836332294079873878370835727679550996099656327521348868835575701494953155974106789755272403422970360982298589563419852225649263457940914363328520612612210322576117510874683119214852419905002751527095020181723763700169494407482585324558252508108881621955792327932854212461579529890596627619696222328314763995208779286042079988635434069640975978231885163700330508213087130451304202034798879514836606480933131797590491812629294916701871442466938792496380247616246766199799769221777018397201514033545274212319013611508345113014279656486358167788990833567287300540011065905041765410454282178042356547061064362047973856623553064487134741388171583457913319095842258544747788602852695059016877164919155444947038758359016309028877498948568169692889813214224411656313969019638280434897651363356707592650981433435789891874943373525618135531939632942148271690385644450494181972856044580238289897789384655874198224555950389868560793295227541414547949415006169601465917376504963830860434278123223294553365432012335195784596611675668313407240780537262017665577684452727739989529871122594035413669048193985123276452937994350121592106190293194030583664717147692223293178505053249636459709087302290026966680284569541245182835159816853466737754340794998818893977195047739924686232714817007071553607788300250391430251767445043089281745564731925028020613038988042020314527256416383945814513811365142331995866993197346620788031171593437165950986393351411274597763162392973196393286550432369097576411506652590329474312767226864729945706579960883106161940648818532503233066022027177549635092358487752165796604945140860153609930933680743972257571794866212288228577313248072827764147350332239618352906095432550507478541895439618128534555538788918286448004248092348672999907235318463098987135090317842307491260493864233435641150785530208553431724679152759852034293842471473118232361665370152790263257873560169696766816642062247964617003839551767080714362508822463606702384538211094474086211319339374237303481699328495963986266873864702725155877954860987649606252475345219430826647039835823261819353553406042521273796819376741351507541018969501610256401055894572753115625597031978128514299291085743721300301494436383445415677791814011387644006875160473414192514706841911746110934130085055466523613252006897081866869429982363097041890258881016040401454301167861378302293845186343228560517263982861217556511377817904712523003219451304598861120579940493201300687252072954367032433968203115879647459200924665935556531076278214878049940523901291343067470449250900482440607683018814956587513452938476979756133391216048369630319105618862194273447971562625297016828172808555496131285691791171340741096947631493227168794943037619111110369707479906341186534237900106607157409129544525776105784633067600579025640922452797230080436165299644410744837717536567119811814201083974448674248651665050208930047576189871434408347385215094365356928708350213934652415154543606551701874682932633649406126220209657400773864746964020624015628965965436047106221599323348541784419232734692052469309732256534150316940441168937934421075829836597405799614284909183155776849271671191397909782547492820677100903903869460933558421245444909489064134076432254969739581503250074976012590916001098337229820043702666014620277351901731408412291777545128201481517002801279609012897193242971808277709907394587239087432702360359404594099291374798133163972278264754629345837396681574892678421041309425794982630302663746973005909840126292996909272510655568538320988889674936243544439933412998980462098830093948613556569818716837321604488970901620464212148988974670738811739323236993297232880315870937570399358421665011320052306130267196657870554799597409321502614360290907841749183830793131356219780694261506694563089356786750415939818422636580251751465935738609873961264899357328016768564567112199765907065247340077521769945175210140736404304666561597704010147725379375315412282781569676578437422701814857181925281969106994261030301183894510287096750280877728163288633338700252108932159409789829566423934770184979122615141163639713675773654472953911716630843420519391135294818291386340519772091173319985125926702125445259822046320452812998898336637463710014937410449831867646041067400385170116324051223220605099459549056162204371043897214059159461559049531621170002579949748095160827477238916541784152709978004440746682495467471205645572816909906281312399559588672349458919856191485227182625886826800429544388883790309995543682343146824938523381189782657764330517830790982844539857344946577698233723694521090536580363335772650985763481273294439395677913219217366633756620773692972714245564744707490016265462169484495250131185289342339180484902928483118472540557988759290827135707765451426549371403212676858794570945228384887726505680322157128185777149652633799226717610297654225265698770621975300069573966947898126636466170958167685020054420043850380310397659712604085651816196831852985172219522497095851913646995417237480046476437466977871061433793542732462321807133032274815213070060589429991709386922590988697311232985435747143841448844582462087328865927421845683573438408981002564466993555585060376075628550028722024013251480685542024533264711798513812212976088049902238605787409395346597345816165860730315658364611505183454142864725252291463665502614221135059332815074740864915018550169052112226375780835732768335726336007568627497975415856368545659776123648330630246147894812447209712101858408508471033610588939562625046639176583786336669945625208902790272597013968048019632006776620627073909865581662031060412685362717866126593980038849169085562814399528369911183052749845778721020111211071352823160591015782080169390479224534468305454657141728718130623953159158068572871098705800550780351451230116322575503574620217101273030935398604529533930118836438255008091245342897860298842466140239427433134007451641164389413518590246104295206857104130713554397459197926424666663459076893035758040812856171638243658543282715342049621916754181328599648333062825842226522895832981601182859114959751018109545826191011281654675731988867781968051665762138715951401760902611881438429154659247020085919293882774411844288920226101750339627525227736436216944577380045451875318328208505152945031406424953914269592174823473626314379262506061638846187996054322130188781891458577305576057281068930879861733063060432600213672516851727988151857304673595695506919801308945124738580474530955674209125034921763699102829286831614805294776945153141049580651286595140240327808976851501672869163306749330282426711648304421783909498048610288460110237336378673721188704802569088665999493421313633121747097787543623488377159056483813080939112771291464443774947226275359193404757126408388605507045995141992388653535404310235433071560921289181247279588323864060838258310197038948550384770492287258119040272092948894107932732025506260724384666489709717744200234414938416485082726384707810183456713361528202250029642242535409634547056181536760769123519334721335117520741564215513301328529796714098522887618427655997688405410078554591221204396808164629235471417047507991586838708073141333545559617777321670816974744458164289546468305822475876197862104786357369005417531923707529604390096011355070641132336551312704147155533357643292175318134097605886091643682784070421040178913815978222219967294136742615674694008294353278883163246112330772348185490778957841456254735656836810916840109348587969891826026421578290426232679600928083823865981312857880037114202811994428874940935859620218520135420177645908252466170009774135583140741121278362764112166247070313060293075837087645710475255334112104118881018074733272734209264916068367160090849113822320102491159480422083768454520887401215299627321681300830771965035327052523363239092507453775842542049538900690162308830676137005201883107429854432283038495040816896203623872071237464916125147241530058415387214553746962631922275299290133851860855784430082873913995359653314497791578861498264137673478829360033342162890304252938670956265076617651868952679077503555839043695071134320220418741719626114927001314578164105730660356029650630814555910832718683693994057990865015449038543328157362268184275026288528299208582428308232520724823428859306164034968251307491128573889480660864545005640703475149739295948251203139068431295173745803048770682996924302927914503584796989246406229807704032243388828588301982138202542534267041496638765672752315843172784097600428493010415956953776765245686679607732054554719625892629147642500155754121844667198861471347018065358747389640894736206885567704161123271072479577741896883910496368407490272683183752376492605899207920158252750199953527439627194124824726511385023147281256860152421322550025016630904855833935143415032689188247071868077220629794797319863536691387160494007325041673004541189378673959805569249368657813712919693987425989844779642085868798273742615272466458211378909508049820494187940024051346485595959798911981228571445476880378355414676659153475309918225964493618443279393100651913188916778172796974170046850472011333455088946950840935835294166960399509556064875384800257810784261049249285733690774453850329908957216232364006925475503589897932698736165460785410566105806757007822173539029589211976420738432815796453819315848081552028736411012546811859717514204231648069311054398006288215449175609781772743297919187295320643853172491728567023078624014901147118799527566485842246696419829793424082373892107639733502021559016044309865810146857073936950741603875784029460651460670252552850294577612583909681947591379413723716472283197211589002513350301337526180398214541966725045654804456581874441784938980853614533826092485250041209524139217223061560280700355245839227777282501922566405671553858342579828411682841251748942098749543468692622563088740684961544579281920841000138874879040519776831809499331199430152114444183373377394402910789880171700446088840612211085577957723485720241551273866235702656023413624256053103654892164662189736280513271032836740866298827764037794689109442921038433072025597865355207065833833055723840354721417557226067910577248344523744379556709433577242642722496600863480740932270355671634156718134154150617553082538003548006426913755916550647041214426577299855220187695958119133605599574877866539266264482293027337385366410758531094925939241956865057613656433859303474429527414927061122437121788033623682880933136478277605848545795013983479555274472241441505336563668387756198288931619780690894582476194592726481953079065630492050656414630238196830829612719238769204302790901744482021875660136125419586358929842261344830602518674822583968002816315224426133460969604310593032806153274407156576300248057086509124429782092506561597899699853771168399857524714075042803971124532940029917423078487017522286160398432729496345729478158351553116422139559251844464590475189490432833111137231897323213828594397668971651152784116748691760236625676167992470061219574583551921238272879058098935556029041172074217009777639171229391090900454110563090251432452481579798896874835315780613873653852976902326481720528529399535394478051636297736276938215386026282750087986368913374706365767519308916553116971537938940944340964582111492755229887444851489697052937667993163039836069682755567903562234663595787032439030934938815572343423993414064691931871413726159486249807995515049678555506973237701379350401575649434525275560490939991576630950140056124645496328055541643157740079804382746640252018417559510895261315274910908434787029065725152235945358832636712381022718249337907241653108719163218246403650764144343215127294476462162152992641972732009041542816325936236696014567570079981000260329653942596266611521291172735209254047902469934354421477030144912337034187626949998370175414072206749692261175072460760476111453862746115746681151568930520111192864558301206771264303131510139159510959859578524260775276327493411901128917902512854161027128552497814012917199208115049009002022638655223509130483024273866336391582532322123636003235692011437371066465452306190478652143528675371555517478546356680104430782349551102462279305170617114341683218420557714354453435646450207281289991582461196105582101551068808388947165637908093483551857300747316290633743873438973135602280873426912612030451492913500524840876616898179563744729818141953631039097580139732056625620175449629267202355163794471263821302936122855724038959949403411603663641961701805357420335374673272761646191523243979728342638478916770505520027234993212939991469425366972178784475929801701015312264507519533305397636138112863696872186663136552850511628906018691568416399903212385130065652328572162514973132852410222693794284632729149407736963417863208759468889245644078138034962069175438374503309098078667888453631999064247038351824263936876448736718423131343621405204417964729336682038012749786553914713201819642709498753929736697638681735963221664144493128151859840614560151382468101890793717254616736210949213595347000627460530206533264072468494904496511964900160545679445658544903251830623914714787995538441845205706917072265774410121931931356829598284458108445817963801416492650342815727475867330473448886125384432139241774143025765912384635450363754289476764733461523798166582322786511287389421648975089483422371847706508072640113816735409585323867771553240234644610163496653642924277289897692384163547582643487024856454203923344625859675454216566468578403771866317045543942767404522828019034879301506004132695061827397943930770438978090017271315257857033436143108472108179260788382535604716569351409835462335108448279927015481189639958266911204481920599832163819294861545376168632501896885036135484070996736689729463978573697237481299055877628709793546335122920557387735652835955426750305710339117571413247431504292767495276902004544192536300117090917424906892172975039403909440588241981890004583020753339955306605906801745945108593952178864928922968937328093733497194219929143304954373015310585408189630466238441215564688655027871539614080197532079736562754512225945804498258854250615256150705605263875577362125925494623775190836408401770489535350576573781524292166238131924399839055963882989970164711403316028029987968034310483405699602582692827201995717139164141392235155152293565376949144241741828571827661876481990679447610441504490568455198278727711697298226407509233558339921913890199092780603751718554403952630143442225171541973315629607377734017107037613895190838898973524459808809467706960567468950599562232092341280514226798939783621489437695622361943212107766106681693425667727350476265089123473968143108666990608958664372482441042242854636602273665259484531792878889366852520471332279773989335084854019289166176241108843238590965853893835814274914434978691237896531344371089379394404939781033720326659157240240227973847511228644046871089843758435088133281786751211943503002930503375549315267059187740021296473835310939916601954860543155062849467318077594654169073291091959703903888654202368725176888740655540549365690341984730381834520523622746103295832926956007048927968774168811455560314857208785877053525417866838580648618830766187801263050827280384409910292527150231077039176478845560269470015373604457081740289255894132559550354604078965762631981814805169091045964825898255455190136600926658471774417639378081926237003567084778148574517560650158147234712832314329742822488398566426000758378399261636350140029754874007922325484371646780673351027541407954411913618613708196538195982836209973064162537684040048273258075066690262067408365793501615946007414479436851146393467269102307377392312706473848930902246546775368700969919557435766015365376242912897991047647372564850025262014049858787935377873909997424204467129890030510945108795072445103657946970337856414816895702227188604822427612299651177045195498825774633432454488934867126885139660199073566156018237911698392883692328622350588041846135281197500736483248258870717688234763995759300207565236556839879711836795505452220809967256531812903009406550164689694125336764355305244481184075287937578797639803023779051430876583434433992329863736084973726942720430557823917038216362855764599992361685881925600278346015058644473468013623323467908531644150986783340354589082591489669114850874264599188147574301862983188142360071927474074027904917821008337948846065881714871461966708341464862773805822873003171524729584635290180722299785713973015485378310542278193743398262234885789088332036524265569712123955913188367332793228774139709686855284251991537536011174905508106154439719220266098168027703995928755135169643829672459218934922578958878930954316367665821501410835331322397431332428965866219348312996611013996890168269966494396374146850306529671963632451938961509655395978669763152027922435939911459305360448856002252145685579068734522699718589962435558906502389708074938127809470445636439778890674826133770951190936051098682287588840976209749050486381400208692984311241026827707733688199311154604729993607766688902335058662545402078736991500774250859469024977286691210619331505203783869203945603262250819692772418476302401210228552367503914136832147787078379627138295638828944214726285867694429242937197539754390119168535325619211145756629863324793468197082876214444099383658983242748188587797343743399625826952669681806921763818803880071832883891541930976841700318447845466988328151034828165630692450227569970742805725318174773658533205585765555171058778302050659961184483035618611353923522437146791415308822056737627366577546900054346840844085487750447932130979714921328526248713902221913196306580692071454159637613314011898082849885455817334056404425921856022999376828541491216008898116519775219019175489167415404709073029215253444186320816143803331501121626289645161199494968277323141068672653672393450940901763885229118132793416795938478124640361262572012308780301625111464355196102558707184079490370736896636870045083704515592890122511448835206320780511020366501793940124631557330183305670882713889729559248468988335713336589934396395421939898064550861613129171629534967477948317544961962847870802506731937034751472330081806744031378671691448154593628407759067168737715533703426006009732185238228413653033781797723110188087898981623223433132566076765592907911535640500723382701416860676562619835176630469138812901275991962993957385775859028784124878833165616304723357906785704329633752278062467223991838813007037996340570440081371893386714924064501647103258517002238994081642584336122577476407415408420616493195969113940807479383461089054612739120812608918129871087454522703535411716256476012069849530009000893648762367816089743411650883296164768571934956132068232021430125865869256004526184446537849406692371924036850367475376972546470268604980520828893692470952517903547359847819375608654948121795838272481460558865784764325199997439858851100815256084819856053993826922964325955102199135231052139896347512281635153720207876167232335156448306686396830853274239615063830647709286580804730431346730005228925493660267577983880083256015212910575652472001495792753505369323623995857731700558776076427003946180368037465871229032508132239420651337105860100854633286711337790275849041843547141628316249957117293490410202366447016630110359357211453622815008710174084305281614414823388055101478603751486342984239343319795052587394595573070125779794410466989970678369927264152009228531151179244438332236400885070079763547180262777308379272046643547722585580074809033232882391091897782426652144757382594900631185909436549267439831522277073239342616560346142495884574663553638676151199705771011771869399579512707732696748807139249188446431313034227925795164087928624733569167898028987609089603233202471654256171470874437798000382990797982307490743530312958702284464803801753378745193014778657741216568368977136732265477105842432849566247140089251009807998465147158183409209326901692785026972638332372079128470642303092682337951196297559814621517642508715731640521914466533138307333246622869853055943257847795084916836111006072394668065170843244191850602849711432097821557239288832351707424280048118251870145323462082691302098629450991107266466695102689256382199138450091103681658901640405100128766450936043377825381996756246819302182198036890241727589045979062815893320721350201644490616331431575616184090402143236066398432962731308756477656145061256423867326623472229622906766762685264367607647342304214858770843247329646646036067402124022285715918626768650416261133994962536780050242266505179650907638411543575243063571113113966407085752328154430032312133037297475636468269576634721631094181921569793748566907021638398398064101005231201919420331254156177511152811780160567353738793624007679139798298850116335223367704310215255673836688751315464696687418981716326096617001800366614887653993123088737984001307403074072000335880223804786321955982911842243209442795378206590594384369297455787890344798444577066123402237429408618812208993906530140755115181442102384795054881761808169015300722954507971274484998079063096916380315002157303840601199761518494908529882871149709882823600366397999999909610439888096035332589046445386491268902642345549491207517602871498531692600547472573663216682649093908989322304584979817759360968285868935116276190145043824729698470996976267845006105040216283617349215557935490821162752204535355525837578071500074471253831561302962535900835328914313441778289480208736199806503835245561060136934255811719956521959980449386046696063212896336020186818664768513492828416368276368162854502729705206340776503848969820347810025699513792153752821930159725397016199378596914866549637641281496133274007888508186337406779373568311600933295583949142182983015623953246329842705065720668084748991263518587623850482788079278323228447051753428834568613120788056119367370487241532342909423383243090855959857647300163334785786455565060587964421000565798831961441098399902870078043421233758088989407651837035671697747213430617152230483575211585972283997938948771509976664878303232849094816088317847565996392377275694583266792403672058067698286657968449659799235006834043144287110006444104728003734683157020488243057418628249140738484232918376661490248663870596775099423248516659049302167910536540021034927661789759923919689909681085761007523933956977808561713090780821990016504810737629311587084004187222501760483199210287158899301260761199600889957202894130148834076179969557871233394255048874785942624815964022956705319424209098303820476347787631007449307177766077702940638186667315399798743611723176256841370235122937092317272244789195311149633163317264996863195008625299994424608467324307673412947336627282735921735080060951878765538992440188202208974406192278894292291052164267297796039688907885659268132127346916048757255970417665348184307360866694051180803877517191352250854689874299784805584839295514111433376798794499413071127832136788784510737293260469768165497354903060525186871558281051439521699418623630310116018808931164698008734929071417749271802239376986354099969897341078235357763176518081319009742448394047387669557704008419783236650606722419022553021167429066001424731910981474463928312033785591399998472089270124849904736156709503445122088496238238945798271260079751078944246915869403572117392292181192245821988095777435418303736242900007776343340878044792853055474805482309324341255551822331984483222570587837240019511777180508321001210761716825809271129507042871410963170637609870136746075177823342603730049170173919951201618184930299634121897599925453123142487697091184916470694770120898801866703763577668737786974369888999408100113126835877236418232466565405791507812299119094597785503196579077595092225632461857910503866543424241888504652468822260653927169141074967069742107894999045015411547598775055539377788821201688551465297081406661216227890730177601767208648685585268874057422765744068392603237412309192721128065411482219418922294105721317490398309346421627748766942003018329989425835838699081128433904651953462621067349218768936745410455804457144229190768276503618281872935628372315114561890813077142162045468943717862998731625546346317288931162686092165645592395777376490180657666318397873537088155065237322572086753447951391633747277358534540356142579415361378212636153976101933852037316682071582213475730196525045730136866453559125850222026812801408791036235402762333508493827837301199586942401554357003455808901888843533827184982471296909861121963519448302619994597000576104833582769067128282722922207789705059444441815640554292481364459166614361957565313721755495029537285016549272434036951799505133289222031906081276736780721796081368893521718938470553511576153873359954876126684423683062566724271913811865321115977312214973917092582632035876054988751781416683788758493879529823289459017014285295288166248623202537986442574336735695616951887342445478140400384888756835165913052656657973723780078460229196796077134771944995673397067443525515347674758063664456737419886701296304143421047990105320798997082297551512939017067408561144323578010989332020562995449055142503566083360855549660474672029410405606768266565466064812127787285693990107911779864041133412187422967239783241183083061081853147146911454505216310934388756232742224396668020088796725953824976982116796131195153428684093215530339439241054283677277511905400494557704311982455158887494389218003755478818708897467671530057589851645243696942772620856632935244291543391622325240760229810400049818977706075178327714985043719234872360729816508026264325052418838796025505539144563435949048763491690563156764411913229751769012471619929797959017292811430429512363479342816990420898107441151817669698787269867622825255035079571462206687936131530566886576462367559371912082169803994205007969014826784874037195498222333722908704400221207423400952465622198186602541131612735329045517964175893659283968060453458533711161839591199676962629469793734975828404551785322889322936957691786318359159991124455811970302477661249383492259846010032365740534051679931182089019182633867136850741526285964818941812948772118933043301283115445798761563087930814290613940504627104699254566866619518575725209769000001161401583746696788610821440555589363641009307248525935558981750684124342743082853292255004912332365370587002598098217606139434209015177071568514792332131564476224144985319251603051829199500616701061655401970212845533700614222043861786518142450266749601759571628976084020492159306865534701547102946481301518220331995528094470883822156744172524083664374377122540282903556593834155428820699252621557975843588141592830726283993085078581536920298274202232117496255705585355266599682538775821693150935889050402541388315247274397906338021304922733392898432053347837505893667051044964472961763608994125091099962653715058173635569260827653801241464132681671999551215582380430761796390866913185547670071255827855715058159608573504024283363621267059231530519089015434198756620410228200820377699894635396347875268459849699863263149331868728178240839000155708368605690515782700002179437645955278149423329564915113732552176853344466529256594009130958469206639124943382794925486824621711482147704613527869032639438966177116975828089041262886472459734289350431719700788352659236787269375978349097234417706794554900260081738350566314944651637291887526482732745073482839079572819411674245289118591530329976465865797852673198118026442698271456527315628203772882152726915372495432308449683123853987816142248424746925319327889079810629720369189617261332531587810934511377939373828531434757755152594611539572581637984496918458076456831312293936434711489653914303512750146361968729668307170646964303513555912728199486624839873985868626616937586339070147569867652726286343086219097882631454967332467294315900758188152135026982577737966343893356154544335233471221866851792369235259934795420003694937841965750394157915475751086401184639192300451799213783697704235282969989460418165897743182128612346401613629888442847652802257479179329205969768777634913785111576634545145580230974812834999410770197312732480796857604222755609718480852091175500200821711586494102107714441078387591183001667878971325130813902029973004938329977293377864019790897178821218048698401713263748463350845755205528774775128323652195570673496613253428512817208691997023322200751740325892701968134237930855219434605839025076377035125550502624712317771089322956572324768578977918188908570282277122571876284862680441481673943553665681914522899088226731938083410818196050687863329920000241261300636825936107128042160064155361911624045549287715435806395824086502049844991075014841929835815651426177482877049262738609943169595182497693122395278500244001622348031742085167778512459139918832788710429720825156924214502902332574221198322666095453183551988100098814683596977119182390588657160470769908293552486137975400870212937017997885170483830444136601553982198431887218638797789337747366751959325116787797691084790587709471199638285460070950252770966740871003979133945367675077443617164807403224793657987671181433357399865115787467937622579465926305740362177708270264861006299510129977818704175387853780923871763949886121195614303964978021590598215983068785256213763645597040534845907276393499680831438634169033220500670120814697616437289827064042403757695051564096889156537135540199539297936914861002787136977441090306725632597755905157333901535557076943202700761553707572616691880921413209899149519555563499916338838721340828891755530895044286272034195340214777539893555550621224614996876791837826746801182506571901639441493863116944746238641407804455249845772080736140557824363747328540416496548708764773989445961582992757341985713611890976648246316421865766586470656929797346765740898747194680902815472641482092253428534344329008854798534336653725733874150264127833079715938391424150748765400653386042790661669450789478453071549414424063746555146372961988778186210902063011182705499258771072755021181783534644733136162601804525425449043303170394031120838704897645372239026779900386636168637643959298952387462739600729302973400764332709785412897938761321602826651507567735413342814272684741106355192134366864815269883813569825046501309222973928876647394006736312292892908024028378189377814978053959580891664804868362146283814521771535139024925172786302679515306208005825247655944914401777087506936166724354866766823352530799631498194064835217240899307946969050793415799616535698423709846855301866362135676171788651729822168659284885765632361322382171958364639531522045258840590096433137137616402512711094789029300110419547480270542409962148494375162348774661922647052492705463912589674277148103803842422139373166040839700190452551638326075277053930070142555279274562972368357716123396115767933321602892613736240757152317197326070983945026847007177596447994881567894327801441255229402379366205678417040182721975936121755678536156238748575148476877352422120686001834120832786454086164795751615473532176946261078302038105114543965628603799632703403279258151776705530874551065403381853324491941012042832665194723699759409254718246920530693893409346947821819053842455852079007625829716335363892907649695263439639269141514227844674445403043678209232514501005131206932516465326770815174492884988337433274407749065827626219300847385057684014045342732069396040584929463507771542969488895758137787911406044959998067258175043876334563516637283134098793738212125712225424585080244078067376024362171169545752367137743442510559170314330031282345989203184877172466040803001709418913114721617614397313827553977816588057527164610524363974269281828654880263626190649490675301668542935107689831568506663455164545646997046591201386757393166499384039992722697580335212348332164170480251658883643703720161543964524488710072103866226263422378007866138657219956185947253025109025125601890200929046525554136625365366366848034679175274943611786493032475653665377895211688196781260122110084263811404092428367890629660110685475612871058165674790439125004034182689776149276938804925892479569945698612436085421816038787544016804601418301730229366047162176409703318941530357006730562828841817769059223603031279105819470548010338295205929568034269033676064906263466586244099967923545275710421369040213086305593172034024893856356595270624661528834817237114911407946671911490179502732217184791726312797668525637302540265522752252033286695154353454216479351552562038584552122005674546885852182816308664466283570640167536568681086661862229663095962380393152374978431122856791852574396752903456050259985940147886460548383841882205653621687943569285771557468628252498606073506322913511496374849735754252660113782031361603554839260882521787733563818635649733958432065487100956404842308681116607868869844455883574928476726642549954307250901101575175668974866214537280119362683357212345434201660612329666871271391321243843350780461079777962846846471217675943599017461703281360211686699221122850364318972044253569103982103517674831018647651501984864700723800230480355151548036090712348080057033060700013233328492570393270158484785716861520598302022562862264499872123133003947686439838749135997509016992801081199519803606361357698281467917050194984744754885520285091096856528330169020465077334623845791907954498038940481453523025451558247380685937077075768826056118786128327697633685787223793191920419337968212791369909557229072397735712514189533038244015938738566129753820274301277624982879614706102941203250691346765962169055058235166582712412437517883810330339668067951016226969445733284461872531428624463149515488021142503246922781206251278539490385580852730857688519830690650396939565432989190392494933089064535220257194991780218081558599310132345527901283849392444949451265752650710033430571121363289319462013520391037666509669302561669939487785085364238807007649543050189230974524887059637153947956467431283959619895045655800662439524058053459505285900150633902190867889347418912689238546546027313155243090856524749859607110323358655122151895943096712298183214366352689034201811044403530969833849663055675679035030635653448497691040560252327855636694280092202908464406420718576361433686909108681184994823703877939837926830024954523396149377674424403851722811334100732163304618428670567068547797853461674362461287223544749376478204365314522409853051847263128330805352654635650854655991851714025272943336416835605954849889900597813269955663484404440715804050717249122008951959567445338786827997588317956235639171373673006443035774102242292880493625927663526532252347127460589098440759671993646578866242630122555378220518555492509297696441151662611635130052483007243612348749240191394606013753599493903329889253085449182978202283518104350015802316839855913090549762058252001624100434677447736431802551198210799915547251723088816906657982235392966564413373714139897481315118191835194955617223264538581097610557519443307207710214950810588235670310483533903181647303863111250179630189333171817303282800357871160024370719835473726249917540718940481637864298491678886862256373677156724554924488813500903084648874348147250776636647872453659767982986555714105570550250631493743341627478266940699702708986749180856982998840832387405381393758370284423636427808652105777046396107433321058904181519998402137500605790162375058519629727281776339113125933948539089224591021398350641934455724834058621695193210004136600713861039812965727298293218509810206088503721999713662218505935874272481480688460903958532635176777007342463050982641332880847617169078754156707538021629588354174716772229173568019387032025247469084395630304913718261766923860227966921353926903071579683948107742850541727495175067010054578099657342544282312499655787206798643182237597077604566991848129316668636515944833478968226513339987237001801763769412416759856383843101127565244194583528546558879393502319894678688795211358925111936975145529898492297506297433633798898410945254061232757621587122991944323129324143104533872288486975629222652232393114290028566382262264285087571198407306070546723137069266563600177113466528249565724860419071414903700136026977658941049863831505307401249284379788840221473611727136764733242340585860161690149136122293029419050550184433830920310627167027724469964679287274422318412565501914371711596653142079419470734499814475464738975369023994851851518740536193651803038116428685303467016495607591787653420106609331234998151432159208009977438420640948912717408552244430374537846662604139401056012324964689450459808547250672887039367465900758298778302094570674650948399682755062992359128271516575990218085575377929596126932797634105921590116514837763960544685092866303525097001665382556442600464332104782288988872903446158551010546627298300036399817944627406717825212299730789416723982961404932056685029386457742725312165865266349909185011967221170415948425222375410271385694264339151964331292117147654968005938539948173222451846098728924179400883944020477520920159476102500558880654873404579378207953140327463952108786346822712594129268760826668081483361096123917161778359186039579076427863397362457145031750611418102963503884143126063280005804554083328885971576464656581403052053228263442437893053440395408806769828019792978973145805951607627805822706473781742207508285265316044673499584007095182100930063007399737108458947245655099097276022175843575342590630407938267954335725310678465291770528073338493304160601749763243931291668226946690536754302680298401259396035842221175135022224102776808694534073291686120057959131531672087854249271063162706279366095121666363666997684640873738872480466110422412044673381648421108017478924249004356675760163718308879282242964612058861616425970462252896103976308580650535377101957051604017055902776046169504179614975375803722395456473214745016050887491215199545594503747583227844710084470556187082769673734084739695469154147648648075081978031820866872331297958910796151399474738600306647119349652143028015629865374820257562051133401621921233175350637965877294280074601244830708963368150381486151923558885693017287402060492566924106240023136296117042975069635164453265429840584809664115893237435422191807865746297971770113947781788394120668699244737583457146042481294372640541434385066803131219539045537230703973520865467748877568701962875138956351357853878023657246426529207844979743725048243208717891226002390275084084377984987724517093068764267666764685680116771957124124798677368778774995029918230759130116471006361887320081548289924252672253471732746322043241844225455677425916579607228466011489379110581244898010228869566961362937516710597638125439573341467077209815592925447297841352880218882530111691674463102145868940875189611444127121948992569262399604238533466260668977177668705927414846903967653935621070286400950497950030514376832656188681898670793676757545656074648747121942337191012496931890506202477069377037895095725729503550838423548723285646142909075403887254960378626303272314420858599179788579318215649379756115442681124698245861738976919576886849922082587419469227901276192138558785253053070062165658169538126131894422999605587861232712715079832900195308410135985496386142070342705758809860060997503416946817506966639053344107809419158310528673371839931031942847146265320143220850560644323169222850504735311299234952070876186242056423117402910590097432278070608111099309571218820755874191186051919560477936839378143899462781208667949939779262841267560595970067601177627598163890098220168546013831636912938304953325703017449463962585569750172698537678462101214205428601895082482308826299214803628579025664141151068493539857936840133350006832921097725201716253369861581350473553052656001570858254586155610275061630667827877675940420935336911282510381937457478132692638476587917666482930660650983277370749395254364856616333962974941405601814504487813647644065494570230211883380029607350052747395357793211423582492262660139436944600143990822433615820533729264318575965440133415170278501155686286594671429760660724680299048505471970243800652833523532555593016054912549327128144578096392385341157592161314865683521190706155001480657997049045239198231576606685225672473631309296059800516775322746046626768526072977918590232449798201599541046781021695443364376359630181676606064729434715853671392957433463942238806141169104855096003029376088626775848271195641994709613538303103945355815808342381768285080623160200916731007272377336488121581229617529913796492577825945308992990618588542894082457950223254160336737924164300325194003667892180114393273432719428899101603856540942315244828569850771246194816412558086723284886059374881554866566239482026133444017001169275480538355458965926196671254724330182260385455539390498932631041176342246363280818615162842888424959170458834439228962630403864784750168308566969559687635179565681117912052311562995399459853840965486554453389072756430030647648908407854099040425336715206906706278196382818929883011736089766787699700963475820907499461186073660816465004725703383219934075535395161260417999679549469533362165673459896390715914584782780327911041767439111345947981099572693602361070270532015976693234917221949574702954795815126998653127049918211673792450122029706361176501820469355300464611835962539649695919593316530620969276334474998923827144102727137162609407756536830571423989709424655495982809009873604794800240587629586053456377467258917628978639817253275142688554836185400503156532144454957492779862178703036809788619278450369195163290077797952074950881980046403692960527431403294080092127328832859964694692493642975225388268827962581555180954886992136378208139380015304498818595916123518510925665396002067836003834859726080186335951071872459097580022813812024097468461748798051854038937425715394927423400665845537425073153590068085331654909721416145826294944876881023090029389988623955602970943249162702432774498333899323258501303849710265520612625767200940986685174757396319830463827277478145059482603480357713639300694862708830880626842868076468491812590219763518495156646021674194894370246844943118447294507111762984027730304976156672811553434441034687639362892481110080624792633857424543171915371859494426815000744257292490301772434846899535657615765478340367226958914945185253511479957871186913679752641672330241200288418143455322274905319561141791266753272451675857566722825447795483449662427575744645402572175654463308885753881550705308058532469093991763466326608325859841275144710426573117242785310540417982706829382625041571911378885248981682305973821189308543645694714794078415541446925487777980808682595747385018261692071421743194223357051665788384455795605127603095153954393696677781650667825691476026180532721700064232308768249550789991004743003077881957171412650341331514136272370323181993714982946650507697612770675413215302105194563846824641498696127794832785702626205462490675180612159919915011720705819416073580138110722610513241871555402225831829991760431514480075300773899440300140601211304283481998413212470550498597070306928557033043136891052782752972021881643850274266456035206406402382733888447020616839543788963070307069503412168794897869133039383408723626243206789072614015330845311517234549232378980150225886419595047639729576437660966459870150661052265402789020055726126759597559933761136847349514721962498639415613216067145575047300243584152378594026323081694567096054529014222556439736577028819628098689822510884340219617216997139613896173241484463831391857856094472285928923748915564597442270966570276188170503542089558746460054755629340121950605387357308836814738305166596572272976600751886680584105592927363975570242768865935178589937377391942745930021255278810283494732295520975134431647213510040397584605644076200356068635187224926283086147516820567118934949499993629657235333039706746321009440928460184700172021262344588352475172609222730119754409308875603682704397917749776405414946565549687620402525939495212970275304846421889121085512122567544441457782430839441185947918781004673729793049705554316380205544179726215499626744169992249156113756242420820682018170582434574113366421889473058065222131117115525907218578859933170745481012277618603064168224323027566439473991958610717009560291299381242308760057991580153124482288979579523754480681002924546329643289622829584343333402068071271621987313253017192112797871298916911602592498030709747973368014412975663507701177982100543767335042054782186801343525669110481613287033849348373588750757618582433504788847274093356890964713251857912711087085080763174915319362972748104069059389886969119087751267582864084622478729652357878405647217730066405433770953064662209063791661336276249972921132183996046268379609532389219581735932333443200936430900227703155163423118948482565213337422674906269431185597773377133990971668806892531942768441956085516188786298339745814937077130228759271746112671074985554629971092446224253552716497149915309717852854751358432476748927428068111036660575321931679004278545749341937432018998882245365299598720438705874494949786497896707868697119483886300493226042140013912043455020847159235748864849418638108990511284052754366843823638071910235328600512574018219667914003132588430975783383439803405199401123592099936456645392620083075701774187221314669708353447578303957106013788464748813712015663115820971757205423810746039972465765901069632851077245436097538635138839174214881497684695379363507577758590615280241543099222689904241069447403790768519370482384410754153148122911175020361081861789278277074443003294177957182047253479902125006934436862887523008336126647298021003861656337995482151911483727443263060872274988566472088985516549969617101759250876466406848686799913066274709810512160496449758599616421876301276271436776244009852106456357848975407953007841968486256769471386435530380223976337344875243102961018754774051995337770242141168369382420152964653820007028797002104347770198316227590057989631234336806678390002695882371980176440735713015002535871276640614948328167829997295847830241701435342484557895780261875715573177412295888096547682624290029544193597460064734299831644065719555297005522177846534443707391213271371704420948919410035999766191779018173517047180412983443100913303047659265432156262598304096106248695643600730753785900192561332695506610094967844737402989516750465284954009999318506303615475221154429538771281155197438518708819817519780298823274376923161779304069524462605783056687281796817154253382213186935391995800396352803132216512283863948287939592852338875495170044470423605250786608689417446438113245774268728227496240428207912751593443821702387809893603439500193210232135689147221620287607774582528437570924426007446849397631656310519144849406816530274960156329158927541623902408351415387637902614596540573480709545350052748167137145250548529226111015974057606468669839063754375147605532099444218098291465113638003742720906874353558762297508834930778732616439090687235394866625998481499139131316973115432463124386812549532190672611257261539342719320285999106167791989524700267619164213381241947382688521953179104983876019468863885372253354935023914696904249429987259192988654459552548678335573119269184260681979112411846220183993585562930232690220003183558242907412395878993058746442138581478694013501389981527370442304720739691947643842712608159326857410731894696980604340866175776207654488856091487719437120609648456827532613246247052857191324812881991595887478073787292585898391249489344121219131237509021129341577719117664153609192467742177331927718324981991001930458106819481155424821115685923085764171501305994310133614577528009997782151275714045343115938661418565869830159391831515392706467796126471645408952495858921278993161291449370730106397653983840762320513018022598633307604652656233064545677434112699184961065980142930293540945267808088955479077720946492984550694360498281356840795079393838375000893991603520270536444639749705259990527762465521628617596766064002504806255596125060013649042752436514759694835300149046602926605319665771203015038616233871951961342551652842506787102779043244254839849313279069176703803607469577354774694525902186071415125254997625605694566632416483005594251597199775080033573336278407302594074915794464192964873754607156230149688830021419598709254201165177572583098954046220204024989187172448122187137459180036804927424845877135330648959035385687492239184458633360019689638309415370411757136165175765445114655614481777804153143418736274222687850791676742871696117612464896712925913313079033731088887580559457646988709867911837949838677171807496359665394285292363445495457097333825627577983455934788423623553695730299702297280473645883065993995381212789904161922314427350273838395104697234938040639278480851162380112532888882993749053127343567543704050019253907637795443442981114884087319973608620511416158906558280999391470727204289278137796842632884651475395571481133244946030420491663263419486886491096803320090740358018902368459599012816192990938385275376726968654150155382020856992083942383131553273379205970059285106448462911220488820623564833687020119867160149586787461531347717345172095330944910729945834913508792747021999708107644793823680716278517534780717094831270694723115192765256067536949266347887799188628358124119533834691356707545509615966843034007733558488708938647090930661722386004573620148437581922085720484723844558059022888642017926314674738309513784110471582892467647451263675853919783693794402018361843208700873601910185674821099743759775461240484290250734601686829342162948331922884280012164970249013779593938841575827215883421828694296429258314797052397092654174762513974909773556797607456071305560836698775466321183768842745565507147611162337887741408826195694673521514626842757751854994859965981634966544463130656316528479532983466128593835464398363138642146991779060546338155990375674143917190895332184758906536638833222553360040584925232760968882010061194100994166803676867088017248357608838529357276784555823644750062284886798899119758174748548127694668874897670894928776374911167784043736183685741366153544103302441700923844254435070440491670697599730209300275413519534795340632016083917102960675537655086107585094239001386146416337953318178225017737642067434171095120428334894596426995351999906907443204781834062367815171933086040663713122332314901119519956267845122195133426698626621679589957961284378852289673759947693686181641751376320302656777415549771230955463207423371269695054420865468524403318178447865129732543918401095150443965816064941011561082188448239065814356224241085839072580696560637274991387036274556028432505274912081630749867893442616333277612817769614391387081582865290945181699460222436857955255981882370443505340390608552387507093934850748626577597523828568874193703318334607180608576403414846315950103141169433821176956803502254802702740423952994555788786117774098206428498577169842528154360743772082827130756369810089647647475524582618092124012730393125745942100474840088547654157114453521743284947987240414800390482054090274895556858399554927968691262299390511990361282196035398497953537443683565738144937061666739170845594783320123625769011309620025021767392298699459206893388858746459246857295131147719709678156571835493177062268970283920241981638843161023936246834196080811500445357344423163663373403493062463728372839772160135538099592727315321497276499513739444952654956701960903613954494484944793351369296217448201268128860149589727274615183389182022799376689257174876856983790499058867073683078335217121260098164593545270767817005324359420178907379320717977734955220441569474161127371129520228307308792385883023617796685811095089917574137372366005778863965054565462658052688129688898877010329014051620186788110975536886202311091941034656760703778791947105154610611979594056562346815242712347329681402189596580477477084740388911703927735973545785832214523185561472764114824155832881203597392334456270327042481074420054264699948951643507910991570469045242664505029086795930572214053896961583705438616338833494029293449618429281818043311336512029347879474780872685005338004472303740028885512448834255918603760304596241050465342125573058621793264860445384719112382767318621736932920194838176805564871532852030891465970727622510077541143936698020768771621509686932098883330756867519863449061027983097480537095091267495711815037303412104636214123527755128441300624586327128228190006292339206642757546370914377444201217169759066579562713051384105089928081304233503731365028899403157943447857613131589034107417748052427800875859976512508288282848968099763347704001480181593386564506470784512564006342604839029537137168000056234793707020137735855913352563728145702495108571086225713363961961289748450695343055482761543485818265267106212257227191474775317035972893424526291145408725316380718370257408616377005376392396239669594779817519183558309123823504776063983402017250302239979321669859703725912393444469543981373780624988916246999646236486530395198005900191397703609143916716447240616268595225050307862109918377826411496429245160749004737619705939508868641510618764773467711052072382626429486309924102210814476083632763487617230539329992835114778953314001313755206387763466050203682756910355560156274280243056219827975616625029572529448581274685000526975607210780978774846041716653441988350174096891460226631110871534376291854744392415510735258697961065896363565156886822830921224966822770555648487155596390891086910578824441701640573467282223974072349442621199192902267978713284687955385962344484007400395807017575464159868930412556050135731129438380062987968271619621171045670270266458857018925170505897011349702368111896715407789557821413327898960557931480886098982615011772717933208656386426732105242795336528511572336798787822691150686001691227624333555045389350517645480415099568285780821253049746888255660932189864737593401887082738940413614735168448944964509694493275994885897301454776278631561979264002369748855473960963667441483759078728835242196709356898576271783940274726224707031431213543664302938280372115506379341973741073868761233453007316828734279516937727813728391679290120840499141802917891739152085444551454376835869359851872009687955689436212515712136417603415332249141157882657138111217824875816523890941410796230541148835614579275764333034298134210113193616845096900571849740047318856847799635316863873670949997066205717165238439779640728648517385181423485690938383044541178934494661183100979708442412600125898170502868729871635295689719007740987442087965877388926665510071656448040662224750525592801713971383669901205926414612329178397721853223726296872839410282660431699603967724274742568157189696079235373348097314526497125791874210974600494022487970722019488143408653241055533240443078679803877860366516489207119053075883325572292726711677252642474146650043936555435893508810372973104800412740447244742286907378010660876055226311670675133106365218471503696203311730561618489059096492783070477844758511565624793943491908245484008202813361606769561668647458618679691912549387548552634174883828911235503158494163150923736109282484944223863535112350366203955024037145576366704401851756214203356463321038543404896163472662413300930867963377570600245961235520118530102514766010644244393228384851800362471371698931163584726983709089036641870300301021330342913582888631247640784715577279504519777217482255444487882609560418612425043826060436284831123866023880974758511694508659945920668982685673962768030712260797211426466340919268524652090564809958167312542933640046711493279826072840570355683970964387279801006587587624959250297853342844886599578958847864866053079509217246871789174512632857757200469303598394429473121190070826515281336579788077548147666139285005105787775715811937331672593965922402731124087335959403458115479363489809405591624833485369454272890821085832121682100861226878661974810489983357444464696143355182353099250656970979659902033933832531803929168434441802956864709654235013333327701347643701756859552667648873863787561894339919247159073851147064411377856010422170919181198941751378765251871328446156804977047241693396321920216047691846382489618660796226754930783979758860848056225376851127138604400069912650973820585754374186619827025923027204600147473918444146925452002808187031801300663310258984260650070496720097450064134992342807037966279952073576859361395391720156562809485052793965238411218129201011215514532688283461551264358228848096964243492416711603378451403496085544683583782259893913610487214267190560636495262979713256807732771130322005856842479656668837545869455298876635878650675852179374168941753621660858587211856294413923785448338204021171372274203731647244662594846023268047537249719537649291695047144453468173117217410612647835661504605047282562297090372580934983511795105259084851431430348145596024231120794009690055308761721271236408768821273744453928577493848533762837720652040477801373274980272173395773124471096942262940362973390408589488131538912187301932545519280401966319446578710896239937662207283220565855775728116606750864985093945219730880835429239706900912687808112875845606474664047781943342987149471023084466528768120464237390325049567923573301054407293261651120021212878144656695267961040271298221234464965545579066373808052510983783349591122547064994254090464231504346553430793682113049564871952138033777809404722781891082051321088986556527134843492017247773859570708614611623529075944792622860485648355026326583274391598227361041525029351872891037973132314398599767037909765998680651383054169652564234545506631358667376697502905209075558292505712570118248802300186864875799856004531601494193234053256539354094592188628288661262707355114542461339697929826987549652092199053566050373175494887731180554046900997909210652200977662705300440235909988822178656057228962896791938937524865709250485632999493909349021240166821880692217100939080309276541850932685379695081833810839291241754775957143235795865245983834820265180249542068240777768408906004199427157892712972779199466729496809386749413989220569714647160171056297353996998435151228958795629758184946901005829470420751567933420804986190115745683810210101592118867328742157645108708007605215276822289150717239962479637110859799618828763360685201437248235611828701214077293220098435627328436280294419365328450653152669598890943488355006300896117823827511062834977035056206664515625359287978365339838246538809711724443779320885137335999452103736853320079700541020664713727862694537852964647895942855782007356314153691851573048243838575822526252491153499125957892455388575487505056630416506327071489199301367054961010975561697533947183713405011461856776273905620212257748383625903492286737444683819052548095669095671425342155804963045727186946149349989073518776675388243880310003774929794985953917157250384410154787510757588348186297714068573555154422666093262401132708321642734756708423960095141030980040818782563927012477953091231813337695933140654886359432347858305842013063097315641506536804563033230140285875788906990257562302693189745608061950105761752812727542420068986969133611684864584555718072505949434807604464476726706637080954739595319958169191405320804484186431236759780252367222325887168832128398334704192350619409723843635847106301726516276019929359706293218497225762058029711820306825857536234683914532580832612246893451213275750824454803998980598448035326786378318953672746184617546663453816827524197322867525874664058940339356373500216047657827750601051438188500175066193985690161241084650616003548055560943003307034756431031589458619050497241280053618138843419219595207829885509089671497542489550478165062630401647906250483063328405997327723487702558087115144991905043225208079459196204130911138945702170158356888791026596926207798400245823051306847522740616408247729457546087353706080493606075866909696196568629089265404156774874262209780472548024271712412679817987558884307969705649634708973354558924667810841321004308365729533742068537543374778017316737972319797405035352292578279643788301266568873834664766796688534112206685643051100192197990136944119574474873417498362840715717337950195955547070504957472175554360176420045450030446799510827830446828536063102105040160360387370515546607623607042579822669871812545678725473655885840611651654882903285781978133599162923979429957056474829835167562074870644957655429229032170157164292923055448531399763765825302627221065564613731352965722116344636629531436083869144457867094439319360291551537790646090083543949339525044419861377196976617737691996462476708439372919656868445864606006032871802257952818091886044617044899043300717309664084881931802995309147188420913449609208255990039378097539400930599950153183213931039745429231976709815022564609892399214416935509119984514329961925674318378525818526540717769608602657086975668296434310284026136226473336028890995451019975677532501753794307008712264572245974101583065787473926497780106157927158208576813265514865803054277563274710010401069595760076761008338631834008437075130329399752430637757794187300100008417057183986770928331893489734212684797446646324855332239957557774139245387697135325292084271674575154776677140560327265695883738679158256908760397947736471377871586536062358667901735886818357066790208286628249108995129119455566467989392302783180719464129644162597119308593991969666294455566431212747320920740264675146272890986626894174621854786569939157955082667437987486044507849638004440385139146508439776357097531109425683572606393238081086831490925437612833206993598389621345594311027445101661002739447740613367660415821266751575409097851819036590186659752001626035319490302915175996459705766550949104402414210751012003037764291613441968012963078399213860079522448916526901553426972332443557695515123911701111279944184611020866023238507729197768303596224704147166756783100629074252588613928735240196225712283667872535171625182037266545708295110723468897226655162003635691279470221639569474308800023722318716076824884048852976174555651653191654891172187003485290016558470594350072614716138127470706166066009550406141678083614816983922070135911902542131471538992591441290747798960922342170748224099374436711290241780640397092340594161513872569012179623377313134715599205645910847027996334952407447773647571198140431334918367074054996040151524589278458427640705522239634170819531457683477487501461760181203052244138853279509706308364372669010443865176232111912921833133518006416907506807249680636360952204401943772207664533807440433075450225647288140989747464830289167660539605288103571228281067954499743562447882318842621653089191688141637760392533468253952891054050262767135742615595587950282509537907565241675688571610241002707241379971725186872223900371980296817521991365971406009423590502623547121342539331763816188230732648110870681828551240352635610189050928452592690580227891818586345227729287252981266448722373500628845267156497559214240508099961192090912923552223336494795465728280967363837991486188623375169184911761203079997456477341315390334860997927952761076680966906754182751363280854566084543127230240384201134947796489481452443062233956841488345397871012077306353832726844465644522064384701069322327651357736000733976339131056831189787874016249982022547398725454472723361132671249634497753954007567015520548626369747940781216128941936424366088318545254068574539364937740455344488523027508658397426042589073511934917701081558927408823511331963673854224446334728793561941925581641175933740396686254012105551314973838555896797479234382288892908831756389510882051016864792073199485062866499193262128400927145792614258677081880188212210605871913963302852370136244743304921217338214800604432759135444238210105449705911333816966074083595203983837866181354179006442755812440321033595914794334856916276638447689896838137221049559341821813871713752632773423739132819716880950640904244664155198787805169813300662326278448670386088438186127842538382237045794977939537917461739330820706455363777839343871905352123048847409315162412610379235121917007429349416230217576600097953854099733591001441788955293622682062521825382430535236477893071235645986955913639162125918292308173589746483106486846584739643202576861374309953044008400949397900915718070965206311605974356300928655675043200342070414095811977909572414224366215862435792601899366355222531736152290182436448321551675962931386660531649235917363198956674261596184566271523976389436182301741111141560952454723582455100267057429626668340858472496331985437984895511975167197991327579918587026626072233775978312934589396750526245560472101546176710761936876281458499384537902978044460882197809750493790237675153094368039820942150688433792046652479244383442718691894222442972550508017582648924873938089352888975546335226170373190840981927153805888495196725501133589298799998732729105411196612394430975093234056666311297298807443162605357719095170774740583682748938984472046449741182302791281260291643820905210037958264860936936626208020479356739094678722190651652910123548886765780640095941667757695107147594626968722953678116459540844774014047617293542343049141930449397330257503949543198981094384276907582657535853029282280936751985451917692693394002377776439266945044202704603145165147343558422028402072273721148173613744570686403291852428396525719226293028994715745685760414670796614464632298414129968199088490347429335595558500547435449745657303581818217805146724026440533605743359492897284834356380032946301786023649365820179311864631981316624810166327686090888181693940548749384417761424357197321015857003864067698075007158667539605613731911259850566666008799975812516705130446748367210715255232509748443139333202037861931125575215309996820391480183845159703852272745778004924065154075177634705337295983897558799144629952296567504169146699180414144949237446319706244076008298476407172605696398598426950460920893225048791260888514399818500916606014157490690243297715678448675198571338652965436925739360136335149137420376429791441192372443978005883939211633594341846583199721400960283246482557158266684368572810537509036834677137555320496683898101709073754575353683346432886596653407298988073571843132877559571131151291801500701067896436908738301642536672215518049834174035110736971251515084112835799996438828882791269584657014811819920821673976890336488290202535545360476837952177020203776461767292740728200057086173098785807893212043210806786444582213375621545652699034574242173283910352470250490138305444507802399095590089083596641768740704894423295764944751114953630797809947587237735084805615457601417249234130232777768292922827825022336821407561220477710591152650237459058554855354570940267798104613157854462033488000787539611839268474586592953408028774077936880226978829570453706380744007951829059652522576694936107273568091372210564654540365884959580428869390918045301728891985022022437028310184131059622549477283649667007094929818467494616985188757706222605780764238417596413693285314444258040223969297113813166076861031258743462157352518232068515338690073620028105369756236058692551459835451133586382104108521205143168010666957778143550194707762631368442965612548715469682857875521558957403660863524880136214592325573127222077643818611841058072280592953377263025536477914243418593571378422672295489600496105194365130816064198950339818088046359187017942391708879187277248700498857627603831153490579516199714547899357813846246690337016183734275164169455201842111129059899921694124779494779142044227389120758037554610013128294312200955747209883711455742023484308723094057858913043858864325951121177566664389468672685427308890150966965696853421741903440382197828759828539472287884783710025810059398982026462263043275479661082129592313634838268713620779895515787842127245234238450854119401605939831342365664779086139575241032127687980633196743465229843745718268516705003773973542654362691841300619147277656726231258266389075122467844246908692075827486503208019752076360126909712925781714657187454864906611191064368463598798558424544778842799322433834538434532040094743897945444143619555851149506571623693426362023278925856446395836573030782464984133451399343454443421256228981209600625496426039674858408813057026776098985656830517187855857960733855228945895783669470391910316523374181102193265214309270102430527350274138405293089640230082259169509650323358674439850041930574614104482149683972737484072903350045454598549893838544454262380337083591414994064535404118738789252364445888541334159479556710678890746805796774346094647017618097920035792459887105464444876427260250603756416604639522752072101529374216078084533021350521229467313272718021417446147152265733504139680950746680207721163194449598923310815501573480592817934878577457296596490076726826513992087255853190377983845118536646131334532671322298458334795456601790238072118846915280212690190802128268985031199533385309525440574012079950499467285154892012631440812250264922164759652750466051073399420409426086392780284861175289504280472702598502761963328467540336378970231982594035526128800454860562888856523719058710045764386731847943166461835796593777006943335955688221528234990196560201871930857089635496054246162695656603666770596931546638039993090484614136800110901460655878808997644882540286318769947971719524260612599224609338577119451205572637248219993398788909436453131323520770440198822079676738718768116175428060188460520384344956569279471595885622584453298476463719830552560473279548087085377637044154067045666718598660455137065375763103332950015603970768597345650585389856343937635599826511470470082136117477752351946037881930447635855852250373764894336913080862494145825267696710692609446172117912227750858521191404143621566043161440087316843596078753116618113249163550230751291988606296971785699405711581528476051498435867614061280019805417620308923540653170756061105970836989676200696976772735340553612549569032029630662219728498654716918512890882221525274595963988253682610139530175806991271888285814086975406033968786721816757365053198284738953223077427168948183668718828510036308060110508881920582495446503205295210799280012203950898421452292265062774151938323039401839919146564836036566809002149666388021548543701144960068928612450611506923657251671933797772285653786746313051315483788852504006715436372851881237799095771424118202117830913231083753564959468643623093576605568474863951477826411040644573581928140245119528398332570605455955444926761332026937845350534263800111714406141767141427616617353954719841368741734222552801157418468541139145349510149755505342179631397936935069906191010325395303212188418382915177181296537090028730815431797161807767449082022375818960932194821984449202782141281885230990520681659379501080170861038337216023977955806124268766452678167227803459119883832266302370731969892221203119821523753998925241719878843771671925052752175431490049838698154082750771318635067071805862343560790537762417926880266709082482646277635765315874312234089082464940608966684889865272005273873140275528931690913920947663009594217702197771058801016877679907810650110700715414959699899361129120125199253179301782352839025215203950907230886107957373360519858411809003162149110769307960433595904571532011591304451249464312598112648761985499294799075837778246282707449172941168338094632738866699569664549025954613847970044657931160855022373618344462204018402446513938525829782428672766068270336246458148908633160636975072070209519180474884650768587135539423984566815134933635520070226439258956446855259027204778260504922515460068677034466206144688025246125173986886400222534686587350051134759956203625518112620203414312636709320218190632516617863371449851419745474725506264778992929975510930560829788609982254231924355443112920285349038560238860094566877338230973825483231406300226962582392197279142804686685003110539036982019724642088900927176544963480365760951179842529721713435512791769061175984893410860808051667698426781130380685691471557312288790462399652462967428788661504440317659554057295740191733027571934753144483075895410956003515243988066689554512292056750126353493571058357181483252868649792651610682524304437312845007316674959320959105244786456028509630821499163661094755220571440377509595950938656600455300978770571457629204886328085404328150947371057643318523282252901704416944752929309732283754358916997534755335723564396957195787839887876921869156496152623491300849201648491149389309224226193711229150679994083120491122124111580716001647211043109653472047821436053521315022194528210963505982445142950790140177677803278023371819933433366041022045751525992869178814053651101949584257095052518378033242729251447461536839569995540966902615183152021787017519671653594354857889376904907563863236749053513829927268457477159773335685895241813145900823328136275408126445925013804446028981547939199691645483532295744672676134206635397284446723655585341794090371848229706189378292778398155518185235007042953873898751677577501453300700617914140172322812765943356268432889274796184476241180125504736921387175939402124752248431227837773666365246423926414001932886147649632289086110511159296568972307478290707559205951782063083761320791358291474146140948493723940656657041026306207249367045929575313493874855336520183872118591030207212400018136772580762354747637975493142024525635167010387620044378995896136630461030115304677272576744388820664579259824497246580736804424232068248002231011836655180893213294723469600180112080973844656984542356041008861765074917744345086778298873324533687497595129076124049744863293595350722686017769038702927813545366735048046745212263182616695739142571278121454106655763610757801207224644097387719611226615655317314924363095100913113313528013774981984995375546959227923250854140619325627146476207116346654185353268283489805572944923011385380885802184500664149479361146752778790169125317439385450840147379046158651477433943472845563347082556504595162451959653118618051593995428211087429861594703605800595948461669822060518120939077752403682202315510199851495784928193679138740261125895493005129328678593295080490378982905080793288717052286535416627768742923614564531342777966755371753152958359586022118761729760055052874050664846801680311179513139864885801909500740668452983351272558378129620494714487024339898536968673563306145502131326259015150923154835419947362328009713503837282981161139717673557890065239688427690813482275833819512024999186690224188386487067517907307704471568244617042866732205592893780654574160476138197950826636709555583230818496007351033209812688372022270970331466656566604387439722912620586778243468685988733389941751435113073575252754346322625312059193455242106563824398845999611485652778678189439922957327321989503139913116434592126007605565522406011185856264802298345850467021752195136399760771892288750739964757773395076156202856450055309805433053996957195730123137769786592733705337587263061066488680615846730668025781574240382190760098420637595990692220948935068482591987597600037418787015623499087413022813794513180952613982150680444304568733779875316696549444766696889104471694625338074907172881513688273821863602906809684235029889383530719620435001100919331796739606640750278873967697395317802435642191199460286331954352749390136845318297177878435621988954316859986609651807760295617679915884211216979768646702948661481680792647674698710413971505223377543524790198130000283438457219090017182222094228757621621919196082186632568424086711173996809244337259368396140688438311948455070797506267785752193867025459691135875729268317218795057135435431320461639351823464212779302239922454207596188449668924559309560368698454096355218423276841347422298191873008997974831411130040130409789068172613548291836533699346638277351657865826457015017175883954111058630095622365506261840145300957250417610417379434666797513122754597251700143964280680273324719728098857931051853640570216353061957418150959508057365650971576917012118159483355439376960508730153908366754622622012292318526195707648592551609476566395764298391585206987293426927384515714405991100380703323264464715621564640014867976706635081850327679095714927753817858045235646624190541876762481092864791256502220104468705989105450006785186481604759201802899792981996484659987795432220995561709724387753674899507333065976040104369828204602321762030025795670511478987782806218878739433148167643081289652090838109171006338353788495313756450250135347824309819795898790412231725633966612367286438346751181406011574786136771968254080579759360242506442244994431313343351875837003816282164019914329078683404477111659917426873767504175480290808249231220511500544264379993239773685267852741263221166511829087764944258670189145601003776927477678214072554818495795838169147960065816682229945480135865482426324345639958170508386068062252337224190559486034873571987786725883047774830054057105286518531613906014252788588061804234929179487188126912954855399809034614585921822681749554043193307412145671054839055475594072643613950774685138932975092500142929190264339652975922063937644862585702593819936090251632314080236159386076449197935307018915258758529445375956115716848889464570760495738097090163984270975386761925371181014820536842399016829376643581680263441198668144676726217791780121743084811222202023701713775093685585580167414795136271568826038122802499315899803613783744142606340595036695807462743661563010267333826578961704766450658928934081780901323441812555744018399626383064976229916522573456008221640066595476115484600677883617885701143817450001463926161656151301983946245926330259228205373316084387263472633901953866903150843567977030963396959768082480584234760748459440145425592421353809546482422798950475386518046097011097458077139272868319589101943065422603409498518702533881291671569301443074424500984232791603403920425308214809102652258689766549985223207068109692121018089305221042243392535146255724365810614011354034365560140415428873290205314928666302291730750238250719682733020944045125799334122536410382212360457496076720289278728496432529786006135521340875091238751009179926653656071244875942312315274373603553030201171142368086332661037808056392831928374610837125099210649697359767938768728223738259722518598013841047588083846384353481521309095594105923877361773332825955338585992856569637953293007176903463220688012223678347799733225339073728616955102930397393769869563743554538384197642376715764766012362773165020160274056989334119731882312368876600730882431612731579266823730308259713429652522468308252861726202711456797948500816605005509333391616100800734122961750692380766336880936568417694822515166749263691107223436982644547105072912055064772080180356875755855221148127060497769765552373339486315474703734528414204305846026056352417429284134850345312959563954633730465580031664573868631504499216169423358643886777316090645047689743390269949439735342307735874168415376672804501593047992736051983403893429143598403330334748085715731142088778123908671765703354394766763806808375345111677634174590903285566366453073213013565728284113796536375440219532951901884109581129961957488753132154526076455774378273691722471448080575285042239927379063701980872179965308059924321542818875827017675270562279545196998813665270393233572538063707029004501585766863401881003305797347600637831586125207049778328138526467744023596133929243598833874039168798631941953325781151825923753615320521395357670821088514335673808427766554894692165430987002066629622785467034915257414329011028423068747526667127595944659796655546298278817596116171090967460455608897555109692411413343979366652268457228912973079316427016377633219460179390864324976041730428955177742122164851623718214408438989830049712525094757487360739525776928369534145695342588183826220107845510576023549794162369435990510911014612164845763024173010213990464858704271160985515919546185147301645469869775892560231966652039960612304393838816838936146499159155519758393694373231253345117190528335158078497987692080756440689470078673751369718993447747454627586936207276158375049301931987468054020688549244613217474379541950186973545419849773627505939326792632359975732462182390985137470200992011388769377514384932521453397097213081524280102250932845947256319259137183936285957778248702244488926500661757158341470446660458194364361446772627589290109920929509521192495525671729302526419540560985713352116855499479626014773615728328782922722763358588529033147185947214752429306200714505256674772448507934446607279320379678853403469775537606036473234508052142348572698908545768153141119146954443087545007638739110288837459927478354956227414716560574057014122906942075869255299172927830278836954376717678124525711459030333319443335603015190393479200404195376540275660375908606501303031186350913888437327699516800466662119679291132375084600050314153829148110223916424503631644392603933247244924559322020706558122395684383459136400411768757133468638982578538882444772063614853408329451691566587604366821346882939043749023330451957247343087874739919475752218251085793295302124299049145427000764873537020761360272413635417046892797384727887402059384134298893797824835179342661798868509724772656665717087565563756045530687245319925328780215006208858538328573064822533380633842085655737326997276291115982850863430138572433114401343357708659908643219091889375570812848824786801816524746337154985961322459256857231948165394889990828202968379207793939741250190444751547003705502486237168604584777636043754776331101360737400864468308678137938285118126373992577785992678117769090381939963643650272989670721225452913269445463649957632935705718610556186641905876443270223491969733177923626203065137973109862706822153269312604563662129633290926304303037091635348942069349934463444483908327492321375741353626602864022004287131532445386127066166443734172018168889236850069098394331967895991647578648078910307664495320361705540282248352304340154434663542511381527466745951973941146559788223170775219573815518365016190029312105696749631445656108866078264027866063668818220591719452805095113222745282124768290938539854577392570788212141195977859324749806439503256145796434058520171764579691934569044156277894130273353265477725168840979431323733315251715007845252855097700552401024927289902935538585321064576750375011690864593152030262110004442542649720392262360407024895885178265006573409450158449239713652266506985723052427915479801020673307642541426369837732357206516917852703299787850538935613677083421333919783259974091831838816893299923160694891701037571538152279725750172654267860203066953326525077919479646095376834508619037934823916951122374843484976817472549743861745404059983652182144738728044510971967524068990756878478658288873799496372458154887271652746079503007424361338267557368527068041884348074722778421892932989173665746623587583311368255191292654923538526537162993303279614209168828258265042601901133810549342094344350323145541587003843276810258845152832522599262518982207528033312273278936302613134141255663628713603324669274008170553545255036636244778835251631514620199482224676613323142191803127416411399515075368920421638864654837736024647567986714147902497819978410211596328287821495156158815662964495894182849766389409043375968443044259397095746977528639884507387414631886424669937355630575428352685516350751704371553593122680905702950807978720867322562996645915755305047685274994981571665987008635447166201238971445256174385814107734691621216338685039762913424557312011753074918828738589003935023706968638349214157369329641966271886303206522066100663884772768820294605285769005139421052565531979656849998236668654895359289164585278365787081115854382887241590408675805368743721614611616469252140650910368895771881586612007538031681498561147618519037841756467312041867009726184309387970428370006301592206865566766668380300216410408032606519908042988359172625935161169925428356162158254370720403497527812965425564638556661014072530816197924267733063660298284106470854832880177248789976353223655421562494222747611559168345261565869389743078924839499884317943094383426137697539530977696488078186630151412885791255882814282528752405370377548286594948286840726226336619443166662691760007493122821630203294192698093191348945145502875891540475563059017262916288803140483372142460521699990254342108998055311479202944060893304753189237348454190058982322775184898958363451025898857176815727304119365995729136483865465595601172095703877513186550628146575839696886795198256335236866267341733714775999209878752658071320498118094736655482576929231534526499239355803602364168779864126454293678207820928606325277220911412677641692243604372304909826794756558607818112908905290890231224461081665062338657348065613818219764770846388677180146787367991481404729847737403997332111736700485101222202907778214867089621499727896818950489856003340653387429993295532611166015514179619407044909327039320504830235358870003664098955626969177914651251912086335852566321486331048997410105880370810017155211513577406537734688410218897674751258506081197295521409038445831677742461381483313522152035833289889599243446302240509387710541701079599993339716463536055761672298233285164320942258791914512623469811453187732348672773826299221806059875580158749634384978568069209515723929773464767784069980212789016733425424767984485784886890255093051654515041323621292940574875040119835674036339524119854501151613793631818170972818002372853881127965302754917237973203675255704416568315823542519256686060735270028599546455771951665393661393576645603993509145852334099671564665825845834555640363944096255250113550963036918902586018261100204367094052068706716935462857448502935830749371083830578162298895423196389349105500098313002166978017087356554108126884978915508829745115862964992073694931591614218600735445505336784517763719596331883048121228491148920655826927947308983683310842490027395450376454363532979916391985264184584027257843420714871003636997589758744731639414023902090267576437194730873071632026150412049914516739111387405780299730517914293338471495276398431759634362778611515265147217577514542897759101512781114711765381435504566060514868534129920998732142915546845741637441338587764367871546125170066157577298544975018902142260341165058312678766999859826395201710399661329604659263241708693624921423366345897994963204603928076322689509867033671708546203014681637367551499405793966177328760076163601674398731621441637036958078687596094606589529122209166774079766211279017401890088791415576086257154798515736249873048129389599866651803425503085054678261644459848939279465435737805109766789090439426115648797399287651564485430311651627741535760277572745055578399373466000351505914370496855057900758197928400312178292250309470532885532572452160037063820972945315417331395658848166375004820593179807067002534175738397970068811148310062798008733531587589768871806482433811380868482767624802263792434637095486199452015280782552751922412886878067394828767168849688971526388773101443691940496597678212151776461393841036266739849789624282275507535753757387003894304309800943352160472097479774396660194923767351269293038826051689313665306731704750770859596513175931822472492959927249245231795874077706313265333090664786924616866371271828668984342978346084796455239119533961721691275161848861582892124950190874732741278955779822355210753266515172964291805764059285003764807874024545544061344173921457311528552761220285711600726970047036837993745604675788576884514227169394741368377499597234764605789901033283860905633005221059530525997187221767712358648978532086155430897221126377050402110995228882224781190282402838894040550878569912250009595185191261535804193212694829993625065991503033454144665998922013073231579362195440692039858740045354351408556591619524337320817021987359658690254686504422129002974795918632881281324840133024797898400679391302578221127850100255465366318904725335587160543776168107757446413165385150817926658162417245129043090101468361441790781529602784150866778865292930898935091492848355657784180870760341733214758507348276047226765103680933808692662745960226005769175456650225368915479765818465443971919548631527323943499927387943693849589021555825322080096642021044429556150965916910998405246503133859425860648050667904210828710811986888489207398652951658818138813724368773471622411308443931514750656891413663528357729269262697463172627767551299131600820914171925639692835153880735954790217831001335623804819368481632746160462050698296681892307207980751747760604374388140912751548250906759353289105964863641476565847281816336845136817114578954213541063390603109613796832067942727293809917718005564719069899375105667099751759989848138435704311948627291595856792808830378803515680732912502197350094761408450607871958969886287884654857140263785338698566746139994585463647645523501662032500280510405021082759197760273086440900097878964655171613150895322430976648556878691007888820481781797774276287255070490952796557265978267245181170872171994348731090300187714116120055569528730878573305011924056561073599191748187212894608001087263557820804355107017890561721052044172087931612173633061514103514555012079366973909942291696232949854476263215337652390346858499238807592937136469621643826132193711930046535190295188614255349941716016971917768279218689024226191188421846147990331621925954586979867682968913276462724893700626122843970867054499239088603247071270791259946291116754561441264886269063432628163486762025974446407941541556524517082575304307217419918480496689085941025155087728234698380060161582225971222100310665895200385720651512246108389469720953271963801704170239435728516624300961295498901254817085905696944394948953348437527495999133268616441537676435447919730613751134782112798001342048622662692975994396976979780439626723606341286839184952861545659768092202318901406865211862420497767553916104904409897450934503014742764307369715185318174205927201640180456550203038328259107848553570789916145662412409900672893438316844159375260287986902190519880364506451655474670676744339653482613234423384567386309661231906101663597710127075472227998729654064277118109135115362648863711482105500928785835769379943989337371280137355231990577533906665037378591035655036746525102345735025006313248454896390405712316634665463254669494987576487330292756032347141514160864874887126151438852801470789704886854725785664232209067316251156029797869789348218794787928178774472569405703432518553602547350830758989735040838596622510527915034998004185667353068653962885115692617979187110935949586702032653209693317155601970276534517574723372814225607005559910611856672530331809495788262540006758812705738423318306935207683378747800625309245255050760347792931206229781803274211749320927457118902832601371063657782505122743706882473448499320076026423697893022898108696051171694481612107506373346490683889396869949856370357937784389651581738115147049649119390623713359917658299569801660167524583302372241927844904279981579654279979143385838252782510541363036390968612294980242422690097440321789686481325585042801779021454827977409525458806457594809786659281753524867286720494615382219916922238660180834034931015055301206328349945680812667387633674267579355941029860862060427839078662717330113035555852328420825982487154838258672607669629138293734414067597838229394242057540404989925607101166793647659727173789965435111673715099746137285612544483257184722210829813437343857795188296923389494186446618205248226514857666443038792601608584195706813932076490967024527578982524355376815721711749006561980782850371104140938233220444874826543160205941617720220617301809311184611034337753811528895936652996464449720415771925794652124277245935169122223354309705783185856476862569276131983562605162734210551129772700565092069813991353242051892126012351210021909897611809982484443532648333247156510859248541324314471466487969655340289973555133782962386190946336474671998207312601449708173161783624739112563237732255660703466939505793736933003969344493967984748771406451011735174918319654656492032389942591985975100327976749209899171039562571133233922292189599412894622894505698445055663058316189211520626648894474397935032930889004157151905731570057590721154013932946205427975065688944492340500974319333066290109834153568977637840579896587779696730405031793699340945359474597725094450615960022729873284940090469248212630984565104668634478023762269611724817917005515906403473835293017607468763327187620036961284155653259272859582648222995784181930529000547152728722548145034428139259474760765503979076500524189625282746861882519097642485441532101074003177979671815332617900310705904534071184029621024664069645730622660238929929744355224750890310118621073309909069337866681950716451285798858399955593016847743205314601804567148633695688073157987057194540859813230256591790792644658353695061382922845074483080357474868459451236989644310908922957191903281763692489329347653833981685082449897145975289642788175248269448648273029888445661040406550775062100437863776306821611398216536811118628454301388257522492360737065146844349531786926823929664233776698940304279762021211731254203783883237791094041507918572327009385138053424217761032735117797453029945782216650297591617588091256376115978201317943269388045831945781747086072395474739387910099285563888251221106149004941994018333485421604391954925999584367134520696917335832276915830511781039349192890457065056090099970447456023713612968901705696689438961479178443579556693710646909175250128791543966782164986249841301187339075215069823652388853806577004807008309413291146205365113480775605948841754482435928422712216800328248303384724176004617835014818962339661632247111720299124384477927242759341929937311623153161641340240317249267911043633147752790712407265119705439074488942089081351145736750752047685095891703207277921852134075774936345696297313395857153465873838375262535461971404842635030611712919313855395832156969021245690476776376476217968575773102637155789324176710339983721190238907648726554253842021052181839849214913535555208160931826202613973635819486801107256836089340723560613498714341930551505749846493912621227894288606146670040423352203077238739407693617942925310849616658223451679842973647864763324133819507285017566875423573371194311237828656299723429376862984557049127502640077199970868931700843438173057147825760315991423884996315826678623230482363317800062311914201446139775025097803941720867590861202742239160978513889898521270821350305005079342695176830262115732329173378428015270631203281647909728772974051781114911077972074165343659261604440097080324797913341928110982514316816499378675906939032987935310644588876978077324982563995887864948162892750994275172294005691372662534473935696300908680750740028396676294013747994605899176544589376744143084162929493851426801698049225671756315824801048553636725833795214438229374425964852924171419082571475833455320936039106488547130946023841321388275111938945267860599416051969489447351145592502318177173495831819476875747712488421129440678709133271057660878666305267720225917149806024121007481360955179668326971771832639025713322383400563133478191355923561923269696967648143480248609942037764574931519075371285992044987436013767553004675429024735633233831372221185554420180452138740798626804474724997124897080125093105855761811627344309832511431015120802534462216530488571156087374114122286505224793563947722257587215047752708114964805763884325100867047729149144598858069899560627550614346139594732805964066692643285659802003711674688081896428778756649167013388395059579033403928536135857927752668951992116519729036579725656617238129690648422210712862871012346153330620243801383768514774019304999811711148265541932852757596217089460763902598547194205154708812489705810919197819238100621929251395705996939557497339931954897543084829897420681748772059461267566838468056814505830352318001253991245702483519986197255212366814936504588970817425839717265532372835361911648814448023734459128716080558130137019466034542521219920319827628994909578760844359918930347815431096183333744997999023595112342698470138965933304071734996876667105470162221544405498578398184981734463742924382509966587310104559964525988051893120274484969660437142504562736855443262380243001196466058604849442033875067015950319274038157611449213043739474384256356428453998140450981028138652361291016872019248283888597734172933837365679411199090381915597069142577140523563504746540345606091472898606845546643294420842806981482308041253822715147572524102729830608823338446463697324940574051128426835350035176426560910102390503020978743301144132313262341850720327750683968274581646597599403147350850341201118650710944914014871986950043624564374995138210509858430028742816991485237257736428472038814256970544822962114135368381196721205583788068543226152920962475393515090682117995269815002049888518094519480102393949610415025135138004774545285982561923896208530030317284120638431095395235162026388351903925487499378467826306578009969065273009579749465337409454207030657246522302318626582383044336159895031512389554296240087128333394077837066748705577656517291625888719337583216109384365638444847111887379877466764844157838605578671767075769951066419013847526979829981908176145364959737832651128954741423014487722280182281473178567984803508602012983034664256370139755375026803281068447572104750497415918236658429540719917858129065714898710037400463778223298173377456430860689059328371758007643366186273028579058014694403003199433113107801286751174902878458303417884912547694053810682095346107285355371730943924118260969013739742955030717978436572323467141167769497979663885692567026588885444607237122571170487780904418747508605674915969383920839816978077210453263198018151602832089026965525989003042071440999630187065360228200447644023584226901432752558107476011170640568630528286581747537545169723849043210776350875835013559992863789260808759255767057617911194760114102110461194837643807663102538500793067363844869298668486101646179875210318344560354032874012500578844556870298777856677878851509118160227692677665771122576904085685153977004640142030473290809494875747873794155122667940718428507712159145069561828989682132700113805219393227223712888324804244318578792779203377981738251114379555937700985127119497401963969863141141520339256197037683155287902703485021221848155314987519743268566649103372577008138051415564691578065687887580453290857505169633404432972968525310802382195027755752538574837399418340692415833166909511051237583830156320553419206393198287564715821637486153555775485105850131311153634946655284623529680674951024745882567824576134582938466980505813219049119820331832120621051374877243886210519357622489254018829685098126232739195325805729463769809787692799315181655147128595484641951472325640832926339170124741840479557152059195391420220713372568364257522944753731028672057560335818181040490553149135116318246260210419370172865157865984710791459977081983470135432962357143781436386543921283728841043899155942838470064898801904441839099434698110526480801044659619791988085515186996371013734668296490606911660912966223640494806328561203441879952659598187470914402185274285671745914719683459672085930136425322367844476734121437238483329291592929180170381858244236474493339488274974239735566984163233496213399727399265985380398531421104114656156263260968216077757546877541009118923564155594169439902919407538662127347960527341575738750419962737418784380767727078076459714700600476361058608828512217208084161195311591775722887568082483688651398708999055516141777292134835273484115426860325973527687122127602988221301570821391882979701997174493238029882023136011660132514693344530935431077086024787255656089105715658144018006365163424188587478165241331022891993388344064572395592135191480621580630639674642028135180201959332532617152089865416613952585334021349846199217819831671799425067710053211533704171769920758756335736473162808699040494864600250545991935095201368220385534302755196509283004248813642359681171217340735130682898843843138948531227693643389476401784416337591467232670648447608450241630512354338840304980502935836691280254299326356015422752291793285044300313067325284206654987015892210989240337500212157226737704620814186817333271349517081090371600329910619310059232584504146248873734694647086549046142826642887582154091080487865113721552890766784308416165238140983482754246170079942648311868294090921839967760694774408545677664287158579645340061919637975778466763831977116138500206574330139477674960899980451103380782289060518115609696850789294726315083666741393895842401516885775938887226537923868371039163967547266302731877661826283117452895510746685053603925533696043657757347340831859171270906007825293571503728175607832987670937637366633873937209922680552978732482796620325000525605857740188756440662106377039863457009120194009276386519095737474384898034224511724388264039978251271321397582920869547422947619735979489897089207243079071954923951292099350253328153354805058861269487999973015517061987362827561858213774001490368118344432024222888147517766338170209548471196875231252420284786659182807882780666932392624474463075758244736921898680021639719689898698722941905581466744009741515690315058501388272671406616974888718941793272394086219406679713423050755884765771597648879614286364409197384199282101463321037689696160257094819615094141823138239104315608975161478519890170628624133435877462404868114510505928877150399466012216439714976621226505801218987188418298616333144940260946341508886722921345998552744289124647531742531809790523742037782367961021093880415082846792753002254615545537475837848363512700593558679688120876035872342800812383026310854383007214924344125820300470090144702976404390788544523262811578587364328985404402578282890119328324644795460312508647009045281553517944566079253250038870682103756313023240124474053133807280416568950629709202494902051751082149226702601786090927281958228455697534404299325257433553030141835147663714155760918950728555878531333648411847625550725923730717563881580006988565532965005074514748088268707188917480533585892546500073028541945938102821293316243782086504957206411642428221795819799952654388926291058685887906034116563727472103766068101808779580410166498607930545337275965554416767075893594356569482884287012746556892325847543204353270603188727279877598902029929435358255948040586310649050211740765480110779616832807593950465094561968889120873915745605588471965841752789249428811746489492041186509974057014714913449348473941700050665793094367453638947218223258106552944932378564441029015220147378750442729567502412832812851967956831310507357529068235320433024168970536901200200845262014994613853018229884762416174222066892873785882984435340991354639376164755052333925956807511909771026305302098914063274065646263518938399152171812003326988953991919816922822390338566857647752779580608095652188552605489157951077447518519865157230436610870348976749720154818672116263819490605772104731621000740711414556310968939061344010383571014486781257475539286809634912747611824840940098711706046597990552589133713390630126296646224103478651044046468702111345511246151342070630151651390814264331170938328918250338095083544999660599700793389630536108444621311494488752146597720745468913412789812514614586361409070606955199152239736813017816601305762239491608882531851153424765604942850719940122006528618861783473503848128065953384489924393613132012200805226029368021071169861800901561800487538605705797325234202789333516632875929727528171796481296211805443466767936197721460025959812093399511928662215309644966921337495607667178102409752537609079534346627796807595884333727648034418150978295890945097809826621539203000025001811793185632756082886171789535457961924349668642120161362653615471899881542738267931729590139452498209334485260874549781729677957983939391761176640640895767172393483033109941926548909719102688005043713042542503723914150266372087557716823982013026179137610234591838110979348356137572916881208194276364021082719120466422126398462405036281337515719887290186491387660045567946241017499203170104129791907020542388794693460103108606099699809002363652082433241874425541410718765784468784948618257947017742498737006546557812004213735708130123651984321505788226888978427750941676004843632096491181068479631296828322208719820672978900661444630994461688884325872468767876133213226877793887278015255157486512760625509323809500148697851250795370943210480758346517929187864807858639152090406593096644134749400506375490786379148940584297594631606114160281972745724471423822020786842698380815107785128711572391576770711190696891987869543588185290968135662904605737121863233442375638307853477772816049647860805065739580149080942707762278126506145623599298754720578484208387519942536052232784110810899833298453053152894601553595363763032894802517136709356976434346308199783797379038195608872837004712297844566548645644420129748559742574565678402590420312175479601374656474073457565453457501890752838590853000862024179361411388775276443546072459884509815714598911223277205856239432247352961319458670075655405625877674318377971913164070945758049110305434788551563277154046893623550437666456436842762682164461275987054718076208163713511384080712328159435360548837151075248790014380089394926386147206722217092950979841172078027960629752999871551214691799980791705221437270351160946992899999072616734362732118539976001197878636396833300582753481165844636152328068234142768771823002053946293739974289990758257729375092307355768483532645100002668465540068761449758053566867706492401749094273417786474414078236613309022743797683861271924636602390484928917126148555093618923823959000174218729373862708552460323599109827816908533804217431487371460524290853115826761778461537608900998358105253948428887054346032345763817340851537353863316598220859953934380922610198357927290640805352802605708912726312976361925733422607145231701450051970606445249059996229576423746666603090193387216277981430270358063854196353240971525563885267006419812750333599417969900643583861435332887980015733069868536264345024450989144222982202627011303167121156050215998927431078488463340530766505578752410061803094082151532067906773775214239786915893653079558796540639728970448582490986007292213373633297947090714169281576589490930776986732126676780533048798463266949300532954989486958076617263332115630514836583996028764376889734406149096854275327797393717624713455000396225401884005855357085096853848308852992175234970273033236628912681805757520211546900495672828528264563222562331190477325438004059010252177962534900947761180182541672905980597132981352323908024816229709929607261655422563950901160492332782202892116430644125400503940572479077222903945547858440905711057187009878628859848949986144280580012799638605465505510803698934982925486801167845660593188165641566083652720111272885184471230681593732463430933392121730413720161092671468225245067683748322772981921900528630276322092757210962288543546414694717084739462423039144709273769368670732087404856329601248224358967786911188781414564727704325642480191922947192135618234721391345648584308610261845064349257584778158148342833570268737119273611143782501917386614364413241183797139512323928899340008772089628026272624604119511407846440087571170604727631458783237665737425350346283186826104076611877207913567522818829763909716934266057064756559295494168402314862475723441628653550436361988674792888629379306605912285440834896198531186302942704497739204005317704026517375213929239592334148052068658976152985996696357934551071267298048237035688863066439839924197148150395433750731027310853087113620435884189420679623206792426863033426022192417758256798908233788587160764132291273520717927460734557885840272019787910398920015884529778643819279291032070808475860062258406507966833153295559590166174071198596923446021054001109781078178156241703491683076626346397025331206832922012040923826589481732911956743881982750542156866483256422104681046296244270103082437840218337016881985730679540069080982611502176031033727674601809596066189813779831510103733773877230522002970981592364270176897775553070408394342088720909176398108201736499153133128805227211161610079322528639108672000063178505672639325385337859875119411247616423934049782345846675044119043379369112914277074301686028729789344605729019667018025465018956625244872900838710173670841787812014836245177470298723984101776036431646788552029604274852973259740525219475482647382598688821854899733702567537568643061372618152658652404694588049574669307582835673693988245265069276262925671225290707090117578729522406003507588893685918894902099224752866681838684333829723733689095328701641415010268034114854830406436913858458341692711537400677237340236309629414629270358436838693964405115637055127557534685876671027038393012320596134223658908092128720743333968510006575606948026029067235026974670479038783556806093059566143633135160895108614444645544214669631902898490356959416527778529905723774046013040780782585637792257688619564373752762103137794938965209369720408258882230372045007903066843353677011722318689283030937314252316949854519596376716285575546361816756667727212203776710804656999510774409156576201110036607605880353237515216966829807247082620636493803961191311854300786847604913596476688070336081989996352250552936715526791156369881428666452027512653964479223039747228175359589801066968836162509580432957317743963042017136918849115170687016689061676297893848911073490021809696026891374921637753053019075786838218612096581644053753809453416590806761011408648681807370123126660373128179239353309436746129121645749912113051568037653340149828375709433900516882286104906384940166591694763482395392381772722655387594319270373603155361096364774428636491433001978113052720085319385789183235749915599295289694129546663421892139341382723573348303200881212477053629343506674432253311909168914827040667171673205685853679492619964934636162296510215311941072009960736454563197362469327017946946925994697026536769165031034217983984711917825271382688275110259051462164413704107015743400979021323004537678988130528374149775480102028740146851417160887050552113534293344828299358547042827300276250277692256341931530154752629243645840215358233724827655545364493053744721925698692399405268498851850966418423018145191022808734462586832998133394072913578472574120100851917666471463761340921087832991496375194354770481072139893555201713723902218231744435108465540662432310081664060697657131078575192362421187075839198764781398415503502593518826771218838100596881500544400733331014351547458226160880843962993698178227871143044957935838317181255920348560230044673930220294241578554921869378609793123724501368464618579570084608642328342734445611483630953717710368052611392571692144039433434222662808362692431055532403863414688911115129612782539495948068672200369353489648152923952914351957599032366305446078053144071311780242851861633186553110211499091096153558209621240545948163171976321050863033580189947529556462950106888027623732080949944685315049812364320272009149975479727122848865076225594021538058190836170289698024780918443680236690131309435233064105451937230642231216039956826594215456483967213948124713879411914034189569680518137534412476941859330863043228820479006259487121296195176469157821564587633426443450584739579646915802740647572962479349808512007573894079997992538179251453578427583822555323539777141111413285006755253369024841541826166311687107282621052762198819527160281301766708188625765325426459917726101108765182039251897173071332101502318496350386064128503037896826496027040071599037569307326690371995629971154587512831633684025415484337757565716518052937081183942789954246407099028396429784696930904147590951722844581373959080025863563842767959173706005999234497555481139007508367022827024073418549263479640004105872996188951357162343213625830863136252031161309193379007534086497910222301339989870963353596126117134345382693648172902006203582116414671367232881174533227828683912765727403058270779666077901952777770859303395200361907378159225737662594431978013433636153204993152394599693720558898302762823901713029100654178271403967128706801979398751418645015862617165884543780424034432363743172154102880576849477212824849633646841294930412411072563370061057437239634738082058209260782371295500064901307006408020347045905743210050557698172877403836283375788305566262573110565646930461612707610856096010883034552381640666841261595397851522767342336693907204914478022994524346111039261957304534204298572784897658377625440350508407996577782397962562306932747740424676230960863571153836569114849392032219865485675535605583696100214449341540546491474614339994832656754340867266721553051072863258267775476926507150084724424091416389497624202542179675732605909961598720506058252609535671414638299289142879810565423966351745770032154509560198139590506877409432106121933083935053150159277453603663187741038530437746861333489855874992565895588230249259603314810995680596004693107516427482406879768559978518413965816690752390081610977858484947786981707486353985147325303616736134911130895023103423689776398828419141030295554919282135104504851466787638541876584387549510035679584277425897387155455132817760804122794053745153212326084435615963678007805690620315181659827276999185744219964410489648903318805849157508289699629688519044187085906762856065132980936804259958096726998539446469168915513906022837648898697263257779668395284083228523955695333535200841584052137906149140207065877195485159673400327533658536984082704718428739194598903890443252973221550861438190401508611183080594696105656548443871268130463819414410535341264478806972970665571871519535100078076734027854552918248336187059808528508352213535850298213388109630381621611229869456039715789438187633573793835263634675008159282704248927604960331817715288562679108095018728585324437087568739349345538312575865268094595152510794721611916903994376672294865869404815355066504281026244866631706821286671337027035465157015129718372027477110388840996399891586080340352129685232906675160858269123071050296014627087100522641277114637839377366324415689687024233092593983922976952053146905893394606702542294793483320043799554404324775617352558904044330004365938424339410046323250531823619382787639769006264161201052405921151615674244069467076174608665455719007837931857328378277246692744410673235100913698557282415902712702542522856003611689831236182759078460517456551882952762025270662624909593342753665728196126967133301256944177819231950020094205567965097031297724840493640345400344682621962648817937109707204462387954111145609425206578316721735306453472762318850438277697992879887774879089397528065343472023831024477080869222839203153215631635507385782875161234330606505166815996669334336089559719045193872543574926938199792268271652018959137937151277264330466421836569846668078548460736467347620117381058274429905852705454755601554496025140178524060585379150043853165206417192122646736096076316890838456093274040626915530242998934220993380594824110103214754633204922554656043449933411603818002584256580033336647009253980752347728956925318452472472220746697608517148372198871091862873414586013039587257279875170191271032214488771671343643230071482299677580667073841724505481247123325798528591159557378003799703562113129979392270778540088671153055908462307379630531782357084120898283873317001746251366495646929756535165192643165962376763456160806017643698909952498633754603623025572672919568808786981341463442079847845016439293946503298759924715995415813451039975461940945259216907493328018169430605541467121263158118536392051986086346821682283784417339687580734405954818738646560965762345184239749436785313670325118081147370255409140591181681261456460493709842773430944842066628994190881596858113718728598323635053435690021464577407903610897901776051603755084277106651532267286911225763500612597171219993326127450500193431187516291926342519319171581630731895012951305272135261624365562799418604041996300342251804173220001992568873737302186578379642603439015380041674795579802372689741092764519673728776348530338379211788764486796002160147846532822765766394718398750521709450366792293966942327311622504532817436466827386276908050865446732219962817562934169706302084053500557022632824566536064087693098739926247085576002969348957202029886840936031956097647998334883598318080036051748769085177510118876688335741209582410008830939352737189258532895898876442886837306249963846170084152786308726953405825408585624701167982237278091311813140707100250903398368641362142761968585075331768216809441147587055051992859588925212032780854233114883003764240523040210908005682661205879687530094298801225791276079132289743773121867358404204348932376635794724910996303679855964130139437725269718218774783527595869563810365248635317807534257150354867570694932257662894172245081474681512780764452367161517845415023896463507018432107318570670629949639832389646714813789787373055196293283523821377632086331879650900215658486802284604295244037125765140350938689681814181965811768152888278124565110533203464199172970739813629595909531773459666703587167761987428352875497136376661111325120046220786680851565578307816777469780970450060278083338155517720474487779025313570662993226824279790563239828624751292020409936319344266176581879567199921053120712257192043192940869680338021238340969474065666684747940023841699703801232148413855678836882196074328825592245062565970546356338778354482388831883535675991278708549069790991824898676943395015213945786964053524252223085840930721181143323457742153623414174788580956975456630937048814236921073090018436655581723355530136724358500322588785214018042815752019105638175257743927516861024053471940938927254157986562488781471744914938017121915540911684986164435339048318158872609959088689622763753803384167303740963216250064499345994066357439034094178586640721553603283379611081675173607731269980822052888955343764043834577110528928086336598746793110723815033396583802505586254546058972099250283434935546684802501232495095652692086944463330417349947315985036920134274275857748485942902631925236912073509746287049175509233949935735091203573048643954871091830879788199389388127883582265178392988835456319696303059974373409781510978468470556210446945331267146482399222171301669674549679941037392732658176539373051650958382619790745273712462627986864442871568836384664950594058351586111728986308233494122900415821255791781376900483328716910851148710733161428432613381230080708287806341197709740298898986432595897178262393093258593679460714114799764138595847344985533894766687839494739066431756092535892245328530544977756596874777172475487278318636062273288971174750022626753831312965045892290429139538668871002541144700073249676640418428922038658773881972118911214022893014525910213941510785385038500276366153995223443602670746625220844556371043929949705428335272750413974557971230678567625912543984270703052832087732219234516425972770289157734881583805653376560771079831132425352512882846806629310563985667056087752568181940468752658281277439264058083173532772947240258215818765003516031938934530719094506236375868732415553459236018794534747913515186360359950445951263336171184118173474188010639207743834686597786712215021929665893407194228962507456019568533408991008639439801375764993475766951313411944479697477666543991306669476361666018395555645170572343201266456959635418116535551593909898779524491777537792139592501806441763055895615873533415610365777487222004353749539377404933509547777782002336050288148563655743716151265369147956997020868876606924492890837720896720715259001756562074056063006331945038366715527645986944260348836068575053616437337324023639774082290395541676520787485519511209952372546214690597510088697386860415074817496805780586693948583345651847644636594993735972776267390691837460526626098456865966560666906292533043323700176477143353742267358572632394274704980102713168069063301530009260572822799614830795512006363054629170260548577989274649471410033334728273224056709309964018877494077282898962112172381766180720489436167754607603588663495157333597578111244550087135981499675835002491730040984076244227105779968303732295782784293670765277117206140030099708963538762080559380552864854278775271701856340564469077613747268068985250367358292242429944063304251953748924377589357375395059521036969141144855464232093148726740788304392496841612530039415039750566547962194862744277819190823116929215274000216697117742189593086227171804504610178370321399819993339736689102257932762012466783410693981834998875195059839844046960273972561001483709391018106826326410421934033091079888028758699848395805336120719998010458361793412817813000193388321901537744714080454379760616103464487865669832634473213563341309040481870068588317146028241451906792383218170983489012733700411066719365904965597334611490747360067361156075729344856786250236952493040154728839699482765637717787749934030610742480489239315662128168667127810375595467600271328745584226065578734523433253008090332112231332162066275693198780784603627359561417679700495763640816405897571919910537388687297908629649151653825350541836931721628243947566686019298070810324985681308342523691282046468180334436487890910045841127611582454996284744873241202381163030308274279670860682856328719986906769871871755611683072086421641749530507966928989533016369244847060082978904545838644281310385244541068258506901150547928175813475572230200865825896444957620406150592867411969329428186222766610502110143756684824662264069004059557435619110524013623957197412408475401035517928566839637671585031004408562584705791483563360357160235396492763269998644100893232496758572669655849122442940067633407497567079474257330595445724213758159466797291534157698810682262730844400514609937397706075403259494354883156917302365573597845842752920238949093916098343121021350593794341675909266285668960322182995381346298930921081877938081983880049542362354388106982522505875862414676039399322292744858904739039042342025928283402617904610019090988566820543630970452206883664274926283719384182993379310119359883177793957918985409826226776085494832723878628698466479731497809595696365340692537726822759733145353921213800348660722643004973118377004015662007909739822860009898869217927256082367728287242267500601002185738101504356089281543651078682909763544619716045881663865564838332387828414323036716622995805201333118670259632768720812281190595443977794715327865186942589803515562728148367694086084814334509895893548720374738362539768849857901184296156593101107332118182037446241736126258259030750353717963208664946910748059926426010501629629191667423663394386317703930080386512926773259883188046125027203815376070049702367449948975724947852647672493491763710380055803933290364857612826939269725561442531140392743663197065551647140656627382497051562328564779187901573972211971959161040923057613481835917869268510769175169360006016136394975797939394800397205836305154335599222519987583056469098409121902036074104741061934200731020282129145329421592838686614208409848227958323600229054586585987829470906073733613247637006933110624734298039359592938286444393169084523750016337339648154597179789532047891827098759663560453745931862293992637913903666403429941642219819965028916893563092095070976102067501476541380239610641722221558831311154441902894422751251356961900029699351386862154793536619260022709954917750133556095645542874961107751834066122303679005535779819468669155269303408431354967978998113605013220462151102819849136161514153873088430133620838314518460808020835902047244887735244434475323741083400344172272167175377581437974900915501493686358279409814317277616569458198098630701863093377440713253806995369758131486472061684776093115283061699846090523224028812401316172265617690440114478902864810275326714558490455214429693615088358580641143219886708288261415234862317017443695832274576577072855816478084851375753049111897553300392778750443220413648446194602229739315995747917572634455717630464160110984143955087961061999892526735726464819113232066957453789224492203427120757740608128334775302801767651407999596986854284857408292460484364342949864509068458176438386449436706282568944765829074797721165596850756328493452138814249754425138936101817996960651212534606344867733569608802407482047352043793409615449589938618497318132724833340654796474436442985404660137211549538033309881269069220857731174337496209139933839142043361851762138767937815907760261415725108720445400900017367063196497342506465198537425684477429075988342442035135988624925055195938956291995279894073281494839319641624615320799401195134712770610205235103903581786893774325409311883526526653895248308545741851989130627212291388198185460324325372858908782360927362466570579004989527956844882624014026771080890074320200170211562028626444316602792029119011286490618505323992564505088817365710516314420233662809576403523816757323490500985008615307269849511458000425109075479370203776332454820899161751311074877543932010232784292970265597288581933469262708639946414084804243728832123364284159518902147214780857838213655867650650312586129458742959001479921791748340755556781559929745422802581114176068698081417716879893916102035135545423963376575259219042383714513756890866355916268573473089869743259071678385568431241879572159761944751161306800157319644761528196646542897841653387386496093836415262592549963993055495203520558168731472625482983250319302550213377927986401091004934829670796828311416490837104631104510030839378682032751499857666071269372466498117031888121793667363079469839434156579215701854693814109933887999465160038978810524612628057803050777732783044571296892691877322489571578835620867141778869550618080291962335475720232627912157883227946825769066194931745361166121571594469810236072007081900464655659804063420661454242758056759090982348677725189860120702413679482975928047249321687633286368043014190716311551704810261671185946930386063183326960496666058298102344767816700726277231663689413224264461757036000253264794856545557524922106918587546321470486258502863036745322935890208337682760487113344162684909160180428172388192003737835395361665708152523184389491019162192447612949268078299705937113947752827757223997234389775276885197883324010160092019140734683642748229586510562335135447614930055347311349070818610210668903116500678372863041797729872926697604980279816099725902962590756303406128230627055572528738674272590719363925334867901255021786608965752916366708579534452493537560457217087410012762088297098729222090490432005968519131164163351776417336066977893983398253959139078677461714266524568465563990626514034137516120321829651067796906847284457696084015223941490554359499699354585523669057335843939910207935827099455469473309897097579417391574279636393454222463076121662805497390997064807253946096656655409571578173714108601731729565129911428696441654157443117681003614144728299221474589672665725466628218640003046662371110917068630012876610290401878654504679631532404270750496896172892761670499471315878986997044013927135023556669036126353181071166766558061182558962738158222788007352970962781773133842111645593883075545891811714643886142039822903943248995038287585297157469432090885587069880003594610925924856024617223870129946027259600203490062773307703304925394522402875024600892925542025173146663804040746453624556654586209665414666924800328094351945673347685009955532039981191209110498441913795233974728130695356267980579618906404905897831123405854327078825030473645362338283060819428735018501023794521494186939899613278835041166772250725582474698651523783183891690126278741718833690085124985339012845739717024238723927614159789178838412866610749701587002586632046615378533554291721774712401137611796216098958380936175020945052290430462199503506959506236720230235762783939952717449690343859643378407109670506316335547648336048889801720323242827139183048312535439831407865694865940694336881620464227113083222018699209000087024112815202198997879561786512051398921440398894310612543005675206158188513370849336144174455638556925057252376558170312343003336706195090544021063520897617189277915886497544072719714172053550204432207441856223646914121659278906443689138589024983082967844025512386787856366317432905381736830529085048845224524554229433725033255370778129189592475292617747418189851282729365160739401895045236220866688662989676400451541604662324970868304020255849124308884209584385586439393308147262843050916277132809030573994422482499854716659048563006169935926686211629200468564617168395544830205383826628533941534039381753992029276674970422589667207395315034565562576417826047153409388314602113080413367993815502271167565131913698398085531586994360339649388989357623504692449028518391391168218310826140104355379147556175890684613392385280837154747289846485402309468871594188542095460388440216439077018323691731052702439097832767597146164145912564116181521815818007082814167826376125472259598039915548514763711109801372585467086805353433363633763671133402654287420494533508702063019254338958486035670834627763686655579261971480667163961662205103688101098447351600017519651213781164334471303076772957377421708950696739569971035537136751037014935650338437448532616133213714039938126183073793982546956801062826967375141805520864040984302589227968437787605786879911915062435291582569473112548830431040595944872850443795650460735491828234488395667340400168305151559719684890305362051454518483443095461685317593474372107111057512105584786999459894381216789621010514891483823300623995572941784121063898077202633970809681730330740191156975532450646226886646012618352275292560548745857145609672656381939181268462016620264720772956964080734491874965914167395029213351827974395452159376123174811862092107949768886962894926553667119014895508163784715839924365303551457169269031259918888483262281485567256899249370492035090668946162609950994569850145543017375194840173702526022050347409816710582068583300576151864573404336513525267763795677479132600995828597772867715681557183504184774780715451006551817194134323175393960163850983960111375989395400442160224537599623821266828010793256566249709485008110664671779662348501519017815668491435015813689875726663841777097466882384696127287945850316077108404603773013605261382368545362052911700699246957441937989825592863796502768947122491463708619634289187539278490654677084338082613420906144088401412913036548155393211076893524402506003057212967262526278958016332401623579979373538906696848550757968415077160849548924543323386393025194907105141704105748344562088515894727132056552800293131831226786207004141488726654888876031345111290268010273200585189532966948598788621483836871417987885463706149705869831498000440119668020665429952645831655734691924325091047348680500667195097646232406421641690862535933724851136405433267375940079916939956642167491727054450857929075933273025103862386427152616231673903745235762091999161629322262362120361097461130646810880930078875767226363324142722445940464615436857406441972179984900705967789171476309864944342940960659369730381762592430975375174850590622255326200751999845724443569411599086330469509589654063905411242984627367908340674000147622762805001357376518886141436577038330936425892769508759343224247159469286671768930733173231241850981145093832439007631427401221456094166155725129686375182750992841221917312440380385677050543483415289416258558328019462890987424166773675566993521689871293347947222096177845184786543342416643359383093538099740067670649400971044666925309458802289572169078651147206257263243416282680595367246828510016387662441375791674190078929388094292093061559595696683080940085671671757241154396206864225343409577282077920735913967989635243714662423388155649753147647206132091303720905398859875282006812038748780763920695663324470363030242819295057970858063461122356163868892215403889280193730217276866887730079938324919339925207287144657539986523733838448149699190939041676490118375853402907908893647185060008341590282018182948614774330616597895635737495677780702716918408757744815962049000142031891150188116868670712909689735139244558396401283952464288130201449104711027950550720364771503871684006348653484220266026835384910694440761559126877964200413931451429063715904496755889631718583275570287951716511878120539498328898688278771593927717030618934848006897940529158176953434536904950164507452977865982777510402160478085923403122013699665686750931281763583752686533429316544692467851717575220219666996501363507525784681549922300100694859083836805458617947856976292750315831042093304117841646008443326761918394179850992566033811938668867635094401773400232588377232155863299219384214459742848925971882523787222527811945292964918663606559069365592332984475588354726767817229680121106912475559706286293971974391425912308412399337958054397077838782540768269806602595433766885030847438757919506750214064257325183875435112501932588711146144421431496397415468040579182287942322058186738407174750834964225818455354093620752577859226714648564914901108343550401421093485801957075491753153663383497758539807369405508334755829843569615662652420910000338631672416039246834293109357064847804958605389156932657984509156872941501195397474699234878746776443756141038530700753151009631860445815860520019847034138854385968960434592691790783385151734299572072962170920811519413307839337402821541851026389562310842320377441378996547810341656860798019836525982137473014077625702115397265197916927870625015629225821856587702419074032026332670815845893406310162030872328704773726391875761679628467778021452070490284207378554602984927250896747723951546034123865693968646441127279593631246035567282672349850630015618327227533156533330842014681808898083512752313923552129033690447643877661940208646677630203504931615195533349405302749998072721598184770656781045701027597510403673260200197042454367491991216597353779283498536561698059736328735783478068225006024616308284852215476037942374552969063678423409723922640174590207937407607175465564817931838475193648498165608536612504949649159066330386441130471033779186060780151089921962994068385261370499907983395159328895214117640572972558904027584818475271538778316335291964121126007058444932403904902608197729968307207170020594294916432288534671375934276511151479315786008902514213041485212927709980102938451622433633045312231353732607394296380801794290124062574386344396105829429547906499786811832029625804545019002732161032876671838492029856691521063260198125780895501137010147955207652959664020495477850175314267280943882953948319998728506262389961978604640888117963512425583978821486533658641150726160014160562976740972878233528415806861277947555549747853498879404706835392292347670610174377749978776386975060885126638416740444318306314879169393649997662590089126670682068057212723569018023271718362060820364277368895432732477928452915026924039679905461166226140881357089874234751906071897490379719430049803544658751573289639246859061649499581981750532351356803147266987903554988801786549895665842039861949545546665642395363443235385645459107610947176307113293540510209389644733947606875310225751069621754797842885402458706162630993390533151899365682748756570568286087608899924955790708115933791548104529786924848116737739443001814088097977263676328751987692966014533471344665043112892740328736339760608075904580673040161019365724035637215512987338917911953061188773165359080320897350091209900659983742123316263302463483069462002860597635989187345391851764726223897399464088147352988130039082406989023238988299771025670666052437364058190039325353657462362856389863714339480544964967552071067299625437047424246540865014627309834480692159361790295324350108468951147741721545251843358918705785609391089811683955153316634666167574560543436113163815904881426137249195556235178383271107866249188655981793472772237924782131695713032701159901024314594319901795076586707108068457251364446850841218595672014740322772456894792954615215215633329637857832610653148313603358760401443450290130938728426142741043016007528079238913444233424060523126722127669132636752928411159216986379186012531417585204366823046338470366690815465709857849278246113321310379807186036858672049479930168226103416926914189895651104484141834431062999359969509914684618067785595754872426670597030690502273574972828096994530234534499076746572808252060173302567725687533776985452599721013422496973843028009673542993640614784312747732799925005747913761732870942908001278677417740168900733117923505980484514867928329733527728381233717895041736192711132290439530345715575317436154313564827544517710674130382252591938804244554600360352510908080185163399300827321997916764397533571176152014336686082671559111631197243191932931849667660145994241856542717096405816546376750322114040941516634009107703995737305946833565922631107004644584560044284180215627834477125259986533784890997640714816976935498323720205294312897439991046458960246051343801301204043404462083578623611177269513631498506424632617546667138468140632846400484036935672066774164188941875703066712976663852944319863367005924644798437251052011364424253712088499861004899952904329031661003888297507221545672984546571092627658803595296060070865903097135427448283266619736880928679935209216393435799819602828374710879083576781971474562995470981579706058600578315455376595298100515311027624637910739895530905238114345598582507361011002261880919407622640711894980970343279137311395111245356474334615809063691766219304429037720049557574810675692070539277006766811309622884883260557190943657930279428293147446351450866800002953747784238805664544987953956839023830686455923500228507418809543314164461939800144266911580172679707655743093063515235292161038239487158938043675732198444120705162960098933424401423293943373401348826434351011553586384008151179150395443447776531965131954431473199367080026745160819009936719612484018535934196341519460412105125268580266081190244154955017549223514806224892223405457432633178634535022621026288982648001463267861828857479386222674875863451029538711487520851470918671525048398333167713962108396216873381150754674342601518083177508612701371669151299105033355771134757060305470622800448893721053746581351084828700074540502386339587910847032250126059534391818232636822671340814002725133593338476799900387021180943975095729631943591172107599220221542110458969012772445100957865603673715026620752344342524139597897286058349293559152134245741270215737294440434382612955186299166835299451795162283334834684002868623836507922667805988691456978068961330641852516065375894941198947509598873412665854207256831962764917023204016791711915263829105296103687350239695320562973276745862918398791194564213380016731930480587967031603069696077245312017642696546403554328650574845858059749061450381808389784753828398527233676554359287374665948675206202794550028201009584878595645176059767570055409848494055823526837283413075106875572125918363505023892852922858406226726467001321183305564530491203619224017941722169734800712560466029289090250554528524947128773303791865844152933502980485175866482488092291982758345217113014655305111070269660411762677788646566159974539463664507212256392876773954842798845204307991047841563520490400734343167158785614217466230539329234804917909189452312431690945138358963765443615861325282093845527416924466051915231958001339965360340130449908265698563006891747790436328653408155528481402587455224168262045219223876988558996674532043314503580675069887411027441760080727945823428337884763490476234758530009618295528933082676726400024835462879815731317381486553398444505182975288405107299607934377484521463274122880379896920203965110399049679486124436686055230475413792450042293557058119166563633744262243390849011435113376326713621662242382197924359590914396805571139776145134583350481423882361993302237710199079271750366911956124453266461100860196246259327777775261113348133631430662191044826927866061311191771854149892308362856885217983349408625766763471921010540409064809348934766053068087494172354459096410778233213973351607522275121081124607794068254571563309232200184826014631251727886581538989883098899145892255711001404074252471190439049231812320397049294323086153390701232922115242331705822040476845082338609197535775696323479468884384322734194540589691520326195181890464019103746062449308076475291701136226412925758603038430160555398545924238496523681655618017836956222280844321642300246757991792493429973623800300693859312682547098904869216813719941879802016519023268322980187864259099629436487356052053702532219110376304938578434138160672043127173155647710346571556098085408538593419227648108948874409024364063557205490027372728503053884617136801483920068344979517677215282099839995779561852746588131271013685146436436427991846113054099594779977782780977887629817795702572922119828607534544975678822617023756017897286445179793440022191744301766590892760831772940319301762817967391546811121935047615966609601283529498512174650677543870727522462982867066663978158832648826977383173848900352323758930750945884067426350012530250873995447828147682870703516088181550205320636553827647933039174735964056615399717342881401570780720533658475107062187531013954398297635178470473994152962331351705143225174742549921153534182908770733483379588350261596868016770090813382346922321679456093652864747356603514478865304266768184625113056361230493906834041515649236577227652139773206745138389481144574754381656757829983691152402955053813574794317538984000850772154658733754632839590990964567114461672241692528166487240949794333684867160376807988725835435373820506398798411536141305217004659242841009426358635807657671929219309186327085357005175051049481544806617340294341225797670220999983952468113775400045609865435793734630789280065182773527506698282483466309985030522753064015848650569445869306097496161095984063397101444128171902931512411504885517305228235320035348129773004760071271951423361725497974778659769613456412498917081978336943790412077647928337882375242927733769887637361621341216782538457374046332497544098995229868104682511355836456062136217194390340914734748037351633108100709150735941897622470730837794211242846034874429908542399552011872302373365727424546627283204528498000481124446959444820229288746617919731841108271668139753715185757016810381472853454433201245878578887232350484038332625104426034517588854623874257589453058268159263457619983287244908138257723551238611535988043986581751391766397737744033314527799666532494760534518897603084943280342480472882693039147451759900984949751676754991481016768967066649815510696811175636476136288432690785475807805930126609035534235962045843549357516306954231797024397937141298287706833652524201530113604814519657236509487084691054751676057723179307384482588710774987215343731603094206737559608499537127047571157186358260528284003320412902017214704526340391310221786231391068855666280587054293835529381160900104569977165075702595510897996581798580588733786681032127349832954072275357045427148266236348935703960415762261697090897225629508925412773663175352166556782517291768444874396189039867304510388224488291281734049689520092355762718185938616232053619473552172478672218979436412995940273330284976460382424373974289124539472760817072821107359118781509302537103218497714425317759384766594563943681525039276271355440490433250861722961098003106683758998753339767950271136338965907484736281446361475028412504569756864780011469601624928881906927845815894332181067761129943070529607469778038833791501959160193183657316016773975503181108959195232506722665608825144936357492127227694274325121851053811040648235242418976934235831832626970670845240569400530800439614607662891804385042858125481922390931267743478690459196248540303161795392941850248621536526859233491839297696921890116619997178935908706338425140751580076522058762551761064886826271692489861862974625196120761203904918768020142448687222525785081859049063765260220661826072969805069707155554697564642427847014128357732258880029532621590730458807429660704357566834274860888365905274493320532303217631943165049551690081910294367876016266604121654459379578530269891651772645134137200477743243241350892742343874577131222854951718000876322091983835292207333044212365090816264487424939038519140376216158631122019178084774201957218577937729454332564166254063722426328246192423663200820071001678669925381050665742839217867440508008623552075578252077856323679555439326556913883807607500983580022426862801337287188053758159384364217051078234092097725334111478988453941292786575210995407663965018036440284141864375833440598587901970699932042102243514785417266245854146873777795251305524862241141555154140662078601036690786782835878354906611173468740822335439589081464029552261920313385821474605230625709679728434751056045160649894278551364326823666700349778904337809358472041065156501473842176970738470461458767219684281481878195819250750056531182833017030187032909049676675713971223354417667294371517122408853156766955770150678316285238017946548586713586959064915781450772404640222452286928539647936589075045266667831770539223174328443630045849080023079861118545097794064322021364309797384367213297868760520236348767338476160062879688739706727482497670147821787818766514321600031486116256613918108971340450804448958866308018566633019840183057427823359739962041533879063920559097778429737730335420534229042938497536161346376463685123628114154776814179793337412134431469352263731754236190749627448648800857556266087596362960656773175696310087112216841627356292085080654337257479614955669628644645942294156089693697068240104457806406313058983849067177864862076211765381183717453661535943495666767297005702126252060620779209536875339560139276636154727897380119396712405407274956797847443042335408518645544458293621808439631425503712839216304855694809193737196634045928826718215354068803542052691693532848648741284268972483753676598356251742498713664219851372892576099229228428241128950986733725915495607112081881550287481145195131200245967473219255240539542918443488889175297864113650501242124404101315691783506333413868895135048646688382897325995731286989819228956463180414560432495041004118062026082467592344304570042064973001421075245457258327866526913865709486796980913473929520861110149003861614582225229595109671407026369582302993633464856721460161303013644392924390771146168301646640221859401618582507557222333726535534130639284707531321134214230492891304950124213861980614527353113822118730064329466492058031679829171650018672247819530815226970392202184882925078597865343535517632926096039906266007437437991256980782232672927920827601536426483456947842010261819505223824947254260538875133069049295254917404476731780001445575627698933957099381771232043263931049512152588809901199410988307018949332814939291427704362893913597430414723747643337837608629905187135323263822674287044233028074193305537825343383356924371108521642951299176858273017645564164976908879502408266964299457009815350849637618903955553486322679494633200863825491670323835857251942406557357850846009491687017288452821807303169548907034196514354727292799556215016136937186886386508661495400396990282006541970065128475027169139372892274103338963958054247324979773958339806010138521700572348616223581925322943504082028698886936211579601188054404567966758744209321253859103394720059764432413775813545910225220890063399220065898425946261123840679789625883344021892898574400824951904972801930775140832886695433556697723604358052066126779238374698234568562747128978900826301721738576607684506579627364194996184699658002601106880846593790264908972333558997690676071524744514566776036240923611259953946012666930220205413321366736141275605969722622613058909483468158714281832260121100173694492007478512273667097582046317833862016035988793114175192152830203194870268592384486014720526613893888605599725202371656435465960779151140698428160086050486124391940258925606718962939299287258928576374481179894551627458987313819273766172379034133473206483132652322633161085823087164864292709376767336622947851837273787012845920514715854146917159518433258007898353084388578096665029675923376091967839967576816994060078840711443773012537493513605500328329051157374212032470678475731709186027265480848516106353701283631516067521718868119849860754788430325334756826027285248591662508889551659586303032252446521249390084021194582569435079027386062651536403234715510736749449457600990032380553526290030273321556384379337433381140492344327974584648266926123060057582466152216155505853113063618444554809782152363429537811130373773933013912183839347216186316251382717790047916847232524242833556666240049580154605126812730935172087016383557873269836562493822785722778218469696756089879884217945693972568053710843530250298644927002772981255718999714537819261323022852313623715632529370854484574054827972131543566325890207570139383180679894669129633041859013660803503319019005916102121852595080168584998100486892505602935897285451373954499962204162874992904925014871918409095192467468275223736022688122973471720243816864717115255146546602517093801557964822095040237791904921036242343958624687398250845109904057159133234033841504082411832727116238081552994262444854164685021736321587708208575780865513085505364802168976964713376933455640669200120584413713556836547374553968842223463539496139961516033679825067394919325191891268857445440275276064520138797096467195347883699591560680962094717286835305702141599154012413437378704021763512509281744477164793777419545702916259486490986407063569476020419413166250045421802426503334336875581105062086717208528041904220620757032919693295046488146632897083264882719082383986469496585288678314435697918836602617431070349391852756755515138514730111417196714687069013303883794668656056788921343420846451516234733374166829064872753883785245557719857045128183948753769163181973797495105272759235795632099269888823057284698165974554007083349019660923541065603122806127315987752124820013971525836232453021509071878797896338381911313909830936962086318486014651914099587600022715709839055430837171455602924054243401065797598016944667789277999263282769735201541997155368419740156477186912372272886488546100236030508637912836492202105382292259759058378205427363192796795889104164894796376099522072714116003703671982291679797034340392139688847804208118070535309532281706251484396412463900905198752984125083588332941004998381890868375188517872900711058755146545156417458942825485110779196933980727727979067002451313307476181285605200850062582141622168501076277808921236972278078583308684030604295182795584320444544573571418311706776384613970701480874307899482424808645137486855521442426006802705218619456744493990641600976238179925452758438159898826236253960086884356507423953352973150978549761166518441642999945184423549356360078506922339180921219747170303785399398006582322979439505970755763059704019506179670132492432014965550319815209490022927879937029859118113210386124691181060999960767575916200590340588037841310434198658522923431617833788942878170292261756325656112085362940972376270963083725018037918774909419973745960924430170127637642855670378451347256866720049849245521450225319780644808655156096562969819673080472039943195103426317118365302754591935146269538774666314087135681826293514439906312122663510603382081446424748323279953839783819215185778187863665266084493664213456776498920806650461385395341454195624737745013478388313231499813074746712752229317217140611772433560910250757209073354263508387024974397008592490373287034052566853551675415238297704675104582655410029159997196236507241993083816390693556537156292944615818672630255196698092110194961604522399435807185267987071162576702703414509470816700257278635065122873552984854902627560361957815092338177376640094509081287993513909313732487122974238335528621454127486266609480808081605249783504932662466854048431202891700435373354275223967410286171364220418145433483712781804387143082711819032612487614109174075392576677547003792226485670297872474582540970473283464053759314650471780074717652415644013326688176348298277680809071776325866918491298072175738559974866535627521699386313851911846097974459608940188240111365127890504286751932477113813623652159104375629482898267233769876718841098776195308856085033446453687922753823898220500586429800735074810089752946294950530608720432761952910025595411204419930284669971528120912155729441521871887106929727225268588033671668224479571076981524666567758289771670009809794359349317744075489418709186096937313011807589924138278497743365127137576732712899667898670417051087843783770412652220674890502986299465181830756654068995983864129463393781242555576614903867746945091742335869226033940412257114857907962649921653675442695078375116360950846830409773322179749799024406701723956904407560978413511397716983307275481223143919674532150659108482654746341786814779998477715754751789286178299126887476045915583395397768587859223863728176641298660673583071341464112262767613940342598584099408392531851358938239875292629046292982887492539658046678918212485756920428441559176786814601301579358106276629204019915756813315682645040408634383369221925699302543756928218679427944241066842499243888639338200405800702529220065142465067887815211269253134297516915626926604943478129875150122588571703880582459255857371698620380390258887752664433981984818811795838110379511942665451617835517908785936175119943628538570807470566133146661588175666087264422397811213605768305594435403366675583878598528301574003168785505297113816440569801347473319603228465300123260514067040062070857597669815995784988074707512651919766842943920943841217302069053907961917325098708205881218056927524216749986530758994051577399745272480138810356460157540239631579857002494825072985421665437145350172713624813504931352090115154406270145344520219967854085236747810115303456168955625399656293688038129908591540722434991338818519857817978253230530692485611165764270143867670354123354656263968509769500411449450761566860993058160574908482776900004712450551575966840009223538750526636749960567543761522392279760866362920303899087855812403831412190444358570800380099035510164575121613782220068276216338777202336706249425341825606632853374399885225020552445489503180464319705491256823711873214911346121861904802033898553187110755833495477461376402748103092613098072176395733299193489813702910747259300894492134932093727974678334704574137434661483934812904544122183627782478766710119211735595078101182062029781509786523497273745911104899172689296676337398354374165419695812161112564141918630965646624251697189631622235754968307832589477503156081495867052453835280647534821777454939333614146858121200852550921028560954632339065027120045224970468065270520709810689011897338531250040499111308185838711886840348553887862550904341886603163161336080577446436690941151008188592107631314342440904220796502713969358733534884732519771629798702573464000768782878897323958678520592428667842413645700304279981173134300387872947889199769608293908023550949608283026186107772940723753850898177564792960662710829209520456234017867905207337245702410298105634011000872816651398199705138999723971604999582682588978142745207746332456545122238076024532647950130266423224500518521156292578375603513465474334740669063088217038624899458575172146574474926986477115370246039457515382941887105087280181133701926317892734799792752984330767682544213055592601539070938584267185065297323297896777814521036305725026491271324029432564841334692575129047529720385480644714336863814388473453953336149931924936147592117267405718855327680115562360086031490197912204121259968780981952107595229538693391888573903445279247871988867604196084566868770231095038448783622668767712010902546019514023926419584835795842603962706608018301101488336646360509969163326015506813694823923369600921445295385229065563792443756585867684942516477758588378426462912952786728217882859928328218865165039632946888063889978809232397500304832688490324572608939968532735115101157465046301785673550623028610622415530620989315502511609503561021438267608977701359646708610578975692764337369798118962193241097525059966369558514771794333382773499203856090117950725966026790052433907672718955386698737473069883896467559057839527545942713171754251652951822327599257543133349498181274577651659134021146804796950053208800817617600864574845771732496721371342415976548218412715972147867589760591831119178200382553172154079765847097927138824807596114729490788657957144868359910434761919064103909625231776306218752585673166870918207645924296655669808454475805850379381723187110323347485336369963065284736327442255134668178753753002868227672097368252415690632312793272624719915228946576351531844865629066734935150164259340477353953530782792297293088963451596611241504567555062256007869413758837519701924606750409972444196894276426398516914434466593205231769067148071995263536954074471206340925554695021923901369818425767480252582332609682401629771879076512738017331028590730652534062217106713142220249555883799045468506287821550594873546463148937565628282149998501628389531382538988531706097823763961969617984816938241973142308080979391722537916271227353122266853973584052003042192687291828036603345158818614624992362577125441614684330384457659892911662311208238498781541678921074345733297279399361389772494178201935354989581782253329877045581532574638714616122831138743184912174527600162611106034219647071646921130891600653930818440019635471226847630779215268564135903700920820171402940176537295472793811199582673523376987959475698473566469336775486393746485900098480359927188122182945477602233608253831669074201939278663110202731649914788542039134909202035009666994732093248646498797630359140563197673404274522357980100273685459108302373304637943446887884198438786853603200933166419686175869917399132671992738328607819014123154289928428071651339874158934397080675715443278483960919445645753157387027921838630423413093666004742952246130974138443533104893516112224876561159181374805456791832146874058507722595570960428808450915919710995744683352725535742954848395875828989835417490425424078567828209289765148761796626651100151768069908852504190431485564125468331311798887076697180235902237347307111177683958091272794347480965161993180391444904410713250553555188487052546946399140597200736152688680331930727155515560440086992554006396654413254057188245970548346985652552442404425717584460436361071861724135303705597861908396873559190051490571002018436452667039085139792146165161392876524869149863986583330624365089298483941928065033066247094941262045463398139421622800520580677370369953547315307583009648535239247280249921905626066348570563644895364361194834157525515560695069329024428220739693907636755932240985476191034136688718818982880725555797624966682597833005412755410271557910046075717432626524311534396176736232088239180015339199055194297437324178792349811086438964187831222700133294127002698452334167992516963295770041411207750071954376035965671333457984805988587957862353407286825296195639554348421751957034647300834905943871642207036029273996574464089688990259086102027464435640568372835373263042816538397824580425254798243303849372853668567179181195434963718764447285993664164725991915266334910649225823892881544281353584210440570516841584525330194617565174701654608765270650817417310833100467727861329235615616255785645056010082272285177051893330003654336940999067318405567413176430440303591246518515911713522827410660647437672650800571536708583458809218249753199470524862270898061702150839326571680695969583727998584876040923963192855939640067256943111126424111428614968276196546698196792580363427207615101745996272391647416188680497221331500811240317001942025069106740012076239718675979600049582299145035544294552334419960060241371966757682879572125629034411936398653567860499213949660586889782361398929041325967729000349990508498990957293743468862586468020090354715026391477246679630209731691926355300616618051977828066548315993200972305326959716949423635505152459503199640745566002768927547823531069562875523000766837969550569420125588660707163671115906636422211377228828514075335779886900871964964336471291822502048658974389135437203844369234449964733489287717821730103939587847142333264918182683329287885045225559755675932663051676411165345137041411981276460833068835524993906145379613312821242043511266127740391635893498454546216827150906249665023626269373292278175639974087099855010440124805712919228191103822261523374616031357378398761127215427702376501009080502095176052995627228352938133532023432789338693916413487891870734171453066316262929998659515608345306250873439269274850784000904199874127006511087142118095780878957088336829291548421563136943828599978094552241076266357771412404020102376224223698759612452704241065216340717770381583837841664705633344434666033470797008496290376518907022977168245777715075295873910860194763932512290615173221584924970741167547306444021665056605889708272284578521533862455463252549206623846942332846535999000304694305563554224440701428230663202555571055497791213556440162826001632200633260306288821411882259130124533361709697487515735251742526769719507025959231892691317995827296641376245718733686231065803359090772487889166323373758703836349534270670350341202201915099709892020323437325840104298341931025578132466588663511783453721004706749676704511542631984458034795575745555340603456082288057892075743222413049892961269414569361770839595355913716561896784912790907829883822547383929885960708243110228318861295247056397409930364483181716109440680135121342709731833014713508769676930259611191531222604304030444804360699623891835126334575967866723509746746247360586080809430464700184913648037730161985377265892692540507562352565480782949071623362946935881179618083302257133055949004306655708418894600407333184891300866921900327666570711449454726012477574505594320179745259348485320460006244406207741645481788306815083271250555153697473753536270335445868945446333456583441561399471177595419666458488463433353700299626199401256047319062128408754252938839354221300354525979977416701721118694646228951630396202684699012646652554888715311259774434857415492839191441549841281015110541939414180464357742957875274659481901323035454717346762348053518975102020353470052282874975204976628771269249015058347575010414985122198590982839259764512384884562741669214342230942287834677550328926354090232384039081235901668134598254387566463986544093509313616434566022784570611856055298508076335500918457499588898803562956819838601916279122405743721044720045523373435729172212396045043883729537691622000565793979816973679960457650736350593173720991230001122936253017847446061119811537824421481953690715221661084561937929591934609336945839222136793944995879690857554916427099875435931950502596733907493097760697041422253057417385247679916234041446060142845800620000041570192351416168292020308549691585548658313413289534406281406693186684575052103025585097006799486067905189868625094935607299860728160357334366889380090411582045964068769621132033332322261699077416200228655000257844522243829859752238032287078286245235864304792115934749610532087422718794134237609370456796315705673499757378886152291990746769174112614001384370453333820008638379741682901961392554013337048206733296276113361824813516240364179272987060783204280844258976167330389009274293333169625460768983469046998425582072301847835044784290297398289730239335850425492215769406245035177704639642261097134116993192733316786673810662855405710467342471916241748045297552488071711174951132376614750063596877002441062392390490566524782044905377289088464714047912382325054285901109201094803939770580213930997088991423317735187334353449024787776947810335391797338229647379062627686331004705147987456518498893610672632601934113190479456232056948651480444275230308250698538413980614958898825643363067766631002224986146117902189159399121653368147040963486620361934632599904571918941630381173104965596554822497752270667029637027137013651262247748412602622710225168269630049520621037543568079859961371282914741397408842468295762576659786795240907318852980385683683666012394040809671913604645668278421858673810749382782355402893913477824219609938890665701715696523632733799781236177223914874306635004141238875522685483707584410583551755675864031839725052507020771795211137663188941266847066896922846279271860795094253309440486147367902924214943024985108107631350981193413071352081341296108881195994715731378870196800944874194985654796653305852170755126549622731636148974651310363667437276151901258142482368188961506759670134850321304495547692607540286609050703531980872786289031401638788093471166384371053304362175655173697777542724818197196578106086566299130466992767018503591344492110286397945279240695823018210531854395477375252968632861584190751188843587755269529352491165423172876334020657989499566724186696992962558064400553179475346569928847423576732778969995605607642633396148001468895932752238608662580647515839228386452655632357892540946631595794598079840970728094356290297576314160985836207073470236776191049631072953858645165859195405331239881461961523200658411745648195360007784389674810330812396751643993161602743584230270640211391222410091185148109833860035577187584877841404724084732912924214657741997877878071299537189862586773747655155117923061971409233811140050368983783032926475601180522308218720366158499683027540795706620888828987899919534245911161254827402727359190087211230992508424965988289767549177735866861879362551075758821381414298789561680008812300994809280919738448391230890680332337635180929901259689696874222462679348685731268023715547601675914973155739898422954169791967384468801134597187990541325978997520328088775971524188634671065121390936706551647262248973844358883909576754273957304272002092563193392988423718839789177679116134703246421766846734215775211799303019999570939206732402748603921871287037955416151900774059166161635389721871523418908550743590085262053553887745167831081309098203135678425319821657779837181500173721112841203922718879990710316635614506245935925403539257351769369281393772665585797773960185799863129142356446037027736737716751871875563924899718177871402654141345870188686843819002831387192945694997758769741667750969225121995339765601152950836185707509262728014354654235961053311732921768507150207113412174980475585337402749454656322909862218783046163324138050441180199316677946289897679648128560042146538466098541894814895963515603575651113588577571157708375476277540999232143085496256453188005473017829400933620918220955627133257020110998548746788373374160448582952811571559975797254200549168817309721021227339950309011793688024568543054936559085077431003737125382256040306305632686228547518143333097632508269677397074478926739417337723005034437932775102821627404844422385369646861936420822915204483171282791443660489173577517381593526341527134955308770858830513808171660675690414958575090522658108725242429040525038307264900493949003833971579756896460392354556016241743324203225730246818508775517913935969942932753590293670579779006235234779224247511270382209718035328136238704526143443547957520452778548403870881642503805862167454693276965371003165680821860132506533668722447762186425556170759296499071628658398741491376093387059255421809217315204329203919740951763381525466054682079730649235973557542122914272781079382995386149618391448939334704392200930254245232117893430748554477203693406891407797511611937701860559451500598293826891900768592110791087927282646225138690336652469784962344921571757434239276036707990698944821929136454347836728839383959203250401098014453527432146786833375142213493624604194003560661131932222524384803134481182946576495924279401221437025881467003248809113572202083795146627913164880586878999260409140786426020350796730627349574390762969364015868265583368936437066223182303410701321299995841352050484185069881744767020023088127888091629231180700692251118860115339252343514863285067829988797276726133185599643383803069690694868834600586995079686834153069941226404561447363527373430128646840704190859385829034408143630824031572940886808682602880643509141029107805115924884811888238430180165710948285906821805581513304755625555973404030698474389577483948825335561670629298745297357068059425793510467082469468137071874677184724024783350301897163382146604667504049347299871508638019566118848944361085752822515944064470133834737993835626842986273872306382657104920392512116705607356563313877332218733106390242426858441491360315826525857556849951817279480463596105699213817065926390424665225413389725254005354102217399688713400063986944078917790476358748587973987491847281195729009590978433924569624006238714309096669932774989559080730641765622237669444367946728858574325712534728631807070704595648285352677533422618925457941035793537228390055855302654102966056760835719250592561329851090512723336881206791654248062550838987869279634434055435970089174402594280489032553365198903461463884559104235239323246337343371671040131017866955865408139408692005556750210269891825549936242854338786359315189164570192001787872983543833265923292905112379583795851537765403323926341542144467768262746469801196016535295848892722720978924901119294927071109168401117798373970947714702190761002850708859658332579533001574254455293208821524781737219787234712594672681990899064124085814593488214688887840698886152476710049084377656976733974246993054996034248629701336205598750773882716319507998083511702069318866236616000487875991233476755711564835377425404804745359429382291044007665056771066962255856141123137144801618283344545924097069633719947987751136503249892346707590333943235312099396929185078602034373467597720454936228645851577748323324348681854743955890118926481127955786288758108978723830174348902034453224409402767383308363480467971288095369274312984057432722524035606134774103742473107030423843817502110484931583984615246308437691568544264404482717031500459877494820585797148328504251740223282589286158095064751302428505526944643614171424590376615790268721486334584594764788417601880667028403054916798022525573507219693460158186822045745219388580275342334741707249056914775249479398088340705197897927782050603340387406542858498438165322998883849102686289671997219933732394060808040881611528535949005070238839273104653926505601636935131296345161317518434660232115135518440851969924479507792003909310361282470609789367346838238147220576693730842174535664454287849573585588131370597652574240957477015169646695485506871246977202027618640049242814222474864693191785804746207740061721826767598827945959447269468275403946463312536341194216516214737160890249710673393807141299970275876154476693324452580163166251870048833620649432655231794947094692268634514606071495161804310987582408919366226210612228428332030528929884804637036887751064785687964074964627094858089098123992747002942218392644159237320500155117107127816102989526807414590519333455144553740944003254665181551472716542832913650165931466791662500597785503332180585169913429131597695154874904011128092140843152440265207921046687211243810256209378615333721347758106911222713117482020466599874621493635589305837711135105761371362832208842003669551915886609934630541855442798999596889393715323060631052763315865525112442852469903816106508522554143361164155311271714120097111947262165101520249617580793347396505234456401171454499181433966279051418167377609276027868386446650188150449176455357792287138972468841759218303549395192766115153644651471566718512973553316835263871300335034095688864117038888921983190452928899522336279700157059900716080676330837249354032422425606698299241412137202946784819410139249525292843970843794336605296692105700803378358765833128859884914653981219448841477847109203790057056612713481737500053594024627122600596752761252749954406815508787167198924105660922882428561918880864545228409279548606261029949510808135265698797973058929056784237314834332567886995398403040179443557591402859974946015056782702149495996003836284390108128719187738004351081420580877103558598645666230116048593281185554958659939404013731620836441711458376273331145685672752869792633378775696013720050187086856055330288503741722341198990249393854866014895546504846156720508400548916068159455433917743749865870321003036542337433539290859821178577613460248134664541256251711033793434400710503063618365736491107089920398164645631022977171848134996299147054591606018089600500120061222195504271850075961135510220233947661769879651761826287336821870903199068491332354751498179243635146154834033516454625660190181852001014177624163457355489505923085900199932402949743364016009479034921477682637158771806039274149549281995469061075989654244657902483405401611283044338652635373126897098801734839156380997458424613999738505204801922623573633789828789874352696432014889428241562586737090531599255683453755408646037864662177120787971361910766155676604894236127635430596164588831776476965425914436296391280293729292734606384251822556042267786694394099225014720133525177229547500190004233467500528253139735005978666932581463888147377160624868922135246728205029799226602906495884747211432992489464595405332541469452327841234788516717976901030397577673375937227262862226384164128282811157248247893589407288101856754717585786750728076169624008356447074913999900191265155738012266240581331017698565339988302326693532888712638450684266611041608813445374260716259740222693132636997355864271100834760987839263611593710758036690558724589972748668388495365301612879917143390609023014027086344519439245226872910578718494356521387196879690895072297022166925993694275350281263847142780988022027286541744825488513396589467172445866319176838238070738631262667513616408260865067504568014071408446245716865112188674480904985113659798196097864826375865114337233140784858256599697682253034397067342667915873138711068583364135164020255185552873010316395975812731930493388727654118152839641169964818479728040259045570205801904148648346739776504729596207408562683267138767428123617811289765133907941003147522809418998937953259336274525271069243254120491489729920502322787838596011092592639598898105684020570677748956395004921236340499152898215101977412583849300929497743637772860972898973608386828642606832672418027765745748419702240767969651392706675584727593459839042927036206703042236245553706124270860036549290609063679252039931369483745468059415549268371141974604922582910051177897192144468693148908685655214541624688622987855122373545907033181991046573773391826878469560132055454449284581545692041022712229883583874244996139707481993308212182983328341516526501844942797389957813078495286238717960733586460874998547097699800730210729102238321716375109611203830534227433806497350164328385900048162253120009378568784137986002152315784406089285138743006986646256188024538563684369824767415937783393641603228026129595272072198554019421735695825353895485645642840145580052714773848807230921789697913985907272401448152696563606639935626239693974056505577071122964905641084874513681464082120967287018804349216325524894070061050142629811269381531057964705692215821310511523400103585965442769338608114897525998613190367033627881594166604952964456246559358492379780024124359550189522569158578318400123006174896544962603225334733531064958947200583261515549752363407699164903428060434458867150838667501886215013950869637326436975617736192443087452014903306065668204969128830266506126981492339560964933731070436038842771917950069343690571086837291450236679617066463957990799753872201718986057092718949308693439404087718501655005204216377152288483391075100855554036831774669504816344924243625052550501015612737539444668798875546658848242587451885295089208217287298202379115055401413669480428644502479101652147356450862103382008918084583680931701984741531825240954509990505559395123100084758936456777322243918465633523543064321954011276678561855788669496902046021739424187057611348336187127531368380388796698615469440618753403771764034383259777281323309421851572097127773867572047716303824126122193726943537046503563649190965882074323430095378574181942251003235059596308256232035699766828729095327347332408631053319874666054343715802017567153855089896298325871921193401456614918689036281537923012973066635529598341948081518667930320052234198941499341012285492528799152648603940325656964410285705582075673851340019822438123477522737719517541566608307885856198373315586912149274043752506431330549525552681832009988577121892548921726601932050339959422875653788762069139564469641593573009723954707783100570648359502422748860309905445651211586673625771764825473025749626592217642067867911499330931558497252572975111889119926783186081261548037977275509930714035731236900166941584804943982800594297057340879651782416181541703702578495538821935738865225127259791840551954682622590217583874739658161873036808858927471052260351117304824852840400977569301768191788710931399257851779605648939088253589644920912537339364143228386770074160147753902677987927633167895789667829176123377386658996022092236800716232142588198637325249589904584103917443446755179333724008899443808409268727460919660034063720622555604104607386753653342579507788428988156160712350973399240363131320177706971635056983066863165927245882578177437414630355626420222480076137071473948252787328650838260889620201651129743697521705693708926607422272627437642630940443000185722772359905690063648487954874082525110032950313732089728509891812140513344021936990668388311321833851742750542963016210047625984309241856957320698523275367237038895414938659211406086246876075770598160944452074629315850782775581327259267167008955724249031008150958455404213183341452249701137395572780963528841703055360757814214856138840023913999632482711327734843794565414629318299892923825759305125112790247299993350127964084632203852969492788956186377569234884394899190433059227330258287462589099010597295330655977392902462922425639312508734089477063351382696600080943349842296707118985337088827595384126185746964323505827779992357491186812965674355601952303705952994774136322986670079724870623183836359780993096206063994288814823420488012471254716916868735774336911903305423433425252249345045553945304369172656479031389002144686245823226072264064908803356062777347648303232160322339862587359950694419598080781091578900350140042958368590592678567176466306667431196623798349859992831560814115849563250864008377582655261251416115982943657071570164888549932988802754119356019803636291087126118891507977050723402068167148160012380442972684649504151040988751928471593167361385918046956029979840971405137436459189394280298933627256590384570194223193929915854032113715348374104543790092376748755869047201206405528915762220137300553676526725296469189621595824899047903272885128527580102796208789475187520192273239476727734488692396133879368614508469396485944519398878330608831730028634939193553909770416225493929583347338311165682912418721409261868039119836264450213512948549309285586532995184311231735591269309999944011575396623613107348870897794220648137535192187147750165823421001152094763355763271099556447109908284489741719303307621398637582212614975623668851104783495534063047113556427444778275931182415612659450044238032195131337379952038154756992444253264298769799937474649575074069541462771249462749940252957931865923637509756493813963307454509015688159573604833179583337364317931479464087030861286865421954232641903535300380321741680315621729451734481897841555095935062370687068447507790688350437371693077627977879709024679438531751898232618534381057130517974619373059768072377248106734647526962643721416924372884920024309150307935417702832511210064338216204540565021398908529787634848190027355342326092739363341274782908706923181211026706591170687341360113975549711817669217059411289546310496598325564820331853889487214934371229555937841655914143302731010055269918248096154026247237030371188955900001426239680994443166390417448353734635648944064965374099771254719069645720962965009658436319029215134951105989290419918675038665312810502033561634704304340330335896123139298025693379826240834688082609526608537394278610034837104217891428360844237994094555690147004819428016214504017496499514216262025935755133184481951809562878031730482214630258628518960866482980117911043309713378501572044037910094400085221221426165293171302307575771899052722843307820111821373559532355720937037381008306648787872367251537440657245872612125142640379433913130213808551029855927898212799583193560569588620209070344791731267796738174764608432181617512446114366133409142708480291712261441769147612873252739551404942659668915478291084350839620169746746900255482774131700490654394555498246368551945504576086268202568901288018519210417919648645044358630254448222118338315698189752200221712113986995330681292197949401659708881830967583560979733097789826174224113943997368522332960954909364802599162980569606677359099700352548294453793326597015593701822640119138419124420360957399976925708790601415414343602455287082074319793493591923915546130302921497608728644629455944526064746034526963351830592089793902962988986230144562807816784342570652507308329677905361415927720426770966506203694798448966219351819795063206452841646764890564641432354248096522400894088381947148524263822383515969165113552711765755189139451138510590662360370830579466909624039595904470606575045571613218119133003227605396978810440094693815802828407057153338455363932705201015276730250126593924685688727879645582561851240429869245145481657526148070486732641618071659023541195403065608985011607327804052371054253875103991230484500619971142347631253802825976357672278463879690152316262115604085466435744013449074438467386942921709076182535078397510665074271194748354645123416861010131192852068152866100517289979207542904907022960099943479958485150084574260167615757691074569186847577439776038205208279674228596928172801983589130133837341444546338499483370416790544705751085750258895966094833147120926740301169626411184911527304265009091162072447473390885511684793712157427283112127966772652953601658648512443206803152144994500731659288500800096910597371929357498529188082054887872519453802534397100202190064421795020833697317977294927868837521763377320571231981892352190157130146055538711713757286604980110702143203136218568582964769857450600322937067548653267550099415377137294364679476530823294955756093904376387149672586413483832528115722583340793250284333450829919343122506898324830886860623517321961452748978174610138148236025815507447931505435489198201518585448130345342480551327597350140261604603091451637012542783981502639016758951385583870992388606474524573776383178355326853702672651639593154453283576125485530633944361369858494542561691340041433770594740228473727501285986180476484966248058142573726636897228824754380616462410294103431576450457592331010468954337001338791811957548889558471046943912630922231285562532996728221827926569416493945343754060364115045475256793621105185851486728625915547599750892450005778163344178829316732445309699626046845895355647433906491182424362779077964886489407556980695546026638909715981938861866784213937466669461811046153141050317385521560691228431380454132559062459561071497449793645333225172116451043420969714535344981764138509297598145871188994014896607024334667013299355484506886563643915734713962095676878543269744781913009605611537748425282503726141349087146026693519935585293385397732181538720669935453369425352716040841175956890412633250076675769950314396375280346462721388785619378505953845266823599793683492532232205514816299396111042799501930053462454600393612362673507253786235999335085450863074887181354729497668136360785030887675000536409788883961600408608924425933262073830537150161427552311888206733225602826658270123110355043201130967532758425128281129178066947178022822896439410133930414332977265548561670437127163766222857991688507160591040406933685241651357637874330071032302297953898481832408007186677072849937688234959660455020712455301768855968332101316604299424675866768402999646330000919490376448884803676324382970604955184994327950826099417959382179829606383360626134449134702593574508932694628241794153880756230312641297712902537057251867021920282197012523451030950768702721995416595390525932296131241527060370599861894133917149972201623494530804622495866749929206903047224147957289322195945082900934413004750302489773651048505401001638008207070849786473169161937242608145775710161097242876482978221051807382445936762541021375170152297871747679914039572109239057163573291452513806308880300097908070034808155478514762658153971619215510752779974630628507267644365061302252345001154835902353124266903960212156344240166298498137853651864362020987066042228751244643982733032888381354939152168039635988226433414331974378226261221321402005552411920283633918543162528314334827936017159515141011697864877564351839333983633821188751154620527033990939218196339183738926154745102959752647787133993670811567275453088824421933079945673422770268311834739380140165706936751906340209834167703807454202006642830160122804565895917430904398846279925929219488804444434072815330546426309612000146773059394498914705912473590375213528054538264994834914321942862576068142899252923142693231019733528642122091661941204956738747071993739560663501982559536549124562410398716185597461665162522088546077271009712442823880320742103097087053144378512510048300121349502532002364888157478215674593622756604068591700484251718062062253390142631997834029160957511975806219321027468924163627244393912534273111605957280901540923127684109775382800895252389595250515195307331844107746450338523334418979371344692885866593093378263375719961651568319845495264022693596505908098233618469364988162606616070634707655950786881858727699366085999233324512557875444740315841679838228833052521115159262577478044365995927739682326719624336565816346394071456692909294447962983031460918674446819024126495091958460572499014642972602997785894273031486721080570760941993136136502293800221940449194180798550701700633520116192184400967862332027813670099394734199530871457349865375593298357413327542322112907809900180438899069364810974864605006206714316507142775882978826277220620510879048987581543922118164708119479860250262733803333725387599497008152945613742928841740946271637832432434298260047284657629566458139557720152752883354403236534402427855431011719309901263090421709668190729460928131375742141957757138114208103906954913709447408853381793962230224550280445591864892443095792853126708562455079496020305581573407688292097651174061053822401852824615083046085807137148204351263585942300608434172892626430098500454594284185769865359728907190720651348859661691657037514303908475288190991457295174783759154807824178122374309722632726346160524437656703129149226835288163896909775735887237092743671452635158241260344474855750641253024327287423961086867698564009518265612792633776506423853663681353813840359991749751828089564294720391594805003590804348265998808458639426430102626821169608599159440840663866746314057277224996609159459770816310202439133859962906606135532581814420062794872502012997946518229628136741882595799323667823783570791167108043879750433731253837134717498032177269436915225072371115547773213295838654174458478206968068502874907583481350589325278721892785711745483170113007833660225373243772063104617060737633386428906424942656555737111083550420432686012109963876119196333835592109008866069702315515862008991657783469405721169628702368621928064080099217364260145764409710136095725240494924533001154418167148451660092151168038847834494656999562282642130644942610463677185100442708982700944455948478525766417874207525115839379009920189657870380740112991515127723869228755778852718414166796007043116402655904095043841894529590758745437341207641136701278117088868883086185792600152030099319118126354206027440333788972777478010160396731571870359877282625455459692007779045400469650878812092012855091636190973813394402520737158378036400475192355825165495234413813670875053909303808401367460684215765677600353920694009295104743534241083508169931946220750838827732797127379424125095521295025321042322569655255367675278466743481340040762008729561696452808376980721302462871553247042389756594890249141484273956844958507181702149456743101772032092676207900297853028273928629471412708868189572665358815817285149002747606050699063790642594980531310027769765205685794453879456033049932566577242137201346395323012590837326214922314619363608883095702003546825445134521489247595055403013984063610874545439356297544315442473342117975757452433749410715649150902483204567001044270486278838081198503279834020272874681787264203199964638539928141393005687651554115887977671944875150029129610399439466775844932761764566352676559924234099557481796694223507617914286486273327375608074308904845139360575948878930723854704757167994310375804165567552272939531040008427631908628848980940830142093827747254814355927952292524262213087724919596447677267650391174795255404576349732966664311044793922213584899811843775944557663871145774597588575605243446991817416624208527748954361743466150342668693858219226367725045795485502794146034484509524179840782391908841035214391517937500301753139333138260054560931941749758267103004235637216896616580782207324184159209341331507025732120195554148062068382514502325185304594599207637187054830600182378968558471557104995467515436378864352222458001516394376266946935953507803870794484862777962619347796576315890476870792054548529100137512519535090466225182331314711870222433847613613013877916360340171177615313794947785888159420399423502557391520280462096961033777586550573060506506100728093248158671484505762410565707682681503609546042277855488150466080147556492095457046998678542115627712922738949556563807750904567763548358535720300072879506454776362679231519312308253583572556258930708188902365874804444365294301670842483112369728259439999953103810556046989169325187645359640409972286592798510102101689002626899218827977644324663296466515461888987536569199334968033598487112537504071848659430594934660049995866904803216665298851508838571237773739404522326119501964109457287741432722297958314696421674418583738321603766607155997250158318963403484650712627590737722266811350821260940568691037186531527305268254854858998447309054211030747527526491374236420900522518897648401479724369677813464386953190106920896847318504019810302620842523350226190109748216170694266944635846464785631126614082939051180478945229261700490033557009137340813284631852054937271432304978145530033586462337612566755214307335574112026896045499574883426719146657833336350703788013282081321561527994317868025984575114170586860918664047223057023664389412392281198005432718286778125930125626392339018931166363055841765877494285729586335126797168953979342209334282639247839930724926017900800089148228825840970547985296182499147218074492483053141041848395677851395911233034312118728920395886858525193432802499204744025291594683880711254444989822171515295229084179556540687401694068180413604724928319360997814755111359770825169767839659274386766568665590846717094024271342452507240588938882720759287433689436003652559577524667298448460653348320937863063279364487313231826633422327007452130461345330157811019851858851106615090183456524181575276158699534571575176934359657241817066252969101024497528319620814096176954568401656712299168691524078117206820187780419760962251442762594530238516898728611738091400889973579402340991658405562441265966178393956957735480223916872734584496416144785785896869251909364986221553208282227555210551748457489659806253790989756751912812568031273341611292778787758276536067187358520419453041716639642762462288306534495731858314578639310703800772358711911982728893463263045513108702850850736206916003587570597742728543168853534396038142999147644059146966847515015286155969631903465058046843470229772656056217219888536352549671608837359674919019661890474379609521432324935490336949062788059387102382388266575767230009973087848249549559317705062221871208130876610125871005063857452225216556002305050451942397013095823663199874479358235199190242212033762316300644923747844150483329993998909461837386823064370592518609094198899950010062278530622990300345876646528410444649885293710100039288398198719455330795736125463967109713539526698952329349748113243011404866323232474067847866940497049127233507340665487741933008584772083421024430191158721379793486440114852925230928423132287969352918170733345087011328170646881689148688530919755108561464996199608004246479228852503249604141307248822606759493041051361744524207025036299269117927197917106315231084899421034032373357921680204537909624343596576309697992384325301570146852838470174375593736307883997975797708530295065127945040399720076793141194266317692988989508228786080111180760816651177612772957891011426185071583562616528363701929728184737357057883448249238792796624640653162566243553113753359102549183829305187235851075307533935234825026846618900399312665994199064950579732948707438486665024770349231994534929011999614754536496705325043235776796944756154892969348177833805998391962705011257866078499939048724796090372263118193579957828747084977415516921937727490921786043281340713075200363677741862933392878735950466213778293715848432647618433633653608420229635927220198305205688730857171611070322673738562087123887607752664400956695625296114399466272183340593752737682663913986377348345239648114085775557849430171408078407442933908885266621043179912862745226237620355492612072422296468891579223168173808212758796848136376109548807062208433965068458024131367213178985406435864919666833973880570327940853300712903494207133739039528090036598211136001052397068117614305848654945616815950889665018752829423894217833053723812291748436848833299253385694138863312878845336108793175912353919572975689891716553803305376842161299550084940309173360542745256732317636193102024265361602724617806416606568480876893228279735486586060157343105940046973192815491492019945039258519918048862276343578035555428797949382105310717980944254007373895372590491054474246923204790995402204142259862484306328721824929574247347891690712848648592922863280741871819198612908673414241787794138947799050679791342668573408047075589998425708800560720956080756265003476518222228369337542010348223869263017008012262931613029558815182417667831523120112512755226187741457869254977244000787729053628055761375610558574304762823052064601309320967454162821535270477659985012995980063519025345698926096356428130039224818660845532948725123721589592047663632136280655102861806170774398232240863138654492745709568498763245732657495217870689989278954772192225838276123677016848428526161121103612084985501061069592584513687731751678855722815415234480569239120434126751514785408253168719710988824346540624074622555078327358578228874579074908177236493927456982321678791940968334645787925604336726376436015176705527348607426311913450325038219726415007840863952054416451009181913566893162467581065527537665080604922901855956590741032012248949191835729321955453678893828322700140962164371836103493302584127599213949801550843406684474467403178061787465240420092416370811786149216611472151005223016824992658303140361900145129547871127014453641858436731759862041415735785683707550156356322199876653197584917112804603046754509382717392580978429988122757846168050792198737186929236221635361527528740475323611301015044636952304474749551447625323233309375197912481117360720259687261035530365532187626348758682806257014161571204176905506699131325807429806506054700053670970865118815564869321006025339710745329155585549435072535293074436730301501447992695005886761954005915197230611103989991420263107111581039846842847476139201736690676208979686035918494374753113506538576953767690871423463674685042874386474436613583462484411952460472334684707821148844549134322196525769311010146146934417489936074145789765501933213519441043794779741426382457878612218312704234591866096971138934439530241232908085676145620447984428078274735332257669690799957043136563111970811896103413867162174640078166294091907489708758633654322306705027203867331800664101147163876387132013831994911129281687389661217558325972982177262406384729712744054770664322343894329163850118846733577218051043574897722373686709788181309709161100751397153977642074440902621561434744702339895705779461563940865415357451537071404932594298846446765900381211095499768737666615780111184801182505863924505146894079472338657299962327415183839817068404734401907189981312095947428439084072278423501645247837071946748137573218219254190359567670268811052932351823536434716756754612267641067457908615969051367443467077132053053121293756099691080343196742026819563618580625275684182446718384412309557346263618472345553641781648013581796676599293032099600102742900839828504514405080404954419118138644030593511894162870767914637748982480306444188691966545803063782586667111543183012563021568163229165231089087707034640812348258124671103610724077580668943010583252141393167512271572165830489265839434118053219211955154000319412618688457142137111277197688263095758106829348906548106135509610600021921823008834789038779253691512250961641600137047134270034424040218424287913647660932110245913204473833101679516683066125006568211491821299366192439553092990668688374196156569148741292111343631819584983243242393053641026731331082339942084613979271204221873792514970749873707392721035365755865971780544542659562091748571759398963298566219361637191484922579342885919763896217538297601713177049034951357683185871105112382817553421169444173064211796553814189483994945485877618603884317904166447234506244475264016353131770152338814375347998580946743698816414998252900146938957549459712564678826197178410748947454867933462326555602701626675160587801930791454260892112378499697658350657176535672669245956082094757286556266763614675864270003446040998703592800751816026242750838940089510846490580220917641874269169474904834021099454005586818951199787919811650160365831275403839915303896397468086991153811272722823940105172736868817577689665744906087210335914348023945705255595755625299170671679288852470707711372273097119305875794294128744945100895260804376562746476431493757477961737777250262520902218709571134622545293770207461823985672176099702519008363655214736353169359111632134225561033934423805039269292325684429207109679868897737367528963304024712798086743670736390668086669531806053225604719554604443307286941916203170877179557214879990765703623116321259301819103222606333937155361423870227641130399506282587491019574833884874173986802574623857487758819994738258217342536083385723786327988547502776564097098425091145925742823038238389936701932175389329514730490480406517384586805059655893557737986702127018657420019283403595722847688031090535037553248492139457909106559526402824685578152406885715837492752825003973193471656026529533512322214938848927695970220717673321525149882781346045665362953230149451953302752006577055594113327862775858412884790169065933128551633142814136721397871783399585997620787140506126009023419897795095018059703083175284245730307991061347576701119297734057756353850195543471751454004144229291706475657399016603231208462692003593084723417213557420184517798642005084961343398516954481594808781590603206647644193963467247767321807269080703854693558564553947783889373555826212662495670880846619349118136593762223604132177727591678832345554311564881723739455188826629272331389335904615858325590862459974970191733289697936593258812810158407812964263670667607261100215080695300588874409947699695956834966135637042937628181719327018764134038767804901565003850155491785440620710003495836795537666367020907202510341042675293853841775619873466349915509283130721029849688095136290478034437139473019246454213375274772433570437401031808263736962893372359257442342387277578224904302380089895614734049236620040219457193522833224100293795738771122516050693058533129306304241213348242396021212499531959665133717477560536088150754395956035940591461633139567361212361380834958191162635126889310655438575783764975125650344927839644192931998137079895490865640352619369682137955961660374435331776267692707211962009507734551331942221881115454853206695113999522585392499383397667226847782002254751314993365860662211567111074209346785274503200635195291805009264043501436716480742470432084240760949436967857880348273950052382163653889664346756447816450667608327771525434103573119571149510519637283605437109487340273930439076542670401821637803029700844122440367722777253892121756679090290904245957567737641576616878442639995386220407134296788425749068898319378305871946006215598792390407403136465495835114293148464709758094261599641845538830477912084208646636406649979358217020254197221446623591302495216942044625421698390857857786009210995298083854827842875608181465433733017228021778190031847301512995413778468047672654694948231554154724722664716838692103961682099572965763018350826388701680689704332167070651027310334183717047994398987773438832162870081418362440455347559062582809784760135667745391663580207821077632176057298257147099710345228146886074760755153079721377450978212837059289512805652827559811535937483466681094174546138746313558563582652242084748406600894546967295199900444020430816334979554237387427258023040650061620871795737621327508637387691713662998800942460786697513526323685193971638057841144500141240832617894953147287363624515033837580749735155769888762256338334360598605058995400991391194294975776508015858043863501603018198749288937390107526140375274267114540565604225972305780941227308500671477841310407879099298383889225622708718050745362089461619224636993483987528504898045765768640915013282459902298961150956188859249842986275671452247494283728222920888039426223397378350827257447842138505219427257298734445802268209120648581697714403284267402294497737009354300666400521663674134042953399840568365932627636418674150680446479700483650573634147975469293854957858258268599730990509688037224867838140616852074874120390924948089243662034250885090539367705352517529444307441904076232409122626008131930254904687336801944215506327226872646885172036336473345250087692678027596775843341361063042818033719362833280696369197180554055468830347261131325338806642379117539597157161233636617501180916225974301773478842134509106239664592477786511528484508139986865159888191592339329573085685712319612898528955221931836981382729140123175029361661843737224975726715362884495853054685855258373536654440480092727221645242139924351155404604628832284950982510333517264835065098160491724530708228813965069893372236976453572165730931724288354808080289624531368049144190025085980600243047997624769067503525784873651860501460340349046208936337992495515179699695454575620130187079808671239120249983474517127265415279423486653153098756358688214040019747075530069258696808237650784187971453749510531662660223324586199999403133755956425872278187325101979734954407784745366483933442378474064901214564034486824933716072862765694497694613220089615245700583673160409959572321054983990230582049611526192601418362899161681066496710676650127584999792136406739827874062474595412615499056004295512158221593465509866825775948269953222934122813461552455008387143386695260507723059420206875268608408463378093345534077148293561644454086381263526478048523842974703472934674857068764486365166054785219821380550876462629693436334857686197052713459565963843746552707604993521590212723198356609803299835840409656111663699120326086369051367620966623969151010238003388874628990380107528892335817171697948689073266188437366540787359081480355287657214126843678884139626349256814966169748600340225566940711102602119075565453564385076012572245104910539778210093972038920796905392334183446378114524822727422664010806438405485066853346182193850088376418533684337560951720634731388304625768839992165231807222418140802922601875822415009751653123579797098654648818301093766033091126470010062188938489484366067294309987703176824202086587625360849553556858193097946779675070271453386613653540708945074761144157348041540213916445343702900362804463061798054151525395669840130936299996637096374361898343783690875244246177376162924209771139802847862226420458350055313641073045779462982650069207114545076416271293138547515781356622268659363197331876007612840418744495248461506921721099477939061384898606892019216296791386760851977718021409962861077022065635605867291243845506668706806363521788664663158365312648883680500482079530686004376197884214783218223619546269502834190647143830992779537568091356659245557920641674631992577691089196703186305894427930767375477907251394326433298326973587260120559777758552548749440113551557114060281334917523817649167255904296180791942564172097123816223731481564447679650692626703923351885103089858051226943502536482991802685632418423044269107681704508073428481169604474880034918576715302903677932658277802492202724910423233877890760821555814014818022530519922468728433497676962667432230086821468160154388567072943223854947063297287327137887143433757478758349297334607853533311980099136155772284332055863976249440548437110729974198391326119998619802634224241559985644413962391830241739393472719320359545362908028320178704446889498927215502848884001468832601870516715725566327494471216870243349425201071754422295119162595544641339747748384239709736469831986619465640222561981199107240099388456195038914598007226874453278706572710844194067783334896286303276034533158374057174931542735121750514931031521512062691927442086297914684206272801357584384166597918050702545749051490093690256843506353215558545797865661034137626433821861361027710751105948934691612625409490343809794772995238543707666659740351793372715199254205412639466598696908037104915182365508888656638512904628795732981670469237801207535007514144662422939135069146294085031761421938790022814873131798974452122078325500559643887361578908625536144325416290660917616418744344552816877839925440605865439072187403852003805178345906682117527771587418820237766313027470503106843039014188373894878029004670148438628676989622713765828953514766681291994285332535660045693149427608368482966614463692870817833733138033701122608798255171758100201990898368454834948130493584768645732395710687308204987724816375917873613153013583536834183117289357153287067084578725157769167857708244041807168670612756432265623941822229630779363936241161579680093223190346357112330709771196037339460984255282743631347986110762505114411290025013283607427445774280961371207438124077509441011594821088714886761692118750241036574971465835483762308950957709620588964738808265625648685275756418499828057946445021738684857387363171100250855269174923190973489909096610470826391696044961757063394047649376507484213557010071432138398614017163227392081735238993271432236767977438920138050970058121711981970166584910278516133527765496697174570073747071099086507159822921585677757437805986276711110636780293200753120580060549291720175304418496842106784025530114883311265044924486645632214586276596012649573518079998557802495068931507652265930444687887942767071213364085242703375182508699333623868210316694723301037001342303760374231734998282146857838281832310973015755343582469616461374354704992215837403618581548938424544786152253295769215696286003399456152650464474745123579512835749094598656416394237152037944018174850008160612059945072956410578839756184909330077949735387921858372326294517641709016883432869126146905176292939588192012235502733207292319972668805825492239201858953635972469325155957649664882076723653358656157150060288848580474491386695336013927246310926671158284753190804820767623217356369832246471088059621082118919201500437157342275790725561367746898293701670296547531895010266188013839926775251072215537206103157279847628722929813324742647006449065332831421996377646639264239336636447263564909172887452213799092654470587855277783527784051800723786361322401664917564637495309917792306477079745215245741333359223704260655395271494866240291461256547809065828023889270114328417666006112690964024265047800324323195433135651541374072590935835526996647938677597737310075138963275373617423683950970871238478456066079098059661588233388097198938212810482147700317833767566051170908666011022692409323071072157513071285663390631150149198371364565020502431910124396703873628673122686771037657364042938426816979037141847374802825659544526647353530599841529905177598201163547158120003032333223192620108103497077012838074683705062480435259206808204559426507188810743995676072626156428954933827529176448932392891437831923039496841010128784860397948167307400533611569880759742774250084206739223513390499372578491197321231722054946700887603170511068184371602956315807294463723536188158994902493761258197524960614510627909972753200938567152213969774701693324233154333690499843662888057250352840695020100676782428689056538362509346773012868753666149972590565468427474912669105642508762009485372183281826505182117846574130491478142819580193055286109137440605472050880233439659841366094404624953556715607891440775053955651815593062830395616479159755814691878105124975629762764842917749517032198701196875600771377585709064188173746896444601508393035349649363972740447845827236434138996123890717364756594130702977062604515031679027330968275025381685621042993554132077079593174450124569284067251578918221418860723635493679622820495100035796391510766516560640373575009625658621243812986350821375077837287220952498142307613499500370574218126493329524305807104583819443322408265416265864842964687956663054678234479242014904387253898491932764564852464169198571222413897092169957952536677485445023505793420370133883790753558125804034691867737588470273819724807496514112791372395797298354568048584441649805456418731874926922299393673684153953986441942168335208810716024432731744656776053816046154193710653211763875425565058111518647885316460864713785376094644979445367643628758942952074118743060408909420807399706145021691322321630467429642751241555640925155898097275505756174153490663008784437458557305509262528189444206812063217390536046292067746279388276764149638567758759249721157004788566757023731759062208732658414577643400979416807293081571708117138259609454683772224228564570358502952687337914887879791407372359818773187043065069213165760596623197137494604786151568114889776519675923626026736555906467374500451816978888976865974026927136912335673878082614590578519573665334806592025980632815562609534825072266963553081841505914021633822290659837009621686756479576917854154090961489544492337449407048646212618597913095401637571758117106459620594017535590782479654941734688224023594489070664524577444950412315587611811034227499723073445030248183545423922178083684829982454526501976854583834620894217921252996331023966083545692279455950781368373723303535843152453732238395403514942559530163495476804166512855828428917204214535230512740803237526399604960495644139777640882653247116011092745236563649233855606123933607465979012501379023803832425888710369731154628880818463303682642782399881555499833999341021404869257456901210579227916873401084944747526621373146269407816723589706338579893213393101724652744171858610186146517247142139754514569232522750888033153641303276678504859348347759477497060793168618497418830904372584048232669166941439779614637101726957555539666342664353463217737874516797707371238184899087303009740242660762757264802118454188273129124106862794735044714088952651423006810903979191312478725279794108466945233424052036986704835169915130566837057018622348115187385510129706042072684481703808988273058857058988892476202993043025049128216352096011183412709781533807827399864540393247269974879451025440452850301001091574098313714571797579308746205757030528654322992220338847160372770634045926696953899279276768373107242339370322555479452311768990877468271584705898201703124560376536950802409825549106317893501085127549746127124886852570251970144823521380220973618800105671617654094160168846931710524858957817496260072168814373876596136314272293008940286640385810748795607983376190881719791486873362576064966010995337622947264660344752468993136079106120746814125878805631375650819154083118370928864967203466951030529982510007752063119718598640359760905993194713841206488222754131962593705600664860741014884850794547669550119016091923884013986044458645539024148009845838854021910664476384977963245332404110848797141106055174817362656292394438989293213400313808764568132955780525471460179276335063198466247939557744872827923843129654828689325394816325831136786506121792997245248234658612996975627606055280514487670041492226502550031096082992627003873019822440058902029148353097114534579183299633291217724060516477905899074575947739920362661723483600604187460988908498619263128047132719521557576650736583057628980011816653744752356988932707632172069980903011100205000140705652141302324600999001618621935961483322670878917021189885521164644911034731722963563916640013433966598758637436345512269756402213479152930712107101495930879792427646074636375132123563036378710120913727526063583886188831939599722613017965848572285540418502239836631395753253159176295165606767022389067263986827559042946109743381759285873958653640256196414440625591466149168771913807505465722480036818748081871796573393126622658924684935799063777909133710734253277074878027725691264137829229916715290428319708442925835260033154715199169665233128867133650890971495121488323454400529950851449638898426057099979013805642997587630676272399738457650873146541512681774554922786175999499413852968385534364703891964988595749939634839284351066167104344868143607389406996658219073281905174971249991170447628069358840799486693362538002761717599225534958010908198530432849260085717473131213722254667129767085809337873635424242432546465299749542529855728927386592631866426971059638252312937095158301948173574031031758148482292674353245515678731670760957690646552507135618452985246333060631035897157797180519886902609277107432852941636210814370639637070599624502467929667814189728790630839378734807856148872013623981818050078494814636696379262735889386238365187441313012639167719825092916157859580950556818471927560317880723249751731987783541792116271600973774873039891317949534945520525165699970490123752675658412739286730971590796247929626654126663931668709319964248685720816372674926571229955990188389602692546973475719213926957944455955820865176293369171604655885437635103002063447448209807432188099220499595365215449868451232762392098364755989633824221962381509254589406700608706993234584232817665561930874953300855429056598115327049218955922306685541009781388708727876102364073865773851213806634735769353215474444958355489942930580779003924581123046956501647160574838851481989848339411293693079724656008512649678354230872623925983186398055671180151675748500322056500850008311612539861601446737948900242199546313536144245484953994345048680998157064326101407841380303747573557216875963876652457998696897680056168404158447643182252403461242468230565211226623877680895814937690496128607424425417627667518323002204834027380896431518121841534552295543749823253655366325201406706271343152114630664409411545564399438626116287141940588975070289058610113845245736877198219212991685165606261974618078124130647029455546156102860790037425547745783117086637280389877435200631681447719349643233702864476904337197011838341761477143070900615234724480286937131352907098075436800721680822761456546109553583648937922946907939601967506105523618253566568737189596196222337210250827818680253618497507400297653417301227574339296090469424406872288188435497323034684770518450260683752560785175996945897686427609930217695505342616266658574600087429698228520226506056637008372727736946870278551989883151463949365869475954071783262317659718522467252890179781644288000566510191413944098120206015624763976649057941106563327854911245768190389409304868107990532581845274817300798288659557610105642305123761527752339002471469413844876311130327499711007994367090874218010980092534310818957558280176866459549584868823819618411409477097107866754261248988267373348396488714597150457802309392308259926868262112225543437063277965354791783794127048694207846980867901684344995133080896055226335498393160887415340673512361457626912416074259039793254390034748025019303910743971822125360166999836902079294285224928203508273257843091603952738570855948156814184783164975669148274520955104331846950959269917305141664922288613178367204379180041616565395001065685693062029322228241920311907025475267618756316592420783826992241063511744430435872525949433683453024507715675426710515578558443746746826293417148715624224716837587140211378560751189790193254669346761827842814706457401793685767855305682014635533755725745418750751373465227127566103674265590813131067676131336163713064309292815333936362423952798856056304068420043480917632766886336635225306268250773059345087038207070089353529357558530630107025751637654220594582102606110456510615387858156215172682758000419482391876878011176184570736377299569932867361922130732472687182480893309151162529857663690309292914294546171685861253276481120694049695731428276974321218555362207127967209135823563944684789202238407129769201912181962382419444988762221250039455625464028257504342795938720954866516114435561830539845227056051507131892013674947931474856443023914248415318394446865313768878162808565651302302820085524665559889836760899889688070968238422426917325411212939457875300112973408473849937980015333226732418155901607046265101080761946290013387258590898346444575683969916647344604956113038014029986922359922667209250311365071948539651301884940580828245783394860710020936415939012750011666115613317247048422061928922974746291612579288714219651796522862880735237625555707314921241913426309857399318904920414951177660900520423413978957413179928481665489178679613128268874284992081108852138464222808424566155547415633654337173692325375273723867652800526297092855309583931799509379830354781516700608824082195178503231057159385145558704537936115806137149847070967194898886345019989207976900227207874815680768091328188548338410074259513346929614320959308053948227014067198499358746979665287441605536011397846058112531582939871611412912507835977023199781543949386073046384389178353073418112573016753826981460053016021874518106690742119440258515643780472111797609062161947806366554280801001820639480909096521066649890258970750707287832139919039152143991398816710521990114769300976328560430650023008546574766164277823732570546525887064789761099877774462195832196529831204800349487893541819392214107807644267358796275380260822048497513152167448568380410244204065005261391374520185798173806905518141160518577414758515964111766364539835076137634296260611758757550266070066603958704044305180060802226063015878627122628528368436660165126506171208515436927573187567230140093243144551410512778452382937616405909965063386900895227505103401011698840534483743510930103957309361430232076133317070760285365172668353171952529621563734940871291129057874150670693937386062398312284106484473698230141262518704354009946353091537403126925888153483506826750813019518575989437929715666379214499448093099013072445737261037181889404261797799074392494243311911040034453861601873385434650264299086606705608065086381332606060338082982722097226363691429227736738793504244663271300903393944105957544114997457019521480983886920769181406801880662354920715837392975398344660534913633894213625668863816023801576793969068146609171395340987271658993959167202864806571110491368823507742440924702386304206870443037583967980042781213456555247843706651332328601170952967364137571842867266860187338288962900263934930765567888289008569220278582514662023949275618391993521273049852201225213203616372971787158647901214607590784420818289807082588309513721934181968691251908750595381007209284484555691805709593345687250037493517319121480107179321522839332574565173709975723432725478319769336547161824294805430234852517934855145252183552399649255595217846447103560891653358263036783424054575119850447150149477859086886326864508036046984984062284337212376294141418830993087577998325039943107274087590399619810406944914382597455916237894018544823347684691840029545345029080329287982091190392578737994938616023161916009472436359070954599675663246462958223646254514345890975414058093889489018014640922976832790389585959126254435889392653057044007966221101090584517455951377868261250846114321048644119695116887187595262828953514293295130801994408832488507320380654652106355714460330477050405016851814192708840183564534044211886202085067159776998490982599333370161569396925240590740954532009411265828081099091835238427253767690159967813325637973042587794519164135383176853583047600477149715997897679317041192730801699954040636118669432076921414792315666474811242425841765492101286665482533261520450402134945812181923390011815153119156689523937738089156822479630692208888623410056564755833038799447719802519493281472711966581399036917769776675810044465937745554735734420749522624062603670593493879644589238453287374332844885180251460402202775177450394304522135228721752890299398075524787887654929808698617632202425594509102087694304235972646501753516347663414859354881714611299804655326689881221216390045941952927582002206138243890536670895711702925565873509486719316842273578004062760026670980973324748692768681093614809847055102538516203249581338055628524960116531088831059186136424261221732573347675341168790219528680457651235737362621883424351684967616892559944507438208629320090477989836660353291426978475574057578523670576525680679857534526424319584529663804222609778546811828977721782705249104778629367783634775896223873300607049446586185960398528535717932748784869984961147697009229096729154512735366602924604640830134759103026394934096381841782278187905070446507412001289757955861482319128988173017792115300120583518619503331221351876434929553567118301770501095924129580611346304665073735875448249502106288014154758190185972696370146482879364147917870600970711793061275176466839424230975528330334031241030366016696829056717895037844830141541822826416571217105674388880638413117061182977516705088611440048794247465061881701177106903352918413776212032801930680287463885869973183686156832093615402151974327124229694959676174320455921684105140449073764840470222853151145588834582942035800716552091017319721516165481083882949845762410570086505511363097658168715536946273777186104488008250271335989843209737045248470281512716493604922701347763535051235473369757749666534565098598640144702760999766080025022307154570378318967528456175088466509251192801701903131559068146932210897689020928823848808813460681553720652400067402484058405963772584472893836065546424079617507476382194272963529599600516418393737032838447818029412857122124560780087591394056862631348261769920396716645886334987089429114052807559345921120177412970112080715522325995794175336233031014739272773710023360482356970943463077067861111889465088999873516481018834270965696650989619141799040116016174163916943187293146221119510483699850993465453802617823552648462015543407144599661052013499087905941123279343930088817434660295535837987733891600026529084982996978769066744690770966164897298938167429595888067525928840316481578614146865934510980520948973174101873544095930796238519941594887313140339249619968390747305442525489976559850508721728550712532774603895379363368684298546131116234140091519386967533143530741345415950366754595084555137698046406154530164329129759237783724275492397674676767272911102521794853688803893119128263231150946155724173031362025128131350968352861223710903676459775239584940150724756160868475339588229745441168546843877371372666004035001453647130994116349168287767397405102330620016480194514786053262921450810159397723475826437272889616225161240148835570388295891299332812691514273015002530759064488728076552940323159301954304182407851055338036439607712379402153085774461582736863743721145138727528484073507254194477408634466590955835065362980967461363099064418582993940758041158351987201248095088931694270475697392721841007193615244454270447151592834692102026198122822108775546211576229329105623448255597707533809008046000599774847086553431458322493662271223578023203661095077504869411485223563392666577207689777184196273858342235165508836525817831074669270604004331625335394418298608992793788133577734347796592353766152610816991069111619776090360941112791643782333138169223207240888714557947219094448090602008426955395032805079776990621343627373395837515683085046098463965988523138666275986747674668274985061955152339780194695484629180103718980429612413544611441685553307085154584428950842601257145949431368015415604948728173200179436629385133002345465680152409687695068452884339265170116095012033302510605294794669641109833862327033679214952459360396258588993614681401998910711422001622220233364288907372139434231727510170237323902107128722763553998773780015196770900875467007644392845292295842246523045559503646726182810956101574828417343678538233935582577021645918347131141423502576927317419324432549574303934734048361126380886646366150756225166001293294199713834782978350553006049750517382101177881182217655224113095079978677432111174434407587364428497160948855540835945312144207942838027542820694995417072017628245965185382810580379414104012332432448476862222835801922567621441295339019711782502126134975988488542841755901253563827327565343738611261522723318209666142258745246520795663747249549740459325753931362596180349411104977844230468844237059090776802255154988275442382621184099845573048109272239325410896838845126287215660943671182555567187846312597709147555500275378476225131348396119171333716195997550605516318763879667480336315655111300453517065548906559040110943193792772466645372206069754421355771063791406069532752723838946490692741238871044680068832392759757258051768863874355404302957408109326477351192273363654515361283034578315764622840978035218081220356909561593745288710663863170705074960790696434964374096643479402022799084561315048064093011550437096559348325308756072613436010874549673262009003343863893605713033991140882638908179914480482235481158244209832426563586613165092582013300798663161073578606770743417155932109800405455012808416969286346471087068515606136614822990693360602095577381299819488501227656451582816110761143633208720435078081016373113325096921119298906857940146144661652294003780352827046418967823654656987975938801694830552898488574940859172055571551990170148292482891901019577219366265029531035984371296353230101737304465302743147004600248425999064062116788209388411952983043060944092410056479492431554383878938826286676126457159501899141996217195863450698757545031603197058716055541172644395700650837554177003458184381024246696522606316699240130547997924713783839893089508795490025235320792746331919916205512195495555063263491502233696515041712125982316466170036479471077108245307069348886607092524100025252877742674421404554305475115864833171467667535414808154394313203993511609132226127608129598963353166919542397928170884204880662677624502849542869766189888877056492687519382890363655989501254403116049352501421505905457783955544924808663906019939454177493056548430444322979964084458256607354936880901246406593559565798295820197886431418791575538066943940894961211175388696240796767611814903149330099021430268245194650422711673210698745539786204683566281884988921730629689388686348253126143790083872723190241506038659536295283814348722290535806545347134989644221207567266961286170156347743125301809348214784625294532870866808448070402736608994532087707254161864932110707312471698602188720234600014811173604172776677116545790573125562817801781361712820308032180872838089374273162316273750591529304149215950630099719407871300044502640685169392922297886050742402909657265735920664619355212715569456548307467572291812247663926526912700508132725118253576761795534622715417147773950600309597940919698536657318882365532650223995188054790835088094278412029223857803178506912649774340941876123937765636577252288002811547565325852002959311412496790413677508121590664682172902468396169296897101984397376441120278766782480896473243807524739053625082219539349802295479175983214459311251454455468086191612652599693161842693297076155847665443564529522985540952031686838361318732272000855014023862359173759901655899786464840574016926218147654653484608183047893650935500494135215055576068862088443253132665789911449158510354016798707966911921174353464990377229220862305763956438520602717510293024165753665250172832031429551319741723724672679932413211789513937867317313822490348906025850827229341965923984304852329769568700510635472101811161213011337707867833649955571211641747218639737897930982554909892177615013287724166488706768357126668589901548107874171608416640559692582619234711396456763932854054020000801584266492908004893612362345769717029267194367850087345463913186962691462070707857702673333772285529700559944758587720224213716704028875022258475731035577585450658951652349463722694914757603240721323812967183279815262813158435984490230012283210081304920153019312501389283136933266255560916698402264082548600653249719626539175937382129453912631064916973453901022276432536371675118632846291895470009257767616914312833762293781311884650191019930788508892062153155339519005838951902342340237781589786120168295792107274679709615875908809140217753144686377868278954132523643668630775185322168336897894280501720200166773739207277873717828754994446674705311692778478040124796556307839988256554489975525670050980644430454944519100765641809325675337165980713668997928105702770960650100644123096384450613210399213250878808216613446792225397039906870783628342679869406863864257621194369942429296670167229377074758146922485406741836980278109974020777879986109319430585135307034185166670177951870096803950203293430803544897706415609014034540127525063013589616726672903141365863972089494308730107138964743318603003484098456922822128436638146554409018641486123873811457898763125398045493955116855688658250917562088339640798617563112586584223582542189050354604045554714188349504718924360529457708473628234427328919365393172266079264319902118954643481044249186565785663121759352008970242248867533625842289564702383619477469212706717558069918971239838538170354143400063966327308605091155476651155206134053257777733556465515407093176500870395015198882699883897206039247145104886914818266554619782305566398084276129471241995822663418901173166860171642087185900861160594545091650113599007499875459791713568198525080407668855232204922074924546628422239437403964751397135012549781678140039324136924479006986630711580761479747467939871421504273126381965499085797951622113027568611188881850326803752873220618103037057425914854961677101518606728944754783685304475344646114230005399834211728935334050432562067310464850646154433736862021770633491971218408454563666010591962080363123900959655454310678071849515956123166947793123733735186314423094832676246747678812415844879111444835806504121303662372137349046260357345915001918198703708437010380520063413130828840033233876283935660967480298921194084635456203630190332071924203141630002036398695074342403940888309882717953954916855273265787771781973384598740731381067977508625031472748422839754472465394099475085258431850324597239581563423906430237581689920695303820363544467575046042687924340628031073057610657218252615154684460338686774940234483603872317380943923259148870003983166362014867771747564916716721202367101550884364087468360105180462516478825746177121002629265756297393776636278943436206728854849044970144212339455500439108777464477638167891540607289447533282286668174171739936795952551590834370670903544023922180297811904467429362166415445601858511562257571178511009825632027018047271898674005828502774376409075235529634634116059794675218757999156297702453947567233126506724087781464284978438106832469871388832466131694759553234075004859315156777900084250677291114150910483564505649179715966360996674524259120109734521639283404055644587453549377990271089775298794396950461000994810799606632367079497405648321482787013236500443019766731037894883609641477266504216711326590270026608373139253943682816338560833666024117847397974253614332597561575038677885514017924076796347873554861077980416593329327757832490611551065136898729239346409287117534547148005762142444807324479099775326092481658290709718131570947343743150169502113302903102729523736317193417321488252816083205735708315977612533776753418165173632380380025717431505763197218481862438472962758014812871399077735810208082438948065674244146316699839178582042745226560575794676762706607100968220089768753706935085537719266444880593858962262973682563143106534644448575591248569887215714478666963718481696919617561610682353541685812848210718732684306604712789627102569554692505157745841832939638683010884627317988387128538767130441794840479690721772613923803583822102323223036381173797909242079516200047964161968754169767003123745315459161645688088027689784501516576091649222700332791189720394710983786266235558742034292823933470299666171895894915592382656281434391470000848491843226602302525534031878492329309068718799053510107488703877698447230564946928753721284619395671203265802775272042238795953001562191982305987826699085603927180747644934261715717876210617209667521575152743629486144143326221674352492053528485409675704056681160437590967404301026548896606106243931455351505004420381003771161633202983811206674271576944200878830694679724519506954862646835872468425396284527865842415789974159100167274302644391313883513479580373267620181370778996425293316211879828228565632899905172741838461252689248005396744352395738261796715940601451526849790644727174344979975137084729912911508166752534587491132975942954676299267956129691260843407397098396788364161175337829564535868488642375177203939065524814528826830321950527336028894001855136646930604196468891307404675225869457239860937536303475602831762784968706057814134431991247501351023433567100519452879562290999499207441933532231197270014131613453468686614669642855486362609360910542808999464342822382955242521873743916309711628482542872231513206758969700935662020855207637209451670592963603809344926055974072591073640966870187090007744736229750212817159281906058698741147481275509193770085981086286267026317248739481803243605028984423542330949140958737075547078689453853361189293355374897941797432197835900810002430571057819657151521236827191589421706836041962970974472311259073737315613733083074726656307461087148994075006347789361017947058388013440177240401329070671034761244085118728926977973820923155391606744966663615796990792218226546667796333795656401608836391591192131954722493168325822929694167102916488410489634806365554959959030518939628655509084460879841107265102709643200538049791139044207782545513720663083293608106101864644684911728055423967540596563970940333302302626548009939825906563697263787888579765360785138987365185271026166032433866530591332780129680034273593653904816244874312412180192929219866684773831379132307705421990904200455831230592768204938179428307197248473531756370912231226178855018416054177328446965400181053933675422935962792531134027011792185825718049909179767367509755830506664439471745610062347005177376076997897297556083216531042749173740135410516964010178481024363745200454443072887687520698791364646449349735531308853839637489154412347880925786337855247810888943093109410982883512327263168558659986288363671639823112202701921622522429087931802929332011916409088360320215373539126776141352255415747132130969185002094204163560711218745374329799887697968146811112869663528193087952567534503020505184180980884449853916910316482422398801956558892112418930017000963128241867810220887438599575915089820965302728924500408405511057470239386173706528204753026109171525292182238985791661697181947325561251850669680682122968875449538341835928733742678864767698168883655651129363428311530652019730094178968998723222643152701915936162087556342643039799710033866869468996239682085281371700303188934389660863918887279901708989377343649215641187983562995106370577731955664338219482607831144130128923173846932333909472968533282694777909803024805074247469059678773073325478177058349860488575679979811514685685262767977491147118573677951031375572466113005413469678662565869647877081305523802618956780379621103099690459816134852411185643896656071635677166134126367242503279957614261176653279860532344540435891454002836356339832196227794715949747768091108280894130799568900496133836243009894609819996788675169638900907973653256612063370829837056055716130991277629214919145626561750686239888666093213975083459319699648889451518298889666525227865207557058767730530885711186089744228592721823389134864236339839501036332274722903177074410363850644884092946685298562352158115152810009497711509790809972656248121214229216773041767680777902995294689336347797060696793166191500777330442431147692213379395842710934556919632680316049099315315869339551676621777161820938464234354389417391955237805347337197096288054058608934684426102141917147882734650279731100742385609545451072874101368094733636909512174528828212813557928507861613993745533205640260448613393564700404504858994154680812055283091388575903862187325335385611131078860149661112609180609147398386095328603846270843561722312170752920491207550534861342096537174951933487803879962437334387857974522351292362207650007577112835397146121338315915968627242969871575941565129815835615188007646775709828472261131580360510013226592329930108807236999234557755421942645940759335281410443666033133575114049556327292115962397561001658325445557674826874593315132401243298243280365235690860663945024819882760442478849647509422457890919615757313619140117816041417561754020563086396862368371287200507242582126808937571589400153618003324160568513234234423777237518060256897527820548296569548761828628492438094086268917920404195902302963956356939664669372126335879981326016406726784146622406053712079378958648973529078996464756363724346387806006679368869945928806049552875774541797196136037465797735664181770995306415413753162329921835269340644420532373992858613996900458482140973514478161642655660243307409918888787686617707736903101853502915529483215682181208400307193318167919612314219408375775322104128828164915863412565798534290908790281356818713768537254784990387096502488153651431057521381400485357726030392139627158901280004354278506167673413426733889869479265028461250392746406632868903675581365738608619573247185520635823447105677883879182621233122983868201823427088489419854101647657139341725438463544729470426398640402684037609722631026147688762971338157209683460395307382429717191240363963148429294746677644562119501287369629490839397725875060908240769940272858875986615955354359584314726031166680811516333110221200734704196826093640391964868609360797044142792489319237041449272266029495463461030421661840908874526304389971701813230772145398493356875386925823369103998479649095539861735391838618617694743591491707543055616244673108593783997220779041966393361706852361026554028829362998346109844632725769946797986737683604728447556278700819785256397408672198415791047540104644165488809011333112132383909876046860429021769586964725199722513158632556307786436956680363313780248553129365464641480473901228899599313294772624348830278802201521073304277726909943227579607409542734488421054800137253987325388938293232634837020257937674838838170626846554882856364160856736451736620744376332605334217357984389680348977500826666985421373423990588457093851497681343342781184754090349787160358509954717794774464302836467119140810894549522173517902402248046599502114469813611192742296423819948836696689408887239907267666706930565285601102902745657321370443432380538638529303573505708321424341472757418759074806162138333923177619887982050205822826567164740811836054747336061096002650917325028136933661072976540042417488267471791687546114387493055940546405679573264406992349082103900304231567108303437545723772169353497202538486128277406443860033080273844229462245381359061183685355187043332449635557108029223020160612965663237745385872314444707242449512214792165021619928998734714558610693741406233612218558851809141206832561822255815710228692970356133493630073551965913779956699184921157034762807395565531453556526831916674410220443097582581643801504084402031880522775075576660121294727155747179860920457839143149831786702251675483208075120446678148353185810471289998449458270827988083197401215656421599668275886982480989838125259538689679688325569933538969770767696360530179262673416386369113582464433177161827206178243562248090467760178518052382216449201368027828305559793808016661527923802692822688354413871957073222487154095998358734092911051328391503003122162576202864449944304574402244426295270838160658072466985853426238759603543453540470840935818092927169393324856889947752333181981109007062570156271158802104017286773400523855583798822949172510909848156537429049692771073363068651914787097353062320587994973421508811477915519291852436462204583577735197975162614175895616619472602246556810523540221658972967720041040211035195259000580191901549577339425962187992688891617544881737313052983108299260464103787786131017333013826664834380554434606294724325621615303624738992141831933834701055013694729881989031397708925377741344997618875363566303215389870909293671417098267899799191314750585264263446541817419624936530187514506635145187017012602712558804276314651768491484116563290615819576134461662490819353596418905769895083727494989914503091951338648690100667505569539866168802292652689079351376227208993183711934100953313900700371923501341866030845567302171736585868642802353937372711090507092641869338336198976819085231700071428766935155930738862209667460945042808087877758353102230659281453345020114283272307294778657145650546416571487458129920002969599349132366035237201871375292582095803214410848041791529455114742888161610620553672123302704907906365120308009318434406397687367329550282934064354410491392565962589595125105142957782393227500044010168734912690658861975994385558332639740185390058738874732047115031244798480412016457495351782917528248663456925949382808862745177329840496031936440031795091476917254237598110239981686050960218974779657658249937472225228186917108675947192594210060173476699407474218022401205907249906450550303148431371577625741103253667958526107872374092211609231059329775132821838793448829354872042548000019011614664339968244661584572257162432299881548497567423649108107567148471232303800702296029202608719808929860183062555200032986623260397739958274806372477321524180028382243697656477473975933280717169483738471071710590828194295845134619194129612185068161523322077725681590214586324893379480922364758822431709256323713116253243085689816505620720103037030561351712403684462418731828770176506595761203355867778096711939212305461087558501631731198402716247767365072995262457978306209004499247959007801478281723338937608427383012021511584082723459961741756017710444543249766721782798290948945472705919588338361711371969585100632288057128892684522774809117150936714015457715764983436782814616551426620787023817786387407238768000219501423472576812516407029406607178920684463645260954606860044336185390848391820512945473957355464408151760761966994672319414852711819165584556769647297615890255532776630487797431139170004729440824666546895516463300839890887171276979888008801021088284127833341309754653781813643919091019102134817646791907967709927623298778346252130051620018587364044756352628323322523851515844990266271449149124519507163569757868253613928292507801514424490631603316516555514521125102979191010495882412737562230062680662810185005887868804693981763859643259371571691470969769314395395340663172974210813238804105139605528512223813116342714556276148019663491063269015918811159940521460908298360704967419933570522691196191146287364579516069932033853600211288484516765606130133319910972450142745778096980393122335142642907606791637554197147411295886375814011701809536887482158985887438932294121281718468105733803240327201402194018212201889880848127847956439670143875718835209066043101537879190014353679203432177791354848934317190530096810076575900349564673140845041661657627983702433814731391278117168200466178170630621347104825562311796130617121892199425351554728694946596481614629817673216634847798426337599288411481954487698001443351164055744777198615588980393439694462263012913456540143193017777763420244726627703930597949640175524606697610604890133214106151325390131021367557620830018101101955719197470042739858381363160097809503857863230395790881688451247841210096202308238849372299843185637202967984408167519103086834113504827575051406679508172261188227619619947295007030488331060703343521410425198969636133880685019724066702398449366439468211348580371733242557567538020847190940599040029366444695268003826837527282831428408307366199593794524641614093593662151294194072114944796179114358514758985978832623210751878986402352454570936233550153740023259361338545620511673637559980773134199656327212247387678434061324979724894935328068575591821977393904073314285173649505767993121230767218596604330919812733678875676865373402055805476374551641899890236075748646625526179128915816460509064300222430847811333115363676474552480638318532323382380000301781060142111042033927073832946126760530013235695538690191608840064449951071026653543709647055610290731750452544715828461758590566709457725418791046808630110403690271389126221440194181004886973457079266767796910714399029962697325207400770656877875874981908203664598710245212566103130801147931771961839030239125714415162636391225854852955778934657240090806657514909003197935384730158391837868951518808016157606933448934816789795818091443392461837208483306400957390962418353301200662695044019062936469990962176387590995344907540903128881965877408493021539011673153702521675014761921074441534594071302456138425924377077980187883019183762763329611819244498416837014357143250416618266246114463050912080804791604788526884153042123162973938174536007447420825401291586085851684260853219273567197257998577321556777988900564994125851427525658741191513408749600946557230543120598133036121203142950227581184459198382924698946642818880944756727432555286691799158216567588903140959558762609601787054960527101401890151860182790914456320383519176461428208879660456313946096639019024985073184271892437088780397806780389341528509436211641967498985863104227035267560140993421242262704412274285166213310996877682373419274880759973374812916420550936699043578180645115188542578160210507057000017328978418614450444931980195975092014484335994054504248510763154087109160478436021750923648331699863258876892747892817103363133383593313982557139865897594663693213773618441602629852077886007737694035428868106153640259796492682714580749101558415035743576231233937963663959232246755617458027957546613677767803320741983482539060664144359927410159247920888700530914593335735339500647777717356110335934800050129838924857991500429077588271950717589131708398621195800254587416367004908322078494620930829646646507359751459018211836689825743185021810120486449387612187164474414273974799878031965702038948937196671786142208281885465040345849800349627430359910257761827158583596928763359068944595117526793817282945246910389423903883857416663097588112508534573648978921551350298735299156310882759397674027629662600886778347654505773472533261787139106423569648414021589056750383879917829815580339932136760758149262329305114496558831113359560093431715890311298125710096224631369360443030740353398657560238325931056616043157301620005386175193964121569810916431243362817645703057872371277217580403835424371841892883044976357257087352024727900182703182883994063119633831171416672623483335857168126796685483235725934287374510305468528294562874851003676908006260028116083375339494256034637831123838988819115272892775030832293967347077052300916872991322305725335258639138539134493418849023584132309967621281984927608690774197459263565423891887925801109714133941300336718442255533606275712230896656310113098093667536784184660552818782162589653473207911924952502093697007126899669410535467485940980807515025791648419883202432604980881562116914008539083829872823784039539964691688520292269186303630812577241756610809437803325495013151639269349285337086696480655263341241038039797632299576440925411911233181373898779274854222377005741544978571564118468030431273206076540894218066984188363935233886110895007325925109457887214721117284179328851265651379549097232553671548236564367754113003057072050526379247675084883792326137038884683698723837496392505687657535459923537894107736635782167959029903513420016632679883875874739788724532102742901586883493401400379708984000343451979842698746720769822049542001673812261673717896863531097398702125048174359570344087390960015719598680336911384531845005377951212972208429096185375192773873006429285859868564108276379128775075122764318276644992553884295304311996337393849505668090656951785171722743679498296739897097310585582655149652823482191492347883534513588126840064681890313140586026744104071480814747074164384590645383084673583293673635173522241566840532221494116338383106179630331742996010174985614961222663337041418292390659433812971419455466931442006023047043222122047925351321152412870580659331076485712694994736234841320185590916586241968834221436370665048821646851168718746531677165909406715912727762035637038876234859251690483283737375367026692837704299480642603859640880978947991970807303524183062004333991800441831604763459046007696004309513150462370396956279723787507115202099638506588161007828665499616055246236431783265628115308626484686811927528800995290036249564913649082567448609891114586296112594327492056536397175535403877760716905077047541450785000609755811854884731647655135807236654330126591939822491909422957148628300030100336802208405576491432755669989270906103401239865789045866698831989396353287306528042372187346728208768420063624814541097608260215684821846197228165917727120296792166710359800056707614378157218837053178456736189805853367102142262765313116703319406559173729674152388731584825090895570327263943155607677016694761570958078981651807782893301489565689669296314745195454905291885444700314622579909098944683275579509330600229571488039351366142537480376079774670585541506075875500402674300703340719704586700191196679466230632951966846991704163649618572056401182627329758728080272264414032213698861704482415621043309608422697172694290634150053433044785284011560070680193159207246854241789877825210515141016423055587823445298601162959230983056025359202684075451706456827097129315228412591461416496563554177708857409266656860434224108446746122041122770827471118524752256514864310386166126839437797244774224617184616341991345246309455813576380018199333516606343875620331872210013309356043275939873693932746727318589643520795502522773978203033769006715757941141443680304309259551504556338262552915541814911638101794054558348176895018990825193715712109053749018126931310623461069179139983728692225271853129338120149941819688043646928204718927198036451969891508263113217404963195664498901964351319348295854008384773258241975951022646049039311283965630511557806710087278549882536040296731361979797699212097280945021164928426603914755308329450162640764733466241799425413606258873195271215204009032128823743496483627643414788324057609610494902397906432058018139079095774771925667107669902166050971386842223167608846682066554317803403584830561761972293429777933128461408385405190867158446444404291314795551225522507015888612178435811679945546699341934381525558805724367700275741680267059563420322761451736417919958102916387633049931277367816070395658467535778088849848264451986193897702365190311198065183083310361331060692521254771553206360772757700542672011661360387671089617930341872765327557913503057975210123756911354250144252560888375251903519399171676970952806602685604758117535408259065022475884041593955375079775005066116664221404615469206234033154707719936484670439725728623165495151671882340495928917264010626310076594817642883198953115912877314274915760010607961861322204723390194791028177468269731823190060662781591127936749546799956296086252650806150132260642411030811574618871782865607039686453429347644433367734442709233284195165748862845947645578519723968393509388080811221300017704992437908640505934479048889293745637391741251540922358520961217487174699551664617216331891839034894955469629034472590988200944755330644889393105535007271852547833960810540606617869927946545457359340487162275882730788550118575115953885260476892797992383540151118368608842646334962622881003036762360414000891193272513860897187309095092263755257156355156106538682156198648416562074702641453617327667921507644519098171614488621881602358934813160235710988938681040101036642966719049801820939298193724995756489234733812253345545059944523787021857453263824817935361317635769810274537696019691832025490677747756563303805490070155308901657221023858759084576183081263675898983854645756715739350880178149204579352914921411683366516131317900976699833004984127544032866962456628612331824956595769654109443175967501444875334798012889476700108469079295911440388602760105969081379714500579486570816438912457129332487516858585913024298268460022931932237715310469119263486139791521393166691284396210402143636478081106310280731527116531201714451025143267781405873529644018539352768851973757167860271399826312330724344245436612904187003190326776524039235984538415898651627629452989800902407769953980105848159130415053321946395326487472392657922723738586138025699303340916148972295669033005768350300126150409866041735176013941705149873256583212054838425116630399959199697669616178178461661038556599321915297859512465791508978632878378672152021361383780347736254643121916316868011801426141508825621468561202495259870747977516170467826830394428954826983088869112015640321422557817072666385526707603424182798267281086930676164937620695581702489545758673950784511333023304318850037522709255310596799643495549405856818552051180780825847749898834475084424950303764918476538730979659153082778226203998688868404179702946584346935086796764512876993317079547490757980020065890259302825171682161127850080477065542653664641586301609768874109163548507014459426177569551855776655324903373916518426912361837215085574689514462833651453221221829367437995677653811151632839314987298586552783131116695873640748525545465312219646711150241175980932161228877740578829164852839392727027485048572962649600895942355015952513081957808455438512881998305412805529171543241997143940609418044004889994949757129273984828939384313074436135168433803044445238237245801338108056595720529041344703243179003942043953953807066203705888256251023467128919579437738535240759554364340695531920695658159059882911637639769683738689135779716272153322223724003285608360854090621524426933791599407970545091363069216491042262744237033020956140343330505255355375323519538071497821570303457645945028060925906550588698182725469054196282530641977282060641441895839884861057554531909890485580873800729688355024379769888957035532851118575602214331993692125908745079427904436119963788871597941608607817787084818709216547771083447767856270416609429222921194802035120798874439869919587962123749950694301081974980462662478428932292101228030524951109134522382071945450384548325983735332024292076093797460441771276940845739405279001543576042546133600060972827659611787150605764594913473730796996086907217442794774086604244750354991440695894399623287212906396865334752579150914082990055289840399808899303022942778448954770833748956745599212705489459151577539705612944580670310847762607680102529549849470635847011113335319485217561477932747609815410299436055437681015515636504594720916566962343484459342163336024919084239374243213897820255817172390637692425964139310846878144111320915947966769167476780864549033007999855202751533542726485748008742395804166976001040475912828570321799413335548332491857892992520844107266035091035109814966363312980890709888284925365808117955120039806128236813237631044572875739362159326199198306668928676465582241303214523316464682006346312220616069046719805953618618006099992661731731792966014477690345826181796260199415833024954656276216304904238170179971305139489142483018873989841727181988176096540876020472605303928861725730611255093492120911848514919466702421354285237422679245505784152079479971877488852595045201525092630334048788864693560226408607268715350096805767208459872277074133012038604323267646158253872195983911076511854718912710940200183681717848334173420206091475488222348637483170541622257950081853073133940137171970571225095043042031098229451199953508496265289792400359130399383191022689544505025104808314740892553937992985036018461015766195370850559162560967051558010866334662309952898988274159841847524654533877816916251285305850730293360898344821660552390740014353990568611176259749410055751654310204339751138796085535735189269373532236749531934282417168417108311228736898253663186745428956603637711528029354196505754975738378219589263412200334614604730310044135616057775012757974584416951891134752033857267652768087730492714422107246552737383714984757188708696204454668926660429070337793112917042725993936556069839658455201821658268126401041420278706301067646771282524341015590954633891263961222484255413291307291979007959087583209578256856505323012918426507995237614410223370797431732660518274997822219810847648336343323938529730250996007689405343874192794249562185442988626190423076242384727170904839465206743993181711254225517239495282493847992056406781510341099795214797306758010338005106217436698873998075113842177337498724487903368251581509449246415804168040616842606422904582518474703837425896697576016198759133020154957527871319349884013591134338170736015753841109914497445935281536169627656738403545891599478339604684609298107390536083770369038519960958702024648285550380107438414875908090020755161546116305688420649502842746782974196251280504115782108965454261569906169340023005762326614755032607642574837122839003679076743974776675871743535606774932307357819248972442779229665663313880202310414655858473684384403730148166009221697023824419401252387859831571983760540981405853031457270719793937363788155928202226640740197744295585472949116453753706001025788572107940359690181113302894129473886624191671898206099282077675215413034942324193911193282360579996005919251937070447354525578387437496658590391605889006816013411592213161345000440449339916266025566499792194796735401217211006594460515960449845811853855762653908908308377156994278603238432985310780838429180293936187647961486773003588716318251745479950826165333297374066079385164666737485648114984145264062502136962268130515198515612884189600294615274952482644069128529568818229552242240643572881300886814964512103739470187242858685476201631550824711262693483782844223793799870229408697686676592182777173224815689424740952693182345044050283651345976960445982755334856891570528706870651159661717321859160355512927796501529587559999974491768688266750082821253812840981348215675081375353887217921976237220722557379220314015487905231071265012099315970250895233863851210427560906426537390084289109453894340995319873867573000114083617202955572692953839297240826538286925218856343665845955444577653544708189126477933737527761690333056503999368059129036605631458503444366039434571788500105517380793632279778161090759325738693929390732893005644026311562517726355554928327100294139246354239187198803690153338504811581683014655249332319041529895137973663895184447493937149370600782738667632688306564383240119669429858418452479628948760841693115609091187785951440510091164136176878409871186489029374426426431713922546563502275779796208384782900096967106188759289332600070620223904375603917997118659534903275845291190590461501740129873001680367175747428724217982247947110585123517979555051281779339908349257736352654476435610000670333155345167370887199644647459435256594270667117299769888546716051930654214807190501404892599361912144532210550466530871080204433027246702343654040923655596833254832298937226453382139116582668174705351078592600270349505901192017530004128227834659787193726018948643840812485365584471198915565134108252642446876313622278458319218140929989782529798631351663528207626426626758297932153984083212049532846976610414010442440568316780274091123870661667664595258575225122968014875588958342933933007214062441116684282396603876289272061806573741614399243491326026552986218352687717816389459027720938072817836957211201582326733107892200582888677721556046370985941313578272674662455906011708884191182098246107198035478375315337832402096929122362701633973388561728059059593063331566764333304839353933313072045153530696091195343304261896470437250843494029213359538098481318161890377253859216856787544428041483063292690161441075396333066180475615459707009101566900843320336239808357814820117446596276243997279874048234084561508828007495769907722849936661873399355973415912832341506207605428672104686563124332174782653734693363240647218407214518800415344888681739632626569360902848649008755935912493333842652761838687607887609684714369859155040292936915889699315907124567767844435525232208109274433680478485874281837844745459551920941167831968833961446436885149033765621839306670730802146518198128121146078509896648586797319978004603729677882134625274923208713965287353880144211411492998213448918046625507292799405675008621413110063312543319914357589145742526290996138660382829844022048634721099074755759075660397564931796089270977019630900627511035139819456799890851317758812930648459231894582176524573245921637851827892995115492008822315254065070728211735777362109841115956537986659432881254227127817914602782099061039029449195396097676537072358844966647547587190880013171708881972965179348940054665685746359596346051265092426089543502426485685486284370003345218628739827746572315895575985793043147508820024317859040308910793700457675811411305238958722296123106159970228190272511859894618138130377282276556553815521502949873054342981778184640229916225290917028260904364482276918111916683534279683648902753776074559563025694785049864801337149818458256602075477296235496612681792419144939935943778359963551743546345211684226609521596539995115926975874675899334793343059111024333015061756778790763736924785588278110342294192504450307885000226299744120404439473052911910493243839922412491347329760111532748622391799220776615615343676196417259760711020932996543753710937803305044981323286045326233002054687444813765910039948146216660583753636369700483020566618774817572722149037541474548969110757442386182116496786616682628486509994100618004622817951400633788111502346094003646714291109967938376192092656194087277802739228186407833738305725282597984466262347121138953273001748546381800055538032311027364402187136589094732846910561194881182520402820286942912814805256673186294178818160641590475004676501919003139989566295718014382669681110476066977022090199346827802262170196509288992807225707265896801179750958470290908085321600797703527678279628088272531259228425217492971626494147028647327519722942076943577842699348088580642532765663356654382017268682263880236501661190449680534878662271515228451572145972422493069076945316670840418191902448843114081108062876237800110182149740758038548541323248951771568216384869655395625039940820631339871369418599960867423711873879009043333084466262354932013465460582396565652750213853935384579516899269455035637751319151826742531243283408464167449326551556608434154273754964536514822912208765201859640446321496734451415774547879883734877592024926630343301161011274916612246132487667414026346806227961724103831820815951464028914215646109947537636923045213368389957806248473887493461995090368219804595728367515663251198151237053638343218125945524688235001122194098075508097882431223816974007804448717577780879334284377912401798092466347861023721060631141575604062913518551604111481529673809241190685974342584840208514165277147916272066476862979650855271148576457225530061352853886588792440589547457997934881343131619990112701581779924113776705591084338186688674927306045186400624241808624959394927719990435175801914428847421991664429357544239570197453501726880292801026051056003908114002508744676022738474293749380361705567797204486792192002095778763433312092479545453081084211361196689345043633421100365129195086171023460814562958792118090169783822811672974384136252157632878671640040362532900278526266072864939614585552098459327757848822935527938321249925045365836005572937834792898610555854979356492377725742951675274727045496129145206751866736151115237125207688177544520153562961574294334534894339284282390362009494855663376036421203201668865254137361538950543999797626139978949103446275128782102150125003814141174517602770379114961405110647592944819238924830150222632685598177414128236385819939231193279876600233728198896666143037291717631349080146715555236812898715852358414294537272127461482308199456114779891635336809804603532753011545411737256847519755185398077951113042202773308571478635711400008476498056143873350876595526178260878709592116454760585200742262960345042090085025700535857226377403030955791411968768939055285095456138627272080720129631435962343231131679719820439485864744268954895668475252529586317720090849151392178056627509088615695795163372766729514206992192117675029498285455297877830394371948588366401267524440487932172105696969151577011059825803535026012430786824514291637780794136290637564087426284163839619462810929189264221468592342230913088682820131324130830483090038251017016388173588100098118475492887288624142759480226903868513031321886715572240150312430887092369363103312294768136908565229320714405377835874380325883927363367373256357971240547671052609626235234321384261477087711883774454764811374905598573525303106804560039232223643735503651030364202577470298901863680583367557829835699872408361433542787160059929332959878329891844949604608370621098816600769519884997014703150580900615477274244041000664094072376194573680089653687015081907995894729656306450179058505055835426577119239832692541690247991899841524217176575546564606602870039650661229819384499882707902771782731003209610454318376466190903733090051074810858511486769801926217129488622207028392133929238516017908076839086086733189897198892936092975267443488101497876701918737000034745718290409999758657921328316136198798651705880334992752618622407994107124835706854675195599531555017444000911068934966955062456596912494694556930918137084757735569134420960964089645992867038257734450808023399621292149271563801184438373537306290126369201176834105395808315354647816371899956316543246904938523761005413945236664261720325638393463609710621705945127878107184572899608009064298345796091457052365864429305109095486648161235577696713182720045835726803339234801591196783201993027921505289784875289613784167833991943627270440101330205306751902748153657654325258684786616900491845361116478338884409744745795810954298946563033634637927996249471071218105735822442186092977103496436711473114562723078838132063982825760366845638837653522700244443720032308742888956380353857564934283132096856106668238523650532083219661255731231935442490966350796205748383198821225011924735165848290412017080842746785966910159657210116593638681088892454712002227372117639977969349570347256033775641059881971206973463907745952486417637193610188188741455820772627992572534323243784182834017953520500213237124876292846755809135695002495005145595861048077423165726295111765425177865087695800254213469941577088396912508084422884896767926700167687725562073715957979209158518152347047262841045841742550696714530320663093073472147432490313080307563643075453837310440250494165170075062050251072455400846019833768197660224387593324570970820548271179184148272808603623761961877911646502795207505763319504152678206177656825093801932234874409011134646722755793836871673262651456081495100755217100036090185268177035437916491364647838457910968822430073077971702736967779801361667280898647794094771820726262426192568011104952992392725828341938166278541248749397164571446888254287961674524943005530563193318493598978732952119203140030339058088104851069959329839875192554233925040320033944316752937374237675291812037957982851963883092468832247497647261068931138984166342411145281570935909291531500281047982880676937594449013218626020024098055767843915595213516224510202901698445995030254274467753286679436017752654087073606086612013910170827210765475395417161755063409395976431231011866464653934831651104163643097744870849396948020237052710806389753792770452974016935726415567797219294122406116113663698034765215058747930367351011928714022246677100762390290942258052764223280457394029763876945306948364776441074407756960405535084738844108202808257640581185312014313957320381826071818859781819311085300429921479290290661397824001777781720775868773616836189354119065861820766420484623292426455695603389764579126518895985976328005600955183001510203763219122718934119701456008739458987244137828497407497329889596788131874215783391901739276191617612461064478540421962455805047037029987121140742847902669466207963996731210756654101337208439344383063197502157862407428186553078558302701723555578478591504809471560891973673201386217375460046336028691020610641596969937013172192444614090836170791565957928169152258732840006157831160376659549009047092130998534908018271909243838000790063605480096639525335915690537165986176918199724804780524671929117879520344676083559201282680946561303660079668199404609088067165212721738664176443174503346332815986637229383801374195788012837405767750866349198596195920399700038997106896482889838255124336568205078719192525758651748524956744675610388458755837023053935601031523231191510001936364001735184010661604946760559457235405946332375098726036116648152417225138099987089464637101433108946798861990041877302526704063817228214529617581617816596707315456156352138876395358629093774807180316159749790121572262144573948821991918401457385937330283719124139160049077470895491478679714732192776712199702596573238742756789687789521524907054891171503101790150922747301857993016889964656349941932770297476066781572387784097367696592592257411969545782496894080627067171825147687932743489619426512112679417120143881479446972550640097008961296840462308164448972689224270649883013680379633051483778763385462331671150387365327957415737295009266689322309655581688758077833866069455213681148466205572457126044197086366553861198041106924375538875599615358058721713970999473142472791850121232430701220901576205217019586289292715518292783201385522088055805019456767433051568672901078017184131738034023999919455407451570131657748626660269889779450725874854515260983745115058479903417086477050020393285987709568827200544129629324341523821518722742719010266501943415475406727377846373464577094594348289538855663677711325773457974119893375967133762667002553553150380831363449771172484813648822596372710623307674723545225964798448880379477366148305794550367823204195680353334852260900675243940043335309670361131338705604701054049513007504956236379651936149481768273060305056376444641553300694294893146739674587839664678972239242133221488752675412263799331514920671471075911702360081106710685426154565816850419846298780873176638650822873215065483745304842756246052575460576653065397361621604679377288931498943284017267427349836874980392193099853157670563223278063866275032686935766461765355814409591878578034640160522220183638383869727197608648464173446952248988338788433262576038855649619809762819352814791111622144054297909060555355291259284128362931518530120214695539272868356811815413554646548998711233384476540263787558038007570058156344747772414547521362166171457751391610839338129390096909479681454527782726390614981144035917301103896625965001339159839344327842099019906322957461738015922827651009603937323940523463848735877220221115078908380010136476265407848608069942746483869981479246401141338432398856873400316698060961434146651128223625751810667125688321678609676873538518516553839395372066135387903718272592849737284310287143067410717005627850368965701809167484194175910784601836047577629809660487525223025168878296738842313174011867236918051716812562741596760945919525827346708544936046784615246685904346122949844672884175705092952807277042841653543336930605504493996697477934977655084730001384675757865961987634660155913751279315288543238711494240429091013634202979997518450637532900348119000802847450970849005554554335159064490649673310846665801324932649624370276388035468610852804697141100792849565983197953888353886874449571561987846486081551908918871085002149537507968355773724805310879695517077493757257418188690079299927531662559861583421242130979017986727401135303369694209584149884738942450196905948459755781338217531096359644926890571111289727200006879142884892235628792005134384167841065136132067966072599999741175854933595774917924859868458273378753131949154875902569386278014320810647402012251121965298109285503219009922617398579431198609772298283480128055599396958040427071056500600388092030596323014871821314330606012193458839826514508492467315938736826267216026690790278501823336617408714812227794662998506012620685571057527183307427671180870017571959147013745766231920973039507320873765666466314508915751275120278012880514652327982283037154304942809486182102536597068506767660196648373325421122897537723767696812396357079150732124552083612779938439450531415510430176450855186439400748350237827794064683194935507565087636998797456963237136881913829085263064427182538844576648964337107927321455731694530698431391751513041203785140597315069321061269205373771822127752650072516533185026418946883458092311466991456133198786100760705238182989625008124512165601295867505782394355331021268828317384395072211186994993383034382834506371704872118121342783210461083352185333764559872080973898335641776598741671068909234955403801970022996593645117783331416336252107132752554321310998763037921135195768423978543377168094124764870933044072989872525251870559777789376911549960729507001828958409771117991740753511416158449787038490609152698876125596792922344441820929800101674659570591708528296593638486930259401911395664924252916500283016665562037794266014197600872204116709211896211385702067743789323409972725364232199835304176510681127659731855552833391777065457651338549653125053301750538541237174211485509326638167035257877826944601139187493987412230771118574772164863982442344847083048823529592354222411978115728638532129734925548799788374773307698326139370803085316739556240361016230995574669776135782898582322280235625999477357019905990180933668613533673599854914594503029685577899539616717484832010041323830512209752572073051831639765619358334191925063221075164850147444339356141895091902245633438848620469355935000743396929531777610701647674864971193018427813662481828996103451931617188791348102851335486244512645909102097053314253065801375112342432181067564538749208683663063348252978864297040039705681180665524864353487777112463563185336954371159452938009289616177969082037645025595311421460702158554396361715819834688072117957705841536392112445144547945994400865851880964503076430741670593001174322166304835126731411864790490066697491932721565053076721108241685660149708516263560344281456503442514514102343405139765649360553601277489950991304294325496540896891192167654924210538206294011324244013917954086373929236615117512006291524041717066680312520476678992204715845785943840754131409979139057160326217168520956797056930834921715868207509694640343101676213351468038061595341738522119025029913996315291286098287401838376535409308483246582596039462381149461594452886411745168009895158338889474110563775786435850666678665257782484426180343901722548890779645150710418538566273029011086697977844428883556211784203825761212268022290198190999026765637576818497487209402681870219513553000454739015166010926332449367984168186521109917156702501194670775147527762865224450736479476584799642853514240345897138185038594389717706334167017611607636999927074992368406553229430301699775385473065423584463380729044540869912850482467769183033049006950571318616397553662601345810842059911993875977252381634148689404942527024556879956690683762787247696965794723542036001602631215589101817127562057682783767124267964351703234978170544357858259230570303404678589526772576795998227209697253411614468038695183495259008031510407537991667857372421328725769895644678282064311893846796126716952471622010428518510370446741885552623817229206573587721221340036969863615125383260148096216799610100768952451602374395582442155361951973274447985100137395872684017464286151195509306382774888300939738598385043156828261496817060022349749624055670259909533479226547180592310075063341046826882320198661091260684895829860706118127418812107015756455271149370996455056357966824730159372306034334765357589839827057963511827594781060776940887578189923078792891623603507520928886937888126783839133465913565922057725954814503968898513526668368875996541247001893117978585183201552304854557989677066265256569992525981679898938957729619254493360675578099414955918551138313106864286056541220450264835819890389143402129569203376612380884894086124396873663668011441463698361873466510896095061140214661718850588971056576695676539178055237996848988652833302286679263212231245222228102623455675119440154768066454723170921369745825446078719209564451533480587990506515222140081048794324627505739809311510045765002947882043741195241011487725216838026530345654067583012036618873530125012660582952603607329207979770486395516269935884503134336291448342683176406510822853768172622339599581713554125259875932393557686065670072753428047232400057087228293888295385224422723498186957016327130460144918832572858765096840940342299545496631834180342618143116821782437031609983604946989018701451527213809424674017469543360772892066196183242065090229495346158153109520663719941862599766794100843307094412281110639248221922091624904227989046445831189484390309967451130059317334538550361068651786762805899412781263706094141177209591528616087270052582908736605480885218841938034556843552036878308202236055344571293387348019967847668012670704043996794684279960331965850777040730913031877082448847318838089751910116990461255032196942600667001315772938829861455869386926540850586151963328947734997148853164953633019895048307709554956386189505838246616141926085506804373014005724590699873656010736379685490867116095478498744730531369476630140067236440524802218409548415871444113035931559098082864021976801945138796773333831606422622420302117143035821441744928785591374272034661613171445982668900907126507296885529129449598269645726894016965477990567237079273847447281880433498638530779084542642439302906043209901369979859867424874447940604090345308786920971111899744828623209864000680121755491796467583506882195882492171507231033821805769655949066126138218741401217819672045755510523382324849589707630206942006472367617639091207581993943099163167318828588401859124535440940559714639697166799730846165955308271914445726315087501179151733285524567528221175933831510929718341256936294208930204525312937495219087068103013779928845163103573899900173020551774814577028436005971099346401644453248396527952971740469227792510915938784034030957656570288564372963666720070621408880936655604181852979881196997332852917483712796978916399876088724520914117060533725045595738860457355119766946965540905985274978698567915500166748389837937219632333610072519171881587788249706321174837718431060289664689367341578762699060093393271011946309964391532373434515111641607343891381766303836178134951757533205455031370866855641360709136309065458961626335221378587220701315548050026513419068551653084977418306402579001193630886603441064540882712479220753378681824195552577445047992986958294633933592201900578481395998324738470137843811653476569945772921976853316878548373084788052712759961725867659677624217415685755153960942432502654420728392820884912298527901971211261864871479194694713148889633418938059466389093840435789074279878179657190842401407151190554923648034111188279156300403736375077478257677639188395847086404582261419783307495320505712271386837647407007077469033027259855258907813709599845651670688450970801151649316335064951357745361531986583572199898746751555880574443255933728099227864803527196272330874184568271322347411751296320186554254115357234775047059023849378399797706348945878191747730949530061528602524296256743402949172904130930969332143242231330188181973377392380515565745861342355318531058850917776507357022708832723081641338035766323000836712751791260471712048277519720987422765579811186561541938935994660540702678249828474782216418787100368008279702359246366048702895598604123365714878122819839755693050075100267396616147108988317017221207042901207850977614792987220714473746262848249799774886485129584386527599007152138133062184304369918168944074531526511206954997584968497556859558794779661036382066923267468022573439370668023170942898368546740676740036796775752289618410687585422794525516766764765847379603262699810315804180631283666389607146097813037485243283056902325812757110882396754473944678631031791673663514975635382054635502432910912307904484541596012186043606537004518726860738034298022323782343861403211423517323236489192216297363266606249175775736392760720073958536741525212014112725698788420671472307167462030436520385379648861942818020158639372362695747267698570610689498145165721959683164961411465950922045216336957969011080168544504677329298379127597794273212392545085561787580825327525579327648001414404081242102415713379938032763238928901085124031554940676128267156700231272884458044697144167222330792801039154005884805331306032311760741744765706463241690724720647205494862345525215693266249270981893281724375817108191402524787154748926574611113246170545659798839127988695631263070376038061654375297439587013171542858409167126196186888812617893503261875716085425136959968752593192815246828143447387308831435272323792018067539977508175261365878833973047721180462346880568218066732220711148465893080586605930889811483897175823384653060698115607344081135945871908724121587383020862208623740946405164749318205784381976875130436089678055755570287858090075802505376453094513387116860287357822893511986824976330796150668874552519149337779173989698533759440538010781893792670100496440495197483920164849442830783520936147873856259159689243734337852893830448947506683601935628740670802202094542303714552638408470089149892209857334264357094798603930935972775568780369107465666213050963859631968754888683631101647235545968353670344270172841783502861643690804198370927777898786424026525098675442255115149750648581707624702028364066595011390166323741376446650683736487263282238869700578800095526872415551933305393284051264728126013345987351455654145307174386204830047222850793038827988014129855284955001050854676274816351894018870821775384196270016024743001662716952786389571003720316689720694867096563394161378451285983059198506198116664384326525337575554447873449012553246392066447136140183257137734643154582209767355127408965146879285410767461895049647556657198668490060974176342667660526935527973850460906500209421701256267017349153544633159418361836581077558217015602303150999301135639660043560517711923798797905371091737703537029317517229279138601173346032222500021872672862726748030763993011271756737386249013802709071415802395727030494577494316169694144046428262703254335200609767170535997191520724252980156224358078626528114178013122246871342979939262958814000613224747647887839555607254532377531202347963174001282447547226516812451165108241032572303948675508563418567113076272126571621158035981280330856490083580326036284968089016991239886333900376870760643961753226257284311370441471973539320692970299089056390413118339443521185206891484114926394931192410470190197029599528551808688145715182404236030933883119865905267012684597266004576516318508572667250569233420555239223484962124557840095749635564545907833859083318136217436681539617914570184817952473639731113171175645675504849520166257966258404195256846648172404032173266822810599819868146442395481577236866472805798390793395774452913449095014159031748701178540753804801846026194997589848044618350905711111311790528936646997969955021046043774050226242800157157908320757756526141393565742215275343145395818937331866415182803943636586110884577437280128093701875596624158485358731895838790149759837436279067789543544951139693631225143052425995880800984892877179662065489262265574901104521431027953103862094656195870908059713705711134070826036010322182361411980281542301983592713249150640456600414968487290060463059359434895155241304169866737856879987901300540643253346810117405090813465722327620231692509709357413715510549057235720846483502801284282827687137464516996422924344896936713947953387822494748863271452171472595748085263928987629122860170705451735714482997800094066862176166315090350672901310402516014507049485148349749578650551083883143134481924807299158585467598862127338957332714421290288128212572285549192972987584025095584888192080667427993946530701701789895986683098680726682612090108954035671603683580901369372116242082464654952232760493823165974753781557785990559059009905731682258735951743556930312403911182077269911784177850841498419108776782534959353956769282834339554517258602889417946342296515269844667348006648087633743181198362854164452396680838843186284623112960558618044823814072847065996897944083383077193017590720311738851190193015228544978555064401311632120591924247293081103149337123749958139665756241619280709955524350118038522086442194874813118657976932271147259297392800376082686201519278136093704288036842068784369207789536714167969997202442199921318690702969765195589417038855306000746179374697363906267469826058101569229631308620545109573081312720039660962252328704118359499031294848645899965521132036978713537071700375766582895187152686671498681274834977791262944645292398804713679211712322470361543880224748289656496637641023203840697957769347139682221076641312769432285630783144730339135231929635815621642575804372493153297200263797534465474211456339704466737906133981999824418035194192456463149468217501015606570107118371813819441070113239091797380607930572767808604248810570063077028548217193784993489443886532074444928885079386360037800248112088860410186196813551011222372387838393958005190415410733875440851012703192479468555808888362081402547135300723906910641489005839657581269614817551973259364922485516340920631750712918398455427997617208858963389165890019398062404289242132314701457463159767358983146808835775127380876559023788071853695646932103000141303422987545500532809355486713649086726880505681372310275069971147617056934560731138055469247798567977724201787752505964450392003812302740986570155660343078873458544982541365154120318304902015177513656446684606925947806980223163924063466709545324348458888785208091126931329017132201952555093139994806320330419594142508465439555576897236831055141707187490256978158431191830969825201682175763676258533799826156414190600375937993568253318841503202912913441721014268707567296342231173979525098649202887998557554321047744817790307982351396587720278232146399298312978213361326543832755694670989747077637715303949912688623733517986873706857818616136984914805751909636869399346967484602899521176814471093168111025658571421768097703781883761921924390935274960403713692803825765573089143685614968042841347739868721786561136141136826566240100900646693436243284325091167400928333149425607622586398096486180973066090964947554639138764910892856234683931662261327384094949088084394951504925117629797364029174606804439995323252658976618446394341714091603245473323231423810541031825541505282622778624877111450605839855613066482100434721173375633670236468941199937418747806138804382685394370413234743465619763765063749842049894620022699124280053777944765423780599934003764349050552961114836392798985587996561333913365358772631381034998689609223041517459909320226365167606928583688200940635477136974768481034650628797434496424301711657565615607287791255393336445381112274736172394696390881606097121267178076076946784409491190780821951643978541121249981203821045946667707588176330297207916450077720657701905383313119073453534678422421086415084436589017731415103915471272921651726337163955034816070754314473614840510720581863608095695553030173241149141012416169105946657740513025641813350598468248727243289938832673541027589119329815700759003466592648588975367542001843301663432600027933464337057766929998759542837986417309606650827879698193553939445145188734817477746201053616860913384721827306485085381946054583973712644186338148671270886846642226431474290972079437331731749845977120928554594324256532686770722091310572721987244548222895629765835114498690059486139473228639463441159262036998322618000185610777873892846185331729077218272443545752002394754074887367252186079014622816085091194567329051447190548361928361728003638304443128424235691795131075910059843317249366349112333080771191522061707432043353791421875462231075447570679365482153145592850528906597326998008468184621694780240650017710457683171781787885870324271300951857148857716911651749977003797289548640742461716233443905680781283262095764120771573434612573678208048716272843987800363758622887661055786183223868125253786157024050312490343532189372215198604314814766083940524048470517156901010697586083701411493062198048539213597402958602788331056056498436243567620896471988479411433306728893980647546396984079980854629041834549135375867928382729231032905107224665617385640956229021738805536126325699435645066883646701636271211350234937990429759690608629117455301483010957229842674007157658406207967862982014061214219652919952801598583031653822611586323066527072371607147382325302664793315986840430523131938498366402409344324224104795109197600243208022154262727201471193569248095432341312657696121890088913621295731826329564525159827679009747969956241858068971042438011541125146188266939821796204374892774848232865386870788369763009880519855420253289971397888431564466358838469233682843157617416380438482298589751374807783895300831324204255364447418310445143296370676174665620318764810479124181096298914509927896570167158322688470481441164751557943468273241865998016103487039157365830845304839128295395143022899328752859164727998592001397410204641519898361565055868999443411467488088133717232185781268265071848560393410909908289180772227416450375637236217776202069721538735221059693457076090691553213201806238828556812008493117373520979562165467317466839897101174052432150226354703030480172869063445370857942521341841309929137871865292141642641596597599108863518730125023607704286659116462944585613789610987853182312997655352804258172601672324843613203641698261257530559009333224196444753142369543453947521361260230174116996078019195892065393279254278890430824826767215163721697666697136658188338828043519084635373276797004162372012973360349887916609229706618378944029711697599110986659287978069257043809488895879245815910205290530431281668147638256498231644291050313094212601981842572829731406674718537406329774538274162761307403175948043106198135139797192966819459677994270090261291873038088895021118604278839091138092452750441550830789687579346567385210289356684555324119211788246065454287342925686880206438713725866533425968586715862807153411118622722572156793215719397056058610048700269835815135589024401743793966334433656983544546202725373367472942870564811433946072752803398289184570855548153122616357859428378524827034140580922570458198247181186303581727530632120016042569280750571936638199423328029190916312186409920394396738126147324398789036849536780058879825453057588008932604626344489674290250133344537996583835975718828630900541216655671792825260982269880646431030198840155949162356966471147340365516722509330858350596773534722045031232916643692088148952173204039572168350334731425092855256040610753423201535466206459377963222490468977612683378035685538585086850465840790855641208237152587180088231421690077310126473011421873451752988353316413659257206326189996428799709735605753936577165598605488714490751460110110082899042972217129009226209791838719455464887386851072617454080230260397827782056380857247483830765217800512279451995734942251992993669188322508924842545708179351668015729054491739262750899801004844412728503927555179050504272807019044721105556517410799928251787166828508089216404803950563851911058234022615556474567962486924854736168144865140434839748708542269183158969750966843149027413130055650129278626769344760553221501826432416360270152448027112121833422514893356123812111482752381874610835167234702494300520521599479393438386958115465663878784267438581426003827280675359849263827233196950295045035009829556735927972582201932759716077350363717402433864353276856596129524532636199284441417095831951873246553701841340390130935703280816755258004777094594660529625969644808009693526564208833131168265809868142818862430084014089452817533869859381625085584281639885863642567018513585435968058458197026418169250989320310908178596554359694516626397512838289877501992889544975702828218295080481942985286492245454684724146264475801798251122587898788660112517518729267654059453103869381764876016757931506467963912378127308305187984819471588715632586701985115728290973354148464715655471016317092873371338798948665658175630501003904409687002664137648888587979257588027110080792564390849605795261080252408378078807258750783884243635557526362765643058921035668554864962728173149761008560447711938057835046171806934503958822458863931635427641436581599889545762179151490182683378984987984498406899825118737748104208426697206619832748710897615238643937622206189196809237601411339996777725373132013836301739342428506187449251576207053382964774436598981892162355273061186105584090551179752165566335420661130137223664486032230778358852618296675681841706239282326738567531355956489363077011012203175380241549671675625352174400607447163006816488852222103399315341932396971743142967475433387479407006318215949158872699745980987951540912986212584977362224497160098363350164210256355043269985098780969486754712554085699775597398047904242953864638038231412614127828339318031931755206488310627970535454712005031735337627132865237281477323147462402545378743806339568531686212127336553413560430106874866675777669914964995081950888635347288358297211287673774488626761894742984940450371260048387287853821255955993940195910921173420939350628223170149157219963846001964826293689753813894913132509253577833091726559154316948209334888052167952835946282661452025360714163123471440574239831825082019452270729680887864494804543391982560001404204858603451862379802037307555980457849629817575062685046586153304337458244135049413562716712527843260695083377695073986157689192070194379007472788890850509068678829276975815408333786339778323879088915728732967392309346691763678753447451495375418225410070281290439355953269949105559352137363419458716294234977590246222443211624944367293525229618090615081758130315694210053290505563736637839358882675733146844410378320014926862067737206433093916985669151632110790303959954262171523569400595620748873699155215374877429808946723346585824350618277880850511670347957021761796589204053759642070627531434918661259059942873342626829080176893380427082786812258835193665219078098815905128232471423763986598586894661980742817915579421697769777324788558201602546248243499495065588757854814871368397166430558281204525515261914001814605460752112171469085871900181983138089961928880439350642270752292037404913159773337206596215762138216180520100440246919950651910087687872012275922778945334721259938780717621143361101374411959822601472544945820259106773819323948321653298206826045920220419332114746865326202883352865800357790076044236818105655238092158802469909584376107954399352937677233026470697482778244606415758716949435036684058821772814843912874113093943418482841511037170078139749530344433775610261284482264402194518695936605575087271383068642424992102000307067396874788729482045648980561620153681340834198165101482600976220655130874327734633014608144006452214586235618112172330390113238065849125385572530375776953947352491799780443692294111984945061201690550226006558406368770545469442542160851322471661345460376614538726373675957296254673356559971298915664641460170203962887050253145239090132173094194417301352496357032128918004106433496126155604866654682145109104452190026767783326656636532459554543559512171912197473398006625820084480626478248375425188565943408397624168448023597038623111279831850503997318105259579641507383418697162300116695012438912201354263313011756111940757199390981231877146280518258465492558810566990183997972912275206334195351132106080802471597311329391499760119470688887157918895964871676560164778093500182570476576617907584468112474371672733804846463478242124317183209006890838280203108720099113675481542218283182975753373918492041970628620376797456280879753720948892525324721470035020169965517283297873828033677563722929057055074099375404232267980918478899946095707186825464151566790869922941438987296627365953793566117149223281181567992949817222608567806918239835331853565219815247481223664509565932487807576450349228623224033077716849570656158544827037428081554968101166041182079561402113301918875862089395446461235407819166454586595657878538308871154677980286301029613610755310004944842104557868293664431673288656990366370614233093720292096083702746709810768027337739670695806941534473247933894658287933147211035240870800140539537729401336808156292108142753204188216541098119284734859810790235683467753954654942085530570378690853292725794575716323881977091100304216781916829035424991585130832862798891090138276332815533907914144007301482709150044451728507369124738921581145813934765030444731119325134182179109631332152622514692420972241161876435830478445127094257979151827402377600983609220635442799067228462607145138537094406846577522342657413540265599239606612803684989787806495694897056222134518631172338936804800068428652397526434521649373910804115287754513989804574289455265116579345316356715957408871834295565859637246566879173184736922284922352287817134781733598784410277536718315662088580198280898816861104610865298257132176615492528669236588706118831293940206478380711713175239555509368639781232495425429144303790471079347934928257468340451304963846379066839414890566222168116643479515123844324807119955105259987430530674180475192808229167475856135497293763113664140577047482518798358814696128046264608000769798682607199922978517598450181926564881632962398643112596388353733619251310387913141310150988225943978074741245590005081365371865966522992042544971592288147988641475027904666952979827367986888988792667128772461022138162244101646291616853555522303662133575484140247868747483243849986283328333700191914921959056227003773987389569728575760499579409340660263437754023102109158932633171863411190768041255811726675987648904504156822225960843813006800060156983805063991342959443783296878731605753469674061733113072755195237029200805466299540882390263499263302315966365945987575983614767711531548422771714056339397786315672766720945479310861926625157808433547122511537664818060259569259759005979805877190512692712962910593399889792295222895166724554328702237746760628067183870727626884731301187904160228749005859846997660486548927202410569780682320940686059954590980872248056093623871647666768692506629024906745593297649866835335807624428258369091643180778306193595120124346588859996622336927202830915337755495614608853749126583847435612340916941932920915757066348742293715434392293999144700462203608668984111322656207108853364936465803024898616235868852295303038036817661512600282858330897143225938569761868513119628296345260851476746186577546582542821509181386881808764469313159591690990948214658778722903330343645985385476470821306864404140612097779931487340623914722001871567631623383863352823900944475747555516792511243588108230643597927247876622532082487678671467628572961248769377994883591992176504186308045855780972144000732868270347468454269202981430907528678279005440131573651559829788049616160473649774189882671825388221189917030584558757584061344634332589028528868491259769170953826790611026790296680585837305652892748525115337411684039790368230558094596024792785089820744874464822432310208293121394265880692174437893073713804719714209833170667544930600939459231691067389862248468821360498306940086374487483921029824363146166572453237614957785123601345095774488502191959983610777713048483075250099025049970618821306601925116449736605563947760722354592223414043342552865305646221234289154808292435935508148251620705949040003618623762113119321056875800159541723101014566849414224021012212340180485547612956186327596157047985428537666118714206918856571006546874367173823968049552340829195519094363230147725426069798740446554125838889734303451770742008082126366299476067220539146926882358737342690772933344921515249623021549545263065285370343978407757722211432788998082106952607555613707771630906942084391311896703929815942912709740913382345490389982356543535296937484267624180705242943427754639209810619864474958168611965401408791875751933295216695783772498011558126067841714016325978756809182728947718671867494760174483152610736746732776601300996065589277492241218800087663248811507912450527869409683770358197166879630753696434015864374228339849611237832852815402314520641181174366539933604804819211200256870575216861111016271354063904232149428553243304152758825233615248657506821169667380685652044102763983546656857288364001091750460838621559840428333125031317409835297167772096789131428938422071152641988152233082078429856902192502614406455751400492018173424861298333031812314566782247930191223688423929385446139667909810516863696069364095477089065733990754920838829671714640841603650157322971572947348041779485414697761732894644681744006593780050514006449608373041032621118702592825239989156606065026157348707362667501117118056210800380304350905715761190283728804244700399934249752241721691755312735729390509210589078873431784358776143967729914921935401608946930217508072314130621124514100024953882466679033235002721053221849175241546825167485166269447121008438208531273859543758436070179752806620289929171896138701902419219766385923606819141294932486451757326895200503861146637857757274216572687428815294760469391032157943244418131435320200256649767945227224155026529155372980228926986655909528274147465372480312354120906944061474272468052579288943683135554979936965415399724145649869073858057824576399696252728435879826891814671614623111536394989600203082669432527487070974954206584963647636012281971664748079428167100888906148508522587790026913811900004638793028976650604946789564560387639320319268991565999865884118424676518135839990512163946293079107589392881425583674092561570805157534831244909822676144960481587816086282291137758439792764064129536477924372864196417490457829816167945298433172692301947055923966653895187993847253999857010320810257197247341517266883815200844195262522586620537831642471798756284265071456711645843706311766444451016634084132355346942781213408155934235267998795565047709156144356448046568266440002285878666489210418457388621160610337663682986071100829110588149110192535027675947926599092530408618762376354425505112783062279738333946041208018731760285831287515714520055630767012858694959598601635307697798267883117741379053766295322106590742649806748499367734315648469326441713588961447355292691378161540682649875826290474998508704038597628848850996692009184617574537741922971210063984330029615383345353620864216778261907300833718363873930121023090908554460738007880228725140526667185669213993090542630185115398381198279352968677719937831086359837520513085283887942070727218249778445521935987215092681077835606489119322131907744613087371838228564474686765367520187425096337607218003625374311308586612473290601567612765673694183488077780930919083587550578626189395105087489264305220174137479976168060416446018950580112557684363116226988822394431173455071751660080280697475883058426253873678149374629276803038002690152258330706883154395561490818685955844481255014665966968966730395051681534359149603227660712856905325125214283867190093210007777345133877454370971811127846137648246574039576620613065218221066107961598868201891016920114296789289599554695026309114098064431315657342705522456391716839066969646542780708455300873750465937076270611002969761595083504594300994609750262957794300296986127303230515209997954509372165241744590224560840247256240404415512633461257145232300338995949358920430202422886239943072690382982993656202634416551904379397119109823013676923891819349999142414016457666139377236398371372742038984400197521045766544441972520086264239307848508763998696417302511805060809403527222935430707913141500835843790977087193318411203132657489369821029317745550218684827540158315233873948480460060580139915583411782034749971148119948950270018926001462931710256438136638028450083970312957673782640581556991601052431487318050038614767517022052765651454206430482826918776086742571955670057345721601483942503945578790694474071023804762983435464887252354140775795375957199654952030155177005225304588892743298010308146639522848728775265028236457654442996688662401191776220940254006219498640274192298054396525478821124883402276601418522121947055466704408237635184331341501320754800767983640557618983767036886531851597117244919100982736059630300579767906278846682309347877309246751354382455643475630486256828688457867271338364199262576300953839285632753290232335948720041644347841810458649736395866875806767085261364326794792966083889731432038468756272732087877567295200713615101934765208536421097951160726350062958087143839404431320313522266282964826308750621866059355416550581845372901259918919332027666881551273177404293958759267114161815871848425975728920534855815232403481219201350954959923722870750332150688041270544541727221203747260304605893720561555718035508622269676054913402598498784258000896376061277200171723951062208269285326260989784981924069813271966302997195708025106710745749814714388915120166907953771797347472697270189120168753739861245366899361322573480189531195681157811892327187519498903495170174395167110475380779596699888043539686776767922394166328455784894535640527541253216403825827604910755095203210437926793229557725997484977185784454263365988411733287497338183422423819114477656475246138844976023344180016156490357203258288662986276179568935545662217608548251868028651648702549614985976588588712792825014507404572303473802201519513632741710984867716062585920615322272002498517606956358169488882531633014037937765866154335572836364403019866156777592180191284861726118533799459162658272249835974795671726083342052620677849536360517980237370667072841797321560129340833133316870731804545413360476594271801189959891130378273437043303497665481305625670572788750337504785397950543625974049291982019430384834520957654426708947830690811242959133976428054316739173135631026880343174446966948929047711481677862928318750413092713394128748654520831743805983319211545659365282721705419399190378419906751590578781062762430822545787400654670992517506212033524607318504279007662560395104854983143093281223972753251484023309650466470976988712701732794107185078304504933207350601697139402850757562589766436439802768642489905943395039794835654444439665449911902018270743218784862723796355132902824046568772480587093652274796753856602807122725961715857455635038088491004301284493872648388078082562030493150649328020057350830388089100966685691903300169483429161766946516587750132404192791856322475557196784780990219083082258688963940033832175115307119325898201019646590502717829947513010598417482689208181243913275053852992130748154498194461690438558106008262915972341473444304023360509555900857165086911308006408785841929089883580687841212362724085329882445631057222994968022400002555181805431532162873867336601746878723908691247591807781575219807044655172160182083764019100687237440328555732898865036424611615939234112836310969201663186262403005086607611423797511859842493732416472198541704304217605987197924233574053999366931662482401800483810873775862444314484492408696117100254568672889027037219990523853291344494480891121554978440652063014382933463751649847964112838681597359107943610835499237520752144789156541647292479870395427794845709186958585474996084725668483566502382034939977061764239373107172538939888591516489397547476368720393141717809078384299590941717766378367053188685619830477246875976216884056758414653232730381535207883472460589551471040694642438937242652639629852447339097249417278774981929263107737449193584816089438945806091822582564516799344284085843526812728724023464669476242606808049387322353028648922784840494545698661941001217258299995345590960081356292186750556301584717180118092439129722650886476237969084627620948500212644811456535316613746290420537460243312806544229762664651678634437294593548407194944332683294343344898561008003115051569817048916956215493718858029287806508133456916845388985096173558417682273755617334427880742484891906396332415180027898260370068445327500423398500325316415513154189080425550771007933438607303540879221538492491331764105227944382323368355558637443965711169526640725743917198059683314421723176131895622925198054293704319544145922252305981572600116469785308949410944019460237301531086818794668324409015381005397722819213129130870630787774303744499447810246861567924344818021526124200854337229577176167993107674570828449258002325626037279406423126582864428434243039863368558182652780107249067380526145965312429532386358525976125484596897083508317985686061162248422691545118174612754543353450316738220942985093024344837651081826008315643844543354802371149618749925548103102833644466128308647906559920454798319083477259072774369108194345947326541836439931743968680852260340200514848772549569429079441709998287567098364005759150970809489604230026018924947324094059777126999361482864089108665060862738185510978309419824547892311543105281493517606164097559655048401178911882223938231690538310417984138463730060748708641637597841643491673506353317425377079358058859479128979104978163203043935302991811903093102232454151338525578593930412954310135068299228061415382756479161762614733294787769150650507454940500525127424375880733950232707542382339565615937139480754792006550801247948942475899171041772927611988416595069197079340468317797240905100824901675105453708729561783944078352397407045650324001380026104107312770579737023280118846182818469161485120352717932669902274001723466533870762885201302401687837889214303440197524326981260199936011188785433983642185133806875966359962848255062645170856566805301255637097189449808428079692756452857747971015420994576872243378969803401869453111750746618862104602347607464651369191493981567362296430335781600086386878544403776611754307879280194947556291456069499233205950626994042368705760206770832496792488267776838520755214544713221806419925646633946593500163948790557615003951631306037719994909983275965865446823057490924995057174199666408560075942885182273812294809186390764624750476485821368674450599095005059970003773955323381518480520648701750839350466111490125535293569997373090704756505709911776634712681209704482629647490785308194401686108204454621238330865324867477957567357792420812656198514813269879150784500208960023719857949814962360187847394090072849276531798503096765224504051319234653102334944295054209384731609372319921430305301819816014585606547375982047835055231629683279882047698885617468766897796945036700557777466029542110101495095418815677861228047703420185701325377538445652258989575073533165121515885938387558413573685657419555604249819774549985839272814978869195638233335441658651025497504595336742850691999993639044478362381918173166269860689444784652494167221392629509559253829019604683120460704767733375794847193050126472077209457883961192687756691629900865566370442733233393987966119302642871360186521129380811972857871778712316480551619060311807772400639074659286809067744009058442439962748824555178718976858696990437817392996048746628394874354820555419248747554336730876375960566088121771962871027291881970579616282466890069865668635671932158119005659137605036362192420524999138965713913800167563924197472900676025545709504548375986699985183801463939771770554575631481560298748474303532660005577125964992318976669030889915308765519389167830889161216619454845790959146221568145481973673840407107325544626221975769475947685720952644542729865652451195318427084101444582505810110277386628680540104988103665667694833663051567339551292110865242806908653038315421226682605585045519847898000745936881556355712781038605834998001742421432783395795516664235880558115921876560938816094838075283036646866150282913713209791221891065781589021683213096364068073087099738784855964390020369137903324178570587500225466417622642861430971597860338355264635447811209000298297272787110722123900067165662276474371090634543978395760554960907231402099520846057647858122559349662343045830857223100601500963183159246462501802362749624489252473938099823098064769426981672464414022873281852088697691366183224624341648993412382481338284451276540951025139230780054277417477226030672681803916578954598915589672533909104239525335654964257733515134787101729121285218245542718422101650604533866367097108801638182717265195550236439816215622888676889595506314496510347697228072773319804426804506718338340607907380628208563070791103581956483959317495871413263379550416476149412659027428778696684085011486804152683379294901400423375887895092320287066800410407985007643735262274610069468395367038939132804852348017707366285610226749959801828367567784943503221666664065258357578518801222269830201436513485142479083117256158893452003610336791177801226228781410497078991664480210073465447846235002076795221321704198136256173511647685811685301277932687080305846902855576897717338298004255721098619556275444312286234018606939402200628364507171063211613250949539796987118058918282088918490319557934168258438940044013160162781196914661671930961853360932741391498343292961643262202079292357134542549588738172127881373603220330674781425316649715683957518593861485511521046151791994405570607637341673644347873364742242338413719147103029128270177761834673299159846871758200849438160749085398182635996994016625866021004311749402291165060138722466636627873595048314626376154999539324787969901183042925714902596994213480213060093580013789716022416183281614128759430685078060478565367584905191449830691745355911900855072566921621680001362097875750149644796008037921032584408557721933313163109422232615201104823251099953807156270905106011821174763506809278350190697353250084216765277019720772502853293706545122380003235222018621906404374996364692092251247611896923433062829416688188344410622215227589198153243613907235196785500856693273740489442730351681741349285805880059606175828908247857758478525419781114426272097837965791225674731949472960620163318685505631627693150570070021503353172699606193029499108562946427969304618965966677247406517566662331393322384107928021458414620054291833560379004756285755996645704896438788786616091001671039718061223908348080702688730988382574484100705319727924561390386176879996668870811022897351845326319032601289745495286842083194201808904993461079294941200298477643218539965257375647312266861607214285234777229054255464684503908399802001786215667429518794477105233027235465286821820686535363940525661003830249242529173425363122684007693893830629477161630754549241990483227222858950129655097225151910011134862521011470127843233350121633104225640249254402281077425230809518644896262945046320938262744594891270906201328116967837907794678956023359559511669000979165059881273825557137354161482616492677129548533177499478993898342892774139563757286846208244864535737751657904353020137038799195474977817079724262039360745607824623312895993947322185276254899344315887752929422131626024906789239673502929338794453803205607467381459710620079004671380130933712242146333776211352232401872651435520378712715881733243870178439446000110364128411723051229093431575628103094125546592749412842125759095926598100797430469990020102984557933107229200892370220181989819853054727386497702287565765418839866044048898539821006401240860952094814146280470357273869550138669562860009679855265601248962345082706171306301439168374840564115465688899124629543358728976928621253441856100143524067066537212969860385651964904006293663169090218561956694386450661950533520684141248749868400861118817614146362692524041770478945974006083128133322674639575675384250056529304668546655292235564037476124143115792236584483120357309140698171143171729208451703299828072289284945775177127377210045733898130476297858470447033587905900555906937065330034089492946062532247259389919671052811027929454755328926011054241659350306709379155298181542177973281343858681803337645519813636329070003304451308236003632636831951033079664549690763278778921511965668479391866108007333082227201616131698445090013867239140144591572861880987096842678821683620301016645158643970192675966915408190629497490951989687096440096270027457530764384241528476627920584119290680037280170842627896201935625657618961183873638477938787108986216337846050031947702673792267151082052684502565323342266488455198338477243478697967799321444590566085615050143729392228616006955931316738387329367475511975666321523367805206667508399867068428566578172319115079161103430010580716894149365466863698973936797657293167553849972747019876042801296208986210747183457034733957082319826632747181389225185779243368571145750344110762316808107489280277048987594533077011865485838439158212226327967464815085888142760935722354377076533930674346090194100654533170938404499259674516216426706903806414082779141558102437025373669606845001413323533395931253731344570981154067040481999460369004498171789719783104952901941699351952299899854092736680694434616553784733702713241885070465014345562709768419951174146642820686122594478140947778451370346112334698938348074236743405453386670457801784213132004893977866961414756083521806269539191760618651319701225116460101279838327612425676056576969911597466952141302218297331420177962544896324223895476030893867660791954386168097234983176980784439500479604081939733163474299255813468736255918040861131126703079978893368125970084201539916089846639297790267970992208726220744224049812390200881547210746472466135647333952344215657906847840671004659192257879863619218462496956098469080493292809132062118843032025123601541760657963237689313162183881473029706991178683215132143694293157478310813673401960801478423800719876623178568580845650711804769889525379138986202375218091785931535439662843316878953913901371873914376262104460226665246068931166530714249178761483205942921217673076685515763558685863962758494737620355456000621617264302260147390974644517490058243549532395311620327473423514652164901802260369541283291901793140848016212031025541957754473857668738973896631311032947941784610365666145055797082373551862552005272009628883967821039758176501146492137868880073425041073692824979656800567637566105365813299066397538912398142541474666883566673708423747508867056826692489640058855978124895418631735267759373582783403449973361284738837309221309444230372135321535932681221521020114319276581907027668222453899998063672435470069723689527881446111104453812715459961703032808831172130784010918178094230532186490299252477479395946069889155657122545876229777359305510474690222381147312321726697659913169651035019024022672490799549663879995302395101848127444764626644651795630469382733284625664921072579327428504668514506689370718605585448679497325346146865867747887380673699169018284186463411584715990050537690537281597308738144147163376846032859585195960343624444788854062835057486327654743466587778884222977219957156328576915875687988268844309797232646282257560901700148718531210492911212669880475739148475320698859996574094217537632541515950164114413130334228144013401059406747631540243606984372256193657156358301772516031079978419924830897726243208934382153556517051641861759377341779430038221173327576811131737106265599314298724969958610544276719191014581882179174443926831871316546901683898268615450545711264425901460159464778109996930793379780226290171278588095591627228825706348424119048307324142008391755610631240324285360809064329829896674533264135345304237867016454282170649023214973862072944241984248017101825829694154452685201991619803665632779248421835399040733856460744047445809268592859584809339923360944833123265234461092020450417197018301397299517316298199844520873478872352513653632232746047994462876232515729392238414717270984054501445920723194852048750899557716799715904910763640906139206954349519911838988815381083758875102195019101571769203649108613234541510230131549767817755579437610748892156401098121101591536283641921602756826630390638240903343810000919974756039149008887685969113054069734290535860485244076646523938487618755223947056251273555579744772397748580440800313639420501110202229036890257701863521317833971156713516126795172200564995597236383465680364295547029170666662123425414164016344103748169761871516385543680620282442811746263701598316545509363205018196030169084910894717382882895280384695215781464379520152221720695745786487321817144660755405463973834517746310516603946065431090374746410373860250439345498087063320494556235152622929321880707476839394059962487409223537719488972601723938454711218797399673360299139102397101663503789723078498535036178309671044246196650484827333728173574130582861494902575059396995586092337644948844461848790918164378101044759724435944773212999402881797990175047559122917284654400215806846785780839346207945972410365582370160384814400199003597614354398992982368726556427152076575520690001133370075699147228121237740102229256771358222027948210389183643344765089476277964937039302812010782960368626466766229799745201380250240757993800620766427134797301461272402524850155103328921060824587787170962904552927498182511331827965862787048603718830991068341278813876168148577163775068983101704323201988653752194154326238426717463374914225446049013538303501068901269452967133897812648824486892676085329034515620002406932503025309122492690076705962342923287823469848310688065953079434856310885389512985199496838273983303667782821604039872636721461432573568913967512451234377864739317208073648800169720290422554497582312338589216903878228699456693093796155512394514780453668911887306839804938584182734507660802422482890278618087849771647070693701835115325751652193082875402215311133287709151162412299988536353319217489252771818423037277026117930888717070415780440178391157678025728375169516166047418382188300248507984604745891381546653872677663283122531240293276316631408046508557583632882484254902823919861838096838018034337067764396361092690692258635716617063974086941127302857559885061417441634457026682111517545193114053155027873200759077665162415797708561711028394161116995419006742436418821990697322624357123859133443172786078052907438741655517518899016332163585992568605643740911680871525053891643753780600714956829911117542113296649494945580058054148858395008962593371518890209864371661516422420161445119195473060418591055084216184089693514851552220017227773272275505585384276805355865811953291231355876761773420672381519636410329101641863300966631968916745748493859023963717841711657330721282717768823186242686596971927237210064790196067480925143024542913757066869493109664685809188284336169508130200486729193038106805046615817888464052178474128054115006889955869209123194801860454310631687154023667491079588207851777323870542230861628365143937922510349189096018060289656685751121316934457943090777047517006704453276802227033742866309139919102756924877980828627314905400709538981597416613709636259226985917345037826058544656390740036592873551914854668472418008159435576530806387592488673745737342521427835176579190442446852241379510561148490720369248973655315706084180114046164807262585075709648797714731082824169135218535676862071913332417063465228136366257103770985124559634185015871678549405256336786161704580109451490613500683385181666375242308797352102448639794154825041994770714056931757146309662775370488047907941222704237184543787531202637002557862521693904519916774193033880225959849846567865110790331451434774879954747274415783198816333401784981100707765564782575636523174741661668012198449931056057271179789290705001441422916026466237738467005516449865064939458369198373976959923299904300445275258758428212183861243840730509777891744863483700257950711279185327989920176052440313844373443138952366083154272622430581495012144924545346379326466158398097756709250592541169679652261115831099452306408554637132197955363886035157059766967823025811316407325295089767662620500323010118090130817322268720189602988175333227493763193071038049336914139814830849712057126632457317947424671055307153281550787928284032431651731671558761576975256715340166647309213602871979172623291619248496392880017890528128729539947905704399625093063564238321907530414493661804951529210225708600729848889989078300550806593218911874426975317551288739894728682320011523449711388206277827632191336006709181212586637421921198757922023546264796551482066894224719164383806863606817309538903681629941384540442726165760847842712691204946061005109747684640945815252605475931914484615295831460768299649210573208027311063090930228426465067208347272307453609475207872679825888961446786278236771562585213695495043971197001547353824644577613126346044327072131044642210851098060341648269956865433692046536853491050373940669106324024107560375971777451928052725674892551838876736287773288770033289141971408215570599432818716395675070323806863117625166098777433842739155722552723079408749835834413873652535459909047662892705327259603050460112958725178675000465510651931705212684415921489463620853615294333299527617347394085478622181404904437413983903331709627557298694627124257659057859543955778120944342964372342770777566296556964932290534391761061831607719684543317728349043886526884005445402238212009896583833974587461191656731511707914006052679338871962700415501702459593472785657011987701828570412742439033917503511521053619764216994223185522861946835394458606584152761238131202971340614584680474273020338921594179240993030466924657833047530014929645303721236470007841237430168987977831867719319060819557181734373985539224086495566716846626661102639470251593180838892611069168167246801589126441039407454291781482895263062911563380075689527252770360706681925844889238721191094201585432675262708709602213016999393876180259624319283181911780538114801017247385710697222719635534298006102872674176826813937551283051538566662370620027634856155476341993838677241518854513687709861661030550598801475297338378523949653260551171251678164283164991394227725735271902482818895125992157080423980589144973015172015341122011950229518942721768692566031124804571634278677584290979097286011544677365475624885235630551042293351041802776073398545762364094724580554335937186906094807015478766550662823810976263673085627613082669192240607568669096451018427591950181993685348140136584794304551830483569795172859005041111433773818117348478110262602828318059825411231463117254783865258820038244327020463684486393975378001308977651938661674934007403433393871389553779360792638429667100647345179679471757042201263189075398604696705919686073969307665708604034631842438326174488472781300454080388125143220571816413205781100032857310469095141157852814723169333779023757544728445724635744773130354299177164327417868913366262883993699745471859536783379320559549025041117401154597642960126567670349664405707199194552869238496731607266085880862571740167419236224402885813635157289068622124828644815858903135648464150763773085512213343710716114422098843955999012995957838589882669724438442333035082165159593661053551005733869008147186333933402241782777185131899147828822605965769171638999536713809185565054781948732180158967893901229785984290714394885724998320080154033029850086128959193067399425835287504024865363748177402889659287812359485279986580809870605626815390353386273984381605183014919912517312071834815189605246287254139683602175342425851313822171602096407388078446880778937710953505515306242720673507509843102651461972104491867428387953042478562414357471129102203042626417508674183818267963922772079706507190234252156135738965871372546311616421021472659757687840934443824460715477690366193946587638424960574989020879389098680434136404832634468321774695492659882122021283174305147062165046653369596767609312478213556156737406231553922221939515080010963918280187299179902383969673168469015965593073801783913399041003548535549722561705375661148369988769482576215947017276258809109496345999906839973081491530468366242955421838713484158840874348679679571989494706407941813048834190100282635983872887454983834414109029229241822039594851645631930245769599216831643073435419804882150011423251079777220904730836563673527604624637877299609966095658533431012406093548992757072988737670438201283015582316850515448520567764795401970416744572179093271013185694671902285935664402777551209337640040778152876140911788332859569334734713570003106725643148672457377436848350527826697554120684168737926330810475675079321921267417384752479460122684903396881525419978933831748899978755598032838287464092503368573369711960623315272990893818848408691739835019656942193540686065277422548220691621801049272148049012796870090910809960151815138044035261802144932158623106165558179440278371944091539732453841077700737767627274083304916368456601899216486451624849367861384673893847833700058084034805319465698651382626875981484506870774086521621342161703939510030591180864286694804585897068515320852396443857781155335449285852534035133776038133465777632233556942886369241670741520056891299418300522236982599277100217479143267338752431653709877045438185577992177335919308933865909374475452584350891987495584594434954461558149435711917318455149187370315292820412424878362387224708880535908858332917805626344577059718248008957594995142197389074243883147579485023444080219406458605132668009998096267258588153222849197574498395524044723996376866716928971489680456081593508927855797882806151481956623952163313770665354066517463364976106698925212431609746132775180768653682445354832386196563199610586508829708747123520817809385926929726807317439365847574369537897423068028635527555434275828355285581381542946684957559834821931931754855834526754447863000225265267423908160294117976684490719865175068762995729058712681439181722749368689557321246211117919228065340860468039369754157665520137436595423778128953900346239431577729154504575729429835217963372734525817174702942860328386207824743645133027403812645675195506879873517721064693573303473940594696458960353557818452081539845945482460781513602331497225201338788931457906798059940629860494281035151541460584340615945589709354662167779467880772187402468124076620634058528169082775721420014627742293145100563006309987573289325897827844968641324323499669667387066585221271512619460533486470235262146520616848536440941183908452136642330106948379308623453927822843994267523924663653667805571691129834464573000112482494064603966268657151262645217980435521098223400507081455070691317718566444116957600495209449692099030683309213624314187401753608664870350402590804117370232682818536631979918732163983017640351652753036401554478672719542516279797450595240247136811093178362793750188095240592478586633731290454962878832967413874714877940563795540169147273718216946200668967299712450854670702098695533146717470556375257605297194763317122795921426985925542020000926425284924793088633611940635767452936419993200508956616026078506982951595225654173192491740396477412661248645339559445938699150594593504982328069896811384902883052909033184684042158290843784262832059816260797840450327665004367798675652123914944020217227901642478887355645162563791835910547137984004272000980508977566444316358102820724668071917539469668533246201971888528434674289259332477921773054591926082105427082237723013676258785881431792579123633776591297258740146309734195244272856451803967422029862656204132051799181931719747338139371169923273145610942029042393758264759390102004985425167175801036829339561975824604966993652526892126133381993074617148162537609003503033383765424490982990251589376841636144873594451749171404532090337388093677631627216194066130071256461611615951873341779505175652955098671779280703462735745302396186676488029295988332851493037478551827566961482918643032811796691624991194393837925236366610187556968401703897786247531465978869266567016371455828710318253779067073641384716507114080291200641890522999100067251070129446493621586624331450410543951619792902814789672097969582000665485415000536178577374092862052077121280700048585852101064330212116710601675217607494876625352880418457665494825624203487044682516508432346592683820809094420055730781528954207120206334636645184278578296408041826718438010945814754043844496669072323622056820427430431708604645183656937615930315129254017747864020382940684474471614464066967534312751432109149826550909618662345151031902895242313031726447695603487698426822722486476223851365476584077552398370016881972823481640826406197046722774595868682411808572792833019037127106823949135251183212679041655294223103905161133717209300324596877143027062962568770856950581192463717139773031342302303813053269764015749071733872960675011968242101419066495209734276695013390681753321513719353614252815415606811319492420535013065126721524317253009488344836990516304601346447502928845712451074238256430590056559235037413241802083566285852659217612160690414860523417788496306115214007241420384175829074887495473871052116597092052160617347081257441252712118634857204583938817914717791666844896310052285294288729541581300892848334480628518066504429169532483143972032905523618924291799534401707345239073498596493485112153530865899210688139404320217389493682016128206151041939230808236562208229709960615551746377528354870070385858733819686517538590974856560744203083844227894916341124279552618122280854804223408134449715990855443406216514710649061159387742839828839537968094582368665112752146277147316707981760900404289344075680707269044101157993094194107774171872839355088719855580785316241761666018644947092449278656185780797069256809014831786194464761212574812699586915471543157203772835843657495128959780282734387626507912321055469107447782877323288655351334995472704743420277291110169817869570440498064433381961702868671861636485392460096212345974648233091736254042902099485605518516241743917778675720701603104421480005315318917851950540287310454856001801598133168600939015502382147669820245478319501357813841957015122760421366486593569680135702429618948897450796488732768394005729578758880029623148568046242780694650339450686511206025476760547833108723143170574600222681099197330688911715083974201852114840640014509875370826196064462180628110120673361652089849107582581051429414078457632714546534995682637474659222765450641468919241101469039902184330910493534083141343512862693403098442940366117010897705445044302952249423309154523833472303655067873568003773404260822849180221290238738123112752795286861381140811264097955125934137203571978314822737547495868105758847910067178718467198516598093532505753002302314593902660703056380387139205278300202908413533753964724701045398505788452199988587988399179592758600728667567136412546794170968069132726584278060506387280390744023861529523004828192269010017921846688717682437453476632177651170051236412026622436132380131048598092901116333361702792631371000566237872117299116683307535964749896942887207912377807761663851961699535773271826289466156498334585778875891025474147002416249728324563908016072454422248852633676705687008297936007267274421071327735128868653362193290425939013075810424985440833027298785994959127129992151519346728125453057518733159975299546859118160848315972224080926249166659993934847555985054109886059931402452397053351159989044283957406758398762018844483295294535331992588055705703957782692798103270337939852456221785244460032591675106175043089199284234755626458159128283218783009440838489345882640236058045783683189368201548231372291220455405241238749795515227564750200338058149480553264631853586561852510453078650427206927126505888849520840187657356403448918783159252104364833894021572284248224746653518679321173605503572399233997042625740466081685808604549686202716511922743020158684668630038170110153544827894336791643969571661451166099372016493429945346936059591070174623723025817242513500365131339789514675486915405395619769484497229726729977568672383276840686678165397862304549609116030200107370700336397246010336247333576568231888619318471260492672250993564504796725997464999747233573282121592577879968842185043381839648129132137011677205531071892788216060898910242875013870520604060009743581742503537950520543580155163134912220456250052466962607746894111918619984265115564801757662984568421170394104589010409941759023270045690233034723803796382107475842834233319332933345354885808352738703552955803182885064174246051907636317161282251140956062049736507768763199806777981772656081280103519944810064549070701469462024449512591255528130148134276166998397651495550730602790560470189854900133674495358108981025414036592781869386367530159566652724999255154295082651794251242757349760980723569991228113594254143949221387220814837891374692352548095380872612683397276544052074255931812193345479885137082606045349253776115968838656867340686956731205198570759518766265003058023560533374940377006497644008575036772012452468220670887632673703240025608290612839632225829658835865351312327996756493363575211039781425416331858276487832133916958694141908736738055404595682327294321796321039514349021483525164887261922941333407564391468338367233489038229610826318458793587294977268970653626443727332852110537975971532427775967247952873915607704491884188869579111756821877355852152180880899861807668058088428307137936987119924605081938168112727472928425799114585950540555877952738800373196861723795097050635986251858726047750048848745793977137545095940567169729057289521600295464104045230138384603134654884203086867197201729120117192240737605085268486052761635702425902299433407858900540164035686930539600744088397813669240109496319740564337834260537768678964680293799516731128245868568847554959416810668310063940590411621195420323087675644384437349095873445715979566897106399158226246548088252348075662412170848414082462650860671566248650760613195027578901281779614171193351522959926893329902189423179997273114354411227150447101718056497980934391132659289764102423838486507172390288377327652340021252634926921322504713438159114283551860103361591383339956925538772475984137140242570706430238150206662654025110727988367440872826997514297370427307400166750389250398541441706907409441298812065407867081552476679728139707554681378559052437084229664174808335858031581504921450726999421685399850794531340066942808488114454115934049899717451803651192429958698001631550120955585188247571520475639279630532177808617689381513102664344027729247732569451879957871872207882828249330598214378805618500214122834710209321601976419518732536062052645111551118828982172465579644889368098758741013902590493058351768005717950695614548322818106351788328136516999712275450941735679064473575368734418036585539139958606359041180489308683616943976439937036805667718532595447492185434997849599300610058633587501243787815065259286261277492490992292449617667793076095606698195034726863785380125521843761961061983801561393490323320587734353648516216476289972516353273438971800031907871338267581579532312635732333822439014659332063186126463080690279563048340424972692105759691066300475144028671743306665677728641512672942873168204998062243183534833701117369319149368037031650780491020861218000060962290274403257573247165263273766393852679497415614380517962052455416981711838425785653491614749229791346942684055786943186896816642854994607678672075530804269100376512287244650927837116564856145994374687123288747008835511536727574577302816306191990688750276202872609463931441333580137380539370313000146598822892786596697953135480187796308118516631008251015635827146708333492901387357571423311309549202782148786048320851386837174818779928178785487350776772183523983802974250117463372896820036039628502759727414233641927495898710990414383070122830272094758741735698335054834721368169066359570914387883647561563116151482858932421198131338720589617255353652901021518324758124109616627238284284894625706176600603645857739173235990762479344565122244196703463725352487810741459134381394516373101836578644870984808073071074677772213745453560298815779002776943153636248802063884445691192888057722338693812175756908821788238906590504424261164973323180892426414544987554260344996048016257039547441030048707531935054182540489597609240639772357527351534941879268374433373243645688556480910128245792290101371579392978980179926048853539966830482895199681803727717676575024571661313747126767553001409007073209480930689057672563148559189192685479950925437069129125132998764094586758728751473672846166256846960182142639768337689137857020027016714135819213552313307485254674073722125749056397045280848220418773144065255782754155587826112892159323712954383601245336871719184930775401282981683298350921173719551093723608403324585331696279264662622980459114710929080329325296940003548867463596866765223437783076571152003176128175274723642737281223609185150246457189666842028151453929964314734990069894470235987414361213366929882767367642591244695157840002376922250007933452286064227088561673251695251700855189274252240160612376224299689634360383632033365883422224697976213859883992490631573438327080135300342274644611111917422343615013366072069139570118211349354229482259859921564170672632159323200765926007485493159367459035674770065030569263488985935819322451626167174516186850224619272477446889464321848606988018260259323946431425729110612455096077475840195418977710281433584307635490813893183899532828422170975172853568219969874534760677146435571715449343156541995027505142357940251446848921431657340679307102238074855884760608059000073817284904710859011588339438081009640331660360892571707917823034761345548061045049638531177143875294147339882704546254782119709368349793163944255199331997650685750698915143317850744491305443295499466255011356940439772912946072763194696487359714514503126312836169223516807249686773092695812731049323198101110608516502235936407349629012639930661554425306853261151004092966819285859693645451855340552032344443187790361975403858033760195378680244350326416088774066248184433568266253027613199716763049881659407636063349412656086247507214055863320992725064432294377055900418146765545986395153750840762290742352734161596877299750808458225692516579504630385431358586236530680401698794780204877692648802805943519865012372462354209317979834137568988418861589717650449314053504465125026531026430648074916227890146392921077687180310708402992166145163409812905631405535093234900427340651400560289982893001238243071144177910202811995191201752289377120509503221801159065044221931010930767177570385637772637235026122165403873190859259276588919952396475241545123338532620982959729630452440984098847117115728039721673282154323808694984173247543397844454190204824812290175027496834920918395227956430238580335795241237507030982042177583292848262848431990334672471362477915662638987348554782293537638980292903573627958107686995833657396448811068114887089924737668453225492326114937795252028927227853386275108624066730210772014705583366800874768778748734311943879820582603446500325042337872086069028558232397726426645888969585573956779006425180487421656477298294790740045241191592855875470984554351342090972673084767490472398837395245572639933821007136889718814022981823016519567250462724404108210113604006764898530548736854570811859576156777020383531785932710362697511942250027550117583371739494021995160684373715772145041411067858539872383319632975758065528484410239254826371823645623768536064068574340627307776483518924398593205460102300807951932281530388511459205081453992576457544965749944458605600664016675737638870989998058226627608292023166332404758486823354303635100306915357971481128629167999060221173390962885734712123879541597611382659266548898736193177258377453240070152198680600150938101926165965861406162483733336421643798531134241684727820647047150019387146006590616571147524481167199852574651372669731793492489933203719043744491243999439992944121994416329148206097836732761571929653179766076607298999395462545994906027519847689944156503315128057631449427962737652445803971305855818305583280186905873822172078305365434995857869975501221005990520469521528140393608175924146734448102474954173922690017655908918344584095099406089883004427718621253969633489821327613366952670446920647740338598848776791827990287617535889559653485925316471491419548829816734904937028419493913159637398735260614708295574905901212436977050730834378248436516465454365786298988539981551009086738703998948355418393673504759110856197659472426491432206249605876272041114218484153978221100470699382206381632451268630234105074491777338574556712519956216010104536446149997150413838108126208346525481612400348823619883378668287171081645038876910513821791284521554721838838966051242799790706058429053065258327423961253910183247218916326972159866674605975737753478323310509723850884014531637512978031144047470623552621728548501264458982704722389211573798168577010479076382886118351439101476103323660411274621846398096092338134042665401980097538386630390679168226423072539337630412332284317401269872910338726129002539574105364519525462528737568986515962449611897700626918783049882273351002491988351803061890037283370893588021282681696767211980292689399278578483236087420871102928905892889834934827585373039635884210964581815394147986252123889803164537630770463175080149397986772153639165252051826117687021808127707283266728043778645669452359593577707318521323432903818335973220988155981742512966428337045204933320828508154233990280053298185961412170823205681951500711705246509736886749246357294334827245483978129490070977761520208898501055755176965616554551089161490183419865166467578788459794733570663097351834393462698670880849755215030396802251184406623169165035640283087935498123277267196231783948883245253723707676680904581905374618455386070888188760814384998549738698166335716671452161633586644597732853448471066502473736599965491804187369991397276094344293265874211064197392192678974207993486495558819926087007078398606406649050405727234040894384580968651396392441906136791124659059184251903453937785229082913038338592959566639021433675605502194009371071342355980113594615107999729254516810634925144817882390794805149681161804895279757581300910297755678295485148595826077250434332620735126717456170169782129284007912393182964441264129175490423224727251419400297539259918524216787740988584411140965250448728001700374943213085185678570944238938103189185370807867577450518478743252639380964051694143509960202902390186114889026147088179819756399480979129750880670070748548069282497203806537413383799760903998511133349029762849919033578090848068680219068843036239243332684194044278382981740219257043174995857192309270317056233364251483544347434389559913110082845023157241973286305963777922496429528333405526738894070386746844796827430931972767283015359743363709958343561316107036046038729640896445803266399464791517001760802982565198526557012177581344891888272287709949152114713150694523159079362008065551848979496552910196523865876979559677757964395787569924119884955172601548734728693334599240747128862343439807792623016915510212765855936892679577317213299562238366606465241054609230940744430134275911468238982992247416206940670999491962583391710194320209029182271570610000899662600739825874397748472370429972216995873686155791078789794366857996330087269525368866879264156246564736878103460634577666102182909344734117686995740893054946706042134816531642110971331112286718598790484558604742347735689509979608158736799512869742728559426604427454404754233180560595227695570879938853240022977066435276690762312174576513854216380239864761108918006858340498551431307358064778828790421736346196837608499525090038628296395295879486618915857116370862778055521063559022908554048913286068108872806378133104872625331288920084494511821177714566096078917551947882089502958744736200319691073761737986681058588356005713176805810733785940835152225863517260662280895357365671323318859539176870428155845276517844734961939132584098693682861849239317676546674461859474818390515497845910393744015294619282177869348965177574123069728212473940639917843408811442355441007556689781514509024414172094069927467177254188775414646436317315084740552055911172944979886745010912828547514349551037294203954471611579779429765078270731066441230774984564383766291691933631669851957520367632298274710189848927088205317900107542862789194361205436610859304499117815687185291406422714348659964919793762045486880595664819153103584399278518471594886024952226680922644464280408395380225236745384525306207540203595696615702517444515473872646180613746090309135233089555009444008255950189129281852172382385838207895537912656831100987669154582740588194239361645653668208914863535590280748495628481038884030447273330650957017633844620811329932971298949829508804875729535652447141628285375423159989535337950534944295948448307298963096072451271864770722120942402098764113897350621591327890812074617230353117388595272065884206050000099717269589613273269468363119296920880333566155725861926983119410023689779546978419256163182478712933795443511012790147046302078769495701947749512401141800615376545291873725383333337607382306191007810496439966509356602855442037513304507414097665300825301255955152507769504035130651874573931033495197335997704957566448303485067908712817742832339603165208406551484878595946225488695896822822756756841925326853881244372480474597173398659959191961816278039770137985315347903574494878899508661457914658138375383581273414284675561984070026578172293831543169345771225805779534806534919285591220907875760804454503184487181637133195315265610355618140777810852386594059460711809851577139978434133887460793652817910690681500437882840072770094171665917704472398129994727901335104923615391298232396207277138327046501669017369488599500884251131787442358136320823465834510024810860249474001714032187096948842513429041651927038688998591947306201208191884747440135448313315114929433089969588170329237879370550185045650359413650385771609882739735459702198705349748813064782605948092240804063389083566826899494979309313592767236159768384637768871888618880605581120722333294657222252125690220969539505229278852551835258003096288990741706335399880668320674488414818262551069783411788923053180033408612391330102209476218999586998332928111423738672849467335295943703824253342621640169702193324581747970465059111881507329968190322115263971278138615280277675088166478784992651949963620435612330406436005255718306683167177195033505238712078754789012464565373767011842200727615472626482112315317476907560192655375438736702503333072834017345641408667833969494016162536935564965795829680076831908933324743657862189617667169115777115232222536206545638440525261788076554193994954951340770120373118910125714813060841718565657890128392388996654824835719411736078444191423832989978955177824057717512873146442503795237623964762126228992474648395653204062590517421840191949487540137563308760177584155579164972957184956689250623198775225373062410268560202881901646169769506157906919750551187956569271229016476025880357657083581509645416132863018062477043877508586171300477859722247571276117280800669707795872190341725781125540843400142231065267480069481595839467475121945623969420045090020971537775280440542090023517313924035579324695800106513734350077542089979190258857784353593599985898829901197003880866156664401143087372293057584605884596133184488565755638049153324987070122060529938201807904866382110922600839696606831988793188081016812741127838037667807411447652634234434949204700662002428490556939387081410595905217451704555769052703758411377036673411322476625331639483687720635784920036019817206237982796273400438858473739542179563101600735452352448106360603877355572732121860819422214705509695276943817801553418111018091682179668783676186948873298285048672559694842683595866767918782696807155584268573091467557300303628329708556724100302165716749347535308967640558463405276738207559593186433365762153217489207237124345683873216751499992187619295465859192360216463940214945973369227726659767268886624623690946732430610776298992046174389126067703887061962673732860184064689514343337108707383732320829391561086342190252973077837207471422472827955255527804578666350711592604442767912149795652433076352006924561716062010009278229397982100924016762865281211056141197308474034201221676942059238902273151302834462642424560004274204626347059092371706228499046954411493435472621085778521171398355596364942342597905457277460940852141427561799523216332666570205624489114145110469936075681887257371722258771729874287043430546059535424162028382944412795608742074701142727097344970020709844544373989955159479186742985532154838047212218509612430106158525429579432969997388751515362462502699007745001466399436286437734556226457613217175034541086121062347071277380298411109147975029638202818604134322104785462375475960229676449891534853113424867207663770747173528094430149519313217061669717276798522414715338691344729820973018004021778858543982589919175367725192119422498358306878211102208335956151096678132542820994997192617665931734971656664043376247713572397852329706833371137188629357300348121078098167355543992812531442463424928141362931790525079372688919387797027497634421880625366296998394701846149053467721874503342679166573250933284714391736280470535887707731379086491352715679260684407418479003861174676282900898889830402500008762401162289095339872892329986717618025498052979769619025313578855330102396593426016305854491414097653683034839349561648047430229976716479532713925976605297007142898948454918438222651775443509812990355041966422337208041236716192953327897436833737101122155276237173626128564814529624340965600491601933135317564705949817876308066165166851839214314235368197655541540836235334261719390924822340930318860899737497871579677459753992775090987695979526771421422200479238541037180347802523528243409586693446522555125287171560199367937851579331613377528917476136425855390398838490285778709120358604077973609760139341478025677432275887027277625461083570701217239994096559271421648367579106930584737258464267155513434924989894846553830614346816110326033047137011711722335661850327760741799901825228363406935778174235839177455906680794870619553295469763433352966228689829622619459787705428784375853658485972026282331397677950696256372924468323001390675976941911746399198908359844118786365007572029414481808865247524563763457339428286866895662926118399867413816336698107070103933329919049207393337548347654059025237983425834031267644473956280813448050310285585423988605628380103242590059846628419351912099599673279415289450164204662646655364377567024720026823474327037738070287013850753068718163420034907110982429636795654524751307016098291515898355960107381540010770935669551262586549366368814454975559340466473386393248419760147521895831231761762758614240003868063619743523475739545298091572558806282791648121709759612359378818413639154964261595444539160270452721322961440140992645052724701743761986399433207858199882316921888671119064715909589684172383061981786653422163977459752524023749812884935041146463105788850316218046212205483553742501560086504562797324412475297769902947722524476547631075829894431908932987603262805106146102378064520204445038283463506847458333680949354059757126820254377688542476335226439979401153203544636113734796823433827906765167944420109380217420470229820521680352257089983071747913189046575233721471665830116361529323681744080479522439330399285169154832649739541187099211114110548777360579521436683579740480301857771350344252714795150354792286505937695600204975605263964456649102601022023172032954989923918409184504677740930300132435746103144705346434869726077965997441101199066303017827074106626013990455625779087756339880626036582377334615951693057303407790662345608952281268481818521257888663759783401598120376738092412143493691865042576423821757427789824823014563443564397305513466224729910559771368048630206718791944302024208191570356480413447071952545206089491496091951799119924377760540507475331286907097023558126392477609736030366109859731180377566825434425832106202380865398783181178536682928426336677327977241616216421366488403515462492377417221615281290415960962353752497080672287919622626638609298307518008896997929277974815619992222230756077674404869003604404211247257030278440163734484571599580659229851489225826555574465805016637317717107833393966126240664822325082017670563277881669814520098046272837498856192979045116486767190713531760550047298155765205498284059641064674630364201967078476504009264831671176507544644615442869926018846829118867922963497208714988152484290244573691858156921429971687204498470684584770401794371129354845162241575232921654510232935165822412079561865571961763037025011836152259419169623308755971928391683803391131876844953869942531294546927434689470737369185161452007738216332942326472666995771989960675169750174320140372215682636683211555787863017232356004797825477674236822405370720140333202441367512235918162095614808642801255865461573643458612074757146414830846027576308894197861985626069180070674936634948498140754365947208143405570040880754728188220578329068223174454809604015414823416019567470932664760279428605924133433476847337976246966413044739453639891910148541065522629497433011359228721921133300539592641134573456259767372145348012172729237142330654866178850120426690945426734856839223176663003010196430420883270389175527495303734033798194589903072597045734836725830939792085604806704012070971682861024092600039807873407070430315416309008499075606195830936378465443691974978973786733375685117857810326822092420659543547626204431540739355059225998346044765835457642737237848588782844462125327347819023641940375099279656311697265969681809429862464940252235958380529926437030061316154691285412609748188818275659750131387229890196703919109129866120945465536534292542020269707407412877947471495830130510711955379269402740436399306529847244368037720328835165530241472786732860295951689171210870700383521667425143729147478907499923587024974260554020164799035939197956230482273851174244006814443643462337814599094988415331761152361981144333779958466391866578480063529242998710014205366435785598279961623492255716271555392343603258952676052327156890525869797002962293742586355078692935600904525644141557484655516692912970863612304836259635766847088451195816333298131825437363939129975039102432225197969708189782965496698169659864541351304949775166864934727579184295090585967673743351947406491182691809523697599224086818530202367236368254629620463857977850616797700400523685328759737119588737162592572984539290792423845102026972437548208520422921935879019895620695455733707987874374716829370415774309286500070665275435198170914692130276393263474783335909575944338604764349584644283753913921263616391772082678675571022550306150830607253706425652774687495198363851783851579141642345535094435338292638815666748943568936948412130856828135177188148056966367310140877468479613771107420838314552525182695701897417450120629586431485434930926134567885460747422531720169462918462783971294261095166744520615674522522791528645321032168587422885062397255417756177935468598993321837412964452130059116196220848567599352000955995410729654980988352383991287329264518694464145810330819846142296376677902258343423259244175613280832896524582114440650821835011384952498918612998394395897727398495405279383571710464758305582812630505585247778878507764718713313287064000278984658624422961537014728506671606340100984312142568658522624446430584220131095088865822620050665672742191464691035524673097901146112816699975578454732283032902323827414365951055276312454080445431131975072363884900996132591869537045714057867832041448968546163150452153737363659063686637957022087543892561673068010492929237872038925290772601338712173497879212351825808733302899444477349081313381399748153823220535676638927328908465265716413141653147754624830670226018200179145101564062581032122006140263054115000710309448348838099545602452726686027466536646511115444568009970691038237543421089975135088048115762001349665392486984633639783093604004870309042167712277507115829564298440153812717108568213609446133315863222088535334560176962686745412401294585459707500758142367028234554867760433084592781113726691915049992221494966194671208674281425835603555718170980152882433924470882722922721836169119123255807698386319391403687413038149738266215717458454637886492041487881196415245998574708173677897128353731511660663746977295814363186558021371388702368055692749760726468096392093587077498064172338175947495224369673612550215523714588479264963309463383719288133400151389440482186125120176519277699933385409216513816821769638808334067172880329265169600487001023928158210251427691277251565914453376784766296205379079859857920775556191006651363550724347649017974319405709047922854519664240328107548609210611851030437342826106263040818361425384442381827153756412412069301548762495498158127957283136399289127794857574228811353343035415963515929909611820817689403209338984523064153170033278431629209079868963716132812589182120003778047450586342510930843897549202758762009963566294565515557472312531199968072169449100160129863716927882830456320759292463756808284738263283816189723862724269383612652963038733945077690647990180002507929365676456291291510228253813184474678563956259006168948160548529440152613556763459016778327141447259673156206367834181523744154435608331531728967127074147283656950646123774433178078863222110499116544378367450771156826422941657185848901042421093293383715507035007102280503368021854978978868104840260723058198208903091245267695924968462412194767054848494704585146518861447073951250807124520193777743619657633649185858165484555878477062540020435633685692456934815056827235411142487801253525961771457934220810819120009465047043050352024005560711891913348329322500260518465712183963949672818920164072321222557952944208592140401872452662209974801071727612829349944767262791998770303928449862307044323803290332449272326604725987757277818613353580008755043211360772459276219935511492444647398221213049548836120923055076269594773045781279422089068147547405041481680727791129933069356114865120888575679339477658407367048543171921251206537316290542002172924438849209346411408999577100423999879759511703664477793572700731286469321891584298314228578195352804494081733804009911643506117038010380120361337169229216043972737974248201590463865205326290915611568521485186959032161856670247469844400646974172141841544984075154557472028233709796657326317730125329346204080418892666186171853399130715111337298232379790439341483545001643908052065333282238361338330178537161549599604083530250914087851553222902854526299303524384021331343077193543096916083176851770086971212242044869205425631618335846745533461661151452837883492182810098003504557809467496847300392293750548136985478193861828762278902653508671455559492858968647652002003703462376256630099339588771171348960215500798570066724214015331366207283924893653379838451445030482546935745069277515853611715453227282053775746499747879489822082490408634137304331722293596906646363743429762670881853158666356415035344796539213717691416718819016147052431893328380190544561385177462860417542712148945192134474920304978311413605854482167578590166417097090183442156438988271556941702846644996954808667603490986732009927974045473692604522158763445645759071500120982560389140186467077050638056315998225002618897079630678308732631520753871612198355520558359981727381858485227479512531652756101176291183118144231997456902472028997211046246490166896737307839142272658147276081322792569689541062089471630429169478457452270725363854387750219847145158407472947039861634725631878336423121197760417853808150943116677841142721414809520917412696287088398086320986986117014674867186894459496746798760669707353288022139226158862326392579086094937827465034470409395421934935423959725991695087004647039257203035859549063311149129009792348656062224900203982199804360880906764247492463572032050512691643403409397829541936680495840485472730091302965218877673630767853268210418140273564359239509439518856118729929488392902450871256038894457061342586341410504307040158535965131657672958336008462019981700421641983407969504473201778790815443983225884110815492600536137150127550918034013458052322338686233217013208698730098796444613039504136183803125759925510670316659618414099514893908656404684888782520843708308766525985137190209383303260767651010062647652575842322950155414830097020774938277260130832904083646829920423570959117135925518765360490507645705753143408425535818192067265877152495038070584927508321244719134042489919947273354874221836386950186640296287790255945167240665788628699052730575613395127978214723351559038416873299954409047301040987801578329898214568426198302398324301998894311329020283217004020929485769696356706878493622895465361879032033449927785730805895573958727388215680277211032158373264571148484430160560792760256401778789867609955426899249218959467226156823199140714729433419274073934978552348192946434521415416102667619010521768277257267161805801780367019721750099928179003288193240367353190683420196963740268512903031564333564601591595398020509314477395062038426989846499960563287371250401609820424816169317447371423757774888565644511194121250616463298708667563370708237050681956635538815162348564787457637236221680146594291953090532704438361209941322880338963570169881952301592807466922469891095608222401992837347489731815235320112348304870595882715518601043002699555712488553343185986888902869944844607725799423829184525219571247091192017325457712880723039475368127376013720270400228348900441093318453746595714440532208947304927095353100372569331858697205009441378813954087965166547148129729033511732469888555337981432246432134490924919297521990952918551879617854538718054748072910245478871427366712787392251595080287599801189666753016066211062130887796523680437796331560152774795427560904308145178777157047408892168963169661782653095608287407129517832987959168783357971241310490414657485661855928612254246817632651428909596725860180977624332979870206578254425599534907129454852511196894931637820782824486334673786345196063420999201076876760177071882247183173809211083810898760696876432857704080345191553535958185559390266288899597638873116492700442439041146371911980317970498381806590109596871105741376692986240645804326520917548867614534599714043973830178913227965260115393378384055006668682114277444286995357075674264350469634806565344513758434292734606770618873258157361594883037008695367161182840305490853649494845590183621956901900579684673428584756568042336778533479012084578518828540055849402365547964043200304186392541832188398530877203095351857866422181321391705081294709853521198426067711111110448787159449133756405962449638421953904810972303069387757243657431183051043592446828561194833885988030471339599373195245579715265187333375798396624523535396671534075731398203867362707243692543764022615966611604636356589137628563185937209675264128151666029066578765539619773961356349760759451671914545985136428587555818937425459040036212583922443960430057772496131557217554699715438815624952243028820216193420780061302874924362346345126000024447654020810450917020637985665096726263703623278026105839703719697749636641816813298517067203412164255705211094348757911298760907974539111987721063459154932293812907184268303907776245721207636667865255825886264146360079339654677933616554567159992257702208407329166086348481301249512209190472072339020578835367175517729002509389649986772381127273925139005616844697405345576133165645537258680669831479225392201853414794079876959241684347119882588604030624633418153517141335760389552825074086879449891062677874881414930173716525251375209360135365557734277830978527779457134383644111191462058480277134931694206688487076652917652716888309496457173891853008896884369593544881688801247327835090809270774976284970918379170121826445209304569153395828052602192617002879568973364741164788578817577400935117919170255481329066384409377558243202728437286439305374355938524716968778686845347297859210235115139748032538956487878340302027896791177394581569345846124730473758837062615787696231524038269153960787315167910443391256797178309353088646927219743216109025174903835675919696309583446065846962733157493156262401953788400718998837001396537704834027399653460888608310394851039068220496782323982296869786504392509105716696273848177202793549202507205730231981704919048670305097212507801189089779295057954343410569361900808034960593782466256691779124271998575194641186202305941452062912885783830971113190749678575838461327082051897129773492274171683851469947538067316225230419261692109709159475500257535022275104045506397339147235587495215380071336156885310802495828038958594982651380139292469562966945505230490718894547228475972143861625727269830593753596704029054222670962164175518228800307070599811366026078679838386365502458018651058573618637611911772913099704696943320775308816624770812264151632915873279454631930805509019537728610115148114098215449041165389338833939086793242775609017640892082884813191361777473384594285676297589115144185398211789134768149908245732517562165780355270632105594869441641474493408985940984731214020215504155161771142626967597904787883431288090346929299257945517674054010878981210903286865981526986857505859697462187151124323738015835826832913354304776364504098309086280914540897182810724432504539967575644109770059449689884318355227423291727156648811859334664225690765558403076941370636106670750937692442539896192808533783745183741718427871532528818786052163456835577543043921322891317399185826489452400484036843463039123827560137933492859433306168974496173818925508585474049086011722640457315817509517434426328353723849385735373978684194041217221678407796804492790917167225221319899956004385474733730366391631282221443920390590800441394188987222632024835087261747074700150473273394438129798734149116800689066308207978264136298480298904482517769168110934577131174526717315190134808856074566435115957597872661713546543863589662215579547267605829916496494188106135439797243375144930958141836866163179703194054664532329665659084361758729178585462464766010106707475876323364875822874464351427101494947972444566941545820035388285881847046360959181110215522654111911525000891544451002138622751878553060744706268509691258888727897890399043742789589213165663324174843828004169734044346387889703661901618937820139858929693050364994346495853019270900241427763950038079001552761769756808778693154474761001598977246985238619929434921570338628719362469618303576973297208652962140297107759715310671230695928809957847888744053164033997376136804298094924838932747831771123906814955911453389366900371157112192104073792900848327389344196313937723495416012897270060646234564399542740490226599983921681158302176757279812052386741788587327966858747118918887780856762904535030401593160896962014498599219621999183897684277903230185480163352233711771820776486346763160318159016954080502434846591183884643085529407742139103224014670474112993053932744163592724451622469668674754898689454832467433641895183035942906475362281588509427209292752544903256277305654703624578000973068144934074531392977426575432829211938352354620181670117240367362517858404187441461954258336618696062133198210667652933213939287359955743717366436585645287166482120732717330702275258266361186921345116260958107914172276405390086231562772854897301056387474154312138452811642729037659896306672309720434685406088335226828692542145173872376440411294902900223061778289868740109136611989337104104446514462191275268933013327795231415852061497243910384081862041048238199912749419230000770928157285359701258376831228463783741659683610512783086823684627808817072626843227273512058404447750369844257145005941660849080771692843024421127888569004595093973704618918489321744516610431767391461331457965516219881860806958251672149821947093147531589221248076528077510950542715247370519658307970403871908924249046783535729219015641694046885589535614616992259517100295556861749592202049406384922687181820001553150581000327707896422099260541496564619661322340274793473794234842003649285787453356989543752741184168111057475459898552624777357122501577309893743363122040029143767932880219591207591829445408192326217301449156388258765009099499310461560177194644120640759027092377204607059553048345667269390355364933058718389204890711486999114137919668900045327135297422411162317824485110337218013506997399063689174059049374273896140469767140668430618484883790917203033652983482499676987041291244768415153839872382832463396195133587841324760898975847460146984687163224468098190394445920315277121283724315818741276102079903990083450465876900030842398960962940598209367316915274822603117223705872583975275331655174687342145541530929407933980587930281288364021418886929285773297232451474274579968372173170684159366113017130039966691631544457456892590822920962075740771010718190237004195054604962787659259734939302906265039608679534841045910877225963977941187059850255757700945204570580017367220255896573137323986700126566891450964078838465733484129015253144695205122239067622878958229203939708308634490743710185693693151227686351434343767167222881238882977159604404823742924021886023990167123832634736471869887579709397028419506195810299218254874040272246827988977818941254748977838413062228049977042074048248529822721385926331734612617974960099143269053600058178154269559671494983660739235044099971975407023544516472917196586156374410370186925867889169359739445700978601710356547245593015825840881689746317280062978566143631989089577198022193026891412080505843844797869435114466880333760474485805206514522167682733070346270186579292510074454460309557583773219447150839959456744436723583866219692094268356072440299266328776433534862456453704788270215878287977689163573722856098541461855989711070047568628074266258189060853149330247235907554946171498785511807758613183297941762993083793610560362111397395078890062468734303569489017842341821447083185531189111165300191640437196915017199608721646165549347973549157624924134409462154104768972678536266931757213756556881376737297284323697687061681989675803133605797420078894216453686846934194985351542910577070781484465986985568048984821954795082016578900306233866903742751952867960987553104448742525665891175772788190405160264226853836211677519274448170406844127707692113765558603977114844618560177957219392665432557691341502120857420129157371218965163538118715080676156522836411962049258510706039958895050816301651336074026605716658978180781654334769051754135538494504599349510470751178109217280820899662860218063994012479861229520775411985860669586281610395562278904169047269303902064480154800657310185069872544758534617185303908019169429840406044195005877186726813646715964306323210734385015620861735460605614602527207802306553964144306481126309894489073335697054126359155980465044126225315735911038160576137615218354828556725458676012551909910248260517488350826178358744544443679570474568979346000789585969643583649063571064982246776147324463241515617166854490587729514791292956479820241544493591948113431674735037533903718985892525145106296105253257804672739864546915347175644865738744892647982022932475801781056977264972153897615118053498365145218249346100297907036764050670163245727353496949442984182848261605915529140333980042905363251483897998604715599898477922548678721094323719465083049191329399896833295283460691087225089449686037915022645642256905213527201195940253498244531366327029185343183720741166815977454996154667308431831108456124049819961042589182515154063748600858501767766290721623884539858592309441089263065580643501385031626758560142734292259774142288057037427939911641857008411066471289290797078240865279542161707319685722579725527601786340806315814397172459995460365541577831105379001216816364054233315133126425873517534856329361382728892326764987167226404486943224946820433792798185262263521825507147959741787870793272736830723880781195555703557848897922932931018621563186603669159044432239294601051919842964329894695977137464953257659463684070895554866275109186119163882463041088572925983203959695108414680777394164254310164183154341095009295294685537475475493571040779764844080229886685017698850442591347072848279088014120170378647935500681722483648325623269380473099513752063376936662925571619849111813196125510301849842653504724632631255851565068637750592901960301473449282156033061618078024066536203191068605361220627745486670969172574286327414850461672279465789351742128340333343639518900867944779032653191509886416362012148644087891828025783905307898857017389041095978082597887913795014130354691802620986457530863894401765606981918094789515370108131842193763454561299293895990751285505866078325136676898029395564478872311858890762481067059315967147688027725106262533566613951234031998284318162795010275379073687370039370189011355614898835694681028154283665301239204389871431523397198100414501105015712124503016600074571768303841007019539897607066797930168768504749200205587006594004232687818641218903754891754107887237953879025995851709610484462337091809833515250676835208222807367722251893602861429052758979767403581927761178560097351200115971177102955635881184260345985047419337974165469277175136967001581075929912825465444184832512742590388457409128945992991692974751051351755574584058380139740838845555967140580865078371416058348204042150643938368006792946389424244495783691540585502518719070026843679342192876618902848199186233869442150949874669056072634441492855479078362917095517085762567159137258093941251071662503217079926024309635966893191231968544215718658875460685767137574407539025989655938113802605239790963376704618870385745705743237885058417249352878004757150493976213277749129529478729785248296524823449579479139026782570703580031819492545721703707505697950968797033304744672662377407232662032064392874094437869682368805393921904492457058832151202144742510885722657773431453830722675362016432494257858637173593550544665659464828247824355285571204360992581149717414274545189816668372319403899690798692883936879847062879630939731051845097463776811428936698565061492023381231916430354286668430979123957659297945100369136431596539276147960182716624262435171358344543214950033541000637059056635608497581711773620445891184341500428390821849771854258974239409963797015576469165818915722432990745824378826051525747566401116120449303072058069248158638265584755540751755202104371466009754204060313954779718162206514978548204240292176144344665213745263187679719042910012088306257690635787471261459052999809483522291557708734230330985327001344746959795092756003312221018799206160321608380156016176277236050377559468455363056278044545502698892139306494349649204508860160617565571166717724318569796933101726752849660918964212217244449155785614283144254674509089758007293324460501752655852999481794400173484187835475811897899004044778506207900829044689510737266708790351973008589483165908776618672399855871917292019929610230740666675946407706898783805195870796546000485860330289859268118365573710903874973995709149112053480745828701025050601898372619615824634307112652748143379606731482728525039208526534402830432838569611717616985465513656074691984206940774138803828467737574626742812716469969956847580138329163673574477761565090608259631117033390923121912103823888477739264976944448492034620425524503138337473322761780864629129444953876483486634195420766860838811956736375551190193054143018292871615575383233740258362174073764789919864809985537679484859772333948779472892914198046543816600409935292406569207054690543492057782402433505150725000496465764470755752622124317228134021312256325169481085527840489841782839769371249095661559478463261266882189034510570454717205357529230502254990777341150205193506333769695924355156472148416517791380081457158484687224800694872697620890450211813770993978062279632554573557166287989247883924892591873496735546092517855221477707877831322851351144500892787162360470943657001296276741080792139135811045915477234403969138954926977883824187169993901127880200500624105323026841833476346374113106230462656768950176332436998809198873888558059791715332163287287602745111877412906665611422831926365300052044172201134037658419910550683629293924414670108124111663068473827420885492707811173465669296854809382014459578819001109839733986821472545340506012307342909986645512609567379352109540806795041522704342151210204250336013927871382259843468147006558936857929041758287488023320526655489030573862969697211096911895950120022751271133366721958510975131717240272689882927252525526192308902753611506569652843392256145897280552472735983222514251800448524858127669864317461457735738196568107468908421621830471837727541132336677932966813580042519715472111692919250773407652473371073167637299625286082539573801376554326208475901325256648973706059741268091859011831276484586377239376564961691494200137329475808456592040414841566740475213864759530309935261773522302380767890029408890664127591136133696430377844344991155581381263640356386577353657460167068639349941920182634514376577644218840893046065715719054823542505373571539302784101777005822440125553213999960846522341309919014983070789030753852285479028400697403955020922996491236916448870083296511973832022314261245948692425654114841564577127317517563616655725406308616715420266753019709325965142850102154844986961209072051885914897758062003658046296233723625290529538564503298934132153921964808078677047513301455869199829664582025631024362826590703992272440192890331726407522271995299263936129568410492446015272758143456466124245540369151601008956142560127805997774000443613958332417509967879865538423227186494846309875979942137583021929712668022258470160204465990450296570669501556628005137236566996470491928529470968301517111998747536653286815128256946310962094889628308791806864053088155674774387497588735292853530146428826372177567879442509929442953239240209313423919357041586391983208684762029601447795630608275579789468435309216820943970820928255887337330606771631935245912152645067669097587380704790782517652883680078595213632935077058609669992461713165270236508090466361725104919812604919995154517174909868162917752997503551980406781912388499270139919485161719677242687003374424290273267253907799008174464006979345418730617218019566001108173196964926390404081203452075320317013072626553882421722194378878577371080912056651029374705907566498671535294394643890907411866144010136723901077755316154318458901964873207835479606517100577783326480053430217950015790699270198936554281261046437396074367173646060307400933991060430122931679499208662407742926966247637323913886573440311935659908458398074873757314518720644204095421508524226605572038163580003432851314452348661935151131059383446656158828008172656685711056680232698001504236649723596749732008811429969771862466781515746230858687394104842856510201608262231341488913838171242686355641893319268120338309495004727858047855710518750962113872934341629991220132217998851118507149881579996324151231974098761160279586440603644622051261755321050700823693829986028114239779723952453495943877557904082556083429683993546816340331023223106253702963098425112165575354321866704721830783395004230399078596816220749455114058835805369833903327134740359971108596035186153284862993406564436731208292210142217815041593390172612823224774910853680390422489292786512999840351933857658320096822831495698040321094217572291945726174742593711672211187850933958581950448605450049059578181100358304187500934454078846151468312652135187495850497920734326545356682280155142048383308093391686679837945575239222060394426755943976089156914596582310682770240257586290435582037985453772178786980005894324677226653298481775113612265072786285171030689224501547617629350830700638319846975526712044214913851118085951905012209751312765232283486033973152628412225626567933276530229820010157482363235174641527537403882355422015920578984867901527957517075055146083658010210776358062172028270065313774832044917996213893902823790527916571254490019991041628165048212450115522302064940016033368243296787821657705147776476894496916942440078583632907870375350583906043522235542910829541981614688065248156407118966748857959082539968689339001150332244234437224099200370526108874232975956028696487867134165166746956768264461364273198786563896338454255575053639459104199020713451699319308306183871100267950703988598348424056550365055777973605025582803116981118153321581958572750185620233041227944177601120192288788297960985274402450344844107933031677374662305905570027807191059635646967040339505749319971220496905479522299559091712796242627856665713522765301531675627662251905117878722504428830824964281860947732411592941699890191150677576199993103873023119389283370012185916975594409053341716909297381198304367191447112165586498756507948658108680707725162987001430702174189551106445638415052779964958765379530732942110203251046259232251775942414489794718603491106002749032147619704612637358870832312374984430745322569927119483993186435666018962039424524130598811946640364801056292800497391969737378897051398381068747684482288434435563064828713686179512611076798136844078007505153331109431677090972215274224835358918615922336446654746916441765442578661447359024108908735231763011723946130638773534976764788963387182529737374440016059942794828164002175168442917584213108829818113644650659271424275559990885976536142832993341768611903030162798606495575334999097234071233243295130435904270713168452119978038253800425325441985574293612648588063996939284357022177504453701651990213973411925810850525777580561239357848360044166332445916289424158726986158429470678285218325265733459839939387537665187880620667449344153458737548844777282767434171186957058168715170152126357919487928893801175860538032544239720690462063285138246753642512570861188418439209622135060310859971474546242437763759785196582970882307565790337691140629435555341827940182680797929296243284860736646216207498879772514032651559390774316974411186512579738188200088779143967733466297074170794632519069262193404019443855411762105048210788351591873122757891863133077344068417688340278430243615198096004042730677505664347589054340325581647213067906890097276927148532783768451771610436658193316115640149554973459205332897988727259134422097772888090577337872206019263875072534450143404179821246794333730037053383294354501211472331899972884552667302406701303455623756167957516389673487579967912969398953806689062324394238001515231292233960358000969463718897152816810825006960785349580646771881078885831992990103252145395343948583817405189726798711127152324682952879111021741938539848252676870904389432418783505415508516850154709977606514544920999491427199037794248150935099336704768324585434770446435119681335795510181262922053814934496492071979836766818413754665211977831099663225762670471414156622523367786207283780393083447774913677314797471473436921523359309042319850050875655925498503074444463193066997344663017131981884128276145518696681652210809108300475526787149815745285470762346196766033687209707451754781523295628280925301941827019812077690464675853498722581528273017971518560743563364587085137361746728943418418901638703560285055915649175695106313886341784916321924625781916200943470628613648428252670626192399281114351810590277552831756886437708982175166576868854973378068588776606698095263999544597945266518137320808660383278370914222699169356359770206555146847750377987621191279110246025652457321065626917667662525961198164226058151873764570629161715737337038006934162140282484710446426493915170718351511029810564023046902781137470231388897863941127974962294825171408185570741384126754211291836481531887356691195838505700843352134795387158172982293212591412493161846790402968414116689626256799927921096305112410921760872639374767397152028546475395979658004865686656786995017126003764952897899730776651453990937553920499371045440872752207396343595192742041108674327209097018015265234266440389661688295371737034362219389494511081956965247097599640134576567060733287188275258913980681647927097604642069653599410126661878548699482469145785051054774762919877715938964809006094416547768579160010153828013139455746501709231422982966989752240595544236780380870320166087493880689305652911947726490509772047904992697713378214790361399049848624870596110994720537772811876763361117790147345054681149851243578066395411697911000432778151666845910152295031687219410390327924305406454989997796499936792467173607560778770245162414510256961600512210641483054097673578124435453110376971544213954417822713763196779453746640712854117033670859627144232245214242427247288053604507149449546387889927524189818218167682119662664934953926670590772081121668237502331684244961956272563077398114227014874469622964506288220620221151818897698208801406581594610559846701794907773267124806144112661219084366127332891688875503107208318734574663086362784230938183328971939714202873397912975623538548350563157400633755206718701515968889290913913341972555378531937887057490861913765405724371791456217723157652447491988906795071715817105240874830895128474322589554498430317618541944563070457426450004117040364997678161145921542186857708985395792300023973651649107076120469242634515333089787167522436521579812752991108005542244188006561419380068303230201944386200669444652322463503760914720252817666305723885031832652379747126222131766532941591999188060384309571543657908167421512310291215577332554025131335508310112336084283170789234187104939440166355286287756003858049584103997596116132253936531068133260801123555518500186848102512046343849222731982888616698806534556866927470151955867589355026739347752330536838873388524936610009797570400217181447002334710870570585581791605801250249720351474479140343494696907994710091295388755784907723021212983267671565499577689462012057800447681984083781623747117931610696491751440488429652272519165134657151532955073390245276148806574102204095730559451233595977619246277991019818684180708291049724962723743248958914133448156621584598187537945599013654593458378396875682957350594636859442557287132586348890385404858517532376188298310923571993435921805093621892601633063854097656047266505520075958220636356149920475614713757879968390160483752282355387820758782288342690450859143423404154214926955289969480956515451781887001774274827074055103900824137721324373186189288653757884019216522789657170460272677806525115136093067518922579967004815901098004174470257997850341028753942977696940569014614289664633285913278385164402082776267134761847472597964130256248589925814479162887396905767126307234809048039781002577771721758170152110389578791705967709602646971636470866360653170152683071791257654647299192839817380391078632076562403423113994525350825112291108692951277155117604713811968135091388801614821807684645851621395448970015495739788797631049406944305661759315878604827382029181454703333152604776225274504841727271597131987587255870093934090420017037410854623536085887547425561634408165479435014087530181276755676590891665858767716726024696806804161591485036370777155204764073201341991721873276550048487971304878352926024208313930973685990559557107685125814068113843385242515257243481214967416569249908081362959844405398910338947928439352704267427000054514524219636078356487037607292249526110792261639316619523351252999929720671227616704499431629797186639307174826183203697314778257485682915183566356900291824786783058040721624456624425269653666777651326008502707572538836516875749422138406325216287913923259475525581360113485566531583326841887380213787761107009460958511925041104297514858411439054171864083144984769528349563790089662485284578825559930218458779309711914174625335295296980004003416571811631934587925595699094783343405881576188925594975962269776876518816930543582597884755484643146007235842466803098526749684377526480966183527184654202167930693676344369823597713052922565066154346457790550873926444999752348614515241661839326521566337055987358802372603550858611981966996468787177813817873715668320483360382831240802679516663266229710552398616322356692836626370939924649124701904830096207180290071165046395582239086951640968806336049228919587425697515456831245817407227375580687845534827167443741092337695526530064326322514114708749026213654344413653610192916363224328236790475082441908302683483948270651209666017165261248825591656325268443831569010578183648470185280054026301503333872051698532872497286168394572353342202982548831491726235957098610334791428569240511077242669399000234420335158974424117210417781035794229950389516383172256955804385021453854520031127536947474476792396074647263630361861908213543068007388418425974334681964603366867440143713028613103637051254808630003055187570590212875023286751682415339329847136907075781561327403419387590149707981915124518146373643664487054174238145265305499844412974597224341343654731456119080295689157272043881600260152186926055376929740381226896531063567635817593108488375473147780639857836389606916779568576237899775374215280220793510154189699777156779845790898033572126306759801899828209428415995523821334863616960525021190933491866092181057973413600515360727436636854622648282387062479014623285912314786598402176214724170680894347995985910922578884361991364590085381183451357430801065056315696434922209762923122021729960887103088391539254932978108863344220458078485831491419967321659696578975474238610361136077844436520876291795546319346008175127898292472992816059674638356683309342494633179247149342624648143449675452720136019240032318717026039092514146090650312240891823792640239925943112398397556514724722767404257751465777930042256527711398392589442466023613882300914983806259776985972762477616490270978517657035207831549459563906606280081361511221470039243703853520198701322671751660007392849325609888188582105126059969457362193747556550359024998128289619995657976111001628487635438878608632202137656718152137988901379857332436873780821579471924948177519589624032300227286140261232804020461024288264363575531175739602570072430508624403910865633485653991825290972079918458297341481091042880762805302515946138770147875621507193591770304971934828875190924455662061130890310549230306820855372709373414145177267815174454624174623111169111227766999583181508770416840969379029369991067632225815120861171368534191620634108623914847589333521012951120910805909375526013713925747865681468000360737828736212121618959940112007467033997630924667305818932177392387318709236777218169860856719924642108972734913712860733157870717793863947161364134743146504165344436034156622485601391489279794373751284863348976493138701266732153027188921281600178089635662350486247586321373427791471002890569986847502078395139275835521639700960165999243401900323144386102551860464261710241181389438267803544615854112583080554447676341889400918260456446572312281097965548070279593964755959078066844826700446352232637891883804866653470319220683555397459597577581434857095379935995238022333136850085006037398789973293571095876914984516161231052183649024884064148323182691741158846392107747353845140320016327080897928492497722979831138671252091441946416009871216702625645476938142816533758786271392750384246945888991089946307323841378800723864065856032939822071560602748960499308123867201044622897278230726486017065683112647630823018182707658012283623161703529270135415560773766648044461291437745181506687057957079828087855918910641968435362471983549391950222867150171437644676062009723452006105283179913169387500785579757462538579529833074764647674108743949022606792696965115371966474737468803661301045163875143494311134502190168217253878958813273336487826467749607196196310341014709137838513875652771446114993177788569275343122758310388842389423020774641746768590632684994253994042459568545582304541685810070595699771733866810464914537658407378215997769213837547781694125157973909741891283292122730610958425791556981020317538239841988897387519301256311676912851943569616718332862223603400196938883573680489642242644847416588910452162668074649039744024727783220104925511069191586680418496475618251916369484383741326754763473689851211462690724404962398665153111247766322052850468825782682355895624806892205039776131471100484026895488572336490096936908420409933072333596864877400632659200890913288619115589743942555957175999787417026738248263699564927624037305633290910428739185397767334452394965475940862728798261129605607492970530528682149201819219411009657630251549655086404672362460456701799359067894628891606686288795940592649884629063417212582376150622880966839524751488244685759008053167625449886575359356364310446346468643004367713297072087303010869092016204971037668897632454160202610275597378823653552662045585177371169463435156029413318693386844039891561260675866722243477187009033819168883282955197743783241052341192286551768036562115510969385548130098661206842115719868256708813227515363612134205227152076466902279214954725887938099241185597414181319768496133783371709817298476342273342085666377731546345255755302688776044992582373474635222300179435643749833886997276288044428461019705573901909803459562272050063751134758437391622685035872396789601035763271416441456671429193025153282452187806828735063047788485046538759491162962562227202726395658547741541200147488920246801553519503186421261675554778179811933783695426002389357064666817024780160128023225076075335558731481021903403340251632399863923123389489926737273707373640868439891328376470466817302205403849587793777136216318764285739971587187655879923219968366706067617898184660841029079862972256271255381389039983655401506199435532627112161177958407270491955957943334424612122875044222709843569723510439158316480844988270213515099432506927296833225413525707080952582332221684355167106095418684074286438261531190917428093511552606144896757608117754151594319923291947981498519611074161716497307101732268002241886135984890940842380006047514912618286889046580341790981176673509929431833259545813239070134894182613838298987845501833812077599386680481718577930682954613201158600915318568753798794920061643338072654063657891252554680687596803527021385972073371648552257448620761086798962242077319392915602274392084963004807652979004889617415394772727600974910582833189907329663696729490214975002834192364851215828003147226740534359594843782003131690236131520171720613889535575325409263495992565273367990108747983531415797140885244311309308345186434664836742628184428135986736623659672200418032087768410697174391279545087788545928746393039018520519405341195807527771086735715365186083798751024634358569759135426789275530041425643798548873154459848123967964226322265195382026525135747208918084943449541894292091899798190226332353789957852082640126515025425511443921191775968405971377206672340014351176875826593102504574942562866138601990275777887268371270528063212749922268077147894452606650091848578046183818987313932367571323834307193966893085419074308493809212432843162026472710060623474377513467231172735468318767407692564350585677783934422811830362561303109637569308829810982397545634148997573693876611663177156142264175784948795940323972836104863837487919686107265609495097024669613280974276830895135600772908556512339681686881012687724968312526158673051990085021438524577578626640121429710082403889818013680912161084386388128289469907406536084676601458800085488708679138058057609193348634498465550499690011969604432759897613668032327800988044270065697997700836780460114590831710915177331972258699360328498614970077372337991872706606791819608209216172553450004669672538557542255255550809492915848326381989459531657317808690850721788525956154328238587917561429854096948548795432239790570650253092432521911995398406781697441906964375489989490415439396123643449915403363990041974839222891982235764697069141538484037629236828336310218417458363280557482033682273230476117578893282351194376476253340230111361113427883726652390292941798614201199847467828267358982312091295453110530064994614092531735567922245415064925679866366887368488026245398858649308086611036368630176798817882251089976448267949537948722726971201453930458442587835147652470572532699385786946826024239139468130097603922757896010336126639979779943612740702160857101821306888949389321286032664853832722142080820628173437663927924273430730075226866336070043951389466260110755476573229824506669134215102949252025050038768142407394399519412257578692792251951292708918698500585599388417491141735459019310012003733312455794292422358691615228957026502632875162094868338632750615253617019063111449981687507803808509789834567023329096455539953698542491574134691382941218208035485610922255488038424269537055729260642309368113861343425724361288834378125230498871462503089148275488444931268702339113408598293236881954125737364661285233842043987418139836269473704244507814719290466231044176026003805834563921419086048974503367946557795676068297860421057082808405604309146652124330984846772835697336097911838599931995882381870762804117325929682317035434764937981205077768180141981758677289847491339396096677650035367176636793201972273529579889475041412224286654916874502564082325844266996760519764506595135910224059511176023791530739430900813692697831571082613302110257982287212380943961215431749309516148513429836991457573852125845951979897524264231360840729014776110606547458240110011325411889012457723343986054224244886942519641562502668935109651936692372659645462672650547000199438859592671498813336962818020662914308372053238340142038403714562725372215655026946178168748998694148101262248319241206092853745632186079093779652672081869194505516188335428682693591164010830386937195300787380519800316892221552676247571222631088846772646711915536520534903857729330274648043644952358927205269731250628189899281882917496371142913363443956420372955769643841788361024762030594340101581182141965339282004958492558114271812438321145294818505836496275793573344596904387268647318334845070686871998277758164056385589140202792834638840639205847229412467473384645047440580852057186933462973460427525458181352843427219262839360991168920349564765305119361126151043495375102325795596769463859459584272714656708780555150558773630468596634623615933496221465862540817573606594052472006773086485410774535770815973246243456409292621127557148768290185956435953412202266963628269225356251024500159357020736868317083680187931474691363550110388211083849723116574545278391628412622210635091354818494779985861545142561292110437325311296548678928480451741330939248431823845880613939167165648342170571665778942044328831392499425347408577642943594080253366149801370179183176212466946657922317654772552445587293562646122889466451871340808326578307845710272133450186673801210711084850832530027758221923537244294619771219202965301022806223783119793408298596434928884408391816049332829736675916456174209289679528222251151404586835554105291223864336479710838695414623864646485417699736486267199002889731153951804479015380503847265190092013792600851329982135622368687468800202732060340817877710218067941129717726257286775820044584040941240013279450935409468520811728916466217508606897421730275787475636867674655327892248469436658282669726128717497651172434901086634344948079902423669760757930803376134379534246690305247662897691235772049722075890545484920110085603417517564041918985777751866026667468645601697623716202964750582835532078718409545303139029083703368991292039978735953805040810116890334829971738348850941830976315578505827718660644156434831023218439510530468070238845613404051961980209678048752401196309958972090439535900076126475502397972364044554561552003454693931236044063527538290964557070334048806065472797731429116354741329765105932997798073008540798212169010331062138583228539050386675380074326043788810937784922846919076573749539218462644994402787349470205051902130562509843140797148004463801473096076415654717280317047375078078822708395510681630577179047263427875804259143062165034317513933089046105959810448410020270496729634639365778066524642547648986070926348070647488924208383135260689889146997698140762592410244983106768156438453294998147802979593619972207257348788111303210253061396566779615323513110512093656562783132077511135402296610739935024803439743437860366084557960147545049377547097538021118336984395338447117506774516656530596620626879791120198998474793431111717516282970384811834480281033351262552810804991465130045737082489698684314196863588864416593016599274357293414757740492791050069442115147076407708726557708744771562176222303723047126370036840190761965129039444591268676463009047413838714516614888400793614088706934982531857275601151819154426974132327580787367570012356317541224216330202993556801089660227738085047223748076647151262407310027716672123414124263373173642710021492842424069436932140187787958516363861769712950330315730140536302462800573996871503915453067378967761431347060198770769125803127049758519486072170799938062483014778332877040702387686546260890122938307374317255456501645015341097444031874373910756764599136026223183324658944489876590230000060555633993103659395207118083638340007372757166954718099721810135972448839792285490735985247623290951865301476652309856784043761776579469293050783616944136710977474101027644599553483644126186239906627893844293282016596431195528425833860791059291521556323827450040676022009849448718825969539662838006699814201749082558100560775272328622751934003746261849669789640211185904174931846897411590799850629786194901127651345535312876395246113393295650636174677586977708758705584977801128126443502614119957396019726164063244635965186434132322174026360450892355785174473025344864149975273803163108883409383219770064940627652367856428923409827475976874834907527108814758003200219052716031688222718109640851242917298543864206016161930759871155694506745314777662035171892923601737148810450413315015174301905765471012281167382659243378164409241525489394757800767120616324916508931611406631971644961211190132339829049660359732459346003248187500736453222217267317569173091259184148613271454454947394327616924462024430788329281034115681647483477081839327577304992575826818677697808755989728173404098457863028938798561852166340790895002978288803739199274713893324547416811338798922905253330952998822177955014144856247558623673373585513826629790464300279902063813231343317562405125407995379850497537004696099813708356356798229102089419509268718061357614147000285574506584941037101758774041587250783109174049140784860866482639754611169542769834475929641750070231992752274899244731478117683774422467226529652845473306851269788758905757548965048650734090194035161171720256109583853911761502554080058838549472659199859634073335845895774730193820158786965020643974339028750955186836957205383220198780597687498231367552852831202176108920336792211733725144474690430834553538309001623757477788958002762973985114703739604651476323315655249815053521843448182052676833459064798048437259793708193900574008571349836500728399754130184433677913554808998929322387117113528702013156169692515939053187177934873506186809846723840553999131250755417934892980609410070734876492162425838383663099203434468374329554427592026298751975572615038605849305176148961673165182557077521597814258901965926148631429276679289961440200497879114562916403005538259193753149658814836861103033339143845582538365144776116999264009680209399783549425787312589236530683025406340662717196759654858605437314732804101795483842791918594562713598666395465367573333387900207892799551128391463277246374213295368607231023170265107561273676895373258174673823417511694165233955102161186066427981825097314250935277235389816420250258564977814404349782230522258146297383937061974764029188516526583675882563245219557340957622793382857450681815268178845214358562773147258628326824942715696339123717706128627080805657612814669416688827995885233497010276099639925257250008580083983651598441075979878291687788123876819763283855010865044702562138592926784394256173987305083834029548704878114070702190425012633450360588326729573488809202701355919712459514185494440008052672030139645279955900649693277401008888480405678183365916620782570898836329126123740496070908838455567746425729450000914076405401709166317820211624266095754614746546802981085561429364672204726577891277981470932347940711603746757966533152071944563365672692287728376359093405509582441867136695138806799138358346248345097018954616393549416190964421785853651887124798211754976381120579384425974579822353752997821250771097305050444119329020911319218559038313922797385655362272897949172361102895908967785079490599796920706703734850051091712777496748767852401105265944278008041798308131403937189158840652410548401049008931792177016875133119042453192609748251471320544537530224100135354261834441948157453044611610908868472659613308949375857361743305450835715266195384129240714940555483553974245353175769198447142255549965617793777741378561032516376412978345267764944637311299306921996597446841220075484873876678297795095419409768635410384690276865406861349542950539644695486449474532187346289759378845793507810990141119590083379090500516565095029406952545362655470989391633779810414743951250348486692968475346204560651133954288704801853179669601675100520401542700635679871073678734800300178466044860979105221252550517890247296140547423330281524098285575870593883365121478592683519257823197516263348266584924175195700081010077227215710915302905024093095362679976813357527121771119776124868571918811464626331998969026491652445703790497301003578441262983036470174550041610475151034831542368191020179722186550924041154094825822349783225698912848499461155718532739235264802254704043502998932456157406916586472745453327748158826557402100908171455886778634189276265727746374429143036212332939360166901569543937495244601971646610902545158589965767314905061020430446843696766777400612159787355706209084078496281884761283763935960163955561957482753724716698534226254136736848259874992285913373965680375479821096581782605675466302022389279187860440726351042290856659917629536088957735702996893826414403040938152488092395556469533324098693012029797144394139906726854454822977502027845604559724227501650110780781534051652373261540029661172155522331393212212139072449366028405803465499341178855268975075137138834707222972854737268965277069351345053316468004406495387059741987609820811167303370929255321327601829246978352152814457134633674475209100045367893648917778747568293613776760798575938363678950265119361965389529914665764201115792269946479250934582807883169100241517359342599296049295080306511752544428107943308213853439473394017716015194215737640855541302142655757876434257938582451938348145643894133103738687179561870597539160849681040128441243855244232464092496927603425360438106877247896524696882483262440322822587060763773169447412627028338782766773620740350936980588009153757521579755252477293659544656519664131695929382881587672346548909993605027832302060832260893230833824915070962309299016798059019145119547053796432066856864574898430787970065586987335919925881181659937171331258413228252041443465434487140199314774630103782879737894200164152680614276071039732928993248483723005565050588305259640112473455458840302970939598633801851592580289450938645232605064804851191082793167835390934385459122019185567495746734181412440511743510232285507377592121303637032567586866655634353650781163375320527397324418778158661738898618269784650055822955724735624307327111520515203229262809282466097479795911726981332333447125809116693004493888114343997193188284932520078801811380224719704831223624270405147896586198925367194819368460945494514864754404928169722728487496721481943976072946829132852320860319329656182657883108105073405554474664701638575054343125242053991032399077049577334793641665919280979129936141550493289941485540568745777808086955846121802255386175264027349097590544471246245225398700191146287538520373669945373087536804461833953261406664948283876818822408194728060302169505748375059142620161839837763477320976209946809742366454615981187475825748858804149433806424516114739267776582651935513843338149746212195434902305043841150080615274861530226748903610541685460926828039098513746655924463332151011607253097372282449933949110607553454551376245908193062870302324982692720666387537797969426384182093785487336349019781853804156928075239216696003166630440083445129944645875282278825549264593705374888367169051261571045757626332802592245534197741039165294479409390323028625740002544505889106215815975222353482932348018265662934609859258932756639651452593860339298924307476153962996715383528389261619821319690939208619632505123264000583846196427613539555348142295503476173786711969222803920700154680010293075930638774446476738439087340907661329130537525957520321829587978629167227335625663848641725816979812779307862202293742194562277931021890023036620222587971319585743323462550900364852017251838219647129966055489827454660442185040959053231670382559727863787919181858583538608829063074571472982707694927130593908379358522077906008960818300906822482929273652642172327646238867779328992991145143706812587423045352715184382660746622635498115955467186635523979373100046430115221485471716764755023721273141935851684498143897400589620113377665605403937547189221507086188542150287898757441538062751972532943384712635249034985980371274535229905747461117713185673079541520486242246143848295353292601980388723759527378680506881995231406129846534051469574354929996846324041818997899876051629013565216423588359759712398107418364850035394093697943578286300989186369028068659876563345240424995290792764008174094086258267539206785507090723330724895973006234271542290289019711960188202470299783743429841746530004603316078652776817889116561841913374872037537110547451901695734668200023551045962753289386612564878967480131221817359114706856055311593042865652809543914722662109569066666948552742980110598239616050448310553846034224807470185129108523063491300585789882008904995756908439757316644970586201219433088331510638703404188483519854717188367965824477918856145446849810349733086878380468046150137198930344527288129546682769412214132484470840913886828698242466667400130722324359196207389720944302015955400190781167950488180481420002940815269151342959692754506290605792410326392219096421921579031119267618036293817723617031114754210309674438060878154699553256284684246773998047963904590836439467275703648657186205153609022563597342038382477548178447260983660410853598145176812688041533905721187913368559995326464463661472059719964167602878122162617416984422450733770801903163966141164139083282010765825436513160411009151237016906680593743825548978325989989930525257903630439298173492846236402951437478564976433030722508708580946361862925440401976495158461806003485357150408176539830970487648023329357833158054044348941917880358006216702101648012009180775229699443752562712330637396942954100155325159745729706908129863222911870443395782107750673649555591784362799319400753441423749219212463670894050654905052549193746303443549251962559809421112546002072413935228675677079387079557414607203817853911106772952794444482645240044473084455390258620197489718678738527091895505845612326969885288964546887592860071130683532953833992286507696195711624991172373610696069557641872438975474866596448046580026073568405410309856175804826722136766182346026631115009690651165839678255010808501656287023677537901545923173621877387166494252100179121077895333353709374711605480267659151669756943877237850324773674536746133307852456329345478220965407464259971579365466224110341161294289745168150158491366885346972262094694588329612818795054500294443564822144178169996696882722039536780209485787032652236840692588885931673601351714022044473502214904943254409060736331209681700310494904261921465253988865128278537706892598361870434590880937148411933439509879801253444792385268913822725236192336091497697769890666448036385587254561334268535949218467486551536522518719006331166844003868057345320397843900628510867247624006339975366088003457429026561499881038825261315152523904829496670203906669159908256568223316239992083564916628798318518602489258279581169793457194551094590677669472733466885918228331664112475929811672950323518669447427806034476177601146840684818142595533555956352068431943998448234719234248295999112301231468518667104553439108001430137102451190231336233496005438503459122251049388218246605773423947003052792687741862561693142968940406439710200249757238808943905443033738614473673897912039532089974732802225331209361352554163220889834247616711509855909568891846943514852492080468860357892367888992096658551546774935563142086520669990550129724514615080037562464343150474510913153539657647720037816574016036758901083662605341949055051239361987774008137357713689791730399045793444484933131046950164494506057910858803931870517835099168583526762625703183998542951812044505245232475759144492853045143390811822202389908324326936442607116037723045502964471823458075168228882910647480691869535191034805719529228230745677773693548987392089469270445215012461956450447037250339526641723764658412200028356757142992183117912717405117682964673918326664600044800676031191900723973399545363977056981531908671722529012704167856334518634587706482363853602047940687779237985281938794062189188349970895900047280594864508467187828434032883234212910743338491180174346145942177022107739662112905404380571311093211344725025808386237622584083945078732054451849496941667592529215979377440679260950379509702942996314763197281094160867400368549763683726764386342536176747447347532891862129704022504251855395946168495471239813460332139854323968471142731070180883291703885788634377019399633102633810713069572690930332908379792112449997712162205181685328265233061757682267592323199986128233913804499911569818470189567554180329882295385136043066193005802061497153803288365150028536850837256409780048423643207106963209086236728267628616237296817106020188006947001125179034168773913793322979492917321646777848564311876094571356914129306768266755883534587572650193821622576201217073389228365719521851774057285106026531461276602934693123379704269317007301242073685789824810443612338061259107347959701736048502692599126157985907814534276912427696047945454099016020482360805221385547454990024162742729433859923897315817594933749063496383869211820801016212748119601308075630064758580598215600242592582795128201031913957003858346587069688903263255876132337991910592783023051570379030021700908843686698033314487511743973073001445073324798722678350237742258182905577866380839591738273465072980666630512020257973104907519499845321016340592622129872390195711121037608839894800685342982752185135993986122856724577082355854894412100116082762063143040163946580748953695341097702222787828351360464711166436709681775522190666810151066856638331792651638272668289333189465502118872510941270081581460046668187281337130399153856204571106846609026417922123031770221457159419757011464003430019992280956998625659490646204451302963345427497109352512486652854418998360973029677411263062724529136526491590641785323265052804017858873286762493257351311504733227757079573447833170604464150936570771372306739182153652508053507804812218573485894648718532975669857697475991593458031113931282098335178277109794483537572012619642631643385913223506813667587092595919201642219256207631929593829962413449887345195856696394990892080942963936981618776582566137331234793772362914342049184115879826382276777517994703904932960742574588983170959348649858155034964180078986294864374161067808824339359204589146927717090769978780924710705517258122331103601702503310037331119536117348950213253196595134958619015354155186355558597643798545140942967062530861574979812206890698391650169315317727946402213139154335743751536385582358105781387957360723872925660987496505135178681590933993931456154753806796478799331980770334892269527603558608873859057477544155411974907330464828166896192560120913360736331851870520077434903800698671981255445291725784371854348963024948984754277036349259149122097181808382515938115576205685002303993287618849889929380481939418576800446393370485424822108533133824232922006294586698118918375456879617069370227027097663022582342181880243601617831530597590839043032627365509329462157567526396222248947459277683255104855737042136328491869107551747327970551195014758663941662913187085650321839376505435027666735458226193904324281659531337007617859089292689825334271277121116703335744919761633422435536776707589870057625705280116796686978149434524334982334671886484487422065737540402330116227001882007928784609116551986117165930132868672915122855979658201914741213258161204987339364828331287449223614216619114519800815946062273904367706504700594254235972651890744372290407444753895650734514524008042014026230664486589330844222330607733810093453713722669311070672095496584354830786145340340732753740605145424265785078946472226721164495369264581495822542992925104149056424557004259606024389566746756750706441536287479936192583787486259544231220551941274359523743703236809409497657173131495495515039644753622574819205736015684404214788524164135087673736920714073008307101061765403045434984891768215732798052405220531164129015426440351273246214489871422613857334605948305939210051583060694497186621957604296590917386452648089889090537767555226240235620904591338431048990860939017331933767022957124975529729957686933601463687029164488882114589988133220607756049762325287742277778464674130206635029247707911847045915513924944189081083357681161949649970761905135083039337506599969751664797745481037590996613909607607191140377358044614613849045170870223355466589825924470627160725810932901493388424593390918976340488092422846327256167934786360728145641826003211846917776300394614682204835433155796043343999304174429783117813423822896706752912714379006649746207103596004258115496974277766332509680184133327659067761096298186144402574490084252540726926244482444961990551763572181856623418392048262142914003791494901742132038658929175265514107545995716837478401833914597239314188625541031987189406425223513223872462314247976049842880872455400716860802517889957273712804173828702880020217327457180456527431133765316377329622295049335026775725123455561405861076022481331037739672775140460015189234449588855128902169157155269657311349247249790207022082760157143615748894378548853436790365048673089498331594571464439310681489369473942241416719040353195923900994284783077658567889136067000828009094439752723858449058145000761709928718785617552305129891214412613522989084044061432082893625134706075791534145422992945734894518490340977459199545785242381135192864040149638884096023312857535067579154966029098744871803218304789528978069865291459740140628347834242904800839203949947741082942551865568576342609259684184150655481355614829205010708879928286440132280636028716366053868439742762788478740368511440161308583948993639011453539022722249049996056287884271838116846507102126427665537535837406308937342342909607098942466380446363521408760950755547584077144012157627286004151013072342613843028644387123997762607145566141897674830091757837625545916324598819051712772072141162621151657910936384096361601767820456449712041903674227845317572482276862461485369631508199212426335558116156309070234417987243367096492348986837399059840000417801150013029505823846792626312197702811853515096876628518342794428873503413280456520493914575349481047650295650577267801194708500269707092441390460273641659501161215770529938058066556079768766335247194103731021739533891268939752884368733324580236474122733688171121391667366002812897023573812023353255101437409010855693525223293629341241547756450453098642546713638040895277707801307081217317141411233088723438198770055241574990205549794244969455683778094363346905825797647218218057108512157442815103843670603321710169103850300218414702050298084499445557182957334896117069341864061045046110609968738654315475624154943645108984006067383037210539680523745157930723607201772809517343954059171970339673703468020038211918728618695781336458476839024177424035999351996062792699582803495980678204024106402353380121046673152292346765222163925884303681471435625111170141802061719005672149156398166173084896962580514874523619780351682417651289209434543347291148130525927381265024569649096861034658528895491405003853939797904156997533962100189159854259816512169913881526321609002321240287557472113658813331838242429623697920072888179406116771335420262353400510467115205386855092321469904231332908953912041583407284688074553959078874809259075678614490064065977781898791167424843600615140999135686631279664375168257221990863262046158847002817498075344550391588597661236354235805319615585190389507958917084699160601606392717715765217237503654330988329430155914142178314227941004939472723241177618960943995212501740470515975935189113670603657123073588931360905859891521447614979722130376332667932842242159742256961932906459542006074276461608915783229954664827636271780873542969911376450911404572569320542892100314017034788585874354770039238078464434947936050370926733664281790574399054369127366533441784479894406071914754699360992758372415351756130239164155816986954874233645029624173115277984493738547372571184591181220686916084583103594657858853697315387997132245531222722801707543802071613941714049442234112210438912890632601664168742964329320514763134648643868213674692590735065199341968525687833831600062300270039112257987858233011772944446458631552365682575353762565446019938931756352470587398137449535857544236149706874977833729810604846783475120745065879290753491849341415922513265043033469395540852115927636276094162422515714217363351536562574170653761013187119694130264962665764701950564842422434266730173346812715863010555503020432191644496760971831992448936246652528798858657208328694165491378904369121392639112628273445768966734379555939262754052697688251666622000128989791102126860504392115337607225574075837765334258542178632230863760030207565458617665970751034568506049985964282605205204237242478067998419520333617278883108240167293006062744292207244873189959538631776994266652633094394072695969146865535347663037796284225642162440084519395247003721062076387782667874977218531319567367694020493609478455174972237709730663425087139427003402129426788911483425713255411466809832850141350592255275674945607966891002057683202897739641223923823343307143270751891962373138391997852653350496978602437885711291444032428430517268739841945089056199043168606246891230597437557802966512906149745261890038882570846928497966536616621099785246814972613728529711594269187066365731105493391482083019413384072877281468238901697742718172407536636688600261298103853200210415067152657065300001346728820069004517672659056393008264557928862822378711466679059869505363535761658075262950504691683009299561339811897617935971963774883394021511397086028319270271668344122443222613320052256183196628868968369102619377940723661608455816626893773832995427775962891514553330412888684391019434730397301724928749816113567155937110131071894930019324474351897083037718905624433312016557967190647213923153188526126372322738058913085385593823556843927997987977687693152029088516663830170635273302502223852263702452462025776606121190293603869255061516906988171823126749047537112274824104572638777733542995662903893271722345683392873170021952352994710717351764139674489022019594633349661688531457638832384442272728323211382105064431262722505697155422931286043403700477491302565880700303486588082177276350841600316770847059843645701747991872300151406426465514640812885496295638232889638704526888923422593160499335238578536086457801649263798957053092479527573127845195515943556083119814169847101638040756722742544833011160451307187668748041420851793188408964199871031822206258039962029714641924939994100954009368908335136342055069373227190726947093993674041087398785205436214846944416461409657833059811895716366843473718515264328455326415839962278978910861659684556672280995339997308717005327629992443478996530621596443918291702923012409160681627497615132082554374978720761622812743627844410442797806858252946618760014953835278005245434371372523866110571189714004617729734396652719643295972432957008531741418455481744637817760599590630728265667817331334254419331418545052716551850305533284293911586452618151026498626206562489284571076036167869846052442394784147969275493307557434849665696916900567526494303760641875447000838452136788002760297366319866512296834249622575455902710614153883870956000049745118810811476564779615350404102158562415217896213309159998405428556507495850296263772222141437083494453764334787895112931914220963028897304877638444788770911241751095513320886864791084912413229847226480007275506646653221798927504163486531536580075280237192839720494700815967041904744219291927184923138954071057138420331460666513768805781448013629868539517245868898957113250210949348246571571507829473879933486289302047305626325293129056484417620025343771354940034664379778411435555286579749825896062839906213947614546753345997014042248896178854376059648064005834314204247726531226441381781151554600991722488612126872670943786536975084677188798751229728924196890025457532725681965669936060803637394483828428267105508875218477323726105804470215547328380103074101166860811420678395626508119138018359861236353670386327189508909719990429999357932333432128524881051588799393803892989797576043107109346796961340521115998661332478660691911722857224632878158643065281345051911078175229027989273194340449139387113833516755127235668706022201441320839520007225194121572139837463887755753285921934447225074998086532698447292774697382192540142852519488845115865042472880184960679100934520122935512758389948638772259062955694331637454280479657907975789846712824931654164888564851876667261894467840907846382544370176556953392017513227812041803902651061435259339652570341510909906898783342257569860769561353394546901065763951443629231107715780825580295912180604475965184836835479380322561337898794365483738724820436870895330552849188216068488228658792307535548731958655562269395710260163127225452591481086606860935252193277478259115568454428513823240147725545420469994797668171894659117288371313294238689045123183884817877125478420131598916864786725829715349380108908995991538459101151512868590440172609059503271851213899364252659640398712838400920567010202486907389413843701367569629279519018846659692980569253418679231200307623052349351126744664868890381192883233700163282954279835893886793471994308981772066161278211211171341046858863074416850207228883798241331694091286663508500527187921997603628300462987097714688904298424511668188224001748446693701939482098469856850248938519149968543416333685221956007836827150873822626235518202043911255176181507246044208129440111454443937027157411452909158013263304648742068779787891040630533052839528650703739865540650422257104355479356225670360119152198222952317378776455835828583666425967325500726795256451555041779801180618833542326475880435800248251319412922960448326172087946995885730020305328879967131522104636019054689803819969323867616328900214403598423240389488902218033098503919687838370494199922647625376242547418017572809028924280378408137857391038713152291135403389151473321162418871603283505727871008845721355580251301778719044024381910753824746298751588086003867303783408857966101024843502298600365539032156296513831445517091041855568561746798322690018913662467822761459820386311937056565512803012725949897383360797974472730573088265802113548847622943027002810053363722146119249610347601705669043105482406618119377213026508480765950769370457967141771401113988332327251377370753355846504368267514329298707339002655717834729598813517802663648204130891755970423077721259310300543016364989239653266284972558659548048778315096496424749971195798328274440529039870493353579388372794392682305743021006807631680667874737567713667560198004096728277672528052660168053191677943861995723912301510073415861676090112555322911147061942588786286295080764856246184131956034212477419488772642951015619573933468572328090769687452916223532161630631222549739902759260732464832905097504081437592444477586296237550084945110468470794209841557169300682735400511478850228125994688583225109419702504842173941142963308327088888889606554421446302256610325532238699345310100701625196044605189042166345672289073505640111465281430051654977820148427583841960041979105852729328932190338583958136852841248271638191448002576737303732714296217274227653648220946362920028898185912111119486838831004284129364823836557933787075560988188303564064727881359547109823485661978256482690397381387973502951743624378676996992789392058685055283155602280146123316058474786210024175710415360232096645956297297829688210423429720076031964750598392431845462856128444941287697670076256171173684904945620366832976307036483873679985246176742994793942502435551746813844026161307474726102209161794774832197944317198818565736003292525573962311363372293605945949732292968730346686997894354793513700001153450149602331647664787589722073615230542169875703131505925176640753830703317236916944245484454695591477901076751047230722435942385135251467142796838908160902508850418906811750991501819652637647533603768720855449772401007659682629507253589155807780726074092385674257637468652696746633601710339173822360804373221232555908449136458548381538749765000003276394322185875095186320165488317042986485889063508330851505736135490333801901921758630151063972904125337801772941632497511146390059718770525119776693896363793460506326969543631084451538647744810188939149540762694701626790736576930578884444023441214305449303603122859717504352981232976070806679740058086832843907748968421296991820175972262721870319362382134632967793334856659600768272758786757073543760914296649178136430610246923211901680300085180130657359858902515832482122651099926644167212526035596454953769126805623933788408289773773029616094039544641712417094836817524940091132253418359874992049762673863806083599092893545816437157148965845851982894039493206473996929458862249363165001941408482297918234055155874591897033112709178942208535442569536618303822683425169557032000207932582721703811693382761187159001604217207056168223287622827305502339834962931495888112003706947971061467715974491208118928164314686310489379167814024290118120187839766907695199872070134572431959117359757081672726284313134145082587873899911593976680611684531691207174170236762884193838666490471089956165289550001618278787364107308567946833433599333082005283342194047738522079818130452918553162282588745691724942798787635712198492644087518692122517199300154222397452872842169571678437037410271766308000112638329487931863789393653554362133153335554233897615510644967699638432277371529993672347393341940901868385233505581328447825384074745498304964552432926836806587188696570386590862811536786021775398029110057927940209179038810049690995786257034194280939152100331201299475694902461102138530382542291773869811057072801240774122289605792300947756732443232312411564058981592887722746064717338491375816511463360390677136889880129997273995450279046400327623313704066075434210448142796441645455316725433783525803826478972782230097515708641180314150796313149757176430145411032605067552723383621580254287296468298184071174985412435055704555792717309244956746148175055143064937751278401904004852083490477137674530952530550207463546901504134469872016620770983659495760351361599437494889886351318140009591673582431666053851375231965231200893489983417581586500069142525765835432468183002290684874298851501202107768388763957117736280486080149750953767622854031713236353244756984135453334055122767498303841215316701739712228562352780777046373787295969331868440364071523841750953549321582481854197402988748752246086583461598681984646496491231902434130222116515979266374222407934894908314227103778470799075167414282071957731395839998869459197193188708581230055721653357128849815086234381453405414218483154554996987324950429649692224029951679560798718312409947139289558573029928703961507413309317913662254530419208635353473747353043020983477157827494773555845067207567088840427411436130967320820469018506263237283127533589515043595596056667431684728150475020591555977286041454441232353591628253378355023293537721983971554299848476532970130882623814767608960490956938884573070240599855753969727104256829413681071386154892839986246439610103993864311966211265959142237350151346329425544009714412342841211718586635317254587220292913998274845542806561113501857989292225757750048046247543282526706449024002188591036722931422495544987461270613135135602574423075875571143006859628256763338438315397899088803381748317710024536106990123607814248842797793488921182414045254791118142882462953941284906713867662209135408655322399052969076279746812133761336538721901863506728611801593282809832434130930897646507207412985313900377804495333681131088691251676600449331843111065764689564508225833067896610934755725114524688753438482911638051468951975443467796145344205263693420774168087597636422636945817630430792707537874499338758716594059918307120602402725705696287141584591541694065804426296651199363870795485105360221976922808444010013943982753557110868107836540876485678618262392678555760850687257372359217394817470069321878772336885237911455379742858151438728111662377804278532544309419210740214121233218429992042384948075763764201053315547577915742612994136113356637260150119211693880871026169415711185002141914534627890231584924029486317622430265028299640327850452263074411615218463169906919022194310327337948168324187952077598149264169124137062144573858706043433915950606713335338297018783700963215453111317641145524807968303093206854025439002254687776813954979333497800044377249697115044930181587078584152204615067750474497780602208589629463338649319574967398969192145553903360185840681761601224834566872064161980153074371801720512553060307365767399340609523973298971715060687764483180811158647555679965063759014798239491699985013453591789738302709366265367149345578243451542098067959197882183305490328628523276001009263564426635365072882527164882003349441604885431196150575265014758798236377103645622511518623359174704274296691607627931533871971185974418324450588974409745032211327920778951982181732588053884007390269808692659285281693278260405783730941155697835157234907766480791039527867989703057411343067974509844319541971176966236564303060127576762542160962277788902103581847674312350232518729101901175747072242397437300697599479766893578433668315204228678484827809035768826119217940334917054747437891616809103230122218840492090301708357935891884725020911769454109537544352557389744062047696688928724377418290247129530033229028905460171437644048299119232037990472768211440771294325406904417798498477876161492195151890165875038090029921651277241779940658438805107992627122891067450170577740493991684263163745592046892739563039809083358780887268350393893277481282997802357325927256456867401618459776396857167357171983752523245314573869546524463472894995120384901312946546850511592456745046548151783445941181348848944750671237615588178782293606887344713204066756843165113573022712224040715194398703440681053465783783268174721422082737379483872666196815529058348835701727535137833197065551471098311160553163175556210730766022899760295247924586154829421145875392245041025255862491872469894576767855770053920884314774746692791507348774365904985467650970391844638668785581933210459348970988737715745207026260291561847908591699178969477899317078925644368339198308030565514493933817482364594128316987234849938314581744481165189775770616913382748803176938930952978188268373692201617725064633070553466083298189733716464430092786373750991528891689870530819836492716590804836356336525574208651494665685508016355415001936754687486152319329909727630469037688109046769255273532772829597779819390746467437801789234536589114174259369710744728487851541945667450313918875653307646813956807773002081132542816318107902484784912185714218812430087108178742100102399528707038289388415633695893648357450029153011917397029955159285144717177482739402722135168318517487692759871116506982454875651454975540134516125440255818051165508260150753120068545214827623412868731347850868844258413920550282629199920811011821156081062011360480378663218187278151064554146345853637400137143853444355691591973953116018381691481965229373678602755395876616478474832948197924474591462869130570898197271517173811251646425017766071489565476155509056416391049370310728675483812832467918987814976520126141611224949191940440975054098666343161416616309681529221791358818222717733148816565499875893243477951699465174234475148624705642031151628479158904339855559016955931821981726829430228517374289657355653348432090965857300503250312138544358569334285722077990627245963439136251790488495432561691981421678904230747703433326873944259771405101964064484180763212458245481354890124714550018940669682799699555339849988178778292570118377625638178861925719110009073398763648889912879017833919636261070588288725657372157319646578986558374087176694805997356207087066871710250639432631120572709432594418775919403167102449270141078813685812697334323363271910915182835197790035165248179605699462596371698405418240988236392362635642531398509957489357978136809014545509444391936436654892145259638443244063302621230603883973742737771744822220415227360959506838506130393559518788986262723440942692662944833799651228192319376650436475259421456853974102503486421299463728073806650673938019804174419473330403465198110949861811200859940306419003387544363370316402121009152411781618971876849320176094017209214803455627251990505473596992206451002885779939806154689465444504403777223514726272654283331738931878297037983937635144257530204437933327865713944538621522673401085337295724930984551670747734976096750843864442403263484272946036683675669114849368969193463555159450811334006821655126501871032004887523160546025377799443884297054775839961339539673734235054882305117617787080170939430702545122973404773876185604664491793667906371317013685690717031452416134149835880016015211004712325036129856241688724272259831693685323947516492044470256625743616559291292686877909342269518046964463707199803148844932634267526996181983968629518450941371639345655721314654945169233936404010250810863686097880474769356889193742492736050918000350976160221825421279357295560781917026005169258687209841887156422183322870731610752338119595440053893253727503185637609534783383526763311944076143922287772206695502969068501310838868192439891646953899769817813870945364462901204247171377946415816668953375179790385440918652963944720802980737979942911014197200917707491249768703797254952906204048942996783540317030744960384403926358815625798383355128191508833256493879493546054077155763449993155988609401364982987614873872270604922934008952839025693503295057131031486005407234723429015323870524579973040323175449024320248222100310406355347415464591743167884368009489179300988522843947932836049610665319575258438434671087040676778810293048321482850010844316609502218393433737188641796251918847713508585796593416399980666940828429373071022517538409134236755526805592044357003540010455625688375004327350204812824646001340082384496452286890557952790774843879521048838390822784051149678584167427762253840707979823480229069469199674368618814616952922645243039520811964153552753301176775375047827106257062557479004109536470941249347855264496047171017901222106182738790833772947061269773554385749891485275898097358809521093107126700604285179048487075061516921093526860443923546426046930858366574030611358271603069003575296257411760684337267870075741800057889295565639850938516824847410357856554014106882171106780550848502738756765377985498140785681047347752897220002793670548704519800206246615893601443400389505883564942612759758743545576453583940686591813137439223054673160992650734676175468054800810891433206069290739145320863049514742776733509499018175314502832640714091879532284515877590629828073324251080935089503952900530380235101279769909937662378862757996806223032171150139715177929211634880075096193592094871318574925062516840931974439640703924652986682874683055057815886700758122944167875292950323118859088977021110915158457979917943796048676434524904422633047823158758534526237052198530867834951341949677244726068551928201366450081823321878333799996279319579642564969770905299123123810965830747615985720029712924287835333829172416858933600838759759394379286345331898388784881221377433578005695165633236825868866342332154679630411413880773194569320717626167655052437305558277236615505968625911449045026454749434776875090247308243558066299725839145253757155885752853344646828401579684867598696995037619671232859231766882760814107069912252690497155531504408106630907073411565254347253450849590216262568026292310450555160615925006104709956088785220946952777502836834085031773578121459735189598564715731217453151552803704390629876933781285821603176892067415653485736238098442548539483970639326853811238957514126828305701388173016748456025784562353833511875036421276089077943496453301864425035949157988745978379171391090080736978758358171406957009194448157387136231239044653931662428219228153648853330359379696703639081477979686870808976117597769690972025739183552323528269812184938133509670577976365967765162058379810116165000809300703104891621470027412790720011829057826098547140545395393762703106850989028143653640790809008398864834108399961439517183916693213513423496395313128852077478678677656905179775796592551607209205546911605146673374486942815875445287578482530795912566258137502977533784505974104403492107316981831822131797424949810996652050790299669475547711230725471798438408966609926717352643867036348222693638546219210518644800001985871107645614967143132167130465110740704472572571242742004577554557192952099895515617875804832262760082855884951493328031447274915775797580398502484336056022656976943671819009941375609552986285423049210406042592576556930638890132803294627457044948000435522547266594027628877890242202964633502240040542630454735592114605856588462919534400941167589147817374421103471318883103980732016847476108420538403453478209411367273320271164517459396798470482687885939104394662384863209247130090557180300240072508297107613204280361326949123053345571471737584193475251578347294440911784129390523287913051934743639433797267433516987930955192518171419542289327067099394550295575296890242134512744514078167610011119524623428308160481591024049278668662537570859076954721713505765851313330394251555364706296614774303286905064817208648945614790523574041776815524015330899243397699941613251576172583379216159232740257134799418373063856053811035776395637142867889483842271122341447637139233312916293835391097777628733705316605232997030261647566718536031649880046535852451896652698148928838716650403664945336434222455740421067938201597487523440704628327797654528025504276269307793942179449476477912745897730332678411798144715114000480096396482278492561571997130933718665413350975821021138606386120187794073958513255353132638255580001895450419999637299306572989247745829010083178826190859036368666535272834449405757786521503015193401705229294996720995758906738354301310244399805160399598156263860980188556544422436959506163477235659862594977734014037664266699027664649126678829811398307103637863656590302592212400371126358785565211441046802506574799342442028369109528671630126703842810232529926999378947109775126439520767246466783128080247310896253767276529260363518491466352184467838819600588430630791337929640854840587710048206142122984336368288691991370726772921257099299735016723982826624925380509021461259600371713877033398822068989060891508406381435053631303825630684053048787693619378662473556871944956685343709582425332433676704662108804367490814728232792622920268001487958224937425311188872835340008478551434367483810923039712660369125359170014308711119555334805482591885255884847824685757547754984752054668292798655988949262155460905614006806843597646726227188508308499291855244833410228787726033333154659618221989903537043565806019778868036924624162835009865747802561810042718523553453838231956337937733956933164747729091302591757458321187316833416644050809199011318523269007260928801660695690431160438685184139256203467494479111060934167247487747931113757314604679814622223264817866658201239460940528072875755288128022125571675541647842444616813738637327739367017358243278892188147744870241673321490206059354604635687421834489819118083159395435977490672000217845699050855827252595390996633381331132569109513819305399255006414432253622053946797264636564130523746097032398150607139982592671873341265182424058349834342292307107078025829031477627197227371663975110628164699725749973415278917130532181261602135238626974498772880806960454026051645940058414061005160232790428224777797935627503299577077782571390229645833288621920852260501209815453911788332223613979391676303071678386369883893916186472244849212615263327809310596438092184030586818599729103066301447469229065887928093549895342851381266460479458564069157081809746472976817472419055307809522022423737360623063536680040548307820524870354374273981131400624846223145752263289028219816418306433562516970286024514609647637507294098953278021918961178105762396272778359439136412461917660330456048208230174713131187980781838194953096434121395679334022131212369230635784838220351568589722976583633080652820597705979780528181156880682085464126906502148928733865144522985368409187735410643735670659931248490224388517707295426169019555796488812437799724308189529651366119412662638343379357332590077135446265774810126694866540525391167202446276268488557145518418865871864823923850596549988509574412684503805814032055478866712051318403009908927834740152671360218327704633786540336020759044436780384276782185581636914432602592833939583163704638222000656002767292993539588920646245132278139755186985325029110465108550646968240361215678339823048550683303288831225058423620889549945214300987342246653605979534839691387251957134705100576257780762667151339021097174795998943958812959894888626890013888237293532259515327358456818650742502143034441320073633039287316003817719334308300673435915100478050195209236485837222712998622234937885173925977354705836032624142500430012546589710837827204823869689404915933698043884129474781607627157299281857487849439574427404604143589453154711473051670264036297375658877776187957261895027916264367809206664254820132332455590561200856758755414935610038989999934759911492778842872612669588103182576381100165894846966563378620884922820909099602276816630784197669654404931713045321073636421431634225394830397866212644216927356936393276285617974440799043325405306287613639220304038369728286229899301061750576822659635223133425378662082261760225530205470824974874360626714564850067476747585668353764401232630452994372324828467510396617321668792329179281068528590731074364978970260680784307210990017367364424938047531250123312400183527352261659493652805247970378434347326315465529532968598992850196538886195981771194004973951323947044431750942033352791025064009704104539968274459632140075593661407409342920124195253090774214627904382233923834864816034261309910811046286650097945370039985687637825831818286317226474481147638010821107867536824580194091540781394833038335764255995625450189711804457562192941067128256173733107976696129889734917584377376163876789318680516044682711693001893288091803349453665372409737635470911773340950956428666638160355676798162362494449553270163967789508758622047160343526500650706440977377834084739361369140044026507959700085928722384428381833534595210204219574302418926413329733711136393130339637557042581803523774086149471833958006470013933929453367782334173587154023988786257603943156801653936002972353608968819045603824040944290666018913293428282680833258686395959337554049748240462092921903044977034351317256967289894308304516543113447288650517777663158122446641357891066083453445417500484388647806317321814249368896166014480355347076899509428865481636165307859019354029576022536830735677619587099349374676135257879391295716696373806891513375482746507171472029038953287384008221083711318384753863917548222201259280349513302224979433834849578184310717645950469926186526584369702672017539479268977098636721068224728529887015269280967040670220714987048390828523305676087220347061756854458564376246353877197851380904288952716650644589366252548981787876198006788465915866191782015931375923217952774943118758810277650936599974568802138173421311612408307846178783389174456156264353098399587029215709130560326164169666373818332657923081584452939388345554543806491281610860706425494092466214380331727961867883898424116571489184873544954487437576511632052143997898314922401842500527831320082500952411949789434009491736483366586472605536406922773969072571909984637210744156431859290406114381480265262895980193125246953704335433182501558816853984947380441044694893237215630235806166160573472087145496540482260174328193443299515273110239716539866921890564191355208676443844388406290095686282232630292640398038523070045391717581167932471594850714202355160420787305637374336848270419144540932352425388677932522396094593044426433599676366610914910247144058523417831822470210366177015168607177425610760917902606667119547301667258337992820615927634219545308114989635367050951905695083246842509637313054492501988094416438086905716732450396815390183686253796442230078582765520355920831764002092082812513619904312820701982606637696417587365292654530282422919993726882276878876510761715922595249011703424618368843539996729051552731425219656519389571584264661983711122265993634832981790261758129266809476658381571668363659411117466131387764517308626650418135731536522214579439932523925832855540655907598941861769340416525673170423623147800380523625100826242101746032217070187288881207913120660937303835308007877319459444986868752325638360047821812573750562534554570353099333209161586240269954960279847981168851983003493065661581105327769140175243777621902500972604949418904471425417340946917474543660464565692767248860832555381698747884121851620735441153631540842216391468420861564700303550744054530174169699384869996795622915856050682078456091928078887625958490077189119305639164570612877148200664282033166740355353613880863187565943800673329012195582338022270549705538235440211413343024625326668988270154396307163503839315736240181494329922879366504357593117923753446639786765265067458146528019909106235203812888103182345636716074476846556903629618726559000945631830776472641705108832067718340801168082517231402173808392803777795077072006019246422349399822403630293177861261412632039054526878767477410152617081376626649029567056865498619304489498220333570305045573163989040110571486070527208212926820243050737370516699470669592032165687303182796788037853031040572661890150957529949118703569205646366719301685250257100301651089720156310778063566042329367108164785679124818862315518033317138614630865760436471804652973736193853921017401900661758113624960123172878941205871854718908121827838641190150979563965104819297217239212098778645081354485391898513638391840875231200103478061033229946205422838810889215230370541851263094779915197101620808236451783687735243343158670137965711116234539449952363316652824548699259360618528699016794307188100207105844124343974914000657055283056258543756496133151550479517490474375725448052417073595832592558332700453786067106784877752353215099782598703598282514524867073687979881157061561463390749574998667898992083656534604263920475726475676821776755164617928411111346163117350956704797051610994323280622800973309702104077404642513886035429886101308848170599198650792680934708603847386355879172821751746785589932003232607258867062880497642904891388588731830260253411097626156532929155690152030797658656135593363179552041460363786220832398952448732836613551781726360660657536004559096037722411697935976622042647328524242721986894929726494930388391153482696555532639960484547801789126036284481594895262062292843811454421233711109908717292033645020018081478592771074974528820324271786475176526972726678458900960007315134535909049182359712766752186974982722428231801102261866483374836085481771932959772317652941344487143679076092502701484606835369952205735409437759767806758064173142462190015435544675173945657431907389137261844373064463946414396741924817255496433616011760434962951341010584081617157927908598733926707657925318539739290855046378208218563408188461439688527126480865916801359777331196694443489382089057294659079942097604943407178191365931958289513585279889680822221435494437115802098540085869988351386157535444275967885039915436099710484595111859911235409051074918907677988850763642736377004192269130942840144180269045739166100563621865444155708682210908397030268544974860783056406482073184214461246728187843183919992459444877397941265179293994892890824529899250794085238070480326277769098267473456387047753585303839566273748815680607856004004699628508646459511151279754013097210530508136502413775920746643028235345772218792262549648757705544217849219899668800064420472610385137212865186341790152035178675907693645851855990916289236173576025109355576562439183892652795237551763381736929225618363861531998192964801184893392863476350711209003596993567194090673394573222640051231023608200098304895112508473787419215064609233887474410759812405134828270687207727305142469983892857710732621040453924051566972796289464307014029939755651150742493542989281344786884491298324041923310680092649652831465614838162431072095101894141325762721657482488346122633468600247813440529126437285885114644587088333743711646405387157719099465768868335704172498988495750428417301062780648821491314400357436177819089598845422983547531709279032248203594018040159614729457193192407017380072914434722303428368257181267000226858754644949769308378593031238745249016859888937806791451135911468932733503088233558114231641032469745848783524387850480904806396959906046860482811335234550172207214521585524869610849483837053955315768684546440639487310271523960369665032427937468084417205204987361935522233132956607031745064394118063708797198659668055480216194312933763526425082276760758309770223503714546221649637743228495804185649792081013093282106017582677160590585209617733590528569146711853637232350083335152027159277999934768620764366422389952366916815762210730529671006320541684073478204043394425855951117893490198641256393694123022776002416792832499425688168572838465403514432934177930635621231382350572015066995318106099961253067231493492749966058594827435111393518363451430577039360006084635506812619848584290121843830965264193253318234446390726016893281241180995775071159159361347689816342679447807540309071988462393688140158496723829172976620802054884996399007266023163669264894725399569316956016974123187340151043454880224815928054309844206734398199873729074986582687689031764146612512907796793338391022300989851373212557839742864251686561348892971070986704830386847536694334644947075544661564497458055166238310135296809751714320544992806321126161248214411191809563829129247133926411183698382336593039251003047629721869848680392400524500620062889700204096689259026722782561083642005947615178246659302130017903723600243018941026709345413877492717944755975298233270425769227426685238344000531193685128180884581919221253098598296861827198449298337400690220149027483127084473621538800272102961536832597280832966997794477814641271138633315462236910056085014995206293498624602591096824307397418791415205553917527999691891414630385685083739795119993492029028683143707110313714655827649873801389315328112567607347816099010501351905845098934372968725402416073446705672840991492187412064598426787107533711721680883158869293511057870575527263495919185240054669419017342803616730202005407823272103877368519200239493756375112957338250348986761980716019886011314483452650061963048816850321375404678872978773338200766375093805963739492748515555933900834066519002723912872417436391575203978637871450085174819020165453647202931528566620547209299409780490950451805242766470774293609158511016544569355731028681627037671648702947245127624516328463438243661998425789847548142197191363788854277477878884222123359180159494814707568889949735818769403814711996494978436732604581440260076660915819220436621685686188214983519260752373612267260953172887855862519227198207752811181482272744693526829468090204525009979468278661004798815943807781004866330651805521090962564813845308954172842864613775368492776937018680795161464291598308260303399887733260968421068353244695866441114048691941851701444963184211756036208725366679875776210816139275722069695945396748081103668314632928563303813287616068987439128536614462771501753270430760899137285397052745479070241299121381953666322589558497637636230017245823601202682631134942305733753073946720640850084779097895953488481066648903954587256439519756484261747119515593346990555790099511471491108716464878452186093435097267470883593895047023779024009617411601173500549185380854220693220170251192730036771410735187909918701161091265147961976787174979132207508186328815009123274393363295021294575552566134259755733027701040639058202135752023747497793922033706278926922473779958413772968353948212474156678707309157582502710224743297976503839403002823321311262847964848690511933951250667078853289222599084647711143174614674614967267142644763192548531230057870227695381172094977972130330397414116404540279824396755166688232573913728103931615694122241669998522672890704727783049161568774452406643619674729338901803633026351060193931279063353035054004588021996360989137091439243677540033626501645952858973507583042982139307615451931715038500211929013558381157819176884761429969235795805776670594424225343725144590057672444648253557525238409905459548816976236333586340835279047696561270203092604801908643158005636689517112431975983112156295791414450011090022517283839925532978185400748413584562834605817568259050640412867304065276900453609098438978371968984272506143870812256538992813510804786895677381579068341395414519930591282195231874591052362733278209862401606344346682968090403966160275430490854800268421927363797205839345516199983392474611375533219287369533021161199156564392537878879722352457520811545648020991208212581682666468827506908921547254216745440115283077408308722765926100407571879245488562107619242182086082105549496691927988802991888502464400396641427396704070953094093607465866766101464663015643857539576458844638650748775396170763267268215313333845541065814593386493188374669010938465750710201246235860443634261308002973897520557058322441768430467601719160912149399448968047411915360890693830580995788052069559663476064914901410917823881589012734266706054694894779491579469576245065748083739386571777327418020201599682423256556234313828163119266869488662352746625417683337482997178164217620961194559707815183967302506499566368191724771719760584241322792894671085024667024414215649163277672020702173635902689129612898816879148113460490603749428932710719970819650613637157073454714107374261421073675107056664715604266221558759440372872140170521705289315464970690403521195063772964503104498713581596415318554704512456751605355179723441990653868651069429025085102534637274759011545683007563530460447783967359458362885371258973860646072856277604187805521807128140737912158444752517522017774056847542312171237890012208614690451248007252648746187778675104938867290038733629541289923621772611186519974445007688840845191755692393934831056984178581036349796464691964162296957963774502464349516203739896219294197154061381096620705645645336494984172613567746900617502997426479372363539788439485699989803906192434861345448141379052696067328786124906415078603803260861158838671955428401632941865506626090461764676721168627899591537532883399685161073477909044920297728936903516265565820492154018943954661597198916410745143192133856228907218017920123421464824269779973578394388684238734761876984596736758995507509919523128805995099926888022700391610071677366991138063981139541230824233374904770719222349269933644552592759079798652233350734211698363681640585701923622225273045599785562545483598664963491651912970413813293816392460747126079163493806063499551108648274793425625652804466600692527774135849904959963572637004466163347518187858783879281392087345111364293691352828681621873819138065605346698341074682555382493107160809264812511025860756934201701764374901689920607682588129764768463315141751697907948724595666179699098721849217072113693079961193607564439335339042367833840274097000628465680280475634925958242485611139526789606981134813270509850220718106330867102970486774332111888949341679582973780141392947904118454760984036322611363014045795667980021743249055779238360290171963061991522915913064524096964609800386838698681416339417212786962044576224727079010791189934646090157430098286747089923609057730541958294922560861742795516458621687420035988406635250713386187809125305259631341805659197166452243397184422449991046744205257470956103720315948857035533496744640858362337498536804978237517430834721519214169655166439386136770697464213074222650063426106840109342731417093131859442568631489893002093417818419382858719554683255874077855764400368592035898948761517848181912381820024288107872497524262945246364191087158820489863132808823455955427442133458879564574240120322597566863478623392943109998555318509007519763362128093311550414892645097137299530115372432718336697235020598986070804324984145973949770535452690157582564994510883121113308909250310949317159098138901730185169109447890439630789638899919434414999075536836812023418543781613712766833724377005128608923843592640858997534035141498734540068374874906571032111276720406265071625292585638556799277927776037357588213457749856206923561583631783141603887657831796054023041017926464172281925844201703293893930975070855507215154335261127730224000086970458691264157845444084367499347415996576336811133749417585893295548196333870274114753784852434805870408848899304835947993980200254093448490246063203390078698462447367050293542031156150457943952882679321907988816597035351193229559503675924689047641954437418831739662284725709345429298024804676961536770711177919231438891379321609949577714048932522806180768410181182073567105150940872315559885283222284572046030211311754143185831452629967609860874385466051372978295025209382184103305017347534184875303484902637084494564941406080279844351130577245460026937267689287895097275367242527083481914700005750973252091283600803399625847932374886560431551360609866628046929998796678545097299372716706878150422562371989172594385759033525623517648748951345433785632989269333188808370126043674204337723449032943653375929826824123582477588333084882039923980509144668928146816472368722848229439912754310470011015000464335400197617776687335138027668448566989129584094101375503350627040780898000173034290858564854860133229920863494536237223401843858006626014212781304590798253966309077266458313267212679200101048425087503816256933526275369948538754761495808857124263655941953802738197077118338357683914336009420598132686813406460214524249882009693492039239980579482405217362913258163881955716510010426663317845354521473392715628292667660889725379309477443102391443699323072295156026307780442690602552845178955643640495858666464195603239041351555444454545508406528899043348005265112656076165261987114882007132214999387027162592392206312101229019486528556247948819078348437235563994220799106022740088417568218708343129169504236340323039656907365578217935985166495800169435775155768910008965732087879895264146708607210985675337105763581232150450368277256350856509670833798498202029565915367681241003977281712176716424244972881038317320314944908406951432565009297593214465141938249599737816493058417658795501301021214363332574391042084602427132789913504762079104836973815039299866772368262567672482781439972791579452552924988911471992129333247585427410561428249919020828331710328173995794112820281651930661531970902325260684477669041353498812567391690522016507635434013605696551310219098681577091226422819628265127473720355515946763133826287812777852138618870814189420190868469398083223619641095065617348121864945469059107447650108812303884459936689049219558646694326035219398570418774071810537278845197368296699446194677743952361410886612927565512795975841982000262728937662285794647204521323693613957872782401574464366333361858048693430200646428853927076849239218768870127111752244225640347331468675704217487923457474512867059468802423051011529863427007263378623890791155512891779056301220878264429959967388984114765480726876771262877811623748843300008754629759748331331671370580935510355335012714518142611425256410909422863708129604443287458941182431233499748419212518848393948271587477231020588218694279150520780444727928584681480933760936028820553274770162116311511434697075711914579213692753135618719531124011200665206832540364318857848192810897592077877514932406259829986847153165374382732457181677411481729275854323345675515803878521338353264977559415757251964061557784671881760845236726579984234182569166169954154834657466042663168989372238032444152848354108676343631048376103381151139360103431203610348847360736297121183061161676126711698222433837895973602952323107766531473050359153138162603466810238757800574719426914335757531777192288524152194082170610149127366985631098619600502159876721868986286820711279549567731354046007402254427036638715352326262779538564919213327544853665033367402199549641185333064164425112999166290580462381511847715780155125683529112642884171603638004821743674780935318507328604269825574251852670829761038813093253173860358428433952115027793155098498068194438281948041850091732719551987766218195801016065563966181136689891904853205285486045112584699173699405717005174874511042064327305796231330480466917750054708650084544498429865834799762589607699229711677961915349759129405165712541673913077037074932521013704904379356697861736212680692453502957358124078682232153118535330950905839281737443665433555974529305119235457088205501668049303212274473259158494537990810881185496409838988659268529012675485067559221072532640963466040706820219501272101969524782447021176678380043013488607612385200079643991071392085787392599564112733409769962605466337021744238308076311974423869544239380323785789992756921384205868878858045416496537073095787423454299343295486059674359879179725526373340201777076232747521979893430154058193211941658216588080571780687543116312750023380372290569748869749037207768861068298388573274527896493938816856193424445297925920617510313116452990438831732187530072998411682255195283304749750142266483011597334586545187748468667448465445948498954090649611070145836020067147405626911009967420672336789023254588801473727771082574513609369063957178870752865048148671895115394459271934559433162518711092691916382780071559771303714177215681166142065730751780883085256027957758799554449420109635300941217360548818847381222956896177459144057177777065589212946712797351320761160388369974068302092190823706623422650399113374639937949017821975816056118351589560782075422554737511059739399339311724139375708997341889142883143942991127400554610445601714391070734877783610216017428786153257320613411516682810252565384975249743387560935283358659438489866427036708297108945158102293946642959696251009354063171599178106607558215633243076265250853749296954854331923561363363454315641052763902841882299986361528757819849891226635328304776692200199016886218527362017804098911746289015512595369185815493506292474169902653983168687710566616918680137057687369929357847236443543510497950682691527839524130506088067457560058030566964791156608911771175909390724006493351665637817776595135864034656730024231779600892748541189186461730836975557992284905392622728876140925400262379812498811689290929917947667692968207368257532562087337275883607909248180603623956921764916322719161779330384478773366897048331021071511775995168820116620021903968815872276306753446545831861910738512852343994050038028989437366272122364950873964374256774351314184870916279067301713155741309193805797667255354077836263238666583866120517553583670485714697192832311115314094374746161083172006014307584872187215119328679690362772926035038774424000653438907767963985868940527853058346549941488187978882824358160313917004431228493027348043917201146172250463515397206327498444467865537654279894058654505475705100294147372658988229108012412599868355876003586597303385222153731737234638678524025192708139181469799673957557460540254497900630959231727177395023592390439965227781666361719934727526046513526412251635644061601812144402380023191019866255207146977153400536664693224161809096956799001066079940676494910311444448100344751101509785351704507050311625093743145300852763194570889772830761723235197224579690224504137961821426287174981574808759747325073335425993899402024268867040314543045399873156817524773339479509283162471659974295903321702825273290286034767628883023403363005570919315487256907772247027576332882622894220304393613558172748805171182016665706624401385627462948926855751096955194540125879086114692334172309418310529232899686501875892733602851430615118318519558439409451903480203832580227790077277071777318232172837887314312027026853479775471362895069424509409630772947778444696699963867456157535843579493561204434374426417150664581148774546557044496422210781119687200321570263656613980934058243152475777163047250638647335934887608922617415887983428495288387960555784993976879369083735261422629163317804934089711779673122147768714581055904936632272945536801077213937692228478687917152268504621635218518760110022545114553968146218683933948006998580153323333724277131973894107909557276177647799363286638816074502188579298072765838869187272616951056157072348073279212651846660648015304300409963976188323134488352953983150053032572813170676306740161445324238023529213870573000979891207561215624069279291323816072179512330719264126977835548896065635319664130575472556197416815434936090837342719001186655221466556658078411385200651240359877382147406933583472012877457661582678896527669230367370585539251410084871055560967528991896721541119612835454279010537209193135629844637576280530735032371466503283250020106902066887629566960527926463972982966174656478622716870328388186416654632656058558376100621103092290393192756007016446094892102683984319829815370118995683725654207110844049239642852715070043248676569575037650031253506195031933392049853708463627389032617555758302988103450153427111497129629947940538513047326153324367243598762851943344376747394887611529529011783372357389727021459024133219800028392515004197757700910311432812220382171545022637416859623180869559875110190595984237484442732490762737203411089178761293728570969911419106831112109249484080090222465982312647165298405210894640632866989510623259872462253590159409329000472529973495938724781341376926612839725921434218824430273715775367754432097683020272892259922784980149322408619776875486478514025015218871566465147681673710234236807131889694761100399716824607740563276171002042662478185079024431874255141636494226968374200996614056522264164065123653379819446842877931402238483523303023383323377818302609873831639953460072248316996563896512056369623544361272538175620652383857235709307915358879597664469316727392681060300896501849875674819636720128768076550415091595477003272713950574765303939891343342421509822047301284121128109891420557345987538288306332983818059465911705333457902634821453304581462421990241250344531648284530959896972675444325744108470705046372107374655996070254924539858017858744469367140475294785544702306100084569183492347918117655307882324353567623790609758020904018958107398302880954066791853105465631459011301071085390326898844081548577962750515227107486571531952816923365609823941261462548387602380779840957466652151084134352714760723276765435090393282761190719343438688486135291600021217394186785264833478193615830005802108583758581814673839961633614494498291117525120041296554102890218216032491689463096596952016574178072492880202706637248381497963842982756893028768113598970107026726439803659375666364062439506824665078412955833744627838973949393002009158643885239878081264810930180064699450400708634799513447693467658354916861696507926812475780181145685746539192632111173787276019833183493584923951355955741006612611008636080973624968411502210065786146290491624479202624074672543439624248070546036792333130532656162159551653820206309473719993237557929085495922086547247311545697086204009416366409932956865969250569690205914978926960795754159306962274350597606963855640291815980996306676128194824643123329445250383300835256967208133371712933083159696637272738092029386135815360564022701613412239328403850050435208913416631013257570493935276512218366953550237002598215068698755724235493303061563904157892463919672870978635466743110611582484877350997159673320232373468850868115918608685683208436895335775144387303181058142374426107905152886400409672262824079757606300463689932717534720397788025392187903754163396947540015831672465680057851423390127848411802251347474383200390054102656859595660570735637090634786184986195228123916555688431688390604960731280845296443628886112661489996446262173199010373648559717193477108272389604378514038545160127383148650237795601567261471106377158103537370055773713461537199020085258845417983244108073670382550445105013941674413619202051818667283677078910260692871953609518515131510888067011648457948495084541462425903420792838544206312371278637992705311343909860796748883749994361500874106615544000920070505818563970016925854502694371866849445405780011223302945269083980270855613341426827257030092304378950136802857070429930678744093472041255486399961045379738917954407249785114802195370834156569618936717960493192205740276780697794390562402794344927170502613596295643764543560220475026136827128875651009636353788857300489325798399853562108041212450303339278455192620541789241680188940226603528845353434816617537381382306844596305431956078774499308618063140921286127564073357658355238403529811397742895160858381776184411429870557827594698087089244125639586949025172748136034153097698073467449674736396969165851932744315093292143064803386257865743077152427312950206956973411079485062165203261716210506054631289512014806858485331585795776958544554269773774232112353782160939625603318797603604010894566654767463237167128720092819046711413368808613017957295918501478579145479540391121815220046902864524278643801917925822775768704466881249623505762593330559653452995207102323460198822014991952244705186467665739501160785415920820049634029235461994988801703139668741900730235547897741004015426589150061276771257298390123152452589688171321519915858335320487024411149472662169759868184286948364695523960540209907673720638940307974820625688573404287722311146066407777681342312871601984937369863864405281403182520704491794621978725222352702128871035376853979774457899509557790808884602777110539810619115839857889142687962940651504352262395915614482220376090901089060686478660583284406181323733308429285469554539340723337365754450284752289675221203371148286693059167693898090954625895527293933106918834028381897333928003750702544802436186803144193105773602053058579947447342793151093742637901523758827253192528634392908923393029951831481039444128827462755370592732935798026257146613689896707069444846701944671592361710896049339561616410672528925459131207988247964928281813529558606582226827633300683020526661121217468579259423140109869120886474237966113019694891053760723960120440656169318588525533321726279524308747449451225846920663398161307433754791271802074762332185691508296354580316413623671539062077465428957161734701224710370285865770584599947709448014340252963943255152522184497633644710945420433849529731951199216188305518207659296828699698700128400319347441235070461130881537234923745356567879199955194648675063823500650643306814113433254701528335382009266221655884347319763051642869021996445251840833484861838711520000292138824209376507492342231222300386411157381926156981795331209889175074122278628700917773645349399886879846660368909985111348598158730293114460477388738717708203194554260126345504486071286028764368762855154207109317184197270914544849907696386829908172307016953029397154055049798769052159492558240295431576998155268009201613722471509783962812920744354386150191842748683634257740212294378474345194280326310453734709724536470589366239038068831849820537826897686912357121804447731233617616041667853722568366395417548250734968645285294884059342755079303960306173067629049668633825447960194137211681005850217570135707891086747394380172474989197925408442715474047893609819959730228970088370451522670568623008602304488292017398632403817992299124368446964283095487677812392002092258045933844343626557075687099114174476358798291470477219004960961699272154680002840474937842189627719017019524021453562891270690265484546752575808434446339103448805057813052972739770294116375994565251909707630963252766153773120763125845901699087255637323653587764146418457101864799850309376886340976947551975438038880371853686369536803776825959036695567624399555822319568843006208071625827405302439052750814307265954679882918792181515204100529141652466765221896135771449220303108023622137295256720098802677786291848701258481021648076658790714476881653089620964245067470962312884962395937913151793316938858526529742175533410771838185326816903284299745526415018047646686244193361460816563600352336300559023937434368286178537167695467567666290246128241747169915070154074776775317510224531381545935237327179143736530320399699425864239213530262160425364016505556460548784802593028516708965079724097399956286353332405779921324077614464739025859803311885450847411382157048837090431626028481303622998877941035096639142425934414769049376551074727389041576163254715927956895107540598315459502309363057268122899314257310011097216396332776277316838020562102954710957930652745045447057743910267998070257741201400292142512016345944904402502635385014110761324207689111930985279540128333504823533065216091088050718993269337497009935797780792314919936689066491563240501813520818823252760176714514045672750693584171607946352533109575662424198412998454161810600291262100333357379584765425976918246561195115989700588376561058745889215878674426392480286331599486212839726363563050583109699365190695247146546080630467853890467055938711284658392353960786997244033684064708599056080813707041102646602813461598507921134355382130245677654894960926931709549460454264407582500089143259012509647852622895570913107591572499563724695726845012014678879435209088051635768993541812529893707787921015272801774176437661943032140079347844332582259846771002091871810861433415398940312728753993515964729249528459064922414289818574913735338214288166405090604078884595570251263881232779995979292874033515438686736298356123834431918700581778847559740680049820259263058211922370637430809576708716876626871595223027629333067502361887317839968321040823568255973990940017856763111056790460819222627907427112175574004688341955810807797787571829796273598949914601696194946583096498674572666513444603473282639342431237652538514949233887313798907288526181744764599142134007784159334945287362025307124610986495415684094171786730172653110851547968397895940672222626996255658066043098365214733837041703522615638829805605561346333417358783632990467116769323246389166089870931555300239320040272913385481836015147018421210990707146136004074331039035988168426156664147095764952910702065974993877639844736743411172031346256293412856582409171177868166311407944597949347020436155548306324293608183231768790559067289459429511372163246226938084648085894131832389815021492610850539340701368506295237156613667305235725824374889008952223613275200501079325743562244308902119356723864536825172471571346025869231372727502611732026791513899114138990447023424663756730387053683142630920372562257048021487153062267151955493744240507068177298636637843334670615422204409970200689876920142735854418747486885917842548665845177065907073233760005431927175296914995905858819688381642462220215182822693643433534136626782173586295475734479495842992764414283590567865875075836390012018432890630147691673720847929590950498200751660126565381588761029032861938264080821253342812276467971394031597942992581457664694298812114095168051395710754145650068355261305816085534020273876682302339203832572843590893476542622346031699185529948527673556259921240587899975244834984681553994304075125993017554446624223249036874641198482488844203056248750613811764783587177732212655152722565103365962831730188844835635233953517103076445280158211315770500763241864863472102209218894336609177267271854548914612810723480449695403689132752006690329376617905472219517918709084465543916823861481958858201254384905097065699683931248594447817368314549115558330078048557335616682701023036187373045417675293246412763669623849521784542922458314375620340875423124866897852595349697238700600838020918871203883222368900429773656085180102120676759019113788775662196803506580180701839345950680742612902948658278909595566723256986033890761253253192848405302445084647317346524310192614620463777545030262090890334609112814304196901060072871832179905436702488497237866904037950187126397275222237871898927759496361218131558731870936345755489225336631738740588996718530369520202395092795933169199644622677451852189477442319590563553945535707338188587403937628356095900781740914797968288587582260937491117889012524528772646988401406055821114751150920937054556688272875468347614087886664234118450525963656845814499024591402804099374515771566597583459292933937656028669987888384152535927829623050809621427843930481507625551505658636550301809305819960920430351464070380257484077610663044127225404653682791739095442269258007974857139139016082032084245362626491466419012705972705944582332070982730462877972801311603590772626774900221408919166584787586387524154847071024704249303573750477168344268166151471718341831651584123920886065424384624875825131653627732563692125590639277596513967883144346939117947746092513923512843765279827062761336597959911502949405094808285507259364736151504079267335423931148318003100993827485980587731770157738009320792789542674078614376048534189148784082327346396992081773694916604240153700392336171091330116063230713947126453309372234539682627529543619983798077846633404588399060212666769164503795674423389488821779073002491020719818461640137748029516636290820491072721999198735278103507293964623261768744125676773331021947950537911640319432207795990733038830038874681273892491324562040462620346577521141763024461645235830381024146837963020692719094860805125239794508043198613851982675371398349173160102283519820787761090778238437585059106199594095757916128771013824944330752525920733728872261427993856549612380351087658586414943736341413405298118778840792713288167696564420856592471188401289209332653301648316718144310961932089458519480045239957792211197179162892586639132369233146700737260900897152625235133098554433373203637012672601742704202106334970215738334576689458480256717979340387698815406871286116299346236078538514791309001477406875599686326877776603867846836083243274847750952106193877324061830070262264931671911038882210151258541144969112852265645001119692398582651105635634320130763767722641286127480314171461178981339165844292077410238195001601360125545886999393691290390215956094914496634035426779813621056404025053178130571615684425101549228748084954107828975954942792148103821091390528927081620764551500261047305984955644298737107619020311628904685485659872714118539360652004250661519393914678844458038772436427893047160781725776734584800136938648169454004905716092787107139956475450883639028351912393084295032267246486769197791502174801550752378572311006935086119962868017648370559640499688795127243538721682023908047430873432456601970518324959144694083917968163229744310113904369154837083973949189438350673952150375151940814995723793362564626842019020767756816264885092762863972781307912284350578920047178894557247637842323008768110027817482218490148187897904813478881694572588055111713162593659546280540510757150544809616938695344192768948478435993540133175926039156552632592599330762743495367325293020664467732640185691231978960352476978712643645872909378303347148518216357018133038555935079449849932434898223269583071663669180349701099029279777638549021021250954896728381801392667621717293320982729366030049378493867056727365793752410695656148227481219218610164358438268013842769340607133997016875909427210636983218521758340400871642845258265749324892471854483662460804879314324931052053548708203599742267597980939051017648004095584139335555155796759324441206043012946745299675511344971520470305626566772237206383759804093352021164522021132814013601847242073563708781415393240476152173225569787177269794349156525179735325473585923402051388669583234281015320714342289192054976242753262256574320012718070943689265583518908289439747632951030336935270789504050138001892527188645408856886146397914167727604719424282159435804038823240332537033655724338198276903500988506118234480750115836948973317365438164115065222539068199036193756546580477544243620607294552745129585164822563278352131671705272881242780141847396962513824814115332659230804423436897881844476619334776070015576971167465558040954005020881501220765457691885535124381768752516026507288367186101781441848598423039977007565408048904775399525750717303401950171631476640411834099067946630512150437904020147887538660195972660876953580410508364866786864988821193759774964787888703996336762853580123576699037873334873486244343322590520754692405245028482725721770408792604989774063512844025256228970810688159207348727561730370513075820421012709357103285451780697100487493497871224859361628469721425813168716305395132558174209492262838260269619997676808509919444085836500924766790590480568347671623513215938605926464300144092125784026973644246654897735810846906550482124678665333655859529830404769368362876299402822697040028270848138525617022905191564300286419625707574096524301969369710244254972239708608404780651909258644261207830690537251889911360383193187770879537204750495727215687846918681490364251350169386823274211303221876653364037898373058097219349923414192202795038421699970512276260128402811995013901501342772640026152081863049880315376312417935618453743212027161781350662946261190304061901288664843634017346536758758240593814143073954805696836378895557804756732512774022729627996014572550209349495640740857497950158775504113405596057459481135866512446666731634800845474568392368497600485195367582457056550701397703663278026385008784049324950060524591316091463257203810248813520270963584185848572417304487027812309342638681040497935647169379671266956782318619306662409287888310379103719794829079539758599334457598425367730043719555000627062763321801539932347303606163782024511724605031850867611755978329391591483627577207120016861183968893949827992867539873889888922487763174848779065330014631009800748988260086363102227076870823485879604667216206342081505028361618487946516265835662078554003252044150547800317269613072745248258385160895786208153194043046743123613440690370018657042793639328595848226759030040099285730554714878073647684235185409795728972732793768622689755785710720355474579058763724504337899297964249406782301154825587949216674932838271891198481903021655689313598377273191805567971709542224789895238318496592233388176742846419431885320793111759570141722745072859302447532669905324153417582548906285842184574352092756247596870929787227590438403716090959563247268518866032425693948590574566765914748104192334663428219388761783928367859697070405904608832213680151752547561425426529842309521140826406872496051262052864606734563533142137008786714621327027987251029528714535821403448829001158398937425737258644667822501626314268107960677964560759112215577305967253493697763991307408567191727457365124998107220600328565152184456162293439367725353086592476415247999506582421454033233719667339119664164471347464221250346974562799557588929223705097561571968606833696531539262873785065529580180216408495983125366789615516623016995990915068869327546591446101299067438057825918435469957397914559505459458217764319057336633404371441109163379991278894168585204252630302093807168557585414113799665048483757286588538376139375438942734225387438979908470496902536344267054447695475181703822806069260750242739735471648155811657538085385100515444712059264451565967250477586399973123877062070462225135633197650579432180187164312663998791164755062866052478526586828896017851172807337483353644030566289475670002017850019888991495988715207887405067031649988075365465316962908545839980409210312592221836744028118398588584673887958603986588860534016911578008763763880664761399522096610263093049082374809836128554601895145049815046946760135258483740619912435155273965613659673831145792300351487414918262682756927990559434961343356753440665839780010679340548351618873166899608538528269988661915898838865130518804264995298342176674541534736648746019221093348033641725479144289203509047866827074413217188289271967753012890252894258621752449143719158910986353891043450911000070584516637883911112295009684711878147977682574871003689193681153312698329913406151195201755960891063106823740350891782521167264308955788818866696238266716146794680540710611575813925850345678233589304932187145125122549479591910404419506087453478262665617377177103060830321177274095859885928355020761342042915995850696416111875479847547252597343038003890868050170749384746371606191835980854978045887556701261056667675109184048074699284037853291160338537571331904994214010952753032274957163450638992752363573362473415969409026088396744202355951588868644654787171732566258736095214419965251853423063236903492878123337697410175662613843495460516993983634375115602506248940004967072794433308066202460699622286667810772039206315457950322760539827614777562610540171283663766703250418932386748007055829835794837934176497923401773998632369655583114999315624503198379566680723281859129447039794989734859848490003426273736799203211210024363021007089096480972405908721259764739422827955765876172372728879907350204450229574687445652237007020782003510143905634878670327510324276117074413042911630214136486610645725440777825665333229378621478850393661095594370663134487074276221869198528642996046501136985348041684588866824782196735680667420206933197884248671102999338003797064217998539415204212725841397990758768096753684602894292409783616164460790971466776678813140159394466564774859600873512782977780694764294104430447561348860169378743476911536843815873990877060872703672629772412003180834132702814936303383475542141581018932445396948744790794737488599537046354480006233578095095519063711223029256559599490834172821576583483431643580213936393271006669214187702954200345931213574303168821202842435049792711414682233842768883026224532087286319048922849624118715319870789556400628549767693430637450501452655892492100379644700950013109652828568278692637864726969922658966713831955006125709312391054284516467635619162840694569411398042069909965013781758850875302728427285240362079357723096920336303151702515264086719104398799383259117189589976175160888519604024880726226640741469308032303504292647162841108657063443361425504521996517872909262891419327327280230455399127092324996161317225470438951399689504788773247008673858883665400615054438426603602838388141550211941160284719205203150935999090539896023636990707037361967074458728521263673630772066848906562303226790909879961744452974895510713474708691383410252599360917498223610635546661486960879661755142422168401074473321440829635251389002257184213055589409675155066456177218593284003660539744052860366301429675692210774823333498862303529703869109500254560948786087008494433963399883137097660375481665257844576373934490774490464610997376822677853860244479967539583813909801790995734138687952343112637611386107073275433159172474015991795386659658354012250277219814725398210387543645166010801306055418731042563916943093753682684289309181117312357560657064584340937133314944362885475085842169413149341750487611909395964334634454217845101205877165144438208285669620587809315660651084914103086200006788777625506466235626836443667655131548962819309024944757113539436608708787374122847290582849003682017015489682836396324879214788829289987477730255223085618359403199905212961761984237198403657701524916167201205928508556207359535104007818781165120106671520817187434555821792134559242453235359750526475221587810954561365376578961940168434237071219647153595958316788258991534355581697253812901544548111479880795858156658341535249464981935426868871543375855045755794815012602238337774819635727160966779969504334519221487753485250416210665547938261416068230124240523108124497520474949556717702107248668598302592018712831071431690103715507541918708404743454161422159161438559728214425421277166186880089209193107722325792070591614697802331958141157660782932147599134957388703667268512107223947590318945017522084064540366592029347165876100982660979688745248787527234384653822763894051193825375408798605215378101238884453181578719417780432500692611093691598199832584430083243889307857236072859364382299659616742539645011296453238011655307866967251155206040009578036021602606089711174964834806200133673657288878947737983693813066680852867799974556026071262751142477292938842616583071942106831068416811610247859890578669614623215234990817282138473318649111204624845652373642618534574359502592771520298228246606416939591056142297279533933463665362741526620186407044656021294693964463497100221709474499613966350240394748366400257413057248336472263197592800694118957754927533656739412669048237965682154970331040242863297535071891131595155409225321925353918332909766015825981029306715415861649214894874397926413781844287939172612445485281452404640914564680509087413923446559362461449467931015703177792463959235186050607693741059057059624990642177523273182178040737506770948849361746077487893802030419361267322799186051933598303535918133545698028094641265121685641345579072119992429517325630761139177753110560614524774255607628751065765680812270421835393299812315811870316628452821404032772387198278184278343318581629317579427545638768951906894295363176153271639348981672731899910920712576689663056693483191189086249187072419555385364194051492610003340264736224551490471855226353744934124862022442480240372404550328503327749117871094269215858415499285532551377700854930018500745196191961465133256563731833443602878248757182495386964093608180817991432871906753396479283381434968176330847026958544541939231284720170643474363630672119619822704579011379682330909145214333328156000375688823518658695257516806776995130208390362035141883053606939842513065724286821132763714687442525520301401254152060377515987383138399033902991422469283898080180593716645951218407665249874490535712839592722410936649576829874295353294312271142885213326076900510344655712229216539245946523223850588408334395968474029070688813616734363410580275451536807741601001861344665931273740774080048318885083167095810209637089730044958855832772564438681012902129189108679378823769988877691940814923118684059224468203741855319448522227529221781048063662933146470496284974076961887695104686694309566482733417877172820925853452399221722388790647637587559023469489039128881014977647431101470699818163210535277064139422613710163532207976493803221136325503935846705877816513113906322589797915500747005509270343532223085685518790999098746377675309204343801203884999812968561600366258180922585279117648440614717320358899665300012076395056581486211805538573694148007637325733350046851535164331173494149900766128582952088684383397728903991542253848375359112631002128771641508465432773456934795352717866134159566591649123960120648131567714043450664002207279420134530468074786255627289711250529547523232737230906698684414087512492415206722494634540764229328017768140930128971125219281427172033084635803002997124159246643678504463279636319144079756256782401033953330953977553684206562828134149727288245478023399617595260924834051049807603750232392619931872732249998054026845392323509027426121388425635137406472824970295430489802198928399058192419581001787320190265697276022835571323648278895695079045335753231291980422509485353610744033646364676220850526253608069192059553370607537586080466911616180280630751727361492702883219362191420796134549684248606309512202789526861620644158588939338887633319349626908240072334284459251904056284537661092516779545761940648095840575049389158645253257196762488042606923946078197215216319987424738993673779823463733435379955552485809284133509521665427232958633591278316313424252742918537367278033746744066396027723886356409425176456827245393190342101801826949467054519796817313217392259513577015668257063796998417522605179298556476395691103602417274616295166564258384978887173145587519606575523329037157903079012028213513447301757887931679667653481448302097942632655389081052423559841929150800775588077875235792081721828555323264683978609851855787264920134459194846434717599300114669586309095166314236773619660245775992282655428732262294661393506968067858068090535679834594475299185765123421255861869262033344415701318139624014067927110296763702044082308405928699434236394207453256407361982845699491122154906032341067841821877274028798263275929682897958569717513601125956986279718946737800803229050796561476517930698898627831663190360112972924878195558685126145918503937488596077495664156055889489148313204520898118407493817219064966328811055650739669145567580216293239329288557949163599332657019660922910558656935270503280030389461011482397779214695404229243649195455405519414513500639558868190695029039243545024565846608571889780354768507043260028279846224801300066373414424920693265638703504564645050380246668664964277125703937010224697020272730834043835784001473972406231308819457313732211778377152504899384924926017698413487552861370434121888290202135660232108075532422701624432304828971430411899509762791806970952439609051256320297372910338306090598213988445304171675071281475026229614857698257020231866687565818992914192802333146224511106464621772954339102248680404578890556811160632486633223685830438907867210974170220031123162943518261780852713106770951364910855054466536488578904351679170900692410561742073508932041788208903711321823676627058249064632460316501168816848662067448049197891878661792714440858409460635313142091294489273026758924257832046616654040742581758705300143338656407916394822126886007564904850153394620650009128432235012559646770965297673483554862363420875689967651443581200591690748266909249382407565410556031506265242839501283567708031466254143635245479956862264783812054619859960466215094508370126792966759520485842899983510001376806962080484633389061240309844340964416083131956430080566242978479074152410016388891047949503388748883012615711513485029058231097840607710316672033191096728824677770282847562606852460495658583372484351955819305552593588776580788128327218670074730723038543694901066152028953034468090973233706487217794505056658478064146306796807837142390818469428332631881189883675517566554535516950230946275121299028622575679336858254343560260055097158805119918678353921661771213735442674179669032221139882121983154520670881303419267487542629795637216648904986221849175431944015245013837383636411720151894134438188851845736105437897877239244922301032129490820963012302254413001373740702898165122903976196908768795268947753504852352377166953533572548758855153118151593671788216006373958466882069153850101196009145617693220533631673198754344189610845320604841742276564567937720423182436969493001956820533680166473857527010816340439763597704981756068193270219788719093499072195197800280826724562518197503065005978277421652245806969016391972864327754085011788876482222446888463478437525938791041847479309393263029989713270053564837112411638615769883773022619066088282655773213889006165806737213971048693138005516218714835670640795244680930742933086682499205881575378379537100915239333540442248707887302741362781747399341822208912951788677454873482034052980515124878781701401777905076196325432762496575138198115930130599185886334092115842602312094919148938367586655595652485961142286827442456118580246304268391409768712491419024672252931060707650976477286331320888791845894417385057693428005765846205305907480798994727072396091075490863808747068272930152964877320437927902385235927896722320513883702732347682125537996833742232909885510767212103563565859086884783459041058085811306571193276910124634276440744778158682324845474555054136291890218081535080593387768958967835864222060963105588326048367891399921638279091556868928939478534312054524505539923975021273242833887961279364426499842421370152488862993650431720409280023112308206221426308050272823481312537932421769772712887156664787232466167092772661782435931601171270290236613385394643886276933666036331840384628431708647936545012578018758435360672079894449708501714210640582902212356238297210425635295421936789247896370395034476774854909774825140597617388587177199716523356446301583334158690501554024949098330664323101213495565474778468079922539343546026835221810523342006145798014995061242565544589791105257874106378329596065843180785807456565212591634228832769645995092336959828449854536822325872004655784824390597405674827932019348518364728503090129643563053045374559394607423142444477657009474641393327454847452315921527085614604792299252942037251031096478187233951769752376798384003409172758166243298919527617618714654972174919939816602688369709327830352055015460845082375371430877046630550051687918913275534886646685888035661375916855042697888741887418550059869819479289526045032653732736885639094495876770840283453561270722147483811398272387697031303409473383547649659006589208488743999785129302145135430773473895598042615026688543913377600375842097152361099228973331244183760818070404750014536032608680209135883477716626082381174833528754979324430951653040164239611232208184840775367274293457841881103437717127471275926680726129997631853397654798626115548886640758340982452585014467435250996355707257484756322049985776945777432741981367297046532643273999756677835654996751716302020764912100665321910109581994529602564797582739839682743225933706474627328878233506091059461724646975133397469140331918292931651451996423821171792427278790540226685907274265058196731024119133526973804657302570258109640961633247537148228477142362671381973294383183610217245260184558017047158562390477060151859403660131746736329320712759764485804066307997186760047947749307231333933238714293660921177620085895236875916369642665475315809380974745952817992969762276997989923350205891530516638980852645438733443331774901409113931832600261604229504782123946959880978005117938313852686195813155728408675103450563632747374331691090492008425389324860200967308578467029428876740302488498089907219040918105618385321770386994616129594297238246459397066779838081310888989670898913794218731935125689680929319035179041978062707489733161854945859671199229056036042263158542502877735693262142238055125332579364182048860977377519313002359381604481326030033101508513809545436399112810539757358360600183849828535400894027314696669456238891939179167554767894044811379743365486282911675962459137895853645695435354899203746438852239003122135430651704821453697240731894476010449581351907171156012168424867189435158733654589464523324401829632002564273624686239544833928779591637306329004408260618549770916730429915565667575327481913395516931715426167211371901989647108414470440762663706185547037032136872508139419276951734139196154777184519339806587013531740430126551063372829879813519173806742377964503478962229561988590627927766804357577117955319997416211003144278168969108324228850622889671788075879044174521721106869085064986690841951911911568298036455112240133595782418740289115065845592614454494459046676440473403343267384196490369571129823593625935877456477042827834900519025378534095431679478415212115819632664736299682163240212768029809149550224504489917737656642746315404514806929892393976455973820782674663284048906671723345983724153530812189834863675249294965167198388669813082402343600261409479986813812539719097293685550829694914791488093386714138843181315489951923195724834013668756284511741410290573689122966788956860030631413133163911447446450913022095730738181941562421740654495656714926864155461964742565798380409899062968615235297188956249135784992850684948125915469983270900839111369382212601141939770297564402819509623508919433374755674836720218957314771545620728744112935948360247201008971095274221936694849130091821884097665765212701641557083300245413942856842752837798956152441097144095295100297439847034741488897888341313321442324783416085820003455317843995531388349908596127041895391151844457882727219822634175094613921766604419291384481206313010770265858170683813831093140534829249049440089398181710623830337257967991784225977855854907819773278407522176093494256890756108046833575298893700321833849083516326475857151856952045422812925288794168813896240985464392065171207401011829827600463472618185947442364264393814268149092993543537270462044056516187441017808565897353493563516490776295206325782676207678565559568942740592199347509010932255818721346948193546292552793600572890240601759071329906780535925713332053612852404703350035662559104334569797154001478230580547664766580771276041918801097003132690670545102929640990822981771931847508569304308693909917542014365260751697224957227318503523564097587730450066146175385383352062897320298199731084965674287152299962329077155443732643050953556234615158370904357862911648056538243415317559112271192529738069526072266554924864134301905748540758676928329535749355841007471996874362902614593378747236682663397027565030098608620183097726131748768673231306747547080470096835554756477960693948354410466388029785925955984520644393788932969374440742295648753450868371899657992271173424349007617038016289966371648937252653291611971369582426926210972484580219986039769055804546567025469719446699808274329008558580385745277611478325458005502843152529252738372479147372231400389539997977267329846482270170195485811180166474957758919201332442199742643521161062508011465821580154578554510435947490411352256203668024213015013531048957333424314352527057877316628234081615374207383352108647004823579462043435184974320540131563434799580135465011630985620319376262466422236093756445855631809987714006279657256631001450502010934795915844461239466271363877966378143579964706279326406510070837136730106067464835158345132025802266953231037257388285914709419059803382933695379805506163145666535781556005080782605378597679752905290488931328840443622343499760520589583227172266608337761041043931208331199186147859434291255554432323840560811774946754520325169262658405737223298948784011442965108407894141627106413076315005053805562110476177846555336931858783583403691664684108659154767153443095759907417143565477722095074215831541639731903429517520101785926029893566318320040756077493027284045406811697416000722251267152788917279220546873362862731041740387878782954843634745589048120082621845697241988871372204998053952006825551732964526632911396170854952447906001169911305183597782212093701072989220579661661345390420918434455594964856320652006555291657237267207847460432863462815628083557187882532554589049282487259061580391463660849213136096960500511394740628521289476933187515819427161317399896032883179021083631273589187153807481711040384776002692013045097706367101610655274544157985563241113889295318376826543710236362831468892314804064530697797820712643566901875778547242423045164774301055330220486781938202272346550123977041911956739753124100799337354599841302511928264413944006786546151751787341394135994297654907503667241455046465421796304426868821851858036378341527944005737657522056670268025828820896894592154560850878700233664055053108102474434594938031942781815603377237012671678624690238726568427810468499994760856930446827935025567887770518828526198258742619890720129622587463415841320600383191207914254444728970403188076089123482138030304375567111961584739231464254415150936952237871685354127761836663931309381594371309845954921298792412042939042679225286138338600095854595200338038621306845252918170940311840455099732078118781882609264731484704464771528082740198580951542018523366133274929417538700347897554931534475302101955873787416188530201718677546747667075718513438142511506341022008433330617185511605987826643152685137045290738878484597802052186965322232355039928098798567607178574275052426812578497414734555103709373213206139221876194774807885501776630713381549467932319300574088976989728279087616435583468146908192308534137767538920394281474592043682291332985866592805840741733124964766779662734240752902430028066827453084325603772830451416809979646442603952858975416285804874790681525564475462962480076810146060339692087592725301267502172007968444249233722588315579225269701753205048036651008255854381627440046724950423709999430572652635523137423304178099595394220893684595957830041683658749050895584369044809969197012388084545036383052237234343755768649402531576467559200337733813932666524229992425112335754744955377506535382456308977283473691913498153607042735465553378344175848037246350278708051776805207459350928082363303184252101212961451163794870370197403737145589139461272079433019887496763920356142583348902797908407179985227798895189250319239132340559222616857952837095807787592364185166833678457466530924468647004068337613494679794765157900039014693020829567787012260053451926849334950685829714207356100597813279769459501229229996727627986561222772416227535195160563441331344228107056229346279101706687993648023615922871797999897096285020718135179260626159013315879617012163659416356105797261674563769094156706949276574651088817521905988078730014641275815227619275072426423933204368672555005001511737704608138216461944432904620832771413733520591218280498357657542158205347574962617007841631921146394107438541908554466379160383109409101882183574260709774473499735112757518737363332232815013548691589515974608106149098816968472359585983305310021939656505055068069405655227535891109890013869436060146300583172744961586354093691710154265247013857016960791515817738109216724546267381852429417712134571389728735432131220127405069765003204996649169176259677344522078654319821344119860223171070918404530989513951675409857302824803061496244889447934718254575152777046774392870370607433898505457971712561211834440877493414851812210782288671143261084743629863579791753472058528157465589933226924243389674116663417851569040122976129235784942561223725055696893715367472337705668172529952567034169394029395393529221843624236630097197074843987883058135419194331701485475955858224749743253794471070370764849007837642610174718636542621816683871262002990801887139150452455411769263462789131476737639441088586755444039505075965050208671642861396010101090310356126303973197404592899896765769973902698094802115905334823640726041320267884826609471848671838347400355653838941184268198832904221200079477018625665067323052172337643344186365682097807545368244118051050789835194684818295403467459874655703199107845015317510820286338522785444774031069907057541270128312579698430496774601717152870289532847217059548802723205077297087254571602199707781488901360183452911944007250310894694296565510992555595487812772980094301966134732027450299411142278215012405652972186921940494702350103655621032180168821248974287949046615576816619828651061938388243131458347629825565661310212901981137211244482619512212988647111921189826455091839830171259770087095527393888156409347188278679756139125650009205299781304029992907443758100669829508038627777645842018350192371142939760536624059917602084205736715295055204098583576565133247751906429605317719936146372284509302660213099644301977677991017992538791989271590060672233138493587538790581743349744423549524968746368531627654986312458648659509103081083741294441621279686385419732536512264031301413937875260102339383944370885207856762749268397516623927456885558011058451408596456303996161130669018341469285596221129515791768739979109193331923913811142329385145015165055580885867035301483799898162964944327489276201652121084184586552820270395081474728298325406006498132856170006582740353780569252981336354679637365879218499520380351242423537314849993292714680433334887255945488178123818396237183283258252181254123302477298002435590066988454906435045379246943574172970793760883504128173546262588334674791895610096057817971623738196469380876437696223307254119345444982993399961287915987133602824553512550718461451810993716860996841160577808932504645345871401256437750816754499561124344378109753275490552764043886411966513059915606547160786653113558334148390438009254781631792379900951693684360083134104198830852768384256338857387863764716554227061196698565934317446003982049708020693449531243986825194516162079778868492307814556102542039269009496873447759161696482363322621353224524045731649696015502503758134659237004036279917662985377368374498705403287697047351915980367130236451398676557303062536916641607209133065684795146550866973384162495102301732527564274450593421658949775428201910525325482209219483262054058656611978011530680477290377802354354565237333962686966145175653725802418743546983007288268220246873378362218479340148714737746061195107095002991381915259253817528391314734331779697613353160471610523313628937051365623796066940202106315104759444720102762359591764348615915561638392158641069331272722086420042032596405954699033092016941500133980532293890233842192226709208418692272638089928823451736268288636199967348097926095652919578165152130247856433228583075760913971739892935949154199355793888498323570296088229766673622784242602814442839117652303164805968659084439719554238213632865385153795764231011065396246266864385327518835118052403921925087564904360451709651072496755238324183266042204416922013906525960041514651739709489344873298639421656582487895092219668313692148958493082221250706362970896764571337055895218053375524451611640453921227059299886825426302547605104868827818106566727989247515776571538357899054511639394843007933980754712742660271737236744745461926480249780483916427281943845334440879453298688520815186952478122928342891772764582581655449351459685791528190328671482850680258559463250748036288666102315508547252125572680381558222331797258679937750971515136281608848969992949117245916857108928031558542720743994777831423657604574619907116087866154785801277591026478448942133376999226008751905503288428688578823044664472549220467325014417638129730001360850002871262104826854004230426717870998018912270359285812780033060806426374561421790803292552250928651505791746095610235092202537223720861274730532630463172981753229019354293040844543532556133772722824268500170086996812764514980563507326833549768135973475840845665539407476875278201078289012385618204702194292108032137749366983129637921000986312199985331101671779461062355122435334618168820710494392865379655950480252205422930788923927414513084714017008631606402877615737134998773667578538453505605197426979809706469496407169250293144772448080524248299280409224259458943844037921628076281358693354232674623038245486572711038462583591858796530445152259845093028640199275628427044497341816794183133354303125925865061696953881845227938082576637529590513662542258346191060772213324201608378941651835324225297938720575357313850540641887280736796102343845018024946994136594024324004953616811365287048689254850399068981559615445847611678941541432640279115068061948657456324668174163307558545125541079434687989743073101388420205591491577198932542690912738414298500691323427708122068093762872279862690250873648647958909286182939156646326330198566247163525458438399244653190214605200063455262030398618366229154512583650620299228115390841744472471068670682702519721504239336512436106823770673748558173045794891816540613802139152540401234290128769179948858840179961446017278220760150740279785775535113643091408741295171240881812858835846649367869153842548420945096917326225418853666388409398006633668947850324598805755944236817255826227576457678323284706886229405402144905891655124085129381024546309980831469541464505924282414589049046314926994559425848107266190465509132144414471239315969849064873584550380863786929027373624322038539175411188364993336002084142897647177453538158099687563836557116383469931879848656181354602327596324706245410093874910071485339625618777779826069387727395147145493220201232225427125448022807691299441154884981884057940647864194807991618094350718955221420392892356560502108269787363351455641076764184807961390319017480754327367089371087019956824773516617611414513200541755397899498917382015640655411347105857842161815201885371773169389527540267065569846680017265019841828777080978715241411141058621642145880744674663952226712570645774957320522881588798197910563550036829622047753065466284469079632651873701376758926220129029354831065299758584597931064466078318679987515533085080656362227892681640646869347051600898883852211382765531694725695488306590138794488638285661456542980661611642163417092764048755623391427958049777670280137670336353476812770538920623032111821889435269755673637598082148287234612751490517685143549573220374279253052026848960921424838460473013011105961711076147612013402639909535173453259850294472712239797024563229348152336534591129562216524975400805631580338261478994013814869188413991099318767335939866962613896142760998099044447183495050967944276993838773898254081728395640825127823110133984309155508683552370399652934438836443404298576474079889317958124813486616027613136420562464360731604174200782916067934425359591424070540302024475592160791883867348167582073834961088222269111916571840006386702260572189798676592930253854874382940398126010802339206938220975770619723623660078722434378191143078600907669199119999276377970987618141389971399597410596638981699878884784616358222811333100405960314129275858511369957216047766846041991074593120827491870048354659347147489907617556576980225716191126554001617815836331164584205791752259056290407148823566128674019903746789763589120978156353706728943763829056644273314242181258540585351659071148961475590975540354302920321719860732963995720349148454091486244835278701186375584157174900485280977064078666607361929756863547339663055855440761388526613839266194628911797609222061623468673866313763083108740613451255954907284455826402349616146275068647797793154980570724067793093496818181152209577749576496848148500707283474471367054407236737953947276736322918352847199302819076041177147163848757410601377169880021654948152512057157381770634021537570551326880230627448722780276760102940068171956765315254789027460838924969859106799861784637388357009557653790001334811473968695461319815517971046113714061757572335732386882161011204208439311037925358662875737395563476114088156830018671703166652165066028986187025441458071612400968212869751608984889191671752664184251797685256590609322245847835146193591656559429563902145233033585845161616677246158931067334125137243472614868118550049297864088192100025526324017225473672800098073695756769929629153183261161191389857315207762628266330906309034692616184648568444854768996356271240994926663300124935047946624002666898304066637558724362220469388264773774641979299302797308233806493957918904628926927868380279086754759182225067563772635875048096940176100430036388958468226171531196906890863138592369602329577506367453443639164234888358386803311582316215658878297699422863407412551292197771701298499289652400453401983085700930329800134710048818338857522965503322437021678984717649129905219293813426316879821311574165378149514625858860976182985082525919044960906622388443521378027520130354316769011646204887026284216434524809180798454127918066256141768624280077389502407166311642192201245899921605061979584222879240964408972625748541947743834541881117540365707417737952100529041455181696847606707489806324424053311338858768887105552379450086858719862100042394553852059055126369065674312893413470738434403140149152501449910496437084047012533227533690513236193651991035499440430226587846609948489015291772834820478036797847387477186267332562094995975787062172811629252550635972949957563255159635576538570825959192931036590286700425026523611325533089904697445591152942189571035012870371588744274497874942952299208772886079113966951265395351627247124832236643229445183362768822708003418430698742551074329815738859991775750412057572807153227779448666802529371977267765098234188293881880506064286019807049976037511103172798138818447651773413701689185547174158271308296654660021022244313254190536590530488964628229708711505811430307096384523141904899504984523046707281991437342682973906777835441975205603683314483281028748705712255755435801291092483579175523466852570647495788179080128753265098041331009069235961091496841735301842563620637724799781282008089195198847670358849381038048934994313393008194154996171895371702764576845424423861345342242977038111868146315065275680802012179949270716049144232943839646050374849314643659214844381210187654935916027643371240756383287799983037171837788416073432169532958557938108389602409071329077739401251461001978046791283968303360208610346617422767455391237739796566123036004196037604751299650388358242855246585558629449146476569215146442658537189096177458560203752513292937211366366619453824968886647798227869533048837177321479588027397301376639794395920539889894171221188077945479209859182436859987777078946413844461601190552688613259520718579228710097384748870916695810798852602887459535356879451287703402212382572305332448965284036474547626648769953072946031673542305149380876203615878470262915610240400295942121377831513479791247431044054762172279831839531286830952656140831807666872643215627512238611160076963296786400127116491824553954603125127093276169487413566857607240026884959641138643101694190770274446226104506002452497974148272849945348098910310763199709405389710634196903237355393555288884267923876948374731870112765410292132553949592866333242745197673381850323227188097467013671729582203377337586409550364811423176867553369605738461661566247504757760387116084433092027058663554092885531929860159738054833286406621219517850548573284142083094630034137211737719415424746375702624256058383789731755367238852081018298082453334711287546285682319406681890315122062251881399502409007604381048111341179593654129235643286960895214164202209577788535186838801672571657663968636879833704824483727261577434347947819545132970165431476993014165681233361862035476253864377949649086546267810480729627657123491445857610384021277284909029177888822867032644516976410001172351541878606731992590766411923584574375124425822278533363892991763924512604839402329986318230686296279680819456351623620305120184446219397877214567085072265344261826504611782884208333982357603373178566868103615913855106918211203727748079624789740682380960933185323273563839158862929772661656094796821593328014004582825179743115845595819022739834771212831855644649283711362494163123176950880147495874462031819588478839057602453161894521062081119945202472386314848976955454346590795843435139126010960030449151092966078217315552036250592695146853926539765786029626175789794309994888425047924026863143807645418605814749989433910375003546633287620328280570345551935185947842366699397708952108780192015814252596409815982883523447315009301005373694943828207485751353917621396937012979873030990034562011454093344157039528125227598239191714977049505240763193968321174155180823548553289484191692833537094093553353995626236439376563671351292058543181513973715398870760614628852616095370026093497362290526964841269260350869136832013019813632811599196471922356266767314677495415743539012077298376494130883398860412785364116585735602004996184708921350075040855303255783821405598609505855581329904714804633344971092560532003136298070186197192990695915078543909815676856284258315345660745093895806370661000824760055315427297169055214939813544682116184687842688555731827769290157457728257497696122564080564377320025922535320434409374230238503394120064299496448662741156385870629866712752552038595048475853130057180923659697361334745357052985088006096053339386529782731890191393347154119889708373909910263146551817917856006278509836062906273622911000572777749285452463284538794836980003194723633908836430958314003216688722677199385702967213667400377320489814684552213051701464282652138463390749848824746188652838506391588614502530398537161917007653397178103606557591041689872462142404777347200030935700554896705223811368646288698787845899308334305735518634531512201194454154195560548152947930110748349364254886967943533903985548900780810532875015606239227792768436579816384214496749363477354647044885565612318832086524229791210519373249641644783723301497328207633455831160309776318608013314312888059758451925129198560187671373098442393539554589988579070064676505354131269908602014297960324424628563572481306108832678592836779255924577345400717820786107950487294020812961259433356165551471355589432834830696635045580458376169115227900212081686740226707601405047570191676672571132348128969649382800469990261755052469669001302174522239813308035421969792403226203586718714126271687552924211809612501618282422334521145276987355301317107308020699463391548844312941940952549654289998577727174435244499349697238042879226213971295023002407427250038883344407356510020244836096720459579167592209348289503270565869527320196164027849645688217639896848017680540895740391909240870888472213316307783663143855783869150144151031086912329212080490809928811015585014922885771473018279005055477386571147659684336935979893076043875737334525099024051741774360374521888239783197866110466373899558168859853307601758211259625541346060590636973474581092920075812606999753169875259367109417836235225017115019232201001661051576737572052261572211106055743732667164357457617599127900243134019654785327487631730216550981735506886177139736418774881790227114885150056273196669265082901181648237450301716854547120893487554655947004784333170535238726397578906991720355137899095226517034457205022061588984976889013745047579829952227961647242350282310225496006666007519624126339530705346101461374809185707622545145105038103005914149717352407758675945913671092515378094719457295379493064995502202169661766135715003130853406134321712355108178041964754165372639155850895952406697726769197156056530043747036522305932868225815596091701087201059311049021048998229116224605541092723166533959617793930828357952394459938656856010242801820504405098424869369417558749822196276290321501846723507569854813706592908918616533566330626039804064927366273847348042739540180497041075613348557631284923594834380775764517117273483286430840570296850078023983509316776975951123061791795442064534505255502245813777309149233562646305339515448539379871752023334160395472972829522958760724597726944752519109499136929406717497066038560169511220798667544198622731154637746861001604148021114168986632060134406524313665335465665177880109792270087718610361040434512292603575021807444241807919617077690763289541392341727422442338167941330365311768874157249973213431680217523444784095023990321813248790590190192175351996956397980604341673511423442945011767173754475066147750106395599236946206908554074757664059332877810977476718726099989232065341750829031578192887834784290413088406836506857820395231121619842886938071653328129042203423340844182208742349960881765808172519636071804517685035833317586505097159560595459514112486721232722017378083794441847902449797515312525903434800497334634660543830778243433820125149672035988499476695885399468958358546486335694064435897546353963904622888880630407459164022203790370914991315284684067971396279096505831933496127297302747858246741610542235645792979167911566697809724879442615451431038481855636880126467674267457456518244914974561493537038615380799687812540725898764166090837269500860971128154947494634077472518114078528741698940995591650251521486677340072718380584448504577035606397775934261129297645172685608888872916995555979991545462659737625773492927050684190998341342328817486767311926472212868165421429913180255897035982328917247138291043341377995880983855857096599031357738803284518345530677442926857316198227235388007874866131765792402188356138946923294060432278196521445273586781540377322598585115728671456880779128266165885492157110916472795560251755023026143179971569382745488924960042048490103627009238869740160724745892244742312487301907972009796761949066692186790816569266675761190342857923876957464853627961662174764432362060383398439041226027552276787963798252649647502960966254378292748063654106205882004932888201831683438341620502155386247902293239273791455052168349800103412207813822328067787433718966898532710558668240341668860557071702056633186499849510480576137633243542156929234531732584936442703842510521686750282255801014393120990308436193161032440192321052240223646930623884546697051742725643338110007430464371030604180718322145773307087061788298610508098397388776928402339741903732373759209892299847378032965740676612363282120269774032025196921164227845135233815396762621562775816177225676661737948457426573996309407896360762432653484932475498450422682139995698531980202748810432516311681973192920861809600082871341119547958915456449006643161120310509679107702362195487548097154574530211018392084274096056402718005257658729257621716128192922785673992846316190742787749757259993311288794126126594406214709958640752450065174836029511541120788092456748400966003624079567357181936987895565703000323444895470873841129358960731511111983109509298773375910389991489539194740041723483901708537284887038666325364957725415835802207441296937801452441626817128396891033178203121124991538611685536206444862577262878530732195592526987621838837710095529229607436210092662759627122142213358843663534982725471450009453945005391760556360880479911372371456005170432439205384930003216161128181712682141229237606200489034956629749695260052899421816660350184173876687339495081140678216135219617840136857523821854061064408183585097557623906132908588178796278529415610222580721241704778539279627003662721874960057934896779677302035035852029713696232681402392634669223601874752434596609951630547070844133738347357009145031762400906532462672769122009331105454423139677971789850569463023142015992291130951353051804225718874005936785855506994397245274240133059807776073663344968735962127153089170151219338270792688186349819431987295859496265573008708945805873294200043195900661503704206276007335878434339833917840266133806098747779672535378448836455482064326672144530944291329653203507360048540185163418479793850968839026309084649804574589637744791107431643485514538621703263535013319250913623377150368386440681166945864459386826905952133940991918173000290366292361874503595859969778246971125400688025819106805715415678061765120158987824402251523117504812151421561805040908641773353806328773234203310904724593196915428132681454896844807939188603981032186654657076482944796408106369945059448818514999510836223570915387941062957250937673477060178585087056613961666980066969646019497558381572042192253253002423155811656365572455309462694267869875073415214641656953587772395800110476427698698814862665351487494836790256660931378942975103070462608089152667181964312113866975855420818626447740775504764901394005069829891594026532759449837937643380582768462629111873411173027624201555889456933009925922398944677377552524274786550761662489710806387268905246827191332936279320896728322591585512923362868457939041008369510243024456630311040044514267729341730052353392413515679273496213360970690701391235856402913196520707338542993630053251271328443711349378953457050549692057485476753105201276760114501175587724062339408599999669698722065644801663477331633435379078910321052282968986906096066727925524233076211175050245359125590178652198954607843149772090923832322355073062158802821947692678260415320495429122374176684908707954487192623266694285415676182691848377674353776864254485074004365286159422452081942518278607785238736607374568065886068303504204796360218431095733919766027787678937228501736517516537084952493739007776833564966011853564458022615517735995240210988033011613402805486788355299012206116185902141814532597429508166165979308263754508758025880888047542318106016362408829712596981764480399323170866662304298604041988653813755775921698129166371348684613363413755980236168541424271007131008611217258823585827881117086416676708966259725899461728122193824082700387768791436079375168284327972687931441274175185936954590888244550102218111059843892724169811839551337856652413508840655193823573169435448127713747148711567012317431267711041585660449196791830534363532542116863579673199997536601864659985858400584901494328012910463088891902434021891368574338356288652998360874365775632298390238105974793869650065192846308141625443270062146670970649405209869722466297296741328120837866116519134868777392371367749435141542749325358784481534642385897660406248363173546448291037430205148324744866062049165326448511710175534744998910116707745728803136222328431641800426885080145753378025140921149342289674835296914974546616650083958052877641997774374206034165403554287933726454800063288398462313632609564193061782414050487334883705345482423627098923032743357684570522455690220232761374708387412386801857852902902504548520854004803375563653828051513265283175127048147717461396898942945356515564588870978973556274988903619133345749514290364118853490311261585167645112551280591287974131411957925763972368883936156396075233428458295807353365846217577780061127032297072115994810237733530167889480956033436597345080757199487119394092038822955936285017548255410956817815489410893094102892950512106576265090211690245146504143807933400400293360932286471761150102286211451875120991318826861151585321123516629052069024382070549935804065265991227750862507608151210644757347656400270073085433973895376934077839604897257899772365051488357185176862987219141359454167562249363145478642781779776897893352043632962068211511951536622006039651568374676184845599775965712218189936056808353425512875281910095609931623535465933276814889809504544693026169127191236534200333626796388791127539682466379284589680958281827995973185575613486367281301592024866102489667950124797882125242394388352416800214809834894314303856136619157604595415451671266539196381600033321696071848841939822270529752680943921137789267312031231474111657610827367337537761009452086478193037621863222829852068232070106748516246032066747682986768544397784224175471585248797060559554016086944311061153241083264332194378657100923776774777535744123065577795359489624961048720620697177176648651835318151829180105497283607182603070097914067548379503439033701194683242511989354348042835730115639402307961618051127463240285130632560248703567811706292592171610070169595876467176394818188862231901452403763161699756469957859326014477172851306830535182049597459329580973854304347990902122424313144133418447433427731356359372660067815502514432506165205489035791079085448538718933154675427169159798245577877996494550381532971650488896792281914956868513480070781517529136454605546859443942011152245296592792374920502094217792804715241190581478309828568556314155915572805995884791372536219247755245795946916617745361393280823858333610676563510947886954259154081313961998195235061896639542269922726063735190055297936777894347760144342803019578956718461542541793373779299801384825893109842098070412982688062192217464117727352984646516380078995711824038048105844865574816020071483091812467312613230685496391763672972364186951494071897598195208313213968787321709324482837229421855790441165794960513801679607192391090334192013239868025575633274148950545576068814279982630233789755976460789937784483465487075223722587569462632280704177306440261915374450430566018067072585371361865866835518380530226240116257070742819464946541901228939782988572306441971840870440056263139326877572584480699892567644499250752466513044227706082937120032239523811493281424081567681199112792077200236000771559482181929000732613775851828057845997338956233548536089121975968699969144945038713790276361556793321209709381075739228768359099984065436753119005162719329410419723140276203949544835588400319624617057427210778692906495166659777360737837472451272011311867998471878400380939842183972921186740718950534273397156983214470979663787681779306761544886919409325626159937145086269198363119137590358916849938974464248006651657478573255532477565722358380405061909809550263377610743587006892240933843786396550926141757596886746582216309772527639671502571747749100892988999370018362808601035466665226270244341009426057844940962198211931778711671914451797168402396263269855400834478935664940876590948744097815094097209085298946376499508870785270875455366448998672069312303453388788909640935119970166986976782061862393942323167259309817917198317951310882739773070625948193928086762306988310397230261114777424486831271140351787703703137636562361874684228706262892714556310234190922184114520711201670029370106082410581268422755803133071548233395722123182424463107098451704616494118067878011418068820857297919061455617063807701488730257087815541935740605018018557567508845512594659236643056469919078177604200384490536034870002753527104722068590836915857549982392560302584996715050056902160615962951769222154746090700968240991932573202611587739563917199221245903900696448973175286960110829474984234946766078648765601085699546090835004411028124479924998161366703245992004294827661578347373555499342594257302866903753951010417168922857979859830361638146333531398047067022911940439237785984307224914461562671569577225465993526647893903890590673391020650937692405292260299913789813135870702031880645982947330181541562025783659336060663478868231805854773371770116731959218883871665635845671669292810407548909067488513866022559888819683239953249486012847825804236319291537383614135226698601945110364870346600057824860383008719609243980048198914612634161386764605950887081263540414435225737245266520131087005135985245913342703235773548836653317135647568815860875036385118928568290921835952262053523206261721515656642328885710902488811357198741235961951814393366922384674285626730949416855045971521846684153429818563071043555606312320406777422836586864796447765618362846207455012122017578846497391334318267160024727830418358966441887667959386795924022277541670896773147788957350173537018648470775902315812209781666392267421078042424393025113123043456283970724189720035275845313744840566854303419884911032543565719464633702198528761608150893938104880437284468578566649380095032448671706665601449137560345714208735270944713689220435482430706699185607226273446910695773301479515733464483705407495718460185818745678233775046675874979878843208753062888273065841394242020892857931519986504568018918218306244921894796903620120395732201719836352263263094493858894594516464014076721631689468029620800194160071166896719004624803570686744131975109786521710992622584847866714004010998548947494174020664712613525125781920040893363743648884566767333927985227540625750789727763624396943506783078217758004134727720350214960006011209385938739275950301548678502345514725964074007912919036934830402088919024974432362752336794458596544531382810258016808685151530399582892019181006931528894459051451294522793625738955225074849483854840471452520177056947244430542077184441631600672545633096811275536407574750618577208440657782525278199862025554612569047133626278177354626921047180593680113425840586415387675036964939569829279617490918003264858986161297545966630106130140981389577205256138542581242957789276250921335999882250584833049651378579157647845134818625928782343672459002232844959690334687501201438828313108333755667347109238785836870510794565186684967713900663851424309424518538403220362785527995672196198689841192579840581787126883033913587150126003462486929343014241170377048667201795882515589421309652716759486454617807905622532628656897750370736587179364504827901202627999010987124630960660377324224679969136545985723831797952292190222088963800977861212252964938053639624860928909551273224466344280125497664717474580677516567141897388739797148907729474425041417944076048762178295879738425696038583906186525736706974149449534644853334435779247212153274118846574803587676124110689307445178229543944820013860867932532829346567782849157220832988097229480119605459597208689506538613511229143261911153683217098302974945303869366556006949704275768885002659995381287925300361768833263099285767348936747872532764003094211910091827563568246746093013925127045088106947191511715454156254000995785404023906656717665467958083865305039232511438612631149120222066368084212720993776560135630386516225570634753630832119162957727936624181476870312791148269499579693487297824164449784557996714728057463547839428412545986395114271550120324497104929850236627516349524104154961592239961594104648613516562039104499195582802851477301144091979893495698105588664793299985854792854601178725600757691422253626358929073036310964685654810348618442853141388944307282450687535759443727381200949856156106615509044716912067763674383755385352344164345151092297507514099676650964742948066933603124223860476079487894117255951401796839236740186740976733830942900242838314816024790280991496501057175983817418417623224388154637354106711946706941358929226223380633712210152354532730093054718727103691696708390616503067951407631499181724495635759345709767521062780685530063162390292706887095394041273345730734005417863080994375872437230711296967752482372555974919680549053530248807722186010417079401874882523069260305455879006399172420855145307741569918545320501710696487895022512977161246549611550476221690545642412313315458483025496635114076622506620749528784902606499597173456096230763496169227016172223514409642020459555385707715633954700717030352599900640695990714541579622112596913829433369786103747677845089756935647827978777994229277794198009185536057780431086425125797922795739342119794617950094049949679037476408282002666586108806953830525792878629944881465032029462442096848218551335590763080323388111150479728561704727962190315614888425197738394519809235233192403289480801569251318716200740166621025167557177443123552928208176995917139842303863932033588825158893544248506164966269492164231226883256914872273960903139014589201777225313948139111055638584116595746926814021681587567376176764085442740474489214784731082325211837095651327686358821995569810598379054630193023203976741457976690013426682760954794862754463323716970521105035121996098958706223917396512846279253103043381514214461895345682812358450258642939137675454264141510222530657880506935488135030813225717463301109717853659088527499959426753326731192493355795874002748973093008957342819406946414018017173460699753988762848636200667334926613851436771773163372951671888040328397875690585368938980304986866728046112648673213386179528368729588766964218169159772944048929303960503263108157785058160883169196066564368873307315127103995115424551718155454182762455828987690888964544769132213898103275259445435706660624270130388572849528471674460577273513408422912156429224730239694637451894261535537892880300132113320604120502616097083905771757455350558140256412072809899773116721434808059735108632847816946471059871866643489370346676421611298647787537756688424298012168512252214359336933037330018405786633355863924351559461923321038414369668710498066230955156002989895962220078663794426559612430083250978903784346757751256844350884511153815394428886295514771799286911819020245158310792872066688132851027989757383915880171791774575365432153398366001652807181912365321359921283913647465362409726299584827618325916027892368903580266076340476016459840147282581131158087335983056186168710071455470489788840842432820851397943793313724175221583286101792713632678070459059085808317945902781243170102389026733311449429679934533172618221254133859589363701481382199894648568915955278681242001509629858504142865786098034748628453356758841746751196432751945245178012570561661066933036335932227066502605326169928917284423941462929448009985361755100477952636603334093335643258257633249644787274430614467316962844986352741002247989868481122370200600292626903985253202514255372558407981142813579907050779053229037396055595513804621118118051462155924875891492871197195426850207770394302325461951965187670387008326520174107653889177486299452503864077769999213358028940011978924036916216552667936315111205964503821115212392897234492690568604278789018033031740374782360471076076521395077585882002793407180506692029670502956001648693472759589499451067217641962161162166841629507841705168312279314273581860685729898142747065246623775753532824449095671136338999306459955322711228868963081149300451043685584498048743667883266631332905565041737408639384801899705953490247868564235367613115450633712966178603387104331632001173705764134598421217319365524278916875240502381871631058546491035664555980712331110984964701936406581183150502514563607171765245191636337947901652170600215540338774116578930452788879723402776856283690479000711503287209702522746603818006928393728708966816201046996994858658861325885647589794201572161586658292694977046425036997476977530470876449431008154283199302549538842796384261429928859701998484866181386400417587923333858867096458500282055361810617616333290914356925292573582002671583535999594326654639457445067996234141822490152479834616139034782863276613887813407153929452898610632380315032003756947231486636358586058775010045856496287403842674642196683105840491529745781184764152511999691896274091024250953300605911582884142000136767952572571999973135185139465334332392012302360243918358805002228971707827742084939525750988973272259199070159483776560556226720660941372341232589932596804109026715764552644911961821845723302167798017926793703037839222285600857881888787401732110549614371703800600182887656638239306461983661024040523188336252637253794825578375725034870795110781590515068719479343015434978966322430089234687827127982124135209824794369537120967999070218206884236840948201687130904629697157762456407422144220562929613219561457996286675858725601594171393725995511669244041671405041546199984816157616203154551938389982330127056081063024974331262430108765215730171074655979175203844308814451266523671130381452119004158070108190498229947149092646857482630881344789636128173187872275176855303963608842011554160769507037575360998002199361271795230584264486053952229728500152326679108532614390678450682266494382787129417288810158756204180658749514937116778089502687513921295363470614333280159602362371442159804334707649863583739731304683616174799288013924212545122228779527215015487260695789048548917339288092091158183565389639926706943839361661509236808357348369678707611918103403254749036582079210047511666869771788716890460435459771823883711085241739974463656969969021416926414622913246883165915786985385226702574231241423504331065574657646786844565078609570616751113778794697423553764605759612239909990128518849008475304235671860821651681643482848261587199093443482320066139405109746338204177607689240180746133286521136473203111975504984716060240084034522537201368587767506945717391959838595417617079957600239135099755969609531366661309349737357656381907766435162368015793646811854984829339828850784625463951580635844269303894652164684114600368139789885231444523302453046598692223464411737806617672116204574754234479739851946442021935979578366479277265765366144893639935407082517690555833062282843898637586012623257049489393940544151078765168584409665705172543910825470700685820885669064855059690142616417410817265909946497471730349716804933365556797820679725275274120390390170112918115752741478905584363242340847779853315801799957839906341866855273790996137416074068518352120045447655815911086930019897398714099128061961918537112851045187135947398650845002549873685483219462967187559003887772769290958748886468224250422117186591084154245050752709705040211172655963604313830240416043189585767145726688835850935095268586347421286260466897545239239508565424007441108400272951974285097832736252332695922072575241604605490646014468093537564364839732497768510848821236785396450585758579354586825440754002428631972772160249500139723917513494451453489310590388896733406198775694257955774436012484222113069832384341241296514393265576325623478240995755522094006990439894144949232406510890281110452371702242724419167656976896999360343843257912487412575941122717904913435207624829196450344876931187375262388407009762991235343322641537722141811860719020610864852926826254578696477891562492710663533935612890346274705377240480269871982529202427225841015615249135838136300359905993622227064097872380375756859859800015038327762771634541619823627920501106019361042875556680283531467329137769157246863491727270304777028335862879189188064396976457721104649766169786443780159255669096989373648888196113655740573344605128165642046538697908325465868115020023676142811862891335050082524116810241658106347936233146682301934216904820468108393220830480798698641382343242736099572122833148071898874589463835958702065788187090630063683076330945037293431142317304546559043633831145144240757099892431489225339048506287446231349924660416002741003423219388414107587156726586548659143495437456651687842758591840323875982347205779693130004781296055552910528743512821279340508362854898034585455441745759157242666582708816692850798438957360661974385528056947431535636678479530083300341739579555092479893729957630986162406812333525519203630430136733279357073148828898760605555071717523263240790851566692038388268957303248600422145982600917270528723004923736763470224116599110820465076098681306266892428208736829132358873020394660165514808228822170730964286944045768124789867397896417386304679647249797409771006982797799562285704756303665563730759022262804004849784350282367127494030233217971183509773587640007705924821169258173876620637101312759638999700781525945723346717793081465750981468628256721476030522003608023783620031377158568262502353067968497287277396611452358734051794377892660573851512606452021824262878168377382251830867244304809236157630440629414017303162441395481895443284261038134653059208748774791264049162115385126008515268931661304348387794530921486637231534392924730308252465562334574697377832084932358651340346238082827953173384581071946921919122370024610098235754452316526022984506113790948328058502225435199653352004866457892619082835833247344516232768282681442920052803638509432471012653023489452869480017623494056936107152220243832073950993461392143606906367001912579139533989443495521370556612238478092158034846917418508022876162103866584585882231638050334684284947626001982662961469032565810208610602360659997245755815739026608582087698083458169656573014817171997576038905111103070768832387803707520900394861376477028709907546348544213781863486890120436593512211211092394501679223568157576713821438139051881065401323314794907568364859129686826775630054325186627014041654184191481306413474546886734285924977368851863691794009107766299143382234145531354986458863972212198839821409156554679228283770805659508404565240889427667494124147901909337356411248275974454662483586358606270492200337042252660056430748786077681583029395729769200516726428607102156964927203974635991147391850908920064903210277191891130334347377803975663501789665922932927366246675819011896102541474079752839790901647231384613691609997946865619512165778142702396168384240372307727473445737424132706767747628883538219518732537625847813038146818699641968228016870132956687174259571228610191442077144794140370285592150889437811724794895532638856103717414369855544244391070605152529555470356421786886846055124606743894520601541731130426924336285739890323834558807430828387661699895934448669905199092192825992009880896119534504636597190205107232828276979882039151399411794794477920881264304525271508620171457016598374024278508802326330646127609091132511659967921455800691982306889570538718190446528497946191727436981310370651691492218690100238372372788126617114277080965082424082814856920382394945244123915707061027192191022912576889443963169642234123192026288185876722308979425083660275039375895627374529636210710687539388185163927306064411581042008027696278640529062064400453495927302599893184453673408389112949219059697333652800081106710039348322707897698627314058101958520703909369801776047454257545769974960779199920900257335558138649513539797757399886862033817444634183808205882757491674882227708067284284284616401687780197727009390390762189682392043135928738704546152520314254049750888337401480540596412267959662273274044706120309637890706611177433107304251609640226525850256209181460401035739453204126732614779660798296028740844784627432594372558392859704874823058656086102918868482605187732683332397308402534593318173482998783494778570879136571736229791870891960170221528667043789219713123372509585107499209547896064835302533032724783660287527532738951854106778080656563837989579229741012057159604574023514348587038408131284305020961758677091989862053851676079803600306179209400692785533886374128107371939613558387481922590249555892321560081168287839669810420940011439338643793046866032445727714736187875267863640840595114866293891859979090469431066601749293430497738781767245672759463467631809348746655885935095410803358235493376949228344369101616575593447327526107557207320397486152860044920296301110858922705392102167733129867604324623865670683544749800744861346719081089406941578670121176666563537302182613993982394840922817965420651688812114522541892846451711437475447743141754957539244488714958968469422761413430038474936630605185744746485254925626022350862288920654661673878048767022611002617591651775930719206418049769723276687484902701121770616133157493855751602675519739612853448271214493098094424172976840247138562159625709711365219025468531019292762626296325618220101024517614756547129835859389007898155850263221945746046169960328348083907974654636422490797294805728417249494190650812840274226896085261291302150919302687009688101350168741429332197438268377576091952720628876754360995415549804856977507575410152490249174896375358536754455606542618535170735950937479131008169590094546527850606768218589894034253584054198355206411081161257134739912173489805997073091313863547158680458717625306160714691370926891261384318128495501116988999675185782368852914397549823379849452719777832583972108117516195601592102802180569172901927867156216505550937594853174562239875058367992197154332784965002849568325737415216254610377536065318601439788509007228477607182152269973231346245640608758673639487787527566399664348951236539324649701471436382414107741989503316976093255225052071649389474547202877897687575577781439881742736574262495699594036739415381792998123626211522249214242287035817387873488062608248884386475551288878578530632753035726087564413895024303721625630896969941787799106681039755064336874753716131195192319793559210009228117408127150146500032729273392701007229775897413924892874423827643378812674038777396216443256493683813917739843316001987667578495865639422630788465866560445578647175751664597520501822228375625963192180786609493013109677152319894527016915265376379025690126393373414718377442095254761835850541430331551173978210336843145954253123684166947588667965390130605766044858744268670391027228578163951347912341705557465931353129907953432337008968305812107161716358158254566976128467833060230097401905700607769568931444943819456415918889419406123547474115044826440442893914628266400561130340768796634015114674543219482440820453391136119343454082763242692399067835601942506560515725955673232136469596840172756027626004788972291670566795943100282137114222096452873350216227850850568746283301517811532260813065501452598431663126302644794370482180158700304011904347525237625907412944692752505464890480719636321024409125387845855676207222945003999407770652855746972503466972950140757854497324054241483735360174031558091640086557395602256514395656638555471961904599527513840438618868187752573340808967328606933999933837067125436255506577087692992503162696119140756399725667306351278920732866226924599275745479310389668311075858309978185320686318429469429480922980703781106447069155079371304686428255143035203591108806717967137451216962639438483821766826493573102931487039030598155517291679471845898113080901612456898631055381120308059656096084330555180789222164445531787293453715969139027544094147108127853431933111516222180535263398211142073474883648010260714288869825440344527216514477446703740165974955944851513111242730935568587459726817839048117437443633576619189427221083754214045389695356087312215611760665539930448054184989454373605092118217602823100314321856861594420033482497297727741215523619392325638417041401475430270628671854449743420635131810072618442174538761045143347345365869080442749663145122564509940292908969166179570746654999234256556305702302658196548278148795545975108802325725610403651991799860297322773155265586319092718415181679717581597215279366847233993653265796477182536506131260678299526854041238000572014929328728543847544695773797030980063672638942558502034710157506473567922727502380930299223462104010210673300567144676096852960058036437634697428242193936956297230734765751407822756178878333229948136227331328668357818495233467692230287422550800282963550034518040962167106591056696208445736903746360563634898106144033660528030011724692974337351936186439188863553811317582664427425545723669272786382256046937466284869536405618765011830385094012635933540772579564188594636416889369370726966819801491824160370599078613044689555466047403930295898579412794070308363762454599276812235920334280762965547179733220608983830944315246838280251244990234704974371591973205659953343138233693262406871735923602443360741540051283711875807755490682952605072851986208507993083103075487216807260597410723630862928643555740242465651148613347769800202014307336945548818427152315992925024573906004893060788544208205104138787612713696036771571608091604318270024252630975050742790809549149201343053280554757952270600830278275097315684406149838282915162106802806562409843589976701058697628817504504349520909024332902777881511764905470405076339157176408768562418982510154301691642073530944596345583629893363961619659066076811039292101136702082260992701597121586498951830946066691493642564694250048501274082518343181024415011096549432130472760534837910259717880285549976748076548875034232021564346648055873592458405819765607229280554417243602420923614031573392253037698345546139771247001456901221586363120630148018146719369423167641403862565812286568351738904832214524888392775661886518684281537013759033859690224278559487387759695484431859221187374653376966957325369411378256515965209924401984941572558256714736915250507390805855591547577168783875693460714782534836946275721019340625345398355583689287668807658947911354219599774043461876645779034343826825461944715723766196248594879302439415994745037101897170973420933343342282727767542169205997602283054879315045013849257258215958226495746677946033998249815623742560405621674989508185786222140788726087344935526306804850532970198795931238806050792099214918406953818647619341252518990083718038541712794341752892921889641147751720279249604602913739658094543630062128101217684664026236042281930978433498552314730779208849100182097131782225594693035344363070048299094377321506709054302930074234732353863962552534859131885997511134312139860699946956094373761840114383734700844532088938291617008071950523752879834661624647126670168036290193897314207844393298195728006121046286223619699989677144036036265467016157422990979524389403642695170271547683280473382561126920621147943539961737912470865315812331675241259863278692307739040767549729611997620159843493290693322022947336003250982367120150714537904706695003899824992237906292397117498092566807302188234488596400218049123886496656486712777666787713059222469422561004826977730098700911495464838266638363730199188297253588406116814968950011077329706899844274169035930091668027587736921154454606980149447677859788266535793209700715541305551688112531995339655373330470773227913673540868477217232435732584553726727040293688160430999991638315039999042748513836603880971846467687867816501482689384641483721759626939193168554413662345770541705348345666832625907487738249267431695930442100254991086909377329643080221210272757907079668775521874189703678964198144952070616554846293399826587537752767254002385259437803608735965642157348230078659026690598712093938366920139232914621710376158444842468268584159605841558431225848557447247445850557128730991244344912905827590250678171261025983109095383493793974045781354255083116217106804591754187654770883936540119736108423215791040864239169942007354890204838364606738035958829410788203846391866937452629672819378841805886201006034525204366552049227793283748996003897948973774694229286169220559590035712042882230879345821006092909420607358369528632400260951287216268134540809935304625090066554731630079267691127036998798173317077924672825850384486838876940868705166826191384150286580618289248696379861557387924589345799384649215112953467639730346423288070087141411189324722240890402273445086173420621164285566417677308332129571064540997117071445129318499410338340429006349850781452995501251083635235209272202989583057982226454284733390555468610104192136058907766802405585671754377555673370840460201846010716547627705605017538580785604194133973896008644600154842749845839602404439733387937734923270920773417079545513012410775984111999290252070053536778110087193699056524585026802347610248308632228720682829388766918028376558214458718925470582943431616350278831769828094446079241741767536283509497158300726529402421840653072223188267990898585412052807210461110803292367955175670097642077204768164332312498953641039760590590170504621721499779444039751963698502844109497032328671945503636384467267277978424672274867957723202156885090157917021483231869254711851806865068538819237620289606598715569549983242840336272652628872302765556218736867251922261586214679044007791163145651148245096898706132248772967637332933270515849501484425855116318312166503235842032140356801746899286817531496835636154610403894839437361868803341277319467574211522124325144244560272225371331637998474844113991294704242255725438411840869214542191500493946264030318899662119862906476152732729220320166466110040667029888621189507844466150475246458695892216898856512405987390972318673199959664094273218536202620956550338770418622248252665016540387503848969128678442780116570187869566743992270319357029238204499274723269510280077260213343390148096305382529102378512216317648482722778683764937883764789007348646712951545483673393959481148453990173586112787085026385717227619280270345257859005763689473584190843311177402022817064180054580932785416839505605053017712339913289671511253589997260308847371222928331312171205067563821968243175141049207706210203547793704644821482740083698526259814753491759385750022482282725463933276636301522704720587173277524995211527395174814386049729653268151577294889438805876171397231999309777666817286700490424315028405915107496299469004661478272576263543543552435739728958586893135172153582994439134643441930401422243609167078496847090174881943786182547596413162151072635147474247670861071190679260162485935127473354048513622157672908360090715968866735419480490454684649539084897826999445450349395754908485456525754496563153079972984018262957101601390028014751579962479862961489098544608524196981783143686770468781276409216891225594199596651430525552842404353308435288536630115168652249798587318643039796735888253823310138877167205670738610654718203832346751709431363579214329465517446754206250748916041158932509636848973971992500028187410096108678171226980853200944693981413411584336383823921897404376133101945464374423429765805100819174715081279483258467091969124664925786527209228993744412124712216233188126656024988249935641499077850393211918806990431053179289927727110405226380723685713810294461771893137293481929990001009708862230609128911742274973442717022063078878770848597731204387671765356500107981887535333583221424968008836589578145638199135687434185932373051443035684309364899829193894701496365817904769999468191425298213313700450601522260832723332191355465839796734462662724831845279901971944233001418753806334960005437529707936142448051869996635843183898640016786787241271899807159289702198170839831536933012318795151996047262948723105054982463965503524485405751635289564443440630253966599298601592391085804766109608639158171652414125389024468977469476882301330175077571613065810286803590071861613368480048306255452613337540613679970986018340489178487053916989566689752916960653665501571703432684730121833802006354102177778047261461267352868240463883770440347992994842563626710534640123550022182848090555446062497413055150440458463716725556519297832699683278661466805114838170421836060318286570213606185320671566314753741911876139657327122790587313453324019350088654714425586443933220188794273541563429065445509597228580651132497314462444050451520340472739795281590031071190345521376220323696376246985092978083485004724038923250587331824392944647895474847725085764316074788321129320301954586989155421915603679071876535104892135569302693133630771281949678525045805818981081040019476094478368745763899844917266377372804742901024470984162539547876838236993784445814514665222949209455135296729504814713900169907946806906737492599481747205202664929410269481593643434371130024497488896124761925623707846461786270028362784975420515517055082262154969867246908397697934233909292174448285821176222857853448556716090242692724066856795888131356828638445629083770360605684576542449627075881574705132767413396164514558224224719662915986045059694061947028165850555032452782458477285355745272040122454717602892888312321149962669128388118490688553098994553832295801926852691444524419327306915660119440812096417630103226688641127636320767064267555067311495821768227608717454545830445458127428745225086768441725521776600105417964490630209809192630877629995368356322598082566577151696271339044709065938701038563336446336483144768000293968713066567115508693414318491366967939812937722058451088309889619378433591105297620680609248588000133767750125786770448627640431352215891130479049220357741001504610975570329871998114128182361243457697953773233343986108611552796987675565049075375959354947257963589597082368691631313370712664339384619132943330620696390526459388301088320198326882027244255862004492116294233199790987408810764935875795627569505607994578774751843604563659238637468628417156365250883017038281778366708987080206425193244185706153369518722686879996941132039000145024115027793355198651116656009792922445658089878099865686195813447901562469214048282461173305492117304581907796412970448785687635664808281120761252684136179795109075852601499554575642092314063319744381488851240603888515908167247416044550130899158695642961642684345244966037545926359764515500382026516103442022405797127527413671753956868703736666525227456763327837986418394476737458197597435595606704921064336695914297529691660449150951227001509890688095406985423139715737100233629742427492074835501959790820536783551393003263963169276614762641088064957006096851235401275765967775894069699989687221466383201940748288520800808233681994803932459879546372016223240482580854057234456077113474946799881644896027870100973496289596148160690073460718491114956571264971322910239117446183543474357153030833083077691895788566138351326561473231317257747368528406353013595140687913920595180401156057329228178247904113119761352825450412347382957031089638831870304160279161642484586884151163048632523908049678667108221738546475927199829824280440299020082787519073088128034772586793113196303793492211900303010150259574709430166852353067954953834076860455359832670303022056518767265776725475955702206917668420948878289177317713534309255919212003313892652087830336414133392840524916885175798283503905708419989670048645249458125798089382280463937865965487067179107315301906861153029049937617207751651957565175848743027527729037719462348106665010119868788942827735627391921141853537338350382031626898866913950512239000899022363381753063378142644868699498186717350714096981723656497716575646894087481521118435909367890956529818862469930060718808623960848139779907468026877820078192696347698996517500653019954384688749865276109065826067220292888121381334376549199801852182693287209140446263591544958910892280161323219370976435173370691597002986526291723382280359924426440856191085354535781911836262339762396450882718924826621171630391265336774350667403426475850618193901483538677556610918631108574156005622488298699091093473110508226113252838656868160181702975955529166496774682437722015005222270931267687323707392564320413817288215146296778972603999300637172207098909242463488736400740988051033328349879914850253651801695001136740347637964333322309540619125370674973538149834852412975173241209617075943623235195773438926658211211482702822092727078314767749496844063893813587219403800427434363799647383898017684421658432017594244914025542412471185613349412537247676023499461387187210247049825301313606354047767897400513194597905089914866924994221855931590988440195593681499369053553387167089218781320709313191618018628243904494300726029082086144291629632015814640427202620089090987965098257286883028645729603518709820296012966366841080245925903928959303041465776654309771849645449489529928927724090225407443861742968099269669936495182190799729111313956564153946216693909310781761251737422605802416433889527259364397137185706676834283144956025369918856674476682240667249005193867208979224187589001339820142587215600286828078294956954404019465339646272951299698546290346012814019996007867324727950137290670051905584641658880400273365562536219743441823185747732881458496156493572954538772892925593036914051996259100812700386826509636441533499741053640064733814254339861989836209908174863538572247706803945784863948765140763347263412713227247407086788129622272477039919320139646040906075853149974865075578237109145383098576705495590652472142268073192866660364634019413490817638027847459199887306219660876529338422729852215545519188484460782700242462032543036092643391568093913226333286411634254834029250170549107562760709566179097101933584389632783042510266665715275309184285802082281851790192584584754258622182872377967521029640834469416363541185990894065303363803799034667759052532490274299196063031715109978717361476922241409218232096519944592068853546303309860536238213034295791641152693314351692057286270226881929996096974321898014741167345889104294802266491725598112075604543801959653591130855721477675622164877086001169623453463985355972434028019697150764763340258208224068718373248165354488849572471374084069440018380549970479568268646599529785196619399126921784690901708295205824507057309973743354540084915826288896507217059378288363945289612538341308996203902046168263156461700955117142273273933895366695252773878461155808292824755778075651179994448280358166101061588058931778446076832566400969617868816618951142790223399331144836536708062717771771381960975254145018043823372810739252330284329884379131455474305256138421524066946482802689657182442681773811974712746818137435500659649147413693771227914650604915373123072816174605779943401212674884646406987152019351763127815526470021771579393891556628451103677106413461055009691812150706682186925669665315096710332923725201222376592170999276585331401936794010966845715941426684011480617298763205392256785385003564043855948673462725957783249464764304786465101898791973739216104888976434456169280317153255657076243409480680497184142783695614377200357728944513107900292669729705438186210387296652367986269232352797229767418551940090832033006847941005118667597909122985439944121143683125150586915445522993381198599364510322138639771178032356104830566912891967917028647944137712550736627755695122753055767636397181935450692810275455380648449135688069229626930129419217517025436636111077837639597166647702848648933137620324670031390109576812239972738570534990811547963343943980242099339059235133462249499148185662743605580743715740330059502580787997980845171613402016588479864633226218682805364197755890258462122413046694057090139423214774490376885725279167789508919388819619794840644973168552090642160967117511585928270349551332432642509669618156776413640892062265981214571314049537536079394661052053586228533934698529058378783753415728722791449758047328404901371245398786429369505305965992095793639347845091871567821771341220094952904897252276536939401922630939682906162028557924218403188263059976724598161949591959339134641232405582677352357403608842493210337029850815321269346574827042973736855065227824561674408413268528710850130004273164050780523162255618480826409722856662559397544852869336188977885181586543300422812684240967955787276601157040207329184823816416077328288395686044386164401033685811485113333712780791367819700346466433883673872837280907200652785365235110983647510583890907112763968679151258204152313472591087718592663527542630520433239266878166801843758129349103885403137436506648104907811595729409396931495914911910265072420061978943102756086316141589134874147345201264472101269214445319000500101132203078142722893589095079380774021329046313215829880454259049671064601741585837676347741058279136777771880698667475814036077787860165868128575330856974048197813955381353341317858389864485484951728406030118583715838425282625401175301802665391712875425375623856225449843137593752878606484233369892086497239772538105253337663487143589040476766044149923259990159048518256235629658768766242325311597172960166986997864391651412049895008054853607984200318551294174307183664385136638118387181176198291475278324776741200747034299819347817662421610078940175471167713500382162722670346401948516705865457631630649718632057935528619549413223369561290809458599498717052315423518410407430022652088900412853416409389860229890641316644940761153791362547264650189579672704572077242941970973023182533664045814802589393829485734032339150250136627068635766154348755490276416507676966155800947189436913880258062585167447798984714109035625756443395897633587634201771407424736074797316685931590541835882643561308806971321498150735788499768188317679930425178469617089829291673487588876781212815136839455320090908857068498419482147253554217641243172101289781563487876208998528324065758624254776006778643473312608476066803178067648387735026084982021601600858001325003766417705243228217800942891925176292417388333348295536425349667402516138545836467791588237331496823810412661687271019574177244588664402955124831267489049224476064737397945623233494851497240352978417500566210577157890014161814261154375487550146833620750316705214186482457662800973414479495213941222497291351493184488143722981960494544591622212780564490307516294547391028454299601228010317876026670817450496985737982323931401650298727280070671491362069330703097179708394088793928579936524441034607690082878817271354543473113547330539373631667936076770632353283756421532532147731827378215033196061631148371687599972439848331228875145419527303173124204366310519861817065512568750971025494484591511722991937288714895052344322864063653646124107224080654829293886118507387302235779494816683732626096476005640192198133293069033584515543007095953842567282082270912394842332436838006853701172521544581485627750776146130341883290572717765092565574718033494668591205791886611721611607431295527061429673238977715141627416282650159827476460003697989707168469023499723936383954401334387556947639825596258367200159751986763764791470979770874713610165120036770124920677498341616819023286853094623420228467741929005878862774822815376499898845648404841701383062086347710422935331090215660137244794787257069971971030105182126628218588075105599697389636523708173424046551328717047701688931006541477769128644179464249369861027033014680165498786811611844173283215415526020833934595672376946792797563620533349678004397001813509268709007499303465031370814531138636935971548241951547936807360473471279498692397537371840097226321645891829554245775792239948563930723600615141686573155345528718313434794098732814650203574640178785235740288425769854380198697844787665500526981535440067706645658749801940587579797452740084917154220743623041507273548201836617166144118966783598763390066566354230383841450348554605862630776674673303967480652299077011355143225362736781406459280113619508214001958147064375742045257605016934190191339915266029149855856137781108980606616807899160477088351489428644088541279993579410372796520608358094849789442360116552256772084411032389991705265575694097879476444852296948775655941168243831811345371671420626339550750167376391663312510710229707686987988402761351593348632621704159968449536512537814439359160774992371350615597493084534055039229426538502242481338643322206975881287203554241151045959883762527564070517305258694618569927438373786129772638904736746521495072980840041162657355628018517506528986278300879625309758342116095634295289419352375973074633991065423891786115810735938649825609213531945888750384371577463670522903844299977483576586558447132053558659737912342722993872561052049416916940491544521627710486890195761099617968381313429868172069603726226233882544976893717216233991506529530302818170848912186025098859129016648448340997226055488237231205217628582514437638457944788669915586833004778728722679104933877637557258536037958595173493292440776121082418340918463077513031428466433843585736598763693647100084765173210983884460238031452848656599350098423021347741830679159614872081233211632218617548705904793328344470100535401758962854368715500971789715412120703762687387742654633087807083117992548661625562052745871722656044058794230900663650159330617532252120101579025899562335203727064681398728046673314451581958459227898717020756866112484707136232435067133236767833948213652168227987923236442738620072781865751690398362662511317279164528133543338632135464757418052939394545636618712620228697487844166121635086707510389622721465105452999505339765515149005069401220085647372493910548602563263001106883100280105675021139835319077309517954283307285218862265350199560281970801534120791978737438121209988055122277688575929140997009813647266392051400119337296581996642497295132079697311187329385313321563014674296325178102190008734757750355573171319278567643503243280433670170064721214675304490453056980257658653587865361723300894875649488824121276486845897422268195244586380268771811317827339195876488604042715245913172531787552830874020089486695400100700486130430766876332969280134494642294706396708847544980884724685363493188471246503537123231185768445470912293293292272836239171171424279282530990638988349529465653034817991842115865064743917019205975898505683258433571733502902184595456373321006388218086444532356341013813077314694925333464995530388003172072610782204109366966669276835689553302621849342037069089948321665755036033830681537839572538699970588998972463620343967310964528540676892554681268350226206925270512458114138654043210088099399433391721944020941630310233105425195171717644376466780562679326553645298806539993969048283421623976691910270919206904347900381112984951757925459459766157735208353021603553284720382217071844772587419483876753630262172978085988854508052471337272658393871817692815812463815237414019891734903567362299553204624542649300231732356908433993924836876888394504729601817519862318912701761509613283939935303907017075485487315197837351674447191720629929504650131450749193937075755787262442640824275897630125019976279255057377818184601773555735171157168951943061417324194112423213504089761217634357641994072355692116964393904740175592991841274621222525098600234737067604351717281455838479055029042245059184064362824485922174237237575554036603487552614516247578211307247108298539463412406234920995381420929382172047582615097175664713786156498575159942329236621218574408259171611092895417878377305873018738198898131849339108814508060852830072835566125138054491532033533417178816668867277402197615340679359666173982644252271269005276019704849897490712649397529172799694958633520118275901606823703941142082946487437917296884894614032533675676735706808586007410048794763395515712968228162727721716104459972556268218726311378955648596741396482275123098276904458202190703791217558685878570019271640368179752064855024005193322141109263978778556579679675771034680285775458840630302340617575519958359843596213245815806262885851859782136923956839408043102899645284961573689163911020841971241178902205209176878366694903411936959183839800549602794749364939024140945436257179794361849296350424459974600408864297258207290756723185672056315796849481801579368221076866744147073478698043643083694904609480152632064483652835329131053184682874828993170330792684997268732003807818518123058588025876482332442950301929771046109204351361030405695016108553096039434109273078784465760904181922667704531708683891447260547514010330838092988325399595669067410811410364381221706146013651056613727466678190563601044283628067627872272523702595324439462160010260866410598722417077819578642488757879266980453118366052805857058727580751186711073238329477483203649735771262220709111767775849963258899990560926714863821209322295871858276877732689188729304739285914656285496541937853233562161621672276360287620872428719287800869838558681389926674199545979539684663238244644032357065815823027533370653992457303740017713962820481382467651133327742368115082107965914787637215722650285586786803568068414886394861641455685171001417057664425331503944576977845956050292909641187815550530942647787801958969466480282946695808135669936401495327396954390442212720488386979769088605949657360321635459582036696118398384414959634918222272959024636369695025178842305783617965935378862163471457712362359731716838597094770091436038697270695080174966621668360659210760219460576902257149594740388669017613646522974705101501672898870573464970065082946263782923190712767389520494866966791450816679435540256751217962609075454227198423380877054118893726914941050434917400556596626807656336531888663851143733800920704854372896774576492735343592806924389104164589087560589737516127187043295512547669762891544940132065645395518276706228863732703270640472164466471000579343651691115409267185232908127679654392381621783865380685468985920390344728017643093593688179558195579263036197519926494588059330184103902263949936126125327447834470942041221319888043542605232465062564280292184811162964086367175107202617481827339959289609116929285186233456802944924320234201483776885332479355021681934996192533694643807689665146820103197611861639949479250849281418297027188520286167012272601580744213963461415767166648382391164335394822210259410188975175784606808439351427028907716151999732802017763762717703887363328397842689182059363899770363336636116202781472806853433544137512327942296226795420032322988076984805739465646136327194150452037668977496847576944056005968045678401565699016120456924328910485135440299741633562712317147336195193612596104860469882050314032797296654389899101444980422833753160906390601518099147568405794711289766683238607276591300877834510666944785026548681236405356325302252002814623166559804457808895501263825221297270979564923561049404949230752115624273286720644470836904983975560924761407133729847320902075404115662995093444214539930345828357889461849358954121093522218465879245534544482332163831064477436763795687810492037044094434465662199066787555547003062355147185519467432902202411699265630180576710294151115191949968810797462582907889116642515376658575150765421799151008567022803936349449055983640529989096218308452568738975343144411712731652521778936868678107033516942782558215370961403413864943225093139643667769065340450795925006751438711244624048309648972672569121770508708334897742937643426480158130477224519880309801190243534539556898053486319117172232859211315901222320037151757187011601163037816680189402494867076132858171425316320526046841491200166332768774985258900326942874368370353336764596309702238611716165885214175332873077053565283620355147252173973461723094625506509514497160218308989817411898846225960326648284905854826044045955836754838230759641114943812194723313381087841211006298718621758142563379035317837038052715537125173576463508252626376111147670447208880880445460515735976171774394666177005725897810683451970859954269631055616255077831804107377141328161174912144213248029418363238279000687943093492516441995393303707315547055717132093182660374483926541590607726782034225579141326458549944919769565755668366383132228726199253655115379425320980085675977467097917076429143623158388669202087306602099007329385464404904720837295863296958372446251353256268559291839519678173288989735600140398352513677176456061085450744018055712134475684780481022408850646376769473808991303222972739156216073436361217037619152075321294620510594595284770742701902280810942329958793848247975376949153357022313973243669809728203630705305036138145224050291468959000855605841985155262166487483013028945958060229851217838271011678361805112525436028908104434665953364908133083869263174963463124013441918581174237598774397460143585456366589689208950776349616308292593007953905059321313864286329087454366429280353725385558961530577381483168591217346059193324107500284334775218016484318752377541173410544452332220077447329639774639059125530725766561267671335119239082874012798133557299249984432712922752173685261678524341363312445958239193092224026373455058638530894729939115640402532384354236925905322897137745525569775394030838942603027710735650196982980755795246043831503663627191855391513045451865669451903821368508000676848710644500108053441778357779232859098246951758728729496921517954147590602533359748909991661441056059348421356534137929686427347600224248839176529991319911257443051937294494744376256082884303817984773422156791299711450795258268352385177213013550023610642658846655129761593981233614132229080559955082163744396816649387864995067188530140363030759305012337021310124369080639074321217468685873547697291878404590131099372871145654471083211684642339616592233085235917231443374611145999446765729192240382518792850147447510953351036198811901069485142386598638048364717107489183193544945338835303854967666326252912182241392705307547070906286168124375977134191288816392336235799628230645240100407493619888808564197118021252772921293342561979756832723856877308914016215816081128373772670980228641518883070510425974566414000825031063466238675818104171035836735356547353715393835161835954021289669012388002894697377190017170968258066909594785862658327843530060793393698980194732397382966734872566272788287150012257315741410911919819489876175401798635321068685638340273755564356265242047084963615570119768700988817926005978877392123293035087498916035245125477050208036885651441557820682382248402125315623580427904648111807635359821112471562287897515784375400308568622643303247496548738197444986451188574544048460739544512619243042449825763563544243891362883366817931428649225907317958313831932910000939291850001278977782679577154570952207485590324227904511639867860157442073274134153404216198862403580517001410095427982568890955617489856619553504443727431273352891059958445305274867507342125890538520161118424831392184469506252475575657646625888628230730300450869765976476396871506325795777892441603133436324284469245449230898683103572515319540917344935605679458960981296915247126596057871327318606256688647681090139878200734609500264219747303499407619470391866996803100300757995381440769155554191930207359445272941526119178551348205610954504045434711767130582646262574401829086850862055742387496199816531718871312763565880051960001388625580584255744158826745030504787000644731705251662923560125778635967551977078302013642558529748022927843696528509931265036580188739755348258427187033516420378580914858344216673029007605512386933124501824258419590010350636418785348397711780741086259022819804408754957137543601455978591395807923122589006862134539481937627562044793465193182033458774431645420241305456907071775029677848694284405696359652337492526937106522274476476027351327401337965350894964428125651271735870541413237349761765642850535991081198818568868368125526095804870508482181064652592962650341124812598475259262220646577750470943771129639158016996639632938939029899107941033379602745560252879943316552617168959308965839073461036263049083009234091919682876133493958341180653168841883977613673440115763247101299948034885066602381262628669872765540522723102616126652802074333568959325195100553599073849986910654919116587933286805512652534860926451733924966632712710235627048563542899903663988379634618892655336708694606973785951003388138415895569548586965335414639657715150646025646037212469894090729938780200278688330701326544309685249239929131221058512444138682734799095764769135959926086635231978152219892917823409472581278016619742482389822951899284499503262274537810507683259374795093512806259323907812929511823637820851964793641909518197151874434890258184611534602336348979829031263997083264663544373972464958306373912225069089938483328803661592057222767519770301540477310696412334118275671533968798267396451464344027266610128792422633650673711511751113812884954356777226729873496259093908480842600770582371473084513462670904752049010048647323361030600056104262763607936976010145217973174546630718981749861367279677511162379712751937733212920536998054446027522827629560170572416111981055718129467952324178861455583787153553541263477594223561506257143946464318530549623117542050305553467838393604184751142038425278490250882581866835268088394492289599280579141265250720852989161642173410894507174185467192011379121173565810488811477248612648008055142886143266718602482299494109536930098082710734767656046534314079031300087777072075696401861362150150204434540368892897544833505220336915744537667570814178965969534816536904183578972330684262372619392195279452600855098121224070713798934770854462326992788458820238540812868432048573711067672742176694119019673387828649334763468287220896070829402351243457026613826021689441909257834023226643762794986323889659230930986171312499228297239144565690169762705040824579057052762985560454827596944491895519568575633672837369207209766962358307752965576161122047127724351344443884245470572780130520839231391794345745463743988801881202731844303125162648460165935756875465148091743453241013315361187221663252864883447873386734631091804716350610926937623221327757822282508508413145733274329904957458999314517238978081745918262335278709531584790382934809092806644592976551300178959756745027513776571542694370769426489297548210777036217539088073063634909445387109539079254058408790012726859558624859450266609774606570185999781661596553539294219424750184437223543643359069075840663410802666847221639923457401525244898120081728927204202211137731721198444060735288571355493513138196121756839219741190252973525304863181604150674791013609106719577818153815548433778847284800009038333453580620241989684131166865076452363236890497063048732062655378862747983509716495762957703269244436806891662089276741802053395207530025558804797792578220470599178922284440183146302933395882372605920684771724502284407415621458546149008743603452564900014941654411986317631779884891590256079565936096191308670489953004794003043034998686994742465327144831855465695430311584831480324351885464598603589459713990154876378718970609829045478884778685792668906799293629130633321278771537537746764376267402796069513612140395386273299715628968128562490259474555313767217336441578520280951708624696673825860084781147970493420585133632499883562902572960729612935150630345516409342022210546517838435493657113348171643339773558261558738382045285417447371793443713785223043958883805898214304363467859900540471292859535360751132884325926430900740863819352590233863945456719218671283570104013991917574537625328246249421106831679782825237382491942098250747724936353090402999853189868412088242212700926436237895492690060771743132036568162160494804831226172883759237257656667878374667439107685923737045317487681808072871408631941198225137026399911414221132647918009458995776679096013316798358382502365438068532034289202500147952287177882962166577510272323453592958373342301846733338449256932465586489451909230386334718767706153768539087235092951873615012624783551146028928423487970236410077605282254286546430545517837141955876915943091578520953464498472755135326130345408574721219297933421908111889639623753229817932054531647516872515593262276501070458122521866912457255112645605922883406490665428619588413420612864118714815976944958454844754506294198057513362697632752036148596002967762983218784211033789630751556845978312282671138196648181719679351109430900523552032437018997865002571028488883679369149227086646485823288633216367669984135316189293170701610224617662430764508467030676536136067145562298680067764582769594248370300909546621838214371996607864691768074537591998301873570379404650036055183792063080593541446215331712212461049092355145332939367326903730406002733993799440256775449209457134059059246815737644579437235982132181086154409101886499648109506902896944966436750411534855858079067415658131291318717932678648599577284911556918616655803049280230977653125368186422337754579597956552242668426616459012724441294435218479089677351808637241738971967974906898650974254344157752715991000190301946741011260837441762678916422297889995231208337216602272804351196301456711979963878992588373731823920725492308127068577157620537127277584814364550423005463460521654467267408296941591366927106358363707806852991328523957444117816459787525396463527570688346437617500896862096640621871535786331728038763300984486984331899777787985388765445276271541012504938699177896338586942153892653618453908576934376419955136877945403102211972806773314128791708585749115189593202329608108054260548700453498723258068717151371767812163436801940909724979954845151007588632358671319805906803676544617109657655913407948498061033100245760268202045122029597124140200023367762056321027499263471797245233601718618963518039597053340150281121367706276990189396806219208339064766764671707140074402401924995581562227495264792463566855032496104236808980648570314371329874248148843861078179471263670774710250010713594321293590691924704773405379783757712441003374088196898130887614042965629862255667875139371814153553212250898082751375374901139146798761623798030491980309416431551683136427560263705609270236079104623452426643271055727013839994095886036417164189198989863609532108872229602378535717090268705427130175859667147889351208450178705407459521843821256981953951942780906501296193183284891056632152147191646345464438826404173440702916346745380079506274542548705313321516926682799666406920381189689373703111139447226021537088180562392927550325429399904674447372778576079230415952609310996914888960052313700573320381524446875036268905029155352430870567288771646220545302246740709337607874410475333593208133583057718204793551680230261784497476326359795108691222042908542111130078033553165606967553601458305571389567878592640272699451473143433606884168715863788962434881584047569654284896251676048872633665271163796572821140753086424440061593863872715104430169242669264417516078852104959871282667057866968067261163544558910600260817633921719751627534286892858407303511716809977686799370792150198388443868172795958645715819811054593625760374127438178002201893721990765684435982069886421123031209211771371108964646253196117960006194719356171799626120207797251626419303338564352498962197178051871521392303316356768126209383720607766809953746930587721451445274048302261883779648516303727767962925087542454394247137408766775172512702842064294901159689378264087833016211910303848143766106657571758864741742214829100199799948395502789567187497054282453054619288367214172486043415045715986673359402074956628437720782225954075709412160242456412368472486154480875840674533689459135155542110027709820593290719291785983515100244035423979399405814888875513232374153897539428384989265985872028034222536695426706472120747016815349263725293192802266414891276025883430100227722930106019903241568023580306989283223148105651930636213029187525670316147312382907376169764575810880281496135555311926637428300550309636001210986253545877576582703158611067303771184717317462906486804738753392765632521786574632225564025964861827058971368642748216076289292625871139590089519051903278860036949115758059591518333265488071930657630563730231100195234924135911047636238170113321164186367595269833169411167627907329492683418914371486475744679850634205347559726196943922314784486663788089891773466288317118714069601696034660309437796477564064428623591657630336166737100116704819388344227582949152640593870708153239697212926407496740611718750646132206765240411999323244782134368742349749089830007681172150582000538502103837561007827919075532759038956052825870799655037573022959233399165515254660063054883511326893101553886286384326926751718452507278240980213286538008335226239497069602754913471347553569335643099618402989391765506879277783700105349282635777433056338090221419109054434069819685250993485866578118283170764572163913451766080841498003879701776415229325599569438685939508125504434766991327212229622025014973783019033255620521938780889437096884801369437859182958708521919450551128331475779768969965262814023253156352580737366187596128064381958430042131209875184793115944405871803493217316649385000825581554084326372650925804567194083979416152943855103049886979983432357895356039824825508328466270889085191730101841628703529659487474887228010923779224567435722938764801415087697039426839448778076744562912318480354027480598476086213299363122761843602048248283038772424450661836548830290710170677927734807242542465614793327047039468362546398443354297749703244906830635950180417276775626172295162111840996480461868814173675746063631482976937817711776059878366232943088877968769749339204186179733384534223659259442155181522332243191408854883992197198473396870504703508821120259172034877548844259591196661506327664858429260171441469484939049452453386876701401870857606844657919594588796876687976275922779188350599431907745515520099468409164839066111415731256505572353950915096611595408122229891908290008947031243202021400405221519724908560970064680636675352556831997978438128849048880479990416549760594715280233047926152615232105664527531079434500898865106644341282779691712366378038721388891179650610124735762443931511557717568237136005282983831018238019463092470159029000539357427735131949823440815606877065659386751631987486763778471336809250410957491105412068343656416039118206808672582939589940189333568714273978785343910992055328964067708927037345441889528684640144091280784245659608539429669892059932535594456746056021353389860233521406155293303559428178574347754426984816116091420696880387536513241026409313629432292119046935802939005358512872079767496145202269761783442161969924779983825932203298318881310642232754652086134032556737862607767564834037084248342844534254725689825685936062053952211289039437947403356051532906464702509362048494187727968230984991460967163125688807691078507826346047939118780338655940848474177364489921742139321380539108215396816590309066211105346212949430615239376327348619867857780375349540178969219309277223190355481458088630914148260673624618002112967420157347969135252495814767237910483143292513273374870748542769830595758259863499832617876486804350149709345639942512150397379519823914547179797352820603734989762709741193329252330845593552662669227873493930397792305959927001634825551847811762396949340326526876538860205055571206936454660942052975090255395755948766350767138100139599468287096070936124612959639278833840624131243257016877905844504016810417488211308873249845966975408617754464760876037921527251293929931996605886928562320896105592534266762986325784502924211932508006572331486676860681401537419496882916261386379228904081475948349473787818557445256284686145981782846672335478213995011239297286609766886666624090215603689195856131484527436826768830954699506471100821026570659799045136576499332350811937829865452485354576695975313951611222688334821462812775712399624799376486856676006305028181427535784289587432120632709724564746094249075936154019029045976024480562307375330337261688679561180476154910729937765225782959627338682299885618276858632592427858517945427804701939460239946960624861371650458977837833820476904868104815939490602667619812148886415664652930334203787648928242785018592934488906255655079610685046612641902735511583394502141858660933976719466000008323235516193690012724426767940887075034883799823819539434790606760431076679251435534862200235474753848359803728111741455415224321841688181898436352633521803942013515982925009178438149181451105936135814249123416984627579357095959116595802330710341463367800701425368160955362530139529240624424928117598266152294288492089374732158330871943799520803037743440895151087583795809051666965127617631579207775142020305066178392867596554204120917601908691612198674900736337374286194412416148053465562497712264625598284858104077424302597193976853271493633440853986444212232591826895083737031805887005253517870412152810854170821441435504946263879701139922438590353632387404484595411706947456772031699400431797450039951104164637189832856953690876867291295238744930984584260998885519364937668213183644419640568784674680214832804322640423250709736130077788738263717908446554693056130300697031895690418645142007316895657670967924213088226293904037913082602315051972723449884168831446939890072731953292451361147696546906439687159839809905563346184945132776590221856741626504589635161465199214006451767367465618050145915773312026338905186409826757095935341540225395282139559359564674613386944925699199540303243296053285479080882346346821717914317379219326972189583039212463961579355034514893042637578033351396841530150465163442581098737983558007419353039991362111365252386982446497125381184322781697888603770357095189038814325386551712684202384609135167440281682648266408891493864870442339586335109070803504686939747965151370560037168333364377803751497099099719180150224433799309962544830151387805191820126816150489249590803436520914931706425561296693225146800995852714982888372948748776644917829014124726472704459399552343513105956855657517802314729982209778453506882978935741212924724061380979461571210467129295767534182798409963293393755911584558378298994946086037561716673482960217372398251934843288183653960039059613449744055343262293816229134448135272402956357704984843102384007628957640330056469798353153588957564814012734793377836798364961688671189071738034105189061370555632084092986851690718500904387253387787364496445874055152881422210677695993251157430097715051029392445111331370695399208930939684295642645007363237847939874235537791865345059678442559530195993095404088753846051368128102934643692707382222240332479158740713348626136222830989948138050943268821340254928020906601218064092331671036608982953348537788292913245667928140416593663869048687810875631928750774922328229491564014919931352669127767811088120728221861825629509787120741434183118289803066530637919206223899024628112822620260872691357297935797383776339803784626944944773479718129473746424790278381857031343707242924263877080836990468637926778311096189482079338714130677343693933778212313396381310481594882847685064964559120679567814905147726051227153108180152521593711506330032840459021430609476026612301276237378290098465364952592783104151072595302912830068781608617069289645339201316210773872420964075404148459151762004114452753565072247239520692854995028234451740474266362436828240408529329209336774019846084726567130034037641209641361846521116224178039223529505594188566289063779626262614735704519153817763996912122728271940104979748432590308754425321920732404227693152120644304015179902974465278046351136784065112764262704851650249466678938621669656491737084291579541379619998419355967384990296544624699310116061825274427591127848518199656295326282574148596350761603014809901077721464228031083537428879247443179660083465903083675962557322055417067854886991523968700246485088654613145541560966200664939480794485599564869431901679682861113072285291937036057007951660676653934477167756653792935391295895963010449003972952131028594118893675772667990799478681511466529118203086723425743253755347517349727217383603572213122973506786334958687560934563715026061689343643900885705699835530862149955004267079917999444921934569025177774981361791318063188044544917509194198345249632637430399438539795347038092514984922010160618404280850437402835815980881079943612251333454984525359619745503077877047110564501089944306126961568637601562347434449458784543288559579154598371463034997807238233063165105813600016945767462388449213747343271412666673072281262810236628900199807917444528446958533968227589903206065237956401934898771416152081950913248086143273118490957322415872788835198347503404276367827184749490493638804804518488877797775705405272637143928555681576881296399396704622475495083058942444240842048972024874453460227191998458528075810248582634263074864492612076175452107297171672888289039979473051460290082698545027286100337413551653298983171727945245239932689382860946134302555138118759690242935811360298138122698528967704774092199260888311367012864260900373885966179246439645970229932702615027302165295022537728499906411079579717381196430999835590151803470691547899252508677839986419360860762475830021041052026664852936655745628922479334836222712812132517378187928491079842581621688204820396541460659023616397690989464534498635054454822103146986478193028450049211505779254958042727298347052007074636271412767084463227731118363679200497663885912677972920303052277258717993009374501105556994295549915287833019544936926913254328328080437507931505454733785863331496074622080641719963983274750988944978206918643373657553526155090211216606901539093260240453237202591331776575789017264326273262656714293498677991137479363912800872650572448685698294986224376406094503209802122379467061754230361773667179248664402412660912313477331014079717789403531236537703804726001726287387124387607528831857852157760815479623571233971135618326162552088365161433601256681887225875172343640551588736475861764880984808403271437898413852086502509867129900914948288578948548809975235577734596405631703296520704249413508324620587868527433673874790040935411667373979496928569149347263264167968256408352365957616853293255730016820776301397494603473579912665484960489085733713758272313712881712832225840112008743375095968265510949196553325454891385298296782528579736985789428223624759381554282435633740880892261793263813104248819417426883637979437464329218556427493778908387267963669186138914305400833852749088802285920616022716888238649757863665687264427100817453784538652886073158432472408432275513190250543778645810717130326252746854935414707403554835021887666288018605887160190744968604619725180122686714272650088253683222672739372550034330579363854561320051693345899690939522264486970272300016313534558398402080844880281480556010443094557249064929948249967836007144047953949484373610260295188809692365527264112021488316446194124105937273007454000484480420532553110146824979574320845589958059399909127664304423596428933212595644092810185727888139388662046896728266757144807890115800589949389609334865715819571974853132078130077425187931138132510210221577032132268358167762588087760892201450335786427216016149841897519688828511940600221218798097792479196150135742114448444252716127445368613614009006446511215804294790490441675659127482684254379570707466279947896108946395030340169675772751708040772763756141978904769779728942589657866795468971469007265007849981199923488470314161894007654449638698530411067951570571212725119503609471506747403740107886178758023750233875391591806159619327901258412578205264796933433399326964801513098683762193596027728053170142575772886441915823479805148399495678156254332693275838319429479658650059552278526835543950525694950634802320164826337989688873346670411788150578855152281876566002516921235045982219950178045224430739544391358770493486255757207530084303494700321339176796312323191666405716283890302103393858415694243992169327528301178513360308360524597980839882184952754290002238325576397391009141485240866463121698693559554535222324922941019297146693966957204410192259856690257432685319005418216823497053333398955496710797433170886950981578732022131184768035429395503176995698630525242557791892505628971844113373710149673155780199470486337904963493044097868704875177773893274834869686321752486444429164482123424585010401775132774313312916476607547391366260439987682511119715831430452040768868125018739894908300926287396710958184175425891932256547834268140549494812961101366947812572536159693416878272049562832851019125288174476372790601455097545664102142697737285859990562829849812724066008316739048402237642848573317556770824899244504358414837438072014204900690189142357948662525845586296938115386710599977298398408798665919268972887597240573029622417081087163402152979431944220903304317219910713290067736147335286661279589365681242854561080334095143769637701377096277340720144197858538473845444171720343836090964169926777843833553559797692521676529233862243973238722303739128810386963158099198970694999644209683405926492090117703730973621277905565606380123165295544314434682241378584702555266641066973304549988799337318567292390617440804094957624376850657358216672280697938591738104067202449356894558511467089231304024938992778360706301420486635180897360722879810587685247599587631024380396472567695127572641958934627861816665993332266978467726742739526481971789484913323328768120795731697152678513755708356196539041648652869023836524886787596961547621732641007127849699401374293839510703101590957004049318994467255658471729343060644783930446721687447451658445496467267395298884913077026046408310477050916398363644222313628922887419876207642687082392286434931898937323051821756864986207161625776787936794806610482159775980324514658686401010810040663343775937433028836116652069892342880299349784927755053675192317054960574258212498784350499240705178235917294440519603549580671785659211763405477500301015922657217255300933911278964804194440338473077053471825263789041691378575510065454198048477239939332771966635038208872450070283862229527066906946056464344696647893477973992987511021791601392297443794169438898764443860983315732171195833577084084363890514467214823733830209769469022534938193107511500754453139336859093561657815506872766360204319730599455714408219501155246910713251843026580314951669523136288584121117911939803832969599431267924341261893813123064003380908099446334268125879763386036280906184754559940978826027870032096123405316357871714029453288724059900387466529342250375002508326061777679811783251901669319698441010343369435250621636520684682408653429077696353747260126854137369797859007854263345586709038451256277268729220261448494059937411942184881111736428968244742889352692942149324693275488468099070068294653567091157620494592617800495793540052326587096974251644382050948532493983386598931930472395878651815763832485640736079162160615189565158146647769146434631189080032102819870070625559336917157476814242511030659000579465823034256451504695574638474205467209615988633565651107850476359412674055282581216983809979731711070524093183518449570003811771423623840480846753446518360129809595494858593982972909197793278607461562348988062197825504398294834720180771793813923456387488212015611274100701226503227631777665914344657109175632128833222157111693631158444074421601285463490574101551088385222045310010642746671311789631214339126613990091079368961387136195903560394320456654910409945753313506496144784131555673869330932116407940500326506176575307855215315660218450320045424424000865310988925309653894327955974332575606840130720063961785748793923620226692941822413969347924634842647850478969440775601517655247729079212401102079330198874031606410976858079169658526967235015401737929623208478150183148104483456541571009170125799672505381527292202505461937599048478092656879032803034622702698088531713742838976638707561649032908574528705022571990546572020928039175193529065322574308251945404058599918363323348963242313687988947118270483947316031842757297272999345213807759858887019850655829339691123031362000286282578136881574592025662603830069777509472257908081110142779178030257316396613978637775596613567429235127397410016394966188038339931198458447201764414625630312447443523286510152532764289387644185755589130775152364483594007932122676982694353078253096987306638587153644547285491163503576240643034458235790742451994628584205421805125868029677495380971457419568590845536835055173952290360457215625234097250012522237777383840867815414674415892424250056102537034325408346624631142872113181579039456289786036483573380012413543423153606080883088441894250789228422584579072238939757336403172662301089675613886361933124345739423564083043963847579441997379288945516039087292912458711798438379094342689520779395870156463937972309563387575752535059141944148778157475184856045156842479994540964269558567493700155423974761887820584334433128065039670730275129461368990545394758033115748626073684555732898663947387028559097500482741944138174656290204374640542794693136290577299702384315958813093952401821945602658912582411961788095259536149479637996966046423235071215447017262520074821599155132878704622594380687400690872158707241947136271810222919672738090582295292746279002879705178834270766351631401005915474887669970209525093419414824162954272921172691058525169590402393952356742685202107983691315675394375585189085355098965821630337715156865520656531681122985179590814491903485441761708942688737666908680031934843434312385786093154354911206268439971924871898305508328507920083493609851200233984618652334077160188754066129541389084282610643795780674997449528983485559002105644951981099693919644401325512956966068897129626816692186965566147924409254490209137694614737129410387653586373120699116102501732095719737156561737232150811039883549856905137851199978679960861503480746217361730140888726807633104350450606866593724630087116706025514040775274446976610416708721529772068093774100175324569063624017268856418189844286255408602215230552664268421215307871506442376215110801791328017662176775443317339671903324712203037064122033345938023108658274760413327681506300170141808284783202650526984141382463577552038491182463008867818875092606592799260464894826863159189178346081354392360118541100341502658620302824533764980101747086294615079411354471606945936306555824997399292252733371253295437158059386375156497303720025175388015523216223357424458656984859497432723264691139578575869235731794619047220258633511183228265653765011570603858975901528489062924760834517907066865114550965314165451776816098963126843952053235176651776598730639208719275999581811109459926268648283690179992347420488867122215024138180515326585186719598065298108418568823816443269915248180079198221959797287645200895814819371898747959153879694379562073537899924959437535542108684890894089621242050314415829824565338247998865220535752463723953450707592991626274620455488099881005475858299460616987475734787839280437831488603171641728951172079338904839319815316421022180171235232568360331421492265862100060096257691795185371477517014183716605605118615119579457621388921495502174853246919885779887302740972792850729072666022970720115985168403294084278860194035837855881794580760216149034520943973750093474560913054424556978050361816954231223149606029041248499130094496252445796716809798917821053089334499895792674199346755247406318625653329912775762806913242166232235476618149029019024719154727330712977852666544254417684185692272535005517922862529171186776429780019564586211746852357259591750297131767499771397004665501244709969446689920072279874398879156345277344187152206481731000093126169819025935387065388370298547757566329170575759926299544276792491280446314692047851607901362344329309554155252460769185145926336186053147516711831782713099072898476070438238773661877577839519121088077781491958299613105409197127931437319130770071028825967850172761982785726649288129935884852694156839649456299763715869083011214386392553404397472831432853374675136773257361298882366825991034879831397060612776219005312414827025351750708863217995978363091152145076945830819734391293435852913869829075359470954980796332073558713053489357409726283157502647363027477456903572874274265214698175244540674126798775331164843293045469117964364333964199619667139894525787443658961903528613110816684056669335958143250995091069010217222064891494778888493565444149727809708208331505920986891189309138558515978899068589243208112135372464521115127682507982736654470900037517705692891639357314531997306249957597662944662367676658321948351421304744362673444449349964062900745999169627471165904678912949274646914066074794758711997372345485913392458254181739609171227877015755041220034285557905666821396124554170696601043307006227545212291806460950292532092061143957811112074447190985500711762924615630043265399765005495471457512142803000053888295374534211060198941022238115317008266754766998201431175848420829239996986359605730913812354466823045720761444189233258253245511911941386076197466445993093171437235451316106832033085999637918107809795781893376198425216053184798539706523745033180866413195035657338383400501814332549164580645977432458223191665121158775109324972553928480762451239575284456975923582436173772205983708837733772250664859318873855587362479615836974104621530481849694744543827873179910492541306489066851003403224496183793071608710819213306771626923609638262412800969694363541435020398067774856676740946890430629038897322119267533244042080142361911085558560243122517073364068398511787921242946779694833208918046263682970446006872525459107483345509312673423075874184824389704194630794447116487988403391120985101296771493097701492223148274476028880961299847891078011182208172841371099272926115571022654954645088348484845733669750840683341828773293433901414110028890324636514999109745939936936185416608117717235444948315575476203565601844843870517473135139674898995267053306469125416429172917998752303876798120039346088204701158002783277517616021533686238267350186985432596052831082655241950349154032386830828956919594885259762344595860737721740762283099209229133050873847104178995237807221438924936677447204216438621332338251437432046100963692674467852175724420496282769175234947556673726940333533837845176200398701828474152106627563279327756970510929382143887875193128998425176470467250310964371012019826386744664386154132258425862581871114427916900660746144155121826898140576956706916373441832827301563437953921135454482321964580263448863536914104427155509630000635343933662929087865424172276002783740066240620076319210289491342862053765798514650223519221274230975447038087527644499005809263590557898779046548061822143192739565483400142402663054659378543547071729672089217808099351062652878210270838556349040407714979880869235356946073661546122855475731960409509763621649879861594701074902124094851197030692197988667601781178628081558327160861314721785033606438560804093981632524748532650459044178537131002496720836419926450052974726759136706981273538145503806186627667464751093234059132418203879912280967477305067397777933143319100885730401350464092476138835946068873541845446461464673206681480848848186150797299073212186519492384478245326812801899251408944078165824169356665837526962609606952641053589829612399078180948088805801501226695612440703304185297112613495507345154284552326452566506049740876687180042460137768636032245591860479169701799858224147363758278429271898824414000163940295515181108173207133366237602742551479050025562556736909779080907978215973712397794186854327089971660893488718830203703479284826135364178255740423241508077276028792433323589213812835355018609871790829679237079669963109493568352210167008938120690477967086964636295276321397385072609034869509673861543226617013230638314045268394274137147955685880366629987262425032094155109832892342410304664970314459468124419280441169755947639758492785213239421890594468024468055990511060278097742639864119201148836577354425664716670646819129144699546867965054397606258057260847652988520824636604526894808970616687321786563935642763136507944090915665384344507307355149779600050063650433919608003302610770561827011561951695875969687995879119389663363905823899976572551165028177177582772445206065424361099601608491341839581713942292166065000808757911515386437000575017534083556223672366766386033676118647272129153797362892741563684530843661950856448061960187505598513812765757595112070398638194149111097201818684012833896273029619208631836505958088897802120266012113791185664048709922471209475099729726361482145744477628804296430448465262883454287144129181325611108651781343924945272952107924948228295781876798703942265979245422639383315506122324022973575663498062103294736838996910595501504454063374411097647657864391193463581802759524352417366884110494599776519184150249040581574164764262516406523058971786427486972611866956247626602660504272925554309163047898974110550253604570369871395821509870524636155229221896717890013565687857606439476442586760546042935039899619358158125691734056714765425791307055975885857644077929679744162175746486591091745109984990465036206339853645805798372933760157410519244743590445564396886401120762964010937715159665088495422839564772153204735268232579321739089237817809011921685283264034954801665092419615923088892704695563437545770083957913510857191409824999543969541585543938946187873639910928073478243310739444014235879688125200476076977607000453541637368943388775689267108243069109437648654916429083626387138266323424863448258775535911627615465222044996375285775777454167916992401911259684785059600458711562190365316111425591360996971587297590320750320341229687407137312357114769139906319365646738828278782156226767007182535806287287542209602732378764092397141149742709087584302653593669392695323877187004588002302177170403047479723621447177564183636695449381507569914446636841778212647325234991312477276499948033255485615158027149356012815570606979367968760437279695362923079542763135719467392052153058188287248250178266324864161505585515517065156304540364859557013978809766513700406078087506246234140730176172550634065789485275254355699716701365931738544792990688928346889610279340828321573070586757388835712922900149138738375959676468739245796045242115480570053715601412694851233503871457990499385920846907130879930841279860865425602637069694704131220044664929966050958924422723891129484678639808826102988535213062515549403243167334704352870843542204732882346249763315192035390519553527702421849823855281218440693170772197510761473518986173317616201827375252492036684375350769349294352419227222869825459462690710654947503957039914258103009456203707429009901139281485276751253289118581277623279477616267230890442163275262994676917951934607717904127746566691999516265276367920290185440806502496494717198058470927238305735435246383931509033863496259759246707752801877450416754202812332842573302606648545483217470470217668220213089091444313988559410247522166474354190645740752639139785952279307715391449248312967827324524696159185818749273553995103103170097282002986801628132831842172979657966573143368082170347247446525669131611294985306824558672541776398572847925186248839901215111532853409677812683181592026546827344269428124726470708081565768314134919142252905533931707304120971269456789848367750661609996476442770968815859356961516916340596253791547916958699006390362035001554721851509260321831740569185496085241987714269859510252685873613881468194675955457753354081853610416907976732817016479201937500647961913877236633129332742485054613918515340240221944072139410677989031561346220058970108936923718998684487255239423010109091741217374931523462619234761569279894215527754464568451066166924140372107811721471674997926928732735359815883338057757769971624399855425492593071082524488045713480210832969065780850840874379253626781254554164701616197984353940486766785073709186191605525718155596936664336946246315592377358842034448294435066512517798553569519602592081350449865092362871774486621839742251484577403929016536948859343559343273708360534334615272113544917762615362434896808928407602955060743063789339114763705769084146756923501820250882420943797744992923675782095620768516094143936638582009907810569167418618830493883028299022593169707482647084604887744437359987591106576039170958661638146463072031815523651281630724367048717598299436444850632787499098229445662437916918054542074927162937699891405370098864493279362254360244791466627120060468062569034404106135358623287540394586909814562253065702629422852689347458870439475637452737933943454380803691877371349455216235281879615223967570732973351998729136223775962889437974800712764696243857202955021911801505413049902199433441424554721515808713368485985864047781327185904911725118298699718588326819345851518858270544864083922006959997504663476966162955827823397051066287455702779617992588740561403451924197230130369953895197472038552928429449749634136446927013100450018461850773800242704629515135884303558465283517344881504384391981773381413665732989829735239066090852326141464174117277086714334066640956090563942727745364568900950571688740115680314792468086369107175522392532814287430368864776889050265348630691081145929864407690975270701639527229460120379520470299645758393445899943493339907110005139807401908224813348413310704904927016789698076759347539778107369837520202491765257050955491698182103678266975150483011324117400108565125423035332057913443204734327626994290203319713742322745663666795474626105695734674988788579469173170621514335575454267174724370321751416336473283627374151648700461708130346907826195951552162289496119486972026402630382824225709286186334591026147579842388604170833134034687327079113180294790531457997365817042549907103864378874195804890446150144155419051097449315069111984038118066127079510039579972929366829943300376366614852901488536362594773713643106531731898338389298772161993478361286507877076691023010399388359334180032432031985212781479386425593588230016918749128778231082845367159820940331878869777026554292135237428329545610538160933446121505687191490331197908484687228695118233575735186421948431056569304055129298529001445313185616632050864874832264202660041395895257237731766331625964810926790412220600174481078915555149357390401035577510906378434383249395658670943083235142579060320564796817087581882078748831341740217056859896175637684012404603522967363015195159757296455987755552574191765141606138591169780200131583836078392804794145975185359194316423195097206905379654466036881777307420852801550042434245076029020100446608956685134044343420914831613823963446056082411200597408610242563469743491149644916548960987229347195600590981354503082305126684302913027164999332702543629585320314575214370132506220589297657173638933289963713651752447383432325446528190243962127082390199783769784942659782632695424220004535753966068020199419499704083373934146527006797126490460107081703156070754317650496889634555344787037104157292698464776335846888694156656527987990574823322257719437141483090873855659380024854468429398951072093532988779789282925035505379747400230715677862499515729110971437015666788134657542963263985463222528600088599843526254208828944248816282130398435407967211500360073376885494192490044594770213283201961052208160744308049621351590408823737538577360038316569500304679791783926126492526433875902446615133621077158629042812625969481764527818632486860266687612340700012961101092651306179632218820633736896191160528474646003904208978836771359565927818456094702020570178631683733628991448780453805350606792730795434028857870310978256703392682879672675228779122686296703230406587925988647576288157283458488132616929617467531463386983859920212503440737696847765711646763244582770097609077123285245430702081554562107332960890180114394561425117425483665058693023674652904710325443958125308441689808593422261761307047352942134416894054668899907976446526400691807157406205049567302685276923141793432825790396032963883191376862702141644237928855056783252547339682845995939239726213198992874728694462981176574695020622393286165131136898923903248775352149603205934624587869979604971214551507724410271863095146685994594193839573719005913695899890485744667445316880802090927167736377035497586872808420185255554123611339710113469474901257477209508113382855223872658023366513193024384019692963283884661341530100724238949600818498435937036575474062894837848237157868018240618621545166454770158604306101367179409684198582157041493621638959933927757741694814648142187021053224252580460037638842651612464593451063800063037924109843649942549962256112488827847330585364142269526226984150159921023901091355762839225485829423441453183116355292412621731785651411163832203684971236051806906137220467351825812484372448339220329275786752143758398707133431709535070695843455943736352064815486558342401170049860636968808001376867768061353649433513592926176827935021054940832724092814207606344797477926314511608496383781347375446348233377775981594772863264794144566858551721740140638018325673354623521463598108002700170677181742289657041829167998379095921889454315495271740912660424082787166062460260820612994055469448434325612339140116354839060085723579048942938248378705808580406189452037530297659930199751214890382658464087613737774844872439462981803656987217143999828242693974800837100253900951807729093922913282864462268715281084604853134001821508852851849048410183252715938543239368876476658956183710776968916440021955042824915538155345197307027707119729703552856005219511590319097634926884724105103069433796815676102076718527249570363022441979578696124357398637737043645927145082404240965885555800049703618139032489033913525509582479762649908202788583764813937092600396684241561171479745625302499438654809995506142215227529873606177184819572880927688969336097279055925542345482874760089716088572869610099989075000386688014734182511133124272559738562941667847172746459202085434557297726237599463249225277532953233724858972521339408326335688302900267826529067256069745593839854301604448245138630431993310541271810398248986793995969445072341322434548635838537871107230017275991359117901162415273444508442115944796553486239303596876429586283297656379902266949058530176755423560848470085619276000636715683715923328568886819409158844144954489737384303479792854335423023729433493755719197541330078541038545018306473306974705110020293098259315176459641685937797979532510642916908959412572298139447263306219142036066309818387481054122750556000431964120515903387102023168494351238715707313573968924938939575881650846285560679871327714535519275125096847616996547677339434021864265050402466455577972556284732797868023791448695486565026407674422097943070328605883794996172135638786129420544821758064288649614280652785087350602376698853248623329397619757237702256202363503603897911197778638292835838743958842262356679354338990543058426502441899797497368592762276756919189545358060067817221769705622247209665338190048502465815224939036756506813936665299243832759137201122169783162905323977688368916478034098016292111425718413195921205307335621735574915990918385035148122600245589242007204773571138148705048283424973331411880165188539020829473637487754703268637755491327716945197203004233400762312244181020456666721637499291143214653270772857786343500121851208128084043007985247236259854744626025026832367486996031856987167122521669243742418973564001838247840189745636774262097455198304647973056121856697122881081901718428569507492314131078917169750008821955916342868907142246958323422370485992253302513177527533219411329253236885949422075764938805340014227685585383922643523729372851133573769709358994677178356385286578159365698056501855053837355922473263642851198949079363401838750769164749905184747197792543940890489014506838538985121080920403152041633218552431833180198911509208839325094889221657345011352660633848643891339824971750440171862226595916024817567901972721514871682402658039008236018309947751229115765342951688682297358336663022664746687012098562791974072111987423717387427228798289313585409828511065487453131474241654582635087486367972256189301834103479192467294978236437939994520451322365718498969433670916346361357301684328869821510471871508475516206145062157181073201089373752386913876727145343931342953710841066616726377470950733363891933085142575406371256892622746124423711271213828045548199035262335451962046370218057412942397574135229139068346418163315061089720430920971458555881195044212522575191837426134573433012423067745064148653669963385773135322017984779397296626437211946311585267173007354824711962790227387789384888573325192532988592248949701521109730735001114038134756431920821741016857660478853381112343314622377811328408027124321651953217383811032160925539954309606004632308588624710112500874110806672352146744272785538563127674818473163377669116529230900354446644424900967749859048933020921089263865010016949064713140825353558815873641202524253335874131844751087148308117218122531297815790088755204285179075993241310570344250257633990284964036572175811249810200333561368355769571081542512239210785439019571652139848340645671848538881815044340716166101056224915042650386176335145512059224750173626928961264618188817427138503017500030465209570827226590605315748051012902015911563365459526271033803986952374544349460793077077451490121372338349278250590023533426635805895822800349333220741607355315005478359909516269835344163318967740200307073101940008807829759889048363632678014814732183543561983735786948329742267061274979357165740067841480620689998083650588112374143384174262457638599286616511377651205325539803580254425949320295753339683566177252488316878129053640622675040501347748264877767180062652948143127464686590253814176470291950132564860668494070997030906861860250391980074836997253657148026181123496713093621892844811334850313762084242675523844878126435593811017125485471962410573963274211071105482097068370256090658484630646056022782634056853676765743944868338408125034805706093007471675334106279272519920676730579865797651635434760765063316515112176625033062606208489241069247073300616956493228811507255430200019489519717311047649399620203441350805534113464233336698429282938443836460178769453135985800928139129009865948174614254989970729499962070675507380566509667993430279907549492097604927080181714768521757708392336742499354149411370146413429425951032718670684571780021943183365492371470600967290877889662280155220322600242784198499760778276977921278617109263620769303250653623852617315928738565315159622168988344747734135054164266249324560067609779652066951066500090607965788613015869082747275396035410264182088841726955657330591314522533696003984085311665899244052523698784151702659118465950788536259104364830921581827719765310676051084977936502806808186944210583439350175086287677857468794745208792945662576699996944513901362153308234466772858694270128072424357740898568945431662486712499076209279530791699464667011124844940946854737439473915829797339707135276317159881388344008069685087172022739766297477286489469006301946103088288619294227162757562133494004796652896149526494373841045988734917298112807261577549881324436839549064923567103060466501258759448300441406185117647886205823177895399871044523373981918991666306827355341423387985154791933001514183664610477036778645558497089949532932418663119127298192757873759861591619635439643819059314391955530522988373922783376167803195975832743095401558053603025031091802219920941054586169289777564490571449356443759402486368930533423191377715579335212603650781959608333809098303262334371768309626014109086221876173003129615740692941307963089089875589946461286022799211667928327875976468715518305160608566104052497287684152797106803582702950636710105480162041216817380177229136302679857957285598699083540885472908148760952052608158196569518864798791154191674020816511180094907257479161489771452273961379753228326326447670356000882982833579729348900015698465838769354230510154823196467100384461615371935636752992669606780272385446853570284890229028280362248965397907855276837347390431042285994077303767634171067484018819990019735874639953707311573572480393677990343315863017904675586622503786385080981864148424854521519282692042237864093615109696370487789008799093280975078340809560986065714697546323136419780778734014372179695275342904106241891326777296922330431987918637917579881167922714460960446302118513621104093844068696877858764485054257643520483870242142820727494713072593630939767129634483407708101946870196440377298433395270197651883241066860346551557365009818318373289320144175093718096176627707591151857920159753053320356086575453037869081918655170001430895705352245719259934645870705713600945755837505100385234535689745825654101836754608658951392582790328166842171123747993616509028140564754058233952816033070484007152137868944559974997497241203724164684473554563672337077842513760688882480568536897710227075356365116719964446863050282750255712743371011141153117811768321194816190083078897843161856862934482940884532687849441419229251780080765416722276596897902932288202053131383805008837762406801423527383838119713531630496925421782392543692816356184100034099835938565924712719068407280677149729341912369276957015959440170077622659109206916827715286012498973875432895493133831525317881373106439639578204843485434945344966110033864498126072520962209696409010248233888515200082655325179618532475284283446756996719938425866469338887512824863942860769316075439406318982409762640213368668364918629627192022289020186877075876735657577186622288911802921318485637783253440912501617370802322290121375077345699095823628141689145310936155939551490749087949669729818730302010125013564085792349671314684130168020571726635708439489029313202637508945311979199355498728644827188979769683605604404576800859821081615937514979410658866590992711378027807696340796266823461563173302372673377252854963875725896486971777109645991251050951421422392267343878648014494365305107300508303005222690811815202424355830732093627501145349690886568008286860587525752226602720194284703303792208231583184253466784762601449170123663512241350698770003411950813909025701710071566156060308355284524368353407902771497075055223205736102196215186195853128612055761693703847851065396427099703220615555221675519594047263695531019192039886554030012463286458548886452873022760949182507076057927265600529951934294881956348197227583945715693145740667019030965334294687336897943206392986026317336436675176648889368561620537832956316363503066575149707706540624811388580306372002783148862992247610020439489479604848430722126577244810457657382639205429369269643360879918802286219441182328550193697872038016765765793865907730160891814168912815115573702466597087096412317676492760313865244669293139403693621814715406977370076564467651065188954862181288205810321352126632368195373277337210245876305739301079376219479821571058245258091814021793728239086500571940402114129611443477352665132253725985956145863857878781214497002691259687114845712865872076096286595885266332612854309244865739644996399252779682707617221050782377682069514733673214953894160274882823972796991051649276191842043646447373317085545100227778622192521754835139578515362790960257995645525012734149479527730067706255959954921067383213317968917498193350594600699822076059387630207886469891212692897910889211933807641180055211579148329794191415421394684278583127683567081292981435415979357527240713980632910387302449086577556955798759923265502201691046670887935268410758318266582228509417088307178743485700984052736157028202223883579578434496795289059671695402997669475552607812598042426046280805522305633468986856999021758066310068274957234900267636000602019505937174176475307751244998196764197270052369247271854509581489978524207478735020123222894101041626212587977830690721598049877541616301896408073950125892052338252414575293280356753486817658888156837181815216507409604925901280009929722235903146991507926597287588257705663763150046225300551898247948135424240403130513418880231875642743469135897073702401751477945245191825914590416904771956385884970253239769630141586090985747358180400513122398764319345798267397546265788004232022135471189579460492897321493702831482753060454911410764951100316421800384178715885140284393308713249426081482577553845291859448994389207043366513935396564616800930701787628313933369862888542095094737219657645983029901717124446929339195128968826457778144233537198548506776913357019753227174127339158652652659737929678010468829789536034068804984673121647936600613420514799452595534361754873816234515109495523008692864189094147167543056864920588081116244862486010351272428174760789526040754933978602578566712333945040560861531094042449214257734472865169520512301882238864371036034107011010907752077037210741078693574611659667759660163605187668188844425490481940672714576217573232430643318525068758426724136055974505209344739443344217367831183444431838068814671414231054733624154327997779084110319161088201726092967899091484383766734540858826024274371052356916003189300187292119404575214220369157405248657151843079958478335648778195351443505901701303106911190720296144640600497702760497015091685660471079898126153782692285943504954136807815463230518982551519126897273434550406209593420548544885866010468592150327062635731121217033519486745957960277234830461980753207475122174471217720732188283675670958683245770917910216152434297737397282918001268331750804621171768543485896819977978948832219539401805389313330862679197053498022797590307180295282224440136225395859364350900772254732976071867902733028882426933356780674092217051552392014339280581159597739087231358632286289922950196168397798944595629719881146195750435544132621497353959532077535849656864600431950399903156969955424697562211007586845627491998242063658586729190449720705972940240481530660056335750481890538201400526607220656110632378069436562937699025731483377873946597846804784478944382348946956880824141336062040569146784473735945824582506463760109243076851005133453081223638248460945960467056658378597057986407783910750742370108639313768271774509075546045370359361740907575450575164482580602159940115968587668829823953146669336977118739182815216150386437083978005209727411087746271078410095141808829993159023260134029868902227012617112383694031768606496013934271793471885302569009560590391090520642835684907538208482652290130115056404656650085714985817906996188832652645875072696072299119827099348588180536596092464790622975423762677770205942725580943229523054162965799325010026607811572836386946173761105202826961958914303133324626044195978844563235974819877721356177028865513456224950536603751995580240714612809911430052507887275986089848238298761916554419893274222259720334178030348522184177333478923055323221883638333921738364975910605759407260664990426712386984873554517454078666324611588998702182917618253217679827981303720127845176826862177284664718094808573751354418641132239171673914990683135320852193107372048074832261355253936971706019952519437615443253633104036572518123872658096114961223880443460826018159290330345320467489414377963755758399812175146217712481455383760648604520472114373175297807959868853530476146441959849953396822017587283280904627385272234530664999335478306686817161262658772251520803392651014930680310546693268829311862237159177171721460099680235698584610911412934815920632769771746020749890794006927636589898326068917004013213366277892910938265566399617222162234584258380499062587545518310600540077909273158755887065617230477759581484410028251081475871816500458460213425572379545990127409430584849210430909335698789090542242736402728341554556178332311153583688999676831301755917302143167055220508684121160536004181904563506059519548136438858633300960224380301482641405218936933444945997714471778936009990499237015776998519089634644438349673647989301599663747980870316334368963962160918271810823889891656602108414372545557270660911391801705926470823498273535785126883846140858861308235724350994847504863233829858084098355009115132665056751211158805550641115544671270116504647311428839238607379543819738292761021755559319599804555484599202419625574905161398074556163801605224543327809586277806135513025632743377340924130773326393252194678771429651636499500729329265453813168422927313177004739914433648172660717945255501404056266522940737699605582658044435472532034647710594089079841159145450919032146005321642556175200211790145914902682086722372094858218157539039447006985803249007475007743196237777417153733385817533396260805195280280234385621783554920563853341640510470153228519647689725857750775323533234469180470357312105048505430012544117138048206063444860360582310310738744804030785434278330487963694674536213198424615791627692365080217950108309234733754654839651105269178624982695220601679873769378625354816448374097507557743931662317521449549449624178346821612053433104985016737512254885485287293608185593346737447904291755690200585227416766843099404546426844619624388742013539970967307798993332505513459248556040843720492231562669066952658794880386079049186758620779860223930553067072526958250949472101249547984476814889997236125430895448308527801514744770226671705244279907067470392767993622757891860544583812635036736125998100671372454726061605893608961104532532103288404685269711723200912786423703391324908539717716009442388134169431325877699336075869012528392120993956894496237465453161243270890414992724115460664361022872608344518784932860105454537531288437953885529560145593156284567955598968857351238386897644063543257022282881862833785313273228489196668527345221434375187113331592273010017992544033510597263658747170645479554655708761150931374775363737050062498117192372148372825716542777914514065747425099316395898281491519263924190776785284300612375316304211836560219252741553760600060884207315713797150732512290001311895718811606112983075192391594000898413102582569727549827972566346933438189797132322363761430962138750881958818033899359245880081070807359308163601050976896137565266982664061700452571408181481106195168518397221620465956571178687585489086114687242752029479116784532490173138905110158622135279626937307441461119011305883912339022834922941701350585336164776242868270084966415399716965957291909743738550113170710294439872717396668223467285370823661567671479862737876322805567727578581727700526040276971187541004065743149499070460808476419379444273626825216322160045984810982824713002700445345998881829781674499426709088140389675955637044414647595410642058603554889845626554910764590148535502614196264904154130295625284593359431983447617507824477601244499488544386001048882499737105467615687203991869487713020396623537839082189628266059257660701136221661558972925779230250190765434186177843194574511926926185144149588645920059019787327534468413197458002075611821596148015339083667768314533495294847206764479617786771606033443393848148525038069714390566981465965138790761881351060548047446137401891804332847637745914135864002515986709459849072281118729462711367572712806495236005965399764987069337863973511314423132635102532797663103486116783514488634167959099396011665765745598158001888868860717139954917510590816784681590970525899741696908306434903941296212057389659622762362136874796389687295107118149102580453138572727143490887193552261882842612932980236719045257724088222458103696475789417571364035954579211339961847244026169395476835499944956183541152266634756536142392926299231708895715131893392562378369300662071223354318941438613743648932892536239446136991535799014647974033986828612209996641473782884600795607345458160016078447380956354747002551349052541849757874968170319529503779341840594926722157433251018216503406652059936160760644495607788073964493019691139563155883979345196734871479007440863516375635068232369720199017288728891678085163673859285943257476792513493714313695226478558784828341439327951161587069924196054842909035718075437473711766190636738542436972763488165968508653671777973517988253529395437676307167972371700770459881312407563204922665295017015914283374673505163724955779422696692562446513066389635499622938731141421908111014835568013772966651371128999641242099980031935921800645424004723207120040712031603543579087039584256373440848433216174985898569712502666082336114110659127716034890818140521503626304326573112178598595769477893833987606425885444815167997384172989103201516355047783401971551656083642654614859201078341402217696630496303343807656198298957565860807466350220609818715770542599234457222502105236294952525685439478938423565026750526721072112142521050043463437457376731611685646648455325023391591148081920964719147178921398789263145824348154966355086319387696176511414512347885390169083302133792463340426801700388199634507313279873408783060121576808395143005067607164056460923457234150071823574771259431726627174774657541450898846970391184533463860003694332655409071229999319084396495283934257158730330675810242500346594556262666617813659323549503190915633421059432441926712576185777681338849769039426229126382916248590465454494815394570626330435838767217116616661656087304537413362340135743704991094925593175095756399050747591541378275567434171501786476122261985968523755807549870226309113867938176280042525541066821327009249427284387871888963754198460539415714125075626725386386184917105934043118220006248974283318615417032372534179664078556151313150929139830893417498960731862653634763939738224660869374541450858924464180742803289575166389664228604793618761468429660712381253031757616304399362313266963795099068274103087634920600325028980547795872881383377164105171656690352390977197224567988644077852438343600518938787819165121700403384572249064962165367844873727044559125703171370125658517956085528066017143137360385136911386689848118101335953476246484416821027573842259333669715624976427803471994960153809387428655781504732693567992992784717400114678090708252075597096512639053211463303608592475924709820561615694375009202006130946261093307351510455105048229634823440332679598309046103537167774117933241255499822651201955362833157311009214405374069824879230861089309285551331246484097091620029180745668081562832669829722154506747409215250216894187449066591905890640262590878970577229026988996005738929197781132994238506152429373083290901007468299005578766655706673380744639746869370183609201808898649025824156828575497970223906234398188793274746737103467661869309399738392739574504941630822398892173081006693505707501552017201365594898615879302997943334039315568326444103158686509601248541109419321689528226661150909361757500821901973702195048193407795566609543771477207852821302144391278287428168401366001301084799933937834705532305323075179689721200297827922198710751670600354917004586475692341925182930301132763915681358219671362422211886084621569929727636910782430372661188993258694371843090702960396049577969509394855782653054854757363551415137966118097863179820749033816932476466361554706225884564137714665324975765761539815798840185368944638073394765596573241623202897300682093215805899269933993647776061692473317289922173930463712396469259389627190984783965213300962487339911847713176214173338481271278738667994807610190048668440769488133945940346081566711130777791286950588214971947051171109650675488447997690147364337384118588035185963145440887602301768975268640482352129567911518456064895779446586101330746779576274320909215843740290589900869836614584073587412748660620775704304937009433210079512177564035486387939903640963368511478725236825832866900049696409935788319375772982702694362769345539715596229363193625991348146548331121308886659630742756802063067929707053819858188975413980831626226711781147541712382825919208191481200446188716699058933832857317620209122550316755650953915390478126543282574158656076680103348524949597348144269111641909009093027420438088999023328188643510365864088330043651691727282529525912614864625417835089136186478237855444770379084844265173685095269671601941176048730969623865168398068598174566865984155041009513926680719144382780108109553322332880883410935784376541985210890740927134169927208099027232651381784914205906270427678239540714416984226956672173202484107932818673106422855616227464716818461044080691930241589744998259417960206116003677456485282608056110856183458544398387803696660014889309761377637404053146619291028496847593821524599811521995277239108240640917856480582290353761310704665352594099763749874497423356087699440345825326866065713769042840660977462523152077233869758727617792161662994067608417818704638461033939167666432633711393849182381388224310294950220628833238749371667736962697766353795884124257621468268134655144827744010715009610176574162200338171797940617705363081580561081721186374853332387077452663863814791870527569074409011957845950932714851122026408100834483620834757345005149550034154097504828267291794647115309155805147797863070776490562636431822261784561431732114045322691433100037665440260096948463371233900171426663145855161048377842313795764453168399271997415235737292116457626080685183388475088693473321366153178310582707487341669290726086518336258967125087337620798395335571480240093762657780369852051031597524273544862398785083324739491410846180232912097647959394661295821530074930188323103060244277161941679081260283771120362975498712904370349731579655881967389645061803482588532526044812463066212633444974383055619006818409428366699189651211761687661511311881296401903609639433100918543801774752151730569424543093268628745842387326951806909644679131497406528277601121087238926555177843717155127149631196221320122299733457374154643670691839324809132003655608922573956307480960435845693380388572330183938102870678504266592234330231986961985481580501556573849273127949011327741326971947416193917813258454107490861796468205560279703123190228956971053974755221898751921040243092513556974717821926599860844937122696557272612449917923953035134020781170719031760622486296277030070624570889101988330428022268830037197070906311417927588552129664686007859842024168786325674294823864919469936725152711354606003111522888475819058856912499873920017301144900131131250219237353888109793678430516217551286059203254383553241964111508350772778240385258975302574821444925786514631717934483519682303303066027256152445332113935589213766646256643118627185703950688876656578204624838069097507656091881491523972287468701967094129298951261687427777706854658684216775917971950871104314042063287908842588148875554238529764363116365556678034240028857176316696104487659134670807743304246081351828025897348864130492585957476075866580545496080396052445493999621547640357342270171223237720558060602942486623080571459378434107140949617191285052235796292859488768336902768007414138038091158268281869290688293280344792173617349906276649397283637691289758862921150129670059831907846221982710498976256970938857119800471080163531203786611525198829130857289033862151169850750259832258176314749615354816495446299295879735009940914324899512577545545848724476995542064325154291831994403167465627176935587324074193386901866639166897186261299599880839197389096801579762705629320717333420116462390019192385349789500952630109759211751357838020422044551265457091855854039008588370779777357507211468272912495559359902950699427118583119854613672730842278056802404862795144867010490345639116075392033587423618556527132773318910970717372996745942162021803781130206967764585809366366808847947631247599975619748103320904711530261552614628211858977453896231111349770326836605363474905496322862605912314576426812505394649514286295266675559077479564977571418015612467517167565373660218047977365020914535980514961907014891278551885034737528756407024060590983243476193620585594497258500069780555732230458064076075500784194776075584597222913777146589316383574374530966661867590082618724994807614567288053528630090310046980332732669576520076984125162157339539033181766159389388473368456331391900160076556497305999370047251451992538867513354588645447609974743540102018852413964072206866263894833078021592764973285006133218521125230756365902380343144551712827391208789456914218427175020287516468099624828701722803291476927287853568730202624658590401365734223194359332532760898636214988283632771421263173892122123361862004616079655786798463131892961931596037175246099980059942181425516369505946087306746099109177207735127229083139741067493142734323945383294410711622268424662641973382986104927095852350264779810414313987529749137345756532823839922824087826226872283375084573836767696989499675717931830123399496631391930661943336636819892133744542396471820714938923186741551803177295239404438822579176513313142424836247569048724416048717261953028577823047476904335739605152668112670695152161250344901485520096849819585768762710563574436504668419319421302046371244764170545610460731573725889289139650892782407793800419487734733734616412344565732224024291622965160470491319920494984784262676182212221472259747285780721611358369421638142296523416788838757744870098590115106588504879711852098026916716467090255719243991683128256349619759290998181123144343146489838669552834585148373044875254499187508499485797283737394375845069330619111987664088180947045454378576662416140825250364013494251538739924263340719560976923007748293266541280055499119595123421001887314238152428802586441251843566040341821776672737980299242931959941595405045045407246144245070354851160592177535881766306533712574907177970929477686776707737912603148826906665425967599421236196442904588340132104246154657879057388606378023725753777942505252624176130502004059497877930204043644982684149843525578562546098907776747884715499594946554934418089315859866510966626813345623872002658633054437673732350038228930901669407247895429508194355912330675172509280169744716731739417620503776986149432162479207727651514011520872919593643168963119286672992401450882628759011616295968184534473429757179744135915228768483963570392347327943877277591646285379691327355355347066736069476401210485778784905396108858883068374358779867191687700782368677565719700863599797420348715002811981606598451762526861557184669303646869392887135595555603789344458261227157412586048496799012444331540666810113538653466013971235120335603589377384730464380035990797804454753181769988918140091259573901301059242665174230330157853422294911184607047951034882382908951950240414419487623164998924762530985503589218498813387974027713394856174351395782784006718581955510261151510494786792596344611654551952692721227243534271902385783079999061271933834037212076015517592144393215557023868501849401320519021910663799479919459471010628619120340151101424008653059380058875959158195313672533818107725531034113652554549104538598279162386286582416285671194236896956413702378838312234623489376044672769969625842185731025596849400395336689740285315104833746912946686613413572052280452891860918750711684313023504942884230122091576946661820373174342422486544902176989721341136704327170545002331804909099905083684717147292521474700446290398411470164969611789089067724678132389032016233725750284433977113099246357655933321942717135559925194275316232569108837907250283208479810902999146823924506814535901514713518654843605641489299482877193350483757804972502540379929662382793168913026046257076782633675029842246843051289748749091220535334143192352014757144885834479807360740228146636245950677444889879062683359781025549347617138177805256819825485918212410012799673987878159130615648751014739853199949517754331597418810851156339344156975902175533072075777412827736108622709550348876948123326564582154006420690959081707172326435875333470090316136267513285559073885375833099004198779384064096668167438824801184072425768145660366651784344265911590927843882723560054530050209892884560365930715341399977387133442913864411075683615488789337595131743164724086734021991031501162895407285867894244225540215356729798357198277253152233114815449067267166447079136738036029755773086981813128401024478178527742186954651940511193235924440055872606823456199487121762185196317764457518891142892168114287755820422070751931741449609088131857448444219235955617881110692405706896567841070649817206106426109132030119206881856335857824281815476242346573650827547495840839947075576866988078468102210096212903004300296980670486573912392619459502057479802585237682599355174594397494150294288118714465169636507277109860783254624578182248957753831930798973678422143333882066888021237927686194144846912254318234562555833399479135995574518559583639605968517399875097822195745921939199243074690749247068766371984379715678326279413587214125859145900337977018867333351810784743182902433876931382693035971199298923090912841722098083077729926504330541652107901793711492081498882531983727288768539187054141391677975640089297031371784176101582423646023640555954478969085777153417826742912472718000997492361801284888528656852221112920341178520682273642307715510697971750005493048896192033354470506934751844546138692724615607288717038583264622723494905963307331361460284606075769417041939151865803060326637833548906080600689367673939422528603985630875050953380198806514611097491466756746973805915921026572129100849641336327507551607718551411747898099634467455397812346748690744798141741476221998081193436705819921966474558324371533379977839631166958134981647012298477582215626588268314476948817869031302828989657369233592958946870677376036182331188890592807505280850755123477205654714915325022461376636481294716122703183764845126857255104484087796057417611935499907569527264875044870011192108422121599340449917643671230453437777730338565826441383691932204139585543267175449716365682751059521807883545200401453030556663851463401638097409111332015245060835469410294661529915645975561826413583245121761651137372475438708108135621221516130950456063817641866736771931240633708056458180374873229867451422981159307966692000106110375018769118267245708393013289533336177719545884559782275724527499162687399198860081409619917966613477051904295397177746497239946606641139940286252829591700242428545855410315553344508257814816271290890655542794798211959963095951360736809137803553276968007495171024357383307382004325728155151451430879140993823163601158937148321259827696238025080600070147585126565176081535525212362693021866425133074240589700824682969532636996752198442026030947307783413770191759213032363869614080572990966448908184026595089450235265441684073673229396093537152840770380692242092608757863395735728501346219759644804629313908188004984026863829362055731152793958576075231540120548163563178050912991893891463981799627612157088711339763884229104519040238859116010692414735844250414568290778562705524822579180193750103568406431198301015441325861468329304314215228159997043445417561297820512400541281914861833270128314229222561118779319665051141157190922433079457186803908684823005270314597238774321206014667172462975952647695437797065079872202310569923279609302303582042033851446290385664940974634918397302941469694914019333633170094126601008163735925326997041521709748167187723175342944208812998452155207724595036879154674017838030382548500695735334020217898960853257228771853138319016778532039393251631019972369850389450739146632247121300239822686458270695809306225055918924938678269123659386893580783773754567606089256212314640605748427500427572977284476411327840371908222772650353659711208691598684443672381932985221578138428580617024772860559288746140531173594517788006312709494189316063317016893371418779280079454792224644691562613629864746008003165954273952239400679877159026762024483753919290532173978175607498079169911942265789223532744134129751639087317949956327511064006284008411019443396364312344065351113402927315491798910549217363842465529025665096908190035166447731730268786950338030330289867946317536760939244537196799306452651830850527542369256737660893039644672703359035185552198420096658257057158079896891907158645287366347858706223811859321395403321241141232447244665154062202554314049141221380575768638464559008245483314864761016860145947162219770079552701757963561977490861811906131021124345532089641421247065192591250624962278445102739819835200633711416127888535729087814417313252140062777470968785414616611916194044804873529970741146481214658313743147420715832526593039016672219314900588990796443623027144966074375969356209751342233549962662184049559235112977732321654800354675617972099468237148779785776973913245287559726592293685809712424289897811956105367831486314427887730977706593714170228879271262498466259919903197180158180819465884006682432318652047684597846183104072737087774600624511241758752302710842639067436900639872495882165559655955672267659698698619055812359180025335859407738029585330420292178876668614165645114396877331296967070596643557291503932169927805694103120829478741086336657730628407084213048819969065456381814849078210389118100416595268495895025583862740432532344430322535246471069341847303266581584463835203128569166475357113624301705062593661488094647174894900674541153075536684411593973213289999767852658397513979867005299104430415374395567991652346086741078554724424638577452092261900450804981879605204524780269551570588589620566160523100438623290966745060529631391978289253829229181740990010932760613372565932243487982713732686293974822059509145211918022903494211828533921609685177992920210300938424403713360844954604453151964309382322719190581787989885938477003877640213787429011513111313171493454853232817044576806154813938792328726973376636006998692115466770004755894476163739463573102061291548785323877302622672534514584206173999997087368430051398986439606412735731428879884004949500619425246142871247995168910882151586225746580581498028506953500944775470672925180348427577642967385998346677609786228492974839027405612875786342660796826805548867095014701476843857211612574745148931488835929517440235293897413987935588361156116924623329864696947666950996220961006007205949351097927610867547522768095918606154074254130233076085624271126655217624467215189003672906956505135577631698759517299163605421011059332312583540766490523279442888428815012009770097827763021526893520814593706606823923295275550266242565136775969992788690070698204293102119154646305585771177534401385902129038472370320533622926020864712721980832816399895289884549869082188779093366329059233845478813739030756659452479939513202001344297920455209849213928466572715380970147649445926146854191806620280240957139737246089660325228464364684803060174081730662825996141353998033329720026194028815529237222184847752414350888908830369966338977693852413873559685794384903875217474847062519080287948428850212458732744309063446026026995653782425440398116871960816522019104775747834914765191293707948892099506881120168653886459770315376235918442073510002215163280197753201747167242263759847965544911027809529341986442136640237100931324362199875378910779046792939921605123540673851235926271514077522858522812138562373905343462057269124589455583547067561851140658339011350506085694201269159695102723153699988952005318359538936251773808027923357008450430343614633918084099783531155103371303101306523184629784312762854552493478150086028634622945458763754855205610998687519810269008986288454840860414577692741329612092823732634542676739886968557435586674517163637254889362116862600725973068148484852232292231675370574760721014789797450184827352665665320746051146631909129108812583639206428936440263543130339675667496843444919762210823693082988509827081488856352485911833256814929430075035226241368628796577279611827634166639583968416281692706454708815584354465875359770225517606621695641294342256016892771552335565994756122413362405279785302080893875767444583948980158687704209293493225829497443654897475310553593384753467473482170259012351141677871268149823804556886112069866153128522772779889743920200943585050249588169364368341543024145157498995678023063625586272904102855520041948767998438082906114970110784398362723841002740320337679250725962445502898562858149453067580918414017664543559368589167591955498218471840012592724466795813704841408785714464284667364197912344213345989645451883121929368439060505581179194172235221453241013367149680016949587059346425944146415420575969907000400859824164627741632946330225186238186948819910762012590594620631821765080768293119288436119177249575403674292270651696996162143600843311790697171229777378369178324568942473683690657336461692308520354982943830497820188816074319355480405994065474317758681184627387701058883615660250716919327269839451441632198659853404035307378709396749966113165473208808585040391523931540393845267839108144166320684830076643647098780257481560219882534521372554005361236366233866953851771246492757020012519946503044640613634576190903793521964526565744126960337130325968742926554340255079741665016810895345968533177246016813033343553496711564306937036123037071135820524167270767610978855219363138878959843642080052717627480473917689016624711425646673331860567608407379027670630143121511666922343017842170257407516893380441293418734067297579916839464196486308120376645228830263119961698178906350694301683543502980725693355939198637427276595449825352389570219126311902244478967268312339850417176353989952962892548050947243298690256342132186735494930239232924341104555424111154601637805578372419834780682284711029469874780138164665656995251428247257560982970323327870482215542250025569712165153619203560285996993395661586264846764513850687343512041765761256277906231327354345103310020251150591373197476013923935418716695774998027499182879522223140882415787235986966305085807921624590873509454802262819988935131163315458221364684741955648874906793353800593471724247358593030775562785369699623554367000892858092026417958974874640585130606181232501489804544758413104156840064194783341349826723725252621264588246566559848848070398430551199239156310636661745784451523803860420643075156802703782060922105214941594690009758215307885631302237709617956059146075505148247361001951508472379167598628517535818085626195497163068826421588462696219234942460584751756191396229288725071170078856037726188567841523628817218090731815611751522522834569017908645637463338524944186654082273313977274870431384250768948040773560965138344255099926474359275018585049675012252881669839202793831830934707494063739959218272302537956597039378662459295853657270417520086496404640550405388586945925826983622390263299830131505799469343886844828251251063425538478422669498408467373308589760591924761773470434032758193324602058374583219794524214686785221366412749515590212578347781843338032543994682487233050076763946629848669541301790087021129140635528693312842094532519703122938375393722282744857877423682730532376204959758328362821598032754717531218805554444352240186474395779317319848783428385140246481014645059863250771384074769419797546970258549150471117782859396099754946500169635502229045880688835392596464099857823494248241315569994617555812477582847348573041494599315419987531634221297410721635460341843985735309449847111703305485248690092762846753588369359403587039718101585291947067192777807777220735085388705450485969965401937229513177998368775540281402576081306988038977715989940939056387831452107667841520054434872758966775872491017091495874745411990230130818795211182506460657290637958704566974059187464759140683883206888566059748963467378100370861547794226199219142509714064146177919699401625813449951659966477566397611721071366566983076284910786417947408913345322407177690199113296135461808667440098160606028316046613224536127235577000523158085301845697274345274042256141188193143696336082266865016130988061695698614128165003212136566818254626394863734289620837120289672953723464327609636103714686194575045330889788980861437683870780065789898922813239713192093995611287180192862454350147164882394690771438674950859881010540033752420087058411866012400870236647912577418822145578084426441971467054498042074831644498511546253110226286558414680233775267157957431037853582603560116465764536257250410020547232642743107978966693378152629018734034483658447371708062897284212988859712677593723341563832667952454256036851409807515629720116409431651840898434896442416682728548800333739969091689234951804907394016794377218470165530698604867665911256672457206456359676463059503981661816457006073753682909202811844929085861051933562859092996265649170285749256569296378351984538292206144739637586407362441249198378149795146043628838822816056797219407688040714917883377466255038493879707783583858714551971069669304111731111645766378060194982178215321443819668127428821244727730448537537472038004166132890797724177215559253697173031523759713155068183313968916071389184517994811957293317754516795414624203422914090935825398083089100758270390339523906469823941759580169725033932039425184640299660224523286406262284423919399369985373234606882151243252894500002106354002484776760052181385443391825440253765738295786015012410838105920201878630239936089379303395432883482807784216965552424119779393883501762373038286724354478505229601705847442099405846974724764676561470339739891675267714796292311743579859879696642996917576679251094258725802414091789257227388718181905910220950790091426354826386265531288548748119498147575963263605087924766700208029002971512276346342862855407490762592507250597905814540589840074474436381870702343747320611019298523020850449994356192880267085911162085203370319108680118695882024919630610686013992958514129539101926988047411811978804524236457316124932388838912140239240907123996258370168994713159582250963123397257066413716277248207843442709555743404754068279908504127718733490199879594000615597418234498127699974886416885556141127519082434325894826817064507534529633508664669205510257587454967837127482030504376357925460017174744613639566690244858396075972712342349595863361123986106051014650619104192482050058242681686447990120096108886850409057503640438476143242904623006795679617053660641643120494671604378464530773099572501953063991631062055678534887402615464616114150903710053916044567916689879462214871178266650724305789569021983604783574567419358490204489466664405225780529334288435165773375093516367616096462802793968584082951817741999368186617268464033182511834593120299618553126342981095087994542492360298177611696189986155756959847331234745835967899473310680425535491727941443396636432291735530164399272947282546894133660636223905557018992884560512896796534377136758659100420637166954566376867061016587432714863348106933374083670290732959993588337401996466333070887954424175990964895105070097367381431730658772764821119170542835544104487707285959963391779908446259542404288936694230090899793570912891659893197286206732642488643383989309487992749390776435398570813646536461940634533050804207061763112945017036456206534234643951033314586211393008528632479481074574861146906514632129534699945113373944591406627954860829890485447215785496617451000893714020591074797050921058960818373845567252835050755210922102650183446568104363957901609736114954407401503774325969011315106733163626458420548531886642572544388690802174299668391848466508505164317363097147816499429302355223935985685152148679494895677704396786445257042345965155992327662886280114982788053995574108653783209647583114182284740971058105464771236913597032028310437779345922278090517012765600525668522390050759059202380825175113353393285188280115736111939928561685860638523576857908464348560448399097358809733419127842593431103939385730703739276094677052158302403174716806389258951962268322938228803174712298637113418378353939097157237189393776485288827250645156587077207363069656857984953627415565998353625992391538164169925217293045621403728736357693168172525078587137625011176008793433607351855655478443847213974094292160349513720963107349900899352284751217708362939061914857813983797451878156035222661257032664016355851143842823889645662101535812190738177617893291091235728627569674478506107308028133022190693795670196592686001544274618469403046151594677563665342714314783157649322360279880528751930094092014584991492980684869716899446793531148685414471768100811004753103536025782672289224106192369237706091910200368987859734922702359646607250728357467442275884421462267380363206127551016278367645417248050717110208906085953705116731130169290297935456218100130325615687420533919985214088071970435932774544223867923428810950375900735979387908377582206806520860555148725495721677860846645061259687603024541988818291756463725390741116252906324111861037218529953445132371671674678100541464593529857459452695252835312827371188678269720761123283854978246061819516280474408793583886479759538528252028284591493202775821909181640789050390938015874662769832547515616071578407399457043841468795151183583988307801635333143932738852912408956420270188035617983536543432417324550863967288809350563377214541851349956287117679624237897595071050238935694359001358333322337376562317592613995070627351992477730069673719512178855330913550422527694825426389095080941076748299264979399503987267389105700927206748624521202836005977915817959915698398995248337406325008906100552695670146311747967746760762073914438449787661381167451184623992249647241208627990441659517158687170824988845757222833406124006912324537238809847858056699277407154411914764864099149109971174034518783330257313209974864931273225609629321560832752338696938877327189177970013237010032261087516440289782696230393816478972655596163611781053984173540923302787441584383078982452776315408750244840055587701848202077024710684537270601642768647298335644678733796861788705273346869057585073401231683014411711647887615806510396312070363019291615712219569536463749476168861620746390028723701850135049026081794912454151075628011377752200925370388019032842073071856707506099471296696483672495042246732521902869458490543124804738108661148153608398477559602796848019051265580215054617750566530343697845041849298708534116149254332495564406579799777901768606290234666361110503800222786201275268167097436387665425987680323426722000732346914198490208822325135080547702173552421195894415712729068793724310676613253835470498330344272465753220608613147692991850050636298385197252839523325490827794681123820243370058318320408327267200314565554964145191520628571045335290700601543010913253986777384591053423339975150070418373480710836112637889301738633748604377926438792974955983015666230043307270052306652811257671971082014106440731472733907207255439270485074936638307806107705040058937634537696375876383583885168107866955799161599269574248840509415033529801191038770911485274636155108970611035659228308071967158166736020159119244851740536714626089540623013475905065013013119874782639265507853847213152508681405038079643352248823266730286165533510287356432234995795219057848474887203275925320114086874724023668971133249135489500452253603175406943293351169466425518155820353870782874849503409082303757783542635845574174738586113628015070985009334946743212474624884262124545916657623581428621926877449627668277736462817333327711918645400204225780687398513387183769952564144210155643141678267989569080543302571256690586831476239449526160435251198245750070816445003320260190953417180851155397477757557882273295789231153726338250233392908237746844693904537566920602675590968188003422237345255065563641218866518372040076484835467170674317075650200895518995783839771791093865852908418849325254165407566371899238060648068908852958749909266250625498415944784725853396208699789688355352946004200005401911435257741017539685429408036654353644860447689132871755113139499462388777858190506690756609332947451094356374609408793566156515220712875445438052637371132672041054521729856262020046205857018064112008190718405786123640758280617237859322840303928788586747175199206608567737674718411465459661255307539913891242054389891856124133146577009656767496129394598729399415419346744189803712173408258475215400447225309218056664058963926658340452223027404614224850477162257393277373723182207654074631009224159403398721235745197375526029341384867428517301776610947311893841237979543623585978873102042267160146758638785904052349652959383876006417594892275274071859011843192239975307618157807039518700320788493686125176077790380310204266741964404145501308370131083242383675765196283913069690099709872572147387545961734927734128839077659991086947310906342324334527117025476113921168844794962602448347643516960804069495505471587678029751286435595769560668030475777932663617043783302970117542296557405458088701771368063290326774228752853771768656404156273336728769706301788625000397486538926097585384292946275563757567061578622739532926946876840560497975251524137143401789838912363104290743572953740240578864168215131580202654597273036610177573016379376348447669841798824131827078733652924256419459225092536645201210764164069419558458406550958774635488736227066648263108630362962615729058240089935351230322996658051446432189061519000353267613970839741228484093592964694710588672251787356901270603116676896210548655651265333169693417480102155302619897335594685680054739997619701626251949469443725405742013092975317080272393120599283142664116158613761730501854845677545625890443871347014249270129411439406139579147778904764026029027352469367099447404235988520524147950982140522025090114815071602336008260020743070343360818712744659039914363196315453662067258215287116719036719147007976135265635569580705517671002013238840766678397574372793393303286994998752794345228904032517655314304056728457481592995479576242662745834187950138567079804823619351668748485204462793180423564572144440671966611362895225883724752084962210069223865956381695326145292129595321413121816224297907472898287214730414253963810217006123055696554538732852845365019448842967081757988975679167214200258852123203368557081080100163290558413329046509943402541896387105689617040792668970968640836776063912397059950722014114627826534714592859854590788620810922097202327585669937314353140290501792278137950621493284580188597321278531814425075188257878988369508819916989263221013042155235859715370472897190637193545090981217783971325120098545504180559848152927884906517332443275821434249662904901756558062781614122720826627236129590624952440781579414730325750451329296814206917679905324188996284257572644035925036229370506174325017627554398441958524848509687291154590824033503771180057804244560446322472049319336059664752374895683589926119614381211346959295679116755548012758396510447559920140348940781129328727911584043349079655308002396184658446932932847192733424373641586187827400554271510173121474083823948197305394457253173159654346429550890543494937640388165444320244267846430481237764980651125487713371272044552319736260664838811057250182218701106071432326772208062286758878228647234477797974745609595744049108681293160945781791745354658190330899204724994210800149888293149876968493411962222600315709185265957181447420085202346828021313698291520117227796772213697807454318366258516077501800361696476019469216763884959890642275921206758354659021024319498202394249924122889097655638027478602269194730566681167204302312268397072864095357700966401547872887881177440603057830229067720221945643102610106591937676407855681266523604398725224316946522654557228280365927760338925026815580701087554445806145816081401347342042214436539244584131967523350836834958015155767970788246187068520936656548664201696749559388164642259380130274542007809049001842506358873017906791506360631334662607167574410097866161293585287698407902378951127692836313154819117401085439596511678461309347847191499147393988246105746399759247741400780641547731615052792012759314928050244251296918822656228037288253335588304979748854615860369356213598495479336265928711350423950660802651469027821979405958773940736677321393894104614161570389971813836067987792819665535029793905972542737835382573091303713172822726008762575677284942812076785112576832862645483031886788817794230680371773676983460281138418042226159717637433448685990010358730367866554768569952842740561056633957085480550447458208822825880014590007916295737507486907381997805362731179922766673767484026536840589901646836168902170540211449457378184970868853744170908000237859656662500583763212958644666863599049778570255448044699741573183972230482358651525410786989835488411286156040684194296259143167885718306509793247352729933624624270128555746005847066810707519762924618836069706806466138044384032061360145472908294002451964894019708627093525686393106339169575482775416059887710626166924484136879773651810052255957207546264308870343785373153447332573353746079546594633807722388011654735585042882164556843971143388222473288137516443202080555720516684457164287954593330579544735298225144595907180348569896687413463330473611060628297566753628288312279038411468302636994948492890563938827350812736636052174334765912152452105051058296323306975390728732395211309289041426153940168294827786243245885312209217699470929889115908795269736027803916661804674251474769643218638656359902769487417740602055926709026364533476512493569545288624865871100155015013557320884158201235651502557007172725937859137705731926701836604868752350763601916605442298061018053326392725332467700918429779282021291245474888809850013478291998397492801874732612532093700901119532023863241190205190280627903967785651225305435478581863511902963555821012047689040967908623692408263237149398427960478599817516795795110644002034345175690987582193382758480669585461863533126902953275375092210274370295002514528269891392816930954130679595574961809087016387510447501875931910197979510198832615015570288940293544380218026566060262587204267426065452445480048180507977411535844124554956339077771319879942731034604737195001459674072419918466191684178463207313196504828050519559060002588678389676644529303716205277197423874740281326749264079062840511883538065319740534951594792352347013226048008879931575124747302896498239576623210439389199598895581937725777779723417881244540745357507685826533199482243769672414884403731108635542592085675645643319010882023170075986910164743588793770166163973898801466633505741615554849773832119254221717048081688045358099468689244971896121139257693576030347807873669577155694993760843374204280946038236508968055937634294499804603392041528375312795185993428915467431486265643068520610320272895794339923417258760124172180504577138547817283902891513820946777474746055020459645938283315695456870175803148565046772600856864271689055213016679048363439220338731766045515941165356622323433601957436052601486668908457104154392959094555440605327191339075362560187442711214602988305079693357385774830480245307042435185134712946441554375985173235507500822711306563609758619072880156636133809609404632075380384341775258081019023204014428860631794862120507581668302573397648678226359647691738430951919575755587316736516738101259283967495909684069678246157931573966197073032653125280606423032713052119268492307649317366087604378386495832663965521013242743936127791113971325300524598619876657442393589357672756868062442008368577242885933880058560608725640675764996067096737865036464633918851010922647883976638401013174673168855060510084723108932424799937714407621129598792565186120419678499211052331788492690926345675673542873047555680803010923264631147449779787373164351870796297238818378564953889877952544329222756886143973449621367013867431314808250969704617266823665308245761728758720856320130605312595136077624916303654202069161822474938490903090649766887062227540681605591946721452455879558067610985442999777513606704064568664444801961395579060450902737599361262182591563762798643562813946976954393165601167261068239623535558561005056128604750390248765788712164961183080991280823938134276585962466536686686239339083742660659343979926044560672520204403737649595062085923401633931459767252795682186890255493741547989242854846890007316534650552177583552994155607668654607189050333484168689345551809775469690581524278791831229051190061493616734651626112316955034024162427597849250702558627306552248349607464397072928580936441604802211803767469232854594400408962526814516222126786819355914834164462264342385378134074824601818059661673783815690328585995629416643650931191377989500185107329711708277693348041634598530405415937920032855062963124742064306876179266784498099386672790697366013710965280862370206594903078042858878419921931829386595287214791985390765428745660989048916053480331112311724492305613419618169711336605861585134665927189378402350782390253173219100659062631627612322910747874027419163633499214578516969715373457143374446288129505845668031639935317993587754224271700791920895337724108576636289438297983786950404098166031339630926514338227386420677341375475725914678425043176589946365611699955311910515114823272043422136047368371750850699171941535147213840243304319648508891241426995423625551954476428402036636060346992172137295207712446667985921506989654846175390345865316438156710769066358757369550033548531220640822908241692154693243373220282411184015631728221837303206331339637612320317681017996819026246546596259747326134127316688139276532779563356108824740559387057189958137569559659836094353731531137340646013240844670968667554923304775359893523150380377970938653782515727420589573897661470465413342116720948099569266615543213234449771009194005117046927616111623866022921706890201359767171271633017644873075061435031187551561082462616546797413786754495503212598750090880951885245962223406009858020507459176861296416620437165097013530479120346515227780300072294702819513075286383812131430896759181453587934940976299299951499214570721187918589201510672040928539256812075053772550579565548186717810094350455883519223553964915811794248651894265950163269937640664270064777038052255147610276029426407184546378609598174758647497970436643083297505510297808120582872029137762347348573175908210827147781039098443316022631098009038506589060060721844803642874037418055153880305319714891025286973417882039726637191716347279199123572419318699417592303394922332449414345648836741364756570206975104996524340316673685807151591464250407955933438589714185874237486202541886455696491069576301881601390773312439131197581941620456639946168956149639560169836936433110270467371907916982149742245371158288621973213373431950681520732440251586115115419121938666416588003135944069992432811513641002411845046761987854280478273496240875221389272299155386336008557622920553851226237578215655564735406197652770183383603924159298604454451977249984041416251259618094690847069196412595519316182586022481063786563868280114696120309844420080468353432114328005389926923265388356509702592661756784894101430229820268033491585668433744597593760531542728349301234917298883522941304441455217018797519861947671989546408280737921606810720978678794206928115423422489493392752555127313561167732072217319198046672271783098125749463807961494253413433543670724443104494633106277678896094355371339172616105768300197539762114536834842580296751525598031476658711357622173995636400275685411799904402157880061368288125012066307049727060210709541582947830487483390195262190584551021695164923512193767581528270227560440172316080678642231284525161844310897224796217804037116481417635744246648282531598506658805594406830037739573644729896291117100875387562026147017366146664077477299979865511422120895037721298777621359418814903850938635056124899371137393727713305482376540867957776913785674596846826735056851411224655821654680623739252364200294940925464965363380927543781510955058074116967508592952124733572379945054874039403910092741214445812160628023651431670429102959534631823300790881015648562913184309589509776430698472599300167770638053083562388770248621389635943103759233516777511800810349249465073724539014877604655497964835243671302738713907207530604757813483369919878923102466949607804208286498366857097126076976788712527369571706425763617798454704704236062926466601781941966092071959914716562052699551304211182270124228057666282362445356071303037319385186493360123996540906793464966127860689873231366247182406321823352020344964427621484233606720014383583357669262503792219782167317036203986545154969418948826482069123457509459559149993081001096448575085588022783687712724204690915854101444915105816176396884228976737672305419361118293386974068915826845197751030451261353627499782379301006969572087937469856395001479549003602269219075788276803445462538199817281815740755873720606214686028941012402068512407905210824642919044896015158185246283960667962796525344294824517783335681710130215504511891917494892087266413868375788751074775457966786195834559101806539424911705598114884146497398828859716001733769972219242013017470515174738826742894102796805018087988143243433532904575009883261332546829408570688228078913205605927792721559079791325101865631576028365310532125463678746107723855751071978599747238491541145395829163558988938863467947569380673824757963516312542833919534747245126646785246122146548819915449976714201742986319313193696794611370593265847267540837130980477033899935099136034480009458196222386394017174077712338999652758402214848137908016523671063640633391475180682991053649319781467451375198327151925353560893989397690524162515587704819433986997572953302404700123723136995395237920450990211810962208902948452882643314631871809088074444323618018815919229345394346552027606064047702494590999972566211289750170902276420852054595356804973395099405223973492348545573296544270304462048062101093613050985652450752138549754260120828975807630467603535419265401169661681098831525227628681226091778385304313489506399073080518215033969700452090360478319309253138365142426664617513179281696251860680719581333570138222963052108231423291885966987840029464324623174252034474610208788641858937978955881483721536406859182943987716398392596858180617546998904376854294217408321702734743803473243418033708399427633406738589195022155208050561480034448923803992603110720768013892733026127405859149611534139412337629191074498816920800669486259878113355422774766167406024654407608644561988212590868163492670374071938526772580389499030468999799542174690497848500424630137218793244982082983577246916752298483422495589130984114086725304439717151250775192341379771428855833618903502549441473520479773065814065886815717177404265556310771263816638721663897654367818582317732681022239219390491260940305878375328527053090196591552765950296171515278921751973605132323451126244470760454661391071599967473987006330951225763044848750726245386923095702398394979911297679182381059527078766585871081290212740058745854309259167649262253937939434081522631462429611091503014670994274702058275539004699750749642959048350343950055185359718691862086751742497699178614232612629771511420902114317261686386920962699678087733973962564522041372230048081565015063859514363606726868698868609607154663524476458570588201156718323872679115195799048248847708745421960469985569023657558709808767296659007421635329237288166466651187928663409422147462701655820076201566201501313458751723621538943512179004523820125429095586457949051921785454681452727140055133884091130771154131583395896435299660060806073808311396549341379316056209989636178544886507065461072487275072486058875918196724417411038003489914929134715347395160698852201041911559557991592752474900035266817241674104378952231340248162370102674993486989345764172979993261662985666415182328679135872841660216796060160283187202290605495595348392117392033282741179580616657605506718662248291520352415820875353085661540907544394650319504741714586586511781398108162358276164164535373213521030588934091542324732131574340365548304307259443758332522421015083221582314976024763451044909768125418986872324629189156770197360866986702991646507024584044530850558667816861284598224592665505171870521344837944985802687437571755455846009287674356429768339827861654342461091032448140666784052664657295148652749247977172881764160283427957563632516736112019961561177078492393582918250953171462053523267591994774019957531980275312229403035240236392707094020280312917252068731707783020320850587189004847803860658163018276986323451782004022055684245296939777082229957798585643835001290316846776892443249352732619673534964550996726806139411723792850255122409753787654852467467061979955817117416446987896215850470128208702830587746217411544392821735995818469582624383779814849356288768703470820120672631085232760524588870701230962078258051527614268905779006860528313422063582523852161138788730986620380006821605582890454567799016986761342041128343819580721649636235838840616756724679611424750583176860416348451578238695914574327305417781656100066632859260584478455327168842611527730487663244800837244631789526173267506216158038261444283077535489882607663891725233783040550182610283813065161524374039639987320983024573601501325319057211130959060072746939842495795047558707672600533900310539517385181641200523008338938452025816605912298347792186949649018228634890776330081874199200542573673416073108971701524339837716145621578383986014223555662346424914507411312906218878870801542228968301385029039069264341534221400673195198161163025737066218879529757567299617173641657844825937482518177480354825274457410944480646084961649934407905576737991060769253921977246686109054643299062730134803506668186386751706574116206352551692801226839548370604174611521397359415835594606286666276721852046690834391099799491824978653008227812174308507859936552253917723485763712539649007348319320403474436553493361132367362875215942295833248747795126890424861215811658927525550780427710913255627597691172990393685588709826658682082222397393234809137475022688305437098741200478141583920125721961871687967030883384495019214187462637724228994442386729867103233331645304682766007327174532894273816890317052806965063181288855403623301563805750771502397644469556829273038363152893274191088903801385671532344137581754913225599449853105503482914354030688363576367466467769364172989078248100136283036209518533991385514616431238742825266760705351244755333412340563571771947620261435540107980373275868271915589448146904430448521655738909379471363424628961239832624063839787465889787677831463000736674195844828926445853437878250291821873739212031844820570534511903266273205131118317639087398860959260150688382744629000530928550856834024839390079367834749247306610633977816287572519244831910487520695717805292593249822693208229481456018966882364669033932657143001693105122836699475548578546704970687083674046808014096903677164612200316363366735264574306633104806088901781728430450686937661556960699974835128369272217497329859339081038857099548976178927384389783100828594963031650710043805257569851761548550161672954052634937658204309072871915182502631264803883869982186978175778265416787265820904642312231651273579224882698951586333535342918170083345436025402497326171111756652003629740043737052862005837841430545312866694294540265219130197789409714649110940272266122466236204663414975956933288171216593268127819136463065958380024547185096288817323365275468690617945997367972554743457844124266729428630850670722084839966580998395022529257282275238560438496155671781991994926799706109359055635358242564424980007812843565434331059569514226915590593788299601886661751764907163354350588279779726262235522186006633455725469384243627943361548703049727924386063707186727199870691576909894704801599295299738038821410324393810599198726076560852667432507391566943853743797541615956864629540873871047428472672093911560669348219383699448943437375218468880220096405338792411662773752876807368986185603716645042332198377091712468745138940496503761407320134302755055339590333592888023024024563142052387508242863230140861380769618828317961533350877215744872800602064042710233103646739931872418977815192568342520346816405455783792347584376500736869701328655886856393668712369760604434137015428840991878421355809739887845708956348215183019776750233164429814136650248946850769545404665515584415832574552865596153867152807932568068338044015021375092753214378415374532483083496547399716733622935916297292820848119183590303894833314249090081205914954187753700536512319669312225264915750003124407686827553865007793023764421783745134492084861980167170381153637801761273570919446604898035418694396434052041000542800808676802207544028949028749333759903636674415910342673245656350596523472945783336996230203726174951410668594780283200690217784780751903651960935978549886458466833502841386935560785261474076972811826386810604951069623976855598839580386758532836524551042615841217116619254697054891097396567394270530273725979966865901647736910360133851301902164134849439286016837365663036892674149735596803701125749661117292682698885801530237808360916738104878327840506108789302876990607336173540349095525890905000191199267176549229363133082929330442106236826076705895443733555025736643330391518615838961586906841912295096889454538280256921797334030606132902277943106246341059134451410965240293631310035466881767560422485698220536555976800651768626209896466462695097275338421710040969773550338914193076619561678168327047856841580485524431716865979226897721972096205886403371378564477706051680158543034744401095230645032682410019893593479877142494608622482933016755666395253940905958913390935424187843809073807714408139663841037943819027222321080166916810373820216475201241775411654105080487326685651507643110388114503229066429397454572857210605248997431260452893446846371083059428363048520659100743453105594679704495975200478500368114004352451410180053225634803452293509039983006557921352505090930498605793860619624855070860706445425718889537951173508380586403150947598580657153047627857300314888773132068844443355982050571727949875586668350629934319882669575836544440493893948170505318163981523756868961606032988882489373147434627611902742408512115028851938868284985650156039297030417321313162190923489417227243444943318611969232803969535937658639901774342236288797296940818490480380237665476004163467433145323582371865379830215338250473549439213258559204760733300759459061260424781455017690928560369788688024248812821935506815653147173783436133339035492499217005997539229988117514684049623636574090322365950783807636148183687594886491125538835767496382949100398771557856108068897197418867121764717861361238412088438980251504367348536220985056491850525945135422221386055379617235215051980925797775961171552350165065813894976757112284981524163390908765439867173329444446458708462429155789795801117540952472645365984312190082985300123490139605511417286023557729722893890650275493489959131166548762937780119001259009439438970265793278543604630079630935483296537285300297004571179309147226474342753902642325008188974924122222630645443701863719631827770737361502172522992183760128136227454882690549939951837272370769298214091440743307426640232184569561777967278693807149799975575331807434829329812886105767836281027866279393875204032815445412421610270593065757574102521400021430346693309504787156426555815301785437644815532765208771711388187246562266650986672909972124677879855425745824330135843485366924705535063770666917776908871611084434667150159949418474277394816739974271103820880034805361479126111065836785659777774977670614098046003322002425792868417029455419634421271443280658431100489924632554704761291699119070125798757967666884560474077138718314706052055926024886391747487902535505490062667874561461941902076560344385555114282520659715872073336044162369523221368042604957909787963302499096113992038107688982623523271958833773406828703746565163105981105842893246599773657959946207624530500662640358419767504712359793597113732888280416414650549343614803106050654457273497849381136422624884647062696300998533139508844168585576045577067416601407452226214448053802471587712598626614774894702991717467859444025189706017024594489822675036451407075370898854575489347475424448300771195220760417130498203961567534718469100229153242695375514237590106642843888505532885397908598698160778554726215023941179300015370212376288574449541582945997130751916780926755148434153597945917015681978457461287083032374267153419152402769592814681760710167953132457524582622156874083274800478706780990632027931483761012861061340392847291409749891418867151717112901470696274537880503196905936077859262324248558387801765464922458871805096379183400951920012680507158887979827829483310187320043591781883989114732499082913925085557741828980572771723536215447650791413674001596472154987469636603131007795240056431528208373819576107262089503750543188907471654504974245821940346873445838802374450564430946261951031165426648089111686042928053079831337173457479004070232567181804225909634134393190054097570349658821172412768642093942834615314714902705658094008186540316072710142536059230739781453509924212997803954266698803967843447538885680860389897561066141957044997302741108017068752856153706530423113840694845509871509378093397902443979664960739625657051795880576483863913010591697635074042734037617921295858811166938552269170124784274346277533083550139731928817195930290157174686694545995928593729939977846010563050605144473250379780286232048843902568823329337650511814615023505942187507506932290581072062585364600853329734031067009796128258354135190497930359717144639639323223208252240817070455264714630115455898918745460821356956982556750120896424506011454105648736202153246942743951689667908463450084698405914555331921937759497435578667178116171542526204383043203733547306058957138770094575763254799208689851517989074558726190287091886225954360526189447589208305113558252555606648417406336490746908306579133748339254085249524685209324003499755985285264158498362815153920404679636826018344398352714029970637670004518233826940350075519025023829580089290548884445443767820370611367961281656854473287924429470010887205179989221108851520295356736568040610095932214064808656837417798618788646914855560565837373796885136897430572697556054005570072899175254080620301343848886801134902235909748573118551226360432031154140197603077750588867954713686656420170843606102667273149888595439744948075478455810018273193163248841280448872229695679855015464855780486736535227902836997918084867230649622210045270857683350352120696848018171376163299756173842516034047253710005635164034216249202717966824926458930960182645026923102266570541641475347203415549137704215057644528078090352483936210930310228809623848687792314524084163727118095305889004068843766781431498914299893621278545260143140439048499388015563360595131167318911327657778813646907084703686341119632306388650748085212568284225785252403086993703255692093960818587414181230484153204049202349890027324475930203237947907764447523984455146730440321096898524496196714343396489589319055233849818852746844924836314634250006421630628686858848274533186699267347306427350363640028560222189663501142918263431997416325337236879855345111125305526239104082639970934508146672521381105913047210052428189886265331694693319516752962093067522915907159998984617928805926200084863813881128094405648802106048865855191846702365421761783505181721320764619715568376168842855890972407130518776819764840992929984019232464661763834269707811453551722715023715849203517936817522394857812034194748102789940412779756055493691252522657539636592433154730695581276835750417083868843732028329494985903532183737997466455256844968683294286372408608207355305031791101810273768933330342549798665067002937348748484047362492255092527523699887851946626804071648160078404463851055486265385660471907256786655890927245004810846316449807006807676532339802906599038762152646486686082015263757316044110776944644163511024559016349005468681619392058639633944598120530415192347525242798484386521087634935336562303266389523284632119894357509659372127587403389421815230290198803323251958766768984988264202016964784711175159439736224553268760244496460758876901301487963876815261721435488602797999583380507028449575949665315061117194591153787418599505246576673359391877078152500255684675899405400394670754618973775705298062658835360561171010843415551815724320094185334506270691763808628707378238695869805760005749521191451741664725765084671801326508423422828102252196711361558185833888741556992123979692271988514737852522597908593373354920727572264628947096088116503360470205219481508022180785782578773713123995978734898961753560539764434066622683927816579438213994200186168519516088983223576023909484829874863503873821292397331630074241830181548823289888512075203180101798192675056510068225595357219355883221434333956809320392616533570608321482945751048806173389968000877029603913129050523926785407964143238399967278809492499767400843478888827014867542763719034680643349233272849402809687301877900161099472818168759291903158026400098269967967922393022684606063580088749497060895154311314146899315358878795343966646722969672146861867605879121553529236853108986106821238099897152235975802056998027968976214910787935891461304363270864024698489195507072290380260285643963419839501407141042714097520317330805676894061900279101693974458153904150128104921442571533445139239707744571554843567430961238203111003084683861815488627569339818601404722935039857403838124588604596425225521786219665023434582631122271149115948872522907981865286854611295051488094453061347174195283827613380242904727215389323999573349056182338073808264093987091253655841603107470302872308607863538111665286343582023633514903951635797666432328676900054694224607967390622163482435340974452507576511937641267841632118785790023277272761338613110363940750259808061043625030630047683530308771179416121497566499827384071285049513269413219255048913703308910781048203213552128823613415528895318641566427561924625487790961006741966706130582315884686152229343605282556027290571059994746754373548054375018327007662569474586892433408673211101696215814544398738801550537368287923797464936950220264787840905815348072132210628987836509257009265986457656408206457110577376312221874436403497761342149672415975921598660426332165802778507832407490542587679361036876110611921485510998634967227392326965499718177740670433768434630959924572538265907568522172676235705773609885588820720406930954409836387449219249967839008663329648294218394147315790426888422085376575540369442227089588907469057803834703518129667271348482826197265640314788034390799129598421435779253871068685270945004510855482444390466860785814782928871396414282991797226891647772262682506907130891641484027964060227445563613584343739453431449191607261737220735724555367033751355405969743137661657122194865297609871859082594883944739339839638456837691663505892591336816639067262635431404801058646273325753810659140661071500237328053902135228505193853268114671712743717352328138635740198711963093935888288530930449107711103109127588755236519821532403873018721014417015526992163282588919191088325447268331687788109713906421680493272705744758869489817129123287735005922995152939418847419151327085678487122198862806348766120903072022520250234687740792748236431999961983199176464766323962431350443058167281560542734514114885670937555092434066631408942963548572178618452503741139586918472813782041342698933086343135465310556135475392418111901546392583187432707889280668965784834751964549351625978123268891991378395968003185445329799189278686378213094902483364185670584537596117358074530761382293565688377075118063994766927739436976846903746404881420828742286715893160584250122638640705945225129272048583652969376458767069025422959051678130467275976042765587086900527660953633123013537771854032270787977099525612942191691390587552393091323571921951795584691571156140670880575413217211204962098539033616966578221299813287573493979984606888840106435206475818437122336399774557882813570147786318315059026825651307794115012328675444809588635521730918839153565233348449350398741690709426387739999276852627320876567119960141921626069499305415231416521964192106759874181753885005621348725216793403062377861801635729166939014414477896953361861432796878253803738257835407217512587241423335212338917758690470356279954646712439768096473418723942358879396390424532955310159147297133576072082800432659299912899603302810293808730670851962243818833717509709304645311322526533388378117658249652000278489378304265071019214250318291828564634114822250127012147495886312277686890715368865620334085510086774668815443083699017880556426057657698414942629508101433142925985762587781005760254473217191873963168688898975464413133911069441234697393286367299038017232423427889386795598601036596090609934499010386597041437891372911977600948292277009029811567320034872682392897595098932131935784213116863689120816235089651858165141202454697636063069153449073841213245214511065957295593323215935318726572777493708445108136044952673205087181676798386999717865792080689767225483993702473454295476110979987551872114694652973560051929554326038952651251104270929328172536628765724535386215733866575656868133974141008933231500816208266022649036791950517293799809808501349278669846646436932785143634748181490218682323984515842287961135684644390655645066390127367119976584070245327877443107165878751492545685473151506075010236378395880483160169574597702872730626673502782941872985718269335025745044191329135164630236332414772258450207737272672567211044438628474392697061259341023139920833044418145112425500582080103776388169553653557890927233509315277330500036518402880280470951200241549302378167928714641655255050567885192087145778452700900813643037479310879545700071227022453999159752234774579448544943442001464603266265070749709748914329537015494491181641856204060873232467143984994561714968123632554353600971537705431925290769097869693158326730561150791730590622303502579792183624397940312843457343389462882992578076456353063924117845249845466581211734736134959017206787550850519685752103553210333195894499440111867111134488530782885811099577434881712487899931074276082252274745118603228576176296031898916407325918219708216028065724087651427506439701541088398178421686810372813678430118790794457298812701050849849527257527437561878469897915315008865599991211651559920299740539871654814950895659649595415439706111903438206009961335104089874374411659583674649997506714729483145588558532768357424303828938673230673352748917773245821142264243225091403002915292315520688672784811703601837058568453514779207436587893517130491940166919608506920012160680518082726366694891373077083169626271640993851619019713065870536494148493222224401254871751269234609903719680729544565564018883683563663970162360464233237022750268686001813595762071942668283136650269318301823638544705210998889828737469543687153135457570776607421388064282113064190183283195822307704520070212718737872006458864566699345230692918688934505310361500001563114717124823895828197073634440864691958428141390837330967847967895696258395256678480991053794454408794721165342280843943009109888212782033730066352106645915645899236239214470672546146899262057585264929230223864896603970776047229250203968931096496609016270141692730139948431096912836968321085207414909053386095083597288400986029753407626162014681439024672346297637516669916269994033706849219648564548894163832693789443610033397766989721880467818688815527367846375351476228166708033917278045017956433312737529034060522563732094544508914099419189915278722465932514758064158446006469566406191736107590164518597866269376531058504521582230411944295263331222856228498410554651380964419085316618555190783577667531037543630250067491549779754060302489825846749442480236713460497763081407159200943976521126586353002582269309998358755565573681776926382407388658511732204119821038965471592604066833765314978718539850534535534065250820793260630461138828699734890705915048827942309456267075407426417597215450010165314802135874426992021655940936764338204250919528637496024654955117256173904698671712865606560743275580880469692855493140995454009744197447802432818968411407465106775283308298708332307830948353882556670900706148664883125189017944456376232900646483670091535077615169918102191047080791524776205315927033809520015923745694029421973127660296663630755278998552531036586346286668221271203218225945170678082718643531377388788897471110711045438296377322240736555348860297124067950301088537304079565495289983641001225153182690258950172922411089214258956693930122981347972575692821686643389741512166774691454057891103921135690313948132337437187480106620985092890318486517867692006318238864517164463741841977923519159524403738100505730021349066929741397204784299589815777497172004443083213090327182555728877766846591493899911538988969069989737708264206529768281392000568120299870626856871879908068488838977732552655144118303372144847257995378379363734212172198792092165189122359985850823982175182244664402962124731194009128859428778102090286683279768722946141899337462643801812244255858850707701974965065229589923847126309967421750188525297459024411010724689171261982131328720214304900661985872600690373623063138554539009797129894340108168972962016559600209583117430642025248325011220688177251028507492254803480814496336677286470647532645170010207068059609773920758186309356111477122315889323104040460517570329497538866335661857040518354149109410985235923300939363237080560166947220820960092658811681226859219214246783932769930791641530878718462415375737609793292042836863419506662437746060303954415948707835384878460045698390394725767923574167012469115648549860262632376193555402333198222339678421790756064873201430469525874601345285107963739707422244471542050888100051208313177594591790253938529485442624951934171814559554800556582298340987839103044723931392902257626747435093672655030569730102740389860461545358597195469011566601618735856319218519171193174324485238702644157753752834740573564518103756611840159688380971578783358785354473104774509820167145308524629161667801886216035930243353842165044018138952526386676002592200483769115464571931335339162106402836218636072855094925953664320536864688307485409392557616939616422403507467359529638763130227249395991921173768276629184908197705422722027802291720578534820525164405370416823247951847077518835043885284029101226358561575656944037279407556520882628845982305193054857373412587165577193299759270235524389368340532428803853175385418145267609773070218257450754450381797362269477834673947806706048929273083455690294242114542708826969970701122061222436786556029129807226091070301689730733392465150728034603669475076896997809180093145612115684541806995434602758197331548742223442062251738845053167948324279023824682902687488381650266612108553178034034804692081627219288733353904631384819252382119720391704006190399371162536986376292682757727165136303880861542892015709094572152498422861199796217198171592655928041529201594934119404686161353127090846652008613335893580033234564950164797186777091466905921798770373252730964288002580814108977165235261598880258022256727277328466274621752742904823434109168890923888524716915472232680514666184080284366236141089956876242311713748360642846986706065260628511637289380463769918234593415799243007339728664973667738834540932122154509473116749675769017828622526112096921744869305892472642481899079025796577491961096532103212570050260471609124282882397246272452043658707978621908452203630089867865640144159726891985852834095034724894411814893025773523687912213901244191052616804348373530670002764666453805293444361957302952692416374301038987179722476789263480385886489385879963578673289224988854470268981797390216178358457613219531386146816101969875008219615905751668507162982205348732653259472289728527739619649329123718360192801494380792667736258031580542586352764120412667260306123058784305026544632994120245280063611912359075469405204390209229378272763249254674971928739719860911520461894661712293746929504524987811734491522075155856916679525112337763896547562789809253002392608824915497176779480007614328143415772692689495364882441590139011763815329252602149902406304899591919522553218895822493239376506089373619611139029104841895372896891637007742153484600827992560797311911627787279668638863357870698916987360770428612069500946146712162953902479053477758884141507470203798016626741644880473922760976472087933077889807036212806923766706305874734372934511714457021155443930408561066787810017320735442586407572612987945287819561340134498468177360793742008441201478500469652814462544716027135694605695730991997928363163187099740516816254429473946124994324593174593490948718675119248217486693144286994923176100319772947340319137631905172211134416303253604266898704339305321062396299291408211255880729646262736902068060993529922880452627907817185516131709616134784642390077357372026650206020860593441771571049347757738214786543590008659596417202671293233022122527112248134407154134929152226510400389394730198901315141423140372971655648932885756909018608947262588472188380096130820380855646325765830903637874438702099821011002178522663690274297447400927088778790272240943531420853271861717716315184210214508145656357680992108755368528089191797910869725909062340991604348947637135341048916002232856397872613925024890527976871982224725918655640990522570983571659211283140008574668356523953327612393679978223228893763188478260115280416888685119719009614974923477211696509672921678626660344498965360081693355069320115100490202479309745588820439443115533894930972380209436077714627838915055540073495731618276290982031382496154056232510631805420622304827416782182500902412787157123186257071333763235810739383153144973205936565922999254765959838540659247749470436347993909537389026439370066567455628205201046469488549814355881494625191829529129639210113666890158172043228269464137224350330104284751274100365511183410142035585217819976844656525634515619177283078114641231937018923528809758089566424741132306516090790527730569339912742778118142564709874744118505294435661737006208398224506414532185719557916257522320944673381822510967650872623070825726313889454790691299002388148239165528803543303290629584237572249298937961641085042057347513291370557101070415439767736375448930814932371129542133234187248972003423864241476788143716804903519349230345625927567605728310262642773758238398277615414898920959986912687875017659352676910739831713062801356496504529812749360692899454169116982490668718687406310725712426205602166439895028963967100356861818876420713642997603893036379616166359047337452530005549877176692431143808106247749457439605203599655660551839293621276257921920152678131558776948455199238458291385843251401646584840242782929899381335396913060326104609206394710261320427151320273208385895409912230449755782579942594955735957054715435762746589058114270660375717503068715902766889463357141319753860663383787046423741457884371372243524859248979360340759580768053182983888270636735081728835396832177250722677270945209773413897512724178740565893306940413463440599817531768804920196715699946279712076964254040997719166708412093047139828288448153387545761359725065771629307122391492221648549387902669484591258849248130508133056096799795989918143432454244289954326706956902562688496916765619257226592136257708138048263962741185921876403832545828656580574034647614048199937972268409664876716661249062068186468114602882671582186073168061962402799610436145480731957045770874101275053667767141094563393621696293346061951611119604351683510273601067002991347846187017152416823293459852905259656647128305843738861215510715526430733700692563041291349916226642177784716929483167796332719216333607298969634264466397344352863545270585115178219131703679712177259915937021935673224415406537642450109320904657481957313888426675863806534745082929879836553322505286701575636570263245268490838308595361900123617882788725328266972846669121775553899547205862000053885347058438313424150205685803003739271860682720666110237065109966022718317538770837610840785287049333316810510750618718456077859229993180094590969690190738342454418727238014965812182854402792025653369146949044538891481015127102051305818635085920242993319110485284108052196604059510843854484277104902702496591982857438709182303669633680041756182227813683886607181321905710225173159152582006762491282018038381824631602974898696728391307003644326229580488795784122399652014556399620445453076351214868330354645459750142574516678085862392845275543200912953780712958433316277784183268073750302145974375598457621777056856469463897755303730384512947654545719623334437609512966045896854861698892624160529262293836112839716932060027534251633564217485738270255348495815726368048637430727624694065827856618896060137389069329854501147029998586764189441504752350596047552270913032803740890041433265003565167173959252956563272289779465046618010814211375740563440528023125400806498340258750302436658333065445177834463799859499809697425273533945835896674642454869419349613949900907291578734073663309260801225632745736039251437849589964558151598534877697683858775694479995241408732574687906048896309233902848725513339168214322824642876993007531521545792610246224903632870953016670085803381697508059494819527694252712446424459557920737695694413511533610381659519824862287879044241915601159873506996906037661900451335912098696462498638934046640058609376176073339536110230832725535213556649417717009097754088429281487009651285479148397321809324504267421651067120307008091313792800291455304989957307265128179011606846307964360378886935511746283935610686014803279393922328219997964114882190144046471030261131033923290405715923445737700883472695659134077643871739432677342715568881742578318519466032624992868691359889826511509867762008720095349914837492298572345749353325497848422375438976502684988032782655131235501999874515508216002405517406605234382264961728992854658318873181737521332188861027229226308168283291456854045160313850742498242744732039796348141294289317757393668139455794369221383826196164005360039903324961812001020280549908871423809029929878176149459148205308772109709677021672623754441845565913256801032234120117005825172501584586710611975344922593823956005846902682795431899120923318523259270067003305985763658427109830987593291582201512590496638204145577770565608059971103150793129173198156633425857894656825513667616094602291926920595781858190158277628466050003350715494125162553180123327934130608681744331681465739193114250782828147980672469099370494782837200270474593155304416608695390469342116934449795156514190410219153979737085961809033254274228390300852222901663018977383590870165964877691252249264810097680857661516278092945744797973607979488806941082185149154562210496446985411386980420940802721376605740181766933967628519745851554305689554854296495719232034583274536761009715112690689397344722093209877189462670748213079546098833666853834366243647220489876840292254725633852312932645563400861644225840496754098752172265044096537933199235800014944967861176142936954647725330303879780706148634743483362986808066184589766494605605660422983797194212433993952741563911925500803574400245596261969532350421011496112759358330126635025163327711564686772092638310577560977012005957640234612204721766854873053777172404384806060490192412836688828642309141470733802247235026569944693878808379332042797503701761282412090467934691327876302577891037951617885207092401431342290012671672302933490295236786871228858878094423595504709384036487663516507903165723805292055796712429366412746376743071120567414301540508423961892540609825058987641417736493284920960636184419415652156663711986548555266663907612837611603599454119296637256260209474025771706231412845459145243365899196776837755538747786333438322006289608455759550152500247989368229609328065674755066552140523402962560922346068459994129545717663268629902079340584699353741565910335857509128268636298062021468288144850743572195542505141640480245071328881623643125938289599247165088445578218409335160186047748446627524468184550729781581171458584062448872681420064768165804894675480512294380782251412840581557647485044490265204764997059187478345007735602214920706728679777226597095244952326866696650760797954379570461494421028287469373069755877093913781299582389244624340816681403481081862096294231275446081350299423652645647572541535961940698667887826140462866408805307031345774204806460744089296737350790560428145771648532152589388810797392329081451359749476136029285580232179858860177811569416709841145431521534614819674938529072221324447305312187281286545755803270637936142005090592420018208127330874991087399147530604702849103533299921162224681318712600588094201481028539224014779737478432239473489611137502923749794310298385148091253609299806795342053395321522095617173118961840312695070003748867960917107107702570675322801717390559262769869747993895900391848857495717818322896510072074966628273661838279357948454836451861260508951896962344463557311946522862027265633497437752213000205625789446389324309224385631225022944422253711409717494710339212222634600086552090139432846939451445942304586485856428912765314602456239522528037501721514792423135703905082201575998805612024303556244181560450881861190942131575247694406492805495434087239931921393825401587622380008282889852400085266397270614687084050286237727492116715997559122579584794603229582165976834235162259850740056308905488561350052271335242762629321115831446877190475595541114509747657181745974044909320562712024981037832022581317868018722550210231828162357809335641479279850193329072011486303421326605757413800907126658176206520951646460841409387803129363649271794680940778496657983854893916900195092227269866815969995164548665733224467313412283148862811337614427825941681246248733090790293887178414328660535988327395546261138832792486001479379681771094934740168410680237094720929639990393678108930569847886850497854088954696257649060587722327780873502681474547799138638696960375563645707306621395898915402933602258219747795254362822306651999286989628002730425779004971517933183681454807548598988215869657134743263854148456076981233498041834334357880634067577805271944762522268309683693228231972323971518082474454545670671595849024934066241363279029466283742100432980136743135795071966084987688101166556516349535140113615471731453124913168100606075511592669748387448500817530172717700799880869315840913344742809682054319629652953031614489579167444542155359147771790706543097924190362638560057809062246830812589134418869662288151865571390072488687712322191199472630775589941276507930393868086390733012274693941510617361400970659341614972578303729037525509888939072458593533484176335982398811345209649406226162094367716685311008473101508177235429580346898587339058632485220546264169612323930313101992188465020012040924506795109120898182722320707837234541654821921960176283860278321266645472331694286435269355758537616764599738350194064048274712562574317111657637192436434018019228933895347967708385040247636651103025333614016341971082386999958234476265434489425059889082468139195099004163654108653148378210973837329454104103170777282658888371775018757965734457875774161683409784588743646849490885822348669362182369232266818299043590551701470609390042753441581775882492470240915334309064181314134044076678021201393601050109389098871434106596494190990585311854979867767905901122952891313481598306662966332790385606152554621697202735285041624054952444684192617217316343691964716464307179412600906682307035030281600839872622833299576610815037326338447283794948579823929851926601457496997612169488353812164704207663361218639440086942143669403429832794058217849544091543886714581951984784453628410559165351832694398720787983842619582633354433669515311234065270053855468272392789774769921433768497560452522262281596705272349544254646127299452334457000113958409429656911242130868819336230522341243753794581268787871434932471018108779328892295507473224211888630513508064414795005836393720713967369688478165944146339527879631894367747863969135438612610587525609538403467975984215427604610135942167294744714333752480255582381483166343409780194648094569031391282975589282230032651725039918798784193314213361011956636861662988436881293909695335726340121021720337241975637425534145510476313459948613746285226919678467901790284230164015679791872574748514652208158774958131244014541479796618266684958720147299728710932357641740798263713050556159288200177674790526509743489325933531076737774242522496051041803195290779216759894192707348570520996218469790241027572483039144735275565748875110001877494980730983609348709074592617043157569697361604538873600668829077396997624401491989287103239700384248060384056252743734866114033323451004308689004510748551477502101753544843725117298449890940464097687168128155360729841835432711132895777452562408256751206061761070498356058454566127973505787544548644440350475129546224637226121992623099640181491264205083334718696094350125856467523692498204854062957027337542607283386321489942488548676873376113235362201543166864682720817224476999527706347251746792875364192265790027642854301560489137538436983359007441342790791253383803985213117497392277087685174990595259819868018968508494209623857725984152422712102775852710160914952715588496509223213153878080534198969106088742419811150462485084695217593064200453819465405628022655433225304169011770085150251424713905166674736413423373707653158720276454895972291356915379476296795645497883645106403645625099601046843818456810575964801171372835670021542774691939952246272946731530261855822354952004591916351221490380805748809218830132525933042733369682256619145720082901456010808435419003026536023466853710711119345557532633166380953348442638327116916193057423885724980227300411359121776758488630747244633451905877005428240729733434017991995049244633371114727021737738174151641828306064683065083430502418754870758331625582179958713975355506730388388397875924572393365619731065289181447803007517500384895253331720654257611430916330367033465531601663315425918651148507878358803302281688342547987252862448790670318752402148227471271302829560045534011259845724295206404098777477162749119830568112685731773254674190590456194273818358983821468892518901270104553232692114463860067048050526118475596334153703473910080240617051176904038030186119857955856899305666024062293484092718789972883774479152546988274667835384844402888723710774562965394163225744503681034066997328135570149125074713597782321205420299014861016257326772069438388398612426937976661115565747364780790477601560759004037632450204197554068394666571899229854656652859126974157420944772241738490727704206965261568768096280022450684140776372752695196458679751924407887591486742427577308168432899509374490380783237400743622785834171796748619360941303078358412636202171234282228331226021890615281734671933875007226292837395974795016099571014899061766859892995235195211903694867248360713515445613779291809123105018447608176676634352207352322664245759859588517736926488548992810143163042877363282204148018831913932135329874833811523547102253126780465386262190275741857925260269866986398482616402769579462625300721394333299363235455302926261421192767240066040717146802094600279740607250170761377511045033703967979819179517804169325423926625222327445699182961294851370710875697191454105246511567421781946173496765339618597121244271452134537480583478123127543076469321193015437933484829600834522165008111343281471626608600530687822376198292883037884610818154121001294285120836064275901464661845712786352676209782412017670877931926178494420228978298954640488882468723775671461128401021289492862302407024397905496003337696661442863821415710284458697258339206379878001422086521606403788906889139023176332090675970640993273866082685925408061838279532921000938377929359135563887990392793984644507011641422594979963572846656442100265116234747306141865616387185446341010470260667055336008226266241636658132505393345806880049324751004672173301162318784337975302169333499636215164214508173707113432073996789387118928244513975735303334263531373245891216866958280874395576527358109787749714895099853814159666752270448320417216030652797706072583306139124684621826372470009487368090517246336582119803342279553427815369331874001431697327762392185368786107755079673737024532598009343007200850936493236850314336106446260220794451837891170711901014900521986333577603541394789506339567586785659050546212023937840514517520331486810212966447278302225161857596480092672870320149781397784772579573981229054022321674935107001639793542190116681401134206263883429396233629916111042051051384288471335820262369769879073759781749202426255721202666890546848962461306284232071356183302970585479102621602818764982639601313380737788386029183820363502833181475280757712452946760198320286202850138345563003958166358286832609948523583075906774005317049105455585909561393055830858089160284000571084552280109085203816541410750355388546415635943827301477772304103108236072252832397920669342945573828954181437615708671230336587489203844251858320044628572650939504677793565636583035822355807736994557990416429125782754822788588810206087907979889760261921684892245356128087364001601009558653439397620554324444827171389093808286953055189887133020481431357131426743333766655837793196115421457247825055937461132892893940073890959017080623276393354753849590283545497919218775776378431492253245658355461824355838431589915484956700336949805276051970008330871464615448262042820866660678373432906100127012788115005306971854026906109788970311319098653583733315272462703738382353480923097508651720049121530996215918740264739961543148918073735262007546292260845882358520896570350712476193421434809660081412757032621124216675358446616039032202478950063292924187635683803155993388734097777547123284759966304869083196117281312213762780078373052394496212216409664812667941906254932187677909803527351266772239449688659319640586681124826215795463418498131128986775144157653068216648809970202563331906749851563520391122000964562575540124054214576690820690019044969740815293846625281120646926500178488006214684222330723261391178757202927084927249191362952254944916597606971292345267227021611697085915625122027750763435470625761491276988970779832776851445351364103194346027127597230081657023931142596717625987266383980565789055258294402650380961685723653988541442316642800897049955185583812033201720223785943644568974413769810823618824396465184364599618191739500958059272534317506920231516137014370742616419317861416203064964637797747496661739117442885216355757221029959384149101431561924209424090999719087258506562516989713101845365628357943249329915297256570945960027459730203091871276259408380100741130742754755297096874677471840430294529127665707186817077785773775467609440985939738027690824149624570849641875467761483270808087213632199090065624093738920637923599779655584876202544725314902701184778940510513002117178817813009818030185631250057098704483486679634832746157377858933665025640782764444257524855374938326712207186366682278797376885397440199775125166739587697032548090250143424208672194220453266766883542476567103535088288919088527664308757367844652554269279412608202211898021447752880236536333020471154634057784908173053684148173546063598194155858948863695766436190339508674793759156475673179262162960018191074291208854778697684643470530083519330378465477247018343425681963413414252567809678071367521644762839061326114430778089012443901428916696546743663652035917005434185364941223772620832709585339046294987923387258127630355434131124603907771084912213417902193848516353875234303718482810081776485451681403905200725972666411324076771055673999349013474154330147036980473823040200237883027693174815301061239561088855709158064787368141208083294796039441129118790994466308099218851580109196793781931292842738448282759944360161304996012884232821770356507902880361692850138650604433032455558671808777958774323880246372386212593733415581301164422791479745752163154095609542055066876468322070711078040040211611260661934981417775873540289851715588468499164012876614849698208980456760039380014545910265681948788946597049556880578700566721952223618761307804512261840504886187396437338486444234654348746522855687115926708773022682027731295639115925920834985826387463577039240026148576761078357903967090704321450559778402993739439463634088389782528284197518971632058261891606793919683139890384585188182444316971817089539723503591492092481363256082677097079682788814219702868732052928861042653630808605107090589116172439243447571826124348540371497651744885031965430685629120605741173459882581365896729454619085181389575150790936036048267252314524409138389735133118854410250449626345921686258521122711660712272835903447556095099685780187911728455278116936213936794014951932952371462421747752757567490336300400675392984695654325230235903297189281483480139260270428895052686396107512494013297581719248146542231449121204269261975354817829449763359241670586641512550298239184140795393406720715119406191140767502860170701084892812010622061724299956057104393334830252775794970673333168728856057070643558103109254370021933380085395084561690425874966024447051605186001236006505356641065039243362791654477407786226997223192120624780428785539730503680088735908725968171911561218456875280384345875606723418837951694825730252535197840081159259689255723312051465990294282380222573730971577926236079686308428864361662401604221792231114356594292369829758071646577678341016877282093747281604007315111073169736457100550272951248567851775729974955045139231316633931688597296259851592254993733310230926688066929720600081841158786509884172358208284803650728031449687247093046965027876946621805409486160254551621833305095311034352794863672928071299618648706164640829451095902565865624887982823282149490501998036451681044041268427347525783216296178896784939313880965547699176666631983569002358980176632008895032983296620660145403368372371335090958053682122998521515022263522137213289467585396379232989448929232589459569919077842876506520668120655280495115156606920071803696436272104800585659504938335839038673804772784335739696022415440907005279365499795265653084139121889203974879095897863999290315619662092418578373683755204814660949132809759794437684694885390346609699626108655805789178447846805721750523380084103550651592416764036783360038933711048026784538557291695233332119703701289912385121789978643585952245398651013785083248043157555929703180352191072893996643367067607497451891973717470607820283066090353457112114277561245493780516684979871596626659702824732881867306680061777087967961013931352666396148252517982472230758263746675109995701524692972736457332067200652566274990516149680110170374442183332833554908792072349509940987631077002279175650464905585604654939276691558989157303075453456847352737979699225523060116248561471794988080155058234578696222809099883961947483192099251337448157954482382286275199155706011865126386732295338097599843524635828762541583377282982369874395279911598288345674337860016349195674052023276313779824116466012720992582032493540981080801991639034012276698173960351395120486327027354746042817770347333595918268995316666521667356146827617853586758749294109568621531667474999042040897864002490238584994512028593510705361743346884626123561329057190287192440530489989416145792006020766051176225435288158563089922748285853634687983830143167754028375888787783020700340278675203530850341839634894916562717605015911704010308506688445251751940982171688140351310246319382770359988844728366653795248191764182521346006675183118813516803738820779466708919887900499998603821841299781303173064760864251373829853697436932722464209955926427873613528580425177223463998827382733404332293583328670319933103475062146275538161404953353751258074698689135358281340747473554959501827860015839877497274225750128951603987792983637208571621655141559924663503282397204975313586500663453903733336234563209980042827902647086852791004987919882112875318877708740625230055925802765050002057916314571844854541239380556653674812412942603730356023748646691721522906313573611379247557180419786414205066277007107262583703361175657305582542647437642802346462291980497053255103873757644956277325300160970930375225941522426037170300464156833346666927824106635836929394272599795087843610936848595654700573847773618636215183222803822630250378176090780541334870526997529721004164039702012935428044760924391421304266494559079390003582203844398407419545711140333836992229110280628676290132643073508169735361797599274119540670013067962393461312451241394476469746019103083888331490293966102877360132870799250929937646183596242614441545204148877089767157403954161714241599894507190812747445767175703180254380198597241308373710020127470653066144259830269511964567402743603897893499367276116757542878058214677723986487551908492540892153032850197768464684120426509156984832526472103559596271673356950602414340031038524806699113189654897801166609596846243096976371356961730405589573427164159800117124100355315661692358801883200294662159136933016982717511231499865521179246308776512123291387997516351538146431202826801000160239348912090240311994162838656527516001642132875732448791636152405200194073297460424485629160702927369344626886439678088981750997738558687548834273670723534643337853223720630478794726085863893373755775784268490793110271878812656768999094805380269908252850428202462651363990812231217204451913650468350642191449584435333006670688327609368670486417262208204383650683964087004435853959201640907424171053091462889151482485797880014436990017176648911119456247153826463885409771414067643346205053748791020606559425560561691407016613490316905822612681959209722477885117117151928409924941885433797371716473635072090572378016725238872509566964473216038329304187261932948198008002455752984829890664864210269848748804911658204208453437238505470286564811110200414174163970170132794882183949623093645481945012670779067685813625390996018006870585967409779597021248231126627410910617075510347785078478089029490272443653429522560502996694270448447602572815823393254913495828617415836386015292065361359201556185020125352512395520508501378726603865649415897914661537292525424970159864044270437146013518072357969962229082517885242896956581401481017255500484946340224667217940642627782945475776224842258983109612362806582054008883879458240157290236913045279988870701265097280956961785164536955712221402379626441691228608126103080637086149758498687865424491905887077596958909359095888790792793547231754782106376307073247698290366073501575299213068924639715880985922813840095349139039509569663167751055834244234649858711944238686307039891899963826278197731332749704396646395606282209059779445442305120602536885713923817477586080493376159044398035337350342077058947277477256293100670299725795254344065292455830000622725733760757217625500284219221873404324030063980448509625344479433887436539993903793083912216715053839597891068243663519076862536115199646148485698190859200967101493324243983080306036214449681479287688633004341270867942964780389181740226820496711050503749652176263416969266170930277643104835111063697318046594187212326233780071111423174252628214136805162908775535970404485559815787200276814516476700575807499847464954181636275624147825390619092182361181097127714145194715556340376998232464821621582755299817335005872701793340569875676262513239081765016022595645144974643456893904624227205230764032583915979704560335763673229220860224478529171085131057417256797542904463043641960946281862363482326000728131063746819670330512720861554158821587056834225732367768121604063625112315917886781498612547201116895699782876568420845216584608358814569173011577768300169241092455663374346904903376895543182172952020364451500253634792735262838013098418542057531807807163686447167791836751830135307506851185709151753250479714520123254256047759459221471842968610398690409005676913512103263892816170260124552534229159350951320337716514090090473522192617047686818204510097303554210746688343108106617997290526757654298432983380385786794911826023751903623984726339514283226536453935013401364382303217527124078496159273975589275213416709134101681465955446460246812737277851113431794139359744002527667869192793954341807365034003428521836939423844603227161752500397398429320963855305134498496173740776955143912066202395503235850345084482475389183747894854702976024205504887796359221903660130324329420524190949608737181453557634671049572890560595123333713704375286594576177308622320922434616327123229920617288981524556727983313558242796545188834260476072275692524395730264792506429638402321160060159092392815280099224796628449715135965028906175382102029524479871381883277721719127448517486306233463639650744096878467881975011865362322132077019942761330310908378335812879620331040606845298689753552299238138895534100951741489960324734654033150373727718697131011974343349776509542202453045439656882941467041486650387980419926568982459558254751696812707633770635621551399273627055432992634825069996677278845767234533544582077232042151469431438989962196413556286039227790508272412046949869436941360418389095055143969224933041599781085194321650965231684603826162771318515122909046632255514030497359411336338163547289015503720342287986603100460531210761948346161529505874236462228088299798154924590187513264108436938640499247009357131499068513536495816561038140973523475288131162243939614065988317405526211063768305957690765948575147196408823144941091565544978876918526888928842463608583625686553775360237069298631615433425937489250003945369580349584078372121337751239656651941671974999971287162664581700207506049554710728225936840499205852797812531647358729460433637894363616636741035311315690765144121574254630044858813786280609136384247905756829961990595620323041530599039060775020211852423409993486755870890088853054343088600448112575998973739445631838114148148755788855497468109003629374583219177463305604387961480295935873631918120910400501234618546390443059194763674567323121084067304363423198898696678428543560110431146246217312433664913879996176015322651904237695399330175678121452879466940016394167506392679283942235004696760790067895054445451872911922786778253680421860697557711084556916350138058725315301253022205006033018973620198160560848822327643108580746675456461845166985701045681774521222377731864547620023938577500193479672176380608966228791073229653963438679042785742248015723531672292718462265926938374098981958971552187949911167442610389249685618791240082017285143306717831799490102136246782769131404698216315261030098846023129841253495778706742348435723074538596050917852222603125450309250451196084491553990760139721037943193529592445682559638591561590912298305554854902094908163089937896609148662297383140973017518366220629844841211471513535272051312461750719825822899809753823948503752686658320707690475775596845938214282050190922256984956001865832748965490945616444728089931085792922944698775636500966523067836727792076982496359481753321085397254267671709235756078894798249335022953175330120931550324735762856261572248354098479553766166771391641897759388976277018421930709305358070906290716188293773934872800767535903023891223612025681636723522387389440893082922762062415212380681034226769189792492834135341346401468484012877200261878111158067795893488723504350495244059454197345114410756105541555541733569052664891423503251957905356438470918226017496878966584066892591328017846694614434526221079655144393722098712444312606810776995774398095989380622830588086287750929075522938615162305421303931015736413163164751795518658247548990256961761583140638781172629406917380685841324288755974629809848493737291436903512911172940850894114896571346376610469044637621967193675268340609306776182043655684972958344386028581165644739372979417682449520135414453887201249736933705273380493167760555213062566318702617574276582634866228966214827340177139293839027013935141891315353014434226619769931097581321014986278228699311699314311719635226941936230553911867082568896002129982781687030261527327409373596824901062331295547429110174793636127298850197581504045460751039915780009989750241643922688762267819750070013998188138916359662256263325948430843029856643445537888100346574075138254749698832451589383416293638936398549527241828877409632340600206677851283207550024257566189123687682703760993946792573677807063899445124894482537949778653830367724583015307874142840658985359863050587868955469554156375332408737600080228183457428944401965461351771306072142956804882960617267478684839774336314889095562093492331854048411612944262428993989772682547131656368894154030910519848854629655301892678319029831548327160891633221115022517722593150136719356815113218643069398246513450455623513789005145400689710245921848351052676580694772637576811783017209309996265222860440851780975669256893617821449917672906156694192653445963814882913176527417993758898543092867997405830425182392148913472454684089770868334977911101643999734206133229617860092947468502566085420558054130375575172247052031789004733519319896593353533249998789161415385496675876289910253193739245618406801910948642409822314857422454703085716955475636393758767562265995079150461969810775559986433107596454752556609473472437591185088838901828939205558059687714771439173489955456645768942893604498207120956977985535005158186023222916874997192077372073972880369356531108184704470385724709476209130282590572670536075767683196705767006694705327833074931699486176428369942093726448744551263682732710752088466350825043617829317405983896361401992732628690728795102352807078773296068546433474832465368197896375379153088847277563750110086975980009132616241968298625666830316009760275277568584571298052485226401656107835888268788100064698077670403516724268839521024856104109795606649854336208791552852151556832141461895300353855098448694555926652806249962076546143960171223744150741133148174383081477261352074990797201058632531375694771238827874590843670570659661865895032209129004089269451853547240361024025652818126438290508223008229169461930955071765593505138663789172374546726488377679012726049929203981639722864230900457768449188053247069529986283430246941295548604614942682147305781479187398860921582336335879920020238145956360777458208845047987640359607487466197853368020245054501238891112973292486648172424539053259880264076254849317039655684840313135172856743807526883194249865265900150281995889576109310574157015724435240796121965510086165230334031879156168032046175177369765022156397984274098740796470633320806703763447136106012326807124161989129668722123052187314867160871885155351120605518867026911549417897761107614561066992340779275382961994721790348614243315034572510467721546484254808994390759781146915402908040199412017025894750136048570942292971980473144504803012402497054895496672669409462412043694120463659314931133554204082730624686001492967635689825647125379838684295031101622240365907675201411405917093983612752421605980806640613657366942071624428079480664524913667175327345571111294772515853631216088001120666037139375297837173386273640848392569751674483461771884464896957605130319020041147046685088621272894109923752657566071359025208696648671858262421359330274626826587837462219958827923080601303149587867656789332639282862688502828383329738573123454561514652028773979455567563697406237737953710858512068796318585355306093917684013919069889557780511908070791294061742176401241049207766068664733422631847146126354946177867414189582222096879767961311353272429476421022310798894037995476087800691990771033085035273198025929333519190150136885703347609923138274579359873331975692924558731639487588792307108478421896300541565497852472734331957914989510813530551890963643716689002768021289570249099186156040779510746081076563983653431348430339843702261788219325079644291152225807824654170066855720392913547647714180352161340575387841095941450141946690803263166346814280215739698474088979427334936297757284767990888167050539868770865495635015519692288432489484732753114806542655359138557494499388964935785529111230379976051003851500484770905954349429627046565979745742699992137768318586304564343996244246601153034069912005929880704934687811127023191147887007897160136765674999485835200412653327560976161379284974375385378911680454283550239997225254680649349779349811862142112106004134109938567027574387398583249903365976309941281161500341548152509010149897756859487641531884632256180635251193418029137684602164430795927946597260483111676000728917945621854635884222140114643329391084674256847796872311872128614822099346293766206751341077718207066986882752877296736569729851753461244338415341262775650423776588333380157725670121490062661648183126533579200771327211060150986765246898735318938043011405143688148395565213424023690134018216735679806284087094991302852723955170195301408987014220620331845807544516364014393988351268617160953952918126865872428065210200102684400197008368248882165988719644147660534788218158137923686864912432672765257843574102396726025835600470399232654014005273720824974864986542148759551586171448412248585619906170749890784525015704027323896288883912314942506268570319202967101469572480608769636535332809747614390123640213391500239114639562234558715521227342381975713177782095409615041267431120582545802376351724865308879397750664770813824484903041120420667188836162576155583865990434822589747932486252495101068514591580249015503474356277884921417078877933766966052485033760825404230751340078884636862639997741552756556666710038617733157605547364623727563718493017441128316915090148668470322945249575765439983553286190204742689912432197348887059814249860563283777805407403503725317296732685231251800585337027942135281932538993411629426169127316212971639464811253908928143091447750523584636093312830578497548694761206670114292908515395244025875640774516405792420856891828703602535975456437858722970040716734370973251804141555531798488568387330314652820357557851817216946418576044893648236573048826811771633146077850539711590973136779040705410585246664598021164136965825766759521403671869986687246895383108464784515958530217048277970366754124515200666001101921137154029656259182712049069900148179790208684900260548991100056682238846626756750038986888220174316570646906811326200106363957108347824619543280146246976913885047865211784472698706029854678653378353062931933009239048580913173896654530073378260409795695620761024095125234877322278230869559727458683286021874298135546473579988892724142320168124861353397285412225884595744313636985382404262022068906276084386945036493175660582151572816215583747502226451802589716893308352088894654469301306474428024866698920263227944116939650034333476567215346250585441801658036982297562923968657164666486721376292310612438859990600395500310563456515020304333429255907418788797291793871681233051899663929836157452971752959175670983742058038836689967142182688015601232875502975142753043038778208333383154891083772659190841458949538348779185445638569259852933149814125305954491675794663798862662418986821413101943608548338008141701693864052522888182252802687235240779247849873318552793265681675669175039409828975408310213163674092386407269275335265934079391265388653053700959276831272713096231137751285551815229437650130498197250545854976994930579353279645914170763360621621240149425543497898422112660196937954276070753359317368183461697755026488642634355031517329145680934379253778479260785020848103088808849633373222072992088194994411153325933110133361359168630311063276434206522370580667182548437180606113236189187137991961740529699502337218061641209505377197235525639335628524556081948433141813026430112552335840118418535231460701448327627133530220387356906165353114091899590063590939945565710035263532176051066240968620357631742948379796286479939016869011888245147648362296759042117000573811924915764679401719247399611938797455884188800486142418145080254318031697705534520281753571301062394769930958614707396767773383203160855349373793094307838855939388270593809207857214924759591016723152413418885067820599492000910129715500157743418402487296931106542660788087826010297020975446416060451429337938306225276911258690179400483366755702263460972431247300186455135710013116406146571745801045268916812305057189502277592731148154968289969552272046496410087681167212907098151720128619607668549897312383203891964887904797082838339120789251376566774234204045720020869991095686080903343692918527927967339927520415738104408725749045536274522114574732116915984792419330642277329907675117604790602033978837302389999048189795110472543254685182140027107007097426008502206227723812196106358559450835031414277889036391343238583303598933991308026478534151820770364264787550613079755606247110570169333230068662771963609971658810662057721835221826262620097649754128959074733437883244264850449455775057653782041581963217586660294007522491267688963732138482515768635660260903803321634439509505876517152215785338695344476150493800680644598713383037587132851237195696974358620204450457420543382201840224401622744055966082469325288420455450562555710798929706590106176053374486547330530951779020765020909373634661844825833340349058760156592294602604902529178839488587157426595652787659071007907178430946434268083137370936540800296517706691807819344497550695122648220585438633723955041319068221467628633596393479295319021299387846040873859262038081489756490436674732878102501873219233153693100275197420876581554057297146846739571891323443856001439506843566307743000237467651094161115772412811678957793426809980144604629650954562386876137691794640792000921042551239201567614730995296257745443956540016932548274587900860338880295790806062065454189536074370124452816319638597365793473552418343627404916130207310482763954756119737090851324861137819052315147957547178012702895858351207190127809666289567059364374444509988760469550679422631227424433911084986644280883804980360044919389533109136877595909178762331857539548516288971868064940021564061523561499499593938650021993973119251478211585770934994047325737020344760385978313917582633159628026779109711906588912518700288398858006014472528146218300952448532218340871083169468410043478421634123110991055828261397219933410166343368395870418129293088275821513288772006170162587400470360519991760887617603956580036751937795605584934634441851672453608611024335305686635675373026902488833789484379925489287083117259199581140833579066937708208596687836312549268071992548295597854432576232065444919475121274097872828854273924072822706891134581680742829129899015642144460877224448105120209893806579829465911942625801826969032300229464363077733829878765153595342468826999603516011717632336734735750977382968706438440478778859224959824956071743124407589750675569555149389943812182118355113549165914104861471006277964563442041986344553334193820219023051833213738995546524646239701756816565605885501779290619994104915181417881326427160973888223500144048819251672272810542819486054590020532625757297976468214402068849075716535109837959488751181914620983497787122057662340802800011639771256748304711436827256195825688030574517142876931256041060319922952509046284274184575588972944394873420542753932719361639580794111044311048181200663875192239503197355011870917899359504177540738613544874663491549332304941161441091595242277875727523032906334037132517255574681977696734775185432733686990448080552869856928210731690002012107973321823125927948873173549513808362855469304806708615186992791873741583047134473375482163714110093289002634925420429944980312612553415349263927318364597004603106874518944515478805445400035113968479631336860676565008305879940984703325104419547775008176387338590353075974651012556254266603753934193680677044652356788088603600140780679809053328399105248905539253156262790995289140281000157038853386301801400852765004678972159740904317935267029306221191786910698503556937891070473093925780507251257220000673760757640247884457601039955429984959871513856508044948373550381512585108167840069628754312625088295397394824421037408392351343874241636802342467504125607702572425272839207302105290583632889112063704739782936167565779040948444225335450105828913013390546973120789766942123179537150696808105855688351095604070094856913776437398957034579158879053289693586789601963509446739635029489551989000328137522476145361507538062478083960466869648849870746816187332928604417520264779850488551359604533846293190159629186544571460041515461105886252452165555134190610745357929315880210740406219234617497562207714277580038881441486451106964792184530314338737246971658537092554174669516747730192305730768612265759712411822142721119714579351142083857993217461505525748011313690512240609787106473281813599826537562986755415581338044647113595436331525330351698110821725629795311137883017245028232484556452595625562727164511056544739242295155167242282772266875813562418481406839714137386296420343736683264563328535799073458743068075069999173080929108541278272411486057849456120116372706619350935578704549653516782143086314649031344871583861922644938756672790313531887866592023741463156607525551079228564845091059314754948482760707421095556675426567680224474838570295536689290870535570878923634980839078188212775322646875134717597673007386074150731085909423906685277841796745451612135900316558553957435467136186812824730049867942973053399367836626036348837636228303268270527280804329103380974627375523692673604291462515523003702717409270464922097586136355160549434227738349322628858630001049312371335100129193811871573002959796818705266300852460892684511282673279152982161521782066452806458265628188324416066211963011708047487769347483568464702699619509210139408869246493776027145657237468273561273988772638906896198655770070447593481027615839101426869870779187705101129262948937105132881412553784610410624810280089939437368457905964140745485990812712886969288720793752919082815783358824051768243356894030688963425799859138170163794282444580452845222120753628528315135818378718522572993129191267178420508230566284255916683765384893483315356121292098641995981006728715703193578628439550199838279730374188220801892725277694495379854933307939551571479468894232078098778498798066151031393605518823731884821801695810272772831305470074985406836007097604380316359774342196806890361121729615783296049502151331030132323807152184089850323000328784492378878000498923925548896645303042215439256874827485159756902704098407756976865907485444639282442734367288586826995707039648452810456595349041342990336462998342370484370600587261298505284552834400952912828279941676878651176855190471963697863645201352618652158103244738343476437343362638116686208984176048172631331346998215772724517948671122335184606133784818300873582910235174139317791207854747453928246364455715205061732988523047839096108855701342977143577368618081751534849822287897544742069938568578253107745613664369049495661176699226681629964611092740124159942718137469008026031303944733309790192419768052214989835862711806201111604971392904906311494186097865467642898311003574406463409816813442919360789390762478381857225548299585016582484163852552049053688504392755277656983295597813093059810839866738523947885447993378165940289066255315791549959940684748840195480302228702295141826867470486208941117198039253563657696405651555703165615800748400723927019554687791959516001632554869462413651569755189062186120377630111454949163372424058880532747462779796706395930673413637188584251466173187716655919544561227922539743484672329590385690449121222644705237254262484490096633476190751498001287670282352731304399910407215783540775853709616100163845499371664066275223000937066397730773074668300762581880646084102481765188604388288116994106787037810169399150617682840608929480459548019674728179717950366010567416871905914349473727088784728629528835576385410685152929312505163686482953302080670330024818410258012944252893561018830454460242555877314462986493649158811254013104761874121342521096427735066916362762202647290352562629562194207212573822131795924245696085796177722129800183643148861145567607906795001580955541005781141766667369301268423143118881795569232245936189669486264258134831469257755231430552957777446089132873862716296654788391392754706048945611690032951054837595361579034244135154083349820041982436373052289880783005810137500681824608251641968333700461566438318086241236996794129052795953651296446156602544128959056473559545465790663483221739818137954481988775507725385640797531658355055506035137915621526414790787053733657262445796385474669728400867304956497198613676323913669679792504576103522598605884287332027606515849615435934234022831374321051077943910236856362163575814820481149072597420136538868259344936719101837672607453451638584911714712209185919360724929698505972387272596825309069698758017670011412491745597464370723043218418093019462779128258483605128736164181294252047741113404891210448857528283532416594052920892581760229871021569387195769033770607073364234030379884075587805485035450444186297128242359602887460931822752968382606555689788854386049469135665471829106628380331318781278099260791825126236414095307000932265784469620007800685580477236097770803512097630213308868932884201921992028135185784433879934855756660345976270152920677835229304363964330186757873801671275719459831366505402697270068681245884512193479521004691834159528072766801235761343154062161018047499887932821694319020208422614014671197508595122470442288629912090462382854115595520376171802846053738959473026973647907543099363758396176245477687271813900899452009262486016051703538070754491537034897081471436169757141610832606121814106555686374530645230988617768742293636345301250932095449866023477368733376611733055104973761552341172755521942782923380922083623747161661568215290838171319367048265552569613255092239561252510330672251291495962893542110296818013065409119815364452860660395121619332373553979464410660114159740179553109853797824082884559103340944567154570944808528553297171358086780358217439313531752549804189943643238100355883081938018660570214425218879035188117045387072602971531696830496877946836454078428176474576766095535159095230417349691889779975483995178781113229947854098188080377666616224064775897647919277572062034955660539222679612081073006761069640269573270853592714910679673217575750769385934644651554795499735738719251869045263417500657452511023955399149312565953145960565177801654485649483908396509462130902316282087846140339724513663818742557450504681408177493482625196068656786304741308003446626929239679328877828158932259439897685203977805493107071516659997284328727958745075401714237679305827195355746531046262932959974612990051977465163772181516923429886545916242347759606570715913318854848824379938149548554801140231570063971847942001201149900655953464947203242822253651947430362918136583870021323197857227765727541431677976600073355151362777232227371308636011736608939829127220715131041703866468025261317457560784006523499364292021066297642073121430817597823686866646493880267467973930295357822133563142069632241388220432045836091916316612140415249176806985047019012091424283826875610380204054459305459944145121655648292572574101291100075374890585768215148412919082187912447415295414893676995099561066094853378400781409586202476452916153404579438750581471115854476424733358014475703281770149375770389472990521077766275674143678670340741244231811393829248418714870085147549971889753531583134643694484389104315793496414902668784042635939947671773715205408578394706228393810908235277110196773241788723359290232308512571592458147991741491053785530837145028037823887627471247823881085763321632904115928935188926692341889023350123584166182183095607915765918697759807340594419773732099936688215632778633134282398535621427010756966694069369987862053127121970362346057209839830140915221681537798584909443566310463766021096504056334302137143394887452860006058846681939647874871844559912018771313928357486278833953973712576796049227634052818036750285400022265987984328643788737883131586125761879658330530708305084561974284599250026760528335470145053134093433624212059500059956994295818123587036290141991940788771103491013822581953433504895869252230516049862873957362415860276270300757450111512152393285790633148796721181068053433607161254020675062963166475791719019969707299797289515860650513125907861008304403625341935535559360183699670309255535584819811846500866086851905689630480092936388133471798712523853435652875856660172497166338527864697442758830596093944768723541580972509864191219668726784511627820947156693535111636041307006944062793669681240202535688094257558360278219602480221211715928319372853775700725748623739632586892718868048263213722026047167187640822360067021361987394658817927934903153919693619269410893544615047382600516082180077519010108825533756525739157124443915555457888859380501261657296882993955739350294466130056913810749233793615644227997376901206780764675936245069424604766296566866716405318878695253382458156743433612194631783303483043529183583565849546968103605330525443385304308894186952301179254743300934639267629706495194244165390755994800038281144872054534144807245999055250730192332213937777790870685140650853612535178841264398299520812665059782398485790765326933091184289425540241253110027142501262208036242802152515035579733708880352449449872409826354680135988629251206156113450744877104113267803504042421061180720123536273182873716200408974343352851107510177735793068310978005082711880573117904591945503871154810187072952700457936684196481830312454676823432367502939776989689668458602123483124193801643829279388996066445503532680121901891782937725815252364142480439973757226627645289733005372150340643155469247432469014338460428590226709525378940508277711325565227529849512751396344637399349468343222363528438314166177915400905440212662340366386038543972332215447721428818632414807750132547094819015460840544480433487486708317301564361098238202749848935771419283349557720480978704392510694739972342312619572223526181903951763724742664210118673121552095556065326078795453959359781333599758199275291462193548328897598122253882929448779521390443329034397018869551562486973546135303717741989008785115123749252913555599697476353909847961934983979980074658724617304813547458415577884873600471672791735267316359652484132570401738026242179489535632347806803056803134113642737460229695567410077311893341787784445700327336909864818247090320398399144188882398203475972518339179255659590194336343734479433710392023086535846623242798397702366073548112260899958789601115543387372386885495501967005565948860316148284658649740248071641352834564401800777256474918458049695736211903044807965966625944552640714147099295116174646217201272961276589274106102896064725830342300463448506834828416621347182125276645374559020625254274810959906474630817911224093626117074731325342831520591544044145978589311025819613869793574242323853623795114547311064271544616581584719525600182735658051563656459762234884455617896811760300749669756671508136511862193558298032577727657055823933443003576368556153701626856113830458007880725855302205414474250669568711249796047614791215431907967791265828327306352119777164919538975420859621346056463085282378757919421343239644677140224071332091133775065441652820961053538111666383359944731666156273590697873227025976005972506072218268379957991630551410194533165874348768954200227367185482967924773678994940299203692156164598171290519351742664515610341685313392417354210730514745963941382044962596724569147228110077249198990083665125155901396540440707551511413118384407580889176127986450089225527631297521057539860863120024078477508670339897790498943116795969917655696551313881894405679061949020053337480500843024695722604777706027725865037447468815321019821841758913746358071393057182864497308917274279590456127893565183138267469569545906107241001390513946835064261145696091912558786117957170236355079029463001774212897424395652124369214536955320853830481566433971438905361403290184838276667976206378795339981068095443719843563146188415775674482656924252134704267848921161366452728341152915234948748276893796227713889047009743125779699266666223325780486144236598880434833175413876806672213091318104062110375069979786789472420073540070307589055415846048360789366986464347383676647850302287408671913028829223158097696117498611312250232682992420864657934318024587741514213971489081289689066160759529050259800440649380764154382496570111947052749401959414908337445284740733454525072549185807600900310775768524751515727788692124308518278899940494219433626024669277135604837789623377526300930061755837364671542081040991735505276293661638499869569824107777551102360413934596556662163552205286958516186199715194916458848891750122587527060281628560128848222498416822883263868277129006148425883262933356943230249072539324996898998721196362476782167407518654586616214449909114217597689031389333899514929140202758472795143392406951454914686956160614713484673190380496966675709044122177488770662930079650874945600797436422423903769341296805188762206762792021977599972795242958596721561745193052285086003000684865240977121694399514428751726492757708947173411730100489640225627009285137507033542015027041333063931709815355704067486598598098624669675867384841141075016731283969248643980751554702351044131425032292506476571163464463681333799366167488757836527239175786118779282507252101405687335325872532616168595942757228186675321779118230527055886790242733672633991347694511539467538599428295041586872954843477638847413133897993896500388103236486447129347112562506859218253230102205791893587324288306358282363289359730289136766841987680460442958493159934986358053019629905972138658891053192824918717497045124474903895495282528441056433480949779880739657655169750487637235853884226657178947557845313044479041529145451359082881875999734712256335094659689295992262380281352325244924901876892721100559149692651591303867109622647828922167516548549589835680049294041408895193175149395428667445622111481694370633388857289160061611065231311958964459781378193314969374652219704869021482564915849616093144501955715098211981457872103245279863407007244803346975461523889323166277943821789581867286325304553724837994842787793227494181140743553011872106086851644885169162179321037325955317376658796378667454124180630305530825203957276237407616579313526272113520959083393278412885335305821841788355591318310402399858156096207882798498209405115320340233576119352079589751621951097775817991752446805799829244263191350163805240690743526803122234592304146741408492769208112890021920683976733067615390130939052732757374568874189765352736148529581958222874707002915398606470556104282247799312310614839274500035277934031374537540833094757657606075765153069487684824810080794377690652822854277525219065005462100322738623817639651176358160735489821819499247497708037747526098739087731206928160730799063003973845023451682315409135499422614850923611760122007676311262783210207156213056332083465923778684978958719183970222183098077485100259411775195323943940541676902853144622069110775781852788586807049337668195496213047837582431890993875864125974734404019861414581175953849105257751520027050478376756804024799438545241987560083828975086907338177208829510891580918882460384160445830062624177014988592578244322169784737434142643207180432628066209499042705405458877354264214292921642506680206705463896802486611602255029510951242807435216609231314434467515198384564481439787609390110498474642551421161245105266589939281447784344529337607914197091074985577712408674631294424781089478107475740891738860606711329885778631417543569621627296890796092049206734043947163548307537870322266361754857889273963111508486457719234235669425592087173661208982991978619277659947865065762432241022478938534827497835678717233965598052052991584005484027251372485567282404363719080078693384410832935594818928160692986489578693881622915916331252203756558490816931894974135074661319297218781797241457801298725364879143706424413649101158222354723574557693716311455332673320010889010450628226039053822830516917961804334912227310286995357616469029496788424389364781965219532297951778352576021887508678555769804965163777598129533237895305222958504077816543188598467612633083691863101767142290052536993977596964895066794973957612756654236409100684299450035892207828483624615411689240463894101135901077848885584246371366211609267069721513487805989863508031699734294724981442398402737958626918780982350043940804567218794487691565471437677238106101538575911815554989558325452145039837824748138287297162865665664750974496509157339865431701961036912878084111093786945781440695940416274879735738175506130618683647918033300060817764641062957688108943184343662869096029502304703896264250885841311418908339876875632830477905385904694604766073399645902112352711410940700749173364998093088161859020000054064153394215076538400802002711578346146971251388141970614217725956685202817175451909669486186244748104679215710839109234018284488483316790381825087270485805679674870613194561995545358717507034287795265621527424431790333541374490484626721937557090979177811414124991633283952707941986773864409899433670400907296988015168122215073362033687544025764858177220249173600578837894622659966247678462429157774053513543205707619707708733847275556280182691670469967759175456625771618465433274748324949980049648127861268155675372566494405165326468043276241442899458971379615212835821895176358436942299866715835190757369809488960679795150003888259358788391609522535695845388886821574538720871570902058185751330734180517127806062378658904790166005021129838006644884057880033942731334324929023784753353942354275922582441943510600138599710899525087562883610005257913996155957782157447999298690776856172277714845365641386757326108728996217463170902556118120703257311736024766168057630313739170639674621111604485979248058072692901417997651916000299270406077753205102180813600337913224053334472920539488015524812892732371514982408960015720755756832039167747845448631491298365219564367881464718887412013188241207966635637558861295052421262370090732198822220200207294253404298301755582308470266789849382422922976098444481797385577609853651117427051705990280950865784186173923929535759123016009243206812745680984491503711467019058949441381016998467300401604380439070568968598064240900876013616010051380179253092003125399445439887055848455597691003471703126997208569148177807864074443261805693543937855670145502579364448335965150322202877013225332606226461469746092930982400601307569800075902017460888664497811383851046985452413498830882409208414637486610069328886023423511293886395134472071278484797460098276709899701692264196159220830242058492677311571714569213540259613919849076907791906323632048217880607995553881516096569226238087697752201691350574612430375104714244127362479575756028555627496341335129900794274913108272708219581832512808965813071251448150544481929301229564121967082548927085831636973508021433968039378573753879067847277298048244524218466037916685862489439814190484384514687016170748140111052434941671747875703685648328360347123543839606249279146070170655837840696842402719527960068757372019795085023522115597222347551717848237111748479793945250510510644413516782430391391291807023006684018344211101747550328231448272057577534580857990114566754402882689082441420243182836576106399103180015966040638221399055737669710836165580305917075591940219928572270794378579389163464182093845863143607297081015670072334238211151541189948295813972740583202158391920480116808177359128219419944086273020209314495667429389984000009128795787383514575390328241687417318017360353516872685509581979860449574048546271647317943374725129726841380927391389990476703608278766441327869870656672533484383427333548150056516852971823348108292538852044929674939820075683138868651401244673237624352600078414747639948015289027868146198511710919911578309695206708625766454892487257478946142738611545092796092566413924774684235985108487856409124822397668668347199420575840581132627624669828376973034301876077538295008458723048810175822716091854954920374411796993087295394726947658644210561371766850877610899687635444497455427899849956501154788164407342281366489772439350692208344600439226256568839093279600061484541180767118954108090025268629972099090247726438191531700049884196804298334320694661353408556324300457711730367438903263664923592982764771709122641113688359565081873931339370398847051850264116939870981599942344632314034733399722999123233780663910752810417905743015064690016237434698962716693642631622554222349162533803996470523640071863303083416045573054239124537886664622276491936581960328957934086321019104589074576690913732377373166113473852758887713501601478785845998538823195397381366079937385548147089028132339388737408527041576129912215435118539783674495658394196910884378200133178853869288442110821808109002309166140916402834182364542534754399561161147534957530211579689615972773798345101479246092032564236033504158201931607025719553271850441457688831006263037626712828955567611976923821714889224335298178491019856676413893935540033160942010665028701158987188109291710753678128776961068339847034024238155085814256186371706136712510200625420821208280525562446003037965144263768771660695778354925483192283346980064625672596680420503240284442114600908663463587184445068223840108451655730562239355198180264126855119706958459361256280529695459240721325458692721904015976826099001034399275879352378674608338663126373012277276680704751242320919409062483945111477980616774546958315830167993878445949380501536691728971890867706809180526909822935167800266742584205234219228133228205921449595539896370644675853861002157982275950019983377619990604705295437726582334576774588516125707704390277622489788506454389443141165956918385190408477187527358701079454929852709013708210996120197106918257965009537392240980738343608214653745040935963382153752779279667364456035084250226074738126232612140011645519503543606255570847583649387062058851943066657463222396490276216888184594812870322341395311115026596957949313811448608437138495531916638512553591879513602505489523639686890681325038030639612563837752676867325343201543520262964314305556639956408682512208972663994943456479311613225021920613029756251542198981602231789779852821710663196563149264900236075112880951170391274120087839996528064156720466270238181207484060396865387006499341289563727272726188573532930964444418627375481746183620714146127827873206440720173204462608731733618655193097764747644666580197222696214901041507398213016616648105154032961899187524429955513618160132940895695661705777871492935704991289808204249106304369678839964576566445420391315317826234252059931892005294351655030559378116930984927772041387635072443457247910203323634176779239757639217376052242402424939172272638792167768278344636656981046582259187118310420016346789940322145132591531626992819847576273836421842704699209919095735298446192517702293871004935870854882450022737146309418666091754383546138114363383832853923432218830810766674445135614000180897216283500961929381685982427069630837669618720359083671601865753987331983029000685280282909668359113977196511738951443464567859952631316931244975313664060451187586397209956115434019444695141155428714827885954425063258632590933855745104284580345458228366396931346736912362540373362049109638926282862708295620580092248499963618171964947569308840470316530920486453883944329098333026287169147474223504368734644427379206466557748705585937933913679492236354052244653302016559107688311813176140978283554162783720332913403752652419031042756671130049209260014695570231520146653851696203833743771194116595199498257735961156235862904303917157624990952836064667450154139968398046497545285102180654618631578758027586886737735379189100751664987436852549096146802250237112923135704632086367777687716429301375207128795349405452974709153817705189163964360934089542822941827947914174680541829105050541790197759527749395316061145757962115418637620414034108775358423946085971241544604428151751982481999772413014787171892390132245314854124359798318489714882001202335721896739356664227589065240162645669522161052849078663445570087875437249058018003447862215828118465329561780805833307946486577915142152878590959441205244824865718947109756285183069370672029069865713994862192932993232866525176922890509481384929931326714637985094224783842516890021048440604247319055912832546961499143733023921352879600037661682138947672264301602144316631958785785505344439484924263543722161061314898590866447109581643164843584444740592374366619928112371812103879109454171339740888689573237674506033233407032060150881405773495662279319098964875793519343199747448006209808204750779802352812652754998699383490083298325378714378984317611588854494874340903608489166899674736888289863579011673573531461794638249045916836406275455712170337738164364637163875297239958356438679233004264082540978372502719665561233718797886154880258393613789907361498756437392458953631419555581824626107353818726454441836524256506560835189350774791767761252537611411881518857207773317176692675436575426695904081309499819347098631644925820037025528355774902045385463438473632241075515375791619283427046275910273430838015544516166737786858471881571003099158410233256833643727266718415917424438079427748527867430382547524821922972106140085608008391167007165617408614388701486779884922485115312355116145055619808630255878499754126892173382272799004295082593932703271403819684890351005090947035540433143302081268562093205706427835346812305866729422169966140554887574770813315605148888630751764465734115931171877519774709969669787881233438087289639479577850875779418896071940266750175368155440196214041920416147012717971651475070537654944566927395073008602696672527269391681646887193601646741739982318593542756359919630264167574345162787740499580202159733755397596981195414921819225126788777901790248859008739847696678713804743344919605940687482021751556409576018439072047850069637020725299847607346935799240444127278617936718420146748897483673831973400479913352728708236650347964194843775247589203849708825699481378602879242667335483739824716746711437763160767539697638598823927086662622823602423225489385011603987726310316605429811839362114635851867464980282517169083484995340179280269929866920004984417544943545267561656904516369164961456781406003407870680718037884666194300123862866761012035974438062999601989893704877920951081306166339944790679002497157330078407318489907496880537992404453768621738777413425875759450359190268464710332772427401631064187349255487862870385879339132876880691978963163240465840267747613724799656252827795530999210593012640967036966157050389483619113796738301125799582049534469780591944177705074822411054595482070582570570514085814800232533144098396399937834247559837354944395339818860884583851342181925118122716519033022107528742176817183372867638919679523243696076931551509039763391543051607302174573821075202899951917047110216112867767326906425473478368264579833418483080116609610836253467106555909103425843094978038199391493431220017973915042515572916333295786465171299980517358319111925623947865647476081381778946178591081269794092494385522005771035400712891407605358372648786708406871929598072406989539197326967949902508491527100851227468130100151819598300620988756021408484293209434653920871988981030837632249999864176594106521229094926689891326213100506009539747033719451636878617282864917050598553217937248860366550060213706211241086005907134247031645412368592102507230079192899332925996856535484862720168415650266743017032104811562060035593024617849445326307753330312043860432071142791210501090420662812724705105893150134847669557987570656272696435829662642541109729088049262102790536978263867210593979829859064883303213353932365351633493226052260781155729480051523494656180300072445602936565117054104692723743850100331172255111971040541164487289588867235963972774712861725063486248516844986852786084278756476936227150199540637327414029221581998542632281467768336851868138118657867566628342421067260651021489984505966916672134013638782197141514845338370278919086993384462875513255786943761571141870742304292183788482087637700603133759348801850269889587073118661667756125066908484170104511148747442144847515845680121001524289260942257370531818970102495966674465911851306411433586730758600946230609933801233301401288792947308786721665106054325494929074321920381660999284889496097219852294676258220228106035063488689116168015204581842831748581478348541196118055835830365738674808543444777011579233544645582619595734881443352283687606263436506242557916032541187809865195346628977752078626937856924585584931604926562597987903684704691265376852041145008820245421104716097501365972368434179423477673508626497577471973506872840330296210396640642790015710631601815997227530530018188777309353291012841784964115465763490134358122527785306962149657572513985918646507477364867591409574401221847285144103241114107440698541640909531940298524369721576827174891977000679170947470714321282900377631228613185425427014979783255738846253108035461404005720755327295771095422754333771450295588175101724916732862785716081964711805327454522676446572130185883318203798668558881628388904545917527608097433709231064137462574955202738148022709639807907978960144986846951900392566244050633473693734645084436746510430456984318216636869763680737994074542796797122498232146917800990698638094232662976410771833319373493459896621056158465345049015300954671360120419841440947948865177874121888975648010597821683896557659417911587351430678238023588358859275860944691858187994387273285108431947190944326514115286313583553093505491017422668873261578005316708254979468915119985354273343192006344932863263009745765632285215270615953249434825352527793285869731715280283656392871316114424246582554587506942634958969130474448976778936134134224519317304995462665817109948494228066313227981105047449984932571838844089822883085873617027106287773475318391972730972996917419865248733302216802228960633910170539050038733691859539038304737340449737674639961962364614358816892885610213947313667372600465955551428172900948308926373991932000002545565190594492264936827453573242836375397090339618171486645312480656902820650710478762582824575667279871757443074642099569390916325233973630569248344791895094014511552693650003533753116703350236368405236468787441606164467574376650158661867059654915405079765442069358109437084135124973098689867166503458038481801566116291913679397191396396446455235042969870084989191473968311736517329990672365866415646724662108506049168977771341971687134764256114640727555584724673519203682291764177718181075574703847413164340722977761694213891395225966549287216122386691932695701367820170704860858067313140405631072823275651781772539235741911890133406506088736630059843401703000773905164738596113905197169401174100465615514889075794228669350005288010267105529913910258873774902630900370259641196326025944123468749854114012936233958032676826985566078300175183683623120415467858285645654809739918471007607444029826354350732780790008875672973142051335662396562156624721432592941245262871734027222881801688175718039131282389712999679849126534815473170189235528703022025672436347461494636382696424230404711231299307768883401510368184971341950927213822134764895793276431197031478414394383406674862799373284473507642339243307556746031118241587000359518422787074437964320763990026341075304319224730724625364289832082065648596580297680711066506638423920830128783337462511145424681607632253679135635450044683502694171685588994303480281939114488449474521841470651131463762951788339400094403165313343945662434717086311671237359031302636232441653687468768959835265815647194815003041018420804569688739683937088940644783931778523445352427978129370733777311701466553575001025511278685771526796119470499846712830481561948631934772560186463582399724970601237952516193704853017848303326600353296196631608663554018592064482280810599053160118864436533883551899908420689732081278842722818117288566432244954792068949600312168019645119237565191658305175973283057085201188667434857965499273496218169538162981498326919580516764809754060123120466930910413504054909596179585018313286631251290396406936556025697213901842524290122992670251203587495763281415483434685960752465095066760064536415573646322531835456367921542337001179206347349682084726439610902748134274704771248842676324484932108727013563334666343789384349683038790067205004711144164520632818501663137327229261403112432316407621176745005500144060570507527046191005269917308740525297596725830196506362265260605230150350472798914267060859177573317759772969494187927836445899142106342903284729156452518395722564614539873037997354064742905687004206967555513523934522768328065934515081306982449290044672829215478308980996611469415024679406285203076882543690524926322319201354620076216290467952857691004232501027428379531723095747102845565564395414321880807680410388851638752519304642315427986530757747335995221352577700202958660109668200440934876954292589180629336148846527404819773058605917243131895923114805813097773491869226584445273491442924377838664024645855699094917755959645407799051045270701663407438120764742854880656866256237611811180703214616610601742520733077782902704737619958975693461486160854079120774081936251272439748695881815208706085365964825459965086390232753732205089284375585222393107146754640341445743921346162597113878819245338505647289696362856708939107382652556488179063940398024269142872265587991052936840080581792908326676982452546599113390119018504310628539548676835054901939366335947198651552742217429439208227744299483971267736960198367143932517182266992597601540621557175310822162270025755648126068181766581600540345438920880531227889204173353313532261773952092690629438511993601983379875623598609710355749896859748466532327075324820536348824246291679183048697756166573426685562934131414699969898882349884221576909888396980193301308851364569680586589428399381560351777533271480026515009406089271909015752226407602851640362842402820873810090301437321127346816708131447192926654755154983639568333206255332614318178276865104843667139645749057648816877231579896167998303881919874186326840672726195843613423258367460549056497277110796348136623902091421778553350842017910211459062054107303158255002965677419739015893191500328801704387648276552430547644141476669140292223552857732806284220609911134878574645524954076895804926141503793630077423254846093341800872321893168213190491013259671907721883688878252763019189007734672985318004884519775587090768095759657365897422718420507746248109837717133754808077583087656239717020740126321233434392850080376260397707837716550877060577219647962965185169516061645513982317826203927621338283167345528647624593372267736753892777176618289084165033085253595287195798981945930949805755004542279067573260961072723145053604585396198957460504747498522929376700929709415980283779309648195146651068452209909825726852462565008093712153062634713394283653380655685662586677774014350172814574347170668561306656924151788343440377060866421550910535327474829188592383132103287990999812114650097067200695136050706051198254573983052890138117388338697142445122214261946434588821656354920298825241934211623792392749187965490916393082798280164657786731471945654368498798858828800658962172067968389632445361977332302620762456630162295489387861577949802425264316750108561104287149179677366755664552345021739370791529459339011882768627439438773253128514231587312330295556154727018221401707277301261841240195037879373064606272221977702008665288216469556772652574309844073562202424646533641781952451159940902129819697290342761556434944540578181448426882157436834839447153794520925362019154450901972122942295888041225701462611351305684369469358142101962330428990882844446893531627059566761549199755436762903067994487866490833851208484010984362180697762107683935518472967274468406804853086397919779298272781795414963890530369697628627489610470511734246590382819186041288163573995663208627063295785560531004553299757074801174078848551281821356059541140475106227020666455390144822109761794529160174457017802873952273271129198233044047279509311712195788664959342744139944145695889108519295942143010499479819641416871521928417787809600741455514504921255829500173971460664234511131340713661484904420533659329549543328940744393489348032551376659029053495145376643067755522746535976274472631608466372378264978336353509301330192376006205268696566262036943315355006053131366910683148952082254544026329508341154483518127704051595187418061839982453215565003301591277338123093991178256453631569579469604031859738052410031620436971340525031211181059853871498859137541034015898709311007317029428904473515569089590313837619150972778969085362148141982667423819971668394154753510470946272489720423690691799335301563189699038143032511777219549330341663628932885869542691653529824306086910703129145902638503461461629109053919807455640155545149376931290838730483871867707626139883133334494720665404223903842686365716664728680962774067396784787672334088904144419662987014815982093796297520164468742868951264391383253404219044906324171458946103671361683041209493871054857816487350077295156503128296264864251544236069559259779147306571199213147681640188511864151683210647205201483327615350150017905581454663163039647880166444689353768686364173797926149873237197196560284729969660367838398388653438838407488270352067734528369626198453794590511647582087438447015326004528505683386608954371467380156521064251098353089460124597175947096720828315421499919835554121429142823220585306355485680005973201310056491467428708321208793894809693663665554576760262411921166567943995954955037994066215249107942781193687124265956928789316569872424990838236300913405888149358419604208145222092877601583029992406055853635241739449122050455981956920160527533216285056207199769491788388263762585327960957521170482948896056123549960375901190638621245843391976796092160639606420524489548706358201370202374827626430091349607986435000051496814830841708529367012822067296179244465499357155054633170137080459546520644311594806417571598484281400295725913511506437668144233878165146107118686967513221112852160424359572453069085206764865815357217335334408570713836847802088788666848200197911097778383184593132475664680197305263346874420336629060094380316069927740649522345768252362207747691465685367830449353900482603692403330184579392854688664976951988835375420316967435299371375102345304391040506542597740995262683511101242345059775573224483426409258739819868545786821483581341277169832248127766041547627376582248129282716733124639780829469692185820984615315824401028380279259480720830898112811050114579996232354622982420886601440630091248387015456667221102318407262096718840306523668379107597478569100048502761311780261137506023129474705551003948437864488031799445442054865856278030042860281429835838389782088566932648340999358519574933011486892246913435987657598337692555988777776633894260933336388138378582345310612767550115103009012203926202659909023666150492944134782342179359783941020459936263153295006345200152693361155682700420984620482614244220720005296739516297483543715873614174762750099998249122048415550134481585709505640348375795180151053568190808989937773821679577610842152702638515084274535976810083320330170839687427904527371054110538334973034947518025517819468250982046071896153718500222698157331635183592471380471848410632280092458970922150227524594296279761571990242782537038786146644443308510543424588777999440211267884122322692884032953052386552665430612663232516766062602922791297048106078872148894504020671107900148472392256104490379395147038960221021369016311792411881634890842246244606488304638958925438270632858155711429003601161664475154625532257051814197881623893274880831436477461556835254431973446327377155914744406517069053652246130739323941140008849680141932477836997695927532927117724497921697144956675657907386980836214252184349773150111528123357067288185130363848511903741313747213780869810683496264477154957828879487085586216414542560638360687579964524271247449188702628450634081407701448021230470493613645871467677068041568732598208582888129768081664560673974102335357724045844645098184216730697016899122718071984330920113812216527204005306737094630277362984232625619774417088540689434438057607549130603772993573142132413325546859663868657143520138907787192686386699162206938640122256494978456519358558669725850829597981541571249089615084851475448936788776712167486101054426137312374670299975113080515030867978956109549959068981165934581147849707853104329535725910592830938472614170959933349685309071460588211270382003988334026900325102128733178059037167541965424283667391365318402221472684559420512863514933098904985825771581936495565706222885536725889371109832053774375217094042434472208063382644916529070113489412927657345848958783285624611514061714039997158533517541428803403507378829120629272142180845706183936984321551476961567005301902158737225427632831808899265078819180992029640641753716481542631873917738217284913123641760312039918500622826619817090307545116525113765811808129646857672535018795987366015151023904536367764620222093808529621803596292991077898395582926207941512605269007659323290495064596951755097102723068710659760953244710553500539245016508419821921798262412789365271438826340689484115678831943636510048898867366910111258498464747862794176970553474253912714442224987127173776637319214068532419824574021840989686975657000064822770487057947103025076965481037123850088657634986765610209755637459366884837066718337133054205644881850198053360140988583617042883635982778606119149414310560894797514369967878391336554721540127334300632218774756551788275069660313215127394435506908001543952810067779058069892854375479850399376641979854526185875032737401346302029918570797103845767641158747101445444454061599619985122603716769066665238711618832126422392032989052479714611543434516428580031203443081589106860987408814083993457216254951516835341643477795644387819639182097509564131050760904546681381982126455280211681489099811431498986839937032060323895560426119797782142219230489858850826573583831172337695221742100007616179254141928856774246402697434365219880257449050394104142618889928663860932031626277871125722024760108116352671075575123501162057404763119930139069707857860393386780007632969898671707378365964178748218218253469008579235185961389177053668158380403189116088194145544571922933319895714860357601257706011010877919668947692742532337537984867666717353821665733235044081715829356037597460061053030692934154481947442535847960275613396922235309586090901346006602955276695037449187735380867306966689312280684097899144288819262750043151695925988331064213797566160837422659938675770527557869705767278028329379253531899037398289471188232419693111358633294550539851872366411189857583732471380450360406402222463788500168381903949610006140059853064918644378013045211507683334009957101764104188020318703035799186189690551380090426245921167588766975098055512501050493834177915690526479123904604476887563592667459294840457859103655284827795610857341094552868212525853914910796345986465153643795042197066071845591574188510662436749672019658994910433760515241213523930678842553268963619860040311575734098650791983591190102570523041807812040135481741982694275730010585860902279871225999623729799273729078745671082229051370194347592456915866899645533011552821744498999976776110736672889165494542265651936445459084315847998724942414322564997115381528608576009470350245736324554046381761249713920278586743497741924518552293731723935449351456694822115394646525758127822679241236746072176947002229229619998803136093621993533186832615306053918570247243171533330027452218876646701238152496031618031269762689558449681091694192239859316081695119394820950468907546807440952707438975114412598437638795815735898383357566845398093804860711707322136718003920007264771387938650507527560060929002109086463526979270127852085361916335158464951029844528311706681844816301671571631637500904524339477820372188274923245898505689428829647542334234869276453990307360145402016617566099086415649175369327830455241491384736516062072193356190612669335725280002590415953935890254517484637370260926012100214496866269550425484865157594414142393577692321720168403972375135245707393765594756686197939008990304989499155722683764959356149616186518326708828619128294280431475054939916144282916586845493644099811779795836410509098977097608418034330949240026790712064389981826463879636041954004741782450701571746843035817227657479888125472782473931412631641366939599440526929970761556608516357072904653971458418361295580997370397392659018863933789636466990067786567404871963682128641147402282523823338302299023938273272449643530257784904732961615100868368690959517775469173143859730308612492022042833652291433854953473680433544524188630153185278700191931968880905783839924589412800598500255329655835630554721744523599084850375548192237644221093910679370927658820372124389042211028367752224592293722567807879004483660398082230482595115373297618236500887945238542672439311859572474707729664797776452284334055468176838726495276530666856515752406196690285462284318784866863741930149521880074321556194415435351960076191827303386083675351042900605871972911014136918999308272133285379441737120511052231042277433426858651351686309950925762477066186089103807600838539889042699294994517110430585207947485871087548594912604305338252137231748784244994590817201738320351332519510401151055346389407252982361394844572629831873358406288493558126095335348588240882986857822535435230502527745894116535078791600983205836916189332702294525927009901513707914445312926229282914153042380215046244950103409549807550517307029270784968019241377677050661404392955109554939340675814828786305677695126818684184024411539493003579087989566375606010914439045255642808585699618529700760529788152159141418264844806365430262984816616408274099913593124390012468835634022931887311198266991080855053112487545011291213675699488354733627245431572749495749861611521499327337111423812955258089652788116389736132725389615984614180786343924560660530331696800143178409631752974270159501579397409569455577486002416536763366114564315124329140128529695507493129491723616199935754811042659248038519862131354964681913352656707891096585330081050369708086884749460486871299590228468002185855908119841667098750997316026154707404589373824847635556175870001039332582811782860721835374802027623258242359509188594725796454429628163305676739851152638937864938048173607896681058384149986780090476811221039811794039697408646808065778188028823871763766853378768635267335789504567082320968140348829346038897349791613641163916184801963163375867662161584629434861968264551070543363551737928934817845875100325301821194583187477883602050302834887863574641198831599405157715191875780484059922979768346584781366641505761121410054683419810865266602162169958084989421139980540519083327625876794247163926343063064508209890309949425250809395592219518097889552398730305902903418407773672873402320760840297576285167351227075994530495036609871069074746565026765216389254657803768944419879617284650601686273757809975737234655329121518153207503752251220732197558915326486273949948237508015639670210473464147290821284478370735224761251587312540963702547505419905616429717522849363578274574197643776922992925181870758959509119796023175073635833397828934737602710125681994071553382566218288031424768064622281856941612795831226319753059407879731184845576914426720928409978266192581359412304372614030766544227909208670652798126752416856741366197600108577762963211374985758216069422831937193846706698796350743178823656485820071600770567382756777843566863292427739370536792433146901039107931690441794110047086854608476261175801177232914896048891690832452791654002471350057628035558340676155636881446467259569274507576213980926536900511136430698022927393243432129994667051134941595967973366886989319078102546622922931779254419791288937403630716833260939622418116207330230628766637033789087947810840102434556303042838809281639646542767940816243420522899291241962569230856408489599814506914330219603346626099672899197630471566607141670082554994627853669621237217861828002361018690958286505643960149121085787079601312110475390960204787516975847368065850950017070779220872172766944356641854259795492105695171912957644902001789882981616687524977446931568278260979322414282759402904976069496363560216961758944303259240013136603408081488370116004643114812029883598062232723174180453421514095984503844331484011257676651070052659992302674560411308806552760949975506259480452751863062264987305876352113897661702743127623438856964641266406255002726760613594479113772393443829326041720124203195858308364527739765108198254293175890437329732255972554292746970726215365099680862494073297126020863577017230766305033838731912945696509819682641386349888160984528472685841079584498288175857482035469735896169934532368788171662136585992586934503721582942945239087778486152848757789361644455965170724244041228361721184312765877195690058762271460862782067544652361550864640881979549429808243414168703540571598100543385617853480383695387267143198656202812746597738678039623753742198156342435624514396272241284890492811966221784923927302379785690121624654281149772046330770628964760082562968572980397166375754376840113492501465219230679296911442618129259023009154371078398397101093939753029302880542823852702373773248312689202742989574949415620413238050146647860787032260178722493676312907479245174657176937649504568571271590742406973968945272767177808291897461452134297757808265065858295026669919262668951453579671394851511694029602035195130907589685117130134377568280242681503901705420230158889828919730210402049589519977383621261950426459231706006004344558598215602242675328115163481231269140333506174445554429817638358754914332014147684516646318415800412279076812140038565072184200990966632857787402597604976751622427846677633483117266919262524033074533105001385829604187416951018201066721078052542328208698224668079343125579861244757488363636916845456880230816078472544210988126682065355228422877686683432411346303613863317212389866554929267151386404757173854042108254764246023364385158136604644459792230568930697797974144138261963588869580787423870282789833090729574514351883421071803303107396546762077110902393176847393966664076951904318786133319869138710489494587221393354930995543247621450459124378301384806359865179123307003979450296595176653639587508656307191036491623832360234098735921615225761467785462341519879569833704371272142225625202933175820242147781016188214756336642576641929175191772540223647606361038498994952229449685370541692869640239296831857814184363936722886968602685983105778315971908509382552454717212122696268332023045566610077226773192653819909102821009205600542665956149810247068774155721876554750372825733562405149054064087646998694333064928108038035451578963755782771239988962952736932171977779465065071456286179764932106168360881573867779454950610474359163905579880331848606634493600318709750151566945865408211949072987668513428525460383897206660610168028413248641821491780861315100385938441844813748938780202257945250527397786863855297968454922676966049067572674034568350106186213551328703477566672159022752398380761702936297661485384374920689448666666534927357209001714273636352123582094310774783451688873541562377452694598081885157777949758472034341134370292262923520376207795320437941223126800038176528152738748870156015895269310052363516368630379010606263102728401800812755097615583755128438828751205603711771378915730017981214187283238144967657943504579312757404078667285655926951265113071358932355737641675412148587396143980821051344604825163952193918070910455685849383121595506360448285443463551149017749274646355935874791522800264190187008079513109452435895540791409628958289334801762877023091960528639501474244357014831208325452479827406362565577426116023409286888845249300134264536978041585266744284398054797692792748277668518391552706217541345621181385951824101367503980407677647830510440558866775994145823425210673365631867612578969859200180721306308487039362480137549941235274951543883058005118199566506170660282941581177598698502923883378168836023745216846493096414707724391103209117165243024428571112341096910764322996602162943274081638204301528944686370860674845118041957196305386464706217243187880245228466438120201950297613217478529270483318069923777586202433683102548245953665849263443893320722344401040669062736541062128456662478943995472199515517381221477808227477444885364234524175413265105780857019224193117822734014085633730598055090929745553435596233269131898980215444045193477588068069789388765083083990890674257697354969765702098615909056774798174447648065625899929271027521004163123557115812211289973786721622503010048010458514637084513471006450070133294480507105773800505761081098121770719268964402817034055336446005691093182554080877886398543881804117690976812206174982136373101968336739423652610461566650569748536335284943607046514745049475914285244116508084950514920408117828472595560674801542589209690184468582365971807031421762530313417419796655939708787466492584046398366268587402221066846313707444025427056611919852407870052626032473316556084799937184453103077564514432283722985531340422411251370190583178262190632857352935880596515481750345254249542773883134872059475810477715640850731798708212865092017935900165499068956742777816687376744460394233974805324615082760818411822767501834243737995805097259867711827034056134831341242729957901719635634450606690716998217092644191453924011893144734859141510957224846024298487958056840556820150438130090938899705794189682306968473830390453919170136371002942392671230619063779074779700227118798482563753733522177251712672124228439561985085847273654277157084665614079630893727268487254190710299720452982032196980087463558780054015086628863568403518707893386372156930542383841110975886793177193702034297512229618609839169729561901717929734004363891819715416419318627545558076140018962654325288935613965041221834641558206799065012903529951530670811618937955948089713486229735096951689956000602309152148560283595416639344119423427212708915431241511507262322708283100168951047957994346039592777144026160450525622726671611576441185738840901815101850610141925128479734228022895981464007852108797902747954895964702764935558172476922116179027528015547917961263702853197644342708321173751793998799538194177299094857175411993705551734017806659519486740380185693572093799180875008719101209775326177441597763641145864803601160974634901337972503439769748419642903985706563524876185800563718852378049395101484238257097286028834678506468004780991807313092330415795412695637426614181122935697704056710244386073664557625769599395047446539578370325805025111185371120756451720407041521062357083099508490580268591503077075830971596766645410717203340297681495536043407031613187538944402188069037193210211710299786882550075312687468202873464717418161619647657413253655360560938134612825900654699593244852152657860133295334639858577674041173510748406170147085557630517133314709057358769588540401223184096944175609816765903728359088841956428525800977978325054239840436293610754047849169365413806875501414705947457926725023880178763437030389121309875106784446408327352687416924434454712872749621726753905714946802137997311354206295952477335769331403578880495132732001671919891458556402715595601257888642302216823843540990543598446229622352498331648031124059612881490447375556122131095104221664972725316328044102028040193225725714261026172189758301283326159595156686976192965720446680702691953188138574747709134264277181872084095256437674951881806222606332447173002395499582129150659167938688658923819663689548471401007072313703105018363380247000706339104331498905935398562646602143438923074677405213015173698519391138984550564183332820682701250339889988139485995211401844726018845851651214868010135885841574001992913756999798773321521937598536332498064758428728010761561072627438200428333904484947632455869980831303596074846034031362915146548633371997385495428616018566408513436671721243550827169353680600414413721649912427823190642069231452359174772473807992143094446650674860015283250262790133819166465689860766490726367357833882599199997222196326411135128048443298897752372535567282423300919231175520099290696614928138804008581853093227297772836843336364771183872795858314132401558524065184223009959037332515169475399534568169216990473214634746130498008888587355532066743432917309983823796659041001756592152329241003559451683192421885371725621207366347262729007995516996339456108032387094865326993281849582688406861416114526659218543367891695498521114931799357376111155559107310451604436416441889608159232476596702704829340352959371228378347550182299860550670284619933268826673679773547183350549642357857171217464387673074071226471063396537654408835764742677548108226678925144795111534748878358418621988968169019030016856745357116992443805508133083854718865962432258945404211579616714080804516715592258925297088357383343273434480481608426752930279160961142546598797667878113674022155545396123534595679125611851802696842065231306398409292732323891051613014720397301954773017067880496613040137327161821820402463099072782249164263971608977073465506646101490459996639192780577326588763612698050472107730144317445823539272917365843597836754192488985889783054012143640928134559834407668359275237435650654152756247827756999517146727101771123765778415614462587142431697171064303818612002463322256469194507878203100381545706654830150333968012486820526932644344386576418570030233177082461863779652186615388117066039429550392979467618386271056871477781970005764308222129457392820052385979776610707432129342619015109948350845553210341039657950406872387243200611413532991484425370220398681872552324003382197051196808715368033503699707891137494574863392218770223030449676560595716755040357068186055473413545473431362194049079442744733364030062552188552877414074102980063768028100270888295423520150677738801540705656610359597652157264635429075775154902323196875668146723293160333562485225440909328283650644608800688169007627781405402797203548678193898045152348539205156934826462772835979575351429343953431987285094680005048265086025133952212949411373198070354180400075882342742114931916923638140150995501740753049923743045613811430724343117787408010923641461157895911498771591182468232727518338651523159216100567085937064250342002211247010880152439599523436783190554380506596395948255335061361308604836122555653872782177258187025042529880812437789883349681967512986485706295773289128707779175849189522376206562231489335057566570760723512354767164991030275408383981691245899599260742357455935217544351352562289854834061846168407898025715014650742912763876310880433910036631973682734246676123537780102573427150890461747282338913455981787361012770077483821562842674363890087963667417207305496608392808409289748199459556910424744001435852391875654116921783724404715657788264215225269307337261374116983814639022043970164076586742441040740496154393150507009787229096061943835744313462562588568449165374851845710017798286208520888968653327170045530618274910739729244232662585779422276490454513332949183101037403828508392649847677798703294485203641515118154371425120556670998044619210761177409567376977524687291463705933667828324598953863734978085032718946399317611618612304457914040968581746740920631101836062104128436339530731130499034431186371594788576514701621691254673201281377066696461964724612547657105839994033495603770227757044177709327579186136241500489660044869958536513935538947426462232559538834618387331534230171282645759555227800407074354708965607880001871648146844508993273421064059905699223765354818536683093136418641090407482784820820915625827029609020231799219940478827349379228363823819357737219846431697233161398608553594642837020843684149777015021117269515826112051798681610523723871742778005190339715894894972177276071314850530434378707435917725834947112303936233146729070846236529907633161660808752988475745314130199356062664301858918719918816261829708336867126056184506992621415796755587404475635942534523158526814697776189813790005674592159502014025729199663321764665178525083080769203849351579098716967034908493566861026002235694621968884354362879287226102193622912053093677517763478421383053491709015395425185046571177911524600190161395846640275539622567319548423230711674291707886239418983598756165288453836546094724162151280181699370093150098195990520747130281341687184784265986021360035231026710441997841387737645316576606030863102147695052836210689956208863375682319006332706702375426652368924533316158856774668032611359800946378502327396759923213111237321450407130936059737517234959229738738204868949424638553901905866762360313844844240365300803375936442090414242874251276131475502622308535273017586813376902800682892581930763200975449791272984484108448288441828139808502544207372373152071966895513551653567178583609888382555750076945730283519968510052635729270227548201642074902796943585766854470544110049527643890167033842179497750647175417923638403453915843249543536686868618108031319558737439142611673585493763301057704735584405983572972058561554385768770821561881385769555648104648568926897435011270985315210043430490545520018548080047101914359874607572607652005218343523463950491563699642319838287122267976599750387947201005575416631099981869080635681563873719590679969992330420878250839747780605228034844252135949212361035384561455344396927192502429819718187107042311007349322626076055211568883657243159975795931642361940728538952379651701568003026367420484931904097860246788546699984976138182102447072861747388395072366988573257250559266042430732945224825024419627276554444232202642689476174533917036968215994914751502384359521388174998686466551563318401040697937898258190416992001755264799165386350774709816049319057124217134362519998138281350579023845197876400160042384284096033158498623331595866603562618271833279607527267052988848806082866331287159535117242414180938591692842588663989141521942064788779004853168492522158274138851051934101361504801434150346562265161153264586138031024014433722347533019062724311182949255992602635620967395320384110039104780941771867147056554155440393498501820994551277370752681362680134527364657961465774770061263372520643117805326446042381156032434108809666626418973496336090899949283807624208111522041860531303935565545938717231691680733642258718099246432125753920396256796500835720290977822354296500246039594438007585226566842091065729572168885996869152045416301923681534562615150675600947242982404731330150171194380560066010754618151614796077480532072719658149728984306902357437323770036681884723776329464139898187673078183874590802595575289981311106090789490220911946025060927798629384204957219422137385553003663424698056153188596833232330652267165848774156167402304695401942676501983475456673757736650953921913464431131741431667481313291784476564348838729985319213672214838294884162963340376286008416163228604766800277387344249432928115908386481802492697303236337581237389402893267482340378968440565575105186052244622416849046686403614929133133798133725586584365306308911646049739152863931230961943393282562641851528563791359070099976266403763293622303379600534011794447158496041086933335882715438544627714255189994842799092591578167107059193957856364441848674399903096453967363098879858775089777464806044740282172356274225116653414485200643454900892860558144044408751414467588953397729194324996754273153928217156069703016173983499636698707339898745679193622998038218272003153775324286702968671089544226578116673531756024926416480506214261100809554466584541345335347149166065806490331820284860739607977965693827917777379487296573059578111772688430780484023372832318150122704351554919112616826659094853815773866814995870800595895205663932572170914930584667351081353666324416308835054549408077000830763084783474013016939340270617496626101002061498263013940264467628148654163482383059606194218969750894900153133776343880149894897140688434062520746344290708460404540451451887007634158162090071618132224043447755274000907174197756259241641370989797268045815588893611501841722529769334419544771753287658921317883088120719297359545798717617004494496875953532711963380774297184259474997995478005159980234730231854285035594648807860061648503497982728769551687351416339674688117320459292897310193885787735952751074426782421589696575942627425231877916820699313565535750306449157027322770434395312334654827309864454804066949410733969173053724611405085716127726455704531314620907059092420786764684463748246628503160325216451565399907955586441998193569100965482652795671648359432888630534654040968098530629386244838785562725111615017830223974912529423496928908221412149492780243193477857102815512930024734829191581233550908885631265711175296622957368558507510749756436185447866491446302841572116657492877073184583549527342796963195094043975619369889966106397074951875825194723965121298379984869317515510866759942748425864565422654180417565812819157800119629819445612421686185565834096070599185830237971424354340108783326692724365896240512311951079943530395449024149462255595687983614275208482865239669614956320261032988515575605976292507095366978133919599233430682975586160612231094321529935423186767026433766729731578035841992848674833164846926434151095263894683601633325229792518631796177528157606481442982305400231161426582822719287312107253705135650014249937123708508253196185996327629388689887837550618564321874631779061969892572790568392330217136295710515115354246498347188319766631562919626672104095432209964065877883363493787003786341164148282032035014330733445991982227504475508744172109767599080900214671477232523503108855903500889465242547600305898137318818146704625536027283724568722422501280575593820687462773725527186980368581150639062053448612551357138330534564078402468287921212727063893367426118085424992009169214809334243599935257228389526323728763579553939371884891997032989365961141891040876719722150315114621375411525106077588918235955447850673141872336284749049190510857924265312982168241135187115464342256447714992112918455442036498693480598186880117348791536618085712984650249485297833807281979301722605537790564148208718790584859712754129257620724401488318091758662410563316975624780124020369850573208160744178659010998234546618294925226100393357203255565416342466427089763947203748074518403656341947911565029217146564166340912443998184646625158297473980590593834287261079332182055834558318708053851195364097989325058018449026536326364538598632059692255890352443207241515434710414388843189774340893611552387511691020739271338867987764044510191820137999952551001117421317873626733381202440333996808345330873259145752924031614461692439176065812054205565165911909342437114583108531775047148155399982174641448832120488034077180091647467251079608177070421344605675400771344620618970028715607622697191746843605605170124866227189637620002800704140703804246934510646240932732754207390407886346658333337413680560950503811491847629767711304976686512443690609882788419938014068528433114865796465064188198152048128634179200807455680921751317451915894183428809577902823345518668893053426616231012355895561695922039671723332319693851580323656308907828836085958326364113699653709332212142719570986250641671924994616981956071286994082337848923065065553470713537309490801269437717652278855340864435436190425852928077796346193296627564633773661184030744385903041523584777128538688706045825341362169260333259772615988243405560639909543651623693297844217036241259911124903446580265707829370490635360720708386454168759005051371464666274946041483186901703169038704570445967998243591052026109212022276095714644264957959574770529203015402731072052646917148920123216006099879782571370121492466859868776201154174566841554246496419301576143294181821905168881695976357753619713428416991936679402861064260104903653412504275633332332964960952015639692573671259201828185703210934361713310537225378072306032756697902023690422747171709204661067657246942343856288717242112629049539934285126180336517382062176834818425134020631197124467945830298802303862388549453467039092395359187972586141410748173602893154480049889954101027650468494276408862624734613215714893779879589118650545054628180233517781388255249544819550168578188860047099071564248141576024358747086846852617690462134066291204527756732470331742890309179248994545929209179132024118455715405522470047657399888339728023741052344820670885451305048162560553946812247693578911230213243841607017252302331399888079299359105908051525014149705749030072447787748815998260147955729285032807008017260207826949922530868681378301523431056888003025510009389767612860456043471270575372395987318737172158112637222421548295105002681844772860510587049895664631134132611474195068912252385986849336290564769415756220585514206662066673052689096747421816491370856380275447803731517225930336086087913425955195309620179130951801224078511067981500147328460177946992578152580697500399199688976164950375610144887651049517246049449451405289732500202460150376813543066162604407029584287553982086573112754486496134615332340677294968331218299065367069990138058450153082608914366495474172823159110635092490330438794270550422208582644645148691938679990530706542318886535531435648922747671440128060138590934042090992348184313101043366571764143701657365926294828185051170654735267490783306156515104684348803501739803122761717765324515888457402388822393015428231742588172448808227100169399352585623367261618110565181021936517173733442664998504590556090849526575222482011824928945157557459203889431943202338974885289863551023813552180857256930719178338819182325515488134459059524640510621424086933417477359574977934512204727859500298037271472284091752517913856739939876969282519286702607122483864295770141320646572145673527711144482425467698304292361503719115543337351443347412407175063061674247632015944019401197037887687756617907344425560005346334179780109952425584383662548963252699333390514352438589916073686893665741745041395343008232855828496701250546494118282104233050368486635800618146531436352299239376337703633517704898168019872078701569385400262480477926662711877038045402884212605516642028047848324719166451970647403338083583924819270888761914877411398448430391338238408833843916610851914645810659254203276822059229795469705546721375305843650395156079959606939712091000592751197698078434863786542411415108378428213171252633305758060705854823263877386906607815965271537311976264640332291781365141331857779916650276810204381679428021172038584146134951889091440386451266577882738320361417254380687462114609566595801935796332483138936788402424610730106034399020834651656413719756739769935081055150749449443254683574890945612052262858201411579510516224742584802311092663982003172071358772869198914845102574020734564043350070974119727069308702849670728007532635198213740231189400225845766568308505346520776538638844901466601488228764321231244308200259157754881072701752524241567665294805772703528308477462220803379830546601605131000516059228473379687124655454915513145832926281354348258286145986824343530485927089689809524568148989434716047186117755091306424161809882772094050549479664061512981625920081987320537786085023864349284416280535600171236285539980647487475665450406156640545363515953143491179983536430110226955313074215720966990797022484375390988711885790307993655923427252151002669473109402638798584784765094459341178185560440621453534868664187409603415803249678125052757854381889931783645219337940605943469495506442014831487628814557584915328290979909463286777058052909562016163790089613177586126849791632157366504247156110101817983530792592795079125865493601325397733217855884659270466704683168683951624654263863113803860849674347769565095368474971813789402930323847094840027140256584698919195866981433831189666430059979426124698883026197983534029074871474409924763343848273960447098604076993429984445328549011067197078516342503525974729431878142932080292738464171349193139955544960705708111713464304312624096720512205380531045052646409670528385505057468302561321196430805428796927654886105309759161867815628045187166610129105436813153065020515480590635802467494156258370002044734420209011611399945025561070721959853765979069478680344491120656699994176081897810614255257461722300265750022789175656560531433396819379718606774513193543963927703510077770948175936672219416859411553893366713795292021301391366762452473729909396083837662196740137187166671821189559182235615799631917000308455716451582059583207281256234147993294235853586137163005904667365609586839251355243972251195498611163668572709392757192297588270067386043113055029478539078312810440114117926225559081215093904064781381619292322462304930633266084325544817807088236510563439646380119158062786130571497260911418267021260332447870738234678100017700402645781177570103754009358149676545627406055076450227534473495300009987860308720979127440489874553313247988103478006653759235064614606025767244915150215073965537864961261080021072299679017604902147715964116367046491064994081089380337411682378501318930301482373463310675714845478180052093354101526349844426382885893139663241285219227085550651329585023166595848301942789678736493214535423409559380706683661756734242472678179200507522682137365050684708337631309008736950338517896411236373144236195357984626654617621122095863498918857641573535782294529671597483049935027448047488950081775340309525264698587665954597390944230498416817824505801605226837178561608211467853585249592349263619120498541512730451097434945716226528979181464612169408770798787499652553052746433175285542061424039946298999486860827233859619495600165225960549329159837198297805604849222697182421234783164659813754879104409744322802258294850977324624758823949408148344966789436497283448728093657537414097450237915831904027092547515826620355897470501677506914428544452906015011638158044925274127750447201353233322330707187887439567496693815578946131881265366256559726962249812442710874832534855084664403014656380402367940942616462219232217227685975401741089881482143703370802716080718479158878956364006284758730361253340082483340938705473822195132276345779427443136685927892676817332561060083952958931215221671178465982764590470293485981848329676310722559337098494150474910349598964736068428737206951376691549139417347585138104661283875656968914122936696340379575061732386937272255666814254261138400667115521778473056673789270666968430493833473207243336878723899181070156071872324183848483730783517376560326828565080880899516011154468085336774889046061300159727849272249279895777597162418843858072410496800273967396136212134149404766728795349401240847322475568058274979079733991180715987320291933191682947380465000422974423731195318572765150898829844788992052055349918430899534346532669915644236222126968307067691967364804793390854433246688675621354576595187451015502549124665195868910788796781269338711111151643553993563021581053713807932915029082768514956315019550286388834520344369152912706951374006568395044753674728037419437679163936830625811003106025148683163897158138465213588692442467043849125024805074985187683895923471694481042533469341397844615641711409520913476116060344384955093423044277165030863139475580438633505624688641080670804301906373386607049727157712619793501497650860388572122150111441508354669148216318587881745530813978288327191360538521161546373834219278661180715612937417230181534058743792412941500842187100355914952428183092455699952562595135900339314400924516890992661804538926564466980539770896191407614697089188305042301155040666635309119446982716232377623876041751154347035333555878816682305444433878581654144330718762755409131679896434891559912461785595988872247386317192806487160300309912971071111412735356404582074992976937632803201725500129845945064101637431158190653949160121739354519751549149081673854479092260018986630759075210281524924794551527434993521041339358819685647078836190658273658161027093483457984239818453325401601741346153460192480374943196183129966752238744970077887331492865120873033517566811878947892332084075236883391157329052243537020643869777123287110422682360312570863232723415369376799145998906987706560182171755516115922304970597256157599824649978553011266201599774928973716986021606531973613569639468870708889944349332958481446411092911503544999552310937933290998401434485478926612620118136235355093183421751420966308327699065449794836202262576663550322793855113772673707655975168767209432878963748108147417673445685269479576270475856202012381489639067432522853395114480413453768103560195554921003918106888541909592437380936703287742823843446896445390241531932086229354795909531466308511147191639552368453390481931445877513910448030527719541135075559155583519813757896595169017855180786794431950886001365404879709591513094753590968119746099863887090738429241191705693920074667345380976186545723331256068290665808167062862189722284417376982615756358626856956105105704300257827373872993178691398328804271312240068696483145096909019402336797188988615491521904465346890996064390226168450137812066497420921154187666449267474289690094687134479710727178480391354936512661969358758149476458484159338593317082401137096949627286440135358258599966308448131365833514876007989648778668325703423502702430783306653053844206811984708967753018752438498319731163024547533491437270846437728826074692099387532119077898279557718034097989666119401831620885358973185632479012116953897453801687705824256140448715651442370078724423277556851217265617690314085960767387229844736032376213545265820526066267291087276062273765275456549521337152447168033139254019662653576677712713031749211258332375181695807893106076160920492844674617265428891302900733402935219942750593059680449833125022529331840282621831439944971589681369478610616088377641947865881454175628827797798182589014428436240814522194451577025828143587205104526174058303711578363575134635506655168682429324765280286115149767268435927546158083178538854632205068299595176543603660570467842040210075828913947089529708900569833386609758944531016626734158826806853525227085972162435334246556755865540842769091583019950454732601319136116304208650802517335883221008043468956853206899103167257416256501694972638628243912006547843988582649186129868759288358809142703030898238245420306526055503164819167850771411351634072020902869163640150254741868218643235379110105883506190757197819841552421447873626132614089499525829595663756980008817827149533671039693093375010791385962722518394794988224487552314076180466262899618489369968001164288464663869501017611774631781529188279011091328036725567835070920513922706903368234559140508346658381619433738232071592834747265488079582494227576468351929774936777930183764501566397653538335918646863652159706484393231434818884513511874716910172345508680776874363472054813554319456745702204996375539862722622008216149194785807302310318387372321162961178460197148034172469537694351025984595913911058385889119872756890952560680680141503668756107261068350900381866984572680878135373221602420948744128381109449553976597824669471429784035451696576811897732034193901428803695106819450382033263968409160221375867812086335253265850187265885572097022936812539192491864213369441049249332398312947904323515760402834555397576743299529115243790260736733137574111119482311931290605010303374819072912553475515260520022899637182215738065993333063362051084287508851874104998392447886283530246350381352594233222844478776067007318957504828965355702618132006532902861156449238086503977807826617660189972647236338645411623960282213935681664182922861134404383541543462612811800336460807410871393213939847893448795369282706217917215950829209660589542469949577678385351813730676638178277549017172059543949239099871432628125241826684496116685627177728176546163138830213646600019467812750360202993333769129783662352479143177669612628241591719552702064736462817551453967383334018813502793824518301259325431236702192456637535596770928357463553509888339972889968009483045268434234487805648262297190832242612799658966106603880807880638461197415330949331782835247624890876213081396082670356183029491163694870498022238115792789241287080734304256933324900452754407122625786035764313773656426326175194368497072207646851090508469125187505376128044321139427175493716824335558857466814192006821369864081149781623210029614148183881217516093538567016740981348864456798688009775593961865773995078256588504200297995414094100608093995249375321990410545800408735676511484986862134618437688280994186633379123656650016737162217711792214403406027859537018184657960036835419990828775897435969070634381970275123423100661315745544562853854449537000079723676456646927814487451837022055436360872694126717914944296216635001084242909252660472695411499321221712124505443938262431270467655649389532893918750403792927856867441385894510765859517618245527527675510287850807822598191783604197064793319645642656445108663864546709456352025449495674658918120948213211913774366968058426209892577012647041413095657587255602120163510944381301516734621869231081423445822407014638747146432367341178695308147905194505973129963013038445824684017125331091413468265891060106418459113833380799343559155252207070710569846867722108246526980889249731445935577208738433848944150815465331036113961963500551837479038366643965567440580651480476703801892771207297651407999198659672413966674313727095012581692902201107358635407079626933060674199394499370312391852243030488965361581699241238825904300420306554163452550796396592880775970168191377796833651454206360248869890630415512129685922275676986685647424846569841224029207640907369019170763944151898349477584646599017777489418762731225766214982837347950531635336805624651254483676006866027272185446114378341903853453852671183632942085147363162415465097622906908886391358234443010897197419107845008896066063113658456744662979326079749380408970693357490463586103210909775878111036923727193130988624969432007010360157957887003230062193248466568771238645178590057602806187702336344062427855773174299069812293457047774769596552115603604883722349507353111604021739077980522611990633337843833241690759574886110887034809357663390390781345225967916683445617081286931667929428736823825630277178829862521655584974065126471351250530242441525705145378983802630758753130564970581002623309879809881298518543459023872809350825751016726990311737670842638089142433231997184507498524028078303502111573632525955155538955661434747499841484557885711160494077173399990567565886545702676505023592117345618462546147292032501016301875860321267236632508937499946748356621399071408297875551612911418462371430029949298154403729901758780325666678715618307283578698229860747474940538361061483410501794711715360189494649044785888678928205499332162405545110054292969440295858033561120708042944872002858624254711016717077518713297173429970424041439899344707391267531608763499746539958719644175991420427000573353430151838278353839095056750792528235512217503398865498971200684406331829103494972265396230461942310954535574312371471517966472389107066143825677412461163600677758712016529191105227628749067248007551712923654373504913137073425513393615618452953737952097091311582025884904517655576025831412679127744051334069479065119944147287267451812494119483085546090062363178022960190720089367650202584581756804247059025035604304364288246361572720838068882876017546546187923284685359592642424077338509377280658312438681425795585403617123412809173574324520715948545915291516516961241135924928067972365486204818799403091591027669618789977241229637523786871341501407853933612426710868748083026453746792819637133599938665394611370209492181809669582192687572348495807861217011632195114100894832201261044490574831179770070633324673835169696211807949629839860862093704340574793579598316782422982045617605646126101848525496165114992931871245047188729702697891901123177190215744262432060296670990253719490908044335258026459526433872836694893246353040937903196570512575645522288663629287496415213028058803668785729637940306825077552889039882994169378187046828915786306527232630144992285200048531643020080139624376837217336028442177937713683151598194700055046020473461762143308245192341035857648599123494378248523432048351973035499942934019479814475636581241712432825657853486807585192372482972015313053975474721185811332572017021979777921496794358490734020942109761320614833204491674284070013065659370511195431087058938124791112372072969247494586848682343134849606377507006544216228940213412396242906013884346471010754684141464026393127132292192758733388332336510435407170127279490381143597299370480621754094371602184385576357594193076254941487149244299575601271811681149806917251347609965446810080047402355573931086833511295635684985981813187833287023446434187178797196642033021596721816131318691318532662615773575384196635192941787980375615930094538880488801323896182215312869230690774398749187762405117615770831093810146210091554566241372593157513459195200581467043532978445815592660628280925328533252295258369230206011481208487356253820551282602622361045859716455489409819076809629181427439149395963511808103359600013164054566380170708087229577170486137165095550201242563387418553271462155133576742337143474874161379923379464028183618051504606217364266029142081267060279588781365056199810261643434365193110457307251725510739558839836535425119046421349225517468949821350708548290097817574760466047533885596659212960966000299744818791574158426229340737795509699529866697844451225268360349598469573770532967792908720206762387730834909565778452542061693582555899562277145855675096077580045097561609096190793810424074035105444159187201359984473684060543626056970423793113163325177318429815272158233590881092256056684519251768472645875190291506476797711995084867375371697260883148478588777757629983438416921453469469240639788365084631176136400215983318735153256262669883485353040831619283274775332063584284599645092755393313241832382655936143548562882356427622074847259932439505531717907037291160853848224319896108348019284992603498120711210532852352463774639244306996600645960437177452351134990424553630345455520208491615073210101381478422194237481429357088242413953116850688223135349414128016704058478613970716578803000491215723540138688755634748441092112122655281994203129786620118479214949404939532786639259687869196147901465075773727433889383822677391881600913861434771478801526202683132446074567485098059258175893902612399957061957027668072211608336394503982008247455021285273238699494224820558949356086753552948500260379874022338205447652352954629281715093121765171269345670033798203852028319737682985266614084133476016011867134659574714047019954482082826649691541253604917146595820672088062350806330972956080243966854574695220715705961579018183940367137922228635701991991414723393426554689675169699423755208092912241167329451265188245747236321974292911913536186511822705178550559271584904527298000787599325955636998519888781725712837526041429165352332382814765535834312138276476545499211955668497569703914448939817033640889233276293190800335809746083319878237298144513633910151158821177745555746834549260428712800197153439026658602308717219840058986547010267128135749637587859813785949832271724475637280477420809052300980098358096757638691552509827205298776938104585747666566506959822894996414653492898987980904060156695495377683874061826904285729599429229132000732627144297980530334517264062126118603648341908638928512623043367761196735940067668787368619079998601182849485021464108203617001406490939372075786804556510684029712490396251155381652673076556125501153701593101639917343201910795585338170873477645348341964378246526977762528904980441812688872068130051399690149659721846886393237397435151817747922789065845352633618094528185934756904182693336552446545490090621271011083395947685701774571935283726052494356890732250549812507196604141707206654334519454387485754048920608342033010683455974285134657961590588371101802884395028926572366196485441211544249555728736144255435641754070348986131196976746142105203890826810791940674506542178343100131086156545433034823119977604681689588090008763012272986433887190779251792115800923064899704197581967238907997738483558674502024374270154789543356852433844277547708977741931607018413742105125244519756505754168392140626192908345848074262235740017717591820859457842430256681858083118402875366283512967656991950688742145393239793276251083799788671292773619996933057796327051360122646717915699588034597469560736745493245428245949504954679096695480495345284314851672483730888420730957040157010143963586073396447321770857535681913261253366494514342421328691254207598005718220060365889693824636419323859918916751385750267126791434836305083901285941942853652069976339709985843752820657933493226187051396471627801144564657896939708420795632111665690341468669956072371022704777372017435105672782810422282646465419594966847553321683165131430297647839080669896154484336037688675839023862800807496686737824255004183141075659667830502477268417362079812125881641185730406204172910275379487172159361079419699785005939725878860358639395148791736074070465112944750214620374083865459776328146611560529303574832856565634437815697602516597486796800365915902865489300598832042373933698339814969646754791317506273798132246978929187836689902059260511855909483592340870844478186565385296078004475367776148744913973571017326081904475183413872211623814910229287066204313024863885670560950676562769226997115769749328972750627410923838754193132660884356582624498877343131287477049693177554796552037400181803514809662798789680764270032082477169177446525435305154761237093553138729499373954408880920935734553701601928724548355539251105753084963262071930628605833392418695286388077244959063750252239159632703561397550966397057421505020804808417154104698564664665139980915427363963399092126512962715428497740074715791465454101975210958040280016984279304696856975071392232671695696016623000789767313340010023712090434714484038071142161364474795758492709403408057080684948484036233916326287788324425035683676324890263702001409674641858705434751853439846404561298738453028733036834048098794432330852032668022801939552356076241015425554196389771011889651807118865150797905491623454390412079298410444038042524746033957152013994339179794080511782734890082070919319777284917094509231316408923584982986815074010355420015480879861607654117932062133470920359903192055417324132393405688349878276395691982378551875827860693169275413447229347660304207577200926126085724227968186484395951349994956063702866759365914697903435542412331089114977399487943589408094859225151672821669132312747471073949339218960040607343850983511859208582074540595032614785123866364621210920380562842720441089093803564818827257822222031749175719170034228718761716420362246276339210726914397765763000358796050130709084293185318068429640771215911384516193716287467210219106952195881554830081971450707323682474908925122398379560264463862123518416111573159353965437409127989310404098758105767638172971037228412896149107473515252782121557906127149849129838950098058552888128658655184377049051352624979798799960813245220918945151823441146524005334848091859658309690104639613554315170942617933440601946045640159050499639306605193834347757011847788376453395234150912872985373150772932435202644542967029687137422499945729422714024840112333445764891709111647486097010094394585164331558141923843324646763360269535750421317228309924379868869352038302387481469996349955752163856888634999856181325245204794706045700092392155852653860480563969089845997788570606393369885133148905830562606640618082212160910747650489642435382557728511416286342541476510059393422841825819463834847028814019905973397710779000429982792835484435193112220444524335035813170215556794701063091923034237389651635989677081098513295843570423692864513107218530739715278019918622265178088693218113265161070492642103357194783582554517389404578187297519089663875627944467667193794482154407695132473025387477941753682308034680573451060328412525658665263205449116548978822010522184554897845216397370843876835784889532512547779297582457760983101898124380090408996755543833804718266653705164119437827684145489286888511153172410298946017402869115479742138422107458495502611521153690283904955431680800252591605533326311549156932128900561339129701951636933138094547088906389158796533471176918638554864680862223832998426274569483455632760338111114997721700906868936599179206358453724605744800145463136382815592059289819687797245753292745157703778153703905083813915700953506889742517006845533799786666889007934125680643774247953493674174873916386505256232791503281776232421000297484650930589975997286591322578269775720206928487204587657523934601803186231369002686600213657644493725271876000953860421585447560801443972935756129933894206155825209492544634542967440836171928991340214660542103389383425366746041055514047296624723248446915534208811177826357720841680515773063530248655596407086835457154576467286022579467166806995373849662884875487277411347200275402562731815911938359115208782989800443074178895669868495120965675728702277779290428172925977604168299127727212111811141089823044359906580908346198725639911214205411127434287286218160967501661456808205459248510202606192283249549524583602173592096422865555284171375649462840169124801911891213817222204516239284661334951773800613920220610089860996404538616050779695608826387566979765870562117693200677118606245181043756136680016070673110526647699047576015643995631833742339932590599941828612909249432201551918356260497672443387942092924809863670871123481014377324535326342036017615816229917899978804274257388039198272601098299894931898057409342489750004850551034791814789510296091601706439898778866095799220290268033008123026659993797014569073033355444141482432393792645265231359675430707727686752951349945028657626703690357245213908731835960688620143332164558803744283712173696002103988323097204683753698578200064055004027757942069579995871948779041040010509480782419348852348697340737974497943357617614787034438566016690516307740132354567535242268230899997121212879986497952151572332638135788878254012828620442999356231930705200062689662569177371682499458922908930424546414764082113089360000282073545458075489884552314565335816810325293604575324183757012963937705645964599049892462444991241705316294966298560070763535276433726620739244159768570006564113579279014590561112418007866314420348553214907802393047725983218181425245193800533518709823197792346290958832758788973077748953242233281905482147605268342842227433070696412393092383020200170799735016006884984567860037255991906699745998818065642693762994466554658620124810356204088204600031356819280676352217205870012084868439645357471738537918139090386513238125992215521681504925061126917855404089413094147022565970899673202663294546849159386043442262453843820737963424905531234241112541235136310591177972549221846906886687140452933903217150180605873378839042804906565135836184842527910306740380766115871686260706991591444002870575202420321836361127942878829422617175109091438478873154882481686435767179664924861497873402366680436293385228849637742615695390157310642045615669607193077562305241109170158483495900156951458747714789283685308042864753682506377702722603133519233813809646441229223946840785304182553355005115664723918268139483302473480061062989703535118953718492226847530151298914037659732725161174684262059280425339970965096577921897316157760725417800495005922706241666383169501918309987078663608163112316196752537519548532695585976981799602109406178583060593091563240433498287528747174701811088647796130119013913245767734979399019988185212024399808581995597232527343590622136170958133436244076761523169602658068775121672159866320611524582719037101562071466737769995370301869267786047139504931472638602390926320076519870025270856680537147697389044622730095279791925798800290003003856486058798042459425860031221401498012095881476317481263743229926401532664811137170412311369690745880521479996964151152306655704714181253364556307311248756678400689618990871575858264491298630294684276953576897149816374401120737396826822423076637583204678950515036478092240998174041058795941143300612303761196006824227991277769570814253205475811404867045971824135442097601465671559376619086221816630818564809590412104887209265184570286229569000802270088898226073927318346283263078025289722849434378435409108609682846751983519170442456454698156331595207367032583007699310791442205784638263387175204485733759490363227309655020561557364573437754305834374667078673051934054115627444914723723430962542528884673832914590978727165259133982496472979718202044214846498390040369625208304949584163270513550887981823605821569084007357129179847802861013788828873689432484130814110161861420019634986359371976955882924024873161216007708606487891901746456594661448595999650756794881550233722175454365358437384441709586242648281469975780845809716714868215305949164356990757248150199494644287752889205891373063044145509880967272685003979386340126976700777570898131881802297044086170117208928399284195835387956982839476432522870183178926335971127190479251257139956844386567750170244988451562805988714334613351734483856747581994447774152970355568813649542135522933468079166283608904334041920026778836665899983303839786853737276424738429870150507096523908562149944586195992129308535860123676457220686846397507132751858104545158783863627478537595841147813729546014238470867300427835593172657900420067279492077179752879862683884174349843388407932347889891685118106650976002523959259214487510441110218979465726152541214287673866428682201836313798011389683861017306316993749384387190286219286556056882478449645521842598528034162888028877566448885775412926684694497298928946417371025365174025669138913548197941577756883894574602247966101894822040023241177933857448808637021565781061404085524701240089010583906684785684713773690994856021053160142596510919989796077397393110677398308038675713012619894677558326067128092115415540130686510623694882032020209639512552876100899032808340066550942106540058814676484478701761120110964710785596681026580233946758970376700781247284563002767682222889001386558493237364142459337689762294206890478576510000565898317934485746058679053233917204172225402906533050813536713775289315113756408275259324496112414566182187839510666582163079725246250072054568797243231122724270598249265597066462842420315100483939792807175059721551872238818081171110701113035640723081336477110161619709631363273202847873469808503527517438209373176791175197088779585718347271948212758606788443479947539920434911937336481673032380591229184025748531488454744108154976189699067557554957510984549697268257597865636307300390763246930427872880537955495023299991064203233684917686814203153627701286614704561863947888391618829046262984831172304083163221086008257200091190820485630322242356111672076274386438715354836257295400635067802820085211236115994180519196888574837830593660726832717662791559860914068587713528407539302457992500202873706974614392305031650853766455620766484221018674450334992416463730782002648269339458112087342820189852026087368407233065999899035477606365925636211109120128201198267684039329195240000712501983588336458286858612286675135454520625011999646257462917695031125578850207091755606795068777283188578875447689320694734845321031884682917596112973831289474424125515946345908807125810052342657468282256734667150304233109083366024373235465445099507355318042816848499022166531629495253641621504003426424067128447372752311784688272209668345615071120686304554203534440386550431471401106748938900629612563027025092966752118398322614627208984479373092587877187194575016364725909867445559953768826347453801454652291231704565372213710127434856400345680885290299647790753361685487172320258295531019838993847357405007166013526475530217857311839248907731346104587216090724017184931323322914470742360560429802548055958614025615826063789342309246383510540259791221360985160086643486095104876794924960817220616796347069543835935970849178308310003707738127095112556276247458501544210836300142330562586154830717914191597402932972695745565916608662113503470458436868403319506718876399704443203785004831649382037719053433876325364843068229708403336302202139390265210942733492444783429987374141174042274472033780487201138551543774106743242864865207246648529056084842551813188360037428813234980371109487482477609426665751407324985272085968789078595979606308504783767551430429593967044993863124378715195907492673934046192842947761986546694597270446836690493751105909671197622363638897441690275305260097847017769332445515593176284477829665801043258247950885872834617324908022672715832955724083189179809628589925071600917989656016427362355145658687160873418307485471204031747149278498651885404175341852436702247223482517934096747012424923436128954137742633980417290535630793552114322247321107623097911778635921451443776911549189701599085754748975058352393135645032058495166763873329583967627519655531303561494910927729288972844948663126349130104373939343340161464317557569088870400720939143705583243079086529931555627206017314952051650950521411690825461330663145013449307604539181906529267147566430053350345951564466724399755634487451434393968474914224032789374231890748453711193660408528797997127133759106074834444527725904222192602182016147073894776381697445795076124448348919943288182075705052857729015249360872040253667603487875822562152566754460526373765756169512367034571280475575750663840508957113442694875603137669579809932023261619521017538672573193766722939394207487456172025475229249656833887263106846712537775551667100347237340770329889317402696923867917314759358422441160159043363697280754121738202559319060280195759429437751367773949781022309693424882788606416729162922293348235027565014198297562759449105831100808022558780022976455629048965581647301870151667130075296332441212334590052891826296749556483672138416922783307838271049026924337934081552137189688704776354374402237361713969719377198479333652622597126637668840590919712355368256155751338559063220786138386966842511025049777172891203536307142867481168372104295206636723794724624473682117456791702612122961765557976646038175961155780178987603933954401557212359193927937590869374136593099686266590013990726611435316675684975035677397955647369837145634680487955422554201874606743307085986680328371937190117419873674848783908320362054509349866459008285283318686702085259287489395757293542392178954512118945606360791789456868330134651242078563016265587397550282568042409975637032182076647023279332104016808609579018131057945491191367252346269598540149693711180773017572031214607032001036965705721154973459528172725322628679402777585950649909194255855059710865144277636785820492928186793813562794394181244485917301949548850840613182658368513111887033207167570323920433346152470932504628685465527675375521873074888877912591785792423088657845206681233473066338634071871383082944679253544164764249305848576168653976266284950261564392538521103538146378314359219349508977204921776865507560793169017163667029990669324641846432494107927246625377494850774253384723680370580389025608730554583935273472831019865146102917370026093889287811756099640928743261946954691351343318009781242020628318885722475938468611144043238367929360567329946023816392516347003634280139341063524720199713862687926895724030650626978239174084974227784466107145136676498781321906276342864196945404519105471107528342669460124946242061706527741357657582830474770828576757179601213672319499366173036233840666268775754101733527277343053151791344529068297445043183611706970805838413438243633707446764678227270540444350840153261060031429686187907152254808409151946677761985508987266486981019700650109022635305564548011171992730655308401706422911882967537746729871477421699386443420166719919678888476774031439503645599771918580803871171303105027941998079494702958936612926203269069449670906467278971293576732398114849319895343340935270982846925793304974249552371465729080407571981828290174471835718584466556055457467478537878519880556919706479312992140696807829053175689671030088873632108191611843332296013416786252335031414801697949459722486230520662825783883572739792840443452921042009619913253146065371326515314586172229312850069206406346334989175403180353861185621285185089153678996235103272619843028255979013369078697316804581238595486375158916446645761545411428767228009826934273387210122449170878343850805510412192447549846314494690061274712462077210314355066048034695826376153663554832291750160907844328903462464499251905646200364142031416557359788818069624443283210123627185757847252929039025264580786546337022734923437769025630544859430230274606337487253550463056401315899758741124346552118106671240658960554200728527271104499014644797010056935287896575776861952891812028156012398700011620895345344926772237937757421838119032177170708293015036540655479816446917919621666209574352189919964230348521183238320458385022114510026500782943924763600888000209489667851394177826878157586246321180680711923347355421726486193496257367425682405025091153888392205884077994267748210749786401369024355609734041883377671337494597141547698813396321559960157560311525494088150653438122499031155385771623998838833185107333747436932906112974932730133969979415076863875717121979880786803696908906113806929288623756953643194047535831066892100588158619607310061373516338447401823069543842591306611871040055644945907166663332508289270429253081459397544120901312854827165521392011000350830545232010269375845862441424759871671847703999806771682216753143282564869688305294415032024180262453722499045471608788601480838070597891272233365822242457243988077737615598306673871757672093558078217355792827746545652952744092781962187096553212675607621162303093068501670347168642989196342124666986359983667384960433128660296922541473001711015327232653676399749032630838960578598985224526212961713918101785294831277229813980903582645671848531243790016475435705010503908704896118404574750307727287164465289338173957853323619516307420425368438700415365119691764009538863648972196481268339100450571941439459629267236146044148629308587992376033796768047600687730306662615600635232163504335676098231895913344785415411459209862761390037260101269696312730958559977044220059473013625186024490925303743481127218743879811994513138138438390111257073365067143267867426032838168069745392523425287900428210094338951148282060036555721125596175407639781572369992743919145615437006995507852241595524114159955738318589730302525070594349334992641972987975359466470198779691390753767073815990007687261589047356888541386059373436839369805596482858954174976041272679179272217430963052908409509823575057218002750367776982263111976472620575723187866344657063601785733246936548463162795034156218224701338449376615738407454030703007325840591363398605366167370053854927461547578211020739115298251193418463409531086473510985097755294167303624118265498540033766386146062123152015223140538141513025850258771173101010773572197659254302768180019409978267227002304583259370042491834998988386754504076444978001371805079820334222040789718674874281336882290070788422082531056947602883556483103056671455033158168282740035665683082341751333926907937633137889847670935317475489597529847481450392369042173729397347847179203990835310842730368689016346179712023558330797398413221872241293413087924234953324442917147405900688210899537836754207252815322924271533774443498836100333359642017380371092306031337932315750452890915051784195640772712014473350683691565705096566771997697161423248392176447529216423698911079519113102577078881159853587303190879822508891937885761362987638961703118707911675991513834402290829532900930440895144908615423126074864687950105131630407739764903438635373671606640965360036782647349441057404260905974978280933752470465101301432403296147091969110543085258338434411894032727526000413987572816910086852496491064065894916356322928394808776493994407958586142368729946413764673679436360064018735149571969884401921249829838611189777552259461126720357219906284150759708906672688069655139865037230865938542921182718943536861427148090676840922410914562368554430325408250162414835272319235070532482558725513075417238820152850752447252910512453225312169722688474514711623921117199119683832797702699077641770044211300948470711607871930297153462958221742019750405282634847828922296636303860804537761424892694745926595576629161856060585884917934381439940004060566770786721350904544801926770482495393692916182994075964037261934931674521963028289149463852519142278634789822380346608726251297881430684693266639102762197499226942148400114343283465091477832532452602734404672033913288455129114253166804638291640032956104828166626471854454582877867863877104694478862935218609233163920166744003618193682351159193359334021182782952815023923508238113068522347305389244872156266176920357949816642699524003335689797412318596671713140791299986867866971210294003382317882029474136016411249686132114467312022071467446177290283539644082236728513821546412912175136770466156418889009760001857467275646031453793776802315872955124908885648200946986445260102542101193849344451077530135284511316708292543801981606226143484789883222723986135631592645151414074040096645615258321455536607105536778239623125976252226461547994404576203310093816177535012607813843116380151060096750591211740737259419130451080399508479778391079882055580681605430441359289704556673109474998977758849878343765406476343112625699421986110073975151741680714398865832013860173747644934477125396255445938424028625378321629416724581064468960533341625057737964986969886952471152504939934946027393372324422375372600434092700140189327908293951690290775445607557367685480483936498658216380842657870409736854504990154167078842276977468913204857196807106334384633325678260960757586018549050486234177362969656085757676146912070604148897316263800300059329490278739309033050104987832135043434750946978803402067740609297251098163256583815945961904042919630829878809494559526722801066867712073401929135570639751528233239368944764305064968214490084207443102815493596693756293637368325636907661756884039160221304318630376408146841704675507614489370682688108878648965923792417042883746758999320729522511743104952454300573084466282666963620230263876242575438236106935287601152603395022782682545885869679292986031818335989372330482571566618550122771109840791328198763270393810080397070655772560491554564259823838820848393918885493532069773455101193206832832608871363377312575494843191270896775844927856351241605380855689776738458458937270055040084073118992135894108572136426447835946479834859477116356932144721239520818568040954398642591569805619277372600920219405029843558171273477405260726218281398877927302190486618754955926993613162114843778504136391994802689867889080454360207187752681873130895207653785370327056160884882204213154559674631277615322917153777460492357161821603446070223303624198227126319663608537640589528179533556713027577670508613263961826891827457064436049634759346679928831157831853318046833449574372539894726583513126065482175676197233899461014960545889283890759599969638595184288755169471070824339035758706522833553357017769118228706240171200083508217845924032373664580996641386634532273390138247729947045467391060085438850616592577163991454438724429262311644606233469375188337039426920048070560964522617762758269950092695165249436545572575337035398961316976967080409549977885209236653371951303934870126727245036783056798314238680930075432650169285954885561790145675465557904419302851139366829025745193100421095226375886811548736193438081535125651965378145197591193914032822430690971086399153296742548442587556958868063992678656266988108760771400299289573155002591846378548697602359687027573054587960592828883069774765915848162756729607501782566051557553164493333118692218173381190719601715776241435892557976870212978975236553834247034065436109324379084180360877006961738276734532177166598014554705568262423083575509026604689604273688625695289852283359000402231001473258445117727542755520693709835060594708180759593530288049329183188263897359905678950141941707405059988291432076711643822124689880619980317043987513207832792535850494128521123475829100161866676159087184923567029377175597232339378783788141868763058187426043981902439190931829340020857381784978939815449461290227011043225801370656061319937930132355555519891862270305660201831218198166275029231134337073835990391758895386060943419913295191880294763978752727846845108437483485933052310771139211702919941894196559694954640289840776748371683173769546938650155826601348943314856394100868266912639763072349511356248688539175318022229976497419064921419224306807624462246070968042850679360566474003914931967716451432037616104254740111943855980007194577960796178555856364368503746269898480267073367038449644663936113642986556952531145288270005628117809735715407715679728179745328679827897825781031870612794450120304345888469600105871327484364672604132719600246005151991018894111734317404169043302810072904476431678202570729654668644717595039197620912884947917957417151307953960989579821743769021480090252024829165384785677867749303104470327218437114863915512120275623443237695853194626154451521454012134186983845038620419895098097006383155896408901381351717445894118939889104721203560359389224174589571991502588572153717183052278668956669225891627580407096697837041074254423857455629232675517703273347909455258427868246479717284076723701698223667363471386031151712795633299755264628176071552839373393471763261543022070490045971084776904784535776776706132605156967015621686364982278115207831847561596086170125367658128537773906959379012657681559279857785956102494243840377690594815097521124435607170828973655665772785658857695401839798409085820580630185552540452360566962297982302903795512538859252365236220397296676445850342922186218064821257026614359130038230448066497897436904112287104373519548778253722660761468442983908871497829094454283655780487563117984113357695873398694052891057857497071982229975538721190937971973398820519386032236068858511110548717928936978698421896827175181433849018450893698358346901586250891948204278229530812089326222387333688559639981187272055298292833982520370970048519933734154218658275936064842244055891551444801574463037450219801462528655629710121323466266660527397346446969222340717054929836662479786775874707002875326219892991924540263165181376885722465601400968511355634704540825128077797566824164204736203073602870035273651047841104813655329442873757948425563196497624619334825002486119359772145624299741667112862179924595620954467016830984127196896751039507114418912689168391717173215911376789966974113714894777249316096600875065162075672176752595112096920212701308756071712361839407001511638569337776955646199212915330485660627186942228373306309888774745313343051509388406164250703504778817714945790650364516244248307737089989230197964908204688347433893029045684665670346077209714800836119755088169536180426537431712524332612052743786271527552112987200117870017126684563815115370009972776974351667841146582109580490450700258369162787154890898602741574175533966694168973604148854510311017170366191504773166274741986109458641878161628178290352568460418301080057993562525184845291419458628817368746475492981920624615839281571280525543651578370485333742771462365633882409673068413217688873563449733684659508624136970330539762650968200640439015987908487196779103512739609285027656304681409757233016875057051080205930547806273071280533685912288648047387314049448362494626704320377233120916954137202192797129301516493586374101931019969291475628721632962080363472781542659068484886388841807511851463429787008575576077289976353131675170414535155330633615675977264031015043215207819648915783901177827827607464413323755420893014295372502665503602656164204228094476549985618964469654341544217856959829216731354777402040168777760997500315345454941607999695749257963782017009694376130915386625920734072292767620791643859785981774272425504445751755412652810997196247145897000074087074994154988295498811417835293818039028988596323609355134376778885708436306827259979041328524033585775151949584051862331457141552437366815900013723573733487456146118816353666449892835722849685692790095556652872305885142713117265540639394174181612842975500943444453026493218292226639646600678923276259327360410680079623358332761074539911045032620750574734238271534245814631031606889030473257639609188031945332653820776921369356296536951534442256001168409137996359338538903712329870896667031617185678506364529314430202277314980872606505844993828216856051504050740248655669435580305118795308974842556539489263420075329229323063079534651756102769786338918065775742384275019868277567468273290436720672001616135111179281795430987592767760498338124530723367647419750273271585569978741515109543410598481752875887823645785966934671742858581060266414384120224470837735337651949615561487726848409479567394006227389288472129726072251502028210795832167106599167302154492323357062391700621283775360807285856957575119822931127380218298792084897216855340556653825292615334637654772063386868163394769811890750558789684304598808736866229772090175410861863612941723273807198428338115657799285968947334016018178935867279728349856455539044615368963765664437120790905844182791755051382101496259363971563924578075864661536847240929150650140307467833662318847327667840582737568755678570115113288185691932374572332556563170638133564789440565017438027493597324689172888938854605851930404637807716033951873126968330583499283520805759306455116699839758056110465253897646966589012029493355476765112702827272915786429810295060725017652011284730150918148163791689433240721811807776236260204105231319128793223334943873603429720928439894195156609502585944568902998688902250177474304497600370609409397361286786639447284316592670648183172295169259910297542342548678264456726916235640270397423750016411682566872734063235275306375047512908567564815244544803161000972856204635371118103464322458961536080633934276607415277057141492600045760328855640746504825317706712346105076953350952695549546272132089111302508166680278904113183947824308029650778219753919875623694211362215082397593992424671516583654910624679331537824263335786032798084053580959559520861423183852268908572692775632136179865447069254121748455851886390366371788289574552035612763661181008806468646890112032372172238356653265854820259645074069624995792538226412344774922914401259447982505185796312380521488827960517527514992224583939975536967556313507824713047891740084446490041707518237873814205318745239354534133685090642620263905883401262034930480307979989818326818489477803424095346352348545330335531283574521045985177198658086391234081215416221698100257452567227690248296192890154088123660539532705825846211069860158320114937512685067459488750147659230837048386728352754944446816198065100150514671484995504228677809210567966536801212207350440206587445609932714138263273567086422811095474229998018795138335196187104223446209603614263640465769558058670401891284981463338520384808581775715755752605534063574797293370994740465130471683741730995457548132014680133935211763060802503970401892071349549972794296031069038239074890558161373585282426252017024050666237449147634371976592879308692836310077508537637625365262977590859378504586311735738276933489582620536223067302657893725223880422518129838060552064180136103296405098590556631504314579586108559863233838920237041988268730865024041635338302303516997728365356733400295785619328076083376971007948384621232532961658183141542113661911919133462523247786832270023169896824502097472667290060387128034818613566911897874938316416483103932900271573309458787833873271349134348817906004714693054958698182291370899453724424953910859322922660357544518155685940225166727396086107965027368633634287751550348031281931474244951169933130170002023285080040525714741107684961766399890109971473255827081733443249574380243422760645450176778035015537582390307200289495432476388343298167088182302113670603998176799922098398756610502257777013674574638622201517480214933753522385426636194381177627988922370936515473305935444648257969535456503296080745856773188669991969231186353179471318359973108881946278969115267940451862937973626874146209600164691319519226111087592814943369910522261678949452290171022725094182992387986963707176875111936808454136441127202318030982166150695580109441778422774845257519327060716111618921499664755457273377169148964452742658337614557625663120110878430628173183383577527602200992715645316410257508481334472824403790242550265450265761708654294464693950064394269524434294263187100190265541694272353660993871340604201147590165576680828690042414526954702970906450625771022748296316256058055867021262561349806247631531933617063345794372312041655437497517324695231915926494306652036589384279130660032501296966126376775132300978075164313010669132334078910746750826604194357351407712108754502714913242135794546533888696161863440819628517018617520778673213054404875210236271155601768174782449543281417858506946188776267614882358590651128034794290885771866347698467451469059473734418571699667818125567944529055623343147469652458132279896647393932558253887363261526215289050107325005098104382720001670508223180809630223234245649015387332302699092217863987317007908557739226853417924973688514973207041803792621772434287197478188705716208963863255592883194673795202638892729921478829273991224951850386392199159909221235448147496564487961535638119090278527433063361737433391127062777491435059635856678678799056950253409265058118622918034149316216590228724152188129061284138851585037219452248465565370278902089533483083496788372789484447581103107688827597894830268011924172344574572621025068648748350502194039465807625899431518782508893210222621975976328504979334103975575212452355192675686936244880871129018349245810161695091269180362789362983183532288030506157118272020412496521135260464655912164758482063394221130184611786625947937278554726596772530013341104147422929432307273321281487866668521229271342900238195172243600872800148555856424499207213315861564850680556993200814890831725231210561955245872121786740245128999056807645793347076399648169606386076355680389578564214630965750861826631010824688845340811271237483651804088417318822040077488962139890351146454976436729884882118524368724730819176608877038836642705821621477896799213051852741281821832996949308426826718193271831108070653392007523340997070043443473427967146849564704132733850191652308175674983272146049770241436611011957686240307738428511504449909395230332775990062248187307493653110086721665062193181737757002938386093347974235351388299709834055557282343944695165902208414208851382458389923521252792536493785634433853514823059815755695970187518885885523971659623092693681099888484368972986985153575781762965283730432462323098101929494553958109425395599060103395775330239160230715961105216757788480794321129645782569417310907003395400781921855578963932153655378302339825074745194031435443123699983559117995559257432428730262407378432565415350182015573730027288537048246875747195895402706714383498712722642636969944305383935842557014888780017641416282829502002502799254040987113184777655077542710507881209745590822170283680205950322008613093704141965879934053664893922638678497281851649158634853932988733017268804555938381719387589945003182116360680836354915843644514564385571746758309231843462639544841009512358159230651841894620237515241193876831354129921265667209586794299502217587582244612507251706639694744662045354893926347383010916681069354695472079996135496633221925437489420503570665250358468650528415047491936395564310856626025956892602035011450839920244460134763195876008033289783721882922678515993161411192119298949222249092713793378104402178882232268862649373349359124065832995068664373829310340046822205891767389944679520946368994951818201329238345628523912765870312519513145165288721013620298928389972243936642854098264349998198138552547657517330159555054781923346161991142966071970703522748589979990439980485212983053367834050134852978313491206909575432844976581922650245432126709785708201460038112822099195611143616957354694832686889787381829852229497239957526862853961864148611827651219934204847011971383860424707664105897421655778097510067746750168509823030257370355928316471121855122167958554512284362511836543512437750163331855777466298152957380530595491740334917709822324933858073103868612082898252206982600607177783480705985536987828079154175029029564863389923400810919832760091314816127402118649265951632937069497689581194495989260104451611920608287496887407039498887024332777547328104509852350264283184191070509352868375572309875366408746040846281121247048357862730389953826006402056400560600735314396224917240171945752794869851431156302192751604993449924017943561918203338898626821058053473130257391230015662343287377929966102174040883790580161734235122847227746444503475811393061159757112247777158638735204125976500444176368492172496560914642846355559221625419239930461266517051347177260647305333181680450371784307889161244886600242605812264274690015731257375132494329205874331034314148626764943240176865403529999173027087663688398625529773332747969037088613736526288782117512536144643881252550268204701601784318310427904780082878156099183386727912186014528207306550570274123905972774958075021891672520118702987349127734868420203464875752172624406932204024003173691320970489949169826529324376466802156711398304979698411770039588875368313462713293016271154089622679857063278384177507222173434717418155128284562191982284060361407235359252614040961482281114878614435030114016866784533907936699442884087295922184653177108773192077015878993651876835851099625482101590951229394158962735536180775975883550614741994225177598783211354783315490072508588390491039410852746089339291839646138552380475032152595923348520312225407173141817018395316724366139491897784728333233665466109388734593674083278005580547642023872086729323059957727826224229849752287271892678573248923745712162259174115222976272105688955027282796962669926719815449079591133638788975952527339106336934806225495095620694583346935599571878487240715131755387384787787271294911921447889018499648122141375097443699519494564456493318989818526828773108417056703159740224905694103069687071634026043085287937767752716609237106479818610891085621334198889666258971581237101519138795425385857938007493290933968833938089108707712712540233031345623455530013351255853303476800793746150848538923261352517632285070636678633008258505823452894880117167937916706176225169895106644232626088732704028893410121908276858060438518132268570868498005648228337875078882384250377626231129978344722370459086741347608552927447779161716319066972528526124098545608837148686888944813083351459310073717103171027513267199527351842781261592802966506602539535200597263970040263523164933814716814906270076963646484611445599783138919671707796732951247582017834290235118563107496597056565491780695352555631024892770382076989110410880288980446738303737544920105184780123475950638080816763328620510566152382666571785298347748178402374976927284951129343288018633840783462080583637014367961230000791401937941466277110482364488042759974096560266641081355778193885570195324192280240631427134300680557768646092270273061035630120167009301747528209067969859887664747856561007530853206335435041052078502435927751477032001052643802883357225029761594060149378616831281541650346043273032379715802795047225459941122917194249207068677659869740329210140713497995494682000621249159876118289890365624508611787297377188369607025977571380715309386256737835100301501927140899449981632509888129619917297441523786132742599124701650477417347692078049381826815260058573251510678069070484000762715680051097463843349156812411610265882288298498972524818094489842014222167034382898856104176387107262131427110520210381596664107800744181518303339014485498860922987478572448784930050191786383269185962874182823031309384472426390775243315642960886765758292208874612653731496307575024670591130834040505153037059961990907772204929047501910457782372677111580735708081283943118057063990070655093935742550251363267342498683080742721961690525968334546604071422575104104583625498655221344578325017447919809455493324360525231331927227181301987243522483418529381395019530655642947769657807599057942814153679816622121885740904310435963831773304926534117528630146056401900748199891253641871460299157566228716621963929821849105516441332535587764177661591507587813235490165078228959010802451914497791233349709107644654511752011818429364359858165576689707356861081659453805996692831528502932587679754965253975860619727120013044036476543179803177413105654442961461060564327620344786301776284427021847344666815476436512285605701084648375368449692235261111757309961225534856332388305853918969238872272062095726095937905735349527070657865855344864708632186119665982744819557367861070863021411868573089374175346408807914365289290844212721811638626066399665985517192153391052310133424212663973762200253476337284616229629519165676959414245545077407247229535280261096304624336335438210295451608162611975481311307197570302367615965358954852509501902566280998168761982854370614228266588553270962785556714001247753442148357868256572950183437573939548823959287267144932277109644344838833995107087426600766758065911663482966850030413107151960253095638784579639818485292282824868463890937871772868825626433933504758335605840783721254309049585153693862254642005637845355717540887277895181700595678550980256248010448240365845381568012385785102709416610117156544341840823128812897755338047808887307880593634962681789690371686854527925151768199340482994066795708811485008320559855798852890002581070053072351901053879301686632518975892219224633806895941111756673474856280752945059143965254608869515223777316755510111238768165361046578000670311016868660042833621811652584462864493817690210384374110670536230030003314245879544511529143688208070704351173711564836360813206110819999585193887724285104457965620968991158742929569693309080853743415617162738223848786076648393681341008247355080331215044024610187208268341354131035978165653619573039040583110663091258910543524473504931118594954592824835989146670530794801839135868415947838811583194549150051559081751314172545482161702234779733690806375912413865772373873086386891810144605366574259478401403613249325163373575703441212195940719145249684507123087197244724911316253201103302736612713540719309997803573523643020988822062839608101818793204054266960233199156255035985049723141373910138575513995688063699203328409782884401190387362125031240978669764434972583187115966048714203906100281238027721236673057831541588144798279334297283907827184057062160952142189719361319130641393238787272615609900657141368318384012837212479900307032946834583629612642373857402713048858352507190228593679151442735702551157261567532505929596726271248514788577818982887222875662433973879998631532930603826038334744691067202272251383647008335381194516367934954189959120027955448310286988430843370940874131414704452937664698886561267204714053413297702904184168683308185704558438481783267417781864390385362242624649579782572931089733857784947535501913811380303832245491347403516283485468787176571728076459158844255050187785620727731605263087945214791552734966746456384221275760232156753887998029945879046525682562812536265972766195451028095407438251752777095481960837763363826117176473418137796587126043335031263713197272744128000702789401845844308315172946086356047710050507840059846697220385915697791911129620067748606532883981325910695452796107225921698437722287214427798702904630615440884734083244591232053488708001376633500110285269643214735262110539833548164075878858759016767733141119894108028062047917401860635216075744376016287699714826466081621115125970197510784305927806645194939271643293139312288506539356669607210029595968930760854515155356306492405312552205709913015759798692033541412015327216120671429814181708097954370528026425800147170730619211697284317050205680430853547837180610187227573398606063061750764663931996273608594676479521507169654667686347501210089520327825804911145504064147901862850043888897563307147974146072409472683875256182534816910227348978446678658546442329900746052248778971955092602032003286058665083284441098185985082722333497927865852321668129023600962245503047029053081915897556001281134219394372263980627823924252514430261602809754792150943510565116445284093359156602798637599947821480870400995847391153694152831082383763117391201682483905154021599882303528611342217503711666346993651762069149303745081513345456499129605158180910356638246012062057059020454473841827982960321416473700430685789102219676666385103832420946707668493076300222430302487776319174691973483345391345732415670063639105615587176055042602751279565728070811496100059955983112830202301319472824007612787031538367022673264558467763331156729344608063086945734856685338470288137462413185568018915410967983130378703400258495939264389240798710288675158235145617511880370624201736596875732077429867357157150792980824138514670870641588292511807718792514106112839348850275299188640954733762863555244264139752406114420195043734322552959755718525592955994501500570837752509269214069234697032346194893058336072076659394812285468229142992998081416989981661589951038397831699747908370806661380253946717324717354461860334312676227524414130295779752898758375612980183450113667487403750030256760377864660045969341555128467734123871863161572388261208334052347924573162514040651187430625074682048216262697653690056289792675914745532499568361517961194524437062220876460489783785582664409458565692156490322567507606278054698854442417836945392856807087864212721450071539244024428822480688269782534294679284385037312243734855697942693993708077223214707644079230350299789391956159769912364651605567545759022204633583190719390728635798979379601674838164321680495080253296276402944679563483957149314324007249660811981707475027597362368840040199361790278335001543301901327375616510101352446354504071541981483668134285072690021792993354058918432807776403989756184158542489984750632951095871946680522281685864845245785936804401025221320687553001240562908434701553581314200707747832411582211699823687878924820367529574334533487839519513325650967601134357290609232124189802378749023320088373593398867153242381576223217688809176185117414232345111851198195895118852023742304643998367085272493532500783378327955930855686795499722722551509194607799168251639964379798158428343655074536072022461329903149318098755491356535640478266040216546479516799113322862449176470615898527459097819141938534859362788309804822880893768962576073054420584115036636500182744079991872841883142554879765548298285601518925239408742567648178767592595991354498014581906621161424486732215223362980285815469855162492396934992731754226213346875694194312282847549663994877893473899080313900258792303965551984281583770882417361509829360426617191012448765802238180461707432043828671050773323328918313555873615288602763322556093963077379658221377500887525346873938644222409292353657805492642422067709543077546967603035094415946983952687150128141343017578915401088204905737591516212252166529621774673290165307333388428580998140642128676655810811293573175715022503732942675880041873509192781181449801035575175608503765521884329972082704673416196417451288090536446775750790050903544102959196234439679950278762516948271864541814740007655442136038497187039630596976090824704782383475134388431394802883253613622196498433300684404176782166689562792402448803067902551248516966155809862800563261732217237107741517075101708296432573824552687082537621517094090800654067025543485975285126248203807425118463056587409839490205740266014493200792496590352852824647228249725080550638052107507280851046940520015409456672396520425904522439873395774496751130190071318102125810392614475115543118846627077608493237088225854845508596599308282521268313174267528374923242962491712876868957095576910816103116729768639591415776298200807186417416679976360371449003936178730036190983169498174519987512120087126168204828793502284019843345848701123942751502834101199080769863495749704266620082261026947622362788424709284063198576879280727542888155585634167121117447047631584542576631033757655230355747174948459187192496145054538114764003807307435262104485300974887793195440953886547222055837235051251570110867557799803385776822772859235873076142951740257389527857333966571021396415485925985642136775233148167712901216708677868748144924641236290416477738336638432616317153506824228426844653383118401090759632703375753999038777650321134710324225975417919171748851173220894916128661536516014997269561882114281121325986502311852202826232979401209393705241444649925986205324680344136667165433844054376195356861915070271196473890217258259689866803833440330257558471290699144056794871055013769561389478830310479682522847995719052767609078175188045332007097906865559001877565970893063414192930463948214281544845205629489017513444940797335213246076536952852654884692019451283059942805530821069184217846624320164470615171193769498553259128708065312037324498994668535906559371900535197903128682464183486882874025758146217234175885581063126297716699695952226834799005390268708173791377466649392897832476680092062331804216281982497919588084290764074319332112387539242099147591390194777474190469442114053512337099206657764571506839127141424617119903886258048525627541348580843362994207393936068499245566700986094389127433962580757499647968104604151035825384008131146883806903183638948547382676303047315162885184188012319784586091076052708065267493635953650494566093306465760178886037842888291324224857414869266612183394841181627732259188556570263312513821692926203990099587118235265866383257715559368781073287445518378764533986007342291699750877247093300921565911977866954153827701542511504623950270956184659334512536927155488310981835291299646842236709875288155374875242840694231728554944373399464750130878959827154850681821860979668381267056707662387507179231629488781752230568117426024764702991967322691346128684494161806105549209564477326900191242120901346058479906694420044777253568987629661600085181903016201700468986081237240376252905977405467879241668677985250991977216162131633652380872578735646143376334536295051488064488107291006107676610221921137560374627327592735169640794403999451767352999607188223239362749491035338827996722569260347093933488879757280797236033169497827536179457016797582669987055173451039802965713667599426770864241328258151425190036153579476225453569894358079296079095489460201756408727323401848466544783505308256461963543140550572902139022926919652242637711332560184017461840587431773808674976907060069022900228557708856512668324929981337446927884357436453836399198880845674252796188599019110994981520838243515492196803211610206454358821824776669265584474732805458646295939495371951515101163630200517331052673986538522341043574011880986524081051840895850825779058162383611480599965414022133669788868372017383269652372316459254773958696733986033281164582147312977923132939410147920969804102944703839906642280285139678116227567569131247011695326398867631807142260271166032408700661749432230878049754431224266761200458319473096995544413136823419037088217229659719148124148814784854681826333207868442478466944913423617968265930674543359571581060262414700961980388887044267693844899069373306985069638759742296875439655137856358946695257611184605839354964287951809751061753565394140961126574093179405472717767171804520206503261641234246321354207482231167502315820143323155492351494207233526654255544225605330020866815109675065761161941587921200783938916530449347591334766799540868597446887467336622790841484508563969264800220061098193157812761579984416019021745953569158595005880476115766266938145135462737647670280584758758560789150186021825111196634603354870211816457327735748618747856141435028707265354491358559673708067139049897030821600532272852946730627905105876896071340492051473872566359732124689618702883865784148956142210870397789908773235666213129955662512552172603673202977148733442928880667799096139122077752397979281348215028358027096890440831001926639600756465675616895206395766830177787290824419853480425390827112377490901359034576199797960455046745735039343206300482636537514448720132853907049622728608100282811932260652961652460089136533600922590399809111084779954312280960002955542075466727694498682483370064292586578263626746318954287905250266618921739786151248433954119742802553387123987725363708349696489663854699470797425351596316119743170008825944154540126061185569747284845123328665141449479655067283649295225455645521063108674132747234932683421778889281646194441607490054381167101655122765706008934470254034682989526136843753131354115396662135872362145506274100794612679939091371413184317031282240832000188687974534256740563486432704261181293479162659774945955163581623867267718798270005901928204486135558884147226997822944371730654109595028559211582452726947061849796124711174409936785035517109273783792579134279588321444415979821840710909913851028353964674248583367955093578891195987182287369149420458547211999469918052092398545171827217758306523624369059744900958795079647604809127548447031400821154731909471446858140831894300030998215261668840360500846052331019566248256524441908534475523536882903928366788467656433631834916425532105534234969056587143129860885139530051141013066555415760366001221880380455484785609117798499617407087002684309632285922786244107789066157725490607443565032504418328884009517466753262350926164536487353806477433899825024454985563959127206688787785402605483351540462102092280470525337781723954931925182790500367286208574342743618321083426634411508766819749206717426756857180293299652958988337308440167786620376743861845920515972361557276748554454588558012537349311163210156575027407647959148578914359836692512129580858899323547141145509153864765966158800341507933138610979913198301479521381150222528990036030796084824505411136105787038186875101774727491649423064076559911140745302847509647389528986641186279328963843677477020136543134641265229734376304917088319525063905409613276046163607591130667817619491385706987912995386197487724422293553319800327570773448016349052397733045066584992576454061735664544107828464909780055470820814004135089793295600639973309442907254802651616344134672446703335968369298380427816376209512520132332804935021230908106872524336877244755795304173637548054268537027677340780825709626607029601326772409241121620449457640034331897840666120015589538689380850920094271682465664597106131699827680377163077163069818330851735754705625846828569664144532435411586135746406796815519881942400083339787667578062692292668652856434041562083304059797971761146994108413129683392062891931928146965659245250477849125645055187782498236643998472571892907278731727542153730579563344613183704331052279176480031177517886799292618335441542589136999699366991831041344146819921898936736064571871202698823180131965701936008180917652197462975758829315480830777367696891557121940623289057887393522235925914633549486025845519281089956875280095069877529130255909303936953593796247130803857588835623214875232143967044700085816638769914960714267382037888153121147733576403778043797287181061149786524267089033801937726079476522176254759628904578312482665756730760971688140484073247417318612003008870172232981558623889499266436086253414314473554339042044611188068732383042474017048349643253036016367735095110303881871145419451338643146408063809028531749271047062701869730780234907148584265805322833269761715390981049609777170245903319794366986523915330436865703846993201228851209716072702018335299466669119395275347205157218611341367397299287680420108130982528962937350621378005181088549550709855755354690795469540378071174588511941040143718845075398651502534232798936291043323533839579272658027794679968442259443825487490281855698993766863650397070237085476190298410792127226606105281968966974066984340697639757370105137754893186617148570274788338203304058787271025533160742816900667861275900829148357100658238538153331636346048650356267745754590963234078541912999106236149675821861928134622103458447051768804760790489659374797041001123402337200927261247126206930600395176691860093088883453849069868437139966463356762309771139338338537383539478532005817832331749163788834820427225723744536604049516101495349167401338319970540228857377463517815464308161654124325546341302379610610566940549273608251348456806984460970235966424736163076056251553734035887131881399892879613644712873014620062533198445609168216981600699080650722764583540101466052407940917863633848369630027200137516026276764689209936031549593655756660544931780682236709357790378148897613934552330565169658607184917515038453499188882452010346087536577427943595235816434504209116960166221830256261155571176798112795297895828961252849297733909128834228781391189760624661361276972391448410184508455227399048081576854090097974626658239645156296123461480686381169408012954915683973673075516449491757541787480975245152916732212971436064175950417605505166042508287506819074184208603278219175225895968562576277772874426199856907125557976544918927318118553413615680580685246189338141201734036706246102517352037393283396847087840631396228129531972953711753746774108997151798318600534269597860780770319203493447021134494255827520725450120250420371968286452567610011839204867127610752259616977276839849319855876639868144401446100763461613922003972925552258433101265596281290724309813515033049911957852471009730613051646834892242077405374786689415546115958338582167502357042648636072903883051996529694602535432740907891538884158497532210340951883118234663855481647323636780816999064337312354985291808641835039343714989678243561380993787896507425466904131369711758371948893265164393383093602436452919761553560030769254743804853685232417915613930909451340656856274554708305847936910982586525547257954191551071166665241785762236907315872430726045911235990252681840806761996550879167513291567756725246835391778768355013068660951137701389403829658478034609988065069058235588711721591229814933697164712807729339899147534014638291359882991415260556525915096764949742014087554848835609710511163337868966624172750395657230158739547188473179423301812376028076184504725999681804090997087831008004867940323541921884432062415701639745962339037878699839978359774427347333516124111458294536935970777601754232280620583189282915528860845488110546967047683128342838928479289020430882241057078087345010156939619346864524092658493679645633180856764231525178995549328889819071058763169631799068221915160661494450403763080604001626234484644565001010328595745892862455449984977347578805717890028647168910112525658194979961965763756002346153622597002744744249256241082455148666006731417626913037323629621594619471524655138799230725152122826714262433048238157470345124054435892304869317303581903662006182832122840993733629618749136261675166295831303084342783644279163263998618845978353909860963169991934205731194105768254630065602815668742760605139875750417474114998677287945310176058611757882048693516112469381319756693022670725818740629129016937206859396186278585588783587713057218065204213226675523008671602700401133810818716366727232657557190577991939893571043111031859640074600638470778056684749592222530106034698346801457566547617808879666910351879494685778672971206831498477076517762896206213399824031139150869487972664367964366074067668424704986170137548109846268704392708660265093485164667059225665806452959056036215653050316220798339520865791410719462888476978002125969772521633303361944524441557336929287329421597707816763028709440757263160257111163340958383856838679193898554102858913761197687355647148836322279133039789770583617419881346299853419595750833322811485385929233325498186870705914252077973975345471115836329644087847129785110325779318087493231546366657818949849859970331176396678320980421157911573421204799529280773555893460934157346068991405453123020232027190881115768660242960056249740423162969433821756036015001705375035904505636928778072055993763582089578337742659150239086378364418987412747201718740548043435552638529101802689034925305678511316157517372756580501551097075735946952147177644261307722945248481312324561416674735243419965417173699828816450672221481669246377923876825389852772695631664053771723236247950358969238721785364654199639320555179852050757846381145771114402356981627786109475784239556351989467404450547287125650812045007137116133161224853813805521215721623244466723829142706326915071498444530676311562651421163224046619227844469483753501730486477967978632321655815416592528227996885649668032142650975251681782013522305719156672297554753940081595506226735580687646625841486446786894136820066756843873654938951920863709001346686406969964129139049844260099950425649350258208850086414133305535183252824455455251098536939986781471859807105427791876814807278835112166724788137693904529683782614921032241581744817838287431101665023878418768050672285004380123774452301283833942040844166418619334863419724832913461633212873830136570196343262021019530934947351009900193461348535237963615411249595925119428403854619500032817005649067987717069100841744029005383164129652122257179510051490227926386727597937987462970117002852679639868287351942540420423594698533388550785280623574194257021000804350822118379389130357190462063583212817874103545353513907085344989814792493997994998434122268334022384687708637568175311115600851127896839483706439960959597007843501856887257935326652358971193281087759211600334496648635316609629380577788149660831288618533798124545001660177185978057761352940073600620631398724332523281313401315763702305552629655031963770922358903631936041134711427490905510033014831519886160696771354643359249677560756496426927972307478729181450102617071300473269641259407890719827979852693621418278592174675413475143856210198278574130291368896114395541822837320357571356243432732543182466560740783139777687851938833790227777623517083890849963121746447205832956179919260064138178395514088103999911370301395147206544620828578669053652906138141767514801616300981819807626913997619718386088600777876670104870685552848485965685645534997480546710370491516806017079579345270348049812998207903298425453908405419148439866662846647096124595712860818054178692569855112509852365196465138869747113006060830153761500207477844371235250337814351791528696444442923745286876476365550140127643476549136839643718652446810203341778211299273304442474820430220085297494039832836135435476858968837366727952841606684909323536259104142419845289441403455925816758852068390461193365175879296618528160564097888536420681942070113446187780317918326870160006992174624985201895022545124914404321396926193241941070071504672043883878724919043883835032182682129416834265365665393349361309835057551824781824432215081980491433234804227657645262670950222406540573603483608859500954749747884990549851213413581980031980479512406372345284257044353386027924007578870579390045621045430282021553567813490429252821486211895762934190917893685324453304725266080751912931259685460845978067158951904398761854626460734431149084402680438852648352515230470680958255086602446841782729231190766558178100142927080700452285799701717050404266561173836795768976742927916407638932996401893382815131906203316177165938705243082061202129088409201789729732625297544241179375529912747704222255494079089593068753265538058953874474519556053453037565718139018552123764774579052361028709895422482780163118700802150221295889364964723215329622225527672056778755970559939928414867116447735834140553563769752866458859806262243522544877240211384227079220838425595384774799806792642209235375714054247196481402371862430381092746487286494428497585688612865250053775989797152818626558941745497788765521966192113561431450546823463966676143140304960444506630495544765691596937587156755427940486091277509004990415400386820088635881984830024730053069492249537186742597717159058622017343580889641536434419660596591140572159345941560126091277297764528944650459602976422948702776232937717812936640213956473743618127662561337621318945782315720461365585697637013947225326150410119868725870024413118559371018896583968039757776815071011667439822533018548773950171138977760016443523920195261026555292850096039327844546712095834483746467505220892741498237113118291521359015322225861166637174556313506562790192684385029191640031060059791396500095330321740178638680215797791414749891961680503559451072670518771430922217369793140459153212859244057520838487281864697437650448051834885361739583335586092142075239089311868522357268902284605541989183561481561546780283152214504146501093008429146864715766961760894030383641440744422810692200595718467773749542399789310006366037681092628806469404373008540454183317422837003781092656725409519319521329872456124262082775819439168757937571499596002420923340190795310086322736634043698827769053024427061859954796895830229017522282778064971591144746418942692674220421796996969471276051257926058332838741766098394629185934624788261521621661893631842559369497464577886942645444194365936419479570979923776055862467310226417174635507487556584085327961761020677504724947747492508952895011387707704364878530818525649468347005338651087473120114343658582720169039483189626619034585165465668597077901136069990459074759681002359585219103857696102242540209267182654428078016312059169431147313409683193742923668518329763358646414082660440856394366385075458287566026117436346284850661087775856016211936235514405771174715228640537386069061253519355225986352096865487964793496433088956037232987064028836016811866477834192611228063855113741356537640054333120172355922558938449289970138720241405367775185279369185235753194162268797229701604495893419267984352112669004443604126781570079113485851563437025697800400253314714977106289419060245576263120221362006876726740269144209498371449810229789336297378202931154183568658075075172131520437566170288470690770682871902141829892685025311736336765232558900911776187001801034222455221544977589942709505717828041073697914178775387302773594392452575568855364395689802741572172181703942798753329022261992443295995028202618461890542706930119648805907811886411281513021845123873816806975859542328421747332351234768770587162401347199229441004564776290906730819373652483192303240034080410329188261187867372422804413870731453056347468866257913793782551406578552618495907827340148557057424855238696245042950783672562440782100558941205830066924921346480559172480326074566880262597149383987231962761225458845365097573611200569687006366779426483696162393091738870303406990252301244618755888183536677532154066356082134402072867934882623964472871902123861909628112830410916823075936549873341819366428130004751627377196196081388387496418489096613725215633949863593233330703421212515656992796245792196324826407501765898144101215508985851627621566129390148214987599684836193673106605325152088479008032892796952265275494063800434166156797650757948337736760890085925381220706527192082722456454439941045785249820155698792848109501408249995660868941886937787099675362260387933461704875631200733767505240120937766470940881294246343216580620374263173962023389419560289938469086237411279796939362950204374228845638376015422159241847493592066222606874966211849586581531304656134430960236269343920713589236898260293328304668748397224485376199459945862872992283129230006357480406638316303708627614657799290895168422906236669611263252924195346634537621848201840627730627535559536851894918196834066326381565366532803733141388964625922212716876980044921707049695810274128290619911930086556572833789356506838987226416519103740024645262680306470435113964456731305298960843702283926590572315124519006325633894217532132361879510902380034013104591516613669740562299787323331233896182676618732820605811198429886064804111793359074723374240166843150242738000710031071127397573146689039681443096631967283798951492741461410131103688404888521305040160043803776919147154881766112781521264109887984357679614632455464827286647689833169501739190162706445350056397310726371547328183055590886125534433101261409565685624165248257548176535160544346313897576057908855030163390666359495715537304780475697440609195562101392504333987700201205673750398731177856283700568987914434676898860869803162111699407648056018048329603616738467061457919593431326289270242246336958451027940376567973046824607244045279127733034624202611836596458060777721260381343102036965062183995252434345599362630084889917120671401400168222955464628094404225366209423709510274212177077105091552190609923929126286851322443792726909449757664128333293460369498463220473203972925499182076480488995065538410509690908960211291360901584584161640780149343561111418093812042729981436544944208036876689276531085207399991635036692331655034777867677681723362781413045173787954361303073604150920096515323962013708940867970252789258641411992341080653375943998244494551614255793407487248018460288011539574472167445399439214420155977862202130763085846312300642394123252829052620557674867246874205477600719678565567079549826167257823979308728629491049703104034733374738495208787944846897908423154690746189200354594740935116477742501180701750408038073650018144330405039816113313166471813114908334361523773239467983671631483263378037049418033868684202177070074220631724294793551313048534986861538944838675734461236399705390248668556592939742202782230617066985694516517156808390014073793156079555582492997811571361891354016298272454061727446823244292721063640725602062795288178530946003552828803696991899495327421062228108699770900403039547011776471911155207299537158041687161779349498012257582537455944468725936133443665716465049148470898300877525403020431046270619913669221631943925203378473044811364892957881155944330006017912654645577825799325637573149843419185003420071002680961129608955198528980522866951880480573764112272287095008779500481123322151021768803329746668981292591551059544525943448524417893445676205149659466853825933108878065073645717373197644143746941541081483477886631432059073847921452743682990842258501973423679330271553411070290351858150400898815265045388875035243610458545559494545415112840328452232508973484552130278120817820952828982966780057839752789021248988807326267702895896159983056262203404440682630113745431971930841082731612679389166214150625148326375951663065376385662592305048196328722669217208746458719689776222444707523064938649499344603774849153140144401788019944079690507945449984376343317740958003511751610463569292974283731145697435179636441437429994786669621620827644806418140637834485795049088846331771480094177560863170752615444374779589691236799551458367910057309615267081994452254623133151049974404159868699230879871864360288189411367343776731021739358485877510824211579903823663848116260373950593574856581639254563066139448287916646598683586534294749215339070488421039240082562433195946109208885715682244995538014697803286214061675809371107950594335583223557062933258143177274385161563605253357050506781184070374649461123228924264115507079079711918198711643126319299674259241968709672707136380742605763331563893312991503818883822852282804164289171592483893156981745791240671971335899187619116856013168524169324695587341179077522788531986994968753300961972845908462483821768727261339921129580640237029976124146856045004054407495222315797409170615775566990600887298447140730569639307311497558636919998689864976057920620670752617085678707777362029110606320054438005541944455852883995488002798341562408619704551064795354869528336196178559964487588373055683029703840961954529108068037205803834318745035416759490255615926670147979898164981160209826204241374668079150840646642674806074731279958824063325549365058489498888111448709936605938162148310525472137954082129887137932118351733065814790946200649902256816245755904393967606900305775618518361205492311516812180787252371697897162400832923708001999968613008047248235534425185533703160482903286090826582635947383866194681929344636611711850415547326649091641619596492907045346148848357340932663085719761190890338475707686281596379303846507729438869797941344596704530039082764646931838454792529185452342955176976449915741620945627001966358510154700634616066642418918315549810885515783516290434851668667238635062422014154607017280368856500453667053712494638545408658906535410584039650064413692213415992548674263584790675325593198150581579326190520480918464428974044034231910377295693443491041896851056106113797897937759694989940194786577496833793294044131963893482430255163589069893884681192442997807959339113937246057253483349300347983707530449935474470617981990148171489005391517978526434645153644954210137207255597072026037889665357330667362198365154055559032605149336705742507253825799327190295834680989279641013958330699870298088362294274738513645457457557744923123252354599574638033212870117188196663903189607367328887841914816623323264956581527784353570519739812705604498405778886065579061832585478820911479923692569460794435273731708076038768762367874507200024297726862734687534696191901528286649612299169643996768221114874442402259475197472280706877181600582995254353602076926826980088240632651058164475879196198259154687064652468815378338165649303873232189104221392108053907530206619468495156001120582518717968124906373338171436188956856272269012491076802616136454565104670127683975555868305556682329827344677379716054115954043453926147255474331074249864878262246303303775864215411358704893482225455834592305913343677311539826740885824155087921889446750622946026152068070077939047381236871057858360843367277382603030809205066290256235709501972084545416554828115064589601008005424853325181922646399351493039875064236434968913753132076478064658482918038949934536048771688204040911159129468725696866782054300039741422780277485117556092277113566783108295100332880415171807739595926720446289124272367432554418297331989843831340558058684306583396812826207106296826120634924367113988936243262415341889597160503981108573136040918984050437949544256244435331195120296475498580300136850480385617253421055706156356897327506981066512580221739025695491769869144291709682777378211354014785232483609748606657959488386256235754447346143672181151671038573823011227452257333356555272712892931069092909389388492696499853852455618024074018948724267874146429178147365549111378389435808571944427227891867423220729542711418839278349552098206439041004406965491839334463715897161728867428215413314798387217053458698266863978747085778458777191777107372945087903664622999503189973143923674707832326210412509215635914813044514435336612576525188911054926494457662940127029198174147123949979869726992957491427703991031556408849213453107553802372399659833175104782106206677328008130298288565590821404893075782250369017551667652566113287071402278091626152205181943047074766394349989611020686276522048836881730523341897861767154232603519615755261353214012904240794223945615706760722531566574037057855307742195755002360873425296537995193871788965308318398800667993275645258011425032098427616589240329617204001888399419310001840119670669043232362446323347693475748624329621271775591844593923042787595904594883039312145475175313674731861724981707594718738021616029156335211296698709308516987570455667544715533320677826676319135255009154307088743251519438877699496126013354719883187648226719331126292969360015696947133619346374647813009393755406558366048468843997778013969386614808650772693905649779205359558925797542796930459799834712336271059565111704947801792757117985282676952557557400292369510858081655131276306663341884420993215215824080897903571684274144668555505158839973525233344685066800400075676848469340750417712234926856294233638913272109249414517539822286878001167406163081114207645009032470435461697102993249935625036473478195455465937011559112337305277965082610093979552286918965881395704808777242082083419413097807695042829702077132405585760838224936283499126407004811284285908614483616807229340283255087034418900381684715049527945421599960731862172766155702297615263695467277604219098127629143435514568193425138035205416225276927929332883828769397666618457340695981252336336589353112910375178378182583240751086901758476611059818551277446863248621803456208417197579875855162866056436760920980920071869275986641597883151212722577439961470797300819544431017087937727407962618791727953784071724640610477765576330086183895326264806736762665484738677405185007670794110708176632704078825396709660939275031748355713311524828109634931047803848437292433284263430752397124380215933106832105663930126710810012773805135250262590776802007417639360360980592397077726592586321180908736037823663030218166297268217825169715030264581929212722085144229538545092392828449725743536433187906282691675294566996064373809116544849678995935674648925072158539524773816168915210787347722965304465081490574294432367950794611017723120043723541614287918401831218736194273401225697510287234932849334538964370080466450053347943489786928521114709444987036549648386744997008472540486792689150991397465812036312020176654927094108322356287671075088564369093122984993566415059304243416606919268661132427790335904919441092657750974042221844210245468576285574147557096272052804898579204133742899797106172873042560650403032468080902531808212169386702227044676038099071816740829810647029170135859150110403460723123124455927203808015980954980257147965420667207884562851190067840970806320846602097575728313954116174043622806225998476580217185237287196042251939960466996249525331355766135579525534719382218399831361980360570888191933018591002985926420599246272570637806588690958270547656609610598721786629083845185704092701683693804011114535924713984995244390879123678312581828295533918906337698222830536189764658201324228790767772948235985003755388524941659686640795907127204696034803215206040575618003203916481085573298382887220148514801163687680632975642430528927619708094810708947435222701052597469250312240203128177620357399824319308942553929070459924427165397168670024410198855406351324699369822879607294557853300357996084053189654682539309677651785090056558358517114424948335228709009753948073974071689914098431730726761171260768186336208288822141454921951159163646637181877664236659645799846353987160584632864751796937571042296047163656275010455827455197286055821835585510847087620359165093345597370553381487292069425087841122392805485058670338476092560382194487219270972240760208212657543013742188450986195273372370843456750599317670071407992746671104084917296310908081195585800982909025894053570047186985235490021025264152234847303550205893087814230849963589615467513644880788651209828637036214229615029474337206826034000139315302617953485607878992245090236842935363640416185428137868596073583696868437232394283538593926129251325545009810475564999309403639492390672445959018875321909070529492817922621484067643237819628214475887230500497349101486854436742429495490543180824323422413319137032362837376010510301662650786505337578592173477007776975557291770603857919533889313732654332487061168373194661851959589651653387930613883685547657102627270365157575109309563125907535019203242151446144873371133418168040332412985193876560079491926754379360069890350857402804018286580068476980970392288767245780906642913566581494043007443681016311985915612312438779593010207133699049418223266888596584630577196805681551880464686311179099497090013784491643013847210993502097832696035197599423107542577316021107417617404127176880910941152494530421704757449323240080657236713560145621386320517458785108543597228572915756306102108871151319967696101918611609151393494766199708902690844086053265881678831402456337539019320364316695915851622490464440007443319684404480524195881914188907687169203592481879862936185324907629325738159724474889046611915916458138381298352384157478324566869451319614211520358831938846339292305455655103837956516979283483615444471362891167569853786361397248832134368675192979935274808206961576701686784968568979870743960247679901716027126322575571714264574297422048546796149851796539908087312868002801874475678905947558792463908079832221431907656258911163850681421562610497217219881223528809329985166374660975046386232282670127055953831013595738884035087608940906720138981686912915999043115525882095115688623461182171992332887487242134813124450641883291461332160183610019057560554148537107759302271498480046822278272031433958324650005344278149810162322058144554534501806366725676336167906757433835920984665116973012506156821698801846065951413853268293049952542637273429164381550298200127667686815874148000060521449037529643013614015848956178817609392763430549632250957236891397700583866311427006148839272604485636045806023034109576831819279065569347989045384499609548734779369114764861672803396605204600296486655270386295804894738883084652121799760967224206652193082869566751450096364763218346004714197933451111985140220275235603354814398456955500123850957132909726852810304950581657762619920847495178534083800502586287809521069028092687211673678229457044430927254585132192626613827049322862041810848788057977495047382824940101499551169187247253511761370852029542605005515623630342299793834193730970613420072546427692936672877924131780733201571692479983968519855762281430298004557882507266761863510278220429232083905961724188633501024049260130718900922891008616441298075799739005727195189748348726820923709533111231793630619691247323757201820386666714054867098539990278729101600299612954517338668903589338825079931787333684818327984527609502514299597217556778612895804993139024976173744173507016148714070289714996234018028543882892587813535432357123108691958636158315436641695218164276673339095538174219385499203288063072475996850019340083650340115164922748000464224529831868866840910173687247310889629375415895109684679676374621014896764764164441408487234228148606902932434905615328400660038624537681423674782085286190885824219171332486839225809842941419784752467036142292039083467449146830545464299058450462285536379231180528806048318063351293613216148532243913293175967064711902719845187221298459168120375829937655682067761568916223402363810812695800503556628606910757308828097032819698361287166354476100020086033838361252554758106755767724494808454679370070644795469051603477195638528045868773855534898944086848969942923822343081381236136370104335541951088310285251150194300564320093267813567954073119460503529639253638134749502285617850520965707260354000967202735187607645264961702060534255890114144219969091349194259112010408121295768126721354375395796208425971701977221247930555101181985586288083882423404176057476183118846201428196609660941344295369701312939330692237587250484272583436382891595506585140453838739465405036873580998978188399447528315506756252068055479508732608952488283019964896064770140818162363176623282413367866535165848186678706762402640416613931797539893952061648328612641849240879427027802143021048296936759468267892631878587594195996140808062444818898934342062429480874270249416749880138105872750535220738182537739170200232913316892305168705259487962648874355820027048638068877834434199251255200111251251669901200838845243839665878132947228029578757983230132733181603489738109496278239230198624655730693654045907553866424813806914747715075776601340942711081195522887340464070106555903966919158420716929579561296370475647950622472691374739866392413172649514016147047499545934139440149098141551973035188756884488156618145509826311384561216833028050592982640232885289559228959883003068018557862330461832689970427061432046232093860291930004570636040371671509552419428814006019302182545602261389828301400999741813748832482878625711247409965272550693717978985507534692702831178551436712805976564890774853534031082973633593296694439163758549660775016212560613585726282752810790393486426682129818590293949040933599706806025315465944051178920901154087484002882220199408043480277466307917775600233167958516221341839090289389916691744369297925152928584619267350456174637404514734836761697696750270451093050001200293906605528142089014217695260586635997108997469685794656040462165037159312371096916132508725778750953249367611694685356159414874918578714339785405081508677505876194180704571898678031918402261137902911582559571617164760249154173468510503244066579735729192521983996588169053391370340459553776847127852804796497833515758851193890163310965382942365880051772566341420159337575131134147139126091685720640720358734913898878980057895044708107590752259918032819023209192739704839764847725210389140134761403234647879464099029467765312039656648001900916438035801545651766582164153234641785505176721578958199833003851958334042447732910821443586869801639870580039432434033082645292548105444067397512555657806350958762605992271916669016902503827750586714137559519399917495656416412839623510214074342916810593142559914520289131468974607631275071690611258545950526288959819974434342967476435817817827685793276031133311667341356801224481764472602542327839287193980672402701128418929483541784844424736008971582332646010645561504496122893761270550319240876228439443406915833912790572184637962549398409573240903453596496785308357975298616033466326506763314650505520194293032345267436568177192716094832864955986370277887722803433599036522197109962335291084984730955549478907155573611930994627070896683248481690342939916539224858394666971847157193174625730545745308479840516895875565200599030114174306965649296629706899755644173367218092592907867848475428656862586818928176832296650708023148314061916082220972748278281029626386018257754498421491529638769242265742573529465104713195908841779714127760042395451299796503683849475831429650514203867533229547122757890297499172872566375758558274852789739267780393819155588266248269720852925960194116576611705803888430497130470514147096948481884737550314351626398469964183419969683259468851360444496657376310969318200793863264006156723247949306974262843801094871687015273026701113443116248999516334231388409483284368337339492557534703297921755543695903030923438158654321836661066720435011428804571921366812964906826879423117692460519991871841615933188760059785956872200591578734695876040590019929911080396572571714286696287747675070442717333112723745400656364669141788801791224264802275356746018823397047290956474012048036459395838853777557292908026954775784854231882901835510330328665863056759837542604777570845504828317042793418257083669414483193929505629936933107979455021477328229870303172252614750484996507002380899381202156089119623067128850889382873016360349464658761424042613682019818581851291036043854704791505044567638101813963919200981240628104305035283396595328989817981325547524732050073470538625026783365333123999400213246274060087219159858767732243956676871784677942457975019501183125634872186937029673378910247890484043050410112194398893710362405073139046380305487393130855400332998880527106558199761450633642034368196642683531935989397336932497101249880272647898544636382747412747798419805687116939221938677887345335641868545572840452799126212012068746031856463307467374552920002046842534635119515977099720750411004234022486758769247892217302922754536287524101288877545396793414318857226964368892029097892571040919605497971593901333309968997968811218189499918348790898745914030887466609115833890890078689349726028611452700661411856691350297382573485383477039641413885775007793003554639271054637458782352819787146680495169305607660010179576733963482881138221872579390942217431843840863765266446644673100809014836200236741303776653283596472270940111620261505995549376177485405614930196182814689444106206767574804636262505681993658350924002321624070876553198956806003340305530499378410114362598363019987653181396994489832781606509841463294277992319147423082869155826253912836542893581350789766177390326831142012168930100975761327245272458050681490311738621287226541235479744588089025502852463926793921956071938116883310511222144568991568865304109996671343365412381920487156782712851681583109075592272383546291320623878021154298409610226803056609764412878618341558521693342026434691414849688562611063965110428153001935790472792648240405052727037514382995382813485933768701927920641787160932567888955646780552500162050362134672041241294546123183338636147097787436450827985783276515817580031266443510110090925208802679712922168264000211974950452840291622082947310405898237091550197840877981810453950996850787433778823402439036200676806505565545746298294334472364250865209542713792388118620064161728276600228338168138629471041714110434248120110634633390472989511546023918940295086867841283869345117724712626910786929498904922752385300809952783345773304318454567605447270717535613839120866369107309079427395111550404356908195935507130651069255335818662482121164889863728808837214519020937628806968783348482620475582860264923320247334708829778792296398027967312106817166506631709973648274034036141729088494821042292857719001199332306694227830687155391480133868647392116442381627952762269897035162267827831977724788308623418361757020577933880837557254123785752531597861353578599762079593593367027439685488266233917958675635974899045980940258732159512376956894056711584379737396278020499372200075156397886859692823849757237719338819050591842624127737410968769833150721584626669866868386405919247897504895015438829533191109909436860280336397243868776578969440496630098163016456433592177193926552144733208070194324351643377062310134249539031135072602945019121181256369901900623090109185424623169773828854574766111104866377897829759580417214218840062978058285281759805526734810404513416321800206057187690985447454043248701224630113070534524298777867411806939593521241907467577841335292120754702055570573643611298923448371562940819687799693426624109938681890903982530834829239167303673348351109694103856262342197592448393708985011447161963173254417880664290485861262279579589166756112800082077639580345071588944145047849021959046431528749391166962689379629608587879900084903145570844336663355271405760727460160103910312173101407412642210221014769514693530023463439991360456915751607828975657327237942458286676032864000061896223538293009198094909010327299125985397162501851705013755289620476668808098614416280121704777337036327476531089826819100096238018418456457184732098239884193929920882730198233778726530002474740166111561841339410705554952948195828080677552077718864287993341730144135490944620646981704938716352718609040356640265962238039434226325367901323674178591889421751815209382412221816787975536083694740283622710577771569171642910313129820592182313217358380607571791494062901643730439329278525937869827033155045498172364163640221362163135164803874875444894490004320039960243478069212373392947200426500944579684712942491292332194563480949750546227633787481605622869599614377695421096619013557179136361779981392933353633203195027141349941984659612893198165040247308610223991285828737929366936874911423424887223678398149344488228892416416817965472122338559533855679116713539271253262294983036540197732152104283518714471064240104473290411892323728821264049474445616270630539264190661749927143805223388109347823369434974471264551072270746850712880014431036894654467768912641033385825523537307564486346848458348744195362338872324515990288103379762526179224382338699550731964937922018684964806702132843568848189115451850192799153581455095782350468009807486638904340612957231618140474290943872858320742855909281612125602115778359838081506618494407253729136118533728085203128637629243153023325098441884253683028645638120555160002196147753920028158024506696875911142784805490521116854665103672423295157346137180529888498563133878032912622810154802486260608745785485699647312263445076141060020236724711932323804527866578269193342378731205172353755922057410172010690069979489818549909891078124301320238455758005489363020093772689584321441493919131384905341873801870384105800248517222729739442692019085321096403551968117022639030008912478078018626534152774046415314149339249363940715240669576177936442396560418463861270988135831703495554603154733083750299900018447860785526974160374506128504274678310318219115105212104226177988129602732919388542072988465723763326274155860297058197229800710909675819483400941397919074211926183402325340850148774750359731186502591343558038559249485794681461206304380931164874982277316059839557074963099121406204362896294149823154825076940644932103017918724258419559892253729410278278243192703402545529515111505831229429301816026540193006395004269810457348826721461241726190442727042973591907045322746761225468125067792425675033780992277147772619957950293577109165950407637345570771094811967351633318375942016629801192267856700222261825179704999368393037340909616510040402791337313325384657518173420564105357684891001864181886985362313477001245243181630293783747358954232655762322981286028876599177163094162055619390418285104168466780914658160577623695709654042470282913633424369609349481588518384590361896535538750650175466018469967349998635428722728676618613696968756741524313881580365399164236144154592871295642875732843000985169537953149418284050791005010108712939708620227149580615500140245472643810274232859788569133450363460531234961102810666795088583315713760912919018030253598968608326422754342668924114235316603270715043826905509615792374459679664893758388434615940525415752688594764312978211951240306728523600365581728912677135959622529773814468785867160051959633011186730040697523249814737803803301512463418399294217028787274273456782402330280285560300194911953427576574664033952562258152736052091024895781139003962715698900215090966572160241204439883878897035692089345313868616289767090915489105009957760214705967164135738603223504796843705725443483868066137786748726336619591534059266283642914186667915572890855139923393878804131370375434557186406601804386202757057910325447494266821279184244352634688482068563766966665009418923522268735365132007603357939127018556696410390471727165155959084218493543042709657905526548682513823641788645456382560380932071730785832392106167393399385898525661021221136627865936606935083892260630868531866441735661318981794192917314239963327783832445958599752367851524698588894503788197829047703517620535656799318096377580444851479439497370184382930477185840204039104338971856566102873345022513326502322342381773835006168611953598594560162691285876331954508613882107978420134664829360171408534690333977734653124335101326056900187585639092223954058161600838455716457872302614007865546876447526368306853848249141670278607239945732010453000724020502227728990385106692275699370788386455600923218640537113880021331643447954898278950167595471590163488987850984877823242077961936202637432829534573698916027696799674229074182275132408878180165028768636874689759564956647330216564650803438369539654742079429664908703473865768921083167794171489162398627126116903783143081167700257846782448582515425553119347473310761427697535172355302013931955824289156701825160263478872469326417395352989310805955030785687246726428832114039617319581649310210936979132112332107184200520882317902728111717665832002870884644919118371008557829652443893306591283648071134176335380507323814094027152995230679084776322528103813287768602813726049209204587675256089166022129744202502996685162203440876737179592052533015562818165816276238482206608689517232970276759199815035649348921279444539237392474882627806959863676713107208293144317392242935814346274309656918550932756902549035651080607088823818542738189179061591985644651229149516145435124728320141169782302582325627790540098446362936440114387762546049854997205755295075758027532421066937175498760479666244275247394316618021946550226606844453293143015223825643440802214658835260760260239550738373507046522406414723276935923746758153113237938456137647021514299723851958043278383390988317840413294689877507099656755584382156414020843011882721235547981572354813886445179647699208348117535943848111991087989090018037083682292830457580338709109892167728621076625376523836791142922925608484632102446600679283015199296186277685109694490494282013979286952363871494326740719699648915526951384556260622266130827936657643870830778638862952807664926386273331369496501803422714407077458288774212889367186374201513095001567194157772330725414944885725274071504701853090189148193571360390295486412681990452030085245553914721043288946332374532811688511961347647418673389679382797302306584294123819534956947154890070968676949795713113397511245921506107545923196789987746218547103845682603694603330984218054752480093180601633821503187579964300906923914907214876889475977236552737394605268638160732324634280596639413580696316265165160060125804177382347173463654847170381127707081013886276792643286489003162186374900171102656710677053932905091815326120137437063490767245406379954381543976979166209100190043462515604773477349132825482967259468918981348786235352179923415230495605567109472341636488805661876266923319919162208037728249620774993232085051413845534114762867491575706543950291480454716153936221405767042265667061149744997911649036013138561170616744433443384056048280491223834753252610976898858358136388196186132667500461990179708941563402186716249064217833496341678016637081958358522303628673318276114249989484713799706898795827675380692183647084296875996729079895330333020778229614865595711968442543878084873282036878967128019342952256183001104156896212425087945492979071714226421811193704090287802068561241474571931917313929290270090285889107441762088882852446596243135638159934590853268076790437869817317989358713589187439292227485550746865077281683751936431559040136531298951464233638173328417836968494007087780461359340228061385294246908209227859628704072839382704164221465034233720006412476903585091626230953604671559386524755028494762728617356222255564873410982691495928153783507049462595875957984406341138313384538221735679521112132955829935150049617917723934290920583821594889400871593273974144863867264216988747929646763216476354325725674968175934058838526202479582145753337609233836363372613038662700498464145921506583642026259307984341381798049034687611115641982776666473297865131994286337316049777635474826673210577813530433439351757438749988996138242251081166008826795696647193400015736104311757600230761657036715883227873669654350723746646485703927058744230382210998668679918139808284817104460601290356652626402465639368203596674243425525132546096626056457746932574770589032385025552866888474277963578583034594416903628326003885119549056622526782573503964696757766073147341386790960197413832406049745548368861150087130713025090800953151543512026626260871074757664756648405670245752304998990531519577274590324512658817360632036506606222752757305560916085795052705650800552989627482806499354368171725085237849980474414325327467390031590333708518345670578250958693500391815588751288037977121728026959335469959063992844960639528469698594390707674409456708415162844898438983741866162782504916974646768339146866775174398811603227611033023519273275642358940002180182053728766903544656798023003552062749041660119188825301113885769721515419536212571841860529683277571845543948361651659881864541543947830230999557270643427126998718472325527748636443685537552419895915451323133985103907348759882990056741805725259823923341091150230509190802094548590639146161730773831698211754864271866569320280796731167031072676096465170469690013149311418849016039853079026307033433894346787482647867590882629179653299808072422842008298354051095860512614874169790188128407561787448631904392381565741280018887036595501158142793179046459452133324671572288626725608486609168870585126550185148873729723380764091526310107701646715334897579615666247824276582038191364179046507185589218996570609604533620455541806494170970818093868815259856834058362974126595120666553820841643393203633894376792916696552915791798820403061743571460478307517580376361437249245454594606479306046957314413898825263802132951280630321200761392253028925662206027525331647133765612528351820200896258015879010393084120089904153884292656420297327743266528124854408713680262066475875550157538789845573535048227554100848027488001909040289350866086588228194344804828766758610031363755333879934485324761927111912931011254080949425120646873044904731499021497069723372723896251567016286876179978488770639395075888931067311303790458720047731644433681006825711242441009080478544681998546665292967167486188477366321833260061630194208283071026822925939643204031382566026185910530492347363429658575398459705615184133450233222118752738417129139762229141686582824839518127792432931113029373064763835397661769708495077392474330842002911366575830552430771163901805324937360620414995361059399771643028088221368442336879688268003930588887665627023694102146930480130552076446607163228080787992020686555724794582063049885681106410750278726029946730613424782619649578937484336246671238115020694277303110883184086040625142412165079980450493990555911276390515674293931124267971697453129623795199448512824365404763746387175868751272215796916256626649299363052362359825626849430837514366322975553007964030783548341384630237354977757894062949305779162717928672726282024411755022944470308370076015545686926208161745172919422712465729141782703352362139140966105070641755190817310692167079740445109921360325187505896402885255754433438382440328938968081427671665929428965562897131869237930959414803132363794308431451049412057573353039836479392501415839562613383684662505035933972505646377945356267127223835067900877689671265785319657887706947368792179885633894069736145901146845131505472781811655392174455613905300135184873264488851008293515781398665214577475085176167496753448812997410588645455518946669373051275863696385257296428484331557079691006704004872313145385235983497333012076348286778258175121556984962526975663524200456610253138797830436298629020986684269324466808887007454951747845483467198274762040891500892740058900432781641652253295580253343840989278105186848051374655364861164644441580825244188110469787075559992122669358723165486014180282680571012769367284436953507838697052394114608626789847319810536182595058431438980837811152027205346449726635517854554376630867179088362659745670897522642369917749452399958335221461223234260614728947354779714953226546844669846237842043232901811816548116377765000365780013970002844899903408530179022701719302039961053087165146200779712079335957424250770600225226211431500350633607525458977561231256948950502425989055689276924199630203671175519472286734562812920890613443429772339660008887954464990431192869585554031527280806097385441837065590585623406888523440368161352484033390021558928549711399397009576127411437685486883153530509747280562767411354154865114233950352976860203646795491126949312775119765030555921195410202603543942756463294489301202609420535714386877687278281184827654424388982136984087731102821945350006882109114907918543764623268472152539291392370289646651535371198678433416563604055962881792912558838750654961701780000680999674439767288174207475886309071222524632134353240223887738868113409081941809273611273462879574606075285511056120338907654548035091354153668108042517858283020783176682897228390019259314460869544562005714066602129798896696806062172542448310894901167725358579774648063908118257672263505984097762048123362334285590815582928126452860025570867683161039803594638345535507526587820429921701123478469442757641104334389262009612246875453523193979012169656455224732221176760968243759505826361575412336816933209489919308210039128460176206107488369938749891247026204628252419126419490373133789167116853411759463640575224970721742661539050038489404273663751583302488154712431548695212406446203095546366989683751190779730788580091440628356838354924559767215830964516931582130410669808735680159564887548550178199240768841010674966803006169381131358263941247137103438728159600912725974579595951805462426455903745008766097289988260570533684668897526290850655314018323803602804151181761724296288211272358966977226615147263942614102293744190994548618486633579883469007744996083105315318690278229818556619928004459887706070116365809153410752202894304194141050705864275572228756039025878059071122925255139146219091524041048978231932339019491023603934894429417987318699380529353412612432315596033396533537114423387517570366605180370032428106271102590431359321038456054843122083769655217102458870960894436091869665693451313341249676919010130800272866414565753952354717655974841025727438513741788447809292901980034013635502971257995702825077648497535190201280526720341544551827263761862377873249694589227964552322424257539036313876954417465038898395340964365877644204756459442926052396858754773656731328047108432638380463119661845510232979926411152490382893096657207155262715759729028502340552934468514713593489992922942478632708408392746419727078823992683889313944500300032592074383192435842216252691267693006041921256303486315105910849987863799827976321405886019171703583790226992150812996748448739455121169458312280109760727666748051862123654519915096499488189835466830839812424395731570091582637138097836768707331635470419193641440291564165796812169893878252802619608595361450392590573697752356110947717171339087960354946392818733888364278113904849249213853487540558553209301028897232895747481611230383690569377598540569872472619718993039092544594854766349479731587481850816755640729308636019380471687424894031370943714960231587399739297555002122886996882995060628426698813245283636974101915334610978452243560723705546979507387240578069686702931841013702158929897840487024144209414025238753345000856091148693440883189480252820913599525233370062333213957759125139470882143772934801306158780357272677333893667953266836405869887626677056682785348134127211276007800898785560507260524103472997126878650057047752166864863659247085985116163888105235418393763505570916959623717528001655942819735971637779333132197108967289665884172009407697141130422523126809163616399615506618076850947347105237588586089057940889839871757995221206360107218043704732811616306044348448779854042924634484957190933359992163274705019460968402079506189285922839926853679864060035806903158831244660518119972814091804674212111866583155981746094190452117809109840438472740258989389041862027111814423317127015823847965503762145376759053766452231095486682815230461946876652078727531257733884262042075980463568248519385330351403811371570916436109238269082853325570511829535393928717064913687124264457658100600273041281524147166008269155789362392984044635019405030035841676861250691895371423846710696334042429363297815684990622557164717186552032026665868743912156259120262249908398896087112902636529784801223137812830877341935866796526315364869780478965519991160203000787961809812715154275253633264587647724476737292675988967688842133568575218675494487893469447578182312894117173143083115249880700993594343931776666230071152312645413180335770728493709283028746391801649732712021645279283064626220211214002604168995286068056123040030391729761369866831610676572960610764613975888426992798835877457475593140107150128390758713013822866738648243920331540576278849295942455321705228885998054866208894351064465136390715732378188215671366019137507688652393370842998689092449410164722586602696105140881044958580492761350782042829760865302716074694117918449791057016822975320707305253022764576659988970398172882185223891060685932031152597485213960453106251910648940021451841333385366154824957943378532298377490322650924480930841569977053965254071231582865663512289569186531353115585170391602263356270007896695437818852985917799580047983273339010456123059704218848921148014085222641508156783440711921721262625126616982239992190874436618987837622778945220226638648926244505409541417050130496827273889587971301162508843991631403243780368667732789848372344209422784437907720669535093578223859092941992363707308703378431626040563645796654284517179707789594194206458413579387519436888677432269105998514393358890948581986949590252135760403852389623402590150638284284716830326313414544377188168387875697860525156840012638701661554387124621969275071286271069150896023736305832008044910396924993228720517458979108637810449321628074885519845364896719005105171844404517918421902724763107056686742022080415588187438612821644831898457943461213049921914451958282839460064675090819288196152817212674481321457274096108755348477307457505460007085844251490251226328691217810412294912421378856282489022683958820405634865665279608112867110601203670335795094370993387131268715204343412919635121496093208979327069532987162711602826240702398767569512476157264855125070666695167004308066901125905335354228411407373341075678097902306523500024559451228838305702891580951969076645430446076612023842339831477382045635804700271231059331181608921989684218139643916187945124403838420384126322890662277323345573930254950413272820023561003891076713275900801988214454199903237807063444891639367443096181137543148120203101610458091080852667256271189966180023122501796278832694197371514386786386148036510030073959749284901904307502430041455099663883999879474377174181654705871908507907948383485163095366319231636725387251597883942396193015854286695117071458423545509995180322094247931816616193495187239404669157824085641261786493467151668022913345285619261199084327338927647718966953862470460837196429913710500141440806909781353790471276065522463194199407966003532890461257878145198577281523009027161393060514612356521011064263044713263700270899381127394464984847412058831719496397641216674869831275748204375908350826176464513738863836166727766212185725110438678736725068812246781847194332430829366546143130967756373320414140735777296555862983315345858052262208621219501142142979669383807211390249332036253583019603524022757997749516801696802079718268165167077947766782020406997649127386060798347476709180544870475557598072747489591099584215617726985126108758756334019480781668438891902584570163661408028798248545005651683508247226119338337371299945108950852038480762115110173679591311763640983389989426008591914320971307231016226797919866807214670567007389770734237127682318019867609565339938472002005827637083269071310865964612547607547697761673739320632159668113677307054355554055978998800996213834087731651278955918105167307088680109375308035369212275701521224417574422129899238998604038630908687186608414795049789316953194005319424254004960777709873765464110057881921923437200006201989883590515331342191361544692405484600944139691172138913745348975917667275977078556935041398329576573145285452197222200786540224498585044982140603052699935561121536618537664976571782760982913245935692749104984411745869961513539150388801650290335667747461913422051017346704333145193461035145293012714199631362628376740544489184955904123575766278842093755530505175546099545181470108592455226929425755295154757006770100911955239563038382871490642389211116532911001300274631729352263783357968703857553082586764126550730867068728031715126557700106308612271709852043022631650048891454044362870981636590068480455939813343279602830769784956101641198116954981091130717495823002627273708164566276434140875192428039818629653156021612262070951246953878244426739045502651074703590664907827868126090300025606224571980882835593492952510598113873793743573328282744205420709252692759956354375635211034903441940345714828543474838736845694274599618117585499831314836370354820054252337200429397630675512814688184598297105585219261808697904563162126223636047159925542359737387611335977023802205457690328755992560131600088127558227081202721609429946050716230105481138650544366144618017238075306278667783507568081947395905610500204772144933080068727485497216750712186067231763762356046082473074487896182712825767197174643422636308069999205118855453077612905162504150100555099913535907131839145972956453758490662898755051735401789432968386832176145280852490739157047844677047459219922755673750120159585231046733394636894493679856992524034088250986735055090804820173979191651491485709359648613623882113554610542759861330511150267414493094279471364012269099574394450347027215563349070429116795301532136026678645727355229601151671644942490229430659670821654146555834729646201467480724401899791679137962735804775432285086730408813057786204364250103802927456036701127288730999444979950793363856232924550412763212134766185684264561241019082209628855324176096647932262975582671848862060180784772207647673045943443843511518540210076852604920914762994938051290048174196837440682240723854937174602560524215989829002445092299639214952039831620360318974149732681756758191483339133670960202999843663877280056550899431916278206148722031307087111653789782784238299368977238308421265197479920943918691214945509738821173921775911044992783738267789090088768609678546227807136953710666546509266949952810424805593675257995348013499368994099615001698613018154526758112123734275255357621334556841847897462884995773125959297024395352692260597325946003623954786084077861599403595147075002055344823517769855219882288958760180580466748377666240318115780875617333110374404788140863117138132435258136298981546060280141608469133847753293281209202820979131733801837284418352063950598862444926945118948331195771496314747763861617348944368974627378254637412299725972725176493215707700309916917594735620994279978950146548950610511648648379168245579500881821252610993960397812145170102581563215921536119738019024293828198645383440878971400271427977710692380762062118673155761780076305583778491599199852727881748758631272018569366637523072554720175877845719753994302012997548277139575905945202064501539548847657020879081258091672413638439744219059122947524900333627855357925168090934532371175941134806067186413489331959527927834832628481077112523019020059437125272210822158948427746551753496537207968778944773037298673048797826233950284912654797939601112291881991207257358171781849869208438336790796177695767053391079318082530026987210954982163785216021170105846521157988036784309176604648927577198421258074027875724616675595133006568942871882652338794720907785889361737464167583093159979291439593448225514655650841489407481911523937566696175378583087056571556118170163011477553201013245778487758048740465477224099895840370935852611307662666361459752758699747085988354507150788217193890882653239018620177579021560694651813248483527440483046261067965401883610591186046209077240416212179917580300228823651570389813080815947249800533391920518178840804378078948683092518392312861864465980077090218515089537055019280832445145891955251457922342044070313093158538942129453006555011402334847051435664945098681705665205118098020183394361830395058137429914447286188272347532862550764913370702919615985553905624608310969176196113254244266364112484838288330658661942871696299851476541892354385762764803509748175934381291864097020105811898486215875238769268143295913417929309361368960816240675130935360214245801723371500121842431162889185042782144993019591790288701806014841637409596680576328165277067845791303389272954299487976478176522887978737679755234527987156531434296820607479348627128423926408016786618089149435515963457051493214361260107406932380537288274948994153575965180089045367314818297952510977974173539261471780396423013873659639966423373781681546151817687008135215799486867188610884370280936369611210417905540068562512381833547381877450218207713880802225948132956790744991664460116159443436838134775993505649893674081657281518450041602228468284887407275384315301256966621839427803171648517483935008207525996505982156422825517271720069764212685129352681458464788443832010905737447078605995860269029085755369984184459781105263886734672064253219303501739412663593232404301902663364503662164206605259596071516775121887014206574869320665924815364231895272111589108198493511995546096106514857417863836059240662259510668279519437298170578632094853389100184959858983385863561718582019363641847789841438515732378377622131544380667448215767846969573901864671339801310556839122257967175894954026465258405060724307639823431132140914645183574546023851558861010864545297065678584293533063639603170432724861243478432219747277828842768143100256828351332839267050478498058835230109302694703841670729905605095755639205123027688794952958395119882896289371248208259288320761203642263662277249611528358565333934709030561940277892600149033139038112437592547121738890558353755771433679118077242929251805838108006263219843427863499626455032933259318274430573360308963963156797234224593314871031874993239455994287208971257490174357748627800078199511170912964402891334227657325737794709264358999344721320881203827671883728299287515191165832220410381067316361834687749684428324959569559016879513725110750637680854061852423236505186642956689969207450575474400242550411174261592148543852288583335917797056245823435184906331991075904347057151373904544582864662172769288320505845293725909703572984470335597059733231382387715503844867965690526729466210461352778853368797455355874943699355738741876377421352200968643403073787317779961910383539599738008711030329268260776543023703869698481111136700452448592637850640409770949349950938469027029807730854785400400964352420227859888728018010850944663366493857588194068602551951646295670965467694218969219519065005347814178309823377817022894778605173966054594177510020599084253608999083401206489241893873382159805845044869844116141490399952509579408759079895805566537394486220580175269256248740189627857468650261971773197276938269688035379936453915235941587519561120039986074002166932854145807749569720991169399314754410680213116171414845929326487310153741298339297517254566719864228219924694416393051058255100160056477879943432724741568683378031324516560136321747336646538315703543719705046628532393181677457690382714293464228136671511528448622698280830419366189177411859982655900391122779323676272618078932218718975476479973929148943106905723333049973577050012959809420313941804875634109603890747757691685654864051694623988080724082339495892459087454160990807483321127131610046291592973338832229231571565430169147946489693649223693995640283333004730719033189891221556288476318171410816871023086791613740611780554245227313948644403052508670300999459807002979462555910474149175043762030849464322314364887482357062068503651794714917683030603093805550156258079123583633666862488865204974072548831004622376658080098414676216165797712976875800563670268877403335291260999063016705286162963790725651616938403205942522989048074508235241720311865405169333602254341180008391682213076592335265617988372130862206303571137989455333075981404995439177838154809879832237010278742537334523201750258104670174946688458377285080920952152457376301809200156186148067767887630479476389892884181070198526568811611987594123368943465245955021481025915523776053983681755844041434022226995071936777861782839636970650132259940468899781735718512394531454180137365372166679043684183152938401238633784174424082727228740580764799359597953008230079518310982150855144618496317910703950040804995418523552941471662840131764602505604879647277830245640579701501953729840670364480928576228912997090457350922757364405399524288028651847830849291512072753886572188478451580836359269493159374571979016262624126386610569336259685082380849652612178677211634168737987170607246647874995754566145733044078165467930309297229245335167953342902422486659345195786284813412261824030869671311305527627290715926307117002402585540870805269004522553041892192735703610497301657354206079058286843761375927039910335857201617871803614773072560368253192419379459780363546538505797378516148680844114802217478158674224711734472990939843439607200013484202250535844564127938824408138278916689582296350919816931635999427588669732221901468993836710463821259617272856168436323430137835220720854641695543617912342849681594820283468982774351262944280450104203179607358272214234845307335023225335826419184335143945152857442554782290684526656723849491775394518043836637223490076128922739374151820859165673084276792551796028594109911145453230264415372536645008627373221509994036419322954639283949211360492969337637527415929653552021948192811639947202445409473117777696873449841952482258265894464143483542372769725553893989705265486982374072642033948947160455927819439863751391942585312905461516541041638840905162933102669509225816930601168308995778518626996162252655398017475781257982439144651650116998090683083155986327432362005511580701377665025549997599595721719843127497512890550967328977014498338708275590886393748035930383210958812608883750508303903495718122659374704169901579859902016387769988877773869728007440432748877763325411072894463635986900726312541642157433652231285622430102942232009506633378756304411302185849554630546165056423188951051951397796141330861445963637400049947217176333452050824350374812143737412886448556647814777713564801387074392874266449679372277491287558317078750714868173664311077253626147641220024826020757637439638062012835915490898959685292974130509696928186850413101887171027109844172374298539851849970441337250099027756596238870343639190342951210103126945886053554541488988205749246656558741185182092034658274368373405048458991232474386099476123658490458643049122386544290345427397068555546357183165610563683178969315854046910994330342151311501100129646302626944928460170326388068662385543185479859106062830447654671099360563108497046553811311478113418385006888952699991127484786566491324560299939113498688301925642433425458881132312992819432935154588104909667825979020663778807797191847794851338857876298453026947446931588592608056772150429360468177985139413306716263154150413789024773788282003468202102004929150338506374137035747626268997369076026200862826152668800494730335367957422265273589184402895860884851659990089035088723420626735177915763674619850310443426793957528927826629100256977831804187290919303350555856387947038478534217697175256446292668699786486408486258230317226269158156061218597094849725492266770412913790571594893799528010447639500350346440316787044256542606647917970650647764928892041359473829673174360658324608605018919681341710668173908542850232802986016212841761093805954432360389147686573584084033225172957927144478035638876167371450172331387351436603551742292831455819628230188136944967349285600554345251724210096894808742946664048578120776152542707349729732336309377606755864069686666778968913203752198970779643274875915006910279268237897460241920543358502980077684594781409805978812282932109832257106418580302616683517530662441638010183032537726457546883424261900650460338770278981787159377385098161717504100207236688811855751596070682871838597899297826610834985984571955798666751323020136304547972880353095627946455548427222724594046908724638116997634079585105369898591296886021054983527160751049386407967719366453816396185298131390522366160746762580172085430575165036981732305833405995515048515297390539346455116276772657647920435923655372685098754714105725461861498902949140981185580594664702117379216598816629747220363899615279823196482719065448188509285710839509688440918152781505666576805998446381992963700710012885723873586564901870216072476176380718542154585655656932880672346572818624588235863606603811353144718225159034965820449023979996255327341327795282780267859771492848763807305129319774210048069181259528684727422476452788970282626855533252567400025593182946247911832546569001974795314416395205820221425663412678038661729390535673156770268866901132228018325228818125020089384783732102289858938738319310569274976771955728639358576698878196315648213405026314769894585012779857529879658108106502220518518025612586059563265974702533280893851514377703068196368507460805856434038165943947787786636701752479969121591029974867726531789595274868563202431622560913992800118276296666858524668824193527316547133396795509672257313312095733637291761921665496358993287457413855329214403321314661056715947325807979139801676699563146852004213532710493240947950293927516902328557330112542943494844195526787555825992789499166119221655842809292222415668505762189194848054141541447624798458522231266560819002573408944897152160213901855567703074610429242456147334263942010579035958168690398427082044980620258614003926382917395369950152903628988982268078682789505935771574196838477777792146500259089052359850751006023985969185783392300677218950655542596947724836778950552731443354181422633874287898910511252577872525350388429786484311929347207537053714340291825829245723294660187097639244589738854471349316856506818669274562403467944497626050165712431191183117044942963647152651556051293385622777665985922733182577820169168254209357585773096250532373613710576015555277464690005963091167970854960981467546213082673248096511541595099371301615135105351768143049756386186145224707227590459149138187685927229959139379547422605513874321584432976012351819232817728891823120093651531190908806719524949951210125094940416693035987518645395984546539853451241825252703994811574004811989963910879191169282313247169511982065856414709442442883582401756821807507674096848508527458539725838300360697116277648794622664500216133605284845297223080618557521672992135872812999375145047140743125614749247342112330209763915294882803794757885695446338270312055776080732644576838468703623214652702757129457752371946793510156926746430077689207480202568168855371372744460025328085440433638033770152608369751340558069603310045206674341678499499826018779237998326282992617901407936880268986011322518821931607922408157996502408940042908752865304323990481995481585834441729056433605261284369820005666002930576507668018962350924887324675872580268999631868283948555231351340098908869224688029231949729519812343609853688753038295610229957635252551410537723921434415387997074276328770040932537613416548593239257754090352508651578102950487236256173695554558302130419081273362442546517074271884443954310358255453740669103826597766718135684895300428971735414926318571416726961323209238755278408427324948377925026877511506013126352464605408163924593623354106183184271612469712586480420676359750017749478056935434159183681531194317203956464834713690877056147234580012764044960409007700066644594477661228155847018624464588264733373132920288608997099943635517843415224185193656724685505419096194711515595348743597466993545805048885779697746557818945762526539617255812239290189784135589622338997107018045124646272690522996020181996049753077828444252856546091845736024515469780199663664772164948805207031342354398558557271154538033518637687591653230114317166075258758784516205848184444519681088915807373628016572935603518688497968781959698228478612436296645690540371202957333406802838133995861451665226815969374052514551405456382276158207927891579674819759557707197949152250165734218189701166934339794365526334638307933925889893397793146014315119603291289987109286680283811482530541632724452405227755544705138890781060395780494313901107987926632554338012231032019112128743966217898498536719946410474870912855491502787069121235217803428746781352564384911550225485921988086037074973722809175581159368700654696227879602999032580641025513872894605764939511920032892311897229549107283343627169652420960393108151268037263026876576449491471955000138523461026881312363106067460728599498481279524778648140070698359901116617233316566594120106680360254901267429600924372872991934449668838264699020388364152908490694372996499079681915127786619194396951857697159522416413911026521284393764758850106947853681360429539813701073538108530986057697999296244218807512243340321912263255628583432793554462568116809799112561230564056614923261123625798228243338486824104064625176510812969259800345969458295538783017946138657429496551322022300333052030559855603733245983880706732102158828992584276699848726985042346850411581725309172376842888249116821558483695825422845729119000400373493938197082732438601740915395723144476911776202082003173106574964540627818674286395328907610111855435318776256643930072236255685230199055741158135106705004860063245047747812996126520418037964385582028311380327534725557143984639042836821209927863597211207451033728626523855984988839559348722455598122833361743339131911578576193880827313355139701945167019336213991629810962492179769571752804239411438255800715442582082215632011143106385039511344558140413971569976574307307838045536148925697730453470293553169052392928089600065173937494154767078315070564317053301141674696850281048767464218613741069171074484706152498836106631273986652480134825872092158208669680648735952623945964600782276828165718940508971347895627297478053308747352569398064549607917200478483786803783752121818092287110425992599627668909196237295981985976741364029245622123692928917316391955033187377925108104330271337827509849449770903094031675735578844859918496547181207435038290341930233246960237881673537912988211759875998393521118613018617979470548193097056700627750461239045279581097059833712496582217540520820577075771675575906742484506468571507469381583425039825569380822583811096204328310133358285270740621190104396062181656475002713524455093091169089309034025852047923817420433759187864338250318814104876619962882304542944926564210121609877853384476590242190060665124234829516585838688093473317055340248103894025287633241002453800572779430090734728715121168091459400897760018051143193813172167865263221518385292789902175697259466550234079156650405875729076828409536634698379519944777254938351202618388422611982550554676944168868772978461115488653639461072054135708637422954899351789227642135942816065869971278160870962330508899228139015320901309389410668357659144609016257470758727705506768465179994083110513219356673960657668817092850981723454577543039588381413177944293166934116228100070592967307912084130774451967657625293208954446696295907963657807621767616272694831536307470275311515031668634527436986684918045051247250730202336978233296580693354581309622069806399113099922922777232137623830854371684853070477992945065984480580686430465868182810981581241327698446057759651359166313515402341468868288476780812116351413923413467081549916967037443718429431516131929159978427518658145891096950287906033029182224336371012508233107315814070317631961596238389841862181219812397569876499914512696509205569003344247261024603853841263538955592700733026982089496237522220833584203074917370263544890881990228350663489783119612869562557109129499765356239174005086843774261325642632314644322946315451886684570363061369764670809928681378866716857574513766521929324827018523078198942295174893809225973043269917248758353885274453912351725724092038011388333435537930492445165014931165823860592810891138346072807947698812896257888380651699735040301497498183326150892505914366772242596811698870941073640587111727078778738653402010871694257036620585015190666649231947554581924524901452796779069537992472016499898241250524115741566602555188697585740213930726870655380601521242937187382367283620921224755147201686416623509014873746814431168085683575188568160463451346849129671210097733483170583817155241240759060434497592620767943521075179071588778476180863813627802533135395919929153854354632177757724214988527915902156422689456059355956804250301868800662939595216525761102694911265777224806589878468747316859718640093388793146537143587829810034582274193411550015738281676873240571776140984242437849270780770823679078757611900677474701345979795414392320225278712748074032373701919212887774495359356089977448643647970834317985250481439551976067936935371367429934495498367350997869017018127319537270476882072795386995128174892045564378495219085933508096100960894711616996189798607760749620785888618741502916810059957655195447513060418540113862816187499599322082083091385754365380026192021497243233656271666008261090580909149352360803066576804615529015306436892548145968737270577298878425833667472753553914049354754884852589921070910211657911808136374248643678248039556405622499626312881559690411086471884371241864572532606190057461031957171859513434717917958376408120100281529433973123344758542514480511794080053786572851874946528644597416213747102483270616324992393094678947849548094010792784042425997864250771397695465533318775575321345831302119714509382489350159371267733552954869056234166050472377514180100276094993146747586978628880539362585070305144636459890992973551606752309683195946164794735955160549353464369355735251259718307028727018844789907723400203998703011164345984124501911860209583437024159619120863473669711162973077017654335889065293468243576011222911254725856238579911597522826355629555224891339819389062375022084193054951770956493518729100233385413092454201089748379597478390723485744812969295392936661880524145233425509148263927319257578024642930581427948424848937723909978652381399762715623310960903484078949684593467925860473066907326635585905479995822127135513898652560334983022174396451924726256175783862207215968230537040110636792469007884274243330283734275394029189529052469957268735951384146929006059637010204600302980803491028174040476292027424176496645135885181030122460406973442536776778262940647195501755810366716263284927391805277500763841222720395247230157400759231080508433851205997559706921646695067182375461414380476175339086488958585338987319394185808924001302556085880531640578278479702957384052103497426264790427466702691523579527436052925403624799072208007816201591636082544087911988397571885501860980551757545969989946834211569791149929065720747467548377216797017068850190205800738538911561876555655202164297113762333059129250638184632228128157307776880755485958582088069136849968866118030881573500767810888490575157916688230181486115862418471880639476196202926351955249427339374675425335031011415464342571319428588946839486445450949851856300348565422205257761085873533436497222860016458385548238585923660039976439233471874828894114042228741729865921958290094992022508467448720192035938701257988545428925229921774925781012927942566826595004057020814540888642028977617499211043780815050936913922738554458213794979316057673480628636080365806628111337121500270909621530950107235660814677182205369663536436237088158602456868837385699063272961421109497844633329591767319170145840090354100235415562073948726903199768951742695053305878515610352646089473316471633258437063689924630477809193563582887440192630042055958424270792341304351525695070931274540412420439826691779088251252416756245963991694225702951271209857680010352363581788324053890278134342287172671115103994993798553439398309740177506777396493212682278478781223337404349518199677191708469390541319449231306642091832365892602310722801938050730486410309722414862683747774739142785530517283681909096074377784003172418056178943715415368226975743206347808980499448359771662221577515394852768088425631463354980598431428149906260699337951011384926240931298065678935926951141757669495294225988504681346167053128965748634060307031710002470998302495341636084408761678664706054755326626478615365867738812158998931034967336459417186803484399170228397251193729626867034290645389089644696579184721630320069341120470857427652787215365699023380535018864906052900979294624698762001302503724014571692464733685121828720516563074066700657190931776800040952126868365892817794079023720479551803670812747355556404881117771385096942882549961091814160945364117660063072691475576522846510301644405589666240999070397927784534396877855108689616055486883850466118128168321877181818024305649631814586878538605931033807368429134650001824264225567487145827107464932475523346356135877946839332853819042549712766087627882628241547403345982666184842470104788115065898054807122761699886835090163497076946480436162282572269734640706139536556659360987205576943804290923970575932086585923522260499272854082631203575597743736000504131613705153751973221137752475400745002889367073230318581975974769844003409215798598493944722605997843401615586079188290867336441301945649763931252975524039703630058277239794201519149967141127331736676672282903700591273679591584164131421432825552807007757177393361934950684115965843440128017633814198042333515982877837730543126787445534087190421799641992873831849928342583652828531107640442743188076083241102576593801128385612532957856961659880867060209035447055584676914275867359219798996604543032842933013967338406492646613456703511219104093034723826158838904832149657336513829597329363078154375726430049476034105445818201492516586812575444891279525600015985911457217874784196113082947140701429004590499143037731339114923908802774520293863015019768633733884545721726890361599184268497808570798252532590140840422930861211016203653682492544539344360139542783124722297828406826583205751404903521824372303057692074504961054033201412179508028805420016942550113889200779140321954370488776405790951954068954409297117413000406235944037861842800029234657187892745637283327517456999968110481993634798528510237570586681049015601184951073944793509018148086314228978654579760505905885507900617158940384636804894999549501684147421422328805624006974047619311456715819535389859312047041029104353413553942063478131626833460890222171317445870072011428354585083554964435144467275606999601517794600817873582946958849985730748282097141533186728266695500372009765510205911581915131523869526268122485982506014852594755968105843982085742321615746757286193326248561168946559740755503550523086829351696141422486990026442099395410198117378633159094875870499609088575655080972799271897447260567841647141162984904164395655258977610572437084144540962700464630247339317664985087202000247143523052412580067126809648779827692096812008457807407860033314197321956881785912490184112092872781345995966399434612816559732844844682936634496430299970302890110959975614868872830790477428565823574716707651598965452847387521747963916237387079681203202043483999642885591931636901429642237114686765856021260821405060759086601583680975199455410241139392675849322586311245365253675636083621547727598352688488707913427810179713560064670677936779085743341119346901459347907721905742529900233983320557559980536077936915502223563543057113617418877265580406495081745178785579963047335833289673343374569081599327338356156263096978848485864824528556014039339942535398214298281830948514258454430333643045591347554659008355373721244616820034047600754975842908562167043696734631134529332756327757039580001952607453920639964253574937927475335404118511100089377304739008788658610440784857246095259158735934125307567492284579927778723427310846855873985309293419192153032834121658152398295854074119075625774385993248812664163398604906259594374510155278002142130455097624892498500140760780341041271882067849493359570937199363100407467853143377391619897940804717277689254542752963234726174676032267570597119642215548914731061639039013578631363588228221797716152556727679450740860755664303730540749514587098879280655356069724334920420365144015897526081930204799077282517479035629618067614343929809873220999686228578371961779230094536197913651602664722888087198647310682817017671219094397914351731033923108206125863904072750968423660150407581821328927174838345015632277194573130362498567058664250255853426307698695500134537167187239620082466487519241130224146469798438793123430113267196042917737179189079618331439189662496239428723223679254572203630444172856000871692545360309882646177967881868658550835473040885097187976017318362963684457142460551023419244494503128972575827322114093659749785434942711807957696565495613721788062662822972003454048811461138016147453371486567102301959969216850710470718496609711034211761532498022683874188891998036446515645608553544418873644373689741684107807027545794531997157670712401200060968405858284106918292800298495971568148183215742024647081700864175253771232112821822654256882344908334232385659163310372424358319934050724887197196419118667123103999099232317504190963697172761362685226416048017679960526284990112721305048896866482395024603037821762765086756833588092195117360614951579910365321719059502958856268804767389786692907042199599967560644319113133895966849072086021756766814327505556188427274147789290420935780593718781462058808957121302626932664256353788072053108798877397588091239063378360684903484357536212537103258894378569210902198213930399019324682064709736822915398639049087840103221669420367241024862479210735150389764722080796597519345803837705564781776231595316618321847164572165821512781374816966211493647192199612937379894446531584950215421510795674976111524252732386979058760649320886642273379057964928925941197515037022345368930207188052153895201486063906882242504849427926637234039570755043196722109225352435588339283557096983058195040919670668667687936088069260310923294193701255616214158996499929267659936576686662920834956582513867133287954564190086963060577178391828946488202851455637364460773722240031140375912449569701480388288745758339217630419541030875058172276643741848949032647637782117314735410445775425617815007502314376576178782090783893253635920769642640243731023440767946449322585724691755782050091735961758021943569460591981350076683292919208771106398254030458870235429303716400572263072373225899853016574315563797768708955824808828932449564974594934750854924657517472131102644653557609832012236206833444798509052729453057612387278791089111979904165418220598236596743643531340508431338056165605510855768681711775792789435944374772248875176811828776396997480382246967192755473842529705432703570314689118818149530652598954985893495128604246485092511590563647544116810989531447495911249412278068721912607992977724005495017287964249207636336919120572337738331756591635406782295318981578943349393979651295149005830272390146721263352351182889965184864720471605509330675443430295151802946882816457118003248471380234289848405955799695875693463254152379771247672209387219153175333647724740426834631520676344923105173512894628101079787144142179614499306501258763088414006189025138096568375744344715793998371379362751625287406586315151587506135678913029034092390009599425337813829332952818867238358475063571264279620569055100110457783132540383827175773138141960484444663605104777338555529101081588856722928940443006640992020842374065613686654898654004512453450039737852650015465541531857826241806538624775576199650611790320782711911527866408237118624080494020705775370811416841112605907948102339617090296275507441960091985194936719588168058332035403078469910162386417166192832401702143631606448754511674580813460972534571727017518703707174195266615506261731084683956497432335509289494368163331076001895286966073014803947944307396781536162881164503720756644768609555666534221682413713831743392753576126420959243773926447104864689507356424239921719888148223521714555336210479402741115143216649563666446643432378153941057895813610068162740761521205210523574529668745848562855595929474587356724816317442014395508963920152330817434041849617950343704113656087021318754490556538788011493827626121139095470992512401720564084687235910362476747950237446759368497248772078039916587243196687613100514774967991788633871544888862191702351364644650819381284991561821665148288209263150711561616482166775583660165988650895592649205966679279154913816740737033706396145491177478344135474873527188129274680815323803512680373559332283305378002529211715173211532201661827687785594264569205326249276835089228881649676039806350710255755446571216182111186611797018363822531766294448381113536307563644487760893863397908576095457513107131755289605388088249796267188511249356807012804932476114045631917446137888131893769582107835091103796804457968493437465568071839704053990013725664753805071591996180019708707144401963102735235960544516196313328353086280919117685551559366344404993194678564285649037718119496864803730950470319254906470500514575693997497159821432999916455927034622080683196498273328237753020116859661037280321738680777178229903445775902101417016850206788731683938126436593874095113754948038739988756939964836331143706696079352463465863425392751709758081203665307749217659371547784339355239347559407499728933003119283333215092123585619499741160171844542320097212180026619883558759724300447376049676463958028631025266388763221786221339237365672431300219888408072643192851675747553997037107504829757068118714154815431431786107091287449249175864786722579483261530505594488416776862064849928185662751704223359578999596166069037431985674818604539446082896233674077704786155020413360729037456876835250397387486977770847658362594576270023689470948743167252355237465103800680263976786903133438597030571183143487047160699765509108421006870662122738665350886640405610896770321628655686949648414283591247585613900653528356220211638380492488440766480564835254475083494156201110583284166955837745039178309901326535584721123064285847143718154464618937100460734236575270662180734208565018446089776874176970884188455058686883248193313488240977253213066590253987144961114767413937544018719816961856523108941183930392419379182106004878688295522020073372270982369271305209069902984750726340861605774189937203668710473966420319957335640987166164126237505665847647894344220473776459659820116377429326706972475106642533840035727075955733872924263617786966024352709085645042356570615651406273379412494379942728183816965512205786445181514173549151385542399051946355158440792190234984487803663059466277524392677268205010470203559565287296792552225154232008457254578082012918542278896064939597669590945779946864974779461431600964771604177319244197399095301305604349296410864288125012853506051749175852212116094904605894130516434093950978215111081785225009463197044692305485951059696484064508083967403183759158802273718576304930361326530832932643890360975288924712251124054728435018241880237835727035816358113288887601774417924560724030843505578637857889123110197372224508285760390693256502189059200433234657386175369407878325791374996748679383323801958895212824365985562209622245934511759031009865373006315059191705395194381871473779751601222523024098966467978352097842243111553388191477396826129864594420066730210638071462438892814287155477633997703344842296810778819894071223077165344008660087632680172251619678177674970168135906728008382314217117994844028424426239794689370164956421752312651649872616896341898249939945662494411739366767262387163422466865601873172821924672918508805951394369228038732695749524748214872110322353247028072366226222362847779254980655819665603520074533135010058214341818585932312697867623410597261375335386924275717946809863572330275597408658515757506220839146487056374830796132876289680710606462082213909698759396025914188250580950035615110384889152011831524623902866914275803485512675643242806113450043052352167182522699233674640090149676771949049959979321283664240283474793750512430569759378849521461253524225423403127363985019587040896203156919460279103928306152705431460842107727431626413741219363344406905257955874806979653642215412303999703303414384007687015523730419614800562455310442853125680667266652755281267778455885097669224288452907362178450488236221875405025757415269794798556256238393164291980388187711266844428679420410882078842884597122078424761219800167986295369136516204500265473487610164079220958492115797443775643047528862086810370710971056610429337713344934697729613363427495962668606675860252578004938806131849119599368195740228875519406830054360095003010928997114046838292163601886703165213418624551689690697351185963816250312120887834993946192825915934913088887158272959610363959550231957683518214598733426234108857618428969602837752699054016984596071616360588786605999561229125475250324995723869258799026537442994554575063966116170437661944426907785948455505241419825261586301528446797564664519033324405838332933237446811976499737726628515915079039727410011633892719727968607178810084024566925062184612238466202315722435760039909236482911328832782344093572975340714873061636970230966130654435391860536801927814252186539213064935345922072869532794028986728785276053819720027681412783495696929129477655002408290810031303823523065445584245167914373541305856944627972970887082386398808835293169181127430008545735915275353419142996510251841306898547637787493295650822379332502078702220349999600983982293063094936999873851994978244903127832090021624971055293646648817315088384265123800099514306700167299982742527544856644044588626634654217832974253110306280310139897501545027269222674439770509273744419188576653954858549149970794762117540296008894187169105258869483357759847395401924026181308257274889258573523922763249197913703470951834309263594119315940958707622223411062338281290521817893165964349170501418097684287253448060545544416464384945560418741172841273019568801363164260642698330663049186478590902822197367898761904593095139005158440765282002420245022333347305110979034881443846037285249486702853747746520215737744738695964242094870617164583244214853940385947059135242700440453159093900375297464043531741743541530135034613032526995704369244147966014715568771999394522799715231776418947551630691359500320182458069686466336331199734409311352084144877508633930516001394514986135282865463866048526248771966639341478816290624508392274264016160113404853849917122572728737383154605039097977702057079867427494768585632968409764447128459362978943449603187496722516829651989474429558677197852544057950806518701517105704345853767283322735339795995094372407295058497688266809640275936614753885061023989133714360077745358669152899278889091811918531738542310649725990217161655567783100925656490639897279537539392937151735073247301281620691690194434868741168269128326091177170312727692986681967255036364015990125004173533913075517804559618873997090554555231810487284305592497180873225996471686287147830806255616713517702678978731594306341517073740537340363396044947759330315499879650997635109210251941181623430148056514841311671428341929951065017526285455755346396082684196355788012786921775253941425506336002464841620793441701586893556013052449689457032840759012417047642100796547744685932050260352213716602124238674355366351997489656980452989589157093754379729243055588944179309961952500785184472358070191238860827177024859340048393007334833721150064891706874464357785241152376781951955998408167677404901190601925532073887717826856594258056221610719901272552934486459019533691691718473646533735646442017234914225643638948012922141615873733152947184687112388995633992108575923500801775841875130979576927559551872512936957723732818021464225025963350045700819210273625278011409185372089181951282823072578242077826901550078844956686190134042270620257651096594870441498683026455102332524787531990680736440579550569999530413173862002500492786086694226447964617378422006931255637657796440490613997975354103870761801838714398460752585781640365214363942549419831447754760367918441610296136200650495785056595372345034134742724167186424548673813573863606355476085376583815921059052877810629323564609891711201946433965666367724516507053816345844440453860894349778589455294628111397438659997262717880978731372039867797458817674781037723092268810058337390624957185244294082743841318479304442950156528528569207980980574189471926180282883999033575401540364331177388824627396549802251075617299917678566992560269308747666049658806321820751946383908326843585453273316713793895007037897474386628140404056182990099332064319682651420903307551009021335971129312859352696977519172164912173642443554219093126150373121743679022486212669624840001719505603061701331113273917150732390363765034164026325384857974366813623225665609579505440376615439831240969517355263100591217762231171622983627120652305043933886476021177325597150611269388204850500547596267230911649330980993130569187272126215108534384471273104700521849483449812792092973824744755011294507193827034912176691155909823994660316393884353757388660205032786582852346616230321707002661316415164934262148899193213379694319335325267910682260735790962439452922448320616892602971994847450827227215367572655327913178354692610493340910353246023687735705888165635688118159654743948594619599944087251763136909934288337120825211890667307700390446003067206237450422800117394185371155113607197450409316986179185689526876143124339700347086980658436711498059101056178348832234362139749818633225835899230888575934899940700975662546232213192876509343419324128096770590644230448000249551031413808961028330221841714134998913129240978140618356387430598708341298999357573272593985738379492124079263144290608169264016135505417825386830579165607492676699391280527651762152744782499085531175817292892365502038079057134194612331441275342637733076034190612031271952417478138180878703308396546434822884369525893552386532802478672251160778196480412622382706505090718960766496197763635392501237032079132268131596144293940813694045575582661664483628206243841845435467273533055411447838440151723509284939950891678628905871869330410625339321146211675179962428783326265655151408217693275535184691645499593937033974702865684517959392307199878607907923406806481997584214551108412293705561537024932328930721893577742820876444195159277393780752671415854168390212078022875529263493537073452563591756794743094703185990034557532084255739435495215848873487705294882604689554625871095786965061374819529889762653270050307329547411788736777957448635786862931362154212084659973820542930922145469768292723663658640979131987058186531721304303026395664849960510806135783459731784054389417843033012382932873143747239117864278930375962228565770307996995075639445935507269428262142059358861466244003514619767758977881141819143041426525199688096362438523833873612857735792133953100185843824671010985462205443458496464826058097735037734444876870919266892130515104588500312438481543323025040241840783005431710484489311071305515747831014957007248721472486455637293093384998696580828213300194815756239226851074270748037841667052633089862258964428637937477125433689283752186153311115008237326108069489524888468948838992060641933570163839222198120974806517696333051735204894861007370494511460806316988079381246553088846642747970516417341485842585045936228075776321113972326753998067519186698455983710852541344732017782967915897877798412928313635637749637776397501790024176703487070642450044531617719525956262285842033140172720369000400212274009406607479219547953697459927644597680060386481893209790089059173240116063957134579747682129223941439159422524464285793906842787255330275422491793857028016455669630209071388752120165872925805389398496981734259798077338652043049735020382294941170429036923476065966781564831076392734831932424813400377162856674997858500908109874029416217773333518650264815506806505396221887651528081698043593065032714198724146219758574882622293186071143611333062232420671432782228175007400572312051706512361161639239506559102449160664514271373492438050191854846032093996764694046103736762965631291702438263945295025570692484439135508256383906123201462149956895929893476138668463141649432534999800027312975672939454265483711340181082171372885756887581605877258605449219602395346887471369138034930810710212297862178466384076302040018244640212344745067005600140607233985997194249594802535086903101342335187386762381199392546325442897768878118939433354150778341531062378762730881720794376862837481184814582126408996204910653388894652897253784015716518652366845072389537864106465707514123790103262081143669452120193189970787689742784536854801783122008086749573584343346254835276652325277514625725465626294017765703568228283482975305216679566035596534167393677364491122071603307694297110462212486251008147259810590567872846325338579173585912756913006446785940157316426793104562199705457616050868145562913209173531063840537842017082935719246576180687030500863429456744270021892160644215150801102857613774210372203476370786283680057635977738698419784782924775267679182642375650440287349627788537383959580566943597576240891549146235619306752990586260344220994588432799165680693135891573407177553532261870161581179908375441309770497655203896016885463713134443347484591793457924139992722243821872364479354836872164919096633180884300490973785456094098496910251560447207639425603787957590208337624287169577070703323541604928447225204223329418707686620233778657825817315849744895330358545472929036989470094572469856214037183704698730991187119123122523837417233550099332797634909117038852808970827226095345813975045939783939122870442429362658317517345032026137855625732296635485660421368748477517212720696407437108222328441931135665352713271483903993740206604354701916375453381562335081260427881245635772395120378216469121268036984549659975736723328908089261976879311261317682727786708581030820634276855899057062512035251897672867605740941638339633633299407665655804721578523116386535816602234717826706914242844718349567869775297596804050026086817994773975750673588129846366473473656604473006339856956285018502136804964249604087786893578890440842039082535714734698551864156378366875054752898202333986779116751207364796952505827234154671648042016035858931989522989030744228539208269920039112503667243623014254782652126925616718219549445297381180520070749717490894236397823592755787684317763744245068685756337812650601072185832699557650690677886837195065493992211337265503517574834321936854509200146381494465492289685794170340027399805803888931674513949755314387135675676427006414666102889882578264661406766292360329654092670138586771716029707132307868191100860095986953951236910753402159264881400153465964017108309989486714040640236932574493778816452730124522890949008267960103668196700453058490605965586462897504131676445228250743863319024312068171022704808319096949946516021510315344917553277167431455020590496549508973426443365747661293154335163408641419054512293648485268821496874063767426163077170796965091600248869554893726957814293026517589116256007218503844248257086946419035264677889574046922424523813200842526010950057832927318367592618971968283726445165816305188599622595362616803768393542711581890678971288381467204229622705745948763459132670799285009973723001431858043329403720316539915191873794595129381654027509555345573416574355751335917614935791926222534827552980122823145257006191154670501423654515969319240637763434440369271480297843550168500015423305730120866075185528683422393523708991268832675657245907718334032363413728323211267618395144907129965370617190250901677938377102159457175656916513225557019989497456331854075352169534188515613803644820946797001708509489148629681843504132900761542081443303104826487437386781654781936439095623972308730277967347812130939779003509294175874130773455970003103612780315710165733816787062475412767614391918770731751110218756117057180777221088938082373133611751152739769981088828626709005182171121236731020222153022187855835467400114124054186635846280097221723590395891600025539259681024741620982091895060910443033031198322634949593283218481877362916838048897437171234018269760198508801921659941524812878849871981890390092302870118760836799621509848514187847450068058511104050611228207644086235845170196383337835210211673096710318642090811292072190388469410113621954417321374422140533523146416950365571350319603622509467063152453532295874311869077764252274113809321168477957625153665734908431656130763117604289247876610630342272329274720826427525059615839760732190729400908656854055501970472336360915286667876623288659220084989576388804370842155966434749037905149119891859381459464803419205967684605169603088223283916662987571436078223958794108467030831350331575847965521851910203242646430125897918469946602914249629185800042031719956993377616589136376342574737410979794048663087576417462256448455423047507786577009926881629833660313966906654612624764449894971362940243563724947564751271223076969777963348764707230892605564477376722581633222707153748606674699776599779725212541733187215269296384053453494569473165566093724628181767016644597418766509567269438341407109011422919937832248237757863625272791044609611812087051730971281126720000802944886062558299943815175822412211913002142800475475445789027465330587672307277039177858698726141224396151150323160598559560102540833936779136439669969488218406618140801868307552603873043387019953086293772425881792758954454633731287758456965107946869259437871209830831388197721290890458661212214848471178089252593626712144998362195144027681869807007587941699814907491197676136032324447539496811970942479801509690145732410555346190441680079688046338226138652754000410595411474811876220588256177003754122458930857242516571870136965942516313379826868127943527943312874878019641259825433539327088662774114114879010370974743009434647478741773775167275070602991415819759752113793896694565836015172608809232149997470241883487502350678684846514522341438988293031078954224516232654439530320879223448736523914965879984455880938993282633965535120004621901040387835129910526411872905342333703247142869537243453781261692518534573723137952389861768309705111947151071844623379771006088155731118188479732496708754410073220196558533470528383205410040540104388683514340660920110013295294085543295183702457064591645190608754864871149419206862524281296365180324286591821836022446501186947369195248836255520393325887225545967609535232748025873263238547015944139803136183733519494117605813369343493562384061557795867775985427312514240096726821802215756940939771835859223111478495842216207523602459195887188606044521357319825960353582907603828868689328905554394973851247221353523267965818559931276205671526163858720311687969017456272354513954610473517174371874575774218148153492653618442490075999511554231386100873427860850259689027325514655411692476411072280992952436473284962999918119071315572781930644248626225654924118584078658563666467198756410257111769895506437147850012077777095351741609896476867220055003882381813153700401949763646399199307247095997943074806390716888147006916597686827191950953307649636165715277220964072132420095800078863224937205677055796883474970886527023899177836105928290296661274807710774256554075667897993927108141649222584019087379155585473054598983306582571744737011131082315456046430872096384765956270706991267644315549090990631101601368536880459507598479709767484392652076573778371535175389082247791735160218971887731793910154015804978507256390829913088048702245410432335572670864342208770216822559731320098604575623172913887482514174590620729704507824879381733534740272740588124036661240329732898888975878846130222461820741670198144930036855112503618987473612245294049528925707903542065957395570572372537284109825049820058911741406752091369067703898970492509734782604116462481027321479677308237227604928963608249372007093582438437673821044369989443515011179432658855070883889948945722888494686888780176743869654583521513632434462760168581860738968953186397173062117994586521645586295961780414822445015673545838777353575003700391750191363823017934729178768654634694040336505748321384999499703405808512098110339945558323492810619759725392974250603903681665005504489995193459632199508950029942844378898042130818037222073304237820829571704194410270398293250936030473304336903140620465991491254303765886736383248760499678343637278590091152329762766371949225035743071650485619857906160534045023161282873953856119359821104813436493781990106122641959827620765379206260036435906062591605560006276305376391470052644392365395505089079108722399514572657410347927503840486849459841598902041661401515773993353417033905515648655285756256484000811239091701070947133585335884116163915331299959447576597586842128151707938985277336941153092833367408233522412740174823119538632466392135174741831898182852765848243058450812521568681074652666266006192931941412242149200146184992939792660992165449512764593225073055947353153547227916119232183217717138569920528844056716290931182565312499377177556724166824313898754112599303133782697774526116285769640356980546495847015644349030038298268814876030888424967624635300153334915086443274339864745942754119453642242287876080557223695309715282753264676299471446666232459952728179474299086517984748536426528405900100206304440390915308189153457063082234433167254546744190438158351546538367729043364106602135575948775268311294120696263597632118326514338347356478337481518646734993128060779028552017959790696497366091206701226778896877071418422094921765409617840882513831336656620277705682630619363460339042437528620294774749093746814117666625189233950065316760529939366537684747266361487919383948776022649018921236523465458875980630246546328767551120758908720914198958513515902631136029274479976324253069950409846363281426765455717648309325139914703726202812313969506184233639141082309258891042955400189991138016017704633168453668750204246684756920377250840232879634753206170743371304017479661455232083073167818465133542067079802767166496262059394803823001710564539404218682896256150922578353776208802600827925368378498895072054537309577559145652170611535092916111237876366356446857868633401490563839532668161235643127341670602929432487657254524466084087145889833864829433459824595829205628673565442287355881634411428293091622896005994165263703210206944528321265744823355557017666996700856383345878325179457742901557960352728188255335630356274480256626437890046102980536847092651867304145109197326322229939322612504375517249336520807969752095579567408060779586260736872714254460727122097122081090462301051524253467960697546468743997320927129451179266429598429466447433204527167412387937093378326869807998256112609807923962379077941033947691616595616754155553076806207097056697412331149014689461085783325278078346472005737168550712182951941236043641211274750832844228060734212282095119169748049560428956582917559564723405814361709505370028121912505871835350643286152573205558460957921317412649689757549873312867049044925261057182103110235813409320621469913507031382946373022211167747623353962353168666166859670020729168690705003462024245717053540749865416688427223589696787315178910812601698259859319456547573246344963683392145856819748169623653241702503051399555744816386183755767326993339860699375968705045284165915140119256432682819471992923670215270058046718011093096024812061238727439898213706583174945211092146844222042910803735619224163016224810407498811223317899275728369300169795612197640119364832271697287273408580596286100130121689259686305835382971342688955973797487717875446231277867586108845217684073825920433599456141460836913444902824171369072398307363207880627768908709908406651518079861113472369740696638533522273288794135586794804233097362707834926146336564593868428511036202602858259315932080982455108054357610692282678733424867365819627876391016374978257053395559072018395420450430296640659687164857002718321663937657729963582255048052323308913423381616899454230080640193132818889663566032232323594827461852026462882478400446694682912704227587932154339958241503180254551535150364225578242237169976041383666547079855788383362811155582239857463855165096381519146849017372958978031814408666664207895898447762099491319416236327279760163550201606576755467346204096083455117487560903126837807570005452655980806672014088147879250644852819422397391718361088364779337341315117674556909039013613540718930857937809706334151694295705083830390721898720377612795727183365090060870221950654572393527410505247964512186049100876502632243316523370471961983597557864085072043486960322401999474476743155234712198027290317456978905098110282105024257224590547065712839720825432294476645770902493552230788292124408833428397014886956194382506154129689270826801045178939568143234452592757483818239079240122034476024606450302402437227533638057863551240284333367906912504987009604816033005632277819347234089492174477804665455525257663339301994710967796357937952278341595594415181549826603787762441205234526211545466880577574147197838005421751708367310930021156573914371038730695499743057156030027119746098419415727620451104129599735256129784244325079873377166225140685393177001491785143418289193770751573111753420292104690124955239939037784885924943970952884270907666740235070582040372586866848816770126770001973882252563614695442092854125137320902018074702769785789169746804774096391849317921939393927415226744065333258143534492982308621524018207166020588945803287043555199061300862510611488134917195484016836613588207661233323109381489352052816588598575942882451898679226449646905575855373510844804197734574237082956265138930189359653311784818357717930175149367429785711531811001156742496489392077738711846039088665006241231267441084855312375893666353663812426316614481258953731515848386149849956781212706977202895774176942580019024364930468004811773145325712173413665834719364927341586656928633169654533174891745344154504791372461323194595286814958311158655408129435035151949555310265782925546740047468440121567914726497850761631681747178297178481994551940162594228364294536210156993913536775022931424250377795131328511729749885322866051547502632095808680119722670453812437976039663908604811505660333397294449589765922029840237505754822446737370576313922737708865302612112764922619058088211702488381293134327552328746193953285300752687083982255300188565665884510986628770092643047433213554517032028765422412268262560837269605383040202825842491180995011632773041653095349303403819535638008940261048254054144382327069125501084107088049749495746817560957765354366066172155838867501694444938971447442748548402977374291564802801541249085338909552421718113086774280338191175633505699937652834362135612232524879395515080185728724141976820362299917530203857505047429381154719447947303912938933579644282266933222436809670213916549650741006028765696150609213446954949079260611403633350263473040434690142104774381035823529712374091037858455176627701784606964092733956965355215752938698551295118365916986745392375865776352122776039044194276741329579793702196931915310302062232047337948608117806136232601280250341429595078868018683898233265138075451081410272857062476515582988230331099979615988866104150626149221483995751288420478023787299035669488299887237230669531567009654364603790597354471450311973950783663712044785693885148081392095413260792733363137080873998627245228649325385381851737533243231018149518772856357526645766539810572371763547073201756217440226366108838866194789242740054362678867123049740654493299324683239209744024494858640736891085721042718791472941889081550650338136496980544218531671983549722192725566746273029985493499689672650838341673869353303089776666626496400163296106347200807140879415030090534703259090124023016490077193397898476955237516536245447727645842537952189678469532787977200321471657267090543050196865523896887745652947584716346196552845430873154950755757931164188189159126968953223029017354100064540370953598752141384625718402651563795757566618461544331685853010705229387619482952758937874467341229209277965336103115299293304067145474174442644298458638629418227780606479865794335349701566546836052563974805399785793012380258861522262946513829422875871136398841554586975988805969131486442369617355003481540939714515387062179477089953109052620308039764957172233883981809650821987297037042546552312617293891894392684724028646964058727728282931916299269677708745977504844434487883796406407727001282002662442582289710992467035171007458538089974258000301978793419873375898227714191807697682495477861106997070160923393714137739072371620478781467520245426757057058149866781199833847018224221734992942406869229511265912526533326282747035227675266117508656579597589308795466711709684204363419175732167375036092387741298701882372652477012512839293400536786234301418216156299703153260777093008904709803754425787254772820759420865901615446815839391475333325516919455535824047338273542752403904454646464917375309682309431497507096340282720068976457130524365702214225603155747121527776286257419363889249149511890629405283762265786588490320929505343915907698507796612136002475757242465694985675944206111345514670491462662684891058476907142255958875768493414681031733655884350628066281836528165910477895859961417713061804544187303852904824553722835127749132288432987740124748337294515157366004448073621220918654319477932323246256342437209327742301195485658195977884259345771333354300263070787116905188565016573429694630824659855518096181881721242064522133322234036613495540686875705374206759516217755930773375827242600455996128128699351852584683273465631985101565073782287465909150037418160750225197681842264055092572047929139460336320285123729598721465785127290045151105448072410476636226981858687674874077777684628063744982005444611141301815744508171496458867788259437010105216218177130165223431340684076213574852147301112374683309652639468265208269394105120443886158777153289457144995292388911986200261860259888442849154454013656315126105058467787581887394561874162952171648810714106216510993505722465927261461400770645240399868495582126473725321171750246940938224388522553670017377672036173276996580295110619629465732880187550573618153922510452925380740848746883228025098562345368439123723703964356044624016549615643479768382014215771463037965156441279388085534354498781245523426609261444689807955348612523774952087482519281649582189365941481803800929713427721698352608769211574987157451280816971561528758285292371226127194251033085533177443967930333808740649337661770619233764322071725076583178788071015999456896860873084632272174941239346490836386129379315512795286861047616478735250174220460720442528762230301257727667619961168420847148461856360605094422735564349635984065069827860221776147208328516410136012513021728228856323848007274603974463087533020461985321779852215663961789365236835904829650590611053710630451223259650813983428655424343226947110482018601298948325327777556391546946605627947369389749774413045847601138316443854183576112728104464068266184113442735721701373089721776567532231734190553132442347967092681981119047293709554955120308079079321697174963555778415515021799337913194021021570067963492744845011661886587457216908591846976108727665815087260036970275548607768772053643101121084209751682919923018062272522708098148895402345729727674796950903337735828931245844282832625255074664373150297910059313078354941914399152232352337101678068196803373958136700293116392957462574911742754269423695543387622822086062517150058966233341167409297539864714849264543295568842359359849721217910181839384624168826776294831864153895471199356271946704768901113874090207979418939940033656078077388542302307485623686539310463211151488934616587420543665882015042957377135314301875382028880111926718673774287619772574957901907700971496001024052592668028653126309368493610472814999970078893373829227205934827971023300930912752658010250482140162254015392944431690932745207472117629312991307998204075897642652985185707027517157321222818393388738588634901239049150899618773500336120143949620585627876816748527799241794724240151836290974750218443624459721760767584327333324222094279423887950519770966896747152766000170516805681563770116367081965079367204086322012600673677321340251592986878556010936333060478318389682876384476208582174246334157978546160721763891760589286956781915348168292665380769889658005476891966424575627494865413221273802547556596686559770209291996619860206025369767769613952168229762031019646025428334149341957607726437233050375005875977051049754824187429475852386187918893246335562257267401682556825468213430933413567389960945526690001586569858550085763042018842579160467632824969636598196904649800139199622709302849403199068785511099164398308166292852474728785425027139107957360404839647516288967101728831856718049178289152068192779875795180505549146551032287081766105573546180501616294395909618447321821565366748303329226466381988997351713367496943385605752171347110132747173462318606495082757729266002404790137234223485801003389562414978474657443342142055228978524463333013796571303209286300224955655181693058186791680354927054181408810792464312894486111852087904639400773999968384011691328854603529969335226101780143344245355235581552806458671806585706178375167955740614561023963179081715118837847644495675012126760031870839581046703676190886232427966724446483448324901399628555715948484971635612461527054104197746569542018076422697026235560810031842417353069269979828095406088730354885032849288761414369564666455651774190156471880750406680989532661658822526379690397074792996030755839703152489542448688693059337696395387332046247435559912306078988974985663851658168521735063078705891355672179161334944772743986514869729006329486325183875542252183101250656376877479507242107738935100699288418457563999372733540319189756477944383920864955858370317787332039624651282535664990990442784356206442186531494661882942324429602841701447479789568311850064253606140642234361380273052931830601259073149348487681683820718558082097575419083480590072646588756253500871599855098805032750865836948820741737692935588803021867119759974191274579455311463095383228239334404007369075089734855977234084541717941620043836384833482721684307065151435088014057842131855048827017422929870386449342531784466561136787513423464014825041367405038356358367244277838421150343584543988963407651183159001404935919471890759581042178495763550973833856847981836425169967993442668078570631657418720769969853040262637682338666734022495288849384158293293758686195775039141724427455751762320440692788984786886044924132262723953698231845664395042896832911182726733274436953421190948355314160938103347423579330523942265694065601292684332524926267964965420712235010476162213158518049071827041744256796209763371577607511103042200635633740623310085444049385013457036100667685836621574837156000678493043702793130820600647065006165073039134453675630216217195018001411806169797887910856536416708532340131255564744448676311413927305900655273448654613817897883215297712218129915323708025753106545594662085434591673445907475688918598173384489061404834204888473413335705394483688434219193025438449478758296251853582791222123825029560484540839921237300513530419062520862928652017058278248000327749702131167774721904544718126618017776488308728690639048229988539072815827534201954368409493035947302760190544025399821147982612997680987629799013135072140415917284615267132059503934308298212164338556895358203224078797999586648256871505895027448627471843397705521484020331850241669797121203968287456478928796853614605879291851616777028677385529884766369514652418671904617537430853063863953522103018641695527995005009599447919959122209789523455752087427348820817190766502428337657289984979112391037620563490188550345987777681226408484212648450064215219210516892183268595143764328133187079914941240098415998538451096810296729906204769566100012798522046091171420762416232224834095609002952384859683564381935219761400176096595051749697344455391918642544562359904117217431731191233576443949094530340055752795811384135884765179866508028398985983739898559674400806314491410483219914597752958648148643859889301507240741859999635100149260385120770784259215476710922193079262732866102576330582326825479475126068836218907336737679023031306439965361004686795402290976541334637382919412453585770395455335033097823778662775085324370027308691891750756489906024626337201034682960098205710622344787476068540480651781547209495528868224897923087835093605073035368130908183294451320122198745082046771808109953094713972363913590209954193637721537103218796988451768983989332717932050194137466164308720060854742827654331785096318644583278671093548137511526492384795607497543822677170388331814111837066876099508543050795143051378040419035465007801287928647948997555428331585753725282037257396926998300297095866714495281258248400208098328819433532256448102986182002127616598070535972584939799658263511013836713280745165740558311341030119896998058233980038789662560179516441995120005682065557854609044964532141479555814827817797794754971838772928566737846721398923523542501848455884523742246642402535931496574730532615176156298048887866875815643514099387309312975631574249376669978309797344634294972082984999635107553728624497763027479364119747979453975324970538035833519464490807188849351315506219519921846307879624022452783921058161947137702007060799180857731821862602648750045277029188175519916504204650222238277038596978231867311119749985161212466142526250238096507910380027247196510779485192739100519139390074198239548846106096848300630870233606476415591584391005400926072196998355699900683187993225244532780005874211426720807998156990684133743429501346826694702257971403177091324586739997407568800420639618748783653101049992228811001552186905049615289644831336703445966836485219496722423163086843022965618085763827901236919675165393138946263046720555494930805008346697357562907509094522003619976803569254777234338054016282500532998750398606868543334572845578826961235154493546868763647920178305534500685419656934581731184938482283935525977876001812947538562314815095729326716523321477856389837876043301660488143732919067790335121460935145103587967894677866959279099421000002243023324736244158657303426799887098363985483390050451005176267102849469008782166451605421180480185838772369714375132565792318223936470208279200135472865813377550282144551689504928612214402234858404952249411077774807510329713033911796115549818788221038021551900065048289985552005338061233911334300504107215328173190741324901007814435005225005367548134513020593558574237550627026308396459813604111911799670559419224558817483026290161446263176622274842590207827901257017505730357245218386780706029156928495508438254833022371345865679150890439123914835374800567356560986314327668311981630334594214449066260392797535682275566398519338153993209512957480302280041245142716758237086380626425123020011435141789822756612253616177768988081073752725899894431545029322129892249242321920296691397798621129176415503575292942159090642534615281528284934684842458390822322835980915209388958398620648453157360304317481364534049541612366237854327289007416461361333362608683498787139403244290295858920885306153979602286405816837787061073992829048512213440596603821744320303431244282037939088560531605761025216886387704341149575932021118904962531189368631071723311603906225581875632604687750660865140303022593296479462969734189780951426956361404584962992045919403331665530101084095567875640650682401684908636589850259779919401201645568590796684023726503857838067698928153744172134199397845542167012839974760778417065500472863152866700840512239981855855037940584054638083561268614694316465593793078728039614498159808531343051426334365755630571691028764389344903976927520068218913475909562430255526717103068834507562500219767220091450290727808770806243604133787523786209180002695545800294037422737585865835134438261988076683997447693369184633653110196594482121755644610087395737510361377654388855775473737374498973517110157623923951962055667739289417823231859754838341261194181586379139252950263400378584724500255838072871259914422189436653796260359511036999176944659395465677354300279643392171305429695428248879952733097246273023649629907731955036115446953333145363380082254712967823948307524423323050040746699853830826129239763973120738866053383116917880146747978694438173497237707673605654896260620664802283936344163789086898134191680770340599415838878155511542915444643203066067115709445553522597568238157305997460258244447264622223776607010725597957648897881128863663956984773314773056090819603491245601620783791672028907039607732675871712998390936547294072611977452487988600181229584018780933772047280459450132557028731384589637761717819347379877949058114106248738767331443357629699580156829995510200692721548291353599242634035701856451320961525349210151317364189101352779670955594599570779012255926262293028151410287832614198099839374281894748529162786482801574898939345755255604063806371925763132709173043912235048942630688543465674119889312014212380447555918522837338483167799264687592391880065181474266125080774531427122401706994739321731797354504827488183292897572974078083877472308354140954204591664595548371021061458220957208416318407418547388468417164170156448781084738006275245342815332811001354466516802729211260351329143647351489361298851718339998049600530463635655595625343519635933779605946048364650510084441572648337511246156953587156777012876707446614359759157094911507258698053514539523706894603537504756591881860675068659380437142908075719763335618315017926925859241340324770953043796218657968676017438615375876991258248057248104728145313090318005103013342220395349369932958151814078673087120728799216023361265787252935597773917887184269680404935967807509550874937433336721992691846228765783675212862136329301053914442930524361925291752457423416611431172071369286381158367046149663729823222814367385075812110622113358109277830852267664915913201558071814932542515046882594364879867637269682160733590800703638600924532892955029948919891225268452343517962533485612690773595129914325854582371590229725421579861083057808028825790152113553119297464454301515708180227836145986269006383517709787415666165653102159538325233272038942934998569073507162488123663349080824982660269274187857532771445637468305912430007254647609376638568463873070917156682856936019949303207476812629843803758124284288147220366185090953405773009705632069280929076815691729707850689332080028465311294648745050686298565288904590451036130212604416555365274215646687251672021315588330011359142482508560386312537923881312423992710292820620724848090363429387577488598591269010381420391608480764465625613688713081038208330868945472442549106795596571903049885796389416256126639331533058360434694624571164764488954354080012263979608166627254710197146665355511377667663142070691227034072447823822981150303928866280773694471962262835841647565451279985716428548527857223107771188278770410183038015033892287492862188671091214503119379752869054985284818070882093910740892520838022947440553603827690087901355870576777077947410094765382511008496873412726967471380847628650977791893954857481193294558611291772821790127736497007220202281807154570804962416693074153038196675658317707424236418014223482446439435342479819821422770515918138287482833940144535903202843345755044065767229940099292089133088296461064662445816876300009750833781064138211660232003093956833109466635119967203801038747059546635676115734452239445880997322698801199631709254283976564925279215960064326252700245834250178462721865609377722507254748706118700522726625902347932475073314316573174420133412667848217620793272097519149913688796811701201912251780945039930694763349966912153990176882947579628192026242248720179860896586366578749839981805080596825596587549600607557915012451696342195619642300232418706358104262952072343065779083970105494103392788345826933265007877003600065713962315835893922990908417437352957770054138865469515243678119154130756239045188163854240531787304064315743232552898671791646113909318973443544768377402760394885433290569511998712923243534306364837298154843200511943396378467961886661881231680836221395726147625725295970758293235000174092135116070526402281396192102935603317218057762661315913267801121588774057854440049589642352706306867582741346690179529014744908782668527261192160102373018471549987589504637024419458171052723871346164095197120453657073348939363662283333294935898135049158820344609383830840323986204519328436855521703776111608894402572157372253504064054818744634016775327957435354759453211578602746325929292838593039332526662508715554746981031976702299656985496842241267840595005796218578161133209749516912252419422541203805533353306542654761153981562256183863866260508579349353334885194789064111469520936317796653354089073302263175396561301898023381363889757816340412251551686131140946240572657526714352641916609147160115941278879437814650643152599978224757011245314238601743493813639270794690909980896457198473449054757135660716807426950549392294938030604943221935338127539264124938473079389550458751915440428422994001678858696849236444462822653480866662145039923324296416550746319336140743825941452582259745227121819394654032167521276474836603125353626157484912336714604101875462767712031807147033294161436597506695977939473901080187297800485728214020062646502807522852186941363469068898627565693145125701610921131342820613735414707222894208430827512054401270212872895259086964951897885941347081505012107542159371575875557952389512583432417389231798429752399059023644527224744210079131879230572731362190635928024897844270518611929390023753977160727722523969599990435378890039953978244374368684156280047993592534917982065338422079414602311447444236717231931615649480096862449438499569906710274358682555656970450650917703740859694611188387343414048383885733299971744940132336809695881952374499005125109087582595300686263689471117516653724719027588079034558655671165054770384537832996172035176192988735523307144197980068640083760910054457254622393841237110455114340408998693865978694577750519505782663110565299610740487174919643341586334769115688672311763081914455187056957415613218846033849019956554505347749662461935385588293410419128301550379500043901616492319878364395096060810197955277329276616468878918368821460655779439891575054880092902602877655633760363344006719766888091694095508097816990229415671270598639275657495020237193544317081235905719654285148255434922233208523911534966774884333719618647576040864902575445696683051925147570535364039123978306742403826876369307272398634065104826281324054334468059288486765687982351700591238689024724703048371013361294649899856097082557057886467606259814992228334081192378402679408128865048106678730365329989012129993824813604696571647828511037181377636731699960435180495069740230061025064170372829431717742904266423064473091815887283993480266234576124321898976457416899744657084395440480057611542338561427552997619756595277343331885609308352460749508104648677211039643501310766999211378602016895092814388374857654941630516744436513445309614803861989311246644947822813849939293076263049195049299799410956137708711963529899648643292850680343839753265053521766923402963438777432801996970127381612032775997066145636661673430567300674311912882182768376712123804207834416202094163207315129693310112594738298840353634626772318636471979979112243431593697217504963829831614808669113501194958101984565268885530703541247758427419863991475819137217019366204055392446676365893478080747533799292695579339690236954360124115431423630130475430989524506393888226264301233885140008355375557386534241930888322775350171925743721857497359232853655024497377181803894286165536599633689171987710346402011376661648904195966833417635365417547195514217245445897621328953068655397683315590872749853360136956657100077830490262684854959438310314881233483138783127467594522229852485879334612358272362262509314680692687560959305143507734844280083064376285878094548834457350758632585240813196940335036052430903880973982331889754818749810473852486357632981568654212024184557150347518660867266674341205003149036634732288136242783306902342459399557850845780321786446579791467000180693099337242571986476147826662701205317814988703712825805887337600541546017535849076843639517178783427753537999245154887429378700446961847683576890767468648115998077570014557919131259153734809620667836740290165679089456760677296663126499429054159980156636190605601862408532476460743924090973200386506980440488159836576528118645619725320817464168368043880550413489069450795958424512488221114019634647402952283870127594569281225787047576732474436286600289690595949510117635570252345223515802070756428101610705923306179883908022604330197853214700251479018806016443650201791209488509090793952785127240340818263036309173777333010480989904863871217387178790006549631932691468002856307196577398531544859301274100574521595598983795452552058533625955004628593814324808844839362026450701151677255830015749987399261383683214104913768984375666841317882901276157517904627575402881272450151174469510604213286282682498861458187074144164171156747960200568887740453918054827353460165448335454449776607817583966643922708453867788980589694800161389008037813378233289089066052096524954899895884354228579629985136322036548008048564064798360569784789208016295941149681986858238853147545839432990609042391618134443232468506102590530403196949044796127411552090666629790184214500382008498230876501790931443259670853099998311592751505493673037993463484686183163295596567204573585752183620075342055241370223101299792476742206551306935144450140912094450702959125820388166493622713259714004974175659133535790275479707217269818635649460400735569734772092708194706328803705153985438157151929874402902287835554826401447666168561012236484714648155286251857788490175781263044188026191081716424284706369351832614195751538439598831218662558980803218578556854019196970735592230526105508933100154760771253875582177352924122337655890429977893611989620339289837156091278619704097243406071171687663894089806599168995036614804020515273414255079277359108888572533587060991480704615663549037401279393202493606020827463047950581502234245498670331138064453847277524376644604004325106593005027372193257960339142384355060363195406876031460393090084403357488514855960630421166611167709926766368791827998910310197719239325223058279074015219464943542287558203792252353984219817113867479243708373292894790119637392415922542349332828234157787944617902928762299020071856175387805486570049095101478158095871069039538240595815879363217859227342187004261191360069582313995489397041287721716421602710455352255630965937068347596026858227825012692717186862541458985653639657936786481088733582577033273480966750557761306361089808259057081919862513855972291311116736895794697147569527861967057118617888759629538812026091656939888482621848791845411974539565236658074696313922264434092493597962805968544719698703597723446769445986744754829646977340044560203817638993712385475370950375560812389350876977173876953546882913067997840974570861677220225645621209595661070532513629352157362260196333790726523800728605069768497510809939161128303761302172622043516770323369881038924410883981668414843560128617305600716188466285331838868636009347379498795743270403515414892752128236611821672890997864087152783753554894264818846397471920924861850254659260303131546984217438245206492945335508229103060478357515659425877706736461630310929545096303035234425363605666034976794029516420281219354744663231532966972096831557585451008030726870954417511217673513768253957004509056727415990196681825981962571731800257192449031731686027117231812846162739336400465009994797225261526419975352026531617373642125157400765312043360258094829359788646804807593937825427513626043132438030065774729869105387069528448040598828818070020209081245610230463229113212516367706954766003001975550698099757852664088552766382893426380681214324573365154913729191336073209735979733604118794296482757361286022269488403958435077821965449050107313015769575984149059288705108152233638086780357917802589866025336000382582950923982800567282145581652617293083848582005064529054835914052120848491458436030388175874699861438401480508611546041735360375114115164213532009827048993563651781378684112071970688575234994995011609527388713459678529641308527135551431617819134369762934664989243311943659053889515530802848338793069052851849807053616465544932177608009957897013586693874557417388065291109037621545087133141223010506160821359624155753026075148133622756221044261261302842389021275200167918930932028941456337275636625317780095500288729862578217262202464386641561761029196744604339168770980949930040070316888161639916738102724524111292813273613601936112484620986055948655643310500375975515605495781469210271962531466859542789820389223852460156820705379472433097739870598424095611548943672855158393915746012822377595396684869437236807395172089246570592666987659215249238722020476059480786121976510703835453022425975242543544837180811603962278833702764771284742641508699113349119298851376992198735307509299610951384992048082319218299085103613440673381274507639100122226228009268552631678978924710576710206785347525206580985756252962403582409178460806946684992857965500447873975647697563117575599137742718840117181601487112469484585044988124595974370392579998226324697838786182124259813571545561033945625473932640232200092197588256967643529823051302061705051561332279747322252962688919116299306731007555270536487566627348206529433787288783657843288899618733143733667904735297566947994366648223852160240628405268495342021533058660265021007309753113135425052490961584501370503121614857503364775553979942242254408484889081344808454944691483486210910251323735058994434893158784407653490245799597794396127100035696688508917269879950664388486603691328267362243496331849126785597107490567257393185727330539776508481190026334741041343022015383269782529275577672522928590536986911979173428079417508935932407694016710182599848268729490967217355710462541661320762645727498104066866849555970858492706198790348430427468161263723172497276029215650172250563218025921983362083403557053119441254241713864441658253407984747876006538621829412249932096584127175178295199980666285769392359827985086305196573386488160940575003263833450502571823746870148608318353003864818619451376433267300616928818909212042634054010625682831150745064902446837044121666872720331136994685771761496761323548546278364436595871351646516685360158511605280357860497769896991761967428743097023860442962111824572752021000675160943417552029587397755779668828518251852952612634394414634173524064858213283504696877663521731325080024347274921075609901509535497413721514584815983201441554480074057057949177595858486277657577107574337420777603837711385868551891059247331526072878333541957074192189647416543993228872737904406876595863102820819653507301028690205013021883844245224516323409578427285868839450770858571905074395081219033375525134618042094033993816151561375349626939203990553240875059293477248570806559629412895466455277451629959227202373092860635823856844311163091574950677600227105617273614442000581427455351758885983249687561423306021645517057931922629092630196927392028669146414234623066408096450276950837972482154094311145553285385225469296952809410135598700707162975212401558079846081446340199710970894228848573867084194247887318029906662012984328726715232053892811895468824819441573556134243340122375655672631157428065813677442160789618271329287373125877857875445701239715242295187463629987213137805355760986498343834876140743995709724170540881835529729751899949171286344683326166942126079438826486085020125813939841386795649262749527384328874776121986506409751495032996176323470194509818878841904448810021022593204730336393839423236262393190353531089761794880020862519990240935062373325415540510760379745988790506127695816165771784593722932461298320870953221669068106486390586143961492759718889501457206350890930411792870772809227232896651501575509537851579040670361280906659038362112207758095395766832589779916883434717327310748778904645064646276007369967712014096310319760305257918095232631309165643325768282976925061164629532089702061861464752458862678063789503698182041127905024262608852490290939877944280000802652777627613552232290464692180638269280984204058637941865112681298891021783333259253626636020892493774184967271969186793370396353023841123554711903472145808486529494268008168586818127777740907938985797805482428984433518777625659552897848588487372318364011459361076773531420304777563286983676991834827260277190893176695159983419863964696238150578489402326403527526725486190947488006855758115814954269841654985041809182663410645869633723397595620923710349712636936732502140418258465985796431207135357989554640827469910806333380570874049736216089251397934616874963007746696390284842920047950667549694514535062169602940102215763540032134611015784362298755038797962230856818259565054768387010748142367824179439850869774678932376786789415168278043316119659650222814254928358781681731995445944808146504900544249003844437024051486585722351050521907842602228172118838198240244140157240684903241217324455823854037607994800416322103623730900583512827321637131145113251210174118528219942591937820491330303229841302405095931617437839412894994133638810252188794815241646651147077142550782278647479272688200997226609590688280418045351896905358170409857442273004161272234879423233697639381001264693609140684414223775254128389727565423841367624428010602494547804458637519605363842895883834556512044635642394870199473127609983567150819367741993009240108438235963252958588237073794998335276962102237736478393402449569079236764794291776232443347494254873463508746988226628884567512381672293177348731686145021202232524457305949921606744959770414422134218926245659132014743037278070142100647162226436631018602941337202761666264736445114065855982684331015298962922297110268277242714090993287960278522162039848236810096666877297026968437942588448110243324969992067033080119979956615203738359768452840179991943610063369718988935652250990928468747580860042099990205050935753534596767372726006011410814662845821642718149762484548299008980820699368774710495773721039965577252566059711146592191087446142894570060183567133997428343409717650351523746591222155616440927337144950358670340360860114748852577726781416824725750200216820070982427809829374607274979404444273665676470716623000533738178900158920328204485886423979900660123179951413997044643129308827400165013650525013922331545065055481571347588226854093149207367036680714204808553800777646643291874841273549314229723742342602841207153416321100978495313994563280612919162552929697177701561264499483090221621065111697599452071119207770627879515306519131327797650345698944280599078621279629177055653576895557435600837327876149827927197097592399016466550558760706243970161914712351265985269286987997176085691155881520060944399067868110164968271006444805250332317002061738094513809793321080995503154117737021503713402611210201027809855983410463470276023788389475023392574157445421715031249260167778381411246234915643743867717816050374751647418716130525277004357588709765241432712501552101472102769814163432459775981509278267382855806495401460854174851502411177332197499253077341247978049835239392208094457537012036880625335657981813803198655188515354590343102409943255693471614304172440274689940961678579798555645109720646133951693898778694533032607958540537515958742242928174350494366204920750926762390460820241965815442331101126624806783716427919031183469158724628605413710578996882793490567202237934670851990334846011695481243824354328007284959017026032691762575657939978618197311855565694106041737919989680638601978157832624306420756882014597167644874317764522653521553754562360687909692408147124775057497760665400437532943031512108036291419712677502128590353238894025169874084307227813661465079450819971242741572231373048921464184312814705371205952695890214628998340820751075715760640696827230884739306415950642923197920824369298931369643379284364272929118381332140559931099193625436542178671131349305037638217103969827575936501371530758047059950037410315229809859552813268079975218816160531109128261423655936368460227212102201531891220223095423490516654933564839819873392472734774334993283793375350397871807462847730906538692292100872346750253186477368974703492088772554244703487577683602884160113143743695419676084625935651801238756959871447933941871442974481528907723861406783257463908612462288425761296860704997498820866454108498324098177222153209563897745368207832286562489553925406929379040104093927101218118600446888298639078955561190872295554176837176197702340539736033913473680898752752446183019900987896354034794083497424300647159118726683034604855764041080516395773006534950324140269908357535597300340236129715762384924870751975637608450620530161903996703338950543528071067630008188299140960735035532114519914414653137191196368227175712843844075418999255095320111518393466502761439962244045089284728296427534877412712341196179012846201694273308024077405359067222370055738307527233152688301240955487629698399123215164524184611566674212883485966851735108019422959817209821593123261105299674483752603652631295611605787304678398103514154020228729606560834718568230430948930253268879874317968344625003175356922366039389559817401873969672550299352922538031269791159674973009233224775842604988605712900751178162442070117074220626002110902001441555043598680682031022707173695466607802044121654037935893910552358018726096429631618880577009790768557585284531826104898801512168251793473299773987084823664586839698713222164827711641804101311657128358992312325117034047057768715067503768564678146140430356571045024408945688639157041682951060865062889330918334724153438247276957927187869063627218454691926255413155145249895991803342332465559058187016627364640789993334271386868870753835920708640072301101662916839349375759473366617396036439786307524907202871029407327340475603919415880579334213899301711090803524831001730329097735025691029489212524230676151964605042892476443128279448230284884868802210005601990519344523413410555015069777841249453089175761586177244760829701178481482025204594436094281977611315516362890021244618381462840675834560947422719011876658990851758348936693987904378715790744628227095537289473548647424187363498314034101840220032322962752249110610895397135959996652732810971730045958754131959377866686488389882513638377365982990932356895803764712160692802628636698076270597978843467167272122274894929492346776447111496940279547741027530022773045515359409280199120007430705434209303681601894361968153768521314769025189122894254929358761140477384604128059731308796436226091564329111353091103406249036477464175595983540133199039500084206420184025221271456058055498730213181080112930806862989987128933967640472581885934030400395864609770137029668875190786772605203496637164312977380401906834235704888097508370319797344309474452280321093596318585961470750265759988024204859541649126928884999531045466537388035721063674428755814714171173970252688999291589274182821347996301198161799796397554138804675627009049772401433692799442356853856490634313165387908369086671175622813965002505007322055854795029349305544949021112946489656097888026916033332539379781715176336767654868464605763602458697622689790472015811634240304836888141386065955216497290521118976968527704125443485257634816341366165808679332428557032855352289948126084150597367214327233465092893618943538942012540890001291846049598382798654571396961756205581548032203909927807263597666705457772036841060467460729999954567243394067013077012712685925034337696170328796210793706432680431176382727606760613182861793448166477332937627929862744762718824089307281498192382300550977392047203708246937991906111824341864226444389151608943835346589621027944305257853657365211593022867729975625460434914197001619357764978163335688596136784358886257366495938874981515536983524977102876467704909423603800780352818539527485768924603882764713420750142091242595588299071846042017883691043063254899575832658754527670582918042326720708985325062049799780505223713324897736301929583306158384089172464781290293732699139629009070054324464667022377467330644129293418727454167547199970573657456433759064080827520459897393433329849431678829978570596889255619685657644552459099181631780015340001329145128393390758764113830764339062433436800582405045194558675354681168998131308018216805302483626179761074813187261409273539301621534725659549654775822320953221305845028301088343881518740193911732494147245518449412673243849424849266602686396729360369790957395318298609100976714119577457538722968730673968275316626959548196171623222556063187869701289703852739693527461604529077444031543071383239636397915603718430197434301854346976608343873648839164373594053442012038574488568263279961812306166159858044869703843841059839766382065197489485120389167070199234152972038860728728661337440119184429742486650115652624021298521868561342039292101379164040957504442444173271451945511472456948251013765973096777585340649794289268753816966202404884702394705926088772649801486883548676710188159419851440861461920305579473546869507953933899245512225899342627629891963667896624797903817469036574768263482214609428176626588562538018290495548402136132294846955228931747977404554686787324115508750468687437256364072393663400741585258789896318092053090367704750612880238636576891741014981411219021642169105133642343415133183455434162120270122600368794113586345166806582205438185513882626571352427418227821847539954621318557210128211006902855573133629247939931695638945659367995507831407847339343474012181387762490644585045565611409640394442364158824644674578672530828933201595979818008653666585363282304178353673035080862041986502742217057804314984316379649301337562012586828498019178109098102622874369129686936345242729272817895235835558534275562445422118813332080203206336806813122257133079525921157395589793352122466770280530855965354862234556495268450086483274329478426240502727541868502660878383840593442578689157461193978288017825137401480988323019583953977217296442378865836891626107941371768296212926511373673732176879689593233194150487495357216143817074354364920772404496298197828036192567559662298234186384540526596054908329037816000050810543449087130902681212960408233714310188272791655059106429883996651363301650502520783337043696980776756890381493549600692324250243267189504468247311758923529510300373043776662817908887124462815146810261347330605858569794872689220398113411694525780193862669717719637644574425316088604617865120722210343371474771522647852046235274707580531141113123988097611618866855109337224677277521321184277014819940188071809283702461900640365797004514064108476782496170610127880300855846894023009350936877937864671030583952178533706751508758881882868311391240296373598240804191277040312620645642837214110360612231512890582316776650058474854180947068374256894587426463382018463577206943920732871518392666101998004007217908227702303855255616449092180190173386839346610933196275107771093198274769029269018454014463080653563429680809485305754575226663026414541941828640617097313134943143368623207152258041343085939011550848443203132389726845210542344206336980636477261885694715872665454901143450694841374127799031647143669006566390643258239772064681479206712468693592972523210853835979532376297402623966457849750325878012359877208818296464058192456945215118013295542305395555228614161965668884263175316548334595362645035679814076476792567095498610574269050458666697815265519844533654834662546156854031265467210156732929581989542820489204572806123305252388154148365638555094254574374255041544503433562985872310070535077943146860512393138301065509579503596853630075051343056386070054978237398433109897970229936057065158388372225279394675399255776145859134977139969153071050674006959833005228336224852080726386803459749897647919060040214963452978035678828337129083156248239348647911724235440729742250506224854994602651587576876535849275711645518133907867953200752173824993361380194533113149256600252253204131038565938544275755802395501287019994304195384437666416882200979086149205392352701223747644617103490716800774349397566243031665459355623580472158695181403446069412450484584939317075727308375992489863190688272809475874994927668740134740133283956445207223777998438421796837543255389370551522362396795046806296361140114294398581316293111333675305455216136371139420116127386772849169128551339652636183698812216939432037741576360115706838804147877253486927718228721467748777174633284883157197595450804797655516553276730810369594992998353340939455817595315694319464073242542474553473242330889748178243844952443243747653942854847794739751450400124255635784374232983833606623590739118384899727369553297795492529403345121748378441480181307583148510714709456875918698864823467662819798368231449974947414989549118437582643570783641686062613695736465288472857960377553991479336066247117973120767197849315610006673615860190623880204395217577846776392515515705333782415716451873890721872675992095419151944311292936211986791586257340746641519806470763842324627336038490073813270050092296101733926395844967045730319127260161032771938903633242909787746883029870588177655447714092042198449428958761603385447998942365133305606235328695712783756571791542455080460852511605266882714047411232659177092347600170932703247118792265738545747019966726360741270072332855337209923436728187846884267233527405773841245662394484752404810202415247928620266508277848716869061294919683586121541387111013427525806463263904497441738697082482680110257070327218229898174542883478498255554632135530761575093249339383162838650165440194255525427182176997989914047097224573720436203323059096417782391677550635640854169151966403608373495786381945435398234472534288340013686257730683343127224985455407648961972594466473013978444688371756226482351308148498124047770051437349580107815153063850642100458057249975407873635172458253181373711902027094755671595520295576688754780028028980456523875230428199557744101867517961195390194579376560044829797669708546510811946138669721839155292247357788433787440808527815353289316278274460111037548832631175377026327224216991297572181865074733708209746509019019276771106782266962856365902843964219270461880048548603225180064182965432365240909177095758649287659283441384321330595819717482173047905723177801041342898315954572869315565470297276394260563186527081118420884914887792688788182766611404610465845529567745327162385067436548929638364280900419130655682988733527599137408498246369335566512274091639483659923769520516537821852972319259000585040014861311721623152361526804734433723267673797548965094484075451371880668806052575735235346913785183640504941740217750164032791366158291749130667910030602941006713003949762345268388335900616308780960742563835661216093635284426028137996222859423773704029427737672616750442751822724178869963643877819368768039658437968407391163361268179554433502151335313170904916751817308591303653486067696523049409736364398880180105150270080652994662155345054618723381448393407586282219383508312751673167857222123880216609845340763016468288293552521843660381308551270824127709185452768597720722105389732482013056164331406812398855377036675263928288249686372346423239320057538046947239561154005402537862063212193070630504612133793122391940045501993312310507401161857840498213349105461899576019182116055733391274251667104001116094798432079617164150697730812741749973507100305985834433388191393906236370931899044726033122371701338110503479098944532751675459168389272459451539962314879168316702991336750703198547078713162385449524356062489697947621377163683192486329963663605894453667894432122205690819058132565696991209970226507172283670658286215621658280485479531013507956462533288016563903214222625293492005800887255745419143899553502683822980467297022057622111995372835236554099080666972355867151569732181306216082516011071312339029171959609755457438964961465290458665856713468072213008140079100310331393555494024669970946239100924605836149116816180413710284250007343885545813275660175977946731236034300618852407031745696657245087968543904913776998424107587593948015314483756082312093386251967582964883891430400119281656089259404112894258195530365196853108936857776892962892324034753060228813266569185579365999704970873858011945783997371761944210244358295020002282741076841449233087990374625823161926056060694131023026497131230968900246393510399566407240348107666300321573345410761033835747030178852823411716681480019138415397032530478060255376520402284924147091345025475361064406772029393035341298167566769637649128840830526759123449838656585110453214481855674316969431787640739666472680182799098471924519878358254328103502762656570406370548345501547493888841755231105095590465261500642556552834416196789934087697816544191232458601262423948478463571151842888296347472831907449869028769963739252756183127375883832397165003759283550087012841053322747795548311770166003516594197558753180825572755768172878125662760480354331536425100990648159281839964959231592835854257090093645520081910461302531297833226666940098259861853929590345343842608080227695864024270550083532394026006501830466510428462731141523761375699671323739395599696901075820033531026146879964326342235981898688508532611718270613598467089825369472402257123284429660022692823903979912081070604065705069236060559667952834724387405412712744364806593182500302616930104512505354105757436575719215027248559321177200238796708591040508831929631454753672463012860297753777655037907437701513317381208934103215985017073882522859546172434581627711542783226864291979181590065279469686118895724469485798583101893464116192468280309863488350405461006379301224420402323024234512415393175273053779402604086431065951477691348355196957860545310396765583322798873371009348976006723215518994258464273800642075503362517182370544398727471715859526725007142987529138627479353318336606681826678686812593145811205595175824052035671650444000711184183281166146250306052471688874933984140004945868803808818725467494284396454834576007437888569009469088201376705649239942177193202725094187429343221173432222702689322855719623256993626382205569213034179673559270066920784122054669300443893787099139590532081463479699205816391478787480557727381717719484739534797182328996483723061881179925296160879730393645950025382069837083694154954296225100892350739103816252035859180913069731245905364956599900879084715116571843795836819176048478503756209678845872164855637537959118036330711269268784596762588627733002059247647317427174487308488088878118345009061326910710781209090801403237841508267141619144828170724460295490806308397097038529203958185995029973670231894637101801175096105445744453038613122767162354415922118575379251030643891814119644618453857566920442302531731787373038080213392343320119014894843595053260744027406539338880091819385650279894370436012457962723461421620786715037717645829818323173017082423015851624685785342419341563247400437342524643646150096081339956857796476704885234066579213498172806864151783234086228540885117179845904183770779926475550373934629117208860989339149254639201206851777492060089780702743553953759280608033310691181129882154509115921250781180407541007764068995716048873488206738514323199959676992035241766750363461835343572213338876756152761313545592247518026490609066044696162544236664502401041612543153788094307341515025826521354957595587352651868696277425228024595220843961886141362574754036566079286890513957426653221225398654935345712661652106217882872448603304586179061862012012990776810390237743106123636115883276481198352494123145174174561703576357214622007949417204537138990969105293267297719816083730866252820681134873633035841859593460948750695692198485977407153244868878843615687363601770860092866695700235917549294102038828846576612792042416421152414611007766585440660927548749579871504675781395116771953792777224163269991601634335052780606251851216715896657145110781116366713774182092816512225169347192662203107201064364158266285818249902764053863428487516299275495813758329069143698519234209560432333416032742778771827189266212957979566826629832229801973018113915809679960288998597044540372529648091505378436314445831171966649065679253173706195066947281037364010089406176271734740127809626997343150407210169774894425879003912655112280594427722027293585164450609862122874120774582041933521008447637611667699106079997338906083248339736085748758504743705344102040824498746706663519956216370280255409204508211044075371971940488291451908430414271629994020784689483907339818845723806978670763481082051521423107089630695011830146505818828007632948988695564777242502713261826362468656556556421839482656397996147296305973201701157896037746198955208468745698976870023922205486243167747709378024676899788473455387581350368975477412114074659417017927284526885593584660268834133881008743091781456199899612864578098074170903461784775934752940398224166218293506027517330053586163245186498743488555463218657698206545056994984895986012468517736203479653009055292283737866649503449214512444145824750203323412796437569288099933414253096992787684348356429753143269667695109619078249297639621639208113728788161369155249448825355486440700420883348716337511977818201842768586187152764186397287305154012804726459690195681445667751295746882235839220420026652955804327583093916880361596269911416545276890119814125927092511692068960782044263432688055927030631317637493842208035533648549457916438842192064267707135523472719022742621354537972595158147133462875912777036537279112283409637325998145425438772975157898268189618658405927049401730508911106095978259762378053467395187279818253036581837495057029698566491829493079292475307754472765603788307632135086905389970729247654544222081098144319779864147717746757156617319039286864753040955660033767949518448961045561085381739381940168802066780709841303699432216232557931186426314673959725949424332393366922971314132277488029226061513650090946831053851666853854065949184489859377655270961668630096322297937958860035596766641376974582353789658143852430848642792508878840333356474948829964199598578181370222967043361933913994863847479946724963112616346711141882899919582271567260947421066395036736953360481609429611930717512525836362743880900673165259591818674121934048337830534104841003723207239460701266494853300709107160657202446556258248509518053508103890816013219042698447463789884771247563339705700131009401343725810478405820241918710104584122004271029001512907333508482341738794055220570328543186066500831581393846808569971076003439026411908023880598126620418080963328383838048272112325098252595031414765091283814863159541295742012631357854861451717641699401496085802566128627762134143298733289431070656366002519132283756055084023595073432582263148632430242803683859871755257309887163342603430943684252480993973815565369336250952468601719852079545729265014188997957776996907135049569367030939420110268761492265951188884361667003805715140745384384295127370785039178486046244284854085555128684715071257196528863902524269166302011513230128651523002484100986933206408826531943658813706318156144958861539135989985386057467526261091507484233738091771016162959655336582183221125979516930082392787673539409542831900199960308083781310530796460438766939967071801186742060362150162598801510627980172534500831493671818918119145163288550434065686089484401452625221998539584976694574463971568600845287214287209479874277760915333269678137547747610018855150763864722887887468124233697645765679432223714301625858085146925903125084404552695646145925421779568562192012980665480979578773178892993455767274722329714014951149320720258681417589598625519439589172973759359951165376734765583241003442288470747354487729520713385440868138629620379841278152081188629585249844189514398775495287166802463721721641935471676335058052856969527802062473067407657404398697181622024952706209549483139845533317042462425760468980946342283376975584241880698706211419534017099192131811456934054519326484348170313333053544400876211878345205611503789800807037928304974026728291315667185306843411107457735395440651000393985556813672946383727868427584789266520086216929869831429203225095279404455305898879587201569870108660300759301483329633765676581615018766410963045142939812876539450563980059513342405477412291982591309736642346684770587978154996854023449210610038004503159195434379342013044751859191571180497469500831237221169774197914267706821241074001771405605659172969973113837389594208587535901759239526170270724622101797037178703007486605670077948238867737539882494377376779924025617213995593385108859993351103471221976882511052983364006593296185191369085092323592748884280439976306014114430372876655563483613438313965598508450757003607956570205827411715549693913877838755736616567711179526423062608021478631012241276437652601976180221746290405834606498830595663894303184439928849627441732178081925675423210471154274636052436514488501165810612794072936734362120354274698005199658819464497938118848815972529024945623836130965611259906892469497033402594255745334659133049409567655937979358446790458970797270568882162239086172831742697031148102203991717509083362240112289927788142253585173245991587633345448175339187859063913240084423519036266783490784921915112873091431103995210920708113433922381809366193764598771718341184018727093088595744064143990551879958576429507209339296365521774994519934227392914512216691697549485274020238029274737088707053346450910154284876226298095681610025316457904898208745094002216334236661064372731425163050048912968941750309858946144678435449638740699048972534212623595763540896581000069524002127197072253223463567764747293956812930562526279207188872681678875565628252828076148379724490623880328357739855289685447120898522409166518398162364693665056510675055806393999989383814523191914133642214545249111218588086183717536456003333247778314374348710100527287181078321865456671567721147836011175863967379548741620943735784488198820380954450334029391344346276797841965450330669235343100256099744509853430251006740764181769931622863865715699744495932204925071192530736735719761484038149248878167250389456737114141800090880420613747627661890011350514505502001032181522483664812617466694494551202562096115113601947480965739017380400873127876183349306838748246701830490453942892204036520581998972159349890298861807548949519818223253932612209636146019140807915380106547959584488306077880940253646645265184215687282913933438134199437458389539878971880332789384748003994508528610024654594637180827430231738779734425337884058018006203688544533395014183162892955650881136012413512814774937657697674253528057604201091819892890086926825620887527723465301696111103140277893131209168682499649863549134353052422272837785427399676434543423619040123516296903771873097349645944132462627846453372305476623130908342515477323268230734744059391803381621970200545641304893541324631420123238747195397019280925961891771452046528526181654983139530362073337700649790595715748846168999678196970054872758332706577397683599030679427672541639213986292486818664838016777658992151990815532888991809946182759186835370934507363409202821004888471922312705254430305853673485970886078784960104208770562580276983530406014296115423507146722209915516552728014520314321908907872910586419045094888556475668912245974071999357753311587470370942228408412177367368766013573591954244377264051073947239693438890270005496728965399312415145457990496802124408826458611896105396878375041072463648880066858564809230294956288293361963946130380901892896601425264054954414234950009903652494866238407241186940652330044038292618935257068055823430079701884771360030489890309143601610324622102303125528582356276049789248557043336199452155328231205119640617362359464797941658781518383878768972891587577429100180632631793306413632282005684447956294237543039103956883648679094602961753849334119421610679508523021106902555263563752774674684925356489703985703314202154538388480014255413951843670247713677132877547322345296294817255551120847600920578681642823556012731251068605868692539708504229510411290827713869953771253872086997049046151559802544425527009771564888138498091298480739442596780016829130190615495235757997029819764141614396338522899631888647924909745904302110417488259550570198291936838720539713809810370580048754485602902848805222490641404365973663200571676378646226310417198160828451602134249584555303350763590587769307467347975315516594299031771119269269505067635411745704211480880264824931414310314088684673395087894590412794207257144489390863366051744218013093679583727540246588545407452195101981462129819847361761621710831710521012482779647786518051016837901888974707906237864949938133469160486154922521755106939699222052756236791543092591717338220971690616553936972825096503648167240942950527630767064448423241877975267506221411590662502942888761738397942978836585501717249955470493013386501567830331223330082254885730140181697460864939645280962036649883943923973621467084921008509059110381523677055448616545701970243710368005089792163305208917163236945106517279961271757678217799326386674194254262822390541241619209457791691975592589308844628761241555243746683769830102355600040285690097754795996426802363663168261771949630720196716519558934212988211234928907130409339711369522122323582273985766357905593700792089294941596083125724960196535443078488157660001027668610833266360810909492802623064282069660227270237981093817548454247783317748186575012278519594081395714972176881043379346551053060979061575143265059027543359947346314741141910145998709887467474569957827037024412678344977867135581381406925353943742902950503858272043070650235842873033393854648268539503318295197312213156875398776573872238870729876045005924104878402910516363248622097115370251054867359816678367610197731278779170199374611354015586777267338245484810951820193845350177677472311975637407921195543792586336297594486754325215501637457068019899929132556792883460271590147595867827093076498798236759232062207027767476296703091176796372525194960749586638357566648787012866914288611799809941922345815832981732848917122526047668340410673030208671867285307634870570950784421369563174098356920131469100113759180856270578023285951903201286058758633710898091806450321929826600071727112798676650356535363283654123949701527528307250593855568188914158205915276945459735285366122808877158405164550483316682659665373751911031073926655717057571353461740163186626429985974877545192390156759481447566044806342497147826144154765743556315097080746461519128422445988035894863777102606601092414490109183855585781852229163280963684391332980845305364598633343073707945900203076563936712764137159675463746791457328214713503772264648521319927734963613316524718921386382357508216256423772411794582335470761950625547424247153724744835755828858913823121232283399634001223672629248099368180836951988208649102538610641643954437561276980837116935635985068866716910436801463123801500713369073952307412363092634493817492626280454707087876042640825534073005867338107932201847754849603030504751640742894405959764809752365459723333506604899546860488615812028205872389348772681226936032999699451641752406868577183690151881904767034895775942938628866955728021596064823199852396804155237648337242536699385142457640104095409896971522407213341016505613062413579850568807944850727319410481214456993379299418394882570283612881573317802242246372820335456164292119197701746321177337951097528394610552024355444404181338615593662039926995686782879100634781526315884237481177185037921833391290463844976431472740042189362974498903220365169823014902305729667602313289401169584326401760345891424517089165319718657853352762779632274594103802657098690673912236344450657299293952784534321435116271815482661433933524502537488890700701054078358332527703262983139645256059811005163024343929595059830600741847422223512038626438663376958695972573887870833731482840018510873790317612596578605332507489115358037377720659490512626642510016448545473439180850617447241848615405170863819879546968432738775969145214794573557400053138737140904034505340985036382323263101798235569729414574320528583310995273225941900664061669187970622160002787220583918596824371166491362065295007465856609657567306020028004204715819847404473802666714879536302457218957128063716081555364412845639545817694525376961834749087899887273402601221310147882113843709144978543333251863518200313023009018589329277959792999437589753348143706316108359109127725849904146675530215143510617415275172705843600974643198188893436381840478133980105834323658279574524061584100523705907700243175478405689951483999562640335215264330030191873986887598134912881002359342552292006200361654823986140516901232675238886579224239337923759753237311649279035910136849966923149054692870490041813295087504927718532501689931140360937120660429407915059630109585124975525434486084352229817931708125039166912417972758360155759771509182976175642148623360425517062190335657552588862133559192526145980287000679618952300340483103439429056048076078780061820892428082122777122651919176555354716709056603558904264372148185283372829647142016858017347327355225620568078316973755776995115755831965470820933785588187446208651251420786491823664338308318637590107708271897835716226548484178077433829625638662406883410789401551258763107705531933745124268289135421926985473339697931131416099491576058778919345090828940307759787750846263478737108686314717676214364805828683643244194981104602052879555828737646695261525822500606249671668393264725642367123662009326645392156299288915501134990114635757851798036733841883230216921525895891628787457311583792540256776081493690045399327770407276696204054099788986993573449105862819655316260222904949304640496980071359422603140722595099302469125879942027766951588658415461129879536764424662832830685545639540197731506462720023256874334949235158862612348223411256574875372576702221789418130994979718193236621295963398792864101673588753796480448286294957965720577997705779749767907600537053811949140144084357829612824453754143158770862506034620685977000936082650915849690313573160051286657624609403501782970174237465238876189420817977101216749259375606385461679172694486092974677083641938331551835533023470845297866602286326157485637075748780120586548088574164828441162504055425710406577068083712011166071457849434846249544222079884733372435859069373353084651797830347958791305450773860016768283751443485090822227621291537124303646373964645462696317169913650941941798323825619123000091632460148279900936931536485133159428511966400259725706716793441051335719182032105659709993272439802954894220552771978596793880842432269330519719251332629511034319070673276247061405582521187997422782004686008729146147467820041328350807517290045430528447194651475159210039261213414493925856565166566117512473784821534309447727112364665745382765077017267533993734649400113712399498169608671117120029599145590584259111189840559145863761135198802079239495691664471593399982644457909743048005791774615819273823406543012684173276496999557178237669959861064978798418594602734616490959605309280585113535298503752525816568616132364953868065923462636716831342245717210166221634702773965080870806230642192121331680379075345008569853350122045798441230015933227358028939000817585037526529263395186420806336947903193660331596519371595040906705699333414598868658585358635189234193841622425061029820809158100427880805630371526371678306246729144583732259053012905550060931829377264357514326375434904452731543483735092651368330751943979254026294069322170965310915826076702661892719431312435977478262007619157847982567220895029457942550472254798971589014116905505452949377509828084235046730832881073467755539066533174776076038699850244952392807934755677563697352937066884701554463531304963076806640952450771320802054534875812778858777982400668283701953787924422762179461869465092301245754106963619548885190755463299313832971903752859014935769886485876732636246029892779569559291611939306345726644475307002755489713971301189048636108840816309638945888317164178353489573008425095817138480992441377578180577692438229103339149808710032788425077336968436363882068735611634792729975629847537759129216133323501118134221236367231226336647216787112398203131889272690609037607856929549811424490807667253014902449683540861402939176033109326266638937952662196589646760174451441991401980649965583092482931244983614323916028047519617404129976241853285220009883663305937036150515194088132279778146319707519564491004828936904184144362684620665325388600144591285337335771327013051705136213142114841722344142587923642795045497343322530934529046647966127707082976511091529560269851589316496650452506142169002703242854050008666450344617963923812152764328831502351773999798714968991740604651691027970643076760806040317417639448708980706800619735401498393379899524550553234545274000295589638529271104599792247283588121385412745297636598608246553650685568821861106924704573254903459303801243228047765414603217724023737327765049760563116810157598011880440247984489917511446437143487338004545172164744503565780031706198248206670689646455036072282108844417675953464640266877318469607033737323475687337185112455040311942415247714257338035787297534108247564066747531483479688778557443510952136515212007516760456644797870519843362710601302720081597854239853664080195090895463805481012813186558890173721406706151272062505589344513845743827285118879347464793018373795842926045705720698883095347965298364822946465824165659119970794155617946489686873345900600611882940936802948632357997310359304049187351411179365478847310853554522649247463967145314456028354172779830053087246183663010859942771252835294284739839924287293875043081300224315227376805319554435149105998583918437246729623040485538709127395854165993083122578675054543427367249447584764810303847493162566261361388410962588102108056538270819899419452345276064142446953045553494023138891006881745878500622323906979651747294228442030533839952025193855605791104378236900061289181766793405072664155993109955828656586806142231990381915995671494575577233684563038735077952573588437834565800786421567959567896727974709983823774266377521126399674307482550577337092453378486751870687435339100802683567940463545642904541988364439442918212170433252615457719002941007390956778055314077482676721105290044681020533005844281209963293950188137014048637292134349984766970614250522731991059854482376883273986765748827210290114975601493119946283603797740124694460494030297132187781393922662924822632225930702282063195861979085974370162789997951683729229804703356670239015661202809038616166595616821902290417895873436926858760914067546517864156338880787220291675164936350471472744373511256076335690177780890759196424842775371872398204787667176644454481329053768569971925351405426533064354508930068827847883138379996830119860662054226335716065820128819080378916782658443335015150399080580972443692290971474792131818178481177826820729248537272891214895995414275329782271564603761289075384785124246905907957447000020642586982606390893902837224080306341176724118966344274609896524572685427864514413384325401814272233972994470618964054792643889524209875805978522275097437823893159239060430240072408482163485946747277970067138467591235507918087105439141139412179040782517407022999509708102376478362293623307155539152042235538414493946955732458240814114215622074515897397014362822434977283411555612983050986052630825581643931641076157880715957159779517594881641901558104063398204142008340247769964203381169792244525903004423868509155740421685559810291769359126245716516999667617627033651982052244395532717860310410333602003469555247439008320474677702867909740041752348774340774644977390972610083210166073578594696521080814643486793510267252196629526904514740868616887805194071475975213167676596281527534368898320075772798533858532990533104701693594320333337705604509127373625406738862086515791318866423659401174705728947467367944448197417782147595069096437622342146175845534056382238076096388387491120089678623568890337946089264584204843391138841298956085611343138410902942550380469081128938754671851705759129922063828760057450842822733262526388475523513012454960790338746808572498754144560446770957136993171490842995409187102432733591542990166159334781242642869288642444348739973632118860612166914733276937331405329449420148014522596414859883062979083368886874419935612890731348444991287537656774671933756778447348578153761471564637337501518858908525637223401493165971269652929123875602239037821874316215189740112286168201165141383417308242683619810001595073686772676525063870049467927982786027486826542452984114746945339872719636779208386209586822820896229603110420473047543335048070892338492832510407644177667268556412526482839185938766031227117909964897621598976534158006728858164380530188023618790166062770332304964842621727413902366729867053332653158282973956904568160509416722785539184096433405176920145127933664556958169466841848897518735844637104194093590988159723071506432278118716928836786978385253707435218614032938365264868166509729088718603736504954489111409263820933631318017201394056037643360065300099926277821782188932329151597039639805374425102684400243511440869000928966434872291684625684782397561636157032964844050359263868245562103972937177640379522419948380774826573234847940361659794389476359641635768294978798079090241987298533671198268840475145886708998807883958243559044327676020628640740321232164777533947547662591588943685750778517779345177109752435212416471093801111896962360540912584822436335321782539185898144499665112329645072646320027904466512928626435429429918452524060717168690683247506918614461348101480199194267457262515279429179025210683746397746769728985055508913242445098847429253783464830628362691022028450525717566619366745069655869836551906166872513344791371808722994010461146558624837584103026296191962933480099173716377518603069310681491610521238369661796882551101149835024046209568302093407435605439688204785788873570608247383468670402890783823927860520387917664523526562890665957240772585764748900204232163188613616802478882302069270872036987963608619616126836899037669686208952143633030973892433608587237962517977193942348437782353268136671722661046125265202641182754080362691000410776236361755769738573456872089611662948744604781752941235783745473472591119937843132948171159723619835693442825698175966135064114225823005656949606034790058859080207793610614071205153545984076375772955494653224473561731547544460301799742594569596368017658608184550428422893575504321543857454263894207994231016181659366783182836641413872503400831910460194052892921751189742449817862593508069499040969852197595371684231271365435680750266542457806126712324808028304564925200096839970582020577915040138474252421579482066018674503893834129968858324134793505545580408220459199588811107638781011234739204218406298494830634679666763721975181455170846679077215815072587904272160687837792713356970476193556215111734740888347267567095441462119351529170699682880116644867909633427124494901493121481784967347181921658700616783004946780253254125368911640019010550967873320287868246834841758085874161476638609588103347401976821094501650627014226917549417647815641850494870134524035341962295551544690417120539969018169484199723583976064616390581059045282357697100010663053503467404628141491966309946077433764936814969462321469424986049350669676053177395785802815511691468553155697411181825876049381586109277692817818074946125934140011785301883147975244196572458643892896794919439539124095382036320657124776393468388923945833488250104253202477204156561891800848629452610750298746224192506325737177946098584017921891697852620614171091456062611676899146658428874795654102387009377123626431665893051892248046673751558039697573637617342944986087109646309875812803807776857872912184140541721257825632750277261148230008531470010919489481255659879484100638649849776407512485322579839521268976389096938978750752648672524391700689954358417814595287083419514620995680328946816541539950472966893444241429259888820702650894991278363694301721864146998245594754190910752826911136605997802971465022364273920630917463393346886458469003725269255258721872695936778302002407107114168579985094587660307741506055870745339679902591768026916699976314161121081268436697720555206631410609289871297452965819329250340701242641960065892912513724190521963846519591215076803058766239767658392164435298881389048575398482410996370383980468270454074760363563191508363089886423669254311354822556466542183955116329914798470364666859164461248533442473503178469646165481149371067296015950100275883771303844069899586912320342055987734363286179356034857378852935890358923815810799792232089923118648854911543057330250868950720628033224012562992577824301917768970513583433473721018427339010529057485484221183542780377256766090457949858412480033480528647491544005593977269778455641600514307316533331773397957759058494646524507448413716494872028034113976870931068253238093176703675036056164552646654814351548664338404371952125236180239304371809538950477871116751668061151034346500106343658513974206012800293577132578017353670601529840477557464449683064163035115712240159604753692584357777013132150145982224305792547334461870459329118167617038715439314523514584955261780603022625478691990876385139247240601087595058349001015390962051996187400800094486498597371137185090082643150287003475793399748281380752584274995521192995384617779199433309168150926717303281921134176329045492303843932372011774289480517324281459324375057695425302695945583774082226753287117135582666239502569029011811576133760859209836073151099450095139796299912461694753211010691318609142930828176045867078651062931312881258793122253817222200710341191036980446953038746474735552307382205171292313314597591970562276900776289345443550591566225823851355156115716129983837570761703830477406209667539218675944701483140796861481986862886871454369364026116221963703047323422523357358075006792893312746027730093663683188701450595297026467128634302302005336570833661611380346522384358136584310617764529550355326581361055671660436051176811566764373147317812173310486952873338881012815148739372788193955194021730504945566854265718129392477420563705846216689074141790949385589207926188715312724908707550603900005573808918797061540495104249279515983647702079687290426724588208860910064124998620557053041409315457269188070824055444334332613220879527645351952168487903809471536493950018839769174994374224584867591437520293440941798503051925814585914843703803696108811250164079344244883880312580282293567769164560360550582781428370138289967112085868536959978359917181348859393614215911325819603940672576807743971177555633917636892315102465013561816086906336961345413128010585324930828227173307700869349553968112115923527311091700750716330360813724455976856919615141460910432686071856160440647488855349181006085398380462647929016818738339631296508328958481025786965916853894147901899979782316885735175287147665860315677284978467679786851819482115328314807563625536777834486860560845042535940849547952504674671419097021408084876485651405770236748864193593970877112776307954678661375218536494537070882781621639902828149125360792184510857147068666014141687121996783687693116361624859042140839437037320997595524189767299810041554532329840435552329404596592183070727756678889124127902234425550020186147742841114701482561830867935937952999022005874478697716677747363447635907565451309781872689900989190480939854387193419250704689325194352940246248639749395006813851006300533518455228914049902376745814487800984526558492895943187521090011700052783564780694389257405424875616409127760599827183704699057880065336968178971773024858370206941114436366626251868786560300686790142350205727893186243785844064569006350022996042171074260874910718462500759369927608355192006321597080844656499508415036659814813002755762693012746198489569515769387527007539759165731658675041898281550453277933573727482289520598563562434947672587139716105557295200464611718269948140888599033259755953688560687391842660905975671397981396452475660937073632135923782334513909055549728209617799383139988971640598478282677230925275662412944233642546876404970687392449403415700140580068016413838253299705847473650693637769344103383054865844267452507451760200057807567662448016710032262056437720942735231832707855178800786275181411512668747216643328961216908138946999495967507813410316221715653827031891737316496835784869679091665127702109395873588259233394143546368734066862772973324634532384035482284212437146399158808524071971937128715893616517795454532324002434294699814031871579208574989411696754995185410992491520365620942310000856290740753495920340647100437463913747336505220745210990681699452555974255245612425849461518908341050143619332403043882522061754768661288604566057358370307291465053558356947623993086860889469444436030610573106517200087334095908317749904063987790380595414977134634791558106873245846015454059870633539068695384377741920673383112824167815969116787598912668812940814200509085134214952010599771969936041211503338236307674745855343132619648695802496508756052090569829678823293956371013024734374842609338644140865803528361646435668366756634902256796068828618899971905061173945922187473013182818207505555526911653420179169007291012853513912908984089834394097407122034500934362852448337910881146811491911978212243144983459142664111313021962598389514639637797314620966820396377960274071895398409870787744405869938322684926646959919555878227363722317022469477499125643625829544549097182953713361716311058019770278931099806966020932471414323923576316484030841883418093912344229357996974887412710593248276602503704200392661423791577782699163092944848764486790242900827404517627226573203444987922434499339845941904621126637446367137761068575438210949639877243755301447543839736933998195587121750823624316791398387432373646741263030748594220915866012880350048808659921411742048725391805439109560135051575006308903649960394902105842117356307148995013868391660401593646177856422645358215049581090920540261688224337311564001126873139704254210665066769485969551050380663077795496679977002058475454917587263703617541547656679075512798751197629142611956660678704956314697080715975608129306033082313763430682314866945120910477942851755006352151923806198561892443173886787811966359377240975653703035900633980030409522106508405925747848541606194274673109531640661801399331038967454505239188823746422619673928769754933909336966709054960472556535291078777788541995915242072129240574458182175529131905539842221366572628642599727972649509560238338687503569193884120051460628570628369519509144230144618116379392382959677225087764261350586406675424299626871489518992770074574594622060880196174029114241830767898339357408223723508619604435215197404918129594801715074810673759204698992915527743616983106153541224646691573005965261494590994955538395485138562717027541026920388858196202157143319366292734614982814569878634142102249950708996578563250408894761843858552668266753854334116913887362496326508480523133770806575194594806370178737294743387142052656758606328153175977256053697496933777340523523009947936465591762851515837654144469699856860628232244877248164922993684965461308011513598241258495435560207926004413563880916172065589610049737519833726158792168179797258895208663059939292676518064066017374970882511494465426511422451433724229873454354003618366245005004397826620378662707098939571255612549662665064044242067647082580185461322959777199947714607901856859731179165129312661066763962086167107724732826832752076693170707507278337166836838777649765865175293718541983860819172478942730634415558965210775373516253998440129995451239544407179953794751930105890959543217696935647194906670217276138989969280599046302743417406641554014858533670168502611379600284239357998635086287908404481053179328656265240909105166242487539287929088682324475572510786661267202663311275268783603935442638177539523188807119744937801870558678281132953935167215875063591363182086624820815829804720645499003778310823143958683474836525399491834524091800015035014968860199608943763891714342236704555892150008355237725594962773955805939519368973697943571667077087318900857745079846071089595979270599908245371990912613561887451741716079564366068340301883764392035813868080246353500976545789105920456765990614715850260554780698931064083656608156802438650338872768292083339855356526295243344419926851554249367449854788845869892916803312364541550270197092027985702612407965483734406792927051786581545411999104808102882371432468695943004870268074320362836893060325961316625527448083501362639570876985246680702182794289461130008748869505075705959194504278250943608033043071889065204612634874016441052159968412982212302690355021908802497033498350631759834093465164059191837702256579236069174648222282700612524811243511816002817849797641116543658768513349254097855429213410779056890612550460108534465147756521527523966712484393967173284045785917113021879046663775120675299201238925664362447179158127237956268485832895529418559321020365940483891018680643519104792786946088367165540637886879266348776536160281056599127018366061899457982744418801687518483782002418865011623235201305376290363038732344695310066418636705973132373028828251703176849094851349811861748242253351587230972710766093440622559163165402429186932462785418232278626013355847740541196760290960379960046991183575283171560878075986815837113213457378236708568650368208867405378253696865139052171678295918011021626788562860956859524917919247424937079307942119722568423109650558515868222978168597362850934419985863158389640968474886223307150837984012192160720243437439298938301720626295933897006658155062004046015485956909773496463690747563942739938531569470890928863486794236237424818603792870498973468155784412702085091582518813885141982887513545163905011965341720353920162365926939935160770048934166841101753900733863309995529263259217018031006638895838602793082969653281186982222899518949417151209433470292617530540582960191935845398481277862625204264362146716567536706757052111455150873036461772848372624864572887400558267316823954268379625995565121091714256475510627049533387591052029935167439712604141920291971871251034267896642458432446285596164643010799734803335775348303329570919101983393287327947626285169982394719563928131610823872936852682964487606295946863284993685415059302620548614508265640865928582603042997520291891706631720014385376774442890443901780373143996422976463417335142970396542139773250559611360316238495712081962970957683480283857330842594356918600307337396078809081972096459672301251441736168749777165503872756484814950226276418002394891368144023840949738554364918377277190717986560682334937017840873588003692525066277622822280008071552269648616510427306509258539889472883849258643893355505022915206970800386637323529654774068563170223478265703246834462520703640341767771290765079245868569056209867698701356245171174805163455948013317206895750197885266441153419100689184538819196533228951492615718448393757620429214964183402140758375908435770074875294684321783372200782922899296537013445079353614359076885046106847150224370667301742707724326125867918125530889596050176171146837226112757892215846056059796782666321877967997288747985566707895905408684599308112278614903728070803459910810796340790950499103865399825955014588158257403806965333453738577987637403983074394718921625119596548250588117965922504407173291559072803978148311937621109000760623693216435130605371448742942282930523091898591488038439247997693704497199854252172011595709659623538930203970706897344311559298952221934238900259819116878833756189856186277397949401625375467347888024363327465473931744388475016396186301751480923051907444582439932335806241489693594792071971274762356925140426367243242162213979132434426715895040876364039184898215995369527454032955982418002107732182224448121687206438542283496625017227496088550359604116118909267125214508787280174746888313888009366236542450527652484310459960322959611857551430094241465864213210214748984763365784663679454185490441435479759242674759915804084512380728363404460551141685588897535394259959199322847263188110881615243819047487388071294946822800040854019296691621860066118968177503428633605935252275205025880023302291020182393780572553647631659840179864557983513045087739955790435521715362763914185279430607256148857682913654551417294207073857345948013269661533695821411444140574666661125613951646005837290641371462879400007450218605871634952227841833921426039884601462071260447347383293623181301186942806025855186410833939081943666769366289927077352012953122582195831126111121531615332147723566822561143117906756984071468681080771122259773343858762951657389903249101478306435032209096788274054457148475456669453080579583671906320556651719426023089245799327767312036558852590920782700195595168309051164551855435320160685352008284649734143976635262834368557085400949318148174354337246995476028583409269307690867949047414716739764716991102445190904059762023967664937767556699148234411295330195111801855436207033253098535119696229440911325601995492142189665005507048848371757772914556453428949046676558045155429383560300739153386220614251817348273494338478939191721241044939698546298141757028912754175100093594509191725019395097873781177672006635323279901064236242144827387308495272750585302451629696869231575417857558154807428471657964867185492946540386401820025927466803078797057446796420124012376977883912693971783751676254851947604801663344669721354983062634711000291113777301792207658996863732624329187322205929672072533458181708452945289236721560897224259785792726667341488435231710412884190686135227088491173884414248460996408011163297345999700271443447076188654977024704082093630024662854088012207709075458726286218108405943009842233269373553472043919557932102807566048546389675482940793729836115999470337349417435461755822664284790645759180886363975602430933403412756732908442599028989496459303126539109730697392321305131888003886472224543997769320661204414972253174531085533194536331654565059091138720024886546305054287399245417297763383862985510131926718457848580727390487731730347956500541002959647003370806659807788745798720026013949620355769619322298096688944562915096579916179662112306624122500230695937845216268285356940868764129698674928749301233339447628253868829301924203138588267951484666700746823780417738218783013953111812563909931650433462753620408061221758566887249057824105047159429465318634439804822396322454709704216608849391412952777286909378399165359870467008323858033363261557055020274038867210060707048226821051903934607122303791253523299858550440272542944257998070059177641979299653607825627784176491823169101111677680716980422175188305946000219487669090999308210106922040631213169688571941720931795513762449707055999955774967822903717209923068374307545945364077669194851065093782803396551311555740402018603218056421655059087646680950256110679523999194742176325728569492591456875952421935663516439589513894804652616127392173007025674827968760317769574911633155723983794861633055301692498775597073541697190573134416624616176633232507088255700551715681433114631278173326634189611816577689137069171982813393372536262059749120658071363460472558821500556384167797635060806442206286635649207444789417936257194374435322078397393003134783914442984007966502326865535000941591655714235697082021737043096983717990156811531898215444054509931920687903856299065701645455921279571089916008448564817835970172278357912561595583268761570946789308683527469667090178145168120696021040625651972916563783000514909726574961572718524908359186638338892837477392951993906330610610959708864258882334846071565442215478153450444807144505895001015495060851691135394894467102705361143258130828868935885656508590204388572227540894974082735950058625345380133508417136389527416712897961150080872921059744395765812993891237989097997138993396008734308652572155455643168691249202484190752018128742243079437254749684130914453371536574161475798543497763265629633308109506907153157810148115890754455451701890290526977317472639137447388607276759062457545590285119051239271538250011138616880046336528939959467867327378462575544905913609075286929887355038731325604164432060838323153304418480069936061628668995489381575445308067949737639836570064548496340850746461982611476458524311209422711945119970324522151125763011040173855812977019407848158763457517618917491163323770771529770669185877814717677139198642267934789856369041745709326688186921382787337364980132182548081374791345288522252992143990480849057581696046715377878460536647975913163734850851295605179561441814339337473014664045493436613009689058655669671975453335400990405899913801428317098639777181417993373446242066314326844055557594833261590032872453642388801226710800911124972421730105012089697592475846795942822621206044013256242982961259548190192859022676140837645669183937841128908451240778343692405767459033632131849381999052224452494706135930543928118266781891643586464820537083822729383951337659469985988963885814836832997273640087825980503717338682787422225251933881998973373176795482590410797437109938438937296817589677540618140734885332423057042871194541345118535705372840571202317495472586294783286554365153591333377104352138101330524900833243356454256422422645408473203894910671866818779540430944910452723961695763258442358529946842863721857085821361282729413524000717750671464165608905675876636372723505601671217616215935912991392702797513119726831410349682967974783943424383376646329893194309463680588770953799020350629379916253319591007820974233612614693365021892213735120516067673463201365184461514982923721213743078567452299318725672934478617500920307677559667288087065746710041889734346167563566957151230142835249302229500240194940687278902737302261691367919471620958475125348592038228561552138432542573256879952229547043607085407075435111485794443311319266998583588376749248598468547786089191614525307703394226161267201342298308112985843398657822386001027830384879134737117651524030879213766743003142953856841467624653078786370644703976684704727825379804006059701622533042011217878637736026849863360249526121578351902642119276398960248152629993681978472528956839963323891316665518379502316815052940092823432600769154418942079508026738623510578062097565156627756449011697713894815849649176996169388634050060209238027258453070669500342602230725229825003483456300937777402692374816531292655383805885784329616328569841998525307258558238291809706103711343271162108106993194813082710277309689055047108945435117285676177295683350468913114190253195056787005231387857285035090940229305964327283572992090739762000270332251650911511109509720984626570756282037694490568447855688801379047379069199907734340321722111208583909113832230214736380304278910074767407352265328562628044736131587464174508273361145342814925154568808475780753139195149688699887652021799883468119783769134021841575458685256907383103310891322972743079808752690978715880884762454555679295518386439583228131626771984695982132669370277027225847140985037844363518596139867579189366308433675554888818880564809992627220048010260648382041066804471637885236245288566916292496884439180734943661479061709006035841668344565547847302693344340342839381531851303304411422713281863477447853503289887471833266678345000907481973415997493412207504757322068969716011257423550075204382851320633678718144910464464670131329293064069390796308659943930752544095716519497413638483454004336388161243250892469404886636206325038085096009453302783555128168593141067121001152227003542331888541081571681532759191669239956446568780304488014388956273590023257079290595183680512526438664853164382630095710297975020747225436819998449471630153714489991946576729301890473039247058897421584147905181228082661347189459529535841551024724549801518062255991838260661743378172180328726108793571037615126747950506463553333195291285739309143119437939407996051384392397501089054061891949400390200085415462309738099951267879192431778683075293878324568022956847564679938428773363525872868164585379757361141628880336227479408384275769481016035668837236668617911509771147481242347182831713611266683292082993260576759072437430535211787413246952284588818746558236201661377816078119439025587659384779550581670442494036320745945648246894930806201137019419330299622738359669218349300571504114450771115382321871045285426130675857045014038179390105747485477052513816290725162233443731252741873049640776949477719508872249949717454078599021025618414584781320796612156904893054098767201050255561075192632391178719432859761996346145802467809147676979627015446439339906279892249275590591533205634599663207657823912953741671573175670277793027138864250479503827371113766735311144991197717805051509248930772910669828090298204750007981055591404671409638868234505092717800439033929653733018159744205077884865262650366522988940239479354684373231134557775050499245178008767835249215387034057838610535014649300063337778811247199857368039718431883585802556884470681898223449458640961833045590315164909060441572455420152314287598631431592473836948993693373274703915077677921043598100625884537033979848249732135046802589983804032822528587176509036907075916139579199171619264692015155402932210884076215405353060369653059156988409316589143930047307284839996734375966234773307166587014656258423707820645176613418922416427072961789019144116542085423299758906619026647314717702886769147405627439451289122900570444400716971254565615329889932781850495374480627095883125435256131549797357809977217877217316573789547948840091134155662227303425893254625973635909125370430575066800116975076059095745769312813802207057808947623659869176256244901498563160291158663755125427236982881435352490633410099939960315340714831166775874759564900384320589317098735270156841036524867995504894643515025478369391092872154676064485475971029895457207321209840100817529786143681046365879990215188397549579183033650257844497563482921162620039088461206062273338306033113221618077320965236634345086786845476858143665752456748002072264129461361596773256998777914678054316262356914544949616250585622153147261301154303408529582239302069995018901122008773479714181200026099808544099959359355972685632312039335660059784975697459402530085490387198855923011564086258821508605357862795969383279970137913708280193903119451188137375885450553954949336026485488812379372542243400965669321999621183109279201641653268585362586654245870901562302886173445438639438281586301571576180250805673793352260850240167354242382744993181987471904751182024860736907483107264547948871805324944162239762770187817228317496729060311378184976514139560057596222679605611853814448412918224175574502273682880747792049877035083616428417908734165019987849491524761796866224848171015713489138995901403149762382281933368164297138747926791042662628075328121395612736883010620008742776860336967731025747865480094502225923837439872433849273764394389928267679445807421604735832000693406498785935411785168236386718849300983953275740272752608588693737093903604163116293689988601862048759804739500902070502483242796598893684433449006500377613788826206522756402130833907902980091275367416715450300577167110313222224381234254881520603596567671919180660245547778679224773172173345511827635966672727342661612993432233329950863770263589924701763731069351225295614952815219822374221152725457310081040791479490487987033731365389111989417169783250432409905697781632895608448395161882349768110107631465277886024000988568010667083993979773137328494174342062723882709727347364231754853133072668885893991137043083303026555427710709296251481426903004759781188111183922103132178272660336181862548119612522480959124950928097070433849823641445547528063887053385405553902469003402965811424230779918060305779913420703035478462539304342064672967054371437462595798475336687539009602469271967054371323253993951728857476297435430317877057535714849886616434721855114381937426397812647975765073661543661453186237072904600933781918083230505956637964751850425730741559969059691667502461361389200246802321102733958646422688803401371934917031938791792419285399734317323341476160188967634885407647954440283209368397267703704984560959703644223175823151111931783622474815250519100266072003135015374388976388844437707659915478180067273149675339832734843879532667710697023228585926849438077522888311827515319166062370860087844853390901546467176698065610838270057537132686058192741203786533097904512342343132354988015546836272730906842389908748719949130432370696307534411606689701670473357990742728875194394248220436497792055035014772845032546387188631643926302639665296030476567065945580527293524905699567624984011099951284921932578190526918140101904469579366488735110241210955267513769902844493356375784871291973377025703356139092133621517555271248215168422367664850772581747091749226380253854984962498669979487020558715072280735700286669654885807284614826852315244369414034643488756198778940262425293084060916142599496343752679215448318891859762177549018308921840343713992398155555023721646885636294332959352742610215420836406317977522003591483735364300038148401088757037674345073190103669760839186329794233668866971180050316746671716133091146082319810891879841128163204359768358562262517756293546423598386899873028665405581997507828013052938645150298101018543031641419135275956204569184589715737437761380196692536561428447916944157570102725371676724194586605172683618651126155172602347230296793700793758868604024033591916804359016791062733519513335575768430978395949133496133088375357735042104639476488434938786447550020375432895763139684400198633655394433434426108024851916718914208521260197881434235488135092577368871528739339434229816354891815861579896744869356449514671278230955475623599111022644370388698332022368786042870289770574940277747761216581542636020137889798213637270053636316328818339493293293464808178852475212302960738835585665141158536677973105161177990631002888063407683261973498777202764933101791100485003320216466149808907182670874550647486952591385068229278805888289133877127177453431254879463280690703577173923700155112983882886171228865298609970421093593335290997558205551963179080745945517167811734712164669445558579274638030619693318090622458026439600415700726821222279991912227363425529667780221847020051309653517738728106725970996972885496300707151141005461125971233189920131272109672339024201809204814660957741830853783285321571067299166096721012372462085178305288213250223856762252516989613392604501547749682546623730370754163867937877341986239423147394700783641110403093023054943128664493093015329561113405003948017742341062845115087414922488289813307351591057827161423117290789350614854345639110465147097117379691567628941483539340807564080130694621316840534257625578799176757645993624350532688177601484763107710442933131252184817075204719484350201265019540247150147642364193143171702297501599430004861401624158064215423665458969142295146484241032689784683348286432116412466585949661678234529185897867831374455535455872103632065141737970384357256713447509767008782480483366753815831203729580577066744922217954015885187962981189897123773109714999501756920512003965124219609647538608869373884215012232722631762365886494824033028656358979931773506146381529315177699192471467075975662863470692152124298610897528613921613523754054876602466677043719530317297352987626313469271128632187158853029927817604123630282301916664041479119520716572704876407664372928846572667377344883109037950180101010772545744412014170941728256995826095940635677208792974901050414580177746869887629925907969227925850300893607075472800088106211978706699467903083432491011600515781690249492616613558878545358579568533217734030067543325695463908257373720588504973120590762175902891100537739652855867897879443286259112511630317938965307865268578566289428686670236817054360014454827135315796859290182351247372042296333973231432908193750858359440336104257241820845381488189877769049850742875815370084418670404545199731984441584641764600811136086958396392186371908007649804599518558616389216208734596627445361400269480417296363483101389528356977475817634301931462755457658023976010018481274501320560308338566178978570849448984120780729754849333027174746385775119090538705832376388525245819611424459830177840297218457926691866649580315451306042438997504116180756653344815663498360302636752177865938738174247933806834226105053729529127369072693674246180583587107726060066137226699383151223824161965063100948632683903915222428193925421181967020232650440292570262244801070241688442228931603612445628204800040958940804154832813363587751777583519777013107310965594770181018869222162346192872056325044440994240557987974315321066090464755512684127442406566357297159541991990251622458260691530518929886418693111744721916462018910038826567914167914235649245746818145167329982447368378555682792557875006959863811454668715686848562854438331419045574087952089364867649133306299109623938624165092360429828125350000042346788007755472357472031675188760899370073666139535385803197614867497905987807819080294569761901317343082788122673681438515595103172153480400828262204775118103800280688670105327377897561111141990760745941540917753648097881425494614758790603301877686350470147214023758222155598049158734581544185212398860096309331303365301620396555131265306229792933865923469256629529958037670840234641655315681011887895203486181168162387483579726652983925909884928653486435786843804246410243098733464292121532957717224942408161529369674207886586319789097151233422583383364159535398877753412805945786621092452313421062388335923093248253605518771436564820098190054861838473822249510265295842547479107212126972980710524144973536105705156702945938718519576035972061927182123367858101528422524225144212017560595027498406691046875967073122843875176386390976270239089632987598516054767619151888561014573351164476466578213872752160162048433428490716978009861300509170466653366713045728475809456818414051041281156392485375244028314815097178015166157593813572503822598872559370927705709883689734396992753482092930965033660198181433017406950526467424103178060283233474921433691489032016848843538943649654892041624259998483434125112460274663162956525031382821399245318452905844495943797459045196997041324249569824702982556784082907762211425677698428952740290537787309702059192620261432892520357940728912481214223393017792603353377456263731890903087501208194777167566208241996113231454528853127482806044438292271227328440606011122194598925210180495959047064580633534137618872080690165227324609144414178664098292185634896105106052739583323673891311548893832357673105802093230106394844926381598822003099687154855763646864604533796218388237769922297632069653033343689995683777169609993958662249301714213088532351295952936057872100651515659126402536338350232291990112402312371541052889486535903619944517250040918924271441296469883751450273282789584863885590862931104759966793823703737506189267354574394354458862708057860587775153484702837766140633055572360671026100228147311779452037907244904023602622772467827887494534588035891714694804184790238189901761298756127214195115232514604302173347491591315174488445401163366889712405268651713112051091614389623581736807477580190090895307965230637663567953217377078107132720681114863475640959407186574136393678895094183230212919478447198249483392729311233664484912403448906634026676137964573966835907319526213297235303855386371596887622295752689087733486437282298696589626515785589040658311251994964500592447153758618983312259886979887996127721762202943421886450669118388078713137779366296780994465593797606336331332394038801539841996447888139773335182291059431171787827511653639140606207439453191731882665303797747954596302915816097180211150723282822696702038613447962051194341257705198488240076440982507837487305598363156351952902520631522686395877713274716591585424853856168866943030932836642630325329176684840929486447575215505815849719007446598277276079001099023493232194574406988890680125740763178097248975828642452592008886945893809440839605621600879578890233352986815428759032757538087374116101401649551857319722392480582662679715011642842198036192589372232906831794065343692009325532401910531141426650857092285580982137052781243429005345885319442236647597180617386906038505309187877378350596920148849829378411168105150975661653326906912367845420062702272727606747911197277401118153689079401451305952685035984561533574742230618242796423428856589835733774313591219152069559111812496013314340870167133011229403721205629492453667850021146560500922659881097500182449658946215130091073505847726349382754481599596970347961108602196247225200635761025420050266843094183458519720792549468695469752319352221690297702363137669373281575496261585737038438480152097910703572516554967920823224136452070192849963905601360487406807439622460806902367261282967854666720819001180807395273418355539988108393861210067361613997238906874551543624735396726758660823950459001961496234972528884585298620700564668532237451705039977970099001674577842345671083602086966219457872495741492964433484526290506628336694654396363536643357818395509290950751071782744541575832630648393601235952442318755912403818742595842372373318002104499795663960255198804788526223701977063442171675647887194602767945886303942456114963753988416633905140296567942055025356528664650251346152384844397460520148731322995052006263820745416053810668072702128245403640532712715195537361864210871924707374945938179773813810976465553269189138993656404841449758455251078127913483273104347816145725210486720708615921150121375784009704047373776256203841475851264028687804836232383690090700418565229582318238229019468847199073507569371246281339787222815917241148337099478717214160593117862755921691403772027522467781429766630951369638483153258616791417269292782559251253136095533009509066853047229612566949717401179432872746234838986479422425216063846315254891995015370976162021734772119294629417489550774009328212060722903536310613615645414758129631158885478112819882044240528614850707367739761980551707445467966666988206368673136071946359562101094954057410165921742479739681889824447940150719542958851449671218723187962714496137250540882353257679751265963741993295957057907826399743709321035670328136858827339648527237748586326179332940106324283223342319040667029513380077513622180364825252804877048874507591906287486392851135988041553352638810133806570158978659153279639000184483884203347698880797604921518149907608195999231776418536630193409285843460820553334326957377604923560960457063167788580585403255869972378462814544323920177543893434913111321444415946620218435346025607728260805932181619055856784534843862592716333888227003443839779409115717967033511477846084236452329113135688821187776829312595571048001661845222102447576486434280378495277877770060237899535991733356737758816303568320028426597745705499609281960680479744668782228792561940683940463272630348188838848054084623929720868722956017852950221009784272745520681054415090003595061364971829063521694245051848261509568002082159569635700770248687253861606476043552913922898175750826846816140389819517970909246165968494826331122802544214543559883151977705001027512748727260579853572272010165405848541878206525522975523519785072645956292610094842603804460414631351934491561673900846097775204987829695726483794155179175312563109864255622259424135180507084550434280056268984750210555684000480256282103858602165456515249904091604997342263771824186210056440106201386755263452043148947102503054760493784474008965670055378347755425598089050383278072832683502751549115177299917563438144220518909372268254269744087929797795024226663338053648943600236844725610834263464473288661832552920919338148833088243659291185849834301912054254024979144748348307248412027005200491961088879882575710507679471081980210841523044360486950723950737597724004236305110665802330002383623492478053667700538659668352911391609875750014516820425805013407922295442754058343025724653422399714180645882408964101520357626653849883293442784785669116807045027448031279173280725388639232726476677613028956415051476713912691538386964101894538081389878939589220519614201855608605416114299141974650347557940218690530347328014887284747577278690334795478204428496620641880597183320031350046713195943050606686967026259972876607064783941694060754615687286466487052334794846458039510322324006243736416090988307553024045172679239939884770113060828904767053341766112801169338295679455073558053718893128657218265477972468370283057093873352744281688678790774562762571112786469652902136778127964713666961207400825781357431283857398414693384721201856829428967839044527366455749848291057365304897366803941974372230098170512221447692470154519092134772693809167323117172571627729100663405397360689728997904181087911234705390929991762205226648348851619164517705998344737344372156943729775490435334685680707528296057564722576932841838303458849997604334733112554436461051266045321903928327843665309089989814780485516068013033399786923568619109232876233625489510801206197389812698211761324941575978845337867722568515120665770584675332698698893718485335488498394439891313029564067911290298863655268344989189058183001238184032831417411575090143413672592256101333454201287997963327082184555376762776900956437255624434312694949593011724479236804531000484723586277258776384812923866590998837737998258848752949819382927799951293372165879486619843313052453531560056419093609619096291123274326537926195949876030101993684650178084113429007176247027042740518121381007853151117467205799800511395673433281470287604670450933126063169356280076549883089174029704576207020974100267136996370077047897731217774794311787757914088602524093305366269179421317250126469385725866131042142390839503010270882892198800258655349721586655647324904561947362931323186472171664367185521604915846642290523688805382661327648492665327150151508584169607324717800188846159508882358508898037806381668458006286956145828881063347324559635331609239895086439451792371008268583289325284014603087152125868363065074471159265862392028900355278615730025678486770311682076126771303930479264752576186403938433715206617915968860391959361984169962308956396454454630682365609060454211757340688889844235217391930193959719636166922472268472887345574647833740816895801657081885411963384632311346105566120843207525014046425998297383445765928109476010114269166602178399539209860237467037332770259481931834214403176540464059598578743239233855671740671862270926907745821754776697407376364336953076702657687835760296292110061047516850405054261537232713903698289416722328518572421394447300218967852784628406663932787575009234094024262516878043174295363624946515922357397821860905516075002574029751347087560126564155397161051688740708319331660937894023224331965851678698339224122617277153676583803440632352852517054376297896423199750531490243793432618292248257434346805396937598478431007617153923812905974422490136562126890461554353364574569701922767570428634688746574133657610344805237136252170148025433599761150157036145293963837180047667944536264548906033851700158923970363675315115192792940703572754792316065970190452716385349349467482120974801144982033154813055549597623977941232465337886493626291100907943176507771015179542402140976597723537138936196366292955991340331805053481335413040903221618845545539192851890248751725267411067063702051377961653503353812231787539312961929039559082492426873971050426643961040865364459098441252534160628580786193860624161783738238319220305179574442333793071645410311236177053967464416705757855655572125986512254394540750016854761723825273609683736748992589249817930936773493663551897967292765486047825199945627081529806643427336144210131214448862115540350860214136619291238647422819246071181885926178740910487230859240265231422412165451423257366708038091084029393739301100164109743181097029460352492426886901010775339387495687885896341333457840186485549918983172989862736270233928625330661350441906936234073069736781838944817893062060475919020365883799019406016862007170900787645582385239312015344632653746889441274477830976501451721541682879185001579095803180924449197426206380908681214310762734783363689220493699090981744809353632292546249544903906633257544689283252689431152051973620124626472796628224863793519297409056149090567919246926485446364085091209688956808536316031077482921567678814999161409831748703973249990089836143874087252360481484567462744995712949844026929002645581824738244569207475284674566891736771570213176894136323926814444734150039492943646935536524951439893021716989456234381222855877438662689412836671466260474915585772863449678496802300379008320107550375492204353111111580969965048898955959857731739030833623633683893894079469925658145350094577108449604141615713545192584439416871523064603541212074572430874245074350082547238917584185349583403013086053525811166856210729383705594044328312841881615366994392320469637116822129600807561665394915706112122468015684189691048959113198871094057228986155440230127977664032681296215218737904251700654361609639716880929572230333875890978261662790773446983566566338245523352546136712877401047837480505213581498578789855658413554094142364882247790745854086255993137259884875161143084969004720689251169080663194858148414176285128083086522295445656401319319587114762170556860245637475784114338926597323670886456998279814498770377319657481821911976582685754024836814852881698945303240738520273199618588210689588210408327710389233522965985368644304234743895965902696935583193525640400915164691062778248289808399874386498642546603446449402889019246513796696934059765591410138322185376213720718508279746592642197496600621049509753631553722252613525396595401006321762288283161357788605594087666901380981029737222428533104706446647295532429822507940940325252525238452181419304001757394271042838235412662708966514653143105570783255033086458662790154175453385111161505496309531726858977217177566609705560697372878507645421564050495514551770384743016518328357624336735564538961660119790211617014487208206769539635729761088760845910224203014753747598233542176779289705564013828838033645313692251257272323796474858170119347842001439013809198978702984514820508121168657731956012806815304834719597379184780716497852951152036031007293199930406975294909844245195369674060622926063299367430501399670734246345169977065333941708741267730811882001138115132231793607244981059827220031078733040506489287091699152899509050195992324630665799199231062933743608486430272822585545359439859361358787562403631696078080184752130936278632328959017861247924090533786113439380942419854295481591376295319805138424872423639779427205034589554538772272054988237681453253595291233782274717302232336135027885257491332274733300475851882008921895798954529576848535496414592455284300741623556050013548641021948950109876974080716802296135387230334195123198437913811391722736491136329347695312566850758655959835548933389790916724649368106016172533613209253881161853211948181979129868255834939470421448371350959045011674755130519983714579380236600619075514312061276072140893426108566394570795283458731872554053347193312357332571430997424622775204006454016844909205462789448853052228123071581363496592285115852912192112092242827317696495365561989874199835986049096704550226651970218055101869059211861719283398179594136070553537689209519561751984052059836255738089164600323449040836881639015822222985545595595361275712380201505203465222790197293971713974021923479171351048937568151386529117145819639840508834048492685677251544207442886063514103054830803305824696990785247552218098344053950525655883352760814317785805978500706193327724753199963318610502023618929245965221175844519954831263516637972055019215895025824338234096294951417016114488695486281959789262854177123926628454247351640682296549803966256616573695544608001272328123793172618459201770849162735294593332555561428244853419361027578489916170337617697267188833666482735383502194001435809027924749208794673620011053563600011423113931827448417053488569840594120992488259989356390426578230846216758001610236539603145952499083661426657908180187916347631366070614829922565186804021305463170644502233353403807156923335219447483084824626773973681031411832530903204332621959576310692801049651277135333451239354502128863208322343473411469970357459452848362777058596869604039230779402625519015848284758900320080870200663199777953876340059535970496334328023062077349857889090001366648148141552401302625437166685536985142399127869346289035010661848212406931756796682429873235161854198597334988321243165293044688443643917561690425785494762629848347345583019343014941201141167314379227600742105493080493994231091939926273110133040461975145820768199316798233061270905177307704825141057964822656212403977274912613502320312474408180653860783518748764206562089742076622833546222419435674268326242518954428439348031632961359065966970955659254376497627332565331519285283630632873479397237186503119580991081380022106626349740601537310286626099979331077330385688398135781106086544619319572237058111450482315349436546026285917845154413220284159536575809831844463440479613109801658642626326161705704771577234515744794962175842391572399848106550384426295419223491013375003230495517659712573917273892164142524353806768689916475905976150425618602521457753561871442616618246049451342821218652522670605267124592766168460241052515092126615500959072259518593567593075588712418977502247455280095276317357530259946925669278682378926645392010973632436746755197086717122658153578854814709940435307170449860949671289801588525324635332652934584028321252266876277372966733433951291770499362870952310485296038922159929099577067348217051323813089645557658785031421131583593862129484947242598367827123423788719754217455059863536598981084899015375732014150646841163060351590843194600878011328066297376461347907789016728360243200845148633445765353919776863212178357828831942788832888337107101245080686455134469370733353296328967771160248416561711576341030853858760601800414155247400493124923747631317091509108713760713199252245258890602742793350647038007720093095540924491051948382702085647652596367193479233604365839722227804416386922579302746314007330493701803768296516055458331447974537776997381681279803129029203532292824572967607135785295790075832670441595312765007439000486632029452808768484437638895093679355531571440693705167496140459984685860821071886558131467304322675226714429888524656907868692862279067231055883288393009311088447326215032706956021904266390205957387015074777504445529293307156356056812348209260887421106576713322507315324812638268531748536806228005444377736764127148194309584762386180766392714282961344109811472347552307170980085966005578457671512572392621613956812466962488320345973445281998002920650288185180992108801535156527857223711745013110939196687219224561413485523363420541323449869719209844235816146011631289185861521187462635514808347658208304712313606455313410254326223584828826395927983735243964617020058838085482084760364546547126618011289739277235695224602311882976603889022834625509472458378021310250614309127973654348303424850420943554028072404392287128465354967740268084517579372373362148420286890292933684303148731045762757075194138911582338467556941094649149665690204486851478516030510544611631798643658069379744555044624208056096333515901625251708874934529757623837494999221591178416597684199213410300169336065627697750230904058822876840398365904683713673013418974978881176282671883699269134964884973670831360528571612662328092029777823688853547010405627914691522843665015079542060821160589892620380790984464278427805741882205861826634321838890161631757321543248866348319445030325189888671577561508885160385556147411633316760904690299188675372910175254539097732623559020970470197032391005161919023422094107241447135062281631378569271109805735257337105536801900173950966507088692644265898359056865225082832771157776276614853898232039935151697067112122710017390265054998501444321063263039516373227897792366973221479551813674717649514776254453889834373777943895137804363801161704555347737189590144313201049103983798221582261364090856357261398965022778370405192633076494111326932109866006781884839917300357405315078382594888728542232218363526668849963800856702457536127733339892284382014879031742475556175231531811819860314935592021892599877428564647497754925463308338221688766972372571129129043760035544412661304346475870787391554608710449154636585856279311205429581852297400020176596503200681996248021621252495221848473409657647296352424993556773562100767658029385257527910647834185861178036964917045886456170074887281585540078212378045268376919995053314965835044672704543230388363142771552931583504820497308731345498757427707918782123294195066480516501067652488899454977201248969264236501376718449124608654016269323055201611309371735265975178207279273135782310535990072583509637250974000893649524555175516740568043371788890013956915883545210913981163446692157556648744372527976384192287169396965319959666552855011826702774687924166672796620831931519620912912221666973221162763417501671458689780761139387678332630531586553411418092419028707986360168414857306897562040227161195488401988156146817976882961694050780724094335705968881708747895397140181319837134858706871779679077351355143507137428536784556727450882640910471641919935209587382570481321594520726213918620487919574855547501128824936859979592633742846201288939466661618161536353577037640790809354389081594635465395373671419394004011627883584027747787814662725750112031414399039136111260530475362665971262845767130696927992853282201295271946576980103481564322339271865856313786658296598641309748335560599214218156126836548195175182165433792534643166969031498967906366692316893056987399998704508276317056191657422212198785427348986293714586888751843274247285913936826496936546881141035215531193893467993748795133420527334975507979655597816509670340027061971450357287428701416770330236361643962471408045650526639315031888009420160667109964638236426541911440007127367209615242266600941470469477719870758568736098653503882195926764189935090465008680376214157024501181179903354223475186649289303374130972941402598348956815947010413949029145611885438749990507405120957669321105595967818490430845062894408647703504471230327100927128550128476105251297197593910862090205858757960658175909076653967490734454759138064287247474210906762012331834013628927201679352793141832407198026621904463675395973334518449411752987726598751758734149970818278613898386092600789109137416978688553188258963390123110674907678785476301656604145671245366196798418056382428756098611631469967296106112451757232659591949059509885196737028839350824500365471309969405861646675253318919595155624361724813965052883654998666953621124774563070780107456512693404381948179440400151192659741404020698686435659701360943233079632586892617768541982746929004314033827552477113532722326540402294450436091111258007034452111636421320314103085145091632376219951655479549382639462952855452391673969590067723506854988475908391081742044135009358789286976325637642221057840787820112574219568811573944785242836482480954689174005391598150673423577092065764050978787989854041007815125133874759358520082031711268706213160179805501786741966511313400305348633027292488207577086623257164822249869099729100871262903329675264079158303408607088607234610267677430606472114658151247407760742777695748127869638814517823576529546676113930295739301787110365122358000510683067579013511986944726962574897710030622489252984024504250033291765077708512291740313382113933259446863102783183981661895626150961867868549840430390593339190616966662917101001026849086225425210834202262720560209006800471660662992743524993653604159248439826654556384717745537159821788586025869734078354451738029009583239475730818688368206957673477618983370138930842683138609028285773305323741041870951071645283786764212054565004696619417183086719042046014453159948742700890739322859984594510939888115809494061023012955048639332186900152107024999856664835140530938297435824161332592235690044368016908593863546243726700419042920447371811070430915727720673648745507032883396717466505956222413662617236940858664944952014535460161512014977243807646237407878191112875206067123585276968602120821965262777991309903173135828913437450939105730879382881273744085373993619226030368032912023348828275784131044060479813213633323862779294877557057925578620028615533475303252683206482698864328321081404424510930125720070977284200263590326963969315619422380882487621805155757338316596363623596858498050319232803518979804884892590584439697728930053609785435803020436957066454348913864655851723206636600502440546408950178909130263824065627427771231361953001013245327989288176832093323275094207728608489460389840070599530859611938619837232166747041518605601702846336260142834935460197861376985416686529425019640537440809886673836632083812807234063894438671472536307752698458777754133221651500629524392199709988348139485217271708767195648267483090752527858008348465310245702398291543800463990955235109375218584861024731528808145183960258862879695531325737586822390067324905853525559262585783068223111855269023121673498094614802856337069979160970138903957851704337422247739485742101374136163751943240179790531984328109018479906304854938567572939290755471879284528299569524951392319850427848294723555331404017952503237140520278733263523086744408532592321640539595463728864400096873550420042867147623944472773125743964396784319963292128616630564460264776266035878340884216758056108732800214803929353803566726125800653647968738150714433067995531168498749255048248435536727886067466429940164249126582981053032587634086273635649624783883678471329504047212148115594234443501712425746818522724385598859319498471126376893985230955084430055795950802702532955165770805784713769463760925930418250749558135089353349931761732569932764691093898960647392154893698966605208393578941752613093788872824755939351763209068479546428153456212098647140257515391023816446814476857129394860196681984251274322286187149460301878288840790327758969727067423058653103613762313196113703529725559346987189622699854212643645160426832859088666953647410643843945782729722058936258050570529401487953567566732473401907173648040188962712214432857741049613081303047850076868561617773616403499397668373253746723754633627381172700566439637587836408724927930827773616249553249900121141556808096184849521347866754935440586032351742593214295485388928427911291010531786715282968133684311338620550866151822413459207437960642231260395342850954827674060739031882396213884794255655587333975677965870182529476442845588345638026350837159289239028738375469775445318512251249060083383355302933647857411813881945559760704657541365792290615794790603513161485532441688006403319451785828646494699090486200196661603106952492242059216828444307760840290602227953734671608403387736401520805793020016925354306575929421446672966142387565463001995604001220839960432846502913178956037787121227523820180199150651886683606181763097013292116553886818307897290947329980767804861873351800133174896594808654140509690797359724291788036227062109081013644882703101691611899587569785876056165436025064786483222690088479649334220968544840522978131426006020132387257530186485433396857941179176264953033897217740333202467300398882372407834551616761269082487277940682677398352278251623445271245134591654166518665647359635747354527005253242237087311675113088777204724485989048802152151569686178955521496860596185849320768985655896118936181660782537469270190911873540394403142150019828794005797307043597434219310312901604089832385492988766901493718012690468631579422458240223856800004096934283129928270848315628845756096115363645352278548357193063195113907942600591697631204437424287958718227155087587966611867076400895781569936344286695876535102831298210385825580565354131633813553337496281054813669691763992407339770347051038747239112862741474073476793103859851491867722630656916565883198056243771984679755960355856285273625397781529865043365661490007487119539722085438556387880695688930669961641426562346101960184083881597625463708235794505222122284674575850826552809528083160377743865394603183040086558539991719326959353519884334756568182933297382938312160222183695053287896094483946004116334102946608158816998103618523077721091793695374484425818111340199469021215375910392554913413818891994748407847289664578868314516323814240797324483725688283211294670256454570862250523219845964585154364630950737378712953422557058561474069848914852806618319616250140395346373622821839907573264181283840032503209417632965855542583370260718529360448663515869009127310241935591800762800320610930145832085925131613761223554876503390680092542961972746356385416557643082717636063935201372731256496689608388090170314133945882744066336504569311976412534267158624451002440146387354452106351072136412930821494283050423941039215982163508895846548082953341803559152259007899617308287373003265906174103484152554943017152082220930642720966427251893551072887044600269368941406093882806272538646991160493118438875495552198470020351719650245691134246450185894983084311509256314595791898565936289836142423885250027129822023195762004917517680906366314007045061112187513869262180819217529555734264999055072858892320488138919554298951103384498886134945586284103522598514598253522161730734375184351553509191404091749884054861221127936827939895575596727755307321983896277833403355200956329836770986045063076148563181971828751230574433548765774253871203502926036792318317607322447204971621356476429891540267585199311411099057507909647098169358977443759205637093808059966273693326764318767071115577802919820350636587183040337762540884024173128830096629337653160958270940422440769230515508144903628816326965722310672827827261561624648359487686488928985010832965606457740526353424580642021890378005861144554486821994018655287925309743812736796045717875047027229594821029267923898510302291892385566603508764563199289403998345134430390130477358882911805964142426457611605458886511431345501722112932728219790901332459245027244719721715182150231147694938580613940492803618909022856614569709865768912639706181710634874241662543985391375014046079536309827962522346323421040860681879891013366551409232253397225401344060390821592495942112137258442885936359570932366729703128739187593070578587769073312948347210935344713301008114610287081365054822815032858414229711848770944964409732933779814662739873688300996619626478411624996076600541537153939079445515145371434780886217245368819313235523906818092054119005265895062546757974101320453796408027440061403037697797054122937366565588306584808499208868098933135748765655305305214813562521314213307692399629749972757007658441609772967836369858127977806192734747630867140044589513395450732218259337444009703664792118992740796362340385748105915939798207514941893339659977762987286176572670008455975162580077598409590837365676434187573337683023562711400579939102572735289682046779217217335944925346789429283884903133414636213295720404353212971969903657976984356268685986728465064915510672172875403782399195205118207506319130302571294614953460292980812583149309612264666945193417422138078177391272555520627336994732787161450047327103969348547786922337855851965491355087940976613286121439303675892243442528819233784542125331793007635677994221521457744661680733838679993837515187861999769911687479846668530726439776017761052625673696459234929482588217981914911029818568328208122096301076440755550645330231330409075542616742877361078176265595256464601657729334989108561837934537877256865531555131224616826915223067619922862424638146415065752343337056819879028598678768803303011859144146505190739814733951357891041926987170209797326130787329397281831951249017135746960468347687600902644167969562421079406121449125613338314641221005682983370139152785441662340824904070392532622242023867758802982746713728156697869634630199109054682408129151888552882385391017353110287750474979535271837661808913182201935338314861342640014352072453090632866839950778826257924054764608325230643290468578971265529765962745089915645548836067397832719954374453808130058651786484860882258721785922456226655651742482353618590441544479139076047016000748294876497356354047350040380314264242550364234514600954157959958494781662002862126317226504754572971297033671241875651601331271353440533609831787015781943459366011283918681607652716113710179023516362875344225091468859063872297707020450695475862098140585652374904746105280141277798864148850785079514186609088601334837354472740661677498515817821390631587406488832415225755475258890437696529104661522168986632489009147775267290423999116571622939393766158007374448254651198365929622390977964820755902135044458787827281629299629823070181245932659248747690791186824432424946378290468335450108648688124432463597455972587445787484617494938537807851149230445014263401209269022970999002684208250483684745541173357561407473164209078988173626881938099353450300336569488841390533656432402890103556548605717287604607438868470153841315711384416684786008329203034478806139657294473918074737840384022693678904314252379586296886199868821496447817169817868625573910576240728731450776309209035699924288310962448138071515987330255539410615540136962708563655186862412080896754394734743020267884460957615021619821966229415629069208256740198431552495123959724316935596575063955966347544981717258924278743636306008105959597709551170682276913180976478198335833132365535739980913226426485196534432513905629503157207244304641826311127538202070592802672220816960406791460768824596741833575231887284626642546125196708165256667912506638677986665148982546584064189916747616651153515497131419432610619385392328123038593186218269920179777144123684166406138708499663782264722382841351774209273944242137964474288156301304457025795877704921061241752372116400472951468150309629342562001459797804854384596403847490018196013728661661067425840257191806393508309271054945774057801349343607987024096450362611292034896893717933050856293190547043644200343500965953953381952723986454264961042875209542086887593777311764080029361197913612610153704949999389452233980137994147190484393455184825815439464158401169144389597972047641363167083799040033173785685309056884142804889451489454901390104023888008533024595154273934176018629677701741365356119977255744007670777285479062626312235904229206971389201243038203908919456522331478105031964982336583892784149391039106132834273427208139038554262908578524984435249466327288163193435151091452247113707818640386130494286852727611227914579730497790621423297238345721377586481177581755082692992339732801286739798857972066435168129984422075474843041281230799063682466123989228646370262596117256145445151210737832813570809461885904770804324795094090835525226770044566044116454553757053638143037300490660582202652619618848438764442132246140203781376114042184246362725437310350677860432343623416065292959572662587628850744961264866613115199947115547790166626864655394875327839194467030356970878342536793441095727069102988298086073434923897542015187932039949077466250115133709750779253097288614851752146242213085227861962418049976091309657277337058530941776157970116545634439908320988453325211825643437457499575126968056756685397332406175535340742212028136659691700969287641525480242263508261547596688641664221350274153974385967024230616020567694946215097725860108441125845786592941262439788594603647432058588111723570125421694440529787795262277934641620802900262619966059940818015844983369715195111403383608596582215126121264550102401555629313527070373622704123720117850184349781570576536186779528642925425515442314786125681695271914304912543111341020256977961525997246553322887579738426771345254039640441390337062532324355032615786023460167709628048762095100011189832433396550987160780670889238020160521946234324146370419281009228165673497526747191937462063531386824381942259948854468796916664224449838329321172627631211569178123064978612381314157040325961407968282914543122388953249133741100183403406707385217612487390241013238666778305176961150289693238285393258567971678853831416488209655793569559792121668147188407997748254330416859162503064567952892747152820555421884907102435613265583779580149364155002040498343012258254490734016244559048924497083406409162131747239670928333108600366375103124432803011051468994704000728283808257055719198376698635583742193402902483447685874992488908664510530815439633499545130397729962285983098771688718913503691644771725321307736370900892862534175113626634835750932203177038617890569635255038147832228041352360614166796300258217607703186104254507646605415891197349636741052713745953618169970206423284810673399157745919393907178521179835093016067733825961012086093105448036684054243039135332538119080195179161224480065482588620858590191065996352952120655916142933016686423769573585740677743608333377012627737075701488597845796948935180468193624254479403364848095816584528800229686988654434681523856798353146026884552788019761670617066105699027601386714972436111374504241070369833737855437210174972871161229980071367494618980228468274086582217338833345807975357332557403111859426480090551127614370137734991259112187244154866709449578369831627324573470693259128339805186557944196441355557052498521637931686228665759539953196193255926155077641898921909114608732413403058376357514793342300807506244479572592717384302626419020664706707547426688725619032501832160167136246462342675751286189659681347526209234340670290137456165483238625258332875009904256726130859998119428926370592987470212232761615609089593085690179272297046154798680807219325559753684177647594072515240217712286681296084798437704605392003126556858929875379611619003710927867936390173464586051218484516244254719563513462425576412669914911076532512169373991068793880472820445008271465609676514129610406230063478207028528996235543153704480738885194096443689873018614712071956186463285001452984038284518872801402473137554399359981827946330132864822525795167821817447184420385324113714349426784633392498411516728429326071721121293778428125178665911660312236526363481042144184074678241841733057188528060536126709059284946477818732144420736177485552259605682256162015871800837557535100253316367013874159908998823680715628632395360882648203631111790853270738040687143524751670553762460825935680846241122174749749075368301148679231130225674827659625402205916282095430440157859938597631419056150175259898023130814981305087907987544298674427676290944476803678649598208090706910323180086891683928951397481658093582884215035434679911683695706094799509267065190280704922485907555300424230130723150287539901470889466133925705087319440416382157169638334598086201991676495249520721041340456636318780739467329082029457247788182945823771784557543715653104302003163767907087745992441500277388930603789888000721132301509457558331852606001836134641850484726024959402925305107856124412103067168891375692136255161279916620748652777274344750291969171006298526858287150098784493635234112469711827390140528209835154142238813653288265227366749936524237599864686484197453672205128113781599498422867582893474305775320906810041282060275592970112772624177129622158745768145800339998057248970784805890879221056046683009723754333236656167580005070419561920336663412730089757944663666759141904395560471282952255141549235855377548667707968003834487282089833994240261362610651960964194115489875905037098632921411689804354822312152685703847794175607537439417975244283889715792416190329839173492041048951771422246322460695867432584432628864243422670604618789562872395249590808160384563526158579072807273269626177041108985536335271453237475105720780893296005244250787312805516513666089184390579146226962063820669478381301840130328631304108358426436546798868641593795986180189526883917013043675827853331461881500047297911539300231882986612648847229317431871577982314783507873992730693679935185589952860615509803461243095797911776288822850741446760377634806527499886045170006011745202927024400709757741771549431922879528910786880465134973232168291770511339603144991456848899071473527202813033174351709056686034412553797932445481065772023006226267507136927149955749432458582770777050272786831629206798104926618438401766237387085638690348159489070910183237257230200900716681703071955149488414751047677343556464788296127753779610179153825685630425972740349787783368985364660416666989636945761128905286336694534993454202170693511521407480007599409066000355747782789007109959038060351043668152168803095455008759260145984132591361428084370027800611617916428980603983639518436100349163319950452876546161743332214808420097510776351642555751783116328856863581950385982368448734958806801608380812628831472691396477622258993086122678445426392939856610456237756990516270582782934585342804342952770644011170619174038640627723864281688537912479257624073455326109052853400043804376502185448639642006544069727680342639316348932950085489765256658992585911249485139497886852285294589186080680608941746376590438369004068722482264553306713064274670403718901957254451151081998270632596015905768019943025243083151254307813598906017076471434751297881254022978532232596934998880116854101230138405458983945383405962314676656109545255506690897944143237579949334029628386144352203514938894738454466622910191335081918464853212810136880195872893625289028379417712127995615544638405846320635934100384213210826510541053251192242370776992769565018094554837715096867516451379408758464033838490967079932201512782311193119130857572144876848726150282395223710455523330140115770437002767207177769758507255805474367667173800751073192501286110884783513708763003639533080073569137595497068397460528119730176240145670221529331417830399685680176271042912253523114691360364983740108250255430705900584231515907943258081945415934562913156372045417749302967631244611450510803463547208277639298391520344044117884662678817206151134622665781607553193241770249447960471163869519903228251592411329613320224901567058062346575303243055753716284700900215863214418453715085469112674821877703629267725270267202451065383035948025884673263152494274207666439510218433564495057034548669797744587987251674536550270571026199417664823989137526977872882303310494177347115832819734942740081348932857305261034859484913454115119423731722548775111170454850137024421471435866392501149211477549746476456823373423960905328742625805842492849727503542803730973081796684483948847519471718056010159735562959909197506502046155350409452886228337194870528275046061816243380466266746283746315446297209791742055058429397642737569343677997630391419755869362658912619308776691973043587645029507210209754431836773698584645668181796169842131496025777022407890770091842443619584667899382820110297015151167777245696078614075146801442107201762326258741463160651864090458933761554955530895553920104398207178647364431711556952099967679834806996500476168852084519369167592072185633554429602337546662449878141194522087011953451359198522974506331536672729779953972674012996680599982529323215289428465475337060344427440565924937310038746339084552538512341989146450775681446168172617541560994178275155695548337488366242669448130733124184436664613675503378665274526438380319557038010764688035607697560992189092703133013491816790799974131199884409163086309628090465767767703480721799941734342973403954727999237905967002680747262099735526419709181737210425234228894127181345446625836969583759459666953850694649580743794829945219667870249568025087233370177095167889478977375341250001024779765012658003203887082222371905765465075971362612439480185482356019772667816504729755275369854305278752293770816894013226087379631371895252774758319578977144464722574404059543576685596731210083186191868786554847583421256212321578529394047911440473516799811248132671811625063221634927462312146805134903697461073073559793350793692498606319681209471742909189786452787299192440634170592720215946186017160547420334312253295367749243115569219912877723896398231966522912830226037148548503359839782220451664535072277588321312402035912657254910535433694012208077483395997503035118984855309451296352690591913397227691045872479252997473651489924793734511567890351811859857978251721409154232958694480139081242241393066780148476200898781443660158725932889648917994185350288980357106547080917259046705753060115839321354541486220074130058167119648098960590607647893598697376213907512078997037172605024368915090437682686381197231355672498837454243469788055974570458124364157934405103991247638384558005821928840646526088998286307537622153194762299584731062045702783624078135372385158206933677778836114496008195872665092556122330681056498022896093451836500754223578689583837161173592445265367691319818734642160592141713231024051347342454341006632454512757192906392546822057503284849076427641919689054559189199511328483028302670604303910235749781987340911655829177989062395084648573128953455502401477761059982711224605874505131376312981211736825537466262735000306101249961677301645321426658798567243029402956487131556170744742025825762676022566079165710850134640323907465678119616686893467252441975485089462040873631175299829534641014677051594077254135568426337632654598836775436055580487198955677883546163045630735717607149721667035584029129045310263460595200131307190811398542342715880688302193444134724624141317030314006863642481049975814128509452158386860001597712308990940905000399702908912583487128821384540241156751204450777227874458703186828215785994553546683863296146797557609808245212940652017602972673933666663827329849248147676838118471005468256223750686013381960267671099661778955856720863301369689081407849804513256634215575862099092764446404606026752006165451676944979054624823804917694987754595876340437465955040462457183367402699412672256464152364117621262724220647578997555335815175533619399489786430794308257899517099169723544526502569865414811094809542300865700182847368877841169320409447471342005404141556757632753567744370378673701291545733498548410733895154519363929013064529443610482156768511719179821476484014348112273928319182272650129628312908709025644477643367787082103158696342009462010231493911090593725681189648365548371281792580246042470675676167776443075963432969961690394479574466858724012961890594395467412494205261158790800941879689015973740453405904427694833436724923578807906950010293086143163987971626097190058074146001552457749760870641189316415078653809887373549773399843047043534776490737955261997768661866100173638820329808976797025702577549700019675156670165480598247578436417928326051280978401938725016520429826727548395475218317800122277910817139403714817769215466710442996479607245083013014626581009918704375216563250464595705328317456261370785709100835886256087340710263607248229585303230300548297551770317403088742505716636011270076139122823499333398951944993409308148696268404631066668590940882435692940279608614389815126652885618185798256035076369505406038597682118467606799093085638082595618747463286970802288037532682238063899501277825772898164815918452164562238107358508202660351617445473436137762449685965813734132068437684615423545591071155659083334375294268822889102249427253986531556259878249476089271897826160564948770075241243771758420619525700517144816349785761505300696296553593866647568314847941970154138933403474137459144506066269588006224780445976362755991010222589442228831123149899652367821992931359294064594315379825301544953535776683467910445305096487309048650191681266122249396544737017901505552953778568210606351368426491981472172327912491180932085493381713996343487737568469431154028770367246555897980628982802572698147633123257548249244784776293624913533881102590160094683092426411312482866671230973629101657449684556620122147411507061407300299686296135694098850357583759648997138906414110523964872306547467679097976033186493639899369616352185275810451249849414789991250679578522348855426870153234161462488447171499285251028993648373714928628396854852497518264537289860672341635981846254621526721112842115174248641268991573699681944011341258354220942076323232797938651632459763752309843024263073754410035599315203655676867086852924791431178193928722677492558974764435503707541201184803914363015272480809905364393215296084000654016583671658005375863411270956976103614770092916827166578523755188585810398512225148060373015877053617456946175076519221706189992454461168354053686315716415293839338607354848293534614696583103904393785119660605585566429192228252804287615768481549231828722503522099181686645283641870038553248146292953503058444470177791422094388862864780090253421328387214333568052058279632740447384367723701070243595891015647894615530883648881389192264385601236345659251185753671444330533146687119041430943053039349787034992287761854782823958272504100258024573334971587421266876042012868639014677438189685317957075804931219822793069614890719506049676485487709600549494984940712880243964169484120662737862659985331178345745479299544326522658923171558835719110925854380978499922241885594789698722546993636317224310820850535110738275463836808674860822641046090699165541539710937905806575675077646215618783756994296116621726314731964086351631695880364836637572472645378090055605921200124549445322345849637434310433771280233534887320695674416148018588663068751433308740871481933888719892545093517452171897626036911483951791472318403972158386986545865892632871982619600317613407441932940392273826511369680001674298202377279861430811977763892897938872891650148324566939987100885159359317323808973779392380604443986805227511310985108967989616142880354014458356947004105230714369931449343784391966900843411887359103051817476620574677890027476531418257771517939715882200693903875679543154263834545935614078879212413297231246997004121932009764241483560561611636359236990264336376527517403843382887115439839868828988626367742893944862531983469125874917458203490409543058260308832473357444726119724366512097617152132694355858163555971904258220358683772112290722654724892167896359713945679668951426879097164690020978566817156923865871525506042712816539229401771526283198182346234792962482629816787785333669607311843649069728943374778860892097661422177769911650034734353888606036764036466058604143115396271526382173719997747204117899954980847350799536734981232151613771348342650525688928545486813058295496146059030269706126539872437030440227924104967939538811067718492255462920444935121642507480479386678010083372262284407739369828007213972640878613056813571222222130990349190698807815968266896252171161908886674536386321515108687690996390667638895928646501866328145280372177852996643771029398752002775364641989809409587928917808928487290343504347179736948322219199938751710311396242371192855657288012561209212727605615459161810758795498813875342364821711446384679884632385787396984844028832919707499706137420514590387644945522254099406876540208352995421908199334282132219694625311328124426439303891148676582041783742893423662125073962301436223957609051094253089373170713615387383039218171077503615951920621857269304239630390765235763067276045967353532604080271860493378074202664925817548695353817959690801421974206310451421405332460380579098562203566695825124738810773191902220962036317736363438333764667717536511942570174499006409051136510844970235119854524510987486380529417393933734925209902502825585233159982429303240698247342594486722045973437327972223639218027540982071647155658990445882237473377875884865882006087873739240198036570085295144212017703573252308715321593793945506053905832255416943881121276002097794343895752249139741197860859891751757854920246021429571991956908005650349700921330176851091428023582569824497784891860957131077781352888046089655960888525037282530393426269874052980219373133379524195659606461177972612732037855152419861765189102101437465749772425948415181806678487154579130746705522538563103430898114869052218677139189946243881859383627811880642657736044287053646518382815368306834020353223234212716911872717159945299321244104512251714227734060667435590067718206142128061432519961183967678848322567535457683164307483906003036080007897484349759603660432067297320866515297351990132359588281440398363454724495447466407310885823342545305646454491556873342408833283448655097172148917132251205225940988641622561730340993320187816544943112194336304362822868878399172716072889661657760115979799786349796060589592261789425223638294427563545663750098237814489770419206055062411429439959350202509316671233221737120477709326881339350921118618114683577642031087938108621128687531643598660906314013018922256240693240354792381243142905499872160200703154423174781269622315528086728465224757206059194904575805716214505368516160758164295627583695546905934556379652119366354151231992934299867060404686488383350932915290100922826073262398611718758782766547770267858597504505345114857658019465046981820818944876478674922559128921475518447661614994940987444387349272352485885404218536090218068153432030009126094384407061424759688843563217168946086370610265697426955158835929799190134612344488978057752182262728413295361362343242784348214610885741225801952615809235339314582081279647781855353138709581050318823675732232483178622754710405834681210267257060434920263223149487864873937158998317436317899999992319388240955033501587448189803464445937507875349055178272189062883529942905455707290844890921648366499762450419379945577684330449024614441981418738959096671367606585994581410850404201294389605320054137967626537432690402647142160003829930425595306159824949473542989102308586369626202796686313379476311816422314403482542507025013937400503888377898250039992723649929681313735558718540920112628075158115292523257656256286468760716553297074601986353627614925655847065496773115273026472534920688085868237414362329157487798590169815128915695783045375017450909442001922313174601538686199353467178586341420949731906378462945003485910868683603041393976990331967910962800303116353671142857454885452362565408672292166189015951814980440109149750347342540421977785547965992317476307392634201078369348973648026289698490937409249898825153480723067855251205312245500512232963319519429174532276091400559991894832895490026486174413372126085900577904938618871405397167217028685159326681444073679059831407887831185941181141679372467902368765178061864355874130075301627972526680967869506474749463607167951737489802295975778354067246296168372812419716058503326486592282479827698363292689597784408591320853126053327162486563988908633916574171457949011106241017594867865506132881076812724436965034943068762143614692095365405173574088219802107195535247920715110623451323656405215900583568543302796027688611639086923148363920016180267088328632212821364867017254755886728437031882898516670862609641620644340181170444838780289480444895091218933405626485492290512343361337869802373861428033589407022953294785384289442817416523903065811833609162794740313486914962655862809004610004822669524884729773121197381202633198780644097697965648260687841606697313453256197795081404551269627133651980052125877419653568468228889853491971093193194552798929891201181964454282607876363167525365200726260024248105148857184364709110837552584904254173200048387790427978599208137568396587271019663773046968466103419733772470867978728884499154370220212909673382386350548796534186992213744390049155941553784482560031943667348080744884447212092904897622297000846951967732544528849169763602815194790330728801581527472595564439112191641030123819634262888266195000461553051113818203841597440263733136611130026876955950124168587182901735104934514479248761363361853059837320118529924320790187831478560500523240771123476045801200368057446993202799565255828168616712944407711181916728016893543645151494903506009952842036670961253312684484804283750122543518825057198901730267978289448260962791156759205286236944450376834913549700008912299410582333179396074224828472838441666043960274381087583817569333460380867509955308333149136826043599294777142581050068486112600894408052110055517761105163900540086032094845009640903687244393680589040025264769499284894466040639535132550139778114596844798926369418627778107755614102689492029460632909483235884600619824633784793256219386496187287270977777126822642678660460503520805810304806863644608089499636023090737427926042716015107049674306202083335216820979980361801484153135050644964599933770344244642803370801878203644862767655896911944883623987833492280607510495208574457682515247327043615270895589095397041503524264612289294404337183553277495487719990022967011466581366065832466621875593003803499565488280240060596901109411507862889361688335326937468031521741259430478109762776357830222954141635423216155585157310982223280482967540614199252974187106824044328987073744591515500565528764386478278940207404811193094346432364446485631524306767188528388653300405426916904545998705290903500002838209797623614582484806514151987208476490638215860113161191125296695569501573802115817564249913595671308111619997058736184684641438981418585190627933475794228552929100620555773657073909950188434763044236966012291679348557140209975064435384134033165498408133412307725117009182445795975681646561689065587028068535209395183332483995401177149182095678571933802928950142071953703933054806661811859972499991763791690611543824762127358845903649062650488635919595322584547309605105602698003197929607408752125710556841053065925042714306083171661691283296107057867493628333153274604286871673879460114148390671197458478433507105924108932343716591787749646332740893508501918458822883867147350527502113541899543040607722523553432168036816384701296188516571382504899426032395301412381315661574890045873830149842344881945874555137423769130103106824299869167839091230075564265642103364858153557776595204337106413497988990485251387389841051688205766676866063230465259288399363575780701456141943410144760018688128902138212714958584787332320895753482539267820863732299843534405032056971513557954295509915790549715271453414946026946355073891514816692399209164294815643133394853726938344136855080626012005157528179477813368807324558467669817613720742756387589368420873564570731451634211393246523534976679948342330112372238172392745781033591878719954903799766152014991735895201678761437824760742462090234271027169088223785064176569722081378427699574914344452347186063855251254469674612020041996824286937817085170460336973937214187905894591263719064173956184184590974098704236172663802093307510710085554973798944403037189089849570965468794867005891551882291726876544112137821063357772730048188693987623171940570340348327679567326942199219232440804505982310823619114432398576339670280857713880173798727531677034533590763994608108342011955145661117826439778384034140380986389952933035922097783480686721103773324528736804131210009543427308797130664071847251420557009765002802444515946197829970595207111630509877552963652934259004310142029920112316807511220356528471047408634427149022061650146407416938131074765291104915662199880347829630689862426020841707898267838564190506459333013225015259256541386448017270888688731699617856788485014320218676731039709998286566224638306139317364802515454565828200302220403593593664815931554402918858112904138238876439140153563900871535702408716532247167471626577400084228371115245402274625254697364815972832255735659452686429143824642387166413921172530312131925182111472683195222798455313082145230583192918050274685576286775282666245092545035808888963279293814411890269197498105443827389499565346543418289727207220480875431875069538771930738172411877788242610700027910448159190249494997021782983376600055578109793944816528176544171926577362757491184278781200430761631050074979150969046745160821234568626872636411267042969692204935440891553834529528856565156668475252784386877979801655299037135717825543933305628192887404942501361565903067693493355908631490613274922754094904532741906430242058525761210320356728134883122988498096150413895128324109206035631285444648381242898239429167263655974917803772843432370633820616452131332056148070689691264946812815784031124796587563858108827409072663777826403428242245345766890748797813694469180636039729631950455391988449256726219857001160270932147512245300031588735741508331250435624585699673496102885985522028686429218335039901364254835151795003757297374468446679571581019688797828612012483891072173435750636187685359970629080382293559475309433527395111762304801347412286283097099613315422076803480319597392497127675505055951319306151171901882059691090440559544159507916255243438787432237930234619943699310856038452538973100066144125513577874373975615256801285301653157482386207638377433750810725183403880288682182295528329662632436625988503477798032363872407364681402400571745649053379725757675173100141450029133422648356202546557516271897107581287345902520188270347774446760600442609262154823701145620332160160586376898392278692633686635814174603853393273278422960503597742241953582539045561004536864532828868382843208153400675151563990639107476810468440483645365455929403092468380603194599730652809815224885260511877286279389266710623751998826825132299655192112772681297517577003218058588308197945969934013241674294167308164812921913039362867642801029632091946607762047735238361650477599482916421636686626833759632215593026922504627929584465743741849542824222175530059428278288116388301662235018710524911090241013539783720210350533802749094084969452626178675063552218667268307560127082695306853232932494313292476704094835852337933125721014586264480151993507879752301660483072261742709964270141868308028088193021224538836005053571007137889126107067970842236632993110451256177217796296826263614119075189322679588345523170125542438946713489496725100455733210799081260518560508854585223901944610924518950115165850711521788073930690510268689825028062755803785593909346768478890460252859321785328836192178449816183396268898871756548624825923919207722140790934924374303642943116015590765703687452200621247753175043160579789810292433104873874560180827665301757475100609146552584038171086751852430856510379779517201523505962567167374300171028126281514031229950899862077769644867232636560009751333543068350947417537767173344619561281901571601880580763153715252157603642242930053390022921515839931641887251813776895951172558272008220798946594318500023675950990575605543594758691316812748584995090290204540336565089370461993357129864338586974472143282919793621623096735852792162266939935398878945076822146952786462737591897671747776475995829228765912756988293861681689660954753781503473934872543379126687339839907686459274548953174901105788112263125118222789722733157452956388033353916813480121703555842047985544537623961901150375190209427030995880805439147129469430948828282442622045775257356081834891901725626915378869408792991291277173106565763488680245941924738982890644155281865995578441921672520897522056879617080555473341338961824707499286746939969229054714788366800656083636219479860580506949593687238267538576000144333467647438558195640148941475473822229123782925707876288448404287529912968782663443701880179253670760061614093075158051749414477240322370346672707736451416087641953991111825892060849668735022960183162101290948932127448449862480063125040522669099406678140244691557929894292380266033626395672147523117937437796939270199738661373603370499035212657311131949363376432426515281680832198992912841865172277523340977902772320036670572602250889301654649262766992083775671632818434268656010101784274473157691170004111058854113664656685828567719495025303930413275110437441966225963091489534288117712940318744435783363425811022139237961571060840825333117739980021238235693479748924157447362245564947181315222587245749123587510239571932945695433107172802765236375860262518174596128827834315016124032358772877350259198015167649171382047323737119485133525613044493455771070563941298175024845197401025063411340428457149002792997630459632162955149246353139989776154991202709862472223708134484122118009215257671602253699169907283179047876998239748835110029009192300885912110059163221269105887815278212401299548194496241266771127713787602730734369388189526348222013885420044301632324976340467832566190599916265050180464250233406448125973178907556413600636998169142195745826177121497258936131915993761675704857967978898858765558428975230287092011297552356156743857684407093715789371906515007270133989021762617436797734511108632164716820301154969594395622766224100275958820218044526296851089805498248574710226896772015305589590435655844156823109188488586110876088598822502379603398005654339007193138474281816293601403955765541234304092718277628567180129095662321332944943613480320820701337624096885330385156707598318415251879775985338243894500723526005732712545834747284464390733587743477718648818350527764555044215860280082142597196818963143474985808948740596406744550031064379051538650636607517840082660285860226785091037508110860784269000887386172172026225454264321855792945654516213774944461850876865736976096274019463423718092513405481057066034043826988302592102554285469502272880508713845598237016593022855667462215189472282131233113565980047941612358780002470205257170834903252359521757201487087619983350360553770133789791773265747887160113464410000970764545606961235614310462801498571014756299402982006505991008204668284703863781283175170024503679958055914911385697697316403376148185437432285212518794963367915402009461682444786387703108321930698451540795922138353701747099715261445265697730732391228761435561382118984999818734064839430658662569001792968843343871989035245851496417324336553743359844421733243210625666224997522896939970049217878408699490133992269048192932581850200725402753011630298947269715672180253821616970563793166795987940448668106806816618726181265691137390944568869955111959950419359807941434151184720236662772632022729570732493044054044285270354010133037519956644882866698315017350974011791919163174197308137091725775475048540334733140121636075376897283307580793241513093403374634732883912622744006553096562195895972601686234844203503190491543352559182036507448634239318486030384067013592210060819335852121453323680480350289454582695428510808797322632461395878967428251759201201941809878265420082388791904577282795181041880536991408295378454049793217104598951221983142380808447651595973399915404655209393638919651326434661355725518573796063872799737887234034989148399722712687489410914056608323977768365808611779881295261192063992866001581929019343101431589896291993290280509164902397552181646223837636355079837085200401966267605870845332679065885547733670217295103318506237737794932032825564601609943553825645415792788071720412126990508397757339557159014227227439075914907673382247125943829932414058386089949658397468054928426282864712697343316957993318868471386431516170493838806739319182479054228177005292349200348262274132240692314864061942895319520478836844463021674416773292685440631284965272642536443613690935368257528159099400543283840364831994804529697770219625782115957217589214421780894996122335611621597724181587682508203245186292666133478237809601132490105088893902546533487926520874651669785224775767213390583512838914201736767207228278371229162509401215306738911124191704168845358417409217815628341667973451220245411394283426620161857655577613115696673050066559118988841397202589139338379577276447667090759094129312917557232127784609611905850031300893826456957490797837181993362704925084663950232632993974983497010599192271311850694066331564878288771916166959202222986703047441502282823450870442147803794357627976354510263093601285066275304513128520009567374850464890293027306068887087322040325676649716992852291960691919532846300191827526282530557531161108460317192051221252514394386919408324459463911084079587794454773721235334966542154322816779426215796641528315841902996307505107954566730508918390851407231990111667332961375841904807870238099317002035807048618606227844437415667608250970386080848579872575970839956056725036900792898232682426368278635599255827326164459559926164240933385884112577441321512421272302627090450301047617239032405815374245803694189948114255704530650314980235290843480594174465015065513409665597358998967081856891988127487846682072613641834470221038298766108379981159627798316641386838446600517835163207824525728642221880793602223544119973381335594837387473327708409527639987305280001145579793081738245071797344951477021563210743072459488260291298588141637123382455654600599554316383256066113898327214493378912841033557360832788922304468073727722650864880539793832039566664865513158883126428961803469373818613772028391552528562557453231309423924056636747878203555028203297456506170577013499266011034381956431127435498352949187192381883975172391025578640246498992995494056478751476098231300800596481036478788146396817976497620894385150592140745638097742185964345856857538285643277276085894824595470952907950814816709067288896713561925101074163276348590943784096110641900426832113013401836829025961160433234763789689696864744661404863276102442410308526716059988272459518795600570136297682625225230512416169604334689945984874407673683291696797339759797904815001705364343922992522199256409647601665001039656819138345803121023378807882266195806186626307436151142343326539023949799152002843347503827798980449146232445564059141919720105281093124660722753104344692848677040335164600453703135108873939012758725103878488446005847147988573906316269282743794506285753157932994519459933874560156992086946464503694484173027434633548892834861023596130881220816129754006259498358718486938517946398745989679489271265680485861949597652685404364330271166210385100958741477367812462526815217557486161605177699540161157011978280550295133103798496083486731281557624444255264319683274460521429439149005214588850226576899747590007899887237108731298062474886890096842087251285610328010072733213577177475011871964487544521271906881446058321302094871189347358944522026617324095130635264303929871516955176848856742015282076412088867217700542295408934786284940673130201888813023614705870111940281744744023813535789803535286842968335335456615599293655607639963599659580458038909099084749500719527804713897640168658964698309615866149045958892069588641736085656253705818300426821629016213498598871284229112916460842384670592350128358243627449069630485410595718355707528717642974746260037136534237428619518538752129522429108170435820191297922224813942552322435700781775464734322324314829739080462254435614342351214312547681713120694607574001483248116610788105647842977197460962829547817822543180040214349836709344623405518451502456260347614314429821755357416985661037843545268899847119170582887932096891480019631003494513830724236542909115945109518015048396635970160362905213311068834372509765044536805428158173043446083708627475218582823617949910443452898332210380911243255023889028659365697047166280292757765718733083123055627658172882643798230726751580309434452399730545455955447377146285367719932456021115725688749475112273796132164320338729619720299788309451254219699985611659495977512140278308442501878211060563430667451841220373863601714489883670036122736877595224653773630549791562206065196231514381224213334799524785417193901266479700056162077931641890632907493323184872272358949523989077526609991184064063324756608525814179865440166950277245855449470453863032727287458357771204850775238441799160020519935714791934750412599957941379463922061039924498854128774696660693838905754930860693054600464320849579303188867353701296187935711867878805056514467617317714926192330130239853141884956406125716368179824252240577868921605995618042567720234351919388913419263211795971892836789074791156374056370592430925349391263850572959060856338185966507894135266701941429426947438169464583229977430302896548350395963411294274810803502994481327407548531567059779212039165506119042405882144719527946137328260078155412388113230282763613640045635637380940435297916202891456616614711271342665026477519905034651113474375738748221681441434826159190656557849522068564839598906569472123387737286596136694680316630595361380036134132551773464162916023395404210469843913306816741353850504962592511501111861052055181985053253001014138636623949553947408052596589907269867140641121926258470135923910841219973628190443119328914254638175247347941825187031010060844427359943531318881339247210350367190074176421434128992663299739667566176374559995254321234498049498974255501166790740497652938132137955216386902999201081096687803326807440220770425829310312600407941005976960364125350554334027871423682733969485339211119216816149965999348875907426154766499850728232785665279713330047443926300896105399444985405629349194643264534161117021874575275567814653196681224945467496813047892920664282689698092473813723011795834705516777969947548944901280962341941941642985386489015633889403717281605464282003340528416434539504057429239134254015108543039431634015965099613092156729127182430081487557906908358775231459839365854003524952960255528219654875073133038606791106125110641802056714948387671847041672801677671965984752675801866543261308144023716840822203259448436612967242253629507177690130225538395043500175588394459477767340230566144052823368732227977534366400407200115942340403330150471377512605330167944152384165421399889523323161332223592352288104193671745420432084868353777021706070005564284044357227814562967486905165641870080158124700394053401696625162986427589980089608301204643379776417637691086911188466569257641308367825762617109346805101112855962177121975968631264600075033583585833676338844874294985377383802074465628230102731452578689045935764405566720237773237407500673127096998759305394325998003946070621343678126842165342769764289779298717908848157172502784729916033920895473819870342807203318214348526594248746872830579348887067412881795691056484090458999580902959465296435152125543709492686713968534828055905531524996988874788933311715286709514427365939682498074877103533854718988986885397779027162225006230440796320211968864744418723176138005955863192136190305828877674862657482148792425102368279375637861607693346977745994977926337052389665913332363720381993128879771307701252504622404312893201263495575996697013933763553551154619142727806023601692145265691558728347007464374130191229823466413365157093687763979707433771897790841349152395860733449112027667841339309812694727189194660307361938075155184149904612846590554398255662862500267133887432901549248084562329851223794137617543345256764907997836541808952862775331780416160744600871903731621240017096366062426543630953357229259122129038403303087341657264015712150831088737229081828384577860985844852499162617605667042748467739302767057631056961146967925496751233322248404166127760057509157979230686965104734171841809175158917027833550103517732581727762463410890210788179176017592294347118228029534702856037766914910197168939967833778184693626736238069002040449297583676140840177245016095890768493317794656644625215347273098685104942798166856989676346535859842683623234796693760640570130815870812115149209919742756740173117830398136208775545863134260179435221603963935122772537218528708907470522737036126669229679177032651848344769245442594751867485310930066313639830597114446710625885302331523427427430480124509003423790331308812527282051459991183769366331407336460590288065389493943386524727970413714416179361469066751530916212447810111837132248904723077275217871316984161505629943050837662527590781868652737161819704221104634327281209503519297472015874532894491617468625810360096639859086173915737445367753070834439121873405975112137003177224005447699433001213183400619349603078166532745697021429544692913518072737965717284782248559475195255149571280562500308497967305173529782344775986457778813993145625859770395289222874005696858303392342017542726355885327371118149595440675427314986640575730338026685562275574803484131342656665966350207539676283036309238125839130189915524814243967918572740084962605859528395675327242767379032363437456548904365215737635117667171216733454957722711605594001006309055882891539722585182374775820163936274905710463101291890724424119007983957394024803879329696919685659141623712533661559224074208776372855257418116863274383783737084020406813414501138084814633251940172815357380013309498331723247187495745730793267377814756469392077740844063655509417840523569770672868213269958419846641921623221538190143994465666577150479821033000637099086445571748339836765008376638505701508287445580673884317904311441203860270297930774494404888584410488670679013955904013366034680161398283701387351188780675219483733661763136598834596203422039890836079300839767472046455446093677343666488435459830795516354806634137377106198744180790003835587972873192341887975777670813983717838942980155598230701401644884849955051254077815111680273329259675137268582021550026555032346577597983532717392502537149201425605346233778250509964414815952227707991774763487313809542072586248380145329282448302628248022264464136094627088366547186835881468580871870284302543723693559747885986821971559122661126189910594996016880946362491455664533549250791885513901521411454509204331367921510598581847538410081892626002407668944467536823113196730102671596728602195362333861241845503565809421901688927033817152025030388414199389380849469712993718053724463027065188441370426558707859147305020206155050747173805372920192838441273225375862108267568744331252501989553193879734607585701998239443187516856315319638613628241411434590088009119363843262577455735514365766082266307709912182869679636110543849051984063368770995887975055659273254889711038308748053107445494860901765744203925751491375551442603818719081485961831836405421998977099995842038523506404959999334776355456651661565845502108989941925841825845296021840377845450605975160016300785322603015668501372782860625675623881618114135385575713245807234155897486072659725630189871142689315335940147613313014559296973327843183902432418547075879757790357581109128393060127882963915468402399679929180539150285621021072722680481270929978762392572917567360721929787138617798084335560984899980382924709379331941559487256296041196456053342731018723575758185113829671189671379400811225937251954880377000384431799760152881436243534648408905543809461837460547708774925264278080993500694344599133198925880855601770561295658638362727128114664446304640306426167465953451292692845406679637519264358208589194217137259675956562204065274893538332814590673679753133868710592664395630735127967457231236124037021216259813355440954904402434984561700493555028118001184646561365788320827942278592951804435389807294624214302503001040759142355976443834323327142549453261877524884943191099355829685621298995276635010768246744185206695265363218136666127948966397349334634196979926204884016922226806884815626981134877058711027388549337480370747486594726939312305037233729205624057471053728938525503972370602494523763761600977616343384624507645309911209011299067053089237035292371648765491166797744909009051259995318134025693372772609419030243517460946369050207507912573334815275699285288017050396070758232915101918020301796698671080364635718940600331445940958039694151209979630704891651666096024148399589021462191876867329587468877787925273530049757656430775875589365300009804467982554616409993888760759995933235131614464106976572447408954139679908856296136028789246450690944187569392404940565818701376260498233218683345777291915606221861562686536914249639111433117775875712067504852806500979317812736834454777640080455894025398570442751970312084115697169946697564348591439861030829764560019605376919792068485047747158020834126495557565532525453432886373900371384106212154668209814470089690215438287978635021861668498614044121383326805216294680760355679274424909839763230087512316998868956689182069572156513476342063591611836588656134894237649882495187019182039445437801467133305524822491855750312796806769998473213842977637928452236089724391257726192818035882008247296029322222315137111973217776232332787079896305126872733719239015593872545893068534707938726127827456157693021329485518603597976391988697537668047279172595745370545985340007369350554843951903724101962725552868832011885330197813298845936424059274923157538030883185652476917632285171600031547187488288175685062849261373791510146766930812572128677370949543625936073908169952660216244067653404264557786658428171042951103830089903575248791708335443368778954033063979637567348335970295816710243855480046723346447328245731906866852110782160642068147116021363012562037551107004694369543144598989178078734813167857930773626413937365930383485284646872509038530369247975503737552878572515524546101133163572998431513074238494674614022563138569709575762643057146773469675876339187426837045423884374303638516475102191466646915357725002061183813228442801318602367492258617356904563901880994649704628320003115413340821880054163183290597065208612209911348004214791463268274756305561551282451822659865555731908897428535483984311938036272304224583906387716466359089015368818430685657668305469282524997092983581212058147920814877962488954570418787541791418171019216049330988008636060075744102743535113478487019374663319501006249044534040152617064465012999495161223736671608975675276795845515230794747968399913637461998112980261356101702581154259604187768261861891204810251213622205936846121158291011747743724419819608764234503978226873850474688468587384981204786763069015009468326521846479994212361056859177380658072687136734622535913223761636431408203258665203841799289071295558649478049996840365480141895229812119341810914032204665797067427453971609589378806463356384016394514534371155885966709723663680323340393201943865220618634053332672806997349119563758342742841732293263948430948287841725880341155433447282886637665807453536848491352854650810441759745035692750202083111689645376649948164312642676444816981276103780642887639320511378738003527718816403711623961227764792522058409244102869682476604557649564876665346555120123536843079002612996083724716686793745262985175352691646926018400594713066369572449558837464560675779871352877680670548328096616042112084537378669433093958016625563287596997008590232136159286677130329708226222209254806510566047800334613018562186358373546271974672592723348926754816110363383405288164738802704151246839218270696083601741864457227881107860467867391658974663909135738326714516021300252254666789672939770747450609204802141155253514970993080303427490946068426911324959899663570297662729119778306188480322879105721064728584610589609778035594523236368551103105409297073688990811892657667705741059031245885174747821244554105293879060544634615451156833707312364189182168945086693290861000418867896595541283199067551196810590071073455297215277886838015297397427311858663335745631708658234655883489990369903447902625729385433434661774682448698447699293786000447110596399842326178688257070239558539074006543095147694982504497297861364823372361665490839977865135193972442339457536923070217766343950420810709825102985286085190221601802787676499020800725606636438143582258420987716980527638311042583608783616744112419755270677526815026384489936318906224012164912373258952799846229159593192150092703542563327829349618469393173414918588640277395196860822006413797251851171441878877880534333173954218193243595338823544352152657915438496857811918335511042360677230367634968761180241444766351304815549025413730059869137168383009098630942503493781655782210134420202205135054227743749574816952257472311856414843116982103472092739443295237935442863878536931189701311627473872985959290723606725943059064478931588451961593194407998968903340894238192107685421186865983197285416617055625109198415292463305280886110582800234877630433247131720808718021757647154851945331424765481398292087066989903405334949821115057643759352794957380381223337792026130819949429557327782134789438617967143269853059755150850388241730890473060758349614992299288349331192852838046491901732231538913432750248684442301882739312354123352594301700634496252308947066222149899169316902365172169199591473174262088902724859858473503424923238051855878478129511848579607116483060249134535543561108350466974426658805428945204384670460593259580627208719793484767098409275083507038815745212790357073031762434155495583263198843057033061565018115942589420557734834369034413014940262294153214221134155243781907989303116365823736221492803568501345019129922039607844797754801946253877324755458469799089982681020662344691160327156788695344687512648795674595864830738508107018511936260580002727495973154643980545743474615655865260719581276524344660716192621518807473358893306329576349601183019806862757284342319555716261696864279350167552293149938836118401693868364043811530519559742222217986421132985708968517319841911909220035307704136113348152169547075840959104323190625005902341898450937662176588230284593250178932081616478582691681299578322951004483509873121250386748074508181449114802535956944046740939264075097682430854028821393946049012002712624222781042141159388908678251184902850384719552249811461051630470070920396882890403642420791459543557051525679130114968533837225420827386932585656492884038739751733799672805915171994015773821893661983084459509098258134488121622056443609356026783460374432533983809795758018046428530246623839807023682597400472623214893660968993174794546748120916227379288837103684473471851590588104416622873865476603742396600643013167601799220426070224366014802212211337954862788218990628992535298136255584015416023623989033581884983789571872311580024630536723585324611578832319303090403998477040816962609898586041725926839857814402597437648003190553699734919070656094481988879311077057977631424513609980195294843971996722328195376429162590017168446375853092397849605329380353100680770808745376288409707255187756494907712144576186635769720988476175326417065526042276227915051005638391662453417353253480188653939031690895311140771307800068045406136319970765469231176428763827485948178463803014782222701919103297700696650332509347260221695447649812784408488661484255316652577416202236601523609900574158794482742015107424919699505684930668974746915371409745045536848262000427286094664404477633419971628428037041469403293572695542677077279557793173248381357673191002951538361164957402898082458118271953025095252574274051862520611134036386228938757348170045548220799850827154066100589640460098147035822050622252519882820768871537896379546114176968248100763830152613243136476070114505582192170126682432446870213118260554267648160199468603142002737009882653164666964219284349158920489335892859373869236496023562990363948969979520893389462693778218141075095031502010279102914002187473043131869996728707033823981907584591557337866361823627378619772227970633652281624349053667002757870461017819302337713049596896363110299095995743624431138344678896896694946403427967349184320195875178289798301851872269584740940265678920930505916488104708029377372293337727622550344983482248289443345074466293767561867829388325887803616552535136977252770343120115040588744231207304923588594283562946027342902806813837926176281331092815215731425353173514084492778179253821027774887221535155968157506038668238425914714770596703547139468570236851597046478753600926430597032407276614594111501817325815919635256334615089658391149194183374545011714070048786011748150590901975927779201287361828388837477920409693214954545208341983510836665465068587202300240629697111197550486913277532764127482553667850882870820904016892794976088074515661873747267614300247446520938504032401682736749657842065699929175653009625537440870623912198964218182632349451675772970410777527919437082860191572245641699322633897567455840872613432405729911134022192015123714021740947596158182961691925097183659172996622536824189569499551946401417168725370404039199381810081323505798103230411794744634606127010519767383025725036730422767964123488013486096591263190441061799115568124895603187328146169319504627514024255826873141472696193016176944651994892673109279508212531826009586761187681471071317248146308885316122403954086620435641065654753504365360403587645361076979219307266457800600021614761171494749052842836864258162280104232279186984325049774807136960039805185294987112761744895094491102491775598891128502105352964722974235069738942329832050642502496507412660718832060964497122083546252358112261397542679086892083267577391197142374065131409704674322391253249542555826129743695517692083743305841806958312471615768063360054223210623047548158820890430035292559318653060861788691876538813642437716624018241262918656560333678607331535068872901131545210604993487945510768533146250114931556665559743496239111519587464467187721880817964933707934085836115579256178573332023458421286634109326422024074909691120419522186028265193206526174402306292563420916729775000737795616151282757566125595701127942587796985689925702811229802230459399826865309265745872673362757935760494937726246191496990290391118347325357032448131389533859307801235258483910510848268930396313990243446079157722971925125583619250365471771133531456725022135599982520990090801872298796506902447864698481742456722325293400465512230785086084316877432951043756115185292367388509119928852548562798370674414633483295466529249226242249267282316809974554625448815409172141973670612878581683613849343984197578430068813741829337175295448601325496985593112115171630197532323827278395197958106609795029919720665019477648381568682902831094866314252639764778414875604024487626846202286907776253082836657842439637911626810399441431900074319947092033687745289841203658035235738973918353611459190195094742470528620550009875069725005159664399874685100458467557099937761986294322788504061507084206611826461667436802515913392691475129314546563135928841151573561716438414687807859452374907343789070805542776477581894258146164825029224414243961934429632485756588737212217799071666126530266535072526447890489171612134976137864779646634314849594985565093483527436169549930029642652367173626489214668752400773608513190796103525869794389316009631639675993100694330392841249388130357473521732720102107381504740381076217295345233771585078754051038022436132118418698910467036510174035545946433734231082712166192703837970144230854384284226242453420493489921133181913468231251053586094204923249996428803867655264012026928088403387277598510018445864526933218763877377177734668230621279457511117143713103584044918466380416806890421772603716534149848234364713418232632964005516519406904528751081332623166617179872622811659691314257302291583606900510429533239863161729124185383369873071181041248849383624956802928295427370757569422962606580932548328883072599164302298196993070257831972082474516391060410454560174009928837521939973588483188559444220823433168880583203087740892862448761667792168533680098444569142461943329029637676112865442219384991751724084191976714704459331590998713153420446279714552701727081559062412702185762925991966549343740899369426741022128389758760773600141221012483532689457935132472053504609508121293915036834397232202254367557707900981693889726777438544881231107898354534863799313961411390290360877773781070141978984553374531724663494590206270860585400372164784715136759512051693748374571989170812337065068402756486753852806649401842170873438088802975224258719352187270880017778749354240834769435099268355331924778946680486868047200433195614979076017395721329137598476989096889370922174794741239252874037300734047279349679791895478820511083056047521316901650358762930360408510741738481956547677645903610737397264534815472491179157635512973968422226850861658197110801232508834922423303859269405701234823533183830491022529150519692612437551546769972858101688840397869597016303317297589739166592518021119218729491289299842933308479940092129560306804965032318450995829714764624262173007935076259928283203773266487248874622359532870689612917051880449890887825113246636758829890252589114795132514386574953807737297463527090177467438399664680447889466916941405039665373314155886306491577569685487303333789697883344443792737266136348505554391657729269872087951216008827605480233748351896059597980878318157578653957382765843474016118278358783648544111107740088740192326438992553082543273146332987554376098536783610838796326042793507703753078975590945438431050362613744992249356459029805246061344896633117034250432523452954222878854985062832554719173631027485981592615049078040029861277148154248848633040659737228933456495026481271525549050600735719135002027943452949427064697975464579073136101510461132861790951709796982970028610402457569348418933461936356491212456690259854709648376908860650728148383608766498041536897819726010786522358731695153110116069710583292269076667930395631642095216955881494532206729355847632481720945257398311348989440553607674146096517912273463512688811940745880518292117233413311773811200096786064048914681350082013442578466894240380754786277732944234777585938896688843671426308055376681678506529271240017057144149712244869717617127855290639255553124766207985031392813867012483990589075274860754797588151694637072074885685686205262332074742699783001165195350762675835089327759356954673066197726895867029155923896788635645579532954323994363710869291107073637956326727946580436400690573167933771735368454456578056803928441972086770984822895846291631645503173956616425490343530964786775272495328103653192256113636291743698880192468147431761958292136870707177467515614287053678077790899607114551347342846414719989591197889087478059677815796163064252220550380396511966497957431058524846875771048799201482986847455541152229257728104746540260826033235945948773942340762866433883071667889012655290506320720141985004503371457770886831124503696649222393384359592106614574849512379564493822418378344344213119552825587521783383920698459915455626132956958038757042413477835838780025375558773386200310918116128093816910660380421368822513994290453704063737266423709393928306997765786077894252075502121181192031550127984663043798580672120034215879053294613672303246713998591391474344054532743414392478186622832421814643648469840504702409122833544167341035414963685941845989850184728809120236557973738604784439402718572298160084299717857925922737035637538315049410186405142969152164580449102865324522377469257415818819956301089244371427006231420913176289145516703124816000618848304687825786551980073232000948084369040528497151471811094491947820946918873285981310891234802928097216089752404250085493117057850672933883246507927361385131109498762812550022952037919973112294866782181145757395692050232389579082647847023913000991551049895283455847182452678443443731272359037179988878799746346548016104678763955197923223208943546204360437459347828878928214040797199381640779747551869681388249907756516986896109199297214475758208485151783588369999893594036915867333605978200512772669037110942620677495260694566577499045018570615574573009940661298767729877988495982188448704513563367049493241295532893846292457540896702904950759331858367415551095365291146806850152863711746344505769317039734715457089116925989415000536976368073039732876748862171323966004188740452712326158311863110361317502036842105197111588903742121942938358289210451432725250767740564611421294445069772219208714874908062967214864639599133945274322451529812397718551460645287473538861594576490216378896587991216935396524595205342919050972524360291162092236941793482091504466020819634420905620479829333876902196917271071837030921125096530439734432952479887563072031644208715858193113584958084848638855431356821496132025840578965245352825813206363809413440680950374796704989659390189640604620698755077416027100941109891211974166341497550448382829344562710035147768189014740799716407654048496501456063551838759480175206478584882282595443582315562744482707114090472211011607690526716001005171131164548786854970209459003128372416453350454678143250536206856290119321762311177901947735608376429216797629297268392527089370610944458215076965590553267081844479284299126702892033630437978173707413963333453442201463668722921301171119732172671730445118977401052763384463942414356880212863971096800767146505644717987459597096021618747458562980552726467683981319660336255687556474128104242735757686390334839700947999826545046300352167505880583417901753756450232535482456679399634554024399662423368697565271557805562781778502696920058253662765554953134178448007851480607345120637670798041866273314577294537193203010177170592958956426508419227193308013500538537525664647039937510029787730141219001371036880168812969964027711901551324407658418216594931230438023244737615384207482480060501331122725255108040958906216569028833499818653305595631570913797950509171638433539985338912927918173282626194581951791425363348151835197647346057436373983613008613813734991396720926351426770230487684914564335551993036702278847081659600863459224404203143222984679856315588674394589950461851945067299847767462573997998173285108412853453857900275295673305020727028987289175140965003281687582993441234180784786654665389927146132074631622962011907778924868361951677933933339974626469596251284237385464578719411318742887422779360702940885082021907593060276768870517842981035603112989425988445711831586131311709669760868551412110095221684924338086219521271641225842498715987072787017507259110042879984081213949239906345898598844285212492603699324173647437864366558766844992471946146825679667432351672304094380862277615002427665410148624100175572643795683034698544050132832236281034634737409351780196228666048397350059971656774119357474780709278798366096064376937123201452659037030516237822477834123072006456800957719158532185152904025109804541214939283969422397373628784312845253549272418846345216355595243935322982204626121852136546697866746313794604365036758144476045454200781293501009410846773441947329108544381652922292463007672259727355365145636240813135741570420170337483361860417647867955974884274289371038371261954149511757399756308137879856744572231892386809081002949364452657631163757947908392156007410772322624701246845106785781235267899376661089164843087619377857587074604442199775023252162989018474167091559080466776691965103676888778337988441806556715452055855111896334979297347258225163502186443967131722188582679142584172017893144715713302198984138945737057453385527835216900254925910001815287931377853129164268329720071514035913665016241246790646947119079147653235928526935213809798877482601818758547528523885783796811117488866472306385654810951256671566594852301986004618937121642576372553698201150988947570126131260757929871428508241810533388691610501955653740697791392777995129066458465093859935684203424153556400399522521422547909951418827135198297870473549384804289803768592435769495540102590229217570847008771459355593629541425942461278810329946214223968324227002587825284910518379087673577559007363430542510200966546287237830056776813580048983975346984068896433284092914128137725118580505960977072423559058088981832087298259461055509138811723484389265268858880005282812553583684377749527903116658754084934479341120420373038832527592338790961572607126805543177809698280842329589649665163437846234058747942904756550618262427505303088152360730514144040455869533908016428199432245909586596353104313347119338403859882079861323908265793038235742134969454587775570803145087803897104816228938245991887910317715390717305950633225577696856390516655376253301591558880145140019259848023741950407874416976643475917077971513625287811694641306336712958367408745421265152868753482778432471640178791912341626231137702299561925504997576445086406233315012377695352400608857324230475084250852442686186003311182941270828032506093063321851262029042674170242047240038852966011903740535364085529206486831912784387233034425688495765791605894699457656650223689815243430871599020788193989260965143494673233944465581997618266387574263838920230627425827138397427707891302676733023328178696412331892216407697334680905318910988896108030378910964256326687811171441908284759385008573676587615721347397125898064073162472873294118960609491380251691653425370660404211897774772785619749654247683230868110748013665692414480154542547616983223845914149431699604137429579949584960192269737620445876009901209844575092254891830510463225540252121085453772796728572912133284989682502242488200689917053779206993108851811119986438498474222232276739433255937778440591442779665432250942799414290417117426057903307288294591952962690045235350654939201694981759491347979745803976436566494168736107066670767771549767067796488970917811944016026120516470238546444692825894490382268501181234846684989497663441099839271938553018837670988849572079084551445180034018213302728692131404831543493102096020014408194757116300314210046746277007927592713273752889714371369584102243815528329162240256005212841902001107313930337812804553340771695218228795366976190951087271901160016166985048810346862544755337180399624130082062337885950955577515230639621734761561940041580849658713617670629579540368699481618221477382927814903700018202433462497336092764210595477101875747814680846525438441618705455590874089584234453412541042316222688970203071754112805157534309989957746401047689384557081499558355242122877751959358110286750900050860991866740492640709253403610767364417054518856635254801026193293161104129196375812456955977125301443451283970899586290665871918976144613229777987399053859912417042391680686119275088265201339676451137526208848540961716661797852496865118823942586437194187533220894392301372022521648136432682844818956937285131625885625439394500859152344717017051497955411009097070170266541704680324795583989160365479245209826148278389688271082114985570957968365304031150698000872818799409336022477905316514883070290997473581787036797343028566353401214646134026749683280438063775741296031280847728400617404394505211762911849133417051349861964460714322156575822002225924126667810187078302083682106441736922925447101750136190211972188054261249719845642247684830157077551723094147747330167342547489190594306860866397164418834743882584678267503281256166557685590036113041510945736977682413046153766502733792211905305042600866106745709993419412156946322207692409641406851736715611601599533363309153889476879472241239240389290397151618263587361011653215080298980930165711138010703249121639777579700519141324685520919062598562270443314229095005648262540409596622430579582711690572825220462871667062246786128503225386741791107878938998708380184786068413789809816538168477010371356181140362250573148691607748409301016151924089892114694618528929758215965909083593639906451514098742005920458520965348034245995993147935187088241906883348960186070998589091322621067330851963314886585102539093521756258503011644659779998293361068321656208912631483915062447654711497478313414363821194876217780238588329602142287841636865861707410409037672113119958011562830062419265436613145424488092652528755121439980383962631111643554286386297967711158532700490052544100280631232763366461585074901218861685799074395248438468516363550776028497127691499582770387698555913751758048938543749127165962753805670472060029376699465710883735341868256475030486473522019138600153524762899674479475741304147952572225935059730098266012469533793973269323026565987490084174728946272797146749947616388020110985999969778693716183234559780299307646487601775202042325984121956174629869495916089420827223915181592853005664196467705931380132683136068937172108157699689852208208553349056267220803673237467337761430705088201217442317795693820220734824151440045295378037246003555747687954276578857896171755147320314149544613199697695431760515618848843592468155622970624088123985701122114373963419445689897322551181858765996317019182326456166425587906005774713158400026366271617842155649138975390582048280828508594543486323072325040607927869151870444006591014032060690907691683912488741121733371915324163425406345203381164702668728685970833917608982026722824697259263111316033600189676929574687926073888068860148669747360135609878485888657863169147734387541980552536174394734216207894187481083370822649898236395676140247880586505439172364185995523162637083650063846061775806216619843140445564251434942130416127669235578074169372370959116766154206061586201644634577141374343972663129233075179656057310351189535635946040838922835252295197539376472496024067386994192416573678260552329978689255547753738443310875039164799762051342236575757990933531412766773176195018546924070246872391659979880832916628302073343437644455888418474466585786038778524461990204309081668334767373477279487599459343889079466074842183627174605066531458674666518125082058836266976543925096371115271855732668116129530035042319583842822092853231568827223979980308010980167629290413160766955781062422844386544779697900029719738872728854923677759965068989345118265231857191332051827220542543673109314773801031185360750315430796017035029159822511042713093656409488096794345692243932704681029333002879223001362597566086198150199814998546875859987734716056708536391943577920429051326430372958509347864665319244203200951338463952020592624424000899730018226922743156241521272952263745399364675832484663521498454619297176225778567674737168327437715712917678376312939005854899513677895020187569492276939581382699471092066153257060439052314441620829968471180792029204445748870558904402384413664692476172875253937076793792536786703414335860504810528362785809264806988783800810673229671573052265264221904673733170404840940843693743478704287487996928177234703494612664804532436272577784247703441974718437215354051556786626695528815924940704768037891600972134314306695674032053890816734637140967129272424827876335963735231331762210855531318674349366700853863913510130484181515364695712957715010165142635525699595731781838929880251058570811093126592447429726454108837190349441362400689266360811740478755651394236810730808372256282401239796839142624250006051714069203067481142100151978284513180715222916097763376373606125400750529124883592363291774669185592643993917536770249422920401217906109640427037053420054637632438047978284023675713327110173809653092811693973746880930757597530593535987852560803019204028074214575262194873442122699464445963611172752013978103132206436253439838090571771008354552929184719077229550279802439292411943001655078930040210578101483521066102537131287337009701120658713604214011299669869297807026401500636415405156308800871826521791404959301945724235048519385997441691178837470683193701393690066091658378612653199959251781295611226882440716874127831630369468510413112518964955195289889714621795720806370308452577793556003970990253463027715454056596352800396518781353060840672370157039529793321608216098004138859453984668130486407529691524789893257448168151302867939321384434178411332560190176084871271441319329294485526438730483163164475070010058943339823742493413238876575652328257625830465919208272824167748480044250538579818342376740884276676365950095772122618499636533829850144065409093145766895919709865841119865494064978828682209891116903419646199297359519996046937566221190768684075492811106464827202888853475516661445284716604975574916901326427477527798114903049351219618100674588858600317047347530542066009277262940814159541563244486322202439585248295496339518014230302042392973531747158506455385104112287072282520754874379767148449843966967826108555350409368336405547349605131585462010970721395825406549994127105870485921682427477265593792279561668734790097079530165745139098163563669089894859921334166642642569747868325479914994315628041531093366013995263703490585679280912862389834639551636048897721701040349151891406870965037394073271151279706092115730413451406816146062797627762017047262125556460269983147111896517569412718987618882994779510220520670650854955270527191419596570618192490809538017474821166153332236253910590439254176893742071066218900130432047185662062501336169472222954817003445699459025082179128917558104156905777602882102904334475748982441739627935101452581327128443171175053996013159991469033779876510030730415417440677973388300553828820552056265784813619132257631648754192029668364956007680525177072618287965166277804279265242526410060794186121026526585545390158285328197444647092563060077116270589884401653016511188028510819381448072518144258850972553118720940942391229550650288965412584767568648964987251072765552487057545190654981023275135790882116897602559312179641541295336160224819763323615319436781992324220963397677429953185286882585610709459894624502193798528115663772131577885154857311271434049563276131820924429498117896986468806467141543347470607013279323271243781244554053018353697272884059419775020947705117083066133495988573800004174342975074147110018567696359894838341923930668285738374363094662430953122168519648428368662081113812479425834280525749073088742788574867070846599524113559232070414591528951012886609769445206967492710320253760178650172179617165707258568186386553868052874372546920498718382797894443245897988854336573018665791006342387388024544646396392622646925806679691831978199847369233323020920535120688017032988253010219447102339714251397622713807702879570169757473413403530546040558794068533947653214398362472872775797466942471524718879293087099947966963109290319096693105388761031783580202853276007063161756991396735157371917142181426152615512204723160365612872933194840637321726552889189318578337665340040687001243588692671507644933858099139571501407123388499447164926655432265029311841856979973743388965821124270743375635451168737468483274046987612200192500495484389791279737216153737964147632924042768281413080979674436410981100995507409595567915854705949299757370749331197818183995355923596198979367916986002184394683612773935757434793529718628745334516582876890087415749270383044827287786457545738461043834113868011727781228313110926268889582594654187950530669577463826705493055822863582098159069872669119561606083353380947877932689097521398533789780816726691026252373132915043041811666933489455799257163187762712093971661179726153996747136726537850523222411990413362961985154903252427243291619399052151283775301255592153431525077765319158310371309199611209554640924280120494737550078620694309653212334271865535836380460381177229944183794921869178502131577480050045231405977954533675929534443671463942437360610942193880378572506566279693061469704092724982233373958546640356638645921069944219521384126377198222382601742836427693840860642761291568158534947877396422940088956658298699074826572561816084990612918334233215178884122809399719155232920920432990939928093725698010682923386784992136998461540190563465414730527883113813968985315771473218890550182121211044906296897066383313065614599337541205185430490515776380149704196828319597275242140791319609920629961431243562057446917476025484193279548781178505736404780974891956284046110769715284182333601826718025705937498268226955763924343267545268001312373059730845221857488629339548607031513200615511268848125543818564705213858308866700365696908895323000522736401821553969008366263019109465748653115923533584166871743447667981669892141542530501279728389474097046850405258387378731821760337365719372477407397380630612239825546683523339255718813997800956969073085642153654646388255340805953216915503011224609297961388584803355429997564106306762418021822184726809902308273424371227928009853528831857477374346456621815456974712631171707087012704579512638855060339886500550039864505304326442821386652651873165522612304187533813765668340052297973150073936510729815293198206027652692514657783568205164980308185385813283638355104829433388265408353726680093061212402958420879157971243545334380141664763752992194756366189893706148626644466750520396046212624938450397914973338937985550015465790687386432453810312627786196777344645869823371190498745489219985489422735405564397789439463177324392386152296191604038913058191577236476802291070110568734428262648565962765767321461503390380736477673846024141538086886850415307873237024258088483954545687704303515237470885011953553824014371138711131325601080086191294297816177753927352461068688503566079165266236064345186007600931490207673483628788774486986983021639795353406583332975021915355230572507411069561129831474425727614451735888708237429690893038114047239732073530328439317033062886781838056321179139906666532931262035779605225033457398203047907021735553838204084732039596157909999474109039720338810487298233718523528906978918048990644326352323088765939346558959868639409964835030771433744112945407925423337421151513379609143333332957397126810890757925360218818922895071919981533358319206338959852426864083176784973106838375083920609959856468873268087480390239419680407728031549959762333718043102430238456750295474992197952454136283223993388020870032983236312073324573364154044856183048793835164511878203119668703983454499032592113109840542527194597968294104789097464179670366713974091223190282138681863094925188729865366462734704378838311922591282527459903587340604265977767822458916960857474262654184532399210870657427723749717885562226874461518706749131787055792478787667249204943863343974720148475909111548948860086095498347038826708725107412066613321775042795858981086500133686689902479885309292753086023615157802036212797329138293938951014160815782139415239802335139757600134150565048862536021407091751091690644033620661026708580470278433277585870686634747206326474540063597109450929816497901078637200631536965839313095340222225704953516733311287924459938165636429426085715882566115376672149830904949644724734213485357041631034273757621434055323311154660418815111973422927180815181745546857172242526381618360230482388615467902261357510026999036661921091326221699244823610310346749082860304182282504453581839445633056879796053170402723119870680266192468760131378860343969030971220393660414125827173064736621973390984813538453695746992134386680493596881231125924510457604280461528359925911038073322994803377155000341049539407204556361848198838398706123676875357404513075169551992997512220402728735153020464150379889332342937314842240996464961985128044458697808789808821944049941770203542951102005126435137582210635797019489473935163398710881608878377192957479442706659017458863883913372797961038105142585837362144763154180425554069846061201834516979359768942659393555445388337291698106711637775600767360944297420989862198597940985372252577385165154636726671378306855789061842782525741302237152156899066716294354814893302727370849250613938163401920669790851994259985071283145354602050267371442899807589080606125883926501673299686863912668035926324679617419212054044476067497664940930636147845110875447194652747968132851864851747595434626171342632835697633665428875923776949923933728483586843257479389249659797374746572534656084525875861064762982365717818256128024292701227686774137873675052124897960801295815416934048788040130681367798767967986162608917625371072807308601196543053829290329715313263517842160363234755164729590795041992545390879045066168049703294962609106797228694024520652341906257760308242228820840196719051444697127685640422320630162568320384088118222495300173145872739744528505202808582606083802940209870033556487954694982065373634896335204424364004595225431270425795491680249694474480562202838177414653856282568131906530376885397534391584252545889206413927488047019079311439186869359206551602220395971460900390899606091316838905874946091681951940512247715005214553483647909104565037330747466007998898142872701532527114301798723894641497598532846632061241367028818509923683322878765688997845052270664937368776909428170335965414741732574440401156554118669678844503375054883711686824544775737795325038230718102914088385783780774505643189864431253896032587339136701882802198319266955108256064560709826408784716650764511288819978191075260139201405187543240042867725629072391862945007747574005388626522053679652537970812000877362816503694494287573786929116262705839574015653682489682456916109381999149934876832414580269235235210617630319269697942995567813114969998122643957327484239341356733557629141981764341927223085229992226997022160310408400722942116373614689156908347843724164055560663533695994052828802022172552113105063472553083779715874557500483317363991397991548864400542968378402741835068196023069891689954119396710351385415576590138800267765511768601108343415546114860940932201361929188196699634967060156096751844353581511039793419289180030924663857410206826606261400263366198719839013578061832505767136755061531994717376906014814646289242383045791894069518624952109362505960347667655912875072249552677471302985397901374728502633289284506179908026521264983775093274634727905948006126061159769939069311053419458107630211838413643755128095481220275870204438799744678778220991911849437384524426455417840538497865283651093420885562313463670734302472213382932065543316214059638964563241815535912118844884252346878585499639969801992746060161796112851571736987111101115488656408923860056802626682624458129149128107777117174120313981016329573122784496351406745945026684802400444729385067697627814752511888465878607952416885961833714523427864624809617731709403144646962625618028706068898984356128100382924923841163645880261620023347637220025050976672321927325356863639915851400745041915110882007082818809519073649345760384155492040612249917665027940285597700153955507888635993428437648176377137644173231298396559469500253121293499772171666211589050986361364042193051966632372203523052464502681429524498076105568588917631385719102374684512335138353083319618024046645853933687555992346047372653998559608667472431142920646949131303343303230269954259229982876362195131401219519679674333588352394004673845573061797284268765594388165231637899205291023603576598345771585192066606788518509927551658256150594500954307863252574123838391424673401865000916815166792556253782980072281241967013294980696073883888806616117541904309414843598482417277960425317574360704249051467801999504052249059116202302163780229537028164148382266727828826543855388869351139225610506587638578415342188092787287826953682527298203994925493090118788214271523544393715576128536307821780908977227096158326647311654492175923333032249458640530619932419960280383440380869544857562617679069473664886740029123581598604829749387027615983072758891658272868819313394924853052369322150909019949685097336270878097309482181640863264182230852897279983324112704958354518597001546401600385745760479651914343961490064099963809632653155091528080193733852213520736404698670621983385219443757836539631978506175399593579093690754249777229985644341941238008406350101356120356682445088199724129820343973538316104732203793619324814007667713431540403156319823023395794387703678599491621900920164362519984024403150293072659191715763838100452787617749222065258386293639746200324969886880800543474073782371938148373201119334234671774190767614389182159843571024811086647743019964164629849840978381361327954344850615047033063718098651892303497004904646273016751549097807678776584551306233221315033148000153703199281699488605414060438060944178683857007706082019025682283731677698739920187448253678073415934956003094625752945393408112088076273031810185109548181099328493172911140863475794633633960600430528645704827621015158441206508928244723971354141402891183062490970207790620254398362559707307253736339079185581325677380976991803293023298243240117416599644978253733517161212571849693170197880901764152636386600228754711747063565909338267882300507578138559067079788476358052519544201607316007239917418417693885008295091004402956605405746494582216262260398500835127977663943670112498910971239821858375316965286749971799914464120677841977819693060201375962306819630160870932503172116566642339595074523781308518167514201251855741000574481736266612902338776013090327288306462616057173090086194327709352841339477390242633749466840140560097077544872544043948148700905723052836287917009220459031669949749672197334465116377777394330346309134598922271355737916516680880108200894580506775443570386165246859728050385360684167547438381439604593176095569139976690737345761969068598892366881183152246064081278056207335167582656334988173537778063393700453839616531187502305797925843288823825024244166016053398440909033531473966660940823525287063650024973975838230112020204489471534937089375341995547285813518564025836959053534718213659211218353719810603815213371370253445550128066908148965794690791648256502273133288324769561667224667701182229065507223637508660270897624766740192609218088568620160461025527484560680326952650235812825937426934933804276155658506222623061159814958121833680567298549806248076365792629134474477765538990931437851755694997864003522798191725479219420957382641080664200204462451001783920726000164115707758722537077099980710017932720993683854789221721223410205052684617232346419047135625365537033884737178210088162525292092634929143170650104992429450714806402228738877366920691493089801749166676394826752185933459285799412444742492830311102057931670079605405912622912898814716177139917627313038223634988571306456283003497859599665062643250626313883511215911823313459511281148702886796200458242245243520844178383690151930151424502544230013374734883370742236238403313785148916068087330245097933034936510745157688248783839153788757514609814166449056233251773421494102210894957355398110033035187493530213679374678835440394690171130986499132052642742987566696314748123084134023906063710018290885689945757578610942038345423979191049526271292883978953305682682762827053295281042717858708771394545200390046785536598871646859300913890233233102781846721692484573060169031442045299024857833128613772139529904851303570185422803600192767275935706978962772171690844476584561154317653132985485431008539711002546167944756257091243255219664402509333490091216934374400894094098219436795261463821063066360144874359492296395919543947899002186429106004238372695261735744961262731045729731125014787259891699482714253320842553139220738600036017939873071542998727114721529712129720920994650484098395129092055132803905039756885265484930171643254094952678326502667381264598122068095969670399842715522760092464792311852844135622144792566262149010520913778546535507192576150936391759494721147090889173976415247390971720700973902583645112601596298737516335619052911939824312466335830715802061029474926982385605905135842800288556673459131986512221557740347949232893078939511153011487652150177683219768477493504169508395236260889649478100893451678527063304699820062377020234398050942556955186561433562737039599848226876625828438022869651395833469852141543865824768753738781765514655221939391582154009612864628372830234103665873622857277522261656947712200537866240206385367358950793862975642938813874185584497604174044197588174766027914459669404188602059259102018799575858017939229921106824120555128349292680751676047901171898991263559872645154847214652638425647997124163814853564946242507604725154158197243527268108498123475074909056721967893575217772088602939896018595159995588070986323147479354861901815539179224251209235491515457480098324301551645131827279964853008978140809651236256129689560872172136981005245922160432090710169780934116641319325009838478117404423143395398743886887140305040251224347885035780639683400917230257794989106278352813465125763032140047151623936283687456194926472565261206523179544585163170014128251373963167525922785153233787774710281983797899899360611980431638760511434709831487509076489688615056077132256836794513419334305239609258771279319502839276262885089637457851439809222490373159395912331842080201889226494347062026039858328465485746207780378994379384160669920791244348932922199559525969515105307374411464896977352486587404309690693346725509803812605203322489583720943779626284883621285743120231779157971182993542776718969778983516061068664454236314289275151145854897177318518928609551761365037819359870843097047850555838068908122941588005910604527544590409821368676787855812313961043214543517468184646291056474124726917722199934142516970027221200670314614638138021491304723937847776414558654128243525505666403864285284054321381242724126725304428176155828290110376920837285291123845305417005077465046201095127927709493480832588147923707510571162340804071513098722143929331449366373994944759377903116316997731818101918797850925565353917045323679456234484805542939781101526228394945464140937208133539442604205045806262988337459657691880717680246624077437571533305137218126903038336773853578624868099576431901717294622248685489076826006421042590842866520692128406321411641149431557062377546112105312781177543034791416927829351619092726489142951674571892133645762303673727110785486833812919067925777499197640279974336266456231799261551029236283753824535299493883689044153947015295014960872296555068548956810784800875615708452702769384647124859280406006854730700134677231316416860239626365934072360470742543677259313542484916454143636134609337235005904571204740177367877306164424730107362540937839836650638229103498311997384632838797145509045770471053120900851574559700425800883405914050588518290652285607998880448725336953372929649651320934734176584833100274407047976783351620319211299003768831496323271651224758371413398847312685578251816451127182830481126543716869248531342959976956050464713607939919985012677698987316416060018261491649631849497210246538024397539020693811213783407812169760421206406508238067615889726908110392126629468997544728820519543030582133670790198642645275819787823815323043674827237097523405507109843187507134602336253412714076558435491856273423985013888013623485776866861443849564164302284072944936356598731544592272422054943616034736686037696455569128698448704185321506034317617288683025956145003259469090380853234759674067329842927076360578641363454118359363058605629682836084902588463383550711950161557368364808277852503527822588008906102906305555294019023714201063183834521370012044354324564083054166377076959806695833256508619118548144306707636532319585769237881084886673624908144121388317902537770478852989839386681735821942294055786595351514750691986200845317684623855640806199674436823683534300258580839094540705970242687556348995330198635653030395060261679902420013428359797181678807610714112760634265032727822812735380729473097204715595724975703275029171277733016554571510067345461115816354842524239420884395828996342983690926169531836067031152618835789259487208422442090885408389383702634095921403902410512892874142814634539147599205410321353992779720788018974626979304041333002007229057086550584713510856698754331869297849032237188305933569616611065430109792299479634682910533782153553229909233564692757829761208980594768329952148019795184509520978282916386794953381702580548250670964825516918808241603251377769049595197465123353668839847043251078157800011911946775731133420735531735166736264227716037884064244597417921642965871639691773158884829737154619316108470091990812054774800767193938580046566865691460591254747560192973665537340159136834097851102439516380940096046034580361109308044820339033508048961926777773912949915446774352225198039197940436263293653218288386432717878223081577332516566374340488835465456601603168055175280586052393171718444896865738469058309438989394827693372907004818640341353929954732673547580258751474374786105102871250157406765569686845085703325482052067866356864206336983846237736595105623827960997792233645988041630576676701738591765896116647985859057671721926495115716405840767860392092630627567045702492029328499630035332647124252731465424074339796067452674056522379724915934998561091684223115481476055067132939007307680863973710647174942757856915083672030171667694685959280338917422124810191600124059466998194478621178450653356618790716392337868850320400254734994127791524849984783669315023155323908609454664982494791072291685087375662972930609251439945772747407455264447690971371607768334021387375804749472015961634686592056898533169304698067317760693360396784127711885844946677192064805264742338602132405420350728356286171310499239136490415389088974255582370604854228621961421268695368450631109958783131012807801083657542282592043639467277191399594186616383898162282816552259021544575090272524980647317234912684327341888311597774839470600015148691896198687504051986493717482629348675479438304866609096098574815839494396641757064659784771271479239410054632610961236373259565054016686672408496552033394036768246112569862999504741768081786827451205129991563896711778186124515284243408473000823238274951038850863209505954162433974225885601814881469276264695373655756166430403800203517788133895545452407454371775622210627140724257667760926822197890503293374820890131467730225612567770944477409161927355403768209959245333158218220181784954747747322504765837238705849093788810328121613508370395910094912163565657845498910367460009966500420335415874860538192946385928394583343713950635391391702696360217214935752949615024511306897897802886589003372223085300795142856116062970135338922304375161143166966679673440071902107332694815005559695378777398481916480599157676620735072299229398207742914549851422667343500731819288084295570502619910809753174522183001421143664423977743694449274666819712450584461305754410233033723403579720773203952305232861748181576211617966233306010715734556824560428364401251269338028438457361104829041256078819852054313016353714362284134745195702407402336953734782052295751629163049799821149203715202675697227714228498268976267410863458937362747543396740373417938528802229459615602196446461029266049881550255053089323623005160578850965752959802886871948187600606343631620974767457992570056394892603884328352175963668030234327673533992168560882802739429549628281401538683557960171017831471295516826080323911270878272599163800513812250618919293842814837711686182916734582366012129713579293882812543313444643687797499917154459777979353596257596974344874660357075731149694061958645025298772284751154133435492189465352677725222131131700099610315937142340766645560651678915971505663009519377937074939000335892085023527102235985052254217882429629176991231326588671821419362903179585104662316932141293892925119655475612580897041908543414372413764739431294847147611828040210459819019533912309418389528182270955618089374879369225649807848215017530603731668264551580381877764015790678426518239726352498236618601682587405644587306418416903319787399376560961734430136035230867405372423044994369899573278573999882947184702188938208305942547562775533235071097531147584825716739756658725217716545843995491976783598862324857798204905866623566327303581224061679837014146425212634528119464245590351787388953964721966774074225662064794624601382940279908376907885795957611082180017563266251713030188635618479549890855779603854709335938816547524753556064761666040980846312897581672922773640912282315425538647803233731778402070745333342920592688294970369191161714510448555481172493408290208655698029900869338963979513644333446713285256265315269111083174278065882041003018927635559419385386467327639215624258229087213692075701054194290312358442475647110380658522170644082839802335620766025752739112833044984840272733698185965013438079130238271733132693860232135153332187092163238954933189947660560427453122105980859651872748114250033574329986890624510221175905673735876633974727923375954437208841719992713042193598911032006432631786562072898122587499450828807655577832720161476220214094556442106125917639192757956722148194976579795175583240608241941602588334283763186314174488110466977190096744833532174670048410571442884759309982766897826421351699766102925047684178147744116719693722723853825857296330431785080745531094029874613228062085972036157726807561181578458068165512559552674395683038950575258747714626355716431698697141500631680042128749877125493023806774724234139059662632150258191944152974608122341410853677436056454912261611113400286068484512152374493356263524902664256429692124203583435437685030994550243341123400685559793657284325198020593062967310301072442023729529472360507011826689630713215915271507218486149406390511327945362090140248848607318809621254633687102481759941254241746305521365178216673196404239121402870379901667685859070046601083486846261894116284990886018781255974164633892543773894917197332899434858752070354004053263236713104939390440229108072059127221752978715086314008398173000395965708541192786375290045300537707782330371909319183777705672573343771200704249825715877491120610881863075565932307749873324126885605338103320030567100218507629748193808561372585927095430433072652169808095676228588077147057555683978213936694103866416504051339355436175237237401787613717072200518515693856761377609332930482623994771039749790206848032672721855338592981517876946712376448367337358651186824523713064352965805644168439911996639175649761757203279384200347834730598548139723695977126618302989446330621154661086878420659583517145285527506233192018796281005651403471226689588673348517222967420390013679230229511643962945263480683512214091162717812326293415386200517952894149218822147076148335898849237196593836197398889433130600384263574196632730299417610367828226240888724979203176298067877607981894057418810667903854556919223487599029893663846374304369203365495515578056394503394834602509129596305395083644083006993908949308083478380841333388224032288526168040955082334001785930123067480551865329916737240521374535189401998480849809832623109941661581966201302379710979478634099957801525053637532157194435340737866810684553920713430143565825236937518753634410600929571138336330061877344658056889155546915447820239190869338990113135203235040414889026225893699867142507809206380859155599715073632117785510639201514516814974134138802086402174415452098598379079662239675794770032235415775932322593809041583003037190852871774069917125421237116230272653102479207374651863599339402781157432430917129456400909199898768209331974591885222244576803771456762488073679053744035645712173146885516869374363585066264747999622423259459159726023226208972833145371101674007757133838965639311112389731815409608328853687696485324147203687023515450700558262544913779773621532689986962291333139379155385855962015933753842286488833008816290477559378518016590184151108170084516296967514104426963548923962770685295781158334696453238431801916234791018486462451693592146206037086258925700851128731855944471199921683314478980931173479679875949218004110971212226913967768557837722813879369306161755570593491122000910578422860006574945533995355259783273601332050318042986377318616117672962543623154597218662315739040933412492378049794202599554567049173547661202893322195052840528572731753919211948174589895227685489026650560074098895531721729567962246220022635426790942392891530943345546654091908349151835730653186892743538051992267483036880800644759156637326859684534938322561469954752229646075544758500566813273672965120330489444763300396307117360191704777505194593341125010429703764305020721716334815625914392885255082129710757128410648731581711325156453499924496501329393140923667144228878576466646542823055321277128444233794268986837874534881128429678770866025897204836309074266931923264150761637883851222991616985988972776056624419408451730983125235752014158161018602325963728660225670128205478419020990445781337777537847064270129351926949618720163989021868605194074646719927390270744936924005056741372492373189151035037321335697648193633716154471387928849591070273751305825658761569966832113778234414691163414397587027211469130987422464833630460518339138042559148519255291467267957713202132572176277520063209900188794943605505285384639729547939646700344088964661742825974784524874444384737571662919364287380859559649804780622381728578775930210501912271285065552857910942296709849523465485413674747022335769602588016957995666376900946659527716904264758510717616664610843770457556938885715588143127134803880601649824922800651057142089547178907838263822719294090417708283639493856856663082948935575569706981020805340296012919469970162470911182338073582940897035414937252334367368947738647412697973876979154841324184419112845819762887950369330672181548603538187356340070589210176057838204174926955006740919956978997025757788880555344504234678501687110245511927343819695537469547080952569492883977301355660827147262019835683492400116065266499901199904355145198417467912031639022535652669723978979558488102449022092690641471998278750481754521867955505925190546230772946018043112525616491069688390588555301211583472438462309066336741073051714980892587067126569684664555847640912692447449499704848109378754535549337628238235803866237972389140787287961347122614771325194026437126365503524090702150536836407002803480557854779649760325898953946183611690925950380592449085541772307162604845224253087628698328349196479512606581702988475209669978756025190641552974166688111745128631995239396938642446364461706717875042341520360022103219233872263270918990429402563208346368997971476064378431900871537405147434060598537915429485300392981643609930358231564823347591031884385902978954213581019999020347885377607392731064047745961895415776345083009502325279444612852223846979991234556619602613855239890756677951171278804795887070783121199838520202956189305165552352244955864610074230993393273891946645621240090055420558075207815583116444788945124949875270462449951121884747357678663391901269406192601103540836034292491267161857060995198905228075104625501391818185598347838591289166528276109138271053889569934175581426142929813553597128119238080633516992833472125806446639778601110015197767426213559038720569440745253322104916141778689474901296890603734242469916767573818138211447015261475433648121172607117080225027170040697675475979099946055933956418566417135472253012552951257581729871722237031520486552912168108291118441252817132485089119093608303484527742350984273902689092251415998021541705966956104037688000457916892491216831508221012719166815841051009210633722292094183679360612424104526870500904518207067235574344411626198545001120306090922297475575463329699857671460829408323492379606116867087096953376644942710400954999804722934368008946023077228533859995261867198650808705533252387413641978638450614529012993830682823729151860914759158551127156348860481509735201142130018925600059037887337648944287483234071881428435493301246220866601025659424692939399601266104960416258494749527116418017374457097250468854683046394832139642048155148402467561921044331275317585591892427070898125612715247280630824065596581424739869990651262834100566750520267999017778278285934622587913238368547836646988704660304906816662460096314310574565882639304180310389143879628236813245005723947283465137780166454862566838759963376260714106733865126990771998907541325913532564013109068891286463254517133547606981264794640349887316322962486687488453743201646855714939661225254479905402829462671678816915853348589123087685796575588549470438470008356943979666891028008994774141603333132472388239286317164482173878601818041889795092860158840092960842221260511902275194719013877626448153459130002951213695109937606062633776513710307635991572271241501070539138202827606422184220552006539272973222760851947134900997586969159602630889515909119549727919360416694461515565497208362787723855696209644560555096538019653778294822077254106042010798040998470105796836374379124741359019666611978516667620263428707938531314526914513202929815455810509894558754475815420257327450248033264697155808489764505911978748320077328107593611104363726470083207235176905763466950203395145658603077427052629462790417512040692419671587989130770929725713696680546663622682128085409034159486954684160195580678444084329342340572217313747738127916469342238199418637606067295671481632772936895763205845755259189639388263423479836724587761849839967845383228002272821431271015393171241453512421991692115311515818599805298381466715509232710127946103772445261811717036838736235183897309050895930434844755526086747041923203309003723914552557662640136348266706199802641608433610166290201534666685726664095972698167123446689207433437384592803218782452244783020096359494859447406335187277617224304493165926824593262933965133487999710989842236647508223303779031832799045850495607337126237574893360562306727597449897752825296216215793240261243512661119906270933621703194272183542165942965600005481298646169207507814502162622087555929317247034146211587303346932919574823912866031177277639487950791034535156589510291858705090408720794007756477481534064624307770137753642380836265956163879897215198972555873753508010542633688160093159680497089909739785201118752906513251175090226874330925019173099868939672439445947400787542126626385847509514078110228485999113812958295859471670766272184272941600764270271361003189284687757669213048112120076141228599682275292828832293209390080321436598263191211575892275807414055525789597724212313612713323678085690812128014895267455918487510866912990670714399452667089374320675201756572139664041384669642706676867384716700268227279339499529090595429725569351992557612047376185024348333997254423064568227748922851483580396583342699856294836419595192922056400643942519721997695391709401263043086459406965224498686780604358062284854339885146666812503910541875203106049254368149394442373973867473642078728417234518971109990864433860602058190029155523003045671253936826801460970897725255143603768291110128708389557509446203357389785646913621088589159636841240692990324536791371737502575669050895902086017848901974964265576136912037249502338999137866050003547440185303404479219576185024505756238000977458443306949901440162486181432773214900342015856604030228788960621504520216774294958360526657664862042774004160993025640211733908475064870315661870198851476591644194299395901388322538413580079739666909151466041254894906694999284482949440926079328165768400301301161576385384268675716986866852766273061981016065281543872004128995393161082696398861945989147115255172047426612934519488500223258140073025489660204010384766075691117839587463185559859341195477069418993772408289381863571346280877034131412461681083669096436125327730965836180754356502747534670877652121932663506095962774448989376875136621318866498001370206768818688687504517234951310478734797049337859336547089882655531761351723124399204899091403900742521659201668259507056900532655794789178571137788202661286003251741589263069046880386014907713092649932452517551111753970565357947235090193714443559846892434825925134134576768474050802244106526657756937858613056269031746053432358336786720755261564265930078704396369167026364870513065636743781041458709174844983774607278169570296982162384116052582159191882616327431678573558296282552079029340358511534447280964061392378657336864663501321331954057893834255591488789082954842088275417686071688627749859776680120814530702221291960337173461930945480745244797192388281270985778120720927710618509826355259954794225881013195862339501493852055107621076370664920377145207041766581014925134421631832638764568071015320020121301612902252544749417523556069569777354772120103811669121903077888589218473392045989371625330449419806118451336494396899799019778689122857378996359563843641174082996646002471221166577279664745296562773115139866283145011014161510691084337641352471954745655856808962761870443252632964315115305539119396771716121854727397515486139188758595534071022924415151684673295110156180773329495874221843803043857264058361483190369351107830278854212146766093375569426709765395968244111308330040614292518362961379183807335362299277924343347145799878789790314276058406872029986589858751368414345016142088864960759526214914778409310552820780098406488991850822743961982161739160388439480426465015339447214126839093507661116804722192022866632517491385646438835704568317012179867659109599760844593238107981634294091905705775168166630727170854077384747472749537403876663869960364826395301772598731312683253709643735639979462017393724868320316774178301517690028580760446583169468129493895521469761363170098297699959813554097113332396478041714367827044671424500057953341380683466360293854824027273969392464029217226065331797650050221927414095548217833290830271695304975865680024810141078136804543890385526876721353755284414734498310968012484955486643590159092421703338120725195372638957228807018254843448046227109113568267435665772057083933898137948471344049361025748104577323933072519237990033350349509090036592433659191782379189782654840553704310360671815176127040176553820107948831659976742759202334170465918194153334747259973333212508499330990417015142022518598818196868897261860047412622741633520197529710906655973036803663127084770518154786087285392715154449806231877075198434404808704860822471478486223007582991044945357730200708924598122684119156239397966883406650498060498884207220077691354786904398138757985076684859553277107929797815452699182375034995011237955031681788927832728282667497996239653129338209041423529617759993267855028885059237774125390893132996965951028573423552141482633685847711812640799623671978546149388303012254179174885919647278093448905624808214827668591442976222574831128576833431665297099949730144860871873499561132761435808780647745162280916387216728310735877788043466810131210248191557780267139591523302440606423538425147279958690132089205537864207392532982351417555962015987817991067103218286185511752990708383614985572718421979578556994424378465588883165686310970739691713857809604669633074024879234320746978079909128630971770737350796141786201986467935460769549476400509487320916550262226443913574404970309967585389141336434978828171857705855863415944411628495420932329709575821001224902619666058059558956710834736665617927602265220841995810729378080666232297685639212844554617104586361883195884185976715867996312802362987536780478954283516304847158934771210656506688924075910906320736392858399774974267701935404871812388815556123142676220189174391413018863590113172415792695906258587718877968590912987688567557305164876760126888330135001894429072487014586131226212891703165312323460571242424195368155304894832550067337387415890205759173799513315175989710471845112492185748264735312269125973378616375061439185538930349554514881181264522876703809439035064812467934165868361369058792757137172557905281075731772483318732002740415279306308465613846695754567623496419852125957777583770839315282034339808941976145923127608905455614111045199548179438547727448461064168400363757134210549635497158647570438856445235500843734622267027502421330712689574273133416955616999107631901384126928617993523458213458322729693790119459125485317803234225139396355843112321043421405407362420684883750936073096698899146147569880450739980399674933726545060876802676739656116065502118413648502995860746756004495000372383264048302893790988300402657411598280454809158927815878272638236312407896112815423632477481238193573060136699342377696683639827971248922731754728197378661370551419672108545851796802402615908391148849069449634641738289758403677651037714042768809292910810210402938994691601115239580218660171105635807690129747718136302315736148561965271363465400374991069099917358209585155022920494498073411556337153720855677819177804684670464423315493593649540183259113262375812406630358114291776562999722190060450288102506181270483771152169612573439020405734707006379727221935935679589254505910903056131101038867912572606971287926659998913450546133355098176208578438347571000016151140702527242422989056607734412194301279501330779335293294564836112057079842024126457148738600800426476600688409678749244489959078097156726132507704506564962155837655975707042412513044162324590324142120967519289424188297686604784419886051219251065076138935255782992907733749231423933385341337964546059873135038739565759766937944770713623890255424680994538235672829407960695253455810863540455819972467486768490387367765671641816763018743963777304020532160197513830689428871026361192084085686287203403922538661163750411204440057338847840780442475428507399196356554729900568362114273011838093528138825224654326582080982388803175995021312259152430644636677887234994603974985088625820942319011346805411764128008854227954449086472586960382757352143960263175314129878967502480198613108582968611117928754056399406535762484502958317619189047590814260800406918153437414194705985375555349547903140627482200630661862464256925963003668622207312266979577097572050350932721838070726137096193623980515844286240466019112125417064859942052556553673511989864035504026836648730166755437642636914587314795087742771778939054818821739475342009808538875020576123678675537710855828441432861798888064415142293680115301297038026239702298487489541536229224225266044047684816006275602667147161068534067616333439848335366658717820473686952808510773769318827116729125791006679501172860833014963155827481042224486357824047197030954926931108600761005909990094965327749507409257144748710181353193447606291354528796220788308646646007727923812955050857143896301489701780388987497315061317194716031432476881937809535663805546512061547590266908402005549627539823275570074204294448616796026230560590377356132883575393153508295659569772148307458958088323032852431356182120383648247292955088935028789761203868900263155277804055679386709005655962665257999493805083357590133508127750055733477459778851307207856728963897350934455789068320794072109910234049112859697262055629211705042098038582928095761601341550434068339414557755925680243417944222413219118412898567449976912760531388165282305999712579885176444177150649914113588436683870487972837722569020194667540144314575208413097157024716891588352115522597995104970171010195379300949816839213618736213069485787486650390023776775623950835095119532394281670582134064846640976825830836701575305931305357642699607501146385395565869248976117329480486929826391816227602533622788727226345367583377298629375267562128662324789746877806479988727331060391595674739433282809830723739658876021915580970940174196936028765598508324319346148503387287190847165149591510933737141004558553053558361120323737246737246577430802364325871112903560534117935685223228731299948361613973952126221561497852068846564314157586962908710982937447117843996078191325610150651672965890328899641889170473451430277273767416596179269522979533490526111422144381291280833536523006903301726702176632972610829493936793522191315836411852198657989930784195388765796262482008820975244686299156333996095396545192410047124334649446961367042758785000238853880710101604643955048972542310561906348371783984454024403280508348683677542531909495884598712460341977524779847448858094990722940029686565492010039538409099569777481416065781601025765777452263446158082168697513289814471847170121116349539805832792713034015699755460838187149203603005613108510593265847906681986075414323415913709882456928915309152460316045633457021959128751061851416552646898743293682123646470717341633654088792546352325317342854095233646804928736276122981408568552501524602048393551048062123319780845284734990334801522428586095258785092710300157952929484405953836282279226305484348438213949846560765088251372396085868829657625266214267438641400871939164260700111796001547877712348653753942896558715366536956725112421159905412463522779333723368838169173196410328955508039017501739558268611521318193691006960506292519873514197784913328842716227405000440580708479399013201334823006511276868501488992462301461390753933831565227926181489565977178420652355174004916666338358912514909534943983596315204631519719467953968401821227352575265047097306956268425672823914870252116128589267502030368822581103998287603392280261277261308441063958672160016198331326210511110307122773186120489507957261282786972273858895719670475052573734588311140376600188297217336964071256368705908126757795642586813458212939089479005483301683942246552273449028169032704761341920627321930081452868337697743392632179586556437444935780952273354909892790413527776546754372802776247739998395673615605053911787569598617424799440460015791700492300553594975768678281031594615674825937734818204367004018924172411932417170028987005306595773945414548111576113221565721156498575406243861903301495005133556360542173834857954215299773900459738384307600852984536851070776663663916353099892817771482561099845884534801453484135415498174044574988922099717649730545734502367690269001627736863058385222591413178778211353061630463950071571839780953393457659604491895179161371624290883964508539647858857027228694885187644352058971552853990820112994991692758743983228639209180240874901624971899186222211044023806380699792047621065263928029011408379740991164116304182878896130752789293939189494771743389176519633343730674251769502563071348412021105564535964158473556029945190394086870092606684007278971931923889603762289728697988371671158413986686268304674160433326055128358716296385206524849328254191025759901704698174400703446469991806194739633790594713702028246227415722249832256716938971467632795662032802668076397066192931465188245527455699618575391694439865666232031340923907594799896864447489931146271167184387689427201811515260152615090598259618046149853177541034504297638766417091971787829325957162143838026314437899559418082297055648304504298803515071097375597898663888421700690121446136834212050498354777558990218212202105872225704773441791042112840198352817956752663048134062228742204067456230606573341832174311678664182130452812308011370811484796739522734616683469702000388740544982348176150681101159452490571970443292431069384608215405528439552404573051242255169307632904513096152775524979010764956391228755973709892773728969156483040089895796687967643572558304692344050445246319160797610484849544512493541656250279214758781015678193567828579495478267958752369664228968442102444655746546189466946765081246367353864236096226989828402115684454199970670006976407183029628703483425869584836615136768722662047283630906824019946456997432937853792652087472582599836782488970104163344458039420357687653280529448692867604220556069617987728713296951378790745057858684734956193395863420181667304215027755999995226041652726316289293150253078421800121813362767048036695435340095823875175576281807761985669324898462279936652843495698092817769527338246933866227607085522174058717491606069895226734292893232279609167913468873717190945767599327294622061243642595688478634862530497768200884405181207313049620544829877328454969874357678132536261998170764664769882676511821622395614931594267354948953088087642155370051343955295955146716839782837161035202899137038780062517961671524719763696736114945862107788987999714818424622374492336762876697452328181285928525578744987662007833169885473748682921405081784600769425442191687516305889730230476220124435471738144706802246275273058228970053589044057657220554868182645929837807477982283019504678201372275193789939747201060090986492394868521943852772973383941777708511891810884026253293955028176848900207079083693622627212449496116089290575373767621997371330253074286626698630780267343554013173684832247900539234180724563887298408305011535358606913069662779942084932815802632819681573532977705668321165103244244898147709935279127254664251497046965590254546519291440446072824048910757493783361942036395446164222337216278015561077174209910339027081871396029779303428063431888345389695043789780482463368951911569557372295380324484391860412774621501590580729792576534768941999526170719309993547638935402242342373663092657295327512363199690278707530056180995929167588712483685562761776787884510200771397702355436637076285350598685847700702321047516647946724435978139828182907310606254374167959369943201302447599794962781753755654588874315034910703034606963334899526592039640708940268784680471178436390994873313349540131537405023124086337358076260616365610235832920594882500350703681424383270579170163510811557681362291783771898144779513277776943000523880623378226809529697626371048689864892971147955917615359571306989487505589042228333777096703337580990545227154192098238223898431769183723943608482363426099475660733301948543994575380866271479620170655482148853487369962397529910873428517416166333391064167035333986454517872218806789423556525262709014387547819630618599755788492835991544355737035326045850196194540834059631004813552901559618702443795807104164580480559401533512938157171714268516745254561684761483232583181193983827673959513107877956471391945886572845732536768421367739858376163125272612089208550883268208328088578657139704308849538500272536725191764303066239594928031480270554058248606375995969992901726975582508608241974335716576018908128801918371681731702938784403402864874653506481361321658080277097994460864760222790147193563680805581586280551043254807952851037919630666138347014353621242346523103262642060491073862554492399617512521818078734276426874683534913309147261939857130541275319443432107394924477316808273608496085056371259424023317115433972545547461577901839442378380756363710197098502731669498499971577383911029775524379418054569120166137428540788864215402289766924758573492197022629566393710269102406316799926145304238182165645134651537245299223479410068119315174278552635646838758108071829592253486278966198507334422167632655714030571161556000273691253374601145888588686064094209117431411907043431079878503460266495398963044927821829589747448162372123332865351356319391521189465803299362554239022272558029793852047851498712300666010423958005288645492634929096736127749846998779353727699645585553129319951210818844904551957803398311436157961749273948285726923464226810319091952974531879822020389537446623307078164923136076246894719396689379954283028933593056943954770999711344605735688859120419553717214099504602918257769925948090171896466637596527729294080137413860856564575421114352208296551670890702054656722243308270766985060040671131645573117325910735110030389805967319485281080965466090894638330839061231413920393555081023008804924024483310241969434756610317184699644409265923003969381953871201131769905298558806770588967975152469366845193629055018556098941321064358526881737424291812165245277240042382741042278336431882009175063527199445012780153936820717628238309954483504076463505389929254773631263368877311263004990851009201946739126755061235080827123567881324908977461867411159236621729405366098513083034797764351372107624819040898386167476844696630927794324348792838622317171166713570618174712619827536134377644682194025302529940227397659965701255061333479803606303614307378016270361653859118899245425703231228025312866647789570995005065089543469104441174059226210641214839347969789080398124390720768663911949030969590283987232671011250366233480478516865123269378608560613694023688884006806004242521568464106799863557535656310183445309191316685249310949840727178170703995601920731978189480552374036180833076005406313830847471158726028401642295216983799761792618734237064859452488799150088334109809457485294407091945098612170003177062781722198790809795024625194100420244117011499850749139395271829879075230518487456835527626848388904248205621647378383461668961027263857575874252643459297182693799771076955121215277394179159648869541409910776074229261477035856054023195657391523667205570372096923685891101534115476618284409049611706372832127933136484746208329617721627719653684817412450862395557324555709122670891222040415120237515949475381132767846923697352884170639001146569669221842175183633704947129457725837397139683093733533465114239939980560863356435120986685350876753476370364740922376566066053375166557684808914213853619605063973947245838791570150925451678689638923435636102699580656760802239163990564405331378306945051856131510142482979162297000544895149740591965253994605295823978229536495020467601567013195521406524317042230723129888454187709343585145623801765944638752336071956124204462263343501977421132736810680161933767797876204155640377850663526842074580671060236323765419611528633740231858496543411856425899487362132712138508279347776022098552190200278913812017585099364833221863844011791841084324274338859120983496283809518400110871290555385616574229037505419557432029229045758751842116172547023227413876091316201887747692850701124814990510088492200621076812534301954242214667800240366995619731649376827349978275063380958755484911026789767128145096769559189594124241440814146370989076570400319484334816687245056346454364994032399584394928460405103178525040779947578845129384053564408414938382588852297299370869890740955058334723747902416454205542408575285112451054667787744634405814622738292602741295749497034614206506980073998330909379472410362268012216437813265760870590819494379751153934456665524704228201349215433191671996242710091796903338303484867875197306636206215456420016275504859469900908627479843799567029005252513632799980351518141671162688090997529951360193433540222179116435432935173221327544162387721523408203582608746333084167576304811153362326310744117635533989301933414120060543343373060683285222283098174511472311744458848412295040053128314641199371774026659836166372101709058686202381741657145354097945328173234379703561530260451763325326668866667907582176504690087223098423699357636192673732374013867465844327210315281889424927251070446238908891776244894933156128288870126651767909419521390322770962773846675196365686026684790862055361569185908563127173851279660203279694456838150713476081292951862600207893627251402364776766740089711477899677204983112536857655032350347367641445160714741362020317269288368026258588709775672310431406597788048743640475840353078019383435206922640348441595743134052474921065310249448747206112204259886579533980452809309054969906426508539710489185539527096455127366276718749819961607211335105732438323716071267778757193828419668204680610033338043417410686972750409055729625410130654818106095855779166879619465033752083659216693567332126717585893418250385065711339024625207077487077794529085082203599212294955250080307196503811845529176412594038680406134322885123046698788639290729472385863568496337758978980944472127415669586877365558221178768638998498216829665589940662698998873109924536633078348028563080339640569095959403912397310658289021964060712779249878018799337143140158066671710593441555721682084607307881929405099771501003133273269892633232984138251182148511456552131349256200613345324011291885931759973159368068570023005460641174477655281915018294983731660109626109229800373352978306443960607906570033974343012468641422445876042313698005264841788549680407998097613107694314971808085231571971628514712222072730545856085498828351555513636201985732848947813589918667285747563963080996079291644446642934687868472067991577990662670079954631368725542544086747032199828047837355947738271477616780161143463714694846107296379348225937127187441599652788285314858540137650793155280574325363099475505543860068202384563633214967256216822703617534903496882634494978066997131953115646755090489789677204403216237941359921227960629457461012187616614968542387953941712223602330018860028059827058765193394315236523388113637066135798950318319548556171902126119682081780682053801672700827117481860655466590843166268589255109659530205846844961958040553243294053267686424001856442517467698143219173842709985400137782079291730598201511452469159746033915017065344703775159564593253776336294061458233479388606227688396914362978345787779223080944063230452316465173101213271830703923910658282436738869357213464367939906462974623140438173149993179739625066678080968168839315641246351432422885504171914395942932928206390166299950658886262101476284145577384497774155407529001410720252365586289353451980935086096848449400356428877729566900253733277214239128306287807003100266409270473149794565772995977826397349626365366623590506673680714067150431431382326940256535484681273643740788450985701961150633983377746565894946969485570331071527866481922105240628618367971704788891106811522332811136981723716014058993758854612433550815501384229967724389755948672870465556436454167971896780856175012182223171351638535672725060374831628103220949655050662854685944254553322944602409471982445927821780569017885305838308487473845021384325337555916815535824326008191928687480690212900258494505298693884011401491826237456229766136504492251679053110175598329172759138688311474256563276728691015697353192310995284021493884085912166449127267751017801535535387582486519322330363630484755750569842208361129547668826511003308330326987994375382495743357460202570879337835958722862204617752405409337187154120892419616797990357304790254631790317461122612114495795203028721597734280903107968180048117697316067604214423789725399523092627974214264613739348711165015369194925276014393444910149955931772539351815019676808833831628470941808753358398006748915390084885806278994579288783346288178425046893961535491082358161465877316907089940058799356068493607245644983627679932057779282191568483503149618541607787304716475019175483614283075106713492891074886523808169014078593934758164537205379641337868908350403684283384911977183212451993907844332852474478646653299636577719061663800111796112182251534984670724670712841290576112099153767509409755952110885318390366637350812411605258370485958428039343288571055178393079269871635508515912449917070583992931723065128608016269724203893204553573491626793449552877120537056956201335392154582525640049514643531226613319962282675508087739260185922423725246699644932480686031566254951191819178940711549956266276238476793156973860779298482559234002324658587478232711761685111035082669453388638366047433380834731901819044260493393245741637427297139761505635149800902762300842685226980924786048159271252102743046393077135725289911153288578863235986758843079365131437405015183128423850048410910836192055496150559358613869588121208231128799674167938029903725226869209894297759774609082982367032097387745268964030643747377487383300774953060794790571092864116341642452212453524343230868879242069131366692053783780472843338534642224116244444382062707874504273837694541402658757412320791072274922458733654689302807240956623177803456844343599990478980106473400542920657838668224825015350290983953517334310827570071963181377955048448343661555267327031757472277258151007013494451850168575997892357893458291950612333588733021925876510237525801858779866305511602811829863667077752316126939899682914575519904711393644424462557510267165455551357396265253535670716243600286015839449982305930164890696676094605152964116314370999816637741660472574784170098168798844184626081982594330668575607570579622453186770445768594947356333316866642445222039202766058453756328608217209173731520224417878769149371967850412402563443428935951435844676901553483960478188551509895617966010452349494223400884548492406794776848582509714781696338123570963315720614585666533341042409804391083050221343029654329009864348826193831802708422525744166036976029895128750911050714230566747317915346384400870587291253693880107918737678984020547154081575863962288864625766678607083826626075212629154661323377853575763682746414531758376490347951095074229540593026099865115209305498225020075072383513198651200292870706171275321581056873741766267550051515041080653348480388840525840844681250627841343408833443228676628778727577068207820663040595912988197622778617177056938759453696495481322155264613965242641734906000845706284049943629896791156109201226343324804390497248121685917576002656312580059084636361492423709301974849352773241281371673616349299589314644429342373120896563836825388838275586920718437185256011084998936806306808869046714610842995715353682537327742659852542256079454787880584996633118857101936159466198636556718750524956854423119606854912282919098024312061238320739305340907290693459971417915250780504918149554335415939447958664716222600644096605937457777125571833675796948905783843300747538937788328133916698385959794402348029184756687968936717731075953082481965371743246743901378548409955017919267698389409191625541535058023353372477137769102689310578998354483614109621787166192609606669613084582485933837552426323948100356107502935478467908694813780532640190747346404170764870207647906619412139815010192524459261853746590431855887048137448465399745382726162709255679091414647445259483476838620870512375808355445509397125633768959118043010001124127706018602427610017378946764722286770825609667161765466131434904349176085207528657039806649127616494903052732875428199161446461061489444538020181095013940592079946054272719895880194489931362244162038517278401785553234082845506563265473619417653510003424662608074504232495485808967393654828528535781919378912474651599447994922724352618096275787278943193066755353076663276405953225069150918379687737538081587504705608800179476451781266426511485006500963291876746796433973184176567088856567869554514888277142533582442465077647063771861617013987827210938436100291858693387091985982798713004454678545052153779344777291825312146117677957581652939256575862352856691912523565156127647733292314411504519586301364317034406055837544463666802695139113154160142974272991916200935902544129826239368365036790237038103122679520223861755298617555764804829850200693422761291575937750245620617433692981879855147769215969907654782164083060608167734280647589866004556905269007338637916865080695574893876636148268601361756724398727787778946377872080439794915199099751930660584471173857534820332342175396333716519418642746716378087423809072529749247231758235844033765056943150931507535173065931203711108416336179401260971054196101647066198560401136319663255899221115590833239704901149954428810799333743218285691664965666336542616995145238912810438018766674083540367069299025924785068641240942996447000984057201328773202575073404651451777343846986708057547280707946116585890500216063096522802246474972387598600581710693318414247794921947259682061544660913080376680134146670382982139105752217089870526813139627409247104727015204775042881433902382529870697667334210751214568680575777413542631049846752489432013741752546474103003287322097827780818789562990159949275157696004123205573964834020955976424756097199846015777532942697934149444055681024492417960584047271931340939828933542907735060449411559721753265637185515471399724594471509157303939089022381530017605345956581176889311945457580556887636953904639788337334486506234647308096608176889108180928494021348467137391334967461878636434564252371883884649141371597958508787358426467884654325938438021881812050538728018654941772951979291551032063276615524297827822416792738393100537951091518452974166810707260307027476437594906866209612273445425146605702214304487051093292443832487874393269249451877852331174982768893657309639010622463207348505751284298676896303093601211966012927180341694223555275162628761348551376377965299035585535020431643666586128550214212390797039966700027644137959925840547878595488851083187803282934160373564114092682608539223339085731663415483418512452406119941466007973014426418396141336810534871316877142117581329396806798321547071727554775694588726813107495507700551908334924745730639117903420055677374220192278255449966377933452192039904116675163698188049285989017715190748583979893986358877288657113904224164321995552663994576862237930036607095513714645703063687519124842214108632399607937289061622435355661385093250518578925416642264830157345145501165176975507785171599595098410301325004996942690143228383064487737370298029157838291551003645547854088816511885316532924277416476712898024585863972615077166729057357769283016637302884388570922553436547121206893869213217265166451463136674602151737689859342482108469378523098456162109204657715512205687912855864499451692110025174829764934577309094597405811189996968483987935670123295788319508044319756906611711021587923507098513743233937330859661771028837413963618960958871822937671880202263371598381432793482496617431213422602853556249467064998001224096439691502722012029952427498344113128832556535583600264169134888894160652488862936403721246002394043415890023981870848553460353150413085431589939813539864524854951433784313959747327497851677675734559009391059482960532526479110890001356659614907796232901951820294062634399263622901357049876126087958103421693803234920154758958776790784784855811717090153132019927995352411290501201674095144831617856423245906530610817566562050501599323263437004236364803389513778719442974654037984560446085910258080417054009431116063357979838201311378836830460473597235190343003272329194498972391115165430955758022790471390700760751396689032136948658952128369868369866696534670631636539667030041336557760749098924923534756297008380647682712221650371563384312480430512277741216051327694496910678897567814041122047825621528335261563846771915259115539573970861981411875036229858652948057562770968504042852051466802082102362702803692305886345599064092676720235966677119207684178851366408249091702243608184068134655886068656898008632175229275745336780966529567472525380349631868262001669183686557827595264599233040253146065232188913953250593794875458308128363870448626718585096626680096761394388387387728792285962966144778402445417113312930842727880850219026293539650487870398136983028102909822452861217233232759859585398430251150754512354382267297299595477461816297210640168613076590819697142807593995351653483653660644958709867353617393389758599316010107630027330443514398469069377243837364916330904343809911526622647945817804448144642866437302035118097799852335825724824294986936440988221660741461976691893728752857663061265106022182358355205882949012671928772694852228317247343737183292124280586714542249987297825287465305498452340583064223355784206930920107529113761754543097253110868091961215546004340258522400552854899487954437882673640697108675302209216086390969318924956986629634768442055119177133160527971591540371253217889442329427434303629149031916686775587156889989830213184109010843486812057824163261506165494779087139831388040520544047013625800123907509687791069192801413866513639590866289404581726526850064486459601396812043334007158248875053084893779598971945464389121030384399289303393040257835628890744859871071560957379322837719120978260112826943808616276206511600447086491248495811804242892726863925773364679491152692352380455750080734695318778833955984982950392485590707489271329359772575148095595866554847331124087852608324757472421132281564939792293073797692812989709289939282229081743447883577565655514210878528157255414731166826965269037508220179131395333452733912199121810601858302174960474333424073097768574600537032946296628770913797474093825057311840623994958018185128163381939922981342291977809616239301938113680957853449102658987015340142256526318607338732762419989478341393892428009278454922459983794771057845614556448541931603476637590841408976449605615518280399941718197838908523121507731852949429189488925159586476980418799821692271192692435579246341772431156826959090508409764438659200309944354897035772054133141681138143137209598552917187201390238425452262646675691632521231682710818194299699805261362566179369226352958645777351031006175262920211570373102372390454767345885415790493669880353645061222304527524318162525452927292791738185126328401062756265277025364025759825270871458050876699467220757723582385989529170163550698068592882495554495145247672746905349673967544302971933824314410097074955954648968206975102565394929241270570002849333485715316708676147277036812204513963769168151003569518315189486464102871968467706144901907444529750969667687902079132107954036179038337262421701315760798042614246435068041381388720678744044692918538436330599982903723713115154029433080407276955194190533944456667814344132226266774634192684213576272363105788327462185169743346483206834173917732264301234774353404192636244994070027890507493250285656978881711050186598876506871021027551191960788926106006252371398981198029977950025742283743904107172657035915774254215783840313416766305350679161847214124123794449428346179622309084171500381816236385927987908421303853331743342979043736959709872759787542770829159743022648169391776234929693087205933853925790206873242283224969520330127137605011208762359351712225101790023360345950488189635501593953868299993161639395021495355123673836476680539186433788566092135583277179871416774025190677846743167755649886564769169294555071765873408147166547646477258682155435959212786943140666802694513072474107058111882741584661322305424303723726153615076653732450139072966715495483011638488783661792637277141639513348408868521348096631610783359576922705420413436448248348372582412035462481204587836046404674610738619071292419605592379403891612746381202333893859681829892008049201682765443698960028982326395334116228870565523561272677986382054085898529406820955544084076360349290124332670112837267138194984106617940545306911422036766463110066795421647554005144396751572391449034205259414398196376204519784280360773898568407516910137072007409647004349833566064962023965340911511274291810863446993356495614647579758476427067392429916116949550689050062224702634655494739647990957829504773051119986619167026710970987719551429882542117444464240579744673981713677886241505259865898080808836100978808700208699074661648231426264541764793520494600478548012536934954823428781398132901937684453911322044667365081471250173149779351945441376891288277500664554883358812188903888400137285150108481603195957948158477508506158652928107471870245165176164208200457987558854664646349538698525020605505827055578079385492353825352171013100666517641784926291450064943059471195609776608055193397580197185174650609163373301468724144274198741396087247365487746676439131415355427815500639349263645938424259323134690047704299764957049644677347709771326221897155733488552360090125360296348168437760844126270989105730400251183772532177078256540711738332343806673224655978512254452609117818497026758262420214794123964432955732157660347421568749199301474526524272901871227644786591484026106518862420473037621291449991028264004054832820697748114128075149446513179444148741340909400883140335030896899589959787488031484243671529988607262035263663903763204775744793292221619784498745285274578999668777449466072210635719539563120392190170565288245013973793002356276950849283697958878232554803754884340071391174900885362706751979294653707986784190257831476545576167233199760552256513612860742007934671973105609531846463752908140177150364665249631982277827593378967752579760717048037251129250382447578669511084535142821698302417563578931039095861645225559408905654909874349164848957689013933009675245956107863818681759907918746072697038883293816994664138481987427245563193692258948819125612382446996494437889201836046671820969180673900126164914074182263740523871328322603905879455952973055897364547570819239528689503366468450161737721126226006498358953030508705867547232801641278801746418504373217635175019535333201808107256722659700815876457799989893973664821607329997288966822815136452558687358449019988005837683805083729777835789106775727375390962684387504099929621107796655106698178014985808503661024314723045380340532168459813990859136633279192951806521487361097078090993616551219279347731554459863718887914129592794838894824214236863708945052145383139771886309253315076498942236339450106213421394827172756652815922428847780609951971081088825683020692662043552603551439956347414524645943852240049245571201408040077101130302050287505832128434021032104227788049459855682036040830320427757705615779325439358897234649430074543851468868136898507136819251811030320217468028297549783730507535684246992986001843759306694521289655061504509377780744928900778787623411841618086671857815586640992670353739241778295456575994943558021658775105967657236777154435927586925138735479344770101771069558294719099579933853931506867700678502150988353471823218621457208309726192048346824645386544762545803989594431607319993856261754924243604413202129612505318571444955816027771514088493180282882890886713025854712258599973114667960606596163743328796009890954206125488627346272331898443248305636635829833233525154395616463029571385841189875270778922093110390797717959455893551191291953400982201375799730461693670377937095710883769910203462378812196464129780880771726795320651561175582456190164937113510957287268513928565525270759286580961545615334961622211382384627850760808242569480463987608530654647297245306175214226566998305197600034455813551459707661124664465464179653777581399114473107287517602651775355604169628571208207053629215706458592590353881406980106505326115465041568736006483486293612017207134522092141622130921717828553903461353627636989497878690867826857979462051644821333341869939853357670519932167081780617465334875425844555088654788989436145622557265730332727636559061531858490278234255921389644601467936121526189662143228858286356671496325161377761320553017195613923616772505997517414256335758084272751278100081068577119306266712856841770126903174387190979094048599575840839380720558374874786074626820975110495204595950419015910497555680122312155726262565397731106901258757832071917916592070480592035619226469708462409473111923062033651113661182122766609567495635499422106185665887932862688774823849458201210961155931297006604470805689090551974795039632855613113329029546682424296075518874297996973525222682900759608081318476825015715763562464499778574041970597078081634340258707681086761969052727229172575902375120996817085644730808349227185602943070662876011850709076183795187891095304790991071945582044605785571004782182036761216991085764757910672072321769359162515187311504420854258577189906898670918894976309875416261983693349286935467720156262535012072431031294112989709512441245907903894710497867540165562057428760762500560843809911872327936295774082735989450468875763173357413509344358224017254458682774145167163084199338949622506205831335967541116159853105047296398624732144079163658569424435214857281486391898360235806432253033867882762080790491129902433369979112903487324314122174125147629624405149911778659590098792432544631970603966527957246807576182045109733079126982035610303711446985845993438639576917208972604399594577341541251859245149635709973608688584092550303796992897798073257493209620571868108466256827363594751995239208879427113902849268354425606808580707207975751127608775431302696632892855335356787787959883391153215810671467201191278176257695888392861575171773444089538517582281667395399794109135125141118659305484963959238796007939520875619713036236330673571620685151893903607851433892304524311374303796505539207154008462575128723461122473480875887307726390866766246798654325847448193913480651071706504756982989732207020545767878080876789607254686862405298998365899950240359116636377614019130863475693119636182853575260432619152410212655836329534873734169147712331242934542366567360300331845658854960709859374734912860086213408495734273689278817888344749856358528659141504428139111255029083861637891108912187219053803904502713389474023188621170781293225921193657896027635566363472407507745140170706250706424262392665239139614729387509272012944357170082034144069474398895853202703666684830112421618064651828880866046106393798040301964599460244180495681673855710886990678634652849972045981376937817418183937623073826844263959015680395372170502379782623043289580554616383051934862728843217512240875543926596311871761301910067464276199263383528859352959824802927257075468175165360399249507465052442757554670116873519450884066992756729431327106536225608420847187600047550825268905421401048715522846348955089464300051304472014152315721273968429603367280002504695171616695227987870784458934156419498869755573295540784711252041997142452043366263199811651624151423757379409452727587976816931329477094051074718311690877346189554078229963344834718825844763809718578832351589265249996344147724954640998534957833202086047573457829406306901111013849594282168907774315754084300904911024486041738346890822841467237317821609479467951623502554253023149120367869342867483324507336772826684325332512593723830213957197563353953284852231642801655238221795314006417727893658113896536170496000619118624996330875886778505428753090218698044913033515954043061049932684500951413690703886649559739772644695050802732774881247933034455601722788679049685690221797110672485097748358297676188398417430449666994271264013677760160532887802924194516982892554660868458318621475171314816223304270353314162614577349001328740726317772408964312100041435772128261098301447954599145692231697668995465974932534195295216008307428839106427756183263975047348908036092495358007436837780177168066924134980287039350206364528702531729687251426132597734197337967217900277557321394358380720059375547341216528371471507530055171707067323162129067036010085841573946604393950887225412832063295918418011841820770752058539994358367282219485138518386992665906999263398076540385662887153177572924791522850680286792256365551082062157421787396027729331191007659066377043672523009752810246318878063363279082762863238560125768472830709813008599225702561659311852159361605240807440124051167863238158569718726467243747518493685906482877108369482611110037240203596707368571868130991805730882566009326081975988015393724316010302017009956965212967215847970632977786646023062481870879583281646517520278666827219976910404384944833933706994412155105358772217981663680757540819613714730203249294098588740541722028913752875576152002869511599159275597718279780475737192558505275510149549969595301598472313814562176039083541122413219998266931584128229046701233682475194458993037067310338273221299167609069453960444894479846409477893959376451066677324677260603046933305619569928415516837389067446604250609527809509247953925304624222122151104152989569128403727014975082025507177092312403851702917891960747205387960668624478973615382729008275947722019383868260131622260634166576232422830191708558293611064531336845134363186119950343958949086718905529665279234856115927235086697754880049733092624087728400014439831320777253188133307435288833371509228674953269284032967166055816893173197059658641600797800427782626953325431769490471571194436662652737323893488670630695172825051223659177825919810510198900288452634358816064884711774604572411337227156919718344613873640608020738406836585932304633517274755167894935130597633292738082353034750982256398526894830539249053897689935304309623794805446809053847157779578466839813886471564678218280962021049303565841048126828427899939405371703070312684515646899707821052722794157688298873485546298233279579626087442862677278881998322306531807806498467758505728655487663209016797357375903249659182142687457651695387952222950059331409025088276099867912593606662868824483567762464617377028331501995418728327042289610936496330306034061221648014881280133035728339675761044649689998606992798680481598734634184442991707035756044665888885077006978167886710905019355566043853418988220919948057221634256043079926853030302043997239645659243379043293062927449321881780209012256088920097861478162057911896300209379254416406751671262374304036936212404357116974778844088517713233390742164326481843869531182433062475428393669234676302830617755323219197224811532807573565350878881640683442850932110670680213340324724490350874693318457106749548237686885122201900829166099646572633133808355631050579320912393602419950378196084759000258443809810867771697196881233598859700160297430783973745905869304634264287745010045274315187357473118871811657419178717852774852158808466000542047924343288085913962778886207381626684294922028085092162068838891840471297045592042638588882517371738008897241622051460333808716294285526581207719973811049016657849359271325958755552613556014221829179755578815552542271498246517196105739021556373568266790591655341303625023078138109291496836919216711367826508727298307423289367003432817667503537855000969886079541573728385449826808505949322779672596254303582782107968815298983577138698692321165283917614892046854870835176299965056393880395577604541053647396166202815421978945376915107043103118727437752434546912533047530583482633291902305471135048079720104647747934128386843788252843642527040747519798946980410880946995222967276141716866693400174042541539393330735041800002853444598262919365834779038500035012210482020428774703408370164508308196661101195019687331319471468657563823259652859679346255490529208558752871447309086812317341377417569362021378577570610865208562677891649876620697006212876239599868302343039954511872929571003469750850767945973152124184212001913782939370305392966331981838365059709282331399291983428797847986580315532270166182363842118526885651863731260008714689725602744480829793567861493317439811696071287126148450810574916469181266613824713916456574554051197094304484995339979684061340298583650241534203129234384401035820477961690556430370956061363610070700104065850343247632254203660520853452594712562252721307750164230669647280683829663471844547902171141522973652337549379429836149838528995378350526852270374005616441916181366862657603745557215255585344897629658437572094852878372098419531882221541656738462470284052639826643571373649909236836020911963221750316288104185733718040366669780920744787411823913657401444586518489043431335103995942712026975953545386294766857092184732250338924728071381168892195203160463187667548212333458322172700467946934305113658391944275608281541586949763734386108692402033793258945257925241118910540683769615844410042387801015674697529489617390431247849654910576411637191793300516176181835469169562324613106851176747922051396754735202823649853049031859695742283015291984503431780777167743648856627750053798242802816086283667824008719788453477552930052374679514535716819010383902640967501503028154842983680024889524362900446627705479773558905346057105334847759620056498190216544377531039793441634542581383889337298658141309977853838054552418281993669550504745377622521417380816281648511258093904779493251258820685694247910779318190378387456422363583082127138723003512346707888337797063600635303960110304773444805495690401509226231278725459034409074758226573346834781018797002351764058169342435647995764631895853735105637856615667459504132678834336557472156136329403491774483333682458886010641745539405522236106192902867911548740375149158108412351756711537519578829859997546837549176782700046882059664496466048720808714264633541088628879956111569033972503405620894169154055763394650860214309174442859451682923822429019305967602443141664482535103259366586442201177958564125197429894328942157758502742416721704038840593569053165952776319727375540861439956806956668052979978835431061524474264622106888735493028823465319764441564488205736223645926662684461944451293476999635684541497544369960405876161317476354694294333695516169481684898762080206367097493941335468028255622668649208364034875488108528544964881080782699319775792303771230590160445632589958167467484889366540537468881188162512393135803902286606015205296959407604719899748122939754238184767857919004962743079887022320916902870677463887164434405097400584147859268251016001979036305914873621174872342020358722675492035936222554890226416991146046325466882726916504045474733586446918805917599874914226419310800216963077629171259740292538248511758161475180063958821986409283859822623101756431018550138910206306163753638801065088193241735191009292829980308976571941686795423421956208842673386454024898923749796064407950383980490007358552095129961609978645114112484828841896316744768897653447087495187937179773772481547025928710693807476542878230441427243110027960373332686383588133416969686341708839835248631341619530786565389559194125346691638284732026180512722622294121487795569134409288406885664994887427247370882559129997862185805889218332640155065609195274485009908379292906370123789701704342566191903973791059811422433606231391036539830225814377507977699909486270159158731621178409582664125220864012264179126431140532807964048896745297789411550779168055772739275405363832982452158340827874001039235566292737126388172065834508585644947954059837860438427968044843237502623630008500666497818667250825774947141508635454644821250112255409188065480232666853525759808477596078405922134814571322942617890017743389274556415822803685606206017669927150123123224597267612143884079965792033570911001125072023851033427235479870091792037527611874241450456959103929013142711080787410777547618629659138974450540314754871214929669604557604726734465967509217242284292194261566859159627543700257276542678734877456213685106526124189372425850437044062067350982438611651418641620115359575472902031283984486128497543387764105772547645821603553671619012929191446016777866823961169696157863685123764600160073208200947450132437985527317140039911631688713075977308458366566673977681912327809762084357777078279816774105466044163103972393396369745788506321715817559247394110076017849735513938422247993330758249594490541310229661299278187977502188918612748951847105569208265963116873018743196371363309265006628214973717917301184985367760747557250881193697009737114605601030212914923494285023378896308398974396103620460169418533877916082969118456888121642340076220769445464841997971677632295542832465348056779317605675568747004809840958790698458549084223951177703245939225274782071410801413922771374184428766779429139823792047359969261745350515436979355835224179133074525124517567287107437329130858876887866238344222853170637934376586649188201254140214524226054372988131779590246139516782776142250748549911485831744659126497317334364159591067409847303868530272425599265204618600353644015458529191875948499582163613921560217236960083838337491210908444164810159957832011635344462540250021996214874134710514054639966580475256356336990012720139769994197957143604720437397375877654295393153446726960923774513121282384918597155139079528420328907088979252481915182793314066709475223946348578442689014974353960340650136213979971895085247212211775564148652400614423564176971666526927361909582953095700229123910548246430684397160167644143292426528577842473871692901411474866554202753054225201013259886303397734659662701418160570075249447352360873697292371072601041176666974909413157417306305856479248845248481637217128199703273062298801423611726889180719459114647543556504002973775738734965068184025970551858408420588972083212735562742109633546940684477301693413153877632831671825391295911378173778575889943012674493537266129783855279818711638776532262576148087103215502739048155018815081759449823156913172714002904856229604947582150228526251302035042070197532364170165866627827477433307272300417618458284308441894590612612469518912563937969975031560822726756079528540664269867450918838451863850374285364264384037798529966761766107362730933050339564437532864458699622169078086971009854483521808947746095910844863339993936423103507034792226693590280049702357300213087420968915661699756675517859346023217731429521607021014599024689498855181535695341370810488343727339180765330074454670577764844746104248927711496092495788521730646527133210841973945236966905612180729206476139331667418042463532631513779643943424052162013958357693134823032041057213993184413224107976179243846377094950288479148648974095459358699853879066578097682903319674848173390250406764579577106271681438730932231658715243648843478988646777428391909792977878879151645582060946660888163114090252112287561647309796784716073565670685070287979680442540544984325231204915413294673785267805685745946292064602556339254998003187821470963087473739157644728515351421440183719719766604607054481075559964543408121843773404864322269754846764710347028922741704371784247843430107716709675887264419284005169741755456062981577554132094285704346722381386685108413702730439743084842868551122566154613196771557604072981810110092652256420907288189962065864971347803410656229100112400541924165791632479558533340589094167855805698022424830145631481773659470772522883319411702861330028840349315489874915699864416974265434478013164207795533372956779138115627052492628545771678068347682124316081415211920278449060294284887074842999583016347071550957679766278637589617343990968104610449854033604553240354845948043178460954182421782818148901649047661639520627087211449479235644795750561863240953728237522369905209443855075973073817091424022567028417398066187144581968839849043141269587211694348743781293348494268932580980636989953753771077301276689327436535886808633935487667278826831012170277032319087185867810540428307178688059927403238466153660079534673736387850608593059491406208207933648323378133822472757506933140881993825458723795773210112733734870298317375274159242608585317279322653093403553030254298659315967690639677539666350959853227980337692488055918742454460230776981251663759312723812030812719875673397937656852128773756355999875963716541655076650275090164146728032783670293307196726931989762296347468423711459868229141049155683738062644237413757107414591776869053690697482444058569703175604890726367714100321714015783054021398165302243660196678696919539016694820883258335044245008287819096825339740381954248705901004965224779127323198260916562783580268128383364670836122432806317888406748632992145863588343567720744727234276767172626232849502971709395839473815803656073661020369935526354873456790861965615600072063032094057449392089272307145242209727975158744550260566308663283461760255010030686146718956724463146620659243793212310325348273780797295318415220902469248256329198240345497762218946678107747712645252282763217668737134134721676998513679025689369851794896172560916858310580379758519961024001313654685647627274461310926618818959798892095280409804139785866199221702834747940943878091523643198434785069578417161053804961461599518829353352185451212047318244158132831857666019220624551242326967243432590682662950117482602731196903830978560068235149675585309096388172531748236955085677148941291843046951104718134807040349947769877210099261975790008239356507694431351115781773932931191646826018185463114692717664583537196720434055462888920991317203213530800032981895438417420713447536603648212545664688519285294003987720868588833556443705108926417943991909973997583413947475366630649688392123194347912878520286566706618086778532243699861904377290237298809987256971629928300008404802651030755822690333840386008164158123208591884126310820000188381841623899238516252291239891325139199742966413140717687251298470804011007728662842015372770441484840809451655788194060152554574675871590287324417758216026328246071617534218092724116314361845208736271434580931923462318060245200355055149042279656901632880068497102874171605925953324850732378065346344586978510182970812239637007794351574716493895656958205013839864140227042808127077556949243641972614658440133680545282142361705122672732159911853036838557823924496214769236050272241588193795206192764232097741562682396678357717569631518095867502455236431951569288982093491544528277009549140159035990722409687175644539645640997662671830596845816651063075974484103733286448340890619628126191784581132008166098959247613717844718325919434719871839480360608083039912794717057702221868630319484274669185827119402768050076882370810109808675440158047922141324901452238803666517617437422258934561781585479105027557225238559303191071809062781205231368264775896417668228369841891953645639375813543413275893958530646169753582868746339179122325796198925284987687489577461196735646228927662206112836563582301014361550875159689623146580725732612469587367570154214373127564708533478925807505783679585302345111788665252677192410333023443778642837626853747502701637510779699872651238013273246409674049642079720605276773684989270857358175526723592938344023304445219179317760878660629194435759142509329353132344201563239121339130384669539226496159575632657459488555350377797623143212745662200479760663638638954733090752455208978993244361316656809710450371739046596872339360722868973945956502911916728225487912564506673838123489643133354275724568258163685819641005104708101072460230232493190215292443557262006798759046005733168305498158466574234511527554300690463328563138396299666827431176658081676716625740340070636951797725078594902994327897924234096887938570445687370334297097479420274728852106859610905836183553529391641904476686617133866728084980295857082446419717264754306214404417297032443527586443956550989969045060230521470288271560991451697922700628751597162556094438368133033866831555604602959231754807611389167264556167741003395197403106053865924833059465726167814789529025058691113817520288870801740635978657872967604294413790595721822911556652973014459957851927314414882294340543131133353712589409103047274892392729733681867311987527336827286745994172078065801176315516269150409833121403393978926161667159862635620224185959199597365193145978345842898521407721634251018614767345980540733455116645739904026465574753028981342763655571939623427776096366059882381817350319181343571174756854116590022365603829828185714866388336740543090140251742236803405939261295416474506757930798446553469928906802845849188241137811316649071214705836289524843251011570755517334625151858866733872370357908995647788337404331497377161384467561274884334819980618563517875590142561850462342762110112475509537230602246011213302358642403406611725914502732069867829203215387125372037006205064632105510707159375172073699931000291237293507168920715951858537123133285513490564634208881138342491062176722732288383855246015465541627308757589070894492060241551866942611271959232626502541506573598168944680253836772074512723007361048002696763754178757162239515922398958922379709446998911687436940403209657004995941357269740831567430360530117805119174512854487826013888720415535025732159014154667787879488785260760968535621459582973939796662179602660978031470989995307429075486238237576543364833441613324782294223976433881813054275401553995099670335942862922917909891418591116202002855066788674670210974689402110815115428660919266609414777579119105526695710498499235773073071199499597464528215590743267245836565745742633388527905267681066322756579542029916298331478333412711162718583036980923402354423645017104506550344864660734912731357216895684575230987392461091601617571600686355476791451181274289031689246041889416484246760193421776932746558502325575791957141103734822552302042779627295143428191991518554179395051475195085236187160685042736157476683831623313999529224298540365412470795231157926607252190227225972624599748988706508482263805538973858613015532256404920655282444397517603971613164250634737577317704216554157049917848159634226905920619029973177212246576373158373602712660294617235976577428891276691039988856569403700631977176873037135256133498776583331795740215342521209915325120548262618961520371946158139647036316697917605422092578807487052750843818921383403199480005019329321408781396064049282503722730942057538477446449482746382629520547840246468427699938605351885278527517909235556885952279400910037329495994946324268074080954648188212153921536763176406346660853504415868392362298501611687975556181613811879869640368568480544097230437518217557888964668310565200704975580022274876841684805364065768367969019599023203567346339707829965283444103018099521232582066357026681765838066003879125409994397045907708598507782054980102139510105930441005355123882638614001628328746169905178175808036455823213217181070094787237110503118765628362441854844452068633500964744051709457388708625091781579254938590066161757266111173633724983186191600211716968087246658239877657750986827840163394603431605756659334702616788975815133489701175522179152417822517447262638829352627588337071118793108177915653688957162081543321755444012328078071327356529284264088563094680515520921321420717790047470434736365089225455992636007860509971602604650257420562389457149836240759107671574815072810631814892147283869235033365909496622359737656727623571578462291412191751752445702974801961738587330157076328251052053547020112401205867260739151611073457433222842014855534729338059093263560720438911398109486480793435591219179900413626551519912403807945661876070462867836160738570666735738083229883378204116134757148439480140971217515262136793984328173174639585693864852907288673149024012757258513411951697998480716694237050326824563751989055696561020540545007220443747195690666509034241309194651040803769825882668638718487758677410424595588115375541292113943910786950725612071964143243175024406069151215946365211546389494271448618240228855077708866619270007008170532321551150156947033700032329349201773769071684912149615380239256257868318914185175457988696679020657038043926752255134895773269019455274543135032640381364310814721014402328056849964075966048644910527968806094379068507194818695515759928137887771273911090150017110391910019439978615491331226127529111420365993573654626776223529227918730879017626078168259283686572509378586310471008462778718438590504035244503062545181024172298938006627384156611652865784682011973006861681274673550819806927628789140464721698681176722759566881789282622773397138170772313985521797786155886315614133102343387510369925263490192515446360449915685657562716028649518754434306356388851433668756181639572546815862684087411163252100196848122900826020530832721467084094319269594393299730686827750471532678726764760011663993031477232336392391804654107295635499443836750723748492650977255747305095240742342255489286560033565007382256490892414698552427099995630724800410460193122678960979323631556117581451620315825055323148206183074154704518896721812521606032072874910239539758898924466254639456441022382365176911526975384844104615978349749205846483346263912460258042025331441211340269832029472401886673052107561645960608783831429716781451257771854009533420340603020381121386969060752589591086781100367799014948639612501538305384039400764486303695209314557530802185637586456343384024911652556071526409877103330193068143686635420515419296601994624902824902942821650257755941133671017781238493590285679068700670635370180015497432075406713332115530173720848188692433823714468256828019343944364117317199641230114000348943723296655338445347001658026797292552228320177820709659728821688926595843966011507478741819309916450017449059778895777359372597924423248011322697138070178272960025627328594372086847930467684458249604932003936823581761872876971276785969083977694147002819402872359899338692605488464428723934547860239153124222851855414772632619501207934420016583619053965491984028806162896654357242774666706926253106159004492809006045803517410603202840245987290943892991041358232940137120856770311484573357972459692740838161742055925035692856909266803300650811320807145595510933823748831913428356940599636812860413464496750215965563617029768169088518128761498860806273896105350537143638915907271526019896464398852915049772622109260762583292546021207386166522020303697137333712273316297167162487548088100494339989834474723627555379239501568847738554692351254704012938786401238192759808588287076314888543224414854534832548547354784432048217057152681820661293315671620241148917169435153502393752866225031367216924297370081427001832488670681513311188048996804614914609524392859672012812193046944451623745484170037151038446279551536108413192631196453511091651091139524748327004281330239221646580021006767302602512001486450323123062916555005213255720137705912355755328029457945545963021832536064239374411950294298542989620370683686955495825612905305216645198523498721828006718241185389473770424319821075965708515517772494969475096650761052308494614670102432164248428173227092143999021805488473249078681333833087637943832325659283847458495899889699351899672466392291301835744678302943460757571459893166784956099719331438842872588741008877680793709687430587833707865363579616263227150043717550762851972518108415368255105963809187291322874505686471017887038295067481765972954769292673102235835223930797947486123805502275830368871777365235435446451035742884028156598253561981389069080184139857877161937766662444523398558119810046404493131100167293539409167541120901557228586403074221340535678616516736617748789614279467770172458362526473555827574312360600659954686254125743786014708311191938381108296551747712242953963599984305586162056791687703946416841246543946444958336301030237331596013643409747738675556850669993765770773990034833095075891927376286056950807187619937015328152269406869498869578884792354501047012272624826002810190929032542493797275442080458530690859151302438035431784000705562255443888571991740012001009050226119771896670675496201929427498434397464978393415245288743111791197380983960691811726643803045589501090906917551129996724783375776073741981085910506856027614831054026872411521363854502828332104800161169538680533300542530135777491713843805945649240421444412385250474874359002400430259956265256439689271456194144910762655329163989696188100387298097727316807750505822609906834372877422256228615858162712284620476921062407425273903775283637816246097675133095692223514971875906234881575472043429079627904042037386048689375706568284292194777463111718560086380015755234909816239348056809026224379044872352875655092879984306090023203545543321886610273304992552001814801413347449192404307337195071858518091169726762776467766085910512193825270372678440678268774785360253178733167188961097706894604052418139821748522905728503449902164379551427694565026149889886846561102214621297102623910188079610553977344702249656242570555841759094578284491658769169692641522621367587988084870853500962215244844925692303910151332013489767071795240940500060036709441632331482595298941281969170071801892293929187956401876167726229883083865160708898054253811952337204367625507537013411898355586452868919788351964581699201538494721363719118917306425625258877772858313035947443215298066535013575881666706256703286006999903744194400538019774283024299400014280911496323761961452901883740775296053216379358555994881344022076706039729124576018140859768191994866341277579791373531872614198322645366437258013663578154513194241745513334771629885752926008441244565692718571490782318089195485748025672401645942236676034621853835941329276518864575191871350816861222563193673386856894700534671793862221602560072220553962239095418152811760241767052307374455338954949800799286136763462164826848279303546307571402010733522432153696439482783818399050834241471288533255536185347455455042726818655085728513262802558267071069810669327198883197172076828922890912507986857253498265859921895225913468963210113104995074580329036351503661359451090394834453815401289467486951482930679923813422561338525966013377778184955889829090589435177312909030698871217176481107076368356583181979394344284492633098547358350050929532853520091622881533366517203391658298131306765185705233996306325693755660285382887593290190488502975697373476075191439729903008864997063951011221302479188518623055975478630859391395134978003401955818490857993639449678945740001241876183794289915223406262434849008916688875453109949551930862182429643083824452077873531733217877213851133270053322406092238989011845074784053138269518856280334312480286549997413872448640987209383825151993674960938540847693024823818680518356344519167688733455636186719245582325510201171542800317678816717214634760963625154817499274831508467375276688806058528351469041958501631439944155482438242454411812691283860568842192051019098586229260396287671658973517449944275110582543682709144061783127306730760772286567273228235376075062287892959782610622942812050667097032024397348763592510334178524769299285952937706519824417808331531326109622029093459635214447437254310522966612161457999093069167231932792884185006241245473528982391725831506920699880474277126759264437315662819758260538032294176974036534387755457753188276730209839297903803326460950075414642500703715612902527643596724782378042113960799207228153683542585877380382228879737622867381414140363844430191242124113509895645606176313739718498772013112891061608972966288488933066590510074934821511632313025126183579512616251505994856049128782159653253274508653021536149121523320129476204140224526698052337947529641365636083879783764865012151624650287375601577867263032234222076229689123224333379921213464132403638958545010062136361164725991745691906605166583789944750193341308502321473995720405725858805187904306191234370885304854727938306413013279536939883471725600466178685269502969728139091641645936059973535308458090237972090047319733691990917241462907585215024770248322222831806630373674674887615188726408741074228324770694696864852901064328180027244978764662851835779977048649012476272083609800905734419784906449971347057417318126778945800656108928260673686780428547273062304252309143976022524627941497787308648137912877889384196027257270104790621889340880544027236628640308665746563905427729841671620395167060127647088756760282563943284810464341448501086896943046376257121441745738951829793654966912704332790721407621731976250392558513909126246248296161607540846941954447929984299208982948432572553502348291318069684002213233761617277410423133643614805290667887468071572500383715361379561819886103421469369202675917293522072114341174287529944008842829325671037949744104001433053752362905815535282510953755296505419312454399519899890969171694558915999046279547175567725319041184481161182203507486012251481255914423622266900490989473610290473462963691761358296382688491400530408220407693956217771036951830055817951998632589071699330892509776747587233153033584405623194916382150182076778581690373708144187394613935992787733328099413547499685414947542055746361301934480134333745831151363596044737319352855579570597303362308623290269863322788945152922612721586858980266518588430751087959074949019730704009350881843033804102596884366691635035991707825572893349353956756192122549914943813347248320881260484920672957232367272431605075311022540186998655739856812724256041568771354314405178158620608015174493053532640589572722523620124595401406137417006881136153440860554231772950086835997422389429707147204539919663187647995676272199539275120741826778038434466856057396917714806196456051413251721192674226564608743315606265123652490287095536198936359268423645997775538488719354922444721252145737832885969336838774484616480886204584862032286877343955104980476995987508426838596347412604293875570702723302426038711535285628980940945450343772875446286741457912203445108456991391608640191854367187853250757583890270070399689703057550028390932594144289637518693039555588446326356055580688899768516529725357417544387086212238619221139594467670554684787926735347965959431192297297591927881974201291954943404756498029893239658877293741261745185601883867044843970056670486599209186107055897297508358234864729436125377097137400099193191076153400045426294366183321184355260949837314464854108248427824735151162467280811017980510459065668489626690224848350994343694306682840060857168083456334846494525412384207402422700010590510445012446860879772440762508308311459536394069568849830967728595378753379213754028024858195916070321574087506102236516622107328800906511461351131338983679084941093267636649767701818416801748732752428611076244016722441823511274750484496961289695819589756958238088906533885236131088968628234465342242568990590173010797655081767420704501210233412524677021003327661360892018973998564731935522237713074664533943819733835561384762891178568245310208990871693974904429403122840433331719155338061148035120234963997712202750165324777368876336814873919831093752964860476897349432414257920489151509849555506084498369727249687641341741060889314863476298523406440425072496005668178991775950455471366732979009013099222524064887009398266871412715593451354410081208972675167557231624110002885585362355436122648208089858568669429408735017988762584197669549937224310065694690019220052797870498290830274393895964050531049650960317774409893808014387525204771995859215343208165087705218383716670446491931697567223619785891622133771309072820614534390341995847484284115813688214474084069135687018669889876482367228280326028276231347144148734197767005706961589832392571455975968094671945800039752786404375899175053593532793727550949635111117819778400542244682408147092446839114432233673216997990987138471841656473838401087336708750112689544888385173649332310525375882983766543178742892939434189595328091740639654748779995668627909203352710395490439786159388511626291282315736491318675200925855128953240921135163044679354833003120262704309847089203447011831477138001543736828798300799625801257113222336438412545751963614396714040536617429755158864984861886600254506864887761417940686030945603594320204068003610761889057829939891586265793728738909533264422094583046611653167100937021592347183729840096093160452597336152929180952149820926409072095164118966109606073007662729857824951420344230846770573886128734200816333432757500103657902235737883917439065983471193541400535486966173336019907389075083808810174050346566840646222830536038988948518764153497211410336402295682574659212974056256621115903316899479618671979629426657185866155057638529579895690824380619260010009535538037520647173539224247393644427259050390762875174488613509001644052375809774677949769836430174128353658434216500186876099758960629240826266420580968050641027658861701376363752378220885926164345707733769427579795607149602429540467231959347772729834606206022954613608447877911532791154914625211201503706082584327900673665623523608293206973835417204860543170112764790842606348990860890150565978938208609547144717085784175398140563390039732487811204346755809679729357317896819498630273547574208414715996493956781830228434109268111009554114190078964954289761467389702386588548090632686659545186268689136095011600333020351843804975161641128791341188513599501807671643205827803896662289391933024548596307288398116772723388415573681877671115931146259071505811498443130784570812445702298211731765830439191954719410596653881275220026200615246485095746457136885983044212088367829043723276393119542603266801620219826305271478526392416850069322796670130564166608367783587849370902990876251054485556910104286336989599579970099174587126059461421084448857554366946726298030435638196001588945183889947295804828039175512336431510038475945156131724198483980084457219277832623034346326231365178489393244803460334711045341342573972256094480465768089600300908299322984969769277222754592471209974970159437902940534687825837341418120424355940929971135779514909095453736211870777992679799768266724684094671791162183459469249009162996153836695138448948950608193430871318024723404889734193388712635621164116442420341886004060928173828113666577604981479109889014051724514933655907042133785206035951033100428357533814531843129212270312013982965368487620577471362558113218253793084993535594966866186994414035634877002481703464935362018677035640872118611947719424886184937305858987049986543489124327274705170556931278911610511892541648582333247617645933274069631104075789699078702219732728862598757296472261559022175466506453389182475849907575825308203083024814569074478657959698358851791787499998222859515318306584270542792472337585531439260561246586243931857901397992319316557921579015576452396747754245985394614901363391894718571106098962856737073297603480725063411577076606058032620049070964132307355472831872556697377498060702764331820790871370174700810261381761536751770977691642793810421263911033014763318686814101919376483749020460608234003571924132411506587957186287368974015058295338227802133760419499285880050703792514841751168303363689899107029590074971671517132436432921305422936440467425909251258643236388603891264247605166981498423166740717914120816884449777231937043768801025116549893877023939305097961083429926840651813369444348347647551186760022974284754314214707560120791465667498435126091113398757117733866766055098829883637612797209361140397214764083481336094879881296747959184224476605586855102046010521795431475073855258504338101914479245480844453813761761983722417431369814346356705871804918231130870278248404000296248551746470196385623415535373190771473813456683167506644288984451437967083481797596331043453398389767478661222563671809203442039407476160049751143915480352870789005911487943390030167310197491471220046651377780344280729030440113854456446452159322358516905360165521816070506330355205008297261586869588344497753701942004131571705354096264335646780703368374528398772861044205953554453453074049307903676342625041759560318844744470468855617347845618495554852430966334032547708803814637437254583804231336107518963548669398679939599719520309421505667809775461203505312377575726247861689845772914960010798561059808762747678583920257771255649165757293102364180730114007934321885507155491461811555796195433896349683779633915908093803067509880889319155308941926845624391821151190767951767863166197229629952474853862838862104922589478319672227299904196205856251960542470109587452799416924742868154158405733560037301793740080311677095161060077016146097269286596824465567752975217294524476040130993249512462672996866014658728516891826345166062958123575602235511933123114856601451375842844007556779232798780645325770665512285155694057094607701472121801645206997339246625801974210941190621496385884643138862356546807466066414957458313024869731427454546831699516263172150608469069331366743988528293606639416548162330163138971289603112394628267225704665935343464915829458576951198305928723788285799410711237684592462276244989204822775821118440551483448542368629491011072489038838686597187299336178406696062430555851910319423045123138506989144918443322936526810261134336800192187169923527057695514668924362206263601364955157615291918740617678846152876855557247419481297206428383049050845728455839221712744549672685467857474597665389526934371547670470673295030870732470810847938410711958683557520212848351480628350493348016910265193657087169351746435510163374080325884029048900549665364535342913950156344561565524206054488146775401791118875147952307555973753693530065556266872773289197674692080827803111569140657631445355169722510400166578426446019605797904902499519078379581217394376363533474802935416116404718493044532585233874364038993931645657670740752270778665505783650469323936619845795886075865994558336786582338930447478438328389626377327396079636804896787182947701194931724840097522071497934998633620631628890249278889721988630832523495820903831412180530441358970657803086967203792184334692149612475939770740090707842606065125974295930339632348288670893717720992204003932952997780831835269122138897038736271806294892413421646906888191828694617771239736867338108892063814638264296582708500822732787218112266619288498869222115708412740300461690955248819501164959977645131395595292666801703794418779693658557431413159172375003702270355151589606049379158708330661385065488585344207602177269619847223971296071113716675422226352694768381738025476571668527552714367145043305387742921116803989751642310832884048504087611804910234605441482047352288569008494184734861936490244275620043224836120779135794702546814462287097584597856851116780308582873206060031038449413529954905341041922669892974806684010539631477451826838674970557358599916669364153866042234560074712026058001894555060491824999322016715533966094726260206928172626642338872265349168516399166529147140806457839401244217355024365893201281892049136199344283120299029735839748834637362627779951043256261567103802200414154640789958010572886288463452501901822544009336342741395717132289392127680944731806496147406528249811024456076894446996115571181674162259566161291581392209388021917064924998954782278618342800431889717627754428996986355171876680801996603582643966163478574398940035848664059940655292071837616559167870333914285696109819084356990674011150899212363356848080597152321936658896981382709177207137245222662027165210236282103028701675844285330807695464952297185587910810246933814651777867729456485945461524198374894724233239797416838750179309857402462768963858820938231997127357699056337430438533352206131087852051577190528157533911341771815421434934964088878398289445034319201352978880837137659751912245740946475693924019231521404431321968046307032521952920446006201177146288628319581864059513568393527388539255198126333932040065619790112315641426407851013725080809044877024270364054675840847722470411197149713058210521735528183948703643053839573252975979988749289971201916699325569258847535325303699331623441415476446678868308151653160562268241780198068193436199239602401046583319584217613568474911226689690084359215216245545217010268662388123908198521804553328181811506108016283596072730576535065013910352342387597925548872668258695384889421122338668219860880634869255687587265639455907710929821409385993419051477612702451086342126259933170791479820781008076149544417299550940752260897556813930097544177848923797748398262814664349272219558259550026594280273081648427060720969713571873534657407594960864926436019090234598645582282068884940161425266323703449715578380028515780450055814104122547735065729046786043189374782307793866088716627492047134519483499655039497038788210254273296656279466343634099616106816907852977231740749148362016332698314842060715732900854153829740073606192480407283209678803912016377637619878447962800509307921474326305534339322136728934482008579565268256326700354718840290474283967184090179791822668404521750010658112031572389652044576333958522765693171305660316475599345440877747879419368273510433903887227708336710766881383824256753717683941793590877806458363041216132648973778616102688001223774072137724055914177861478321434308186357739969203480181267318468254472679811715933682170413006271971722973083226079953187778615678662565404851778901346015342659966040639466048073482473590833050681439812036256552359217776583501878887734908536920263283264668419704835204979683654838582075611159422980573857394898820348106080367981727168590294401998556315299623442764377451180539631784052418845189382527906982375013157994655723204261455576802246649804783555813325632919018837224004798574897721653844647827236716740125925524237521426425084995643123912658691465537802065670174407057323145901140622881453772335831291592753042957638504106990276155671594665648279037358191251515850286664317376459556466141045403756638394949310807461805707349032778749367941962326998846051836012313540488122513612566054181026947119345640762203431855798312234086650683591538360890181053383636901888876471288209045123829403042557438816876203840680485810965374502326922587307680164396785607050629579346906490651215195016659252759969109778249159600439968781926769385864768978395386565264208200880422583870908990032378491643230021103688988928804638218484796474655910215256709251365711219249148138516379168355227249000308460992970230099042033782079093446090834143523355463342389637123967711621119748686585437879655073520778115308725670433006549710460120875542292204475898622392483253273200074952687487027105757634233965062640597692673231229322421993871643392003827781275874721856852696886730804890641415681947418172726706418240458485398589747771574354331215031613362729979653768450614544627063203119947872713640365676496285425232864917920507127461116920695081219448845419444771207400348304364522979683440167756031898486864489901796575648177525414378852984661743239898163800612353333455824547118756207043317290647746313149872045602690104700764044879172766804433302217116026080282468293817715898178459813599413595350288378097297874783192674421314142522738320452726893488661367742161716730998700869364394102228097356635941701951536917432812811502662537185512428154994672407837143952312931576535601510250640191846343635772300982613907343127278683538305230469198668463926124457446734950195300855400251515979111825607724463695471562785767925186145245053224945808651153514406532504748078545245905159119533194197000255037642192294303097775950657207508725899456347111714464313471010624048226970443691389522933400221218338090233417007920578783269727436863043529214182997922571339748383927830882016977273237651823003433566640263971255324626830655594522522666762736144063627619629676088757859938856174281177654263626477512668618668806376809009768057488403505028010351197208051478120422785414979711616673352218648356089973845099453778204884834534446225142657384785759495733304751506855409784919504861180825328809060473572508275509580813820743392025648064461774733119232142417527112795509310373881954305258427582671647126462137120297738874132074340445685333423257790561094021143486898178597035027994764335175419092278206502565503281625145598769480099459782830047106941071458898985226122530819764029412649851440126221362304989883285871139479306396757364222161194887170723560695884480352125039663949606423942146017402447083770580388932668245374302290134597805464079286100344073734365017509993787976953222501159704892755614681148414408152542770215375839324725410122310163735379486268532866011151439303215128953291748599809495742830895660133762551976449386367206013619345989868892390678604310667565821512426052317090488020115989917977931631388031047892015438784595396483534465226284999230732387672978945683719909680661403202817205980608490039597332526735347613890186831182303899366776813044921366248374599841413553542287185436875232385075307285510510283020453125245724542690006702874717240525244937218034379080355903972717494105713864583051802421089901143679159986347665820891191894943168439531412143093756496143786106207556953616780358222391518758323071916257112142225574106739393371267728024655044713473461273628092728973909597125421253697546958575137849887865903013385281212271494367481975415872240850570140491861327365345172819387572363283559679384979356319890167988874905929806430950516211670449879916879075514170570714872283045989728835309686258614285744956614270501045792618073982496647898472458075994429883917851565224416602614733296151560516695808218627185188590906338003093337829673147279923563945840805848018097477275774362758213357756799804320581469382025760859412133695801069008308905316649628669059777938038554058377892152707708596204260188473629283153224471457515344047924339655006382400161810799997261339218133088526873141022142547234371369400094313758896684170419138305156064977729024054186358390608205500318272547082307186491895652322697858993336546987097220492967501067353080915619912368611621810227532585741943934444181451866890257288785178414632684375062004757672243790610108166374796407431059314310454080140330333739458443179322459497394441723482197953589429459266575945737900043615402666431733433125944372281364408277061104121817916853019911955056838383394836330098521370590946123065672703900960701174498325809471568603389793297026102273631792878068668910374086822808111874651372148551150929834878930962837174607993025676707714819431610541311407846342335019246446998407672271205426278209195706834448861385176758456731526308287125661061290535884444411267647750239612367036156245936987563514574429241046256508030853663004268810700570340514569078426582108372105103635910003276232449563394974488483204768151817401767388084893832009703368846861479054254869657574404433658049041568048105343557346310526588423406109287894605323641149485681917369814288529498858738662671401524467563349169899099262433071528948991989248690813099839213759842216741965822438401803892653730067182722316229591145801278384934975001521104331265367916308941102073966899138809565014610794111263918981016724938294514518116798191920910788462037074081911399935883827792099244910033382740621341731289111967671549716343272408583714355727709848973581153570684849886009368147743773457933672769236393494741696948917944684911090003739585908190844715745458493199011257092132812785457893272148058874081799093472708418418159655038161235085858735478722087175665682736714229267493989557460403750863531696038437385933937148538741695739723408580160159049562573705231592705017138558542974068874714695613518221989515428992938277079306202066634071803121527258073135271789109844439964578937768830210696373148563163500404732201096052165180635387774662870365984769551141950938983558170205558006592265934844732895088235648757182294872105598367912663716462660899023821902957571723477384543395914776878209101543712366384045288324958791890293187548117550904479717557296022182011831153314848890871613089429705932375814434423234755589550036937175476288464010568511348096254176057410935536222842109216213258510933598296301583785169100666217033142086622271565319104375639363505239335137845084600819005775003067857972859283807495756943512355641582504164650731832900120104373121333101296145859456521494587997741739549879701353824384792395632255462746559644048862378880887251095320290187971676093406290826622821741415609873941330679727411398461780921514106558312558067270784370431752248604968608688466286431984318545403584887928099488793799745604746658636420138422825123222392762119524528425614326600855889242951466499651617691670292201608807341197940604431618852561105001911271051643424357731269208726760161182952401001294892102763749406893265874183629241965095866358140395773625817614711920270581558557888867351228578483214844764567500460841693414446002973496414707061022287515403356578968208702681902088153737948773379458113916040968852483707448484508535994867542743481083196634922858621037417877287171841293800285574793052584340256130863518700078957956582009426795731353917046886974352631012213039338218676044429194132510983311597963752600856503805988241705640762146813248074584449416095899403245463926335640143175942152772645185184106873624140155650165007938298720842819992632424076941927972219989744470830211299387821350074725622504768460026753410591473790042078073790247469237694549694944356155565061910590608446523702388263464482455725284142395455364874290709068324394727857423147580308014951536726248004319326582299789288456684632488431951716032965778643388623622152249185641106159314344573745802029698486301942031690077076944543976894162194668161409476496791906274747556638905769511673639764767004483618858644444611269842984685564773673251666117232682860880060852902555013603322210456044208976066417324636587886873645347104917015126594907403436543988631880665457107875083325278595909876708459666941527943346709447899698252409683309193957222865439985043254617021675553431537908510535588760852614611919384150704701207206768399839228167219842279544056017096369300077575595717332837367592681972128115087716440597439885603082102996500366906015824121079162768740657767506269199279645567887058788285340513468774254042358680297674457167674309744016849046227762149179611159447595230303370168951702474203313654335569504356384276788807110697833784206531417946272464278066342660694411512843257011869893770640128274461600017391967523162135401446218244946587605394632695046679054817299917309705078825055878462414208773063247088858949339172311822049604049051677953062257077152240737618976010461176354415251655521191401839686449016196073272089261400439547646721922454931104854142377856318097356707147457849367767765028132849577360589572923080974284450208148066907623519384587204721424427983218476695713588352254984821794429619909183208050854754692959300686595685320856866078519085414933862229887114287414458445000961716223565769665790358786612925238982186977494275156838326853768020591983924493968714650088736757626161281755758536803953297025426942872304416795962321608134227815639978470698525098634602033769317263570558929216517356948238717775379156395703705208290893588630127991813291887127689892718473671457044057107185870420611761192722396601184088793670713939914408556469181078993423446669761568695682184426264387708032869800729368755616685697089038330849889680283064613043728811162293593392254507538929249215454060112775009894891149749942924012124067076081059864001773757499502459024728247545099608038032493332115938847385247091867586301041802155199758386900796592287473198347305216052873036637803709771106552166613581085669790345387306210145454344619549944376796674490888994993756599288982980212273663293729095248508288197492867353053369129718442716382500710756930644816081118527708588879234361732024081231040304879286900571282708575175628097087547460093658561220779767294037613488888328903920180815728200522452522396810302943801315143864243982195093752888192023741652780109352174605632958000411869990736508427930611246822990883919396827313356137560199943802895868513834210967718664452339400615342847068987747083074463272098937494394046903408081715059534276024647128250756622215132906801709763294959363618483840699059754947301930903172384921714433102429504082588945110313701126893085760835260844553977557975570437554716492546321204438956795659237592133297637070675902255788731713624067239562443448941212479865783091869077591436571785447205216997187697341364023125383324148044975990775416319535647953288635675528344600966700979453667534386557565974630233758580919198227371115992289455517450872017223615278459039290203777817666217658176734924460641229173477085948313372570128281364725757055672269093059871564233486337130955010035777248431787329494094123756003983992814023142921966819976535772077954231962380644475784069886337258443975009773058578490439045745023931472971713507198223682488768061938997767928451529496237950355481604523161863263418129458465474680065542976359877008754566661852508185678375196308293643666632717789864988885937549667371070959165078493875627684074771386360579074134630979712718895801268594970014500425411765804132000515034750903862162276845222714424738095966055397444091797171421592199422454763870207973533928550381268902761890185434192926697427095913396589665463212273858436470691168846169710872043262190545155640979955348502281522804737564492218520143839499905622648965481869384587213168242917933594389064180500295602404374095754878259251639670756598467193336532587352253862104960059212605058841299323010658929084711544472983683825781911837275537722903107283417421534547173386601826970478052293815330252825018228608520689229649896369258129843347438423817295280330819040140379847685554786774460182737396322269736221958891255136447047468714961178792192717751227459307089846435578711513064463498126877484429615554524773661321576402346256215206674986187326433907084276592071452439916770262223056440088284665427779020320288768317991040892037683948262148149015186553609231380690276611521334085035218354160797944287158879720092053530310406580576268559142716739405580275737793734065888101631517083823183381524775605718619188436448999918797575774209460912044921591841364906048768920198694772681404203424999510660556787105398855702812981384882965573874140046088539545306970327066770337633658703178902367947337097375055271383419476799854748519627628390228460401457111420413609952457800729110245808095412536073009044313138895519606015769753169745221565632392546540938939588452221802891879427163241861309948641480106303434841872492558906846777363469429138164990233234468741002734381744675431000650438533931894161932903904288688719988880639276619378302275057728106775957087193224213458297336320800144875680905180662404758526632748165037429650499149204058308726236125517771839426109735869457424198888508637481215754105807629196067905997675562466278569395079478386027481691437231367917988904896214557968401513528128988691418512211816080852746886540375215179875889746021218632620829800260708797598068977317665890587547049010691908520644989549883162300636594229697975741234123695679930727814419802173920769354371250217669173583490767774586752241047137101640746325655481879103456629249576928322142848065398406126000136420604883944635126536638351037002405157074034380217493782760469643229444356187385424142465456245911357692980613183016725496041020330598849052180241197378027626438451529454138333122086694561043723248755656218422816373505456579516248754654994349359847075346461145872811070304489684946023448651082096616981255946961934441022564716488996693725863277857192270021888661769018054302728521148705661394349808402411424210290578698627366269277098670308102847016624485244716528422585256522097749219381055394405291099065497393760769853466546987908416993332740153590493951339255115602932112810981127016917938831293737609150520484474990561042338554503950974367812486950539415038265867405305670920084391882187398637133987692670056302050520098052461601346440331132511158540999402664492639103880191641154396860743466292625819391865709902872015523340268359369164359300703876546567640361447136615620050366087640870215652638726517660287502132236500333330436741617311473058038668429096548566226890816332354179221064252230364287400671275119815104699226613393805981019327549800040925240395724307730447207224496945857690630723134206440005385517198244487248746739565764855847004354917580403281755093781949843720177599640102200157024235775343933059568701672151909048741637995167789841665527536200905242028388088458280868451092501626488847358893563927290025639155864234510683236903243948405657478433866535644937233058307242840954999747051934112184285932647819921921156853295771153687301275591773464233421035275600491567301104520819620841288448302754765553768892958070459657011781223474537951688212604311942194504974338021080838879826449296415395584635329642830023691760534151254829893067890946674011756194157035523044209188478610060542975110250015688662683833821331042556947264011542282598128458077785704571167187607676462354579514175222083596910812530845875895408413648622001621206863775779268391235896421233743790142661934096238461126341648565304011756897699206268376209497139830279388422514061343200902333776409888762281144807972390806094156182130691092483957057310311142746986608059000333877920925995495250698371117611308064173039928753758055053690391885407852733318941918109035225732941964046248913398136651131382180539264035863133357832336112917264369846737312047373471326399671752808861687318575868721919085344445872050527297624850337266453697398237783400920340448436023685659150756123690875253603502032074064497884757293092698892992815555852498715466910141310029913835711172129123827217588193308148238612102142592345410029050638529955735310201480392948827658263075944952546764744841117376924040018075081623742878580023097179434089647909725042548929332723083959641854157965008521490363833632566425886118297146465026742952736358931016245397066726104261438445130557999677162294982138144237809094893438954333777486281555960447886024469807125766687623651209400291242513484320783209104091932229816574507490417228898403440573473981654650196714905497559290443885281633841546208196042912310058976316159441879187603095420175833838256533741641921357679562816947729397855036666193433270934681305004675950675363983492863076683260494318066841802197554857466753922395719085317570130331298446131571008432329059523804754670640744807890996256430150178306161917941234631186632600138883488815855158798504185642729855698868054683129205932321126690471917921544131093622946443061307114401764560202543879723779793155735486619707012895445461081702055047237290811998851107477533081338692052849094253094129336078318284606984977998668761367970824456581058098011231282706904017437817531677043415059513405342274370094925972722449317568822628087383652353973742354207356704235812292448446432258423133579263590497940230033336845621675437601352963424211271286041552403807944629020376292177868531769456703396875427714338403203201296613383492504033889460007883323279436559365884335662884282243101206740073968322117574027107292699544679391267830860454206829951844084291688970305073218685038028824603515026176243368649860460366808134710248623151029528852461228929647297857822851163543571579215944559610360984043977453780678874939413244702111999952006658934544664297392302451353620862330968136586810241912506556835505133542347767002469348848628917255348677514507195449544220418552173879810404027701277298933243945751020825240479901417402761283331078116210736157388067153800278250214616066901737186101370802591688271602113195935315154873324974768719300385255022299815396725499141408249658520668963447578862695887248136109851548430134245494262128248364924069071350626398624377539000018553350460072687686215980118044316821689855835574775084040118561822390935998052989647986497138491073129755604968103646144207341925204306870580893927520316407290413154641076132732912037115753564043588052111205853403296590294402977798896037081354884711411970627554930852251356069649897297923713486235491473293440332592914010542502789190764688653259036955215618489709891416092083794647165497666284743489400863532412477608339553571877106441129762550961453707235021803765520860285080810579838305676042000892489161012995406502834309512584976709018120700849025563903263494997877007501595556008400591025142053300126358879029695385894442508384789243205107920606407181048010107656613126823757110109701655983929676464967465861052648050536806561457444394920000917905735528930258897964111910114756331605005170023962895959691653907536399568314634823147756866344755462960428424737540492107148597470885413483069690291213826124198090396961907920842191813080025602260843856291740232565100840524564302163626587415975584153038379873277290381188682256682518434015421703941035163757618499506853508608120345512511594090121214952892205837793821782007207558047171308278379850337484503527606695512810716877319816834258126048971957842979403907006958101965068168644504499977497248414537918825728132366578873587507263359447720947872610792408483912141953533493665697853767901448716194096209677864965971143528682247348404928591086933026067019234338191348434218661246559022733915410013111193406854153424431461627639170420783157399192988562108987480568121716114768652787407326465639117976044059137516092033763420604820011766559253456334396027766722266623432541086730028837986181364876122184555406978646416032695641297024646493706729724304815263403514640990803538168865449929672311341115402674283767972939864012081537920603427296103670628843910443396439802819013649243706902303910634242874609595107622078722281972428658382540404018179498156936086124039396247776880615850980050992781969985030602059234006831232333481825402222132949383854479275811342362493234700199309972248869340420694814167987525819660848291906231675343870309348794557361208408861326396598969734098019244362822338237575507493840424618149776076629869854774401384165362049355113329847121529899102188788060919954725693503797914160503537112380666754695612924774028188565712301001608636086479881662312388875248483643447155691787503301660148529602159021368958906943553895687700980852919262716707345849224580398886894488931096327139149113617322777795493702418398073985563992561613775362998298811736308956038413768073931387147789568567879790652040160088095234829705322853416374217141166664304264076311472230887253142179440608298841867866031215586119770950436597420374209789263351819037465980190594788360307185373601135939031305078749652537225062940146878233790098460631617123866846044362718804217622865102465133663314593688574440604529960210050816845391350480370277218065450291040200760281731275214636177700059497778464916629041179946233929109433310065460288763308289779512845588019588205207324357291052302784860169606131622094709220591274973154812027283561459524999670017741106394842596029740609271626616202407933112207480705439853941355627093534475403669531412148847181152662945259171788155546471568264885945619615093794556610484126204211621665885661204699908068845222693453073475227677787666656556814973301790000112070000330872952648672759213027042502296052461687769167250738384554577173579559906203094239350164063720474492071586606237453829523718529624068648586874633126822325446802621693229886276299909335085016736695865700340454692359754412182494314403696588054604947566123092801252681642499394887158981337463608495584956245289840585721828277150750980353306658661292863969644050523590062707748088278432844602583346742874455598092287621637096585632566525993466546406643955919506267277649957667996071426769422459973979170208504495589539828202702175700714200718129312965124639966169553458108639264617953939866430334702250585118727256623768893755574295493178351895624464904002546631903438907797383063275785744364971238856144641680400458149672806232411571057984631201235202089029350708082507346946355025452468341966751399948054490581898028229147662080181899103455242487808894229265514524424816576224275107003580526158708460511693337209158967531398711022947129718062411504986803004451025916881112743682339334665364358944030139148666776923881000623052914297899437286773283938957566481766773287754169435817557253815669485876531119515187438560208340373578330515005284669280248058567300984474011420297305326447501917741142140227450402400706517043400035238862734353855358782149590853408932983777149139189354998514039204789356847978715699352194830571148317836755869548791359240890261904004504552587739986964052419905802339943886857700350790437950819011138405491163440409465207551679822352516014959137674537228279543565122197933469363210151172457561711343628201876794000811450504816677853674949529002538898422335480014343673503596963587497951108564782811532893645329907198134692301764157167010635749066845216430612035820514660591581819575944319312316738685438235512811709242381705750894161626794895900891994851406537799492889926537065299768627771515016944246593331352517663889674602600703798929666560511049488992532396897446630636998830722429201694099455960221660428598588845894507988628310422475702915016082205655228554798139638841397048807154053953898777054074158735408001498776587356064318665986208715711286623612297569298994213594421919844906324711610629681895844706559619596136839606524758856957267811720314961052121110944247940070044744857095106628243208624289133357547203169722596811287911085963755000124325103592574941852386111055984216061316443121158421440285270989242938739720219719028184039301841772630330249108780211568645359676858438376205784861245116810422883550441429296963513125429522077994087506263270541688914771928789799183902272949919445489155630112396548254249092817243446471769368744943042122142442860627832178534115721438008537783041695988657971733770751738925716507081589625063169827477158005509428495522361946892256479651257888955461459883981712850639092323673874736355860892812030018716264805924838132128768505633970296238678006233077711033175953290083032412191662430250703063541444976623554650723717272286618926443645410251456210294248686423632878076716179507196912969817130162383682295830686666073826753781118793171913308317233679514225265333272774669698648505912543254858151110209395392728642097469897065075671525613507492927687050352507953299412365703532635997199318894713645664085616196413876543719901250869724676919420433181274935215776717903544409160511107298030704076035087961011398444039431794813797221933987627984071432499858984328560081837359107441762576617264327256098340864154687172521311370791412508755471197023945349088872109398423058786224916951888161879652715802171635204588312111503406440814157674771937511476002540847857376764705271258142379278307272794511489452805213702180310520491660024096863728006141268271990495612500230732582012521452125305933291609130436015653385917209060764945236875228171016091709734498759417068923776882640683295112892151645336911956718509947105022438863678697974756940046561157828571161095863157861421763361071128609415564799979803268285868273049019160237910385655446593881691896641709172551723831179264041527305714171758855600401489684076910793932281566799786456471020521098972288591992875281644398012717736317614588605817938016554174071742322045671338773142380103614640719218214920712316918720032420804145213397190312947296869540473925765496466186989607037640419712634042014805797501597853334671073408844428258526828045779085879101200060480060365724852999699070632634845186799899349838628578900718128918372587169272060697729440161715386804250192788153443774557416497859643766808626072571151376788586319800102637681890104003984615269214911006199883687815195199102144718765568469080683142648919464222683596625574468015907593963039261280331053189555087396526926571330409701331535794410171650201933341051305627557988196350232948305672683932869713287259230369330730912924467464247512534276451667309120737386338754990660040776484137101235786258370198398945562884092703009865032395395723913031632230517536900684644943863217879151105817868311179327316274233587754180892648772951414267789525033050761448471463996943136579418836506123429865573046740885815996113583547243038569763352845131839328204435121286572309793834605738656597007971114793764873440364716878587592725438175987005026789809828416068533852536485462734301666845905751680670166811972256882218481169395973803286828967984799026463077602617719816021345271309646991375678878735037579870110159543673142084280501975627879714184350600143937957953878395788966188766208587242411564571353161055717564920701658999218978807387754058691196068384145584569326366438533967671303547788324510886847938582005762628598975904209189000331754844002277262744586407902537728565626987239840110094300947792572455445318364511451942509569098126809798834709053615831755115369992307693552567596596276367917061651480590385414370693597020818022214834580226932926153757836405901229733809654315408279727353237541035450704906732752606840761077205322982161511854154597639465260534646788380854101937625295934733924350035232513635445043761420268609719966494067950767169642543553820398104897057888388423576331227112490419240170000526347962968402535834226588676528907042430528831278348711889774389773163606662473054864544126663588264734804351377877586158716725935355360993134533526340964550893831553356208542578081417081189202923511592129845152219575766225873094787081161485978421395454591781098336191160431343623596747840244251931286888931248522842140117002241924811482161498034830739266189654043902151432984712700008650455242301084736903009313953129136164744144986066774496572665678833187845446704722440819910829057438760565651842028734528929292787380430795078723610968836727031591788097978464226742608871365441913920080880870359035406943782577918178809065839855441655548088884810674567729293187550718222045305714526242611749407391259443881170638454006175783498173133047407839739619803860411157377718407442154387336856916826415693316431029655515273005067327337888410962318398026898747438962758577313501634329478579764327186724091337904387218959544725575703960668431759779092337927338133832438182833508072162641132933582542781106434956026227445742786262153033867205651517936821231513151066636212466149425123801274821468762054739183160063398483035688398719301089278323064072193935994570509086949482797933956576366723439779096443140621065077619372261965212684711929090603697798199458778873258101610289998789562705661396441033226961144947215399891145164551229034678340304507833245644699394754458828768412136982827591525507334754991570029207813067432093963776098557456627584461871937940734633709888943600516856505411648060120455222095945653856342410925859019932240067921593349342551499390516077959938468224039295940635425450821744578094669395530923382241098674782401552588927389082311169670667860999819798956051166804883233438502566402991135294176206504277697285415650582442405758430959102864168229527528756169244127237426597650073424061112999101614422672848788330323544764887567396027319983472106318940578217872732759186245998766304023489736963045919316485453534439208327638286500713191487664402601231655772016327324440969170092205728378898656072274364863130659409446695043559323910033141157822522561936441183463254790762509788778136993839538771671740408888579367661352909595781673534234097429933292390640155570452215929877886881080927920491963749633902685621345536390218041540011165016534195807251699338984816505672794011949376090722534390301485803311633021166946590655488264841829724090748533078677860447138475169376542491160835976078297204376767990698428711602571994173347011765633088493391170225091877921002301081954647631246427016928534158727337786354183855940185761254196693373288496940631704166545025801857989653546893478352339472689097562635318829867952565902395671619781541759321770371223881795776679773311712569909274618115935307754953881579919802511647566663611152589740132947057984158771152159244677939986825361025787703162667539185451107528394432206089900545694343772284359758816080965627780201017675625117477773827240557482523587720647658829623267540693716702343398835235272498744965341133349416018247238556707799018877947155385136443928963343425904148115907022080405134488925977250198186870568021712505837661527456409276331929198739591074363381073139417928271812308274753345557544966888860281623840748404055949793489032417938307051979689638862408788348522181705179271366837020453675718658511558678659309910026019786691842930543678848294025880237586500362988154499556796969333618439509251473006870533137359709206701658968934795114279024242788774374351823530787142697065748169077649465436701264295089489011776935266865058145363960099762564006676163547950221939085205308527748591109590475899037868099955615406997973380417353747417260239913653099925598480143232508941598664545404619851163252229327741128347919180930842648096591565668802291134929152261829559014433398529719503575410821086587063558858311022053290644974529426660024888072097163939291481234589959280669616129422575613994124857425128297487467092859311150352332552806343261494977541061893665405120997986344300850757447981886205434486919106578096819955191934020872439796143756226499216998109777701849474215096567519018635501503099338700996226923057118137272228553911967236612831654800414218800982948152897747481029550199026356177345919901234972415853653056819120553466138087999326155725364688100544949465684237550656442229602432149662810737239516819056567391273288649057164466933086526831688699002660408992307750035442536812187465291741714129544108959016840642922336851400559034797414454315153495297822052721768292585641967029558528959554436812440234449228929784288199363965912839535519682538671838906163499466545885561567742435342702779701541141849708662864665077613434869347559292993918142937373310401955429210136848077967771460939413096619034928686707942762066011334351478172705700591824238608736140036478142605005618704630265170544128193520275687273538080437384120397521346976739067654623494285458571954345070000563146814412031364186741002561180027920292533967874719940725150123608702480054225086258810936277014832381999323714634667813973292631063980238754311893967185221818464839963707402006986248229358573090108960147080016875559920123737660435392233787522405071454348806163520735318679978350222399014026076440178575532283879234230361608138746652252287459083072882771201416977909457875249167671137169489322449579396809871454360119092926865979121007542045655413745722420668881091172129397026027693217779347599554296060601577177517699872610391062630831019705044073151832166066417664612406662938375938817909087117035182231007076413949516098487103174560850377283121582088752774456641574139991236165040141125950575279516510980508347888473497538568731766370294753144108841710890035504929713700096345985186219233816683141461598644774449892165530212714780161497273321838436712511538506514591386281633514782433426998599467342926950327664491287975260190793589183455690038739343796100198463091542853587916313477013536052824656611053795577736367255967612304943619585056079223699977002626449647428247818232652844552730962409528147432447339851624930379880927585609065022059642944107201911190335721192279558658430556261408390950352794741304564500260167375146299155592920107147413670321130521200147978258399677528836919813740500941335930564598912852821892193401088497644143279048899459922881838107232357552285236633781355262494431799619311135884982643612443955625687583765703312768533933355993172973998313743299115893212325459385208079405377378147375790204209980014910158738964797297023531988418054523931870857487060775070383634077014137089870226406032716010637118144564580724485423721159665999949015685509706581087673090450246081684901395591138455642274656743200361674503284721889464796429056685796820586639601515681807521466950892482493543239654500730481326405992655214036946923145872466928425587475968040403851801275203167404327760817015650131462225361467576125283011444110966719578185970635900080110482554017973513647003159766272889129513464140941767390485875759452075825259562416908561307895269612190725915384728823348507399256310528992936414144196979862849601222008416828208077546884400927070562980409534492883826157411987170860632130436838301907703994967994418097203812534351354872982495140355976798896002704416374915300002691089545911096722824785084144825111657896996497433799484324595443988494533287931420424614345970308812637656782378892473667816690531253482728326320101759129903154671771078332666124627987860601134837970260274734114782907662354595779139509884741146771524702504292873928388046139720097527044250263447207983854453177674590716425427029943925986953083726940222272232851604099968188777213217909005807967646997452426916822170200875015883910585617124744504154938259615667083603453968255017350692428651615869778147936133318589201965025825715793642213707722255102364487902406273466857052969042529048183417810872883831033011246728521897632303630234500371313859883670246608905104989302311690510412760363927381514313492499150648036604202855488751195710400583409080070577023660357812580608610370346327550719411009286534105415184491538638673531217604259852750747257420501454219708343216235690175509270635577206976886113820840288028671132164671486268902149269724861046313733941990271610342186676947409082631951127871170768874827276361385286014586678551673034879874711222275245457735137982602801246310461640135668057760753034424560410673124446774699379970112030125978073742239873850316247354737828935727611321471812878576038936576383137155887565671660673033979877928598479592391317127693425587120592555845488357745704059630346937886980906026896630987263712785074609383476642024597211215180851824034157321228287687753128039473509135338921540215474758039089952283852784203930946820580734108897624058568880432383406025624613370333620148824875444361032983465914735059762010950511083004530797394999887833011778513005727224555012552932215868296597296337583377437870128121727953781234300417369858567233147739638929554631494583603417464132555137729573169267367623382265089758510207386310857470274794267300177422427545459533615579046865882987004172130391546172100313929115789526597344223998255758265449694541032563263224642707868902153703122804423469279318328588497350167968735913003177568604652765311754324606599321000559974909992864911392707976765117675436566696248531032824776839427833119441241459110980704498210185549003772260074709209673462825161386341021436155870657485853772013514645606015418151837299021967404122142952658767669731264520143173150374437906944279333157040419799246508400654601726272559294482619861082813223781579130663148997248727253772218962781947905580348110420490345999486439001496119590763137795937902662105839490638918907987869910802763052355783660634422152447054006359805634722493443187458969100365560629516750912657730261236821394563768822937440460322982473365588295010497119796878120604434619139865168383604269916830228130622429902764716882690334778212163107630926704436138053963644667802142473086522761309011060870601698950139599756733310051776671924511525186383318923677889747283069286526395460995340849196408227123020980431320556850771581373953895427327568474370986184754732639150837405245981828099833021842355678496903699848179961624386571449217348193669856043648872066275166888759086274322068898506419752779318227844982348817490351431506537766611903117673099470952436393491951830058599236052447075187355391926957852520856968678960960563166326677182291013801031001320481773588554349707172048640564978297000588897058977733322948529142516320814587857356226124771750483364955196295679506155624492695567416083267401068387869017584205753306916431385250712805623862317669729566634297763206679133471077178346261917425270384276856429432505788714546595645907405834778119599314961828627627799147762702271576806853957158464402485026864051751177972804036519872724418971219143850702190371117457257829106964427727148522202954418960288101320512898714962039595244272799407484611750683315458270734664081211991041438489933011002181604165061019426853097340408904967661873043086981920465484791872344495486235265596038139189667338718978699748817073760373858372539466610926373358115819881456142871741957308839146377006094729837063511394539419512900331209670158918911713098840826488479372716751531087704309984388132510414226552676277031502068087284308828223354102283178439093499296850469600654353565804519907956582764325126235805086369811267383766793806796431989563652388765720385642939886936365092051501650151502472376851846302083037784337443441017210013734636971962855147273811713291206375173917080675757720576127930526365831514962496431482422955612824111021884104344227693614431213868294343759375111056867630289358785248044334281178185338362195338522411991314308890320526578609673888229118128396509716041481926884949216484435505309056008294839565776583667495706449350498090386827591316463125595699356518712386561642933987123352025225075510665337504394857470186582758114680040090691475846497613918918322141727292308543249539035086249483218580664256955397667471135481941001193034707355825973123153474137052068454278341765859341919412037861427920114016001352929255649648703252804878115368151182883380981338594951112562308914695969123991267289604728001899495115307129457150603798071474086040056660184900155022840737263639208224024770352713546550989244351686452320406440843991989437910839846819899631655078347500005707811130847085926406628250806754595334726344979599478002860862862247155992999803528406606859375205920310820860512959689758752235831824220931244641503672255369897062814629089775475471571738779298039417167945844792442662221920099018491913147140123673361330229671108908262586119446852603026315380935307729960475907294619412522310380579317667266896464147196361495002099444505171000631341931849771359906172872620475187774966938588103077565886700061237344565162052337922033720525541568226762592335910635894956436222201791718782577845976509341177706033948161391285542923961106259305138612768783457337366974179677000635095961806032052914056822821009250236758151324801309058412517383760886589727282958650378366691904401114687583896395689382588434839258453909704851224068164803813527289924314297816714412199385780334817124123008182556026066710008967188981600044470663713207635853049777889562030542023750923185435332802035411997327205244106215982251155829083508839164400676577865428774791687934103792009587861018803282683520448835848052073608677140473442319003794110970264761698535799142152852797049884048057174958038963307828025818509788457432463353848402686277611282489440805862684976160624788657330316846274105012619151259796227508962739649322935048139956540475281126914321833156418439293430411612476005723188726204008490162692073556016050719429408795486851518759081828841038910206458568066593860243044642425079648586390229403738783662037981425711642646276169991398565559590989168909664030929468906209434017435212330498440059828327587813815537039965784502064395271737769293290145046000342240112172555773408191920317133622244308300362699010669142977061511400468876503531027842523140474975822223164874750661876603136936538037340722756401141688556868729248076317177837743963711761616979180135390679492059574935294314104260102946020730163403313241839592737265076090087914580401278083344903832191151674376812854400822439841853086014217465987416421235085612327767027983550398718329605320943021400328661785738647275200102781002307953363130213149732482058858153261090134968074080508596409658519157612090454878996115590586798183593383610035338801158710301261088575390616758575316142184592494627732697175489933207261302145733812753989835227335022769924940673922150646377588591464660664623337672803696792421486428991619897594541300201838201104639804734153486784473352313336726128595794854003416250492267849748790766037340764343942332943887560933771181206004717230379432546449359528228561131377684714459485317436476131975906145335570752985236819380368953696659630906122182177197258718984588763520403705294006645346040582634225645824421735002119466638260387936873284342387505990111921185975931990062196137452307427134003246037541321548237834876637652956427202635764382941000419610730831297963341768084439476776006050464343489644507004709522807860619147012182919010880323516759185469884636516154631340742676216888142116024826275288197956637077224418224208312032524063857650318860831469077092032547058030581346401492994824069328128713761162133874179289483584710510851010083353673652664358846729516352418269965991876043742802510038744677616086355637082610400648390032993433598506228790822119847565626331705857071278269949593687449323917079957184657253968848642486954337787991908620951886958792048485234158508417390102885484255529162774079927232001226523315160995499367537909756770040000229661589202576194356333881311643304155851045929091109386741909044374019034332686857923714595061485894711739493156246024032341533603710676469259722161370583015550480223975442414775285399929227607726121046847570715236425243366375359063679849557458500660496457786591927931786880854505388447869263229497876379082638563548297610762222155954722067640077599100326325316920637749243565602420897128967648673343210001598929260039234087651392937412612889514259183051343499678518873734715189170343209640316819886985676633168456641692827530512614391600355916719593321530787407486018348489658117373956970428388611308188020401452428133801645156133464396989699555444139992297976189586238383845448100414625563413776559654080527911675925973271033158922908929799270996442883709949738677666980811630621533582668703863504782039221019396904530703704184019009413171879677409895945590463429204301357613233309551205263351140505869352346603523549825798998984227578823765118484941210988222546580072580683067320013819677323915784931691026200679818915186921214360460968363733288904392132141634210982654369952929010381138927045445915749010250363079063756766650461906898841846663476443813317329941416615101264044202090035180240032470558944288229551392377184651385805617072516771224030546732134511373303940757439332487225121100935861637641234366317041301045719079011569573596053252448723180071807047315461914416275967577792227026085294259779664623187640306115762509218118486513412784229616530690623641114023546320004326114665377896249620405562159946591966174032338877062107097365900383856477437355009331589125108376988486289796229171743319314630624666450800528047688231705432220557810242164221423566395895138670775604892966731549301169255108977142177369202834732936460461239653374315550772318814739881558678094193869600738463809211546652124897562545384023703398042244264806774131409007394323956042043007719254371844896149519340556344554521471446002163149311188194589997649455884911927431393636459765868073097736407088035303891300099265491329656586831598290536271318756037315906801728981226140612401550777497332700557128740132192946320022622180588735574009426021185407345360551702095715317126932010711803898969721804593934544059168824721382183707550196945515544227349353416770685854039883454220784953638690619133773634018449648791170112260904739830228109969152371678664808473288260272022535932850741806855752728052003348233418957807948304219770386768593113018582957627953953699331392218004871647853312590504505212893732192702564240468926227108135148918607125355896093000315949350304203592413443588701794083303076796491533901786238381582260246993324634982338970225816432543128839238970295797259012018736556435712463972593659947742254717659713059249798704158158098714053982237359079866592639994401482533651694649655442445460545752523023925661091581968624529064718954508791427451125730218426626986402897580292993745192864126012072501374600884850726161015471687809819560293310196162109504243436602519446040748312345370516937740412333780278968802815619295144162867367578582740045020929302041613253584699650789645363466809889930769218014205470709175509435602469261213368629555256814516533056369412346325885591682377607795496443004992360460634359360397228875417656809124094957541511404500009442972249747297573749608991040301352734219254030405385729675325782257244115368300944475566052828315036480791557978669453758409526327778374922392939502200047574112302002275642078267542611997792772915091983718720592175140269549370064090678862139781640236728189534428921131155729625795870544263143955428896204291402408703696307583564322458927048100410328453297932385998417245734032945346396215064111400547378087046218533409228941160974887099366829675174518397391266040690203156893138915379616015652201643919423105320188025400730524712543462814293429179755919034804594313923800859384531385113745319939578992296632508118567717749892678043241082966832156177879294687128430208124272699443772496913791861697613290797385823958626801622182467118242240082715944364048883409589516552915576956172850015862512214008769488812895682643005561194730096214490702836380010888807498157897320778081922924837294266265641841480445116449897848400134332251634094870504543152433485345523143357555033758438916269891327210511406104550713668088122598554043704213995317198821667521030547659609811565979303253555447743484029603238307737391959979094726128727474509207673767531595352209892215991541340731331112570505494637159591109491885321518340688600193768819717403139627629329053124853165353331768777223344513042950933981688286690537854054983398703610821257539494144778602170389737321464499295452840064820980830237479819382053013161733278741244667156454860899029989034372775631891251206804123270494948573274645354034392954395048227128190412001629990608262626008073778505164896671866660999170321151761480644860385296233195231190618358410061186924255853049910737216774904777253004021966441978072301659108041787309520402752172400416164438560790511021405937824464545628303439929823482500701528909564297140196193718930692542901175251868706409226262880752483743671513226300097417148713422963342265458185446498178927337049327516526623689193410595754802903807311260716937285730585099489554337222818189889896545526469492802666540280351708781076884679673476161170563378128424206934528057189975183610729420833614200420523084721425484452843503143368787375578142312561793528759279462669131142432249993850434147531439226382706887540364546242922534650555029414678858977333334456538745984388731163690655160331471990686311396101226845849461500098230148466280423978559379414759037001881714388356594192964319963972236505601684887748381590029207616302170721955205111467965432384415161592364919250544069830774185586452434666900314316248177707510935991132487998342516767500803936213056673131960956047396635878928868832532167668741093629053959733100536292873373560210259237530161734074282203735880659847571256439475264855590181182907473307741697687362548575018655207516009982619248252975375512980485381940862065663807517822116243417107899052952047470409209260643522282669948390043754944195448297816977466123056718794020657066436241057275875032964434868071048267683930247107358660188276682794970269972849433092946891255602496646936809475961236005676273870083482882866190291273859026700947665362644641852787877332904092992880291519774068220908323073537011562456034249149870467400970040638062225602475385690559543076030594154047862301369708129489505302130838210411733902130386497703494622924693333324318141146811667124656969364210199155250551620695132885019268230973555225127115946569139288603819027710976948096542682793890976628438559280459312670201016915007877567214226481107453062249096799089062358862514040536334632524271365226243902095424546996708590241926262871454457036066020044667349061755150240069578678329003640583048832115343958383698227513504765478836484666898062131927094855567383834170528821678607727004014489340596753355462018629717851988454257322610666026246174484196499121384065525819831930545738875606549408369431673759568126425608615119863120110588472224843416882695821070362952249192664467546377387386865364256996587955337114010934587358254947216161692360881366704577094896260976777745165030918867631196375672253476296900901084186101744648277140262916241879549006224743434949424816569002914302988868589560144164764825479203094660394977719237866982335379879725457134904833050755163531577860870728517426128628063485746059624911644383819291942519750176181833699004588788006326824860533037403206341519578185033986671159972406919017047750583174726646594744939985038266097120552153817852874187015315063810700576122688766132773678130703021064801194474531499263358627110400035595396682346047774771756510934411002968248062882666537277902295711456278178260067033161139459677673033314641505486247272066927809128822415956806550854993661223900419314996811931743334514322796425344601866609816752001127953369004669374184127299421260473490091412086781452805892740716554691176670661575822014299218521014139828387253267922466594850169376687987600024560577490024713592051800983120372216256816450248275311198039352191008639736991692685694118145994499328705142901514636165740176492930601265061390614645840710040780131444114092066030561031137178321249572799843139726462186396876747431266578860886802117671761453928241740544117709643784880812289011624215342191067852476558107532472963661463806343657458727728455582413365137449284670926578302945410221364441252472330619077150761293366380872466277215572473656465348793847367584828805337453223803666697997147113971249383604014661188651629808891732291851971028694121035493560218118866823985253736417530559564651650151571764358394175080535891080119178298515015802476797177216070121673136883879375855077077634968387380969660659736988261872026349693882646539882166244448987204518384053570501803971614133659839743483904919132240436688764065588619728993444136635976014076319826689962135333250764687057570696249244194971401334613374974963225637441717519260771837528882592942714706923433340356289881568996825121719572494264909351057529438069984714076955429740241258128095535279791147665949762616057619233782127517573090155483175789143856356650412382903617827099197011142168240733867391820630233548771350002558002544010113111584383819597257049278630830818360658315187219117497269859702454916420113713077449546408291771876237058762900567440070086401793093932066309262653255109670570038981755326750560177344760650907195526841349681212046730366916683912717001808041705561547614063195421859673943774641785826196563814533759133159880324402900299477521171636773178119229133350670213533870164442347072003481376216450641563020100336695488668797119925673886720929984425972231113570018470764658499622365859863675398954352991600046743440839529257859731351745924141493954388159260878275400888765671390337576349625609769583946306719439378293272303233927213621295189984292669707676063419870620782354878110929140951263182765352588270102153933119637075594187534680909018557938292897871888042086021712293721063949376513424175125105457228631449344643978836392352456476076042599534372249944527424222773923012043795316332385874204521757277748698030961379978914425342450760006398270783722172968623000614194752168375857803609267980549437407998456207563025077459025696474289595961091916822884724512661903112782077947598034508299256613666784280211197194482453428769811348033332401954789966750886941286207483060269569139322955997120171143423178031821018047152636979521671067781993215721636522544046942968555444033231810397433972771961880697605291296382287893558124771319974431699404137516129052407064316699300682991186356315538440460893828809396743668563211759040760107366821053353691029185051606080696014750522999096518411603425493491377923088773140661003428190613416905180961043857953767035723255325903942809269830057758568019363718804369474948969933075394683696900447053906950685798203257504331545983476422564570610276111961105767906750931330215576799465852197085704210871461329343920967233107451190658795136228661478044983054539351799560063853760513020013127147448387633205134984254009019468050225155173871457533219920720310353219125192236560660555033231948987187707485770096161636483303073817889054273982451645511488861288193989563521975163547344074773383792749150752510897928937403811909739318303615581185292147284767110068635145840969542312490135166324766632391088622672533581944338062724450683344387182962865766556114244018174348065221341154328271398348308404376859215830737164652204357279276255747869610952951699751900762994676816843848257132806996527605667106949740909962848044050207506134822306218799019967443825098646685646906751273699151369594955445013505895477340453938799473049148631106965711922576920124661713394793948766389220932844157967003389345708927126131205996073340609179562995138902707872760501300843778695890351358359625573023790527420123802782232960644283972018121560504187829149394493590962751586876455056203024546082931971786460902474621363122538614536503572359183271968332973987104054031989858700707947521477383799067950102417741999044083256932294824927968773281782601979795484219570765442815370102890605956453965068350821303023281378888157335342584132173523396920398253807258478744871441739984020951603618471361802734886875606507739539335794605166458259657959901795756548663385532620325286808854083799338464777305947516169020492004319503040123526626736762993232964418523774295126572923791977629862536628576465777028172358534043482170518191507977656779621173713523746417375876563695623928163051556598614862396206181558425567376484647525576345350971010095677539565650418023305909243177018288763087100781706292623855892506483132377901076911510333961533930119641521994784125340131370383245609658220255886770529365647890273667941196069508708219235754684176471067507946981304557615316207075125441239013806473144020049775067007293412118888855274747406339937210464677202446725697333511289732610281290264613331773788127714205104635473103122562623143070812370762902736174269679345912629415541323982860960752621226248954015888597234168781391055846516036132335244354159834226057401904594571452000945135170278329173079670974288352683797998069204852791990371655393901593478500420382478097907712260178704648660250948918415456987042244498477874329589791548711129363234998652351670316730430863676422722305368421466616577341968216917351663932900369970991376742930120674851664302553044137428765460671479032622266983094296568370552777120656069506756537654478131979223232130121847344854143625814053202684200059882646643599378317795481904085014406080684308303575513206158482435866016090810259580677668165242979090896192739802463887466867532772238104354792172477743770061861643276321723605982067174723778272666830380526288703438072797118361695428794749918747749011086420772276345859070081264971994797073899424441124012812722059882771065932527348380486459542211506450901156032644729318608220431995110936033407934660102843398234944180279131983350969058233956747013211503849914510252101400774499928788241147894088301499793362677423848961639000902446070802097189523337102456918340790755023679869635853777036883917486366942965079648313549112309075773941192553613323749317039063619400961931393702838437164382536752727313860279508602284050096935917809341423256261495758914505801319334708720143288534392998006020257134307214207024093478744492519555233196706677412466984681687518529187679886326230280628909879223019003639603791922587599775805758226037003610103512956187305077094700726022973223919393519707598112052494598614140607496735071466949758742289078964872236269969216722492840242329689324801430110744404638257039261125325347682742754229695993406871193578630143851512301568720708859503053479453781912334724729426360398214197910505692775750309875636889383806700311878442277224147772837006739557631293699501253370057489580820482058174346113935694605493110338097048278708209689381421241315568829469322407360076784646689511723458491358274555121941258197964979301371997748863277280780683132266639268112817827792440939764961397632706502195255954316135572537182052736034522656823169880268182653643116901090572746942337521805150148685208278785042086577881355271593808717792739920306340163526620385046634487216030287648082832212947426984533213803390996054900724883452038499963030368587360104430503395573528193841579835172554006761692488796904241341312309809817414609959032560417146713607559217579170284230151140363377243540360014360883903826749423140297929664519464474864664890565972397275582300917508551587448288474542487585227432124325646680794953621496257387768164530151608898226917412765436024903342750256419525305973487365811911275304664628508445187131049730666801432076101715382341607847141435549145336181488846619110987338181340338412141240226769818606476056782243938321678023784083456249268062453090427930111514753601316002183147710246301550525875067928656501033893683182528385384511015042093742826198995509685807972882118691672515044034852514347022957003579703486260616164460873926780435898781916442317086987387670140349173175873482086660016315495622346937391914270802172229834721692193034760360163937471889161986026546544344987392519418247902320337963024605982192568393609103285481788050378682446088398426451216447403282888038719327559317072683081017439116843259861950705886774646772205375223583609398544548578921511094250460124316151775669346681855295617030148242780109119005892050984119787471095293241984163181554851810908928166204572342111695114493580326452661901019913844016238672176311769658048687091844963595989380028482509542107974418682764858681989929445961194571323829059636668795236542615951389126147402981456569253588536756160842746381896342190360461706185966910989790996143351497306034707496922154663573237402955184981687246032431339087001087107931263089341359411655818175098809213305851281934863834265479476967705184586661917294527592142751258488890400048702594193394564627103502654858233686262967044245726852871694482799157633410790213101460155445386016940198530183920738050706433667507906112041943666002473824696276376520610822634845583293861412702647824613889770122442130383943358004167009512041761743909712349254599775899039900663403616898411734580736782812088932186022977245343258418390842759907780517825070845075670816261057458108189439907503516808005433228239022748885473919155255809871308279798272057386596605987587758653152319462812555771222808120291907778286522039183167944290069542818269086730993712700942533084807802157134303046937498770642735039904492851373335511619309734524380563847214712769396558321432501393372193271249717313056119158444394613593026557812364699292747933132450092805972573227827476886338944602719259227986060291468183533474941890690698044096795766045294120380217354358863651927919569079053665709057692791622788744804993698547064787691575605282326036530252257232626282972640527452660851341758215701889435276408220166310394322535733332872976174065656552435639721818850918641749656742843855858336194158073286217240935465820658882808619474486629357983298644160890078001236453109012057625577793435290285126422902818752348665675357547825741285331297147208189644010987877378717503161828178012621345991724428186804237917191442994167396563190226641124649043524112009713966381405059953754901157991136675372104184213289404968603249718665171158655053282696641633961586197000340241194712866184060480839077406998315119642998428872049961078397891852431089735231854741491921101794596689534085647170772231541331672314899885520921771187718128176066189813413215632359136619823027361917300735263261700915195859521043161630005307508528370809970835382444143726861328709629478993650438634792653637846376292448509033817489169564067133576409889813140463499372118227746538192679691108171110910778985357245077359251611155650111730489407993105393751686510088404291011146943977901785985756723344640821534273772618906919574278551131663383874212795696437216081249392176389013432365665658463119086229886615360235487417525607468522380662328427475801384275144714568531464489040744826310795699505585916954450867771050026687725417572792810584347904190815823167788449649894555474301786544774271736887010151515951170212781992213129325910691178493923179403414983636944321312196936201327263356818438531526731002525893250145471601798521601121812128987673912050281557649199364971913554002126241491447019352669791209009234834259710010493948011262110332907124608913092425037320482538907562297304810295457696180271549851256768503682021405229555616673468414438308963264318749147684635464237692980907153188042063219623424885284839677037634954040286762093680490792814725534929399896458360248658306093073467271433596237628503103945511554751032902311937591213643287314628781363800486649374547170305457349251648800990277234644474563878087980478064957879923001258132393405242342123404299583162948019846248750675388391409648678071363145666799007149277566207087078233018061752453543253381226310888324419787808615009219946862890081598425971570376071702907260021275232801750044320907383379884004093942629414238962887658572254184443617031308486222067876107872150304459206283606237132454549011049101724076902528054215721387168683490429009924284979535605116152730943642104224963113219519360263245545943709648247481954567325437466240764409874496619614173045357995649876137491510790625032774613478865306925811436775234648195168170800728332175566035721637368686788054715295169443638089373962875094719648062407201344141134889726367670526517321209712847686640446367290036542091030671279621319957295105900114161123126638890102685138245965139905156621671044340267720893788411910653388244000290228948015030120148927485937651135498260942397329387334388564475151803831239500680078022161531774948175576184227303805342731113226279487476882942573337227310502387890327801972043601053737743205423553649034098121130323651904765282453331973144308149474357996854832785850372631091783626900742613266762240630044899081839668949608555600224335534375059455408889193821224191550496627512943903322168799418882747687945040641684091855942356647414246242035520514831289709775149099209773250960317384309259983520625418888381118006791927010260324305735355644785313388166942127353513035524323769338541906285989241265916224158621281612632124909665040746374309852296272476397548649239342532977473647768599588088565970951206129318656811777861266508995085532342186888119879293248347878407220588727877791897390807277497153150843640420922929457997294196848840668733422146344456327021903411061736133696699861964399082175987607984821077592121897616475736696297441813277048735823861907620563419394012947795546743947686393562956067164467704697621887364605049752766747885472129409370500910388927146533360155830039496724611381747329157438029426541807203993778618620403186693418706989959268133553842857114281388371392426588645671584647552170329558724367345086049310679623050082532082741474004834817470896514704453203491063120165234214775238087680913587551656325577943299123906821000441090005305522305479915335279142462994934029377853072380270242641757286569661064829874306734963455872614805445120795004680677768084107454064337339739462217696801572670477378914902261379867915324459515822778157686157585344160273613500280836107796254976960958035160855748272061242745057079215812149620628101593114382177978371748131017155502489969913441376196704305567503030847185313736280852135192891996206984050138461849059320218380017935815472983639114619884705888062131937849293207758446421425365898511191866118684571963419422549368419900780233518191310784910567109119680755040254344094365038084347646730534496406921375551211005121641734870679680403920884716869970123358237518784923488095450996619532899012533820126234721727885535477756347223103443239186558286794850466184599481512135794625007915322754374198092594481724011533635049366473201345682427071842191924314430283002960551476400669511617523249880494619980056833614083874031856042517927596790754308068825526327914785169982146531858217514581941519539098980557474466562478232606004151327685108564037245649854144844604565857614189705313838072270580678797350263739826796270434643117165969404536830201760764019397511355385757133032847254925534435563373446006453895621912159159603428505486158674163857170662954770147879634203007489413548820107085168447633729237953245850374010660802510877328986749571684924999280054564672864221205145084841218798724380341204458920737091530331355586986061114507325850768173670008291692883118786029185294630625487979937959032299286742414928840200801808080531867059166121593944053417489897235291397541604125920601015135442418333421841176789948329586803128015981029357667404044427154171387441415886039158182492604569935598668190393731848258563340205022937520500023926421097079521807395636019581515411373468384931727539244147423138574963624788993750792424721892939525243299250833719240239477686822950142323821252247133588611611254904628389447773476664562384353760582075597039703094019500681097193852157413424386427401224417767898682787344505563129629695031896714794338897273986636652866979015244041850474927837670569371908171596243221577946504707808874029001957489774313456094202575585067871024223049993650832431952642328416170812679710736491764417694866462509607789124263834150490709054299730915361219835066323203059276748731316838952555939600390920097771614009774970326396766153598791895866077112428772904240436719215032400626746750979774233842697801999719017413516560241165284965572210007164385925493762724167666395413025103841115124207076526289815064987769437389088450981619105532801009055229394385859866823383149109490477571671849874839907285665663557666901941798703713082241054479393570164351379213967273949126658913301625756701521434556260746929682641370799183511215376309171206059368056252009251575733179053685545862900693438438654922133434574124105555732585404414816630536912288938402825930819871928064602569718696545348739358522482026799680341012336315152233465484125164990149927512251132679949086486635286488650237280869222738531886665464494415625910995114075410241096215298550159184070371940605115237937843679508000786901742842495612785020004302577889355528813240293687756125835603279415089706613340419788355082950000750364584317712387373466417500877073693745258401029211114781106218125883573805875707584916045704921748423165477511134297551834919626458992889454672249228376083541951707171678400281384292906004371303876928098109638735637531710578497057737299377208563434804070253414370814450390505950366099744831549641063307517748844456481049045359211395813273444637835834877386053168341255886477494338936260365943493244574424036300397841153621849171982311015866330503780578964162600158784155781474736756274330396301026057217886708713008234547478928241481933693254106831021890802199255403198504717725336674293440334200661002047424700431467232669533217810681164910949682302795348739888298324971589270208051966405785025370874605793427249662471408891452063371917515024587659889566499859763027913533877994050688799870255311273115417463317039676562564916243425843511074352259478236556180335120430917257447737187115987789564634437666119053347623365512449202180313057048569191355707746169795632232948063229019971177888808554786298206604201295100121193823886674323325247910648100646046063106924960878485068586029344055876690225375616066330891160725045477757985540396808683620518418215146546519031242300433890416909463346632440140058538253101008387429516975247443846447081718186404438576029675550370873784489920760104634801379822936502925141991957652186851725705341763841935429059654607773776613639956071147774946463262920213018916286548478289269969152642755356024689211477767480866178266128341438523400148301213872928206502339641509596395465818040187142545430249224857052657447248895540111874534343870423453198435216922234535684850951452007745901578123961662587767185279732991152907735091129497988299423130436025206247141596059394098849240298784901065859257686925428229319903200247294066381230989799193863022974794271983120594078930142116671258099411561543705616460654442194402122552109772351863577199245672475036230682476189666076096055791024045376607825778029551629742238851973857684795721331515783877346109737048638788272926424192881942936268116376207044821555808664288202595708180600812255196534915185519991556853814204061769335896611850721482398469884440079946310796363313880288804141718041853159483426817069708767345678243632837925558495065912419068383785592988179819764397603422937410408380206232763899099137690640020034833833448165457790295911311180379116717253106909293113004801107516570969455368518100607081635131161539239125011497809928617806661786899875527924589932007823132207730754950324898671204987082939942363315474403589260569889100126444222127703028942875783389343267866382509036734406581646892472556375835816043153974316332246941115933134901817123456951790781924616231554848433146670438113559051362292671710616423783622492777300152477607878218345350785683549820915329154675357271857569766315670956370149532845222247839350125326758729894522798355400866020146561627371885923989454163156904000858117692861115931912834076277233031187386779786315330085680290388650636955967843517666701694657796437780661993030152361634472636259678468924212130972439851674386043928659964297010251599145058426555702949034786394687907506395930847107166911742056848798033281983230903134896276303765340506524882876532013911839922412511892755122306251749317743104274941264549087209856148741212527560406923390410357277025575994931787504068079120378772349505683972229813349573033979344366733320889825001709131492520886556010913247900402650180613516310762817401404322759095005186397523945996808919116218498624049577735830919516877099591842184492755224258804946522602386081425692176421666459145871737043373721869037116357713584748586525654788179062665193524449571639581694336230877918036226030788460947974562447929044541863694130699784903831899980717155686040080295031863881264365062940907301057465044203136188511908408003341260674526161725827755158170237642159676391890019933923751758834301691445383124242714237793816360739537607038739391703759734479006907582277567623243447213061825838693541160899432810763341005338742811823165272783903991144770612020471850974752217759976830362952113059902207483038695703550573980677421420726637257923298324974262819953858422143413222179344056747339235836980103117927200957221713916662320654580989518185376332094303908365028576206745084994665598198103946438703572566883121251070920087208754327154746514639516485899138329757829977410249802849042099732890277620941861168876692824485448341399916281150678339547890848139189101526518360691936087553327497086561254751147697599856711231812565180006681338183070545108330873929389090218662237708179512973143971064926723813317959036924634650701561428602019797340126241913946840988944693952397878521688098536663725138456816244501734745806016434472634750730286238820930612541320809818391728855690659868287129285661906956746812039103095797185886711164065000246182624628765701454062147097561723136841763660077627186340506874167825878771498899077622625965065653342884484318132693362937453341545506241589058789060607431934243627912320308285514178003188507378695154443363767567741143166416763744260771729223388681554650756709612485247418840853194834967725408421996666535880434519398022381281969974696156046341585704584915344848930687564891042341159479227492140565186231412965657040380401324679934251673235022429109824947863036456800685788615679683598909472462969294259391766563826525644405420610584069938858681883322149479465697707173516329152456540403492371354962854720042775270387758179741237236710569265637541842448024218757203854619905784157883766641617081074428528748770493851575308195968456987832923186112285584450017370460461814250711368664412712607376773313667928184730579981309541372406572413500916771649803294225865094757579590543538517750638062819061210412575880665568917734818149443246614843857766346208492664458524141566201488461263809309315399670973881019498132280099344888626535542661811908705953754452043798820220286392106490095422532956549675923139469722467653526971747493422206068678852846377501668627403511550028850455995636317630364377454519306418805910764838492245938502276125863372132893568658007165484577574005281606039783625235088766973355201901875599315163590946662317768319192051870690486422546831594237669532865017922023685576157482608576326012855341667140456630761197787778253861784240149011602657121530624212979883749786862608906689255269848747398471905374863486432145814754912424756375350305725921777807559764594822648098115213066518362196809940857290756082959181426947769588657386256873419135301129156601897778368313220771024136984883028778202403775926474620462971316846062055068718421343628148732264295003161134717546426054605905325861492760084027556131315464053671979012255498435260029396895866025042671568437117879193591573117401251173967873630209750009378637827104429071821951158317650482247895102759131067209332996260968988627728416901134891999983422369885387435011674317243588069993100217980012710941710796476487154229056023007711359946425899368717877291932714719224016369669958143400278105585527087287606056999373389398235741760592958610464974512695196128618390308924292737516073195472385272370796006794172795528086496038954701845029010282293622912293114432058773845103360024600372322643885043654786236780727643571122511407162546718177902738484131791204935709329169331990101753517602325796435724637992604725188214995945339748417348225911859525533472722194257958261480458639028080631124485763481999508069903250600812588646462694978291156789722078661956627069851520716346833503101984000460904382747554740655837952846712248038951395760005645011451074578331350514530931447235662394057080003702005264459374684559296713862766831762834474059345929006668586113675060363921789789348666134374266451192247367917693624508656808718022249996649315227222626195408541869291971681339846328725924312355472428284075211983882163027069908579260654692461806454612464732420856503043765188575332778135665239285320907468395376280802354004593443162690503023961280177873864465445795534861827140869693991355002502226411922940923057005218211954680555468461369624188250997396534366530736518074999786201066226050213782208873643894653771131047492740462378259707084957764606126103431196131791551476399987275483829829219616517405977795296202790478497317009416810164704790832072961700541006566151711730220459613215558785624343131652189982280563653396403636673852817394130204061358365490151857171751439323115025836034881505184487191737057596176578880032993744707413702991307630317736209355229025868881870148541589437906657996399110805257419605007610946914007624756974548293392754320304063839423826129966176222305960453680533547295788787040679942227808207363222925002937431300098718426654708961431336590419055288856108337982204101830874906992622687204798994011217750596108949282558026031011119693709222182220769600827734300079050566021509155184482001729081380089479446696502943270083076387579354587826413121756860021472481533456184080553444832960889129423888206533660480940710010458044737407880921580370445321367622281910197014775501664768973319959263955405781595227702521545077982875049799904993872637884445338899599737092754838444698118249102993750154526390005865504985469121602460182912182899153991930253012738793937417410742103173961899362515708915898733277839820362040231114909957330273172667047577569712842586465582176074943199009562047522445050439859084303263538127408294240090564987324605809704704364169707714317564969185124205010325360880108239551602620457847462280956887338246019902737747745011730744588933330627373864063555054829939457395965211418114524438815903091299284377716306315136869378821188151703399023225775222520321567362568194871212500177886889356218843894205782749649895597384818505786836446678496739277044995959680621449112593711420637869774694616676379574907905623061499584666489314189207345691056053751378290237650263320164571584458103886281708276360318894646139101721840066434612917932717431603671695826387219268643490007720398690511188290852567748484861002968827817984376026637361798770975038063031454543207158428260677309727034130241832275502044000843878786050898680494366845296515729873981936494748940104468389018806985057474972051170129787945822266370155054304335493593986687377574833941318794126952805230501785144062520862006790547339123013326948434531413393868871853355257513645322441217160703044281935833850752603714253617406165349415748693216877489928783626765172963045304121378805757138620185938166181338115242994317873097623922814957798974616572703687143662943771392620570475393527550912651471711343335798439433416126471372510034341321451551685085831640308227697176134112784406693938177272415094262636442554618096097188788059343109628710310261420235289420620798635603343366707251489152529339156008893264714362034979912259784646791402572402233685590378853875142584329205062237169513548042747350700062279911816627232294512494031115850806275890799180237670772107712237217342456384316424753229009684504742006943516123995605592954922621893949083484900794442815617760234829313914060918375663588596704465408562178042609758619464931898580311829294673985125020497615816948239610185757814629996014069494256597858805421713588152565083385772863793071939182461265653089547474398113880504068423297424329777418967477494867328454573358358343073138582551741683599138338671636548311817249818715314880158394570713420337132019031426916526217234596977197851564839370246383471576186750444731021156660110782140663282362252292167211342139903217750209135064560334714921035984698735745221572391364492121426723814990817849711775040446613549210618339759010077470218507177914703970377079986811363285798887535791158909802805698585088888827565595665141972759315130727519894684191165578631430739241386910011653735795566204611735445068846143204919050122547856142803075528306014236158943495658579310321707969689579738851935941175616924854145163262515195378077773455310112882340367377324647883902475281440130459557667916259225111370277867617101760789884739183862896907394036428521044952833090513302762817439737952056710059551814503683810203749118632851141818430715808256491590034187204646034634324795626964791277988781909931881231844281731380839621497058862461299310354329979284133227491590788824818382039643748941527143505874831070033804519884922524207697017532100934748570747689764766230697945692633638482235902578203380140007720562040099437827197913739263450758241551087133778245588984488780280200230446276315203012563115578472621262806141550085182184514283059582613119194529418635721115233241280365995732605345767979205245486108728682582656949575216758098970906779745081348265480168596176995445716477687538720445643034928726102535669693130754589420973790671616602546284280016246260294239618684097993644403816572327773617337926638280071285594830147644116503511460407762862404271667233513901395435499186637547910987784374098525376369017162008939465350236480647146936497150566692120781269987500969902883394118402174422428228990352833409438237863828702310703808424696995961967386418452317246060970923994310727741860594553635927666542146156319784506728776590368248772273127095344476253931406248110620558760808203546950659310130918962961890712223097749126729195534840504242218995583726033522183698290728967009096552620101403671021479919330575263586501276791999462731174080217977129826092760919487549812721092283441165537243008732765960501555569432348088040501365095006411373368404034299606741336082278443625690145586521030941832647630856161753715774139925862645504633919673934731511498628336516945027838504661244895682455259441371584472672929456693306923994019232218683553770018483379602603753204517561048908302498772816278834684297743830708784208594614937823482636524572942598518047269590015806875209929505359872128351205562116076849565330161528598403509258729894265935961549473591755047873847739388560920033770023168044264903747483392729259609003459809122164627027665287202407882017045684932094112439593587485461581345206334379485912443248797109960647640634651487606761113458999930504071081476622669092186717393095779926418027823515199189746642717044514077494095790930951881568171571824053095586774290156957298648801455319837990284217434188876130068533301701489915392176287071297334798962794170191532400875112661242187108728072007246141881204586812200946537069445725642011060322864680887817755973712620559043787510281579824157733820273869823776957545624722998378236140748884774848212136208396267206032485057217164073230804572017302882669835273776950226464019293984028821491024099487097132799308305711455952653930182647208231662308088912254862143428044600063867559253443208327077088991534810334697238603508948998020002313648950621799151578390521810185106762163087161325847287093855443090773618855170558734027769432980143941665740521663113250075367123609450088247966979691080693619325914356457976246284860210242621401511721742139136510232982389543298789814510502271541285193913415337872748181311036426662657424382706298884272227146203578238680268209244464374690704635480544294834587455045012659260819651901204754255819913160606349075471846113691449444799288957865243988941687055219248862170968464735891325510756047262066209259365850998267624185673008320294605745078820345675573249127221881253100333041555516630772471323073822388543831793467321959578769946723771625747705168882531837885219637437157701764945310639111798617583404794758884020706888345069151249681088433946519916472991304416348452566465115466120008364521999504744767450865876138021760449138791686677834867901442965226814519444061841411637278806253573637712449882355695932751321306344119798903216776473407105237179541969315673854482065275689974144295144056867700334958216007309855695992158947758579170716193329447730595363099142472652543445250447541912562335486603097533994738006866287571069293611010380598801732408467713187715137786158815205958997783018785516639781396257083994258551490006561807622429913690821485202848192211184263718848110370142987433779807133725988663719941679275140242810991552280350038262231443628130012745578318012236751185181662842811844573648390184577895496245694297228177297861015577721570042225134937431262513292259953144938788856431007618837159869725425633637777091656144816354638201483223557138655669669563622913958245486394806487846991822279711428337640063446462649265038373602153845555752873805011291765133752489632854574951797779629251404742825176679612908953003017703452402151051141291947607446613781225568330864321200642579526339161911842813506631614340709841016729982589705507309162006039561754666757520555366344333307243435079617065947032971121530027574656331932186300009028297249443786646989672523340967941059465686699564578196189442196942929046248196504116374588953258334635380178291274083733403644692392840330917252808693794598346846369278747884943273512094747853439228449879055087319082323518211838589015019081111736717120581037311083434634562743638715705738791889116962084365141194705555372864911097877167463889942178487361051925540801282636029284303206681054357084930162357163226632679989032271878655964386029461826463288979306976137016008105170162667838793340477696827420619412890066577083696387806652244324573327192957606191606577221196970214987703029955402967092911187849198085865361573119268173598753752269888049576329731534213809265298436179743223018413924705928131293499909811435752772077639081713066516817755167884399206224349679007347145946805851970491945987368142445123001982830581997842547031002059204305673357571136036685944359576754891803156087825405766829596673181271344254256547143948502641777809745823372878687254580074547839569561535770714948625456486399554402787563001837135957865761121799091057094245459715871980887756566297457410671868759198856913533696272600806254760503305733808393002094020212272336992245079993466177359502136576104723469834024414644637695968202702810620043225980354596946024192043828165666061208843759854407024811111993233905364225710853595412154265255546778070048095020421982602837660681483644027325639915401094049154920413668089664006543614811311810291732921101523866742786885623191297560014558708658222416207026154943154161124617516609117361968887005014158672895927216817481042554131505370450497157813162906021681059069335252985713205742163203821417701403163965574031279559540715401395086542120563152611876212175233067476063056162371658774089481776032872245075009545107992903795879471670820470478247271492163490317921497597461639799145060167351852103228392105290778287794595731472350101744247532214580593407467620454159995755344986038112609878957596844469784579977733273219125881386140634635200263658740727091187959135056869100727798585971739219996992681545131545942394238365181592525644860328100196982626255314522286208322627830837559584245495492905168992394737816267154840527690536997320030734877881990255718976867328504407202345660718179759282925382903814272132216207974215989766216901917513652962723120023403108216610443630591301325746798924656936969054198886420323355426727561051429039117983514194447929132943964625361490456224482976499679797343574826476009435439947046989188113354587739890971213773781763825219204157767019572240124401719575593164586409181011190393329160078187562272641413944626193855396102028560161621658797606633321772142958084701196182111205719228641781504592317749557962040270202126308586109637972966528870529578492043679664350431267853934106859258643164555910201913169314820064088678396435791613761093349729474242772572367196053477811519864146099790072064452274595414805797045034981231973582687944105122854747392343344893029520892934474998410929444866510516940495428658267717397339509158044649384872772344360910300531152243141294883239370467794954928970923075295783314821595177100710397592654489934174072230087208683377981227368461849658650350823646713881995415900766865191171960393561887376330248426360206488714968371538551735295945883680570102907718959761036918459209399295048001152222441308126921364600801550105159852605785316844232469177710897715962287962062126523458077721598877711744287541428453416819740576147058175195053631196184552367530338277688683899370455990950857235745746353776345755542346546535496498084782952834004573339771538432269704801443621154365523024792564536353939915899163014016824390922640481630563750684539879479958678634665719048564545581261495895411636372476315721072423284105424697158929679417489619643629517579823248852395368186711253754414781686213597900489955418732103154099982618443646069469580376460809441358592410440819278542703554904514731704837416180534863926524801196384133032880195288896284396213509865191003113017534267347766631227611725149770294748680761009439981556422399619100051387511186259383230214362472452388673208742625766175108555439701739274446204357398588059996787772957442903599945760466178304310597845386577303050743422184413925774796461276832878363852705515473633083117854511633486415689499493374578047057704411108644343170510689346306205668789920294125443623903469351955317500354842148308564751041886663855872814934812901385688503784412793454890503799495241064818282183595101148318385206383143843319979208109611977134631188267110600886768453436818953871350938101039928101899310628585809107834021405675763315754414388718043516527296442794292691065951715915749886733017210969641754333357291158071770083931562471337441944199946952377272363926420138363743407297870550907986363099690310645149116674616202145692103254646148730991679852569692802977356086854400194296652639024706023005197157834419074552847826298588870242171720152257633364408579123296705743613208836929284173231650267103232725654546148762210622993006917817382178520123926191910656245940682510151223225085847568427227018355959200819330045143862587575403294744256032519278513290079508921420097547031762421085500685987561493530750671249866486615385739926974149883964003631111162519250867718067891853575363521192436731827921130236090868475586690348826934590065601475237918106913870777809854071288137836018197366150346796077922630241457546811321660976317164723363792996776539140089549717774479880975832468672687337954553383876415256633183863373291178533916200957774367251630142933391896819226245631673644746101274954082643883361113794523712368838103943718433095869115585809284988298027750473283420699190742262993648742482084873804548717180203844813905476566605260563890495812513536366024917317673100065139463214921801509459022876625484834148432590759077271718438696363604962939738961184493556401867352033999515537114061439870090242210535208810964539060667452777138194784286535053325769824341439092474199395677150983069817375741659655567898334500517044828955864408735274526340445376637201322685256717663797956138592943873797668338817322846214032624362346107090901982164593450425611993204436461721169569972624945097303551553233335658897309529230411913577769930182939355715731657136022789083283257940634084368353729513992995003113119652608232709869663538232992825536345729188958247154905441932457978249168047879639135225431214382634650367412090872392850707197254358065916380498485779988768551437938622696072233631192850182994278718993141051936000830398342640932643013121586127849293883440376184324723176150616448191589906219427001423593374066868668091700914782558818215811726129347490925086373069396122355850697490172555403626800344135784027700682989700761045143537396606929340186336191506548805827491934870193195151251374611075328176886332010016169691088683439326332787800805250996358589957400505456147469259752109278746402534270194190822704472105683213062867537116854948709853581433641392907572836063617739994138303264857392333527370458318709647045022454250533011639410385488825629738773970117021571284849744333677172750369083230963510095975058156317269897670159280127519464473930503195709315869663712020421367068954844759008523603475011901024471483910220900662277645499754410316614057573328649172301741215597766094595261644968642110934934181916572156863533226327082131320536111360729376068518895638250558404084545553229765760701038562400652520810148467194844053602162259531220688641919034049402043581545590156463454399222273794014068816777282031276607135397508041005704741802186209592827958839315343526917797079360197105092683412684303603354851657543543943768988343090737040468672961193691438321399638920561079709340277412985856955608986487873553211823143182594576119209576008031872569382431449908399829053759977893210695426172266968726293999373584492679535249215060311319370360728421887685546184446105272239517661931076500322631772675039099727845826549491895680346376076327949788414832650767753117424778918386505919844961805381338310164673683732975945830323087393784897788369608934843675411687733727965202051611484040628417193587806004653360695996327369836950472880452596800975178270876809453753284515146757270760053930825118466935231790231227413524298827043933508546034007637354641639790430122404952407759445885715866833864063238265158661627950614573144942249015581533181240647488567863963105166127453740074843776197715093711868005668894468863092632943369282879376356855799753042513531337957901048361543840182967175221364529223508386797633533896723514500596375039297486562743864990743349620651636067839299505292471969312492059522513486489146024622631271954105107775338755049894620298676473654456119507843021260006294832591480225591772010762314942470375736441970376269677043955404165618488500981885237239902331605929484178804896003620711224571331828648458562544613832711594301053476261518804925011761508943144084985290392322690259493573368909527250722456859657618882899169511908361350337757066732974618092244571210495524744648827961313184333630467422496624447623940979624164032472353574896036734651426033519734627740273379502569471541122039573431133625043802967264454983875117491446089339415123509700973361954499486776863220869311531212032112175162723548786624269062712484326222848148080323870634130560686599465318419767798116546776188621759701056019165268956324804140639340729356886447435606300866868834599248523515702147179683637670088487840481324950258949534598149392479695360937657285935544110601904355167567045958838083616897790204586825025757378401689214438508398012227284326502878270955775914318955332196525086110590832731690433930464442157294899460843887676053247058540439210318231637174395449568235164073645428193045962035542233773088759805737083533972015968895798907138055414288364640121720350195829942322040576901371197102824539670285296465069651546766661264316706886729983683702515551786493226113193106846968781067159147556534197096054420523016657495545858246333188191063414455990222400601608310981128729237869989985144766001570333054921294271277928994827700750906377991246473166769155764449737884231351186045866316715846708844304109019199375168399415706610071392129128688470335121744842168032067002178362429926740286851156817988807237744822922903609071775298373372925131027553717163261433559296929862151761381521166008913147570691226026857973410373388930165185928726177117871991754181817500047722285083589029956906122286540466998290450623980358374075393918547973215531444524025776166670927141296811959678940735992615397115920752785813924888379392421116118887616346943050138066849203488715021153623042865313510093768808097767737651163526691924345292802373419854143868413314354594957316958817467594992781235570440919321491168110210345133118062036893263683673587589412165172983393306060897830723288996004908921550957707975035661152704344037975761135008899184033462591455498296541897846376748260386926460737745594056110244006209926266546131800504450867343465743516349081519252723607417435237891139722061477745827257257665155862298914293654981998437202833225804659559132088993287683651230253652221012466721612274292210850951268995906292307878122928093828442038697241933310254556621603971328859352963869561009225029842029548837178998891768348863485376612902692014994299536059541907602809797654908720066557946803417667077708071989411730457835203025045205012292310061902152582268765990515645470007664586925116305879061033511841041446571181999082109189648396378941338867121053572234815461010906907005867195739665173619836842222250666031968068687072351488131096658194100703355226966167780788903921534719286176501500914978431730878885141364575680719907892733725483167803945038363321929996604172853425219960169364109966903582692747882980427961153066682804325005999010472385255215679093375154337531289904055717360628527119435417353435537794112804802936018221630914831210070560097524044567689396323540388872075869196663092853445295409969423716873607956421797708356179573837922300320327450681553319146391359646365005490057355116375319409582943500095724370414446362750963607272126515681807457478607556052986558367739334896093627185734646279373347479081138809251319973725400232354734880077888391511559334266598002582228006978376791562404993200112243345759728612406983901312876672569012216511406749834440719357629628387959549999607272410919573184112508271025241349380504252659865109324754689646397149102130517671156650621657133332768048613914241806338199865620866820074576791586775680609939374696444297714406030477244338338025382500063608089257308223058098021769710961401256552582004433707487685421905156354447628310032918365934032615894993757698477427001501407431682052111198198671952416775635401010105569966579324233437714460209270314793585374776139704962814942580413822172676993950021060397067457037742854476482199436111672069330774735540273593216866724780831959985678633298467608103337424795292165841183740099562548064874791794448569158016447672234349004275729074403959359706842218876773069000897895483250401353242096956626163725580676914778943590018526577969335093706464932435284386964021717714880523634984628960966909289272215306795731153144191019342568473433797088975840393346378396218187773873640697642258772242492413717193362626568285649889311339764704956100021116702618021683085573001145532239096429492365825748537349940492858179061348971375510417173051280608632394713768586755284290749914395083152429563962290521672149164718005677549409171921951406271122526032359268901872981492939436229238167548157158366335908950952659407276639066925043212515062959275030559117111158413374727553788295092006996427551661610240616415202716953238719988561504145999202539019292843767895569795834297168965401821980048718460703773174250998212358375406489377403374707366484820517020669250535046775537141366794976033863487171357801435362947291913234927696096335737120727442776952389569517470429380705043817086524277053267633104724183646078871768949594194685101577021287711856665213960070741430702857139133141688540849125316379063919138412199691653611954553614669496550291377086013077567116141818590023419969027861842523245321492103269795034752643108984002949688920139509880591559171061315277645699644431544059974353140121903941117377643792623069299027017483475765878944349223454036892625349568309083627117984948854980680867298540642419826599555453707501777727581955715679927828422086968124862473852621458334168952113614949403093893635277762154530377352916514812598579795461278591530265028866496640682945837954805991762518634404870380365585192033716247614170239793276909421343759182863876955453682808867049489962319851970375906358192837547561703503786798059262944179620485550087500358971683274029444327218868438700257083733300711646413428942296191320923709901884047968850826343851967533621401298567319309633059289892455489745303577542630822804875998022195848745956069623507797054114660031285402828421486222691746481073820774446012690467403868680969649228639365857607565047052263937416836996725444735383436753023674034191915017736265850408342657977970754700633401601793747852082299342166063806452062064492798753631056711858899595376387483208741806625691115885848499406331297599381846808318603705745908150643954357355421843467875533297815709736096695815337847198183732502898320737256196079606936986588068703043146723429081611534768862626673390549606769716130668513090863924882475837307668792625291785196566521937247881063402327150371837774739863787348129824604485206666365136653287162715742178252445665451269914092596007869041721137050725794674693221552494582951211282695272836222811870511679886167999983215611546983676154381026789612655149156231413257598802277483841298264448544332402138489030260914535209937324009130820316160629637796867925083051027925359279490717085286921091322504320694085491622597345682593110263969390737163338375140157770964114318427649277214714908921954662388507413705396931757346653441097663199707312647326548114828905586738815949267743059891839161935217698284457985099798541539705310868802164244287348799815285697847471852985292395410995022480064459719471704960900110678240912468658352742186542154749106748186693883427425883710527215160641498594601994705486578806746822382867553238411988195366713152057688985190094262473758357040863944191095706055270584142423186377541825361102480632158599113747377215343549637731523502337283836924384882114405183023060517842337517090132263331350544457729754376990634510840144230525963811907210567428506368036061590600321472896910646281062287937892773901411904146629107291271385783459584655120842634615987203804564856763648520077654489391932298660904441891413971483140587694039369603939968245370461452510439819375652476520351826190280239545203579941727569152631306257850288749589212306525426446727371456996394610299448744454394202457677563837424875315202267440435302395131943843290720623811551174918349778053439041365669711782021618494904266062662026359379856882091842277312019678604146177161203383001757566070129322442077050663543152683204964619922548392629903142719699650622207117205229303883383588821984028533418267173087678231399001293327151234951113953435187603187059215951448769780016136871620336979834745006516833877076241601905698759513970833749675761489887727379459477636312555155245261569571312836228940123697658963257962648722833604780063714323674430904606213660153978102845077074846704576469508821949962028939814693953206590835231108253477534030532341533245292722616588699543502362425485853019443248381811924461316798468092886079184752314126933606843706989892404063981064286276666086979100429030166176124678529023324689183070178984392965008740473839745221439242048140904819921714875109586881307221892772632396780107488255133226449333874621792863178590050832212498627555554494127437208520577271482507888805047477448553380968121164891774367281201102081217258153441013304441836903485243178925908174310554287982826731751322236509943614419021807841945925675735988830092490912954017852999945090786936873059856513409920781059702923899566362879966196987200633354388624562872960313582565941790413708843163469747165899092884415725320748175497151107537603248911171499166723072343593468702618234145462440070661079189516588979161977853908169029457533305415588546467320476025141288859620404498122662422235425425808177581521636060628049821939737852688628359315882244938765200616426323726698743415055659876791310365265448748164928115421717011315891070239486104902865256859896246960189498350494887111060668940525157594846630446952880652831654284633368179564308457017212350026413562087778528119579541570199508955842712545289623146162390127971014671795457518979069297984288247509442704895159044637530769186760475797650786474455225445755492470206451257236217379106950095846703079738737082312821671908179600409450095126493603942379066244079345543632544288230819408529988715293452464391412754883835906242542330106966248942697944320495148540583522014486242663934020725580573876052464283990817060015948847599127214949309122206430683816819698645930041723657966350131192702363621805360782565461791768834516521444259109104805088832763293931780910157142134352794672973322243189188538848016489030912126267303115009017433563865598984445827015095271279667831845538020737182361716639502009888461020506295257314265631519508495766579406500868949988342454858358505478713118796323720674774178233232712644959518201735373987082027508503003037444853761047944414450098737008307319176714561314472305131555683807785395658182131102053229322617682166630640435919200448045548808099833422654105419055877271628592359025202447798442347569419188712315059151646155177276392578971058552433185930328899478982827091595661254993066195591778458097256899280748357969993488783582055498981914938574609632357777609163237799177762207171558877487067087760375361749227116579035267855784387427179892269370125464810876642857579406793597976444108680216337729334157944570153643566762216587941242325856223499186926955459916109590809641501481734862450647644182192326830453101047005653416607835287680379626368477221128257351013882891801450696460085789653044162970881926932920097358444708258785829147556015324600530900520104137302061156756341091789587882973260959775316752021206429145302002726338087652620615494971782544072424286083118418648545464100691336703048634784993875809424856424277219232582636282853837276361930655787004072432441710132684976548152502210733344508671973184750384735180976946808209138514854522858842547391052182166122107321418634117368677044316101551537029900756726054081306301605332154509356113613369167829922537312467519424044106640494791561303000078662159192152356476612837108838714657809444846113874854255396400998008907960701347425860292424601122137957702138418849190463877550183422017883782701981156410600145956935406351259100717718043518151897102928865725485276154211091555740798101724500316054958645624740902577886899308318592117868120799203962025814203447796756189032559156765502158665125211478635320208774052118621091043113896708141232317084766541328000621390049528602995066206859321375285339051363706643905436433866858947853662798556200672131325042010526988509124823839875656448349081346371693788450496253670360602461097490218065890369397062230556969204032126297513380985317775779902796236077041170243724070866159564318888529211224286043424006950300458543399037349170519526307074183674903353808407576482654564675452643683463713482933046371045026190248538140953410546101338371565430117286538691235890302178209770549795522690844352241976170988639043475609213115782292707876381625234157046557369054167599493474985816958166397227811357127579500277612381014965822871312132586890202391442450424994924713845480836637153529116529936177852892005803260211631931013123559195925546141824769355731498996793878794098599701093397410497922030196521492501976173772479662206752522088795071413225824412428135250145874044472179163146986484961731620538150428233915346228785378659132072060283417033817304647570841950868575189917328966587193843824088635356182179506730991534182289948994099506517039439933287260537605397337397850567875254982838946102802285193272010058781779678212232688735667235475047386981602609966464004723323265547348013286822917152488930326231455422365666784199113957708074107204526957806172999084809683173719904824005033029237654286787780857784772052921433179026334140499160717854332590424975624906500284247716824771132470751052340168001088837044661343033509214068019161423832470090702046751503688553812590145970464584745547990987385081823556043211246330817125576388960813298869114988034644048053269258404160308918468593902558662870540826647841435009924577403336256250522195299885669806342037370427299190988310242859679560772184583974728072662080243210708869997096032571610926901684291463092980622275347757664329854851761533856766695145580333198839338402352916210172362312957103799673989972204002792644145736299182092551469051880441959478744496982253347600152630556567412821116565644665597781577674378426887683181878986688442388093647412005578153351143789899248273196595893731162950517413592400247005634565850754964631701995749466839535286117921564776180390316523127157532597268836024064825693303546872470676035331588100324488489901158660352938115450220746751563138283952714153481351515564434306205433194429692471493483983338986368447714090631773037920135443569506882576224184851638546077847576961467426302256441263528226672997558111315911051890775779353034481319348095020271520764780595208182269174011597592569552337093908415759056792364105255352400913602608056362504856457824400090437586746994302677203047670499353947330915565316208390881299122505677511593384833237352270306822156475040783924334037505644628690451674734372567342828767477106771113978831360967787892388110091586160630028810623074989218332088100590919510995114885568372813600818935191057522465340252263264842459497585213437473365302338838025969724177113482393261705776182200332291947512636425370335204756696079863293169956903910962244466098165136545922462956206829831985779202341115574489703178597782759869374500520376984864097501343339294958651711124975648314891944951079857444221103801563697036419127719520709195833840933169898635004923236419446482885453714554037078848115398551610166719404126866939242298223952102601560276682055267439108514862637023573072850857089522246824604589414851023332885687926742662414409709514267115399990643452422609340234771832525385126267931200144477151595984851600783057974832540290674696170086283165550604523101916203307321009825306818689314918410534959874157409454154514648180622843044074530379130237068519844622102674565758258520495800945592404517729649234054499707030423029252810963375913976749490454948782943512944069209799490211401499826383498101199588352516878195898675069431342403783918497421039451655598324576907146071300609335375011854774158043998843541728179451784494619519262838622902507114651883472755642121649165278435297849831085319732181188780878119531640211542860869599496623417020412259882516374955721942816170001182004924582544003874198844180983600015955674929594108886628532257485164004769103629541127835881896670994804200973121412859202171448852211883119821407963162852983506975909725564724015854833843130103253181114156101920887923087635829104166058185643041282974800426545429764966699067455013682404277195475465753040965385343863436006287403880878098570080381775474678482227517214830318851499649297022793912950689478093486748904837292266472793213694481638326774712516929449453974159576175410498176888893103852325337897367042325921817490571376241207466125915034751504649798209023404896858145205504296568548230387480612673136924689698357282850641291358534183765226831117797476287221763123283067782470458781326692453994156563501943518834928767140577526794339653879599321302786474199396710469916110164287246904517818348804317720364717035977905810365212048256063341493066651001409884599347653717871869396695184273132644212986904416280711544490806393487918870737857897989527196474418119549884809757871679291813877582395496547211887657898516788360819965534306987013308852917004457098596985966904473189390249603263278112804243202309734877045225411879890049075664443512754294945309626253644318497523910259382990505272771916890398267299609405512470113349728483994866976421443505639339173193839337782339601433270472341717851437975544707003871188366735688856091849191323217186976129575958749036627513562009081122633456501613396903122059111124823368582621325871429708271721484941907458879137948609655688154146080667108752780577887593767784086820505100135893847161745712597817500202010497307597798165446155130951292545966283464095872108299266550839426524168837665309454780723413587306284863519317314822090029140190802545466734322879829398004802659490690465968415972007330942946612161019500849693822727700422977640959716189183277259934349348743980812353383903934271122585762764281145661738830269520566988983669234605115195050635138291959976851406184236441095104902622916507733305404583949430588477095839638689751277122224994288989068815003844291243411236525068124869950936381133160263826251003289926822168763610796722742127755601414615198704237372221592060671213984350097908438783768794971721983606099427362662778278368549332702349168430014760361149815093116050596133883849013153182017897672613057828047198265383560893787750033523928099936360993383600458853889208213532818585139185056929334092738821961497140761101460714297699208719442142097208574503135222048818790709444740461891302487281311702146818119746110952817838868449870319216555806494577870307251246443547754850941373032097682494216179101131911204553176821202748773668492052525720700444471838065680385457998027912831365837162896531988495452887726126457276610654941494379006715562576675587153507319107842687313329911267061561399462884367439601417123277689907231626633055903339685201517227694231470207644022213456942730642336818522569753785167169005111319589634328965285837049970165071855946961585213509402234535926889612651971289757168387017309230477436243427992799232205340877347665121962131859038036593009600221213531000795769602861579949254767011562222401939238647507642609393586601357731726702277637054701200011187869090047237879698196969184292669969840368713098764497166963139953773352280359541767063838243060511575247527364584055000711910556739137809228264023922259054160917130808957488040236335947012159009620769731065215103855812046580334159296482997228977292137161871438170322301990955301536722379425396387564503443121872933751822799823720478014900243624347467470258028440422981654376444656748912995021112305819286926120401243604537679693410779202154524115439603521441866972224650243510943525455753366796155538687461761006868326015270214725657630792379277952861436316058691002757741118983328152639108797776016656760998648712114383101232221242303966677419031221360627525505101397446222558697446488350244989043194809450610945976754187147673721548169300504023613570996395247377077231480923294033697150246208761564290545708293380630801338865983359217249959518916127593382320482625468379903152652179926465692367158183058454986043648036407113769677335332941676984163746581362625198370097967122361357212173413197718535850592792685328622163518566731956710960684645765508165005446354297675564086660271607863957337675030840396338558723978682692105450957747010618360485153019319542496181264645099748641617749781236252882379232445698792450143576665646857241247128756090150080015472838356190546097406060616374664485936692872779360016791393293464571657342812074209858304863344334199735269359772218551729195081209738371632745981298475735085776445231505481923289324697920741970824104816195461663287138675269946458533743791781429782232695711718880696408219929835828587729576120620273290444449388081925522490756870096556062317576740356875302500628967774962755902879439194821926741114085284966026774057970259487585307706481098166463490245623102436170940166900842973565854140848620751549854478370617738165682501610943226405546722108502258424739285308595586056638650434370640311707437960129531999944865913852163820800388427553605332066909188663115514959071664811195856542843032372977124481602506978333628224817039069973713005299238092913974879450953221289582385098391339445411056072589481868779311164081731708104197809325917178539457929676277713080413685945878592001190867411990904062842047359172938277150527583413037388958539016614348317789334203849948333082053377516621880516239002758133671374160783413409240593418446824743861572338489343294548279070016549861456556590132204159210406106200374945666390637571551089415690131662590925273426119877719720721652730144425374068058881192921984805386402368701729034403864695112789621315570649872703049851315803042108715811026359537114469788879054543051740181378808422252664633584010933535229303767752268363170514608402784285136303360954029639242894708041320855168992699497310660615650382233928430144708208666893016218927698017125891742364986301323442546291224462275535102061046803082308198644778850491467861209962413203671396920894937618710181006190874303736680823489696419378141915646518387068981518841915343572456824407143861933100079798678633671198891901323497809464202263928161779762949203227810284500995262929661179045137608175940483651169052126026890924420874556184008273247412983801225459165883006043329774246652477637902259950564105733666162232657150965051118258654181857391067662094385249339786769326699945759794838097042704562329418244142722343575463046157254181102988845121506498507733819343784412798198383183884135970863939801385183559698526443741261558738322478088653997083813486112008702081501951705152698005317814818698304899667170393617437547192584594577773491824375359626833915253068992201756816569831890685878649922818874843273937974277833117159600301597238255324551997576627871407815671845140896135270558381300585369250107346200676895500331140039434502047543463174004333415890796363897617727737643962083657836569355903604172748294596816257317263935510102420575597504988307376215933939174432017408528265855886495677128624040837605402308690893600205365523403479043547151487199100184030752133882039453988781138579170358534888077384297892018884462288606827440186866495700737638603116927626853611954830451147859640355656452295272763612201678838305529070222619465370954502687052304989863348050866104431307001538516015078184722762529213024277854872545597453356768789115075736940925186489411357734440338794877020337726889295748728255886515087825713604100288039988649430974402063961859804783444115350508075799436208731038205012128587644127112643910098854743565634587717208503507010601798242985433344301936288009906908376119541856663515181313973137939159001275745282922014010115163219911605609934790926110062707613343371108926444159538761929010805304298774197632172570958429753125533277559337798394753888043204531363247602216517384184800473365022481362619936020288261149480773340492260500851258506280768692603994417211985223207773640572994487414526336734716424448142212038271394344008771559510562437536091544149992945158082631813468153105835760663374983794852312139643055759119588099791720396199006112065600364603183977035669827928765872198226946305429908166558014525630735119935879619554430384809164926721813506088225329208547422115976747833573119933492898266140724041557794315799454493860397049625103426332047290341131678359552398306803483498421818979499312062011471361737557467643165460981068772028123688617570181802770236053522634435144441478210098132086979378105761586539244971797866153221252623816598658137438824494547063312561286964256723533932147529618642205874844031831052503230127477824753063636735117033578023745139610249037292896819827474691932368591302602066412665477935193860578549571583282221840641151950921795085311325539649488830891125914898691021984230833407823575067116961383048788371052405615069494314954744156472530151745751382262059840344300575141076919908418623030033800370668183003684919881018484258876204677619604184421974578138293877689701931072853987291202286091955407588683726968421981383348763110778125812928946553065830214769102711269067396382646290766097608639018548029959391459337298556282244970584045222095218405632978891557704434402686672663706773599307478204220748279827553878242965020209657138610271263901925761618262311058476392482083186240314115780312044425797248380962521953359456320482016315258165581419329469779926615255430978170170385907958562695102586320006459063513586774642039667999723209038176004617946914911722318716852601217997359038741267144230015957629128755794403596094006897648554167424589346308680414552089860256327853392871778947404770122252585385964766229550203491492126337691078075250667928242492395446213457049862894145074855866740604234175915893829817837738768681849959953485419763667307845199231008802084558066839994517960401937507474879620241912058717389539257080472748854327837728139703804010196399666654231645143367403147190506368793696104301217351032378731873210305932013117689167454001730602393241558646110709234786190953424067319198278280470868453329626214979864972733913011422357378808943298726255392008162129762809037775576191099994836266348996193760683508127108457558279784405259968482064768820340445632335605349114901685687459541395278846284314354203069453859462089971531298615345754516657851714518812554993360628961842767466653686100288376486751023407358213852756483491642076723760343400566674254465605465879880559053534468451083041067565305763812125601034992757132977549222192547372931323904989984994263797150571603170882260998224990093318351576746524825123415063938705867264435660493726014176712519856240723086411275953614275822818258329257744111202561635860607268184474113742214638069055854631266304333502196857268921335033846199691459524841832899922491060046428960363776318377071200881432255317567701584378321098758322999459420092719679781594822047622806797598000364766146747822353459573464173986410044342962503706678887513209901654489474484940893232966048946196784459472756782653433450767538015205158492168782110089960906719635059954021956154774245275978688705912664150931610974913700219785173221795229846932829994365272434848005709207327180502832265714615444464992195245618871385674966762012440627920261247679360472012420020370863191248886026177803891045614191466610374911476025639159517634239252050375754770328237702212814264422084268936567264822889387889357126492820818747421687442473466140479011269946193721445566229731249192543923118790978378512385220961483797371107610402665980382614013602489778439965272757215614982056196401133463436875828674818299550352409607383993145969615356192908797370665027691785481194557560711741353200548197434164568008044477132598887321588724497928123351508569852243656322416386929317399300821293810191190461185891244871924980480689202526484982789689994144282500323029991166375825443344471520236760274709810777001339063566702478667144235580810458115069974932959971524443400607640451517553214617749816315199342700989091322477036669939246641203380847998801997740273435371463855171719377382327239475759235791943058779765667582752073988951733926693660353880635445726774623664717449327232759027082711336957393126686337548166843529318698726115864270348142370779422999925562678312723882379826713698754350336962999399979485989197787416588410457460378395213271721947534015068180850524256207870768307156754702096892663412276931657195011269405875888710764311019668881537682516037521883544165753332308615431407244491139079919644086197721924574831890828954051841917422476603237637296665372326065694829731926975550581454366568255267120892701800287631706117337303087863851501710506966477062518460061988765272652003635839147938578472867042365297665640835162233458670426192190458291995302595808386804230051548584930964684885019428036051479753749578725652262632155133252937230859788601076579378516861670727772168215088853599008299874421048123237613159735379881332046542907847565461670489046581145437479282546455061292331360024174526711503724512351096410215912391132974779746852162740369308599954218555546668018773584467701258130598244694869964949420919910452890007141062336968130467937067727474701272827851262300198528124042404066312924438636693029540641217615623866490952837588962746640340279254222262783049989339431964250945140877946691775460779583837580376055757378367113798471629933591299573911678552580119217589837124872989436435108690673528393745108973998898249259488144994273182885582632009751736917555735238767173332126376908018703949322320848626055481961134868849833014043105668054323289312861915591018393121735007675227823048838160117576964102282684406032112999421169760624957305966550884468693143096761968920266645523988638527423476710077054710147984996783133739540116442778291230980130272746108576837359229826342477764868926736760563067027357567728380085225009838829211506600424645977022607153850671614024082872101280690666460911365864138478635439023588825725691679398501000885261017168839709778915505437077888742405473257156765554964452004559988345971868085725028187043744857863211498656066582240829165063132062964391511388769533005241512314910433131755559563669569992734828352776322916359202615970319215820233760705941118854541075812644275002675152104524620417731903227035135793139572619188228398592219171877795984628320817787707768259878683852231072166143441276120600293535760238002351830611971029270179878149004376552285743820027609103905125402225705943151343663803583869452398934789879563488025641508484169869353086563173071686975257652831073581279038299120403711402793619381006380479099631381374100330606368761905549619270790707736393625302493063984165097732589602610002662455071871399542105174293630997319901111570631086761841899486253621667990027991998702400490050262569641137776395816852577107096917825242246079007746867625296369613120786081200152208698615392633472292658420383368685161795481053434087283190766552754967141889624253933356099761985372574375776447770281259456603672764955848798963756634595749272907562976209871287683400170636875430165506963854405320546620198604540011613285537301451012790599295326995035290041254148710848096910588211778054511872651651643461065632250714831404572778385035474668749240255766935439645585503162294185642913856666954585242241355158549031934814609674857304933098298115646383971332481969870636625826278247938462590389973966516806981971717321455295021514554227748643863915893513338336399123398821734410248148627138720481214258645996810159271176752268299590812173765646151840644443290797017247680748475982767884327103860585592192487998918617637304640553966196712470449298372325115134413912848846923580222697943806642746956855510159235091027626624914481868401898329309365581575881916879898437716746028807531989815028942689907631893658673300401147353785961024074896280823820928033699556229236041173784918124043420629522484975818734872376833373461785564537475467742805514503036896850508531420391523927073659118782800549769162720745028118636548713667398862684166041558834382238414972343860293773037882169164119851550212702829840700023114466570373536682159429601276367324827461490509565349677703083040496024275813124942404612228017801642828723225071253872200838605622391967308777340180299224473313739525434489013202082741173387337788049418430308384990452875222912172157915965360584059875224490889288601878083536545079769657118231967922612503108190524682641804184028641182127064581497809512977323171594881084287339745993533320156619235994859617086352945594957716739244919878472283740279403272021088659376208898462605141031601689129876854840446991236094408505992989041460946343818578866327844258173226140207306274498761318103066377990360088223198706667897018442396056552359379626898429785880898358719723296345229513349052542958843302749901399190105393553441607557132581407198144639994416419660824782175896046137641402950176120591644672021331565079704148878877088316500177941198478720701700906863535953873993121708465848726330686411581663527438213929647737561022229456417805717779205456524415681502749820926667337666288779409163551521744018954057948950493560201044829545552588772342954527127225990399104754869977963778887360542465959326334230814395363971078945433261229423932118037734160709021718156059306042514337263192651881603197310695620599297316931072184958067150435880882491430953189164021115714912356618303261895176238296771564548768251441255557229401651273454850584584444810135328217584471400082022589172009684167073639551175772084640905195883943602187402456771801448951710522677626452704760512303691161703509289991682298419052787077813552234286477379340517925952373551593482433680102042570468578532694161987565688220090734828585003141217997254600762580801094632282259496271218864847647383451040159212616570431054930176862210452590100018920806725259217711487970660063213205988291279688551643346294624010009164359484209672837489725706903348327848338465310030644350700112969773409271419324850369913847557513814159350064392331351304443721431919558942244487151282986383706787676453905458488712308242322716286644955044349338688329291802656383831737383667819262930517497412338518785970770639870740830831137391408118685169264582044078263544811128960425801244589956222793658305824359372529430946176944044481405990808722513700794336231733291926447552509290198882317158043488808281334255826191066258535645678176579516984325222159247724413102066319984442936040970359866612006862552505986920078615615671884393490258126403920668282679597703864913122566989815737359743447603551167389484751326824442486998891071412467780317661904643432436207280154688792824152074628627263185615823747530641548997009268696511379368551988453857411904388888855997613632184087433383406651280649671312365039744882611953482065236250818868201502820062540147450256135956073150913201878816509142048928232506435787443731755558327181497508840402447265681909109568391089515633399030516868017946534363263802996920196626614538056234668527127063293027582696152159764122766349625733477192759307579552619243218456570531795560969427182908731456950975368544678822229944560545085970467968327423986227235860852452452388113179112729308425887057601567099650802090472059470931004174555224150547986575424589367753721206289898180565734465401104080042245796986626439993099452751085716893841481869863632057538910843183522417405189893084008437492511149571254135378884329934720886083548632908204173421069909673109182339252988223914446020104130966895497790061126427921609885766318539496488785152830668356742607830919284431213111296812985351158794368346786040642383264262988367309710395856837282643340503253894311994033020052012816686441183268499955596749691533722784753884727088512624200954754163619368050827115933190395553696046673164635598077601120332008368480006032505678452568800358633276707667374946253352418793427740045403796788048292024388914522529953800467800639696376570962550340919415769583284061259773989769015942921944737847994866947150369260474595792833030310226244772266614594789702697994261899093119977529041670968320006277826607077752079795407841078860082985719125712268124793427476382580569831395494699166525325300049491832003885008095701322073177961738565137842026393332635648857217276462226563753142344637292588352169056285006007181851875834131750337637592172977510129595458991485392671363044549447088450572560260601543863200409731211255710220938119461728111216825071761507997672244453364730264125024449670352276402191949765367276532065588884432098667865688832843566146436475449011470573489526130222726775076854816433963342169185758296246591022206135573485182853869339238320184786756512126821775041868265573956998977584012968654561244601814684556953885692310662941559846116052759581536674745530063075472147607711089808874216672554645465004772746747512035402116371504366662419445535220936127687769719626269805980866541011128419133429471287946027280383838422544120860281252478901662572592680581649521379710868318739403687460104258208642777348827263857710282554771147825878765976273856159339829646740219386582479737709367373299219118630488946615956162315902643332012917263756698187828653247033947471917767384891016941801848215290992731942679853715404926418526982350672468438246594490052267870678859058279608548284709010546675709882227575758025308342376375595691022279998975274087094485737501965255693965272487082496453472633970062409137285404008854969489533055926838828371493663961398793595873436107420802412058599363121966005585999734795823552711788518378261604904839238299467366421592595592120764185544741972790132907454398816311896111254807381083724865212086829085375620105210065224465235134827028803002495853890778694062569158933692266684797617410502990390864476294901345817158421153684767237438039193717180058338746433452817896593639194623021522709248844506897295027511883610688786966188599165681841079425618725716596703002129030994643939286217757037032575264679620926053674630377435135958909754811184331276869383348120845670119557089039356305762530144836286518816803763942882987703952770356567834899293421670219713217628115052257607031963545670306236293922672867203593881419388024147070819868307253124598540394049633948002528854194682662713138297542558208656329437885789030525458479571302015332507281393255536715806782503718408348163592020524679077500095393134543117775820153203298260274698906338401602658327827309785832630537248535999991406938623984002071231392553204552652359330498360355885830666889777156017902349412949477108708716873134345178263646877512417934830429822789103604148200442213737453857669157071009095683270947882539094097240394535529229954594678572677837455979769038982425403644094684589222997233342596947772643839284019522013068069527482269657128722695666198353584943684649386307496485698337781715289167950296500774918611620025055039581832655913369876334417460440342826768480273826874098925582281377128234220259428924146875745613682557281596549395779751823692724691412767106576266384553748885054686555035556854445507758564927187949899798382016117668479782123289599668286965562427274479583103235042850523828191237781672608493233862775296458594144417117310504314192707394848278499783292858385477273176582295382640711718404221864567042513350700927033693624742350252306970317573631350095757370596384339597836656180859426071489376169485253231728253714940310220531215584169870450777453102880799796553197875784100241446209889321814034771215229485255463766739141033934135617900592203987097150043600259327393568543205669274238890892178750870196067613076556545896152591532678289283600818990349215697811003618058258544868375669948225986031632500723233646971231872138745195536233900029099020786376047299524441599985729089807364921199566390415795552811493975587683263804582291247983309947478708510988137987309200528814918991800640353083730375942009901170197234793018341961080562065581174352753313156624609338446242997426162480308238841493649412084721212955864670254360286599843586991944508638968029125389565881157985564193702107468840579503536158186978690060215777969577065353585298759667923697702933547230814868230065139347525115028403178672868800545932996656919390522469696521446434191895831628177685116568046065347501222642573966192247348536941064895798966184087628116968399846831088814141537895495676176008359071286705756430788653561452553391215201449849156461896903631606887155867044111062079568586567385269294043301725798045240736016990597320195572483055873594568017180450586300827176292946200974026931549626873668914605888349718653059501419165606680803745111019134828126122245857590119890777860821963537958714243558217207898878187498215899958277068064021075327584258881381854480853699369502763262873897874236960613688092084961239799509385983016767508523156823570142030374726514014678317042923592074408103007001788288088254382208429660717216793619610738677333142396960460289262607290770606991420536361797446674098784311413943704023130070765598842945484343389612265728913289114770628604383750145293460028110365845067929328141937549426896275353970841085853888850477728555162161927035615695978923382987342609539208310904105929259175322997894881295985175242968503597311069877432036516189207053301148132408958153415029914253827966042824161273234572786247966186110941251531076438124168121711465347400228295141945536510730303370191243431992670325851212894295096514003542604449737733490998960842705433438567334730920094793091555564069870657757951303393628509343875671309267702496670356376783429599178452047858445214526189213737016861425542839818310800296013841956947654023991628699430609371006530198928204399491241557467022761343157974992633841983922266435892244644357325619352826984545117550025202004833247298769587350915089099197611737352383558313243925277975766816928669613899664184849246057751878951631644378912131353576704976500853604997454327937222225860260956827041273540170914700395392940295301683703449305395164401434474693388445157550378218581310310838940692551337798279075821118288583883275699534296188712273201489991624047294999145232943191528144739868083981305646118362664541449422807359457913923761600075721998107460575104673419125579460797740775650780497333036765779523722101666328935487244962120123234837241057652048166431433720538335686964169191903984579369565722921870844652821291995262583673512002860214285450225296354217570974221562561605269265046763720050392570068081635310089112812363204888191995925000572411481202738084669113558419197182885561876982658702078535561127290696367387818133673664512267186945744081840620717976456215045494750833136279863054431090830019826885918247171575045912555876170408858993064088276880862314119937911681574986533452605666632400892689042634732044534445786148338142401635480872346505834907595897713469932103545548251429178300726335545232588918928820786814577669388170121712755393251533187699630062984125288776925732491379874964878818871087117431000429891466050701275713725267381029481598047303943948977759196807826628748768937521966583889978099048029475048714834664088006082622017453376670263983395436548784410833542608007448113849560557460469696599895239601197690171377742490928705955360933662582491585077800511070227792828223514047970621999822873520834196014857755932390053515831905763627833878986672318253161273172825792299080959937230442858653450716967493652268143024202015462232243832587740400804274069816309716685231115865085376052978657824927833407997866668008949036252357325537394222622921951215961888646096288229024472322905533014420137965625970700704397307636609059402941367783196852728156611656131369624472825603898417119994186190986088855077653378427773345271515655301460199912220615262528637674437299575378436838212998651590996561823470221450111063108052723322737941179942323012740055664649823270565492477300236670265528219520630660774886990802502224225211603622729898250890757277677066054925213881007876593838779458002847418285604518704954350679941370309204886049254289528119329644338192615861327225888394353018532379697776094593047022702322424184842574671967960868676153693579939138202964611464767165562077294861649672044085132264159805432605565023502386623258970361620749246118952248664712872287619298204286150642504140256813366254211849590524691264847523863490422147027114303963029686765128274575705825171355917054449060721877957708601013504306561086942204055004750939246479516865438406600959562093099788272245931976922939499693099836426848128793186785342092567333668710499465688487888489608785215753559400728016560787438352826024511240957085765518040616778249536138257650412055575467600297921342153656615945072883995680969884101887661422639081339145508535316667670647225519073115497618809499073549476002854643096318389568264520826827314505009166890601908124218181011505508672650951511044020663245580927854558384514782529126039230020958050276733518013366211210093418297092014814772467131008294949771067169995617279114152033851377565166217029869791408521856543274220393005355551739487779489431951202011559907556899800148792200175934589140698589818363557687383765103718271312506827224801735297312389289816807928679516206066146611024870085311314880792185917070220533578264253609242120609074156795038865061403212573816788654073637845251913563312301997563729463068347327356689866167850950483881269461886237084650839465291460749560057241910164694484066897034706976469502086216910329764909567154393085668255611858307290780028967372305863244686271122680458843890498866204299514822470589675318057122388994679250751808647931969723392069293667377274854487609636136815073425932906948870218775151664322531620174392780616515248144961138769344298115182567691438972656289053591462853504711527757943186609848240159213803404390845587102236897635926739152884808418090692480185604988797783107222728639479533333160378962579144356133160124008187675149734174899192796124212652734643344536715492052695735839676789589607488876203212406807836784795451300804700520352103728541851769402601650584322062840003451878564550166753011503739484385609863009226363641988589643119250198997686574207559624780396825804244798364696145149240380180770794699886577781834651592875544461553001944045872988985227075953088584245446728222652072483102747343803570668646807411989475295912159114782110869923977096439739252441056842384003815830387313314921355322916874310578711272624152088811939881071846105572194069106712417639388041192127054318080626438001561050513144724878078795388967098860809524421672511131233572531682251575790132059295892067066593267812687301622845523215612795384871053087075087106219815880234994462273855348378382414411560807171156636993504212603784981454554764424533599923752789490414933667437481599165397496170340107103695085621839245704508913916587774293865454915135850247761327217035591440874426044129433270313676998487560652009421725379921873675188105715811079034521212834232394230420990898438840723169969740462267819794022101863699449427357069282515905132124295542332513985370935854480906150330183328075723567784863652450184843538567735320324460164259475085935303972209164787566240314047294835495529864181173325266429846508371283573717937472925494315289066137179249561645244505078758039503869722734090221420204805193420506900297454726388480715091775971712812220575018424546576357889690469438914868021790488257313566496870438558906249765202030146649680978822981408336052421330300765346343536128006612839693881402748784262798652211619981932301083862744636001427231734982511527571466954665120274974849899691216305129730141855513390983750510080954182298445908863892973597884787543756054139767224139001418583629135483908462197363041702272052740334141120326603949273596088263938298025144895913416168106114022451601932525494487267887850368813057591056902252519529420237333914011994266196915264644663297905266248440854094270761668064961854647052258793342727330019601463371135538852275622101488337546947739883678725421534886152106251410554206606390613210191537711364061778653546363436982889874808863060476935698377995094769178174175458905483059035444007309862604369730178618115535528416078632307792296414348290130232603617100949793640466342779190127673461472879060336290964675044980862673679126396418693947661312933406231633377736478103390931631357343601179197108978673319018289698662591541762214747377051107434872719624762370173867632194740534708737814369460721989138202116576777275181686560479442603636888482511970099408013206892166531198419831329386209491818771743293190800556788152221076998429051664255183504514874732823580266211275652107761202542380025392415192242987831987603944340839390752480017574636890060906729391367031014139220260160797979537884478138003081778662444361241267445645245676774347487590212855739844845885920881623630029331643445337196004770417174402178855054376873643692472529994644688685879269515656093963769235844019414850804362034966628432294595325331146282686983074877496717100387451516338099188104383322304266490703676903689124866046077325992304971489615957049607135626847306552674249506641793504354144011804521239652147048160823031101016115114326974869133674775432765061532938912309170493675082686699072735196316952303868977326420707260378810201182945143903792461402000716514124976190647806596151187689754344612274194295446783637365521466744979956938029490252747790203528798530849295230607668466734007653526078329526589329031847041077910511471009355380285902941963266232875801044360138757150612593386856464159394652969575573711074423372661405886177648659090216727453956678183923827374053271574205780742483598037730726166946666995987721007270368140456932698810141593919282359212555125039213586954455637037183449942116937001113094132925992279644359600917754450023517486631804475885002987724556183557650578438724941586398708462760071596390647729025062542013407398998809455206219600697314760724119027756009489737588903018954940748977134525735517169265336589290135540291132994171663704937155012606510533283132668447734102920873142153202163065427201466526853909029476156185921956933191866448894612140101496697617146146817115923368863738608600488753623953040648997451349572157171509568288190886630633359828834943587778132522912342917638094814982549631554223010824763373136332237394719243172859720074802396438599171106387176511425863406075431175554589464806807225749184449606900090007487544970114412163807228710554630771610396747326933193561483818197733401904600454183096130587112831435605123728411962956629914183888573148402040025956376218143791929457157234177163136807219971167022475919626633066834667878198521857849154785973546443796337970066311269243171075773494334805343329889764415784809379856383149263525304830010205438084263643909055067484621685555542311490083687314811981743489400831466715516699749882931015816534246118656105652735387168051937081622910066722323225706816526043451569635049363808625247838564141439059035097931035558543873614984275335245468390261170672183398992093771511478731072966534262561564438740089082030208254339216172808292007585225448579746064265535602917484391684305835950228568893198371298064619133717612866241168508056341141097074610627222077538271537216798194471033126587116492006514140138089376498662084595376950706990076644699484579767585993465275231883969351492736041867742141616562113095778394905151059231488093877446622444861218575932705262173328843118846417710217414648090508154746644750890672076679976145419942096720521093671988971564551049074047157797712551136516377790960244216394634218529124276703209585868954016134211956286353966860901229190247050328355140504037726759501080833647464476832521512832197368003867383677325604623631512978692328587716982262047328794851899456293076034613861758008966612656471224251443980777979968038223804744731294743216793646818172807161874333579385525022020246109754921875967137340150236702825094309212550890154967756681828185647051740848584494623751976412598574962462757837859265109373288844328042383004791354851823818732575894043770215971660582957608703167675213116770021705170056619761213937521588207142050070125605662553385877619904936759479444583290034338708633308888284195440264627740865768643961085890753179104170061650399123671984048087602480175157104911512244401698194527111112699362541924829967302593694195233941796472726618626150297898444991654843772615425133758112040139986744012023480645450966803918650408554977518616632307563680092741182551649984560477767555276241265413769745863911995115602078078194248389467672417563873220541109547345741996869898855768893940821052178919362667915031010292870876341577381520386124518884162671832157126467515291571437522462996947453331601615098653296223986875363545135132067940554015908770044986540310384744720836951395861172056654535953413602905349470068183270035214822917796755805069001578715373328951234120578405439271231618382610679486321847878190551880532175417483514569604782400554680131295724191476907487353183154169389305449647318491701645625103919852696218425652881317011918087072892415364340303766247827973671976981762543478272089361905895483075543195341288329336839710779329497488517780553120484347596935890577439663185474699842499532409159686287211547885539575952429029953787825246280923012978415199255011916392304331906260248796381462713477151570944518033807962877212960135076072003047802180150361071456707677921619721831059562285050969899206212056486865995995239190594489613933588843503764365012961394274562955235723816777070126057140716771578377881824913864986373971133023791039265901824230679926688066920821155838136252502683046236977187562222129030516219028697136891987987349081692587773541731031143865411571529341588541928193407924857695472905782047601164071672684547802127174900723118973280724480797997987755485911478528137616755981823540762810048104219669143445765561656096827660540539649661086237144126801843425876808984313928350134535981074564908388227629914832475970050930163669847773603427241001880773610478187355370614407501867947285346732036383861830993473591620120851762358416757687112815750777886541393893059685828363397703979545365890186620037456578986869781886579416230121954939218443495080928744294777123583495661172622150549297995642171715867162023926308751476233170151437802100025919137034228993703669361643209640824820408272027105279347819664600519158550454891486432302626025554109719656194347683309523078805526920513655479177602195335631683546341828422962115359596063645387890317981450462539950903338453989843719799084454761984334614523991473409051780835722673852641429884831149326515693459914978007468741856140274608084835918283746559538107748169697605046298776212734924135079667292498169104426270757135812626048298930845467798842034420644344193756694166611524760911313090099082837935724539451078065589974665870737399834407679270890090796548324395860203473083337482563923437376836582883113891677913865283188827402872056116948695058713560580912746637725204302800803187470353102600562532598639909893691277547778864511848445592243427378515213650612618903843624379299242202019426107921155679376185818332234296575866176699987050719546784580332311909265715810226476971512011177431073655151737695544939272904283750202284359146013803071598091603913884039011324574159540315614136999851571594135246567923508834369633210612846865691364951380060610127962618494893974409863613459804391418209888684896570196654952483732046260320089207365965745403693654554915467520809569023294628314665878769594237829896217261534523932795964036344757143873104634740199303825342654345856416201472238001436151834770266361838568408230734064145043491677845374177290056822767496276487402551254407892254952448360609514960001504044041000499110997360018548028611657522403082903854899197801415151718317979403438837725438688271280809101913921013173340293510944512454566606703974325439593039877492247789938008506120981306198824438131309583569300716066270819341428656975115459605233764206326027393875165035423985032044040032420705167647364339595897938661192558370204698150033984283872324042316556248539724104233875681941564456583232689527239280278340833311727562565728271681760649513729353606626272245923599120464818539353078441301307133181018129132766780488359153112413705651391254743620874776650133407513915954166537826302402373192903366010229602461175695986850590844903486717525032762337068662234411674377522961596675798388479773254678004343083390552142249186349098242156905450283055261603973749460638121664321921862227453530435588419151194662939733673080482542973449143198653769549754982785281288106527582608633743607316575527732344330990889376605504855525100293545935363288451983106962939077299842981881030259884025524206019130093859017068278455860609246616937044418896154685438243117129569484403641661771340320652743862331412840512005501218868349571217144452501048404494818053355834387318810250726537911479138007561563928438953410359894001852077848253227867121716807961196266643882223453661593858999597010910170752298728279543258885796092414459812914079628115770445368708989217237681705488433865004465656722021542539783187570178816345353405487097590621041424423680235335222819300751035115321217466060299736945798969631144352414916365941958731309673043066367520408121729949457888233353022460249341268035954765750424994900231315425295435002808424128804528736876972148315339888917101984131438878044308685780686967329514731758319803014075231760139523001491129448488907803148957091235898942847191152158845539144747201642881361395925180561629519312050612643667770152369902595647684891243698795439841033875493468886732204562591120448803178430859684296549435921502780716428238177659189310507024420328216538832644793593759349844982625485071346718635212113771684123297477745175263830026820604297260383781373804520407998370511385847866707502240593823425386140039530742698536963010180640900186059679829450411509332536021582074443392632702916309837447868485079501737347077031121638385037138803494378859162027375998292712726327819090864234649259526062340667080386765196604469938202599053374870909978502701695019520313357458887900597434231986005396376781108808184676207315931259197516155681847826294231724316470666327643012502388436754765648854968709159412705044828460123249217121658681635708218792259360460198304767635867996278905317981605390047445419799793615642334037041061558213430026961291959508403616181534267107915118094990090483123394649417193127554730780428223936582270338320583688632374359341534819574553264620929339872010914119950411079290914752853972238102355185280897229335184440571736941488029451400041908898145308815080514695479568103876651491581319589279319692333386714875300297348804618986068017265990111781115050356989630385382650066202996934449599607839592517773241630607049229711874477677761496091494673552098615941045428860726150780313916110999834638748461990872888550558245497301362271471321512066132728983943737936997645159284079380980713099346273202900788883203510957719850907049818893720228881060562932103244265889481174544480524531070918349587092794868103595497624390123570925771541319281881371581687719974289231116704554721927577403847237875594495130498226869681898066703246125405488003248114806352853624421190042412102116317187055800429723621629930999626467304434604283450047915777904490661145491731784056808595477233329546923908559950649330719419322671751667985185386010258424433452313587698025336221097423464356306627961385582367427851597224139253076843214689644924054082081458404039965019670443862793344799831399182490754079116152460250959971327424582010633968018710142563463624729153188291202405917787385166398580034601893551615376414980182371298633370420191130238857785499179449413998501571990481265498279353839346745810737424799206308646072794744083918761654004146287812732311370408735534412442961316243433555911055202284023588085266858171996844053624691393638966764620777470563876424098070753192676449362667357736767075050426862522023275380333602121469984344900382278775714392787903963167264941518556394591828586529422835631634538191939701999882183433274324433523701745866151510893593874908106429798678965219322351918855058276389016689361189628932777010427412169874433207031892554462379416947247128673658229458983997501420328520575877375365193236413794296440359685761861341889219083169196393330770170109253572461936245703315752809243753271352894464669010278429410143207455563887697189088393924362863522390631331255649666138798756908862460213539321902033082318619539695896407956738785868237453894835500444569546645319437386565293958520212006651556116591589633667729926737455478613809857983385746335139601688424406017717766581293523767697953468940171138342457843793927874185393258458451388378130579812513432647568631663809646688819115266780947778287910190132616361260315029749592702313501281387154269644549874025369977288938646801568260753443598335886520372848026733122864707290736831243600238384752216489500337765817662511758655434296447376514279223472312535173348977988758967545285319154740617533824640339523707943979878682482047080531067225597997651213496825493307055037050322123888949808639542942382026549415653827272573816397867665537013169042373723251336065907788226968744193719721020365138109706519988463707084597078238490392526974751715892211759624683000578601165715587212009162544601086488978681374855217705356549560471171616295475578652018689616712833611420654494789364337515732968893423310981539226633755441383726433216290972994178806183992781741972935300550220709110817026958141040558477753521330688197309217052304013891973362470459620946108141733800946574492687731848712882649456165084837111239719151793415526659151593208279087422783957916762934449761324556803806468032297200608853106097211954229514400159722621858004573845884400534056191585595272214858631568292336872466207320255955591955092267101116486398924409477528161973706527949533360072063812571237557516333862875642005205234505261189191303561504507484358527625708676853014126091231099873154720615925930865295594212863011894745519218311453318820696224515903781033158549298573223667498176571128891812268167319553340950883459013665913340375977227897358878688148478553674076933824199065674284487393640679583174560894997854341493018549933036174878180204827131689417017682386620080882077001728535633418617156550384888138949565025176739290885916233028825559807085691151093818007880308156367130884780863371031988851920227742921741782522239626284253335387957996434066790881702543194657436888512104244627946119018051561334366818137945864811135920408240779092036648084181687031753591069016134939032496580012528691700875302103747438249104292811341978560763332679569814910352541580673486530708431600748680271560636529972325738360583839220225299548342101552177354899075105058977032618732258802009709580415859419683895021064296005445847253714509977253713526364055985005563814630589229210612831284064140571256933877104351934246152951033066252603912062313193282606432895329192095864273291725079326956773047892342822948807966483418523678038451839191061936012187392011269130700014350097724677924822549573112683979684235258528051593601373265848897214922985393143305580510197371857638817293322751409107467070764785770925321220659586368533661037558737282640958792978195707556362174350235782217826520905831686670246129927529958329602976159130034714952001928875876527851950354045110272082343464129201486415531389719952425688497125244821551176607551608139724935853675205398965559380527274445511336425265154468518521769091729227439030319680221583253386473428368552613108935350407661581194811188355582814864068317441175189750831284248231997607894100760662439765763502372519260815679155358182930112958350161723325998326923763519861670837600350776331095363889619252089268619186463611099910246898476670634078821836172512135354752050599295985166220589639424598241528994079249188397210656250812835168289928934189052640416966815043489694403322990818196975767647212315043030546372813612641957483462229712569158993692440688626815370665970579515520682728129936176018534234857791658143310586770364388203296421128362854414393235275099378458558711184131473879150662117088309467882608821949167354494541580020173184466177493601667176287918723915628993678923869076231426622972225865960839440063199395016501270600197867769736439116695510292834484976204044923894074235366493811196339798416988046677239237490643999904669328518782089890853803180492121023880286517940908854941172325785934086221515366943629311102391100281114300798493695803287363682603762100427241540951450512495023464320426567747865925453258903327958725144217004855456005439196816728355645857478693449314719259365018854247353201888234698814292049445923048189236603601258814421134854534378265659236901680292199493319282945394751603098272043758005605401899565010474010313258823902802406215010764094840999850235346006711382853785754478589782205504486585544345611333507030588604697839874058238772072937530079721109614513925359014610698121085023575926557829728807938811130953571886987745085755955489088777269740377053164734858681875195492414273035821212083827093575287214694898466664153309512704654819345416158583351977656893435982065253369204386223544748291812054750145663305601785646668613404664291873873800038732914029678990195808562857199899204221589767242477247892661206282191025009768188396538407815982709463697931971490556115742232197472713589479917674217949256607523076782023622128957208486909360551293576744080118569391498803291855995580919943945025787085244463048599206120979329309139720536934470529415749542428586104002928677524808301540936538494409996603804100179910930352137906679071117573989486946758956295690827388235425945316474134078102583654835347726207521787401608818691407365602573811707673589588989940337060215397189931671402308389454036063229454294736145338494217835168325590644040773379329961747673162717334190111019987001048088314662354427944474648047761527374733688929356839230675663844680042923338506668969862226527743671140607360322088945799481961488659864811350283567470553875481716957368277297025144508504431707779707180343223274012225227233809242914855363107672689072245571980393764578629982287890639849478706269848462234206904013794482706970851711369767414524425848462572790076967947607513514519149474053252179306869843132499623010352552300778678646450075593165465309985906421381064807723428734868039949799086999516572545864157729486219749462864736488497173226907044114300322639281276105927170944213855168545743563927502666264376504773983236471981892137512574943456147717123997639166253191009743580117170824289234572163777506901820702432174196723341099217026594867790618847760617072293004516042074056032469185103463962838541404619359163702062002252356849868089600546346517823449662445390836613388098451697450243698586106506549010872785157926592073927711222673516474696024680153986559943796495786526161083957703713960422717092025721790305872958982704504997300777439471687317882176607376111777276459762119636227722670455362800507568394320169759653514484966564056679803026407106552492696247322614762986950898648078286199219358271240480577986493045405386909076700954478775051101651322432825408347556362893252716940049014245845830285418324230756076154745876115560581611418815869754580501401842436887817533777903337768485709826316861419541295707462831661497793751774561517699478927234261880755429339998032276781669863660819196465554721358353310875345273166655587271834717673805300510123495373788574553524952931847742122609636861825211394332759976390329401296807336555236469281330179393950319976035991374748158969183712336226547912140605987285716975471626667603031903967051661609784225838101442425924136089554809569890325226655786888361403868865563406171250816293558852663400436279005756260162774605875440547291169436583656078103155215212250479732760646735570213633732124035899570288111048972980094818453455787803848959888258614603104932944034938195110385173699275610476217272408167503197425661958876860844007572161020917194045054434276079096210878408755127219250133162901623588852923407098896227552462859808703488774235377197343919109435485998285036529104524255396382465454283391587201082175699489135301459957399429211262127823049849762768588444791034908447697703936793472386121127093594669473182929251298043970759839732046534262084542219283954421611376100592216370067922990763375312078775834555207717944438274326910403409758750771580245147828172101066754447862209504227400692366937729485537506203542109369755271666303017923867870277234557854819453318876832442455773138996136782622835804272024776522955859396322437102572968957747995301998638837516800735959305016438226313421533167910110977349973269384084366587639315317052009353991946624769089092849762680206169586297871838196379406219229091708850814181122996275015292271591324241619828441763875273985353856152058021341135369319288009129957154076030825837083528283004957420279142552786245953006402577637415752530460268657583530272031498823691755224379819353331584318890019682664356812167702982792067898970443394225402219815360929912129226170306385090123940098567619581687018231299331079213317669390608526224057751345374124455913887556443984695861373381796289759846570963311696572421973637029642545794222599355762099405322922340950819388623144861069919310591419604773953132640223968110970176639882553640442662060714991058373373670445571053625401297010877204152559427923620462290605594324633260740297607698662534286067380791979535063136690133280877571084357785733110812616658104571962327315172578902653407114535179258115271977681333288625281578463283601933212468220123248961901879486758379482313919573876821572731919141331192021318643565740045969830866241147006198219896866469843174885916095222118636419681570196057280838832469009125615324048152989799915824710289656592340028209399784868910732109568158366466380198866907311114940714616110683372548930502711976193430025678207724812370700779162767569706251107973741280908433913154483595535135367922332354742697814044642219004467695991775352107527411623433169960299621204291593735880130435248171034932340341498816663041790883804970416383018412659093564128644414396694301199285265565180053049747916442422102101970903163113557987568169061389543886791600506606035033306915161514961068414483953735829184140947598437951830727513524305414677062319685376592025029010407615755439017370502054366899000006934879294327450223541011988102057408461226341977288117704607481337798003653729599953629991385886129728469454095188648623140475581991300798095001411593706920131723558961831545133852423011321045895880289891721345259572084120134142863456445309633235004197336791426555162527892346365248200763356668518259131935656779889643253265232320561950651128378455239121602536121020980507844337032285062224097013502831222959188812020718341325225084868815379029552899342813707601925665453798907779142834304936947711941969669384336069666831881229109781275935562111703786723618723142297672461746245617226344358777390762088285032628429642187987170683397791990106694971747620790883042707146189807038207116301265990891728450803409552892329491388876168204091603053471678677475586838332976694140491759856410769216264119585512995992287932204104531334418304675570327523648364672745265630296350831925794121157537007615395208721500481144581904687381759879050765281859561156368443878690638340727200162075287466046237810497764335908922763509597025399586728563727238070748568299453957825832784664291167974711433540667102108762990321984420343268312632565561066818305533936309216760101116964419219909829970072911517328159182916546437607369500995398938132926192854660155566675578934483013133817524235203042677754748866151533644704056765328266579994237955833785760088324967605006289286094082987510273102613849833254256096196539785209772543299254807592846060039685007690263457025034122084883501333115006920790437412812468116195685791181740327431168024949245143905118934284492120846679752205194327247621960117080480846388215706861989862396701966915608232181858286968012640212275403630637429954864013198166909892136718123534442693962229199139180738511905036173584530757858914096108579704891369364684282112316542210451900845026122271080643726417572309118117414705049397635805808175875066260976936205297676135023826291203034700837655071056230904407128642999236705719383661446569859332817357461027940701102356512036946451623421958259410767468187409419060746460732938339439445558512265169066250344730313322803180200013885408650559255668317003411327585451591128591984242139486678976024775859944137963982434459094307058910282187939352967635104050726630473076406730780070629222249603983909541274885575261491615100049996440144262630586706853533208866937705787087119922961067934745328900333556989069415991505954389657317724680970992830178078476286036570391672498717139324819124342752123898430433270563134722222256862868624887136067681062338840299453219042231814241014778436954122590997967856469898564051037309425932342557407904773536515548019374119096921484025551123913708968444762000451920486783154073242058458322811427785569935191174661662208398597787620837799330689009142315188445698326631481826849843217712500497007373795046271971565291772001378509282138199307896175945373000344914088763882415372980794154930282285645181157115757874805338252567443804399027720884370001236814127448685504483388630723733975286681566751783453452690508715117087926030847244298323762023247055887916157968993740196313456269915395929810968344534737648586171056909019650383752116001477302228456938359154743290472698587761911770829044083111151638543079695595915397907400305899786642232221983779438514793911125101439688330547256579403721137975723361626515752610784552154293669287039327598218904794129215913832253574267488417096933763503157270052062223601836061378079762457035284397989222149263693636525187723829027293911381206358416668024046071688839888862297689957930261744265662634955777157816798875958848423501943268502601241101598807878577711501229739685457803210507083780587988792044547352390066962449753880121052279126369589584003801313568710925602597991187573193302078550334300911343402868921897998429752161026586376590181088381393294271910501879321758214281586018586764375773286393739933553817282056282471161392564013136771784212164518754671097304457758726682290166848745684207639481394607737576276772392541533454526406356102580188225875305854396058553304767775473753133666364900854882570436713929801654450945460542882472490765790254654545461723152738105096783711514666950095127615818464658228565029289968119760628331980800453941983184996049277579737986346336603929117167320353041990530069754754128241198681722584651628870808297797524079362682265251573863756682220525628282904365807964061824831219135214891344161610937218864357387238074961761315904517058591806366527563729294633967881983781231018636754475009320026156856363875949243753756663481752527364101543908903670821525089883085425495435031995591178061547921568185622577285140558168090306882033013711156377475508331733819833154925944684302874085563144321343811040162260742332798966802734203502368233856899316138702811970883583598001793923555157954473197578437470543309594562614265957520802290960927733037914179966329291570189340758497677975618951156464577875898413097912522353581971980277228447074124226365373340450575116971269593206803303202980689631550415519351758581258249160314918942181088961102379710299102924542911981890835892254295586493725829213679060434684434459168410097514088013512979886960666612705161006017397427110449356251274940741310897794269276729785752244953908584839437066465595117155882870086415733918745421931319461552280981949524341561219886478391738853457257552312927369453053032375155522203468866459755113114316767327960398668927002244108064038139445836306562058537047938563244426906085119990933444762952285795504778726498073826059836844797425417318047091499079019159775747998197296461081346328202606197496621220867628706401284917110486876460817947337896142879962278399134143732827712136747344385339977606489964758311551272046023185566859640503845191973043056306721450487065133320694194716999760348043375885943295472098462237341314644939366219643053735465908926281970233567818231381871478243238714296323434013983818120299605395861894613837590512876506409554167196284387936006172679130799529198719799583461662100013184872506374898871201239735267596193175290549286897782343613254070085025567681392952692961623977058265099739552432801158136834988208749963953304477230061424772882199857503573541140220505049078053281741163560645941343094368957731910599790484578941493183758675175011390482177412116598413726936022108318415074589974422281119544641550252964741876464659040250477159365436499744349895058254801290680660460069322285463673018967796581254849813258750881844955825745558788893344667724762014340321257658404277386644865167725071409126365912153486612905498817367316302766057577897652209724902072154529469130028359163158634357564848756783828855005126313839672347020956025238423698415194086572812139710851490519847502235778973372854667122199329897542076901253449213309087492829514435681961338297838583597183443100237211294806685034847786318140630355182202977197456323220967158797547011947984249845493688080583276589225211001813788865603476616746037883613834183060118561530241602504344794705542844547046280033940648479971600502677923826498595350671309152963645005696769276758913399965878588130151520335711627982476781026048787523688276642600470727497067610849540200979883237570749348053813116228382257414279887695408843851704386983569654259013612151532348834624917002979298826916732705382268411181920947359306917919743063787727270356281841298790334413350869090672092851678760232578262532558484742617828796922416809530192138179485529434305996418290528303013519886839185279722630849453458318289789987900234383623359176575736213567344440621360050399274015485507075020797043618546437244083227457477340200801852227904588504550772229691077098654228259570108394497852880827546839087403805112799101815651129773688520197765685429377331401686129319012597025670506114138363457732272072755155839984694845703556978523602130011265438146850270081591936038708811907894046219465197272732890728786240496598803317313233865555442221967096754321637047656634714717735992531761969146718000135013497829948357130469785879364633336581334067208842827039926229766810003524695398541563457830725239607185364059622395646963074824031555430759522458522164109115471654575628832907794752932306711158246701170009944873075909980694726509691973844921724261497160151821986958875401959696052706038503018832952423827151831299371634098623128285644464476923205219582738718246981966169315989190888892066354092238415302573787314313408954801623715846168338997697292355745400175420254949907683787653256097975538272809982871292451060974264864900872447256790729363269302452527795337494584730440310283615574279064037592485185470079413446295940518084758594153079267786931669566581499090204555794364448631087750983935226790314331984093078601044176712515956429195545871530939947403960950284302372497300445497126536203240723435652529937170812553389232822457734919640693074764614757216855048963120511423369839811957396954197802015839112205351207198961221337467034508028647880805653936111568367300096543488172658122101423076783469324636219458447096122348037913046294093684831724634501219361188661051408824715232251288805239030194459471817318173968779668825997898064435281762938507078640845889729061138717036128571959916459744461453708548623404071035292851449855090556243032846315602567931906040272291232436188845732330459305232980297500314462102684672748687593428356753480367795141781219396527190107169347565890411250568400407827567919202516790590802936597110070189328190953208103398799786462726364975889908290279986584100237246200894377885092098960315279998028178897522569523087604676455363417736315874705896242173482114510710337294407042867360878426286188357970518772466376077858980228725618807562258510221343981410841849526533831959567479002564485381458707590250910997538517916236012590140545817650861854127433656948621960152691236065242114098317041948289125104146219603616871291687849433217223753969589375699729528423118671978953367129443338711903068547285338110301579566239979821607221974410891308102291074776730385623182492457810412724622624769099545241707625351475383923554437317834488759070990220963792212108726210297651937936501532238430529705187368505618950011398658828283368779637585683132968638364568266895525759405302265478824053765565070227726834402274738193430897993115022177925410115859579542710786164582713990136923028422903301312728131994548188938405435246376746816523008884540624429702444163472309791666893596940791569737285287150400014913706339872265360432347447400918114709116499609598209428339632219755284922330757014223863915004755093234312439397645425954170236097738286844249266209691695933642525175592830676789711023447048738201465949182598895172974697922032964136917212117232275554863356641513689820767404448326235098934295851956790549310519833042277470746745595201445308727558168541325530901314611709936670453734446021738151959030927240503700435861138215684425569346502536906062901012569862148879551869925016998607375529639593115694171291260750487219810816054511256090309641299992685384933642948423859211547026414945601022063668685365960219737676075882013807110701878827497249282762662558284280379295244695633380701830013281333503333926810053398957854033144109254541692937462982290363485738837348554807342605767363863151648298948030203454599024180736419889413300950688864829771414973186870608376099756294082516501137969017804020298334758011307550972895765445884973543663186611902282987113545601572411772519665088497567293634183272662068326718462894255577093982256580230832416523123257043838423360080838498912401093774932154475638002694301530207499703298243906983795827392208024544988568216097369972944499158489765241196356679569341651295788247973582496579032973780381001911686821649360465602989406916684285718374955945088704622297909074519256419907691160601869597409900885444532566760897398891508747604029284679129915145238129471320612733380464737031971323342330364492044362955227058781893353105406655481687104754127120651487677647814405791760310823748168141622681112423662874504156168108459707893951212367604519978099034117303888847609130564115494430375334177733723068960760216344502575250787454994109623468745351127683470185069593314310671386583334067204504751307915259966909759571571981773577988272971099378208756742227200447285251299920481672215039615719835240008690511257594447472459308624285214925607178504376018037350900039666208331462902301445309985306699709189513904957475310568181322365167434216912415045166350820517197104453394565378028523962523198381172356256273496014507523586990391362653163758059115390307993957178753345096350390999028642552563767670896775648971558137759873618976179120343639347206874000827587198123728410507039844716454099432215632188247560840582367625809737096424753245007389957081120559796025580141422903465443866198167757181324124081227561103237218493878418148105224603070931912391656296861339478209546178606861194132475148491954620096242276665344085465123621222323205280992862841550220452703772439815913622301052603373856968934179289728792398037803318923213703402226389149889767937226917030671645984606642841042684515118301643630336165278207137165564019886556244443853918356780730904288966828172307145561198500747471964995981585729028127005393042965066755210134863283853722405226991524652758660050241272222747639265025038687481587857966451770324388265912624735622967682408792828292472181001709084576080426657860629985715011046399959429598457191587367050607307789175793929010558676654185414139018572074536750727824896411236435458100136482625434297379341763445488546789538231027090449666849397338061736872788463877101766996873420653410312982655513424491744964398762335551039538454164823179372119773421045508079486128451106735275511194403049503229950709777364102605976632430260476520280153019023528183203143921927896765774818521011563084071818177410054519363801391943500283132338965237009619309699106974611572258806944618879203205959170466632928213633330843162532959897739726670333951174984547499964915341261135927617052936372695048093842843706838479808677377539262397960909190127515107657926950336569946288806658397873354495140294762697468630124812341439113269045192140067874844584658747580682453165281125296009605511457330897801396451606987964378859431517492256069942440800384520799827218523731148922973525221597296152652341945226299410484266794437587640080244622443390420661433484241849828801920076521497103929486978563161665685012279109405283689977606340633491206032439014217509813665313979369474779948859672263538687912006039945649336303494275798291493295284254286927222427256636847280478989202568682863655859673166260270622950319311223798613536221908858004713839786823226555000952503655261030761606222239947727939519624834348474666411767521509160999364223547573756202424343757137604617474788244532944517488028023444006844918774254723379858045610376202634433619130715306862189644241585617057033585495276095795417967061242720213160046599264191057122766460776698089188862266947856304831563383018150790308315458436200215541633816091826074886454748430252700123463910561786095802669360577241973350348713119829248635619322577936134162733996892252688885777816012569732397297924503339338159876507695417368896735174959239147107926488408891433925621381746598684607687426222390164402477217752959942918895011285640500087692527825376778125424436615087065459045527112507666318577485560968252517712665157426062675483018143371710767788996998564236819228127039130429732821861324187442611473965741574001358918517935913641231015585174003603951477067056974421924186816254862190271579237215575391799473159591575901915446950852026342274742717057317636888904679336290215728158464527394716429151686677710246685902368391318896138580868142957547438279535114463515766345410959430408493827733092346466569276084412239480288977405023102220433722245816821916280466919588151776941770602212190993932207640850724528500161806657050832724857207110348067431304028435330160030312480159081872015862497291804220924191795737770871270188373408461824503404524611921931321441448391749449904510386339034704659075084068610318838367366685563301090082979807736598253111781244451242683377174111468484693729795011772823674248791549486638458296799875654889887327447821457734561411867983318723444165475095362148549470755864811416584801181904677176461539462457949153257444410141689506493476756401928935676678173723484269494175100310679223077949533479432516056786307782405739970278550628429856103611237471698572596654790115074862791464916435147452781748242539392880952235458830090376844547305023176051766314184039602585336347168317281384265444825239203893465466890858153424965757977079385840869075377800862016639955874904649458457202333018732998993333496564838454783471971453613025064364917543126888318526893127207241599485121483918499523974032069866681662303185417526924844202659887329442037786772511246127643916269007084231363944009047492925137171094476570817374452801129481723047248329950675342973972155741567496015250713282705460990059622467258257372589368827537618076849603009629801210180269355154720088375358074115015642757493621581968809795438454819487081070331693530523651441399974717694913329858115539198914582647765231675085633637522119555992544004026183227061772061099373116667067092505974629072100691317357284567645792585755364402730917711536551670599641417197356305260832419053181842787809848014528356212617794974819197834022352226836573969998855435485578840037759163245712789667794655122075270489283128833702015031143703023908708447373907078781532095730685322117328760893759247274634837285121420383783934325749108966298002468545146680240941573441959859109417478148206192786609438979855553083363389352257608308065635007091419446789032458792843709474378687791326140913571879137584843025817089678840056027316667777275448339364211899393405240932197652378774157976686267864067721779625588633450234113851466535645624997412946930705514513203441319574061816746602452161050140626033528805886931431197469288489915775153778342748719882032605623021540485233124013876069453460372806433816295323865060264932129385733858783251461284829937950584381277516953434315083479955736387712144546510418705696037901647455823982899799329612105124705585860396097093556580147486293877547985715614835499317249370220384208064357933427580354136548550421347763599682888489544052428972803059697575354442539876606758462241998988105022392025691838793872653426410740354323022850863513712110030918429086193045842750257445933290644424169852275932346198361092429030978939829845419714542847557027629163511368297333602811043437707961405302222262056013841478810714699321731457749928598229241611535020354237458585935123351833866622940814685776118583217637536652564366075322904453715249356612408309213953670846809670081923447152883257750836166238810915189766742077140217455583232690035654282182870018792070390084875320731327812304393333963539568493165671178254118362044754551798416237451053366174338814769884329755152155035706619077058817393754735687431956706593664320342683733015748474804545744173612347699540103056526946065771623614934218541458544469541261836401120076880883572017821262580314749591870915184511690090836956387393619647265144910671092980776884091986623225521006839466514614478222867057258303819294962971038083672898585612747475290872455453080292343046271113286282776185484014954614125446465072267279276073397200975813136600612409077784160261202694894647150676906201117074097886683263239621249237840572853708750288265320012170485721853430533681672977940405482622654056600721915742098833883425548833721824072470603548307423752900813467274151457094360899584623009947877460522252022332724114197471785214950017713039871086008410108902409010619709906843488831050086579887021488749998719069611874754161172324873989848248472447341743588664519053284510437069979972340751119961420628874052245194166421396784593093785914511020137173035401490902768599622985367962712938896307332857209768376424426434277665686481681882940148525391135373328594523508093620651026482682108140292842128548360015167301248780362552309990305864539446002178072961987165077340642844423697619249155186694066474047127198833123376040566758230548370868224490174249259919792212173397828906937207550294363749836423897001774158353928652644571000535853726256893956435691524459410955582537021082917124774323543851354463582395670635839918327034796764757510738681755234958304494366761027189771380417407476509985578662903381597837315852898139410535553923867867807649030430556713010703255784608122842996567954602492349418479041711665650671616396516202805871290866585188584607497402074474163656647338220155207613169130691527539351102157723773002239407007039763050074198290889983517247157139850074171998847980195475816632134676738051784055261106554591784341090477346384855365308220413406178604582520170527961308516956834907024169491860991877946777019344574981856206992192391060524680556244990086303842078675566992144854963793874486230318286270467804532941920650291735533146559215940183978931431082865532931498669933095080114022153169599824307255398993104688933702396821446592271964377941753028744700580905103456440246557746657396230610131911287825192466769231377718837996721333471622476651062705433884675319193873571712590143744791890797141040945075500336771218230527743718301505300231984015642835076558292557059765005320666777196972921773002895079591483287976060632526124494118117506160022012111004778753625935084063406732190132608865607358144615297242661998065744128957624359338116648855558410423517074184096121575051742956852126342026594451639001268083561719223118791940467029312992522728516561445457305161748459091046524823961644816017841345187899260664847780216517446244617382353545348840384033491474268971375109837275593566292209074520191566130454340193757143334965033718995417839813478362360053900545657503889151819883402690341823875143216843261035168575281915034753120792691448244025689744470880936000156831130412134064964858318561127607301134754567502570370858260957658083467762140437921857688842367237173293712182769085771705370785347273912931192799938945214504597763395797371210922193614124240302214848601866058243712240955088732879775433379875686605058151284457038548142640602429803456240469481703315358401504849740843132246920785983941689154730581779170246439604051245078948843879160920748976598743053624576570450095616164841078968862116404843155511947548656675995439952847912007765458243971878053465996749688395748359809563553536813825157782150335173893048834688682915229853421930675908086891447757087000368648064006884262216923486809094433871734721332178554220825867642169945690794402289612278160891128616160213179979845476930975874562279865921829316955411645477832754365119103645119584434518552999646785176651020606895474549733052206206013503091184391970907458119412373132059129225001748505741191174295084363460186777090116261452564492657237944627553471323128667601311736367764911413150625230673865976080951513942297085609519693923180972459590904185070663139129463565486351017097707283403882843502259844416927867882603840218092891898796870429615841719898369515303344794588348056841236458703225995153751170723697714892539339303604025142960244504379785926311914728806786775294848251425309534800017374058094133182430401391563227202074312787649722547303545207804276687033663930546617673125396804090209270255062630270361426329566332608464988980979210472468944612692652985120451771893373974969105575587640471594971413927291590139802400957085558410635938618448991284764210395678780338408483067827174562004652295499631382090932373740951463979642946975145359064578511987018277920216371244539344895262652770256419354188938338078909491624098017102336429679110899017302142315587687537183109589334799392005432915252765048974272019188023861588485729079592146794231800179007763048123598177527093037672800566489125187922278731451717940792176621676556423877532078411126764172184133599389372223846748152775775458120864376784978117234363931464351312166846866225250114187593111697777781093427005206933675898993395474275069908193233525113510013665501276212017357233259920001796239875226556028264912567967072349273169733768652428448726722581476103024034899421809524298629923237070402290036769899377279179298833999220229838215613100447081488909582102709003737408460757245574156579093739743783935617788090103295905086491100336313874311457525763665892352807435132628093699329192195305128969879435652844489504053165088554851645232899471267693568831058382796854431111239331914072875376432298554190391984639803247104617916129095233122602890605577714493859630304141896459241767719401551055864400291304943582367381673209815720103494564070252269398150823460423089435634410261762214020757591138478732173628391158350359898304620746220671729222401681404849176689846813391471013874002284932563450117982904494015147403984460543164388129058792909175555992897800642704921292913253628193956968716682468172928713385003927484907610071289983329454488158380033916139850931154178369529253479597530973061895378580500773932406688319072805217238964728177231458018513833845069869901798803346241134691809440274557652861740609532149285964260321997253562097974282587365739600542505227123481151072603030083435645457942666983652201132202953410709739807422265581765860239263497757783147114416615027168988135164831551299586845057484300925883977779090406401259848412176903941846811759222644263027598566733057807502920895579586168793331534870634692368527758140683687773649103962441511475989099406172040081124253710096692105057437984030661291852132036301844344570604817229386270768371022800145169228881200221952181731220861577091895865860525601336701300478254547269696139478783105286741670740325839587906284695179802589633733188975511587346846270997038715988387540614514524022965640756649097172033665895696147854244909739206919135594702008547910149642799004146746635060669921257827880394578415729641353240829314303054628690546291266464842590899380890039251417362999165657773426340957071094975487588466229945914977451926856331442867410040099853744366155262919662472976807681100685560160177781339544951498227110664321429673175100008656181433148856196630806119183918911900401432400969359175939624901364485294706310172533649200320961665306823504321673199608842302327269394536890607507752296014300631384308079398693288459650389467311901045691243659139351101325887725191050894067733800879794991362240653555817328439463824579328442103051066354857863725288409194203392713611772528731994316172942682834422501186515243454096654421515937548807293464191315463478746907098862109687457913466486166010575225043353202806204024114209244589171085388875072826249148736024919469608956445560134569633063618670330566007227044217700160887258897320790115424490128831954128193036163326566654469804962134626734836336039501096474970285309990999072288103710027364625987688027189930924374787975271204616384395652231456792304046635622143214673617487690973874466279821650247069111890423263485768307193750228685990235815249896435909067637116268045745185297893094522128989865698890628198880057593454553874898748751221316850347520351485409806169186679008818643371057154527392327889712978737780384928104866420090894879243101379292308949386858944866158238091347377686568963496895923751115447162658079613200370004671294382581288427065529846294606080386073202940956456785945565923319942044146168725534902514132359477143071722469580964012206208899956214842553632031666761909547179682943542177208810225699939286455684762298752235214658542498419497476061445413066977866926484495236684938587580591385399951057400179017732693862008982331681653559566200955594667373524038515367572923665517696230989638342073923873044848198419947410872639083982337824658358919966524856800217988037318510986385192303388366689976630332565659961406908258508588366323276789174169566044645560248561665693737043479816078087819131716893080631869137521646718716151517792357538121907063273295535485117857224381906583124320139639114869170674877004522475934213964419024562804661649313777105855187766202852524679763495957258581084056932457145794299723616015116894292872743502055126892740677323626029855096745687943088794033494906895675772877424810892337199709735379052496997980434042197741160647126815770621466011372844020558415017456239276388874167116431735985814951800099900702952306576406754895985125408894624254614443220736781632555437986766240776697913799750292760649484864131046531120005773588729585074374833941336611050663751052989256804294277105130858818838577009660235693781012935949580289804166244876370998533916922853184072906988812743265129106751347424322251080970098746886972475246001415974050372733678884051112217292598862491277392034550045067029828908772031752181473244054630098538324631934007975889623735156063331191436526827158467931992041425704698428493067307397240419816294390053932692786923283371763980256520332535815528152573903219571293311858470565218628278111428474699886234442282109766223133003854119997113109328060133758963207713215107400669285404474718577173403314929055893233883206358225786058069779085673110797778054712050862447904531281898689024676634424587085130644985047723533571756097537826900082866934777017291334429040794738314960851130690958593086610659217342170283250800925392768877069952343590169859251653131226695709251751966990664236745186139629250211341861661187106089121429227832197520227410453886954283928572192251491654034988405879082018893587679420345195931317977021785413797623504851962728324801688249825939651869478092347628912662931144789163930114623849988598669360116950257739718133915029758121251519907764119960121187404533335163830989309868187756614513909317996249818949227908645106007237966982900452736627914279606110213200377296680308269567728691347562847333878251369626346313481177100558941530848633154829342399573864460967450760642730345459197443078901656104886259746346221693389306667906430875035968073613709850357202149622725749274321559465219247200875003154587662013331658990440196331687543006169509520698529440888830891941171229966743398315876235011253550697143760352124762576840595337410487638441288795117958731847291504958700321524672236955805410913410738467659739584392501229881693368509854637394568419903070060983135476571822935105399159049371352266124409684627080028585992242962548583172210770325181564508573447904589154083343718999452217550359581330729333036755795995413400501977552191533669106000148689948491213668589951330485558596210106782639965143390506058160975839976000961004550743277552814288796988338053391532814459477883093880750327042820859401754290939836198165916150118786618468965488696329978721633305139019408110102598874342826356896380496872026903566871723345830811722588023830168005482820065620900135537530145778417447000971656507355126938040350013092230145931691627694422793384529323994524105432286449100864873973197583729554282726542081771563308659857712116520496133793476242306765763806670985669711235985522314465807904529294350727808644036050841330750143045342936235328289320514796815796071665519096492442452113898471425668455386462558428419139149468089683450680751963714015814229498041331525556830922781839238665435792421348850242549779155670186875854613617071292635373096732385486354534793889704317603400811069626486320717521792248132582863175861842647363155940453353435098246452596268967040509882602976828287034323218629448504229824502967022676133735743227765184016578718160346144194326365303602216491404495958936579372266717983724651843611904201445826241089685044841892343299274808275314977306804667420663387449951069869074854036585056363143833194242420598504528129641083795415527966867893690571922474758355672695322600089300517256243219539818858185581958395647307423190905635233059653172398332235985262187372194800429836235506570332373655083350552716451022894496098677931476544451088308661722466610657986762073829596063395515713009122936269518895166674933820913581827738526011166959709999463113258442730666249410543520103401888597616276145624775378008835424880919869649163044893030893878646360093590034952674862368285985704872815714024207045969345979333809511337271627968467638051839532674922835637264339269320693576857005770568658115474112439765833735204565180335022589023935939937741237461706923810009933932070677868772273470337536842083853757540161478097837450137893438655324208883173247868511174842848990346939304742542823881405531265078580582161823429400720002415239003687438963858385341177002290698986786270304343064227874324408626629791097501184950251510612838432947847027346290022392050139608878761484123798699148414994721352594963240167977030789527475991372401061398261428782547936810017257646477598599412901219189052201632314545129371129103045463156393078101427149856341952007382583805384413526740414821712697688783075270615610893625055222788661938596058340307070139695358082104554256966461721032581199576176418540847532354111066956890444889665926531420187828399289983623866421219982777343791847174758673340570035471165494768248064925044127992415970927672069458362193404194945590394658653154458683737465272386454784236525716678447488430863641022624172930417940465197044058163223284547957524204609330904181762585417609041513021104213946210873174621116554007248351488079981321759522573151503041574121743939104418508950237229732296629014530565566972337529034741128377131051516008535848262036708425024787708662710623102949903948784467286618551086106566317439487621958255195013346638259324533794873419426716200636553163571298871637919088702227745774887156321047313670418533470571350792710424535014996655225593470097226691599362703495644426908074992178601069428488107257289827886994981387444689232212899248792362620567160151235656863347192174507498833289912826125538288331660421695937627081256837102473318998220075101885271402481947745330445690593880565055192210579973251171612416313950032043701486964798565384299401181165387894133514830587427675435366831836225613266706617171919877607614195148735063390117085597787223772599261084705703945088408652277297910409308237728121181507826039149492804407431731928814104479096133252188183243105024159310619823792636204476147006513181913877049152855452657371778052733438744029898927341365730675040778634668290014781732721069989012856477840990487329952220755604430087695034732334507963173814350429548560228596725316791472555031517207421794357378173407526892090901300553271948192906839173730975735654423676718166811869661915818224073484035845259521668806666335107367679188613057715009532655908260017095536484551581446619775401772343624983561966248409755801699165820168630779320738819100896983795935574994569916257800852919588536489321369932440143109573127694052048264986333005741336084450365119863944585156947575300262985116576852578056410114336211855745809121638048265864349922990576043520770076747746522379765586644107737363964050922690069143752985836022236749637373043728906693149549777764503032372956290073846226758318430039964306135747554608807346469429184761271749632278452937390551580924530393831847730151978043088462960377678586428652460752760683679008766163387167982320735805062457343999908992693782274473800263644074131482426237823834848140978188402104036405872432892025875911474444717020851857972940149627048026258633560049345486285614568788087947679688485732187439629646220103991636601367207750573785210269277983282179303180194477388805409009987832473849015455595560289089606317552011781494230681988178029260927388281626236466025648299094006583956964386788145890266163019387975003986457684017659105960193511964222140910841274402563027478541612620164862894511395193836007074515111455322198270443357431525114970227012999178952113591711939950517671721106908642188143663677421743706617903170593397049216855935716302056801043626153446892768068941154883380243859065158778637129437098785858927996914229166271510435018520874215294465141074908951677430423116971177800779419405213820600198725999393204419207773614677147779875798646871445340993119244089869977092836560189615656576277890068642146814105209079206986471965190994901886616998499774732358127918488138971311295096170711107198273065760175892295536662762369315343940884089209921842465291515699364883437886415171760613666680819051189036755040617886033592804259713301167836081517741687645980192202249984979339809468983425478833105597423778346982696557386568689292399062683866631042984878360314476836832462626828428954465848592622555018224573325293023448817933250051114679902507590484797398947838595266172682793439141173223147506361268123028762374364886073238543995776304154070329429742170698195090872732317063764612273995341947284447155614292025617833334965536783657598583407339668603870508726607379134778481114298281021013273269979391978521294772377617972919735592788584321096906932210403841876469258558738101239008847206947740598918722165058168907673068224905451462624470416598606642612011809475850969492409260911288488972823176259885470959962756245936504208218854428025073008337708288176277966958153824167450798948522095481698854394721359591691986915477517452468764324160700421187234881324719489147691405683408142434118682381253742249255758455050573668505274589786095782054262674696047319663573796128855267137970117900461700269602130545713798367890181048288792775244388516600802441422806573925592677488166141914204200073310832961199430287831983054826319400952055459028007062487179051028360693997620601931179998368525309594127864335277560237513675382077672500824077115509701238512090653405403323689160279376444926499963178104188116835091312149356423393690690775438786802344342820530791811655645134162871395312170785783689307749281556788856033564365487518938376624517350969607219124598867371748633992518739737864704813683804972309853317206515446638991659286285624497085617062198673296210046869246207461827468492873015720407042795152359962267925843879815396946332101963774504594852269933976706353100978262973882894198019909566962159405395598318621789058506140021487942783350197482464836832144272113916422446132386922680762266728610370835948286906294386020877767939540995426994309734704287137041564192188489473710349998405706270789494475976605973989940323421898513502944247467617082963031095830811039600385515401686536770828812655673568969114298214569535919928976282910462886779585025045970762929458617330582347929432718351069806278844657083010141739312714753199798651771404671476541079709437578312156150842293103845679894794346110627230354439177228993285929795683575031713916562742641327754501047439609637563305513050278106197605249485518608555918686468187955687809553721586656471542250145545279420778884976397850476623210334106442739709439310225192701325219657315464664518875320202087598465920754817150015020676897304418874257477153848244637904604028525095887239349287888484575555184206993811232507983349617760803012254000639105128665493267205657379663953935509631366481328674046049377430402327476354683249894601753680547877600894970124670311849391375199398174973179357993552319422317527926534232103745171669253076216503071691709397245290450124229475951865322249990145777682592717392242056771529010666576331808002137299167261417239880732702267770754688562058744762471279555255945637734188490128033255386315546572499979995446823708445203264832586086730359742706923397639452198638123484485339175923548438913949726241471589802376733592795632344149065716016812681528908023757681911191960491779102381093589757745882453794273713652771655782827590478038179857025668210039717191931710230228627596567048702402140240913433067233182508909587480038854877932201192642621200936776348685630568763032363693629124114435673921386341022785868640268476172316065154204842309847681523623433030007061723684352524276372694766153571848386520931775463115176915931156891048184178278724568132407649858535776185816222919539191158046276104221162145418587590026212371826955116009706830962920631480621568409414179440077843275492661412780236851920012061852974708805506166073034027522373610989172315866415277908636737288417957081390588330674286280712637809346710481006905720289470654664224585599992698753387553527083899466245656324716608600583507721931151755930282863625685756015467249396305317937950204023572155399271694314041908260802452567719178296824494603533667165513379450789876259069209938669719207608887457947164103288135112581243846274555272056112595992524395736282653362878422616212153598301533495179474060084201607619503792048001160511475510709382406487265323816076607134843519890602022420888913360682158558363058513578238010293167291345866039300897655309148733389274397811409810014820678339230308681814458636187370988686031328183564499355771374145480188846696576575236327170797118141294519317322225390831149502782816232449318510171644164249473195340499650115908279258719801259326230453982237141223825397588749850541754029971173300909077015115094544720569296382787946798340084727537288920920124836269089010567316963443621544391928806882779805399486481706606556428154003880568579832395620758107339595536193362939186307932060949182626204384106608746169560062774636989594702263663776889462634254948222920907543219682586745595294160495542917198133375509906330415911590184060106507620723102980458786237614302450384905808704965151564722705798928890281110420819345903648914744811114464195760887967917180215585745878287725892114260003623251353171592704837651162094331682314509877442223322749471410500885090510260440129125966263725425661487761073672197633249639141817833677006008247596078632116865296496360282359717012679408618542686408654888988688073318730799807934982738129719599972186045246850897649955090963362121368258934616710475799611234605405879223977035228388567218466582619942023823265633668721818035783992578175787108354863189273467392731009494636080706347341096338537190696471658407760086634545465623517549377208943770890742532264905798383430125426065838609172507948056461367319536460117388287023303172168303036003434598062886970264612262589387469495030898064472285059596712715587775266229895402641435783184957438902161823568343836558926863759527359892733344226895979447633757935395220037612623268933788615438199896573914674584755378776562794174931868503638906828916273203249048300689060109998926702527492071617326789983647923928300951464512399013944401451391414360650281719649862239082875348604887252140835849748467416454080004514110719111547375589351656677599659021993198600484551634972719272500539824245043880765552403124920958472257859525178317647997828968145478518906424518251334625968121427935736335829211240107708608425212712930246784342703247696706881898275348456055775758466560094589631085639432934356747922158406632699236149498459412961901869750947136189011443579883253232528031128389084737241408839706351122071300420781989731538757271710376874506080898108114049549079012331557593029883611332466889742436633094591398629139648102642611203704815601390455091916954554390151429523300768877272780133842012522594844080648398598319403355931971841048811884811398610105593272316455230933196777931768362708618560895831135812670804389569352764553603159888879470943370561576686806625627116247324590279359462118977761146356974658526747994824517179476376522160090370641361989235066693596624084286288545412646725108849152640073937849668343804219298309283311089958247143293424768123327310497136887585974025905189365539571610052966897049656862538438754494841262461817824386677389456180803106414465206016468602425406727651085829506899618187131392404120719816927596757612124201021291443835261113233483140058517346815988450679185278731858449875546108124390214084196793896920347613711760658941592048934814710108191163820046617799183000220934062398233341993467551011827050651220726830062293220450186189106463638021771152247353922663763996900208417818252214518475270207929621658828371968889230841204713317659305240860590018561761581250499617739922303713354250261053012651837042812410202240478897114753743859836920377341596602771453129539399851147779122346320913892133705373982182767572961570263313773903414376092634927743839628223279095780897180922467186331788633825041814344010465153206113629517829482209803924409329800921966120051342836119994168168269858401731003680705183551582720935556093933314010271760156032627600067566147956054388798724551055617787508125087330460008222663931587937928699474944609455975290458922388892888938294480088682324520897783555143602152306631421608235429965124158257766522242593514352655608019120934610033028753265291825514875861954956109408065492119249665182632442290622712078980931121194208676981664413918532619227841998990499553033383900890601196138450161302461646846434208055420318995556475056813332881186646077758201690655860589576781244823292263938141728148306834213263076857184331882190682842846875113809794960139580911337168464948048702432218710289249945550545405290397797889804254792732545362167990824545252801152038081090695523285288725828686934882614613330823799417990382469097436710030265990744167437750261227896924103394129623523799224727709785380062135601576290707108460611142829271763388066812968248256603853153565267690613338513525900104846901417049968550828051746516548502313107934912080741531067692947730819294858545203731264717053868736113839974647014130467143643932808016421091624878840646924644985173152749221447965828626776664811387385464536566916555313196085889814862652207143722256157825326557447623830010462219229187639936924675038405769830723494893737505768950228313960496109285710341414655822011175604832123299359836945887422564705693706546112857735002334596694051046116930422166053771774510953516317754868934292521109656771438724125001888179451608783980463634932571007959399250782239350122376014849565506656245278944875049386696640259893908620375998024237562338280103114667500248881854431836158912889016361413989317757988221705484220834813535600099877357357503676754251140112669178615953826878712285647624774490345968878168374303904033222717101588206608987302117728566694655316439240893430059540757538151099294494270511619826369483800416826093704639391747198051212857853184125834476845145418246422329723552748714987432127799283892567227815154105503965938542450815990082687425352871605510298912764900949069168826061111209700102653347195945771332970378435214409424928929289452879816092737512269966783836104345102900785448017856540379667093427941055454190293769689560159187120009776338325940449932195512792422913360316783063453263487320693479342973455123176994837263369674224893392480249511417036019273741381140714824851424391727462885351847728325101955814864697990050792595959809069565829441582447104859435383577437032478536194535095186158059945049757160228409715584478534268211576961446312345645614581403786599989367241641347498295045749360346635796996138895088461330058461199341029228310832424722245306766110130179522640674120276301721626066119245113394171808951893780309502803202505933843527657197753279345615957915346069475966105422541715379105866046063233152473130469176725692903445089520898772803618091657105620572670315196841640795375739248430112546181846880036825610763539620792273444872507697999564571858748742393680054883076320333817830516802630995752254459758819396290543085706435238789360925554088075298618803190926717087126267781317603607693736284541465991501003314666304714820319338363500365508858721004581250934950321263696408599064965929613520243540980550950908654765151630780017873560785317472677858023788436354217099017163092752806009978655293694020792184922069640497173324117913539851048027921539450481575033308302963239075186553490119864751913612826147533885145611394717078905284966888180218358972616734039208677985202061858589134759999224810042684594669466040948720425065148764872492622994502212364198595419550473905455356166896810401982987397063595136292439990157653381392383115254805321993388370595478775641419809409484927532065908413109530562860371444751043614201501605832989675394471090099279073659200142247221652355960877553361047576791212560776395099473158346844104064594127223162853450266373878672478289869972915690217096813427463135242395821421962594177740646433203282314224704397114161713527993820033191289477201837957609091992763829098426552093812152049387588584200868401773946016050082772555086454280141883870040602234189394089000438680970857245635565986080947266872749454266022961397204548226083168413736936799831953652915691932358386243051194694497359250206082243940560617428910283426351845216783104059384330407252133199505993120531062265402484775006002192815819260295150371059838113866942558234599916625075969448677765308871574454793491038658726358188540962357268999564546660999471859180586894507250342690425320930160498076074355164394447435643756350572857253038902861014294706049957530403670485694792617264556622817830750964558388988762970088878199338439327413744585664517813153435434253953076000146182925748498548510859190450366870996459959974711922915805043344513727278117935172209891994210450185564154963264929290965844874737395563804190718431783130453702028026635318401340421573053359833352408428965723629830084056957142371120803701201582923306927128363612096050888503858727140156445419372871145153136664233416352707232001110993814854582475755331017985373586825379991270366551662952567208030109617681522122515016825506883424323766465893712474478004266761373446575077721693297666892034964682298518203591047404200771049286147818756183541737331497290431110101609754363881097958056520136102907681526044539887409286554392739215609363719541646440075157633266331653155508230778153908794818736605244197064977427929828085092795693091956855099867521820681117675616312952668174643188906970585208782249418027625369818266100107373928667750947008314798582385130393921586227082429002401128562651299207809381102757551626892460106167351341478411361542610317412892542253792182766093715519145938562891092317408094237302640919377625750609009048845492619396215656041207998521260832022885959590011232896843424864968183496615505015468672253062400344628065598850955629892268276654937369321778776617112779957398460153388354190778565907002330431289432169300473672912662430004063519413992242350820842585992280748927738519544138946824719387807068723975957118803137542870925801721375767310096173025462720660743391067010189841611389573163646440400539985285431934331390249124744804080147661982970718900424155982522586773507359454717603896499441934006516046077697774592039629666276092787893621154663545911476564149983406099900041417707643302973139675761130293366896059528196217392342483240280252678424898153687766170353177088411863351745926433638049545383086217917901281329330649817089957013160843744661594085103810858936845604466714191586341216515336198460985030694291315829983957977119813041255559537342746045802425143769815579691349284354143116821010346987516595898552192017887555598767606539310467520685407547890069997841143373927840325499402154510172992074051438790231559661862036736059973938529366747787248204793022686681067429834411140309564175874922230285671567047940297794157089811446662178926944943534011643386134785458527685651163744219996835878732136097956956539239655618567127033494485472846639167336479352708679916414933447880589487292974472908908254173536926472386046700295178617479885774025861807014729589475046251649847589073615420716703961585619134730211990396596080718228369032181726731311890839785916198148378204681651559160326460732347681265950479197836296905889252569855197738328072495724466767268552050160003083955214498996848276640347795001891693387269508589981858892340944893104316072056595436878369863363209985204070078622465411288931295684681757705044712234315105644795962191982456434018875780176769130607499884780123104856019389445124155714473376500777154573150196168525955316955064396140019126447283395159618012140271433310727345922645271553359511377331951859367909831266943434311615552328061394916060277928689819813291066287413254434121685937432129394061968423666951609805968769142448456653158992501840102660326209786317615948054048346140618317596903326404280704913313737342401285750052716411784272949122363074059155241783178653862569159815534999099305687399910432872174189292768662320272190843966442877802548874049305294873807158397993043536297268794088185734562623778999754593403188091524297171109088443601685236013464078346882685744177454823054249897987110980961255740523969129222785457417615159569500523674240025544141008971471035470537797838813733447109669438223385861766516331325411404459671734272389781729589483434316067220545232844171180925456086226204364116888233496247910424419449565538637645353207808285158296028754879241773701402380165896810759268926886118060219092043665412930909773800810550489334713072143521120993069409469033847816707585852360661947792146455272361324308478206816625470738500659352007604852281818826209787623058434930434546431712729226169780273491546239497398713205540657405519721603156588962112502613950779414842670383206696669112259634173717996446477777341925989933383591207801414422254458843670377555909620760317104109816161402996546715760581405289845697785871635789725722132747285843452491596073982307334446046150542837475072188423603608336300516347400518122956741844869893657589689471631424260363245661414785750954368032151297841412627325467388266571524579661238757175335379009182114007601255489234465808109886996358207072450090121206604216258587765391936154678768501185531457486216245302511155920685014698684424145352786135120507573829004560845992925667977380838740787262561455020873507884545740888697546651102019316032839686509271682267723336807681170149379775823631200323873888705570860104734635875168525172378792659332227421728268151868064838558671132307961499698143472836244854759070882755703068347079877857292127601427853385120237851909737650083149711515610650153631706454475127092958571675086789236541452818815283279384112902376600435646710542757794563650465026053183629234646455950800219621944386464324297473501028678390918897255260888143871588295715375356934315503648212825027827292123794446333972397900004910547483915018565284598495253261408071959075583137647504291731926233057787047610429115280590184370099626325529993471353331254049496194651739345294110716215419453405920272576135282003569335554583742221002970632701844845392659804100046975653809957528578827304019239454672013654470355022581323804969848382340458639831287551999575359515771154307365211863957357278818256993251233453942009523480445327154419996387455950172768172678060663762719089046777386953417752249277273285740086072261832485928676050169234718669612368790395576291783550931204142262173027602850892802310949264062928814859843644161892351908385067847413121332475827781294797606566589940210412661979112789968748580086913203225867218532164323508349814951337469269506277881742465255177392471874951739450312912898430533250809068433350511850287143182181358093759112636891029264160997143708537436316593464035081856422037426710334744848985519332088115861433341650349956863985644170651745863432243837587006927546721767346629124130824018885463865550443896241851364503103076073633927724477367070593761350023739998819458093540364278106806068843012645212182395364257082795121901128253825198934268675085865574858385667351065302554527429548662639471542507761817510854909073920245884510402110095749903185929832508142208544261715047776463762923736698024062424447229798761479390293275149115276852617066012317246558978894984211652901945858464984445518257704486288954081252729749074075860129390226574918601373199249179188563692827629527526301690280806467208110384784024564840364616908105731735071414186543959220321755602044943311157201921030928014476798238073214355931938141820867951403935181908801779495577562296877058601955070179481606464259882924287988254944861533068373611487364922146856905728748613394747098900660884866842047614499011938845483987565083228437291685459909876746777822323603153732724647428459578656638020091348656123599928384962885024702930191325632714572376833221997748971966032841393165792037792936310004973182067632358261376699956704095821073794721433691263408059984380476901959924344072434283419773115845355916291654046612403380798550072012231505447549087378310789930629081543415171187205170411581711124409190527821473729807195233485566853634761154839320077829786699014691427640693648557887733027084814351062942284584068723102112525394322228054029550307984871117997287904457293631629016451402032864904328103862546653625891162733441043176518522323466484830490193712464170859655781073906248097758040045406827011961543235326292201033912709082987042669471702914739759315926634510118077317217850648115554421685378537187796365400137403864405575506506345608762130101616313568105119437214787432977059353279362325296916829689688908950707148980952054099767029753514444104404224423277314912918868897920690819829433324476491862130617904529485210541371929854026167740078830788002719956606559627142237830862039566032380871013966675462467803885887889121371526538246593827565871686006349996373873913423970772623572707726886234897566776782819503753305027951112307314598617005912767492237004956494815468824809491809933868655103107026011001525933955649507501394739486292113980643590899578935787515464066071192556695140409564060002935178732582793121968677315376256199946039926605963043584593414188407652016829539875030480386639139132874735863465990154723602217399946958325221283302177056393373985336705145758168417111403197746538081744373576167580957582239310410364030663501112202539318354349604917993191942251722299109182643367627423528680081933312949993102790208002249574696935245890208964850231356060092805428538609931479666848525229183866468888291362698324524405059283829765107807789539338644959924546952597744013173192167064449780136314604076586315376203524057732051662284333306483162731381857892597489972374278953423569060625915436918921445519220563059662925337640117406675647160376067388768632754331017062586012031837473621301853964967148586470646298667322999841775761544649939460697205082905024597112615074452071356872209773261619302641457485042472800548312134342392348306701355513551146713556541253035939498625963386638619294122743398753167343145546782815133899561811070502380696625882235178139753373683359698060638051054092274131307147484553617924813166492409605565816353510013275191804692930972212660119382139707462468889484136864056088812111395312155008303694778344727326553077636601184097120747537998519755674984211049368911503642120259688779349218502146020867787818222485535967505345202233928955998561798331165456572501706788067877119813706016444064318193585750137677697325274087945767582768642132877096891696555458949132017588104954384757589518055056804006718877246148403409141037138044573015708336084382350167720109715298792571453134071400487889110966853941888823140023986124471519385204026353436572892157937249834388010096064102555940805638337403071783275705182352697076108951348941035608174191605048991437418304313853644037233621270451168722432749917809878220516626302603812460213309532142493240669546769151430035266528455618727347372769630514831804497610473545589819708627481074586908103210558462971535759217698840941004317829631306621804420026922144925026520534470672122299708225537708883599461975318542229626807574449051566069879491891843475835788198371381199883792812405055369772988477869714607768741289118622567186472523736600069146952692362170166104811758727702882472719957505124222340605403004608469675004466370785277260304440508416883024553481678724311524312137857792823400662297771433068519071725272617596630467046563027905246404995900895749134185730701842856223573998268867790531726731008134593408700009432570456226457266033032353853661908778912448428394025383638897241811601253360855174142392169119978800280897059850989346795250068956801365660249885487019985043899179733004459571457449516754889332929903908937974746622442678574691424606805165232547066570632709905286197580572041165612271005834803975985384814759228291692615768704977502418244702638525032448825279753235310496183043001113071539407524415170870242293380531082375969830877517978043162987002284771289572036127066934316897454897017317216366796285241609928509790907956811616821592395366545877763343147807916974517777925856602611176093602369697669493731961989018686755807308012886097099559191141001795628615159548762957861424623921137517037479023367519756188023823609734479117251481976049022687373424609315283173392853116347499764048221982461476294985048681549937481593132398790203182240435142651344345746041602266651693991622400416180484576195060793074115149891034679706739494682566131683614115988809202927681096088849102726842199161258582106326068642128731250437901511172237915248374196928836806045731895725065429022007485529362223791211366652533267375675458114135731381650849226684959445020377744803443401699525941725028862765293253505899260691227818696633727459609307745544901233676639512331141336462595818848851964303339925616159171494320126851546095171054576470117885866135554571461672950908781371104026744389733319741549009235687043078088217392408638876809823498802083759709025992845394339822015025559633228985974549679307696880482245137401926795196409445743601005182768120552186120312554294082297111063460678985148781450868594724529485159033347949665943430515848969121057413549715045163741710108201323800226507116354861438062844913832975603005166020902621362214732466237474472174315621244299994288709347578050245740320091296372954039940088527518737599968984917871669878052936807816631392963431439454545229310169290023036627239876044587561860634498325295529630871644609096325340858264380488624455091772740325678211306296303495624493943796376416961152056542062053933797954909192073488832571907652952469194766416929105081167232130203934871020869429662749059345805491122118272533572928163734851089657308138488509776127811789972729024613946849265630484189461896720676324515893668584388502311522498632313239734813651167274650387506282175945962331675530228055744935025113319381051020040238832141717858152290685189817612126303517077584556545538663673469951134812739732317385322663112434944853299567007887717142700160378678572570462504626616336883529810010036381824617720588483009868358342673755221900899174698994647413311055299593990773322214985266409981076415486589805421749836441186438798406685651587078918127527422052687766652440618327128410843068759142736180515378082467959171460989454919089111705973715119253117600536781018539779890728593090552535335338351962748252840249470967875370673980701149219878177998089105517513438115980544519353570177366015378960510607572571493733908772974202850986446364116292682930342271665141125570062752985462444928088220725686471586039794749485422511970459833161854008185248891148766858141603250006472697930105428546741714859826726049781051079838262543093526517099117295267165856218946927350934859640951162561630992706237045801185079571631215321262366901861396503569266840647644137068803753057222255141630262361775743291615988678770441383204000117245573385990816459686056692393832665521625677268376174682560103274209059129116390143119647025106791782731812608848275526772306394541642456491247945680127709285433236558680148283075785448901112142231245394539594321751848621604588892663785558282936537016439250106930280962258764173760872663717361861973927594755801099764815824264546770934356204421732287970059814779588442861234649916455632429675428126820041752047593724399566742333018629353843473081689783679216600217105841605646238839611479713835731716486915462906480340966385659058238281348893881157298021918875952289129183432299501291010359000344950549153575558005084346080946639294482990665937403329602843957559544989907035107568146769625118244034880326168677953322992493056476263395558487143589828166968227538493067781085908029229192654415416289165550524810393731816993471596556217156656784924284980521190960219269759129791625021857025595154956187899012596012056142535809790237017257856611596665427018619640280016884020083506572665786991357826433534629640075983414151118318611712670999452640012765125236742440541870242415671262636324981890354989826574687274472132812472864261196521092865085628941648811920105735853945638994938062656458108771345182547620020824206169610407866947051798967146949473486456695413961221260889070677955978873307071355578461994826146852623527973313700786182913784667320089103931831954667084459228138774117560856059020839305193778538962376535278483209358083136543793309815728548372851055221750497606827844863013693465113565191084058110012632946232570068474738617109638031824387417537440938414800402657794106950228323821958816581444106760497112725245616408259655274613813279445301954006214137069176812437975057630621512613837417098127512969469866792195908102129125010285749697581164083377193693697986197437757801665295711001950963879971250059212548466997470930188257776514506289826580235420926973370818061510105174736571549086871918942642309062269248147704349783009670894941994105570611346659549103950703084644951903759310255511279643386346971090866433233213415549472687054596458719647584696783132961819446355174404423797768368067802632975015296182770233399550982440648678374255301010720387877763825595114152196408817117396304657663661482518265874570621703018036468514349372491267678120862085292966061414375316274506061552479152638975283765175337452222490280946777331594783235908409644782522724741620162622765922825259812951263779273465208795710959927621864585600597653511642950129690787651525387909791802173964568827679406223120636492886098546489890633195459132746639673458586062441999707324058906250062453478000771042138215447654578485513231343095043201806675706910279116025621655526853551740939249430746580681308912442681527242189412083366796771994100469887462627435653684340438279304329349916044840804505209130670379599384332475765950473555569066389884289651288592422411816487981286582268899309823179464783641272943425590230339467068229403903750949776471337303672671781930217597375400075804722154195646829341192711992239159267463097373383265646397596016048070069058725666520271515829436901286468413459585593466360540513150151762692959151219625670669694517635036374898458863200898303390297059677596823239997480465104076637056202658234321157369550029027277616539674029361457350180752183482977083675622839194462144879839783288129724804063162956176420596779286724097439493050668151200266464165415598270727099498942003635302260011588686612701824807187716502196443517856463375202592650758278667123019791588180042619378333167844692301546995623052229105267758821623590770847018688544504521608465008495120304090823325218183517291165571547615514661723100854071134546392098745500841132954473363792099118627419460651410371559486197076793131402482508006292283192705448717670514308233019203560690063561569268339866723335286658363643272950281233538628043056700500470784018904077466410573690487104274456904916442648879501390670849900666652958097611532081686311687583260057706124614425431460717722840664253612598092345314930976546030753123721394317762138431244708427494487401089775860617743062383791188296752468319975794164661736160119134024444090184111983441941749439022768729159451407957456933628692686056385489538635222812442854885773905976978257514569853365429439207757080162879870801973148392574243544842401362357209066269501499619954800665603124703568553287530290644409680969102440828642088854831274771066990141621453314464105341442208131828439924652837583355325709156646893201355676130482897129900184571659262160532809052327205991760262227598454838643624169641699422664387867607092949068800539489333000859275583106507993935602850317030879293233824511818843484806083254741664382044584878792618724277883866904817192123355898577174912965188993800967559264156962645670171461356234645583693048795284999823681224136316258619154147584561429731050207292839980596338612983997867348838989440890838905164649585073069261693275978503285487746358486303071927520440722349029003470486915241061362372380993145310432321566164242017972271784560264248211549056562489206875791066157306754690410363157796287702138614629412838571130971911882286850639059807739510747523880056467200661381643727681418353844012175475442388847992493938786146464818435518755970936902424224280764308025984655526771229499532761028620338508935451070087768441833979867192196161377339534262392381977160643058051462766415982362296973847775581809112084405724288922764567539715952815972298783052045852866801061825571085202051076391114426608753436569577215459697469814460284084045204301050153966034119785233055945315381979175242743493136688889168060661336829101013832409798874415868507926641583867960331393294797621780321316595460050626810676912553724137244357869019787080196090461333928010924402183861578848560723858369786087531693698991395040019961390530460236652948991663646251007789346563982645647736220574532652610800982576087929758619636702214098843140071003982445400634696848703462186732879638347443631986383072527956405924626225982449524546928327591524606434041601641562646292602442945672484030643148941320459179432311897807261300252631862964559121633082626737556908027365979475127075695999990490781452974005413429980891705227757567170496602565435371927823987118940900003707107647164728686404415032203283518131783310723885450820003178402200325783763999405753353973694068599226257521180185497458549548815046462497284949208550422105499384245550720617283733411648366573886350201646007055048716491471050259377195632732879878744856879109918822332390565423911128296740229972602861840670220352721344145166257534138204771574843500541629342916845749724842590080522359464380647999622780649391108980487883937546828221241725149891236028709698295363590648804452696573642123881146831492462826058180327958527067588541855342487303480437091894342482497559418188121748985837590842548763986514913412514148008263460726604243772975429452649139575742869546724370428631450783477507591206885569155305621018876397814749807939010093381374158092988788699186439167344342934034985889275221309809202616886740927998621701167433170965914646960710726408618256143181534928386037220286035320440016552651562737935142281621282771648798366486578705517656085182412232719181921312290275399865888895775540787489137155377190617960747312304739765598080038464863727824439113031884365759702267491605349620165602537931845954815859669710608614370421036953218777839070991802651104935608378566290553731993829346747569893661668561706097396136655335659428478341258569521374080685496603855354659354406351316875864365471870732954103981638240415325014808920394641883970316410094395076840522505937743131315219207696534645466607711067176019248727092717876783025338410655129638757916943935887370717840409251617784719459202613523450190565835997013864834707007162568215000382742976970252482858416919890030130957581641201327005667852740576970825641023151274353494976124194947109978861605043105118092637076624178877842849850813872822695061304998803101074813970860756384045619772998720649415279075731910407673142455121450919522703505052562606192087921133341745541616248425308475512763396421102448398342117065121071229338850475803293406419850160288935747919113848990683730638275412399684645017548493770783394431096068442971302322319486828875164487907350954136062891080677250970680777942739868975797314653862435498993808978712229379894144133405974081094024628332378321174449220408200830191165283593504789214544743472106689423860964250328497135576462532289305235707653874318653374211175018350274756480893913085702533078802069050612263258100170702306084746435589733651170860764111379430309038857690346506135411700968679125118728633953845307638264378879683178475237408451936055957276421078031394203550105011244696312995387830166448061173693768496819349333217139593092889803437110817385130408947124831385588064521975375058756566254413796472417956144488154648672260171148658977117490045166860394123123331152114198120774198878965962118840208708870493554777203894938766326296514275312340372809232985567847242671110435864987402659095585119281962719093270763806012816873645065196657806912190971962702318479664780203943225806509661559872911542923019653726070969661949004123487606656904299615135080498996725623723015843328301983517899694681072183166640580814838388651573014369439006425804244055466613834378960927616117715936416234276825716077983392700484925448620005436541703078127931926303261085866681121335236145257716011875931386629191840866062099425166443699588649354517168585422389214647201072926864296640593936221083166694795541924574341190028551423564574541084261228045918108480785688279269343730798024843096964238850060262276951709925716119461065365117479225867421900234076469233750798294877937992315987273942260296976753329915561268102715915588294469521527897505765350142913756590021873009522298115821525189895763659097422142824934501721380019830234610569543249551609516963041419123164790448600227961952061267572859602759099990373950611629855120031682942801570535269394525989661754722705691225645919500270560828039159174238506492103587688507265590017754042986447067513224840651871482684096094826860694554567987963821226715415389416251464713100399868555774729328464315491470485364624879283439726949042857916999036561592776006062017927747304470753608225811795381640245731948521430054903371451465195107702047569830176694645487187518273962498018878621225737138694256190896206466600896043730832079865183949750517841494081744606451822803611430026099250505180339968225339099449802669138001728421143500928023751993782532588178855722656891382304920805018513358582935637931149782844376771608764608035446197183035162401107911911325324741871578920158219413375511794718291619109163945089507244681203551390412779101003598125640772852934137713070065123831949200544535668535541738177616413391464692091784552982892406163861002570920320937605390651510004573396039596973334824366377421014573281618117320798973594052871908647357841510453867514657618852087327052820442848774875425696048345531554829621183000685172474400589567837435277445737031950585033800708727309512802295914681586064321133627507328660613522894919997510982622415905089797468310141466664581467049647386186191318934814674735910396311417219482205858397948285777753996035255758439121852648883318993436403231998298443661224165899614021152189610864190206136182851519613469388888001487815985018875013444989010585186531048057343569687336845526469426026292164340043851792248803566179641538990462846536920800429958886782601107017803067261851799906889907446401767495802259320490081076436142685463097455722790913951317882486695178008352876762278009130729481508744406050863167714740314850851145582214585161575261577569385936297891405843664157448811240190654491206262725348482681495351868839818883617587032382295495662074432262441826863440378998956087466288015620769095629382518451182025900837370813708166348979442229865574628015334519973227455073373462272733577771578355322972632052012558500575721864459846387663901739801635547710708044244201936935864463075272496297245417089008966026467297589550604735229895361592138860974835621112028416006099229716301173123049855672622465864897576475339168626819221340325046154893728805863670617202410650945289516142427393780214321557760001755827893644231683388382473239790083440790351289702209364679906099719400068168739348497168498577538601429732902247070841013761463046969252169788173695710007664489734667445169080955396020968640997793011121416603377333640769590297231551878585750287063462926558569431614123671915347926142771124645367077523906907378072161452472510849396733815617563652331823863985856858215243034544951831500957268424062661447209142359677510692474934280551280181742838422440977039162152873872106908782163296538161643553450065456382833750874599340580782096710037741091358299171471155436672252582261957369826233611603438153536449794834275882762341762392030557715080894574810216427718530093755152247875805778742464583219383166442570270042687687038568310758800026664747528913100362779314990488956435673859603703674740617803045218109803516504291716645667421212125762965660627952750919291526984339788573112602745494392368267013505847458707393567886531234044915863960361564098047962133079122938924605946231804102987039256613455641495752389072152612616985932375751475156861598440557572375325780094552304600080057828414027650475442756131809266561443201133293219837508499793815423293020933771348173343209742990841466650259124638904960356059069728269425090487565487451133569121784630295129757775270864197164454718581273172262856570515925107540568341793718893258779365149978751626166993700128452349200723005269900173405839246871951546551465612165572293513029895846903411027457731255788068580354101114538136241647167122103291824765629912939324911394823208484172753816903617377177662501659042150512165807475589268995582726775034093051830815633812758599880664112750103346158010635011758506648198351589581205188872841687450845772036953863411114303113685895906642418807620983538536657472690702152641613631909640344010427128935453566868767948412973746847096899766641014285297246112085386748333908912601650529558775397454806369297940885885185624790104533378709664479452676985719883632098209320423704821063013848105079427914499047509013384840533096317219481913818516353902911884316025805462868705853452304269817297542080010883629339321030610050640174862308866774555610669024869512920807401295896726748451166715367302148784882462149741223583127115734670215620079222757642195009356461411226217495187634461368028336829709223825572088154036435746832531471025212048839381925742760791497299909350891583560831003465289098526772763121791015437293183538820348337415711540497769174711768227038454961762505206117462654481008542896729042545259035452395264423032342591348365998518802728556363116151053027377933737640298178854342020129804876415488916676699976083824509852344225459563459991856437363632498353220945186576390942344298944361266387919626760992557904703758373956808233300354062819856455624763344945484373600351133444642320990275771130623860747891874952376360357544176945450037368971603042954677939523944540158281628293040228213661770190983263180779267401826291410810957922165684875929519406532329125507440445333404712603405249111325504994359439488612028553633752498311277973541305531839962438038138511521871706222662024225784651083359709878402148882588455426113863222788914042642108984664075645614536738089281967453390632879435270137652508320190123757313707141330791612961031029775487138213750303219756351989111388441507224513467635365869716514371897124193125301028758394881558258882744246506178208733273412544400822963310043454019791535875950968852678365285013819880168273169952353762235290500580027271563614435439068560677151409454886836436585070344291780908961355004611770970628568160693210166579593940366870723978242418694071344680814192178046399879907569275069619679968568525955489180779840858727132724788904159176908112957208677877370546820739226941898257870658340733407019066752324210788828757274412238718308600339000008933162733778525830148019700639005929735608808868903860998863417315777206075910313980944322195835047380861922033554395418891780978227188865599361264055955345011952682854813386488682870599633276543165297287799940131085156498670695848976932461451841752454164987904722755795874851946997023093000131031788459974856216933588291784418191993241210989919354426828452329692260216288943362837024575882875383926109695426912680665060402909714612876970502388429321163046362945912558390991427863301950014847867893012122736862985379281461370286766967753802694709628876179718163773166164662466984480248134702680059033984534913735458726478447971045831884231259089986464842358165848681315448982786881119111298528813832112106249358764424736278440567434819539493368345620469616863442674679106004794084004064524647155455412012192699220485188154456646042231665888278961374883416638666541259582861238948021674145324115165105040333434096722458160804371998529917771805589119497306466088784692171285417191701406648677847847950028461446458889479191281059940643001806952764501665291444108560017741413931674266371249421982446183717017114924501135843786550632431446611176807346111292661710935767393861019172762970769119212133879391814613637241680594639191271997391150535401588887735148765387505036459486785700455471219983877889521953317795829071382980298651083159029495713298904788537595144187906068267834838548526968260879755446531050284606693803239270952526066719325104084495707398292505285940078038004167813870595017427325171999372396746936517970875126506006525656172694954397048556525596182237632099978558641961988810022214995795590440150009110834802914257074956324604523571548821703639144677758317063495174316661954720366491881164718292183858657817223321149846135328246579522958286071875548690597785189202284490970632955050721034815003331106367838969028922103874943613448260275304738948233602699740583135943236399994951688555002187073747898071176166584351765281396974481511061076096950561594103576393197131130620991760724265889756511556559289492275323691859214305675285841543459022544070821265590752984666076309890813870048356651026367991295159273231762839667098419672136022482637057706526689498323475499491366965064134599537555321059451559040081156075150620684646207867717722752224687309827063374750552702122776297732985542130377088484476811331100725870894769302664523645657615522460068537439326021194794604253884655711168402342785808667240578120080863369469911971462069870432470479230906134982739258850847077711860621328452961807653544038496380613519818923171850925434902746410604464211369479772907459953841168422626785231147433876783061304891907891913068139215699754404365539337153439508097738744524148910732531843218605964821452327886918676589270860450946826849662002722299335290829427475012201232728352519838639177228563835610624150975786382809098807757009413987895674184430762224682252815308001526145151209054214076423904798638316252693630115078398761013692754308401468950125368957107083441653615394492863185773056085426362584185789808630773945979668293132571585885455988006695589160841362256217927378847519090824352078216898273184020192921707873217787249850821627579717438889390917445696079189656152426756192528732330889743995947012915896684763918099538613518045671268843402967909451387556643769102114383803442968757659995164083834289010856448494220753976393917886629185597756776107507864470823042040002264556590932607282861843704556615353102064582699950720970665524320731936807470785482192803088911611798223693130502152739582515615768079783298295760232484401508248038174167812161122858828601910122874894821560590641723438116832023463080733062632812728857501700078322736220596730961313620227307148914936230218716747327588267610530578298230942348894275117849793187441124377043244178642956204109177747910356397800445032853253568677585876630777602913359628723518371028951472223213324561263444405851570696164796128921336953492717418125307463119391143689419598428310128067504700228652908354702064104627472256010445750774198962286752569369475583241522471979186457870879151686032483844200590117899408433182470777658767843950279736198061396366218803430609814378792533831249136670163353048754323580620289801038042645174480217612833331363847254604388163243524224125994859124464489681768152309910761071455575033679689715821873617760798616976714201768641793919983397591090068040340421227226908024741529994947220851534926158804608596385278814414404160664842240592127578146622925073666591720315445076795340568444523230140722869447514446528073496409280487415561525591066421039133350246571197205269682205354703570994501370596815137797211594972267900143518724377494196285315502923847039791807125470348697025907261892445350355366319577302482839889329805997765066385784248350417472885953030707784346248264523526906645709496770799525731699197795881781652706522650553631416088655092674739287218084293942232438854441086316674819764154248731836063984755894971194748670923199443792099565543895372864958914302699622566811094380133216942978468481065985549925820608504994365995849516535458762044982250693577166304337330758630329765732817872957152139390134170729458163660371814289016004818404837353672232764510218799829141555983394540449631154848566622406238790890938836052963768251442531410736448313718822921827357714985726512353812806151214271960096460224545910811188472455272611396836475606076064708579444660625395526341073301779705858167048577515111091808711612291160476109770988325111437256661501346738859569753283736538531264639365118823353769633271195399593217240290348335949380776568429926865741024401533099229520826129996074900179339859083394339516760028507132525449798092613330565912024773558168102924506261914350124613820692349172546217122494572541418151752619713745916390032128603567430450213274692874562402361878368230427551500780622570559158144057167004900377744029470302184144662336690071071014342878757485031287882155817943512105592976135245939549988478022320406694097265329943547313926345437853376400286748767002195572942481570159567452237932463107614920029273797750563497946640163414468635582319384376379680139204668620167307394375282419263737910888743222488506303481992036883363786248175694570027810578050892056412272278276861849673697945936781589288911774785613194206939764802187597731770401526222934012734403041201041459019849637533623312048418910093777242731237798473683984191354442342276334104240576974881694136882862981590410926547067008607439445688975367309260236376636136323713986920658285798510851767398506804162801195557916547961414582702091978515283945539438963563827152156033458973063572882704206997259381313870019547155639555850506321251754064937636519743903417060996104630116932559048061371142752162081743868687064305199993653744596741227597135757039200511901307580031173948914301534063463600736835690479810090759510765652656344856056025484552756331896216097193719455681886468236972033548958198810413836401684332910856437018037214419134855755752947958902875186839299508642089419766422102976695521764892774289795330554076148875107313700597528304802047412071725653914328776046918061375493933739905356881146288340934296365175760416516577488033154775351357283641802937697053794054478221258334684854995820323275174007425458766976255043938054045782357404489359696219933121021677163261011883591257371716694934799885642694342679829945909046098496720502237463057564880281532953228576928301553076304085775686018144992720695338935783571230995348226744815351932411418690330305625361964444221883171910734659456124318757146472253955464291834177632730542921231813302576411267998899541566986869384770586264868599117040202730056186837811141876959896261538010652720825027891234002305704446316169536827506103369916658429136438310993840211498120946916804933805864191259052487929515906744132844786731834818972223449840279151918106795748922829382903266539369895635338221695640893914083161635012861322763326999624900054152215093811152516024855594360061447289683266979706922489168040313467645677517468469059067128741521048084335489218301642708599182189001750132069448733919695126564108356538496097978290873744130069674266268614856428949539414103276397412715088586453562825140746777664720481032122912708157959182350978833804392717329945096134070242425640177726163717332171238390025871999323567099555139596040054229297143279063740709056092754305842707258732740581112870029151647535075224528160475807202232753552017933680725830136784102992551190691645206156893823142358597369365476085557505371629772517029122178482655468756802928163189707273071708766963535959863577252536522942070235753452026167594944102922723931463422707125420192803151238747779687332054191964315628742677034198974698100353021360409467197379697535993706145015745475069053010000250094579030077127136136296364398412126134347793052736400003448497587356976700335359036981480583427422445370395927175154086274325685771515512720665099398905050057688197410846011091876758045716185815771273898167905456963236552058048875817088052301726455027866214827340035502713002797480917946730585672229049318861234059433887333213587510947337815685997422987521003694550788554590952848173698721870527230193376446514201265129565859723180761387076019615442272255010400751540244118458633277097542970762186714242956083298569164291182307155540102383605010407514071503073769883579365017503995229723173431221704762651102287978742341580271170245348558815890501209943816813124180393525345727617945478985433957606416015320365329576175346340302252235405234433265770884200076250961741425589486733804912958725731422611571411815783766898456184022683009365206124744555742014079678800945147236094757486620632751586050907077662773944188997901611325249450840913686808152261379417410869465160344862834581716708468566934003665476445862451607712292587332429263746769926221299159119517873001994073314312027917222260565713601439493083950876662804627878551979331576198358185350385415624832681325287448708720927578492073852283101124347215051292727329736331856833668452287367790119159355230315204602680398259193995262708749450274961328915562410213538600710629566991362937315480119674819231035666225302796565578553014442195390884650914893616492628886190572111040972323541073643238565554180773401671610141619962388043960767615266285878039135632683470119464309693429279289556962644823557627132681240924392557552411769050787139197254499452259546801627773128332209079044284383505133778398832834908068379481151754211885515188376476670379465517123513462092291861303005381945161499945179925607342941627322067066154335390088713034588943663990994785419114727862319888193729526631187347753686400499007861137085654397744169771389003496243844264372447969335678569739357651379240023579547008909773740179582605979097793912225573679530030365168905528932848444985005498782558788907687358804647525208647078536063129127379763090723115744290052621740301390114503187702180855312389289466278995053583616868683968382613485994417182867490297192820156423166509934170850682052705186471293086639330588392167116881832271120631649668359261715089117748080305894709442940294179358120821841947714597837304786196008611590768877126730291715509963712750614166180119614946061158010168919586344721831730396586165204275934609100726513456880992215610780534345371956115517308813029207276868709665600929464728995932662270507160944846991313376917698224235353828987166090767161726292570282972787368197454491969843678920143144727640351053523994115018901225192399297881845235558420515441347837977189115970282668488449119539577995487697793760102207714998456349292082068038768713891290818954432112704534449950626925368665441225392514375928178265641308435840034501347939127258927438954473743976441655645912026699399144222592709135816274575721672715965462201288017794581495033889552945286349942934985168944021049925216608968860110352795290796278920213373310738172926977493311058627833537125569090676560646647299259576654035418214901806904203027246708497077054631060859824608982098678658412490435130546273978329385907941245636955440098949546762212747521518326433218950121564067007170002303325463521762781124781828791526581105199611747123900817277984360706355507821926472444277773528351545344034210017568982224885886161153856834716980840183664771007757377162206943856664399740353488749378721959286457803951271633555759501986705551774928845989580201102371630407967730618193067195100444195378190844182784182147170971638994598937854033792063371703495277358106500989104978893468077090993687137481857630427945102758323770050256290168065867364997169576314198087802562637445522943848039571241755176368610255564709007893663741702593666512247229077988154019778841255109607865749867219103739505049779180520561692190862527504899425542459748634695730471454151741179691407862905947480941613588758421434623127056858357770957863085788499628836635354882060667588173943495721692172665854293045144299615817587181408425503293480136044470211216983690520763946572721137101424394610665389754519543911788052786501459959764216044886986091420470798855471268415537412072432455931357227216140617899096329739314457688970143502616429412848217913217151680109425099243282128711802794126166400518300662674777414113083524355868258023451772104995966720944353780977808808876699112207513200154632328197318329787719855101365266404089702389287255555592989891383301332452003901520033959747363485472070778022917837829039243165453827575899155905591449992800479502434965243903891781261358707893519685430880938422644347986238134228266989574045161471741836117828874282466537190230959014842553241572907800185456550568906456588491683281784798558706163944324202726133477060772948284311955480953981828847150717001839499996465773934419524629862314739213657182570167119485306163224881578276563942525038325202281656294378488706588360714926324378453037291514833711238181012527622954597577267704535852251984062538497378638353826373432443014286004574347164464479032022576294759062089763683397776889258345298616981941647507363805109165715161243717305671909304426908865252445496230451531559986115598996368099071196494856783705405432111320816391633966479928654367457026003148249943821034219236678467077744556502245410967298110757807650914037541676812312118075458211735676184908258561569445904029585853019225903990539913431935436811091400723219011561564609497838322844084743103292339816157205928625437851806990154302316455360468476687465905836973705023530340397775152687067037667552979059173947527207904481293468113618945831270536048246368368013152825337215520057642746281396610619080342483389785476515538782574488582522145648610974672245485826768747450420128975481220920830620019061944721891445709882454211619234508339541699555620346588483376620913110961350929469216000464339828653022189985435065702438152175640155483424647852166341753568807009499077941582140059313610842789124860004510794913876894240892564667402235004043244359389542177825861997540382863697818771025390186194594825947158379634157927999985890750017604361295984067154269214457896993252930820003960345811753320523336463569588198793406088105518201961976765039751208719710951177725609454069258974459588786442598689430273028513372749024418446683232784365254220905864430650338671911865048349230051287909691075406715867986594604857311201638802088815349600166486152901060434413164242781069559125467560094005825413823931321508857314665093881930115462858249457669195467046504532397387546624001484992628405263441138202493163316379003466083591650617633698322701463644876859987413911045720453131316684199939840667717168404842811997478142333648508414307424535934732921401457486635642892992713568326364205086867242594242979102379982462128091228596415084425711443532443319357664762232023472030001755312460349007869691295239176491134745894440527944983782063343878273967228928047235269368488271638788003397542803189724858034221102997793961779642501449967526400623636271218346834738995117618325294857191052309952139648352675672499292693015758034087280702559518216189533371440435820624292330202107912851399396841230910842075685003542618970630967336202846222778793415838104606502439216581417547610593946062631735344170752399263983724029415222032839274374925994684645564225110986855254621701956352786791633446162604476150924913524961184378330470490222294260215202907870194046268794382758547105446713863386527838983878618997005988058055909686356504589888298089402676776552862183320291491629319113940699869030242888872239147713208337080377617096968453568064422009605101639253351097227992952198251102250341122449658566779299235344512122313463618149713529108343464176088264349707433041539619963610171496606016980971631419789951103368249385859125322334746014042860005682622487279127895428349591784336302858293455620792269370907010076675965886818247462974064624212453653827960285494408606959566475748948111289198052779847325439698783766950569599459644342663351473346628568547375393777135221133639965729714856602528318664413281838470273787545265847806146966936890150478197950469744194529910933980012479548701467608108856506233624074277965913134800845412614902099066763528681609788885009568592716049494552212873070966448039758804207084450126202003244066433298297922825126702564494847920565013930775927584710444487509676811490251178663684334805993599872436237373589084774047085894664027798823274996243764172167131574690888913081656102104911024403167779562802404904110461698785209366982856723986222727604035156821318879393831762018577390065138011298505592458180992283068344556222154616662090596199738967158610463772510286027686558937076585697219862342129744808747274965715452473486729345153496392235541422034935744903937458185182002073986409871982602465577510719773267642343040887667427677221316981512388099657485528913654322036362733338922346442709341754184083636503560756744966462557764096444530261410255302376452479889092405639060740194531290105779409180634606673376829105344950213047624456867097924773703482831464101422816513989397011399261198297572297102644298733452009403882817048824861026056288198382138954463785750059430046072327455511684684441712032998579179371896452952617315908894837033770373049386884080789033219888899994846622858613366806711350047690978345748783707088836158612264679534135944853213684214032635129580579502466695858479297171005360687434486364347080130400062570497700806334072328595509473042584115482668005022171458613995931719454199736432621942107508397375647326473514680633732094622460563268255566998381099553551894741769967350371000373527519108299672725042036993121708566409820932198490360093806073322932345230312240904357572415081489341062662774431208142981019300836616837401216462947890509013048413598644279432562750475600740966467679075968488704321277983654208434951435518557324278464854717188506074949415381411773637436928610904559828725489105395599130382105100634017210606656173737773113500247950353916968924860021567726354299889323766479305880805468097890939232656347964637803684994101956709668842378982269512567158636581826076925600840998567371058635375473926934171310038426023420599826887183540128545102689953108318701622141806979753774325261504368058499734269257043667317720413528845318123986250816021426082535616375133451763871584063045582780234496555606586259027465801623379626206813720672663013828286876356294147629373842487433217383954372404777786645372657515840913184194055407571049233035069049871841122836985263747781501841302255286707205921275873531386749329159536691185496852222705545493438507914945000837786683633488201566146176208904016514308347892863358344054242732198490094572046300558895279859799977582130243144218537021604664951537603319545678783793705914203701274509488519376144925028149784365685435687743240558721563061419440137673322728242418887668894946010759067374374621129245923781296836305054115342054546147797908594488972674852662342464023594622214703424607702508367993294545957485034395090984013865164821260373225792927501385328551557158085826937495923659044051764403294021729169443023690379147107355814019253960339369832009306241957936406047199869005254066560698374326067316993909282378495312187142455330988478143693452892943519812474198114572524266294361729332401539410324658564921762799131259043671633241860539889939714093949335305110966350868649368916174124064778753427657942564084994193610531675576549601080825845879002681065183496368868530499606308553614555196933398030981964482669916033044783243675640715479046082851411060017728092051893610436847128489021648332188599451584996611613085244268185139214160299141198627584441370457931228860874881579211686215276907149929265207905960677379138459193499763626126467830756830228453191700840526802269366946250076934423904490395989365328811832156915073650944297687488303715066831635335448109862914036137713158654126993016411790993308207825007514315644746684809939601112037430544065442663743741840994380443048407592490750279374513380283823285134872046262845511317449128965013699187666807488982143228244723502451155756137441799980895738903732601723036861556306640924691981527264782172952472690979667933933930548805929379808371890032274667596260554756071613262050332009723131632696218502445961462745990505329210289109405396270257458178739096390522750052038996445039272488724556944709641062469039182012050161867386084537721703638142241191852655923679338223762066006909265568083785339301813918559371178980395980076793771043601381503996604605190692859476329823336887490184650365503905959124917896582632075202426211426368447244375245338363387891143640929232762170883192808211873003203070487164021146317013306785623095131549873200249265127817742636123723147416608704376356431472188666701540422725472413153837810572138814202389416428684075500099020977156380578849933551255327214819359139113544110265284907211708039534944309716840246281482363141509480355062203634154494897998558988361084594235272215001689218246151015738505403564512369258546019640070969142787797613063099187964866704502808811857486080810008256084284705386088927980965255510430228686374235285419087330228280122775839762807962349464800591303072859005476113749637486940728983867710932833791101475412711323556192499360927715699526160068560989520913172153295531790837326045764757854825781570751894650945236355854860463927258317633808494296234586423875586066598598993322226862933722089025994900537378167096131939206071760154542735883075917500167838785319259183759476830529041259756985163506902393388412045351763169823483274744733320990873570965995570964308733461026471050319721150216546762219066320045184811557263295445428135779245476488320611764361820825855651012362885288218422409490463548656646879267838092204820986634687036576035948741444382218490283312951835173821069318446746660693940758779953831116155309011057859221258247254955832020017125040836052683594905642425942264363318369612271238753773047743662132947034342288510016390415549715056462415007829412355429132168996928981304426690424669768103115569579599936660682983347104600468075082036191826414128503951209047801677535940111324058566493055723179702848595805745343262543829704336647649045849498115808397744698972139172500525363418034566254900172752020708260013610001010689528504992085185367223439320962989844023971422912597186549004212444994887400844285695676896639141706286619322263643163619996058152355560709045422063385926388705274707410852616481075772076870429027737806417187581506521907833915686590558039395346572323153109148891004605241699278664018778635656046317888775872559266598266642474690498471924850131776625198041023802664149040002631015558699181483151730601656234047182477630354755579515369228067490697081160324062044367710407483740095765567884017705977100763038121822172439641438484623830925313160790062692674533417991497651362487882468883476054028382676008612966200372894413336533776399268628937930379262786918492781867683347516558275944739484471504956926508455610944239096432930204438167184288048589191274422444756654183645509029057702863495281365653872720007873344398451096678799417505305142156915412717472614832757367520030419427873981995059079826922751036870564441427977327188997032391598119413651826556129646132109475340524076532308202697538959087263809594918957258419782977981650481534231737422103624312036309415013629254424930365030691661810593160199978676839221859607305984278606764985698336517962492439830891176230394339131176001864292661294163114968655902853389451072549645327122873147878893669261667611641916558307844085783613435902308133993207675042430085912911822819757433741844784368956820709920504100068570335284925406949098370862542190322162565382894209535416725180875107298616817637343603504358985155157308611682318004029471633876634679477641602868818618978929054036071470346397570404431201788354200054275126167980605983594007386050711471332968407712239303483555676648041375114145561959948359134736765742202793948753176898677819753208493313835696389254206920876196493866598020562478199692814748910480001405002267232938962563892082359689376627038157451580699381441073060942806761401356930813261794799810681284833423925886826535493822397582285327248331109959395978922834034098146658890200030498159648777607856131036680836551159123023059489744553397897336481885120180858712088858302758606873485227578676167911286186197318022956754479160951902226438109473082976805538681184928360114543261451003613439773971837693958034634764785442756259729901847263065992113156604542618125354794142232761407339678726368701341480823918194711027898595310013640514471304673359684991684124323316330332522780885183242102999520351047704266228546601895749105908857230997128328548385920386100924745576514474832769055397243083043982293851447696752517226958439795186768305663586247127852873224886080931202246877110149015277188665820236006725148440268616482268882536832643556762635929008221205478106676982210267900301442792338794872386054204582127508882522033602799271238324254144395676451151062964701169411836842847389199418262670104302159563589515005455497459671130197896176774360739725539049483559180286325204232661503641442483431646359714737827619136511432966456401030050286649589630277605644099420828906130704882639218468878608282859062857807877648959508481724291339393209800593107749955492924529286399048857114473612830065467548402460246689328991111560228596129662832474502046779219363091990184347888047239283930041339344572557935114947071753241397377399237084338009014923136544350615592786811913133717273946279490042949329937683079906222253139686754474372482487681102394184522613205750143831831715845260522112125473358379689172354268895870071595730212016844606981483411261195535736840522078927612350766632836534590833754049199383229252851285172785794308212141616564001105698212904411622361076614329918147140501501279765829255133316456185496613727755803504968588780606732599082928814044400362381576148084986076833630310395766078723107894735493518968996672466518319269924023555295463121937384479781447355017542965645155192800969890498954060506591307773306452597649505318269638099538747554620443229817787787416386324664383850752393756098706645933020892354242302316007565287060943602333955211059527004990400145865370767735682842620926520386331996135297000896297959890813186622994928730697001507052335973204564997810516417566035529000997163941562418657245374121298867456445017057301689118454337782688475377427509342920347699709720981052137213186994329018362507229411173097221797780578925717171601793000675943280893258681786182306943075481888805890839159435780827593582444297509446611111305159609593977626310340300666488774512043000989031690143814630962793660645162707345877481874294143620117407466086269688826616678229949052427440805560242298428429554925797016626608523701070736745494368681789850130946551019053822109200202752643680339060575194351448811008846975358893341398143497619503740238551518126622369900293719043811969605241954482001462033907084017977986586059683762808829971181086480855193459042841456431727778914413677387110976694211410989921269242021475754834711621782418045915247319829162444081189002250078810460820814323447755321308535726072208771310799039607557474736928260030209080115382704922917483391053410358864150550995664612853263194460645502632213589352553456880348899240429488140572031048875361068861286627042864139244600658660175889528813746276298985474023462696052169703730867059236467658858500156078954134648445272745692223879726777288736057202340987934154671779666710167253650251022220710631964447057358798007385896137344870781030709962635018626100160771811331783231864998312895723201622111812238770124136981372673603285197423926656566914433636044065749840972289209815644774387675306621557685010150461722343737750250482039617412431108983733995302774785794475983704086305473569941250109535257720166424380212157602935071146141794765968099864873962659190606861185789618861887030279611493060542651711870080296255249201987649330728872400296409332639727867013829004986036732562660513943762350306866640604495207173810658193250352597066140032382621990882949447542911282340309287571720036858665792396248995113927136459920261239992761121054931312214614183376735765119834149944082099716796652559566731607449993092266427923889988085148274822206128801054536633062055545110261162067055435724802753227443874654376872840157622649284654257248944921308984314896875432881879598645432454181667229056638928252077495635165678698398772517124912975012093786365629929470129344665089133577115553452144359848514187641781965794751476229853622887883755478538254938006814173831318780188318303116532124632404638059386685612400823806911230573740746211408391389775959880056538691658110707155487072261144916707393755223374983869421382786728455039382777828710776756858813039497644441877362927385862460803241755550684442936204730402856659072598947782493421029002478544396606526183810535279374095867763417327422294876267141287149462560152416977699998200113563938841055000875796737619097466953395912930409614417377725427612245870041468840169744152796638357186767953470595505927598174194619420987501512449637126283449497981917971110041921108939009190403269118869040090638501598849570254013641000199575317871861805414887277617334455752239297906022148347929508318125807675077946794567287757208620943573599504966918844687253154917656753640926562340817425180295299257033426647532614963982116787692975868559295813989967236742951163693339455993384075360966579760683266202157600225644120484067658170080488858830176254109497596135592927323276182508691740109560980946012528754482392124521247630313993686624895991267835959241936145062561709700800595829223429594969307424121521870989830802176688997736550039275185036058561840690031329556363274104477480164998750062210766719757466072639115646302961618105343482148002819416729673679146892174811007288154712449338129970140169652756864849143570779361825806653110103543272480410420049688244632491380759025657526089965359431746320008101357488427328381881410850418566172111462780189853404934434395074675189137003267821189750335772466184918534360058508227300680634799703271062819681655138247191204866157096636249670289443957718846381120976461850478050366922640415914856222743823445932767645005388271858809274307569704324221731911936055210260723948275642811884873502155449859933887650215838091966653278091957862349149955841666103673037852368282342829499579585065227827478810401662561029400062525669037055199663823464728876167098065289492005140834586455944031116092771903272004024908991545100451717246690310928108252475753613067281463268295317894766569579129939436116038520363699615364563312635517566213957894871189864089741997869273558430021713646291395145646005742121898117499198899668227377288410601654468882218719974563336729747505807191052870193861608874755901282896014183859176634156686394540501254801940164530841492752959084900446894888535233338902853028763563040702136890461039706710120805831655561370413235557259045565682026602528171510565269316871528702744426433734959942469406904041787008445552540713458742700785817967747565564719178022225298710348471404395281668998681367322338412075130231364890651115979364404486895178791423980961693909153704560732130233566487337682058347018305906434533798030892960775012215384615791796017320118214881365235588596316386881404495941582294981733519052774113942122255500112088182441534555991112314840997653540340802019715550719733571256670544571030801823008563422799641974248612456742530914353645118622210483224636116007964483567064765217564310273463674613839054187029571269179904576277419717325220538480018079528890453488231590560847430425705167013254286860841335367189074657667507572560613525210825109420767534131456689370015785518198504719936967958169427405394591008454863272348428593786319723166314937755269833478667555394861629921002670034236239601061598374371630871197720245792563654790861336431081117538926108817198469388296486461738354294713978584905324513809280395169805963352694768770235962848066429747550371297495783397839599163404561599504610994373464854128894001334971920072461655539365331400796049640476086173964314176248012779349807032108335501355320905897714539715912519785102092999160348778023742152270070634075738530267731886022040681249752333542161282652017833694778653289855871580849639243083554641819171421384976384380530612941287338509910457285468506299403031872993613521817816720954378770243399447433259887439006514557317482023892050511139373830732909998220351703030415032899009035252965502661100189892553233400534299135359712238618831530758897298794426387587296456539617060738331101315531763611474013854675943681558448801224356575177032150371319923265798006534856929699933333690349632175830959433824797389180973495471784328326185410601231106495135229900578915734549582963082470495959418533926869541969455611315254717967730754804118516952751839843708944789040286246097181515196253983807581439575855670072324039135598011279241309354388534005880506914803740709285812356794130565684830486716107931946028631639393442347054047608759268961102329944096668215931735100511053610104835952832189859941632758680619167162341239196810774290881210865368656991554143705512209560965274769883701841099601472864264215304736770310493970234692001078001855292708410355463023049772105424791967462873662087264202326194132082650821853545680055420528982720555368953595454187449397185864736811141927684465057215084022384193496886476357220208150738246766664179482367840569009309181133669147737169389344824314948324298884645733166973026199291191457982595914938304040585876647930146618748833456472704968270695868477307513494299805938284805082308733088280193746049548399366957926862646666603975036323725682328471700401925653128324569597037265032143267245409075404842759023182473789008282427493967820461539808450639274771053367035346424282572071000215694577662802611226150967543127039141368690722217268871644761846193887612609149970080096561624453351864068650249192118464444078887180268431093654400469197890994931115790770900818194825122305543421279255462427402027664781753749271028395021098799337041882371179312599804882823741047533199444437611270383138859119062423179594408443146972476366050175327251831813342275207711879035581361134443293867837260057524803897429093476558309955109054165715822928000111189668223900498316248604456360965506859149535698197216570936753307175820156469789925677610439836569167401006425470553796463701090992738915777563253090685462967858131395824994054952186488006247750444868042656397279866237450861208919258632860427428547662926378674857340396236516477953757021501305917373994121702901681267921400843801366830529803441424647149507493615919932998990839465839336934557192133755216916941084231497453510046488551202911801617763208819185764339971573312214894884536821248247277606079619012702468695803187893722193647849464371225423593295445532797949483203004149061905933356153103909787980118458857568194283569908808621601122081551152815624753724449264638310116287367217977736677954105614858852216114892245276840372004539463127142539744100824358694755146853457665825564883041435472448337072199714172487805973677097592405354054653887450415469787342275089030107721759836554297259999818580079007123063077024765414899782404662643861942987504892033362909151107010570519388048619937220421590965434648471663346661516571598870883614004095051488603087402247054524068749770208002242643535433867864999784170708460907378628586394146436041621998073592809368765448601960534391872945463257542641069684096670500697717627015382971060313708178129610498271657706622058638523041869440585966377757153026355756690283505278602623938279905217475615341744293224321201969890235388293736826323810245217068041964432094910692505588605264042718484615194327330073216414330150648594518777510691227330486946017494211369506569198764377818131335391430540318320847339761146863581114216231379312171187168570905900012392675049020164176011194520566914048967870105551182550378458898774615389046448651187610628033341143855637288418966794402006293862968431918413382159264385271898486909940317539117565416542121718949109307460255416071688915263912401259211690788424246469409207416797253584040991702426991120520048990225524660006894815231162622349095029230342076769736573906196274247443093365157580619530685686414010063817047798813968270107448041005973812702116387534172997350279408941632217481797879868299967450938691435418565823323863321104495270437145225849654715276441365313547593945554883061765201428696995125084654434683010591115299015666402047571594578982635876326057055732214654805748433624920951408916400856201783465250236116165783688174759711503064846982889472005123994990687213064151316364686864500862866044820084271074503797887483815420774069932163619847564147879690877876278116772022362950602513238571096554544997788685430972523912525603380364009044515489023430015037545555434299056613129440206779470184386768844542746866884811291216991866353026538667858390193683215791106999176656466734953576297757763146467957366455898216581866472199372081386568351865159912977745622888460661852827618494929204265277015352019405617673991520638166533998388572183828625631391398472337412598977385272294947452930647603168814984224426016175194410505549708434844856378030330796194436425140587744557731582881751480041252223192808708933489342232183167191655339545433809977949669137440240669205873288904855231995556296477147927335287332651807579867774447825913601568620186462172442702918353717220894414270866651378509287091327498904687544039972849592948549691721796047427297243212171894613858337609635793073050431615749375142188274624885426661684984944034620077442477387225603647474433704059369673200175520087307498031688017796062002637761247915278607253399941484085697467931859175223545349097545557985727314884501598878032216186175172321409970861542468563951637582619147198287747389809685512498173387089153391321169719826826501294488571716747291516557472758342266973155093164865132429439849946622947716601613250398665539628769479195400482909477708680085586106559518448808765100852559815544971945651094773081095263520948408634396332300029875773946381539619270541918017777649985806153714117409085438645403085889653269962358486948395152230557106885973243437077591113349113370600601609220765796284216573027659597047805780536504583666047779960471908079112224402783571321008299473640934069069683530974818539959169394878425586140959682572656061560549165717072200433904831681099040541715212116914507440091589768501230366705125751668262905535729600753516916298880261100900611113571735380836374733830695904725665673362926259241738218769141463848966381475528013897187317779643410180400257961798686496074287784539241454007359552823589063085361059857762123128414931549408109855894707356692869672575379896784470692701854146683960032722213621839414236696076110122434462240098908483254614983400550451641814832122914776269805575020229277919329721609644680497847285034102117485299340900179697840784419731528748868979775460922311308246587345631202762106966244665146855768792596265235144640697408234279075278594013157506514212791906614739980371805763904282308221362469080290395288715554358044563006193688119192680242955605175761210823375958358380695860844587021507483579967481643809242531791421368894100015867869851570562454293662435256092242776090041878596053479862435275398534650480532293735642819322359831120320994619904548278317590834554269954391696874292039801568015206924456072884340342118514860900769021830237699725754694335370773587887363917137853688061834812618328895654694162667125777975558174054385502078213782055522996775441215266793417926012254910287193032231222935927847160194826242130774689349552381806448386828246278556929273424380154178054289916443724791858299490092717059146745086471456311175100389466929754700664283516229724642887757203573525558638616319443294087218337288090316033024751569325474304594746233110911314468963403876513241077912720919576297911145814171880039050644575990616905834682147710257656487800856584364818829149377688710845388070417339279125134625660226420590738862702502393283481355722959251222434287143279053446381368383712359170936200582209566110671856417446022197886141792084697072157065684283119512415912224430460692785599011474983490402632283050382321360901605948996917971502067764000503588621392839848346274083617947499627115677670739932415125382270534282440117912003575178896301957807168010425302758534414132697478365811270567898136127376981643983822496823504634331605921677879356987818590033095661652714779133350645515142556338985353053094890141986182434281038723775690162184490059890899404626154188056351902488024429925824051838167842040585564374863701030755295560844017625463544785620138013549512124362731941315217161997003807931211703475449385884211222053168034085786144679144902737152223457631587047083492951153035334195066370046902716339773591692536368874028397440141834587959475261887759996116178204065686385523785135798144020370303988737338754338776821793346165715603505126097859732556193577332017199089474793302351014101346017859725700652271078763686691027622040811156176771667967343839465701151723304570709143030057504942167196653464108408569742680827307287361965896802776643801297656019801032156918017851810844248185517047460609127947182500811172427664948160045895222346426749918602297169241986048224420671256161189650323370975929894861812678625257475706214075709044327746295722287240583480504093535402560445086961103771499247181530728753156519469513227195663121769214071754094717995225026354411615637676478808642591984350070374049298784305492811524368148238613251754941775639547115686585741577563661403945700537238246757378062420845284349240187316920040014251564884152549387039495406540550769636356589624598187694552633933547169283689588591486215864738748152676972443565129856017940047603443554970049726797362385508613352960649617513753307079459014068781520912467438398796701454153841904381811880102378386135341018465125979751140826258926600405553473483772957389173111880333145000659274504102401213178368039664806193186790297433698042238939957732666595034026392614485621571060767841126334861505048419342267196005594761246638163115015268599349522911895675623768261308633435190681120830063567075228451154221620968463616567639139116709755395946161414463370865186193671956587601345864219035425319217480971019600815217951789045410354514797751613414258955802237494661780874767486731674617167805497105953013455131579868557326247121602137572094900779273264852937522833804074613754663557318794932297973574840791252204121287947852370515290185041204376719322422218088207231405179502343273694581828402773123376624576087363566504010198583844404375620880079851068915489554622334906689357800543387449288189216535547152797672525588563174718337536064886769246791647931121692676943460279841036079857111288394311894015362489139146052938688375103429708236725654664626657532484463319952470597758635603311019679750164406755041151615549992064443750537500546562823675089599144105192107868390845895836110172645300930838167011958882927369850443592773960115485009706774480298460337992211008837974082409019881182903775845070045091194729794631779005333084592277250252571591688775089836883124753714740609880874657037294511273724966911963351217148634504742372545128593706045907487621036673001903758762126700482263820411400544826854241563988454988269118591079103392299890158210957242643065262678322190643708366856899303077543666176619292679700135974779065862349413213428440024945496031447504881938548460806942148934768374264539079507305711792626152682863087122172203112657198429893606765913185712233621138411185386153606583284467879234340172940304797926504540386459995099102481186501227767159366210029156785520064879908001236757388952901384897502590324939602302320660032140856808492715026926017048806017923135365401363153973524646180224849264481533848251566919644303080058997515594982668897627083140753227581818588706634261356066325724508533137191110801722681039869795703395763797051100270173001281745106234227797946491218090320370748670883336069396043313787197108751745956787935942531101501226717215249250281853971165824143396161694083759268474489872576887409417911190744671423528964205427813039040904000403378261017137073387059164887808149086820247444723805253583123659281680903683376765231493873845388578780607915701785296509139657379777087876737661137114656378482844508175865350742050675180798221789078232980489278315695715138469212373848010261307398246798114326405477469331328336106936100933889155755363883165890245789972010436149286550578960777082055200256957001690490027210941792201542443562386969538135540150633678589776319806138941151469380992635976448893686248772580728355296515755211323832581808672365924068414356076561082146039308645926980602984811110914059330180656433731300008988084703335760889786374775339276792341516071523693204743165367677179843245034611393089629177138256472897636407488866577197775314653754112019184550907690128978025185537142704546913913524400808021336554795369363332809122541605909804063921664205783935276652439592147110813034545875218331174839168585491285224759533259312679029834200345969720450953147047223116400581164011869444683774959727577931304460141159307065171187455124802124099137724911442374212175281232940341014141460492311822666831365644919071665603899832870103920283901651302953625365329560243591205008139607832030768072266970165949481715841697819795180899771546763227569718628319966138939805260499733048194879697557665607497115158846882220612471050787609216277696053161639875666227676675064689862891471856490884325811832076610739559017610100484461410054645358434564997946240750893321104001639810124285478629439969151971086237070531618601211587744970387161115330061090563117147938263181115164726917409398616775693793144208088337384009422519633839988724396399143095220367213324430043379274950192701328772724953782673538669977921882923279039871330890509345750622356854262907156099818640811378414951895737505289098744492564325073999253489296211635076482614730681241377281006253499861367524941355498420644501508240457606391294633705226510515796679701853858083389556054841800036648423307276715847972712313162227176898274880976646177579058222569686686406120883972833665989148641035070347888987822734664112522920821841164018357604084225048959275707265526239357095776407640142395125163189487504795008759610862466666146477457834328500431504231232986369457213842696269654050971446514682557880806617735430533048780905819559799327812219773049791484756742741955014635186345426235591664819588259910217278789849651182251018716972407308069342114509787820889304745631727096504955701319376716580812517187271180111211149511924416897535650221820068853493468321847628930971049704698357231519858757786803211323877404167060692104299174746830817948276284423587828041757942957631085197091555864435662100179795682705247391331174148095252002649928556575390485066876596470891282528251554549417331714885353465438246908329196845880676019798811170080262239963202269749247197495883890592084266495460811699581386900888427321803878338631471672559505077422536310388725575991288053351306444425845193509993299410154352054227702676312877899887387891361602522722554932221505624748294892221419083589914357010240572364377932497718867254994178272616034130972868875286306030770909495156912430786054219121128377765356066476101070169435497438026635812582125347463326993830565596662315848015252843915921406815251277497133977863416238784745366957602901570277255552895347817374974177257919109156293664012810177288121229032036705726563398869829840630650247929819809232451114889929430589094370904289426560562322332153442269782283487340810493764503637394535641440682785569636796982635114141312574721702803912745178166894899541848090131976656778691600328568826628670714790961117634677020150086391167494706456085100372229730092116971371406486117613323917238037892135845837635562096112221755758602199166559331846462682782194644481564100901271262450881652730330915710034566834194268773112659270520374298533398039727793428923860298929828377983190364960953909219211156098149866755430721208622643361882547394104346122605797177323910960887608569046676648779100725872027677515577075470299894928230474771321194274467291670556603947152601862928145878978979801321159691369573372710965473624546221491666829309837248191988175747688121504418592120992250535954362064858502184965936692133802535173221785525395394343332370558056047519882166870578225507505501919921810559443540108977706681575736767078932788511924224255941493271427083974812236566470877652177387903987092077199533904453460180423696077204936781690518670745707392630305145268473790116749490657790047454899383739674233752898926833637664666820139905978097158351226321272023284530558429245525258988043919804846139335586080130849597036772326369143748060366324523467962402115598390017247267638546432687037395694916872876144903717576188192621188514544802601240837408264843540579040118585299299377737579093533391163139795322431383989668918896217502437190480757242923458278474092547243936407635704395955715682158565608451214075918583678437475290349820251026752291460752961431160611350359384627220583407038312044053071577945607823582378540009774217504788760070642677272116277239978989940451885918031374511975723807177447145130975374871792442517099540740138710833603912715584402671358068896842852100236451730743798064848157454052787762453810753953385548016105943903857891197640062387831943208296952225173875672283774741625438070675548673055282124519133887808218355804634429103729321873560837224532290801429502932908119659309423713742692231843920913218532633929372012569013843431277063079227343247078353062604892443912596363341684891173310303999090886679045647740709727326338761236777501683292328857739139993322161149756745149416650040852992496038500230826409209043491783944370958264890860607992853352526185863566882809332494407095596446918399016130126731376858402788842603317359511456412231489972179724993849502559716893494155327782425994146252216909986362168053376940544072352650894199418214801556626061792252882489929485950836794876593157543531788472342682563571616725175691416499847837877480725608828965343758298656696448244651236009074625102986452719693237865218442975286063521987415912266088464099521782882142106259659079313146980565134641206896006210987224882512488097745613007340827391023672958325681530884119445493432868259430456258833507205258360170238017442912385221003035716359786983163425074942369491044703301047637910419130455178359344513192906643128858220096405747055280746235040751021031216333710071709349435664375227609883493485091164070501359044639805712932286941255883730653783309848440569685372038608794984924304052253101351207264924654209825687468750728298086614637598874524164279552803723588058247567218845977821346343941695558733705027547317936514102167512984886290273109429514480946024722949546680981244901473392275943200852126323793782213868087115863593449815072732664651242891709354402302852531736563957144935748042268643772256554142311154024008229791478235828473749560030657768401850607687699095007630138730197157397685900655036414751297537362003302048918090118887408494932032298466732378746896913493678675089836414413185557538042138868381977494170189530544735877660198730934720016146837915412538434908339213240553340921520513242290547958246457776114739621447679727842591877640104114632388772401947986319225267253390818497879260972169761391707422567199308128019028733114808922635548267988924357895225198003665560148890648256474005562470297621994496205956041111472312282617079502527079651823039138326333673487811598949526260054498777215106007006842856133084562244701527907547899093672876367111952866149226107262047038248789214264559056863258567897211914348970737635191286151711493093828657615657061736190510984362483573273462972102271280713747051924893930932841505718147849654996189502518697821609545640672133783801751254173022834184925597459933210446666076700767465905809047663661496482087233916350202321494696854161969054526350709504656593797943087743154414049983791061231448754775864718687157465484912162737815800879679465447253546634932923337081649197790200090501914669275217149540326545950589910275099920175577162937507824516497775126721555396055067849852490327739057238977783278813191680160496879534238560160405473273521617614380533440264538283070296878403190471509840308189419288011601057681447837738098946442344213267485352418234438644175340822023544382063040818366953799990446205637883447194833632071147679874739664479118808618467430208656615821688852115925913322617300740283709335935505745276117552938063917261706982615093958125741483222485503314280895629621083180777411557100850276809727625771081380218219333215573945928103627484382874018096297357879308360195572651199832328493281742882630307067258533081360927629724588615898959767672874155331263478177416372458855773449879072037932022456089011178810922341939800091904769982117546174092881104430259431352246112123274043322154713332475728989629052871943545656032810800087115107127506546976425212087558356525904604424397435601751422815455587476371361712319048476993688677960096560124513371481228278169846269248351770016341598447358044014747839533185838519745482205068336904698263225084728503584780080378507318959989143017185797712982090789908786376245437900539247498105292855143794626027599462691847490135174080308388675544653892716433256499460506084473169335053242269192638681894014547153716562847445246175366229693081742518462127811467442978906600456819913410337788888174650021545044147724753469340811697134477477791963076818138301788158016753489031078113328865833349791611563439319086989944529431573123687725924611571597238291828255925643738685869634066020315755452073211967693474518543290799513831168656967030103868999616032464297501185455970529677188547554305033433923101991419980138958248759784989836339605856106434816284955962963910788842383886859792377910331212289217183586932591447120373634703348543135016486826097623011443666310345581240404315793394162535735785233338738608288615416614430005266807203162516671935679369332483060626531345475479220013132525325511799808731746489227624993110598329998443015755345252605101078107335662577184346624937772236158979319541721566235037859748022955452956710452320783458962419054569200660427151905354592529528566582380430169765025337492413689410126102827611162594585397086583586129519348619463432566191355292044074299491016536659789840444932659558196630357020360400997713259256867711421975695429786846905383328498870330890775222860171155233830137659223817239844412620298121855478517636206822122168545279643540255958595622838295376057935371849209483142553352200568275705735597403443674342122271118978466376860468203556580088363401964738919525770189204112864280613528818951105384453523090037023765906811611999069018029794882587119169917471114075979168274234569489843958111351462271872607737127583975030510496910317600436079202567303586000201394308722565020015827228953388357984261221836740767882096314599106612707929707400022373411594559290394900556617476876228030144925113729269508077555649868847737341948695908065725177238274922324518091136435413842745101485787021137192686847295349700568124351071523106571705097685416931197458434232908887132149156408172783794233862065504712704973153499239808802665059033153673767217811199859239494473090385812882882900372500833982920042968454805883631230039982411087332587169629838173075571599970411855256381779371673034279384772894515695847612298081233614242005331335103403223866670141434895717194047244459742191468817667851311792267035496462575612585671830269858438817969083739620265206008500914559443108553075827264116974841444008140998868174690713499458451092765278154644501452346146524722004557236399755406595333630775977571106207853145232715679923021283040220735343732995699839879810733258508119516036487888709800498071764712507857516312423498000825151517313349713141724890245491024899479935637497844166080558793657651252022206589211235903927805093640183404087253741951534943612286259913841162499173791962607968495938906087515054752112211330402157332261045615616308073789076143917582878841672792789671401945480220011122623936649121440005577278467195630458831371799814663592313015705931542372142649731222637562139924455243375875217390118533643296448584290881426862999151111779372215164544486334590998920678936919950218857378536018505874411265816363100472519248190926320593294481560735430111981577472229172503902953019467692038032699112168271414786689753514992172077683763901920688089752967248202215428049115562584270966887332340303170379406809610653300543253084946199111799847466707538491037850214329341896015785826836379249564120625382227962335092262963189896356162862607593698051209560151447993941967110903773121496884894469607807965671505850464940048974863289305056803427070405644726814360772580398947482760485059527255111356916808415779027319942622451282322694107533634472191142180169648899569762765626509572908675295464074648256729586098977235923436254851687520141911677819986435127993912334901791313992235044942898484542901681678490029839810155878447126020960043579059105024898089836568699176675506043314879841640911857843798380907884123335040936744186852988484644891057031180970558975872272424156570984048042400464949331924492677387928332274473306413516902891413073935583030831342536695370185981132877230590523577474006666175176548585991020265457897858545945401873063830496521878641980562287735219268699000468732655131789584506286580158601968464875899499686185436440268985527397347230428466110613301166594618547205745917369926720660678783852741227288344101701782820163591256903150759991697321195971562874813979715085805874281012950366559390235238948733477136670825570538864377630303358731263288300643958354955400204172832130348972641253050296347735900734237427040863972557922996298954491327480476056339204305535565383297310471503510967890332133607388930225633655106917530936676505043994097022486210425913280271270686515858915305161835129966121943722098090704735933107128895148130016651880089841494890601655456485877271614116805604562373303753252949343112008811954855147008368798465855940438993363993957298245176181169293401786363786390009224201154041522462208226501784411729311414911825226428386209767062592183951863116504923755482466440477489820202232192829706813259172322265171913314171935786917547108483802188557137785518555398073959421373172200354147415412110426983930894360426690168644334222478257009643963803862928366975074480354106553880161069951435471050132036586857045403433552621398155427027659771063266196378401653521596238121099462201517385020059498235403029858126880459576326427015723501771947479794308041795984931759340768704589133154119967437272706993847995884871335525907892113600071207472864689579974087819548639868445356726212975016264897587517687393730849676582907752649046646108611872507633423860491698776090425574273872165124338204048330879123943657171706935488820833136512730664657112252605070963829831418310815706879416915692909814540887039542333875484592751643708464920210224635448087789707675329081935876944071795155484493216995606796317727521460211832804878888954434042068954715190847130379741977540412194182247611410723467637196203069604755589026141564549728234451211220180606730687606182396148646455474102411480927889397863654506252909694733429343835250125978352362167520174164467730408672629658153818457148868424511371398062135024669178945710639542989372945706985269990083891774353379057727708807553178737409465550185003317919672367309812470756010451880043940892334614415026265314648650234348555237006536695747138148663401581628163936631857584658983260560509698731388732661425373672766220791519476860214333832602562837174317436476028630011427050577352585970302834828050486409725654585229863827522909166194511102325867166726132868064860018864754703050391448016956987365189712966926890815131494654968179853139092411660352421231076579145019779777166478894788641471451868754821642660562299538465730539599505136202949143057717306561757483279831446277396283250861743795383566255881437442206647729738482459640310971665417541762090547258293280128753288859313442370708919346884545716991552113580278291662721288455961160995997759677960933682570257546530569462061931137063373622996375338079818178532962970050122147701711301651036847824445344664500929590597081362646671503542866503293827341252344302602266920637988456797696027858603595944051395425650719800070175688856772772702699423573877324569517004140417108789796601315686308240266691127534323150456435311366423622201364943370655650491058939828483064578207146916945022265762381142309346224592146104829660641390826587491975678901896767628947110116833047683916551426540063832324066562526683221855711638330497344712122053229703761097299859283524469038296771899407703529287695743499763950473265783074047727256764490610028862563672853203210971043697824046433826789882211396316932613851618280620415182180256110284525871500958132745016338367817787210265081092545512535464307084860778954047234823313908617040401400265520256258204860838258479225036097692180507902721424051764208640315900802773121486227039382407147197338269996017540486651535189026054792340683821246439002085508383419462279625724637548756090027873185967919329072160087535386113481971614654728765112467585374583727586111752023792218028562773690235792101649537834714358415266045023028408871660757153520748419332265529163763532415800656775435961915371559658007213609342653456903714955193762239849179579257345985568174797475858126867612264285332423518464989523229620736091816278808420241486378769250121940480400162494610413505005011207051415842431517149369239616031450532335548679180266219858579706401860695612049176141095922023631225709770902248009177985597052762801550466368399510337875299797510635079271789292403414930342002650160499137231915207755945176594570598014480289206734756644282418151176344464712991872294943938140252647462740928179115654209808188954506471638872775437506146158989855042392584993884916879634231584453322071468762908781603450515335668235963994524955970999326548556342631240926002003949957235616415336510858685333682528963350660395734877096366232258812462220935718104431267777090137492739425560474404703970299653578479629005334784675663583595483289741498334182272013478349568716613500120301665646521754560510630491159026426591870053863432612404193409962986394565415620943250890394968764381385417508000922806329534629960304490484189859957525253903401522944833339474842199444818012033116695589668476636474877823262578530877545668732316162604214095017879232128440207080368467685490029882353621405231411983302176923841568225213575819151506940239262226771371684920953469532997258365006697230197677656842049562204624100481225612306603320993224931776148526641648644143766147773053355599547004626685933217123384955715217496481211479465855135347125919959832016465844707517244675338082898502708317288764127007228443070600222053967103186765136457959859601815558308700379847328716721391087677725791978106826999815525911038085440153499125080875377280869930638128012394070680839456813608251106266721396852545392850437566418572925693825633687634376007595860507737409008431027241040942129398362046519431978365962098675668582040142905807713582093295896751598673451435121171480535434456106176028144971652631099318876164801883121306452376354093170238171299590481962880860021043351162814535370284920849464199732465661545042270197230234491421112463857739559702101683510826877619522752808016369853603835497543649576894164766380733404718685542053211917835191004219905239659507091689051906067812749323102511049235761770653310541330864804041174362322099230148258802867087033537997489218274747028803116378012003394143293157260751791456029854854304245634102048906307370664191780981838462171988018973671929048496549306333530028413345161020279774158752097579040329052533748026220631544136344230849195616329751130720056307453900253107914028007701046116464839162734623233864067377698564722995647919888355159936918979839343621385341433269080640238089517377171271171910189505457765891853448128604506330787174735232297171326635589351675542841752578235029552789366846521171899666574784109718794829724982891410973880360037495337843935417935848531226110920452813430640297893080679882957901953164804293359242703199900350005195104613340903441355625237426508050475691151495818402956848191344203873862046273566141164738589890716539675101631088677894957964948681225179318235950283592769058549268955442351075745845762264827420014713541548990485069107446929702454866991505446759063198295512295314860255695113975945808505606176801330199250355357597382376373830202136466439253687672561554213843116567869577819690294226194425799819225633463648901696987336856396991264285434574528877773274121537813133503534397953410300685471781303511179529911770006272286320064859669897414445739864171877202954998685322143904516890613778504025159920720327135670362427196556905803310740303514245280952992729004134705362129030393246414494038536837798614824520657492045949701262738783735886778152385384399469284136460155213845780515021240885561093856606197188480144452103329874008036830375334565240082623170786649250054825120145607361075923889693685413033748812268689148592710471026901504207756223829669918883578402947894013401042601431011736722755640875820180216916231022365125189048238147047835849267067105903338494660067452672232203426652816187222027593136158015380068138448447464763761889369707375772652395885382343815861586274365129632418327140521858855784416995953803864720029102721407029633471755907096851821485279007619333549761138844625248698637131956465087898407501994691020683963393807870964358927539391613850166764109547355604402721455486697085706144328075147610464834325874929246056533270283191970088044481282097765933441147710883726497685715745147480686585133686623586071660002154845064212813997391921209991884535092492901015509234875891236067305500835242304270597803742906096788881009307986900342249978766587150971136561913085208386517254167694960863433121897887567356918977357859735978000025463864924968541126594773633257239559131529403094654117142071209403041815298113163457767920273082247169905416648360793273750857740531322365007203449431151308815724949994478279318424634002280864217446493667492053861668449359996589976446677383130771858174932688421202240041966876445946639065664211952952672317800249682017065188767598471576172240798908040486021016728017261530912061656105608636583234228453226763913498943816981651721596191447663997902055606991814002503487850675787951073336408595956261253243493238170110936175223221328695078682391138238420733936063235524038155690630208561066595370597846099013327841339049230606173348518393947224932854712725905625798651230051802869336801460330361328792102943433500822999604991528671288640888416227785359099550882690949279767969196997125298410122073568154596722145482448880793739166541815934321173350844863090034117877881361919651704264532073195309559927337034303880370402812018565910944128688086436982323284975714439089048228786656893797131352194779990810005783902277670868189900439828251067410560814906660132621764625750026554309347693733186974528913373817702415528903462171766881096630220872867137854719253174524288354129375626073743332948593600270237328328979873057509930832735741589995511439010129376486344470202613554374105939499857164815281254963622522163017179714699403960815344997010415490901215207369233240307117906057649891814044853593504438945583819336051541922092380427417870846101307273631385242298636078451311604208637919464002587716355426890464015662274793034239631306180410890521725772524415568992403286374905055620700763309306862450552336511734200447792932694547611370116508156492528296910807743798088188643886383348768866835608431748670635532243205544669949233630300451899880671513346047419795363650114255344160238127842975996540582244051525845444263118920481073027978442608212086277933591177222479783839809268274250182621687893264229330031818433436684010753918527528972263450148612617088217345409706114398164242375497080216970832312370416633770607046834212637934024740501606910723611953379747657349966848911708571466397486089415332307761907532466202795808533382156210093247061836936280606230308050413716268800827306864660965916662200666646188319696814582180728697329360496559280926870126425760754544948120299009928180210199633758802762993302991762715366590228525622601146625642956057094450070005579872045999643170408696861983831541002155218951903633509414854201575360860092919677881746002890678496877413523274815490470350759452108158791530545824785110278331238291185368451402474087980787695171541939287265309670375946482604111430345867409194081471902451274061275620364008511627247969949434501720860776536568127744449570483756714192862010605325759401347110046843094202573201591878313493160983760312039777946201941279367754797972574185465196104862055196139037602128700636395415573648627025414875579543462962882912951311472017070639742261609672422189548989339914368131246562738457785305881656178130408694482261856544359398567777114493724750848865523074738862692075334915826690649531766585391750571693740052665460241124635946136939564968787587655210762411894989326986231769487847719549973593558819355883832620804451230313080898926542452449449289328706154169175899796629475646285027596452108189646415843145095363976076150156299659187279740757558556072439346742863105945956962366983790745811817062106900074966437415839123609398435442165316735933407457657647489994502491197867006537355382569339556031400779179312772919237648373984361816161263291228425633185418934141094431095260977097919392716463394915900538122488132600636514493277978582531903358213948308229215525198333931789188941046135483578034651366489719143612447586249967234439298455787895371000560769687466611512993524923740831368423771533556428100570626203122773325858785662651763836871770648885315027121640241412892076950432551301456764624548161450683446366092098172191036868255910054239727688944656736496602946754134655840557704907741794493595897003069591075657614062365715202556519229361860973313817221957485015539638795990395939145195626623496380846687427380601394454643911205621427566276010302853272867672606350488487346471973964482862017584130650903311943088580376513092167389920672832203221774624781642632946537135701531627886338652893030391318054980232109287072292409326980886613239154312696229323786551355941777275584993324591923962819045863338419585232495859573912880488130142698674905319954098346786234114639081474652143535816490533888974800053085107786154151366869901719736755922745172820851911541644618439566625265159887981784596851019617150089103661724915637766503913488319919124010138689607699006693760963992478809103346890947508657428568739914559557773646305417079158291857165635921586978846185353146167357595849634017525974443047687607127529128564560609014511831372550678297054085184038556317740033648932379481632560558714359390919645848342852002255488260389677002349250528360147914313626804812797110425426776053522168970965412527992613915220980599414673112290589804514935458184971239037780458044025088368863742955216926258803342335206879556966664490163408699869423318854542675574161888387095004590559166699225780945772418984507730677238964327555651662224998192496418322625013129874446912760717509470631323502577298996889872066360810467429263345408710942481176790523015132360420524743157842952723686783474687294558031737232862133630550963606398018647320536974576122738762156643770779520119619962395865327383125419957974357856692035476307303481283797181294786123994511675349709966899153125099591362783409803800807448214215609328067547407453119947763321747824812604387124637677667633909171180153733712486764068937856124198574701412683229184765303112997737535796286829978376022162072341843017686736308254799186716331824338316259766240101000007190682229612963965056661465841249892366748882649897564253649064936536908515902448366346438522155103587675478803614476306021868152036569460734817594544384231262231961989662948821574588863067032276211429750971230842433315883439431078684466129549378845665585923760073125461735423687857329784383114981118701922697142361910092182658522171167515119529845389127390874915003087011999802828184479691864661315086892671443348178782228814249882800071593779038761381822057010129393090760959831114283788068338746254296243621009867146698015796661992590385658009986072111746279751000220446958224210844430395641934937087922294101105523706139323996744427845353919960127475776478028401031637765322131340326208848529646648364033006170895386606855991136128891508938553528898617007774929466658797520447227518014848542817591287408009431192364477443298762830216498788484220668690345469517142411161691448398882019783667037679343367916095604281735796417794743557906661681689882568052477120998829807051476157633997152228476952327036076686548189213918603494226602785235248624696035965677661217517988883252583801117417743226769115066698223155826083737068461591499949218302062019766198798731510918827156578653154665132653362775816479385960950252460177119595906389505643543531771158137338729149555746858479882086214168856369162423265466453334597955370357476802113417557855263584470730915761271830645751564437859910703865466872311573390495879044605828940284740138195007918967529850308498278319783374499511139153320019606408442507722363466483243482270541625398056691941164742575649247325806828897626987166340251013624251944572064895575066933592720414722290107374651512249971379237383348709171677163008977205028558737586777944394547191802424968816064631688766150712147519267046813237073048645596027112130266170338808421975176834045458510493616528361773987505129921945124483400170910711001519614275392438120731906281040754797783829245674870115988163065018385538258208190763854431001742200627292283390885543315363696926952264986547363419965369881431046957495403257148896900722775252148658291838471825270180772737572103917103995280590316799582192916579475098105918681256491005460545901573838590890796685250796291520170241824472947438742634126709081521092806606368325688527206193869278561113202080464475184944258385569348383377791716474214313059180932642835924042442999831228015370994003228834518929701005367658719922267865297044821026584467021248182856139711523273034706411804403145822582662301947032847264339870211541498217788475123667623396903117452007426007635622461189020850165282481190753580676284054944600328473255317337967788008526976636992765228730725977655781279263795200079510075271508240985208656067868246960544682102000696085289707962203900472955681518780551628083636774749566526021528757280921316022862296505466834711530269813011590478706518655013377613747397894408488133279280112687078472318686055765702111918523994783588242468345148739625489291896207359199200701735611591368489824793151364201431181586519635662656673342874755353424785161949510955758430260262529942393466690345042097158784436232162826924254516992254623900794021824163130755498397649037603897426547967487584448352272027370520231579077743715694208902308075060622777582311603978538936455656375522942802996268101332165517339124669445165351022849129760874269697940955916855091412133970095400713246670400020635110095096996308086783975202335616589877602831772111187041974076779557099493615139523748721237550268135852342446216327053233930628512985665050881316538748730977384408247505428660022869311441906142667879982757889374280580898296839832246876496230819162312335733833298279759535313186731891629255631889424377874763676470406794079581972170963300308563189941557629065189554334692636253697410903037132846658372779783107421094561929814676105620823399369137416511298683107107255655835351260406173148151969882824551081548460072593322601157997762472040548649278846637908690844154810436180338996758133780543420442490948233743413788503733201329326474834692777487899273298129745784816255373321174536974327696360895535870688277190837922434236080762084491341232916049164242325841831121284377025932240054247353815984519819319137332007013635123249771784192041724081669469530364548308961834515272430481314645678378027346895807404717838963297287821179671915482592580637616373970855715289913575327432401583481326282204108712683252576685528700961432519403172808319985284559985115591875493773918602182116927425816442061151563107620206898291685608475102970414487529297795973533310549993072098033912509193614509620288120847356893207908352715462087548617698458181713935434383040646165329467038521135831035494058540874991825809774950986224385760333602324898011463985686424303880987033008207924485639663216647620690218459160130766720485353326492816644158322867780814859719049711601705930660477911074522291969138033955855115017947203234072947067670542094970736050025230662987350128986666589214914241189384231595106131922797636070135131435622374165004690084735913760072888803377285874852509217463747109327154055066485673198879929126775429010977790073815832408379821746566731761311544266447399862689047102517983164660641149599535496396774719434096832745857943425018735163196387091303501917536626355381236745756226166805925785355646992497452740115460354479432934802908015098239899787964494374435031896601591205081843470737163652434276397468300439789564334879903494043203308074243171673266802069925006825095472744271693876070953301837410580593463400012923086166119832243357267448656561097761496089769990517695048762977485379666476947351093487989709697605558481268150215454825512739131099367000993327205778128421257759499436647501704615887323749476078883332519702846755551458930391285279138570594702647678083561482213537603013077010409387548076413942270318804996394109256334800582502093759655799540092864178792517096533149157256316726787067748150529308572620846699952096927883558207991697371324586636944892866998929299014011678840275103275650245843083288161745413426072557716434229894338427893793051036178666694850472993958920649874756246609778479938024267111485207234159418698720975563800324434664671983341014943610888427040860022716450920610211531123789118852508616378533729514943570109026451433166228530860846989936541292708006398224428314020889714436265429818678254918368198315671633287362884151312591879721396801440671167463284547539150602442141596776396443470197475835356593727599489523431230039449172471648130364689297974330588091802013791290677557341229561646670044985449365320207118241466395988892173447492422628753384389123560406586849881355831459791786401103526821479078817597239486989719340576148624059292378080911212785609726538836956008863005601455549420620231412418333118518624134633815723522242328077119021005130987723102843958348154755309749922616928502243565474421755280175667697335353630684389247192169526442429965419213562351475850050225965445050066942338291077104810021059600046947443943138307342760951178276590677008585184947152255918825809612901681139956424433683880580098853930734404513426178942222030934927543301551231730050477410853206699120545755060419715172721575229470249850572051531068300260262761038060410666936138109956968174459869978514974126978596315133644344434876057758009798923341642192378997951845900774791965556690731567935822430175240615852175919949521869983781732318268780948854859762720659559357711021395519885025273247282829335914274515895581315380516256760569068413968445320577640175609084187281216756710215904139815343506370676497251463351561436923445235462341252830771730558585215303690756050235760749757230149104687032013170706029217736331215515940436782401605013352536641564753504163359394566626276022499330090939327805845580962111145025330663353389252749215003547813125685379324118994915149177724273631134550061241456567813613329979725693593300785714223460102901531452297832302648580688523248028898973294418329817945030736760826365129029263502659366615428155344793737777361720788648872324824392349774412688210366944662105020249899097118400441789500294338803787402256712577104732716822073550320471904973568686526496018194123357585603338535136145651047055762906037672304074003373074953768928928454659430827326886779048833643093459354858045574314925187337510971198813000924159814456331376977797238759970098096480876382209001881251740178684010432299964075868202683023424561084822567010521632897411251048928213948941426324958978659416999964547475290859138348250159460269058467616135730174547876115498362443971628985002118399356396597118789877310714426142220960067440748227376369071845730828389700385443154165707529447376744134582896310472756048053898301512498660636878964290313518736054168901460987300637015150721004629480874233375194696836716759417308740585125081711793256713210586278538502759229743608754386496864887487226223584152212522848250827568311533316546871869923615324988936993004815756790699333091324435068954385958058838773292941283965148126539735224399072186158738964672405956332879087515846553135841306514284482655011986862561407117438217091695068296225492891873033599044467256094849410287244051259184699890795051221449926910936884098603037757771828147254853682253323188560285023389194820217161335342880095364143328432648249208107120824055331538513192332564107430245137602647960707437598246907311138850815778291439755169592874844464997369259613424005243959213898981342295437371592588036848060475651802313091507024144245604972459732635406855486656084733602441163171199086685078793412261100800039281565234791558598764982529170982542137307697045840308043440904793156470820325116441287970394269508670457235725173575656790411045889905549001882569521204892725593790294397245607474714140244859115524596152603291970023589620779553781001144560244653752188368666092705827800177699806216311959648609332701661469901568243184797478278738223765189680740232030366649455408014863033407242113138872396534133202977086199418239987149646956709074621457154543353604171987862451118194777155551850244391532826133430218017529351736878277248375061955597566230019331992984214926292387065179366954568009568272218707114519483925102179323893160460102646810574081955729379288098313960398154707301169419351833946739226696132892897772343046035238483044567185146284565139102964970218639871822582350498241931941007530469947232847903044558886371985828762636216845382024206052081404439646882601736148918312176808292758521503755657424892961004706288990910419988543711111182182518203019212743277915486879803009407110220612161172943317688953175607276406022787000998356507923152565791379178798943951893810737189847022785475039349260587379148920429017317778588762344026398145038781898160170766689210862965924407380791224031178555434407050090507828202834633695005875271992713964495752593743961085074200438031941240560483084624348463892221765332470457128578242400944288176047037517695290621349977950986136014890704306087677461887672650030416349612812871512739154756223140135779013107322616244493194177331112446970668699276847231412136703879512726790805803796834899777558237286144263471699408233203286967551118389730028142149009581926343469657181241184698749327581856276955744406893860874798534095293906005835958226453350018394157971955301079830905533694562158525171664042530643723016185175573250113637005551100043794597312484441113271998553381449600556887474347011353487405650204663360757244321949143428667100081691201359155774082788211126668783299080205881191043202482880722337219188460747006378275020528998029257522995072504652001686230670150375343437001370585588052187045170703733666395301087185666470488316605298720907752570114178531896715505394048247420801518402654546094766198243741512609836702301027618046278209822990830449964001078988519829414941427667890380765295271735171430394153600546922153066180884572715541456916399122010039918905555695771547110158311203250743788679648384745521157087930016141543772016267436426886702331643767504799409806608780708446062033633784177999117362598889257606264191746293807848286026378100785379534052326578747390360161364545482153553642619253917272478304775447941752691977027372364327163663178632637138679366258167948684449494775028089035218262518902377040338693864829421200796135762283341684818546531081428219288099451600235684159063174456878124427296773530770861508700482813365010347687157853379010810671895649536955785272924909889470392548035491149724232692482529898915762472340232919969945241447947552373822115455483076667089497987427658017549100208115611606828514930917418746867245065249205341225677555057430710476680027506528857409952674339191193028084793211581722613291746541009507066125282214371535348655625164229799299358895000243871901429099185111889947954195486019661746769852063680239181956963843647393690496538921614953228927539112865417299670809202408002978645987350990552308551428155648763846790629498768180348838577004775092547243016563069173753850729444310841392503088897906743734038717203546678292380301172607239419503439682387753254468973717472105346057711854301202356469076752603723091715898679761488331783836828953354186565683627310600321007961754716708634909274613040358446621023123852518852458288303580793135047860522694418857995188047826932948936495110498352836545969362438263319013702321058776812862310298738616095956014632825608105385665221108411367645571725881250869040203347821358042869830652630379641149661070693677402106474203597855905073145552175805166616402192539724413573161811732522072897176503520188445313579480783410980605734710741672781763423527195831619383021674257193521273213599923300110991134256747212814187370462920222460730287472137301588178418244521823329743290611832692634309951989387137679948798312400284272267747558909178811784073010252308302996207751528246271613845485149418350806224642381518784647627056045321247794612940224851466020457754171030222260421577485573812219086808444799528540345002939301335264217248562201296154369213245519325954256246400460040703873426774689083131236397987574444593730910661142196368546434763629061719304648782186637834186827517444604049802726784098977446521854939902108487335868160533811569764162697387319699595585966343504371814679698697127097685263799599539811849803971615132079335344148623850394229486819678419908253435148226715399506562104514221619097514744134281013612276839420491398325995664067109963365395463146232192098126123792151249003920962730185256746428922374299710452305805408585043252561074858363173290284612987156600753272942053966508564579972215706155001389779883881933826175781471573446105388452612969523498038029167441057829653800983892031414032450747564079906199930033554291335484505914525135661238174310008796744456991940734398930875431764975025404961859343568202233169713303723980374097859285419900100375700362499488423359961640871171517767402310081395244359152205374926613442879524836517457780565537362079331519829944139275545685049302602082948563135662008805618313229176974405439473092108190845900603553216947076272191906921938595924372619527344469405440672262372516737288407205961029349153199318407382303376013621058454059501542941060881612829328827674545844570304257642602154798232444100730420774848951085879289802123783744296286203975108350941578169585817855221411339192391273850798133082368350742920249148904317064723709552943179667816929938961475590716644761690880946833081108905182411730040684371240057349182339036258630030676310081308734255155057757502447425451520833835832086920338748126305458220946544944019385574787537845081819309439552086065605847111998024266419682672331524856135360884703145172777252327756647630097350918290340577174438888179142679722488223306782323105571884943469565641834200965182455737477200884276639073187842555751075068803373885041496536251310551366003477393479311356085035451563368953441299478432174279126778200157574692095757990062437833481839549028817478530023172524967155013490072034725432971751492307771385748832661763541035011947735117929350323002711259441894546849744305106879222872109809760783292428488739430465498499760281995807096065443814635219631550623607341036779687196250710475223524964734794590080544679447527556899276245408895058271327040072491628956260212338008148865649110502591450165486695247503332055572953708950892362430194984824250954473632379454812159186273470589753535289935174697885696629852599970719789250056987528464821893698356443277322203121984617611531873704388971533203627267107226041896148654666373243426412999798155477506753353456376960039015565346205417968341546526381122626414171895059213145096447330319388046458500866385314242245529029450163623480197219630775502921694227025235220614609034759802028387319320484489216578240976729102154629199108171754448047468995444330883892303632900403465675394077877046317677494037375167634803604549741237753456402144260496971801854925415134140179741532374786390409063744125855331683179638443913031009891674242052285006864706842610122215988844822078914879316211171225246141391263098932349465861563505737721650215647150593093047851672552330868689842323747678443390152834503428876574364079093637091436003299762349264915036295813734635884383251829632217693533967940820379837131360857803649634066294183405677853647054216636721917057658250650753555181625864655072012940347133074949961631229410791801037168224994076456701624880629830321818842725038632299092741110315920350070788753531548246736529084449331758122896723097550662176836357251959594477907258392525718889425592850482855606951173357009080514353702448128817110379121640199511137971902211529197772708676105222279538803127650415340528203820689754226692426031295089235957879535886533895699205537447569144857608908424574577589558868604336651243277671835259617701557378822678104047428756352165028436560895604695264888264353219442684874751309247421141102277574615615790301753780002534576108973779481112105790347083183926968084750432504449762844890547703645003458957899083508542600797345891614966795006968590158271371722715995083729540137408101496306899573867106195077156522461649248550678885290477926011053362892832372388664172753365693113000886056775872513857717712734970372273532270143031001944942759616915717783466862982333439400733501453070431794282781866129502329689866541068782710063116145833160105172989404580691062730194276947717282043455764759408791308006990302256659877226534362403996009156724947026326831269970698188272839003657234142589233570623258161279651802424092142598451100794724753649330681857587894753974295121544886245319856993628005446469331944436069227610085255324334663451394616289526012875387442617265625021369859857083672151657381520225674683056280747509430161032965035320012110990027998364828991536437704796157721546595091307247551988802376551708512164949800975846676274150124210823313607781504691081129956017540744456439210676039549193000940473619547906058975432401590425320377982625093410222298906934621540916101098137533551377664369468249696760870433586711905532279250805873346372965527838786505431077220352051961248954356038038441446772989375987881761166566417626357886997312962318029669240482286887328068301642828968241848354558228108201654160058350618737603513282036528876932934041818867349761241583879035085229899278955609881283744907963831600210641236645728426508209065087753008198666355835168429625669651640783773850188557309295396873944193808569071377838316434438099184693958401104288312476183593434855115501529916027787469935257410385541362472960053031737677301901678250980901680446520014948967466245322205498407364218249522494153776096962034995735481347120992530982782961761292665130156151930975198256405948714778460983271372683889688281388557602330659000330083908695642283800855541105195707000095359947274448782201491033427245201523131287921356960242535486228350134123445766360410217575056333291577020773625834704097780374032404730200845762949118983646113335121363849391119098211869496559169289584665881825436902104673907859650811410075893761614888343908985707489584786137452659479436466148385929119504055871156359380400396322023149365777600996861392217465139338608651867998656782686410402085329603633001425458032505395211497950568092288514055969817211873072636906301579867419474335215815770392599477070142258534605117551170656751677369953640104778934776931050658636481939996264909254957344488219965146984070705568674548666780950706939413555328209751863056709195326132728939164559072066064331692301223663648106619787967537165676627404733854567688451600803360299138881848377882413834704749335798290631781110382942118197057744793388697110587539015757475661845440058382251695778695054957367664016761085243760811004283754088189999435977003056860433152845351964663401017891209810889046730991773755539596729474595540029756082165263717722743408001108326300014261819932852089640183234336435928178733850695658996881494833452191908658088546670177634488484509438357362737038096014178250473770548552932422866127556341808606960265406241057586366933442346653125930187147276415807556522664253388445441981921596460253885116557544021922642353419451136702578621992745178538389357028053964342200760741270399252458238394287039327186433644599079917060141395745058216741367238678349018309495345419647504226918928275172475500834142012160414647662430501241368793617124196486432883503471920095297598323871294950336591858467131455935171295350226995424047476569158293889275333406886326956160796000262818153212206502950659525866777388693669748070160771993150134681534337021838477494922534949155447876893476835344916541157061044612516547969220593825726052300252605008488520097965234682882175289324093728022000266768161635496151145015298146286704110211466776935859444192259035733328530581962920590140425015576635804022056335566088708572552199390985616459773682254617636185647904559289351656141149669874629320669932324141962010268887295951145959211442331869793796177988876283808844391881736294519477230581374271461023102423709726278671160191704275120559841649952573379795320818280474083867295082512473555504932399791482830672057185032216765834812434314334428241256084106328771806290526840234258404665855077092516050826823293801267068393728340485848938059728327565045244480034049728472255726604211968213906505854413155497125196906491407588797511903900950117160117132191432147312023392527292877606224055319050712660190870850280727337775318706285474408546989852596138873695275465368700363915688127661402006038074831888777630295392061211832137636738758265203492703197557845714971381278603130062277901229919815298711144210913541146355079475680569461619871312774500013352999011491026615435308745268062483547842768326965757303853837834644438250445592830606169717159673973204956748758789919375546622654020128903450421308119381796349583643598517016365249822079819275043746803700225253014462541870166668106408298404420598583613009714881173614512289399491904205202094067769901878307614824433441241846751055764935657981458526224911470162461309819560520631851647477470985650246012634746531078561235695968052525975624846737393232661742055349561548573273083180618087884325323973073772396056837330225814645889319613405661851205991581771907477889554518680353711791323834770771387676873723865696405978490055558849325260866120378626442066074028662581437906853596238765795483696290836845406183728458661876790256539469488044198182256670967822873637648641606871004336470414333803006813039176898228151094300273555125490193702916533247468524040650372327913142174059970500174796184534018277054488726594515080922220062033910336997309159107241759889807869298740281332826221754676577528579763002275342874416064845386722038831846149999067315444681567903346288514886566036331279672637065578671117554684648328158426113542793898002108256767402681375942551880081560269113176277084855131477867091615596445510936995866431608087144128385011259714250885829273348610834675871084486086876406863505321711123975765239074053573264894887928413674866115443970962902104473068116907263580503409332687611889472761572246511208318628114658106036820420717003780081334216843496784433715740527716429545551208680504347640255953229182815527718537862505090386509790714012940010638074054401059221364596599918477153284695710018405667752029326083435498126831010824339614815075316781476253403403842300152935347261829434305795178513570942209233887884282603619510018898001494703718942380944897816140364775573185394555063541092832313488926422844142812604740682150378497573637569209571830773058662603802706820850766777324525460535821635427528687538151017134430269124987996567604826182354344971080538088091964954307501062261966427647936146196866787761440363045315816129590128180201906665554147521179178294987662328847267761902252525634794571975918846206688885264503801654217208136558726238277291526810685739926352309707047808144681852209532443807546078484067572232528868035387966146163966515808340365669078876079621996816827323411125933174652405134938998729335998454487223251423696916127750095277089795917161662442847123296833252609083352652188149409598978774708276475821191385984703324969373796435408714131307737092913658344416802384064786007037816444349225701872953826606533180680625865587058970545351775004915609500645859408821348933771806338707098869966382886360917047211845934090219506473600763317510094577733923008049402056442023842396312846284980695172181225715238532525021092750148807966299272589503597909976095903895048879543209087320901635324126227587996728167394617424815942360692166140690798937605080218945490259879104633161844754092621163346217647563518568502012304788906519320232542791230014530193520767209403142164625622533584462051623350523623129800249240807699011335514683946747948406359920389121528981719090883086593372496884021090470809558852266685576070552395823814567805130068963687060582292007739128895481379074521089135468156510759469212820975128388971374849973200585507006271252176494688501524295108543854502215563529554657034367123501649034859620327022581623820624059954740770256480417338124819520594688644842864148775815420644205393146290859287533716653811873083669839940531377330416011472066706884987173307238247321092068222679914630614731591145690250432363708229682362773857732422501235708548325735893975378980560649502301162568857730806438941620113855921254255908844118142421831450962721347403546269397874402211912363564141259839951701124921929060710097110510427055856145951244559457996029002988279688853856653458997352065022390340965478524329527336784766186528987521425980854769043316448710377661570905672581161917957687075991571738097902772271037488773945374447909332905969866610693395088352534240412205318778789412883081168937281144802651031300330635457215933347356548941677952064794996299249406348590407464195847544633333476946466369805842209016525085417207950300218171194901389791632903627404043442119464290363244622057601814969988913678312861827152641388330625497408941365660802868588545039957868664909446628642196953037520336844004055259540624186582056401179040826262617808124552530000046790570145346800466910890271694568516593608614681184011579666583382071701630724780761770060911276097186281399961996855362805536632022766438223971755743539999717877705122335402992877992263402520611104194475123028047728983159304642331447689460770819830461066665052532762674576787749127736360275269796156845161741610863512484500578289974664561880475837575343371638018206354690298576861409304670248917842360979334791045332492401196778105884676950982791794498400424507815470899732982705886856556704104708478084901935267601392295670625426102899652633966130835677551008894363831520418759787081290091451502330427720396757916616538704167245262507259862242020828705833786110195131461265852175004021220141462742417113547811941950737589675291265372100938862587285948335066762889924709725414492691178168974537551919703160786761936351413974173692370885984853603693502781508618875925879261294580626518576744985240846667151228488543743801960829280327876335398156303909387320276761105605966610038680087435454113094343867800947938162040717621912531400893665739027714930639368261618181793719334390812899848314350710298985656762684332055311340437425775284520380045890107369201629203729086772035165334667182460460293474911210987136383480105074980256142420304740884694487885054750840315226601495922810564121724935701968917099201639835629433362724775337652431515481825229578783942002310347273174182579467999471563888656107070886625036000835970245207975556424079098285461423993669153095787883328056791439660975014726580108295600767870246206627711202257475125270565656664226517290799154106289611243886702534911329877176624624680873903335685559520228774786686657047568720538604026736135941476153003168558847323437341329824625056373010129526032110334090818216935775125943661391951945070086392690014495871948084430576344225589510197794570085316005400521425696347230460967926899013447884838197486398789519359862477558683029654686901278271485279844710621683605596885774673351229360587599608045647128265868906761484628485329658970243761131248934602019224063702411297389686085291686766906105249634624986699006003080811311920702334416818232020491190761235957240138669524502126806379239564316931173638500863633206047788906664340511278864357945634589247782642397048500352143834150491705980277526910169162916123732021199639769905420889629466163027091618256109393900744486243062625814620856337689898711342407316372030026258670993725033393960229682746727854967456881518950694565944555858380711174937315406524814306553585965549108476250994148717056581001908796405570346489677427091448365168466132127348520306876954773016557938356653039372517009391313077406230805492404812403865177290247543765241789857937671759137014976107182823141487626811349440727765609119431193514433978414874621655453979536717552113916157119759754397169743022238779881648156604019688070993953015497112914119728954732096717107053551811660861819983866983162320251986156439796219756962876179048458196753450212129785822314426893561496868286023748876468523432865146614819990050809912235518214642719357191928132591475354103619906910532356194532821832227972014084526678822754702594144260723339338861246448486667294522390256955019117378440771505951123225832052893372232992621212017383890851952413905301712321425800378394617831843802245893587522717077150394874901202083425647281570418290038953172715320810669018319400848383473715996223613827558161517635406284376603895862253097043619448587084390297130687167918547506939150033889538334051228181680387584552785679786359398447478534190876922825862242042198498342519724416716895851010885642708918362657996502267325284191168135774927526954337743865759572017074399876741579776892465091742265143696502372573596134005614676236828916525114416064818753111625135055156786210447685342797734102717114792174957657131275631986661064514321197120463636396987458159952106518790973195336254583631998120742861836791793817810520974645725913934560803296069244002943024705637742098127958080512832793875405669798204062605321140516964997978157621811498587112703142908749396646346566974038866039446708843193364469683817060046054398560168481256507812103683941256834263072757375291538390960715179590609735773473796686722505232712994066764103543271946928534919929801787770405822382073149793993058984004525412729879289023646471060665909177476412029664407522730877311911264609484203918720647013914799354569157995815887420294959070895109206867013028997782241594404439657244135408674238464893829715027963484638477231542284469681013214464532189756996463750587734980362864049225086701532706837506346856914246269930268620235976242581944875544155822310536847680361168211992625700757873574455199609772389082662471339614965236440668596826210393041308287166848600149144747026216689071982528078051874511848653018532074674944749973648120697884811809741629274585408822518668555349727495492789635158353799148406087889026394946139488664389108332472860933976589618618113570446329479948382159333338458100504128943710577378338093776347437525296885692911712602317607181717425686223517469638968287458755045270325248649115912940647082260777963745261689024648557182292671972340126203900033765041730263091386420792451797454211505738094531340671290323823700030510669674331942346484374944255330934221819599365081245033750421550301827702460306543140122675287571888480961153881220683463925091843649886488566697902324648198245833375182156123527815440372463429709288672301844057164316429124396983696157029540897358603054888848883347121300319726221217177142582921785425129814289697619555256677637695357163698376561596248626767370627042169781310766320283964448063702779205841556278560676068058750767935493789238442268913634819899450944843635192458824420503999639602563920257100561631211423301197653530722989138486177752793332625731972304483124436061068600659253131704901906646301239866994710676556876252662585514225788894097729264358130663766713652105776513959457083659439037277747141855439847055504670794442009998778644267665695137409858841456541274017435204111464550563448058572359259683057977458025905719865653040390488052864082924185231752088481644858537334104153775292955350723893801833940416529583142341738932962199924931236642014924453177354102223242912519758544434953968927754825005616512263238120392950516323818739512441727840905917803610181247622320851014325397244119519370422065435154881474187910199895263922433783196641256451897172503042301163141052525041841699567037753742481454894897325928412276427489057546239349341395425339794879760567080786235758039812223916087998852513525595368390108903951923036094186261712021927083571022708157262219597498124190841651020492128000460610092180369278963312270671248270914786904680816629056264701052465301144109311556856523894283101572839027935916787513423958254087937093912695830348594003549328413225098999952296878672821116409832780162641282132149307017840863227949272684349387878250245515811109523068492670830323815091923330857663848897871569526064861123942848651132789618905108346572700668520636351003799684570003486546180576497816382746324686558793036387624109529168482550943533155158054203217376706334302916700584536867935921411040162648969301998900625731512983634888152552525880901739163678666690941643216698350275510586615878684801647345650223485620061592098241564589315148838720342792177209258996172833288784703713154812964975346830854793570588625284409825553465787915513538150103219387430150195538718176239990023561895058507325761159407332665135616927814847203297596961269333461985124160833743447875539343362338267190033415553011724704232514081462130737483778244292909792578947975388185742344742967472046074587597905970376547335025704743813678740007826864393036574481185931519786585250969305469634173636746485190997272742458659412166807122331982279686368522471845622669947642245705141506597184605461380055332058239290543021509035280562430166826229573841879682295337610321681939960180801849929052651000032869940313327120147930159637294156816945520738272065829892850585546818692113597270530098032222870878390392950570468441296293010850398793134233552422243646834081422479058977860846592183481308887033605867801407764718091597876303454440053719005405653780405703978719264878312576288558645089617031284963333174782493923978854524618984915530955362688296156146612610927199087083711634603068197105746010379835119487736511961514852977887334684402730978870362580366444132297938547406875975349863820578016642816585684964146339682425999325763602479642601205408667982927330284480864269445687677702715532092903443960343275012260366402457089481363652407055430148130372595445065296843833614884488225529060631479185609151841929468554581557380093361352685628496823824316952771332144550860817835496126242156322073628721605881506526518296156813634277794815960048561544453630746911603800345808045894389444767860913724953296065082267484194487140343959041814770911853310678958375291004600604404637385510280913368071012735449109441135286142883866052761645189216662291479085686762058243476622897007922450535758839469388712149531072690125720778209914290765902041132080358876916756647115971742183055373954483627247291618906802770692665044898920960115961689521266946744524120235191272724855286928111121048459516177166253993139823932285535299519407624158893734433669416497779296185648691342275822909218705687358217944038063133456110447353836005883070961792612631500286376170111517619471199845989439748880098790446957192468843310113971556347406882161131272896195087489863913934266264648027272058558509758803632540615823745598016428839435190053153664397024229385126879434602629129408632934602251154965625337565474684944315394546163986240061502918609272299755138025905720957755398246852655645336213643059958939301128333570059399155690682259240860592454486324182739144493161589327446816314808652643510240091613154444463009121643072601311256396378280547903641133812527122473747735974777930318730194959506992636557507907408693758481577416751266618494624378299122297976870098235906668271390013683139680336504314497109896874216803239211678581541174383359451447242823214334341678483332185662477448333833441843187293140092004935790418376709317570824599204416764350790661402066427736739039675621845318477918664506954896862944834732870631522355245206154967927131952791305222666395918536318449872535733853362409565990320521752595727505232547512300102426006710917670167200476969485187651618488820978884238171153025651852640218683066035525418687102897317567233411138983273465854624416581506835455231933308594254373754973814770887364163783912455957570768257023798664708240622328812896391880821380863593337761089547350732652811410960592320539913622765831043359007395256153434398168578417811870042005392667519124466860393827742867183598112614085712111341824093960995329018065550510486144862642679289424493946317470710766392950053622312019034826701002335122156653017059088055478851915396719348857389035200732020190619454983360179519670995790367159198284783577633245427931426379540637842090031940265046393585212071867972592884148695606474974203830144517614909959274949389703421102705112476350340861438217744513129916711586923121271937381106747182142299516753551155172741542331480194933136786958869770819581009879888930715774894860444213502519785433062221157869925886320649675310786480656289202091967607631421810680297392398263446758642059526242365335370643180119383360243055737202113508786311632738664820039606926104701541028602822260318364392539813865025100691651549778847911938990701297126595253176355949443764073771860213272341981718536602645405068837865256262907804336666535471535175954062471596771846541921229690663782849415954265729446736068156501733664275641739768955935285182821816850855012223757964275811216337241881136112538583398113579535785486429481218155375394766794730057418712872206019552547050085533123699177213524733714661168301270202544919220381050436051818551108536165437314781075192505880440682546349186054559377371381790815826811131467355214323233014751732961181479593862854321295343821955710496635333199980100451432644178255193228830783533014334085982317535185585665148268041990138283713254324568120727235104220908219580201980514208071473158198257764186125458028652759687276889297925624171520425144249596500037683576420468214571901196419197274888579903672313480019164479891141805629538810918156804706755786628111159479976881705286412321531514402856150119033254485148348314805599144896024702227709900380418266189949712633318618437874259594891576441958547938023414979085452076730778148178984087995892416611028878885028842169021360966678970410806191374602799017393083897469958384470340245040461848411433510327547851336732893514066022601436506599044741252414039865446990657892367977988066419887990341220943330417038208432411831982516598624648276599310271959130130395935175250384314499134082181983440275950371304587507425548284582562778588647718713464586093848512347723525520498132472193643156003213033350646346265175199274306432728083277065489445566066919014100629973958575855712838265318203308351575479621943331469872305504559562026302416456624195617040788624180908552172716543430708461113422809228861364407386544405924172230563309758797402113719426666237589656653971341886134577128437788357720410021020784407268769418169562424861704481990889147727457380541265855445837602940690819271193116635937279075627785517935490763921335784342124015557457143360659220578060387685897926539325263013557114250196437454311387700171067806581800235498226292779457991445746608141132609811603773827883997027811536975825768094678646515145031437657358807773590756286967689640230233922435693958986709624435787886875975108498475310989135693080712863651959219681763903920500292199401080263494941709116865778993587355379137582497908988668696317709692447972255534182426211254222197890349578984355242149480034408650468203699125134885223579406932734321466374580954068214261780779016973708487622656344220167281697583181827378770436430818901134488363843731394366613632423860041384620767702501513783316059872169880170791801796234063841775277824882364509130279654823689565631556597617205283681112537582023665701510775154796534990402639372750571798940309971166393947306594388869136570241425064925097236852939842063200152064680468780574763308623243784159087084292222312886864057618537325468403272896892269573331526476952869397125302686375185333167715272256810682638177889445943504204300236071399857641815006433641229318063989525527691151911804982429702727841506812708165517964775824378084044965622331887113152414185264664000405979009708624121209416586728406086914697883712176797932022878786986477324925996190931435729997551927823737301173405807988082043536133076432420394760428861609464030344436919821607331684637907493021629692271854341999760472985483653512200477734834995532491062864932569546522201887708694203642660264401533372828445067512438302506564781876150000351499079395760078930593333295234881411246596993737120522304690746184222542145323905294916235989518839522627796553237518469399599508683423337276373766014691506283121832644839331750898002756694148004990765402471030190641683458682097046931540587422879947096958702743855886223125101559847027710677317831320955400258992584025680645938910773174528796771637700995072031557501765947756158278996045855468521846809023003314481405243946262673929076527811829559448930979761607629366728733329875115812242395452916495809305885184384262288193032481335982537227037542365716921487231826960617441771833193616668739318898593787585141766369597517530303936854904986737541620081189064540080588458656997930329983562815820584044195505374705229906253828970823253940284804639445985223984486971435890585450128259330134793185224050790088299016140428522730371948860968217500906082891947914642043269577215027329290546402273349439480917260908509151810314642284847508088318689526104767304551708274230146142972277067346543621473285990395019419934587535768183099418524975453749651376409128041998223065693840581068333203500254362670868290461608264003689882542026278683994496912574609441916412112809626291829530416569804210914704159884805061801210005086886326494973718437796783451463172447980728366425065131200005397955787354119075863604395678692796880947302709434489166173488105819548678358667943254467274248509034853561871684838200515886964730869270417198720838052230331141781336959286390887421676260862861211196497846383172046085364219164647318279276364733362067136071090511135572583071692806754478885966706106158374361154650979158955048536278941474780521679949300689629038620969821390562469882157391028997697970108206167824650793367806679020580615482555080366126725570108404770806421296362377750532219617409632552463613575609000670411437291558964829813020839327936713421220904332232771753060177734853355463161462966619933597233369142420010464280348836517706709711889940498422309406085537422055343461290240471737242022658733550780757601597661566122419502784332514742401149019526642153549985465761555344719762966744406059488517794642326886479716171777130822398428065207737645299738841825048682929831357419867356765521832210694769548238564167824674258144595094531768929061993574173710924348623308998281974407256063404798423541695149074625777647369424466186545173225077971839550896336675891081143492522400216623761849444935174521887760383927934756005062592995087000670150092985697985652319606789264099167940932410285476382568759329630180949624236554010829011091795396851450188152985127111888065457702091226738760139696093636619342925759085010847219232130171708209433754739470513124564086235245108589884262198302549673950953872510205435142141084297021485335287354232875159464714655878391580552911137010628223032113124477255800758388944722050748722792570654952320630991077157014799587439013551722380066088913519143474052877072552407176529627531170803378100571301783598581433653902578480388625061978385151888074921636500306188751750328639248742335970099657211372660579467011714536070448378226186375765765414371668804074684837907420579215360717749705818175966066773865119583074577545462692645232506581265498381259513548347480085660565119675132878268243312974094231993839907530175051946526799756780891141841324661614228859846313313679087974320637272357649438488248075000634240363558769471559184773113592497389538028739339539824444409777944937400624626767503776746528079095510161979904412215611501267738313402833360281769681446387373917513353572345950746141758283798625119118882658183982789108888906406431543901920584616909624533276890893723418279768059860084105432397932359569469129361502542613835251004833210527630910831680650222571948873967448082097431007943701714155008694941999178197854571918555801704754984587993221970196233262853926162827376753375311696592575658043773409063145118204352801204483605282007482832638781513662100841327447660968189433862528809993894266102190754018235682065075266654498582586922492167923546588447775240278698450659936677217661539249901382197652817082899984825932782632777318694651199019158172382015622764533568059015248385486424808921563712593349233815505405783474363350647910339767830680815141322020730397057676680689382955293803842775361365849435827242382983366987431042495271001705267495696173076946746510275766626588549795926575954238912792463265839581980986212385767716291196588275670733491390070874179688088095259987492863547680065755010791780285122997106998674835688801271654135342609618398239029480288256551813635588375324051825067754001112069656559683236396106549240132578004404685023011177544684659143576402093955796777978067043152835586283044147944778567971316011084801905998194003122304503622151318017874495090842713047060720949943595449284520223265416338728168621962387195208449822494500889510845983834619749068268218020074145947821571005871316773635061955288548632094578695262438987656955946196619401445876519244107410594824137086245726910443334412652762011699318034661083153289362374844219709535341678273493978905264151387316986764187364962315317233562768024869832972106155827917825634406614356333349462552837212688125129143030915094372735020929468377527464025403494159792931869157928363927997079524281824945136010087809760470101737830056688588347602775036158821483047798061214115982495007173246563621149716532274363516253023474386527566200390725865923842598621855688475778675940710797641810206371970733396030323389017482042108211238282168110063299914712653642077559149289722553975268246962988800558499469227230403072696301591470132526811253359532691103425175592463907724106516620758673723296593888145975401083311758625707891380545160552948381874135711323666286299523836743892261888271948737612355360499325603382062328374642832280368140097325567207199115887747240045217108203105050507712081033483389990333183361747114992389857255472906060815467575989192462730048231104809804428100486922874149169177418908537119857716662670656181990155102909575477827174671888012942192602267602953314015171255640584377489193922971901013647945070996218025700692489415878951209204838535555106427786702404084759024253765590531788211344136492948029249219597361548439648301694527414982878010793894666192273059494436057660265326313733691329685991550816007355104852511971557417396901272273680258627107835894027530265090389292596580804421771631436090859216895354617604961983523375660631795938830874615596820417441821431020314972940768091477327395501326640564997387698518059899070416398757249545596862768378668051458136006186245530942609649987311291190666066623215116969955407173055751137978991438813334783847884561522780412915062287537654034792643755525781825494896691210402419881742564732920648647675570533327029319254011956966723479904593997286480921071637499876588152314315338516995733855057553472939338899614482565696831910619487292298858177363368508780186756336729979102949798978912396713608524540238350694229902490918169052310838538763443083454153451832551195450418801000587641057195874869462456998546960969453142426065469228718678973940020827630137424257594103511370574539269795820577144868754371217462532965128014039180184836006615485156052668816302366121491022571920489536793188121565268201455296385769759106445740749108613273871251344688269900714988974643859512646145937001607991883559104950347542500372116034073230834098514401162736935385078647935175861263072439788955269774679456792953880560060247444611073848314224856807572396375488902893025357298843559994157814844442621275021295204494893613828350606708094467758237117372545140135070767311579434659803953422411150176602150808507585772264769511775973981161507469431844681604348751611954495688058578612014244604324360730243038083025270902329073300472098991157413865138362897643855329599569558703464683238116541522944072622970233761130750035262452971639229205505177957127946090507785776632669683099379546664186235831663531640638315313612425114031820094286681528419242508573583800134105132816078031979454050611588676600164489602522473852522439621307384191934464420061952183522571827392919912404634481242417430391275819848983016434905732184139321265495032249385976581724647894958337026070113712524521171835478636659671901103311742096222270161413624032522013189736003668214442684102215073355788111583517418719465582787584226341424984218969016262232888258444003056763481551793189132963520752317337936084004725682375045583955161141570450792833908802943866977546336386911480426591350868554116955527786323857481263800754861718936000949817489841598255670069976765879812236201168332057499359263691124942015137100621733606165546526681872955420011995904779488548493201334106813161957115385593157849379007790514015164128550006423068200316805009603534434981670853770681825759434059221741689183486311108018715668519943984032901913529444636584429346621636613615446284485704277279976697578380090955789683863448209191997867270820602566204239944077953038630982774126728349379175455952865577292884137388375836725431517194355129503996224355779396562215820242077466994037658585451531010232276827388579630515800484820850684015311508564955899150215265530942117344387193892688308238838806146840756807677107758616303234657149019678974739505477077565517430611619736641430444693671263451509425162132540139293359892186062454728279622572318678281858366513406217340270485128489011808243434517908658688321801016887074844978733418191762389956225525089750407867903558801470802133848499274772921803155796078819339471150220512213928895590484520910209633272675321453992222400835506253393155131083654945168518580222567929406891040682925861265052638338219523703387235664955623825536014942573219271494737600634335408393799493402492628090237064963883672876423638421495933635536587888127332617729937900094270968553735908740722980596103327987157538249527554733158349841378587649664612336248056152703502174300295823152167869856309104746592187163655176285589633903975429268837196546442993874641552828369592850811609306174872740798759095640494467781952216602087817312489049304762907913851859122019546189655064355903451832374389842880105241698160673005023277548282843035142671884268299970465631774944678469772777786779773775425348878877538120727075729144364145164003841493865439213695790382840953748707682701646038159686345976831764116616855509046154521913320349429027342551582703234469283384115046279873031382677936404338161204783022533310886339033099569790978714487766900427057231703373881897053486034546142828771435946443394130734477418777257570287712385727534750511378510005489729595593389332275556626316626132886568332142269780362557696147910124549152239760218680981051951053303678854318824022069232339422260911921555799790665903895638450167039655776131034771474655837945859561806752865323260047258737264583045625359783048940979406127785894564115975880310638040183514067936257225121830276904038643942873419770191809551124034594011200458976578882974435547579536930232088580999293298035634591034080775427702740186105678098267736413342013680373081391791382405037243948688840880299671565677227211341787081687708027498855142611608054710267484123220517656525327414253931032628448640597861639404103959776497893014585657087538397094179055546859932256483708224422674678970774090644688671016693183594952705193442681425368271373581204509770529810497270705351495981402599768941057221008547155030929160763799240807220141820325838716090199614567589399842316322590495721302293412282491360081475114984033502292492157031111858973989109921713006056297470397283235559213201847002542221510255866009970534167500413796512535498221372160912041736701716863994774548363941402192256669710760891035997635684955571924274632765741955069968288545276783193769562773084907964446413446111297486593555472408736737660220151806186773819573180728193061121995852082775716880589630449783125981963551770036065204286869569380643134760450119152585318812226451878079880021790569722031696398081304320205629089347604949728825562871212498333404831511618457906870903431169413088215276773769418737908885459631749903735373400323997745435911942490440119402941077447648482599052667662145749507029927937787455738993109021510353872189382893529917361977779076794945194820126869037328735053150417513828668761105383456058093947497657324771371931645741758734760658886878032419835790185769007966474648711153893784619768113208408295682401564275954509076125019913250755056115572556694656594302678185143527128782960445294158727594475985663611005292887587116771516482825592730844183648374339952194806463933888659030518928876255093201780326520434672813239757581398213347930127211392233440596387247474557129899225164076941461978187304182302388942685015443176956449864960840149374800957171698642445986260253316439492218894863407600860077179982746298889288627442473934415224141526017812900368288989218656542061415060143340944771734644434580613456466809494193756045202677907897905577563071138372826922335417483706826464813773967467411630218270185413296563561817225870100561426472038627945097665262085037336054811016841512996206548031112162640249868120931520159176886697941585330752415339879874674623876080408196068395082087826496321730990759606988970961644144245731029838220400398440036949934938589420387946055342890039181477846864568917457813948149245959739162015381193842700718101110805610862620512043147766311971384204461347423027343309336110772221795438430243812037235007051459781529967452284296780872082347268080943445832760962895231471535910508351991486302720955189993073365875106737942896662010545212916686250648940726965130916292976984854768828381293061831712814412850296138728081572320464851343228330690715418791934265348082900097669906181773129424156561696484939298583078314290198947672486461055217807926039440895511466395590570720092506755297679365014143641032799753580618673682299185362169662898215386073692949406790675632476935226610576175980204753694451754741378830841390198305405034111667238734747464114392885830805009467898802643762448430429293651110023352580778320155913626148175947724387646321883572160418554795664812657528546021037878702008263560781921864055154033068089479149280142856304976232526298299759164789219203367152931755974422892734526910159359462007525484214879495696387754135239344887496817834980640816979901047916875745804023315274618162922159697828321024452855163607527644959240073605932000861698100696355389355676505767922662175236901877137632682020993804419028638722918948388086247998768584096103650684270146208290481131799865046646724023306914099670099234088419069299650760796663130846369762652445069239531798635578791495912678451520095575837754959707562524693958640149282626652788968343116603074114928728095635469140393999626586395076265084871351733552931820260344302809352488013815541416760775647809467882321742214182741918195290929815673386923000719486564405016124471386265432501151305911981344267407619974563488660031741262253591094649500278717588404372289462947134730586222649572325523890826930601519152417005624151816391978877082001182930385227097974494338680711599247819426250803878113727921249092976253928326271025857477564354492879227802844165333621896164843428541519783618050953767690181960184972437710449666982384015529290752804458508726335156327159979206896476283453424088633512944858932208518117473430638088535371163651200946708742666535753806681435587824379671661190842845940986646502482853434657467688579790436636592700145018631606865960009900309332244653387910536267856729795433062034452064504703395405692130298110080511773022470032548178241405976619140089102611919416656096472148828986198481908648820014930264764444863781055359234202004041673086402790737275104424079082993286224385741641395029958684240854478376227792813519596242293194137965155099995617428976819544964739058923321519796505032134994386659775410428620578445703229891751651278791116522119834710634687813480538987165688970987364701890519301817112785943473708680063553163847500767183091857365665956663141825773250138022789991761408980305018193243143973912554357542018014269501151616873190531394325349240750245636216436621274505326008847153925477244019210725985183744302110939797005294321968168308633683910277703586434182319401534150793329991529766222981500407800899209809107963229866754359703210007144000819593012523495248345520677314740816776203887310258812210439860536488699512776420946843256070689051787149875805064788839101883909634089967089542796888810997275389094447460125919983498668172509945308189666537322920003115922893620922375918220948918421933586920626481940525453312812313659853407516124692319589660375509018854076908693222739721564032763847437135865301609857939805253338142892222719706107334517344955580871810616530943105332791245928855311043053267311713565961440136228930822932767316872742645775820730999798560076990538024197542284426204699299178554708485710766913553858143485076794938125364395415085072945792589959937571136511318298720217823611943967500545771425138044371278359110431935814656864088713133418457594266803639803837647630553296740547294389515473174976768036515192969172859532586399847447882294131284667526639214188048353825260513559745604408552390963190927176735518740947318409716494836741256467720996334036175757269052135795691625345842194301994777989669541664734517339815162426711126853149194174835392511673344212930367964557290462071452190129493318477308770967441865464366999062576124525629439878124308770690504775545363505602415233069443071480586628117931743753455449198968502587894459185462719915152026680540003267589913215597724143216725330021976384456991072047535923600330519131630419080118898912874609949845368693851498073076333256805508792621112529619887930937988414186704419636975585618599062484246020054354311275651530897678583740091516968842166015358734546828116837007374444805591732465368845610638447107972207644069392535371701668516285590431666271445486057177415968856727413821957863541046479011270573689045759357106112966438067268097288969382084908082019132699653814476905576832407153908796211742639592984092563507802271008721233839239763073174245695937076467508161783452570404513822952445793294051980649758097010413804229142818787107814473628154182702840234668389426613079248496348613794705147255142441787965931071877469361416659945771178215894410744772032096006668892665153284695145154431114899513675077093203339721865712343818977450828514344074972078619475111658288459567968346368115865168232148449605444774327789895657916830678783630864192422377482357596756940805152971022336833819065362586385522557347628291112342392009328143806052636449490869916487845706197460618684854111317555485111995574300434913160734320917869293038353116666671913735419286731324512285782545076289609890417296578210132551139626086286947015241485268932725418881521224023364946260390275162059815202338518045991892124083288458486835029372332847976412219155141659696174186640918012580786832277302873151009062027362121089393299800168476213567834892050830155900064022156403320742279639200408106088539994978310054108409287183677658621720636894106518417797891077327042267025802529084359504346209243792659040606304842286174358191170025024496929209227472262992358032619139142996780045840919145939796800462453479540372532938567956818075823185317660070210091926546189779628056564429133555035497770638491360615718235359025855293600703131920075180350241954537002147677930015458525589676324941732143703299241463219898047325451475749996266392540433602915998255668680710977580566721528435632977231646300789786596646107167786582498488489745205962816922894280694564419231722816611724412689933704339796410244730012180050120228318359694567617418992009160705747870063041575679876172702945147982971295886440791873843793134290899115698764545247065304699798051947355860216744715131109343646471257751278307767920266302965181916257232039872019345168050202223413162694515073671041957922183920002391799978060052018511610695927087616533371680186059101492728401631425687343884324182012471492346288206267332960175381009130612752520925475793066742792762652821327330407760448822654534602969193666367697818965098986972115926643575031314815991762935678632030973972070179246182656431879145355168685354991791361603336042499856128276057001693236901990126830414739231897237775286646258681564429814738269180568164444591113429567848456270670776611979583368528823577307899109614626868982419203673034258970928464823834092573306336786400132173577546227342457257251059191938200930120640988385244691223798935905420875534794514593827808757988689455092363527759867843938129533202524160215183809449201315719229777739664869023755774907310508249355361925133857845375650507991863397702106122778770599675482170699950583794396689986958897034828649497456249695351708798837886590234724420495118372901139155670777400121292385997140715843062388666559024670114643751554434686000621995017246465431714554153492267026184668996277824003661655335280869747733360361189694693176513292215772007041203817591638952680842584941648623436695549560387002853771313966255163666434129229400498080900552260140552757331301132306788916512941422824460213386060812548301631021495632239766248282628714267757153353030496500449661076635993165823935626503488342352338438502120190257958378311529444230228230365734128668517465899276290300287173176774660987668429611125394875945486070217298870346756287945349410539772057254452488923264639038855534541483024211584148382097041665674308004308275865797812452245956907286584305643098281617737315045748326779621948263813556565624610020965721927544442032118545068689732520860665261544915409013043597887096064255847247463038231939577204795286932180909291599151484074614760288968952529127056347146963397305643714126574170687685200702566341727851231576855075910425067475396198035277536178914025500375078132000939647478360958146390497643327781424177462357696579584876336045132062058298129687819295123391780325168671673335208003422716230348555792233822066438653419536082018326763624264490711317231570588378479951766763864691349179147318394575483549740402402628511525451326943049549001018682143701250263608725043993883676256559468886367156821738882754412265861798803090992683542667931714924161098359500582790419374486482881084895451161393572018078215724582181766596377892854992180439635704256243305627514923785344664437697310674885393220530860275164737968907940068825578612169238101389567895574286345409923566998471209216943942164085732651643660057615897648580618532471699573015308319643300745369010343072852575214911028133748546487830019163208569821096084939292050191210867715101246606072192764769309728486523303318357348715708710131102873542389586771125596213384491571309332945568236326705735154267078710118764198218623870532730585036847166615639161083447203504428142981787944779095134273890353100009801617289375956505516882387755858010939886390145864221535487999215145424188915381941300969494486756343003214453266637132735772558886946759623400996723148385397077842739610857017922801810767985600769343849912077200108660777796260142798438184614777004385581053628813135798943571282808805012127346006939384781025817754083152306202478923688008190820046274043764875410133488123858012072608030232514673852581975465599527397405134782020914055008410874468907274491248246565219255065206689549026425859780847651068826702922889515840902021187398269981855008850918827565280424101061531161805142514612564642945979431442279531350820335224947931456007616140358907257487929267702603830535209889062516726951882661402529371050961952611526126710050058465771034406255042821181717993558302591930710502665849806424938322399090068493833097360066981787327531201163384095281525542816257831328228284875294180213766314264512448425523944078679461934797042363818716231004862042442009161062470379044601339911286208397348513461414464443558164414528678933544228376961890156616489002966294949490291631809292895399871339409183419433447771041185764532023959718070702859133583779894334789924713378973209594683380145731277297016465534484703897382470646116303582982460424241393482960283819893847851373469330226274381564660815445608395996431690778494701250706918882994514176583174367029378176789423599281974527475420342996143805173740838260866763342950432970196760738319823936866290928557083990720805153974524786824193468220014533623236152033528514303148388033871757318987758863547779042095540377819420306511611717373415032759429646762189592099069626049969370362151225641495691529680958489962380067831732625412927013908883411639616163719960580029110329481483972065990056324908115053511356613846364989825948217339448078921606750445910295291135877698945998168296782812436437300395540740687391008594971204477041325465798253512356659746781769674151021916784731370816919926239082673166820499126687047683485626815305536316185831429250103721510142059160967353627902482335529959620933911811603938890489437119500701486903133786867775598244077781136645654040323935512645384156179675832949892633279739621799857498078528581010345303416618988319002914338996176821745911385290975332140116752292998510301852803396661068483935993994653947885442102231086675104797855760255383541157092257787920088242679749339821714163942564163187810872717690218482706469626976000874213717344081631819001697076827344529847663593494035841428789027649040669129252295998539097018570557211870579916040820961417705627349884682767406799580738139975396808175106673571936681033051996158531719347777253688009093125087223335510534865941510831806509692956642927573837273934295410434287258510524932292967871489932753500967283170202482423896826639361527512635315444099144199709872200657655850813419716666127227660487428008124933145099035060111359933762974221168408803735586800287079451733747872398161056177684908153605664960070701409101727173243993807635906120551330320235871434268082338830122160604002605766923504512665005976771841623568225480250596532857420023380549605135815202709237310398373733134840806775034208856566725137729639075026074569694793379928798662915208309880188667823302237985722722955985299204530447503839793953555257420624063562989524247416469757405819453429502179961230983990750364330722281478686654989557702581470915371154081905992785264459061096521279509337455085003323622214130623336143416604119416216261531087160022465777016390286925987502997881013092429977708001930526343089811595386690662534163094909664664369061538384272741390742989171895717812554561498693706369876987180044767122930990982834533432835924568182639004894149613927356361972523380754284168716563959755932137269611452297610664238924660803697757254255820308779154624602688888923951687006215652267900705095060504714365783054868662901897881553279071320040436507138106297450255663756417598217428320518184158046675127260024945209619511984311725573577445940724556851555868490334404570596845876547084770583177532631543851165560286466862957765973714360440919343837771107559397363972906345847159492378307070965895816240905036924526569819858173504858105901728599601381228712460357569731269041853962784611986080593644020760193596904728820255535092862515725448736405879435136973899259613570921427555733661637450330077200675925827987092815999795327325814180980721548535264453980869862197362098516839759442511996518238116061969730380085535998911655326701193761584472150246175745568764768456794840645513925342715555912708223276965184541250735665176233394175306859078702607538547459393873834864194749491985849682569811249675006378991761514663892903694480883538237367106827922692819631201621309890973640873247231577834796108107675236269150636168213399457081935715558494784576282115310818913847898044822111046785144584936523509723592646741219577175634631049858952108169440221846506379765449580715806072155071790005921151425198660300304079157179078785441354922247712676949489471741426874281781972088982273323214478093746372691261706243617888012463213301637539947134961989308229777137363530903815186958415434683646211931701087282744748805074793193910117554698291141425559843864856596890775582096095347664620749125689488380294832267514961626342053889767099273947183735560674483982776148137223506166991499100030750280415733088551505411443532158354664782800982994348467718418689724119423895974098462906689780029687654926798717017203750619597693560820176975167698048876196559893015257912132869947429029036817238539003954040001446629997027445245944519238218872479120470061685340351997850879542009690511793179162293489548864325115768405123188194983429401365039726265613618000220519999053904792755921078525593412556944064143596080068212987445751787353091842305617178353287963854063159263148025234388812092798330890502287712458029911411153036310612939106447862766259413044746138111588573671518654809903620756442024277859156006408431961888159801964315592395065724010710915639355269832676861288600614262336312651256264158714845057275104829459915174371593548612115920280590472921068805346289241479734282812570679694944803910524694280646486843718773559452457192714646123164283147138425294040044390135366164953237300092816901666461478820349618667935728908289266927658593212863701611437548722846407149572627684135618203849531953968637492557129492895596892333247861127786260089527569490571451111072353328103301508049579325072070019342033827804984633998198251582567737120461823404225449781463943873516200321069532298468356130663146586701682814950260785373790069254378125865479665914816538438637380729984208826562080294537201193940934512242356676929595844770653683107076411882100253829368286707653124106364451476956112964258150876709561486066421572350114838761353572319021748002869391770112439552024863966937441278693646890941955130365937827848416251264369040076757301061948359386589764607745131330502983511960684483008234706185382676325961692791191975302833291742750663678637361176938342999019750773627141335985339840527979834198301910628621396705929906592586745839733206849893387898088221073536375971743170652951119729783563754106401198712347681868436222024363638486950017931649335002522257405470988198980873165795370399438521090271644887436955067895163953604742023660681088596914233873132267815469662835160060314950130189776853291236351525779957704463399056087254073751164867260272421234599303577385577171665288270250615909895791942264765285857358881662349977026908976113564661158411985795848357830580159386965586839903969925624216152176611525758041879783506578872240322451864841167199030768206582082724618786444530046452701818319854955861951631099491551876552865508173292593729869635834975380864046669310059219990138280714567621065935536313938255699147100432052551364446421243645578111007900752965916736294171407298280359862080417320948118552626142083988696284541197784597554121131617788811472830384884967929488135390879123186128241738589172253602666334833364943307654751263286416743583053204501938269998642501426637749559503388765557365314160683392421138700996433256880902974884419542445076391979870486502098610596493594000178707569180568965989817080711103251713101400822579595806569996873541765981753858650914927178558065432690099380872828260632574609917657925453935427295129921703253813603018325510921660727038722248876344161946205224851204472306623661499954262831339391601994646180899203393817450397645666519912428790514915715956849027629996713192191687906430575355201857953208970823055592699397738456241853265724751144842857222012159885337324609003963387573430186739321979305793033596934537780825927319481124986144570926609420950248772147476710598479294622840299356883107351099590962096569637454984602454883401262814459734524912799608134515598778002254645269426230515391871683344757640821444371380622203471941846213108182628295421343071876714702414379823263064652882967967774217006136399059364461815254517733745906948404639047535328807493720625048167595336394118631616783730842975027928800308135824579362883371223115012926769207119048315686622888462154001618068676396760174935666642909328513094014298106306330148353531607614615776605843614663545577965128858129978103396771698469990844972154609482173761676585522630655865581581215550995487921299413953186496702748463885460934154781318480752365647956474766649728856170406454932841051249721222822284896119095462759984209683694547222935040540172837987289134388363242207055835614309431764910942908234896808143931968485535829155381275877155935839739234857367485717501727209902943531269311983885268044503711280971568425027505098447654757706033564325779756653330079850875003524314748997715148203755520890422616276937487847111092206645948429103611524771448338747241187474568023657058021976510427298824119881506229555489533655681228147661232422718572575224331886730208473876673257418821477626280770513778255992165203770195729147325768055609966440364379084256697063606375342959048161908479944847652691967782131393818891923624870912212776445512743297596931508709318940498070214648603123790722959036176972074225181370262559107859022413703743451748621014357947246968165247233831263128000613986966374060349263449316797386302261675283661240519403084647607865385338486297197545936710254020312961073677773731715124909784836256153857942519773418147540384911841287728727275850548725160679859206587562757678859604439383557235204148052908347907651012423247474773312693150494262732558669658279703464311429259342126817394490631409445320097775056146894010594541411594244759769278256594534046766074973662273537098490683049285837995229585070429700445448777875670507366335447039626224064104656018584734180795470036644648737373072305063042908784776558525374613379423976436652028278292844098131277261432619773873446482343067687167289374865806677780756948504237849955417805983017700817701813807179645996480581235115431317323467337092628565715552684018800606416537528667851809389338766521376502982701396092829081384049100281939069848586413077150812448079431700445959864327600518801479072176581945131192055398016651963396368769437455969543683520046152201548532617195159449487210529643657718001878240145973905465839456142452525556376658331022884385639435916855165909999421513053579498917918043785044066306700175578294287553831391999970112810510518513692562750295074390155141730525205610308387947349422366498973913438933294009156182898058206083964606384690073154673968065843950224439573597249043496865092282600801967650405248194418957410068996245605095296502321719380323529208419639290004668619997730830052161039477036389552219079742331990966814491173701063878234825748632773086696666376623577917699182199959961241594583731575371553611273528101481977507625021233439621293435758181150061241677999503153772943266975840311071432589753465213751572767154088546729499920977423864213528721330694531128084746289073679383955533381064356712782291039214388076027073147623044797909945629404032496901355492920096467340335707914731311943837605951710524480523745665175559512836629859910044245797210226729426350219297897408744669765785170782047866964627015436668334105311831271857894212609696691741480627386434780343108267970940657095533565697122293514256749605535376942330476318399398739708610268414527460777090749625969478010034554795234178030523553830957945563914430483071308170386725016755569557432419902843777053741775182321595665410995737433201921788217291310430335721040140898472372091153317254440451369954070282258618707891595147265394202407973511086304199277188637134136244507361616579610881352535979321022646370165072889323233818401087044040914775290810531282151526641640503632242814031287434725046537441849851563195439111487993382025537209611710722448985652232790299704831649326837419996508444529258321158650573205371385330972296563718313604137243252904689829331893997299321441532825295381863931985164289765808688553203837519320481304921671443249433599766972502250309696038711217852540224368654732875559595415645029471007237415850098761544935241197765455672236876649241566800028697309308688106520253954963827569464363199478397078498990059402779541498878074151479909776862988600021658297143800042889542952002901665962236749031650611387151912434150319431445871715868224276160009669560626069919026913537929464342729059412100379575559631154772789757379390653748595986731518755253745192179295198948968030203546149031354316024673495903151059363383780003408857836124326331927490942703391391867050036406200135771669094574527108868377629445022586399930127755271442149712124530478673085633646383941116535409821770771510540692329511546272542004938132033019730653839365928511505478083509192061225897493408765632546673712725211451848327501469871913650326044264998963168380950564594311781362228727487582976935837047494537562201329867224227848776871509073943841303198058794099640280257009273287515859838562990647692102879092434461952135952008156653488131716096462697938760259733959306908857219262519118876571559018945132332591193402603050058081132341743500105843245573818715684555190759465279201220877856665092959637917282336077978243614257200480073075255865366832761423451947433682608194015075928470136573106614843077301471475296627166398714248314657727681890453342658353849654826517448008022875438192866813206284331195898981652139001337719079522085803196168753494866774416922380962269961509494578359135889473800469829856304861244128912462346311192193535857289277087538800366309323480977980093386457104132776590369750533525846037138095988704830962731726340483662850335501450027426319151089335543109154124705855502749350598093392416285877218606142273907895564627701816306024538756096512798005919218220978436552221698928760152780155845729316096776943763891460761887946341448292660687809324325593896738010160991443476685902742699171989316918585918099229127140969433780677655123676571634528951253801232378535228504942241835539639331923720370452003275386089674592770562450536011791935121613791530522478819605572360935884863876273493640208995465302043415645990488510926426739479058454845996344027444812509836677609351837943355162021059084604955882295270065955683279750808354377890414533362469029906113020434645689634777759167800088594262441886149530223056594471077486862318668586069474945634736071012691663972232386703741877038412968804548240046855499802640335939246686664420801017772309486447716267291052781234454739298538449206547457190434886716175411474712615021182480403533624299223989021438485245801078386104142515408067851732636105792566728774941904178526897709611086857492247047823956229440257907330524430593191591017733345062724331007031430604027676217975210197720856687490170944034080687661883107094799718593925113058176383164352603273661487847633593282922643172714380811780702820178591870160242339072428832340882143926659888903503799131101238595132737973599534609763088028500080359280641349255825925615370443933656237655584489916759492411112525330629596508296213099621740629208296500799659326777469754548877880451331703771409813320364844167129284742291299442099336687228504186383962882691600435436915130197715650433063700139853255760783207122674931555721332042013184977974949387071895991611521811054110509475691092702096787022833721741914140453266225690121110252087574335659846803292956937733018011307396038755567849444887994239929383075122208219243194592504692868380029940283974209632958985566263107221184413412814043655534071511222211384787175426571536443133351954158767547836137308491792690935648707453268527120325180407780619880660898982920191301993601389268253653824346536007736269673049915993206172372381477991069441024062572647020867647102020426681734880272034403013589533308405670146552663326410403383533349117500280589133580981136222238545697496302806705709804749928990639361071259253854837834158362826683236220570813336029781558156152389049474081959438991404938114943486669427710251960872655767816531586268186002838290081836987077987149267068933574255616960426316992939277450112284580769490453738629210185605140567959916451058542662139856984143445041727245380412636930244539415876984216319621298801658616735001514884942220995410813221517333924601230530570607028476450820361909839380105493676169787066282965823321230171118428865932318244948147041033739287503789887534269875832754954335099313430322013488668866717491926435238256024778228824773803205554048209718561185829584251894659333466247037226464926783199473665491900754596415095072423541527256901131915392700159017735485699554418438796410456818875934400787530505927458888734793381995538374441040103150865178471232725724048646861307499220979532387883540455020526835993573366797820520505183551281526937625494696101040610302141174133441240978506357253655178965637958073793047310723777344808184013150012546448063617572687168564614113926336419774895956331659505184495833002824200850909783459008167673131720458777064064934459857797442844564336720152009367529482702027297940965285434415851130309259342788605792132767219216683152446804195840905058413673299994833381695809799398110631784757766395481972422492435766143028134592385450751984724519048337075011603111870060928943374635074426587763093086070762642529489796532992152138485100932878774958884885115428491455807057723607122462234624876473880359988802514915188454400794659550382876606240871666497039524249565169503441599090898297453881029926211096117269505000772583238224502479507377212112848285648669844683253720376329265680857220514819721845263657142512773735637098357709471288814269224631054684515444652783782333275549759536943236141749788704454931639852883436159090279081972261319077653591099433054290814513979511823791649326348162488638566094875941702396548883248820052859791832145470062150918215732289699083294288597853853846912699713008805400570284114098789740905167068218595653344567556041152918238750752789894403668033546465062455349818620713590081409069296291442579753651942839505230065563288329692102561185681981853404881694576134066630588803853200911804131746183512579958004079607148291566409339309172493673565891809678264182856454352163482777837963526175457397117415581983190867441888594771702826699787228955097310048574723377764769467582655304968595481253013661881934342396668410618174543045964639611509965289299702286143712134815393927214616983838038718862322829774338624902848647651931599325449133669673284868400513097040743158517195884943579063755247575361720882425780919666155731600428385926895402273433836203852179819607370476353491327942091117683970103886740110426802689952699782470088210445349342845685662961133085955185330445427754009004822474635045519777687645459077229089135076849148521780518119823725772171415413410836068194625866526787768085681492777520187085546415179063065716342460359343754536381773986825675542682545769411341273544741632675511143909314605877565161957739544830189614710867607519525153722943461191132330886424790922796205357395416295926685816568736617765325261488966888995969292955824789267400439227739807505378109783027905102029342387421703529196038310857629791289024062812028640195601726595008554976840230610699723683771116620566894983515842601079426414354530834550771699300592189686619721321909261677447723954045784267061439133290884481050692677943946517257574626652132237097728686910784063230012917410611771884098156170324846581169725882271212743082718712886186712383156301249996541521488469139934898250817475676755728783024170208113144040002567471372083605444919410139218195070769315677483198399990834898590352273476199848372811968845312298092713679944178119191778332506882955451259474899160164420860948479363605458409750047210664845856870862540065423007055757466956492237252944350116470152503140253832989347700147522603428765713763549001960578120348581091067245241654258008955027122791351691801680871097789407914505373585154840861646727328066237446121809449287648501431746978582187604126222505648873646762496125579493381120429983622903064194865859426608851720225780067328709205204702497775250286008720890268301877569198652457468225159817114814888033666058715780064879560448120531040589645093537211069658673355797377897981819957791787080611987063446136526232289457398393724439598038091900716851857498408396211382282668046558951254426782711931101218024439161068270984886862755343375762116292085460768016637111348591899156467253294231645395460207840225138591184510676572105476109595845177778285849030270552646625032946173884831430078093863259970150747052392081077122018842390912945157290974837035530536593103994734994097039007029009575608162519468095574251600294279593903043018378744401032478600254676964134346173643908295984927559701356359745182592553326191645588082208250925107065452814836334160718990077875443887014256523499386021424145082784758610063518052623632532947706389287056017847599038125066648564612803798506180557736767435850600851325006650799449896349655001681672712138040553776783217912393877579069786484493837234149391953075243677087099465487102276647060770729381774406178976069893410447429406090870385877127862321457684349992551834086603727819869857971873942664156492170625352669659700621403363053848985325151259615218218605400251133921836118303369662192041280267918846990459193309114318217941198886788067979857055917699962838466062175564351812038086723858775072232509199017529965453913548417245885462828720607743030695902159484148528410843306627838678427092286693731635575856892963795594207267518200965433698805138617461236569442380986451156666409690698449198191845719993332307971572199119439202044896279649360970530438947963369060422427003233770145920360162644922028568635637148455890876585328519736852159320179353371745005064040268512866629369681393071155206532246208353512806635706637983533876508012737698436979794738103079792526728513824258438077315518410570731121150720194886655707359089173367822141885555564923808807853081657349111840650001448396903899276021142004987351014137447665898869320598961974753557981593876452212380369646306972413981471566168555881122811985323954008326122398299536883736493454879291530354884389311034683171557096988860427103976333432670238711933606038339020281955632366930168573154070154321868627355113504236573397472784624449283180313052274321888038278081487580097550575933013104583420021376729860200518788082999888152930101210111723664717321344201970304248718436457422038991101589899463247856538359117612555452486768860582160457343691698484303756951407351494332687097916830104126612639515525776766187531475539986500774664600746326889622297410982663721451159812016657969199535412200941259262218072170712475988447255582851247036176437622896204151668906851072855480977231847107223750191471140385811148300072883649854503408363973900076233700179070327112852981768587712893652540000380180926264146196530929379980473441006845109412473804289351856199320095107812656027536069357169946286924059965918767813041282592901860823183817408684686342268271715803299100369260613688539004093150592867901551202046244296861962834201686491262718975132655264905901316574159287177898323171482294666421755172280951416538458176844396842917840628619476417549614669174817817075125173034076167000679488326956760956868536642621627939490643817974748690217717176100899881199768532867045085550420353940096976495376284262714631578934648464613981872327174676731093965657240246116721033926838909245076247786725452715355596544816142794967771688147435551403837204123730710872571747153998598832490086041361427492244439109267605739716239272350242602797847591281751104189547777076885132207740433840997349103327451887700021132540137038057908985209605806934327433925624028484641744485083377135224410859902729006377514302899416903475451375310481007019714647373904756003594298747006008292283802269552593942584757077404165217409686311493640149549928444925375881650710661580580682743954164645095629478345853035814667075520067338731969795431413308577357334621074879723341588945716264224644419522328283578559402506703236877205884964362687951635355535242214081876769639157025021959830444673099759996821223098298291371875200300777471456441179997823708258876310652165206726832925197717766159699449915801521195037544588101090604013630082673469140045165251432842220103526727545207515150041173609734792692134052205645079259330137765804043555272433079619264242419706471660975034446860952253341487902247866546607851412675292313293731040224477295648620847479854348589339193883563646709000757535257689723239353812666260613337918341587373050125816130340866482114425065627292965280974181202954057810024671586317390996330628691796233436133262719908132303097836966146025393613713387677540628225356954342367821463190358360506576439118620363744780496759106386939315604429303963355507910058733014524629163185556166758248411059516693255036743783464118570248249456432260797098548674818598340146575057888067852198683877198353967350216870814081964110749163814743513569982424046506243890196487690336332232380768867050088111341240347972861051588364456149938461727486216368696726921718672963355358547630776127327133176571874219560547796861351044457343647655709115989971755935751535000377552221567605928071741704832188206630661005238836684303927302243078366941868068370721537149303646933186750125439917121227650043604283222400120397998454627835667254365231366110375001024866604072768082349757128575331332430259818841061695128260367571326437475411987770124751313754087692511403224348605120233755599238690993496101288170637638382017912720339039843040540426032525776384886032059880687829020113437479346402228247399108251336635481753264951008137702654148799840964860076917456171206827821860153939573887908703676374063401664774553023827184668765374643982769286398864754910617322542758812764555665379940051964692014522994704835301341806171093158258044105267827679201131974187213143354837417190048781302738572304891296384260131390916304884331715998613393650440719192168379896393020914321653192126715274173264648468197243454404615578436875629641021583198956346365639664596110887750886240857571284918641581060022934056404830721496380829027323040970267833832685731207060175592676191901287710710077326814876587715778717092435248833185599722205651586986814796321327490112177312370841459642998397572802234912183215491809813877612325682306542477686973908099435892032727297825989248054050930907633225534046286081160908868954708749799534996703380507737408045918310322714803321373769009848216954442085402880808920138403924412701583540316552789370153506864890774790585575076796674475067595033284353777898896148014976882358587851100604857284326046186859780538908643738261732966077809626171507868143697913593298819454267150464304268932332335758142488159947221314081962276787194596991192939669468664604043603402040731322038912816590966488511701233358686057678006765094064475870200884806895921227195737616015527411611786161217253339351645799772235630244127132881173252150025414999790122657355498775131892068950897687454926251953476543176777055826168883209115856611389490378578009550730707713468631899364731752912480678292220501652699058689206122764745197132270998668793302071141997177185901007436363377204753674119018553864384233964454171390856081906919119692141414640361145389555157697592633279221049170291829869750336910651487376770322151432459990149184631998708351087699423945139402072511905859704349122231553072521059426164141011676894843156499072892544201668533259920765293378488767473308344891429048837966588995306504216053514156714870884108695200396086800241274762256746663310551760551591841529003628043910328107819532048282523248171201621735578010273658588237586188679080142258046883064957077847558415704765787430037298303460311425413669230329689415248905878055667474090980055666695137659748080348105370199784322476521293481247822460194441116856804619279121983589545189744598018167389360503258943429804717699014704364352750572959350956864401695840668560475777196693062802180594114023240043205887516325001682540660026374414244013568101752907286383157289067422163168240105484640998528684194581352327170088588793062312290996639496568323350221444262522821326258014974579143144913950613896506262417339604703290459213320014648498488636529157567950835027815295864605345381563643349290839373743914154891746158247104267521319086942255772066328317263299127452975906803390316794938835809274425631281408593275339388124896313353167184131627289937385272853137053033434042129335606041049916336274327294034529023574195594344408862155525685017908559467507288225576974650099677810470282281593988810754505054007854846970810583346887015112169850032523368844595541294276063713163214572372122430969412319075296141310547376831231264759936550587663457689120400176255705780147154151104160396012504627436038588984414356729829306640744660077522665913806093460238499004414480746154463840197050023812450735322524506972915754379869960584817805488351215223985260812797536681848027824653527312827677915233827363901159054618685830286456928636158849207157923250127460796220451871435709384792034678834100070645508025279531088500016066227684698403545955515858899669999021622526935987712448918103728199638640179729670744012462270317763909289739705549312735056364678658145124698615188285773015131977153230571414641609280138085079874390867532745681030505330550454632045763967867885870181053698677015521887987264096992390627477035848258150375047369633716360774250920634623918984189366302166680219974637873563670902965562025419015596594158474240949145822201149314535295640790286599561204567088677081915324572204761205802335606690428859201431953984879885226658429298387897115411682823697443715932695518266878218097216937134841417025479940581054505113394969687882493272262589217527485881602108643763051178921529296344953004593303059267134498374650082934791853518614330762525186815602892095730312990215601349763281025289807386514727264960319585008886072422301729938596911260076495321536764319746775355120202741314162330225991777563860076947719512658557399354079581907161799243345075711766818362948805859941668218743200292967061430026229171451886411221275567988703520561244997779151801423549182517973161865653088825013836011820521691077437115951330418018172341794946602274246465580659038665045301367995862994006314388563536330064600842029582933738814601413727127499894821058890769694811281884385666916616712665650506492511381552790047342117256840943753435930271146137627447168314054818496983879464004725678962562159068112462545780048437735826055725452246951527622611342961118121438738339624053986943712413227499610002567574686374765534768306597606053238811153552568948128640702058426740453536822380804354780713705306199581135783508455745208693772992060247839413175323477386746564937894899294763948127494251464061693439479280641420895709811634400986454054736879658795482063703144735719506960610167842282091996950437520555047136689682804847712050737244072833149602729594580372143398820545958910547139780137354317716564613814702455377010994413996889556950036990784342935734967637063356694780012069393984309896270833479206645597137569963926498112321094985581683783466559470982190503117366878834501809305377156856471138899497800411283316549298817934147878084585714474793222329734020845837760045095030253365822559614410891750103167980625668033589240334763378429950787686441569506479093017101776767759829377005168404188885854292343665187324159168264271056102256448506608047208078835188206341635777709122382676143587657415990527292128281404765416136499710959974314656226965450577708604301210478170988621772279900909064468688668659549409033395716798718604690417644571208356463029923797575342309602178938896061134798912942832682177935885970251986559273873813293252735389479832594268004217579960672072414523649117711531518759461761558603941820557959054418220291778649773729564811242433492857892818934807849979799613828545651174819223556556784570287441725611574238388308014812352197718727876948622626507083084346603740359042740218027669333088360964262759555808174869382335375346700834058666051884969360793520597958511206946910099940990924934530720274761609334365937386620454005365959300544290709492043967090171463131834390087894063245588047662724926739455291431627511806700562171332407832803363102627730951582413438949089621654550269167178176759685114694499634150993020883031082515427701035242888045920664768993873070743726327934356743050566240063970549716791244339687935828639656774034590328475567255159089301084961736020072509421521486579455662912864842896411752706400456797380596813971298695600328992226339953076348223275749639925916132455575646266506143063076536056317792657267931153963654772152107596086767482558850515785627757844065115399609109609086114554924209553047903571214900871670995462387735842135004361472365008745190697361777346609916330859933796039001218680478725234872159736402997363582277987451438021541833122725970825787042161752228966861350397974610194375397203669799295671968823038346004467518808438243959006827620878186017600622182451374121172225023991662869164432772161210900452043603821639553510176738978837036349643497051429253217769522415503598197622369987807096801046070892744223239947402191083604652354607113828721825826858068657688407708130145479350283463331148554622283890091230856893357844798363249831119407000714020976502591490361322880921331293785712921440764398507065590456060673990215642179408642105370637536441593753935609488189912638645684369245755045529928551734773270243068138591313286941673187701472520812477888333239863290409420872319911185219862451304697288549048362688721128546695334991823976846117072014184247867612967547180516478578967674942580502487785838582388794019022340604902864622892642798804249149897179097476394318984095489785604571826543658586485972557534060262167987056094845171001424111622387134980360662251982762153644997349195559911472062713681243820313183356984270633315515793351753315680549839125025914438486716924097278260454618463835766714800251150552189728885370960671880966160864548926552989771757947515067924047205494506438022142579821461919065505167887140430041366496841176165610790193844165475641188920291182079563650112026396052931097234576874756246853050886539733180880132156590497843787601934911731724292858069643058039680807740696248493849487145948352202541167247758053310928667326556859751086991330210561156839253809531168942509717848857211510793918588584865039341358674999015180036937571196553837248180200042707198443584954763396907585770682924849758709645482956257967814481724851302125876193038656439859833954744054510197474251232670365556584849420978339146157684214269677161908629007125289488628101203853686444101584919889910360032873233564519764989648283988015652064426208340591356973223443338512042703148833772942689277180224066573173005528057160590540618714316252275350622954856918682981376683397066252448230359728924481551088417053329238551530990054497943059028202144684796730923838146472359522513636179268041597193083068344699476568948715625149079146266087891375556789304669520631384582389656336246200674257556454283385274260636489594793318316123668341409470313106838632779391544179295971591428216725706690744642481011165731714375358951158565454143830290352782856038776768312188613480888885222160288713340785282946786700690355976946061970793198113678537128679942174453133875572586968911711965390130870711489233899270269376890510804518920843578158879016843753145963326792031881607093535827215305697642446369875021217783348195029178114563277878318179484037183699453627213889655109026992525414568436119734557683973234870574171331172994452154994384076830435298871264856658820829912065072170697823478708449221390001953784904507125975606746544843074483489142619355307777770088988523115489185474294870343299324349176965288784583953820515428797868559436382894436757453992089670749299704394438805166633959433570911852542557025358748031858199470533074938317176563364896292018290683425458582098646023275718018742374685453013397618522683079687891987006749816558400170734560855264523701172425522532132389882898609195100884847448447662589195581057184364697597043052233713463875541091351581205576497625064104442120918390404863351083515406510469317388893045868495639189923905772130035854315680912893421356827795747897292489630541832789961352093906850686569115089131248123915128924675035853969441928764817745807334731995116235866915689284784658007690469346104917016533548058129015416985517630172342808570590875900201214774567111853682712151134337511576922465608978635652936677833114491718779254921676431493503276851376106658759431481795959284048866944751258913726816580043705400509910712393002895639840745808204644459550124829969384683865718157513628412101340054764328783342524744885897332665453087352706627356611641049715876503287306410738013509751085049527368057139897002647261005197801843243125116801458568373192436684364572329031197493353533547634625008221488058497833641225875639877414043068826551908315098657972839222353950264919085137870215134022548961359503947574296828125399196058319340621395169125511434988890725088502684522190843986277583151596645414717053516021537509532075213174666686691933223103229361906754520492483524253032812903794949326702603789543188424543662880774774796417766365571704963673935882972831192726498271866096689967617385941146935197141364628383039816240932910205506846824307928231724138646389278498984679866644789719473524237707109452531102350638265822732131995280546171829610122102978357315035076151320793417466135032261318862089256974074857989192457926864108541210155643532524660089589013438340687353771624502500506209710096825072772048443498221190181013849454195435321203301391038439489051322279492575786252846472425358244589520741726454537097117852257411150050358512026122285619264851896172751596381651049566852271231301060608090972247608357529042072741733672567931984698971087297544140316927055447281374764516068088605602841095661008043263985523548902304516584459253957055879196166248644197086082774453977941685216326080067129607442113710835271148411143556108142177365053876373056800561456900429167993560166573142514609505470178703283793940337198053234572632602005409244355743381405170971321837685068264653231169325468889038535651231478203464867791101760545517634605669885529529637523746749865810089064538639621740108877867888677000236043447239858012002579808815198468858698819168463606278115342355588085062360110543837326407850274927269894924245740440584456759600202530003238126291374332269165865717203918280052357542578499815970721267760842046649515550695140297951484151107320880009831516568783985666490630687804314661733458170151149976696545642408345004099262907198291185881868894941132352216168685071314550659035891212840663861089865685103434495308817787435831267073845299845493953074307348584149166455661848418087937648967528468309947891582056232296756535813252247157782301227004304122939433845874728127903955127188559065756444305180411614797170263244001350817968572662103749382202708197883688050566742879854980359469326703144196608686215111407906307927915941337337712095240174676975781842412080539490323564152290356107856588128449600971656510916019613760331529401936716706815067790543623938459907891855660603265034244694056217851357527263408049333199426976685137995143785805358037128089150856455739884726091465075068631910655839780173334044493242341312538201578652386637996771691413177126601651402706633803669164403558294704110477645954411892679832225985395815572777932767116876781708320191479577163412246487257726447605403350221164747644758831625367749206932881519492688107359501059181746369395880295679693073338504711519876906500583867449951305975178963870992643565361656824912326072491079821684429496307007851047809216190624281468805781245676575300725067266602759869102917937998773915639656073683501427669284875561933552710153042014707616506032890287471655260750916533290884500282626313869730192347228402212861049899715054912106021141888562570174203354897210624749392312170921674116655874462804299329852137646831520913777597404732110475868108227629998096032612100840494854204897030173913914150141140157505509932018395808922814249179975964992626095641908812811478993894415670266053132313025597530547881956844961334162771601399963530877512374351610777983965502619115785863427130363301269844777469480005304072423820327340004330239216217998254048523137853496775492802815985091552733930175656611586512977791241744219104918985737985803226881875891647016828771378240355773933077948320397685170968924777688874100620446512235387816380901614063785117377066917612421658495544201805262028945973428390044730443014871542142939157941487127770877716914172540426888207899806773687535814582787676960682153951549469792870373348660936727114859141568552268445299859380802903441844066839351853307188583730356740901869734974321891560400348199100194508950054617339540681107023339641882181910069095043373157140272941998835026948315565912927574097063400282017306612908833367222573000908025714544685552319639607212602726980899492273882567645337908519362835334688469472753473287561927656421136529409122738716524877527659436215113419781510859143088585062415803172279543292721460964159928841320386675989497059282653702204347659982416024434693893255835588852318215981874820124897240449330113910442857035790684977436051745906399874060818672758571734101641339708041327081709535333823720063414680429240204742353457917171739322360083401867684628813027007632381136621957915562041855932892576807492560895899199450340699345757539360743970092295279732890756971478294205881823595134659475540143120952414258628910883383599406489204003088983298222882018073552322451794169076494144477609853916893937957027699536871439152607383452659567447174815040489986253070725491583594469726665053653461519830984109283147627120748818680057378037268050907318046584711649117040435072934582816969617274721280172164000757975868209162347507033419934937294875037622778255561354862809367359343759674992551419491958493508762748750343403024340717860381088264104326187787101372437607434283449522083217263739595936900544723002349193436564561234354635037653104750764546925796956723714600140721879433370620802853585819014908119290963970104563805868432168391198148478683269620584307259361490181191650584141919345108647623367758095318517709513683613626685692571724032872734724563915559146324135544326759207951152312973954996726943361297393586567530561198682861451763019600135952863847370503548076404915897307982032353011483639731700947059699480677072614638926716647315742207702726766487438603473212420882108286929024128036328913205269366859613340636630907658275525738463077004006754600126397935128570974983075131821958947883596609237032799426878830611776624906525616345074537156830690653974632910337349783717119544232094927207432115288430503864416085107170741365701224928263557423781539852408682279010325930979055632923746007212970125994086239904494396511791955722520439752692498804227453737504764970734994856478341166660908650466113249720764947819292179046317500848685984742729514698170439296896552944035168191055236511607856140231282470674012710026865428473775728520412519862708728511460598785157373082101438432396555458944206314469591478623760599618521338682422995758352060993919364030036752739682090877514243028790051946613414581717713095166127055568823552146063598514740104832414178756165074158678341658203940372139324391119224876079626378720563634716550794954703358029151614793637602916702995578221658709645318772429474573825172003948639958909070393049551880088560023884401180147443083086761912102559599772508275955975942297575410077880967483042782122458908042364674526355332507538528653937369232771449079426428439690873744346952465968947707579598969068058081804673495334226911891426483960338416903310209480116143312388045437410153060138503780676577779342049633612162347108884882193520467430794568855194584568931226471739429187933122987539990625624274764343723883918935783583937538760230068577310045021809210564394973116130043551028751900609713528465023222846277392905495466392581273350512317737741991730233865940667765558116598516315551549300863055721655758856091594889283917811822217639247456312790290350224978286325804528480543763812227490964123573691019178570136268997573579900914737637266709894573398284214518341960495159712208054240251388972764690712887280543347908664298321507923828733464598047298326648645783977128805837396454846553105256808625727056256817455699601374227293016922523112205961988846462838143988523997865372134570867618400149407210777574016875590088089234533777466151974420173995214976807964363457745706323041186215567020733782080074017131213209641969377708421804724639091167860268193082744492368014387761153821313879837886025068297038650649373481381963556549992462169879827959287031258354057746163182657607153007573233256618827766388606227518110242289281729764506670833528189756514643824705582816633121218762632224592285714645350762085938454545715077738145435889649225596203914791664057044886006021360372917303407458992712776211655946125397901133978328308980566829347658255482533384792190003696781101007914134483710597786615641316140910018641471282502510811640045993265774509859576885554033572195324207859217836767599885083022465872889971935672261080160362321078386591874541404587872958028422301850760844627724170114309825300407612682583602052718107080398204930625313634601623508719185265530358668734349343473412018148444929818307566843609788369983362111357661837690237269248038784776249727416482274962462536218082804146095704888677161579526672584483875266539730602581442497842260643551953146862578264259649151882091941581042998665436355265814763037586795181732831063316746746680671051008849345837524854974938131181317631918131985436905070371121413038809712122120902036738981466119372167536354505672299717185867467313887751517092457147862371788740131771637636321129943455394427468495585396170153477018490606012528917154632684799175936948377601981019261349280175781343918300951756852472491333577202624899871118759964684901106992825418877550768928705309983008226858792286646714331588626455506578714304868907368014978712870455585350122816222708492119746633465189181117641067028330559245002100565980062892389679543013722680216605327120077305392039380551772283726669869760381930643528439887227306850620497885470533218811287104671485025679996233051903401325885844854459084696041968643923682279016644596553905165672351527502039225269346280445929837254149953537216480290982071429767496526464372525373261379152844994887657138264486220569928258694956840899815914619426369963601927012075064591264984333308910104662366055566123555796288399075324398130655753918795609437775902275079017758399788944985354418371133680269159856287467257352006170418528203602475772280388557940641289366115942874302903735441567977509717355062849278449043632153987250383789721119267214147198949389308284268829392618844234402940033825232027052749145203577326892741562653561873744600009054000958361500075837192326730368682521536872111280427909104768881586304743474336093023860430962734798984428262423098437972332361077159232447880245498483882422995386439096379329752267150277369792907607771736916557022314547230782722229328755327565739848388681489014034749858049241110229992551300297970325540834126346590130025048360736403083441075316282622557636081694184246139829572220382143179601738087250795937307350155907137952508974682111693660411688387736203241678287718198401602820980207274709205954524118019326487605991864825568579931532311609231850250245793441117078012366737234732203324462486779602672928597838745252620588852934988930460211644793814289747014288754800704637778780137821629045005272467806385748737116251431108743913242019758553121733391752724775460716647924761073953902923992078761251843630513088550064421562473818445268668423820767306061045001051945914110881005429109992761666923900544018404529951550724616152980603369828365512539983565023865157173355964355080322130787570428768464613574155438715381320865080153653544199125497383383451691530332058368096241687594979412042077707288633791459108838694114974112716825347503941852710089586391990542275257454839885527518344214897953430458424485300920979506042428405995816719515321256528248265164177798185512209565331431850993942069093793225257399835612463191899361760181446386503020329440330079982072050951433317504829658900819124082307078989001899987666696187128315736133522103432989431334040439437949143328940286498602695443863697853871762627724175462332088133168435526236027099061309988489437208032328201552356161386685033373025739244313680659272841399552146203958588336903594722960578020646694696421281834927623366599297441285605414736159519977354211534094166389234308082062120056908528787463343736658489487626557170778538132039636692913041638880170176861465565477217343004555733170548078375582576369526955931866282830080536039026170285769889307528594819641547072434556599327937466660093980280523312995130409443735490105159539823497861671335244881308184611503230240305024328036771129027201290594868775320347456538167613972490098688225955024534526289884307727827257517515120664081456923395251205682962204694229120721064250065473425328084577310865973418570905189352549240719772033509706144216736664964496061765806663657035132706144916989762275503843114561615539259318613169857052616733980213688017117939446174313553498855518455236578761900762883244177185707288201994897527020378710682203617051478549154259232592883688248165454419205809549687477079901304506743791327046808693258096789680797752734414902643295758270797050344246890643401315549399931849168516127618398380869609064651887986754224008821806938578551934192632223458560675900421394507652586623898271116144249694392142765626542677323244353328630314970426476444844883923257567653238094351324628582217343588430197540950667584831999140745314045026563037418039070956967235262125822473914653387969136835097843984328013594908669275914392823263628795827851860520911169734993882700258410965001625012295230678941672509865756275301338157672907524231386914806814510545651687989642007346683927020436535476888782947456215600188449712495185507785868044211086658151899145212136642633243556586365184150486092805529465559775897896282052045579982899639074288708440142844709008252084255701361709542028727100663766276931671512150428797465560082129216654691651502723594934066962292799674648783719601471019303843190001187923325790964861524718066257827399554817333331338577294039201450348946301827092713293738520228117906418375717090312006693999461193778936402804717141978241330352107331158883778548331009320870986440098051149504450581849390896654334454999887347299415218841891227933711384572073847225760005751936953873381167542517425736605820385379847425408735702107178672665148294217453881494613042307253419697294844580983632509344152933583426883643997443911846095583603714972966260673654215077658190948609342544274387164756509240017567062269869566255255809191991068260039054454472473324360477071584042230509836977356551093972330469973373771832656440424917666597441336413147496011844658509114379872627451238913293781550222362903523497684490715092335346780701052978340036730429585577994880149752779399858341884983124117058867969862595598043845243281675459379476801246966364942093234364834951209936098622395100060288545720742525767485724011530938676050158387066276508228974001059525436974271065045987218545813093598182892862346722261698516698308282362039514383608316715373691641519135655849546189462049180393766186068700077184397734037969435072183560702308299998052206576455583842552164594606150523210113537043396392517138408260880455042656668711226729927284952767772335242108771608509204422027341277638742616051681908206366963366374550831206535400957757795862706078650058586698787339800103664722306314757348783521042597935810986147007723068677383691197708984431715164190080741660298907466995189020570737964028001569751697950571199491949980465716541268184687233823962510889783431910164375380881772259901090382388850729255665700994091007087528472599258801424621724915353071856909795878080452045297942459458121968715980289590367335076876714694867400272593849418514646047038268384275326644420438598924208320262978087143053495429714640043646386514609160092715464118434995311660066097343222785507620370139297644735189565989458499103360847526758336008459694270647242980466315526787568247128066864068620577424298885598900482224968219090272190425992680823370175033852048616277052730160543233707256847953910940389125903980728224738585011557241073994497038129690050291391668756011881910959544716706660135874715280361958479877128484927259287222060882639572099499107977406525630037811376254750517616675076844918047390121987384773508758205111086297617914047654667534509832769992374879468100932300724205819746710463765575030151995421622321098884254135486816500119501874088235985831794962769980443952642689155449993008886926995303525363222850862238213617672978080587936433152251992827435336906681308579532573400477046252387684952777935331150290050544372027905000140032859424346044426393794064962529642135174162361021114618964316313559600232557534648180653690278931635723067579737045412830370130367770481489375058453379557532029242692469676028172150474738063371081442626821866016679563880915056979574385315054376625540330118739245055341514670980265527316558147623214770816950210705518244367212215154812373871068886709386110212924140058178891918627183294154703196341252777634820767503153154956111702921186245545655435857199563112493238682284836984225985580685687740591766432331700672707515573025633497251650515504703629873462429851078608650758964061813783494870927360941065459092434328851891198851977290698907453019978204977045617768937842666952540405371545440145565717232780638150781062876851679701506214463743502941279616131349115598665902028091680496498314247126568634724061800071633861254999398007926012773687886971176085739231483862121497860144888738132235329110089145429822338953183879207860774216107289384742177356493835061302344512505941318836573539270938646219814063696936601391873511352881969399467082734808138778341906750534355730119100438641920027975178092297662249055765008205717239865882758923317217693573609351678248395537728988177477113554795376476936517977046595330354207555190197562494406782033607929581051802549115632741122073418608485112608079222398317776413520877362168733138659793395045883038885968207743808335286227830445229626605699966617727010145494609480502939406718561570124306571519741843269901394591279261155448310288742336942203374764032475071867872426882731818145673082191502376255600009947548941148745456298250899920736339592530883715891656679604721920575889678698826855915138576512073498574914351626286303454072169618074764530841760608087615301117973022088199457346473032892120733310324822375659036357811236823690061435701441110698355440367157695056053451589566182125991706646087549843336992481154765463543204216768054274013636657106609498691774004770426405307364503248500083412513278698663649738515144026893878140934551881614099823889308394144238556592148937142864935489327906935243295129843479776487232125501276345717270873727701811579667550161651521627351222370047847886590727303167195442738254434866499004684517706388686360126310163935925441677594417299004117264340981741164296600024190900309654001316634696288123608022530384713290823608271387766337038200043923740006459422678469248216498783358394746929965691749909067266887479488303314288368211142850494882826118984688151729259686478206927879775882407236599389326188864676748902949493827339190544096229878763712370643856030388652300685386201046427331508797117629284165557652695878029663151159211103069554472457743456651436720608756615104044541991698285275770611038176605409330692592556145623588572829132745908068135188978757598197793973111018822722248064036243153207576791725522507294143459691212433802509272071005362371671543354436354585162544899688055647608915222830422404886277599723349961641222100102024663442380709408553022259922944511012033350361810611556412740539153411513517185169458554485559862465107172320105322201648454735773730789301220477038352429638587542627914748782689936339358118143668214221890511299551459943034591030366794394422400903165004106142601932093651742772225768347847655844481493216919448073253621840222595164267827630452607962689342082094409707093504072700277932394462161090599964480263251429623159485064679807066254425349064788066504749572238275826060423560283666100413556585164706191559016890091484983998362529543432266122565902705201526904902994153295386773807236935569909553305691206712204004949743500124210769551632485045870442012044783768514052584612075018237409912598549085141387605628080421583700500936891368694184777877493157510067603112823769271134912499856000040260767280364604496495425757162586433251450722771280931470159645392648539061910432749106447802253574605816562687108574102894559138602311201902632591797171494273850836101718804733004114008941064064184100196051306536795507362246359973938719797519820544786923766523636546735719144548837330658198747836252406753201369323825395394082160088620500983536966745976140777812448252293486067920341683479511505869797088036682713462235346532891010329919146343689878258779582532805594594552020002612378011950507387076985981288092865340498939852239846402578875975971362165687631800883502474662009053574389263013799370429012989018747554251563626427313304988153293444394369771495819121411316405879571592670240665389259661608858140641906561022379599436927606698075473720029776148765650844654002182987161349315100977471984890014330491755227540877617121582258025879132723068659180836469289662244931792311957417248691376192600522530064384074407175795660978592181886005417381137870272385732848507045595217258822134737001520984239883496543494654622728879128035528962146429586658408770544094753518398090717349692671851226832216209603163660640215966718265027011932119285759873976792596073729231979382688117864557065851103583816752173757490780172399409403239150211636702640577398209986730162012840142053829051482589812632393874752702480080391312399342260141225708352832202606568872802669755259140205572091238834451884874807957512763162421235317651594533371352945358641279891948821540091132600131137258440252752966697084821916843331374631207358663948588581013014937282948252764353514994069877499455314033207900177486088130315239096881146495372337483857087983419595285602581241187179508950809338227257826437432683594426997368843950805835572261159009403173355406981294278144669120902981407508250854302448751031397672922532637639943248502003635866441090845736116671004623365535950982436748281441228060194129924104959054364417779876976043988197243575472084478577785600125912270482156177429792374109045443690208020296834163789989587821401774889267390475772453035925332714000128297678660692420218709715897357622097307631267416989574237163324467306275822378391449909464511948437916803968005922820725443195109718938713367760604568894089359724864077929462302131375258435449729147844254645228400124651820086898468908938164247576732686695242441012712570524897062649443691427727336681657394396721137308660020961082631185733196404498671494628780600409987760775174559331259393599757172186741896277445296463957408538831682138825984167722570716557345541643961630973699468934293922500385163346514640867607182062678294986512535487039591916511845932712131452991044178740156024371564638145275743627621776318904439427283336860942146679757077182382736875066403832595105394751875901741469139360236645552951639805932306088570699728804629642619640508371210226546351369156113182993849484211800070241055130808634612534111639441882021355180504354725261409136751013129839678818611725216609103645261511133462835876184205985943963553404291256189772971547507244187087552354075522836403061816575558298580895313569439059445568071587639614054562449674027612323516707363798700547594900459553379673382198589353297070161577290126357890732636982840471363138529779472186287163858630026674859562346213844774918144892680253849712651868975978148481880227444650980100579339916671621850911777740153265295467509937483319653575593089603562586328644992564497161315673368128366519708262491616797723013720431451249080393997253514932893743531745974296195358066995131579587027226572103354251819189839600958558883851816207539131344710117888474460683411018098017228627994632539233861334873397617171530249352804898684306863181593337192299466972867478732578556383910219997807075201245498796495142744517116882368575774394596760003871871380291044713513812223022934072956889413752598662680580096810620907271259955716629503322282800542741652426654236554414086918555460251095816938927135096773538903573469369568845029234455438847074681647723192912356190099582099398652926292221003282480717229276310628534536957092799950252057512016577553484325010545332627315540195886518215807267408999211065585851757996528653807668116806640922791449747130399325244809656420479711816507066522388227947193174704476113559871269527791530767593368704435367955389518930841946859478276148691995542054151789461965722697052323256295079466395292940762659216218813291757324898530397778085961187539101736319629754965255547614586774509752432447743582099207015396572864961551767367148871637118814697842624388401056928096937324542503517323786108068525686812813578229542717050492116881022322420496616834992407078844223114544089271333814093819165362952099386333318167406730221631759823674137459322124157642943630307744788068218772816172505294536315932653228511882966597037044991661116793876075663505448700147963855840710257647549424445320653520662760637124946113582880718404361492676863016316117838071282971591234750282413677677019858738973917099090275636371350482765794638774668752005996126076605859565541296976775748312667307264002101747944282994842077168124844529843387536351308087847715364116781072658392266354241168223978798740102165064032712334296748668002152914185271554312943662644033983747020522239083151996987587038076977156547667538103209368100487562801988463100466133717311682198907964855673816887562642639883666478424773640605339032906677564639612351632511228047056143728062155563990610646292472054558617168487890327845107134406371705644546597819664229671579811677388492021916285378253409810472049024511253021130009526191504450617143857001033310158628151745643327253872083906207035173468854018263541530598300092169186449755638693073229910898469630617911802611096120761940908476833662668786285668393798180914358437202588403099514414983683915318722184702601656737078093489270787199262666731651433641674211044031180715029739868911211777788896540979153544134604355366374785006248269323420466032793747474269103526300751025734905217307011335577920705924835846521569941156363582262605595413024952506851181133234835679461907284794250280025925909822161662776960094261972162760176191302972943708166136077807037954730553812980249634919832650588119047882323072896967448510143754996561926883426735712611154243007527650024931328610768590834047049208268039891377853773357830553257692786301635485224038567305410773244083459712764904840529119260304590357850860049454377088833601573222279350556948954257808577729418394339010815154692673972069087295025037486742382067185746492850264410755266674240227976738323439218838902109256665141757414570840520301652879476986445745198780206737989855741056335754171025375950747622629915576617450432403497834257342015246211435781103425424600429158489304646916990994763862665244178424572513211105280886217687245944654812924170541575782634277839676572624546728472187967434440798217480560756951496187042009802883975203390129966676674302522614592734882436353423558998055554468620506255016583153430556892629831506902757776556374729799940636371196848509279430878128832736894069610168337031071218948004279457862992280536732147482687663391945960737160719027564288349893396342000153139489230258490755067244442919437906835901528833913417117969113186185674658211873993557416643033617928971242435834631608720572463437515756098741472055967219700713823272028144521779944185573107275135549211244506254016399879184443784611286654640475064540615553786599944569739620253040844991896613791394600780912910128638055527489437248976957706113054176432761962029199253421117713917101589043328501526957630363559684434566235320424909935574186024598076991485104111108391268622929779421078976363037160876159395596096334208810999372188542747574531801242470591877434419558997783296907681418060267261832052093086748836611618844693899245427168805928032079251942581525766114480805014154968218441800041161844565434873592073180385082327543573224009981322608032099595861313835315740506634805471723875675691391117609704020758977031885289744925776542658148380716955079480534709033462555330408706508802257957844635669506854999464555256535239450942211205178146785510758294697061461874295181851853581280703943948409032612047270824653408602505369067215293941235981766229290564181171695037893524342262642135855875112869008566215752552529460620732545458085026663634062271054774885755731069774161271552964731631365759401987723509043381133706980862535312353828629451897762880857583658859489094466431514549417037686290770137526144244642642031677241965139041347252813277388448147635947994779517402299033371417219138893333241249371037352395599862849653821007647989384704832110305057205132134451834830103123498990187666307941728165177382473036973300172493564084245926888685506624335006861939835455888432339426764364239208027349794747157666519669499182038825693443742330070681547677524816187568324444948220221783657589815406564604281472759154303255650235237753532425739156192186815755753687147903696668138433956533886171129623005267249293683012181191230564736641040256177361335874519633656870383237764687210185458195574717657095846474441246648895298528953489513081869297567223622583890775960765915199870838383438297942085438044546017575629463930839907347145448285951081591103547512633825187363225722233388686152727177315976306871501892609601326691610476003890707979093430473156282420253445234345486949255933817760692923198585628207958715123666840706127264560279490076695612942750124645762431291369546053429725757295516022267108279446557110118746819433958723098865982777272358655300270540643973709532421223588545107494741040433121768772612443832804430700333762338951834383244036549760111222213286740543639718270495718400662316474765323108799694373726753117752704616141359870102848121539845952644659706250737910300419413784223692395175813839602318787389293000502254500757490417130203119301508491194687270176164083591866930520701018120589717156802894303564195614985061657123638415523587212745960986647887082344266219658652016239530059350451483224101001506199615488032500609625899791897743332945897304143969126342532772038108744927526404472435312822389136080207369006978682638342021983508019289316679338555104233508336275975226495369086792040844430983499086984987595276607220723522539898414653198115619273420441057974527474903607513559836853103259321643133166347248921168476176638030071937717095540425719810547733978927430504532237772636464106318212605038090469562171149771086770086328747071283019494937394066380997634872715999945518943758921430221822451972627296995287959990328334031040269325381922325803694172692263320468289733969093949494997433539017528183753672663400961085406138399827616653456859793414405698487334127104626686707496482506472827003030288697340183554773265676282855182246017915159032071646955757255612815362664333468412520247855561926881459720748087131879353873649939470943286883530339196657367560984565750064728231101971117236768775453746766752224755932507973069945135508005790763022944854285921039213971699826285166317439374457511104177339873038728676744090250833936662329760843615726108074497547119812794741100811982340626158767147506410021826717522464421001445322899564590094641507628350228560182332497305409397293149243363616717640916569505305065523994646423652638845175650497855316601300724090103722013595106274234218121464523130636586833846323356999782253981352411514647384984856010359112876964113573497418789417979264747855190471997245940522014621957603871785877467810075948754995377294708773749111271781292320746756691784981186502911091820329996555511798176762757675927879922086860579354863610840488996182013671394318753639061549763512469407249948451770155948945694715494450415747171162360300000888238919743773726754748489125407337572453086695385677688316708335129371741592786502163482283011393321110700817460185145824888271937766845619264676712995976486430870095243574304895541869543467151126261427878406445021333040606165114617392571373720302729425394707837322065434734475239477596205413886557036811347023719566570508621662784257366751038898433868602710425954057923218259001672191079433610979283332726914963071035830939292367531371979123455182901327688290601180815040631190105270080369762623391761328362214415559861260467029682619152478306475521758168977970141656178625029253370810324103519684198645378531980036844682285232753978908856524049697459758336865422019438155174413559759692677880003445568397181633633299533244004980427954068065946134727349108521877563486947748489726732458668745494538215512909047645919015107919703027391446385828149298535079999063296489383872881138232206805875495249797080613782387417573177078376254142942749921473397734782276266370185401924151724376022685033083404266432977166463593228343367306613157552596995057414054433209219281990698913868434955205372843472211456621382218625614966643801783564265241317995985404140282823142089404245669666823172115005410286380243882705491062745135108175038527928533194951833964922916825053044094121203929504291758786923086575523594241163200254329822358009700620209796772885971995358179631571766847514546998287573985744604822028419941777846258609917690193629740935948096843530547034001657960038831282935688681988190671108165583575007516222548353661604729576764228116208307656119547969641123259881973462173695748651125827319332055499618094734079332497447487824195738417872903278659169963035678202685480921833882613491266948370699350237593378687774872373978348383946396076830370161746306081775100880669151465956433522395571116972096765794587657523950332744593470383455027996436494411735345140958232946140319966884604854595804565273574508755326385383312717577253843770616765624953244050681987170310674087479199267296740992941702530299689349689927662886227154449002250075900271842318904777343912493849925263091689956022491159093499170557633218509074615106711981648303332342426311981900763078351076730246162075621804570661374571016029363963080777580902141610586807588121313075258342325200914221881453829134402725308887897151136692996091284137255147379734083574925800442318734212517745869897748614700161518536167360617910883523481270971682457430450897327537718037465336525735484259165089783271721637348203288045532903613461509538259104210927644220551944005033133996414245435635137748062139477042303278565732627353790871287644468975792451668154429040720806811598483507390629751285565580262010941809859216094900776475031380503928583463684817012184684278127816108950016663675960163477950297503873218862608901897043405425264193699160710376498962818211192141003478850206310870423767735474665426144871476582723294962407449988781973675527876632905104863508075654916925234768245459284729959312583065821858922297487548940841634995724595270551676362344478457772932123554561405747951140873418468637988822556202521135250641023176971978899092549565531890069921485844903416165032780492013170247410731738934087290959336571140428009087705375847047471264202582944019114980303624358512296716383486404288607435365615647374996368184727931469877686785981674527399897559108824908089126291620383282518512762602692520590856311242653947574584465522068941654429995384774720417021508322917370414968316041208833398083001698492622561525465074778638630817663063446222018527246421576247765668081223172952771797727153367534998212320869259505994139831630932274245520514289748642723861839698263757408950421532407546315440737626053742589565924073534969047721359502853242139081886350354070307891283610903979581778151081999811426974596094930772567723185883210298592151251812670327272601452138643902086487174384798059736072351632957595307441566746319453259651606889516982910267640466862822421304315174722746622898187221484022129200033299580626803461615986450191690223126112059891462065240393934542047577799108922923648608299372795092138988616440366501471867393136434335084725203262738584476147776592822481054573180691523616552432995773570860543733078335611467957916501896327138230374881020646627339137902964560178154613418406506529119391471722031982084986067559795419651397413673242898639700286929751311812605682093868762693330998067414842470163791991320340000305121228889578325400115562528988818061868602598251424089180695542178316207857540673257298416848512529022141393588379885468416819900252147676559682889079901951265161322656872370787747549943940029112253014020366399013277427352089380217379155475521950594711688664236168792364713522317914282989163753858181508499293076272261912167174465138684205800319894061392646369410689291117218835789308128001533483874929447815836582324889574722577528956914623171337384451968575913011917857314303578615655806843081860738751831630577141549781101799221210358021582974424044521827271192798541715610341143507578274122992074346913580876930990953937291028765851627246117329102228617637195520430305198168060828340176763749731908553288514637033024185244430664567057835266474400695266116120848803990211739248581839294884077981402928809034341512482796170571512998935136955299576709138798808149408297838740813166214976924407013663946543836949505377472659557217223869634259875675522124760353611310630060185779161082671179409539362493008231622423711544108352303738118296987447715630577425688031003886730423350744051450066881120482805050976455016326774607232817522919522521626135499546708104937143157873862456670146024791651911572528019206285512269533584883888502287019833645783938635368746406173498772670192405483348298612884148158849128226109672795728990811083058485277984238521738084037462764926178645935908173890939632767311454876152284754414252374589256627369647412321239627061860985073762966985431210183958380620892170113399390375711322129230229693491054417045206067905574461472888866212272052079139582135076951777671297738576841328124915053121218158887257695737593415137857807714167757267398037033941925820744775494610844402535956037922755437269298933366908433107826677429923859414271722887261039982461009043448361706541496015296952045844986877563651968381568815696281334891263792267098529657837170335882679580134891462415353194530695131293568685938319724560819362787186877754929883862913305842279981856690546203343744036398586522813806772933524097203592940099009172628161505674723602421600898206398503321001308153838028426300191688264004184123963704836310562317690770827014510699180149326595051451209862144650924254324512903548868786046768504557364314059404902333310151931697542213354871684774034302828475103550002477385290748100771083056192141975823129837780844313147893214105797552804729019704177305178008075916502974252594128043461272878063611190265720329188077351845170421049272168615185266181272378020482542822553880621316362658493880690610901601792270145728583497810222627738002991297577208254510448080851070331624720994384516593582309261194669521997054272110788752139048532814066189251325178050861813525526232241885315113997121960383691026977469958646265627414410672546803474972208728470940768383770915508841113672945876164254380301229858059581171873149624149775154198350281307797046526409343776289889928802174005128509594287723596890228725052947355180334199875225087193278048628353562317556665116853959136434477352019187052853032056097530809994180183529260703874904605844094488655613172161580661975121125901811323213761626470650421411262002042057631049923593314267517517783289737703854231462948683011450868893680628527863010408314493652671058734026029897883447898218179749971925796959287567386696598911852549509321661351283911760870262653039639863369525144444927562124558997621465721637536871324031964023757171366667027530422118046494201928553968751834330972172713506736109830222114720668238915776375680962274297614158021786487396339550470266091198309930640323225735482160260475340531658038768987036941546613932979204326484430414988319098796834944573824234928043625893507994821855784987377162931156846064786744999037100988019578406258797545447364876255044889243914628679836667410435343273086880454032036080729798975898886151086267669741271649795098199214874029712974141141588089583759736114474517271338895620984152574664907114683650822987401204684504811941512449791679709162480056916980850969224947366263821391600282125798239341578958541788890885016066021601451392602104596230351037563213961598668929754399391475987674473808065199769746229685787589768733151285612339136184407898431085129583061318926201474370598120514351274148023303408398632870544482980898656876460465300095730118671261621269092840965936009826955546712253482966397314901637841973817028383760901575402074282904448694170213121162139199666289342134824457250607198061743522550363385891718397740612505081828962109596976867398457633989354712395731338856176181171320984745444675227133027051803123450557512489693832552321347046622840309694061569559219349148426802832091488843209394679253541168608311165398066658899979830020702850864341333997680009470431245182531308950979901267504297015640354039718383663778146423365240489317434670716029045944184973510496590545664044111399549748142983138963818029370453482707570506528386997937713393077576935043919140957349175603209488412134023112331900117226207640282103078675609318281807693610461751121166881089279727807306313398985595816702766368909071762619257653243303232386380544835144627019574851755118927795132555724042726113322735463537591255461258182213615657127763569177570515193269161177708638273464789176102984594104961295705500917043618253163889634328924131776534547183896880889024624074433092822832777805469244905027333915497871492143814273049917143449086410595865248147340749311825773541054478466653909599787307836584862774347072587289728692655894237299456085630120914414486075929870010482019767304934845026553925974563316306250863836359538170453955557537774385097802540656198683982940203267268429861978168599453741534622670638040758009013170844124073925630692724403883120615130351527387901178989150251279015376487094496736322336483539898925642754374660228452865741736328643846896357136296789593268564591350553587173549597799550293943330577117316745527955238629396110842507246740286077875394528008309433450702447866596803852624538473396963491033404320051341080281453483089336589422983938765316161711185449005913993370328551789611199145466170020052317645328941834193913316065264572324868223490740908372134838969797259299935959061924477589668062664393494287014256065458776228939625223645745518938361873344772301072244955897567711051835396520563085755224843631426345270625915827884010504759037187370292631342369636149659153787991227264375647759054541068457899303166328490118056270574217522316767400659691861592558501468294177958024679098811741224023707847453110934790327003027637160796050721871623699514246608510853219959679762344194719626282724727063676051282873231674666393586681967773981769867539606776988710619561990379402978032453766550755377356503089650743104652273858719294545564358518919813475100746853700246755144148475412020028535274368605632835535148282350554236381387688578589309065377314988734448273420516021902407443395928325556090242634769661505456093593819040381454417606334228921448920011438362633276824603503727877006172270605819810275610735784675926445914906416621732964385991220903764295189106444603939285492864295777143876847833603699394784937255720338656474796506310752700517815676995874723198299782902056241993077700925486436975913277701373041857472422862349213674770707430722484286770799911519673441883947336597671562502726087529460961383720200128536588586392233839407178156532002312163311521173280483648642572174151824873334577359686768684573389762276129170139596980894925829148579066677816895627409995861962074207784999086323646005642086705429539242174695761402775931185455567250714499779721883551023560971337389703133011429611833766408532967701285280577756060471230892157699294848426051681348049495502205338975617692856179753538333275736371864661052345428798991546453808021098348569985769568016135798055401871173452872288268757875545139528151639266974811888733566576869032700708999222981411137787887032732971386082896482288969838767787357258866332615849352488587138424506739770246190381355526130380447287470136457390451579542562060753635073425635931171542029294241927576302189001342901351162729662709434273990906255430189836312723756752048983527702223639163342259642640477843304363979551329088377017072753132472764778210355197157643572085539083017952930730204218852043211056682717172520678446975326230043507923167927468862944869677262185193662827302486464592347779740171856792624409552604402496099660483209542368171692862302846120813428212118237308411092883137688567426740780339326503373721471535951196983922844180630905943489782031247536591608283173536805324068550590266196038323615388281536696724268371727217630407775221564650818918499895635283580242224103020876399329354246564759874980005123163907008058988044051805836032700263909804220664291509035944667941145413622074598134106351738873415143483422365751000614821834702323145856104678656351138225106842597616056353459304768312319519353036766644288234685442231070468606035681375609631639047851671743329150312830196558909127809069557980137414530700358770192235247267421421878844455441614591956757221172132696414968892675612269932347616806395235963011178128603577560226354722086281270956930268807532792788008433914258310308207579460388208984290651142997613755039152547903547911211503578761511660522402011742278559834541672477180375705474030161706250370065025787136035299832330688110938238905895460597453077229971333701762817026975827976472699529537522806631943051360324097980182710553052184043271118464868844096790787295709982816269296906915918906108914970979330993718552417659584624695951042630535543200173453536096327641310050021018741256209938412838575059756792247217220143866869106825686254267510167067014047673922584165237638799362143677699770526194700281441692239283908881168564281423993435044517068625171467096345217033287755545242198812417728580151840922928003192326766429496813716373615295893063275029275087103728510323034428534348416373521637522366673379938656831675578274025627224837962124158603098910059394760510341543961958701776284876269002294775518569118651992088874586016406626971534593612697447376684514640836847030418883957108690152956421481256497149407948234356212402690612057095940590877984877493382497259849611209846102613732850398256394589021162629439958181053006390422667199268197771060488348174496131319885578968317309667330790261372430716154880201869707006016094202249600289453816485329921216736986622099221784373267970316928570510071516793314421930760515965177318219949713080521992400255989866570420223261259238153090479342271406625043370141666086000441082638412148429421360067235464201082953760066423645441562764276168575867769376735905883495668435866673974959188053576079121772813125508083340905770074851441427497828812690423740111931390369923954971933338146014631039065679580040096765672848031683501589830773140854450893766686599021374584328601172048506756801579201095280411233482978938785920115482078478634855449751362374629614706099333669863989372604129418413504506252275771313117301349351677517562530094407533784629690737145803422967198715696213768046378358680795509740388064548627075689910263894720157470555945936470105661679936356869053647907099090449688122256982274792437707270874108334727726638235551700143773900012728103848433483964438317489759021330039614722594985564072040374116495615655482693225882944200918670333149250649510236244267287388513164784042417543155355770393024876858647170743587554529545690537639220639842460299706625878241626475871971828477487749914967748850158960687290206271035005026136411623433642238711819645303608622592253521477925896959543234572205846019979172231292919874135350861552131219970914338400373498593627984151420797358604013245882162486825057774171873553034870264867138053867397677385170167332325286076293390418726646872082210101943300968352143073361268183170973269897533637498468612265512301259574762543967718338581318391554075965858968921418749041630244497409561469538688034348810270349755015582160040245841060926615668557964495994778916171096640266460193507344856509946904862221350792785030080850901225055028330533815076010835458631256733337026193731492031316784901954110268430332545379652851793872784928563312895321695264971482163134978332223664238376079622604157917861386442868629330865415800280621336225534186828802925735537016054002633800952432328762590684242627034071440708163522358336202167671663357109799915749256424336595383309057024851652351920591358497717918044008480746584336944539203658207092808733864824521642260268782495817050203845230017599899969858275534980303475730897315593828851854530870839811908088999593529698423824019975229359925002373710084504920246717095849432762204293072656140705602358265067737054518445510407762964744431098768595903485878943644668078343451240756113949680087851208761215893260108933498949269172754273824101920328106848344563861507630635799152178158970165160116637566525588557585767261409037743806541153770181680031809799382627297681469551906830979895810253267653807132052358199977059032123093100903689605896507316208447771067136606535109138784563131691674376425375706883390487416447742871231182689160939705737254609228620405222487042044948425496911005143568274546371023720676034010192955358575273037454178622891652898419810645987707637018809310389916371872000607135310252500449250476770827864952332948967584067215402728862839369920782537040723406257153246476305097311561642379051976312425673308975531322667294158796134120326780891762524724151403343065007399944071268795860070128131699158700032902139112774426545063417969487393228429982193215647379416230401491266129611972072998124390530485579246215045245037980648534363014494617655126003307104311892953062715562891351703910339747373933475385696272924070391638061863521374205339688200882294284987218939188019745599479619641054133357540184380344745686080295251881507774907053955532548611847033278180549119705040934087425796123992599829915134995440892355040534925265420419735844029625925921206891824710393001339340882017507613507520314108384702925213799216965682360713241978759316718002035831035740276988843539705265846082825035809563388939138888310523316682629684036324271290065972942570927295861521406690005436875034866921021765345293448954412333814948075059194092476624876673583933400655013354162651537010127365240709168398066273210811023913656817003656708014157345634796959402648891092783379774161476822723536503782317855276156504157287604677122402253661665729894018317203665203825380512694854363622553204764389792570564489487457971967038796953072173224521844009895518724175095663194920351091081842981748492279166811372808211586287667339674210030105390557948937303698341554787720352699624884920590870750326274859979498345507066639532769250283462233760404652086003682834256849118042180776695893148059687398556629084899905922056776197708455513810960984968448303336997541102772965372912124830661144837368231299470256683346739830048318897718647872183049988925554300725151328450610004242491667559773145046050250912081631669320492024980096162760675360467636631206538501852555743485123365056522530859089323847149293273152600509925859283241956030760416035356451864520725327441327873549203873475270952159065097177205407248071941269862404623873607736417636390761189273790600164839570945276151391458458765027488927895486227187111492255123412006024436833327967254353567343856336450772945893514999034292283610475302591657697869170920180562263479681236076378262758257999208901558502037253970539982460278079942606368665834395339631214710123825949567767458705043047940594698633100795711642501138096183497806671963241424890066996682374129648972422546717007602725096177510396492504796806720240006710194754132558936108420955515386453741924419613272718782395971984557746787996462825627658213956062031571294150661812947916594190590262628289980093104645024434158984191125484705897586430669935575946666150043550539748881666353376000278626587257969680913707870014940792782082415852176979453387896242770428032908895997231811098762051411985910571072445732211260548200647078123219664523000707866201128832678528086665412060851337018216905831743147451619152919306829283068393224458702786410191532429459671690489556097699896405069740774746905786767686328811441921476007291770483188460463657479236577747901805391128644223217681494420657122087371868006995543572198138663932492543362408162277947358295381837465057746725303618029394002052265382191890352460755854918953445075393947956244021636995118276238076192600118550029765536004302552904683710381807940944040931337343946234665477760908005231931216650177758820314576549400509089995737867559678491066558892930610133941257005917232056632877286300455743700200147009492916243611529287591456149139411824939245140611375648787167676522090669340807055805637689350199822156926381614478359114803919165546358854232448048184570534536721914757099557903583711430159876511469909248692379006727898479231706933756896075172855583059490751964306670770918114175836500046491361878612065346160433693255432666973224715955098650449282837952990177288213904289018546878906461692187386871084822724370864992911286526005795424478368971881728113545631862521433254220402725911026545494395902161679229473769900070656925025396531490884715920224598017704979711891479381238764913642300795717199808721417170532582682807341777689797474428401016823840207525695438315903956642068120684203918008669698104693741191897585977527013842009588072209899953807354560932919341657202308592487750656213287192922709748554021367382358293630122876718710607821629228085127877479822741678387324143823309448108381049465634744086289587813190800345562726857418501290538354971884545783489730098293680458259428630701193516124114829047928275173537776612930175957015847216932983355749028775196642111955008792180499988854794473294548623429739839401099685030306958984570121233507465534157897565687089282426241068859994838246959776908643995333923202296651814265843205797739338061168425292115157439752557107508820701817332730683911957158453163938522160253528913737533833314467195525698305403898421556785502799097864696099959106074222455334882928669623992119458300857530344240548135514710144280969231631753316813572987761045179087232180488563451072222095191149477896166889448670748111606200852699721311983964493978538872282353979936751546564459875548555490116076990166774392533680123276480523170155831368306726847066047190342007388542146538404389619377371996689638343058351416671438722792337719383182608114933486636018124049424754967376791444682057824018568966960276307410889486523809000150609353647192752107944958252923312944611119335185922356755423122446198655583128477505663606920814872163274404586798378812087874156395870770715460323826699660127755118970249718719776999658550793082937245737225623281682975029250569150127330103572684440203860086903843194811020496044540305253554238851350080396041355029985925312653808320898697447062021242292755473106219738968009076107239560836744368348016229187707805731769878971919005305087098309180013705500250833215198591157472758190147461673785407252340236996411345105175154925756606355115401441441008342741313778708746409506787433560910036029393740083352520453623437117474972014219395396577548371805061782813154024264302305977380844979556721562744800513696303759677865179958565233003778545790446744550365452744947157588702821710929508125944908704665418571172443865633743522343636594872923771424245309878284882456064774240471021748119988278035059918744232110661437059492982376216386369600237244486426610399691283861324568549502079845668895906942880031177854259030038635175570282955441274736135564438590493337721417155596024070571407201028014712086142153215143914564191060306365211190444004992844674421002492040716010492827056967659473143071402617141469305607023890974888106373811299683312178928884205463161153513767656682830852468195997056041986334837666870543360768052790323345906690313508279001403903618425369161357763361376709002588701722860699110772092915159867253384704335098273612576611917773194950929516594276491249629444826094661958193668182141461077576204442376666131295882110840921243370595939325027812873959242139300273861536586262698971687848366730490125098583132197434151955154031265768747257439479537613480062637544316372105603821072847921564481403956730795654212393451382043697498348249937944758368600021661614222640100097950628854844893784146644664902128084909119032387509761393579750577680091487608784061955208857231151024200927707525483309947602942695689024307441619181495475183714638996792462211518105830894156324034410105027375446403012218060751178724939331565020432293975028564869410332337504825676519439778006598129421500711710668685052799712253059243702951450224613971403721340871550913193398949332715366744219962269484823188088363657477842535909691239357980786519465938127532002654696030892368917482695141972000628504499466030159778017148088405173720245469969634353142319366170671204338273873618926717443787341292668258231225507816001869403080309245734020081439107805531451879358048675090880011489455309540546406081674524505703050168010612373676095858977155742160916508923724840138944580287105573298223414207294683511624590341377215529869037465003804075736397290094183724229671384333140424425618124317647412127321386553681829065751973373029186861198074776627559978349398836794511997388804141013493498663321277445391417381694185525409827157438462985099962148946986351777755240440441926270471001076603537752566089058828464159521193941729401520506984000500011203262402126726638549795571378201683440201007505748420563809529327027028220312358559818051966604623643537786057185205889950215106195651704903636180351571513371684112409311259828118730162811207119520402050092311749038805698321546091584638420727890616606892687992845792998784415213505507776727338490428834679234768330087569798217249499756222249875573119188590390509276465476935714172216541220814707750630012576861648991269393219916931738115158640036068826092659871395630548293926921641455906001059100856528355145668322417306290561124000542842966042238679025710329051786318918774134636400840474564709349700102694995645654832717988969695302341336761164020666277002746939751683325733011386451813570543543793056348212998543354642442482567319510774262305575746839585896920879466857528544025332561361964133138657505517582097617021266818264156742187430070386859822885653175587993508997924568618952758990378547038034739990880736588548378021260597031514478563761362316773658988530261058051296383364223927407121158076109834725452612402642348972650385615855734829466546381517241741428584665982343839837901620287221457049613478713735272984947211082012288017847665650943209206625177277776457009737618726191255484273494980179781501350999150782040602350864456500678286893841664649612067274147158717017919711061330509521352439689624011032991505568240032009111761767869562946727231818620560976539503695116362685158145883277719837080824869837969235798705942077767465285833580615618106306498475519284207246001879790520775830706869584040033035954890529513841114367416452391587967420493821369939527083297581842378649458704153156640878892145512885784503208299967614026055126851760536464740901285465386761989712679536718041681318224324448682424048303262780490057740633699624997312906761934031858390943790359939057370854097909180648279059540296860386950156014926816733216134554434478824631918565426845357729868559624842098189334079343243114905342905643586591503919207102142812795187142983435595003942626374767510487716160873960948857447660221570610299659670943912509146291727803285116451291863613257288665288563505529515301285318726594366782010506048305228404990117704097615891475865623712890681777280347790772112424861915651001074030355621624528432715552661394852562844931678101654507407002354147416066376101121486774777326968017402031152286060653988115548119142318971284124958617824694360302510559474440971349285321585645043230694995323619250528902037152867765552805925382694512618420532977952759143667811120837613831583260723668305795482206389728064066554123346142438647592753109635525440038310120836362122625832478862336659433372385709608688214653932254521757478910639789598183695699846203540412471359827579367363981271091624624479445932999841305250915024811484363421282420903948370057137878605915461377287285882730133691377342936124934391685592452261971598191687205909572222326469024582699003634147478205345297986794110075353601493997494870778546462852328255760587863040508837612539458566126823567146282107091635571536226534921889913423380689570577789484550876644562827220717579925750195199308286199712728586742702691936792941093915405817822304007660485280280855016380572173845531966290224840385625191078325515281586015315702182110308210283132366913363987305617428911737028011432659880760924262784391710072237623609125692966353561616249020231491308206175648560695433221874447870136833667658945417890218099265860665516537875655219210810727798472978942411072746180492853637831600072753817226000411627307297595236470955163884228464983503602707402263646602583402014183631944083088364089792464101958045707326134117856505568329070302513084633648487766271232132848437399288761867505343703432855268169492910215985922770190775748090758198734695066960173516314134343988366917395602173861854683070610511270559709262882502490406950803107694626417207396441216236420414536419972662851551918935748483103875535278452787164183997270987630112992501976995632394177860751258374657162640991213040081011658210737104396337031958452166724518911970998097699588714432443388841102984873554564909522817668297770121339553011997312451689616810146235769107119981929132707945487745654444011544089951250632103407495533951188334427658946884898102007694711615731786081968101278865356236219429094458708210569224411841798564246377833615911627214768593386092709552316565159875686764259769451741573771273723453483776826616954478602224302151832687704405007774799549910494495189184222811272520501358440874186782846738601877423723438490233665030829797848422872928436631430418173380967831385973933828724429394315624788269188959948913035038643463264962620922347904387212176938400400018105714004623044894687571846866011480302600138748565312804353828897951773798628693015031554483657589116426431842202294426051248351685487364703531670228052262393593278118123055351156222079928003255208957262183080926957082470521116949445033554167669463716772434247291517208472102234319121124166984824110281770061636982573345805590672882208030274661393399616518200012009800691336768124071196697697419861203483786740086255960830633444969456236821535912006674996492784275736825619656589284669195769017808543061887465244229695787241246226653991879210164147311443987270038682651068751900862934906938901775066006678113185283871378022129201771084499121786786147752584366843982288157500277862295950716906671293482614140846974480033628643920753587956381297590217358296239870978389938038850732949545990577633934571567843674375216873633544806269181438755023790269330869736328853881784834674024470732605879522389724972123755341192494155919359746494534800338744645613964118795375739404985137484713086683469885105944700356967026952706607660051246407196761347914534011125962835877902240225191311397476980484195974385788791529479739410142935423360959960166276979163006669635515942483409124096407098947328452204858798711539315044708448166207191278848135707082043174983576532096473220800824769992044434818199091108555090775104328700277507932789103840235321360512491456104205442663657896527494399839043515565090421586101815061988302862278329432402393940254426629893572275273271688327970460811275789373552739705794864508336385300063478138757702871702634814744092961263879589184414291908137451749047645133718788599708354672266853562708805360154948604067520407697248320629731123521273726307488031033992074854977399195717731100255177710722852591031606064429104227526713494443895054462459084759800320837584517060791798301744686330973212055472273740467464958808218755297523334629414794333258141838485641572765326681655064660610862951879139083746191402611987830565074004844066092996424060458977433233042394696474226536608634492788785501256364162518329916930857515361082812584428143326051279228050123179978966530823983822885697283628255720631934567889860471678273994957328974579267173817043161360480143646292158473456191389672050823307910780833763605448067280175164714290325195854995531320421457065431074112764949233520440367807568975143293456659523533682788045921646227493207289970555913678512905175858801990055542223874373971363476181965353632958565297825193124466295743450816555890440362381983937138978670459441618501292836058004514046689342101856617820068157271918788755629215333615471596228512247411314614257363908033926937516217281042517255496783622366918201085915803895419901166741651502840839970053411969891348041724124563328904508616166886817662917179697647468960580316187743011430793704230307683086395080972725181518675786595624327659521137218131038042263748110984115360235209890904833858533031616359166331063119461537552396276610620306181190210911180709065563286296170528239325433148709481244480399170923542582117871074149697455959355691807299571800817713099384965063024414386078948147011372987776737709136583564672551119681057840850370971160498761900231548095347907526766094159541694047866244144675053298942359634372513396259488599241861160761904999930920919821135644327862562295000764477918146118491517769119520685117652902510006276103988393494943465044467516544096215773453395968695194716737101158620835635884764439429695681402082730088905598333371046495831143006384213797854647897227665240907018653440942847981846644324443518469163648599513068436578495734039939707433842924862692149008126513762449069251576248685208945350570977075531581151703149602968278432266035254545522183318473662816277213397163845534070808669366416620898130785571568143538936712532313686230334329788616607166048915735032749003003821710801040442875994191066162462560399387827265320918321000877652067614338597735234874629032471076712942989717927889329822653450253675757710602929864411507798685969130235557786291658198052773849315419443152551567742270976618463350567929585205159576172424506312417334132982256329611459316124179732657423694835828833049696784886397691013429480062825719929337134953011310731274284133425160793758083819256951147088993273289513607314966944117831842472821376097642997716317901988683703790362103982428736580426313043118252933507883810723296285195110500551078571140573032192903836677513420984025153036495318096430539292917710364265449645904151164171227396408875592479690423834323907824442187229419585754286837067457676142493231241243167038159130894193667498920571082170674470160920074469889960194301973824206442886755068027233285826926502463483536288217798076381638131029260611014876583395991708457092026316368307496190287486859619129380648211428009642404643409838111662868314653049944107251154646830264843203867170818209462695647638608357928301365774125905509257391545571345398244796282261331217112590801441266355014883126924929787691441550964281707055231426069640416776508586394853400050828951692450516380394385698134652581528762897085444197983749749826551139159664740044978689856127430992900517692182571532932557704593632906400750558826523783748317484170093559266217531781902748124220821460353676735838399340136706443592309624318879901777212590512247508230712082972796023145821738905562544007005957719632369942560784634317644451458755949739020671519645292668921362262772669546950146954003960749009437526230308683288864394430290259202222535110510354637030913196043893276457933341158155355251500700669984706243849469752561636294452452878058001595149675803659054064259603977994811854419213979917642818800362022965977508229363981913084885996991604026362351003242888355129491993194804468556614970587218600353790790914338355725282679027986815698182304564969923662661010431812654254405868073555643906981035534358723630635604437434125441323062413438788339196262435168088812231530979473529623062841753209433971623222633739878131429591941971390619310074663505924607898514568140190236144768296520914567034550726548081444589154281558417665517000141271720319997000307177227511064442204070713626211168445349905666593125752353317755561871538028703355310272839360412270958508094228554956541343424693353371282205843943843969464751085561378270958449187161350204463743693980270975272385565580827336119020836809829544936138522721124158335748212674746309655422068652601358661199476277363583264545385865057355671049539252343495709467724288500675184848551732139642218660080357159632838699090636346406782231241132631231390170730775952831463723739032125749881548048203386651899566709170335170429066813933334180382311961896037544790185844189951467621433123583694762838515134675286313162669202959715503832976806902167209527115953357890132472388214429397511081963924773963138803454667847076214899127996184170401635378679469856464010218753627642117278727723374009536408123056967622486459345038472838841472011267716528539820408921580989049571214858848140972902919874337218004344884200186954282035608463178134053994431324288762103380769782527621348738337438687613338642575797322067749411825984774575546378576563501192510970742867779952026196749407367609712141741372879706751957807730450013172982437620600962262124445167026709456396216609365009206362367006787970774839638241842035681511340511454343903922522485985748917024946486521445691236043387823535436742306328588019833021471631301426627464923451255302877935097463477305825703849643929750791828293068372023043111607249393379392725694307590210079365828393474795873656162538666522429088703205786007168479728863070979484045297610406342332156036099754691166956318608336610006462677970314413756545510631552606476744608512047465492780160472835366348717060332855739288883348957122473962177234888704053090839407488740369608614523081756637888031546821794922033431314733170551063235896003615541109705734096565249151600085957050825995755551905370417885296913735892274083401579867907688560503614146062051947361349588093801912507868933815493147447302750763438067663635141900748025667926798423976302182825683955179128716491149192923806394567200202353953230795498883316803443552931271129474581855733166860738439622004049313550772890062102457601146348771747415851568111439295558409383075764054474780465149421783586246789949807354910578937314199365027649014077537512895635794525564761328784671638422635202558757951434141531213161374840152653043420010276094085927833573132846618427712384227150012068389535692580450591459094024973107228143373030232633291356740954843730065980579509209172578984948361521232977922002080350058533617612206186448833297899132459419288993188951871722833826547938202263349414652230558705572248142431519559931553090626846985466759631622234945694364056861907331614464573051932329298781924804418744286080171888876805736838237236650611283133198400403937328073087559356803880608650893146219572389498451241098436896743400717972993475986996798579771223362228668265764857669217834876856134113273477628332364437929985931842623530255410996646824175823517227226275911587401135116120212021659071027714069724639568059192468627152584332547207909051656977252326655466296272661488662429080411136967398154245987496876320446208284740163845820667554587597884748891950926445138590833571239335316539852763493774317891714536733875484787128269670136446584290572328167056161161251783843334343366899476588937859764514263174821454576475161491689929619517637573896661592402939104027244566308349264982382486539761808350676477557064912018120229351479056472361594044974006749646104608642034705914902040270951134139394632430149588445857160844135734809716396342021690718179753044670699173955545801039639374830275244558302631011780950301750433260398622931941958170332937560851632556082039532988446023259864546918124148588906864069773826163079464936629362219268083507459557534595158130228788964111308704982432493592598379215417289569037211150014095594558323351695906569829464471870126362545144146025478608232036464438293184646012129489048623328582292978424536361098493562219505140871974015997529861580093717779235596517488620187108632790137611827187568614874363334471124359638427329656139531908092683643561661801971506374939195343082913855282993936719605887838823650509184914604359510069321939616942714897836708556819147835406220388419715575501255926087983569546222869695087984729432046905446612001767887963027876618162105445068973654189128268885862205411221556531563070354225220382156422754295089421624810573052378157861590070250552418110788819074154583158398645985666243070351442704663450301254332665640474217553273218472767684410105313314077864647296417258284151709958641715244087394615845603456160522447557993598964743271007997030623394756251884757744070384179361140609499464485225584316272562224146881264404540673757130205582399153229512576771344497583625466333470700299241068813385519065133145463475872043662392151239930638110728838745763080101429976540135071956417155207775681642342959719230103103935059092640236072036124218268604768654696590895107606021838922609157578126814785088872982030706733335758707464196640977854485209793962421687534989772592673244097679647050417410339761231779293482817006112738582832928552047556815443035137368019382207643655571009363732749832936505745123462150838916929241595095212393113291094678033127711374502377523510877488672271916913064498740748546740050640655476222416330264562814341866746076125826007518148267379661952725420686106041260026435641880649327867184933649689007682346093741331533341688261621524130246686347993245089228076272011708639504601421915773334886671643857133862703023474790778777601926108177935606739154981375508964878248434824799455322345112447130104787375485049863141532048841590744510681752716052793714629884018718415923494245082341893151223124245312816488351403851541997278270965229345306960389799931867916318137440163586209062435456564813334123241250426153751772888502681131616156107752937593572885225167023361017690096739576245006075003961096795478510202492278896717861008716829849872659991916584283458281419168820377372613250548987703742367209204001544558866050416441188918291452315840743110485890711782662661742112160278664754038406942939209917186132701008553752070170268890159889653161121006761181084321977250542483705786672097166563973429677956500968564329810440422672109472539761663476759894451893094418660968332591069595003173497503969336651762315385170990302208080907720508720143230219017010186496869267165201612290975398118996951733099911032643849093645019524115832139607370978712686890867687139618284356741789903263877264526447545497581009984920827797937726538823839695853429821749391219057597937786705347418405587818601620652215242787061919169460378636255581457070770331200739834773622442698384348592568438576126217850049812380841094158410869978121739616057828072368491352006208031855593395314919533100153861938603401539138834552028750502207811699778773489178667699572520605071456957627826508791083219258310584725491235969714968339981066138385603842373397103081405310280983875769040833874761622414812079221021569179803984720566428173630468804490625821219313268997596977314418252753942883426649254475385780045927013398067448047485889785863677919301463519129511473138272154905552053028113941100964827381980732527135413902926901697591023828198777072749355940971414959818072429840824440408807589244519865610905958833165106512381371133462712963394721340464844711668802887852886384331071809336779483334772045847410301966984336265482572072490338136160290298439353174238284081083066946760128562820977284342806915425226893943399653103603819979870699926211042360204229975367224377113507423427827452870813993652297960706464517216194367178611865761340806937359134467815036421780604639663800333440008864519133702955493152567390579559687161508754680348262386166571745646571810941461686379600296434676561540725465736265255045651043103426201825870980144675342108489946022773690158950074748762199607250365037321656335544924681093001892370396240333381194714198479329235068284839151627164011267443243918342190303423902179785539282290912243254333067759171841093800468647964910504007153940863530428745889824481590983423836128343358849386838582634974963212261290993850653026318017011675400420925760011621088204753280502917274633457913688897143456269962302462934676990654325175280296314830135441265592991485933627797579740197682471892815180121798940655681100832553476220265824565388049358433822021059313532580495038674647554539118195683109463678099229310565227624466242105911162929165977067566934869679338825233964487942176926672689822337689843140979336197587245479548868395488628630338113005272669953804538585177297970441653286156832733299689064514984053990309561512009788985034121753815092393830483151012912109929502697514569660721141088551702550033817268091194701336261498272517016907591283981170824951845482053744284935219866503724796528156377338220058908918072541112017137582164692240900828583607733191567995100516129229109491149429680493637750401024086074414834356808695554340401987802380453375175994862403181846370835645137605493261606426194286870171824996759585629247910400407355007658001451015100514861316247905167875141862346384381264086508462201830121621712796980001862757142965792670548280214335845140917673561309295572366601070586532965455586921189389586136457138288831687706753345066248234007345542586961880251924685017571054843140869201128185711333118104155720751895735912773375057405646299984106877099440540261501516384712115471574597173195064542370415872893426543904333426299662547135281589857933452470175554470854521468395124741367943792143176987024113980574878271802148365694561401681179620120904547001128966370677430791707717692276532607885330636197509442441445759789187786344855661975264214658902498046948505963655693184934219023617213638059788394530927742054103662492294814668574142123642544384264322474389397060631927953318683118021033956608408097950836304661116251920326361188422955558637275755004671493703079114657623306646282760227717375102092285223675716999523235508686613918223148862621739596341710259177339669336703363940978598262089389189171625582989419427129272304249541042338459631504457040533761313832371577693522264601041612352292475082074556701179597798160108533450663708698037844805271975358702056080617197384196329751260213361924170590946876377125358735173012090721724744010271391997445023884263350179970978636539203143796552352855177513155521339320337291445909624223292205112761182969555720001833561145805341289807951150889837255429305342905583698427301190672509490809100594098256744343738542498866727812324165053711978058086597473705111129458281363849120903462450172756961368171205509065713323038110806559276653044912740392456523263894156046976787607139829627084370211337917538826073800530674114059722483664422285538424452776993271519647346094396410706208312130760250284617396988673482864817066173517284715388346972753356547498377898309106030233644943895279020830945718031316379396086291087444795457047151039712835968565122935976791470232614847222319832902896341656767317869439869382542585756762593907222006628944153163786386918392227423771582243592232556524578553105524095312031345009191716826365457884515289139100291757306534776758158680733374821527018153710468149495411422539871435801923832653497087353658675252858359509841597167243361323632498265229130368288652053700785018598990065842668397198416806842105642288075193313479104146445393355786546094937237631181710948456817645313537175179499366587838888824473112511879658822063136945677113683450988321818209781687329793186740200512812809967077782696820095794112380804113053383725706993985025920432218252725895506443403761602080547513894424823329564574054770108877941698745930121611060154225805411943490391310666143665745835007788597738089938293787113065473767037163595914255576308989204908829703972754767064617272553917052842946980360189290117043735307166344201773550604592216922470683411872495482546316104148537359303950887143005323907357873756479938082906622061587764049145599389613959003895648079370478728611401066300292586773708592667663908679935464132495446595480390591850205771951565792363277844891640376765560371728401175702865202375514535186770756350467565240863622356986820080268666842400074985248474986654348599786437410813424601905759183575845633290338230854380253019528653023437226914167362483731481706364969792565158659036200979285677567621084301051725368279524030054787399365468296467370910863759382089320943007800542493509598745546338445518828739542148221100345691160243072470729862974434103875384145231171107766619662983272041580989842362974066909921948519042871497034869402693429532336237038771596958812037362773421288546575737847921839475919600132074904067643911541614886329795312859812346118569643479406798417425242901755689315648940105535476775231081990510871237315188215063465286279524825670043274114486944445596336318439828311118805941709764600050750319762090161086987024845052809120792194959996191602663909397038392013055599801348773365511417753309607374779267722690172728572803544301261872013679310882773972076530306877896004164584039396563121744783767728708464758248356976645613895607009227510036062704394039756973750591470871549934566569856566509353555592213138305777122921676440200052614213054214962177746920328182991801687303946919808830470698212148527212154023876263878650123879127996894754989699362101399275284300754830142420023998138091191121731740468492164402239001178053890344359317905343641586283135279040035528542755589292856997809073551570599480823544567890463398753503186750872028965892320736119847268972020767699221189804026008639994389859393880595125334515959293347046009991069563185837326144411264936169760309978172161993356744720899786149576718834286074283093988094656440100920731547396460762847691885617731196356175137376611119807288511135725421633808562563202243264516926195796918686592887362758226093005948148466132697777678777140709875858031483293337158627334984064895153818269571396447056664528146013409119461099188305105849591135583177732425192560701829626553731251376438236744397997513599814736720841464330394013199514755064529957138244769655092060547090011410259068906072221049112745101072213476816605708428283014476011056939981253447812037744560114794427712576065583857289147724795650613246149264150943035186912727552969224108069462077605413511507120028612500862087488473373785891032298708294719738702286306459609886457437368557513091722760256696678437850529498498886698587024306333659854092260225022439659647167724601258013547281751577776170262470179804039987528166969325017441713675498294148671695745709684187259764817906422196306748404094446522893526536547806665614833476200974176451571236733459200203259584681258587216824869465303332257115464843133178749729137426316816211355791994217016387657430923069843369318897732774524202508091089309022309493928687108239436987127910339161422330025369802113336351476371313329651133118585666601938815699313028604751004054308366809582581675246670628299222386653784458382542602249181264187293595407691471996703839185055710539994901158498567377280615155004087315238864345730966849167884788878379799386978755961051686019700738645617133150164131209677564502978695835423693169365625350870517762886390599156231381143018587333768275193863089665561784328749560174833568783056289601290284079539757595408179853058122034308768902956131542942733460536661722968095879263059810270635966741372671504606749499546641750868842753112394136147676936733884436870441879305256490948659358869467706083054857343914590035169364907486808868336255532974416728158027970459170481017424714723539489687125568476570176969091623091613247055021217770324692326329350166082440347997151904635609239416819110391985955799959319677250700966160707394829463141565455076210836933788982172739295346710829598265590770800407946284851353741608391174556805640604540094663092703772229761142559058019059721134414351308125771633024105132744151775047120070762394496684200159857809464082286053969583220565577042596979163328837050887678612813203540450566049708594625995647474536800496935059318836986121498686420619814191897745181705935414672442830077728974136347848050365264533743953915493665412513160784716308961477570070778949900423650373886862965927047257690701114041200839193729869929070313639964870427255706542532447971732673347795043999266973528475382963423337831081204798023225488664630349854875921743999770183641592417265727166356309712492193392263581301462541050439086428605657506885578033112077205893809507282037985450743371054536445310609185347175317989040562930023332643096913250932111512537165063441646470350205459717153690691364501547583748312417071890047148396215797010582668646823905555502959931270773278076215306847491842616550233714773985085528920952679538350813225494979697623486082340732970042006714624633050294579079568389427507106643657178406054826943615628716693443289382701053330621045474750587725103492997579877170208741224262935159615904444155275349911914781732916189218555546500771180068716824654587038703534021515614654377193743462092071183031582863013681442283333618079284618800611997539011352714891012677415053640210235971116153249360567256629209704402881491219618232001945451925367815859449624147927736792235245197095114377622523257331073033425842753667232968523752777837438824490725977409515409524269424544188450522045004710361544092812242063058216069089453596587623733337857353618944631092774473894218205350047289996823394563663163276821505493895574160088543434600494021280855856270287560230090119743106148345540320866586905013219072676691195511143636209081209108511683363574294922409097032776108412758446476618327912940496932692447160193737897123582842490661111852215331761330893679962211600145509019429157317642532627122143960948169607495504277797106781841592966304237776873642280338259230820556687791472181348769235298039567912909479507328839809637272416383696036593739148441083302340712521248830005796366448271978481038367862774354839332335548269747993584859093520474938488115143675282604203954943761881303601048770232684251470035137376717285820018730228037727943672588518858296615526922510686147481649396472571709050323620547147661444061538315814344302336288058415654262568762316712332304436363868687111022521607230479406437505603697558808448407139020759463274976767299375565902368674106732747187277280744134484111325091626841555598017522797418006966431762505629369711357046891748449143146495732897406597448861623440205727774889970464263414912643712302529952849017277056274886226936776021791049159769431246489325897087586473123696175854788248887893666364388214321767796253040875574919603322152884444678830191468244706700259537898413800227024078888004211923304960160850382782069601451316234041797620097626240253544375201294436762183095954799331265776053285164463169089346643386534121234975164140469779125870846637675075993396029620326952318648185321446683897220587613218274771852827986521382198398142881486450716318442699142739246676085764344701019625557989887564858722485666149856272129171132324219821439269382612865164466083688020707754263400039793568809029473850672709171370909458710053106364997607759504885224010204952611861962036708101913908631453440619522058500342378227403604154399873952861703559814349933121087556945123539129139166811394537956132127147190163220260999141046817057319405194990047881870358073217595047286790062226989506162763736479701381546256780086169026383159674334455180286649455307049462011916602913675129624315625764023180419236657179330778482452085480534749313209066374890982213963007948067221975356458450791660622460268630149241465322093096250226310418205704941266140634132012901817474368672987916278696373993093827159750490111727571570438408832904512386875877064320278817909557420490240278640506892858154548826669487420833539337337633485370880203683910363050879679528415320654460739684433932017474930755030962478747296680157855360678432572755178854081579531181669436107680355692336215200179682933659982530475846246194720312459038972746784606424321799985128067312789969448820440778064776732724306856958262446144968671707603134369275016120663074623677860837939181256790915184011134711562866510908026502920026672881543781094373197438948719632436885546247294225288570860243921814597085817196599137741535310759986546840419414637195416422127105790335392161056927776226507578994857233887711537812402561310599419821050390598768614245607708462360339740764176683091208422756383871519194752383876004384040618325904439126276769597755266675541194692374654327769332052085580630576650050873617885694087846719907645370707261884197451862444591187766729993286980001526475268341137610422309008029736765513003408065667190353817957955496724245411047580166735281547268242238959617324226617143806216100758927272141913720315179897275260001340518318197206456035169702858039988821045418355458997401715128027783859370402794096880896517851884726926841825945663378645062710587394175619156797095448405763554517046159139006705869802080328837451189666931008979975841407429693285674325232235044427845818986568678034170394551293160324014454977348497987366898355213583670927903728605760129051062247313955170251437265745056159888586717950631395179141680279466003297539923625938846859510445376043854732105000690203722433819018055609050472641201421000611562980018164731323347587737562172632599996063894921646139988595188545876058724935492815726374484216940909456846123229444482898777734077342760965498186820180892787599363003931882998199571486340752148631155008549582242717181051691815923394508385952495689097422304879457885399842507991804270917218770075392483712086980184549487591396232070760372429120464870351863349748795857889083159315463865039869974785646416624567396010069325119657808495261525156603678327260558811056949461425300957302467651310570748805711484800547753559288271744742051641062231125099417458041948712796186833126969450088802131593913415998215630744830806616525027207206612015006699036058456189819630287150835622835830057453041160907236547861565461037489863993505368087782136611877288864592920957299172585706648844126400546832586966829709485850772767357633875341366178622415692731232337565300772830994867424964115520158808618032462030494853967871171320579550386858853215670530338118646595048661367483864104707302318072708992223691352539232525572252152114120920709576500406619761158893816598570549880936508381745295677573254886337185529900840456113230668273664902673894007330204224426297544495495605712763121662515999763071771103523637170404783172374424706219397387261809008781464549520664239430056921776425690616767316234994524736900672033976940890809796937975279281967077500468827769337194711769069797523916417448472528057770460891057383831296324542481370672060572841856229239441278324810685087237838039115856971806184452692410578609287222587528789255728113358013129127713351777790273974269298941639771490792679065935074149867232208716976674116684878711556507752630893200163751533866681975646513719924265341722204233512014496681043646054051212444116504969455347358451369258988861396230203777931812582428972046132881719608570375015908479592701423696387731119130156792177516703108171778583728036150771015934367945998820775872076397475770998459214086644586588843443498996952319608018112563547213644619559776807767888035665580931174417350154828558733080750296647350564477885536836005222003949947550338995475536976581543909018560032174455157653339522312813459316492997281642080919572486788987034747760787546579139919350970101897642120873898676382535783539148674232321503594385704050696950434757959334389221624084893544455405935883199062611418283186901364307366046323611436591631718021262657191795033796659759456244746340667286549645071958840420945787724494180542197230778301209235693471912725816328082967683355733790910032124107447692153622565775844053277672155378753035706076116839713549021038348198047847314127842414805512151234614112927822435911114173069475540793573096466930658671271262369844299894538225996590848491299494634221762497876391428079242129388710632209916742456862058337216790319447477227797276860184679858376162219704407546419040942220287324794235142754361035513103856417013416403941727454095036997978199862368190138834142089695499691239237123982822227652043859748871959929933702744044265876375187494084709975486751324251815798923382558613415586081547863419171903819908883093524731276943469122124358030808393499017706021822020558069241532586503969917822009211386065427587733255115196042826850906535045942000211039436167884292590866807978086601779274086275851803105667385131897600857585113350420609157313441325647898290044999380199239416953547690567014040147666937896457635303261178298861130285438580176891835932465687898513949170688690884124624718210953095660799156519465518127194501072591299487934293320303255379783710929945759935737141232260376409315413850745946232687087935982482563028120028260309863334817173048780404256939891181937870224810455893288070284015331767949966149767561895325174534812947544783978205310590912456282264218532756509227430387435105208144486083335603872699371447998372804277829613194686877548439224165155111021826457434318125965106923330305321423375203257438254323855821997862199757012626698460662870827722797171684049934097297966219320252604182313149712268852123817771126636741955673375545794078198294721197904016083392336549633594205438635835074212056920361764217530055285388673972533824943781703249108416384513218841515182946687701159710935669046923881807510108724875680607479686874797384938078952615656956945014314425228868575689127016368093018583663279137411850310213275828989570395111654645863244212782337430422599327413961232352344986955072820283981397662046402369982714814858673513380970335254620975997848936678790636879029369045572683903665794713773486020490848180156886373932927962914040401598819229461694593357285372936610218229263989693765724645481253906818330859555173653359162533754531983919518818828505005256434632223124182246306333898419012759849282794552330578985200070050193347389395099519696974959868636639163866077160897435356047019831013859717521142295229657455433775067545858183016628712347997675619480219556151822081038965022439099835819507538238795579235260652188717492753091780831075313870025971827668905221207001615838276330190463564052474232144436278689065552502250612153375655058911609051003903801351705683893458440672326535683193887068529813697180410553062823975105178004081220906740930319013300871042788649894953397280453370581161627817589190591082001790986265823932214171643844886394500676250549426932063285246196363516080703120168776445014698459558656444146212078857051221915153036569467845099408414537914780763466007626499300239207420985207173338871241560092608419470679091035269531910781123848704238576563789876858330296796784540600408564980092868127692283740131704890183608972633197193408205808154873998859984776842530881045161401994071655547506741566604427185581057059265879720309877320250272226647513172233385212741894960248769764030525012925400351020304686431009671332024795595815171236319511304672226804257503401442150338139328133214381160772737379291564380340354489922899251245575845930976305460895435118771066563015069357790641168996089942420703059500852319173731861399000445566991653784078875225600205804023913784396299671950038946544381678102973155890204110528021505342900947223335745831426457337524633584082816763814446730730250626454432909615209981881426607423714710262929886036852504314655020136573641817336289844845532201168543246479968146444839808217645043440770527948957403917817691877777637560477913558924571798166717666100206619499897627311424256505976242810673862180583239872779601273336254603702875066553750256078059305885952280898466479545141060261646814259505688037225705637155494832467854915154409064739811074756850554941909095274834366265148345968363705898763149963110860258849618981054132233845259865960293522098025443189380621175654957133864900974642332255654742392387540536500410353524858275846568740739831914839706913793278622237336468758995763733130479871743049413484245576800359299648083403718094205733542956581526076780995258677156288539761779033240347715963189094821152724391160091564253565592288968731935159104835228763991674546407374232321776469096472074403034446949883634177107111757874352413891936097292830226322381485675608490522354531151022287253937840529540416606595591168533775440752340119651583641696108461111637661081946209708559148572062271307203900127404841702074453847966424148742284488437047105146975793186289879216709709461122356659086145267757275423612261585650008606462933276640555328152472341530258740092509091703675755079862422372267409833917281451750675511145358561252224665273354377745570777346140720031244600903752979655762598948135163933264455121408152447588328379640547062978144372402556955460281981526610877764548019550442775842290270643980572924432876897187889593496933782089115602908830657947104712534067346251469079869191725727929166780318764790517991981719488151641861461282638340979280730344032078001733511548639388190589687918049379360369939292781390441812600282817501804646189649968468155246430240722211445846689994605440847654374261168437506274174007778634956273573718189050886859819729325053700810449204210364238319693421830365258387993405046135478789782092289649434432771784089893741937755594828596420086635340774755121412400734984535894561594348953530363425765915253051907827994063211000390847659740702265041438256125374871303113836666538412974800098290837927148601035374598515044771304550325387979000889543153133345415113140040599152909967235952002458019111984671550505789689091368565537605261654901682298132960503033952728931974657100179037419108265599069056889274860039937230420395130694889268914230646078530839292150229231841311367390379043628726326763734394670319005435459991011241341026288074383466353130470936147351947444461163362481729867643750516090886992908955926284826707628423521780721155679027596063964907700601610911649653466209219322128088143764119136311966070339897637388690043254231531805774291950636561048576543493132642824134480904030150261671376620895300207271023906426992571039065827898232784472034700518278374071230230815811587956292150130578958173984834759383893129098409890063142975286216065009648525290406946940086552974264175844871181228265816547590262073663678344748427379585474299336563776599318899213330682580616499111213084011950999216580993899186077845489096490853382474021045011519082877717591190270682064621838201945936628821394322159963923713277802018480647971221218819192171319221792359875521437245544812341226188315450640489001288188271818113815150612342995401832335285627847924554602844019402744701838246752301060552133036081082433975412806363180929168675164556200814168456902679174674039370354230860994751873742783298693906315849036750440942528623080080057272718543217831589369306420336310803003141657427849500017201276818823208553819676069428263974928093133472857203507315888598221317649338922766267811377481137025037962633610492378294044921588284916123573759043171279202869137650753944996452908708369030934114242387963346734072672113410536260577515362143759767081720086056917194544770077028458735278266787575378598532889025538016595171027521524962617689842306003513425527858883060694421126276691742618366417709955569811489362059543453951636809509360857782263872765338878342987098946816743197583295067377127692903772702132152500769098701712348510176530842775519228466707023085869430082051356995577995267209793055117975166943731815898176303514852620283883828969454474456066489052567877801545431545536457193650446847925369749229067448034313733589194985586301524538286977874808805416897825566748496272495878291540001698891705075808324186155160569427984125750619447293390165648840412818453978220380256411580712728955458165524441612272331175613257718680780247685583035595837737854896827172653932767002495664222810104763803848428471394121960518343012952930859317631653734357409017999845879606504786834775716598037325824655359465154626226758580978271904439898505799575521254378930671209017439127783830273635619004822313090888414384845845456651941455019219095925071288445261334238032450900257102991277599600087830090294115374493490531260047174971358328736637527280830719542061418594021015435237276321350209810443604004576474038566100665243197521092811417124863013972979411951403783945883659173419399619102758788888492225929884092120938337635686490706626953270201725918986548493461117519423048579426677063071952543782923581233665161161367022966547221777686754497161996644583262539250998607624340554647721960756428921488514102547726369936463790262323480530134549876241031369002559979566374004420439724502346085991114604931065226531208812253331485222298807470571659975617017088449119034465887999911289247205341643146383531046355347166881403888451029328126026914752555389613259627571565960705153660741549978586466309806801544058943162678218149656740961933460131976261197398986893889331080224432959961971680580371453644377714328636730079124472977168839083885416008183827682958313562821269700099014272928070402362791977278370493693066399858255496208692678394714092996851049992270285776865847179072245451054736579306611729603456440687731128765169143427579275143292046559000004852143823631963416779205965267851844558573044095976554129499314606828668457507448523862421633465403459655967618189921937678806176795455244253378569247564476387273621484439438321944558690734142878621667947842621279809911987865195784626145879103794805691709641779607359737222007819101952448306435860593861976652323014802451272161562147748389379202978886102633972427164271799337467068166994355601903913601187733085218493771619451331086309872320058974723879168695397931022252498488249094775563500775558769021008019167513370097181932582800936481211408364494018028220413038082656290410289362815198013290564275706708756774414363935838967516943119713543694723099132342699493940774123376412861201798673238840277257094895524767433779881738482703464515890275113236513437840616463632709287523364218631105564181923937963326371412201014143740893857708097070298578729265138634338136524278454667712704028411181953233503065671037092664554282258087372546679982580153450238655194668107624290079361982532255619665318404773799203799210827305315265791129705532946414553709903740169187656660626886807409645458212948602157922227514948745696395802757133230781648144918144241007006120867037121461751459574901087700201090847914924508390744051534666094649126202203688762011665491055851919096719144342733298354031679109599433964720858405035818784316980347875734997469896315610557621512247084671736165478935889520044132122504700327349206229917546363963604751517786400781310932577753224868124250129223754428506412549674952020465534337180655597257351974220361502631733507010522215022336265667109924892430597101570677379796861272071637713725102794328768066484199873476723735323574808716295581833567574155357187099528426076747428890530629819144481018178638891618794780872251353456108484607029523390702757070650143485998167988910977895223368950919137972625684074190065041751836330803814926054136047464403161593496428732108170429398186710993394490910402581327507345157930366777456015358407113754809558302474389580238086467477383580065876084201327815266079108071044429767052209007166599993708052990312677032277282983708560383169555581823265807530913477088052704930013919903721577351596881079328318571834649130524036303612589537291149224422583925820583053967393667076498036176260216029073283167745734347655342803335305675733736441489190292371004885115853169231876162999513215288645605219981946812874424181386203258179690382248051430686297839783494294555949971720158556448238411754798403911758874192000088993448391961579721905273650390778383525749346484135164499239944944823138088139719058007606023812421828564935531342978842177220981851390637491705388615140583102372274181350938298505145302198169359795849437231578656570636141371002725022326057116998941738209589733624923040561846649055552824634045245880228568264494585878655174350300286622967785042545830371119886830608974744937594744278338220697757435223965834313487080742810437666266631306219353707669512823276598874000010427858870528542435739119365402178251464888129611567145386496957272744838032416551307636783258542691195337702064878325745445921319635630338035439034924354181073557488003836978944858770401789650101896999672185841462464744895601722916317363436414416662213503326253699219452747838099659942931738551416054505851890202349961986675265299640459887572912210428983228588323258580951831740669293734049953306485880788775200780107636303256510875790730429612422065087898819231857691985455899251831587221904674339082119355282119151163127978648435196622622071140008599343429415607489815419751716266786363577289478649588256368935433823959191375020933257536243392274176150430385531248475205399242761426525269036429203109473277291118378636301811976495013251267407330088576115467776880496612536866208862736992186536015757198093082663231804656971196983022213959667109454996616837767495617002179244144807947021083064679745882010712968936849388203439166990553245310539541270784073173079356147794250070536954946760749363396469928820458925177725293289515264859124981961995963813214955979897527871745537109744066982005832725451887605097891476739316608639521779065590186337639143555723531802372776495848404578879995948537733490298646750986214151167444861006323863784881310924234586846808206475603538562344249024958584687455645283979816009923428177578438695822012222075336738990079021107443582828965751689522772032834261764505019832228996897894305104691936615826028417499319217485949416637995948876806401811888742852815673401356268051233116997496607587350756430991401218412929404371734047310910333825801068124974252279894386670159482697388041012728371657135214100039508247959749042381284586255969843923328951980691884151248182522641368320985853776657152445025853237979234280491351259324878152763617997216659826289906804270936013480504040489324815347649461871533506690925777365326265322549452701042827540920691085930259774978354769873661254558786926373462700475488498858582782357771488287297057082866096266738391074439028645311939631654171640077523790125112725163100847461040612747447360216398006624434964053106841361048734805698800408149333903445634085068321978163489753450755042900966435114066582777413525633134466183144632291445752909461671820719577589229423705154517395857850791227885979398589342710001458137168580427674056165929081248375031856381875210860137071186116079280476218553677781412124619028151277042281449572921006343918010891613634070474338780090818832888877662096329554057352783639109903045297531455440177374536461645225792960047762150204689714775642479501952963657436174460979925349892104826861326516135405934033634107090700550093202687428582953797616917332228459225978672079562627115562617444951913544552585977012016669236311872910086637267833052430401543504838553180726906303486558404068222355100737544395981312396854472607132822050569747363100851304446153805625111902320147407939019539413037390079867865850907779284338958426779100877893579445036781030988254638971687406217539238337369817161426107880992986638940208540505442155530534934530779210246866927596400791571511902117060938865319161164123339609834550825788080598188931507271826900044226127558145246481890176418331387936093920902106763760071633375226925335574436331029539590275495206640325903507232041084531110490767796039101704088343467106633522798487971357441374317546259674159816848233077177827592536332326988815252880975284432124440586674825639889267907722784135716229576952678440063727546909439670199430204208333139594564738521599248736109270556870736598525211272291014587551206080161368527418094799843360405267409602566937841727372416609064750450468756225858661582283320244546156120296530750976862988036439944628287252438048863525659935262304056359446500895085103020259363837465742260108996824909200502501448600259532339102934564480840259265309254135001630183501203343918586902561057218725323335905388974232699286465549784567811451287661914120356733216099233253323948313554754233774475647628910373759972315569463529446397977958163110124488169029487222203013358799784261303337257388875138564492225149032849739592435249435471489591413998443066297014904537008594336457695961141114142759503406708584428261236623326379576172689474399649780173251616604941624040945185075397352458145775387839033913582915106486085734787133934283373265952449753124611068949692254963874760095554665307217630694863318233759565527031319869341517010007139171614594894713050562833504165398467242447022443515699652075200418423856892137444773900881879272334671704258191648437378693676966071914445855358030129424452898991007585879784862790965925204535730736134290456453275290578938348998856754043586677458819712065567265802058877401276911494641837309099678326788191872547717192651185425516092041020460582646372068302439940420576662273294523059057923414374951965974728025252903139663936926755632611547242978429299545555606002831376451387309609784580646725880632037740732783936962733053385243548590352638195231958170699701530050518506738306842549622737181470256998240241728489265083130394733583534574466780193466657507026445110509424063447135442343341647560062867770135879055294474366957822971903156637354494095286555851113014268845402024373542515276852942731481969252933002450554989968062302017094106548560962084077438675012758142971775384478345991985880801857534729411994600628523534774575789605787766261436107636056449300825869499540003629779711279825325136933662199043379173910273865702747514140282289123215856514889209052629084393570350988024299228332201786138800363019788562663623761345246716544524966067965703310684592444590165680895019501236992709169291205756196306635989666510626021407235152014239055132928065795394512964597285479505350279221277181653627324442413779327774837674963845038531286753022279049510159992892370556800694302741107484534263409781491582896099265559046185983581169928932634532528461618494029187758161026893583185320223674315163529733346492118905216608638949588422876917108737228239736770877321807213347034601079475591846633024138477536483798676954830476368485858701973963920708785154497228746091049595660577507703462342269265804888964734571189051603110286699119592954748362253105157036366072636283915408323422369376727586167389680749383179329089145138522138359695231034666625205744137518333737846369775847576943809764610186375485407370215216323320427798389474812215940719122949884782071700297131116757764845514991843035282497664131498360294010976437103429053702602718308799757946697490054163476707955065845574389428557826023219016259668452190042738761011063862222496632652040179102554014238464097963502119204315272376740448948440953284542329508981895799654242454241173876784626935952317741645935386934771379666963625625778036543424220666893022791169827132229588292186192691360565525012739647067351093310063723805436784665775252099513582934508971799364046292363617958873939164145165221784974757830315230085287920464931412513518942357006469707792326297470536336358811278240394445370113042178234962464590214097356771610137445327774733247858093477852670796685293302703966795634877661777709700369938723363207274735570488785044614784563262894971208371816255266271304266356140884551292573588802491024328216746889456256772672162512067632288141480132443124421768321015816743761386364587759553606727005019135656457322462933297122280147251556405397487018924356688083595801641613292742946940868716618351598203011471884332400419718277288246285283288796809246369667703363058118463827991170477142818588055664987314938137176350812114555395309550821315453215585003657991218452663978511284317709883373212644238796779837660352124552888901727231320288656998381022827265579359833979357550409614864441139905149646403590324989952675611476487269241168070974555421984180326316376056718351528326308990108224795309545250376084366646904366132700465586434794407149025586041000117650067054580048255990775644432181277447702872698015354019639787909968604227196602694550618068847879784922721121261064866214062761311976742559610132921583686331513566971733520476467648398192626232731630414196878084283477315569339513880072247605672564862846426252867216046142485600468617303253918347271689703600316194184887717897723660149933505685332573527092399886918541044993653387794665307460382276192527623867477678273944837481342125485896174393152029565036395925351888013319544221442576714579375975370355101200215153015494084070179073043211476441337259021621070804726903217724581851667374334225874720615363812624225666579905372819922687735554029847572606618812712929776357569392187234329380143795262046719114827481152348907008790639394977333855881438966305417862089302030635255512270499140280754920152861473183507520509518634741472296281368465596539580564530605619587925177861322238236418084809805586591658366199255275357522268917378711502596556136669464147587106612678495472754941987413392465380532687862920617546112192498925846337075503014362315436311845480095262208118120142003863256161002910452847521178259239492908211786274433790400076015264674209892625057919003812305387137520462708418660692114499820028689177759339274575809439339800532779652882751255983621134529419955077018875201493045181449548279055940237007109863064483034122215044979120461275943800982451892990959735465648055714762086677802026243333931325737895025384318803813440384496153865222135700359203804197454975002306800267859810534378149794561433973822987350462368713690357708905450647528568051907590106832406436512049364454270254122575226728620485119371053926213936133352372421427916348303457196811894980738660183153200445354992853929701749237677989947681822402185832074988664501721557497782106380390963261747204637626483885493654043767242022075607171661828089377417515760964446999759281302679208851151078669599074567033855007484243758872957022330019290962177266841300290588555198122139867466231248919134085670553348555194164850160466108675200653372157071797834541385545082874265184674709114830265014330434835890723070361174922005043243362443879511313743181183555731702651617821568519288377669917194319585043336462711654028458511853460614196865296943183782778085195741674152342790174138347683780688435906334119722211168878273904392497633597509222085274412299715295379987828043289452343366006336890827145441662841249772678060316728304716827152512287947464705154333566904561228736437969086762761326924058885271970274412302938976211763200197880329796544708337875390895145856329246089112684886621464576196521020867686383219302580960239101725431108823095479019961668218202711688976194443950178649822619280280417983439219145934711630302452647715503029219534108560265015465486652100709480144757813351516925411363091788157105500735516801130986603309605119517619368497005936544238759729960001022460428127643813054335086755839503338618498503764872529946831427874904389677277535283357251578183531060831905238779381100738786767809590513759178193932269419997656216920556875071771651202586734262120059416784916670616853008090802551197031043888488736281103759101722811883174279567136928292064150454287025126894018100632351544407897976759851955549173975544776448531441750917069829484057349172593680165262308882455795474662627584268571256825556785138056618307135595667278419168782492856503591455364894559262297031944491983441850447533326898361717840469624446849737926492216435810491202060036359137852348022935766287725905061136599158529571293213340343711710491005694917242940585075038468594460661914004733389291652079440393173593823414131063329632912256933811674715125838662382590552987737761030009325273251873328473156757775651199977350747196228733701232861721870724943276506673826828658817221010668021365106824492393991461752261184498080232538677732243713871578897700036034822120133740589788289377765639078910407455166882734240204735771699313032806469052877084592242481756775962115949577812581861833346176275193223594078744851363118165045527368908394745191859788965439737536610435074768048099867349445779221292208104911420982723105690764405481818493741750098405517021446044471873176500127088039619757564549836429617032062961524381225618723407018544141578335183342682129887822940394503907100439517283486277214479141061635375441253856171982235957195540725113869810084353490309277049500781855255868006970110375029301932512716647973842794983071720073963105783721990972778408175958021336485559493308563675782603075529834360236626496234395839880259660661378165958343604551742026629683022047841587722043040957770272890042404647039452202895328727467400874958426642317096950654555142719070091567063801368843900724726967994807004520133712113599148854235492659148785733605086558653689649034078096133625133841468026281881297433043155830805226652440532477639722109373919693047794691904687727120924101329219025550738183563481800864531785454690872141117038828239208229850742590497971807857173785333344786235357473430858925101465456517182373529040335119919715655463304118781243798200422895220117899617056438654911374574219447060291790933640461363512329905755753186541627108194596082723377307122688785511800978481702004298331091994629852510758705094140030430448995274071878089488275401087883255008466879585651834812586113080270820631493241298344823296725692488208712880916118047762824092135279792531767619728722204411617501303923032267510049002085163275270346830906810957478873581641546288396332365886683325914368977779509456623159346686818058322469573506532366809285590267334050036192527524967593830082971859626181851134138039202498572955576341638680092088926478600653504455632927149926079024893081479932603399954923723193806577711471897015741808202229619768805204220984591367712984143801550305745343029474089541934540537756147898171232671578795657880764623201475089184687896006274563392320915946217296806234623151084188393071718577232210338746445667467762452190939111694488939057799717984821514769826618728079014992108297695619545371524062283210946368099418406981617234653138019804127060730330286205672238066090230921169088618178299487060388720745400520261916754731307121104111301563997427820386364178355643643653848540241129880184181900239625538321257148573439689343021146932354246866559939357152089130178683606939809016876337526796391506874437644676388730898340228298020601164103994048200999772747092077526822260584098310307617095197687386147032561212366509156792799007798975877715101234313585571129422367893224309625998735494894531623239585782896953789076014062807237737983815920627924797305640190544957758123657365786442800658011526023676471669854069611719614174772920070775581950913828682552053750014317776572807776177832330677172987283967730601929863666778649100055718961573906242766998749381622448476596026047837644812568232994981932418175193450516316712590727391490596315282904244455548563776509909768196037822996016138967770321892703783830922752933105821147992952219113854977574116429609289117996643841080940736967743141710903541118363980565519968525007394881943032733533627032921420472568343471892202283084771664107485715137626922911805564636732424594048530709166546920254542836518860283470104309866480396799769349597631725703603442292611789229628754422210449016916819999384716665931658123033262067462960190503179560274796483614016797305038758462138389455462228974056964602502794192899733291559456471045115938704975660648625054956144817504632958350752561622173980813780274979076501928769572141165888554816455712671260674302834614193925707959989029072071823658006898586795533046364227808401245134693861914856337583371675055912032767804215514216452956401850187164075441385329513098514076220949941243464417341767558704544506540720810907360600616704801012297984094232962373364877901956052889956647689997984682789412358009205264042258411909039647056985521146989865755603903503352309194849191303634940415464450494632666803457217112098717506094357565358425136041113199508604732556107835557110093318674036119737136118069851660431337718071794158357389613414028788930543170694836611542041932056906673449059564365310653822785790703640109118243913411829602398487582580955392604402152195623242416644392787189079574723094194113722959215788774252208651018227227722997577494944942247423639781500662906508688190648587320995859880833865907049962341693273467706780593706131119342103509174991152365540701779926723198831777685010446037098489789166830430729827072959962327846808590728357705862974241184633990103025520651181384296832062950314507671079942110610248348385249062737279643573405461027446251654676565941376374535021026045554587837910526297904626462126918918501276756346268458136746008285237031333697994562495644343669547097648603184827005834441686368184278878735759690914209979535105357451869046448178480067637659832007429997245411200081875045581574771562862810902644745453171768705538809490669937452979689125920828469143413229155623213222722448279028978401334766320849026462609360139413042647990024011052286025917844231446527763828001332853925214100998284749517316319651772999883665569739427026081315111654517200003577843585578433464516815058727190933066251751427021774479677917751499395793044885703514225624746376374888972813238081548115889690653662967641721889970107176258867926418019208577218192593898731454197848935399486175692249681931937621063300159839180457845972384956789109290169710971600152394399815958904733187336445616450926472483881980945260483128825153915731413674774870238481665180254604971805241620194484863076313152704719419987426000160793733229874307539796420192031485090798583330546551135565647424216162163155313848615441478767111891276845807953330388550546328253541707633357775559914945826635772403582134861689520510524036962734599183628630836642243561584427377655556188782324879029065531589678229957469976949419904529005473679520371396617635361809195069554050361545781572759476498779081215572180973274423268894033370141941102284278512739272827786092351271868358181782718541675992156428714805046281463349917088589959729528591122464720746915177771218611234759124382165201910900188550930048450122885224418219254885321904380055891262506424457595073865625652050540501443106665100581969328113475767172024714596607518921165823620904276172597663162666691700392703183838084432777146168218426212465211641335824508707087133496918020901498490761876089412803521529727389396617642684484779254433407508440678722289784667567858552243897779330758202576911531515491364074083699855293234382579859348810325407838684644064009106095739802299901354724828084895295535800331843884456004650060883841695909480174765508516444343005944566059488582243010070134111370749004822557846318152233640760123857970884254152453674663554788018625141370390030241524530222025763227002829461034556375988369066654870627301972434671861433888652300183405178261404705379614161315182570986697407417492178478931883644914633942123497799909403294384160259646781747524603141957556031008579002633608244603500121375483622206559070872290177215989258033633276222424064739906338569130501479171478095088310824215911595596863298410977239129234229858445032622931084303680027409353703213704569069121152880470852073113142272289144478159392267466861652266868080660423719629091458036792622034337564613424311718315950803552314055137247605912807234090430005031163514726593769111200967038269204877094312275255162682326880665738181891322727855037244016312570758073178954199218856358549643337994456449802573169924884369044727861892438548252914392102441405992910435820501239354156468982228489148820562299861688637685022930964069781991868576981598737348823978116494185353653663167576726262477141555592458348683897409550079849236727567148709066893002307264721757346517275016013370154474767708034041059535643747965167324346210102278457796589133404582296388179869368629045571533418353227861364030725524333443512549996460013169649883298496919701545491337064266154305353923688367159725109976287325455235493955101160029148061520719858876085658528075392846684107498324180361861422527423408469066857670625991087353901060476819321681267198806046915769884603487748923026308480327760696505765796437997352912004935227265325625924677592613802983546543836809535750519086809233400209023405655063218507912909629213156211642060058921889843408126610106267391960237041978211404912554644811170618661866574352623248366178156803468961689293953270356797734560070985345129465986400776315822094057148397719670167807344136858748953016825202532176070646972809611221473363107677090711540050916717112481386804313209932648028969675520955071341663391323412817801080075788512241885143689343608040630984794028961373527585719054329577754741809808622550656755353943415123981475694384593769277845755355049798991925944955258559949321460466978467145929265437265296370390364724518417369019339651962693810778173702585481488602044938337601369148524660751799206947493507739480549598073781141118389835959730523779830646747195927800454196091087812377144573669070030822215511963272637532545707702020149315776368889846858010951612324555302726355318871983290078994109727831764195834476019538695875523005702059035610329253313512161175346508116301564153127673161814409847446890102958872372881048513121294567606457290381549861472829770301428821985335804780719495466811040094704292955614016883405651356917512049012334572183391763204096559279733778535410135905952318847007931385073797650776615077804505418546442164971663866016167377067830627635978226543839191222056172976443257751905615520656572858045754136681657461872605022331489826268577667650764212517267197312651815452253386661302480358462878430486350113242315441677192352549913506876935861585177321854071374838130989858322693008731842412185936449438483207623530502047773173462884293335644077262911667577515464798892535558934446422229887255966222355214144437817721428661519090077028378117277704436854448901065352435802958507474694819116402084219842425986877876511514023903975757837345177052915444736027804275886117208076965244451382881527604202140463459890270069383150881624917788304940031671614299568633025913122468474209631319959536538575096132658684363462604582585359879813111070839708045303781766526823993840274125389487122110320727393424590470505860144987485275423961191759058114789778634779057644867971620838490867665984720203502775467184289259853144724480016115626716932026395091985268868077310765567705976847050422629345803322364559269601675358306774460285760048235522270958324691674594114986535902781354513444810227031595397542070212586148086546491862887061114340297740563027700911508662461216640047338631531657605524878925905081421193014579576526441768776692773227109023541441176550801078436680602427437033254566360636812608103644049850942485839657678997507621980914438413433037483494651840299440861935020071219059254247537499130751364827121538555328046780888189541182737049534166842938138525670038744457409548755259869280288632114114929403880881538026511767913489323375307228297919211337959924638216189936545298596155638875320900529463385798939734683723359115109952885386110871303041467413476504436783103750413616296702860908824028060119927707449417522513469410962010894272415188850556492369156321000416329908283464329469565391729315888646796500388545603520104642730610781679659420410565887392436471566689659885433745752675880027091943292048522372357485705896035302938518500914808908135187271088534536972395365970013409311643987480985694973044678811133545345644281553206971938018246045588057478463511099995281446618893381413912402119285154074730592727059691341106248546627779437854362596928597423502429499480252001462187020658353558030311412142688200374169099838698528584944590068950904436348559130690506040641609211331653806218187791087646311858439769411608350190396752065027968808172845137388978884955838003593088934970785366887211081787158409587631099237445046195821181490754509388015584983840362587953264366689582165750813329332207013327754601585269729434943927997703846389860555771407010673968540178609746157724954234808521174376608051934463119624755579255011090619959800936501892141510312601243027613470042840597086725871282176896300832426900750270462382413271826210868560779637710336078608873101382277477819752647411216765425694313381646506831246915134606331135406442786514227250492598409110823477135051616894744066692631724152799218524849494818233579611041260959604579068609385160087498302940868992362262996224265381669936443993533204586344614315946958380662964463901454107908749967008432819898598128004470112637748948785155170631549123244392310918227615240335140630223168768167926833953907687929054220345405336683743895107127152217857631968721943097531606239626276879639920037428185132225300985221612163090874791792788065321794966767808839098405716864176422495579607557062487489864386513570228856918085712732171243003608569700795098345355447306803458912537368316497864585541483128522049257817751938372700750752889740348872976181805054375573359721675208326159855319747156819199532995514035372746419846699186125805647806859627196954925320796987344831058733424127042723819987406882446846664469963442471018585713618119110043482151239268315854146534532301957159561172275666260508231842726952044580989480118672649894189957502121526692083883196069540774504475392650145197873120184126477215491934883255552995434503328282877025983494614486312351985439843572334223136785196112467080757681042406325985409477214034199235427062035750399089831356846924111535144437235484564606311260978002057447483243467606594674969139176234689676565079520516214242928326643863041931126041529299313003701112162768127410283020712475476108067313014584656686230731663266630221171817453436219884828894783126786928254063618283308619121110459475228880513275941920327084419733767090208095620632361570170945316632414006045427728339396431779456449766807855280955783209707200418670782926631373527446507853260537554124670319922816980570187567852210322104605673710983587200883438584012631146753093003558186021672450266490615226172685568842871530333059626879183633268575287468297340593262256157971073791980127375119023237747280056660855980146898292309864098494047163816271049012859189770093495874041731050865742061682415256129278661957237239860881964036018245884296885286483778934751782805833570033974916244509659915117423310725368693224680554343365363263443963369201719689371634644740725062042531716433822538934365461863596388863143008205049800190379685886840398241969402751803914432618973439309454198161038414094962147779299189525572720212576825869645551631970586457920119434493029706876008181854635730901068452783913111800200139957033030635467981883280403287586131839447417321596417272318429321169888396860768864272127367438422702828745466468612641483309056249624832596459530943098866738371431013175208573832924404186526887055378623944595826864956485376025089462802280334118509053768244059126382606991389108832623092062636227767621539247775868365305141866221901124898204117719932460559639924238749267364045410823784639860106432196871657883327645069111823914940612567402523259747963324791254093145607871757092793386780048771531810023825898278066458677001043866273246231210393848203841109056611882443675836486109539527781806654552149348592533643606660946114963255927974341552261909705658747756700012115122246940913057297849798254552813725823228452446056978302249015154396591106724876346453835418916632641392971986288684919592436083426118258680194670763983490334094077225284631787650487038227912846262832517483133667369991722653320169850145341631582221006259080126979911649298655404254523045119373276667192161648771577165981337544506587165402516998410525968971679262552296537774705780396431223841568714212483250757195918975667668809627444192563225088714333509657398583486299545337742792423839749807752597445327171493491284785635359724946376929374807464225301177244626797171791582782197481038829779768149964606741885778877557016338879292829312590066033523721354212860193189200058009054507877307641073594837008755708357290205150012498538354497068000098476029950216138791009541751324622995088892548184330929458093356272821375270114985947105594625848338494271692003343661623215176584155256868752755394699061597355922266000602039484662277399875961417267650879600794548239385638790709571355769575962773327181618190778645447442001569169331530556704525359655615286076389174061336736675082940598305590958977879711646126489334855010907390178184786735080877090639311435914479856854793182901882326636783164463612680504726884889176608688594328100742497744826596945929373333777691321557305774322661659152109703913617397599777238953732946751259568525675154349838465240856281683448345971465509369899202221038719277684487433669122757480607920501656121681953481288869849782920700888499791899025674955952418495851778662556507044350069109524151643109646586459667806947108041881362441286165712632090639645242882093788217146695039125724111583406299672152433256380131627496246333995258551925005386290284276572121857986601582063451478394701787323452556668771082985945235136022435335145315544528869766862756479207434445791208056539434009467279313681231828722188860952095516131700491333973127109048218712982751245243972126042721968138037236963884826724660413774805282242173271373665554254460529848643894220309261468640427285568865524211678412564191309304964960997244323682893761503497771078294990646033275272762986039310033232944103423068668129178003213626037376963806887135310926803713907125227126601657672680537192570190042336345175062763280235805977629952134138915791781578922137975805551879143654333506455468761297518607203433304144673961727303615887013991672005429625234835228659424011710815807965669754158550121199032782747703847197153414281816550686852916931512255388245562410839136159869661647165400164135201143900236608665068597273734493626929947482620466082971826953304854195367840784346944780731409541290667056561988583489502218437395811329272001175086948230475534384674858870008241138157922201929907192085734798204308042947904498210514776128083019891890377147121208523961467288365176093718058956121539478783638966124182626583093135249705773924185661954552496722111366790468873736272507313263256936673710117649529389998455716642076279128801091571064341769734806567379977470848314013633755217896271387493769920375552972171092151061212192886087834063368773235653846131566219461485523659526004130945338895806002833228341572857364025808512392602832333256157661208504169283865136564033331096872113720003689444405869950006169670761616637039444563748884611073914497143826552209914842427262865668909118839744131038084666129214581036893516795755346025739667069189825384092267675819353443915004536002893295362028181900566355098503544782536278747200374146611045973130341811875888540489221033482556732437765964741221514550380613547309497632194037635046775542715779828086778689815182484137893196075329136911379073139229823948225366602982792099188352940379362762642785964501202269754883064139673185858071401615981718212876064587578685058919743766833181925563040949521423901005338847891210194891668307961025961036579913585537268722852993808967055815009642822532695929783615172915413322537884171247041545900886340448858020817026340231201977462497600895094516923464894376643400207328479399579773123886897406787077666611978070657956154804010979591192022697018999726215204138590363220184893026876983115666021830218290049134751219092384659909882964349358435116865991496264403043985877746656267723717553800730968684504587481658843945330226937066056500114983980236223699055185658818021677412532519737548142096910214341407328755373598882026083825055358268135514895781948257648430318565978571384011463941610187727130146053355970155471309758182643714423673075283014338877816313967851315093486147443058175672724186673620509732894238096267857951840077701423942022055863290240827987495624907389965809529389964798654300467250649606779754022586155425322612528645160614219175957193347829393913539753796354359588349468730276935130612683910634125091981174505548125795194413280951132705935282626894303812422402927851491965666411071394715191796687528647610140909884107507928941370645524255319728583245577135094455648985354323880618935215492084930528758310928167198612412646436815940237367493590355750376922209984907346959889740230821395919123874436090441528663030510296111228775710504512773942461132199166667960703382546748203921103963685247404085632077543594388121797644371983440445397412198392935596293366241178380190319478036904051588395899458301917917483395538022388873795300516229197418046636477825062636036924388888710741849478244443759802999214145643458180552768022059809734262799621057014523576815191676773983919304064550846355892042875260270766079728014550495711770284146643338502749433635535420684640179761980722801855685330760263800017909902903427206073104313638676073148679626616654246111925546111830891816737359740637886574889164821947243172240501138940265165823601364428341747492633916614756500349214196225573364931604211000155424659025493174403040168063968178317165605189396320912728378061764194695772424140836874890120727922301379314550273215191451237416427955339620051000336033862998307694435445764759249366033519662252854900535974717745158771039109316319930151726044464624555760892063312924164726678935175271942814412867805803365389191738534837846125103618547998271041337564575630723240435051262091411408345027987321325619222894709478596008346141026803250595502099031144276417232816642688110771402847974467833055352404597555041967570569675297085792645321511043864826816317853042345176974990036088173831802179131454293993896916790047498599025345693030287150915567004632967203152055972352745098134951021747011989907490783482244917181653136265903947411527045149670593357028927988508411778203901025887805860569374120811077500316921372096441533815275941186998501613707825350565268153000586703634152709058132391062887937303047260279503367681331375141822507770126134915916442165430724518921217104980012495825779551152549293938806767931375039218402070974882437600423692097907508601507910977207520999767683304045054016596417488234299430878493510576043895162707975467514552358681284164524487219844704444704388799744822709744696328086535089452667623546674850818481201519053540547960163787632508479509834638032196112047916623957402289655672022509585680201216190782920859290516515215148685567554774177889193322968914516404694745209908170361549237253139154227417232469854771680806052084627183928210909062754180616540639305799912637518875386323210381685945998666401551617717998250870167605936520108370672161088330980843452718979978792892983375052495982518918664817578020123929460619418923770550643030792363656673964027418844195335645939839370765982690377920456528254959811445090269225120979365012649953543720086167405251898446794439969440219781751316229272640170421025673247923832206051724184158223213664879824109448650326318637087226909260610891054608224207444229236862811169600055907918566864329118001169740163891891054406013025270661400293520754882624561038262498037422873303724498169561785464138002456021233672153043065037454709000773140737040684209512227056322910237788964264798909256918385291511408866594067494600501272424028958413311127453067098092995282400811267201532423128313288298293873649944160634827926472679062830774654066513102516353200776643991242567655184131212480956640236671375889364939217972416325606324732178670128459402858977601711807009250212251334804937625048432710920427882119636092584474081086168340354446820645838282447047657436995960899614782034032435818422676458254997921468021555972734257956306862113970498989804719204697058429086834664061369603129217486402914272165231290262192509025621441456382294473967262815588517389773231371719953708034059379748484461583672792744242303947330931822273557103508323686656173542343142497407472766374709373547741384110480430972786718083898290327229364964343163707171239408730056882452527840450521593980156887337174234480545529420535646346483831380156142447281225094070580296349035261711713566824597375004449179863528978327290397257334809235799721996098526075654799544716763814643588167528224291012247962056948506439626477391056335110035113634166131736314885762635001197940217824891970286963129309342209418532633559819737926782552737754195600458683537714254812063448046732693110889681543423828468603784428026451866529165860865900278197280188713916932645426099537940404499040674323232047642320049554407639583932973029629125112314173623779601388779601144825122302138941462891418291009267358825380654512494634747680721011692306626239310453277082031916458756550518944045747662477481987688974367084190343388811433371105979281000442820503507229257449857165654769627902599064881277895410792645672294137489733581393811698508909372053974688403012318888006627018340568063255664179101909967397614971257295883340472022183929670042614210043558973444773614176299503495809625519324600987559874037667962495783907258806275962869975993545569529580165003425401757712977779867432012102707390033248683868650961670059802934203156230916249117445667062234774902209534460460760119953437302883092667139490109396317259595375024349457458860728020573448546908881682019844573043311291944195581461434399717759217189913464607804554286553966312631677378995891637431240826465424095189807476399985273174494666383618642445374200205240388952365136831855178237116734665999057041259894840350033296920126788567462141851302996788521639580558772673539129531083828172929132487107544556267828301549406088350124090636161812288468113094313130879607760928673500869900485200649005212832929256887665941512205096522184017179997146880793743815048118147103370618820049972895766228042668528865800093322422962946075659636718729400789593070795542576630353421113226942410632635693399965301514414580370947570494343794337694946743985316415307383629575945114894433040484317970572458506895789948025131588899040756716993432819422952355543966544378748186621269913944556997852527818183740236020260388605562612088337797673019333062264760756333326952080935094870556793269483452874158676730009590378167905433967383392335451429322863590854237374694475617977663655949759271466510630932104920018427008984519389662935591585785838215416806021824815742456825030580861980494999738318287935023506195559425607625320955609497348349952397372691084400403551321603939208033669969642004914912937831860308690401749772507182848622418242749592279531995543050585622565428452361861511513890156960981221886124760953072459868273704229860598482296895512756324818531347931620269737527971724892288345648276206244930772330951920908836336283683406560601475758439016508397220611550764243859707811938679046928216166397100951471352309682019224603153455044943782324521445942558341136665007723262184780958664771996416647406577007732506262173555845130036928360059570572958151127589244599409547153735787778109917136386371394051285706935445889856545617191692523881552042499800398544620103241612747882614216136651104643218524620221323444395411474709110834655554612772398747034670458271657880717108496140326943916488661792613905569496626087506518484129813330393390306196476068040234412498547462399421689037772225236853475796898998577117855648009548533926824026514084930048979532832654686364497612572889796316468855551966559231623499671767487806882496254117248528111700831008787451559072716312527122334453650029750051071791433556142976908162543397912729688989733808080399894472583906896781751740100797446026698436959842862517202553460418334270566430839188585903590466684096693866673257059731425322354183075202471129122527891393430764159124211024958546682485521202645460087233988740738494534361688872105976291308947004400961273296659090253045034834983408055807579079267253272053672945972178564767541370623905660657143779109208507084581050742419138095358523382725922211437562624247791042585731274661982101608358620207445461675374901167228619268783361626707955001390973693702755912651647038180301844561303162478976509632813087955951479101871221066318361167929414947852298966759655680423588886147010104179045701232999976072651562279035161184940453259230071021103658783997919448078784127239394711119165961915916227581133839724746459530363538654168525202246173380248999988500541035199403742951082707477025151672430164832841778847271996174432964827184767617788301769165652797268726693215551981257635830698172827583668646601849252809176558152066411039593051131616263668649550986221376169523395956545460985391814462843678618518352036635856748424826109214129597124164366027906950557371783801368780263535601369350014298810822604807488304524705371011689537758877909727091973452913333083440999807083076336828141620099919487862699693372862560198201362202200619894548126874638412093893159652097250848803539036188873185973603508195453238581169952817428360468430534805761454230409465067303258365961658296272696469543402771048376950946835745790911168286061353889137523375946956370652530981165297307244883572505329238278048839293347645679041927283871635584787534956146380474416258246172261321842225269703696075634444673054372075793765623401889200301127191366675642483050968737457617423041663838171890598841673434486887052371672279773744182931304699735307185539969703142967667791265035411979376236450716069535196883601762231615885219174992813440166959404064189911765979020764653479718536321322524839601284367249688812269232650116287437801981497940753844161835426944731825998838316225883352064431038614173429375958844119270025695040132338963296434603319195922099169254873616575513214646396717206287006954316047579518733760398068689634000892002776792961011740507589841004932012822435808418809220648956012727699233702069378274952543845384636458223046491655833012464553713977776040934317016878211120667849700351108939223332853957350167989467925692482970194491134082868674426306588631547398016438229231124397672491455048998057857020884305196742302661624531569801360179170956368387330302924695767247840532389973868221765007160336078263436620965973616595834624948325215461737633696191024080362444625238854506813634987558344462148834838993928932269451671710291623687307450101494663487243891923355247780455540986502828033594985906525873431464493217717314105298770494922396221281307722729153210789643754878310938625235143906327655404420773699089924720029488856599264221794268146244174016605472712001821986003669155676737623465611195346801458085565035771466353926376880972008625244994615898755593418405932634044331352307257545091220262302724804452748129373980730662792933732617468629306555773380199819176462093779775117862248228057577202254052003004671601363872514068198561371765692640409304935999582917356469999556525590774990519572619375636411754031414791836775906766413993877123152520548197886835647464300159656507702937015409117278568300264282768042524333187713318642806409178889918320862176024064204547320850690202693314487083435887528718737476113503330224734229788878636103367807632548482394652018872212229135383934677253280777493662919849134439478101155383829451842708527120382819602137186042093628797247844593881901961975057665587540523442057392286037994932532510917604699977294644515757973454310301887788559739620644991723039724763407669330900080826055452644246630027929189896158070650645130513607117751486333069200437359193542217116470001651747760537035391784222240848133041000301703037416745224319299385212698651463655200649218386732151206946573813416851827971928923400001030517216602737594581995572997930271841982741526428761841624348846572531899013248427414886574767963388032219874407455006407877106397281315400839589428586108077989225385795755733156247527994502014667768383193002156422550093595324141452013431580973078704880952473670104524905879482469223168158328289366574940034108165700681133796568287984351401561962320652937668222312599178515195389940357270677768993416791720138214641744422176808875355312135823026012247823162376468820380129010976392961631691677390228553747144852274504698001162169772580792367217986498855744254626243521901106543679848938701895627072627169856362264655164696763277423010439017188440055345063615462722953928591931664862661697521779505636063984825785715842989993932387145769159654582898272765189030503055946158976604394515860320208647964804006250201911465517469464703404544035497471848190954929862932713373566952308268313685975148526049095089385991158147856959230091151251876940308719223205364135097768375600674940305010664574619746577417158648007108674383388619675265976517361476736866644641561929962093673997663347956605522684238541919343389691275442299429972929309330919488654381880497779755376178879385321764396610727744930559774553854151107297969990782452299070559493709367270403739634132842449855929466619602854412533908055126559577376273237073902994456582258830053354038538061031951369073828767936758597646158630718197627529849303368608544634349118574896306038014015552972144541418642885272183707725349902705057993923791392864063506980608207149727344283255140372265460317440371911313036909010062369288125975151162923890609932325516638182388101123035148310607079224328663401725167591032349589961533910873680936425845611842304799247708657005162193280163956261816015137060646450499756057232754140329302215234275226527509736025905384451966620301972906141978330231381413069938978377651790898412142240987934541719680024503401030227400188829870004195976926834217976610459295292703933034802781846824203689035286250422629391386311510113595344760988397768349394252090276628647313995750501871977489077464176270629438397862399071377756385505265770320382154919817952299685398847987381848239557556285935507957066292535043555610755783041049866095270890651652169121671830739041973709172968648921843577375760562034791259384216697499444821580088051773403764606281017251610328060095217497349300318648147393580257885141640217590442838806802607395909795176982926556050788134490338749980459129789909561868261536778818531217043097132999683050741884476842713024169408890308204127897422258285517922138414731790282746108942599224635721898391493607867403459737951652946495319734471457718132959111430016521716318992563747108638188106631451096982481398842724923984754711908720179494774190601565908460759882510561213043953379803451507015159887877319519243484922841582412544784086508453394833565497496547087495766162072428820221834744038811290766953771068275370635178067768246465506831393769437046441724312685650616634151987893247086383163609880499364348532149209326044605206318728167769461143639420080702458729341851320341823805102430857143470327067119505041340251944897617775680045873959404755312375119167696852412355864107640489585215000487039267081184547439777829526671460325478128294928908086416802390933111874466630167402862995039955511653995051698321692335999312155153094742969402086720452934529055030216720862596918324658757597221769816353703256890588567699083959154979396226564639350397516054546093469999797470406771026791097377973957119635529413055523092229195500291296433804008499812778275847127519953046854008340686155143840687762911252363384239430161159405453366953281825274166464132524880381759937640723415785619605020915788905405218993078642757543214264280251023538152791433802180289046039241263069969767258912562549269021590588562603699920120353240993555462582022149727216270350618138825436371064646435676412563383617326127020766474883990845366232089484035285199811095750474444147129846794665001872453767010350436350379588629030313993649443469240331428644343117504419785428746158919293742812327961118185729111351543781086093086516516865433782932695471748659268373511159915849032289244291550151818087103685352837929758218925749384194220283659917599214287473974156906827001954638271573883990201535644686420713826000189150806712741859894192633070578969434147631871322473331243896668052909517088683224668311978946582758114244644830325658555754942027229083537096622019743342302478597420913713478053236143068609925942563991865591625930187567025311780751504908353285790956104894073494536023809190785265886953551993189676266009270002314973581819184242741843158715078677738209251344129087335155826369039336714844529078821773951675962690264964795056001177390071923595847013178931910567684375951349949171540517579290396636487538092104171796449808005307608161608939185352422010582913657647144355313851827566020044896488476523742832145007667092889615752120207003934387475998406090896710037577509532701406410833282443771318302507403240293959473193361319606577631968400333792567846919839285298807256635899209282713930620474362360498724040561575883900684065197652126770999448486656563861563647075278504926488958270682269120041855380954633426111091608929878490564445998549331656665890591871146201937125715066983272626339203511150364085902658638302563877232767551236794546318952006553200472254115822080688399132266581908597230018670550123839754378319662257384616860981263743009178711298302142654797565250203540326627619441748080374723416197955620716195999828562765183971128100026905465751738419327216865246060346627043417294075795926165271956676186493819920647095012586828069350668382161303007119132861570971795543470195667498858193183778504234053202244618358456418880152997817252190990506945353421469436019017427065850059032889698276881234114432439822678665038369852825785459645474437301760017088286508572054880453107002021290950417228707742338159077257850207288568596758114054423040104697027720473556016777618315088129534331234800326235267341977950840945438166907616286706678030906416978380251215519548135136060681927797863483474575308532005697361589534778128233067986014648769975982826246499166872301792746335665005357901899392814062558593274106564144578134924694715982253301629840234744653968389264970233319648676553629278314929481077789177608498561396204696836576524947227678296324029643514398043477524813992979730703588534612699821019601291877042372267391049326178928749028063297919968864682964058189631070566886245554734993785519692871021915126675792910819511114843004315067382555327072548468642599565321488529772733499742327240038272020866753304246984786968839790254433530594252110614547650862239346376257240660934871908443297821547896953787398569336896852364844530343392848012277701275263260378744165252771883639372385299889354280003401109283390682725602506292821732545524072724349880011043608962013155191165992180596325752536714936992256083035203422410186119556085725864854001444255749846052984312062514555752771270928547028844235385366310947711083493639890396659026005620702447717409450011944769888323887185657634011951452210384199136609641647591447427739584509046132766560647244588687513914285532648002526980949893729314091718902923709713858962413463413078912135692322074103355773310579038832706092931331843727046298040880423697271125182833770893725930748503620821880011115483498588995125030664862747350595564855355940629681729846770459466514062339291836154946470229185133811343645856987854234803681173753812620953897569212713363097615204574926306704560137414990957725811891623237197998990805589676865511151494707563908324334922454803351901610964485568498733996613240184396410468101766270996636298245962955621106482821547468326520177858273836212584002439818584794745833416862834427046483067720995791302875454395349118182044868642587645792745429303273689517669526983557311381022101866141055927723916889831194207552130603748713908307296472192893333088496325341820819353718538908294386599678632585684933286150853230290798191798097175473529483887636411513036101723115194637485345928707481214987080876256006240813649233177717121993466502493919435631117926135284203885221861784702480595144207809738121248062794648430845467667386616197523151110932096680235965079235357872794841559416217983393172420047785995409726011633509297244794070668688276656542542143091631602038496552356411266426241318255540556970310687327596548629598728358112811733824354770991079534770674688033893554078699435998602214187374635820675259154202431590457931687182634323046506182057802273747107502360202167096218164226145042941529125680602163001188879253446111831567335301995641537377118954356314497951478142541031670448627225747633411802312666463987790558249697924388286670601722627251503574499599285776131953961414868459849254707518865123217332690949452961909014296273614413643880849712099604799760776892951192277035117652701136988276032630264967132755290631308490663778473382948404453184354432045513387001771353177957829492164995080417170061841722230032807958254674049727917024586692750427445383819654193435985808062732244065384317803592394024436174176117590578918558511582682823954787792470476501475684634857189386509281727758196068140962133684039240335907333081587765534577222046479737986290782024298327583299444394624388125024438416956019125963694388209853542085494244079377533543273135792635103834647217526337434984352207401472975294597134600460079168859608024216987458272192768577737069341948742860785019094954782455753521942082412029819566283461487694701819873787926458313883528862935190760031693642530760751987062295838575161972306529022371197326708906038386281780397706845500997702765839182844885507072608637074627102144751888949873981895226258004664026427140890876350619103306034442581991555752539516204818805698166947945361957428461105867523090044886105584846747376162844246941637369423475234611708274265466919901306534547891827634460469710676534650657981195696624769192891690174467186608821000661333850336072338612363223950628494502769572502821649767051452152792664678174643817956456025062094403823641164302308036916839505826294208637575599201716446982415835752964747478706536180738445179621842438388030046747110582364716097630182670646567387129520331050457302170317882188330046960311552665697823949868039057903479319374905933599187028612974251953534750191183130883322555664930756164944197932074216008864872016330873949602674865641882048428412456738363265062697022890723954271546249884897974750935528070662444841944515707038145047809768275695118076193176633342689677525216697309133651859854282860958734551290704096457936113738902550161080815335640299684681643958996908248186191722908712755533200455611394415485953367082931498564023751432114587650172371329392661618485315905228274083813013920171529939697702270437901904078668066336749997145556249645388885427547451357984342515894813837248885944023648920138003382960101328894261878874063589159383899134923197664842925591047179408252751156980033019095731850568213890536232389055523426010134581572045727456515068852902621433378113206291824811052072333702798838263672907994357130884574493607155680620197303384715049698912519751190945222521224568039344734439172679759497005432064363899332347379727402157895138256129619043831876268023256194978135725295565272547333475258134395720619983234472168476559585328372353851407473836532769845980687016588701340692269927730240431491473255844421371553325172060735603179797996218983836339156736000490156623030421895135403493930915036448219473401692037516851246972509251343138161087872102842432608829833929822954826093303927007619513646624438071123035594548779446352431667307938073607017666385886072895280923014147834835536955878851503555612033102593346742544876258743866766332423606202483239428970621515637723532291765656854085085564491285668184147046405583399019913313038755149690354249477661410047848601900985204791071506599729976823414822359423449331726353859205732100872718327636835326310288756882668017936292602266183796641592082270189138724162786202099021842165128188190885374219116651190825748214733405386084190917069563593944377600832852167355681511601541826088522555617871025410293993506741865998238877874910663600715299767167716282573937439506377176439450401367902810380623143700101967490849430928535652945701603762373402101020816451709010840402876350607256472340745383557396306909137438800625316338480181222093152735565379751769573373309192025551466170052354012682121579520675878395613913734177759747032982058350806386074608148902559912988458959178696555680169259018263064843936965889632583175778497232585511130838850105597229870978933310807751649285688180723429528853170207837589704358104692618789996904052204609801398481665451977593621431973766114468369904141427885046054519584546763619821134863138492083294508852549744217457427670347846615730331371641020866367211671251073313600197765263861409535308343132309571410401737496983047120311720862492026172384230615126654050056275373448028873743993383496496189770974833131455148695429112686223754864815041667219249074668497064190133279616026661244338022976774233489236306078798531963775395660095377598138532461162150026020001026778120857785136974464440303460342861869013145983609925902591587800487789266808028607408626558961836086297341106335718648404853978299440382998997883369988753812752130785248344312317900298313381578890501358765562144563899282905111881226661915237393003395122789642482342919236457332564012196208461377644071952494245721774670738384970606522677764289169762143099165879460646995624100309227686963046366214974004269464991358208094268995209179620200644979313723474586051700644962020841386538043402667868315142240625086443879221686888513812554250979938264835691711689296306349803508953563593293112872855247385496606453068584369255751713905590805961840741339857562273206207695591842795759122098956044055247620184224287173899982018479852870258378163584997113157778511305635519129152739335707394569871810114366520550196159939307365494190293595742479795964442307910739459715042959831023738740377580718601652393225120074646257060918387310878831279085941791520621589704756638890421478908768198653836891514279574558124689008954479115244745497583399727330622543837741121674354501715376639016658408126120548010104268607065172906892847043339916769767395258293290435113635334971421912598350074537174354392004400358926481210501781565051991156555521895719881289662731116282148660032811687096517767405150633553419498157780360128440566543207601181136535416011497263638699833777759405599507731302380385645039360424015685158499592195012743584400888388086074502807507088942899153983331955459498072012758079920880675310311907998507846166385202667080263368829947686818663858049109730623172029130717201116398097592675221846687582871707561341349973415513305920780932972191738750814528090386945074949100552078749257266025875707380391245602193744117821361260261269998309987071927702039266706257738103732523982401874719972673301059785980675188803445096105445848387314230313188272465290268705232280869547998181783487325234985973996691123387360867744807769860784059889494435858137055285515356797162873929361590850102217694697591075774801874390575268769416872202944619862746698733295306987538222536610605321307975031984988693184277010383203227862433450923343468330466328454810319059834080058222334408509714544547768529199508424888688529266713597496464707925104856238000061138008057315363867703904514910369334770643574767741464507243378490456707359611785999354835287144960516386869162315131750697464675992579635868224511134100475770926410546679027018729079940268459300414710450083667077841777326806931155506411064105836617398153284470932566780087927728675528469082614108424260103673082898323463749829706784627869291980168157170650448304561443776886376371131949376613508847197513544501030979918212816195763076353427114976601979676129227697438685713624586470851194882410974788480081835203143641244916488723638737530356546499559473729716823174353776415282954867961539651192340473989392234997533733500436445617856527643800612294587258695851404718764182407480162080873829578742919765482345052479669526018140102581994471366125761635135929661201712728766378039152600443015244498973374357491846233701602545788292481195985624358606982313640504443916745331125769189053363225126308133899790167453022069915471824528623131969599219649714266970516965211478897751680913421881855759988217037754624064553713258722825149357497069452095777378601734750503091733292459940859803411812303550226865750685695561697883591020126016669332981653283033299651447656076419969162699732487496577687321053308548228644123114940311802025047301669997748389840609607051029390756766419549214724858982158992050576291267840358141934323863366670280333340771219491260537537925988810207216400141139637161655111982305925873370127095969700261061929511778328614920088328241069492599484402091368613550902521900096805256146219091542612721346556046661277167117397522727304955719429516573468722954524597952932320135206082711150500794753347952764476243228196878510054191651635667169230235719805128876611776401658011717802114863346277041587044022981885543254725690586235652820808826192168441818131453866714925362615603854883943869086114295902635785579895892616753745675198501496714745702652100508252984555706226585662018576119527244639697045099105987227180691994280249091087876278362299379688904642640400956630410333085540563512156671469820858380459879267580058705338730599336972098918549844249221532430193074812475438508745819264143061921896433872154079192144846463478240089491376820707810139749085748254973477137472036674660955248360366346449189713968772461335367041647177392638042023410908892579039546616706971560065962023463958119381979114299920157000818687360539673248897362410352523955752325539213375237832175541667941410772559919632385804517505108087331411829476347417527943039233908973803075848184507724354146501856439767028436961482143396713312936774001874014802980257278580739815199019652428913068163858639205053217457073254621930621303510698453262003893561883487479025279905568333917533499593394684784121595990013841441857889359815421345766670405238118103203094185433452055202184305674597579363566825797515520879560173889073067893796791026741605495329682191840710123000932471149544090997715214937115257945650312996186790378302205503376336498057236593324734250490369323798513905149358785531888468987016522497254334024610461560829843057580694883488315927666300773512573141014614494527544742920950025329663102103038553252625879868452751340329956352166107498700389737446815476538877179774007773554772570588080681873606420691130976294803589671492150450606480457124438716064885635076262617335420215096712608567774091243307568436649477120863249128911564521870167283705269534212440763908083699212775096776565796977984607582684056580218155081898783906825291136309053847102917834141884493256748598964168718634501911963346318528010735796487897918809247749318378535573245021228026275142198736962420288128766714855173199441317804560212311617984283550232121526774596597644279731418839441520820968675712368564743656784837335784217753953605495327992868477708760381002018174174637195958782443720113642271955372606058302018403009068662482747530208589727116440820408020674765197149466926766669190319607083246895641851849689426011324946916276869588049067172511618983083846432222055859837792698795508397435257342379997210049442970407616531846014977115759042789988209897429097203878096851960765098967301547365701392397071001503802170165024371160257536159804859018004492474076271570815369801555466479089109654653711086247152137358027556920824452742740723672136156597215976026260551071521802278845276755536253072753753885772348000963934988638396175412458939604737710952162101332414479024611748594436596162063739414865146505761792898877300869016547813321167734157444886851074567860857124242172989279940564302513208784645510582941175714001058237101996949338372892301202148142169631124394134617797005466632410212791243731915972023988533836576703503630270695896300377578979880981405775292719776616535999146888668956647826310043178744973745193035824548670132302887715277032755367082349430582614782252911565801223895406877164089346604776900296595161669898473404540048774786761166019379831366127469314268543772000904971422659952530654909670772734791827765289266463707873421875839621392486670033032784897595783893270767974395529777983284697549837880327832905895636633162807134008408777015890115097712720648874793653598040816568714749069701502455883074795132505844082032359030343772037870874715632938352772228956436810773346271320459087623984252108079140427447357393628768990109400591849793937373216639595615046887730737318307738912565204516242129814891015594160727547651958404828006318030581580599371485721146569823744099162901386186320699771480073905918866351451361204294550717750037730454664387173265157494112719087139691228850011171502687895294979268721959048716719115982234609930421370240458060192908873601131465902543602966117392587814747451984117890028023041583531946689456180597446992385014409535162627045746173071211327493749484394083382496770685288853376273173324733374417829095812945300758309864919712976682772137805602679935085971644642873195678602805629686665164835879495579635440790733430514512761440508171078313623020704123030422265907462182606201206984442343701394168393512935541304445023363709255466320046447135669660599508113248500765962743065087085562015383508193379636575928163623226010037949874081225868451292216322051467795186499997350118210078974351703697331957706763289257754187763988737222128423498690269137711418568492801750360864885654180681723857852659017159460745102011464887214028589134205658422275569392056427200824779538633901439387341097322013504290278354252007493716392518974406804168175560233814028238233435508982563089596414390298385561081260023764318345068486018481546406929747864335518515230293075323526505317782175381465870271367594095784513464818229727985767260365861631952491006217486323281295561856249211575737232983597734255328272309388309344762286546289360210264860232650079871853566230324119778754183395207101502800366904375842878023667408672513513288605885414109667097984202342952040218596989056638660375032855861742709259064575835110248513634631501698331438276531482127048969376673820308025777253053618751622467238111221363791515532779908525365158584552534076322075960577213086957031951605077726586247335058197132941783438132361339746817641625991990276020523649804269641767548866861051694563891503794626487719199838302393127354792508662991418024857361562911637990319854814099823463667968322154033016674697821206963789439543711704473429113674302130564329625741259401941024215146732538140404753908961662777069427241914335615029197846244435072656875936406679853486632266233098399636128578952138520874067762948379687192564909041570041943888608979876968382904377767054350135050561094421229137171513754711487829630626829158320320159445045380553361968649160850172373794830406609238668941933413147616506617324701116539882972774705292874934453289920431913668202796380305020360979973648484013074154760209018734183349956615703279795088858873556173589132005943715575949230351160003686921203999166936138945437473348629214117092618234390743089154551298306949354264887927265473528383631893359162860594096350014829524925150986767202590710480036606018973694071431932632303111845137098180052355722264401172370179869893758853914467567709883250896473790023076635298612330864377760973830563389205595789721500127667757014624477136560689063675211756955189206089424914561793132368953739990242534673059294143973077247273101665920783845197520682029584050630773460041141393207304698173334846755108787962014073561523140925796989292915122925848718150009933443697980110904199657335196786414839557504452951783839924784468415496913696328705548292941051930084623597594797705463711297796059434418080940543153823707389605082103515621010637691137603613146373314721142316061666731968527791610317912831305737974878655228402659322600113835494049650154684114290885089693680711394276039710929537041342583921228747200935154378283998631626009574678578613359084421926345347606444601436233512290315899292303715018478023005629349210717239927070027416865076557774386921641913739439706391958360799682722668405825721411103374083414544970334615964362936164768522233608987378422037473102490044967031903892386554431588063130851181433798241523981230997561957822411350131997769264532641986143894365454613441869469397205430473284707814490619500882631800310543177496808944214306973093791411214449116001586472112904811643549305709546950440561278100504312038714630929840053266603220036714973163542025142372031819974497608183542039058683447378580798814100624910708634432913842052641937928711621507606729245346084009035389689987842897822474290454166782947074682766344180615109721165240853981910361983263274570088824644298129230584006018075590641329501080377217564458792177960953363328099952858019649198715411995665591258093711845210612988660947688984535608910076225400070304291969564357536942061499778177264627872791487918374901236692095337282743944272620196245822667273754602613135100022210599891968070542060779991277170894835769196060066456281275545814174850367953004489719748416004699832852838522802608589379656233913082630384403537921013610080056085527747387273800566182491453506236789085529291218009315689170568311721713980400314998443863141414856663069962135500081758980872999876801757953847536181694877823284810582033153687762006873287313937328991265080911302306235453919749113612056579338199147227204607110834790556107667034063833368164559756121280795733477502663868047072681448817188042142349681162373640376421974948758558845945312172979691251248154837684508865936828986035085349947350929441165086016882019104831180611143279582732109285401307293461465757867513029581919187871475648553390284619248470724380203301701855909133562722284917033693397800170315235029628927651669473893630106772062700406762172203338396829931272665636964829205014596017332066040616330666585849500358501591070140165851975938544750949596187579105423763860826776976987158466255617491860952294621818709071522729386449446285915731634433100594388884988664817401707406574557023264121121695018599074842102969243977366214589092919847320928462372707736446474718386085165009725273913711763905353127486040405828911997297270929534581122568187980429389426506662984506845551601194648134323139549822625650577365319685245104339206575318667826694693363489425561447911181853115538512646316017662089499449330679241490858380798522341304566173342676484092772731700857342360032466855004716442214083043064087434003445011142240348627507330816703341874683721356851990233901892689871433204392615476769078517720141521154757636461066630302264205530408327600151312773697401173695372065938704299067133650398944999280947203467081645659885884813336613219973510323932084779541838214151967404324113363075653222048233289557873350553223487741679650770788419250305615362618859957030114374644768422433069345326689721557516665708279519657129545763898992054046131098712482194653667126318585931335423315261199868510684431373588782652828807001499631869482500101648104271788521447073201874079127416494099773263145964618975075603157803990901176288834477047811270384545878696819700144014043973329244023315592433125828168678147205129767237724995896014956141740898774095221948204923725365393266557711601420755014483719139851540402977413013495612864640140704939302366021065041233435654204264703487471257962941803336089423807905488631079325505537611022188277513625022451831362066833957750608241173039005617925897488164143570245530530878708376142704736612149303885857182502747241332801459766460875210144017137371996867889807206039906386817477988002925477768033246774894806158081208808539798225393347515430499089993820288105142612283590894723497467081271645778599973186164866727751667804156624909051521265656005786257586247144826711342332382873841480936351353267220469431312424901638433065845062494928900256438880728674112538296385496854931430183802547342008162059591774473860697892089001308028561863403054239832700897417466180778419649779216619866914985915252794081586414857818892512900191979615609715308651652646749037901122387592799820992512863980284636264200264607440847340351182675617806529314324816977057836464066355900192347529235023427449934160873753304707674476360633739878838928101076507074629708475308078628791075024722882861860071828664819483765326086278130725397524911074742806841945615754511947299679236867634576042566290754648284688064140049694520894627807189895307560688191010787240454887241468648560956028078599603294090346279377308374949634887666439698273220405111571244987276322706991482103831931480874742621035660043283083797914634628926594568490121526696209872778131998783632814229610254502652525340955984485713405616327271713719209530339265134573885888963896933778364742246631848346462254904991157078936394521871638519697435239280318125664879146499161628382478072132610970611454436672696405644289760478428492929689177965383820391015871744686725479304249076635120175354211646417881748779237067251936962628682452715334082132802500694707912023806207430137646823263132103817961127603476446747315199463208719685178044042530706518776677982641026451281587847041830928849877790309976283043823290684446872643401278215493679378462917595708725819642872412989400487183656166377240613074643059906211410926574440334351409444049974252826118239130365544542957971787295813612229355479457620857460369156432524088816771047556018759501434216862296891667329956913365961127447566742911405851395744100877782191259400793825716735255098580611443766638221964913085649248547276803321270356712513454465007861851734708880638752460352804827841758736360589595102125835505674864266926039709548222101313729665165341268744570740589861471962990069565949430294511201232692785713216586697118642401092737741354666633676958541108863314339847320903141092539897272989775377139270067970884164692954638210931980761297032529093187309714384936481738383073633194831537280364789276688762810765532263526238330926713747295549947198978220260226979112792210436369559731024616229341380006398492677006298983452174461179076341281631902672467230420745037383539341595685071990418970037315697216843485780057640060126013520643572401802470854817699951856242302035483519469281119125080725427218759633175430967235697409592533756912375671565620044763521369584986053518791585689317260467290780758330180879283816893627264916290493476733923028118782717131528463532228927841252011544099181905614470752577647664553121116753650755704542205894949269041449661957304824667707531913987321411669208474261805835882768120244931633628634924515163464075753929195190271044626983117951207845788057117006889164664424363806452992984033735514446332281061290206500068518360579474762850389192504458906104037359517320360396359298701534903891424883478989568741816341563284412078286773029100359887361081798638490122825909815057659982283592750373352574517902356102632753551997095174360673527103141695715591021323998877798559860790863682801427645973151803239357970446018193086202974100829732828255714308169996323783832775118457292045367191674200793433436493519537754637496922231372128124842134913117898084533478369271388960733986049473977032309353795401424025327821456254335983547933658579489150770188716277719941657474596483488655916328651022089255874057604886174068809036014131815461375394133358425474080129782205740282536811815434352137198648315199630458900410162778338648687294779284953476892142565008170916924898820256991266754155576619884750401520762410310977878841210625555433567633427217150675529037903764931689505033796865780475164324815742185874367500203484832837501059449470509874446007286949054647749190189612935143519497744056113307862562221143216371114700109168362735292184213481005980271158802795456831727653912327084109335040724574719996954005015696639496811109204729172497820542456615276080065951993906700766478183573778149785640259790618929035956956524752737070239142759452611515329553408276469670074589160182650038556549519616295573014040687811888284474773824617252987258521055958070522540390745325300889821887684765962743717299577929046266509936290067596751448947233142698148470312478381691061974911592731211726994054886418125471649956295746296005254600145718633668988777596829781873649340855200253418124456542264826402227232755418198496211503916232211499105474055985888766653350369212503193019598200437101825611451490593437566978131703792671392856323710664712213785482841197737110283356011147395309945461256854618293702578427312963221448558848372585212310892865116711038697632373548532812664376703348796877344241142258294628401703198181253007257260953292365299704419722445674250959336633535486551484451500470261677275065072645578277906689207589313890448065481000412267020152079668166290212324591101399767539252491697204519987671710405432473377371234727864020393965662703443590158949234742275127599500677273455921916931125367702129570672960257801524281050670094358729085069251628880092637919878626627684115232040961341311681415533748146269452790560266720367579897760952804975548162300769805776012205480892166894799203660997051294269381013592290343384047351677364237521193689625307260012032705784357109034878904701331214814697564979668281383312335583661244631493280362834434961725177076299341075261053698937607631098970438271524638342815198964192815773427880219963980794917077686886999534367843825922806191838101109768150295583355412935243576164659055275206657967937210432210033846352477870708657599864906594221543318186740649939402317428302999866809726412522286049210802358591164546154297284465669688873784697770785197141218543497214661155693274518005490344869209241059315025533077241811852906836795576065178339446773625926597721805798736471863033023954617736050530334453823635921794750410223287869566203901128027896635220467667514387340490301262340947683967244855264801314825394799853805455378820355375906344940467453114696072282761613513338622629765195402827572244134242181715633102823142193590077776546355237240244884901172102735274319630599952713601492504075313706359167267047522892345215422333968680828927942107780180235193702552836973970285561362081609995154073194440987710008401779272008761696817423958870759583567308230874455830468083499700488356845433521650192032791907243923043053097851545872872693113701639126140082262698278948517263226895893897105207912832619322427892574830090293563797580330481901777400533984719182459592569720515177985744717034950713610700019731869157446102722431633954431548713657548616586412490248835582283346482191181208713710094199836647254212651724882128912620621586197629034304830302324548290406415554767683845763437489612515511197574883156536700308841721108147544267372636593174782799451915928134803518352830084331193354691304073859266435649430079834532264141959417208131755756585588843664154896151651129447561542541892142842361380459552144901456746172019944725344774234143128069117563731819075649378939247802953908365814587520241977989448243646561195009474817889930368714673192532949118186778301186776686604807174670677830552452427843263422689172182697041042951302957504212358596261090670793289039860947622253341722246520867846534200549603256726352605061639669957624904249749520014508865211004588897296454721380486381024013289342808104508849158152547282630980402658367636217541122263991928119990390061586677285158287168334195912310029704064923287090614360542386547257598817877376348330270725468690788906268067297903159507079124683788022864250815449774325892138502734759130662900553972037999547862111191008705623468553349686336980867683318223075574367988171508900819005488065362255017462607302127656307039426799142320961709247418634815186516016764778167438368472629187067357421915224727903137296487494963122491314230004234238671797540065086635771130812574919404844508835512191807641119252645859880533491631321489050037054603347750773585502034013758754838232175217159013588153791463064871136149859551209586686380130993852746466321889887289143998439060536231372755492228666500412100372958930412405726084583556696208395494053771090149731422324374917252872920885544518645551890798951380075081599979560681783946943467117124594151130295381320028637381881262453104799956863304207313259363763756128497682684657668010506188912629661797557870372599928700985685712738107438028014204979780237114994643607514368447596669852382211535399852035416075432818393142708229848199436575574802826767714729071018928183767484790156569990536786441140879861026141109828553450630279056007434496735266195278635768953118436833423514205497094311114849093010162977798010544188579135861592113419910178520077423567411619137008434865521161027851337345393741224932421643004590946706356698172808717972859729946258469846991584635579873183075381816971835636514614161052182849798055177295281542029367474997020510491707122051324727714852605885763059924440791976211942625281309241101668043548780906466603293077908851049328515740173641795098622177302768004731800701616351432419179752456340393584809683973919548256243362580575646655257265829764752064136532208351087523087783966150545103557101599611803336146622955187855695044450550760065145187549202543111014785881132801313039629389761058337032594381249405934516896343993538127309268910508990670230178702628773741592504478522880814578608517152251511295306766028913740323264662619515687499947356980553107567863082096156923440425407742801016044693369575545939198237643328255747865556681633524800002568166780672138668042257056942912485486469081170513363619521957355684023683256693945073146631062721161104443996179992078799586120046050867291666549991522836713773271049176796494581147344624927559836195812927304447457518558042972449662795359692401811556487390522097013395863807278188658798724819744040101636142615144602793680655126749286322549594383480583217615802265567015830714124171056000791450353771215166849505302206506176986550864854221467288204831739653240468579193329927122445356885157194168483020336425845840174516379409483267974846750697772250034439483761114209975240241159703070281830441738157479459285342662385986675285703715611466161832969501171123920760244521567362089874645972775270235353429282597978306272374451600179537531786180255281942907582405857177064781221001695584313067065766018668747762176334962756958210867324906450614266012726683474000951465012787256784108536118547033670514709869441935578975963479847542568763468337247445994281623794991232273845522304449936168181522868915085638446127440000781959390188060833584575780712387994484696825590965289657763886118257268128955780429728165175992813012522520213037348412811275042388562493898181144600327510629008793624165846051918588777001421868777023926284030005627589511345972856230143995000434580386527783492246971911741796971371276291745653206188501086963257041751573864742900326975199088078631975755285997387863630182633672445687317274282001700878947764721229166298543657365763829247836555704860046929122579812115595804757135448327542263107354948578948358292236385382329316384274246146211479066452245879367731274285283129911570473358065649039249602455171715231863923695477664165054118166267789187295425232337868352992185068424433152643465230918071195099270756663391533106336521085822883235350566023294049352156466941562616508453409583803663327924870656949006017961082998084836918593222983701643037777165455969340021252238579603791490904095296334122353543065256551337220646137918584501704266601698503066862286368003206873680817375676477294408710620903561409061690417264863937520755057474569046127560050220863341665767793659818782969441335505525446619259585900705966405373042239823219030421242875193739057768034181330676651125410919447248912113621371313888941807550301879929591857485723766655934221015454201957569614766277619805580299541519054106422943983213096365938753304533157624492146165333045296825726133525071870510478850120580194067896643290226833875227554002068531808825580414818357067490543557067233158389632051765309715225816682509953472267192961511398266283234556605008413198550489132009591336016276891195993856437034546048505192916751708461232164632495471797528542600911913293781085263229243973702812265688381517559872582204545086880434020280369046245620210411516198281119899248616105989045037701470492850386097576346804492341484760584524572771870448220998256376238488145392371565555684457801208417821015101703959141928003295251828993539524609955847164796595866424917154393076181638747677677577939796703889150821282123977215969993120761651816578763931958190778087699900830346947115485558478882131674552218766677821203449755728686593297608936009161474958928424828175102060305586752213891429998415807386506235986936232917811084624218294448956347457916664625845404970379781529948897793178352125639805548196779720519876242782620116299557077521328556205058080421553279305445727326807996131649754043065923684052233479463770096175510635774752049181297570950607337143617859414508845151444681603847054915377081103020765039037948923499615171106008077007299967079227977977909800474053761313909759450859803679073318086492721544051082137402378438965550563202202375964991350283102768861835304015182831022046808782744586645115205204815766534400597285041295320798611160306218532023383968062854389145074799079456311982386714102643559829477504633889714387067767013822489903886152497481981027909471235310151692478544356821574305352901555855934595194722605930118523431125514970646480515608877746451613748221026674674499543346243904908472193313570993312446536199114106151983604577618690211476767934413811986427427268025610205245850907432339401124575589161115379389847582981638486081203190619254373828473797469574125611798600595373719054631727071322688152331782028293586472859855418883690308105602414747861802215931588216973880087944314329219669775446567006729288440444912948580323566223849049334384195030522268470733560493421900447124756619788146640844675626087112517940368527723867152682377216343856401245685124119223210420396430789101594298352838039162662982257952904564489932204704615644759582126963513883398122408811595993603914077640494624082897362860664500004507008217760224084609699838445554253720975256919314931289704783787673198915766341020416183539166957395811748805911078302534556630125113532195913929769013196329347715370309294301122835682971400206241704804535968083437437178894440907993051672802723299053509130466811351181815797655584456687099119855837003478979673530278130353009046681043576209007140527178490085253554780680495392422867306579518910848519455817719965487035418480571706120995529440409749505903840423211466110452984580779616554934106882687841562667811435111270335583979922698976550926648665707103199573789674157215521652255609126154482556291978149488317195646437419692254698545158011548395305747731158956836290671519734897766060666281653699418624084688977394413335161009311721264107930890855290408477044334602208607802828940460221944640188902118953405808468585962938540346299686988466049482030104300448606120063976242417031053155635859083415999685630492648951407681314929164713963348475711503329859266145170490197036880383020517528938106102105841183759840600223310915864245137145038090243933155223507098688806568599552896240856565400545014514280566312907653322660760673284102418118362969659770132524684678794589243926905004740926518490776657839887625443006733382044525414158168308795329722713131120068642948939357781920588066852699639316850485350459771676882893044885441240394336836071246631344315719926552843772237401071067747537605034353894509566007766228733375329909804486016555825684794582275828639628055746076308219002935557397886227115983420343955858812152584930848034743975679903669522083401672071591686228316975936790334814273603077319928243588944377138950696892046682256913816082565110827021091113686956490045220852963956432490653821745997654342024808497700068785615531701370432907948858595175434791445944965570880984155602654503618351447278056572244334419776826223211708653576755079786157716027608101625912358693280678117564097976275288899928890456646444941780145801827025305071388809595573792165618532560965003869875372105949766675258285291649207272399297644236876853567642257674460935315803028083305647752635983146583144572532213133085489287304309113056323603119050881660169256293427005992716919927404542540954772614343056392428914822069848027587653482231910598702495077654088323235158005416368130368013642189246546258439947334381194275477266644879065974131032647547155469846535915542382813743633356708604522049864282600098447135910171783255479614535720835767825836445384075481000903040605206104394730497804353542667777335651918277785513523683262237270797730244817537938346053694873782205928766867256923892111244860395930406925974305887020165109828670618270179222724270723407587728735491953202643371131628607853202776198933700864668797220459849818303255036889471530565958365754089432156015251582447795951926260643320754704957921049689486503759675007688706783519444244239963781448933656340375308192049917983697168902740112774801104608309380232829690273048211026058726792906207698983213644245256169484163167123663726581073997142396497565404147221185473931591215319663665201651883252653308305744907070412737916502647763025825596698543114975083108562949484059046988571789390019169503609273201537703984422591842391846519664884188617774919525473051298722725255294337812950418800831998431410387241837572213622474580558333368698642087463593016537911166738942575873353418198748984352637183471444328733578897119780746172217192402943781851765598410058523551828781619156462296826884870101504288296365006016557263960795749452622803314095568713698486710787049140802328561007162975552859283798199323681350755691222442087817641244702233564347417584451847511944133765011004582684851190847380371309775110490909728544940347149194356388242411571040924945547851465371106286973308509935449213841228099958857205035849869172802630723779886965469108166977114516872016546913943029656182736644840187854079325954513189815113480799088446983630551551506639849311874975488472477809898895760241695446432589283601334886370461455611243233390486202571912821227558916895873844139291934035967248794323796491940419269600692402677063653354243533699469361550174687593837336179898661367907755039987540144765576205028109573930962971275578406784342711531425232590304916825927940598025484019386134389144057841156856824601829770685109934880132125738617230513105770025619631656798714402885545671427737058485422899753419345132034075264431487537951329942399902413809596615988933733843439019835382069587004060454430197021289845231732783981750500010807865885990534969552493975674247601407661042546820862349591246871948679730527115334868139356531196460806177970309371398660965241026341607486568117757989450670166265781179547662931192814388312655777228347396466307920581706374838776526827738563908839213752928321522128834742168244675287034472870955087382841225061005377542266483063856798956216181560207740177460021319544227305176577458955729026611647276360879024594638217928881371401611285869374695634373796859595095360564533237964438544654961786139869207230776670160655345237510212901014605592121202647463207877526323413912813541174907020597027882332586016144454609866624379777449496250865624061729000707166823541979300088248765250844965226568556302317738833577325585069672221718138280770369003938927194305837310481035567292124054906242328911151399731872832377200388052563109454683644893113854103955077272487719583789703764575443862610736607382507535528691220271657833687768781713299118800616375460196435724492624321780627872967323180713324090987368783186295933949220388728115113541749031739478135950350349822317574134369231587600833468887880600885662257795889005812026467393381585171736239243678744477548063739171339115078960247231991858740944036625785281535297285050036211097209105027773561754608406856651983927769842212841815131667925140305837608742172959566809793009537375267048490170730401423989082040078598851370975031334932786863036351796036149440393692947924089261781269810444655358815877392687032016444838973274991243693717122020186160045205429463953481716178836727203752992118454056115583947427485663904967136687604575969276644767967837811452964358609705669814140265863826173237664680271240864635535957603542787828780239530544616904037119961449580755861262753327109549370587602448577227974598143275396159003855344796069478462427913190778060273218256882966350659851790427441973708690886951143488075622350268340143373599030451008203576329790294348577293508427913476093358877503510702065499070277705221933720474020829934958208636680544540755520126849131469050215373112164873993842541755049447750204303374620499360511049124519248369761571535060445869085787662310534532683028515870876795722920828189019909687847272787385107348587451840817195241771960587434408323930776460412568032246926587989958321051909831711917116853957546342012947243238704397206691874653700525193380860515375128250321466115752081429634514653232526625437420266695743292913884688650074056916645544053470888175627607552617305955540314556686793437689953473033558328879283726176496492974027051431273183587990206497670342657357576724519876169993341234646759281797482948399041442332218915920414690568077731474769703242694675530895724317684047458975330895599384865804693260510864815189110317631984587847835484428818078753171411282963743911840636141580947402672038464839631822048625303128611338362711012965537365436720374411650675705112836713548917166075393764569407380432375950763894662167857241129491432619194587083068723845954181225014979713103559460662065120497505185209160312115763918952973694601427584021503904398965394155944723901031812346303497494480901930920828749780964401600882273448846855603836487789533703499978245904038449665829865027892992868369329164070105520278372310347142220781007283395402801799555621597223436286209278752216248966309373567013637221360234464399827806562725065594033956748363972348670030889524620991031732036287434436652089762199149214943715230186437333243649999336655340951259777241435333721974376070626371485129267101520705423746659911710180373194241472561862457610356594119108109749189778100863263716896909218991237997221083380973939794768110308990975330671943212516625547870963030620439366065900280471551513089827753970508396199304391826785901181538608165158851257691689905258792085704413889324788454821668113344579793263869680416466126172037996411673349643982975236044883592151996086036611808671028505953476019465990733486840633830183405561670310474044656328630665540311796140725792206778210427496227120547260729344366830775238207693124668625787034022340391276473111579799719644895483488732375421174888560573301809725271879410664966839621677546841108665141516211168063805543466113824554951832928600550535967281100651988056708214625630257572540390220031184994157153163425602925727832595298056903206767233791814213575289166013018492742328734023064802414126361395026508703023078952411972566687040090568496925881376224384060063104624012431389552376003552674680785854355273820267751923599419188813696789613356361000619170566290205624196363601898203894789934901204521723250526276494705976435603325375076687164406877671342047521832099970219583334424440758587595922237600270703986172105700127694480367426446039871573314148955076571858246840195466076287183886475408238046044323570355714533270007856266496857905841941096972620232173028080905577267481857456464203318993651717413037807303787222842849554584142413856576234826750519006894214221962982988675075943815431927131923684454328934610296114540543300826360628872897321479515381746989970320273634819739546457729501269417522917396869173065216053963754247126872123655533181152556314967026008075140647259935778940289785326748999487905990538929059978138775854570075158597525003390732296518832636579346412143870921432869084248779702881759153851936016818290701847678118449384901305295422878498240677418959236587959848822083652487976900079698243349742014906818008624795822061357788732871192080695386572670171602384590639368401661335622762088911712356975321660389579772742774918140680170165382364200746475814820604370620214715295984408019997748652804100456323223460978330555080079347737973657275066443653601112856818355802836276901450458369527783845181753384764025422852747928872285917338555201553353310600758093621575773698043834060283806461151916920986441253448004268981269494846393157220379325149457064818643204248708844827192966733369543417671401639102810979468604214826375698830957558156248018061651933860926803728799335697500918401716886105688797086119433231717011724564861408470104992019046148483993191636205989177770073987993246168793206730778964755508116833088392220614981355902027689682477530422066822473614178222353609515206956155976574274442175205227249038299674282477660001645117359694573288161744444422317555671571217084472174157756070691975481346909237737279815416937304970927672758373353365000471758167530606868751100980489910412169696201042804513624874984931901839771032132095284993464492398620590062262884610576505685449402996003621795342291319754008574983513294034530610845604863955711848069639488037456657650414795645800479816106147971913896192848881379174407590281433443233717340592802123034196697204946886095493223416038672491037412264845976209009886392665389487677175999768718619498509629984850662378058818372198318522186833428991717924210010396194220659764950945758852110191899635805056281834790132613401924871600445327973837593261774062920291892436727132297667393268759491985533094926978941941091439461948559378308141417373124769029477719054916082044438243213593059266170635423780947172137511166269558364428698436270227702362717807256559837372366232817694437527100775440669055128289674651297502291621717607043469603619961430728038512216405729088268295091996818398841980888471474616647102832237079091756638304485359216821375089570500879752998785544911820078873494885056713180451388722898794193126447549526230630106477749389675917947319369585139724514716018347807654750750750525193103270053132953076922782756978928831707196222371386873744280205147490483976374706448451937295090957825455145781223713561402105781087543607609083302692389708893093306862035138053263998700814740335571328030982219932142736350613112640192611941269555509343237422824549705008038833395345117981812886968873282348017322961170534165335498689116074016478127350753292485656560013667919976158063747355965784952691050638031581632726948385483023629698391472077930802046652357068773171721361840397471002482392494761304112193105154043159462629457032923651391176877753175564539418748402873413627581083797518099349628464366820764755833291545972608900543699606659092969905591668822926870514315315213082950538054722135026178922716561748405159440542036423841284246928198519801988322914501969217050695896621620079902393266709070438491975924527167451119431348644160975958587283058854799550306929323278359900299586397740315410791952390912045946646063048131233995875252348923913970086064084991668079477731200092259784512148462837003797557317502612337907244014779356073704317088121038516636171284538553657277655993883597507228641110759934345365896516272325875268284514282209696255193115386095468040979555936953578096866797963201000746608868327597349661229587876394034710865530228887906924208148546956999488364860303542735504021083568018010611074530027730307788825976024709186435948261990983493109242670639042255485788843497115702106930592032739731967722649221957864587416798724105905703458772633940113315387673947707198072867581550342244323330824831632597113867985846789556999536516290302456300316263506395223763131213184160123559491558116749329922503791186188397141510571178489221954225822230164043157492337527666037378041944433950668778291298142610358262215747412832891752189574773656428820180373914313842798444594254087225982316554830702983445218229041345938156309702138359589200857460978309717457510972663812379262372106461705667312485503455379017676483003014444386112269196119209436127540083994282839250529554707193478054092386814246626501969932282387403305949394298669035742260038684979266817810733244075578415040001869647790054242868329517098729720241157102254537119882734118769981839939693694686321183647272114329736089983229845008998281009957593788411555734903947746362505187334375867331801920578928649511948443399704522706094625209551712842170788499835226462117640881932262680208610699415026621039770982618007687658665141575139688469330786623849508249001838233728219364217554418902345878737122353404064113788441656976055045904167126317858189504613927063270763999779675286020846710509906114682044238896472160242486189465142980297758216607652612455160199273106986215477936976035771988045126478339663755094351914615936841870022836212690684556263600991365464611003610238035333235961996526322478065862148305855586699542110647070696862620144237861179134916244815425365302563765348983697788015401642533304907187319712703113198855944235415525123875812086200478318461233582739874673466102995615760916025550980577555294858009843470835855976020657420024398479672910795787718778400166363201632118432135395124755573243100551629880253751594420243475174171975039909008018926280715096538614128156197519956934093050746143751947312230178907840275050920670355293092093339415938971489961305353814910214454982934877710644334011469490078654823685868619621373478159229885425355712112159044088889042731484062691682237612714557067327704109389567288753244829277661477349801170636086634294037546818842780456992407255943683134030785117897948907705932534510759666058321364077942149587563530284390958990275871888190219308216360758191478940167391168331050641963637014123385013323831099384186740206177086621712497723897705802551561961556233112674067743958515357790269673587869602218094094749308659049747974396710631979814021481271774499543136221465038729343995281741828437901170688972473223618453146069424033478833186000875052780814413729084587862318453464395810212082545957633153351674485021086051497643355523620839370659907196449288640072981342810416951254500344446127365343144906178937318237276816940562443759103865568145901878511408454028790585176433601972934644059427371594173137515919104133314557894028508639200613032000892352526562622190734523726891631629795679608500515851794208799951182133316967584316707156407366347570327290744787612508911205206710608113287121272735530642808604644275575450076263137296310234465411666549677972763081519799096860120195067512051163534274099325612822942154936617621057203696465037713146914298109382685914338517060857610866831973656017854049233899070259843729214368795626274001781514537959326628639785548961885481194219205805611200774719292731505365011571943765979444865118715384795419895151679590651161615025018184860608407872588897840464566112114557800755177197052876607666176142416161000323842839719531720895944865332327193529791494908078558620322093724258057421393607260618923680388969842826938244012813847090076853227703748544570688643404787058340155777478734447272249548449395208770100348546994459181342670661004274097458654600857303119261060819792619131864333789297020084268911141666642811031038508125365818226945901252885569604930219569536473863621371174559564901977318151655242359466390640118639257036358013360262024327597969233758111074176955470618155293650331330498127545039246710747203741282514275600641788796112282391399025549151846003124553603824211966787624655438254834818936126283529997864734419252334461953694297635253824100103197992187240970069402396302651139783298842690004850128045780188570401349235944454716906265308639680284679744981058220990078210895965879320275901270141498359027700579126031855605623946715228865698830995755095927652639746848082639062573403182658159540376899310559039461358881706015264463671280078564317300415093169333662599734340933804237411725899753810223736392337440332339875072233602844825088271613174984418730740154302519124063688777799890026790695782539711299167770612138283340390671680470494725957071232406651415870759062647103815825349832333632215783710137941144281071277610485239239560875211034007099545360569514446711436126983573418383996974020457383856786404172345156523004373853217884716033459796974240973592739458409020411959032234446246344207947835641079443072145804902240590513387015625913600310895045898871585329975215256866241594814544773619943756491654385106686190864939968921674470223903686576371493801420302318641059797382478287675378616470898951056726869104661581103219407917642480405336597561243482943243357835596939065799079315281858671433037706164293480147311461702463278708156907259905457936706098836027292814060691840461029425219807027872503397383818884169238696723748346560298338846906262744285408203958554370953294340486359340051112228815844679506016545175257746758665862257366626336660899614050043191095048943878566419609501019460414932010198451425183032476564627102961283749880733660059307108031893671280882644104487200621657125216079413899360181496045186320952191320641396226214010009733676419951961704732336237441995292658083212771106664949195438342676690998379334693538584204174070033341859695491983546847991065523683802341060521086944696786746069436455235938583828620085800756906016862395847682097397809974027198920913595208897937534895035762368678364258244325372123754516434994078940292306217820894103240788197823831644066503346385774544021328821213223421710970144667792803331809102161032930322728810696586670212035100060162348196513931931248331717865341958844415671227497298314528768916230671915735677892230428342549313860755183312730902045130600617860893983026284193761709386174320883866141846955082411284371384119566270313731931533922850469008662306322707065811570846148170579844891283614314505466032335818715984827256084786828825047866057793278299567038861967342557971901547615151574960175583119314494451917292712860648368982782594735925420181985185467871681719066574082622164400371666300015839962530862255592000221627849751408387909406857161718164758667650064329561447202329194922821954169692841154703694544214202426018067109648407679507259614778188656795666376368728713558107619104115836320255541943241226560581595475908932787990786787285086029257598950671305473397106389173051305842345997096242960374579292086431758448253253204712396625470666735601996132426712900737982349429531848115494549040954541736030121507691899896999351103141346925411383862449788996891639342115842971583668882366081020058910389657546692164757464007363668318763084340018857410501706650175204608741313485632429114187995864498955991255732146539150788561170326249326073018403982297422882536404074017272633131117513850693390475978162393460193518746308907898282152929079151706626567697123226898889084303713518084316020901507702372191410041444511352705623213550863896776984375072688801066928978434572715254021644640774719848442010177506563388491781950705645140580205543339157002609175262340915641692308279522567162307772226548785627324402766803595617760204627742131693668056059184746169187999281925153835629378374671646697965770532755837482804135921392018531008886892954038831318519670379405778787713325546274730373811542034490957741818605412241488847404512178359758391887398868886512207429289703744500176557387794080158570369963554684730295333170465268939584185152725800834837129128247576305716963685670828106139241898837623776367993988478908279748277735352653986786987631902397801831621113404279186208798827271247852262605895219785868649575210410244670121900986744933826431783665732874079497883417391045343884838633562370470506468883007353532312106829865461689776473235213819788317877782202976895572919502548749553097639437751134793898797456901790141600838341916878102757715435611455436390290437103552903130262206122841153926137523743542701381159332799379630573361782476947917452855246478004725482418579853817704566418163641729846744472137877115008136507566982913223697903861809603875706058490620790407703001705718161866447831792827474396317815592164260545750292719047685740169388913018807959015193137434177983524169371642312389182222803793476923673609165437329668499096037533456460191111258340157949145598392994885455571612954738854677230073115112780093578254282394810061792842196361743198419331537223714954040399768420345776183048132681594374651247071346363163991530890526494013005238034083720620602802334104277884917530485170950421511138292552202311351770391256774028778399118929085673972256569068691422757591255149135519300432061278567493175309185390494132654126789538004535542249780377594694511885247698410573248157613221538020911396491624544030267532643694198541936459145455053656298068916357552298609139251858875848721191139825710015437154760602928432313953393532837258526592943502578106913156486187401665498333288954782937094118388036529034031427262648971313979328247555822049955434667064233006311479769165841058621995456987347730291382602212931081541416398502970472290883040848416524377829979814818582536362079976359732669870453119234252735977905864813892377336935176929328956445705407151274173587743778925043330827361857337119534789675941899651924097870818972648186452522153623084465546240816188471645887996367500094457034639295851103333011987614113881708434609087840459704977431088841081608789038959149627277766011097332162313321399979399162813107436693867397590888751437121916869833218724001716150753680442366815426778653412145028350215706886918166225876702421743551396251042869358016555032376858513214719123237016077974426933470350343155005387327030799050151538428195344585652096585955231924919871221355452381717471056562699146262423648941924751906448697738674134722000320419948328249553257151944606680662244746419554655036250427924167172154413052021828401840656291971113087181913920634560880911093305884553917219360388017554511190751048526614792600523300554934935853257960354113532998912010538839774893140367370926238225646842525569388336601532775316044803816042077182035390577710485156977896314806684565644804772185182858505863400917030447103626870665285800871316076020965122634071457068878866600442698657880694263691146168500672625329755295939174580441444115667531187781420210045045164012944773849450345809304353604200628698772037339589392930217061319198104118119678415685447473134485278096292461408092614958718993585271193955889045134670640260268607769103392001058304929801324923149311407401251001780302692052528398164951579723845073215625269357844723337001173283132383067279916127416332023826819298903268747246761572628977784758629964316138356705612293595501919688458968452124375483139800284677674447761918355095921387766607864270573432524914417897762127653981849293154390589128145240986120845515652616823896812725599251578576563172690984866538757178271169641386242246245978487957481098661668075798505533200346460466928174037931214998891116419339716822791739800787356628921983745299056591825269818385875755629699204218295081250742411855451927264199003530665746654807469891892572909399827611477656423825516252375378965080296247857213827176774140146085783216912104667090561594590073007449671554915244837758464154529367630103662841977881858565706086525775126476787123264241845426353387232778768186506098059947719184495307974820331176136576301846812944628220174735746703134318187763339414520067967922108852612352842362103917801574989151548736405332601204147610776385117491155534314804644115003598194297835273563474678310455804511966509763127592956788538752005519461490879067373205238752401968007693807584687463264034154746258314922621201422230115051131208548469468245213616118927181729898088822639286099647944615638623169879249150690715229119265624764518646047719597268856483913484328433710255375203504778817550790389281917787403019687790522198698529179477543081597145245514952834312072238204025664107758590001473101373620163383707707622681739766059462862610658113463584313603084107914280427378561444280038427718061629153188432295810490306423516592345594745183228166158583504874880426956814454766004488051088161410678767363953729729928642155911377166081984024145397823850400896474001560036102817166682079209485844234383163407433853934484405324530998377124379163294101841490339529972335738740543590329266393812956196567993499859416443320204619732587214790436891108996414084838143110007214978487162749847596100643111403214330387032567926445429171215127936956018206457330912566008165349190155527410156234765158329248508644548829667022010575201254579453433467005978030355193187295791811890925332516953998355087581384372956517264536509669276709556729374303076549338967855088032741170132765114365124009878537694235623125152399971601090548499468652775143289027423608108564772080244573537827898142575323872245890861629155682682870871405372485378808381493253522648396998536577040637016154798611348604352945526720781923400108183331069798819028602662351916073674553451734756620069092671179056190011793717627245998727683111056270456550125618102234850925682106532194011876093606655896631515802309884828207687998864861697433864604921585731275067156579513009300133751885513984983843956951218463906649549549501228818790101861331217928603877421896385750121052170295644874580192275737432104146201163107939466856384386696216967112850834257093058057543837106525828115693771044960400642428017233754860326952667844386864680008813191046789516970514818401307904229120493376338715012413975109032878414037606503883839691062307620321499608433931560662200509401972224836677649046801865640108966720708599349199603023807331827066102850516479474459382728932374756120051697516179261454557675845992623195090615523920947426842088662492722491138518303330978215201387366075232184395497798311112125755727579588631488575554147243493052197282399235837731914662129932990856877390373990697255698842903405886193313128734613232326593700327810972531045166798250490756849616843448154540997544383508643107218424503167547663827127903872063446500685419851263083021536677972686925341298732450313552693006259564311261186505320741740472163033697983027237084118527420546392539936438839666162776136674635803793093081812956046317627036794194736321291559853533832339255770222725644546426533520104444325359114191192888363446318177108199407900841725963145844325054615789526560448344610543601879256145007740898973571116190020595101634854640511084988800807408172442937885286825677431871645959570865558446132483254635967987301260119289665892322033563191727520315212502213847324951274351403038953388697475715763164600420431512272368723986028825365547709490502214312351779059658914515964322935709749240243970966705303012877024016093643995412532769375867496434753159233681515564126195169004643571322472215746590935122310048344134668535327947658990162267318297208572033115742907074080214748120832061429965662081129610868192743568901371079804844787406624607937511552985581511525571079894948591132502370545647409174218775735178192701796331435582519464839898696483414326001058814378256870902610480680808615160115440125636268775344365480057852557808739693899623811263118204309399554412925117249761845561225489701520998258572869094449995526909170732372231406878027255408225082113901902324534821380536914667607722332044873839524707780528784268750259322819006838851628621337830027919236660768452915428803862027171658296783475343475588493223538986570769341228589443214262786042883041693887881810723875577681168128505984119470072685136623513958462656435875830360763430211876195575621990380508878909486275637877662643565796120549487877518438744242628922426095895568813619932921107956558816641215857104300881167905445253909403969478094976187563896296713233197384646737557355740149363428717429383818776507188930200111710778122962430810405988068331155155590896177939478427106833546045489871179845008031140834749842423521858336671451984368660058485210607346898686812906186278047689686545080086811272100710093160072358792696096805823233327254867890135993473143268153017840687949680055411528365361624331338812495375191953030575216864831608661797498525984973899543341677608644610305066084833619249349088283927531752440128676631398796722488608152668518203186448836122162795335773552481960731071809081063748390670691340541214307322898270727616817370458874787382181114295024766160596599616518878837291345956616001952757014594527027689006660176526803417091107604204293196901151028524445969035425055821338498848387278777133943232023425857201839248221414259109403653259238677615325474735622242394887111899401823950562100420626606018888012388685410292828281192942721223841965939965262005227202158034410442142835718202393182238724491761696608786578603741975838412416947686283313036710069459099975123655513871363499452565725370458547432600726446571633160316633389780559082229154725584103512778316989281119946170710174842404596796194005415768580595639862323397627233718559617299898792168751316386516014607861336758461807660208994459791655360262267614131774987462860923314382967003252481705759084005155439986641175034006514717370067962897028915745269836238143849715677318472439756843202057782650465219119707989594222039384889265114787921284817162486503028872499645655366592075368942691243117831317319058088613996478576499780789858956920407799395906540521705965426431865437723021558603052578351524901669736537455195047765406493225167704327140144213663591174691389669063025234675636724207596616406109711454865581997121945729802023562478668418280014374771613718222484683248694681055970642514657780456611815494499162110205944588581200700263924878152824354771945676091706110749859410195942298326725501839683797405081718943153268063072041241506770461525590880609901323990929898569688170312973132212383114105734855677398712897490435308936481974716074461780822581711932944598852628194611566668992213795645931686216150092966032523467088179423438285839978780063446902988208942501094813656266024871895009027718197189165971856359808910277247460511876614738713210557894398494812843124715804704133576801560700549423888226769029664694365608383816916166063718688776525414831266718184601840538625107482078057999387071058186708361078578627907735640124881055650852966981046345021061993952291844306972470317912482576905828448280228935636803592648782903490924510619088363006187740707962817459500200896710224867433651627179361831172412299174938761718493842272575379540832249471386152916434793265650421428737536097142455383061763362339844364695188294071063164039664162582472198944588461030768099246066107350888028785828650649595810251931063279327145111237310382643527366075936845770800656532284451010671630870568469207572999696211552840928583746335057211440258881519083894335057056672277782225247309243875162173929546649369225463002187949247569691347056461468653063278800786999534233495851794859723516658857331812616180959328738285156013365200586658612378335834807428553671734648006404183587636959971924611613376360281762129964458969823088406705666072417133471500418710021722839757442360347274909881471190619892838268091641156800150450077680314950948392461779560919053767627701759741588207118279125286399216924191171799928979269735032088220931544262946554830133551159662665752906582652953799244083763585231850021679039673303286995648083814229284712741426352681194938143144393267043466037536362814362087599102962745246097738729969599195821784911856171164034632393765664559314133586937048037206733793981336187307544685401456530869160348923524164331058829802136954408124276278511707560497291828765886130358965020637971524913199194269813728132856855675069444609446593759793488382414887745252385435327513464046237150042050423395483733241710729108477662081688620738789812874080160049094686801333583902399452658670507676490502938132109095522991702254024200730244345755327870469642667967294732902407799891192334806038067587836662608414956448167614798955689504584092629577748784051467791822057902106895416490592074615154977654346551323884819776105342604593989053527855023822358090714571681663113783326465430167050251645619345250771045188553203241549768525489865925493013302658234883889129535961568723332095630014098329477900033029153810755318796180230480069189461015625317093116936493830047753129095360665526839560142950955872899858496811424150916410365987638781555678292442723791562862447467390091641275866535318617172033600017480030608872588991224635467269838922144338225995088884209722072126428231296903486812731578600257727767973588266875702074248880721077896003091048495017951696010665684801077791266335736368002205025145835945233300963703768845208073959054476628792220834744153681823634160160872879277454359639603591309624104531530765785217040215159593286340734714000350547130118907417253860287702532390112903809528911748849929094734583019914041087663538658634275473934050887828544305624887990385922573299449163604939722451901511097853611616674547239129545855307288273449973587473633110420136988976563410110945415414030252418066508196524949225854795127103144319097284399607971222396991106473404376014712055101489736461353206716422493230391348357700151750336071578621426856172319478927637560928711018924608189979427456967558580529957634190065493088122187153513129176836626295288259874238245327226581894348220315876880818407591516589843670481558386946904811922882389686526772949941539269169913081393510494769651851139694111204076606769868987479057952336491490791371196170169812599134311421417378427731047423264317984032837867247500487592173680698900529474961160302339107814290196403502409026245365627841581865083195147839181900509038474684335262696706720158318834113359925895180297133891165342229256564641234236260169095652825773855318064482324882133122972932443280119411815433806973097945167443261793847941355821859563431840012168122585927423007366602460651386111631794873834580614549058096435609385707556913048138298094780357506235583130982319833247822152717117390752321230117044192802473899916185207050776399094596726533221466133299391420586083332294226562496766953490009616024828343317811503576968352600165885659884070596649456361675123947106836210985156393533314823474634980193596006756701771428677613930753061243498904062443106672250516271936257864664913214210947728374161636186435941386837837062186070987512387311794014931589053362108806784889299232722725057301541214522098482260220887542098952548878121271929502490868038627223728477219250873345971616803948861431412617101925388603675905431199797163409996544288663499515944846082643172122899237570660454546214759615927842752010653194065302125204318899279769384090534974756812913004888621458853025069921315968504955200306683243179080348797863873104446097062242682557065052418496699903014409524445718187494349582222912459417979153188131458370437916479833468001037737521049146290897721754455322314371426248041667727840139383481538284323531699291898102890623208834683947199530756523156982939737958104083377354723256177775294780230826098757189215495486201342741429345625455589462698866413458825000979237097626573104240307014801076026192393835398540043544983295656124108311005422196809561577571168846174626539258622285079895781028788502428907114474913222954733360239019385293461936017541512621014073515046522938278572697178593737531899294588046753872562616421740552392299546933778158804922433555484150282162890005013563002976738812166592736749656838839366242324534638463853826444679900083194456212295676620352490819135726480560581067645134756597140767406349785602394386316429720105921131306104291771499144826444380376057421260828712882521508574549515587771326084497737758664288840466277252943671291875448050834459296746605539394699903352255164626150657881417724418913929553951779233425471370070979504577785700032688743746772569796831297338231548932781059539485848964791243755393251665968400214886477608018545064874532769994903206482678582607615624612624214061272808079320522089719235962465909861489483799632724141945210581381924103484118774864021668903128125322543176696564325722172929512950462007589967401790730643256356980269528135810759835590130422091910552126411137681030639590764438017195953072881681781197142456607478040783498975299214828296903920139985667342266405784152272710821037231799372885835901279693585711381709129616059539195696159647917495420555715240499425001696808109812942375396478043444792730663219705287340949437894903774504319224975767283671708069021607190759342896205168055029542308590895045062508306098662295465733533669040363050097537861984916016435980043705593327094609183468899126625613947790891995759862179989118023391986036794595964315093194488270152018660142266706656566563657293371784423883457629042165946982871166138079375264408932620824765234707097670555533773002306682354997371352655308518562327664495267530005281299055217116082247704020655317119967970435243030431400805655789454539866541071306565781356471957595146804096722138813429881190918138943720541362807348603313125974879276777323416810212642822530121468946235676782395414170329657333239568162145566213089678865643863870564739585412625218143602773569730648164690490981416043451465775624862198388530008578326183744760787373739022272457111461642790795304099644233679626772119064125788654812623621521678063369127948919714134702711976412457577026631342856905014079923165513650570129954924847247206530342424447910569665344302561082766415079089218388038640879061958177959499284464274235892463709182720796613570656855485602286351668942214030900128554898850493771995077039873734759872275975570838819275732118764140064516749211616701837102177525110281174925736854520576779556305918436170723293560821577217335461884990965389160899671153823708968701550300875528454986209942306135452990203590585358457014370539850442550416785398436853229584183816333442337805166583539056773891954323683136779562734731140293619999240209947821032908873493403636624880896576185004365904385019616218100123945415644244709895310542914991071512895576305765194141714822489351835169092733265686677585454531050956346715099588642174344368141236118832102422586882911844922625097675144805538007228259082688884572944695861820260237690063909021771594283179425111872896303011755304495973742473096488838237677850844390355776938013217470932779057838435299670866099450670596556113538525735601773916723898244199342988509615515409865109540376207804987174021558699604907621005297524954140069001248378155420905941199838320414401983663852304354427863026755296873912453339755448845116837229504742362814209800473316505987885838253984627304614139050239864452859709798227856669206393731381566351070361760009756181500081852364466451445506626951787334071854147128293036300461995901774891829434753352737334688802918020201661408459847614736039097605458669665841969808265903937307174447364876512012029375571167867229199231381016355942722372101718974768574920146030904093609735846400132676939769687181110486017458318109347174523497957964853299805713506258580467433817001646539003433563188899186205545324935946763726804612830650764341351839189255341456664673487235103565530662609794485622194686171018817731988547485983693642936664490877064494137323273165990074871084574841185439344088026860492018134765016604135986752833404709007003036111544535142413913934444678656914780472699717764439933990052960860324577637377943964525268899857494579161498201205236470596642273461863342774501194254316601983943990709933844266175073490744728548764052356725516487822127768712068389534543856530163398885252580176233957080042851768567064200183341848430500881148982151701618334813208791764559327035788150649607103340167603187211185961775772506721073281851324458035351343299691288345613281816621798674188537912768115702390229990709013120568422805623657353678519573865522228982098074603314438605920447834877185272671540562637403068421315522381724002273888300820271678651114455789049342622012983346139936517836475473089515711962317626142261082629426239645111481228366009195024172509168143225769635323540433322985059553891277214991554825834787689439503463211859087244067655853184453712110334820225064907484691282550894412389597739112207398600305532529784861946556195735149078424630206439358183413527417737357268111629422574291636653345548083761631254105427879903602274456646003641051054474739822495055452993341915105313300037249828233934613530555065707519910482213101687320021814938194673837290665637947560344165297951614604628793404764063855898819485037001180305384669129052641565609631039980074650414465513393494613740675004481872882408487523715345125622701172509130616711960813782533896610197884889720185689371995328549829611299085525541321799768869155096746324250226536480413107492248097295127818947696486274941217340404848647601704286859471312618627382566208557624501574266751776339610753600377304701634141007651749136574449411278592435658526013226429842778289237990898659052649899596964333773522981493611700761557679885328077230426383475807388821548080717371089424882547066599140626905285886923035623076214880675911580543719397987011539800059206289844699201969491190457330809121932134976166746591168934475776631854616292312021728453266798789826114740788392620067884724452440118598281206859244709445133350896540680610825734155289387867583870309033027031930451250735843041465862051449719829567437790613919433225357500475682045887620924864072406449939707167967955184245350571836079399996643490024778648662403547960613047811076286261902127762424311850115057169855065983981262054585641969782561633013673154767626296943170328115237241606361621937657540513637261804815013404252254522844495506062725516608984270090030314373157043590211849610007444024284155037591910029988749878383933599232138862104620774292147941597571346228530681630814818980706739048270747282418811346880380232619200711369016106327359506056179906268819885261723832744272865716146631256163432977308556273380043355033937304890111847073435190886786856218565670638254271674781260469865245292012525137413275584206074611270791484765948210314085431123158938822597658311454641944414330107459467570387700445138371406865697095377292642424937909210042214547058426760860280294193193792836492602077291490993261336091290768296521380869234080996959716694519235586186783257559572791892286299999639521095658750000539472438316389421069172054579937988460636749002678425945383518265989191967418096723118684474725132977295524667736377229249326443124326710344982815342810648095290051084749978010489478149230010042584135857834752139999519590694783061664439007668870908466447371894321273526251890143818806745059687530767420147086218018014461305781635525431917955137658990804329920617723800820977519380267819110261341646233253993539090195124006346977073774081582169612553175524480426051342585830155858050665859959337950207993366901980760584675650538283607290320429562137773069279681867568367352141369245632793258624249318848875161211362891758267215817926642310838393305839080889576662600232473449358174450150314256818060620219368091237528081290717764684720605599636866652101710510984269809028704670064355871764019757734892499718783265252768868144760914021334021358426156928184419058640138500116090364621951540094480700118720572439066164908789118380105484362143584814644302672363397347798632379843393204512674648947928773401169475599239420078901654872990864692598566709537122532589250153457867733665620802098072581052579014628296028636320923462670632708358430730527639289232158425341800660775620625809017118141192565250700317167289617645522776677791732270724105404225875932989473319717222118064217729948345334657716739062463225122290706161079521094862375800926877755436737138020922794282004544936722096449205271900144290534939670295344808745435312878205511466691061179116643265832978347016905279029707566724565449938145274578214660324579401959904287102464011894655996605213004659752282028160587883271414993989381857721674067790727608918974626013343491323709072470668353815856903010426438025218286143516870446497429918795492002589921307985110813519280264208899425898767906411407486877873854589070135506213403574330104808096124914919027026917112367717825261130483912854915006526349563737813564498093865080942678841400694010073936657526870011398964402621045688653904318506202555829511048073526959805749887926880700603218312165806761621144632860549246779371493186316051267114671951489842727739749263585019138574204532435387450667247626121687939047278435161228641749296861860966650300285478747596285792030245528100922284491943173001809854419469697926376783235012359691104121945442228805865447263005947821980073370868715195007914259335957555649984317165532039496875084907872703742221221017104435811465417053518063837146259365765378926989743657897251667012920532710154820114817013054684195123785443721345913284078794191405758542863892454711650475113141224750102880297771388869353870563025783454335636326969857646573152634554239695184595855283383767812794350803296738846064061207095484641149661908090148844227259818832691414377636134300582769335925095362885221367719655161708961164348852194294762196244557705472130996848923477056582663651893449432266862040434991038191557640008200533233795368920652743467272861841884225864257313350828971454750163691007524857638378608358842553135999674120601475654767414430818818918076691692793675482084299363092718849517407317646046721149204790716235066495233233428353536488458562790864664125094279737141166905549341573062421084916025882143310476692463019086149268747156185238845389430357747188928228053544925132567884274859841888020454834762725146299890733908203913261227803688328114647316518496023857081432493406317692250880483791068740250922889426835213158581637978616126788985934527566557584087030082249978937201542329059228713697297700083580812737733186571840820117307671374502438915213262186567813022832340454969159675051028151716974674519810843527430883469099305315880052606270944991707448516632225713051690700523682692543702812521312701591502004795934882011205291234950374830925000560156097036069512921532173265342523569879105393448943726056393215703067979284188248539549866267695039648797516680535413820798200914012832698016095100200133379316941122728924899477760795967518508582266508260272090870766035930580183216892252791902542435209908100587535816600226721684602094729541323032228313977838806534488271109727666793517454928704795403324239403271292219572872038531430578874526652142619088210319334763948662918906071519187145460197078202799293703824501204693546911303978198735630114204556319344891577874128712205605821677548695100097756551384115230365274057416992778099320514814334879334567053976508216189123167162301217628953292099584345007372465641229558564581275188736727854580276204344595690180832349073409041965043510772113100742608984781315978498452629440602560112912368295993624194423984924241725692662800914740292903063552288256843183346507124889323486904432050288566172821690469512415622784234784641960333920679779063886857684198311743000276554051070798405189117632819597860591622585113472707400333555160953056400319658034625276250655736785261271334365698152892452339255109121788919103356354423817703931464393643708873357082739974042081724879369698073454420430955597730692914388423235460860932001765822336550260350016278427648235997620808312175715841876470626680683766423000150637302799185793856036400801716855072322397488664863106645771301540509037451763432562114109150328405747066524015594163145041983102415760624184097240761717391633117403127998049998138143167507973952485908387686299903359997867489796513224468627207055966061368461567264985911757532340067500645475581122460508622872216816212412069575324981225108557073582127838587483789848235466073905718307569408091825211397753716466701428249555358638605241625852190672294283682879332824206121040420542891184005369958398867094942654594374075631035576082352579496182542657558931297237126752781571550541300516495203897265114127263232097646243971489752036391108461952888501059181238623198308825247806754429322137224615337623876711993192932081933177562749147217073056363559755816600173406334315112945742844360542339241173395844210916336107547011575905651710820973845449056409757099934253421987164082884962541257338355067657252552948918861217888090784254225359127926924272759760722377606401878767038974346591502328692380245519595471415738226638892356222022862586364565080736892532412881498473733267633482065911588993357325816776745258396085113209212718087959510152515648664027875296912898317287689074363677834884999454407577458417860201569784985420818673422992641171337663953681948087255347358903904209159254104723689689818082104607545238039918745085873837365914605913878298306311022766557190563369093820439982698185914489987841892269676226531389667376062487485992961087822381647251982893633385564201680178138201504508594153152617342028326026789641315491183656401033565587719577126227800815230356504839276454584249706475932265358004164218089745848827386592127193074354884415825125454873461334152328731495682196483552173661386651245072397056087194021398116946449101408280016472687840020527429248366950978776304495641017686554211749242112796789650888863803764644278299127036340415366686754730809992649882257369453051815065543074345585030127793347131005931274184519685449525506351508226705051730764516325671677175483832012016272784184556733466484610536061079404744310715157033735480654029971997259826378226205261330661507394149552233619367740209035626769773216183491292263086871208086591155589564535494613688514669936137275249375840508917609717260729860782809660717785101293925346485528999394392689889529329542479399124099521688942326358482629571402967906908270084641905438427149342910845293857314970995882418306092438010839162781306402993149298395568809616954798988088521624764375978361156551324041711882002329818730580178875654145916851659746427973430567654132336491771805081753006411198018460937133253427617065902225586155651039576327257692706602571467986634284760878055596811488413919239479036861270249516185652942866034707605596581305146286288232307115850040344438409010733646801685047732876032082680975222082466176572027682601398416310631172685261487325679569416036810078606941180217762744395214037114703543115609125016778527167871548835919670122442504784332757866517990758852201815253814644082621247455387502379058226476732835023211390658829407080998453360705085806918979195245364972501960520007453137056644840847716138888849627290040493239580687698728039769289935893693267785374770392013426031312058969519026606744314436893980906395519827342469207947094429018930093036225240097655346325944512058506504955061815494540359927321719372965704930672001228867748295073104399428219618146734741119349227175292346996950872686157264902521899585506747036075803242204393845471866444687060488756668660887196185224289442603440273346253885379387587861616138767182117733806856142251383947016033062847595543583133591808275300269332422271478926388113520825073566982523288537621183895712116955138788366259459409446260140923299571419548943867748880351248426074564685320340497643524778233554468004517578327484907212632191829289242568445710925225159476917670497998575445873825718500345635136050951766274453889014095123389708430946499490053149565211111697997759187492021589885213696892860080818579794090403385875693385087311046713502298218666233439421618845513888482737219010246476008299144412685774615635220967310758797644307467728630625537734728118591609530804041512255573054764791908367270105842265390021027223007614530530806527907461814959800074077429725930279184541238816788557932189580538887406346180192941699155256425624202521317706480772205533369796717929406890653355963238896677810654029372790805586810507054764768104883039731303642891443737141889140302694745996271672866931882097650712587100249113309722208289645524147306794700017682022265314310129834421450872179419127904732588389738994218802591337447200943024334929573541757914745665601144338590277300624794656127869320501063293399383624743613547629755195352796648656711701138518428386744318969695097499145004853691996293307715648229383935238659661881750310229114023173399052582660875585143734714976211829452052426176161748999484950163884836210225427839888075909727665886561749191509927558897792693871009945271911546145039592496566609345750967005320361223278253854920886018096810666904852541875085065281079491711683771901219303271516626316450479183912044367878070948061399123070753218778858492039771335736929485782196719885969887257768951627880202666888492485861011072196576251291910194732430509650331443885657382112080200981905929833875193566406882325314914402302749322897139481520729005811908028303688436800235216951432445562012798852957766328997561383473052811570360592769855840772973768653243047178800062126890606850654357085282134850156690348132928459048239532353332666328308403298438838516508186279553945022604331739878427272574264366810120768142587552515684509240721310476495875934236713759315442747906686450617736894205762330666991492013309229015126034590981825704575645309966321119195326015446288023149061917249735098895234252935589745611540962131298663037695277603849303424275770057727453735702998452332897690854000202446695091396195200117352122024776983644045528117736986309688911283921711749672418889458631098069282291091480358133195564250279586849667838553531113331478631532877672924682229051274856642654696706430483883534186778034781408577140210464511314433372168859777047843394111240854879957189994385203678763761547326289315774619490572903455946652827938103963984963423655812087129739219505961768509093593934000867532801048146658766862661282195450322701065815109008308689225665495890839754484166482264718034842340898222553716389036390026246373594179359781307879672666232738635475946878553642189918652798131385856202575708357113190834115409795197159515246612332539416995604941238202052324643766142059559027044228378879567477065879677286100840154218723511143907227202622445267664128051966881190362896815407850101402839649016208560505653212423281807749316312038055380102325141662328154840188295529602199411054165471390761728294402986445002573691440809393037508569325340730050677549702770308104704274484540101197074371137336651104887373010401875297176349797520161810859001857404296812806933299058598787483420913924506351750470432036343673569923169349394808775079472595499571618138429754906632839964043282233726964855112094360409762401202110637945288755130109171747062944885368573801380451790580750688196029040779486274135270243436102675216907383245538895187359362423969403228582677400338098047636504957884562432287196322655620455918371234624854282556697910865291662678322791521694689090827072105102579487110319751249946450045035606527865829683531912615305129928615801355849254819039412811229369577109936255137659238585022827830885418142634442388661098839611519408819048074041477145658400906878286497404954532475395386422355849544196063288068394870476709256433600211641420777279846047350476343704797673005997937473860771635096512348297019383418160571486744852358621944381158182839761077803314885086712556460256195840066547247549273332000587185373684756363962993224809424602910100504315051763384106530974548595717742528651533731009432704240983186249088177861864149956733637554795914260631083949830186278454687949584131262884842710981826733494140149714869913993345801492291758707053172461258359943552830584526731058117432968843909489982730883701361209425388172056592768451567695015839548017721954385297454545274195678856404426884549350195686702063929409702550673271309136827301858705612258111860032365500584992013539218980610126596704499436769219642856296900106938457362054496272344175366784404238939365516561440674388679574433282302828938438368008162545857851240564795974535079509982121104976374137703909480959141295411689297971904676130044553070057879386479125508000938600456641578515113993196996412538069971689641805891281729664689903511064944571723589518059201344602993374836979842361896378459213900878699084378423274104066658042010552322470680952972692902044140830007219477651317439034978914970939048401099673173265239896661234105270012326832247463421581080070929924905369103452172221006367375574883754271524397702086115061571453480954393028187679054041653072703384331055079160405966608063658569378636490503323722918511256680918129389881975870947973084572181748060239057995762792417695667648783617946387503378038743569618231408942512406139285521271436179593117021641605355894158803203652326227481883860800703448245408525587427258079602840652559688412401500829364644771435684621406371581047206995382215172547565255277230448903501763179718247161232995990940275438783312496163010497274228485594352653522550602833248124885809423533738058144618368190767967568601947395039229645976572282401882770302387688884371297298405444124003716433088965964021678647714720982721577941970901419616135377837340762861208064722131898755101958893833858034519005621616792218298460219873226182490291118732963413246187941548354085229565943760984586125915815376392600969289297210557559678366688033777598369540777287477229220711910217067527019291240508291302167395111292833484916749077194597550426955281690742153894231308302652563703132519610511780453011804481532092360702983002283393344646755829135334749250735868550852893942749868904680406482713021813780105636425967087236334479310827428296954564756663569434135015932380051559807783856287220901076820116778290108946651168097231534309586672197010485752727692087406006748581002547768479676661244298547040710093088519530461646218431911156060043904247377951901119597748299368757352185669214968018249226936423949740111007789859709384777500892095411943434892676356092835721800457028568514017745984683367258449089016482924670860026148098091917056612752268772749889414670069016056116106758082392520877469778083468846425412226064456028131819399470195997594182306896978174449899261752010942375190061728025589144879125908588045774597307279196148448757384027447589692420180215884815601239013143751736249550419186608812395269299034289498441637171575918716804504677425592782792629993755760639348698859622968740810264837294613966722912406457090408900910596993738756890730989617832793748234484992403730587029482160596081201004738084375565454940739821667115309053702654202063659910779538925059327563564384660046642341456464343125337640019731830394751734619328244290559222175398979020291785785441371932382488388177145017419967758518215175336615271916286886546917059563537694418368974437476060822956117362074103611480619015194171364835137699536319920050625001321279010919335433892644315234783133665115771950555812209258784373210605609080994417076096114278510054000371164423191238486961291085547926581055423414659206085418385621685364996435870443526475327766445298356890438960596898458903496996141825755981043309935646677291999505709167275498612204129022078215708655230715868334096831066647026090948815844561521394300406227975256511645757005861650380217688320869861936640547725554445591229017357256043069433053576346263688596942621331265452269572045259452398359399484909641807819377438963504910975489326825860888994956120083414806818639633855676805276479008746892927032690466104641473984728415591489901807227576880152461279026419362601011058998698444908731766481291249300675316104237330118314491841621846668238279800957325641377752487440304101900137401493285261061863535690897458783096285507500583006172514063099978763947036022649563307292518021370641426702168764640961244023391858804076619517784369743664527828023702447083267036447144067473489550445536604548110983163996595609147632680592974200424367386585617871256893041660930920839463667329077012761709379352416693302810572443096548160060991418575312370607683522791943773571536814469185541104941855761871903184880360645864830180205449231326152860213878293402622707789852440184580346367786495793580315676659519979010208792549047221154354463155420204772668633623145757799517525192458655317822651127265939879471502093550805082230598876235817416031637377953100238852899189438727828565404004922170858081800499314196584361648998604497961536843364288468583027297216362103768320389601543990762228916091413009632325489299537423304390301620257577408043858821766200900791399099042239658866890687770333815473052480264305493728796800799485233450212045314499510725925204588482044397297060049518470393417698537202178017361773689862643951248106447983744256309641748670517286385231595027449330251512626119096691216287809353530961749477817733827769270474150620356845313762453970978224633416829567994888023547774764797409373502753329505004579494340664139055914534628834317521873901530001914602527818087786063478791129407473871487518571003752915715717005638346441682419704402046234540450830875510574415474730092449188542085266616520775144196371612300726243344131996225815601541266520555816010280319134048300169674125741564094211293905351829264364913573650112493446756540329552479442656484502325548894349326166900023998587611528956323945812579209191215397177418812578754681230126898059533911511502885484296960893311345653114122817985685038854257967153942037021363105125276192158834444009970515228753375613827171024325725235052678200234874039010424762673996113796699892666665922339803499742484551293887676190042441231992821475984839537109913457122984416332196914666628165580784823719337914731843302560748402944242750950990038172845373599672011149659452102665207847624625387998788523770768012749990189675240070671379798898164607153381659374523173592732564075315078101389087711672287981791289002317956808652207454983519655597606920110972525920636317521039603828114692457873859581480607958380450430850696708304169411365479065953347589509512901633502940941278057743795334478717280745614041626178601798815369842582383288917127731260669783826117578012358269375322498433957977983147574662667481426878059280961802606413948044061910031486269652170648253075299791935114105438490872004391700812298627593614832956787561356545744895757138372745644578122541059128169873019495717410703669690482418292405265059781412816099194740368630704856837670621374522080625136948600082991082754061448815958563497423384829569586377766743716137398762417566469261865929183793860059376956344283289207849649400928374728417978039980540353950843266068965421868405571200224240178193974045927819317905273384621436752807954940196148380272386050211829727115300379177304283700768362191230304640943869302698041626255538203122493411867723676731362029368314440568253822734521555487735377357926211467632456158735584597233941469787553666908505436183098089791726200689393125684413590071751689186185166618404559847526816640129152546004259368737674905280378539512790790367224612198657711686428062614455171486357616188102911839589383472252240123520604895999531768150218219394487703688986972826686074756204870817397228481306846595936157328436918369623933829989130911662813726289248313017205336271140118911351899072318673379449867591576024163994705638211682670656478303548893983830736478928843946761387363142482127845194623531934237660600340455880418700988930309009872470057374284193359014905547197549777006095129401019984543191440519463455893256551614785532588296596089546480123502006854686164708439120790350560511553034039726860239548041345835932290871471078512076552218087464368456933408694224419885943756482954450860998995526601581991530952777017709371749602083100887044956759744076715352477347240745602104951327599367655802401570477116735824093729116418274180762376180711510044757829086911393525303900317159051260513690209457942892157547937714791647947746814088971843015373073714648524365605996087176538770840519052103277333116910681767182882011857440750343160720203505901530291749162535651298823661217515067816161751506430929531133335548546793683267122476766911227012347645035062267619277323320498577246605785299109883967321906697013738234861701273506239168185306134446096816806731301538345039448652615981789759266028102952646385437221443767311676400797013007687662456655396284205927678773307947102246395876527774376063713014996595379006516846435709445758831269518521234105863660132054743514043542053334402544162406714879858975354800747961012545410558071082668663057715237990970115069198085375535071310466039590418445177794009443497542428902973053000599528004283315078481591672018858333607042848022194785235272833821877119085380211624376605313931441111548348438657726511051407599253190468919779231078955342612642801086350706254324470047659395952654998983697228050108679634923001113227773563100282358229106422692758352421796900010567401178204885532321695968035799617149869765675446628746763791458804059094310084253792976971383498465278266604293522322309446861833502888921138097555031855592912515535241932738291618681997947818047598702992855111326821084299126956075331487154479501518342896316119995708459012122595233202818631653681422975304423005361288860020969883870182630231473278524614925084345751316672291068991891333273220036802878484034391301687181201832477313407154476469847803471523194664309125528078324190328159524201208881269916455517001605699199817982145413279420103475906528385561588502346162070067522091974837555527823757703669526860586207665538066880130086998948246166243649113085447737945319154013980282852355477047672238020998061541945442356112563903641074105467718143501323929522017722853336998672167038878864007336339115822435154525696056562453120198239719464773292781336876127930696867883198635087822885128944377175677232120374986979287822609099833214487475437087595769532340167887948150692522455717246719571039824046277069345982181487471724304428836458630878616841070621337329463491130743163842935282228995967816006992103111959152777408757450803724065006509121778933381808113001472419455213804021978863186430962156864193279392080838723638754483739398816293991800723144293918925223108846847976082049171409133441843695267809934767623743342961979787631231312901805147679364101080340857554264902221053775208321431789623317175344374096694261043736090312450876812418015136577975050355582975482559368351176024633889262743119685399055206702577699851158938978308279304679643001201434577213364165350493875778473424516298964557292195907622834189777290534293561486686071116266579964945530816949840170260885340672189893458521722287560197006797513807742008348877090973817565361074882684670844043758464346265163422963954828851916943515251252451943005648223373822937691653559349251214600884627868530460786169514840839877066860839985568553963866967177802163245203615339861503542266981157465955216920054531922693085722971223836836825933402208298058218823718394786954018409716169544463517856596400551928711884108451099147688416052216057033081290428372125342863082968904226435459352345051722938027024153224163024497144496192533798539890221136071621183363752383601765961454553737457633565581267650237807460374144600467105558090402446052532066725202956341666861778772662665333996759860256182472362826693047841899742718810975814687521660858581453296111053282156072552927966237027362475787623069694073750510555408572777280617776869635923550664704038169860143167478028759067475586026711172373213008690896626771315335391659612746104961354629992438531577370946509478682988870297445973945199138744978150926189942907147295141742771981635941654586210551623803061635237642555871729185265424535251960230923018132936001920974760894369446328385819159348130501945983697506612765359285683383250250701595198469723055781183692933131414567925438884730493422714261278676770576953986152059955092590582534165385199732966938004730836283785674852075360268229625481119006389552615338557608303783979076558719155280365958846230832012999063750189151843856447970824584116345703572500209259039439228104190502165108911619254966595009269689417836695485292133252759895530231660821742400941694146698286624596246275346926117995290268210256380243236514903847885910034838004769112851427709030457872869194148565403246689647068355208723815114636168110543433092209302641579079237978444067804370156697755376720083226373851223429756269203186224337635078440209399814279784618496336583829040459160741229463866845588304064057859823485022000230549694584077509629529255943739058764199905927213652195710891652170272113500351554672726642745998577032938481210062501659646288463671726671735305326346834468354045183343392346151751595044583673388755037811373428448473091078880081108347509065924797078746879616079702842355678972870862166019086069026974841874853327862772255108146509345430472015439084546322846613440444087277064815950401599171876189457279821775257116513002042267324705648009970992992216249302770935553684059689049912734648622584072715357669128770435540161401167644986457355960941531012845918334743015238273806247739457566985532497513576815550458321316572666404460587699453895363907466452060317778848580986720217485522378092240725875543524050773342497153731149126666242002016289856885974736308345929824788542373271226389597781900442264924025675480180619100183756813103279163446020274232355664199356018213818303008364930957348787343149476650366445695200024865850871620351656273026389305713927831166964327384231669238338457868697497818610059946508036862587489388565924083849713386442004732512566137129333775616645493036376995767087449701126143280689545796060416402255623141408300439231540558141121852527688612309082340449151247319231888046178377022322654833798210651741111825243813431320912382903330940232249947923283509440490218012277198145731205882805820945942108789078285319001229108540275199764556400136391058290933936639342224172372010947650199833805715098023490457865597887905310681011564863040589353165092909300888044728050246475027161502061507509416706337696703677806168007785556917491675728014742665977571970596053579964118266285428323103296438761438673582258017681287200315966231223227479362023556950582674407378749963076505199120198712853150015220793715503307882449187463505643133846210989884573798958745715722614319658219407472650540319033076677665509703050394354681210077060463087240124736455924215939226017279903163535955273745113218978197757599897768125237543736823801116803398430422251679063001624365271231558259312301186127944686918251018034291289936678805748555274995004899898779502416548497496254209167797135015979320915077297840169916913751942773551054728511431609591417893958057652322246313197945840058446576915167245074079060744073303374021456308381000429315010954504973809624484747452947758737321478832632867675757324057190612667423612380873701543747092638568696893837225749776170393738179413958191327022593297651892889867901843112999105159831929900929286578951814324608216545552159602695389777152131922477583327904850823917566287701321361878858529403480824687655740303621887573886930320686124273627446358503444045120917601430006149873894361862385867995830598655209055968528289546283453087031943438679390443321509223444779416649574848797400501240546922152994327919977429971939126821705968142802571193088860522482812626993099586170246743302836442928109147021911058421586983138431323098220875941248636344175797809066393958396905453039104550397777774843048908160526472109172035182215219271944661866337641580892188533926260142597213258814091292291287775142927010170523225087789479791923019956888311046422133683102582460528291450844347205663646038175689231673088672476476342802433826278779442386275050237786032125550538899956794142268418405572696098424707224546962255086515220135611585146959570381261111126379926568638688487738522863277330150047933956404963160234484504102709479253533121278639798360649036266416360634117329987445670159673968182491460724299935105125445797029448291977603945827167544747625341605831253990590186233687481207081299559272111347207330833697842581417973669657414362920164505965044027298610456412406338178135791049543253318117020721461570130804550771902925258087464559203680241246935448943055207502119631285873742509523582450204168681959662665227687807805299057324027701748044776706357892264822204717619198307059426837947800467238350649058529055123674923713286927336354141744890831204433768237046838753877405966730862397989287298631972560994990803067353128339939403601447571509549013238853664854699285334696493951928240267566414545685899014525654654231702816932347313761197355922731446967100249882862686531429176663685414224896855511606683564913712164877582175597780627424524684698619973813191435733375796169863508083715689718799544714912271411159321321432497909552095762577861472938659791430627247099534357037046856549562594239258309605660245250755143752809751312104493853013971809226660828665284061715008316760602591400667804335597937238516455310744334276877568492653242380650102914671545606675627810989672705375440730058873471990479194066156467885400085046442635418263635908867807847620747304462354659923192392632283677035839417779163520929700765696303024186052526582151270234901010106644207852950264056922033672739503068712070843832198041289971066766195246731996586197677538005913939197570951466188112709526022932632747405739221687665371311254539548993418034720870448169658186532391848336684469654578707809199466297131740728788122623902668916724821859250163703201838279623220140736651604189919338915700364497039083272008649065764842297267774074003940437158296008881851236479380851273373691151814518105361674080089430230197001974977069292490723890714572106734464223512131018311785869596123676266988255322349896848512098415890742718237122376872823085000782087607133221208633043071908719332291625606482349178750680147990225851237146380881550108499310412962371385437685172333711657610953947191281074737457338905665448371626825036966454608138500537951202328644197656132141395444950735568066801621275589380439726551123064162911366069001534921766416888604523793989864957517248039040303280547068568654633544605858901200458583646294756799554338717708260859750695949079992478637317568786566401616567150559224582536535160869842415841875781974321446700167299786480347168187389048282193289625027765366676071619260469218018098384992412940478973749221609720946274909470808637245249510469944104082789169696114403187097978244809372670759592973996472630305425984713232935846423294940152836059656067163899230071126942641284836835458739742077693238651515072077949051858933470420336894813015500100850582598799499891293254940318241844753749931391792352817637221256517921891353365642113238838570263014519348766474447662415509289544541727190276567412592665741220994393476147126954937461031191291215225660685014113043665092933628812572581682370302691852438591954740085531715870586384609588339019088745248036259736196432079171137486292526299492266256764066089096242180110231745773948975064695727594367539039738081075751374817522672357035655114737480016704976421645758757164903620594597986661679679256885767014744160235831452170054132701834723103379573300951691603642452091752689204499165152278822360536710285301395569141670111157126857815312802122129178908658240128692798319233137280222061615979097345105248471660446608642259398212961655894351466748434577446620898360582300847621592236891007696324235366277240457381127954501798885738816328696287997371432256715491039253126719209102080045446617981425149320010021693751764734358965791408318953801400489056853209932379473226833157634526505272255688632553439492776256801798010044419536158195717003714812557227638757781679702422144585409806316547695241116341467190663912069654221160285113629829409928571891930188753111887488521223488077351690502351201098739453247561670206489773513941864921171807913850188662727804294046075226730503373542320491518085187842060613975909022341620675454629450135327475706662199660657964192325747608825509879962460486975441412431296162105295173194349182689876926726129453669438194305749495787546144186578306444643843160058811107388057904113105378070373398742557474393208372416780086104961067218802894979902851496019236144734842003839731273785699625349914266002044785347957356064467941456923222953826575226349818479489728812433000280606767325756470978836344590242942899195700244249696224933184847473810780183331332328433510662139884778438801043587465687816750492091810684310742778931187566918323399120143822535383213210228838869229567612852820125419661800035614732028907648996365244229398028175237277563961328445010045218510094435164762875089718560959596457169091783969374114457502055591456633709704979249556108914820717212187945780107883099919884650493738730914280713992524108612139589243764172864028034517866995857961924633170262055643413504740399721560968911969001227696241925218013995553024943629223312420276169336439742972694195748547837682393766044139334493383178452736801176004921289430715228538037014390402085658042033691010099340865763991880202693263079225186080770908360814326631377942669322386842811145354859394228902597903807985072599354770142833933843589835109427402314575751577437353812405475864575671903796012936201636059452346418891086077786744509879861269806346848606454126918740424578596327979668042068985523991222472472394327904632046335283285094687607780669033097820340389092171310657649164358202525956330275900104435268622294927038645626591298499324673637231230215676587173045017435509618028911788077603546492951566231011705964696177478537059823773574100314046448528512837509933786407974571901334639576702171525959086698797741670590880126281245208189639563256904244208583158753989484089914514008685356113345800865506680195400542509499699915437070129320491358192539699721382162268392522315722916980427658391041227592568180660592730357634404709802648579211307281619073618681353208694365492280124489921324286474051684397703801758759531507692466024005633821565557031557607151784654057849791431791194031785486695248850192313285225921374697201546405323462281616586375721945544973955026601437511452062552295344255437273360803328062229884341191624453318231862552436787594657601588100867020955438981511161491309609352254391670512818079548596478713868320653703165976143268209757557381119191494515941798944775672343597660693033396015533908974930568315686839251381555303692068689072341677128911766536598147953918656657399074146902919722872035431296032442331182284466398158626109680820536614880293870975887600424555581391512621899312549212059472647894845204706863514968378144382967046918355813124136605058907360780874211556858663221437169357863308441429508460579455800170532731293383797256940243172498192758089534595021312516439062067803122781715713386734415212769181190060280544363060749440055675658002355655926713799817630677185279080051098828305704661734861871722231833946249181395181420804643675127994148619828221394166025448676868388725460256526376394139258551263676836628355434303716175745202357492948792585595433631020353361374497565645762425123850239784701637812345664900697991802213419735489704975207113730734028111177378362831320201187430018400746627647840892290974950339358463390814310053133256708820824654118589877136229884303584949830610337957965266680550096164580923141086719472020959327427274499848704854138438760770090098377025019780317516399409927314100034353324741698307134358214705970113453472136586845875876710381475909759752647660423281999718446915992323214723763817720209323523328167663449896679984239847683438097513210388140636653472599571396042547104527094074769164334898346804066736283738350421092161869522510507881570010117861059737722941847663365057070302345494163837914946914557907142326105228759992683621293970275437470536740865802406891029182589279004726943993271571998016672681115594955358802009124110476785886040004283616116274035793366971099463302758027331412891461141483480164103910192170432646755191483600587278561575670010168348041890720155590323090851138662438742614954278095341959345451524585910106948468764039945748544657272612060931489329687429696953760977381501201002732811225780550043387323965020058350934853818197627222079498405947095850675304535170502678360354976874093500127745674814925854924511871553555656292342084511863532222401201552604782378392939687266332659757923476528192359122143336614048216072051647183423255908548164790246572166464482295303628479315589875776261357026725288816648021185762755303430510755396287948286913755424973316752371508007900805068948897453898564057054451839214484769746281759352102152926414934615269042761682425631912619789986994403621011193705458632822125369034331879405583859442944030931187589393230208710556332448432213517197918247740233658261288564219640477227548384588560515268078622676139249539418056557125188376290499939453100833252231602662402520029477550841493253580017429524433854751047980270692338229450248957449565536794201559297437728392640654284415185593988245560962670563090076308341057623837712950857963046220717069006276556673314929990317535044853374949849422488140149419389261127353904453137953417355849350594491625967639235995667643919107296903850528919048370430731173756170220119127384263229449327206625671051960923317736942713643996946568558414520817390904957308396287330489824742024648400241402076825494527540436946121446709487437940942449820077378312109036530789476686452666407572538480773004210143520021427178845979948833974821924702305988956534029903036920991369305714995047596332697350507077463495551222910862514197524937583369262501564275558373985619031955066191759675916390378340725308169409983713395817427345765491979116212146592472965767482038860237077782568378990441284429035548542675002969038905201527794405557146724700651398330386092653233806785454194522976730680249804230751529033462742166333381445270125893550318464654656507611680152940893699556622116565760905881021357949271822005168692138641835314122597652455290886033530406799845295086918392362866203249832763142964594967258954179601834337247183189622300771908892258863275922986970352280673948329980912722585892420121427759485334292903065647228028623554297429782939044641727918422031874676096796688866911979585483237357490881662045495061335938160395060434407831108378446567181560624568683442918289887849659748169237224642265742013756406544909501433416041870675123162753290658938774986192382141277708678497423336658531009220281085474848836212078025548675113744423110748596073522159293670293533801969914162761242522534620881437435293302206028866891353458368799445567254194280299525317948392262914104132901457754520510625475648803274650532186899543814390605786735075510370267204078933684679007654915004371079976352795719520212839229912524082040710503748502393601936867906982413235657393831896637658342334093080445641497966745644391195671479688356070399966248626966804902580154738906509810743400396557081524042954146240359924149945937721337025294918184344535778211656286082859169593707310426846807321610743182627183198418367209155773962956569861627862797823451563228525680868284922205563323413569033921447752617203750061501632206556175425080989574214684001940539402497123259513650842603638489731893435169789392346230350450284098683904884807139076477955752929520040837194769317626403881153216333497398151825212350282823510967237749028752325150409486830710249093838136013371426037049581159315963871783007427998708016537599129256726586024482096324594395932704109572361324037466408456162766677007075758833187329809524801549053460225685876048408944461507741581410191806333463123896423572917470165051185152440274555074113252417762819624997434662811367390886378003535550654545854796477614223780720684192429832397344461405646373564107862663862002985754979958358497924906758280135887487177709278346771356049177779684931123907534973468854155178967805552763137235542795261541374410411683315023437691554632348115723859003985337095578798869797025310962047596511079035275475237437478524800226600164847446756071209790034319103694156510878154585944897626417406246882145452640725248943045366462702430398347538442713766217179929104662501802090290632548772289754745793218581477001369973992111874252265132289349416443247138478813104141338737495196019979393147244938756388792953829080893039962375926014011737123412464065135922179711537899701813904345870364473780747098120777885652573476798060093588724884080322047832545120133045657209205722040368006942970528725821519420556816097076042804850950407636192591224875738224094397236371680417241483115694513990162544583925928143624162683345708548570926728979680993068981284980072945534437394544643387370613062814085702649974646700401485220920886253117421085599128077591314296650817874839131832979780913405401398573487040566368604073692566611437883496283595722463119432788167243200990607682825352184951664385933118854387817775193291818415601729448308894423642616734726030707945085974553264763248101182099452710627782364619276160134995169012957298087580801670246656245408047757682023493195279828405041603436976493546641463193814571918197787714421392940038927536032166230730147810593486044395701177302068324528579604661565140006068106949552281030686948384006573840104917211590700925070642514371615229251897348142580027708506558179278868257669712302506759093941674407207232477083622218652177129263399491558877247444532044830932509487282711753644398731418631156910533349887164618885799719056509085184850212795348537844103345194654267842307983933120169952146742444209564811483863449986228426011431031572784376689545067920219025270598147431274448559880681678886121269210753371019735637799694175865262583021818116443526538782947414936543153244066234629037795009010783095948261005766484307992491180700322794428680241080159501235886422924364212955378486662209802162127195803555534030302332425412887483263394754443193174960575105931615375361160370983372008100157142488419220600248116392457934526129994300496578754161470091589624227051204771056812331917425269647253611512706214013008098357636273793763254093306311340620034180418061189740606233461458106366247462158918486704990846642168430680629784736375471619842682705879203774807696714952343454093270078620935718996251857033941694759992542703957788634139495159779357834136383634827360536667539664065219222162763217501392661332837606871096808593345442881740559305990288995838109366257087340163240221201917608852017949625571416732285221974898960686308181721273139161800314105744572961178159659960602466289910832016443615246649618148224556809042626445231319494274780301613283200825524855320373810005924909812752757039600765055099605160444086869715489788056532282561492211319358526596029142036176460167099916227737461582059608013701860253138422566400955842731207736429328253504257383693192608845801830182492655123545403520849691453358806199243583442496265535923340756021611436282871332165882445119114016731396438781421785234734099680439375351617246698153091057444653368364444122024378022300804413547391458039619559813336145672020216279849288604544235499250737982431851720091808198924764142849801790021171587504051627938600255316435614538888621957801060401385776247512764830552555837125414662839016049205744847922887344242276225284466215149740652910647917511824712128154859229118192278450118603711724721580461516386099452332849591520745153543996032530492815586949668310508336856443326609481039653224304589239037021516534134088468395417143362505136874972332768710422737194903438715655497915754251492351083631930283695484967238647251120858221641356846906762314349206387176268752667454762676165505263803959148164797241129190795610665991917112953685374321903495041431866104905427443533384660456254627702814205381498803729175980493669614530169254063237161886710032467214643679830063093817283522649350068483048056185912899182567015993575851006906299974363587901813367109588713289135721453143485669575775063084575695536507731048773137006195504615509992929697748337101903312216581181188023560367874249322991372619472373938476049626235158020402559243935132775905448261902857458361843960905241534737858803268007564216309785687871412626140485374647521260295918803313169240990045784353120591195255551882084810922132061018008128845651752337605603013901243109499649641637637570001187204399335605758722674900379546319053015630869449007841587708393754050162741297472936222396705685281560292641624943632554861048407287643291297436311373266717059628061251449133461231837432883891984255760138586353061571547606310116119978409103059465953138051096143057495149485338762362508208974482489479541499945618939852174414452754304732204282847681684698763784274561776596774630563270252651132629336013370698523997971023766669248755486776430872549625427674240487427889052494870084602469001276385798469001659890365426242387226796863358672031109217980700471958502393865196546630643378066753993367647600416711310547602599179104022367021757008725018747668386221842800654855014170729646498140525476673158608633999345903794240009163162523976340015031497397746124423179851704650872811020027917659001959370064503152665922902616413545559578655148836682052247723577278089982294384081011325659618532217038042435588619918998011323615521778545587170982821013056191290179423077302427437642211105142812630801423517217406118248707010169953558805928212276182117416639531480547868370918100118942153176201193995113518260886507760476846093011914094337902958112266971457332431691252154373677366902262613290136585995159395698013972094824238635996841676021543640536788714800939197482685875666531212798359131452707565910469414608976496328463424549662763356976613471646615089393744525832784189865012146515322330946664171122353234896813614876395537422753851167399247078003812976499270239731452910799449995076901711266825549192409542088799032264599953396542987867063082076053784464719944707007520575511615473525280932952839963161288255894881168843616428903608379199645659686561556688255138108645595372781264719893466118369776274407692433584447344268788042875207880139946868643093030451940846791321225771410670993825014542465857455568148388333971693912084113331717687897088127292454636909549797313302676736260093162023742389980131386988293769421634258742934167199489435295674883407525918101088890299024756272017049371448732823993242152181502762010682461041174544880971138776247605809196445094417759466038779925498981869843457467550910630310070991753909191662889211308772550270340169005399388996500801583157629526056028341290350978096269190043071780271351118875309216533209276571440772281868291646341912294586278589653323627739167318851299032920629229265085739380765876286190058526883842345798709678175576584031763838129786109857615189549536937617734829441446701157147959931822418843599634395718852847609024802983380807669290241370580000069642223150614050577339051421770566121432182687086861285274075200247788630421753762168221271026210082971775729019280363595071034530549413835636111999062553045339778201438906693476963143693315474238264767265021574384104358602301027976317503346173911323396539528889277541909330941406528758516704185331430765368297007802271122870688809492654357383002923606131139024016854897647396460269950569028869900518323584960619064866419879955571663701924163239208305752710737751761084644447531815634578132276558793311527571018613328836315822110315331214424974725128910810910119034502659632542735479844958184833384868855421916529413055327534709295195111276213229754571392777580804412192338183614178082549011019007536990173703170903522835459649054606674618274337421731509320459635842189419383987306408402925198789505571404508733344068269801570674819460719852228833494041861413456732990255075042690272722440392117537152495320040588626181473883763246264355420506278903312491948672941567044218430576226827878072014527101417930898656457328741026728557517224277327510965727654039922872376417682505631055950741486488689815664719290653366732180021110593641051325728263827545207351127918439382017962428727003271836897740087633318781445364319303083392033053186301367103577258136380439630952367168034243979822831547751343132843110309010904721695820684297371401223748537287137133588843001516886042102134332456857477153860439853641863662372932205908124356417610952604149638169879139783395656216297784341843697338624036329429115484832858167174373382924312159524316095299991814538085917380201217669593413485441864608243308800447558095711080646148645814889259558705618505397227068983343406837378320225802764343487155037454112677477712620523929817568731811894361951486053906968738758749553526005711835787256860409450612579294409175223488923584887531923012691650832018110059148948616947690693242125842162333640622237106203563847033099578082343982041803008309546528368147820267752962689067659176893391299100089165692958558587132796003408991411264163241101735029356860212094797553393782247405275459329886888569488217323261197360913358714647469545962764878059044607057462768949853157419269769877786025011464687583976768637922894021628957182793287074204970473418769793815992860360883272648177343031574106641243332386570291228948573466808357307276123824073767080288341421118293597019250415880699605428329471911491224538134914250511322423877182519433625676623440733008639000734678832260566339476420965162279122984398942946747009053648848979175064753182643857024532130438672942303311380535128457501538094018920291124367067401935468272267565592778448575430290785531424422634650088559896733582622785497806911764492996453727123162851843001565928539866809120053499651971289359587151370563160253970759642324990287578516982960567066613596785986714367608020995791061746099330375426529359817056288930748608703584204487323740696166408800236786397515898685327148005769578007816444729703906338714844382489861466105745451115682422372352718213732563525595826723732469993169620343101798342913048451087190006464867268688485927144597907682640433133190027903554650011087819027552938449318932603179705464106854164912762139889129043698161895176382125255044157650641442331664151725482151574502449801315071159204882196426047592038079879564545970968485081338220707742002159188748039808899191108127331524061813112673935583879198679023455265164200942741604284467039296126074556777729990133786968383991796925506122808505319430969089025128779237044201938831467060917874260691476034025467438810995767450830648958887702864107398718855651564299096478671176980399204432514349969697727964655878317819271776406682783798582099091913185762725506726359247968980008832851208104868769995780979574001232961287008151213239636050190545545704101000532896060600116435432560236532231815615039514155430208150918476910701480667247845259975256740070707579668017425662018117765524028883278664795603571312626847005510288303741620213506891817555924341915013472031400904775342881460667686885709496326604640955093857438756810360250334558548572435499282665701032190947016432373977701225065791740570787958814099920336967274037791342617769212091749757346143980194453255424976724617352262351876133706838741215299140398452673792029540047272291804429649415302709467722110671809830697208281725169864454556546368687799025330114133257891275993443491645278668232107727902060468616855181095368011455634343122853738657707821967872676511001038267795003690211973651580074887564207492996033936695618306398181384608243104697391495514796269797856182395880627544408538917862258253498818667752352549469596498783148259539355958863618230509321658054087814671712718792988296200346668483806138111634353039529548368341803971537309838762633406145637994417133406986871247730147247901872548481671980887230267877728026889237876604574229077356994135200777855126188865208428806750728380933662767288236546963429086409731654435999813844306876958263457572821991400820095963618020039838946919960070091445196308283158065693517492862131499425691581816139738226516487160315637265182367859199048063226131365179503281860680659022424813978006264642939983181700721003827212023619197390700653081238724583324986991256948917666380865366721270848533751279145807706135941727325240447740211104645836207476748804774993328770579438615560545560256590464820432776693568966276314613965329105954110601033929733555797512516809009288918549490544039019432562369031749252618964435753336910601280797769519943840249858782828578704074208211265378967239422922422972523421666188818388748365353326771899140490031118076535984461676488332504251974331333274058165342388149847546865429194793509625076633328984722529998319329716678608289014254534840153334185578530819890628508947691950991819311811051603263819538711209050573332511457459469500103642082624482095156574259463374301662985668026800627771859170974141884172136624480137756616486321688637374267738470761556198213088382724248880472176415816121192777321682965862530606534818021107675464790195033311836220735985473467185775782218381956728867390437120697674053090038679213197000234827759533481019591009238401567355099266847876810448648529438392212424562960410710645122986057561002317880106157314143433055980043327774048394387177007714754405984091538331919752449097169857072609819807283687729018674595326584122072646041366172692162359870122210430136704386120341378574949736013242091014079444787504255818570818132647532983594804592217501908976858453614261638019933084389152254634850857210934715683108121445239076172329043270129030289612353097977256775011400604758408853213852641435936171686573460049634672949021349799647817560392175854054683023111476754107054495820181445875869378451085251473248077611532355135085106038431211299467729275832582079647412212585385226358813088182772306507379217140706904785540803878591651445068917391777221963520884889714057888561347235300893073353983483403621184445071723605077137534074248728388225021740319575491434674756190077484547382060833007868546461148769433071063531406922387265639647145550990428131729822090745094853025231228340056428237183229665490928992120432298577421480006690189472968556291095142820678674532883126571072403594965348656289600292601261048700748903697953979577573440580560770711786565683570909361976848642226337146578596103306756003948520412577890907504279487732826601075661328271513445633969792463703219197984976685618351553060010792572170100901895973050378178336347032885207376893172542640126286717087450069279090619777308970728733167854450296887862138606388575769571825676804100983095413722967465214280646467681970212250016434275471977407709817295380598801521904659686706548065098186702605852214310323431497499561150804969245785285108653651615753093639815636085141315548115681646836058563045020573621085222183840400253168198987170910357540498843744193795825261585209070555959525339748733963792907922371309059455244449669523873709912171995737633913599732953838947081497221991826670818539873326130464183068825238162983601902733789093695229518377681072001244920083240036797065948583784818806607316688749639891093184477335463281967040076045421361964445194966157718723059660846365318860062236814874087360772921136268388793375524636737689504264221537338218114749235505624339336020651591671620460158838519244340214236133412202455585981943013435382012686252300932741307309304967090237674350899828491974987287780655010191220255869419686470593208388327245273942102194228652832355449384720965020528530515182989146745942645934692600105202386887563224585568951709212732192709489230480727098563248628680312050004670527075051738393793584626084477891729389474683038855085601930069681371276489275768463975781081077729646783492021902753687709702768049082866212331428538060960494571250935728068723280944862781037755952113530291441512250714686556327029004333668357147835182731434504026146160268513470631493367836231331565465933737520894272648379570834838577330574194469550827335337132028381615005389282654005896078379394718923246412430393762003444493959687985699727869151819898412308533413666022365038539356205172787743411974279487301190703479322882253247409240188948936385922366556421422626676684272121289824870268932388808265852869568092579809829367933774629803109030402689017554469664306845737124494553803073026720560405638931988239262373002304792176980625890676822885464336801415753941985060334799978073864319245806278873862826163594609748849907736386553971338361918296767390946913063539314248470121866769695799320690630075927742986002117065840282845472508581735778392773391020390308187488343466109669531768437592053775216460187799555521242618276108350110733309279490328495046126496661816673420456271581746911535187082199681292450153248355974980323512694436393806357535692194316347694398050768410724855504104672543287903366962628779514224976309652201926664809704179939576685683877347531470766997935179698405586560355431644523148441516827847130485426798808689718954403048416646285226436626591534169221637548244561166136385903240735089780017229442346114593139568414747259943352733294076235473249789695491922825282746411026963408690900414235369823773415015635245017716175497247446139218488705094637587273027966391787189649304237452444151605169471523674999084179660415340285301692112861026454219523618652592188164036565471620120790662699653658005135869852392901508510645251679781310513104241250385620852965939390913438832877729789923399137509472370774540943844152905496677346972926763267507904644019629115734680510085578269428760881485721351132213112099261140976906376343257378575917455516444402825698423277923477970513109781140805136400274426360387381744433687288932676366442859917765004705880456982533310392574315184987816164246237985972580557591604059986689825041510596173442264968601885459253607732637480093055506500170214131684021638325071270101535969036695343250505155696406679467626622396008621932525605276562627675358339852826898460295136721265876464766815416246564470645595676557468866848478306276539541242271564225649348052239232119466775249654260497904222474761000425676781981022730549573546097950068867748155365003438520255975789113237337006925494141744919937776195841699135702886232277130689522274634775772984920026514996519236871131127036819010159478975114794757564978648369829118948151069653989618887861066288352348560537598853898213519903926851805473567671897933021726372524055269540465510544934090794712937570312633978282796074878815795609126593807059754297493702608407516277858855983621488295929831426198948974014358941917452500019296928848628021065078733585958685074810037974085950505237321438257331696822675663297646262466606036254815094254112408533523890838916461846855206475417852282999275524322698017433734064578851750674158954509913456437801343317375742813459523389608927278126621851673348369883073643984894078215640601696708612248600459198984676985528030687107601588481228550029661266758952432534338093088082704567790643190045795909849424103532824692989389575772452487972159167903441271542388764462557713923258951971069105694240470089932128411034886494681428575484508422006917758510167948999418715687207162210761061000074875913940176701269268402148752788225923105152233844922828837811203720377210972770418304575453103890640698764269966334662948667652220629739015873751302456263427218610591119838372451206143992913981923074380049875866172690796467101431820369398674990028211004436146328449575960549106948859994324273384062564687217483507380047943486486921091085185790595522751038450354727185286553284061766678865819775562971716439467402499336848304221512208162770242434766897911635745932946612276358622804330350511674237731608098925120353558192630543669916070557319186593243871138208238719342388779893205166031712929528924056621368089644580426795539018506501311174737745577183785624028794394412237415420911669027897666483852057580591510652847119693856912413401842577513399713895583033282598508958879003034448833708802323804510027612953553039276374176726668701596932636663002907219159330597396133871589370388550642305536174261293720033830502095016359224927355064563669247550028127682917843795390413316470484487737247133278883911509635766693541947747783020755445889679556919709222443375476019725894326206226041553793425312866584422630321849294636653691847451297564256212191965838476787890122568910261236849651356228686120034740962622328704666338009422436598929637640725407075091438664925043766598586917168688570083736682916743901824231457039703364245087869143935098890513400110797090070266138244453134530741315218723620732923080102695198845807004414818858814850922572419288875350164670979439533199499227850903405373893719903857553507107846592530799561335453807041801979050349804033619336648286952334384714153989177439906178178111076836895095806142108445277221721047341563711543601688984479258753241689140223019698040521906060431731710098615727569336875293002346313194568652442659281440636200446373981842418709263763454539233049809963859304974743238381937212095425771127364452420027099661999309704791813854800835424036475197973333280964768057508407189405894072744174730785884593091605846884876416775615837658648762053551012558011856362799587407129427319736253978240539851722554400952412764418231046936302334234122632644306906669594143814737096039894027792623794297593640500577915913943696203963369052495542914803903100164184069066240796257570645058900804704636841985506289164416657345223350319045298895315658477439020364731643359113411901977885310830035199880155057403264207703710666835525586938605815520938634380796544631019748202912782330117055924583093989752263572238947620831101311825268188074667118727564880114619705091607734198529597728907518047839607051497011259332800720479517658587260398684783336221539212544390167546733623293699997803876316486770429985626477526112785979247348413598420482391580134952043947322024072772524430579412165773694834410600635427325898766138694054317543142840473749851608489386118712399787853672627041246446768712891156171304051170808308394279776688293454118238316391603754321916143940831450566696996973019124390061236203569521581256241389081993251461697862632065144767336867333634706259783237924956974302132586534140540490816189854703673452071018248801177962123432371092898621893297108737638672589557935177193925135463610603172653989112996107135849983039895778834644037530620109200229330564838144004199282920807339859256923218194814060643563888677846685352956706607954628834636018150203834267753502262833264631492072833040392360875570825030645695242970853341177460655124404696729645029546509833575937877971808041276556843818672377350932207500416639953607456039091319207172739395527870029641072751445849632838258316849513551434366445045209668552909556488555060624986707641404520480491070943076486702542618688646621677157809237553080408305324983653904071640779920452959350925291497254550837432901290149423918000483596386879598596789926025816651553513764269850567779634448061457396615689511205305614334620906089905978285967858073026098659920489558824729517568060553739372271460923106490497988419820707338425504953828526036353706542015861129737089689363452311608498128043472224586019120971565740384669464593942682021963497671337574509301128822933457367103067711009626863642552481132698463868440345959901206660819677953160987524657585158981950547057540308000590195931200021272304961240156961776491710696193634092301354509821718078254640903885673260021658866823240980295791450324540548575443867939975120960949961567635609963078124579768663970783602210230831675262767595931143078150788150492566043235093864912622817929226233343846515237456325666484016077291526524479218117561736570373529929225332351638933383661410660105107808416096044776835576511443843399615650130033292540365108362051858065852173108345748211252799853341313383688185671483393825587060417111452874543143818940313265379206755781189106246116849808979816311187746405164065892468763288523039993527352560684044493226024372210604641257889175555710966242530313610081846983365028875399787490137712599515449223564639793486219762652032336078883860093173503352898786242307951468604513801319054088813798009276667189513468735676977773946077130225382283513018657365275762360622708059589517883669999418263472459611254034598213023165566972152969509989336681699492091231675879868538621384379127935982759959299892285668187186868042806648628502060497551638256703862423111301851803787075623177576232205105135350612546114989767861240225912845943412563548205817556080864805636503146628248704680214954586134709417482957655026002500656055405241424182327658390590202854260626665470307404711503341083979646272509846392260227739271971474410766476724445946448238301925637444231626197272681207121559367768932255250692483806386800209443695861529037657398195049867702636355121906884053290026360736022412548989962291577382471008027755182205010431807701328861566802100987166920431400030146554581846814077148389708311166939711877394625985961371181694847878220480915896591950229649166274784981107914202549945183979682289377163639620695516115057130280748124292518776918412279760618474703160144287893884174588482763465184776650253494623697459659603542340581732067574821629862930610717059449556565299242599585829931678753955660170942898277429056933913234547550144460957334034496465803464848939170739829981211936409110314214922027826908676619694672393313411843929714390916676981220044401902887359167941783172424476502442978808422567639893813637656816875840889878211346384511086759043611608914822096740282302288285215128238422998023798519944551153405148895527247723446278842372219081919593959116059101624303968789477851015266123211100014602092879269994364193502694153960235843652858091126213964265748624767646657566922389120164071261630172756635340630343320448345718372666853220908512574781975712139121802723247704815118099127484421847143656440342151378630764646165758412608160579684762548560202330461588880678111455862159247429505126103056643311848823741005704146600742583919002188352514071945378857877910844086694539810816840886729217762832913922174191623211459344080026005105397942502958799045456739347222700001472445571934316194971510214166529217363184515610867610527100270316441264606539561116298895086171680213925718614331562904329965116501729891214048049805270693625338817390408701747826904125132986251163163180269941769366580391001500967126879330825316776015622550802003319052383612992142967718208162223094148448888015048803245922005354788084414132848260273183998659867591208650134676832488079047298064604869825663229506841131903044265704921367829400554603137466766726074039088176634521264906929215287622073430432675162452570831438793970768838677298521465444181073502373579408413449816489558960274696708097725869108350621738826413533115946588261238442128147241916310828120065104722740403628133165406945188495421394305585922768983370370454469560821983765048029847345326524306139279516962934292601584243664856470518011205757853850482210507471063367615986716212843298333257848065255882330217057457832439667351156877097075132958671165120201534889993574344537551463451849758538529582980773345955536215291838522757832699281051658605714032777077547347767035498925035349333535748256173963988011849658744405330690721623976897240176393622655112782924608282232071105571221250459046704527280539460951988089181792847246763172299867919031989880310768186291692976907980988536094812801043204986461901412787582383027825083322626677720461345557213445352080426984707660066916918886236771320665786707797661061382105775142867365569537885043505462411975518035360210536777328567551721226188127582936897155746306041077806746129498510988055997057439028610987511822035422825017044798640255601080988646559684497176708505030988272358002578616675730791071773876669576428456826903576231142719833085480388114301472996164380866335405426492851728445416382445456519279044587644274797908062322820569472508520731770293445882616137167917347272313528818249222743150714993569522060264835923413993459550873667547372331856311000748144692700697448299346439844367410065623257579092050439243272898894073822102021418537404538351899008791501794898398751706913167724923254906552172650611394792465992802965742016478437264869699838119587012094359081073039358173882035854670403211179686134699677693483042769373141719576137033045975641941616558623911276184617082083947767933953949761906807602383344298058967882661772299482167135295805365359918310349829425005194888389953959609981333495809868721511584048938439623959848554620572040041094132632742729948299710636861810552531341513426882881404576000120004558616259487793241980440096280770949801707778898926923746768453309439480034818320991884735398777843863094790049718346865718893073263290417990949766673218118118711543257344752128331421359793010814560560759948074653242904150232485282827505887487144954677820599388255041611277836454625563792399825242302674844639497237170840530311934508612284780449079074097134881328086118484398269219415505735260703468544564725472311913426187097200853416061587451214623667661215720437998300722295573879953655988195989238813506022004126004656844875804815109808269839386359657254570550011125807480804509812799308409111587208830734091918111363768322357911443163296848050845104136661143150099180783717523952408022794275980268388921596478924957061796481439580588453144353626507802972783376924758954164057653558638918077095553759905389251819975252377405312035436914428164592005017661615409769031639279669954316640080819181113541220326901359253012144678788179638014326043558308839558633495065271397009193184611439160014321456378129083594074757712651146114411421460129582185124728029717455522702524703669372358985424134001943919715860994253974589751339136833075533836405538821153595180071736347549071488133583201217692129174032990418559775694593294155875941696415394041341706966767511128100698961629125886818288015635104682542181916757014464332144137918902656349689952344347446154711067115716446320408773453673659418995857160065355812760021937585596083627941386085178864317358142725528350683778362662570511052952497056920584381679716441039187433840090933119966652230053804666998070882054360050825314359493654154556576303644812588881992306284530359156543129447224753439412663636467077897432712842672907679802532292897856187517689310982552613257656904122636887807720642150070869772259524483310550700768786850228305263037610616183855237376706455428943088716013786705994345529276984836504506419936306432425646635193762124348369770434705627313061048143668699854687353193770258874507873538941460224785727998582016686289608828876833498938943157773601004208641877511446314064272950093604251394061384843832998114461526861559074708569266491338717817646607060176125742249736431051647983402184563415190199282880531365320266152085613208779351679831823809876874736310136651098165981877480777873917995744190122604277930181399483971524114528344548823124400732058381751777303016383578102368433228011022160235673706429527033183567587674821911889914758912450646939485625407239948335313931827276083734928020110997448977278322259664792911798826893140382359166430444260649783442733600237705768380235102152899419790815327138834755204651300911652699667824780645162179351285090183581842213936312210558008523267391783243390245815997168374321499008490623556936954477781514893334934840950334719950584122560680209062963482931966079472619615288654613211609261316879651567967234877893676917032896650764626606772505521051931350375655469003493658731275636117170739437213913198252588284444865985868007020367525164079334848595956711055722484050758727724227341122871439629858411576776205831605742834614040003175641773752793211303630331550914735686796706620783849734516407678279396176141430225002036822910932456714348807891625215652914177380001301900581862874295086155080197510652036131420063075629135846437782286538816395250177096780657608747471863027296471801175385820026147002380877656439900830232871209292319325320648384077652441212910627139061894424791182691705282982961536295476062178064002842744088277033435809516407030185818102637823658579200101007828029751575871513361770036098368288971327920956213096464153043629261762270733544496942349473704893114514039199358455166479244148914443230554017907959696405822011563817944178758886353854599911599252275637300901893146328777698924665075455228882634213775282853884112794499357585723392741007901596027143300893627208250534140073029238302244638837475713973260548357411623072702559847474370668992503465796923295538489662067398964817897075620499320857273927366399553705182509162318097151370339392168249533620907257756145013447130424402664836292641615858046428926203050968094970767493402711444006664103304169461009507986689302230421299580321863973072986441026058278092851115152635529167902249467883878232224862613107142545759735818436328347220864176395822672120883667088439099420922341484432572379288275130042586408405988277977234232104430590365950023176196538397652709374538266124071852524724628810935730205944051045150676079572283533530158377578565784303410404530111712656419671944710159698314763503108576763716243711879601392546096821734894167165423221547668850437087244028404165671807247392444181148248896925194740688095379022793651709350899521956441873911481524761664520878605776565614391748098832990010954136509595281002542582519418919116964696519114269260087577274384959792932588556839159847455886051941856898688847148798543966172264411047355598556177117140463225260976414845125223321453472083181323472874111838698227918646053468457653842428712123935542595534130288685658055256378512484109080206641951424679464899177866777549654125465620871862541072815107532709936988056526133444390987084198265446376189448991312192705712425348501017036120862863930887050970104741826923398502729060592797077992187958407277968376433525430206729380844033112648070673379621046160309727622108527016455023825991362698371004286223932275145381526143192288570749074608893145380164616352362990225288702989826839837551002615160886613411106662976289756146915019853841780782426224658916531452891158112472812247161660850962563333562043136129382962739499946411138687061859104512780614226357266819928058316783209417884960523103407114277381722051562398577478521147534438729932095104496844769506381107666024965476237886393069809817440374454098369816453609134347464019363300666070979913895185347811975087964467258406368824660892802296099113760850232582071960689192169824927060952820126143604646756394602870920093926484268725263002789763735999020496911057849338582362593873507355346945923947963143031903638737696801547683859741649255453966846298955059159586997387031475635885565696961550149338393432699320243084483317766908181864269424078455883038260371003355630218855293617717566346979771549052533184120353991027895479981700583026018521297157502856035355529129191179585269587297223209289297221328532405037090813179807477255121409306503731363898488371803688512408007829800170550822079704936040645222099296953217390943702425828592746646529088475847660675986175640817929607366825302183376732281586920995712311445434492850751537836205257623058140028923615141989391851110876152050740329422100526583110183381796361210364721164105688714611944330945228499099996310185066761434584743196146079684589798676552467157155045712134361710777574120694968672605819066850797956882911608540550542825653016346964485566827809054289605001564866333145251444114074179087316249047130263725830641627042819006817273201977225135154202423576656167855589612708051679634692851234812385981401523262502189420861892984123526073660700127562760585714771806215069025732736424567541666211975519536278569934084359173522014723251351505875574863855222093143057546492336858210902624185669541633126625848943800208105666152806892860435096724982608077542592378292422039898499495906843706244384704938164350514065301259378690617180972948562280431636193685136286459277843418590260087342819013020557958248362284737263278869930377677848500433585792850796567554366765179831432839317866642430879613365725944596759523380397623666873456780602151698396286639771462116291597984791013849161246525151400389488052665071434388663643472187098422663025071018595720386827763865360574668590383535673707364903029147051354619621787403711986078080090915292590199657081685900017101486405326887324414468842118801185846212955066948211017177570356858653979926797796849211087116546969296771056412306558155469167437209919822989223354173893722312577228570714113887822983774279924078211326114363034751209050406100320446773592095397252148345002907519996238422792351998270052149453340400931151128848831572493355846585049710780084924774026713091557262308675615854795345914133367630059407166103314269252925013555809098127814658301289416935115058217333855522590703309541312980927564137448114450430632164248195806797985111495068743575341540624515576515556738707587728579847775375603262930980943141516797713270812417094656720555095564920329636970475761196745773831740620727980868703606974086596668840270746027077485247933410699522086266579489916540884362045226099684574444537573892430349350897841300653564615536601403022683783266245267407042832432205349424821813633237218839183265814849860016012431736409087747027793531542160847205483516969907774345685443225935270817829154236991468660330906200927110408220581971482179739892000996799364626582616263679802993408265201749669259341951611566109522436448939786646257977653625942809621397151831997529309562639042486971903655988613730404261018356373929509246795151659867496506810080425268815997528155942202999726317331281755400826699398823731481954150413477950156862642909182087648892963512518111954485519665322479232906139330702695311954759998617370237035506236233841783724980666383591093653646762049711108713606786240438239507669311354666268718953135752446396897454633148490034357486769306096096035567613304993735852248462455087002997339840037762004746996379247037178943855340785691108984680201019287464628480597068506360166387440963996100662121899730775192548941316683322869469526411711601158188547438299478868174099565030249016228826736900927549171380530120830795353894646162717660306184238550984639625160412144985032910714443205949209849161876527871353899548102636513748276310658724149928878047917688941017216906359474637569384550423564042622141823742940516961420920973286370288349486890826229228634240417983897706049429454112983953177512724846125752419525983717534383227802186712657544296648230129909560026977903348866081866512062808290406484317306446515212936673500953861756728506153186201042987944320708452698064336920413150950452550888711127454481711921326438212852441131214051863897746324575647179503476125402395154423732586080131523980729443895356883978555956811064644558490210342049902992946454039574811410018899181373649503039040362964932988224711864221826241079004821566589462574575103046846249761766461157278865416776947351025064809708946441908417203429649895664963997204055047038334463396250384648859007131731188931271554758515067158523690696522982000896359177968730402155564712755981850074768043021719954932455730667070987431155704107738273968300093712675361794488749791548685355099233416587412266209761924123801092644611749484325656281136413175370868607600964762632907351232387182228586126997458137337486531322077818187016040479724101675737653643617159127148090673924881428650680720629522061943079968908129233313101296271738674032296977234370042845662694211263705095885025292435053347345849531676887813404455209546910288295165581882657211731136389253886811303593052778353635773177600379476763253147673412881045076158187656290367690097610969132214962649755050530427022867005433352348390368207371056642024009186588043392956378401086334211119476017955623821952340968576059457520285390227300812512453864086960832381264344597660584767855959711426556977252853115500052298311763479452681937850263244528752450550530789480853336280094790538013349222010774095616973123742301382209471395899892828946531768462524669146451289952405219214341303520192748513554424833399386509183121872381457995681600425216484867631192187682817664200524847934492705382447900973680036049873253927591658750712404658869154745604065027061217646178225217168572399330115368861520730223175259445383444408304176828157183812961001588410011626494405829279180451041392702649838018218329310869452761238282946474509400991890497011034297994626623516622931590290917733904482334711921036801136705627441872506138898689699096911602819534332558387215350514341562066282725392355435783375619789363569930895744981247020136207015238777531098389724310978450104082875663883789540731045510216857913749607751236083974881472008633996821115205857488261640391166435526669316189654799128801555464975173988787597692464269844849818770795489774095213302293347013730750914908458883898148502254024805451347058732995269570632197749100443688126677631295906168473912977262926749482187250314612601111580122928640139004595960814803043785682212684322092947437479546818383086509136134054828290411591904976515623576765082867568756222931707123023946425044086182654046459475837033846903158262905073439434158519315420537496789502599733752332799323615374048417067006532321271938480560648092469433024016426962946827538854418587780584931349500380825936100412541011570888833472552054588037485426049047399655320342641302267602558644218643791237280260657185162875733557779634944716441547305548498323355877106447465605831263633196225282494660346198953145413948349018058710549905577761662815729738050001807756205485000242894979677499163673829591419896428285721696674875420532249369001402123257302854166180993565905062184531545345511964352834049363566855428110800950504702069078721003276033393926749498293297378816016459947862854144981806729159222507219994762493977164114864769417539883041537890111213396291411987599604812075597235256965616967561824817110190992441770210552458621468710601549655137713330346103288099496333555652176045878135692448689416830893067739054130576234732652677803560842755401565799266280535212992004939977117699376576641644484575009665654659429629135101086722137251817286464202558676378260949458982355287279503493055666597960487880274972573018498243755707735791835863311049142769756540461270099466417303733432434026036307827090030812564101817787283194488282402744157558344116678654440033338890075748554379320819720665140485260910542929061540792007284306359596904659206765244506113137020847184904066014157531966742979117636235615504343847662341315071733472718183927749148943463807448554695008753105767687537763355596321851710080915360299198078395089815736782414111540010015399831542670159681731108880456460255786812453853449499445777073756108442545277490753342978686225487569006158543121731139762417255900952373054435191747225773887641581682335570926629599619685255683438579548097792489213468221842320686623502291050343650251124165613077005202816251275065472883989189145842366106157593853654499734774760678057679100989858762527478882089197508431741216175651750703932960800278283134620749763634354899105165446016601655553824230695025802356559543081662210153512199099197767683758686805201985694161851791307528421432892217067849519582177054976776674523105655616000527317914008067269888663019073805764276071055959208257422078179834326163868440832691573193754562825564518949487836329074601383789230124484614371149432996002725436967070882586570029633332842729589420612994417401230758655043508871660824019764880052646300506658661280019033935050046556532164290430639479036748427845399925023759163879611416324157718263206782283616574774746974778949772820052692600988046501323408811834489472603977683298323235534354071444554198689227055791999317112185002881263956808724279766903147443387648822656656909964481337570407638387990133465480817727351216219156458586209023026418846156623104513291537436156993527873804317946013210791787745775549757082855202093114771685743520913037296983754604760479326403284900704442981914438424932518357779251253182346571814461632087020081176426775958774662131336594539315860473844375284657009461380099782456007632439493990107746927755903823467475108829199374117197102541246780556143987392810060295171118735766509519450145008171651313231033850338367142281453290554790434916328938128925546780578210566246042066732977746504078394194689357035322016392735538678444167922374915856437852127459313362564450692085972414643937002097199933264835306525943015975933893551273604463304005249132582051373403947813562607253529048112543986656312073647535614657475171168338654523341144275243283367796879717107538823665210091307144715209060504195366914420613574206328740806140287131990087440861367131763743151290264158069233931576690930855342112549092913517090601342092348021733103765933098735055473608109156563066476545531215325266148946114269278971727163553371440214085489290949394699806822578318388877452752125610281030609358633492131621616569761782712573053617410558926705637618113155497407341155866005909274899770628428716712032760177394440881112840324615107720743407895007227104592212628301609584862383642104630303151751739171601360079841402650489801558962809934022323078271066853698589684916207784053598643929616877133681028384231071099799223095146886946227779513198451497268834436041803201545549952721466989004762595178570245577567714855041908691248561338470421248863161109233732826653869838930020446193123008422610503116246527514583676554902633463426068268691632015018167367348228943723472489226614462757822923107137243150477868529947475843792648636748141009871777618678153953269893516821759674299787869841959196004952842616326325416783762484449433393938514489787522854115426537274869981424302333284679056684064534014423431526596131716439112821542762547002542349158328860912970686068174855105060654101354279701469803033297456260890406651485129728770213923689395858170909793353973137520354886506079847631188828186922637547556709682988425118079584669022371181025478301448761053131695081701917522895789918557083862423955645090287524410030280596760783891457218974860570783849780365714922181390627021070040472195303161606520866650040019153679077607135533155081772286526932076178582248698302994928512160305717744603573380032865594010554904258908614164709650900192697280553633423753836817752815141098479521263380747928251768088580391131775363492820512549150107086009973291451096450926683472549461937836163984285665240176584023787322876096442138626731844306779875257215261605639964990458088729892087263547802617895968962475503761518921291536212436296706679051011744818600590231100323941090952042335227800326675338179563317179724013043294149146617722351708858781496050939418302541027035611395916950464553471739426333013882466635947250147804582485840722102704979053433717520477067082746087595289339880133542328822214441061355532371107816003695626771052190899024527259086509173045323541082615178513905454733706084999809896238793202093569823480387629229354402245369990653440529305365021261966358615216437088192470246978046512537555518481294196617511456414745864758344392815351851767425719713320186004208699194257805740639930323814941520465647864966436608026028797285600558404244887772138063339125041433638143670583288652349862878467686259241435347065321288645869756395889850386463350100377088972448416633861943585393044861435000648962752830607151018765205844919779091963671224344585170842606282401085333964767739627384857227041296775218163768722907873328829174220590244855769390299168476488154887589297169913686427431162378877179228417939847409953614950744127912677949886159895414578778647760697620927599046665948001091264199448012806675387389598455989755156897275449768625854852708771602783307429081896825037438112721572386503675875486097190057015158568432888154972751697198204504842486441717797638661737128384933851766046825324746616599300259810063245664448924758076400755134773693874704590268780508167879243462432453195646036709269790444399941692499584731097322085869005774819863884749114553031718396437049989995878463202783857383770431242538455263958160971398471276948196143651431358822105780335555823001686545107016847453973845640618509215953799666350362982813063063285949446821743382022677311725865521519510372328126600152908973348703253508206561042723660265813740472216658650342941293198741507447378929322883132509009662520819025929763583600048341364110734827822461931889706229791493925389166540555798663976135682358376967979162790286047914701885212832965014241474828408890944806435583484068577046736159588066599788461472794710908697712150312893003236990062270310913824030167652029027544852445992055168797843462215051762003704889954245051348037034271102632345388183198793511477673218462885328589836858297866871584027438709824937343543147202329935122288450412937101089242784292908100336122089617049517853577777332305877274861748842995322164665183312174403712421838097404405724332820649175286084282796085196575881326990373963300021977384171177213151009347651545085705557533440084758008697477065900385019946907035399706520039490669397459705522507277863553397869490792381043261032387069218823754488978797968162573640941724947792325177635517737995449969164823574809127026996531989247835846966336572522388882232086063134872255734232308734009767563268984955853638194628144450725675213127375844292868663888314092486577297169323373976643913996099817968825264765673450767074993139660430765814735585870453315642844398511001324738972687651208986427448436282820492231298805003927173164929551208751948234294856392245647084262593365369312609611947809586020038362809504044316002936310777201070731024697014480976138359247785622806152666146709457800119029119071178737246122253319643546436542049805581324094956867043356520107615705138894048841266443902947143409155837921556603459877689313695926464728791590372145872291269926631387329677609999834957179668475985983452286751235547039713970881174334064690868254338824289450446225772221477368416129016817640388712401721763569753028386796749819404942898701760780938629815029871203370762101864771902529378707070832289476268367570402314308919027094890899544229808448203378871446669805167936545031793947740922268193381664310856536636638358509657650209136660773442324865548575375828802478262477543111899580541085156081683146554663851142592526968676549798828342345517227041080190584975761522787966689617952846014881035579943720601662586647197625504772330702731571339951819523678589909834713181287153245735127589150219954035521108109332249387333930657856786609439636881247599439766014490160704506266682213667117887325351418453170241849654583478919109369803361664382439423391753681629887993044889786120406889375784079079342968345519789610380662570400455864167103943997544920080897454816122347135601050979496590838123548022860074071175497819429634897609567440183896641853556145540646884947960712354156479021223285749461325903845839848584369158465927320790560310049471100244027187757606377668118579930424022579726089969896741942464038561628263730062516301983088387787151942153087792045702276373520401742042367634932705031868978293509169754658777454707665727822163003208615462225951855095260979233783172466889725240504599227049390419114384177376294993443469577606535982627706113275956509032341474494541325468347988789172010465531997278204224372885946045418152473453400995896703844675023556484188485880747447555785123130641507595002322303294464934932072149453441004698348085668164907092661937537234841287019425072197055609736845917298928476435169475529674101233550993739315292717351628586862657950871220398037793088875528845215225702828767404948306781498823231117275446319971801782932245884128078422402195945135820366421780593695572501309964568529449150992377313069588677499313166510080499939241485423665967539141954828431755813218121602219350940343243705844127401049343778695174658941913889305693439597000040161301859398229390682866676610376431505874409272698619650564968651538914111681920151546987720493537558954260791039162764091232032936570912390626250420242618604487175621037414073664992833850271159566732833205360911465424062395522896956293416431808051244713544827075069556048437044862931748374534291196958775633130232153746819045522894218493634693037857654343232397619891858776298714118884471245412694438500443249149243028451669060826212813056091254382197150110643167309042565918727676391507871905780820924965197376308769061069433327057980025817418677368081987911045044553269074708238982148402375694970024373979913130834040194478501320104543446798561565346585576500947346414364150368565690054573549028618647228228587577732705367124218120980404860098888234928448947613813832187772475369340316437230383084597125192236982562728177850745062067715447658009941969100381025580921394461287456846952570201429312871007356036347574446379375977856401917098193830453273755042722668997990441906834596074276001324200278969648771955453341140428825360757299682152879110352622439092942407985073446016363003286201300133938717897403098733309624639203501946036442519429763363392005439349544868441813704313331608281865742772231323451170211977445910574417541696363073316326364332584811896729935102455021935228492522179821428250756268730073339517859969713781073473455540921051592512211360281196518305232268152590810727350736362955084358321362441252317619395470334872116541049716977366295991022089494856286684678235082826916274253649341263222811181163547084575001175711779871362287549266940810128862954539850341481500503919430710493614820511080916393069049723988442234284329416408901847820994294775391455824049762253315805831920981192980915168224106732945549272993195487813819438900876920431999633286420481052943576770340726696137004825066274572633365020656625565433449107807063600012564696120531447008631506083142823535345704222877663792698178231691029080661060161868963373730174652894164195340519071735941185898858946889402342475559599130460386042093525573543375725759252340179991069597373307638085422539723130346267548729697171870787626199632071047219730840883342853245797418726285864486659654890150288002714953658050413270151858397179459758963022033651930883554947129133423038070125635503946856088942943466441581504710810614644388346387649106110355839995701020058784323616752176294437538956140661272529105245233337177685615007767679868334969514447249315870420999747276381619679655710448629316234245464279502004751688817743391459292468937944296659230710522764368465151268867480750559495304287819905659627914830074405358182371237020055135635039124501561958888867167769776953888447217923139816561832207735349541462803156894372968925167948517962440373548676602471652013354097934560214353344447640649671576884903562378925604239077204388251896091232760022114334947568967088963244807905365593138520545436283453958548339935475574663991619766143413873722761095777566725698212679227058401382343289299281469091062203576888963000007079907404185710728639358909843336043779927989079515120699125623670126241471206855609072877076816192228674908072562489917026268472184532754519283753631851275414430528917854600516708844447427209129013835063637296031413881426321929183340925653401374023745988391043138672153177622582644578818398106627606953277234920173553160458555041563805555551587346013002281447973433326846567933595560255264524074493158333652543702879398036090877846257584615298651965341329323663225612537140194918105904906575691620531380928269655138309366775653778282140686913514570583216501989762850176451398349979839739396215374170227797250615381238066189235152578472267288915517142337634587698982007011695687785439892511832397549535124610191275563829624919150493589921938826921680435102597666144531395198789111003868309962179148372526465432851542259490862043870315070434231458903752284058087324726490491932276459899063957344820162630684411388496141006162063059477870080748710965490772308003037765323316436959246034552752108692730635308881928062182532813906234431241538638715541654792725410413803510563205789980695640366090266759784573925219262629499958654374017071936772199818381237400366463781852557150510725165675760392393737117466267467461663636260478735766478412960882184748073669540460657471074026349079710692562767105877783280150192038613487047037863237069170594396878329040648105138477665228941523702807206971696299352916610060555055820606054202272605009555714568483644617372917325276496122582499042568774958270831228577736548079471209680855189817624559083303539491844208637012697120794461816581704180826388202960331406980139212295164979397607137080548614999531645725443757477048525953378749812959021615876798066060481256177804600452256464294976529847185954797848736121658321594386938818537519730916564916193231123757399645441811303319208409722169587868413581814437367495617921651363037346485929913439006733221255789361443348363573721817400428296842243489185386375939974107543762772659292869610539071793391557484565487231182737336204461968184565891354290874066937231276774172827313255701756483856848517387525501948054570569914927192895441092900728904458088022314957731782909531290807780360100274948147128447569829046160272667840039958817159429543582783481936538073573472966284787497601838352352867702001833614526827494457432819058741605765619953522232650147360893965820050820193404519839017810552972110594331192309874432598051378451004403328756174689040458576219386128144148279549827958535819934409771994828029674048207927205280634930156294804677202072715163541728077183978884524560910337645679237003911320385250661893308777399544281749587959098395631013207035813467510477687448542086147171584730788598998541013048458770023000884348806678578625886196997270975203730860890749126591808317612352545525866986835893810503078530285056488918079392851461277134928556605914689420042547987288314105799194819610558687445626561836999983482424557173410192046787471696090913213838234504374991830885254338987961428268345934268411685164196904719964761171975264031028815535755314517258037980857954674998609248737671707005124542102663347579977648384391843982269955837975874373306148666356344177838343764571535386850016226934013691410411819183259179986193319739015830943499287480405948035147111549890281168840429652330797381425824572099499753711284952337796008885600267595946264212040678581884391755428749372151275957489572154345498340031511424276118732574873823141661468180645443496017632555085110672550131620566532963950855539188440830112642704939305328089712653638962950946550217497052237495841532493912280115588420188357470887279119977136798251510018027768132971910356218289399865555772190101304089344370519928707563821966187369445862535495637502402121806217028732521434378195827239221122866771405922683133552832412027525291700467716007309203583139697776963734499089718028922398386953478884339227837503994628015152022300401477703841537228685338504049216584448812693345796044301007961757413742747095868914086362136654142897119319606068276355890148657750870286298340969197088877046363776900915780815844243169053648240501897671813144522996806660918630654871407931867148625957476901887013408866691325144345626851434554446445795834894796176942764164403082303114626515636569720261647753573355931656635229654646849897336135192016528909482702343617038703587625728644750842231829537849027974517998722548906053939702465855216681965743552590593682550134688561540348415529457873567913915029568942189159217828739911144547523797328304190572566570724614900687237292346852273634472712926404078031489145096439567902784063511215617096368582966423149586514820144805929483467145607575040774566635961875062436338911104992472050700007927679579047769642502040832240965170784514303625394542199664271087592826299061446282750058879893850258952141389916038984440292419093958776121415401979299595886358889929926135487890120992263603862178246917404172369036464636033806548359608191915486323563014271193839227811296127432137006172571838595972272423467633392982128419052378920458797552575898828934498220785810239676624817101812584918660974935696153361336628354417953313662143408986727647893237991627527589136990874211464776872976739791880119296633936873345941085747600771588380455525504203627356258202596981294789449359799213042454761624551045905506526511050550786704183762169271050846195945835167743202272150165794207757555347865440295263779185929178503823220453635741152529927726188044966350827627372518599682281188407950380080127258689990217375310660801548338680270935079568038463970582436117334219210156855354174118507304835718261202617203558420728716022023011274431073451506476962391293557463730687628595022231451253254232187904688189885006145353133259323625800901770369017293027471104987420856284678063670568282393962938375418669846752318975198631319292884194973499141267479093369224019764415276880883076032901300749616926274008689006958760453937981517964210978589184981364891023065655572552713309316817948576665502481375154206691152750740778124637511163440683130750557879728408603910400284074979989929123195515839978280072952676151697297024881243789075232309956310584762159106858450129675499878218727218236998356523454556159699798019266339823741405770290783728086081085829165761856421410923918960967028617381336086169349121787802939878537781296113070862200999142715591505772007678619251406877989520226098021200046595968027741162651785980298759993372154328712476496782343853131481595678949796342823476416041539267519617692497035186440082555449153872338477451877284489822048114572842969208124804942589960209503673912007998418783438168806974337776572199239488631513892043797709881926268677108834820459832158091635511293027230529198997143643589977190039098605620493244788009604025434708651850856411017047382235081698696415536824348784638245974406039456733757243939888612402710962724691256247702345265592459556785153989974421674355604025933150848790466471905036838638441196104876632858142507768324106379693993751257624234426473008478675777309686616630546345399420938003819126279509106832076916867859741925731450865952307817532587109119489539877935147593102963814633401281600324491365863590686599092648794036533013100009598464875417332155093282201320209724581476358661051831672697215299645189713885650497748730681770125858679854370637946404628595000962351603255100738671329435018367068385917133080531288151209283035340992125626087360513418529891866668040096162789316824101348043641766611859416995624191288279276052914861579455755954160324785706552311159882574098683308209349124331719624704033494234459290888734744811335858922517683123029825940586068348647272763112869497853999720012287941321561626010197704794362812029516234729188560268435246523790684298622383495156802024818784466311065437672807622853479809131299397780930649647810156878940122868073979050155781042177218651027252905944512680280583590090241677572033546229744001061597947557040377493825757960676388927878076729392485707042624364126612184307448497594773012055318451429393147846354191762175131571424308407346989513865245105322467110689749668665704429608195166470324800324074599680630847834516720192457003238909520630683744922187781864112128460941573952624943026604117825497900301615003169346141329939775195309512019611865529529259309852055981136860871660682287561878545229997613470492734101821669628058299710501122104266273878357946560220728957280428425075376105336444111116949033693521724682727105225724328782192824685011326962799681302424099632255015212936083611018241253258057202582702835625548530798417405676541003374855362121043663347129521462902397695573756212401354415465842664089773246828369641917449549115278735989169978718891624003275992106434621013907234114906978185492488053468242624397603070991221114558991073179614306573365835624724718176038651195648097339270558992279617729239192283179524487615729076047254876944927906390768594744472923403197792325715585495218086823508081411148078736901259954807076024041949015847600708473509884532893151843208511550368210828880221498944143695307533147963330971741530051191359844869359677107601652102402161037832445356071470738081545278688198027174950667860274848438620573395101894826789792651430050105799513308783832760040343288042787298756546640379021612846042267656529548455339146251286154472957507688258349336239138779696095465775465325374181239618749911322710493142185036428626287337565304718821180128804053090388957829671658511981117705173237875412488261374252914493606594320005455322359582313046458918854036810207176027861941595442210718238044963819614287356554100314084155892874605007548238891133044808669249802882967211629211967766640383896997795848146060710357059998938071119444601482941150435645322289699898688452548661456524383286467245795712837330122762052335994109627113521071241624141190949522155159074857979220421594173897319830203289243799880082222424007112230328067391323758161786808876338134641367924436168643803014570522370670063633748759223286103907637666882621156192149417568583468420897385780895326716590070182780331965868118260258824964873264568246292410801968019945939618118400669290775146031756047101731373042045705774955148129989682037675412852161942704369629225634212744755231671952284161796587200773759834961986659642068500907172722308825765084077912302060623850609006410075341743474749933778346131660709857698652832700906757795639361913786915322531716020564155595579391148036157029338968565858594305420759245067513366751086246972823950864673165789594747126075061164749045389955316007954856165535555733897843652640813822290161250335906412973769783868142066966682661931252035251786453925163095968732916555941288636591963181106226581103134838417023284678567474370496860302779329263522937971518079847775602814220184117957216445128942994334429254955688045419738041076009801813569321152197925983420420015527979809051856513311862942707276832191110837435639849990515422607555221035234416601655485465438224403540861591915653047676168553561522081822521884528747734222974383864893713386781053840407659762859265637496045541160575921231212627524589219407314406319586730267095969713222167510596125451276184418066156733247759562176497581915223578304357244230455860770805169413334919972253501507004921269588099333038844330460351862498694158697991578463691986842428522581566791976229830843994961540615689035161533080549967458811138432648995898756680116184225639572470062830309755065814215962851959848202678366833164046439620884689289795100218252441917081111337911825323647438496057622401300418073064500039205576657440567709892523198253664626015539971598250210356366533199812163040831678278308682676839087236100460744136553982872419660835537753695210461258930577297779540747202703909914456657073854408705495519508667371333266561584663020655038049563431985196707207577227926964794813742497796905169299196806485106655279161904449859875130419134220372290694877245886081336894730789497354079210886622064602377476394278446041677654992556106791716551270432160713058835256694660400563893190356210055331180061314886037363275239042548206788755175986599309550712750842623960495216392821489056260033289811146868480068467337797350062136916616423760203966087551972980823547326660412247158856235248577608287976768109252623172563185400342817641634596183176712158592839073168913550869691478233433423313675668227658758547854473662273103810587015501878344933537470673293885778385358551343358773995701130161146277999252595597420434749542789599026209103365537323365771188494695235705965931589340701052204506870526303345679610147326263842759753614810354322804995390613212542273069801351279148613525240895208166135861868290109495518483413041108834184044076723550863515017719600973131944746610890263403858572114674211425414487223771254689442182226497655909059795351425233895788575113739562414127577295441681091113253214452457931413059620072680597179715899786679787196060308226609575044244231637440863143679455250572435986547702626557282759827752923289570327741542892998816677145438719663534056501419882771427728853244483368417411794359104132596325015076305121819643273275967629216133183169049838016420394899417961847550570494593367877459019782373970370040556578163708334657729886892119868549218261750356487756901325173558176697655241818535192120681534319979353583711000475581547379257340488915493650994760540654669009532030698159926671125847598351208550644928676935768373007165811671020134062123219920692945088871997233859492314987794682504691537665165005374825859079335731064048244400652995323476336531079711322719275937099938470558875209230588184715557807485056792404365140483385056319442691725903598924903481624774515634711622245022159813894072076781203869197803614145327400768526590166438554861447078765116841283675445871723875369926926178993309862504277643565219241239281122604827110485566423902313382362369301109936607718081467301726520889443870255708231854825369169712201159897354900109392234837460614044240116527557396277505658355462981926446923596873603702185440668486294942509807017372399611181911253279038689802338581953667075865296331984791054760424408579148727528871892395644025728386001034082481708565300582883896992153334912031371411468900503037913344763351148797087724636071319257273320642394540988530854445636751068708583073008436637058663407634128224364267810966163031087756072043130873762802952507229818372837831852097359901353590840017995483482884884875282568062932601326996886565247401802195958876445574588969681995174104723279553541038220425065278390213519112017893728281588075686746148674789033146373708444745879473411969930212422245168094696447009871195955363855910921555209306754748839617288398776876802202928153170251811966302480861966438985362341927897108073835039744177091350911674815133962382046496479707698122835228351283327500203306150095048705386329650449627285791244596310916763208960127492804792185286366412377626425164346583545813498513974516090054324716946015889709614530725983908379014318786554330517312869014626085723580565793807877848866960483115081391909334480469292888736976262264511696265430934541343469820781719725485836186693371853176983014326587177527741129595885121553516951406322398342095247340100969157746481693126094381327584627111654254054536934017766566363510842128577002321270454149596685085081246366106610197529957349966448048701909567274256179951869885818851572295973800865743996998166287604917549592135937981340777073417250486265633231544290044462838777891513304653545737287012462291128106095991014808286458976182233460089459382500016080208484073786436946464422086074901068391801972871819368859152851652365255590455101858069411682520064442005006860535254937929970172672528593775385545297568075000177423917827454622713100100132607641351393811542286961739876769302137086484635743220341303012384881067379714785037726763879665507744668889023276233592809969745128623672693455401912449178280249574730564442798602252936629173431609963354003906734332849292431553515545108849966854734046472194901740936553114432894410732669478855412014685500529224729898209537521855223909869916184645732847888271685663899734608948853849354912298938179851614181898565019251314201816243743381535386024977093921923304109558074877203209325605435429118791657756469987441824547626963968845113359508092858900834516919292953086650230072831353866215596322229516315050034402937328873019401448696305366335347151600460416137186091106090957904246105428246525735562814677725247455171314635445421062651128015680565977933844303773198785152552433684657425191965513778426850489963591474787865841616624467231917926601885708642554095452916889387305120719875743118247231789243088437726316507156541589561992189139872835999681447391147472888811702009145899278908794555117877559804175021332584242700268747022726659134180327210852041863975128362284763230008420857322749071442646722303215486624014587518815538790054040148277029604222531585225236764976382941096750572945314240667536544295585290838524572632853271931970273887089781264088885605858393430315091546070300257617581452101820871243652997202932552862928657358333728822285914481711245920916643548943848006601945212242176634616815517125836226149475635118119093457295163762419378089850473492162083663959954573939167923286796633495551713174460763699446484480461802612974071414418440130537833629396218064925427720518434046977451194587367696406778987801467112822634986494047931397878677511436319574620166382028280759221093013969739320722263522085781768080087940987662426559369289476866474025201166387241456009022346205726399447767991133403606976939408358382191052137890178894022227765777446799201177635668519998969453700437480664381691654907417145457522950229847518449471093363494662275833964042330698996607279909917586609925292062366083884692946474037345624401853712466563686088891347093039793476493506010409299428763962748321968489648158447969386429444612145104662458822580191670458543804803513023162832944945627763087948883577140431198985446528538266199960067220783009128567214087110371259336246980686054536586402513754628562749346803876575764903030804149584865228815862969307688927020808519452990397185924447567196239118767111319972618861965179540375495029987230409128068514977965778979883821531114648440463626855266564932217242092627775219540042521946795266267816999032524920367440120070916428141628765235054845320166574518492980079878001939951009692292106389755202104236609076009692754695376841319384000467366712903875641048810340345164341834279281409039171340049466380268681249921513355681789172570612661500299670642663117079352792331856045575391097874632401967788311982410120365921784855016795831829253232454491002671429390538982967379479809084886788772059548183333132684698879179059815454606100487244745307436539872124154070824604844768718784407593063507264154659205309865217403081357112297738003936744435071821240835355406255172846615126704627368733814320255004526627308246082498575661690956806600783236801982676774312618172472470444671569995662904661959341544700176072534784239417357843040153936831341410662949098456632447664771373482504948054556410058851706721665346514715035600853296904325572388221487296974382153065610864897005327491954240334466964163258018960858837240888511105914796070326458820333765223227801956314289900031806441746717035889593517177007426728231579327226508571904132205133300138251712235483781833425034852821957328728557125524276005512474550961990980100435816420193897609792598808837613469497589118725099913705401293889275418765179968096401363889472736904359286525916942190931717073868881483851555160269194317070275961982410612942896450221210204446322762924043634620134957285490962444817425606677996040779547339139672574041275105760393896159370385727528904218037162460162366123675882972735686268329358785765023632450734797654098779234308131939955900332312819906439366137756629334520790949426678677837538341783584372779355892334776906808435365460716385121915536514513969874419339332242057175231818181646451765698602936527919398089660551455548262066981946103984421015336345036790326531073376620362841693556467453605033722832682179912894780351264537526873413916575574584753057284756667646421494536826279977609140448464336476518918139100521922069357712104251559278018326508404707720413623499682733661492832365670523031674669377973712328558466536130520043626156391934568344374327990004701998808798850415134417568873957701730058090674378011233101800879457835082849394252885934675421289308457268262577147756633103680849758509381137046274116277316280657990525119936373957573991262677878363537223736743656666763667790258735494928835430448638380045064968098422637647969005188436993555186602178029634873593550024103458024699940135316784910616925408644547495169533578410860868983149559741695885344017304698214032361050916052751379730292525827031497567519751643464717582213871944862184546495964691407534689996674364606111823773429403494651770932323744400574375139320259655162855700578572280652589713063567973996821493970598410833077362369140960321767986819800062464619830352353239569742607586729346306554782721047676061709994346922063064222680562653016688481029946077111341423712498956559621924419740435488027747296213307609672327347480135264699703895640820183596746174450135319526771151227488773957234371335229004143677115126867458290615219258657570374440862741585252931289945085120209771282296062105850048845871082432965986948172350154987734258481379212888745458199317545679367813633885159165756457360605706205494719959356213779833943217400100443049164597676100545671945091221429214821498588542452425561679488951246955499572257207927088879364646919885273436534027843141995108575967716393740206504774453117958607190861379726132165862645135936354424459987521125945382801241436015212049063713211332778710896061572390582660679187450198822058419627928805553731562519701922250468106721057948588016151546036030919350290075068512215622085364309242573641708527622644504544352517177116095257203969808303760999854080455191051486608377991409028410455937659818788955983672550184582831670587234203380184677525375007405441985025969849244511319807428713185681818433125022859342315978295513222281515703885479923931830972480543039328306716604139860842186043307495920322275225273659570945030519276527438697368122410959046532589779971961492918118399436302579599133291670162305081579003694612666254775866616244719459251776679596047037392201064673596221605437132204747014311694462156609974806474637726183839427131855916191514335748887200829078517300979308485133798765417376896873906015097075313984358463956152038704664192080781171210782175433582441064567536927333003863879906499597819407669999528868257151942356738073174827103833218344453640406009085570766609823398054112597504709779802078150238979327392115615637341590317145391686713329049006075490859501008731368234663240119557987848643345978468692492244937770382207763538000891607120796196059832806281727824500698648740967557706330299507139473249195991293521796151074507676002392612545323786789253962129179620353426633582799832144730123282916161869404067489895348604351388735652456303289590989234700843419307762177892782624805508313186087949275272978356591237348955603139775040419708156279116195274557525410383696677462429522439331804733593901334131739888263063656339227311855477565976911713846188323013026022379192115592630345924484934319316481674110620402527801050214548654263620409586143756070081303341746805295230185926430733242375786281959359055355241572355045089439742767684971950852350421345573672321144514521057957092904135919275863227169867188362603912328097205892429401910561576592306312243047666950720871585538911961347047099304898678731596402095302423457021167298328905494269303088425989945453337510516931410614735137179334949360236350418233936507831666100448904699080536402288153381941298751798283717437271138291448523673936546727668600378959997054443658554241477910626642712643586526728959557211827812198276913722651488365506611718891603949466883552158615377217348129447004737573724863124797390938449665134926333152835065701691496230625741738925808022437436599793061338910059515372208221104925968332698827267799627261302611197895121452301804854761634505350023718734251149141664345512959103623360595337666297362485353169561645290422950421908547684502030869182030252597838707838052133343917546288701112164524247862186195982500239330413261400446236698196826487682068980258275115053782532241146056925807169293625404640206337911475939297999541989907393292509514484479725930576832767917809869631760830891646785774834527837063164562823038517137205263309413721187095479374421974424944273021854251884833371681252700815128943258157779794107675869381035061492175004586424219387808125602863245750225061420257026657724796551822110755371120059599751580576155842486608742464848373535508723601783231718827742908595788369877016410093320097746286417615342268110826533574888006648113192501281296900588349796375651453527136388845849249270548885986082939575763525710999958459215267163242453579759969793094074318190688106329948406124269569322008159799040430686038790901945370865215513492995822078370738531013342312641381524099968059615223675856839605868087016019830399671355685386316258750991257775160066295681895297640192799257977983230972443707868593525453910342950911268330804424861334706593534197774620965629466643786887639879086807049338631100672363422903973618139094176353282620667623400382808003561204201038080915814856698624360246330360047489518636928723231603942286729782760502972944575970688623474661421830814004806903088830606484090053451207355963668902060462388555385123837682770534488853799508750295305885707000490782553360465724631586711835080920186534121793901889606971310894849302502625301063897890666122558370489197791749179918041112437974470175214027255851203618374084619880854480779910998984009354086198562698518765066316798105908051606260718721517384075669933117988952881676983341199221782525330687651077464153582444832098926383853364005190167077597373814061336546910025012368749543267965012505780178329317586351607282236088070749242623785737802351065285419648793286265548906077290521398577392672568727675132061490139209720329554273249294769013237597225538782744239185058602995641686150438064027701663019713617890725629272047840761073461575262453331989336419901409374708538573297834704233670915880733090540174958099938844583426463107195468832278388674846709364466341125370156482801054708869389746009967582824208670827154529349162163162006057319185748903375724454576625255857398467408031281450207368822619586254525037271192623468387307151603635539592624766406510868492332829841222373581337149770644298443251723887062360180502021032033200237137090163210827849297969134348789409960544660134589414545735300564483540253569488523366003020243674945452880952559983468933776958280285918297201786662631678195208253404042325310712791043438686383453310842083297258196212867433395470806128068013226403406782095857912063681462487256075828880383940759540326144382023622901449325400102310184211781436805221201612667135788281742303579078314674173222302164095773766329605156877811609467846494592420213006111122067716240358286217285014201019039289175277610293264454370173169016011614253481383237910990907599585240207063003192341530381749673706239817055851792966493228485575780133322450522283225426875325875556171681213851599008873133948815362749748286971973064522024249670682369365855369117486612389192254142098791511108012768401404239014315006189836232151674186493400025362086919866946878754532337868666179100867233190751625727648927460821055133545795825364331842751948601576743374717020937176075829687282674328253357376463299590618281116683440234398165823861964840595866621160960368770763676278006690313994259324279603047364211552328931141246565593853284356282589060327983715805158522821075649112192151806254503348879830948479402581660425824374787832016410884592620168358518715418913366093930187090017993395948469976239224073609554281886820120559587465344281936823008817026284255893591054431252902742813218304831906190029493677942747661786423158352883358567611173271506652565431519604119318041388586456626832218441416156239157305341071652845333672869674530218739679569710444159651047257136180881338649445541675961030686448965774294989473546423260581028085979123188828698098777074063571749342703364724013577413796721948313153919596596382033480452926805702672149838445541822095369219699303450408673403829886387678536504382650141249602256975941556357230380377073613711978653036617296160663720030704322133675796280205111787856627607752736243685290748681269776979153848741454371634314194651145619972619686683220807315353913706514406357722035710265919127354754099870246313196512025355339969670362265306690035173555900717968337094813709328889566836104881504937280845455871945124110218019479135812764513542917578806264882909831436931460899413571793493290550576343656773902672738288650316679564607956944973318912879458832744260768742427489892844688634480628043556745206255530191438890239474451435785601197561137654498992321380222388128658871889232668481217650968983228059727878117004448672359379737491719087432533187133522827484616478505045259019016221859877122837547910107953682477157109568692119248850313316513008147839862638468456678706430367666756267283957690020075465039377487129964873599966583839319809315558669605499761289042665620186769361150727281850954918396412869257318385948563630068659174187110184857108592455712177258726022299216987743538710356386782989491918537262555956790806916393020275212075982240245333241493541011439369362805793341529326615116577225577035672275956762807451274924286127513950149699364522184806980482015372772581891826285673659433508755467536440263871393413640248073690973921321040642303807182483596185537025266500403842104873946047881844878016368235957452081743349082266057624588079301883785462209899115256658357209031631777148675038131951022478658664007137894620590035801197780189234696354403964704521328831720217134480880126600187213043581713652319179779193685668559991493960822983576763946094573036818427604504011852534750075743772842677596927921298268471643406148026739159083788271856805708442227665178859134989185452828572659266253586441722167811882952363780774816071770043170661798664116952090822252799175720829922424335144857924950165086489842467107415884761466492517570316594497785906507018474297779805756960403879379841870886954907734525525401661607459361153944887265646799904352936197001062309847650978677692149254832333666371012061852138440500226683296013592225508381264182271736040333446786686139787093109221613352064808433133368315457278247402995925079496893154220885180027146542523638388651448807692076686329694497226098977066745779673190094798236361278684964276801368717383558279524669699056434108374984894996054848427487206445699958213710428432852895508237352538993085818381812072618614304039402139568989969213475726212082641206344412038614503965604783982285813135045445721107905400903999457169688828043899151730957811571407640485744463004882498908496802209472719006340723029345047735569337563364462261869707244504384646190748549794183008058637043827629080141673596619761083188221714693870111402016320519243476025867181016987227511162090831784870061606926422880177779844296055181861190291841833870132074334709002429045119123096870078097111625180495529572119131696435162033413503657035958153516152218678542117726034799859182185211250062329795423697201767402004981662840387587714606009960086291342082876601730765598691383880043939373021886004540672623215788106643061826755006151320075102665096369156926930537031165546959447075339430136112177490009506472735679831499402853967436812772017454275760364096177944203837692334498918466559903712130686256361060953496211703385413721158972525784921975259130584318901113696706452949088734120822248018875407977470530436535849266737579302469246697099639381902094816580685254814833998660436547036663778340038430184547901219666594856410723819582558558407614387282318544210828176357697520425886181354316856182693811147155461825859078337014978423861361247446091263031571019891624270602792595138488230387485184126955978188996213633236402692368220837913754987036115470882869129770704019857094602160663888712240744883442001042539764872567193641702104382566395153393743853306990200465158312359562366997751438511390829474042403244448513485029717443516400363398740596432703509763236335759716225501360305122520660313906774871867376274598105208588041333485446744401684531222315285873278383021026862174671407732584077396658971947264393350806616969113862233916161549008520708840164033033160954953890928948554131284109545453680208176352979146458289698073542103901934041545621243964146591080763822905556604586273067355642902208434070958192216985480158428075631997122492041612182825100501709048643667577818240171992228364198612362198623262911146753455261424007396168644452112161690089290203357512885975682161486338577337055578693911354950571500523195249648406563368034408696987686527247459048448147164418018157276157300254513854033151112965198862941541021182276208315182453378827392478736906816168019193737747598720631013200989937957760600811817825735906153974536425512937261070883956326280769736406606733240994892896687152509015780340858013735969224792178551145663678584149790333082664937690539464527868441068158707965938876941310447717987878861687139818699733430889587367553317486714890069732265683095930526154215048200174453088795352052623107663878688067328246183881768881462321934016217233538924489921404200498672493166260788951684258478334567552623892166538933209492263583563270621778023171157889980742617197264880709828727325409479692200986163395222335818732832358363398889537731834161253698714622300267178100863975543519088528073927496272038122737066894073777416484782679118141460053077369408518602406243126606611261166682218248144284019332579459674057836922497328830382620384763611014007914713417233645855204711832560560425881657819124750099162729696625539685149359803460234954200669409777439412661446263626392451194775383932328491641512307328972018392620893346646399829481716484903279794412817689417686595439619213866051000796179317118722340735648809968981605696719762257132736497360310253333788220730199930730582887815834232325650693429549996154358812682870645944717792534381335339800623903923299868450658277743641310773962567834560328985051703875546175707960649859771933947381564916684409280356308560256675415662459316249115709699381560091899216383674564346292762391126343739964256390800691762555784771724310710420243663144267895197497995430449341927857012142837052067821143507900407880618236950904605420463978781051701782830486611584289725964421100315745105009320977017070627853613876596965996644089360624705348387735942844633004922116512833567431446382544890869053944632851706308307267853287557932745642405315369589726163607830498643829016166856300636603648390654843006412551889060055145544478932623987545858420823976783915708766398651205588151890984814265276463533811177136677891380515239705408473437280792520130344827895981579700082824325362334914516241307353949059420529938946512767402379405138817551966110649636150424744666598582326430074050487795410271103522685022137344939937521320129130269433749579777758251229847428163857430135044624610452184441795681284322144386359057947188086511731625904326407666187802947077360282261064602627843056116887691516255713583030822503088940304765803117141383667824549913980584236052238158856863936068128155023115539894563164764385691315492725206185647799996246456920281540073045566827144245244920594912851100996876671027382486214514343442628719303281566698197753713540178177098699741839645982037528878776214936402699503048576033310680027220134331565751688064666965461037966477026477869496369039324606232153082161859071049783330462599196933857481953396570487325873850773285860247250699384075907835801226540557467290262925978254480684698874811276414315214472406797129047386305507942818874397169916527568575601356531681373228446865838063580150060037731910237106847862464738984708086858013441640654722294252607244412268738677030132645854109139806204483535853747657582405889620369855065080173352117098215870096963308220095209943307966185519734870463967195796951112020088517840083429967523381969056383376284061276533150758074966250477118987887511624230551008600715057991558051758991218062626283011679597690657196046412408703392017149865931565353051472499828743371633891509682549118775486887357010151644877650688206784714892451821929426609807753365963643618941472381669496819325278976738751347614148956219119134669573362061328968561726892423020929574048794625028864302878692406393910389026647841263397007179135719568644254692701200957550727720946904908403026262385178603073561822818733309119435601867532283454211312705380062629236223660397422457273613585621695240118704296290151329374863818713567905886543039047219452093272474027372955567044859103417744998293413490195273784183149284361629493396240982753629294698375446396859529653631991247909012542538872419236821735998009026022412589665000619278242669227419527635605551695358950801851776594652232022370777913307796092090890142586241323658003116530688299833346663824639727543317015565052740765360958383778441402345648548476650619776753705795476252448770381665973014491172725628569351417606290877666443658824828845267453789761937578317227568681434502170895775673201194827990045600963318330868626210486705073627110119043885455199307603688093887648278790855454264863192266896749064619464229672119105608609386097396129355382209008128346944478309979724996122721316711151106575681130896483357116762029515368047702320644388199145097705546030997241276171427268726316708851626379556508453010620606976912986843062079079196246660561366191171396846749564623650597318183087190093367665510107298231677846415126774706226850725422326389931848028093097356577079275504486510854456952890605797887019583031482956991959990655999776553943260981814679756644533630205754646886044351088299140527292095191038584917919212516012559059188761169765398666663926067734767048116379669509325174387423629968606810243251226664292295077728784308253865600448777241472766577770918904513559978198046545160605567162487301194759445041391135993074226789832574050965196068272295292685114410877614333967751949978550404736603195326914428998430180779571046301290617698055176458424286421050875568829560820369675429719914130554612529694304393446113857890394513594549885726860806941702529788522360378976233907459057423853707321264517340482866412942607988030123739731329935942295171452542601970038042762357549802360877916318910613967145040720916814148647013114125803944498654476300947738012294159121693602322388750788937523830600249158416063716589089251139613493283614471030608273292929078810131876729410994587032526205994181880363315848061620830754386608847596624723445308919654883164663580780520581706530746910984445024590412174240956645186416351990980295817901375061439877146760826429064738832313185789408518948266420923111703331365388762508842654694310636259125003328418946697310576182433936144121772787755406910565374248930542937941198030635251346246660227745883552254348794435336649970180488691668017172362946718368519189870148551532779677549330668852268123577392678154758443460712781587595067869103400781881934824873001327018992739005990117200496251238111302180065743118011853952402808904360020820567671966127740157390924179464390227736413837621734722131424656951411721937889821719458323996363639070598809765464303427533439239338156512243087796009946145535711238967137998580262031373845330991462057513835783967601687273131528783565933400761433340346897582410478700878243610755843599269201632705165604720232426120153381939317925636822943606979375780346556252414607041709477985072560239033869764124021665818849229334457434861127054351395925261371221590468819608525279233280934904488766472676694953850916569651005570419678846100723138098721716147602806577570275095673839995079169730842173444816514255933953932280999020405698558766423367980795579691991828141216410033028987986250370075292482072573318481166630021926284060513234125352044861132234237550581895385197095164276629612202647676370295090515406370129835986663793584339043876220836206910864026446008229960841715432593536647031880530346923283980685255059020804869631151718357873574194438284749487939743615463827449781930714004691190148226316975513108889587031685926690612287209113205412252670174702475748065603487361991763271223568670910883880942302244806228625178226573205604700397214492292872276802503360597708427596607130912021644121244137677563769173270863787613221462997630227034771949009123279643746160704024029080900479328931301936842764330733196798995423522659651260391030098576821700072044957019993028511267725433785327250834096391633430945635747221348880563720501683277987181127734103781018382360646234237916978637234717883916985846619228658349125688259665927399099977737603767196351256041469362717542986175147352715619035709736638848017852365334327931557666905796465653743008277892311669417217576206791318135459014814441767926109732571890198513552113748202800398640224173248381177574631064264442579080150334013033426375903003363650409769839548669185115467522113201761008706280822414109204400422739503149583069208540454509156236643333553976847372921427442525932274289316987986201649490709018842921143795584038463870724280229676400215724273022425561163529526980800459434359007569473942464761799471314372024540670568117675127105094036200680526967583437026510171177806501180752334893218344479601401652154524438344984902595991476236791383941179978148162078246202588331895974288872826305584949137601092511869005823796293326856732935649930841832182936500658492017943834180550326224706551229870305591509127093581718550837626573265875105617637007271451482352232562041188139257702878938952574026291308845244728049676982195687485624607113648018855602894234367877450966176695867299261064950630801835727027843500412244893724554115261145649458072206956599739478584861819386856171741743507469695010091280316166925660645983133815635335174609054253250254510761666222870588296556657887404127958308618846239280191971894211312077715936194499742522513714065622916687799698482526700602410694953605711482329801642092797330605241429477349665659821438946442436802368484110596961255168359172751941686134731809945342709521040664656713460083136790121790487289689332599665834482982549304819763934311797885052099041138558957102910412730627275779796308955933806632084360274353352313167896920471450843100251983601412952545944783982085749669369151439972278556559991942088218456119165653804780434718110580036976781995180257105925583971583808935127841914494263819935533898135536362007968644754921838099469858050103627859933736912611596693117052824331017454049046854924379139172013478146030087275286297512239541370123227642884847957911012731455102661339513240106674365138924666766804610628373461634884381506413479349850550200284785769426747698110446825956337246529310169369714730333116543242811024541465456953128716151802374315544651399111353327586707977707353111332211020815864940061898490288020225913604940149422677908679727888282081281282088193377063550664297115796527014808905497761820275055388643023658942068374888185415184776345377327725950708293358829273606021877262516723312597185227662581015740481625315966071818849374260775918173706844852989298620911252451945244590985886355658010339243141242282826988761674781739704438154906979253610785124307436563435755283680766494162621054033245519855320270980233197387872177125025384169093462364263901152450581296335290568450169718057838887240135204859370681323714106348010339644698709976834757670452171196069647419095345265400858194025371720227219041462503285191165596231204745212833127715807091471845916211622356210295982098464916297317268118019888557271446082702799217316865143247326670536849656648055680345275693889736640950304823047980030478363211359522446549521823632427657866021387239786542451893294020980152767618749779067562525578319757666536173623064365422294066109721474607005699016591957588273974078608114585196142555678224901019433635950543986927359783158699559130308077109021392350773763990806841309694904804194507550980216545652331773874069071546497182544176614215305597187746364419034686160494114388702613304819085736659205224715278394791916228945888930961024357822082478897176473288339544965864988467241199367136623507871286132952730445442248098788340646172480356186502715252438614172196715834549318674660778066530534241190878618085986616468298739413576010241784371400965690880642170969359879933833677115204174534129610469816500728804364967417419208275567589794821372144022533586599263113578388666221073014540927699461000973007222043623320781492825320109178536205741448325723539518999610159185344592023703305416994330687562023548926510230257736557653129750067478674316568783252811848708923322182399939327538752919666687477441401941733947779315316517887561189934687592465734489232620004515649074175172770454257075166870119495208411997720223260998420884473276029304707112626769453751793808326890445003814466430576352006664729233862032963838800601505862493941581129397729399771459501135531326451029801574880407195885220131429913533581916462177619992249467899738145479936389956782864965252331759022727731219899439294642965505893087328452996232570956848705468993950580205536929380857020693855324387413041213355492753737379497480586492950501225990318826604573165964940734852958070028100060939701743009206833436197747480463034174146862013379391494656642719110316512808995100210735230578505029023325253941778855590922706751032218344860779674599248487181636799355458984719771273804001361455099911580937728534792040625323835547904406948468055973390595536711308350066690874636790349725052055425374288378371771939537342539056358193163027677761833751603292348893158366776142928209897773116821847170843434645351800723894961596403273525290535675955539926215858434718402890177477519457905455661935591879053593539999077106465182717373424968746299894695771982001691573311768563305305392991009298102615070919809688262013136701740835660384241323078013033597349209213878029091654830248772453472428875023779814073829379193456756261180434918441361132317380993138455056524022614788584470376658116589084446026185458888497087078110824698509505335958800310473351646596821647968977248936581027547450945786087626092432140382115674079030135832016685434971926056258235424880892657867688833205622981305889896828072073523219263404472941578998348428269022205448741205764430194130148446332144685449137328370865182027797596452855788907610238798237979287811476508831440068705414060568965682990760551781182686740548004658682001933008261816932756841459618233823435380312825312863964251200944049023744776952409879505627695415793379980532498000895362998713181873122746568240124709431049164924812081896574955878773794235098571033503597018839919072225191627228649052660945281090897961483443206159475202851647404781336944052952974711096470452676533484751889770753158274398005340189698802676344092356329875049598904286691650441378513177651287584406764555521969508275582805521740553301189442020971248762570479345137414472147408024290035825712181400144925896292697163063532909717610585483491663844320298347298647573329811175343188888833188168534933090752494927967199697938830301565212737400663172926730219782738896331935849586209834232856575258183265728860232936501114113460398562240574396466604042469508225254148951241904715461063354969194814752276428137185259004878131960646469292577046085014182624004544470649618751997625608396079898398993953864852576506002766245370662762184608139473410177071373415297306404475548997618227333071179606252512099888309121971416395334126432682334621625203894554745260501793910782283058020504602298584150343162420443601740432920526095848440370628497707230839917856128160351031566483009437299386507727687296999138661367193247073229020875847719726029646527462074374805331823186565133564957927816702694120831517161001427688651937796350187322284129448329665992796222262664237144590014328151947948757453189454715432194368794746009885050001470492342656496155266676928054473915897779667027634660677818132788023902952770080031661741913463453710221167211466620531627716275979170695709291611901826356027382321528543611427848876072777581931586286061032807884647114625723455170873968201472181178173374260051597815382321204632748672335529751651219985920154600600763135730354505591654046853452356612797936379603237675301563065256756871478989228966628735586973121639844443777662876720129024594816324422113672611228378012254716439731847235528264956738148144567648650818404960072170446370873634965636820610474686965706907383666174147099597462502560871957335964441546656732232354041533465105697058081130575611600875967430176368420483987840875299288422221377934585729158846235407587359959792636906579588067814069227978276281633415114046897126191450283835829233392350700977859455837728662214679304093417962940255750508343345589510890424356804629435515689152531797762437589965138741465278345371627341592719243295073950537656338302093828917996216786820198634792085581941881782249398873372490368601282893124367722416933132490576107007490445284895347526114352944713142411091846807355989040645250347618878044108598747446019347597319086616906985876164886200605994819054373864101052348386845783475800193153874714795218031311103804569316705291322128365768625463464490719134430391735142917477675623855816304551102688824524399834081979973393245024379761754655744913227759215122691144562137206677378645970527885145157481328949145199019158826292364922119010088649735912240020043573280418513168919490905704929154214597912821567637678685338511810223630894405792973898209534990979718092105022264053898063791575101103400158770500847163099490337449657420137308564795244280350026926478578690742423454838889386200962878042005999463226039543644902220865570919107345986302221304867305775006657102321708377508221571605674852180801682125004949965804598944230377321132690010034428297936124998453922761902075431369442815995967023830103404186115797918760810803821282055790392672755335467084506916991007326740816956084094551362312901268870794114737042367043732614991708866679915154374556615117460499405044198928176163181333746577913177003067973932318125134155825203406830978995400527389655397164769788746032188904107770412479022514595536843643585910038464271495432076829787102711749176714967855120248978911058128081245045423332625718977656739954403232826591208947686293539326783049276509720842611993537871833273661103042395044229195502370011090377611461445360665880648045311933248705413145314290477408028808357303917652846528188132096933792356233351628812081815998209246151968536700439473819981919516514241368085392155134552943911678729942901241880461533161520807741797972446262494157057641563384110298457577540597087937251011476459144873507314344552863291749525253539406987713843970265860762906314887859461386473713290715483282134282134453685302817362651006967419812590649592465179800504989195388176966688346275946153264473747446603733578776862760774604457847547449581370952191058371043786502860918416929494511099585916676634701073008993800036550612854706111879254030612645798854680593609087251833885833237376837648997838897101520670650889671515048108485381011861388127791434827572943892769127358068082793207385250596262504522001244411069415703712590727937252299992325072834241065157914562363601265178625434701236592425210782054386298171077682485160681347423297106201134192615402059671974816757521680912826182314062130843737941242403733541281485261475375818312524728537034611816761417597746090274266595355281975057105777101833302226624487208031630958365382914142080158545887513065081390387297377418551675049926110354413394758926394751223312890777673664105148430973502742721334703259268582853083573677252548406893420386431945342395419639218158345094239213786600936530218361214944999351810127625690630492909665818222776832511424321598707263615132902253348847301161203385153645558515753952737845692026620795837503921981845399191300288158054337280367570787504111747703360241182518166338134714578544775542902852943558984881061470330968715142673275965541212835412343993099206531837582327624284473309925605913201733138315945894935224035287034383564171085468079880380416242999828595101939308767029982966798056328149718292396740551518359430834701132518181503883417937833968437883497828652203675407718622715318046610183156452322043989102023427632340221246044994789510964402970067830720400337142618345423872738057399822660012577226950645075688050358810822010934470253369557761882952213122987190013132547421925607629284406628506710618504159124123134200623611848106294545049349989933679751829731710590311352363428661781404610144277399400670141223765605830090460352365372286099940534514508231663291142177741821556135600249108222864318361408001244328716524550856169098529833583242508122069416868659887067038065854850311225819628634966543464647852692613891964271825697199238801440050598804886147588105830462533976634867955087635656790635544294060907690181358025123584226674208949752268936615785828411485381414912347152312117668375925520496081996417646979800376392042769079594397675817421844142754582542388754821178436425092280779731090045710691921619771766322419873057322359275946629841901133852214660612648145618355760772085611751485752682247471571158620896971048609684358471922110286763893605344083774185516792467894582008875995818869338490131791174970819062595473291788019551338428766783821549875695251902778230706696791376328348560738302038116394432637690624802696188388061747373383685960456179889452532462501390147134211541975887671384841258457997489286728969110533055040714101042002957867066237432349068039608260430348398351895128808805894090696069436844384234197888540675352716758101547178431627475536730095391706998857514426132004559506329143004902307206598882466062226310705916898034747279819722813788076742561232156433995524476120175757018167670341617270930988008895946466586877041358856403537054129968619011591564385989490132509558298926916010213647837377126681251295417571121903951451173706929137972219960913267679452411999258242623828540409414262847270388284297320489469930731462428153659620069040334622643325415025169008489865197930867746710361130016009110403415516521549966876657534878203905343880136908119179647060923561537812532685825315176457410442322516964028941814456740841898821582204625721821871373815163268751127137526990731754686319452452860792327998370228822720418093413963078364279647754381706408013342930934971386018061294468735708036965188623500187192056962627164354814817935974316129304002612664194535308643994330793638979340892419684968238007821122956421924593427613855803159709485706080063646201187091817866085560566902204749835236918471628802282050429784333026841664500440009338681816614970889729198958476323813933600989087273571277600924471440386597766536655208925186764969921126841464096167177995648699904060082368641200547346486342933362103342332986892904901353528747766000286805017773135398502528817926056183955541522362025612749654335436038290070208803033820947634068295093517820067691201595184616270256925348832252418417976939204378757995777488549327742775055992667633432018969835807346686131124998890797641707562703624734086595412404452552360464213022213626449529189471701135164983910648582167150350884361084139605003516921467998457458871101728641466642157108872897937885023348669568886659838513435728609966466819768704943741800546340486357502905398758804605633283150381206838459592597080321328256203034173739235224526789489430977275113756263540995573931611025910732644025531067983469750980550375755740055820773746651154252562395723473826894360235997476311052839663961260357704521609989932825125335453839089436681460575316149833372738387758933491784889329808680956494347393950351433229584513206736122317307034754622407861588888180920766852681195653401541629758946430315633561017774685205549762018199582876035952820252187624838725646492400839542604613538406279052503858739588793571340507837612308071454052629181084631194236262920236907408946325944260627514737948853073146753315212519579347190626506401536570208887344883018536200916187211465851554798352509053143199859119377552925193549755846648392844802953977239951258907535122899119597793582750011036324729963652926215461320533337909233175225630994618189619671878347499092085938462408951861431890425523518536166219601493249740818071345567635151794832268031922064072670514488919957283639044239969616743639677645350151010250090257569919964185602134568411615284083334562382860422974130884410610329247216388127189316543861719961782265641821532998177171727135759951331067340803890350185046616246220328460945434668665355513328632749448987154333801738730452728680287583184059229902557200857961299969397384655538055234466644564625652352131959809609682535673296672828700864661021676759844972751150422618577289484932894324206266577960507270314413684748950228805913172208376047166061805135533981706383022541652563168697973076235822043317949907847287049592088665850553469323546114636965567679686543921502207478604477813015012681294415265380328404826083301793371511325056300822304383190198102397488104224145178253320955562550021031496162030800558135518046005946697460222119411644764773953381666361806074441129299696776652485063248384998718782800842566668500479035796837733561005527232757238996876720346715779877332509983837413602148621828316331238935581311770606138802713095925573817902204074636512595361020229449400739511936454064783007607478953974229610639961307514666803531325105358069993033939032762370944143448852493395852785534284474094217713578742636487609541167890353689587466544600879791196322646903109450476826333813061742694972126862930135270679783482216256141005683338752228387802852309370164206623166925566744439344823751412505504444169085301162660729236408419374031466641229805037157699020415637450573959228825648296940843439664839499008828229806572744766277263274593729451555879418414188349466215099979351713257942022687232927728171867902970305543807512646980144014216453614818564470020500702689506884416749736820973262762387182353399129105617361098810260501925871481425201361849348888901764195322828180595872242329628227477768710126031344517869789726237920465104184022727895665136236838032541024678185286222668043706285704776816467086676584480959408238571807386037185475528417894375159932049993308684363823662455052440214699157970265663931728972065576143693328130824840816737713518507468273386402097573278893703089153319772161553231338789907228269383232378202293146300685191145334351597126249591638883573300258482304562640293372133284565011828260456592656351609217648214253960368686242250657910897833890811959830295655132697209425606078279336684284925749468210793059272508875554920583396685374144138995864119777476564344805381674230652532113600677771927791819250918590771653229022426675598497934585125273953033736547772792886099489740280274039392935118368776102614929618768755530635590431847327641283020056861470968028121899846683373553706442618664805971950748671986692260180430932977741100596874465401718806852572438482548573610179014934681094985787403652473550326730566926059961935087901269769671559655467870011285443529363912521177833112669278687877058254143085935805914572767676287734893699914241245858983935021210446159969572724326393790288357638429113488671273584105729201999121238293144272780563767682240418688648345922952317742146217293331220401364308087535837797068631784137155915745020802708537371617991254012330027890234018294867893605093981942871025884673983531244665591858367916054281863549923013120288484338707644843152195976950205237850405437747751747759372885261794956425939119538091825510341009111255887411732559274001204380666478051598739616761053619801484376114505435419023246660956590026290675657808457904453901110226085460363737070983622216088000528952913098378901462189392314947581309055488742401967379934620215435593762576544646635049061641422317614813269781205141571793453414846932033798367031881157313397329631779581223261420719150124366110220825283231776718949163282054980072446146972996101869278996635816508210734088036096954647544539368263400972877617060255946773350965187450090508880707448556559678485314555398465577174181612215056998002075635886764036628601683984968454230682173774974477588897106070366776560770438322144186559882857132662361969115573283414477900176914644073224129490696368025725909027686671324299957370703300491396620971850158308391341407671923741613513355587021549188423903181619562541423861937427015236144570082853908670387043740164826699020871679274448144273305179412716680261930442523219120195484117525358464678876609950689091044147408087596457965926020701257581172083663080222673167659833010459089294824618696093531986264551802121666168119879574504853772232953523894273464986746229608703896411723923898522736150006788895060470367728719651386737112368321409903883611531913738493930993096643471256922425487273588689207393363987233344416705352388488777041620970996643821368322297200731047873866306522827849012025664233253372685638654020259873089524867316249268690810138980265542864301352463682984591792851305296016590845020771503058592439148645376610878699883717827151341999582766363132487411825861303491773641426721080923372114205340665961827620412738140837643362071737856592159187498131556449479714754446385025658755079891408751519796163457601352242735220846303014518159569933466057618108583231551957155067734781407395691448471017896953912367013924667333248069000356103456575963130496429472034342521667649577869521028975884938618479132053692660302725165531979333143276579367999501661336529514379571904893710486096414640624832003084125901490077969251509011016416875535229040401304138107912025870278569784720516669537346948564156881132017107577504309134978907786600109233415868171535063941322382919354029322324511877238091906193623266588113974428762571444850584904991181626099037525415016291855987610507724929074840344199039765177289206986356780201125273480468581090442766528083866324437752665766321146291699111666662841793011385351003186393977587466342576177778073014733683885985422907303972086016890842727830558740725372378312818525143561828447972662070392238071736255734965336861343030253704025966026541508692365335734613160325246407248086560674779068680445518074221398888885336172555109986310684625181701512566066855791719410607133010108425674831927490379782704848712447527283936889654548226749026904590993493700556769365011652413886801190462588022578921359605151436539269623619419786667911783813993955475441542825872116089027073014756491999977291598562871413626628256454338307870423497837314317606737786263201538315561611852128003481915828647138752850070280501828893169376534864364357836156815969314241781086680035933263509579900126332148446171604554663610038850484735337605056092144723815612224635606483838617185178456637182970881233813068669632377868856745312783177024547398125086107153831184945070762061987649477997834693846625258507303448909064358750564482783043626565591059654441176400025630398662048587193906193689670487020785159354085322548281324932796342894999370539081183811117687926489470981278755442535131575224486580691591627574626177873930472775247728309261874077251837061891222197968458688870718401441419109751614108105235732580154157275339422263011564774257981522080572347659136405246081603766990332374766404631267206347354163825737396198511104609388312909087259433767492257252370672699643202908075262035414312852959536984453291236779629789035708991354550648742002745964585354860083209322139772416874027794702473348224742941769727850919506361625252412244905819173450755760491932120008463786283160773039789197923878118594104425224709339578003895612825303380160881727040963259512734350359586910798966132671480854659313268440999209768999432910663909075490563724441079217723563207869890203425230324379235024129467750909154889603608532091827476654937318135958911049408817447863070643332612836811117787973960530942267508478881861416702776609444221217080121902249915576697096215477188429089305859950465092408554644476029442991023490162044574439562474332838560828784972398023818349686146205307960143331484903583777981999635001171262602320333943211545608998909019641201084348559988267872556189027662125679786334427065319138018291479233019100978336219493149420227625705375320869125700455277120867828702978939300126395698219751260162115025246462613228232793800451800973639712104957368181543390773041023245386320256450017501829509592314892861026301412544187757874475982008474538730530866660619335192900499659056147280707009836246528716434317341074696633679831238066246285724929055450055353444557337596538099840317234179783431585084609015778714779199523873150459059846676729179587386326041502594931720514036151293683372710798188644115052101077941266451035090882684037176404059019633687573054953675701216175253087402623086127253122343959722479039992492684640584856083957523413375740418074348391228978525311051047703277430869956706318153056006787874977779319741442341076801282631519244425531547372677278500226881466295836213166314814231913322712439922680497734033777763653367176298042287926068500002661366304953322615175179227273489221783497492783989340820520025799793431811442492773325301058222647058406607676665733709530013965761430996207079026904045834254610339351267970414103551290468606110124948348998414480724468201244453185480860536133663867009235380340672270043642332587835405567414353485641946160165716423822682087909204162810289516068358008096499922512749527352242844853496673703625044893354653796515135456780734632151056745902943085080538218336324701152990577253080372353343750259349352470752472979937321210272049347738262709608259098218285493865644804653014039015510769598607820169255441120479086739401797434816269863688012447533779039782529751324467387062680270736652981278297181694592465833227774265505032870635426795803335876842154022044042992200333468648099233289840219450851542560400852985940040703179599063500097506200264736099190936377759776824987836892248121429604283604171491880054787091736623652863768743843975395262456164262631745014818459861084420672336938369289076025224416026676347338060298774118956835465614260482647378571389358257868211999539180968463276595263269831855792437379820523718372849763350778050544688088854925316485009695455943022812234944227076153868262791314958785619362978162520477187945210713613660243461102221263892462332754064628330193049209413156296446924805397609696004020414124431269489830316071651259652731604558715003230606228886714188998616820736220704940004980220122247626516766240468566700473187623590689236593079383786347146728571313956168008002094788396117989239750015371317007801779103567557129319653398653259577205221582613157767460417439363018254575235357849261332920266564400453237045334195381659561164353837395510540872186786140395645124127583743547340341285698515007224048167719889793568907063472142330472241036944361450710090335627410508952977127603880569362077075840779015758653876618258844240737724679786568067291043868497908986961341991310861920318087483099565470506011765612889321922368992583542859845691629004517657946510665216571329649860103240997443519641383090377355782482440310497040199777529664239454519410287501228818317704569436323171590491395983563310572955843666844873780716557822708848457231521465917329183206400848832219053882866547451984389774513324867505047660595903224400877934922424196363704357685642997205943816608041753364314077294278505418296412838882206216741507226375137483489222620463591304366042382762977057613275634110952301836004430315449014931212118750328266791945716918057417464918052991789440116853864682145873069904991016070743697510904024993482228448067893132532662100143438999170674679948921094213411406798728725495461481530811873932389945963944225630303529744516103401492734386131957652101948320115857729435303173298364743623566901406381493187186147064979912186255582730630349080745437796886508507204386046346599911763634491123575208759445571687085050106972375391173242241436250335206410821551201215481420630523118697845968279991829059541706182448325182096273746870704086451795564562575449215897853967533585631374571394477064899961524397587236088277217699424594157037958464563135946852597528024131554457906367857636925274787520246609264191076470817916375321969214371063959288096466015121950199461241423771268845881382960735127740465318081642181406416490492736476318617863396207351814057973165768462871034930240107051811226549264130898180684926626335284606876883129166492987572019154366117709446782583156493732679602302854117794441934559104868239698041986767185427357484988229759418660902599072708618495623218093553184207948905935870176962652384668688585687487355755078291610320226353837434562076237488975389501655597455735701827197701909099428373858402119504460246794271525742851585104225991292792732629399000813595069947999963409427556534406113884337614451910473772366698394414758007729141355780340024380440874679406676393856108300653976210996622546705249590620084957406942801045314254359174944925747561035219497888394855620027274814759216764805287594806670956099567808128805843824095726728652072603376358849863302966672818993378857852437299483125972720885114654947498439097720647883886481681955188877185326207161098313564941857541048279987093580150335262079420780926223848933940106179310791344883564302290704627901668475418630455904474884904619676361354106664747177458987550204623320915920648272338823649806856142746196411738686520216617805515762275733706275771936393173446612040583111593775359909278856264196119784998033333220925537036790327882073725883357602061252693334967375286776610449964744583068185206235066005839955632694689803444176313951863344948520468439975886934894741392645776781191183748882417321852871451905447079890764403586759006933082421932930397163922293751909112820497639674672400919450115791178973192681352884804315070948505848942559242403692031249215718598963648622579006012204497669197156935605370508574827466086365880769299315223271487989807370084781282867635050638350125648104955597728035807856724205121516500248652585063627285170114225989674685478392246028923145331170677288601068087184419856015165514707846115815012608151763415321361645135645048889365241262157706763449758191736431727312806093647336328032060895306540505158038525376259903431194866864359520929551686448657076632982548338603413269554095885344295676545956857472383365902341045751915363898342296510826651458296474889683750333544326899046537330984634886355532676321312791518643539062406721603772341081753888730469721653323137510626195990243038103464211322785008262705778152951670408226290126646539494158223522525994081139353793850236329219234043219042588473776178472401788885723316408390964177808434960023874610319469951696654633730744009169123611838420559536215734627053128211249630201181176029441719697854418618101962784804165011413754359303435125895222854052897036852406354082914397575871407052452982016486122834254537382666547700943297638523516567800709449210321613821182852420074180560832274445302070042657542127078807080545479052236395545168580875503723202190744502693699923526072359823579495941920761233699913963436468968652579182465968945843171749747684882217055419036993694725920201036162866874557324249920980195917515251959254287551313010445379763610718622242625712589868817144925501609015001729593364414978355153514643339066209648927164434221483704675367037231645166623393257114481358458091224952598169720147078762122659041021944882506708285054769538729165371999193189891341019366581941971180297568231503294674628646410835281619990168680699527322625538045352078049672910652241083886724481313509631929920688523343146916908942700337352812536661765013751573236453853252387290844975499852834516009063167913841595225616908449018083951940294908606950849630643525971016964460296277419503790744928710537769351556860527647300645743099596701794382040378243370752269643182854838690725648945401346943695232723390503189331281506500321998258492776259280421126838340846556300365087705083566225662333850931604704960680017715568046592084602579209159766895110820476150404040475421809177886801230726780286363134536973305951036381589397386988860928233197521152767275100171261722282996638274741102844601488662651438318918070166325919032566893106606846597213549588867228122513621282418958204423663702330416880347448603644136798864336824260535644148516454529531523823414057391779963833394526517768366507674285296199941161579623196549435376713113123135787116094037843683546977914805314018474840076140926919482196800976511307718273287378685657392254997935378830666809695368861868349083132948649977297355505069110320989372333738056696668957319240926836229863407979567423563784768607181087966569300635727071853995050508529093772878126829342026496260400644937160600645443550953314167463569378302995469609644550061390253454846222030689796928664522663702491834774474645568967766753184781131238564952878559209038294468096805480610821021823766725986629118902999740262445520742026873708082831203439248883018781034636579909364344325267047827136993179002224950306060880119130793051131903670229960244602893246476242610917486070541867159483415031612374419395496837669298597803423982771938211280245827858716288894964201645286721176992233003937946193857955282391477959443660225016399523727383190496063868592332428698215067728315009129561546775481852664854923602358514239825423471205661525602606087896851634760539458993947879166364081577421939299719947622420515336535695360614439631549785174687707425032703447023226651854709430850087833707240326863640366220662895369435643942248790344862306762512207640538772814791997775625884326372132308004420633211531205306316035107963540875808407745504284985585573487552761517496238310466115731096787474734542559242251536029463108552430463874085674749608448481024909261933062565995216071570609206722582572889983658696932778033322226658723095066169248048087177251533032927919696443496284865293338994327140365665756887501190338271016854340625853320363802438309451857342353048185361903866592901674453503747052818890958116136801570969240712526600827456879418047314539047142101728638155837673232820356248937167569155849112286792714652455276105911215563982317106265756405237658855329211141310042481454836974477729912876341995557714689105258180746370868344246349219017711343497783172820855449020783577211535853229223814664331090212158576206313329772234945358061140787980154352892170379038942596535967327531761044795267648404599710635046528176673810861919332785383767518854801847301324818568676209633184478974753987167416340539876132423799013881694537780594533744555219538919637499254819869985011123984440892358469401282467163114423366707078678425721780570090183282080401283595976618066883434523977232789000484746912960179024341683379047039560733540427132264572517520778310913572595010730616777028639065564620363269768797872061069608813279177206861285963880520457268233248227123080652531828950895695586443948010254045711952890698271518873195129376366455212559468048669535854709989597211080999059334603763907621532973980632432962908224078878090068635687336371979658660290423672046043789038224123921089646165332125078683554670873581575743427692894213600519585808850342671616491754807997423563751511630503806057616899719372136277086140192516030312552197550491492848174891519416616532514776238957906546007839257971447681575507068469326811397775746762317659630325790774756126781256474437777852697792945469959135901945548920504859476335940421486954232191872345050358310183842823660671109406684127608351768984002012477667999680230869450082622416970014691539435738393833904324847126405136244443029491072691436279206908428387471665804401510636935141856515197672232538155111727396905089019571688708649234910944143960106102644211507314633411214430390893983080085989874514828647021825039273196691312621515592954529876453456137927782258794326180669294301569649010001751113918978128238458840507854266496600564083221415515009087556889763587998757699778449961115464569117172770949051500104252146951687302788412762197348990755252535718038334040913188025536203210081627069226382382115836484178986614846184584559883867293033959819156954742429091193774554956369712270970553858520139628728727888153121373980383522523779201984448043211788498072666163813506134030637401874238749368687731040355231901816433844469476754238776509242752476523278207385113751655363492461147229714175783407722553126757067279776135731958306571962426706532071970844306206905320378205893635352121041926846241791446735826295080369804590867583237215580581842991995543200201244275191681744820501746379693510075003344884284632988339332219174271459820826330388514140225768698784792794200238443095407183459937574178793747249002778814118619191382469547945457093403387419090037060557057966365571157065634581197868213221874703671569495202088730834132286001143737040957310266024199643729002462308935952214495147545855788724446812246568065565625406776394181791306570980121253291644427186522195015739539138980771038521045447521327382574915028539749767677468417856719792159799607523187116012737205196796497012706242750812206541361037508237763218485800119204321455742267860601460481353226056689953872634439072199962704602180003841246504564760567469189287032088810341530588492754749030232917025417563076877849023224413829462825654569048614856124800992091821901509598804202854875192788724086297308996592427756421393321204295097220611741387810576071932184982017964416135054730787076953639557237375306278973906240424691243616172048350459643371089596945896315127888705752964828962538055398997279179304797018144049265086962285827751116299040115596009701847515187606114475399892587650293866704281676107847428576243400974939102948890116202582887313808321391946975530439814058007343508869349776278169321580365129698013679451968031594600080923136787795997308127301072567802305018205203305204931338675238127846071093773187684682831141325480797569362514907584944954186638409523128669892135128315235342917983361620216972266527313220919295645583066926184979414721310219661320121137763977305435003625672569458118114419062474653426746834968161151360233400558978161334514829698697339409199730976981954693707184688756044479456714583984119386031962601007360184952654506550978389811409383385704381577296656687031800441529491558863358524510386184187353312768678350960533492727892288676712870210872086966167703307582965482969458683775636741825762964505929099647304282969747908234358735274597119901297272852348351819530744243414678230500470177514740567414177164186859479968254138229754354497840124093731777164204790264631776555725486570327616977203846397395737989875545312195523413180281566274305035849556460813616140501338551152645391377154006479209766382837615656779848248406371247722244174451124264055701823606503586475472322928264948794248698547827669210201961869069556401994656604692052014251999469058713859843104036713495702178608921736347052901838879365039915108012019000356350176907049503996009690767623886712816762272613280327972084449179515268004483104777124976184060431514210154174617388947307213587845927979118938689917032040726111042874290407864813799915745151341346244721531261777645479325440556803735449020937207079619535695350226138135100772243265307500397316375273714771195933887034911797325202539083050301221166844363105255516747285160170367471545774238523497643027160408511525611320631836428544507838177938165829105919580617740591211152859427726346274251512896366668761073427246178044425349210756286635668850627130076125532242330930348976440127635692936921259987542804199368049881334329127074759774975359403888480265348782233491111897974436429145007089480834653310819777839482300018589983770368315785159034731469585917785080127895008085564841461708661484048263133006468597081012744140411035062163451293857814093605806050123144134564203728118158978261275666379836458224415518207572717395447474737845253368533121438510278767610175649625431985804708975159060647848513979111887567422575074189813321318838022276166846282010617149681426042050071900728238879957608787144882537515869595312743541746592380525489572172341637216566005209544023711340220139334061533589773150492887035002626808251741193031187508902145686269776876905678908167707286039406677148858199486982582266963060951104892764787477179607408869753961714458578596144261026919580782709664187328847897435590860717374753846915218281701880278467544772800370041893041695260362581791325039937298446566146321098366754063970133427022343624925701204527792620879230342274695834731731535489642308222831933563274105355067596883361962891800142458484382252233944771566522281483803938508930634197690850494706127850882388166042457086001301013114014622348132300584791613015823531479297362260210965334202106563845164558780308507445709619040392913007288154384538763017924267299486620196269386430852698181452833385467206601221572676460368651069594584540026288639144514817704946428190346762924041598367451708841501315184016518210253171080509120951627161415550208494567142294624054576113261442421005939600841229132370200130743730387840044626544582583849899671405855030586962608988409992063820184073920718122595264188074074555711150636845706736557863997811842330495526986775333651805615607401954724852340199370273690702116266331702054340551725017593930561606463166693985375748997194170400473679946331242274891942640685943039133207445752758228800908022700697074696736368324062363977253981683957185254858806692223871713730395751506648888032725319287652072998793759972267676557573213517535215040429814301490011502342911632893610217746510654609957283373353847936943631906901817475541307496813741783784991110641097548049690742941219789249063508284618004474282652678581775835125606420534231573957037284494742472308353934631672399621957101050936511470024143605869574983288625461457445885058877964761509428529832608516973105059831230805835136299017424784853201458812872611174709554471549895317087224266696382541716129149414475529820210804271700347439141683133201199528039507936151727555905063013746477015228342298602197362325940585763784192416561551203062747944655959612167629250356193744684506742125062928324744867012117565628084904397449709358716409911507529555322336146402047076658812292374073640978914853077737286310633476841383270017606474343681666845512119347486731111895144070741751156714799014452640128967404649410686554322128248331486453963252031196683415152678582557678960128128844824514176436657009731033939633251456777013356129584482677674046756158515129792129098229498122375517975150209864925342779894277991494965646063289818434438328611745371662548034007594298917390045051435019793856344342478138445887658609418000108990609755336761339970730960395917722490598710819589922359404926463250414869254850750629218253615731003521692546812247767324300837794124164667901098602488324450641560285681300850324281568826544935516860275357875063053687345077473757705665237708408824957169970579393311812000834841544651422939579438259394452541827234166043004316309492961712062143630502834350284192029848367471110313611951267663013452346429393711579627901150912183686207506947017367050197049733140004184310549489044174479091520209363932274608959443736418522570333543695325166538554898187832436788067955506688887928453902935403692891746265152126900184414132059242416580512799580166450336668694894512251264408365623406082583384137918469927306017429263381256296863420111415528753390478569813636783956265202823765354448252441156673767340559817698724667808676914966989525840642096543058604975900589308784784486949747866132623675322535525576347917046736594735492909335417282311344920488598347078604495718491653406770091175645997839387691830237276262360504247876560977102444390681127370772511251671144205991551384676960875445134684546478343512160133359974185311965957835768336723671995394778334197964834458729730976959012640936346453374745732080535141233654551839138525688119800002898159096237090600463045138012963217082335917045146649872869189291009843612880403636444140925909449139726578845380932259357319214681790362230979183389936238374316748653018376259085529401485314635860458998721743915577258521373291257199582312813300230717812449726453569440598277952639150699381289607936674382770868135704321945748139263161762648258191620940315436849593476606145269453898105240427582202758093282483732256666198889362416392671319779519575249159073682209918801488376429846090467599471975139688809593025151418984055401287521314098912586414666663325517069569315849148542092430562385891278559598400705138456424714554347375126266590698062610037581553687464687709275732300324273294399502785641797477631036480922858621851391845151585750416845510311658167791486599009574268570643974395979016864349958067158316648375425001209950137370705590088299062457815320477365069264870550370099199796550709304273380890244339141592544084271419717948742393595818289184230414815791188182432929994878269077159218001278861509304147119724129910870442028621330135793918134653412735326867348846676660748162912391302885958935760709321029856785798434436014644842455003609096013063577114738539608858766778745753402554292221628846313883654806992598794499531174503730316278614835378275864653482208973681275397159689839013327060724947144116272451001434162225923483508924715606757185492068610174835386654802637207733320741330756121788532375523804057307000759923830077876926550206709268826630176023953180249668640049091856271431211775815853928744531780366866524495014079834982091320330104347260927254791967696460478059751030407330568979692579348831570525358304610162422898236521395729705151308370788677568201170393908976804041136626623509890109567079989779210516215756832073569722145689322059716638508245073314047569157296691844446931294077085859144243631772796274587753375659194562769419031888538517523474605136491029099496661973295059838346423536709589613018720917796942051767005494127484444240606698630999429077015443228301836701739619704708118257255188202376228820972538897380203453192281086688226131051018001007232711251205604528915185752772299766723201925618413758633712879929400790209350066779295396572970544724798817266725570776359081488184478171251617606015842564189606736249024502922114638667640886277484468051645678338605014174886555014624381046461602360912430215085573511281032379514617852695717170111354324083904665733922283254574489355625275608690394380483309313353374155667020477162486868897733805460182258675059473744047431967803427755701241912702423306594851600872393141599208483794700082419212333461437720719650442869779862740235426885658262986558459286577355417187850578841356217232349256414150427459041157912557266819028340810782485306366431279913555661803589144217419691803025063828764092504905040148714083656175435341744507484501641154590702551220984781725524184765110321054724065427174013199853312299080926470210762279536105047497440033629408620094538191072488773692583613811252699471360399624457775925930428959279359638077954721244071157843283270225178529233749051757443787025579613599745318549344845699313426843099170100221007394342355780974711449198002785953400489384769797240670780844595926971503274807338424926600275198636065765302562213764037131898399466876519130576588899991745827883711617258349159910565693728288785470912665233954896965738066543451987597915884394374790151410230301905483013556461806254805192253648992994159692667966828993454249844376669374189261737211519581465424827206140482383128492362555754836351059228101283814679903022686523183494282537304433993942369469342829932186751867903731461303939806270807777320711706362635591689544460450806000603605663907253364115795937497824552006672272429367787222642341732021522231606643150395841675518822599762058672369531965923634761049414380408294445534965673436503764843137000447738087250465141193186868795600137256252371524312432178818175198658336131351030113220507759816480698638852252176248432786440297907438510055279529948894223813468452126068418684783947388086846381429553508761887440708946203619234629085917443096121158879428038634927770838606064880968106077549663233819412043104509246728925079985102042562058491604329293143606226152707641190646910528955222887810641029951992293568319136708435992909608802597152766996447997892426060591545829272881527040850870338787906755334070898804180269854322633422572437934529632538952368763478106257765548542361464081887811117307624271055241848584250776208543932739307465992789572619749115767511309327956161681757460374129456838601889474315748256793050043617650531739272214280856407366436493823546172269322091123929057226191861243934548762959002379090872645433929995028037389401988237235339233684687201647996628551990262166317583426091660112896332055628455680423441279065982409808390962163170391530131603413541412473585834374611717070950107600943046773615806845795089912926655282680817272316119096500781982491242373128495689409806944780036671100064039621891747757509413297077277288299462824998150744986553949682153643259535388560541299935257788163612183961251778117330685288638482551873803698306273304447360516205275225200897539852933654762748809536706413434896865807462236110324191729555096245797828984338411226624918364018251430854785232747144568471769940804527345274472768257733501679716322056437370631599215167656146589568545903823642383346837493895547773898293500348239642641255176175932536268388405077946746113220806596668774245096617005278773627798651225481533825012684263223197986684688092540079982827866859255984407647330653889146894051969113327474833609050756031659166568605876106540337701101584678730659752974608261203749069194635950369849789038855109427238698753430460268634708384565437750515274883638044255959718914101503545403629359927671840331893680024091158719078437104589628228240265186438084959450445708671818499009763148426749871834241429668067746457256142780844645935755675942616226772410269170574919249125470411886771341886453493849545617835948443822845671220528679232901274148557074830129838207335123529863042315968988167182158588030860102523578751352874856667460878874896968871045855442759441947375073506673634348673288062269139251361270726014053095715348791675181867845877776895055630564691656154994540893093902456979481056460300216670179437658062792299176287417591647098072672387970688538483148316898170832314294594299310159045824105138435738584372117760060588077054928852769205899065049000857523909440937065326872070955607835704016709796493370071925300584431520235570193579553008721283870885631115066085156830754854335530960375742863311513878650124832047021379602745173943977701037920078305658546022046967319321380864400131639512739293126564574881975734220950232582466647769141620986060044489468795159470815200150606864725822376884668630039999527613072707496510257909486377043644665401049641777634303742838455971602792419714491631921103565223823171113596100395301227640926985300081414101551911244908555794383994807888960998654844291347760764205529356664654287186319147597828060542619260322167737462966454935770255096455789776024726860341580243947289330756921628492402831292633357900952502112147587691052987587992292577177641986743706067843325287117921341894105059741524558310866856942802196877819767067960391166816591198497200710637426889841342369266830984773026618529713515997219377532802593160938647797328843414070400315809047421417801939836292599479433629404803695571017046939477770246009093884741404143106316542156053014994923497383639546169358643478399190713927476200774390195496782905626988411240658885395533273329106571588998185920016835036011098283757367317802035741257880888236484840356545661950294672762300322207227375111602985733114835865147802036713564181126903717756287902494555571121005844816687967971974986654559378975562509816859178887592058798153664688595493677542207834310335196956623894102454916859738942319644598395200697932728215290452717246054526769183348671043420690058355056107931775303246158923917519926210991685282285234770737358253740973898585671934930735793763060422111631895302284471096519109405036161098631376029931749268012963638478797941488502804201248012472770887449478190488189900606451719986933034660714881347614660137741560077401470131253693595666311028584061336909988101595021083739052356300039063648313714748579510359620392762268172108358515384015502925643067285387928332694589282327608125702634306520387404146079228830231546486041992341701823364628528972155423460790403457276396767718926612665879566469048714614072677954372800770265368259226978595122518562811284202648959404474417966029306971339297232148188415309333045971031947813268657962394544937995551946697786934619856661257935928509162525202543995640116261325674896356404175304253018990301909804579622836300941855932032960797139850177040494852302480831623782798822641605461867129406625133190537615702173749207732074609197959678913887529591164834160438428430680543626486430801763502945551576750127679954371962533372321389927682032241424301941190428073301971977435334246155973805445338062369028601091944471139098826971919377720275661445713936665419033131598859832646290804326406925542075562696853346416480549068260510614899251146400745216936408582777619161219976807695823539313239491985259560940647218995388110092981188065052475586068219628445818323897066694650571747563869646146499769585500182610452544860934824093648828026376174385168290704868219698121481942526753021578884265326002074749637679780841741869306990612253464615749382163327701062111161217016158504764744065856178946400333931250030574541120745397767034379169895877914767732124739980930154356850617678285623482892240914842819884809537471509986535113203021547115231092151985456356530845488812976607993325192160045641733354745279729653706620658145156015690575252256561203214780701646216922601023535547148382814769650952458340806471476186187411169534980384960787915633709257646812689574129220444774355343545837799448972836885141900094375516374694391972921207080536328342084826067739986418142288874976892140662650113425811045756183523207764390505449865232021415038805752193277903697608218698188117076655289648805089743042260972815694866188746720860071248994146705379144434066581048754786180090730445330917529727778027815798439453924899296185442849836407880597226941575094864371607106225577933410086257864577433324239330565633099578150220820497243038645760221658189875168263486679022392561553773841350632646739108407795942371150654791426408906213008351803025623284546254255726602998949213325796262118002422479106741817996813896666573357569810376943197566506172168989712101638266014264129972056205858286153197269195242445937404990817057098326188918628111260223590470022514213806141169739940088233955202616144155546330623370892526608829445050114817080567101926261436383100716373024846189894274440219506750770468457415413002079290066020282630734293312844006186634492545368281822110248997346535263253218289846403928339136516114459446490847797148331195630216776099349418598180659638871917635534644494664570774751636655381155150330479898702196378727431234877246409072511787703658962868165873919749208891321330117985958202280510898867989919384100875164214150868400673681161870048517852363296084178323098042825029753960797566681691491874503748299025195038628876788162685077835938528542909480171612973406758872432665384620597538768355420104568181701966336878064413124224247662764043879467450254384135768735749075001504481790287629009621696360575369346423590796979086569631503438252167347148289321975694992850323364911003456505364873069131598940568374512286077622725634441320824024285941584498637923839482764267690695966015345566729355746344231664084490845070518757153700844110578375188062093111273372793514965872520717844987971937395354032247066378996027596153271468606324158594164301212063574090879530595632245101327181046938458983886185352830837943921724164474487007396338672483628910094739621651403619752395637284672228994394101836706049554305712702342085917268674113138272719738283309385833983002986043398623382304275887737281436575400748034516760160403083025524829556550404304025127415134858499905408835354878882650537334947232153023964194469753187850921226808533802383808770580434991894564069969999428590181804016663190451568410262675507479085292381141390840725078748809114498479122959832123456199175331197284184801013485054123978125078697447420125940184690268884285362783103388276623671620502732363607083328285030049638834877520417246222356808442264651836044041224512763942249633710856558817154244659920729100589772322807796196685590742037183701460497017349580837464364038289544769697483388280594945670655803878002421787713267897160808161672000395326202759649683679627297549913240044853119673549039490227125434454050825698278568472864612905685512824888142911057637023806081213697613623739324235019392514601419179892417004158387516481401325585852010782810501529521359039139960307327265765083025150759425292809313337601356203973647588593323965597370319446504848951219020207568038149530892126211596064845144005508369610552765589352244017069932576322379654767044194435232091314634009759983560679367972620901393925007275985065272842152581218120394045380026870499340071857229366842787887679610740468843236728366373945262048993600876927967821054968276498430675160088380997812813503033786343031837849273382417014276578187777220533809393138645443728317659602645798418422573601349067741289922649004043465603739684260604739187372087123959567287527111530504555189615433442940162523732656480273171881425946707553568569935963337219084803523322425617938817743516097884944977702645500841081101950562924156136609846877027280934749882224860286864018698664762658073175659688105202266106394173632327336986175198992097685920550221740661030587922626177760802114704244360691647456803110173870576788912401158144099364914911165889195633804709568405664002230887030377385390646342814180685137344873388871486717847937143703833408058518044064566175748923952743934120099985257953269752480027003287914865952820575284007595151381753382922182467283036128242083963830829126794682145318725703787258857039546829944472202135545055631388145431168131359102453521937973694423757931499259616480721797037205832438073410158140098135968543787374255006184349422401323337810741850485698239716353647596864397185512771280462075162299908805047014575385963068690730021004563932238150710992721065314220495493623297589340805127121781164051052948263853502926407390922738411083164901525199166953044751015903672318342850800004815588550266507402523417874090836544271603226261825102170111991029519060203463100883608334637357691407467710979248455089507785249725528045787500681739497781822568659372308706474541652879564612059925923580809893275453926610482962773142886165165993208876736028157489517373302206267946043663129359279280259229328454872096909920088371541264308310051949515527290120288835405074673750412200941023245543795643524965028362056787088046339772310738208373246567078452430181879267244243703494192389060375854286225903130632390566268768625486700619705603766132280677095559645607283057352407878888062693693517918373064204405653149943832498654054214601849980598230926801798676373648240091697068088246304757453384593400324622566184544090126747335055903419399053662881558397220034757496270262695878427635665667217464338796078810666996284041711806257209043761218500036510443011735831869923151156275212871371772873133500235620365256683911690511581825879386385592244125379818336016152289192457725136465997011802194397404606514370782807145224325933191636337982972378175063220981519118753635655542485180860686735641509255508606762332330157831363771858089245415261496047505151923573093189395839551876947074610286789590592877387045118314833650950558411483974636008720526224204488098877344002911815140846365522966175481543224198402547786993340046007195131691874381578638681982658450361226449649709737492947759577997827695773689378873671775877363826695063507918735582917090635943280843075397074931872803915550626271141747811021128627353810288366762339348971135751238993280108877633689124198138571065936837724633476466016650821295497021957445345372043826771198174220146776067229777937776015453906827989493921917850402329992211027242368081702029846601339991796234650232480678142711424735431377484323288754198861874404634127843803408043208631963104718507593670784097504766462047136756174082068720248601692971835151561879573829358995844287609242197236645731772483952175725075390845272853441675395139312168912054884366060427429173825412842701403595046697548841130364178604843315583987511573192592037920103235518911708504381843819749763863443310895004792187007754473418818101509335423839738138297406063351545638851118129613231041453515117407455604216296050413899193070079268292638962261471793531782056158216123963336836426479971570114813668360101554873366787262852836505227627126538286728324642986079514921662134772683996830692825404287468499594957966533578908263846549620132383227894675504328093331085029566764342090929398839786801903254745408867992422132096361129449992626162256780193894238628039490273441741310671231031867706762503106453382901478759225499237535796476876609980444713233967095533654580100519888510307521256487738839947501564582588047849806574265359374914064653937435412666906417278078726855584540339136234781589215228607212157915826773911537142846769902520623111741423936121392853628335811173925759973166462581811151698423586071364207290500807756913935315101345258583060653012201775637783882476412167782541785311684424432440108927563557312281486554073653594066457176857778112507772770811491966393411846890128486821171030693730665816536308327450421228840532114559033431852453472612672735887683180854638932324500610961554043048830879132796429093579158062097135002249619646891393381996780614303354525050613902406650958853122641385228168721324067449618092653184198773167497282413029865675410445116675274901375231382212919890180994404290545959149450002979313271058864597302946634567361490707419676334697571641371137605404937817353689110235742340874301599622095704955228096230733960792834270571973636966040165349324773302365641681717721757738768963433431405795738879749016144614500564560504009150964896850054493098933356889069079132530446414551349324491143623615001058010362565147843410059496402877045938394096123229053710649502283384586864735484782233121350723441076021444874025002101092693266080683852288286317358414606646827856370817046954093805273685957256547313614747944371140104952187672414868472748258284531409283652072399117819255131777022355812298547772740342691333773507889632397512535056197201344708706416567386390187839378267272945398591842190266952307245842453182398518026076330749632905067443918992663147401197115013965180956072618249499703450738391695904142239679450375398456749524328307929743818659491874125636872407390312562663396342532176729167463085691461466294842476423969482432846145962922522645696766934045391693369906845351444645238297916278602561850655411975524447512797435602191368930742861074486162804980368617804365916718358200817690825758147707754706011647838248036323779726247069556795403187223012482482918933909799698189932671172291333073180172649676926255916427778516201751471336455954625025982385286393823315856235427419480599515120784516444283269605469377272543159861149964249812246543623974458465380017009842296460782212173974306159419243496658735730437420080863018852826935808602209841312085154982326138866716988674781661611277562138980140299916099451434507228548124375591347483836243477330289370137331740694234019624962140655996883160595334610734912415919001855863440286266371973239009784888980430478389081170158852738576028393599881658539218297512207374092549759867011937058918998345383049719678989174529660147888115193701315483392845722753689435040008623900358931072515112789476565982087607417736568741244386809269610235389915831328545638037959563739823802169302125074403468399976265647838901472659567079410175888780253996451888307832097102595489355005270688451928043856408452270514455363051894591091395579201101685170890788918788172302277679832237392943142954987627778779116396718641106511958901232057696159339797322567814559658003787595582674354307945813488802046084397229538745544879499577528965330692248488994959154392177506322195768748951163468392800212251269974273206187989589459430943361120625494111209468530864496729375638089562794840706507281351834359701154597280897958656018281582510582315155603580689561500519041988307614976798609187218744440064687548004277699323834585433268553014498059300237574810830626204444161969341774531945185373995918268045184074737070958948033513995048016044281258632274400637607540462022800831735134649514357736097723058799780349755555234137806710818784141159061179226159563938851717801609283480543483330138575839254142708610887477444308008118055759269457052183453468246768860873495827018817923404980118841491636537619148512883634092715931917276010761201033637067763312963503675961658179896385863818910458600073127664966093981945079366443610651031876967786814222592621426120924216189105430178892051364633349559900079014875812525624176283245521382574185923232930888109063499785695556936761026823558219705064476266594846427895768569938208115483997653365280903186164745583303615074895186040945849045287204370114554072744282159228691335987937741685563949043986785431726284725105477013148623291514414942002321769209777425295249749339884671534775950725533531327123005154742586004822163475664540859387644570585414838279661993324917491725963543561825597921264724162864696769001305029773833859491028646684684003065461933484456968812172788829235571502200762427407667102717808417522507448791943469286604950341548781228875791165833022929727778100971462996815958746188687027439919864450604579929167352766728721060872105791508619623751696490999322104084358523329212583562524290452158566796998001782080170634687124446763770997645080609067143066249627239384845899806603015957822752317113632495014950492499983620916751277780071451351141000320346086145333318182005049078205011934781208179375459949769276697896078143446315897422091332721092426154993605652138074720419160811096187820279071831879439072559159148269511666424998914175852263418553149158147288776704248812813637491144346343860072497217891015566965329440319235877156984207689075214145330406522238735970052870934203119469084548891349157624602755185584833283452432276634601750802145036876031417991971146692313224172671245479731064721119667262440325894764351586362408339443314970615697754638733863013140490468445676205641846270387496679286134992379836913894803906154952565099255648359741805026521629279984330662276019730150043582624971924278919139499732457059730665410192017163651578126965254872479960438620343988606622777774959851200832081342077258094049760538772067815952348396444373175378957016363127184218335459315802189449095343468027916005813183652717906399344828193278732407747999972700896041521643475084018464085928529488311697627600360866220122718257366860601272809225044548723282028705827458224187310610937437235521574390384090858042570643296537233869381707856763068380082200843555510567981967572798441431761939381906061305419607541671811705306783275025904800071869051790938163204432750243022360399269318652970973231229567536054071882128807196890368568999888134010057635045763654297989234180494116900852423138858071764156092973567948019114848789966938448567379445989943288573906063920702784867223768973840458592316079317591089646181975652210023000644690132853429566123785646498419639897148916363948317034300280672329005679859697583130172255108845856008815831571240641781648357041883927217658940285113158453064351426718739879516418577656978385950366116530278121225689556273124485642925902852263812788102823262952707439783707217777925377956743033445144233651922967735932058861489525781568398928313521157496513465967566620788056806242015064572278779352806506240663592911611613464720161383010942083517057299329827514508380407492753954112065063548894491052785061348754666287796205813600290525403007183553531285051293204066740012650076992085270424553903902398301236749190719873812491810554441909245421680043574784926290950923877334057127313062868848257978879950938231050336340141737473280529751353037124741624516068277227739507902552178104688884473056575109233784810605473216756027825468730653112626957628333375251475563581178909874880618884190189024880125449363284745440121973205697264675175326699131421582695591427297335864982554545898554970947179800112822224755552561026272985221745404880653207387503041515713083364703471370041616217972205825040062240560329105982311130447196853369559582492634296188141372367242684054663581107517532495299230085809096688863017751195916410292171904029356256358100203537084478256405555250007431071831611850701246916043519029190984852178653262965627046838156670704754497075374553126598412426622765249002351842054592050780645082811134555638328187951766577357691920214890644281572122940438152577164809951237594446291610578796600276527144420291736302650094812310171206721155624130252055450911414154986456305767964309238631396371638827148612651852212901838611354754158437673220192480124648007164655739122057144806248844553775486668354649521249310681502254014549225428506697267807018632336255602657015921691547266980327413451736786800635019044889784569021959748820304501369989810008862223303357121308893443853722589629832845182811175637272232598237954539580895060476691418057641767017160803942838796154419949861785467667195836125881546848273626276971991115116433981141089789545818257126042545987823991116033360574328326467577310277392453051408239320166424333036727281092884162495669769776865761972718839545712134169227507324096052440042583994439172705545472427819701128784315381824116334648331565432741786121224921675898031441701111193795680138337036577834271373350212163527417884454523369133805377293212733974538503659400490673586853514172804640052334593859306960221933682853766465910347993178640711266187245983219012256211689008699767548917605861817792524217204040048868973998715654332507843399896442520351589125061881167134939785930454057082879666087147898192279618460345640248696042708120627873649036884228370017015870501283324327537847396207528153904997178413541553308816858275434563596025386776644782557733600943969037556273193013202341394251138446492400902433538155858671636092539518892092077582688154863407754550057306970586314147790225333839070745936684626765575122416849138722182306499842279132448967776865083426730133229858096321778146713935564163743769982842874255030290384164447906253939089858854644392413756166401608555684156694164498724166400515874257506362900333945052041168784183750098087214257315182920459333651270230903722656126913513175667036417516547239250342140362574839424251184675340589508347008086399111701008435040171642260738305917018287823381885117223867506042652855134809549751371290265839095262738640501954112114521838304334354176457969756642259968120466199472802608162216258774797653226681178933776736481768763387198352123409267771240508519703118954928180707352140566701505743529854051243563724034173407245573270331289457121196013044335780390514961554877905592071729380740470354541074341845105470589902983919443226545733510726813167810549494008016953485017240206740799662228668342657418849169845272771875657595252902184100761986356115658067086529026335839815038509518093935054224436316376750291177025198832131449833859329097130742042738557090125547861177651210348757046668719807968377262538936994824839693774515064677350425368059334348477863221909624227515492532404788971614611180922032969243285470532866016781429374663771393237981090293839848111726986195431427313009609318383074475042086055076008268683410471708181983615421459667006302242043507255076098840737263322786581521036550185895094462229451159386375390991875878847628840135639645700445474183893295641739696856006690523650493340713369262746587145977403212177284588836930517061345692381054923249439984594781752420712153226713085998576134969655799085407721982359693078065402474473408445801197864329294452286679839737040331663343283999341276986323166154976134605232979595723955907753632250464293367822493475218788836119013690688609709963279833101763722114024819681105802156925800132645951578988628207791664496141899639067834705908859226207791970518152689194834177333027202578428923194931088677349009579937306596238092868246773324652421222463098825194494629323253354685672060604740874494303930454762119040170340210075072493773030661024891488961612826524360485683328380849147973292525964709984862411201854227030061841266292261817116405920130485004016829832462192906539613855050137394839238168336306615695380061066958095701922781817959684256893506802090088627136666055680182003862805911676743155741820581367419438315423912031509969373801626356143036221357580017030425445129463876107917712957254780445793770862576402335156895603394012824883804943064912244536684152408010870608741939245073649135422650284675763249057361773087053776816255172910118877940532579129410602290510645797380207329558721604277078178734397566878794990797310069318087437710779788604297513641416451697848900713943060707302173745875905710796864100912508405560558512393309981400327369801437340185378637051713909975722628263403631441732206331500119309676272674945557995526473490512134187960587212009251546105116915190278972226063273009552494081290920492792853527161670276137248295826143386922554650718983367961670874386984677219244577484769321931437457787137198838938568074018935491122219857364045666071584844758819843405550966241801027524797318736929346499677171077949460541777059113117058022334017076750758542830484032806647891754729499635282236620326103236304390137100727154589570648094884335522478309419065180235324789220700614113198818870870130547419529849941335319956394123281630843983400147094918961320491849572675258259231729564455592458484368300250473281986089412619035966998099380479529702948092857276531867198262846032725293826530979284297954445127349792382864895406008322846536374487592316385830282021010671064425895519494843111276603865998964866369202485728542520025763582955503297926542366381226826384885322940598681905657937497002949268426098963019567335713604627243056082662626695617758013097779650189817153866058529150830472299806845573735862242408475400190390909051112350518152362574647699181710136537688154669690493654602173155103736076251885201695518805535822884459272596871207545867565081174063804090910668574535054905661047465946229296915987911676639065581679153224420555374024554406133964994231508965342217596198879020083709507731347966589513852080343125557455895081319538925279674844620293878243319885246058821868346478169823813558215708585231975808170393933756316360344831005597880971346057416549648877420585577727388427924439070251435658253321847628533703684743627986111176493835872535222576942285480542384330973008147270490103579814170098498372453056272871790203667418407714947926553983110410132168628644375902731873493513507257047526691836389713834487984941418045901434105467288680726357836391053668969446966830222576700713124502804564718013501774272562456926793438538148710585857234201473369315356837728035497937732140084685645007278083509582568425352238414024233352438744128084916247984495254405055298971869663902912590609087459935218470659613734172866965052015052139262393216761496779363563951114684740961170232947220707574819128082282270153735644488436898382842734795659232870314829469621983037365552892494203737958409199554014873887228323114398883617473117663790782156552177458657767370419172728586171006069267199592927316999812107561358340426971552800456283266479281953811277774659421766146996284724726546505171411700460575898264088277942812505693953076483167339296240937406832803733197216052650231112964461473541011749777898241570346756870458892312676144903483222830864524983096829663869643900991422108899622571924806804220303227946635200078555158935797417611149949822396564605019018838415814860598094311161571417953663675848732400645253986088229788831286969003284812788397268036058457329788192319528592722881060224510665300220976521728144229271323331255491412872866281169733641442920055442383183549012307166170238235263289387593893122369850379047405692807431650210765335891777236098862592358605569136451119701981434636031583161414836521732870597745807735091947401778765325468882939071088881077218919993307074442076982020104233005349071126335598574480312857395443936483500099286526779349469674175763936976759693481816901132502406265474343594432521277539902738761786171936118975404541814141515084538077723055360720626795852773584463934436635539667277885903755529531303927077630017123009461376655566634124554698496030146160659839586744021634055667875662255995047574091402696847824695644940869256219199720549262807889303257785225562120651686881474606637909186878465162352288116350036844059991655362818988425672911397490688528878435706483737952538280735457185307578768525298712064372085273462054263838669556818675799852389654256694347574028219575301406872206096525110079060052182675043792194274354531261994166482623481738955209839871645705309465472286084710555413033383758384118234797598155576960931107139114000389723753148967422449757938281631906439890837024807715794181669333144610982808439424667831694098965720115497687446117774204425756187322387918663225421799712434780000594608395656452923164684915229043059157841358150733555119576106526047269947628253309415414659813705853437669642877519957423745930252208141147585741884046228298368224200149611788698467768742458190783986000911127150666209641385924344800362473545660448081104610525285470349205360269492995257056966323379256377215600722828874783983171961958617019992361226715916240277027643119875997188473500560592580909813258658932166824303479213369213405532586901029691079044965426850259964360019412710872212123521771760482569003730751623375072291888120706566425082076631282582923521407802601730274597977448788852173015656461698892236006066674676002610476230275807074161268709769842959432061031254756919705287346906234929734990452754001323313363755960043742951886422470039430035477727674055631291297137249582859454754561110548167191621996785882708364994645674517547303673414428975228051134535801268397922834451618932208890937865984191151390374607264377894899065755464164792777881783113467601383575189779438311562611515462228590386940510533355605955278846033178508964287539956618323600047400183531938547657141767098086307135652153940699298800754907613299827332488001652992933837456928443166767227874954415492804308138787859664851064470048669654424112655570407521168358418096085387299196755614880352937192427703644292010188761827093751130148453025610119279169691789422933601454943666235542667119590191347553843573701429764804438909409367464048395077389816414351940152407767776244115453751798557963715435912260372574043227339791537522932560017843791966608821825841404190030071326524061239722457539093021556115316651941499027570493179910790347921021577491090402442367617608923732453125495674317896595626147692017595944701239477084741742824062865208107727833215765905005654571153382096188552676673518266065481316792524862238094666207682141433217731041772853462542422687676922284484424553821879397513364834994136452470834007638918754532891689277193176752685158284671245916483089244010112086067137173639134429668835231236746691757321442632464111759112912877953052240637875517227686805189780739553814300913035885926533430282345740228671765447809300567703994976079308916591466531773221532698249111331109465772654687322990950810478178373528441195284464051983124683545708138324268922024848871334513128374706060288706485953689734111530519929715683000515743101820710303629092815192047093939068363189265728738319288966044689925884758606740724799739805163508948017655249190072598848726680408590935641768393182977131550837904683704638162215192305830406201476277878911491023194384973851802837319812823634330861473568284868451782657645079717050006724323772745080105036116208471586585026989635324712950091990263400485107187254894802254109778237991553538498387170410923063842053474408500454859210086758069055729815764960208107358517378192475833402792514645537762923016971578501674962978769686741540965768135080678254906947429756488151224030491978955642454692436382663487828729849975090420014392070976206993104242538987550196914000581965769570358636977226395473563553482564126244974737907316137560652185376467865360604848094328088796173727938952271300421231573080261535196739806736978338317840881231989399465917852668084826877537822584408256300792257161250774655808853842763392089432344184424996624952022999521429925201528148841724144708554954098273601685048806272212477201169648108839844338155715929448978172821929648934386102584953819489718044908111325706062700531304526308647636022486576911945267014504977691852857120758873791363205621600948029449153832806728362061124155529988992471681800370994359943863480066843966651335892303728118718866154117184791687287806812383799851456929144870523811492548054300223940113482125207149973513960533604306496935414204818501277404263624007917314070196508914699353258125785621112362171531979198127753675208572595383284834200655311390038144374479922981278273442854882729190336406475453940411435027935528799551274300655456922455992063406772205288530178263943396820486743478527387487557893256400277261179362172500622659583895699563662185024772278714310698556110545617561991433150397347354646303519302359705372781957870691372563958027090004375611955502585770335798951718307219305315058782373071910646851042749409206780679378537234575270020903998609808457021308845506785442803782299865753325574856265881387024154026932134033468888653140725788390440274781156222227414426007589097430938000256057349584370408748809557860841735139464760581523142513866741396204007869333016293126472840472305901176929330632633284891886904008205025107060138166679926366525628988289918432999952242221148209723326650973868512983645670820134997948740961333638346310279235257018239838124985739648148611946234690067607507785477903159978788986991374675742185669068722162160696886263175863074717191058829415212719981173250511518708506244879099343400045009073791922016437011350160162604505081970563405876640545290790741577715460742673627064386482215664589294229828351485036522502969325877182050825103619552803510772832962123677967787574335628202807237817919509237749213825604831410673258440325423034702373408742922585529080738689343624754833377049242028633093315967873430379781655527812491505879156924700529031777847360782808687394824500506850371591022835824382866931467048887865161264502096705507866482966521632203012265259963524559642982925528076010116837775068684211454205413863456315195543163748501662776660327234571320313534284895232392270943201002321500749859944168679015336381782272246393029859585726836294393423081124937552855716231360354372036741678077608838372591902123870068135080405011597415114285961450803160992771885192383570737556879130807818756276391288439196317638337002443546998858569580700769781912707370271202217854515296511033237973342964442609482376195451310721130766389503494937649000959672809058428987759482713318765958021464936669399205716345905085001611977323950281104676515123530694773484357878816477349761283500088015275061447822699453758983014525951747497198483346769899918238134050827974236485886984901779192094482993215876519948988983831747962391833898076744654004533762136519912841604525029312026923080618956834974069469518800779569011793360511204446456291699755171008655627885925645870337093389802005299343968158316358965170204294112976480368470917460628473889099387244878314409849747098645270356552244825225467433945697897704623837824275892283043260924096880709841556964875064730650600280630164092877780878248619998095234137158520256533159835325796663814330517136249009467736462571833083740585816939441896957440134068336399631839408395624738075008693123031222015567606941096626893628421608520234433541990995424117062357409364179875151925424906600838264486662922810366563924792596824893829891603386221152977140732570261321401067027724582633663561131002275272919198349214495639149939456638175670318519370636668156987726790810605720808547960033696763345506675613479788728766952151056224313472205667801899912166857225547409773033327958678703052086249305679313156925708204177516361330937767879409562164393870372058845396353362690269067767251953278515939466074345755012030865233201497309440396208058369460961947389538042156087133087905700901637481924228665410720065158555870488788040088921218339725973710320637886081635507065438284246353774067343436631534253062399417721060725839804243905777265411418910993640387833947788527240281394194564621361772569781735464210221828975934499383842467627736911036082258153957226770947234939272699691242183444346832667819583071925426177346100784155747145890759201296198896769995899303636865580591025249219020514438213178032760700017832587843339596962385482244098258004593943791942775532063595900289428542772698107962008528325918694344246577259399151026321586789148839592640370322895809928859931034825691013812564956917707024720905692720480448681637155698160527017448139779751537118875672895990183096896267943932781711847037715933028730034997420609523165993091396353210301827956085537288200149273062491770574733386082976356539046068512624498143601404060533253106619374801641084294029819195232096595150669077341357763207546313997606635070270590275062623535810877435767320961004064189251831062521693665009852120947983329062790637079600117563997367357853193174251807772529150439277540042671216665570496151977118435597851727433393000582112162906563303934656642641594756495961232374144249652269233091104774654825889310722304575093354167846814360522962078805503791291312950136329632674895203813530494350624701795493120275007085431664605200805608996576494274966622446603088098500803065389074801277119419109011118913652664651445330109729000929916340690418987950887893862384476365084598163802771311237909504589861115959353605637211917261436613800601455657617658827732547805724096593103880475186610906427671981611768236891842002474378423086699851101248834344287649137206574673112797103750218776336771001896701925708763281741789876269790974323851370875127108667890782992276955119672746578263117097764826518357337800782012334646031154383192693859439337187219700100971416225846151056943278519681816482173455241854367441466632188114847569673996016001666138429135754598441648459091909317386640321130360363958914276159421058982310315825405695366212279434078886874105469899006517865348886590395547108608354857514504355666416882105544690564593676981245014529870292133465405116749004301464355264464390117469050423862097637629223807953094550969943536079388545842700050838776353002697165909806073301644325916484055152407583197741762235157896775081467291210128686096902683122622129951168641321808586710362509577950736204623861402966133660151885706924569248090609692370684089115628605856433784207464109052154182527209493691077056879570241292319661463179826645288603160400321928795465152943573196607120024653518062028309750949389747435197656486315299978733391037936543551519986648326179126539987264929107893388781195947747330701390881295811976983455190395331316498402905039077808972141827755895096254003679827811552192965527817713653064642291093386539221743845623441515364360663887492010583208034756257217756917800137809406145235367402389473873505009157300137904284940012175995671250048875221621985331346322184640323649385804564106460665034575514709919603717591516895798986565529735908975649382371138722577753536484193216650156488847755033049537241130802097604952946731529685937776598243199928791072265262843011819361638179116580956120115900546263005838966990764152298870807467904857593478538579279466323706244427131236575515765786025000899957342355707999942185433529866299882706402840696954419425673918483478053892302887835866635728550432482274151691341614681690987372118889327521273779645989439307322374050254333290145475911311665697242492772811546304081459428898489711121902496033111753533840312070601674674731290337201225870765899968095857059067618461781254584919635329019485815728127180728536746206100041810416698445349161265407549298704631074511940975464242768937805128622101916436405721184830841143890009099030509169886982337467936110362923521902999902344736272444887956647334271102246593851310941003953670522236687451688522150630722529176982128528510945211259437722993908495092936617884832925714237166891405350841879803288451527879726322754017041762639799608721067786107498652561651629186204031669874679935304811423424320791507803756176539548005208816133412222143004631198730563745631293441276781229772575156920781192581242588455699369773530606053101366201431459294242512620709378964645004216680312361963373858454160546893449223530443500220700555883271052801498955825065951605258816831530405572203063667378481493556597919165656053080473760934297441938624566368889677746597619119140851044370309887803433431671665691186254862612725776292333965308871615228043614919909735952513864647491123966808747917160319019820408051953578834764060209734223094539497054598233826526626501029820846803588799966680133653273696197281521010562558851030333939521612506598232639716138351922075671324656113229027260386998729634633523595621018432707626109672723911044682074208916764089391217137493142719927538495082553145040979065511264109225244669518741609977744522929628599114832305562511303782876678410894566252146006363757048601768614393135987116869346804175039066980776450185177757555591566551610482480147001170286736410076735524214153108835311644460924221403010774056436803248755617981883487144871326948859464137404143823260701478766897267590962479810142474249836995344652223286873996025863367272662130884274630932688235617932381562895554177415509158163023082631206441651445342253992166342935341161427450203519422476884054106962370443655239163989328500403795227180047426466144904332446732406344592264897119245092483642958184926942991670389931455776412371052589740146240274412819791599691087262012145279163228195893367993721404737022358140361689908244142059369206641578595960564540057831312928422615851009836801530529074714022253867499526990839549401200817326407663745849808547187122851780104068700830730881720683578524630614745664424789009406327481264870470852496693087075507511608351214699827543350204831906632558889133408613139512844756419112419162986659862286915600632694293762795400007443275254086564223723976806446227725145714575157876917986671259657511043208091719488178604473115240803933516274984552600017142540902980921666668901032114749490161106655286733294016534370970956246568803689595522641494845681401010315728235842011074107926963244422777293395315875065151022573962933447327741079880414926700438593008959465802557294673846955010104956107016229543369632997710343246684785066176034798558150961711372118567049045299509467122994522013187781280227128286621274612476021797734933710643839142065687601069623522959504732325448561615452640742014522999095785734144830747232853308644482890475818119965641738176115917705982059717711480467026668938530965469756272520050127371653395437983162438385849681365946478020962155222431468443363033316889919771037650483675366617067057069765087026029594248760246217764217884671086341859862348757023376090159592006236824339620023862687117064687878471953584659172007139235466392425634326695753994638501564406247299351385786415257016189659611947728418282795188022949547250923119928476782630314890274893607276068567059318613295954917028674858860290275032190005900004264208707092719102802309394074603225905104345382298361758627830565080855846864824190648375975197312140166275905192407317476336716803286461323804479131384908083441435354514511135489207235924124597938717837841598882074991958424137042356870620143056466294732864261431381465791601328287550586973798650287761646293856062703103355390020495208966964119796002698209063631372568807230617129868551053052036803693716508461107929654883098036807400295347243483878034641155724768108654446614108683696429356355495566417764768826213652793518485537273924709649022432121859211133127606160596569333180897203417518799556448606552578968230644574969086857044169239339688800289197609177613868862363580721116145633765755344935259153543338547760865717372857082715057394238233905660705503006543737320160242887108015233342542219897230898609494493822830418962475153483180120289782207745983448674352394875867205523069827485920635656566931690645363335310347579467034087345054212387055811474971759868297443910005480011455851623700788998840035816575159731350834860501100128923218937991714389256974515654267806799551778450882213431889819418104217916686898280356180002468337868382527519523667284059955591734228791440737638832845062159560097821295252348057482586684733140301503863916021547389365371930459408833552324333194183058682253197371921802648865443824678996557461970540516699989791153362932918838205147125635055478445642282648828790896088248797822550350963993931376007486186712763761868791456325852644519761250265120409939835487771699993716513669313512330965558377453404952692656142532271327113338843887950551383630101003941526581782514675305917983291680991152826163235131718403211762833928105631650294931560966960612034019344271745451082295559507777501982606308236003237296571907467307491011056535573442013997325343446748091588700344332003369084188720970321562889445623409060241726653400649248545558332195824203402420337650392479464588033503193468110692981537560390717532851854955920845916897647570339050447303347804569348079638660865249489357742381281271429728459702902994015999829828676371301172656205367261955464961971359045955786646049465604207256673256273944237456054256072625612120840231515315365444812051714617529023426772776460033236549010032130549571288623553673344891125733151432734601978598348732971106800422298975769104389316912638145633703022217307767581252521099268816099561965165865994406299609874234225663723368925737695424030341359150441248327660220379523317110131967427990504905095485024968276880016460083607829015803987039132720926575540545085038109063698433355297687855043006551683217148442526626479677757776814881477267585476013500522194874107241194332113036716436662707803066895642076699585288019465606744403977521199155155559767357517800260914904681043577182613621418000024063792047585326345246484104874984322437759651306044448274449312362312873826731129593152415337177581456744828297664246503163415095672299257068314267471337856717262900753406403475051512085296030530169830758787799174044417477265211548830303318447343564269009035409897025719763863190485474844034552078408135650411496073493992020856994296907792049258240742875835766616755047919903728868048845253434711969992765244413083482348200844162840901013640819997837053438465401540174667733320011765578097017120808905842931017711062521118376152085750806185932518204563523119211243351622989091536977175392674173787712944213816883546630056640317232426744023474163666828245076474301207395824532495179960588341472039723750546017970253525382121948866897026835360829541044798013123336231836007548773906486202022314930528273691753784595270653729160693555950533549756939633124641853454227493546858865435498733312713436256824544346670827688083608997319030913343819952152622590818224284910913989323361051426284978645182600072028977306772288345387688401250542327292239171904184138002914894387043620513122755758699596594089540653634611592449339375626186437857181108140880446856280863911303875211339679540051597028149613447857541456547294759931633010201153629908230493547805129532181744099814173312921165556899919079437295236754781196375353549643137969951932351886837230200434883189325111153253902307180389487291381973612336203895793897205353715090671872786227398955402722691936197386508930590529231985326921680595219971078913532848898344818171081455269416426801539825790011900329649897264299399676234935592672346543165833326676499440109728384071676887103270443753650649586036242345496310150028510726116764121911760383916536168325232976982100863467354311273795929100795292482436648474815319749382644344842021120510489663007916485874012873819005717070513314179015504063560600888743338326224021317757769795497915792198507396960503958661121750687759079574104896673411675618296515786957903472130414770150057728799815087317824487742057050443476407806702482964863923340275436280036606950517194626677756990560371383210966267214061379268890687004674842785700974741857395166517112816679576854888761744960405341394365980016759398388382844193167516487749132317979971349895158081169512898330513561066445212870817110689995922951276813559550159371242356277761283029859944781818405860945329472948617286541744831802865015814108345192553407316125105351766283082655806902905762199905042333530561707345196352804223812926472274045566133744266255588785326742982229402367321883609728787967142224255071372270586441019854194774348687019093967734123593651168200795062901599090235162947868291747161895953904124466438853611170564557282072301032721712420191988447016561055616271757838633022444913765833966590964163040437382979484628331697095371136800483720507752147775825678720660187775622869795917413181654620415699674929967507209145441473125616086596311222211519995596232019724891117937011611631236237564974532558963007963586613962185313572162119770230866725026118418556562507923561610276113274939521459068016828044635014202641138489547635306521366906696560238418818611403288446860379778111109793914194832189533495790867917167567776420934923821745460776502710770835282105476575886938708442882407786228115297957407627085507267061237138333619828314963873358845831328727937247198739623863602750553141599363283259733824369144485411711409489359364034275052547016627573537341738535633892450224852221271260381093452876870243006218545889084489663193398279472109636181706429527197465684391511426167385765730715967891022526401457387600184637570246963109405444356817929430324486713529504270693019379462455666227006871882896988168669777889839882975049827413459519680429254798720393801031647040782255523646881647361631850430639651684968593191766861115652476320976693908009733441766897839807761383950655892479492630503005527102048173169099647936870138500142160766463768384606803779633166979620608408304554093742808980190901751689398685238897972125357216636250612875912723097767078730633121138378295145295742589554592964952260271141321815056745993657870447216561750279129813463526251708403189566752661052071570463119450992735354734550096685299450550659046081903389936990743236749391641178121904407243822229109154489755164415704754112976213469556835452199087321959528443868924089221322130420884061843661675080890952565008039209571235804820680905075470088087436513240687013647686523667988194346963663636139959446306645333647373619706588667456954314821324481301664040205043053619049042838923502058178969067534168776128742477787410825645865072009159830074965350184811993763840032131252356881044057872228746326793711939455327645450565578051094315303304637431425549957876363908736046562921185339458797765192705554332716629387021175605073667380444554516707767109067579560805753756445693484350114950010879447334673443020696720321977941598913455964879120719268992750884581874647787979580717883739450487069128660722162886304559365319850130791610655106880137831915715387413484866638560373790618658053691721217534957585057023071269510277477666336144951385015773452201376601404016763733473543874775204953189921720735407609472733534826454200725164260778494031217733058177356313313355544082009274895106295722923689296282512799635163926753904001345723785763969262852279005497553697204862485718212780598592756772048037252928278810162583560122008098360173523905974554446850168055114099509949258273599937092518648317100291136864370651628826137826372245883202734949406112368908416567044072792748060274011312252439353401614362363885336633507000917902327733006690272192716978442635641160541786338652165191238697085784710644566851949897226602344170204650448070973012754820487562714916350184005813674763377465109879781975658554599667563058136607111236701335170107011299661263321016668929180433656169696341569489972180516475238612738006964591368471590433175863488496017192078090102304165392682940945021946813661935502650335875021742857263700814898626788991035195918468826331874327064931397820343103163998495702274608096405987540930109057236118165337592574781467876093905109024076487118319895878327839794885342823941088056241055134748015453293405709688830447051151451027514959357451404862131242150148138879967539791764767660182593099004269047614089014015758073168233182795339003175757304677796647584123568582116330182987655604907295256000316308648831847830850021206078674515832629638266780859018724129836356138244345767757630080421658667549024351359811091595980484583890522333085438395468633043558880532777995105418741134457118630421656639534123465055569703507582827549910137145700656348020952268269909944893761325274584790698021052439092060008408842485393821821016628658786945547243480502008657504348760832523002907606659811084855305431325466394199608696674157108528514426743077493747217590011029652105068262559428349959793503769923725318936244613337603272468948936069506576631409606813108517683191769326991865953902265644534149862907272741397047625346478172283135278120288503680780650264572349398165920033358343626830651537477230340383198810487698822882528377186095140086583033455267461946092084075956976613050307253011976621221365195246431819342660883188017710690798461921436307933321609950225366437954168386768465845704098538449627515165622878699504962862162307679347933164912792559356520360898220775751631346525619561884445477615943390078535113518852658687634834935134433569097653176538569212982106850499958958965597201171859864636204620562588070302639460649247182446464988158404212914875241697808351649479485119794614515319697986312272258313131895687474197472038050460470310788699012332356777182646418534314254024925108046528484334869007530317509473128963673882882370144655985686946003480304384307246660827855324597073882592323326469573896388468393148813222346061454962106789589327407323081439799721850875844629832743967283190739146418075093107826400265776107968477567223011842861802967183317971342602385579523483186897192970540833051860392185763857687628015698748524343589687121640392995802270759213039567725537603784402492670273324899722985670080016138779086703897634626036136667917696667634537522249757238586384429908517174434959880451011446232399921649886876407076458445344050898692085671372804272411321913650375754695697487558420726539418377926070626701392316844097951236874779084788368984373828577719468768195736453171493304693845717040891005793966985284784942718953925191122203305307380573661829241508762396979071598271090735117858781357297275704000566356117730843249834658300007748498085572329744620669459306244007413678336058582357333196637308770629412836757800588032942378059718201979256200544030501707283919278411521078768958256527999090396591177939352981043968194008559373448084462558577694294747055930228524325056100296556528952652089877824444077081574658195817684055377675498310945100051071426927182406189294603994051622262001490639538726558870306794375272152835313515403648042982642785303524060316319473005950616966449898021701432484169609619928960335759097024454283732918010545757552769684864482876418882409771631910973739251407445580404011248546420122424581158275295698373275479028831163548400070410852003088838185531443934247848773973978743176106832490245784135028068542995632582294334477772654327151454502914522876407763247325043139734878009712554407237946450008332579971069831149925508034614211840954901772889299017580799485798663372615052764608937754613659840983748216482835695584670190433876426901920402332059641973157171781793940533174378566651519656417754100444804129046691282150279284657175198203801878250576072326180397881874097097045792723038130097546555545815165466396599512879374664664420947840323795732177798199675163776801154931234140434820143213203263835639112857468757641972687795925185296812187202472904413402333247272633039268333532182315420966662158994277204599343575778731532983872596987219157394475265774323474742837860029774598890988601804349870968921269129800022161481427758668877382070137808967311269047212524633108167598492520198491835675802756075575667720817483622767855906994207322359277186670973249030961121882965400142833862988201734633654777327222935660314794491910851961174582471317051910726553941708197239847989059517710562318250377767769103055580703297098595092885179074834473985663039386326721214382216581129944905121621900886280041422210981172275934330176989086227008560300935581638649611304706657964411317868944311717495196240118514301181859518136170066835705572493994407705136339317542736676736310300374050560225300205704304747585955270543703616061312339063760591961152632913847960043615529592324288026384839540213569836143076905808610284286903559665857729414597495922322730608135102659470879531732069455141404729595512742483875766564597501533531748452374024569671722497353013738608981143543156469266305177909441455990216141827640103063488817096776713801424581400068545498074284137665396733848478324696419749575514847000792179841757205455440209476709763693514442625321720522430270004540698660723115581902876099389841039174150139607965973687539465940624567371803471950422392120254403858902637112139350623043915482727641339114461793170372938700060441330192514165397773256194653357444182341561316555158693192018868167590870261203458086907773024632529072549221850383940460186151486939742360764263330882160605350103778378184523417387874189625822492656157701923385455537251782806111247594399130749173028873765481162511928561784796885474118125670817772073384585794485845624485180430513398588533503262677295528032121195578508646155808837813499362890355933281344900299786079250830306857180708553598894029899091478886168132232283284239092039668568190642864921455755374644399604173253702310409902169289362043740502823837592292384112147795385772044878164592159884980132446877006298384177582840744800773720055023562520498681080761127420810904822145589918699260027564435803540578905666428203880412109796546231141361212110366041932032213971881033775955538764958863858641621708501429238652232038352766980713630244309455814284346145347220237988753911888973943286994418600218916716508903644267359005174409245854611355437036038680657964544223081081919082134813510919147904377328633530518464883435775750653813015294301654755159095767270545178309651337777990272347157258817600676789586907011828004268035939357813389471791025993011145084674766792402498319399634885286807414870006002599416023532841499487122057005730053274297474867271011651426369542792133914327212945977469406262282481239106119177598313688804869693332949058539994509268590503514652363760537504470434985506817615064942195906369560106212070432524769624790474247906448587355365546678517859850136154781571879299495064175321763978864931207922193699477918758034940717752721058397527952188759775336374282378143915434866924195780481128751767779909619684397028595831797296058920902688928334245742496656299974168067441792831436767652817789926692296684255791737558074105274683140454216644817189436595461676393469688560159932280909858108071109051534195010946446095941555584560185581275233651202492907756076034036269626936121952372424643700420771018548845164991846012982908916807515377228897469793778648746174316117051260331737434220763133853300039995682353020653151374846415974110944475808026958703089491922603870376133240968581336472030973548238869830865185223916917990057265970927430350166378507048118206619927487721436112371999351296446668153951906154167021452235014140589362899636535489502368417658075585758654138652720084689513890537152017387268296948245001824269112795116774013809405421115852375273561501986569110379711299539960082668728145067513460004099873860250728581661490007681473701009231853869729488013709478916455662744873272958426301645387580183592167424134623314287016597659728507751154288895594546861480744480562288654964998712763805117826458193550651426224189238572497138109132150533748477626037595612407007033829620061875834315571379066115720016458958336542228820559632328811450097233971965956099040753836909302765019305575936121113303640662349795626029035275109185369085716458870115881131118155281339789752391356288473049906838305018294292430285926605757162133281787111466567580511903953422088466846168619086834548088854554065962626274485871246941873043693584803771647507147835676131241907710680206641620912298092697413621217094687917808719213200074829597900127087695822182925788966400903843664998602287300185958664532590716568287325942127640482236589140462357833287233988412163168496063163967180426037804433046224005016158470450655768747358453248158285536451349875493257425656930419614613293873301136504133274850395494725137711422860284855898762011665719922462475745734700745159357603175953176852517350613757343976191748238829928891391861913979390901051994428379476353341023045810224830726709482946361429642120371863930832067590342262890808873738086144190447136108386337397257761865885656475047352946568166258147716078294814279173669004974109439423655490968700443614245620063001984587284569606638158473359590662118442732169151282529516583262933208193481447598048110139700236791091563789692349762654376052146328242175743706026126896877311727692510313885250871370179130116204061466912607990145792419628666263827339950841377985131492909181015046450145978021889330100686343141671517277035567376559174480263454467302342768662548548447815860339358899008025936280218658430559708603503140976827703997413758735078369109256764775804258794024392657985104939269646923339511812194992043767315300569447489339734492351986998871828328681893312554853568737635907549696095490310908511152978341304893416064127221057784267463044557152152165839356579085168235026908597116880880312337071233809874719776781498297204522853594483233103093839032205150809001555490289558689681539032669620460199576610576064594952555830272268452299757960966538747618795992439374991991599972253917625023486096284870440311800564288373965836499339419256009245190159963461453315735953919817202862857634010940043892966760515985046184979729844236545677271271153134585264147202737138780545721254262980349487366700782226791950417493393025487111887145035053743298310134350151280904204954239238820081887793306651728134131385316073810968070349487713422377456452965001986324612639609668200909959559657894036511708660777827255282242595222747434213253772124979651050325044042083464035838995432287934625330783716990147048550467485607162092507369307814228158235990627280488409919331031722700479899056278127088580735887309103928022203949847996269121277898375794007379788924832944076767629309647316332095506862555735783874658433595410663462182383097150959657096238677340727144287412176528295406721915115862904828936514929162696676194131318851614853415084220185114344508367658459613235969293060854528775325462007110805533048462775465517530958041620306362517678288402086609992686087386601867268840848539496922017020813993239723343699432469551582126732106947266150548491838473763982300693025543521923656048502607947832203689547059858384004939642863009075273946043760108718283601687029388400513917943341105915201399331717683996894163448872554650747081956899748008514435560826275032961110123786328891071161053762157950890159364211203408374312090774285326037324736369682149086144273232907807385513632691630030921159204402705461588695965091303349334211758950916350548353387288292704812864039658644832797458481299951210438584172855331120112111561862878987233024554204237189570651574099704680698014993758763910544672302064334911243349450659891235875599167081696218839619881061805214708107956254082266550709908849731669454406627543640538203931401056814851556431797479714583748096441721932904095409013666671609101031557097252430753485230605613928662436098764511819421873442062904009801502847056651744952765587631120921946011555935438319082040378530512664353460374122893862065066542074609999762113679831503181366974927750942912491192414293172172832723867651968211764317788534694765928878816893236012266970323998614292428058643963967310891159908785493645529445541151375600547290895629714758784498490800842464170489520564076842181515254669921908330641364447001088210116096714676398034705687126081815658706166199162897281697939886083173497358947524310705532542248346012886596968464781382948770247789427965467080729653871963913180363312440822905327971025582443744061588590017553140896062397862042081465520542777443714089037889733121852824364917299147934294028464983076584595135431761318303999974430806488910398544470219937896715055069473228980397555005985994035431104947134144755622569567060651885060802589199829772240417652354317259708049218332102291883643258663369176605255334533916949811343037070964108334799370347381572881759793387804538752669405154111066930143850732150071378313818033617190380428031249224535062844945322931778571387147397934625206417755282275755729706038545331504107538007536731983211058622088615669510084186987868426566718364123761840907629983356919115216443383647726199234162561602505481540783255185944644250907277359760757526800278753215096103569659757914113538237500399371393165878604530379683783886507094372355067832485774519249728797054075925551668513744720822393091390609719990895799746112762448832302790798733482686713305524013561692499053752775748205162874670482306549233500361272598250693771697887521942085468211487624945981697166612951478564045762919629617729237623018968565780221344212143221018520536720920016505709706146363083445388368128017358797340781508316902938345635434046583338212439903457039262536693919287681984207172817309833150169697600979835760609118972142267510507109329456975021869809023143568669644131691777573484294926245020981621143969593901163462554474359883024947604301652334698628887497563615111907696237501389539892645409726790408651579740847902533736322881844714943701098000981974266500219413582912063295987108722797418684976306096593849547920338235570638784255016985373091256261639688915120298655039554643815648128761197811101770064336007754846181759064985560391222613422341352155908839010846601763354039554029690083708076391412677209368732094361429918901946728696371652299770138153677327051009414374342227727379885138158227058009113738996424554793660313973889091296755153161239045544185074767335558388555847045739953521568430242723900290909936167703077931924416329218842936757488480136216991004570677910598456246528916228131173920325735267727747339996368294330494690252971867911341235279480706933936008651161519881234862615849376147183530675701890778068212033050342156532389330655827068317825773461393962348981124921005697252539269985827076023457822710582069745145640124452484768793017762264497340380911385588636102192907396805470562410547795399641701632487324250239532379274411897711931102250717792865646215671810501224210648124789079346750213394334539177176121271946913407189159061098309730642738130889888738735302296960424617221555193705882737118268236804547345657364066655637972938414979135412762839257083979273659387575817961117260572592446236995597845168970740686590019402952499377610542087715222891035455048955552114273783864703588614148544925045619292137197035485801530216704932744070185102052835754648402677921733254320202691114934056185498084066629035234556869572682106657446754868524838605349405042123763368056334655622035294201536718258111933566853404410576827992056985977715414397535118013561952614554073707336450667830345476697533353555847448070587379145948299029708459790185200289113181942192593086653335749383595747155976764933715499683139567847540095167510237129917565087778597372078594394882030150269570342736456045983561278876210125168172412031044895179484322363286604550949369130109320225376549338205334500226359706354715104379763632029184160004970811641307271062606464670329806351592821473007392389309734270403719849526411343523550496288706104319130917434497147074578717460924232759796541362790385300737465441627323764605864275642785290865048580648736151656845955617543153366326352718160717968070924568894215306631021800277612110085621912709174595783279448252341445964869726317272282705814767232477592497259642911773116239640074449315654738116246055661917060307076766923438924628728112905923433559577488530221150445983727905986660418854308782741695155867764959350664635327884119007380945024285521024886688260993329429417678316384497589808969824436976469922245704873439795799903196830259736284186336205130816836792372789279703858227080550870913811197875839508565955015722437027318852898474404311477422131830069871781358877485325488844349456777045012039405011672068375959913410348914438783473915453447694243967125522572706274412675265402553271570793279718279394981994339195049791303958647619288003220689471264741999808805896818457155402482289972059024209676875309521706620388348669553147316141986192311074813714095494568062843315421777074015387960541855693236106220970424050587204079384638454014662147640131195087055416073808659278774243285615951114396316058393648553590578940602801531402668762186074249721358813222918353318954027986228825992972976554769134425578340047285075392901580489053234287058033520113952745777759493336380306606561684186722100896015496880406936325722016344271590258956529831023727577579984471499079918124951462062745869247276226085079039043511112819254986038146072090451267898900599551017164263754428139233751138272665768475794420923956244242533031400877335475071746061037238490072783688327023707321029035510621582309214882171374593711639670534329986771102638678639491151676076202835742324088368474250162864328520724229333953427755767245228703603242687005553463488687322286611739555151028595184641752864315239231405399659420621543153495955018630133681127108364168787821878732592151964846082275191949541500637080210501612820390545783795822140965352454195728872143311010720845485595298226658618223536569959527331262236283899965495124228656286952914944868712410024503621327001094431360452185775006423405448924033388223792922478605607017678610874299635904034890328140450937834435831752217169347087881562287155676070998826321879932177394451867058134375346045983121323829623091627422864024611292411844208591294439643247144807568738870476881712149558277522613103626442476938279652169965574342751691691499396201877910211180904778318239437006178206663829101762817661901839598278013984813704540371113279176070733147809553512214736431762464720109655133790862117472928695451201166211758954144880254948152286745597344524794297510669997152074676589637752096347115180098611346891019206371734062202013783594688390261779484829322599717366466401509356299283605153386066173981418954824884483934855128277967659692999456274875095425006309966107824918015683403976485840953786299549068670690221320471282454527567942553174224192490279763321227852112451176299502957170351213513420247451513523829315898702146859910825398422881438904954545696404809932133612719482210639417992777854828363014119151162369527668699637438400228949347165006753568383084172152034545075727189324716819824651708092810949285093241415806295190673160595109753632764012032077097952355507535414672842221060732181759058228263851351090600873754182182858053192568248695128075539374926543945221371607604627130446716620022234067965834110558236194491873753799467931595244130349839531704436453047416456934293617065939042624304311909208233225628696192715911832327090317162354047808338021023404551793316144117174214966523188690328906946287714713885198687210651365370365252313188924589091838657655250182432931747836084583165607937740721900127943494092849916170482341498045931196079245324006851812306321935767462710673439911758749902762080316012845486185764007839426777789437958162397056811750962680845474324913541678083527189130066886133406109729040798673812677033367045759672859226009542082631194928844552053723359505070218513164757504879160431564856082009403240295342404202257773799032461295703895846348784157008030123580644344911507897374667454112601390623050129699776017825952617808937098193587210798532426127295921844013721138805967045105292483464143655079631258989317035965580642811346265002131061041459375037574946407451924303795794066678166306407787347725276611009319580912317213156518293639613203677520530086161212127203689565022303829491806921333780159270181945668723848206340519242857521799190501795146574566295651752211510251192122613449029784182146027234146284394078575735709769893191913803276226779786024912270456304345139130325270724526150094672710626290537086370598718379148264683346710769755536062956814972941593003903627011376695326257412887821734790969236869206402687830621968641964835280318832227229885634126315739574806763291731730578161062845854941495375198752370943943362286449852860824805510805360491925587960449048314671999216661070877434533979853326606926420553196311736814511443060680627128907977571966710148527791333141903322359624183388850755138800398577391260859388856935404243452111821206054312550888170379666445190496000364811551911935966462453363720112896546873707978533033709629968447747795833619083436375504639818297271447309343979621447599669885305835990666390389366771183846857203545396961224756316909479891342287055345475995377506932790545980147499357469979058333817868284987763555161726595544550038230340545855869491234858279711508921204275706827649220328663612409649311105037996906522462814547686480421023508956480154732663301369554269502105925832782870281976206036411721290362037418747352851755597008606909030252017698082643248790293510260118422977719245245873128491303429301971090918028369272863299188084105096198808129221454685028854278711589473022251600572890996530005725337839144938394856175770235157236438905776169903076401479365031906028042369819066727792251028797874946885002876880312919921182090483383274391119638068774186799119357182320441648865510087416800885485369512025391284382086036426067345744273492036223042441983996705877918269768967997214836433346454061355780610071338841519466399034901903802279442711948655412931893066187867828416756811546053872854391237003132056309049887311719332599341311148425536670475770900461489197916887269140093633840731594922512573192966325109547741962597581605219312107386465755985027590741655651495471901387142717271087182451125324661343290702863404288335687832563733856991707287945657835543536252336789496720016001046409260708625891966600331496536592984821179066875769662313037749200495905471100492443444221171814113085309048752901450746297931576828607885909144079851010493768678315592268446235519381541911920222271229002262792048367994062736601880420559301917819586376302288343383445360946012815069007597425702070241938432726382764739225537028695020026126541010011683405279369342833471022748338952588521777789605351982574660979620787203658639279103916787085913770860172359542223196704818307767369279054109863347380826440584612712173307811646235466252035414585607358808007495946205787509296753786013864071969024386680174139137958548630821368988958486111721017917862418046181981316075475264927447710356090203221792799348387459180305670827671198385337010688162032857745081421580300275038087396966288305471338557038705618650232484021829710114760287002996230567287289283140133808809211476284301783877861939447712168478332136801892144042694446856485544531348361064476801403461954804678943075119897099006045105929279095061197517075403934676446384766000262862222808338472920133986131144340602134077465793575404201627280296566592479494400407685373759541030868895911912588937113001841751049861193100111478065545827826746489727932260174057392995652365773449999456156652252013615673284738241134256565102365752179784894744218651180217558660039437393827399735326626935917201521468529536680653595838445399302770676570221400522876784736619930991168645734657005077524033472514549274989531207395199453405890032027722256085602700227294719274518286148466852338409160385441434360835638414306949739943596031764155685374408214021769706387092112936515398072766051268361948293023798126138754100178605482938340602981945111753714073885861501582292641864537916633346673743368871749615560982348596626429265704377245855728184596745715842856804997875716736867811990163934246094792307697301529082540662132397819540844588595034829493749116196923426028112778714664158136721102566629923469471679678553048140091012392394659718767961000122151933974410013263084577639655976348061528748520832286761544531735662783695424451822667613718913618833139720781543610175993240308002331941705361904386660322169931275168126489005190301129944513073535455757119855721084180124668844085128777238131809992694713618478917918316944263745089531377742456312083820693700124289125726042074652798954313964559759117388341597896740102576386807486297551162837102204032593042196677422352303297269419507158904653605181591877402322451944255952933875807181348206367148039356599733116065086762418781425843524165134302260871895685281719299539571125834037932139907624657818196685836477446674620031454935642522483860922866802788060811920782080924544966125169017501537049677996232981178136088294135516679866380385568936625052300500596640894455353515247013380808696513404454102919152770975421947873463670804023005970345189600893552010051188524430448001817855824398085579953190820489718193644929365786220900826773926887755137130364090911914821282984482691844159883728484632591260398237119780960950898469661572159991189965512379415984214648084028893192931635526994751942249880403127009922243408021956410033611532898105835647257921713359235656391738259384059769323033061920364825761678869840566191536446085979266071121439976579522592152513762004098059156600601515805596946175331690587046706686917457075728543242470371117575083140264363405016436314713338109160832225170950886987565825164978370838373436735785750509709585905799378325165959157390173582977178622973183926422748667749812207566563028973022973028008634387977436450500839955881640502584722565602635183191604499185973009886678938219922286651739573111380231627869364637263018385733146216817357458060135736224729233826162194925925649697538238988042194206203728053191267488623337860853067002818669261321928551183866367324630055407278932336372283249722939527240398476182829902539300592599558210050180591796824879360075793095194349505174785313038803408317690575462769867056203691062726702263338293057369208820975637804808041479922600346367605502267820470126655946312670685215234247927354880958732141516568367132079992211796427190830423221150652117223116774883083022097295330369377713836703532438058555140557157804431455919342604242066984663960349761381435399977833930929230855097670246270259479064450904194960557138766148277200588696808453284735379043915067562481772747732392167405049682988176453330989854027424414696421305266402167932065585443788048288621208179768776003360613125628288407544186035510139866511745013355884946189795794416436837300448611024342869319885901149801550342754462539292793091482852581424414592874683864845881055532161139254814596445733894315121281343165163021170876172256495426555657789711736972066367070816313976954945858417374213671339405024555537363024194141512284851742679387441305656494793621164014105782376953294437380864883159787655330083012157323914921416022546008271957437216255295129099597809747283061870386156104170303324769957039455375453883184959530248391520648937064979958049495923317755076099526981947749375401676046251493595695423208004158811415688119806555934055211057144444583883138879449818400792311820675971160100306603326586342718056011581045159912799099802017642432191116637804503047362865739858340377179055960948774648490597394019488739716810901385798389419951644156923541619120671493269608695970569807479375929218884515491158530545148163972893369374325609231779127796325167954830508007044681096948459003431915713219848370372397968474540762429190395580422522170361281734082635747052225834213916698725948425260086634470006717211645791300032875445050990506857882272394947187970692794975596320549212037633315853378444276683318593315956155570090135345143581175435032307363307337282324449652521782027312850718247194608861330442763406891988320310531646986678838717687650032141279660516686505603884692945427034905174369827719789547329835951725668179453959917451837421884892345158700922371134757144642167552276604638906828150092300767347569819217611670986790482707036408577097626945389979676213004152240667580677637022039888155968178938621798788847443717405732522152141958246420759592022428704983745564618321209221987630819305315548943391645658299679506033729682831911123430146219402923971036629778522120469095597451544390608419392607873539914845487963775326475922785720149403833176870589763037242183568967629362132485327694611732759777485909001289725840066414728048322682504748713187161885058301933355555907201227416094308969162569017956738819506407083440110856370373816040747010241372227601809884348639048826398169391937438252178842382966476776275130797963663334667703597988535371886516461850372767385482997827346456884558450793972359855377911458598924457600371737200505674888788968729946164617200201300080330405339097683354855814290407911320042623540565891516985658825707193181714680725392189910639392350502653053471140396333246533518999794213579889716350191945087956283318159532109866838728128972953223089879464399567595104645729655857888184610967573847919102571078555994180093033172103681848982708933695294432241823414481035032322449400849513432382588512143857473318384713565023059352285454871463489272657951494097816788911731542298255705761507695290259593772300985035545651674387797734706028443020183941250077428933153639633916958502842133993686529988433613417326855844587211571123083125042414654980564547811501155353433426363413374789187463048434772697515256129094816956882308895740430252597748565096427871246748698771740122344447871147961298261459519607073652562910779808928002725215806271354069977203305710725502113154123260468808658881256749451389214803829110384350138042978991533641735727094971698530772792210644998574819106995166867708854328937539079620569184899023670296894827762397853525012375173645865016567896326126262768164947363145176391704736044170351294732683958809657771040115946966598179446410921162334491533132344698407472664579407408920392751374039048494529364569597847493221952553835018673321918515082772064356380543953342016054565587584557797600951102864914966360046896108747860140135071171555087739947497575894421968069474732871822202923192694206244445741967110344341192780875961966272136455275765391481938883873739096242480779526606250697665112407516987393385439786276773653533839472719947297436859253614426696977955676609617612048675570233317309808260614116256218986362212327761022281806566267409666468237305557691685480775491108761426205474147414271495932402312619109103238671997614225674719221046039014618976634542226910915557842486823701789409351775941548406707110570661830021781897369323344666356461239130802619404705839425567528979998195080826411699806207331589762926454617246065934502004234345792982328996390086594004910794548855590248010398624555141013087384444153785279809712586150595720469988063518088434176582239575360561940420502974238563389306302666887897440820415172111577920490508030294030759391750656837265957438645813039547720572097656221510660732433836286241077857733708817309618956662283828753720504603027621602602080150201948874197391196726238146330980715001805505954096959160251659573775847984147058214604492649326270988163565065668225020851501274812945815484591291681376073378895362612564534256441665001349084155887445303571174910911045039598970712686596318197512981122355407616626806307055233987361085483200694642351123839330414388499940075072102630007133730358670619957356838457547842932222807687800494216254057971944506551512975672111620141741160274726333688504410211412810180855705468191087446035243059767381413845845320765971628674052102686843897702185590102860335951296385814768711470385387005599664153592512658605946391381219770840769338423165295682116598031410835151237583280796410901787362799152622807460732309411054940933774443147157107041863368524464121431978030055724791460230325268537889803554769011696472721237981174268948021559778504849252609633046992449183760488322798828377946827086300095771363291317961583247625023061114820175650640129534414832860759713265618006607959054708975974430299550284467684851359557914463458807920765662620167383460554796770420313134904707831063063708542567002374833980567909425130597633114029242941600649305104150111254260584327367490446316327857033601822677961988614320793268432857492268677350645081553843803341469426121391991389448894689805919949777237796395205892979899121992475171130289577954869851325232331011531631303665744191556021528652311052987350966261818850490458350639881497394267575278519567517925833064852902645916286505305427869488766217197196356863517225288844229724880828938020941571203217651817452268629430189212141824588279202320288767347519143746297487825633503482050532861541583813800814712568264509607670558433026230385519843980318770837848488862690294217818448345169977821757696639262818742087697519949888426595639207599116467463424240406881505677157217846252054588723272570326245282666108227245200483765914555367878716583198896491416686504174445458174781216428963491418790106554837867382156708889543760434328189339302542366435006217928060542440101383012375124256614722224534147347694435072987894656906676150073160217829745671598745267196786729869342741759064406319075681405102780798200000605487539536379881568889319481174918773313476770978621343135711039037384706492691556485865245342472149239823027626444067831536332154192434967002460052797527694551621692072926259325994525900774813436638774915132493323916781210813298113854322269962574545165572575767703341376994911601888796795318186347487881133942956667555629341801653976359742795305596444927223842690835000384935426395776363973161725099191436001066977905712886339868568775678359360702792945573901211327332342420846140089403583183103621776239433233422479829758108385902664520249961880957577172298980400532068945835425295440170423558153458415419116569777413914375217094032656694474076247444947076540269462451078649003365713963876876637337562514379619183488160464966442201932438355617240272925642348449771447178675660808931813765296230934739988371009007126975090974066335317101596070997008253440137335823544688491676142837042664964221896013237341054626704178755448122829678294681657375556652296488392153560973058955546243036337830111107446260595404055925553390834455461354286087693772282947157588915085318180048817193121917061986308767776991912479737793551890713595093184089793467051502840366438429636524599439402425495346337753485825404368720038613128326063098707776386684374588097649504503576458623828789718107946894553700919193184032518975504562360350030117897242659559301726203555832930729157715935483494439014029572786123469866781268468653972600573624937060643619707963421470094035768535678205329067246247870869469468610189534143543292129873662015852205528647790165765771612517105572667410470465505787643576363640928004310630899697978791410204806854382352570474370661140622348438213675648438076345581683061225444985160429752045704604517525224132549335366366169612926913441014201807785896084502667364366629031711280805809775518830760609745677332121047390521599445539489162049752558356204319874599469182207005837486734117395935811376522472727909801823442653404789239437585839549296165925426751394159105819456826833423744006463389870891893134877214726478789484666493373482579460771880575897374365914416408826953236487452196360129246623293738076374131511350523139901889321846649694037508797154166508458114230409149931135912612265649286610653691277690465156956597639589975310011027817860265006062951397791001008502344130076478995219092139750845504088975914748120985174942656981975846789524007460579703475448663373050675661827498215743911056117888903338108376269966130903585842888389210639008884576634507791215284109727418831076000325594466363532869841256994655278171391267750865713806113091344879223065808421777885067358608805997519557625907292003279735582029579902026524942248100052829529681258386244972175901640319375465931688302878711340071130345872179453514638868523581011524037063572277219319541085557386652071732503701462965713577645191093019421871021003860485324331265567954099680396469759446293109024997203832194309828920038244672043531825124389434983297587526226349591957154628885365253184427247536604696992298870690786928062663035601088112165844945805252682610081814706083830467621448689986037985365192016496032940927460099063005585402710226588496740236199015042356376409370163888514995528104993205104653204663017284488009693200787768571105020131128459305535738786965845823306357370895044338774762470791827677537014092995961974905178078990994035556613186938419809950381808203721670889535463629014844517207362322842036455106546232323519420643355358998259225713236992156407719540074474787740047764530127585682109723118833099129394434997918580815106878422171948597858667253960043388497576076040782007343085683870508447387025799430594107969894073817606921632710354099999809367494573327960024066015969273896803835199133264862401029863975280621354558874919127216571402516994519056104683933223218501933540957743582335670268709770632320299877236847586261754378063019322445910780560946713552073232650320056961356265478588853236679752298751256155521574855245553948427807911917308542456637468280591340967552483399794546437859742446443518649295772242725103747965742092042724901398197210838960225347640064694011798097293208315382666413345567621105377220562176421637436457944061296165656052789777649143590708481739663665127993069157707587908405978838165556623214072457290799312973299631886539046903273579306233203488858827130521540213508693583673562040666048589635943087397986973407430786899207512972643527643323509788451654846163120914706513303103996311821835290398437783467850142081092454126737535226022320324577838319983053679892098943209791539248521031929542893779503991971377839626634144018276532037304583502832480898714795157146474240288955814494235920976029073336179499919891908974766474505134127091180997458532928779011430282957241721436902799256167554431421908102840353481152685767001891311916872867333481132779064227558530204268868314465233691186519495238412036397814183362874994827202220497917229472763438502163118873733966684765829967448237262880896539001533339190108327859547739031250193183394771131243916569863079785292611490068017282382699729615613870408710714535243098629098757732038884639384909201980644349871289037193383929071409280901696300207623725884205849423497653262832786122094683846860252027356632608339909853672208215949134801137898856563569371486790242671512804608012688621138943162087847201135584754697824614585869047367985140456353495625192603138707812063496918067916482082282991289869281026450009373998851341430042233718329186816774857995307976167632878561720254360716597831091518563550458591932264132979780850524499751511585456743794568645579857169436327255195677919891321429880559022585094347279743825058927937389371092203863106688664307544646819307767389759771527711446636827671611022761140006810852646901085295161852236708477316858723584082929810280194826753377468668981573794231087714002856483752044926140907229374235162652564359451826020829944054904936299205571954341669097301653654400247252374815981383624794024131799323454013214466277166603616256665511968606130152773999606423820806855197525880795901051189208328058346218133895973649978729759672453634512682710503991449181526396756114502870025115371035310041517758234592177349948435051895369107499590211829962499598864951447871962199713161844854349583849748734683130953477152160028443994802613260256241885880891260817350285217903319990687492208349029962544588134333953893729948459408927366640559555220672811752235845832443327143609885240995836187189958840407566416817693752513456189304125254616182323919744808842575455138312468905037392863955580737010676264438348913978174400452115924239462351365612576246457901619135013397901398954278109484132169067250183201564046982943305243440935831269050325971208157824626759149020309222831848114204644771151817290307345348363369111204919954256608828107174974915327123477291349670009836404454843405311130618095839705264815234543303761169545857795888684169774261572465054848401093072780582489931787162487457476310452713526056014917221002506840198978924059419260118110643807427083392427185876611188931186207091736301446114360353498257980110091869534431744895637756555870685204180213162228596285388572909918361448205243223907974798376182479812010415359032560554149335102992435623295253149818636901976695339366303817063946056961970284270234847112652443437174020040178504426666448934045282338985064343179252390622869132970671787405205063672055934563716329963598254369488981342410253121355495442220141991841671508288698371241844519192737841977513312319010832779722950613714466339466265592685067127201436757366076899709689125312800601789369330497655136625357562058850138262942624337277243175559175172344352481785785913816032473348397050176962912945466118767011580638809696686644430631085542813667478243731439779156938095883658896382164164235186301764932030776867962849746751237131610001139791580472602997156949300483909416461893078118682469971531619049698953876300390932060536976590984627109267213377814339975833775425312458771988056605138528078701706270345322930335588831342054710930962959082314508369306985251731113364126317338234886673065359043320793151479310568192122272122833001132131632578435997057221579609983949195882286122422150533428007356316732680040691859840511946423517937435978630966227706330909765949514152322000911638949050001322014286464715433054892314394011481448874675128525825717491222189078556136912109628344496667677756963944631221185501267393369302788932509271369141242155363217109752339652462301965167721816166523342355219456178142178562058161430560084829194894522917652249879129528766829781177246690176460182717658865134975940882418127987698395566101820796602768260969925986952754875228992744105286487475109745400419664916664721671208965276421271062887459701064691077245818621066139232664686723513149129892559309069296453351533629791482473283204367113185923624610409614934600154644731749934598948904686636244901716783793538628342684548763302001323734600915412377468476863203332852358404071693259103077868640331174937543909530361486953716121907140084035438318755195962796420768595416057723967383333928582644670748863927850102729814735981356569261802600949697378050459533050535050890818598240998426874394778235820210752934347586332500101710482271044976346174995842412828922099913621168777684608800122862725715173059257942197659653599349062865682309269269536384347065225256187837105587332082350569243065250985971027525065041631202999480739858732127166538093632771726535019737966385360220931834607194709369230793047569019690196726925949258447287105125046175087649780767145712629210319237295198298361742266228207190597190218786362639631875419373865442911522311491285339963619864254778156075242987786552034022614364827236695619856428305460755487173831154292997700511558912635240666081451650676973988087386345291300996965718988934811389927309443784240807268687169060696240285505629549239203521442339922280207210005315309711140325317544164248538368103855783119225830985118734816552660245888349302671455578168299009462691423332745928713642671425594894111209461372402847629937014257052747646906883514208670824809787480837987877902743617904640088819530092961256748090435904087986780741374691410063921235907498749249105685384654992989095873725083805412019927468115024294234647591243251689243868359861027001585281073841306218910083720880906620357399427375985136905574673471030615102988365560339280985361066594434562668338628632760028634778053913700582088149087001924909445536290838314933623936105482590593863621367506732808429095614190350798645852657213549446101376938278042301364673566984816272576973000716230678137472404770347187166447642954372358627298081811318336521113050799117201533487616382102708344800135091130474149476194748553383598946807777880317327865665738391546849639454432040373849914877396738432132773270871324946628641561560953329243723183296896236234370919590178284282478256567379563635105959356936040032774827874989434172196397926693981892222647451782809214610492348940126974275936741724509560930827075669965989044652764932183159245503000085706229164809643758600100312859346124668104632238050350760582189272896530347201377315576920818121380632194737601295965610155141469225856987283553409380747056162269890998614966317261155196524410111073195478794564102895751903401539977056232835974750590874899966588745497324588250756825968256056836162115527054429619424199612740709481826268458347920621749608861238245196338827597257025976057466114859381679630973154072253875969942243327974041838315330366500642884548383883278623496849263545210593966934278469315450964613003749796439588670309590658413173860114206280764015738305110318117685656989973397726180565719790738708435922733570850333710331513915142530843906499919289314970353981569258749219439747675977558948022716396857142997276882375847844662198152292493719398342333175893411150557094232358574607094547304536071729676815661204665987743530817901491151788271406838634745019394059476544160609011691327835588939191808374416204158134463578914494169290466705986773970484927287480530225956440637915261801248964902468829063326294659217565096715197015647757871441622124613686874337717857048243030342055408811877323431509216078050411019130017703079050017004222779114140747311450266686575009522781569536891720673442751224877593843820020807597726846883922312864867200203047607151845834498647676961289207459317789992400844501528149033785385139533743123691266348402045503993273926030179071540820975503588238421130984558143330628169539622267755916073090319203264205839437527082885376415834295348740310933378543773685876951130789904501087456594077405674132734471830830323218565760309727857918855178688010313514334746211037346744348135466977078347112355318262882412583706692402229146622915567621480618680984277666023961078553494989657880472306871979123933014250654958427151882438351194784783944548409521003749307116339361861327541025291681772910402804131234949034218804540891377143363789754360632921229015003569092262635237150396345599855708890191177061189152522518040319136685750104723093571941746842345231687969656660303657306565297365618805602639358805391008857847303850227435648834711943425608295108795966485495442411753833993114598137250777686921464818091253213487079807024834739749350759698435951524476103137606248863814200678548902619282324533467896016824980129713342859374044720777624873445217570898110734685659691885956356620604864215891870774160276022239699234158466260425757742256248635493984086684756281156891865895101412853470129580518053650427488275140396913513556418439163606246339999429090304343940427309327557771428263491769882872731025728127934029547127419580320584583669911539957192321474233513149523265781447635047282178149742369827684958010822742871529366572027897760080636546578063504739755776869949352337139100750168435067412943958955811591992749483182139304630554347848655960801344683110698048309188769692918347710898452438768382050467888493406351117370785424106306785282015412959434120489387696759038373684176187671395189627215929452746714274724580493148807838272256652486873718893164250479735593394948968209708835072760336605746236891640360133657252661974453449934672355012578534447862303807641473956853881874190422742773520464425301133459659057995868886896429839275948975450584135902508944331473984726596323558039695656687618173587164318427217061240775831665785036489892067216069712538512427924174829038558100971976888923650806424984652157568154948891551731118341650493020071374823105128199719609555887182628391274353616514187732330593378252860402555657034780843892406697263212063621192076683555761916553079703750380893140808660510266648713113989158589813598702798762116989403599917692413130524595828704913558350229223702897645410047167207996033763546467555070016876281061376823766748675536707726082726091485361416997855949398869943106575908094460519242593122059389069296334880429701173459308281831071592625732342065361143195541015850938080101402000817564187975860470779092696115048380626586043071502795501520249180705686489799654421258079514622567372257339181262191274028558564537592124967042693675863162614614438343822988851650356988123280990727666667854759258059720066250663974126378263790491435529844721455685437941822356821937027247069491117812432203395480120116494377754420894613985975260962173854662530547110540908299954901802922462842403340322938843130082704219616668386605763769996146359216926255078300419268760593226296973375026471762923888569442052994909423023650624972553468545199254353338925177776395943477013552673552891744629393019570044470374204415689374140081899292064812776936145930210534406459891405543654278010834821711082144392775071383570645248174244239707457226096764684303345053814393193397892276825340239209645042797138784254999730850121136532293838185765801071447011960939416278609136143951416463338642137298606222682672151357313482453789697908288028638985234413949644761673234882502065333685567428094549126172331961024785750380993521305258280857481582782223214893075209085537609464176619890218543393336256742680439698357481641849781973909486426829026059540793630889710261157082459081858495057083977716142810129205072649254719394989250733413917319645531787404283258644250415992893308615018037604208819159665996757017019640841507465238769250712727905328330285951015239376763260670036717649049214190465256132802557438683136412501185849606963463707811859369511282881022618561777102327601238942426155050238358753730402904385429971167138089562906786957748883034141371737171013689182601118787843086921541376656452615779753950533817165770320288330925138813687907136049984205319045670698671195307451970186442124078235948200385382866127488716627656970642524602326509626762224186189988934459106588798906849041467529539074201685805576854261145866347781824828074862820011461845011156637812259230941211093950672224003483692605552350335035294904439366918952274023198870921764287220852250640061677791372239307130574017878120566835329057243577406916718827447977733099734033556735288086832752477637685496271147721816161120597368430647796283174447479816709592595239862762351986734483822907703762297739496703255144826925397634206268514775506419303824742024627099016050044937539082992755565849590840266092920473733895706367654819451179979354221270049870823307320514116426989652311270683749615901975045641301831417298492651372878022124593518580586476201575413406990517827617554389426107693033003530558043422775633911392324278507576403271873257098367109246928286338006321630356465660874298273029264985865251637220903871195411474046219528135905244874530339798792440331752840901567983284040167152902538894110567844724083642849916139437717485488779372234712808074652746116834536142827285214029403857339601761074996780502274859159646376555342199656899738707500699720742404142382276810603865645208954661957274371796765643902725666062366905457104076106258594274611688758849118426661230471316573288010204502972847914211936579937394049652654399451932945573403138201678074431013853946201103683063189808532293886378167062249935046965096633326041253230591573701227792060876019039044285905684632525947103177567976704786076578134538799312165925725839668471083060052460834840717842341121095322685005106494378003123125269669975687444832270204233395410251757325857489777871597531881143666291906063195832775835279125001694659756633570056651068813355618268919665669827161977911986102538255863091577502126505885563470824163185759655594991596507823563676781680900718095682354751003514119480913641391213038467342445812440542405576220558836482600445959660461437305250049830273652322024770188506086930435112709142077423430191162087106746866746208994099730479765613059414885159624668110572333446418333863747092841532882125482862494288334496906896329017133794350990214337589623705149597473167274444478790384168913533009505613659403942605627938887117049695191716754002241690016590664113061699622495591378447288945054828519606848290299839537286845911025123661474131233925649629839261137409524914860822454573117199805940754369243196159085642324600118441273113187589329877419855977387564671877184734387337681875534538678346793204699641516383918935279160181467951265275251235538990385709572860743146091319239621646650362261012526966800835229661292506990100795224131721726391809788911104546499279376131526254062056439489323453494141152968604112475241078958451623912237251913941359716868301570923131613802551495947897972658521728586286806400182662806940460893431803598613654893458141573584220428094376702367129836806970171993893079946024398629223660331994001719171818088949224628413556292659925237345222182357640170854930847579286603202934724619497738451842172795295247796703668562862925553690446430977312614049336398674563865519389665057363359438797901151915033826726018895200657607933914967915323440013421519516521141954589595860076983109656904035916135863203340449277138140301856409404141537827662843389859944693131395791688681635534931400671643759036874649643406353024573503168891888861181970220766211566030327933381100295096697470366272536935977829242368400103239932897683677458861691685412618585056040320815745350413228436753277602715282703029866549489628635009795827917315629825167878192335879122984271967696903259315612588593784388613395120367945377211665802914837834755096132867601708675784566069553557555600289683367363496205008125813538326652959151498433536050211946810943464030522020820963722288953980984639675528218442058012503829174758434592231464250966975394603182856016717217409805220436664611810698912710691466811418406777593526393325928760343118661222792307025756915944513747234793515219371667171852870845402844764613966906243654906121630727443530428352925194314887095883982935976184230932100569440476743326005248091421817127214483882036707922764396502292644805790287830052789113788799105163941593254725310375311141235445686069212506974204053433710115203967868925734428641069752806703781102603091621583483222002959192359545005549228487588329370309328641150941883385074514738491784979083636256705981142247669046159688285319769508998088473922025511512058350871198647998964959402637089104960256170096976370170682566264596424721090760899962296161140027102793908083299480597337712428232458652919152634148348782215536372728101207103479305816285783487430989372706341158103519298955506705508875637316336245444506250740234412992713133489957105614044958033260676254214899489191686547920319198852040583825052410301187692861468064990428398058154759619302345085044847406367762681010126562558704370846151501904453461151229470350637495885414839854773184834354810781057525185963355863650594893990841666884874138521716552290861189769613210361915043055875771567723335592219927756596332975418870091332209757448586139253945848578624720860204007411830242600418236476423882242493230495581441088885435028660307180848092801813497053462859377294995368009349537404554057527438328152384986111971179630850261536857708056505848999001058985596316715022619554849357670945227154428136650150148115692399685843147408309603043133794509921146917214398872064330500210130525092329820039708851454408440267758553695247622112978706843687913587367840495392049317235196974272824689576177646091220849979892968421870675274041962391722605943863241198561564760056896110010185027605914239795062541623630170664289710952320893568895485329053883955784356495179226708825042129186326663032383170901190926880319378811327604053335751235167847050591631576209626823192925958999533191826429508070300371096626546035742630316322104685301192155863247057204540343188943487058697549457103169699128781463492251415161589907473922386689433350696642627993615403083615606024453762181415221590645934249622617466967553259423153232048571655259613904172516309492883519660813012411500700197944070009610446316190535449233128772455156964938236184884696655800438977918168137760349062479796329599241060161368227557217665031250362699502952004045150355409109742407589771701337072031260599180926893728538666832677219845893382601436183376061679723096890667288746823371846947072224287989890953719972746146422440681270367096112636428983082518324454840127370143045209400907242874652772502966646266861104411906736049353936889033203238614662767952282350374939086155034730739796107711482380570426918827594808781915693682511171188737399234895874690176086067696122071906262945368050846339623989275599156579879726028754132579086902602430311515265850259493100991732830533510161419232543290907686731777804563000545041030240760700772454545668233701667089003818085228093187121533119777642374800220359102127250509963648308494870636677335406361590184080544856726541791962470641511870233900908316062843492090488282229337906600938669384718030816187330416008486978877264751813326589990784559829140382291034814845698689892289426334121009531504499528231365177207344173632136238065545108381075606632993082169991628541877505308117820720734142481202591359564122408639344853348993152819306501037512894964323063272252902623094297522823995397996471337599784730768034077212689932948850183284829903971657359954306172138576710632230093120489834011906028389659433849495884290174181105284404901908869396109623673143060994731730737510684645265235634377376209756020223212447602392216924260309223056420600199125534560985600230157030015716738784711248643055609614673933877133417853485723324057017747224032829370339771671809972435056055116147880819380105784250768095028191411239273900663380869283599150731057271524441546157714724908292176339243955041383060915986837981625899666255076484087716637843783769067979873773593835496991313807948042993569396219478118918785266828187056024229973938942152726680825637347977691120147638242918266101333970821950001785277187479039966372198553964331398805450117473846574535138736955356298507762600462319116628190628093494439030475421715742664026609921170832459839047109648393770563132614738493951056586149690580276608522977142001466637199430153591783725986117471051740008495590444277522897190994804617102640921500831952499886054585097248984919920820637603032861269953406455900056077652557422632135220608238473688881255339660269063316840643479889628325362137825578249905704437837310009852677480019309711462599884313229953190561173225888255973664093474716512241751989064389548385432769537373218038676525601841204219712620200105298825467622681047544101196937529280987884919968761541273833641272097739678922563266375411480963685079765877595528809461429847275051577043618981394110467726489819896705769878724606646042478667263752105248843876868280590418776131053081316878793331389507285598396002991981693623023773930760757267754475355974896985964519163254251591196124963203604420147128747991500975759925308359331189598049770665167547961200168573676685013892590916577918017864581016128861209169585777126811860361754838200484905203488793094621258264575969280421512668448579262939200407028629968555746618739376831915301056400985864503304796958979863725266818079182153935510820549241590508478310926666517910458526944871465124811783345370491454993083072363530765004542779720144882206332033939920834001871609260128506406041785629934811581070936552751788836746551619533438531859448195570685671455959720057840068481270511562026657186963706963911177622610479836682407155880240301214734876598244658772013093565936636391832502800172255214846281704943651759723313134599384616148830277691635052299105023734814924300974408900134725963091476145049886398099243216668140104521340911248135317359969842950894354963423010648310514191925116832469422740529995575286767121137173393558034757950810465878470788737233888789627329245069105112133132166252895529193499467218452953777245708933133405842009920630995485615579227402281106308154898818068171413868671522784955766786118389611526715253461000956670603402891151448321239263244059400390387731602342880637707060027889312432221285908172762474720007428733847034381593601790428238877467593505333318032908375650302245498781328349702376854948437805483957047643122400385942175863726360583198686421912049048200644406503105301887146920972953554146897820388850207801863408227891719215970574671654865345276039380117386072931130898496717264500168618046547708368340563220351337369341620157135602637512550636661710223685993459283059885740468861231821559810413124958238257652061432637922837969861428926252160176856718717894316694106919329157348667489649756611500320885515487186066874383557591343723325572359917699383860667896290279018220883623615842415405983487664933189160053721708478131147358661305231672054889348775421379016423305498624911904854612100673592309133834282955910223471110447729696922256096930757379665407922822147731637382260500150838237898345842593996110990645457275071541771946807049394564915912628574952258072262783439356827333635318104258767405865059735320207655432042335539091234776934302274419670234603185814698879534164259615127500406942925878266611100376103491505329831275660160120910175128020199771245433747014579921423963387332094036230933736566429430622179579492576507814506031309249454979273352367924141074754951964349959435925339357168467876092269149813381573076769520666942670313403398203724505816893559959971452251328517711722862531999709557042322767312489622850574398040694197823104180827726471275621515386630844466719152603098270852864981540085034789876997083359363578542212591109549361512375367902132049356624502751750846555039397294531917477669100466378317814839862446889860285941986546371984498571151067392349949979414366921689000537238895826060472131257255974863770021338878050456931199859598981114308428839005667425536132037533640715350967366603418759201773762796418107810538321196198953858863740879396865512815529576594953877969946818960783790973253330712167763807963650960723431551383904249526561811115575156799110634348249141637604190622245676496867347578508420661549267565090632094288270142395170820917826535945541443538920673370157822797384731632861014313752230591261053133466168007025803650801926631623596533034450339192717621791295083500012282361698541015573549549283039721911486113677807970520069213028775226132971419504700111655379383003203515330359146010134007028638182938182535157979966093909207420154909981910172625588065120729318145269870936108145443747897027475196981272507443353455401184518874626724990947445722484901403561675321221071179670092859258659967597787897561614853306330517619617944828898688557880088253716351653745174159391765646499100085080054054779340529519205096145814418801087743335041480709744549287537381787128288590317218102366050653349596761492395057359803959298988962012713032622264656246592238947167998847130200065678167021123493704530218468245576812002764984173543814925585112189302890466750333066471021776492629301749533021340761212516463853245384786625443113060845366004391808506552581117515428394869154793251813214677441735939007562955201350462317363880851096888311468648981345210427128361566965819288064522301231571257668717277230766946242866010665975482410926162109745621072212603174054646290078089701576177963256154813012546073377745102845687430211161794848896648818419504551874526607297411926863505862462038919882594186465985657541350341692276007241678478827603332363795010985192387952719137640266813106400482049988124383704440762621443296653360657429682668365758268619715698867546470087571920491264540664634909660289257484220809219779656885635172437861170031405554424307322686730312227531662236727919053323363824206647795372851251411460673297780781616647496957390813731708140448924932209055601666900135741996260831648118315455676569509348340541473262788478628512051208104104499265490812462590348652958326925897428868325263230605790968172263303199927539733145129852963675311513863429031977000096069514360085154119209624189450930593230624589268402036308443426579158917111754708664782241842068695248060730125700082745812959743188039700673535883375307499312984930524571028051907363768626200403595772896462841432294190765132964261942505085110837147701717198618159901851878654925208051965952163849026529220554817613762884408108422227125508903456064444188813954335982095046419233968077869818793273363476288652308107996294465812795064923081935229938173031304828055346690893549655561296953820610243657659252847531487872322374626574792965068736975914384748401994159403650143594475121413156653725846485558967833947298550864922593429481155787383798683712329762804475097878833539634777269485640319136296109338215914010063045390555926908522376028140212833870172486376695863191198711928980843978457718332364642789295720676345365937534929598819086662987715297052973015000601208744222703223630757737726759686918872339986030185346966333896765026340783268546235771486094182014196308958820823796040281612562231382292605559300490498701002559328910427931577937452346395159044360828327019486012442804175885936984792823156028769063528539797657744207886767605657755161142378622591507613231413100152767557293548258949935668470649152418862920774318305885825439232360978731396682150979212426913753485375373784622451389113700553002971762130217442993562821503066832129981604000121019161622146267749581074295335536738486154895801864342331501005563168019918957818547415786589485364923429994748612777310441402833196294371502216474273569655988382204872040026275356096474688242529432855248295090509166018433501184208646945227301749780248211810400834651043807464458257779679788637093974955011892762764204123125502696411236606247265695388448182855177883493636891993731166736256733433975936301935109059768677774601829591430528293258917356927040423081130010871230357803973459227235527448991323552962178682743175951891544296441938951110519029558711659627912713591486015024021641526649063845686049323058930851983285958608143206770403629771858057755234799207379988703996766415235022798624835046867833681263438204986503913324124173702531128737486277702093602884663964902321068230224178523297912165425848452239124025283933659053948536340855496530786101671586101319193458348565745344229756675123063511527920764418407624282927876356765063022538595543954179410727874641444360787307906352784124437582911234805833883450093287649933451161251841538254993525544517323879185419488552888607129882348497964200479157067460413592108764839092151410071428325807868767669481834907190989321384597425122946981221486383278111866987848559742509138700506655073806699495397667805627908517804229482022014477084393118887170479192977920289680878660260049501769484478749711617847125556650564570843343370997616707209035540879829354850646501008325444306423808431625072166447756560680554936927152707004831164497335996793067393442648438300870303593972053730636248401476175361084922869679532620056829374632431407210820787636295294637335878454583500653405365671099249421553744874706101971125351586000537363818244061521733762641318601062043349175728700901760719921955259505998583799907394710862223083197308214892336539979000394179014847060093397432499934787141431573556699449573826131929319689551508883063347202391342405916747834264143405160200461387223742638838191994070810905999109913731581645985842087120604967668846273433810238539827815791873033743929064630494300351811051770006467610701313144576334768506305031208622515378911065106461379010167041476987281873976117592718587510203201762655788712598276615766883464466549722788924676678107889934981934504375518375115333396198506493874913330424362812198187093408081417674770946988337124768372166871099901794651361208338532319586988111320867572276054440384171342858906645703028874071260999623272679381030379869882182006143541698376492278781218349388703290718055755113920341988969939735006992434455926261140212696048807182579279667953805251030997538953746301123997652527514632689590676569118010010289858313002834633512339133486372305610095160588425802182377137875697393083135050939662669139484459515984696871424758949183765758600548657506618359431735596722902129476289813027597333859286065971593970097189557297872229390210682103943841331652037867189963061488567686185438570765596468248303500102616979654453358981442866461837105197690711417936262547399456794371100192536183352450203126305680989792252377187415684055340707545890746216910388631785257488210826425497016410398398888100987766171591872950163289986871704002231208906820684460663578933314217382855715836264935938983974132355464230544360120651828399980397579736086422626596870181243475008852897876852478931273729242218373412243001966571432992079831731465131097933030182980384841264320868660168747825630712029434155013561729374290486805822385080489817412637211737542187163217733211296900369891535169603946990440810417075530392767363598305592644738277710606036441763865544454850677219776408264765401066696548645452658585239076468046471122427138358901772679419514917099386314802526656854938230031979863058859559741516663286283833149841877703583591342036998000257074235654685788135283548200432088737501526298334788852010042253453765576111400321847695291424277049331798064755035611285021034990796339618661233518274499058664159205792461452877675935153329143339699729716779267881667595483309954587792138131545766652198826716809133404335476853353570730063240808231201467015503568938910666242619462520711921939631262252964274666273643849393131756633784056939390726178003737560250707151725874308862721324369097712837326331365262337556707973616124415873707968008548595657079579278316435721499785457664254505781408669111431829664347099067666940067041266525641007120839140367153845633944142494575818263938859506011410176673308137305786302367719541517818453232487766207663396424959316149647487728059157467995423775550894260161992906071129475905756685866251468276915505248789934612889659146171605827075584971153327020961543402594439057787794773409059559317975313237143675803223548231644664738480298786360729179949943866758732434195395774789709697008776024103013565956204521973842053447698132187396283797128207581439891335605608861194401655483324697053027471202086186452672881854397475076725964682132812627584510158470666840064442228343988280377834628843323198460610578093467299184248412700397376828171214027103988153108579887152823821914002995572625528945918868225389949519309024185812365276598106003955793927188495263367423145087397120472189055768660386805622680157442997069891514534404862897142250228469985631881476798928168233748613603790044125169471407989608817691393798212207547208648389636078049721504517381054311303681539871432168580210503624513358786417349315833554284762147567279354612476713888303072697063512512352314054414881420281169381348745729361536890287312317689951767693812967705469513330468470593393472822784870101533069075204763292175886617742178222477544505177560519914313159047841992860834150378039932186956383171719417505346442017514592149425984068262217533652163212265555159926226162118308865781379141524107933553573358708925718574488443186175173479554892847007018279378959713484106500131924804152994221708326883881873274170426674100507650456534667968390112981219567046747220203828935953341282552547277944444048373341263756556406131411678687653198577322424391015774778095598937486274538945441862671158785882028901820544522596566324841983998789870060582341774813417448561868155260125869256391828131575288157404472358788164053211483882004205403009585532404336204821853365616404642955046031470825388308157111674746158192160372972158121605809742007698542828451002279567033700184637589592452817127113680847209972542118432143367004914725393931583270670326683608892338092095579599819435580916117045040239496599199003826300611955595312192526315570361734132147141126640274094464096795966005481396693665461502449714962126144143127326707489614668128648658373282723204011262527079158003673880010702903488018653464156065284790594326295971958556553598792179965388860705934387944968637039524339406675728885989849880182121203610771121526137762902385627135849681157986481562920483810199769401767330283539643892535588470244845049120158090087002765014874585180760479673617930737767451902481465574253427882534447715119587750871985124032205626022056536506155738526573517664278908709078203109195774903171059364016130817571246842038981596346004919020603558237202674072043145838412872564566828520348849372391747826003723270765837748313048919438695893266845818094502702514058830215572048486429153975685499273882891201059037433981832197061914213536210115060381849724096808147973015403215125323134477751725044493500519139371297088996720849264359813918580123490288602545989893517246563297797661222278394619242189425991452516283293352196110527074508253831763603189876166176348535879154055777827948058550358255852508581192638333492931570485684465356083107694254663261842310649623343681920718118315795162530949206501684030145558049255061397282192258907816297588151166085354661118847418058473137782857873709009778141094554148432389722315015937699230895856747222958937156601144958263168278100097105584123020465525226958430377226721427966055705551607303829358935145687228872174670390704690202659987141006567860550030197838241224165207137571973127534706348231247720119136613298606715832473564615652612428898575409411660546635718803119542846425715819985475353456306009341421936690367878910142134084540689097942555602118188511822831006300337100575100700831632790249925373396504213926361957204987510984222952896049081728117299858631270437564797743623942224515077024766733480361358002764795423509369932611762464198427535994422717770510910013033439048120453490465971536791569579957657009307204474137114971060475285261464907188664971060676373663522473754558876522910601149928529582069278656079976106133222077920284091808510565731117107555762052100500194721636056585350424827361268026301591631316020856057457162735614099301461144385041650132713767122384887637931316036917066045740660192412473710440238816315997787101115051312616703863608168387248952147623438926743193729989784116656762705928391404056322552593958368757440685633455493527448704747300606961443459987229407031787094765278354403073352997118626703105932034727333631300761535172433470320615476110682756322184039844345952381447876705134873693435739134546793870382787475867929513158922303527507366105707099786780583999471244494233189224089633419487493151680994996305197390407527529422310300156416248113650384431143721800641342782467276743987264237043418811215009250879547487895091646191755840579215423486426893585284001863901218988252244441245243151310086973391242068468172304674439425642315057300075998968412693813840735165466363936459511287907363966184017139779428670946472174229934848055736623279891816810790885371912738272111880605702963805567853771136139693115489583762372178878297048666037556639320793214400609228205720422496575625060099017145324234869927240558144761657910335522414039045868178221261477839451870167356151922568674374527195334506989241417816400622476454282467311657044638573420678940065621951610492156276848985072378474506762038811798889309473827782334310091168501668240868203119995150046388873391850222403399697646243661317800688757467316104199758909784985712908439007570183493855067235397857715282908612027740736096195543921639866695340436122474253698784486735394657882533461310778849974809217972717667060897482376335867058049012657896932320241921578036894357665486177257426654236975571126833929773421977528825392479495106356383755458578587554952936318562568570043230414447938722058216904405981493486931754978773190885994643592436035434183013569475646837334245680762359337112643456452065217226844574925584066717195200815733671755663614809712056236968455627624235571216985349459070621659834647579292029564477902985458777166978269838943832257234449571069396695662116846948965411497357214290592831695272239168179639628516433693070908844095861448007197830799525366857044537079024288646148084952317401593798425022652591763260638508424646954742228955702556447516574490713598182476589968509166967129951353178403439605339999510568918863421217275276852179545442563543844727877310518908076542937027554464705363905408932628500967445312596642854305283640754943563867098651969774817065443745664744835806025602319876519346992817644270464576050203749119552023387206905838191201976583198430604531183913664252859161397989446141117844886320501708193763682769636517996087813040594241530440693466770906966164654054482243713397833868938663019604013923285052550268641696761012392454831321060280901143498478065916196360485121740095285050179186120513329052107254460648806067126515554396272961133351036667762802779552770151263377208398837397903708737480999857790668356800199021275257298468369379704267862753509303683953844576728250779004118418908105194754808164955635025482658831267854088024898355735847358978278458682889572269147500903711974049777874455768735338943066039745450557312361349652221946602863481366963124923188833018829807750931754953223342043390144650837601582664596171945676552527337319007749199627814997967382330866875234912037826194397521512393239669175713543362489748872381901797181527116136337124029790875976336681564171290402126482440933267275531302155743977363916355257181925897072311561726879444667360674251939167762543428179130704120868598322581350044195709825007072638512874666423199611919079737481843016738658134147135305279374820886018227418817402098079619650159841407932944257254262112190139414535101510536610558715235914592582239340551720624288705197978018451756276047116502453993698175806531491186912124648703275163731149744515168097213687937161368348197542757167321195579381495086187120466695207270526950629862334319302755022645284013605097698754924911284813143202534044045568004002546485481127880654112261740270284377996442572028293481766321534818527535936915107515425117373916474390646379860245924593902808911133297689679756147378292418264623328760802874314627103938487964959685086090525085439608599165708742829365784340958279944529929732952580574702800636547908953952640693158860072110000377777800906746547177707571691167108146780445421732419369809879714489601091839986335225124436500840546729439491349824805391146235264479533191849302220344229732388307998055961253810394923829533743196029038955187528980372200959725197051789089224212673518324916613725060926871244965404164958114322123138837024392181280697643142352565075869422386366433512950999945981663146301819296953627524036849777409179847476025177720129862202154595108102882783143372736625276556250031162692766165414887249054967067059880421478647297361761581060690495025185350226532448279961773800501911965017249843189554810764903905806152849122210422760141316095667494997532244029005401105373700987184385356753187376236142130626526221220174684680491931946162557709507430184442483518554883405680085703442254607534328840483518435395249779623354691824795970687432355604202154250428012328086144827688988846050094181615306873774873584717280932472908351554140239806651178994813248562167049904591242259995074763262313294095680915336442869247607831530531249993451855451594255709132265384362022044883604710705236493215819169233503483027398053162751539620159716059012223101369821209694800879572400809958908752494124425354085303115264190887341274845309190839187105265185810888001796034012810780420449479285003892204803845830951257957766671139335902768518081145590596797593301332226253816805231330604686391552324106732471402790878334031945072552843576661725733707173478929451189401964482269902883324964925072386404908438008475871936861678480078346643471086348235045749658448126472719950564934881136780010066330509131002697142099718081443727948647947941055298339482681844883272459892973708656835421761381368349298257614285608555319085985763475394184109374760507657946092480230973138656120922472051839945365145753119715975218419566409439404044204580635716548367240944478947625827547411690513904925963706182941188501326168978239596802140889384313961877002760845951841628104414878910197243749423205135839121352632991459035074224510034406644040894306266334605859505836781592011421841769222041744164589103912581423396307564673667176417951824649718472936892160743360701102446359839862380852750687811531690139330801155114076041596771583657474079903074332866734953345597823153480282104955146046062523824361689836289559123262161977857272146859258337494785719803151502880949774683121268522989588977699868136272386585641468291921658218748171447884146122908405909921627275214840484030596186374339144753039341455774083233475634265427352166449107352989563639838552588789343913619387932809951573796497465883235141855799165848072213001391377598098436146404826717777100514032723131560102106072605353379965015945314724749370424908574813205922318816984206422642221321853550053299151698104421951846249457282157542034138040577742599011041755341760264781188622960335602707244888842599985706081830956330462263291156783303306258792076166346093907999245410782322250790148919663217905494430619219581114957979752458700451631916267449894711471225701199004653400885939951331315479558797976663674135927564568250228231376519360127846512212857932527777080195424628743164304968889461378442506434076028844976394588370570675379891621373372474600046860191563786602671997463284722312841951633761668281387228677875153338275449520866820049524178184453999214173952529635329384239051594000758330155181541566724923652282605160661919740050682042424982556451460363443605942673427634877385390452210110998427209436384839710249712956186815287695354960557233681619581133779296747205552730539310793564837902925350652009761371522703093655053580859503340031102353681939342091388112467800208988187862673751211161420538201239215169952000622654850227995858707638209012689204570898222005070976958945144806693414538555341315390015579399359538155025384976642837583688620034102768792510176773885833053603389536640290599004831420166213957281232378798454530516263025191726427466246630013190994418134452167508646606806433637520669395543682331753468446738356667921689757756579752621136857230988143107604729505001913992040057905186215804380349527221163912117276966530859479112035831139838571889357815122668657213996978148686840013680514551860130956510763460025456891018421868095323419738206441282249921462832040630428135325174607248505707414281900351684183161500919664729458981316780938865967410478384485380818428300552058062474450339041417366452461964685767578905598026076996282392342354851700605149164810392919562882203116890108047181137783430721331531060453999913901749288235902282806245021006836077774263551304728007950225533936547629188889764374671557599051837044688836788512845941552915855173717377909349833111139363456215992340873664791501166736478211564734291029864751583918199424944236593174171224576319587895798775951909231656938460168741263603795891879803901165393363112495676556109900042709883249529800093787938145122080422667451355984916843985040877885114863128862351438945867347414182179954942817428453546640424173923892393085333568933544652755035659030599191708976699573429810889356973893657345778832482269319127165088871890477347940939842229739414588746854006648390723466436305129246034648508158170266766232098555774749889533025839171149259943158289172282745861564577521529696075111106269264918947430902043185772945593191635849056730161914065816784680527373738952697448203417345699168190998288200094369421496703625625728262316667252552284128666569587768192041823313195810533195584283976856118952119538260665681721307942905077393758171291450289666262414555934563883052949022684044844793995394612901246186474570598755882665137118822895873032863208606078685753255188668134066558820877567115197300164823093965238820827741931359142804011218780632434281464256394168027655237134311860769071296727492243350357221744591035782282233751918708851608798630493845527025303674701829213085768026399928448735582046143618294081941754068726448449608047869373837353972220695594575490631477102073231886902391961393102178728846283669534622901123731405307951688169125843257380579820506960556098456363796456652429053531899041785371990728124733268660658669914603453239305983856837582548857081388301123933645301592021538733571703783637454494932408452120879932824949498157131194226137555005867587035363528088600155196165154022199649071213714290292456595809009632017295349579196764551209052098467531691757546891897616965702347504601924775168934320718727598591382555622319339797089163412688642729647420036289271861419354668997233131930822822725484258235551718816924557075426586032935194045558099777120678399700403634793721584041976950540807714911512300941644744715871588515024836348511333339301066490519164799087458364952557597312375251700942347422606151339350868799955705158180166276852699391516303476480638561419801356396516800095501753501180844469323217229708528825753993516409285279364803279437535426271185210346198584823820310340543615408537755830890960503560170633784538087640773428651242993375403376685619691440641908055112087617915641643720716162390894412439839460002791387356269207389394015018518581794442842790274949715337456666498898717770051677454072780947120765730508170176361479002881795032794754836380288625656130993540505500661182420984233134207306569062167021746142780599304224302420784012592209190098220462465346790484743483169734698077241670813133905856768530948547712473729373517475570857085556350635380796595949217340891028776682651055808680428364426873215704413518650968215085740702365699530431611902660249241366093575481287679263477654801634813140841750330655445833409215639538809494369601210135882653497036000004967979002394512806045814225052523402954225302822319748250830397083776200492714056036826704784359345788313048579168931478794482524056772467159578181058319334251025132114059371877787118625711655933325021784979507076541267492474857264405968966504609969136120246566371325495456377862591366131968004927293946546023399022076674069767940683210405798561500882162033490222966200159225085322224849826914174624237220613194184982124892275704236992519542786523145707859689054390331114293878202486209717552210775278119844804001282350879662642868651278039929903629586917989099721556033396907641027779282928347422332691690167092936122055888259138643060942646542338462211021790889973276593460320746023215700214978879470813518927723532896493993889224081173884078420078034773648141619871099648758813438476572852153143947111547866627306882031015562656718124116550663168609767572673194267804303382245631428721773483300479383381205291498858070887938977975006726827511870042783593158837438642995906892101948420263161859756040470165310719480944146301025109738232392283430982890080643392764786713835411908129379791246442224249862755953726926489110142031265146627637373726110678815262976596439548037077387887464425317125426455707136173437238320422361101572791212526308978464301131724679495945050663108063103445956876441898236451953256211969340464314564193106199676107488485044733679919478775082837933625163425391373106322956475956943840632033953458600821461880286221146812117423614369884877665675447369213166855079292441647766465653004745820849523690954440108296344560788099210668558298825468937810040919812077789933946932544336997550220214968091004120479518536366544488733512910269549318353444212929560009446654635377259656557037429247049522493370610399271100626682999176037417787688313537717564919969662146181239678871391688627373649414354201615324897647047670840826180388845467825656549195883411907761318413534121305818973578725822051543059629824457447266524897306044413150240330181240556852952459439887758963892115680338132324201054623155348803155639209667936086614741226203457107231469541277575806791561099072987815276240625892095947511087915044700255144329008688975013362752144925676032647328441389041221893704382384136373500190895919769210930345427955850949005131951190445082535067588272458537434985696295518416674244759380667871663534522473840643239905442369131940325845577509844687637528578221531556939362621792436729624779355455234243709565935300758129745388492540273868990526674610011961570452808167356337477923492155893760708420882729349915049025300970577387169871804880409008008637506572466115076654894568900247412774274159927596126198677064428226158384027769385649998490297767348441417300437080511393729904448680208184789912026883770644770327427404559484646473348186717877410579484550958891597587112733181681508118567191119057244258393571650031125173641387023504032341657743752669862043412146310940235232352346446648280074036842910669732943449773375384029929116767746459691685650855162990227304575222564850554119819633691362101999008832997054749726017740530343189432482004138436987717771376194773783138786083874803163154955615212940009089598563557164614380758665451580856030925697228317136643082729478807700539002941096796706212077099435037869415281682562240566615780583943552272685377035995244699324521264050382391656066891060970340663235109646643334664051968728939577981500656579431973872805173216912785216636626540124047705329975587183296761212391858098725673858782717814753536856421469463128094798345012962864331542984346673234562480735310913769930931021606772976341299186280644770978512295574396877383079251834395872742190767111810589856467787487285698594036261708331424717752055689171484161825778998104806952486469620549282621922962957836524856262148395056637714562263312360746949025850473363280474493323302603981858658604831062168194523270219130758935393898346168523890022398676148740409359057160903523842328593286388479312468387844053146983054249444507669821345410632604114905425343867674736688814247103522937788822431437101119426404607595099342303478752637966499938286575339060269449869573119147169223782740395140394551035698920502687282119081292838411305699462082091208666900316738009877142636280358395991072665961695589973291890808409868549499398462489251743638269695869514619279134222920776761595664172283394590561205705792983419846997758147527733143174826180925272069081795395797733955127763327243379671730682572299949244790109628867759827766177192058896402885086575926270890863896263849593996528749065765710763375771137061614018788451553440661414636333921449103142197072817693798906935456650232511100936080033935226672842057510057640562834623339762723520814231498206548310786840477700665749888659146487924103232045778919461296093513197218958797596695436234438368182034679631263473733211444038742114924223206635527118128907233230649552925069699993919181052868908343227337138114379562937035176377363005906691290805319743029802463587613683985573362770614883970945984423172603864197326149199865894203887389712469037605089247624124748469929263185766272098448165987858903255243089640558822306434379151400048930319383094412038272745847212370473154821241815947229491733348485173500874518572340748991985035309259316214381975276451019507916947929845513627550051408820700151248304149945493847161400694626762134918628054703741146144928846273938047537726448470958334603498226173976984276147566284981355812464479655333551754272268840811988682358857193381116051450128441292146290689884046116532644602572080889104023648986771649066785515867784112330753553668545978930967143186151633093348738193952910812122512842781881548401562087338537215533857545898310691739282607664623291470806813955717552349886059398132331760822666103767070262537048515947052496581537201201416152428027303180148358270784451276554500258916588983860031516751476531575885953554288377589334278466262737604035759249257770965511142151025707048673878897044414550351313244437603589204824015730572675867122021179054764773047643011602241640134466073889610681824184025428016096339507033810593851136150045876571281906451600335929311863325540763761029872773625916313665875797635950106635020535591233202101481058468203395110008033262673286416085573720883769961054625263956752830064666222296690310663273164245338324201880768258334708992256455214484663634134585281415534271455735544298778026163788941633614027642404499167450636249786323622882327481971198456262050399967237151201916546182274273896374550795721063950939574083844843515842004057607673236999093867316656860377599887223213711057204117748329324374622150936513337109960947261635317057982894531380029072144273649662116214554431907746978836359583040266479250094897811291004656394689550361314910391757960752069637104283816398007491848210939052046433137862806469775472619876290492386098884516874328742795279005804554779777051909978040511717311765538051020013994006910820651661848567199327436927528047290647423547494789498910437404562435204535169622771423511299076700065328731548653554539094162495755646277527793251429095423452581136365693167293933084934695480469329552097681688082507344661317756700044322698426192625209900401521719131296273235671307227307975974576243362234447539751966824050386722147245139570656755524071766666503791565373164115247437468183120183626806391572415290738006803839208574768131938192428503802970079342810158060192314849355292083436238237382306122018697041946413373219548470133102817672176769284990166778928893486827515163809053465023229301221092399539694318441244800577266642526723357624360226213846259956816636784162784772267149882202354987541910806550484043882150478302515620684753191529392480023841930735978447772416357582228507902008630657502694933483792729838753609023319108654801358397333238841878103035031559485440450206419148207159782774643154642372864338987224325440507212511504933589730389744044348011794943222711986852800758917957191697405600219974881068870571737963685226855062968345556694396131716391251083625331736545380364947023276158868167393238190747443279106350134649641973894022990827432271316371749794496711512431719663901596675128212095678170987456547219188154103861238427442283565230006849997556823199878081294674215342059284445499568885130647319849864306890401023123640153171210193864908269456946399439970667191670195220807372476125300454688243010301317827707015116431892832199853469819028200337217907194487604800655706449541469773248365557678367958883095558329611426314657013984607555910161914410428087199939195433527109405040379542699914661071194435685366427803684552676349754186667963004177140276900853409267446103216739316485617876119909525219476540740749928866790173257372890172915863909217186868760499529333479793900656071092101042295597222973656654978409283730759400045267653233101388123955648149287960344029800854106101223313405402192514589308973775367096871407419182219875423034543255770685725393837164962017645314395223559912428564044637826838165889114327102231688616284352162099043771804949272559469651517995524294296721775046489692381448445511862806431612064670939400261243544437715591372950073506666923338437034902750528814723680123097413448940133802391010255641240771986902812762375360351195134123912884817692215672212852630162087652389418011695760545456857969868372844532319332680487039244217168325233127492476448040060560559277446228524959667027277664485779766411369495954488097285300669778999299775268208593280439242407506688188410442321573384704462709748024299154514117797342611355036585377900862001132375260629811958258791501894067554283035126958213604187217431871948162747692077617541013968276785876460136291977179942919849086558172522678097397038579522648312693419459866405302317639742771191265518101328730811703612747982780226188918597131183063738077861930078901268260736914210207068610883486729372478994425127084613029948299365880010640621868290747117985261024380188083306176598788805849056789474228209345220159921633388241074964267749837515900997186541647369339850105842140599353773917994617793646059281415975424540483234737244718969899514782516909186944930576103599811739953404446436367188121843642206913255410460411279322073840352814369271767188066091972043681366732306695646891826137248635455434375468204575497180930010792078284174098634119024163584346921658692771908301070216593181289644599517843527708029474281620592949534331334829697941638936391092958516024859024141865863479661855450195272698048266167947663365582951853610518879405967648113710689448567051760984976903131733733301852968996281680396698132224496595163008785756762420637636235181712413318343315265527400914137378748168566315009524705490329935679183602201743032114921466948945473284801719879435416077644591785743174214354935277766263612304427364535425877747078754405400833428923379980794835551052490849894360944889469284207881449616362731589401597502696508120640600040420044059193772092392462706242924252727423894300892937689272334820845938076910841597959543893474460457714819638099548210206054286493253315449873356091910219455300411981794450380116036840785451942415301315967178601584101727968803263568317029638531641333594514617211505251482451474503120429139316656191750474192156334924768964879204788190700799392412750973877320157983842224850394487569207938903685525513499895315226969883081141137420153270580100933815007791066267152129405551086571141062585050893772524558919180806570086094653483662961829190973374274776296248929164593178090270567302491303636859328225433492362574795251369443245287426006625364740750426803545765744845256023388950769885567270901820664121986774857825786834658148262313881269908128357388911232144587201260734303208108652723174515155911409211768268014148373589648935792400363676448075552180254193039411088730077164846397783858758435275867336616458583567276825706723310065462876234980621265618052281064377081945228642529411060393944972258521555948641175963807376525455204742470261541428061784242730196132563847115971864017188969106414588408406990481252628857101081105938142428758279106790458178483890736804678776657521012434440641503425130941066061357945590809334122882025569855064780772671514123865843774846525164982678532208848853011563908496094642407336652391009203920376514037096846654739159681049819854155086283704272382998109160273746171053151926615397901128603902170127786098336402242597360229436323477716185450706524079583837952528146444170138513422823372669961422118886386965372922350810944675725021224579330730419239171705687908647084904257212080075053006082784030325715453796419873430806776465248533342944690641381573009646463727508100432391332182099757824224903625432994693510550482605831850159244782698261660339451623633281692691858045828918864261280242991870481231645649841779185832789018752561561571489409462283756628896351002179827597106924469371522562980306070471405820900163146728401780280157410209892015032595858881766908481442020392150188916192054667277988877589437599854879894882400669626218696364025779254244804173758052791863906912185008394282356672277294487818620120054243473329061259890534502301445673775036377297020851198519600130521154977427487251931410563857879698112491966568085137508861972539827333971666862940579275919578950519190951624237563280720393642428438409211651066363077137766569230875421661335791537882186210471856268728389111411735542201523910867934775620233532285290433262577207989655078409557606116298936543947553840519087289807643492287565335226729896298705598220695891159461272440215485022079035702346614663812250692962936644469168923980865149840884752349203866589315673538328214178689735392933594561937321109772944248723704335595181602618518439408632070421877498971307512568908280492508605404238823366090533580326668896755526414697171101421243928531287474652491055887692772309166657563202519567597983920547410486689763976856763856357900331653401131597308398921060049679516287007935729995154535832137508856173741611530052621521559672056666000694872365399458339712807308670856707395157245694229131117570582748618596926349143453028795788836838935749003092082423207804537254391838990463654740487447273475638323956690465208020501096056462855592997828494445176827724186642316626974261674537264278437645070423868664376663975800982497429115011145573282465791601362377743891353548263063766502326794077786147286532246008757548709226413729042907455011766796322252109499055010507185005593397509838514478864957352328505184578837628233323178252334841736027585008794057851434246609298493807401390622887794271638549436578402085721604987486457890115086496565679738788218465431291531209693714269635657088062117970047623924866375632235647347226258169082778518809558831293038713629637618773845103253647044377772236567274294768864866771926386195302976062587232085848195761193332416027621425904221300043553700131867257210745877427193451557135926381727310958180258634154791942214017327579177277095695630757322782771028042276014275300448607835601944454113393421771163513121808041131419250951107533018863612812903238392303361852757506397397949285556024274395531170873420385015388155254598304854810284925934006263035846917106839759196813789582119083152179214035444232751636014069659365656749134994250711422185424045343918004072091320478969987794455332413150822579904245698981054408450968639573116146017154760539541818803523954263002871140246829303928497597218390221896984327477419979490389941272481511959925693307789381980639566839276582969348760686643447123159972355075204514554345788406394784675115255929723051126845407545898333002428608550446428154232600498774530510338211283393414046715950298289993725779357384585445349313823336665477937369200336077650556664042657277602901077269288044518065599373635987304613853998496247707236910346204516448064020103686885409355037637769046888512617954877560578125246564828688166901192837552752971392702767037828785476474560949101461968504020785443670054343551186637978848577695462478332264712808840467838748294509789070232410044069484549970273842510089711693921631501212353662037243790915216550325675300025202881944510497553753018605010812822603511876836444365949451983557731958516461906889458549089229704015516731731856640830655813119631053845923408600304380542471771161031862524719107218183379196910784657733055243806583908843705469861848437306618731752854955454820180480181975661042156787733448878001613092717742857368344655448312821738587112625063493741379104472940316738986045620207982060383444596641822192889566344359498912175800118212485241326159407172289020501255430047267551574298126015309421286127281177628989003479941205844074295242751448113351926716691030841307776594969318072988660590014434496831211316780227517122688802394408683504899683384267158180630296060490202158842239872935169294633884985034741224131842793839160727224274704314496613893284010522924022665093571266626908502934147182053875289097540078386598666608827452612201659003891831068878420201785417849254176185943582543081736093983886459901632223138896787071164261624529888316700792904034300238842016848508411522237990849588730529972988954039643641916186654589127023247822334474385346166279795961636580190040864823924523983377911633173310624639302638444401083303826342254704900868232320578269003984153734664357554012498875940498742659968827898790277476340677684282630440490839183588124969819493896176509945229092274176095087309403426169375064444616822158942410296922300008682922334231476293013914745661276928348103584344491306203688579715613776775196695901057012038605486098279037725790113381155540789511493272062458121578287215901967045559143582454893357303777902994845076908404513630263135727287751334140521914504153036214214012221900875297502169326535521274999770623825421074332297256706492856242360530945895435815364646623953145441384532022156373823393562552091402768059780755833378989264463546703487796561072667121219404740956498484592062861648986486419642548825653834355153124801756257622467776617479627620462390133771663459301307027547785445057033293056814704311729761354242495554618844390106189148267207765854168525964394604454186756446116274783346923818302631112804009808655855075970444572607608463521826998505479682077599529068545731336070539441975474011418186004544862716864247821411274391266268085075842459104996795774206371239931744779649576472488892511921500187868157375472391433192807045524618485918100512673040639228408817931006637993689826390916156179722171242250618679695282247568225631175073248509185906845256567807972190567692624183034447607347089864133976432532224562454122758298361091822726459844148094133567386370167442010895962454190563868735170002336547127491579871922770064608394444144398842406514647398119117847641441594653562548791863315845513550466951771124859587948850681756733546956359384304619201755296704665232588718871895020009701073885475392104070639738367058235182895968587114465983023605780078355289445479210550347057095781181502344399342154187059699024674670587333211313390877637215068596844120808118453397435840895179693408609972277578982185079619750348063039352525128126178668862618586225247069912918409787700087263887014618253753003160185095097534419563912968974493225577776804676989839581869801559871640665201839210782561520538167049001482203035790813717561904871714747429489060949172294484471045294920833299694981140645201771806064057014085942829700815506928795557059497312567349664351121162887299194240321375091048997377026574863982995196976533676552696844875862692589734527139122890909657234600453217529204869996523809360247631997727530844549083845676937133827507415109085141119500910689767966955199455273639829695926593022750473535068089691242392770318555589517578708895419392748998106594317513382698993896201390787696383754893041854375945492904184515889423494592068147408262069042863025064473059892010541504241903385656026680207189683521920710351797099144155541211675958514324181819482533439290042280165515494338774644647057627014980240915467120560673523199516735255818374151798076228765809031907245364999521346393760980587553255491651393917496458653825787454166088021332271376593365449772008160583047328133655159561023559203829447454736563973706312041406835897393561618966439859413311873477596390424653872508118601777424571153094394713733103865399216524293471502452764028929739250759593275689467422117021653513434331813438674673891659947440945945828914849674456536016688350236042617435355074273831774819942884646151970752798657993182466696227297408918726640815393917929979611184324129269448158308729394649468257238065891999028134125302777742168539292426975845893236726047156250619170710765870296708681079735561691167846438808327838555878695362055426307756907769099885593242570927133605144706150179456779559861596931178601795403638886936199726268225696731022800781810946424730441680134919987937374935399610303347480470302740153869931351717507824405475489782786450736158412951076640339344541075131175163503673352766390724108380666068873267361922696850977651311713495611712822445798364344663370192377883071781270377265989080082328421994444259715223065859822893590219142992481933169977571000791111979551080950379424235051726816394043622600347924799393238129891738006751682489657911834896671659203919924412099559333474799608439487536884054099280052480084915437933758340971814713534258044091613782951017808022909053793257661692564897276132397084806180018360535643222664373335984984440127104922520385989970223338806471663097508247788288812374130482857527853472193901433240023325883411792746089655661047649563299043363425601033835789229010747587769959190512950783842586000882672819928502916098474131762456049775977504872083348937920485403495427010149357525570121543194807245113506716796288242597119442435378748799812275432010447597786338704139645467710725596706313675305860307056341056737146852086652892424458178039533792507555352542765201091654436521993462671549420053127722947208830643398457717542282296143895308788905196894817895460546110889948344466844045680715755807179016530340762166825813970842717519937168110829867353351279145904024785937458540359488904018989040344167678794388965513387867201628268828021111241987549450137750946616876984747600539695932239921249256735430252011292951152938546865899219591199871156143784723834537805786149594843505481060074937948909359645704074400365067272253324033807132746476979324074396207675476654921103394586683806786446441822588090456103182033988828800062159554387418072727967255145151960079724574668321678446255860015656423352286979963877937423069785767660747020603366481407865821544755134562671633624792879157846877943418916853201102017601310702603484368797962131103657312313209584116406501251062299100975322579733722314963880371986060975771921665391956053756998191370673446573482293411183073037404644592886665421979937081920790829162873617599926804118185109387449116353182823121765137527814881800315024001182175595226525344881349337372610477224414945859830671779758064678180897862445395562657106591214744835234327637209778043145355725418622394729007888582545432957497389195206850214210642717561977527704048586217107767529247146561097419394131007256498122516341380204954711246309453777459940998222846296067642717843634029624227982509962046230951302679344591884426001452984313198620274509571663808967290763422278212097853254036324722112220891704945047809622009277919818830945422851018453034513046582843007845526196106459840277526477183650776135638632961087721739254492854689990877848971334821679339129153848239628343897167562577720747777384385517766942619839495339223824899672072478549215981079931673236634309103213900686073687587802181469740658504678018707798013872251984557987223639268038434411034038712931502764566429660897431252115357633443072699557935604315303429880056839822071052832783971768158945603042476720108006780543290954103184412594904158433144375210040648120934696251444584782792773620357198934574603348934512632546650341937092315298212036779259810221343650980708675294070252373141447725811630290842800170283752990618151858018229431857040282065824171380893961464411615936151248842751152642022508818688809442654484291496265772100903362440095730347150396618703809673608748055569035758826609415229768923147234853997071050371280835711380502190518096227670129406427514248753511233988098156331303250370491120475920828437910040835109347157967466808426583332896711163661969501379898467143090348895794061852056606550304690951435270968250093976589907049767815422484440841697548527393331735365192799126414435301439381215933532390330432151501486609270346309507560520615025722239656654069101287248919269374678987669355010934063689240252444346329316221039131405545918338876155212832469282828897315878208306725062278578041397083455522627461348582578390664706288276441761066990310409793453232194302623761126754720813210526907595324151083097080655599043620165208150796755680935574408204176267477930337608429090785364966409540194679866876014945855920948206590144937561317987576472241203988644968543408459983914889312511074928867832701720020424263198770222117639475353227238985707575708193631062883696369659208509470064849296588405618375334079592328027276519145705166141309177379198742030482110223501577680919741509070217194539352049971585315603928931869188928487305621680610869558768354126843954767726233661945481048232447486907180612308769354114226989706912186819047564274266119348201018775807190081906686319557838230583934222530107281671261923407894630286144087400760463229005165773175514540417585330129666038071701599929869636463917359097377477766591000722553069832516763626254688670935785586656879850441054529181409513940604443420355585952102556869228415275076765749198967398397897396181777933854661751948813690914874339530964301442985105622058509933364757230087938002895175236267006687918279161871291702291110859844184646491348539087559427333166785223250083599361856780751716575057506879033319954928789428481864530400724831436039787636508261961060072858510971237751356866980183658575338078447739230443104339510810552075990741234591919520876820340177424217977075676102708015852144344753570097327447791928451237606629909433164035375138136446404373388741009860983146601692621447835684186105360671223642748433853429403106041259332537822988771561788272345856204864448093627821864466007152950876194070206412874483320005260691862762673655347363226501485511615029735007462144641228519913007987273936502967568934833813808717493664557793181303203453453312244621263091386973883932398105891343485624039011153169948209332141637845252245916121685490045696235094084683481947678867754521121880431052402569578322406937318672029960449190171539239164369312493106581523746836002819152234465196035472521154587964476701932907562753345943390696326416556960713230492787343857460079557490947716752714313617809192120462014685057155195677363700373490673132522472469632225258277365034838881455599651901294748863961814159675410616639878384386197504411432651651315609901460254967752906933960529206024472984304193202799026853810849481308517973157830199132444500802278219682505734373707097123011039774632726990686578644497572045715981615977344338633207095526314128418807861655622584164349823467602352023214295264925505675801861991646463507556807252018484523549883123866742903040141856725727060822554219868159905071686470573313980601147170604578104378990438840395408415263756194023039288553716797628102559239459849941493033513628738226612120593952117429237979593896751316033958593912259060714015109456562297793209354424777629822705072096032189267524072290205999883194112751250670190874272629932694904264699670133896728201906626490789426360538278025943139129218740109212313108235185974067631187671373384827917958206273896710797839288893812158024956187247408011963736419781499805096978507822508867748516429664137629651966291682937713502343092992902085223918455116764940967958101719871981613123428466058952027326142743080535196051316325716485880328069406940744766006438853562297128797558385455680862947056437360154769167250341077061984522736713008374573877583454237430621414004910091934582844073746118576695878064862939332937554495356715812784811643627507088873347276761337334327073986810274326396229699257043557278292869627696931002056402417107324256155857419808851535359008333076262423898877875315341477206548963832194088462260089308263580132446975141568543902028139759009197662854368024833630010446155521127443071030723244346385563368955431757447279841796785006164716923719973612748824928697331025274533731711347278816965418700488109419792568853479252398934808778281258051457677116695105967602992149420041356869504608127557159205129786472626341851426282530523155775199177376351924109510556954556523622211822914586389940751348050603074072281330875272400531661699104628946783690823728574604215862030625316761843241017337680559022410637808840646620661779024698339066539627437912660828119952920560478349990048528511549850270525702719069288015429129527048376462191582293716985946579082826938075483563876412978817707033332823158921592671151584689499535984859184981394998305518571477483668685818499847403758537507022306852643884847296418916144612904093354259655688093363014956714167886512449161494217401497629616529825810923179826995727676367484929489665615955210198612362883858940793585341841619398433698076113971990031615315802076796865862000995356841213567600942330360466727390637445128902019095926555846766277052420510671507654003583949409672330312729050598135922595235242194498604276909309341573729770609850090103215168290513339162848693376687277564076876935920499350393309694624267149339023457462271010705923488434328485419650672310864075456988560388132507459397934575626505415778915660230625279493208114919765055351668961478474392855243138713659627137794677900803371820635869869433222383041601649028431335767065636052662178268939024704029286632609202945209398915858667099116910187490086688030851946569377257486580142798843264297636757416838797328945904386373038505714322178064291052230075868445563301518404234640731966644445934041150684008700400814725640583336687516790743056364301586334941232540863455946677408635928081170439377824947396297302810246703269805404167683877514261977655175678978227468594251629467416112310267773908627233836497965989683537764001192585377524450182034766696631480902580850214218256855131368564951930089889253094185077023959582274919239970328713075352951176965443539394353165582590176776038438926495797771876540102661811115899751952212260566705039980204538310236358056543645009669737670005078829285381343134594863701112856434656140780417073076198715463852165129608218600651866723581065722513344685446250407340212188427790944881779780597178105268021170183477947430605597782670611571987719479396362410624110403252189609822408107226256680846172031139237150240713316792659764938680632898502462404668121522734196914913299347564655264245808015328664327294645312575494582264056403519924386268150686222600544730073428087747230911126556163701025059790989250079716576130584122945810073066218138526509892972961813655999162059095687248773912082104957004705121408433629403495117752981983692202901661277090687252892220492357728102595322283144308478061553919329723418696511766068468709881075150532227282851609500753612479019635122074820795024174275664090718551817241659201543545917626471986761453713527880590023515284687657984326833697949532133005992076439644979058083340390802851440059447707693320621929851493980263903522927760424014788061236497208492283315636725577378060942238644072013808333501678096808707344879185423744658723792800193046099460563012609851601650986340500458113501279130512298817526642307300357525213155033644798246122241870092870955139931754693146429073945757855403592266614646507842633715067954148719542093360223976362000760183891428811284628227904846844453123941689273771972678021357583375214417016462285660969098141264264981267876760096062728805583677927941985130050698864304523393972711198655873175280377907768228866212606524802855718140591911072462139186414415814508993232071339837762221567157107755709672821927931077401330557049516022403576715962397197839184989993418881753456502378515155332143386394171495820909865072736931209188937113818669195775322674240886819098319882504979425924909155454133821017898307826184828506966094274407982107618784599219430403958733055781021476954009409850289516894963065148240594502799713215748832559506117282179940032527651788985520141546964529280517899732812602894324532929087790350259969073467500517497615307077793764056673444919635804259796508227379667944369521213814398761557801424366343423039716818456848077221200392414872024697029319627961044644675004645549068642557854796485058091447608082808837811330477495468565587151006207594835393110621990264580633063976428068233720496791011421908246189377095207443330463140464695099620480384667735574027629338039841090147620398923166199404688179364348997682949609846440166864685758194592738502801518107299696404610288744040559870841444495429926528014530462825458601269604838571700809670303739826605672861670050142304097008763882606350358653282199585674564559491647228785292871686868837414885617690687463257115715332041248944166853891871551668196894282425243111612550475893765065588663344818814744948327209485425620475346948928855989430791621373288418530655711684803505417923170765439845087302291707776003520112860371061792182819137555065952374249394645090258924686506124522384530517296891609022431152962688986525760944309408641754862044720984816114848412017381102653807048581371367993831420205199964300056806101010635522675284773434592562305878759721662838729728240582686946492874084699239240138612739461409645778147224658491841837045733050810052636489789698438983997096564630469752573167341600976752229726292861332265576803126721537556663329778808067563647651240824844838108820521540352267890026576891560693030816072839141432466067432981738637745480476239732103290599871646020343270055082786215704267355956454221029601996204904521254513722301645574379447471618716591202986604498385288586833704727864242567821965896091576600136497972672860213995070562743302327034532513184377365086323517642328885509233441197831912803413690374195081002466575894183175834657300490662942555226191257896926208715553809452491164984643045206248927553877405612551841426201357997644761215477807359368867733248196927075008323767996251621612405644413551954314124339256742624244296991865059854076720297143803157934000587615625071259067324117607496853774972133272998346499639927766128306108754386916146543824901266288442719412012633774406815083856894352007151874781131859575805137383120312909682818227563575252698920819836352490112979856786418673179678270189140229287560523469240731146352819684119163026744955850979057650199754949912744531233468790448824370878485047215732144283818136013899125026964048635545254381932761907463659146306462083322795607435296387343324772983106974723196463889552336785072259067594369199104915795662247115274714099548828102696189919934671693799239853740166076187159417358172252626350171017324738535865639540186118118582187894927683335516862178511297726980399906166900778298433444231546199443975657293589652148475683725831249204812301701581800449874365290542862512172784462792633778078933729808812202207986598629094397481984694188153438059942111570739369197695125555596552889444866556310373565220480520799284117570207560156806591539469292233391289743138724211150950314102611503510975193502176578406041287355021663041452309697701507932869814040638974793667949651037319798044651038595947677171165846104716309256251065498273293111428867124871464128287631976718283229985458380821081032148836841199853850489104525567869178597092619850493115029663321128484811105388209638576238150684910176934179994466486234496856065756303636713827702388201254605992225673116896566804261015164029525186054346453618492492790252096737171852646136027998818786413279755583424184351359550195415625737209213625019913494332635884357159516009209625835756525839749388512602981491900906608526961088284838366580210111623813398599968733327691729120889896131237513042748398324840929903398213222231209310749367107418176905793158382926600341906392600967465242552874330450980032939236319617912834809772755110844642529540712269165555398300779729669827020887189055656110266546110202948217737301181085546629088150017721098077686280568915976129979176077213870879578304521511218158005628029159052481448989667405924205492189420650875888313844015862099197596436008995579980885842616007345836978866088478074224890321705313516470619325785169158579385932796707906278468012117569703495652292610488269354199096200755089018532878295903266609393851542547719013369909438246108476745923402818537117022409725212918439224269964665428190122262279565667831067614963189778442587712848268276424975727276715826296187743801811763258215076840141575051611804798304843850011419836007841395235606056994455402251556140893576676490907506632937801315144017856812885323187404027502691422971079532682008889553387429988214760960243250225212638055088698481711212484097852802830002517520053416045328989175803561539557151064461827764533555156802768918859190879716177339292286491505759529581551090286721251270669966254351182236229930663639686160423173136970468219199367959538152491351972468242613751007967978577073286517641606633089791422136376274750752808280874729318289181095290576284648684898014990004220935354713924989205541745438840552221725438909608991721285278530679388590324171677945938801525334347746048855260966979453519677759145349940057094890670643684538147780732027896491278106970756336168350702155578573853719198043656814036948644261852999749218218187010387908807277246222079387896744324018907702323112461868939058995485457986824226700143093045390603477477228765838075357036435243774518371035775949834339420139915383263020985519899440517896968790847478752084344243079273923073291443787094089661956992906551425139129336850057307008381163828621291538978686530316572833346092509052049751989497355946809817119681648456010284473944914028794237525205229637953025410970488983430962230132310288971771036288670144182896328802162930630190550634308910712445605624455910454021379963224412320587893472577999921684761745444756380923556696159526813798668281666427292419017259962411159091455789962147494011297195705951750515988328341020773587843478288194032392027284732878073433635901010808849432618939918701775498197499072999628016132535322130118305697471638870601947337435370991202272349109617357301706749782950402403413196258024192485302369969518637609020912009251762666004707037550439838008510189006150972992942068168811162873445477208052471416116927109508812156271741810509961546315838523123532912851785871286783008325047675187460902496501020311958838957029559302668520272651839255284385532766121303883848470283629822721627998686254045949063374882303294882297923162263966384205606477242779686316606271928893320330844955186260820328993689413645936694527085921582512344553344098543263547119984274802982612054856170116680215299758568020232951656725783301183007201815228287639552398404339251189596221744007933545188562792538773465552015903002859561657474851540388122817007597817948323185131033167207111010587789509701632328088598435132426785523577600829711351898857766187181740794342758579107751365113177713506984389551432394975784306528145002543929552698264838934559418853962389592287299591579880903488311251508769125853596917723531470649712557403598260419764044955220004318814107459493831877523547114322650655535830535070391168794305457369198831245117631396845814822363240922673330918310855161954058903634816028073423819934129960861522288161576385879465729861001315126470805674565416513896519960401735929637771572482802247590523113051031099109200419920567373037570229496249983386362075846979300748196421277895783199307486743783220850864414661389931896412579929258259144426042758500503532125690061640826531850060378212076382869395828342003330655997122043138870910475651362845900620194138780387393792444072073196197687075757588334183137809465831836925250228799055887858478042812260072571108806943440775860143566212606792530906250987921986077225338654984133015515054801372442916834250273077224727255304754939618970274596190560852718121264507111556159353490013891160141117290143894789310832116660450798198379353672249616626103340052920605448848875367905893856310423311722317881936702067998742163189859981211791306467270590696197901635817999700064959221373098928018412090331177103147113800670936365784658828818945029243047433806979783993382210635757677284961922045598194021318258169930759348646401183344107389680627815099617109029978446399845292100621494819448556297864808537980606709970791379485139407172990464514619727927177829848791534329899250384312329190575224927821442914750284740899618724974095562398350804695238471973370762834998128618091221654027908992845548151012859954141853539726811632549532901951433273867261766247528604710198796533551239232408754411869539662832965466081889357204275647027489324266591189194246337366983188253763400739899512862891424398490489346434399585302810676080518201689147087995594493183524054398839672088877766697942514324223556539986938193873190764071634149140183365387777133830422012534752852486803982382713969986623359946584139462444639242281002501910636650361732106407749071543257263839421588238052479483669433218564057016439321446651733288184111384657133793686603964979873964953534840534924383166533154318792700810782715382943208597877046512484876765501052994737965981686200920765601923518968974242723377057036652136474968382103257788929646068549435598401419686910623061903278679249963407067911562893184335504417441599237383858340655013339102270092717691258280660047962909729354275012295798121319948395790439903407989723520119392604647133337463880192333870754552625476972132386756162406661696174077637009151797480231359137390251833290180340652610483578562797521555513918894372480642066546935375037794898810314050822931984210321835631106888948508815571232027714498488004735839730012534535081810863251066173930042986034763004353727182716953048522533362660010693061503628151482620178876575940123650877615552301691990474130141423596133446385402525107599084464816974656883518048806214510880322999169096432069840421368324555974039757601591465789951966922800309767304772685590120778874865808168730923401464618218642345250738322406232761163859151959323269907271944587488148610631197137634792295945774418108151352435327816918257090414843028534960746896246537820074808743707069405449614472211764721297883742253392864225758054574047439004044097811290575762459995164129026658526986970133555843351705322790070663681970002439278144031587622257487337851719111823015155832471372587940546988590998534652842794644898137819855303712415374251935730850809491794144645172365362745163723441640087705898188251068394068937384280455105222771317553686410601768813525768190004484328502363385812528413420942444024842084945497007201600767923176398555333362346176257145664244269856153036926798207391503058662295653645587285870370857312984141089789052088832547870000454450030690975406821160210869196339279542479942246704989448508775894112099606772272505542797238016794642301238377565347338398219129287531162983479593768326623100273551918945551937746992824603495769551862786009991855313063853965725413956833301421395806967007957316939081723278344620136924855044809061931269443146429236708901633683678473097750440268504588352839033683535598424312445051356092567244260781430758356094400735936536600188654876260184236139979122966579609547551790312837039136456352184118017935436433258498280605287957646138177412808215372173399143948280665971906195360985734676949753109484613034261337389216048197156101679722314814236592316549625047821753630085473666840391095291943733391182668041992803515345252885191065811579864695832900595191184413177770811623455202696976745950288738642242446291547136234027074988139605599578149595162349992723546071017513236978778789481946816723762428119664350699301556470000797426046550372179695226170268752477349297585029499953620441241088320220278443647453964554417866227745886996678692344162194562706885735730212124762043859696888035729032707104310544967723761759545494489573557164284680322518781904589236709841385904395738513766505810558481019511903405304873510463821067327953765585406020352104804455098260291564846094246386853103666531418796571691297899084397670377893735163529254112135401081830384767759561408571825474523429233105322848008614195898625250318014132284529542205488059876299174010490202874240899474782052539499460493994903355531051355144123886175107899708236078720156607206076406974116077212569303647405883462820427246326529993748166827844166162230462173723839732639684435916634529865735629637890195988074328150345712147476085233315202808712435257185348591205888190964883136025743397336249178611743681175243471221848694147280847143582179369203816571320908825034528968647017692706003714479844762610594902287923331955785156375279819599851257729283457902214091962835213467263470930433948482488263895469288801689918260947003075038255399118407183020614058058882546388113077258175720853864524020473710240556717223796750818177607186595643166721195308511528578186521421356109195187922362837077260919138402483819709445440425515051749202621297760853531486664150356605918796807375928525161115220968307565534503057350327305213544533885007165519563241505530712607864226477023645851419817705545668767567390273735869152202703653587799400051264339852859974431780754602664817753626941324903444205056256583231842698548614715942695796774296820370320751484002497079576060275794967251481082261843485285831096244344254091095349482809474372495085526691390750642897549568849533173197525895988764661770372343665668637413759245650467562036949403287074753209246614051344156895069937647844637462885438130843669895822322978889697291798465422649185144245024365824190675383613419923000550728386513716872789090699310647546300467137987678146439276078656678010812110253001169862564269130216980073781534331384986950614971095095705522119883974363963101247636914077199978326608484155993562984800994699248910356853823295040840354701334930513960785307753219341777978798723658111857505011240534443865385527748912312423236132772585677474147750511489925194060984042279461703414042998852129943229194490113997335614493923212314994936767314577555375864230383815503566436168924540791464999574726698947240117004132262592094311971165573287272651029469882414231469248120459437291087606623700638157673281345286621246634307383082279651754132732553457241351665350856754533827027918085058367997491824872365833557151700224866170823277030696360873915392856577649780564907523389152838951476660592996983892857257320211182232468659614490669220428159908755098256092273538769467482821200558764211854716811878115018240596935268994704235977121705981443239335411715519171732471652491369998728660013896525720613048473526399174207910907528236308087715706866924179271920274681631345481994851025227267585330973995406610740040453042295012762913542717538511665310203227777881243936290479366323560494554962887726969137754761673831842806673226011972973534795397993728259286371252440299996517406375185554116546360850721704961782624432932462845678288317308772083849179172074686145483221262461039360046598305219482135028239495639154132213256826200775897756013405034294951126801944454317861038041311230517367805387118165415249234598547824038595928384327290418501893968215217800354445962986310492068131925620220003463310845669386334983911936415410036135869322174700104046930823711979859661583997491882853073582686846678833493724462921854134084574949139835377780440963220335528744800304337625880765562473525224737866459149366857696171303691229933201742818840948179964442198458527272255433633623383704973384983356875068114977828333847291875052451808854898711630521867843258441790962498808217160864385564715748122345199985648912520171111113826099606570875428613689762693033187793627316186206845911222596108969650798592937446531847048015480478585405754853431524638914318958969405757051702004209176378900078750949733510276377915999805002855960290358084550349977146379521666575351044611129084427431714210987183413251473730333774218601363962741471796839086030787699850042364264369817697715149850591539621069606557687533661780040143437732617146883695333737582595428062219823382903018774286053312437528473629388791257815873061446462797605585025770540793150103388074043345022578540372445731907124744597930633385039133482125342285185779707252312665220350371694478597544439569591459648891529417539989194273817597227201613617118527181969189450309654770532563175981449959711447219944650767449186267768813892224731033289235492934213009175125197738781347348885624668324834871601156075245319150254192900135029392215085338139855049890823621836439042867275614453999123125096423936043665478849100042931112624811021838082230250477726305844269750092481774513603309190855454069843893135173096843209791893416690568168073970820319433376399693295229681709655443563877515506994699510620060302215346145468038580624597182891123994575556390905043199714620131850523416796024039690494961309163091615440352015763545867696813048160361064168187825532279424836970833555434431403627852591470370734085789847330182352878235043835074486273712947057705327206452653644533743028557738081760933063071718896672775817961569317385376766386753827515857323550336954208983534229372969617028431913840331854653547832545646319701892827494446930759316807053325477035647235725493931655674116954891168142592477258124960754754386195474077468865271304297215275882902396954543238971579343431923555709901033840345762855815251238123198297656153630084188366822243898674497938871760544119311232888241457875732048376672406331266939280298561748083340120308081357463878755864316855267007171583593891267690347385572398099006383734100266858131060334491322734289267684998006571056999241570486712618004958054012768081201327416599883074854812769124257014616045054169487778865667230156825607869001129207216052912256842739703079474769660389202281936860452051702612829258779710117982697781651148801067579579519195865400307806378688654652129398842310107116680053035266553303948107876338789647687624321480943126793920343503873342076389641215558454935405597118930395463992878873221815557643005892039789131871193052345415149426368772226186166327642056779965002364025855035395901014101663537656910900556608456735061990869060724024953757679381456809032052501037782452102540595889184685806213777923841138202618890879531287783306718012748404052673487903070223603600867753796450284217168213378480513865757681025236943633255417453602131941790384399115251397991911369846745390359008607558353794859043103780558602374647907371604815933008714363665928118763154366471730656728633703293590937761786905732204788771144873185687849006112720236941037725218715151134193509256727434485093280834574376105483856425841981345612180226815972381566021908259343360587209641682468021440439620552514513583084509902391954134095983312884518760838236351428484917285140292196618043209060998447692240840043473837570700894918358546780509856991641912024746165857917136710177024837921474856515739409278745887218614155497710159451976253506970428925142484310005759486071752189847578471374896279425241730104832398433405835396989276931028422819628032045453149216302887803578461577418353507821273172274763852598384553852496451432983783366387558700772951000883466968251509351934469844487652345269940349560626493470005440584407577300995883362076252196365626682067796969102333503921746449178106979685964123083462122383555698580484212490645769445583213590154583354820915685922440755703080208539436509597236202008586097909637667149048407707931942503322269509574037529360831331709433268598215601509564108343303752737824887392953464853192023538338307551186861019126647020207832289766842826276169299005722504329423225628458813398829930217716783465745158976106694647947279429509451102912102736146347423858403618325555496448629654473821835229434526119386827766724599103868766980976158855344646561492052956695698799126991587349370806920586027348847387826524370286866289162680202220292913362826748185045447683864644358999905478746273101160449200210654759184584617640535425406074496750991545403797882854340823193312434606237824145151428285862412039705902320704073186098982139112455204674407599478368629608718417920944716505783466959796179511513482442476280907135657197099197646635540620969035304148679695373443378040327838783421959886298738323409494722414111958219152502013078096921528951693566358582144769641265966707001251789185975696740300237354723503293619587060397918556000709845838183448384242071971453274717391059283268087626827385222403502318258453508434183120219397821185776273542936566985255509223357696562162663760530561622094547138779104864335834217338805649634135382678429845014706630999440353529897749836063941157922452535616339327082798510547950588074894966934665144654160951051320331825820105881661593621029036916617584728328407672552248193464418564544855000585671418312461920628625522504123403225684252541666745121967477089775533889258056578782613512690057711874670918596541160142660027489963258482290209499654311299167279779620450604362954708769393542444553687503716436747986030636010077594614123154800378371904881340479737072133891535169257770769837787366121547052999626061794198861891768700134682592262975763995480649017026842367861442641986439358180821613167961212102505006663013544279164813650905167374390601466725976114913010030490379239092369532468650416891936494924181006081264275418255689811223359028365648019545123330747733168343762990266376820904477183153711954751491767871878613876412175543551986886275723921809619247004862695365891967173050554598937586781389981672542017739190642291023306686862849021980567555831923956834407805732847992808208294993835533994185423437295167667467622901438391328599175199722589014444944552306471759186744843075680205351105537264187394962696486695125580051147678555311168447339940931401272403563804778692233121916735891674404725085486978268902949119164248304460916469641233033691957923711195785071438799330265668573886774802741956915672487099260633657232491757153582668958613147339948211636172984190462659930206474348911566550878281319871302750485767577862469211951348371211351469288052909081127598728767175435985831888478195947505752276304587192081710165973929284533450941476031905129106957037062523829547395431835830735971089957620429076594179740935108076199993733408383441205343633171562880792268495013632951039424815632583539415698229980745897565166789373930555668604611966918468557206193412100859966054057411424846070838211439148166328979001665545500881713488745042861395577212903600245944453921538002316038959121662270314206517107573921603268391075382894999020157191521277589609097267336815437448535410654911656776694602744596285187361148167800165499855113984454147024876268432890350450391992137014844173094673984686568178543840134422818238886796225319814334232598105901394083922661057442089326565979095290733467887524632486453365385444324811046012351357692787363922282571973606819207902177732817453951402492721064678415060349753537693952729108683860078870601122814368804883736598103052438504022646501205936850325540245413969593853150848813779889706397475128665884718154614352839052231811963208687681373664762508198239764378488629414614290734245166342145225136266518833172989233203046722556533020926759332829485768682905867287417901119045953249262677320602022728811131015187847847348867689836561687505645045668644327519655011434503310650628570676597840231309835474701711299149873352504467449449569943308508360951249667931588578059776958038122402154882160215335310043403922633414140299583319838557376605232429996107214651535945176922063671277516204367368093236725554797388750291753483655162530634500106453565083873485951234790235844531677153618301598783170509805569262120044958773491314522324240275693945914220816212154226705127449424600657632659889197488694182225882298865820621723093164113419286531976188188662491661546633192074311804014175342867866448299942737862595495486436226623373234507187696333468923723548274806977294343253164447228104709821011919431424104553769675794981878718453775776918520953956680736261931644392951024090837021344044444782457436030073517168877404954226206635832572394795603436808712941371813745781665173069901364760925483371791310808787314205934784080269462795786259232353192954977590251712606164820327925922531679426815600063492249334132397853105962982101953512155148515476057296830464454584557481548571995006107372029206382928736956908370839573462767884605752758708927806478191851828499995865283119948367974026909616306340074322621010746107138223084697166166053196569553602559369837259644422350487734213964415195150573770023452480334789647543373818020808526841547221485301895999939837227898667305475487652601912505532488254110397676185544549565013027781661934033741803669530813239652761896667230515459163147805981464726475407441804170811979168142132469402754185379746722155990562427418818750220979828941080005518460570304775693442773622181797675033122017055677002800850836399154356405942946270129064828887490307817280087805986902153796377008381175489049221748699016628916305098035734164921264102450966494210480172660747637549961760860685085207242384168779487289377174624513910473807253409262143860249434136165810824202790602054906340251818863462391109600602625996668674945580341520326413274904077492228373713871269019957616706853114945247717426133879363203290285640326530381632048107069422969252606951818694844351691390518873109357958638114029830194206174122958130049503644627748305716074162584992789261608231409410661988493635107860965123814034105002392284904629908808993425115049669589327330576571850173134202808537112504962668936167197677357155715354537244511235285271268512964369843508471474162004767211371867053329443106501058657170783887521919914545176598962088539804368909748028452093333052507328238111475090277346887394375110028987338964579793187222691855357526724372737673846028043383511075386072512276706397110461165999673342338274180417937486483570779319612566274740121384723677831457117750947927794693507922111343098320994194166632788471329509795821966630285794813282381825631969471189798073029781271385222008514744902470628105295839027348806667827154051624181033763454932663433346879247297557389720188444013723275304571700363331369989022500983128830044964469653035775494114427280789713238341079756343480098781646521364876683528210916640613705416297266392427633264111974101091459065171099610098520998007186051252558572514969896348872600080451632873137758854987551742280676719400954883201590659660368685086974039264506873680429101927579667899564566681179703218846865416766761970625875424002149118864671291027992413303338109688991135334068751931834643993470307655068291628419385304923933501253003641825226520434450015799753478734510611323117516971396838970304464582391942416131576178591378328392606971045463164746489019143160985075558084895707511672344051217298538371962880947213535489055438991554519389103298748584322831787612562706021391385644990788496739480393848091917442289278111915639953602045442225120524507131676500018954896563212992435362493296763676888444172157693103040842727225698894149438075667298612831658332983747910437644053673767544932483624471422482763088166412291290793219922258551866356208750684843112380574029069858475666390158493013718229165546676775470939626654474883763775240459104281545753599407787398887480067372206879775219324847734431450719470625075305949288307123022501403316953467523996588180129972838889179754421776075451094512159026702987383205498195963281945708033690469646276480000336926044511048462787722353109111460468908437130493109020618622718093027570068832046478754456175431883246029282490649492004414011377286268642480227333398758854643305664245705971555714131849945937600652490614895622113712386406563504787002984318865765365853975804796441821081333518217508779311606292855025842330225009207403996911859642204791172111668410467192745442384486083138292930024189481488859650715496219575229468365149647303788838561131669315880800958458683108549071919741767015864197840144773122973459434656717081031469834879186633037091294475576794209861438413331843438345704759881797143859641058288051558629315619299757761682613979770904706075448266661468274578508485922978944105443537033741894696557415518484043767959534325533879898925138588025877783363863307048333162193760807443978864593425965192111515802941177643948758253869133442476491142482854949080357416261801308632219306784431214061704120677376845455444091959797396353827919774444059572442226099269609911751255834787212217550717175559999834638047751518757091672857490329859665164390823147203173212607784565336165492788977437383451292079436419188764900595058697412405286702059557041393082971884543451674851460833322348127992033829734319674416510530862167257565265349140272769897867121620108820380292223583266958191002593909187836378125675441527890358435716499350960010177945894748258779926511630733604489270072333702460022208340197253011988517179061145589265155514135170319561050973507241954616208849068446707627206383411141107446117041691304347180525578007114072065432131021117914129058872922460639228857979069615948111091123986214496643153409119888792714046265857824260346070567871423681923669637765631245187616179474305774312459750264088485178292415342903120590269071027236449558557439341905018216546372727325690060395272538983231053651474330774859788020918809942081893645088263033976716122583468651912836583579841261928228867091744492190127112518343379683987125020440288323883393919585358511449003777235411724153362549141527765927450211921199929373705414606716813047664586524663198471306030383590404772953101698305438654230803555494473592873126902445607391867010718195903302920029278708055701812936339474033634317796713263432703013967442136989595817456808194782656206843875359268656428144319775247156004028355749791061571492754497863998081175055040194510858560108946937793455312085813826895695758723945099961223147816373785949125343082565349476214291533044143602493392303021922501657487267488267095847630777609088715379933020003068341919210795036769209030503896040655999507671705556270173065046695897056245350578538320628538240703613445584322753242820475814601411420165417268215775068405875768844955670658249373583101675366324868623368995767511469657758466041637660074776725867604106867150578563802356520866071552841813740191590365672009668681242903659075368797227139993059786821104883503578198229118162926334324297580579865102670014663607100943565787967052450354180669071093694080224541049672325225829209519291204228026903087698373084793599094914754916257019524495144890662930824357478719370205140168585376728259962716627182882371595914931721112646591173732239407606657619337539512877068511403506373721944645361489473694767438037069055343651148263249368828167369915936145836436053874915805561151935317608607479095872138189367277017928614921590023862944545044880561823592289905304690327905399419783321355833936418628003871353224960287721180135335045630251459341430320635175012231880895999075623340187396850952746216590453434061275283601011662041941542426684305785723817941627720352954779844040905001554457986156171149165408075050066684014879502795324957285556617378720544429635089590941295768209378269862732313965589241205060206390500828124526966693381235561796351165987454131680064456083545399656586680004414456967061365432560840346451443747098916646293356961933405444897416207477517489830675885447372950950039054693543772412148159165703566444014239060536229326199742491715759590428344806909146874427820478666965755797065986040828053653642609809750411041409286477100279686661618117960176533199052730798796706909742020594867234818232445910431178681311182369870541719648217800404986021860128023480868622621966736232318268349163544490683545349454672810319631655982671397913255946585446744914871501422806694146928448295206067679056599522168544293923549658783671916860556699801737935298855336943452505063562298809171575956953554376640636078027988640953806544438853780555562951330413312957294146634310287546853996911900925338252285164821008119547677897894862147190827646220559861209068586352325838156912949856652198601343806678437282464390124096731864553425319160926968238897424553761778611611209877870173128614816099290273151677109381119924599438554073106152436634396954451983931125992630733841991739956757589280615170839955984351317853811118699231924576207453015614204745601574828541383196870155503578650334476835262898125528026041575238564811261841385322238366123171981674983185410259787504716496529966732860583060144050142504234961604841072792794570783425897088075594919290964882523478045900485075304088552802599208967003719653587893481778887657202103230765764853995013346628117560399197850462461000504397625681378375397931747870024457121245672161680881561637166149936157861706789076771876079284122838368195353705083037756215551765426133242434746769107695055861553291377572868336788863418692899046206721080679145128034412981377149060252191612206162729841223022549844556715108237933138549768199658830271010112435080437381572785206882999473486881247032593907541882922419010600800899669441407127096823404064956172948336048874403726806171713056815916062495366612556199980430978048738056001323801597490021505782012436105963592081430656571301961429727507194103277029440157180792072207149966104835652183452843098010719784658165869796102193745332806392834309139963750503781286373117213039483186089636048683772429876195950761220799067162722114386014819747736770727483020888740691151644284953548082964560475238810604834002813810085257187620867714277074748829534478088809623584817092882805860123856758399787276826137396111499549791829819944058511141251216612188912329707438862182339276655185619753843612381490239789190706269827301159192234927578851976931750328283351821524442897012634232571869298518576705843592332330092857386502816699552061954602652233063957289839592072637948252849906851758211225439662875201791590853393333850972454781151778244607260373779808183941236848093758037658029296188919751028188797700645978212240984374195751653407162461399129016586404477410253383890263424809151115516130214254252649632320421586852976733185974343105378852537355076434412425352826247826635884384241736841682452244578946736519365314277019147139010927466690135238780288285859461226492999270414331070779969275400581423248511366759241240090736765194726765403099202131031372812987581128268906363190905206023444145031170937600695587265228075049722963374843801892398960235631881581288630373962712308977947091810225123662922623779641458171000781304590576556933893417334395108992929038402733219013430200083327561260825342900712402697132157060092174492579401210187234769854304432838285834298465002279301789579301880042868327403504652183419163658875995056434741193890054230007602206961245078292993301819242795672567802107112461563775247573520278518938569552499578779238124820106213327866831709847768927305299463172084675933785993442633063824407814557754486845388730274769124774942707581410873868420753544019207875718607093494938096015248220937181599607125620621536712368376420908552735890247701652223144542951986399481864724823551259855319984722798356128173923444015336048029091647580325227404584928869013133207873041884401160679777021234603505040063371503339723063300777041784471059278734659373067887250020560354895741706991929444982728865227111239871778968674678892087807806780200040303424172910248798189532749642284170068840091168181297341099041059456953287618508831631737527758100999273092979695583164496295028962641377920995722341772310438348063726841222728676030015931320031729719608730560599941788673104807639602308187771993684766611971173911653065250531564215936665425281278141823925974734402980508233105616937941839507351185974169542570460568569710844656232566949893158776405350161684386124861620007894583844239925189476573840890947573451182218523506572127439911280446649884348713985964042578899571298081530869996211461354861242959479230150192505183059708490867098560865390260858732179127880381280841094720116006940421724434002811425297103941224142678081757714462436052656035019554554120420488585044299503211949570384795487439275555128572718328416387458543437670466934911299724704177807009931722182063870805907866949543502858813828472461254545985017454086952189915020348960575816987868455888261188575054886948194339399761028968829937361981573515786775900143076902832534538986706610462473638568337727954435923072049814491857213287978289650852445719115154281270731508225451983939775190509129254085265823746246326478612497001968535810375812954682091011589429740689998501024375285715811206735075761596511412722897633365207350081191658238792498097968650488821389196118892744707055503224108276399071736762859547399556168895290573317673878049797814788979821767399858942492992783035889975559079856377348896966876885360513142866292543436955358797243767554559499290740813978143153326198049892822648171741965028415758759850984447602735668836666577023651229949115465699320042510204844812227787172637566541584897147049593791761377569534722767017607616859768634323740445104064843053044206526993095329969183099903709019241508238530238222109949221291158318935190226719889781928455415511602304258222100541406535477129365517763835631042429133695367181882362748133210366422376496679804233896530457615020669084567891971161194454615229150317165760271807225601955244846211493450785363007149253526427451412370065788076859272274217095520951341781761690897925184580392241750525007687580112130661324715911996842310629334783182211018906301019595168440986172112844376126376296469896477535424936678165983052112243264516506901223654547287051370524933798645275583550499227645111031558410406550897141553284146200927188221610734561372420797060413762489996681084334768061862764401178265247039212650258671853572882677112243162212310491480868303442147844623954748973491637190540593711915613167604089896216974206176832689815390119007074143252555528916545602719137719460530218098277685411665884190588656564626976439790639584559002989822005967609117830847693114855893307376812827743752594564541707621429546681576518220557873261602826445448924624891305220843595855748556574384442568923563343207570382498643284720558400476236742595557137893024354136347606886998365598640038005208823695144323172402007614048810998237016767770050749215906588664733583374127128335138315014449280949595345817855112559938395990511291666755869215001271817536087355218652450493866814777984710935590010538926030034412594157498282172042296063786896190795136602475534297828297805395216949344064710129515967180844747875686997368512890897292340784073559990441905073095539027974368433469860873525247992019472564873878843024335176716995703611516483852995111543581723979067167443656527837628417231287157128984302515325146771637099615999880899541841864879593980620965734454294873271844008191298773863317664104618413677807678418625382493989651075671938952308133924084791049531869975502920293920526830414306335448076905853807429047922571882036440175027472036868107049936935476080837144484001923826822409078006947767244033507146935928782671180819847420982816921946480636718482783495264111305801283267656931154967678835416141679164590040386817507603209387417261521459539447269304251162684857529739019824292751328944716279212564624826278983330056278704680881799000595243316642167558297208969276726639881451018816419380978413191441455363830855026340018642226346911759048984934820370409050404771746463450957153245141892606693286254917997777283892503518695337006590610158838991540362852574173665692055754460389460852898185844095502697270509428408001174389637173413655008291090656865452081247556129209919852724695080158921990813288787525440145115524050649662391595864050381302982977226928026307344395127374074653143619705344887035024242427262642028619340447966521837478558292314768356341120956553609441556424322754854270611775260350966856226185725532106775843730488948883434562257892285554603271310227252695016623923187218172209700698318590002493630980804122363792698886939289319128904420546321912108150973492795155680996922145422115671710140995236753927853242613058119362198940176866963662368181350750666746872561775134199016542853193224607953084061302309869482549010000639384743856935995578792201865323403269110893616346856079053004418300197394184982999159030734650371312405871450306649826301818589559944385456475334476990146347094163925177892223509475232911166112492959078790880205703934054514685637160551567072082129409605766359638130952523796444707742663314029065411188450487815646924086020125200336345041152744741560799076449170893786299252485191185190106230893222511457508666015836045404829734286157794192370048005351030486562472041683991553908823971805218806206249641390646046221645747875843638231209435253795245367530777086643784092844902234766905019432161279061290291976231985383790320070606109886230464588144157712231296779907581920858742542297424118429052274189653934266837130976011423439396125072819649533171442354146871127812986787061292492332015596430343135078512314405835432330771068168747428481274418822583817166459594551925568632340095519402578227366564180764727185027896236321220105049406741627560033309308217841505188575434487491444110897483459647475308638613982083571807926924517998944665076640882370914029224453329336785638012494497873731649246691371291596808351183252823682703927326714076014192074822067328274774105568660958772966116741228505767793084267477626735133465874277191559625346880730334316671067918076735791749685784409609628695926931061070569196518679804955674624155289907788767802002630256746579411789534613798631772309498331244301903002115461225055864804984836019088613499140353676544280424764822439373995671385792403390319011001829308676295677959488706187809132758252445344952677320329550690454228547089289583883620308931710348461617860739528123122249400962396882046075917752155135599253537691578233392347532886650931128641892563260738641904620188918001958630353756970173210364164935549202140090421306919796205594084983309749689897737901349502048181119387648699861705910897704417250510699541112340676644411936425791681444781887759836128633762851572431836236865218003323808403238617795250768461885591016760940651531913425308415926832543076292342353524755692805965332330163701777227994815075110832302110515358424046201103296262523942492816538266743878684545252347006421077940079219348997984946871099588489422183849836660753610703151617304741174531351339303046904767670047192707001953270276791882415011115818375335101822620182204535022997720550111180502427077421072387837561939630796668204412403882138526790244313496549745917455383879205070704544732071209708638573039685201435476706495683535401370942922712527128373514997538398264853359882312394763735524009480960508060294882383887346665878893861506846370611041559419840253696184160713589226272661541725623856416026860958281983375969608229832236597625002222951760176490974267094592801461635725475840456753240211433462351009850713019254567253100658121292149996053113718775188054351835803573930143173294410463673953061636690358470459123738180458054940998882668745553819732262512858277676072851178506507332089396823156716145539249162117035312877427210878548941137876420908543784292246255694371763374313308858158297477622368868812498720798047813312705618798960633301824539301562398451214750317995326253853052286747872504862211492370632691790226987929333737436646212444311797765746318391139774384972565125290946189363357605680973440512591697621374058442976385325555191927978791071633384208430540575782628281656694843830922123792732247890399807513794473583060248173675675454954337608530613434805358767900216917140821025767703893455615929150002401439527417014984212421982112148823864014392368595738690519531832230438154637225057536655467158353154495634625746186196163580609207428123465667453767344895316059524985199934949414801109952320841065186020706007097578584226913625294722086777749104368026515682544362923798702736034092825979413724744881324676230536236041443183625755261294926658143725212205113798297862035606025582374955100765290399446323497536827737181094660624708414293609558608092746971823917618525078748540393260924958182557563580139479898625141297120389206112971565594790971627286998580369120341479850354592198645746582134628701769960223875042513136961239640181165642725042614016264432813682148309065912867163456863974343091379470716995509649463770982183036799252121899566333841208876714634014318964510932087553027060389842710354182358953667818806434688341512497092599505409112243044326934663866235750986538310429705048993670350157011638881229015480124813623856103143143628671723439172971073952243946138020096391524942784930414550199147181971016244788313564420122451820968567372935631024335718425203738621077611886373931912358564496690270749633410242096579446624760775454398155221960262724228648908054378584265792843401843325792076343480495482065200928604392668695571731591330236053754899282747175111564208363968236639324381361125189581376422190738015525475140381396054357009804335684354992197039299247163061566942259439247218728924210245780774256303985538949176042628627306113174659044251166350361306360780556382165290620131385000797410304019562852956245120089627539956283584010265137091491655768995215657346314509690338465605897935279818071480395676712759318262493671686071259348471777281338861006653368477296928924432613694072045402207557229384382449645504101066842421438487200133307481082118902811592089670515313072295524229766711277133629768584114581585613103629223255147556428256391480522171368419805595748664516719818731117313669148773717333939059347885984625685084033020575885879866358156589054145204800389099858737879772787519344525982706292512321580196991271868398182784879112678951822692112244203988282428777588253120130058152298212073624735115634564811279541682749032078766489788229064569340601725915836031931614380774013930596230111544209925912841571014822724726286629738494689700400832660325084477155367975700346765974500514840812790387425417181766506942527849261341332457441382055705542176465064741514548864464250969035578873287396087981648715094830827323991878210466145012155955029526974975003943582240570292146080494648378061057521108236530378551735776074060028093295489730377809185401047953050418782099658556979882150488979210958951986717574569822765841447612022594861224460858335726977354097854592928028265936874714106076559963147224051363659123869672019919735848896775773153104695712626173983559740071182090793372151173890693893844352064156537784351878276299314339912957861740487583736071448924770973819330289090261267213842467192399107711507274512572799549521888522396114958241062421730845662028608117699909271799024331522717568564233877591568109983137594919470686575976629901080917766693161587929277226003257791451400092575548517307610886692478654034709072822754554228250706092890785235209865521441382325180600033449249190289719214182886117861203513771371594130052835371985873693702158989259833853184373054202551924404677761398034288796684581672702792749748709849366436885277845972300381337788144366391895779530954241893313028386502810067882371228635846968769309223668321578793282945898417125084763090209041644214279513773263722405130694932797849945271914537718877019181903945445044443642701533874363256680136591398979764032177819658470564781173068343526990170934413101278131944998666940875381755651056420801597550060986200875366618217297323590778428027103616150358403407442448158806054114237443327419089251614344897156785386087465632560444152913787478385714231941187054203715766569235097933748225799267675758534237528678561226109201399120175863371285719801959573124840756644588171728829520145678879772887667205625245151325243158749800835989820087512704321322206694484136013106410944691083357953078051046895509853427032176063464210186909048726416140179880702934301908124459501408538386076528509137684528440739719964945552736147356208277761493232231873760697680340969456172917807943103030331773505200856619649117772836346101980607447080263432705389173319608733576948631064408563210898971356116180790810618309066289387580035267746952838586725466494280131234028493610041620752576505778363988235635811437130982673540717438019301740648099189573716030825557549575545875803780264272573327982922778052502351083501380426185280426027503475199910676458657731350150077484917459989150608060199310545416912232449510110898329484062943387765183242163713856189672697708427046301570040287490873656064919192357594145416626821396528642073461776690614040721808332378248800927426413838020165353631676949692310988720572768281634809822701021443563553264113128351362732199893203739766364621191032568898212217850067818175955775189915628372335005459700888654659710973943411963890234383739478856915444832820621080004435959312320663701840508586581202386349073106009630551209394493152735538312643917587267258296636214613393786957677569945347434214286192119064483505255675860720101879447015720992256059142862930867044722458179847023179692798295309593399373390646184906749674967161524168098404965853694736377758537003107527520527110080286240538873967368176655928385365152745361006714095253565729468870209568307643948761798300743775762051930743041570332806762948712522134954985057368099906151702657332245106896553866448244268672920884572590143404437358596092609990789763788891634407037970119038965810073944813678024111346175450524879840504282829925546314304337974599883034936908253699615400126205699692298496645702523234732463993620647503925560760771909994424255813076121621275289038010005337368276128573205755183734691557662905122174297642500782793914426610346023940125351171007940592791985844620704425015381963243324010992179123453555191878014589965571987519949402067368906531713930355333268957203435163298640440921167815618893177585085489412576150559891848235070837716740596333908097739420086277330836644532403399927812792058122604917289849698412591880475913622512811723916300636405013365231579023866159183476375926529032095124360184097643470314389751114432958198228332587493073834040694614551942227530765840388375547995979729796848125679625010852907910527969964445959890299522654549452284166974849420374693031666587438292922583633809926168304985020635855614211092195910521301271751966487531636632241748219047254984944379932583966483786532495266998455363471965504952136876208647033979840425752064907089452169811779965718677052055463164855377451605642031688845162382228058544726647597911218251745379459482912091384874788458048029078950749214382608561052526021739504841120424427754067288086473029990339534344576048527912073093242999598926544892008205212369696122744078713818352748614451623077725583550057649048582159560879157436741753798735094425832091502617536808806783847578439084241093708938647992727777358731206642451806623364219430880576146356937627317716911070430199979233297038010359239331119049843602340854037681185330942993584402458244237931889936014728897320184205353001304684989863514683010739948869637094832074730738989776402811052433671647981122605996996248948078254090890940477467535439939787485213604956859371576996339118379972358772081686822872085936602810972449269073913964264036138377608191444440395987202620477020172637084698609556144916732003293734815238893118510563221235044551364147682487451064983675130268480747016480350890896117749914698713758176318188216471964307702139371134460741345048220051888593379409066255914115907411044953511702076419084341188985388179395063921283105721242528835543748641509395190699325997196168440713106677991618808246249616043908025539821292059536328438371096867799217783049165465598698271199480287479080824264546497183262157662552337407227857786949460268675013731903394061733025221761878999409832728685072322606964922124171683892842875448340795988267725966857568588188725797033970057619271971806229287633615913134946193650240766034422751577797664087726485367415518637006693274051900728680011616458240071884336961254689442228095635154623305003919897839371534684548814671879830596735665110211402473621697968007927994423451940644255343938750356065226860114637266456013811415343108209361362756724255618879121400027858613759825974799564403463972215721846276665010208007058422532557168224184088366263946747440082072518381352350615260850253973066719082484828067132111966436535742768119636324526123002158277659998731071824757780284026001776878783225717352577707906866959412225001538631299911877874488518819883883211213878417613693652212310636378724689837634340470743980472818382382492104818819401399948731581388048410931185197152404047711962140962462422969525779808612283238293445354485311372209842733192201343055498224485740510947993747987954519929356997341833173679893527715481208445069048759110820797780823216292007281492327930776123403096213536224937819977482550871377603014358494707943124651139788363055037919136888398622731765809790227358764093547092652221197377808500009510536574714625361173611522380929956504051772362537917863973311485458993844554042022643585432755501838217821908159051801147423906578704254015903143966552628305426270448325348460156076247351937508983531237847496765669956326371626796666082748720328511634633277674239065479904590144961322144402287763488577416364481815209081765952511592041176790816900592050550680368562318096054007424101790071882365828038873801180546740627403115571167852584962907080581138529115282679293217973815913006359682207874980022610208817447960313341673513803249320717716600737348585010651591072082693444518260005158242395688715330481764085869416140247321819711299822597648178647948972236483105076724474354343649665573127090718786836959817607842252579010565975691686945547770283029485982312168513714434217935470417488190776821314157546219550546669189708768613368425550406418778180626531942722838205754435555492059564049143606621873739187047331565871824257816792704646715196306231341585316523053660645175672259388386440124223959305073863461906086597941906022269318563350778252868119653856312841576301936943593983768420712864541339212709241849824044061859341870423828514224613531570458163910542555136434492555004477907961714149554156025431317511025104676410902888474913546732470410437992227291552909920647395089636963223060210783838632178747771719750556056398993726800622313444592059946330619864322622964580672844529651854920315391601529958203907564866520392706642300272745071448139221158397750186144566438707126070615018182107974489662083891422415155114816201847735659864229971934269963315883835984976716866127098021637645340630694321352314958345761496107857648641367140297710966046835132265992272115052064105141284970248945053144050896573952838884218490278606898800799425460652785050709811769731354077708597903555813023815089528482276897765471442080393539341444503136822250903461280167264827218702374364607780352241801805514081392346585316604126004332032884020748718660371911296412765968589014645575008877225633884671512998396573997851228569524378758416504054216770932773800888394185792510437817870778355958430641979220579895771981323421659851410569800490015483829856821202195371868792261530990133481802405092750081871934100214119819999955134145817376113571952141482431824491414922214280840071685814011943417653853734819409646233289914609805198220350629357798066174981613736101745322692557529011807524041221325092856991643114183014826839901745241849720589187372142916142978153390227977353773832665988270716400665158524341117849406185892017661787022056923871685661431742705872505628341081945034976888917176055806625873506827128475333453049204964434807791604957176575433062417779002903924246179610534304149961147316528355468174545815015751457413910747946463802909804873519604218384905226408934520601874572922260802775157544313904502699020727561678237068449202892025404525866888704912146882111717826822369021342873004893750413419828832279041546117138457470948291660631199283334454873074542669308743851890731637476542551084416520173725480046400441107296683362927722276985066502949386806555629204770376418591044289370382677840626768724826493117714613628376419253787690964586514961351397093004068880654495094953823895961335164066008488746528591232518302832888178269881492788459676285974634954867295614430603354202475654364027374819447876129275364904757560361186792258779842268479150976771178697268775676452899008717985307721823401511352517106047035121422416486757585781278236440889182060428513477087732648919733540419802169397184252482532791922944134158255762099816991131830451264532211099767752410146206822141733871216781187938882151783786834537374791930998944330965214077236486624331135001767131542045352558807084841293159201750534724681457752529830456517542582422608841367946086640348696239992620498006293313239033477280214356197127793848087901029706867072506820017178527115638048867658989206848677323802320856707438789390933095714513491137709613383172312669670802671647082623781146341485249393227027460715354222915863771399352719071459051216414872502947825790426619920283137936399718092743328228304630720544013804454465739432606669341964438407159063311466784818327062154339922801886515876607815334982430701647091636426461684828421978120657830471008884929688626484145781437637840863806447303574442668455607681302349226410068789017539216049560385483166646415728109827866275418439138851360710879055370303503738040890742337906982033008181680937062343090388840765483203930019520100038645787153783216362315306074259597884684160439060280685913766189208421376287312078614471934064108862448918237783000861754331324012124868650108410372426418482987292064641225693574237397499190328540242191680793834436604603406858873476896947675570029618700648795818526017534686217655694584689704364207816493011922223959220834834009990230859159252366335903600828383528405278575819782803383294016112698909668052314954637178764105391538599633630363561093673459811941144588504373254240652151170718433952574106308995062773332042655964137499758913008378898897008833322604271264539065427386389699917132319947981847759244556913536139447064407224735174530755829673376485073122900868270033489520996682773498779615674473201120727243280275118960175724982219053063967121557481632888053111410925633411220149781458899180694181968625032201352024649862984678864122709350993577016943287044572023886661916752549048196188373267323351913825632080611352431043318891720480197641485965538289373758224779054680009536460419191084173448070994994941930360532197218258838482861732173686262479239535049232516033987439694712980030410183860329954562102092364734676699258211784096955812609097309845692053273311887911126451679586245290930694659414929921459457649204809597278279621743863053482428641760119186592290151043828880870101741438299166636572594036255335091867274269376576467086641575416329868002329274456254000688313997064627102515437427676355319216768002883277603043879952067472347805196644154053640833455958974570067859986263113085294443837748456796760343803141724771947562819645857739041091183295539680977041855095181893402502535533851771912085307033040299622183381284400559637341621290724732027500398066260322175983645871037608287890892438695454039570428111620374499316952261294862762293089055150138091408639245666871485175398643101861221639327535117698567547838053239622170675320702296057622411872945577205880353787824935293176767022562464671206338709537211781891027471974117633030152709428048959923642496612837475194823967543060271583898274178090808260709909155040689037572856824605875104430747676654229299731496906958630264378102873689852033183496928637897213481679799487872152197190677747485862937362394178520113323990180933469852438643061046219648086818417038682280675748201631510793479825654798337892602014136423337655769912465646316651988716045177631636615254347747650398648885040203311266184722820704029667909178643291190028561748183763362444724944674130567495539085184208935533271455567077088265987535725649786819074601534417667648203450920163177856696800994514181297737864647689366885204133846021128553537443257593565656771907665008107204957830744678435404875011085366735754071447557022642579658436188412484111311570971880429588161054112665100699528896614844185245830388406927958624222392471471311560869733755270511567333854696756788909008598212630095886961944885187727936837968700915853514751850510416230814583624676487927657716656701605063436875585889996967030918834266918943693257379302335438892824578359561661521220129607618829787230462874382972496609463463152504277104931471421981873252516860750781527642857181505232172235599541777735030151584898947008636854863044480451728713538383805998138580580599237913822032114811093616190535592079143247413532292120393800076376848610155833729564512038184734950208476790590150925315587423740506917008748819481211882856598553343564263495668927370056546317034732049518045934510150154097367289766419037081710482932366671997560006173888148201367601494821600075981307339510990663543525834497433408372462314646734163827479660707351284878511715686325571634105629814081984882293766154611711359978793992659627625620614963485989721753284697709588481145606276020772840610580028801560467460002299471081575575749756177579803397836380154296890316444219120685229157136028480137006426555794037365710548872926753262761378009303549687242609655193774173255336715596306797246273258896579542710499985055244145889777164339934643750776484504352963576074892273857066006184027227726299938751411037688397986809249087865694534358493911685624186888219383330549830376335046380292775189758356598988165918848149897385698567644407541137228146890140168991648125073199207661995724202617826905822944573584954528018567077350322528667563975147622534979301350945400788472452075081871774170811203950322182819617874018708391683654741963319504168675940304772914271259081448089906655128264973515924565393454191697095483272199693932522959915329644555479290088053171231865458262799449119255132840170088551186757459367685984880382701570484100047747222119101764233347137981573613058557775484614348524275908146879506180148801389579347852471967065884554821184661110146341013640104561519720861387495702690217988001016350183989431036280897968757546185133725547100206120725586062618219116822323453156102976406868255543188878496035824575384758229435665494011993563823297215590303279873200609078019725131374591897013014931675611185034755510941679751359216328242389102863634726546344697574747115563139695209136580281123941944445783994806377442422743018008369786723213639038549573669843102986755943195137250002408657126258897529836645545412755849423974837847278462967878247304302817202088996026382016789949952185614616937145604212796491018060711274827488562494435192090460195258428053703657917519631485785860421344967378438814950072929950210853821596307548646517464563173002132521233029518924322211754628342082784194615247382970491622955797607277195985156278121696797546492542260899511137828665175138559664313941112807601565649033629463875396180203725348011145693652361494530897736195987503512121184530021213044643936384942533029104831985695005816167975630581894836762869598392388239375898254117345147751868559571643868599443395288391834839425596203840416428344687438871333517683511651851684831089890655806911428813865420733247914372507576220383478632209685062435445383034884496107666727312577783374225178458921459356533608200562319611038448002287741620165403656417402808396221872918235530797229447482271833956063552498307747164044258604626220969601112236708676226188009249805414805779815886345908851440843934753691353411851491472477539175512933007113955918266157326375716981444931247667660825108381328371787513572965478457053016146479317695952718137702804589717067194934591911865283150998864540448728294101457207736787108290817267507833391568887889420869072524805956401515324311720677741548401051301241328772657193025275256931960352974445221659506177647044728957265257664450745358611309528493267704637375156248162903422480355583857279635999449339543922209331331697178368522883024422540690096276344120428898870250219687830830515876981136136246832851962773947078659130356557765993758697733661487799971760769050064052234977777938172598187912100021860919003431424612117990523133079203445571944071590823329658186202263552184094441625521983814658544213328175634347096952655391313214701142763958167040441663874140155459305389180538817431921951388009396845667237953593053891476558920646522884549923536947895628723104977563961216308800731697819567351363410454727661232278791040275667519515206687150679607428121511876298438533295475768689054686735715043014895179432970293351049202307311464124637594841901918943170821091351519804850221333029640167985506598536502504795992693583799063531691824699196393070266157444936357200513478416209619187092707950643152168602053756230593721122315210940638886039615029754643769782888765589497481523216413850216091198076125973068511918412953988111091378317580524138559905347697917084437255171477547422465556009498108253905759316786855323353869385445434149589882206120894345255806671677137503937763309711652423511922708488342476686154744591495057887012591310293215428135852632357527700106478098479078044567414550043849426007359726380443644178901012184972523486455566018860732288449380075632295873124253689346142223515205077254907191732348381002604538036356835494994616410002871430278283453437859718616255211595185811876544632136845233242973252736158715283614113486264038638081013142395705468594911480629880006238209312593944765755584687944487197969287758823604629707984171671674722645757662406906672629819386163549237663803204540395596352369812050374195333041707948835483670443494087794118198461310524885967383480683605675481543993832807581072064582962356280510938638310142628484728853413124548119125641296167959054964697370584076700325984125732825895462738986636919899082595083069892052983434760537686946623132175712305479852385260906738108322082589755734840507905753163593726676304251366295940525149190233414352764018200794019447300092934599053650972643330523234673540714280303508284935386977699830514126829854310073292903019556323603039372082291316776784829848123870623103476556871129192963388010688363032022311342563113656613527369596391883422682183785544026818406201831769544840512792427591401956231416959805663972432133858110848862322803739553838067710615609600077261910295981735232782778501958134762346381796876233226237095554635316096194515004750180452963228179401718979074004733970806382741212277675498009829086167775693026382795962675982818437479584966244300521328315848133054052585806663132318756338864318190631026548720856600436773621382353745119508813097031743939658414834418117988579736499106006267263729747402878576003546758661488267106983865518116981345523239759148493323702223123629977191290636862221968770148218753143503133175052183882551940892090510837177358490894711795200565333598531579263542156954655171983405533538176869466255043635033700476846939809952250092036418532650360947408681729472545829474708185515686493227216695524539897030784229465645325926240665520209061888870960833648011305481953209609539010401265398073541563455062309266854417026601465904288255788050319633647822637476411045518870357382596491274686809834278230092760517154557020414154206052928510846744323882915343531325698306029991121294543371007872483642197181645758427713885064601379040371270096384926780524602888430207119856125908390256217194257472522486084990311358891769774707721075971562890555618705326307239034486908436233913439152840379972599753762645036123518924680598716493750878726942521106523515773270757346558834888164270427120992916752619908985282829311605973071492728695883135473114935285580363119544132823477604681690665531461533857720274501213497859820677502335577200558860372361527184120735420261802857811854268757380936827492989274724599132802118396650914295733505454293463937450812843856764342741785266788895794927328839500288235406596958864780788473177193488529736719208064479919752741034230983342348912722264882586294628394758153808923126079134925647301465279238950245850006125526991005429359539956896453085651447884784250720041925669006166830437407106846671904202637860573616012191823947317733366894670432699256206684466879974538296210154162501932158431543386059769421372074033418996410409487605464889165857382900901140183077066926127811607899225369844450655326383542334320393466747209800234628068645541609152088165627387314670211241328715631621602923714478958552305666256045453350897449257987195219258399423740010431286906246250387326299016824098365045467806694708032640600877133992174387490528297676919577161994419942468657590474658051620400497730624419137853216285630852564591036291578067157399541425917231826138390744532118350994309920095202527295013861373294332453280079862853852626782883574593583087612686194600211794308160108136584345382119559541925841126996574519295284454907417342032370210669953021152990188312949348316376352169899801022755023143888282121972824389481144395293910157793892908104486360421347966016145189222927753747569852083800974504576916502904282203964452636880545383813291320679727420717199989602713464718980548884032844869919846863864722912949660547967880817374980094220597978960470270429625166038290137656322308773763367827329987799066006852993645858062475460239769351623307306323701960563100066342866833153515815214626837761873519916351908625074603715963138096357874417668204553371391742256194558248578834276004310176304471198470867669432016759709889325685173290151309320288406199293378273136334426232326419847310606100731167898952005698740341922959847736099119986354487847009518768954777221181627323728790032260832052332163362663473867922660882593502053232669845175319514046558072575060222815914364091324352607755881331221360443727031483385666416934178497214985399684599865014648358461040416601557849127656993394669641695594766347007463915676540966426837983605182621985977825059398687757146926208826504162670747173800046405801809689006436526464149083574564683562947070744075853662548002761134376347705506188592049575745750599438388967378835670663018429047210809589384444589312703590878553395510266190165399834955868488542642118459484408317675736373384813779591355992328652631103826445511988423841801371140337110091382647980379920573300491997828323238466710611195267790398737509663710428737760305304226400811194852502031750104005012727660020605062700351671386427306347949313387364588461762253259978749042437111103151380301414185779168326576710113945777006789309219241788936495172721846451158822143526244367013048884581610705856270725415781517178030339008925422354639645174822141966631955474877547486169164989108901728853157133747451230566114162679839308217523811657217194422845877318152579719195450142970832400917429968542072628062697770142665578611813873406858379892893361620075247484667188564061790524872986249224553109250139775564278836709791788534668119029288307098650657486327036861101596482185375215887263567098074340344311120931408483116032116985863746225325156267828526545596510905523176448667122317115011084913245828912589679626967811428704553919391034072079297673240425722115650087665739148282049546217789611583203795067041703803114855543339479193713257705631862777318605362719985116222577458042846297030651731386671895371826128772623676949384393078171729205443402957173327461806821368246273098032540425459068434478510319035158609540204890752317186665431314485251489988391290451533402169007362859965570489979439520955614432691085295471055931480149833556463443132067369749758225015487716010363920257132827271134183483303168289422805211677740837205377728256325720711021731678045385544442213224222947538419963321347739858388528810459178238300104868901091611520915952671002334144020069081610399270702967709195107258884182097083465219037969178672047162581400843571932437493955442936069942204006021746928305448477981387624379697862357163343887005058063875192363956563429135356510191332485340795877501081037535930212777467594571696115786983971072287774894296902228268049505966521615935726983982001327284610689507662009406360201284326451873602464045553621855136815916017262064153184398927134958154951466742481007847090840073668749964377137118489496563330075520202335569795224242534468504201715798635358262821686419138832815111456415986068342925919879764322688085876152358394542122017616580814698294545820248158763603364286984510635345276112654004565509411724241118971562205300076340650651312079578499849262645525326363000174365731395765562100714605655497005520256679976356575140045822463835149838297857772629611802233183518713774389565202251243789838194819733908208343486664521156719529360216648336274125946407887355086793785584154681845359197799685120544779359315629664962968031372592411419860523125304896471250902215365434408384998770293392591120769057000105698789607876294716943777101990725386331994776480057298966936623611835685399773415321073153626398942711812268182411750166090504350281857420157936413628981460072834580776777535843575701230259758535449770975360315572911511871610323016770713412172622852180043353097494095718569473493776356831860599455929938694972576625575716355010276655058158956950854850692889629063385241872426780533742201408559341213615631415203006500314524272812692396026173770623134745760243885753065147757302219408056987964806616399640451235811136087859788791859092834226706372589610528939232535641695781892861640320113355506044735695630235275742383726944376575847293242954838262803250668366777506170809899476328288307467642954809134196163941668540431487416775277100656619025698502580137215518467805819799634291600017123225350555969812900246963159812704486648732531705265042673675650209446597985620347173303863804829974045884192442559115686948813075976222423086106902788343578321463234685157073368311363658665447977909017492269925500449850177306372722578361167275766647244013506981321836439571281778452790930196042544901155112335398017344690426327573249571817324598793573047001525690729567021795198513507728091759183983724709476744836877471181677946169743045358415126222764035975794258082422994724797689309955309582181882513957241484220676021022792983043576778124383021576975111264802516518910705260575372861844058543226416842362667458167765802562366479712862568453308929736562883090948200461386825091382715074489046105886945415166137497211097347637727981434660821880482877059736425506055968407897650746352233127922110523933972004008130383957072088548202762642445076796106448139573535321894060824401318834871702889500473266337124398316997055104199514438451236960428507139988577907781517270663045074177729020487499607921742329654060616323315075875341939169013051608717084370445729570734904452295513746312166798828023091552515784535719421312666140091810301501178684258514249890772594485189891695315636866704036183812111280882408813084070685937787150607725328861654684507693843277594900287669787379347527440009993563383863328152829265808682147836079436804321311047958631230490473361239954905829944093464829994536869075058593159984940817457928782691730101379158290863082516168356242167191212977775124441077881759690528827097955481054227022110520958026753325333973106686838887333993276609325488087201667245801996060083689704590825283897157794206110962754775151313661516215934851683121385162774245525831384936049610402901849337361873301098195843568741721132660846865591733199350698407403978516180843771575273408845983614905586194070372401779181761631055027046932372618418497940403978716245401712969866027901165232419083679475272247052347766094442483076506669778697908413320083973379108614492735791044173556338724549835061800526491982863687820230147342210469457706638314617170291659822783574488457441728172086976462112826958040946778421111683807723755378955156245349727631552933730342143304352310160610206787690440031187684279638271821837308795503632327750811079418960500112650609212792803795858808964781065058878313493645756863908630442530158605576514033751089901359121535904333058359305056166918045182229768441954697510207287387511767866054954896081404084384310739876039734178095095915716671587011091084620351016114213517984420728143286664999226317568192291015882152196711909369327346749595602391459502827475432507467964705494460473191787186375388261161897762235802098461067732008071681794216303831188114843956728955336277255952215444909286209429457627304325913577405586912698880891995574907117519195966361872056809798785011276774880587717294062584969962951211667362189144987366790659676212530016698228650603118852474932301563692407535441427310244489078872681021201751986486354409865141502497065878330835144487392366112704280030842293373862378341645421968054951687548069945615453455305183277055173627805991757925263965071717335250439402776727356260559522622377106448872637433549521227529772377541223193755975470631191201930544038580605461498692033358078299997409713049071447486123169099790737801763766880781553371887119515036458134370247161564068448045765884820323213714254620067967561697791661493376714594021415873032110314477935831362929152514852609824574412506233548461479924715021305082356449580454515884235522073544223076538256290624611895578317150169183305025165196706951557410520305639767053130343636127930836827880912530735737207911858336016149581485918620654912191219258142283140686009786536519257998140894454720892394248719764022847251332879856521626086038389170496410540464865899818915280864997970438732972328800119583481624097192971120746028293509086207187159487835638580119103158091155717134953417846101424588766120518170076866610353675609047204908163602876993184995473344629188995682735807420751707118866637078672415174067337758798593339800144401429589551409293070880032476841109390221218819490098185968414107514462586397862537590679147367835163750172797014244127184488511662402631381531506346936950955273456123097246502683911243491725785424144267713190448970301517094353890222023784545571570310631386339681592904503987452339003876995015565493660230661789886872784216143239013699026271653982313878041732765366053363835080958077103021395657731974991819884429321081488511444488794814996817600099676568724015119780960335457727135361163808456524567052204685731266918833355039868045954362947023129133677104260284996392035402872058740094207220632830949190422298496131647439277501498387850468695445034656425675874092866619664513020735541725808629603887892159466859025143735849517632415752064778897801197891994439043003072196029317190479816370540129644677496776331290915469165368794470083340423048316527814772843282246714329704045708821747159797204614238772377720563709049598292380224285382376576291764764776328831549423647030961102494712032078130312186776042076231469506147658931285707286214289564753224869332259427143924651739509900837093153672724280796550033530626239824696059355582999955836029653615857449514898937448701907159513930557125435112459736818477006049736476129745265952357113658865086068142346965032882392482565951586827838249783473381602488092909474031791932635517247500341052897708191490083977237814626256969365802358620446208450260959664605253825322036388730972128882784209449496553489077290293665471383497900328449784711906943393791877429146761958776980540291227755150149280215590174125065813407410527551327813820849196557012468368036672127011797863520867262987388848640369435601446276232057961482156047109185948695117917476772944121758780077278412252026397310498831419079468455326011383262326488641201276591222215524802424699208000136263373303051998931210096363775341436101139080525055717552720834633937381429709004743413327267529524647357519808724675868593229829113460316165950356357541044624088493878143002566394232603400118443756294217749198682596759134025517392716748996982119809027744860303355394535460563035959374386503978226545524273910420893106564095348761184274892882911524594087100721105968085083865241797231678682277945193925981761955076957953651651933910582159630315742207460126753933908213959035227965430875835195408709791253106603134828299178376108619662989095788012924512348697911764209221625120836791592716688513428944276121839427211489213757754833635655764063634426442263940936608296716378284822561769333782741332660175161804149461011937161705548953868700116733344395962812769205807578524836902425380171183378668138859822386416265235748146128853163367394351277244876537743043873668335424125486797375410782172769647540836553782782335144627777418291584472898542098705910867706608034009152454093754923455005069621201214303512947580404320658724870339783578804580392910477728231888390605851899983007160914861649055298471407859141994904945170168096982642592720683109658490006172319337825528363541211434002648730125464292603046966852813671447439766557662931152947342819961013580355978059947412698131668103248552099113180070802352718875649049668950183760584241186323814452190135019016681302527142089323072279029407575897452123707446243391243980876265710944464966554775074277401907899130877436321054728919590847106954110124602961041049251180906874576027055331036016134144281250844612023353332473609064539201775755746653653345648619591784917583278602998222906924638292693380182969770870417900466351043963387916122274528431479037489223553732815219582166120967186926343563543792707731200929942023371087783119841297236744234990746001629918756544439777155382883420524720711870385826976621734435275388562323118286998457095340150981926804041581437579172718300808458388795077010376404243918710248903935323572046240876475003153438011193143683642582978433856403843671375034017567118733615210602772296934964994067091134514947032225394411561058957686149683687651206905025772116387660963832953780928780083108119268764943346253302837952569047659293793244080685982220561233573084968323721766094151524181973680680528153285906116474866920349069345113145643488363998103869735631833048166138258877287530960573159271251030602285737841827424622366680647659338436059233518489731615661302280245013769857832766743466619939215920316583344338868428467513789857383661692718316747345193246973498307227498429326914085500949372822763136442184382488989583436693427899196908211546045231878034145110490688264425166636664879057282162488044663776809311191976698808270533695017819221620023428225215633385839083299598549362693606643416917302886155196470421551598907933023023632201638403544999734869191614654876422795429100322294776150638608074379486917188278517621490571014816119662876036001815843748838448498072191006211912061824168792207938463304413850619663988883558193593600762277203907377591768722598086533006723437005945047927732445712655954454756372808851426662339069044975823571339105812136552713995638622833733867721569606492325002657425047040877945605458596187602576996149198739918072090345225780601714693564943079821827873750811700749717063643665245960089295890821877578838435618955273634120245869031761261426448389327737109112595323315709814763367062133189258619025260344296641858200954011000827779193330813327544087257932496889317987242947729889757582516826770038448694274370741304995994674537197882279433989909792113388855249670470706271963937620829832408864200701428625637902960802205504754914408461001039948332802241844782162337353802315922352006929335090908550277429300774415426520398118957435815769870966506242356300275074140416800086934669945259753719519652672700736456838643998915716462110011593820276770037819389665556000283686787377526514754624318996964066393871458669065937073883059034805210763473348353620988903685673841956555926354344802144163137205856715173894394605110242846452191239745501681253168621444022020389083776353692297521001297712292531983979722176838658465818847086962217765182831248387940744660257873802482218118884082172911083982536222744210902071021958931164347623691883706042241718051428243125965732563508998831866060140181229476742702531954848200618383739639243553148616968366580948365471169753796351601683916345456987299580812207934310223616612698619724074348108641865940518038948661313521881434028147077043095624994791884427173758930284396576997606770355804943061634720274343683715191691101303659909099264650516870955076125742195771748490986811332352136856666562735342876239554039162421749745870036330827186360771960225880516996343825851530528876599216141911602355351308464638881064890602268648641565029291331401358716141184626721378920524513714544065437046451270506250983686859578006759662295859551549653720283917965589361575700855780522913204924063557156073847183884376575971640741948622957949005244618668489524260209916738761283369702589031796212793088341190968289481403177589764464521386321839118449585520747481107382832946416361512379626410836451464506717699016513843061370170859404030416780492018211589400647288510263325292294063585281439347131471580205591304856942332609724580379100872553684226851054972846169479604729577808880487320642049853313657844481864046315017981826809486996044740324697315178337912437924718339937121898083527081331459142644970824671982352618338796776334812757327203801964462805394764292457881491751306058689237370128346934858804640126640346205809430863761471768037555486624561174768210707445234414579676592207895964730713797303419517568216059955022054480678954894464069616149703748700444753773042944351509138497957476882212565413767204148922741174077532424214222834919155387046758015262476435227677955755567099796312355360387227413684486330688819389925194514021997190736658628769239482494077749929189523635461291389980683560876250887871149279656487787266100507606901059930461305490079807020327487427453867185060233240174059120402885724301839066634934502996796569689414979707310376140573614213183537182814326353410334013217613585724401609069115904154409783615175023569868858891826801102045986888651375015082873143570224465161841755522514981979208984735195783318971239110320102598118789237386597380811601223419189546715949311523699471847210376050189152627863722613206916218601456656900068444589170356982955386458935705587229585404240630281628584693671218282423489488127525227446095072369444660144639444577801618136805220339857365111247126338323945130801258477443436235616704793245265225182454467193942741448878500697990086318756991412073051531861235299793827403413192608480489281246733604376360500291450875929012299912640095164479481435291409810236743616533855868873665724151860149594087859746042081123388752953422119270914379011030205650881868207816946011510681298028124644908824295043118427565694198226726161633809021918327461267739980765083383165465689557475737257346022467652034445866475127148220130249989596451178346286676432804295391257705863942595271005349551280075753818563487373458676807693208268694673083729577870235697945069240437495578856566029390319547018322812209136477678088374924293393337882742916635346512238081757208915183549252907542198997605136372126277675805166268843156947227963360118041195714579886796575452704900629779096815444624144778574975799316262831793474950889687492271930136429964718066572915902706923026815995102230325091395515938990785923197278681986772706692510138246542199789149710259754936326147618262734489554508042570742334494950711722696106921682922171826264985806722156187151398457612105331213932276295211204741411381732298374366358018849850959420598789552990547124315258907157509085217484656532105276380137917972813952118071475582164495386966541730650066679808894777417853667197612580861292241854865618141066439669970051677658229758546432146403850464058594350757430955894413385771671714004270404855527694568663803399264313374485655203063137778424318089033141977756565214220818973167379753409652153809662669063486143227883507039800668725505559428641171741084195081888201688276641286700341014459681454235869815165843077387055703540973829884964239754026568185512970863267813392126606144253765040420639002156489063737732802676169620399859487497563390738940820770418660327570553312566514346951623473837153228357807576907671877829975596269571270180881161352062367611917402804576354937647521627293436029261009211029263612311119975061263082580074255232967060791124373296075786028079107866589036747689724245901803359046340970196703719628611913037879668296772741104207333706266185760538405409692533952472276028324067093305687191141921639185324867015201043888368687974075805602480396415820449275775047676649346510117857931128942912633441057274466063444541234053330450716018178529150615678988181553343527748986444636597131588760803813333428740006162551163642144718719371572180952237411960384437494759114445106986573395779081114322715208185066661641231190352217322122476352511339118146066136021473649877985614658557039186048444025279509331685380391383754611380563420265230242284537812936479928640365534108829880280290128709702785683157419784829543483812597050331364499463602152753300805990549296878324611260854643347093825298570227997493942310297881917651577283810474447606628469886486664968789795342796439996413282771239368727075214581953155960250189705954688465916827126403381828880772828050227696929331040647885569777068969953374847507332506612345618505546028225675512768852512401503025656689204688525227015812710453743651771714064506253870162835285881068310504689267252400210129221241512020873166511068861854225217778481142657014556198259609863302362202732916153238111220527462322712050941633917921273426352322016620157543918046149510681453206900468236960122799073780733777885099879709144337197494797650079836004212420269389212399533232948199524503862898893997971609397803599433690974607146358099783948964173288086541620336988625201772892097537815023666738153224454558757208939669115634128559563439641900402272054751347930936516411556026674920408696602415062732847735829154055932224966734207940817112258589155757874592558364465417387245228189197449139789158627649452609407702585134170836124876154605736993956401461549553544508288515020224696821271334823879969756049776197028454728675947742152083901078071710432022463922405655139441013817897646780324869017218619345894588616835288644819919838964728434063722248542368255690944825471766611047190432337178917741332852720512785918735635084591888370359647047561275530002364316255795065865768984542238636555940879869576797812553868724943320736242407612791050795170173507921658105121740608261638991070833428600714232499821002270352354536166123179714462901460472979432399219973899779752971665986461695238048575839848178325221928352107446401059757009365712609247202244050016833299924697638204818749288463724034741430078112423329902605803726771391892598280316896173437459242781698518895473190745160066395692365520995659266204765968001087424273368174659217238593959416567539537483942639537351037445632464253056258190443702339829431074297250482512713639933587107941965010390245113672210438477375780318500118594252612821314223477143264847625605374038471434359632335332390476223809404839917812308531101148475673377317164267366959915417958580845147742031401519673534727602089323458235871745241270633974826812506392079323040362325953013750340774075467806646955673963783771306148784293405497781901247328897909196619842506294223283956286594025326648391273079917353267669006522814550562134721359808706776811112317481126762295175001015856100683517933850454282485901993195580723649932620836620402815690068362661623520318634743400526860743496183567563922097430800889000842187650741761719241587938011907502089778265551503528174506261377205700933369199056110666156170514858218662369231728785783795333251270056649493181173245731416029788270396462899440189996384617886946997412450699865768546177641241159248041742033984040459975390034251635584256817965560521802743086745299118570626480058146827266585619192670599841669743662356905299325973361448977957065154564059032879676539203615362430463699857117663941902522130881597578041522497566132654475777197642870593573798832812823872938365540570016157140821378574189855661443689587539266294189728313716605409791498352517393740199449501451517703154662665791188607996995412131153256668141973637717953749482707738755684255023196718964403272652288886964637606524659882854364208855393977690189927009966416079080381851138836083518675023590766619066335846124388059978519673721406999662896564143657444575574418431592547259501281581292358973284471775533896794201573338784692410386159056229625927323594128671916321311536227180738519284635620481144538812920912038092215785106370845388411646650521838332039553957706762978228894071577225221933156206459456641704632864048589461682187177146993223194618478282460587422213746571084836384378221883157894405863179044603063743039709790570352134114924460367870858895866053738130698553914010775438310432680177956351633613702047682691880586647343514114888494789447504800886585210686205990948704710317877697818960755923465978065202553963433423040481849187985945219524209093046107416463617208083009462335021276661199283835183150153535333821825060854095497915826131272525774345019452787164808854962824196656143342802631567005850354125452423327138919655031263153992787536041634116124227662761931775733851661915958065336608222986769155253037000059410560224343035602003474388379205205887236512286590859817112044639646797263048636052336100918942880597644341998127081944290794394923494335260407268406891534792096141288417367794744598784361396490466296548720695601268582255195029878781503546776832188411173555861613542729464079797148636394971102254960439940820246833513432138119907222260475133305943290037005324658163777754176893457279801987134341793266664593937104871167630798845385401714024810597031788321129961946975314733694433268526143955187078501120294528202315117682492013460418894392176473250606413601825021876002758242577963253031417110659496625607503507861428333327359175984990679379247833084748781009813871942247197503002012892053560301205208233547132361080900414389657541834031350000078138917224479828282825392522695887282370172882820075455106279529044709975512375979501720207041409599877925761531868885289831268455601344689240074996327644963691584574198320849134896916456265879031571676785897579600857130587624383346340597646658523778214041829195930158769130801358954029865343355553646710676172453028164747495108231991496967376305290728183432217698924246020048609921647031009588657768597239319402807217026379876736329164411683760282067831909455784663152775613304034652169991060772195777865640506609685305607698224928771375353534283223287782676269533911970867960210159951383274706850701390975313251175170085662062464507101859207593326545471993278042307566440832411489174961972817166611744549215147641981736971207236892684195314555078099611156853555590093300013810368873073031074358935268169937487815168099698589127222663204579710233616182130842749346773721643528954694564228440886756781862344412167742730741111270150041624408332404171254453877759213415507518473766203135527051091581335003248615602351172062404990744856758565519471411676152919360263403534726621091439128101508067093705115368628690652732417497515123392406480522305449700504602586495057852217976454462673273362131201359177854900631090973260180647499793727619795805270578326039353674669668125659660331370930486698840556062024082690977770524476450442606090922714237904210467411372674346706815869780581113616223051810410847703021292530901830662858879825447416503872150914077699221147645699187229037543439932264617382035800454609140128891760642138031760390928928502892504422996439678973039936301299904345528836607024349495340401121447853747264846901150818737051886041434153340677824076347475974457701459041854535185573974938829838802187313382570469954475904190380516128198350584051850770484574116641849789987403382705098260715297934908816824572686087710302533100621662120878997418878610309534558936093938135772650921309714160238401696530532189070069692688222898044536293550869326808882082019052239638663866437670673477952226262804000114898031964653263406813233638944751508269220028485798110916344189147406772961965069597158100542298364787009342215073006303607769430545673707645459405135866160436719389419836405703196836396406784212885449055171816321248795842673317580485583079381424479671341387971722159790402771313734893573069093904475560897891444062445841737353962752443578654091103049481892107410127817234906772420695864942261020737635069341821513200502632251955472581694072048659249932573927857036714758352324836888379780069971348669942973531158346262584768840645334132176131473094056767380050535443225198186681364830888439231822596785452531055909097507689867072889967338236721434612930724298729171491093611093255719970469550538510140841130027877763205473170064286118901116725670915344500913744521583039122450909285077778290635706240186355864489231948196437194809294248341905328917029379890089009003839580238487113326408976718066506729406762492453704001050447282698075836338391473552774910364620843037313244804659466385786894956048034112208546959122372938937477126642447302500284395888290556643675603779816984451827318674230530111053826975128265595527451417949890767063041284706483879660051465555018064666479386753822395791935305410794123049746250902524058586985296717159960945767644047518784667441218915786399802281482983137664917535618446167245181778112941115343560877622164808174314501375049553007303223345874649223387052336223230869347748307266675662307946862929436175553655149791924740329708155614956812647940135353145114129372236598682198771959321323291669529437319122297758182772105215097975262604325361907145889462176227625760927980408612403266430431685349576691887136496634127627303707562944381529460594638426817540508705542541628387978217113864087838356096836441867160274366129214519655787941300543345913322388337913164186810526049114063682656056761461247884185576818594458273351950272398460536448096133628406894759565276860645205510458440011604075186881042240443144483631646164205111624911820230786923901451975991069727007724210453774409821346764365659587530343127733967259659497195098267156983347679207598017126228096417054345586372343728246749381542786599466346897592394611955127655146357157350022094658350188861671586370224902749486543078576087643659789910523252871106037840865794913182635062890148874786596903927439104467029375335165781587672258682586438584503567161449486037846712972952528809084684589595922693426570755956624535159269958709912000363951644498713101476009716125016972515465535441096141151287793167533979128966802228858097739231122088423196484320593928865280604599174076061595081959276285220614107674277221661672287918120552590733955559706407001006906922514443469459658014954059751880142942790277134288103693464560302047012729277498907020577132792259892009261656788449683939372839310294485354377887719675372028868132852796682903543870493583200603460157824793037390091655323781925042301780833707536293623976723036614202164664226406232565372146669860587485195726187822660919096500548481832804819157515978424930055075310609394576866855793942080460587189932789153041505075153764046435988559051204607150086312921869187431566889155362423694202559811178169594282018230148540637340203750340278135272414220710574770528622461849808731877455811608764686953886940916931499910906993694132016367747638254279756559730111643859722651451625850488472930672170327320483953889918776772122516923955243549695745683040627626964613033862278021379188530227755201187838261542633469839626234580984046895401778676630883999086195945329247129466722946857513487916152333693789010506669651489325484950516076741810126311893138622303016020438640323682922272109590486365653279512535186708152029341510847176756064008411864822064128712434317672345893781515586803404192985465117793897134161436017193200066235686850666896855258254668303068027622256929444164275329451127088753138480534927037073691740927878203341035800758598971731667848604703707402749193912544389311186265140648127774049054118426748615528019947014956143530742724385417718644661810134582999880207497722108902370843985387347311436009080341751278003667139360474888394890799840598439000550416207790258970458905915681003718033690533862266482287535196051424287332378259648175445425747236923143224499310700892975653399889567083720442203380342761330178106030720079608104315106675143476810747473701604307153006355450377893719701473850122628305392968935385731200074832217728659006141997240691436084177183321711974669032597042052963573465819509738842202240526104293958518091392291758286270627837430755027616803958136211655086365850251171441372190589085736499909848733682029186209089893375341308751579654242746610693065006104117687948737785570987344759086995636298558627020156737959286552119180830062766508084636326098001715875565961952386991794814290265669130553566332504843438525863266377442078146299902496056613022121804480808728294146752949154256901372263272321992974908954929916005324596278439462584575403289912763764986809039631590534056603810581886894718752625743532144315077301095533821384886528922748718154714190161616047662303467703350253199842711903440382062712800439589131906384739902421666408420494156071913308417675341388359637645614698573057780970400040203470182870436950092240212794417815400018057220774686418560424152423252099448994298278236832537977093175603543643838786627096232503665286182525156974992206802048729710263275859095888976271764279237313555550313625106805039536023029291411380316305200623364804717572397940061091773329056372069387922981409687587014086767705288307000489158386660223810079491792409563591611165235543157872092489536342218662298397360736271998071693755828719864624375386528778208286290504470062280308630471583906552109381167873114134187312273357058950173523580529144604415928591170107359428674225683685087331599205262048141836794753121838275283886877575944065132572805624081869972094364788090864525830551321704702384354012247534743667339184526045493429611069915928686898683871012942732983453653847402474852948417286012501551565268399293254534107303102177733569535944237666182139758981979459392159594840818010174659264157103466737916875761125735531311089506838146663814731221266562496773749557335271690689329558938971799800893910630037785538855746630814021450571472371594033564279246643386539288166538421311765483464379835767705410322412303220189858266835796474290486298185076934502382044260304353491115153418879547320875818979424077899416790005701361443171641754949440959487722164023099668595154519149665897486659073460347472890118741192531044533949058279244446058753050066716674596110405136344739477260023980820165949433280020666450913366411054837993428796310160671880235719798490329388267283294474466656227903797058691304141359140406241564339226070411755324232044731435984092343625134046458882332932403942773941557716078393217943098268379473199051063417727456482316191146945784383261438664298114908950914836826686442644265925288011208638532701042945069492169377812516194298809982094817005955243014038857344668006311272300739681737025652074877678060657843865298992058661413185302293682123809805394094276167455301643470232952696945422802429591502119864875797727090324146692958410070976689164665772457691315095713135573199096315303920696554027877642290368846810076780687607635702196670088656712767319850018979977966016079469970329218818502262123045004693313260807376585075176344496873789274357764174341662438686538758849930190962343249154163362343940091268378644914027355210233618510606378346727695828730411643339415166404056331756893310644561568659912740192790049554305402103335838050069062498259672392213967735263458087482429372373509963317264460408852052669256680925942294430512560689684932668498324460565159949463693564807394465448754809022123184917018603398863238301500236064575785163404926042596540445096726566161212909368234311248623894068970447700827340331002894347571927661761803209457304122476187009706621728403278679846671383358588531886689370291880071393480788389712793132940836707047193127359648861358745553285967309337032722039223874499387294881147147072456725665501453372272062504885966803514793183946162282747442238083844772957162537996047312326190014886276919931739816989823091001501329417074825493812321158551130708394976633358575742383258317852731769358776513872850999423358685949341337379820878719608077560876266405947475916787431190364383808992655710581206598534103795193012174026733878798508625746808951249977658546442868888974605368763302729651187596306087714765409901282746769927008342159176053115041780896387474239861085454937568158958461949844089537127488588942599203618179601598273333977820758003813213334376065833700299067690573060780979340700589618836444299713815734516721039912343652079017156427557746752505040361092735616547288718405524453346378718021035435425831973826869916631128535376469833844791472743814536465190707051785769259733613036716714648058035260285864094972536857811436731459816916600870071721978483943193120090699346737297706668012177931154123312029142544836787121758938591881821715829635420792026875900047497532604968276425310845124613164534239995106255685372837293572939142421100974127931724413237921060461872182782310074735712966802628480884777875928827623802446596637170675064285625272338257483056932712511576458150552056155884657318555710282216049585451961638686638347301548576729782292373151060229059757471234813672671194129625373781344831080583574196932493856744296457341519969554562496123770650293260895997554319846948845865741799834611907284451349733542501884828171582436540741693176622990853183892607352673621247049479102639505979142190307257034021031609861495890090389394941374926028477304505694493883618078212947223144110730127160955071096675787758374586576606087268497596249689751793075428100183783899888592895759480676653209213426811759472772506593121577283924320495106862560589390789979310086005120955030564685851449739416292831336379938072496741881495197735270200336277486007264833161555557990623195307696141851413834970430745453342854038217916331411255147477205095281352341558021028315784945303660277637684086926435636603666457792208321996806815398017956592553935951195729294745200630422553719064997036243744565148697117789345946927761682450619347231084171914417705877758160918580783117914989938418095336482254291629610303852114007920651337095366701516602306061899045858420660702622166166859740666039836701167104989125270830330002811700950255665092023721725463877922632912344940526699006738993100088479087522254261560462920496308990677275557324295671103827665412269933768213734780391873180360352812749802406959396757980364624357165283990414668905453280364138077542681056848785390872338439602800670061074226364672800533241741175501745644476406378871947095927340321941515897176878039290740776391195578304674370998830979040507863108930136307735967131162236668977019916139388213561651747234068814478675454679891426500718273053421073543440930326681344032909143856340873989394649952157972895624957844541263665159335934270229645374766017005249391645952408952064287635672496582721300514005041630013516219399102196733352311397600666154606767689294142801048526426144862066401421937084597748427926616035015344595212156915118527685068230212789935727334385647696799431750718952986104977945914101727671588668445096019723109067781254832367930487358243588020881254430199239637193279256581881782935426045991416406225265585844948648080221413828892954251373260585874976184894661364390105066857004909409393317982009357408572788783170639976384054971080442309310435392415872514169920523154932693863415366756221770047108703799784329552035547144107863916519660349398614935046611179734298916390097283925431795448946416122238645990582069420905627853150885035375092541834163323069735656527523953345626587389878196924322144857416725585442741346542409372306316262995356174482148511826208864719031522391881802789870136147759478379920139268096418176679048268407084464493994591012212142751094127238296872622963553135807534275464444027174928522981549207934584686239608888255515114422312542381116561238186714829935187583114303809340949733537896409013417391336354765955387406289167684875293531696073944047304347439832486032903377194552106520736161698217851825816003635494693655653146314693506060768289014900627665009940116217173546003687467370669555867690455924215539917783358865808200900751286139450063491593858411176015080803238299735135280598974822865618988333595770716454789619477166728030771490653601957086602569248720546506878870775490990425027944196381671754429006205639287256438483934238149791379598917414049327674051392387655230136352805219212930951433965349668714746705473555550277401537248314760391640555106432830946663350565835738846142680773782529366737487553646555982802881430076069926460984576265299038205466059266796751474789482463302430225792871593185455061306192379552362304151262941387153725300409409336897835096072483369613267438184171089711846548576144714256387069165059947121676893622849969192641902859701716809278834293613710101625465059210551204215498140053151226736696056389767813119468885885590964316883545128725765113191693798986816404461738198549373657891435123509499105983503557096436935292583383046202956835772228588513100580247813396341053170483589114941580715857585561301777439960438327261100942488815793202157739710654926721445236714143763580505066390790609429755765436770693485686346754804878184900807310105779585525586914709307253186983518836014595243346733025398984951331422881074069722882770886437005379937035651955474785231369834720408676097602267346616129051358194766543872602818146306223525541547574371826569126510969502778288435966561657189661159976837957394440346553733948278120616150698329571361582053183682691558656698090266097489197961650380268562650679150672839619573325528534024326318117449457675227915715767814902242420247931085779951238224489391546954391643058806153389516071107927880172927097209456029195007060145826885134939325688314521130580084533687637808014169776618400535982884195293383319745162095086104864516349613219714235890696859987406621086045681706644856745276693953493884543307254614768057544920598185652139664432139177270807669409038783612960681139423789082082538909274199706135006392231310636935544349740726041007250674709247495907227998111169467700270732240509441857895267937009954247088612668635298181817890640873700381169573084376664146536325540382053640090744827048282041278491774622865321360125324826888129324756018441898321925332357800018063792443820836551925966478994002763222036972434386619699649978173284496029647795678950187646219998736492766307581331447508835612610542060637584611304568618129098300690095490117424911124895418803056707774892960916778588543293868720755998206054773269605339308039752304751119710464862547218022887461529877492703322229435005769083743049198812884987176435938872918354412229769475658168020410862229338800710800883019097062984313436361094462790172312831327728849714742824814670935680579094609181740460112992396916105490365127354318582714049104062679211191971831031460291957786190174555429105091639464982703485176543063907014096527736478057857514760933890810816746624730064034560379855902257519347554360654297839934206755786408631363758453691344539675957225421107175610228709438795900016338442221445005374989102503482225138975275202212380019951493098526204097069797326943422924660328219850422957044633666763706216293820004037488998036763038862173955325216884989404965546592824020007186631057324120009913421940639886810464278149360127445101420181242915467160582894027758735060817968164178175398942046299569022814823659587232655091722070774598761773735685401023853043982539524008283097103269286463031048939642779912674688525857425360755143602690807365926582540420379665699776970471758684180343456820812225799848926996853577854249856268426921965202988162410488687225161985605211664955176790823606350086380038880368347179571042066407024749630146050391775595643892293645991183037941784024604193957197729525621128718922044516727818290192959035967181392656379532436565514731036745473131107135946019222311791220120137179594097463785287949605113582379042934392352527769265584482026402016938887489626904276996320446823554053905649675890029085169276323882429545268067476320397906351975583615492441716539768291492053428159967366119662512321697262875380288690955658385105977626331466562107376564396244979773239267452636651685126449647124178949742258075368863845975002363740688396093342617030975218558322769729857216309795462852117633615976608348229680920514064802269424641089156732053542850539174229562011428388266990466147287352270160591482101841659412155636327081431656436029715705018596426571455306305062475092582209893886468741553913415838919266866114014072041061213887923674834196065146568323910060064914305268040401630317343434989089142496353052961925126351134214269462329353079742363570217103431053700682129309867318728170629992747443098483036049504818949710133058421699677301554518615486094164062245986933676770693020360846346861311939425469588574878281215368243733927064952158490298485969088986335807844406961311706004399578247980384259330956660955150321510311826810808274463860770993621760423870486702619938643059842006113308698048835297812698521419571461622398167663799800694546185543825384215126696616491079346737380837590423894522527376047942357702334235482757182541991418289827054659555645995814752378962254183980620622493585923934580759862436220019943685193165192020698338442169715084175814119613520346136382706945155362744614603570421177169752542900333251949416938953593012768640187903927254396218473732215699915745316555671427366279669527983635303143819038982618168452372505581968092692452531965237151949244681780346641420365476027873395026766623760703881463006290041272057808999348052641670506474521186290229068930714331630211788143861501241761903217606749593786812669317539802271000809000108844253091530682085298847965270723603277707935109734002079861798571259023567849574721917236095567187277516965371665511915059704543363465647348726964135418380081993885307559829295955525336334083631445440142114721304482226301423564668955332835359762420037736372764095993783217600176302113670521879625590515787252898096005755592348659723680945101291378037072823312803567363034625369287839159064218992365050715963497772200901472813680202251816601135051615121833410657240362733038187928342686626432579432763568478780853071132820395350183614887462489411692667828961998683038751173344326466478931314027473373723233894986526304371800360063582486247115084006679892392042809451075179394883266130521215101218649211890152210957382019998064187641500758154089247005513798700219759656738551157233300694467632196624326572725211855980945354419640701921519167617378328198500485910975278285193254547931759797847742447860456148416988668910730215906847688626551357553398909425185376020232694348340477937862972119223558242973536842679002894407254990561879280628078576411114137683073273092648900127907225398873517785175360711843936661426409239592752434355233874915088212847181256172616637621861696723530523938532742809497560725992419457423284392563921989448255874707250178355857866387300742346212416994115350400262773733889387972353738175153600600980482696139330442214552307303381194716553424370638003616493176157824513278067916654505308342187508736220505881067475310611000772930103035736936073830607555940300565534695330949254938247902221409537404517250752494516035114432994457557504034857310089496243943802377981490627085138366942357144379069829987333295199997482712461060748715170136189700812837429996593746214847380276776897993554089575552379100321729202482683131261327184072114877223199524339552790733540961261058152913402924977341160240543952853742269704304466414439407070818408043463351142057766657812972814155294082636888700304184617800288354101632565507323961040928031066425369864695892887452125551936434596930286987705127648082762932880318637485917868551252961534888031550262225463198680377732534278489329224583454778872790676423695124491034135555352705570462413959760406293880167256331182276867549815052335197590793319531328963793953611086509966416611032840015907095602517438855256499526395792368223497254877651180661750811626497266472158011521205430541595029323213205345329400600233679444967477190177877963094927372741375534214517139126940695018598889922780554582332138797609789467950914415759084427249183221800007817680264592106167750336129085808829721821616285585881698764453039295340243405752704721071282224178145813316819620914296034489330091714071541599813474119834561341380860042738546341766923764897157752616730332052566683170846764328186767159736238751919104685052658967013242694520116105986093052045698654547195866010056718198307063320200504416806359122403671639277777436600808349778490653209231844337603119851489969849449251491494344469817594849502437450494654299411255286653392443369578531389505798446265705413682477717084920265399257497894516588238626193175011013589944817095428700764699651897597909485390411884252573225734552872063066158287159078013783696448417047390419698105147418733032502449336732463470457054780925982613256640717351954709823461644877329880346452744755925770066267345935178337583067494154642182559141397630253400874744320831933233317039211206192493812368326242180135109536333252530271428239208842803929703423047679657507994146631965232744325789210990602721654341025935260396350805955846221826401719567725727569677730284012781133160436659914570837609682343858568759575889515982220750199357116116770216332829143938034969982246182316864746475402062631210081155986210395539482538155266224678510234491381686340468482955817401101958326521054440539043641154252587893359318996702241398957257775654191330056836737109318799094666526390061092710597824268593472253523481276750709729449343389097282390650542889912050557534583955384955596286436126251087070963665203395519882609169816941483532818564684139082056252175772992916678167813083047227475837202576690566786517254909553204132573170536345224538271979060744425261477908061288930851978680064878036550932844528069102553944381379763163766081198850118703525846570859488438051619860394616046585471875345448926981990230780804446276343347473044209248087454346889158175687778159589557553983343111267145546603174685734362236250256266483362736134114237655546860486052560026118463250640918101416602411697556938434131811711262636431666849734036668218852025733987106546231499452357301000927097524667267514816658332061712466164914236207128679252581221942220487609152843794224314787088880310031330312778134276528699974572916282611126429910142051026650682877473581769195567166679532814838794936051453309825569457317635750978012069720416624257993766767164193917981330661508466600325681305497667951281223700571951846467275526379600217802158493667171910563991830722496626736101582702677004472339260318535854887666017652349402721626958805095335630064963543204766098738662619221687026093047040469114658914222879997075254385466784507198141051147001083900074459603284945529529376166809126843129392585000448063395226221595330433384880896726114855580520563057497755065102891897123424259919806934844040253009794209792801139146871452680686627208203077294549868531202970465768828755613426446295159296032023971882229887434239671518564329549265467327209536479278958372080666090067921971946668801405922316023040995421421266129539760813267778544128937684479914166567517921372301828178415573528947808508330658570993609220152966098220215158589633302949309584003828101412717198448691996650182190348321393020945013131751218780416075011210182510261988958123760182329187552327976714448702527110022661567249750124398806854280626885325149102714432031634903939591065387750644501493442496398528760150205402903680610236961201981183540062431042282915331626498169057455984197600504699773297740046402475811088446481586810733402938473419255601515184160341549206279895327463536649079698519488821993277004283639652888121228160553305095429441805684868203671608833009183286537258837150855235003043279883125726025124634565537641403297898126474906862149745087941738968395951856842703192743933341634527966928170278328420552576621177068472223727451815449993312203777553473036198766363051158981101142163936939245840457353523926180719739182400551566683426057761379696178959130097538423921068091477985364399140051096944100108497981170166154201066908667053974268667848637687685944794736716927297808106142758102854656328941871637082093131253285493170140226407953713511905575925582861220061644529758602087651699024098118340930031750316739439785294363705195581920589523243492383433242285414589845263614576889476167021374622531567520241701674425940248852674073016067947356575188269733480872622406447902655759283544765544080523269983868061756870342178958940555292795900976066008580814574837191629710951985631033260131708482629237275927038993184351517064289323449232320212877740114254298830736118357900585052011309366740187201817069404269688767112640491202083816098304443246516400506703439960784186960999210132281365225833804321962862400359720213221309743526424452316213970923529459528456445160965663860458153665207286833657558674463963853591838986759175205510058304197128833562231634606542372753144977934398496981089620850904509313690548594976562324853982648559094438087824093418409804917663675343073393013938338768019569948165072371145868759812602963088231723472737991610544115925970077849278352626521390123821369257041807663527252695812925390132395489439567130641429120712933900551306790212464021200586897379378814878831638129956494958127729282902778259349824317023085646939149233330005351160765430715039317876577489610087062860535749475360649369114440835202700892253031495981214529118497727043016984842275969631347772119481734566840492501557672376994306402353450309344707455094712495681945252895587824032824336947101248741547575393913751287396709514909407871865957602074771911957352416592796018976102035136268775578140735536146537031346298721219475142038552452788458343130989356034961404520077119753044104156524716206185783741093593609106063890723126174135667928921547997870960202260764815894556386273170004389304305379780746768321334610670611982219983530525476815499246687313192908025204049990536955152507323755802222354178505358651259910831458164604650495866727611081559200470915956573610024790704930909142178022882030298010004858044559846502947149041754036171599480253776051795054537644550761088679466915128280841587012296628186098386125523088365405186895663252320128356810649940816341042134411706184499229381913441438024719669125895754106264057206214242760562126293700291107896504292213994566358186999400781335285515411112840526021654465222503595288136294223578727268495092636243584671584085067156758119324262212236020388398117662837268072598285109072590449754245039256489451164321451791654853390562405849878933737121423555251221364878712542884279586925616434810545130377979093013148201615131770183766116584228062167393091668420443815675055277275653590253944788567290383473390258689064876381318762539888310982360442794210085928491090813193478797783035265461745873722129652813310329825998964597836792633260824170705276206450661663922685510622026505631606063100080822226873038441584068721061868035436843404379906931085138416354590745062196248950429637412063591440895056021811430789722002112947466846613010321583169864820324176129703292198485277001766802005892411878928490710889534085741532331860003059748445374775179741373640408023706151258737716399363490564353652866790210203525181441596367036200522912513703328438224873721960394026328689495016549796681357446879509127052009941435418172568910952565918405409592734665240289558996387246241346161430661411737460809419135505463911621949836710455636470720483166267789603891003304166998024430057806197589938230872676062960806246865752894233583587789713653225132139323434863604260798747766867519697106560480779679055970903891916597601113072102046799118888788066019094171726158973368562364440456510947903927173507163827739457875332533527337877901477601184677413333883022199158118831893007441686318341087211636558517626893394955193876436283441740885818007269109558663830843103344943677220137105163176305092313867714291231377142749133654117313253658430617801402925975437338717532930665690314151071816655315901316127429344329779003216150328027581682735651116303415896897316678070670282851944945596987669951662257137437075387998268167710054035658119502172977537151695066102003927252539759629264079334965045257220068576252006405216696787423152335538194270590860520049586280271551187646014733923350330249205109582985533266832050926792843952245884596658227305776288637972100874629551580625970843974036470139198420045840933329973356676134329702402541007704149763804634315429556372938482038678193124142263914134866275843421632037548818969211726454117976204989282685416152804487440286736658278975595462730966119792389713666995706037229343209108045477178819147457596792528943137030553563776725394215617980789012030011761772985133236379542278486951724186835141911724600363295798987144575469930752235393583573672520520487544334136843307393680640889388707048668599258634501690770771695710436457617945120726393401357859350105340796542047535481103374889734013289995935345604899710534709786154456794939366494180389943534476912777396251445088999324574718547397324942324204747743314515766258014546897220097661295078553003893112596852902400311283585193133012192001924632865315840058617118242807208492212012244811321100290845834123437451837225795249988368554343271334097323229891711832461084898174883556136039669098319129742246136528090709008020666993928752175544097400849352373956855422829206642523555981965867901044876776534036444306377955304219744217646674616449234717723855070928107912048550149176086856588608725685158237446007343999008965107034553819146752458473257404990884343823109442873570951103653405796369073038593312148999706423536259796326223805238305152820811296710509107124783950500181552778847087959580403696098000762322984315301099957421680557721550905651852943855590409754585019456247452285588958840560621357713110598399856264616607025193803016271918748241847128909367769684504716767703682559930004986064200935856114200794013678835139503141940110455024732721287386253807234059773124778967220734716416886908320320760960184264758968183020271465580226524109509071046060173812535886055200407902951178096817749298614197252635034831146621046840015690264138777489137995017780516727725933316464831461285440851468373699932154694066605379094726403926864249143163932088513956421841557411059292745136686349763628600435898837110625487593400903743482930681731775517574755330745005978902124171652987207498386741939282910704702215705956413635806264552806867077804829138479706860371098081441608630616958205372160994869701390783472949953946026026149903359391694938684708679143878596295681234623368708472328610169209712977795990885370767945423888309905941725880124475724743708692068861801410732244127521113140920935126173744102428523048311434361471263505917904819710042449055239932414920179116510224550828156999870673361880353567382747312219772411844086383544872235605506583310964577677870425641996168488026768515323679278570059303281821199732306314185028467606254961674831350750869042756998821648422303045343557360867011808766030861739091143178137142713026213840625864724766683277413632836552334298656323143782662712641894283223418514584968985972465064161499553755325675225421854341692537016190281706285233158730751585898637411383403521821184901140600388387773323898025523347039564745388276599984638790415550566733108909693166976435225671326137823677791913601688031624825099575481046129472673838742797287216812188740414390235377958951014383371714478671132942684226298823335670368426405854571510071043748182396105472033458279546563890985415188723804793281041272905867758745371620573493654078825346215737033408847723454837251130356527950192713289903091604916740095170044560621983542929546607728267673298944745451369540047928106158986511909725297146489908466264277755175235231449316215633639434121797114441140466187190002426088418770146510354392243940613137318730738709526847172551432062609762736244486445999408656322877994053340263195255121758598429490976804535113944889926722274504511370749389432040780387311251003376908221578115840352907865353675103550878990629644679338797288886677242514004695766432771064395047993578039637828891840924053410460050521652519803387174958279841637482277984857620113389173048848111620371626136395838246555561965031321629889330686372152941549692023297147161998231269515140873254528123124456147798889570514202121966237295541154660496145845348961912349741665354290813870260723356032847617398864939603696942958788915972197305247293045313754440522996295858937597245070324229652108458797661028683538962403563418095019093779768279769908313596800363229597597636690231030304613786782227730854285265254462221222780689995372856752908481621877571870252407847859720680056098691991920504998355304430432851449707887684861327851220518570748739746727520908852184735171208285265041225244660915719105648339018704921211580194435842081245423900199077078790735498159054143003006016423583775955225792663859651335478273143438297584350072292422915548573045709515878869920524921169277737633601975691576492432143683383072905245743369363848751585178290020661252755440661390545292380993073539822149663785225146559222394371158617007372572006162923870105467666471002144504224008223502869039931895645060554413321529096679652019608120464469167750960456268039726830911828718244725052869537989180007081068670245275884604672432622419192890732366877732667907221141867680321979974338634624442750852318766475187114445309500767529965726548130698796276047854746968798960394820973100521140828915864765415566755311653399898859272014871243646263683041382065167843292858073583214696434966045977390500323031594167613199446796580782308581082043257764941820836230807151745149730600334465866277798412101000008001073813248771521438361248282769555751251334287125922976857711502555123967360725222792474499200482457910720804577037395814373938878033436987587554414805317826318907651592566240917814564328368851777366004478752399751644381819706310276974114093188892456648154047508822996334299883712110156243420182456373052878990368235279179107971990841573629963935017795720220602825399722928905508504792061867868357520259450579620569037466410976307350881177412735673475579147073728064473061183953060126489640865557519141008388355476226892419227431184598261909599580311173387118432743043143054220149510691013895816089546628578185889750184473095074088029806170716812076782814297316272365985581647601478121549791950465667023234045296423766893754027899485329280147075031689155131051248989380950124686928822667107768632621752296265153971170548782499209539539580967516394136958870751484055191467137328503851407387614725133333133486439734180986512666097485660300575662412688343763966156525232878560151654881326943090562322520447097262373520728129152518435393935621573159029945810865694435534529155554727947515576702284328456922734211909550290730421808336101083703527935617049066043161596913632370501829669861728152050776358432896743753526065389673650738194161080780739015393819126913217380518584885202314436865009704907625651378284221529849417441208109670509396790849025911655392342249318438413026980067098789236037662381729110616084752917911976037515835382217003133517083142944519275040895538554602048176920100694826419268162132380656584374059343303818902455202684201191811680312371094447009822631998653373359622998993828714152273174078440048156161273931383689214265331889696827430985305548069198743174322538246628547547334672481307161405416601473089963449523137108376973026220337107984515621263016453819079177182714041748704739832795060695061280422316949756548461513678854365851633779583498612878298962296554058828660520696880160381266144465672561338554136131222679520263812691899425440849293854762128019802647578305490011097095922561812466110712399285000776777402098607873039282036753885660156419180325117435809035491346768250648921760393800643760635370464519866139850188857425209499963681354078745259542783949637413796549300757704633882185784024330840281744797515704537048803199454983160975693168470496160744344584779774695696297435435625892878568813542687400657675649172082679564873058069914024902343559323526115324767655513439615578449186999804467690198074220523282376922958157871014653693027245729357581802198178214813264089124935707175934092840343849557524787444139542298468167941654347060584894159080014799490406297443386355132465928128462844211690860176081426598631671799230780375684042964400573391767190334076576095196677330106905813221013821038272129737178859203750563528278361722792642190034621095979004559048563267697385084338782692785460653457901555015843115661491722484614708628724672820122595409990487620887386272329750933629911514065391909104921883475718018381227010804732832306619873017008695665698835353317855261272451691798190909498208022443916525967570703561697306975593363304595438655998520386477896124216653506017088032481485979534930707571528595324300911879770614495437630238956210689737868716879715335003921014745273178841580544770587979979861607796526365453002257848870049312564762572386671907912244063266750157244517246515396185943386052315631682972564107398110530138918378436104102533299375853829550731131389370222032020530438157085653433324908788015131321297097025648316581778076322483644779586712423822613118851181891931975678333713806785406627987267266582034784546898118657128492518811186467078528208433427603095920778664318315103398569268866541832331495010885067148569730407186862407401938076490307020798803941510205318858652961331225585348147225668978291492096258115921984030127556673055888276850987941672748154127581541627058820968256437906149490840081437635449372359265777839960629763054445982583793975679924437472189402734579621637825524478963552831598708440691314494383670134805972257510632621406106720408133069864816686355613565380607824098852679388003145032684376626090178840629203523986079959839980078776125723858211740650501691817591121478857609562256685567108774543288771514249161156417142030564531061554012589149278866611292977874942615347395836039713470451260191559841239674409669244095489905505501540410291408584442773813263218494744005393671414678066915491686781038316465604195880309397832119341218002981549208583056187869014029145709528187072695618953812476305828889351740722144701270204632432986147238268157679360640886531385842294216260079620855863823408987505697086182817109278804116794575293919101083964545606130596857002506679953078401199404328542411129960392322922171970007326426365349928741942553516925625799926775519697387082734212211435041490124558448738498792179899164494105714107099926298616517581910923573112254527568811350855093865778794270779764275172931998518576150585318999305014585850678274656112920939933213151096261250192887430777398475247838464824089791771835928417269901142955530000377516713473072791142895859753670554343232709952586685063737197925224409198813101826375037553085500240064383637483489250860494467886818265610216661082986994837384180779086884121594497461414479405800259292062724792166914403191421233259663553679730924766923236419977619646643245262996154516829493320814520728686408689241452701798558968086761367759019556913579572694207444957838056887299562419605496883574930736396065121881821457158881574211778549533093658275172112328591230630915615670192551619613439554423057418704047396424403338983677334409310518945871672337076457648106812967811362632734414799933139869044912991995242458201641164160792873891141520731541105495388056862376783973479448843815888942216554616306314832482629865601818922070753582620722360712234527785944524851028613748418099577906249264459648972637327653777127045260615251956618560804528176868422408435964937419385823950832016067031157414230680147498806972318837075901714503838980291959679236192848634930565988654379844571917212792418959590693051537317708319149821622310479314400251682848610113380310939950349216956841774383724467954664412264760059573355924714980507505906494208771086850118267840806125314091482908364310119544972577160139088072710545133257601188714713458965966058441951400868918468448589753304205984313488648502072187956406236412768446605791168499683363356865222190132678117882880003555426281143962714361565555701275678037284172645103180444975401769520810140479703009510703424260478062967869069400282248216900587717948428415213649401805360943864602275516820537246229579401489549137972981110981723203540168315709012108560712338372744467392403739707693502092937641581577872021545537571986996033120234685721213536385895670319969250760168717000095634574408947961483661417132851521825072017709341900455943982817588603503300337960811850982525403129934563182692802642702978786883170736459089147815039035674819792013724752058293321388584605710907393206453597951841975008171196359905925533030272281317561326670166621404393857205775026581502200173146880175844250602530108217088234152608063715780716701449197353249639169828778970831979584336196338468232475852810546204576388719465113217662498667342108890219875527821066049446331130540960145695331602941976358905429455325790223618677680538081971672938753215204034851224333146535768358791769629483504947359974527065934374084298709873877616844540427119496002172977417109476282299512196016226538195484340149512097664644930589113974677323589036478739463359267197208450431117021776834211146405923430123904376453554859740134096898458731370070847819346500637773075476863240642291288692931803177273166116696387125074019999601841734222090134459230941857935246396613652334268211792492403295992818371502004024220688896334501068978447224729119774733867085414685660733352651826641193459185514292812722295197907454463930814762620617076692454161398809831341902830068106004783208099577222901625210014522079559403495444186482578267997625738707956729325997718464762524457277258569517177476526436399441266091438917929497531174783034976627883058215301092562827477435549235848408316402539124499312336401371010444866062286950637405088221632906073479664466769174034136055119242523457744047835008278345879583244181303643028528943803681431177714856601205213230837023009546889048979396923608568168285291378993435342741250172643717766897793110729012743129448515757130689515193002049570377213630054389443386658896963492116244118920921750126145844904505066486313670729185119405461592065189111978360827715750170866767922911565320087079929807491990995047331604685147388430991469581855390747443742227470071425219244502087086503088123598400460870902848856774509334810371271313152996507925220715250607001111951472373250683290629382107603254669074785374710084411391680882062021027044769173515810568984627766463819386778784596552108061419406831099997938437168472198290155737125284919330460796770173220218372574736768572998932567359747909194120612361660984376048920976777740204259540182109085753227299953894914216262764140707200349421616381054531062001218544458450888615546827023323606647553554763056332845678518015384314477813242138552816499039715830239523206975432527796582775396028183601121634149673855609279376635993139661540865684065249752069917358237937607292924219393114262185947544106465176830960534861445436859987270578947251423108536790103370376139436624185822269155505696693941397995474526656145765294019355109063299685089620634272932908613075551368474462264451066054762278338451285168392020108257984912521074421043532217999715402464549207622103272184836746310765797448805199645870559507656452069319075264294149137242734727477958302174127265956446866930119918488324328771803887206126247234311901154783092983986695228666552068547516498108761471346317722058069020025310180739843516796786815091619304312908048101134161078449502344872903080437694394127546840000052979619932054375096407393645419666504700422295493377387043794828150151804072928220131426771978246156291880554926423604238158570617463183403168158774453378152048301098014308236297615945115986094860007046834966963576612403204016159177128375697546210826507828736872623145280954816532193208079311972762532268809694759124015664553833572800529974252874868502360977536379958581763765806454717280912596244150600117056285127535205892478175803160409003451026736720190448887043628170806963765983260680091155975942254315870572754055167801673590696647007579117663265039600291720573270433210641327991165823762051040314699439623159627803082633180907452257952520415494537406145313592032713606387179880439634777408667071637784730838652270789870289621748648575712050789187351490551467873950763079061535751805009494200284156722918800618118201255656707983698892056700400090483042934184364114313548793849936891179191469414108741026177786094797351685487086407106543332345164756365911931380279114670150202482083292824459743841761832660510931091667497881684072009732790473638154991636657111648417320984557721787244179921466540501132648921296521949856472041066419211655979742091857789949158711842709884159877705542634904085169785162509058047889908463453501157973402807594653935422438158050168506480128757611986779453919683785858308668242687018914401695413496300398500861187855989560342736982740567800817132807411864701341144887780394943546251942240243551825859412902315724207763925996754588861251837810562733329500073028064403601339523233949818600076453355211043669438363617382360851615114575859228215420589535784353326585849790891452754913260329763929543930748112673401157320912306454900926750233021739809716511275541308032658963203055238514859751218850114582338406562785916484434256311196501407753220386010869233858852848219405241563623568649589050538585402124746074613333937654054161122441759168179690948095500772304399247805992921735007705041406886232876822028794763369206919914755214680339828386965276094857644092833000565708719704027532030210087725252895102344914996796393227337961720961376021007362913708479000983089563056297941541141575620822869675655263639336879555276491544462082847150482349495449625478748399197679081490024602598773999390232161472990222631236088737845179052934088289061730077168715951863204175695210906924984263700956109151480802040535661951473426066346235168081744684977771869000486502692476619488356738776839935776697412497628921891470423161190913358208127177556964475126098596985393962588071974520381091282982718954569538941585879494104916574786431259003862875553422820877838856576194074262468300024058905488928416669602992383999435814898572591296381134762940836813327562115759086594298846312943372796499091573019660336211749911141736050975700608410088217346982861790435945779308394247877481406378551858492365931347752269391248040302234082768605967558128622944441413142351040703066740026650144984188658805524249066684981782692335643954467435787714746901851125540633425208501554374229663282166480073344910387293682061258243881726690867958844331973267689245843898316401061297456803638170413549634663195803821915927175124830954170588044155489960098455713178748083110572735835250436973024983498232567962564648555193048480562270584350823017777222038885110727682599982736974328160361772482293855092476362273129188311684875535337852692996784564574314254056182422173229014736379603263837387102604602915249057922177911852229004937996339870652343284771835621685084480710750154581179368349314515958748272114775163164844923009851510790303712574292788657780153232157541848958146631593426222763308414816443962601754600535462299870122267096548606104678310228617689489468190787489092144755356838706674029338737831004789866453767031640318511678785811368874335445507996542085365119976469692757620502900889001186411865599404202825797117096663962555350287886719124378221517480660691103065223832761634501709407388828755094767118094783261615995056535214153410325922173191187985077950972850719685310348058610435303338141785774769580594913853559002148800290041687059146876703157835618013251423747067813680874003293763619458119490141745636306576065383915761019300862944799888853437576647833285128095343821890862109305789725354491172318625053970994925042964900269275064503941662030653541108996886569596446864595077273477283302981267780438406225130581682390699131714819586333256336592860556676371278089814640433748145388460406060036979098899045742453057982308782994981277239274827772022065511216636588567500298879505671854276414031924651533780603506956294028688253361320404971980447155544281138878492728995443098394258023711056739028945220260708728128862212186413245988997515955496740361585219221677409149747901854817326411749846222988521176020340667778988343753894835775337509861358470951481372423288252398398990995423024828849795944851249666912977488797706801881652655728170875083419033230064235070807466481180819757905949968199291138441416669890161715568981670046749218917897380180618741485934304187795839446245469914073315246102992222749074719203969211006835331980289156387682949413442447378778738099931448822176752664793912673404304792140250251032764927616178521541499364366866031609439335992043935080408866658982621475275891790747203996899244461454818068859754363822801348694272431726427072041278082611521817833152081302084676926787427714905118421898320886082050555150419215029506293041749569563944237918010164270823125196102613810156643740227494044191073070121434986463524690134222494572816314654326386282212937273351595854841437675955455418459612745335741975432967865553375682805228781397827366344065296418682251852513944392286636716462638890708463026276283915249673812399594423401585294014222742886502519918138464973391611790811343057969465535330589410548542852864153607521077805333587684084158813905411105458322135007093074734293756826149894728768770935357842796712903491506615184480952036533821260468530654671172429078863334700612075359305768425848694724791692114438974547358931169299786289895354998821634511044160083153537312836229791293456832730188058457401006080246382550054528297933662207568777305512560623334366936289321769754459125852767471340008332060026230418421076394514891147538294459663612428115758213574492380231211932825030236091032753620121054461291628047855366687388648151297056119999384231820085393719012317086479045878027969348713780430228090976720318528230072600589938290983315445510778965302465296452161550164889131693995506798169570851614645411684033907168195932396485069039674110754084087260806418830636528249673781984324633972583638662889770341416393958998585717644920106166839055902290465654115101917897687822871577836714740558129416050554028554404703628251872699158302680891920740621948902759761957234923376592414748304854548626202072273774902109616602361041847607796196359146517494249018284868701631678574281177119621409352349164549499107850709648264481343102967584009874648681555284965379627449359002904718599458301890183154876805815259283741845793461317844225547044062698090368534948625732700774454335956987715232435650289752892027283669329476306038935572631115178165836739024512382401857228533832934878128049729911910884203299733598863465114325958728954983982657162281736226552252190177273655296541545629649271948508503208738200257412074262228107560790454564668508951894903865968359640701104604569141240151021430209254986310512018465961068639015969969438283402971173127315036312547819464230050975099319755778606739101615942480910986055722229279103847641445985847421731292140660293391036073801858940681483776713503684383602111216740867411465223226144663983150443219288941914825919265090999089702832016841047607985840859508543601517758415361948380172691487531528342824411598613781522662501682493581007394983483945395739838815693677632417846306275654222052469349618776610788712951568404014733307719645461504681145249662295157676353591720861219262521752963408931015541467792001269961035066123410101105024620886296812601796693348261139465570093896735780130741566724513256285970416275237306795792498088792840974534722285512456067454720010050402474781019957801485901806241594492202195724690246540274038167895785183507322699889276562943736545501827187707289853242842831830521506495124352083548668092612880357106474545503883878197537263598191362704521553570785897226482317036246458189688953893467540370623990061906561456551082765990787215900400369421044910115136923959826022787350469190845181996438945903320497883668956626781785972270011872117697365464198717012000151903952153701668382454816311899299244972643229104700157368161235641659674235433423009234751459335980172209196533140776093940624288791222358676066043088138388868171473223400681068102263394578519920762784735139339749216653236190052487655969554509238088993342208381108657344024970123046025708016599072668358180880100052967286224283252404492250487181133273202739203671328527574910217230291787206326061738954779669383816782954420543481345775549838795422887289669026997005265419999302576946674743633961464875344766384396059063612825006387090603671164948510837391972494982870310629799703837152136656142693722270893648960861323055429391472284637485032716504415719923301157322047209602658915297310193670161981877837819530632094501329092003133417866255212722430042871143472651171017320552335337522271132123495935734643809598127046623766023503852472773200674623259036020371484649015380856952108450525924540005369201920248112218222797815062668749589136018774160064369616206399624312313136601554309734910542077709886807597170849198572835862177654265119519923245258837682205131457553366917158071442448480208442872810808046694048741557749624767904846612520438203263588658847118092117288598408367337082326663100811023273749455545011035644271676996161986881242947719384916988331338633049755198135363909785498630174711012202409145448646534278110482511930989857936542787438233032971365283796986438591714613524077705441145725803659657838678186198140394118139141873444928319450618235691575042252518398191524049895810540198414415173663245776206634888236494700986626641766628832054782956377349296163650805203081216453265528961440793438551624373154457614194264629446476897690344213791477977883707493882791600406701370724938816003738421149866761391295553869974677951037134111170479469832681545732247659075339829027467218190832878247262393184251431804389730250005470125538140298131488774899647229110195582866344427883074821350086794263783070920842225456528504083947220856377925908892388967638351118672420308506753365440099172522379008426700154123410094727299656325221841618315209500566364054718332828878386384917744207532950627201160570755962330203584508455340834583603237096288063417389628759625223352634848380277117596482856790667548499386933872950741940821257681007928278453239767741149328534174641234886489349099705005820437287608737259610012480189770559619591043996821460347081407850057176854446977321106230820877365367836257004208655350880684350952067355226557801165115173894680290588943380364483347298746029942544530820372275886533972215222920900472874157760432511469523882098991009018914343882734545950148278508875569969005367447541437167241060531550898110799961205678770675644617094028651607357915995430155023760638740544835684586026850757341982839067277415086685942840640559221213547107257011897237388306761630832354028386696904500500907371904189043669868176304043482573950758444776761558735272610581271478079486145351151611707075202543568462779800505339163057732509186632055013977258371533645281998452252059240139442479938806943011812873823152963471508773685427529534392787365949771072182830303374512349687944726136998024226326792827293233597981392925600654236904339982753205768352381817282042179637319166566909933322311841691198497544919161302115930069864875922697394335750177166890238980948092959461591107777574212071338476620076729866889071474927134452844188908913254633149676183345726960340873913523990081557313853209887670894202137423228640866342941908339389063884857578603944845225641800332949261032363442523117665495109398711079357049276132939060181095918691013280571145504014210509327176586682354712071806229892854965873150595617947319309779894772256227296815221530773792892357098334813118927612297349702746086735369944982987513583765235311191834370245920688339201910515782082329937338090294533467051103933251346027716300575969909021167034483940341518420376288896580387334415798007143119362965840312407416114556499069587660927200858633078421371602465914759219489372953908348486425916821385944690652502932817876912987468206481747867278369268198439655082010086827685117557575759736624297461309671059617261010387949302221871209285094704455764693359601116328535004996735415811208012232547130254850450682797559712142930900818265194221887671230475427729601710167893360246223516017439661495216856925675704030688983572050173712061909975925778640486020771642748093660354605212422235084171231692580976145850936463487327448717035934566343363353999676473791013397231910090549968873699907751708135649831890874254906171601936105580591559942612865349404730911244458460151586428998113200152282332445563624934282648480645068720682906897303714650683103559159018321928556734029631029712417095405811851864375717865274833913161153850486473887539749672203577858121359236389903723435338250286016450319185294397816809802814112120036091705244272112748746287298789016354601889696977726940298347123922284555057451796983972102911477394994192021323909004901695379279269361924738369402465951579670901658225746680091245679545507890761191797007250708173679139104309571777845403151723681513878244770529318791026132659991267627583419049507043323072160147190961296700932549283202486934303531210223083235587527384193340551619229824201686413246409856562352491588586650754600894341108268540680156228789207204720664325283973733296822779452549911067815424395498998534244043624723072828727369721349961424678060778074983496532922727376717003325766064421563842365862146525990310960720425909364202444792485845228334868365339434363656269557005586188002141511958402981399055421361832863312695405390707358470854266449746080244348003497984738736025930144393753020404021776643336256680012253507339109960510163185817971686280777888594055449027291660472005702813597916801782278978237991052543655309936307288559721448203809331249620880277936528713896510858419739442144079712312353145446988272713955236258819975794724757421154412485781934599164233614048797212731890674547310800137201124351660210338646594328235921880821449674079815554955942321499161935706035128841876163626850287730934116143989350850737823279152187443246545903650423588750790261903483936041654906120260408238237951265133173014025768654132117029706231799578989904803634283629610061776549534519185955766423673859871367783595104767244145883153975673180462771709667417304788418173905790603920947474251690972881837270561272009340860688847735279609582369754847583014643036847150735331337828899313183600450701626333575155064255122448774489365500144975178307304709483574144143783478530843148043831920983633881662617875235661732818470154462992041220215958790848114770740894770722742910677423213494011967295389251975087989557006822469965641468757819697935311821061356059537113826432865941379958583681465418156160338615928096529638831794015927286209308519960786157000895746236696215750810571990719439158230246890633818544777875642909839203882259923953684614634345032729353126582244766694564698167988588220312505249698534323325800814452537909419872073961001360547010913252699859428234299989006894106328640624090895573573074670089359631613414061758293702441187539810503688153752242471372114568098888954142929349537510594338367140213534870026692417291292963802599393885385974180381952392574117172215182430410036367313392720035182306298381909317791483185334415548369044985567548874390517297752451025655474023620804849974829138805621529789977639153731075334637590738296790966673610426512194723964449368915876398593973769698168156527808396796687747260837202472807825887303436782438094406537115537256587862055928135427915382583509635112132896950552338179665630714225804989029048458118127282524324648836437713105162059499860276315023995359674635998729793268649451192421057227644409482647920606970360007074551034579439908399007669007514955187813567390766900736357185208523178200699280009064603177093204146279190302212730462797476056727804259983663446150971495959987614047299839987740559838773028048180442569737683006619434804850387638112507948942890208617507373651739447596231830299612694874005147347932079958613730156359850091634017848272355407823086680773441003433883364220924943279363249814406125088242826401440460052991117875874685590473256502083329530014185548109732666149109206078396752036165294779878470786629497740431638819753853021301163308173901755854413835205339572120350317940098710975955150852544552864643737119090679714207562893852391122928011102161693780041897565186185122384603964123440666899505106298285256643028824431266596423194335830987472214526135934537015065484946103368746549870871799048093831149168535831614510236514002947112583098687425081400073424512850146326530530472678064190533077031484087436849713827784393399594212029776573276006619990451091598908922984843640482975780008567839659444158718841903474552731158913200141452202324171669638840810240586232331529912421307684304383865421833578885885436540818200299054203180013908744005640947491566318107996041605795862348479550616066785525913248607233578014474763845101185125699079297368433544982470054487418047375685975584692880904378327468133978866698784649740760005095434560725894167443854696613496871586600260410973195477641564142282757109630097005635749799367271424549449395368286452499659277870709270975994384094172379247370728172036451318702773092112904715679450320875991141890869763130205745816402930504319474671104671527919023355957058009428972419889683862278357966143487137560352701770084239923750984860602818735890950544354094192393607858250430410392718708119128538970379954371208295071612311881587332608938681498445837586272410964810458211910416564587047187889133211390970593750883092920144795874429287835944340629519337534928901957621565742886259817917742306295781537092332563552075584882506016498421023072593412418490214219680776325611282219350871782506696463506203304159427237552348555973617909725523379066434230478490849883195634130454680209392317499425025767101874494980084226458862654702582509385538203184858163171145480318866212481115506768406717874568788702034726927305150623731757889355775463203326688589226846595028923614366900709860146200439093044359200762519308728509708137210606513789189617472920867013133741801410443950678061095007874842527620388253688830032295414898540379221006313022346570505542097991724650934620565699052239002522196276301324464581833572133069637707506706558746503567848011946980679625263575366582819178493567293266214651471791747779708211692156079840217312979651764712961759730761716667257274995842916238815671899887345017752192874896629172174832077242417969458565143430509121506544905226802129196807629737222239192838838713634863587094193110979032053945474230039858036492092394503339192160978675439296653840805368146193891383857071737530552817835585907552180401168867200113579325343506143177637114538472284244490260190169507211802962050725820813171539259862008382361198981855718771764970267272663185045056397041862259976698969426689451431499673116571534900177267715701134337094783930099691853338340044050034930745683728228096961379694707703921874315430002376319338866328241555218077030319394389294597196016366392185328588522389997164409250035199615508232617055349142056563318587293369522829618233939649655304225234957798902189921721921166859845239085641220418011361328585740446359226301833765515549558297219982617081324627387531248665292681336207394300299001679158839508020502654155164418928016770956393692724758164714638357070051292453122495045301302013343139693437415950957465041128456599554610876973086356010008853210501922105522904234388688991883321505944409892308297710013492261017952820080030654282249294045517780359311982102302315830246947970333149858471797115065817755361318463385618071703303145192857129462278677888258352898118209449120483840453973780328530432688276913344103595503421678778569322386838091591073489035911346193336663760653678932837096849512615503578460195744655948944145063873000635115337919848588560115006953194834008179940085781605902367438659162138850799073770017532571447889205317849023843428067114176141568220517675817370910489372335946630810693366640480010456030595379892249831845895106145151120847963147958432478555096065070083406930266613610544989035598131410990191332707578662681461782028758919007970749287818224212708053448680164693231967983257072734985391865543934436009230974005863649896992183391551231222666028165371086665791651140231584197703831494326721243064495664089498418793815840504511360503859621440250472759700232370450099383764981891772738946599892696594086851701171258486696904350670485394049177324529249981950938213375746724595340924153542099982013063534399661373465703354767666550664918174832991542080358122467444838255615683464588712846791863921034890238246698259730592718241027157122587796487907106607775566690546540730561404045165363512005070358639393961599998057356268516147834473920980591871223827900270178047880852344556309894338745895903275784759945062217614120114027416773083685173268750776615741015163717753807951950065325888048901925861327087999179468310682142242192090953844720147776955077576010502965356088751085877805915763780243196526818811247425568316450082520179411011460272155863161194621820345955866277278857461735189660285260339029456978929177881973946639141749448676432468368531288118839839186241108798308630958508958918336357112983466498456963425841265802881332464432079118901041378232711798020977419744569316294594457791604369861286051677393237224713105172478673461342061001347107084124010979236293412858910018694135357109178777733175802555595198289373271493056642423942504349559313455160272408476145369703604441252430302785341827942369014152275721114592178209397252156156029688308355428145357741361710985447866836948852424826848073243868086693654593199549881975887554528445174964607698313681746555036201208265486036376267118836508083243026182321760753546131255547333035109100293250991150046655832535740253051112509161968036839304290469793806709962767114997101736619425681804829083328996207042592698880268737232642279412200106114763665968829900702125712216351931892198600876538605951711452172521985915728967225930591516842696524610464994478245574332469535510403138243860522108371003830063049224817016227890482818398546156442130855751961437425452564921748072468892242161597967311818930284903414369146741421979469709802125571774072872259031504945770316957759347171861148986800562757281828738044805055715537134076223417754898486543275020502459001651250490519359719923331027986544550628551748216182577853466981959871244300857334033580698410017994963861340805957566185980355192104413882121569701695200778638811737188908360858141165012196646708002754872961923168989181601012640106377012054920613235563671947877284497005430462557615642372417204648121786034366575794406469851910413755888043335480268323259029733503665176566988901115920109750725309585228273692675089205399307249448807043718211298073139311962023882402315238228972162762511720713482149889447596173356076832338479657158369599249538363313110155757267142987841012164004511408783808753480218487176576256163398371523570616085898017287138476964798022990491478685109830245027004080649339697006985466507881492104729033713087098407841541337217257012228295232085447474093455088572714074017605846950689430638139551626644309471296207194554208264212319345035994687278266908242466470772287661846258813805973082317530020351749129861482270642512687787961065111861101849176108435075845720699311515876300484111622100130396676373977691110399992974361015525812449333460697851389550719323424191212720402370201912279712149074462556154546790237547979233724273566269141369519708724653028786140846041467939768414407882284499903960072673746542760519741162300777126892376285732182219226921162390912267577744014991145843468301871564993169615669534557701878550026938589931705203842160325256635948063675435873261673769605713477809043374060135097368519076319813020706026828179338012322928153188159924267861039090704490726866518844496763094300142510544041220210128729014834148692647616391493724806553467756155766258327229218816075821303580822580402429196442286479401040008870138761429123456346815403583310435264349914021124502339779897537095662841237941723285537854400410170970049975215066000457517354600417408310460070373680390313666871198308972086063845974488865455400569479990537881273628264495560891261861918054117165626032930567683477548186735028568024730066024635155042559677260436061796606749953879010279233139256126986965652823195293208478415181690127518211226953928558861424344751262443654930175510298344010079267404007864091835063003477632621630381316875021646449855014793891445803822701780569221985437319138488880483781082134186315346576393551730346091035552924442259988144425221627528092705742814122274097454457345237349080225041990239905506649971951630490546465841919179393851308023004485322636984913817588606333741175533562346928546243138667058674288781579553649182937801023288602479452382346590649810492615482250421410309398138158038302267676794581860865022490157818148411439293871032449928913405823261147842720809363340441723724677083303000315004732926450951582787026446857878827369035473082502695894586385281605760927356436508722262688711999654553437473475333480673059829833916531260905426561102684400780967061276416117603170422184703254794532698255750391049750844298601784552278531488038358359877254394355384466658890054530600956338410937275852890033518568819214091660316155400696527558239029164317826587261836471740031665792300236174659301331786189848968982849940758242871831035084671952982017144911102343326915880915458021546081043985240939230123800501123661988056490395473446081044944465190570615022582798269443414432619539460109633971165213234587541306167303030127331617632375653699432052881654688355731790354511097826183010413532991443963251882220450126312750277652747665616480619879592195246109226670983369122353086149118865945426262080838350132069873741925807383777155367170445022133661054257540225261592627342461984043831177205720228196363759213332186844395462313075176989468618682384298594971840009041440734778366893094218575251496107239479060846493668294816296342116223163802009796370256455637005037569496565233822208727856725265798748267198938739587900695821839904269225537885610276695647748915677582932821760626936668222432260252354991884906283876558954056024862826661089570619430184715701631454936540568001808667859445492161206018002467554899859114862722043555411595728853256774051841151358579505564942989302720035031789691335325487655804567380519093645535681730100558334433113607575391304697158802197884249024283626952668997087776184831577019548075244432833154686952685020836955476228321838703887915962010479748816277847386309769773127624228746131919332846187908894544913880462490118280570283433969155526502961700099815397218041510348478579810796905525439193636871092461906472967193726850788849762549902577712552227311413937094541564242224291556586309339638321853403643970892025649753411098109190679227998722767590598491681960753657515556243852879394753989397326414649312045883864664161329475186069319485289325609569745642937068274595813086637250054557925490803817207030572707148057230325184767342278209225795546648529137259381725520576150958342836417531960460832892543636117081538477186592570442488514173951716155601599393051629225038520130041956435129986445987237317438770266335184970970770962205633091258598875895551477247806023039970824610870864747079785305995180103378574656217019058095968510746393651573106555572283638094838273301443607413961214458552574464565367666949180950193459926905179134732590257844583816532463505480911038767912148746312124224524153155527332173820607818491683949814309559858048685698457034387041387802035901066483021121001322545362943040864035656879348202918760978413025963970932604522585958915550153248974337866330732647513216430515100006603533879901596048727859796165083526798456933275117243105822347543078913296965515944229874040184054972741533112677145544626972675819979526396441792618522228298274592533739310508449501548764706101074738831828644311389193384181161399565601368279420081279624814959766411787750862052398867635784438736819630347930789061486283487096948560566007351984782739128446101518004959959938613360557868818194545576788414026029751043019700420037033744089711934183761378657952272398342528094322671724009066895876222573389412730015450054089826059118964303885824470467226443961198947783838720037736183989490480255787876238944262956837754320913805017687609838039928002652982204034003843616960367143058904388506734216101054430595059207595857141264504040380622252072395692465173856389896373959359514147299798675425583015800831433052174981028889469285068831422098837801557302555045205013708533530003413950467847146310084317834144886978896656040508591220878380437124713853556755438715725056257608624107263362621390403929892224888275213005532319863716928612833615103652738164931167930922425377165546868660488298594171062397063348684976493863292103745065680144853189754456677553014385586741007071240608284560875049574352173318916081940003769727189300714024242950542627752962731742987098085604805433369343350295248513914843396384097521495532589143949028148255903427934690911301172116298447211126725517571011145700456755181557405412238721763940372163320136081597560144247245334127282449139800124724437695215390083613532780315045697300027580442423550893517623978566304014168296993936525625540209166370523750222438347705258097860397099281205259502019884435764849777434693111607106163897509402610939922092082459807229194551595533597733452177017821956335451970678369093871480344095283774275184176625436029389395551565635873887055622681107796150044034676883745315749822047034819288203273958028251546268644036606922414260296365784846143795399081272904203485901931174109298178406176282593570949856731555912702308318379400749459450553061007234502217227429958167813953021453075406072292743846986627129111475804808804222137877940873356400777577753987548856727053441951328518031574676244692468029782750678544295009790950343629027843764635658986208663394109526507118606369979536165095269263391513371878005392634159317696870193196249290664069417960114434258070315963208613882034637780053301170121360320239244554039335664892838520694433294693491648654706132719843193263644982355402153828195214184461477695999504358791416284598480444060350500130622547953952171482841693623444755419082835633759355066751212726604181904865958893412279761602426819127074452300779251765305901159180073559349061366757929889506157119840077415707099201958014862535070347650445065692574979848276391359898023285975852208650840531854862835752074578146793751596471131191551317860371648653517172174217315540926518467339788646169104082500016202933208725972093262446102776755805534912600137500095666467808907312895662037834287870349474018339021545340923050806230423591458296439737396148683889636609824629266784986070218544455061532716388916641807115434651052792825026436868387705374082864662878171472516299662824418292342115631242537412216245483817880035251972646697449316280847254649533433448410497069844288386319080624059879598514089977805389159035526566844485945687267663181590870441183848635690514721782593393047647970303224734239081637726046449139725168291739821255113270741700401752889539501491893130589881903093889856841504454251870942146639763787987496994141867649744844953028983801925520704661781871397051502825253214705616055169800286077650161901751020275080768419936794776576427811126635295762364310194058371858742016154974739647732361813124687207356273467529091197780909961442620317559545296923211770176376171719795812076620782001862513972795140385892101656846101524038146845607330720081241310654406185932636124566017971879130554824639286650628515301184855681645265513445987550370655847935849768698040341422973685458648475281321752010634422381511836910810913849473693357440921626711392234983936856032838119988237170641028906993682579355774190461584590472075066317976971088046142919321008385329180948669994511608794127420883802445177813949744098542690790908201199325727544805053697960989399233666546245588008648102481591897416838501224450900109635758634678228768551553393318537814663084593833273858621371738120918683370965459856929155999635645536869763916877039049585934474927694441037775360045031684871124190551379657662917346264286482507255633601787034742028917551073144779683891226771571404365716912278186021908423665661131145523844521394740243623715652344927729656218747823725548796610568437818621281936295790106182564918470564856544292997553205865894583342506485522615854853860865964432122574851040091596673675871328631616101668097368432485769556339760340930517477862703934931892532617310496777402939326139613436298540183169140040463431733838958308927804927912324274172095382803464686907497102848594655641145187071257067649893929746238118227577945891088744905298476939654934978319973633427836576392263296642836015930420684412698802625901996618326418482397422964421984202119433139059782733800138410419111066046823646285691931547610785150232589658617666163954473129871413481376041232450498976525471851034169114259579722322200192474519252698450476829371838362694181568165991824296801259062849533713535746543101585241594503115278779183936845250106701406562577635851547912726925150207754806524432714249124450659451158342676821348360274845543983948069248475302767687924379742298758011987577095366878342246245985859012558973360539816036046779063120729043815879554036912403778699898947565413247282063121950774006057392262588632069468953250294129307118587218842785153852636093060537875343295433447969269710664984984995372706101331104572106192699984512611473322282374719459308218557430190419960154081538209248331868334044845547971244582523879620044426774602438599079836433314594182607865303655896927431568425452557980716010494566462013701841541879102616673804786729478703694300131556698584197341555172886996202500641673732063116803196549083899496782676512068617881026946730298023171370265544453491662567960016347964566889936518436979197611954869902917059919231132910558391485651002251628410214038948564403916422994248648084097086126555707418477887931142305502228592449905557898964249087488879810584198454680611943715561802800532309233005412255936634063716805326230228991223388976696106464942896068297085635198421962988232688887308792951204151852551317094780397301327265261110362197886742456297815850094272070650817641071242859544513492961184160816158970482247002757720092813626918336167939537577920604993626365238611510879933411446915053421853352630554827463164583620339260795363826489354125286511601895136848515828937675792160247735723685391375957456418822692431946228755205075387014071879943233911402903077363242721209215276245416068042163298441914297057384058874675942184877590636143796437591616069870412887510686264576194730020322849424118338029885331703640516826370090681023606099269496641204340354232594834379582848353836182522878530514434490067910475917939032783758617468584484180447337147547050607836890029869644956653550036570906061702321967612491734033810666144922514212904925406158141571870178812512525465591394593399193036766540239417279469108341258466180798949538946271777118446087032896537577431123885754681873673669919714411662762602263111193651319329728515630701127393156755297427332594907822788835101008244879141996953644067908485362434720317961110809991751403497293172645484018070649672957674807468361321827643979188617381911545163258436710528176854228761852553390103368186525201301811501480426932790539364409884631544452679364092925799902420300482665786741713426288218916175166895490427325196070089731955823880813484544655120709541316684021713987115850638258176160622446128234842286907758533905793717424187070469359216748900489226090657301025958853768409490642164578655436012527555725906515022916852180926677381294635139539235447224113421862673672206094701064182231373590202147486528771375294749346559130585261649495874240953626580860074994303734261931798394599861761828553963005981846890111280627745784791272288199562140718374696612128392513372955465766921171106032190240134065931437066769890431734344536146126525813649555060803374876777440895682462557375327870747689115075625834891785542070458980524046695861429475268933836905861117419759305579701219248973598046188489705236998301918649991286939691691716487538498557262477302962503873394334445341831472526999828386699425779699995796530055237639448689701607353494955145737085075476731955324548836877482036207325785367152552566422650285984777877937696050596635962487146689307563375177886780899131345585651653937481723300613917978001199228855588337951356505809734670128704091385473776075741054827546598283210332725223391232241898284111743499809196718026561331249180617770639379096178986094115887082320268242885649170269236756364746305610004591112596056888788229992745910444398264709867272218557249590992417663455523591996230745613037506818414165222035615309582821171083919967476049974543022992506091819169210775602496784521453275959698429900049370553325725440588607533846497108645543197650276215080621355071354140555644384613596072092175631115816253732573950596045859571252607114395107221272995307336378637887249373365540550411649386338108798330346946576291817458116939887226993021248753624514310111873191448461887879266586958091555603223651718752137520948548808466469854019664189291217394065326410396763194359656361056077344346487180056953643897809702213298109711301414755393472068519687117145085272751255296224733735207223405507610663053466082369488298991338581101539541210508148071394931642741633417151234227682195500080233684977316902380767449780083794613015298329171966621871244455585818531984579120960338825300324964401423941271152591054765312605877758249126635259513303983068020176503416276802494552371276821178012567819540181088345227038986998596322550611919455690557136921220055947432769901605465490006625683830423470216323004071216211372298297788558559699558101726175710121054566894421154505362014073059263501340114684281203073229074956467203927469961479622980753330316206232778854555959140075077043469950524760591922625897505743665996852538803174592515531434538791699617561781724701580238070635726887107027476368358066820864396347428095211048448241969132903688496631985199297587636820590488828453583144437009165851184336015667403071473161372955203348886025053856008790563508028510703432227756050686187705830409197429420043230186227210110183108398396902512480420644273580652558624999587211480389535015450123236033797825294867653376010475762354546012615029549426300939605009442666719767125369730212184831162734267112868087353613471376728206583953549771124692095234799332418300220283519095123292552753347639521393388700684350917787694491879919846188844988992216809338940356192641483873389369464928922908716823810917524659241033304442532582824260411390293627770215075416623004803100881125020170469479664188892267519405607049810107937289420395659364735939911613578590323687655344835381472619382657856032253207152529522506619567733353978800573875437417863944727109531494998858111103181481713999948723847749327859941657448316919270716702870286337847842074492875349786900645742049765540077142603160461986683438353480578033588734204222469678849344604427742280485377311408345694367218488604221110278727356589277613727938292229623482721317474558375065070142749432917795957329396066571739285463280188227413593086474640521487760119388409764754273995755907244437020817042268367608111482108321248787858929132562264570841100211158832862841668375592993671101776243816748325964510070236776629759295954353689339436943343455272217165982204369182436454762703370296460293047710605009890348911315135017727595772998572508980291404141619458018684739467894949324770325870361240795235936481163287622631740573907423655289898748688501483036510963783116349804408642452863193471240239011322872085948979504627358515113945982128157124838463902700436857425297337163362531483917451497466540519748861742125281742234211499903231772893194719825319631123259000961895132147591063505548348725045827775106449937105998072759111054849240407357155652225716006238647618759403274218401839963408252298517966710171836676647985811410990112373164338024833293109063414423799549505026262895691672284861069698745152265446025354865672305309581039869058609470780820397514542775428691439112697797777148363554701012407277439074334078621093114917135818178406633864716005133295511031618847508496804353305897303383219695428451117905593440202928890849080487698631743745083450350432618418523550199631491913285637557037721155393526520036663517327863588306106648970821733337354790596616662717109951227909658907859738976769549568186113900476428611751727668953140261769561550352859531966613042458222392459213165384416817280793737985055710150045790982733403053846139962796554746042528088109710801260156187313894558226014045001563330494760503466391673350984669493638197145274490288862203230351157978235420323701410576657387032244125857322700936834297116019504799198344912139609414589420298729934347900344989905446134594044739867907119925428685601830423675257028620845846784002652985012012841933544823576145070539306799254904196437538603730768341145352626441653891732715324625735976132983603581788917315025364782084570604801451309585161243940920279517884469090246782610554855410205517404668194418413040785565447302024293869380674990084413453189890931015476352181220200102301237252885176773954603343042961137609010409479907789720835850298585902115562123949493245324940955513691081721029347504202526080091618750125839385375858429436211698637385796459562575182008777143642798240240194973555788434083994916075073104511564743769518057445345412180369849051190881325010089223973860835707393969024226465645663466220496576383659525667134967873816490258610398730378359370579423280528777605408307434730143340870399709957288922902873640601040362607813615598099343014363060997939845064948061547390403849409494541658409246615466287007105177347552188198520154089053842380345703190268133837246912678548362064995311982883580727327399470955856426420154548664371292046957688464163235432841148570799071074957142884288951963876671846198937439923387580467220312731409282318626522477369315396705360938654180788960163130782034882405984954537677000564162951549563616000547794850253677355106180837797045378427092580677197771508880006583170235012392971082668073386645340262978345823550190258861694787349726213691155837360186384674787927980477143971615700912745021906509739908855680693043082643140865532511538268761679215167468325263272205337755461025786905433841557457346402215965000217551550064830940021683123917578896055347776184795070780011516681543554730315663784673769297535761833785993269404961317524293580758489077996244773645060413035515223565480032284627104380121195897067697264005687759178262218499126101135679135437423903175035729298467830902558435261792129537804977538290826082154523491541283015061962576592716892225244648997030746389081403810522589467818629519040342801792261524580569329828758931062105446929172839543219901745530955411814445207695472575624036812001039673207558052192236069612644909992087071723822542194652815133340366287867492478521517406967933407702310200081808302111701872196237834759571718125488187999486503473643140844763444419009702227932087985334648034550151121888876763741429244722001145350521090031163749401741794130459940069521835025803169584949331494727469703796940264373901796701317760983015175973093665838498815199732161837831302001083792550991883179141081553977478461551581924630190559211359805521597394846680227046245038356992682682179349112371533687470935471030672439207062188168895484939273444947478270410156274051730656697818416785342111732543681267121422546127639460012253070106513822913076109796451736671576724291220323486371898674188199166496452528841325267639046689223289471599796238139602642734277987852585400668682988705790299357063156174906078998038833139576014492394497391540629601196531229183209883585698943503502473973486600782912906753597498513032076707683806373869466266528781301505504418547703552826002932418488314615083473837627851224280777597415598610813937164272430806689395205292821358606233161511917852573822412248310434380144413139070913506453699784829580618146190815325074701033231443937210352439621603123342144385809724168123280427496244135611211968559400451550451764637629986391784722644331591936949147650854662800531361960907307141081457352778699569622746422090861672457670687743032651813588657590099844450010694372806854846605025849239030206554010433579892912216005234756233565125073190785975673747739684383728493332312818015710060210554487183518902235184110393303210468853771257657373060461191293750148507452002362969671904015022179367736389540699062484974336257237773452045060145012687070253188540070310088381518995169214371185522233215023192191182350981182008111407545858286602605853819578248840201481281716516408413850132012284121639122732234261519173233366767239952625028781471264079002661656539258076510547835832901190419287656158763661845779480743332518152124485517453462870290143410967801935084603357252952049686108516146768667157969924760044674548975466934028728565626286330157441998994092712350035352261398098701603124088864089869589686573183591669290173929645025966122338763141483037808670048890595014831172638470335887213668180885068339693650124267010362598775961596738451307247577236646833077049413480689809837117022994139331378226216582398279767323299776834846772651986050494668624021276154839656420976179413226238742066801560207793557240543992056670743237310180049271785626248221280187058324794414576688895347412805915612345269393932480428175337186327742368859244729819006229495822509720968489696021873865749742742689926208621282772267451838836588430204984926443450653977408331664497634018113509398830780654100605782213650223578537137972445664181703947960296658521186686791194349692910778413572399772783646002841586940511799445115481475798657576661295098990662676104916902229467065468771112501501764468204758765119255340774708645979685635816737985270758976910767562153288912295870450587075413028882956452593562125152487011535042000972172687774374507592370614757880622807743423679648788235710659562935444464574567377937179826294048072162120966561659171420572985493770234336745984861753259900921449574737492164290690570880993529658379759169649438830786341076902023934060438734932164379708798951621811690088042978034737366821526473836504292041494283241598566814857109804900829981131290410632061955225734569954522855340544048100635968358606644639302868207645328253378918078297852059130301096833960965770626672626792639372407931940098216284640799856257431168519558719230603525432338448468209035517458754185278323734288648831497368834031807736457000305834328059385197622273509523513617819472859606892689298934057586669768510997684180411184474774099661169246003363191009050053093827256843647539788211099570323572950031133023149351582976808886405521685319008988174645693761140481809462940956706382853321503269893791453848942880364203657618632329137045484663186206033411439705277632696978583064853479345548823679831607506762062676737524457302022347442515491091114307098426013850650771359313736261212880946640993873558138490761514416404652442361728810875599598308511742859093894306747370041841239518890057649409029600962987012142686619725965692216640135263845688530168763292688725421809991192578408820079632820281220579513658642818503012637854785338394538156962754777629704293055017135386629167410144788579689143655981645079831452547380929808765544382922499494739443500345442900908008649224450000380169453913115604718423739689560453377356877056603090971837528333542029535158315800907806735774818143738981511730669322978289805990275483563618858116755689823835297882005725466812280944575412352415706085024191523292638632240180734724736308835863880306975526454127360712625986843108659439960557679407626346912784802785062469153874005271515589117478567462875063133295771750187244359991863538194293350113558513608023680710301321094315763810057069560432541749756294440936232418912526650785528257239609749411412957303262200811531332875831191422892169965136259803054126755536084730224393826920490416334409031135613977924390089157301131483458565994397182618138452113353623891259711256662704312947297654525857078385251267017805488822139379610686996475036212967398443539337647676528188610070260776807344966663880210858552707853316272258296535152329624246426784433323387621423444829743602682168660560404314562337983419269961969695044791662644913576376389736193355842340220014114759893153359848716657480258895708767004668178109770592534438601483147045032444701689729068272977861511934831956781024790520312701684134306672242858172337237715620815800217436476791277024993039130207699777928145664884902233289845863609949863963388888013458648883420133449392184808850531390206427046379051962019705683861517849135163868926711813635302315239434289594034242371586827205165624947780984381042497540255665920456871955974701687088446518529099450557630314645297863445941535576880061806097276324966437046618483438209753670574222570494859576118307314507688290676706044799456016405753078347552341732078485656482182972273301691663853547341288635961940361240060547328843610027764553503977864174224109979731572545167664900160268535675520854447668789504869801456620916956962103311143898572670734322174753173311580720385368367497415607865447087776372115162287114262636972768543695012749923909888556094723699699076441957445255966220438295714120959992926113233980714446300458797415969505045646838687726779332908792786738009871873765991064297159850999553838895551876363366126778451004819986186604859346421988267450454631340148175429132913439121365094125482688783674800473755449690788644847599230288078153104150240631483496176342087951022740759946566641971471468422740212708378174222320280868519438515928342137804476142056773471079629823412920834986670318307843239711034352155984876862334250174835335791052627439237801424872100619632382213045898423151315689632211745218971992740712230042669026860690884690752186610528370113730733428138248720170059778431502465946819350408629120262415863784491631711985073944552682349171706227144993585185190827053443869748318977335322705033610460528834964744969856038014820273550917451865643908937716207435403859220421604060304150847668967649472734411089156379132742294878486330278076651658694695761034527319285221885537471875957668689055798172037897913251799354742452153618637319999962809650111249754310218965735793107651714258630290387188381130439556904768931716563598426568261417815341535557453970935605883952788522575174085141690537939802230259662745161074091151707836426788362365153200649871118323644753009726159883048643284643744809747951613905441963261144078709004204052583769861746955867165343452581475423331794885899562605518395423965288106056918219666586143159830037021105965028828672059309581016427453885115084949982938353316775337321515034174576178327682167953202366079609010338610231621355036629368846167241557052972508150333887440045454399580565631303346856291819780149527087053108326177454591695069943905243183212433947201371044095034936648706659036893507177598438589695749179005237823132886183137908587113146221208646761721454779547021385551149341472529998668769824499793137686180590700667987288179765150016235631281105186023642070478027259978118824960262496832638292172607648467744270345143964967049700340233210432392384497233493753037220695349976948979372605722113773661007510671841608513390074226375009440309222701730897092122646654104781782330047723172632241766697628532977909791226134843593048144007530035694814407036523686864642141602259597966226753385395633036473790655408898418745359208292985599981235806549036554753554891870462602119840188184632772343283807139190686826575267729750610351071475160642219045179428292747749874899062580357889188782449665200042629327715935540258180930476855893193282441494059062537052824928043722237756659259719276097003989724540892052818799849313563541451277567500228808865353985151945469416425318994911241104624856630653588217579312015108460924364807884825199388576966812645488146998971238044864810667699109433199161149831344719220470061206876538548638923427863170523507494482085726970070953764431428035272753523067001413266355183758006263246388887198931713776420973475024531403044311434064377268856231160657390162057153415100029882080344987468290048713080032184892886170017099414054595055964647585951127329382123341893628980780351487787803093155046951176400022811681266960683259990826241556616018301254104004521272167808880972872922242097166511778606835637839995207291770753467156223029780099872669509856182856148630890011935071017765474194449430432764213965071387961005168605943104664419960443616772625123522611166424449519079769970126860345016797414972195426235846258205176004596935066699794140266616502596607795129251489688315202697399337936871159713951390735255226785455321913266744308541854643018023174658477096488634253944339871653941527299886662012451260159277582951769611531705157555390369366668002283016046114344825982923863331334130816248128482437593937452864433067446449244514366647390843054029282153508280099626318588762690796862952543594507303432637727326657156286839465847983278683110348769054850950025259778565664544940683365589808491556599296318716077075980523155901125366674914592809288465661060521475515730748687873944200628396683196692205765035299303144908265634287668163408965479269483492012725143213850585214488156483848348725454229303151794456810932115678936335553078771713634904704845918447346739627837860466231632486013113349656583645695377737164004089427330338578299905576200883212076051210069581972666868290069252005868815685616789305310064172800366240820621228629459085291251290460613075158460438748883514260725003464987180118054969064091912415409170706552187404905667198998356020813697392525115064884718424957810507195345079791161240618590132738852780383171999708890585589436514964926937816760347504184062436675646525544436949724128513087965428701330088858356194327061603107540460900637324457506011138756412811119304958797286544487044272672888786927416109142686160334168045817766238066747831020190386224535297174064485774202697497223680884142474499045411833189602221373636307357710983382539518243186254168343857025450262967482403270402449679644449202350139299386246696214929622233469063728039410391847775071222475828080771648156285054070734161747391373001434999331372294074342374790030719261441068210692368733250674044859747301007665660011346700403390622383769642881898344468720224614716424824606026070629893688181822590091169979234016921815359892170220895108820666970325054374038468241229873239889639825690436939885164537684868417914943339382798839899692316101325631253112537022887863804085732247858153639865821832315509847082225589948505440719969096207085024484740641706077034873705453262077834533218311368486152898253063150786102407608879980988645482591927140421023706525376102517246808253073178226238177126832767250390408256875927524590122136210466806161652344633280754949808298914614090110016483079084962954866903990825758944601900712057811115436359738761373002951860432380845574397163259677606400653428397498327033768977941875020530022124866608559399873644635738378705000547393862588957333309502244532993907021851355763718922719788352088393342769456721922748938502388289570380431744948004114934508315865657939049040795515026827913901814323947023410457350342029081284017158100794495320774094017383845134571627461297770129599071495092624031247118712839841974533518925663946018459738345987233235055785603018832385831326715040116619750694572139555568224584913233646445578318423550308885654424096572449393639371355655660009076104515926239121871913856310173520030998076362676476115065050262812490256298757622454171135995249015056063894408451041916417625135834856746319002609658087437324481552879223512777789192249074965425632654853141578779231768534841623503036975129157636203095215516698376130612685823498193258599052802660819283672751682168087608391052496283537808471440867741740129982154345774265508873369026472532693635176132482981820110703870161512601794080318802002768417141064695560541019856057055116709649943339184126058474876439713610902663895807271835081502538647146142038834367827549890403815470760043502738198600552928364651885223072915250197541419132467719525745417127144812631817333058033122373881281423843543767040493609444100166269834205881074846497490689907770401842403327217758287321504873557965188041996452841456985151716787482173748219092411420512490339513868631492810445833294001327671769746489439467267057383817336400758536220775248675630591657350034197321249680374363337180267705419330749602407361579491432736103398068328574517939646599041121034495408331351654400338748045153713819596932178169077650405235373778904096557639356573961934955818586572439005311369081300518381254197202194951942355610628476243824121909681755477551932443207261787405920118924408538758805655878212871127012196082393737972058843300913842377314325306248235056733460216446826157257947007962934344075649996532772773872696273493119484246250604068911641490193573403822273147820126842555804337906918541065605577671608950959074030011334068037341905650292616735885408754143545627638365723927738603738469216761261242054828745582729370841786498185964085186434796786743766309551649212038734922448180681272687725867939419503662549481317844175107387551435156709033832925151021598100671919398083204507980737088885247874609699664770890676275639313785348076761468469498668203597463594898855380907299775885267892860356880121105235641301355817968833222426094437820430123455524215248316586564204165039915503850687394852374997248741968388579835106577938457585160890653492268595724114032915955125796262297620382420397698835073747053098154809548328001478695389528757174579145591959499061894223761549870231811713950317545802171374317139377913404863515597659999246548613342456631304346818441210428049808317921327195031192514132715008121339032352774157148407751374129399665068902344415967397184655289960729359861567536460289291024130324776975377230723520700966250609370786926465741982411222732577040865487384484038398328894383057888567758425850603511051795285765822470662755741923125641568999340531288091791618868519423407647270903086774845385858993440556736617612289570755029441264806480730224552569697530506631808551756047865916514884332925438187445926914903378277130659808965697504694810258620671228751535868252021086744495848546528484185254594223405806581264350972291866652366700465462123699916276518930045600253114725216570152859885436335176438687709043506025061699164064589514665689889372127259759755919857024952987581402860706320291348889792276160985053072088253608335349331077786010355926250335289959339252000353524172689846563639540756969151516514372743220206496792693463327285233698945716238317165362239527809664883369638716553293347297641264511116839455196586057498063553605142484648675614685479907388773281692969427279841170714998272502954484276158744800907567208306790547261152492062164981004612529078917169882604576396296041016221476288563813425217523143359824603958153436330394163400212254741074937359430339143822817329414152871608441280778512677950766898485298712273432207323288860358075847789987116015116019205245732947690985220286560035785954459143422081829466293661945659514975585037112256540138941916670775110256689891567622617941934058908571541880878878538401350883951404232879526789118951926127219950687255146174784991477997170125295873486043312783100059739550246013696759870894721671973089850009791806003576135146617769173031083989308300406187592950405128867844259706889553378015632883636091382621809613649666257459069641110619399058617945652372630266571021872150065843848441741012261268427692299647071690434037149304459005725837701262667218135849386033602275780667396684114758206115261100992595021483644027140242198018018123340551654653162187793133344515932011378359684046849011131084569389269250387791577522390237107536930289366612076959537324452666679508050537721296953235936518998504271072723124203572157841565901212368691316187040232094726574462373204778710241957259730701254460303532212183901429551202712186081271720672951365000645473274746054266234198158029431961421006129335174169281492669158012763732471652285893614119700891954760663439644912638816773970505185690894310912759479970859418208218663117467190425354142147585727438388814267906836846279872572014716382763459769347176656341489180483423871364924966423243533012194118901209921123002094222428182139937226533812833943942740643350126892852450998563335628603152077079064371753910509423197964207297613512788663493312462617115625169735571491128160039159524772588221926982395487308273173769880870877558292610005947289669837998020167907136368422880930457453673489340141074821107713181514975263045753378058429732414421557794750358957080132747065937338337402175423033479722232796515911788667630216013983035392246765745464248770100102029112146994261488206015584894245304524210698154933243901535174150116283212921388276550339903267680194397064182426354261682824731501254715929419536082581339566183763416634393405554281726988820974192602400744270292782421849360964461209517876183372475234857473342423704894273325606399125896792494133684010760502400817768585335215767715586019933993512525237193795459661621473957305670773262243998961552028289994812248093234949394218568142612598297963656812950390751431263904939969410337721672858091262094293534277201897262945511530082857420079734796600930773432739422556809183862388094719911664686025262976915431386168328187569625455710587701887983400715697552206458764200989441128750269617888121492563576317219867763638096511097613322018516656355521004820561929214277320270466137498220939794392529783694473406687352065223700168673763000774565906479902147360532855354550110769069783180826240353456293095949637649812963882966525610561086287506967142739729286230564398317076780684522965987723745666556727211071537057452114812408294855993490550803574855027267029376607069586217381728199286488870042822549740147679333914439842803688690975583978311466655403494319699788370326160120981073200101347808945378368883124117606695721250298798936045036913368035139098752703305144056237953864789468308060692031226048282217317991206636866066336619729021993336863712567818743620777459258581268523149982012723737011914918223314964581598006514922453948931017554281119152284484720123818173204210147694441281134179133625710091836802550602779512581910679699091786107147176652626939376136250488504332918373993834270189378091320507346589271089910114246954186527674648661692952121029361545068130161607560724485009166500309448742633071330004987871146164559089011487541888046265887754330364481884330971339562217839152615907236379353671322870043345905644471234794557596998589184733772507849147206382406613262214989102705418520584861295232127500278268714501503362911904764381482210084709968645658316826488250530782039815038099599267332294434560215520707864573029673555809578121228573083182306763650442486954356243847755539962360597719161861045149160156547574161723613609854193751744350487782331184597802093044263952538360234976483779262904240066032249290712364244779822124678312273124250551984390554021265626061204537272054451631551603971736425729202306951946647251944211147008245519273370746771720915937452087107465063488274466152428463226311219285060415576098656222700485286683395823494144661815834482441963003328160088326057708561827375884034256694557855397125514655866633151224726463542538911207032438784622337013720479080890010775491034836468105403983336173124891558839113708257906855886659247742333040415062858704737293961239623488040374858425649918755523185979853133354234334032660243195657930321537596758749822937800051656192721544191693818538265674110988253856979872345965843075346969562598390285751549408466906006584706487955186558824017039638004376159908696044538458691189252756881539040836070543808339146111737669657761995456683614126217619773895134524342921358055014149001933081085901856619215427251839692137582434998753201160563549931421333476358437550628226922994598953507055670604467610195406642947447015529537933161742680094898082302813774985474640812364703515326531685175352379172222032986828790997202661498802724506896795139485320678421117517893323288121246375845965900045820893831234230014121226807838993133762185501163333566893821732390832083440731498464322810604547123940209151783853121136715628447721311854482103466147632319137657686147661482219290663148488789528592053237177923293530187087472321473100985798545671087468694988784282169595738006323438009100968908190276320638909464625521722092745224915522523369607389807709275019319580782012956318831520900325045204004835438101585672219764168661111801229046828223001843473392666851766386296342757774516619340782772258533107273416528690425509848531905066906613750435609457292454112021973750989816216340631492905248975103152977429216367547141602515044867063821557208336415707961917216690886784793667791357284112513237357620887186408694728295304003136588874139760325607996924552314108737010845400646163100219746187308480226296687647039922892715716374205731165546385658383208514723980579755313855200351000495867983352666959999348080490660486204897402977636252822130992610804796556048253433591327436321142702780664935431880146182619640753987370175914634334684697879381567934442878680895990258199638712804493867835423171219378051697761336162420560813439138631596527414755263081025523048713965167516144980674773743995963437120923566500288893995063662791004635575679620517544340234262967212951300288951372472683385347890188560778443024015578490710120166043887880343178151963101585709787798970535323544631872693945178649936533580146984984253284278082148211389869983839979145256255160423682724608689879929588473999067517310531782496048047923274579293887602136200125169428392449997055130598869471558135768094543141411615270717295446875949210902106568307801171202153042954771030019207580244092738040136947940487577307250251686625465395316229684178172979391876740308456581410786502424462929969036185640435736630915861771069001388029899332285351201371987073895871002542340399918250411300649620006957630474921043207567373852764103753970857051526251709246807596372516526380989219830216047263812637296766531263403946423562481200033483820631408927575274501630170997515672304485911243007192392434507679515744482596771888005435370312724373548275153062850218238874106896171333681244415941651731149794749881724372964519125170258198024323750211975334737980776468219527159493511080999749411994936909065851127391431569932724836900792352651721202350868575793526252469032078039180695736585748380453221003387072491448144978749289360838375860391117175703703364392253874549603974981103292058659178507119770978729697661381402252928687768276442106844681318811876569596793936859966285354114482246096017729713450917485121836475670195184372459763190918344544125757982579750466440734463859159487087587069302954651947194103519775491615179930086721858216486670217380340610395168852217395373101687598915905650536477529106880301668638889421706998497226960345453587123853478574768041636283594564772921152896637302114288713388481427366681132722041985641558122233751316184296099762447675728240552375721602213905359443208694915814760420544123011057778541947240761794831339444682444605457367721959493820226135991869893292406265011100401918372698191438951153458741145009434022345127980606060066388023200650306417590163557263379876625853275187234618028222979232688403413562450019210856125678894701915679074584010669236552148860779562982168847809226060927101621683276749576439119959539026388486015861463094691076490410360332141039595549618167174929662049211847763400476959167592419426211508088040837634618904433187916548748797230772724778240198215203640248258553328201286291562588184454953414181518275560723618906939898779967707597593607204891068422474827761780500768976830818695206094183437495812087210687770582678046339786208321663805468046470037873440941510064240391071449894670418073666210820401395570070490545715867682302604405585032999504768372544540561821533798877319826243939540877151984876858447296249309040088149336140266971678135173389491623464970053142798284683441881872579537327441629169611735201694637734168578892504269934228856157439106510127341158745369134547860129250060830525993647134510241774793194137522895975122244263760911019207393826665269421801734400212049075534543700180416980741791191031737943875157662296212817293358727689102757036294808728557212150126704356014557947528854998367404061591147059844059204868149555360363083429236484206184563976194160306357175835940082188516919258882086621574865212006825567820941600270878687364518818425677915342254233982772195245213721100602231528053483528374578079572869340353060013502235191004402656636202047976510446562671720221413973754315661664814260960955102588131110185849163630605167932977670232832706142480149221635146586299359175288756929740795507866952105820894204103315265290104849692710566114137295210056391362967410412462412364888264576884906301925085390222432365186087450863470861687357352853332063543309063514210733934207563936950229361888790328893025350006509653395853700442656832284170544870918781552563650875511893559223094994457210197232159014653494962777407803758309746463825123844147280469992118992881190942742273783225556851413315291134133534418969053872329765668385184345185046508653139360315512536132642244698399494531944995477065767080880434832228709211569768811957572593819979262754584131192615696677267631208071950258546196558484423643043071775339622072096361617173597964334111655677345680491453868900832335754850139006719001706284206269406858336569512049278779378710890230379790718963509312420116921163049583606654537674114213782576549039761787877616429032298073099982504899621057572335374065502402265678807794447119316905845107604731130375931537273705254279669969110389468396993342410160642846716931102646268682403806883376825083207234926389070209945094713374123345017625866880141090523829410816944051415459204187951200214784025356242874866753810013095394733127504903681580112905210770386401087001183142225108491306482150506722223163931230345980156324486871094383350863672366534408244815382952788828658402720153201268946335720921510239002226993418099888838119593013164055513593999447212606999073030860201463436796886457646015416795863906639226002056205153465242521360362990769179901308287651881777871095258063974318032259726137301184874484869813222550596216312834219107484322965330087407028921164073815032066283436699569622041765518142161347536693397996198119971928227202608878681627159070267756165802699976964121144449822207846425950756640164208116745963400487450831149109549531693313606295915264227383508925189574660159951571372826852729064492494177224678701899660411005283736413402715111401530789728922769136128421454985370909889579980701125089727172866476937731576612749016657786936735867178762616447029965543602327939353405552013513849127036102905342428178114225977125895242834062808050483098476267969781486532990192640614733103142763226688985916783119178160840224367051860341236546650181829666276570396553504520425599132599978243643131670456665443217727921387964756822122769982750988593869935996399269388682512435604588210392214011912404353970705149760950988407375750416028700207848624511835304135555171641122471303640308912274616602536048726362253760836101476615441555147488865093043661590105534053058772772629661713390183690303577582243854023181390589502399549090933801388507358874190630724731103856890516809074370839560194845839624426771354951448419841460972650761926537927528401466062916877561293996570417707801985544344364623386686054692294601159723107081411343776942984302148945792469181365062044124972458036514519567984822914471945391531045749279805885707837259493753461961860073174773601133109986180834131213161471271002041497136425662679236211748672093126912123228298610289112900269157567409279695426109699730648884121551306368981674951066880862872033132422761875230863285966601367191206305282885882273273315720552012669562928337002306635388477773767482789967642760830427387113502264227798876083729227070371141927100287549464483300997454205670539497340509255277832319948112710960705891413041746966553185808236962387980714351900678230520638903390240447458169758846855132382140663616392413949374337594162083863222803285360585349649534008853159702614651777082521804973676241192412045370562293143008814487684383233350496946481134846258434975011437303005707472773930706243708925361143032830454303291473012706170264328687658893700934485046536449104269532876816784077629014457761191535207971638055634798892162616667196483809337669442820385238535890130002851859081298450639445185853209852316912945820008039183586166649192103083105859307222242319821975690623210772292429975330997205411381475256383128558696971930723649337824745839569397479746183002567397886819526197553042259297054793796852259216117229155580116916190740188791734510657101588836973588011833772221485547792822793438282504957658353257329251108759860564426530844394890007539626867790535911305999571576413747121164171860528867854716967767062788025057295926744487823188418437615639442044171851904848850668424392304002339839082263758364587629411906624029707843043313724460447410779075284390768386721619627238659690641089424089319029464223593835449646424337338178698799983371920075657395675079395076843488349551750180275919191853019983600484491092176674869718937700096115257066621774705890161526576716662674890340110523944738049526472246118578077740675310007469138850052926918801559855172868035054754000197991792778906750371040709892469541399897355239105166355721234820039470083882517970923429744682212955599626340259217819783084487510250380139836103394085603950329488344783219415184843067626090549352329350137466613240369885070791288653792553241614060281903787089710837399748140075378177840758065285445023764821972809806197631636134860823370778901463181639555625028283217600237335920463291491185792878384536852262799899700438101138892621608464395031245068142788031401240219963619984864038277161716954949871465895908103342124348498534088396127791366861086340393781667439747402367053192072798289297642901092031370925412526503857295970254717673559670225243509986899566899473380778199896856149633008362854795207858019178365859237475877899460708559358271286777811859255919312727245125602415015251490702060305157759234912113284281855237399117402166090091186135205964875964075537491325976191233883277231747475973855186605022900789797708652439568885780450467956958429646137699370483559421584249110825779657007172601727993875812847556551908513129779727525946281926604466562900028282286004893885367213447901925015416498540291291471916909462241822419759380287559920066647135143482412190544506450518651949470169845492015735194404857005710035898199318011779005075948972673988150156273653799630072661821384531349757167115289565870527267038675787081207134229978921199246622520548136887244271849366018566902160905011451918739670413967697013973844561714569238257820153867296551469819047311874513219219168972526065709738239665003485403365229151549700106228181031048101533773205503792234647055577880337374943776901040869137446995213402018574561851663219469468417223120833832177197364324061865714930936082079016220245176219287840228152561621792156247567852320507370803110191099068291274466289317656412918318444095456484913997852743713856987326869721179256203952461855302346704324990363750892697575428604566471333751738485887072061716704100902036838074323442687903553977124480018643339881931603038368900660990018133119093161843364918059343836343316109609267294956528087726043780349841991648554101778937634005945035115182669199572764185192567607873288048277429311009610604108620906622653106240494939078840891637842879705856377698566685694836741642322992138708271693066038353818939901337297930341071670954992584649221090879610094488126031168611134226671348067327020831188786088865320199206125294689615633034046061834890530783604672334816422561361307637397090882178303540285107784268246424246099596451177848605582217078110511348182283253778305205793713330618872399618598792388238332719041418167722801508960214311268699759674653207157037524084689956194212843267134524306711196178210461056915276561416109068004879702260563996789618471581545588889803486828872120489780623779627728570732264031736201437368045233354306256936712023327112686849283040519596441258544115748177814004479769948213504337403891853443740835723527807066610155341704752269527535305089554003526426231187243546425983891266778813420493787509389979577776731195165773080533514986616911188654943896503314452301516877758469598248025469596211243886565304467368517316764852004916176879422706640805456208108850067937734710444494448830318738292071331723220708704335507120294769085261000307271681894051932375658183824065591549208318568590047788466639624455650708428676349509490069482635160772055720883559524953396371783835775367856099885511206206182945353809096741452119693123786491914495539108473304523625837907399899274246303767520568926520391463859553955713883462756216948936654535802690782596415794095478955638032189760405537548565807373566858113642155803958073339259654598606594782787631202085592478110658025181364306908238547934830252389650162298355570074628500491697636822543177453664243444533138344559073602978886027661229432710913115198196805671035373906426723279863584900504100842876135057282560967738684583007587679841027273375534728891287401167315298132971251199329906329445801914360089983376616840506210909854493220259330482849682781184057507581290904615346196984641008959044064226603447928106687047299534430440522844141399444188459982753532892736207397466127053195114554496640059541166508085799962862646647831169758169552889136862858527129183597437073229045046374059667693353112783934410218003882217163752508736948308629197060470659160667798144853995844207334495135734195951229812242708302277386959877666479926601592712112053125519384388583220781170551439522131982988228372279822114151400857252344798479711141896569625543318885856615802328856935932275748090263309201121099316640560903819745177750390657410887599546868934372578758818402725037570277469707611304518180533981663479534650114547638263104415856860785872454317612885826650943329409779367537211433485503946237699371283389283758569883981730860573195235361956976989465873366832455080609892159285589957942121024414143499584012411181542690473038305432588084512727183729909147109165907783664366494581304049694383880063332388922982463882873452965209797259192876021029204256154929986185494683586544272316620159051571308005455323582509841768650801597297976661374727375987177732839618403205970980314326648672727143260850117010628120179399832966485390627586721426577830142087263976335562902185652191343196574373325026358781688033512727299015290619880934546551823724709522852369664610006879207871030753392198417582974931546537918695478413607038913266377520796634779779819769572096383520748480475777582101976491405999803605776112572793054812200189771119549045936130133831970893514508164565307638160967343765084346630894691462639874320191449725830143724321535697671017472610582644894809156625736051980122232183736925824452219784752976402723487372443867128025307845974754345270897525012273536538178387740884080877062720750972406820587764692944704428760204523230925077975377904887017243984673801459092838572389348393416086838659310355046984431897639267857175708522665290469889923228590849724458420140175843654518961653842925589806564121877626584278589156059637275435776578676805343485233852526090719637897877058020389411325922943659857037714755419772405555400928073026952034900645716291463607306141664914635064348847193374262230294987192995914635218384077178153750944868351534851657378061499570573917320673335525647234827896560494340274542369579706986538340850552044934934009268702542758291452068175456344391411687761032753825938278848653133459176027965668231006909261217664760023967278437198446795881265564242245822739727783069978908177080526330411864509340667154214778737583631273359919550961367827566755351330431973746243358577558638402640800306863543429118722002860322037698763166407209560173094150948031690135784042456439305625409685844651819850803152700209773771284389991860421284136562815337065082686515045110897949396315920700775843040805142590460768559430199086463721157439243254952418812751040268786420744232927182227957865573676497420389093678630285975546971916424750745295811263610526677650370548015883295070172441657375354062465548250995149313277814238000123655615379877227154734774918646565892856699891333476128690549531848395136655092043205412234101618561309897463779523707851168893966424677327656300461263973132528013091659055185187616019619727801150726882050553518195943397568950022999079626085797111525501498629191038093458014553362491288175251479295350911920928298727940235165808695119252068426035697000108766041270542150774651077587505244152322056193345626090138135300201566874763518906836724917065079472287470579677086180580515208943600082060292285606049923105390750272045228077905002229277106315058105459288366124812856396811784640224371236174001471492598170969531905979600255325278206619328837978869467390302344998334361536493199287693011677204325917578445634913065931278659095974279319094789476927584860421236689847883731292394914888923750508787170553732448198498210864787160206523740614123427664002084638233104047201844390703451089214388807668440294546115871537087733918774241771795892050221826626441386427325885916683658627237101433486799232715952797381411293900717761477083738050974260716561381638994546445067810581365657848190832271002861161474759398893268972874175756599229245454843378391506583773294146465197721273290567344938012698475078139120246261162521287968744741613402437616269310353617300306934786786823991617758170366988626062750081137846782993907745764532631908605833553946762557619717013959430067678531849213295427955641822204714345050058897886367453808032484202760090343151132492576732768970841758736082905199302211965995932308805477311699683643964003477710196722334323888349489325169795898030494801710650907581629938216193738106032468521719804151614498690757677072591959214795341478201397088572615582469933351504472153688158182551316200929579902090468316208098536913244737863715762288198905444855557250588056831440949765492700673554557853832617642123181997638123962116990067609059108575508870291000144817262622812389156597390742022298603675211118364588500926768351872686239152717061885667910069700718823988167344988235575592446742359583158466640307445232775296948043919088249568197630242269664115997295223536373523397905949028896812257345547582568453934463196624468608357187597515120836247142540435564686028195120249269144448967203855851049312864838768592124949737782257040029021397946805194189106951869667320611071856484777465570691323188779535721466428531690058115584802000314415973337604481185958513108028411061146662757565946028254754475849250502985169065811462502153559555886891841355375943671870331552638300157430340981384707741496957100684756868592814281814377507060069193409655958670125572118068292370955636843083886830888747053195203022405936868207236710811048602992026997062478421748931896261854103912315707808238288208001079546534598296142781592105295688404244954383721664177217756509227969656530154027221908442130806237454845196515319814576166037243379505594879441585559508938536147468617445332360977419494047788743688715562939134192664606460866773155159529642399998314492017043467213291367749429338321195185526144884130332182637308258010890353519796077270695535894840768569667253093237587559223231741730365605405219500650231974448320413689890006010338810944318288316582251383134478178786723593058501489543489537973212937453671520938748219960900967612522087264783920532987357779383694016549110426673118473639901026216347940660570191754068386120698765500802282013763748917553205138880912128635691627688210339338901842606662019517570449548775539533915535282626618586448767834093684100850266793558114599269692541626234996263500722958989292869919576686488659803683841386922939564657584950532375949575615920121019505118684626786265045027830125702513493416038543875138997985300670870411336157972514370153662413985074567134488941422341098663776424512780426535683363656401305241595419040627844176912120957435328521585569885434891260477663866721581210889233555621796850605033968648385009583180698569027363782543581920325475532303822515235295473438552218779601099724032152755393422026189485894594773806453389479893478994422819690135650321046993065443768126931391886955691593377651850034054769815308892213290806806561162848970790614811597476705150890177722910656071054936261714305941110108411382990279707426647423183987189549857073861101683470435498256943884107847371102417372356632181896281344563725462668883573536076740739507824169701968187005243183944772065058959820638279984685781021855149648304059466465578218223076422171860147949851004849750363719824118594204123349184917565842315439023468177697639478680681131485159052016031189842053943422129975016709125367939472763374819907979957280394576512295834293780315606671712347476201270457376599091790127817670835834662606713799942061190817771066890852159681901211817670849476640965335265100399502999117099827317628863369220760185607498238456173503895078099531981249099000596312977135690210034411074139433172033611764737773610434762489882159779678829314234198459664326945093000780306797011377309032365331715003703387866075905835524929162221362600076992036446712561571379435340279840763804660375487620656660202868859236062779599336926169930115165644932548546893554454400801866492035958357016239332170468444609077467355241373912177248874748158914828956686732886413861383271999350314753926082064961106841976219813018743525158485190835731698561395709910699058312651311354265059295380931724819276087275461081054702637976685689120473744822477624719580559816610913752650685426056513730908226133294945123782501531843992474633098836520888821496378141198627212630559042179783697202749962181248856258385663191410578172504488879970830620494518731204859616712257010581628702023248306447866649458447145372125845842159634824057333977890540320062306406507798132553030908108929649803226089723164996417615987168922534379799748632548227311471363200340439693082407405534502918637902552559828636023263557698011536743152518183383101764393626385271773212977240456871315497439086432437071851708579747606315785879305385023170292448193911235330299338314479871800001320557240350393643980929811841508358293976095658155127202933935702922298631670323384191825143976627294331962262322768356377468641822879378125911864144786491384749029479861611581424588987951642697432302800849255686114754871549153665653770048946303443059020024857074725099315681651475499870413299177609537734921354900984252556674954203714923447695916269243374372765592905830898193815396016790821010186554436446195062260954795135778116065722909048790185227185666099680980348331047838619990827463947544520146207768284425317926845479247535775780010565385434447315338843371268636247118169995891353849594321290468270482125913540988293104782724461077444161499980456413049539227901064046608655502762920627276873886624427964677238555037780115213985408280774198807574156802530781841161147972510757782763841861748418907541326893478093345485893374521353317794705305081419249084568879061987751859569117678533102551123546285539268166258230786599288786616852788266161579070856854477150898217680225596686474822363410564503044431570641052571543907853681654228049458290523329864561277885184705914686150732239947359692425442968743824255165027565903777035011533769221435754920465658176638806811066405882256629354351651421502205842305117062490205681929303515616674307576260760526683469485078724896483471702532869021476497596552174874377384517299524252624616207148497965204818868193035078758454256097916890532598840931889977344954432436567068735573790258405840053859671580649448050946481138741199538154280036628306360819125414611940098673093374796263369902216349689407073577800651840249830005087764138514617463431547137495298671475352267852450808040984353575383727281874641459681232427596926598706481636353751881291279996484839214889137377260479366988400307326917852356648792950419512293863294450226673547924105200389819343521323154810781690088476948295441044343547073434208683811885866386886298161317638512660966391139761079177945997562807473110128133958092539247039758513172213914584415120487824647764153449925912727051619953294266299471948134606591658483481220375159991424794581971508368413651406297310814808078743938717336053618531537672475361336151739200770255676868743713072403902336249386434230502581843490122863308650219843771656593504419616038463475614586452094558774076215079546901731105802598935438092780346426471981024661613589714621078922503612123432153852044040145446412583126508733393423558401278467240907614068066590413599427654561537528552324494335123642908887698812907174836350798958247634802925456398118056971418918531976650182975987481471274740334114943215125705095745021150661956284470938112724224450747090052217508989178389239310502561906324760863581323705182484958134143636241831325487546026216485348303505507047079273156984713221546874537779443331284219161423989759179360783371733921617056225063658852012801283864337462857138095215231071651791000725542036478231019531212646691727760094650331230725869138586094794127689368534788457203943276630614299301048211295320621757827991008927521565163570652514039332548721783112660792342292605438204846146366042946210000488223535742135883841493483658697058528764549934408767317854929690240983985140535472510051914461503890875379381995289105086908530015864851349265019904762745188501629642274287223440051581257261008719348774169896844298628101565188270390683339534109158519397508969910406101020312204412322036714634600282664181064500499748585129457789068913247504012703862555212047570688233847042369187915787501227267705664732418601041928831569745505465724848459523360621190128276621519619636944266095271213736095090257608310858542135032908564047568972117651427681415602675538593098015523136236502576455368812300822347287412153333103595007436161340384886599764128674964372300391863015484123527143157205296058398549368285344631870047851931718152143952279861483495499147502320349885929505280909987082493710354729595494070546080452787938239396824561491172512897658843669899295764372511835887714404110151595085825257639786036541978668228060704852821164096857219353922822419595271628824448895641253377101279478070449055401284186481311694351970554846905841462164298820908072235841770747225763537288144535018721296477142801065752514596412048801988312178864934025837085862234208438438302310669669606844442768540340712115944646821223075268558245752135978980366121064314494560128864490540272838385346403990826688290212408839347584356959711016710994506349206703854316833808692535710043237988095236066764458553787188501369013271140244742542928441232647268309750993912421216481310268523883422836950955051636288833300480855330615662681783833104060361512393776464725950204724791247374452686322082145152648090592505196154889186304753884340216757954920824487050309777959611072254450713494210081265443248061299176254841773662523617176645412353369828724905885601538829438464782132684255600574591649143556713879908511726047187452461590434964899780068101915653044131583677548748821556012281487817233104618861018158424913348150150865942617286465318779221598450933155954167311962948302832190007397472977665867465652437772246842311508318481436309504201044516798363295437446057996057726331589601625791543918456894771028723235824725862522847403385672079048204596667678887574709943868316823836325401322249547794425949933702045138423300319314754655022235794006542111396146972749532830643912454188607673725215325345089396950357299598857810981482500348703452179134702417816902898520757555247321878820954625363498639434601616266303831717958224089079007549350043692613377480310748574720067462062310376796696579625081016070461612273996926059170882068752176532355456753574771900532271737762923987283262823288615256746084478920648058574155634394391873200233164891201242202495441733757088726293034632784536221456418999471780776870791181901667071620840907698127878352487533821136997215659048877253438508216046563171325360639339718427018035531967080678711758929108118580016050385009352215642061150961366511308783876593945479010379917276498324711710642013578178044591627297552643883393111863839563721083875437683004086905566114766483889825672683956470228505691225870639933649147917143049044422616377475266877294935137879082770340718804750561811562889719690839801305122126979597469942915301537464063922770628600186817993471094984305836904068339865560278978874411375585728095144316912438285987311146829116633075231464160848000536365894406447367845034517920380750625421881290176315616106706980352863224111920669263288707324478915516063813086328529065590980898229921816253833806260117042147099407421087757371019382804925319115318272640305632373773398367742815518386200013196422034683524031019681828698152809172407821262376328580034023820501424504907366022239402208802093832549143093258761893207889762278770352024868372633622901120256399986847417040259613358752592666375108756661029888256432727190898485684208990548624297808464031371325999098305901360780926572772840684394442229305526653313359161316976631354932139070130448839266653661737170833550076466160213934216696837584360908497624507829802506910739983522212457633143871179239111870193487088676555484410418665049337267958281587712650522678167478986169224233162655138289986993593027588622884276972281880369008656958693186685532534617381652026576990526935073465899970462566122584166371950097935732321340496625545000241944297358436263056567281985366706983465136946928239097605736046633022245396777821571458117068917688568635201031330307876442382400152562755855742235842453383366223786910810373183954053876183857158423490991932971674849076804311909380661035219390385322958496985296217361991504643296927545060875632593504435328529296662589554624607502107353026895415560472544436633561810564107954320373814224465665060930352854738128582677512798987882331244458243294131351832482454067779769552741061363623612090928680466125761061968550695517346411746998084390109974770568452838989400038000428600698700575136329612982672098417665661874591114452402915951798460563402610432186821238828123546776139128279924913764551968569582873813832751858779233739409357429631234639294469711045674737710997026890472337343887003263304179748487399419755548834303455841449822378115144362242235192070565482379988675840929830510575306221381246007935827614795255097039063928414074416064455249085558529456363996163106818437252938640899606110596904229655388169812797209741271703709238100112979476564559516085218715521034213650180507860217077410466924945735506848844830664197836429044730344406599948847652429221792909268881817846463948403567181825377749173582528453558686906922202994468925514215123432679860677638004107068583530453518087903903858938775953402333650303527788455302167620561821656389080925835870197701809327810723701474127107024729981061439859253386393428789377927987921551744710667031529074656204582684311678414527991454797473349976544880913863832647957497355780793738966256334480897734654040924640428156280348118451540546478580165608170051150520070152522965408907187307046402309117624328455061414963122904538511419562122857774544938331091960105348545175764116660452903009943032959553547408705719203992803530833370151778711399364326079374119447604271875432531440327605112828489721717179929594977085217510617480458848096866806412738406838374968481311328163901072419891246549768251384368509049237136314446227312708400653745434378278232957264865666658581641780991933854732578998415263024549987901728701728504608953497460663934957346746200246234837837075970741095827834306513764051990797169528737464201691683821354941087147052816097756262571718711639222202038220321925254903768743085902413108595852666556949057398628799228335710025103311859995036905385063056173061754090865953496219724358063310538679194004293728651563293161649741355421030032751529133865997313253253146849338355039412309973872750575895678300278296942653003747434135288688190516330689755397221609717264669762979263981158711921758601647589433973174985424984109645946476216540590840158829315462246911641215061701854590230589638370874585515860883879140305936196526569314592070288011297165548694019006715471481921158618874762516004880815544189648088378306799271427809573398955744265276484510169375366491168638007593865030057786730250320340953995551279186326915456153959791448990851844622215309491562295487069121810665163120677199221441079196009315943033080019827318247229323743252830699875746084825495464542188952059192465133902857165490966614718474363752472727513558793668912008525393934577725225153598769326867234586726321090603846075284819251593501075620926096731298436138323530306957598000356337521180685320318435445053619953018886018130283518864859766353204358037204748154442281535716465364604663099042366954276031604034608463330278782881969004773087029008346213959000810372850651785137543713666091155515473628076237147654399272378294727532088526562265949312846941338502144625928506982883365020516230606873936008502401773864420987831219781403386644211594027379780488743518744888685649629396807824964675672311540998452525958608302502996021980963528169166479589937149059679961446090358311417286262122201638334253685532723406364584010220665655687472780302769299456035938943748382406358756338337375990547306842868648017409826993816455475842309342226748394720034467340163302119118294351282334709310121779519501559865589206391660515715922937039279844404295082667858895382006790789750686314141167670389040891680362520461940619692852929512139300995624176844551825489274380422256113384871279496339708841166610784904391266776525454550557197130176790233086482520705315244268256951256143888277642082704000770511939823202751988655186634543931726362059328823337114470325009736092445987873917212445903844804498571249332064752850544591621175235461755427138005591123783230099409252638157771065155979039368431252166903077211706478727207757754820934317641763799780404021263379871454918443013468039065167675864669573749318504192315666845033224174825047374723554354065058303643287886868324233543874740679708541606729143050693600448342964420995110045235445971648745310775373453697199963899875478646354963125191159120889015730831746944348718560380340655617599145965428377729038102855166976144539786966627413779587311704610697193385112342567143865254929701618669776776387375496914868693743787743699307927710611709831250578366372491855297910819178221127214712752215440328917463459946873229763032487536006254186199121054742392264884141314609821836775344071383720389976385400286889010596814821449011629439749452667038684792154772104432910709721726512225846403268037997952172585239803845541546382930831887444208668813165753125209123591746673468591797751251878133353013958743973493903910342000045107034842418083227810030977384955163536964751114943765191499016590940937458748443193104025551481552302936690247990310803669216912039191331999596513712401329570439638719808035508596260975902064749213786247571177071464205568239978968008429103125532807616163373656342835297452166893115355844075309022843468557498507713828729427025849682859228384011808927583776059896560490737682586542268611971318779441785179415434273582113133365520599958625846505171557117649689131242160662981940799640573395951691980817506712108107371048411796707271718838128500352839385662099012673022167799377102081415348959078272400847977407507574245721312592695990001935467885680287798715903300180064871166989142263958655130425910085150124401238515685562565289638808974002954863508818156594194485577597051645230268948680131528255090563913553726486191472702076404181121685525909521130811614059906788077926013182952534513011439566915141478502528817234110147979148498760375092722144607746123622720600417605967255973344362035944731918504022438915387339712700084964523123024928133337426391159325466168357939628860012359006511085988075433614750421424675636935825882769988995698763138240868882216366537525248492412275595469788618372164649645926743536010590412916407086796202049322219555328967661419907006486940296720590998618066427759222256583360153997817736219788342082274122608584103296204802316899281385694330862990509901235228210413323174253108600549174800391625179267969716294959571828925507565013908848547363624722779845799291429425450812446874708536361545309961525275263318731167290411001183129131939806818038507307207876711698943369517855828303908868945764931597683187190657761234637731812300125802162755635575873010643612375350379135082804415992192603858842776155916856010882984871448652565070359710263184859929431243548910916849791453472209540893434593411848750964124810883403726523182034625036777190332937591224325559793325939867942716373663568247430475336300528317438239369206400640980196802934967431051322811942171169592599432450896436474997346035842686534580185848937957459882035874422549649062297462816528917337533175982776220159138689092469178534473128195695025998160423155338403512257450208588002113961793136597611606950497318043283071507044772122461281090500843350007963220073124989926609934686405391375897117298483700653641635874631883254938140173363809894856999866727735044453663722152730935066249290358302516384269237757546693223132248029294371059498149566600960723366652512890075014887878319668906947247529286465011152960174682395216463657644977074548567357723934434472691243863394988874081977068528030867654736269319166137469445107117560029123744650024421818326737811400073229807990317888698056739706543661197973340071776275701045643102636217415766940136325831006255035677079965602557001179699696808478543886589226438173139337768829694126872087616129526612233019821151406173735650716455985588483290748699607523529491745708440118127326215975921810911396933044987518495246014966131443745526200788910307152368508156983277870109751312915949478651782717688823984431996343619227894741777716745805012928355766523841279900446895195394653292014532498130017832494576685693544549799273105982188122321816555883237219843042071454332876666943517471357861074137369876086933183164799353041210136626434617688928437468628533253788771479077218945932484166511452865754364749323904726809482992105302593335093713297580485521416610317669827602065161109768218346064319477862773486373441981103046889834790662050793230966865050745399181865498738741610122827015744373716959145380569785553364763889993668492458742174636880403758931862635271298922378279475398689478156144067116613355207613848534077503469380746017054886813661022112127707072786243573678718102034862684743482698336726267368265952721444871032953261980160401073323842046185310426853679982919357779412314059541318179836399399349874078711586235741388851619241537637794569055324284767426301607643483016829151644520712115458037819572187226064338402972937793607613343781360983711675830462789500292724022941464741182597885168690972557389448750327663027809870021797931114379840882276016711874792463926131963749442357918571909259265384180456944330893279250158471909199296105129166373227529254339144715440607606979928343531807873378474078226349368967425781794228607822101680262831849813338985014776451078815212566613171620162529180222681449475893088044649675868603933242221656204383161310902620837361795537373677678743046669802357791503222444164083352151739476445605709820030262582077054088559880834303848777459165771807643593502719270428156884012158325482907727174398371324015252517547275066418157682493534402157967181861642151381492711683118843837406794716545211447659743568908624618767372276822244740489027737518491859807489181678996427159938833456186023727019755953543527367136909817488201521148818313688473459301806540018589306995838330505785140082514854559418809704914274817910347623039693131979729608579065548956768880862994452231076314060973287124756026363957990911489769281751394292743052547010329152114859277619303562952084141268182705594021104597379698300051682944303867873163071470531131735226120716237172884200266871570394469658147624125124052352164028917916094716471231252942874823632233392206013751858189263930609864428673656413471210453292007165715035296069852561349881240071886695834226624596256255138909819047590456918503333770975730282120415493258660253045253017612763940932594759556514094357525537321888373781749818151276917693614652274506315643129878871378207681741068149650658277680756085247898364033123026749414320735367478151555430196953788675222677976244041882967471898942275926167748985853532428521154420215856804927076090436123957689643732082216594546631429116402570127819233955060909393116097218004755717067244086479173049091501277836943165996568542749355939415708875125836221712366970055843327904478451593084359976198738131530425758710870794833069045428408413443339722233917957309915293685101836784838009816278909875310053914910357073311321465876673480150914465879189273933716652258010532415109447863802186397430001380050636788313196913371484726710987395552269968313023508829461033132169951884761634554322553312986957799743107539213977166726739284943398826823030482519604503934689828289995899448051306248548014725830225088318698647133599327523525414264206573094663854032968681481165941369643135630473150601650359121930081496878109863274517574660161522533485349892515634372298275694032966823735326363134436812806725258318646018257495442252133624851421740166082483483814994352927585264898041906691521158984543824411082566773041159856061626384872486564972168318422775593099041509437521770067504968208375525799839182788575071517391605463067348869479124034922713465139705335316814884957750732867809309688826972306653127169733181968509859709976844643695209131332998620487754370954368743605928726275280505795790019510477394853995703895598781253574140367573011335128136579832057374202936643054878029829984941549004990490949285677382848318120003236379656572724509393012806509633668970202036491288552219257097416147460602716770183721712604730067385579997625267455330425431968554497453813110436647866305434799743580457651209677387767430713052079357355280487859017927992215178200740704573024808523178585659435293148980095338481068461520930569804700713545925567327554138417987941307011122848714176955825965955302218534762239218854432294196704282111831586307056411157273396129362506348852827435243619930853077723778022715631520870278350032654104752826979956444113416018470878011717057527606964254435209098947506553896444693676816094193206835987685188143777779733997900920018572173894758577066629094698268334114895403517384637124561622496346288100197300119139364768348450999145292244802230731292708099504141219432872850313916842656443370366616323061587978725488011873151627775621360426322928690396961278873452777379405269293740819801590764438613228762288744037420789183796448529616585119833476925105069803027516756540960465153521531728361816148905101052169351680521946843511468991566911579453872593471080808761091474984809441893082683074639798455959988195230879740499220510575175110423006631997697831935861621588276068242104188009999349701231036167885543119532495754903124901132790822984491436799658674042942325599068012882870844324915928272867198128077400158171678327465304095293242382975886442803264031481859245886127660084579473712433400456015952672618909492718087343897033594405239318919544029048102598659454276091695559774150638701110833906966034436564983555994005116960706183089576564123230713105858968776004539020620399252714348166818231655991723432795668684632492687379150265438222160355915675638994627411211365427296168603485337766403983817200419556791735968925010885028367188028592698593974583916075753877981017395563182706069483599473370121929403801837212717314292169765559621380578276723155908821075491366952883091909347166119299971789966838973710274331264889905037104652032322510826586347595484898839137273576479542059712355569141857844846641981815427642039587704625369915745517216105309468292407898646430807901309157559001918264127725885776861411633733513194806614269529641428083854706453493596132909282227460047040204689000539751104439922964966537505826702998177776045877674052689624731602920496027780821564363436614604216055608819979886444444932191023881846410083281372185067336885581357523469744762781060140851933055204909777723508277939884907527146906381582678660033812850012173402753779847491398583152034457643746332787527825778480163763043061296866900947011067790903236591367098791413741782226354957549042394086032866086220074016646150836588859070066819876976478475945396983965580698991023709382151327058219572491302967825362341958218065722812508207664896940019812978685161601461603330950144148355312025806428710677925340945458694477128595330849350447869496798344165794402083062558394606696239951026037410691814956317197199466559028013507831423521052987315749925551294664839474941755643634746862284011982626362545576973219849697127962676512186155031055554935375767254350057075488843649599527986584161980460234073492709249565235454099862599517810795597298198846152402001982170464077671586603802355458338859419583158269345828838207990943040991598461041386172955281041181462233148522071156916504847614701241765008967662197526784065712945293596852540783375417364534011578269303884227033093614696001499742818474343403469898996334723945938359826395320021892671416588761494856833695462009751197930626608018027064360839605686150300263941176009504927725004191871994927131279485479470044590669670303260256640809147192669135758511757604227744821703240650366880626244802785609951904635474953391989329733998549229491254181414575296217871219289110882995276603020773102633589469909331139655809404801146889510912818481188220539914505906096006076551110666956385499870237335294844563846054413250508248452304873977231487638793111766471338745261338839564333449735881114632201830639624547874436616886136937599916172734134075460430533407001873979650471220706111018752519250286980421726784640489175738078025283008477695539325331926246406779954065540280227554593615879096603857862810458116046672672370624286719623374062486092918081090128612930729415132740198239668767716972042810237498315245556481552233027314462111275465089399762714831945282021019029281990813559568409479278202909874278365175301764881265099102510660719568381884088805543697286082347539255608118453677297189860862255211917283896518788116073337205652219061549159885720826174712070435838407962738284794583456022534441235400519711333215006323266249993761188387444155790031743261428052273911026904252623188609136609924110429613341090712955871591731773706069097573186462096686895967674146423852232862504450895710819889258028058921925938492967639259127189155712180535645710216229626993186568471120383689078184069334181963304516037779674476658842751142150576401671171665681977786965425414692561142323496809188987201756390501522942422081154907258427581891023627353535748186447415976872123008805338046438232392198308814249623939370339404744500759573475162154437971131731508378011851980881617150430984375052416986855805809706619266876032918627186099350248264229839838924390243894627804129322673235458530464149790686647178331165930930953514914954363115813446415458720040740698674753481005671267185449325791170513968891619155518599750952834524456911965330836731378520249986880893672315995557418434987277667122224431742200819129102527587391954089201880812577106436301371134544202267064882403628294412267088829988376656901190873586610937412641927271880401620406749562324410208779293577135319172689922313359750119526951631243371255021454767020074065494486443456580533148404694388805585603952406822257017554502611860427617989445923949114173622593415759467365116301451650098293176974044850762053629633272167568868003230593097185119306595374806092477122524501207659341653094626746449681444971232870183469161575439486833707641890490296017558253751027729420812783953631909907915821176683890144170086325696491481476563884413640146748205541558918789066709358528400035689229531644923875569264778712886764869762145546140956503660623943220416796021542946028886045077063121665737097519895995673058804043964049041965631113270195134246689507156711387562617565872234356409379614833671687358269102923776951526062316768672169547999288507170936975365808353865663504556080409377380273661519562549399539489453211839057855819153306602506793053878118860874334120358827888989247061507770638396693260940199035526361473629799352666960564996939542915479022415248693942362789615769347662609381898964539690184088636500084014143694099491910256169951625794976637847723164447911063909084083690808850739749059017949947468296866798481111374946076005700034923358594893180467611957354877262606199497076806523295321452091984002243318316095295980218671536285315470447883821560893755639906036051206824078954079158129081654418125596192363895246942948878643077765736429216429671540839401415606387459487301927909388749885344887847375132082071658823397943772207046518110150193322894805585378386969361400627307157459010882877954338851825569402067899139401922170307821656213225473688238262535650857003665955982393844761680256438525659307084644782842534385029372970909299483363980778105615682997841757043421229078014538022184892251780864819731352092905485440424416125272791134882705032358748030368292165595007964061017778260388673105685433410599912804592872669966689817604014112602020531834373295465180556264482543216870350854587576197455855477641103954734741914817097263561395878769200017319066523304211381143932408617149954260630191227590364923623715210203663887053873134006288581465186883754848063108452648883566568609287282177472427471774865584974478402197149349875385352777349031815519516788801268988764392197113406348754974096674140460412483879160815073823167029346364250744427361487990295891148323404906980804725382477800376850352582988847366603822133877151976240837831005015623775034534264900800114445795245571184138350350764176984973424025181733340128981317461924462492370613258563675297063332090111536844181590933650585469960005624591595553633725041059756220590536442333682629968401900570614531843625964853067368653042188247203496954094489149369529207196845285707426083805298382724180637146838172181034150736055375322290887642027867176655291897935388831340546309878629761809877900497018935874949678100033309671526522493069054063043814418414317364251997016212575087533656145407564963387098043183305868600113182633334804036649038026053855307054980252744012472991638774690472506239064277359637483346481045216426073594683224454503158739383699123127787266942655160239828370246102610467183498061409985175275580987311732747368749727336063931057926753209155286852912624378968885239822293518423167276009723013956003164030098838047473660919537898776473515917722183848904898239665366430033556045272759845592056139770775122502359365193384399572114242113882077391317365957460211416160552757475645045194611237492249927168020361894053613950566614457514160898524230388159802748215504137162088046451280624538383407473405219501712589966456311377435595089629214429562483584299532452639085191243790147493534706618177409644595198373385555287222639365707607298963497796999192856563800773559237115567158422929175950557216470912621712370693394607345643406611607581063543770607794943009051326772525845555579337994649321749954366898625034572260266073765047177416045329219930144158744767472459303732697180967730630298492818161404343449705765849622989576742215758619352280810689066613633360822381853097438718403792607602013292971192224211853329501861336981729729478728126319372059285588786915494897975930164442501283808975100458309442031817971993000631172516289965463551589924431156931241496706442736542012156731836794417442655777367274868871717414329231780275514939577628411017563584317067384802432317063977864127653371621773862051702817103229792360972089532319247981858437900993513642799732871015093275285343906921382823653933504994156286754040072680170637415292486826847846637062136765190140910115913450009750222077713202923757454517656830402757182349778511533074603315769051208859637567259456963492942340031627536743929403933582047317242480931475792101388653898034372695326464095683256895164308182974291191913138267357411837473274125693744298959824549825148150168324284812845294247623643326852191117434103567461675195461072042753121138190581568565250560237534999561740161413284723958984793521603088962624769799553185756651014741478492483744194768794210593525257879545066628860916233700381765137010035328218568457500298800569381251770904365755546852831567160521359042956749097533665375305758706079276422981504686451491955305270731824982973210694989630296627270716600632718641072913367924490445899118966449132515625972512188127350777921895030287983071116519670107145894361748580947541504835009418041051234314354586236788844399613488183241579804607296052481084089772220256042718763152611707247879614034146917595897379057026116626009642178889733486476672313937001137237053637601900096895016003617903929880723095023956779063594235770276023187985107335892838901616739162580811846121516291560603106656862708657876533447606579774244419532229875804778689806845478896572687874635751648841092071735190190031664806515653461349746919682593897347342679731524796182290457795835696633749179577677955120103455292553070552409869490937830870698393410297244697159558563716629150065782669294775617395224308621413535093573229546931452389579980153825425996000019271716957831094593400397380803826536423248649507218414337971336894540690194470491882419284217338523829653648017414574447070166929989848946793827317485966093638261962282605159010182504305999642962629588137195637204612559086222734499578344683098233026139032427853133575179399212919827947695423894043969515316552762845013224158506729987245420247175034091880600184265345720309798927690535713839366061034755153437942527037682829538848939428403200963396953772183670691193664962414969443969466336957520709509429679257968605512826422092164712119898007228622764518463435828995644426112020318260260096170001541102984650794419623262220267150971568958878525303551404808005748875238626329774890114685144897988611082088524324401696989402527704352396716462887740448183080539037499567805838914359078886643878863232822503333537388791329790753334948836541129243583137191827278929408768727771191953221824923704338702149943755084961527507940631579076798984690805510341780825109610707691814424499910354365756283778738648578148713739911210257967430261405970543759241680371648168528718978258268182398889047080282347477396048015408051974051744722752337191310839865711608977527073610756372230878024798517755546948982731227225262555431522496645785623644548281140519168063362144543367514327340975585245274947860073558071803282446050560674871962109287005994838178746052313651972565624047579209133584578957279546665996389732566501266949480093965324819664454252274112365711370734349078026461043968286589296352129026431488901455585177171644364524077883570498891209927971321887483587882391914394653752001044444897282684702608592445037123364699953191898900706613901703018422109402240581069840956501009880775199231476163825214288925013620053411193284233022425863472713620385903045050283861364861860992093548846457238576593235301681018872787943932949432177847231877058728623373711746092796485224521241334267259829218469664716604866671207642882850684531683682896560294072396479939392510319091041771585154318702501405281082470205168390731304058622701281097442488590529526890555244641681742864071186714842157463738402454324202206966008351789976551439851595738436217615944806926616282219822267516184999367527242823451709685504484892163012006146419339248993581162502333955588967924455927912212068670904802174334522511966705952289619814661719153639472750415839077481016763602436466382252983816630502369404898238889629845609549337317534885636292221599343960320365705698133232495488821157106084883900449674422045118037080840445878733698276118877750486327602288160890100750092664670239898491440475057611195566664287162975847075447298587324416213778235411654021505687895845126805930830053752430440367238040648100515481165002143077176267529198801122915040032816128620346427301340142063896203992889807851196101531857554936822491693236090620275262676045610251887204981876988114437487219241382169969432726385211360187674893930082372401658816112263052151951314763097981969104644181595901645312184882532572251029529075516992982687677098562357761614283110994942537493018788383766451983494100014636133337069646428459030803376599013900683846438613538662973740715761351317269559784549047643024381634831744925421104469866385067771609082471157309776164520021307479026393889802503331965282655271831102430397296877008639643422241845624584830145563771607008524554239811095294177746946728780377958856787307092217728057075071934372229037368419170773580799062376341299230887628998439851775498879023204797513947414504212162515686723247352339782471594234503728060549388090310997686144906567012746074529369667124685633741203697908690541655152485932159775658737799269535101257389486189628061512410157733688723692806107539791424249670941763715159163693184243706743028309350350175965297646332624190717321843526438106344810675550325036849762229821558363338441285899463653069368869502519262293167757532391384561516101361944758397928646787654257636844206672877744616322861221765019815813059857542513803482113650654974784198962713749858821156405065773545188805933209843992557262294187898808474393748088033765861885374267287771839536583766035034404069468504306405450835885224618026836821652604561712652206014959997281652107156072460022623198939157328926595201108262952838374515274131597302198540050697555260660049154214632101315000367693418746440796445165910228239176875103232024947279238146613081669309216023098835367744620740337926241371125394689106231152272490589254058452436843432730131343070695098177349713231773992920340175856154345890283850282646883849392056606465858449685411248409619587409537546275099090153017294249192416812210917049787017553107771136371481781089391453629396382025690084253039417345857079386274817507068500174152933496083712779930456702825362286860061656874403449534310606049525274075231180909996847028565985362079301993286078596641119335576236697737102177314890473248158433536548842576923456202788739270693286852903231956470549260205457038462997097079811524640130730205495987431170629902153574986377709544548554130230116268252934358235786971389443077670602987990146375214973153496066579214166009235006119669158838087759516425463573832261827854258658553542603311033483868242188616928320824869307159795786424217058306985824274762503438003696123051299416897975776124248573518195397123909999468860378920927011847772953520575127365816779469768419485710447764768623322416395818893708153894653648879363294723588195313094365114845182503987607287772483926309241325065765085243416165091935680380262398595392105924176320529447251894526132649176440968288591270406663719928991944370001821684445096099024517043995666253367039358792457933528319381150299444995239000191205469217315534161394526034815039499337404083032636827044740746914352602812848897594550028534620255917953425015800874150960784446628448871811214318605155307491038048547760540318616799313662704054213660089492878032235571387583978313158819777913638203540233517180831809196835521473064336644443840288259042182688584823835790685483196902072248280318509556185565026970679937732813477805598837312552077238250652979344155584058158034636310022541860291596789015634531431790029586979210711550750943097946678654371732348399900959795778666396844822027754258855217080532499100949016206370551067951033028530718413685859886535998268772193116691906423192486296029361393039853905137046940189619197553604139863530935282591084418205336471508542014267588483211394861830786674088657630193605882424332513681682073286871860933182718946060042378296795798901983538307347738079872342369143053010105899696253714514807344169554418746799275308664235136991392379538117415793567388661483026035098057570570605560797828939939534557399523778899994663549464562451609619137309070957867035418876395203028928734150852746725235151183503464545509063811875564352895364035478073079337974962805907239232123463209109225602689397752497698240583905675023410699749887400836521779082653601105220436790642505192644023552039782119665830502898917835978805831623130851666166719302598168910229532737010685008624768314690383221262120755517944983050110719369654986839570621148135252297169355103935331707487052734178441049323131173822819369213212797167758060707715303076626992593840888673918774347665185438654455761051365135712514070288864958547435724083467328812773715575373132754462986749331623970775717368400552260363726917008344147501392450666832601549470707704309155612759304683015538528659382274405893711282807464367436016679652008356009026697216737085674718186706570653233105512613046400880336438781867133637623531423036222595391188462931467207278777654452760103017460573912820632531837222543549987519163819405238261949842419127100001232903995081716355429526189130716604348822350367275564080481402407701344432576140873722912874382622892332485229521751083969582963493048808432868438643953791230243813741343129357765381179229598673043811083891209910470707431408748323671289298244221397733349817407794163750329722096060891052439803084815204656140234527826971053289552217228271925105408576246810833049983380959541825026084324092114511560501124830599138774118174573960803302466622838462540297566237882951968396423136782659706151311011437491750074476820350772388198219334607366262092280399170470611535919796364982054588226809152143686138098309699063086588100651878950052757194892703309513092473617955701431557316918594281038815985014563996723621351364406472805093158799865676810752855351771340169729590171334936983243008969785672218850028955473465295865497128185773644069456466604043928431357433099733407594513906183448317546080270088728533777714362585621168487231405313521446188960498579448094633109130597165818329430669907604401840472164052860141157349410058522629907810948981334017706691571749581873415988893270238372978457427130447677891786697415007072786963354630824971232754744189560782364850292011687392735372759172164118606974288954472815725827254756256191537255141762720519732361946597591895423709649172817902129258268180572348133803629281436771187625414591672513169543621471326579846205713857422893536515138560931044126301237773496618916829160067442098013830092968999215399513910825911359162649337735552719111615699826882558998029630261525596428015637450532494773023812033869290556871830756804499439589414427715593077235914478273199930149255151859587154297378494337760038051990465666391724238886885248071494500945817055503181877222007868720981801830422653866171317054814219992938750156287458947966691085920518430297747618935319023185209059487650903023923147323444659834169830022425157881271580601148933458662063019318787284467975188390375255506644348156060713227293313312225915797519955847919013164284571789381324064950382026233258861355571114988676038033683618856082859710896866246656029444798662157830752523970906889317417387414166079359893340231827036395255502408366278135525194260018737555294593465163142327764140578455973425170397506395662840106221889100914725259135579870350019337161641697893216783518480089127541575623440876685527605980841821124671813272547303253896133370723463773774027140260995126653878772075088681103938804868811265816906954408994533784180382753357742977326434270700304921214605739978789602228214548580378099326900487338458947448743875447979153565964295478055459044901488301324866136201861850557523956978817403905190924801838755932583510523715110982616126744127092208050622737094451721091413168833292706189463965279352281581799612162999621513157554218302277034153101426247690412325441146659354485106714729893092968645417327752771841293028358466178517502208148564327377995440155336318659030303397811274138625650510806192688236650747719810279939912566045020267632681722217398126598171727686164729513406864380466676358724789205704440579079592952373453153958045230297980210248832205426734277724596926043318956826845383559164444067942516323247070388012607574623486155925263370690087383158301485246486758828957738474127237693244943133986466545221931913728120058567074496498213222936168723371928016328148098821747127897655854342354341562912858123624460145837119114873174875294072992346317800966079948088990638005834221586987815034998487280189168088368365732199384746104551646523101933150149633393578209047258008357223557526074072352447933645440003241753371379481052935426956275025544120441618130207830305712603336812037564786753319314344852654909185062764082417851872779365243677805712085518653216281406942054357814742750704486386599107030184194783414831067866464732531787342464616711161312840803143344206418311302221444612050020261399337489291826269722395927490092382818304961933059133044855634956996845520783059692043044944980453100297117617037287496444352254559464345854284515929894244075809323670652001931739993544331414288841691608788521967487553099413516094879168686479438005107511511639335459872733880671349422792668675800076859182515772756838870026848586054076895324303408380467295133866842065748561750097222150493543818546441755950911126827017465955157765602306370230280379553631583614325507156008263731020651728921505242891083506409607249564616014357671046049821397480520166473170684723081294981743017014259880805250811101654462174126683099022480683847074678860789962946823220578648785863131589980726995010813166559054590436077505135502427946533731269041406071365647452379416099261481483123409921030606958212696581665378027831609232403230222019416359349660397681842650498008378842866907768622983653697862732856961062884454665075824020724383277228617695759834095273413139410162353823457710956774170239740067615625600223243950930071433718276035369439515192159861283804226335098056255123556109864337473023555302911199733029761003819349052235080086881423819542692830828866320157963288857944281614992229278533524925381333516929835373223889654805203028078265077674368552530565064962671001083287548403699129343933627465735126592485229970892733961079428037659117431839894817198614565166051474719023140051471399281263711768864914786682885339668684005393181359739740047443234206227441937288378940976951162903707619201423497597957724094735514302875061597836008029264361327731575651394467953500673902624798695333907145360271396577127601063356490765159844270530432611011162674263775483432949422951123754439153453746217414796443726090420011491046824544831435797345989676525135570639311563176676535854308897389429390139684548787580517324361055255446197245062224392808174424943700193207696611353936460747509614445768120579300378393110907106217023697864271333764470688433176558445560216128960816184536746973476909936993263148095193438023566776936152676465059200612940119550545220300403226963863748676405257121605615462003622015744591774170631640485934234629472714771218336538018321612202701268109597068808316503453637868616679996689982870944918850119369604632109976392559743747148875275283292663853999371563937142431312353307276795390822334742032522710060503941320085630027577993135142556952258867018768533458215303422392606111853442988621604236067278533835922081927954453959820182144570924313742751577139053458923447326720499387252850487484141717572596417359549511711416695544589929522561354773998062261809098477858223683680880977613791382242761502934428813470710764713908683098546605913010107468877021221541682020196642150738383439245191108272602542057818603306988834614053321810014515413328222798078513513579882184867237661965311279942063181946853093285053117439152918308798311302661444726398973376228130733261101202842600666440114111886544150828261398389123115263290771357357569656179802119384080855588973812429908532688527583520240326741686077071545508385010936885076377699698009349736266526355020191018962658045941436192047814302308918051856830817948991932456640887814561401099703437389823217371757888539147030901485198904336283959458421795322688375174247044330443548168495848135735851463927497416591179540403169417703241482576037836851093476696987726542668782237830139654114411729286310755758141406148825397915872764472134102990801547235623030620186353548269251756087867930319242933987578244585064326936051023472859438168940068990852867445024047016093418174281083099061831195215739531984848831646713588433473307328706818848285361933756663576390600912047593331382697983543276279618949976592521817067384859572540197590574156460242775402486841519558255792187678992748946009468697953689524938674158784827964472996406809558383707377880434571238751998206811551677399213028158162324591537458089953849799190282389872163943118219607549427119657229151763200724653197961849132771218920055761968045050887872521016377595024430428097858213806672196844251369221276144147467762489256230758429375360708529608856053013924697992137281669616017431810279955097812055039253411135039129925666635217801772335199057832063897128869459831617515784975363329481767443996926123987759981396631900640984683513500959269899219189484442032213579175604395742633317757000619251204333292869855116894603222096341092486329488042764807969867578024204084366744267821310246973055040260889566524816077554831660932760388959293795612193748968403279007761425987933820966465285608556293375210180871440523640322348771962763569551445477457644750245147750160792305943611142780544223600517971512883251665916346763795861710999831223629289964341833106617617215840887766345005616480599323899069230787886375169480879919769324310572834788392544382153262088173560578098429734721308634607366701064053654226496222611122843205421600076885684891564694313988785794264565367884669166746799467046526452501483497745978604358285880328589064404018389274788896480798058903643180062906885753822137693610945757050859377403266024017207204888094718378222035107920534364511848302990069061809274471713000447887353376823802194284506271339713194119782851248027864075902245935629316979429849190853342005580773243222142683194799300433850059104529155270927030067381082883705022375879173522132832595547773269501778263065589403774960598496332734456540547414911605566086003017613409482513357249077772960243211039871023736270970347747108524279969920357681874066887195719027962369943017614896801868308821258659688252169736547788107454304641721009878487842639161658200638781986706210573627550872834582972839889724022071670700757519139238915148593718498840384992431523335038925684880045040615865491430656566564612008039485297610471006577459508782965821273850433184142761907244070736987463566802238411114641674375950102193532907060720291725202500978257465947855613392872129044140472294752621854998873918204526945791808795136054342949300336543580164642067175099391600708108805207114798399748946705841177146648860384439415150192084239924588589680969775637413200875087009506067281777462999243538604485899010568050547166770160894215991355633592383883769474526573354043071770697741397053247336978314520985206557145564846530350574630156653822889411760158624692561286700305062156079031655651127121580782142475302535430795824778825180365189570977105776171673911611542070500241274182141609726265787167730763729286007204191256833368660572609064714642236453240219680894854538418494804443528558876374181935832018996100817029786466957264564669249938548511458227294742047673911608277376730716659483792665504954845856158434897507972422456608843928172797650422227342190336827894891535885684440636965319020124231631782410900866900769659207803566971889233436213806321474954380959731209874039224425480803104518515910230668129664553157180107851751512762403233154272166862944515762218039780972824919226359073881082688936978047880694838783502257242891860436117723651851874326968709383157551152534158919490452003071920646160034698039916436273856381635721891850740120655984108378707296509764196238274905034680720552883451749167776838903395935714945105593885195992803286850039866835609365568705233733010778263902800610640660865966742962069034766557519970638387879557793979306691075490116291747605410022453216792970630978267895948388701065621513301224996988617811951364643083359186737121247935742259862168980122682735969613325239589631665869875492354654543648770838778748528341189415787003618815621368216957627089663365533357339811499983602853568637504289127353205696399063945356108579101678700735773030153115586536198646354640552008862571838472941835961115936194650612929478003461473275100379101602998341639345107345756824973925728806542927737696718363652323613104097575190008127299717711134074677528112185598241843806891188655164028625104879502582171409504892675432979453908688449913166314854900762937102305276476416150176180091944860529987320967994891368138871412851903720567230779168277608028006084621027088509029275390359808243027549579739499883614892953111803171617923178243316706239978156398440897195832461655005796284553607571947291262309883381503054902704986876814449273376896427765766759105144035559417374017516007715799138690042251759384684650886290401412116882009209881768626962910570979178698886118601128473494297245183612723123316716736646158215271707221507392847982449499796395802699988108261624428531231719929123836962332081956673016959034103553359316896387844393025452473989628104422387712349947098459356194815402699449110747602835768585534036398859279945122970074461903050961776236132088050278506577689544188664792498835453760514993423502049100646147789679155558155929568274389097011737744948175629421015194351347876627319339222925729113869703030364633711561202462061059717034733791092220159349334829415449828485173683055294891201206604432200103988905359973644061586141435109950622867600448267345190249712209707705790497487936344410953479400854796644742589844638500525325657542304724240514840922268573269188685508738641753798348329706405769789239341932581428589794601490559629898484883271490199508505624827854442740211137389344359538229606660819134246187700332263231311063642946432279252139988989369542178859511338825604528306027997814007640656475954724559509543004774243854862946886171089094973307672203279085541963407918047998369562589727363867643189706828891441930246673626608588711143907736585007335861894786261757680599763216203040063970748119249048698040360335579672643330560354640230257607639240315395114262136755813907968771599779129825560310396913402170013291905199998419480970491092447069178122893455474491736935713297536426865925470251192439567458616144185992068293089337020525911171995127621182523837635392937817144094204259931358524948255498015208478543136245834235793332872467937525424671161186635487986092349564873524801707471903977284408397288358378243933487133343449539364006315866817368961511088999882937600340069886367178151733085086513551393880341778426668511231716890638603507944526271709864744296728281481543355106846431786923554245292017108923050073055817534549796779504868566852056715527284524547014324973551657424016884241196781259893348228541118596881644889149130169130111389145244336176850783586900592324890506318060875388579084027570707469961280463321048036895083397300320470630409478876339392147035225269651624533355625755922348123964296427548856773837056885512807212518721678569917394698092257034182951949759929698483933870685834033586959057151331522126133344065795622924609601888938741466321878245021666914528683090138071519290881884385099950503142160473851525913300868880205445755276890064302302557129693344093550591647979474471123879987919710019351883724628087049619323394403439161108600666480278971419190781945144450089457814725753844465889840674879458432662459136436745454859028995572148807608481182853732593063339933250433913865327929801721423116241387444446889050484766561711080983972471661242085250565078739542894279857430750398001168613097346784305176358765494745275282838842282507944430291699020125018615454518543749802650004441537354834024755596945487279109934238203869515759101684886945293581944194598187021231799450120884677425647557761792156292865168972285929344459492743871320615618121541176350767502133345860457114118835957672297518029134721721815948508702119419397747332239481120970279570054216368317234322288158596313908368182233703580476607064319540544352448856322097919439972212809182819245449587683541968129866398955994068021954517023400934713611770287707417360790176373985699517375890923925755145149157601368521938936865376955176529077988458220544855487389873995022301672671572451309208758622769988766401920144988329242349269027656855288100943574819550312678306855652416085940781522143499851236983108540474933990587579586000919010967360142370531364699364308540231651474972238697336079634618595238005424601979304061949179447184223943473474365241706260474109389188435290641517328563124768114341405582516917264279948244778439786761081523998179218977127732621334979961101468882053496778490098185696036744775201173783030076156702723198377388469334096477329274666622083744772885475916803912162427622503257707162221466103281496627566793786416961339425064621844859749962087803193819166734640377219277607359222078293453482084708678221463402543037183621019236801676948582756361370617027112345382405066723454601886039835292135749239304782154093240237609554938874830000178387280390577971280670698025741749351235751104747943943047236172901976429379925336054399106435432339270660805045533588365400924692648457542378653752955070443517624153973689807415975195627249230905605272441288659052970929176646498204025620829994387757794791099139655218159622640556396224240611642941969302991233666695334901787729457799583433048673195845921965486489566996879066225932561914675301532616176224312669791654981151632790688128727906848009350439874723693055824794532989510192933473006837004255137286260767283479403493497658717129369570861697935739505672199596307679628059802259675491074377738251614342770672742454743059984714410785883923103864339984234834185034305730244182076122888286850553849377865490175157401163200676937901149477607047016165018916548308028034026225401941780358410844329914431814750186507005572021542922702291748676503005082448361068272359650019484145515612572284657713182070513277070783572031172203832071434115443245470498480028824152519931491593342006651487234476378009931286739167718874059292191245347494784544957035984732753866185028943100387038772380966832108606027032142496587195462678443464985932211202166450818405419742773709087181387847710860506918014849109045480693562609960974825711236640361102024495856707890936483402708420456598478979709144694888521439294831308271081940807813237094984564507166031071468321400680727099875276794127449007216241852261511398390981266794995282032000547810196735669315859993624576416721454219967669382437761688453872126887323059470111852993756109787309239091062485208935328540966187408097133727044196668163131589403515727308312212983572874716398455343712321596477820647220301810589086645458679286884950739709232872078501442408012855950039594614189053322378424629623409283347542111618247103249970833702563789654996583913146930551717147332487551816162899841948694833504815800568018150386376709315299882985190226711662308364277807499816604812095843953764301889948960355934461162091350073040098088635122342974353840918829403983378447787643897191917101062463038783189044847798758230373957501163766916105414527455094192003117871726539405173579600274251294545704998261187823692705736777025814314130238849219949234025500150895236188363720598071805206001039209555669228704916287864780392907351991136522243819113633256889215269372009101625849062795343979407243463945929978243295011017897642456444628597346674005943088766616553775187849445205010758774647859308565125585313883602186541968052463353252276339134359396214814480164598702874705522006101375154876578994360240735041854249428014392621982022525726780680882716764070615328096401937956061489752280175469325861037154770974642173963304033408748240043067946966687359690751240114598455533511472016238531730186878522333385984381551833668711556426164318680634606935725227636547056729680322757132413369230595847922320230743129022853126512608795734847470205926620396293334863368486877972202625072425000233509978207102697054954348098647192502990698718016763400928858100504536956911770148910749484151961015585987674880355978557829594117534430636532936250306129462543900076964804695766787431419954516139883576232707862861078175481304780808505090458781213586870893769799091161122446078215468111987883963335601595815262809888500154384305049854932700906027413081683799605339083385591387485971315753592669303900269145891584957785311376419519411615483811189970645418353928849563518321118223030640584370771285589480123131368545360046250165523433918965412448447162090370564112316685247793666445779625000452783257336780238987593099183610882423685766077397466737119554913489957741761748750781873066092686328974929871556007542274262245710158464983185666967893210022816983148623726101490323100596680512066972840793351471349461468011754786691523126835273763232601137692691174804182776630743355794255398443136091292555795658380729592093016356919849850129302465281492111499929012717672950643568232065002807382985623843239465901624765361028397488881533293244812011588682071758593166525532543431587014055656943428046623013298099241650812789509403654156599312863441709120680310748225938250352341427846224418672862794751243202200819711820923709874920089606690169172468329435595808997702825329785090050774907591761581089514559985795985560240688194729138004193414048107064215750150939930265294121899696306138038369459990033633374236037733773979661528860456997764974101097609803995866350873203532157535865232581270607477929740906378677552373183218153890480707066804338203346346698694312886560519956402180989698568175926754679422978102886476054359040936446242570976575337267139150487734069035460442811181286651860537841964674982044350713762493942475554502119738204674727622576433369188970021550101793382623980855854883457050432520365644783926884091010918999406262040669049329518411083491763270984277954238077749115024284697859823164211479378541485239489570650488661295696988127869391660547688780124454667091246940027758108333761463523070803579739053612998836136200363885870948922083331352994264351857204269663375762323341812799777708166257304297126066156912865333949363965292815394494004407808789038195504993749843363532158975914758655515219928939976098897931752745730392596012894613467279380612147746367083065346461680401585695878052863701455360952864865340177166463178268989253047431974604775228789526493505265797534051125125206562545919674938957869012015307622140033692102744835784421740548327510745910913601078839326561895296185466452952984760311921600901969544867731544577512254466496780478113990261459909328970022607170922137604731584627657390594311509494731335773323156135200671905497656735820876736667795834495907409433307303496527276858197207128629494451649309643910298522964079748815349811687871077013142363825397067227278577210466981916896869335205862730688958888596544999061272645203783213654999578147057875863665675630821133615184650260829913528237293801583875675724456364894704317370909304903957737204724919393122943826833341801292117060084373076311801380546448932390312893217242387278053766028117354291726588379910705238028021059830092031587611227745429105628642543073357125092512576465485852446664669052066643276715041703573379846759168084212587215312555974420908997676545305203456221276422541594134961546092455187372967368320404127560680265097373716085811772575066053228519922059959883497276071658524969072568380423075320638421317061416892459142206964644159603047836645708140277444701024549889430636945227158084387923464859944954213731157691329877949380005183315307497512434473803973606465446042363155744827862216068327469294582191220701940844965621739272750186035172984607053953072968066268635083358593875053729375121978128540647979001582520871112713783287375348224252198393425054897980435639746554551901937580993837549965907735298524771970707981365986688079959203699738367030172794884417605522757306875040882828084891356471305446440069646980439259010195086355987113957573877228826886267060601946628840102457330565756871057100747244842144653864114735939565715282715164087600103562229065276114970396984590690214077157228239405614612968740356895328804683668116242589756439452307832935830537036048814339403633010800857691903045049087658145664064720359810610446015547195545061096997551514308981426812216738864468399012666000943904486291555566079291208968812583333080402642504346343539092976895788710878172751505228991919458666676124614855471751318892790104381121966833475604513101039425622595481402657949019900427668646216990131797207037697235732312699441144288206988694826112236689461869781732208899272501832463421332901411485651419068257186026326793739626980270379687127383475540594536262175308396014813770150939397358065594093144612071282995424811492201744276085777837160297667896759047230955128078671214689347373056358199562135522844877055602790282327304999411311838614178290431236711963996822249978410423268794004186046548515428424153690898477512873649782531618539155091912620846667775986010268677961106590821986308689406427072402327282176635111110000098776096801550102118353406714841444145400441317952344008688460544225771872646758007069611918732754916356268254265495150847923629472848257023198663126316906332633434465412792287206064968373168166014328054610821100911238342915255231316071525419739287479482364486919653118999428055203302325436417068687465002031227747046696293588526836129865507817930215827339773134999239226059742620123968961718726487907029250322170897810677952463963261275202259301777296831711542564232265212206245295613851988252629456545349760771062550587296739099152179647122437454029290560246322581603735428491887366359893634228151712619381127946833432247981948482533931412877619191702080245188684746206416409647781482924792109602252652670865409963682737035769936828456586478989815119678368187823381545322115182564657351912089504999946610308608269341061930787364045875297646759368181366074753923315310271363640017011577918942999363239853713933387445094366568800018559091332259093526406504246291453827313413258932888630305221418322582728838233598056059586484540669218333564013364132432722538144045719516249276131677539632888358788394860438295469322885162566508622661543901791443897750268853644841286306530921594100551377685272786730688013830959729112442313210473462274123249659210287326128947062697826879606209981643631378736433385338531829984325299102504489364833432975265224744674048921407561637470453987746678779796480718798838012342027927711643012168835628878330642462016717634351092998035030269803929920263256230306918900094367517735613890367918669015046772343225587919665460279851021572865862319221914772599412277715635487369027412796016057357545224473333225450600237499142863947135346579450617755051468369589034675247971883750225459400689148313429466815662402035347894918686859104565053316596906718707729032317731170160666418860357551172647361574896550603210714470926746119110638531865311010349480750913436898045788108655499438112928216798367426578253431677694795363017228088085765158310525145668444710090230416806948806664412757221706454667842979904344699694701561362083206278215940141707197719659526857337613445528551123395333650083959728240242128948024587060803614944229007352640037011691345793416521005982352481857966680973289981740841567959364943958433060328191222955392607925014641114382269708496310474718396028460640067473736909369027692033651128712524304372456449943201569460557453357417114647159341136939482400487334475427003220291343642853633185981546643867613514691505846164275056220819779341670711352452823538387258960549558032869058791403694790253257024503884137684576088195532672879287493804082492363663402426761023306549540240154060478795066033270001282185527862479254577429727631890772769329285244299162598025526132574973659018711397676555036486422893249605375500124209750599414161025105330699872326053641358481332063345505507567484270124779077093748935471393927510149428576098261694655954051670314523032823412661358859088232649940852623936272999608300342390984903613223613531427595236910099919486904961687617889136837364293715089518295958558634026008694397728038558754870245221275360959233813284513416640529856330647820239710707864493381741037682399613485317826453739048399153881255819017316292517782584917433555370023723768527663406093460871209097369499734116000386340311914015780582001292051079612631525420324452647768245887483057120863363039199219473768198671346001173166667702793664531762914073428803751180927412095594261669676302540226071748435878189776589058977391060279273449237618487292785508322953615563366384111642070998113334154917835597728272356876857683416547408278608665592899822954609604898778767220372373902302490156247230614522794185683289384899169829859226129432634147608205701993540690569080589734866367026177036460447699770782607175841131084317259146088918901367888586129940558033036625997706706015543708159904722981684058664064269829956773170595875574184741704782252590008498319016552806771895149485323244020169565846571375302734125709416851683543457440207616332078116953446645501752913365571795670794966142849296275672505381887346046673313338488929169001609788339903301370813109202677947501747453414213137188996372895398951877961102428740213405124567949368024275551158048999459282811561351297828175160745042587680748837070006564557154384010827305790092662150708076479283561253358828243580588839983998297508127598361253376962055146398189709844319168779650300720336327453878201007669136824029893434253319147717724259352383803583791648969785526996897995180600030438140734707970975297545354812603917534185140863321258366292478057384398950996229669611841893981847338443692166902853752944277996546760092618600143994126613819165246469226360305340020820750233354649085289628642548316889561996013972838230374491929877941111199234577352490994148888521912281204829627643806636058084838593735269213922682710633398859514681486593367672362876238123404238315270703420828171836003157778003317559037609688298414477196327611193620295051847584139189114442348636782215807606174758548113896645621770270924536090416986816333294359772129416199991220060356278127900880211894237031063080608661409565042467286950225362733858233297943723707941758603342576774969627498207401445885034410139062532290400200804285552646605537643605932432332542038419000786387241873611469826939974867451998790140006233158514870616539007740161902779766079868283490237604723600528493801103121941836448929051658738122646337760475704122547341506904214687506707512316408263303672529104335061584358816635023298281525782036937072236130817821380983278977558036587542536626211162735847719907025417261670570990266039070462125458484629258249085654501865838829500537600900085834095628125561626057482817705271375006446771519826801064601821831251880897588437201340232187633808041928001420509713884222835666727371086045539613885190085240402692967974352908196027897605609743899110502507960292476872976369345179028894570107787558187088334032130144603583361215637467764127508200076379159886263337885379907845631185701565630480850894105710723011595251368005641459922639283391380567699565749591033329798676429814375993535819613151630354094180546792991089240661354960759898460620642560550800297092709973681297186570007357812858140992077393197164435353936915050157242339031479519602589758101828044609104427952095498077011479580447218653919186638959546070337073482752328794750444624952740711324695812264475109236032259536026512712517134362985363782203733328332732640089099833150810870563600670015051369311210374956810866091447641657656691627176372609209818044857659145577384348624711093162884400257385894934222386760953156819827270600699442692671511643229193530619912146864619792704599686387589357178350117037135865249571010241546102644496625866088103905894036274967776337719007181358353618858584708559751348069695188588401291056272725537835716526563414187979709166044972724982448903272657483383532246612438380708660925613922422542553385985799896868576586169978209060786905751763925746911720761394189973258224461836502983978947451634540341399118136646065511292171989591465989538499116197189664813814676562905385009896950066118814203283455763748447077693496133611993037483394324237297546441003409905831325492608964215997119355461374013518746342348353475351097662813159669436825810184946680648979930241782209153423383067391036305903660051745374180674186289447493409338944687264475323022311140371310067343788710688417547908621191694441965116610177755433341581823365348189178161049141230705338505988385052366678941728640716475168838953041735766916382703471812288226830035245598668616228689712624242425706365414448359972461890870594830808514359327046223319425810719635972703728941377836105806339949913997337772061250781071119314966806127392496865640604715982223906546705367280377967846141808657127600379713797472660797901207231393955476216242130735644023212621626440171013147506081698396574401870854109916271022195103652784595837388677522536689462662849754029197094153400014469325998994879643638570642194043431415726922169926254555376146969265193488568165380176131857080061043218346095828897544607166919597187271297182863187575509632136584814678292915505706636095592201978213611788260601972599053087580096313657441607099969963519925889977842616417756669483569730134151513930697505187133071112489161096532141102165051173523688084346617563195642433539229435420168205425357926188605935138517321747771279778805480575809061283210261961227167313330054516429333173873421440101374846775305719297155822783653554521982745859075250907307244462152798259508098285611992618017771953713370357375671126282670911651553333738358120927811829362239617400048477089539781275007875094942032554086494298902238332512265166089250911506919145024515402900703281343720945946051543468168148048641229657334246527087950462578797662866051148378227813411518293850293891994717777836776081789755747009296451512836899027769976373755813033860673712471669873263863752651795649284368187133848270645045573152651398612297119765436431631806619982628882825289519999203539874736552022472460220268982809273920354855941993501242975901819937131305023525988512109759020702222541569989353064844572104812906136574780611124186435520935371966631229687570643206973277693510475064235389603985914697248520943041249478622595376947554137930985603370387084604699821247796032933616312187422295135538420755704612052208316844518480522122603707577005507216221024019993413032759362981247040019315134772704226484589932804866136129939626938709804050273934437995550855056311473931971629910145335492279161436798279030582652622832141535632608748484608281071695358054610777564504907613101203361385846310516982685597630377330772973130025376237321715618752542648933310464905608609414086636855315560283642007012430133371743331798111477289007498174222308913622373564833458317257654198005006844418175522318581627567995404514309399402866018976451190187862758346886490568725730898328942964144202498556682931797669397473720698238297576853334031882799175937876609992985157476437353245211899830226798025818556545309445862613640608763750719112572278435926535133358358325082411326246358694455168847901552278353348393546182734833942077421928693246460170748770127886486712150260376184237720245149474820414788231905738994949811029237880343862320134539273429477977374855596895730709206490581085933206680478670424228264399138712209012098251052690401684499378685160324017765404407189189488616432789050171178943488910317520083164515652822689813490067690245627971184747681035587573244881472238818070377524266504679029401465992397792632049554941482544283420276522462649100921879575156986325422002693550577349463795866129196167466935282436608583603015606253342527592749016021734949235049727011063121126454296072234633194139963486830615317446285748621427876426393894116927245748911521232337330412169165848397121140834640473289093773939191580747390958466213499706976115325576643978339738541838737121198809179523638882927489935413087031204593228322517429417201774468441890702559505280213895148513992941395000408250100681302780402960788180043044014744162077155010347568612932821261653830778421638086974692821613502180347717782172929913598338675705985746449480464980124078312793821043134856948142033002865784556044916756604477677655791112446678038877394040139325881705870305618583477271618354779572714645199689436876312201858825200187888614564518425810041574119329724008695193765458374587833951568466243938234897191463832342495843496819898305139532542996690722933910223949017161798211448891230535373567019518777195447694889362667586203358622959452773967628237863199628802831562616815235937528612933771992821429392013398634257133689771006303593363352799345216494514681005212097231615109982427738628823387910692178137633112458973497131750124624736897796542354941270136317796558201587373991552219728983264591414120379195441444484203286887472073102209167507381755679190167218618911951880266924412327507668875776600818279248299222729736911432089770873221850981311339345464206163522363099724456949472668756030979680641621324858715204748566279535555727779783008271835159762262526300691368262329336833059421348292890310454251504075550764138472659532393704148442934092062457883189202007500819040495450780153073371101578346940459738092878842236582514812803403140013588735872797032725804640904737468539230104225255371844564859734456711202491497798398968856154744098031737301440549902636861929129245930650461876490611056030476867322886333299197490253914019149430901145067725513756440531238300216315141344588815975641054915924208903938267486355292341466182501495142281472084150848868421770933639016860900273809928966579044356519895449863728306922440699528958231019146209820773545998768510310445358297362579130290038203613421731948825443470330585460058630076849726399699696191722612696889473756393797285114293805401397594403055661949254426916866232798178145930632079674066625722980486242999385759791962231653128453520765854543426481530501572810066376002947165356464562951541284612434549521928328029985170135374108768295491880312029249158918047483601873900485918264268027468741205441975089904393448952876903791909009210379506546016956361517523139099210620862409044120475138453416960243971025741784159897997125544085877402022384421718108093549022194075174829891651511424470319421671788603643457997259662326144336789801428613640385074395048171473243842342043596973764948621255045035103750906480490544750374397390361809105780250272360362610907714559718171224181312291631337395145061603549570539176652426318325736088312409110187758063295215946734965992331057309231117094719822326691535656732563380208700455883804873898742709482902279196634429546488273652622227211621165969658409008635355291294664599885928808560721407208441334934789226551749559718921963413220523783478849504789543388994633723067768699922665418351737516849082766476106869957447881145140530087296116959724469086426601341929638940305228885123769857988948910106598877332153549178375577369617501834102204877269994884383159480011723223922160089396067830179894850378861529092468592710254704665588346121845025228438081017668527798544726021303143927801578616070446321991443962270520002938510059280357037537636603468280238603287593384701358494392761509997519940884326484707875551649416051330791532723559934087102225611560402494718818106423397316785086677531423079399414674923372647001472046052805248526999467671798441594256285127644550929995926673854637556211542150741672208106569082944534904608481430874915312377026137034657224228607065186425851355612351822689896996319975388383468985047076073692444423625292503744034501998238282492930492476745499330455048418048582940986712976131474678636955629993732268380388257726446737207065495506847264404491763054539264824283472927145390450205337116679803044092586045293936395056691922945287689126821519554411244772071581150344447898873767602985432605147902387232798562397888221816928690008936168352041012409489030055488576188834237566627209837516500832125480824348243008589127928522547018832146585056326732401246567034067007803647029139488748554781813275392029299385497934172681925509521026227982175191434805603924296838511737807075303795895283343479618800580272477280859866101128114202522125991492725478573522939770922082263983934681625016058924392178147755374560752350791755146465945978443522179302926812813746350689734331640396645536904302683559807897352309742776434906043420260463379950397230972371717612487451476735010401654713951720787667620448697390991270994241159201485846421099591545592543037702707604197003078954738320888538607799004691097782480645019683656043190064582108149087583744514831240818206720667639022940978268283467749850123028499452964997588875014921252417652756092842627451025595257586343242487367780956151465240692385727973813889610027087586585843169068187254163898172074393051323059989118998467737540416140785481389055548939492132072317883956437537482319747207249348147165968040344904725228674130880753972792092569175872911572442669324696718155071982731070499303453853554283916768447629159600184619537760078007695360817737180817103627597151802155567342269030366113649309672574830634733611737289026971752490091902886772565577493726761136819632696194239348459833537365492610189801778738408468884588741472419779984510853067951752272277152602185327093473147755050354801139318959687971996428181744967924652387287024481023365911634238542149350945740279669817352474235894094844668624130114733099479413795367542011759265663194935068517719868501356410866677447933227742055219352772816600395325973245986775279752446226503176068026573091260781228007255727755688637191312670558639778006320073684891057278798319031402451047289668667377347862803780274619228894134725289645979139589327511060929294372986122845331261313171064647125351908262000215935018704416731580212159387512365822122370999154141450483655725813358525905563228174600126153224863571192641306552279676189466412095207980259468246249794943432660591228013354421308845636222510456414521844872005960448422071876688781781823642225078921522983996024104239974104846590689686082728534005206508248937229792064091058130530344762844994746634665326976711971990956160807973365565217783210434272921775504698016200872773465690029828230384640712536049420294361353824227656452867054125659080769117042770424325053315241403715443687108613333557266490345123289567102532352323487507600899734784837257054227285799663596217341456328439871052712965666491438628491745683372183872248061262020433210860205561830373722832033584285022149030484615030533531521426435179908437379936678342586027464010644804255955024549888000292925170510857407962595692948531200598398812946916256899370911381937089218754210620257586473811069200474308642719688439181701064087563504666424644284258353715979169228250085290004998859888866387110388134347874624363781956683978747783277187397765919386903746757983370689271964584009634043577950927187752247710384436846045652927307493770236042386743245673957392825593822524123778624731685496939222059420399476603304190423526724162968833465918766031358616272150462914248979709442601608249275877407634733257919132728238340666154722884355383461537355503085864046788600310762900379604197028272650883847749634007911093946596454616727135243747087082664052238445813932184932703608980420403350476509846545950266126144990149718028042267934566396006507632388361179103351316868267174772805438828884754458288919902768857895213925685029303028933179687470228144317226740025999678584279027343128042076962533701518863004848186345740116772704108658054251720127925578931530778530004418531620922008261376401859656977208614298297499446272635966079042667102247229117503109738737127712699679839349453125234570254778280058691151932705553951024962008570402552415460364463988914532615812435280005382351531925795465683609178743906604513331010519473010906687635608405703823011616652046181777198531334645791046687233582440290701240230082267294039649287571661857757119623914785118155734369249937517684445194111121709071294245339735043528065823543958728820494157569744848181337548383584383999839558343708666646852337394807260346808655288885702543631059335802126374709803599141259470677723497932886557450286987843789972974191823634425823971566542372893869052893001943208964565549927006585255685027160247237658978852886906335430554102604445249895140712148978460671112894550999894763090261839097552609724232947511413655702116033725427613980252190130655016789824013365251682415749741474733777343164763084771401637891136073151641111947843183506689937505116438078517255440042653026380222271974574149286907622806273584063491336819286720154115366803451011804610793391570507686616828934175543082108195140162307250987977578402563360334511075264058086344362852230185482490065932700158809468211244387414072788024083760902422882386101997012956754970615825602699037784301068934257035795372865765997648534840066890727089456718313103620725988088663968257917172131816424564576535830396123614333992584537932941603628151022791752984244799225804892261882988186077982216170062147453400223467337143900671436988106762250297639439981894690587306251903426524055947526867230087548082769574120057171384682650616077473718562197202471105301316190218213077470707323719529027089953202687901286007492997903022531973891007685089778110225659683178437815888237091745369782007546062621468299488746144900972186176937762208197177166851965089413962057667956879802196657078950042020640446503221281745863449844221252442002109473221768768052814502164292809335985813893982136501129461222918370307993848708644130345364364391264642235302265239743944653715827167790622508463864102449018246577224842075089163004900672126894941892575801815323874792039423186912862546286579488906344602700256540336871891334606263005947667772769101034102251971961827092938514738873858597462626669554207028850848176332331700196875929093728746407613148430490665911229682404410507230364219728282943051917516376711381043033229961339728543289569827086357599688785752366545052072259959131897943934046056828212392300813634852925069453451798806617966537545382179702246285493634928850140253559337595647783409001274328621279344103093122363311070216398132860297765404825620295602098058017583272192962357031006628033025274962912337944300667103742083899950731611359858598850493853231495478713005727837826573232571230034987292088551976757726253236860974605089233932618028386318851423210909370366977238496015948723016441012824990304546245572068018956423119118849516091977875630073016396570049682101116018686660148515232690968657675793037823527941075670715639520768244436280355454857991900872716214603827370383037250920930894498586171141080893041261625439515739001798202738445242903342993347775809310867260940830199905223684295125416393202764604900370750622834027138794952160861892839167806760826162411786435947636724456534735601714427633174159634085094371211368648313373143515676614142197174268751391182279931991143891852124349958847962734896054662758414424829072560651105868142817491445131537032204454409586436651911996635496817158175127708983069232682514407531462265449426234545743718748026582679552136060498550277798764917102394016931394155766816904097945788341815486442351793443622581624178133549763602656287146572854010368675048866957455287427768625114282380337376065894872158374390956942108309572380511871638627210601663673355302573184833747228955897042049164660642071133272218686880561021662262236900660848732194001285198962143519490511712920290202468588501651992759639854441846991644382455679187282373471164631849641551522849438181037803987587691293358266738647857340066043335426883195509337936229071377766344416687715412777881556157490736838485918470660771128897564824517257414933085425054885139248911958983128393432005274783895374302874379685150388330273264609961123361732135724306735964977391994948978674635616192853320915405879796670330840108233223739823290012814337592851132911402420309439412972639670099321650672592833476560193663694244430664100694932728817644661636437238745933579373576747473825018899443125391792267114498552815203662011121358021500218187500135900985290673359519930488682464449356315435382609369559339926335121388661363559735566956223301535112303972831359100401893945042487877802236954981269848700548031449742563656400622535600195658207768125521009768891846910596742286650081976020227035725025550127424892558401136046666787820498493222188643328465678181998144366922933112109821025421180662108531018774269638763392482940222621302343971969397987231954363729739612529560471379744070951784600486780516206005349244294207132133347152005384570947156526451066423564639495233191415072980872473991198334993395552010675276547121433370505985366342779542141915131254143352419804219614725700144633727774217330513629414169457609602967181658141463851087220196872062887193481369161715056713838568557016974852658333518191833584705980527715987098640677874180316085797110123263339097564485721560507973227674493458270910500362248724761741905413849318758306911630589241536190628569642554838372060407289166704875336278187476330360017157513280493116699887087280965077110771717821648716150657631814146529376425807024800460750415330363899874761046315634285919355577515614307597157425930536613993520857390455531406318712375566035391725695011471682971230930216308801760108458252112153789685528721599240710749694660223471938223214012875639688432127972854361754351535792718943118927426195908125660675987511790414886526028252128418578954801174561854490329628750712293603959584982026835942919864971569218291977085529595437412245031856249115197198161320786314016112217136632416090826022455229922071877029113223402320962494086404026294772013647244554190314251765351718244814818910500763931021656317279757087898266977011062888222648470830881395693823780840309474748370351004381914444137925126239219656002991877725097909053648394655082208398606815004193409414827767331876386268853646243870091929926003800783642763452631795411635196096498051086834919896349823523510981095142974693618303212132054764585540516732285260900770143593955241434445015186599754486279872901240214083622530292867664718819269293127324904509621354124676502970751989152090284155878520097850053004982262963992328715600105609393817448393331437271690245992641730681352206493396975803843197238474868287885822108178649999994843768929492423508152868347480904511618482924464928340961613014233261725468536556761990222530831746757701578555764227762131100521698216040933000315633720285217437997374033129606673802424443833678627375601602699970962995469953140701635453942019591478110994515079906639876572735293452060382130212743407709827212974930943600020907725884500906059101010771150881127414710733370529724065228319022471171965110635420274835425889166965996743532761278398066135033079869748919233945239256421712418016532348296514483605413286381463879685604719053636111733945651313890946734165266932923542218409944574555116350357661793969775665842703705400758640567926468207332580134136095300467220200110921513095961757471765215167400855058495120213005934703698704143597413453200072603581406796516083672780597547309163174903970413881773655572228976107871185665106512217079569229226504732312646715684310218805883679915729931922886943970456717469952168952499816047736944902323964373487390418854466397157793970598569769235848478345440368913630539285640938356073571533679576763474411053138103795237169798976448572499947668405358628447656776154124654013592454726149711668694333680120099005129788366674717686117026266961941115889907890584684810689123003214288268343535594984194552765005752276023020216053561764360296383336364983227316770928687042423273476244670049771529911234802993611738784275188689703543578667048732615911501920783335983671072223439985343607293495770259732709948435285107454465306171134223685927898012194686796632583888682934597507362911697091313693389696066911433215558469744675986005563190480847575625715149575885138383406006363460209256184986458537822698911877828064890592785039878732773510450964076389244349512643849299715825727981790265564650791281626676194561825837672700703200071915240279498410604918716480136364791293297310439583258684585121748304391303429524589728346227400914408348168263389190696293184345243885166160262582604559017050720770832828432069978363359190226157888689590701695406596528682104216226158519606116265041793374529864262228953924231065506804754054171818628986556081280615352437339586025270149562174179128289009365829781179241903794631807296273646934297649786533181613563260339954036516858205616817138391001588928978520984111301930621193348480854961315134928916715207664538276758916960685244990326397240536232079981981013240004721931486194094773504309683914291246560251260732325324594297820227705607195854069093677966805539537206374203186215740062694970104808877366167773682993490322596198410361159982545371691286326490874682596190931591786137430737440843728783573465343145018859916876396252124365628863712437589196186651556839175580071063596142976242435283437609420690358777909550992218284875910029355576377254789200284466224898669183776134028071357462073595540065887814269893813825353651566340045371158845737886178358273771902436258365979703337873861441521338712995631237965727495388689162339519367306519299751828678410851681405663211183511641135019335880163308399530679355364220512770673727896986924538622273958280577201127338237434207097711300138897490483263448217524836261316471774189087209062129163652338193202161168791104547648432326443955820193090608239813051408173806507476881270003532001817863157266759311698925500244120595121121076088720134078221289495183002952960763406592394991759727709389233695654901010444087495216441909736147863377357871834928120903741795809240276704675085396749029268527187611778132072213285612030828700731136979807701706813573289681527136461703043829680399385534482880339248466896314960057691071903762012562266489530435806965505822079736341831280083553608264240874413241538765233690838396116883523490957149625211227424392726451404897559361208090732586997427924431937336237750583521426100087729985220061946991409832178987493857258679717562730457520863389084054245545431106974145078595129310258205152346668447282240900253710914519717379070792198165112470485643119218693123430021989512022008953126381708090508599343860454863632429158634664917986911289186476008622699662583772415260463032440236848049790744642992873451460277821177954951642967753025566202063381637440691552499246496405499004747272240204176589794431291914778508324023098702067173963288796700779711126917151902815649124677975523479386857999412767681868018703920305601230245814429912524332357854389050871771177839376560682072610732115601975071996915668286395790880341264981677807794050511226730334407096126944212377138621439574422329145048971764920952150716342411637630402558770136621712536400085579325929948130920089396498602331230475362674801520862364235348178420377238495464811730064377477181542778848853231515434606885595843015476039217556832040191387850514143763054088320400959330592536330785894905311528564951896898359161698439053722620677020581070845388473314628032457489121083169917768713324915427859358932841272484477393942680744331457634592751790261028681828243234977825861441061860214622421619085900813322841269177175656756616223930513177088158074184411113046519467913182444651504948614665573885328745917545433970018812804986786452121593842108686728989736627581316080436669266435933225370652148927320576296776979967909473170964410351158214990931701236919341674084653770261349187740857513098101493872819794225683594052358671996967465014962566886533522915682374039949204621363400790245520301881320807891177631420560951283789311612867150026533729979937112398298204936771765745230303093543243426645573998303733252524667807730830705605208310208067489333328118172360023209860790973794009259654781684954272079742393848789331004906963714660363625362185011659382084844475341405674543686542793414473637322463187610650509353871995615486173590092883896584986658926353230940274646184696926707898033291602374668696655977601334985697997720502601937098619573998273708397883156152479324754456528639008303900831399565294003478145680843167437644361251279150518282710512786727568776443322721363568020341598527764512576603943444707413706096349950442089932708229082765465101451692729254784997574251679880029330335279126368273365269673724125038928446957430057792622030422158780848404629353311581769586496139556080697190736857213735679273366140246858126499839686862202377921701600190535282742403610991676289616094219836964402672577812203501544309741720065115158200024712484129999925902364551401252640073595731575993887002690023298599553700396662492186161337560967496943444973455803179093016548684014447324225017300995812503350832983068927898491569756595338608190337374565353734579378637095664868989171239798367539409223853883758422373536156936557831772730584087399717893376968754092059233490499961669138174149981662747583329808298310671601396587997894604594580784808258989371248601813275604400265963385683734252491380831460382497352834782392596415633940696047164096240204029085383668438143360676333197544126316273132441837219518240246799973955090468290302151574660929001529931615229647833278166044522812440071208949446594024846265820790917974296779505173828975340743623501978422500307851396926205140047193218248722580304249123036092561605964655918331071149293859744641349942987353787959359494926859343588054027620501092881999198826329471314383496424802470676435403851369548487099496736377999521028550597036823436814657314697933036294474417022435500671070979247673536657931258919243813151643595234652262018776837074837193813746189314155635461180458536479215914849281274019119428032540104756486311343452068907989122587682427629180358191695733699537866963789509594206647333220699534060944600355871791912000887951359103149237910475156286809477334441975390197404517961951562162865405354931840735386901043621587644158551051239791318633036088203814863683553499157201353932210249894064238488636825443845594314532948857106156630716723456911295656327138645320439592426799055948564996367932288186113583395534071310894140228582421627904112244192159718031319252692822990047808728174216817058677190564443635646254275530941495658413874049045029298096140383018286951548132629482028710192531719498916499369377169211452900171662917261510685213653300621599796690489207274879244535889878562832904613622877935512681491811528470929464099269126737595479463410651224126032452072356928424822164358588883940830135513762737627072056253076263408285873251700745266733274537680814917164839963975870606929694763082601674717504847307877221807307282675710308730991531701286022420992856663956602055742214146156111133655631374988594631182363301373335582178137105350248419354743444518493486579197663428781725321230291092269895986908589631816443408558833513713859327098373950094286713211097848792354373858649909873506103664295053871411147047881461757397481972904332049304265453338850980153139026641995690839867880525984983852858058903952604942970688167456808202351530979479615349049828401776559513911434750733778300511749655986194033875874378230242671656795405826438064879850233211722257252151875470335548081519071444132238401921514517986053888268692822684592776858500232243260758482406177154698982057444208087929900656029055017110771391720928731200023551544543462483459851516911211790775287111650710394622251040805698479412098756638014089742905200125646934014243313827412572402634777750381015504746614340802481072253928917649775036461637888411694210274844382474061060839061780097675255016318630769420242872047491426100351865280860182038713851173239196968523033280144314785774320459164235393906296062320709959084649395893402127697781955705432408196627474870997152410384867845798281590784437077715500310687349204749448177972940776843270030745884810651713655603787863351268130318652238979572900367298362307758989764315462286535825031031671349097985875737338081319000490367724272192856820863961108687842865289592034452021141286236829203933544122995062405453395530794924367712858137325537766213652438775775915636961839215263063242319952086389250581934719820378694681351235367614887169168979916698392943688589391702679137984107918333047250143784739179364392685068849465879275575616473889177083089492390283441329103602801086485282531285673607902824203442820594634984432473631078334515778484776260937431426658779474565736893536778310466517384392397119326881117640689840187691681894303659855861393039637089014205293725358272005483160257628989049252286671255063916067436238196370862532698531848020331545949283898936598220224915172687038122834319116992719042277543576595686142878008150896164066703429532151892082517900818716989882232277306704064338213918608625208434776601680007169536297043838702150003298129595579031085283657912018604657564831586762124785975882631554828359597675443400874510124113995034225744316262127219881010993794134910972044830373711731847417405990510816703997852175809234302457088410182225439195104800154822284775282575105534106887994603112877906159047197156203344853210521720859054633084823952981671534311894431464631231260272509090530363098668189077557898560515406292298567097402087208281008132078033145144188833572372044651372635477096198560149105285307709037691788375668677941362080968849937611363500703076036045478720918114637189445713153069086534662931086816282928680284489081384739031996619007546245194828082221876313472426024087971624949498638926734597447110723583731092741894984498438531215900281098204504437891333243719754262315923277644330779919963305010689175411350658301066198717490324905935949237574664271920750864969866725982586466890395403195980043801581653188344125277554771566718620686966681814061579439500151076234121761127751616359432769798875685244125082603498556208710596227616035713888500211275042841446678822001100674269868719870778212959922694204393397222052509807646309035030549273183560655128195421975449896857183939896875569473496201192325860335821824520348295941590785225533163441869759943711338386609028621094528544595416706301103126339378827104432524209935168352030697025555863654049382926451495281112354113302887266415107921835214067885555831462052572553707017142560079704402874066659380272094113918009480549023328619488989534284641998864591762599435178374444320551580310457053053531260844020855643953865156339453350726410510288689372130466471522089515588252564391403733931355388264939853536358580423717937848727687791976990301398671992027803688230373551233128303111006935268390570936625084791280847070624245005947823249435703299040721614675538424971804449726950772241608527164185243611811225509655984004170879339193781745262643787687152161737885754838550159638472027855581356850459075051083358999663521726367742425586157646657220020860117039471270189778893472170131842045450918766291466129151785253405153036645795165939819231746804037650218688617490806122587397573577637032785155682760730052227514525954131368505421156324790877019997995861634494337205918807875318687861321672350042456558048599302182954898439248515744258263177542165422626070617371148654722351720477300415003422702241543477730614855734138709789269870311375311093571344300081535061298228507754961847516928599144682061157261301249786521119902729510161018654147139503075844386606721073551533886452897540460478445023134664085341960392355640906352881863588181136645041203496172027466180900700816607961232495838585044190000401465027295874114541303046969581162280831300476471940184563129731254192801918119703603385284762025953850571331716237945869021270211228627451643625329684539091129716141065084857742229983448897107345334186456636032017689641062259901030064184115283228102502703712542477522836754197745058863503569480199978358613409578877725513443173324325439051075274329601756429163918177913287371277043639384043748360177023260958538944118580184919552827803696664586823540261811698637855536169661972408217561326033626464179209461653483272056103400836826765540677507201197791567748093864751694212916585974139971542719962516219612961011255329472942455975183782964996350922373852308488769189447496315871630999614621612684312994687493767250384314501943855652440754088130387482182433893333400671129486208862074096464853347753362519776895905834612900146893545516313658951352687160023333526870776641362607897944210505002342431236023010382376368919397138712839642107384268540724941413914880576381787187093369571126008236359047496398636252982267081551825488810547285693767231670003333841443747610340697424103346435835796542315941791457950110193642007163610560795263188322247148318523991444085266667458430838956729513277693241163421077438709331124462230179115907792844362265228432279952045276938378179397822735224130131975832372306640472466497059163737773305295286877186428317731790739344012291596256975171493628935402742742812413876368686836106752611198445333433300649693596540373093801346949798592490068695863113163911904135535652656516029427208228252891052068146997777043503344469648667784978066842072083950072403981656825553266136694504060890870618318468315690109829353645404448773143285951550899375796372131223142263106812236774014858345379651569411709346329487373825507040372310562125607272262154605135967780804043709633540637564344467859362784069794058658057805356442174363168927558406263818602233256835882619006822074979004204382958760638268073261160053083059848694692150512977329896298504994124053332617867117104718462947075314298050019718475173023612338156150963399259940359542291823137329436917260028734451604204449506182842702247458155953799648511565462392955524460441591355398341111260869580008044339362378554861323844062590323533185162226386285550183530179624523341658209538964712522635133078750391660618674465771714354314136064618883234208498446436951245901574057815227351376113030615484176104496211500768644155698782135332092740813470368535881362138028310212600420751021915381177316872893083947420379118240365356068642499996225837045784019049695633700842321504992515882520222009008889525171911290759240130188136663005472334656309199533377630802332754236199983871416331286823275008757367780574545236843432945888420901775687478994965011082870336346018087566038111101753131790310307111326272988869163385166016558595975676992155986398011142642638571476420579494383236363677885246994785062103829269965419268338266549374645424875751840111485002272186782163666503770575024330410853477083549271874646523347466369038855712444828651202926751939980802315160688356655961143879396897751603817658887448626608501078741981545352818512765250309186939595258862427473477973089052459318581946136750962301909260004625121428551243956693710300237307439799153723404991530138057333393720238679525141036807450744087809164840968901776539062317177878150612340995743522610002072753674440520196729224643090445375204776616807516596396004111690095542439042517590870732936763808564300289976266339781676973966768276684757320682231983875038148088750905030591882457893899617567554107136004344525829436102917670389049011210507431565490220425871027724320676045120920649877329912563344929428050926406589895980695808689014840037855341723194057817193305433317042849529573158102574400327227984836166735339987567917175203742105591578122066482466434538907253884487018279029084579365336063748170717056129372582807313434652178344872049037877931719237928615144705070676590467297671100656900090300855246216253960431112880486721687399429084566815534181526035810992831184256224684457108368305587980255992687153079019128097234336833751057324605471190448614390782671778944939511816535258151167653369320617538577346776014898396997830789406777229543628610719311244379761678675663713286864483019799414760964831592913956904361447407065156951339199098316380137009779406739635832155533938261058737796587441468497654581414543430301532987977171234501376345311005753504044954472859312476051035077820631689815210946018792539546356050587039551839325453957552290573687539284653032794678905011677361415481174391020170304951002375876443439730246621471209018322725658524592471387489047211085668804657217487354349129727073854141201513585407559913394601555065336379717909731968160936070206618229901314908874841227192352257751637176056691765801056448503214295361982402491734914009600335628031453391928247465397942486152362320803614230005348211668823374564921995668816832543565197451099347633839455679325804509437008435370119143352315168516764786393222540667127174443127778189845308112124419261673294099807264721013003668795027418305922918653656340108688410041693432924905917130189267461585268270446721534238744781916015842464025905658747349849908142703195956188668752128626388040048690863076192376225107693435831081843724575033116555697735382846358595489561341619254042936756360157634688500875708023292911245612204101216390056744020020126008138977038692287417791953379139927703446258863013929243974115018957601155354273269564016255752173853622654197306033088599032663884441777024220923926817809104374135636489809109386341510848560209610844065584419394084650725525717997913360256946366085667545441031644827757458630894181839436314075924057526103033686841555484309843431331146003512247366503991514279276965833929240524325202102936202133364605916840022124339712962670952235231412560798383550418370156614830558261193124061938901041533442630797248098772081030092790818285298277993265936099808843895655661886285964928682872277762873117726695187172959408807951810161352975336107718588046371013626804818436942247824990183428291686864392820025481111217198127245243040052867710064100412246172408918282930429512239636528621319841469159882268590434651010320708664186108476443982200770686282562120577656712516622363206105160710892138177962895761924965923969859227848038791989763574886279068462420263505187384877764104677516726188053481118243457291532242505040754122827710665087443746255838529062058338266263479908033356408739781111126048053519882279343616010248367359688360723951337342818397163300474818182708951651132273176707667449136001114230431312783241612059481392465685582738826374322772886269431897484338441112115533019110809058092808009347256056406400731130830665459980718989399559053656458049636028308803358694699778381909425482300809735544836023041878799391965767525868461075246695126057170731960743851825550267021896967634430689512340620747970411921701903495064730145410342268806838416397132294008591951904758886053709501351737535068992755157026893577993328515701454790358376359162936541684091142017786644570645348616996728103223454586470520522090307357617351109606369290235887556787684812967775945555918325807203633374106836171149186763014413641365404191722690853247396829777110142320722739695145631819894036659116181266342603286435099194577736205055414294943750829975685810510197555021021255620297774219566608918533108089772461434383751522150842817979818345214183606408123517972164552539949503034546252147746071272389707972176285995444970615726857897058168530500025952630554966079390902063062552298878364416835551778255847840128395146698046226452625438989470776796305804264976171769363839708295472047272389921555925667837684235162632298204245689571982879993508697989583153186680490191508072047407015217648585773790903033278388386376900984082108934677386775315451357451792088739979015394753366194441486412333514620923275158838572510065605754645988534210836967978097966829823671843557549915842907826276712912946896072826154427287036248987788060910824069061911273223575825899575120201979346061641686901715093382798806558788653409455950035857549552739774213255760417848884860197641623795563010663328212232500896715626061108989677719456033799553221879320586662428777886131313255949651224292594553961991350504833811955266369528711780747351967428875321255469505265925223316458381405670363595035090908171084298819786519851463696080824956756506718175262686459443664783953082838371647622476592810508821442995083882483114008151490557850645491886330073401892137617924043249666694099447787978871007660715290921985236983988614157471814171182453295849565188800384093785531299082096924933258615302654386644939459715588031180862029866347669123788921601293409631884776750292448178108583610256723311452155278784005211002948298053861644221794311501600753193727604729704664832757111307893636569468321315723225898920072062635714839460936430172931664308370098088079226297685641119638957833034017367372775758522193018867115170772038241811995821392628289842037650079099090893261532349800776968565017626435836205549293530893991210447570978159216489457550897116429389820444849662145922198739662711704091370689118119551303088599283549095632033901561448566322337715743953503827326124725868809203276045001384350918640589130841277445730061251506893980100815116415607229040824124574379843496620861786119663728045492714546286955005268181829945688071939560438947484834880506922509762492962241211999847692522408997597752290481994048087816175049462996862910181412688163287180410830366512287208073373417621714634633896463471844647805506807008533342962946238917368352935668512846787114966111353467676195078849935526482938461060586850779016985800802492132438808889961125582467016565837534320225808974033621972492365528988161753897834256826623662556332780422490178566881389858636927814526205865559429627030908394136671457519944283862985671040674624143381115481537702091127973639704066569082323437939972357219684695551407074329788342299079086015456058610129134039564142113598224953041970302051757968322910159747606384029122869294443119659566683573690778069881525139566136412676402169726381458001848438242806525627262527570756180469509171630351787038434514134266245869425944924155947378960431111141091339532003532492048886203764650773431140460489855774110892647320543077740919419127223339636733046888000793746824218325663729236052524656058147388487132115868647060658293220536419173112519213682037180727154440383956471294307034689369195625711826612554729328674856040971765119382272424560530987388187122926664368061545769331624119197413878988872073828188388434627594242715846692823728131838589968831278173435936856896623730567718577267807097008008731912148633317315793368339304956488826011223428759676964620998669915213808700075723628651913529583175016603200153123003445249160616022587243453733573136420357723651887090474492799081486126674892443049941910599578283644819414041314344867612685384811311738787286288773882024800782574646927900059276136871997830351875369033540887822843803596134224999693722751956072894367848512423288754333827167676484908753798134251026105669306417002319222825863885895995745742851891783033054681994343747449497783736014235667267558914417150450771501208735254717967149817228125044093468883355754386882443410796145676436137641252278811662244316007643231618679377793858454921635334844608437473762467380628550508954710297705014848652928316651576321273701965755605497843898356522536812297045131970908122240831746321524128744299129783592834730534720611607818856520183822692482772979061838866178293383422380391957563565464634168589702182717859291626254823564713956992229899871130716941061212767803753969440977268096997038690139295419182286681443364731784612848019020187165886367446341752920044085549497794081609320917044985495773218965580501002559471248088258130340235669848416304252951331188658407118017459701595877530610278297321571103980080275878254949556140336994740544395345579603652395234615941696356203047013246700214697121681519080114300013345381263482330013446221962740286357701697195969414543355897125145225936186496091678923570222142213504176463552060347271154245018069194640865880996143260679050854170137041136552930902568680403431497915202534118267652771985541740915768160051282525644041205691953281728684215957262031160474562011883848837442795990257835512654737302747429635016960826838656541001197564506972921594750240378896240057618584157214260896256883592575022353203040516719286330561989847511585928743292957117310772032348020968908995740418232830853417102279353479122143618904609000137199801730903359021565689089401251568551239032365956991927259350737614553333690856966563939976111436413323965833707945226970593821393475901943406297362769046868321766453367911265397829748719490472992996799426010910543764638829607498866370532518303489086101308355969466568020920333559431718106064507660901641364289041842484406332242123357639327457477770321378866057165011386054086210178056428244842617842933384980124639249066999094555816603599669956769943641433125566146758475017624335654333789286645785764585346044127497835006889665279768524632546338147776524275876031873555944532473640864396453986293328358192846349796338082600580982228471736409971056984191096189570989307359549254439803118863728407930974663875231938156908662956784163842100613951204402089646897957422170441778824150434687729434527096443072104550670658727015907597256522599191971739503113177727980516379677038294781539430278948773625952140396381705602504501739304986261552562633646276462834450193119254669277526150351486098249935550679305743811226714378622229554223411669792193128657606835782271444764810659432884223637806804790854866508945834131061422865050094774460796706092476514973282901137534194139659506732322908170751717270633512841264985676106194352457656024317538416610812899419428607981611928264711089451097194744549594005847221134714894972730337492544552433682515212372218974497756589055243350650218181750062672041877347069700288654380704714983981812822475415722089227171654195625265144609222523653695548924731087740132763262679510534878229295968268182427324651600514471454823575146758373996513201114481518772870399899995942191822622871370819599152509837090110911266250709233536743262283908024518756015310976706572224174843477600579885738563350130379428455209538112843096981125251222913723152460810773844260165568974636593179689132140642104402728032784385712283559172224739665126966685698568589702487744114617302978374772186662211356140759717781497907300028667757064797940824481216555396557506254884452732616178255569613546450576131582555340471470982557285984213906003762205359036186782778104635375458001979274672605209595580494037986546380650591682250037780950412449804062551884564042175416829083895123578849569244563152876525104935906217426173610665316758708517289726686882805256579898585016625588823631357057239370878128289828742461125219131582466412041847421830477192706147412052806865852006948156975743778144593260721095192616828490222608938422882499993268860724298334269654531070872759200349785587633642186692224705875541695791140002733764113819555462093295835662934604549305952120778600760671215780305562921566810437211996969813777953552020323809485203781923835871041391827800164467221196380754721037924561275921969636664342183145434454097146654461683723185445003485905388416448281998194262648831650213037748520627854354884626977494741528500103266126751693693604081880232412192052146540617679852965352838414783894946916906606266171443576272750540299495318806008083495984518770386050775867741131322935582066594246231620613372114199063140892492613277496539043892795365783103661053358950923752186710299131316837815903844351292975481743235415593676573256991326088894764629922168111377943733894104035112705434836581315287772579998083026015777478038873147355639228664120381979627594504220651796900619557822327547547912607127771508147891540843479103785719799426233381008962085564269700792191206507684096456559180850778033015779378637466233056204485964292921651706099381954039010950092041505250170706624061769795925825123446525472386215389909781513607135276883697898564075427290051134746191655582559188547028186993595654798310504565392196764553871013914637795529838552931535986248305955569987999493883102765820336315291653911830435724084464086839727002119815016450420444874168389508981383078877064328382707673631325849164252244879074347106998521981800193562807664772803044544564150358774281188302769681428201439357545583157855253039494824907121244083537060715544959453490918060179912872202428744044091092344985796388174434969597202572099970729167229049408936892103153617031919301424612624868937289814957352231061475185139627958213945728571676184762657183241615546247740229084599101713263214268993964786530509608375920817590730561023617051067548568526158263448428975134044632383884835456650817176853404468712521377950868102653020189590212860434719055754720372441010768097789685133552622605125495753512684100526632686984519644330911262951274306791107592635905362219201698839506378116301759923542276467214370148325898579806188382136148501260204121967931124058575713694904847541995287231800305160850146565849365622991306065628305807941635507047122132806273586448770789817583468431857889934532178676438612604244108300375548496033829920180527671570725949638133941004247779305397889836466216257712528114699395969721662329034354009165810138268445905609129665697515867122523031252202960049479982378988778282794047324637738449314084629004073799278337106893160152510257736602896264090134408963496872147154352586072638529348673986336000672925977413382273874165550312744990197800372384803267853556362487958890370074966450148371178780746618662256373671476969057776057267580454627493530411045463742926138398207812522986496060915254331626509978109282168367912800939648752606569810686381128208121543609281761617501656742671529048226527264483990381466198948741037468584806055198093590028970121705790611502600346623777705461937206250010382892124194212909682769499384708735973461316744683391198944430149101889941293396174723380649343897922099511026627419811236266336586286919259375852974713441999120313538311689122506014097151455334348997711365338335597725021481886769387993242551230132313774141420553627421535783511146224068346156317822717040390577208032244088113205521672220101637913907333270824789432514610815208278568141822504674791538554624651672155166479750065220483591411473690151385850690533188321345036339269162434435039287608979620011668179025679039488237275258747561361857579024512099787977327232856120162160350743155883246855068506876745273732371106754319636297991855980388803897114066900783356608651629115007241717926584055861114866044891402193477984692833555291124294451121578530189934386649718900464849322425135755785569038116309277580492607163160891171772056717350722303643069200392653571110878310995872821365706082951371152056056526647716374571749348041412681269268891625071475501103389455391178234056504281321933836420435268222705501224818189560093956079757110427410559962273804142315617061028612705462259110981695417633580130860667884266722491565665068675551942029955435917244933290153859650086601109834195624506601642729418651463465014940602257513695688828447724098862480021607170610827431750092650731731207320603290317609404221602481281078227750991004678682941002773396646453899566936199025369192257858801530681703777164033412515157120619462732841261990608324087724682189773243340411328108964413920734271622848113596475145003589030726844027242208786901613925516846427022545203929513688683144214860368607077308430946908923846192138543111963961053446150632953206027120947197375580311539582433915997797141575048815833767162402912618690533333848119408249142634193391574339678361058765616568798428120996956398152094187339995764767150982381830063800618395949383031452187582191434875565347401061404742191547460809326949975661800924031777761684249968735380892226948397336819137850869531131281658822963703983290471386733684506166848415665499859048222597822449980047649343262918212195738404164881854106099146947857383078768438515614619885381200007388287463184140479139574444597706017776948581818422124437026353178755205430394541466724361506522682859918229832654560799239425969544417091798097836822294348696103231152697989527079807329401161891911463870278904671036192740147549506535272084531688123877555503194599163773399647982403886709632013655627780353019933800841924171055373802111148171137967387353608674825514397932520068107221836312866569715666499776111775864526946127695680715016920851016410364694028220904834357000134316137094508114358089330975498385355851911724283189474395400285657725826775032679380376771492826808953384997501903320744985057838795623854322688455663336971037591812933764884359455148474936088250451533181765993017625961152259599574114580455821974522518742666652037922334110961134469462629416816905047085320563806537904552124569289657440355617337524741428524148667912976633361604633045770637719191821294745864740460376391153194713952284353069666568098014995407209805638749980016217478274213139716590926304729596878970406870333020274014106626863466285862277867032483596568681859985457374255291486612500948385854347333249248165065551414990864526258436624884425804333297806660338219618832571328625868109184586749674806780907839402702045700979273376877447522821392299839738995235678174714910690717030887650112335372310432810555920049502638302372856100864727654377368978991029067733322784549871018186339581495443030438404343708847864538353686438476086005920526152466646875606705485678773958243890147570049047306089086869530764621779642768812723637920996461857143563042392694498122798070618709447677270303251677804743969872025856253295899298947262694915309987014993077494804333497645569796756120343629261668992804983794679636966801300991990993674051729042352642901915814954761756297442569969308933622074960023085354103715214968018673511681787016095647310377243659857803727407923947528450580100236065469826204300610820622092432108936055698683735715940736219680735695264160728858529426074461757237089356111171852847915402397471539670907895514737292233985513294775316235000093634399266665912832774753234952192760059839437988687359584653694634941986176162045966740890639082910075305111162603855121812886643602620569973906360660923561645701547470362400085127879044214926226770732889281286592846646220759017274206222109191187867615832621831846103741950472953888475071674764098048093516531965050840612085388897931378952524973835400704744378947394395421948126898828471192456294865317944350871904059194197204715422765860808873975668082209860978265335839981315854650909631469234229116031431514487534127810142723173786557850626381492024098034317808891578799827740564852454399959917242355690079856279239846888291527682675284941362724439982680599732106537957765161960717899241342645575848484456990762759194431059001396463526095262623700539847124679739396414389216714095838393707240265190776340795884796925826974851215834705040964142107232289516492727486800369145149180022099658196312118469826645463220466121190040500990202594678306821082560704000188170601507165355203118452755116036768391771329781944278528772577760701054631382923083278110695745375595773876361052436344728206055023153591908022324045998985767780041177889171915825396433019003385032098935171065248719789456332794272405316643091846443502666632830339686639846712600882935602996637604988240996435674577711742099592998052305760900296170579607889077785323560739950312497334625271595514811925423744328602895605970369544191686782026217520030659521064827416188972944235135683714813530501160393838312456317834526267498921729165574440168844969737622007861305051008150576965463521012775479411876529634739599647664609761849522443842288002283066900787305498204155659096983746424966253549708745422545244818918952702896518859470853166701612287334870764025794158408779743096048016121364278730623369217039119619974263504633048731269128399172515850320001348081457566940379454880029502983684939489115510458614550506103644806782621821013027081907898144612308274028993557362460661362351770140032382738837604426516775004073025985340205384802070800093921471893018866302566670772373608003785477345088947560575749976935472143554044089925444451754270120235760149772366102870450045058664528838496703334171250200841390150092132191780868288255043339719301320197551075697433730687812006261425677442119509312337005096154787558477927760732322655434064156573862470116447331342283221740711826360039117293476187117825758392698450252142568768117489492165445538183942675928703551808027854170633176126411382511310381617365062178551028448634641044111910868394043342672151658689972050309679777132939323149961624226867324745270437239571614979812164250136377308785910448353862872137729456045235791579268211084027078458378838631823190621291263444620487566917431647904854283895767994038981956459496280483655186988663425232516277640097741113182315553229581323251198479024462300145565990893770194028978588467310667043159515180428098350357807711376720354420714294047729864709568677473174219885712980272656515347247384278198338625187808037497122915061294922226090193600445836958973504660501461631715386136102750755389118748237582461779314830910871235917304002138717515901742806877350335278443519432543578169173548740644123851459727433269433605104728255816196557882865512583280581894245753290958275976174697002384407269377199323177409605897191130073297550414675000315407416446918121655167205529055979380789277656509170513455820729896431908500607125228232602868721330617830103219648239703011640546234595491912878235988422357310229727453905934845964113731374505105457145583614092456614960015841738174279979201413277779567053936846546486545870073192408662808066808923357007727666076214039629033457331519941889428111657573659050957516374687638667482622364816170387418810405234672065099277726169331759849351988543297043862781918421736158785514131697480022768428006630402446746891614854907128240446346014669328675825741594314532601384799492267301360665212349978923182311615527405069019823728174397991549037213716663259913326159183113286949176312466877299851607671613044385780858578016568703560950099632247600627655066538583274713567768068329016692091107067331572956414670144662453227785574967578866195016447036178172782409949502989803642293450252027464459051819197664859482153821392851675809324186488907965570203798410908921717885779580177883177402877761420876545330152121226589542486080466124036386603493128619559214131480596060914079839965040438779659785399185689327190647663048390615922450379293016516597255914678978769255540916821718675455175402781848156266136518923501739671711589102273348771001785901115437434074836553798251917406347144901985735447981632124701315407845862510511762269168400564259924035417553846273238399345679015214751907171953298217829975573473744907850102610081876716350069076288314858523226164177574433841027195369684734857759355529186863044207643591653280333026781747759501381337014200453551546693323392299339574444146630131414736961372446006869922034461656834846399670950527444456752489878128223233767480303417250478030680550720082071531652372492226277462727113582657233878280068941867402512801609503005923353729007128388145748715952564257161527642640691630248003459708507132606434853854966841014939659530405511942701115766512403863730541918832579154451345272291532225460584137149922262856632489149967090899158063095196220579773992000805342011168286128238815377238277471137190976237549306626414744650299632748137270164169617379402150017341989587389663098600887732125002098462489083360499063752032293986567524155977646715895595034508336967950315554914215277011110893075020804252180263396476183429376871325144918010556539901290682562321922935625549611850360132037388841107160226053718125647078127290492257770056874414177523126381249562635440907160746846823891621207688266778537500131386599195112759312295661395358726275441224165728294002308544373984943919404138701798315928236250768836522615558085832488012379913134556092625042851690581151856458117483158051747003867460903857859387559631508417484242568350911390679454190366916998275398043960145420390876169859567064348628275124020240051314396190452804281453558526039923877555617615685025621042545925205738226650072114203048387768357886581590009075244528906992499233636773543667083447773287597456140678773162336276543852230955892060067005572068615560309079780989385340959409801975755616752415409061857974776576379316989115665914627996851360062785984502515837268502712792315606026751308846869345941417979602918950472086497408693793106931573703379752834518609676043383837030417563805365694919276997649571084418704755460482092700799560999289929828038036556833540359775272731015739532643273278376859058409825748958787553981836624361454042028368861425076954265784219664694084671345781866481091611284680590200112725248322039024863118885891113940417003926770435313147762032708845002510285929638590631433339908740328447725960233498745159275840306114793330858387624626333420033954548264842430628793460400902253679320394690751387186331311235827277833029751696301995124762307593531283423984874585103903955177720997292348246394704877905847138931134339091189303125522028434472766422604637763420233290769551249342673163920083403821603290107145730679930971912455060944281049437355399368524817850033818725883951181392436440033328678470303730311879196475761886628352510395641787663356468533855339431960706318177496567165862561974086047306736787771345155325156816918138978926023749572665296170612003668204704412866489012087332665061884221468464819143281446947113841782258867342419254147042573758627563177897071911270604714595154431561839219968667928978322750237065718492752010589243032423317126198068781415980588426902963583954602428814392293036375127731295187053844210898217518355435841746204272787886475401285697766879513416378259331582364509306077366664274196014968530224588688974283918846150483814955385671448440010766522929736147847177592660662277906301325119484217292960251399820611958021275932247097300817165889324631218014172886484427487806069077988172386365613001557211267500301676342213818024380714307834703006300528624113057726875932781057241882150557400142142077285223433820570880716214415668671635899264986741571923637313208794903773910868919977765051390290571096525603525951917785767375832963310663749106982708820008108959280854688902964172795608992248855837199745983870107514254590716545208725926217626135644264246280315634966733623853821120495595508581645030825944076202545777823823505615035806334452553731078712941429239975783752482617783777149744654740509412881069672212049905910545757518923042073593513920519542356401521884756993399550040599818241333540053266391225089945392548142639431110145730223984534949523639764366302141674362352202108010518269365153195230254565623011086116829106821554809660550039814868366547238285730064861190885173041807846383497508690610231263136025524196362065546224624355408504198252097685824534746012416374023436051844594673847161585680090432777704191491516677621040963224266500487428496619763272328551690178949788875866228180226303757611981685074635335012672352377821747653650707128079277703413533330469802526794642389710745517679144909756958998074099632923406373982414428915125455947667305248118273868947751962678691652311105949835997525495018887175538270110590044868448076586949565546335256300042626802050961391902034857302706711108860788681505864847589996575943792638962162396476657913305009470541636136031969829066056042213360311784113687728279753625908753948321033903453900969257539962431245882781779544475772885372956215704881295597275858316057720737376674784895697021329972298469195957687229897838346727520621248265964420260978526223651263053721470215162371050487465968362162061521954371361739801032345741455254240921225373674679243800866571206617573066893452631884277265238125639046389643083416522757166378560766264928323347044277945417771560218298180086942912621432934518416838262781571288570142430682071676579408148989051792349311497099054235409439141946185450295603196111590266587431308981730870617273593392705029618290758885852667403762704859425059041273026986835246073389826482027114020355899706432250671482741645484500614849432887598354736328439172301411377850103951224579236094960272809611355456869193452916491029475686250177948387022374145120084274468330781763139295481464991951096291068721141867072063187425744798225093726266791768174457008095682523992608067061658655807890924904059201083527340095524675463932664353880302120150123316565266782811138539967427110379469344063581873841087712139490493501134526219114038291845600071128118565368112810254496344064746442948875605080063672111456680690227930017854649166235044266930576811462245797328800675798376369069678166167019262517467936430333880030977206492198146259118652233491451607038702396332558122894056460806726386761567583722187327155751964485446290939565701203884893936842388355930392345207815356338636721657307191784304189927270460605959199707069292124131360372737889522728463453570552552784004820458458587365034977418646797181191655459698775430248842277778495353546053825636202232177488196563336833637819378911559781273489611881426497612175079695375565265104941951224086019281040071243238995316372090454426753300239518312890017275960807138182294248149989380317092154785810368072552988853307779482081438849748032546159844799122326878704138406988277633371788018263195522302373432385418158683178169736617700751343813496334062097041899162879608888663673766147902658047503332722399968925282096968993123925956260235965565432367701982888906875371339293006684422399917634414023612120028537899677732059342961046746437273979957916537461890202011502261773099697472365442971817955603227993292844692940808960411812021310993274190653252062812077223798023447460068318788542949163847025559520022838215833752853204674038654382208369438066064839364302581097790584135429481382923846153602820215450827805269425156293528460669964424390652312819893567585433516420844218841342252133719561236042341865821307007994252740918022013188646287794081449730221293889206229610164804807360202929298141356056316354710296686102997320266666130164602754477597903678843835462910002076814403169299780462903648924892583718547808094038796244944795880432091817233314166074040960218115023749021080030809980738215366112496582736991363939465421312997759575042712385095640876627965452268775574615165389569216569634000523607687757169551541887340415893874806833846700529132265417581377540495898177548566874433617240966253644100385891949145029696563602016587291943180609774002568334663385265917169897189227764884935807865510340418680609576337922966151853906308591460015059200017138923673459182815415410094682662885811110628408564083493611652781081215238182382195769949733875602019011830632331184419624026933699114180426534285185174952468848014442939552683981632772473156355434527380942650905717570436312368673007112310181112565954148573429581943990785765429592543611917363350768764813672484949048355472662840509297572301579501620928484636859922444518139977152820720224323714657345382365504039132127550320014935797692310022849472437902684775150561113440755397857091620819271801100157787790639431046055664714833554722267263181781743157536357002973929389564624271817493399262833501196549254385254755291577754818156046533465480610485279356668789027778248114194866017818065745388698818162521636198936966150732499308336591763427624588856485183604055400441640274290213822506743380373873240915297444785039585537888236777725577739587287448893533869441763817003073971627610907657438502245672237892854702370117005180616744208039724532006739548242583471437781912833962263534662983994234383316676758787950244082198391923021581689280895576236147774002300594369434954136749470221735227289804596940895313642115756412979834567615972917420153941484927168119048549472261469811594151388267039677565592705536788124727211400614461672665878324962696300818320214163740131406608132420182369712835213150438641654673612405856564818439571289406374931058786980850333283142277499041655913371124909766836874076609217667113878039582478903569360542020773248606154459938760223696338446063661165611046200160038741357259633318903631880579211064306273337629801862186200940668186464519884793133849590333076814110380022377904112925562434180613742673165521057730335986173926820088266869076446354673348259016830809894791859120677222521826485214802214069704842589903894863037385106211672387834060146961060906701609389696079990243755263136229516047910569964713639543775113448089153957206130121162868774072397562386360477742411309203620043052331601727630621194344925793658644537461748183150362135847101696670301460888310204830315436449575245205270736872730902856675506558824771144230867085578634374092799502539347974115170130126000563068818017035461593134965769245914677136634654749713426347910003090018727821919604672943603954389122482603059641030808871883840013815015163724190248503903182089003998570157617583020891954008417616841840005661270255135387969309189945918761022623458970271589409686966288490493113348505912984804995204806474424730245495544160529478325733176654545119762695417409323497757836882552031816940096784115680712596381563510012794497338037518091864579574620470413678698852457386150485869101508542735772499140101269657236127801879013353052345990983160818440534051022453464650980747664280627568400845744145241219504202254970465636707391432881803495208625388066910025703459034159085450570610704282656953475106155006788477961672631243657368151422291471154382681119679077340701276593525711976740245703258326604088803938964762178898855938813377995776867714632514282480520375028495420533299848394724539642369420709493228625662217902776124926131717490106300106339830760352013544674984059434268312664891743115685095882124293324498774894360025339294323381475346164681662959843315275205337756601672710289368888777096477843409526168505734242767592612722003111924098533682190195481009816575388847024303329747164341243268203896628645736364272156589332807290026924646480063101570113490938137373513070350367928230069285880233600409694843844063569068887810917890557064973287842396837597597072789777585039803532065444590472410321812995633438624245259452760739838154036745971268735949046264063140432851143721654972432538616308942648850270956383230314992992032039690432028908377807344273433623954684392330010231059748812281107870427087001930019395540213700506138438724867733243810713459613698516086353292566750747540051133772843359777652588517719955321418186368241774637390538203089932919829116932327073679284083995997278564353523904373217596812067947789481149615089342873194069823482472190507582119306904189052555494588413789783414088076346940069437208561185785857482708197848831295474642122710284291047538365087946252933896715323364082777746966103264874337933663959242357466400821218965051944195985480121252842736521606386740725340656622740111991826838198130088575866383741163447924648625912391885346375122751230571784633461862425571191790375319116039471778735476163912053116615051418977402401300821846051551195643471186050843745813600556020332630636066097862865186732963314951834345959082125751671567260472622120995301947306245105793274447886108000639096012678223807555395792239740420998570008090195956729201652657570446839250865718359372204953749068656959517633228109234029262353761013551756152132545347614551295359458936367435235001987020731982352082856735202787706234131546048483343958798666579717823834448059241951570769002625251821970605851733383232736612890955744513157629400827645947687530151837944260369213393822908422086132579617398807351563256254176745061996594483901979119029262945656615267859483526467177523330494282571094916613975491476844145494538433824030195228574748402805991025403999972426585736029031708699057350380192404171578413709804415380608967797432827347698718090157799244355914604300788791060284238339785884601557033783081579059070568091219594051115625962055059677584061720663929831501870757006657863807294743557039041642072366052781907285603394137031902762588265755238627144040171034958914712523495149543600062194411972450322655878146111030363060169283564534049008824110274824149405359769641640391668610177981067938150422192206442885920076133275220043533758046922053588338829756639233100263386409345669758203937735452165769526759835539628216914201387327644042010344645808253627716603421515794310022734681726746315998956312728722341175396744819931236045961712850341275961715974724605666658423450256785219546590236504904713371239196201789286541880064748150293987284922772340493125082693789613679851162962879694160978119592291424056626133069116348301870424874488104628277942331798857322287431566808430864250009059062246128772260714164647378943250169566541113020228831076739216217805629997757065286350531070118575170053080870873074693966483086173058901840142857651508991899080740065392127569598480910564486682430727085617116194408195482719632576414362699803261320294406337724566998003717609533367935034837377290014481212510398093974085512736295286387760276786109961581884833715618533435193020308722587002416658180700283279919033013076249698893593945562875310486669965192969923058363176013591383610192837399808916817524987583157112542116167946020301431213090121099807619411312581826249098354460983596179671884248181051878623572495333165876933149621498031917616673674476165167385552312962604919872672106514055142579219118263115906713219097611589904306316646541876379361133176307233519782664668778035439779929909289537066753218624575085679758593576764028977479320853816763311682222795755925734300720923459739266764709730545240233664428555220096903356681354343308645408286601618695769444148342590389466262508881619711182314645730157211004305018052344747582091416308387936647070791468265590530073671366599505916592711359221247106765838422508501255776283957455323113392599623685469667820812805145928220522438037446471042683160016269943457121074021357166167174706756156395665634822024528928590050095345884195784551127035545623234584505553230545620363185191071145619633812901133143221939505626712649658842154112733608766522312740288167054101591340284876653751573243879924537093234380462785927562601280495341654348409924549646407491963468279953211655252877437599442432727575577660181711649558850776964132571631875081148300865717023918571091094464781077118516269553841186236899691922262755501418302277389680607289925973422823866236425766794471924350242017190065803986103833213314044129701617703800253534166324748077674352985934987238090176014946289711863634405809560527761117993510585139554004330555873103239743804523926780854458676836359713638315557763761656949763598502438223831723252177193948586271613315182503095362842018893711213511837259022985834165893326791538135305404365334781536131577201355067362818745642507993952552446498725793979033548910527577584606281016148054615382414597089635954235278237921616858941755228755476061831610843630559869860384938315442022577064968740189995097089777578130751709526284957494244630282612829770865120510927743421600085601309477669212990652796713819056192165640899071720440447435695994972131859311747946680494201047781923427030948347066783343179369913416748824136656490992332210859161351068926891198392990443804589266986048153141225920576838913973161412591924344141796938937280746940661830651737788313288384900433385094650734278099716610224221393419362990766085562058807272902771228946543202132895259744527726353001448787627164364053643559755576794937998415961864877110704992242423213998609879136483146375728458075675163589371126636923165387387625947805708123837949598620892459988049114644968933596522695311301821659097283521794778750232297114116912125879270619315933625825099287730219947872286717103549852227458578591195431285023550080884517229406514103755677533432798607745280533013135808120460730519361077267727317545954517956583940609131745595276989197040585095849304013519711743495166337647174972441583301321362152540536331688902139248392707324798353254868627767111318224544731371893952425950797217858328006637355773683842334292614502704894271200800620013652952719716481197036014551618951499420099779572010908742549075626308464274100358192663150101057696362612462934600145511784920069623441491181288389406987140670870974053878844786591767969241429376434641875710649965271231547497324457076691582068723187595492644184103195413450091330009102606375005660200311467646135842692778795170761206537305049529950820913827014094735806698619717226957865677733701229336326187081829290525497351621809726452092040599423140797961865613010239461205200624616375320737954117494501231163814106759484861012742694936639503738519707693452628269798589926770061584632329476340996633032929999856835682015078600017647125704388098664299238763811152845033126573916242624349915315064775259972181947278968694417268777451858725390696675953734057406468043194183047340159811310802575286465596826967943055590133917071434614364943979874745959894723163693421634977199251854301129912665682184142009569019522884939463011527501389227268048176513993713606951378781072216749884075334848095772454829569647271546085996079482097437805375699812612993719463736254964791582297942717698074338054872995610736473271453304701201376622723553387122820617615840010958972830802179429168491018496057479957980634197748032940100183610082775573767636186389136685431090049590352877348683788257283506802917972864717831508634926395456962865669063202370869345442546175704900537994270018234466340615225091114855398583514854161496784572068391621455940554132425609525846564535162898481231834695605011160942273595003532740155514906836257616808578980590409524341634519615848054905459693501370119926028404177956665861354456488728529146979103598208194626951487297308060787906060047775169070442304762485718392355578531510089174940992528630146752919997428735792709167363684957407797601485686336694694064816419530610173314956814466804015378884428568764788987919397647624192392965041522624248260243058471670070623926904102802415389902480922096487675607273676809786654442855058278007469411020713069580494204100282718048516611900474947474373511066114201694412703217894651323736267084932160585234995043271229312116402034707203507048621441172743463152530010121152893032471238562243121834661994429118186084298857134334704540671104308276147745107375451177827141128002031300246196960900026444148020982546605079363693191369525616775365261285237678480540001595442719857037620404821936273120730539859619879281568390553605416041629460589255021005270023496938842935865803202359990494901746405017534439020378414056446689813585961331307054126714144740754301088930152969222513123079496275449272217600384962586831404958377715065580694212822979137016573152179221685759828925589077372011944748686424091623155317473712012126495913241614175299835771781740881562949493798517401784382570661581712398830106245280443324349511863889230739435760306887693794087935333321430275673271004192654165333734664008066334379177460588745977692511845919562453434239548092730610606689468316308864893423982235200017125045213510916979634481909966184137943252466696402538006304033649697854846227109186490872024549929421651245077703502752445843395280828625253234497980887578734534665001245831759571356987894473668090942091684611736484286942530601404820897093829554827837127801755638741247796246041701799210064656539719660102418532209130960781541577310507565761460891012690114601948484199986179000555889871695226857600571382817029050170281047114415821946471677168813199042460907135906078172808579447673100755027434515461375321453218145096865574767601010328435571853690069181393100908166578769794286351625819348152792781350986697266094982487204814915140792254241286583830112527324975959848972303584068617007386258136019234417755149485889017309277463257722982858110016681763821556650050800677561752368051640594968288970504512394500989971442835614829119734058058032163350529940888101314415073504376689762165848036862389723304869831016273323152343779878189364502729493694477225578935330905131680709477832640130196729856401153218208689879221923523983994865902146747926925800059990888508047828569117630136851931074254645827207507486300793027483835038360496276364723975359837084319219853526286228520910736852547309317183748808068865303415255120175391941300633914712971442926885029190641039985936152339386872608529939157555857164697742806187105858882967792760573988125650436239790733282672312279511437918966867954928666829684824781099262136701356951972043471676876053324133851035040582052611419471576059614823458276299685782204763125340181987121160168478674800048514217572538644233578574555337470788851121916502553153559939721555829800451559601046440124867158880085167487718048049814719232459237919103876244176290653632931525878450956019292834880448138152734892438314311523071280246944414637283899611616676174116162444899177342501414101411350773038258093557764047890972673230462835701083731059703619504778266737458747175884313863375282562184402193128483993902886828131204113819848881402517066909648103216712678611025250191484268040791886907963925367653211544226431252872813650342203241936630448376752034337221190570621273950031819367713059175323116606677025262338210693592540948020385990838739679559119307622187925368144000495111657236166574567074092870649520073070152538027056269382478789115165455951285816603846634400293670080685555422857338357335455778292186974156424920192026953630666284247331016488004542215985898665871953948170842005486413588962214538109519116460863148575689992987951599571875465647634136559469319257133787913193027591450785642932379245980001376666248341778035053209257855070915975606145424687601844814164716653626423506762085216629317187934661907837958391736556570370225644911793185648719803257670177604611498255396685686921136319756907235022879982514264809643422023904460432723986422177897381678479802405411680010736509383799108792201334758347565663183924643000947548980281769397670100672095335280925707557716945903088591477631644451583262605032554465252946827319380176928214068529385433003710211535953889949352773528734189234440157191999857746083730408546776582323435014543706744945987579407853633982772294360378426918045270270002140417620991805303520290400403087730436020622137368077448618963706551709059460123329123440469990494459681561472890684720796489165505138485068863074510586869304924780516918438599480956129205156122043018098143273279749639297383283463131835385613363612418605272293547257719326691624412966684062548490427899681847158249557510631246216560514325086124801608669624094395797137261859330141704604775139918378823079938293270333448370581315019950530263472872151451079421729998370205544328249808984803101015492471251792663362304803799837197643001960909620805695355242867299106027326026694249357465797313225903099033315646182061263373126571325606318580422458628544739203294210279492572573553451798118528111129321183926102795331484943766356749603038683742415978963544877836134701182285007127420991847577546256707101812597404826536126043215329861432909421620290140318511789450378020762389288829260876192117729294600831309686730246878286650121618850388758957701834238269667675394698169378193427403648844235272653221339518983179790100607215399539928737590596208627451664061837136243206352303946273040144471674441911102794226185343871846118912731470949972219862337838135338054424042733560919339145717419386350219439740374981118140078904913025413686385022684135915399029294707386690296492459430187530716069295967819899686765126201241533307429309439661575011809822735221087338253961233957668091809481453164148006453895720406399887673269105707747148372798408177923544000044015407051488281055167732118950032099826590904932754551067461096619384556410225577282139947539424167136219928806820673390169320075120374612667483019150020028524546191258823235220138091533100030981980970371118580539092876747751779744456808056714465901844203015053038022894251900913290176706284533797358875200469783643684970805334523064654293052992808067873930348649429191330276183816642466088815254115248620815667851586551145678820140280268545673461717936657417743619907550228712647501172384792716309153559766111699849641430077569299335472718134364171209110842099712327949622552872766536430049523765033742164528499921203239715449637927080493485254794805706471944330083038456409539316773098930405313768429811140305422849792106503503580727893518791193402845599784208927859417556959697210684889732560480273134884794981887272654207235508635844891329299625626638240228868852097214673516905747810186432707124005823077246439020207655553322053261449910277908167589732879563009723508271203929564775072238022889232052504759642641941889064684512899198429930981737789057096011380233199440192980906079020526638422303022117573644484685335317242730739506022351514516973467194442926450995519154041633440758409006803276774630002403805814999147485122405668473323051398076458544171463938698791735366501423222862714958944473550379605778323971348390161206008258395064359531226464947575805058563487921213210922415676147313956102994863936750008067748461290654267144934699382396008620710484389118758236240360169605707881214174184887383862576801507872201921042427322290919792373788452827237369634939323333292021008991024625859657721888637908847315241154518668636045949752959216092711976196145030593781904941191927788077847150554016925533469915685227689696991251019618751774943794286183994034039914706486737904632177367627524171368304227295263974411552712323357934636940385538848169502035572261004771978892452087880297904710802272105556517395635467101079473669017366203098046610744244105854930548112000509905574284387700917025770743311990414722350986211118394824475906712914985304408304358746114561933685127897955281121027998786507156742848826461088027815481888781396848457316034526559956521425874774296907831312402661757367000637366837707199113884852434181015550916480316886177595267328559841925696000607546905071291402771895335319753158838370173180368422309281500091279539231839406428377225578207246350735760262879083563618754174545760727206690058887917752074028476584127545932238476434985324436119195583596555538169045591656132027067526826450063462851197673653211807634121299379885925795181604544706601787753013074433864711696752146971567113369876199014786967665389995071664945896893609108230509006773508312021473446503246310581982177747197214958925266524032230800441338400604415922831269799695452287286588135115179620176415539599577400687865557016064498562879712186031845510137599352038478684154207076544608623952676172462777552846270706318431244263642589196848909564579602889267143509498107380494277983487414480052095528514101427670622671419005813330862817118438415571342066340420363898417012400653305510244198389173644276769909730420969813116830145931292256523228613897331598239475395462455221766005874536605791394297520326265703558665366939790471164256614418906068444021007860031114331897939623692966121544837495935278247567696947417377330549940117259917825602466630291411511630245058640854083019133052888207333368181416177209182406289742554218329638823167512526318225546457769305498192936718942507670880386406370977727292631837049633227969413613458193858440406490216291399148778149755115144496173281909761171493374330258355403218389400396743125931906653157906916791064228374428790787424461452866590786134969834253932378537246316215826094485406530856268293565909494198505755207871605645993195252111733875420966984346458040474073745162182211150415782432411631722438503192110016905643950405600378930603396513123980852656952311329870457667966400422303347742321921151438494067430549838307800800986719018906355670646837756381898962810109438145236012049318188193472339901761443101310833037794223380203906091430089596755811390147638437320068278551597955813986501068948178798066732151628469582455707496726751282702947317131172396890425500134961297919684273247590824314897711433646912795358526683035649995047472522279619485559470113479760941351968243574591177665219087040704393816597045755291188030910788578907553942966781228912998838413785909821142248983969212481415678085921623427233709735313221047474411851489074108498737584266813166319267083077335382950584419465616070871068632076830489392576458930251537062833460794466064343844276675675541839715923946463549641800801078355071926673580350514717258512431234418208056411176647578283515035128713269552517872901687409329720185003537104127527857930267473056425958352229680380184462122478851684447942235617506635472451649616678812830435706055419466269144183768745939951971122416075976679604879892132792266346943004684883631014424756881100915865531623637456367784287235053033260101610945408928715095295657221654685681311074196594486207482351461885727403159372664156519045437587443799866533351629505543800596997827359801442486761212320166228909102112164381588352683788627866192454405568277347912406365892040555148918204311150737261122749920125149254651443229175418841146547040682583587654685432060873442360263483864464014808191919887346009960993532121037664903823147869546718413290889497762154466543343016873646950978931043917454842548380216946940548099778316888902484881480169193528751350725247231647880959454071716271669160084993290296907679084971845812855074630345806971906427456727464184940886452171445807809159790938663946838339273540913983755963875151034746029545913065928033370459126854903654752898544631698059057349289408495341623479226987384146109891673549166207047351801551569514858042880272675961058052766083672595541880768460228461485491306347675371650373732850569577607420835870080496812855901856096790381650680870558066313974980881218509090740129043173378171066528275379370221293223633639139157867918531272436578756157775202933496404846123887613246495310501324943075953388929476058025946451648694942778297904863483694394437114136742006633934418247449633400418795898688652970349259507154342345274997775516882866631082385567752238563378946717010665656709784635795515495903897661812621346679264045873146570594863122081077617284793477602002020995717188420502319674346510466618760028345503383768994450264239543963720660794631200592572817107657043519839856938710087594879392694896283153392430157634721638917684965552625146543555574823138212429972428563060680265581552610881537756299560215872260466672994072581486678317937377456197388315450880860111654482154635360119888184007615548161636048566185659597284217737891499415968574488925386220462533831098660889704474007358214583362824938354878030954462008872552779112978749775430430945207450951274023634487628908011708099328707955687386073021231424686188980466463328752438794956893893297368355605042370305189614578137274269666746988767236451456973435217035462799967447539825528669459653720340996946090402859893047478316945397126071050720051467158883564381964886325011222080437896021702586586330540535807164465769540707817356712679060327775150777932492993555791876408415291852462224947336044275211269321012629722805297838983496656999736796031405369033774101728797981154526430396658199953935823676004865469824384678188166731997684003205101670769597486675297348220371716563991075472320428864537759638056179614518744070091465784515264241759599050831724356827172202324543301168437857146935998034298449463936376315873286473119459606286441275321779360753209269045380720907221382723243383737414306958512942727561820826448787778013443032738947280540251864547871661128676150983068835773242491763258855398454825563100133763284562225683352713918701542766600156386370635499187676382745021389906343481220569525242463098280215268361546761027325913982833113826067924669636950897690678126743810915310579412142248430046745742129546111532082226328511737137728014531395333382335413829197038087332883443454325153735132127318038541047540740079025502090687717994131542170081851081928503450792695799958786829271194313823715750824438883203985947454528377422222246045436970839652982021201484096477964331065059091221802714782642837637136566606302418125731194316045173795690251021449783017419702977389925836271504996179701714218300699204558850388786599088925797417694220608355045646992670197831745993126241772074387323067612917470441352381900330342310523452628994374275273106203814448908395104439280954176338910089151278080908502462868211303590422940296609432066049294039804424570701198959400775965342685148102114098859642925859443533909584965931831065606835408510212543396095999621270603194239285647241221317822861521398301590447187973556716519023346150733159859166569817835789079877128012539237675599320044372673618136072680525508438346696840125461534887770196099017442020092184135717896076218014310976858920435797292761344064609284714695664599318578542548783297957606639234537083480404717331717244619256194288902450688487908302167860679056953845430332584363554424899619963920044432685333220404486165938109543367298417312988959981618395972856470026365569446099443797898657943258548551099505438191176063277783340102420705327248038362118798831121793116417012079817936287753797026195935651608581647266397495418924475861156736997842706069000849473060936707756081155288292084943357871195452312285545773271982066832238053756339801951751418076975676554089003428260297447483734452038294067720207791852187099117155983659363667605107431969161625795984574761995393131311971592587707304451799405692641523558743065937370563585228372547462329551961348311744780261930467565288667746613241770304376973370616218883963822102295874454935891502601997467976602657432293268747936172775257583071933620659585675512773474313321964857477162327130627736754462763006985792474071639717186258979619930887912152613795849386436109723294433551017292764336236937714295415001834379492322262903776690608983343677632084779908837021794306707253781319304716384683939883727758320145076989127939215441967472786449562912678146512357633720673388428313895614753661821779931664580150262271674912773082531880875753396522301527351435724623127386260851077678787662535600839157635797050562331533350192104608716076849415666398766666916209125260743341920469849078147682331236981357285038582789947283790556016037403481003604966285056859699017024422016816265336592595971562331843313465934673325737429897151491384311213201306219681966593876195972353297218189978608755448238337136054326504096479007443908024839458557649102441984926559023308125435870319490266303567753302158973872278870517012458506496744806674209094113968534964737706092363824340478180695473504952084771093334818665373001844632155385456691492667835388192872855129336676990788433127161108392566459036894730387771376685511000226237041151408289802772819541826582275278439475785590805795700036237327211448392284166976602588366193394157845213281581814279762596919448964321168180165736906810449003636798412356763084437488689476325281005258425443894451038157854049389963402088415097239196133952082926789150914274858923228179893330086673758733161722597289435632488219422676047830366692071231974881723470368889667488775401162190556623677748733796016246306951675090973623440765713011373207109061564145109163631917788038691187134090601014535948492277748178651425476948917257274545040510085496808461109337675443279743876063945843539990615493964642281733454771342287927621809596607660131789444635483580046006330007219556596714441803998588354240030408908356319717394335470036596185303844695048645240711290024476237960608625195322305548456223937327051313495314160987511071998299522850655354766910529878258904488116805578437363345910230187718392038374819976525938786844405076128548538979779679968709510560631559892117031495528160992006168585105022557412940413407115017026472727323837271767343083763811994357362388401746498581376263256480560460457628397687073131879828815824648317657370679219421013456741195342795476149946331659263586663086946111574696543271821004519875312751093340363375145608399953918261016146382907790505468232035017059817020481287110455595706961637707965307692585328696324329751477216905632266626311916329477682355492501993661417349429175617143573028892211720188249695931178013718699612832693499630406374879833416945008853290041068786576414730501974933301844023270553140135156111673331747782965402509807162044686721025007399062197994403860767204616652777879140861433428037930916753577515927773011679608824721812245833336779494250485268651358251259585824052827238593741541257340295027506034171435592697096112877972106401901237671075877337862118178669304947440645133517233049615791046086941236329717286306719622262537151637665016202077433400488182876037639169404880370157643102483134836862541205888723404219281887226576854825189001316292735655932345429798477686126883125529674859335610632150973916746194191606303730404275639160673460212502085658284011043526594490234818058894606808076706949570203278451796363968723675381633271668784071174459052470908257798998643840104338231860828130176974090843162706309798402822942902687598174034722479345847580200922070973633110637201417420805376592241894116035622935587626812569815304521500861366609934513985034201274476196037577066695408789982017203683148733800604036522286796614355642534234419289570232170355945254744926510782466527868810684391891419074205858568865752877847546007059650740739233593077111779867765545631090827591808052535494329692024071455517075661955518334469240674725367274342803823109596149330687409034429115015264680630321271802950485710394857044333603258660859445908102274686329699103027635959686586749288142002559320781038938996397577669027751278300321424756714182329476720303227376258057614824448093369043732592089964366060027474662815135872426265964694289778149628793583920666356481917639669905439673396596106522612524042951217595546327978814597795066926194708577356588696587952929630948821135657219131229362062000341889769769504578531259749140955576092640006468239348204680739496356031790594641401712408863508532915000644467204573054521322973328794587534359360414583547161448606266136427384679105689902922373206814792382686498068385147666738706817911976630693912125917826859642493197397139910169096908988629417020226181375984076895208183775514931095385969756698144923781147695083786537065815297518134979782997081252031794641574101790806030084155774291943376193020281505355809941566086451045292068334240013500995586503309785977887141539282242061401182739345812378821968327692094774982887486429771367817482198696344947471885619721741339396463612051446497799189837927419129897735834167238733516081802115488720172058751598121165751135765881505221527757836134288089550113461956922028880306317154444634752910169957817745004654726454896137629667492567598704617155854181228390668111336068939861559574857647861871895645251764950851916054463591405157448249721998165727694063730971519540377398626965377743565303567678952677250819540003272406406786761551677445368854369813408453494922575157813639016588300301377967900684223323085757857096893225738905881551392090514003135623252760909351084745711636581096968615176371642282340402272651949525817424131755859867020447756711699406903182605306407330035423949568716844823863445248595326259828128093194302330497876882307034745330640675741192687879514409014516851167380899462413603620886196856925730440545337437229421518730273679386382284672517068812258584477314391267693525560770578963533497730898293560543815423020444276242982350729660933870914558771720943096560578741471011918352470498756786963376063438810168458924241086983820476649921301117444780024362033155197016330291949602185590215646348845477427104360803956570410178262510316014936611326903291381561740687575250421673210998750232039378818669404741389346757400754840672171078472220890784054845370727361755457462142881207039911243872456629854661628005146265663679727877178211731081307722019145858383638118940863127398820651313734340549958332638578664691553657987495113101417542027637618055067999102821608575974803568814978075462560013406339764141061216351432507875625013581390776520733508919952225904761047731972475599599572502345409395601732792338519987867416941898813676631152216809526777227169545559592263564983603914668208509865392807183956014091505437919549387640155718350197756497166659755368726012877244497522895676948838133523280912969869493524890940354846136365631495643208931482937801416050620693636686195415067733758779174577938611591687305906125789850754752159802388753269234665905204356552005542023055328171724373075351317222594237759047682393965296955707541189612180269898702421195666695546718614066728772700849386095896308303597288093632184693162865934512229072007494167290857403539882527213137063044381518355676600285344146211711722869136740399861989584082112414728250457313605423611892341650522701878435353826309792685531180530090307702934718249218215773196858015498762814967787473362698963157882029096602136829912406277259103955929053628488001533820336427297927953108080198513247972578319210547362843114339929895643786938393191460432188957692577287348178307042427791237090737317857670207717861873749198795924118482722782165044926960193062296252060092971391067290066748047563334872174347129541680144888697019535997556194688572815358661209907202674561202629083880856592923047176472743851855976946630131492996208130436340273395162503592848958730727634169799404518961615630326299369122208222615972415369730560565058825018796094772065900307621817858204978913538758328905699594973080306184123033126749582473191699805325612781662456716999812933083344557577676828441282947032407968453685729023699740264946336577987116869981898822249938340311871545295675030533001345049686112823247789132095909928709926783468797039873194546189134547818433546237872653600911718148107816847902137386185370258026417082118253563916790487018797769091320601406021675027834827697986166983203192996257330823871633218417687783018299892473801989537451223997693029971856523343295697823233555202601820466595115071580020721901745185718191676459478994726697887588808265265799867689201529032271947950827966971635061204379944731185220738104461212718761720944738949844606729103328694780952109943452866169341388747163513299739133114435593697562126774696985437859675157434904193826175637673079812469419251620928472078123206634631451634984560801022763065270363427550616937244743421952959049904582136298063155645469078638090274775171289216625755558174982415682177786366272168182616811223126796885186793910347255875456138725191604749621699613394569494665773390155724408921084237746899540615054779857068904944208553012742055933062262545720763395048939198008998065627450773185960172788721164570358826451686495333214993880811449787360428775886523222999505683577599414079597824746429247149903709371608030881702791899230641588018237950007089385003868728714460852693861070492071949536267703925985388563908143645609332037478374915675591225107886067803135918278103277228085119421685202873580152660652627906079997069715044245983758847693258129522202871028565549579994036160834612296137597562208407448715108895972143345691417921092359920556331610991040906486882468545181503971218434362800526865664692421263119700822984602011506057171794907948775068673915695423679698155431761078056390496796637516675536074116502522776824396148568080487664319811742610654829691786157146823290635784199382957844133874421213844098578198646366074296133082250617894819386211705654938133021940005181750823485426428254823401419547174812477467343820740712150746399286749660856770899975752029097262367562870359382654287834756226717325156602899420192511700215984891464841335175608318527619698256028428868508146262520706874408601842771380380338470571144601747425579383447600609422282199289369754298502731370920916977409183942860912833252227834694035038628817822294297933969172936554345651964554561288941686353385440257060327047063238088202610610625425652497589778377297855440978628635965411536346868524903959857391865961092421111649742721536594144544881105089911325882545349531426974127664530365343171087290252216161034973955268441897042834428239495884786572566778867507248764038345091160274552498810493369863068944511269370689973928388800832401394006939379622622369638600745011434521565784615974299448521745104882960571092158915542558654256079308643152998559362041629934273027058983403603331899878101367652781896011757876729001730062563385939929814384123550695743539420127265680102392043850439742247480890355199965509518092249983977861307442827599065288292555541571169098590342233008802845392205474733473554602551013179528185959527910297934745658342355535703851657228980150351512530512221943581166664278876306450684347721203611622487601407030680764108738198319613937171940422388852645759577077827645294388594606955576392065848186122966029105996850893232470770294648794848096459939424267056665735530663325406264068108567925977645454227686169832023271577067609530853265230398650820454541242371977490089191295395685187971261839589889925276744193187913571109240139008041815677333690634233208296414041997790362069599523969300805869650134195170769329887444528150918993561862215697884759898616766772884504087947164576666177118276597998939239969382977095657976642206995351106089149200092027073655851441832702569908585067620710449640964898040516083348387215700550156475575066972685859823059898216467707399719809602044466905409688120118937483879449521792851464249942094724149137557158971659039440716823202573520062539943931645317913518464336152628956954274804849478860009990243560913782153608454492639089157107546556064824355499562734987327316887546985783895647942054935002306010088267697262956997337480959989608156717970561246080747020230626216344722604260634855326163593929553044783252343225722823116282736502314348235594052845560641895967137366522855573938095285675915668107545236042810392598210462076272548741198761074764374475390967266229834642279449532729680539431004079361995019232463648893049610225598233830894977498325879345139053402962468065333036232393127807849394994320123313154758039850080033660296803653623645238860173830484537649177034368828346539574009347314756147691667005629857543594503679029951934352203194769872959611215249720145711886086130919969838348233840132149685218986935580933249297367119255804954210238674388317817335325945080970412889155174515145070639849127359157194498771514727032613679100464265175034906534037622504980772536516675499489452934972057950024657842423389915154379425937568985253208557358734817605047701241670548915886832768864726259769115818645375316540986966763051758845236173444425168099793166873473385529159951277752705693471009078831016168985952143651869407801800782964396811279930917912586985079727946442482890148585298554932251724967899441473014898912623535162191341765816952602898793803454860005259440205814967293267553556495080552435340657804470086205839237044354447255326965043386040926358237648937015779562098829406105739656039006537177350132078104758737754163473901432005925266637401516921691537717091633572331769292957284038875294829720215362973466023444980506851865366139469133532111590352420790449943986071439675400560666680595758465286344077339568136579534858930071048408550415807465489901812549755740018664284367999844033012613470964765270199189618061482888601985357425690850500814285022168777462810764108388223265524036779226963330133338781286300413715398649211772614703659587137903605160514096920064573187992060548315080687752872816332901974369864898028981779037163558282298192068298881909653367059684514558605300911035828189723341733035450903843639141831155940598288769967130178529580790779435247408008593233336561796687426705065180038052725163454465370882960870077587312580549649415259093788791517058401545531073872264050358238963006706682394351531844006263240198624483206055486198895487681720246736627070953857198322537276350874469538785923175586435102167853275355977202343522040864719730320243130904945311948278686436880929862945792879975520345032433169505224511963558112392700569772471092706946400360768296479538113040584355032361224499611187245518436845266063970615139370460966536754207747214695152245736128870581858317349597204628943044177534149058426987225093693128171650828736768618895781834674150346562090260139941509654768932229230369641957017862271040721280612047395834659739814657707040458862262818746589814952474446679477286147963219500976783909542623305790391940219250073042917083391109761252869957676271601256364109722932325166302661080471918557433149784784002364166690281454191528313821868323650348544393169593623493761980777652038395806613376128016505458605521963017317916419656983105945223363455974386250624397084337780190135282933595154270342229156252228432896444458443917107810744396927042143218825434609685313103228792128618738191411349078501450161734092625802714492557007612172435968863225937063911479000358735258515334059336453912249212175192021705641448705635047392666031812221321475622717013293821881526689625815106431006062959422841942136728259751110323370590550169519975248677095322894221851237714341570458793552192655445324788123590628987134240493384112504442047320490308580800181778159781857358957026695071630623269161375042655126575378915424944345003800290309205607508612445268576829625201452378616099050034604578064360661280500922189777184197373453053842137740913708273853912817363219314378321820526807955578440188236927411110590932570002577729731540582529413227979622719527626443868716225611511864054784838521073961750161957107130434680682772625226695281895609934417470487875842530754865446346446126218917641305658174823096427341478112583916363604177336080210023040153790257390995572528681463178466521438462418857843073068050636890602517394863293885815626239808869434249584409824944367239160503274353931698453338875818934424191660423898688560969266678241448261195087438933543391467531369656223878882617313614176789383857571988520133026076253577559096380174407069963136096345468429700968093131771450288933302301399423254424598297105288955034643240110380515178156603529037227901855260682834648989054636127998317013338102400386987634522275699327334843778674018345093490157856124588472102383636245575832841790179338494276360141667281541782860133560121702313971732229516210482333554041447399067337079002246980004486849718975389602256845897351844703705832771753858115330093674003738334792576443699451071596130578268225732549373452511226401265640450452773086388178029067059959785295386721993798446299684800114253962441638257833004215092044126662926204445656318680853188943710081246995424385711547933344185230144219734492044203187130640963852093562473142776681974511713644464807708906892303837625399760669108696529572664495043646661763042578879027915129959107142071035759112271907492785067695734339213430289934278015107625354063252161570807150903999256167744584800785457123462060290221422792755910817460888500625083229997872714907736042096116059206860942315890903886689980596531043734655167689449766158905454511816287882936378611654002896894789915589631534019027412665910686826692920099584269393426652334597879165567594450113721973757434583585177722542188897349153141547724579800049254086731923857029861211103788402595040588932429425780214894422269806441769818544004098500895676252394275429011741534157029822205342330023276291429078148914773177182467423957047484213148351005130860741064565396453477988720582710538489740585952589071757787617804504028251637291428825190975908460601142319353900116314682868634622162656726043684576002540568714099069834769494844925465687695810992446546066722411181528091676012923451018627488203740130292181788256627463308204093786134947576159346162860475989770671756773409343960244314782480157651438338847794176784468824375523416656182868984106408804944603483767502444792475264250020391077244680528703175651788465515801981421248637483423377730631051580535621147935664977157060406730328247491023003098725864273578698920536616287341176935051720573889709857125453203830461170408371724048102688708747451887428196712408379056781038010983107635654917809737870174668697522390814885891472326379333125423727888206812473284041679524996374860663609761514722604032234819939240966939201547808779872740182122661415613817658761915824410626952217710868122848365241356039920858874121325618340773369558070379896516051393742261971574434652797472604317108468771684631850816023949921593719100936984409757521606582595701607445204961112959390916557461331939270545815521559073196450432691786774955485846046429922827068045174686123023321443051133535406408334669994699816107102488554092470976682627823592415037400690634033381134506683314926864005641392725484241434988489946805430128674081429628188352226696888124563188183996435000634481074035637404922806938750370747987961076715591756980142357646434178911061940541433393833775031318366936293161649252500151938762885944748981510344188942778202965878276522300416818861829822549016921896487322910275894038203233184701673609860289395435328131386081484445560830011508354375591112507904368841778600535755512513551523329966520259272971214624899826310323309252736645368791014740132427244038751391494210253099215105959090604874127991972975817180580205148588807143823500638308938456375677085676294295354029087962953998459838127165550251909613847745831343464354329674240404679758302235755816763189912882440103116255261358803615440184788741444907628183674338428013179880026882672962867492211133426962718835165705626782242799055396456013655419885718595277191737059296000799771288064320125424748964731310498048068209204186225152896662625680442452955003816516885565173457392464572941459715755402680316771498507022621103319379080408998977251939518524808063865564882528088104527901866297233582484209409225003674075102414837987407899830746144319125807994893621907909475735944691126015374616099738857502825438778180255386302551723592271743419153762135829204929735036359956280921112351998495513772637853740240679765331456677491352246928320326600027461266189557240312966746620404270049861088837153210972754385840373954791797060228321306942218168336576706300486609601561564683722508498452197766634163151450198890690823426774976783379084267302957476392475186668490502179519534703093046868503198551938894964456479763911600014356424045712272970668749939950273212694757506586933278933748755306829641301275685459864876072612556798253380793370036070514978993322343435143005175817536534456574668818271786064826816070475651834889809544543901249185236577496840421876668368640021981856800310129675630907204322856012608369267364282431940337143066280320567362282333504270464558894260528275715745665939259846758342570266729759260949774208519636304286909643803257882994254631715499092317769221395269365590608294670641317062592010244103076214913839639673555458184612434131974515435939570862831374212229592885447132323983896537315636719712256955191052609233276987658752901498557215073056716154343433404653541541810827291568953277259276815606546352075877810713018084697655686946572795222432385253141026393727115854792083543604126591284082028559392045974953832181639459826957274038626363137782238382643333012323625672272857539766832373160772666837823417594392013590408072879651815167385577486588004648480646896165660673753687315090004911644379332426372822160136885956456844358389149580863984020598028016484415014251970641871860804535876915393308731713342631149603221370592909438946808497725577676505072043250728283907963815902640784430014161951713841032443191897430325899387612445122722891733937530921067710532812986924963165847410066786775917627104371318336765700199880308462288930360318225399823374887252467530526202506036876764261336579953538522233163720328330716762649174769076085118892611780817480894085770739002331693429359252286644325530711292434335510685589813228438597792031390452399166087799970993478452223897693951809575461467655620562339630053336963543170203014001808094627903265254410728466410634544361961657599363147078893745717300139017873890167176897802596169671428064591449292401233029735326599563410931725009534025956571917182942126711858885326596523030190466639168230047823458952155419035070772990839735283414927547921909397414588056764644901092212827700992229172338145099100532545189977091069469351220153019649442034431429715683119465384222314043746250567862087364384007293440849068657705862416060265898935101666721043867772685960933956957751500408656991251311379809312714986348640292295455010156327650819930372381468635283277783433608374320978818743285658887497441721352354995082516816821256433516942134593574314712282463669267299128267922338699840701200775919107653084230761553511733531596455376710529548819102155091279836952400613425019041851787460132121726790376589213684568910732664675399780392716008022103512415273822363569368150085514234815492004995109378856357691140345140628644833010693611027969235598522945966752001252219911989572120534068355545941372247362375992278024712382253569317133831879694236241738289223657049767378580047687785590591441262746746781511388015792348777831853440900649256997331467361239451304279892983978288302418720657090516331319628412763188954741112225322894809102956872772846650611599580128875754260839349493230527658885271734018241410758221980036185078202821519370429708961019689881574581402324408879171211101245152225666969698167484311563804855672124084431046683852778016297465495868426486177664975198465165803694306450928567149782496016801558443398203760249235796757419064806023147449449011696807686502250493830893559226010636001931368185773402632667580418955196178175163606099631090448907958755568637790698498097396704760093623469680776339979332161394302190253108773224053193700036548364028386727245654467059667687675524637744758194792505730956481235656145808132359323021594735140459219333694162336400533791621936190837893070688368204274713411084681724078941880884505146460087242537785296912156093123903708552598603663042213170020820593710603881607194597955470761877027985812653569098058845508274987441033843647453378256651632243010280231365579494973515245154503624389461870091586946697146618681246918822350422038848857674094343619552832983486683871093477465114017720787210737023401534960901870971019902190169129549368935760629658831670748986351632319078952514432891831164153695188352052673854212215906827164096829785443984618316896666471521893893924235472560832512170336516943647036986416324215616464636171916034258681995868954248017627896127808044041488052976989905500233242083320621529833377990125318543174111274641383689710283493000610820126206743588743091305898683138992282142689592097457432463192491694536678121224691513566415435501350169743878399636665379775248424952426939114627147870367154400498334814139120794885133972063954752720152074727916717118719017973563813227641815429277141382390733991681512961771360157910130392596263107248841315342222424925962594699290854631318242996895771863133061489988844923409752762144615681719002347169481063248289114265108178572901665237144908416080369759812634731775673792099100768309914525960853788240992088351423172820505852017743237087693147144073426153051427330223114535190881714684701024334667862474004342953813764189838004129134165805259310883499051865103232762929534471674065956737360337865914136758649105698772937922671654106143489701213832506122673512885950923506664956464676608735819901312829938230817460773960171322060488082343367116838604668412939796528233292023336324625456728375520157171801676456091553589697787596177450836395339795001076718929723488419835437608544006432960186622072537902555782070341387792583357393016134257891853116366831454366324256998908360020447078085057245570761661389714320834720821159728009174278373356793459726304984189952241456013261290010208562078928857640932309260221252293358576360441804697495511853686990721250711260261817873258884509501427162006436382507665177054446773274854720645477375456371937613191829241901085421443402100316032414439710509610132946242849856100952045752824776082521753963109068490422648384322611632976768330732214829394541424914571918080901319808647487764404586668370543699392456223838190977666140852366881080705847565316166394699748804317230965047713506001712628751383927491371023973848475864639298025978641436515479568402191283130325609546682173516965494543572941109391069005311698085493410190873574630852879927406964876560665611105460755486457818854358527797780090489321163462289274714045263588674409990350664178275671072359313785973308185403096517001762630622724214455818480478847747290656251303688316444260608040434575664876019119945418758552013652089375646992861538255080515241403578819130378639451507033532431350042104454069400168132244732206370138793928438825032023673862707203933873726516884895574934640795027262024826890937704647901967508690896116548900520938289121637316737809409229889083425795238812482168058087147891494073872522077687479900656363839709403399114306364435425378621676342494609768939623644838708034142704284514575450634706920619419900801386475017579156821812270429542790741654198010971387185376311268122349470531493451754970767701821743667943538269427624367425558439315500767502576249966829405145686780229499051363030252806960914522194085023125611471830193252055600695642894467410368997947921526133456495315285851845750712634780749252331097971411602537159275310890273274198662317733420895217881465450062062614387042812869091956788354757185869514254664116928517690457304902227480298080086016798561574425328232796520835364611412549947769779411407403779791158202922725188361339495233415895271270748237418510985533036904796552584938202337818841726791605869489002652812854618456748034894586449793892155208694348808909303023729088949144556681566941772994844154545204172948853387627371456338205820529930322527119303261079904813248319850859871633507060897189714547102394286816435816234161430296019758206258867935360920837754798035755861022097935330379843112829291662971427046719502986804517110319305921280063559407868146573458116054387481310582771890895129452462306838404693968108710126117224520626171067225997363945974826210300777732958540926682990055439373170206830586568031565488932670707452121602835578185011189024834944560292035174621069932163815255763565301872516215387681793489933164146944324092166488138587275329883663570243166299698602858463213064324451512057675939676405909881422115642002786376810368032957375246416703118456290735385939104135241409109880476837568908960868530451836821033415163839523870143597567816859652362392591187620884546523662527972246514084515750761160456463228820344901294247190303160699619104368093887181934459243071220354053811359356898137829711842581784296665021373743520037199759329577846630688663997707889865857851306451289820837629318728817368024815474199262217328193077255966350711737778349220635230425525024939160546691384393235555758707930523110159574035489581202927562207162101098384831572939004722180873614899834935548212876590461270704426531310192201718181433743062051460309281893014325695564828954167771626520195951408424958885014029172958779287341224258474394848606025010700060497590482654882030883467303135153165583367664965168228814659921094949829705203807209067809517588945587130144101025800136414314373504535976582872049527247615026247515223981659694877526954078725780291188469488100762034359495056710642407390282946477817057552103721801279928506457871850005933161645111433124800393927111168943721521672796385227224906922860973967205815516129722121795094669199167988421232329698988093274702891479817383055077163683165788433483022655696313451913300397928205548159154627498313153458002547324300391807170123448541429294155534574757264310821311719777361218560755957516538859110088005412730956923375810585440309919475844915958847065742292183860118105468281396633942735028086606295481228499504063913699969857303329279748932325735313846006121068696596334812966648043019100106073050565793307956138546636413975418839687928176917655582508763292780243015875074367789806133676033869852964352569889606414532083118767227643697721533764151721980718112005531088060163085607829924211673490968938103528577040526771135987335639537762573330832810592260633031660290505539325996062119432884977851386532959931227799384166390951990258597891867040435357359290901554530673051166757676645389012077388964622019806048286965718991514808686460707340931080479296415227627027082394028406841940707963982943381842048825104196277845561475036039407099796268137039830110700137249756728681958627063476892982113652798383423180009589915978714349867267160123230338812764199625323983803059925831010971777528242912717443899676659160656138152045646088795146379709779989522706892521471371094591572547577531572872414012525368021225279239818039446929632197799001829984813263114079051032923325580045503331835392748114213415066493069141915578518626164159738247138209077821726786732937482718803125007237163794425055545389491064174051334709248450596425974241440048181410304653002418215503241237253284406546141142353494230408322423733746290684346531880835795438027379490184125187873964354345670144400131586805766293020048850168547328499040022440205349623265172345151035924855549301429296866277016742487998643776723453525289170048474056587695969205754804021226394589296675435441403786973215767376192029002007215101817146172470924438196230598899575042638852402438585165329661992547683886033381145787147040001862389103839116425928144519169964350108598559605956495592093766943482009071398609266622220175580288514346725284295533402867612986002776010259776643432951178630747464017064520219520351175318815220129136733012539722813302822352118444588715847948686904644609454470400389690270320518745950454509129903903322223487320584091680859253150635925457858638031651859279961389797848882086859820719750879726810780342586001890983907844830307153884424434522038061467828462997840640316560073968524761946621186123856176944768908329294911581115267571066593280585460182735177944097744674888887924011438002774161243644510087081587105344426155088671176219582786104024653640557170379953052925643874756508884125113985712373363535570238445338123797640395807132582186566256187426884853778766475780084812045510525779435503042859197238391262349184515516562683255060075685094722712421178997407698831894923044458996984523399121098617759875320579634960817612520571527028321528691756412897090485808250147596568007926967005341538395726137455227327372594429521366426426516734607318415862256484961311810833023833703724465691938713973756280749485667790406810459525304849480748924818431457470339765506467460880063370079395617195588246780420742832893466274697095370323602118933269063234644374906081536991335741757357341234299999862247485421900545256377603996416133110454237849622678813100521141508519991831337514666151990658694635543706235566259453801416915688680355182750222942100016247841231861658360794309624496435535924018208185657630236543410203921397359407582316893078507359187337484563942658085408321462266391398097108442477426229222509654602121433486266272189975775065497777225414192787373176266293046640986465655315107033261685610934483276205719115141720456343086129564900207848298915031031841484178581128022790437774957309506798027449550151459912217502185775812917196578400110982828070187235312484348046754429712067151401218045014835506275904304475485869379754678076985120757913785393937864898587588623749111281550246451577841325178464771193913110474979903752885585954237942995094515041582064365731496506664231773888852569301040944423235446805158651126698869999847026238729697427717237421234462319398613708736331493655877478769202654373649400357455713494813257135066012136815328493080030778572030214350789690462944403762260254713759362237425198771287366052961180617779112334087697976825773088437222436202509304545531777179066452981523797901554134614023016940432474124556275829301173809095681872234410369481932034813279781668095436807201139031637651968878504308984970524044254053824411929709081742202444971812911482504208580014937361065162981787301702417977931009853131007920306120857059753349021848324790855183392862431529205027674250148232630921054639435195184017905000573859929154958720732562267942311033626550836367697337701129715497243891084054309205440538580692454941122748574388345589522530680010761876143642119245768632162502982927036404061073142045588810474852520838710042801486988197650295215985876755040063805853374356629388284694120345647304409668951272310847534700966756711668943689931533984514077493971617498708434237565390313053805763795370993047464669579443933883029694973181064454557749775815487837925029975005075770454148774496724343260569292900626519475893577741698599678907303443977930486501824182410954017862743832071622782162822821033340195449702770646101317357981595840055577957647463425025656601095459722758619773309725794369238685126356020760984172734945673697501372982744766670269583968637762427249777261635942430654015605694405882518063783163696042252129707751552954165000976026418614763196539422852632476419837453213157786076549798154957839693621752879633944408556567026985193339505822722743993348367168364718906536070591492834953283766917901083768804836440432291846687351294444124751861033604549431996748391135261217590264372039606151565586363837242720520642810766939369097064326571620598497586013695630832212127511818018026301342947558130792876232137255682608085713720850129898952388673971734968773467727355876993797109635643569193641213790545585661656479083046196074833444875966393024826911340441352679352528904424039594025338055920111752640849788393428512782491912960721961694274836625466049191663365739516579662110461692842291160358543526010351804963353583638119953964280740647034244988358881575439672813794534023631090676836731213670120906938373718055330079412514373734489889508454221181035946998149477803145266443228735865618811272176060685319150258492575428785256457340693910341167364741603451755355383482946880944077801992315062912338521346109338302374865525522629066909632932593239270725035305071913560374988212205681179168067006515407609760528769940357475311642035100238643359747074451620851491103079106191721557743005533551965653662113932632882597357022740426819771893179960359550779279923072804861638430545979550200889560243600378993822534450190797951328180870414820070872837273801984996899465818351454760694968231787028995779016919134537622586904689114070564255563112445448261218909136285930522798386355853519028852340359443927836450637537410407513199479125102658609923599102814972838578956099911112225005109781637967076858394661702577043032553332528986929444088364437199723434235876909653792443628892088325235490456795797358354999005147417477281933563468191401063781396139451823339571246657495883625934873328487747998642602851736824858565458997270889230902594340929993387268966940426970688388143611215496683063040969290464541320643277590437490302619629979950031585277712631432322752617026493062696692630123618300243384328160864446628648454314821045051389639323557934348061958794526410456456571004183440257791621690288523240276553239947913823426724305306983448348489792393749411893808377803511406204314869951227111693331052947017480076930186178936597336044190251258836260586060552627302560832577454401812888799784371516263298560002542542696191368689483556035526262167100146748207505183207932162938918132449350896579198552537908789956783276317749262733390509710450540459309631932644334366320803431785694726582098627104129381335653985718288698423559625538017923310140514837537744843390664095593771800240003304988503820880645083270886521444936977995169689819679822290842611093034725832462055085712097021030232562901485846144869364323519338039795139125189514322074896388491756700016219149687303349280283971401965797468976398641235120859502300644770802616116003028793360897885994343129439191767085775274538015161266063391239454018025284137501576952850144643215949506561601275147674947513665660035718734389563421280595836056812413729715468878417057887960237436138820175618701919728008952950724228208578424829021808158377031623514188035858297236326324700636740562762191619053413741354878726937449146051494705540215669552124635175347355429029922549251812161968413532007518720145820286372297477219123045264442290331515625021668436515364283068235734377712317022781807788576959534077513136324739105227569009413157951412750552310011435982318711683265269673359924901586893842104598687834427478822474529274489530673659392798277349534636492211333447272472282593065695691612081055781225153927232685589198874386745282679301558698784009745371121127022130378101563018835051396699236827056361435571116276782360349755943941172019266801929879278757998554703789997881942333202160795728653628795814059609919449752431282858183824717869148680148896093807065378311365274295116821954002019949939095548879992357433847875837623455586793467614904688000597866043662609577977502614740110634572278481143205146348849106332114389932206155423564574368249784698448120789011773140470877940851904775860995874297357650941443584625223606195784832007721134163731406482141467149523510555701587917894408031375104987011840174884164918318294966050017694329036300980997168820168083312347033700091592907092212123639896317422944818912799665582020355038081030082054444298381734117788606357071214240810532070860438757760557636995714515140569492792660080867363652232703247477960579930929874405930517800079579341302885391768083102656489513430527904479413197339242575558636042892159258028168262022852998193746908153484546895146427835952531044178291660752704753025889686271940552511518206574101437213000295496207903847226521644474331325832839898414872860663799102130201536857524306648406049276371173360214243213974465286739972331940497101842841755700164264001438700195972857231050235077059496575492525353740213482807911686017928300316766390800592398709257616733192983576177409119842375189666408734557128682561112959186539345668436980335997414394362614251332408239263745916524353223409963709256523127554333450856437661947385771560071089342896432799083782108318206203479316604221965633809285456183454807915774518742020323919828572129418785192288012120963494324599584616772120618123151193012024801296875775450574503564827332251246035508724251398642347300764094291508733133295647670145636824335342585095760360072463575633704749236401778249021101568163341581639350611586223435984795880769150774422662244287635346495235135489319503800282532432554783987622191590540767327437812094198962706205367546471771849095573547522739659420219337833345653257475115585737691181060067008941713779553649824317816351809596093055222245468561527815272283559534151521699795738404818935664239516657929329292627870931669242673104105430542359258004671277480169759417447692521323236180802256350253538700960287692685376437330865919429667462692813450472792746106972903256114221127617234935173154339532821040945240500883863115983602113101207856909708032303162583310157840194105342876578139158851376297276128072077361079044820316069401995975158859512657563337045090188679714152838323097578113726024636312174413470012619952061607153244740029422085664908232065239289990938547837462149395584581285076546695067452062151155226930542368666418225839205419538789878402052649048002197715170965545845420281205507271664247414088541941350962244173964486969048981158534746000269909347508937416456341821042000319296484465708761033723592422931689776718247969438568578557176780711539129693223603833995863591628441649349459172287354379234999740668805881557895233620075252992203539592605451591496992136767730202879025282261417154354841384005826731915296142547025147525374501206033535944396533768970643681433346345371366872139413262220602200592559733771993721250248593326013900753304876230780184470345583958776765619763012870450946550995273518783120232170322087147405228715657699164392876132859842563718766320159973688622304204945704001687192318833531265021890993775685300127441912534936542779010745107034964388656970449328434932140890081238019307433069771828385606989990408340902996046458346491445388022390063616595249096236623695637355244782080768152457968778500014470166889234127915949311208499765732343030153390446089313752290874042093618267799996008532225917558092535384097220064129428508200367433491401401112999519358603752381539075519541257913643189125663087109201066300265455367766676004911861710680426099422565167555977812183611857799951464971587659895279368175375595355837052979014420943567108993440828519874728243801746585130424354820042062804336255784744279016377990209885139509415165234232461875404254829422079507550830838768032515006167859430552569837662920318709476158114830616669388926378327397789209988750931385794165555628887783596579879324163438577155274858662945045880464420834204433663131280963710227013183327127742139793251150930038005542111189218686296616208958166116661313755572484629942230241762726100090283474729426612350618803625916121844519769553876038037982830738970782802266844899787484739308781065017415935496881558487684542995563557454036973645646778341719841828647605925820187949957785624208651259818087521548034653193944546651171301517853489901612465441943124127279909834769936108029544538460379375321991203729494924630490823064462558156486752356208434336110233826290217553265816955828683393747080986942702260701052951948152594134224140380718561879665168720120079229551042543208729488158437247321901904472057734179474486882721299123178787268742952346859619191926905828716072509497426897011914436060601493927270377388929355487485407835829508796840653505034612517279473542558865756522069156649639108395702846713878955311661225360060158753248711915097068486957646909410372341735299975385532881991355786258594916851978253435660903434386279588052850280258249425655050189775852907096515539231103964156373938456436780235232162677455002788101453785273082185179655494406183370461655889032372382996614326852257110618734064143556639154710540368781989395623305449730085117103390262201060335171494967085663552515736242325590107224981845982415703002927256757704989680296560882208203518767046980297233642900344920870518133403620886182739667543912389861101619258002310556178665429373460782676942840167577841822131030591084446259337870820092845969947599788385378781051760935508548737978991712204473040009693848927470263219960122745171787739782606423756607494809445779811871721537877961814832336464732727793976177543451128521864960071551107276895447571841640202540425770505032455620433860281930518681066375485197210282873276809249910885131085561319632144540950323662864252584466531462797054295265474009999808000222415989945573710831142089507426443945344177899198949201894304934633223024188662254834500352528879853706355982213710949274551276148425911128415517741869819890638528151528884184907671938652575323072357132911068596084941959417348082902083215992594626657110952569733125794820151869359270818112340562397450673318581400124986226555705315008001483606276787585744204667903963507530825646148206994268374658955286161662661610719291510993534510385518417585023810666987012665960352897100738083124021608658985353370584416732830555921295206268633714956413466244448961895860013655748767299331193470131651254028215931336609999859779938043938468775981277169745498471631565961628676675782433980904013226975082024613002609940316226318970184653599587909908556199529657412782227420756769242051853121947717624353080960634932249729400033919407983616906143812418799287960587733273353316833468760857118510135404837610781962377534219359430419242454152838673455164304177528123444191972718342593424246426514049231353403926078868717717563981852971413897338769237090044889303670199954056627289015357938582636140067257528321489571143032787073186893054122783987145423217238505821524170566052044722286284526889519321413478317810848848401871843057137897834603478158436089127741822486199694714422632644280511914678195527224736288420588416176922686099118616589955083310832934455134648768459972152759263078715466803141433247157738059231043376193552006097330041362541825350841788525043552521279420738923375716396066672039381605554813891041806692263495870364698413581883698041899590619631220546688618680253415784634532420848285140854150210217749266793822561860809981044660596325112980248614784417415119608092889596785625161066967492172821197001281515280828948929191845363486628294583638434004443082250507351573793724365153494770380222975602748308553038033256173039501263337412119946555891929162091912810812602113525789950417073666065955873431723126609464823113551703287902705684117900901363528772759194605479171977997028917949960796589250103370858851100705823709132293056688795929743915192642588489055819391711725491435327336016239553505987932069634620222040822069152732853701648694415089063333854701906200626090160733673201418146944660113960773946000596430940940100161847916270029218076480835765732474310749686645375336168964809623381646009043383780907091427790745493292102311785073892557500238497950204991305892415396953945159183484600892477363344158781033109097793992108261454976111005503012950908730091356799595545396022040416147112358895675177887649972090739495795667167989070392250913935717937311556602606189207488759493530108653253817410941330433689310138578623036858594934512450846336452743032735117211205144197411780761268865444468664566844219391620765193989853919607995432101082913811957968662826593473398498863652061028494877124836340860796819575201286536269397248209195169824624234177523956987327711186006619284565240158661302804542929680219438919105935215425883999450213800370325022676668860327277592326845608186234514162121041148976409286015883495016785789411039903523641533855204713642177920301809118008812287677132248637751775346203956705290694293014859752314343590108862705620005140224902953189950305521090783865302605833345797499299970977146319397971628986078414505286124794603011910377598542218528451483867728718957791772702247884236014520327818602461924072103961736160290355233030097740791189284887574340783043267959531839884632466405545574829668090865020934873639415529698150230393238681898522242436717383530136714287766569555288607559423282450528590002848410347475979923355936662555633170681423866944640306345928788839588143460713481319394492713890577452635930402379006516101438961472389909323631574464296256710275948596215242354015262413147201251500193010302323411907246244558718267465479059156896965991258184370992977808719718560921562686556037422497020789299112057440838705672890481162097849193158159465120540161184683746657211735489014229231421831694879434627473309343555176377076457744535765240139532353460838701868186564596779618800491522554101740644459459684989186137277279228913518771110329801693688020533905420831214422610417359617287313176475281779423444767803367103012422454721904245019640088836579265087244087002894245286290802201463036143102779911933705312084632218190570753000414150991052991615972516335066879066191616076831521152469625858239652916669592555801723235339676442768386766115245943310052692779542389547717789119554859152783236156604328985795371359933275997918233478656418662068956282730250997425862294138631422990137009968070825437034125608556928313544918511709181953644364864598781203693257680087993330861647588886194277524688072465190834411938149114787695306458216002627024272346763534224946358528620966067359834347300793087705743200746536335116719638633256110783273570945474358833553954532803365606799009700192005555137056782006186187632356702412553418353897508076190904954944688325611054634705573628604650811367455652899685812539273272811457237600980962752610345232003850627458797445548737377882426333719366890525853179200961484478035329448949497640932902214553908552732558265636599818294164097104214308477791048165025476549130462242617612306618143798638583133472421712920414594999340526174105404244313206386886330230539004511316258438789129501581901527658792989097338273932230759647540905445828245088595009608593775121730024105322481477616398782491490602868935650057393110347828967477900536986131726506320711833918081072488959464570635646236302932383894130194051557091081262473745960195333427020415483727189460906434840785011675373835929297839908537087686720522924148804418973975287037089329523842350191797880648729699902186832028953877536362595164386012165290140185821016136591025829199156828980700374865693116581769940429544894362138082257233996334102312832558823145588701826712565812572534260434273788669133505603368263181983220906094576495265062350135476771601743442574670138610470837678432643687373203251205157779075423777812109419771076297558028782494051530612778979790492453360764158899046033912800414460804405632086934271968357894036527314938523944385275632091171652436405298724144319998983671983312892125428361706732616455859391670763010060117544123573454614523793306142763310726839589335645547849051286626211836422965164333106203691622118882266061810756271530196163137253127853125000853783827306380533684481114432679661856266346543302844417947769920210436212889140666327473981255277520197699698991500258750567621821565987454040495973025932995236335443732223309340753891558329279122138302256424308068460310862275653943945222421592421969210481340776990863359451012191344173914426351175838831427787475785255957246624639793666488468640989620010851374682022321109625355771886761751762053871513039878444457374423316249478617313544815708080481924088756458572337527682119778459376700887738035425271507895111614065511125939594831462584200334516017851363869611245337051667086215291566653933578948123355103141977160094165095765896144174306075901507069181144124121821569127929746975740657891002047282664705145488872847641756172246329685345261235842714141721111990122141118412470823709210350455325148727241510903486959454565334513378566747998836248423742576910159432546503950945969216657475914406428390873778719082214415071681086571145289327324176578406510742527164009037192908979522567736721857251178862760224586290826655118922286730788369496705172060949015142077594779083287002414743421191282405231666227910796277125218284365961625170998205171653225661959125936074571590353197189232916869286099438656711430558564496318196887349900437353938362578726897152482849919660918979599038399256852244310376164098885523034738695875391842539909260282671603717138186694029061441218804413866487412319889268951834484692042779226187014510219965965708768543977098599223652338928989620171606059272192847305074386621443522028156379180712839825304609813591466205377128759658218197113320845657592019167917567524276085472806630105803292259286688561129608269423786672347003297993877660628818760734264359449787237464787668410318937700819830568209287475421790915587559984329376142804413379960059904028151737955946575176531375838182874037395335459213706164610042653726441130246428708734667545468011592181542421674184013943897917330439961517146513445295035634564587831521587052238482694246537183335691381691318005415889774051410614762637006964187182520480155486897402129788538297055534957654983062069648308676389901198149797623176241159615798120266890098370816962281095128997465752605154186314710469798676551203227271546422057642672070848535764319855255843541374795081208871497321880967462999917000644235946547440520663360704976310285086447613869467696297955196150369831376338350978176362646869703650165823903622526416260446442406787951163149528113347160247282722482154338254239029177658291762328666446944488274804407711307027721350101266573867644309080951633381089059433853290246738745356736617081885948788108567355942294722428362203483812595249049784631319439788644424660892953426005479845524634802687929399151346182128218415266428227625573617165742407089381377833954884541743367534601075957728503593331176738658834921793554590350427691132545765581814311504670261903056679144897491806323021565511878342147571812304761906170166782497663334801795616534001552934646381729795227813113160741548761440769212551010668773941800870206708537491281119264026343805654998535696958995964509137262711906350228731267176226617287364735970799694332907112650540392106664937173420431888463823747474588113946947821647612995973910852569281982683380013018348261288893266065584516432743439640710463651085839701840127676449752857805015025635063284907255046070204669002920165231807320812485225475321563776875952309001827028000554981293311024828054209288770582487084639760132675228829123392355903055474587467602017968560907208161145029735305893012391463707630713216828518277844181766522420265829819632190647091962981781792973925162608331035127093011246552435193521407432417496797370140875783240820252659459096506102811532002813808141329389212693367249070618813267167444584799845316504483289153313040875496933754042508448784168650059298689792238285657416449904369463740778302434844233599990668425324860773982248554681735607653762344536929067239318068259354366494736433037023128589937705790331819351396351704037530846639895362592179087589485529794314494376420012802386062540298557639914225135115511391623404004501655158110081658637322770185091679052070441383937585859594693234537745001432076420006776273955885232662486579640362755460509452191343156568575106076848434640772304416242302021864325466724356062307710078160670279787502611036798002470397973607374717145111421020791247032384171277335060043384357928799955617679027007172145436477075454350314836574929159668384576967095674283564611838052681402465330236739706690001490942591015235543172113063333298874503089762595319059942103065539163211892189495808336408378529693814279473902947848788283387260937702127229906274727655783662592135669654407626621521874911232795895457822054773815317664392888591289819639419199117286335724295831029077210254392841445662535879037739898057183115710438401233328422478665654759292368893837491050938891858968578037257379138411294336644531590324136114636079279452804270543383139097518406635019054866577050497274202048881697580024723702446918503168442780066754166971046357811640805500342417271048549145633997512585868504186897805608871258942332651786098199938508858203434237272277591868788707382000166067355640117079462256519425820912211438413368104615273679116385084334116548901757047402780644675381253662708721366658951886669990308945997564144786398689782267876922635255686457362457301584051757857876024713475363818390782081833839250588100223650813698880550695591549971860087603545155526181653276405709635677416489772455875143728273786508559683388771215683252555793959228609839309302856002921375494975687971290975235917873990677916403747347240286479377725723204792044106368037654765803309063396062355922813871274721634766958895596081549958758316109793561055017457387652153351713128708198734150379386717022243906014503228981581502525783139576363066770602304743075658842670827531341366245622906011649469780428566919560402679012422830378908871893727235775551566835190791682218856187037259673010450773686084748741931863670185943705519620478275172302893159564021767300638106624048776201973281917761603624511650099424951439185650203658201620980922667801040229834519946290889821557864711906865776767592174750585179305710035309403746445776462290376992855287297099643923445807354518243973581404494763231870445651669993814677361816281371656785612819945079801688787697548914784382364260374322200372217585578266941552588169639800512505079010510659381990693642515341988370414744973017723907771527063662813144286610776110219981081166432487806508394197640518374064167465963986936739362873157553846311179313300066358172108039286366422914248879705461711913803991460852460480596026119730758143323411405515344683299080968238831398222143756582578583759379526457758006601448705085361972113803426984453288727617372326691354757174343777718838790329414656905166771584516430483405511513322514271983284916723567607605368959040178705041459029590018565641801931335813830813380483034584135802923252769199929213198754968637948767207905100432011875406114482237870981791526298436526249038624523503286195547190517683816493201872114887933253891242441544169571345612273443852738532438987986254860857900457187717913379700519038777252481710494178536463173237716743642375453227693585749119120024491062648433513383952733446348227168228213369947813214038465315552209978611727555834178356675874475284760882052111833554516152347834206403644202564707730153321331933395532525389835374050789621950642101737737348928934966276521793335919353285656303297773210148615365418380811415270400177499230381177924175390723402313539977881601335054175825258123736444184200195066410071534332857292365201632347626196289100779767506169980579858365100552412868063751886410479680218331513393772758614509171686102959380731601112415250871276221179763563430375106988815259509595498115034472349042272830136460920630069992871072972406978977606682492622858983310783658001696040573215302529507511689785435421798299779959224703798808692270193503052549439556266310014255273057352449916824207522231765587910515304580217250309806804724844589062952058899716834898566319855841455307076230402144769190433850732079928835941332996692023915167328940923871306252505696081254915787254841572930666677116062599097077621800492856809784121423360147038726780548077487222558742698839380045147373489624746335180220901504053606621588259556731790101742856095344335444493779443782791858493341375442746281605774689567942270714114160478179922189156900985167260313910938939067530562940154747207170374324746093684356381998300314570984940609503595999246077435061452599625145054598040307328527850472320995720402649105568176509508187572189867437661170562737999455189450952791002573096652360602068569521385678600168513763139441114104899918191836944282056969415007137186504206410824171626373062824950369400948514490641982440050047355343737595638380601398098906492687511841097267198740216745547345029239590010777322808838656585164387139711753586137852998523644225430384183944796251719633450556866162275816565314664098390375277192300376733037813663637041739786176586894018718291721329911692416550467748042156085019769461985167282844886468118378017398021128659171702127986452233166463216294967409724815692725927969511044662970618950329898058725523884974528319716396239723468376202644400188347588628105632931585637669504644902877229422770490220479251558798778148266395334880061521811874421103990343799902209436514966910682207949881957514690706606230052192495176380211299232339183319870489001944240839065929385559660523445235676507946701083853320591021520841643356731053307217656315694753125838801421331939637056250180746743217460970542317651636727796467390066354334882572779694699582461131040963232798864042381476453736284977358510515887759934402458022322300116053817591686335714253007687828541912524605937398607644432440891123837794272379020653201480861044983527376567015926088469631192882132378961713950965901734092228948032421574883763689396317335986856508235481661515481385824517571474368564149132762490851434682166242600759574229336464915733990369426579705457733912705125042407235340230227780656810529126989820682116931141203780727057150152985463453735841822450370858561511835200749636438524323686878957111583218286673209074700854252074856382985055843367756994153754304776483415388476419274232809245437569142431866738521282726554637791680710706834958284753103699636423499062473191087806632498369307729694517326695955264295330171216066162574387651708955480792950581974382407659878484007978615197527133599611794788193583940184976127661828666466222718303511622112542762822676481791659189748728266973753507124100432001004048484426971941948764611765229263810552912598261637279214286153331294065819677768448634535854801014401169721129259120356863211725447674766766930571247627161811327072431438092586369313567032801963366434358702614064025538836168424137735255105066895880016660979965908739673303180790895755786579300509331561544042789410769677469415797569869870984959226032481072255930735837565367553120697232253177143361911934974020633940081452351858291253071824805336224150479777520094309113575774835932013617444273158553448550967261076599221128684991317694766761617748815779384120871506446176710449113183134497395714487508639583340824868861245281161797515160391546861393702557236610300137514290652756469807098031073492353468133311522649245417231162312804996137243232526171938011985936810577426343680501338854921822415374413662161057207315751056003028853233094095281314048724925982427240277794892345385020931371913867074644463247313454681401886721620358793784502385365795930549074490530741361297906927425808190337532399720233526785229812771647397886573699676058915456540042411374112498432766888063113274957626047791281575774817876519437506536158806030522983302787580212026748610438188596458049344970402809359796755532316672954323029146438273971318290661134649147262787509732480923344777094729503967431605609273644505229395748697459174340695671923962525037684157030367411037924712008868455839547610457160031898289043840793866775518599707219145166955099038236330725345441951492063635220590007812439534169874434657437720755716461171897026765471588921390392365102349068343063138465664450794958373753917286281710750979827580022875054259680001082685578214565060755191559383192886090584718702658234312723730612296611532420694394998564520491182363280687752715486150470273162591848901869040314585218561469286892508999795429070839704037196360889120835098759528811062830243988651247419577841172941438071436512866966798806051101817434436766757561495300641495665508554960230751550506043916090883908839524016557067167724309802140606664209179444344181178279230345725538228210301234395847691876420664438313577217146838096680385303238756829521674567427855618434756045212441132218394251232135263003860801407165332916621571195293672362764341994155447117188429981955729154983543333840624005731799227416819993358441447124657017466549358067711647024543341800907874444996425485690539885934388970632799353372560589250993670672499844766660069843452336756049975906372283243899176374461694766442458796757763615190264834523180736056096338565339458040639815059898161258712537095737592098818158846300648964676567630175257381603754000706059591723812767169533881293534961504108934446577026890381849706665590063095326217316494011322074042927242272298061860422049302338585663380036627314456786930446325785087237053168889910791549217785973276390615601276058526320021958985533604103017525241782994420120561842991238015874517118565369469241302466779719290156906697584008967662565853958932318900519458418239260908834463959056722181261364764379345120652507605819936693302274268474553022637574061522128871212649556837209050498900393504663603935364980709858927621772963976663348138372478217630389018462811650411956593512696833801728345224760340627615819505992557370334382213819515921554791603424841970252141252346471579379300983944464046507469508529823039619637874028117223946513273865702852706052586366192051849775820419839996547854173016284641010999496503309564312665125264643305302986301996577476375006742812292565728577540186762309746528295680958729251621283884409776069745616982121062870670007572778433992060749597943865562746260682276085041738714426486215198399946216003287965148588166916378502932883928557017719197758067472607180033050797279788256642483995277462853142063870196429637507606720725531055096174824234160147887643437170586358472424994014630246655476818936081707979973242891026912380116329054168204794061996944343130388446588654821727727731238985230876875209727635181480343335033314085137929648270185354449542363370095837140618558539739103724446641890023723674845175961862280442922713060271824079333531971938927113712534051794304141751576808846992873669735239894211364752040064410901628747875469169530478920665929439022520750406425697586428400740613713288518928515476674618418711954297942044733938081844757035873571515460782586473598553697966967427698923441453717761246761407104839165586166151273546961118937818682941161213337597312617769694146807838886674171317847235046912904551511066276807137903287139366661562035513671820241952825052489353643510523853689430172825121355478502239510330883999294973782384369636029428829834519826119109275174311412109408474457588174850446943166446678619222902607737929188204836577996766064955188645309096662314687999473742549756218031516186747877418034605577662053314314249237803652122481281827316822695292842213066661140236849833865165236270351491939092139093082465929922441603701416863584228739519658796436496721113359534169361832577333540649102719567033307331869335907276825084766504347940779931650606814429886082381556607435960558599926268631220391449848537499851367182934453238960029334626235594675388041888802492241119862862579243920388447455421662959702369934425462666464309193089794629580442362019415864755456034349555395984372163919334387789633168289390996100974880587053601910728113005145042636464221675306170735420747670158464229274525715836271006561239614561604445970237569487481112897079904833127545954138899033241872188107660928093818037421797892758783233875123025946963264783852859019847432649312551105595487499642668551591832893263504849928746506778659698471229994092211938350963304686897904210150508696687035072069413584627155147898908647237097118532234551073761576283530298241867034372879337596616794196667736104414693629103294136864310210405083710827681833929869115166236123918438532074789827481969637692195018194293190477304082357694212865005879036220607509364143972594789497584742095874874488124334479229529353351001284125654159373156985733526506054799841917101038680959944690681853293185990024177918267235122220882084462088215961908742918683189895554056124504363519683845771694645252396339048038300694570246800981079550725524531068126989477678889055845256735681084683692807568279135217243353268817600267909030180341854614166382282562544724462516335389378209908497793239184701337646524435932664471457146766561422067985030764595866511041126939649498994823369147538129324187047539130938664638802791671151387680455709073391907631352760038111531177463949088209501422928257550650826967819657700396167606793219104837467405014490684122900351056172233625228190823096580141577958035205508777534203446280468252216635956292163593101373103915567899768604634825182080488739809604779535917641543921019044572988950040611844729103766852610262549300409346641306526279264680252223404730076193224869391519229324916701279240273151221850285785363157365203646230083754941993637456806295211273877919488353046075802632151123200453797722088431834492656501724295201203295097015183876359232740568331347671755740082103134289871157798993346493549109497805406125556293806911809317306187907296160211845737352436207400912093956058206335241337432753800564135485924988027472404008340360916315902205999503909619915750716040874601621753159627442850471144779023697281403879011034485888894529680108743587010314680263692730658820102542232758913595409464332268585343022958423605605078963504286276400267967460744020225582350170368378670029058030233506989116531570701910340999659626537923353122624185324515496500327302721982049411615543551496027896065043740917478805302925534450269605516577535074207517363709238920610972220094740852180036966707844467917386122384731327899776529923481771491213709701695747976277416182137336547435721451471936016311852599373911356642993458470047909953498238350471469184569298808234188694717424196623518796938368304080866355669434975630675644489194902082234185193795339247703592941084580983855023818068121717143756445384833773737441007405587048250194457981604166121197388061716987487738033110612182961424911751626910083382831792638368582052894988430754108840331762025521048068668135596711282806118181496227479976528665830909375585496032944519543709309123608761362618051273360356276654744588915695749540830419379825186569937728939787013519936881042468282988727319888910516898641687726088169706566538634451922349751855433253154518113603710243484386741313232044427794835706990697549300360851184148165284741310787791467755359829296004990055765455356122774823332015165675027030344620089630007052855152964074120913738350491713363762660233464262176270056489469015619237353109299818031005558092347838231974584166329835852997699607476810083417889685928843911145649397824421395906907327016893386754849902469972019674029163560761959294790095448387029045688936111540158050006807094361836301025609753165915543905004083975564317819467936550889594072549383217992856156563719984295100541951423181444892535880232122101100842685424216371002980720393910922303841168189220607609087705240737501023942392113746471867936476185164647807704874114063979527900002806529488231929447456166929645561181928203108573280961089807361663448017552814778952062681124135216321382833848602212939785285482110445904512043065116248039573104891866609356710001450372383770026849667626125585142402966674314900043030186877634705516688931971177398606995807393713893040404880444865589795322993264532562150891713846929806275696898170578036535723270363671314945583254553982582010208057523025675610835179750047387447378067105009350483283740697692260458841593748374355873232965125465446571468609141055331321582747806593696808467694465325917648792744697578629058209124336314985201329667347585868182262885241684625317698515376187889692092628718451737218204665347343814219366016654400776726919967127542997647367700046367412233866934084869027514131935154836605954514227584048821163527225500843928490050684868477919482638715058076967416482054224520328665434108122352765059479337575784842681046269570309230025444103241899726573997856056700427634059906821405368151369899079175413012997817349610404593079268804463365587794240506123216298811250111191164678055083264132827891465088736461563808686906291911321949174998902703012336452613402406440080165434939165530914794255992536986582143332008272961590911681078410825362124032141067840180473824185522877502377601315419200963967878722072267879077916668597187680850108463393473933626722692355302792320780549409691231238763887146307830661073052377136494778324328606489309683911211892649776401955462025414211806761108571070474308306033736852708162850652908404783083457469163741226924777553446836373830357952179570551609475903797861036491974446647696752094369730924296334440635975000878304803740177991047973279199693352714673058204348213677318026121020212302548534950824559353567651496094482467573917191157288504081884572717018925865720513255319312125978587056855060291199092187430700996580021956210905674541531114903328933280256844894653307258854850252870315714452958864369012054335360017862087977600787663177282696496427559893724474414721514384832327327046138317535310138024814715074718280803297487042338374166886096864595550668828006251986188443216167376162254304932251435297516277026581047699582791977732536521561719681054226133427883979249110605195091936256748807985199733626074509265566185403084383342812910785354802868737746150883194579181379068431294973266962574517475575731561731908988445374704202451000908811687764319276752104591562557374723612262652611238749886234582640445136002346505667111378790298429349880998445181189519922215239436039138836369435887861885532832312427321994559233015092815085938026175134995779361819660515652822014588931660741369335297855088788759157236002718359188528550654028575862086750391311116372755464853176695360924761610899423918043298944170767510216554258972322556372393197532363237640734833880373231689673858784995960442347635680061346358107456946941852904801022393165801922016206516998834965847798683907418475379187705052874946230641888053785187532113462437424113988676184663531272584761781634166532050329825347062833668136864517589065560239799553892810008058604736269347498895164701289740776552804947131658640727979836725514683681992349008647927443651229062033445368870729373098610123417362376807271326291120835497360566889603403936858025485017114849564021077237087847433697556181683388704091193210477283876840449052353351338769877820433727563424352731433372235486523330843241811979660631239220735955137524620400208998829176411561554041416809223521010133446838997834845313453596707214586758505367550625084728968717373484768939452442219105670374023223462577661328647260501523445197716206374819520411881579837406113779264435819159999831077986113366114746893365279776573617840842256172873597149840380219164827598025582362534742766520041554722433787913583040499826939763753091875854486691630405557834506977517230308370801808641904631781621546882457586130869908905715211404016797035327826381596248382655060362871330157784742323155810436885523373340760916645144900588209664112723933792447578122935269808566162793037018270126036772225949334182297093711903123529711545325470029357731422433346290673750727724888842116656545610332445223010751229964042675441831187901745521821279480154767065075738850610697332102365798487025754442025049314131252228958374078199446893885004896816921878088635319795324010299806203201950012286339640630041798582747540715789357761875542374576573464702671157087506084535715632495147115656999863563435369900048460355636054325066006543534718608946298257417235567578160596860322228664151427901151833180978061965785323562440627584015998834411456701397293680421360750882214130721746907226102954031229363777540899335885543865026022699803798115279755648251444026628283120692321874885345862292718004738827948871735285369605617628922547811356911037803834983667946674244807520061199778560430161624523339236102642601976460252871378062904986185240561692145358427239024379587456666545513022106181427508550219652785417214979553535966345674848660088712843270126105175179542944655471857050227026448970020657694010479523452903205494728674262092855765235205359210748257662401265919036471965237519596853946628319778666615873215870957318078531270636340620748314634298080296590279442412242354044621277519570277874880102684154929148203000543674295650857687716157005033648896146692226281115056606281881898300026140947152417783108510804009736539830877428361751136700256041577250219896142788391340405676038064880573268489064044487349228591858595355132535675196276820113027271240378315713104031604105650842149932515249175865618803338864320058329878581792998927790163742935710522028881222484739856122384480671358516602389340195842052127318040577097922881945084616337985290067389596008412903882482971861351752033689252325662793446269253851227434983691735808577071651918127888676432038331224170251101815036646028295314933145705962210566921661477179125141312041812364115759204429030654181793705678093898882546549533946426798894298764825578826435574988386495755862489563624476620092688034394850264477533399112313999254867456189760073129182911238631939566244264831836192860349373810073133644725681598056466422110950560377623921183125802898034989417526550060785377581237688430766245493566681869020106630306872834923927727874261062466210832926458495504333037180661087313892513961835840393957875995820548433327424158257595445893514274576253239077319682526285847266679621425722287339108743529042354939133544734522168493947472259053344813095997108636457232225826352872612800956934268756835946291001228521060395231395054043687974558968204094671615599924898022969956376434346873627581714399661559029750322160218484091970914113787975518754252004697140647151403353485662681795174854136058668144403692326272120173529431311571228737791465995862903355769604078153163168901518252655664933556425860869673639942326379356499384464395435931625597164524829146610250281847411953672726295594659836737036705783461393202119351524104520025275408058283301364269701307416863639304355075856737117451949894881176352255180491487155868181055558686516185698049803038527397356510056362638653781853148479050690202808386156741579528385567711868069736588611704376966391650318552158337583539879338798088447175664793420672606382332430562600356773012098106521178972204857715263300389301068997614900849789938255002155839817129720067616564369348609925909510924010113246468572781699690878554160974088324518077025408549318658057314943801714057842812332978523912841535818881670465757941926439423491799911537754951885728366518299908449234503242136154294357229819798797227887393067656360302619760298705380523721159548175477979769701630427719085157873866401156654740513729454336995998872106668689573924893644850180533264554038900711069769146489423916725697985730342850938414354741870565622282679248335737794611233256700985628723207468583768124395429064971403733274342576504301669937426608363104389765210233413507016458932673450408110411985558026041674738464487277832877245676642781744608955686454157412214142330744300231992665490085018611167242678873331127533230537423943977935937818341909634370580608234408327606540466409257973699796196546644964203500458724097150586224999674486450814312438712652568489705776081757879227908878092275243677572491656153526207032192901275933642744233847834645782315628228952263470056823767226997684862251971419694511564252975266397682734671548118568896993796581145845381684534581717641174125764809903760806265635859467372560885794764954747904010426709823474064003189784423331364444602843565177999854457587139864861187448624352119265091443885025366829277583569038733709720952988916689348237148295228613896652697023065248823665184458389318092229891655686085783878477767214290533225657222463683151905536311015520249596909932439990649255584284239527649133864982923088147501976881404057004128366035827503312118852633996351666270626018266136031658708393265395373769095503797120537598418043696176870601624155765500969633590536558738978253840449325176806715042679464061411135893595809867442122693857877574232077297773774543740640133800139035245305427911060776045199691338723506312096506302350806400733186913958810741531920800349158962362849925973171792841417409430907677924038788384210757372464416429956643225663769971425703760949822736319553911812055738248670813118638141481979838821368993681167879452186670801030845668013918189345041813746423133986283298480445725830441318224423570931008729936271570088578970292797615220539197404647664553102664866988472985899966061357058480402479805443286743043366327178195169453686947155628493935215846743298402828618573243462930057950378322508769064945118576598423017868608462020053134838849601565150897258709546829228483226005689614964005291082896287766135177977497533645088324116120600063769603039533883541973492529511870520506116696339111844895759293033378328133141522044823364571012000349482638346635088156218445169782896070410031788141499994770261712084594333004025293394148546715876974659416856666980405053160903195838353864573475164968999490382599981084432590270870019721729179562312031183892666329953486507858305029442386044347356846191177114229162199460025849707783301911667583542841577742467218679851189129851215739193330528640442516398948497820272477399552210577322080267974036643186409864476143720575245707694568933007629551269989250100327512397391049752174389201592293567114440028965604603256343423688052548962609775542182226183507875017969342078669716729560418378155916082006256137473312811954545191537959144159258621844257303431821160934535780946941191369308039292941094380926582775623166900821175640351763793720208844301902270403330194233218390427659234778005107744994537027105782830346008430071400264927578989844827408286463085046314420425888560457153911855976302874726788762370148864449261292944605941975367456797868570006261768753625239597574758667134717682537182528391431662699135356984100673008070383135671095370532609749953067332736893385425485876832745104960435156529775302546098195925796773879143856523427655555897334461923636870659242059324286114601116825101945693424172664693415665698971314661797345811155472288167960623545775851900741250107493869526913989538806480388582057711895048663860609051527774207661050669014307676862896585149182359594281935121532037344061821428150893406157515489746570727309402753409122739227879001330552262225449636687728552880185175384279770999577103856504388641357216578516622499447409341869819059651155211263282926114044942748827727328595488943786427263377066177209765082550899289587650501931994007813533509085209599461436934153783334765922898410680201170548717669847757397009455870411435059034432379413548365578051293550701914078675298929029639121198557028140585730767044159131004418985065491646824171319749708885162532689307535319932985950840416560841997252791150051709661606427487483733124258483082901267545047839066402037545470588438921492220348540936221555141974999314154344726405666728889033173804587732149932805789888792957690950686223746659300104201992993620052476346314997767134708990013101749258289696950109399997311524037987497803197294160359929493231039303520420548507744155155379314605671342137644954953144957707681162717182578850909855145095984200251124695837827186623346390208335019966820868390042029672206770073376910326165275053361629776668757887152622223896769152306668079528762985010146931741651124367066166778729337546481766428439334230850269377284991212033547925550037751981751836808360098179687556454253700651062359442375240237527272300109790158041307451974681182221165474681862104494871959232247801293137173071882127313910807436737411338754654295071434794452529848467552103182056668569995369554145898919701770046772899135018951868616039823728774909000609299256337279742279847311184166055705193077344768690992796901341119174818855995257830999221716583866652164458608695848599678250421879918945066623021528889279243745479242084898379059739804365545078344893647867572169353632710811413092230290159406369947590040363218033048281973339690858222367587962813863373394458816477925357055834168017023733350738952735144761667617034289446370910942013359814299704077718597791491787534287583222109674549732121112261439371864025992133518439321181605783210865013548658647225074363271251769219476363150429531348623560519259381678700882674206275511431469845356359906270623366614533883488795747249790536999476021122008376210458908773072968159335721551770222364257510433835785881371859586282349056961226061839227117784244831962141797536619704199055935229500095718024581132408117116349136516698376260413688232551440474306206686890271458921621071721889913412813939718587285733113830208732074407892972338020309650075063758376913244092725424310346974106965932156832130568739163309482876812493902306741497849748864829259961294905198455308131383580680374980307467577699435285728510785681278129055541889788898553294826967011917077972237475445376546765993685933707907516375410101208946568015054750891503786392589395024836573666202098580816101417818750881045510590527659492596261467327830051310898724420835564717078156800339818361126506560476756972011681793341826767711142298785052382176015536124595997469208808774807228554276021788004460539294910891991749363012905046009353400551997667035761535961988431247716509528066812128538319179031522058682793719795865924494235655128487160536741414083883039619391378797359969644679037681808402260626723470794152937482161090063406667938172108011066979624549784200920714050118508194392847501606877320944094375029752131452589430267253151477220818448905378967188876817040468564110535238984956020909739946016445362510869350144617396825175756883254782048079125709711537202114278748871774954500062472699421342277445463850111849450509572089860864792580726840652669087327810731481358560447422391144418635087205711271991605072436613946689531838434413852487141936581886630488395307479045680863275021767971454601675837730847893245766223710744229059481248885278975678008626582113134608974813657569793459465859402604382077997486878288120296927368351894969463762224927517098366960754079786506965406679877685396914076116071066831128835559546735384773941706993011380343870959431001810854215904758316370486019120428912327633876182847128364147887351833005391964797953556651572106419288910252090846636379830664270696384360131524951106300853593038178836625202639824723175223204011562950598706342263563806818380012126164653495173926413159590391082808187138817928942296456748190590587238981749048204643836711514190470344892500370045902755541464876868182830537313533476977152310286710336912707260187089116292252496409733467268237052284438240432188506614282155242328554370755495596608134997156009600742070286784273425808150819822734836261700685887568202077797329151698762094435392548406205351803693112243803084416242997035188754154989178325874134878021425433554647118670576068102870663239463322020538735327616860333155770997657158566744934169738538276547420159730671321773434249389944921428686118424065043174960678688405362380672663245737599812884777599830416146450178299034017674981969712994583693907865594904988001396657094150735607207148286276508084208766115251284257659561049246890540074476477201555734469131593791026562659502190720865483782564652963245919183796572998778269798963167757982475711463768330774874513252386861812360848449851705072830151676547183772575825618148372092290346520742837370832809721594205728722634245679930062820757274405460884678549890974198921819716203147296994885634868387886738770190643608006654099459738040943336699598325266545536311778950474591864541047367570790996263327757834619748210187513729508513644911807156743536195830686111672633694451297411113198663010664707401762265804653588589936146159272990740537196978773561102464150696850543864293804107233802959981438408223405193144086583170153439386265906577340318971483794478397727968469851216150817061608880311773915888233361313154100245478863689716711383100324428828926648281326006056396077855515081124928494252108894260884846406860989660874057655920935835860653038751782490138318430190333434850686548298187630097903377006247350936194295355626603864429334672978149572118837707062963862121203921006894851400927851284524095969927949847032009647110345343912427476373107550849959931277860365244885517176264320205361830594970054668893347577259903333923455436986094708311319216507468134203265483482266106383270087017587644853868004418080649336665382843412779203813952921817777175822793699309816809169888073928356827095443033434450473876862656212904827473736455444845383526949356487035880461582303713122822877740607754946854305007166419914939299880875617384676693368833357626420817725369056907951958940549081949323103811397075531834846478329691704426562010763510705698732930641311527459865360046477889555984254209409038895468149191338226907127799451725275319969696589149531324800085976348818182439062332156071156337829726432186457499887490985088774719724364464053259752458568085032521800844864686164668342499220336232546034973477187652692069710886424541050321609049727495563991027642618668041027812449026657915688743640969746092974803495392344355501744738214304698268312627029468755438219059522069713105552981213361441793234593204069036278151387870120273546953235564830586376844903909935154888550314606475847401395198808736809421840206861832826396065598869012408388403488311766666689514330022888900784015894779000171447016621439659304561770518171357667675932641619095427597239854810788336691874811692605334866763564448414146545835144370898437308536949009039190002561001676062700181361056965545219972859501772244718733006689933255966788301703142972064573405518371275447174833164591577537044426213090349339950851609138328118874936123742361225742745107058520965878456159898289396850529889213999230157371922440548610730034887434462801499671249554495202702658323180940225809887931503410639462059291786026264218834273911061155024678431226090990116805007090586650967651666498936815169937791057116869928001710481594250645764218627995514736800647873838511483780749813991440557845905361821921848896282885466505076650783834411687749731251813253938895473578225107440433245803469801243255249550271363743460408902048738319350259021188207404774270153573440147415813338583343409234333619882440439823118049245463710835210752992622052381098669410810809363435836756015436867166802766772591331118439541888210160318997549116329219693003949812537313103202410618007331082287045758621529258134643188355757116976162954657959083702387856172473239791963276067079739541031838131775597380067185156709749349362735063566623874462638365768662663742909371546828456085305107227107082219936796130443407174832196345375253429403359117989673713400576076929602763383120864516804276564451019842924858613037173754121655737746370050680944641858714219290527129017728137812330283103679642608767969126657021810337404036622490170641355371531240635355695451843565298362458261861409380353236931649099517617716554470889789728882221096824619980706593022733907539432136290257884870741035833772414299775293738162357187273514186592125815184605441794014523775794102598144154109257700196302732790952434300953436238678159782798568962293739613354013553632049753009002915933982450963715346337711816358820718555898261527928788880073218899863256635014633043244682599566955435999362551868956391711594628780142689371326406071531748424235212059469065864467852288298170496677984287497737629474083571067856587581659230179488288017450262212255913450145830438389505252224147993749287387635341511315001802253132049416715294425353437214122661874135118865699212457085516287766003374864605508096016754401325294450126132758772775508664429533730999375560208414238486065174785644368506606071833211662080606000300459799312464331466534211643164464689362461042825711298311352653367545792034057826998326852831848647749448856048958281187327191564950709948644144257816339248469726732448197094795869875678688219466519148195631132365090357975006072174969874880082767175988233308006847640570774346748434938272769101890222195398095573396167381883298691699404877833530211343848372308578467402142652604781140465947655045613951287667072659812154787493368212153930401240175978931600570661838054444473038377642184814749367804697426636614094177856989806945435665315205562445054878557408703373911129472627007316483095588657418246360182365721128713887407386032945449536422288954137611101629437274303170122045040755925944337332770599575809662169643834740123007162216951612133195980303429116856631830627080679035720921797498311059421259221893320496143156358202150468568479230102324749223012060212596298836478416744180434476137794851828670596872051224038717372411838462354835581261021225050776901600329726987697408310390814284732974067583252296739905573512282704713278546076610654804520378885031486575547046002502574222425617675348895212666383348589221541745106805293044535403835629681103303736135786992727818321745674808861159291984616665024589421179421014047390580802122852106303125911333118400822621092591933048071386312804313119713186928609440561111431944839905224828228092008484125306899581177048399246309369548504624698762890017927772035123434175210954160019954466729204826927954256527590753329330087627000062432579331144684670226155442631274639143493580874844840389966252040063667112738510676693625867759549968758884966324164258709012829266846713370270780819567251686475485280119606703180360714624939601420386257914363694431687680864555762941327810269191885691129334472210690938769727093307796003038821265197684364443726179049524206095470933958586662567438924980408297531345621158931289750409443979321439563648303574633772094404906859964568254733578430633029022825943569479360344044372492290063318480757053464507657635164935992397930667602769095481667415396223613214165258941798923561159439613218450579433550510044816016266389774362902515248996666909727093329587587779093903138235625381001215950893823213594463575362669057529568578672168260527808872190464820134810148137396520237703181862059353663029088346414833040794381040993445499253118627225444555076933652797807495128069478944195425983972585686200150392993876923415633172534252234100886349373305648067796694550215413887446223185142849427892021959882422995918471201078712488724251134806598774535403811153935404330192321451930792002692173682174985433143210525142519827803362299527811187031048717031405334966045028750621565771261480963392217162703241731888365104400927934980454116961398508998764396180054774015086579316295176136375898755849299224951955742812455743192994425061227757348544399693426817314840873962940425538331047174551829874203536736085891027222849211531404184066669194835401497118054543428334345420605797533804106764077420796550545723655965242125367734504281179649668414869981586429001726124573665221952786446376053693837210302560078069255090896182003974530390575533270465389588902985442811646852718066778251046120004505576859420429415105570136131089529686529987961655357970854500749349931449016800721822671763181453564392825702651255063485336913848174997215991513023278656504900377701359093162083439020879361510358558389521941974206760590985986601604373533185357313159394793340793236951642003144355819988950318576316426205265161750485942821040793590333417524695624646428907415529111299969533546663170506530707487632675914493421117971448639882368699313849804571618422271762544890799152610880940106611474286248257310264930820999341654155244547340825743737457266886409987399025041970111414240059820540614487207152932662857920256493222782781602902805287127108992237624905929506110324426527545704174995687568511399409316307228603462096213511106390403362923654271679097992370287893597976058334674140110899642419544741746020854391674611979951648786159071683468790115724158394033217941463624424089917726551459480299492724044773551988071749586654397322426367111449068372575784894541043455107198093944299079457640970630194469028280445718944904023540269865332018439518892910675895820407636634588338938963233512749250408136649827138287590144925525621655722957741595835891185977607936898554095803490638450417631351416577591522290612646215058387010118087922091798758028299093164446529382667030678610036383846503520217682790175503676444710264957875594359867638239745951380632810104944283399606379867249031271884813836533410625147013993327717322647386473228248923434867673710637660224210448024214636978076898971143827697682907195784513017352427834168321471915726563206019139928132625664718339948759712049084953586756733365442420866354211961875753135589728820397296056609880190991338040767389343637964966516478066847723171095121495982276185905177020472759294634206829310391507725817026481948713046759713591277344328022484826906632139991270686891632983896531093206991557982029777938115770901797509647809176789430272787734637775320426490586335897368902779936650427779748252530089095935210789035852759897931113802975632131179034737951833589352877948953590282903948940368939333803170265161297095150436642773729364083146250681144708522722627690159467285832803973557792250349016311994136578515877302715414988305259406922129912607533711154765241978400641585681296516137174963787436294399661453217363467434613990962027715354133575762348134349602370808874719706545082883631901677257133434154810155917586183227189817757779643981925152453317447923080105881851358022946405560631849516979618422831279783308856280103212472131908113732466172450857848866933736184665715972395647864696104311222628246969257147299907476222556292069235846788418544796329995278770721669516435818894496922132307324794859487813183118126475302065642497991494369496755377349363880074873591434459446878826528420859045280307645321941123018046298063098188262781076689895311693814632978406624312691881559448187819743020658403266112695529713633803758837050423076501946218704054355027647890995178802339873867655923651096097036190584510685774641506321892484477236275914650258624518720575811453552096575605574440177092177673261163256657464458567308281471942648117371869000947914799293133950352120465868818525577496593547724295071211181850472522811385430281338983644063727448109336911979818183121944708287063198286335330318038527043007970967786306346834979570796042876873162188679753016740521506947825853434112296650559868454163974687343628059627746515136199944403641450921652422725135935065699696191861456740963532774488578589308296039097704758304722830412063002119044867915302831207621532995224113749984338380190256987323655420501451312801276007416078467815762598370348098546310853629627681469851063437024135144326469853585203057985049883010150863719612541182183905135883467070855981734523389823071197621963962248751496928844358743702480139114791858224025305675340539518852902856689914837243635669740336625660441516545330321995050369966241506555221784457733230875527837483901490577184677203450469666442913490405594094318191034565458467580568251996885846889070589269217497731352193264181950923169049112246175369484752686783303256507076225317812604815233143724168488323305401359689082986090821529814082294085636119214943904051645580386004382216076077581471499576712880357307687509681857363978982573331659910085107093049851925143917668405630715459928500154256719977790906657673559498803759936610027038499384845568725230570514686934882684022975739490945094620858035765845575287344242956939604506906625527777439249590353009967079507283064360284832875466573232109833542874121752335941167271213339363704879871923771729521459435156686833326336393973387140473797513736064782306031245586439277615253691628432791727686322852279802158428686746086033413019974770293412286561548912246741329017923309849319384192179513278282824139427028951940733229165686514817979252675247247884838384099600564448230022861951625655132194638584539707997453955788966081711513411797152641590752190473904203230800478754977417356105129578193165398950699613474759698974476417626793602892306111152707143045922902204259362132479656311702125615458485192300170338741198957194649952293859165843000914047819747910937763932036655618127936512160806669218588291081819000191090743223759298424620667930868609215083672431774996532657779957757475141120209739226488483456748731608151992674030775255729853344427108659114285885287618585058922730911989127394514369358769526038761677912579560568872845177161219789030845669255964416279261219970372885235242838979440862267278457180171997218896054700640710179032428957791980587518494618612438003172561154447913709695802375975777876315593810084018425175295820621728965026937683205811314721163342608090483980742644107918205085577262314901482894930863009520375351105667813184951814417417781611244129035693385042273038358080771277535090891734953695500482554109351163764599667113059439729934311677638021680845617836821683052758162408335877511925402461890682162756060826128333026769373962753598960538377167525145958705626145554362445907010168061816329630031135757587765217086727140376037093609828396882686240128980021973740286058452609419326666546104761017720591136412071769823675969314774574579540272977157302576027787471189912558702154950728674350737193537369817647225943560218126587883975422507979628571322077187296053406405453821198346538915283987613904741599084549152130023512976047312964986900550907757297216559150402601046011864305194530386902914702186955198667166090116464114450999577568980187407711597424477787485980824361440054833569440615407517771050714385201657333482057218688238454506173669738101141817087025484480128362711604715501300754377673766949460187560977100573753876225062667771103095899233934113450471991950978416562200140331739871663568825127794614896912818346030763699419247712039156923908142087982636120507405920887548186216086628461902787218100078150714236250295571332981798110920093631298343763701438930256523805894267802312040602949630070628067639399747737987855823945392773639840063596010442736988196359412177221624898904074573685865142186267877512498485242163993872814404831361384647733008409470375516728050225203537810557679519843571692791694450484636263053609079994344840222808075514500596321288130477518324846886127024229864811830740266636662140580667344244510668926918803342727211751060316304854853824925348422386082881719318204687387549236793255577858555789002050835222021832033398611177341384785025747904638169763692131073905494231215164661644398607702183002804346930557316797291952055882332478993649468240281145670111557920217872148330570459551009397753581342459934753760156641266074758867273005455094424343056324752111786563165779745289389837391744317505292394482292759504182204985478724643274606500075655540226089594653752060250276790380800591908773042468793155724139416849941537586631028364897451155390532897690870257474091983458028239529536450389408527705104878540300513494705529023215427264925459609325376673255418629407881457373136703524264587750045582191413928648111972125371440323859876745386388776905697777901258008926672301987059673014903320201707636156204847088574833184506945131570446564593781021702486768105868772401388576024658859276309880140701782947992815557959676333662722474578710442380051036697437756525572184434145241738459969276738818456176678267149264652402477885659961362896033981894657301651826833032547982869438905091257158641403205968222740597147855263514199706679799177522768418644755933146410445301027328091401788440244324800922654599339390752703209221786373396651318560260032471399259767436818852364685918849263721871939322843566802004072762486586086725465445374931639299425170456776644191238318994996709675596978453070134960433573938561048827487765218874543534316310953239064881573146358289979960961294407429737803670526006236211684463688794733676667497317748810493698502366121343079985013723971191359683208145331216337087985220174936466666119613779386723178880743100299503757673140328431579812552937560064983611248713508204584449651883126378698335179799050660334770622361254452708294948570125676354099345021845492796321552478066811449528491336301090403148592382935745994763918776433992983420674282503576465447092531474027114818395597356391779166062446073273381683092000453193438988047471904992371807930001925751970881855312157880471591477531030186688141470973401312951247002694884464320998529952467606278398734608307110928334152959488567940270583006154598423296472132386092914312847256920149089602580385537982117952435380405289387096432845091919500075736771413558138813152214903492816700521572145918669824568119155117238487893604923422057711432759661831659923014207537885458337027016738819061228337983077157417639184148794414123166275641714449691113088381032110068748865742454119038372948851060443224020172528416905995986775466437660570113466529011028431679153786245771009431693400242634177561687248377198160157315657977405876038514464754389699093185484884729726719962403727163334952104275118813985490639388490014231326442258163589764824400808020614054315580243738126917653557546813761477160312132220073706994895647120055166321611801931002258514343479380777322543131945071605214884750598073425314286201041130647962898246840974304148977997551952546804130958182622967011847630148351741753796407256722555643338167294933845763137915693464410388509262601651723631952728484542096866327648426604458706497345237957501470078696538411992081878307335577958684635099001740364172968586294953459550388128731902397190428038744693386497101158409725288498061329376682472912387277966909318556399867434201184007156077178151601346941832703231245859265769048282072044825588264752442108425330015094008015113320175287169693032991047032403016422579530994124324175493996737185983564184359916888994999109020897862375951371971011639745118862424263662968384488357483368722840073544902010602799435174525356772470075154308985241590099321446890603830831395398851689024132916470082541729390536636009609772037761074624594557142038207210583777858351221895735975202320512644069468390618978331790017635828985448322246589208448575937832502883357435678928138608521088930687024648462577656254373179722094262016946657020747231770534182471969673333403537348905594120110631514764657904955937452101239908789141575030306488170929396909096187807292440946352051550911434313203290383713817522166645585120184753618991125633215909619072853402526063738516156444053011438834081805005131235117102456060293410955432205703256321620886853332490533692106810413737686875944209570466150188540392997336713773646084100623824469007017510579338854203180531371746412564796576206934474526330911001453687738363007855688799201435686369957181139461098382757032038075783091019870293483617331736370656377642388382574380431207784244923980506176596441548605383854163169041524426727497478238494068013237212501633246129111767967431948958990785295779260129386386173754397601178252428135973619455586310812237736653539946463985679266386834908794008156500899347489539033033866916144781033767272870560514982004884711109965660602779393110045521542782849975625037185112214642920081209237708894694925898731370253053598811336033349709313334972299021121173823263010528005203508730178664695517014291092189688774098058993453598382214060033739129742682381952020211885082753949782416628897032483977103592536373937268394484803075384552039499392981258321268038095909034657617981075171250716725722036438124680857319529485677874767701171997296442207365155127614636763157095930782440394953051905250534044023647718554733456389785914425446687233038914552355142788581175519961145128797388854930629058388992298862141921788860461647383555575575053106657359267869097218071711331846077183690221266604213293009340443754414143248691796170543316663037932798802811874112477165594311129133410567384424798894921235313726679343360155002190516275108256378447981963324401106842791509194675991378705140544907158583177277148685623311388495091904323233656338672929079107779382254025456053863112101918030331642533475555432284047977296046499255343466621979169950454021609468593987260900244109273485786939598878361666969381822466566839882394252494976738806403791802751771645791298376870729256239062515689304253715535817625448822631574205403380337309642742616544997094363238115853765672147795917301091705013643443055949870681181318469695357994527437297576132544085209631652877641654213189549985299370054144599458364919697334554700015567876003061604548333275998040989427653908323282124008485003987657802497339026290567844613026781726732773335747712465837628181783205681456425127560843084011789489834365825130713351440109434114049744707080362154199569786194139497824839691120391903482198678007995060550645049457177597591251741549168522665211051788082868725227829969994211289300860888737971518633615925911571979253455441482923134216209460429764344503609362025522142512267091861948583260447940162368132067152387200709182487903297529510419612582405299212003524039560908696931943743597655625038876622287039632884952405540203898374458477488514674237465676377028624937792190149623470846528157025566814348877531123253971103894005450935773269472555736038926936134510055298899331979146461503009775887831268651666076421327816500971849422096115033414196786985418575795481655646512586976990813522436335777793165743922575069261444790025592320115047486611757885746620149196801478789970865335939682557308167339208569490417137086169396741993253938186850633527014443164645360856656462010548729423162678220435917018880335495329358250698680331979019785032233123333924456513203804927264179074689362133703763218714394613308609627757012589349603255029637400581626567315845307313716023515438187509952395342550187400172357116352075844422459129045345024141589466157398846380065497946076949837891067468061882812998656411841413180297003988292980950017453692471295771524814244150329217320533065961557043782478141113158283699532733032572085539393062967308453089945301062730734156161648152503656606494230201145261363273999050010816004151828162093466456756422436001836059859529364695966310999136909266154966905642502065014803962889988311118901602945446967692102271432015329598629897215155032893119665432024663046872957789004148473606454754812045105863727360784235828299721794155672696288766026556338689904329267216337307183133511334777118898258842480703789389362411209332064384742522793948693058325023658998423939710855498193051958253041009203244587700128716826567492470744384190701382844479230245183048700179561226883918404265245432607049206810501675518094857153149033239025108001375689794326264206876976710671118846227642955256539939135845392928238613830622733002056591637700310218025875662185117532978846791514195321207419762427008687407528046319858962412555229072497871776423594895374812143064569644233862712497090081430436960247780332704936811834154213675997501961033210713252364413713791545930842953950880988807526541063673720317145001886213753296173607684641465242734139187548277261496082453571210403263292168403498997925351625474661272495428492889183541227223967009287652782013259976235133822408858250846538040407031073996538099619013657537883138760632765249259488933348794725628767013780712221836623582596270853008061879147685978394956925985264940381210917343877976163251723271789592230831372193013814657617166153620884341821132687329770773695489662433852764570039722580918981726725850885982011799759803816322560550555783445634332510229811703785574500326511432011268509673660787576744550502063305571983561926902342431990376149508117036523315420135661657241388222054443384222223720862769804386579740979767409391193960259052111542824093460186447825202679359776516326366495446119573444099630123381501889487999287637287490006827379160673069908131337148025433637340547487962579277033582736829906780112369945000329875250735762738683643256744641122144596841171732059217626558681858465241576094343706486928609082708420718725084672541928430080154544196640307515581665573504503582312722939438092321487015792265184600374163686396157438780171681704379747699037902651317977525308828062699786985105222881565665882307373382845941762215842148777522645260564795556664014163554656739938872380126220887102632871774857342830242281852214758182452870745072251652985257942115270357220210199517062477142612942056318215356426234701287845732836270328363977506006532086460023497168675871033754428375893831779034178851185172185036370808050816475240608980883580066770006337252231148285728180440274170641113941473079720766834177603129653289597227386549943318901158378886450790967441801948605502552641916650746740872981077591367261548224033264101340630728208225341550954504442040560337849321440306998036942493195423008306866005765167639891085485311098630873935279194392665671571995969423235831506932401857647331409255094911216804965558634341396627204732541125072874559733079065326222052859251334929678622033734434941477230264372337028582670009033611309400833567038299569985693818492614795072598023148412219101381566018307928158758678122466970787884723149478109775389636998171105160484961889409187818837556823922993440369077119102088845165699980749439465164756426819665829676017279373181322515680872250743056584386637456570877969112463640609710144057147819409038619848824376199478344726573510384181308098053321063788782992868046725603340994290755854057724238255596916426882721057970237807174540438786617522757814660674521549435757961717256283644642058263212387728734984042765785392349908715444994091892247510129809763828020853937526434061243037688272769223355995760266040023758063654050781099526395646765909556042823606629057774937656642315345116743707066034297529048494998242067593245195347355897618639920765843606161318525164982576877567698377654134899984352914361449752477510121834704902293960639329135364268549676321966901063522036585521569977844415150140658932340216719849353914067443094550173885413076925100148278695206990885569294571760120619196338419207224801580948033484758225950844310819061434821836476609168804729952130971358166870597465680752098804292226358167014104391410678574484174070365433753823535345115167272911589778727786680996753483612693023742493305139278517352158040695118361850030560295697257648824671130810550337784137622809184702708282789172322485299575616249937427297870242860650259167373260740506740203967629277938177844783694466735130314952976985069682818761771386965864198705197052085290502031951880391438601265145950542255931669966821848007702609773026111183296596864437658750054882198016867882845673233427580682253921274834292254177208929714455724420991572970772756683317529864435120545437694974170410166313767220182742350345756693629575517360323741867123827510213568933619346860532893628838112125780412930214570685925914723130939754032802945420125444892857540210912989386462407375603171308098803434315160541146241179409776911510334035278572866143637742949575900437057043924674129389093884201549197651079236102963427307104546164478389464117672659632289302220682668627333027747330958180255033331248594830706339737256158041107821110303867629987706232215884990533566318023520914217706197519146368767548791569956489036708195034862157703631454780104672626581045568472353341145132805962289845780965009559699116840399720307429244718940879578303935708186181605729948594219147931067880439087554911757846058214934006684530742452090204900970519730550627088304566459419666719952115224516347808366197025272733837376425155861025871541709096246838747995847285113249577280608617090921282159990007217757064121779777509973657498114629595313323989341413255864852437400456761839090638745469122513396545057483222423978432781197582507366550668309933566017962073100877656729125087196952787698755431954638867065058732090535890841564339328488973835248779242491804660029474344116939335891368498335339120293525980074811405885792815184813854292113763119054006196534121990600110404230553189107832595272007230473962523650587828054776385656900063767552822953686068728855124611048696839842850078825554873735686497008089612784612258628379782665099171600717009045646557753881665436491888907500677506192113933228010609503821322196986058816447253768868041056560594540137972297033199400840233958654744841264945886477300293268286123178508312474799681980702794275669861238748455358375306054879335724701292104451889464885023575936609723459707983676952619249127129896165647371138926554498310158515534871342150107785177891643729806700375085707059682002381469997209744123286708015309323038649731193996196511810486205039794092758945166452299385935340524556894852635128461854039812258912178952390717690080657538386829553099754180869575916683382980147720031353055133104989980055065544521343510469460900740881738908886028778273955273248072897038268156649100445712611665564139693105636922331555626315250047081579023652600138369303153195032611715435304874194317812011415264324956734762718495624257452071041231441011850700203572235368947367198909076412315252470521124217661629678159034196055154404975991554841730708698290904582484987657393023529316814029175245935421380122700976193767360287991763364110231903057983960392876553374022447137539610723193576809906278718823481426405353936352500922464672737694226505426789343038481632232438951191878129506948232299192109036676709679876241788742699810584790817026726618617657302244779554167531429473460474465851627236299367442027297739340332069206898478620575259717053407623269916405004598262845103655939825999918756432005903367984502377839723339262312226302486696832304151274339802935962389168193976253206041505813112484902670330457125403770639776609473930458017353103439479751963800726594674383645839074639268749117717385258450914712524200980709793886219764551841604546635922604164446232375848024097270520122497938400779066501059949842114427488522319098756300638483379326671812290059390853271346081899534252307447759906171744448072374969305808523679333656145958153168296108595304448069232246820239495230072425312190115832483329405236081063122812867778145741640380125619844436438498651438261835978297153024158103805918075516105180698143709353780009161460558883244208325372110081454270883309096857644223642940213513582068070910564245345501973412325356107059918731572453398839645436641274997147807196129941313191555014814526441857478855094088951805575918990503058148520588476117621265109191906869489013893560125423762225024553105334578501765867599845709760637898381592287169353610605720431715318244750027310082994774007763623388898318471930011218137625236670679900594769662887441328923422353047868721170576718004443173881228897719471890019381775778759600270200053414575151842928329211788447602103918906866834217806600239552390321575428682345543161416510664405746767003575767475165345828455172407762031082280726500460671183106571238627269791534650855280238670378612684043570426031440913887862332571105636552800021412500891437549101456783077667691137428771996667563644039660456875180040935329833769344269575809718726679901997881280257580623865335302695466058430969599771662250181667671511537997743179502388028114364397726860648364632335994863071931352576139746335783656740336161399688491739770778074013343916712395623421744891163638889538558947125964832266130075790475974645177620224945192477038014764423432335299033003186652385828819177136195693497807870901220877412328270925904448037558761846995708488120325986446582467598538798889244349478998103299262012084583062160987969963177223526754718029675987486182815959552226594216592240334759642627153641543247566977129579914483818049425026864200536685840418952319444727560354038734501019178030392185723513240151750742835336088620836085084299286695547928869572393956201481163125312344159810375853745806597714129731580338220345612865586628200904363413765821297968694330692330915328436496264868597133665037795744864069627871902981285782544100128892916972176044181753824482786838175819108982874604685607462265183366901720344278058954892976877713115898508342273671624932790414039475853822621945156664036654779249455050660191490413344074582865145218792292801481826322761568898294538552191688148553516937756777092485602415722236846926593442563223600137869126648005182606136164044380309869450081138436081959407177884263752011914716549658819302471398668377911518640583839328575601168878236978191193635496029180843400407362350100054769359631313773110367645969312409517434105011060570054474450610388809515951854954896539830914989909350413776238433104486438517095130995731210538968251693947977573924738150184367129758459885101088475684733081781876779755871346928793653255622002965085524935475717890929756612172117998944257515262239510675081860978693968436974686555060753301543549282083621578719381641523139852493404932734924293102643898567194058211642856623313600881129602717632665400751550908708061248751095498592349021670057627253182085371698720462940596326868446400083593127314352511610017849981814702430908269204517368218404369170007846797742517097132271478394972848335940565097087933519401323912919137859466045874251168099246204249158859757907441338633643290590257178895587923429812083818142248027346636060980891572196669176713328801921322665845719262459441099413346653512653611738481103025319710238880218724753789877139757011317945979802021728011445868885388969989766988525975862197334397186947983902583373328531702760387453668715545713572320008639000631574146611269073435171258693008635554966732949302873078384247376346861452460777736942718290114598072254796051014841843014340462089875724863521114345271988058974856783783263313593303999865882778979788885074964686876452910345302781167731384834558859839606035604574302804456249623587397361917823386128632617612259501164256895233775494157567023031008535338130051882806172405467113949087483818377547291040982921005267136023038517106450077134354217032264478858385397245687564104839084257648721862444828751456267092642027374267335499488096579171501536056819382579406459868528824711920669802840297314658555765713963408553315660992442932670950688659749896444689481191189365780353399240289336483345344018401138253153611147673282465563666497900549290071598178652917833494272608370996678384546946589447080150860589212816064798797939017085768174748514872065556411909247911564160097928687335216882270642209811490523003011120102036449572797606556553445720461607575716971800708811081871854898493614042906186243893957118988651413213234666166155839229327549037692436445917876910951066598293451786308769714939363250936525296877430803655892493738325824298560488021934840839426826732496520851314494057741235081243159360873054304815494827809698533689726528603093150622406606586487625726598660766874596751611496005204478615767721841510002853936526631954606798507690947100454321878228071552371843841142653803950985403634021844278658249669841252081062950954154513865164980513010254356778027970368149731898579848562176047915934298163421404812220078551742632527478145312579388168012157541737632118333534186872972074699695765761301710206340736024744007082709135517736827600249459938082308003033284410893088999810025422788565700243071774604268883731036833917525453427106830083210644393314557890126582447000870596573122039236389934730399859251451193315662300251861216945686286304605429992174613937895005960761286433942495546329112397827529144891319437694405918267149691749603871621352108173823119354090475680203249075023609077773234775622595018722481278807765348417157619754457365737453617298573604039125166042944854938716789726240461035314083729523595757165526931525778783320907400257388542902781629322837261053878187848358044968526009251168693861624544168670777720238743470197061678648717776416214659840456025142778097574031709766366840518809487386908075484524087533464887227353638048793921437182988573098278363599328899437696757842724269042326991768008116419996349312192467856461513321605568249781857017620656456631907943603367975946713913444955535253476275889569384715994934197370174890735176304914326959455950518700710274864626150165805953792449277101619633333592200565633419328767465888359885984005783694809324950480326249132142552018177075579583086553721485545560938487373070778077122730114079095887610072555914328265409175911340449281715184312149797654750543465525633581821985243582325367096978653734518185475459677243214127257281479811703733295488944845897593059338781800580150193340064752574124527341339172822774391842985747276466640788738927043312954757077867957606908309380938403711874162808992013954263063559909774018050643267886284023306703515579271181661556511004094530432261565887781487362111705231696909738183328197743505203912864500224109312259796945595766417634966309034513489431169598995800220589661466034783574652473202088242580027270555917266482331497120965533745571846889497491667641781589928105463326913328908419491779428799094211063034246328794193916331344586617139005840791452450444453549107878856426861931580157364046225683932906259235351825565793500484018899124920928507970700000505006283141459474172470497927541730778508828896402833362776443923004464782653678883158252062943686582598607989688415644392195356677424701274781681145313374273614543839759702416817601861941693409053905146183435315773090428909538055363136756041617652334159936850050731696843672305688777970966993926534462559311290316392235768245742034384799524251146809229804429926341744839710770420765655695476268094160520735003864554765524432107812346874901174491811567158492778987994013873907869493481394301934942417827688577386059632375141448548756475344592899542991390941298309730496527687363780109560084057546074091562941641765295658930464458649961586333204536168718123478885077303045997767201246736125873556318362940899761943343164073886929397674759322260844620010732897390629856989703041867086461239784208183783236967961196624971677958225051406942452395659604036948917378625099594195177133380143022581801848668269213873715285651930947165918976079873795378085292539456731540268549289814906512083809489548851839631168306020814977447837095519300393994846561867645604152247067101094769756410600308911553318078195624002054820283913042388276776435601663790926169491974638433402949079652814015754771630263530461126844264064906757067725422378118635941153368366548911110408077612548524479623207578923940917899293836745967644073271128875155257424056563422273252541881307556830619315903299104983646246092400880727914251426395233935526225595807337903735285733999610906137300523771894659416177918724426606906445845649833242369048011144387941578956116430743647596959033765721299421626651817884418401784019293268497596742353221250467868292320363219538999780673008074957181731311912240597776340626485734245733227193376627082781797088857143999048103896927271802312050577672609201648841224160152095345434081470143136309083723681024559376592945242167775317676140209272173638575287850944710020417537509251719889946713025234901465410060494417065895953146668116700080608129323914845264751944001032983814589775130218193039577955038475949441744134273158898827120841805898027158183299708323663076779140795425383515476285115091395309616928883837413789100160028321348488838424116898190396850546225298742555653386947918616036717346150369637478739290702907793331539592939082355632560205102956040072294634618703189034500271837943934221643606066562525119231461649565788208480113610615732406471851146970769338303848465524156730125184637055934978878589696628481442659579781735356966477595459258928382836886862431426983113308647479746640768289662582479144628154581422123592324724174811176002633577674113012453704154894562217632654826257303444547243290962863838865793068186366656108740856735648028546723136998257410695302864539721221309242225971541883429390683820860524502630363538978288832781388672137267851319278192750150292382226631083274603872462712512286251522905434572030758415267059860004409576079894350355675320421971799100289916206870499499479317235465663778470322325934482944329923991498718681954297395806255026667141063155041246651741965751005173308280220366441630709112657324800424291354553667317072039182864369998353749820649709373655212151901788173353448185951497432689811283244449846134558270041735324738853279549693080522592518948530204719564906751254470607514656683312896112846171270645116389926129061517368096958041099802962884964614836475504085221787039811310095801650221971408297741913803587612432739020207831886799084490487336220536840752307018434403340228989939176536463876530662447838419028558799730811575261119208006826555087523645279703184708378163548328208953201461564014306277063822919402571756522948217581505237402713122799154126227265043230907758592316321071209082173231659875730392368809181502907179075235319769262077346967000883895006796404369851281488932504598054004975862690888292830904456358528255511862369241544659729413909253264872738106870761737804137361270412064983530328114856562619267902721246018208722150683411673492924862614227895030582395577270663605384784348384184023898503211603677717656004744058409621470046204133767613057185722278414511992171893175534172528009602304795215225847415252090638582203349771669313884931385672529150670417949851590775418745286569480725250448277854366815647969549480959120175247237906121632738490389751030846477937288017175125456103035708731212632580460920339786027032125574971307969691458026205620534670163621869198743510696038101874136949215712845868621093590404614998712944014643782704496860182077407613875616309728313777882017626447598513720899221133961471521962432060232739054232238437952046982228048464715638045732166534019254376377712143696122474887362048070920043161717622191558357319535158637623402169194275400237340440825171170318567364466725137885660558066273380105870475206596939847004987664532431351617088328443253788225650567235415790880316675533291141131270357450595793723670363037812467746678920516503687325132966282479387618282492729246190624820511851315840724904281666479226881055891330062909253346621805828156259711046151052111893347668050161917715583359561687721368817696275846676294218205104847763376982472104953768460716329998064037857148567669502910630701083680504926111867288050498270982582903633820139987776105108040660075551375592198726523258446776793260338880534419330840665329216916442986692851042917193664598408525386812635333038526404557700536555373874415841232261967423056902992329263783992933064333144177221377078981482256874257901438944910625021054049250628761919637167452837677203975293311000579669845363783897377803426200046669069614159939664966610735568744341461484063817917151552966791368782443863819046001369845220472493162093714922176984407521178543181188660222633042682787832586204342034079149730723146366631856367886989571975980294474348743696585961342794487887873857871936946371027152638302058925689738011214492421765509377247191737744338887153950755522172403611309679171820171263973724867657097133433874174257570285736942160756130163524748429038506105856244294977659777563426347689545634477346020313601844492807788884172958666472085365584784890263168584013403519830427467975881106548857332982176289653276687187205878404829696200340098070359341643618868584053358620173806916065516100304432771530429232450952648050848670827451141327949778861529531500514001167310402899683633971959476850207177865203300108334368027945017639259691476746701550527698961733040132878613461086983595981777552651706042002398526188540900803324240450406219515734450311804229388716803150804000996694785190247945035785534124479868387893172743867486677262252265394861389522571379664576575132105696768489057038532678109680218021579107311424601275311324634863543938772511818863160099866343312026934207616922981965891612860580273177222934511977618127348060713177923730200352081856588707744569323178984381170518551090057203559194741958447033758129785141765637338814744564572200585424810443247915105923605538747642791065646986237310750979374286672010527858061039559914133115739078139913466769620219567621509192095110609921140006955389466796381984179060637140968018604019629157438017201574029807859134060040850292344690683956632151172482564366120951808743703925389007111907281859355045892455682503450960357998122551906264994475912720306907978364486817124257970889809901730285405932356553605943469127815541953889673860408349620082098591605323829025347873789509269736485309046537114929431486642075115955524083103083836610140593813578834402891494976667428075050313975525155793044427535881924330471474989643449367987596361993699271573170876145738593651175905667798540347908449193863990069471819543212566583043282776408258623436077556490145578589140317227233216815431630418277625663450398884652534266013172228379229391272765357988730515185467850867884529944140981742614110732744768425075907123763715908414047513286256270967835379053132528886208293058266833787498371291963826386945528229430083233979543635619719246687254821534195409867568493823807455111118861386446925373502186182251606810345603059888945646434716001655807549712750238616308888183792759150256012078841991568654527534232426909665524370478057215491719228875445237350343088924159659227550693504799568195855369297625090070757148664301629122193220378741419498938739317638191072144025297390678921760674340923177049523704232101357194129936815583438872100700250658952849125013787494329252305404043425467282064376701820774135665882676350107575317400344222695094893147916566386798163649822726977863813023261518805731876210403749392295854251410682074208025424686594085425060733707810005613799589728474166393918527709358292055698005115464724071529423095570178636061106100208157980583240380508507532420705724842085497895888290122003578756422354143608526353338855721914065125331827795549244960717836594571056936287332549439232700728103925653608306420994221440986989539972032186091032713317499605615243239829119730729435391180404681438132916356605092750612845618766014773091397185358363707043978505915626313163218157878946840372452709107556352660913722220422982198213808762441467928984752816307986734663755369291968107031258311409748919076285421088674659739735021233713891891010624343675069028992231325857439689647966651773954090787258696143356325794934651429199036851067105039555679222258083002424069131210946832252122127432258045892586095058460484238387725859343073088880960406945781061292715443477814667847932654272993027350645557581773142985691123982839554273087895674352178071687326627399478533495289692118604023419640719629835971888699930017925688431741687187967585744189978148446225999459642563719463151342610692515538180020804098522155796163439752060489921888743792055332836250190165773280590471602307512452765923286545603776526690369207395387151936415798086297683445942041371851903752949756739372973399104901985996893135489349695878312286860330599290447192352603669144424276490534923496128529690129266568275527738014584758822909226279261781765853276044564923375096284190259318565993571586762140362943928310566219969067642620589596400038720235082984197640996033126039595158506538163771853537700400722661137495821463429160879010228493018364283268020901622015355361172494405392387202828721023747654117546800633150471006199532730887515434655085806106335358714845013718963057365361845851296521016800475549151533264070596321425104781563958491570707214948276555233216923647823085179776250400514467877013502015039226086130809825140515859882767653027095178865663312643543608947600052892766986638501764789679213118532723679458795264181204067962506401230024958333786724733028352249042906393444787461735684805816400582131337885394054546356212266245188535309812127769665112884568819493414980863819966610551336571237504762480330836966072693924490467474183155253830727775919159194123786868802568282563455746522479479621475022930171224626851230781053996105574135343293369179207142998768361014755510260914240625586704492128514141824957263678574575784366498900381938680438294208553755223438633949313978063353565972806883567792415728054867691672746555554087109977857332200160159188279543501703740690912106385350656873646138347277142983639221994237896056482063463336934200900442757928071604657789343847685333475838194674033910034451241714131511402594620692498877436347844805187021344312995693525935848271737553147304187422135985980273753015148169756338064133381005451406035852528446636486696221412339181790905612255619514392443503672394431429783414637443707729159814199943415784271645409106480084873670046039940940166813499967505137032773222083373829029326495317199815347944464262169169752218927765203093973039063101646655902497559637566792892801738241150001876540313410567021280539335896147043396326530976173722715101515969982745990544096931426756953538471062376903264838605309194163535152467568918865254473321308237319445832502441757992757484803839551747796247540625054957458005915314369375178702828883112405197460513991156478318459475472799001806523267732061940444768013231552485553541431590480293633597477113678234965826625297602083109044353841900451570049092265091633956144533460666692618214510502662754653089489639341939227977904073142619181312753884072411872861908593436444453114820799871407697802749416758971664963356441557911411309343068153705217473457718431826027418066422030834059553317534156395589412359558939611030918896294032647764163925789221532657294937093027399963005354555737410069769105224476943518704793387255082003640758153804296506332808580216800741966026982065761390763456990210336123560510807146720208957701218011894772243816884763080594705360479270701121084709717994596286076926493100971045043401852774044443224758137915000259250561805044509874333732117791378296356723231862662593453442700062187095365462752831448252937887694708035642735694335768727994291563755428290922172886766000114561895594963060860364551080875171608767273949921838991918024626724037901609732854834958602562944593569898970027350548133877874622501824193652820353242351419465744414422616462779532649150162990072083859122750387909918953974980541623083790840442100733349309530730649370963974796573577965162633189830451703227849721921940088752785526704968545130581657612401014019530361387177972154414931185711415457826126488598551347171184056811918806501304902740616118095665179160023154716799467953888159507571275085048762254185799910669349514980449702845202644158193532723081802652535946568313978856939261411968763141859404416302915914134594639251454999107001734669803005383863312065728592818749652021363026135939819478605657360624451233648318329730235992312297957581021606588899520513426339927966772790919868807243205334726765352368083844371725087811112757109404670184300633461753928935419037919914631822545424828013080227585433346773397652807482923304390057118560770895926918610339895027596620873059301912222743599674953662177608460618746591205039434573348068361528316910654491761121009154591607940417291445331870163820847905257936904148253174923827020656675515953732354435261523809947508639888340249681093670320219424028951682543724074326341180486374012953850929462413062767418578005695431206208638134221778320057299291511420623996000926184857854690465276252701994367545544401207238889213160110475912084103050158186900569735726777224236201092739930844503253067099563578719447756535674262489446392344309743249159566348807926492600601284607817616502576183258569921456070720702043691058691053346752222897852727956559474505620384329581144291794900703869859350954939189732135200135765453891772220048511201857586414803087938660072349358125295364417689503898278433807095039537003096895778834408443788610632102469705576431550104735188856583908812887716127911590456836390304196125545854112451092532389947976936319027764722255250616240061587374097819763211277558345096839203074048304541979369009501013883910138428801115117410690700765312040042883447792071591510172515422455931349637261670282523785200559530469662680649218209169670436453998377406115162900790669747394642092258417430539342091783873829215328357999592247380146234756673024413866574234162011573961593372623487522219074957339550254810608580442643356588772842392061297417006931696655757856834766304961608417666640987953144118253341648725713328397255246120449922608563835892992516269865907605598400764528025244724188951167610776816990287954498646429366799851841235855837443561906502113695424916084471820395329144036621478886831248213908303479588539543621940009572947957814670422761207458941603489980935617096260358639922124603216348764785118654113566009608532768883174498114577862213235024447797676816304492867967731318797525914057960065872475824009749953158617980146188088485580962717249108216443417196488655240500993188803100824233463253255396018658085104973717602181831451746124176671635866530111196715505211006653062331710592727820877397664724427671064358411419338611466000257567306928634836416387134708421052590259879092553097233684872258928766696052025601343153581512217414793441873692284753053874522500939569048354539583599161949322103532375674906151257332381511465388046862727329678901440529935876062838635297248818994426356736605746630182752143268825074031505344415272020778516548817122187094524310169006452957254811699804165561885458473529876391033010318691734619047912031524574036794416022679715218061957057225923223599130784390808088391859502274678217887169777953961967040447182104638151044122578562225293887791545322605194026210561990591262966202923754238453780158424042868402845326415820576608063601041364958328622598381705370873531950968826191030869476182125258816072952748290564067540442843302029202567314308255843325843887192416202416680408369962113616125225742047588062197759503800139042420721296012433020097802747373741637112744440984319595630273645886633598550298843340809225328538574521729316563296508390084784370495779952971826184262475721362416292515578915458342344313049050002850281060533430108488950472714242783990743435025900424486794461511032959192112726819972758356523766438890006319735975769996103601032715171134407225040507802381863497472704046784533298523520376937540878141025588760382114666724289380908526940648646696019498061327761744674855830305155592844233225633131512005730938987384601866451538358400422780480689082636526021820872509277437106024310266070663715886805606974249923902234758184569130079201679662876646231779339247306580440129708722589084325874845460991165007671499787543864212050961861653615602789634222255031541672906493212935079992941325872875347028074351416337604387272938937240613811227807992136885104739001809482698021064101470411757787022740407693560827560187312995665758941667461975163883076622618836415807267410677787204086361196111736349512755784581121829352951569531643073610228257448768359420804094877284613999275837272906120737810166128725065509646681643757232372990953749178769593084531657356323699144959972427001147967329584753343489271362492369579146753619777115390790260763647944220930996109646962110531108728948053839169703614282171271909307702721096639427112500193234577716049182779478692380651691198630127673121660409455936898648667777759957971856714760860172737163773255535017486024917538138735175007146061526219175135883983010186441945554130240906605424542286563431376169940527126313473089312370706250472468158278982101278675424009899730040152447951411063984731976534183877330714625586488697819906385068422148780753452125693134855013735766256746499569253326197895148989534233467461557467943418109563888719398716640909741101017669502388747571622652780556679074684338627437012653880245441134526890264581644840507108773619856658162258475118848096158161225902469505289812886704908593156117868537213867439267460405346034957559742383604175869250628858048905875308403076071987639968281546669480167832069311948216316614841711142573753648105506420103032030482653013316617231684042122180925275656813201974032051461203016836008678194371941578295216931136474436658202023683397670972411309259185099901715994711884967671128716558755230275293301915648303997776827950145680179994655675799310884218384109194481863833341852489545156448223281453993097719065495181931720493565775572073856271662630904194312932062464047841727640922818368323692500649269629973871566700166378285343122366509237198831998029472135332892498747303479424502419109959589785513888312064701552507953465035920676344449487369351062803478788422168033089078942392382334120837717532170985965852066672511335491192761756966216029189858000216109749271850834119763784573418238676092621599721084506506190228390850329602398739443162444199051179151612882739809804298396569986267632765082476286683342381828104603555805324867274360593491885103675886168225977930653118502591410864044700076068216895049368045946540914396217728280616253234741651879422237387571211547706444614415710236697484445750434522324575044283975084989704578229042857120309558808704128966532147586438277621902169401365601708755049073539363998758446002045864961484371173661344350509877012596527155917283672048780893175734443573739882420410573114236066724226902817175505988281377923427352935486419326310312247935647190915408422896196922881858261300474568415546845086988597253667117588872649068260555708592299709876299281139020824747529191402876764751498548644290257800033454946763850565306960488490746573693364211327654504507178352855154111341568577765220666896626403326893017833495124796605104788892866068976611993283637295782043866840308478602150051391818124244538029088128434078668353685056430632589819285048832704143162578907820029098427373253737181379133058168456885541519683777110513536510022231629394704915960411228082927593129166653411381152566433442681762869255783073978732051484783316894090043008251715058160075281597618321765549434092265791302031250607131462672175233396232931877829717046588198148450214498967167936778865215540103139774433960657510342228302373886523393193395051394621803496830628434549283536754963305893829734501367686976531181713807658792055841037456080170913940445824617128582415791346958858877472287706447915419595674067947985893116752013050464025769016284316143389844204124349636032853256393499896394822311206661939001848329547392142041365654369477039614714640073060047053634829702518279717465839510697846900133710703500536765927992884009235963783737343911765656863541774859054177707191448963394787859711051344728788871930459700606361293808559080337703238440081799147347553472216170136007767628592538021602604533244620497418712311581360322637849970424917479150387193808810708885390320299963454523592441071356863592101032822366888616345156407329711041654934761030360414938938181249923147266446396562989655458909684434595177219409356291707081660552155814293801828104333610442530447872763702545588294012320822509627855069248848509270987582074506804584828501726880676773675804768381134669078256376860193655712777612373841308546139249273723841785750400428624609949194224798161972857222264345302814701662624517576316987595890315624742275393667722084964560559117757207094392928266816082370264603032263816611714565342711774810844371523960876472624590916805011885347144963803227337918759707218915938323850409998720358952576026067312173503614669614931827536446981512010005304095044889940307933701812647415994725441236713048449862572405666709805463333698438221602901257221129627086540140239464627082944723191741651342913964442014398957888978477285974591458317305895867948391623748997036529154418010302529453801332398534748911778266730445369810589965261032164802364454714541773305492988359874578063570862900656407506045836386351335605440068620020891343461170832820068853977682562766328761311386074936754114922487108852322077154434918822370336555935579409421596449326246227836280721540055542702905309148558452794795182835633209178587159104813451412498699590804097726861666671212817097702806655900219658846514288681465566963635636433590752208378632649202275577461761651790458812636755160337482122590227951257685890248799328768946105087352395738085964601753041990635741292951431464695287983934573717784720783176719011149194726718819218845196448183950354229172804609766685952126132367720792297106443752083818759505402384022429499999878717170835635457540197462779795047767490305640425699392654489587948039223822062877573349339809086400523907774042646058543128215449579538262937166895243818211087904206906368489430737191535762991885967275461545558840410284690234683783047359509066571032225191500244251964131748739623739250039818153574884260960559968059196220810869003611440423918756745088677566388389165648571508702808082591891616735745794068891446339954358669937539591842130163776782748573249224338728018628925987698899867225301812020526071599456663038082730408906532869455159228011279231151184731138790465006226012788394497880189066788000240935199692411752995899141708155223992482288711035313503910175021193339493525742651620640295269175217769632694175232073133886940714955441400144914822202544235860079018547585460754101660117075114055672150802173528609340083495811333142458090819872783039244247743740131585423446372975356988091397460871085302191004059375065958588821381885525134157044801251843411992558333569617481585615816784265919407134023233019584836584625909662065203804836450194850611224783055662236376242583290003061081923504667166113532942288746491181274228583038443220158854917208893542752196275914859073581625587340384971478162959140770684771890795028990146962443182908511658640216633608961874799116429332625704766023636229753521958145387410570471073729190518198255240513332792023172107358206885510802644162566621484543286542822053079267653458039777103269239211346513768870583041432193219155041505151943995912390155416911458083514636746488483288339360179751543016279229262225597671186134715760012800292774112280454269162955325909021289554432819564122269460007376700013629491214847000790183129910797226695698900404726497411438528590820828294571548911744661822310133702556350828528681241984377109455112155901981682619641254467484434253058892726546931958154298515397660057425132209914051800738096608999016370136553229942231065908139091209887070799443261655868951380267442560635950809856571536635139680742755552264333142473167837764598426751693073381788076310350467418608989153126199102561064640565007496762620311553171397680934655970310608256112034185557858435625911229625680016842944474400414227939691385585085639052945019792627397206653136537763988178510049337966725090828832386070501699701645289868685706672763162515840688160505173682694416919341520266576035744754238447390025799174188562315986620087338498779469598663016264867436551791628935826127100413424319579979813569677853534448561558531407835636447645196110284098592546750469896708124502406825472845884034559817049361969185249497665661371312499665251172613296923752782284369336191059069531729807541538036844140191434197735697300329425355616549493466744776758041926209411888805927805199597909451926619392957899610372322053863708504406421372820994646545791264985593732863932226940865700020673294597763587498298602128980775089308710574542341328120495376479434763115926815019107498436512763563820368725702523939163284819539265187374421818098940968532585304644649003440346464730951229811162697392649821948340398523740401383997397500737574304310583902668737833391121466277514395325226277433373906040540411056103301337786683923003110486593105703690817412050693616826393681861369979496402761723616752620340256938381756147847488495409939157152490757259907087236621820236842778006048229613019233227311670764921113089945383108214417388636228676757586769202068832582477080121055496428374763877186088870553275767647171723180671765717027273616461303494309325212790579085590889023739116325258923665295427047616661121536691249239737288382485018392173215646834773539273993009999582655389238295353751601196012667165270322211559547752775967405828647566258790217498171046026573009870642282031449503400089906298160804937586655479310430572325421737806327567498301618970516398615292487780592725627289380647604566869020534808939158094295326632306185516061377535870283038005002747132489324844233488594298281616101667351724651791213111197091059618365990022614225271145535114985915674066027089167603222101198304152067086786859790685857011554024097352158696909335291583233858404746590487969039635931125989991104100348512849624194372192255669514797243735259598251778337701192973043364421097119291892823734711050693179299974289846828855065203226852780416131951431179943064818385376943702203067953144267717239830982660938785225689667575477773114821123199173294327701725359613861282224251677510963765076876927323765317559284779096119662963653143327715519268403889367742160973937357902342949042976545577205829922515797739043181809680519316331591511064396816230212129742666372514292354707159342062160362273789897932251655961097455689902379889997904640674659435731809917529049834720191347497537568252500734139022630417582089958235652310157217032807781924892883194178122565549077539473639369461550350320898269158451531343275526309323572018252723491282885319818921192690162866729058469570477096309799196418198727101452337272582642703198108787095413006199506378365166417810761545298453661604194855291726813727822255115216267657232275996517812935262808185287693279736297128041091255540282132316270394617235239081846808651714701760494504269779679213635740228497338375345839535139877645336161192789933526897019354708980559223628946730089357228186940941500963503032331700107787109520363673255534939048500178321850510269719149620665032173708577982134048574472614423952777336019688594684643648833142758107073443812129519319532478848956979431505968072831497142327996369815284811144098259398190381137889392072963025545673768174569144384300146355599487667317728579996778689870129344656034911742796919569107247375887594124128630346313627580071537168859348351048943087593863513920877202589073860299369294175962521681929961535101352568786588113913386612545812390825872136018563189980281390082029052059498226611207855074028402649057696766849482974501882604585636450419039979826771333199671398963664830275679308625421933864137271402624647331476901049325328416750181817521593030720440040357764028082035448796085178115791369075591371543920657142461582742530983418761338438882574786612829270439400867149531175340074034356657309965566662118827859518059799980323368225513384973296815790452520521051977754896345317225113555823149872801893360398417815936949571834440588797086782483670080388650790116023613511506263126313285047116390465585188090180531045903736051698675225741621533160541877172949496017886366260535344931549288275074721318304184989658938935692622688355180044210693391957700343519694354242363228626265743313270277610718774752392275365197511474572336775334043522438416409097285919849746400074100304762577827674276443979434833641578137728544972670562576114532072426378438955237004001276351745080428250034497335320458955177248720487312871266011459675270889716359492168691846120838222392774320330771876762420311615125911021833558554981642579026792144414493699327574231319361586320379896280696468568906186289613149336757851273554722152985501024158282933305010389388560610405745827408240880426642838887790668942875613548308105253327866833035041744895106939544521360919301711072894666062058029325372018626781730310195600770904720681199478359598452350353673923030824135798097170680785121244806466093636321952403020522165426120905925993001779960361776074258343167682132821713101311241257397377519663706892052175437823825211797235095143964734253950836564010152585403883447942284062337851478399598244875327488742559127873699665693426618903225674056619038764360357045668527749009973890041039451443142930441520380240301302596248587072545473423073758120356894346953291622341896323001381604467972890693476469608892774267057248896365348391555505249229486112086198531033638514249627719028373324544749958677480164959624071275730122064746298422795518888247470140444521305262031401234776495956923723603165655628893100596144645642567353085275755579296143301882714520039457994584610147295133036198055465650792521217897322575885926981102635935909451680391832199846341875673647338122869323374190693151958805497825295129447076195376247389797647126203278170815490212172523338830497854395191103065674047803964056314927990204785745178770034727266503386172615791712372007185125040956136657260299341850950446951562698478636408081050168664142875436456029956985698801735055990583638984631060400947658748300163505500297693049434679327935086755418971783808220956135366593466675072286996391669483463811032236535542562045011310813679725181054354695375240743168688519537843845237065419944234091084730616414264265204951793510222521152034085574011225135966997187741858066820279699860246271175147821528837451500262588847777449214352219632840291409621454500717676486221087223498108918534289243385624495687683961770484589275309744844055143732470762698621316185562624079617223437552828412588176695404476830980167508871409838129599469204494803597941876388403486800879952674995018788597031000866254197717460727255335762521930166590182068927887054350595747278919506501069397858792970902443402231902970041536907692581978457652577797473714759118844839037360152500247605306023476534711351344336708789348088131164441838616161194149146388593919504967699027537176742188572363705868485026726212117920413210342185889115483074233031835460561774901414528180930232345156212509798449902822921884719173265237225482245120151593691290085850268267728243318732235621327959643942706955539521306617300262559972267641342104655475559620143915773829708704796323466852955382947816681781782803100496788349535435226280958273449931038932195105028442586489854500622450266949355011651366814499827197714802361121040714708494295075888643331052746455056955812188695706995963864034765031405039716509541841225761900330611529397401674502317154141987269964506238062599617845422658545454167461683937694618846261203688904246710259590660316767165819916618453874529255419305335361785582223035312991969428063469316181510117779552793420365650509693475613996629560664081845640282783699651780505823573036056149457423574940095156663096008154278332574571170528347896078177149044052148097535100883442558400578104944784929399961034916101733390404413289049839083958784831019665115837675402301877473587642481464617822222824676094677494421445490370398030631022295305509634540534440248849211754626183496547687268285075936743251196677544510281733064888812678362321177925265150482949555220165905817999339311368985726775952398242501916142075199393174539922254808401914718050727665540546702138959566754739163164454342799893083855926564416093839991068531041641925501374293685815506226694169113057103026125859779726696980473398054097443917428492744081158921043719064645056531101656359327539667734325883021357805223029154613163837980841230016577842129511966761554067660947328175401508000455136060079404064438114056442590515187592768480251343943431601719045105779904363062318366584024343599779456214632319964009421280192771476781167824384001790504416328599287074298266134782017099838716046414352210776590134536830545471350434484572642085635269921141307859554578189023448000553202057129862785402735798463717570378365305910009694545644462568397424095580804902773984072742760403046640097043567233265264468654843401038562878789963791511420884157091901561566224472806796381839622873488822471787904958395455681775433186507271205703223572863491449237489968827733436666973834450061159488937157055106654762182820033643905417815219190275950902814201124907551246301592809610193534758130082528227355495946738934542224799276671381548700183668205191432740129605308784743941904221506464041328595390205511297625489461234744592071770972462604469596305630287809655871544044243350479386089326090676789687997690464677539158309408784798851946582235554531028545815475738282857898513630982676852358072871326324573957814202547569471770891410270823836245484486453237257279909902007864371486974038392213859504717840677227266447969352468198849738349647269136232193470007515440711742197750071650248204598526455002632038526715316838339657926027163863410639515561557973026236398464964563248381986828410967854569602696520750614752839052513635652736179146349968225369334805531097717872517879510380703854023580911710408619734841727010022471313224520708050803661876450455711620738503825750582849652024213558609933221880680228389924348110043523226746749098995115779751659435063388071733069196439033670422898096931696130633711918289352092470024033155806218325135019778639445973807651166539029665715849428624981486006110090118348837702654688641875364765336330229891040967589615378381391879164748456696832459155393265287302040713733930456147216416458086796922483874492228191810902727938581201587435545663945314747194985746763038034025466612974991461764418400597806086044476137618992257515680883923268785771496075191222798628983407722872714917942128443803010027761198533443132394987749822405162277478856835533057549251669275271990211332881835410273854800138420294708888906030622214302317165611973383278138725365178130111756428554541732884291925077074100343710371037720970332024671323575623685639377063455143509899545328336785868210488462130024584341135218737119862741625692776642468422515804363076231014123337683277356742880212626839363712976561041197887844414172488260975900487372107231940299457381935518833847730975115818694956821144579833197023510215305233671160711552869709046624554228406816072651062771874716037015473950469093201624938722457358404017323780363442746375117665067316980961254985678811538528909538088093970673774065303876345882523291925383495666487861935560257350279066579749795617252205898111744044071163267728213923800544477568697667335615505126392714882442409174700866232156385281660398112284099392548674316379985436494910496363994835259805616743235645634487698691319440105993823785805533111634136358570721550729105146851619252588467590625957076405779033597181903125729861476686764421120046843912708678593849615590882505577201384370677133487386748717197785035019676147001199589571876084927848076100973745271645782108750071426462602309205614306338413582804099612514119133576055498006403271621172203270245368306340030807965151113640403915255953416408387124357956394429754773168218858335127684252708548186244679821829771653280056010879334673271306177435195054252883810398134976903416544598569336370866146756448639576497821468807221727474226161091459444855080399158069776580974247158767483077687053191978748613168335585444241468535379930888063924784367144866788396831530031410346363273133773316953142060076356249833323514173964360832332033852990640631823721952500347293913532858192970170705542543414282392870795041956715900877487938887488339392626594121686061988488404667065634478639170133900084330383739531504185633922787153601035527841066417603820259890545302820058604150769715924935581884233333780005848512579674218717317603448004994848465961416544355497014091627810629737142333829796165055220993603566060014070709154979051883855488576349293031363041521705510923302987371594239131908052818849070970560595627579843727928492117131619801380347115004839887608519485799427980265625108165084679970667063055338285345125317898048260116531441953315908660223327792986372088474097419734152030836857865735181520367817042618975834779006761659969363075179825769213372017574149042441978617309568173381694114948136418355854542358303026734508411932931756426815086400997995002224952411867362714004908684904934371937779194337333267624748354106491967289256486806159707214173703508511111479007844216405546016781863505778846921513605116479747729969245971910864457530139219389150647619069434656141969152875721214032504854628194465634447178477961908903731657311489916593450068648256387711969858626126911937896431800027787759067779209483746602627077290526609741932192760641155312029202129910506272020328560845786127861303698238724319145928341715992942400676783015210790914709356534369901774989529840691126338066795170450467038483964016666160135970209807556840588312114554329491579181911092479007007763007605797012189373009647028891676675336291865902186232961959623060663622155866955838476196184450506301525105881276484839189189339191163854672376458045441087801066116983353887722786455946917279483209876289574466117806184127317381599993283568621528786829205581014293521933204854284444387309241955876497094697244301455292661913592331674703205690091810245326636603324628736140854417849498173970585788166811321948000591467858814291554734397282646224203151005484845965503444058319989712882028251749969654963563740653966421311031044131255525631711858971562984655772069182243736966116968494369159902417005826014488110401285067575917606329177781679590985779842081381242080213719259323230355691199819198352691905623287712384470165432026105798619065502259691707850014813613429172026845356785174682593288211590669166298649346202524696228673791575809978881613208298866012920916255585238684962950812453147575527652404624933135809114931422792255894541976745300712714863268318785268833726246559691478287923926851598939305579476792778783745024718925225134841131069244660693480413328346415119411368667572093929971161783856882953148659036312407620460377261041542921752919018822339470672543428437244557972894846687066255391795845485128200185689826783895269566530564871418981138522430501540838245958836919310926305315770794948990848818448007230779889775488993388055079340258725695755632237556410933814957287541346262513640659872955080312914892480983479689397557456580497630533350029726183607008486599019980668966992572456725152000962305018969998291273231937418908700381975757914918957449503961915961179285009014744415878365811977695919996620741468426106626253026475387119674380024505803591796932259411785507791066875266171532933479776169132796231912003215142650027544397577709649300454443745681513552848963081567601722179283344183837941637095465229066450100230927411184975995405553383754984318781380917316506730205790950319767770614596935311387843103478632736388307289545097958668396079400565544255182090026357291578362183526084661182555471988430280793672786253999258894402205495389820867569814666228696598419192385716413242962767159715089442502392491371925037839771745822367460231124976932500951878750570163955437674484105034587070805256467811535706494002890481353958076723742554481868432140833550356855670413864139377048050392729323199907032355175065148675423005241189052454642400435524196197812471465959476052836282189633650576419283500627080545766769749075195731279246637337307051154219981840356807860426691767308938508939880982609415385424914380743356094601238807496871351583127992561411673924319207339302404144744147190990571461936351336256579124334551339020042028631901762444784767346067089086735789031543560684426580744210315406664287297876233806952059412805627061101582328523880406895281898573249462964389637283324913557376520202181081227687132005896780966953989103082623968203976081463983768682504258875697143937257382261227117079562372384882365944050630830564030230951876222831869658773585571239369239878520352095713290220801104757402714890477198113096333031984027309465575010624750670491573356379453891478358825887250138672611308297149539057519214810712493515483890298533544055808275426528793545260107890730711572441506905096722615166228678714250348445161087866079805824495730254078651640619738654124995554038007114285252950891189975062847105059267200183322002954903711662667062515159522845562493872250656359388895008483486429738083800313374730668185442525677026293724349430148755680054786157334040646200811214768328883111582813708390018887618917096718205746264517666309661281113657295711426156319487166726779326506303096024143701375836168055731750619376031934356063771033737402822854503939645037791024081807435037662602162809638506365994856938701188199328115331763556468356941631053802051102456129547347465561179923398476645982427486194792984673966120968286599542563066904089236619999698388711991494810318469858997063853425006404442446895110587312796212647404847814438744439789772927070404164212300194146359086568504734516420041863290977052782202525119360863004118666978738720532259140340524927269495103036642873129203712810648855512341768262653345399975345585264115629087235015929064497584959428621777999196779060631999682601336141224381470769183882166527217810275323359220048874852140566664644739714987071984905071751797592110229265629974478424985677941675346383215944476351144620217938744273663375846692204752591727548605232477767651918457642272257074280136454722223311491964117291263562592334311064536523915548979842978668848102155727921326417390691758764728856780586191584706422170274682563102012877258266278896408966747088995072756165349478067822195300848813002058152305349533712380379180855489463499192014217537449390324881507142094621918167071701423344466850241797013976534211274820687608001138598703991562133125501829902263073127382029803655249166010881648776160102070938689202205168660689878470146466255630769463793987537423418722142792503705033226124918865299095495873315595864669200806924678981857302059548594220906902589420362985971680358920015809439000680389586617045339239454245586695597111785235355238528847562812553578443899567040051259651673039921605865761315952922277626616128075303413303746002695455530266011365096916015918668621164955996412567096508929893629976647384598670886755526090959232193137314406759121127638911321495477715892281652899778517059171987048524647655497410382288733739194952476109391865816831743715751410982965699396482621185955528339734991603928662570929605345738184698781580621454610460500821023112242854935534092154208244896959269839789047107477131059719280890167467469910706415551164721000630605395948853570731340809857994301057604892262509581625401524333977933660921668826688848288136469084714934070564639119788969288234465022321882443377117928743863793368121169642323001574653708598125599836484468268398702176990401296101145496250598270390081652455574938074433073941023098428896998145342376545478088336312888254889036624857010807012956730167159948058800222380216056978195886145646174132021077057219921947393716719126977246477400987347750335389643092258347987915814506796391432020513935330811213540681274705042907571165869084825335124043178357130642995265559892288013283388651984976975533322327086973173582379564323674819716886102822267227755785367301699089542766382100668090330986992930806127729083460252669420468295335234770768661317213833559579544946303500106023141750846602389277185803399522429496753060734582697395047565823916773034780771865476095395633409839154504343487038251640400309056959307139713945146508998002143454000897302608824897921392988159977402993060303092370397794585110471485645572164524876955132960789251336101650172021904741090036152866280340137562208138051796711368065358597926311900157486609075457422519592784061270900618253733300135178022040362103716166483820282010810660634904352672880265221835827181540478755919733731006595706606121859207641377436888088181054160932553224990134375742448644254494149715491846376857101407860512353123392486959598519765199671063488697279606192669602087201650396571065950381472025344946309320226268145915667162313146144961133971172911149716957215883376729232055177978893421548738329851560889841384784324472990469759478960245896048785996424182873417805864534128899361823009690769252154282124873069714103974202571714714206412910787145292673977705262951544814135830571276020311882388883998320219969683480086911857425622865732609284257910175250545032559573958438406067179648024758189525254493615955186013207936478548856334774754948490848095016520388890181151112724987164911602701977218982141342656007429432299281824216313297384188862910959608900848911846531441745235673577434834929084425944288388187880660600971067565379905256726468834657550895047675036420963561639892408796819853518241336001641277225990956098649143061301892280777891907699634482861670502575645133884443797545502191104439241721806042084179929503563551981354541393604990340962467838943370175197471591010788525988729771065111913930978026253059960004972270655908343449802604056730748391672441873235214123192573421100840444629770295958746428195301333874603378304167090530007868879480123056973407659200560461916069552725218049873571913376169787086356504618120710254342613274455039907142525373347332068312264600131583237830514865948238900721208287940588578608095500853046751554072685001773798575069908374451540399149318969625797389079908742492073342120334511674082803542079776999865836601601129105487911034705196719285994413415744553604561309813675938486076664267625956035135797046962925390512290269636880029014950329100001288983215249743214665739155917805461454618254577626156418763602223503450667893317594783556125906278419641366402850449927617508474523729618840784177178570957986529119733883187121830542277876344635215886651422818668694540051961683123875335449614344372348856354403803253882268077500219849558297652151825026866688936556324930414611761479767079652049296143008269182638901963025356244959796286318220569532764042013422707422418315510691238349495142008661863291813078566153514101848930645884040142099482245905406085447233684673950040702655974007837299312262487274891135187642513780446266646080744613661488908719865626046990257864868099903120388797898119972242004357742544036432937346889379143506979281868832129005548716037987943719308123530169980494090816174371039323381652526932898749165460930101963300381201311986391081435325197071783332240258173397406358491479311755926499783903707136981093559821925815663333718839530989114095360952754241548233406171209552106983977667812578988293898136908145986901377450733115199846383284876740360665268527450880601381835042655683657603979749224221287685291096082470902681054396772015978881025738884924233738567981689179403420799998615372885130450219889379950689353354216821717710108532882292345052834236591801884001083581553280495008126282099629284279466869497912734728992220677261223603713137006024265261498246888604470353801390131444875165757845387979962292164142321686488833726701411829142009802142105568700393394622595643445960709383070456634027862986497953373816487219605281453486835988985749453801698220235081146020780969408126224939759955566288859586710941341141248753417004217075638433404280344342968695804453379058654094031787775479187812395718844985872872513214915386020198010137933366213431886062834438416501167783897665903932520170965047202216059813080655424329825749874923734873357642810361768240335927125409533515609331279021323527327504359426770784050463912097954872477431363370057248750495703162735505115619244842057188266907420941131063865949117251312767965957029003948973486194870759586953387404633929454177182743118772674863431997874146289979828021580696742898530770191975420208636122959599125865524979835492287375756916451380718093346245140734918124882213960574964198555733216889620172089668694587581849831882514251269566056008996932490899024796283783584496888005715201429894777820886046701987635334003405924897631394630931378888910686794398186993511712896754105823990067005057568450652362768404977953365390303078622975056556737279681125010714871278214712617915940321055471910471477653971395560117171362494146938216695653156214805653527102761559172661295678077586541324163598283537326652542368132581092018537223554461136256600392240188757104452288172386626319343646305461293454182232229368839470974105166761430271742097928970054200799950611725146423187873652806048465637651153953099141995940121115082716176465201107381608589576256922356725682291417040530209195210121922364951182857032717214049637970660061628661714921094095260181357568649981737361766086820093387730335548054867886371419394376186242316616239131429826029450056485362207567005068157198994821767352496085480660908582338788063642984142968890161996146958935310889617675926847484513717876635327515829850091480704437969305335665636604171510524643436295026202425290573980925023552229318863017942130875107967746365206815795889444367407181451039751182573697457875323564110522107232931708519073135798686286913768808243607996775580390621191331892745618050627962663118332824952465360896429499047986360381217023211492399871008179119964100924683228027750436930090184294421199204678644577183277979433641454025644049856517210468190125699191267556958017087929913418377336202878262308200619201442525548648422891591404220282649351058524144220118915081142771142048130705157814284738218519100342406358693895233707074464160147631928105009040392540302375871364681326903605684797847079545202160913249592631848647021088396537757385932814780652465023110661183936766489124816709890257600040612605353541113001086298399768321783290959506751871806747587692181764410755809355782918260806403032832379113976814577825582209107143040830768139527781277444027167766771987841647849183495714323534446126900335586619619782119429049318480948155401671901952916558458578181449571345569405116628087588188321877146442262952935924867767828319353935751961265592006558322343776226582809733246332724577512900402635099250263228895940068442354281295261924725686980052568434903417277531255649834792898796447549983740277005553606274676092898257496271581351879523531016456918060210920096742816269980361304998199585816758337394163686771492959843695866791562369378768239120167351242271487659633671891156098243132666062700792934205932998437520999200738344432788014199636618787253967832642602632980283852587082454635726621005353536461545280655113048013580201410792922237561362930598853060423436143874949850241993238245643478644148015734086487664497915206122744888264474798586980010417384955231211169307151205735992344955854864471713840197220920418866576558780274100952519326097749829419559746511762430197462719102644805370677167933676936043813811028667523586468460471608949839146176204011522640950181971320989358352493558868361292998176229935458874242865077056929583165890790830428176797061102771602801759401703090032540585543008299914297262894991401456467664618555819233289651432974996614924916897764508394025973202610907776785696201362863025394674903574428211083985952528544513118538293889974266725555687721209045429591499676683890935941129982724300404401300212050474276440990614844705580112852723312898341421183182718208073141172301615570361601367585472832843843092357526628908625247175955671782554203613269298986444406864470320925402118555122324377493861001731287315744090529630826814281082130518761109920001083008946979378811096452552506320813411357860043169986634922069953857721354259408834288860399607609304568654903381642266846366908704087400298333678746920588165961065144009368020941832346684531509292477858255847187097104411466253610752233563318748598753987846724260211510378733184835234751353764131918606547522750724414293797016590605493791436755613453235598147106575358408689055861506226218121981887363097128592595870260134140609796570784874779989490498734409978120112634764918583024352250654781474796513070905060950491149442683781130489078183520155392701506691873313274963850181209117189208556577597206163184203490553542807420593879803429681861082125204775299282062750581250613780641737442518553884680365288572168151804857745502286517302845942601085939125075788478402452325576811966081374907866991345091230084902532256529181862134686522114112614087550833435661993064831099918622213005520955137602861978483775535934945103589330473237907646437500086623208047770685066715067080846606836616656982378223732573564867692281821193857120360245616796680142767648238620596331703130278266820302460305508096740238560186677382144717042247436910595656385256082491997013614101095546607397135961217613041585975669186722995668462768587240486134068982723342113802303830836209184705948018265794861891955738128455971069827209030006018737288860875359252253717405764832390157468758673043088080689561489351193542697150487493871290796312772653122751911327416180971066672675224492541149597492146711353559907628267453195269033731971057187010094559462110898527673493218321239671926251636343171526986662784658542363367035014043638647650058015061576694606796536991535011833894549270992263127416691007026319879942704146111622966005160407050501314020957948551244698118493898721259500989048415878392375698685446278858887080185102235615058596579917732043541224880976534471074627624852136787055393321986452986699935251966290096239050676234761648922473176462022574010585501888065285465570106196935780909138201334593209518006385841140970942523968928745825716989150775746059033307853921525223958301547044037682056721131655791841228910114230148147397149175679826181058947040994570166195230275213381210665322261759056705408707495976599660100750899748043336775928561639351016845421326917403584137306916984496143937068418235176776480380373701800366032406520240631810640101935794088768443845709594695625534966233994479807125311763113774409956242745795438796979446138378535636242475116691491123372905472062586319126044354676433095051794317560394784838730178267254201793208363474567556190520527485141630452353050691667583056937587476455156334042644292113980734665470843833162602209430204707375667920471011201671152331453928660397496874768458120849111038880359467749313030384248055079724919282944166428143461545620494718217907617582164930545234864534038916876124196633270759301255008521534602861498445081837762150084576714899184305927910437606274967683346439227996174228118628226866999967774907483114484014313068432272425400524749642806366104306412307551829868663725433836673637408730276857222279554027643572845370730913296977012793549817800125418874254563098175906713858112848060811492443430032572158006173937985364909545401715801939249338862879815490039076045141041561682014869287423673749664009297785368201676318289855643240930456614991411473687173762283180511553188124725727738064446627615678096014013847240684696535611384896092310450208307563274927736293590861321041684301862763105896509195488627623051769803642215856096083317269858432416552406990944315881278748766141394270181274971513050993027022875712525803557731032594245043342077541431704537613115097957746827776873403806307086952054309561258813101039599776081027793718417874161011463362559993287703588215604014444138849754754380943239899014303317737576426057200879728317972815599534459949611893204817106496272309995524233056081788374172427634607551977865975126436874571655541953633820730376853563896967435319411461852695847746861823254056924617409583421667549154017547947816449886708793515623265493223707258779703075744114223254551349403838301284173226203245263645820608923136635113980021471548648347134590304352304946284004425178550240670027624420967466939924199502236128941297996564422733985539911016879128299713257906010341753464946084370950692355531234059292940217886242480609485135850419958530630052991429355209424833064315279433929370436529408980783666107662609930359890705996103696466330313894629643221300101731942188802825022092833274908454620718273604679574706176540836599847157984978516533706799603754809342570284301195519023950044625959234151366899153323740044721372542705715623877319973557362048121187182464773093117337002300650182195257611864894618526111066607202318858317441554654554734522786164373684759360763112528598508078346119551892787695280513133996121177248328963587314735122855035907529675173066782095654408179533001524022670689519721920490709089416267549467300126516077710938849153214242243141213290594049190479655520809412605166611659768766624866019046848469175062785309672247954654517403053844468964178743435287187194350764561494794062358167474281821925507845991683746675022391157822809708452985072683834119156649271264152841570185456152589213695755070723734570835843767480898944940019640872404135215820689303465859913546626850500233896340189793005373869958483320439664856676545338428742932739214571172970259491343496235334514222016549192646501004480146801444723803801912648591120000859078131261423721348849492598722728478536591080346122477444721086996819181109661635772956243363338682481646927743532482948066126946968117328832135783583481551791967419311866713481652077481786300476889026400076389921518530854860375305008594067195196487871417337289569876587765073250441385927381443471821575858219432470392042061252007928973750320273650752648335427384330658997765946897554733178718422025261017533175862254082866754257324086055304343164110094993106178269409660727383862656808396615831875154353255679137959712886993482619546514095026360718989298514648477696225444703215865226721745364806540095186296555066353647370080418195943419610011247402134607695546010443469442027282617708313450430567256297312047545881987680940664935529392534601319930822642591659187886437210876456889940827609783107636539893993973327022373638010306996368794626583824974903084387824418278392506407874986511177312507025166418478806553409929274383112702903463010487270051286742978944594884125825679428737582844893838941242879727986025407293621572534176757996327311977152406202926729027224434090485163004831690692476398540868646563177498590753742021316815520182464273591114822348409266315529176082344293948712410122591038173288632910110248343641512720867399656026960101024702694139613588261799080755383051484232184932484645362633174458786922328172735933671004673061267059655477499926529669810230676096440082867800496089563979058239845624253341355384252654270512644494782188779474765631377163442915561301652429991301019952168516308071664657959256732862763873506522594405952711055983900308079610221526650602563515631300077878246601342314606706610049541933174552779288794902870437341219283528571221101829815039896229599533714388988107145688073288067888108997192147648382931034709190602583653180909356606654016754642473528033788632971917958166177522337545617094626046838341640658761537799638741987220459084089583271573318062327075049952180166466570342689875183181897588124003931628977784859588931950101582628863849128930742701490046659738742688097889594466673546641777971092096004078399834042340240806995291085662690012662067707385415396354719173742698022997668087643023016199540994941459839790796516470357470551293936808099337465116496040488875504245436605979069126821028065612158047202503161284295767882124803218471694521084527517806454968243567675077449193923841956196212543516788312997673258079886090035490158883691552065172195327718013342468455845212068674906611889353780215288854642182326086386870010358681899604848762267934037850891973863433952427666533329980783911886093990882050781897360735894174395506708851805911781881545055617506189225340480558231644137231024844895709905950333216493454334135722089907180096175426957429842265556353189548303572597935976794033504943927313697108536078634400544612170759303128393222892641080399375355510471886846220652923383714816087130779224005670724453408690395834622389152216810034809827846966904445807983475310911623233270708887215994072582346813323973539003467968459564114918436116812833128351315502741630365583897746717242579720339935275641985965214863190403535115377342652694540631837811031546708085549180862835587775555831197000484638203963791987072102072001222866210635487593719777020510194675433119825580473032723511284881058348349401261316188281943212961870655282895463151990098690461474650370913374849100928002691404326494604042533446328272629049373353895603864905310542182700129699160975301640747245994887351406129636119960513498817947252475647905478830595287742251841270454791536751376102867072154912682650666931291239905505764146559495378137842632641741392779954992732753946059237023490030271901900612338824877382253353531543013568758505932972859157513618609422416568324705766397885649415344834721255740886222302048304257081024381025828924324683523026069342612672576818884566749081162916715315485662990753362437147711309460660073394175304814526346374414824301627927457625081644963018677661004434709928560586915886745822878125986789604242625289579524908816265608675657358975953430913399255222531832537073318708983425823596417104609117086821779940978987666037975668126424780927292897742887778809154687546342349955557036294097580456357357213206833216278557729102121520816586218912087983879226839713395353706690643638620033953984168826377242669673520077831942408173472895657140326962498547844163250893071055246608126258192542084084514536966090083219648462151748463094459371565808428686300085001356701870770346760056542565345125398429828713643750761976457923443866897600281597638152520495996533656509043254987593724430098464276048957208406432274616878407922298164396476708132475852858006981956755854315545757521864847943924630774337222681129152113886759516217715209083518392349646229159660257891550010238431075188513296399378100514665539889783682035235043004411187840725418496177678635282866337027876274741669324399894205081889432755028574997836356967831397463488690244265811275861839170097190450674586383815469813985135599903268582224184560065723589431647290322873460689151186272032882374374149306243077113026484686651793526290325823433294820245397515309489938077899462933258794507882314789855223340303275336008862970075626250930232240761647869699620669388379630287147591747721934136792934514760448264069859852775658955941943902180902267495488302066126529555059775612851645323159487907310920533298737421270025634945244673526139677654030692688132704343448055212058970341239561866636721479155891001656947383733218504093183091065382102754535327318946014190634521515802610512521007792310919939479023874256511309703458597229213964415441053244701585794319575423149520968423046364085739916091615899547039203801298262255798767246854124884319202478008867919831881165098037675389603240234098987476915886387043449793576130341503473466454729903168885348336901599613305768671784047174660577691838249594674299317573492960591349935904452137780600960611122532357910131330899128055122479094915246376530973931106668990588664593002568346530920521563652666888713708549092919808952335325499566733396644393577066277708178228590682488677876432841993970569774844725692237197221864808205736961879985413602093254633808750472783487459117139275597409215446530875857350220588352904281394769492032844926051951901238975606204272122114589205874248268787372779533550410616538178247084657234792450052001998687322891127862364298626620848988994174853703614430376880051882005710139491432783793787445530214545236368669814798450009161944009310632918242747776805411009861243152608102475244300404496456613662566921280739740926847347121214688801342361659801020799501449883250370224541793101926342400554281953629020500359375417008230652957219760297712018989181415408139680438483114841261148646688531299587359154088722937069588453626574617967477991754864455416955000971312369129711514855566922187355587494543127262858746434489802509988801159259826495047730668156300357651176720279189014772311974704317526825872674251476611693168435134226549655164685114775655444624575051628909218640082058107298806587739966794567025398690327641732113103519052620451648109097946862624996282610787365136213482997048890958744738598756247713890766005185755420101960649456456046513876983202500283970852188321195519420198123592648131775427311844648479849748233291151401833028754577550554868114024888956276802631419747521755713797012533069972304883056436129938670615589412790563022484388237904378666593825237892088402317051991427513559346367224791355132121016265744823384901064376888530922022765950467478678641480068804493665677943194706609388324210080878733809709120751483169769749456758599403310893284722851728684300122780365509439692056813899890502008239725867508417513581061051507693515829810215203988462924558367879299845070019662390811160079203543502898952868456647559381926543943891478811823310304850878690766959294712539796391673121980877013745459887584319810605545213056430082315593251951231880740546585139476929397009454532643221345903121506790895415018373112703827199229521882375121144786562700548337738209415594826167463163882635131504281117025972053809935393932414793797289774706332160791677227736610127328154054250067738516301501723032627214510375905905991897877292401076550713989100351186292197090333108569688309445572183555126172688474060563222119838197225639510498115771737182515793483022365510568220207004145808278097939244718321352275239020880011691882175640569566927800575968551612902537289761779539129528947855577557941460936743176205880041584517403971696516565218255657453702834552168879204947689074405187840287526313071559432915161293699645305415695312388982680310004699488505888354284641755343203861789186191241919878800356461170225862220670305646035202737053626289108813217477074169968585622564654307947785406454256996739982311846952779875945663640465351848452080757477430643558312027922867439585419793936218933046514649791947368569576782961376405815757736492118231880891643781131956089057609227134816563297189264026790165530856533616045171665366595905337278257253056731689387366741784745120067586883101480548004882851191945300501385606266983573072938026964790372532678271859089066286555605427983274351414925022751785936983517765923095783841825649296462159075901755260361444033620969567365556670024775324031572743029679741999275180637698561058874389115970085905882028629305594137567494822354693968000593824923229155809831462708628838125029068459383127549104929066503915691092506732653572307681798849906961735265557339275045489829186429734125964089581881689195731771657932950704798078870357184860932165687302977579878669105576182412105190417766396746968905701833786214379662062636415772954503161981793319385692486678616548828186949862528290875367564340850095296645171431596914371368526129122528699268814738937581209509644326641973102966831605105359076141015685808531846532098353901408229097165624648958164203279806186598232160026358842933266635726705137992052581575499988277380280937522481561627322396049995369397833877745432337385445604317826315044021394417150393259661837060643456616510299443889634853800014092437336689898499203319141309597927450581215194258637719366856062892634348149801852584870519532112229364684492723869938544932021182109285943583614481004466569879320008393913388735377605669536302373923781871820725480889497164735973441956023624514907154846497121246635642751422404399528154584314553722878237107796989221860957071647923650490482440487143894363650259715715124349546737774313033304463535584170722307771555789279899480200655733000992105394517320063128978009191516435267826877138144681779107261835232021950877353136419931142741565516314905346446603766037522843394059205775559700406442303732222569814238166342768376107672536257379774804984886183199315492407822361145558674417992694387182872114954357138504017937960226752033305069474161886783898171373462015798832664042775062762980759143681900979038496895876063252804102793935841811546708908966090167122378537760975683817712714186027308368466933711281616660642276224818192054590418929964602168404169915578676513189650288000288119386443192091559950397629369046787483748954349578970505174429525024759404501324269477119081833532507919554227332385236916502934357079555113371277190421175835783979640649902544853754778162084785775984509117025215724408286628017549442642381352055028155173376060776202760562370750560343813564008531474420210964782487530904098200397078534886408346160676536210313923299538537501346679926600107129680340559394305281757598997860365298677406395719956207447341090542597666864848579333996361546323272394830507504855343442919839480575841405413888540524408520211327631583187940538365509603340695470260975837557410722978280812515292616972813188766230572097013865743876385100085948391948139419200357308045041984763652306064251882350668793509922555403283593792112087677985953006301732771837265393593114086988769907425164805958293546916811939437759987185234064590569020148790609402810475852366654119245087377268114843517268003608829861026789189820726099461876957004972688899585335069068347558700712185744128225416010296449301912432553960459694484203174363784159702128510870155634112280912284915548006042311286555036355717398792805682085961978660039837190662051562399868975861103038500887708078460521283969839962779705696264191984809727554320232983420477079334625216049763573310187312356486453624142599162514584213261305666097933654146414079633407630420320148777248449490471648559704282531961936969648035856937989385526401917278286012756057639671500846851843015872401630667346552286124788498261960652756125025835493356430282964800659457627439373455723029140007206483027871621143723028595170926522956717590439587324556492117938658818093819558310614148512023685715215516222252859013786969963201357365481269149414068424711696382839531810945174501658359157649487894297701398917618508240055394140812213198564969020050730356396959257739982582369024254486263959531183727402343177858818078634424299504727971547604357161611566003014362127861215170517105530355267960221122783206995862224155978337946599956307445530740937053005110165868839099661040424272676688004864984687063019950914417960807884479261359922389459627149091506592091292513165275474857637795228283617671036661507481701575307955712855208591951529607138521316673633689451090207403253582245766107853624078927294648027154402088728084677158730303457211752618017246439715472847576488805341601327336202984658205353317374780770775733133003930763664657168654523488129673533607217278570865098717047609634987854627266933906165718068275109438959125222836877725570602635257343791906454961314989474200357946412774329356920286651842147160868128965141159475895280353166758883427720488089492481314072550909809762443537068540778943195443424832683115516808944896647186651870324019812788829641049741204760192550168483554144121502087722589343796304978286600353800080284551586593933268723092825601900543044573499134725499144125344086559141386073998426448132847941681277692668106291415672235824781704095092867134195390244750683159664021602542398005446514455911208374964700269635980992531103899432132815708768910910628584291924188138704581584889817043077329632194605254318678454576480003031888436405250065877833006991663600374514348326822375821788324965053836941111624234713705543718419812134247524153049856041969919675146874825641671784575201160133491221557850203036140020499426616357258859693795964859065747642846131342682166871045603913238587285120988430932564070916006135211917531135466769654134861520537071403126872749297040531773185056377168745898043154408902945833180672333014265134069091771435365401921074092277163360209404848555894957012478348788005401943618044665615801881396775202538407703361703007624766965312082850927674383546140359467740878603205591017649282436799791180982456861784481073857167419009071335964704126089168187800491346483472355074901288151624849588060247787878683599067974444267849635688171005390565029088829437877695915162676234043467832669079958662093723433499097115944496987684632329320227871653857784673871935825976327136020262609914065628895614253631132352871049158031343668654135538802994607148272490790425274516358874889897700536990515566691929761588263416423928498491755164771577023026247476264949352320799076031386404861392756753458891878019396485529262683652259851426699050255711736377148420305055799343821277751263724126663417340184115306256367340735358749196193168818101736361527699018351010941591424995016802180212981763399237801731881628776187878858288903408404199121361809536762920512978993740453078648071765000557299111324246166270476970849068312264540641838861604014497782347519425213105024590253974764192082482079866498655332039472181696576877496260514662654339406665236011463976321064805508737036561653607011811122054843432525342319761772552956296204158716375790636573283746587847052264701229689326397160988211453722481242567017389240813532855531047816584466011515470322928781147386360321288033549623841185820533543869357412452783051582371166966321174217359460071116133419028605494855236183215506584242104952339038923428020428455772105186046654806407273293444289812105515168755443000225009773311225544800851270288384944671870432811410076469040114444088349545065090319867400942347316359333791313902216196420124851058759623544312084310272401819397957635691453412314931537300984598247761709451771783743887291947995154039679087050049405436078711854899153737616240896316990943844463877431816414526872579747975364373590757717015173194740618837696920797232437376159911669173592578574916331464101879972015391870179298584609596747315960662573490959674281163672655402959164663962383273403210637300025381738413300611307206123705589336964571608198223840560227298755574176477144974898995760917933772202436584336560862670993882096488003012448185341178582899016193631263945703188305812705993653362330710017236884309456089247312196507995575929121758644731670189494930389507944531907120452382352449564218490279895766518983487766012606299085196063727641652021461196461540494028218787752026178075507494875428097836512984631967011544377839667487234454777405568185363369512466769209598025772337566656774048641936986015557724355550734721865940707587320085123498706572777255955963103502582682410463787730878925020817182713580228309711129963787644037457571076180275166613444490133498495909166821693593631712870103138407874413267321788035094077667828999599223928030742286202091499806868177548696432527124121251264545234426365569805078957826852563895545716686947217370764317162852203888375374635628688179449523790423691712985761643321066191282326906140661218453579703568143372417124464116997876047293435552959171961010258364564338745903368916250133725395330265887206139335655919349829892458387378979626909290187010402959302635408627884561528712963604898778566195101057270676150838230181606542049237559279243643651193051441040245291989424916774736351658820368137480776923071039158183960791632335562706843826231736015515454129587520535859109040208577526052246943414924807430927224308365303868582528146255822837980243349605957002762727213354998318830542469088181104917254053559434753646257889361249990530821233456032795986684901719263980828596851397883569945933407956912409993990909366410497715104258674030885914348916445103268121281831508162266594871355613455618003365756176488395081923660136513885878322925335117144623585574999047093155228415424890313286419826593028277632602240093536258415276801392608021755625031315435855491671594462556877015345189111031447658660620137773084965930367428362148415861707594494022176646285474614362471465893369704923976579369539702477443387572711830934513616895978225790784595572460612370957192587449167946739671612713876375468168617870710752217901582396194073610863629513372534064320689372376289815285584204979755355277625507151953434266547023294960520925361833457298670754688547492952821196490646477070198359091376932643512063232482845854787022865095364141273917167007518566254764976357999395496011027417134786999959113181140686296594931065865295571251723932855147070330578144600507931801017960478014643886663929628055610218313599492554765748284241567262624103209096068585414000795563648319493266801719907560150896111994254375984975602213524628668061817344049573134377665400899793828487308539247902360347611982287416123277539186620733428806892244627913134678660425544906703357758166446530508410318044945501450320501394810344664766082761018239487806061764613775516688638319027717813713778485805653909077503488877003863193083971011068519313735741165804247848223114471423898731812320127285780015937043358287210020159118851145245628252924071272066774263238309123150206741553056882679302327339673443759404820424563289602074263368743328759277194110251303991149232948471481673021366086000812334390452781816614891763928335868311701890736653232764467697386222435785363984901840721499473836956896006309160499323707366712949312022741336424994644412027098502844140669522347192562438927384475261372282426203951536949230184483256183855340653304175734050259456407288875008717578019086453722982374856966476737907641971338607950688878238337570979707229017420282693630773157295742274037481343217049452415449040586309655505442130664699464010308445250143479044217097848633016511980589856867380130202186910639560115421914126529844124916129605119148912384611435876007877719821995219491980853612444387277692586102843155847629230453307482674750129182434792298256098591312586951817091740870442720577397680708765019425737674513520496265447343755981595666628302192333764632507614072078341123876218706493468206855337016017956552057658310071039742827190069574255874591623849588328042125733971043590575184052951970702684377502466061890489313475820996439764760579522911728425718175283998117201216832704598564353613228867162506497049276661658733871737572324960244009691396705873783870701946239787361532900464946180836540439545963557843248652510395475214129724500146779248915880573006949089254550138662509139733871942925404634250824767149358926458755056146689799341833633040004716539993126227355786208512024154927094640804529347381330473413092540117312147035911416302631475700847527712992486900789265917639275809108224163834572681739349570556326327621877990156979520710541187114488244984163437523382601256725100902873285135636437461212277742436614867956209828976305899564010024239587009948174393183931203320826112318218212134982845681649734979325782136334881288824997792582537085190620597135116876902109587423849505807557510273437768793917481766800155264325220450508729058638440750268948126046391127692047618978001088667023606843770900446035821417231509355805418206728665922423864315098695151305215979650715429176145029402358695984934536846007807259886722585751562544855666495624746239612451243925307853440851692039691156935239226703974789936406705834711835734152513066643674235687345546981696289206581829155164740608947422713912844610371766420828997590692657284904571311932062692227409941304634285598750739216945219283241322013698293014120417948898033072915986787843622306690904582390968483069518916023306088757734843289055381636107775373244311544108180958900390541176589669828269798355499922495813364942610992804370372251506209782041856281738229121214389470386046621808157121798634739853313876037998232559724432383728948011669619358068370364878440595650301876605709615736669414651758341205815411397648182165450329307572742224384652997355565480512040141345977314319760171743370480695039744319473495303283443070526149624566060938831782828822137503566022149598956172767128910222884638615374547634142800770488064025430520773157957485264444889182445827304948527790656086186833489645898072654447403707809338082761161250030545631122333103548054966357575065683032644728902398802789392783672028221260362423571777951226222157442118012943333960838270985079087651998782954648309483641229015750710343128915433968460065770918416113841534534966914638152601725208167432906094134040462463065168065885149173113875330290686823758088249782920344653771633816958912935122114025061965904508011061287910245973477002283623960313587126082873164745620002394411547297635025618078004420350380814486838621962277769112860977593594840347254538623417915171931095397513754358330159876174619000500947743727789277487877469145487658902508889296950365665979531490618989045280714262916354452545959106174199785955803905307800241205246104559721941150189329174928521864190956221110064057301743225248344193272372280421472362439903103151640419046495955042396369338656449474971732920136085161044091745651857569242021391119661577842229845777790255702008765367941004509837089660431519295423248883323315929666511804238681647370164221021099650933320799849043929322595143518602664331577891147987731930125935174591989195609601780807005324705913287358989856901631997191777811470302367160812988471422834796156327630348960113502155409408351776220663721449074331811775137314341264098581470747360678455684623507296020353268084068452194668025476760431967034604655565551250736803612074014756555392896522430685878595463167538044840750644595967806144572629200026317694250812129841598460742845512773833462814958592097889624039885083464161416400689421636903856103797022042467548056356334487338563695033489658151883433948028854550087143718461606430099700074152032881771494129510325837164549402323154581189401255875057112475490258925117784337504930894707356930455487404694325236874000891148319699608502580708387442635369771894195810972583255407228396209675008954737053142723445112311152730756879437809832831086404381204818295913742955564264140849504476781250882292981032025594841585275488983419057599221022845360830479329232330979407940559938544718733067798929717555063793405701505057605702580582478859183058640452115559279251518078494412956087061489137922850142783473484723989472358706837547394643050094133982218252824822268453024338832415778146832246494646415046639217836366830427767026300360389100480058383240228638005140383193816299096765969701045005473909259617496340681950809603169772164252145032984720449604051523166347504148107157179124928705548257698155880505624563607649822431319187774270611180346406534148837601278112906421444182044142501185595373076351500672472701038734254573867568918706924373768345002405367022270897002543230734068856893675247593916001566871399076612625530091084351999641085519814864804352160037518441693772447863934739589893668666806253968521699652390398307755863574408929269743019165343077107585662446207730419689753453344411721306049849566104591707285930197482485191872395719328626304077192357046055075936030241499548678163263664088670167397330019842372679206093238049628676940803356760695245485156576926447497966198292817185931764715863964484466615000373842124220240461200143318709038059394126765111456182245838837689824095350374026698656474966896571048514866148358849063523935496053377689085786812050757653674963774621224135545053939559871087371096166537505615098298292155915983198233736063358656688185070239134557809380515803854932815670972444116545110099783735106644577038908756619957409286363180189913560500098842139944064791228109169165643273161991244515708398834671397671109425691588150536043020556129963492121510355255817770312527792897680244588889604060282555423874227822805696119818408189064215233038919195261419315257410084539831943294497466916030011468274493003088291252211181200375867664802804429318281214816380241902117437386996031500725646392167622930193462472479300212323538037603042746531663120287738106895978172529740814810540839838618786137180949720459933337679762762120239324076922777868451134916413142905774853193390782654971994876777459080040566265268957564646482650236618018971826944573332418931865697765579913811995349509578337992465081149451664828377443125256542026364901129508377076032760253864811317320503526343751758771776216127353064902550530428637929900169842564941441120411961307002940819312099494846480001195414180027940650700526406706425715149057445963175614033565670048440265574979393855029164456407476329379910222071400252927262268272621061701575930947681209498347973378152315501259453549902346014070009412478579749760205569904408927349576176032889629742058267131952728615878017379070721523533725125726469370841846940845042884250973893673691910686686343787051428531222503054833661041072652275384810968092605918477010227780659124429349323301481237358017974752333778708880025517755209317411156589217528675464273452057052137665954975711345207041296561985965348804442246180954972790731493043038982423894565359229187903853656240248026537117415523201542353198795922040076054357480318200814874842532251788534718935685456423777405084331903493675777530831407643054682653343250907709523015495524871402275052121664554827133415456711429518643070031016552389736993639195756575384808337316729068767518275465871742714854152021737596063076322285085939391600213386497895164925718299778035693701435512324527886066846885867856521269641161948582208221567006790760566985241080404503521160975381202487774120660468489786584404866380756398196647933360681917499531829211214686337957526164095038126013247371658205376176719936221986941088614234505681131201246207627129048228508478711298652082365295050561983053209895265447760060681883982841050821914220962609050924052758736648545895084550810105768382742442043979147798422539992472196409991673939357696239316190499120857562011667560840902560297222105352882098917332722775984395930284843768308060127997533678864827818021744391314087990689974166361518466502842091686435350918511137999409247962104927864724165958113238634744924508893773778975152581354694729902922008631402438886877051486040808506467858985967749232563391381553765430358108537525074365227644651684127885389637942274837928535754115298897068392529148848682212604163547837805567880776383528006041619421980778695291315122400973924743694135665217271346957488056328001070425440823394543812999706259303084603453544696974995212025782156922552040429049386681257765913019135854206656702331110889613463403943908119766488316147315121457955456662410262717481222018055984389277978110262171917897474470102193637073138087029521733062035110063735181411036767961015397829107174747151660476127303373788812523180481287144848619669692593859420635928649396436009190074808004417056981029670888643096474916895946252629599987529337352870112564827068959173572672045285586546754150266202567795690901702058331496806726950200099356313761086652323746286275446167692621409121375353353246985876614343531163717191406215055132381307417951755296130626040199996687772927091113420457200486606945595323430794750852698661044252777829676629338599703361264223248450819742250386804770862940292471519143985555360070283671524282154161540999372888961540129243024149156415036953757262075756898485261829089439966201107574574788211957730426891705543983292460660447971550784307026497565032572190264410954541284399352233331501075100637567834455988207065426437063918244777833236857429818324762251811463629634574819530266002303191673333831364787327021568933158533248063922784600962804633732758516457699022986909971624696665648530542546128440985408348898784543772396144143676863784182347265445963137075932095490154555731120418856821228902746457050504825347308528797145783537409419203076206790420664984677146728021617973168401795550221207008968722535965243862204533071932988626776593696305813661354910193798464248236665013547876646941724903613450542545246865561020100093928027645928600833545871751898543125524161378810527315501927084656543991196417477739962092204605910966867037843088046528694621208892796590237594790252428172212897362952954004497945300017986720564340116098150653482163209706625259106845243232584319751235445066401404963349865735746364846420366404926325605234816394850457447290199506226260168929975482007028617218135051851663090753249491280195720077314201241992043437199465225747545922284939108885159861030426601458411548038291097651460063105996080701792390313530734923569863949760554114466204703596397635796467844745231824136151890092484096806661715365626842215902687738117846756027362009520072546451506275484487108205225041062846354366543230695532195339800798421710728378444547405952999804813478669783175409420628938521410087373144243565807193087857874602567048222491770312297355857403870303029847887215954080326569955660636417059618336283733196181993799605777079167010784116012688626266680363168773415542314510929126801015953076990108551593788352973397677575334912970788058425010085524625290113890697191671193274076404287882849109394035987794246100659705645198685930791516664965579055860636218198636433538978288328246289773358331245456433884167307669866889097777024991147366717586527284469535859104782071277650465591080935543179010205649753165689737080955186952661795241484035073394942651633611968311463100916914820760236827349434709207425930659613453808412787613595701594739313257035836069563560118057207250207284920095444328611067240381344940811696713457217090663464633854207254731444415153352109936106287413301339561372552257940297493912557308627707865427906063928446551925460153445826112046068467493932950747699181591185312564844980630707180606841445015579300394411857158293106830642479412087392771843058558826023225628038245770545066691178889609722121112969721287713828672587150129445806380774042053219372266393623133425324842109078461359697639813521364331879342218554860091988960040037440808450611326163821786474052872574206971691008633128244660553440765515058802381231449549429297967047820030681840066984861144580642205959342716094302673747292095866093302280440170352879687001947869732008339405613167005238738829529102515256583717472388062960767228675050086877235917360490217906141985201283824141013692912779760550911370787330456780984106045814076293847371814937897396939145692618495558678099533073623818194018343260627917099182567813977772354829715071378318499801716224408507347435699234788063338522261523961693445479825033768620361818286952394589925267103469338680259997906752463710080689742378270724181111476104585855988436855605924899982626528990420153866051476406831392245240701629918349219717960940878925758542369193458830730928148282801389395239222057844445229341997502666166425853700256670265768501959983038674801444292698463905624206192267415610523656346668504298698377129334213227727339345202064484779378299150356154808879390077552061943299822819912225275902915363258045658594602987746438674037344193410317191359206275914227984140411856668301202059209242550308424836155967871090220887614435092064214497597945814439521945657261585080938503880065590189599410941871759995956530639469704183206379745233138683021627238169221965312606843885052277276014679814863099486253538563743107594707957202519307977193472861038325392556863087606957997273592611695303664321105578038702715780430815677448495050456114725434829964513439325328115394817151066447316254982750325240753821457151479051263190464084236026044946663984595628367443114707682534895249068819939094775693864804090159795166981261005393552185065066424238262532455600119167460756056367817004554183022019732430080058053378508175015431025468672493064487252849567668468876471633370578953070900726471585606707580885731217771967999199770475018981004622241841510368086832114387834847616020789835730851023235542611931920835587462970740808841811827874658194056386450775359815297459626497319454159658346956139549165857998106814376620751284919619760942155751213319390259522260042129964039628750455646232469641207450855541952035613459712149130197649629987531963028591138445458389273403623827234395920702921610194910378072970520718840810152332438840318864204527862606012203779336162598964930025333777924338420210264975318732397194299488991278173855257232847625311203325265506081515772527787700371753636426218912847299370249745630072689615580644546455956203118582996320089521527047369547298396464278112108798514075297571800489320587150430660363288484768188554514570419424884112494559505321162139953612329060230505704284225883880412275698334036557483809208225674089316312349922588672557744063573217659457402098316744446984020589290808710883685483015451886038561868313729679025866636545987444379341646464491392263118984734266312611937404411511282109767822245815087280893872494329164102021794036790145902083304066546071891507368997979042106473006830224543806848229700951842775639516782436367342135664118107221791347658335647682508221687909355367003898131370506172835424915180511358774963538793986127704393625414890518011129858884265952710125295844911121797861365647778295994012247315949476233115516127105129963933621622610359395754883504753482976944114718325338001324678620012236255612284403364596648301524358432250969334514140124883304231075893240313574327316570562152393110084690275906672256715664807892377359922162857154932195365757898265728422219394912270699216115720831894793375431184272687261388175922871780942153869403266035108288146816226819163503248168011349000710078345023602720255204499773736402441632912171561233997278799504000738579441106184846641708875330247390785626931237939369228466629777782215705969982087264235021380936111159718451323986747665026821956633972143070874054874097772288075626824153723893708078822091465198464888760926314839038252286697879185091228777748739564570710107981166764028454586263984043202331511012938293508336769351286145816337319401384718473794250319028035881454759143619223519374783845628896318852750304652108189206207098149278229496061066704652625866027506758895002005689885915254449432502720342858656087805946976580343344552590491081536643517763489364026613225003005924341689207509537706030905168969570751948367806850189474249005361523999174743967784645082576060646169882103852175440350175335462604524568636067795253264815932484840168737527758961010437450141130666857716122474444401035190780686798131364190547194856730305647565245959818669060720266062579011414434942551377570849160621331727025652615426865759877577099243753323177485593471495671794681494000265877361306455475953029444984728731038046483653901206498052762588372961126227071807435095263448918615420915681506209868540214568613054785603487415352369562139301176903343997409880335065270784860760200104149312135992807053122950907696161543267691133805371332885982928888856965673281772952374101084537384287406417935222954321991848117567630507126720685704761554449015995405895375265238169546423908598168975885886828680559268680532546498002458499963745508889040720073856075826499880601639554943062147825622396880999613857407350740072128013662182848148251214686818859933735804151816751859566205943346095247321148071812364372146839444874472120132271399255810566622161340800816218023275798071491181850828726928862634171626449762332434199746918815957471943293449774484762215245497591824842202396326352211450067149258310148928774170856573057595798968879188088089031833302794217139619819750226893230167686220481893161005401343514102369385032037753071872010944327363902737626683632206868113850175200636200217338633455729709086982024172794561559418019528624128666079257855678205869390628619235928380030127169091016223694038692718837508899045112494467766191903577041037648062902986571454112173512730577168487524765172172627137638702108705124139522344771258734729029056888423714221383473865094665259441880558352151493956781350004272712061769809342351082212583072975470316502307778858616788203458982496617008413186056491200709951769353468408260108031758747909386267586654551761135179022245237073293577349064295907349753496373336710978843245159626022852455250220036837727719445978936986137491497779875177174741963199821714967204317456980728591236871138269266294515150393492092357785361300688252307215392848614827129792762199131936509033551078243810823128321111689246820427889673942126485158871769588789334800382308661712480650108022138750567776851036093018032914479748016541455113234085577364760072273185058174275355654821929151313696988192398419175999307080357650189434135403780533876837791071782754380198077581037690612607835588879194121337530801037417856679739364556804524297099778919839726705183354993185312601434174264503919600991015829880320695026591813000310422917573140477874544757930094327744111455592090561941128520346285707431382592309131797459011775626245798021202733403408035172422920439765554743042390151487868845231645817680561151046439712645050179893514014736564805312977503916266589879163437770083397553907906670749427063546549102503816019088782696843708796656091862320955600449464845893388402427150788841265615300523355459918209543545863934833583447427349643185071398218871579427900559691189672821399522263650970302195787551383341683172231890320365939941153202122260381320658212808536007593396847573228117539525341809545553607787512356249427143623624796776880515392122714108928285637181708199850657947756221101830442107980081597296031358765310588651570919581734488631633359663531816075116403031414644226805244030009378401135141551109962213577585072927791349237621515394276149713392644582343576859095140444865294966637711244970577782879365071209478710773032110153584624655168586005406936845348933517491761377516845373740161720064215151610292029466835547023430485507162498922034429892448942380942282774673226937754988041240196827473565797768289515572044851872844106365197398896516696826731931607808269500975649122942096425123462494439149772276466211997176764109623391849300605997913109856235084151031487994617008682295932428523920799952611194462108587296220316792182896113007619803135450542635219516514086279120451937419241021986657363170342791811428618249108214462234560561563770585947769135746460099729342073310804139338776760259203688228501690903264109884362257018169503286833311502594563480314635538878517968526581750730467809169581570753419510936801554078338616598961535161658952029389157900657811995960001797332560785140450237076907827404674131804031962849639508362972710281090673929392202171859830301690331687754026424602152238601333274685079601657179957750465274720489541559679540893283794683069013158070587041687359900745757246836738298279183462512656408873627625167945883703154075421096591653334763272830676935760355231095667246446665854056214885167015158911561966532841021635015746099076325037618916097619589845733020544644380205362310420589036140586666329038613728229735422737430703392221218811078199353490248151241283660697496330665827289980405880260740523564122535343703487963540206971770800783623942422885218650641866154974387607802161309585227818721479964623455186066391390343765736752406671310353457089324331652214026735933300254476309622872547687793506448326698369297249098007236058070359134497084179473748094387602884817824795595567237859160689476763033565533032544345796359792551332578317885327455896772190599723605464214479419497767749993549543098955010407676495771225392308096276855483032608928981659298544010273979948957219175632006863185177046071232288715671914882588332721605294748208581740686674822385959232049836292783537666591762268556570538671957144580217544060285355878457295924646133668499359656731220909098193589292948401912961434303223582194738645388320481604002870903479254742424225580641233755528128183140392558302415568919803072160950383459860702336929018442581639437502076288959155278848154254344013934013974945276162335298464168882462520158459444844264065682519200067290513699887149285480509348914152981213762909447062157502257976553913049913136860223266437252901407408568077317520907075374592232840513965634921505896860688960979940927833714275475270424635087863113068944521446689847609438712783039966020083038105551164115446794595882946742821920761107914849219151156715305214374645300365186505628456988908094148535377316720820315392824837045138512225580237591882675461220955025620138378452287178405380616268684071475600746744311000155573116314713738639468426215060773153839206219421762747594691080532708484563311713950910738850627018794094702829203664071923483282825459512943620641225414600395545669013757526965763016405856195394179969122489991744801117680706283275623901992640509408735081614837134981231238308020134250526923176882908746626237331508336938073247533429647399501456327929765277017153119834399813167753335958969943073543672643130696137655141549497854063349249285422588959693096350931745006041938380794173140561610466776704749295678054511508527944540693440225709808999799169294486047330163379121793149717702616395874529042950794858070330777869531350646294731220508641658503694108874996873922186120457102825103519915000966198360375044758405603564314147620037686800623991305293705486729673243394337031898447072746679585034863448758548665142164818866559750204041044510054919801484793043886941967684934647367519424810641997738948849122369496397150553929336088684509421491040836343700603599746352378180551311378589496410268133279302551302060909320062989092256875419653984817174228464815097733320417408595452125640960395773604790896897342152926040370532622083660645911443491281023737146445641059943568045889458744457342050875349459022868614653109414625202646327967922820809397487383351432236272586884494610124468156121106728710025086248728815113847775626376252275723029625063378781656771953663320011114025169256264667135126600167689140211506048870037980487003550688076624499284084152264700947804909077796268803464307697047609945662549196910812535058478802545752607811611228500588349115269818641990165576860950421680871690152792345013448261501830706199761116025316400318808263319230264559227826516478806327252904322378959475661870711598603760884698526854651402691896663714616056313893692161004054192788147774838815328647032109545027677147752221203733430547089151204248058916649177312030884553222034891090692728340816143892572820062415652596347493243394425805808757612877775749416482896442474041586053746816541578673962440451641602170726658749833041180768872816781134885155184486729298598279922300360475812602003056343649717080571488468364027573394731222379045457582718830840840366571465080746342733532494925490829671224176967402761663806105324247771464949676986180167851675871550126133596328416263029251557548575019756149948074643495458024677087212030968216525847473823534905947755340137963007681601883663327908069206789921487825951942699708500845212967341805832784071132072270255096716821637072214015884680235597326961688668932187117256657574345147033535998327991945486646553975323786559772358364862059113642007909418537570110982947885260148071692066385579977939289738064768343634954253831143157774075757135778024005479915512303192871598567746233869158523723327831886865940944375356084134241249203680557705934445368923799557424557870403816992978514581906575315705214078412754087344140098464556941983704621414888351080523982975522465269880485140498399344684528464806065370055839305697724669811805134865926978263071210389720715387918079774257622999416277339331316830905741369282686252257217516052714442360706560318888945818574936320509882792530370460426810945151104679794907982253275660528694809901297829395710513912909234399594382177223439019137339145299701420051991154352705624102781843114128915959698344764116837087889421830316868527544026204017115814439984026543170344367241463570396183304466386552475463887853838106164657664886251113746154202322378676911053924402886205084115260054835530797747507028905968054117561363770080806824323525986957357871496627968943240089017760419979680206935007820464611095497549245793257190424753554791870290080017044799090469337936573628658904263969861711927524672842249127027431310796595826996010217964329880057544542332268224666794962477386021377126481170018007894227681345293530595454004949002348664029191372058537801735148453492378571377224818448008212532692758667514550388132792338731759258868370166379849684453438374722818799676703857508597805075242863274472997632946531854121381233355396791744186981189803112585141503225599860247289890900995434389939431873170034783199002278200237264971352979643332981371484762459197066101976759918319119270903266104643534150094859099614965911274024161320069155920169352127165987759531779241679513466622240101809899666052664670468985112684660977457664407813228581501720714662090948559176734728182932686263866141258082818650208038626300848799279147957751810083596064123154336454882447849168553311769626715242779322176662418827196044963809402806760946182470755640260849058886436337103232985438326524090241481517109801460303894758436035156736507887278871532213984534515774305021091380211071570025741425406396380766566327426633266499826417738748770033534810513797284864932007977073462218849141676447877713616356711324091579912913508636897761377448836790912993156758824835004151498244755328467253006631674144815333056196312859174413419787820331784560686917047023652187517769267388615183286253975424129276412035378849408358541794701079191992989008150703720501725488528013372233307580178922854514640062339827574774004057066546864407320588846851708195055669451875231622182500336778171689302990067450657957105586252508908386150298212854162201262246821336998281546694501765360518905160393670310875877856381619887029718332917040415439882854901868835771044071923814676133206278135547841416746931973292240244520534416615508851653219623054390447971928389388793613160084967210294415319525835953180152035044402839669357653228336386815314158814963392591833914021505589314503707118943187223280112218017175832771945737883669179708404567178352587015875938443181548626033530170563976997714529916856144003387684561988603030792268184332432998502525451127331209804618169802230170412102498232176710445173576371903121111346691049924082200417516682352044482874934244674726283349004265901563700623858431891398032999168227611842540064440218388737228226790149068954300849903946133274053247898328532808416614175184293975879301907936788401911079184657412664520377013693757630031057505011100866837310963115268151229156869670664568174225907619762966318328881757420701035475734165296209282360538244455339375556133102041084754011210201791304366115944183573676849622353372488434696856072244613293751435262422577703060540221921648199389884523049767935703611886497818361527447563322619000000225766193878032378995527607027015213022094741645256090770240230960199727902305956892800633659971021759154991019587024384343741051239378837268576239893074763802484961809497387546113639762123696521542728705258726083483778531178211313811712845288941630167758086349942719344977572635175893608821684168111869606171619035260755207866619316859352878953366666742943399070776665260654415335946748324630137560371656714774331570588309903707316170457563295262787937596301410996904411765345157201838849304415559205886333352772100765695173196664217143051327941106207665251263397924402996268129352630634587656132350894684313725918653281382645956662918036922568077382240439727433668523446177454830589392851505365200487292011396887546472565588231998271331599631667961792999735206842771749969729244634101272982368665913068489543552618508001356440804042403135749159372569177707730214861518735741903585796481601111764582552190176707522654225721369800682018964272896779779568844694578520570509797968005744409324077039901938979728421906590672439861573391901269055880866508209868957662916633875893117461580836628873413699919922699517997866304915797217637668439162275674983956715258075983561462192411151095766648800595390778832729156727725274876277093794602646463421473104870479074038271369299060803269414341497904342026904802029830370191532470365301778120254001957340874247842523719460044648094528207366549562500319069996048446105988860522229720676776991141863160816049942238821167390185760173808896974270559747887958007723613040789591783160974290705879845290249861610632403432770225976907206253896350963528043494142465193663276852987360872615785023768501150643764348010989572275849264262321607194024840653755738222463942415353964996313698628774669834910211410956647715944711621450608760962844568802700550061405178169920981900593625680313919178374963505665585614588924681692475593587021372714879731802698065202707279672657851446962671034248002543579299607982152196192374357642624894394316134206570429701173348546471694012758278169871387660894457766993889572673210354962848347638764633327085818310808642490126030846886143054384191580437832462860428089947629712247082921819370594908064561193062796339117059205542564049644310634352071249206523663311545643354988546575961592150157040358376334891726460961670190337939159463898938569651366105583456581256135295624256617879184685227002314062019596183303610392180260368470930215628146324424178477313831028543120497512267529905143543106522277230481964934310587432299129987620524159577146417945375949837381063973072937340639864952994102059179468962872888065261472571049400478623077684114321113180143296509961783959706076929821386752553094429605750448961049738306150892766925585986907037982599925096476961487624552055682664197976613809405169743884284413064949664584120423253486607502440818825564386744901807091442434186018227838587312450786682840222097845124721721013799783652951400111242005579319306099607109684605775171836329487923410148397699898604764137645457418978238563574161659354141551015374415234978787920307542339522203167335070612716925342834645936791608716496654465570440011707298929208491470462643615128538998368430663334770632525971039841186279402922731968342940314461103721024058399418213721489847243782217858177903809132065976206692667706359905854512322136749780159679880948490056009230086409085800199043442457963921679230718554281017287516515939730181353470535678284496580587923278055868800468885170632194626006860970792082781532662789903109660199937470825336091652086661927916362458591686384754878588780047108240057594974018154591809297359040961154389650561910369801449066431519110613805858766052846220063256279232143898361933325489759062499118666740543953955430702002808808000057064455658571004085509341765859323525537434320457217789033251233858818826308645328697607705437469243154471515673535449801539331631567987050747263197836857487070882367825091183666271301945451649483260912133127729367175529283674290084798002889288802419671084070499754675771397080612301054987647597241347271689259715312891924677914364473013886693769537891391902279432848308125585826540051795470768551832346986835152205121270362407719626904228819441592724589872073435586172590214910740900296716955025402558986132700698949860491736461053533571021374992004907819482890243798960892393046778680378416502675889950332402529807056334239327844594066363097487023481861597915031990860515527802852189926775178568740442728557599171019080727774798343941187756545278723354044535215678187902070967662708085750099059230278544596742145915276479532603278673494705353359134284516360411839506740555097082924786835440875366547211156121143692773366989785625771644291183979203362974087133341674202171783857314133782457261052651574408235211231874419091545411491906872788609219034413318053120486908982169121515116839541158974075255776165537768015985969370560500265919632150795142709633870127944557843667681885830787635981125546675159371138671452342595749744322625235529867242638562123507886967808279270455739993180139336465107175542523631421575094507370972754817075880756037260717961923998299692155796270712177823582412657962956786223392877438763373726241345903884144950826568516104542147850918477793083430626615276496799031790604913093496874290209722284346851994436991536391012921524843208304755348679676684737320024996020904645163165133034121271428352337887699464885283009750520927169474758751999735017277403200585628517512082382771055412708081863141133296882321577113040610434304529730591524697501952773007385489726820846841189182253621821093201824722045452489541553936987117738486494245503740040500458259538717994943913367234682800488825764684199177052612745818709559880403627918745581389607376727294217825356922946834988488850536250435248377455589233790808880810052005432806486730199124145822301435237568557993686538330678612582171868091678527973834897853101552353879192109204306763359210772669614059909811717688556749696107812496270068805797076421075064196992866639912145180084129570042092068079639118352295833131263272712398819652026840473963374512576487107474912886803044438911364748504636314875413036193466926194771189139471043667301620157518136099664005541729372884771612351287490968042479717952316786319492340001852840219662940927114372770689109871456854099813001213367921405043997628972906695503771802113018975681349957755961747605287387627185537184670479921047918287115445128528027033492275543232672328583829258123309627368314924130865584500360067860265196294747257063640112289047312959857954830181861575882342119028442198614689317487020874646683934717520545586517575506184141481965101848569561936116538772845101510481526144519459505222767684607746133663008520623999856787164669571278793865087116663929021717037181230820849736107124755493564185138329491555736362399929373762798742560727611707198674659116649346060614085433268978712617826172754347731480539421009292659950646612543000359598598250549470535443321735151899077894780782105397503318685139492265320020076848828021065853621829777032177671215555100348481721752584622234934990748194308732360668721369361027165302306860355585380556290716447725349041798412214008488320461808301331521241915916897932694694490045361936803052115905981366263115731410456061114399173531423125661077022934505242515690196315793072527485229099936227510704534418665192572838903054893982016825822089029043138150358990203612455445428191978096151053158055896589034700472382269650275575384188941711404339456614590822962744705011763863718259324725259672283234401836761149754282801321183071979466826320233998278388566746951712558821007465546849383817110920514325775693959827985731076405251969552982230725451738660040906769553111036472191772892550482494362225077349935803945993429408430040605085214298821332168177338344858173383886494469279832913360693365443371382156254296446893180903233159963709286051765176753262931457756258785954681172064109617437674104462521450802639820939417600650720782327063201737887482689662843690579841358737969083145876847861379761657750326608332102098651961630220968842616530601318190256979263546199961554142795863516719933652856243399396555039649316315019501500287357979635297406952674150083185593329041055361800778295488781114736110644780098717599762957487242446191365600694495122562292010063311101608632738936951182808308457166794767065551916021644375948536370376307115434934146037390259106467715388539858067679111777582649998335130502466633045761007701199960647979205535988967003796629287165809453521157702659424245407314571329916761034194385448237390437266526344198965871054000369651711982467577635054421121667817461523988228015551484172694587414411878334714656420002365624538248374357830039766908354562020200909645554612613980662824799577195192340048825319586685341434243029947747889548366999522401285989434286365114001150212691610333794075343081292401759358849706819026321108719416129893972281196383696929255864022915203210904562625800343093658876881511599943584528422363277071388068561649865318065141897113807350505383684160223991472325676708615682347018729557771901537071212379879525451874529021327996252220788068286127116253666192686865291560324593140601100690215066802025608863710352712984942907125650006071030450606943246097303045052017523203010871196660989676322412493601323271047580558985672251620011053935913059041597980431575264938639348203603114072478432073167642229066835603940042593103444117366289964785511271716254307505053170394890853302120898831902248655422557183193717410618603952141092262483259129654164625964569872915543848856271423531377086505893823934412832550902975333101577444520392423347295137756877233412758125580473168129897410331375998498090839717138728050938965712896671880876650259021126044690901095359365651376318349542082354242141894561791630175913920837676468252905990234756720457949684844845281371546662703046248753982694011826935867690873105364625478775297361407906740977180381931377831358249417151736466435628770224963455825770491151931834862393323841623543678635710624089955183870606979607607136294676040507935892645735061570310592350618634027576067641433540156096747262398030001477297045891724195540265451503839426422363140818605375746775319104188454389940447690490021144832041202999546656522403269171678192390543366220987465611620186254999591352216950379093358020130484753431679829613235927843048081200847241031034343486722285632599114253749403388806876988754399505137782299307276137140905424415699020684095496881699934405691273755312925564571343584979353708026972079773521600023667916530760159080097616432938862491338959530764403671195801817498219600343744250003552090219846683384357490612076679218142919766933252505166626848212052983417732953835209906548781263339896423547899982438855746216549852519358381047504191903484192614652660046139700624513503828497929686991158302978548268409999712076778493208141893689751497916693757037032922620960932299521520168675996180266314506152680023039620325747476442637368553155855626452789770062537134919008981239875342269312063916914742938806473809073617632847401000274444097187176637462784712748897965087891421733354777226124358088783129847313535568861898452267897844334311539534830381565111056952732183715760667877405802183542460573743882032089739678549047916099948005644013541762924648655556564772639988805211186733816932418485064279656140073558136091861907193368212293304017516882787584985595301221072913900406182870220555731558940171062128060336307236771845278003631962099867118030565484533056768198507080485413607161076662368573636629918489183052072433352922302241668618668438256356941537521501841612451268241212032132775367755063032377710501726141941971355241824404279986506419954351356229131443404224761461184423455719122901577255738107386587631685780182507395881274333297274795440438581569216438784541000216744207236814406913295773194573048552570264311776712016090985423520745135275809646442117817839619065772554009178824791472919978500570671144959866463300540929653024965889455271856358106560120434261504131980485092842182169723202377396312318582610060284661551769664154689141411940637555358879038677217641471499809682962290208478689632496851419992620643942163586038451547226192975032222808043691769852599919750850096105236509977058495608398081262050027342033366703267825862318342954631624614195731045853560335475957955502402249405430648520962351208566990097321660940484731453336485793801110547029630186479663271026528759840658847348184107573781791876083295737021588289742895460385337879638053903509663769537165877613954509130367514810906816571803099232754243160193335144470160347143902670630540135622065342698884710835775991980819149271385217156163072191661412705896093676113734786739900273899661458954964492825084622114597202290057139197463656802845914841383075055868728798758677580489777042116761633558903688194648543057972678454025173032218710906236244973551240360102982425103372576543702058805747147989730036150028378811044503360704925195698809145748456313651045372885835092702718738857625157862684909181702714493664280299553458873319458272764851481968299725522812575291127374124883860446817648320199400086981619394878471498646036606793462586981140462974564562578592523494697082162785289787556959700321764513178891186606573757314884460563375665898147225739452592036378950509971269351422673921150554636468826511989105019409101366171693703791506802581506643587447755699222639256131632083576183059362374602080268673895406768179564281302806752450214962675704920602715839469018243540683132763172246449754886870507238677626731439491171147108953414889410104234365728715780148347641610337119655170342227618248891663027307659751131219480323557774263377104046426668338994267720902451202160165645294676658547187723209147875596216370659364277842976628416059113442795786013841712650679293633366010626648341007397625842097264668031633241166583139990113685979552432984908142237155857752725050742509139360389662246412840957955380287364731575674797390258098148630208059475209704980420568937916542972566061642374514794723282193833827089032217236647661317749891414119363367737407039688406658805536453204962095631820654310229941536157499894578404849693718558363133677109648811591662386744201181969294590650561721340366623294409559207996445839817644093891634393258610544036483654419103189596196161602890981892222047738786871292394870558278898224985033022433916211899427949101846971190550790016276509779708744466857775067730470405168499341246734145474743084847479177353947165716823639871348229382704855889807783308137509595999784247498251726786395937469406719624559439026721317568639393964071205429610986150428469734481535382062810042219215423225861771446489324197841455717627549218687073522645240914971010431895105819455517240872578059993994181511960489265701319121388526583779282586508784838600171513246721712128076341782460384966960913401180439685200779107755449148300117284610862025467488225016403999882866415829061287581952547511437591108710497953653111406307228976338733393931374555963844313464729150690676823225696121316027184265019246026594707487023354908243243826114514730303691275374074422964135730368948677590825917639659800732820935246023285385381327131164177760850357788972499733590277396382930187071457196858917409523345718071535060478222776191221453546980042882323618672948847182677497636702390948208966848407955795270461454583065435055720757008802760765236597564152366843423661761950963153718170787085972973096801547714848794184785571450840144597285548962760379541859466859066269361472305483848390282693579738525703216235460478098477307231569777497881896911635344449342570664019770347422461313191888267728772372310437985399610697531119354009193981658669049178626769727545506553042412308799613285470382999413686130786552325725241743344331713467663938652920379508101963197150929882298954814310182999011832555107304318263265444990165583420731576416039577040235435823232986934687911702843390189880842817707099897584428772126218726376875082365280138742015594913501085123803201502253330112953092548974854224968984558961908865524025386062472169248523972218589414976951621443661929814075480629691339413777650378937407947952824137938708406035365112557543250227499593934665032042827595154770455378453867815445483446810974073586791203367018545796913600682147452750344223676326909046349480232011591610461818520500338919410891627537358862619263891704077038349063211060416851351036758423247121753377067348227852910722020906264237404648956814543855534268237367546554612110342766168672747955843689670448360008692743642255923220978042933055151887220793872695383078331327927675987158363308174942594335171050772501419787290882526449562877237326234329419515624402216655332351213721798269011917633975986227484993564888097043550993974592686421205701321165507920390032593991415984072053272141191859648863394639395852916608864496321920643876903383614937185671239838402830645368782342288468404549702017002362776725561648389482788516277385057936712706408632083453431752294960860689556902297367990598215943755338400593249366813892836751752656140537174506608027024568499581652807124596230817567457335894740927633931443558061785034270489497964567521742298442101998963054986593551571090494926000913329780400178720777008973114072312415738470104054261586202098399982573116179880544769087307933287441255095421985065950050137974185801403011065397082255779909893197274011703533969391098401112739622394779520974240948220933974772115661543783516461805454650333513232108570692898813136084099051557607902226123372427397016232834053473227471690149920942212602870984585371801568015031657982418304313259071833306063447958098135868570710157897375744250782363318894587992291323859176684823678996305479203595515010827292520791587326964600898767838618998490357165799702867690793235595751139687994325098226350210450002608726495861233703499432933587793878257986280954818562975102668827785253086707206638811170753582242874896889655662142789184864631138613281430656823222620679886342862098680504280403360486239032229996177284626590525806867305850059665847766268252161385448332845820169369487881230228205568415182375202094969374810700712730729219708760971002411067011026333669392533095216497932160755867940334500597303792691600431718528392966445217362901248572627345655800726182715291504848465435455616494274636737803988334746908002672414738334235027376211673506083693773571314463865682164361370733752401419915261635455379967311202271999707673377480336173410311024428223969747809931772209919721579849289801939006171112206501542921554231417084577176139220275979123944969042741625395081412972421608642814340691600334234049569034936970325841136125349149188361890120939181803826475533859742609027339511352400298710403610320262775190152706131468884154666819150291544092589477137523068469884077721046159297870442649220826595497571395368603662920569289695986940893417610374543935694193906155879236008092909364461865189507915920393961988841117391107007799566159820509089366989437601751836770647001347106279489431481189116836085685144536468284576307382928937714700801122529648602022829697134193484078313674263460678450459693612776437944068158661016115574005747701388203887254567022785102016238138565698210008542330553742372489200276231923791186939466156660863098132884413583605680906080907227535321151248738348652548125722872546963488865122524876528327161546796211957433909558032865663961947355505528360935287808230757662291602521971442599048001645124252995897070683921689563363840897869220231335677357336973495012080889927274397494184655512423027449000935450537192751248176326870960609766349920708129893109723052928643360023056939913804138711266800222490264635597026386404763127666032978216966409764784201581368219590246984677398209258460118148259794946369567184588900884491074414155245949936730803026975134672564053292415631341463783411053361874851307911910999048973816528580702736567538607381806015320158509498371051564219812701380697106693971797442084383815719932201231824601382898184467661771247490465080785247433825014102451378424312062953433877489407497159751331627520998536736798407151857932896242927594725899063886609311222778994689823701138389252071594094113481663363424483140691783606219687219282232647808797760685335225275262543141878786527779234912159816683744225144208282397643986995590432045329493508157843340496041579119971529025839430300073346792498218291914270488161508533173050767772372561395858001007041659095762964155496656056823660485069121477136202948330695463672407629295671389759431843873868598532694371554042769953787227611923527252531447464273670354852374813895859082487743645741261650746965670483057257745622941340426072358412132159832469872328946776422648076410000023926798505889964970204786158820264901763935871895287778606900640977521642836429346459378684295564411925689772913367695192909764092912687869368074564195978792472214500109666713885272975130731304531342176902177312841077005088636345818745478218193302360708941021174962102003674874176479026582700697270405709743029958575390921945104558409579403785878991162585774624077427055865763767504588374663349422251940340114827461622026710955369860643333357600978205735246900666788539067120996422502882967225110264397590662375235992662200593453236126589866634627258170280035763902091914401530493764815734137000847962543620352089659146829120122405953015448493058435871648164646351886533591273812848116058272105483164177313681381737053773856055569529384786343219494455908239123342275919032070010062451778676503017626729938380917785393211242432324177700664884675947478578708915613211109491251979742835831644427080536099585407166107887799987681328173859319409156850808858568444910595922335312164366820050141349282794396814510674019370040190500183041056727056587684328289478681267518762408114492778894308178799604592439490828813164441705337099781942742046535130793466741979804279962043380170429266090430005154801542966532837369010257566606059677806117086922055479749837277899403680351729472719344605795721805542357960924850942570942105554790202920124542037840995964687999574751290704503897703145051625234355898447249629576634588648978925402957860810161787564894996493099896306012666526259531181883958161735994370982416833102213544581473599337749782972570371984258817593847339264250577733074370923835151540640127061444582402383483017154348455448788155336021337199578794099940678135432087798499087265575763436939760717527970470245038416440108969921442938819116582293990681932246558247153111682550018346664184034356445738835264128250544586606947848023336022148825596936127125368573367957156515244767369125727354303414915839005113462869618941944356382860608214371790719241169464623354703599283961710656705135946390434538982690772240469009728755636458590143226975020969172390960493192178232596088899632599439257279756816560730810174397183861094616613138387475408125674139959371046801817054152116927444999061639955874108636185736155016559379113540394927216810520836336087234024042198627622266676410706505586602440023624564200925352770722071863204734144180894087066964095761104156464440433196035607976084639439522692450957690212874862261696129599802087151695423866402507794139675793411959136660117166746338213339871515795295026517092507888766285989157196489160809793075120756702494310619459250363223573863774605824641933903463946296289767595477041071678917731184744526734428382540884412906836306721146542714210273558827742864299031456973706157830363869787817322413483603901882827611224441018338891822122570247339468666364005980753344478391711599695524777874619146301143814075611533733923217052945994431054078998738079080225042805745583577156538626362699041984202220438980823598510325529480807240012442894325289549800198209551875655452585515229047311014000381272824835416958461018615219988554033252423115378863230187978546018900016657614485413265923361530202916528207342075678341938292317635137216838966900490205934925236423505745639695046874751974101012503749199466681359134790886611476003350335088764678790729370119132408290188565658492363234406283205457658930974495260695057280644380902403501887279057827193469894790039235902072255610639157258009717889779908622477597114663321098168352336976866263295162804867863606506386350745580068064457099604674235724721776946895311252619998667405201818564835001055103435369552113698345929880608201052062083571776593429794954749892099075031504874716306758891650555571145638234693486112964004635407141789313305524923874085863645173787455631112889301598227934073809520574642677111343586435957612433231915968114696268145043725240456834668583876857649911230460823567450729965080616366212984444446139945723849551825486078546820737893068899226138525956375919843712287671530876434244724680883398445718959651186495546853332113584580068389241668227433177903000347577575821766082813340349289849989887742277743155051879300550933992089441935014647671199402630870530054972837639470073122099852343426876226652609735374585761263504674551430253820287469545334660353293527423640356387453720368859859475527284062324090480680103126379629633002012041031657597299695785016769488453229994578857800902567834152088126463802964726127920538653822287240060664994762716830103274465389144067292499323627033514340593951129666810608746996472665754465910027451255148630413681468000585102114590232031266930068995044959955914579544989891337444993005340935166994519346303527942201860915155032981992703405240050041107933726713077551340673830075010161660847942736562369867363026456771273908517506158508053941980536482522841242288266355467005955925257046891675098116028650346177235118312229507100085976388818712635733467798742403402397482616191366117625473450829303751378866841901747399417687048877548853219286878489204820739984442529645044001758581018250780635828073688594249512969916397234209897144722810313827322715578661108129864439233973703467888790457341417226569046382556611813542087019937369998762090443115454880139449869388123719141113317271032869410113067297649747718114176425828423076479936104571535091253083675159409467833527067473854874051566282487891763820527724163328670308604854210095756361841215527767878683932904183792227257231094431189502488091270432481280607589969985503444168584737142834709389218405209387576345221279069495664882794580278497471890594856564626755244223639896980657391621953278878394224788869847901478346709487935591795046473680628854290350409507604005787059454467260035872614267904949068519375664660216718901922936179346538644824904608940639521515817236879745279575860090250500959086610131739494639876732138462210367343621110480770442800956590890877523296063230697316523830294816909918505919573413977004596505012322744064204377217172699293548824405624782648440171299574708306825897722708070113933213666063153498650269629740535904135073578996612505656683689796450758176801045990267917926575808493582111616142911216331717180086449774414715865530536831788100557916482788513303889102648146562236895732606094201848067138933694265456885947909358858884178368987090998607374599114164090423595575941294716926856269918622494347055492525261398195619510553542984454546904527224382514522048588220288916583441397027857365677761255782100240194274705045055645943943488291602823431286048166569098023865130018768413782133415881439374881037037283059611527744416600473669213447638655207541365972699337550410807818658787598769671860935143461824770460050300405988084399784635463835971585510650037137084855627751635833121129035222645456258828906233933003704801294026488378398695496052646511509779631482762982550991100263531277485719297422572839846728435222327497166246724720852557194646451495558301878027864107108721545383014014735006719455604591123759196904338532824875441176998539251196847571059240069884055722638939625770403743466008411541168945073818558660957733912373234624880791513537507299147340429562995042753263536432461727784445568141526903911629163490460040624941646178043370448450006265412070939231082048183927344611891498016731172068674012269792468867172021588052816776509801657398398185751926866276035756723398313557642968788092108490752109398620749485071140802478226929686173393690561595516091337070266247591800741104475132388321302242011327034664230142068444312096162668195972762036144665197218272323698255066234721836769311097997861084226647090724806258557869421070058320908606904732830797035323749754117905023498465032756851120890631224209964143890074542951906238957988528117153240297862247425367218866840134687130770548986529588867503183541814540197125999088657952433958848578594907032019130235072155360413434470290900190935571404822959628344652615602075081271168273759156586818418179396771992441309777768282900579262595651660335990333806682318942067668460680716958038060494189835605996308719149374598331424551590631974241933344956454771784155013215143279433848941735567015201102598929438439225525169450061989482477090243342040571169392404262355980293204807986920790262798306289130536115805832704068187630396655660886651913351902406745795271707760966120083001068764622566382445018005379163547691403472304298152911003434783443896236773173256037243737920094199793237325756179743566020397773424301875350840466502908290469372256545828831957483931196697672655238247479841221205052681453466498077310098557923896905591118068773596607985082700330073303488592362032974766040004439229874086027466394978463616314842350497197508833888292540159640945273776634427955352039705258602991709824903084687324010946722541946127823742651638613371301161318567516211878336606988972307183922634624856970241568143159781257832613576717414133959917591390764742926335661283434321407735891520445563244480865475616273502695123466606305679935565661471380462200837143684105673279660152868626563341350745021864270111536369608336419251221265249900801683961408130300651283812891527487552889201183824636938511633340432495616131093921626768527367072554234460312262224549758386166189600650627096948528491987551875337683718687184921735655971963752700293295319456236370202061901270200980297969943147754475340193557432043159391286997032959582625897428211076170764071980082893918279587400585554143027734375545349298528565467404743306361743185973671813903757891013275523964070938030429985181390310991225073100039237129506074545895844927592574454082011799945300645453203917380852975859754064721611046255572304212543898601278958026475809528433837334352000966589309748404562578204841672391453321183123992055120600168124629445848490415553169841687797349722292159061112134467008157441924013834828839837087537108193076533145060255062057442016105584326234121625302425548743207346550995715647713361455463234686759804408157759863133816506601218884216166434653229651734980850897031918493755370348111522600690015188024074086582984516886214019465558761142245211260919435751016383248783656202333656851398168789464437020772384229724705632329517307241456622613213415807239610749259156967350987223921043440579165671217957082001270348758761010127334019406512926154016992484359307121833740363711594545180096644144594307165728323894405196574305716641837627448677586757365866334557097113792300944572278409300589140431825418857206056609761773729621773526826904766110615004865383791724936182355621369316445746044106131278531503599798182473745241398212218963553726236275793698099226550387801210508693744444201623622131637096732002150295336081158189573357512192487322517693378217767417845823281794740275222221043760090018396476664718699874230539182631114092704099577896961162976479577890731198588570857465577397625005621682430568295110453232012277720282385947092119876230215798398616105737168689585102693789219280976734233846090937264388333250977725811239022110839546765273686907592888592651053071141653922016713122717802399478205375805907155690706199017652618733297585463040422090272146098407611442766969247369204361845837764359332418577864560548949562769855081606867357591107003753340223043831627551780691320893438475784482315386230393434253721067001654522525704685120001017837011214939571145753747581855894336807295576925788838286018937791863829970035244445755251978668349720809142866609188990779340642192754498065325975559898408944463289790241355083147963970258243637332106174984736806582647358661022836233980623145430820029324326196976291448095664101407823467499098937870946651026488325589901511620255903301732244061017464601694563852138159262297068644883331899472242280883861452286377487177241716287263472546132802830706784554760665335884769247031829905530229279862291981875645045425942000930089155673949113871538442579427975628512084652346116978059245928154495692690520331031025611547233351050718766302089183058822275183729802377064270097577037495233286253219592002377703534739882797367059986708789722249881600259455409193594355113217159418578271000772958866679917990305105165022292658070792629604318745543043885825970552247206254638116842642758794342817999326890729641126886298000392690286585780560524808383582001382080313559917903298539724108806256571423744572496370599883900222490535657235407932980948304544426049082839019973119421715710055054234020092297488597753814088824585164510625521931305460222171576003407065550631608788524562868328974968859965095843019987077241633377771672090123029081271485472463346526897494356638443511288641560873062370251088410148653062362340056725591730339284006632984239193438077333473150373426077437655895138584257542704537123611392559960521515195723585876160880716996096709518877814952365433936680456546014644089734136304879919954704115786945709570609132437929616927241538716367627746960892340835647777837059313976519847047442228442233057710448848286342177833317250057970270570061614167183197577281182631489517455996027309548591289405932415527330684068419303276531231410853362598505946438450653075332261376356739452948139519459639175262024403199377195733879689969218504190218042467988497820398211954602862727255486195750584304512479969434125437084809270222425901191000361295988990208970111594150346525126165047816862527163698519547692991897055780580866137621228275069694335087455271602654436850233655396881437073632332120394185248752028271384093258524659179611803540040754183279398081991691754679669757329174074854736654373385092278432597131302278677006956043708008161992393442462517869368303091787743339058246963378703687148925155888811546844912248557310556500581380089762127164291822490616699185159790532586296063952307101464691602763858937519210572517820099391078459213711773325381875967719796309067303727840360587534570664032653809887621784267573796826538992592954481988692437698393187254089058225834791050640953711777974207959406185572027293809371119971972610879148465119368223549574825662199853136205439872128792883077958369746448346112184201267637769422626984543608665470734015515145712893914118849040798248709980175849864631557649085393582395040402636854885295119692905610334492947727935786654650705575074095393911421296424753650214403568383626718834607313685789619466457592236959879742092714597966341136485190229952675834969666914087629223266947264640543124950795183551369217565374284516500415447580380113585423286468406066052107070316053133315427708956738314208864090209371722188085473132412900543086911274216561600641428840025806922015855438582070506160476194010058095542546190876341435492615581957244053156343267274105807050007905633182628361870887116512388264391274758657316143515606131464730907907040540681405193853384166203618890003479288146780472598090620775959380967551760869143627964827903975785746709116473792009695474516171682147469901356568541265407890615059030964525398096247298377682044186678199121863176781544570294713118976559744885075254437838774062222683176976398015875542790507383187761472854405931267580718164425992462440211489047777960986153864193702565791924324135072707988415905903811731169292351066505670570672961398195007508324802320141611568177837169228123702247691511744388723791268151373726630329700785438279480177410154096382797185081644194598358009019583357841749152162010609860597059358680847477134852943809391307505984326686513483434386722463095987009479567780549396062412105743577251699773950118553901686888272485136050070217841243339716897480012147877958776556586595919638556858173551685317793502789090160717616922545707335164579396605276289373994002939853461713516628270419329101911389843694293316851413145033967744719693802238104042989051350062942958826656804339230332187375247104404987402702966804147665863868872452847946663978220835679918717270444656113788244578656847840315251686801086702896235989718478342098916420503422102399254444887184100816273431141915245013481944619109187902031534291043422466865279064279065218711887797497219561465486939024676087331379362540989640481418850559567026771369391166980980219379286567972337011931871979835243770918351715633799275979611813996097363761693225732712204673151061181254364471511612505700131095836362380908420778148172322636754536986553337081382488467274704218305109201243969727373981485082789134421383919077351578173793828670277511503628701976492316654202543426222418377800822782750310833762543968728485442687953327570994997478808488598258624732987336287348959559765928516673327161026058989860466313212427439624260445079567382700425963871858435214659162330230430624447955149936042101552795248867659461014799730869862662908690074806921965999652110492367810387095499229389037812331639751097428488355908715663213692002428294469232904135071578271914787537209099899728590830181339869267799005694727996399490992654093714944472764512523475370094062685633420163426325261479230135065094797164241645792018816664926264259006345368564744940659588609024348779921610670938067968957187884279886108967989803298709973719390986992172095421459625098096738415846121835698340953299306238652124082636272911930627168322895745528327297175749341794947482697175069690344374628300865443354883324298688139263261930528810890549665430664156241905798226607629516536935038347021929524890908658339191749753686409203407244428399503289918204466388692142080760016885995276429306935072671663002467601741306970939772749768901185671463457697646164343724422639943475630138272260443163255672393350753037403757721681588899261641380707790896192294687283752738865825406718899368744987851435531791308544108154085394146003114381978691589319814088539250324716739234549428437225441711874545011051930595896524782460921362519612668349565791592705503812587267718943135592874794518057683657752813608229680458235867831966349958422733626092229439519554579418678733060251424784276267559959959771534928689019733804985643665061458962818198230555361215044330477805648977034438121507075189592724632532045061792119673359900131423398979435212357100877187863866681677067613266571543179085843866131474805896367406005864149869861999885805328160128138966974284224217593623765611779953316356200769326362748415602220856428709245306571384109011405516814273074287667357424608245713260978754270583265128705488962668818928340010217428506407932960849459641968669927258916129097042806403344149180456951801462442496149103069507689701389919996628692276307441457425399430097919925110508023798860390959131512400058240606790256470666692021067219759365540541333405322521583677756268333817527055787236891047292701192862902074042821057698361954499631919396790891432083641590488554200067305862259786205818055407881036847621279214043798064529925868284991692583345689141965646215703970379683042553205265643845383641099744500200073155622664535443746846513766759624378617687628292718836700287257817702916709558289861619442613358741780134132320141060866503825852443536141594301860486967387305200621182214082454992260605695108350887096177938911069984757191379288422909077009086455556289144538099629360920242168023861306516854028667012102638850873899631861611413696746535300973825302564047101967584787569659647645732935752496778760316269780607263180141442302139766349316515191978450500309605293872930852884975525927177408123802793514581689273207801972646196012992387199917986718937854947913350420590289190450713577276990376524459000522976807553801911595247741384890009382391729785328011781822033842483887914102005207814777834266090493294371136780096505306984196136518736039693160362444976178232336779889954222248977373673800819036231014424378592118525573480824446066530790407448202216504744902876672423176710950491741366403825962053221714830986306769563421062537873417422825298265423272167848166061480819691434679540694524793629587066357186073995578089817736902797109241225303371370645225213072847262798391799435952156999957631773788491135341706903161776719373214132432972350806779711937216212861842470849945533119070206650800587287631761896621445352931868697775990125623281428824833737852327030604830938440644799639397282341589195151258120875882000424895464522696905062533362436779325932711782750794076039734227742722511094071395304861445544249215073951913619097634119625251740084825213148388457728532833309418915319429173914991906557312664949322488126188761336155281756683815089302032450509903023728447866654909812197918003806602002079691883633478130054288431907243725347291720833677495979809341741212831693067283471977906832065461643701171018607571901365690945510072234940447057916388351054653161567573352480390151607146854466469417846004555226709642829192510618698947191125827082173559689999996650477346181009298248415549292660763726311572082566299707012646286728784811582345741530576837518152450993503372630862071729318666448517916691696403806522176218049276989143746418622032823856719824515961941665744883800477002683757481239258205887719102475650022243232356769191332620282086398512552568349171391022699370842963579052341940180913415486160864480402910226903804582860729374094741446915679613551652326076570841047637763447183659907296974026343807883721418078670912392380731498434076490012704279063089566303171755264781282637049167813561203294584201943315780213174988069738498477654667222420299645555178547282616865196999910172589189474543441254475592063323782770604969171600754327285592611835111736855340932258059809776441267866366451781734974017118506919955084206461324043062280187583688793569805335311377445994093997215855980979051927716594271691816426684694854816080549696542469257744104341760759513660138037839488639116669565121466296452924629013903644532520114943899001920791827323154132653559343955040636638801430570986017658887565951347198047554329426073446015575419759782725774048344165321815608103690719486439669928761419644757428502552749303737981009943759898579018291860666466381806528145678250835223864216145119555498765423820511316107729191566681482293875169907247516717668268340387994283244439097234156104773100826744248684691642808091923026610894547947020668716324706606591494416293697065834249179421276481160061126567209698698622739738499217710438768824245571642971080203109120465126060090929614112938582275908305231895482117230719939654001491698020850591167640107174294176050266509341411104011560584353329266231830919820531120429995516975295052528053343788809641370244354037114946679685812404003855115804313563195344233707151595333582174793324052195562845878232317128759669345123766142166889380999359190064709401367211087823976720660462650532288157094499848148227842497236492058096423977377441995983338326349331325025413126206629954511996014968889094139811615783117471137229622386298572267421861608972185574504617622563945282945083474450490899393200245892227414255514510122203344170873291277636147528383077129611916249343731605322167688719728801434510415942293236626321154713955863956274352956096234527367998145505823196824234981244273233716743496700524952891914384851664580060472171675955375295603635167822177345489773280733936165784900723125413284829742677749576501597161093181392822135220366872870495194250832045463535155448187129590681584337032029303973172928380726853619061468560987930192418395605575206909631889890710479193620583900301576694091905525280947507802282750199778116355492860692597823982716672148306013779964299263213039684279205884999350420737205178901592546984864119435510981690607554436777250286730435176534241405969210404799643823422989874201231623032023722175165967098147949828261473589167950065100217677657458879132907060957210040868437411057460534685229761638716765402137535731337555284677811767230517400540328196171759734941528070502243191891828489630233022335296067307602517945954202689370887586924836374616576717333936969668866528193171205848177085419330986768447998400900705277029726292448683098225577109732950375830591203963653441109587977416842012063175395044089808971660637203965575128374855483788445905777123084553729725870734360198523362843824677835042462047111369732130691630922907196024577055500393872710934280316247303891725106458154845633061417964990188858207167772972724136026998691394597852339628802186592773047176997099941581133474494832031634501613896191077898115647410721328041214766097929127205312780012358249613869477032759893683646267233206470177139727050309616131229871986567297301558102841588359842296500428033098386279780245354771951255596389454623603275561987848902265860910737411581674387816017303406846795367908513211959642387721688428487854441830252138771086954793041286705835133933292643664696231123533269726227386524613445205197760065988844407121743039593858717349793996054400706395795583813884550853249648498834066374790257938785696134706009126975090434078952501086671818692066060391271248493082133158890966764382234321818490809229433969100257070506211964297878446103392122844702845172575204977267712079256611170337665343584091813044584612947587079379109931412710748784185949937152835723305068489751832884259858554327254259793389819475010782335062446779313090067067053179043607030347688714333846818472879400587901365594795324426038132931453283687609598018633233052655832432888967010637526724260868266149024310132657257049733766158104133271203601665332785494471314048577765712197871325505357643793925895585350813258742571392157383925576838068096263963332211299640864416192560245307468279644220509022825251110454437119467038503869287062351116135979693861039501445205121128116202602677586736407383332245415117122091593284228336772429522362303359634880662240459425548980428543425840843908259207233605077534525767851070226466035291379406626255201081707082903730951768335558790113746371993489117176936973353339115294506476172843455032268267033523041029877305051513321093202152636870739368529316347280491288938823563828186972073343852951856931359335456961596255136780109716083155790581787713138637059531033257710831843141522394683634523926981818795918934745291635628875121471964621327417369286216543553200872721632914469575577922561966570561934796295241370560857655635335763233291496576326027686504521696441165509609681608432919312847196966983160102145939372383768158592996912865276466291350384092984568436975249856310828093716808816533529776974183178564063263432033882740037307299271348269407442951334572281284377032162489865726315277180193995492504468295416546554871296463131765751220180160376580315024032480031712239512968792837089027914160402840910241982885516696417213807124762037813788066578576973308514430537996679594531808427763574466566878682855633888316599772008080408737599676873140351018252858774230287119852430228521945538343134198929286637589437570727637253890883721695586265245378749497489850669215320145068165963160399944907611575481870633366805949462653526555104180311724615074631644106304023008577943952445339354234644926188536657802784473425044805421086685178619578758052961480215163745834232783687185578023783722611770690336046833794990224836126590795598811404343156485386739278093416220153470106315565483860296617304445328997187482607019910057089280769383022707183052904144156381629105146468749772610943664983521118009615351010618182762673359653456683537823173228344385395628812051089931444268954102334537674543106607515347358290550517477775476563377495906348002832187578846130485332082059191521963762702190135331045108964782328700508260100029576145688933930052256803692027374698057447368674326351661336197707622875800292259813617129818227390273118128682126800942163817899130286964221235044468848030755467522598385140413652323023838031243097771398119598777833004174625816848361865448737141020799376718126427630934385170999767721942787529495696772661046522019146046726107152408780329759740817001457208956780089748659659016718182927218475705336404892200148936657208609830536417075453576354146945014999378535727653174985903902738551745075925477174930958535299486853974151381859882320793614492348415257474433601874438380697376368780892152709990235876111932515037857093114312676654342033818920839942792679846032568977464000921416568867952857962171055622470675956260587162263220226983425230163306025958930367954228644687605671967272446145688825752578873810200870772611506113181103489289724552086034560609784999129761360686960846389922184502248395259857865529839358986831297240390648350592154385926372143548527513058902920226571984177888809389248162694013532481821719149500980129279955852663053950473199717017079236780480160221722186780671948014628834814532290493077922340958823778424545011733104177413456234488301064163182773712812369523512092780991744067742896755788338880308816994481121813142749111731131215533620733403019170137524013831377881133161978901053200729019461980736578565870519735117396051486944185923361510934423766679375136614579561993832203161351063670874632330394033482805150027838006189494683249158637735443852535885597343889717995152457815783502840447713648836733387622590542023973313575305718402676755201349929222734606312238114291529067285447365163821217593565389373926264553565801914527174394055788491002396198898663868882070912783548835211508045298187714171517070551100349458022588454500396206343034467358379233040930752392851874808135353174465470344851352832133849617930811298428610296773786180078118386397617784014941714054796446290562046400455643715904809052136473982033316195492637500610084729917389788298867747408595101706537318409563867709789075383602073340815607971488499265861862150445777063574051511396293672170426275763336016543668165342394055814495269529590519492943740254867971928534168250841508696538612941475213742926064837055933608746885195794491658401285604112850286356138862442271023492126815631304949725394621550919534774172584315007674757867655912563345282563501595122247343252616391242903183028266597687979244471898760018939262700645964312757872238944407627825594294626954503482583745103231584661449974998815848814804771765284675567772154286728904109769714633542580994363757121696922946207965456052252288087068038424063419473299858957429369971657152910421307212787267555896444787703910810449364699533407542219972505316724909887297094267242571778707804862480144674157170953099764480378961325900745302641505985115680624490351961629508962384539662354588743701237061929885139842496198209759096196772596230375182207863659413260409934642302406684333531632268141318590314730451164686104140826360027465817523647093768317416028478476529927349832695450875722672903826899398789053223204142313269524949955583205421815793851216429063382931903518647749386635570917939721111823660452386755933778058221645168866791362213467644826752074699750848191262083507419309127874599904737953514666439521990496939364851384527615693249208564228309759895910999587931886134731956676502722005850589531252259003104460995195214560630538367505636196422009383025366084994255781603669177241514665230640848347367050410170743849409598826607407589252122076442696427386175912435858270179735409533422903277071117277493962104013132987373527505993333652689719044175429727655517456744127846055112189389226909426371996538506763972879645631582130153363355436292271264513169925401796313417331833780539160913136538166236565398286154594001588195351724758592044977232944026337833485581751167714498665809454114583468001700759421354889474963539031187867801973592527182356202960145029873082378717786570719846280406553327721366274986916339338892839305408102214446363273779639865243533201493430756124163095335014704927864323391429913143406932041670552409838892368533193326965162362336498073119482412162247964221138758950159587174362976776804660730599094692478450228467280217536594214064583419024012685813549808250656841920786982025387634894543703966922918903316147928186834891873648440781276325519577364050291548048651209851892129990707561193346496958551590556405548875722167365734919279280950834834373971699045241273988629252258268997490859225082216576615810779104018135784774609066272938544104075096584280241907385859590932971301723198874271538025766621074125807722857177254326846738659395697612416806818166310673344299092362392514396983256761076291961223314736965078978391269367746096128792627506864698733035248491245260370836876703468497511894513865816303094753168782018298489102935629406182690815173585233764785867856094210047879199620715725821287121807376195515208517819129203482836356208559794984657572305030727678309576924530932299283592493114006319674448352372159202093147832368972580866967511747748261393144393404247901753781652160152050353072717938088646455074844725604885152574202506894588611893197052724809932047131184498245858552886426904642679363994607169492958222507608653570293587434818491371689462016694883343654718666219005388592463928610984830024274629975585093967373026531270204211347069264970935586200571034576195793306079933569089287031751852328847135013763960465508552834576499761176450406052832137648970240782087965957658406312845792516978263034050179985456995467669502317595780712128608827931716674057827606500083199528446198721421958990127908874419207884061534950472147211008165271714629128170908707954607009430381155057091806085176802174455747778761665815652938535194327961669864057470800869082573025864802015286435800391051206894736781380772265528769547140317735383706825979164963398149799145955187055185764650860265708468654938840237302207323170442190472811246377262929795382025463763823467514725639944472675297122228480307450925151118421501470595022108320426498149867918915544519925578355517667949028367944853617307010381679454918043047536753658597671238484778232637257991897688534766652538499633289390691376090962963057417087427069966467447159916865392214804294007530757513591748856872889694192643255981531395390859749158358207366463094895210167598161778872982586391504631969949177961086079520881000719213949053343702588112868935601571020452973913953105309752912388487066906320506310253351517393821640011990008507569317893434664524682649532234180204451625799908924336396430863523353103064344781970541471863263388586404641190134818737337443631824377866233671364684060284528713759813806942258771549645432234897952017973889465331191106802020717382675857134543445749084181409237312560963137865748059411720846097564021343738012864907449705861689205287653530519644646659449788766828736852408545240451205478212979048666257929379558871298719216603318274799743152682218676699260692359217695255569293637038352177902469502857803536479456220799367437111078011950818629868257035917670394701249805560603680253057614282115632171871098571651550951264175157996200704649290041507168628590556097599658511637074368517538797378330521808525148612253849621508312590437646662506673410269776729547630155794854019421534223427248335955871146137581078543719811659681182963509333586552766436666828297715059178632309155431844419272265683774881208477433029278090838072347612911443875358170123787109462325914734610011622112948926176967734834910024272240485000044161999774543610016865407800627492887653587653197429637438993789080275961298949416694872295470456420636353032732506007371540608608733697381474538725327862419910420547027675702755038235374129518794843733721670876881530424142806592593375562010260557560516759584238728177501471508859709761774025056936438859833845624000477378176123484821063824583342551537578813245312364582226678916926451347772379179594088631444816821637686558120761034748775973109240519667978306174565498351624200057704756747745590506107917945842580552777611265035020851692490191862621027920235183536820975427341647339935755492260047692537527487369748330176546216418619743496432021178278966227721430174860692400956212272784948978423115478601121480862797855287269764432331573020474465723522949029765432702779662963881197833022959555864717720959557455080893444521639330043287925385381773379474736455786414406869437465712383641026930111876998987491282311519268904000265014590947573610288040191464509201525139882464321765220147584215984610822842547624967493139340877590646268693481712367832408652579414813214324117182171028987482502821532155078906919673648549431931012005693773084068817924847893950737780878381371109315641909100607108211952281708910082360018928856469389922070688770759950778703726860498553962050900591494419911694962829803866760889083135296703947731316506559774658371190047860567381074657766980242330941479157132391005073832513128074006266910455677509409527384450290583313882644928259541310013389928537581418668364751404185432784996086323711835599636856095375812727740346764938690170493164902186914621732825913369204666789449772635597521509374335919282561390459125861684094136190196469843234709190713330265606462593696060264795514511870883665350296984290461477234556810262965203091199118510109321192247638070410008685136513312016786380516096791758419809288418864301037460679425061607295083450039996670751864918219311401338623850572167735865915774097742557843542605475658737328006738211045923888597190765311339473951933521680050386916217112632206593269800914677554149930684344279360939968436412806374118748060937192818761380859994029038059234712422123497109493432620612456593149661318701688599448520820336494345854322787233396934540294871546269434279416622282458604122385713783399573372074385558806711044287599757675028029953776339857989802647341858725657765451867391901230974865709523101345787608618054927758373522494494527325449097406866034837880283937778927454733768841264590236417286749376868696235597677367686052477271724821899898841501602514876403940161904475087742342478742020237190744815716309617310159018201285494877088701114087951246755331850915080427289996495918386230435637452313339938186093179666575348557782231428987109167918474439335596903413388446667511247501821297279843576602546602244113522969661790841770958280138142660887436348799047460193455062120813517460664508108098961064469153961262171569232286813735286792864077468775561128397334842146268905620361364196840638638585138698440339193304987018556259314174184317174595329172698481184041056140343817541877916770544959419787544101913597335717206890620399227222595218964819562675678182368411506791236817672503878638927623366747729969315506532159542565926702617659056194065478658142591235531709105198986097919778216260601794636622071848751355655792373961296871952884115698290356766391938074992346274854679041906405868190928807816036701606222347665192917743734784809159083305320096801580772059429976623480614057174228491300056111963913848081960861027426563509765574050922308306424505917645575166959195826591907717738434177570213676084777342279574675605822603996481446450320647809362847535722780829786006029419060163121779078683223078963900077828671713162066756126121343520460064655764532152645939502172099674078195425346979452172047358064542269488609192952660895986003181534252403856285077015388960346164089595619597278710046053396707864086350546785624363765362534086923678852253735633739546863118770013996492284538128664709980311052078420542931960487023619598943892951828695798649814365292023783451178755620679677770492823926609969877019914406581591962923146885593681820804802114355608243744980642388753718914010777713779126953108856682329120713040903640933546504056673048802316887149695296732903531582797321313279817159705350843603585342534666699469736757118652150793987976768201359429938779299452663759688370955386019102544725541778283393797644732304976671983331669438961306335168294630262776117940732905488786587316651716208240220511307625624777842202940555310463023911242560817304912379826941182789092688337467927247139532391034071034736263620444567789023801692934180179714295097931368322424988281283692734370420457135849978204281124124105925944908079242243748703002009113549528929043572178492013392841862471055778244161324831981284041682750232178243351142494796939234287478650188942780006392912084352957134779356598114679018696478699056524038027452614703172514664151351311835343379912829423693792324826402947999658403847251872952784953732058625506625426977284784989673304919424769839461343433141771767009843842265453466096571727359888729989666793557096082347226268016286742435759950029382948019863211639786459819282541986907377927801297529052766551902307442398222581049785318538910074555633826460804719134452717969323229295977273466132353695002413321957971843406380673878640372977587601504967343443765162153525092852226641670671270818128739778909900807399816995959896106068784160045198546848364580846457443544885741446973735898985340686632767960637119305658672605439242059329858607439137268426528592382064856244926114544363536738268582713504217604636302938817026498570066781681718865349333699745656551511800727462765646698830274678333499263594150104713180654444047993105771550844263866435345526027711301934149752889097579496782599681261896443618684617719269445555203617474568196503128669111796998989691374504205988489015959293114915944727480179210033344631174071766957325456335317604851198359700380228178984691503406104098926213155073029074779639165746606779668826194545948987750749826844386954922317987958481634447636071036048360568549219075424921527028643548251265462913087239048386828370117334576301881732607156133767916578483456603018757738849934006191305709365288461007835817455780878519635953527299025544260914108186196688315752361330813095714448053333890194893776169993858309651771841173644342345125693464353483796809607992671447296093415266456000590978429724528489231558828386969927460224256725422049038288584897913828768033146045909652808443503124768916330275687513308236879450107510632324618264893228857625728942148113221299091018734735480160141465137869106064816511139557051693581424187097132440594599788147624951521680913408339493550771884514273188149715041104159822725542979451415971182066043112938458375986069696314061047893372112156388287410869313373319349491708843281030297496751284939745327377047598125349273969992856079488784132113903741409343076650279541947756227493036983727475114402363417697491346142618796946021772548842490868620450041814836377473537134693094253836604786241175387282294178043483480804728971166404664866944258185293938571917982101648171700476633402280952860059919288073916251718357496497696533840573624253297996497228357572404488872227259355427037670487299643433206357437366777910758520481797817954849987176334514421878483130082246740112394098449649599179440687342707978192174073547369194373546171086583206914040283151125357068451513455394207391984204156591523478916661741973784695212554942039028394512785239003643191756019679978770604363399827567856738587333147849844008599730796418583784673390608678393970203234992744426856628675150130119786676017852028646990144772296017215495057827257214606508000486760043176684880430020450773800362296144141671472086116305576365956398376585455449622743051560772376951540555430947169724018962035386668687959153175254066995157525139775649087655489740190582976252054437074888999052410114799725949609448049302050956620154399524245184448486696457623626016412825186068401044788703195180178438592336063943397118744685331414025553551016762845025140887062009292460017969964128797511042645611317330479506286199915464137616621369547763427781832767551424980382403080401504574275516888092865013000940212968635194092207770914223251684322839704631657012214593735501997929144695780321592184149836179528255040886045149190411074106385487624068611155763995232368978600158139147944764638190037172557961347228424556664172253360905003443878685248793205354351611301945658631905750811817550033728647262990473928828913084289656301265497848385376589039559662861604157422655688668323372016875430634491718086373198791090512201175943425435491764661706871484380132627476785410360600386721577437374707460357156171706798361020152448201468115864539287436855372142413341542232789174571306257714772566303720388510348953714439215866421610029447314074573967648825148360076593203799900700216075363819024531448500872657626834000712197586717676789566184657199239440089770184334386338530549511152085003028461881179632159965570843292131614549118440634267700626740187798522106534646885511037998605313726980684782784136051245083902429288462998072339687032395451659876478897489641845872776073038248877874896324310813208563946821604732039665207393814428540454632116217389153947697990305044815953248321814352695919453530259370720221785034621778618295163402290803474351606612007138435113376330357308324691309114342197790839581868307742860920894218733376228447006198498572047319628495536361313830373501193723488915297776400465963953898286968590611017193789906576670730025575432618559942921586334513802700258164506564710501769096287287477405250326137452300016737855046390172155919543193651017832143139544067507139692882080055084708575852665564953891411740161222436644192204591782872147451145159965080022979114965254544843543766009480226955183455911482544343803538250544320919642950938046577551572139319478855609746080752358805425322749693274674928032462854928915762141768952192913743872616852664762870584664893856146760270723257103231951310556962368146629814480420365075726416254947286434324630912853152401982487538706244631261911449526293868926000162340189597879551341389205562239308431403495385767125317627094771461774006622562520143548704202719724096485662808436134082016044903858043792210958737851543894516845191138948608473211745679833621772917149567709141549246963899918892362865786638236925496024097870386219693835291548674227609865032234924684339071281955825611229747290713537318626551398930324077287604490887452513986718107012044228728511579293237054692144708487077393678079540207984228453325354115213244402174856374982137624904598109131210699527134015604987991938267883298503651851510764835757796014520200507078870716425826054526017022230842764788110196130012973314509484859587858528517969748099446480863998216909406293300293930017301893984595315312810074664142809159736822894978688539325738519885588609408490402882505654565266908975875862202084979370139155999403856525399357888497112851482430062499133469050128859182785153348953881790025728357522557321379610317103272853645614445899506329545714732990658288862021468011463059892625419004154248681549063533684595156966493349463666736772920410147111921417079828428719787266112715057798176129010334138274092466287825629433126578625983608731998335753732208675896324815252603825280621272906467417073892875537228987510651256192235950603589095628298134156487705785709094035240059816092504518682215764355339036631400617866373387155491745215200349351794540356752063548765285538781817000675005618676895107621610996983846366538423267480155187103377365232625294479232084886920070777983989793584327975416923121965480494658337380593599776554753725089354967337061910465505335977658124641203303547590685137924708799123600775028044011834740185923810256074916722064882617265552299019839142687478181566621519669785973145086724881341995285062099455776275829774860642158882268283363359922775758283289283577527944348388522733494846669842799762620637169654100180968067631792266816930080686682047978600234213533301071871657946925563707562619452989980324246979769550918024582375710802401970290349369460973964795775097584901485287670845452864558234746864800641905073047138427034849240371170580358749126954283341866916480728017021358832376150079136504458684454599118298957542450919947253764129966866426999247439297968806682291269279361021076442188304165436794075557932290186088612034389560367786456972903372377379615473283520974244927784058321011069702432556367101491760001511640334799265582721540716677986787590669600677851278929523053985701686024417772663873235256516024067884122954164362789344042925921789589586454538709764755724127720378956275799619244112021464457281246725812413516047585297774262271331312630488898649436608246155342706377126114622493134404785611345041889488515870462704062623738706581375342812688280968505127410951790439474317660033039205479586551766387339844054593853383498233165820431656056410186640986159180531195576554234090830080790594854367848018327116955307619808978645014921489963688728901723676319578905508197038243441585122809129727654987428890755814217652130036488530340047393216258160531849848012220640201381663758261994261025774322502898001773814292840831305830115956400316850250992046931686014126330473586066425684007409444308055738440401044409335785632030658475416138293824433847151951972447157286577907117999040198669965837365420517409488441097835833093757380127170642434843474891345244485431443854489177925547699200609756685864670605740231396319397921131983266686615880161900708112302169658607943983498760202711482605319795799546120478596471386360031725760451197209275174612132098815741485175521814156344402200578556096868880653418387290600754289111501588473582849217326154106244805003801198711233532048178807747076589939688037683412048194995967650606641962246128240837090066507718228888276052230863625829307973621814877913561985708626463007628726773540470840672462665878467973798050251414388155116250422164831856240512141143514923825037423368914507287768905751363348066839174747394353997290317015281683254268159796940529274258259778574061646584558754835022603053030098400657915003434512487446233384893601770047687274562191198962709048881780667172610660485044516748572911429647956138521829997442338696051462253559779565751672344416726970893030091276847414127897094649199544670616500102671141208139202358273665390270738190547557358093855456306414278027550776444450428879232776506995626551078728293505984065677574679652745706974145480158034058503962480960772128036712541120193157165443656371362521969475312716102645711337934209777429840496411914544606788661605367399547880760438461730589769491110816305631121900472610013673104122146996969637372167839418286811104827732540633056895858204897820466405555139339569803328523040974602437347128328949381360164265033096362017503638497354547742909846545929916961177375233719986860396781837765148739393852164796548631008017726180151104948530672425242684159802190036854210729050123967595511880461751076727818259049159204593327745977473170050000906116908201220443153257714423972217634630123259960611488731231460122112094219510254132111333204852420235018875578656162437869458880615955654956902701659768073800031124851579915998718297120702389008690898775542514163219709718203896966235316894916865889489191076266319772766015567971357806946690559120099452924381402331343640592121709542186879241783284428990104180759264690937815577770025656664988560493192225009804366744057751289718880244901752661472773672910171514757920027758094115149953596496095563705423288886797293652500746761763405215732417138213389983771393913551992795191397857368967224747709032256282970722286223680669371501829624528685244423760727960423280879661560248647249482421437922763459742331757171775771783125261559668403912679615449536045605181773780712010731690020482762607190547490468753061404863435074680433633495033942150262756822788661235808785823670430052647377938836384773402603817417838684057778723809863199946907759303291160819927597843671953377270621864710029650402613708026130606234363360178211736353267485612729485729284941295926143020608037972195932672208382577825025929867370143083934555197688397869603888430341192099946590455726412754430501522339800955621459003241698906341872395166310998456827216638922891685347261047441556976004326041298202368910439019010510561124462913503115740526203273714603001961396616762278942165353912254055528484726129863739135897822046547967260315881344489060879174787373940876291962420990219848605663362268944551406102272672839793010424109754562657433623524364766142302403336306783142956691856610033861722096946454246515910879957285846872876009852087464390761406927676433349285951062470664575763882896149549926296348054304008953613051048145190118405031621649486393376160423007199143752406844485388019068263810922487257758349704831963418247122894981070405324837642916135376668992445722917855232706116391841231450468387821877233030028206584418862017263654131868206940398107917340371284810440059785756715638581480641066803011775050485116031144131285770523451279351304590321099865492198427291023908031542622635851868055926360433679093042959014304757948261724577250187260193437022221466560467995949842746531867115886447690294461406315760029462337834623980430682699684884375906360969618849709824439049231501703796996050312697675801985387229259351021292941867951256595501626791013336581363936614969183754621985301001105721235106430358963812386527331604609101643294186103277884492953330728569027613278080017815773888388776227500411287389565602857489359945916253093548447407240577034626276740611536301855068040790326024701756729155255978381587625382807111217364217677452047062892085265934453615000649200948856706152891415687857022269703392765752199466232684351323788795637542530733387638500502187204022288077824249746601133187057612023913454263957905408619160650267974541709418433273970603697776405794945278616052011242671321836580657052393054388708104836060044367697082126610305236766811350108230518721684361598254270778604816997252322442743648422396727538275276430904924051557844326869028450993746204519007296647449864374242367275881198181071781400160798838252672304160695203853561445543421220655959380157728522165828637856231860156185427379433903950435204068464700566043931467607217041681800068622893347930094004531678273216993889465749237610636608208444692426363079745418394287055399579839619902131097204293319646764691198841271720812071654699317911310852706855360613307861726413939635352705951244059884038794951944744170521098731252206318015859876497880408281637635579023063161550527789992359992818181401620005299485816388725433451599602911549910787979976159591196671720077921789952294431287993173039613068141062210627455386392178556682098554398572552559725733664350746498154527482979226594155007677499963300145521710421829355370935923235379057102359749138949608852515888232279045117682941374239650257204413453256999724664248845355246942884521981581108961451788749880440577471417640690570847454315780840196955380097239302707130211815504434741133946103418403537874529090447073329262712776687620861734860799587002958689851980638709851587658964469279971277934017351656591696362194009792692356808559664107271359661725634368457839732459018523875925701112851804044781186723892557083268036124463988175634296194919658170323267930153592078964793469414469585020594243121676979712042312998743259073326473937822535545935665101752533263295293802218997929556320753402954852426409446669709185944798339480223727600841304419998355293743826742550402074752602112638460606693044327371438659717956457206319338397376707429170295390237989344171703776228374923855559952534560987268217778777551260164399538647460105492608022570304837515991577960340273661341697661288296354561496079243975164271760396105337035139066085097978702288383313959902377538109909385653618507883581976677012000957115893980269832991069110558078573811172522304130503331724661497810460737427095183307675716296413775908236041247454924141591969546937458210190857588219308538223394743908569633720265912946224121330220629837189357461058403062883646619052960047361926220131991352502832585913050329542978811666039496419310010151356592609360794210223754154720707374194953340469792440149748974892721533860413336707134886154306294376348000016862134849160426917448323444302849728556399951409952644612894914152882409504972194808279501009051441654460045479399313812186440424840364639215704173334349302121036601259668045415493505907352268359339201822281043720691614806337900290124494168715150754338223781847445940039158843501917807327649115262234993534661699436291914100007712067575392942946983890158063297388554423273478138295379363362944831287982254428391700948254323577243480218317294242292789423290263494379491389697324398794051967331188836054196614044243635407907511121002730556865121511928351879119494625768310466156513537798968498667089043388422915245026438700685536586406877208405581112954400773675571383772119861460916539734561357182466102218971772752814073270510365651130770944774208291645458929451340614875742110572886190510230397257638621863086093429810695470958901502793626099212856356449445334318213387648245106100667522745048660714776057009754616717261792813185773543879387342876619417720707878017341282159731613453389995235101037182595456677705940290140033153935211170409361451912915700053939262611076626475888346887611687958905898828748815970161962862796948399030427007062555139087724449689390203368268141226378425247019722968965014477860666950456067707442283712405702108366795667957578400942679669372757303598122490589236716395094190540795331856224691572553503650699188657445001666810215135498944526928017633783340252515620186989242267066863039525345439762767112038263866931214234673414869669551094725373875206900882685539600511105003384198912722412430263249295683097221192717780902958656359522804356866652487141167188682698214288053183356834059607545327297419603937154622479141528415858133960752083782259906739035991447995048035576235638482811735316047609797928468713313705141609484470623483387642152438600983839316179096756785461244713787901389453200845686750122498663818623021325461294811434192324635323892767065321550559789419181240040760886214774142640281309068028465977316939898857096336314506926690208222575762966956114573808136747280696163680861197308402564273251661903511721310781334898975325746840495288191542939107526920177504070235465029770335236305097260649673572037120210617873791893608276292681415085908124781124153335730980940766467314592883806030250856293328816747138576951830994292795225263724699928795116979797985253554135757958776928831276424527494131556565133110540910979331639504706288211233357988930625810578048151701359650857045053613234197122200071252912664604261908343564204243145355309337773499303710731657453611207037392229530293222383209949903779426947169593879593331447273306156292813152138590051728820036129397821221875314161682286633663904659377674114102723187098891851256429103977074434646224364841912833867376103674914489283333524513338281652701559282190380954531284706631259262265614293566005463391939990647843981468647526703858172781219091304681994908032237223511560774682367771046032593216039362935660841607821160816694231918541483601163703367115385756760919618089838824358751686514347829175267114578415373605918532405104673804171482652525863830985045775711726875657848865868471043947170210742873034172949291987457910942101273432506764985593369390157025226748385808598965566879224584502260749035105050322034127874845325553824869137177625075027550800883002446489558898015901151510619605707013104299401655791174871026092244393028719371012158704325540997249192151091870848772110026334004192569613773709181348244500859231099603694123143783903725812975653487520483093157938360813000811939153157764624835665061341791356530076393098020141537716106130570769539274937451599759590086654400697797322744744720854538040497844631133661660249249935882099560746635654273548330868588400964679732219574112464312626064248849678738115294477846174917569186048544556460324166687916756672660911274048572794987167306886901428231950885783076691230898332747673565869029583330564525323479495023237461770945259708276954409882225020262568380772940926662760880695633525152053866114374852530719330637340259861140958611602956449459176081873554785100102238151035449398907936364352740512883906141818879433224417804666749948405023315339301509729013622384720062248663111154707882661338332241575658333936445563670315261475571734467401279026371400204175786699202653161361917309499440748247448818817988943047950664958743770798699188683999393982925239056828009461226443026067010997708861770321222043141088757712991318442007745472918089798019712500309193969572022617312864509024462072103498773067270180654966445603154256711982194946347074853495454568811311036565188204043914447700957430272340928646499934175217148468520740727197987094204377133667364872758007258421729502737262756949113834335162285732309631851291454415563530935757506250502013513997954352089267120551977488811984109788630310225545174832844386291000248122520247898480023113948962080706152218387178581674722070172882808845079979462447130980365798650636344978033513160479012145581383706865949758038949745830806125941728798667772031940814608000510888159903417525213934864176601612592477067983375335927017089746888852373254088643544540516389587417512705564277144003557724245205578499564992053102063452542993120593465085185570986087192558271300432552975884582421315657396438384708081922340839530769554706056716861736885780428277946673555711862768417643109342808907183494950373056884136801479171729897948937686041026546354514113021447504825704823364624173617881389940036122704842189791861511571733511849070701266358894011122876002541416005231231691509163555336119567277167931534098071538481063323806904971344899689805061576097128068704317076352839556086030708041849279882414541280390180647208342285326377406762355749625371384897250950691594223744848395462187131807676056741786048873873665635430744182358006137942385197328313902996530843404993224964958392941232690845558222728847202252382578139625680466823758641885688336264856013055880479741467951701563399968637044574388377866730709221296527853387220636056483270764293775315594241589530374454163761765835205898699100859936170568605088691590868606673089289088349106317352182372319452527770919224020470988935261415115657354155067946665442382850738343603427382698869155785088710088747500508396874307237476692545293295866277517693659384648440548832521819000898252126053466695252723898585177174325707997894055815329404716077295827982568680807890033946745827204025350803082393152300136191343304844137203878691018246215121163260677388016638320542084902240060242398075887902463181696897052585063290060862625572690283493800986511397971528384949078759589575567840664491520239273952212036048508694241696307228778510345165254707654900711223660222783325320374910495603367557297597461362269531480166871982656930708849279865484832698339014638756838614555991558106775037933412073296515519287074795641974188992729220401246865869685963726400932091977601711064848482686532221913338023363183849964812405862634657817440401606791970223183470862803834484991533240118811729088099550583926627770403163695781090491878258664415370394072328523470077681883042695622717448306430377743631630479969252801373410934348943438089662972497747585534303278738186466698118034626189776916511593339566842118211864762109934442446565270420462264624082571864399409244879283335680241368263848606992191965478838735186248634964136322507128776632394784073607576704341889700215378903401325283953729499245249624857732644913709598726889455457558436199291830169153640111945440089092424468312890792162083072282509868131689511938908534801036912895149800007167889418773719841130084166713036786757919105942359153156346753979009869093413201667606039922770336625842271178026602807661171856264507014387463763720238036492107943003141269196275680722511472953228379020707713591137998755403520379768151300192564065365749511186369304405806982239234175895500671387649454182883662602569245578855011345710053570523002358984775469232152103758701453185279973582807119689282671603780359161753340058755226781595363240887942757547081468719139680143685624643772519094673690456207950196832379217315960768186366719912597550191060325051893893058793673172765218412488472518052333200425100217315968882171059914077715903937790411916292668425136490110933960555863151033549069346088623367966523798741290139207107994161984686866030834653526422331847817964901760687062060117351942689303069091818412767433972025788275287731868842655018368909059004137729803089866018494552802035743932159564378468331594139017133946276681029483077297769694920988268793453636811598740867670199783690312174991773476052892207521540581366312102439300827286779001473914970614946754513474602905770425328832857369646859310950220677066627221089943464519107969605061245816848415392700321467668031502518743110709507876611663137570711360921152677533816701893627949883797724207449328311598301239557429726031720716994974232020163279176380729787380052083633182883685654090923465099616689054864969380367765700179043118422643810398840505022546077200288813213398263643092615286799968583229263191666192665455907665757456765377407527398078197283053734526387906221001613812514786577022140508147456503110999738168923644858109405562042705460489982590284542298251185732086636722893584739404870948654183239380919051559397091397098958474898820760021781609036785795536665180879716820842544686107477467293381461312347117326469632964064203086233585195319922607859889467905849747594633149507062753417824632235200205414418578545366388005011581720174459195996178180483422496357411373582171492075201045405104022106236255106649314370651641762501031644062104671383074892174601159233873767738850336537157267168716406239220077517811804322242366157020430518248869822162498979940703228396775834414057734287823635736050235000845935986997336079837558848881790197437527671591488446972296986300151490794113312417056950608132104851411632401463636410351010803188802249881755970642667168361208306363101433195382887037421154028261414536374016588976360668197294520075255855872632258460727664544126715930465263587906851936421167392424298066714727755276573585505428753930312583573522464240834861322471750890465279858190798580374086095241812895890508460499667347599013117515961108515037838516558712669197342208351228413553066085954512623903853747366089394266520764422937124105038280338564485911433636085823426544758101627859560882375148842764879693598838048841672389188376912538824082243312544398204514957228993518625108135445762830204099011078469616793728936868906037244066552214299788426873287692472978783156225689623527830872974880661618535419812275677206975518891621692844247757991795958662748765059783366378642226614303657074370288203095639885085938736784202414423392688818579470975315482243482995306153620842203147889202793559723594327798406312800260933116934018045388960951012059412194836474945183777528717479044565277021391667352940352003910140680247230739577962616603309815452584491587651671322225341157194836212536035436356082972000124587127234290455326719745533630090792697104430808112301229105300642885179099051746173896536522035386545126198543937808446493986245496369698897121466731535200926139724076104906177061223215682010524526741598699705484694191825267940121471651065659936974065664372779031305056010311692965337011470575789945902173384596233996217976126957619257280105419398294770850743512781443967909479670832269797122941339111157796008393129193091791545659526052233444691191600770902965289888089596241567028370618625276980077530825513303179240925483807512994587193816342655271170619641595230415099112393447568201481051032288387897952486103081186859323952494468127598189531867736578854228745818714313474171836196551965169951382947645300709862667181197995934947777514167938596713030799628122111499962390282405647325283172994016834173626503471041961582608790343616075221140426961094989094649373649522553106353692438785169152735678030651602184451929478957011986573264447296992687415558075450040467055724357524268677448738276917014455813006222965674049290651268304125189898540938206542703980817470139504665902045646821241454905001255048594971050622851851856737332100339881220456203129288309325829922730053320278776527364291018024422480570575258417572686805526701788576702646102623280216837454581274343508233967479516913114355934933068176180258752864794073873150447997151906461962917623726036019056859232497594638546406921497386448570282941744142132495299277281805615861983260243782852198855754082819989041607912825286191205857981760923848443413297997475013865591797624770737325413868181918054082254339966219919312073106270735195429280858461443200805020629236230854541198968340344231351861232290140174462976169892092408094326894792658420250939006585141684200323397633579387412178387294288810303640329271896777967287680526672289416922132217150340415386717107291818889209575904246599425611427034269092221245052564900212776921274604618425180588821231927999511483097138979331259824053526154876089751767369879177861848491412565816198410617595297898495694067755283327612015149181906938587179366265262620038017652411526871970678214099653996145979879048184428807778782721943785871214165348810303548538270784369409932876964793121616543815677860447902704620795420449980919643315435572682979227004997073842267448732680130529755324885878526449950131436480706007645185558987552428781893851434618728311821002725377761619589809767988242655092049289101996851177898550557101372470478722027628421685499969583515656889792144313767865731904559718530593320107633921608411188073754121755876137633632484704001614430710452147898764746180077852275846427813089626007682159877092266201418542907554902003692457401828473617149799505987168884628312924050452172156741843429923183466513073403283201892576057644276053173899520725375144624774412672155791892315764539964506667820375746953253471323127036000828866562104857139592835819334928887211287203150722913783448807025267212061533536946268037523931857995657558680756160459819057702968911662130019412980126445947295902004656825989941870308712682478102133657101167504197987876567255747388008640081930506769835936571698076257421074598346555826753659174281390871562627442634596835221478614486740732783069652285976442165700019583876377368389968158724839812699243173284666811559549048931188076709830887473174508317175283945520613974605307982194540699395890310781168016401144483184721074529307695047411777220437109633231566634647433733467332739390670999977530409368036032732725893463563357758981156741924763379459507725148971844695359412468370351642938876372742794695451765848717855847309987416730388934659354156609241242292008043244866073050700306952619388782189218276645712968867390471326523497708869570205747209067066477440762269075677445167106078034370325636541345814759504681052007152760933558389089135844534157852739627381945834238215064658460249575811150694900885979282380722825833562319527066275214111759080550116004031546855633621562472422678077970336464551223639428263818255219164092552827782744956156517530113284628500875717440371738172185648340241359906065364290899242429519629081454133167604030187096328282856004290952476327554514498791055759993193241449526064640164485115873030539772083102438629730138233190309184139641014780408454345989274072267869922415933336569024335899670176664362499532427765605518194280261257355866986841317785181756519315309276137322043016443779103425146895240005483419138308672195584299587292513091618881084316947404166945142619032120843527011832792669505523501878219958834002007901385406725532637737859840382049097841566019560678656280438079624960442956123750595180955271812937066288166357884789707380441849046536346645714672490879515546718103598117025846907739048593242663088772836141860751024646869364290058603483271555443613890565557653575917374659318621871154296374482877055165268898057999705140959005667279357909547688755726857455878204482993660659724577091748872425176835795943889621214777923880675916730304978462320937081928099271528977906436654269619354190880591306698431111393338180442383587750558478034378576588777089643331995564206643755445643479714713463343658375918699344521874449427832842074012919691865909708284485665799324967583460649839288128904409816224406798007588481865850776772878145627543679314304979850409491742417096847795856337590580770824905307554815257234772392230246755079949179193561581218741855606964163607253952617680690252307979886375642585290282219766663787410497384610642961701818880440037405378067243819602908572492472340598475052136316736171581705931781719001711057301314830185613041747739650407791871948141008818470594003704325240352930272294837757127356943049883191826591219868929876326596157632360276609020663632777731894175790770550148937865164834661913492878127702080909576887311874276152376892436286590777215859797239567584800892863075181532463482473103700722514163747681110261063666566561284900027838219060955728128997344352730852530995226968849151306796845714464517705915132090890897864206860962328205844866571642790096364539321692647237330547903426790066834284240207906862361315300610052572741008681497927855220961044131635309014429831309544684843757144161787859437568828179109543308247721867931150590164219477376084933431121398544075552795567901200455134502522174565959223494926571442751289838449639937152585047943749592002281751438513264161252405981947818242040173228881990154186369349639801465286040024393551660326576411342746081331213366976712912797449652313958719195531898033038269673223598030236827980322086526999045155274433799971896466035629946812144909510215583662366395964622661255314300576352860172158586329859173675628090075920701431507803965827017084536810289288865201512476126896218750303681302213434256250476773262104296988440543062647216010706118445921198111650198405026406452547409877334643653722234008587245437417953372112903697209400867851868898656907614816940705652438468050331295073574470384488045380602159432999097037763559142701180385001447568268961180743698635516467032876150403801765812765498244126426527650325519191573840727677426978547474951714560865879401068961107225916074926727108911085973032781552772590536798095738823860230629215011024410475242394858742558142164411438062012329548379692074768749020480649698042949525171701438855743779424634168455285483268881512934254065802105870140603107570145978397256448037318036851986039400450269375361534267929964796963832023151221697518175150906239714237511424718990271120839205522835581474319353130881215555537765368639733796023819169275935682159113336312684511445422130001004345670259179600945944594398048253696143926120437097661884336429490625232025841544806492152148585209121147887648863183016449854606943697479960000486012162398619967218694505845670053697074837495131490221867939302441324337846317192713404193779008480403023745258962850165855540232669012216801524864154576221180002187607983837411128531900050614743361479966181131542441241346108436442298556518409385097676134620188521387696270238808084535087618099889529415727831784832263507669704833917282910013992547997111052331731217039873681042084446157371850582266065465849380542934624487107851722873923326349120191319610259064530022068244978441945655575929411338464017635549245278952799357279169192867526344346464230604889509469680164733388477540763552355068916299370881154414364421988205317935075923834679868028065447703603757368736626306008358983709308549795684155807082490740986485800654904718174428796043697768046377989843757828934895979416571081264737794767057949759252727027076228618241341420673168353743111716070638490715268087117398872983927310508580710600023021965742208833905697584422667571528955316223396780316897738542489863265331849310500234833199680886877670506440268321405018803857546093946776690021774009951033681979240733555577978869630119501206079150292538462043143210172975434929703777491801316447261758898921257159731365734041297524259884998596189085410592441418763426133696329119719734747256286496598255803965406907469321049814611512611093074329695112867075429508365038435144361129434879605673311265278617618865274667015396088032665119465773837621853205334218769156994361097594787780499105403150362393019753256742884238776240868167674933061458595062892117011545827197472686177935200501022892249050640210151599232641762895994101238783519118764455858926811072025063772241917235892655260485798521057387996946238052309454341877117795586746473032623044237676823554853874822588864529769825082750318064534516961354819895695159109252354783629335013219938007968148625970756553185078221475733382061418519744705499565183180917638229879922462685613609283802905694782406863444387189056555796028970122763491297403389139362808869797812005423645928755621496668702996032169984237010725050858329126684230147649029295304006542073562995712994788836801511026673476398389851673022539218451947018989234985018600790118408768453056141393213512161184568605459285340173045117542654933771102576863808479304346022160820861925416521633790424118355163568065469356840541473085573662173679359620717382819394647988491148280443597030616431084051259563708168208971248128397381872474677612770902787265281880492784091708730222674323556303197998701157470169710713271390716699852170489943927966528346380050923968711154521002195545435988157535168135048835590517333987996543131380516103623422857384298702855426665927518965850608358573349810257747499654533558997055986585359994828555413694624045510678693353563111009214744946300502039014353216109292683162201179344791483180731369005479584682141962190098077459962474010983291016701836046111603779719334141921202467962050975973478327069236563573822697423343957541122559366963484499283842157264724788757732374230220684142535288598010776369638235743549186097841788363578965859821124307004669489109744098655483332431835469066371368520942945876321866375621697013205514068809390127703609190271486219373894421413271645993527218069553646525894657143971881771490181534771126143679214174894880324173705596885560150108922719858862744233512028287656648909689427546399330606288503661907399314763428556822263469488224774766672582482127313770992357401656224961655663866080375795181474447934339612820204697489659289441882657071966826472422912160820091974435129853165945603589601263706906780528830537350972722258981131522557836218425142011774602417000302142718504681065231012824334432041139563438680119976947539419953038480699969899995529264816652283815272860150704004288227180385543828622862689689734862516902817506685246217956188398490220489310466718744652691337372788721288504434917796492830463078918575645374822871996843285800559432664723917856420799431416076885814833788358654923805226506094315971881346400532444215040872437986751745655928812299141656120327837623872411423138881924573364248033478725681925159865156082504296289563663200628487405004943401992990712938587051157828130052975704836086033948945946956511947634379878695716404438973293797263692078342535296432523882348764750994108248487747524382441277194159564654142433265664620872406223861532897800576519988771398488740661608280230728968060269922215371184696273912140425242819584920913543187387984514106873138889000346737970889011305729791727943556911636368060486086785195356805255796389106842862300713373086352397559377742190426784346683750148336602207674618489343619641958486005177461451761121269315129913479440745800618515615754923655535146209424956683152438587256061890535110893370418550969828823743531193168970874336895151975986374209012382193164273297636216618916615985594255525502264893943705362593746277076411035545083124613651673426629936282862128152230228420897066207851611939521949932226691969562441853320967733114125654953133226266922703099672866417489944962967214241291126296384246213266891594474072433620585161165792810932963145318418305471057663753645507609548283913560529625664094364330656461602050695950396317202905926070878382710335868417223560765764445901744768565429251165722328845753684241418989353189839179967038388373320107426918170878456620290000902406989566579904496983324670300379877653880467684786168485701036767894685853652222406290286541782010729274439437049617207612920440374607048070430864707254688982890313169722796632181903927204186979506059537092413551948517668927989829639629577678003093086895771949625356574102483315018750496082102931729366115165247726771015255931508225522105195056640762604739530399978835481582660190119558945584627736241246718973858259293472169694191764550676328370688951766626493084250280009663611112799286421872310238741985910027946933893908947441059288914027332583693605184347751352137624035863937977115188576703392883529477109163591944279542072916513803379730986606498307280723242344063819178589206473326015974448475691485064855540692040768784759616815923633568387803974296656784957995888219448896237869566526493359489027017216387497097489140854739751477138871342286744013653272290416978927856518116545546297759580208946023816139359888104753672372187978976687846952341613161231939136712892550923678990815144942136586164882613688299998125588537821337034307591910249740230537442871329839723891680686385351275273064971059278698985003550533386176707236836516164201838143330558214018536845070030444326234697302871063557966376137179941848361600959634182826229333943162397335322346501726386893381858249271614571520387891052001667788668553505230915419237822552009891455095572078803658350276563082072499473599905378876195438976751097405491639711597253627647402760029418709172180950713109162340180668167082885007634172130027534475684515335629693206595961030521812160298338102064254070865295866898406990750377409903266657907151974605096440240822793611686036245519135943395214445950997205525212056889211799110768743948744059897585232368840796799184768334091361914198423308150064046442125333249827208057642299175711335299666479625238558915466079575224293723990936065392252456990049812288767702533553998699315629864252121644638309373522321656867971732652348404084568617481247932299538181154715988768335333833057357632297990646818732101027166027984016667350166627282963709234226189653951898323149732445128642619137655721472735535871201295977259114812867445115339600728542794963065648175787372701420953556650652879745108130772925194871902038828728084400637281236240355393821558051231017865699168705903865566041506627794713477790708452858210540989926851035403804419481636725765234728033155836749558909045266222539385160446693673245409123840892360442441170384532052115482434207599419259943793049962926878554817610868102097087708590658959035071024594837152460797858019511028012925313298470705499473639766285750400977923074983334280923419317306819414768982027333497207328975862487363922744330992394595125935177914856435984905008557936600768823608602424628740890708884141570821633338522281769164274441544212351586097671385493319683153173874217407310711909216651632545442270867736507560617971574400852055260364759046265766524798297863877749168846917856388360038641641471311152637003675778580691536709203730728233820891115702640547677943372433220253274809679232972375337012631976131813087406817892147555766270817157679097055280719359097389455400440116925963365363966248937983877117268896057858868095475471858291747399312077607884312996348637905291262263889389175474983949035840501411499094356572829865938981419318370329460734930627908349657785458195561254854731929856278895217859771343219960079143539510373910824613922445306567146406512026872847117679730812375127177971986964639733434998185308375797241137361630890464808444180819868106230383533462733625117294671768542292941632330052463166786759102950606577098211374542221790115093522073001551633571717159776270161269059302691888036083347192782133205383056979558741622496998463419187178014309286373605060558300978804096199094891112334332113669110697845721245969801618547100543526473969449359929485610992105979522428307978812658819811262366844218501432020370232634888701752197060513874635880510252230130770179667717035930130263721231235635354699023683384068728786145789653594220214044248921575287220381734890158936661785399939369503868205574675095697563855303660925237970564030402459794239098830536866306142245145309412650596158229404915621327273114120865515238457550759299035917431055202094074721862804119827928047533959045128324782494151495727139935923319101569815613978439817351058766461325256012073174995530175622839612101826986027574095282543235894456440565218134806296041436648096368057440312015526365989753916620089359640156286898139273089381713646486975279630749041778215854935362780312059956381155706823836702037932403402173762476503455423221251446254280877635216506390141980434752424230253327505914407760999594075479155805628829631446654839064471987410237221298582014444240911462490549742245988941966239301519768558876149106890379658829495641985250036297392312034444461508693719431729698160583238057606300709468584482482241089921458022121538567317294612624042342279237886879579462526393920268083605590590484232450957122272378046846488556470689759636612943499185147313529647564448773747075576860935840942388205635974498682737954269498614129598352138111248289817570549539194664206795182349316120573704042080246670128496249324897529721766855234255553284111500898861184310277835215315312457964151038367862138043918658912431402657088605203712020814176121231604094274787774541254636576193953967427119413504630531815032414020905781012245498724392577931930705874393175566431407733775258253419377322648564453963807856864850727182333253396761566244096863564949939091704921990055408982553156998611691599501635240106454369458518654931498706472833105640618064020747394680706758748191813818295053304302387163402556926349290748139605536131775371654785052143938282058669656572324245514108106239510655348889751286916402805406264802768063730843445010296838531736712723047723212871478448661493311071139650623278253267015646570578008858253548736046948146209632402413132251065944490324964074017895516543891819167635090502167310756795443736434507000030648795150934219797341949911414514245193053454695900236072941546702412199465517267379117462656301070148449795015373507153048932425232579298051398398592394720402678965359100501154000919359160448611030759088409831800697538814349280697952418133213857453095002299668353060507318854682482662611953001061702624076933727984166910986551905735889962348326046489959808268670194021763518733472047814337160755226181552489122831920721628565780897238713809337177550243428516490454068074927036105889854247880314259917140277045592074391915642122453019364875632938065122504846456987030967365725774453897543909643239550876565110699560149500323991647420844920218133212020612688097787665818241488331942304704566438049537340002034896379923802457944275874485260236157988556211388888631410845976244964708771342856478530901411045469384292825380251420350198442912364233451704692614578603344652854369735332297034053741485497012449757351295826163884578171408505285230464067667239349078828832108990548499891865151524169842402336953413649152528221821580770669091210380269936560997017936725924135942904076396905742557286450900636781453048025618588620199053994566291169419524239813484323531700566906280471823548073306112238913180896946703942059269855663782494539985293508955568973860600003303486157869861964987093686508754086596466307056315864788349770208767341840733750275243829577591539480002620754409705587240980574186337120955353343095762660380173039556837232250261761886809704457442425014400702027047650105314986396504462804023612122545069556963325585304800736437578719677934799749021668294220038067380119392653794448647454329670038045282555040563401554765241030821288154107853607832121862832725571043407255563149015765004893581667656887288174450461794980750404510040319676024739064988035621795465808522659737739452636452264107647633969130912888474341330377925870015716052051120882591018739190238106159137008438985617136181751287493506746939242366041145650349692226608829274143197515882947052985918791261194653545216962143909654716999948625446482628433487998827191358060538470412437230880416394442064558306099951198100886560439944641962998132459382751190145163380693401761083142979770900487068732479429371278420771914625199878065522671009580620678410057247596551254819115148165288827888589211218852463919225252417699495131001381981164605311440882990152524025327039062659545274531457425152742890530037807482343484740321867238108392582562030428085571896827242191141849065068588448609101262363678620689580865584445894789157550278489357680721449079852446246472706610538607723434275921896235548302458612227352530823074985511425529562770546147419186663463028222095960385536512702738757084153957390663555407070218306050149589273008844123340539179446773650751106137538314450892318571144798363746421722722682281200387673613148248170791306596669773272243620892629747517889535516073084057549901118756513934730263627169223105861578477354453447473185474219161184802004243739828499004325290029956757756721299928571854424136042512293049034718089266154397641133141269452214836752572350067078652259942684067497341405949906848621496140335517500016249869537900957162292149057550896667537585469131767882589426357159171004827260769418559208178634953401738247120755920071138508060430399539478197314569184495907367359961489956109871505191029085302768847689034386923645723017066869696008324491099633852346759514992865509344130034346830717936715817683709595868270006146018070277042736323644944188114009862700931842275639449307445102267691325148438404211571427091942420598234871144817374066675700435752747834751597123855856720043490476621098829403112272926775064685937159370162079271628826991426527853742051520977101711025581456320206565783563867913070400845963952785156787301649422666510583954032674648198345404194096109289824096171370406722811658219565546093752132038837353607042328942203079981684447187074884890752458924585115104166055137079923115467552454923175818653437204711946834017482108882016779237756941788688442797137328990432597991731119141709948795036552494139524247452674892478437415418423151096309016320671754995425047957547638884581524272950034267901091088133499187101734855835165049551380387726400860097949862700704395373463452499012892567114509046200427038421229537059634657707010575880524498811469118647541017236888826832716637444139308283163736164125603698250901906703721142150026826731555057920637231140313361348387198592702333817650354537579804190030350520057362485187595786564422706708368140323370245474050272716242500374244039214189252590233058198721740012088849423523294299589216117546976227232357734446683588902719143267055845305526400574940131749609345951013896222140791819389355532901825594082947364909526555483225539611328451404945177572201293832939283988699998826299243111391636937526815101034335172185246848970710635175361689069036614943356686955527572725711935057864099059511672180784790699911776497618201025275224624136772422222542606681802625408912270686442371364711956676774959294638777448368108414363366434832456389984974901925506629319036807282930520853482440243048844828047444197964793409739695413517538919107860415760626508181729274511731568051653022848359782425810879846178476355033787121322101556959324691492659985193853146707954711311695617369859869707878014667011202194009432617329367729241022270360727805386560489308564604029583799041414473919911687130806321526311795344179729649178637602342513800858520109573270843866355981978798558548077218261133709702707549673257307111067340905256205413395773036455988206101401108112439614372714089710042400440106620280541223413388838470945876043704119494874601919023451660902734197873483936795938205644097636707925270141271094070176354398623930091533080275921720232054628827389568673820030939556448050135981323131050064787997833479146213158208599414116468686433859890269363252415780009165324860352716379515295221066140977296255999313437630165765088229534047200923076454565918450003184082365122400872304083970071674238665816959186760923521125187330176400723647909656877158485661879916874346678856591794053475578836912624716714439079757101832646817194278513844078086889659844399431204639005481459958640273292654103976627742165923472615919172685491413254843589609644395401359791954070504795660996561564154988309938073795928372319464702691048445696864442059595728973366161260063355135933141863455241425404522872001358170484908196377366270193837343322758547591124430470740406785086268120376557154991491413529213552118372310306424343657517832221675063202736089845921927841905767860777253734971873553373525940166216666328186175933321033996310781740206389416387206528811652192236430902925052640187494147656280478409617751531623436051352140522411709853361871705926031920141729355785213502957415082584547112702929969500615734060567191585349162312884486630838065381811498359662713859842451350473131663535748556154207209853465936504013899232362761666195997064431395775195959335412076841329423750228695501493057685661701265128738972648853049348336652176068063226771961202562399161730435014070391770163202602879725091880135119967789608419719666022776595300256190392774581586048347583868813966443321725374865005731105609762020029060381750288684885223722731381251934971517222406748836327517828472297258920933296810686278962327111182319292847475651703099526868351586835787910803543260532130681979296696660643161280434793509621608591310125780278706909719964142024396917709389515879712401612489235032739632052451958951807143853812423361302508211620086002285024418780740398755622202159732222052947691285830410531432882719780888861184220599391295166354202393403859914451270665484484544832981054131247862544875692133591940845032561935621880839748258992477302880884617446602270649958246457919186792302383539665834032333905301156392820435004378480621727664049780325948348283810631450917782400744302633885056391848983277638446846914911556404481795186989359437052100868971015886137583025792052338034264437147064631667318815036383023595012556026634209864852805601747963567473306492090817483228048818538272561425520054673756852077014364631528737229902847657128946840116949269000988707110390299663802715608882051920313866785870225168228940821112866451126265283383646992821712635485290605451577243413718733917378539457438691660294558647491038741514174828090901827516776812273272178810613966452083831529508123167293759266522981055502582474470381214814081179952239054510161613751772714946395620833600303319954775616324531741233654390842796589249853909164991797512024723520320660479954835138472331482858638240389716811118137569831415453411498270170093474046352609850047815276151786487378848692504786672342570664959674727020694036458050731197527664127423503352963972956986001095793041926443842837663436147228429128371960155488898572217326885144421298021767241304779728268172255213221244863523869628107829879599548558951457740868393450395138513109428254040028720232365390882327097989745402808127776594174750422651669081942330553783547898155152991761364807075271993954235672456976070217299816284671818646692973592928715677192930315199205743089765355136191268359835366253809297999685354349206162140979359164733475324779136290088058933036565760590399882616446349887249846172144879432036969222229470659604034494933863638328921154378760136598426979106968064239877208035147601063769367747178022751125352990596681808812407813210832543084742091328744801587214514198874808680508451790228734371704390419371413766083622752250114257562049286822322654501432858311390046843547802596860663390675041068778677660815715074732320473554798650463681201058044576470728680070727932586428143445322609009674504763159062894153963271677496917310381095737800717994307155191815722314565056633614166027264979571565185591967274510862087709582715456487260273472625877001450003593972939055178093710935420907627048230234379634362585268230709026791354737742254975041200867613377929876902787847879380988308548362391753865871420432325286792596611132659815648036951206858911825022009072591681702237319843537612834203231792873035238543265680069560961513452219623760612567187439997155497298861548888853727326721400734134613927144250274494580666848000671068739129252256547334728349730061496861736228453680718615296483954836940243009925000370943990717633843015592971809721864694369101163885712181075282467172114207538889948086587021121938748007742929057011914331056618583099171711254869308382360963619934428405969308850882646654858828438323488465278579215909621427213899743709501482338205419018141741198780797566054678196712887458353976813610222635196082079029055022223472338690875081282736411113491332071262732013626263865848077598330978634852645310492553008836200357706506974989303371882554172958959158131416171278096478000069655306042085593786503773602432918085339274161849243774082741806886289353995116498479809085838705112125440672588861708798377418938741704601631775782783336763493689135304699717625767233248227662521920381396800468428161110348419864343383603995266844831840467637983055342395588917982662983355366678670683212388360106606352501936861825497596255165300684129552598692574253062734660091915797217748385681447453482895050334534808759195695659891821375208859964634897554612788638939762374558734879033446796355482359613719725731050024580245680047285176190208218755409828494917128896899888827327490825108053813873151836531808315343733802442992170252158359169346863239840017158891208543341074273370523561099277780145222953968415778959994613976353150608667285463473720853950860505049636263928787932870201390753598731817971594821199360633108607845833593610173585054493875111302114395993612965917968913805442771899248505546460608474481443803136602478600465492824788182922737112928533740570037534466704091198684666568470620136753472806615369971609475830569138882216104148355234747460495754900272643300713743531978015582109350736847748653943794942253159762546849497660556201978530803513990262587404600258564621590494900503509880850000539488052884476876206586502948913841200304913066078024351777479564041189835815408548114787504690996076763203688849523522799764502661078215307431437770148571279175948539027503686702324307564781508069630147229055270957225171065265408546724779059044891437251869405466891068229057629684730874115077780834362322466377400381526867666177114000137459835538767695680909848510389929370459893676452648826455680793637653339460822290867955435985685373559151983162016495726480226354656649089494816449349653870078163124305562508402635362680993257615039083281226989468534330090897732132714019573903511240175898033103118055197626292567478036189149271924768260949943777374131791772814326036261824013172116387239537244594532808091939449817484170153148101341843678234004279828814765927384791953904905320233129285902558678473872783022011513772457458824777067660582512019223004935450279004895214394723209027808902514056023308555098348658493361559260219689467172576828131734421591869032885598761156687880399872271572906510468736699341270440638792796067616554311956859116052495585553798108104925588824000899515371521416418794533426729255829550908448832270005502128296813373490209477317070753536396054071892194192210594413149608699189620294518571744355660960402498395131555708942239604189336178753398700665401102742989338471084219345716504961954158556828747013270759216154778769820614776268091312985156017414799400956562713994716710906806507281344074444128941624560261380743611043059237367366962606699800309554380389906525760647936975360094430510735151146633822640161185943335983324858463823727294535411100611678003667782386715114091109855276055469009359881483716190417001010544380595406520906968826981630388294627518626209127103173468268810672445379790734085846104115276514416445258219324686651102660338065847720720345525624575807554994686426335582502724611708872027576464937185713889327773354142543090910083391898845786528076799242679669180419263812482692473628707733523331060824669189430691308728805066677026891790297060528688285131775433949889120496950953855031556407346907979486353756409312587175849727409662073626873369678866416696703831150813408140785156843249638684407401943580584461938630780728176402456015934303214149592768156721542864232743066683402437953127353368894527612452844974683901184882219720373812272792722155042593859683468975523439953978048320756505566275328794521955122038736774943486251510237788630706373860418599351981017961218377404067341981767436567583701938326552155954278647517821038886804616509850592400128912317984075385341274579677739010227952372191426005185893072305873858351553713474003372740349608537498068714769893852392578113898032629638773206772875822166183448706908224985946472866592642055960626126970835821118287360810875782380722439938991339127696529073093556017264868173513015757567798070247834978487721741524189158201404297022862429988430195794299770412369254029598865080945981991961185851595017198722119105466048854525976273161322440875479502595514480484696297438723795596254896310252490096577441964976853591462415963922099333148420147427350246132392809072167130458458145963808834574414188209828239717444396161876440002821120043410287419864078938801047692231404782910906282288462762626458518097323713720102916436506743616768498801940974942987312568241388972540343374840428565373093513092202724872921911964210486090381866919288981452222990526874791140000024167349893988043389750662447041035111655467482861321605113918533817830691529888295887780288016961153778719804522069241391611750849242390817977479948730263304348661199985525232267638195824391963947955249310608038217126180687457516115901949297525988698123951383152430296960299827582131109913214340179296579222849386504025267331987496577705709982904859945558004025477253920342649755857100561012624923990632739581882740359000588967763430923095849858486316271602971761931154293969176563213565610758102181186857136604887568715197841933060629633949250312807340968554217312460787520687865610382287109446082386170407451770707677914457771980786580766931580867774602277430934161026973652808617932347494019912761760000445675836369200955465632686825051784925018063333624651311522005277402426856330296009964804150823564966591590633165398154754058729834568697270739795059282175026432673890848801481508654596471141140382479548859077370264950464552879284168336024704429873898582549850051464964054142858531251596470308524168738577956286598920691591747781102926143888627894822548279049670364958974765008272330651772185870178239626779336146243934057981807539366423512540477223199128401929239850867571186251289128201181279441643446525637215710476634937849323998044927133033154735330602732190848309493678849161911453571071786927356542249345202905415667288609629299996724988408360572481790844700229889755317188614679077430790952059260162871843481893720233485880800484828309966957867687604292169703041579320232613967270718543811991285445911372281183878011237199395888425103523184631462199375240963845256325590197662685207233474700350779226585811939804552391250477962760072905058571208557970751946714357978554017039006420277591397362105891842393311769765028670063449384242701822412437654046801039492703110897812033089363221582796926782144687952945395521237684337623947757072685060509729423472185956616070529084296045823753233369257826796410190069773960992687937013489708438155214347014164371878309846924157947107843094325630873853192703280320162379837024401347041058746762159165757825436442448467557867477898266714502109953448679361283307729261573856300542789804514533466510602267821947760346397860294285871016848096288268711726936880294276431414327786232925291478578084428778767163840587041660704116086265557406766349745438824191186738185001242462419243404639224051433835877910646226140722283095442572246752008351111178297425886432798929112243154724992151338694324643982558241492980680146626654956208076912632105057126269218350073120364601135772680113607487351424606871408327056712030265947773771879545427540943152298762331975439799655822982187776373056772430148868773196981207640696062759994549559311372583250501549655551217860164477781081863834698658158349630519914424417523947343993752575226285096623266186991201034769366185606362566041469192345379646144909190326515179265179391627590390222035963382233283714776029961340340474974071482462378505688859648357989296587256787962552855658280033287200884890936819342251614007600201936577968023157937631145409178109295234553810559081022492373031004914190539196317800881999207561238381185891588380230256201784973135898838112868438953327483017708349774233397503644746019397683354459462897995465318856985893445518940233200083429193975925842799656628577459411651145447537422234406463436041117451477534698191878057858862208452756791979558105633605010191881665100084026550559074035952390205917738476802966988305945516697156457418180047947008947145406674362982753264230235512797636902024784994260896461926742964688564856995761726705854358326820390658008590189510711753167819212534025307003360750128214976328601310170952072576423163746727069010888013447393668109194483983878334137114852630182578375032826019657242772017629929809514500941631997452566569869703944757427131856979495596936788098896117949855882355918190768262430047600610836881594732597147469750679824352242545129276389016082078435459350721255189743267810213061228094394638335286807583120595464654199911895741717686533190852102647414664405483796560738126217136901679456749529735655000981096773821763684963985261004432871321298876899382633712244593329917131951282360725913046438554847491288398850017138655650232491614686438661568989657064190278093879666055871329413551146572716189053894335894654884966626459062841281898432343830407430520832579519767482748509863785397646443090291888421283567262322219649776911093020160030181538692273350026025941056843601867800634169369510413659129561887179134972824788663384755087811547398501770277231401904543533817193306615330776270177642678318750273218333010954961028183671444686505812234181695062890893841523279998751143130255279469395742765842217082797300261727919692021104879848032113654920157554320687620857082261818682793738135827557125529857116585736384920582110354175700214632698865316103017292431606759048437221468887044205217192489067440899044678607958210579173676715274337199774013932838840867215127696972163266740222881171233115473671471964611729263565594671389810534464423287733424381061570181818868251448507272457691034850747607583940285745012846643069368540279995520752161844558171998055767474743028773322816377081431448177902050915653102634745190848102446757026856258286847375756060868797027996348908977209258060665802795283007875252376103746701171343244357230139651733216319617533304101257818513699408534384910329201105115489171810033542898990831905519868516432784446900152893220770360289032260227348149957549119663041925556159457068608796692714741859828156793741939953471118730737241301607433839391670719059058474578990462697632247890677116284188845007090851981956814527188044111219922862899558511191796401909522010015288632763370753228754574518736030256674743020912883739332473777811154892038433869696214121389803180369813805033939567780712840001980174999086047592328388030878746210506410221256391135421656694572469559059333320350959871290769852356374429543863373553487295537893136562523024697081522273542093145507117680922810166061329794743567381705878290112636366189056798487343738607757241311228019670217723506470599162544597158345610418341786736741344545948936821010442571667214971391280544865519350823933868157168635887408687461944590131946219239237893003928241849146508597237298316564244434546746258259978052413919562052621301771312458402582808308978383328789563207690853723822921194481352350557800771892310798921533960866008934659179956059870346471499529372058206393199720498245405501254198903428984939500323333975605383479051652645926098682142084580266179846948864317680484920818698843328333020413884659811474668365528370561279347914176555056407023971974426147114185460420835212140492859039795095048896879443839231531478043115224073684030153705194832469685768564035281940977157508558755875354272896628024072332589398721664814924617477162437395244723019810688648961915639949799114219627945372389724871577519146714030655582421306602297864962596041835177658237284865473452342514263541235184371266048504884552143945734015279345376730501606423457918952451045002194024570177459613777829879366280213576422480422511209905132897069631468958853537722304605925326640060565448751283831208301617317955428238516641153430686170472012184800593398916054778031944627617076241624139148780855666784036880388741252381092019874454128734363464822892618314449307447586456084336085236202657427351546270579421425308330099254892737383667367510610975190987661293095762935526438828065207225203404376686081098018158618383862779719553908482111844533161496745503160126166076937299993838406573573293398148491329698697390582875260083399652084619819202870456371276572894384563291144053595976889246525025282065544755732140508379746347219240139506540670536086923657931784671651440322702578458162031381988621127089419879733199776795010706720290004253965707512109190889294785101536704499642810271103646665905229388446783723087368087167347377792627804824357341501081536735639660371671767671676664663756339968526983891927932419293132056262199675634369406836312585603947476785843226025655213939334562028967216972844638186976686908956205919929664303339312774680227889731054392968940724062239232389929397881675975472269773854168080262901637248024101973083543509327819890120471861143845408800964170665824172479438009332342484215004437161163856505044528100924826930291707126294823304188682688539898666718985743354785487919338067913796620428708703412185561465643811828630373611871222369881858269533078622921174741265381720193338317628354298629426655205927738586986865729872744506522375437981515374234073020006568842139064473904715744787388301990784653614213499059739401156272557067036310911297113495743397183145670204626418347824665882641144948433392170087700123590502772543586560439130818688927776089710089997085545353532132211838757794095954924331467184902406205198337077657483321584072103905854243689202083484203881107078979539560169996715624465329356669913559255999816260364568151712491364801729615887808952412473876164452804502017359930407341234366699293715657154809741781751601603967201139162834944531485382979810133109704724547101888012421374662250411405179927231698744154917144960987137674403384800817766628082016041206300700605358034474288601727320483921501627356152431778605736011238782046065527330409191139573674958166198570008940345098119332978428535299404254705460751189712795323141435822258716632201227698992918693717431235636370438669161236673968102100008022678074344251927453396991037116337363650864822307012283655622417416667360617345354721504583767890233292144910375093847552934862289586153376243209597520840359333729692094343448157408400324004880516305402097622360094725889966656827018861395817439895254215656334081757772862463819406607423164845283225571215667869317211923598518400345543797231706372919795954895198570568348053960439575004887062400872587458717073852706385484996816673035674589155112650863374934620517838162889568548670042730219259731944576079703228511682287371693059946851883403091560832941058606371810618138811172915644767292228039543933573091943842050293719047093557381229543180393627017553490228141277290641297373932002929785058041416925390786821413675566214200638486623390765079036302722431328169814901173662674713773675193962574279399664407391340618380021142112079073138982796070328149714000594266368852349961691669188246509433513444004692715822854990822403613208499094581483708285486249532723495377020114037019507358965907115096984452469474915824478617995521564319252215824734481736892807588520827016644095056569841049422061414647495583795637543706317946358762825123631603821040452501326792707748371956584527444541744592949679558304417190021018313031521178290855805875189262780338209710340020014198172270552539001036424304372981059053977291222786893753025751081689912305281748619712392588215328846230814932801475682672484889624891180926167467524607793919852676114755342402871045881936692171396103412814808271934679775107257472429491825228049836641831202344631306938944538271232755094281966694249808032867601465642454908483703777203759286655564640308504559480990295635269187987637452706296286501059402609179584243844499308898348522044694845283645847305712986965138823512170424418120277191235693384473519582441406349182010495499127550079080771471443438115675588657036329593862945632981081551653704969510793734076324718048090523641888911881604637845724805162046457439704418163066951850590653745806027363831766719284943877501831963732995848498090803525142853797237487323212273160338478385848599994707088571606909785645614844585902020216337008960094196675909195434697109242266950493226386509464797702884144407426918590671155257326714984503592889451663010281944482291360207831261580233020338571675057949025176336541855190074358148747897537615980497258977201104933903131043138802550222372436078562906200985739726374022510707657251242212638157662500372320637639502363106237560203836141000189601294953696060536445439470848758701855026670138571759684996755107852763424065911121604796148446841868801783520839546269488003036530671462551778300737405649558003847354995207168667374781520872734212677810590151944767484509148819383514491694150614138428437888759668797776854061122526947591095754344468122625923149923759080608994789040627276563163114477218293037151032721167649080528207731535809102202767308219507817695873032566114757932561575284584891364275358315076730385822700843433265084550289258924213996930372807885641652043032155667381094817081348309293898019493667129035886710488986961302171499413966396942591255041150051288735427938935519306513129201547375962042147745735280634344027892629573706080056394400249521365836167605376831312506267545408378580488171016844487430160997327002079524002897082435002532944777171696954351177576361741984512240967994412012769327757120480584433986568446863613492310504157846023516231816018432065002533282378475594018757801339431145706741347852720176084657544425689917978400329305206622457838388245061970488222012685998689510555003915799481014295420515605281030229604625236793171558746553040094578493906528628508214707294148438719391394902744125048552583984681699910489777252188303860091896185683430677633935038077459601540171029614962564397506231230221862434435842281926569186066043248037312519524212236244646254417027440448885279502323862494570680667075035863200446295732047047809924942004226693449305629294514755209961259243430712702092187949314186229465155127528070348805240266776027007495557127052312952529814265443162952676987542741972840258036002540284228336420681746237307540126386216281713221182023243573510148362486372501075339594113616577565278570913503369658845089869637548297886177184308039414478049417091110298111023298532890509711248700715063913619435878364049279822269697586443687228184384503752486695865305562163273708458004435484925579658679084617775782402779301521418873594969711017460787640388951951832880812858099770139067506264054963370879040947798067828688802029541571635256421856103358716735840122325827076562023305667969989675582754602251114120273176530391023680185475703485125845787028398254159621288275201093960045727253884940059441252783682401917773169695042655276758695299296982513774469937601777751437015940327165564402442250912376222900967014419603921809884020777212612855186064545026232145043234305014644558484469024329288157012292311214154553000450504408929286793192297991651044303243548756799414535826482537166335459299453732673189280500446688484609036752504572841491568164781582940266897453593964274024954127774640288827425338566965590850471458011797074066911562240810780408037709678897703016758780393410700005794505643468741751458319166177550493929892946050118115084432025560488316861098766798484580935306292922462870729190483263382586444846358088237884339283855202987444108200333508302449382267920873804868401605629633564613314215738372330762430648177511557810603391210854263192148313909105496923227965631900215699791266188622677132307480459050796286266931720671845844226360478552913917463871345124313077234485537786535022473149022171879423288746762537863839718830772263793554803917718621016566676984409578122010728846337690094279758873530884114856592121387769506546848733683889435976097259198983851489369872022679333657567002988498747655654095103211820135033261369576753711751648349195356884667423777722143607343745804326878968452456417638011508659388013867713799325649065819125628318636175545954397009318181421107642066312080000219670873875710401464858883798051800308683500299295157184244800351050681161847276255760425721555598317047996807414913917549648132680120263814352454376881646620859720682870241611954270910227946616187226890441399129495849135074796103150641568497141991404739243695153414880105058203880734899820694824157946387482786369450218230917102324741621147480227362691378947299732483382106863843554175218948046316892493189007855334393333504318801849054771755234567446903246464871269019325740547642268182393794845993835093278664685004335352041076460284958345347712021318716758732142566084872174288172045301762421682241469346930468573875190232097131991311629436117994780358149206971621786681760027206313563999143119561469784551311935253480493685796446681149517285401133794542126859840139274616365055036003925742475788674742486210388017620012502730978350696229446185980257422451700337334979373338001847799816079082945554688578820116818635779819551096476976758551749352132773251561399230491211436868787103421756549292078759520217510264547625950819980119349036433080119908011071719767714018849713903366976455127934746136110576659560463655900048556217114898351036921471314814741708195494946822910316915462744571221822436074549037990015150603373212955609580330777822805914493891570651390443683984180031101389039838390178857520975289306764602047270103382017478778671531624926563276647461367245324048448177242614890893093918033072377929251371449670430196249557629716328283095528208984318827423753812274748901692804890085531639412759922051564922304086891642184819478428106951290307704998817583459077941311507449113055395709379099168092026491206390289859047123372306544604146442432649671177269831878504587862801860893830913156568979280470962529663445784191506683215531583158363625532538244042955271707669929866528414311868533134436116619517643017733414305423846859846575972809231011134918047144747455809283020879761543576088140282343072408262318830917615484747107455704235577761414460458996927340240929074787397175782263706891025767478983928799949448658925312184574297050031823695697252992096425343116612041445005343540944769650140001795939373305651739495442933532410896279345465286159863628985488399092307468666067947145533517590616844963530173001012854504883131294077577369616509253347151510683645896622246012540502535804966401834189769287639698959714960568068382506353246069755719290742294146204070893135627329174622357082265125058027211550423249346634773627581077283865370878754863101160067537690677432093545137741497274726207139885626489689218082752288388145767224590474844946133596080641560185080659630465991788896748748565858439291862631830703069849567988896143588025524619031348332084218016693080746168099768432875225277308428371336059959793923374039081307490148112173241413774859374090560684104376764905278861306458038667450412528775014930810316337881257728413649547967262676004669318515889656627433756378631208963273889208973085301548383565348083294125656521592791943294379922317010649805022361380234187285955771603899636491974999413752481855042056183448898386826259099240766409030757669240830358518709774870574992440088376638107335346926623343198482980632260181612764129094633533337850932701091414368651969718016762334839693567160408539617956865268223595402112161539879128392090749612894473632844006158194366629955942695569997477178345876198577924065310869407246575163707602928429301233201028254907242825605724736797126461214431911453805966140772630621405936215836365118931172383642107212130323141067033624389102873292093750252784813003126421850390600368655872470437460695714627305559894022155295091178305460762457498937353176015735367435521636038361674885836010342511254317319378580243756927005852931803923396864974110421407008773183076306166517716805270362870733862814738443565514638826761665641277163546347756232709307034759626310582495969120728768406250609767347404737544290756307211126164703567792329639330325450033949319013336856524129074825675663855670246256537625024756835936516820662954572591607075902603950755616678275856237832654567187274988202007220503772580856445003265322206896477106628826224853665544082648703404972797143598126438920253919334489997067353265195973911255568262746282339434644498482498302611707425634004578922727171297424348072527593968641565716262530626551040653286125359529954594429944314192463358493875958597526092850981689123249856602453451038306871418340998127839143424464035503277739786760512437164903921708627697111454699677241392547656616354722295237520671142500232515848568406769784653248787401028274485670926333452771840350308710219062755089709996296999966521190349804967273331538612297731632930655594989226232333543183179464563898291418444135716731312037103689224679649522846158105317753315955100168839437119229300643515085012215009028091509746318102757461498612745656522482377541139647250588572077779731704665233282415942227519976509239069184857907532805950310477897539951990224345331619742738459794905407475122030140909961220537748946134848009764464736290755178929710303781793461019746639854536985842583796651335980127124291479968006411716149422501659494529669149223307603956087287361698363843238491943226393987268393537871861645106022984985669743783618885709555670573835701292665093396099663452053213322243113848697942108580094231485884110951366042339451819189507814312450139425923058472465705246095539598816999355495685178161996554895706182981504850862189583977574147551320557509163075850836176141196963105555634212420908558914125614935680128456815504126065650474252566783735089414095180399643830724306307057453046142618914930136807396074433982792859830880597119601754438705593470009668308186507926826589578574602026358349241348914604908194531884307636932685220057631942058925788762811066605921495630245072700556689917316916550394092004811584038392940524230062340586047222934149380685666636004021994251928650492707056398203422776231998109033226024733277786988659235475889599450892440667095562317306974669774980105453521606033973548113806351454791859030282987084005365500526290434185861348593921398956626542018856776642683460872408160368007756478119561828768205887962382008073628885357769853221994251696903539405432996776344028882126127288538420679441441464632600024127398969310909997057776104229258703297588769506416909537914791200847719030601510675261833068812014564271311565603172637131141121571597892718699642613659037400245205841862565959764994731420821794464516113506313057429231269298314083559894978956920962802548956738871327269954920507614838511406704566577109001654046763345185285119872344592873673606858527119481306348901678675772503926537846344572127839680665570645517514154672288177341208838291655081298332833919593002372862809253491168223377804609816285089533387350375432767444789988255158682949287809682478819610286216598741891962910844764436473184457847403247693197137201867205227091244859419304332653171569919481378770864602876569568175892099440773781528693079991773350267067005910264756852985007783017196389087194403463546372670281507193739730703442144794184032056068804021634013041357745146523745819645183012027117626632306367886081991642509635104939411330499687346089614151562308948885182408145473258942551522944149655602107752493136844342931697396724871576594503257740503736684440202882004131685622970600316002947889547537538642915289306125428231752816139978832382866892323840923764317139686866564271216207880300079810710825635039233266345160413659473236463876980307417677372343009704119918754258045353135677549163113095744815412610547678553623879575902030335906174387769454856551178217827888785772644338748995077378315507924582489831008624512281396366435626692044150492322651190119631895517958255008335769665777185758935170258306512619892305007706772462296312966448992068157202229283875026202445898467190959187426296518366705213443443834015391679205730594538811612540925008323761592080791769806610477481696212373066587172236339352479826844525777081105055073564405860277065550101777415927654432041134352178398689807342038869313078061242431341858308391508814636783083130251865793997887294130580512448388991934922900137516611830525220676364553955880597696767922677389748289992962329712585724074574641042606799180462172693723902418758811438692894411722467254965100242867172335283124819991234813583927319016409231262050923907905806959881351173077927291807090803473158658839393495168845607473878649567462430870701806870738790654571349906367723245726411924764269785359374008003014539301650905976325461752456346297396580727070881798861134520653770724035766698437112149494583447253518417832870918523740718336248573057912106035026051644094643560202743208992087086639314771690316048633659869940204949411433088572893498287945279318554638974669596984244365766653473801158822431777945880599001644418804588512636440881963644087951542051976428263780924820010889171714459060862048308628420029831345783773380524164262555392081861482265624162473177101823161645563061262870987010154723761141658057557123705168402584144180679284924643324429706028592693315382969980556656082577833446019303943280529901756608058362514443095463064568166217874177038968388812697812717801858147837400432883815613153996013013009176728922421638632159900565655213529497853893606910975614394324743407754246236715854484208020849529432852327662599772003680192617920152995584313004767223154926317296281316173486931417248248495747544740994188391795485337526628312101741815511225505668679294808177449516981067088658741317789115737246723025181957223307188561567975424652637043910564451968691370950088985013612300376293550340235304732150795928477305548966525687179958128341441397565269942744821032276911729925990961747918615002467346059804820724162345654782680084484573755662499936049720724329382073113393719064308763060480856167550167633324908278082656196356056272721639775081936451035945258435725752684061870252292693957786665101354569612964724557618129348089260233176943529218729907659391448713793485021741530612028202774818922421312373275812285815066405074478275896529331310213072438101308393400127710023024045291485676173739310412720113695573976808160511955600463284415430857847859965569312143490089579774218781562661105310644369530820437952772841981227999083589231703201142058703636690377058194309751090573648852244771121340948824535475570915922068145365455140566335682731999144382027978683400112446930868662966458856580251563915979248574228084115696731150457793603610307407132454460810086261091046783264430002423201387434343969768537346330431550632628082536697055348918382680571080591093252137205692467541197109225581725858483261700040354107465826923335981949043636352378908104546809075712404341842576384998910382452761224830531190062982673727522324118043686235015481307716845081220110716775057579546095631412724544529508882913185039145970002038514331873811558400980068318401639192871246405205311797547898673110216552793832750598147714861221499046352380197608069608437958675508176483050718813294340553049984607888384488630571479333127393877904792667279822003616799176910999091327049047593803123267835149630643805532416600630054492255989386061317847852768149887093900111213393592787122256953286475002625516354587006928559041585647322356217039866099686422551175796330636143898432723041461642112784870729820222084584008878796335774080330486698560207008696115040244299400979992940108346856659387878437116694294309775847644599863340978564822520523744976873828970058113863442958718222088929799143599832500764828950776081482156641368190946082694793348291329334386641561156218089243848469929587520815862145332589530149961650965731007530770457131584113735766145840642875535922545395452284709125839001407647696107701978222279131607877621129417560652935102046875773153492320189782649643241150063935850022569777982633231288202452890883931944430944687030262855389713946022713500175572512475545784179615240166822887037117246085919360917527132352096461338803149843990449370711477246862417871178723525539403465572020551891960276346554617195017618517192623719073716503580767455294521203258747298484967561087223398218544800191554721980144166505762900914648290382381594068869479420280457437116542374088769102036444880668228890413381873865733235695453037364832968649576380674648449913393887223277811486749141441293459680806113088718475986654540128124481611076070792796992771115367110929210120900575370023639807888816421650239274264822886451871678836087645382689310928713369634138092202170423445749894265590177450515140865350600562387456868397332941529828454870243108981246196946391736323071403772361226307360888093135519971854070711806691033031552758196974734929195136891976052419726652281289811520117792669420050192216368712767219649698667055684973021260230149704472338303686246139190898492965007607197671894145873053160264660061605329836087445563693136479541912820220931390845188026250484607856397453746303680212652897067685133707726059522533797919123434055893017758452107059418357447472216982715793259047254375439597702209274377875908611132991357862252064123729495571939765665182616857499349323284423415080928170022935120883419207670954292728883394528309701451782921244920110877102771946780565082899633919051922649830559899381059985996417302437695425923085082447846208031741127684043896296744795326754972514795459973774468834721246253987185876559400269992162609328884968904533360906087627922008173181429240730787309985328658254849467006040718388851420298106083154579313853851702188048808683587827742476392347396383421861004056588831541873437506392653133198855745094361751663908417606583222384796155025977838251303585370899270039049835624060955615052787032178790782383171468630353124752347458739314836653745386363796541951821419762712483400175367789370847765945116457336701973592676659404915587174437117700663920185354555993699869844300478040944870325752017762302128115329186686643073676879901717990388057131907415771585030057904948012353528243344092031315576357669550981784344472813913129934770600417476692566484198369831857146788101338535629992277417921173796395726439050761779527546419088583990343777997976774076643686174104227552094025923124722294639360425592091268948600010088458126993446420750440529091988251708555449350949345732116227560575956389098659931654094768173228631591225829366189120904167151044484428854809193745298859029715285554512796074953331594249666252504922508890720868311450550079258594189741922311070533311920526532406445222086976626792670870099167113506920410535924979874523435672521173905091613320598039098510622900674836326398561274120210781207969051657640488491392545519276811841058337012224535184789270586746318286379964363186960284219147844485316947920494004693926960701445839122721448569553700574092495441635303116204847055427287435224375543894302447398992139716272741597533213471263624414542217883938327799162040175146454417923226122239099884875425427933734079947941477116143438912148195310946562703622900160740872546395764452315522129251770713401477436027752394066248100127097677903711304427553173388446914956010455180578610656022780188083675425682147618295099277003498570961759213799600319520495436441718383681825038295104919270660666215381410454274083330736774118582913843997335434541433265094995706005358249860603490279756453149015001280469613314570753491239656705071756392159779457022427764475330769606053220909566953611024517140225766851325831509600616705273574027188505608008544253175720407684118106273750006787035372595636615768695922922910765212535688648612378840439447096963759268406691257209891159883419994033137526947126036257052643695186619975376702135045302019579197191484003038297670299506298528983045540864666978836384295630699851756334564491066990172732168347629636052231664492644119901956629970324401601856602172128915009493534505038764169447168817370830690691496901131978005410548882093891788603838173034426622550917162872367284362277494099735319769256037208671950618549146293967223997238219111401758514603672655350101043055268395579336436250889875410575361477609311682147936364820841941398207402232271204110647584993134542327234061023813409111868489311594263412328524461397464166136480633991674241168319864019151941146441613757546745665342107302489440557849914040102405354212038999839355547151575462369478674972082618323226845770624642870247439083259331320321731620721248079068088626645402112768709355933822282698067828878128503387922454855705413982761631997313631778360599950791842386453833036210677029981400923759102335504487033065848962040060039687552979936105678527789552323203369956445614935828522180330806012243710630723202866250812140408448266596164012300767634810878894764018942703491281820097005101041176978568148323169011581397355174215794568926319782899974666622927262964109505081887571235295409476585497209738076175806482997685490834404618066375835393542371756118387055347815335909740762191947731130105848410566144961648563719169618693054987652059447973721216198969097050166654046746481992231799107202888999031543207335817851126386670371794066947127071599841803792682064498196758303232240291884255383380776099919478652027022461260450051965008466872015482175521897817620442619541035594533744895048887397625322116974518140269989910790860262001094829327590796959050324617367660617771907230830641630301510758769316674839322322278717505878001957640401451927911329809056622200252215464769111097879106637605301926919388585115059947167407056714848218328714063711598480713616563567795438453466428481378714114656508524845860678764759652560590617669024103488065259102446862785944578509841215562489588051138543675466019640481353211662187318828749750678068791384560947314276055307580519015164064619159543429009244366688432778187405856370307013988305328349956632489779127700183150818523500750558635579765198448455857339529743971918544987110598875964942752191643563710466775016809191889166852813451111366245844758709962342303848716754858740561695264058883503526033520665621394273714958701962438277040014931756026948372993119902486577035160155762610046293931179790163486377463838353978993701414235957350611804466277418031267147251706726064649773147279873154483380407130428019645165747929135318417344449430022940154915407620153362198837864347407901064763593488007966651107506879661380663315494387593156497225220285224599698196114709525190218590390328453843988990409827509429915290209027396993233882315841908732987121483468092410197702253004005621775580303637953851859851812272349126694330657559184865553587581572677916870557062925184315848222171951133979799178666897229850360863544471033652274931606678281883847996299193450142808106950140364102180367918900061210192241341665395280817623022937364690539360868769858089453389777996729592154239791069425552449368090770744533511435631417469864164396532181461977815684747273940652710878181917710914258687544866821403518963604316963561241151933208201718889050506407155523752936067502995784554455376734536217055977486903887594564635281656780828633633498232936010051864653619085568475725849754359691192348482584770265810120517883911389453540471358868145571745708865858035095297219397324666611335766562024885538903493833573732345985796140036285645051853260580763587144352464401487967031212819855562508857509060684796840101259213299238900003513778228897738252213225402987171587078619952436615104781205434504757460261168633684619983903331206209851391143415030144020553757053565802362313212490671795167498287483865183567609110667382911435345924770413762577172690045034286643386611838092164969233658898649985337335244941046685662643664049794226585127977535086487170193936812944585169775215235837430724201999923625542383766869639926607723554406397081321073944852550129013825993797278794320048734159158783460578699884269794975077832360965375345752364646710279333066958676604877719043605984095886695044201221888128579668329108558169591392580153609217089744139084183256268427668748583528170640290217166697700167356661783343194151454902702904427651599080186048444156005629397267075097245505276955071938319004487586822131143142450506970377279283298518101084611633297152056433714597674241623289426166848581669668592963485312489763473449036255814342386032496349276425016647584054448805377554478882032594881782320447223794531715043419426643907644082238647621579439944631558574871225607351190451426189314228272875132745542269946343156621742367863905290874984374690834517555086114695391479142521144086774857437033639461837615695167276970488436183195104372033080102634735158847174703799777497272933906567415208314032226829816130341429569061653372289555380897879915613232819992008494202975074719970634376750167773147755407475089116446390080395303992391986591887126230481492912423651433654378515686758242942188808938829734888625031356657952296204267145580923225566034465824138305089122382697245624141972433654694359896631967326818662155826940960273726215027970098791387332852932612053454245720271880214001919384817335418187323554676397401593754183170148633168477594070951515760977722796312533649739623997533041528802231032368265175763554741611131942922194023741680410422756555582365772176533035002053003863789534660174567968228825547840687149416251251840643556055108123874688548160972359213098326182325270313238738859096501811248871440408741054003807487023304681612549489670701057307934616219839610062676785420995123387287604750282208509000176875698240026722666670975390807932678461908165469226794414601614291607824201360251105121159055944360426844301231367062064348221087385560384304193642536655361553731427673045220694655571384249018708603246730815964710108047699981716091370037627967118935385323166634428322951880083763480898147530959606107141066544204182009346897950296356554251520216683089578609713862012098403882743163670037486936749602041885807399737670225428837793678357247409430780584334242077523497050701240827442932554377521396074877946768012866891381020743904439399010459042924790670628360621336394487949331828546751795224016716149591032155390578872238861272313879865768153260257412104998736264387863241313564883798639484385492449120748725336108501414500801777370900541163343347192016933099751872538262568526983758676950143576174767639938420490260250374843759696569507095675767949422338794594168106336840508446694017435026799258453620463047368370329347668950160458182398450828402646655751301265855172600658702331114235895806504436608190873079233601872439693085437922615472897494640218849527381214623618195217160927328475415137749175854397345844501539726048859629358889554077970341209279014241488581950358453943112836223180556678862412258835113275240928410361633243912534654339465297082356681284646741837399125593010254806264366625592318712721793960448698981197792298464673589271917761014544855835479581979197450609840795911435234282621553699078848917255886849997263967259916579907957893792167232747423287495760036304670277707459812847389906787783309575403718291393882897023139765070374166479199776013690718823894163172664233263267279660115176406577669320356453247623570669024630784621588482752040434663275097877424650003932462519216630265753298567337950753264548896803928449662919310742194300122293980439111364557933574432993989946362206507021252178369371615297636074853112232895154452855571189423245121205543638741746792840306217386182944344670688159340391435794621074848232743260691566013208388680988614393081964609015279874026284599776065205446601720209805768346325185969964530017335379839507357079547535165497416125539890008345421591659288823058779429043885962063995720041685435345866204416089769391294957785145952465463834559426026866562950686208776125067653824749836924218158801815089678433181421205076596399495469111451491950487809825815579725650849868697863278008980528078568503063550113754262719873056928259423921204823178724213210467778708712391013347803780638857199937573336213197745817102772792357018023031583864554331435369036433674920103643617000270439159764378404388497407739339304525386351561915932842732980090585256833573503146845632058861667265672725019213923413832016429572566012905312640389454951610849135437406294953442819174325962019857065256216194643864807827154929876647427840551178997121408554344405479051581832498179189570465393805464627980196457334421572901839175265618314148415284449892679950563197549591696210044188424639566217023070628266653092306008149783171534524709112991577862227055482061189989390314286404028943974686143931518080350132777487691513348086304894924335057086185391783654123519025617479933041788874879921751003699424896574493714945802339543172330897892578528253356193648476218997234537148230286992106691078971461189582738939637515707800882070465888907159803982794408874482538831000079108656999228141214963576895751913741961275776151178967252647808021502001094546655351347064877938668986900752924259931256021246620460162726349063341106391284448336571914158522257747370331523229396554478380153589487111497003333151692574649852680246687002645858111061033219143825469456827447683509828690530402636287788615712403482769150416790337445710923367671216761183706669427689485957798677295101821346625847230324839293471515030119565689550070664816711582835492640013136195252242197249505433700657203357537296245026070894678331386945717332812039145899116708072274592870192847674844923527135364268888232821262722711117697697442062793448414519920215047471975209192338309506874905541566692852538627788523440096408577662199720131649972884011316143207870832311334722480572878438125147040249672477883118890970681153512290167471260823628693222136997023804547176196423782117058808856503080552496782930533545716646587283741987802900232887472417196289976456614976109659814179432171487718757081405650356824695307181576606147104819000226473555646016075427265753957074850755708357894585388776983038399458888287303409999963376327757860474582140445599991721817924958629332498659007852612300144411296266844625134171698327472395962123412823726528845553987003504329979289281828962602295453907158474166482752218348668689568911202987100232634147019752000701303227265633769060764670093594927133039741433112397112161176212969578911513521427149894611272254519980961465725547668628029247381390120298995824865634483822632966724625855098987899569091865868147701498928755099037204647573484497348934823958430363600573630603197455869524539174951121068694347449677365462658241313007593466590585656446824399446012627142708800170986165068749921658758626184668383368763106624050569548335800521772138262126093786045585237655300946270791166470905427485527596154624251542378069153646295119240969445760568627901581895086068297742404715439876726058626554642762323896728928942792992480359770426654156106568480422996048205426136948510981028885185610059303173731912230323231393557360655612607601975608093340441579929501310800016968897720782162746928467490509633272219852206424151560917607191180545449009291148820864795044488501404540691651705041633013514352137800850851927087307217714462964003030201466723286293077298278212541906060840138790292876147577050483528619752160338530696695009718680887655445721277323908909374051675620004745120098842304619642867450521330618455696112627600795785274229974689051402629366504236085563493357768526118645383090284636819152606756150504020028246496643646282967042348387712912192479044346686684955545253053958084923183720900617970133767556099343440605445197468658901230597940256874821829304309293500540766730661059176550572348138936496851345978978532447961707623305504644517195031453553968648646372588233994809060803708581380087735859202187810610630146562518534865601284964685977619769793519701640520098389319676436166652234898796367061200110687005299614785435781369285055016576329182070247192127248156023937212550188699781648650216888107016459208295769037192604831310708340687384623620571054386367255631456434632553717811142187077772459852745000552079262635640319928051420454103204287439011510934836792980141637147112476022172799819264869468814358937241057019220288316610107367028220237310402035270915541414570015992569148125966961383692758145572493902437872753202634574570179120156938774198781848306691392746511110364463586795695858084394408761533598257468688169578374334188802681132011933251886303962087200696084695330195999518214033435838621086355624054471940260009385851736881195897093818096304777342127141068596599100625437596543293664981567275195077596996469497692196598590035560924649342599416605702278800914639181752814470732597867172371539460111409930357561822362392199120579821993986777060866422569831993017601809008601418877547696075662871990032770521552012727367379556952961035818767415548004676232342387019775636159918700806598234821493484904704787230876270915956597904428927980936985783738606543081065383560939093165282667555381682849880740060738105240586945071803142768354846851482939931505887652481841933485864963356818309086356269175815866679166620713373405627301636219837761518287138002743720012917111066656709180085690632755680988904012989280133807030333391553170769702424023213627460503639937208336335898818429567747951969366255160522201701266941995129826749347901111086969536156242361898013884241499512352956404076902495354012444968229998031781934430859999157403986898102825586547333477278311249227883378137087320035441419914055658436804120731975291353882406237684534177624199308195232193807917329823247256176618808721391006270702150170561153506555867975142220661859156194365000416497263340444957296640865154771143016648644551420399380790523622474500211909101017573340846904997854715643607696709301004753985173756080354270387390799969455993808641219769390064954319877153266842910095269260590409307895443809233082270649514034866454825924993034255329605394454798475296564791561897397403545313358420640817256725494795477302693792104852174048254877276403490553931317172558187996705856936795637716000181478044581717046032566085862347734917588112372819716495019091635601691219056595693838659946133622266117014045927818156085855886452354915086189468190803858426646883067721719222579530725566942219087255100779088605083220488385023935510106822445026430138261917649116523885962093623043245902305374697554621950738857108823097630237510809796802939587480309749602898077601585207200054827205509653778735182283299925520726104848846883867616547612021638941860932274880810311905194498666005016197423107395317056269968604293989591987203101804206296092254284555040515152650157928113784368903080488446371442672355594520273236920340109547804494689049190816759320445173389136552866079364900780070997736436049327706869145935460947212800410407970130636437821693603281261289954359432908413067144854968254298679122279924722671433312192889176361575887629588880218533920823037128192051143788939791385194132601379962566922092988297071976022087309935479466563499432244325947720704356866969330220170201427476194857174246485250405184880996504300305774275766650546346808531735597561149789232052498462223604382910214022289714024094624797119807073524377966811672074046513459983987589889585080029573865666647974037781327791200464511577906361910460722093634717724906424551877705149723721753264164080830449254383451893566263551733636629210755922966923218991275922860850064247431549700412574420206495287147368908675528984715131493314511025985978614171984301224929833197543210022458175460333021309461549170246135996837710561632226919084530676176983715183928286630199997022344568575768402099228059955047989952600931963560325158338172360073021729584516397617799215334108766737900084850019639297475967733390497189119072927534470394122049682638878029251709257503173658260193977947819035980947590362108952096907855870021668991548487445750814861785881340115707731533827022800073084896698086444450121879882195268281127358130225190475873617709710406189409131639093556468854299049270427010637299424625790512793018376623234572418537703558669487785928827542317389487117790853203844496108498199709602902844158164595453436149625087416869832589951855333242990528793359278942695747876344825217725112798132616952875641161109389402850140663368792388633757809266093221301625676288761662817278055048408257833363044671608835178957061318695309853240592836203911157965460185963444056157429594591334280288838474135106643436458069642712270339398410095616428795828056446213905235530319032522403201136113964059904737756354675287458762291449832912810220303527807817766591595475807867949530378538407928992069982036309132922177857807475398161351808743659351577219615510294819335272112607568970876702640020375297793335456855216415195381556152865882942318140317761619144909294324012993155655194721111801445498752842403304102963612741071371866281316308144335268159296082506222062256625586107683038731232383188803290576660393487260056740470847351558035539123076424854711853460908758667804003905179658624255002842808576330781776837826680967941776604371491374744598390503736466428113482440814869935877512317593268387005165741601334904083445594781961806044813460182836511253307167926688733128598712259622850530066936309977233626194522828041069980201495101107981476616419711157235564508585464235804697576214730280383571767091762726640085942175046544255715194152817587933355962051218872777322794792545240503479281337683178548775906428754227179301734565988377417547496836939088164432908178275752334161344311600314281035832874417213377055107258532802681195128360780301092345730429969277221519579370156697407498404477810672962344729859324600168876074001675448967486462999318122347632013615724498656890101795132300760691042885899260140810384264358644146028449731492413973577550162152979758846701248136637638387091507866430577032709694920687693806293209000999595558845137046416756322477005921689505495085174266033407495288642536715770537820838615344167923740318710278303531223743430446458421401993800228991921051504467246589745342222823841671304916864067537580261199719196646620689254967214690986082862380649027847672120112245044432457127647972132489735008647403594892168017188102171847308397535364883879624355294483108707009119026069610161313492017677840336831620050440035055562913452520081607655361708581624222392247878492870157358203502947158564004216056988817624622409548198222780756373541525142507348618290435382809996662984267911395613643990136370156157238799455644782070000761720213045198411241949336287956458460634187760965386668241399638449137699471111066871351245854857927062670452185222036874825277430078812120349918454565340275688418985365706814802606188102564638589007326429799511882750229413906724524140086744758343713920879283794799098382718963223864110608384651304949995228687819137467541320930710086751528237744659657785338703676810290384537231112289648005006070798959420957980429518148503611026641810343887606621905712696172432992216760716831292192940678672198159985031562163654050435416807592655615792907326431713086692428343151154109932671146618283769842253077761446421089157115423829006189695247904173697358764164374472906568719805767792578411105621321290793651546572524362115798737963945626641440516494374101210985936898428676870643679138218913188126538352361542919110351290130944193980238562336321416225838169574796343218364522439841579309900141804027076995439954925949898221018086904532022063092027611155449907470392786105373310494832021860274686096047557647110113981529286291401486235893838617328758199969464019501509437385555542423765444434124245121306806955672596317309395208892620874897896428426412439814160490794541381968392252513087802361581879804705580952595707928752795155327864637877477131925297612755060093313328950925857036940223266151801896386217450468692666441564090042408162979170372639306062316217026465195519831696980574422464625411221277180530837911075684508670163318165753823346342378047614839650510099657529543933950849445956688306381877559786949961682774585187344239685516655352908777880660093586023624278710411630832092981241249185684009002222618127540933959085782112355833210364045583678172729860175436809564278267057013806665186372385947930801841985587353905278543732846439514419214076043964856997610074722493635598723424071995980522019463353460035035584671137197381427296003066185376940957625660985545048483641725236745006544875440968171845016018405429412305454503043925613144093133075401248779969695327181151149621309920690444182617272303883068496599726726177477847977216019043956761595966087109927970977715128993021675800451451317567933111011234622445222769389816668739646973602652515906831825410775353597586273396711408487443901624850535522194485933780890259894499454038938627460442803437297887969103930853048767614467356783685611280507692872331110709051002331795022932539527095524394344819528786243257900223072756853877291981112522960591673449217987862292210354940645697087305742312015864663986801982500086588539942195874882254698222866060659048828715017664346284396916636697387846807970384585900120462675633362913315542477974339670949951327221733497766325329307856590815301267346943800771983678413926501611684823295807936331179277775637066836789088642939659437077733823592670950278185473561851008788282809570223988141333879447913757631871488240928846074708122157200167948019026832223081053001457167159235657107049752617538920967309075360531524318924361497756447847305181718078975786487959562677236266247286316077803128978189401825275453520959639413337304163031254716649660338151199670976698273643496445997152301644195544765847806857028620890228077022929457351209954666191653912275614837718470384843491970752228164423872535938001219411969664457249156304429903114586059340755149094329684572310927411664342588566505436107048447968265824578539931599413759477008451108215865641052198025909705120758173499798220928659401652260345391952856046246795322218592977770272893328440849471183622749399790764662671245219939032342642988122315015981452936353819022519353808127676581457326134445215571217174400493422669476656540633640990032058601011421530898606931817666887418494851665308281044937312145339815692992758878733066922766076308290959455130789255952606779008973519726572862760851743911143148888691592274917105768094355251561247795032340775451941736367750884653688985962585936397093722403761032154676882418910961371385487591586709675326633097075783275853947323964515517085423830752751521575739161107204173662253108970243591417202430972256286607619004472309904413339888300032080393994029472139678844452259340733663692998143110019922506890397032451358292805911484579735550587082623382743671203561920740556090414493333635748496144830515980827088903757481427301195803019439683372807670720145427765157013012315104510415979719945910580139457911308328332063033035946864311526617166987099104591795277397986605564890980131367723293956391738388416005412680178377157762453564685408470848408382106138701603240745514896607084645003092951733176302617156325178232141131728554046101407311384238085028105022146239244959946937585609875966243047996585491503499404844647756120768370490397252804069231703911410559862610839442437674126076128057142079458644014823814774131448481325588251306639798497045308788386088810813304818983858870073322524535230006148732084383010966085285763565887066526667777717659640646063463590529274508720199201672141071524317580552318019042114507060965082467051585927712059642870771426779868676007159514468353057368273195617947420115232040700501841952921140441103036812518443804100408606520918417603193122209300656880441255122016105718467439477972467064028453861166667262731739247728333991474729824999776485089887793702353655231397298116907592628063693914184836110004918271175731364711675751803064781435633626348705542021337321555411246249994998295244433466704927255151417656319762932992905898519149648154371780065982279057434475797610416027141505502256892224902599895752414664466171647408221619036477066047488189097679104673812088514891191535150307824740481751725601955184470388980191108437074131912705240925644393367845203071371282729355114413767143733687334560801912686036050864222094645091348894526611845957126942083270102111894801853117759133168506559994710545242398184372554181247908048732098424806214478959974283845631718148863062127573133233319476618530507189442503488436286149743299977170075861298390388324334336081022669798681441443656019773878082552602663720232429831567414163709794874797517725225188978772875496947604606079738498340334014643631360353346971830502682102496839388369680616688193858835820648567639348037814259790431944123320296807983561044698851856625578409705150687819892169551582432166910890401709821146495701093592184015790447212030509628527081162939874509566251221264843122333588563196960926665768044840376775316091076035187688173753324366634457782646856109626429641284067606499085291298086217678742958000082580635120680180640816590274809196108534220574415458314833309445786616624386208173367117029623508471022519424483568416035992923656722036281687480656108128500108915477381604517910460357906460276143662186378095089292110615343201165668236884988152406229531728203655126641359325597355335475759807120229531251617541234974061497143692154704560766241136025061597047160973227015128118954168931575039879858448709112088969471632217437475543081769243642663566278526921574715694537353990939066051937576993763343762932177292513641783664414963245911245824048694848165463303585645218036509455459037784138459261224601342818221417054499887673252324736990824450903502023710406178155960331665533816941961856656930487329934321310399820744992399743313832376462809311118949787580056200344797339758261119463012226729765564454038219396294408532660287914415896727118320380675517569527036410010193534213994640740333467596714933868606438608006693442095152600309789683000204199828057809155190280549233695171881268014684942388366383395614099200570836969074532089035217321381554542491967988938007330152187589759053335343991281921642370604774212717280183046289241406198629670993743216056599197926034787236800540783588501995568782561774425710582270396674879851339223932255112462595785382205830748068193859718158364892272645945370486615401683913733794053764644327569266589638433850486099428211359413533036563966060001310453544883249117194313952100600146067825201245928370444740753412851872091901656894709095792912530575622576125122299713593211982060278510246897600800854390332731036858216391832542998311917017235541345789717307957892397413977880543911050356991255686985164939707203457629647621584773266633128207075021037262909432179493352119159556483411052954141862145083066585598229840489422530554528930221288356437214595964944672732421981086326319503648437818450343624812303475369997942654100530100394644903800502167964355866470652146117933678999218189565015306456514461770072075497883170245073476635460406650295622098041380815591959826845632639873541051681083740445120223906760938297751899732641836531419687872944469201837793097021599161185937310371369434281004676903356080584148641304809825505876490039825273653853127570165004293267745060740884789488220540885172398708913840174539990396105835704641899179966838635237383374095507451249605871089909434135592002991288550132199656242080035737003253499449927288911065234043335652176399880976459250133397928618101888531612018784832248618483460751851660984460241087341035800883669152843925390911781916387201773427883904984525584897831117960475556423791806376016231331196618137769668248029198470245604277430502572080284366680814643442217478313328519196100942077006148015921228635705411386356615254178168088760551916401211695647201212906590979864203215785983246601634776257243582787559110424174378918826664072426757482496737345149906174219931164755832397048743590748973870593813864603159521810072104565061097096864481714704584945467936426897775153365391000043637261140948404018675494988927138977870928306154955601969918503338407263165736857659878686044801864608738620598235933158730529202664539509801564781468123173994161417169761146848363257768912481022930164787319840977425862503964417832031952802870776376118685471647650830623771270650501189250917362187511563667164924862323210098791679939866556988835999608377599155583215035526197036463800749468083450728998709265005010151804858311203457298921505714373689872884695471268256681153763818238108297730969074731986385800794486379589521768481011504963914247464514129433101053009112123285448683463274396086961747227802573614732703466452829181518776390848848985259304872248912697986605211341545196944882154970078137968824861738154278829891740546092527203768795089105304731574722290569219697879880292282077388723153070898007964968710527637812739988693328611912881934560863977461451434413619352810348106263895744830803995441368566864880379626967309607554997610618698886996347410836308971093298298212108524088196495057054814263779296452818450853746932559815361937004934351934837355489695876548104131963851983057235044615570103214985143167162900837477605225079348208628317279302125580012461792671807102293717952178089963074772144585384190102196251725603509031818022006983610125549768359841952579639922849657348987181254468800112629576111706901090615105279170984513302720379763099408347899602797134537921511525890172000435204670898308921952114147855433591780048192225828161188183603698885885200082561054971515931969860753466281460948482000599983654424053255585715991487275085634817937367488280226431705728120350732126071784215030206922137730001404231756005043994618225841891499842653052344772989262211190674593349716993599279779707326416286532243830080424838679333735975959641034993439059606367377926807214156284636616040294866416814262751784041891662098735742341345169882848652719979386791100733924031592556905336325148505268939424079849054837562390391274386316531211361234113723940182232674080761791159362417500769084063041794748355191183391706703334436535729809964224412037820172224032947877598826684186815587943547024146210718016276802611666146869536012673665687281681436481379381090584743330756316752225312304713682037613614615873098290950013320672621594054997898759689270877555344918184570231864509640085996852281577155979407672869800232837956448047236809304819888301926513117320228936870948998333470407385339477708626621199535762567429946960762843263961505182872477671680506316843361659260766774794040585113520299708556627497425199426114749619451774787769260990482400277491738151204761325529945844744553374972588253686159909463630128288367063677440144060695453700947830858166112061819414836770018275180707049146421384345474093762414142591273438871606507960716686024285242808521789224176407809289372362657798981270355213637159549142467488717483288229376988355898615430299319098192594209532995771455302254277000836575853397034034635658235637775913792244273515374169787601809172242529829649581276505607292741006389906924281794943017263536551632433699952803851651971424933195017603557751765718977794231668514894190537401439945642961092783900110415186752622506031240489099479706685514159002342264179629476406001936827410110422306518567031907108568723650227844842874780058363494269717098062331357765159273644263990737942001675040129603628291885809979821902595475873637940028436697248494321133436100201595207312814157929202619647037506958157072657970640511297421256899977280188343057326042512766140489029848167974175084356318327740370717053310502181555279493608596771318255342871775207364485222199879059022660269742933774334218451462618585372666444622844041236184737765051798065468481815322607925494585345724581938095117103285760080361819233451809494664427917321223692049614198937623689306425184227757992630300992673081892514159790866094890012017410849823848402209282288820989670568608853637870066380591777329679278531542923742090034922265638951277135313106708186638270622476750305409346775006294776670914039355710989445999510947330816493936836315697927981429872082048786671616359614840609963839775724372559892398527785482433064177430613972881397513798129800949493006667833096992699742487454571991000955955229412162917208677443555494180234727122663742330649492695074131335515425687742005951562356731861575384189395890512631914379184945851398591389416762101306573820524664082744947090146307564263691900226626491089004355903231350521709029136798618884907552055664296678461307420268112482898423745662711786996467787028499263322675566388731846093894193515875812753591866703917414818700232832844213259268644453173480241965464888887135158900531513996202597811628677617191772219702250024893482584776460184936671967449287553817344092985849717043059111771173608335102732066974935106999282724078163185118300302645862768469668881568521041986261185011273484186380554722747317420138582317657088625963124254436528324895163532025672337323513205251871424005147982031755616460330591726269241992424748683981467974381692333731474983381884838466277844764372966416046667220671702038887982167856715537978743875785446271950202792238303043603322590357999073148821178874453181970332630023826052901227672053866837008937676687377462080787447796002812777669620960156163818510712589101380310393556181635211379249189358814084487860182230927750926550521145006484855886725831976049088002594174336672807654331067601819996231738126004719942723606658395380822800552240400548998822614393433811610190699130695911607536727898778104891592130894324659022033315414164731310916629898965721486826613235555872897779074662986414912896120053198050076434922796693942850638001063337276147705442967794938823044839887925951955958229770754992462531675638164379682325661779662605211642405356220031122460259244476024155887463691117924715215571681779016158773008900695921966480771076978076336837315105561358102441492199872172795496841154050404121202923974635005745032829333949030860847491576323239565571544357621645947522624313616441166983515809533294706168015419783153640782467727482779604814946700192534458055283338323129112579857905799511094865707223314688986004765864514125825476021042432347763942572623860930941038787358223492765090995032860440156092877319963308722468083790140999142528594648402205603704973591113640590288365637566677268494867937021778311904728845766022152398786927176083563631125780300348079246226886114822170583545485815580489720954610862035260948209445958557367710834694046014061021191185172735687608398964875295933591017782956768698465318999408315740021941520882780399015443941310593221164077600207133241253525736889329897151905325346655441038699428920857380270458988144723925822648621758089392136252732240144818453468196935421914815073754608639482264064593913681573249558233256832986241808055049467000058388733982858901644363348740718323158740471571465015051869462318977501904400766701192085667290390123272032573069798412897860725613923178624313432135945930909452736749775634240194189775585668978450871198199144056658345147421077009968810897674816430158139851442000073351569971353881815353277234094218571251260579884715727918441657101084970647981310140132577730296026421577692408347178419149064652290248906561577798959128030795394187223452117313687396623705178251218914281472025758180296007113757987565755443874930057988034866290536033627661534818692564790250152342994266293833029506331971167454876944333914843169236607694832108308284048595182391465597454300838034775801321828694943620909846366778946686958128817804216844404630893646288485614749536227161697550365481686776272755074545182837995128626642692105368165960677389497776661646916502766063472628739182145045657100402046328065679197430858321583744087882784255198366696298039226702896790415720319605452749238763084947387662668574366880591492880547180283877831043795762047790531931447390326994365188132278167047634008564116409560140080977909990163943215788239637959163600618506246728594621694167584798663116792672251787357440220496188789642901772776646594147873121546790435115546682216260809242044721975718901361881818436573177548552912063404413448219475571590431772201448940480533348194351868036472754316320880551769698914012684146510955417966335803428584074144013878948697656232397379692416205935552257655497305671699952034108054766629218029693462399323398758349434715861303767566999888744338889040652417496173264829572190237120214478584140440823321864523590267542893168578857453238384018903507352432829490103186711607013512135928977408733590582166644253817656156727776822107014480319767516105943199966831981677292454754607806521582526242566993802989795271276240063338021653673680765152619836537552863561806068802362157732022438118983270431740120651674017942662569729967737438757968130827611467100324616994347624314364050661830062919410571509651770698868474317652990120969895462271561564558666186341214838666054191390515787486561846893176875209757202780216085519846025480409027856723078858243145377628528731316751764647919746794926372739121661878822428534807928624723541577439338400866364762883748910723217044420068661477545931447442598194022901642002816990213890566757637839298580113787711735646477364628469988939799820676024604317213139348302740888561131955690522477578916669889038805270593481297119808092977755487667106626061815063173745882882963794115906942950838862356874406099185443868728419081842744709349857638665798430120745270100995823101006877886255400012993980839120132254725924056564694600673554720809619159929950380498608799337574680877949962746502401554614660155942486620018405926838378687389807891448212028699058619399659006782576475328797644127592074414002597511699331142942571128300338453119479275828269413058695869816405222134566471563986591943939415068225659210196146917429569379303974657476197311425693759629699367737291231978671325500021702740982405118382677832775570833822335204013563263382395522548613676285617084763605357413586693383141504567982333095341326801145986912590009944151410118915001712812310490834281176878458170264808027430242710246581409458495373455457430734330422062359312388347231686082299625220175817168832145193985212592147277224825132739372219730732622742327194202817424123482660296636684393462956208495766637323860514681089461411056021430170710430542303609101802982072779798601144598105453597188534989996377948722848292802949395752689417960766660721950583081277729376359653516735814238885103564551239560908207458341141007564606945638983002299770955370783608377420514394397638997667898601180154524423741212102368953616688702564382263852588329644403244597878513302004158743294326614837029957219037516329153957807760645457466634310422990010115699812532727766173700229252448262179871786016206726557606524668361227417382629067807812231171972645476725717786125623693076418748588161426941938140005004092724251084602933394474991406453293362313072463608451978852179264232005157755672449853806081369576295614626857225636948222909925961896418395010030508232681275409741023098112994273244879846025349213747252711509841758321995247002541871219338447843639092786329278131375780549504766644305256564466045654512189978157149127097042418731613397307830734901249038858336197018806717820051012765779209390563319818084150974098794360073137616988158620391572709639214226909216242587303757878254903543692502618579365098229600780752032288494462903421431638047754183140838783541130930382081350290215391196848005066414475810857748920165320930824101876143740082083482537178103612239722801756596093764465665715758746939896139214315836474819079115035530668834992929041812989913080212207003899170697332823991268522714567174657145402600813967191991680268246401908167889762156374870819826608555785250457284800010655641417460471081982697267642920562356067813475832888472329380051080374891484642002161086041635597881424694427839013088091599722829664893702911617378606796105471941964081540849253915141210407414078693124811908483436320557335361424460121080579269132873941432233252708363107191683640354770801466480979379941275714056472747629289975939659260663595717449902426621416216424229365721411775452436070007160694112574151349795046199656043086636829266372524446073415852891423282948128711324544088495705385889119830735350042508960646713290512181734079218836815989471246817572913606535889289157569504140694147699616603961072397628765312462590588067735356072752757143199876744859670352387613948860245949115065492594722495911017295904331142386257636711439640083568503429954657434455023924455482042843756418247739572746691183308182130972686580042435213770729105419586764977491746789317767011887193602433199030644243895287315696731867448622284576964293309414978542812732340893342944641094683273175896264859226241152687052243569855573187217550045914190566322954046070877535632721211436046824150674758984860675242214995294813827353326698412039168768398029334025015093451725068942492027905725512526555555206792382484587717558119483767926353125445894326633372488944745190034256824384185058785586318948539026764106123612694019099261232139626355297087479250700353527930080035614620437280764660500208161765057055525368873510290978376020361967289044576717337501690768607727167404610495162510839884711057362745077100521300150564280182991255839860506927434613948034944649756533812550049263150921061521349766636901755613849405464375229480859068988404015243190086938361377500108676783616685044155811274945515203697644168286704273747866731554338225349943025212360725716375256800596438506227035084410375556838015009313191380275037989616176248048575810273730773385804654797733665283575794466064332182751714792699660187332433923634267480168591755929051431368606379037468508768070719919481804326249744198539280845869759721375960568543322095107621284403237891966611250232165086456860706125429581825581904600039361012586556673045754648859056277710222915925998930742038612453649953260138015335969004820081757331486677516881998623028485040502004855303290167443182774153449626913373370200704336852090116356580234408351197746986047230922125135710272449495839202113009723203656227346692980274941974070090775490089338327645120843807239230141498936809073096805812330065010591022305290067608618681023050514779460649778772305582581102939324714126872111353466613464667385404025971072303537773612400799783573597426623737757373639656610243743389123672661722591834389287876274279493318114321659195375701049291022559210896001546588053804677238181162974689993244190091134702602290932422898674721415591111722966560493650110902129606625297777281181933130714294538299955981866830425312681799154008087427562826091726921079982699047226560096770739750546283119429064390805753172661233038990978933449719963122355671370576134368271987719958187185117230218066842033797617112627504128750177979402357646496134412097547943664358127059385195941595038984374648943042752026538686837344277998268861077114636516215767602041918810314289175565555305944894268707318927019774237698086157287974242626231965631223720836743900103227614652446450060928153209408000448049399129669854645383440117380198854228724504036465791787299170907781431001877589145742253517459073874702253265006327085064779673453369436161681945212463849225494712049397203523849082120996322782687998673541732192951089672725399576689894581481076047622194218863826993526946804961510739964434239373962140091911313659050422344090383482064664502837695650565434598407019747613265799885709741761436625973488041785001704162546592708632833352681403445655123702992056534629756073561921326159745821805903865603007735617814405110626016979616317680096861926468908641972136912353188141455702242585093198500975803105232420657427060303900080863387556289073216017411836472777161042726277844874129629359171964653716351710910325623610673599407700967901817241028310187889234276655996509038212670612769053343492846014305381735935919714079849357263131991913799242118286744314000126074469164793150646049137700247276316408881865577239659248736272574782284789517578414424328066405736096506404294851277731855967737257845597619774857934544400425139302664748072127111247458241287105923998072775850048678537186969962484015814099007382378020527619333423898828943216671820162037058638103292459407808834758953142942909509806294829288610090035557287828766097599810749819854475085627473133144246130891478298660884645228583009134929383345517746554708418159148084954810739352633083292975557357734635501064026218395578690791599809075822757955969888020631960922733615544337896798662655916958773067635098964824577615340206497929478533651454953220660781826793156278504757935559968255789188625428417190344184949341088393109803495940585039255999116982854791133184566705747601741131231424824519503553419272973768117485346829591766917157718948354380560631445405184425091362977948801866753766382576625800314393712474929737672111523741449195993565617500456380541965096057267358927156980664547771621865231503820513220975660469766817161644399859486575737205440562475324455668257192810688136872465710123993934775702899533400934577756194018533270390208296889043066356476361245411492815123632542828540442293431525022421502438409524017937594082769072227192334239590646237181192511133117108183309837588158148117701903521769353834031321112451534453346426536684612411207457797278645144163699802605507004195016696462684819215024315272431517345544033973952079893472590579089757373843776859244158046150108952813998145225068815931319971066129022275824011642776589660847429905144206353227590655551095532977318131673892124683973321613098459762429843851760930075733903077600924943067515417607211538137824933454517798664440440379548853703491166819048534335288538542468432113576631421210113318083946736636353745700165130028156592522516964290430908492612508143952859501587667453377802534039372571280049611757311965046733363875997062310568627005530431459465721912777077791102075404231701989059237212948117016516350640737272778915614856261509707274784578115009117185276695620644756887221311345725724620722666174928098688783969722890663070742345627373238936926108854700579663724131218296144582626583087660585154573355787681182147570972612919764317774848858178000216188684182077974660674753176992030909246551819944544035783167565636252404672681635504586319583414305448460932898326726282981143889623550460201740485864146894308570028212696646306648176966242609682245991665535120618326647165052837510365272501004648236456952725984879658149544209569671478827695883583423186259839662430003096104659317271134231101203313959267502286648427281295822164287739269499824351343909915416968327259841752297187469204099411483131899563803838266879358114913821130377685817455994961648724262839880064488281163339772408633332654990466756703471375959502257378579845995190677103630240939804672121820762085169797804069493045836666736086058914293222641426498049079386244981488725618913287089173783169364988028884848891965335245929148853871154049703234314048524176575106650778632875695895698389879863916699214221502044557597681095989817949025409209768034036539627187894825865112412723452423410526666945007949463006379184682043393260933200295140771118875925374199364436768445422165108211967892342005241316538748108907779789632660859572808683551676565727785512398725603708980781247308184276167487704982574535651393396420577165169868581666445154371264182324503928053656875121360489293723206492193191848353570236097989801532501654568523564760488251807060307145709067124610764750455700588234601349995756068925553946609971505607538216959195267561099555802548874000622352224186896563018877616026700508763883473486575470451177641970885051531005811039183786811456520053834791651416132041817788143590465049349228630728069799381023108519208097814995678091873087537630586284874205252638635091081691273437173644293883495660631843214371479127456501243853410399981642077939839475977168210553070368086173940787588856949005499546056724040498033201357241004841645973025712952376444366823337831788318944770914530717482478965152201577103366888320118455309457547123241443088585842582636552138092183452566769756376445798820401867726448325275569819842566335288306331067860638506177943341746577983205799505532786115350250256124585854849476702902041552363390533576104314061268760864506977560728237508257816491046736433198900726439361598231878038329310655066024774747934900423098814060457561643239121827205735386784813561142255110919946536022775990303776964639354691911106818386560333931972136280977016383436943746868219545971002612471214140061695844083355352417708057210225901095823311568092038215397383452813647405845023178465410996233531907864616024420064267026225475050861572930107772866728408106432474146243826278815643014941530777591504557517274238934461797541239591305113403237533953982462382256331760899425449797065168810916335159848449365979166126021892206609342839616071605837986302611777700524085401889438816440634182990096648478415316459402752691638367507569822537865833518219391896724689392789776314191718982227012408255376085065179686797942222476986335527231281699276605706831683624887427728286577896316018140891465469146769763012866654146624668787921586281362896168898684340422745480413467036364606341974080093217875778406088615329380067704273759733504894290992538766958149621637285773463552068377739290550231284943778005774188775238261421620827147766737756366896653253801049909687090259503009096747718842147669383003267685540347417623676003858474693939274557203898454502418194215385314601917935383467667127600468461872712148274664801343387201032673317273494855400337976462561743616264866109047292244818483541017805034492295804770794722153438802021612493541348251143353576585276889523865423114242161921731497327727942694718869584876969262820774425480126507762870281930870388282226916374409835449560860986686013955453563674066002782632376754262659595481985345350452260265974325131029603120878233568952561157852536946270469197013723746604389153528603165635556286164763074545516519757258361838669373065468055199974007331591421290224597998543679614735561447596188230007343522317619774157244565679594978094057040931381468736544190463542340992008699097297479566293928015653947809776234659179695641728711544558450621190271091483836210036895209612184573771080279891220139664870392345543898139967329992840911683013707619930029182105522179377874599544445543755439453927545158521365389672112718479573601531399627478550025949580307548305424745705895619359713826205877104153719375836253319729250325435997281824030220926274573150104406103078897048333764121927868495298786721259883410211827436390269674450389394054278452875488537967951496893268381282222637057016854089445689309803799582878581423877012655395521753341385950301478330191180467596986272771145264564582631915535533418358167647315906761497172383054369843043546469357999610674478904210557834204207544055426133460427097444788381757865162040947812075533056072665697260351547649287922933036489368258453509964079623616386374041194180752412476121448632613348550647754287148490846048683556842097331305171700277484520892363185956683032490630268088529838921962802606678822517391678659397958707109208270339609201547377788884849611883266938246563565544558533102367926158295002447739907697315522908313384550287781068965245580803008086627479918571122351387024044545696527807609398503376293371763657460022948204534476229743666555974820962130202227987769425677565508496298922569756839440043476451285230355593021184003573459899384289359508730345243631234322755248478566477534156281091318211770949162005623695892252792589044661497264824762284792961694059731883633790536599912966713971827546461744308286391427646614470027152118659394125202077095728825727124819792181871506264652580841808943123196962460980890375115753145010619887242135466702307716832681769227888376497009847956360176838762619036718478954218269526601112528953130083000746408753047511253094405112695194183242344760261000258993384914920455131906078722761176768958446396057674375177837384778102154217301044899123055079292613047902821892349298199770616865365891008646046620055582203952652600666452107287858966564264448868466183028107972686810389033991772866839275788554358513546263804346158877954382252510917806635875311068249447044988812532870216449018926485286497510597603219924164867501932085347144259661270018490611263753316525990831202243671976432317707943555073124092459000592526544911695090351327918277528820572896069448158943518137331624179685546715085105069285548694761270136479004158380103685665024743154163732829291306413718403823525101951086118099882035084593760510130096700454531654414436941603498847722316074098750240425853548863022340418159209391752304398915487884340791999283751239756796988615270136629840424556019062765056232820607403563690730757255717247133282782708854393806624545397184195654950873177279731665415460388461765751290845544561260899778737143918313434946204744452318200111773265655666785345458917138246431353401573644695254167210249048363482216132544534075654479958676749597033526715744131554549520198967631250097188845412360706621326920948866942791879071437506701544470147725310123353722346575214160073966307053968729062504799196976398941696783976363468948364199121515762831626029961460984964324405083551702685031454879924172924003378680461421581256557863188994103564637637426119374770243689164942614416137740243719156843497732222709025163159203299133237685422198481182682788948304820878792005289276291545173502523683702777399484516740266553196450873795671248081972757214828177739254650027072366659543851197872300484363334749948392963262406259111931592031717211051941518327541819657451531752742280540231009140409732022187707548933720603550920912105693090074965422224226957879686492248758399874469642082562028947102402641296435608783813755239588902687099688892212333735237060306151863961442891137586344059625507446067298848586456721358058240594355077991031932823226583360511959378735362756014618661415939583493602784328240372679312174347086427913237716344254967470803660344635937950353823433626760733078912356489875927965916444440413169220939419622536373469822340803882803774293290197418718743713570307280268425489881610845227804316898284833439477462759591863285402593714439769099458834529394286456553779538584221024813754027520814158817465816863831123618903424403039530013539920122130557589178145936259255718296633797212132713264486257568826022847874721072894045250024340653940712374417021733324992020377815083045718904049449887536445955242872542972556440526337071244005715207115208997633550628402068728283225207853032313060597110775829360677336026525459703751341054800542914308971166094061017115718702514618728621012430988260759510201787634457847413252472704136936469839774886157538637366662417569994017619330378373337354689836865376848344507659807484839299242651995565345158456321640621590870762347867073946859543235662723274350177458346710865241877864940645338774390681896199865278001800486788276747668243639833995443466672564431892472321996399983912262038964815386399313047362370892101145802239456679371426840208943672513165206821332516608713842302912144062656670696299555782868882686464442811726526505331924143286895742323792624858351966601273157531100246174714854881460806535503746911586606814835226421766789934885342047575345781440461375551641466423519213278125636942221872603405023884298405729769148964914821271147131039619733041881274932796642583964378857101147911145568884082393514429669092068084727645600301629108856487798527640911399262781617522600417013328070380513727008437632781609507576095544354467251195126728025296630188299658101535808911289932688170358074193224749333442180043833957220907103136455082191329321770486884945220518512267529999616997224816330880067200243083634411136185668033337225262471027324365302292544207904574711396104817417432458217599455093933883099187226308732404828518692374151821537193102248406845584478257446734464824243349870453432197024246167747189962950316670395405421474166443407113704098695538015912153897688696293551122577253716869358806804830420698795064042614135148777405408934501331452314620925442057065285080822222934093180986499743783623828125753795534181535275094218440968125196459974349508254048372182936440815438780194725768191958780022370568823415088189722968932847200855323291296967477806284923942896564571430948478967086604983386829346512410315240563124432941451698814133722803083036823593904429882786614673214919495589479337599736280753457819147681623022640848813533816230571144009425292225760481661508135255387555995014522208393052920156379375184655746542210513496152787914023392660161481673298657187021159047821528478802153714283870580798410175893218289410164415666302314635281221002339675446073336387185358142984469007174755758276904241305513479437993473237726606659956089246209440150569736491135113714696883649936171674170238261380031747815987196924075997891278177459751515715231878355288946080083242468631171286417248901873313657132714423406532416332453912544200416342756911861039438264062387129710375272856844195856823040672197309474181113607676597017217938860810629267203142787044417382595777312563894790788259359676371222926238334875036097190686921722073312303089771276419367773742577176008569105295914156481018058327603686426234342010830986556413646986841173555474472242349179977647181048586614129498345214065174517016361694514560189986186992410870865377129294847901970200335941327450871451254002357462142292544830344506263197716814254215322192675436550596826780324391683640813462067312030791697853288267569357155880422644355871486632801479876230304069141935968575678735981711793947332943381582635348690589588675529208284325124266460343509875167947010216271087107117797675239384557638734636868424867846916458358296587589175674957047892288533714306733965228960021082443317107722866864308018330465934627848468926922968503315407514981064773296220412944972441846683518784205027023890051225738591669930734967663698216483572553695665975854783913597311350937113576787457454441074736740474338295221614518583455650167996711976188815709720498259106443885376139391557900647756058397500928324945589079493077745853630434453748793527160700608366857932493092868571229363073025053266759769506829454978280733925459859703824511144164062455568997004527196311389494050297904824756038402648506906023561171837935292215002754001182960491394517717519957835154493054775031281057573825849096673626333765664098558844115828095876240863823688967944260096551739079617535982475653902384202121974754402817302181542163977605139057598623845622467537511989411845188236034202493117690014186247605009598840345197898991643945701878409447603322873529355668825035647642678665899894071247193928720466735240119032793645519944746426740844764700418314423381559229243493376349581863412185938854497517425749564429973664692004821687869676271135204169482159551033676691610824474636513185219836764919986359093266049177419084831686166156316301477144789733841985758935941076076617562995278303509217248981072722991943401773513247731204175342729724180561509705702630474864386898362053480510334361038285257609059116622112368323355849839072252801130184501571504358363951054479149557704463288347759648177515877291118497182885559264191131441558644422748844103910256786196273519784773383338775256798544793819890198603390010435817310409305573618777755533230407238594272974966928787439990887951904559948315115753176335878331820475306684452054038648349229044764354036222169681188838858970225696265517435737722263930625749605692148278083954990198282436978070530126786270710905254495933877072132355949398081185374871438674400878970572714072390600532637242507981118277780271994577679796522843687124220325251537849542820287159591940364495392554087461619992532452900159462586877651875899394065330380182563808045857893958292805457932142764218114831287842883751241383233358228526611144729955019835661965322342747084554034648333595745196569153776632111837638003714684372374761481168750098092486377155093015820382599829932070596039995528016613950847152552545224572106651767568240886361681384047458236428065121505223047831423181642963319816769824166373305443449324983220948014975740783661001320742895117555225517267636819289243894689864852974273085081984041497573779732345754867059196862829993978321367782069787722438265166354170455995920556923003171807848439863873063099639205479275026351664625555746587203567292676784403781482781433361484939084130679019311051013116006942902868160148634333654988033321335176398881494170111629594800156058855775071888177526005251044625288310894205777565208255988820104163722759121845101054612973639782141556926964484254266608274433601838083935646153252495958031519666479900533967285921898640523800819976392423218695493995395080271850842547163107862387400982423987887552405248558488807442674411819499825425862898023380838264901075210787569104587140202183553908671871117683375105396252635532737924758418799387405932248082318928571292276828223008662751847901468346188692519714386833006441707833381087375585792140365252744520683307819018430952188825262707739878270243265070614191896310737212201687597244687122788405351319982144503146232284673913754472115858507600707735837290186519035766702384264790174018928607048742977642724348253473202816175650819856008366315877543095173126843905628581676972439829427531534511695479633458091236373654802044771371756842425214240820835441655716775605158479435688580229478945266234053471130351343093820788766229287432612909401009595722703613005537845072756592960332111878355687304527379622070446063500159545473799932533470664689388597295139282402796026241206370209618761390791551015389927027306827930163133840450374563689998046285081253247550835848269371215898407148067701549125306585373039053653206005969131171788026796630482711722750037641506747199523429196225047771629020153597929822091789781802910604323463912981763983260174887881850661792767552621905209852523728685578419468599663571309851455244594154648786876656873801641556454335882343384254899326444023869061835574924028122922589902265753220051259431104914027195036182415790922278907162230722119698279120392442230885500725144812578331668665776298091650235230105532438026700145214736438716296842631098330252019967760178365713616570059030306131499920673904641393711690776837248861776159327496037055485199848978036145164151453932103073670445443934337710099412055114455442180435840022352338959662334405850760767043234388084071565814389507361836273222910193668102261384510295312533435489339644720626316891843771670672640637308071960925954820521912467923160800038830551341112811280955649373575035561843048763841083132911636158475605951122573616886971045906748854213895590042866620663033261909507698853510187706147925921075048207481487191720851420093408959400338670648630114005674812113026593368994509731510885186234842853342281169138004566861057383278464812975781911432716490258477064517199051597175788723981999482747330772966279158228388930086414554013475029253106556650116392738937706090648726271867473466214503684967828046903908999807799958856443302693255542622143092568892937883127968089739887168417245097638526487900296337254596057619318143902161227292213427427705770486053919586885963706756397215237597458335606491331934449236399448771024669192267420862035189905997423210385769640030328028749202377414024629421545199642638038215356736083938556390991425395142668481362550877008364083401808422441009668973187740575487425159390438023952607622910444995608827001652169320508397463317840046313384431390436237100347205247833737310537708171206424654607596483562718166519577503958832481810671111143234331195411291097944472358439465119185971760651604723999650896507905043172552544242126032346796266404509026980239235277433941307560227605621717006810918595229285085627195533571645554376368035526123473112306960294647531048988470759833083736767823237739569880644489904137935331183756497793349109513323120024475442468166298310311400872773733421673148409763386217124841511158943425909321100401709628561659875108884139048498800977320757606102417270370838139138258737987218549342001517093614455766533853179796363795958679893689448495386556767102016629914202805566768379939145969697552198795544738308276877570681952587843830589431975269896650164866309723623180085056702235493232360013977454747144560796479146049736975414690232926130296564918578646716762760479596261252559016851965075050813347528181487663628626718967358761070828488697795790837433361816852574118189171886477821572830797503280567447472010120016014442427903867342348990207678371610184687530725392800839855243502689138612889231566601592202453475540480161481652557886564693228725740499853993479766128262969650729623230769715137696585402676486178516693048454721151422297869827716173807983411346257301074350829022194706878601417266966570226395029737939135322937625147086422155168656663005805464692060148801460864244503022512807355750667389193104589370912746844078601210649766971276577685238783540423634729622505206358969579645508700125308205393801714418390477186996227476215835492824162203971419360589001673230585530128439496819780999641295236335685877854874137669249501598837112084641055811929245028067886803312148475444097088476335829112396709773377071463509737238846594016364907439024215145746188546213484447607820973141682719306104155704718253353111313987401494451914111172566322285102465265275688166704520616707157193160158287557647770463588965469968273346707506119480216258955511344525208729162175582744595802457526181833661330024266190297193892324462100466869536554800824308935493551716667815174378312301819413099735675200542749472984555068231155792173845404726933668974668932146517515241664708313515275292208754976953484977317632490433643304543130658076393602840139745571786398505379086568693758836843136978971585400299826993449506530952875855633479268665202907730964324423101198646859757564900790231596445838572627074932827572934416039684359973577740161727665550645155518995246818613936120796378525199297936717937686756123961892862595995951275684020553007899533499350002246949477506734257550346071305454281644155897882523145324418684607866724268732722763646265406983812912775638596188937525959605134236184211047249067621385191892673175406194242063259404802990379280650940911290940612395501432246140601173102162838208985806675614145852308893161552220201154898892937944416143215912208320581751974082538000386763364757865534520429730456187876868636327377032960610366117454782632161020230681777122167284401611136579397387905683136557708639917636013135571485647829954392588879026592725554421130410729459057259101983732391611885740011928641571483632507205788333482288857238142427710009656234989508464224589285960890309236914963066498475225266979000183040933572107195793622710467873463639953261014209073434893229610207972886425155678434665586957443663789997219365361453724816174743525556542986822895554101551662854023506691149580916039374580260447800231925480382302992612064458679409630215374157360154959279532630874507954001332648485286078421244614032270498624187181434596175186008575786828891149766238525881563524016633228741871968853981505641766617962051617908156767242351133231751838111710054405596993743598362412431239031631561858823589885816059354136692360484292337324867324930348994064907914765780936461876197268570186145134933520700257330930433175985665092740729857309046119570326874737981803562462612212109102257108810067754428212342756579835913700048658904545062610054881091923520741757692556220257398807712083596319619020292042963455082306414571007692515512831675796477077228594792934035357934386250156474072174914872527699742442419123407107846581029986649460156185884848572921482247783951628638358310777171860915159552909856774216337401729598760912623064175644216643467674798153163471921756728558408923163999559327401832710993900473860890883433539200519731895618170641365760167402578810753178081953308504459876600932321266027421707411112704621038585402544771116678021607797336904943477695441087199752533991203162552205715824703558965951774533688359347067726017300327101520971572396573304749227395507998533501240812992013160504354543277860382596557295132072426713866320549534161441812196050752685819912061716633259307366534700877591868695614068045673268872186446228374941310661119541778944453094328200053902088176556174370031362606817750723414597852406439919121318754030098038294527612445072914609211353538361422695779582547168491766178017389039828931479971265122396657445520731063212500983110494853583663709210296867375765042052554100578058274661431025590024401196518635715773176775946044437748015446276064852313584469156088106188476714526690217313421117236296733334500481862475461901037837030265084569196501649199128724014343048576038199761584551566388109013946029470332428072818434159857594844972849657428515007580188861085985623393686623644534526694925747805378441139964921667614138639471219658332292847302758560962950475666486310187027706319795601254409250834368704982922007727912151002152556133567017202980506480589571395464829280996059688833169460964450986497531132151791577290375374216500544670631229218037648573454624107816726788431666864436292449132851079773164301970236407638618464623651476050462270095806021560690013884683513209900058470226450919822804145842732987151767499648506317063368928302762395902066019721418500377443420111510402396564069114138138525753111952041461971047684749755797888647023448761501787419547681305042378601232871134924792187698898147001545974660692527186799180507563129502424675711866021141074807412932226644844154719210921766440920811911862395627083433414487682467208803295898264593767597973105040557719202137014652741443092930695485806603303609381038653801235989911867847330002263566934377941408858132166819878867918619486633835075172394925117212866228447847897453375840214910266967892993063516685253204651411887715009651771717614921579889729200694766208410257019724811064687677950968046383077221733528835265754075765711060496474524964544405483664548095549526762488269291308679982860177967163281382339591015566405180473074722335654639272829838667921563886740115722413557013024910374023839598330626365683726331915783860670848741214496065147044895771634096157181893539071964086835306535064358884121487037361784760288373736321324787338432368125652406937144158221500838890667300138329891716323805121961829692586672542724631523937089303331712662407847457277401258972996362744407978968082087278040423568996146199903999158585609115769629169338289547327287194612110768544188537833752570306950938493470031403331147323799766633144496277662843851455002782805696636250606857956296354029114727546833941294721935119007117619754523311810864151604059978213322211222578591939137347491109358706331684178726872191557176032811674857775370788038057170447820365478585199308186246068116372557305387043331785640702695133195614980103696616887533476870934844907645840477815749790924251695750322986141750260283328883262351730895547161182528739364226407604048418828987749022279261806167702664273486998842612270730555659858514807347438421255349843960739046204758092817480737292597512702634485738792449613630365179340696833112465693902993509145133208628968116513600976324929534009014486823655522463148493161031142270126529346610765480372891513553740779942818819599621849916452924966076785138814653738250719373434416893629654142697098633383298794407179225579757027858726059450642807607632487631612691961526982872707965076158663887073653828018729184454844053444704234488146780373929677439859894656613124921624611063838321889909542703131002500789760033053617122771694955141018336199808707218166657936342220615902235408433243574044292706019557659928243401309229274365153552821081948013827429421428768944695771903215596487005365039543570433639361058013580474601439572544713939437216408831460429041921911244207576916603617747043448467916715282014452686671390007224264930286925361632548482893924600996306053236371107229267299553977739272150440150626289240506300405126787496492925357403395249136784109652498232386137489100602172090627460668311150400517682917858201223074837918956455396580835539382318008242729136311999323562785336059227749510395008940148460703544751019010305063533621801814261282505859067101465260062728932113237346651921705747743566708264107929065074791712540265412219456539805282645052135822933128096360815406248640698178493862065575892182043061904130983484498282892097920246178864317295957366904230685738250350878345577378312119043632640661254279061579045739710077748931722023529728789479353398036900573813099113365551277101511896622046116598259047920201498101286097353778726652977150904303486977891084174788533948559121179141757622853425698680970513467873693010016380939569651343089543721995128890375207233305465329903638894693617241309936542342984210284207218862692904189093902401460969943470908152176918566737311263924365413239515328737989837941920027537810960731458988141995918572877576002600335399191261461705348708387263612755387519731014445029712863054828364775746072168074415053353951693832147854967290042121560719455660057312557089658108173678667257011197278223247652967360784180210549495035712530428434423321863531818938550910584606295007212712770010213558610503514387825498763661469133216073550983959631666421172176577716793333928772338183051190281724502721375579191284289053758194239950416223242959617610191363092975946900006177213731177465798252419376956064767863857921027955286837185710596148550257739054408988025342550725225976163772523417479359947570343035475192540606255339563542869327160571331355416930233789688731316950786642377342964571480558245723380369554146199059510119889437623492637549351580852641809981537390669490671015421021801888707425683459966129966576288600919723152738889405178826156521980225119623439481690691499458017333001456810448631325868283901017601307213093550813015075380599290511179615520734079389714184047554383334224499757619657563920180631996859100451807410492084926233163555367691550477259584938300627089619434786192947917454540438504857128350250047429494951906322018831933438756559951646809037550279872076707001140044634639601554416810904862917628299837481296859327133148538245169086311834869943025735921213197062987444028968098256493273229767475664669858354362146648055016203806799277289351993047435195703341948503393754087571302995724269384920354702084090416659572760695958927323866597460168631786211203159545802250436145368474094213196392782993921115469645436132309398533715382702439458482510989914898542818256008726325054106805186158361774989461447202377715488987565176438181852081950453539393081911635675459222517544666095971465800671366070833372435171672457204241105569984085953170520477911604494440640676586440301945130942360125125824886351105922606589539974774375327522383907233771187685169117302263391905443715217870716295301387168114252326796102833765917771690496228424418227483084502281662980880530583400175388885229296818997212887303170895788087007123215380784927279296340084077788309550012399587261600671437316659178218370518549163096579198648185038378739267746019910681252915789068897374559763903716801044048388328872826388979889124556571234201089274813684431876693916730165135371267851616032735973425241405868647432286051755962039801172482035672805297314002242939499073242967891392902706219751632589239675107175569090117878446278890120977717975353482785328103015283307666896680564226473977449493080696415781636676787333384062400707146426504527189640582060710149122792702570395064019517260714181849520560155669931410446740556359490727353926960777556323833938659562570730127699666841022123878761529298477128136098485830092935665544974493521509647423716228185790779438565798339946263596300401760771668720371429015331815399337438950099272634286674763545666155768313731131403673205988610863663676572450274653592177901197221765550066270501247275405058001781056125470992167623643323471487483047459562006522618818967015037420478421733356552399225828260337411069807599735709996349273869026265004800359890048696841379363334800950691731968729874497422315840221224942135054966108285066286833799079918451248587807981266403081085080614578228841311234741364811173364812016866544532650585032382136236218660905808913250739904382211729580579385151377246852594538635911936013195186814921104890261059107434784274580649382933317388625545718773093118746500605424078575396165863925634360518991207388771282463330635590780173263029888725375454801411689587099745441318891908159785731738755065997651464127332141944161375920763129576054914011816772013087240625521120997814580033376589376016924660159116314563570474344122930650783737794827007250886710271679511272314968587222476210945632425144655928380819509696042662225394082429950594355191522454165584938981053606930157724871045892247582037709560699346957253252858749607889303655547186121302183784486998776207870000689551777306823192580278403326353133137160870039079580680379403576170696818519436747218599407961439898209585366356684563997031346548270960935076120599170832776435395398903611735285701121729086635792692525651567907012958666898226565912600621803830956025955110492560091916090106342830391268201065523925698574575451947918465793119186012465431048872780667169658103610611325007569681831334318412872782369756918307426606040961844406244096979800348808250338338660703703851201095903531142850533018206430222097217912525217844464232543410787234050111110308163653313978699037319089041158460486968190980652124279076309387388748968389941476870734134744409074941640060311050057926887847834893183309020125415484823010597383679570330876214945614310782595549755343639020674940259303583624469271870953666590900424826734651433354236468681336908258537233083848758808858040299370818050646157055013743441470318908250424904418634936360214044057321335796253676746256269993963470689731827136395404724419467523952085871986290130970549593592129882199589840371831287255604137266503476154280752307836387857808990961216668494506147012457932771875817020132004366782766287756926454765507524892702469935915193601885087371146508103625172210627662371814588628567400771281214883586491101405160562718154865110855398436389801363807942966191697210624948426640432569526769748924414444197962747724229189659974237953619355110845768840055808003830795629395015003379188873152318589640548201570953876863435874386981069367585421471650167279957676479749257609740127520533038454017294892141160554438560987537455377028971380026514971820292397583087305596084405205161510552298624074107085289933009370633939228280345712586096915837440691631937132975378352915662401683691183474748512805774892181938729895927251968607617943377951188933647391398138695839632780611122712651816328250643594779873055678199230535783250457308769952945527252483478178606813256848541026919356325736892957541046439702239639044987926964044734253604428314591638127079171137157851687097108628117789188308483049927691363677757102468536311206417163743540782056101245567331102790574927131083587306047579548009462832252948716274634118958603502273019835232295881549106211152205110415626382211287318292807395543464673713890605488170641609137879326929783627240409005734963771714378239791944272984562165859401156006166906343616969482171060535915954430280503750892394135967453585757501548219180684003588492700002081655855189771259437560257801728898625413545501207696660190936291578801225670702575239708308654968023982969126285709759733719887017353746672862521761815511438187803575916569174431539603185280491022437604032877746037512534827534190602657282597771151753397449304681586939953781795593826307020994135540996516414891618145589791568615634327711095126260619091548726854507193414040144109769269825520728593671470303274947482909639940068822756397311622816316721102566135565490757863974948416362903292637583113301467140152431148723371955940834610989241359300932396184732461511669199264464445861160708001259833814084896749851065431014627463530384642488947798557435732916196915715050340497357754178889800090032116964984110530008944875264502367497508270539023582297177089767815748606838010056344969021411279304861366304934863350745868811721648149780338459490790938542482951068472655302402306370856378179926203275165221414842151092044257741383517794712692229522180822987112085408897784828330306524130933762251872017944859887188384375993335294227113491047188869894641344679991905914015784575712227640070154331748804897707703394894455073666689490231692476885261195883811878614415790886394351054198528776024405456367064352934749187635370398103880935731908919028379572914125631263791808854196882150869945307978786418501989635688205847819396726702776550571999313052749154425347815127785120299237457569366988219892968688461646406346483101846099175292648973496584116757297999593757872010612297552499706195445706600028217472522063589960823881027789418682239291565078869994085125565248430316637630909172869726052254745702201425867743196411900336173242316660189705689231086570067725835999757246491510693053937655010749547529806605496205040781730497239063398288268115268174630382725684051292888760076185983765271268634331441429245700370486749103110082236125885570517357032632975658366980863916644702595676906172069004519498137769666544523105072963068672422535764728869921821449541227596079544592501391761478024935418213797854688289423032181644094860719795795235283307894005733466879301859209941873411983758592696436843106169222285765506148273102258065474502614320941594039039050125227668697237678311296117857407393516683450116069291771025551915072115096252638274290896316067565861903263772170674244103029561415807189668127574763677389427634045572667042529836738784229554547454335442194151716895428539532408495158869995550866225974000329205490973283802152420540669192029469570681179975630689255273621428943492506695935153940782565795651453656526334291677982949487581457509478275714614028423677395729208991739784697808529052006988392391101066289398795434635923550514870536742771504824696132357109376158489327809050213222407657402286090249224839654698984374747835214874322161565857317592724896691266562588372137887617488316454902410609825518507354884604549544254772127919917580407640849504185724138225629082280925659317854684247222010657740018784247300959340012888202093724922967854769563847689200719762137681179590789912648015907235672982229790801740225687611115764106988079885473072806065437886520584864188900652470422624369961171070633357940089769526354641750503380771630353931743644086441569406138140400028227108067973786078364702117480330220883221994445569251961293667676043191593172797509678680495158471976335994692129412131648620692605835588539223539962037147195123701559956894457409560672637306980642889254484560180822779601367190249409516014344482124751240350980600717804805628762708460946683717641241880708308247977873811908765515318050928529368152224898064956950030047867054111561853826740595768404043495315538295486149535377269358391899246963265809071335893302235415193820323943981399589555890109637035869913518638486331231923240375366825811895983645171691419736046957529819964363431994680702031473252039485608515657146203690443136863319448101595533719904666113698606490164010304286728638558828093861195120212004005967703735600009460955710874127746745537171590618260801130921627221998013650745327267250325472324936216378618740640730733195055241415629585723211918466954440821482493873184508323325900716562612693943763053494056905270214547914741024797743040354004642598687742807536062429062242518580376960574456830589636350714560608687590873670692177929536794764664378729780301800289396941937261796653747452222156217597718377680509250706740502962572842984813871709275993725092466946277797108768336929251255747188719739073335619533836844686664087889407159874428000003324304423743893595619035002625433453990173633534229158522719792851149489145571297360178710516991373909707361541488415810456442564746972715496315212895991282019880055001823250826076910385918439070548960005439225391834386806315545476404000071460928650521718119610797661851077259301509932879940456259517507450428834080021601833418547651571754955017147865152950604338930245116737607622851749615361916953792124643813818977289243514229369662478030552011785690199904327593783459395573004702952694811336469327915455825048085437138120384114912019952261958520410441723908087090356901487040775915391737326185742921618654043120003194394955606061129174081967208119248954771200557065330155717641601074709072004544141692746324916021308715855817633763179841824043308052449238034336278597061351902073207189824246751712257470066951214658186356012667668902739317271372918656169605977763374768067615768652516454863241041564336677653100316532934781493038311589353140101240919973151057984502628828153224444955951370675848811735143019660968351242782740508611230965508857689542474173316747760943360714331553506484835838541317865989263915191594670075717273102704762757874832162566906637871217273537792533116722697127505809110663056389733870880157118887984772387425256583568409392867542851521102463162929926476095992532799100519448457390768409932888249969047151670099967223579955509344429169750309644626616257570080915333632575670898476180096945518002843881247698662146589637344186196871213366065840536779836344671163551263466631426057866678200438852393884856762948446030878025140794120078292552849459762383064034544983086008013519426313551854298117151154178666352693794313046088680464311458644071568079088459800045806702538043617701603997794852175917765194002350498149797882406291493666161012472910111021714533765557138603464115924056477811154085016635858203845403481593836918482894978327778464745751421286345234198353316573790121931693125006918976068947754813896971999018471796885639053226465409781600004424991685856454710212325161933301092856544289191559919693566585717585902877547137420475543949607760557212343366117861365975384950408213412093520986629510509327684312748466114063429994115017786994914549352211134005650410927244574888220183903345136355967427502214797377485878375119545710159654644485645253694204415048965564704813748550500152441261912552403563320083819150396038663302545391261174194438465267452948128073652207770513308429829628572250829344394779679714175738013997788617942569659517730656855146931810065868117001163191284900528372893989603662984020934211447018391685705398603454806179797779925011270082039524514386548303894901420926869655636052676803036219581584898556919964318081006291174385798614272012197288902550555894534856320354985761724515667221120397641804097318656303456074972364389627336783358207977249395820583210803805980692882342346946981314682162773165947397923274005951814522636550485031204283569134017796211023940724235905030558282469114750756408141378186160978995941871893259164687362099954381624187886646500598184191283215464142492730047010999960366478313197996096499936989654577015848698299673210444967107940555497373490640249054306856201252863955478687984093482746103912610358515315756845863324930912487404033645558934566907529473182047881695021134144036951389269416350491836831243550591513340303135757129666034330483099037977782837479066104864718592473410392910143276722143773993301882518753751076727466637321860737821410581281396028589293773980777479431689802470688338340510634137198007295862561960800319979190730404189999233700621756115414387524549669059738516849140273326592395113019181257839108983094872940646372231114849879068238248831514868506439762648835145457148883672064844738409561104608805080209868981725867921531416962648499305963680652760340287411063793558504868905657436025142177284801169074554421068930113105736808878937001364055960904590599818578762697522144567456405988799850125100065819487518561554062865084597751070208537250121747743807397568337091131522912336053498523700710002667342232047124611562360299841256571889037789254631940940731124767309985269178480215556010496191170140878871765395843667544695570186019791243925726424896392382602245643313052785551677929945443252753644709057421753405710367908457130706288553549919918540879941590746109304500898502546721470436999765741998896770262859920749461989859579591294044547791125201091186505319771149962728774909913706914573890499025229976736214408547863851934775677496778874450866478547773691861880476047207899194017205420386407176917817992996560677216235802049111255122500897931409263205385654249323868670964945962509972574547601590733775457154209318502120352542114281290844403205290367459305930829129238931679377345955851544298149577622251901835816819166899894428649621915008501659293878417228452275569516588775587303696537414957969681823038791249636340279982343043552215613588276343120310691841162327235087058550766995616777354351378318749273989397841435432322228715676400920764192311401213549626799461074247481426676715002639820481868309532424240582773875494419857356770504968366281190792413665903800209450902462197646837532616022614830936516147253848119746963595353130306193668490047885208984844395906421927837542044720472090538036522974850416463143607458066192310939878898073663835443644333745375324814084043982449693384812954661000327661881997585125560840460176824251367833134195031829817080139621224781333906195217590415710457521860066925445531568094487244160582338276568747799829303918697341904980538902647018319719385201191149888675495791721495817362539679391277355488596957813400864489111053611918071571323810328245331632630343720085873246426409744868624856957535905993932619772122931825380463328462839990346351207446831344258292951704163566346417066788937138396486760232153872058960810017938579511952476130694137272006359933320247387304134017794439324876051504054501362991196908466189860702162595826058239216612462416309283806895296472954937652571349885404371721992218687407149256967494286211680617942652311807853588546866142196473169947644612766716917672520469243593015250655000927858981927368974282210048425715525963232206664410036769411322386619692721957241803098542889329724908426499214832497246894810924517902316703949438728153911799061344785232788670830921593079144129815260598010020343161927151399276262909101052353634490583901119011517050481024579917510605179186262962180714810547892819756313582612193715957910017584949546760934994148723816643314433792318115202833878532998810996573889543972251935093439268270986396947560681567740948153168865464387832351056778718365509555730565312434996139545735278614574827870473567796937854773519564742354187423964937016937222474809098925157107813402055506826989544058004104282737063230677141914955924609168215056943969156849366780766720054554864805076046653385800808549788426531961881805986825103890151349939639080027897856726237761071250737598372358666587003531303138078755813547911133707767710055962039785420174534318178839552390268137937685768169635907935487252836996272209074461447459242192782398968530866420913280839442352859920272174754959006082608542622851938788528224764306258741270771329557086962283066274084601017159554457727950349349698797043633363018415759194025782754486480062420185648032668028808800148920789744059530105471843009118134829890112436155981260707450921922229232819108370879682037633966906947677705839882547137866232119881758737545550710399003345122295245592852766732818323744835065588508308566062433303169683658330281894761394220995940901976089292997930676255128795582511509005789561483483880577092826585328201830309655190148611284835603786304390645357911926826935077348964702761318396736068893425160919621714259742916328271005701300140909276457492357275917902913559810483150576205792274857165346473463874765575833293540541574236085377913223992865951706536044501005321525501405415713783825349005293901145685963732324648648439299939792679262184367340786726933933030055494586014562410544090924024153041421099447061659188842683076650892889146717349648660495378682528584424216911972546324860457388279530508171416318929650916392725370495159955297639859593387705072089898686544965560009194977443234234255584300744534904847651901798499749591123932450157404825103286883927124622492169969742201053845525394986904719224422049442534961044304294207862076222739589905515248306429255981434170632425536718617534706982528760894392644599452457625994296010674408783289634755752131414554379374321155439038573208302527179722930274429134740742036645868128473183393648616775678501899648145309186658327651191489463947540241911603141916497111411601724711433440767632023774522683067263176227080117833008633738723645517332187125169628819913573201222118038889984010795737461615194782224690572995892748349462056444438904159301377555736687100096249918834133908901703427835725699070319671763434848755929896101268601992348198247074162916726918921074821752458293693285301574524432266275843225456646921924463267336576382703505035818549139509642392818266867591844723803643718866857387196608509788203548023815322047086302907725477918057450476789444136744660663787921416923192844425714252947260395035881468652214219281624510185467789571000558810450191949941027561008623616990196802893292702133649966146104039038968177103092556762351383980464573778428133701276894460218625278008392166921312673004561533759939234215714801696143231443499654324292861296000840582198720824537225855486056845548771275435737847002242492703510400090928630514534335426918804055263321689875995698453136612217619524635321890743889664745417951001464232832038086348368445815762599779358068689950831770717912442230870652771911063043169786536706961014037309941421774699947205794544856262849590555520132475959991467681768492754062744775728838320562705310400596793592135101327163843977264877917267637364878781543464426202183478230662611639585143006263555314937569782366127022195795764944848507977129102138443378569374154589109985215891318415123738033958358339268895063094521573891579911246556577605473384523869130513330925137652601758958923083628710056550849323996774862198132101118883521936390863481049670086672793042642604215300496563103299751167720179703417146529402393686772801953746036592916503838756527793861470176300451933867426975419785349405528665791776056029682488045503411679566139371889055219539976080909164823903987514881089651109082024594599027576224558178960140463808909830521719040984614996129003169251602470371373175718437618674522681652317209475547195491480514086049143893357047302992940861389327409758869071584061915846329528372538147661741447368822889974904208895526626378080242937532292145120129863778400428385846633919858508311917354308467000649527480774451888040063211212940098681260664866637212511788678395768935913880908965718912730590079546454870263127963240660030786153666801150724140499404343346922350707065134198755529196135489279445331263692006038840305640287650714324393408093245245867532557327209378599811346100714709123415632328730070782928780962327356835333019413836546926541560103302087116299460188088652204840609317531133445159797346609403679879845667320456532604070068206349319055698183957648276468192368208724446906143040548897381345428258024144685971710915492689712703700335530116216982050770133272337037694882888923472219046662339090557852501389256735429269426685629549672393910282323623341216786810945963911518246845712926674682567699220187512328771402255509197070182223607142919294251592668072492929532078513044745520929066579265466071775066830445375682346945609968381803034836285155135331648279804932161905937402078462079569986757618119104078422511867338530167508852830277623611275593910149611533210132421692244442370321579620453326022945553657399920518879680408620260635127704258383143896353634660988045537029969805228986172259546863870341366612642933604173700088824340145359953131481504224963963258477836688489122474497600590697598371843349091199121853725244071886563913520608033597160818040387179100711881611699936007835643103744879232565453927180934006990247302241199563401575751368287026138913784640987994735729652126379296873623015128805042766955981234431716157733238902998814655340172206348506441421067410049594499196277327276103127932413228601684723091182090536311688444770402607817250142254945803609582768162972683216344977028516908262065742553736210836678611038566273100863252352685020918526553940900174302812000687479943656482422632668728074965875459235299990973204227019489784546069563133513652961649864323361280698630051472739085649266654916806040134453006487304426390093131538914124954438325709776062162889763993686995159604931441812327486514450664550285244175308228796466176120995549397130797186219871048350184446625089543420202249318479575498840857169860294254406721843834930013518225515426161085670639797705493592438037483037187747426781985203178520440091670494856607991764791761853261456575602306694563805559224096898555370556082217900838498423129845070258280781507178019050991465527488674355100209733033032162691789973655753439184067284824712108638149599782703603030782679530898481035513277998766495035360570860364721541020026809007335489942226310968660560968509535697473326856383464883834347214393302477611046987799660479635280199568723831807828584730473420676703140868803478568991602073515960666772936296345424958700532828155835225813203741340255146420984161318950246777604264019287715143036670857068466452179353466566645991213597393769821778234645596463445724315967528421289059651501700038061247932815737186451720796895455800756468656956703593016931517356595706491887024512982510940906192447774251484739536357384767440856710196221562360810605365179727596453248440663131524053467742846257681374442330904083751150945751983481288450592114673639975622306641367551192384744209545644689903477197484103551357343394977409771011679073495769718331000308420776911028287042110731382212828927895153724238595413626749479690134111476221073448760394342242229903423963862137519517889777923117571100542864759503294206555110044428664243069063054694230823553920705062445551576697338218558847048588200246810594450474544708723799376933806256557040917042548301913553818853221183203934184487533298509227464747798802337797045056592097807027187635088126676889714732546951696881181157373191374325478951157218095675178261946710273495010219364442799094581863497455250650733084972640231775399422567137455249403723416589747365745455440034436055149677798045945885740571687243371445315418231977395736727119601122252439233127785640516841928206205937214438833816474697908471837756947589384652361307216289963998622639244979655798210669307012601281414500303889943377142778187442004551766919349467165964783783922843046431040764072873027379983077298920746720212864064307107843292017262343130235782375478907260068265428227751196331954532371011864389564987098689215532410857500515930833536825383289604182506821229484604949959237085099462933647634616147847250479392271988107620037014480499103104494235408581910135245847431940973290309205975682616338322043413741759666208052526977639885808300888903760186956601842420999688562855236838269083015223835918831146758927602003363951346817811636592806292812483450119419922041414350393202654705367993660043813139869443970233158854190306638016833760037251758446444113999127465702056531627285681074983917248777478808910740956890887642778068588500526339657301532644771672820435021530190194707588581783688091917705291329265964644289382245177659741978493982213688541257841829336554089343276631851806903135899195528477681121954605881020987641061034854583285995418333467772684229240146149761192399192221785578763662016625959632926560186347679839090290007373615174167156785418948507601862918120929746716686007346037767174112024057530265832613956311175821465761674553910422646623238030243679036111165031173353945747633855957013561731866869762469407219479173580617621656547200572729199035169593251848870919413349170731766722351755609069925767419158740965928430094138308844222609219309800284111999313957504190705011613387873319475411121337898191384157479266355703390860637828731787530808722621247139498123740270574260832953847912049003195649343478616416843970838473799156490240520811550675266011954482700064122563562543685519777843798788451064457341832416023529111800777103429945328344048778458656160067988622309761838855924694496886025318845628277307547422865577882587966433629023825333709742919474304987533509725511984979347126025108458312204896319808137148229706809187598516731103314972746022628377513307489479221281452786703073616177445209517629776732877891592705512222113124390685628096670241557435433736714640182798395723344009800667447749846964510244845936414045000528087465979688618957579084633572864431944094834170619964094299351379539392066400991558466512708611567467017237409953295169236359135425353573849888954187793715423218782552842387854238790003870279831728748938057749604631637667329923142032571901812054225348896140380042766945635112494528990336942966130365303939773908195152631207800613532363458906066558443927840743360445643635304967073406752915485747822299908056813627165638838324960662739120980915377962746182807166694492845901007354489103992200275160769922539988537857540842868766283007908305332679077677425657731369155647714091186658484826978989274231034279139279359018325922021753710530018035500603636694153674370229042895793991597100977553605418822012709044798512069482380745779040597538084456553354985369289931179474059983093762712365693365621705015602872460049032029586000430942294637705518624701559910423829346393762669841069328696019529871292458776174313591159497507346393065157800516451665277019573175981262243055415512734514851713217637177929305957948383093771584168297704490673146224799399824665277385526456229695294627513508234150176086294573576453358698337305263344577123681838624472429665509327221234014697600768247378800529204017578096379064553020254871758397235226848133040469846592991338280642847118439692591922017011289959926929721722259509226432989499256695681344352953356362982788445406656257876124212856917574023558536033753504773662697958866439465383248983128539450790886837246166264927608855239077252586320404956322504209973249725304845019610711870273829471807821314545366082026611874021811079469936998776456092246595053862642811428481272000196228403496405956108411756309484649948094091499656574915345889116785552516023587700211311643489410524187708918451103511847085070158300038667198870029451751363737343673958060362876503740174290072180283129107372969303296307580806018633866898480383684529724261856149759048516486440391792947384324788527453296885675433947289633407605312356525948510877297678250826143754255027245480376976862925923516843498136564057443520091912458317237568891710941012984316139483556869847293841190517578602621265184467272435946289049332700358841659774043981584861498383273617650281426114700109297549380897321910590677234816695456745843910699273807967581300617604706346312983733375171374642761988886724275779287001272251597129757589770013092641582246498174451265646520349014039689724760089321043158400680249160308686898803661968328136097808937163744207653758348395070636396822734177384212195447169873873869947740862126609709300404360144632791817633273176686710705250950220229441431140043698441489612991981859334695850117577772723213082867735977107648932988121983790349155595593608113430196095327236763842846428526381592263159865670945043438788470515463976990147516266497482547866536447623284953088669248266913291365426640428456238970623761669212553580270946673780223979324280321614742515963977045118165671692742585292367956061679176376887266654217829871870310225311739502817648314778233132418930797739157025693810836172209921167104155384520397364192589586909564280461839918625199117159947241026681311861637102796197882495384273902613200993334101342801678204960028449172548305886488898555123524534543944425410122002089290235942707464596977266355289281164226465150044669283878298681874677000454796111332694069991159900750054842879538606727802990019079358034078001618069910256485991263005993843071522222351905297539924141935116729636696724526304587356025308740230153086429781919680533220110342429355250460077621998200836398476786263546369044818000122215861434354787367887675459563785242768055836742102872440633483652625690196993580317589938999662044051458087034865308998110828685389073669232389931492522558467887340350833678596506183686733955764237873101938345679809383353600601990944278368178303036550895899110833769338447659935826867533946363665634123901657116641945723885262672720314457502568322400429714601433133420902135874512450671346143474941738913928389235660467986499731919940123783948370745262213762050103288446350807864885852631230824861968151830447305907648817520754104931099569925117646782916282046400651724905578650938953704131362774789216355819450063400508158381707700786043751613056762558744130445541788231642052877340941697524591326997122447269699541739675881817298280588536994229996924052757322927199080236476354680869671912944492690798610092540910124772602530974862732826313704204282868712197274304267644749556039381731242396924579663810808806585954663881575604587738760541788477474988027502189981674648317756405198982286617926730629649219487370989096025357958723968874479599336615210095497291238546458766566433805377407773413526600679128296136573317643574021058784325844583150512865843333004564350748294844107108421946457362442223512811708530654392876384390956388820500680641448415575821195134334941175097043634027757426939879267874344126916512237222139093142928138134038559154308599390613498168200337934629623753327319356580041596128991867508737036473195981552591377905307200976593565757126204366371852435101354616234163637331244839865184139645929949404723015698872218540476387476915486200552896233416672685169357646703730324036478373782010288957236100036191887347388801366829406368038416696621669598197089157885365608159723760702091652413614512212965416622891757719899928736045774323285094765652063866241730206886954494134099224839720132972657598157986198316581737164604354654764437942371153943104456335738688195923948093190144107528691526822562639360798120884536737771235566464092552146393360921428822741918921164073684601683265183474223645793262459110457533204820791525246150659097612703714220599437027726790669048200138648739713266083486705536376469459367724730593561200901526653429806947224196531221389028403188941145355101343107566042976284508407975794814020912578342488931330417377868184996719979681492306560780263338002356118188820388807725921873646706551129959891406714023226460712278864869991692422441134914062991536929189049349687619917586121676892904845382021309740619451576078174092691194759503190633901367855171035443224130850120561536659547080081990657821547086237851424439812211717007685225031803688380439505409518508226190841688473756986562735493171865239861708456628923198015618660109328655730064372993481858842423142792545223781330181083436825408003000318295552342010357454613440866270697282726898827353157097320545618295355399788635556500057220425894762474523487371001266731829907106234382262204872038047449161150078480845361402011723802301853851779375642809378044550643699065593476373243692034833000155412287364780772213501452433128430091352099537704835411960157414174960297882513155973450511990510492616179809963950265399349319474491095667584461104965729611781428818074197228203148520290605047052286510519009763825156316676743846841091607419508999018849755177625184849040346423588272974991223710806496006731182121861118636504649322004427683601209675355691355730715332914452599749842572885687961309843638869205721742970473248705672030554837250116870531392995875067238242770578134339946518858971076318247411334223811626269983311926330600330105473398391113851601703055187260166480396552779267776678681248417319971592581459000157058537414839498389567684391419087135452879614918296248799353043978347300007820011254654346213400407592719019339719236095081040999651313501609328708302630344748054486870886613620189352495923417875366637704988792165149713569747705524921282060109184069153800736361189219307094632941622366444595142129686679091086794644933229114736328652230280211854695705044432066481456515491745423799268825817209443882433663225441671785972915336554644406297061935144615002833179607781945363359793932058645597165049868074328414830022171134894795669839097578435430968317278562577632993314371193611909760191797482666126725635441563983088727682344149766502413863783647501646098487691872407240498137450737446807881379566805459609630740011476876851084853994804080053085998849994760403144829521127046030808178744174505653259150558097814173938606117639012530964562397337176769710076212917991341056730702565784287134178090062149038645565764129947203765515460286611202205649214780791097798570034052021405056059097782249700002425898933930106557171040822621028745313117175629763980723589662558281924398439723026956240804399806682320982532455656553734818667762063564146714572978242696976709129687574099357965697621988143027366435989457885148659070525575739190710613424126569849477881560026689693495758870759046929631192983901421354539260842776685340715641602230844983425983430479640344975025358425725626717748789999836029277422501562362892413767857883772437624891565340046064119646988467212305711564473078878655360055702983580786127962811011341916876883670514178149251711035333429711163323290034270813182537102957713475469406663751689174317220559405269103341755113693142211308154801535103982946936895297612201148188128609920687631234521109873536612011499310167633591814030361569112867882073429677859038360321919668271633001053691479343324678365279761634281539269696787545179358350059305362931393324018515453968305801273064460767568526189792819011728346512889358076441467381657338962115044863678588626373631687066598823188500060073167617296625912343653209343738387522853034798810538686177755271820285589754678878272095769352922969250041648963652176213170065542918144940579593459998800465292166874385243947367886688861969442400998795989230275870833286476481106939911725761592484803051557025700413939931284481920962299738950662441353124018693089019071417808565025523782422014565269389126722904632212885490813356825389071479641686811704243795023283649435510738792222997199223663738859608980628800433328485118461095189769595220411948088688984479719473222348454786480899232550406300049948532346415456107194682400052420051113357204983850837868416523847100271308114569921858963734799760524214268938134590052988093750537167611398775361181877185699992792717157572256255689716234208611865068132363519556341643982212334092196471449512718513192112554126100834580353671748716055646453159271109438765057826230707094604100180907995797165079893671430269290118192623505842138074184102327615778292269610857354770649967849314056230567880429700408363152523434874608322821669228598026041512376209715356174968100670497632272832086905267057715313064805901838273712604513461009602754620118226876782165103543985069448481388460947107168857179416801510437530199713097494693707765133721836126390283590018932769224146248283081812291185343813370142231225781054762276589809155755893037569398542234081900249150478392260878780863943637493189594835090748412694429279636404018627600313498133676158225281027850303579760668248088323833416086096636208132378845515081331311657649352085196910080605641350454487907853715998104575693434303733916951492841421651165842049143918674610874766137878460796461878969962694478006977213965677407098095967017872917106121190577284389040475213289868738323371561413087712277886670124527455579971200735021828549926901547960353364549955132610510388208259275018876859470176153393329897284594915737057888495534716364308128863166188893462281957831739590358488363558030156573420015923919566324085063501707179085269569236705925823072730389215962337821933780374643988278912894387732715684144513526154780947514949571781059834186313173108008903178901808328310926159320265250406211524933844194213165526076033394807812206420381189474231372027663467546819770168667657149894079411223419396164696801344961043280224616016374711488938608896410200533720684340715312631903824589730736616137072233091155861602173895089081016567577192888914711254439661095165835078181822329465865251561598174415784508427777261649886940466357778151865191590415378932834320298047474198451685374433840701162879687022134738687678192886741023105289594470444599067090816337624685866803532330588675803687237079773397223449160302118266109819393673593743862197768098436097625279568943830018948281713450480263546640608696156873097633236096628798068728421377988845439668480440691952269007310203009614486922077851680513860758110435015448423521758507165113708968532487965012450526583934052039071899602613820544426226439444305621725630557037155813151558033414456202859396613421240783267838382684744145040293666153340911212083219168055355423013157369024124821646445743384213192111345460316300240997829302077017311012244988520100768088934521078898145849910098198012364129669826442887992106529529576671215426769806680590461097469176627995459949082633177901339730294703141803966557800396130916215194616431612177956224340978896947178933900596710777091237004658320997076341354963794728494149761312800373750321648465374639972737866540910683541701124412373809372794647356236959335586085243444411707387231042012176336225145139888768322744713538748733926148765120272362333719773284432467228757682435398481646863960948382199254504422664035396734474854780184702098135869239087312474171772380840913829055505740140843781235126250740480038634247844544867187157211510713476841034571044282036157023010036978154977926171618123096164585562091601218261610067049201770344090098011933695086359596504891170103293189925650880490099313717444756381366700897678842224251272289743635920032939830443110591312342066729260976960083205618666751228037227223816203881296707275768656259947724588097157937805055729545677799022436061321184883123733076518485661980176779642169459043911588638017345575695120164185031750261118443362591950952139465679519621015207664440377420129468683679303657245918809762977423843077791612420786698371708633033095658352724015783535544481000653713523675036875738955985671812825470399554791557741199691794875300275000121924471514463558398441705915052233231456161465457921790472305101523677909841747409485952551586642547424204212028759298212160724975146529986938725700101557252339324201604754045831927873291261797114878985562470707983258497567144903048900873077868233421894256381140212765163588428625773289017331410266099083580173752417397277303595359560440634823637421014539161848986051110567268286107741575236581957467549951667060463191288121248291128482417851811553635029957475157341741291421382147035598565372145882741052820194674904051175406314092750805564285654595137112300348718713148830391771243865466815045561865378856868751579242553893865851014274603920390704182091673450381688814289241457379338777792102571578929071433025409668684286933556266747857298711236371281172120820655776545358568291206299857553419065915315554212428128088038078649289576447093131776761587884526503106997006742218180626956269311138407094187310674836908087104314451421375409003506172788162953028323944023335191411861764932228004506718106709893897446427114732800862700656849364088783080835586743670377082045356779129967105167822229792347804420453799915409805178181979817140271147182555127599338999881860829301105583825740469718784231512612715568842088347725238843402640614297262501744980784644339194746712305872862665192479649510134175490727469342644763862154400246236833117236723863966697686001966428905686024705426854083681147925748777266138266797486799511729645921138537154433115654511715610714462245883475378101562296873870685385916069824580734957600625757853031326095086143765888404797937734437757369288948481153354238436867794556364024452498793628392046631226913985927116743947649790892531717377795875494502958278267251024142452725935461999288977156343898770449442575527128437365147048512952385813977025431362601534978328314478256272578136131855699567735854330122724935862510246670185500509305141501718059565074203333688014388355812558578563844775064637599231406893841855749489056412623775779057606199917986124227494975967708168288648909387923329944199717650571160298625765492463652488801721300779977767424634317605426475533092894570304887285828259730801390484381204978699331788094461192843713632791909258981589204392978267329700396208370294969404261669136359214449348584294660423092429474602383177500699365276207303853796656693238498155457445141240835808565103247443370728561869914961257066026323519891999388168822988887257528263667024485087651522533802933407842397259943106600271535217473938945729312282784989051608656665522069367578255956073786817304120523512040308769117382130077593626270061539843019317208825263515403454367729044084086955346605658820933678484374583244534982350486287195139948760964084096495098982436421880546141483080417257537740893108316340483542501031385881997970333061885817969476472194835189104491099496771287634625689058212229269167876168005529777974842504362289380989392849746340783148271250836623336868352843559039921149717453054106296989078617796118967752069185604062366614121196940013616869308025609566749493085517065392976657892435346663299730771440117733748363862433655717844681309980377734264658159971408095851280303230538433247098100968149721237779938702262852124822194163401221655997777589562000343860350531335770618963148918233355735021294093251397012608580024719959001760640298245774225305519644861715726579403387297264453701867856500028905070579719680834502401501213765354249431774154081912696909143056280742506616900986855915231381331002778863627127067356750736836116654109104926972683745329257275037954747279798609197399655520450380705206723624830103678307239118429338523738976258970058298253630364543717169105540190403487634608232072008164687406467856070841046740813060752821371389738394611799468987660292596208344823963487434551768700356712398951056286343390027508836201902698915684554885416614875011497949568437486764368272679389766889297287585556477305758412133821070241031302386518609766795088847486829815127920732526501068872100592266514402457976928162362296773646334658804432927878810179854034479210955891654848365217373339102209719440070589960893949852782224780600552883297702189603050147942826424885905472580258889098525308635562274218717851773612527351063317699727892386513061762671591764624897676846879365182631740700884229892488405205990765471789906581912408205380260851394682825060282953806019076800187666989947328513647964665055603316656658655306295838191688154056405638334337628965947587625509979882510444541922943523883681203224734238257397707031702225130791091274853110832017867220907584591355744577535247324038389610918283442954437985382777546109061392278309985098337202556652074168124916137893723381042517516227129612880989681843618036935264836399010953873956384580470810035942295280851393200400249416461984344675984143594180924081686377692232554630069593053889272939483074407930795239514634713657834373392734042585760881343011821843852206641023390330116573474586190496479851396753598812314717150161734017337342652207479448830005564368902911130072775683548220964529753881916724146962762746375743843147131073630170849863376577326069873892795551568322522878387743291619310186831895593432677890714198001185474644212922690723876375950205422559769164045101376508977670183849518527347668745010090442765051061375845853874276628700819902150255939394052501277667109863291911515996540164368470285067333528428994820092544398962084094632099157155520809256600778176837935641566966800117417525126877069513329910614526043913148874497331582256582728498182404866846906290899759907132942428712866458036021596545029758119934437142801880683093744372302535296013267096100342287488532751102257069158337178259162712124766255990902019237293514836218207202360200135686118412743582869767621178121765796225719643753884570449915522047721763515002094737086604629370345570655604849713940778449850158086386132702100275757237915365832197288652016191948687849626538866784665379241032353159682675314692333146661777473486368827594532714484094942910133413586599959020673448462069905605828370684045867348213346599141724657028490421816735042557672447142786409362947231289029398015486063020860025703802161736635767674925730634038105724586015967735112799588692402768956572801759514754865295712877147585115900729862559406761575810985200284084460566077928033680721622729991963888272360281822913680538743766433943950512365275786297303943972782986009603480869599910738238577669738251004979248657621935576735032002954543325421868610261075026369439478674618034357613265055767236872985643240449360970867018012185429320308375117668804890531000165639999528201291779649150801747484488107163686335879163458251458874780776282391752231945056755891196894707718615612850335445248747198494594500597180425149158101855672459088742676034860328777173495944045073109556603704105430802556011997096070285338349409523134527892738230130354759178084002464292666064204226810074662611823516716325138567691242590267208648976224219228613493955577306758318147479338768507661823706589640913053018217326437271353090547370266945167400866509944996067536405305050662123202366662134107846208048477528923202551987997648785057561181450102799043044719918543994490933858648740539271922451256723430315864860711718193468066495856780303771197703364086139747673934588717127145105063655042258732507923406880252776711703151523684126687125702274330824472314972806751213155048732051811001130373290741713477705369241667495483457974744912277496388400121587963101791495210117893826847118572151477194268630882464699659005987345047919474626818270118213311890505844419579124471314105062997084888123529679703516711272313225411526774097241809653201497217828911766163038498190353416682188775252293588800407313553188411638426964814242953960992978873346648183310459543714201436245194174634415150182684066115084866490863313413296396125177820348880654100487932101244419952541564842169707898097263676067937768473039357265239059873400837854206534975776031036804140767614536856824877337024869439441097231053764337766608681456699382560424062408532032305612366107010940188721425925305522970425097511603043684411895022610188518871814201845953246350411960051759989369292248839064932326881973163728669906508935088033580830051860105232072778543369133650376030783470527770226988048240797393055473223372460252501488387168918692190072510962331927868199554423270306665677446832984440422113344878949217636691591046576906861302577683390176251717823624411674988279304912995968668198443588621017127611192332185886972530600911938251510133422435389935930078458128124413170237103122024105573581993738051660070854617402082873017869199347701200178698516230547980890508687087854994967620088353698651789767970467652147545550221410235852415250210135862546026259378781439612330960591943398975558464388102571035353449723949663548203014057447794595891204778504147918557695437744986582311523944061806532815611966555094264253732871373217678877269932679654565078357898504594645618148082387952753606264660949065825719669830658351178089956341837744650115136668127684598650065645741751293463859318593125662784879505530187412623694732489058413833287255241687623475831557112991920175251281963353524351429465695853181001393360038747709620367650747997636285469012136565011561362891165060871868849960700243846729800319278666632595641009448883998518276750134987630958669267558780603150071913248837874639845791392691720428682532508408314027184946369380515425720017946571756295665923263423309727996263098959862408299866033109524951925613361268428785304032137058669068675223214682609698057111049946586141808231975797760829161334024776582235586313671749445130218727321771868192843684115160578260928373189579491546039415234053825037310881894208715309710106327181447328901590177256320232144282204206163772497479867563685607906095981934656109803077100518401697166236509747947660398774000457653222513590764871443727887331357556830456224433025761066609553580074841478260604343483550498160858747684281596165394714467536638437085536972877801917155340785255668193493448335961467992927010562730732830660599408385769952800060745402063915371349795106581020295979882448565158337836533118185837190031187545004107132231036510334608879990808083066357569491701501620476519412962108440128619760379735103616064152411899561658946149559032877694526143717815722758773787600013028296212570203710352648238563349964279370716803198193842996600971339914784093487413606752137395067965586823373637812304701910737771364513555449617699932682041841123506535992618425035387474575491326363517324801370726541255224524821873620306084511081581607223467399868882831635492297410554999132586437558443487823273504695615450868392204392241216589147919327193043921103705139348375581385673521147076195290937967348115948890165592043139467122773891956451776097923393381659184724249131283210475926188480554914794265582457787600123268216060135453705037617177351413216419060211821440608720322316614998810640645902747734226464892114453027130709378901872717745003408538747665799858078885875113731827843009234011524964933225481681605358829890445876091743208154347957929307653721444502052760117775995420030133828441226366213455465100170834963570184192195566711754003928055931455761461814369409828808429475069157296134058461286674144577361692194502481002520506184888800895351732038339547138239700975595359202655446441538905806361528645345079110569886179035233307455964146103787471710810338932211819995232283649309714943065748125204676209506707980957695283546815500485336334003646960769762888553732015959623849195896208759890947585769525731354727574000446764332502423586177276247272523287052361308573164333364175375282242612869465951944354568460920194976993354644935541349319989500946181466780303845125204685710226375960634175229598615052269013344963350595054861096146039067477474442611062935944168912872199602300346720321370260453351314918460643542478798686455333772786595057028724019571755931589715022505966112337293460767058209767332688245403133164049379552648182252754576576026530664812651556209927936570630414102653504855341968351907947703138943500280726495121757536362861844960547486628296522759883235715647889903992193128249478085747015607111257911064365730795142162557822927034452632784962468065437967010199657483126358241376430157180975285888651474745473606785787279367110399509447191235510399592759427221146359368851807391157499920746906628497130839440379687253578001197859855598098459855128129095378992054265651533361381522273019157978957480860095464002951304560379370633447796554633726243717307912428827177509279703232402123100303399833666564489623432023811809223155669329666272163978234828780171509164254731337453144388908424434836611344908915818405090085974596834334993192879141959676357421529614719503727312222054034431347821011511722219559666813235419585139200518600878417495961370008094046237357671631295985232410634647645176548901470771003106307656659969797936986791626719510938322881512572125125586242893327827234265539527240834895488104545210709493384709937158124792435189694904950220131787709252896241404951620467087137172563420970943622242668082351400056575571046281008707992160203078904115076123482389374685978866585475280416490795067622068140285938172360971408646541461380470480950145566411887155593682495603592633239415219051638370384160227364764916669008854842684305257053466795971114295168659878537663676157133171220551595527040410511508786495820175775319155494191545264181828887125034171241397755143006141011342076921278744224254285961142456831799284337865136874173712561968392571924702892536548391207034776788084572329438252295278953641357411807954115282202331489123221091214186558373851563851878307971525937926826112149449329204777441601901678334049781543445029079317099551422012828536291901004236911453208093786256992522410919043611323443725498691039009528910055446452729923495783477998364163207025571866064911810411693240288189774342862733417333776188876207837801700883767993557701393591289538496979128162587189806003304157105680468698813572349184867464411587946138468645487562741965747062618113833141987057530859124263842387822362966450546022540886850120754048022357580877434140842306488210725551499066995696893649485631566367483691764894353255095522769681938660458201058693886749146337322350432808949985946880065272933204963188183367529489507679964624607790319094916732718228684426726333751846869987724451211971486705966759125117649790819933061132217852602337652244500292604158058139201738002431283213101296831814870133615318367616642162524103110767133238523128643279759873012596304216749472986017844277023155483809908053582899542331559225296594266902047622537420624258608984828248644048640322646693762916754070785875411908980751601041024969919126837459441901987161864475586289772750062920956100295384531993330662823826731555522504205569972066675382018867934740932445826693740184221449011730457334362225852398690252944506276537337728224045971791996136801984223791050818045994549864950105132494417678711309878985507464843143006098773720896291019987778822710815797137368056052888190862219460037640248666410400611590105936978312673812857993568680012522045787519963148965888781878216753924919188082274908134088100218289310232104563319777727935424054307098809993817322560636030046335447561663487505172935327503960537604746193788090649458055198826903356128514763808046720683510850567805669858576606288378239282178838694514852579507839639387783677221438264643131702181541573584467242470472626572221765130085246787115489052009921714886931428722098945585237286857531796673600500275595819493585467357847227289943759129995250323837756159627924040214490578956554571252084290751267056277469195658358913657816562846486800903426012942792854812302070128834152066125012382999563389256474183906438843972193478929361398716867091594361802402778013699288821475009878507489899926165772656261233185317793369094204873531986489913165363860481519745135914422966125731158098027210607903423885519119395487448744937881970391844237983417527453291975607640927061844558709755397971776539844810830853847845849821887071209267174301765228581799014759137338591940709597372586374667326396750010041764214858567952892463230033578550367299973500794442932306302962647942030450976546492484966397654231591087913458194302548192462710545837416780629869036886148589462385357373352154662922872992063264505581229570413377691207901948830913489226113885610138206360830920484437220552254407675727673415714643050881193478481676279974720475608368581402249624191803812904614321382030401663319461650529573935786402416700048825184694491637583354747104707542096999761012365640687945888748051987699211388774052032721514609747072087098300632731600328808662995659412260060865323505889085582839380039329261368657926365045430877446373623424081770867874369720305309687254803494575802131291026713737474591637538087765756492966354483585696193854245535987940798835124859680337654174397988349495791997046083039007077932117063744098773382858550119448321609017723804542131113941443616958093317515133698070252211173723924075846866918985188078263897419466370147285144366870149894366394346631263483311643199778701578478428018208099925238350410995867524020253624618470533430894239398019201880382242447956076449236329704223272609426450873387662380459856604041911478440631688414929625565257021838340739109739968867008936774817892278662330002766670477072889191260733839470450967955708665124320507642054376280038764968091529231875373173427329437200993174095085082428872862746146299853449985278886726360015632676234721778925216335206656566000113626984956121395067913369875848245820201555208213148828347164303130798278001090047463908286053674379552230720170375231647066428001921816137320915375658423899013835064134906686240496798783641019844856041767795489368586890073896154539933653090714996091126125050122112922558700502379411655859388542469426996919387691339094395953901263057754721754089807342304493754699289520784100922015977697927472190587866555112821349868018430993708747575228531246164888045474281827648089086449899785338579824131882404561333774025819515239866845851880554925519436102927463940871922003221018356688719531580660810058564397780286911632124076526626887327216848497737093124725822831829139953468090078346665846360083269344162607338191055308859483967313146004973568010911903766564772907207140512475813455691847011979499954311022683188766056876338293402994618026161039185802755056404410406340759447206686697797234337083544015142490699502612243140435564350014964693172823027603098368733748579126956965001126386585967549020777025913563176202769067394585710360329656297326676263886470318199113539054178810294087983700226857599177370966976577381302026650236484816308732290166582809989386365102394593495628865920089782718472734091684423601903292089479277597432325855701617089119444685163849305601603684291552998203765399079477286694860415353414916978378882833626128823705625684983482399525264306101235275590164581155814301653029080958082952141339738418289427854729272554430600925967564822763590966434104613677001298080073073704830112554243525626738659495668436729300802241807041789987903071164363604685090181690277129630892958864370227820896209096203278070495389569801826995717115426802188304485452113838936922654154291799766067740414974306773614690742622000926050211308977557805519451887175569678883720165790788402834287824940430068136547447531412218994613148039829846614442002889767144373052396314522913862903975211543704728380508816245292954471937481500800435407475569309858670806622026078473050356844380593849113895543293004676996608177080648762113981351127551863052984867184504407389790196511613882011970274775369323962498137206474863924086331791288952378912589913681608527000460074524787574497025094313065641895066096710200011619454477626255873337809769615643826235247963756791960966165601128784548814346204660767022386755461059058011067887925519200638121450141294662729790537771333923698789667926010659381466729227954572462640537716018226964139860880226990491823107108471518282784876209784709358274484571555027092134344742113516631438004787033374578193094136302702655339635217913412016930371634293541401731413859365979255253334090465053924718015044201513412138731142344467097912643077301538172306239054056571305566945292894780560987008846148686849440052185332283778718484954798283198381963615753512923215956762589168056451535581189146677358272185464629112581700164465394211327134289164554955282413205372871421933263630654115309725137554991749741389813905683110578949191578591485108292581206027482710555399912031791826809533009050969552679123353240555581444852661832529932243181414676313612314110915836216055231227394100905403980602623780865020363787999675671647692196836732210493463657217779481664997163160648867489156934482411408604486135515347213681662870737225264114022195390567178252925250963111382179393245303418438712438485032366737657754177470603685667876974161062639721973727860542385591989207138737020830056985378410985636321086040297803870984620558398593595750318580368219561536197966563776500664297779475826110578407261559354424161139438235151577967669847302794981358994540608310110089338499248703058013851978027027774989452284298323856061616324735101580338391822669516472182471678538427050972957287304048869751594407563837451053970142436777278572347527121463239421292002685663663163017958563590871476241776895898644496234286743057129381290111792370803295589709026633710141499623542924623669355496571097016324472503436924690534139097584844613152647539938956092177293345184902758625217014848415014751826776332018785923962113467223050665150059031305799118527901187671551178580424181286725628943542140530581166473501310225688865176298228136447603445984227880003310760154430874956000070892686263760028132954888464481363231205952755149078928301659553861302323514807362213257006740597538179781339154295951213259443243526982781470600041593455762478371290414916953987798952073946104100395989782387931465382482551261093641521480103445881391777988238475232083467632296709352384664248990889270252484826649295754278162310661077424972081737244391255360024719074361086419787942766534877360789163223823809671630245250224442677653544042492338226176571047187411181603154629339759973182177876400296630299702262567238389316977443062286162860152395692610830233707526538205162383587880932895521157688490067817525790282008587580943261260510478311148364415761493969540399966033039425712463348464001478265887521828612710280034339475822907430082267181972495876193826115205255525921473370025983335230114342506101773143435774223398493738818744343679267917602994216326329806946885573019526869877707865053739003411301684309043945992041993085758944742937635536485476412578730408439511077155608574686470490586556423885428994159083248067448916138071055079249056158496908382454583648763590149173974045732821798350621591600975502103591920089928687837450750847397937427250831834383922661049249498582323289045108773781868094254167013064142882210975349981677975749934902606731059889061160973897210553846631570431684865330253522502039001973573213059514484437276633687136985816462412352662738316689988085393466318958956645543268880740926584919367981908451437104319587827017856422393260973991499943458444271846346853132870285048489116202222208991870965709857976376878063986052919224090167893805474181295087075861117950575184453463760378472160859179687181906198958780824625103710896835778747623465841196700726865740446225596320728377777220249487204385072615399332864094867012325826265470622146304376250691643424091505073204582442065897592197835054326976695279419386432424650321609132014513244816827583524565706196348895817144990609632621242334542623074660363514946405743904518926679200125782881675810453611376184619602840218043924625977449106056068839013935953814834746396861778226023977192615681637800755621865540164797519016399933639380197691940617261084566365624882539688561089483822011116593039070271199600522941078956349219943496843827003605759699662127814767089120373592018847364826422695757453647627081823958392429815791350406348181978809705490698707487091203258923450760164345594649577952301658242741533023498307843404607862937613657337052023044708768199346594448290205750119122447942852100027701795283381109544461993440482664878675556408500183375647351798495924161198162970958284408441375552638520878554883545362033245280765994739819246208293983002459648341088039423143934860870879724031327250724189913748965638971382915618716343906200986150363721504822843307615700728178732417186882373136191715689607093970929686613208963387573287182589067955089506578432709797729430538839789906092213774151741908901030261383166674668435287043319137823291236189643895675040912915152542594459357101918689676709696531109233401797268678649359162224813993412976899388526627341411204037004434402789526638270343804550350495398301632894190059923029596307322575407585163341181717545343739180736253729845623449323818753564781791047871598640203479654047092694314727783947514185734261616739167574083789493311973968651534614973937783729320205950937754979889203925680073407328076988832909631507496730177812436319229273084756136831649034378197848083072716478083870784554874766038023492642339051590536215331766969857934250351878795089089757160730442581463389623224157136957871363588297033022126962884452846682256981068799692142196057032434551528540571117388780264196502319212588688284681491238679477216523679967382262516564972919392567048627476341525475049335440799667868576180800129994884352229237183985643733893786465136353537905153172515763303042747460334534424694874981116513066036567452761403059328166677809445379191430259358319760079484613975305065846344812816022221995375562500626439247313040742628481827250981016336015702730514877360327223458846098269372577605674484194396086595716235998589275470432456020166599441607884461093475275456979961455056950208871789947825377990328250867070516828168176821719525286383714904587851673901613243853400893555318607595015347733477415868075103216810052161612059827038758739313793598304793473486778972657755847798138503071555260881733057010376442310569044516174582905041777936251174547863905528214869313536726031741466606900357537764098570655312925537875497775435677998084432504265144649362720159514828514184903734195793747126592881893324444813603388797159263566405672326234848218407397172406738868471987039659566734825495406665513293325791854036756110546564115920780430115607969162173029104820037518410175495358595305362323039341703737259394352519332154866065495999491181393639446195261132660987891912251189357170436220930576778441704149757912939538366965760054864290668613782090282465647334158505604425941109886727996706320602274588993978977878015490076529460882999645172717841797681262121919893664503149719482931818834620504711536903025382639828434793115534464000406069619252506064730487859697521358191517919808762547642407114843501772880954969352525551482594097892945003846856149712452492106957246537777915638432744569471003679704123267037609952323627350460455549247667021083062150761966907025946983471290696365281067030696332056436839637634845799058088620932618642025963710869158225155375703548332394127906149809005646979987241374611511364574545103356036223469880338883010460137595456099576363034010545142210484832016303981030680041073996313464465387454528410631334849546337942846887971989559602516321246712811696636634879719248329699386523950243360011643359004082966795412306908549773895956033270047766117260827591244999210886605038829592665481259638852455560363617278401637220525316405115458449277692540607755786257269116583506648081238993761611511890856786147724501732065546007966425302375302738435134373615340813393472721484518327772086650986216589058316528708595276901908820431115047782147959636042679174247859530598353382021020805375363470080791699125698948717235221931816482784244979417424861532716503418886042773358586851381551097317278455453174808183093862484231594846852071182350615037623168904379228574236244185446071312573071751096779966097770686432814195304220334181378136938989180607894959941729246252332285335664919053040523805528062971252137426554495166233280715581539311158802570230961670744526485265840792060787220262764533301780527503851613940811261946784178483483501787741161906604784292758477171399949950478789013731026447395218090453618867532564901646768491593281463335203474334342654171274162488154955341140255279128409840026730639979029323531333697959898880053672855676486022420531049334313715081346446886956822412115328699291411630120731323190161777352715818973717673595682041002432220799621222833756759087380941085462400806333160581946298798991936314684538717874308710455735114192981557878002716026390798936801672955936391731610154990718393536103215161341479290696766912569097209927547275747885553131260198975430912163812524482003155019042628595121502937839163972818789247990994114500606620731660463076336484646363372368420781825188921340708960548791522797456834371012706330504577892303253355323289437826523416336868948514325386586809053905774004020834715839934258829898166348379252176636717799980885211684735569086946843406015840395256582607314427512195307563351691985396247032873417561969649006614052963391084779858538855238565159933421888366313191135746126195199906427249258154270488217237307906211025700145569082669946842964861583143159334853929808458085994612796477216143928011394145856001722177217570959506511289802217466018698035109364789224092344209601459742000249813997618482621416123661363318503548479606684687955999296707655204566068443850709996159103667575349354258447591195664976134732334953237353418916550733251120828524212792524105900164497418905575865303524101787210399328661782930025875686478668207492540931170490414000651316820826742171611984162687347106139735223083461790904035406070084909152361697655831775635001901432341864360667208220173230484929876647668471758820149714570568357191482697790254690839213067579537054737719795428980542938823776367436130020003066136861043816678416059481471978166360223118438774003185340693916489927384597199744202380846826486929238185378436272341740130386020082746077162919268985798207388026293192624746291679941865485954644956728434290407019711656213524911206723199338550335017842414820030382322792550117503638418553336600471245870894298798379386647648085976396452529012548331190021032679574583727993962424971726304332642064627247742026487451813601127243250520955956818924828255681426289989166312891494107721252819399135046180614927139960968031253007631341177223806002715690190871455054802311944011429258017963258582781016787575351259898368461697397904234992522953000565522853423044734903418015150570900584050748278629857615270169418818238381448299846180652390108468543598256046707364189242444229076846774736012644878463818301098356482696207969947104200178762337862795882978712470157319968922689330751583289834762317379277131869134558664832446684175514973549313838049364642465570512659806252590866331524219242238273971732144933477433616325303370451477248810850199998432041713938003031826852587069830321401478107411139631287735807852313949681349562546732186288985893170271897738599820526464091492719794043651167877287340586411049591645451232854500926237101320556621908378548902842791532043223200081123898810519999986525423347702003751292268280210142220703095608986387565463799211796396178778975435588263089444848953526931482591742475146098369563582214908960722732766217269662401903872072926052431348849916001511337557677872823598003372650538976300644289482500030760959312611114007507874872903099561928336193460190206163466302895458691273059938957916343054067630090320408583942794258591696434043191136558836072670311704940856087161023832330569581592646532094394270370886196366022961291431246952528464114185445712689219055952987124988268234307025085022744979997288499905499558341382386615389763355115601071038866632852885461032135999168786757668544535383004421342666700765090936323760333782736007249838121820152670642190937150765087069661227850658406503523545537866564744527953189691996666923281923934984419225960293083750014353822489735123773365372802138460004615868785892295349915496518433405425717260647813487113951346689998263187245003405005931697138197853578814490996430259886282198300347003117444443286469411669086610072887883155088954057089938468167593371596413087299974765399871523243608195935014911042707891618329296030400410968023578933100821953745872375263012178583384075854359035135401431861663780622707556005914572301284154307289544950692078968584933546895386765381719176878036516448413336141610732046326320183581676342423357638609476717110044555147538924900857628994168642374123065115595221985602474653586995997526254900251020828242521968925569529862424237951958478728643641220096554285284872478094384159180235723757928921064153321638369011444507763836516092926918344219292619311601694353190180776595048643947543614220665256426833538994632331549719700322367554591783835510398746910234844406411475823273799151921760651962032648991641123089821078435400824278287555214677680007301898232324539304284429320460900469461843859810522107916573120907403088489200447120637771621483396242157239742482805825095193586976681202238695875704716952902131986034688787851997871718989464539270827166461965191930851718249262179559984860301860900086253657276888862995092535286755424578748601581696930584532521243214726465055205089233351814692360096786564960145165079050046828069478472748785529838953279938258608044317018173345129125455365204440402166706741274749378403143016964253012535122282247623322691136907278415755485477454785969283141857044649099843615281087017567536940848495130854646307880123508202777608736626021407485363853907436793391110308854393538969586687166069351706882441544398908900374260839946116400386976878004502864016982325205424897318079122883016803307627877472441300905073897140758945209269772345351731485532441445624186481610465577671520841182402340071454421139720255857284925703763977859564424491804658167947292371626432806703357228165559248755169323454842599829283347151291075911125344467503317376622527144676293890941062015874573166526040429978260610339978393499989002754152142147464518606585061311010517568087535371105752314496589735141250206138172889342256602241490139832428806305391158555696109827457993568562787541693506812037051342037724472607834079052603052715618838896591467945655252672366067628941864256083415012281677290595249931493107885366905824570018976072107731673297318842379331553450927719492304806594842490394263879534077819512640958199041073132662252788159707629797031940008906030792219643832575911614538290593450747182536892945485280873997610969432068191131606499420890891285876819500605385599319011907614654012681671975469002101959118120909250886204249797909638812104859754464866051920940172951266271167010442606643893269760501327291717471767391615529825507303707138421678950707558609941568107433869247376382324297967538336548196397945742225958162780581038294489158930913188501240318877006789479330913053265923944364783116185798603960374884965235551974348298968316907416202403025295081430086923393390480350234510109240628340869708607879618478314631956898880808309271679985777798940846979364907543935106147744859142441508637604187578771805225384569102679579897915075766520304201142879891549315405689482133633521231787597029007808570631858201215157269815736446178866183037718973893944136985790617252883336159282133982235277226025369134018052132761953129327600027346077514776899562862037543516852548365007532647944124065060654695880003838748584667582026732503883770164860573560920370920079335745899740373716571395276356351585807806893210197737586928682411340687607534128772548187653311066190352074444967613419513421441371878873411553043275721018289369149847867633287974268207404138157881566503903976248207141761422274074630924289548131543877737683216133166057816578604968742773849227508085896726335339966691362014707216287014372007871270619327967269846548800858697597154118430380415558009848381650942717524243696437921767769241233349403853782789573783450576137725159625432172800860387871525928318922791468796985563659655974622644110311098472544155394289595480833622922535967539940021603499601524452996239278616443570417764227926699801212300757683864785777331072595452712238352927583885238492187535043561414863180692528660276074662465830550569754932435369703440129811821420168185068282394396964789754445882309168297796099863529754043246850129740155232696578831473477682906048026356953216137834881987045739679987070164546659246303027096971831625414299669278615493323088829617346126316753552954257729892197215315768351081503847804687117807704704213964897372447793280182656116505577236538340415745721883102545804699072957317894042478491144482816183209492219704517510562639998610893701419682278434838496100825266510464309810686888666363036144638144066122055490014025944106099035645640120623805942285557518234083692557838811648655525986079422520252830321923670259623106120395514583952903715281053664501691258323819304376237906895701388735261540007067991219977160807523862694146655367573435871658930607148882588395214120633757715741156798301150043605986352441139494140688226674336191318069476024395139478799603400485004236490308888653079393208809661636375111612520053332763036971666824725414881858226061409167016402287929951105765755480340569710257337439027106618921037225172891443876991723968766377892066511053449512997362960204906646431019463719534778042153655042436372491162979428849965096818576956666899063525570092225237730166566977031905067286906156925403113733055531752616493194410470747243717119559632754401071514011973941835729901193760160008597136909322937436798004642534845665254755429120620575059535302457809344913798052968522099610646244848138844142529117973195505572521143654389242021111410724764848423809935216484345448026803480209135926809612621754263327406796095577013885603500931921240878989899140407701993560459306243181952333931610211613025282034939787253472451467837064084994666467803200121972860924771978965124751829715053385008527797005544585881220509925222109561894982912953795631604947476624882347921409062149497851931358989735965629489299925990108801813903955576557202864541436048828407066115624567463003339018941207131328143697062314871953771639391978489409300326632188974824051873620202536650322160158787535074584031721508476737739036577706642767239052141079885233134414260845923186628381399717778742066194218928092568591710690145642424938156464153332693678383608617968870335469287917014319737282777775999720431074530551653112876355171354751117363995456515633893472806522369950122694922621856058307447407917882800388563038008540119231199818184350917149829304364720006201667656694798263845391979621205485284444890659244814097309388063947602228468784070872646544934637538013331700476168048663624215848577713275770816408112741135568425569174820353746818663936814293783199646914932569370398706998588501594054083507642999696021063281602639291926161120416578587616259359950574095003041731845497820800554869519529908261639642641622395677316922537265054286773832740228025295835431780156321696476855579629296514239944041072294267966938964371211316084455924474336864135489345372048202443018684574103532931059851535717037862386904974350211090610330423217678692397307986570583167186412573874175692546488457509361000516166165135602606350098438457275238302227123379683100170349955173548959821925636825235483618294796785015699242708974962434101112827524577785412747942694596127280202516264816643378089524847503074203923445116744514415593236342490298147133978598391955491974895478741568065843850432378344654434623646622809272815493413545832180898802788635245153659174157039717511576804772495865461696546678868542039904530705108428246628247365118230308818839233137005043487118752232172609612975791859305555647580583254381664973859315608555966813527117950233732318272994426392022180513318306054389162496834743022049994076689830396346676821258239220133831765418230280909257477969968660583505753679415218991541432763729849209127605719073806793119701193860858876681306405497093515456709818836206434022838451006103352708327514385719975813757408953121535424907127619579996026702857332444306304340461619925926290917746486819504588584902361096764638409123909254746833717933093430652747845125635758472250800987358158687616583339466885932868275368221473712515598280963737065579480348902558059872079979095498659341663460877245464805446722975899238761017170233513268718978971933587966729705109115393361981312028694980837646249448881768985366722260661927478972467148320526539803673710418118397884921014096664377119910782321988627252856731133290366656415793816920481787086391558864391899835303935272975619830742937898892965165763127463925762800833620720158826210500400769662310976994770340235975191838032942446030170123719956167389535819107548663094111852739768799285963185910940593574037120757262743084569716738893585353573796825456544903583860917925662791925514702548996561622008533509599250120254217801778138106056146906077318787337547606868355474194196390049880469973438516465734350532284556699183966408479134213893198744130733441848608812071626665464391790110740604830602912947336173716398001432408482043484688356014016752276948790405302180842298543311245272325603459121645665893025772099425751265107600415211238581270374769347040648430766549929834370507982347057087854730506960398904920783168943319431599320219177769211821661686773259750311838338276721052654566378625823417008472474052216921744061266352578796163312911960389907910345820215547723934022925009781832884056327963470261799925650895855632751132265479501122827511692634221119333474674754973554788325521463873695135619194590763773987594062728872248618168994772442958644329253725662187894119957261016341970642166514039800878337564100452324092248312268580603393706829312126639145986726503133455110537521760307910461126599308031209220800490467353327210089884138601139438105336550622483959237009636875622294791813448431378762311380955217377580183687728888814196533662389835731060848740927910066395385961404322621775131090943207301231046169806875586301695081156108160114014215041597628684328486155840129192855880271714803997994678665695762781169844403408646134044557534854461445358319324187194235862991208113298650251675808977414962104814802745890971662954618580805904907012427584732294517545408800926248024917886998500129760467759807542310295999739885421471059017057400320059030554138871503635128035455675443967761400089187601635970388880242861274563261997388559603598596270857432038383404875844535935916508281459030797205082213059726852924291707133620984148549574251744745552013434969940019214442083499524533929495653808175636137004154375308247089999147952628748826364387323471901772490749762262745305233841928946670314526739089500070471881752421055111042995756271252253940440392653686274892471419750074523796673381201052719194270891925474458852759449324187897520150629583744129073288759250221005062158810205009443898873451519707817228591132823800588360170329465133574410961802233267282036093268455112841702643659983645391342197037370039516236633882617221897541409974256791982994092099081606509428722854046659902466245163069913944043510328651369241157431916197415789422245175817738065770365159426495835075265644498026604617520017426797858922363642750338865887860412312855836640238473758566136842409522650866274868047587390974640878367684873857691101895507831851217535459299753826304383949984095834607493516392290868715904368930976674406012943214019891154865005618566129132803150431498575789139351945142145126772229428228349819130017546663265960057398545685273472709707972318838612185337393982830150849638705176542998796525282377460505389857831077163289568193809792985340100516042423131525665942350212899072268690973557542732492882720902184034601308118411419718805168281205730114453499684183541305080341403884509365420264324205514928855850968478794888692195835523502281638051315843085351585567769665286539486370018776751594652711207501883204701172311303038771907635807313943888089924987963253484056322126392669632917161067890486247685253124978158276653221725845342810599768644752256609251252512905961332288178317531644924129744734274354670347743850124357248819436993013277293854737250666710806582711185059552816362603698173415967009243466757752150530063710526344370970297464339681029825198786531204173916310067303927493914742009597789604697627637364151313221396361650100974011896997432680890748108899504148832536653408936796974988465701465848678173009110986193387355282777892278961493634746681790486129723582790256090416960341610169817740171860618638242822707148132991124600695381237855209893422288916229028106791720005118813646034614721583162144534453139469461794277521929748558252432446384992764305130475099222924595895535627529791952227030115965963553633763705956668020736823338738943035544942839248849843642275010473768008772039993407679879185460640354434127590688924257740257052184315894245347320947332319470218198729207535373718593671385055399759232190599929250319414619497583541433942151613586278398279808426825452384297445714510733005896689125199472163229237373029571229640686891481302870758387361227827480115795887615092145263732657901473582003388795839611687651015301943963111983181874782834921050155858757676738631926128051243917913875923988306858035869269826888149291954461553315671682215008106544750583890519011241568262859524028899435037289290569481055897218023770622248054405316759344379167149644181750359022399873912099302893844229925058294208940757138724509677186855373466889760503277290943701674416762438114147588080332081401921365722248228955340759604195320455678098570932110992816966723369552148667762113787229513088472054451514293144546781675454590013370008942706864358297995316980926331249239909498449007635383998528375387880148121195740950721729858572347952368258406792756925280395674293250918546494156049994618235048177116760952399310373088288649476128962692687519731187209824992840449563432308140920408610389970370045747766720328469849186831535272133679657736731120942499996970366761431125719425542549503234188723944260994962369458788714344440246981218119341665515625109770792677573883021168292033483916613432330383705562907506945136638734600604142423557635830613292912773183116081728184199392866651954373577095028194675593998753791826600497461355651165622819111224513643916356457576737228519118999394571447099587264450888119005855102023831188678794608844024705568577499799077989616129409508749738753970443126966462715081365448079436279325293643141021122921703768730654567834622897623196851634305033724849725142911208959748902326080172203399296925578842285792963730070807352438804898685274207282667188939253241543924980631078048402830821491319189331783991588123337404483818789946940932063856442230843868343911150769642974118806487085213004371295123133752579062105751947063024414327946665804655246526549491064257708039896046870647461626433863022870474992691330867866709861083237795448039654864352719238743150340153924080305137502942240509855192034259011007817066588763417718218376070153023472306807960788710369799044644814945345166331826220973744763065247266236435895704962826397498898058433992420469207123185867440605615479568797890163378330049154211640332289208620104978569037156192708661707275625707711310012780391800702338302668828903830792917137789109427507239136190314478498647809687107941086035584811135365202248722914448035278486213458677334564890788337926968480805174764815987370802208570527592922880196247424952582527266513806018583466797785557520062402949263811012437944914136690524696216938989924429097751641616049068702797216254628014464509724159528061900232149319151565312295343347352260135894301838092923868167875945388533076340860406719916437974725218312726990674907279347949009671174782154260022226321223821868604219806879001746110956618566167390832341747200613772753057592796734433291091820997636645130185500358193656930820895698399911548620924191018638264799649705456230971442260510401012450213698608081658396894045036128476652285441720768596660142696963019706444930009240881221569497692347279059456771761762971167796609207449229751187612743587096899503671115331659722835364565786615156448156562962263899652649406136622709750776363231658289991621220430403327538089920403273103943397239530239993358349488451782443580629155677447762599904740148060451621705869066737330599637306120819471808431303743594459883740580625361851279832521791936193566364635200508640755310332532768138967978598912463449160601810171992662992214843011058538609313880587633167652324181615058296245784992587494409936255115307516949752673398595381842578674199701587547837826689317983259600177879890088681581929304858907956138314613291298199193435206683589109463239990867978095956896696044143571109258551327663714048720794451777653571731566597048832656146540303319343176702558682461515370706159942090892631287858402019912870415929072127366720760686896502295805435339700356542161145198719223413232263083652186801505081533278317321596278862859344736757449949072824446942182518334284671014116456512879814030192808873100884953273514146595371566608275041233618813333748989463348648308899949050443153263986072238291739681645441135513453071839202172879961618131918447514069826263188263652596140244326910240016383937097757225227191838665860005164897929781959479456402232574598643517374129254252676629521223424948119115143238269588722950360427796922144432981438538799911599964329351583462797568042675045390368527136123811644539686930014604532683334894010528679465360389108180785347367044537176632430383547781921779764799145884292599879513292154663637459081595108827832429489164372066046494715606672528917147145761280005221688471613313175251480586132303677535613730647183821661962375073286343075073984598737542554929308253390369245386795134501356556692204250316695776505135747007848429025568915719142429174272844095306680164357639033012780382562735585532813202941790418682962761718176079206120034736855567133760992934457804157176427274828397492834296675176917657127259750838850919579376217723999808269048654125453966498578064254849111474176978709727536125295979513644400687903621536513323456078754085267625493275151799994928704631332331099020888001801829330483211462339477106882467678325587603751585798859713741483662155618970100260030928067740699015131207833629517978887763960666265397325166900455141113399775033484275472340702106696230737184286482761629493911630679814441031725617973072454734717551251727192688496840942599717521663748443662480022672865007847274019850220984668099547640529763150938854616513247736591290289721618836824885138620722064744701168199784447833221979557253556214000837352549877238442248159969661171937337855619829089890100177563928368321751209723136762488519617370951696274891669545275845883229911451277739032244852152570117514867203025516344099905981871796621916402279441352620510908427666475142502650981947591778861815327169595460035546794767438598463915162242059491764003376409387581571577825647816522215104562049838579514325007665047384490782937195467209399781391748122731122779331797609512369965537054321324848218908448704649472511142516811416655906440741544271280867870816317238926746510639554570160019174949562768707823812850270419129657603304378497912450173421658314697052665391048769327195499640064378696558116045855491463816553178727273746078625766069959303386998696599118329198791149898868251972909976984604774671512265096316724852424148862433136874909870420740273253990810472717194437973763689391002464896569234677517520201091347161901222465795681652984611816064235600070072134250744604254187495547782670652655595975790113520512904573912231692601900182161394737124773728273177338613553727626766778193639927799248603932224574905196666002403091957362440631479562109026377117426547684568632953053238522561806262961009356345443156401564828464605255563818297599785491087034363910237432251545710035829437398388341107998488322386527406476650595096748315811014997405332788034341645242176135036165997800267381649159479562379287308662202398615902393315160623617354147983074870606628798226041547703688084049256589868586135228983194599758797293028513216675121439811704931660657742235343551869216955622478462102676819529780426145782732365965304177415417781480453268530900132035422760316700105008066950686025712147094018546398468154719391307083980091245985897917216783656618876590629418839528983468065545678998302659656202220070349930370381883335294958102222040463417141918149400044977303181377892579848909914202309287384093191043347683028859810669662946111601058510911037257581862364592565024067814224785991167019911397388173390074462728725736927693541126911503674651778758423916037629575704722591857889121962577830348426998863567784668398065753510627718415408071576178396133787081612340694869426427185244904692723438449204526293397175278102611340069240146970472290036200633235979671078079585069476617783148904028561134237094474459208623834303389752606238348996001458380895548646811510596186859490532526819344364729558612294620689125572756654398113780313857985119383855047356389101722117719970900612198974275530193449699673664353363205290368780705804150135028432995371624848703969425697997355750660243219432697895052751926577918504760548371478910434595464541636802667828674257769736592498389996704368713798764719174674496468439524405436318163312566746818014595726492790060900502159495729580576479157061339342112061746645954296076191600496049184994278089423296142254264161415551377657642331339704050135864828247277887826891452596007414348965483441096371371230328599802651013704760175330022138424032038705907654802658097250964179385444540083287639118914137215673584741174773188395033639253375485160406527360020450415074879894719019826428861643686792300991392944740327493408579247916648354501712407386279994304099338914818398706206849971620477748646844333439282740194417710133474271219817443145169167281895376907194242671781927605396924235854450070451469536600220615839947002958377803544312057512477326904499780715939505701440740352861219279875568001971869067408392571197658879314577288327066251074917329268390936361836591118094659977903066371638783263589824283533215711734645938952261659416880942234399379397302767574374028871093543402538767178007700716007529495429513513230924473800316854823897708264773778589546640629280208328239738040856327744835148652327496988973679209177227173583085106280310564040548499744686284095469953433723309768976513220543928591528648157040691844139063789324209291874216363798528376861383692064238308198967443507452783303471733208398542444475072130031531902750351275454865256288636695210516890855374506756405044414349324814668177808561701158050682622807951801613229752073638822667386422153547135168650675731425028854934990615557239137266827247367446418647489994742835930442442097054407370223260373963197122039333727717220032329135174526032525373111401679749655426984163112763838416056705313707693142506830103757514015707028162891601963248136693310601222516942728133399596623193935382259236179274902623282170770174369669505486568756473155949914637056509342670376727392289917941632560774860426537318008628389631735138298026364423441864935240548226242880980100291051227068967046065823641652332794052666918256737265850669212820027715611680107147468207359306452162009739521543586326169429930768322794491934545882803638273132636585703284645717933265613239887727406140189627091600626895942808277143049977666933550887089526686391411089899831205421490168414018902706249870632021951929819391859946416902060690250548632890692511505389527130820042043725050124459805033372056943235513923953830214935357497752679448317001819449563680328519743087127455666035235675326771572252038382775511796984632363493818334952382817923195067899054161937725399229864688155843112347954451207566970636376095908504258985989912843827421788234553990238923262445407654433461651600260778574838057022534866911223966303165380481651632724995106039456394049240215159958559827530726178624201997334797545564427836149307506904422957891634217924407307656658293445438457529222192920417389247713433253651537194196747826968796877500400402769549668143980348495928463619375005086583290737911862137706972235859879500202321897717036110783148286772663876969401500921266014961657572325255290183263740878866524488539035351773040676362300765217775886793720946418271904248084135101723181723867613859204322168035506407296279460932613651524591267733204331786382703065898254972798608733429024642234998750751827840300783846062221025457759364154176304674788078604360755853138779858657419446360638146341926436705707239972668015808175948766027544576438533447005304628916899819926678218550286867793123162476612841067871703552508928344490774852539386635405867434234320377285452720214832649266572695678626966373476626375418776747131554484807061052510167916034210047082192443344802716822164809363653370243237521456117176961573085586712376035188053487340366496369049750267082591157828569244244258026064113964217683839100740952624645100513968739483313368184369591959547542311794368447191335348874471107029959602234903364834214227087159136395827033928869840383298565269273846865847033298944128107863287406759286499812851746778906622996360940746774734652298901229882471252435074124579227105301654971620324859657537723751871619492298496297967423524212520397647211171894373199085004029753404481021552903458116610316429689654909320864880025019183685862028492936007656951788779839429389927537029180119745551932372035277113480683012776899018679610706508391448098504147486772761439674031765068335680064334716321922249992250501692821376364735791798545507055697023687159011349207290196142409486388716354002236270416015057496584391029823505069675398231263611627197317481949991729136717958266653751483378133621346004467237722607547906587187661923906958980996698867495762919787357114221058536661349037006990866996059563393596366503409027566107453879134150074854794542220706646394439591639920246605557730412314216738967865258546909091592139749734991037898466283496805802196321770208302600435442352577208689953029246578093629875544079918085072722674870224100846183704788665482181627756431699610927787857822739150231816686449051221110292642792853543378993541169205560350519883008729100870761917526089897785749291995076626422420802574123446505327486935173954900812756548253338382411632359198818459920649009395690998978822017627764338313093898163093042124156283014430248808272978439782013507242873075775228319994534015445942889536753014360140478129806423826193640072267100945522988780635501973207311081617744218393929718474966986849722619530234872001266715681437906436324838179574634498495808341816508749366770985517065548557556123854608924309362747913121133633963642671936594277907384784766123377992182785216208577455540399653242650758602183833974592403066716869479605862430695159115899160869932568876363390199254882861464025200052583589167297407784335893195367501868522354828859402409677824248708566270152058253298122523329440407824007229798914571350023889759661309536099572347554296247337812119679559321171492553174145471471068139373826094100871165595904875262267574752915553556990073027810432096997910111266568847707396670608430819226980499667257728369169777471515514574041476552799449154585080756706822207663820406146176080831827762190279916709894918267579410288637786870357041058459679053489998930138515024236075278743719281438240196587175153441700699396512895731483694604574419350218467736629044573818650340104983460537112725057244370869575832978309746117994456236294207311396217571912956489821352557043291373298557350888464259607833686902544968255182939442303218571858408358348808010162420590163314089154405543232555037145605024668978707094745687710979696708542405915795911138172558724778364525482852295851697207872791425285859597422507290597969374358818893645176119487274507745031919900270789456448031864536406144433253542437693346719098359143390177096024654107291908037358098520398591786025446262334095828009074778406485265816516221476641738074057774146767720145067402667253029897781974907977477436031522522386669521261262442304056886734799569598529701354530233633503184743476727298770225277313178775173854488114216412624638259825093258518189746348542060517299753171182940254952757423613501274084840788112481598987751335168247697667816202369676863349569811256301510776270122891205777357342695966938024547497760925387970337410056949270524429464628712138245018444949097963188481642594932924761673451980289015777928560051318196867131165179962425501312132447198147946683358987930902976603740295950592258744313252587329838038819068172896358659180949877877702066103168098771544129746163600670175042607831272446047940154078277654718302179721534441560634603859515579558567460889884899187553677037632231113926811203551884621850359447411413572409276172430464818501689893432809698582181340431446436676376346304648617027467077058319617094543520621590549775526169149948775624098486491421901545219365007636911034201594847350420348737544173682039985863312779311046073513335964242854587357891815863876485348945280093314827567045528945413295354029208986179025689828725974641699789282647583348762010376566195696233963745957330925258138164318065484516879156748341470985270154561738033360339472931419954147363474564494721739323245494552041018754296283861309396215726574921701994029059207623747030270127379583293592851455561061201097117550656362064698585893395067293492365528527508716498402029760876308780187259108071047475868959873982325588351748601237390206667176964758570473743929438797941931110547696828842030527448091488208245951896518695119079630235972302298266467517971341173379622351409021795130443969968531652330567930668712117199067179909713267708829113044173193223459669772494267129701794242735860734893518680575777377218705133676020956512112766301684787426566949072237517623157830987423321238631783111760170952097384157022749389391719368255138807933856935406777813296312045322201803667396397518280121423618702301175546952507469580505560484385107260613977160322067710857129288898052851441328385280514682755064862197294800803711541433498327056983351407020206092087722717657685352234092710440729936661370071069501736508669827151685212436225430672332849648502751504053323352685621031397452900344868867599942175287094969481104789701756159740973174745209290014592672906293324730657934860741074881359609441219928115888862655019615233304558103194378350258710272614894225280119864191399905936212470202626466686006376838033322227725199216561857649669619110060649521513065800727548608395116186218552339255333499706147957160095513203097836427318206723950822294412925456588070061164631990254776855603673742455329256898787047086865642000411354151129679052724917001822028175367589871035021905724932397038461557199533573802362134900995303475439945400786494264586088477118336510719477458019452989099224378258015734135532277541508736814122759168391456859942899254448596693579013605125248551360688211355917795963944804526482886581419336870196492660194054400084610208798249212282624964189117246877283357354420257806713103889818785333685125214644132899221062194629909703762583766410074897297554619605208440766304319333766090443468574315835377596696899535549120701581394144123297605583281516312249622507434583776147808122637219702969264212019116704160648440988117340722909467941225555052001885508057967262164932993099594948199511410018679692236237116096026238182457868260386252666847800492627522436465656965114793178146650534025674157826944920998771649947726695084029018302619012604249744576212813588536977178446522792217586120741286291854552003925017145907083750237762988703909930988916315411511474802217596105765586840810210547237847754795311834259839739765163103859387093556559679539412906223114074055021660835603706471462217342317564685865407532152351308422017630754957324772321274887729452142020719287542134773196562711181315961806795361666767331547576355491325837103501429873333281183367803107147704127058801695902391813828906639198464787147900851444490103079494044098234057850848600362017835019051382060820810841585247610168413233302477293923249416470390602705092385627614858194197771102311688132115373687466038346364576631579339288236877675919705800250822036735453855263297818366512185282516769303852569285570820444336330767221245454949593722247511484571810405944675850743270744692406305242556375212092563400140998325504593264876183858485564238988431400916082765238310757196488381067386493334296962448340448997436634354938123044009633648915433985002946751691396543411512777300728780088658755316643709813984498732153905730634428520318172851074444243227030575602124206564102509751826999438822990187614832699200534741845682739666507153294316420050615335498704027400717808215712439471990626114031784185189914805153254431008491030783888871931383947510875376254014324561176982231619393376899036699057883417821715028648149946656730428979243575958755290816739800666224855638786182435189682414370706598274407886447514895671520719358663543522784461136076977069126203944843460871604168385840690648425666102930611128406883327804529495270901741451485193456971844417193860847742817151684517007926938130770793759389298165095840882375487924736979386487427354196114653586358468243575489403406028581359242364991381786537430172519443546191274959102041260817622545176176424746910776895470022800587081987757404404479305824051283056482732165833475722559806184725275682996716332165234389042299987916261197434705150110825261989195192075202445810379719643275923881145777863815101646538398736641926768707411583010490084759745793628590528889362894577746813582328276374729679688182882442902032488032792287159369166354713275970846673443034035176984799154608730218084607406831468711826139712322827532779688811745873306718675915451449202439369562543602283944341611593175836337887883597953287275262846205385048942022618338512304718912286407810706744491083813876100305960954758873839086455536158324417925950726607338300288533300835127311215747734579480201049872244660188272423743635774756305720704246866950699810761148745434587495287617252722919634647585011022792196506406964844424370715898736617268045994494792106015289037642540054071084482408774300074204756011002160719842963745686872039668379598676861027907706182042127712852351997966347009840862170919769111772793338554535487134811935977075537486589188582237634670784486465758810526919086343336109575148847665780473018297538363106298515262073151538374776700257724503039365472884246173773703045603946465287792751089888562563876048106422990311275031247567715253668739961480072714439413645605350601335945904317139913469254028442949830569542808753016490017563760681159285279335884689277362570811689355030500067357542258350684985716921722555156212980009911971966145660910220084909959490164355128364649147328689165320580350313511580862547058435519759670705016098297857570966641896563215293614789602819880889360896447894463499856141612925413989449778024297603960897618528480749046421328432412725744857510759326915512388237659580342591638244833659800300826761809616951584154034721070366285689095718724566181693169218566268811839195209877895939448373997438354863982846661756351707002750539907245358607245399191312584258357081940433592642151561768240490352443501122075254588392194461212947759309990265362733714765761429784508539479606256634729328974069272258797088869875649619197227834668844937929909060947324624481605648061286722970939909981856744335192038295487687998749213624467773739657961851869952447223393998925580372328438480102280255733926499454007954853833651728211625541177922408746968932189928902885031752663802220168470259619429579753368692245978457723744596514515877394309513831845120054459125619562444324306140716875892116079047826499115796533243170707004713359849922316679348522998847337833282080496232026770191984539586654206727481672065163077727246587336603778826686611173910353002895095094214352075248225952732685994097258280282711540021221039025087031724349666141316847140087247247425873625297534857205830816953782727752154008649289808086907767990019889996424431910306360978273691571093681716130266340577447099331189834077462106336871431461118948847517429675676100564899280051940197447355775651003764059592034071584520020213335387948041598389298985977923561844661326877319652599109456808129856711697550389224464164113875563596217591434442621714584603537470189047467569944699689313879208192153412644028431852809827532857039017728041364360256869091921232145149374257418608230612700612279581109954680223589802865513102000819304113911009777646436530542069415452248870023513969965006089002133546241597179944819863710574228560306685934118712801690680280109374299437640795007665689053618006130627585572350275352616735717592206882784867323222958855275405077730510037852137261477560027275340232381698481906881972863220237507285696708228005308634149225476846474132077357306400263399737729251239670662739550455373835691302793855856500269659511073079750431708663083084378632381203559591973749000778105885656931576187586227201656396515145215793600057090004518676447746479612507733865210867041989340259403226097084260417490056985510061767158688399870390139225460480276045221054899725785336669935684874490477788394686556248765915976857541260669578929978576395942837755976811540942974731154300812589943804435217981668596363609100455772152826550413373416508904232447219683669785612706451337825972686282250882055077116963613306944965678792971211053568560723895845776504281480106900238834412039737052242805183708136169494056140653197911483687222418095925212874396911100979870253379815136339349188831529234338389015239795237001835309139081122686052272689690305114120969098223374346479657945926311161505105490536352017556541769420147002943268841851527822446097935462252661266979853472614003818967106591795692781473782523053246825196916934939432812458969850478395535152905978188737787828773254312992700986748563734377909100137038377014492555153439976978656450788495013747868492774723313761414711096321977930088835127374812916874348022883188941050746691031061769096310139889549663000606287827571798022210161702644817507125012004419721870717810080196417327039433680357971648052937678019927288490303781432572633092201850265879832449452452276097352466555810089688265722407931439474186629446360802781783795516710417204307313036487146772616543657163748158052976511644055099215725125934210604521859716110406609237691032027811335832328944210129340196495022056970934310621974379229955548121759519031248722332180087322154360151961681789938112285730543940082176412470462238156264654919209142595230691010282645785612671218914154327709141560329403302597044449271229212484121009154600398923597200305261895871984886536834790689347852447844961561253289046186709519238582671564359588550398979530175524278113936615003768217159572942723787908825324308954265781694944389836654008697351619476798451066933896205079445171182167271880229654934213674888858731695928807862361396504583886276640147342879615175015920886993200997791849446973372262373291361840630887012594875356710746835663528842722018553047369407743875746759506557071520843551941674965405399800596478818592003484352584886261484508850834888271008006348039099972861049403145304460509115641779021214927136840554063350031133161713494515609641671194255799115172966357237702236773704928272297618236142789069525269290414057414480664664349027039133786146468355664939547940400866029856511940278144560688458964998836476337837870800906321874388377756826892988901816448013328514623093130739490952196319757038505067145660282932133670616824122933803484339882915917615524217162090359555767405097625403301755042174627031437049611190161664166862398638886872521826804798969744651462301724240548194032136923715404944561521245261291444008965343347293542187003723765957000139565132625123623441225496540054611470584606298170065833052068700052793314675949623392138125439724231325131678298171006515772259492937437000031971217843960571975035626068256052564609696901807590130969361207327459534313432116419803481574752285055608683538068892081897598589538650361015556077662956752299781718735069203010310258524230231464299475473054467167020761315601847609976440387004229242521419826363617187288276650298052208638103815347199675192902332935728813536060983808536792366259368359948802416874581643915180659559838584951201595624529129033865052157812172229209137879479379213917984224998211177511177826209263567279208418103108359816796649602528976022259515194230615214519652160898903121133033582850479776534536491437490457303714199259192278889818492696146486408204107620259272641794318820789889897927885918533954607741481913652549826263953895055053778371201475102144929184255678330107901435859441107512656677641631788327141123138198586942051974804806337764032881769822078269083329392044530510592892938508372054330751431208717643212644158072798390283880244502802707352579255513555862703368769928164717136882881769431415458480107449744382593195951207688330525711444887047492344286158582674416679264431335197061879232998924078945235893068537815427847377610187878303904607116646550669914628013900511228723822856711801052787951051702996137337094481721364082963564236995418714173218060939546513491581894127889286492604487409473664597401358871276508554747530846517814654254898292089232479110413493908010252026726221954113870620999157126247610486786962555533637682874508674830426862216898504627136043823673582578620560761238835095275603288030616095944327312897923039218341349306836423075786362844441791543355667085316595303043987065257801105084180838039829660580686472333251144299257181386570004735307759108733800560668295267972755688363923416769550151104742920872972541942064811806092864993128447918509449939204127984923260274486189745385505870020800053039300623639785531487097222849652085475188260791339760781469123951682707943720926399769109941992099389084706407798497601133205650280501931988176064961732554337825738436187652613714047669430186182742582682901366140850941219524597751086018818559852323777259695777968087055648499990377631545074328705188109411355665564933960345200085918839260136007747681298272662654004744535590301986485646102015628207335339511278674166667909895510313834474183041066056922313147060461484232933086704217683222593474733494793915929805809158397355853578057958611723728310181149096072815703032298122756178939147695079853472905317253989241409547370761696541384946611038581308244242205763635655194052713457987171138372983231651884095778640076178677802404333120645670840849524164236638050030320673930039765818905083528026756353889885909087481882920876899875968676978189238598107745385849886398863721850818283531636352725694415792859889475038419983261952322364535537632737348044019772177798394401827827040253779488326157824591322429833465936039007708775343487057452479276404295359912346069369587728305586765293516222687868315170211179097204169006788781411670553825397549388406137360476497262031453727920761716982879504006466939975996366852039580666199425231142197005100915228661174412328210138564007701009373599443103084990096974574176041499335646320974544422447039236407742630016667112137248226874711462138264754440255653115423713771368348691355538731590520071911573850549441687010784016198865757844688197091367737946491262265457472354553836557757694597319235823688424494622450113057117245269367723236846152054904757381960205260754545396615354050279331418169338586267778897218818786720228423727664709868025785045506170038021195553020727700568131878523687078330748000739706994185312944075176175757001014879888021916144981960176982309634080427609990718967094636073811355735230273705793008442219681148593785696136932720741916712311607348837488019060538758226025614683310564145694622593097603634694311574217063438913548230361977024530514548491156948949950635399651679224538719309617531955779966676071281673072074690046419935613270718835333232586461228494556020187868454192830317155577755385747320609408564085408531942803167390070755922097671430588495480734072440572068175661555766422268490448888122995370832689610852458558966610789856966913345166726177082293803512241020590150725542681540389891444061928875170638942741069953323530703925970508541377792968806278358567403788452193824959154341600968830219725581242513512016346418813576041753770309380361129825164183895376055691509667870262021750044400028236591175637356910722264690970918974217316487391892069038354830809199571195460631530175778311214696770513747609557746312757934892481443282599517815020489394514401167069960791267086216409315183261406717718199276702091369202756091426874521007520603781133450816420423697950856630684601845733213866096580906515308140680583279997559020116493387795397609864332937219583097582866229940558288226085094869326177480191355535704238636222854870878691020728134158731954534607059619523599066512755579934014833521519170445313087671626553400482057311322767242146686865805728646447960310865788391728846161645921778699780914256900908199537077354303829037486145699844599826682406021884369870382442443496152667591789764304756979002218674241573991407059678271319776623741952004085447048896405572959822947484576998898768697604136047365394179358185255546226586724065270787090182413686309355164391117648595361225131377277861691996658408247056987100218975094904913678977472490558691308660890060693659727546210358042554354578461467168453668232006836049860969707791809052518864636321408497827619351675929519980304166649838880210204035594406984012702572736682814413531728708537594926776457222492737972740884804502267781436149562877492749507281005954513571193559968325952058225627666096378653299232074924946993431989352092892041051493328655406583989460532308652719650014539383460764772590769924706562778411504205773054563142642051584364694465800389940833273690686097775372421648970551173432413340541868850237779610219030778006967366541883605906696347696489751739729816443684715615565425487649004060074698103845169886271200440026969685097426046642212415996976339419685841236817269870028455923396415852897993789092960684844412879849496114440789356529905170736579586821025287859397525765084368328832536284036680917263613277004395770682135219747764247410048978549363917307958595593540211907652536159276159718487418529347550599337910200657880316622867218391140605777219308896390924528560274581313654901949206875317126514952637653924701298518091165258055771992240520350654463080004473968816605441942404802584719206617422973738112646677183556087847509176857449806032938025051406251641966829000261516656986191600042368723659500435556780325656791481271211489907228997834524868395903932820127485670922389180424100110492718097509246793319730205740429528878128730337762817577945394786105509780914187788014850250844337809259316379742774555619346856902659286171303697760234701620849102741257303451852176524159994891051527622624348259361872010416342304515399177143618406872504967136861513134014938750004770585221764279805957602477442234712208469860255617772377105801383772077520202688976302944152763274601888504745170765174121630985339835587682952782135652751397776075134554579247650628471482604983688671413063453635213359080914709154307894086184657001883215440914459498987287373358592073428658806444439392928944364843093786112826646668597800255679315605628948702686035554235654623684098582855394992417690477256155901425324046074396216704802385540151709761173693680252743283056022036196323832713377465738470124181851589599172427997302625704914550761643856117065391611495150978838733340023381804832749467312845200127287687642136065816734888803515518934801273092104853681919071256045545785392440568299994865992478111377756866099972912425418084659458172506628069724759817793748083132667591468584275004272211082831021521016778220966592692023946561065026592965670207739705684985844014292188674728888826503399524008907135203107570292361352138239469923377971292316834692725959337275239733224653055879114972267779569888281947460999280217892365901313455461743156665685051599710339755430329535183705528497615458856786950950077250372867574086610136672081036898377630341904637967957224106017038993686865210265834803274137388407184762243000443714677627716256078479139846490919014228495706795589996762683050854163759954484675533233155115491560958288718243243790580820608309943837935446491647018298096589960175020798908658565285234594550799604278722189826326443308349701678468923265274564737863506287251845956094077198009853966703860735575562645556082387584904600238047057442511883012088827989596998309556632102835121058844923695966997055793101827725122110978176629632855445931060870102929855309630139237091442517347916197303934264982846179885230665268897979219833911076393340333600863747420308684278321196728718604061700659679162556790162756933158650399944624212731761906364858160699025919513638505096548712190729520440587575884808424268028612297200862469496995707316571357272916392679800142794188049478645161669089405844101639346043003132698424561661502618259237864614828336808762254607454216205074134903189134176105008716047250338010581478684933976325432992979279210382556860571389112100099379406155668382421971510970100505456090501095804669029100244788925987482709361276873787455136171146344402304011845662914181731775220535205664605981552906617634537474884620386007105690948157117714591231309300489471492441321290226031702713306296457192395841666360534560252775062088677358135680360203798741679740519752422164015695158472618075305840748818792338323763412941333369510170390587478669234261264459818814055740103259400738006370244242222930177706799567363514462489415268670656624743999431845602297389425588975022976572466105235900182722073111140820704485510840643575608069538133292079248874332882539019760364766049068334998937614897660591284062673946642605423122284060718572495443750237535005454572119512289129799089809239862754071093242566995170602117628098501753090255061442724025652335243148309368741162351796824397716914837165935093597508975673554312116038903980835130715621649744114126424533751627479224218955609523100055033640003760143089933031741737302925601009309305065256047922711687690282498643093732541217778404805273546268860693245611503952379103438056641189291622099759399899173885498954257615304547123537453574424808524554412831742018127119843678812351566193740295322372572947398090272099885652085068498201322341608534187660645233978805300467176020562391990185428627552967355021582149674419420106431685320404382469982745126897620252725030248100801687081090799073202502308411733730230959794010565305418999153633546357815698698317973275854386656246760089173169001815857520919315281971388722495090033343849122083900672994291436852200635614696311926881873584438489329243131278483284730520593164634087790357209691671737388532437473244742013870670000475738504788029392644756027437312296803551547702954969481431220822041248572540441897162239322129140716002971178082482225118914832911227678594363857183870348505398700227234322689422343883968737376435769352665527734576448715007100308074710621804591955499643916470983876857512358182685679912666572363172964658137421617562127540730420613900575474596194386323308245641755393851738556046074512306999437148784123841584208553368227699097061611022538643716154635330624688819817004792874929698175511019419455743088849239153818123924454088427053424967275822721335083735459401999963087798069150823887604423147929117204980900451162534723267342003662107874666604628225008641462461024516107370264480612778047592143481474409234081215120274542374430252313822326603111098102860684598375914683078146528354161200284463760256469474329850105190492795763151688537320376991378834085835537439815306241357608132592336658752191658407573068905399375637830755994440601475358533587812610891091178392193734897569778190164821874043954647668645376047048565103388197898462998188929046591773847532708219783862850504776802608360409833606881935304656862909566577513033240260320456861586406435372538193514425466465772246035367127342068356178723943724006076612652655553871025236363803659099487513681090472605578987717232632880225055161364329275388469456631284828533441293119558690231278468491797787675279797366154037856186706631667050087385714487396449570062838597366094097166131426607643578147947158857203463292540067733807246028462699475388733483577817133004880633589447451661464891982576938837939466373993307006946681623553397066305259269723962526021895528964979939152762662858365820995340769271895521578035819248586621158651211221669385120435432830103887097336566577624095663382563807933243693788423580950473418261212414791643228002082367730858777944188528296018225909590030127535683078713343760308736241567724641595754494153635028082855724684260567154390581962383244980655855674869015709586603943586661819492046234740276674629648727124474776152282527593274257647780198603486584978861033053341534211021734864267661339546639039179577640138419370657415939344694522373984009561803713326150362415952749663650372226299877045695234878934830179620744019983705421620110284969937710719905381583604444036656808752403080265294541357200326136262300540715171196736766034280993005424862304257771333552760287373711882321274833349179680512668876359030693487874025601076663018800601762491892703450358431631691779750462648822060437301314157753953516978676182944599085105746056421212444781798807789805135313236373043792742101887181779077917513272310548887631877262838777629460052146471754382636982306989118369490484495542514602426048658276826114742939393976519529094674649880949158940948337433426900129302675145247000893747254763881842706516448454525560636345983187814879965936610732902250418083361797198932156326597034285940963406798062540230788884926559156519220823815561382582976564985005535858015016868702150981202955137011384841811356707128779941046454213607022935598542536384672086644857077749604430887720421163197791823675524443333202447788466611754916232166905190359904738559817766357142636148955099210879972624091911078069135710931768584716136811650408926589543032746115916187345335912202282514110410323468953263141767751872087132356537988606499199699591842357678133121233414604702797653438682739484807935048062786458597351282991200697061965452590975620616277138622837901316579502417463287093638906945590638374842593343047806247744350867974107360194020552362771221064510233742226958919294394612360590095665512879906045040641139247183528118422003622220162396404307114615186587572436816100147833868016953595039046267908557167042430187422939490020502656073347748958912235134215954173347221529115070455642123694188922779656003977730881667647218397230585721992570349429531505460884398417307552200364418842122558035702287437426004853956813333826676464620735004606922949448909393187216753276852405718064748185368176368200345788706351575807008098067849939883022342078007251170718101457522302134223252791382725599130507432214482105468509842278293607608163784076132234681684831349274599757926556779463941284779217187676533274486982245671534558240855298069190223854623349527385139820907475088858996220724364094069912975739373162007471760029283140970432739189194344724238849240440378906457646996674571300049355648394986914157703601117184714042413629170214306642159972508892110373533394739809367029798416309443698691978942208192167715476934557321902158080451918460161683146545380153600325734578785147392529814775563348875043308097073898843105117781112041479282547816294511824222909634386994747655369482929074634331778039697689734484402227270684876897941352511842418609878947158396271768489836317932849279074842381962379790518396806111291591502459809851127154108503251271510402327599802229558069062808798128605496776575058834440796650261908461586293617916877442981487723438313643738191584577773816514675177601625294472623664939859530650003308671817093839418700246557277315028301486030174083047598837808605560856326882970046232946121752559535013360967456710681177798742737856875463875754775899394482791010588616054071620034265774308484653044855620284850003745921670299151738222598944209809201680353809725186188741644547833369241906599273000728050967652624513537422849511824475946574394715095650616121778483831303197431672256190883143515244397939997480777529826363838867247399743954380629512510533536816059763832927826843296114902027944600946606168976952500982971666805086067829299638204758576763052996482936049538552629190002393582467777513792245518247022776642429371039156481418680587806271119172359944813057177075863502411061764226205744212357391684244114026086446856208397325859918832994768025164286774678371969208530209665016942992373118897408543392085684616762050219997865741041121945746149839668158372343193600848630795607305183631879038354522547532479361296039086362611305983679643308174031354752813778838984595071215594872245274153986136278996083889291802251918792551010773966334937845099614405376822801783317919317820675123879294876878234198301289580570901542127684576616226950307366413038947167014508906281476970429400736366920396514881846942995075555761269557539912750482320085795062990402214854845086123095211109569012813273184943440364545887520650792296408663889127635498271420664895387496068632565957259034728241137562407063073246110214361900742387112520171444332547461338246582561710763194465555228734837192003444900339638883757387532917651308274006682809508856170169776417328436839535508006004321060799707035648030993099900550367954820732002955693498883501600201721908312184712140815727843371909701572463174931478946934687529333862470441645560039117499612112805765569462575833281188054505682270449305669646767013456339108363376687677730974201389152528191264426859853903511148693823923820789599271210756690351376968966661910651495472201378543182496070176631164194800091037861679959533759507981841770759685656938517654578805373836840372995186925384490011975760679981459657686704282632987911242970830630207880885634694153093936635458165948190301533370713091745006806990807417953563052496925215401785412247980140180171339583496332995058125368499737076231433053604575035583895050272782407457210879059201258859215947780938522981414872488291256392396450365782884853792638093460858818249327770378131877994130499054339811401954069400262404001295754324101517429184742280219909831922381846299064338694638222525331286955774855489536398881361545669028220282905741253447804416029742902769889936939866813288221676280351339439898485986676241998169913468733876715763189541778247516307175273439833541028643944710154223779953136834093612792785148030147943490549146547534102459851591868741378291343662206178072441833255549083173672941110626432056063801567788660432725800298554706112041531507126261898619295672813707539888643667159351215852765171778699359213567644502174721455579722551735717231838715397924681369888864757461019151164648821028911557826815210501017968596465120010089394543288805508498188682940966158798057694865411562732046364295056983284665398934032428330707842654241745798535252750933196481091015756474344408776100670550958898866910853183419289874904406244129602592044464077991133718584922792490953717508465050239650197260581810288273024785011056848551925589684699942614437766146712102526263141689976016826404826318281374399948551738908592919345887054445640238399996852624453155162366360071355948725598768771366630257781029996196625485311230873007667149181221777015695220008626960587756187217154850554607350454635709987255045049159017931848557010173847087710446398679654851837734012916832033766472845124345427265879688595711477914193530468346696500812388971079609639920518314042365395641512509531063148354256604272671897591361100218846035073774074584143338451450436401132178851859789668666367455193699179470888056782727294031765226908410096229137943477081565817335392766629277930263558196233714018860480358969104233421990209141831408642550809092771624790989046610384923208311037662012592855334863370973170643529872260454838477434378685431806934866554640124961104434628893598040296408627810858453828403959817635953298656160239347005118401947454832347174289715450545569770982890129542780029173645588127696070289058145619256196258521944835787477728902448694368143971032041900093701970680336708157639317033044957831384577294444971945633629835182482830527295539315241975794636208656785409289854923466640623401071942995535573171005617918875536584182017190526199654376807829293399932669013738078009965934656712850948946453653775034627806663956877027318336547401876527194612835825726225148640982808871659952767048081154473182778016729644764862221220500554092144982944557139590174382678524667657437119512774473904452886159663696457038317616901926375509192643579768619499796455352647304763412322956586507713305170401914699407815097807472941823652682293682064462703001228050753153718150593624763309185719653721659350576829241872653125505233578983954029281883600761298866870364825386757029092783299301861368398435796210892403623055521636740625160594864331603997047138694440406453987107931816068368331963157981592736245350363207824465326514057171461790468320019123065809017860339549841932828725523419937707973784388071390465354425872098100683935676066449239319738953835040072958667215990497143181216262482148026532491877790518994446204876150157927712174602676663650073196014471449274005332758143692964083820250728179092254393279253073311553245029605323948817048717542482642018413465389462063253355924190120921849474916327872487756849472356681056123258885848179329739370805593721047598331005328260610896295003642596131346427285965128609400319560234629401477498632544359001123397755120628832487656100966917805377007080925506597332025221058185412207640419982152916691516098666371966381178569112248237341186877296022436496070372839097273858288275239763047460352120892324170885151062967827554855168384232663364360947821146200962162865931867551902469861207379885765978559126714665496505606507132964612370330181107228278323668885449534582242448831627538887799754272659773511493243707087296086644339089902341474402739926053455168299688893740115349241631544540547695336480267723658133344152752271667459218758569513437688289869697027707342102483123705863014920477783802742497414001192785344382895098973406594074421323383213002376326659058623538155829127132827538397575744047271432747813182723020883033039166245360643565980957594854314146076485720729285898622775397762091505839742822658636149552659763455933169462203413187844171049884254497339933695808465375905077807692597621917663565889171283371616165522329889619812095848665339867136888009669370950393659066811018932419481831842073609518242802691282598345550554456164414672239512639708937900423392002989073001291669914522017346908948898651876826410072828687891412334244699528006553584223058326880217053747340935859510032734463176758490730187536121303869188145834996564371201895391907654931320455861174800045796347172343752557764138938058303358816697611555728867116881206869801585760664483096185796452276788453118773293490984968108997416190515006004318466230915109308092044896898607816884661470049116146828343877477962654542650215425038020423149807078274573170936235637852806659425101825582127139040728764549620517470696001178909821402928152739669582158692492282903038072118404727858322683255161116026779709879009946901202597565109745233200770490042815057982271479388823309047854974841923280278639189018328858680633191251071044622892405030343121616449302893146990383504959068880426746983540771135295770070789131911165349016439530641836020063347678041574263648310271447485903939238796881391053549295689236388910809920962134783623026378698832034967615988502515726018727027083247274075769889850664432268850497645338648982959997928132094608449983453418157498253508919900188504487123112991489082576303645584431588378068508362531999444490539391537461375996516651162956685946887311933807779628815349653853554587522641015705493006621865217513366303116823599330558896429836601806013339237035972494233992618423067374015223419386476873235122211389031035495722661858843764029212569655009799460537337361171956054906760908206237811614402025347922437172408314460301191685926533696503186842020688548962814567836206056482874150656015210573120481737857957061957792114485542491384848836164401385328215864312488518031990947979706031179329802979451302075294761525867056974188957805851502881206285786079431044670884654331782005658571811797743025174698121851376819672491659233355570915438836351344727853556208101102481317970155875778470247316871916480192354281213852951482617304799531493699685955928500677543503174933730951772741423090453226428152476750914214363774727545246470673320324083769545963004465051491308370557026913741146585703338645689129843312262655739968367002567084214591407551957298090487970981080129281971975497729787767404829188065934190585157194500017995762435788680078948170316909206061123744834511903615942023867790132663323108388950763692658873613467999577609418047293625364741758271860517640851845138978703354592163558139309020306572333647347334195150841390437499744389786935304568556102917446357997207260650020585281797784127723991601099775248798028955838072915372054867249761596058771205884309678038810550960247453693014536351463676250677078715135411185800293505764188859499758042352144680637009916682453458098088534587996299244095519134035100875229751679171020827760194449186050221520667940327148093438466364803830260147660325957078223262923494213354529080009337619410642690630529283086180630473550116896671617190237250907261577620701395364931320269611214725349505114943130025654135486053955460602531256895042947856873429269066782789660325932701684908772588338561428379359320852469744105158451835679256321482425389757221040313539125309229352684203385030799828800449163847095387927447426178519873962839133850451555542733052131028558090504279020536886225954908164536847487283204840964003716355948907234132911942364899130459556532532802763903260762402761834323298555087382891858452092712384647400466711583089053932253092148758016430665741604364273398106793068285084727285510939907395305956937257412697440049446395637162072452649096787268783176413775787749441045240036562760626560659176223447896941596311429299549721367547466782346040810177451003474740185028499545136833743419810291572679771348735943806169281140968312398635520892794173646131114978367555525517699537189052537327886982417073824842230799355116232102360089277506515428001323813696310438696588917947667954160891146271729625432713666421643881111752442154553140023601646650409358548265955862312879886811875719954348005901229771370434403171896230559920558524768778982778980581783324236355074188442459231876862410879368823100934529740102131830045126977881136389328234045310830837689802103117906128884392777466849144701630313011502696634444142296324922282550264484067450944647790624092303298568160751487122300338199120228273703165672518731782756885412552097760624631452971582044750897915587385957614593677649634656068178797362788209762422454818740028879223739456952494020501013478178924328889644757127613038710236224644669965792086056354758851942170082140780315283593545323269957904671084400638261625318433204923378499271270591973538085947053827062239194816266063515382917923761259632860386125518280420232749686704081910942625584732622585313344222955562622666788182974746516159397197221913668800093744204906241673421637641761036940175297381420622778795668006501691366755438301218640731163111397546141842152648297899710046273533972799006369521817688810350578280894050936024680829406304701593907020025309908905175965187587285531979500860598642281303535808602619332476562034862209548810512469347510546243806984611644165427047643238050730850402307735233390281857510784157410830501517530232515399045771171008669540849220075996175392396126430500155053207573108310239124697704768076061520101234368443171131426685777640600167660397002610118421062157519813143762216153030459664091884117104085462125691796509824455395592589867117868015341439416415077946348311551775862287125127110097425329446309799124695598103319312121139253371502970468629938380699435842257745691922739772557131377385767011781257405095079349770160928441849068713895781402426975275202326550147909337312845164300332581385283672486082009418003966465261531460944092818945844934791440762809640438707952367132540456793493545687187378193541140899984051655105995063935725609234636223739604953269091073722566891586658389080574536626937823858797002217907988284753111276983109733379520496755180982355584356302007870427031068190255508715116942711688155727897324441489639389059120011958418457830082158741841154044273678541198629193563723599330182006416678812351963812829740797728738016923086725222338757811133597080296275734344506743860780359100307136674007734933217765819219882472545635039439983155517938844689847987827140273577026125108599815009094537822622340824542602940114975933629383079100813438981244337501217549726522099288515883072125719839655432500606494886755499660492812765968895239312362613838011895964588508646050176802352155531388038452470071123344561683870104807528603536498520222408362496426760048559495676315737240868786122262805862908073503674468799134535536404533488894524926752269707977136574117429487459734595213145461183473623896359011240344980912629860638387536487561942932620658150087444475290498468254471227284813762575641719617616886312978285937628920644438000666137678266951777664974688072604311325392954118173500912948948577625686952294491051327404644762382873001754114403871146496470680696009432641737495643747673658355178850652787809318770592613605413307940124327476787000614975163139289196089126025465168619668474777483166611885665782523877870183936557726072219261756112232038176281161397874267829651502537221176442753534051990706363147833392016002281092982853927088495602734544595327854094594137474501392423986558869044153420675415305616484439785821406924490476779944785033878486049529497823831542020346352449544931735243294357062180243831292884115911221954881605299087922438607704732259861982296926302476693607265533027561175679145417621808922048252944252904984062258464046360665880616411136798597729496867082501055704748847374560472925427565788661375009672948209561388802481753303192211623795573579624661936775498342631600979828890359647156286568193853123347272074895414527324413791126672959571905737859734502026847478863130564537455530056365721241179334990057444873368137199468045186661862974295846070357519489444438057132007114855719155470628713046333242181328030221238498806645651357811861322016016724044448854019499951332030299216604470158877475126692121176265092764406307234888496453360233858345646205987630145203130058788831631174726983004362140212458897718700804091710275026203315940053573522459294587743486917985169911375394907187418380332242817970091434614116152346552056314814191252489232236289666193500149920688015031952387208386159265044890197523917882540391330207426483868815755251874310389863347635982310568161691194171113850170407146675879493359392952703793001052968360250287251730520045463980268437007105297771700519111022256398250584265850094329375025259204798134709990563835096973006034429145631026676404558286622200430271909359956904340573366617947477244128259534813752135765881361167904248879912916980421579041033548722623838869796212572144589052568618636408795630936236108925716820127965696779243793465486769188932695119795059457264416726124994375272093252222952535417521234609748259300230500381508086004884334756800621207152959793349236695944487924319696866026921039690148905956978760600307070974904729167129464188533546520835065456945242073113455709821803107268199522413052900838269730299442737361015065483226602867873828874126808651174873424494712066466981744215131534119426219721383455682217681837158184785311505392143709623517814482232012287610320595954527068681039541659754739068580939505280782600196369777685665452850052522119585400734775187220101744649354306653093116222633802110314644505985525154264694252369987896360193500562754673677951175948556479809572321160548137060991900840481850276847393335797845427896996601359386630227691111426972260048058812934180133134721207865357259744475264137740529408076480548842976786765205481210048227651923969711039059133243677033478695155523435841048150269660394975562906868309515591324395392640582384826080057328877152867515442828182557862464467634614091721356976597253055487615431370444745726145614423988038186643044933567968417853059815312992617193980326454430510440898930418180210503841643195803649128354444185889220618397637507530501168812105784740637312666226125499512203790311725496633169499275240305128005677793653578635407813289174735436842742486821958081255503504637350437085146427992006760050318889594455011688115751435901490420899682541996448703748889066029083457111324089049987846875061273837329055384845017070809481121647439892333479550839853587001819195414144627535045855966154010097351606717920054265462041663208311349141623153530499811177470349597378319488477289682836974561421116586468312857221776024819566675744129899272017253490146699065519743677197897372331308157091037826860738021746176253597826921104267066768841112339247575064990035972757773676506886146103133931816938307582969850436604776318965726203470575349813501674845763610579867361317070121524788153549001490685668099352133841831912356956674435775631212192119085427944624809091162597372441977560425104858998249057353041592449603063249518598519704230111357822250279610550967649795458658701334549237822173292761553534534329844918697049756705184021486099372660927189662928245853867287966480376083680306862991489094075077169892880569882654431559451905628770791516956680610693086340311148284710700140358525622336734105089191509239319245517606220519316285027013054699981277365004586304688874955339234099627726912753079009918383235640438538129924433192873030707098173613656632440150069398490486424872007004117586979614662700718638895485114145727409752037582032053361463011486671196948914653494452587521426418049218779457011023018957206957986000121234475194168257580123916550482991391217697713978494629124112194764475565510396664503319809489452784158569342522261402727380270220464295194824786929387616417971083797173103656951287662136357864751436604703443115617535682543311654574803028346782918055525734192735074194491078737934938804927137347277695565248871420731299943479460814386412265944063074543442428379198918548451044105703062670985288133492381362067369336501776784103994125406559742108685055097874820184689329039085612788482535139217556338508455046194256633999249816699311347161016475484999717277179005127230668881521931011221812547113537960768158919989953036362631805726257353176552253824470693848182601721318599563327209059527032657000318977822625920280993925269190710808682542285114894568875737651603418108814555204766017374996235708590013565540455718302709666988099432473552166049449428267003880819505591099836127093894037198039518284495736804065961788513888958127815429767241673419339081386501412195044564863379074785351306789495315258496576527627563913559480478019227085368887083037076053965999461128578311544968206877191830146712751723537946021068228127551446929669153427726299058448300121123022382225920762582963438996090245413538438835658202439653463142566331515458788790948438262434970679702677727023964784782708963750462101076927121387068307231337929839496139469727213787750722986056359098031130690248542876687377641058315219975944865999035177721460971889886950751309345051145421710916570124600043405970010615751521757426283569023583796158201129901298692864393046389286346324268422480496834232509410622592783498787249181520933573807543932999894478842923791124705921099560214169482264457868949316016888636576442942736622678249266000840377854377150169313978929950488421617060895775182947187940987491920830923721121841441936202410487830280346431149541285128323166096881978866514649769464731747673068476229132589769032913382133902951311250600826700574625195216263045171216740435667945453935235691597390799148475345488571119704228895383052474455777813954672307176429282020747201026091582193097218869180466237991882055709115381701990313400807920525096848521497829837147962904967889884631708172719724287835362929524872267079444293162886140161132738599664209547658911780991492699334402489861194166087430821585528921391023409755634224240705338446124354922236337779403285704206653085006888416297540712765249012497249295128806206948648815562214747380219830067481963198459634084408720277819557861727197531787830811376034181317123556255795869525468879088932485951806204757032183169525003461598538577813120683518032277299477369987567183880363540486684208037687853150477461830121882244948816297101171125139287690599642056536157238745691107667851797670590072584723345415033498185485394556310457742751054122339349361271870478166839479111949473285036277011038381787694415112488565967064770362924090554972004294234058648538931338331440367160670686650028713933611635944767093333887852357447916788229090318830761417973900921895932073679766158450226897988553106278267637772248528515634464403786662713942588209084760366876471321064586438950896009109355017146745892484357114529368478046807586583597324352752444900564170371702199261708493236498565295077866802370852529365312034030259798614606310423678965550660594105270934934718807486793212476534717611411296440241490312052254897958801923880131918790603917008303439122252348482525392184864514884604768693666297608047716853329515578337853389738979441996464664531387851476374026441671329397511652906276394882646836023721986622200318645949033271695610772483722511175880751151005164075341034272857849752003910710017540761683669549866373293899087584073050537783874000742449848098455907109734918310050577053607470287720460746553194595186533140338320999966632962081758630304868324183394863545887964684549821268140906589847406452184919120372084315876456173309233667050460841273156921066980370306114447268554802975955914318141307042341981279048409167096356352765892634631464998449549903779063548796303675439986375353316642759009878440711754810942446188425684844469012479857011344063994587730138987362510853723036113701135553659161534040496688607436651876665835414687131677377542712081035914338114927416525580102558377308742114612129016685179231044004295647675555427444115030515415093626242826206376034363070528658031879170467081732529539587982089116043610463913757278992503363496783486334549429648515690078776298248356465904000934527802209638971083428081394772999479746789497023562683255176713207230516238146372573187564202536236614819740851776092464377065580663299087498878686781826994742217046735775705650643358500034506010174243832446261537125976398547585618175229860727608140711918004907310515626105716587811951407928087105432778733093897896592368565055688545750844760090106191698445466032354033834649141295374670774180087034561674304261352259115244953695160176483305812956562094885795248007562182373336071805501121159066128493053524257805790484967028972730899909434265606214653184596972382226348127902307576448149833870231667214174217158052610903216347495600912024259423955328129452658478816842143606989976190397043424195634275948938074777906822480739359886842285320572719454210642499763884600597363439755026580527134270324999554259355916143829476158130018750348469210785885898960642094790045522621208476003181220486128456395518748735668168625116558839727283729386034061222046927572942632817747340175292987508233648561314074245086287729676925441853508338337674252585580460462202301919795391144285473082927510119124183572828244155552974089981308725822611525357589712738571827789227673162209742015555347182750968771022277503388562270882878689695898288179390958722698946988151750861189634841294460881435676130304628228595713604399111162246847166812317049710095087459058186308808343111447533789758798457856139010517848930909317288034112453482954517501608663921085315504659073456785731124991533575895422106261662977327829427689218836129728484581288878331865922192474364258049174521899455181576229698699303596764314249704528468749196479794015152982159611583187900551798016631223833635543535142799435333980373269708448621101238409349456795344488745491052129882073686504460593778675330047512086505148066815926789560508936000125962720669238372022877756128953606878446185078896846823981376576467283479151752805575495645069996604790271112272072356444493318931814705881085668995167321721268999421890634544367652516712054592341105038903515341551170792066858727511976871464593042735008543667203181207484635830605772592772688911455413561317401445887625516143085522647237029196946201567279445243002972804497390440212042500108821895832190712405044521479764953104954594280121152254413484404720382169581479784355829125726586270514357464167478478361267059727234073312725102729579081256213326282778170103070899920673625453272226994888156797584098520078066637008298903333105360179410379317531813857850458984714950655656949740616254579066882561153329490378068580501283114843197663854084205718211736949678394204242074528997633003047099789753587702444591509279953503952088354147910349435767147329144798509850489338534202847845797610639465480010641928433343499408036275160036923823470478940578759422822174869982519591568280444608661004653422263636575400130007953539689479368997556210431388417616302275938061292845651964790017319069259520986951967134741123223874716180856467065630209174117792010862587379562302822083817387643395195963183105397618214013479360316785625965651583825681883960070517725364425983292907667723737348469775461005220409541093794168950143528979616686694272199996661561568528667736059501009658537285614486020032923649465264769619609422570830412746904636343041923907077589511851495956171840190167320339203303957564536490730742744359039919477154004062701546082316450553616402566494214411839845084569138470724216680918438276417474969188924385716656240028946379401785886986199339175225692085462772840829846374768150959967716504211326916056468376518365356793645045311670076125689744006450629481280841331410166901749647574672534079279240228621440213870761187748833959791538219275739728858719269821792882926433998112286844778847580610732865415101113179341487803105335882739088791442043092429864316911336479431585382588281792421264612905284947373849531305628233542594152450773461718492259488723213557125319803213610996449523977063454916655771547134911823858869994779914011454696204487099921708946398832419078341039478269487112219956244045356254539771113651814636579291438702617430375645120531828695012088638463683240442839979933456427757730288342903293081450572041203304230317389699720658597751997026203082532184303144807368468086177375059385117172701595220436315515377277516885714857987518367771577715094985813397184714158294025891174083394571790774543053174917708135804379661403385904478398404377752588575525400623539633241471608508082117012514735165299326321300205735747316593325679495124636906012404771932123646060060318188509679812590803639072903412217425407935235041854166704415660381689239228737212782031057936062297687149137434931264429973877399490871941723313671029305350149401344184486097878167572695395959949714099983670581699786029437806761611375023411932437579685573907865535184164820849545395092833417406947850730661305592595289401206394648776354349783404494647593694757043587936402334200596973360943295586817593363658289262044717912848344460201128373934293372041489320879176024982929755480919638807790161319341426606424136433625187208798445845509774048159477164136051217623137365561770931698932509401353491998053457371450186764707216293917298635046187389663689924741322286010366979002059915239975096858679946579402392350834159072661957238742720307369436339838200391520263047181045957727305002056562946630026079256463821992049713270664843674157498959250346426462439754003823326654795991823935257655632956129229581212974822365437389918609630263534123534672934784968291617419152998457706656210757625648690289837278115840690769622741483981993328569427851727223334704648319221096711265400498944826569877045503970267564746803448639840803780597052257893336991412230588390414678434948385523059069012693498328503412334841009114867982869732758917345193966615289835971815138989397395777417119472442373837944020806720627446607737457842533783743079729030797987193925617738935735959088104971983756116623229705156156163469748315816516415002979204803404662354837898061744169557495875031307276149437497565214793183496452349993883808636759089361758091345426465321995523112161377504530164618544718027330716470350302091920860200203562480648398630266847656684113923049898923219585855328655522099136714814798463256299459583331613128425520097168418130012644057320865626915146354661796298391556231234231263335681662912526276942067907710217263074824893672798513223747112256378888597821722417167178510332485770583965840529695247226040953148892375588962236452179006723534297377221284791068177456046103732468391062378694488751081390591337745447409825353889133510566862440963162470058654678659836144235980245034751467256288690591046421722579263200666676314778863837711657873577491279020097548301364445112509278829905861693806959209127587174867086418328258622516449857638375331301862130539535706136315317827295289100533781562350157299642315444523552739125039557203014338636525163059232229888504462735278691534027769967838717266202213579094050464146322472568025672799306816677621929818817896802644528699958281004459385861883242367853299149445160695892651940078634151659793007382005148685089439602084909406447710556121609611136594506873526324862689398311992732487377806520723377324305365594474236564909250239244411850332446011630953177660188749317777499471331454895467523433310681639270563095713377127310918785321047687735417494474130995634007902072497734062488587617084757764416555090171347859905239560055199624893174918615604483469249826044316949315481104311457014832509608844439504217169915226169079825696179572643041466194617580359425284719003822349754637873312428224053240033487147149163220330250774034694721581115560618690193792665472645417669221030994439805452862760962221694231746701147335122002325361326850485311304988618211185154793886553227748738491443253104529549737837336466955073646493904936266385842330068425909283041260865462775820525532046930454723529541564738239358289760963176109167581682401544323425868523443480549971124872551353269393811308393968300885575018518689752692106322102002105906172037972536337197224787670978967961670413196922845713700690975819656575618610275872356227782125765838592250552316447585496651494447313685701795247969496662670764300682895570201392517497867654805388940564301906200764519317164590849409675077867185940682629850311492338187686296464145820364885748958087836468295475860264663167519578703519104366226212481064525293081197075246961986518121600430446386693189194902789792462601565528089280590348793718890735151458285400893420884096788169370900979218517488468265003619195791572189259929300639609196369965648765495832737562057397452158249102674262476632838765029760060762898703512406749704734270869318063141324967635782447454444200960404147374425313737670232563409109675729718817300298822630146077582114856618859907980999606378086487478004605947714887250733336964050275577674238819387508506981909421989097887542508379475421052568851506610028777454116030255267785671731570965955944111640208137809743597848964191801840315209722439183585360098715559983963576817529746037729013436283526706976269438635911046393463953309819025915075203193000194874931535687830884576900312044523759831388271847416723736867267471901841580559275026179335286484673818404630294862279542260710260989834943629512084205878272277877494488893824761562318676103412116371339868498046529701937202750233694805245682602517145753075973743227354116954187754779882468804460757558725150644170492128741872083583759726469700574444777687093152099391966301801100145091429450804767348823264967374131839028427051286004176126131077379121928101940281939957022946779590434220973416420578262934145715090782242108577779554757419762698160690931662282801848372783280044585035325164364192908715244170162059424894787937408969529090304478484887547327737672342158819415920460071028618543190924264178299516788573939743939404749244775517262363438701965068962476554070569847137232508062827432502725695705574507425853987307244663105234645037476750475373208285507315468237736206402613208058782161179568038238622879769162178441288180595564110743901455135689814524433168479085284598064389966809516937395183161156575162514583636508016639786409245337722384079334230313795969514254589897708962766144397595522523558941509384836226408087122281560611743610861708195830976260823519678352108149011561474727864514406592208851733562267018484856564771741118714599796866417265319118208355831113653446982426480422694094571340715204382634041304054519608593900060537024219755137544692313324091128076478939136215736773778073312534843209939313441431256888850832502531167215775497287294461961685431538502834473994956925779397718350995115722422279829445152219092244975679613279727131252559505128372136642398256339091217805277441570600984584046191935632818249637563342755252617425895715490101484521490589351540848797334504283073323592492403338003105963641730666888015559168141466731761057115153734468791534924723665372622948490747128538528870387348904161746854049426442777787002551110368517833486988159670501958062913720925427463093619556254776581002642712625790298552954040133747913834545478127361111957397363953376665650487454690254661340488213787826524633009986218266299128289094571103601319029192456684794727150968921186187655730278480053568858407129436812918541923298244382079214832415899407337277162323411270353851452694265951415738519579803094266294544438920459605469426195303755434535369620495004146550724002457081939609749208236346568652852061605269450480889334322260282036377425310123709567330848757427547399739293458015879229508217686945074733567777379473542777191811687511265104540185838022029580802444672044988776296025626793722378708912336580822115935798189029639728022402952954314756913922546320724565103222492488434881554332010565886532525278893176444741118214406644048080583817501313626556590241306685527106415663082848034068315578676393055629977259161639851261020010503508274506924597544597015896167356023372990805139076552401199664883365763612156287922302701756015857000993813009112787584082966510174613109862883657860004582358762606445626365605839278328380853032384867094152692999899333710377904195178069677153409356838480327128212968456389720436524889043872323285845756439396479123244974208545789828924038702532616900892849796427743573742350426399429873931374868228705968166389439962808249437354939315422152609819805184750803138106516610299777267705521918820591452302185228983399921153760088439809087288078697366378904837045645552508035491472737724362852109806296755854665991543053546200050433891491570044548881979153285869728572309890036424821324779804715868407343657544300234553664194248374223420638193011348780121429251327529576610279740856255746894860376191269374648908347068060874857282602816315472824487206413035696413284815078742180309700391854421918732814794995624973375666791895473306712949085018290927377807123958760222165950896178375639210621571128453773821368089935509306676994147543296623230261700530801331908661400080442223880031202967004464896562250131418412205623464235078911709046215090249292096638094247894034950580341982072375011336555968067004039804848810620254234902052110784396853591007108058198977654463158147684402545410720888527511659898320825775461247816088417194258773594981388392458055181103298089414747685491735771487504939760796226522381961345885404490310787553034931825282410945317155490940042868277555731608716033702083356328989675998738966590219429389598965583693956518946614157722547872516868116497950777724110510510785594265856725809879794234295218175858985316408959544476373611061738412109875122729220601181264701701460196829104274509735092977953462968241551493513631262861734527967887767653451521066127914007763681882400048028337383779216251014234654780310831413368066828494299097523377802083168390589604443826056398070801138056020332304446215494501923644611935440753387314045847873161761043717146973144926501429722371695136340630447787534640355232796701410004700921839337250547170627854917364445025125240204291033336322279839809289903310024838494052203811361939855199315111165992358868741774034671152301495919071893234693733250613455363419826661294403667026323196115210546204732341041774589318356402858340179634973570383570796789078949901689556128147191631646701235791035148490540904922460063014762274298851890158861907093897747377622504954147118805844178695382786352883966037560953984388941913720644227652286690022142221500734976568413671274583958173133534900835453521532980545209274132827818916688350205966932381257559124904824297809572426489941993155358002786434652866359132983680695494832839725535530967840117442256664314682510237905373709875777785597693334488155133793616585571107275384025794893728666623012235919417981899704149919843751528004209910285320348481631410275081430598225009247475312217882042920874073715328232355861294082603545669103693011225409398673712221410632738151494886695541508437188965791380420845231732841575012504484664928653026242676340054237979492549993464421238276714333505006776585056107246528222711866344706473806773468146273909409846408379307797377576187598123311888496246257444586489473973340085661205916527697219638245793571270392473904771534864680987272767708907295298303613624377011390841823810591989805543038696530895345177396267100183323407662387061966124196391152959422354935431705158296221076119298681190409675256988110526392538523142901133961244655948130160779185491992257635901894690784946972030898459958338509663487498298846822660713424851756819802259845481141171359600442461314584332520175087810262056018756222072757421507675988290318216834522725810127202077036635499390430344132832474471088168781850198113140537314906273113679390400418552508695987662282330648464058701600929370252162716695914970466500599702546143601074335565341478891966861218029776649798867585730686368166065045135856851598797188925504056537296860161474760318259270897916362575300532336795695087086095746155595726950003503285268466477148969686662625789312364833318686387494665232629925850951924481545977110782890245569713925277571532095860046714586268150829123912123841779000434748383233542275994817825134542962709684840526029999048715221476611153128286427109549445791175268536943659491824987935358212285606950658298428028915889078724869888437866218330988124422242930964767266988083021804977114104408339358229994329089527422667644408966175720798928286871266098125689877000351474018045102105790846461285533470845439022434190792195938228947979920839556667175695872611222043697370858455820645656969089292179208279678723739836914313004455988078966099527411250264619079097763422356525787926945849869682448166762976735987246827554318119882154630430164194200871746243991697451972226710115492769756262129709596332179467816855927269434824994141311904348241752158484538493769004883603974061303019927640865649428564168296616317729625303768451837728265641991701483122795537799026611436840402467510826240097996994603048419946315902159112834996626133424580673651787951556300629280507199492695412095081219594042984734623134431663510251881222320328914376220615054075576487667605394201906301498891730315573735449015112497554127710980637085395481245668722144408011478793865557081643137032134806785858227299487678250681177644502009451563661256867063944989914888337346951382496451960056259866158590543765857371019878923275295917178089123280761678181641779454405242590030001228425421570762123214622601486156118988589855887216202036448940413073586552007828196186391851442763093006400035381867309213275153406667976092042046215933690301375841829144522825208623622499024576118018302157618956607822814892516968191575347135825854571553729895001324734546528979409064667591204416577275828230470373788096562935796735327033774247281542313851969142746307747240059606278120356611913852567048488113421435873881687419158672716034069246227889315470217115029389162815359962083936391128884038528992079070774512209753242866592746460931492268667272700618235043766376947591814074529118731842847375982521175549894673053731611575804661860705678950507609024523444208026630281487850426562888391011411672613851379507861811233887134359069362619304625421603757216138053926893904705186939852260683737490210349034744361780299495209949450471983972632214466107938563628250185971094083895903962015507739634282743621247638570587346110476642942559790913054260738701520262685019892603616429243681432818232800112055853783312798490375344531014698232645332960241020664338421700640361140401724351355259443835830223210806012683929617227936538569923893370542169898779024859613633022376329930341801173631705065722377817307132351833848255257996272527948053815161238433785463115962608941025297722804544946642785445174696170315154321116291151832138307534748487970475247190668275968376610011391135390119938192874311417447295415047644626591874683836202957542561851033050416518787567979875426050130199415632174971836352000598351124463627937706672369828656501109122925509752270898921639248950400862887760420797022554320982393199897641876133902729479707854205410469292259406173327007154931186122331407527843595775537687253164664811709707659075155415057402710883490046758558352601694959573602637056272402720441707488735540880015310736547491792660975247104752852186646902024943649724519570492610096058317914895488871716938191882761473918744871852147331406857324189161287070456559513652776197105116032938182384130870591455733765338213168498416203791802679241820838950563057847011275959845108883701229705942255914593833895980982165654790730825544826050046952535225186099693298027504977749112568373666167298654437929375689008879593953753619755658363648343885298576071266463096362639454097742190482342138813522721334926685516588679763618856269033925975569132803578365119171023079926289638473234114194727574936329633608275994014841851649216472426459700419564188925503782581623915910798673440451548861628559855485562697373635236122256852316008684482380551819065219930988173178904419840237699093387201186021515599953128856860862442356288343214923460299024633524285325831831926884658617026250984609439745091728676848999492188731553956930803962578341833487704616970704348884243322601352732708485330823043537259440898802128820111886051154453270357231794346888808491205463984315277005818023648392378548717967136123619647930378611734225720821918457269871474765534374572894525496038490080240416209012366765133881733270237108271903085742140704244394955213293970048682695570550862862912859436399748862595081075464070715071919444267156898436836988431579224271106971543158850101960539287512635438465559431118577570835920416321264602682609295320338668501152812122666106269921999764230982755036037146725779142125888964044954456736959823871632168580597582139298339449277570644122463830139097050258858450071088986453992429530602013298313100680333413035660473715175108172681035182566978319893139876829378186073813739845481943962650923320645835122965092438203084097651318144506135770492529162071400478179614043530029895000307930859010191690561029296923665122050757898515832311447137180864763928495455309856659720989124135235990255730221334485649037232065727849225057108990798486829298096252346836623301435356412888747730000648697570211874490803285045493434080505506813611851554366535148989363851458046621568488284898892158577687813735434964983710048345560526288236082874834635642990014895664040009395406161534145232159889695853950631736602164426693903868498025795584614128105903966486121907532348746102520114757772372078114734654324608170986721215804855643194816226786649443567271262220824587695772186949057239039514128941053676432981935096882685724028858886627793337335537761156265546455763078770644040101102847378205615574669630064677756427346115276130802324504322187366897569131543033047736035909345054802210170043834145727169352483116533490080593298056702732986261038943763545153772741529538905623610743430095534597010807932376561203714168880141452496216396343903222066803242092698812087518201127075804220212767264071823261435841772182566323436602474996877446185912171017459958587723430382291913221497991630071754992335468291905989257994230096291744154201147647091310028256057375540519654360322539248292479641663426962046073202508492248612060287345763671476521114360952470770789313366324448565316961155768064388003628169449332829715926802080862913498562723715368731423876029917554802745381823586602783162218804706764759700773643088221393454685595234377189693157781629872420196831960070499896449239118192761888927216300620955171525863258266082481299600698771965822126414524159836003751849081598732193851020313774068495413953389174965699572802659312479572623747186846261097573357217903803130888242182234151338743470008171084369453911825376301893332094705793145373518255871545003462451100909094322681399636625381517797241607527974164015156334787377308187382649830737488469693265967910549188046710860051072537270193385474178050153790671844015775138803068320643665922066336766828033758611719949547592723609495275917622264744364133195794224608412592158675359587680595742972016131925447487545769239736142320137810358949894018207900829220963592013701103315797608662054590986515812598731838587604860941968919686062551427031468896747619103735354393238334735425278254726957071725364322997363163830492878703613800802084384417120601835702969931208274400349131570305199171290777186313950924053096626837162269864147582604072635381971330890911608929098684693230700807737971411308173626137602095348901857334884727603842729239646249898152538398549976922748316954050572102684616023805074781760777656734763510163075064938581590675127720539864023085147794752834624984255794404890871665652749069527661508482572957233011822116239152603029060526473968404579528555342605751710778117498049606457222938678623820953454854520963479756211928311843895714407406736377959384106964023441002935627180074650934689470641527981077547417486044570996089661824994789516113380544079994409349547851572486216230285784132190115415905632613997566707396038108577984281860265088699668671529634962499753689424100483008282382694474737422367399918166671848116561095410760488859131664695820411809126773294981233038156811453208999944880762244384896551129593739313558332335402956107189540130897552440095951636537893798527573556397266082934644138104924366779653264103340774500485325689438059180378698684159605713051543565255914440856913151838627011000620294152997152512671327842353946547614512802115015212817367974625418785298996678903061638680282938618865883965531620819100857750979777755955988539522780935276082682238744187136501891599974336007752878392825338555908831479972976527772537853600335083272469414008711726196565384788213853179536746740377585428567772943575419850226283485766931781024527143827993748169195434947919769299794649586546527284149232645190739190132724996548297453898819911628615447831747043381010874612732058956614251525268754664907936620031318455228871418935775272486789723017158096060096896873989366679170715407340477849200210181444052256931514365824477141901032373587481913809502152414027516654950434994091519032772129862676180991870278693897037437668434693420140048295845167610170002090174196921132883766170597828671378473342825424428816955188241247808829419545379383493204633740105279824325840942086910919195232330213659084480990614521409537368486386137527835325132133785724101129304868060537109127302528045118331673078616052651556320293126548384086500452222627792402806946778583810652675809760855377398317747973552125541639854676365677269421390808496101828472534529386522939039122780919253221142575582540683934915249184521259517320968841211884303995199768473433356903530199978447484805486106055304256816904665700220534592602075469607016475807388964345322485089772810808981254701021736882001227926884292918591099102593244478333110984528841496408485680155180148568223553075141397818123549845209607692290382662196786591365291513516765240632091381806228845867721908795597862177442638816777022719932469056527002993331325386580994634965067273018550385933350942161078434390008721289810055407383554688929759347624426217946757285973007424213784886087348010044508494670856607748531462549554261546082899477388738213315694641646016549227145312165615240330926616995734648773147719779949580619877650200153813150974608657197435606122788914079097653543626669144970431627389253441092280320392898605992901871612312462084320071706579750410261247804715077905276043832056087136124627769480649097740750363461763259447093328931226025242416281264772435672001215597348203574118889779868730722013573211001323988732843397117401218349708471436931140359428846984402431469986185486081461617452689744137056089881126139521213310228662471336907590928056575475806599249125849822382482419869838703151519533993195678526220282776760455813437739568860910219149098853282197897895880710333559032269496279167407946586265120868009697006901837837961065992472326998223095228748796474204340673933877305916452890380202006941346903986624974860301595037398953514392001724374090477887868463358321503784727943665049340185616734905672130483957934658935989535125320644199023774452361762740076533899664462934890373808912752829924779985200925486069789588068590550060470691600838437497412952658243638088646442157866909529598409658449507035738706063403620929324621882047766352078175575301585276342095441119534490448982961862651052716001614842049773045786149430115156613377043673677943771868255540434022388091813920069101815538333613437713903763308355038692490235037189394544257878768526553536833801659736438561926863143075792060557232208422326742402596281724691489256411552419446186604940637200351651576620983169847467706544594135517742588773739062564970564923718487180596331434273915188421524224706585386437600893970086871360346264984682798787891662476786567226152762551383885567267283503812778554331099532958171005352037185263823465176278680747435977567678651441927444129775190439678315558388924309456743523648190142166138320521960908627377139434638525565332920503786977138645503857924114183798683344184755712387622642967216477190135709537226188734940690558724118921885021924788039159103684220213945851189261205668052004052257840533232098119370946757225050810652804961679599140859023949213733583230027323761275708182983341189608229554530507235596646787070802926768554469376338876020280286492931496527025050139435379239658360965578418274323528362495155223027761083604280092258977405323823071971254036431629756891805794443879185628625366362435183672326759466717765747372787993146711738814340465033046882456377923071174212849250015690532264688378112518834741658626092118974210783557281824518066109668964358872344607550780069488798037639552499077587370699855347229465627438304284907432479572167550637727785029544272420173580245060749651352521735232662075145661023088225872251504231408416675583534098175254442528454501255404020551911155652550565815939068539263278829552623159678892080086196564025302521626092027015804760070747150177180017489973948897819894121944636412517458966002463843220676340249710859556719686741226841613249727670192484674324772449558609280840569948553461271402010579440673734977390779974760224940487597110098265658381587536693806217318099215257533218957970348986182955068429657004180841961020189400747138819804748682266389390628840397234886679076398759580451280260849220824368148648397977794844614065010447465012488232472017966130531178783119304771549839641045073235556543603825824013262696825686356220078484970701695157974132137091840879737856974821607414359172698479076827784246674588599244635084596773536107610588246843674277586775966407018976618345927914421514096785790692090819489277118905397092897281409463780446449755519415965669903615648806452440133325516002731833109334124620217376574206718585523246644638820485084144687719874235411852071893413249179944936877330505163685728547250601134808676654796076166634679862371670915688565409257156467169615468255105675540713894031321746942889507270860209193737954871951661882134213268573606010556695551679088796786428430983664381207289272209721247581075745873799843709764274319506315179255556722826325151223551947543136966163536996667310006493287890824433492027872840858638705713875194293226516249884474819563871976250685474399465482196899081672917440437422640479711762692311617035113040885399672409082569442899681315958246205824141847339872668441621911027696847067811626382779187728177909643884942371559018553194665543964982244027012496166448636299418723831667813719124373370118490412257814237322621384826465068310986487862306168095558054262174781469849771518445864558827052066288255507258351199052930022440865172306162701810750077550145970411051598937827745740224811568798976086555383782317664601392165539105615022402882157052949212079746057561549847501376031889294849755228146203463020658352270686618663323253280654963578292593776377949669150046063478057518521751537471224372712637732416194436930661707877967582967325103911344223843284601384531999478558830889442945239819856417410506182026676014665966630308496504080752562554498844939510524706253385455584570529126755684769872911522912723894235105966692612927529347519478560185879354957815918710157033055244369442726910663110001576304798582524244306261633034697182645979019855755122766046292917986653775954470456540068027460708035907048799445291510918113263335517401051202066389221531492576203076307217595508587938822576633342775948980606580419108511019033487415977395765410178156019265332932819430912104798941839357743356159796156303466903793629534098438931118028971176920094160819439511860855250233732635171301583908692485844275674055995750824908682355579348062079953136630824161927843300992922880367180362197450134267518525501680057340837005783141525596880771723320115594936163990003839587971948244612290113960264717557693119866523729996202725365032097056256356120180679387236938441704014018283170966795477371457903429635884926215914739537985854365501923203108200055618921608227008747522497438189913424474705279551555482583983250248138253722638421653195858104549647691066113842156965551038191707551150867514655167792513274257281031466978673149131556764897663719527218741155862928666444826917848237651689239325677074622559077849276321777328608237950815541059917138278354043372160883417724818851591335075698579872693957808344794033392979732791671456090355363319094288933073769108638944995270539738552993833377412191145510413796406465250804675418124910122581106579484560956905465320419514386231699621778200266984381098446806456958269555650851817814270076155905710238399390394665691792432746616590400085807792232975807198248976079318455673636849870527139294076739885417913615849357295317205592118003493333999019132957243456572302278297129904784799134566751016124989587548124493923522283512754512405365625974287524206862083728813655283380705455565801344221779357284226414635350162350045382009592023156814378245548644729060390929025765320594709071329094833782643411057209421052833747588095255987560245073939268550492912646975837165986130403872259979732114297277712784565338770431378698001396555054288187379349421705859147723977518778969836545382641833629841304342316204282284407736381900702275079000231720051776621971175175993484142407957486059774865871763492230969348196355480082135681800336630287008891001881977725464347083506606293053358782727522522724896304269507718309756724787119800070327695766387041578814977076286518556861619855370706474847599441041722716856478592938339668321251777933816284364475205760980232610259753388330746784367298835181527156628642219632397919886904548093552258046274471927548839328938088828749026349661827382531500394303880105350833214750533220151799357046756726807481660143971763351726087332159191376789939995555344522789060090098263165098073442215909360175263543071326266337809011806677754856721273212463218909948409062509852427973893502337510514508408728049796157070079500796877995943303952305319140257968895462025547046618312577855972574772965776650512402473323117180029150522292432272771735331278975369986223351241342164267315274868085647997105513660905847924637764347269465068682140693349875132534900816410289063017654029399884155840056117338086291205808421889401943314676524791359447710629360441867295406833923583114038015084488094316635159754864683947926472808867566920473176771145103193329457024700025240946147945070901864154869522398445320643924991284609885707541680268702915806875588280904183746977521461513936646979581473819280868852819956466750446803942181405001186600405590502934238560961699879857971056146072481330473700170203540049914198280156033008622727644607997787779905867345303902802590400072397680966535692847731817560755946855933720261541926346311148429396205999704563897149221023651158265570823557363725269154667693398516644053444186906190188210964758353399576958833265326189445250281807626292801794988534254763661055858073080827735246516112022645591030958362017690148732457503876627157447747574743259198344984000855068020354587069836412372312094388613869822000144165585825314564568746605228848799720373681807826677853535756565429616147313330211582588004665529940565231318258965975659530301852470283900749402442712178321038203876197822570274096995606292506063012677034805323558657870316114969898110451416436464104461407595625904386237056342930264601501106262991567234209924940587241541445138245174583963512017639025391758652558948628537891021254264892184236001311802843454798295915345454426049891846630859971440532379149527179384762885331045519600587224675311591196599722131713294059975569956943536462124173218350294866374833876682428323556518536237832668803971129535975205254821967061158998230330981816052550892278255571284120253467337092525039750211290302622688903712068825630684435824470075964510921633421288495875368273748304247297499043658780858604155101764106789028662462906325724674770814804635638718535215880513740563477396546953819316633174289232681685341478869749395935318897473467010535397300077043719150241365979907788819747744731603579707707902708551560225150654253788340837615192557168585223916004289583733429386605225619109897440957428783918376201409878222819323655101598035604172185277793731908877325503116709757112424497264189862631309261032472062986074600473434006271214759907171746903067607329019986118096249041029202207102234156904165887395034934670222916023258133125632767108485471323768842808508790246139873759174843804112210113554143929207696432245572359935359160481219684290442201603542649909649951180685861839908243468438688028464451862480025183477789695512320013751648007934313802994374529893382641406537338794608553819723316227763235408470708076503617538472786743497438905206221746525715227222460598251582758555265983992794261836886744749340255660742807957628504709739234581501865408068257264458394186551744460142851779045159598648461490880705535028287900002939747829539225424784535163761400213607383690006914483598766594619981371302181786266579007677687793532461377097191020536003582338189085659541220622950035799779000703026298903472369637987549249739867587881997624750833013988364359229818004344443485810867873263240460043676607579285014603276095486843056300764571331587748558015529945854864549166931453727208746783361656072243318067506347675935299621758614300495558839949570412007290814537193075858755707324560430125504224648910677639708625942622785116738067519629774000448473791529219330600672412786781270741091779706907123903344095178498701442408185105462621960559003597637636933144394013675039900565846178950878188479925931673776791882342584138392697964985468578795073413765805891816336882510125818525558369946831957624310214977426549887519286033640682536078777683550907042307547757399671326907406649465655386616956192804658388143870128119828102507716076573636237946060338800848281136823057227922974408322202944003033673726505442855427603103624830042361851489597825990797928742033160281447743647676953840301983517554189375683253538666829393847791763265324591339375429729788224323468218379425078985547541863765672312292773736968333634157842669833769122387615176843733652166114797124107065164826997914551393300500279447450237655977280885823049658145846440914260965791304203460353625216920143927089410870916359161907200287082859474022722872149252712720209585089068787501003743396814271115456374457964586955092463571775654853380821801489387002559022755533434512059045047024839714746592926437093146293552498396908086401242710604027077572651104878173711659101452996888472971184023780585303487186987350774826158537406653975470497026349423273513483570414739567946069869308400873272841746842543337316165799454432811503517117042376110613858635794385483788575586848179771819840217119850369213048652583134011220554758536867435912524793537038225315021364189766211396908154811720554723700947792477064898027237449959090663228574437214371952838673231324230384279776921648338376823609441956574019271205027668542820798733073971229489493126666669462051565588885876266450141032343530096376661688106451104939013030196112272015644563129752817400263099171154026954554788111725989660200000871955365844271341265059998592777236041084668022592061796686193652755963673852135959508014841008457097740219734099844409177023791077653911319978280152853543206050822021980118823602932620813383108573365442608579002445610700110395145423236128601116792389505802241723599334800052287717632810451069788082681702897814384740721793710607798906289833782678443892248124968310067104861104010077381256344828446721629747887996211579309066469296704824660480589986695775375708897251189477872199727979587370267157895829388927193154979872741870952114049315854719920403643535668176509253271500944252086084795788984004980543800213431394906793277872837990709887649917147371958534837977834054186574518773174599298118756727283279545435415098448061305380813684049270891464255042901910668625515141453525592053107377127063123695462929045906284924208020717338139928311993818903991555105148552666090007805617810123651835585806599813420893131831697554875610100648220397545194607258069301499248953957017251086874035788606558059722006819544309539752542202304963622474991180786678962137719964097176618981983449086388390896017731542442378073234309709663523862043837931818394186773149176027984531737796448452459848280947496450283045136997614048858332603731204524148345504488452988842292977745138155076268108311141896320115010077552574499735090325244062117824709120853267541870173374597975319809471568670884685415820901730477338468685712043352342387926564482294483587845305285344111868669993929665738761222109374044907648012172505782317337775797744972652125999274539003051307065000648168728298007026538530624869140640544054091260526531100050666242352164477403297451848557072237451027557409871325239815328885428835804318171047588551746466891222086562663860961099246899278630440087382734625173885906495650501912453007138884982998132891502789208469563724570130205803340981904164247647040961804557818231214716004739497091866128929781324753606008479680043114190438342488707791343306715016046015157859609631373484589662732926364971092620451920204052698726573182737197825047005349866195205042644297237650468419876871506928757713331897165054467706687829054062810320776598431433498723430495450134291702826924906405380717182039209760679244263398169404545670781347213218490683138162098293865673345246014597017263592339480567879146496519220330051264810237658596676308968169681692930401308592281069465758714255615463639704435988181932207003146108548091636076778689135320165825684742560706969120403219119721132880149690182560087161553004820332055956236991017709894563769338495763041462065652242811283594163636528814891810766712535850294342039259063413968034306279767769545848838120472601213249143244324310657740377675254766733947743388279064283378856269072068772431632418385843481947321431177056667706060501915455689310342850974258574850598214567008817547794767041153686288112499539164500462429701894715415833266184220559697829100313989745663977784680124100363120413169651974752547541060948264080390472981904376875502940345065929781821730057427541581941904907443698696095904757777216730830782141903533279798810124545982000790304192208030025665800822665682063489150831071849819053138330995447055425511434935320065067756830887193429253242988823311297095832579378775082459574713766564277178431951063378627762604061547979491956858070736820129886364547383256440874787706674673453505188338834342819525891295456463123309362113349370559093577816219466358247988205989368633090785140237025859677717351370099370464451055255733831413742430973539665853898439252380325718164797663665101695296799655560928177239534077317216531210171964248868527999579922242356545318984435113646245160181278953667926124946626353116465663133742197157712623534233094884405223132306144579324524301386813183693279405517766339112132536754276778916883039726659977828025453440851072641790336824508549219860471212018498172256095253860029099649790914759507677095159689057783216742674881974626047921231403901100926353808242531174674890891902844968621197141966641714561484364853639978888058083692921164794260583800091451115380330949350795902321088946179235898246566422024291657337684478061989400378344045221506776542992654052973604275552551766843307473349292164166594250841809256683820411840577577803927564783394776387156575630813537790348187264418909019380938453741867547694904895692438137699942249699566094097538873552255724893335120478998594797964559697042338488218764909453013670980374592455390317942945484011737417601075347150295439931954627485125299357085261101439844755206967003519361437655895757878206132611223366337989563509686714507232133683394028620128149414967153197761240612723921654516824458727207763469098458153675592102975989570715584966645935240744177051997503708437376578238928832307977612863209426587286180923858501443611069330581391159351438768818196217889365421529512418882980222555556187755945201460369126108341466376391449654603613500457105420958033207827916579168363195396395258627527673986417697125838492245553794722904114377944527180978884777832488433768550182736875474560010394236580464394107927054569976267262141206032063006147798501679436523370273127731115627446208252872090940766564059105548382590870325629253215118761607196031522299289339610024640081359001420492664705481423025291611635545128086363606892247535857632663514028989304568916736853109938338531538046372444007762289977432751648943552421589918016848722676166180250262087666617660838773660988284029670394046603847700960425494287639000980444513515217411540147916056468246607656741708662158933946959186308055588707540961754697598251460952514456822001844281902483107128979246405864193995117367847711875809607955473325462744070336320077203603990970757028715537945418801108507882907628222900940988658874574167710280424919712902145572672810894062672637699762466851131912065327586468496434786703475231941890265011073531760064543530895255772065810169423289624218053193258422412910398092571972078726593180855653331546221265775538549968777010856839923600514854840129161228609772983621784380854636433618616437148927445919081281446251164641535078806356446659014416774214393951577083380309061239049421452980944634602933528375565478720348982247622856197614254358510625984030974105013349407057239271860313722040586830999384515693741608406708557770540889459095337253589932051705043666324726074989376880491819003497600710993258136473210022607500923502929909948574865464998886978275852103670842729556816688251333814420862965598791940929839082642569242522109634484088750070410922017267023524062461729933462370050353236644198293740263116698670376133175005126462711150769009205919699796956205148941605982591736062599434427552494906528317985009247419581423994147248276277215105960920000730450619620592249575248070282756637253218435916670037515423971449390129764671087579935618577533953514284542651140969900937847916903779773962718780411031988332484777063582442193995829139022935477343727669619258454808747376188806883829320301785112791787945574409993571607085686930162230459269127154416182406522825487092633592210386062166051840471230136946693222525955607414411171975735992295778342734764168202572752147420128382505343983227737865628230965599806580071389778191028031449610744345639085570373972007810995023460741078172326853644986931075839326468031946436151715527962469383330469388512429879558295923295723619550751331711073462919546593314947171775557585228293317165468535558527026100954486908385465227448733414251869120628391866967389219788077829156170450487195445069720173426580067212035024866163712604709467882411927487484063261490684992285110322126632888395027103571425532645742227445772690248505033458139025607505492818715377628918514182663904757570640837782057748840616955086280586210136160075045290857597492394917105482011469351467020159054470139802429012196137265622651665642771647423575226590221918355358447466410759798619384373701809686225631385395728389643362029029009277180576178862396681259100154368394374712548420865864431716967020404983441416279766831469173589557208398933848521959330671067239394885743948086302468435697010814202919493819212372919826571001413020129248059020948166711459866682512035877797578155981268165021579182321584380998053590053781991703321050211131963603896954205025022673559647148667553116833709627626595391721962561671588735012078835779333698549768320436552850424531089566146892896579205683233638682428113371792940913929815540459319639066079058554715246795833480989509053041551872637398085172710582591366724949573428061245447909952419230400906723534098839578803852949251736411561530155446689013937613786990535930226627922622532794221106469347308710584297489348381488535836465007819332198715093123834051507440475814801407193159690717391488174846483930439035426892954230035360237704948972915686092124886281390046547474969786194735945309147826818094328272996835165498308589405193131093763360095854752606033489400290057197829983958965567344627207223171331887633716029079075570430062991584416645852236719552593805154139089664427996054656436254911156334409070450347024642998950993643299203693385375019259386356097295343492901455665189455858653571268858764978155064830812166598738040514426909808382239978869924445766356175035585020483763033163521322628577177448626959698408332845961933147188254647601206674285170715027606392430574485354599516125396853070594822315445527520387907237644538681261599663571062009195505499861704207536314494522751758586653551055310309850736298958031247517339480860920300839123875862424485128206856421811794563327520082663074896046325391212818208260690248305483898712737457583665184946817338794026796051492194821548742598011582809895697702890041323983187211234869025673432055698961932229328553686523051246282737646428594546742200444579618303940850406656595309596557937729032190372075597203478601055473719317109776535854455699676809860115900751915390504090206671940439085457612723609152396269915090590175778849807959472746133537350428407572129704030191895590562804388175733144019107054063268400293423083175935818576168239975588823834017503452531329656828405385783748336056966808026962163473711837390788182569902822024031888677514034800114306371164510109422985054730264470998479593624107401282299736115486460376185303814630580306500960536321892581646614234414891094578461407910900122749920432930726980579114941969941358596904441270817843363279102578239747810526461356291184244361226663541978795182535482044371490768707346481453139602495174282000336843002564541842692810873402323422460017461168049385218498003449180415415752974303360936082757165507050720927913585501145749471208482643184852357270130187866639595224047602213856539952753275204698594113303407502292250709469246429202985146191258242899443931469582576713326148788023765000114707960399449512194527230978356967427084163609698223524226505976155554047854463182888508557816810402310796697839905557156241191075497096629405377683211463815261139578639997477710246737255339405388262271069474418331625124022404924222674489342053899379471399147830163366125178744534617751454448755039727082954136509033475573563803720508304353812501157579016569433029713436762443859202243782491677937334343089339362949383823124006651043903754932715867985583766066822421477512831933148087365426345781689254646730637572149189184371312228034128070297339950667881822518077221180398644383142669851575026172304902796141604582713660614046243301867039103219536083995348210023220542877410293400597445753820917938756495988693192267392541831492598210083765858745156247901251778432380561061033400071249772038171790513507370466677406230481181148152742110871898306840567885086898928041355622078623482941612866272348257529593441195765283166574688315567272075712374034183602821127393690357470258489167027742978964371823034476502420675346169893995030466061111671599431598040884547525780148437325491983479210253486880471574549696322055303956778846560113041363094240816435127541834493162270667962877586677325590400305714217716338547453759504860245786156315367368476822477989450610014719579024967882219404470222402576842040825302216884462428161575138598825371270820074000235739593624536319601727847796853263093718906758039505845154239308896915160318184783633884475221171930428065044020192639610029334550922119816061854436932132469214224842941340784982633285934223179947928347027791451550887298949368751509844510763298599451355746837246930141754682272000610943035395452985619047185759730411760928457589257805047296220804493493193005393228852105536570159836696036166056681793939241714732632052276466991190143300991107528945499721770804564777311652855629800452250652016628567048340377677779183579340937713489717594773133857526769441855535083027412023632720019178527889505827392772254714203292095359186200255983592897603859745188142325431579056076247084880829819460684455315793644523577077376892017335022837214471614150013661903762140409591572524623948479500849864295414675331020386805884501510565109775724191372854040050337012623247435870239942232250658722083150051744660782158596999877071766364987835291533051422040870047315093051179892670108129884606349576103194392509411888353815599913179443697980899701048638395668642970268774350470857041408022692417360986336971710892009463868094647036579440716940048986142815299966057724914098666504565340555410522950580353146994600523871676928141821861307271310971451504421692079331481633959585030054591322574444783290213099965690718884767298901927187239964403740014640784353656585431212163102781456977299886881002502034083699997689013959341544229657061013398457157132853427298083737780990983413242746802024319186296044310272459061676188331758399633449925633650338396968572573910745055377677143931921126781641232395062471275216723175872289464578760517983989645234927586559179953904805748280838637769006283506864149505634350281204439172673693209689563814241451688276945719001968328415035414354435926156737826594214123004193770107827162928048826570449169570004592034928358049704694468984738459945075355449997087164818096730703211029807048228270046883709408383644061738277681583975735381784902300030738846730902993509140124365925165387661791145075323027578880729121567985029136267484829554826079494671248014693212279703435364488817234542201337114388135236400588267349692062166721102296231505378865180065146895854083268536526397878330488981163150036765368430195024814255057289270948622901030115793589833089177259012030002617646949176665949921390463781525731258975961533057650957009831906216719495165457687168090630388512186958892373280861544207244410892715250682913386613169171018850228657151772622174641337570958538624311034163616444999419923521033104561758378442963486266181383308144894282928957743734961969210314774253538036516591932453146334532852189671255065899107397040763144288856420108308222670967438636293317339242054869711763639451538752808090820476879885963135358984141273079808051857629917242138568923928053160574633902063696141356561927601859892946841662971935781670194550146950973592761423245412926411869591049813191751428655894097056614096776894596666224192464502625293414837515494588112861102686523112322336553284389899248520995952906905392654910723160626114104032853980779260812358636146078516973481407154163765648813582576938454823505699592434304631951842317364943349623183126329637969560106333673201311267339765845107736200936709616947683601445968686052796562111274464231751171540880186236964220408464357217531447244675762840652255992655177457161516436036148824822618770698092569918464911960587416095311808228968394333967562647975339210472454223966441422675707014909973302124645077749573014023387304791843985161929319002904751803445818322035821830317460179353481135647052122567080291876956205298938387813724807691030112156142614248251660062623012471867098233658001460380716322644418951974742607213074507454841751139823886653102551336394520269422362715752810404936680466267270191181686268956592729977448335979489259863482149359338647107805398444502194375306665369168890691076716750714784954823296749826511724090378713333228053379692529608352605559539865553912823841743567737420447240641606072768773339548454770093321221211313723759437816701595246396901578936673510620345686974599780782536259452997837277094964614307616571577698679944832522349433030285979033154018028109878218533462393455534751222712778714924394027127057725242383203823134243481663518200716485549702030140523526930706334292005846231908758521324915794594582338190724287013485643345482043385910831428637101050551800932893785732961830292691461203863296365411229050349742510794791956119234215946236318213709702071472933849435125476681840912527827751161749061094988931749051467670500877762143246438991312393323178333421134978736001402908175914241517737878078792761324257324382110401217532795139639452121496958373024290763540303125414011311073025087648695079795395074728947274301331086113834899498571151532536721101916640996396428905413444685018280757414541665532768210653572298475733086100326280711538018180511748343987279075040600833450657851680734112962085872440231452216479520741302787683313389987151323287981257033748526010470176550432332900713361139163060660965578929672127107086811201364384891300407597934468433709669358711898555801265925249567650865606990421659344611014281047137954849730296939303958307485879812939299617183820792535663605361534474263649206819502996531834509447308283704151482466636864782673953592610212396595658338468022200956317050780189744905899560392389732002915832887267279975758053358549718399422403760757725074306115407083404762713720305187131529224222339560529260883098442866707684609775890349037977472123598602648863390588431091140795221506783366650437334360831682971747301228005966496126366285265017479631699822596855586447157210470816459511928890323239761523773998072603637770903887423462514262053823269527530924450433592553590980868195686999446036314302114865153181352803736866653425050021251909578201772021770666930842246603653382874643982608101023846239152072637604901895303325509637963428231267264059058403192970310528478041397014054444731996771934236324310493307139664888404367300959249334471849684001037251714014691865491099713969610774182337083494809607516973994854742845187824407730971066424134091648385204147762977935863180585811310233399876531422713881845477870911974206844736876022566418058569401235890741916169531542856590743665224293417162826143126757937906736226632137467201083350272633538327030869680824320531544354950040998051884918126150372818153933413782138493843249327225391537194353471306747059261371589783920529928639692245185457811237242070129373968746631005422273478424032136114169929854098643550638896774456999517283885433397631805794133945097329460359486997139453995291877493684894144118945539843753042495477445233665637879756507038876034981585464743300090190267082056350643894564316051319600192350148477820993250491995926847407219916671918898695491039306203971082929520287126393991389883539112031247847610140860021208635967482977749977045336058754601345134015958214094082848938490887050215123719450399016662247251442651178484403253866710260582805316779232540297694545773975125693736779106664203610037037279579023226517555115386549052570886067875943936255871992704982173747732282267309628358355891289689486076523808639712611014605983122947450347219306022266586552966863078729858214336023246616343638805827411345657393115652454674100102277022711037176411898615141108442099357811137034038120948588120864427578122963288803744886875586058597654857645468412195783289653305500578942942188369372158670483562217830578647122827733365477998598743664350733630836994226230167037440499942141987801435675098359099338192858412548448966817334020365395082614580442680616829760348322351307075960975144484460719651797855829624193650022694798928821672019031040404317125939823525108905056221125946407319782722275471680197659076586108788665911876989515081766906102106312118961803354608345266237243276628038190633912047317314291916498823964382156649509294169526292714081550840180021725566478964854594255669062889289603441625060936318594542479322700421668426996685642837410149519694239417977811598848416476325832915425722595246035029267759617392237996325390110017449274417172406472938404580719837911654164171826747685731379011329124688154912547844134275720651802045993968151310575987620050259491023451863336563981553436858758577432996459860015456333095483447729437274903466708621631186231544506267907731711089765702375040169348874986924585411318448798540284546942085994385097922209914227603085003673139042025287725231824678182923918115468205921160609014086002293684532215066449278799100611356125980115788862009115971857494898789747090002492729492823617119811331860425526829992015883329526360646908519072821053749590430547598538020832001561338882191067469530932564152604314020770995912941202730064030231566439105572086553997909473000299698075818531973534438153664719022599982686593565145139334300363742043189332701901052971153432190088793617388518866185689621525633748478483263542120173780673746048373630874127273744557496952291929983321029685628037971896111009603021143047704119168159990039699762654452370252192354392087584238976222478764309730109371289623218984852346483450590698662608477741792882939788167088428788611318647702425481168000066194680967595102444341409117782923463728902346901196759479667228510713817001080801657241063046744401079113737954123686086805113440644019024305509529463653922613445258192413162790077360456756853762466424166323556516104516543833448654286080708472645677911409606599519694732629721985230474182825192365020917967921278570360995163143467899727382769189982393823688170639373120656398959877804973202998000816891985664915779162198359584275727854856441211797124203339585864446190369200940780234977394258300146530328523850367182482225275450394432314288304130668630439831414231228607665319264426158443407452185899171443576377432031936983471798164175975500594452371169829139637495879482718516936200727818493558733297918746945872599276931382812928008844859619502550445002197287397106322502125914482509281839462973119653565928670459096873814710141881414227231019710568331338261020651067315327248069223616838862513200652289073038733725897167874040254653274496152151219014222975495948221097082390063468711398797164973280423147332556332472132439818008129463213859296815136554936803061680406683585723211843128808818687567708545358255967006767852921849235924292672109966006790294384929017858528686745288078252905708328306468704824800535759423481968635186268158776972740044950928564017808684973674618916346296809325943427811769605125251549599415762955832101978646916620109236581466984833016094109443413229321079229100891583356390677036205945225067521030072772735991481515951200340305332012060191429782324649721226491553551675645180704741497218094188997168830684368936752235391384556354833277298827787658953792613946591381764556850390686495400237677805189638034817446504848822268492942365093018431826418379524932086923518335364254474015816690776750038051471526852968539967259297571548218508256145393451696728538600902501295934883676603262496845792367101443194575638614925044526166103400664713770177059827090394034411621913987200388609242639754246011314241431177191558463548824585421192493631009951537482171051494327273465360313347916241247583331413068281735785295785802952906717220025010645685706729165114878819848234445240107527779712750229654622718787659197348497753874079637150986760697406230575212506730609623403233185541670470367973547618652065275476467115772694244991533300901328231104934790171129379757142363838093591779647754388814710709493693838074470876416336729923742524120095198357757247850754991925846685790627685476715198730101567854824403493875831974484832551244331247039676513955816713011372036323037198442138588896154148204845688770044290742131363921351780025799888474579387039403737801942151035490017055309582918763013509473325631236273116125790541806894304776283728293419705889801944791948587919120354521617491207934331867242071815398655158915006862356730005890313691985459570246491122055564346741899271867649115862081355774245220377154379977293134941025029348975640487024859260499178851630042944004162732570349204989627454903241583005340188346967314614082189211198941047544012638368493984960038394132447121965519392956162430694153857954957282820729554131487240948768585214913612476200423501235351314576305931183616213727097881698196642219665450975184306542639046854942848562748170804591505547367498740674755992078597388246649785872288938192786271830786876298399890943501460667341247846610509395716432861588532779810252372041575453917480226620386207555976237477872533782752958964164529727601914023721566597899208966990439285716253506699610384468313916110550061358701224224332748995894449247381948512320664944600761927842014756956143478140603495081675661028835480170990265596098843089057808349606178355084139797065285091074895072827019743768174176472192968935963208956031124415280473861920374677822897895026512895812810865258931331056709002627264072659805729174727035673142259530822291787475789940555515433463133586511905520686984772748626512073226211668090647085803135227197494544593210119933938051917852342157423458004886554541941239429760100354146658048576805671359446604280908339213514222408285730586396193635600592281235570169907052720870436502049485293499282434668507192219211715696632884526887788886098660371048719618990275848863750314412786073869888310885919559113910214667836327764366211921010375907389166750073167190608202577830427902283774118726587069496428655645621910538784749548311861677865035978348255173537131536617771887211514486040289500921512726774220209479838065987348261604582391112927609871130810725978108785381318391233080218057816298650465555984746493759009252545835019510737027573479713830443676615730508309726243908220128140514420672691624314997175819007088574463015887334222046854361621754325844678562157997309910033805652271513295349652415150581777336034295897913720661973129123993533718904193133478597326750202129992323912827140043621710129483770753377825056470352657939782852137642411763559376365230332815192317282513575446577443099881535310403925765168708259806627987489574573052185990049888487395033886376942676062352441733912826310281617348121847276438989404592922720838315707959758235396858008918162320713664665142896435771474671216242322322277343280636175885897378107859654823023482694246516146800364974099239114426867111548388157126591188922618585050398515002276695091624703490921356104534645396546920616364887880782905321332022437671729518005801463299692522803726320814324861096325544533464518465968569317536548115650463656974612221019265523949760314398306321120149011577232805984081026700242276307269913855831853807240970079997947704601543728686749990089087498701639637161850210754444432418221139376788717569910687510382233981896178721602847777989336656223369889972639368520512697638105749205286404715445527646787292595545361050644385204931583193478485275233676256157096419641735303951049465452512334290522944228978522185659238527982362177859351365042505384315197196364931072576767027616471089656198939874443065010536808344712102905332374886893019127656635675957543055560597747617063830334584812210444484973216768318716896996804818138436011896102903972706741652901000496988774977555448754773857351764071733484766217946179395319877456048327818242625771207521849513250760241030668274777942890945088273118156237159345799233078704300126143492464518573643595718286504957244192468986497212024289815754535498636147919601858722465653624478723530059742563057381626048003314257802891694273303760154667779263015751909057016450475184633345914047509221056134398759450916094341375275534973993437969900948216712187324179875675135789547861302720056058941492866741474562533172327294673385326396083201952132697586724552418354240952856232874720474887599220379597816290968033766452959860781374873147618585371775154715786147030820529867031168180535538024424634015873654320422745210851847361228274892721527783273990022344488864137829818424057460531579805345350059366828224812798998241433125297686882829313526282672573987763445645807068877153988660264066794683892733633171021439960882088963166410524716029135558944743411355787179909472291601284257081660948611074126390020585420022524518892613964857534438733553704000292388873687375609824082139194300176148691200674330160726067605973383195948728365637262432308232672335932029438476428909853125127768891450135181941082192316319842786813522448432449476076431802159212449762567876895953119795962498474698229773211766080532948528032172262990676699916848975149435061899581245929628961005727756524192706406590022533042833449736847020887814352142788548226001855871049041865530147114198761508440361061821528782392608852590497598178138659460315523997657697060948376519813047617185995105136903969197745109622142554584719160813314198723295110209233506138290528176141934016136615077961755867465831239410233562229480584661187749417691969252674321648835230599237066824262865328749668986502539002892576574886270367663616668155255798284095538774669622972174755159375602436802383867721788174665402002076334053211984393385531381588474610438765756986911302033673550159311308109346569638869737466648247138640898234164873974374363214152711441816791054209223142054338565845225282909378820247206541891278332555932810506395544688823413352929079676705557650344780692220571045807928307149167872155051377301909401419961091842033513534149174838886859822622959892393861988555657881678738362627673568637987896447216115391178929498231909747734711660040550240987208523684624687553761246203444757218708525056685813868035693655727623911113777291068089857292829058589929632012821267774611206313968355982221805156940532123666705425522436613336366894393760881045960598760435050572321143782992362342696460473443940617152847823986586214882112499551978412161915506119036062095789851096920149252131680156683646538591268484092619847820320497738103924268963303717035651878147579096994554251531286604414334256757042692377463555882627732514225945831235966517122036290470852218421956878707551067424727261752561867808070805229703572827653726739732639392332717431067438864847242729506528767354081882093588944563048852496085884644516587953696320964224404121334718736805135789459377769056592668075941942992218350994002026215195200391737670881471941347142645847712442003425675651433948722793930241086901188533735872456596620508634663071896892490531590674736348696868155879161223052739400616179256180611726494369033111116564607622509438163198564175411826015449723453894614205706805187868065212953066626802280447907706573963512643087933831735190191100901084746252688758765243244962796279864731978565722742426829228784745195904286398004036958284881822446801850399878228712920925238402276468621435757714377080013193088992931334434708270579961619954427920441353146119021338985185548178353786846112543281782606616953740587821936447841620321722099350876774787408920672643203586475383650470452903251120232737674495475987369570782433429254196891529933449504760181347315945009175658283297420954929017524437355152221561642499111839870142615400484271361883984752626007563223772774627811642401273550210384380155916076649721385024577166579978496362308922896136870958571519189218492483666416896667311638437988802974434564069955651197881702726254819852275600796259257555594062408273720936366167018575666053456427143963751112425373987198948328055069156634555135987254214622910032778133237042045174579600360955813115421869904995211336864136820477952673465786102851814788514194100165116281165177261795738588964299072849466694079121456021466703991704362056515793451931516478899146330389238935991168092265303670509516204106615769598729736770462109016021313300428760836017262641056238514132941161336580721493010447524164067870393497609832565093830777052205237946097302893995022577117961841897631156904977702081905356962523813308152703471594423001159800472023244023300118732714357085098586471143267688446644112060561719429356841937657528342035211498875905671875376139306099443998997019606661921744129216462010863961158865969624334523303517259775096116512243242730890674567102596848395609269638483458477283066474859476769239034970566473623518942228785434047057168514280645279865806673443649163213446638251516127063603503482009292123166260808530807769220813652117652123736706852552354989643258383682388733559419402692206892829403770694430319135480066862394771066792045485998453317407953289098849656151356013927984559334337941981455641663412510793734078125905378358620158042970918307415650904309194250998379154278622419871833953514728061215414590459147159279585235386958331596072485886884724538178923102841604958267398201599886129555549488814025015339570402854245219029039656078880797220606125174930511685070867444749586629828682326351980404197515525657039069403760439903243491813678414152696249510590709934745481452447402964571406522156489100191334464835963343625115594048346439669628245201352247300038919227561600648887114803323150047489354770789636132342321490388563386522851715197591732533459118799009579893184378254946041479517958832494388466912767937743447229781596314533035357553323868272802494591073388863911794002122640329987307301788488343886577659104041290913502235587932072273278349646324770107857251565609694514621186415478281548732531148295475662055932660213872277824785015690294437678508311993686464573105530966220202212214110606169460315146455748422501789692309385515571613531496389663590020108570211811187424678539202644450924488365965038829394708230902985993329771965237232528494110162574363067468751559748261098480652112747322790093436024889537734503632599570772528378089880542455944628268071441472005699000854196593936917900490441194589926151825207762424871322698805232012950215752040184512508938347920241811969512108644820103862174520183665877406495895737024252718893896343414356190555178033031177862817266667646472559514661334030495062091304171637026510538578933724167509804437503305726670984659034251783664054383616422179739446364840041372824935794806670779560058362889808723290162520942293588817450975647344819580643679773892536519301050534758990601137917385299925887616878594093514967692244077102502987835717819814047853698333728185684282149826593182962534167268487653853092465402433691866316567618073391212197386419348359188999213313230184839459509351528501836470024117126238076595334187229998849482565102625753215124566871012463862261990675101705606596744974263238649310699827057418000984055911142227035394980876504089537058842199290527492857253756058029606717677611087137762468986693910852815280157274274348054792932130821960043276401384012427825149635578120625727656868781803976227372029239413468918678302890527419661242040122244276205083856162627583479629593087356859515091029643199405740954247656353261645275461072361290163196399967592155110617549166470496478394330389974414611949779584660546325833693390686086015667243733804819093262632523716704656908518300566382254599805210452894454577403417275019925598787400841268054501600465896258519117668908454324711837512734947455079146354891368843534868356584310917341641434098638744964335538939323672339456617231726948443526449168274753548884279143242038537765037367179548871100930140963916037274395252247271320621114005418500204080195927808347748874492838286966876860228640696138670165878380242808948461860978794479296281620342919746918911434050312961926269996087419463818976298684694795680565679885334442417987192849980528685070058854640391604607051965869394160476973215421331853434047072617191187738560369990604452693318317650107981664013256834352690290398979345495150503018233604689543789500122202242918218672738762574179555551574044960722935948416943417182008135415050401209234492803220764894196874731766189351248588782038388912162896544850046816561448332388356510999315241417936051234896970606217808089051725263930175248918573223399463237605463908554574823652926754970442642246299646832009609015849034538111088307913657051315920794651009335364249620712503760089307097440265477115387049056500275813345029619316521502610551241175475462021524179597025030999298428752785394866577897162483356923768494068862197703639519999105581732618052448682031912441611422656218871496771138882577837885695874016272173286865864219319551947972248715561044536465410769947970879621903223371770190132997418738475049833269547481922594373072670620153816031790027882486307256933122561310035152471784532336709293114683211573163396725841684645900916854435760373464492902109996240648687417590948182347041447940991053330747572778590847317818784386349862983712495160246615220803701271066345140196565629176383936235421344222865127922970937496449731474924289107536898103645771182651894242340609714654588135136753731687319229407815185965640414812033892347081831969255492897580695662730574679781338128811467544976532043655629169271753673697380263298621419072559772991606485990712561676218528604488807782500438644527725990952072563068088399264029968239195844278299100833945655042691584077994129370863575313371228336565823515462667240884487269700643105221330937965371783351023789103748337292113841487622595399353504871703565560295522666208368124226929232748184411868223212203396588538785252955385679924821920797832432062040001245318444925369030281082476400391037500729052476547224197286652845414548768142294970343945380230325214507767079233648401651350139119787342161825265075123830556991964133917863554594619239377452891345267623059708658414343098491519665464017035083302915438565904145754803775434947103643301453951623724257215253557658473409642367008033506261149048530466676555575464117841013421889208036166451962462668748853734004493678507077438175290858103102700957425892183587230529254766412777498196848196622786800144930349564613319097273753154611724712811699167704850364008313151649880996681869494782400841986798089185024553838893703132790096137972532303585067632141076747456853219828052842207520037929593545990238095918556743031860847757521027834203840659338186213041200118463886638964571884024873254652643162421849539910055689348277255692214653500186139232341297045060695650506653178028258658186216411666058261523327671395630385951758497556573554494174199991904993277197949494539840007904140734954058460508885729481991945550457086856595214982316049497561859669740008376872442682690131373040430003514071556902869005888702247956798823884612972828342493311578381324513987083337914470728159197003160474122223026612458673636599012959225958348192209054725835851318358356009339921243603047842126649763756790037013257961493807677547859440877114476591088156200898999372147185995704803668142833469770248072804398770398837036544256232833485767607174735116117229111778646718838914983914428457846862699830389691065972902087425633399600970902697098183768161524209043502960564353293078240563445069087486285630825948620417151787239851189281533007999212744923543546270387519637688535417034417635852119430682339923754905439169584135333081926362214774997538878244640390610478615716477715650637892875239860063867539668256533044176272460471219385640371227735205473323192763045221812524894943271343766688444824255260495530625243853030897944285837763201390016871545192799993247359629240304614890487675014337210090713540977402252652806568447303171780444523546339425081223386254020945194434473532285398511238510405739909866271301910445558672711786822256873459365498658879520979691713582858167620998219733964175139000520401303988791140215560298990220135828232216029418739398722552067284624400504441605534277953665922015693538068868336273318612063153136847085042564638926309826220152896180015961687695326752814985622588772685433841906165016055128954270408623031140586810919261840346481456018093970041114118960018991985703352302924204381148051979478019744778968170611222797662854655330594179597460030940633153314198294386048559909089124416677508903982276781978672561758819639647305848397794696251511759908401510296469413563265155110181410901155663737539785820300260140165435434026864805116481593402404469399174419178831001603686285824725200802616557212139152906954339443978884703986394465985646496784179786563061915426692943790817271520887254150274155364047178839748556302419897342303214298624544791288955449426473307180101709340788515730815076296141978628489108709380130963510366588529465094591682077144640007438990484168104712152613211114289558134131728369293463184564729389005575619450245464294625942638715969846225509119733615656611545447295084246841207849451788091513371278907163519011012952235524825500839364497757076332410715760355359567236973027075647596659127998977943403236566644931515249191506036359649441493879807238937604421537928050141075014562593723996281183035996027145126896740503533801218653621152612321353568171296545654745113735417003660355215484118503725794161911758637284498941259896394513794692225319988359369169648301569169936865074772925572393284081945408298911358215031482674169151597928233719218470740835710358713114738792307824137535052129758586898369961128798354237685355469119471396664379500877072711154218293268091750973408425137676441945514033393899924376920938935276803932946148115223313169160080833439338435747653368301917577491123693806501743361184458598097009739959582042794709759618759423048845366833836889697673111803400670045162023440487516836959548957083502191542930714623893278769639400902638412795442230374333121514840432836830352419419693095176347387591662682648453841456284929632848163317182764542444551062007968165195741661431454102194932286382067968978421052234541451499618138727711650860572406745494657706875611739757335717816863831139375487163886240272276050845421222857567026122879352993752521831039645470875782065443949798167826929451687126112147457060949798021836713522766251078737977733641790205839824690873863799440690258964035584014835052939138087944902875119436461898262648524112408480744482152652764202784337404173137289793122616945213655836469828692262624915421840037663699034017583138539211450940952215586383156291707660576283960633258455467431787050413997504779731462418604127901390483722928636299470459338120240415556180767681287061692433541715541002495954436734691652274075597001780929497724869679007175382854308060972960520439039215632207665127803820334054108249319058258575390844621092925046747869410995550692153864867497146545317547029955535157004860921395989722235165837479911963258302287259928867684434065963724332935203428973950296135060523487060727019478240530915318561372151439884608003633229551816049456615246452375030261515084849286020158937628772866304421063449967034222904895553911656855279928798849297437302134807634648714757125022997752483628281783960542678868577920617568197243318324880285138271419593411789396617227197816846755529299667605433650448580771274811250712082676011580849620380124867440632972360567059348583049803583224547632705491637720605260678750399679801638284888866216317453800446023783479999492572071454519819285815602216850517694282532400004644111785781115470534694352705831421701617697839416779373420991198759114535316902608714970096173171833378323979849650901451025204989686406065319521414656256618644124628010638382280577017153662376036902290455789789479708859630258620064528535566766921923858740582307577233938862170333795994663694543412726101432351054111030943762932955079965569828628299262885133289991714066587800535673155312918734871373218248934632336722707908367221286961844357322547690760468978297647775785833730666232795236241493795578925226028199984227562840465515791172426928200531498830360291358750213506495569442632490865364038436205738023006417934138081483520520051492831065813781074859755806553730542852282422499240753354010384892114422034545830085321172348397300326231671464774483529730562808724988633484757845309231342038403105922557375949059251622362519000969450353648223031822030070753406166974793172227793308758659987479960272330330828991872572220199807650987689872660459851965298647946639070790463596129014607563500684517755441168274197860794676057985134723250954425002172859873330219733380836076213933401237243535203982935221876134545376131453868056130437157283745121679411516828188029073340960524005563965636109242089389837773939554845885827103631927040071953527252266422613861247025697387127376507261753804609896200741180844521726606822798717058193915352768389747477861274298809016335551314097877683926920564679913196336886782998452564203301305366475194526911404474942420028948118324182551655527292232262966189515515341506821090455134694290784616091541065372036277518993241745480451010557063713632490549877244966276692437783890095114714795822149758243060194313116611743809549350926767455660745723732128057685433723287382058892633428987621084945412109806300809609690288664795050621704266359780062903104873051921459139406517187440710298970936224991753817273166484142703581999689358958109195898875059750245248726349070001852835629501496556582117020275915732071673088574310345544284979919670771168157798697326836737134560274115531638849738370037196781876195781043535939579498645224798784440508719935348453411051500847063769778027837786689920121040638894473029109463086143929295527749824931105201082903323069134915240337367993765758463306199904565049809666833121195064453384930988508133318770216884936809850562725666379406718402414238615302215351805715555997923026100555128214719812234738944902278570490549287927561333756234148249853838530620880274039934973273259023663987674704621125894416173431302710632330870661853176675355274811151835615523273625924401307432157943578918582475034558374839308887720626789328473795960255226543915128122589538264404131067758053877342909879892892969896031081782026571502959217305135604412704421874999511729104245160901982527300903335385794606592397918867703569054181533158340908093358908741037955439602168353790266197781108657278882991174277025951058700435590751940930159025940403293058204735607145422531594438631026489832011484301287859055576405836894795938223266228997300142859435993921156296768547580175478840708925945593002145374318671705552261744181824299885202605557170858436060215796201622620475313239260764717364517288034553158368085352898749077409713841185579523012707916944236524994392579395994104437631401906977958028009337031528784032729794633395431420407499313829009273217156206113459747940718815304545179762565857331320171355980728777404580295866621567985402034040634715864834379549288276205476194647241322913943888403665538193001914561805323624971549351562713988732488531540360701774284690801678526383199099725706065647177159369470215358540843026981785865264843547924243788806044259147580003694196544005983313830250468087741248270673367533757498317227153461349994160058602229781840852627696409281495502349836864835357315957038920624834019527734049971675749291609772561181810697163894900770169132914815320404311604661543314391550191723772725474612175654221758159402820730150524100422271225169941002174849816105926217070304170557942553545241472500779582732158198055261992557938139098970181394149339130979923505825237005202751229272493896264471398802345231530177322786837888120478423429937866493465675608034664622977842373568759946752162386377873775767929358146557425692287170787599381567915671554772450389831267061358496493147451591037480683138622330468153441425872441104701846299297558185944306104840811977501471981601075932194875603369533736205907590464164638941381161446257668001354786320881431913414138416100366114988597520701073412068866488639755778041750260435897331922619411915316197220663117873549107437834310453687437451657789341288140308913733716697543809332577557465390515444148233388241649160489815252724812081293177854301475778205217216262198335050212735472444039427802372182785229916418699086701721645636407733766069948276614883468640264655017213038122620395521332694349852074715864595338034566980828052984774391337462542648008189762110655648189769762561749200136892154213725398501137882102348300499921001576452639359234422503845152879938316580716678578431547947724865911864436271028015859007824067314717989604122763071066946052545656242961730434525842291982432953466435661427668647595740746316939027284052594398671527343189953909946715884773414388011288471593867954439883334708520597489049580213144428965916014188160703569388021261568890206421835608070314817258381570096454137913481977127047885243385153894581347053889874645990519939855769689575232594447641494992044612473763464616856152042917897481423539962712084780288275849338237249448851225227996083680734459862214963861966222778223928416081513702905565438492127813709253560544542194573721848920139001144096851948882814612422844090580878886974565639369773351392714673058110294574517066210158171921426200144512344752454441509009417643462853533478693986048390482115938463371393839998303103524893077372256822094737579192082770373073452067739874375591959347890626732765693520450629863735149732289549076979931598239008855215153432321155240088356788297447056056594825984245995572984158647760066868953132207312146464798959832199546763118593714934923472428931731558748324918056650934880474017763956972734003455461985883875801352252129192289149792428388981948071991635179661112949425332342618585813207186825986932128257969152235682305286890691069994378296626333475503914492850922064532635013189490208540797525593842520323451822834027413213543018589156978461805157898579242716037027442862768149371706838128581179951867277218192706621250040230956843657617016981548619967776395666935978334908496760460474588470355583779324414251622378705969433396921766456005337269786734819598712555355733515098741464751994914690136972587337687939971539389426189138004377932799356692164061422407305472062577939347434466229334112265446752976693959380414893339537575398774870635609325665757719308065462217829969091516348387483577605929496016541447730727973944562956806476179874022754841008730590372258989948934431822058912229904803215624432159489532917776012943786927254542807170650406352624688085818372829137800577702019596233929896976777576717933912096674027591620267164875840253588932717867280040754297992794423341679055918447501926331591268956002990895572767478162412667735193196433022741434905749794448363948397139994435182233547386398257322878478159663380256569081911606161161858926492251116115467729496051397386841932603690914435843338381049753360127612314214334841004978339237656774266190078072756895157207291619718160896469527602461692193803725883855865779512018943037423287239390789720216778408520523695709004841899011604336475425139972690463279428699691327410938238479512708421749733313766339045849687503537431538557301765249045015959950180612429474868919219289140674433925010656287263783620390603468096615172094470851523796491619403373339685251559010502734945736781474546883343268182499924151119939936536739914078883318094180289414432610160154733554426111599240043128616517421536348310968866025191112247933901684678151901552802994340731080565016541865656225955424762176346335444782408643747513290612018550764547866978991537588635138133115691651518219705806262071613425430028694075626720168724900561115135815640189290234874490347532416091171546594925834332330430519018409013051334384270121487062610704223957660566585578555386110509783274581341246772987942204321700417357203699314574038681811939430630671819499452510180680806866422650808467732022010791475152676994749893648537451526430407058519785175406723309043696815645858723669589303998952881326240206114270677754069118563695540692638790546540457800311090199719962081758506470674318094650530085347103552599350007183918567153613315400345890850921072277424768215112726367096729131648620039832822878481965702190384829985192043075062654511163858923853350408901541483990702509916830883546128090770051653258263674320149480626479554298632423873729759240299688612537577989872265465901130614193647655538745209522003459021064318130479579571356234748280384300394542446089575986944571918849633162298885041734086119493609804469035345246160873005092867117697002738248337759910729153769095136708432372881971640776723793913782683332878763202116120770624350775195083070877590266034005182669949884370805517497155895247025995991636601547866209328052390528340297800180695434478781429717855072756017230453996532296675374072995501309783578800536241739007313952063855073751287439043078451722263225793504729436597765725690924460739820178294255334226228757629229442593539592207035239849089635055568783628898498987199774941965281840795778949101850208483923059990418295957359179113145448333814716021455925624807471025065984643693472544087523111787555745692884214625502363960360464785382962717281681148575118357026003238940869897256785894538720852364835797557503593217878465207924076202586034344679535176409894113663678765264671477011884379044786075479288839781927398467423190474162621288089531432220602999328735363154741689366374264879558201411625596747726389510392902162239029993877302146030753748091136240829088921121964915535770790104800742296856624543294347611556422393309284230441656520631146568783214088720132040279356252518564519105226563464797204794133338498699455011649048426935071628101723633792647033607220969667606262459544332470818642597197129632382251158541853900077801992726287381221115379176046438666083084936417494676076854821123578245147047068109097005192125733145057525415244588064504976222818946606382871912921266230310408579766692142573857836939118197044055443373746329935213327786961757357250428199298337285850725010678040369526061878358613349799509662022194330688264278389180771783218499544497657306260751875404216415104623215839851892355236605857848070994130911302507303536841076693069843275673730372893793271266606285463585128882971507930525589301702171764024891391014882361186816247531981386115531461593979363914046830656808988640159819625453299259792376711687614051654741211435839512893491844883595253570094798073270580453192863445516368070260467864286292451223227793613040759040862222822579226246395003591042621001377620638490517845369065868719256579203170610283273340566778785763356633142008511511795859930468634137505487753415811857028885100255622475915603594346691193276085624639637944092738249250275353258890833665435457214076810002993687355823196000169148695348219981275924801211639891703223213904512292791457196464474871054374818779556906148299292285410178058553657283154999165515527092190339927863203329218873036799799027401456172691294575872859167116843568095200075006601653171023829265509650318270643478982369437950714034906003232195842413702942433507648646546857902968369699203634991526110602158760117478676092470359411814993848078502118572773149233807570407214929558934333021470892006837784479272361049052914475711389053072562641536888764528588775392009238597838861077728203256838545048157088561793715301869672750685801606838651655021517945656190510281467124831079970662352375058868858453166847267883863128538765907971015193690085521449027998339975722571882455277098930540833499392847981271350245493825702553926409449877176795068360199506853130519294686447333816120020572076678865593748786840357247219865598503404721866774985267015852633047813567513284197188076909862272824119547831027453630542060415653156099716921217242307991211758791176027039709649390751432038640401238927973738912883212656968186970233092744172490175049656333485649391168977029301238462624847835754449820588940985764841496994180760651029104128651064119523529122026932179702754738444806165525083867645106020002172173931581678973415896277128919868686239126604277188423591395100046530138225197871108651421687312423210465766699231194509403024073938060553814681879382213947222378632678152654089698210620923398318306366243006314802514816492162305062068400812305196900374964123745163141347906553414232717210661792642152460897807712557388501645796212122675817507552324429350200059527881898346202467847579153554297801817100879896788782327462517909352423238209405091781612930517150916387683342658643657741549563924054359689055079507276552067690479219452815628269429816398157951480786334999206600731973613618630606130836126831199770208884814113716496934431841288591153581900850218307094660244231741139154399492166324613655630784689045638503915174231207572193862768024565622904798975841024516606131293733026316608769448673328070378286689017517223868184189351636444346395450201554267738360326118416439034604018786537286071103788409044296215104896020931571124485282632824891220612113648687103147621710901032055689765530843336651214825434679398031598539086033409585563045128382929231041012477260489943423857175243823619389032989961088296781584115176245169375853392771653669221150504871967855730711732911825498427482287489159964376365941981439876524905451799093101161824290185498561797707037637847750330725479884777753160742263474244081886419194984472411634144007742628137852476469121456670798342155498388940270969202977950396780648233728324817469373618924549991196533196855556302684178809528770361966177651243798264105359359349933524386833538148144467681505696122619203060853076891519304171247106755282424885057005010517723131405220102981967201784124142118365878221771449083662553513430662813536408378778022534655735307506308522603016121725552228729622320601830139799734424308287345844781205579249706152986428627208294397340912699621894094913415273929913426546569401461424207379174669720055207975792930263030934427087830165181228324530374059006852801022569276465594538210541329773063519701773262300937809866989182721556193888109949326592062844552622620491960613464025807014073092581986701293696337024142625137137068481599533850478153313865374899266735866002260329213995890257458104277224552620988918865548067006283147202498697967198214443915952260624668655676790180500822601062059573640326953923166652138040532642684485954029498779651738944130507409691363424126666073249971353598479483300060146286830217276074514140679488242401024726312261109860098802173614323487271476490986045330739519103950116638804427922665048583180409188189251915262095106540993993012700609795771891814970886158868153276184317831829818421327569118508618684622802853744631452771047091654702380206152039510109180181970269119835090002837121889535441870960103160397398162577513251435648571251258250607086195031458653729992544055999151914420666790005231991355160981637846846011764063640334098688099375729661773300627717648769681068348248148503162040892524017199441759443625109914677288539374594954527636224571398764586201397334802427610163773531636673363267826459014107534029093709488072923057915842461184560296984108771951678017953987015091284807642213486270499391754591636027611026037411468417837793703929531017880065077360597440360604193582994803159254350127401843411075516990959849069946598821083427332506712488209425246637156774139051174030641292135899814048938100240960643793607703327432758818271486611733090708924504813712306876836416009546250837416506960676169805972976781770421388422542640184693325872701860737268185663693354782031969215882548218393299894172901669603449158091100143047098287096513982198446927641334551415933070130949946761303228861978222485483508729115433864059025682390013064172685975740856779693210719166501271147698233357039327402853759212126568075967958148836817675482111554923312566782302079230621560416649873189312436435705911505535336940212643421459569800295424278566900021958278852629334303997814149840474613209120915803101459659023946672787984964254968090549102294223605544299077708698793154762388611188028743796405451541291277687838683443797530609096454529738517869127770269075912929595405171611561282796274754084803491528309249035500526541729011775263209305795044020000181399703472968515162756204799529326031924250842476789047982455492818045730317002731955883900224432491912635422850678863447468280115816154758897219032011319848766897909713562582222966991577559101700784945111376272502154848020147617324658386475659463672856034329961711265563137130448907119316959822705857272675190226506728133515747123930476553719862474383770453655433246617262132683485391475297846866484169525461743592848862410227333324563180468654381713603320766144184038599339152656190259168591905769110396750459004825670537430116995005524617309992491013148668126810526118036205627113493363045981505369670504109274265399911804235721853358265304826978254452435940427350659300332654068667638153032179498203791768015953541164200457985126546871598875066371506439412250242234517883362211540855058619091910920545074602652788643889466620902066626362900040292456710929498586702873106112489704923485819558872920993060192000617093175720703074040574261978299902665030835486225064587195597675277258263189641237381166435376951837844367412499251184125519676431194322795138534526388561935882324688957732137107460632426269433615729897768494342687027497147967214617311563768981768065186025607251443560651638662871284795069598495623365150358368948147890400583551138187357978187563517942430101973981255455642126352102986311393375192043444710341935151250333146829428503551202197973278354943866946848408831051045039219267840384702975584940452762191443100862584139725864112785281302826846673147622693140610559098397540388247624297274786667600011483826304694822939785094070884052811866104089344358418859063438036666786251498260366080774571463687810551631819370085348284006616775473715574014749834053019410908332929467954982131245513494171363230884024983688187015948963227529999109220246022271903393608506150248214248253794951395667796302447187891210879312469979771469506503803666155122401685618624653724637764187775489218369488840240282708244068230224981499690696158985887356300808500442130001119900661195258865931216981266726529780619501064155033861275130406880314963684786568307062547732300327972400711196601438382391016868758038466790037024980160487164359744110073323716191650896998480335130945713673223461394825809731085169467102178493317287869664762982138526854104999701944969072736980216865995152532151928083404590928610505191587260833817910561963030696324691249942108752066789049637336950150279924587902835940954801377251359462436890171917193965497579115452203511911072392806518608669980084054885640760530452571406284863509841129321272417898041474408864158931939283241993879117208540687609029653677968266125638306727417176345689203154875376804192714382369968922414992891696781894745198036617652005856157481607149293060533333736822396981097149591141522382264399738335275834356431293807781867623368578787203837400649119942918343996313954734009609170389700819123936266485541927759506160169275906058490120422254070601752654642003112678576460890704218922614719624772418424329905558512345077811269100928036030165582467229026337780076303999223168464931862463287841583175652049225957747413156267712886022140859278535537337471953589903987579336102194906780894369912982198261645474805859604149516770314339998938603674837174287208025203361547019104863497646601516456419628567439868007698248871474071607927338499332223312990915847119063499880848336250659589674015593370348012231184189644160913889900894404689376768259302262906781876218148138306602934963948739986350335096199485186554586471569700982937458720941188539171134524678641013931807451030101040184754215473012858541549641176454357130560881666522399311877237458128859836975702878167004978767318065659054589632674662995366243397475525830561983887897632563200984893721909601890524159545709726391789240612720114944055140957805642418378917071865778426157669447970851665469093000555364873185846045330472685870304585562376408250604869543693116552823585095668590687898130916421629069344909285550370036150972148779082694072877725926418527215878617586450237290162230590161241902385230475143649819721626803691320330834178295329996229156874642454855683337402802553865506483784778102914129611643078558869048374933838153506267238371321775299633479590739369591278653677856982808867994656587351999373737528069999022816655542725842674762614263438811874621762341975777768228960847148395216682681285759059152944795468473169730795484504968717620597831942872550452669992458128208093622128595583639151278278334359068452471770573240391294558284340016722747112573238738176540457296698930944090565835895806834392432984259143781908168481008797463057825266889659657493397746961129240517470371070981827797329576260598557997684467769526488879202019571386570461954809948572589955364055309529962858160544520583730431478062109935906480481837539327384892095569051004837626519674504906103855628053879116185349388927206340554991872652441436480508357985119639268503725402870877353266291544859661254107419904919964664914747177130433351417415447514415298794338599081043787486524449095301079599816105399942218659712477857442095877399247749028272896293963853544269076424994363264693004149726700679366449293847918427635826991468284754065285786769951528037519969530968655538754384304976396599574849478180190986268102893396822913909440101406976698371495452567357129392392431592869690681538739344776624754275902520016229532201651678073108083049589981782039442760667523766409989684039860057654086576653152907946698121665536416593692743226919492430297431388872864316099217829038394493219551315548736235553148521169293286127966165121884621578739660588814373579701111908178957995179091570016496903717050239405582636822107633099580757596448125910072773069784762817817638522138694396347488909713597812671684977660592702898751874789926768980779349640347834524426254934010885143474945719098180244637765625115885066720912695047145200539936146109155636421933274903805880041916194077520406342347747755655876376777029197789464438258410660355375996371481099465944087528968680197867714804502062491286709939937211582615823052564447262483715004407176439245055343540256445280102682165755542000006263995513073810365732767228142817371136422066399747643935493143370002748969784073432380169360125257702315818840703753312897676457353383464618644172068433003711614966866452492355803601440201602068534107059673391942462753786660027587130549691595457812250920232300700636155440648792239504038486588731234952095560189678518283811929836145879421491363119954490360064683119734355454662397314605666329825584100691144724512541213346664225483678302161158000303794610466097177523088042813784113327684360083581832634386846790475794203498575980605804981283820275241739284531096682711577024257600712916705711850964281262402457441385225198589678438272780298551473048620465214110025361869164848895877302540972331412972910105217702980387849842045896962762425685871340733717223798564099930637101915208722382992709896069203522778124908277776856792996351570229921812251691996226931181584724558242698291317826130515253012731270519576260803353432400475871108702510453838577851358660506296700824495903264358226486271174848234983374863787293492388657334731410528189747357543138692503480334280651145391291855115257358281066776526081630718092332761973239653273100142989077066521636394889555589652227982983189273447681917679763508676039072269355362817452665590201487110113361542056305390033814868862491796936588837381503859923990868319603285937735309804458420285747344799145985911789571229497220229233374339547374790267749278799929099781620156214967766914067898512926678232548570158884166642890160077582307863969450076601672613204145611499220133355354570657182079154785501554828860420530142047468584663840207921176097864380232015173553191056793192703657781245485545711926599508400192136140149755886737127329704883968397726577490823670604021378454960217922882283927477531882807692849845841858109182600100970489095022715964395108356209717442258711256600520788688746654193618616678322135856457429666442263995153972349337041919042165760652848846541817857434871827126207448372885490578453554741433573842252775783505485477281452858456992726738923661048358589537747836286473330918451982422205070353612962219037569089624888223078835672805534318998774023666358429056769830743479692021575213576897303172505209701417370080691476698393929713172117606168256650804022703508994758994533245274686529348918094811593486023205767187782761177150893650148902025521687651036799350552733164285174425700812742844074788892630674804909556014379698664160641328784165436459151271522666072700939170781213685154032394653521088823270293561025479026951111391031979065171179890981471870533686310258324342777962179842451078255148594816354358380618775135477615508625115245253160073077555517696846880052042349000333847882461221887806464729532370830344047884620057239242874580263074976305880828651780331989282367306940800416317916240897702395169391873476797319194466934517306427433695913909894442478638214666797191210573390766343004729461562497238195539059154772499170899832231842022322493609982156651305523343019703634430548150730486096145266661005154545291437936050096463668015450712706018129884967164772473413316403722127642606231022893607037837211982627169138051769437432652929064323246568893397948572373400861361625847384141912855440066150646480011131675488595326366278334837207388153269798282410669950230730516442140372315595134026191964287213179519203412021442671539174567801967373099142482977383520185941159176304954681378902922782689309981286588076734527763583070097812452476782735521392508233958909556678926627240305256616561858797347354595846148673619401413196991422485540922212456734987677354373449789455297862733273716970000640308369463378066003992498769597964462471042548512653945650699545131003004757756403951424001074871119687006246971544580753483883984774360343772423396010774814459453738670958291357884342486858406097494623187836641701141442166194267010727338777607560278159479896566557924642898634736220527194741469751628191075923072645243122370985637534197254729201796823601407584929158481879012911897699679600180287369721587999369890283341993465646962292624784216066678884127718778924360495206689150037635036679320503337794376424140576759046225727792826617292046384745960047791677813572514765096527528990936688110455801672451669430773738867050487201605972363259048189539791971043578672190112615056984615167029001100265994474581034986927907841957499637275218896908101169882527624892493529428826895346019120799893431785298308081162108269612299739399060268656829997431249525514744917579024386576704029860037577311765786431398845855968110807156469715898672572079309694507376997523524129608010489004115695319375467620029632010222265976647674412069065769311571408024530179840803290447800287707953035643082792419884903319956193201059110531564703810624715541317210799626348618248601507477780548597992006027611337713902423822090698590813464139051517437551606008703939918320389214332471443205258838505661808364645481075376998877580411674916443085711688833424207281251207375509088177456803038371681723906065695907313507600561175640361678843178972686920902746870054833483518028927128757043880350827931198535460219097891070564884091618834634118050340475603977366122304428461702627976568362161562528293441812393976844996314335455675596748312295951287603846684962086415186242361130810511584315758505416163183256671313050197022604837260293725082190203553793082598765023223634762731003325131754914250313961925652071468833631314088355553100024200620929895650454532800950248788376276365125331607351271227787322275603506678765312268590117663903581544164480283915980549828765559872440241424132132615832267678618626466077552692473853764450250554050348145573494877519584038589339041645970602856413113762104774859724925275992539829926010611998539235083911869447389528315561882412830966252330364268319863633454992288025434274245122481769623697590397622161084451219884596935089274377342106606642332776902985254565598147132227904111457385977764100069727493365304446166960055053609786428233454424942156689175679205810476770606615460452512938091980738714545589419838170623454529165307668519621942960392014711605375347934331364383390243370861157890596210166745420550687346003881544001291767575783345331196814004278305168973985300852378419871489292914046273040993004931595503147350669807306433453776539675986337030734395547192525195046051980463145581136256342269555920703332012451010971206821611549130512399919402867958082909661222128392201057375667877550010713836318425984497812621028696970001684388236044393805214716792820374688533229234039562456012884802569000356700064669281638041613385073211704564406437963157111699547483384491091876258057118814385685485901199598946354132840223776098856896700647385199560905036383557391796212297864512172302845590327392582254176781133407350899926127339169815929533778579807831287862175213260508356753776154929707058898751488580278345191625472561501254847836837528624572773688368797158385149138420532185276120010161270215415316228997114672710564328759398781337993387490929086589833063552323357392918827472398916297234596655118664173469893544898764013958062920769807115411603826088997005002648241732317083088914704862891906780267071909917248600262651017403066244449151742429681225222729750182322481837333853090126642234791258924759288538243084160468354158578292288515247842158326815873477382571174178056136901583349797574341575312194599137408253702978356724850968057628368431056536912526109832113456237287380575100670172467774277557198165115026140693151788070147313275306456913692764121569026282797371016971782584290402748188627107163798549208437720664246801646642420143585898899248714619269224751950684908842239322027160365671310513004307508422401667790543889314389186684665241133622745806342694723655595127382009887007499349462762193550553819736515488322389993923799086212964142254722468535809725100715291485246914346188487027913252863625259558268311425823644328523019650981346490555967383280493388377338945758234928317959537927890588096226798366298013153259401555078592811447312628764434182844875779517450804156173305436254124469267350355930126746218936253332647172328211098098349736438934992623817498544668042770614606408141481179753443866794767385450743222786590199806175129638883004195364118858248973178956207389926248288895899347926931214497404540653087962454945254777129082661820722763450992088980285511989315215888475005569834549574510847827785459126930358369160763028629994325199671543372054675030405521079401878112544815825563866020776343637731646667119288703968827199950488306761872365370095868171243967400445349349846363044909735512970784647143966926030254807876749635558032741980253996927164592838017236732651251468342606954633748742914162814196352206994538193330533485842600025158128565871172304450623335627657362208012078187450668858812461359614718159973268937662519594944286064039738514781884878579069835595364764568720501798427384687938192481418546950709843137412229334462242924693446909960608063561321767427587044045568315691391237830839525839370633771379442382748494333017774663656440286848202673778404837845290158313702022289986408150554300371469803873692479532532482458060293187682560012086982585148179656320342601603584582827379751988712920501564460287569669597660433544647109414303433985134174888264898482492958738556912148855949151522257943640131576743260329037134797465734645936162246614116079521279526709022604631657095892868529514799943786189279958978503451973680395950241328879845752506476214863921056793664792487629232096663878863344367628564929510282408391428108803557057727440156778312496792151761277280678061002016703971883960394574335719926794455613846210890799838894676182868116952807363857817983837540261080862270003814861126951993424361269115835280455216798261211794499860250413062063710771759986224649203071192222803088897172331642691591974820996854890392313491878245426618679645260492252284384696569125338449131653624040966639800792307364291323655906918752338073509925646366066354068134906796628597810745757811148664493907664269119285961890318287973714629490159996897320282349128535491584734851850599898486586217735728651917633633963415814413268987768464296241089886961940988153060562870218153615259978790120819346389953371725481465265341691673650433840637683182977089514795774739324469527654265560108132055444518500027636686650002574623484845696880211949205357340574680286198888519044108397310610456648286995486244238562864101739205555215347005433145549722639251408964900717668308212318512859269652115568322963849936722668334903006352081404079022961052822010316212320830831889377785770708816062184321534275153979971152991695584887959723519626375318864579119183160828318222544489065128853006261842296092549865414166795331410016679874178606316089739723561519717659908515258223832434675953816590653405801403752192407076512030084508657704550285389768358879198708824726111646028404569058414214467224106793791182162659756418540769802469162602734790253564102843117409733464062642417244320802173002462731465565602912622827107368315449203553641223515506287230054869325232154105028895611977437827511050953915099560195360365458746181473338570465378594591279110213853444883186329302741266603979316410239765891009681314990945417637674528593663660228879785718967091736020948668551699654855219166318496021903588707116646739197202599388754319837831368888889110777672188955416234943234306673271631368163908911360096051314274938636055852359392777542475619139698364596632658152052583227550788660481534634986353695198433587245194413171450748304155484543705684453231200920177199068699579013415057513451544102750582367068807223260460983337194654193271533053110917981687519787806616676625155268346806222495480429504226869168585478896270967062355690107621862065317084027009476683481534452273795357638555274904557345598440157251669780870373606612949306778761077024975483641834551688884370872237653647541973843483440813568820076504545252962740595654743951807160243554267492108501907760684673812484369916407139262223550115616894854391753548920700660178234268325990886611034422177519115889419903791354314178253129061098230366788277353785456308912903273111683597740389953592596541447365133064633218057158868725953945158864945763064332810383590285435181362816792319176272562436996220736085142348000882224391685866643140276824815507107916741118461779437298135983563733811196284736246615729153160687458192344189652074248030098833631709755995594671333830473335647960989297505442785260978264289596291872653451340231463496583643678754057719780171300366404582398603729775439697214451308362952672288905222955610071910494997801255090860393921984285827471427062243414127040895049385097061736297835642388965592895796493742392099955780395752427748467323987619795377929708315122032914728831925167934720440766851926151513541886515187978998565628961816987405269269689532443745438990236302630251240467488775263945888403821227610115964123663906616265248595204515470848424997322676488278744536172537283761550977974949952045363896462327577182061506548088839172802797981494808093624204629356410614947459634029290265826087850810577964239235092183844552113070939138922042708153009729976443864649239845031188821776003331716304703858179039867889321991878606335280893058641947788456367100969702745674158055811301361792563854255586497829524056278839957348401662433744616572670352771218447173454224647729083597785744018981847048583001499370345109476970252636065372664653333474926828898333132846497556583280462352804352362190123398360507559418794156702123726917108217257769052148458616276730822360235758441514936783544880101332448506567458218287067618556284104936511821788360187764860645432763161693109858063064649912477888436032352935105300212649045827132455644073257222738724448758053267408382360150337381253311233744232087871899531711591139759097868480556027984801732848540118447940720247251759427397767123497661945816727716222827846739915532419119179307500090782081668181541715389183813661796819618118436093805396371883644106060643669494644794272913617534932561688227269274017096754749559600944821930620514436059623627560357260620361822895949964781330060718343020924586018999316289301639535449615473770461186665628540950409081248525108854655475956496650113335660953668518105803178343748634698811880717379444816089903572221483273507842782617823814253825286174950459985302128003110873195024727158395987542161419788040657944692474344485160526960021198521867845392116823114668593862576004475829997968545414302991571723497266126398451963901265190902438517758588290658345448629514839814953616174013404804016816346108298703431176357156042593066187966590506295801035123763644869270849462457312130387284973778149786239459470804313480553208600060797540353709593887066499135008656182460412021487214066507477565679660634411213900624966320526648230300755086237751000445549156585190353035413271871347448793475756271599533271768153070227061038386344093667102348933861802575682334439646214152122646729071264537691508943553802839907554624318610348517877066534408569056308420546213852887300841271638611651094469712331095573043806338559368514637668081130769064866235826376665770941050728400922712644622242084345908776672619875437206247777479092573426031153236930179372953971636834603961038376733598956557591319448086966436473718520271986051511525866036016282898160261866680502033559891352445044455466060902670603575415317982872739102084724910262467419139909215192591169118225089557089360459713297327283659894113212596864309235337048918829101277493303323268954015492813407714311617583775056071963671762713380206248909412250014328490773952485977794942201540101537232817567174784694533094126655986180874237449127930835209766551044344077236509065531961480132988213753636682210359654460093057324878205268331360669491849518961007712933327067589377952892679348248984496736652630056400603378022645572816610735510702499849437644941516637265992429721410938002750770725789973204844045456971179249636377097839312927582394407047028303637813835527789535219052348522664690671201078145456826709854049394406669687501598383011921139104107597860386027822800543730875086961039145283516066180040744467835340629997751060643293529133832319862145593214764338435429639613873108599088489971855439807435501084712096086738030401513272807618184123492992570546716075747160620435333846225964656658841998659335354626497120776183891977302148186138331186422141478309444871132277717650780157233235186097469048719539325880340960678245974188612938672967853317286199922345667033682233476949900428532569730839554212660222447534423413391684206799141226253832852707216993531833547906301248030108732815049188349340119127404752830973179931763037223503669748747296492534624268411363568428324888467844515050184227260307710492867902950958086850609940076890300087443606830074475358807491830974845069997045662629817598004048197605223808285201115335519876089203511161475980696450569993781820784075239232898228638863902865178300218627883940515546445752305197125761168040231940630330902458878421067176991131302653177150131154161983145324240093234186783881421272640424914311000552994241920482621584417785471344626199174864620976938623778925331110175686834968939987596614068680131514095064996898503145970420072029226243523539567829034784253876415348237724222849333855081675791600512234532710391805721291184226972390906652861286514988442623739123284183432994438977145425049412802160404749869100801586924667092787572739356129465909043365135161358673144050920671587328458507537146080990263412514832691673072297268020430769092283452380607304811591333536137232134940786066807480294087684121674363282143970065779707925751446919613438320207207621495233121352444447795539543490305922824237869214893144513679660743654238049713399475237757890030398173753769938817494100862679041273063824865751847166906710389552413244407742949845842772806451482119397536982757396413088499961109741538450082888011097719437596283648927415928246500115931852291300567349639570921227828568007535721412754424188876627341040075211217480380189067426112225452855360936757859466065148759811499582492629882548502710091604278855835037587105847933286200482087322080203183303714414063827548849164320631482292988397374623817682209474212007944707868921012020842843597864522345877719294839880642851430948794186304198457117164963069139568638159557159981753866251386142202550682673833448398568398737794269415520862943312739096245406753761813552153141061805370956923655468226873381003156378211112619996834198512174847573237023164320331095588010029836302557124908008026662067137407072218891429028181989057502162388181602888015628607453229595754356245580576776449674659685030701502821614808946254511894483248858136248481917602569774079472138905430849052601326168343958070905027379085365797932100798227931811071165623818237624947028585482589174112766374391936757673146239279427574768885797423258467451803204783557768603868558846486863419061474945822391756343420154521666505216049040437159083450606060193992116946710876629179881187665770376551095180791240854482408034402218893327151911556937274342870737239693480726280818851782736508789474201384974676881959274265668915790685815521717713146139928457176240832950108562357860727466392256252627016944984665374868050176170573537700635217261343196542834690649500570092361459898476045140026343282880753242281514558529766362104898160235505309519718838438637994894557313315692227206875906270843254973940505711989199307765292751335351459714557291032011196892351868740584994762275802051233808474205379853278872093528776853828171017959385400481976694740091141059740232204930795472201384842990987958821163754833796991688102185780670875887300351964299835422663291121890455640556769766470286502409693449099829465048213739283143945605345294293079341112180764162867461531801837837568124088745000732776858522820556604212002953694532843164794180685020761218289306378131498579268223344821323546469331274047631895500340795181521353686556196063964948381120627930474861609855282897763286815922205309801522269058220461670970797674372940270597044804624009372762544577516476044843504208544501093963729600763301616993921458904702435087074278580740220810759517709251222080137277946574758657915289012525881353827770862903664046813296440037111032466529567225524820355459512212709374963844191517152827008872985971345278127086829819565771598422972586273213833084785375251738404005393206908943686142140591655141077336402216705745047803419231426607222312108873582016415387282510131872855696533941870633267102308844884321711239968361040090110735610414143576148400710690165377830674060907696696637149371340269760415573925459036933349826336938470594879027181111824805631259367592681680732569959028233255245752462845659590571225577503452124120427403458636520355064897745729886883718814504313892554041713805131645107180685407849441195152841877071683758601307636568620776235202741824770889561017691060369217405974674944142819052488853562648489780125928813979577403835158880636048528543902960558855768615007250101736932897318201746764940457051497296195756614167014705631857378425028745949113616766519862606303216538291520049954004004893458190885925745178370039449801876828708272049182742125797919579490790390285336710237925237070213188356901151480357887172430657442172473815912447355000065176764587096456868023306691252233424264679595837201643939651607221176799235314992402092694384571610345304672072853625351951961585006876851830918402824524767617329214533536221651696495605474563227774137990400219824095157641921558651172163907231286927105863360687738725080399513125516343736402748396463379768936329343381886557140033321164019844459581252240304905824253342654973889770129393651299826811658434972482978035310472204059773435905143427141272909547835956426298907418019569853596340522868257496560803634038748884339361643479932047617979770195710707745873304659699801694792755830289516048314060624098646809524756378183469781711103444592617079547914407503323258352694798591345709626679574097780087856291491770614129835643738768725378536827457637216851616798686937021699127469741115510632488215716286989762153865163949591955367171727710353333501972402944645656835844422185476255741833289204211413518410391755559693356722136532975088592764462551860791311112730064480117263959694067611760793695392006188311323119247148973233970506999018635818142479740167552499936210880122128762599128158027622210689133228673148547424100213197439762297843545157120336178957329206564360766395112290265720491597965314290383593537012465777526964146318353660382036175503012742196922935934763089603675321978447247698485303953158635104596697264345029462788657987383654422293620264901010521437331933241600278803888507945799390549222888422902609076294295380885977254156294149179952649890853200288690932128698364127754220948117524590592989505435912298439568978341985775958826380220853005176183776183613492453221439385741070981669366209532612574311740961038986427765839018057959863009687587838499218767688922552853644649783756467599151665834387843337558442742753510392437146253307842836707750325299522625918499765161340863325945586710001115985760473128937237981510179651259255363350352890266132568955740316753229135744823504731503548784712003853188009172052337032233687279912995077607987214806836495536253077586498948674561644659300897261552104859680121652017843289733210963136029662512398539529374472411886899537948149306110529350667208416850120737930967314847566306498837229761965677913365307835574669213805454760101214983006017473378968699156197173942970496458552616511568370776109935528160695807928802802943049075555874158309477661450558414840035440515114051159237933328318740638666751643875478372951928742838987820543277210185936984860535962834715367235752286872525715078547927123666508692217968633711282080974349535348436007511821926275928163798092669622103376559274230635558746830947298671211549283722287199721960354606363892278345326702359839837605238141040891850797790497084505812407590141477535253397934178868150382472144816394200934148892271274185682802287672017657751926516033598179125120551748660502355173155570244140780816119013172531263635688837583019816092146883207031760437495348862039372706623334814018164897821534551267890920559651548269033908090825533848224695546604009693407333209371486619849213007109101973970655807017679348094451186332910216361713398659965149610863809485097923752766716761571051571483605795695471011740136787784959679871499478951082811285664302927904951314050502958551469238171046209954740161204785265890635369970411051570799083967118389668883981803147354331353696986464941098542418897788486369992249032994674614223401020995378945895637476749711918065746726215071494929318561275453694115145404287552722342079926906694271210619610226229753014180698966339905190679130313817156576675107032717838545144204444190609983455570446924856105337583931256240106353200766574275869649891316074612984600220711321369582906465448507731360036668079203657906203329908381268443209483740399992242468015169897596799661110661640462593763164917104949587470401952102846025779141838724918583533202001468438129262423587148423696704611823720544561928761193696331540411287591043800889707516237870777312056641564010286993995219901379555741553315964624692608317826328800615176262328445943544906855429877240328785708882775488591200615536049339446879047101436453794155800991635370340230940170360294090551348665012967535664573044259863275966970633191147320112413006918003782781587876372853656332607013197733741046523422868038349932994473096110730357926404813024667159474644275206824725263331202113941975213677519257623946908852716819258197873745799050534391632979459816143255557634744964388011415748024284511136780960723437747505721159914339995171755786107820710074043307916686561283021988727175981741835891271354023700342180855285388791114443541079427111203050991250488373297541558987246701138460092962033217538317696505118470194872596091084912990900107236093618701967931342433890917865441042560334198016328045589179957667606467845644411213246160213751342434317905984499812263021418964547059369250110071194293733960747007257002028650834240466727202073799317053071966623278773333110074613656088429830976359540425694609559573342860336256485463107569023119027138678600064283779871233605100658717822359935590000422760588389098583605016039714310840515791702389727343430674594674813061804220042602438769303255384486389802105474840531087284612693997231000227264129245448923625822679186472758257366074435783062023821629443279852955582667350391579532908472658157250534320982322812051426123854967871093315952424869248073112985317865581233725736135425842788520687272386854480258675974722125359269127393963514932171301672714097592058205641524008904315476811418131567927109339487420423500426293263259056335491197020984221003892925658953610180888170195046292193798617589382679152930601061151768426733550796931936329187690093082589256620436751538372942840808638890495563652796589686413186506415156053498300775948720746141156805669186392901967015981536550875412389007838371600039385234481020924354189569142245911163441166578713991572472635043367299987226422688094482494023782702281350181734231124157358286513187170802287017874415471705948408246523057716275791515087964476662263308447490627463867652568917415451318449793529335109851754590084078080191687027423682419322170341205590535654717653181326530845675629897644371967045286250802351605967227478382505705219582781191832561847060167647228181391655556911179222013564731436618617563636817155759233974960752386265448214776109835649921091978464531249556926664539364345656676492234512004034741515405308876548064485512740085853863672747247985313775822354115400051453883419135401683480863182863751839319768974834932618677332383096329655790323850547429045373982954094366965141443095560079389699106369274174951225677519460205019370811704851079186029390656831181159495490250955992214558806334391319795091836096523347380168255258041258155218888887517704441288274175299666305417523279536131094546207972108771470541835895466635587957836847739852775777646796690368534405012572795632515272564635594269141749486669909289776677556972040847900486183069708691610284293550588249464772598579956663411201583896087740005968732641276535092673804022097041891054174580894825894829117129114303601068391384250213773570534989023148417669446733456566394553540061442292299262420383542402524882806595685915327065495492944767608061515602794099781865298496629566410112048103110776333250352012061175601448879438981013433262238457329114985931937167091509452636073601758509545923542483177730130180137299466678771625004066953366886619630191208329894326234836170740287766236226095283172427413648193237543920950368400988536351072639534748644191614699759666400338517424675237436044651043660464508618679656438064154692717665621507180858919077914373755237344438679596465695627793708583015006504480864093159135410972932951917416306498229727259928670121408717076358250821341740879960034927733569247967594790013911775942649133238662299635147876626068594630659823507708734639219074620517746097035059425689530524425278466295782559558629203048485828404245239941364211593891566399032345073095217965684647580855536150855154535316406328873599440830948338564707653125203390236957485351580406924216868239182013531058066243183981492466268718010760723141174960659890185064467592022234072035114029357502999992162642027985506549532845836676902207808365194063825366361455302732888047776374327762860057913231814160016521879785025582220527405846244823964792436980554968700965160118585176366501591683748984064103584614484684002429173891170835744543683752710679703217985991498832353234596088789059252203594599732738744759069083330065851638733687726760593833824809963106868931774386641327586340335172363431478432687370315578306258259646589585120651177248829352072337050501193644781925429447316859679213355223183849204618358101983765498931362851424945861790283663832766028333260770682332915152754930068516615442603370860073485303012362800907514031452067869371623544611410273492671558704722449922290574095929260320223925135928416657178735048762077313640371182099637610905770694267040261429828139777128069326779236988085859617756186591084076864211711625141038757604731966949182044428866483742049646620248798574298120379377807051833590069654366676509813533889252020733270117011215131011396109623175866297163640843670081814796627514915430567836496560646014308056616875569533661126411405245485756780738596003731698473486733811657366471962883690449223897595619428600838049358640364714122335962985433877063019761387028103871834277840302293584687671130000744230223055445027461402201833777670570351259032203135649556297466432808745698725434729461135121183089014518633313144713250237385222653946266194154654087853865970399790404186229610882323605646851383882175832849369769024177908211239565755739944064512552661145799398427615155946054054799818398259461510311633088649530707080563027086964113947978819824607599998822273726443235381535444107802847052817134909348898751412317738040297136429689111251400682414805699725743220637270858386314155190961345186772720916368883482372656646905513737670740002770380696284685898820705098327318758769215561106380960206924683156099864004344682449401479635857056521827641519064013022890401198632145839890071324376450988531722379277588831831389547503290228562375539709544522435516224825902587300386047071914656055051697701892157479806936588794034180954717615604310805970288244028953062233595281713671777765356690040789815287461001698460575445806222655558456626576222538408999787812981596507435803151390406276798004712365685335564332865313522483801529188960581544452650655976379074379864309585277240225439672258184989636367465757147331990892264621675945092130175277927634513775150704141451380903786699089695988566401505345176003668503769703612558148743135058546347702329123246725515293924533328426309980082349777151196199250630734150937580868095497312754204755796065521728978016996784118994926497100882889730527387423728240502162251771959709558857394788101412655019543213044805525981924419378746005363875503568408495094303765742534439973063766593742076130530840536846876208872474763986683639755060989748646609528430968577387097051652341787989598855292935197865787562966503574347704201905405192574299037523508829433008939827153877010365293989243174597183399231974590637297159033253117523523257494954242314369744149856663370171830431870810602273765529286851618571644780191767099639112176833246143900201745099969441408495050452742002217196398838421005137807606479928572080108944179755346155677140352589260975523922078331862041235359409215849666360276371116360177587969204179618869652478165098275935753682186145689387704557199476999326132745705834577125213618453463108136158967521152362291932010377601906359178183495439135864372879056370283069637959330130635940607763232753409573465141635780189684007228511045334047589859294407892914116235936528581969361502249918320377742992300639816076633001033415729948849036449543021983361246590394419238376637108640629331113620695400501343196177602157600121420037396138454806267688736925659777803954137976631189057046418551249878767506948874227370539824332434078524733896091691079616515179390508815012943189617818632902868548690199630309006711354367802053793526072282797860193753274235960272203100896850636036339237374867331047747570204146509456031331502594681249555314760039772956306200339528603967740337089306748291397076721520806624878006415466317416207949926498607999292021905816902265846803769358709807935785379814169191394318012089853364283366851703131866688391460584660770259234398384662574218822679339741945689737838465316348283276921280739566855406382655242422511279903310758202391043234222528625096049018276676066484699336840261077949882933538898580565792940087809824556082735038813716157869362120162193680737227896283365021654157239254036551178088230041114576857722656724711661413507462426687567043743803343347826991868743559582511454121442687584779680778306710010525837553997877272336642588996535852341496645687143826753664293131652420531280194499478957376241723885922131758912430058127865173879409701248197678607211952265328612466751521964564257997189663785068103283527588063388189334505926164098628730020040008681608158022252732392071992943443495635047963745389805900138170841829821888381952024412937180613681919658425343414898518847119627710872529105321632311068382077651773841746792538711642503865371075470734514642160335497619063506828552049945011977142723102082184940880118274701990939650708846428991714311774659818352738640626569567037920027065606190899766011042556955181710223575108911815674673128797268672219570769824289587944947439691145456949630969596299752033052842868691847359641247724167392505253771499974265702930293180196290214556074689206896263122098462863530052842671811739794130672220270584028283082324306135672566368623512309255337034926485123561344175899697845185564872986031607441688421595771374907779207567051273110212918401968144891410896856797330305148871729520707341311004117255088452290416152679250543241776156489635299806217924798116323337946825006560834532688304639933962971476088117337757603230902651070949377071857775864536016986372892458606009758817292788584841616999468657830841231535320496366519523351586558346099067591821933337040914371394709086507403374348826197437445241215426042606091470866942680860597320142736333265102548875030970563666039646442417400792553205183664638105027994619634028108500003194035383826626695455967397272011803459909236257791869227981373491476655460653129925288449398310229736533137175641127083941904007668577528849540168594858467664169715964025735502773536148369986045521198601066277221771875410854402713852076401478646580130000266286018564347412305387392083932199813802656089952641556046214981803839683564648080570474203023451851479497144416678684197303342725659784966263940219527686744565071952310865675478780598119867252704089159136918801816556731696936208245364892165110227656364080574439635350415979866936252573609214844643245172530698918813130262012056195754436795957888976088788574647452661127637639267963516040279207679410153965212213709539875347216749278462910529334070488550777357636176505692211965070953482249343604322279271629143372012906617013442490594510257748830606559468573170881398793382246014914539217108669930036085953051487320933374665725427786013949808088083352624870790860490928404006486751842318993685305912695549440807317915712738866558456109188364153385462892104319337564363381857747389975108378982817466239427523712893128989667498380399617783264524930140985247582409791233169449340926665984620151963345743061707661401949031083739799894890019051472525779663825898432378343427196209312033979269642642351759795924860986037700595282656262475613701777360795581862117875003567639749807722618440189048529210031290470164252529199127190855293994377532576675789362637915520580901068264857375800986262568631171338441495187754944663818128574370222814073553925765412590178860423018328078215921957743229113857256487950703866887208728507514307355401940719864291956612677960822738828204332656214512420650671084866121763291331097838663401436478390624569460138204488881328872386786905693002113034244023168474496006274316508554279580743687882432157987048898475648927033002179728372139514204822345923421267373497749499681613271559502089720934975556962147217541376917225631596561845640690733166335289731009944390556490394402699608403852938425958486596348886181232236184050293816415088708714207323543046958762704822030372546801070460360609987235814494915276987274267847807026343325712309042049374078137953644433720799730217467054512467847419006427249754568535399214109291433421974283781086522336139303993963119271544435913266199618914488314691489981475262556997287241519638375738077046081333471382106061953440080332867992414786976957152982146989125788097444074420444567386739793343020637849774637273242769259826220024331788382163484381984853983533157140174241390771875233196383340649511105182293926960461695068365351700080752472591274926655711658770048309951550962379735798539287510708701671047271450178535467436832062920307428675739528659825133518789396953874385974324801165726712571293211112138803921606310962631368386946236638693203374304143080743817678699135183399566632353213278782221461167377692890210511071281684633254779491980062671893515764928317055676629149043770556907683749700824849927850078362525066938895702089145125331284074059823705730966933769057303037327116949948294380696747248448809265484604677302824011481149160305056729246266918928750890395292787090658963763890023612678295900636032543469110923038140586453305636316496244233770182791579824492976613494548016337484138446314312379726664863474228704580850277115038916423153312073037719453201303504779479040968087302621559932387441730782939332503565738113006467007636516445598627854942300983245787429400328324310952898423725715475550320267471362139034324731510755802416690663641334140526335295503833052702985962615655959676951644012087619324322381816894012504982985453790411487391049170643786215559525218052486543371046938297053974434580375398345899108717761015247188072513007835485442059746848266355888105400166412822252562655144205486896607200952878089210124382027398637343651441773743789312795748770131216473964575149184343317500813564022284044550068796760936074880873503091028342824851706263895493563367389035483568779856078230210933925705397287396537790169149580882112875362784523784947827011835388755796731687629398901037991164435548375478638706046916615626200893121500708857616525480221677074191042190218452711399360339142990294386413921115384080801116985527378905760047267196667810763337332363738610081658369396340635817560336445071823334122944823419687551517703545883383994139734850918692096275994259428049301714245778212907753064820825428019977651713107485609930368881304437172312189657159929183350671349596039737173130074628764517763934065069692320839939735932662222849495684149729366575926625373529322140761426735202081861050996269294944501212840992287315174474749699040853454765791165144734098762584207290675555158619094617314471013724545523089287067454248875430389825419575216299979141372606862395660025576413115125096231375322329899914203178535541035432483953810207168752853124112038741695304204314796118562430068502971151840128748247683246951280587649997476609735265064689615400689142703721359511225295417339535978946150989664304199817610222106743265405549389394558706822941582726369860863535601363532341327518219235783386254774238268013001824542244188513913676787306659361199911724456665204892596949863008159794719202879865182119540561542473447235290580008624983715687753418543724435548783637825754099947352660008780929967781424227267749831258053574810612756444766872246769873598280543588254784001955930862315908531807847731075941105307593249763483411056239266500734821877068609815797604244350806626914032396220849300006486660274192110671885396142723743750872133233810839839331242362647299055376302343035446809379350290264191283852461898050542662927208338575988812177475421254431894486119629027005638290035835592808515295197028415872485055205051206433000330684134756619402989530923432545035986649324956426826628341395590794856210150695849703192917464124007230592391842585082702329403063492424978351308579573194005588111752369441460740824816322382401175864785999308944077211842236370558397321892082502913688008942122476891826565306544712357463419639588843754671013006893724233569994467771004300799070920741746474201258544204109634881696036304031989757319863417731501112419839686992997547091595206730690235796569381555708443608268801225224417061635851498570643125785312340387901950211287755756400788332935709479850587864204849287164799348039679088240960610132332115962571763997032992781677724564483449165499370828249590520493186452359299335306279265473840309736605019788655614097357675792362109584319945530550833189351945977125068388617714875267876558052034317213207972183027923165572869643192511967623694737788100620813043201568262142018159448108375343037440867611891576592589669440166898502334585132066922494772265177268243285353614084366026893641083541200889654817733601103521292721058683896907343240729645695499221739156455530201636591096008195248657952116062625196856660013070588185192083796508239038905333441546688846287969195121953655935031048602451963050983804229132216414971047771249658241736745220912561278436724922862683269477843728509452560507564591941829626543825670059400491133572581846664709624498146863571937890325238462598983265885548111052554991768679128795056243883412438445729446530034888799279239831616952256598012634191101957356758303178095692893692226995467652938245988165069895112131551245359599394076538364304165842208972952956131472426446296796762910745286624005816957857512550123689016228622573368443828763009501371917044531198279554647098125974485873240246384828363159565350447210370158606880371715474549955789435736074819459321470482530176776463763331516006151046869783982440753815844741372477698528442055968716112601256121177102447247780311252467199072876797879473549437187927407844065338446571904237236703581739861499035790079720787360333874737136377323127960836377469568724534156794550699962783085265473655875540005101197302126823763624427245587294515066361977808277141674349089089047386877874664341595956490404131823383243758011528605308265146033277413721656703983207245601855464480510654883523965010830117028808737372311891381575819157352536875706918993950302662857767419526846119556066066973493436516518964624111798859939175734443828165536420905441693816479119942394084091410867568045644374449828238239829604221550363528850879381020501289504607778647930810500502034960202371033998156430437081413399011117301071078169089851056341902803402398880707027152646133178396464263293113890054907562604824560446697150672266432727249369669580337964667061660740181241203653618667326492023233979058904449855421363507739958779418275658330308333050833494428640123921066838758780836384484124311125544904970520884566011548375692065076697695148487412102668243952067559831689631740882091288739725692587998659423580098511892062202178402894494721297218361379569004595221143215772426249267141862662007047785407988875876504813596019523023129478233301599093424692320563030737576465046852965201827107146583610598296615005903754678060709216659052791186364678491290782080537179445143180602217327178931662481520087892813415188229568189202240415694386365164277849930464829236253317915782682733316036934788699953885525382379710945988678181935416780122911695094116763525136088645019685773747753339394686639928054097574958218139867294441353591934573673147857318233732762733601593920399773963649373038386614172978690342201049176135211988545302018217942862088683750134326146139618020234210068588705167656900227274929684101072540330153430653192429612122596181761392806083336425860470677935721556498346500421212212019001394090827353921685191176933813843904486399366419171371083979029265276341399931702977267692680457394808963866649537316964408961450389620033478164006455930172981192059080379091988951245212552425211802310239949368125667471555245694071878980063249355013619257475039894750954868022899061093517326827581669676887622572767605410479566130959294687171955654173033688747973192612032263893736556483433229211979615454507715684322405094973717246822948911989036733368483633403288556576602132628019523478485477208941695803980895379684528075009316222410782021839543877578731151869001981474284657843995177964619034199744042974157956243432937524307007556686895689838743630504843929927734159803175739210437227859636592578572840260459121506099231024496876663153555028459844732044995800361425356308227054159627277337499203073115969612360005047900181242595167790900458946139074633086501832549960674547583111096895353598465245288907140410157807709155830578680311999680437546363109388715816067683820808789962273366710166496601596708035154128186218106668248184756149317350682878793754290837163301419438230787571397710613961181353803200190662040967544126137576829419898747559540847204375383507632700802267586372346734538876327475425545759810022508179901658340145599873575674989590936864629985695572323117739062183004235935811481466493323328425846050213526180193038412884445764987463583243686706869085502753858065731965525534483511828796881594509272877903574728541815021169730768812112606837173494082143420135721199333080586165201661468135860719967982649378320888250267051664180088721719851138770422067901774791592042490078153384669082913359729848678118800881118698106432849182122785450751334131993325526163189899546414973690452312197572034075328945224968734379405101558644149806662959746472149569721052186144712655042887921120510613538105732874057594876732332780358892655010034763010583511631008380014583173083768854265387804870830710832958237635096238689313578854372513691582688521060108636273630996141880057605429675608105472857782903322182602713782428442158318767168907861801311067136073302140858622063787872369198095613139225581257431865100881750955309340480597986721923106539208247688029673159783094576746523899600396297395809878440905245170385358336630851347532990936413137317450117702655151906152372528696266237078279027868499026092648572036539381042019481673251320565534494237259964804005677752518049144628568654413164552589632054217645143196762071757534071861748687802267643178523260640747020024378347793620352714388456107714801663876180010729509817214117514106187842018256081955094133598002330936487423451633819480917596918621767402285629890310116676942589976746552551050089095897176374818556856834975378659532249025419997689824894242539052076749223940472770544019162671851741601836435131890545550058333907784292681353366166593978802930129675434333795496396195634940051802266282571117560789859233105406732610312620361571540185752069882292598932748004901058750910706363356419636018627440075940196525430251490278818396153167536548256000873829233042690009322220238436401632994574654342665263864085611005366701348136599216275415816152497626615792263569266307934481191546905984014986726443490808986136053033767017868824678961588953304424530037187926972857355194964124143363366383639779997699134712206036595475513992947040453086487104946658894717080039069567291159308261206986026804030793949380493110581479216595724400909259529830833659311752133130421087659043594180573271341389979344836096194396017846089823985745040236538635899662987700208932284113475092371626099925303240503829787087587201984360719920354798003097156113752136078635525297624435662882708862130277140100687704611389723218351713048034044785535321574840024667504695475604896016021149680467871529688909485073882582579452405009619379442148698858922034812287006481216871261103925063566427056044253262696003031800223813231591709878198672455726851661016920421575872725760467588247305324168092463954826509912556188525616987063089712492873129146727333915882353123341976032076760151337497704856867408109249089601995689819410284511760890518066934900947422746245001674149665717124656192762631842517602241220949439672176675823711897251527715864797718922806093234979836660645780761733914362020437935276535797379620952561868695371571597256935205448639642789372421595515617468579138664989929261898877364809932296346849689197720050587963250340090585432297651711775049398973890447294613182091932279735662897570654969393216557637584455851705123541506217406853921242020095573681590017715268216564473041649723118337634823954469510236857659608927196794574886349508137503649500630212857482640861562887478212499003953522628175760266568207832038677344581343629077240305152998221966705192191342659693094429536090493592838675896566504615628415622527701269887862644402807793701379368039626592451678884253381332838454949712728574862503884137202622928756155529404393952305140665879661484146690244551071755009594235774078277620961712278907275526120941923561758071175006039646175996571658306991150906658597638142221123631134225861068802579390060395302809177355581895806627924308376113260543621955024533341478150044569811778894371413884280508521972304389412039913683395686825020536191728140202309806948484847850092147216543930607011031070032464528288889277293081894219545622885490033837101482038106159859128293622245178183345636894604151075861529523108923608785860724379391324562835258399998747550744535985591669655101777779206911315790160915737687509640969113940207988941239706777045466397848596675042061230296835808006276739827272739710842741070486123299002389920635335200580034250752313891537247494253392515765669347497639432790671016341280798162540091235492963034786015238062064660414200388658873185931826540794379967835201540278679581211100004208009144840409570561039305969970765889879799142665464260105199762859322792208407418650879656640314816624762139620511583244403099937567155997550329119860217384139700007929915190514331943985162908197822716777197009805481895837891260802530151162184558754326629792008574310760797426273857039503502147677676557891826604672383293888678963204416692756981143466698515972062133284357793960262623907451650645432155480633819386322195813303086969489639473120748958240973639486604865023119738090681096411770150358226858042061583069044069543635694383170811132700621695814635017980217760820542518700199827505865177150171908498037468034971179748515331231898961037353179287716505390991748304861487135335730145629891841980053367043785878877865977558099065354939969514027869511366148643217425538723066239813412413431067164282932524643840843957398149584617032525985595315750488710451872898724676674999631037982942313778076849265995753650659245131436648049947471913923119084818203953212084432750183831017171949992379332659594859087617156232016332267561701325217710794144917353945288074522413107779608572856513056400299638150151873464975472803729176437264492943259057328185828093780292600807729429223822362833830927345415894559426187319802980795096118979564335090680592439372974377761766481162435853724380690628050511195632113054494380476231869046510727032196322403023341557315432749638356818707546026255760965421352427786569668056652341650612652076789898746597184813649984480850404923898256575610035771611263460793021953406682185282271269733159306415185393185819635102078830866123808293582376277835265166346391526572897445749442680844317893748783216895597982357313896595741484014947681114406621770477566221107344518616292814900228846521161528611244020368562873398073129211589908478994586630109262515637566183698931609416421780309518960587442886831768578751270462763462994657897359315310747436544259387360326886487248008845789779039951382608541249513857636472355909530886306259224942115010009036175266107113802553922639762429753043846575608557146123049555920313052279711526999798541371780086954521145671263337667920976673016277314069060656135051192991060857374628218521107753470229287598225047196439585325749490494254459383281806024148684412009290585030095865287320531572119533534472182207757931195044471714835025037979970756128070013945344628655921246288657456707079587774023245467661073979907696877877127912867756261615743310741145440744560144377235168730311815010715915301830175989852593699206500819381156513004122570881515472851799901955408272216171717732092273243046655671605345523170978251808071577239309995422748189397350180578743676343584260550251253123089613549385674227658718334958806816733777565883123825369838111444008854377953020322992013461689655238262859653492152232069233499443255487433857243479174152769706539935930613408044835973920253771736545200635258758312491483850235110539764709787113878045455881888060417072469935799037792717091121104917166027006559609740119829530261147347040581977988963668649501989560872307094336829611638593346081500581251612564399644337268944689542690109457691899675543292505464128431555525180802666985169605160979785852695559585458923879940613279626121200493390254857292406564646721546781693398556813903116492597701213300150167857896188765274261754843656097328430847366532507817999839523269324035784406097305590854800754961314865265159848258337611870610194628715139538134807765610400880389254201408513988449919520560703960181321215286841763515759254447263993197432958455010992923183763228145312366642057152902150856377951660544288255489068497995641990726474957888671621815876275269920230634200183145733061935192190306491507221070285281766351118278639471789464896701394098200521519233082518038515311583351467531752544825352160939890135918202465224706156448237646556782043638695382951362112860358916956652888294964376619354866533758290824627400815340085823966033375378843529937199981456918182532665058234866796843500405350685165639167790838415617669464587845968125737050798514762908006239064597822094159385819982779830629365872632738313930119865437923911339372143649825311378165244036038822750619452823268033235245167837744269011737471756717914827103159348574726967736828905944707683531096794207505904796017265136798533732968476910538426632185418077313404152559490632539806176533557596319040145737921150352465390116541175275382753883160909494667178285847458826006577487535855197093774091591273619302963640725621480423568435808114458319278880095368840823018489899093871368428465482273340222382694146676914482960963063587370086625934684438965966755563173391266036008843107660694832328133691496040585407136989219226568344902869563873624780212123631388832471225091708724580987542063314469670421438748901595590976162990708079936685400877070711332651080366638993444162278069424818273222688977808063448122208043685240918358925439195765949113239326534808017939572733844286817832062693232964016198378543637868379739414731260562845855195141609311927144524027037851445126072254569828448218886049474866117155353416042737528307507673736846972617256938261938331069081577778893723958173419837478015825178358880221167631688987347349495525898227666817135857489830804749009581147195188702443045045851702430063553277198771387418065863556812481585913587173615914268164382214254277486492699149653396443150711065880631855056412968429456420917367080872979630977332316928228620267196388734599145303337223589393777986145891766748177970070259351419501661934745169639064849969520193746571569901192851663541209784382350200047149853491069134783384724876120766685918199501646603901937844863973898937849760410740457161043291292168766824753056354859934925826574175560433266961574009529053041603999658425824799247935206338434042174298124752570612069220614218861221041969887703551416055616432897974289261354409609656633308369796825660223888559329529694068144074028975321991059821969023039994436694463498664754412375182138643114930234857960178379829020446223101155917491396222438982302945723774589411737069607753123930872890060876271613715141535772327032916104940266562448977362297227274969058812702161152479781451896762653819369370367923716397360214206778181535893149008131440082496166113124978044409543811922421854324846707230819045535574811576610459498300200070911709239710470267637380580796167245359769915017849694593766684577350013190733870774709055324855561060513800486463163370615607665991920822492198685084867783185159291764864635822472908371859294783504552480448377657209141282449072540471651502585666263607714271636044715879769248080427139964843377687289944012268931837230079948593772059367853752470766118215786988229619309352788295154145561466561568326180245322613532977170521188082181959736377461988067343428246538497060538203094684599906449087713368320277479751692557172710167567327299960623989512488243641107064504587239191633304126396601463153998064245553513751619770559165389563216091539212994896883331104271135905203427162334012259935646606377848150993296864548939633884298917300364171642990019351274892700882531504776197155011208191222061083707492914147164298975813207978520138819397643964823575058975057803820116718383846355838827010509046926564917600524230186711050820881412501720975623557781054048247248584452705364025035271429077792889109030374502692000143559521614772942015797587736047160988578011116162263234686773648168911392935612209272501310115180029366326156757765875889624244416658157956052965768825443200207892591784339373261598649187597732002714165274675833653995870650798058725725523145772436012211434534472948347186336887568960504900977877819280178559420130168941444070548216209121052458519619399891795813438629120483406754195105816099219062576975302726451081914724692096015642372716511917879741114663813806302561165687062469963421321407974711643174317810822169342417574409741655953925426634685291758234503841849452240768624962330996540632536854267501458182774976658699499079342880799741863629120513803357138489816138680840884985822913756885153794250821180524342506114576113476565469892647995458393005891919375398138950653909577402325384296531832498568985369436085178471721004590682729433614361462877718038105228483803383338675085399286269366597495608613668141836337662695639138185636968875884760141647635161038903902649807717511973737554719006419122114910639109836724446116933837269370997852741580769798775310725698296875800998206256511018373707356069853846866527692680346679929106665555713625750708037427921997462474375809422579964026167502059417694605776621032857033589956684558136108109385176810184619801398519406164883456232448291009333074757098028007498860670348202287744047201623467297219888699855282752564237417957757510799480402808039704949125333787444615954424390128529527734561168392892545314154856372672119389043612285598524854679320716338150643411224006907689645346001193068558017009855377128049323620885696058815589384529293950835508611793172841221117776213886939925163493945960256181477783762117878277007042687597827899491736899980513544956212891690396034305875954748446036610760715235109524421227226823809917464748408742536477304693739369539920361102053303150512099915867230005856972849466080864335641400544021036765802580674336044400224336688592960615037573297463349399540574495216397044459842689411441141579586847163808533882782098588404151098875353478341242284649136301915535705256244457820358891594819386712782157744501604640360053516770711727553003625626322844276333370976580319862849250589679679949257603982953300032231107232182391093906326437456668538723450101233386449551622088939720529445951200539315863951611816664712001863599484498514640860470128132898069312333436697526338479468428588352621988935396111131450808213228045430918037913113733354379674386829789890731793635395853378748545653222271835191578504539809572155597593676147038714886055233226256841729061426565547929534071136840227546655893410894576389777590881599576832260613237863748567522961563461711050493597697211851838131015765854598472136480629304183873089331509535693622265720199936179476132478304820771762836102984517932918967406362459104581201200102856018940284313553563201410260661077947261056932683562027874449986941386967926560207017570898604106737697686889180679571103972743495706913238225840684752150397856806388847747788602096185763643834497598104097930450526963056143022265391143657538892250427024491367546558777345307627039504123699221228834273110176240349102082517570045924821955073775560900915204902726105615815692399642253026877367271794695245371507049796854955949144488559005462021103999898591219171067978885380218178117485523721147221020446735443233884696549316509324224012086511877049746192275349248890595324512927857188686298706087772997817076261918574581722559128771480790555861112073117728047108641360193934751393299750877041532988587336694457013158298628349266819104393601049181625661462093504820342712013279331071714427437655175020397669175160597342210311822352390944918120446608964609813337737737640101821908042183929558191648907015192779211936204204340786979969235686182646995251494364454939705680702778899425924507747385838039249327938232701456490667745311865814517705823861352876866950812644111390540547286760101904386293536835051003325254959872723625962281598983823349407938455816183639130969413999651915042144238507529462835232274790147080315091039128421582386335539078040095869315516445336544663199703305715704207577657179777902292212516072117187040298968655947124055358397190766710255563164610213320673561771882096123004916780936387858859354541978536809533302703126843024323639978865868310294628978215784272999033487326678217840398472909293992768432976050230201391575343091755593227207820980642994143905143765349632881613306323895695933226760224237190994303370997672323702879809803212758095474447004571241076880348051480072383074722562427279973580297904599548098937447796754170059383724128193470134263780403583852396966078694992251012878636821454494107289476827012686385605759410655760884180574690627922189284797068324342312247838135263045544440189145841685844390061445848620012551061519874150805023825692889416465845057170938776094517272162363312165403724709947178405725150545787393713447901150111410013752048925660359860246696830853143711346969760842973602289812842037524840488631332907154492822372968522901062493410597518131391822768327338339006309691042485660894753309053807976357499799318797370095249151395167226463772655694717468619756167075846101773415911737312702904171636072928319381504210822061265310434271235769305891020352615091496929512836719391714878372313080251466807206542505757434628795530567650051561892679951040847475628133965028772559267962272672542686562479136785188210454464438909336869384588362619379950002470886140023028059432520188516525236368996940333894504635581083174290780351284967966340524020962292713125170610655348476504280539132425640681795315140355984448574069172228948750221758499267824561641105008381179613059818765779231225220558523757547529898712563422127778838796406885495711208769667257433546689428306857225528869688866489718280788801497608268880679288579128998092397960004533792501337715359923203631591059943660093033131121311418763043356452371395315580344776908926329044175914943541392820343558983391862734372803759855120413277352247706030595064494987518335511395008070560742491258793288942610753641199486388967374900288815406648989147989359467840000171575108826769459716939061275061924297255315825869334184311945465729733005830781769970900832898927288122144138909136791201639222170660504597411293689156522993329035043304799288779044462051380807585867317502512850407416409563005342248745461619041148754322823973996979679349785348044255987619292701065017772826015663801442485148589401439822143816077849133658520704774603172233039273897443971864063546123166467039643009233805234180214764964761418921249156136371335173527379934926274756120300354828869013071205564207937608425143213699234067551795204020043991362803726649956930002289368961712633268023865597312088399739528415477084538343675045822855584035171797606937856954128486262433692234209426090248506659281106270394600070906569150536253921844609114870797580099459599073486149976559482071553820982933847101023726452557659003333919590059098342732985635872980130204101073658408275457619814921223854750010299941931918404734657486220688507856053583744434562175056772107595001695530473852074806019065398678018489408069616299066332601605756601456024361367544784373514709481512186640582813330183964111762294215475376006453988725112727625042845823346140499995551031550537005863076343800392566240279848471953392171985992945123107484031754585655888360191012892130630307237643715139141132526636993574381745506894852383167309813077680728307418963474736954181378496241775140244767671025154479113745149835926264953748188182453344600486883394256124880124904737590213229056590456055694463525390389209903669742921117554393584309644477448575853487983228909014127624084954302699476248835953157531257060627460544340103588588716843371739820554611312756276961554037173391796775305553868898086271625306434434825682840894753249021992061384274927256443963921378289479532402930435569910098551783750512978651744364636515860156582743319338228081470657648401391209558372979435226373618233201711340111263067021170072831825813085019252398539273605227982337753061866150016738612206535490739856287544466141620625934509495428473726732458642189481411967267739751200524822784573738460886972849799130409616421402512949358423291832384214406953839853411799574138488013263191266511825933152184521155302449210143985528076394001620947869462135132673025870505680688971694997679123784660441305068423409677376348561845591505157092280902175960469242755957261809566165740648509490226590750417628602318450706996730929338966513000495845580889276673243827369059955621152372385489719119799585431090637489835296379227044075769870285450669387442226434524009843970357912175446195151757595345007049180126476623355465665531683009945275953679959659543001941774364278559845481918800611360180363556752196317874865569318908746294339954693989579786910393329395339996411935002893676905679582441271802069171961044338149752843561043554995570713955042128031393525191578721687735345325780499523517061457769929657151610843920335932160038969300879822440728432316002315965572545535668947489673614844853503564770451438495186454769344467551137608344152255052769048247523815784196910910485977542403125431427503709086927073957630773762134545377465691009938794925941056539243665374905583016493692469811633201283160232564930503238192645638029104116419944412173597070166036670739745743431025533322193665369273302719748731248356022276623511754251651865686651884979158090846032888056209556820658877056198120898343481156153410488819576303089297573818413205994744097447248587543308645845019476796855436117910633413589012192180203716664848979305469543755844370101527916598599847284357905184127833044244641574002164563593401332328733324556891978211489356888106821408595375176221283361785633335131806093758454504690172199319513918025729131504675016827679816955050744090510368437244480400736040640400134738454556763892772658160243876256201526026079197040289659922825531315377646600475233542662119304707501388578904170443835830481277458363858072578215783822414737868551293907696606345126257338258873821863073126239062548069936901251820242384921819893842015990673377428745279823722556932362888769687990339941402687383791580066417872342647456559167928402974831944398933824588079745552357533024662476117247430609000693996468062412985859211975531303864781207619854229947436674273565251171594368406674322632135031063381921878283001230715235987600325920981089520248609424289274923869912010612260211586552121963912307445680011730254121778375984730942878284705306564100523376773121577460742679622166833444517859027774718014094975505643834685783354400406410332997711198992983637524279372086758321719905195344805651768930577190936017850937109927667922464840488647874282952949609592543935142920485894537306914627617428897842717870363812073402422950043085012102473531625184010927270441651977741179256920805216455986226373651920510486060725491397914045499799191081976723891443610568022383975807208853462048055711706905154208435934497957753093205703299745935784760153319092179719222721322805073581120969388211635057991952288909372825093498902817913965190746709210739198665574957084133592384401167472451067800831477688243121909236239582739123878503796117001885177513311169596139992479942550427482323374046771818315089433950715731846984984812866844869142874071482460455289231150510409132790715881356299913412427749228829691869110578045945808840729532094486828330725255173280595896390266056026592663441956031503096809494457391734587096901132541915819589444620430587760068641420302103380437792053008723059937417023003639382547628021364105916158835808051101316650714327855304625554600822656862617897614194604992841791961098559774255103411558864810484465113850489959457435211974570385733990663011087429264800081269018064585887948588567987281814016829641233146062177493663676675758822887859753667480937101103057459889851236159487535104906493926459851490108286312332984475194069705837308881105360122211120431760566993255860646533886895895494306157556800204108480124895075981594719396734148835244252458011032418871694328978718171101994928070468269950663372179637251330421488716883919838652535268290448486985087653552339680787928857991448240463551498074029040322385809661604352578872185139015043554326788902229505841773483073736360041492216693130928349643463012688814601367875282394944892575356640237226072512591673161080712418832073878709164082010343594738834765150121120312075069883154618721228846480053132815998416121303851067480507350815658480561800946861242063465788489330479292197894572177872171636949632960602229736850710670405869615408330186571841424813779856059484826838948094134076310247205177574605859477760658751096790734262226459143780705579513289286915404260997570524141746267584282987793410995477452645523156844798029440025507948230418489511092268473816831216487202778641498417104414079165194649079997299605276402055157514005626104277766586829617689213262403794944304095367904596004195059003450190972208553515738193100268317594916940372552421495628736936430019058995351966397249660606285743851910039718700587145156404963853599617978500611869257331167469232921093059332904269355264503585993212762465949857732232600763221642866928248095782397391616751658646032130136529874844443797444771873797518717338982284515271014292167826743613384061569234593187495041764860897312475734853841485651356000002124404590331025816403707971461355293188168983300137956657246932591398285912168427929162385966875112419377510427091701403143334265904331480437909005664053509446517066037845199212269026771247481399437801968253663166677319962497917906992585903008813801655695372118197960746261008130892163198690502365856306989158557598687053586424029966705170230537409123492380621123961427085498871937044044114584792385375657272758683568012882318457756675768747055102774477035647295032546200148055532926746420668318152531043224772047189793511651760047969170778000732426859442258303609072871468975291335634092870002424854381269542015771061979773043174213420469770077670922717745622445795513477869879176463396233482798859251336005361774343006576847680680203884256111955108282628681495613886908231969107187730477804293546456589841556944876639584896336627858941918168844190384051765438822654134967670998979792393122079973485077097230102805432023961779563743513171699463672927729743370605454048205935846555363783409070284178702940522176899022290200220344008670312511680677426326689166170772399677139059937064287007440628416770232651145174380421869041955768943358275034218382405765136518576784464687310292288409046052201549934419135883858338047002588063086223648442502898515294942181949219864454388964118771035800275278546006528168618974911434006647717935453864023806400858033819557427054805667441194741903364295078597092492744903549229073291065309561464670460437500616244771069526885725914293313922080439367098722932771236767365398183863684846389735308493134434760553229756635324731039542628421117776031659707944733172840536364367347377486541648298881818795220615614963270803826435458318384589637608700507718420489618630776473656716933539107911793089425893374004511684382283270359967566578524993098022055993700723915710556775936459068566479919296356884536753484073772897222969733424316558104433905471953821365623895803950078164228917760454629455270279507172033683909712460040264997696772781411370681962734364905181620736594961868063069365100563110042008709165326602429313980423930558804566781044466195464671950526035844051370002997441091188406305023950231671686406085401838532380716622344242046394463203901307179800428137648971327237255771875215149983170462427453990945359564876032816135816791438642851999307313909095776109069399548609151898810619204521628528221110226247393981040057782930296909651982303804667275657154696742802929067461830755598424464732290084181753376033934251197895400852012572726866857663003053856165066763104344629829431407176872101834414380563637253628794022707957841062481576837191235631396443919561158307454492980414657211912453417872396440260357660662649446172419191798883514079311609788512681636546303283193634418873484349913983869019629977986932990616267994870410919352865287366802121682908917969218581091786135717267809077152572752569205836515262939289964302611672710564127926487852780119786642351266470660982166694761367341198265783884401399663073534019603476281999391723104000622219467740157074851749907440269494165474857316665592508036999688211321508132676379781258781655520650396045656996103699274233965602968413639492915716901699713367652312792443765636244123375328232940534379315684736629146716533088765532718520914428371036034040899451191543331564909238413693066699120640013851694336398626891864723047778255582975026417478917482688320540576417818782672464176977775491250580145095036862898009638127400759655982981983557872212556979615873233090379775567400868600679997163310687576022260131145581968140802103548142721097566247871156526841311566816578446037401906258255372214202361598685418096290543805963173718840538888334692822697716301513500515469423645391724271265639359591038963870055820913752064803078352944256660680637710951485417624410245202571571686279628188953827862406857119415124393915068238375007132991898007743302214215647485527985975634161998312532025786943267583965521567757527449772496458954957909599907476579488667003612341596080719789959875226096196791263645836300215753696988162068133033751603219699852393828787029244757271038388196195961786606514360909713923646246164502097544726622328475901030156688185071383527550817985090254382364847914026158659809918836624085379678353410886461868511159890355278854474557303216784964743596644127275307588615403489727393339434960603417660135363340546682099707697811891026926409238009386648240697064502183388941045572304438623675649659982171678166882366848136922094163015634732702109791068495648966414153296381356238998528453996536334123167693702455442659749904715267252564988120009913099962868572329089227995186155345202510419215849065284236097265076293248514649935183040070493474776459443396859072495674089067743443842405181386035257155462504243115192925115704536331033666838174824900020916394060024932489751794460033531719427121602138354896895008467940443809078176737747971130366772218050424251990298784042821842641115981899274051521012454318113920332864403499102700954893342287589551557849366266506989571601208866498430575387624216442932415102913031022820770581616533958813782600966738382504091140543469694481793957801209609762725477233714083873396055236360296708264823838503116245382726446089975927972040664636622909697952979709027651112158832345268277929592624791167391722717293304338678981047279105889877718636765117809662054246902199304579841112410541902520768248166349749356122009260830940434114115726840270514775588897131991466812076032850273417543625162969841953161485460822497202865864017926330623501977234644403080415861785464377907551791718834499855076618121649809688720635019773333788208027592816376933675894633997138810660105155890912238651282366579278552251531900360767181467725144277764319151167826707911250717157805275623586339290523322794009862950767549874183336187542127884100140484530863840381482306918718916310797346100293765107740178615801816666840736623077306347062169664809735182330140734734762033042221341663372238950808643658023638884732176836479332010570672068365894391288657254612121923823720417653555557387884589674147207423239240178106595709016106477110498006125658787783407360591338037050267265253410309530864068469027027083688114864120355507113822636690448878812606146263318928653695556234654620309766168289502786418304924455102011262737761237080738634631928076135484377469821152212194932391613991283662666867782973541809271732049879822406702239126037806942913898806604428374261200348618756736723488411694135303384229346543531089009855259299216665655332579140393220961280073914376478025807946053334237887633398046635717689491485669186707730114068314491942889096543828975395057577435013619756659768004853732309781427460741818536858375921421122609350918427652811646176102662235535953914517319723911813861157463797931258779367449320816974499204125697686355656382890959714201538648571278035482693584303514647566036319766906220425450520866193779337505280421787798176066869385361162812733102183125365611453039643379915769930687162495260538220679871899174317821966440998424236659255562699174536179291851691837694225001668678404590101703465180086330896518366361555701682065294506025315137728281071569111988043906699748853272545619765789100443745036796155969275227781846479632372986099896025055785004520541612584136691242271068410803974215058952132201647430704909660172664058473501175654796135303850050360421263520135022498609374690742732600208925460653887693429257515062709507030577233016293619291241807252607446002199153246600440021644105067859098348043498474979842971376301806790517286777159170363296885553819841681656566217212780179389799934791707908927976881287820161220623376251842646436581508728485951326120043414112646581157426020084795993330192467680872319002198300107555250759694595567220012247118652569819846049365779592299633725147235836884239899997010129046816082730756687081504222364570312066136128731563726103608026676737127953772694026679775479944573608985348343117942202227189273741604710019225024911518811290010125270903670369749478110838049455070655637518327154659400490875409955042820402616468217167741187723040197327029698505323518086473138356156350094306231501534431184589887684517876152544445499666668137390982786391153062605710210650723966712232001855850489776757602636866995727244861271061990601026276566702299361325805961136504136970598887999840712424505748005334401377798122538595831144749617262054022302560293109760614085003887354247319450416100596575785493472387641288571976740619396843682518621328024953536575841912593358560058969581506489367676322285437521387874794802098541438732850320191560722795286328594296894179729846678701027729306107223767868604105403337631831204805589527463509810653004234311785084874309269684860597544015109378706366345609190095602542580573799512404542924094655255441335445133913024317531126450889060425034181438441055113667572468341314363618588756441407375412169880761249670194855571778912217381374008950158206966261219918666821118863012978921968068881874268952390072631585813394915364176952834582198020594735926660543078352746894906746258236386158032340409904088514239812178501970537800277612245904010436982221709704558168907084539457527719268000026261674465560995428876873855162513079835672704764198473847883564753156512062938489076386333143599432549162322802798014240509192570597754609182294850381201894324272940709063869363435628377392200735859362896831487635450722644928893195481002105977610384418410162671183662217008689520793024475374646782750426472873289925939887101563544723694565361741511657519698665589907198864280592077895287083069619173091762071506744250799705990923249905050445133283643493118556015105811571204635163569597165369293015625645475487671300368247925626360898369177524591704357729487896552130388313969309780129855742933201390370555078233798842733532752210878273020742150512843620879113776625250492788900213557567033279778374549407985158104905869274673333706852153821043163847420233939122142258937343790582528520396346335006277829821864213471678397886399113292175933939419857489842853700387101760151314237190505440870222772998143550314228371133905285342623236226744199235662990184051980502639110643830385593071159120705267382048237024230787428035083865958150895760010997948761856843188192230455767801745249012429862511258420290744484044461325985565397624054152983951063782708221998585750486716586311999832204217286417010307170079433131861393732761609585603968516744191216497725294725801070712388110444542262823086483952953235562549274078711073334175696718086554507944419452149839080583832601954679853079337901915232684279744236429585706421578518247188132709736537752106697400273695593046833771718672059135423595605136656039671536448534917310206983007815554287213003023282857386928569810477237604935363789552106254785431996885066514699672357765982153373312731592987064756673813846029845678910065931766150946281032616656519859926952178196750637316377942906336480001768630227353235330341621137195597899557838022529878775624046532740994533237924485482427185361955413007022507435962266136395875164172652642671881708785348973192769001222170719638392517873729453184766794602993904038060960799187988160477272253929266810583983281815933187430152010809007576381126372263654311134061905093476231827444140123866657199828653947210118091355073166654165631864554161294265134857623843704484637171555915774466433927507277078400743569240105750031981206905703636956859278261768165686535993423113450647263277404325753879409323032564313702107390627530333248909260057455117123533536174396019164512663616698485465205672218202622084883720812638877104309384237302094832847108590224986926766975539577054250902360681750168080814153712642895640537286188979764455619778224299348518265707144017637249088028862979497168113923014886655449247951301215050191501233463746712268878737616883406368702806858236984238949562949253958247656979433513689748556506856152329191448330655130555637551887574535839108907151447326041696233905262312321116164941598769166059738495186453676144231647593803583090759669871842669010499831787915950776953757732543743314572554023760519853893537648073611267760134893482636586312721782675336571567070837763007070187615573064581849998164781786301147945888341295238971063275451408721499315151649355315235195888167488294869685403374946737705102267439654246286734897577027750527349835964818671394146688194918283984935216955183139056327636517851071607553221204459152075531385991583454367075553960268528391059008484473349751020698355871882798465992559839003116564607074706692391798009486239688611558127806182514378690006604220155292322020092845971096519497091633480932061765269916629205147364048165778530167722105135130366525874387572997787200884746769283741112930911990492196163093363160388996507651599101006128761905452190840996667388448314264436997892632355953622170967264201171309864829551231785283785710485627564825059224582278860041911474439138651846944130176944783049758904998169803983328168270004950334675891721948755277218943529306089024167948750624790293450980121134902542681451065881888332477759234485524809878986968969736824328980178881775636193676867074208448567594019154594143431026470590223366771220394941652403314332918257455726206688434535623664957285753953690629229273202447943526872772040812482677979129653893546255187432776984929156636787355533354304828127254199117243760355107342626742122412391793971441905252369155972943570404275566600363261190355165192921427047077834658469296273844988888880397312941725969240437684571750394937807058062259546074801788338869905132378711105872563281848678530826668554668072181093365514573642988947004164262089903232522346412593328331618274999982721754118997647567714351409491478893816684306801906025090621527172458423152900340572478098254657172386894088573944178151451465267227996109481550437569656281204285020153042077119079223481577566431360288479306679469560997887304928351585374524818791973157299195415583763241691651830508525161494752764140578838256937856846704157745727280848579125903913061779631189487669730661319659063852678640334189118679210440645075781894332300205942812449968827273790424863351376115578757391623962428219577036445587079617353340856082734264214114197304501560649045150865272589514115023022666516956462510107673039009491408489747970320202036094028366597418738519899366597357558297205979751665004122707772250351494488586954984292119737942847331687190638105762465197819894970821027896181465635535209784473347554853101328534543976831739058119304329577569301859236597998979996558009440097660653547291067010990046813736830639584806159323057965203657187646225807629387108860792325758742074637774623828491186544609716321748502475069335580020468437002519403205715552355912761678668060767111912771864565968258012002366942327131060448405482653898034273984556901995300110949442341291547027933739940095803816582560349818613477688106275224180956484536880314165493585573755128039876748297412166599252207825323107400298597240409531727222843966492674927965814066823726237370580294862997475602420482893717304984690132546249261973704485702746084729086018375384285100329941301516126394241412526474310510050615493019849175929859644507724786401359766836714299463017035181571252935617892433411868426692994937025071842992027339060386014286000226793859581976256277835548675439922909075965472029215250470145211852266561012217475890658982052678833967136192579783867208896746880194254322496653253433832536200059889278568188519412269018822059323453162079760934854597700721524505538460873915179063472368621456464305629912258158980108727572276429815649941205242569746024131122511755136589863225080674275941178813132054659975025171127576805824411934835104246513883401958947944358675112139274996452439160539875987164808855500124385408997682353351744208107422252198419313720946250888459188190808758587770345113294646304390065760294675598262437447980248217620706948750046856179383678882702861726520443917094574036628631088858032879421175423406308224638355693981090359373735303505708776801731967248526706318354687258034058971572036575333009575784759538070340814881494388594269429909981454852568017925729660082520129445351118768956497929349029065812982990917074662161116268588598188822342882865527926558174986006152444304858740829227952308731814006046495405445357355115686373777332194481257421202842993819990061767379910045569775909052317885886464720933832689553552207895048932590044729560576455644887886177877883422148805590307002665840846383937383061831144000626221807740993839057755974387828220184217306239281821303070393720575147580174208410582218686230341728644730220242064757169479370648904716263843108681306549724600852333921911075165523520037233946065414913678088536008842380158346231804830082036429524145379121981878988284724264273598031074468826884467469473731663301957625222573234292027806229883137374211382007802312262520662487116318042134864549825286092144963986088203110719194957089948676901715082733186867703356504425495124834964952963214332451004444523667456394307846333847972182050112852768779567704672593752408088496517367123604441852277857362772881238217178919688723152137468809197259349912034566867501041039559911773763209085494979850762820490185322951906647946343297606321221024079918715533013350186165514950711553617249522751421432974243551734849776162884128283721170259814777569275891931717666240066046958909079094929912328803926208144224679589406265161575861129705931108662875797622602835318501779127761852361526856299953873053401087976047969016920356414992768987951245343469004554962270255256660270349263243606797955647113807508765885903694357986381590856986506639668073086574810253175536309065191027820605755391040557332778695715390728264918055632036157140706095591659715605020685185980420634190405952846282688684079035109895162927599879498532789861140373318776443723749520662661010113558745192011198495278769927188116629567950587825118300717924628123940488031308836300872192078104440998844470484493536339524867286286402253046231234739508646570393560477701505913712692634844706006327558368050629560605836743196574731477730762051954591746515483218579552645649775621691830338229344569717584536514394610130268577216174169274246549825110757003735643532925509905074668618714275259484707660583907537010480751432419630898060188007021086233844789110821311559482481109323076573393784075052761866850589931840391698576935262080098201939221934141966944775520088087856219116232228389739530868166594366691256046662299947883763365905557097692350169667118570303521982388052004956175957872407051622308513231066205472798524936385921107976688555047889148080791070267232238162302907276366466016075824362249055485416931980743289565019284864521367748263213727731316352179952382635234252250876164777357397482058201508573662670128446613698093244037010855610812792099539025701951038820164739310981245864266606672698753406317283591620039810249724548444974068267297739415160008861365836506829227509508441309246305080022965285480890469970337632995683245968763024280195073053425629014362792311412472716489319332589124671032421420760526011840396408712908088563366941097386256877356409024175790558603500806918498459185922431834238286661984880006452573363819567746415401142946422597916421776217648339373222455672954536554936221000383354555380480508427565193894784198069343200898568733266591605178789505069603649827634442409890530038028702167390325905846602254325664045348402636219683681278012022141383057987037692938092097083372953101919696002281748332494455457722230342046972640281431079111944001188964895056934148704449616814607774011128807471926424271357798367067631619168167065443300309146572243798242804802050418110730958650535434038543616032771059666209871908688623844196949177371097481138064364528780774855591050045460062758184642778225418932903333955085797827369095677652441654030334393730949138008508314308427142605992604435283870309416527872430873406657583988932723412105297413652271707961173395725974203480797048656806901374923162936525827556680857847336252457870882926539328186336213907553908799779935631289973799844202083412913619840739759248737237453870575972510738323741544156212557068428344487107399772473591485389028737155335872824230154919273617127035032071487810032621692591248543238408187850730113109129464049293654645274565308386301367763035468467168874228778276443614084248825264975308683359384882257566249990621914435822508099805803460177711669315181370259221091634950328644551838851923842682823088587570232363485272763701010340188026927490775667017731148555149126297736865058223640540062888996788844244628959234448722794638299843534833306910433902336711819481337306460090346897800903466338489250027469515223108058979379999491351358235803395345631233555186113432836959593087500296238727252986961203148757482226731037291792251751329319723694484515332819924624066527483890074843204345503376427248826028217952593163045062846842922250920314112204792897677976959168877600935759380869204578621183071313786334817338015644850379222648049794569331648020811614381006892038793565890760045462618604321675049317630865798196232712183344753490443420306172729979356779282561518841586237005090279912178570010424753205928825064985967250926251810443164772712921601761863635800257888343187602305995772811097528971507854772486394003658751713363198261931676700635487094541832140575757152718765753790031098447846036077274414659624882640079309232145334872817956543459475104143088081583657904761544859366504164138393067625835188588937319160636522623406800622007768234984036460866093593319907061130511284328111221573345655351814747412629653442697982752105246374209784225303342351602417846811216459530278340926041893511963298814407389796920109651019279090874101412844389444381730544696495278153360574360178471344961872174638889371954740047274109774828393833489551627451233367156162274403286243763146774961849487702376864573124228891941071062653077709843076063469700956596534431320010803701714001827920503689329834541748621662569962985761199607884565350925116383433601331019441972615997540151084218000812853822931561155304082280519976421118974622727901394753965052899755045315431651149699331705654996011238835333425928326403565989821271417838448007700199485552453905276642916426869375762112801823570913114460811054482929523149512592029744604638142957281059457790327448419826775028902871796088320838091844468521041414146427691344181405884812436905075618210322610393650347366357521061477509640200243769145495635814892332825229925682889194614831542301978102821688142668265349329242075233081283817132752120358644377713005216093767780332692773347508024799960946635960249842131307706986763710479869203320429575729518412806370159190642780104438522756587201510941228601207536987027237626172748652524521071405476063932794046194966167831490043569720630827075749526004974543964702847135193027296385573815506591057469075202528427703639164759895479206085219913018241881794936245097583054936867010752225673831980787506029707218942759862690374350083733192804292045851215604673002267437284779422705546877908585877604371345263768929328221378588034621291191345345947676348280833349916854027593222213818730105056751103160686281549628190882569632077650972409775949658471650152262829516917911217319698010283089807244670127193119758304495801228643678151178036115092827472219625788264641492548462890203132364896329497051611356671802572996877158114415357559687346750329554635120053833332014220005043614018921086081901956643027881667062182696213256871122042333145899672101112128324966810869257863927501450175716349108482438529284580845491487449662046723682753990323238994915696079247810063765726767207785921746685677396697830014047433929332656526833516942674521374077219762068907179007517340692144526561097591732334690020096792482827039985948926125618902571731299186706694630024231659679751680867904186160608308056544513581011608886259356560890778397303496397852000905551856331245575663935745358827726033291386694050742107578502708941941972000644367839494750089131497204549734297965784136745268090901382431428599636067468948145412236862614151417748193175330448752230325412519183833045792505312356205626387721837172314444900760038335841031211261456566692730332611302150116744162958378247685022594882170201898016642771382354338881004508503206022421901070843538424018960876643554503904683243665077821488310241910204862279503355761151591878646335047809936285331408851322301187216348617330253957587834959388302668224373763941802689137362085465321486617139694202140381566489187976528640511562032663637793200633524178371906410553762259060991340827786877389780085645186355891563187859699293848903991957013305268536950487692921563624886070698374514192867311025146705584481452324217718722396408338827680409823659311130040071361387029959558376526147490820180932779890014381214005380635731713981541819620789971481318695486576422566713453860433938092415642084199143230150853685168445192880937609578835649093971845973360592218970550003254762980789182014448938242488730384436234331937561897079408890576002066271403754927895952455369062445022166095266886414367518734685085367970217713656933468314298369005342212212517957628054298493036955494015052317520211276270676079823160253138524171592323325535755954476437427078237301664273382638719737688299665374381875108600624861608007314630512047629885278364675204375249450037516710167014504112555827346904266129689812488809982063090650340426995273247193389621095506921613279209237632088809765114909483522740428099914062257570692421284964927298207626977742276567704909521340221308647908510662449449463487196986785017329621724308885288704632151209353467242889431085625691671822039988985714612796586934871050633816367681463168391513121008869281197173064190565600797254724826892189568698560052358339418826644474222275508542570360180976912506976412805714644361833138318748917326468810169059837894060663091964138722832083362705159839236689109626690590700013716114479678181941824594104908452076506389453186401801472692557227057561675150353211891507553146993476364794398301187893951296186471790163600722316517887103295922597968742714712673508322770246116581052978062066017116374723190143397345157431514261023820587224058110890580488705330556670283820150644485459259549424217993104744006700983007583156057174279433318448158427286861513353846618341373626401854531506721552679370607311814322927543178408375523570995635517701191359177660124019543963641327079805700266412495337769802118939878182811255362545755756644367018690856038052595580149748423671306657203783366246366939594164749947904772590978029961572295346374161348682623930394762982895482033265569532607896074295527379807307827929989944140477183096062504406874163180675186415558146765906291094209822477493911165097111616878598675925227901788151835094140232625465962317213634108726835828980618624055616978977396794699628764660714567996799489950189428861508442520973906579027417172439845707080723034428444992284786548248581432904760212612456555536604256350636715464054166855791452393228825845247977959712665625086603958910792843576487680919745927377591619047782994275716395199452846260457633925550954512649792580063224270066638047496016967520175777181453133517369743899281104333266367066307620251091459182228178627589738376945814446967156806194981158745403218442186049889679314299981084583249700168561871940863174680070936887938896157512620133024680221085517313240693210795134381835312520030133509052949145850792432932125986340907142633050369571602370341475598656986393060784843770228555627787689464353110993088693449821008808230972394561490678391545654588465774598877042077419777388350694788497406293923711749952240035039969945308709693033118899606833971300596872090725192189578654335721009915507235558261028805606654705711445915626980959750053037960468987477121786267176190678258990313033855726340984465853549645290542886436812139745452364535819703837627712644636785450233152465969452859004165037483494905729239644191675223856051110637096128529665787231615460114381329296629368803767677309602538841031035051082052063240759566579200916427981491019349490771929316321049947266676881046957987949214732920309020740147910816821277628725704680035631760997947767584189850842121117920635684925682761588892518580648217168416232755335885129515157832780341268905035583236883453846598772792620696078724435050742201333188781588861979604308016405838464067988905853874629781139312366878275307825330694657123637548551935692940883464582891457794722489868644715815016917976623637753240345831936194599014088362208409725846510844065268444461201059943194591594551369489486159913644826623993362532429639822057730474733515614850070645915698715562180156129832817835910292402748496996282283229525799271759649815199483387745914938039001148059664265099884267876726159898073547685020640904461008145876920203459870799070080088006741340878380972472129908945225112873209157949273248503038635039324920731621070708517189765793299521218139377446103717345594721186922081148559988474861107606579172134682948152031990985293039949169614667538582736913655324046512088779518041875279261943548176601318049962588830046620625658478878713949281828662945683203158002322902990810402623783545719088271994555050358230566570382482349523314463674064703054366578777129657156607907709114582477051498762194973502605739449978767277597713274680211361454554511947950377290860166855141426171040107744658572463847229092777186815279659140302754731438039076598342880181783825450463002749483616437175057480983265614664211496006469369579762958663176128325184396374170227015465983248701902437209908944617604931457683989683823989735714105239094904385517036951101593849087980274728154862661904503812196884501989025433930909596960212290344105820132854644121367695199579221297367033032561351336656125316910209196031739275196385061388739177459465904421243842900524163898965968151586230347766437331518486527040181284945266634767615279493141642876750744177565496267837984135764205365166247296734298653746182519776782378256156809147999233745619156525144888770541178917769399854542233472447124988718780132113155225837423981620268402507102064783254484012751098910203887398014742176405037480487378621022113307484966594439790189771492705885843207659923676123931012663825467529251873813067205438602326466180824591310438168350019920133810620433796007454809762065357456469040956868220152051082829880404070016367228022135059289780770186482863755844045022094287954346191917746136282517992667389370083579335031301543742750238523717553689203906762188492847996096006212175536312756731686288145966015909458235600416950911283191737112318053933532345727603835792774662313737326945270816811279308638403137605085296582659411328849685510636480487635548347490363535459721304854564619931533311671859486133301091329597214229643623773218061988095600906341866147208109819496436101322020277484448626537192778205625592651606329320996012194324816204935074629715563865856497295649737227243572125230185463961613437146588711938186376572494350630374744830435790592966609153786799526321968501757532066920332066069735921875226909158462548790545616008926357172593654482213341628631506931655293985196831579661314515098678415821189248865357792487753618730687160716534443006690971452643452020377395327533166124447304264735014703447296397407599678049521363721360194785441997679143787652834453190228033969098775141457857966076293361274956244944964522345261778116856712457405011359565967399870576037798709494955709850708061735257741012977611154143334268837384056834313276490435181082823345942882394712404516923779832318986484673995208671862893038425703041835660093506259792767369276164103859460855763479287575240007221900880555385427054499569897415254645869757221425290927828572767634067364257178382922798070051450063824627451221360378095978970310892977337010419998104039113248511864145336962521185576097930464156169409100157864210901953877955289036418629439765133359831511649942426464170640644424415470385238044777699491143136971009777964099438840476601192798816230797172837114033975566884323401164569559196089079056988595419072271534677176307146804837272280543094161475258537698466922851019974145810526602587026732806686152076710482224759030099246086614473658033607872970463328170632469653983083370279650709215869605436694241124148832629304410306584892125425356172322823381578506994484580303669182080258495117272120183389052109769876019799325424043860672370048272267235602889730421785032851474584456565454286278540323851792191305213158301600390196360850002618429057126296074046653531071433186040329811004533089461279957355714339343494015964434009896405277925004082318806860413130252740778352943831210120671378705449888244707794049598836853671363371419260032167198707363326346531407446258348490676516244814961019945232583952637244751892455718986645040430814681355955349709476370243112448001067361419563585017315986371425100977723555169052557257249908490031336207664255303456755183299217695232039884074516911571159148137693880200705342808342682186532477395706476870801339166095256663207585355445254919064910525403192215215357144535238337859278096113298315433756937577218291415587053678167539152293942590637704849657727025171180773557124324150984683217908922648704690557872137905067082324665498681212473913737535043547559413126986227177020710722815988602816207778947985363504836934560240050928125115168654803409235928464213322119080412019590152569708398510816876573120182767044514301136445080052521830092309173509506991063295305716501321983544221653430090567033018016257872128228161262034174389866967946569428105631911296097533273569996790098137538944315268194875312691018772493386508865726986192650273255778620689013019682942680819937995399858079461467849418161275337129777269962601691668777478773309137663012094372390271121960658501397465691132032284689679736752029171714555293790017097358922196289332770912336248432494511613888866123126988818833741715630567710875449558087850018503364059596619098198909419035027424983840980914085740731881025001356949421513056828059147344015071065300271662568076999846029988525918559977793829805718740323608830315933807071754945324630867837129026477730625222725202381413358215269102288595966208742976536055231309231228875368382013050937818994653393710555916419826077689107202557282526715423976740349739238650104974570211842213521435295752783853511674551512488495328212726389042507215474138756689753343261380467463269571854591176861368735138477571914273232771893211006407477218561144616625790743200533573844681816276478024030843807381372308252811981663772784079142067748876824664999383617481729485313518552537012132560211354961049737198084489803475933232497980312836353000236431002045175103456774629736059762740204731218265785861236964135143759534166584377576036350620169334229327128262906139528629490640373715303626155143125815754708027022212467175908593937495527112150432560673609099779212033531221051539289139314035171778204528064851035694650769916322387871465460409745341651433184031061780183242255473025564752970923064742558907062250581114467768039977294080380315883183873239535093711307435788436497578425526104459998585070842008481894408949597798792190416016563820789978148688500841318287862365626701093314591206199601000194657339297833209244419350424377367400316573546534870238305746698471363862858345895646631344862105970584633448507557542609114109057772350239655918407092440148871914177754708013980993719006890904132757158946417156232936645788223300004574279025020708882985729528901807371022295117939409380522203803432659803663525378639478764952521132749453064024982868720511362101409955994050601036182700479756411682466749687395038008330922699692594123072939025681442431773657828289634143724958887360452855440522128900023941705258174089412549569226751125625348793810519920784668702582743852052610113105817900572229435123627316157939902239788729632886770909644004772091101834504913318809584624262451525819245813891825078235367287095099651411921385966215451078202349026925385980093951318828043646758781575721648954550596817567822924961210274270485410556651663857960121507472812085904773007702568512004760645017913100842367663957949832304210215583805557379472838785985133104815447076494363286567698832020491578079820806826018918104099118213294182244739549673240491773378199781557729513055747859085421430924991871160156436652981734346702190638104059230006327292375484440507504671218397537702434622041167772778994651257077766270325157658515833060843444059216590998976470404104196672816731867799257017526522997810974594671027723334463342089237040375091668629693339650883754044225118621744207194966006832195244260121244716523028697917047778589740255319441048398812534106075705191435150399938585272965501293626799678598480625799165941750743705153262626528473008768551066160171975658125684464265189481621227053363529916917327006519672204277272236376448761377733625587671845348652740585362238482411229203080629257059645857906793408422263936035072309942990056439319815542625538162956004842016269809667282274035036423187855004342375563499538272132317330100414911643099141186376514524877648208323363989908022296707416479868222608522997414294558160972610440266968202539987672044508280483384625776926675400491465714231484195553923920266090965395883718646382421003870216347978266838354770586677732868699970057117540653748671829930375608198050789749183978442003814348264962988596186960813253427061449131220582473984278104008370788519034469763152199877030465989682373930134562862501348657439171568934041138476174095598296759873705654291560373441719096195176847653744203004290217002034269221972926484353553032401006970939607001548867815335330668254181902127171690452624240455409190830222609026826686742705604767030134974384143489518571058505220555341909734937345561887524098488769094107400182478204611029664011047001116790140818467629045950938956023171462585985336138408700743631025899489423810236575787348572145410544679821087047996425094795911921042654732582850053398318221763299640508890681922335920290173887384742961864761216818087855073674819446440658089611049092128076214582612744572291927484440086871193534369874309151933772199717702435998393003815994021795671891913587070581217842560854716699439812460397132234005820214060345599764797839101549738423707156282756090620049855911492033005114232276348609344195951268762715284782259376396195308914579827982064830384048063019243551619747132658962836246823668533600789713272744518019207080295084860818871213244334077780507090925580099950623562274081261758739161848278445732080503707675279833186968624214186475052427349158556487180978517041312975306288564186881490607368394449102920936898477265526833917704652030166635337332094320500292644318598386152959067599104984228593500499545003724115495216963335912335306548051644357537611809680133890252807108279705953616462859487028144276811785853807762007095983215409848426834536812204191687741850739782773144944233639886477334756611651275844553390305335303981431483400704262732672172227133423821935349603963863926520548360926728714168590183500861686162286588056230177262601994879488872311121083434168172283076459046759459350961368913106903291136166845488659858306139332163224419610668794549188848748835886100552163341853739821795905821868281957574546595151445482579740435551253989087311764989606980345000967459223181122090626073832986028520244336831213384130696119356874659216553730253057188770710890269417632155634246810308855844371692615724025720316280417165246722772507898763561527665147974612624494451077080200528257555676864638579386013790499602868271580961065892251731724792502282821477598545840621654819915379164608430801752208866966713279140611474876645002217757461008784466792760138093080517788207345654576686530801236080825656102168441983122430669019935982254589187012867994146864193738144686951362379773604510626691120270457715613880083548036949517201206975879454442052812388320078965363110022402262553948303303651995563846035151019493053744582992219745206699667103209904426665791092735102977535304759673641737338748788381927386781461119744170865861995626817907627757274228746128117987255921522197183693222863785556686196894810033975242130732427039418414432238707212786349094762295664632488050893970882341882531977022932812270009561685325782069107902247919524615922542095986843550717475980860885074069352412264298809715241608268190332300073321792084796768957103928051040139109380402709621542940545181426033990434806500652789057832523274559352331360061163133134445308216613593309934040021755997473865340376605977809176494379874863605356606793263987467938855098513972724845276339222202064341317497393641236979833495995960307849393855585514380374271440841227752542872191655440137468384404906619346445295347429899191057965357254855020005691977717994521896241165487997458629554502485417986775577692517804039978906790940790598917219114723167177059482212095230146907470458585462355400621234003965023210057201319647325183422501707807891383589606580379940557788355316788662078612438629481824530874097404985974373507585924091793946812256419350401656558723081361609181295998312633699174900624851217100458104443491902830510142238324803211893162907547102490375591999865740205670686836106739206481049187291817310576380268670692130706340412300890228619368165202897942933689863192497310244287623323660713049607982108164581776457206866479886397629192633417492104501668885754667622291929854000847662112024724395023509821919691329456300577664804310490624685426991114187026954040468055964262130981691360832786032253863147530284073208593247561788963117489715215369750514950608162414589630325853602781487079884546384381872020669152656881870993866828905500789276596242887945680235569176267327219791259986706783744907185127969275400866055338597505424372477748048526585726409396960001661793802117728034019957791354124581913828203442669752697782553637951725020770084516004811796022209558434127080934343882168900312710811794319192307314339536933243626374249110480462915890973781460410163475810996735778090937680461538153931764290630848047969446311064899655485176690758986322236867376036751917387468350693298932218159212318940142547492895490481471566108305226071013171111293620470928873649997321966094688643700781644671452391289872106691134813720268423958841834974027691753096174009069493155326649408475078726633712116103890777005114027532792562761725621464387628564667024177489062747999106368860287760542564273583378108327572444848453039751416227256234327833031637614133137260745943440969771216271268602421630885136473808008567704322573187970984672398905838123986399839600710832957834101206848151832016564210996128509802629553176900518065458708028381298458868976081684622135659968781625298126733223031601506397989037874803848922866402895327555220387615443842419186938539108608764804550909943977585520324995597007061279831435609066504331142476309273392971241945387472315954918852387697684900218289939026861138746520363151553160668284693911738476841330000829776653829251496847503938143779105741928810056535841531815694949974418565241132748855699345328374737884511576008404678603885776908117597841405190367051065134241137246154921236756314941174278424342360059670888734630898419861153650116398150735960486723046737152684128638071555285181075545798111276192138709266080200447059202110945359139906385524396413926216215075688428837074358377861928679211754914811201520574437203959136839975478135453902981065925521867950071970417554482810923749873050709594369375305899601086442528919331610352313196913152241283449563933512404172392936379052141376381274361555252656313793042551650450542966155397386340339258727489124138209734630662867255197898352589544412717850902728283605366661501517258668252313345396660077029739136240713780590404878088378955382788208447167415888119404604678081520504902136288673330606460657911185154874133506755140061117811841338324335778100170606193959623248027237971858542592074505790798748164270586856300008177379635801826215470973024939080616348297704266655795854650523062480872315842466379326454678047129872348504774574537624116404086245738858947906469824946943899221017029952532564150696175342505983540512978317402107710753884011044077392482116632011869284472649475935063537292638815124983192364217451650619891080720768804430424769569633391431452958005560892465589072582872847089403753460761263994514389129549811267811673129776475098985608824610995566054587900251820342665386236287273752768377646554733453807062087367558000422099270040457624555077106172532971308809971236630781591850823719360655410177903122722178450604479396476920537559258757774540935627736889729190881633215508942989991458334487182513702456845820280353505891057143116287233341794665156656891056388893068335994403177283678945127968580078389202150321331976962901824979293167973264031152551918812617765415030965349233793746961656785894411905588187137384810034585795927654770081998230942402633379864180889443504749635169364364010341379482141211505790858850627443604174662546452744666997057222181818756073154863190814316675537512707565914534852796354662052667715740252348477126546551664022803330990564037618667149949956365180461268209370745377553853623161717100655195841254463365128373045448441460880282095300354733117098215271460140487984212315855890077002312919162227301993960360088402343523510522723114793474616618742491178621002013103946599730538050894706089755364037546171110749521091957051533908674397523047423905679225589931234558960303341313050148557408191268298022857548497617611940392282606775117348218867107683971124623822128843535176294515804269919597901214028284468319941777577544800350507117947567292637499780625228989956267259403322592796561458104051757389337674652428223370681551778349859818145661434177278835720635531751291154154014888502902161318705134927558429416841150808518118327617401557306547359543348463760381024859073318136250996250979469574020105741204461098113003288276636598422629367708024321179296492871957407762545880990938771427854222516206545448700941303561318366228882495268194348482151824384640106593848050738478401673192608308466349025246724652775458849281111023032598494594123464759856611869777460673249595795489408975583852841429142275802526218950596031528686055632009368144754867387217235710317511377501454625933697306977902332243953087153549112013438927462518798837138462342392661054437790250439933554824948644788057023506228046837339530600865594241164534604835350979958919554842271532350999970240228155034626654193292280747610837329005130219809989049075001403068186257710144431084395986696624186900135367915386272625383353865899051552312127243971182910985584816324461387910706730511397934898795695789786691331989264632963579762137171120462457532172900064338031178221657626441783579516420679208704310426892757746118809032657694267104918360437083004805252277613034450000153724657549140188955282069749824440301371563833540813969066420757230933267863109418371418791129515966081719574659650791289213293765035301093943717477650596822584079071207016016586766396094948696881578880492905774584086520945179534508055156744305892607283333262938364667341888682239524062314524422269956496479053997772655868973826354664431736647642297808946202505603251867031257635527504017028920725535422508745972108441129888512956907367599918374833212892606723988626056249896299672523973171627561344496896032275167252659559208265964808115915546184626640758042648547074264672949274100857110555951858374103120128922778406630935384853940590935478696397654269789031967843792077711264662170484129972120580226372361296254373609413084790607456444591958468501653183471252636640111241284963138181686520128818045792858720742776135241492841509152271474719903107983200528469240675214043885782624312948150266864819161176733143214056969307956948897678927071681465058692674339074206639980964980382452501901995573454282648782437476284901087501657476048305381400077260138901206898249488614415548733046553869366737990425577552966473818765076470781005060895154500373963697909644125075334806632074717723330421511738216238255949702660678024514063494503108147868115679752665105017288877006877704945960663014142184581751797912505900529258621386016374430954446966653561569512275361301096174139105799077941984521306907856018302318088784663555263651998712449864957913555380759016237271822849353691047697327887987528243184138993331316876603291781549998862459547345810476133339991883400822986518137307753210788600830647323211200027131961687414024223793740771601663172753591401685584658328893070298032968491686023889426366791931138189594347726349755236574815256726626834653779338181341926345282978089093505787327756678150610037198865687005986945896632885277388678074940314842433913051597971245194798458768628415202982744739345126706378971932137832334785444968007821228837165735082575257336444579575043731359123798154315608922056876038874721912268662175774474268588008167127550666139687524458642571017551727793554704510703361801336604228075354171398271025215856256433138954003707454216054639206094132281195533389663756179804352455767688376824679257936035226554411482490065881676826988104721100911594744781680181903985739667663255916562137786119155677680163579274521365797520216809439997869950287369918515032884568580515664979070927520603323034983625485186398088855230164018679156490285190322165394544640220739581992631986650226398789909901516772812653097757720625152032928971946730640085532625901213508792725621772748047844977538623839061745887840387610250013847057941022605818830115070692438512215980173336068782499279775375850735283900257454643257315331684400594025972197731495482278284345812926847634589827895911564604004188388627681849102104090530017453034229869524064932260417632995805872339778089863038783020617974232217503617644883559809684446292915051904327182324380965946429635784627757336428187634797883575851480565227110314190515883040999459357120957991230715916813208579356384055830698332134710265985573585481748421519758174848892375904449925195626260923025017525916975026090875369014334570734713670528139932615235278699545116762283611639954142385689593586578765065894672687847208338776219234539906523885072224207921951117223293376062403502598839764299650890396771150670559631057574693373105136687749713875155050245682631505312266100381911743968258503291471288505124941522014962921514086341855858231237540067444760062191001450716807211640287919972227858343225368014304905517452384211051204979563231083313515935145273556396627658577837933997883784577520622281989110140231815393569370015708283053295916944303327343416482262605266779741606900671272476354852319821760009444717773316132886252306981246532911769114372481443427528200442699185450951116339332817192622301005151348751900850638539840788832177184489942917890952851772769256164395446177407025599265531455200904569078210764652750970676233230671995441106774711045224525287683017422510668605863115742890981734312645947515022608618113688720375591764984591428420909864394837698298897250038501444830640582446767035415849306187243909261241963794940637408893272436279016343851047271960865953167800794100308223342191330200804902101490645271506268843219526010909061173687237838063245067715043070123645333430824823785387056189633575689788798118221083796397796172293454114328900993020691442406380426388701743769732878967322452090725891990534470773467250921553720701505371948474731094593732476171540147258876327873247321459211763892768872653442652806346052261527926504420739376697967035080669396119901588956431484366456221081582217608865251022540067861966747831215190010508786424664361424449454489675071921809703442395937774443423830184012552724709616352797299190036091214426759366888305559736728582927637740880738702707403790101293627492518069960768431835421945257833516124371268794647802194632995341120813363340817681249424376439986074403692285227389003105169869845656185192987524752962825609485793804555930347297925679175101539284654265529255622618359301097013029937208018602989886538185920355367349983297561947837669924852365370023675913963178170880150971719274886200419102915052437768256705281679059194965564341318030728731416080411091900136518350960456808105937793606665849211681867114004805642944611653668472349429104810084755314505074089243838732063710566849107052418752050870110507341343310739145762444603011698664180991159892889675423008352669449768812304005094507163378252478045058615935765118819844355579888617192993441882894485213958534943085330232312978191550388685951420202493491295333404714861049471722724736244046094260139877043434372640286863615063961120605745419929853232612097413470835881234796285067041884426005939969062425712335365432563596427404877448847317341405701597598580425455273626341752920586098388034813403638354367568665579726795194037688604626139794156064427357039805430148821412788082945106718705966872791714108752497684922255584848255116268682946162353783998672102789501337845344521968310442604574892877699830654729908938536624337258524808276377588636597428955777463120101393909782842260246662179778299025591548832122460393225849215466893211005914356576194741131215081509980620273122275982268725190625372896788457491142923909071962923486310865493953252242192069283347544303760751789432434985289990762412580466167084960639692637480428218483279059723415352948559470971950243275508925990914804982016115789762106408892750183701274921562230648617604376012297602717221448871920774795461647439347023786812257160272589623607094504567974161742004695486100018236559923315713159423985181126645088220813139319224484587685507046108475008630712215082730708732378792276826986496329136035323108783544249401649331378063966679883805301258642024884723567890815319489616031723946194540126514892912293770574178279209325049162922322013935020545802685720484757508428226834436210260922101692470603256098335877148415671959787659975837630087792025422849523757594901606766110161640357039603945610816263741066664540846639481167937432777690691355535760655106548761005368873747600466043682359577852285141081186308331047238262231127057638487160895649197996773602864368718674076538327288912930351894222750558435010324944999774873161926046470056919551055225549885348752914312906566514189524090889375041051382555826797469281842917135531296942392512273946586147596621442760832370359640358688884500288867998830466375000297067763994224404237660617909933164548781203131811881999573011960895561960890612788918596431819438899956734241537305520685461650750869519592435556096823492080860118218242270167217048512658488248529449294859698812750010004957164133201054784066245093055691191202891269625094786928240947663580786069597183913062009205307081215182562829538077557143111227932926646315107635554858219042526076949461051612954823018050971723927736770510602398382014008224827827105547097584401931125487055730664427258707052244905400330133109842390314310916686500408988204956364381464050284159610883805776122906423290593099359183499793845663623125023407948557769612805943034271654153974005214659509223986327825875902764966715606420701487301438404505666212492398302219587721942506498860502494699208058326910320089251335459797141176881153022588240225312104247090430987962142227914211628145658994610771525111228926275075561476230202583190857425844713965039687350601365257717710420868310721124913866204150606951678540291539120847227122241926394769393404560362982182162436539031726522320458004732502443547721580851466552880159647640583260769275517767516615753495608571691150984679151623413665912926470340022344910047460447177765811873931323345067783187143716558386453322494275090793152328483090672530244444776745056507289460382979941481046160533528772041667008400679507774657956700665920232176194966272774765278939892801334060225893263180064196657446703066833322993667419871621457138100894535328415813117727419523751774900116714919269047799087657015861186419361432850997596091174503759911664208468843110281097506126354174406426521079591503793287077289555514733516136391382814781698914466573149167837549681332701720643416927724198651364339866995189410941224856583966281447646050403940591728060995483538863013976340064609943020015909978389746991020979125396461061002835919541246685401139619306106680365026152082995502491232961472532994092449391616577122806189036792692198102651073412806773070293016160298972990066058410059986987981778784459533016767208969505185545711334837741666148105852309325780530835643639454574349660396131140847196730273546997518977359751132966078479872780471971587096508547963699375808015503566218558587737153401430472634650331625081805830761913857237493449130508941402936333033082596694516788266463319989115411051335862012052991773959680943019431110326762881761580050127141195448591313474906284281663715703365282207562225532903243904324227229134550677221656321329873275281545170146627769449341248935423640705426391534758266750415723367528932880882561114194113896841387004336250986206553066771870887400300970830912941471004951392988486327240845580442033770214591227457842120351346299938898669488643714223947130165842260800884378818774464026793246381700392196335545825033983489300647313561402634163104981293229493657295387449104625579644126434618357193946137355153377361985563462430755276584047922660012477359714812330684765858620152688039550877685559230585746017148388726035435689714838082744135015093603940354676360219766305587153651439130681544361466011708889637760285831559024208884207756196144677629142089697639898522974535845359207857225753353142287903586553273858380520724989326013754060591727031256592154718903074505777698563153303808598334871130484522909897247614865499568118535460465224455533128195327377760523738050332808640906399017290956450317117446489921728548534230942572402707517893666503005291435519455685033272487717851198963786780653604454880031415415084743092647165309803264661487007025320005406500621131406733224832757580703618664693622983684141219679221402222535511957918384653417363577312581521366928994860439137241588428934993817608000242564987749741541695023352626014141275673061705481250249437864666400570577532673553633347239118441723606410322769366993732393415375788406282665578799877115413257922495581770953811883536047762598980748287514207369833827209808414614931531000466564420956938497274254253241481473735735877249106230573904731793679745828561649614410843492179009274362003823604153259160002720790610610912089482181450517301361459119172578787743618412989978495438669916428537316468619072250700899827493902090126348570609353352615412479100393533378266460641160299847354769919436331000267202696638363802545714868082584312985669601379375813526914424016444547399432923018022318261371087258756659670744116865163643866517932060361314290145507086625458704939165398802938934005210247446289657567910154137287722581011302193250282265052316023017147383405814920811644164386150485366048330984120285565937413169528035127880501334421618509763741205798809233638119453014995244327297448647297814241309424369657655607653275430947757852383887009281214454433690246366506967601743795543986677931511819243151959179361606959719392829916232773273197587900716241303284919791016108974971927972476861772376042233298062302149033408575815976925776409642540118120772561088127922694316094136539068816360529924540181703848245353843703987020008546776698714425943268943335990091164099401159451324930580296073807503621540727019717583583368229584206031343860380104068546681527419653855755589912540425274375137961719774971375968414277181325702184819619811705475661711678471775695342588617352442590974573530816303560145986822266639507810398593118515475005726384169325239187504385999880961626594192086051287653578890201549179018757692787574829878186793361696790602755978866463243574569504052521374141400215858739345259168669168516806743958375797493874719038714453132852518134476500255035868316324385150876937765702853309604495411471924587938019253237369548435846294833540462885280821828433324118132688636927500841233011365075238526053852502536024742225845333757847209123629941538143915837115052165832094554127222979828587463202226789645955810158864808919571989006641677317417125690366574122792064530425584532991840959538389209342475525929774671707123418818066416314187650784955206919150176838666212046026537510044478369878788031081275945631654302458289451837384097875600740778396553577813072022482393009407698881330981987564321163110786175899250373296055256206858100257512523862504117704777995134331838947830929323818481200143559212917630277501218970021511626385417350864806346731553213199811364733351270689256477258419526855051751129762064769063764441593197944147526604980581757810227036486419703420436910649570354356421860138283955195646178230976381683356421381203118685890580641590010655419446572261537206350269859845904846616451190454521055824592056430636851735027398588918292387212862693554084165757295042950448444129510753951828842420462963856924746584386549400108998539708252518607141623278582992153595171471329893246922452258996094904478191565897746745212466909470384507778083975534087358165356431470099937804987938495494176533860700402566595269863378314332869242864270552608460850457048005031540133498878916992481193279387864774131529377278064935811267351830929400348336127779085165433543454757725139386383858995326404187864268713576057464567478595261547827909591432825498993439186000695712494015890429451590595106922210730752320985027120176118166915345573284633468814291442287390737053103795570493414994841686559983708709930855393700548340414931064791154613171722615356432710260433206726171372106025985638601517485882701214596048848386088653208742568977434016352189769848421163642486995999669325724813465471746585960168954176102039368257074738402512548355403041268716067529939195187640022077361650546116309867672296213517195843772646897008980253772686902169271803949084495665497721139531404087480216854645055969768859823831059694088353080427478075533298847456522369950471720014288281084369059904438504197327457028329420465990222078414101074862412032676625149362338615081838514937187882516289357003876202503622211981425788482847574627751565029960286487851844221601376342015088888359880780753137255971525713633083312721879550872715661603078135960260156124384836220064706234570049136364891841604159128111640432532679703159105383003017768522559036044156872409759683883681048155994488278326159000681321401323197616538569743126372157669135966874101330753329323000329673410760708986780389389122985015148596856127401025579883726397109612176144529580356345594367044323028299092067597058037521984524573264030018365495691358039565222099513512106794661344479595184360753230470313212486304102031797676055675772293883984820477363080401127755312204278609505009875672027995403127648319292752574456562551971306951146514708616955963533967993433254593911518837405067529099353853505955736564150984796191458960700831457408452958960249742609097957268735305929766541672720236498874556274910499881149946988829873660930728558520463774219573322846869610356000749328545005185925390837086183661590185286669860079947320476535436424369821164770323422964562296448296909290449414469899909329470222953760622261412429367407599449155074130565648242132251258976605566807417994628045357820670594357810231505036998228264716502253404746680675862150428514999280450155567962166044290992278562290882236886129981478312888427273833010259831400363812373087099086846305667157652679619163551320656437666413640297864156451928945594593739782120584836588344560775335561108971690944206284321458795554954763671369612588307773239148868116268405552305938998228139105567631535880360520402012050069834695159827075768863860195242466025589882248704487969689109186341301364420272496112996412937729614903607696815882429301034363119080065617702612747372530074208751670036301861928916000489197683018384266766340064204736102630301186486432591120049803858751354668661015656510444548392614281305440057287637274941993076228451574803598301399430276961116299563653176161388278272044345005378271288313463050571869131116178484830422502404226292847155306732373049598774702862485219381936454999071410925369291791987582505580507504937567325759461533155200662172755632666009729282682529667606825175554564354837967314169600892874202432592735463099712043588098860922325906162515958484782047712465759967652051186376049444408203953278563644889805714081517497334128912804988187605100088767910377114090707429225377437543296197578659503124787406806957662043533062101022620250764207515390877704612933440064559018091381124335001360890650531140263997565154795770361923418056536488005576628047332110216833138165138275233545551833430157847788300494142227024313970007530885445526497271069577864272948351695068888518529716481339245458324879138466600820338132338394915666482924337777342475123925746281693015343558152676179936639341159309613495477363087955426031283808082009793906370082026869200342499518982234283332147745885396611062664739486316749247912783712479333817784099031761410596929016035223092402049671103763177297013829199657063013275222400510727807763134427973991649446532802528272801049078021805839470501285841249762685716337103622830497842244199241750547500011385203281922270338642638872686157371332015011962475884828632459570036358470142703563958066361837439368628626848172902553489676770596431453628816844874294884308357060118543334575389899165381348731628228245575026729923582110336857203480948107754444988915427486502922850578736994588764635361573048476681786810823017274778941974458729118508668158837255230281683134070889842506086058527524961915967860952626471015127749528470787141161540453238646097467580812386554806090386315493925237102092109467926114470684451287223508369215982350892761740347705690537195114685684247572939041406337724925251202295989881149958312246483999947484256096737360209523298501131352732259339612586272858850257785560320587667382580909385174194221028416538753051805431410320438776627142207777110088859251357527702639506811218353374473784906177085211938892359452712834667044015354371744152780230766859232463101904094008188197995876198891412492627241333349552457993254851650682405644883869129932385464227225510510501295358064353324560601070273451524408591043196161306624689287118337562269091219821162495640191206352855234781984037320761406602621563381156485342907995518642749910387640925810478131734465090812535587000813455259293764094737681415049222958022352571857742010033555656497202201543652077650802155962709852971996782687379370685161386746501084995425326443151211522621582629437634094615468719291189355483431712684029576880909008462893506560390594284712558223570442903691400581262904600634824760718877331123893354822294669541623093939697395773045543607344366246667561139748463231348981688747753635631088994816524974091061888106553115601472340950690625239809693993624411168872805378444066525769933673152974018099844167696330153661015464133537019136632952221786478425998849114231658011923334562497144662091433460946313235065035346697077683087876617515822151444715290728927476967926412189767274311696797161168183739756184809690310562379218300058633213754169096288682966415592998404691086844781659897793291229509775152217388692292486601822962321503635166586836615825291558029056838558616659019188982405725256050364007607024148123252039366545925567898696311563858519608338080214449106436041732608971185008848215372556163790713437161063733764638705920689892351819233613089352314303086201758201122775653871234738296098509092072930598712122515062124451425175752765531023001624983555033420810355538080865664182180193730636348237540358993135914482344233740275759882979140928207941462748056411322852540813405206542319291943424201779018072154142621160395996328899394741249144025729470522578145912975607195640133733237435477316672731509638348210871807780623760899401476666190847505232542175401403116277409958593408983292687800810442236833868504647036708652358735378580707988328742544324245042886138772809344439083211477004080078783049470108660460617719105836450413480247992406819764144387974389440315638026524066914472082781486166729579195795685171427074926726222029515000799611943824871003905059534607509443486567057771475628684256468682820902442139860464506043813793411539490688379514900859807477914964492325859724887593422774970449009765910231621941562442150685152099057981730978276443833939637728896701239217164481956324125423634716210351143665164487972285481397937267237656381175721014005697000495370206231539259838427424708330145559146827659785130993674066518473196551877354100840137899075789926169506098017535512142572119606317864055811360120926513654103542202206854297695782664084385456178595786713078666906319668653370346694529874920760655875293944627051156024805231002705658140564462585581160457583239581249601459830250750578964759095353984385765319416700846359591400811258853955441341172845429191016391440156324834118843207193839416133961077592776272146477942802401535243692521498388827125055788713241389367614668152974791808421000491236084003882775034598392302414945432712620066793672131437418517598066124487475823145121730270597646879121763129151779346937120429160047883048026481012707671228249834951928078094147961165429828618867613921869597479117725745679506485033612815469241839712710681022822516258650384697544041263812389800765439372561510467119017886457825462813368287143146226137182455531740466951334976793223110991267052723824363586728655225848649746060140780597211906254403743712243017239943679808955641536810872181781773635592529257891120843147324887910025123122712049964014665753962503658835046691265218447229853500672126271198770280081067078211388133042422576681839530323002904240969392408022410602801197066491987171579403157919948517542117726616087746239938283799857979492503691569099535469257261333322048628044525802874693438101483583648710357394163818544301220128572398810924896552981085799364036845761771918104832476710112939727376472511661969779925885756452211266434848793405046680032933843990411927264522295308035565672239964686016333925330879198546275325369256492622389533229104691189429153344711437550713019630100070097973334110347788240749459722385627783381191479264236249790834224598738878414896653176901449117396225939419511608866926338037035845427167400704757560044100723649418922871978775737355827639968319584393006465101834558434959184604790541632278983912536948794578075493088073187016048742357177508996944152042206801217060285248066859292579468596828410978039591695102125330766116987869439380408931667223676441066432330511837540281520912460429911726805874524365055390171576624494632166518095805975003317883337180063374618854848929317556208864938734489785259750078680642148484476697171631696357666236334954672069102999099582832514578974160728556318883203619963087542114566294081855575092662549278777966619341942742305018145315635280732565256820845376971214740017008352169729237501915697304415959193886602611429335955361793489713941159755281241622627403182072533416157590115613260614056232064085640322911202807508416659297588909933363940497192465478391333151844136817890945844016128968012571621404060277943670159990710159666168966022670389628434720752141923523411713785176686056196852437667363912401117558132560624182223903282000389877578765433506580517582265724389174555535509370408366479051876639919593045588322531719688964176258566103207909055613914063372471058842250317624957988322493373293211702436026911084421955181974276389493297652801780389378345490328191608241138904566835573498880815977943789962468055923543349710389462306095926475277439197866676491717051409452289854949032054407845150754937487805455865184196120453585672531177563422826598383480191887215726883184129956294616274173493140583524110350044540267612941118056679772591020859372479009169205024014209309926300566036023800273767953873391881537798152854506772268702389531566603624227266719379088618069340887825322229127434957921827345669184617153847231761852269841321614537790998184411651948937716102914703531619408805973516783591655833385247051671290717029857498366007929427986408000893125860780840786630838218159274238572866117143637531463721665812525988299775921129737316255198228733309247432109980278701797457005801486666096011029001732687048897065602646042925262584358523468925181179022394837976976784453875915793253909312167522162963278506383153809289539404340324710399452584562355595047200738962770863652020718458942863497692512155786542026315292742135581870517577102945631773626659259319323982499630210575168714444354737851780605962357222001327317049145728841162203954753757090499200580021260622701409562485253128581477607628536086672214886890815205064538754163975107728569807843578772060536405038670750189225547482571425788627446517687076437901065744279138887557706900192602596979266371970942275498137393997383832521488620967190334764812320209148194445311895235606010706002994244730762606251010962973163801492743398428471314010198492712152116694781152662987451649756663016292139026188099806321579395134285819694223730748460161974729718477351861268622653386576172106718547448146497008843231416553720498854797423776791487720048820032587985242618529569114460732492853042288291882624447099606039628144114008587969597804993635640070102823989543459338707193899544365358438894833811922204738247557684958251254277156255528891497820285423472678860675681410714075858116867538832329726481345781269935067875634325830780426272278760444781954918637903315128293507131707740958633608597020221197103532613082105169711290750202648196452266314801246007134439953644472275696469311642511354163488037469020246007473699005452566308990316127690165996014811802273038761855237318236447956616877227215276221331373532491643044863242854462074698924018853695662209160467134920462449566440257262876295574877826682890557923306325349613757164199315971005171632302424981449961334695095642743225028332256936840604209924420540425795964938605922670816319515174963932762993367601993960626196622940493041357742931413376540851235508267409258373543052447823620485572465762050627251003546972765447191322194678961872545696608791061983991183388756651103624899836866206595581085204620090387053867470196131165285269330343916248006622645277969291881365364612471982036985651650420595778611512892683361948857868297739192800145948407422021354150144313989134219944105686392945816400513863588143415175316891273872559300167887100049524872789670847334169100639596291380418335475414081851344193171430224594323829062020711776690124263740078179924361456501488417446190054233221406951062622782452232656070131062575154303236836323989992611576134828717763539622286999228133838973378584389128085318069231468149696470107456908447616576533496894007461212607198753289256027528533347601809397783688206175363655745165874606201551813361441879767670800503356868697580874975721812868336870950947380678011075606499996261556000323058967709410943348509992497518879554010784992442981836484386888823617125001264027357798901769699734213689544450947069762620972105406009122495052555849740471206722612782900528223752362755766615879797054751048940614385627385780630032635579661051634859620216739398344563586901233804946738694316298955306127472246309046051442401940039702670805241127667107488686470805523023010752656695319095137824705016416797149935434692118112184678844033390508835416697648476071965660500855633722811920354421022763346563036560209626206070488514629432906061750568369282017918690231630499201932178405092890330492412310539306435750039609062581443602252761096038232927796912354498490915529201467300674862599125655680144542100529354367988444364662757766865785257587193870435554240318697023662981862152612899383400197790661518511310927500505668020256852891180923385941162804765920846324774872004069480598803957940802972397445113028881348056960332450663846590986984018783490442164493722370014986758633615889839258857616090603925376959211008317566856504911929759491030882176952645375156065964601548657482201249768791397932614081509484945445315246005333073991535189164228051175774051033005900110263649370025913942998896117773576287529470693372294688969225067309720588173171233254743875003953715906768003163833088551028450913991435323669127991903052452459877052718572615451479596584127272210446271840676811605464327915216327327707765057954397362935420396591866672041858288305893031147211176118042886332383229005493358079945227809326846183384935750598124356845995883943719027495895676310230444080075310957492285573295478764260480169460110690645842515339214498602604717057471801440128349488971018330873763528759040662693610206545086392630438998840659970336987084150115125814103350684932981768268336304484222117188825380375272713502301187008128704682741447904125175540887295035936630268227299902770548337833322954042571464548538019706345293651235218700650161828604423708210002751121119629227909438517663529422819532234292238434701185159471687772703933070311808983983045362678904183963137586944387248281383277292915966769575146902887200357627788745251835318914217399546257734804311259537294878849126434184847591198793913204242202058191009484922143632194780096763523497081136592334968114163028661316456783012375004813808276621401655775841487187663409772000476743877774916435935155470993733529667300944372509236719289684968775897500732494420961829475474962223006128635792369709390826524424621940025044779865999765598291381529661706940506644888121320163473715882538634989956986880161474419949298002509629209865076409665667551083266878294605402107790656115221130636600304393282994287881859951590604601982412415606990724304478776716815080513643791349400188885273202624123518272086244403167470900589806823783563562364243057362414247525002286867344202414264942879331702626642569526939925067378568355874934380352296745760220738457277372266615624918384742989711317184309107792960888205926881011011547120325963881460763595370221388417142676544468754828609947738394552149156273389536134191551190901904967643476810156235018251924094438906871905706610135677942249748575143721014127287441485245899072298096463796558094192696323184061115148856999439471549990207563868223988094194176923165275907760934937176931678823886550943622895053097451760037905124112015372152708993326097669956801896331497543712938804709106246034579527815990688299143280353998866827889563963236682330742486528086144342990137959871580554910451912178535364427695546527274771676175520113926305269401084176681535943127488418670277940193800022498406815912847481926916180247761733040258083301698116841476612991691554070252591095872593019197505484211715551993014853957246812996068001626750780255927096302656518703445335197458205899608804733236917479695746382831878935697723588682627437427866106249176521795216015342213735233384889481221215270250163733203834773830003286788743898402073699332288822543662205879117166841081325627700832148740504782815160577089796082853661060065976863753684490998574471184737476836172425148781453200297510260405169577318279852380161300791408892716419372227312064458581843913271579683436161639896541423846205235489488409918305557461007225373747260250934716180135743781804872201963997947716217126677958388859010030393432547983537160091019123091723252954419695392106170512338098504784570466448412719840173458917694969497224861814664887876109017117403442495754262602283286773837718477946787881821436623439803875522833379141704137323418520669868626344683442508195216457345109045511666576123582275149817780255401567629676809492652601241157167240920180911513048329701706031902303168524386311494068432148868462028927702663210333081069844348060963770398969849465037452144449750959841132305935517388160316751428279827186413761001019332524142722139148134010150934496739159186213523775265508540685368003069916738533714939321479600789583989106110930060802543506085064906600821801782054569081499004568406563277275834390706240470539094731696760260151042891915668319511014551228904814963273498849075477896696099210461216949938136720341678376279613861408003662151509095226950746141928690805416453124571468512196532106109318505772571820924962724823847561575438274139484717864032038554135678347957940354320776025219648571122367390645528802995536819827671732037290596209800970939756565539105963827922346655727853960456970575781952788860640362437380434121417183713094795517111429298914311017239142561565636522026594593886581651533041257020932613084634254591634596325056034247978037030263065195552769302731638469150686621039777804374313096241854972399761009550709409986352916154130633358642021347551985151571927348745205701672978670831558765377215927227551488231727082741692377566084851741403126665994333210305190525767310719321405172069824472951865176896212140390261697905082521198044123802104057931451839747119652245937844504754312078058524620938788179974421382737219899635806214810033670137712704176020771019587311448489806626811084907070572319316023206571814312160073811989701208529310671483881861890473026155909591959985321631123212112997818128676267058727482540274921125578019515485213751538781432332340288548937864910159882791416931454653573712474756786881106767185382645960780579152758498610832563790739866733406434528064886760064363332823630930425224537806899978820606922791547578366858554788429697779472159774828235966240036857465839808491508530460802948575442124774807122862663732227155234182289846275421621585923184217540486324023494779337372281983533514834004911581640113121485177907475926470794745978919494210556984988597734228855546357431189302772474971360328258315178091602475686247993664903496245270098247563834814436715366498044559015461576171649754699357986179289900728889275206973321760299348366493648391223064719770771788116082585164919739310559115806435874451539128901061625039324367226393442423442998121618851931345693947832961218505612204447012676897421047088175845997138157490851488325352733599143920076792838505630174063100020094676625714606550166929778185362146022363113471655294762056399541524464628559709737794476688467721989380591603253893303246042444370367293354446128382632282899081344726866706140627362106276050899820895031943711178612639097060629434809120779199996793324582856152249577832682411790911511835362684249634425950545678522553396730161356521956330158958708888037482112729317263390856389292952039427383632439838172440732442952319288579258560765857183592569274905696058159646331141932727542037944862052302427150010359803940046500850707966776485436515707028014776551878526791621791701072860629578476579010683968824717013459695890975584116166401637277192864191559672965171238959388174511736066274166257453174083857051481810156465618720677766459360540400241981661054244327371215215198162421214938188790023316858799162474399289553080773425244970914548877812134881755627040376427066143825604757111091051327197126788206391074371890414928436585943450531576033263032897556675046015656498469087233738340710349587672606326982009186953221103658282419898405567941086712208163705007144316469040178428721927493801305052243016799336179764242315088499343815028273038647543218258536370164985568625834927771968456069458187716208254058711111282026140914065273693473626163899615283201899055920051412077934374966499269097146571901532019528096108379478874307538968655428274526202275186817127509283636533389062131875735855821764756140281286526497337498174412485353273378033640088690568470420995387229615699586669772996248890239615576121385119100040947665560852803391845880726192111945534911993522871312990265348578735202180078529004231193754747738834654762147955659281070005144937482804173293617310523435531174794910768677837700058876510533618135234643279877736456934976320770158054709096129009504523910244158691054299036521960488185521816301519527830361140169533951618416632945510097444111353255337221161419305098376986444912905856911531421453644173939960058036344393490085716123674387486797633141174927331244478125547142513041048717141617081123841158098239974201661825291904467923006284786257895710109204326864289737385563838972302254846808022377818241593495510998642541520067413293607632837845548258707011815289444930532129340754006633514728947672211066741944186702999102172561443787228407796947716016273515758730222080352014893107207725306201732707002238722250634778793665737581777701709553715038712886204310840760691829754202201068705089952693607494913006121957695725377027332071135213071624303126195306202109150798745182831833404182555738145329088091998044748898709947646316739635813329798115985552757728311097641421607257300065435758187689608028758350728239338189655743419304254274104589070545213045539471626163880286256456224925909346193514422368668483686157179706520887524472903764139945136869860377305942364812328187014753685878625922975721865232438140900310683622071101667321338959447815662733151962186044035617919637647422880806767701377265846635129565124578884762379643426740568935067548243604658662938687544653239505810638873167929426113197737377396045793149787332189720559479634754799773343902416810001024305800764448951151384736299505172605461891185812211671733456339133982494617514923626425366681876655213904359579927913659844352886505145955482536625843690637296355331059485088228928696228391738806453768657997554555841785430112573462881997331619483779670546008958902575020324175699443863342660008684308678639126858595450470952441165045274123385049841875996039047215041926441137247859568950794338437671705820663543273495303882205431278419615294968151383579921805056118315394454451159043949141067802059854516983950036523721417669369886871913276218460334249526706107740523403197663856994087622662467548994682064353556315426113545381953191739963186064814814308729937509862649489892853196833727416309908562097519521841336103909996905727997610335538869874543725793267916782463205961133477044199614386173523276182224651675044462480367459885976902507167422480356146109391886886248955243551614898287160538577668384649628111630914256281514233538352887891231987940370888162192442822007196073255023486044500857555542376650638086580919468107447556876931797394111226200835614135463145743857839435015718316494472202396398092724590102077308411184573508444271577149247883405214915569014113069906025796802711511796054260094046247365047578063222956849687985814249519198029021054219847888380716740249044834366914106088860300203292824763295759004419701477035524167010361086934322851986201110920342952208647509648479213961027631372760071923052882174762254364587058678990203284127486747906293106251670612244378619135321339907983154570522556837469575481091981787163100994483320802377528687680829223397293412901493555279378349331861430533152868898982431869905100438055168558044336053238239182543233087689778490951925110328503703873179890067585397238492817103218238716968633042100718638285462677159504336980454069236526950665979363051971601274900438722478550610942664322916414795044223226151085999950871390230495459408355656760733555296199585831942019847164102897944316313031911960931390413046816605672925339307257809231457872307147727340777265941178388776212313660739791833086447121537437142496440861540885833192107611412354586526021571770602672843738954237779160521900123836825007129933070183645787097561853284570604261344439569606750815828032684080952772574495669035419748188647942616084642391858620349695347415770916712201720211162172752693425204081056957285635076466121490216189089362761786805120857495044090565073907094056830499716882122866601133460739797211185548295204580692635111194842859721972378017026987531292767829159075425248750951138427796640892042518782957765968733436474911248034456613379482075834520496950098291521933624764612865337044894163029077484827256323172656914935568269803992712903834044977886794393739994799010256732766266642150144284571991981620661933367180628545471923858565268425914023187835467494089098964420927622879173920393967620690059412765207791774458241400958024888622881383840726077713493831384910885312837788228699319184176151569266999350023354745730416990359181971941437938606786234064284679109305464621515247910740732847832328133646586656945685163406532178590024997041753938685328319363314742893435175140589701016406044929775238578029155536619152319201493184739159303189347152999955027084176146457815876388067184075972552645386890736318498326282264936849937657187137200351809918181733765861105458685635293469984421981234083310126198075295837948295921544172748318937957518210301256240285661701859696036098419486914430808317022820399146934195040015264947823657310354153474496327996935447105560880632721118910669074446928438683159330541288648089820669271893131716714856622588741265526247880118812394577412575635901457895742602175696922126504604170454129276168876659580520673680773533469562208052620484203074774124474209458491643694998507359773825683039901148812048574476358000941693774938403170670746675875530343393231623628956100678399231613731345806307405071611513359379721597177984528864834290954205028838848678628547995203295813459063967371734816385575522166419410573260643936086168499343880288309340162827858692050777822427395512712261675073324185777362282138367051672622565799662768203757177126240313775279929537451427819589635857045858255675297086417954390675372080806422510321798285900590758494543616501730561949913187288604066128184907482608913111971492873274307259934582936514726003463228259782253091110096930504007195142573520575840246355115450952960492523475093230121418112322501416181908723585304484163619303371556989842363270011521304186593160452907464814981167773129396655717920514860797474485749567738051104196958280009243248680962733736872442349840719006379149499436732934152224661425950549621926909953967456878158133858172270091642596961248034467588234797763731585434300609471336645198726559979830620619250476134202260900156877237807428121341514040786633473586227282393534788839276281086861440431452906808873693923502307173099221226818667658591392265330686204460184843873657764471828776472909442647112972980086293424499782761562451832829310089782730955207505290519418990674987487779990753395789541073689023513185426264304549000173116636754620424787470687446933354786239137849725867431294082683378817634026323839046457643188768649989450840263806120002184327667851291619634640511426241826604231787626062967451045765976424973570607524385322337805110826080164185829951580645288843230047017297092288462529312587734679228580960324420558441499832083859041310853065852698339947006629235029896734457778620397504448251688547957369929355934159548663080392130770959333818189362561095085822732943980335225050854439041930414670325405855204149373873332877964708039173150849536225670627913940684915156929443464550832783109504795298260996863470353387283467119414907958613074238550663706648028508029724600625928635060955385638112840844430884163550714013695485850589859217480683981746044130958735490653966194999782825226043631075444561251952952462852681733839520164750940492016638208047190899120897146873398466571084005951580054947201384245643775263310164003424704625047873406454221844131903274193992426677101951993888335239557105979124367065991933988390137717350960541797761269800725494077686315141669027101051198978515967168271951662980553304404952366084747630327690998294423823719299087018219222178592837064103788595885305487023913007684338835921713333303788821640481249069909364160163638615393706679710120036740316359035607625022825935892630931266764985784210616059515471725755102599725468777518080058045905474988660257665347364962557187132610691428106447727573181117943883883429716318357986704155791539186564934183086778892631990434487484638809230217472780922461353250815339408139626651996272408519186647248605946304201686840060136283742822510733185046773110231081816157201521605088005059329934348793550904142679398028418878408128350069017004381049214088599279379048349844393087627757460299342333480303301385363568690629382075804105196247003298854453302269447157040709834764489628223335931618697046452020676917120349609341300567615103739081096647667820781037033088595180209308385243357282981711573271452871099455353317300030006136139479777054048739693211326560619558656452588928301572668815063837383432102285524665282606020374849763352821363914098854900179043086324611153729360783121435383937019771462709001695475062430656622862894985886369040009325637199245220273683546847879883542183708711896574632429162828559253392432509542788030037335129447975212005682467761520015594733307012560815411026380702412644763042386874460141836339151973539851352730305917373176778179939935454336133563342459800886271024987327617482671171770789285237854510211574375509664437741493007277982293824229015226497319920581407323504983392193050370856669887162222166837805537077263556263779268932125058786132562409513564421779048282950431865847903338476102179165893270989012936363765592984526573558854137102852442420428801274104904380810730088504214092688501480540080023913486284140226048972645201365102983796569551405716880202100595056370085347626056274805023424276028930271529674319704138118878946016515104307180829196953630689172054601779023227305998334623625109650036349720979436497475489547369879488199949050380789473394324720844526892750435538601512664186613427297633200475983257661146945316248419657454536838563256151383228483434098325935895766394923838690948984733057505610643363716603795291346137851556045932659199639337690904776327280175183689799459372170059329830321630138899036581573931096426018527755502559148377847834847203771367400806907162341153240628870492006754435586009563649200016754597977855002834690142429121493212631097418759008977640939988945118169526407872531891882776813572084430570878729756384822649867769532028110285028733413398211768910313491259800785677319584301455226750602692077636148849905834675703695210357824786423150692434864901399703758075501323016570112240625998052722481690628707821075515038990631897320423833793286542840747916417479219675066677053018065356291951480269294902550262673099309141475470559734950566623725509589587128018536902547918118871623785890111821120562964352150091850566645644090594250801788598231316351739309369127765049761852849907725615035284525125966343296030352603206367384706933411420237928782356803327454964881578330770067705877831323760263775268696853043557590321610165952248412400035544604359409413331058719533766952804150442395333271619950208372279442816844298780977265382965740534632219453451480062484551867126775743494934317336909320762380585946567973276772199526988420711848901460205443179641291954027693229384680218166274682165026522843813086920147188705250786085068397850914664310857704043573505861110242517684708975607293433801295085218524180640089096106230354715220078532303787359233605843614600775909836725463623381810394196380278851105344970857814982649500089641717590685790040760126039801293780782662481630977058040317287699814515658756252630820173128323916298783202430812237774080917317377244573024426108652392094119069443867823143680753759337588208874437969321804535052752790108069604276526334045652723896448577761187893722586566568885006933594056116541292803459101203187610403382476335345417548699002445024544637554064441348545819011159773978011264203238265061598302661582528489478600612459398487396305341545312356393493227026159235823450485108243047100505755876599685182797778771744171191187037077475789021121504831834628571402904710756091286089544634073787572220495966248523762290279508897116327798580357163044239320789574124567544456628832658849290291221410488760455998875704646855814939868539242263948991487447366934789039013543690071718451407607278216541802083122023080494928849082050079430728110450886532943405588835166321092880657317351365338383298243089564082439645337378606030991644481608899810441717019318295909217669282471005173784404280904541987482117999460182237618191452355611477769733661558442665521821018347889554556006692087264443450289886540126910162675740160292412830159720833792891108486643727602489307258063931523780437284238366172474276258055348453929525209742309127810034469517459070614434444015832855655956660958266474001721455134827984353084399894656851537299248597233455388215011419899156825922338201867338433043672387839159483656866671145728372563451311967377255797946491704131729349771730261773336344086359628091183761829218983063017415955810752826831886185191858941706659211670494480225046007872843382008165027454543307808001627538271015029291736336188604803159974167898085139543828805816837359640027540196077178000868780760282942223044534504169727657033220289350674246269936704743999070931693709897291807884897383179000719834119728751465208558295166206689663970296227303590165508558746393092507920778650785385024028515154212380189281776500260753156630751791984630641255807079295168476567187236064439115204771202910556920900260864170436355842111742408317765521622802786094808627470085815525900486218262200810427160824404861738016207315619135143026121670163463391338313167681783184714912251615179042329356023777768230329840768237980790090359451216632001805638573028439639980650385937200220306148365076888701355417520071082937073952061125940320761939993893724384100585411538847346539221926532098198741862065983198081849937644971107922544662966984221179399961599106859339665681369270749397270907481326197177355964021168928467272425030608020927561032121646202117183826532821982599441765125294227905493273536118922441858998480652680300825556990648638098026106508727489984074357311645059987334412634110504673067467675372214117841425840304318392899534661200560318241400308420628605213914146207110613785597986836999466752480431313085868363028660694307442990566052430202561820012818419916170062962538678970029940612253681165346680301645633396948655656684974285001022253332251083108735003762794724154932718651147968364813245214841494153593598128671918616762038448759995696136343240385814970068335453303735144840157889457834708246099811522237220524078476646240674718485584702581770404908258869543882155203202587438517581520812918219754437072144817861991667657322747549398650524733434759136640107133719613220972998144410200688314457829201281490632895827132605995343763482799313529645689171885044104680621058194163055663469246852044034845790790399002784140752694362804702519088552064683416928991463058397113623048072073330507801695195665295914421793833477611576497073505328627622791186527732860681559383093713342408914380712713114618081768610943938130517330489516906740332040815182320385433040744305709570181085791369793844027826152389366228797271397227306614487116172512151784320213411716376755493387650796532415265119534540826378532225010975150217472182224268209944696797241117799910630404546413455710644679306662605761485885772402062920691514247464273032758234944479454034976039918550427290942043216018635834161656176529368501052817905139936362047063396224702887954403663972067714560104234424695660476467303813395524467348400840207063918668758441497947099754351923198526449726835874581517927270474701395074446436671071346102809422551339104087590129268714071754648749155492245723724988488980587015547536901528135150351500974389139686013039626671834278762020403708456902600185739137087490320630694837578327722423922269671368803149549058632996707010305137107532309025019228825617802843661024661990954774483505886966601341958461971246611532554449757026720033552348935569791430183240840829216638753384381336407222757936193644566161669978416062868900809922878567323451432907333128303685602517414665012271460934677907136641923612173618869130612121250993747927411735113419273642630385507650971016440893761733461996311599511279155640967789543523377348329879677017082154308975524388696352154572567818105590089503311056481805049297702833380057416683932990507021832239889673203826584518976792583886766269707795919258560905187016283331281970036314401918471263141468384948635673346947573832178640620769275925746728375842398394125419205960001219322033009031191395594623151717151445065000323233313075416125191582725484070708218636265275340919505908250114271858118353423184966963740039551476557329086429089256528486152328780971292209703518818418763636216381702110147922553240719262071543180062771343488662003559469720016279363870795849024719778208495509452405696985477981289337462944252017104661275379421259373217896962332142184083534246861764477159100352027394513119764158319352513275659980471690779810919037792041190374601657104255501217174962145650756731145109031546049942363530626095120920475962127041172577720389719247451023946642881840420783464744886562144899876451545755413053396608463348873483279035968728153366003656584400572414369677626007947513847624608616183949547720235522390472968308492297298358260138761907471214158573361214624373488426035371222328846597620043919110245313731535996691316722470840993688297803960960664458998464859011167428422500721402143430615218635353059301561210072592248582272377280664902183948109327447399588660932275862452124976778681636971019297236477106849706623568882442460876403472928269846490190296286769239724449201786661967321728998884232996888882458742591814131550766360159373709179876086019425271798747692273802751427816464875374231378773919820370160183274618523988683934548126130543726034199592397837012629911687971383599308543921169507908984415649063457547711854422680474148590637327708260501477802536429726924782762271240588003210131579627464480735357492112187383856638519737456932501364866870711154057773812401986524269212600693413076539627809274416093454706127654510961749851393079031252592054694177656328372566222431839246992657121908559990774116010636276743040653846448504129915462531520731771271550626979626820334603219222837211800931041884992078418082971014737142845342806864553545817384320305581771968153511806835459723617696427938287676750179205091178012867220957033568178150862758999339284808410978145150297787792441600932657609297985834717554761653726324595365880140620547451170394297781994884563423844144187288681129499937767214376245973214468390153570897743308423686813753710637616683859657408900719928102200677680501092357055488318801000241900249782169963021962214367753498952102660414918104088164129370833618595279280161883094429583376733477796682783373233335476951614781322327314345652268162443798546771791635713695478772430997859400459752483927599976008308577938404549424033165285611059930408867266274205438148953313488198357178404292686564604978671141080431624675278313002414514609627952627848432788351477093536664404383911834631266991184886660959447376238142776877709871893017127523145281267828220805826868242786119073668548328452625456979624546346684039977500229933291650976645393218371044094770363145647348206109622473213274946750580151759730231463709939676920411453859156182315313081890534331946419521140255070143223297447576516027983186876237219230880803514084810739775800979988251232976187585566512038226182722578820576402466155830249201987265128429891292020814418393422054040381779673656685106344400611374991783525488070327034576037786757218387170592678375113193472254100221412528403009915959251526816948182694304731043176225487904403475020461976114589861273357542848059663251258668624864498730480046914098713079422279275430522169311367334417300153250453610118133415534462975738991274281836608719320103346806060411723439294675629656447238309443530717344365514461168745335400877941991475705848093758336417863329316648626149309168087825014579315275750027323296958631943274616905340789299814447062736791318323934765018503888355125856023203696543228378721370180683750629095684216561953176303421757268020169554529856187976027320220592671606083934082616752866199494663848906662120906951088172174340435995107834765896978616276089842074659714168096129320489844892209648437305547799306961670179079969187656974151575682936629145837453078122619506080113028912919680500886633236151769973199288997954011450418711299662133939823083742743281780770667262215920274945094773942869050265133493089635456234152087461305318250323973376922899671233831154872942125121463616498833812242804530365261180130361799633184899666216794821053762908431132135286360489323682685286582963621967775208513365355229562236121239637109658056906199491444585531174470520590199061420587033048970320629442443923607903604285429935564828800153309400348153180548382438745454867518244562716214760026987586320485982354139620879761468322903397993838981446211512267279741812516906143793563405236204375417303459855256136320796036996703718251943933410846513954845515104294472425258142084267921700086076636097852386508990660993792082140480260524992842866441553757973709414641566264825721609998984648883814307964064648810903451641791250101822717346530871184168358392739964299868650011475682104529619491598666649708159527397782251184271608179360655596143077737918404425334570242073746603950562882792033266662818325043392625571193328893691584499590528323471989510669669594746513692504956646218497141221891415537777391526531949972832484907862545853834843521218652973304132152367825184256808975150909248479712686930245552817359536559675280321705656103739956897889360226258039161100138620076018528500999508394013957550509300377876844028146141607797014833333253193585244884045181716234218340115319110314076843152723878824761941065419135568156967576511996162013538946575140421863838554514588628035271610463285912710113297379910882936012124051018887726884146320900999727396309733783323736273285354327359079179231113078190488088056175412255255427777307923498716482896754804677067050707160086668135635290343074386995914529620725410941555970494615412557452237150849166211177451648717725548471621509418665915127324462886467501856187895537623847946457550491107172123884302501384548812469557831276470042260658675224011418395758737462453783430570400937384577255286837761821258411099167585387757440981672012460351954733126911444712653870083974197233189961315892059599919187467758587903237546963749861345967061156602298602901647219910894801685555033236670931696185595797690606526283366143022436729027494028038943314996351489089529445449370345080580153990547020164303531598206965356839891503070741156532411972173677889991071609879339474569849758136262081257690548613476424284388180529913522808535250014157283774886989637565231650417295350157763144006123361461792765610720228238144742567522160675500564340303879051840164073535572029207314718846125600710255463390148768652964125526443701792454937754281315987023457380902803787274434778826594957987941248200314235944916779499301527753721206649074661000720950108055622367476426488828554762752071414759477178970260963195361371327088782971647111447398868177061018703389887650126204364823699998474120340282681589896536316437066161881071273888574177953537462735242896595541828673336235702003768667368164943989537918652053179750028507922810298867718589221127072660845642576155420880987421157580008610167764976912539729893161622688934739950925898160228089392121330614326657703767479314471083041578986342463278820920957307731238495825426739377674193639693027916020496802658277041548456088007259711006357874780247823241204005635862120988488595865637277865335186209580726626280942757526113047784204731932873442253677887113365769640937024782620396735966653807604904847733155963894631245204022937175504673686760546674542250081175707775909275042770339121079430099392182430022457919545084742923901246357096372272123011275563528769880666876408901152844789954899877898351977359693951403197061685206612950618009116720513944871469319868408505342449690532167345374863331295681261802410978384346286364629468104405958436866988390522332843772694674759871650762572865984220627496785440611406765548733562451657391613805207412787389632976719909671456397899006249862315816388699376360799959969466405611875327422843922380644298456872986790937618804849704507302597537845655631820006525907034278627387594763190153110286282029768257132900219823955952921529615659073833846097858070653335707018848983107664397244669139515598373161143994885884167075227232860035590509959275295566573816867578558993781893405382992134334935923282216646734150556790058147793334900937144445928526521219664074456241586966989481258744770256707200150959271408965549359412840214740263430865982268542487159409160343259213949576374082299294792215758533387608628753511530022788464590394790045824872408662635399005563754516451631907246884623066615994608460382687236426653781961128562368552100888302122244301985188169664832171826557912409089785087745984466560146461490336423931535837333511247815371041176740657688158298923993736787355663944575616316336592807437732237370593119811063503780592079580180779947536121026566325870183279682791438500610784559890023727425540149150228803312684634097146658129973044577941777567843577056516645867657981739667249647742276372542725394246572488375322157063013783792469052591943871478870940065931826114170216400141275991422793972876446673935732003451499548389679159327975601682808384113556122315487961095875011625156461472626433030515664755229491829656799417370822917992912291147388727246701750258913432202776698944106946867536714379465886482846946256279214356743085985195205509998548589584554938688149387656038532594943441169285578296384208075481772486186539391923513732294490754555804492059120284483781431880765978713509325551507620406438944358876610008676715005698536434232135689204569318913176284708274669411594417624089103503298299324410357966020356577923550557222859690447284973152113323733776261600915885602142441276794100053633973280523232846807725334629985240317171309494974302765541572410028842727075300826118342913642397222834740297177089643646008015641760182115964706879530869782584733664507220653470380060982280850980695932091136598304958462044707432533455758057351327401028317143683250888826052345306370725080331572440319471149440422939834125677935276322682556583001473339438542500141974333205320293319487088537897549369026424703960331581725663204426952694814166452154347079016816031140725647772451708111455245688860346511619323703924573708399596105885194028704602911886376591413822363746749819767653129730191363295873000973164622706280152853318522478742158741163254723179421668385665229626353992834980597020601458609626790635257653779881178957666132886865106264377526128658844245884953020171837001694404377151085963005768868773945515389879313541108847847993451704261149689031851874638175365833077389696306601045434150047616903595009036918665019796776216815304851784740719271383990046679450559734529676891741775360648228197773060384677500414315940520146147629734661043502348267803816983985788530153689954958662487031542815419657124631667178232338268054294373956473056934574791695205451803601620679018306156927907214808873237494697947834609865145133174383542413923286960724220553978955323646007028890461115065946524654363240873812951575148058134334369713271133796080457989391931324438741308433863101902936213666683028438725831715704119309825531366817767470693009850802507300747615553433405368268805689131026202212612112670139121410159102961011031473632411854136320426286684346976103144382964038453410234375809167731901707283529894775131010803606334465557621033319721688384759844330575243008434414705394115837887484590825990313126127134915773130867549529253064692339480285226534466527337494244422705029630839326743791896527872663742738401309292752631846989662059726911557262596501682649834537225019897755194951249642786432181964219833896397804916561980295442540652475414387012381928563311633023850330407162630455017477129199107413927808005700733756749407169827936399724653880625584785323552993971132602849956032908836974749618667629030365138919019954804680068899377459334288666691113691686584587643905697974597411848677343077565575741246650663087522188027341753598806438054609889388391981602978061815401047667380515309765888944089776230940194996692348971096771245175211857298915276621677719476019811747365848829287364594040714975875395110976055630420114343656314323117139577681493942858091980417886089699886639949744156045665809956887769773791021895392578070341219193557386367723319298716848381429004295255476985812953404973333745431191465279408786665262153700804201448113794984405561703421413787729585606936752670428827394872046894234311705692402687221540762872706118717541860074231239126749030703247784211788755190353175815558058908396059893024545348089394681009650476575801723412475720292091119077662609432478717783410853721469411270723327346116552197040420765555433688942841988710869485642096529057422903307378627892728482948391773471500268995863680770429716062554938748512429267311786604738255036727429370045048688485097609985236543019133351612681023869432814889524590582431348699568073730960181829940198455052416512968776655730239585472769906158972894132474111135421618407054499894001957103757926531408081183061473883608137669739050189493158800204773873047097446638987076602961790290509885903350206115685710661250458410574281354545826277882300832527975442420913657040870291120556220060740606443656684511580561727120330561199352527610160024560984929769306021532665239557384143506414570562883891121501926792670771658949378620906207159720503915138391450003548202084049253293827209291251926466643874533580783816677817096133192679808128382007507612598778172284157158309224758983912682251977987845753194453505120516503310672987342301469135098360519898371519382490065826679885167102757465236453731245796341862966146158471969128268031682925980947066651450875884375889567645724793225236346710126759375919473451548748020820609667345956301900164604310338278322763334382348812570292340810112660896751893124960470423716776521292897990377842425324306605893818027478266419926325153016193022806658182229686671259273015347946339252211055788901024111799989057948658362360861006610469451347263017309450678801575932607613001095544708237129216324742405970983117406321381527427532862345111550460094319074330933548107101778493821153065009254655430945406604490465631030175845792576691021080835996553666543191408436338452421114929265768478106129801067130955639672543869056699454633877003975239306159961840459111354427679576417541212815779144308356956620314180709541558985776076107079927581816524343249622278734856500066321198205471276292695130620373683560526932642674788270245975346371638690388610090615947085458265742824117437404586394636133594559774541942254974260991843505479536194576980462681274190678852741238024971326351862121529114023926119790278024476604711412599965669965387300024484817978105398449629458810052674263054844741544688378922126885595115234001124578955455297731795552558839797669958791566660178382369215405020113699303908597198919522152222382858698496574307606177316893758215035006450534759648698467821339660889328124786497308220817519258276896957688937005409875805034789473639436802107535466263320982424720035714111352350842379192106269457962526133595447830763043699184094302103109050110692397776080789259651794680652873985885818501665590764138082453974871239892656033792320961527147913055784473779544532124462754511807413632354708282556104903408442309024533364289365866426546957244550384323840477550895172306239298084214781335857149298250225140006876145220848754140535825457566191049221917548486410280450488217585363511047708340002335409487455142256705922629855834544709836220320737708806646262258717402751117463379454866936014791825874239643842118331741109817166144395649831155162100156215342868647336295694576967555524065116458510349234922158255358736266811553055166081380595163631097697530744267630229999151881161726747275333129961183766488937054164171895533679583009703388687713096248110333354411376114725158514778913900767592290217098661193220161798347824442785469758878146153622050616045571752829364213107317175343298199988836503105473280970549192006012941516420862240217910789325665281903148426904029628071514949882769619565958536844916962946973191676437647680753921037876550972269136461670887258755762646655848566632496459401820821706243669012565003572349343839752455377893588522356696503720466904705709609378940456794645246101045663434283215697355017189214440870866421703841968489760232526414353181175533296895036507839711448771717949207120965272082975835630498403614035649944923128294354356109764407062389087766067111734019466658036460736244076707633957795447483866393784462804095735371752058820694965883040037135346150600513738218014332612603471870904456673124320369164001091113070118670636755869576430560865669385554711936550872344384731982832197047915524270467736187700721844844703896764638788091650420892292458222400883288076723349422986410492774289006607832691978005498228193240303837186467476554747111528935203306785962709415664228647421380553654030147817347991456770027144751568978250096629361757240941640361765997065189974312650328539643598070119606209899152759552947667134567944905491705441634293572255778273121363804913469309561048042477711580598096617943068298103008269423240621323074953183494664858756830861499915734646548252591497133736437529857319685883464194467554889752177966369572425762825452538310242432752944692128929439140095715115059810330233099505090396720519660253290390741823918731162162683831338629888868627203538145692008652562245906328871635681743491551400918501333800239070294986824379685609340846026122265360351420410080198877866339669836500650901609878874732787760129441144106392234090392281534247989956544092871406648950987533172499759268363719678711494116814332704682238123944625887723487375864333808544113185403614750336026268644863765773983058293741043278844677673211010904367975385779816043529769079673001993177344879672420495272264011130894435592306700888471904122134788630596437997532371680759689215283283036778895596669406659772712511060568652304153211569971804639377456180792054509330485265869407211823634718703499601128329261815010736865586292656234148309693360958218507864066079466875168147270369816668726649175797985179087520193713317986855884769485162481820723009858791700358691926756612635475526120607853717221325923328616105926291084065473169730186930215479071187236015485398548936873742755286482035079367591412543416381969796497417793505515721705509870274149621800869164055141795381140910467849390792184013401439941057940225682909373389763223719089221953977301539090374503554177641080814496669029577267836400770504898321708316518247622776185751146116928292662054770111636204781652765613945376829309502647999848068293674756717655843900039156663147206371879892273160110104284556489521111160720575100848513578651468549741891052258455870296830853328445220105215511491966132713097152002029398608951610350352253980365067901583349797913212589544747674942400222219717483151359458924683168845755342883793275135573705753588199512585170628015452260068008590125774854293682541310595604392761806856771229697532979772516968884527709393830023400004084768323104331740665232682168388381443898623908554867881727219177765483123571257440057287189091042639480703905835395173003299718146145451008135070465658360761675361350779031280829527104720820774703626201617980284350035784317661413746238539885034457183534164584921920850629728107361069781239136452344771656541997129433670759195338518763055366346328657560671554096010196929631703358544658324366365140232704606047023654073486951342916944536366066302481998264766144943976693105853954443154103100947310931664446245795271764694294762418703895870283651480528267799925618268631901679270289916756435256407965243317350973899956596826350063348115614262758317747208791403260358781391653358887196263351881075527793105538242177540582155098492577282805026842195527845925867558427226443135798152337330600580980068561105251931784376083178194073540286556211019857410529608532326676079562566286344955608756036504821806463668953964864176871927682146068715834785630248347323061188988326580728953411960616522053663413889240968213328176371322504107831306108520248641575851161017690785021769623268338813771118132164487924616251730185979044411324986776162071252334086560087616046546308251369585470147317054396479131713464576712880934678008113267658530187171181140542564787801846502977544350344296433536571551262906261101652345213161307678880415328365512093563537045637773252714353093655126617420528902227564628047250106018993759938044203640925652406627491990611180026668387806796094197636871564617945856591459891052688934712831851601769682116543977058147741040690420587383407026046710325831216941601780859931717602250147563640915937769001080506117281295604998518577040396900598337328235443465410265692785863549953806416465322100739733034391238071642290198756351818086428470116692262400592212164234919648932490643412074089273290663489001968711719554129629351856429731996610308948478906742622387910121659315503983626124488730127251267029267735934088943066297623093205697009801031874723726109459980589689616472143827984233624608879603326692374652804704258874233249556909987041089349430910498325350306752101720231428684720817534582995490335496911925328771135729260290974538311837070019334042746390529084836156546202095100030660419428711960047465928359284343531223518655735564161592906151275068619710814001666870791722323069609146828776008602220681936028541761064094525325202834501219181825454282906695921362373104229456239487539975578434098487739629596307106557619389324227113290156881827315245973313878197204691732675742276052175139035610320927657069611310591751831767895430336878006685382836860153887961557334855620183667359441307839287566636881547985355382073337662776632194171234545822829718406913748722405836143477674467017868489771126819333679981594380914827118029389341808588198898596016819598252875343479714503947612235964846060990816952945779643697622368105184149472621832781325645363958894138887249159277513137080166517122885054337493468379779355523320533655325720077886773432224304848963521619250863849493056984596850470321262875358374801198894665945479811876717111270563053439913411273923075660975496600344230295014614117908222550111068129915364376681560743692413036302452357754228867272206550393745237070563984550977001856043648939109842764577771207787534995627869752548338987998756938405376971888721976851251236710781214333847059961244783374705566239883810083542919190872088908518064017609659016585700724683952200219799130800648207973364710943323723068493983646585416002825357798466440880327643140503061456732230796137152008000802769545672345180833634937232045348130319198499999279821009080994737665623222348741574867149013892012421953140584336885910922053843764002449981900091607104730650230304870401899900554212572953532184437806781423762747448463049327442744668369395537109915268888041376353764639273836516087678720958534828588157532861936423204803199654160946146853112910215054675301096902475544601869455832056190989482471127481806195226848113132249536108766448311263036612780362607643807339518167440409831483880622924882204043928319837770377711578135086660291386509621249631087825945284859029255964771255645584086818716630243397665745003076826930620505645302179150124389011910096278474675596263952808498714825528996002141303512243380110341470441297989763037764038652715959336617919903278277663671052144632009733081335080720225466315261587803421076243080443827191500461129604841967529533002557449974075259897430060779718147303896745619058853120061159624438202270590184353425307352092145054076267254050745411322371448364699949216439179281790079597715308215322637615445483926993183480788029984136919421870300030284733063355862188676941391093087384097431969861037485879269302114566259434052506693420479853247572276643548617224674970976500147573475209429890241237018534161102176632264152875124266373304224151053241019061111078442356174707766592681020879148178888609537979871185314530552323846597135410131809563767109985638176865996953859358778164715494822640845190261143388711613662287550680487605639248863654286905609045701280883202417944445642271952638480829373710482260513692503732714190487212704228930456909239141996348861211429376054269546744657351396023811555692605244530858672468784718741801696656443729112362149985762589839175402576091763793127621842670633024352270597693026966533502141174063470372927168456593862722402919665643996004508823552641447775855738062285593249510233885693318317153411615750489571554809063643350784894823846564991161624241884053899236872775147431277724434716597561377838511767088702418180270337982838759359530170299173355017062954971966619895886205659689277309660318346230532120878784085133569748971091058133770924341289742936771644695595855358942861019375126289496002786410234954129434057524665912221664469226197866315183464912404133728604105107350180854678818613035739731318064686816418624356250044760014533541868661734081684025810163231593729984230535209307428657196068461238055782291297037918093572611522924192838005460345635620970726199565931280366012929665790900172589495518455771195248070231928963665946615776062721056795213814646684649867931399613387948324810476659018092171502031055719493126703146498286136683606305213201660802180817278259212469116773624806022384786958721131740781150191102765747975169337197424555874625741434762883345777633869582605212240240944342812738902339367033479402146034085007217611676960681596703378439177855212391190110034482392693792465557787263374197786258111201009826314161295852593392563120488821510002591062047823203486346595183217503157010007466703620810994061134462791948158996870852670591007797490724943218138773857227199956617001962428884857576781892979274933994413242655827248625504961422302669380720485234649627304183926285104371400807179213980132462478356508614649527721007327950983208427940103130958204745090005279262594744768419394204772405694178403060114037113954468677048882878776667733315902195224543518004808326615928130529091339989215286628944413999914534951020558160110584748656922821059088699929300813443162786400502777708493720047038634816888987292687874380598530898213497797098391628881112954463434749390565806893752939153869811686694234702623593615373400349786850529073061450748433152240303552938922085845640748536182265254281251818696225688065910045211305594455573854701913989816149902524741248485775177971475956324830837073875525473025761652305454292667263630120820309168512651859802062154295911461956418621443384296583593667840950159913797875574713076110393154236397750713757363285717005986468592825875912383549135001870065118329029627213470872849883641002665421968495889667336819001771506067930110126936905959780187156501186784045761328996527986350405762164260463890935495149040220845575715131009751285964797528992831943185104032374827867967605538759919807884018237259861829389634820742983059268365573909497494412042126351833245070689124443688464592834837473084256003574820713635723189604294793247081065093772345014645999754798864667909030726082335388046874204933598861232687747653836171902040925891759792659199250423339066052775004421239375792751534021642400683409298433737389875457906692810473398682350622237734069883324700380421208964875309241723824279810566279068209899875831297057001834280269223565763811564614119403732398802548171323908380666370638529975751446594503714205286779705568225740352139129406045017879232400192766538021851623482139960644356106451063080027781402978206680615125048278418586883162234029679789381260067799937705820869799713433417325566300551038057517645787648843005877263990822463513258288045322603126854537534996068978303681673574967775982186596932125996059000361675808684551607069683647815285051471918214425644249873717740792450853727026057238252522756632534020192060118797713971787689577625588828474658732008328347935712190840323523711876334923161560259763761670412475640774619725720801982246240877515782800815448034036302151027305226268688353460850535195464467247662583681699147277431539482962265732029836239477345512067530282723457368016082292622469442817522994787475342963462294655109685813182606988885870162463829590734860709292917228526566096408856312531010776317235940556751555014695550812378391961946782102988796138984909591571621679760373038794254296554521329639075734500853837303848703769722214849463802545037148843223973797668887239672701929585157286548133068161869218668797843228274540249904087283335050417351594040663382076459059604387697843468754925233461439541720649952410411175068929262381946724266205960650846154851945392385063907675401975478874841573461014375818657250600094320301348871683057945317364242754866227313735306185683377090615327652981959866325738094396326831161459136022847255798904620086755361350569102174420504348533846921162774710854131545769544527730085431870340825868380190654909707604544855878063606633141415043074089190433654394317125109245265981846785611514617179318648835669616052829014845092212036524594193624859375106225075678049232991127374393980459739354736589388734633565035907132565589811601560442710151929772644073689382919348852775432577338056485759358279950193315777181502352394270138657906223585608610518983108224701389963900043421176712904352365783005180910912161806515641337232031007177046333144725040048375130951059946415431737031493011524113282128300210402609584218139938757992930725387665177088347023029964601695271521537521301069317773216537232301340381101239848339379321148305181213825841796736666488993116601222447548424208693199638211190649739763358411198780507632906998196267678850473856882654516224358960265307225224416989999121310935711625291590756815036330407041370959856314721746454773137696097254398129431971546585533452042753424629669292344826581190146282877815618166381532853781648378155433444801503058975529837375722374452054191326243682461718976926017820701738084324189613180046376129804213539263283615714816439865245397822868960781950809987616708395925800342453847358117828014803862795254636299409258948280264026215198227645370196885116380507078562090971927556800057531768167982165641094916230891223457525170756489511669292953957113672785676721258031800713208236603513032464612100427732405676849504840899961704569346338998314472319942726255305236888475681510565622739010505660709315869611479336995811683939114770873649403287913795018829223866444801324231660791755782548378647152443942969094974891259090011485874579612608170601421700752664427895555428648684590625003942032848648816007303642672310267461353849713599151377199488735895454233709713683590625641464513115438320085886550807781735321697183038829536794212469029162130074356167172599973916441014294750004580588706338424443333166379962700096204946095179682422501759947416795061058071695259110895239442889259744238119724111821927267988046675022116319785964038515571897609348828646814278548850343198015711031999180283769268422254668243708095036968163893787868515836981349064320332332216226703915095651591652957840595738718201300272674418325181569297634189416092180837656651821024155933429377177822211844563294491039965599632653753459811529562420261582612339268250842679945807383136247574892811133338814728950495403203946416783448514435993162672665743987588136560863021357297517687526977438645929761614209238017604010683182119937053969908615192548502484234931534314915877673845475708584768363543368268598149247701957404096054026720072186698058996787999251985003157873696934330608822998502095933779088748034169006450281335715362164782045948670556860381882754826313508267864377629225681630543065192197166556524908333363396986053014538190864446129687839537905700686359366595407946148697824582449162174876007742308473179010168310126367894202251472764733589181479309309291767865839669188383778622240864349105067395226159648566025456869088941552820754868898585222566360156377517877609955355687941528099990633310452780971592331361826989987626163711554413652494098125789732456696234850464380826198451673960200442585339417702615730166527537598535287539505874841102003714325133291162552316966813320727596501600733459671650213377241435585332226246443639054590805357766619043344378529242770769523611401618581612194601351540093703393054277427923119477929269002361938917769698153299465137222566081033217487266314687789320548164496157099551071821528561771149600781136711432771003199012353491543995202466765511051536616341189835774191611770276661113783634273743856361410862190085909158769771366154007871247934258304049379953728308155956383357728361744560695024409840701256328892459064471505229290860936934121714646986070457662237467463834275481689851052888840585585876107422996776806321589128750600092491861827637213882240250365070795483312725063117789818077878400261978859256195567586686666261703388596087296969099082862223646270325038163187193285502279296682404815766083771157237706671293030410191288891533978502575858840330675589814497712075168501094782278271351616321895497587581019477567416929584601552669683099172629545581770447928406130503123623998106075274537233477505445250997446572444612956857785988131791610651533767654056630093542834447627896400348859559052411735352459007736965376969256321097805602438124201152312761618235112345870853000971734849949383508324058296381783713321955745975419762508238413782924541538641488381969265246844876409940963564846857757970714861618960221500025205988666681713070363044954888720160123805324397871616679886475107270510915567535347876152398239087163017781936579405644277450093731225096688551470124295696479787828624088640169841248417599417439524745757275772569028923505738534229607738766411753170324493686223117014223691840458389181814397103943610454706989271577169354957486273966947296929657892157886144573397690649773401513035766591553167885385249060346102270109913110214272772406855108315665587068913307447890194530721857380809474856751979809422805168547056374797596126799232938634724378939935060071780871904762933740554904661917503988913022177485174245811256842260559210878719222889088092773455186922954338683615637185170049245540760324389489940738458515600130944875515179354298821468331772473825994525269520997857373124490004938234079114904224487615967396550118814400382242301600038031248586992113642081498153124775759172869285385450134014285977068000034088894011688130276133602318098088432578211658833865093971790163441424445880366638832395049316039525599720049496389197972410302344958016976943397654781148921503637285865759459835045751944300446529460153728629342101777580871132277533018632718606578787785043006326885371314442697856240403569877765711508671293269628392738220591840707533672841201206832963970835611285886179970286159477981626206577899217769474316471627618388986068438075257849245655137796177142657173642316001669876894843545734702520283054172010360343623131302150938886252383389387022033735092143078548235058344375877692917030296808129947610477387470251872120322426362126069894273096187329097575602631997979380819350579340371127192863254284770025508389045470000830165840884809497349776438721520851421424122532852533308786648979788010537024095356412031746807123630163093660600280786873576548654598858675681353142594092639015966781011353081513258871184978792844210835085312130202714733602089670445640904351553417041491065144924177911430735757875790957212945366083149022909915814532954446592356160368774587592865802267459580216872232985009794429333234538230992475124730243558246943438844183203282765644093453676584190962828720347090651706611521625874139411567544244080697288368860156655522006955739222602926676342117444908064634683050553680920745400211250737647812603658606250797730876441651519718840110240014705674836237970459334399886264551276433949594239201146881890434371900429483500401212088804466562179759699063351993587378262231770164629340679622063720082045461939232433789996841307780888977546545755001586103841060446458800675299522804769113974077140887333969746642229035252713588285067628959973094128874880146543468615073024928522700013054898765630790117595762848680230171563710437613519089956629911543861833044160208565323862148252204394938733666547928917623834305785890629642942078255673395408997646367257746229268380037344324218581467596887896145729185214540097296021664701346605937607349626755745639806561028439670655453917294724043067716464455991394357744790734086613039315984741474101850305401285673570321760477848981522795751623268861244614519816282933874561464379738418304087376572253970242254918829815472758353075099878048691418332284191902111876025333186085251364544650318110523952272320576805219380350193041108990244361525531034606818358446218683013878067878032203766316792632177339598217956095688962031635638073774678770672688345132730255458670285400893209928304623148316395704875325358832131170686266485056090297576358559285261350869175680478000485511290741199971916715790144394837272594122698294168989416655408471516566517095972728789830031262796586573857372925499545171842791377587583591070147386071863228813143330384651397825107268252137194068031460860773402123038774386530238174779886389907859552743510975773612755042130130853507547685391595569651538054415418452593596367814676006657674990393364797096839094492126160503786094079187168027534092123329991120842643783629632371225114971140766737243011477444593504616340574269330041992180529721950553078369579026777208155527577292982643995086032077945297110979669741880396925149632153293885823201703326005221359265926697852322479305964635458241684162668625041909385573493122249105731895391765672805404803722059675442686808621377959178264583804917890249770509657727259695331936990440422718952183033598132022824880082322522422870370798785321379948542477968192101736357384952254675626989297064932516004382858755625800401833587393273821188601021367468259208794661475856361445224255361794098449655963906374331514119494836760335326914885414830846071364014351155211217642503835972233309987965706289570524300429812083943896595916506821603254800610310479306581864206134485330538861862746421884893618292561780026289050654753840374348699547075695588763835379517098557503387049968356325981807717664028584746263940080176469987072033274603602446767184361338829460595035996961123957045493794645021795247640184780165163663401591422209696863618846210204381398148476358054774972972665406792645830251050111938991938209638708233628706452266648658779042331718723113914750344921795536418980736114494035805299559906259973843361678428356560974349090023996797405933455590548649646852612662455830694871094172722161041041904732087602025822640410001004293811215607335576894718881430449886016967956773094781398137682376038865577690449644149671166681394523725645699219263509139755011356158973726110373851802682284217482195970202693938620628521465810639499901078868556152256112414480160489634401470610053968897548968360643387083168929551860014560325134825895830277794560463691325289611916915793205727031768575233120511290270493956619063350497980448061453562530791764551417294914183163525314819028198376086000535531122132486636766041961569699780720417174026015194839290237832469894497054728362412931480649223291993331050154021838434024433946921189026376163312343856037913312849493088728098078438896632943215202969249403582687504964363772471199125995313910630450549294423679639835340841857498295383114612558628425322470182075220099127003075099170069633495592296146577621118232174179252693906133670313003361363932896638129190797572886856187769218091794846385209235673724157601413161832315473950172534828363528273152890029802198291338308454509692264313573808231370197352380976770048878785920692784651465987122289978102762758553184276401509663800866969505903296315880128121471257028848615122882719215631376268203813768192511941212073386033612563993285673741106791461115787369620371265375533374975269373635927179832883151168129075359954305270568131771415561039510689477490507985334148842593932045101251238734115558850577456460384477561806181274578199021915506848621221752971636149546703076889513363049860127303535413951556665353337972572745464173382519620050749494114726289663512565417638138795087018866701409240052265091362318118193864214799003429039474749114967654114309131162645408937203389248785131546663890164268274995462832618939676610163786410886794371875299023069826582956002624565155161624179244718570189644641492980657871644058814340405058852499843368042524709787472326571636123498221813224932680831302473483025896380080332979152335516142689349257195369419670689588246574907329296435569488203418670364204584226973150950765011765586493671448554434039896337119414181221095148178728897906270688782985589946934810140363406379594199632721830168534312119929949284033622138458522411898637936968690845214475438744493238246242373829070123290484857691681433613979992246460371246873820067536686808067386863842064932525634439010001327319730209768721597977148220619363438361851564284365659252603324792561896423587651606968950194424579794156981964196032666017735946639449677782894775747698183581123299885921414747882709366916793598988337557806573586829606149232090897795165459610532264540786894050043465071752892009685563276122217001192898936741450719448324467956503778139500391859781223773441222193858330896955676602994029743630084634032761070759106451350328861042784172375411054631174780773744955094545059329849052785965509724795481281682348092983502385613828474535622236450161546575370466823761437226824757669922379432579820340516244932967848078306198427506968902199340122249380222599837950323970278816752767272294533746904687850635490818074149334080072667324914191151134679144229290793949855518933496661803614417519011989251203355947980029355451009507877220636598709045159162747303148655782676419289050690961339545472110484105743190578236782015072778067401703105476888511391045311742705090000101629664364904911408335295958554524037062569665151427086181989996974840032566619523054497892534447170336054756853791369486951960343164878491993796471107759494540941685748557995530750167048663161235963753109097090029467536605480029694118137585513903271771550095026010874329070757838751569212190179765856890258540483013162098738493618939050820029458768383292931706822989052153856753934612169791638805229969998154167331180637577257390096949368292584311383953020162711115754723608955887285581253429015430215066970757663072041808893929229223036330188167654631237203879973976584558607929171694919841753137350205585188636215593269046958443536061627482736322483872365592629399280691084192518211466592480529907593988222298247176436142864914024299983587323480120508927348444421433384471584967195720797811085367862694694321819366112237914077448371566084131045890031521003776027083564671223841337834850747753931633679716523275109823395068237142321708816132879980266573525143554280435996308046248394224426473950855787371836831873939070395689031308656683035407885342037704516865963749157399583349041930543868588495789077615905783815720911434056899183415546253000510085647663174457636135782476228589282459877671058139828559617392644536634743913854134494352861420990545707464810445853447735666876700659741939201503726126699539675382304561623238006988453090403270001508946896550603607258357721475307758045883507071734566378766494980882662489119537490474035022860221943378114151261145527428817719471401497934161240929208476058389028811485646620120121993956521027809850556147311282271859591802811367874051913739663502992011112385972807194360981139478010048391968131342970170178068980103414299843639749210092412701467150692535646084261904357270090489706761535148408788674649394385831254702843507183610857934927582793377338987191788122077445475527780572024656606413836507668103995827338343896271222159564473192510305529738471415774886330490246601706028141286432068630689170598862636326796128794330013873460266147995715788750649197847871607428766096868859751873147600214752978119902698218134779056396796451827156820547142027027283461743836229117309760300322019740278976106621452693200858455727510960136216561970762557674818857186097399081216841630403531238965848469460796533985536603887695626271556192954790764966159275836333681671652569915131799601728354308918178012692553147625707821096182032180388553291977533437616362774541310069725115456828059385868044243645236409041228211660895481869550503061687978910231650524298683517738571164598915532276330100066079040762615147806448179026672205604586009352589789114786689054689770122871102169290418998057531232423713062565073358836336067114423584469142950406934557877593562975273473535595260796338136366913773493470364645777338188235370773987881140749403130801670452960144224995618182402076598030218550830924252075282425319480478489929734281934199456308893597852492108898703730359244741839294526645416185528672238210152674290315246107536929417206782876168945842406782621540808734837051207239651469481479876645422673473687399698069889711763836990365086814573062573297734545030560714987328276145037743906752261173408597683260139056246996476192608052282657534494551324717881926630196101546645155646620762363362067065151019081690821843258161854533134125641146514126926490281805915856920395634155270262962223152432181624696257307828911494345069299338141029245667200392039742064511235595609897189237851644073567625057512694369743001733446285569341206052222171284337922021993283084761147610549346217070333124380496499036364006297035741123620424731491856661756407123582827902369504235758518739755759571520557069442667219875399215029821938324395670646148329528518405781455958498088161036537260351936866567638946191482659792591719382885662354541937342008326962572096465592674938550984124241475417583696944795199067955654525395570432925585185570495732592197159303547673646955966287803230792995205146144297605369708155703215864076637511412965205551234147389434827187436581212570702750500675390929037920578979900692081230366539343114712578985074208924748168887330479255057419810191142779004135063818131047957490795013661363128005953742342256063796883767353507658473588564641157169356208275964587052557107145919697648280211969901336434171351753410846961311929162843927967306579193817451529559359701294485897609348578362303845970027996178117446219251476773620474625268400768835370389907979600991685596083202188928484301794573567549488358802820902239932979570604130096551768630733541702490826838583336242207042849683834166499465306868920071369273872947131006046080485668901180710212686479205268043071331891013721878193248149393501369880809618855995613188999425498304090846115089192121798197704624437635341363825157867787958390430749702610117495574065473850270732316190262111081600131145169490152760227386331205051649330604736161876661753436583638713783517534855475440530685983811208583308603957658085330862816859866616115545956418188992022009374760547195677023401853413668842131074620865254686147638550198455080060137023028205126986272775257860648054527745511808586771199761883567711177438994807989271344294766441752494302728396380464352756830342428454078660140628255741389641057241534543028884849587632825802834045289450202710364023170206573501525104221456963166938852686373075858289645563437341693898903877396798810991331454705424856175821166457308550860333423848415300117242767477335908042826345664244562564209596248041291884399661749051948963236519818368090876225240016852324990956402916711175369719534971543792798688341754136041859503412728630690466733122219427398740793216508696907820365287456814391981190700732809961306165587311600149267236045120436174648764502264570674479122064249701654708186701625030985020863649779786666525792085451083394857282768247809397681865022335332537912786494782437234163267215130147795811863291485455508547173783807353722381327646985673535593578322261166661826702502193453046563665318158597800434081968008782124360190027597029595255549452977816472439885119625346553746502526038641873154706742400948560565776837115811994551196864907779002723913523635788739363672206545894609560024790047576292072205796429410696227238046426412171349947050320810301431359245489444948227769596121729341677118725500886729537413680337619502971405824608087021815955396396882230084228482469050864811607282882740645974216589339339480515880733932501170794773905281241242183056649338459547070562101715538562818566520215743792076540964001099666408053115135872349800270913352201502794023051084852795200205816510552219167804385565620955385584972457134882491240046472970801826455731838252945478369746678118364805828800288415575934534008949241616038089585843812956281691850224035515425434719360330153180441827110010945046710254366059558579342469467408644526529835721662223202094121548963222529615766593202239290179912296435122845436042823061926458965044473445136027398995537970009668802008056410522575554922288308958055084499449234054015622696107441612902486417360820217448161782737470501168887352094769783539307813703935381354497449047283100807335689084518540052781116907911241580334030526889888128080132771463467454387392583815687635727927961794161813319276972850051433209345344885822847416487444318713204261593636825108964236094874996763126840352730140756137580784059089230260414734849312927967998986290292757540925489808067469867510256037743991480287180526051744230832017108886198209025251788651153152605652840006261540760408987373054318582821134027818663865309666327138711299835922331055725059529497687100937690114643784220185080122171839821029575384566555786029743012373356107532223415998760376431265887639754885566597257337104621819056232971597780822374370276561113083268815636322839521116380126444984674078091197363903184542829594228390866359122538010163598852998236040827090699708665392074949163298086279384672726155548776734579809438725365944033708654125773849676313751115631383024435797378142041759474556125494401436124191057184448161777198742606105327776064145583406457530239329672891502777229765560576071051426747588302717228577108027510609124118909287741475150695261730892697200635138826647664127753662639158452908130637104035561618347260743978046187494557806858935834485898542911138046929511820199743291018123621268011150661499400638339653450994297859328471871843293529532219139789837729939874107948592111116423372995297816623504624294124242797328236460292803524630177566757146675046364967615503326197007311386169684154351663577697441520563992818882898319117172574896139158086223444004119609822530281154314673464627961438983708014705772058408990523897441189527089869164400485315642035247078540802387491677505778560909739998662684618706322940162048986917652777139463306262211250784585046139210752611991664902682240665187188835996881442183051038880146238785464726531552600876058726279130419527426243263175506446015143199474076633238339227114379159187815028406749291891319205134797569004769411198837314179318866027858270680386460628989235066517051650438477099314523357026623779070656985070691837109131211148894509308810390426691554164357559574382178419704811045819751910568493705958739075805420148867876740643018312216398882461388315160309972533284063713635547074895966624292512174161669305717224464075209616710485943827715251035130822404409571123774481682216295477508197325519966588846214808711662109571950415374067008701430937426715839043798841052633380463960356976067700987110344585247801601423454070298883173727822143742588458054321998998198038241665640649718672950686121298039182294498609534584837938891706452298172425807155527198086138297105503182399134559428135587319017454749525029898729489488584993673602508561149139960774666632334614530163441660743117718229451396975662992204339292504308762729401213851136424380816100490480953778803179556387527570142327919098822619366685116158056737699421305435226326020978491127951779494378144106728515984526019393364469141945965605699466405041051846869276271724453074762048290638811571732621535482010703485749942905824643331900962003631934758943556914850329678937352156885648662776609768575716672685800393104149762597653195231611254611379025836821446589270880858815898774564387747095669504068856560403918015558036589913822552063219817065443384257957266527275407975611598625970724010765291665682170232427316875829459096565063299939520984850147698818224409971745990042655941317701033201267191050702320248119512730419115364611864832535807726566803887566439823887651225699941423072609942082895054800763150177578745951233968378127188025825532175334918320867971346279853893514168197477980287803382897903564556757014269392401640332044004885933519672158449189472536640160778328336404122314784375521257368632100093088342448909821292715695376434520417910255697244205078620457505694777978593633226925182594620293394006144891539930772510003025948900095338189556531289893786166209628453345926924896550838263908760490984468049591394089440297000004310223914672007768092529912320556392573045151117039101407173306374305617539959116126672589273296794419459089751423398109107165054514292594428220537986833791167920361510978318278230608345826854798989147506120421154644284651035300592728871206741512786529688905648636169100426572622301816279767904919866956509484606872152878863142274540467041454202448388665995516190893965588786887305848658508455148130862773483582172234052360307884629356593579775838961493685840898274271848608621994816478374747616117899872471850448033526256389982724182076290639799128916154818797544893243322162541261652310111909058137987117306841884695083497434843817821749426963046988002286914926300435437096410340456085680820523493172972642855656035352154332922437475220821065764452393757160178129092967570822768121813974490895254777980256668164587487856527403540886948344547538250665450695038134898530015365071412987611039722410620738275432211474872569586987905884790597727317062192301760048326913309049648252267951684377739808753198627295423418799577512335675678620008517758727043460313057791948506876205287949718523020497956077047746880415673493260498472478293663024873861447711375576894102831598615603428230058656269196417300823545694432740083305994248080876134193326396476184549323660937845902678541411589134326895816908744922906843899030781114177954002469036750646548276146333464130988035973549444441701720555053745025762158423920929601577713282630401125327255130976538292063583959139995943143378101295503488150754354392575395074066030535473502486524487999012701046461212110797869843734984398160126192633768528521123882708568795602737863070258539631196828076883932908581739039504263730841391729933188156955090121383513323361140131734458276186749350681158305156648710326543972999425881767358885225685453380693872089806845608901765826528785409016994767560532958658085776260289371160590865572667325679070820874559973115546997330731765339571175043002980800537721871231100666560562507217407752094255900681247691933750372083796050546134002565461505592899945874256756591828298651024449890295757319055106258173092704874379690003065905651926254502887324225787065794495916603915527620220657131077331442186541390358923307627460095247606770598919297008342037585705667619004834697092627863985575684344369974845850375601780637865199995851477169619276712239365268394415151392375590690561468039572068743163747815932687642668727186577090996716877781834199811378129889848795338024966887310669419861005356998333492325380135499860307579540067314098848405976050682257073591553260661931676607497048726198184567284542570382588524535753222535820274248896749488528618070178978069614101338234256708428925751897845115483593713054093527640195025148606938049163518417414722581657744415178321225851473731834187343864070351428951447983313475364324651422658569490742787514580803237861242656141782730807017520858530595892226586939163535144158791815017203335188351560131366670108563828906780055503922379262662929252518329399743322126675734483888396868491490193506935119323233950663323002057831800449202525162961557781042622719690637623826650239220971289103506743908358289684202878833367793579201701035394318156562261550561793384281045986928221720321421576021214397337894178080977161165929504082912322087588842226902399501013106824938873197674895188131441328348918256494396252825526830306472399968565163940792478842748475118645618291165921972417128884953279064766195819479511547328945230067677048175947767154882208876180691512465578103521544270565285765921265179412185234531566916628471617124326101298196021679793296515313100610378143471524285527510138636088125075283664942734550032474127954684122685341493558535583843721882712448423552708625434776677013509225911940839898611462339203752383045535681368596606492272216706322858928645134602226169956217677573561998845649143039110979029830665094039575053514764954647972342391185281662903482393402913264750885143731738090117756730310286127564328351443632319624437810401685765788636390899420692888911227571137124166944338304040009030647853905441705214815142810405237700839599301569460855144833769785625445168112782196909513834653447390752169914875902432002763528659644875249003885966143526899184888158306126564586483023083853274508902353701714776423880378723836630143488131009389748271592426711813197846791685309236644408396323738333286741065225473915517706942410695712622740564351421545116569682129054154406418631215338037365402886402592037038486745683730721125893594976232386932180865829555663858988959092333114817566107019616651929444568405470927869031308401595670951292149294416217191604140608037095397044562316894655041039860248265588594638792523722982184333753669211258154140973089089472283286595415946608892734013959593239202932629672429286393702833704089722108099362101074172330506969694452472861970273932265240187709130902635706860069423913492537247249508037587498124876279176428099490525122605185782334525049215017424707410302870944208203292118000346025778999764739879490531168132173979378871236238608694041065677824219492755293614770172039352202057872006380879025509256403379503151412370815593828864997693099868230271874355520802307085218928817237603500175391437973421133047228220789016794657309700485586487685467446840950307941486507781350260318132608169906820293049609265127982998622987516217176346472709966542856731570003459269472966243160682840329217224631978394500168754794662953377834612079410875637931211531098044328461159438088428528700947774948347158545775118114923801851438950704002973482570989142724532151713341895802813070283566404097340472035936520056394855084090623128168950699782887124150250738309085972076002108196594636585383561100300594751154021406710540855449471798192510822911165370102753609377472733754379888982148930596352073056420915115685925439904443163721545697156508743759785644289068357789227404917128147660658876412187010653881329248976105113434382340452953411910982269733057854376929475449737015296222285345521202926508383505278441587431809264284334233142378033386935473429194910547475074471895168163220408821553137063719440190711416990980639451254103852539695751528402083695759247598175328087034986642444983280494985229651142809713608468668839788354616065501317143292512483150083821240329569935483370857862383721825145637190229921913846359023520510234662505919048629282032259325707878604310329806899496219578209564147081114730367619360313909346499382246334720410276134970519193708012173536986299249077213076006652358793890553704502022291196484016151181652234874818024364745732834640274125271772362097564785666844839852639618511705050420458889479639278283879516012200547985123967946663539420166658721706576171118483402404246515437022833826588870500738660140172441600528378823194126034122155355057770841170837407125009371786440334912210281977991523874537979961357578164513100681289729825308842486501392050753929277436877207875078253037754004995419773081940210354604465365752000224810650465486630855927166261344210791369567413864296268533928997451821645624142271379426862637861849285175250189096960380180601993346142707067281002521270954552203883614236545452961438327911291197752658452681912561842673835446731995615989125453659926697940052150578804998604912840053244037170579103824820197266800123451419312708668898367502517748046303788034438515675927274628671038673207469534269141924172306323412988076844281605883467933511928928229610131484267096097627165353622095361716665717360508571397576778474321499157992246394843665737890507397656109248811655481437308163699714646912097459042045659097333779671666350063751974401791946641586811465035145168667041024358227603259587990905065288696094145836825760363322605636957132905675278549127062506233994731159961082001674047547899319811573963827959828488262404366762811977940586762229112725030769482838350013238053893265654312448440578373571284048111345954741284553152597985206087705420393114730682162347199577327727526033644398507885617703555666980850748593540982209081566237179920066844142134081926207338302913525918890958769168162187165071339265917499137023398138567397607679783363199878547085771088758654901725436054765566098511514598384313651560526904043235137340769213836402564174915567964096494045460399708353839097313392809610870392782736109529410010962104270658490090122871633783479649573570933511344575205349935302248336877076066581974755286580158233638939975235889311572359038122386573842308743762317974160097855448174639271261119244984585127118345201912418405451533079550422531251443329695776623520234088447910290312135805949511717113957608104343557215860082414346916666986597221809981949097267617330066873686846297335242700246926696564513347094065827929760992198685580816141824994406553500657354698422102023596139660933789861876130015812152108375955694290589125064792558024213481678423144935703498169423728975655885430070087877242605951965346081563058100352442965235370107068540971964206152607443272127408065826720383937120667993461035263664775174564583098284803167534807197459531532162765552219528402594708486459168919086126525869911820769473728408133450075728809367065696642120835979225892823549388910167686805470802130429751955302767409550723324549384545336779213774030899095820830595138576116492287272651002501801660299934293925302503358719372150041346384523182372275411232355135582638188848079932376217528395986165157436215674507855916789120505345909589915622034760672672678738397957934618982929919207852019497839897083149436961000698050250385336082630731398634555871645320389899372234480752577463315630874953955558677121378424247461231880662244741070983250953429417352102359643115499170583627213377188547452455376621027265033413618657292045328095267089368808598547782367602666084486705955342904514394619418563830799696951735466263307561796440941502477782886565845970282920620224009729794363520220881988022692179671953171651651100781979611596077728059882329218772905265032351808269958060671423900003800439920288270359747534830800375535480607611797868517137316393720622234171529845634284182093911559695619650381861430593705326148338817726728511212235799998233993473746481954514914840444265056651405002105148034396041280245711774535685007756405863792363446878632941744793548531375726725173732575911207415529118905311284010304584205206827179527810402172816898563862702822272249491620292334007717761980559102131790004037373067387978552809634156517011461497156025690394493880448381089023337318345174987683618367190458565904861918225079028749115554229791727192793072104963042422900390086590308904483920955512437662915463344338019088527823978380014181491808982422727773659239703697510460653516278587491423966460957749130457546330982202565862122822892732357146859933782629722040634782615645116909539846695354941293478259221496988712768641102341192087529187667969460594936637981055302977592521886700432254676903713282164332691693737501264514093457944904057972840841640722055930401524531243022699657432635684942313969369922405888132380127509838102353431225204861234953310118494991807686470401877484635891670007148792579082369588508301071040939972292933737877283802864337031851641861603334194036535960260027662591312653819664180571111099578097491808894686562747000046461456906735845244035560806710968579144821616501848085125103799890167647568654163688040642207674696713574675807422858448283795014983115549675935790967509283976521042909361127785420726643878726518508373300180038145135220292129467403370081873446460951432635056332515455345304457957047770101601159546626299765390265285362886961174045395652271658500013903779285113164059072984338660210844104328503290968098649418204052053212571574122474388535911697578118516038146300336298297557427720732903898349399309928999488509919017711740326308354719418249903613721305936208450288551941911050947064409909845456072055020298981826804152187660581346324632701324033281410042184930615242701642841950395238073346098575823333164412122005724272383020344020185276442669029332195452583395084006077508051753226969223154390877705699910211044038678331686017474586906576858287981954298216906281888915065661150831723291690977796747201294302129105465105135037941470547399562785091650454779203702911231216845750609326642590535630719759189903958127642094199468737098595253503378097773704559932385489035845361270338981969326312013103163196773357821553516854784326820604113755619487028376515562398905917655116586961881280561369314150300600231996019823811013832087088340699650886760937392762095117161890808425276687674361384490650199273681746974875156577447752392854456296864336827021471225395565639061265533617173484588224051170038247126407594776021778507859017013537997798127266275217700932867725033529713696265187446603161931761149427158530685741775890574011966428556356694000290133815886251171500147245192307850160361941962971500808950215030155577098204768958739367476842609024339350550201485617361475530512584723540352754698833736159917830725946433633109795296601255873190770542760586319374233216061061955976277171718446922975919299051855974583679614852069926118079862630603825216017505595459491046721232099381005429032581084815070800196377729487332456937638845865299958037850176420688569811993699573743950961529279864362863672549091828201647403314144142727539507757396803698965706847664885484884892884273660183769182882562530734786432387784782423106418548142701771672241397021667288360042805948697143438271193092258573708907495400846900725826263872639197708320828603235496018779584891472609152563583818687755723091715531454826201223849972942878373191395259562466681480324377246594442139294772832430121127507121764851705110484090779563345683232044693722567687139849675504503004055896430109215510726684738944332300285744584005426397711532554687010692194312626876409141043619430803645663115165312080378887954011143494098581081772456586606461909441581160930548383435706759773984339389153347198819569462085972790409244313767208476056289514067230637430083613516725064489541912996816753029930036202448946985219126001715062338507315639304443110865273213928157587939010086946506893628190088729264782389227483301604879938352077270206068463787666339318193346602455981243261150732799209474411175399906981769511895985367364522269778060310941341232222526540917476309508278122936502347591370384473451416543147514583923497815138791622238720343012686275305892887644623996318716259859683480607823126327872465052451014439089079477976123235648210369239369166984758454440649832289336685526523065112954260962597326505175622916287602582100097412058046876223444352394724153967806285007821565341376719189260229752388890717491617531809354385197591343884060090777256137630479268023377972904786425888080309294135765733261062618250366114570197182849056735795221456330095554816027171636665856334691759766142604122085803212301855013740562360766626287373694444498127075825890486755933810960884967690363273152970093366189475553730715112457121218881132310224841475635618584881008291813249083325701097591807308210731307310610120102390708360651367271967632500889505658223543095010383709461502751674013950136495239340586932501649344531799485927120985283685904626594218749495467609862261313148245644795853081252766513593932559129894972333430842235787250487309759816913061977211213963232961008140965221072601797374433424328782088686829319810892940744755922966425465339633895682980514207847022436285283483359568154019029460214564816066557325810818269145134786206243193913517462415229964046568054742492523007602939571630601562054334390300054415292457099434949489764170067522696890958380631501764660664664796603354679457013046682185144533569673615612567296036409644911917469413248662413153336840973921849706914325091457681305328832498776208212088241071884554268645553839639926259565147267813894999230808771201597865357309270688453405657993229813973978450201057660219645576620474569234597288517375229181419908396404654623859093799776077159928132267849760920935471896454313864656085158701152669004955682688646418397234964601800084778860128248156401518370908805267934754869691638247496510219298759178092778539894435887695210072625057185678750343645638767249027014334118511688805164957933619677960062720563734201940563330094698397886640541595264476377843842157515264036040826175685918145506763799695027420745944513296312914463166378754618481396817844855096912360636299659775168381521355217501351905107835137864384123485112897503647432539279427722989049573956111796523600295721010706231982357902627446435331586522177495241065349060417960374022702898068670884291790648448915240725052515340313930696116915127708550974026523663579884853568186713799166778335184709954954261982124200385523718766637513834344554843959402820162197878542694882680944252027588142829547947014865174873784022431405014978377762296257065006552272634143774519297060390921283240668913116789400794905869185613081226005235535234975774019785120106976640843243988497772375901698374309904907529965785386963125652483928941741421380585840767488645940103427386829900734280643365093614368266402861784041485118652219260847246368396321789793411926965494881798856052772287358943487363394579450394833490384617638631377496821757192484366998680286680941064552285736057831366357449672224287372829912446488774908878648577163101221345180315252202368385840662792806781342375800054733181714237010589367004399910950971515759972080611723848294481060354114025565128085373738678735703483188416057571267360552603758898776200770483629473695217766178054458599473881255659636748005690604915935290489013819150619088931219799847188089726693429751957846563670961990675095614114022153091366207895677291823126063669213942941455391698495693544588585919630856880917867515148437596680533060643447332514674768324205751876928106663513569943722513781628666102003666941128131022486152691742118133071279734053142645351839851780467396910452933471863566128844717630679888445286740415476710441934227755834032223632830746465687795047827623601256667921753420347734027237634228835369480919098969432584957870680391955098375396842390458246544782403125664859366736802950736438755543022037001829618998906631901056033148026696770560653243500679574171162451453240605227652434283163964841337423141577059396357426808545938951911345740177697808928734678367055076793605427458682828216328052719369946345814372566967550702555861837133392224063960917092549342394260195817715652605761955192147996186794207122760684723943685413457145100817335948662067986413981606015406081789536572851315764142617470347980981211689144237759715766731596198204889826981322481701146901489739135379120815037885409951687289405569847289754501985991341033838623826825375390989944481396490683519383418176406590501157250227836656570039156950824612907146940286618497035713297194180298050385638122795245118687848110550666853708330972339348913452046713881429119961780601600148965888508056047139840727724673347667666240689182529117049663081385036484654803936909098692437908526447833993265076752615076881844889047267821818025276256357166324934308887342333739879937926279174845181404086068072910832993856287184055830625726940499600311381132883565467456123664317294673942697901882633108194212575574621824061938703407214867287060216316690555717737491688390343474072756791334106632397574676885130555712231646580287184644993439432625225915719318126227459204638436674502801301457345206147953747295776261996459048375648941991168967792494883298866671027371440137391730796760934574761550525515648288583827196292381483774742129301623290703987372778791598683727381425423095842116420020215472445433798631303492613304024128775782940757938340123564028843808359663199236127595749172415391301190921895996141555269064053986749661558029533949581271422184911405358391943321462060537521244973122808741542355196632595805524896039979673360882916240821996592514465936023356982516230796871389625973260053914264902541597848053323088171157935568799143059894558664919471838343863338930943391364682993799610080022307947461672169003966533972503303576173125990078561086473532324986832203899500858600591985544499419645871720534976674207480010860999375436159292818194294776782654619075599421916917461865761742223117593109249158027971585657243756992842778136013174115492673774089128574453958380317261195832591665365911547780015884681318862487349017475575697796887920053560084340547225814580211537775474217486693496427498558346434781058794260001126153463581585908831519712771233522826224201809966177849652559513696699423446197625583609738310189486049323735817409590440645496480006107946205196388860130739809935662344494812214268358598302635083515729533852668468596730153857477598647359526648807234635845710108444217639665765601678884037737071897169489495096776164291609779170384809357045821673313390930133807223909094226197689937441285422995094187287399665691946301089564686143815566826830676216151622006972465056695525296985866578076867194312863838911004065534982431389079639863749576435946965586406971228973826590853411680992317186931302563534316809628544284857785411411753684742336459196560700072580535684051758541186971156670830281465192639847621411197906705932389906258055052236310906347336627634178940645999639392971244338365894571660635026215102654299586242183698708971862257241991171085095789707551811036000113096740254372170010279427925771206522825145146804930536992044881540356607380223221565840754852929664443328159966869176885765553430105998814498360420406128038292364711212112566381169107052165358264518348039056378425855788976250066280847941299767000523754258453935795632726356873512243109149939550506066748303203023290880744337354768648980467813444023014857446642186528467665028164837530518880874769688178148145153529367817995782077669000482769427289915976639290647488654366954203392979970749437812426503039946380797155260893150387886416392012920674144825761219083180031145196661174035039533609158070349531671151146969765298241361655534198622595350137278550923820290436172700244160639389410172538497739529991858772800514873095434037311910345417438921829341982788012311467502226390218634628275792870751077847438493036761837978477723948317040360179978949068953069740171907589367900689310845192361557323591244716146709286756829541465792992294170794090611576504581146318971104508566106007848748269188585144298868796935723079540976756093141002304222846740572938435681333959560158052669477519121609048097257042528192900207447582830644768916830521617188363159718877431699276135401804086869233155791477845216486666426530737576868440126305251098964596553711282803014427855584349653545642077277311175603456817157003911753530938607684131161232377471167520041721771634090358805595977091885166251940804309038415264303753010821440670738745458250788095425266767786944607954366560019555721760384104480586444362737592861337331293474114583017833485327677641479708815443354811474736637411606156856784868344177884213099386801357168292317965963390389939856634990199879703814561217944324639359343692043175536921216846098627085801990887701675850860268363925358094172518514789929641403207301071557823525817682211753244237563888419678095326674174049493913051266989459674321706796475393190999887768969212038087784976075848587572050853261331357389778317911311459704007851821239136653173374672312092713006152600117689058705186473632326619838296261498528429662164955860521416833804180874462475393916207394203099510604230872125653908891238456302578416704932563407770727659720762142623887463302828032880496474542649218085897507679074363907036317122402256302439098108542371989227165532181971214821627915165338279834710378291690658435524476776116863815555683060381754136656834615251770693236805928131149234502449396205810977365832462435024785931132793640316622848602529339801588983815919989108392374981795170042274875857249605900353868782964674964972945136382558578744917114176002229560055385339386234539016216539574822566742692640789701246328513520243813539513911131029646145144621043921838615954084493775766510538336258830036729814587743956450456544694667719473772870717108500819294584910083255885332534534154807815903687567478240636622131521078288007066447882581950441162070408123006737848527606152153558153539327111080497801849370121684165342314414141548802389686934995585609390901216990341464697554186717293695083944052116047122428768503599142574706025677630439239700100525002076247793967524256614457047997262513164580946059927775275568610407404524579495741477501036956129143122464548908933436007039782818189429174515731543075544191651242179438738541643600017384524122368155313787532038266195149514633426601736147383464949976858265461326138345217576273301738443773070830633173939058843840409632341110951137779701130040162397225883110234625421271115555141524341595801969341740733768608558573422808213670383898893509729386478696096515163391247831962109992421383871651931250065295536943047075890695256923703219589636961795576568574874420449186765914322929535170798256397184620586583734808818446162296743655411327137624662506031399063876697820176412971141863650383070324099826615279682812457227189814594416517745064342093970553158713741096662113603755875264982083774319765614581472106556590999632939439858479153488401375782226447742068080629053621871689046499465616346861846733351100497536634547500796269759026163728204626215121287684946308022465605871883943691058524588409590463557139702424015483868777031814126999651648202309283836229317824824138902811530206786261772686936327445347160636390931605009763599487411154334479669623851619021338193925711548186471309237162768877282860541637168410473963614004738882011450173936395137121241499668983864881311932789832737759331372973953805019954262407825964301690076444140379817745288439170987846722678646583729194040244579888263941890474431699167668262951223123240892096143160256967158185220482925186224133479184072822104299880000624796547832715569588143612049349104451439014724418493096463476594954853890877133182655587878652980755561013146376487784786195877001614313757602115004561244391745981647495546997361503078428421902103088798195879437394857217085127852305077151477015725785576627772718311362465736590005763180956535919006408105354724001077367054325777400395291007492189968278906026864557423823142601591203962587712996323411395356057101029221983629169090318682033963152604938139085394932255814560412308314842303019231552360848774367816704080274135185052234372622977859322267980061238368621879036643832436940681085343184206882385146528950732046909927750568610433949998873760993780793295245939548060429014809723318361711776174570610956987418009704520039559122599427627870213059024409363424905332306182090676771756460487462650326185015777214906586663140544606855464851988727542684101749329536652384039596291552990224900591343227755155470766199592986223429814743693396075631822564730424682186101782297217624349048377536298727613467590260302977112565298185782226264096079500665981025624861441219538350925264658144727745337104992877701982274349213250334395753399738830481363524530286837684537217928851358628506190931103390661771581792787615922293975895749959267374033388012663039236667777711852167087734301357671255957179856992868828114525991243663731112184225221522771671784769756361546882967324001543619390625895863944904987917609900894850756301720674344813189263248244817601709405056292190064195046819220275141803257874874710736770296152836185259644984039841790559639260821454410351638864250576968771942175236574495090222105722774948642931412448675413884075598514659536873715504650466931263712184355252449599752049790863179848209339372177278220251363651958121989994367869679758157242692101656612493325761102935955989165370706708702605339953026759419290531990920782605204781958804948681096395860366491745196828310760304905989849608854394162120779496953803548523553859400961247037376302630257710664599870433570550626119058366685642547839835711157182151877748982168142744011670955255287326971886158383953275748693573700289223708085189819331450614537102725145174718124955105030086373047500718179493493438394355886702812756942751153106261085451315008134049770512372000562071422778777891703470806231383442633845492277806856256935226049119863252111829316361790853175526028883648610193247056118640844202393244594085000119028404162133149590023957716427803290625647155521349020626192981650097800676979262872887769201903729358786277387795341996118362484392537075719413098620519207371373364534874810654435475052064670017012158014037182160499661344486000738594533682257057226120572467168858183665708624557931005171944581684762244968133580337250792847560745457601823180182977959327394627425831511369557539429552119959901603781023113515871232670842920287418261091431277521338027127972095627968655579294516200746438372464750127268880467837805596180856432566999167120231927221384730493407224180233098281047230452064491743541004431417712164621452282670052861488496132903172198737634944758856318555951737929885928258673139819781341071283149230991384816203815367576122058275150727072383471888234427529352905952686870694388760969308130975800077712278372607353292635290870313861969434294170894686283470593741198457664926066329287384405636601890944681982636123710627752918117109961644393528396278965854110545589719134062487879960849107247815518651114807058535193999354176266951017061327691643416456426336086534080336519553409019720983412665456753128165780849008437179900924351061885745911753542696193738882642983295676102240537828297156055513454711277878054044486707029728161587853900023052335452504255261269868749993537268306310921239163132946698561549606293622815386508990762587971463961140758724411496199051710203464192467527897126144951068120217768255407071042054429700816363569567540952175876837137271048923777458178462313577220792415061411132271393904481408096546291627616775558556867221197468861264063475381507351205893070857055269258709641841026694154107155838177542487846369607408607248410634232383753872143888770149460539805951222069964134851687561278256841498390766426356394052300216630530736093575866707004260829661806052730722357935575097533366263679170763622898255509229120716626777541366404701118112408882630678901527843691072124438385135822870358966564575899380071311003159544949226190731435298901299478821753178706319503690823788781223656785031899430410619975391789891696945131702772467609381280098810646708939831869683056426696050833831231397915116894620857605885352742094729588154494164205347110675437416966819733546727982662378313235946225656681749721220272302762541972629453857933695071882107954631021176102412848384537540282766272771952697336311013947293734181412754601969508086830403362286875738827724330205723585611194438071766134148168342811701477066491571209125091680864661080471882973494096738000975776886451850420967147638426777345245621221823660858724438036086764469923966779394161749668193847245772974992171883550790101296305903805496903459677587126895592187655401258984783536947671457597409605166996927145205710905148529680957201280300119380364225586897564941653643462564699396526385254841016098976760474659458828473812747488904895525801893765635351739782845905021186450524746117405395503831442771256777444498223067090346351265826072911239140954078825493410587016880409933165824585164029522929095814227234450195275791788171134882813189157684487355771962064372081922168387864103383852460372703068128145031817751813037127930478002305479819233322735053119092177042142560204782702508809195615465290316071144165774334869514854927418222642881113817109456950516787416294343768914805230725431398775216009894610982993025149490935633254099736576713450340314204070372183064381558086874481220443968010395238579504319487203755883697483295651159495472916169388624571473757635044045697459214551655470715552845176021014913681672506475089030578573893063489444852421370849358006654123158279645584306954957896706484738921778667186821876867139683445704100928293875843029007851977246629492033442318943985398996639098651393551311421256326615153538154146232059168571845158283829186810955153299598526221263031697525967493590260565508309341146840535384820498171639062926545870525985495962499859600225567616593443700896230589659313517892626073483568455847350356906377456780196920710036540076914651949191053128407170375796843358252354252956620053145888326343562934524337753615345182126050826965312538967336088298781844089196119042257075361309299807416363867626521708501802322216112655330435706534944553867300455214534672318423087876288983840577424672716603925140829187527197676881100552445484549238636962086466880943609922463699878753641490512142672949787834063116225817423897908527151230254935519609268371517512734683805985092793086447815575107387366132824236528958354251818751146450028829566659556737948893019195841145155201216014041885938345503106526428977535425303847100905922889533044391485504239632910422485444901826410369556805084323368485838340628837556217419730907323885875929281341256803984644569471293729794162220109969272681623808146477701366813543491638733268159943454043241022096913169209741487324843320151009888413012714407697529735262297582312762563490101315933935484476968285749507150442158785820238139992603873441808487190321703258762653962725223261086714707635086701128695732589419319185393441362716059864848254484051933313151852683597374992613486740750693018940915039085526892305399041750093363658686516296978606992778215318065489596032444453020721864833767592027974967484337725148662880026152830697587899551162178200498676869886334353523232344931107152936691105015240909600523801591264713380109143599519368840634213744976875555485503139647095788655040943835881137385845729679252099179538254579533769620586728288249822113954202484583017862185603539729076749251442518465896231719882123437653712503225648031698047701609804299614936936343028609159915824557130915079698219391791087722592287431694757561844087713657528874339342524417933370512466280676941647506769889362955340087771946076626506494135335117463804359677416900026141740392207524213735120205483014248055059834281609219787115664159769526986028929111819673782397632912292094204472951503175263300860653567880394525234939736164060503744443481653500586225589689265071847020153033923527315476516703629378731264454790815523009059739135593133983626485146574361546618920500606386186000165205905324898136764299693906626237930986941072525329304921222502250756302347495746526910022085366920369741089335833966508502935339128363352777404345191772203907734513084582422201226962582977661593895674939483221858528532638911195952422846075167085164926168940138305196076081681388056347678573558104700935427701657407584916512412513955029161553610835309234130746108743704650162423506694466746885233646029629356048569498922672963399048319980457485699077823372715403337636384577687432798428800263824458071795910070169987366867117975484554600798352922569064292809762567058477294539276857460143324111130429919036005126079539860613489251343935848703993348695477510140392048237580221471609206872326311231409319661969583297374585527816418008769168297581922074615110346275552137431967312596205573331069912886105296166571900671977059937687107926492308954539001839167140966520243556877647487224984075246246420918704004644061257080586859032811205189306622733766454023734659832187169255988364970806354756844489297287120635098656727327803686053754890855544828545163354693838915991534912391641399868561360226045920778032396810390413056523854471914201326821457840680993625180667239288525799379443879043523266971311641415561178858950894638076106768352707201861769242758322528295612937107251100795443873916482870058341717714653988237353847841017323329668054521788393090555346791905518570959306886566386424527054198859961743735159272488995894105249225505882435363229741249475079215779818163981767819103494933913075344330470581474332272722887460708290932333988917455351589406879971231366417517576120169003375261787223477282501040078492801991571185515465738825247355839158579812619584629144623600585263900832852203492651338773723789549504208270643636835182271394190237790000759649614576783549796863180419040638699132028794131020701482757290584735323756816335861191223006478186743510887054818879847815521238553272121022784925569035445507611452217297082437339050747576322465169694413362300689456181005104715656724632923625168410398295854448247677653935829337864726260096033024925342900417241331422453964076623352551372746733140402483462431951330575217344761454106299689964195663386226833975526751521632937127801952684095593727925896816767252615466116082619740502696679299878667613890096486943306447915732834997790123440070098940662295973447285963541962829842569215868984854526140284280850572814687515999204999060325861465942991468474338750071675903544046451774043703416004606736482355930166662837517397528428250788599811386052308669365423510848316105578424666570289357119748738329793050446108639411620280568214972021000404085750703066134537517614373003118330404968549907173585068704481375813039317813546181832641752819269256732403098482143393880305295024340062801194169203400640604965618470694348541263895941295114350702241397538081996472590689525730956174046520404103710584534915904181436677453323832327144356075311920136081430372174545829524409545903208705624514048728562794025889132548873474813727086553401184590468339092869149163268123003074930526975206965275363474663670122568786893580458367808608772107049114946682219050400003752020120017006851663916626454832383500865315247606197960955475515019264379944066200259676394329616375735433861097809567404292951926776498903168514580388627492965013024395578027819843698146284964951538215509320481454013106426778244741296212535204380902927600461845462522094928114825410285113032181637585726871221791316478193527903146591826634509222004388625728838628279500370498015925895017222201360582336383012725491216068065141504879946121554727093411586343627413303248306551270602495133745610623084906020006777533130739730934073815217681819935262990242221751359066999401490737652772430490060993423620627728326429071904033900638337783374769743537502015998857404099316371076688474116818570957745967650795289551761166735542996793758622394260421681224412370566496220741807971809793299487569492670490734117462199295937017513903968806982722705944338978332398589519555664579261640747116948104182260740604515619806771518681354295031019322886300177386357319733714034119898780989552442029885846614938055820505072493768612898449741879705015518809566756766473080162601679935852578344821441261210133862400067902086634579764392265668253047921573223140244037928139050681397511497631758177718040439074946143736211747277047711610902823154185304456245167093600554937182188728699867835529850722889140280197438835793495497173970054605629528652369489367579084187514885317841115204553071731960185171484449276887219127470200040688398278094919750610184594180558818130947575969154928389051599859512725547412896003276460885597885203486866977391768326274069436921412310503276353970224830329883400216063066839438984245028744249581786611469884008194823642780803694355618223930807916855864617199070727372587509416166554928351229277975787066063731390816359233254267767434879647430089995186914154017413022560090947036197264721077941559469071274094511914285966799860992416539511543049360256282564340378545294040444493012282962370311359791425668199919597402623097499427031002048610245291702042067985157318415770333330327224967379087037128905680949578873060005638575446708741767984562371032216379068504505332123266376770047072965436730403924551236572732292477338511654218866398683309574204405802723300382934669438307366914819162224979614818037876445825382991587514690137421968537430834843758904858407185269314305277248993292709007234441284457858337674383438587994979805373123553835272541759261501808279015505675975552273495390440911185215979988393587202682399658039181668796983354797479472328600640132010977809605119073259750918613435266224101767086386734982054275195638900415535716983415576376696372870413638247538032331178860402912924984250424561814613649299871621209433226049129307629788545316105181896143965057235662194954760155708428157063132135067609045345120271836383038453042362180508075417457505816685744176744365314352976023675507927380425734316356441444011361194513808660570319468474683587912720794133277764114149368651787261104259721601971902847484327665313936911952398850720213814814773408463465498315937986765550699080155312083511350624735729248865841620525460854913631338536408698626992136786874700278966110205402803254891968846831464759353268803310184967728520970792262409908414008592475557471020786879400748998034373074474287886883984330160334201441982155177239368533842721936172692509829019378349920842692715416309379272450218088563235255717350057755305808798665705166765853704702312648746252671814924906806333745861165525331472911040759592556634236418624287599800882464645773728711664678253380120021518477201408006986065490733822543150867403686020793218949942934956240977194277730023289424109730849495634861369290555030175874395602532322341243869122200543956478736396608216149384910906981715644674678911869924507889902563389476942035726108536740345991481122620021632871680521868811148966164632141807872634502626034106039287409199476119014931235154333117579481525335420395584752838997767925602291583693584170498206254588824387209127937406006308362169390167073934736605433942365461195880913217746422764419016077148554948754189791882573711986741591556176110953516435478782575222658749246823203575799358329559717082550285541322542057268463541327808742981729204432515784430277197839916105601924829827015443863243134435039851349655848968129580802702440569112004310911494299574379407752704873061690357378310855093601677032260034647152732866179207452818641035282857153053558953286535707534867194512875625205242266611594146961130071704056028656944846709948082544273450816195736395763637642000338322937286204766587548704006953916677147090825004179912658183141349864341037347704613793290207994367481263504842513253974456139766496245266092203267522427148093979686329659706544396552396839894363499480653625672214261093114144727202715216564749696461640998896346140252016463900969942138925376236850558801778724776473449717908165811230916432609565684875906647566669699484160509438800010835347989543064420455758969595417344784146300095984339639064896400979544597410349744530522672334928849073597029705775594785297841328182040015630424905180531598922081738358542533537061781039259582612484135830975509289115856742667063343995672630510656945728399427948238166215272439449645829068497621103491122320897685743289381421528113921977472813166761528166848590421411460479920077212390856483961628611032266405378594167867531198725441605354185474608497622395040458077197271265258984917545738301957940996152897412402139262307333291566462644155464041993122206557587143881904497694382976303873995292615037153722767811415029749140747720118640607102899666295521334113249938297207173675822270051388669568402236673739628029468282810318623410064287384077642393906405151998806689845249445274780525276325605045579710529829859836284013587259120724117835028864591408560247109040091779067383233291204907545764835464297964086028276359595913029319325690986034515606534445687605520371491050345633758397228733102144313076205835140041807972140145411250215345938445725128807251144967024053852465132309955499143918962429763950123315068306029106270212214540207840959784363537126920261212942799203364978445214954030941933327747343053606471761683299786423081603996821790736248063840682333833007109901903661116836328380209054218024840531630825966448421765401359674656886874041417894460986071942617883994646572501961101110969731831428513863754970927723250181525767735729221692086473024210268079481250184544926385301653167210066863866144443274953301918533373205810885571434957286066739285216623251591846528506117110784783699914406552985825420258642954150859111396105595216669271402436159377856380553711777246219870333789009090198383024805465458191353579669702235210780385792280944067798314638199726906640646765816207620674024582833691012328933990577549961642242393970891012801387835451183558675138552586913035052841482975367010133660539084739525439261566475342458007490213470377779519902586496999601054523377491312991935991259539138476585429625925244873512750358451525260434606950265710188227509385025699922771248225529386404129089777684649803742427229166494142913747836415041627249496285503490007309666988513415367335611415923948886661939782802241457821051879824984130872879903472168031943412837393554839684026755880722665355824460962881078974071797412886811182179827464178627410211593335255189396352229144042421625098391609380166626479190233264355971693401039068942365753201666790299042409517734572128090420968453001334848006053410722818349318528865088103359958839628683369730762622000685489944801232598442210044782453459354705033142049193713586990901986729243702443062216292867966723634918551218026096706605554297339024521268000107997420687444642208211279051959764234604530410992433827402867463094146991923819947316150404224488388982079467153956163434214505002019804096393919212173099640707275841409080726138486594723119435973085064476608950146284339040317033633427645660476939695258573209629646845305144349273087968806850398320303213836398604751906845877162318442571695142275481568965699735897178808949997354830570402315207375400530528662141283126879958774706005812372729815032335425138543082509010716540943792740675583232836804835552612533309031626122882606058492578593379223657225450851949104163072403213365247325990474763483256925491301894618368858666312010200866079121865368122521863053819633521752703940431811259972614034875724493571966396075242147336906441519581595612793398546714059957530352531182968757070021832619392564757285147045151349179048697462334043297332451259550729355483258991615546379475319617640358646274927152601518700785427852267202260569818840218206019006496130207578710700914139245400549388246872838352054445940544220914681391393717029603747771578430438163833173591743883681429808587552765808104231308250360877556877923707479286800346349907988279202553200395779093583381377342942386390491766092231386617530941473189532659349790154424290602766237984310074727090693753880444562983675034631537991139147169228409190418666642611640369050605171020752648586191819712124347249662257635177185426215628315647524270723296528513359449567936940968999945894538278745942126593165344017482520130333073867384756143212985919224161377740772561851173926475166298556870289401483912505549553891237654806205040488761870053289185505423808625884974052577576285848802856256713483760652249073669808119224041862674904181561176388256282881740257547195385416592565511237053643733829114946152319903510056280166749651399952150137314098146919818736046141966052388616580643548014281853256988675764994609556658889628498148765999692028899048035287540771834043682602394722925143659490199783781511352640007017844766362708696684409756518168569117079927551627036478526376613316727879447178787450883229155283560383380892331829352851931687796225708413748684958329490234247082095289460220540181926401555472529548402542833186226744011281154957287785150263183136777127128845657144949880864805271773625014211240420666987575976582208318067359470991373067157938506934922554087373026498436068483834940605846542957459962801662190432869717853752640882774541380600555777093668343380986224531153628416106718441105984340416893836647717073597887541070199827256537639248000021572115157791795658602574620659528379816424561365277973149785971669223064079394455767189840170590051319506835056080328259906801541690040915277033212362658190961825780964994567885840060722614593759842264428494780854783505239360040356591174031194852783737812574111324745573124554863832540445451363187026944218408955466295050844792159832616255599157251709088616452037359850852229809280608100639304013544091593243214588305195643276947281419982865140930816305743316766492187533013268936586140432165678461693221685851346613207888903840708100264379844175528479668232843594772284296785843403461621305013662360388165742840192182350322227606809773864220545771858504966257876913562765849836216730216507563087784835419984519744733842747979837216849574851759118618845363489777135705947335990267965872519030266596413636006035290013302488527763614274185970188902279163296033539977392936721528115076866637071716819805280239379258739957996383256351777892325987907171304545202435466902496687968408911566385706068279226802294824860500246691304034005610097096806117591594386213216852900737671521317769941775596679115289046628732585282170833906509511406763592588461766259790574516456110548066887003582048414288709311498445414725187083759579386132652798870492650653772066953446778681415322285051919455406972046638861604578519762022748454776071242029912329320297548138224109850309561054945906582712830870898101879457723397149863058199642702709091778350821261462692696615852640754028242804845615783937498358595029778752733435169039617950278345947436109489556005851949086084136888018620824021982142744139935338452462182346584716251759011454567734481846996717877439955643678676665842869114281414125899598576069303649204015254070142204618463349937744129577987205181757619537611272303449297563883405735067094950205104320453041953817544712069077305074843507542180683514816817391809633075475588482708625174539870519043452945713849386841413169810956148030721188145684542137729461068962731065942133030273496195103730621643228656675786533742113573880026218789326864760950450168633235596420658988743957901203753459528006658322439273005549959798559621705016024576852389130814933321841664854658794795164722568486749854732414827741135769200659468171655825272700435664518932520594282710462601570725371267508045359748806206877268104215989545349288009248240157346638560013261837431333358936158085369169909420355638406423226562072709289801273140595401286181422534834874857814570769744454170463980789866234765961393871463698827887257959620133215007185323956115362773252626360194332617843366006024225138126001583300329304523285178822561300852535201505685081458061326002463806619442871947342152817165726260669899267482264933033946658197619110371968403806866775768839807588443244895140806054598225372967991566871934402774174743416263506754145691049255224054531946418313269138084640760818619900271223941152559966179802332607867643008059061362996636982128799443582560807829130388952505908853984799062925736061571519355236892768104938136036698789740985303241014721339529941978326752431400987682977084476165142549834789516499297139913762579875109725400790315881842699673323299213938793055619219002813472090723744916054682428662217684230658019389139531445802284890251220894073822885882348851824306021616845199854531084504769910055472021307592956747791560807400849792249398411889244997434150279621655441333966671633568371891360383659079192587384086103378869557696464651022832419729432557647157187010348294341549173447407744534504935851998420403181906099252633479903795341178188138399493179912375669332885604736147127262410209014300490626280264779346431931013479097612351077871483608084071098074126363580743461458742698683500602818810468254183584739857392965463066889800411320411871684657411801985388148379458318381516983611697001216017840886109403292011504120272503723641957545180890914394470489687490041526141000549646046257402724398298649684825754895297089511455489679686409123239103433988001776154079061547546215102284997371577291866579623809916143824303623308558526917323383007710622954231210380492355593017125044165173842858023280125628473074906959541184251763185350247514951898867080676626496350374980369706400359986556989481691039958128195917600618587027450238455683772659785037547014830817709274094106421345555960727573928186245564247276358645485346122557446453321490014927281033328722164580435808682925871105759491776093441681952812939646019137619789995456837770133079250399479276632704687950673567661113731147025655844958825531959057383354290278510478404454462756246715105816318422145709467511389864772429306882876989256353036223633706710297969946748897373062934617928722113317006431124439714299904329653084832096847862828001748255619043585934968543770335033473573115375861172251366664283701634885266323535205959308409027515720396693377902269021690210760105604496653870182315313347545303831552729163342891205772652844412827251089693340133736899955488232626432474400693212180906839156535988322756897754524238035779910220760313057369118831986175529965919286240659073771450711456404970714480494473686355867667851045863903903603874971185792597561243371285109885743444143880367073806860656069889502876647227036015283547062346993786059665246954886961920999073848224379941945574669592465060286007089965564750507889919127655278684530779980185906079743210337914360540638849425140020194006053037563404318460814223626555720588953668435173433740295283242715168592457105719180355620811420738134452177470473523801509929308290666827628699146878161249617817967417301920552020605376382383089019284010147124054375583773403961338078867658698463555486857537277235504047333235129680589792634482818351408439672532602019986541495594460344022298813363996255943899614275351053119148662374946319999742205841827770928011548462257416509335264937516261148056393631852285618549882510587986336772078146863894405697169349424499107873738897272184925018821767483267019657180019725142270500794136876539821673354304250618340548760270851942348911045435399105796185245523152647076801158346546181780501260773340259613063029864416006051191129892065569678109044156776350109003595039123053357761513409113179224495529824412270741547573237053257115178143745825440673663662105204884822335953581550949988111494375855733613204969917875843292375901377451819848394078742630852775097714538254511177931095725153094698937867359903963860636703529262793155697891946187717943290473196385547192676909140678672632330608963340034129755543329821635254070549172512839769226830956508158862217115574657261230253543073012506366775344618125719436912033220605862279857600594102043005921632107635005559951242258251262689772053717662518545612756293889354478218684117946387001118287695362695110602125292538836511123963368089958778307288381433605530521458134618679998682974674487654010656295144547211879494756362679948512394288587116136869018800943102972803340143835649034231616028913683492821289391242642368613501509460954706296764828051074069837195403438717701424680105451787083409660231276190392270433909552810537263126835177011185578563856362731120755470559175398707949056683188090077155825904387149949931338391005443377483313878388162122701829693923703306549848495836612303196652868966656694535834730997820542609042241710992940122103049987056607048987576220168470992947063960975781446102301784409842969707406191718652302304565294491654817093250391709905555234947180717382213694990567090114607570436599861592916669316646084590782648824044961178452940397794984463385533616515813145315624205863935092014354200329292424560494266458617107113141032047382253484541195062233471418974288078459025635627645221901128218740783910317192296397814478859751578470768275128056597967026309435321115061687388759226478318761201160602896285434133078354068626442650973711831623931278730550786207056512300954950080194528946880139547827710460837395817834781135573708281460557580976392813713126622693561972836385638991393646070570987847746186266878229942993524575229247040286940690966890705674998948755159995019017788055112488609308040571791900938233143390332400144974414673656829848344512732907889865849486172329691358341714094256982920080080896667793721579101482006366481823797200676147866381447652410541540218715927051214985142603716433884881755275595809884853632925116559386296032882875638794680715308290089364328765877287026762248081895138383043600005660308407765735497847680808325655545754678877509341738118554763792036189649281794257260717388808365942466257365213529725544649516880892036510320733158693183065530826839800192211796493832656685816283910969576754110456055920786853843776481217161702624531154351025147889863354015469769609678695039439142530706100667330465156434318427392481251758141023105389566898618034440161254064881194630647613125267095059484234518098576250969686186978489996693115770191495166667822018294001546887801432250442967640705494012808748434677123855309185672464301005758953755817428680067466629981896168178388861010802117000319917350541973522659094291661832351579087133051127172200436334727653721751549013288485587346878283163748665643510015855045245919302852157064473632563848621579651194508268800769689001424014794749258431083097900044368846094358112148553523778133883764527167474085622188853480193225441454931956881354976266759881553801776243335418057717110138411408163352803730358096147070693481169186362233320476736354116667518241823789233546080335190908532481656327636728757813196571358379192238191100554013039412049946816115415467781048930102349605546567252777586478607968173388903428679384398014469633865289125019011516352286720661045797994209493432597164074634393045835409342837147488456769844905306565177966323770874085763828905810273718171747155138252682595175994315395189170863765065680373223410397675395855098073598426622988947276845716078230210092098921433125959868871667748382811076179195339902771332895763318597220552602301339222470768714043926562891203898320265563444330743702658039016435985054100155157573988087365731156131051671424041671246425150911780161033032125612694077126375231636262423786728106258264612747052974089103830941468165751142894416283870009035914907095445299340000927208077666058213922405541614372402766275101432613168857184483928353111657493968616334819222382811857004568815816782501174979324505203825224611117219020132657742723566317666220874974639262263896465593304592566717656716835579687896277628565118841631868025615829846812872379085520386288117002867508093451775737374954478513776431018713470143746764539613919449719521392777587128016175827312899064253828358844469403062583601902640740937737603910244221167226938168843656409522089482220731543171322248478088870976391877300898031098950132834646609182769095517275639312867651811748690825832582854422228002350134999288456275940717077167734320493865659799893157234769883168846172419596597175415125720393310207300424106577578111773357441065532776878396711088336656787319924816221941326065433715997766935461708180219156496521508052673963744332114072266505701913728014811966353542630352222205327035261778175710403551395080844234031964041135366539931283779360672620607294622240740541657662799191082730179627588314132755186388112431525170796775974378175663795889289834470397949377417461806483756822101256062235698223096993040550397474906472392336946601098781771327766702893110805461226555446697623008522277696495751769333042175430547626963567708841740381568191321071600558587534009696104512456101059273647764977552510634512950868970278254580944461184849030011509641277579435050763799156084740382342284500271384359854435666679417778996050072057750406770341174492309985392030609205958049674511906599791623210594763382123896545615261110488690991729200078468967804626780439597403602153295696325580144478310373423476529512229510462106880884805021501734752584287071588944353083784785494014626523893303201658270553726440966375372014044315518178144259714297844771779964024326697182021333974942007790325413918319702474391898987608733232836225288198775438644364688324915580065570870873141210410486953483218832750695294292005096939415721356405100925188132784142347158550921190700022481086841603602417581720258086052750525271010258557192740789937559050364710905864267575250138162665084930950763718693606082252101403354217254170659554022190597251373633535468212610182890851525237416270527884592651325718469544701572866491271480528769169636190484375855773239236367256816380087105917166186705110855415550155599878645688012559595459742225485804636648028301955486323209490471872766789094680781726982921650203586321503010852143603421335897063892464042831674787626387037950034915164193689795006433665213156556195366317166328104750235312668922762843739459881907337310530776556691069550790138669988239976903275336739051943720902161385604230214978354104709977210571398862344538733514363946024500330304021732200511905575708769018101151853272762915864366643012849691954592245736380484939353636941746865779272574298760866003985743528069766111337537438094177949113919622025472266795951192911189817230612204247756194239821678014914304516767176678345030729781283650924142257463251587071713118030357613533776170524932715248382930889214745910522458171221237547742559173303782430928817674314662708297603942088949464594741564838159034542582369258249680584617106284744674394438847517142705608050493693235391391924552606634222335883817679259954738647680865431331856015954878271222463024343416686578200231952301297162203508634434978366430885354428164963531314491766558658077699110608083079244808209057512661941364359971303177933664224276919314077608318255399837583659263637105885599347205945941010670304998289617987000159812904818652279289468789546091952689949284622075025191456280289088826202527016583352363519687983455960014224182723422815336550103179856826768380418716483853998941799454124038161842481195928505107107511826748668392843631775603353823704861760092927581519903943456905333558865364362598474382744024392301485860668601594504066586322788206257487393817023877335099929735685217296478538190686039374340940968651689252617147260323821479695678791172094580550250546080666951521775595161427866873444273198434510441518013154871976819098284350705698063851650246009529764865541536473397936242674116959755320140519412007571145766685102128844701112141810566302238784768048262775187595454466591302474665703941470929829214403609533847651876409472863025631310222703088590161032812981641254051113266362569375804926956786773414729917420663068439713769429598753538468474216515982348598990280373796928792018831696096670647556685928075966834976375361975220980593401694251184967057219107421705016855500394031938304178559448848282421476342305512757792318984802791921549339433565224429822560822794985593512323779651445002429721903947595811581101843031175170535114534916077470657507078657072120989509336007803626249753429923950381900811880708937677477274723462091684434319665690431195600243587267031372337844635744117654440963754946088492104024390136203673607735657792136412078415092536086728577074519791915334176941749807686537978639790326064726519987924417904886220274082283762609135633061432016222895474044849178774038786268977345393150760578171027539094127213460288607298137254599612553116405992164947018755301276710713846078901549582336885386490939938964977317042282869878118820597334266120506520214268683801042895274732166757109132357173709593388705021555728638228172688235346373700206592194416935391463688746336777359386068905422826685785397877761756327149762611118638137269586088222244223773874671262754007204072586170493473361087485238051518587610311185687048456039359410585601948038730472477044742303574999821506433814577180254556115447790404287401595403729416258193887212723556944256332997998546478690221590191863570842234047161258209954272006341739480298643680097053730443523521614952008533086813027463955794534673136203744311354725492116175327784900914017521579244899838873505641682294598852986097864896905627239148247827080793781365651488407233591251088823226229077221198546946469379727174699205847165779535312791121649355828683640179054328773099633497365754160755509510683396989678281132547600001802466742509348896404783128654997844117040649053616515019079891337916257085729362877005063598623867564764295312967243847721269740684841251460769160620624913834592098315060910826487658983708708806289282740619777473501149924732436307558062778296943513418458404863323173574456496219405208700045940743007638449679986303780520529177297188221679751372414745301625462120021827175286083367625550886153908042971816056881421829798367457758003575526674068438079224261807811935764507894914608285573197925157817355873821239848364889833065728412995189921645356927283915792870192067157518477237086729462740242065253257373311706713966983932511741700641312045869831262962900015805076818853688155161347459969430502186659106102917710058711777317388108742742243369776304617462718998658379870788753437780148843927482707665197829324059624078373696735615046445523219492953031348727127633091707875549693136308401492568923997022581205651038255334898567453259661805256246950764769656755930201873182172221882710126717880941358531094823202329786288534807107780648825203126775509833134708577453091882599245259350674022739122714633259040659813047382661078810737599527528825134607261144050467141797279336152961539065787783480869536414483543617899292332299553384026599111968096180945479542811546956813520861671110273083120196025826362005218703302274672549001888307003868586634672767810773311769035787710440878928494305071163368756046858055897624328694353279707543475622583379329697104697882840223506056077274877507616506192999605752572532252242015819034518384823624403394389436655354473640786912493971643949947600654535576216889827218239315865628154183239857046188026792715943544268815232811067931595182761979061577944078738203897291794551926679260088646303174064576748818449917331490304111343505968093523903264794086087659802547644751949485457664499004832739560945817973130787034391865923993476717490609662726452125940532734036795999255163358051917626250130366402877590781898362908996076666784957746184816331211333588540743011090812190997602075897140575133654957183292573354466973626316168198475484149709169316197582710966197146850494423082587374725242414612421940718235427229823512830768077136001334518341852932333512341207152349346487951514875841748175322060520730298116616166599546895570137832196672930320664463970685648426345807249747775425414220758070809998960635287975986241079907861929918088741013701256190702052898298651075511717728854124407201827622635111485259643958551283855435738742826584281346819541823864210664378756307044321929992492549891944854203058053684583152008574137449609622948710906783647572595647718016634361367362667043749256985544313596638322803592506045580818012011493706372753480869078574064345756582494482651544233101616493692793757478596154245066784306901839367607056802771772920719774231711069341345440240686464184128446373758911607566079715280780558309806620389976170874945013450435584003057573057580508734686073034649637549280723849076528099698780074333688100449973153499088609239585504815215654651468858916336321941850559388614941527053570925405061204172124905184896774640508973266581079582729683301291485406207723520492458047761738934201943347335684464712866180920431939896437462537210248208553928733958601356143737714603017482567940046395276675893989265786571451798267622522416531182824221698073860870148269449603034429952986458472287133350011602662354390541576523162147992243907776711028883648035624110546897811539075452492214015546143766318508424501378854593665969522571961210278816180896686376903803278329711322210995903691119878231882464075889904397542732188881645224015194319680057370044794658948038216007658051337909041293593011672931000992175075067972862699141040634111484226427396967052618071615639935299791730447687655604721348247830372308816759092890956878040781021032940121732018311306441577960730915527728459839974521173644833503735735900188251173738438961651220869663973825424031860053649291425499045194542281314093843232495348299727126249483867333488000324189819660292738104567169931226048855091100879504049505300913298534875695835803959338607747161946288758439585255491536035248482185532552633405410005775975407962324159877739898529838037756316435415113023188100705144088641513952542598313600284819637919932769178490681551173600712883598917216808825196524724939229213561083961145099816130963204793167001892577905937133557648905042350040272517948680062326471387919657628041256826168680831413587253733266152841411633666696033470286665058931924420394287155378128867007799122244296430296844279413967468403187870737801938718233174635250753265019604030580122188217164144591566813367588309692831293139117265573840232327727182140928747595185517922706971702580753631390383268426012101676278689245542757066694113875449766646084145978464362630774578586369592451044786132553283963257472777311771327108932371602515563278007257686695828873157202809237180116134406208713366724391706641848508320218782691708947812131042310480574066488042572357560759241105262877872956726376751356606849017384721506472830772894293352334778453277370516161884927276109857311724069011612193078299119140651948120323577300124463266055705129179018591151188742178157497489932709940268383467562755553712800357215876207018895011171764270344894379244882740689970623425352067469650381288084865900423993399904960237916836462438628761336843763382831533339960299256426435158977539499637574593328995396144586566910578130207224549692371123458354000265345402650435401603904341761795067102179456620476588234770405323818980142971537243448436953597345493105666883040675000993197401479431261510262389111371624976218701386495001689094058251286235766266515432857042531613859290358192968201409657287014331022037101156770158794527559532647715635464861240704114450138850705140254242417369266397959552566887362702640269723073724860435938584885346372146396214018830620778150338604286905008707616821707562979733667121888241287051870417150253585115876734042697513480667600960500650517065318259766347525162375234653975044588648142008545714031593968281676709074589786129909258059777215550011353089908240938921868295897774693533667711781858793488565161976306026699760964413020678397442942763744484324530573802284443006426911937375263341591484539713653412291690425408312594158937911931970577884445111276239390042883657581966063426085231791788895496495008052300449093716257719039744797410308453691628276145778067467552631281686486173986620231500641759534081736664941303045359713496666762236347976157006318139057985953289167648359654498517459512556785033068127761803321441547371375455293560168839568117804023040520796601017769084438893265357089518617024253096600126000808962987357093084284018190992167895165145818450005459586896219767234952284878147785012904547595913203667565489936103234664658141799211826056931713273448598724030744991306371500611558086066127364555205258309153029959544041869938486357851793624820278976673895511902624481508482798013773453654184798043858807508331816149177574827198639885902771374442748784056174454142704341296788544807522472901320681917980531779127572187333944515257631389215646708063290156611072694029614759979300625229551170432090715366950750427657149575761211177815272456953784160734021918072974930705428835472174478686043385024591202951983151269262906174764972465873941199829658239768905877808030751293602207375736232296756131915660441173257816410521955240164114483053705206734789529143158479728168046279441053741523397032302575400486984359763717178202631370556583298019737149476608122821318418140295908722940397344594422086285510427348009766741104280433024090199157668767822801248627714960506521793833380141940621156407524936477057281879822932435176427541899729412830604053529405433924408766924654490522916532217061189218165157545926896252558953563516913527044137380729636254399415207913694035762020043199327369228647226496212839291030774074833242988538563272329509346721323328411280456703372896512003166791166906026777102297555634331172522435950846313788117044160610141313317005343238802043670145198565408783382743420177278689520953267125758291888718466997779879106270870233445769429102324099892868388370227370727625969592491619913143085408722960308745502600130230797835227991594235179737782535201582441405711254879868282675987266703116993400928186732993800929135124843696504647879751101239393574273456802170639844146203739286767833720709953880360468358440285811169921100419148896536232465597049909644871804689411392650053055841992217255580004149059957122706755972926525827153402667349007958241536817590572467815257264622431754032236435398025513942475341180641905338351356941656045863351447251919529245464415129955273142577302084959515349714089600924583754768883149071420827342334441093157739339115804565932995982964615924911343870384005440294428803855809000832194311245157416594716854314981337640394043717539320449867228680311197608469293451211614761590903215719694079077975427752976491252847684527370314024794610684547803272560005624702910554623239759020268643488751478115484134306415534638003726570712025329864395810678325187763206566935524656314326334164471218775560196491550146407335895579300680705970830314501208335510663956931997179949674517431652882409778218746486810127978995389126795511155249276490881731602703738626131127457490253520917926574529984323726110962977283762380362663775972499356675774901404573053186912759205040856986270163022624465923828193607541071446448834840938403884446258805755740611555426748092442412724630397032159846359604193763171619250658677209734342290780612696366035157794263538062390284993971313877449514830226097503308352729764668808207385280388181156887401581846045770775459114099518837704977798690393105544549429246204487029706182789747439335256319699354357812867162483035020134536707612312710577369878183546451891940042472463276242439197549395091912123018024988840379527466465482213131971084155659051655794635508864263062935248319230984391884119456346256000410450861850557428882315821351290875959514488184009691112929268488825639088530001853209165960918247628776511345608501883768465532034640601122764619896160798076137884630621221921081013062711864038862159991482872641803772791447076044931399944651835177982447043978971874163772943470726874258351678479503337498783959451449415113186924906021890190395510380886488346925184350445193935800718875129739277533936538653176846483831281899983959573364290158117367751160025422471132329610924441788436520787798997645070701548193222175947280500288297527752131748657243444226102563814683443778883421078364489850510292165113919009705566990317878493652112593970448187559686491354144825431207482434538784727027904058871251871993297992343429226623977997950084483241898739417856032566622705664315612670862806085806873671242885138982224039817175209686362662796604005177270150450547415045584811937169962732320977540693261823828547111253400550053937202349918321925670840190848457899766309017261004613144676879422124847930128478590308423279438558623976378683907410683072462988405153865429536637315659926202321455605857934729053810311106427915882091733920554934049153063682591454933736107723852056652122028339204229250034493873234922097892901379912747554991879100716433064975834760281825975063015380449075570728851301811671993613620623996134989584745891404344718107686873187134861594321686994334366581414482562892813913673987661333420377107571479944613910568069427902396220438917177066392629852263341016431510009961728917723977346059842080433833139549860139519388212682401105889064301169706842537068954095566116357642264784998080062708548920414631110871745241372943745166111390427265774264051788690279228210274341496876834093223803231513148083970463615199033504763419069658100028351683774932002311793046273492959931433719678284099708446473426048651815025020456571218037476069798752128583072886771330978610862503128147431627206811689054897202484822317904617677610685500635218095840192468912371177851194004085640523534617038655607569203477533883614484479792015959139035066725574116539948750015572532571117343732450111974903900075699398215541449016862869784093671405999684804945257650632540094026433924447632352711572820630798327718654776386890180770726130691592291046416334344334139262032929675383543021313495006803589183623475433828522190224094162644876402795027999142489846391832318166676800836932952672622779274927220393580453943748019031911590014511897433162568367342806220740159501044570064737328943745612946335828139772046003221268870091316296068996389743487788473392656635596706694178151315287273378731092748691436257459399827897793112253248062264106508412670938911756192192027975091143850044979192113492967561702297638829870800828404250225137913160787163220614953667765260463899073553645907127450568853931318785604480351609991540455849717010991462645603447696407490849210715940836193619973071023849791429934438629784110670742315958309739339144174452676811098762468038622859112797109015461799055152731027455122818602582542572063481133197892843766099481247193934024372714501655373020224644056067807048295182876534744094386943732917200096463536300502765861482197048124388192036504624124354025024112313773194332195465061328935851099468706213275104764757334332478672400183022312999297379000038381690283213931375199224894968668776563175746776925946856677342071774612463325774401469218538968953505182636728070221228251562767723069018531220704897506129571758837613938364613363669620841266149896583135526104741617319185001722673307481268986771048292322730447768893484285781754726231600253737224789977950348156653866211952411464011778594450902753079655841107591752844844542684239155372069917444888541266801637473665265788436380043959543276325621137196968736848860656308521513833155911112329897674142493993041042591061972346265447712623288940086206548589775500156969655162725338960971203187777075838374296872857943503164961680878353681035371355789320771658039696592014008441914429324463530078207817519564129196170457672579859675847353452961093456089135652153274176153574924785198682411795627834453250217710211302556470078797124523581165566727370420731256144164455260020769022884949575618465047886788590591177625304118862918669826225655621899936226476050642204307901125943647826663392328908970889760428274799528742437687448522207181487535587637305711679138399132619691645203032088169301890878776308094549078495587232234716612082425488979644793907703159700532636250006596491600271187502990210083999067385876475753345719669482941855068903909040288738326227069093918349915957782304332575436596257201669836748314583878683651171735565990976134458578556199188720312826996642295775615934390473240033272707438978585815008231266441461595045312041717897615692468013885497001897303772143314794659102748850852208221222423491875871960811121539279326094513423816723684359367457273207938874551059271059077659097909283728765855510479935354942648447268202428203589195715903523846612211128029780126815996075510346422984169578291156379844331903834114170249039943416326194712341684893068896543895094389215405498465871896163586469185340464878491860009456195825341813107820366060022103148308366945694950250714200691967618168362337686492677614424650611447339909495483717235604110804488510649460932715374711710235354251311921636382165299638017496155165053761063698450019840080500342149277866647427417140589385746842894509761240761415479844415047041863789619225371100910950376983173832139165474809136952877478643420722337097239092242648080727111802177926255019493973640896682312034817105155626324098266438515281287604400453189336435677582577529747335619700133693850619686830886508767987143253447996733634575725575375184465600521548449828026992001425128615390023273080006741215245739526794112700305184588371298440078053103263116024108847489018279220091637335125510275256788775423948057421482866932345812175254791379981951440013200434208990899845586066964479501674701901587050763069302782266494732131177691309265903083797365545548621490262074665620149642688888607704476904596435704156837903752414673402925659046161918738819145241686388919821205733686994661853958758525736462363142153252332294481623283966095493752318499122132577794276810141268821031896634886652038472841808703953334679170015098296542542720119874232068212725818283282655948594931977449762269018108908111570545136947036570684695582314756763092735259917200391679135083712767321206268969249145687587046078041689292055792814634357872066898301784862537850861545224945387627084787039185460521802053469945585496716196017160016597177723804457630502134433157698667655782787165064098302164117366711319860562268822480129706581343627926708588047117994423894736417722477500406488620598567606396134002995616937441140947801546245934555966351566967651990310945993624825827719051669803850887034775665206531553540494816074235940680834487100327490713800275459420144442964438897949513224357744895973699873217531166138319073072079261477778546437862940425827883143057951672666824101302401712135146451356270521058575214689345313948660587415423977451559126300564372473644091421600418117584997474830858186500836580241387071514068367734894679277867866998697149259955116418736875481369263331656065419066714414974615144735768982937167793109099478304194541908931942950947155320050786198139344854611819830736830281953868722455665536975896051830100332067706021456515068847518420633513568929383343341522679587327723028366270089112952861386092305241876292108207124785037033749715238410332005582534201670058595109907955623139360160987706110822746396194689967560022555209338126411626413728145259474649536143053551686266283662120911848076835049793994578722242383405321777491577743854211718201595442142397818145001549559439336369475951247562258534536581456870184253195076265133295305415777457220949723756670043149124900311349961076499556237980078088803707498820774516516420344775415046664935865451916246477927910957605905512352094424339608516322174503142151579090025273870194791398235609094310200233779409090809680849183515813032455898239078752600411489666094867571496555871126448084934117651199058509471964425715285685816760506744785717256231397763786562420385040912553488835754770391192943531187999221472259601418992669855889103332025921369446627534499085465592823064063120785221863056452273984237857796140435136875724181737079632995768615871328984804239035179328914118734417222728119205313451667285168498608578032893314077816407450780462391003391492183458877900949277555488936928862214281674387296605188016096479779963074309691103156118544419964925487916827481931097404360719447264790447303525218369600480733497179271768567947122314023452838105643663560683688247015692484781469909384020010593449532973998038847729060163576786610038807949824785793106244239031771048433999785251791823892016788101966765010608787239872652116914023729559798636259814292386875410780334430105975927135099315222375371047731112181479985442711894118321509397800596636382202746698768231393424340153166514033196585877923608514996334360876810729444415941598617886476469748432858492861515853053379057533874338455155606760130809383091358944376658428490919079813746969349758904355657618946827202624922890797053730388183124107015423996764132931297284429739754421501837749362044391235744254687567316007305769034350236988236477563323728772933620202446211679694147350638159722343451862093660079155012148231403797495562442363527748174078200087992853451326407209717736991067237440331268898565588375299815965013221161814448913752432802802893260767687320094147406838527865782777897172523465494794642548968610447616430552181749891264318144835163838891762395805515304518963567091538735239097651538589334563650971654301424474984046578766296689800751998232824091470979459624902873939825909298848191695583848645392527048476780371704850220839093909702223594744857991620718677646585253471879901653863986827938616304304404508779128471420878825291608728722381115807071504262539338908344451900643219492358780699412586628727179396089983512597913429273155325351761258130702072353603836962060167279639115514175097029370842286196259171877440406307463831119585698310308013286521103640604566175550702758687384823921913515264354420694919370536668938399540905335931426272697642551991878596043112769556066005421159876118546304149633823673402555358816624679759850397113323357409223550562459661262307117095631963190539422504328247262991904851399398949257266871916064042513748105746525467482008561990399398257008737341277417761010524391249208975479890641642127006788855584561786985903694217372628423041350117388331845227210199767158856379806737915783817975508992579819330292599137281543588117412579942278067339271486346023244487622999198324220282338566533815070572457917399886076720765582605934854104682495203964137611227659477172047789609310109477390014725630848467554952064065896518798422633768181463826380383666821600118561882132851186409169121884442545387565944875109379021372269189672668183068687352999416509615965948418605010615852462690380076633333429391422145035569166537174678876961552335040508990546352890026511805227852114869051279334820454527643546229927749772907870735151140280469075257836452228114534573347013352099029207905018297466742796509936656713060588716881114914335735123799230007136526688513119346040782321200540694371077408249371287522044046495084738106753657766450969700225109958314340435689866965596775053413515117951172523554396698888631692913246483896021189596641472793188261411676557820599478153062486116451573928976631468530306731158837272834778093474714242322845937982376927094096235197733058634922738775887086271468590849566315126824644298230929941653595168727502669686944016331347809149157549349085436997733541161819997336911389986496324510591732018919330446044305304837883655818870230385251614692783263196178796826572521950015797347685769040617333494586048635526145322520308058509530286029048338907502933321053395611657333601076218243622089954039969223540489653755913309592892717401291307298448808067205816181478265348183599792980686349288968752476101818575959148911231172390846353239504578653562788531580212132544010604894235191693203536000733407582357679658541166352405426540915287651509843260943998529241546200125299314635328093880740506457705982208690157076760905655793566027859613082598692206512590146923508404154667348032772939764176463876079703357114164100808637705109327637843256042287437451834502477627212766860039620394098913597862471883314338273691258536538177815342489193116272715955488318270604213870155444343693117848500313189861319379554519518887465732495461117231077916279344099375555677971550876351622603998663783907554532870768276410958239435807733659676166946949602535285502386923781935048040814849303943619305134960187245467654073699000017331667669697756506046960557140689480188443436178172912858606688838156430125040667156152614195643041902336528713123085886820687254660042699023698151218322428548926114340445877461723186648521611301252365972869304773804049397726061237375004688798146235373232831899681415380458201335329142675095023764441381247267147849300288172033199250696212520526655651790777817227365412701485012045120087499527613981773431915070203918617002851553207074343793051603851917844788016846013677061076909851743293315886390071258192300657188885281209281456518009981658208811278504362136959109620694589949340825187240044609721356125052988339077140760512239321915094036561728731737382261951121861020854849361888782713905030425623172022042920412018232678423464828060587203538718855473861355731104654589104224456039162249556916175649265753625125988635718178178152388510203305053363807417419594280162622018964494908586801632759899024393472229949469514618877210585218108540447363294817509666808182294665028892836035041634129135467682958514342399800549709055084294675198050121049367375611665663377787675471729473185526913082158146970529435947984101350140538691758017846644462602408592140634875864533795996437428033675684174571290572314895610378398974077191066423305277937287498168684763403474590414465730228080756250022582886031416049664258327641858932617201911022730821478312019075680450412265097209634455562908899603636470087426979808496814441588923582690448386959942786377584438969705943169163584009686255058654883936879263652477713376420551520683484734558076750734966817628777384918630856192896196833187998045345667175648257827989270369598995884090306645956254929134694483598870601480597428857910967336641362423532554603332248918471909878967659885021617670829341917398490837988168597876340195146556031217116886936005364127512348303004562726451577138398055729372483570475849349628400354665875422654835391536477139709870833700687921655347455530504007603773967433561820410220714452666124929071632789092804053096133903026771489079686402677246696248259718866901405107635213527526490251451102884551825469296358431957210954120188728836026623097278029589571355655520737639039188883865742211624779731697072717597477738070365141857381544919559798497244040613540982780281405982338479762994502776661633011215719086600771924494217734012025968381328702478174997257523046288360991620976557436113737569102759210058260307597259467989862544887664766284816161713919716437646928940558128324165901838169699573893319882559938785151719040326161740716614498112809262710031710550203534950643107765800052854624383544506340280535036155789838188944077359075376687976608459191572474283258359223502000389993215163198606732700458262170128086460265510687067569876575216086704652095598535246562320822087888630225281480759667136639800405541920952748370603255678807324162510368953674028058608072977978848398049882551742570782899271866044359967902799767238300741609422926086064767037804380071218110696370639515423390289654237176859626393461992697147207208440291600893751878013826808225077378224578493830420043676247389134353934226204698447658017606170354332909425773500315710459583463588453146635394770473011328741674864116885286691662268457692006129576180061072727122252124781298026730185513143500834075027264840609292470016667690524976650328474484887528039013008759060188204237590010746903441862936187559249188834054587332902466366250107812235738949967160594577966698765504777365713652418383704601407288316289347781457141897896153508372133408889056222186472983591511546647366939304504544181642636865601094838264356096203620458597180330653659219814984395371657477856987111826307634492570388928761482294005400795404793662749682032559818296010166210284602429448082028705286518266156030916795619872512140993120635955217640903408190283659976974681627186226149776380722407769587821380071773973243124525129813569016570197272525419908723097024779264875884762929484510619562923774433737581019726602428491569563786493976444516692907929178954678746714639962407535466686538742266920306396883190586415702539365220306009670411334309509694671912505470283174465474852144348723721701390719566064137656682710067390943653069067219104240658983193893175037122140713735272348623211473667063452849433711314377488595454553634658723483437388590942606812320024315641552556911844144370430893957272104588201821528918911405265814085898269869161823260255397090911370448224360471412784482642836774396230389632607086983480098116765933681160517834384792834526499840605904811405108610304511035385451868187767665684584679021789232484352687565391096258430373621839680590852247665517164390602545859056115354643411131478107104065459108440708446588827118921734342689840329578148439907037917397575442765499185250493131926877861938044248080181315099307624099973703024459199442556105746905965692885156157660331444163709783463223326903086041138358245515346111786835166650286105559552165449204204847503170938548931911257960245619793079937802247778243157120441381818092441378862881108070903753816673728472696176103049789863909800723374173772072149600805784374255753929842197569844383917258205264613200935393789709297588732315621791433170783989899728976465301035229747743493481899935611457082072694054392989443054859502960535534569672291614656235619564694387665355227081563787534730055083274094166164338575785746197321251973021453049030511559162559843129419603390462281149298729898272396811687993159241485531557696442486549878315905559868305400919933741934412240242911642820484758440188182791110350597913565333551006460926150922730131614577238198746422083763995050802129527334733568510288564378588219261482898266003672700883093853175381909061987987933728167340637238190230798485419084272682370898594869223761208642091350872977585280318445354814554415820261144610942920146757069351968099710440079052640108256384812954092406674339289640947135488825067496440594285577943381132599828379914087777910707817774425066373455795825087006016560954987351753350897631670869547007471985186051561187294717205313670075181526805747120017688602922810704413955601639589134347522447914315120526263793847155285735207034119658597579083418260992961316503251564582389202357398309768267140801623346022910364146379943226427433514859678010251413586299417568071835209521923718270824669866593917454563121381668387667957338518855525579480088099901796214861721567991474988124923514297460556756077353865709397691069517412637114020002492017800444265306132012413428229318092558849031742937046560735349966556413154182590717041678946000728021461499949864052970872649610708229911307342837114279940373783572051560655825925505560634685500207793030224231604459846747173292867664213073319549574423724530053495776893313521879452066693924217158376024601845898111799973003276277196484410942608426452849103828366610319563771673352835997039081870140000245939412047662905165440594395751285661684143510532622849204367198419021593674414662726903722116817821761949631134897349800768528664664804729424042288458478905054029103306364896873649022352517246583233629711980620986186904390474624632927716584490468571403850217544804347443902266715311975991083894347973413582954528390961845007063469172141234655098193970072382825296701552102386581273428450417598143156860512450729053499661161254645422270982446947041475999674992170836179236842894355800981936569360744272341402658286206163505607134826033518918043152581314323131359010753077321022344106052596484703403186008677041719455513472338417255684074322809791278066170997150808312704466734830946960503786049273486435321336790285363915062613685759115919548292582187258566072192078032743279102353946849708580503472819990549604085204833865761110845389913227137635470253704751029703659791525424872006901588958170152044808534058105611335111065417341714853042271449645904758630453208816514999135887869327054531839353762112242790084241974266942694844093997917023378821718950911477675124304497306160700516523526967476330867332293279952219447580430437688405535609882796129294811443836838932563712615632434489429682646918266278319556696129491616254615071236813193652530906561392923413583579398243973458067330928421643820749363851747487163451667425086542133552857257077384479240223221038967218190206798461103756356527279576932861068115572373691739606754995046722146897662261283022189499793061465700880206619294582460050211305197579711639303155442582539785848111447102735548980828926405755508171321152974921040891267427990835360414914410442093633532942510230549050904856405767172473506164851480746902930019304051368164212263429126406782734052914574962282401624323118549515843428925792426896869384873704455608066213374418577230587169809891821935258666109261952651559573125614151080037315864140901859210930607086048282550578678006495467188495551880465771016671887365579874340289161067124757318355682555487812958147548962691453063911289776450805579884954890838915423505107992634647192212796830213629499979790167816635491446253670593860070824894639018097701349910595019211797933007087170691821022050269214137927566491713370974522822195959766517638025032000760296827752768289162635555712674790838478739632420724154297938293819078669736965633044593042766603566655445488808842075197715193507767656243791135747126496335254742715627032336709246794689338703021499351044242469429870162924153966579420297138884487719450974609024171800430649751262513641474059145249662540144876891895623102337584960827883704687433327877597167386254369765652327927775242344915522100566921305337547405665877395363456494112215989372606763613961948261826314300069796428819065744369640792502630790587330066021249687389398224507824297429942793255518521783458530590727313712854335050444974778844812895080019003147428469739017909943647604379923856641910503944226767309714822090794714496666669900051791781627241349467606508207946650141834740747917870637277409414851451225069399755562348420501896428052155187836839260308105221785825457773039023392327244312454451885117814939273318010150527679315515516025370384722056456817027520693853334536507492454513002006397510588046658338775921407003468694354511639550722983114536172546068210902357045331605966038262199177360672159261173345089637351480318691732531098094002972949960155372695809170915325366744720170210812610640922808592053603953732837916752976828528179884808574921698394389176644644199645544206613702779531775600538545904360911005357921664948557666996375838239144690703549779903605212961037271650654026124966650208732931941263376125626177656490399567691311690398944673315652975000502345025526702958082940689778969557877445809972601424580937484421496206309211544633716070000821571539842878940232297930309844430166092967072284273132505766369459455741169050092638105634308645993844479852733455166563211598831411894685678630096434513703342552040208720911920432879777294564796963499248664865131094347994188932297541946038936076412654676078073511668990635766365320905606693593569085087433741601042103027793279725784204542959963862310774903926814611898954816573908254116789908622926985131270691448536161061462412862087312238045965267125855033072101706746515645764752310513002094133877536735067705645336967010918258215901917296679110996631716039195800377621333409854883989603241761970045793403572784504755101507504065311412811766962178349930257787882730356655347652868379219637907749736878140451022998882761995664513756123888385992999806164971559192245481904572698997214312793423262650944054362808670006510630208122639906724181205368020018887172008114252461118104675801260678161214340329445136702433524115691364098263746383576432922984195112467735193373416087772620256021587195110935538799498407775940053482059923632729255598451207337307598191802410529123544183379794669209862070616091734613294391054779451239180145338322736418726221152972859427856612984945091600434194156173183019928988501197513249885788290765032633167088367740872362311094945799285171557116357319487337350652389744535550590710265830142575016777514389926203534332242736832669276244818766446180730428464570667691534852148878108687338205553730954517597246517235741979101205993700245561262523024552425760027145573994980469923196573842566061382542820591769063015240127831611459320323831845875078050819533855674879906143789647642679499941704000549532822080274683872977515634925977180892684018102018549703302884764983859129265183628213798086782474391948295173833138777920270519220150579518962701138015414811887698263002634927655896292504236164850773384567721194608194272245535644852212272938330581769838369848030273964769785763703484875338556624234457004977547622099127289370761038934479611731636380516852673929939461005626336083044439655986470959705172183783725330600402282003068227535319144515524320469548769538420926740210475675702955578500720947749935348377457325005012443127591810569084909542636165101383698126174560604582634130078105556837861436296168206278785774901457057835090364923024275995030003588066181943880009648378853674759454195821982312174100066156149905546243711566437210918537558940628324749976608026301604600972011557381859524968737212634574656541497785293649391847896666887839763089415960632545123338128861284288174717316535976155010465726180223849353508543511232360307102104723513410572983100822367271343998810865376991453180962698070511395827143255978907469112705633852700294406798929959041392534514002891460505757016519067419796529998191888780275004186445907058788301162589364307677404093528797616326650802101872380680805278255000102948714161594314185983532390559797311867452439901773972720325189099414122602392391040919335128489975999591038805401476148972705103128005516309981796591539790550060248571569541932879671778776659895903500763854467152227520550473887552022344988023329474947849119220075887984225657949358685342674591421919128672221695210259117624684022149328659963723965008909455882844431205092385251582487700661499802168331299633765384416050055234641015905281130026675655245134911006623950015665010909192213645795809190073471634011623962633601384890149802761017968748669131119475522814906592525518364469592099056254686444825037296782149236507992440097124874186267978387759727455633424195281911082201108053049423431189497514310050989745749267754458655575785412771310048124048477089232587693551727478598829734069258405009874013285373687378135521894242725950138074329570931328015697734783922021886186554845051455284491701442832602726907229693970994079848171777526283482169009528128473579227597018655480986834432292506959604765946268112023002411944222429286464094132357813687582422264404442312975752942031514275433294584235834171980975113622596955990469897204119945242881507872282892658192552453826081399330032891557142090614389314389545032020974930110389872728670172943523400460045904918262378205233609345634746641813927923932883263542390698381676075925340620589366754551979309962427877175270256872633541444535630009061432625653453958896299682482676702420104509758371087870176386377480326152769782592471584084144871358923499490643027997552496399159582301635884037825062863186213788388177154563778832148488690885722315806486992963837809772277822499669516507627082951469030135846539532384065588893988991966947284108627587253895905058692385867762742398186488122635122284666586791187075227174168293608652441253710283923511487627992954353004826655840101100928007823034145503023198695573175486006212801175907577824780788662750753233471609961564007741076888685628494058400334432155490569361710370420244448750725088018266362040603833846784676155391101632402578624250992281148802515152641666789351143369626333757296091439441654330042962183458279294231741212744558191901152462394665760438944163041967496672013069873769148047135731598045190051011754614634239863215814164654357790215064491147851649325225329516944095034457640544972978326446566582268149783508177657788484320269308884265995848263899742950763102062916151185118168148158159663083927212677896261860172022529327519650584969954312531394142323280958147323883871179128311423508309509375164873180681956692920496814738037730273130336057923340975406138725738692318542409629977186633302037831099605515170899699861814864040738402922345867219297039231770069365908444289376090392232038876902612581432306178275687137266735015468456514180273828284516325833531479387850508480638647874435240817499925986844861626550426882562565321783173389200121309332183128132314407755577340564389777093639790243380525612762245287364130680529082267620663320004606217343193509936684650309705878649260013197437719191062713957959616040363313229041161792480112916565456869797028659098060980565707991506019431654917719366000983026524394039097086201111763657558506015351972373120068679118458622814584628532648676473125297108776871475396820289254270681853106175807700977653224326445316277576529159791909051324820912283700370869126480410328361877045070881300925852539070189850107503115580700960159626844351160868939927506521551124055778881250809207391736395570850935291191684935870255175838281627414798462292994218196723160870007568933274507572540854368071356214818054039699852491336844309847335330337034194021863321894714841814947583695393065283858543455628882190142831719144039080567277682194166152251628969152035381352776402165317766452353321437717544228374464662968595032293956337445828277350230827980186508390435509426625760302251237489258557374700322464504466849248716111466582737417160712819535092825464537375301797234588850293441251699481117264893545744003011138773181848143870634472699153479901002503254262830234989632460640109708496924129404777424559227846979121105942686277120729516220988295696405964770591829764709826581098178140669747489239801754099224920368971519344964614060384044849935510595975038005335526920521137892562732420722224768019540358149060769071524134165294753304051493578752778777014077316208182654702572058155141221720853753292962653830671945428364486460331545775356196773324138431443549718354354929406224155359043433849205329663162482691915846513378648218416715814745619069519018922245673135441149795822806898495681297136302092343063492818572445816931934111475708624167548149629939745512764453578731366555666017969936364812815535557473104332899509579624165874242481867766600999417167403578938121266683058740074574778817897538465878804918220078350773158595030838762937798376424539414700019151869757121803863312490877436279664498014110834742596628841832089014116235345438347751089214537453897315847342960852807744311434047508833363583002079838097123535191011915255014180026319719206194101749585404765711619842792551740613579003835523677964676769227141849348526933908741140963311127172191818122099356453860810341911870823348293668129035696243604664296866084139394558935816142672674409906418623244645361705951617147703181948845651477919507976527346914347934379080530788563428569819939472794138661726428386061002814534485568863728670549422956138327571753614666387672064241448061425887092711419229690844152591449841041489690039716222880837874139186061654926719643803072669905347233241733474519506740615835978469953402034864926850680859963428434276346352530119210595401931529391209480259466477390385373518934766774030874501183468724637983048671877346871325946938164374205251592251562765259857357856391797479724958420004788640459455622131735307073806008268931197192415247786022102730559848879617261276530451219446392830807561488945217131338017697798689648477522664212228827234668264239535553300628260630018903117573705670487587332375470588168078260943118161315048701286429333729114559132308868430349884759005629067632089439154945008342355257201487437710283154744916246140887510941393216543000144535177479390910933214586082721555360080827844798453973053696139532773061776117538887107130428671859991998658248028705090686228722128861904776513693809371850269040795193826298410850673936328860050094948258445774847846763568884929774561308634406329882137566296462119860440749219264143865644143046359183477680341253423291916523591169500814359186728427261023947304176923778349832420865545189763362737273478227076731182428578992481921155738003016023592455778631669366818362788877511341629939423849327672282972877743478008876204266073977270760320672220109301176202231676353937120969617889530873002547184420037147628391575376490514356273372616334411272420759710428734793688410088824057671404852938262685778937337612072734934956061933050281644457378303642522344280538618165334697605416543685393397590667760399319827142605212422781010376261115157823022041028565073933112432362817989928506941009619737785468919194511784874661108626889861250808210023128228379023315589722582821937198776524239968535034184011342662621861894917400870298236739028668599182619926184810706558161547723169712289520817263006343760299441507864163886333668939910064168837725651488489904423055723903849042866690080645080327895140902315479049498811615495324732451715840553552877978305647371936169686912095607976934882191693267543868638677213800379189251029363788427271180510574504706584854469084898403753411876036290314514824391823334731377803815889272148591634674577192544647437899217551720272616090973722617150945688535898426062028742974251838626283506823967957109549388657677942793559448524664454384289156743572570369408883051535397557727993341505254193536870905564824360550753658261770021341145691197566300597455131009821098452966946736277830335498271734873134782854614954313471353654564567529503225441040341351370274207943086588966325092611931452282868911288188534726807909073754377709699087148083988796441449254449108538229418592369656407912079860033560452024815026259467728569178888109507008923478722555438242064899367856947170287533169967157397167834572653932046394844988282806689675321725982098727255919695733810578018954297306123273347121433472282767275501304804454136855230585776791638277446588041862274958688612512341087067829995847060134138360788335492393084270232038865323935439230252114699048656748682922463298397880682806015597429225558588785437813684606434286764780041598819065541376184210710354596019513520821576176438496770253432626507984423803119230600560221135590511777930139535530677246329103731745185203465594120390715186829948335632956616414154027824856406002766997536310607409300466779170190856063237839774873813718380574186332847941521188352307552178266363525552867248208809026864628545224038183082410165476689801643668941870149301203887257344947602537378118499563904191421357562977603590645177653306372381718086655009909675856173731995658417482576400787022686049230213977044804600385396714952303417271954000776667276605892002547983175319514988412545605066452685808450912758767881106721805511807999429114286336489524819707204513440664886964192924844825404988630490095717331508048739602209235341908065436093163305955346500090684697483892153476020144721340811317543545903814932816917564184738183265620431959002851474161637174120023826988728544130284391859665063038955827118404841479045099519445138090291648373276830452246530830411149636822927523968269533833130188057520003117215887869259014385222071500643736081075144931394387760557600537964541158772162616642677613814736036870508774644560513713181523532409535391746216961990183238678404278625097726253027867161017485212334428665414983015284836181523577217585135476183522216472126157644923429431044151806937214173544296571306447138591665242797880360270162839589090752391303090903082050008149262019115201015171900234083555286958187978325224180499229731559266278720149689514495050637858589925981730313581056328188716443806314639387575400661006264288239838181175192070536129858531951904636928821198292731061427871331577575581945794432503891745111094566519869353557207972670589446782867105229907266303706222207821771927673614117305006748268642848863725498829891749042599920563703399393531182163813354352126457996426547832090089908813296199687071247180831648143156299138703523645841065836930864077040378959942121609913717247627642645886607149448712550681944609100381725880463136018186927929182210430085163855652769746855413048875151663990993957524636009057784772329050406908824654958384064620747990440335960238147135463355116587976833882897574186723438590294799914704580211510038546553123628096733087560423350409373569491049695885165774350830616243243879327983046318210944169732017300222815371185963808133253638604206392394196721566471883162835933243915663439502470765399767894298687437758536506628091507253030616631977069752104700737557306336945499343301719299758255542174176060275937097787858900983559869994514377813210286088633873445741817393761067807424720980493159165592068518141728016281719598903073414750773144783078026854006752551572711965412101903185710088844230633795753310013643068429604171014771122675351969618210746789606877478617416587493892516677757870792825123323760866928512366004556780222628018196592771127702164879658716044734918964796158993214149578199351483656034920174440008177272117423855529745296702319522435603049776059292030021009031289950425616857298602979579294452379645982969436706838060034985884080754576887091020177121488191541263451919275216996295185728533571998404821806337331174557081024276607875889313469228358063905397717031831404992169902421703289460449497854989733189264535867972699683131270914965220080476873472471692863123032547818350187773823303143349938829225509162198523732034027034302051247672030996067336826105903040336038272722910006035230819460356497186024377017700874988821226360858047065019799603203001602072913357746327310104900587029352048128281216759800783021486264243955185744164617036944415540852700058165447941477221705061121618323645348005792820703723652614967641356985128039793426620257486362910054510950625267613068809189046257422423762514220323702262588798533279138329994614334869159024361613753854801705945834677988732629300051792467913242098944113097306397653021035574269636616186855230394760307671861045092806662524072148687085233345551416295279483299551381099324410027987898199122627253629584397770333685290799917605486731658954333951222509968846616787799686163754504402210629966664946627539454262219070969691746483646960323724531842577272823013324933437267594656409975207807580508694989092633999915442273685872864345684434407289049778333346332005597610579290056796045305036767876124566254654268456167275741810877945904091057418914596002020046249267074558932188389761924025933282910901671659744351912220888055054714237070816849133086347162273811829137709068015176017157980540504278459494642845885292628528169871138771008332064945862191523022468284711155272410043237806941588268689599242012554033068103193139851965650045057787629843016607240438324003458140841022676348461694039165775707497095497922492101887964888338290626692990660297743055491734064095855129347741238231370283124561291501259661411047222270440638053751826952217422200104155322531783160650647319909416011554742718855084830166106221298476404484316482076504489733252577071752696427407095205034227345508342245902031515698316313897210590630309150672149440288887230514926075635324470662324191032281200498920259422924871461449358696642101879085125164982339838698978898862977592484431452833906312421506716524992229729182844423111151636456946853919965876607828469004592633886432468324483403849494779277128972040318622727032303396771679644823269791183369839036758149671406354580149418709953270491039889774665242197952760273341574734524824346140900790956034083064812099733450597292807852025049401634118337708443056144134071320176651841938267396203957982918642474427692539325404902926530506214971329411220783396555588764458897645546845340128659118552867031914282790732660033256125727872025686298164008374769646732011841600885811783900198464422698533045358725071232809277303157514217614341017592890889476329532556032423633903511990769763136936324660344735467163444596867404671166839960731707208886384484908951010378851067788330201597692384266860854520366479495975866384518011268122959145222211841304443812273555973514865504804852863267063674368769651997758952104400026985796625450703178952269209626596163617767205932975263294104433341928541699149927187648334969653240833163877174243860105264066125398839684938372776012317467814059890289734338989302096128107834900712893366903077191706306952158895404272595587311574319914705060263171700101184212247329380866920937057232718031949282412311282233823749240614387055380759556244512762820222464313000737657686795567843106947664961472812947982714695894920682576705923662274105323931951582223512066349972007674712410561454070801648715651641021575189411448737122026288495647470797715809121246459360876530075784878876489097123345215968013607535886575679421221544594525926785566248621338040767962041608543684912143188996644849040759519112714984803426758913090141206225944713715888706623053628662381285283674089610474487950567894275462986848382218965733687049868239722808913729941555418053647175807774321851968267817384706980952357744808464399672443043174523335767025257161950811430826790126779052020812079306921017007059194859446275069074835749949734655233162192562480843485016626319468787940818752107491665311494795805724579131018075938863179513745051961940455147220421832262403878775100984788965279894540830754163741453991385816114856817008117934833281464533417652796324584236688579209295647215304393683992513406010009583443828461540106973076324442092520051161110694271999899305016844623954394306770829928234403835348669979234127922210193007244429789895564326127896651238339103563972646753135081197325595275595413235837505798404829327525946472432203293323370503470394006299947187404962298693934321865566374905355742697001201174110950803754879374348308653656470305297191148138159500637859015755417221232726638879293489137596530562675304457070180564770484527745397844213780362107826429529850291338229578248099146199098827851837316799336662572646965261401081671963714667538349683793001159423894550288279269263345475344158431476910738104061977517065670575358540153424208145407561504566580903651022582866582719719474314286288286825795615529698134109899323791155338704033358750627134986047052460848809461723978848729154223184752505366300193932477299373280674681955069769808006509199602093823946864675390117809311136807237589826293078785320902679611751394809839496759559115590030866063965675604513984984306306159483236290540233576703250579801859090917278338818634633378880460422557000738123335767426375963913560183558544306859748115100477574983509544083765892537869052695761593239339375532470176459814644359152405717490640508807683250919975392244735395818219491741898274595059577884330481788169126629192706355093974287338025435896179871821228408399585686878958768288086618310014472022301544633419034929631124926956817062056362583678898979698651162921622148374580177821798557111540090689636416412143630330932832616892463189031671774719381865811145374862976170382372872480844758761692974799737371523129754412320085636258399109782469842125446011112559120318309101331523056907646139533214893983760459265456116421008781748287923330560573626429089200103890115288904793484688282285041064361383598388661268590061160627141389473995654432632297239235387701662653468794071794461083479565020609143746513484107215085353731716040374072162290628264495162332603892631449852795301424276962573093290944568563684602133910806032088928245801214322170562191841572507454187447659559788517348090456028565037001255200937322616883653598729355205274727442389962545895844632605620880046474952255960167327621044637659827465237136656151920225094625627139387671581335965712779815967484665943991775091387381494771623818269929374360940407628051308894788645099241835533835602480155309581271406993066309086624153016186653727304402870172055558103851338746799071272148296942035221708080196135761221659680699532423197457602790600853796645922849284999422820261774030924532368523196080219546568856159936056469215903819461427197333598979091100081728782843380774177770843437602718668242871118485252065540384346944946099505019922250572176825838241341035496009268558083837757826712766751003559043705075082281534140826664939904439613848668149055644537722114665198999547598338532782620830795879249777664974145609709512482307501116843055516895397246721371815913363486974871989322373124464544718836746034746443951261818015238775162605566492735894111172985967654159493646394773109150645420593184613251025166727387411291695698661264126284387734857978848225684426930037183321208169359160636697149922545060195370016763520102870152265900406074029033039624026622689573888196537024731813681278559994254918438597768756469010002883520331233711956382835552439093852700033573380709527858981634124515752731634551289709333018810524589939210158167180230588569719703816075607143016148627275695813425129696843108841497313066872660474162065486288790538154689415474566102853186622259648847211555315664759527895979854262551817122400185480308070231481479155324229695879816495530703509210023253009164446322785624130249204489886480991561063201170573256167039362793141984213404178174027365660697499282094589479353866041286386426125449778353947999877253657249538299887130691350909262581412357354126792043772706923140427031611621964918763285480695008593946685419143484932826876712216884933476152864345064515381637270428561846739188260961057754986404686521130437986348243487950782888970255411088437701865991017268416354564682327381264717700746587138193018038910089322012882116078200315724040633056477727179582940520786706120242724276629923589982322263014243414199030773779208164305452511129441133764702623442419658716218349059121429536056740174008528739227631704332408874945759639029747090688903523062313808593501453615745609052939846957831099775498801311004264928190097848464920587284587636638378738437879306939872715175613598236785939697966057926829881029847424594433840176161679479256792033328901220572304420110508302743407115639434628264794541734937374846467541337949564048642454953502601365508403775767554650237011988673058767346356227551050463674288219041009732818326050630293905871338103618693630874376643164692045508505164062390206896060452267957811397036519627405893847376762907598142924272576806045798546947314693334327660868718039135659240315383590546765037310806587261013312285337086516076376691328776817010924744122834134780639777562844611181182235248713134529422001054804913334910094266394539057186016762921028228306072487954643119209830728415486135536919466850209062473640024904104478897354256796669139143052930450779160438248373969989277057902687653250433845325469838363304293972176697842655054113973783634756976521908441966447219645722164501422308537241229778440326713234067209459743181728061177018113041060991405184943216415008165771109445800140191055101621106211655136182180551906138761925199520981517955266077958315574545023819509745430611284576007769878248500123575430625412347776568143170452637082384732677364675575288366980763999512579502376875780695496101858510947215840539158907237973921850175351889814832804874456635671881385007064546054970552770101684037178027621259855287096575621716403400086268727513767596578266368973496232404952125706829250566337631633597781619117457727781330406409588113796168169873556721313878707607307084168502671012077839649956923125030864787800140361957007069340096681402573238745472243743270135440037109674415382387948182056044880564403363628002987320006030902583475918163787845605551449901854356082729511965046551279231396120461734725326664769354042498394519912933724638156330263092945480195332488791103153355558778731940582716426958293420210646623181641036534887521181895927122440116968322923435846460083581216839727366894787908440980429335878631625579306629502354771027542808379764206651489572666236170512692740127391163941413459646124988671582624408545795335032355907617620917136267931685979450686225232401696798421102321896028511910975992867908802645153827611192871781188419309532412147181461613491359658374971776535496407384179149609965761046077428128538477325333421836733900157410990144138361001678242414561789352382546467663733258898406686589768985701280401921531578196643497361803594980949086651140539137055897300661307351249375414850890634829406454204356400685070699900007139842674341736897310030577936203241838018930614017656689078403609834676964257422796921044968464673096718580741223358065530384887437313605882595487260920269111598278326170598035788671975478625017358940625152637447096062155179428875438250006400194596386938776726924174910785951693019575845688691624779231507381016884827149968472662063565282242998089869455256759992402043816386662528351496207086026298465958551421183939888805797387796954896176557340475572564060896680303294380448183755859418169303058694381447404774803156617890105846589946104238991378600287553534778591207594901741837558928402028002491408734717085078341776310392262205473394722467303611914067875411117882755481869911395880124096660148170319252240320482565377146339547634929763072051906285231134445439208559703934448718095528172912093937607672668891926192195669171799469926418568616172037553043073362667468928131271972975165106038942492877260425398504533887346234150442697178091203881779626903671405498420115820284528366090346015698005008926147951115497341735474274566541292082273644173234998154066105261354337344231107878197257489924395738034729683363186502608380552814479380343137175319120425122993078290597681970410891516281569676288883055956011877579662924416862387846233645813527392846138741517009438667420827107233441610557418716037224204577302745315113890792020982432805645828741024241028703667615740868468874021347628145702669466178095632603670965090771554990163134246387569294969793247655136661249551948659213306404132599141985574869950093030093683092942490564748416382232657601519308360712277686067923413931074220946675375366537011588157079857058694447398068238361308833835176692474473484824990261047135122136972020168536690726735026269687295656627604694626959654392529182941540385387632976188350974595047118535395997031873700059855272705495560456808398231329153052868076940327564830056101160322228691915155640235821621971507048626738236221255488658460502901794319275273411205769808847254048107589623855149835616649983611821408763639980653247589156866387822546397880173934003384292341817195339109871212527609407234282065011835938544317950683445346308559312692941951414963131357254994471735535663808554778813556390654443714772803915763223677212246177191242290122311807916026791851987734313082005918757585423748833227472628022366456771204246267326521145704589913431840515370961509488013970967968481173903107547305922049814058049032092829489410051726042503932497358765839641205354285523927960538317450378378203061080873787390810470557595835522687955940531535386642246467052315836627742347141323397954954036620440422651546491923436155474087386152391009417939189931819251960279981349561934948706758068778928301736193961420772234401478929702324154971419757555247639867159343862033426737972828709676729077872398847881769432822285449751823745507298289935486138353147719444464384090560250909558842183943639091279195305218813791763556814317126808715283488502994714905867643887018753969009792872551302348306209607189111221218472369954976802588505300983788630844604561843296323727504303485042532917141791438660544152066406944846487729973378834530483549689050551128543507239877127194525850661805151922018769358501966943909501006071079751191512071958782436780011218583829196501480337430063031601734750482990995588267621170501411368738543379001143993003758361450183075860013586770110499837048027243145152004744695731834812147218934803062402749869743582392306836558412255654713048124194984777223042434696826349456372059519710452610437161903369704539460992556131188550918275458273640022290502711070187061191760052723463829209492804763529077187456599915874733521846958604924878775078154637334202857896254939856430685918540661199629964892889303564941256258540849356825960524522545190886520050319464015192970958808434539460162639988611443517551908340451838249052280219309725249761080569751034577614040323089076089678380955265244532695833926834689361314004977171600750007720526727186478958392629824236671016576677189230742362311970839807030386298524835751711470211440058918790382231597893180478586052569399504750430636511263574579501751832755230348391675071571675069448008555223363279802885355915167673765828878859330974108271986757446375673504535911159384159335486648489447452318311285724230357576301888336996302513297066710820247060506747664126259434265245347327568672435725814432681503283331563245781243948425678457984833933525267405722720321156231992930191373627547144632899653391429565995221048610935793194078825555455712381345937372060868767471523829697624165287158901765672056985760815110603915728147084992044519754126913559927463368891151382043228192562257407243736177321469107976705981805044678532505621433692516547666192015520709064111279011483190233278152298985040722386091770054960652205454358954115270260491109834182920266814484558274917339710711965532853297435456256870611413443932298727692916089275140605977256150821451769176170976938135827269980659759648627925511828043808547708298584300679149611721922908016025488970953954843278068111516300419209985683484261561181911989831183600998703209027397064273983364126834691989291631371312940495054769056192594135164295280468913619805346825361636394972488908224630884930817743512805217519517299393636410142310486813835678523831379613245060200434468428014430114911221352294286897956088154953928601386662005983239562419652089154667326192605703755493147953076488190942071160625090172177541866223198723558396663570793952816755306946632223961818191344242942870553340243790741523156923477482011943024305857073248551079642009005948450648832261007094387288102298117460268787841301267848877184576132641271759683193908627117376117372292528120028155432136049289459636423184439750401069366465529709011563577900469764451212428582566169617298708555813580133097867493679669063873176089769605770264204067991272361354054873662659612070866715879353943513757306137334790881816937024142769302037284690635585105673554540632939185393082185643611351950869026512186112795371277048544013263760351474020508961485019791513711038100754839674437887562641533247002725017697024044469119235001375766808329205693278828677666192042126258475337405376622445974046991963498362417799398056003575589004876636516352492303835809994964383531657458813385730779523419571167252964771410617065843176376997292287355553013370901715798539768825003504281923535033876058644685336188132588426998259355400116246587338641874625716795760116075130489518106865485026263112929608488195439151538828971049555041280900401167893928099586287387859913782190058887783459317844939280772073253889225398115875971966902627246678644959678580627248457865750817129091830938143341085746670661280577000011156591567501669975710043738939254947070589131603633478436966874568518741850097069197062813614763479582083969851890952613039993696016812179964279109648993353164085537106363722152801274286623452190524688764475234138141102438857071161717443467640680622916551837456483768832679921662090305719227014422068439754803563494434047115145886113820302981324804454311222401384604445339121458840240562874361950882445420932987108930481087792297763922654300992104784425551837620942065633900865469900974244550214901221406449206343322585697102619630256819238565304786618026869966903666735641344435428813267729009656897037445095664828826108602978701819107101613927275858827014458315392710123739009647374922342241038430551047016330820901781452035890622233057137877754106727885625503092048511669102676441691689705831174670099365601552834283551011503556086248086424705767441984406868982313698482058178833148000149826037776033176764118068258449656455806153317162023771825983387786060145169326853025296966518385262942506548494485171930883871183628886540434762158599123385157389889400389373396376291270630632406979882425188898774984206004240666186333745791367196399333309424996196055521687260085540278275060853501530411979263058772285684286194800976791887752691291424697093843403852561216026248685821373678377751345835713095375559215377147282782763441307840507270115246303785894081341075109427384705539721820262142280315729773081278043166330354678456082631586491637435511481784571474826103168677341423631519899601923775686602159017127851410874893320754200829242657699188020691888824040636203964208582425758769554972031547213456648726137994320651711498803316788460964472855441620706851741094530452766885912752910231382147674538200000855984201923851449561516084435143788832993826741682756127785277195841968925578065997342925931462053224250179204299025431979989842817271321476730777611566132234362041429271138347303289755070357822495468922096934107525013626176109903548450975194121439802084185500662505461737440782598463522138245087696097134200884839491251758728621481014893546427187405674691022769627990123541775634645465747364778543675194287020067460645114838293868906403594481025885956182102577836890616313066316687676379682250860867514496618487481808595729486961570666424169100351631150053048192213772534391535980960688990519829956813508781971119771890645582077705324548742544718550771662860234539168162689591925784505309880883162151973697936921929727058545909769897470032918637534325247190873285916182693758500966152920552769249816449442436931943799402802018494217425466608495094659093219341687434813629140836572472876167526105853142536047075626029951270126958873522589270194471125531426471298712038015152725671550323180321595085541078910890905450466605792094010727183749200146737165591153472433957878601697430102540860770536087889596946137280389386935935055108741792221099797268493541160642789315700311559742132710966061233060373639936177962394272667803266579771822900973061700531956018043374354186177588043679963455172048459819028701046599518939561103130051974704683453718526267605119949214072269408756470263043261727410987148210979489607678521256806703687475770498762381698558750729210501888862957085113309074192550985841128413749329544551398605295622462983819863558941428017751124244533741729949018720060257738214326516061511295501805236819967034287032446398526753979054555979829060426628022936104600408448723376468349959561832561442529718974487086274016610276646499906089100029430052925636953482757008517989086429431136008269236402785147881519078362197921341438719775610484663649246169017312031082622267780510568025162428824526246340226555575178852228190225693325742336869185175911742331934926926406624085754603229386224510756443392863243840380758801085714679444233447877688225832384091682039559944085058082054814236674278832418326312171437376106832954826106058750809208729149929665965618658881295968500651065924568150795853559995506479652665643467524775241172344756567893729015465118560966268239910283761835693516028223996527883429289731836638823485738021132393018747989900737478354081854422722894086045536156282927452617163914566212836588626562434681024388559217029868313125609824166667117862138753781607325673835949121317372975529012933060958038608098929142554436500427939136493530587381311073245719915326936644450026025489460126695798481986797313824794871326873621770700315202619834580362939544140431362728556368095198451693374402609388793723774626763582583971122993824855147173249262159306100142159608111280606213932605645870026478705522673540399947434063631935858046849930382289732484025974959474254016020265952565505121934372734712584275962738862565571880438470086658083041463077385983711412804402539236259419668613082283290460500838369061145862308804545538779121242001966672994127626463411153064690120304230079047977979896416817565230471425908028195290524318480987716793913194181660416448345393879777044792351215127969234931691562539133663893157254054659931259463638288249773965091165330311734722197656561081362262469747272288200584768855313566864639482232301576458235263584915878292018053436544585652200833480467139016656563085648163212208390854744789343262098080253732398412677755537749631817825686062328835880002596758494387513870616276680022665008075598654830459891176448724570984187733237805308492932301683841094708784434433934985744770981590527074099761443380895444409287939052139974993796055564970304410264566969636505402474348392187560824591714582365017922205090889184812002754604471861505467545004505407445766937510655427747989610968231631984299156517144538759226490448353752124846924586964658393777660967407794961129043437322486668583741260140642402656849668514110651363904450981999415016211543992877380733664467359315529853354402174756589222281316063798159976455776288014447681271204554056276440527479410058835362729695629040817493640101639571650188544004114937869808359448071551610558419214354693308091065296634348209828095687518300274731388078776830847405019580496577098042785426883503204566326274076582517645232658005856172934062062050590445041704100864927820464167239964452877842026972094282724573535701895317930861278435200520265024204703968914466270806636894420744213974214461951634825589556807206516336779173251654344657781383182254116378775237466220341341710210607935610737632115186577351331267174682525968882627213129033954833553317950286837915700992058054395047065221609972021960581545930378996488075346322337146636639775973812889226897530945091129074432357837856937100027747576893803655418407144427406069370214073812562395392660041894610057949918992463356980811571146686973826695286894564727757933250413225679817877654587743785099613581038933034167824728090427585631787742459028575660073369381072647347314391288161527578561684878481151322170964895741982816133534157948503124320462627024354211484107311471254168279833110013156461032507862836511632033690494145144918169645556414107103390769804638103616832785078781953668769777317207102700618289865620832492257458164105670962260283879427922291869097001669292483699700859206318332915030064805743594883535877334129948967040821231190298592383970385569966059254434941831410462681386783955963368195990266292802289106748232796452758757898027109113440792484399090434576474132396194841135137562310205986259070411438868897567444963211998515117776436137474006620588220082766423039405083746368882650063529964110638883982606922092691148830408149914131810194194562026646645275359232121708490048276742541886889112918457789374927519888125844406624464353364577162465609044482414546480891598824647666134665114420992413889757040293116975066755574202113577736366810583039945582207884900417211264024025863726024476398318521058753529518419466563631530705498274242517207419739741930217525335207278963799829339273488372534815593966648926241397872138001419190047340492710695135623806667758541873831008077341294191794300760651421382613186630354915459039196490214424473373488011214747016504479065888587156358858506260806084490276489322425988614863497003868148424633553061380421171442062387609139186255873737292151593768659165583647317121786092671584364482591449973558868467423983644822314339259659152616721993668306004778249168583507277176134068097876892362590159778404261614745795179208733117589623375990589644265180709448056233993375351235361504368012181734662191326561130151418517496494349041949555883435805950690724787472202645133313087677888661660107609560320162461233107121953353376813609956494901603911094616872042918710687197496324685591591713288520950091154963722267720210845825050934191001778277574478147535072934667393096690302510702453230043048301914796410907960837979261952993532409390372103616479472297387388741762882436874728054416921561073820383084739578374989096203299539483228804041328463029770142248008247160244089687513703110550565105474871670226051066174338437308873149650496162455339220602564604527939033174479036384047083629492827890395564276022876377667050089611271035713744802751685164642839260070594600352721254549646777544315378611291805383015627991086219657254256486350442440637724086112306348822112445129957567301163261510396852302295170982978725462770670112052311456806534365760389888997775028241561904476754078728226977037018431779828935990176935608600599326200539295566467811195279769544872468786767851890812071232310428527230491599558479531101608744369955209694923445781241222160892577142621523085452765425439893015928451797755758503138325623277220377458785395512040308248760620301430104096429014066473852162259184344239225032593304707435683841551507667065997469568287207864314414477488107060962054156299278574853108954120019892626496034018460927687926996258074101625890852039113571401083343135580088080095136495791002739960670340784106513185886117371401663392735922203061601805985877193904508515802084658775606206498555777785172894558739522311796427937812865916202158956787058476318618055704544519501039588628582680215115668414988723399298491903938130293105511730106670129208590002006213842403603190490903836064475283552786760298038262394928110732854216106975669220299005454196808050693765537352166151521557172472127325952272985481972468635822140816881630978277048183381531543434210158956341817499258285127481132021161190350508109160136395762144258930754967296271959775511134392340483793622377371258027609610190575721561324419715051566308820581258383966379508821765711519074778201121812384373176783125489905573460989890300681559459962580355071931526310593883846422284983235791322236228968669704187092110709633434694035741176983819352688250142476773820351628450597970882469471437813633443084960470281598810590418801776881433915824200427358247840882237126737406730514483222759610206471617902868066989437837477247404375123486420959482792171333705613024917623500315419783161414034085850813319416801824912996884514615048356169755784867765475470087936492852465035857470927360342774949685234617195154059516587623862875366413413104011377339990818264821328100534650128012308939994494666704192326066149808159024119221577969955253796317838013884537460844314183383830718518782451622533321792761204864747110000964843921499132546094471399866667678761417832783667264823889761301343365168150065796906333511128298255806008700115124229230452180246605087801473087144388500821178036921352091184925613804820495860009024756601383092559852601527177730299319647451206289660001980616885131445374888998698344532916215024199166410877699840408843922486335774608392457465221983995816888612908683639476793309882400853388417021705057803096526268979833458847904287070593830939622060961107635333495727672004111728573797205649707935213595792087804341804847174903067460732679242619886277172924278579794687339754555827914361772131662583400910590585970753279405081067664222127850287755643756684187978503578733243758508712132751020788201455847153712695261166023599649854340846914261111741352102852989640997421356892188067462115553446327333463021421959983444492104517482548107415336482482262937399385888676221744364394667439012265231368428539668306715056671465143752116336308872658919375266226369443844961209799876158729098425716826859339332983649863577776078000727543076826727711341776602866372880397363147211183615961079800590008281500611065851529873715753227065146967703098554435251807985284135386975822781046815577756292220465342063036236450728116344926561353562803164836584049276672695896080970749632676091116174717849252112252307474211457072613583595421678496243534253299854271117770386745951785761284000590584658199877766147476797293018142760864217531865349299934665710829829578205382260452812474259551606972637030458781259450750857710492668303348930249509558020528058174772334842736751927809091138786872752329721997416184236603720932874378933804931039478804837600330892611389816280472438612454897862881912306026264704490252608305783795314360775097134381686493788989047398324871798607708325915092528813059429977134682612778417349149077109798989469543214928659050506805085183917449444046469888389581756083267624287570300039781607386220757935812940233879405681259386299023029627103252298379953470259055161137382279320426304682653583232475246080770421415027542673833902574598322998035118986193104086614705156644177367786307027326134990501097094193268144911768109573375442245475572573618353338583786317792897474025444493196884654435777288977262824065421711203361225984432117050085426627738798858814765200901049764110111892478039814449657892507286188554009235117687757440228713076289819635027757020843026971773996024602328669658942302100558310291174647430827684079685273204118123954888951470634373801639197313010387307502741629778100938151069060229161436114428666886138817684136482363813257266898389190227032893099342015050216607119658218648958885225136024741071572147265952145366310587720988751653487082162386475883995518772594228175652057189352012126429057572367216535420825480372374884158946342818046149555737317511063178915038980387683061400070480772415049218307637629581093509935186037794910601071884646447246564819906991560016428391687551985797777304127393268127412629140194604591169228226748657734028990063586386670360238063189436205879323018645004545058673115053870392082897642450270011133227707385405850041452690015692980972692406641618019867532432153183007561007522971711515771512067219028740264933138647772669046226802028637635628472396346883841960140446730562627264606352157091365757498577970185389467340546261710940291292763419465986359814076306855185252769456146474772982906534250897663130200541637571834740743368617144431268291828657196665664816086186595802090574858265286473084995789821867994693590982523158545685965025662799262253191384330096407706228564856783752373256340119010356953049504949084113147921215465190287319861883879959865030213928388025633702532294084834460505919467425149257146525098588423173691834644563202585046186406746221030628013343037077398680210938452399445246604629737629795734155260161651167176900862313286043517805890976167657524116327945002744499825966603912219437401355047684604247347447973795279889433552478756625786934529365640055749909811753322134657186602990429612143729896018735932260343084867296464584185893952761786163020018421400696857365891264544966618148877265401757705130009314131341883101729355912430447224320480743034315166060054138536110097491925079788428089033144949884924371336884199553560430562966539184792019416220332541205753470242503410719286016430793590740101026666295728462952717525120718060756483716920457112482725394033611063483258222169683851759980636761423673957992834786577745308129021462053965504694500641758847307365165110468951034305058608548038172745005984704461300956791060491032470890704062571419317061028143638746820468495159841771406989581698709758649813019695999708610379106233949434757140190293725805406215284316026466067901385758839398208096552820525033024482552275574972018540162802639560974036012000305583230430767889415943723014697750729425867577454875179809661845917367227400812042530931880031857480130849735230548459685871540837789628822057831681654766195154916061129676509189826128351284560278794101375222246807985011553757849188370209766099120645366278033767443952586571067814389118998592747334725501219982670011365371472539101756931594730578171878202336423510507954920277559550570592057731671021628665344269509308456031749546722200093314723218780986507384778707278466989166831223027711231723303449050003486734184101475874519838772317014500801430187521881308437290661909839529183326299693877951050407372290407698169524083584069818304130258760291580087402961708750248192116952591038191184351034498915816280019049618759945557082017218921563696220522032556984180252162460996051458086622344601590215965795575759707018459678941562819202491965864024648832260855194064977600355391032586379096162333049176045513852554002921249109718655061303027263896862625850238507411472283209066641137947685370576071928237515375669354804177050921233949435609796269450265911789012052514118982168626329353618373377651010934248807223516989706291520457844673993052393931073612683963758037459315654994429990011692080990084030983606246138033927242051606573634234406242535491517717104408387771897204191379313075220407361542886518016734129121647410381441148067614244826984281488954507028110537563680309824730008595875791069121891059750812763603382259798132149105284235017190542972885875583218140032292140042461041715651692317875524336955400867610701639810654391308714879686127942546048988044069435945631604818373813608978204322665070039230028291906607718491151118495025417858151484337177690634986867334938634266724262176673115865171204023051410578783036420381745619589684662528926614923905305352699157157312083827610915070691879409295738824064219921303931656860087271787743277045133663507434400716684756591068306468417438987445956582560417139389517760796435350027210130315355014769692480585006287598000973464635944790334266315418261660395015499004332171317696082345293177489949090485784116177197734478425848704326933977059013122655295461967943761711370471561619373110791572250581280017746606795080134093736808805828200212378558383462772655989670288202572102798058017304135922123795507949468722366538488222979500847541241373360213378002567430539016411619199022567421426284209637295587304618902173989692856916487155618201402976378783100025595426783398183822038250055993771038327695627632539125553260774284188959674788894489881724022797845776679793748472938896077070400379024279089449540972102764878665821652277261882934734700879355223149875420675540695457932943978241441946283679609492188416703715991476376520688832280020043057047724959906201633848040580750026651391499712687094597932262408704755380906897525761345864748084532882981552076861693552563425399578530291092656707837853284580461450619770066639442130021005826818448902597197060343166935709580134181321122223331503478449358130016960396111174226200556858892070988336997798322713350774072145691562992801277625720194775092317825197337226432554509914111511073100564190916487797474772892904880121425224591710824711456901417675092292200150779082024222757953371762988119567460447746437254170576251551266432380845324318900554684171420083458722582897564156013941088542627205530879902202349045099917563084763927736634286758449479086231301711234862762417239598234554597779389104175205259205706120118122681177228697357831350150831843463153685718720337687008150000154455544342254725991343386600701826970326734703964304295860686583621445673512343939623010771897434918030872658116034729695810533883534323428657986947093345610627074172893782462530464093052943316141478284831518275158535810820346957392270870337734638074496751154039200419615761279902269760163255511255385684921392077328088796079299460181772154187852037564722531113827388818495554402211943797236378719954680615939582063943230492844355641623131377774239693886303463245255618818156615158322317359811934694599326239887094248264587595417577941044418269185438181372973017063042246409857721001873965642409778311137638076290413309763584322366160733528390093625727192860670308362574986644153644014362791363679560246310988260434993680626867736286228216364870804458536833415831335571411511385154053632770794789233064360513772490790273304795263766446070664293187453075987084258264253893442207590329573590407914532029688047100796407849495616758170038391770243535681593448365153287691405399373935132602762406786330743808205069397344515497306386155382987744277328219221825508062174578377222185655980449528101772391135460569142586307357994100071050303642904754371899873920846947775371687103380858926786038294377659374552148006989956531032424203014575966702596266834789430869696490100153395127342452679490986525109218859766597318383298266898292851365998455419768491364129906960548316992415577030074095913216283622094718749917351821597557326457903099784927705335933029091873400760978255657915105811069685079529061223612517303577089472767157918290554714831908573930620922780262290036676345903098117577795519517901030237864205132202401941689495441563716843201994617807135472581659703354204161017302843134128739964581169270852475704690836095591760828471523781703552053003920338684769132581955159297966502716242890137855471746920565971944575515362097316311035302936790481400214438545840838086640951448460282098005497503263335522207802046221124981833877379592227242378485839110208712976034516175524728174559066850791575362568781327299377596364733292172456682579955256342709523303585870026657480809206539281997874351222676825726764297168750377537416020854817580712593754469659611249460813723433194516769388502219488832748114974986228925089637903279727955931424486778596482869030530582668554446927012927024426034533212678443852029462467884659771187475370622822678445178206873766295732645627442223556313956290762790322056100992610620895286634584173003087666041506452037112261621537300068368204429291792761277321926825119792476025929675147026378095946067209857465044297589159733788350771101896231153635386344347601309901524723256252923329773948950923087849569189273447998059287378376876849909667708225880352165965619766425017993079135589487158562045165619490296565648042077964276827362542167130309442597789471265161432611949934276383502614818671031309814920149881504440174172290704813592824380640155343541030712543246787348047412489606205366026102884077325333705108844056593288490177464175206050586109005952965320439506806890129936657357189246223883442508451676745974601302600030709300699813067861325072991535144355501163386298514828490811505845203716748748738845048454150555136850282152108786918522696741815416241810810572926352106206041250932810542731965756637696749794840892361744130716373494652525788103544001081327192061702108340400914593387897876921461008962107601256324595459699128472590955332614508282796860186708377819331706675373446671558649527355178017595405630524870437378971167629822948315911196714009075237890814828770025190691234613897905090411459718665130722355541555442514215729406716010209787622436503822098280786018525263059535063610812625507539217352705212880200441796314456738394742057124182168793452761342297513977588689505594654832823256943271221777237753736381943774011264370616547218306207835849510156367127354232378379802328256118650726491546894575295462773180571719342927989268403717434891904195138206015233407889317298585024415322130382527391399103092805454027102196990150831380206465485111904521522448820801534622676902978454699660709385122421137199938545246217982948438876308871188165983370579030440494668608935295561957559854353028220305363459896927072625138702608339503845252913088829964570745514648653011043651344190152127546738822287707966681063958021497205737571080796798882015861873244701932001763991633259627517518770424545362050325836258459278946957517132144488566188447721508658401822538294958775364403211440907733148489943953735928116414695351853495348221277284733538270700725013427626494413543055426536084773922318188868636345529136025136969563792469019611305269028042306512692363682373966879897522398985608265732278041946351604055989512904322975024053474025152601142348133136075352019688486149765536708619496591835417777261654223297946714438328407626515639038504546813819388855867885137895671519150351938069206361396604075701733376299694290573494836454379924248927613471603095288430567591965073061665717971084464000689802435049105656060644721495651353482993745742217831386713436358975735387465662325441785120470767938124601316024011468491193352049061688460461985426694378404371363213215905889556473774596749164212008116243877190357295426664867079606883737102510495502270582611041487116570229262280529673310561398605151343909810258293728035849491364898383062999208843639618199231551287782715317045257630251659318760819247706559403028782093548118730136514423008347373284526126499489502937910329264626792917717777155882271456450889245630460951034844909822265941217007966036654914238878493569306209368274740493809359822661782992857788841300160957064502233135547808925094897904582002925342682052423024616432933746467192968337943828242872833294704500866038290034736741106953277625073567897585931094791598670656215827469314739212923963948185520167512835072051785875594212934426940310079807607605955610919951786423263807163351856013819031713098665833841868684307381637409232734220244499048712126512130626438722438164769694292456637137394563325418305501523403489729701270746317793107445234184174242460806578460451834204535934602798847128112231728051009080006591105246555630815067507105455324273638917714701952476436678352647219047880054970413131396250587338653921115833891058448915927742222390961055318212022471050148377025779853293458410983073796017229831193300197393621946590744440397042891985170872148520846515197383202452284511883718976723497898352330633972621666775273445054367680818059386828301565117619971366766585333684489957041335511396221549149837711952713365397589615454666908297673574780589770028893895622552369519658014972431781133144843570623458072920023364682381173864038202790374153951261861278302022094869975804383428065999071486995933214032968613277559134673197121549901994640131433525735608854843959860854236750931018706388859783146983972993025580669295262018999980736857347064690019565878281692456571440553865607812588349874372161013442772806854510561215491454617028882941740882581798418672915228569559489829969688173572998156253388630661186959853070134661317066700792743324498570175678895733208497429056286713417500576573496270745805820741528666158104571623327092922841245748647879174336021020849597081380988837255260743154116043275002218249743840348700749214272875110026467677792741992172012895219537149987046001354505987707630859237989314588269152067343438336491450247175762860606334424517794411082099119032755780155378719271730676444188601037850005987415637547416407524129180416127006025266592545650762299639322020020153591736038730590869271157090554688064992237585162533398366306315460882743761792608686880980664448253724320796403769552702696425781092253581202689598888600406378864592357820330234338885949441405048851374754124314191269501491440086071215434107790434256445788801239792589035955552018502119617777130185709669227318982259961527285776409952064746965036781506569375784493369988904058429889274319303048053082676610272867253775490985403185377548688320750766771368969717542541827874142551723825079364601397130622990263499751634925114869710088664980518774285473115453604087210793067884914590774342540847899383416185373556558996039118362835777455536832815755031634482248212625782405428921443507641759677159217066267029766174045065397904271518646069129204296490718129432966747206718953847571243072720310754046202776015080696427180109430810893608266834675362822643809542016423034242655798637210453570987809414847149481135180565983436885876835387626948727140260621680195145110233829194580747279949552292531621575475922577450383813017989466935618464821278553788122782078186747936851904334957402072640348741515539494727530572036398132077536606805891144544427152567604592213472649666356756682508526744182164852150074552600382036807946795612094746191112020487764942037617999925765675650451414257543951895828446608334316495541114821494452851522639620840870714533617359950509759670114285998286738425071915573163024510738998207041402340277672248296154916243782076383558559349734823419389083766316406139624531360308325413612366854762129483385198225530568454096781859960223429685871130494453781694749402812941532565626445652586346091273321647413123481045241437384361897805382055989755648782374975263927621851184162597846396415522534446953911040056089981473918596831981072722048295101388779144580141311448826828451857006206080118864232401741414331345020016578741445491891817677967210038008982936731624210644947429669609431799751986775674702575526238992178432410250834487099709118522467658600721326020188280858873210933318016562557766094177518836310606231019806556567112281165997649353791483013753366447422612676604361473913079341762355609713158206545562702587303066071744670663986854399578692516211099070734590942186498877394367509818784148448519521041077676407641054464648166602771605177811390470251191713893411660957347844331974937427663672662841284611776635927213705965178786664129671221076719884013251817270212089156066358974626325049252831413877079970346992282872148247565380017875087816927355661575129681486458178022568405506008431852255223247712612820983110652164080290750828167430106636830491861531574006786442299706197903801980456612820644409657135625487728447125542457727397929404034901452064431187721766680068228514607951422336785818196442794771108101356440800759016710688672642983967626675624720791486549552065907242392031967462814312867252596442644727096312296684085874917356021488028840950506615304946701597382192577558073905413537158903539633035064633584672850611919917077384214125611971779309508346646129877039863240281008386804894938217854956263892499285415466314372955041614757588668287189592961518386060708917512746286251906648046680756961855591235297853919472341545698902916337943105923974288051596117924907840345833629589665267808491161578016885123321545285755486970402854307178479151775123355252416551631443368849893495615327603261673459207730148897891476120423890903778643782162482961452625809802830951167062006115164388532390875465099787696871451798267404980921688089868454058014681378062347635351267826460581326569020837427730561672446462084717938020144616375716452191875865685904756799611840863266490487044013929520479306296975072824235535218042378296242659729589730277546850742586088566501365994678699430174210476551999887967818974334191890506302351677307344659908145477518686075401378337799766857333135769825458728643186532254072218554745334116693982986449444939371925156824623584163491174794160922012844990419646121815419455282781220063990037853669202429651582598791607601861545397984646986453080620408949421549093620554880113396587694487714053462253412611163470270409221588571750079754006768614439288237597979325341245466638915690557929408297612653095886321458066416357521553098725137020840793720640973945917199147516856325244902365660627043981228033847709241950270006341333369831172744497550743269782842817183239173603084522824648592740484442548110391365826546806547017107407359698624660719336943669003820102071290992791136396687467135444488992605531675747792029526352916863006103880899428593506349676829365383665289855150604116533307574840505186977501780816501364910588185352276110565801063765633925071900739337715990348596422106610687876036815183287191179386279159159720727682028229391214747920661381486430996211692472821447302479460802567269673288190282507792550872079274597677017949383205345790781627903886974162218853927877847382935632134391699368462881324222230329012468116701867453350745859414756543163409825751945611144032914750248423664659257039904836453608411626954784981511924775673969235955800553831592486544786083032818880834911700416162854888188066559120573149503396963297490556195219042573921150676276841284974605646722510415272028791249891709941328857324945151799417002377908306953185315709191879972110275097020718955324318963973948137130217510885652101845667970488202070086324563351915580455746533857013943537077535044373213493657561643423912150493146480836573508096654746387937297287443338163286429635487735416659223272202671496661951120128541700340407635612086019967290195260311315586382740716190079814266728709980897731789653429990242982127018200401292722088814382281022514750956163503426053747283981913423671758231637287180948760176672783004160595818185035185559031714149425247820291658286432891569819459049454757924134226264946021273092095837382934838540796463981511037637318416878624062578458340707236913608214217669075848398733672259741462984043593311748173254345814624482717905728253141013244248397940062127606651407416216034219215591532633364819548203264602531206451713908366951242438462890667327084917751269744456395994481991256973641584326089373992904839603623396291835216747818528305104280096171882380925245788059656657142762445403581584897383631187409849230164856734858327053461439551570082422247231113631214714194503693989913710218988465682272892063585718490064587132224286403891644637986261989233048835832362365108502019455887130124005104983806384511548079804651115036079456150935405470082163117182612559776322390131813466680498067766484720275217548246183039638154916007613072381175508678933970214440461906141589966871002334220997602029788771544730965170689271841676647587759241420345469738770966963620902138527571093321819120360817044487547445603508733217109527741609382333882519186752018465254192732256469496631932864665217611416458520964765467827942297599926417068501857923072805737083663421730310313337380718509747805143264187270298526029625115600449203148421891234130208614849415956282596637942734652808107145226756907192516861252219106038779332983251620871572519468791277354982301122531256875004047386399697009148253135763934530225226961315302521469963498203806060623944006171362173956362491163827158041393252814007719151583065128884442863058158726295490992302786801583407780150276058864948066580960670069019545173417328483732679787236085382634293273646068136597959684872413183290729067414992465229946037344887564076796333467452396704719141880243375055730979134351364775866707293381196724142772563662340167574331985768818051308475749998317852875729689030314032956461723574639790594479268399951161298629265290023236802235688088567394128933428590099806531240014185482366398582869860106416599084580183086143919460659457891721862994460879159171543459269509650251591335071484521523934719778810937115298049017161081184395811057680037723874923470146350778326232380485273646722974081437905186180408626328136377259262117756225811202747595228810968876232758416560381171312984092363257690513026532179399461878236125834976850197183441831786638968487746431511190322044201253143260324830878499280295591396163107775141462154439463231005023170688145487080201250299895436375841513102030694131107306468180788020274342903668995322671847667303118263566655735999293667831794388157913316555278952194131808438776191075283947293051767594411908581492947306092324743897719067075043724945378590569385468170973409590121529212249366440982963011355093355277242005139507530927126461992984017211388909931319497910049261018407898765119354571304336985132676058832146603652825047213093047715449005939875380362925910324539532733911026639616030531016588454878566901138823415259567040417107393215121886260584032838737982225797209983662107562592058596105897873478060199730038541580235957547371756850293324635412639849491925145425712886673854693683271575862643982435702225012578179170995781346006563346244661830573382120650763560972961605428588779796776743301316228578192744496418858403010448352847937013567038718340511956125492718310326465555147917630371343455252126283159542193074108325683571059767872097267903674385586247896881990611624329823260374544553725702145077836739880650083329250869310542764443240679171083201355049315008199258370854998674020534919995025991738061329723054924464892294588849464406371189731161738300768889714363644838388776562394737431137586421713545808713094558558027454051385679339604274098798313863786382439460516644699050267336021416579511837803983181751410220409115062772523094920439754975076615693743199442418739811532952296003146014023511485189590052101335381182331679166152927711706852760164978841746681229481798684659280398728803298251876698486805791649620998028506230298673679722424645960450800347598343409473001722448730735808413892576129100204190664211382846533110813951215428114348390027090811349548112867401530796857831143103439828940718544976448115331098216393645075236647955171690603618342662029570837184226629039380814321133725761943417266902903259226440412513274152972989597160727290306764713443618940376621336348127443799788150558165887088459997377794661776372400251975091608682550154481538915203448363545171512491927185523478817129709899499835539745343300113039798571505423377914308447931127074119349226050899216616177740594698177225156340815242733541429882466175982847354006346449285858759746044301559511135391191572850178142083814228775172805948945607539158479000199378522313754458645082291271333241785765287903366521074518722201053685169917945650198098596403607675936608294735964998859546236226638090788245317858575277474345864274416193728561052580564396598808238349219938820508432816889825923976390125573377342696027692132269955072332920223630654365591950185492596849046724159051176665770963331620485601898051352240363784495680736805814551982502834773907947042153430220196226547486304940131523333254605778500289946738735112378849506251724723625211712959760836488468780251106414948688682092198124266669254648437829572933756361701372666316743410041262563384533373581661621040903719205190873856666549904607773778278671859812600415590218592469677822093922287116399035288252013728553165280312559699620748668626837188644664279680390675250787616909603503079406383829452876435049758664940716891311837894003834179856379028745052720934627901054956453342485602258941142511167774729515738786369453772949874102220141983098875207425876744965890875866425828187283739601014707175541024541147544489450709490349487294525448596396779533110784697847076621661727596036861728693353540824466148682675315740804272612548177668025307502691125795077069126572660243200307774110792165805494296023857828939890582357567789502349366029475299683801146405396444815109153140018820866742774282192212614304938996778286988123811345532351641087862010959860579230450939890450458692171179369355556544944051372299095630034287379016787876402712457737791731233276676880460203940681540892273348187553973886788576290251021084319579795630027694313369760389402025811690793907701481407392376788757747240856905908871254880642860154610752066880348529575103169347892637028242296684613904091916355506368249453706545406780331799135207822772772261636241723916704800016564761395011311066591131956906467190313988574877630954921128298275403673915812793458425811573001774071585822262390888129373867683698060533483210751442638989800557571132559745345151271528575390008160073124934989273206987946296400021429791249639588832618992951096757122910959840675927051739813397811051728428613287749783831709321847739333943051730486180972680137964689450153061198664146236119878977790088718761440809119042900865546252412644738196697512027904823096549536407227034626149548705701319393387077413211666676637413892173563366868156235651043063531938144599609860975329241126757595090342188926006705797678400645747754901456338900056976296261827702197918118784936647926442644128151605513197458095339635868456232166430251066525857015600040060019739100183855089031515941926057643959477639864696285950467036446888524217440079816908745308244790394512842824366171234488125337710944163308938267996279810158601510311731156511263075998044303353171953672948724254713935665824512741586775505961846593636981463138176140057678268626495508064543815257274829245753567077564617939884139262709982435453907371357698209544690705353789248733396149895443449126092267249861342782507363857796592716387157110751868942949681867313047630104038715803508185775604417912647046474628358285694534816705115284164209156520967922568117746714499615213490979098840225550904146909890532975752194724105638225520269186150966841404839847770807363617114352805140853322677017296874753040530502439004521697793273808558210681872454410360774117390067101009622811230876281323122056536320545240344624374542495528167382300760605080536191399684632145266409877296234172959515778475055577221203733214540511058685382382314696069888640062056478511458566621929665911455713374293182544906075815390961016664006265368140778411161870018709237225264254811135243325350396680299120765296463788203552045303079442498094131101859186924349485323659959147004015171198391546418681580011384024644233536606328186299500674462972293434592855896493833492767915084660449288900500109337140072135429753151763936389195966711274379902190794783197663062571562779108163346421999496672700208600364245975133337522568529957131281846316042919697526844867115883672916428779188459108185749770773298864201789952843469036510300730455756947297382287551244773015317600105990571802298705391843198984487628759221871676872054930070215831333817902463136421282427624834606607552067123956079252456917778907033854041075097165014936095432930820752105315713309626344210615649655627847758779860120856488452951916489413915373182500050977710507307503413521990039300874714396040112225916567788592919258464208504043080157685281284198143267188520890421194281651973575549213382218298570485360190049923573878863640523968515654394828544415317887750461292892050871694245848483940739863003576814692738791352067828038639722827285691663119543396717927943340876308201858746937780785201024094617254720589026589029306883630964585966316488593908429123362735901852682398813951024313604673956308224368499943116804642619646007282348016492391137455677712521484331597135711209468901524789440221580936807031913765789382203210192335664582354065370127582269498644691507167620503546721051262615524547083848501121000554792827432402929711323026724974184416621559281811269188670252058209140090590878077524988967041372592841507974482939322991102781472096614104295624216570211884207835757835175292518376975715049934476106511352722868225654200264960377814849047703703127171970366841650800689334722106174856886096961492619802030565314092081925967991435532005400395649513991944826208990016675722463280962748840614406280513825950585897752385688570871897754985639931628275877227845222868879959070885724545657544510827476354012472284175615301399584328369223127082234927984609325419664148403235403729973326117537290045085535327570411449401018791494967173821932093482396758095945848310763062186563663208973341266386595086503740693458838374589508541039664320087606433058744887390231501231639075746819961905286268451300757465228535768778419541890890063258051492857940322285384464853205663834119001190616432707505702707030083091624068058768343292337214208541497037112137973613800827610382240196530275549044177436678821791798196890258986646462328825549573827011166015767055477130648676938517544395178530178987547914409604024218661432098796466624880809786489341842538665469434911155335241442567328412031436143300668126437222785742458610492236695210318743225238878922372789857632779527972943603794819460489301029540788789065871578936930208801778285840522220538371651777099739666502944635525981981722038103987225320684465511238971958018703446129507808404061185795746274114523308098366301492811038143752259500647853621549116469209440367524242022271891840822343272708145852055345456294354980340531974961409764530197676584880654061347504731263780155466495783226384767648155510593654635593698500353859216806393788911277490021619824409659383754212719159593964283975381728514241827607293143806391271408190748901091293925424800477638508143964376379168271964433164269217126967523355919051955799471222658978550520224785030439175860479396648727927122206895479402008360495615241368878551420231317387535186892084010067283800276446191225795780960125032544024658476624664880314547069328914943278376504092135341460116213554864038888579930438742702082345957069295004449023822169810190037658410889453299703404851771665610673974814033256840514433692478683582074260642945580998325510801493393532802705943150824154204728256292187443936737814875806749265090144786290482347407680369738069204436401838428093511939710669246522378956298776474299590839867239496273515710116254841751560412464816443609264299675463814198957164526792212770847421060657387447537445088658379405474110819061905855022489580184486970460488175431163803054028310185638941378080217744219856815494268881387030855001891543713984507895963453293374845860080444897054215129298604728962467888562897727208315385232856095806390516389555923669293164093467969973291278592618296704506062833970769674795576958860517734725913278707583998581364750699790778941959153313659104321603596107338368598870095671233406963750686536347523860389285876737611024479299880207022227442386912531013254500203383582508142135910236490757037745528633800617296502931660698126081143267625302588759626500901848863092362766708502892013856366860742017308969412282225786795703259210668499561762029994348892466719606272381371865192184276809007401955281137757014008332513482754848771985699978592722444302641017182748480373349071752464549668320008311015335235484640355706511422954458052470623384969568816647726442345932382289438215324652686818241845104966149115644087206217451051312193801142795953987807075181039149956961987740874391588844933027120925185418926034800420871677390957406914521570273547393205143519646628784199763513710992906453706625221703706210563451504907456974733925025003013393299778565516193783467128538008932852598785954430172525719173526062351711528516651663329037454075915897619122218069541540607660557599680190921774578793610218962792662063701616931955764890281652865285406450711943719438975084241422487984963824415186221484767961308834719877919294519104029707721573699649161557721434947825531870907026541168342076274981244781899115579034173046498432689236266048527679300418727307933837210810445093741059286817967785194820013243206272931767395273514886940216198736323060560192680545136682353006306487477917078076904521872532960076770648457928341073738003590487432811680039648427016560276936148066306910488213068734799515650623910370859592016844128733813156087026188780713738657830087956814394021629351785979636892087829252902546461517514707055810756000649111912779845918170724480830125383344769362915184794611468265972177894756415286362139157185355656133849442433977103675875205624927489269088299431831398737806584055445619625221427567129605132025467182733162271206092451638051343677471627928038178802878163219870345037269289622505718099515207093613420713652731464020068906698426135311833017870314447757503285859500180740137256275903595135280188984760684016907793048351455351502251610351414341551639316989836228499922715732096209862970866853816006426671713660308286301826052627597294461879018889341514174477348525312658277837404520039973625079773846449230644535412540704650550961380592757963450701756173583762361933433190757217522915369326671990268837828160266244745614315341711611664281454163002327550213919894942633488122324562185185728408267455245977914303162441165780696427169555278236439330740498938388924135935989779136944597891395511398387882467002972262325751137498014255738281132582464182943248228019869810248911692725323944444157930619951547461723053259613316596192503563367525918773374415988172565043183995630290443184213406226106859976145394670854093304411513691704602089836976830514687073558623558954471708117939186836901902419723484146906381680276238947297061849386688724604330276202933882554974520810462741458932939142143780167499685819446604484921114133708348562831734303055789325243969488671662523901920565607678424813131968353316113397556628561404408644371392462607049218146174848106585212029904322923140688022994294839690233726054154445506211348793174118891965533558461062823022287709070541481269813133838306856514531249397318076688744337408461336583869733006095781644263553975162106983412664612109671628018371400836993968088695771778144367689676795668934063157099785221418095899031406307366476326255258876165147069471744722751481754809506361209704089017235521190516000304163836060540724797584134972231567186982222635539065089901080487530373957112724594022542013357882727683220591429355709374094769990495682750047169398479279063107533445626110862470195771169719175138922135763381961949499159971858185027614005617730047556450098632764378256026422475171490843960001514630962730939017166284382916926416732610923572934713051032786274620080956313173907846172057750267563476344393754895937702608512777448586091380899756305295308600123713162622010338045410120331662876968905950049574578845101212371559679089655007775112434055303312056261872059066706457348486980423943585307605241423593616069090101139477458378030071739009446062339241327229731813293260290717420654147940357247323566401229150474856604444652832555217205667890563802300587532715729285253518043898516388128040378843306741190305250489898128870482834221207671077796787924609791641062194805196608865096963896529869244435244011928383211211844590492167373663157148801556269191187384763803380716646031988878879656387554643230278635319339597700580499053856849459236627133027380502132414780626761833333964975212520382431457620554466206997304574511658446994614689718900097989993693655768741345779023375299891275915858244432289340075351921140287115038962889461143649761687835621374912580091726270750338599020339111790602636102859905626050583467967200599350915291377500758242782728860732046121245365999123783823559864943891835553733185258013910744249255624762854434552978320999168659167152853057481707800173269114225939403759957394704174424666745176151705068321239647524300801297742440692203037476550714942705349209220384320491465997557537566997528680749849241607740293710737401500716861233837987937856269881636713255597887910057939214901326925340652582144954513364626415428923018197552784855904901057538393435176430860664143637878817955844122435013423342406218545202319487766637317483638360838114317273471995670666025341264996212224918478460149486075458391024394156959287789053158967702265853322795483380969785302269649497548920375462959158327261965971955935729704819378930553534265414785096575068194659548325572917104131953403986305598744294549962683369779310698024160811421057522797679956527877668533607176824350351853698788459341536494623171403568551283166037230623072897250358377545215109438713569466890124441665574865025771172064397500149762908152105823931324479468632548775158104105223054126556802632580769527461907250551521379595276146409472161249282913486457134375341620304531065413419005402486557270281071481700933660620392636904119513578895701779940498438196097165264476327300415362913692670815486407402003824631984027323756963736779731315056554163299358153183415164993619054266345303259150384037876438486781614093545943170711583886411482483446196926674978530566459573442363558957076782697416545720113779107218237307007502842180636198319115769983448537785223601661246127850326893049726453732457738383520022380205775548202984438203418057383701216077864796064409341099070508640535653775950769864438033031053452577943993132232299423519224346800918015183127862340453562648788186794542225490816317773775531447042032830280268013812485041925377246334350520927118094434995650407952467191847205129849605566483016514338323085129687667943896410767946708114789876250452309439404001060066800321753852641882406393008772070421760722813224966509447824184157164782525503879732981463802202710550518155946664240000937252442640308067084524984608888396328522134676888200863392071604928628343390671162568128645445277095325959860612757363598430553432155514454269235924811920657127969366650443376831594392702918373993890721878484545943715690698147922537752391933368643367066904902129213527094672249741292405191899368099623336497299145728170138421537204869158211627200723971201868055262315803296317923517092903397835616059332317430910988246583823865032157230583189992912662511395913994188978516088902323248277354645806173002370666618972287261714684987039714784362027972255893172010008909584258780297215899321033673353273379720909332105244341248678480237944017750672331861141168964969208380908978444828302628058392108703817802561172314680614883149786650352198516582521035452515077695546254572452795979520969713893811748933409597839817799616660186386000445294879856161698616913675048222496643134485620623797810925278034125999108072935171243264603703834976914383514017143843017166324973854969472572318780934581968330621977831924415678799436577374868214809398166183017700945709200187871893385731511625033623374664114904576741174614023383643829481531062641975388250052681733666701303240308878953358885128869540153155805537194270454501828822091375966784232426437947549806233864938202515358802070408364919590221976695293584101587576145734954205333794999376335934581331045397269255294576972175249493426842646737745103915271046185383863739398441192178199479735253590852596705519512848768136739754109417376263046994651903600239645581985456008512927777604004508756525359470207750598044233150867337745137566922747280800445928401328384660201008839073315141126690588287869280597430663224394317095116447628835408497327172148889904583405880624729095900676186276243457209299599378615063137614267628798257070613765402951888689024195347095612576884602571799222204162548946982889484204048310688817246415912433667449504043680573372404032245184598295873784638640108493169850123582416580392243064593923742181130490175408130987154923249704683892558596364584449027632016603677504011898783160258120557142542819977443369472840489813946002750719198770542670708903870227516733373220351267167569487800151815290262834281702469169396010499270734830435874383622647261530550543932123448776098382754292675171966738512967828087514033054298860509992372653608459133843948660414999226537716143837591999965894543153630008908619213456154890287661228960627051326397837162009272366133220853591154580425876583342446649959003806763199192293867236853382207506664285315335500436194035601328556764434953131989813386306499373330977830563912885081553613791011128538702626999155703048904231648586626471111719555708718165270438570985993521082751705473998201841758556274360675112536497804373949850863276010960981396745562705827887822876190647717266898292136638138884786719400354951910000598776507878493360479279802703100790952612533377976513755720945106317878225488973790516800483247665695067772209864677808278860918175353512355472213744024494572109239182933621566260563684687527241171172924925539903702857253352288645146757461670612568903464625640265522899001428121545169517009180513812494299205653393426839297973500174294863226543703515569671620726857511118594866266588606764651254006761838826031325343970750214635476730011681895769634738245299533827413429967864795822758466707475270887933650163163412179748044205000537940717558458817007278878975087917508750430775337306233365773560108942725967335661000675991163562494073582536886376512935898996584732524254643053811271638913567862197204614385717623662626802443323286963846075039624138237786752538190140049788244679366302452360978746745805528594340045973308726905105623884181712242651868261907774966178907043666180607598732573256555537789019415968297475669380092561289508054364055732723893671276816187959270597237306370700662100236536192396516829889793785815915873921802469710204860205742272604077109947392556950533088099322313165059428975157331865865719917399680258664380959502413496534944918060687439083367092740043238135178137596382040050609588459655309435128333741900114221131993849595972897389680803283157344813232992664062677077537531124531559213915961609252748311585383895166014938229174496338463004465968232369930685649782590469425749301756667098376587513159803528593435561248249230319529110381391008299731700012987888838146916588030821755919587602729391286352228000662571883776286103852311271274212503008660334607599916746243054662738755550430283157014851279601434298522152125256108807343779775337190429051130940951150366380231041614822718934280777074287281100663420324201913229704620325985450196050176647345433005138966481936709865692019544025539109946730353774681420951704468592698406545192137434154398890435854187946816425206060538640148666800229857495076427759918597426192780365256606774000673594788024763755563064277603955478775062424745057019724866539600510672170268282591713507706469456219996069200914015454130211726069495673042879233635895644619429991851933192776067798417243700845668415244240687091827714539778884282054343460609698138025692392273569385032029249668818785347770768409194644409150769767561964305053613938707383958363031790773906897020262100015382606137547432631219770485613437371120185268848258162330503928819661936626799354720351088415564057168640368857309765444941270955571164721843774401552292452073715051058403519209670538155106129602531398186920310354089082963380964218015787192598445696430056205340769622434343860589923218244398636470724182314654082421348456399792634596525075762977067149183207510134951232775887364443165610545200596725309836439245972079509795186337970844898952284282485938354142163648913953323775336184810793741133562636446357434421355271749053946778377468842919555694575335682077164979498142215851449802473503966111928484234691515793409424751037217705104285160078250111810823761158745747457803516041039032450944002174854433229899687973850104169471589492502302569220197832247856020712676492344304630280509560812638062290900061664009087650395662093580315398161946384931470464557835538148480693878256864025387094812314804389757314433176675412274849681464242453240449665905296721934648184109786705341595911511896312863431158553885426702982208020683704317789253472371261227774690467745329471550844737853518671965663371165363676733880815057364658247749789455041067766163306346615559381340379479149497499508928378062557910701350369030479011912503300350395651659274496078889220216139629007114259021422859324685829639482204408110569102239490561912075021073231376582272461702311797924175818377238489855965435366011287732036102214819170615582821718611730450333048586837219881659026509918589837822319196523861908596404962013226404322113605804155084482357275823456890397079195896409042000527026770844821808836561313105719782205308290397777153546143458593272646351853303383466213934086438283576565198305931614258489422895362440444581883968561419118568625072733927824501562635192663889302816213351370421862466788945031764125708407273593033448285758693346986495424751331054025035731861224203022386676924451937832106469213555348461938175181855675658408868622145228402563576393976521979077687494633938611720650865473983086662676947235316810064319974848717558821382390347150453677163458196419422516601454043790209936818310168674431162929135619467575004883376879339958768493305265697830850070930874889269895388589015672240167827263481914075100123040640330106455849355689984012005244770093096277167164142259421095066010663293710050429412495717902898472649057836861385566475465243743531195325820585407349788942010892547792813836516180971003451857300157855551368604410823003734897653436919347153705509608211354092860513717700546558289770434407524843651782192216163874719161579032809318074207958469564210897670747288314462758847770267574538644438000626129309186909061099462111558469621352567873104246804373726657319488340136985720642230907714229358615989240816846352840934504787960753263042434842416286988862169876246761204493705703338276571104111037764101843270629877215472785505546443682463910772069232672720907222558276837382379683125166818655195142384086989891652749103010547131351471184148189471822394107523775092675396609267593993003100875136358291245161087333511384634233083130694563824427939003940340408082388583308739367746065239890523317675755833763061631723797423339765609938344514876180409832645335639880317707460832836758127821565642551203877958253909252379077874061748596910397773949354921800680842316431216957956525438844385627128565859678096549097565705912288646515600148988742601184626817443287247775405491472694759834048306960409148626931610374142626229039145466196557638375242804408285647621065487045922143720018858265166394000959675616328631864969905116983979604931324128067462499215477005183232357633191874525470297980234723505033158518419669044374763179089233196785088104864603277612798359450110076986228274443725485210385046867577912724043070428901610615055150593832468562199651626027387081027819554847512339069401704480457991178495385136539907094345172469911854296065883564096161383864633063057331207470583285444711783139004042047401306123548784964199697579172564069547623784823280493704472623673652234605229904001784597392941588827610126093667209443248150880183503274987022544353285165115144889811867470064271616710876002474568693172585538281302374803133055745382084994702517488961762196467123270263557802562984243554006116133651352676004973379644713439691995935108658926385582360436293194721337452000605556768634286522486082318558145595113111139871286220279401523423689463504704670353124054820920392440851595929100464156434473292404537514947898355246350200394812723980296585889788298836964368107954875653410626900251279290451017672331630534511034820288218567999468144153836805604873573884745688774710147324635541228770782040046213220146318179922046980702338005650875727099302702451183793085391044667753207077116930336292916033536750192327185186570011278455573858397936148873585916679696785082116097539870129126027368622121162117985783807657373583069622132355375960678814488005572580640301205114312158921671395756596343229425910826254457130536326236848589778692133477789857187533958563732339557737516407405555124888830880134731328772234412632894433293099235495672592410194504647280729703640720344953899616437648915030674625637987619355832480024391118054602215443292771204017936308507598099510402162983315670170805251785916619881082307909285691455305970763929607132190121225817751059342125212195595541107437198299765060195054546887706992165465787253421172670791144373212634216019695851142084400283258083635933322491189763611005488973037092275402926921413955255403608736959122672076061151970056374096629011667391526390868379161258567567669043243312894916812850888290865255559708518319561298321032289731025697936699503693985598351756869495759789982759761534182605026125489271625256011458786521967687060893151338350289525293464460007021086427107681574097471130761773131374395783171476309637548417405194387022174064924109263430327716210279796421890806716131607273899907347910875004528648940167032894247454651694265136416534856193043263768978853590525835046281338781395029575361746865710158001601615916423780489855847522390853508083647164990707218438421319139990388684887104791181923705815421223899174531346099033520704806612931285418382060054313371259365155374529518386313716865802522668383894032320832779742894261830247259644639846576401613875839916378644346084643031928915143811978227819801742426569632067443223072362490378354201148406077257374841486181246234385564075184903020726834008968971637583469353996527580590432861315089621058741250791182463664463482897164958611827359346597916309666813339313914327436926325800388633544058971852760327897993379883144082354883012116848256869427169772300014340604773884048266509951667130620253057604851915347433905287652027747355812511116690030296464558813989640479286056207945756228572548588509299949185317179658507949545433065046082137941059905327651914100950366920543166000442771840413054067806343010674248258540658132091000778977300815579812234041418715961485401621729336987712390648181306123701576500117807240513684089040403929634147878568731092798412087506423347146715607833884495256683277205415131684195314281969802532493731770829327982227857734955365001524734363894693679603422551667136460973947001075782016435053620200226819031732565111424150903719560958126545855450191239598868590476821964493790176100038300174710749680587091417176219520889251707241261273914321664475802396149099129197967676742923047574634946500939671954070141814833530379748339849855814377740880307089689396567316974591348569031860739203367557530210946103458784592491413600575630731820067909956780484985432719644514658792007197694914140455406331430878388826449328489111430252758165120233396729684522500904051398421829712991099728776838087527390294970731260728686752100425878936239969392379846305995620533615267126963523951439468263146460210232166219038277258517221005799241290601278925642575555357928041491156109362457497378210308741913128577111373609669110257133877612731780610163179156760382419816158093347305503666780758656179761088817711865410088089416978771107401259002775570477441642787596854786737352475960505184151338601094266811292410023048546283677825141908963578446097310225142905338010719325597643070883556883386935682381097322742454779497001788281440219306315367160650710789683683460496874439541550674421423236270721921034243711057480525503538395765014150967209302035126534129873033297167550778275831499231945725295604472704064309570807052275463276496438665769156451519199042930320568955823116479805055746326194735199361380478131080665243649311650167070515612796475750831564115520933508678657629654540383067055751856169587841060683415341202822757227581227651060572277107598812655593940487279621796563687446366672182572160894192180752650149032529136218375399319149059060767237422727661625939404869244426593579810741311854749711078602935589564162109312965247360454857972775054282032322737770956790224934645124016015241736022780582881053769666200721230414128730100733365525079121579232717065581565663864007062350471428279212139508853076652016233670945775012399517638303257555433822920500393876878403944572845329289350131968398827516872188880226168649347956490378060387430254030953965131016607881673119487001724331623842488494249304002645844782422391994468174663766319951709639295271173474212787653442145970533323445985977644799776207143836195584528602636833325801812462254030531476979495111852520504556299484577031805055021768372083130008215825879556706946911084282635726745780255127723017487306600186580381340214529880222469125742016317348932067091851519105559487897831666977627230424662844300675608174843503178447330579849716062877645222003657619180959215206151683488305103568133068606740730151732975616632440448959003747918070890028039959680671994808528563756203433485970173107807016263035536171036156033194143689031801858293099324378689834767280869224710482728809634921701907830818490922248396377564745769724587333615328187205860952001440982854888613541412541135940768133955888659806390504853975640659957379622403839875449052156006043789832762229625124950851192637902109769737495536913872985389594351169209657953421909159773481985177361503405106679221261998486512831475859876333716985012414191266550009247860437424089629510764171496688298818915196157492141463515870165174213142125407641384555172953919692616450266344306419191659108855363286305710831540309020482347224203129832275650536259188985040861431186325307505048434450214434865020941620260181852098221888133691240479734515666458844074459698524794744465268218687360244265849361946517984772507110184587987676609170272429933416819092879523917485927449721198717737966785651999643698715421345853654560594476208362250514567885228062755052616284573767371663678433202102158650407519830659818253575510020459085346190757502142377926452871051836788322548447389640450655013886346670022104039222800850650026286245825323240395498061480195033387231583653066144697948419179672018181830920663680640802979291162682112063476049812467943856365340633363882055118658927618053489817093962488547892603318405226649725570390797653794413935364244818385745322298798848123264184613290193793720512832804027622689413226043882868335488456904793489376602969387494415730686463432847564788135642762500348873936190969333971275787578063347773142214391948845339492166639043410093994768033704699222625015748049894945176744269595430359327494469035255553988388586876397904290260187850007079597043306167131865961830655547762198781226051757320882372362896002717529192742463631008389695011979787034649323849716843321941232344254848730207465427357751143450597897081910473958068268598346683636705643163642978534705393077135123356294852383239674394336021188811064133214134577925691905399156748815435862880848337675648903775896023824889367548520706131144169139603549909629718604500944451422939009926908580758182382874393504382760193716362553059421216934446660080222401490895148267730459035413628093215648467358889039582447058055067195401954207479562499655009982212463400702225602766227186888589954751796553066380117774666521202160636680073165442081273030238608710903294936729835665688304389810609443372813341680291859828809507847170466977915114605752015083787552739076729458082628632044732611382992030394078156390180356169621416250980590089656078765094042146285804736341990417622187420069808780918968822752753788614935521423399051137147449288010653054991580052768890251882743047970477270885059774535732771935439461643004609459302725877110301897004959991637034281482049665446020417633274629316512500658059088111620053167290310999190135818652466049159504511783397635996817160108427922701030627398827670544102834261595399174003595665588553341488374861095037864316665748061162526088116380378312137567655073220615371839027032882395331002806361153185280560872024525269847981627120593198447176770563964919030990587185001919197807793866406366319100256066190841396869545534239989282588185748650278303549191709186635283951593919897511247688080854954292156284020369753413185825795631949766553515514666698355325079962757352457010269224075361863622587451411089300002107041961337261304608079866214106096523161865094832104906575809926391222077630325681877250570255827837070640501941768259048536507883381368167744021922023384009006215275455141171287464734345008563902480775246756965001497973512473523071087493996528865020121387017156773280566972475481089322486980543642300542842318643885423613834050188232163245420130780342142239072757162361957482674024083122710738612709984572872184000509971992712265764703257027323235711137956234283193168383148478334316282467037255832360436929209925612983082414317386083926774537640559244822403628842976238378287392795067128709737613841267973680090549534970379978503350269839309730292591997743351656238488375754047609344802740999421992927791302805328832151866247481582982516154759719390413340200517746376608501479983017415753850648685002094337508258003866760267197542489801685655221492399488346882933541438938143591458315762500796957571576669574087814305895747174550649212754251386199902599253346915360110866951538432318836611416778393466002664796207595072815929151690251941140890152854344402796990473987116449783802655235550416055054220199116901122626131679347232448776733617563684838820190888591967975446196246097664352137776913576586370113209352721160893781550431335783712522354966415628479588412535083459985757423826312563159991284661092030923759071259997343527323365097292451565909469265124329663762993827001453631405780712337285259514199720924847421220547512315443687176993496497944988264182787113235133924362648500334368786003855482598661089386689153486113183901459446593521112770715697431383912031053583138012813451249791588210876283297179523119475040832379437265800198382476673583964257869890179493295512267596598029929609814205448299905873169966285836390931829635015562106411430787465373545041832906179648217581604170086311497723350232199499575500836118946004117359992449552151014779280460334124433673964928787821463921239495982243986441601377901236488294820820268878858165853974757318974692494320898843220879170055028222486944488626373884609936400738190225175203334439326878123398588889657675423642035103664132466000436164574912151010739631711567059088108008168795423324260756803824261372816756898819722561846281336951993730109057586135186753400400831353534774997926648394850403480758586494713630647729803978824651793327521090030032765782038974474983101640247865015256155218996457831623571621487701299288328211544793879466870052047163798544533557265048536883477290925747754930754246543972469058022693399538063118459965416348142153737791318044359146589471509443146676880138672571350944982639532139595438487046333213336219181233989599837113595963639444097125689324420197220636464709657792313392343950784970868897077649279350766178652301101685814665447509076841127193667209406819445703034434664481247263294108191758039184813860896989219188764366314225502695385965776913124273653732975877913592440289574763875798028750201113110971061145406573434511266616912578065432545219716589349149983599273945900333887725007094791087853049115085076509057759243147705455573032368173142916780615173080431710450816640305959290282660278696018107818419167459223133139962200279713840240589929527978437120751572504160157916862199695892087430968452491500741545573342367430097455335344307747531953581072416016655181783909662821390515539263601815892862305066627348139958628370622146580574590612396438265324673681254564109148077550383699498207190779570133505877141807731444896003315458704434533908703615045255552135478781558674938422336975392439770052771792557345332674455418526027681870733770835984969869137867349431088601613938178232196096197332660956268756189371045684311659692731954003689504699231388925264472156497892005243357963993754463290967595324126121916207228827509175227690826302146726553213223126234409189657666641543227577615813272506126073284289253996444469536292449594859296424600944441434596666404253229675078976993520358831271934264296439116375342711709573181333505368803908558355638579295707393799677237010754365828217235255677523698052680791383403439633627620722806016179681351898649248412179564738259722312225261317432533210535345905066520491675509497402814397604589068653802430390869208934369104130645069304371205263248199810263512913178805205382071433548561515589975404724756883177270044978223279064352120561175040929583882834283887855114084978740036530772917133696565869726109765931754845247398160010843863066627433573680296646518079258435761074088007499855740753937564330377659422798415564964232970189909567206635687457149470538616524479553852968439981453000477040010391902606074801800829234698326729061611435197772225577993477602844499630724838210379973037214077662520568408576808264130178602715254105619334825962592125187746853441592834916937905806355569652165258950099724754039087314416646076724447898281757532497711497324041386633368150342153796238351591262991220819525478672377496594219915807976264883922340475572069733791325246320899530490225897405705982714980002907376686430050155418488837976140855956313061032612553529877926631708311583746369018902633723444023356440653398834201220882556667533956427888383805348351139685200586482808725376730937098969684341359052198160911668157485448815422604564694787000682773087523357483903610022265456972180268753739075133551782120838153431691661128238302742682666324426659421713613752997439598929350318194046939112707484142989256764420531656485457194248881184928088121066368930280262732791255811301799165470427882839328137606807358424240711210841029245060975871299622147701561655023603301311800517880069897451851416789997030922323239220275171969949123884534390266492746123366961796769485718061420269395984781120594087595863286248060179836938058968299462708159343141005859775157196767797093493198061673305254746390739598083651155467119825654270612066991127262452601078137440616404246934411538467896235168043625490974539414639547845348306694595413945985359552444752452191714378052880711312310068186069767248731149122877571732544570585871497388422515999038605154332419403230822696608137869570399201553713588706364865383194274543540389249229862709284479608034596761031825465672723915644604170734290013922729258334176076236382436275022018053781900651679514894200082013619020621110082573230497090996103575948357211106058362800906162874714256329939720319434092429351261488849919032684612059700186710409569597159750099542502235569013100592710697279929305873578133482551803642373677098762772443494522539162220669655848310257447798146860496091499070853964792077535120362186758075048533260854124516808534375802612456097974792207701155945696153864074190784838003040382622418388954270912335995796214654069637889191333297184815851840898718534467717078724815196932352757138825073740793307573934982215721360545041490180402703839491198033691047182770097074965136778306945816382963076505813810416160962579920252839401600206661978545202672064230626092175239800712214865330562658789173915725149484843986893279523141863299860238824843882055275996294448537738777639258572798009621636099208037810695487888426331957129491707729911092293310358477316577920433567061532971279248188003179723494898437216965158861498153511145468611535615737257148007615789198127236659030440857633872683414451675478208078039469659911595843256495452984755609665876050987486658933886907094723732081994966963158593003564512330859056559280356936095365145034519586666888191062109264350545546649411953933993893511021464791222144392755826724673468191431715184813794014565273732423827163373266979815908039726535949850389984139959745770378435295315114002500842619445397873194421451800689722974709017764721183659560319262903215608890835904237254783891456126064795345008344322199010866929944835143291042332886278807247829061653409043025453393755550179383968436640768818242151953659593746505692106297278206095459901697170731566439731015989559838222096156307984310653143234490060476973202816575236068687364679116686972020528077784213708579663793454288840000076812257126976620548749112086319281423772546471199603634413344639653518535701956523638931698853616901072842853731568052759414820748518625565726147528680394233018990211211830282256416214223351085933881037904555343171418336480905343733320646258302235991694789599152907444757923379900961493717361955741342317466333715403964233700559993169896535033294994625197938052354804552357920026889480377539922345540036580442714479275388340834362535898216108995458274429818990950810458696694880276042271399413888847869149252726611207126195663001669069903622624375764523978399763178648601730960164318272217611495858318740070323424617276116517614476530018316422091500009759850641653947715055428195377272044455862826701457507117596605323277395174497363813087940365848042499898251511966558478877899952658786920742945073835045870534984773045840552873188608935278399796829576347388730991758490872338372955541476473310116146890597153222042866011408307878683380745960106736557979633699452950466227969842363710390760415691163925136077203873921129003845271071038054140537586093936971909981079950581709201617546401522737186922341809834037866811677574414575322202617512345371512894741939090650302056874774802456778213281335211661993054398777479607587557323066819273209290929004173044097851069487020668895724254065113280176184433943152183906460333821491974448942897862868978621172792575465373069347461971774094132007823049901354058308214212298547420742457587750399718699318572197658832660459055839214354214093710887771286567615539055155809682171568331490063538592719008561672042607473416539235858208521943648981297968953921716517972643645130927047001399677367932956614029036665527413839119344734074376986109837526193237418322905805153309047091548752558390663092644372718655678657131939265926459871667566990831669776503672053571051894002500774353860831757534181011911589681470123452746189300635836369006518814643579300162335256600576738382612447522936561125954206472283007768908221552031728337596315410792770166136986894181540881861810676255383413461463272570307363684616193642495031072713249154392784721733749611655464634762634322411189265268836355142525441475505461954606144694584678704947621581972400791421444916872480014221214869981236358119745411206735972426176734435279039578490421837455291854549559870154103312607140421313375305800691340556012299827399095474926273900275825699184632055144740129259588953465045054813955519064759915302213830025787224901932889349756078625907037593206553847360526489770528544709100356719006901777445713768844066246526376602798578088816410633871673139980068051503437283982839175213393189817589568887750264965575131161776473687845658582139033309579256174316768769448168242207425466936943760675255444126282862277261234897806558176268625434461354755919879187710693355149374161341563757179297514248995474437637059760895383813867405718573363234953579248631707902512708373120816746066844667662319102547631656454628030215305472717003498071759353852486310379489349750283250200539508190317433988735024648060185980578863197371812634315668212284716458388669467552440642644152177706474573915992692249110194281703606514365814382672514537143722929686847373820177977598682611988458439056463267244422711728873208870645601368391737346346279609676702876997690477471561223706240932239312522766664000089639712283074116767086690850401120546339352545871255939352599652870453826358467351026873670345120147544217203146878948921108274726069735376070534766863142078225862571802670089030616522749585298239850140006006690662801353869382550661798364889151449940297516635234989000732592295880843109789667607414057499506103628765849473204325542349856534687311307576234665284932374727800331449709465773621169023624519008735146775941391946739399092237134647104539626834370185112080190611139483813617032571775449494682649310687676511547977112785463952727252127915128302238970633723723192793823999569875504411586285714044304063224512614206709444224607186391489083984060100446941318477108628856881479516431400660804505924003887362106288392923377002704340331534357323065156755584783433094265879429632163744578711105338206767553675593576262764566175850188489263649066918134484983584885501737192837242198378201919157996504693433026057159479003194064860433800128288858003303916622103581129826373722819169149638571643671546796152018073320172873662274238275256645273110434217483122539840340664546569665767346506768447541848439204436822684915244380845885991333909279802491923319784487504563322998596669607322528214702896839821818834254454829496377611582711943219262996751419451206505192196886153721695603957868444402206262310401007811811931200786943776161235320393479304292829815925101827799660592325496893596653255068244516618069435148131786732491337558325895146627044664630403676874290258693292904064163487890748271365508205259320004821918381207072659238866630291490188085165280177603847341075380257538962485222999323656678630007164201372726311134865630929326406611959313867200710761531854273888147232397987232377332942593225158755396060322395404369049548130381185189277823459588634078735571099871850208567385586065620919463422217492882160351057124746473419108445853590854731515924739844146493126345936919801863845366859598253923869492539202751371032549770627737447671932933533294647797228911190798091883018300426943959266178528055429718583631019971911771838080774216189018524401910147373944201666838686209080998560842508093293630883818033598355874226566238624851584131147961531886503116906873361911380434359694877378469054606531430509173458157734579180975911500632776651686700210722891866330918190112848540105811834693030151066655841825263662987454572762444715072806326042085446600424875811829297074267414051447311577991650720265779330838203614468952987180501660471616583688797953076910537049172220487870950070914441103067544315280647994024943908731355382319227068122788851353930998035241630560972944820545191682564198142185601482763068848649168067923499556658881561506209234085028913290409741692914295702766768296823928948571974271811544237730958563295753485547906942506968952118702272642294463693889316853156139609852039289357625260493249102954024430938078156597756869243336018776338538581815799893298756533280185694863245797336149623028272444785161589710915158884990396850015265377298846282478050218907837083310623560162015417986610337299637576645472637388602320832647667907182575288670809213524843521186401802630804384032803189770478674409083228329856201311951280856119758254006495719034279967589910845663335783196221565563567375507972728375445620210936203078600609771393753919415493730060282768752299938560777198298404088261719145031432594088282388419641706956958492100925541815968158278375649236986858288190026392391931207315054295671149330437207755522015118906550185394466649305310726009425771637469513172396195606743784930083761578735227836053554656321795416012915329151339038845465487875896808713601652743292649854241369892933077800081858314634427988426426726121936896062371482921325404481015140516347126238974133657903467658935914740420523148651748604013849081780851215069897929111450717040976298836284359477686849141970635730047293459603306857601432184900845444593718553605959632278443807198592046840693420189698667657197678970633575590475709638229001538886040924764741050095944463721932761046117545538222530012675596364349323248559831037538600022464802403554931756565637603124934310166364560108520724840698387743110888412388877739530155924066236682753798746949747634752840024464690868961749733369227125658706488387889796916297803642176192880511191408581362168719397303578909870308494762875363562675879237913737798918195815502713533927905366435730784282635843482299141479336870494975195860349275417792166532885375107240979825766446599285914299706300391938220987050418724997813048751876674314066005315296062811836204805323770628973264197215053432176798791261628829540420747347107774595849401690707358088653746126433702215725649319540175604793019488816169204311686679415864019912112532716391397260046340612520144478473958939869850421680982956551381257325084806174430806491003226998149636685008296714107610268229768299343985939052681853421606086243787367763808272222972125316352445394223782280182270025296549871364610645189207414291326454619318549479028016301442859709286924692786507656611857078659625223512014615358336642381054065747359168732816865995265052418143322432183012708914112596058272763220005926035593056951654059718934340155260590087037716735144447831278936208303217698392681866573041671766621868951210397036635570109847321319948589566013932273074328012387125500365326403891138001926378500660241776332963488720655413753478505478742939907924807500962941955658198740204673188146322034683577398805313234538926678564293242200900727476495923055451344638961259643146258138666772539808049842117407238301570976387786901788078356899841235586295287744738470241522992841152988224871884365394575147561817934330843426370739972845431503871979538277470248519834448778330586547184189277295914807385021953044519096336655119516701234584902392973507550263199740418791706476521275706747531742462218254155341653469904188060648355910929617643849945857524036890202549734746752086922531656539552042576194094170572372227539510348427358703433238293249446042006285185112060095072110945462993695555718652913167283100032975993632895968565990697506225894614290564418691421780060446726392076222107997688845129916479855457513465207225343178107931123579110878272011675096226342354081584970188797103102474016467169273047126268108305810439827373928373965059591144805203019981467813874902676115098370527883308562173824086692040080725160437453993927224838336380245089717687104446195828141012390295314860019232361018890950286500662502855445530937355588756415843706936449173929680929003476345950174236713436510044800884899256798277537484284447854293997032123926846308645406971455730462480062313781931186381412714565743624057591243045159138409105958165743468716280844043904592911873871404030806211020537221531236408569854344216440146898347902144520017622419272146948644826941237927182478708045213666296092404146759024039585635591306746473330392488544686846869998883118896900249564382751198407598809465022167575563570670925254296950747500626145772391317196769379631428187104006591813165236922470499825660500773701003101853603128891409551808901131048736260262256706688025487233387557980138370056365209286435242497916609066470516370177567274295477473958816558459166809224231150473700936443232411211165597602060605412761737106562836292085592422610483819819270298973846701770009688166192405917208140059732421867593432907660643932286913753643377265712282578301892068422456716787961867711639204484541747528491051774772767974656111381382110652778598085726954239802367191225037769378236591877318774838532671696210775670668752673178145395157436542167687659195863932093852941178983978804841310966146929839790679942633815436713972397017957158123656788245997353185290197393777000831302527966329503405524312280314911791672292680754533766884272398136186218715662496500440638942363100714621171774447856896191146752869732663200815634455491869120346414784919016104580746871189030453266199914858514486248873263837944170194138924081671096167111689700943882093432754802179254615513039502778491630356966585303051735342980661604974331595371298661095084970029885415721955589321427934850997875185227942978947078424006673459945940827045475280998714118702686773523190436511359946855391378157935206793551983368482149825951658220826734126264072820790429288852750007391692798788768999185997645869186226247443956481942515843471323186063748116241140080815435419303344651560452748304055954524374718094965850284230708677372509548149494126910735488118297603598956037110628468243577534557116665646651445744753959189826917541682367475615015568702508178663079922583417540307673879632792089528678559382063504130995302103412467149798126475991466725432546373669716814435119170893445844851818174436541357902524838868405032799244774182004695936877016603082344599121825849747587364366059336111238228079352017748794691305419226611332992489613266729117131771935258844374446766415928995882297034660246102066091491412919174600943292695718448785237008833351005495132393854592302490089804369469423311618895943759564324909007820770321762211742512484351058520172472068961234599690444053936341622501119682604330135769113553155551896600637106823321677157313409451784975881542297699007883868749186140790793627487340564371887324255428648080878946515923600333167559297342186290025377981929413532203436295277204631414368181546927113344042667551014475672993077359089959460363250863275813139528528691647781153863082514662357756212764874783931705733798985090789294985293683345397121328666775184264298160008518453256944299857278331039088052931442660944143201675233665282931137440089287994867953153722570513038404010543446652690594664249592070072633416123991141750677285052554429201896924777398012079373167609350210969617911133533559406135059669841772974087437257598453886781984730260087726541898448133428882458837092492187897501977011962786374712550653100485528023226927715597662931229333808999715507925624119209162955102987823332874526338672673105433890418039022419253325332964220067074752969408714617917141514965907418332143529688520161057662099612766870574025274946610967747508245120406367820577144244055309625805276468090498563462935872791578003889480341633291572021017400275100595982829464146654825187325506119150344236650953318538764116117022312308971445146708423216913234697300342957492386080577118583029594984295979640330914031247393215964892237740262809456110358754290291349648254666409989700174004710565319528317156086023904350555248834601432259038394026796742865742239672085885393069278073026053096462771408550882288468360423284594134256611086962024663760920034585067364616674237233618913084723058334538973684693884807228652823369888831521596699080538619969875751062482058957802450928164243795974574995079982101875433417629164076602650484092995002908199030146970064774687040449297062370665488605966761793055657918457692189698905927036048683282555522013709171049252750449161584474289900908708823640159256543686030638191131321415072977661810065148193592645809924324458340273256520521218174090685284452662700222291013836649225561406929198722933017156007753047917321688743668358956743293936571490391878869016850972557249437853119129482036073208309109621267253483396637514447817867683291901077859575087939627928060084878737473038424219774954985336683060529843986758856532849789913558703355496247138086932088617154952986943101329084405727613585700218910477237523955708744248267715911696103512632778772386980609154892783617342594610955334497584743558173217400923554104496624981161798894694778826061569683612933112601715207264006694497572631855525672147335108999641429559383018423131229543703803331916712694008728945137597033759575597878178214384598869019568680063168244415182585746964597550624389082074275665128662591754327193050206440818102492340443761553706639966212917752557273384830405706161940086665046998903176700610179465882625973747916410472601465694068200226430789460802730513078119620262483953692669798525743163150438030910159897081225963905002394881645010789488365589803119827361862323731025590423530363449252219067595156616664247316839240121105411445461045716779590157699318958330089764942369043498847995313597523143930346985566352715265057079330940629292959106292504722725645560782150348199607365005985575323310393034128739559110797192571698125804351842602869805934728367232011878707457520869073554528088880791847029022255657082031753575819708521325876098904666259864869221232362610359964178340359078436900682645261761710793651463732561352131551084335001494226302076522015102715339835011117012959907054328174500686632835275223691694404860736848266182104266352093211515502508042759718061083234806142662984651936118185594035101340919095253947451035785283519118325714706699536789178491621609676295119784831848480615408159553795967408899028046272013907136986235885945096827758665079092521547606769616244127520883433168653734307292243795602987164012451104787344236030759032161992192509435851891686593360606684764075778484688459582435245176270486486332839958128304430428244880342044516804691837737515373860509018709686146383252563463522330136194301831287620457378750094259576294043003247708454641241059675294208225049886966952060411714410437505634230845614494090865980889346368287622120906258312265250063156870557025389628204583347635221502728630982581319895806353671835728130364332562731862420385333603512825469699163931004739291636205955187406503267282353508576051089856866006212936584292192346096172498721451917642942456100289062181460866623947124594034836331937921146186928282165779745286727023734622579979416667301814216324222567573255608933873086218675623440074354574080100904905516382764341077312279508558889768984004656919827361920638700449574234755186213274746407512777344754370967491646629204359646651230534590491046395297617037273398605456412373859444921987569343240974749515581829434817924925856331389789719049766427475094133209345700428438049721498366759747004735139315013592546060413355687543395752995175724500509992264250762150264211298811529715160082259573910268126986803954156038415546454178572774482286996091861718630226898345774346345315622054002969464200608813821923137087131478396447229196849560960967636277800292893356763096956254329416162711479568774669919457740553906020568794176561889725454022746421267778914999697735240240284756752444158483780026269164359184990345294863375810754443235388547473610609933641517617365787778701750416517821740656162088969379591325627832321029404402411529189802084431332759386193080356642914424916504860782334200183366179619602365791588301003507809738364916126854400105159115951226370596109806769494803477623085921008647062476777671304029032533050730163685709109323846120122874819161087022497278214998363692983949502174569754911149360957354371218030054453943850939580192324486889725257879325619539927187804472841947443813855787425933367559424517624529856265700371620172807393891072797861266816448603139088669521375929261425325291349313437256847267382780695387310644183208240255849287172254424246734450210860180342186823411643572533849040303239315434771145283323894967908940172893668569506178519600216746514166800022645333035433060771437957009874377541414917822340018072999226914712803837246407786336589605704159193315327397696598802031185527875925331791696979847235098121505331311110110375873530835925004113826445768108890487397138339243379416056407157606298004300949817362796238144741221914261612824105969721073989404732721471431876583483585768244103868147660977800501577441803150355660383517234510905496747135110841891192344144088462040029644693699865263418783673100144544574443448069883834919577237654633995906726665950784842606698675396335957429202428213112270847032849914614456818164307419695491143274891534000898855879584864501907626667520445328406273302672218780950408124672883974667223146100800917993008219948169675479805743141971121443246254135841411188251267635238209889785893531981409600522683935554199395579571510886865407025805007139904977278663361165549049184750896939540668937522568292017992371033127143818950525791750063526993196772707926345575200781703348519516208949453479988359557744445407184912055139607575289238427769727750096899639450993276353158704478938478279828906227886669181723857832274710940566261588783462807988003900464669919584309211686083120906440025272408089518889519694200828693513312163231699385670402851596458313597039491632478599159861043338590450221475911547800256159146741908288639363306528880177955149890662674819949788823645945773413887501944332776566928253634115717365538096820085123187099396430520984668618387134087051281329316686015968445381733536281239692223090502910557029488436060646451044962789203290652221337813645679436794934719442112082615099270558736138517659784307559808697268802412346823526009564993660658932159411642054587664652432024117595930302022873181880630224317422171277409641667378151115880208236376539123728181906437043846898633314168887101705568256321255931734700179519016395066499997436855783199016768492665732421255488163380165919708265411041399005478095682392355996650880154742397630879099739421623300903577198312589837011931639177973801693177308817617297220743264654201194908400700118037103922521352980842936073516529609028504830152350872007089006388055959155164982384599061555917938745204389100602368866957115453362113331961378035356381599234158664189511967817742627117372742878890066047670866948349639113924891543315579571217782196806644737043308751555523135979059992051780440212265687831095994914208208512359904274818119182611001183983950761543167524317622189898370234816060319408336484570141334966563917135939999671595296234444128881872994442847845796359233338616348069399312046334759421199196924679466055330441900646559324521354789123299798494507977438001347704363708918003411794431178861584430552761723976030355448051218312148996846404326417589249176699875999696420583116904192402910544844113785063268726419009638177438282210842731212075115695343320046303340711571259294846208413905464564194801073041644822321382701458988721770043665781061646584240005430543307575911600113342067521268967232871673573392322554264231248906784010072174306669898346530517633842261291308512405033176837757208440645801195011333032707147121003025396134507481394510621986972722161286405822024861577350137031803873839656945116231536415856186307910919856899390824186192084371081588633131851912554531620130670210173175089382010228344382050768323597559160682575431516712304399670327054732463214394709311683444025316637864430296563966435188823525463376148864429577264511326904272976357487389465101616491059382848109327806163153276416353964133625825807617710821394024231829686212853054910695175066205507601863848822337372646294551295778553038293955331765145984419067233887260389370610511698486030748048752194433653366920766607473836526465245584843842121687356363461432165996765199085758237632642650157256961647292834222762526820223952488208149277521087397526766518712170640865640214826367878092778201150022967802250442501418236069393258584730201001711291482771587941529126021334609415172358018173210483875246412401197122624093160847316309798461187515704236992383414604821725560476682766686948281827775919505668911165233473713624386519879153852279283874000296673705788952072893194781442150573941035668507141969101091984609661192707949563886680670473033658461845902521748736297113086139764664145528700487228373358521850130584528299473269655388896612831702344058925240138264466593395592002109365814675198362665041135952654890106050595254313333228996332224668687815557606053263141952170374257704493477449778795874143635446109849445394925519409151959976812980448684573296796440925641509123797113380910111539489405768590411937228378398182200207129380368087127602187720721419392187858125770664878370504338325566032304169428841854844274007861150610571917692877168894783116895626089383633489108840061961729649891683308984771539154859690722008734653058465706200018365452771134417597722492156887913009054767512366705050849154455330020952351428107695043741352427984833353091911906105256375254895363711981843911341274403028155018927066193385952469828548176119519948998099879790078347498772617383445855490412342016583404903439198351160009687745654926131775002307736134011700690294190876863201943059494091641055796273910162630613870488519143101316105626900120967627138435315644167848536843789349902044665858949957740983357647515049465747934095646621715406700330380107788509728659287868450970210404797327543256797470028483164846602366013052870641693932068587489327835457482476488186334013860723380997655564698636185728642739213801346255006250549404013060819698686969917324443100335986508781063018823918600146446132785894264301517299417770025570065431619967392496670566074179236565339398460140086396232249303164688828598068990158045725501601480700290833536985139314320188838759200538268127248467109631678684407104605737326891015747963434771409739232125578345893742262788256737190542025270064207430750146731213304170424045464570778025725001249041880107829968911044617674139893066054107770758303804068837259214257746848801412234726291191202900565134881821528700548773569444360053819898036345631585314012107715529969270576709361051254823295261537937551845693453220582216470420837232600886148864241118394959597801598582994776075795363285837733141578916867412516560745195697401193756165213882880103911728824470153686101067768411938346609842586728758200181381402536204985380362754464488501292460693956598800077445442782604796945799729262488643576488371403274449736201764861941947759837301492134985642420637236703496417448231079814654334733787149249821679980880583286898656350682796400154838437187032845472844045119961464087205310401437952517545219408065255651524025300479725171160092426341867874039693625968844173808567401287254047559044895840466791410657449308751982571534958289860454723288298732463797073448149265849918879133532638903014153149187263249470481000116424909993943545962898466220540032676504009458116441225665321674425491816802596371426278489992315193572749820949168843560523734531433987482017974629417920555336926174468988537604346117720956171127080625744435182245567579008621275684335107741384830622333308877680885999131950439247669924842277562910479154361276640977216802097909531633161393693025816080774705848344280057560109580209368799861942578165636448022928871854515958401571531243686753638410989025047467501168322573543823216174030719681120572740223548646704675280786894276377068606324296001875200206112904119681276205018015111319242386069653344065987498033567636831625720326744886690958398969108194598174987939146961299447859434199167520253040713773949659153999865335782330909154347104633443385434808743392256699223089253124887118290324073486183532611268305749003127528899263638619571884732635616756584403594995926979606011126128136987587067598145581673374809085723149547673774811547911605108734592870104052158111668140174839954215324284985836195284393378926102055085529154489862992102615481551503178574069743795618801771593637657710308202342463570345652571403603210862227730547610892674618819850183284431589056837814746774176374635225266070364412507407342613182258868130140106188294400472101428271840536000869203114447628293355101527745685497781736341408925626303501695608579477952981406453040289214665730597734913661140514922513878274934402047678263436415424136296523434736345061022566372439161954747258306743339383387337928416812600292903865148759029100439068035537113056186173218886836803157660161615733630566747969812377619033768532070810032733011140629909666445912645385549279791638923226751613130180479547231109129292366735807650569449054631299704961398182136791034817364997549580639177093101566853393165383013039115200788532004006423539670089308555003968334832234321609998706054303572638305573406973681706905639611011495224880507152875900851914528259327111664666945022234800255333466688637521784883636812978702192804325964165197969863155302917270914491408345188009917451219637535600815310448220363566692841165025401910711663620198535614702685034020028451424861706306438736469742745854618931671357936057655427874335705887005616619512644234385460930829681398448769710557646222414403564056002119157331178638623162648510949127285341256770569167007450913620848599727586040742126762133312079482098718856002857709633235513793139297750772219614521763021685562918034336224556478985856151066387290067897115544992626348731881040348783559983797455167000236922312581707133167855355953900442015125296564543280336078322182699688288953427190629262269898592932482964933655743636636790903091110495137454294230617266555986114511328660369993675555225356802369593696114954671202200516348305409476850924762906872747162873554445400523268491364687717425250659081178250436134223809251086289646900093596609574651497244845103270457366320238403775962389655027261715095250202612837357252949119041021036116662071776967618318200039296168969246333480191591381781282526476879314176344618371068346337911314965431870144431582224295322721579203715074449780037814368452735671077024689933742461890040543337482273085244129059314565348523692758576038850536901227223295755211127283593726472774092242193328655958322159570833454288957678967770703031989522510238364046534438839601042363046274299996389206523956723871490020983513315644592167672851313034442779836244928358722235480138020811900950147997198657467359745279679194667180697427507867239575797034873536988427657712332546873918808807715751505159637392215895744313316483426011896894852377687807841725545643594749687443218502347189750057708495736094167284931632733834358589988320417061454775551695777775495463771340595467780662546754069278311518731590861036521146502301153004008577136458032731797449859422329699654058048854832223447008605338370731684521048702071568422078834744024283531988518638858181250046025514453252525611532137512514676878981174994824580518845193257271965089527671826822637399593272941456661156441339093005899066711476757680829524338493926016206978698466508987570832210191290937563508974743941585919373707178486475179349742111779749020656439510867233960315057542820787960453644815181130425532933019108391039149278804629743644975241107120032119979339222868823167824541954420517167794225672000859698354642615812342098386220628994053227003318127177071520260653740550105616742197368590634191599441821354940296876831159818140202552365691044367305483145750105750130187215172237181849068001468699692555214229268738603070816764641822557865586393697775303810023952313604504315263891452369221614127972332169931242112019731970996727884368675280677694904771866278252443398782198401550339284668864450542860264848377202395806573849413305952204510899010387245631996743424685788771393539407642998645189046755045497298104406596660032418565528316102334727574977448612333448599031257766436035440386491981735459779777885759475496981196711652617595553559268076972519909678120273445019319785787168491239818204029006356468636552345740716786247776966329630867717131840775688721728702400911259708635476683482122695632731296267408540707963507166017311997019066296628432970211834391616002404951600354763874158167534231979384153264923229547037636609261636060184031047777783707742305935669175970962164705092598560021374091112208005715054230958314709223595336011604601441027867794266977887484840168649234910836065172579699401509887085142703363922808550774614825466384739824830863569281310929726983910268009589781833729166745582865106647544262339781758203668679205078275380647555300483938087579458888944526256119268764127136372054420419889756282286838101144746111688270662967440030800576539607784972810103249786013398865723767628362611927808690256611536832831540222578467006922433983245727923561915647033377392210026148043187426023629384097369277557945406087895711987910336516477975169259442014012218664648727177478468335155206190703073850631618995807244503743852109420123648607893321653494241444705428426379757062214298287483514833800668880163762398050475390660167535347616253086943262462429801907704884213374933865458722233163276777386241134272357077886160203126161697543150196672439908199371731216236738129384875983190165228033544394070560722597058847407119611401799707236738151623728164384480061681584020755165118264715590435864519655002133689365089848951538152178139225436019173895287788387595857790909921861251859090201665766561307398516291621200395164285395655288930430111432152720946641398346927223067420741992202917656992722597057018171713272060245923798881215472320986034810804348178187519376034342976203925083533040913142282918639194136061698067862729476446457578009923372883185917690633638479601759589417141878305796113641949525361270773169293847912955518124092796550849422251790399720863720465848676241251171061390723718283417981939214634300458826217637054163342530956120483429179403750592930733771663283513958763926598230442436262447820756742436400541444835330220061856080159952449731364567549879204241942378371694622945255317113043252683565450839429498722212437161559995653843162984677920209998411418913005220634204252028379610793810020974192803974244789816065234577123682949003556635667017425860725629687679720020557300264207643770629242534906974290206869907796837436944304610243231816724665922324068225535384613330752217558251269275357374341173295023513692964951531776490484495629397285554597734193719019347487989267934521835460351477228221403639437598796462123136807312377780966744284451913228489490037608946201260341282807533388385675038697887147645645947013384259636837704880534136019689713873266997730153650984078585889194844471694267491709195604016818079016161428183660193302555536850473466685198356760032818024477842212309183532969631827962647629980624836312302095805731761486743700568792343092913755817710881896287700148727531893688527086967108702455846926979533612975273324356515975358708185471939913748459449261629749598811689891719929908651072041850898067762116340500464334321152152369047410146718813186844356043634142228532417489880300431404068628670155336455647386837627115788604866959330058722393852962478313839572612027907737853771753392890090747393574894032526305317608088871022627330101740962630776740542008152740741340466620683602711823011222707378448613505337687903388693072061971952713253632947967477540103012598912329695435799373566026996799247879739853943025650584540510128486967440104284701221711116320252892899530051485210830038774601031617317553631000516166329708542141560569529161872520144302272098235000217276342027909299591323203106854474981386246369172601602780304224455372141148091173287391996349530726099491258033005231799102455882408280660408540449643395815741559557293343226899941303063723308163037097577467944814885161435645695526315112800782047297221685195215793518375585507399514816685744481014122340855959085060782749675308143761023075802842868866984895622896331719372745523497188121042414723197934702061906335974071280987847345198726308885502474408648034452828606156043261393135218102539233922702808970788880514217967396802852606974427485774200835068316424119169613758309537004229671179529922706033621122107290529449877012377714249783642900776615844961793855207733350328587406836737548471858400366421318775862974431220120071429092359093627098385330367911138639524539504905198813867347675895906597667478817716830818218961587904812513499932064905582603222984532183493162564913171640208513290230379652681272046844856397830010879510902891611971007940953847644221410729928800110832218941882932821061584802885488183458062020230132551186660411757120208720632238555459793973329400817458748125282581133927375292205964806821258604723441486002124008460441809676425281271952154828188848325682468822234929945046230970131656334216908879747746683593863358398241548639096555337918923215718358352942608432291855967921883595263418760963788998181065761149654700868242788414210084041027098399846026839362398332255287020309552201807485517847115298016264788850469166529595685941809857710334553047111784053362736873237788152114887885479198663776127179769812286856478318524939758896088740139669010927079463406157389779241989052471799331129231912508845869164101434393163419745696447189788820182090152821064428909538568449329254034043447539288265859257312880542255549415368317929126316223185399697798962462159661410794338891313895645095153093215373152475039733094585630315660690730292429246552585430694252914846671323689608816394413645144264789430022249858729557767689019746514791053226047008430242307252313752086615059866590323851576287860952944986024468206317354152190748618272617966721874388294648971897335229884243704026702085720761979646739385530535809610021504214611165481256383956698796361222865934683173690268202013945956590249247441555707813296737876102447320977664560578558556520610337823386501623379814540063638450038244390678695440181647479150755867659274119950717163366385716073940392381606435867467743131683799370546932972474749024811262688053657660534260542931621818172621102283838934704752975403129647137595973995514239404783886466805891185641914757666359161886995121882322651947570259890522258785434428274574349802398048308802041532020890039365571417815526122462879611933006860869411777509391759196357908883805661530278431017531498060589117747009636280227305077708754950181588125322073185131126050373531070656784808781525980598783854520018954051403069562271711962713683926652639436759685989546382641222045017517407990743962315135597848591875158527115322822355753809619087227541682425032315644832634733318525514491593290960055038868622623533275906121176195818926916667712005959082348169209221679650191652194444742443351302993412414208690066450931034288901881592914096827731086369311171565170855142467482048472954220082084704101258585823047935632457040032182222677855658872850994866304450224608145627485109868042936521013884801103689627637067139250275345171314412445227220379868752826722835319030899599169318654933942309589466168792725757247306043448164728001188003600027828514903616782689217518717685379472619401232331265728465547008443353114984251894919908406100492497550709713632070098202594046914279071524353310978695138774346336282862849504422170848103330722098633766301706269901990274567324500533559030258625836090322993772229053429725430042558160380739034041551980794591175067323180852760387408773491342980563873666761654350160498653126019725036394093179810745694883207252708655014019595798861549919023259650025617650377264530094499765978260224393980664630848743564483238402715046053517794527336137156795371053346799304879534703336094371081467996663798427384934140588646082723123725525224077703017179154941840946248980559710874851486362046377996716288713211640388646456396303997298881105027737130274343467436341176560072207921320363249120025421506568437057585734089350531613756602728263904921694585197474335948781829390395451259830292206500893876809070110169533770535354923505476191006581408511867555720273926373568271807725955474011542932297126525787305652482541441218161954778380546624400410132583860487114194785721604570791755793128445673434879342526642813199349338529843215481039329017157790080388461679047372936509889076783179227305997601216633803775890210663563620505612198622304553228907623274690710475745053867562780752188494791979668547544923499005395574134197056535460564202656913943048180596369978140825533384425579511758350060491128505419607564064038566425851118431059359622541498243591631352145069579243803747016737457750517490031365754831678060257981397462598187222785565238854781179705572753350468733729499574991624876630520269902777895295240791252634575484063605975252010470774071186463324455127318560426706794265833445905091085841578464752303867570591826739722141054217557973011926483714874575231007665071282923332060434722566470450495199874359149670269848417566304169237347058363248113832812954795484595346152179902494065207823272247724363023678872884254110255011510752423651573525111830586810657976321861311151632298875627229493961015244873083908101249440068811748673106234890530607759964251362492520265188349347203453771436919337566968043509454009638921024217269443677191387179702781712968918320091270727688961441477862450358605389139246567570309755966677072849455915584415278485594872172287942131886729481191979153467884023696760791708650214497981462758938120202379282205111789249764569788368952747239200978698090005343320826179693228903976392321025802404657192525197329803595223532360496037658371734008919560339554984088247390304707173143084396114421636439530181458595846704485986973895968607354448245598895729215151087268827604840800669223948811890568602190907173903682844115913764049200608715995568302042117057152076222150850479363406126248497493708038913757086979252685009206259924729038458065330466937740358737107560227736045459403733399148851894324143878953130695121177513163808564210439357090701499163839161230783665280696638522303936961194588856879971915816914402362671042634924389126090077303739729489204642987338562335910169967161724517989895226444224680285980887300633248584926587184759914860478433231087839393371882523313763075339112603797194331232321084575774835230379554779472513750213013964420548490357512073138250674501977258246247883803129985168904979355203351178792137074873345298950356947829035653091397687530952001704147764554612830526016285682606489825593404925627445831474603206738064429409226384936614729642985349830879378615127696215780380286419176187602254039747787921386133778969901529897852145652016158240356655101201991427231482877152523689564198028612730176253782821249133643051581704402992331756300009226324649407275749555052540796151206683769308129520728815551542134746822802980364134917872335881756007835831480311757495529589751655222001644616762010186067534129326295774200620082742046657593290313074396361616675267216810702612726281106563666399459114857351544691686804683630519408026681965999187437733682859857139980580272491652453918065036604802141489020965754104843890584175840104145984167755371621715692924549415822057104542751013555952267630144889374707391921607724901091636010791817644147530590539455659376430245082136884792751926127559419594870123075344716616897364180708789995013414858547551669382685347007707887869933021351966891104002621183777501951921102954026018342646922745410829598277713153963357469565150313084340242340083047547405402801401387883475943282094975783345661503040746497781277726757740138937018094934590547431162141382616151791301770449593657710160336668997387563671339940185332223570625695590589744614496359473056774772508703092267037529862059517852755989146694658786426728042472567476902266090481283356379585461874690148646752831724565424350289423229433588101694221896560915647019469317746682793996050018005824593687356783772138585936257800214361984323418450717227114140254311158689026303389261056646948244880711341956861482164510413359308468712932029867902789998277718904329035353688464267527187798681654615790302010359821222988658021105915358415304704677431512033739837101724259949672871210729028451264504202201232976256904887565826729705207074445998129345143012210791282217700007419790389826845201623745163374315380554924828854014935090288081860427013402836115661283397365160531288200401830180562564534303785479290809246753613833358376279044271508891302259601223670872327335565751924108548547322695207713910210744562326488071638759427060247709527108042164334823482697491015205281672191530796071320211949096364244057591618940635407098619768830184711784638371959426604846603052817726986974534788207499003239353287938102909287414256802629528207491109633222127008158466525238291937022251061358878501607383982784708812325020771171986465497519270587525443189264264005283584858715324200302284434129712675650158491432447946166537484880493638712982352549860072341696621726299469930434407588897891301865965087654992752178233667913454544588457710862998835062706921449845668212953945005988950856473146426387223765259721365227102638457781851477415926162903806432449839404848190397336340903888360744397482874764926133699835232509790696382803180763884474675304332643936622720296547038179196598914438020122490994782586982981856299270585563848107087471915293273757851216754176966305419716502715744606808297218927928502026361480310923305644637229178508823919294462921968944919370204470963081456006362004499573584157353568017339970430091818719292585206095035560853255638471225337826256921322397836207153677097997203086600420354446074167125927710336962224099594246294609556424650720932350173141461873903799832828761885574523859562572471986816474695110024053454162220240688616426874107838438953681613541258913669072798737230326874682351202978052998046370853673943561602356574866555484125824038358139786734394533832044611805988775566421169665712035298288966746075490716454421523884398996186480522570284741074773454091808467772484871253950562626499447394407591710691881352109202187255980891063836881148066666662979532240924491184180839156669080600733319400965685941301671608723516922419742788497828679037213495927445436353760651546144902187221894826010336799642729786503639794130885167886178192421923507873239851098232075876218589901561304047387431701966144771054972261245267912421045806713184335982126177448151062091076326901172538117995243115513869125646881236509191053475711577401968969333494240339974612077838018807281039677025228003748979407254507507646224914860564971435333516826543800978770113142745361795233608551767430409482324160620957489044163162351204174471466773473803865212857505431472041412211821528503501374468354059953073319063817875770932679865742355578745853719262429235163248918737875156953060316013720934755487536925218775135374338441665029714903076395764441060826089863289688035292773092030440072727833901388005003409250648375941221189286089921148818102572784840916741165134982491668079308281311726562114521641686853074002685538795570330282867327919147878902522976996930599693531390655442729660417151094701082920931447544589811318693369207285471313043699720847938524143925219099159974591138234097788704846296498235778406795210435745709086197870829801156393166855515206991158016639267905815568115534404065541000108114593259305140021801933985659240364206379292378352751105127068202481975277988092645222084493914986129068021599474673991857513076522233123412598592671656354332835673615638869322344441219130779288768177333206011079685414848617540568448826724539050528187372339776720637782975679392684817974313272262998418604813083254722279780494106774150609010655456370879817027560544271244637814306907524675813624286617577091650828110060912511199378425123753261690662131151664790033807909015169878169720435070836583352632305810015636288971670489025030847672174470433967677310355137573551808229199061184561770486460751251528360614773678691109794934448141262110581407113884795793987060501643874278982206148572058233648352425666939428202786423886072179033192727985880956057361048425412849809085370516202686661684672979973348948740745761885723350954136786158668506599715036834779857208848787051017732370885543933363951382694857593310621711769154733482352099535566243235417844245081899481694070579441364779053313974198208483360043483186353193638417710242437788989166747281046593741516536876790140892815748044207039879952215024730740553742149308309876392900025081290169798898729091240402260595563983900386152093918848960800939175880862732084891719288892999331264706891325078096977540392960265534764673144068819062778304771389547329451880895561776037851644150972457509974298117015261988324674051152546627104207810345788098215697634253208538164955760605096727997113605910198386554524642749938446882613605428214040949557992689797064547280556990564673392873521943336080570190821212509504134189823739357396445942750795507251703160005879437968146666038369854001447596064499079423254606589852621968830867709471455339383302238234186245879091320817846407497857805403632918742965153785556725640083707463817891766546635752187827197039840700418798771482936337345738972647352046761749739527083695393554761982632592598780424794380414036707068272107778989027055596538973331017643319959043684111983869217716433184077377962322176584241169583213978160484017547182050051847409844862504289025994768771236182057315159517431388382357526558534604668020400567475225117432972242883092775498908014318643000187833839440969157077543706000589044010713535231014213030695244288718848607800797834021339293878386704730948592628519687496093521531230631136038001504607313057314696476439380472437114545197180696198015806517663378418827713282875099153790981132460669961628959040535420907822676102997675255620408215265729950918929324724362716154177558509075519472513666704171465477927008356473256748900979564134574300824691009786238527283305335993414719072811222507304853240862387531377373296881758089310670103588429445718373825291906510644012312611016757449330355529280322105603194987749131380971409140054942365656804952037923724918382916198178699008490023625138372130357287137713993078852875228350032485717212836334380117420296124258989117340689525706945481619622370305205890847075501683156120807976740894728989750435950154300425608289898628527627877539954353238746722352314017595928214516534464058047743817825630668168819530909973437357258056672559349219245548981848888658935117150122668852134734780011118779823500065966381342704208340195946398310265133257492597834761164804306643364265102527730553852827267624609217152362975877945479361088899314473475704998343136319764652536311556333608198150914521584930814929462137898846484103242062081821486024712945965862110672495844819181751969764465831064250733497911646162231771960888819974007436052851718876576975154599410500669627905450356213839807949582497144325456891846168094945726357400116361357597936136639960469773936559242980395447665370018236313977642084049424964836220201865846015089819866164520510654199876969746876676771612203604859010257114503932343330728869250916743864557983378870702674807479096279784946875219430670305070728282910407790463012399725000506634104176380175307290802496124446266046334868775587836152951997609910037824751036087186775417260060158101090783970996104097772254979864571357226732758091106332257337773286747665812511727425085818613691410725925055974263978184111132249319945424597794796485730216381204468275532478525926974685847027075801216440312360592048189935106130052770013554434762747544043045231896886164026176090977864321855182018713921795921865130360505061187931495088615774879063040049182344852202834102663523813410116769152885490818507799366579782161354281756230791709323426249023890152102721593586539995438460748346174812500794493913082296709434575846560865375736406460832845332978850075099724031538215978600161843487878748710936537541566355117922507927984593248432382602842889396787698583414184682377654198202525697489368013557433158633476195682035073037388664611020309100776757375694457788504907529318692075731504656376161345684891632896279391769028710957605629302465874269254037964541211232915899401459898501540525606612344664655221304236901100064354739792693779140577195241272030960597474682633021276994055568769408339406722777035503708989509335672561760652030365212835133908871315314692904061713701960632840595058779640919167566690569901136785762679001493161034225845105166365263297491279769700381672387625039288642617394041106236814063756916149215755529428115190092283834290799906923719451034196586297267696823155581942249130872088993477052456743154865870267839992796278946693766252266148650469266638275533581142485280540725008174761685599026113977264189342757814032560736087023334206329488259238456277140832784988249937041899651622961063597371610038121446978399885520296529013583783981116555397024087077208121736815247548352043778270077479216497876870965657183821544348666659411669256786187828997238058804811494761165158581046768060931103866017586898674065266163658809975375082104063010223508346509210328162147534965923026524929287825088387758192708071715660890697964523098369618426244386078779805178226295509375935165837929979145669188409121717803106858231428890666894830855369237356650149007159766940154121450620408562325671029503198085400886084105913130567848650782524116931220163432561861418743272591521461942051136619768767766205876479996294885184830329261910770622577794420911373662748308170009029121479231090120223472567756696416530338452138452659709246125082088806662208396435569494536712127180101619618789482059773164570229811985069809266418823368342962358558929931538371923884450632485468820665117370180917797728724472082671271373440044429652717031462560886063999100095585988885172825321532195170519754436011768560722751727590515407403793014205633764796110159540624318408445843383224094291265430289556069089208010003766322327927916352308213597557604700148208941415259057707763993512985535606617464688857434737562298935152844925727659203880991453294019880217352124796789172521152142772141128283294952968049733381221624730104350355833863236226248333847788224849339021131729867320171329713966515837098370929611054136754933017261698497500192803259406619635143048255250368144566508905334626482349088333254509075529312740028156941594261745093893191835123502660823197862296623965370851412545004283516373876422923044402981040753026503499480130429954735581040680843511726280580296585742404056709612151085367171107209721575611725094653802317404009887074406005562191261454935845440914926694751892877094388089870143621433279875066497980029841806812542707275736595817938947666826143643581012340754967140449073416794475113647411122266654123602186850201995242724760406479719762330723970622052804077354831604990798023222490257660872508465417898131546692540076398708541481532750524080437096276403534635583562270571111829196469705100686001586071142042118196245595639357128961588602305873764651991458104767373249217377560649064210761878159922808656122171221494889558525240113485461317642285443925076030205072227150745089049369960851892122515424188303486950042773718236298084115345666950504902139223977628599946626204663630840692570511551919854315008845183582092198630011144137287327002516862745922777877116747497906214854205244537628956515378442320533393196055523043112397834398756196359490473576361504534455981014009255611137628535855892557629849941826811685939498926053929005564619517477197467920920271336909249569490191801540165894686647342285245278185411570306099872446767780596150592164480412858797867183690001953691880193893234768916826567427952905416523084388133019504729061744507236378939310334447367212073450281072629216928747810041768812858456295652390174035386937368586562695979010279652570967288221687407305496816163207491176815884015425807963003321795905359749437536513896590255875034384482237932244339189053295509432380219103968456702557958563075876075260682556928483413048128636625312618177370069177483521093950781740171456649952861764172495521606268867487449285521559958077318377138136498749351556182304938983554405013819064526690227303062900227049491280161633648438481333165550901061979010668632702325400176238191663127789630412637637153432805932590562985245256999791555164719641245198722085903016486650788585289586935652500900347168568111537180120923259496732636118456720905003030545429833184082047416457325901658254777066038279153375904603505319284312531487468793021695727207559905275930628330581055038585856570122403851947419539056741451268767422281025680199492323880447984596632265205729980035214158041909188602260315665310388164010146660036829544540847452483932853910041684096083187659022281364041605248442350126415610540343089916733979564735153155108551924651081229073913369382361562840493428383355138304093038719742250763977232733137299805912981037362141300191066246639100927121698913959391385567441712411255540342103279808354162157318529294861978696966378791606492119982609076870006996124360108004479707036271389857939806011420435452426362720976063042095988874599079388623906587235479965260365122596587736098170231936491783478840253339688997653934461044706327689639381047662020802682952196293041315994138660932257103045383110391612540305990325351031276820561445655577914146466493438008536030120453668659048330089873994124634420848086764402637417344349596032611191549717902032234752402646059826021628957446217234184507591181195011445871580007084375030042058398813610002598542021469431961928426678318893940945606065374435865298517937170324235570831962011062634631284657633492396947456526404078624449196667803681120821145651552599830287457848094561790495017132212261947830280832890354617795870591198887101849578451234740756939144290426863310318750511605573001029726335902955056915924873518094612747453560508022644714867038764691241421262674771678610033985461144619960537656932602184982805264536986989132435642450404083109346550709429786938221149531755275802627350170335748512358538602871000326660365690002749794298038872211530020288284666058756379594739532587589552453271764749506890229904651203315754840063272048163942485264245753566290476128500106928351002325512131513634566556239606127549292281476433452996024080736239684398512142915323766142012339755233173038491036414191457913328937957879621297968675292206322475999184565708128295749254206282596892639856964703271362891628728655486085721697891214104602934414853181126424923469576735331617425784473841234227414221621624694914137655372149469894442472224703117838182765425277682402231955393738688710738572638135414742016521086988686514644564408166042637873903912303973833559295614783382811733796679804765978166653438706428930985957337664188822964775207963628605947400670306205535226915516697903881969652579333150426864482177244894000495722347259133224728286244666643067046593504314771791164679612088355640307211229678011242779715179763303316457331986634148235926410103815964689636265573132358162942913215278324052608814251334000529519474615653525730687456491724202715229306373573084073093859621032867559208055167314113316798912770190697683124817084232630875207165939371576082686608892962611580367971877993538213541895865870543189886392988496761316762871455899604891876080444469250056630266730633757567292170407218759569410715539345547053671934676994197758025747434165691013961183249686503935373309123670996543784878371529757100498010766326618523138046591185881198180863545833302417334260880883245418762857587629016093070626351298529992187052055717856338220527017484721261767319747139971424608120128700690958970112663162129192458498273949915208216167337100614518514213527750491199898124016108725498693032584162672613587723646479165995340507045981366646551604260354361268519597761548175789094579890187341779500231835358746009373948250931139741024099574246750943820360624931945915664375031943162463221949767002141775576972316139936808616547743945522290974083181790816943744435412958472591692268025320921697457579584705260008216598251702471549716083690739081443001596647233826657217256404481137312781118690741169785434420384020405612299079265613394105241339325391747571754639912363475142155393211436306161562001069464040903751284623433192782731127896738348421989651159784267181403719927547420449264936746339372228106152358744990147150028677838854257935374932325070850236779306443622136462330639048350679415458768801137147698664007788367014889959456128158670003943024783053310890861570360544033256823025109672296382055835444775681353487665761693909847650026401918958084147841069362545109427341216572619405438011727712845046482567872221870091569322239683847237159177475127114847604426137226177973787079481947496019145581086401996024793371124338699170604720710010014818209175214746231611917567750163582625935250010452079459992374583001069773945218487349668696873714726514537041662061112291133086493774659860231528334210377318780367201998707641507830454546581602154353076205463860319520089032902976786367178573204604598282692445073892153757406471297086807759095945029530350883411563841622379019860179267798289433885976710633178670617326794568126944636547857098055146439616729775558381538099202041117509726564560035259805513033909687692965087161562078679406714054222414012810542390858795560165848828575944103295503795571697520399206853117553405488497537187680621152273580637773917086482929669881418051802267236613362363303900667542447061207174581247619680531800560821229807227796249803551047176452147033999929028106097941359398383959434259473007205662409793937513465914263907542525617055027351574732675745105193040939743102227536283522914957473390945499072108768779987489011480989011059813844391825232555698242258757568031869594599960038062045923576051239890962118439338635849852756160658792609530977195361485369620430097552314417813352217930459630898158675636297177751056711805888508361647413315850451172992182389173932455627789732389592464980780864533407984040360773295665232404364630677423397651055317101317533634561451893878845856425836446826402320820835736792755082419533831071567692751809802205654761328322862407461442835483272643897199582948600240626630581662950309861500863083868203064409237390868692544109384276330502137070674339720580234099469144482724495076246233583776663389679443931867037396698201061078562272277081554069928480493129228760667238255436157530451525835942905741434913233238856905071432535107010919738932100211489156065586494767617587167719704360098343975971288130382168460972819800065891180653367748435913179233321346482193397629734367421234910985608712259960137730630768726143680187287350365612162838232898494309847415852885560531684697887044395345125130770230813269224338604099188196309785119140085307683193599272243241043670658310531812955787732106968563339561429196455052793757225361258222406359620887081504280337620930600993620810652058696658334726947839498086169846899755537120516307302166556250230088050903699823771230844841657275729308218553279038171909517248515142606244987886705398154798116211216727333946554873873083374042605915028849094662204606019565325994367013594568048478412731830256685978276559681076206744695899177454085428536368539235949869064514263736715192404065021444357130496863182156744409596287110791634975592986251147340798088316718679177407071663955273416056041600943865196472564645535459768572108807202410573619123537613280370157350661870222565303273034906241346564903535313807975133050115748458528345363920389140039528058153531146626292448336682605071895108387036512399868752264684242196559663842123215586961324763978604858374632297343029056299668347364374181524880304854988974591022485212671865374029704587967583455779556667646184000795663346704795609653864119231136906228945414151894834920120796151315983256370457634274097596703688193131421910025672003049612959563523260881906779174786982397979528855450447297124668816532954826618829658691446044381197902600443488704650831243321754330429473409965751172538729806926002903273219193875765653496100778906522419956693282421932145675671018485710092806817119745996063829170359311442304183731853978266534843191099463631655869624605905618012228985910390270931828860799145762679895688095088173693328610941553265446820902484077391187232135604562214330315061264461478218521881883541092620145943825268108688384481963446743632117573416834373494860943225918011259882931988685559384713707139727448063985640196291563481321324501990214103419220372593465935089083339573727033349262786730483342929354365220869604688264511505887119389027557156302748686303096756191174756132578471799765148901108614507742634462908292981564718174800056408022306176691318747721836047170272600367402174298936349908634569366857246882038924107304812405303246051152048253451742521870387015412911504965542406724789572058767064641357232112348868728504958935227792301092643084870408527104516261176396485200880233640882403489333406100903341913633124797782778647080452267576222404531953638424925674631922094732138363218522696963560035735326417655418252743772673585136968125355430313092331802389944434976606481038257150258084766172101480543690430390701903154190950643385791614523954482765191276576725368148415952774419462326471179275899961292582014031712112257625046857491823469501703891466665672169913870405741897009114420443253765286937505870686266365761334619131797612827682553055750378212736370495155745991733955766563865525965847477429220186241067651563947366777619413464569980340482444564608856587242665382970050854301536810254696494079387394637669807236981907157844289431273729057458165623210621379426288272552857988332135241630830115481251516664149695468459394441914244241374137130689371938795470972913015586038422976542142929310078966822857272649001521775020181570378566323633565618041857436049986856452554950929871571098443146875227506373222724948845030562300509677089862553183551269809782724670107445886890652098494553105150241612272498434406653104578139352507228022344641620359557846375827175284851180470593360698228963801861381417378565515068795438897696400020661332816285835555024906975706411652214535543091608949289260117664212148668474626298058367427368594337641254150257598681421134252260248335023964932728214615542978317873023427583905030421751745430311368036933980018342696600932015136464616157716259809293896184444076409040163651766924433766171604380770498670483005699471464376078676149263985250303337592007884883538732906283654185507520025715110299459534526686929769593027461125723430186345552578123962847231820360189859025092337662440891535089904290734888602613945996417975607120440998881685911782657232657624737414069196996548928418259537101944054772553189525756237105195441033822424025516615912893455522218060160592834455087672210526270688818300212094354705006069299657369070107390871823501478189312900546463895584571893705049518214064085940670439348112382384189223974023405550084272993269271969228252657308228418813504532018521025387232041341148866237383286390229362763531968493661433702066210490098947800935063981037544302208653441707088829672461830972062540422710609384485853308625279293285192633449407535364912850489877511641753481455011538862835110940297518497956476285085876932432980219557615680262411392693929615907534344147780603094003773874066089341120168499709612182335793043256121392907152000192793198228071158547066540013989993273844006799496250543194025214014307994443632700092805397611304737991618394921107068520169964765109453287693039953950436379540802348021133270966578583210427215695462766828595028831002510428289839928769527691381818210879660442826776558932679004233119810489651317944644134429251424578280409251100414816838641639594059690951314851682546295950777653244635791621445992245469131338494111806653771873050197898435132391234936668626218402891917314797794032286522128558827424820434722426726425673310109820332016399996608406468352106288974762881134848195649363810254256494755801414689070813596480061097227590151222924223207112529537980268884826093711929789746426406337184431323689363012808535081056238856358756294436001591160108758299801808440518851598350135319938539221170844303189273936303647692268163994114868265255008999169399430451245885425551336924300800882729651373498125841475133903576322821831783707777781649568629120490831962768066810744350054174991199319151630093410826637517423885499025993363964024072597809657152373037830941879576679158929582448312953270981214793535922974970985954675132913838172913530285106423377637557690545672564316768496396527975150804104824110390897729821399235642150657235233596981087371956759081131271785980968969698704527701650319402992680383673307623626199909687158143418668940706275784082542686938286282085933977683038902078743377348312131347627549549461756933880302076151961260023675270651755851248291502250060421282324858021188242784028444045014226410093314531764759390081297653047818785173547000097120490090079986739685113201212777182575466211477492537099194399737220176831477865819836229999202823349151622623785391277122006785344288289076672728401900040984545452977322545686825777850723901432877350246895160261427707647771444369168338931719123594638540524381324568500849120239116526530052673604002985833768107684095843707313583375719234746259930371740223385632764343574440376796002829973979254289441115715950725570513964930693865187102582191685184600578883656691605164393983100759465176095439831742888530068240496364882137398199522809380070598772819295119285380511963461908280636211213124392819172047518219410014718249146284605235993288548391288142082930104492277007804228871028382842697262850921832021024473173161568305819328483610115061709425748992067152009479288640665532219269289982375933763766617938393422848415297597139665736078658794224863147519139337975132677753899420077114533601099890212109703645161333101587763158276945013403965633272644376562507905363138249269314000306038645394508917023647793280366034611789115012247503956671904596934594443752502027717122916763726401152344387736658253022100977147723399792335475665520431756457181480700275921870807649873600396292137257649490406585203335367900672087277262976731977179431135062318071702461828181778037387100146503061178827689229757808336160146084945945441961874409073057497273937470639210915700220823496142278790108766051387760235466845733893844180272148201618415187100106141574289089761392337546966005788858845922759178064649512498739704132840039625489339022519112811279149174937185271921679468494305509618598328382946443624085322239407730063774137134940009525196169807645888376939357847877573694388136745629338907929640568721977263152724135868026797788828221743474284576026727196194465804790533382534416952604832986885084956275997424831042080097411427823040743550419956156596628033698306918667444378321338198919359783134997784064390892246212476847084406752895000300084676750786209811047501781064535793667487658296753285953518997294249070220435439891984721518952179217768828192790956972993898032677692557372936590746066614064187881607385643947745930731457526323567051546909301399736574546201015542321910088998200610689537037458083336559621477608757137445587854264306910313355537355699942082806849478957673629381184241391041974995179339952143870073251495736788419643606904804931861662399330471628429936664915764471965728236382341520877394774626417350656122567381632325185740696435668513824042801342864709700601751940186455397678268712516255936471592687996040061298789057103133805975354572484389972646888609679560771609179617461570439480177352931377998046118151529221689742460559377140254065980378878124996432498164574249073767318012281827026456247690977034399782605923631057858397005282058973669003571183022172566944181985282284937155915321711634068252425380985419421498768058859584485563885128192390820700355213177065391537722324872216100046254894081679935959127139312721080534646103865626967541029212120267132195479953668602744355885661007035684372106268445444670110025247441583975617389865716817524129570626027339293098468517225190404815005729694089364169484082811563891702432997003715213786865102527234165692467745721513217958661632403410046359764037525225565658387567897002029917721054259150260303373363186914335313757658443410422843999034251973598647704725571739020040518088129863088158811452420625126157928758297166140553493170652189108731284414415569876491439646687398768599106448444524494460431422970602003317337772746666713280683117169500423447878410903612027879776290245927545839060173298769949369104726955181551045717692389562229306188414202784030737980764645068319747747464149980025382364573398566284923156857789661548479494052894279395316491082606330386371554945283502342184902202390330986250391124380889095350591232553625193562206674384514812557386895645209658228084999105441464690827805448626475617608997210709531010533061026125491535664973066916652334084913226680557883539310992567201235921974180581800548873573268614192418067678785913155161963156067767284402789470357186302783720410128438656330897117766665137648714895302279030542676441692635900257166104189149723673238178694798332367085163622024958813103637003899435292033557504390908518947519764551095738566141184056171212795732695048236604344607650852265138485363974875984566579019726640732921970608824058443786133340748884932461335468397442990043269541516266305075409714285556924721317354135250966635599570084142782333086636896352662116574260402567737743852339100895850510788959157591992601097027729999873545379361782904261132002052529058058225155397134798805268874204792491404227547254044025610801694348867816623395474816267671561925678106881339642454422366945341251490189995909344305029108900384759450728889626698794133279031714303918388327334565248645972280034724073975561323222304074784880513912264067177989839702836241614505153673262766797477367047472829141038360044606822133598794411099311553174284069898671561522986968435482009810502394377659156850646610633832306104523295875279899703157563336193861958618926982606857244657114958677074326427233688056776007507399861601769255540743281491803795202836976795945938094431171631331884420883062625747477048113205612155485061560291530323957069057717470108049009513525586874924415706334833568275196479759902111096983900331176561992776758419301693168149419253241443737042224618876191498614457924287243245770781432898458379704187490711758509346007060264019164848352954892851960995858901360558718554355108288194033148544755750128907470499380432107126581195913976582338477401381313052648978460073389971022724367547124871634525792043143867486506861562474514780031551609155471072595817833294872316985863442929930569051796652768402216217335810587375622009233971443343112585748003167664387689219222213279828782873115739559280100432794317209506474230724579598370185964741649226705109848289592423798571169415664143254389182671289354353905992252054187822534386816527398586884358264768548841889204888658557851081477825467795753718715088100808627697715033951592588117271150626639405474188279266178523926866997097518488376714403556884580501669833783848912598714776781220086522914270197204096776979885510631062669707111190814192537847329013358357085252990587264112911966646847331952496984755830829644247897663201363587380915359683128037658572756895750389154739414169205662458678218049290274207652659246220889302891712759149839420272731943340461877580292431635689774081452272949810822231394098827569169552285788064053361240750710619986868695122937249713624956817376773094045942633541387554123824337449268319613992077421712922225051190444347854372239270109736426904942177303235175411249735308934659388782443409725656367483177881139464542249244615130356481673329747940129288428784474741316616569288995617719849483774815247222064137587972172336522955965937025254330197874789783594568494776004378284595421419570744841595276711176729408535217841522451877191278185927894939639670747650014890551492203120886680871379911168533085103299639526502858871900369545090670067304265844108349254113102608916675354725782382324584502183590511030189682290592657169134845622493177377737019292030382393238473962742693564737939945342369478087993459510418909984808767525496226688450145061022324791259555712914042394798740427523340963142093494638072750893053591012745067442138358659010934642494463615513897782333335761216113580290563706185552074323638393755191426257227863071909181734000608178590779140055962483092142422084069864521386165190447846179236602905236657556415630924801002620700998151909746034824790481150742243188398810956540694671289241013215273881511351368132518916685673885248902135010101215894662817336467302903714970106250550528037538990430536477957168796954823599856164616981466057691726641155149367888741279851531617301857791167907799530738044554924835293408128908767688593461431717059588067341835894962716055801380186477837214826809209687918925346082946103730132896145216779424874009390775043376853963726804325932791625509693740994518258406604551369677040455076196231619506214005986680113897833734183900186797765499475068973991086230170072200394852672562092947886314861541415931283810681908583038068861673073229364810114926630808048490005791554431549386877014922163269976034586242525189895354372368167924948999898937815725417791241724497641378658321688483176188225977092903061453911866227810969594242705808774538301696120831627355146335408582424234386314914318134148229535288855734112651011886764905286506121137367353736561542128514119756777322118129162032050959120050047897298996917962882015718273286289448109605407208431498178013645344143384221681446553652474635663668716331617634950056882015556740964279697801766828057873848391143986975321506758621723443604540252384246619158055160829088413369089024722088774043395887339705997331023458164282368218511562212916707965686052642433103890520031011708860767450513943683055215875180807319397645412555636768250323605551362126628698429313000717220565046904774720000419898956258044666355046817870778447301466963821721867505944302689289936835610368738033774958813818562323951039208900929939504857310015239862983824472726455796726533110550189963494592128312844386288057813419092111113339286273909999055419305330185602741771868970423084096771771033063279236227120728208259129682787085666241206055517042984270137792870702259800075133192225577991433222209541909429606149046115467548924126718264857531128115492141866445915203213213055963340189014011386207066137052929067168141422427751203557529220025891562697736001214013528208816138243917784615061627321493062781475559842590002026600400324063080190615307078992713568125453495272076295884029394541282154234385205343226912202308030455821299434364225713243091330523951545529166969788526400220008836602207418618080303929174655306323126090792613599450130646690419551577054291348573000975764095770806733865585608630642872329948802921851456028745663660486515711046412882709791042768793202866108632211741871882644193188946578949520432253840592579805243112423087659353698674503220043164877729475046780797500734539352982794319280776537246759035441479776458483379114164505463911551130153115951198340763950348247937219869795166018589457682248781357935085394797031440104315432436097404751534536146424032546298701547735313076021767854658197911670552390165916074275662286160873787297253334726479168655224915353072339489862527727593812423264622263432327066905292980346506060561754127251818778438753776142823354630729555477840438052484159481852417550703449128895012065519775544983032172349544228960019034876457288896915088615686730849046740926660529088776978800218396776281270290870282782247048279607693470454394639565161121053520748238085274395100031192427816831916111035910137559376478098166042759913816096224247785911041626853039885904870525921799661264007952509080832481109472726621934839923514571402921794644189974256613974745120077961337336637479795155592481877016308027934625305953052583417358332862308973717861036467797425003214315020180145046022012897486055531090872027159052158721408485987730323733705334569946400153259888664143792885539560962625667298658225357812318696161255836277189222509225957500619304399050725716936465944802473399600105678052288847198023501937975516755356839946979323560972509301648401540034243965678207235327267026618518218599132789011892214357818994077917908607294787539883849871796351991272503216636811612985938381838618734353172904377071929976722383435287265733232164305661364893136654691844851183155929145234670724685149308553618118669425546385494021038560095847815374862093465376982135494961414710340032736324955489056528999630082343676896508373076421622587720914618238272973977744990674920080362418511803540132439790307312103199878313930760283169060225153919306206592767744559819734560701541668274301585939979380901728186809698012343735562485046420205981610686676564904692981083535202923746997827353621885468851702917799908450800346646129185712155023937359033068607814394588861850401188626454542050353320371434909216770538713313236647100415086099675913455322581022681587802432533891197638553744028781698375256666498190819095988666922268737063214809387399219906924249404611504815954007439593640716688354322539684984648762834480413069215096749949006919765724739457031622235902151432620479365825231890741479324964858579947925074544449074255130218795550719356285902659141236604517825290540403176509347948957126798172521957254258686429620593371243686137985427866119718878487671437440417482587358359437099718750942616137240448726976221033926972644537745871230044650310207265898718457300911128673470614675694592411909702982786210245688843588440396503270179876614540647029805500137538546672083785805503575142343736566447550040018508755553265392509700020654321858531461675836908117541769595511571981973565472343020869465642884682892638375026813553212377450914353054776316418996267646359216779166660727360564820799497603623842531585150421707644648348447152922111302515996359044134741338742528687300346213070398374168710320820201081548378815802829656099311336934656438167904790899311650704664038688443684093872694479515863673926481577063232585241648430922317294030064577090553098832511772037038923745975510497446151314777546849246469950278224825119035244190397280476109227433936258979875682721540472305089891132762719025865099097493071203882213572113462003378030636886258683869503701261239683930795445156480650832391533025496351937187320801078458315614447370928098165504944510751125483496240662201289455855737414053989269642767369297572622190308676714542197501714786700175531612071460917852599959889616511586931771076386178032224672857540723871382047380929115223750338354385085602661682680391246689431123220281240173996998027035464232006367039705035515818334419166558448702431136297681399608666011161209964570917317940310175319658585654167635124717197821327009290144157692156584125182552545997404677327112527294793570654040161731479409042628537178948770311153331014063227622417551097520836276096784022017367829317642553146829386320772374443070232127364494104004946112734229732028203064151936183101439175467728952801035119025575194629237442711659772198052258121839964380048475975349564233190752130747405789909792082845904867639768778755612147456291320142414817212660809170972334822124687345665433049447369634663166849228112003422401962608690270842773335903164484741899034265568523999542461806630722211770979803561866585689915509023950782194936926873424516216206540487891638404842058176404711578470496010330430753245983445510450476089262075692598955064708208995912827492083200327120067801456059320881632162161775186571324972366105234965073571957126213110968400576068775610940218838958726167364237070399329419816397201506377184948856071593554111126603714189632025754193265040300382931995405714107143064172821054816833469715770176192231077639877990495155515336689584691897863701089728411278635579424972140879955162170571666153281194318092555006298765076823638541249853469782487537176177248317532292099026733530450072110866828825841974501659185399278010573645291220217650809998929034074309406480175472964607396369141997886967621730136100485423304596152116365624558986597822518230588817412631788822253978831710119723287780651367201500972890575297669148026836224010762763481926389185802365004648287745912074298917146642126731509642587115938319680962934055088331696017888713129161245984775959040945686675239209517120698954453876728597128875987110202322042118688986560391623750623585820197066819067716555792257927286835037462950271099272288040879521880122243690618280411200356142647917337196465625503731725404049310026133323490047261984161266224724698348481504979780621350004162920836820959356923921350446132916199201929401947840360178107157694683381355437972715795942313596024961418854644954145125891838886621999242901909609421590362345158752150589791390049999338681628869896531622397588345442092673027970825763741192746886935500780150370888641860637132946673401600658021948821969986178875425638107884207142296137778053600701577200220624000700262541596859358525634492719819025848851382088184090616031356365499793348667935433474166703585920297957198798189549886922737868826747939788366832334335406682041835371492557709485014326410475843999512988900685710637404689431270980977671066223596868983677242936349684526290047500557412438987557315238348372388542908737799131029146469627945343745936654983362185813648763665484272037724199191639148289873372971463470752990017114325744746701974839003513891295823718294988734351589857837887303916768026725702592635081520558157509229462571953040271649426502246406365889267753592528023646486911965316257367625433605818785783514282915598164327676236792484030359167975900741234273309092741812579719329221179829372840906660566037319916745439033299185752543843969289449359978809169809837737604926882875288907474540347738154814768938242919343555225708320760745067501629697824088850126506928738199621841252362153499120596629601366446886721223284351575583736611716275156751518129600429234418942088288238690232303498521963875054874076919706973183011387286880647843314343404869249230528264714855380825404561094514892809140146589009730795098585841847818299828872163715807191558781409111120088761062277166813063132889439861950604387926378283895493488083069786339722205076008254819932407674896223309492411075888550492345503923235116206380262703574677936034149910738719682349124947903437471869176913455110876838498976660302991107340283307722503414572196100826485296129851298659290558343911711777447377054565662698780899734479852527283280829364943110594075069379824456031043898566473453984308093431377529545529971318372636925307407486877434603790563368390057996803406472686429151874086377191834145109899345371035524799570039784097010129454666017482008980453618297462532096501867032738599071587007902072651945288427913547435682538390514876959243116153919270178097414657341567264737351214290517630408011602345416809153913862982956188457699061189018041012249589003440418759484937316095192828008667033456201256174177214424733305416857579274998592409194838221399438764417789118688883754965355663745523960588233613315757538766830406363310835373760139154462038895201779879691250973104905313987278396779319414273192698201688969197564729858474782109867989381896852963000279695086748952054933442597300841618303502931882865376669265350256338934110122160500041594526693278531590527435336561463850200785976232932301816289763825490655306514501405617259991940091982368779684645105093947771795975360090937652274958859490644109693645767426361655359924343963009305856555986898698915183806632408385898507414674685888621681443372420338706719184888744020422894341855492181653101056156323840209331001660542580838098112296373981315381705598673196155069951991851424590392181843456787873915381373612663128362512398195646468234474740631492505085789979676766508498395668285788648235701255410980512009193785333356708475987159952094781934680133747535099415397328885525028918028117015069359299994973586141760366721899286837232255135475124904845414339428773801503698395563410131557567239775596036364752186724171523464872001026893402165039018878151602094622246343434208334446032622764626590831632088814529284272112006689581966844326581956815851683436665154225105943883038703252390672766821990424211779467989289337263026705839981984906088039411256994089856687438439190613337485660927450553837285519032145165998210478470566485620152048135361861661165192854444402091729969955717171590167465117636254213869176693016541124244081762176902000592767639483673758260158875193057865002598536700323205353267495935393107679634805621588767870918818778294981570721675138775573363409225152952334935704589135376459404286568292207403105045810017600389501987509362010634413802136368230600636788683843529888969721031033672890797228833953717133782261029373607368645200961128525149445625934356709110731128306114340038717373556116561235196160854684818445411285421410521035808286011827057782289442520348329137722995245354730812236919871618217917624284701335221139640343465523584642184054166249624859662273712644843552884251371573553378989852301533163899923282416949053700111993599818230963991008355482964253651246228709401735354899497662685043004697903824052229739455878909275463355891253381349303336794872744740719402238168653344324154926606974284766088578359523540802976272823816772465992415355684524312982408242781498162500968916573439226968462482244581574296120004618104810617801689960807904318253299973637533167272545630088373997811975366892510733861971379921952984394401832576566329582200409815766123339934500543034679196905091269393053144438006810409342563864245624629966934022893307291385047684909507717448878482895053683830599452783087740097093767950428809534168964172710059685306362701681461784827942736460782078447928379100121178323552279436605373616820676970394843419684180022012096394605259107622033760117649997912247207171383011516624792817143446003542548911596301134306822650810578275017467811394159662295989988599132549697026638190897890145298301722466146162578098973790914481637127801912113158494615837714859789970186362851018056708732845185063736536178797653512276224547797684836810101609420520710081377237910552151335252678219351733415896947275033525887076843702860857372931940417489171876839594602103955833029106287855872599938967940553287532067426875112974030697228723895386838476693808981222524306709580898414352564232871394379563820499517980396330459467712776224113498482395343895403661401452244120495658278664693388886168878218407121445684719668491152630980702347056391541816088760938889111637365590857393482150168557959585043830379351794352825642273487827493772138978125773977757140485527028337554662947565473646808733982347435150339240280471542769872424826252425622817673247590454744937076300739049759734873662011582321230510736389686405254909549926473079812272693211994167896999659125015787635385952496058670725782444844306153754840501370098832282063889533944082155484849565087179048621914762220466040190208744149138829424556047085220556851306591551159708381787950716211566206054579115138536314425701375043469277652036345293455170973485828082689710453127954731417268085793920540655259752210751147016670788571812726556677928502553410505396860896347714598220245948545939783645200247782392497702220937542959809238144940812801083185743937215760598728573734495688594576020225629402539926110524703508135697999287061699168174490717962180674547970268461583225516275979627269217096301665536318865899137505782165977114228015585407324758502926765726002745826979087769326516500135716490549063139930102066635371981541559786082708882412334704975074233011022796287304348637623857663161712465654786822837627785039944749435185606199925668769591695308812503945085058819286803229362873286804165769219804751912981904106001574957393371442517830150150352256121343406571704014624957183976074288111623280347907155726111209050681023202599990411461078046084538235180248013182988889326189709763644565744698897361170207737380042121119854927265960553097129477739813847891358370614175529933080730031137883921097886183961886005309720704527095341297826167180406433031678436139108479206342094781851704721627009230977555719077651599287289858188918210669373519842904772649395486717925009961914545039293485681176355153486369002146146286172008227829194625942422584932478372994299583400926103029649342441186233387416102190210976520178018900512081793915542266558932392409585582385358312158005784416874024146330405989468979459512694868015829541797375335326351804663537486719878274757661798910254211930754176877995162666756367225586344367399994194821511193998575015942601946195188213328516804517176288608207997236431066264979617669228211031253034931457341942075351976050469263108288407392788172109772220422262494520548858473653481057366901603357023651625824272078810051527878903369024235484537681376254036014199407375543773190253760115760414362794842240985655719983811370071035011785284083761195872830211403435280105502135967878339041209994568003892094281728047669084640155082854754700887740039512915011462513298290502255422064910780397518692812871886265861235135300182070644357622210324065625872870430970514987325548893845813587076963503009351445394905843126356075817624531663808005633418130913244275544240098173339672087144302234331568282841687026031198349211548887454766003255060474756012917311580050486592944635970538732667225630763375995629562927653601886187346855216398723705293584547626511201386241882001173855218463052925905419913631791527434857395389784844665257652519481203469727892719855087848427016186128409361460901509684986518089445109677615416512771329608316769768691993480915816458720954832757366993381370553328005753208089838077707021325743172099358895980834734441840338229511382433667062821716767186603415377162964107368273857264061624588825432878617087285530542634754761167442510924399554888260969552995507403703037060489940961922528822864906928744072882988244490826516201218607458958472026879611221623115535562083297842656595796769436557392025050590378165742266131803861065107835601674482868017967135510814919594384750162244914822716172390997587776826001542663093125349641473529331771123889582839616898540384417199903386886573594530099320390888215880321451094254524503285299435784916251245240415367968886096778285356892447190746792939627388234317175637647971542872122283435358150862572740120360533536779891964184301527131319071787101241956386387195952430369371639635699919138345270254888868125219229674122274902535175663425584530887093708573717035534960366396687567355113498235627161112257007344144966481752448986473805675133318282969087258816283388037350023615732480586037654570765766081927110670354264722819057854356327315138257283076675577969922394094983089023302685897332957220417321515081969546234894791724457227122232142678465832523902015020355919673066247420449309995961458848670051397793615854795077779245363087135325169939044135749241230388615489389971349524429919811300138648293700887182761942199218533665766791555097007861233821322746258513347923885340937258240267023845030219152940783898228080012667372691437031736550957167683555632953228778839049634805797993289261648402725223445103742203681893181939479811167789834842696708597372375297434754237957181935521561693965565020198665830617989581285725566961646578676285005374495837910443633881541727893678943577393571656774896847365412178473128037382724030334742275025734909294037202306938061551886108931669227339672222908241642255571771336354365300057089225229921763478867813273453482328207347478890005198733138817954802232406238510373745509723432263666916218896957395691908459763324023916626055051896341156668125449541837122902527763062144883186543217131385440767156945457638790474393444197515992917906691016171237450182461007220601607167336532382703597210036412991515584261117743021008682038432033797948323795696258090907638976829371891668698454240769491274476073538414625509844202993356723652557167590602117024760577023374277564518158164342787926511550562679998289762436808813519372323439526264292736208420168949106565848014200307257120744996126990168908765311421357560689822518695837110235610019519775999304813181991356155333196460036510667488127494626943209306477307799865878492216313042168571036382540499113907292412305530065309722496678121065641479193480672660078743845789677347089724666303446137662644236778296845702697228686975817108842906856065631094532983380400501386972669463985100275501093926819159666282231893460523724208315953356797565035285717889930659454947622111787980817122402057085769843089590019630863946111861891073037879888431849879607344155232378803196528209936042136947187747065938021981063914352230043331325114175640098050595006702158575537734329988936562372595170431034481210931360948449799053008653447609222799585344834193335819606351881955756592121849921235564272026022233010365321460068514331984549779431761490969734165993499381118492319822004128329545580662445562427414012020672076515828282370834479067598421723696162340274626643223795142523761096125194671867910690515380219332159085477580319691010398636457749326813245802329358781791006762433330822105831099698815759212365527555934909344291399416188578063484564121400333717536376916808331856938776315265067779246358826993520523828244932655721540586263923352563319013167320400843036403499255039997809580555644108182853449644740804251988504103595709453572932759010714274262021463914751991658395444558081020175107118226023274777472999721068143534012368939371810195466586856345471031490685496927038651619732062600085987580331968905392217096610401206312000437371311290115913597373072559560804199168649313651752888421921617326690984768235027464979878208809311091863374701001111808268647003206024985131889859483772105519087741880164578957950733331172697631095998966762011094531935363521439556350904986324603598528589889527665091566889329958271734565447412439677755523031825119830525903688012182506226533124671735037486573702296845445575856109135277030805718810435789136341616436165394132741185630621447005201034434209678737559703975345802623996134866760207027683594016689432338752952374885796368295017142753540675363542550642032058373224314447798940493232815424154701458417065282840153355868293267848221049067586224802721459981001131510383019704675852097305112199369410169001330019615447797036309067514898065233510890838361321452179960342305469197802364345283954939474253867067210277069259559344029036714765912805542058491967153416992746966169033857927785059894007861935701726015092956548689957185810573461966909857336940508016679251505788181181067803756328247298284220836768983516486404059833864029949446053229630910749737321574162410776021362226146738548336134745449521617898401172376631559577463234470805269385248467086360160370223217195128760628877641339495381401652453603073189411649166212216915948432785571985572798208093333121403449337117088040618527959873929551638170529408416251010100237590797687449592231150425433024573236675702851794032900314034610085963465587746066569636369542113859633216865139481401879297097999802613145286081142159961628138797874924141020420341493128701631561548661420049628264336760603420737332609020309893613559245550596074945661490621120200244333928826055997947301926688460416411385266229463794428475007848057418482229198152682715753982363958585835062283885153721527941586683388789184069273147658940902759462982763339247323481022800855799527402997563067013178599263316556451439524063519489330519028389464183723282030926831310430113173839282809984184914774881551266325373986957982428043335003792485177403284480094620128996104443638672653562159667290047006883023728285595644787691163630172967885545815186075495969563809916240378961523764320309726892701463215816868489452191027044588945912714625096714249995494354202857013543609147355455875422631573181284081927158585978764924075457457356967806829068220394308142673227675052881226795003397422796779330053216413534224805063641902030302013677250812475427137137542581814222912432886220579033548265624902109579223967984223427616872908626925626615680653818765610152565715901020655770806402732945268741072351996784389452088044456199566374526410191337495232978916613772213522672361946510066108901099313048064939084082557258782014673803396771052763520370892004894687914159662044503901338944871752560570064822457339427008289429783147043504127989445899716646004028254119354269030674752681799085773827126053334263354926020562461857691329196183067547651511947812486891657277690515495793704635944238730994585521828758574216386010651513612488485393449414606365401533111556748832763036542883854815445511083408741867103895902419057842612888493780650919946922597917614665690188958820890424182189505303019905901624441989094391466926030497917724325178435278245484417182730239288993425628467728872844955530592793948989514055946684023125129866513272204911728957139824224231251681053582431992775727242763356196114487705163727479097153954808286324585759037871329310864947395392741142310318234082907703820474936236792362969696652342762631278613257276179198134770822491631046485432064809831944580215422415813170337728467247116365057373853454288378924825127744722273863766880906895422590301664449306006271977593547107609463801631548959039525528796181934326321818390863992818421275697266511774371683188917194489333652317214646593833050649665302162754187735906776282116713375080281838583362482530782381594071922992945230892372080652764228007328939458086033956087720135139366032415414917931411590369242214195221229228026687089068350979590121100631541031962079659613318262933104760954590570219428702617085192156610509583339271504802997731296342199952920230841326673136120178190620408745955696066208076096348169829368779060557501591837558918573507889934810759852804428663462504554736851448247878362544012067656898948926434478504000451285309966110432758494060058946053906733146015202310271193460003965707775559215978358028169165023947022276683574864771592203430175206852280400562184574602916545675642651361048818595780234284409039004996560474240681005522457942479042611055212517098396056525447138862289169624022829326134072518820648315458978290272837074125821297605596732034236846699695918564162381970382385959404558197190425919371324803977878749564409583279586417788214035718678009560511330462852204222737377651191841919050601741611690486256107884174883459603636757799476753516750355498155053579671308167489812559736933171005672016108155038211346257546087953693821199185687999420274134949593484986248758046942723526538709394858445319415109748163542021044377680906271550663735231900532480901515322326698850802331707902072650682827233350767549538570267072091835512454214212092772816476799535919556532861888507271781419648475486508394141228710823152331977329458909509530247029090020286273113942814552967434931681668799613015755398208178950492220572509129610608129181406485799938925546404539404550634224059087535827781719900772608212011556297230516914423380706517688380983752526195508110481429668388070933414222011217734794896040400885302930920703377184851486781980279879629150370033577976780798950407114473144590340298792322946566802669108064685993626674550102478234572830278336501873597703082154995736301039007820175085949773772349028813010011334123441488084859304648671058231015726739949653525807434270184428855659645661190566017397663039440422652550917153887859783050541385278383562359691681374561044046754896439583635017513501832691040902300664382037818661460708628675627611202256965673504638897507808146581817710880299553410778998241923225431055953673704994411975399041762653579007040004002190187301589115456613629854287301440078855332452825763149455915118572005637628732015843924011086390454971394708293334937445442365080406355094250196100592894798325495403615186881679035149836130068482516624834996940649137511046607032379859766413197637239760942323950013572554505852895467936314623628772287698663005439500749044195930235195411700145119146404899136908120363631243206121199428500082536861017549352385744761985952243483184685149296640232490246776085177631277524104125613942111522637234438226177844838630317490959275938402643588303310615013612998245769811218154507926671314469041813911973854741319221459170638446826936444917929091871309611970876651289976540555538082333731618143464223559053087582124672080711522502188298046308456749997923978202000804822150651720002417259271057778398235181139680329595580684099083776563987023157372062796228502037481688066268370441774440435770523731381481269205655377494704645092722075152712054319569131915055096102280640207331782746665904893707578735269939990784721275951358359820449909451845635223913188844114585232323291609198593736520963455658805414848441916208310690074225199681660856058438332410642014953512055773310218452335168593403459475734270072530007554390919650535331511679730608096657052791554519629878680383553660526691840890795925046098369221489823288572937199106494838153708059629523780190007742553698767042230185531266423299214161866646630381981049371819320783974544016755165994654782447196640739941821451061524501781338358962200650453034181731162504741026617578951882252365143081264865968763065344299662906325627055824150750025339829066507270727719938741834824413074839674809175985933277928676298948307115392070243014953182926783774840107492919766631614484661823277962722039241811241900174602428528932533501797834881657810663525310848643633733698686019145113050276289396696991879290289779266155919713369045141339057035900732683829730214161366779332166101516792822494508762447127875975598256807961236817200855115801887913274914072403843292470252609777162267282894649760899686216394570860131805594584923887710249839940268766325918696793189279635848068274346733859773534147878420590862262860575452812320836728897088849565012837228023179388335266880354422119080766453743281385094538169980318725715630349674117753749377624154646758511555490987361416390191047990583073924099137110802571917722873839490139251300063239184562455732786375112291155163247329427603074848679604017508089251981226134462074587048323517360176622131399537328982929097958339386709429625492391622338399066629158831805615529305664004768297494307873105926506448594373632084281780546918501135019552450833766945999301082886158474643011729767694607093584167793181646016557675084072907286842361246938494090876263267977915370314558622119719463147671825509200020280064550769180299454524951979860394638239762831493175913204196174116728498852278794065450201768831417370763413025201005453976101833433457788999582982600668400018328247724680018493628391187839704982868639347298482236090191603739208584586137985468624167408385032891258506286967963702749046335258979617644455147539646165951150131244503877987688572793470846607032147917107221160751167037100664923879483550200150189394511697128777706843512603550056485420487996530356431382389049504075192296599966040684317632470407326357180819816744949904838776865699072943867579070417631991639602171550404043241598663758650071695533716973158859465640230561225129295717493712947282618073838628568376261014540101673160945463703613146897376298429765428078327227604259859734449806297727222256441057640261654739689164810891469861548315795665007018658151486775239505448371592009366049324890300522230273877553341395318956966185166998705895113517497623725620560419829853336317294863862429769417487773810390327205427428371404239291741329199975663507746577090464335832921106310730807299138014294517268345651019957409268170134821247212840576592269338216987937288061192106647767812134541664709466957389290657544516239814848822331852765336802394832139114614217590828281612417530590428168296694012767381500838306444646150202481824578309393047518561916345441803587872766589317615677849555542203250115684093287054613033478658440105669301878639261442822924295221415569823458939692930580321529930761527955421925498258545380315246078408166809054232706027877051530574712247129164533784045028447868084601161609685546586222677506770176496166956776328665917460735633733033622955259183579507106035002730679885999836072440961627880787235335443955904781410945704136361865654841348485899304379766526452641635605439327119493083787405885652691575848950769983603765103686731281598723681920943482315647416658135089512974188365542137889822118833103836457921658771814576561353109087262600480950902447553784013720774942314826029898920472394846644063400444083691347112799061225885737192828019676195541682057670244807819281990719542346209206973566758854748224746376122076126398029831609162424869596487732265450776576842542494154085010925057796150836111822680631113999791970731128218951265732738733150674593940634642806476794089194792930765251603425234048587708480618397569921463520359288650453353225470463536987373205549882464016404464161330247832209584656465956015962014206121707742287603532752015922256401226532669738569432213646657596847234252986654990061198232337583076486979559530026574680247162538915530458795940267955943223509648435360842156939712419337684330055914541577843393116949314770769777089891853189602642475507373642736372701325731908360906648602892681070720663726726187939382967420400355277468601739256069561854182401029798407476706263148406851686959443695629286669612606614970157460804310637277901130456520178466072024081752252097269362088952298974187339882960783616488987831090528299305956923618148991996389892401417506998662627326035502789101793348528499401178903627611171208879321745536808258888728996354720564797067575602838443529715865289206436901628130713470134065394640907344260505484205444683893770178871826908073614607940628376361362681596106033485190937632540295237086133718763139089932780721183626884782503507416667145294719582731187006283148948350190275744666013191747988232228979092368917268042788996777171829272937573141145617050705606406266838909742771245535217068902861596593660001320018574055084455556219145407002844914643640716489837299535101630307459885801032777004864356258182902928388804380792667198148480588612190063444528701414699488920659466804198459754914382553803433210712042063685167240409191735569809149951645704095137104538985148631108341590273222898194846384971355778095266294370331914867131715443695227896103545754973933984241424953069569026753090772974040414772098162401082787101652996708302975698803141250708806623038910038445760227560344281246446963930193818288202791044602595211865132340747171496295874301744231980888090015402060644577025991109373831152132025771244513327931159429614977445062146797826499573982519638121652143457264232382560346424147013770980303680553780892250203910196118556703192028702487712419548608922100523774900062653501873192848034965830902821957588933604941170492540919387555592591436088980918401334637910783871183379236733263313111695448524567481602171975304962581757784515753238367410613415088473685304120747662715684888554928339181836783984784313459153232877283929187578878155209877001088608800662204600039731487168072601443335098069547212305871171590800421948919551124949441746723593668062742432918117630384922007609072260207212366447025183927554654308837507212339969457048645818438046144100429267148105552446401705173354007840113977022958624759356005844103352709754359201266455377231018121779971385381378874248556032138149452947459727202574055080442387982230066707961675386446726026183988720900537215427885290710803652582899965299724564982084726759208549075185474904777149930814450895868982587660639813828985069098484186303620205180234385851258460586608314633014260698762214005177992026819616636470546977869535174497561157252820629968615970815548191412730081080154145634678527854695588199676764219700185794471788943201308021113591612034617612928990280265749285075804505243553335355439440686088650948352778594305978246632774697998283331599492150888669982259557672409205044400295464299847024676146830341969031894119920188916940202639662902774595005931432818193971664690534263050028170169246000445199504185689340364633940980931531208909713363379612043999761317513087166373154013126602211802721138302615676746111217973253843721348392682274566034986553244282336262300392635969131291461353595572321824676641125653560704489422911171174302881731870206722965668730755413699711845670103149381515858131224732704590339360744691516497634102827771872736665772037137388359246704004335997734896871525865958788016735221401965742605625231167267547883255273905955597791213977841858874628486215496480576892166828393387007941924397827388159002626357924986972899691352716384285663563074815055338512464902159254434253033777792657870545756268970585451817735547807270386553838977614812377026721134114811433204266092367896073019041388650249059667652972044779052653722440205368300722307396736331642799154575834758034667472983770262766426294269147650863954930068511216866782161461107166881818194149094551326798119032918960663196618426795302199849189091061812196472486112646194597626749209140438894947480923503282883200705156716789062410798565451547632633880800045764130580912646674470756035406797298874857040889945163435281060489633389410183030019095941028707329289149806369535583430949684591810500609125313533554699005565060779073148166051698212102163229362554940980766863022920386898395276127661345708935725351611678611253942322422482964254511626106225313772204134157583874369931000692496717258148610421960980322660945749464875026989602732055785850569718236734569824671318380433942153613843942115715478812044774985579673714201291017743487361654573092025106016788988255447326250325741699747423120125471482059966803128260295835321265771831232552350806426108703844370900560997775448569973544276762923629022757585634973712378342833644297380207136530209727545857516498578326045864809526189541389017825475545217532747063252484764979486668506479382667799238849052462295224759301516247058124984981265744643185696229905643916778648486898703723762651343024631478192170904115265859317822136937930290004372430889275656172025910315588389301314559617668297250552798732764599304368036348724364281612259838527909066775236848795394159331113829031243853222399129765762235096145279751829469949151720233904309376231011481489005141714520784826878363071662946407436455852224527990546413864830724211006404627903462477134282314143206854447575077852049276766943659635534855068411558881641754982681515515955861357067314628152275937254294022946123351044950817058223759986750160521670775947933223903358447103453655298169672087329292791452482129693905901273515889942120433790281425541616509758722366359985965953805071167862711774853008294279673649483173696895859387124084703265701179451878160044363935141394278433091240545191244757138508803330941632626004090289567773812043724560242469099783829784742988600311488278677168080191873960638367839647093014888352114687243606918427609063174942139891275704116503788611378194325011443239222830872484805427023094061132063644121823315292929332679329599659961962430746558946013337829708421712092911701104182016086640656687386603052686912423625446039377975012721645715287203470340573009448951970164705511036997086721064605644276168391677248416717759690513645532835874078722788533972656183257615622039074549045904256428980217600390784414081610136659626910526740367432324007733125664780537038820734096135585948415213965168471468523034481088105914214279863107846823876097016239377895441625207636868737744500974721744316643776763613919402369303692906871241734843581703217066661809823474325890420741200635959603923681605529435538897922806903328134058729426536470882755990824228438066955516098086621275470749198118678516500834243868868473578136665546584213612108735028569440467231037410765750063474331943725185786409151018918092169922728413533851566729588811926739756334467414994137418112711970482588759097224324888908523483396388674759759119950252152646368455226047642636677099888839027269397044323053316792496945627441169563310115443901994206567413389298977264519982962219698959652583390145545040597032644837389527629847203939057431199656619371335924941982571614068774193995639944644657505856813755898124032761478504343644781973582492724245143648801533331057111114738773876814057156639382749376974516645638106155378516920866869989618323310246106718585184511914608326902205088290156708953079376101391594420320616197070304467133047048514355560810322737019302169329380591288844308422688899284006221692931381099456697055718383174402266642142251073123757366293788193004742688262308667507800166184690748854432926675182886973680235829237727688752834981391741826393945383426664694221530700064856442042581902835629800506013466384747426728436201994465186616448101515084192573330892874427859148443814225772075919002889488885496600205255221417167440480985179775784171888450639145843058898777644210637340114655145450605859577935873874455807665006506674010355030146435285674129393181545624579962919281587521979758810288774779906717117129272842958144022861664001551148133218029142034822543751119158542040436171356201594140562595378475576567287450046517372828375922273841752006478832306783637433116263079296960949889277450047763490307941516329622356931826009956790002633984764192180478538527049524305556052979406480284784179953590798225565721833384562394322526059595364893856687969810978480303067229638413266593520746759562731053279769641415914249991239289426718438528440169514826694923706731345513711059132885097303694770076883154792770700711145422733348247131807637826269542525493749381493515320630160238330973434560869273769833598931693960148890986100432817363830625124242814424369515062327297912648283129585946878945589338569971829337704000734525101272867829933639878620707722699758536837525791826413068722447426734857979539373114141418581690566494461795233535931338350257735645608633039057157258719710902780993550767699257532857827234877461124800685912257949651006549967832853174037356907274327259639861126967238944232574731969214509521750448114533228543545941590202326091737209553318112550376744806535862191634975351241204712018638720528900227152704389651202447448723459796577420069824468758042335518677171798194496952025826439088112302701972353004542470809096748185864699921453914191672529199156392560559769738256431970922304491332957967414310331628183469397289989248246121415650951247549371414950756045058469946555536372359391718450072511723257701292692008056021910105492346089412241134619342755781926022099193715370663963765348973902871321567226170160810707310858330203340030432558146769326666478858215339928748771539975609326722497876598153252316989508036862450764656170286099109990393950978999346784255388761098446138373533666881741032222101146943056952201208607052456808018788900942806244902613020606049305589294893695334902052621413506273682049381587310116462428076369429794656029136516069454992505311492865643259628888862408833598836278225894066170069035462654141956361792563713739943666301635204655252103977389745772566433641858561895549554385554168821752315906943566940988717980596356171006270113744523644131551328226831872338223550851346849313182532319614651017902719537821017790550634244463073249991743761407781739813185961534830973284528681181434589382869510126228315473006538231293936549284767198866050199188868170924477394504345720053624639844894548997977953055727816719352432520570497013532382041626849717439432014236907070582149194348768359510803698779632064463563961235420017714983004116901090561795542720900829942033557160303393535979522324859157751863957730800481478788878943601190826101289684181076878694200368483342247651748541113188860296857547433641861599555574521186405564951226967300627855235131918559844092512837344806908595000972242090520694457373987439017386652871806424086952156572380594363651412114560874951393539063035266659042313068610187249522257756369420433416541894847413133912125029016031118248574124866268034927294443461802397285296939150704743694612103047938554968970715610950056177557717103480348525774057381978821349991449433999356293842262338077091254643000906968921450191099587675866304516127484364349685724868381667122583559505670913190655684078077218479368232370045046303926415997339190919330506843681224967481996364892771177788112916975158776633209748999793679835565027642961572157900211207316779070497628612838711540257095601135893926076649035737053664561180550440569736018628754604621197626593624180345158732082667051337948657088395108658540608801551358873032562105313522019392595720832937247289116012283327225999253840921733182765063272424722546135884010314043855602874008791504832374016372163660735432404309855634396132895535192712438912898871826438714055728230539958054954405236292883003265676070385341512442423660150709005276774302189890575564582201584969621068268987323241288420740106756553602064374126658366584738531977477657630996450389548379711093552930949649250108511640622197556971969909384393662654250068781679065355694816894333494528481846706740797185080222024838280860204411728230834733828510798839278545925084455150256131971101377863407967758264766525468144727595736533766007527785871578818387360242871381966500411689696013711908810072484159324551659960475640067268273819336430924028657012075053650072698836602849607989591644017478132445963893852875502527481396911979220691880580923294298834322474848223066840486900205573364778857979476282572690512707880927926226376949374245097865416986092911753025014220772562218892898859248147075570128451748176169019820847354653679872757649784512839022178562730227715049217294423254240826497253823406242977196518681836401329526530599402152882528619378422822047741944524536872687172633266548341896057867129149337470289016808699510735238542542570941401041881787442882482759234923673976775121680434870056815740485445111769345528674429699360819849326256694325581790364970741845369946920088808752433310198561741371951225596046411481878797207825482849792862358903921945279620513423702397828933029748723901104318766045661069995496339404931176568360135131956283393143053050346987959908346617991246229547568078929809660215039242306952475587517488138558624675151074988479261201731780228595786645330964464607753051086897924087351815642887001844315331895628566372983135604970858964638987220679238656106450331706469490318883319183687816112328362888926024579652547841617461623451136448753850033180059476757326824715889422836579060762732277715656123703338610933605702500534679122534076064843122463467487876148755670526899131283902540500873514866691666420591167348154510930879326938322110201580103706096379698482642909317155073255465618094587161684076774584575715002127341550355735086878922906684590493490722857553964551196126937758325575304995742389886065994811850372730325183633819279756035115054130249703597061152556172105574187873935251496092623288131071262335155083577430671825500008905795127946368960058218593912512413544881922445230527420006753483283529808731195900125019305747777234433871888318371341343564958213894619864491810843106763363695133294430916147303551545831147075898108490819602100763267183447544800504432955357374798328347508139572899302088143694438588841207285308777035841972834608787429851421945768317828568692830612670765297673550665563922518498901250529137555018253189836668476919541886516900813683971811385840350002123660089282622323464436618631047822283052189166203345919954954194162214619835850341721814461566916101674321884091601739669328508148363001743543828252583791879210372323718785138685575935704634308843315149391809570083398862053405430206071784650629136964750384614090432566109686912908945787301880660197542897679835369414295298104349041946354651034900312096451632294400713205183385167998696769437764212437991907385802100426382595426553993545229015588295699040887872374074829258069264770245593398778039896776101306226665136212022658601873867849259359495068945922327671254723353048163310208993050332039935340655397366727189573402608221900642651249467865097171259616333870963563866100003742265003530184556744964143553439282291082483422194844243048038823444190006733478505412705147030339100156132736984742116663757108469885312347214229948697293534444043423360546781314278290926945671822798584995047340450796472251088716848985719961167024176920272856001530998055834038921992110198920718223772682644413026527204916349497948685986609607903319874244348898156533938837074931185632325239691463711235267053325970736805927270908656430223339540688501555131265995870660794174726150097294677189986603759317962046414038698873130608439651521043702708205155526764024493300821262044414542651356261527962875346782600062589599262591891042568090884838485454515914775166198217110974558547182809507643243955222618875982688179858662319426636220686736148283994507536506467415603417358689930055388119105847904431378402006961718495450240679870317496761110273626118272946895457237535604224666484184849972134457537028825863738077914517049619310164831101200975285437842363659548023022921477751223585836288932193864708422716646718384371120480657537020851853572316564679739545611066749257555849769386562365789027452615150953506214674263672931330549476509091040327048368805604186811165756533579373051160182819266089930386031158442431099645536041052369076003226518466285955221569682763446440669725185097069996557366138974934740428897665791994187137576240673636672997356750062006511712025599586593575249915566983033110346805877104134366766953257589617287314717893589011609642773194280358917451516302577979070627267824909027094715840727814365654537830174185281770764373247506435651675566540429244959205652175514714712122102203255563999510749103516194462024723790670751740366420460531348376595169303016158061469335137895200383048822586765658810831508770766230976848584920751956806616448456557907811788855688359033947759396331019840498212825828848573013293248201572412115630633153648756221120372296422906005682983122834204587464449816491996583512748943773043734806010737598157967683620947382384967152909349155576698520401722127219317504049642760069553103908266460983871314179194988185796730803350894826645784783775938989375549233756790158619020773159386281012365018045354551028704883633359320705517054763419666662443152838047906152600309117307432009357861537170688941298124356010254104065772868265937633788898474904401231784416481982841882940506773074304497455892021642085056210981009247154810521260300095446793747181695760300982256274164136311382731315940222882863743877384080781194697902741381799097913629644744055907516557996702924957106120529539175995187581743904322598771142043268316487028552444929112335627649155774287321844133134514921790288574851317486712083971915048966903360176340703269999390725793564296201830947417239161059267688581530791198701018415904441397050664728500177717266691176866287899549126433718028621542116316364424403018352531887128148614258259704880815736145267822581026787904001803617885480757898769589254901759048800987777375179755320361792502873779654037861252633506650243890949718672336245398307542190504233463121500006504038716777761374092505652283068531749520238997044237552924411582224839289600784427159356361026979328715024094310534435779064795095524995592330725626769452396535274976552755230447014791541330956122679377907950101176084297093005887001468118525312065873358584400825815819592713768619092008452683076594588422617738083332152045656599813728371542855661726153254464465190312461733774920797550078323307527127414886508952066778811188110882708352762516900921424012205538488032912864199446857748100999557038597336736573825801751170822297868579648342083873007114027054380013453067345894080690778612904752292638608323149241517726644754398901726904551137972045516644802949530839007603207764109207538548544142864751479738713328932336131297691920502768298685774497466813190792250059683224548418643462853199874773811632658336730659461108493367800001583921083876026405569337090064349844147146503508419104388296668160751759115252029506394139253484802352341248646309239761544850772413582973224488307681425768649943560159178145882021749526296837602954930234297761407895044926655942407839596689452497992847028056727520268269554019755482966758532527739826411418594450761555091659803026396995653514642070994208356869170568907251259596115458647577407374892283036730059716725567353613061491538932721184929031397798364803387520078109420919374710383893894407293576843705306260079800910475117670023049154094800169604841620115812489822643885978608931046941049013167595595046877791695588772885166658732360649817016197838914498741415246444815811180383037307004271238133677541133552344504930914325415101598184790684778649284658446059552496879277286709780228944241363976007683145414420234039853611165458066695731360908062335743440587076354783979283201131008772840409770057815706533617754105014025417911668364043975470981205748665431755466218521931978018759215032818633433307618307913169026342403453679347721319797418065437322615441758637080722527878852636805221269626808382158735726447746982317757364094716845381292167172789032990760169904732561306052894218218887351116607911930988860439318616400301131921655512324438800735022040352658020607413674931320354885599856198877704374938236777405547052692251203281132757054412052766707402768758324225142395688032601371659606631813449010382200368036226973196142159974472787781701897501750194170682972547524596040657529929690469238548158530442544472651859751896164646657412129853171618182923146060713216121895182930218944499163620523691666296764607705015140003494899701052261591479904041022403529059411407006620018055392380301381822112741496503517169602156900448208608509341668717926081564538602832570222802919819652274158650559959246508333601174393481203493683818439696330868387345335478888829848506527754870126656779489297696506083125596416681627680166077871209903203446891616378112565597800481842548082249850162657483303202206280324746038676928557501611616452901801871765983616206680379369398002755213660308500139361705039517045935984364249144416958608145451351415435713312125641942027740637773844117396795099584931454393135284746147201779037877070673128930954956868056440068607641399071242583149582914991258039824303589174171703356928619614053087770430660121241054571197725772903415585040548542897910348340157094033686794975053272265554635467367698994757566172552428479841810647834799856126472083941615157196321827057178085860532115674074520114419486207480500957670873863340478220146568594091597009780093134291023764771012662696151158270335671651723232242449474718974712913993172125843662300248984590075241480492472994038762060274083430066307062994169536350429814227465140901727834794782708585228322730086869296696842564996446856932249430816206270836519134745789364992515044015362736282404200889689291020031713052571720670387669739806514951487131852569340615529863061028276041643691069926563307196507475460306845043544642474286603387403395999928738450035673021155422078214837695365592003087576339334613852521483505565419478785113761637141107891786077026351796753869157969679828276104364519135330242469050160657503284797843561170302233882391459674920199311119612504990666313803710241545835403037231494261841916755035809411143069967425051279444429905748349008195412611934942050625784545626415238395089406893167399398001578350989439571344613741039647863141132411035805318510751595470400854329493117096777059259540776053000619741068766143235722026290269790853998864079647787301279085391031082205842720412007150753288879119438873268028099580090694246667281337156717688337441880038265000965093116582541164191943977991678050281117521434571639354556966069768761529727882170703028847113975264885632347389171647599686018574179594313927647690500992711892351322216430614475014016415143861143843388341591454052610676536337056617294442761098469841342696689717452588730219379471820243847617262797871443700297967202140462269137436336124746668059691102563271611619626534457273160014418636095187092621899135122477147326880252481769727926801297272672337226301688334142544372246080890728481071576382798440062774176565400105391472146208485392312170916368478743157310534765402040086999368618047517991441465852621885839381339019182794394743354523293129175833322106368018397853119584246217500137259151973208755261629481297955227915838403805205782507679681028398158492324831603502984728978865924167760572765139268053515445719809642913593523533170369939074479354878829145977890954589488032208806802718622273661895862353572266464797885028508160696957517289385604862672906280597551770893232350447133208334612192885666185420638690211704181394964042310099902739188710748428096916911198600113241889165194430987644468417216109435699148031345522899391050602431207625073749037206235779369319781722404995774801954396910528623238447460839918479136182769969753517554858393472866056474597322375018345900493578086632694054724747545072606150854648447003362327370768361148510497513651507449375121697478771249892321326274169659783618149837764966605303792266507217390156962686410719335004554108748275562762742463511393802950925328835209541231223927619353401201208447800023277549631751696773704053711364410363768180893496533666959027089676529580836747914979792480501338878846269478497730291554497510978584480976742650704337676626801352689506989141108329132379646366104609449612081195144704901871928108326260142735162487641145741374302811474468041596105236009430956645493191288360723236577016890916198242195068890557972866482647871149645010955505884099196101678707842898725865420214847561043333789924298075065020367000697918194234176525895482892376868622696707424065471159116764814741132799653631532645381327016598667446767869079188227055641827516651952131290437140958344006058834285217101015204145984189529184611097408044439679502891129158417369844050662876197460804687150616631142627886814279306845210842513898241875423075563231114458479437840892698434861281176984251010581079976146628633333009890297937356190944896807188284262729859927004189741849666463350021097602688531126955086662561039039095476630838202312191206064893716406503652804522796845033323697833736061913720584803080450925514333403471371311581547046201537684966208529204473305712122757382879682734851184669030927154936659961052575280288229135103073808611997820730265971350619440210529496230732963556536574939220087176749283979737063833141816363698888558985093434419138860551900043289559544701294826378508242230126967953231869524166119730002620471261328026671089161298047554651168865314025698744828786001860931016065632676304116365127824017425555333581070920147217731991661204228789282790998519083248250506712601509144104373728907316827628015734992837139769859753551995204346748658425137630390794174920088823394131659392434817503672434244689075922002302171207954547617222051259594302387844732608400913398812805099223444304551004081258184100335036767894400332504686183166211141370805896643533337260534902247006235475701024256938336540055520425909702248642823765341710794325505157027175236100233140706024144160783831573414300485651060503564277396821981476209572756774912813031374628087698547015312558556194126710683217606086256110651072588740465577867825460581147719480565943739248740456242738225397251492248804697887063783550443994956584056929513056788790069569053326111997503801078244061670684171587364503502099201511183940702388019501763209701009906697191884661827237019139320750581756433403080663301660342147252723861083575703145893775187271714680493637839187513981419918714035048896533101803767803248364621282426083770182642770594801977871565181192053134363711307547814026179233299278769045135750518517710315839283609421986779464533522844721706368963413701335202355434879577366172916586363222045064566222722387413193397066887570163538719378868243606749746951315354656550153139270540873232162379336510644392576552290412664020096095253749425663036002357792454525851498132469965738845436857722013838819024074462011098828838745151705024258673683768728163339517929246360472783111737098692040148344342014833565757379864775947347874377386031538330330197219451600641398500993751949207893807247154738199724407338787476506633571291726970561544006669062066719376429532136129708116197639852294665636109610878770679564498098646375632556904434174599184137856803490881096110097773252665924989724862283825723792922150878041994597112919174695197768383794971327865911252681797179785755472118619982433019418551720471873539082677213947943512258347074554558939380732424289597647033922490467971771886287289424731235609398287510846404655615329876891994492261033151175588396790036427964576848392140626415561058040238845149150037661044240266526690273183132917012492448352892259089041463722881315839798578218489687652226623800604862751768423670541023753714690322650533903845857885288003173673567068049068282817719950079099250716743137073743190340602760492400407342087012809768184209165715324275172542966245699273905229662335446302973293129658346596019850014635220039209637021441589456274694889914503561380382953918163653632800772910826913742163689833411178983017607247677108106124008362083658399756552213547339522839698204031776364739509063169323344578051635859323844947879198345544485926072266069575074186580449649298784753978142808405284548520621553808300776453307373491993715179802763871118339478479214422038048382994759556071109216173481484090955195983961970578132059988560584552028703546433088752284996335017923050932138348346919654714287400240958597902842729016819859230965964996115457770217651224732967202150235134284696407975167450967036226010416572073922738571478213759172311963999664633244414566561438165866182585174475318491068468250550491001702283142018314151344732778118717831537076362486557850308748832902358880877259290781487834161453102107952349574776515001708723957008257345915690287439904858930921772785764138990637639852862819732221870671653837720729628305539909193553364367197355292451828532718413321333969337916911070676554049560427207283231109302892129039574142607458752442886088959185480873937389444224925363862596163787630660687675132519668229726095712050557369114346526986848854413085696554270161643597079985913568632715131283207811348523869528562215875580238212384149085586298285611913956770242666137694362396046543858204076456003507800925622377234936881480339404158606900964939549104037183897158667434902735419794329105832355237124441875946657140021152938608932146819077298899091040555664111459021773472008812372186384636726351907305063967035492043276795617684711293035854316200041843079238783115256065544344284899866723698278208168049518208442791525833939540820193651455849769452768878008475904313719726857440128049517142924388641491168991842998791942065310047254859956598175671498348283173257807495651412883503062021894957605463113799715803511621796280334097432644242689288882167527406727407496238646844185708067690599909742039386840667362419741497282660999199405863210332216047652057229452425685290819201013795338865300900522747000551902913556945058253288753809019502124934825837280204376035618863164998724036109466481775425592948080888796457921140311521155692698311091392333476894686675999200200121570546317370865852064473101128061625530080506566025484693626721662839166329766243538755964118785521312810989911737008727385125030033725320202274691942905506423032095065293535997962364775112837916264825442322680349680308927686628943644044541582374955722013188727362509280830498218642048073454513216177436178780380068150250872145176472209399536329884100248427744108080393619179998796264741601174407662407521156509207216130596534287364154663937966698564212912149903673270134429925277227616096679642725986930115550713908110065127985026841898608689332047984646517380832976889187451018649262195510086411104453059585537251563568598135607332195589912547983090120896175972562539855090282483489394474540284541601467916837869087910259713989975017614874256138646112447894461236700722959137317981401043153965196291287491829370328717041824852611895035852441882788345082893480986575687276244083593541761585022033058475029750981930705551552239783487072928129684991753317453607628487364851680692310964344035820815264266339841456563382447719957832246199080997948919530467501924355686213973649161359994389098160958848376685063159148651084865931288973955844792679752926876607348286666890435740135490143042125302644482794803101046939502559294906313436981467528365309573988598283202753115770122608539201507939107497649433292411021296838614794435429348057430217295970185577472505568727209363169692538449449366081480105779394629056324695079303911473216393397657690914120136812501995867909251282483885765966754561406284683633295037978806546200066706413602619214923323531138986767239374683519969131789884082999908883201585189492031728048675931105084237812186171364001953817042502522757051319898678256740770318114073049306318054783431782523892461332454112071680529213928666946564362024522310998476195286672221775986309599758715192210672377989199021477456560857480691132493648159657895128597132189141761500310912867347384794447960826653073838077996462656308486967347158116639297488540228856982133787498655375043992490664120896425249825674583678411976347861491279155396344667048416021914033401897707010318723854640609689709900525370811757439508777261651358333912571995913432680305168194341344540632838020061465332482973827008419029447714068738636454667337946327574013898636460267448048720297780768161751364709353665037933797401587881292592448621600714460276313693227989442641971460616948401287740169560072494278974130504439759343433155196558124494080778554116671074047589352798561983307063956144788707654581471957113283371349598507744106789457564745905281627197761969910963691640025025783977268062411678547619627893691073954464146480275349824373436723751130452647255845571367864738118450534885113599696758285383610368130723752759623480625140103800715050853790081231055794952967416331070231476280252408641872351018841458019599809960048429599428497390440197255279770792199524054637713176647487280642928290066321334977431853162665286063377307980900009079146206627929019701706488911991372781573038164330302703136770800262200206063817470082619601439183529845276201270962570030418780852529155644843769209226212781865533140065939186202396454115102647511514064826951174248394147934587517969312612074581526466444425803565738587223168339263711851772445941203882283883668596008192521318174901922571578004211718042166879651492398059792459193187639587212759524508936936415485617962435159535447481720343598025280669786034742979462622116580627420544734584686851208095053666610200827503215909767285777298457075386908675873988067352993282366948409923514464424468317823223334467374907942557018189839878790458679529370270871642543478723209887574500279354185680451533034397042629108239566574437656641231331691602188129180092305355130914757447847886201366897607207661707654558665119616128322038190046605289160604628586079817107389716698410348085479155554669196667214157663305517208586663528326147313835155687452623553021453595530737765381726769147741561153975245926704881948786681610308215350061042494075721844295619999112408827165773174361297199942288966138491915762466477901045841955188775433098346900750698853047279313215117806181617554786179275675117021458912390291308338326597654559479828962254109078638720478350837420618107881783645471878035468484160680189496474916444807235550611086601020538471204974752661029399246134058808641856087653340727457585488293835300425711312968755394032153247071069972002314145687502265853086462031086323316798355981096099230058633494193094262744880874339419866994828174391736081908274904893702972122109831991046987966497294607144669021282773819708684903958155667695184204631316993040906468458170499994130818570307385589195021466498161062489374451958902609552238109182174326095528721647850363549105291546839012189018908839983141800413762648264588161685509368219778521056420932489776416283527430968797498208470547304717453514565540824500058737458270675318123566266580091764033505469527874756371646854621562664209194151739165387578859282417257739766836323505132428787855357520340806171213071735698634030113300953358152649475981058484394731523831800271013349840390407737185108372940537979743322415818675732677510220075053509791326097524743499615242161777057352051626332368855672987231655754842096358758338536598892132636560362936269040570852404766055973455616298706609567507250044284909007085015554329471780740272135794177609877609514671432420809917963535169198810578035950802200264696393593849515105191700333549059791900559868728630617145409883076403281818825469501296635919627456243421890582269142421232338230792775157972689164552954849459118362123232008726703020089111414178456031200997223548924606554507684388281486477808723815316459130991973974258885775888670876471069233159137593917985709275513563805154160808874878003988366997948233786818618207294621842856027172992206491893503896785462431871828349906172333914981949500069793527716368040883453718386099451372180642200158381209587451096916857958357807050058578157154037434478944561487110306568132768076314190355158136890634923157815057253705259162937513307490193372303450449932051306588995346692934547205629041777202182649231491809914029795284028661233215319543419360401042438422066582324147695642926245074400716443438648974209936890594947523168810969634439775746106128576187353456368179497258964532903037091015511665041208679334112164582235789234034406786506809329808993752636731487422857908731831063399552331896401991544249461542144498477438301896389061897967724063050896486065259567907103943895631803811352944041720621840253789207463665377924344383288122769900312635910578135430022740050307915514807877904137090173610942384461656965842667149872386374781426378156165231736880458085343951990047127784081637431191796501801718468012211623170412926993932154604958271563282867775167058198555413154292289825187405972495509664813004896428762009484318706783502480625000317490929975531409114694855849704711513738017957570776009184296440335185430325985981198880058309222070283586020570097363659397485346067145023024352856520780973071780921597954329644011365376494670934132872539067997119094987876221248784560684374292680819027065230254663198557017336453083997332096605893363625910721074949767815663099097956750649612615202503655915238910109800984542926266343135925605577191104567584794081643319971488286640601131429951836907837992176616243157302889855017971237088065080798269322437645757374502129347999977343779622415521436974568527218035737160415660768721737564976979286861339917483894653696104651638587827471381476700640924816751950252410249241720090842892217706032346355571354354250062597118733972146362814861054109225405066094333616025797365486249439482132670833124410105625464367751951472202328687160541051398115912149427734566502995466381537908026518733859578470777390221784656069775204160960431646220560025006418067478808965852206679453357749378646082583327498381104547257330223965289271834825583631452989730318661271123062041118913410998186465511491162281834284024738885779745250852280828516861035181143726338823925822821387319363953380126405639581386674604526515056829308138358103853838989911654708578839738012849306497069078096565983391944213963127631533860708037041099321002543676431540708103171175124434174239302082437084143473813989095522605233438460501567918344325029464867461157778213229363037923562433842779869654273507549683598806374978359251635054716859166215929717344068955501910302843845848505189641062708771587848859374774463969752028695993478083998008431030693226977228421469857295062422353838148755266549409018786145910173505808208490510892294801866879102574447854906405496355623310105642428804550969690585667789142689165212204492784993212343051343386291614008081252118980229930787272125826465965826763127406987812395830311554183797850257129864879873189987127934828102327650137464898257813036204232010802482788336256160871563355602753362938199977343634966051773250491095290811971392567650897709183381385168671763907021319691071991235007743031459587846977863632084869859200786644647496901733232841226540717832973708917143193506823081923380456750696519639068482073468015022453259518731835023541237133542885835993522947624070638805167206886390489640227350687988271172330143815272716435484833840139891505353520076913315097784282950461209488982921498313349551816188794170995297489325726544300302507335758850274371110227985289367631205126515805930175772181117625486619822370222368511551260991429237915019288515130180373925719456851309714547316809447532392048481942045923078646051074752758286599879054385825932631400375044195164918604394421598216304649078946598401399578544325793593836701571985374394968597729266401966130323130382942921480336583801766270114740034699784631582974844042127343171415661943075371780025279251698529494576484249372022479497685727550694172411878185239430938736457989596151452183615452003617501359888218071966869123970749733678822739427270209615789781772298958041560136226926862950066057014977082275454821080807141817883776936782379789995134115250700347514465398556071136374089546284174397974512797137371538302548486397402270942460540510479105692819282426338096965577042350019013331030877697084572239984451960090124498059419011909827354619887217529101378461082031197348023555791765668433645934901402985532254265681690456107891677460544343194022980240010351562788147109450963529181935350135169186529948876271614046382481785739829375337353488809181873261609284625523045976992182912013040121139993440359386443975032296327652098242981554677109817448668380088519449307812192684075392962961009391245140942034195120897739074144484370576289360125610110380348281771255414492893554757110196610169929799008194275481291102496665142085987841851564217456543423745062065609145936923575251782060223383315023674575413351066862296166543110114250572091072608731932517584905388305420618237113226736498265445262913917413420389064636190485762335365071924000084743258666826240696223783636436731577078699848988114997707228543753453504501563076758767723270060015885472570877969573186784981420540891133430259944880490561688449189941431542644988396664965925830669631463401896340771934815321490413275579266142202302660911864161228281420074597384208310707497442469760519302004145819826437655801658703792847928556547373342233868821702171389999218466032279494689786571222209171551514557297657105589349905158646577903904597163659884160135203102895759345059852667970260575374721114787116523526052392787726382857138190303692702958514181518879305933415960449097893167165492474631342301887291472880298096430511073301892171117820526933246853988159783156546957996767560679816331692938034261382837290644093202335897084691837679433756719795447516624312474990111109569671878191347278650717368730645619125391143766354051741849790206802914856012240135841528331870457623184577267201686797274915475335980712086185861561841457564581266708039373493811986050255800534504515872826258315473772745609040824884033599485927682152565123795457058208681898126538438889542740541339683432190517543119216916363533928240917768300460757826897545635774969677633684391044279619383200572692612629857033418882134054692019919765458513522514204377391056529415088205963123091894059836957090199423915687918038618534469388214495425336652596933597181260623310635976781252178841198475771787410744896687246769664979563279866956399311805965171371317928055746981748477074044816031430018518509689208796403074916370981503799151583643322773482724646394746719780475817800512443436104359085355419255015242054197246425791306863620504474826267694948865573779312042229636444503349508228931519866208494558063698139639987992038782399743353493469772216364994582045512655581819599542343649492113485895506545620281411591942255575453357078539181251162334963009290356174152131112089423073442322945347221551544674275782008760182383859237059048883788332444422347484244400876388558302854836504706734342237397992088729897461758920942269017091947994086944577004553679157478456694693167199856850399053435563692624146897250891072933473619647866679319304775404638403362536407733945393282310936953566717824242160441830170475571769777557370808084511431134552846226577725764121301074083983021281223672579571213304934906325559796314268722478730994951075423761767544619999601570203842623289940552361283271738889944388693010987217559498075048934670871277258632297628207123249244263212744262868896038979117314352001554916733859450053076883551653343006438489777807564731041497756636567221362397523330009915926095917901870549384877116061737640119388888869277591343702068965938075059910416402164678599987950103500602907333219346062520670960282949365832602166775241707816009058004448360203936269180434733454743026401871975761367332170369603411276592161046224886242006615403304092034739710994110683375642802944322385429322821309058849519780157604994848226571626091217988068709964198369911823903987392283524911824996131107690622003428558461485811818212981513515618035630344047587827165127946326062507321015749921045527943376217297114771068102548904459780125307088975793393157207636144563114669246903891198115774836203153349902160480241396666479314366937907148925964278498718559225909486994987218215427466171218277549460282812059168710282931908263139628500604106866534698270703841170825074950469727817794189909354844488770856937595089977372117808897542088321976714666440696279632284246149456285516583743298052131196574128292571553259318775914281785358270721186865607083541107650348348574705645279305292003244314779240764861902030796239462184360153931728663185605509837216184575925717523513540804186418014093989786101084229135298718410792023434612012433113302293154846024851411765658117160407050965211289036774434296186658878632824142523156781235156000595098283700353469249527036404246679727673145124788415602960334268654951866164567734023944956667900644825825910595503870055227242213263583512003979637588557069680963916995929416840568492720265127682341745898568628522795671991266269126044174949719705734273740444431972828969032694506140050457777595932216925057437793452120315469121082352053353645174896550085453540629706818816312133603311305874712989068585879703578959908953045633217756767558245559526046019126591051972341991655181968287043319749059662701306560603533894894529917556335951163411754644920659450417502736766701836272898728046309541082134281641523493187777154550849555273239734026464600803621931383839204740467670893186186609805884820625904614437240290387377587901168481152248183003410086145880498432941713845905223862989663810303030661452797364566766432873870771078181630761272703482176466556918679331902443773851318755193963089667923639685040105196855780503853085332455044578127027613869191681413764339597994091671714808059199441079589386931772135321060033934239800598281870217753428789139199880411781279652001991621872316975912532942574470910757137747379872347579602365759186097630047386949650461366427462654031466369963914195848568714380122862427398293362465189460222902594440328554727753912828502187443700869418723656478534467939287120224185750401311508710446057824656951483625723909229815054856667751023159305388559847404531350854283454500782063538345346559884762909331625575083923850080685210868598213098123579726621109714095535662616506617430335555317834205082491667343896449789013036637217142865755489813621289647499857576496221461397063652017740384668572132573332104946997582783008368472765736346138459790732833795898517697149861282302924874461023980139376467302237770749771086309888892172047704428557665451348542713989798789541373391001882921250321770675316103099570451735566701638438085493564147133844306657002253567765072093276831232956499953643267332716031345706935875572528653199468275914866873026471499176689299626742026577154561675685631753541793767733440987107257532264537366023674758764440029087371492700074629343721590186427221730547758450870480277031368765927662566243823804116946121184812618580380031380836484530038123094332042367725335272066578284692753569675546806276039835461095083421728883369747316637487256676598944716574833611313663246880201874079964236837500029901704583102092215347331801849208735169666197400152956285517644866506804047002620359350282187533704107679186935222274364397602522133456608480576853036043439174854242414481357873510118264610714803934693159191408693683379187315000939645011430121685957478945650161883633598826463584240859714719157608003295128247419152289361265767214504153793424105651210523412230798056603202727127696086000822559271113495271764682084626683984447824983757871078810918904510112066828801923930988970257685901548356198486186834643776697897282482734872430937953466264323894517183065877381375959677942700446172590844398611407199181773785862678006996410050908575741623862120081938992433962494173807497776699041374415231323912446070652356423468312660844074746523452874053406021790178579276266751579884527783392498002251118967265978657619179431928860763665917745445987735317611021318000323573082337065592077674104929680231998187810964744521597453922330021401646288245351339283614542413523961333378641634953170427541966160001342130278662948021130046546131412931473840655545022539943330950933275583277048736678767858895981556949470731493473685951990154764065394274161501828564783041973214534699611002464133517374723463188789287759972876868083619531748613808016759814154169736429157378511635913611214768853903355416209970384299591252106010274566745185711021459813665767823311261485772060122566244227546157328591839106192008358121719472912399547241838622229395912887626146848321687382493136010728717296671332838976587779852449404640545377370064831064287135489060322489643969094768660771187228871912256436266372595662400311594845085055262605810667314734809611125303183101073598425708622629406732233754447703133478062125202362131508137296705821541574007950378670242833915327899587522462641031321425135712740708830149541459497998992399233818558508740671044317488911170509791380754709396657860985238204796210726495835679081720240387546831081267943607460179121273230808408026671567376851578519287765070877473692635920594516467558355821107397864734425917836879316630114624949329099066355826894382551164560323298037463925879131514502576707621446858284495459821267527462430921201025754108325558004716280498201904196310818592068322289400819879936493526546004045569963150459525976473832898012662371177142241515459138910307358512819375224896893100158804810550669843757547461509929863673180984474958917605389570397119697552988500902237994426028191803237344730249666790143304677548637351904347329198645879903506547390612105472548774302130832885487333214363901869615210459983334554407217074862937181883315801624410812115967723288807387296789605499134117397419454393086495884972788458030373712252467792903762941460148748890652025881480891002305198641501837733991322164202324739800569810741314009209653621514977670381020045302484337972267230363989138838771789139670196656063314861151603409240368496857874273967211642763102484165786299489123647258321209626148891195521888842720251941104954990605668940682325029072607426644491215059914657244790770873441429824217207124428876063045698604288077977500297194292759403987795661471688567225165461017201370822807667991825098152330351611461632848608012770612157610766091879868683879252099810563395855100392274065205858311186333213424444823837195844882354591603644897737767155151967647418088512520911665313685018151976595928198717269338013984008431933547422863185025233691260607595188867894147376265100756097990405158968147146432436824309694396827678170853181095978531598976656536382039623753392924721994991262777226305300133817251728988518262322528939518876714558682822531271257405156929175657372735887312149361995147664981842105147113393042935253627202863345016512812976519139248174990371713173014368945630409161478340652053141042775575304183892886144094124099257527381212373143929629345616851628878691642003829798625268409777886526924075181657806923860033560834786507928171343995623823527769227723530752072197429446522889744631861122740583626709291825988240593155930724834580706667565247832795986762496485683752533153773647804260852551546889842158166749399278429938000431867317779844401813931782161783490227129542161998962597552472128652939452253377552562739372210559231770981249008857980981401788160524699022510026501435697405394218031141986388037043236466756585417426827914056690490895398758440827930077670884557424122942221838987829855097686291510607291904928250288240201420205540926466239366523334318083989846443246568412755886551747023743449660643483303312351238187872221363606188979810378904025696350846151392627877349380994087260459387930937790712982620870326364977967656193668525326795981570292921737103920350619975037137210724930194694936244868556632458432373542660549587932154231190366347463667211586208364338479578877713125807781825389120964908539490039726339102390100554183142934806517332455670304707591510969110598725937274541610552814116855117547750237551220600751532519175031624467764775780050776305915700069960668107079725043833726833186091747390665802328176516640746512490893988048400939489123630223638424677680651461818531428941443440815479982302123317458282584424478632615389364840485126137840910607407708281023445578954152031701377400716181340453880234165326601135633317242917783430510141432654502848123229079525527521778554035657590727101708060031482304934191779911150629749482544237155035529754645061615611411866360954366691889748098185548151117094233885134251914859099436164648511874010399512049201355787824090757776078232289385692398915372092863080352125659805489353488436766399472844492011670731459212699804641121756751095366960953020945474896673772405953389910162486726617091692642264141693698017560017736958991655279878158019228585372757813112315385196272460998721723739333537586665807818293303150736248892839532395321397741415861174224174924388983332122989383258309522508702122458933661304384170029209721238599383031683615464763191335193109821982922068943002730687600048104075690610357705833564304088771009747460260135434915216235942847157300961728567517198301485229079597183805486618688669924169716911276461207883707548010442477706625815565551768020454564147639312171050003627547252184251118954014526719779864559879852606424740966102768976310168931164088686645773361841171178554789850015890842531042843265565700287771121520034806320211242172877590734264509750296702216312844021405072865984522702227940535190561101788314347259083361562956873046690702193322054931625563589895204734176319843036774177778271973041655150127844188561433037089964207376110191405177679559832001420306535410988461391921729149974503948527370300411516163315014899969113536408530744787261615115034371068262822779002557357292690918526415597358085187916517243730062072859642886884828779639939438855881328306592013818144987026747299816969755560382973641650287115095610128674561996330743020927201642749481309805588906431793353618673178289775248426578921593436739115554461763448765109152515674164556308599583885406822373555516252113745094453989091438865081322728609633577664706885071468186400024808425555874337488133042672730952574946452552366578875280586186873707932360056623565184461174348400385337102493518474715295349216567917200333936994924730591117553963870779676799460669525073820263990806733976316877081294008841447396307443501744304443465078069478870008355395677265808909041720445668678867508084230573746771022210367569777664887619406529640586634299599593663392943363733943669425400118047627715480512018289312891340117073893628814666209533016141894680570215181650922654789802570810573867934274281390821345552721267721854334948181834749358264007973595811720369943190006111828200259919507206973596941729332196179560391935788607183815844910215221193246413111848226117200555446969073228785191935672322236459821036449765698576412176329695549125055095136049897059300991883922081082748473055023790384039390972578794210461943427823514774928911878200026091635691373319934595530790532194705195160033418709950060961361395562541864259703363088482483164293348763453060331293878340585174777968594942303165969017676451657203437431995337361651698296739295489717893588372559318509116196283824573899330509346115255793154267268476501674380563899676941868806729160747162251525833137197037252052800366901353996353270458903842577910937272786182274896777314534568324648227338323711685740694085365555754797665391627536450157935064277497782809012308223363968729074170372191235794665738236751882784613018772764883549997297330842222497668719083126776459048662380557712531335940478118251933407430997013993104035769656112317075168295438567025592662002752537345344172931245753807926342636824416597667686922005839894354209682839005234531753677453465594541759386435806272240401874237701568726574623266973893940012052985517170823177560476776868424274948639167398338081958695103105638119957603861736046736404348751426252018389025847627340093915451717547719333832409389165923137095180527093076524035147915067685717785223222669793732317787402062221833103579347552138723782334246406056721348691503995479561963274583280302537652778756418740827797862453080654639459898194501605225307031383797597952910204509950397598116949848053704899239356327710320696792721366912238029059999908464727432806724084317816965600373606119879412732141232262232323852077754623471181622795173968991245443559451609092324530715966719375557257481029384391863546833999126830866903671576758261241758889110292679216506629748167950110030430922257325443178243888587433418463887560397074822133383296925339984408754711107723781899405755987241034038396095480301070250668409493554044402510543108300886833692600081598155762430247085016097274212295673387936553723445544260526085062771631181708856133649425181656804724033516559157373361445139941781814958951577089076535899412373608169670041283328400092571443109117867215439952194064125267789182451375218729904700773873133543242607875331607478791666563362078256775557798545996627790770637368278996641282108066520004868801287404778041618131285325545688050727463564165245527966402118230994775750124933142121188532771175190858373249597583401352887505479822161454727725627400947240583848008774060108307384855546315436212638173443156549330391009958155829256264731682173944898990019316053845593660891408265804737685900659450894157497450852807315873185415647346097729745624375121462030864751800145887906600769478190303250028852259587971563300641936902558978380930003927625680990985361358889844144524394447087588407746800311805380202662850081017563232766798654996720852986966437758424402764783605897894256594416396607416116570160916544756602156425760180238749753307686617895147102349199756003668753901718709702230011465526722258561437484568983352360306859979572140499448202745943111244275150288909460797951826902602436241825344444877708179314471143110770661666623448141260719703268681897874530137487017981021197507750856245952328860697462640507312956514715820042859511635124291302946005997120237828886861790433863604936053148616861996411604590202337122359438822879742139142126451539103111227349757641538151589624267556436532345276665759256649827514666285278753017038335903534177041381159996412057411245915928614624690917109026495005019070027587146508178762057498577690866827253564386796277090910662827294572259613545786489202731741908675591001501323907203041720120237365575659886821774608084153192717238109133323128703996211061276247415241877249375782562668177363887054948202864405324839300642487753041457974410076802545734007134853562210724285455529376172449838505780144547833779875439927412474967846744411498478892232378106611795966626219497164537595822885951186817284251195541177792703283042110142851391062193430074602981434247873695974114598428962889960043250926405721745321852390514995724215730476053292031092044086315721489202661488662934640334145682517869400962783723349752241805683460414519881233337724206134252806115178710294708130525915877484355739150822441699915583147552399851912663818274852751468118698822623494847174591280500281953284961875203225101554541545370024786713506368401745453815922496081801016594999516255036903780573361698857157637851135239250355719513517445055034156979890646537881762998185771323619153980430632161123434276380687753195208217260505614047791812890948115692306451863950328753374737180427862405955040816839274024688523337457097777659498834346093957436084618564944420854286866405260620809101689796759798318909556307585255401727896243123357365491914039361908470554723821855534150107580119170239938024672883692073530882671299395388588785467844982811505098145957227157028655490590196664006683992247565526812128564848490972488765216473466899367527452148048401002974676939064099414208932069038437710759727277205212750561488375001218448560812303941646342717599176630917874899290542918679971083729935057461313745466907552973624651454684183026320199405684025897923553778148886019678278482067001024925137214884546174936978759481144023382725541105198589290127911141414987741408375951756812792914853212668476420085903565977801586559228728234743105552748278734807021516238523708725474159233812935414912883570813054774281754918795288978098522506652985183432966831634366072930583030847222116981445263248854226368109553787636389268389329910161330634592018427889283863813114544137509535516646687247639561166677659745983821645444364553683248511662343413501313088848498212340016805132661359202669352458792611252951912365289213086764118788844384645944237030266184514819306238379371178399877774146800128546754609321265299194543644970584199357193250614694943101250752619921165074768793590998588243032417758087861246366766929985958032469370510238275486472401245425964219202518076910892540890543502378550729621653547365069714096743876838237528164824313563984959294076740428420579852301611626731646496548358719967023427152606645824838445810048915427117308729864214494768785853226314859344854673808827564413911291740857388528805846970008299609643241078700308462324063242699640654486267132090788120736885500307719465610325105018922418070845692065948397737458662460833985967311060967108185965714981201580937701593182517731004349117477134165216771092101417771796151059873452243816946619549393446121162006710437819231355187509985075505566431158705144732394774283557923280203516751576759010420910740729320902982015616343470398216750862074174822292035543556852474263282973215225281969811350170443575652876830646539954885151555469205164272404645320538240411023955694563606667338967967884796642224253658464251602362020611446110083589950191750073996309165421172529304383883806003838755457907675262507013641851251145370105073269238694183160635646835322197208332792267387690429748545166413523467422948076776257997270982585927951636585451570907580922623056208294530626361547534159779930370723425889989064938051814072948490488559113005684917442329421515089250754701411360504683189907904762427162986576794857700106143820928537201746209117847378006536235474424801491143697753375577067660059743083006668444648153093303199388603723085280268638497451900880853776659692393408296029709358156891836669497644597540640930091554789554004503734951740489489113146579094647781380212280283420927793194143965539607926090225397259759012018285492697541782919154293077020108180986933121640596446754531347335923481519816340301095753014495473838906246099034593597911876794706035816896880967382467284863746361877632148977867595463582935315463051029504551566986663674852877452139499686126304243865017704886742189378929268745614187298835866926483236805596567461723471022941200668723981315546103942497958738838559855431475956002792964576892292626173706280378445422432512155780836972983128177006992659092589167710968830324734398288515939926317343050667273991393648558835938047674840481390441376643623808571093234865780355182048651277409693631528391824259478397006375148809909586092482087886132669515029639968419462318845153615352839153112402904077253700470034788483842826555858514611864372870134662620504481243544145915539719576489297192156036917625038229610624125701591240587471056066660638081806012193279135812557057017729630883305137127528275420683294517645999757599288205571431019107932313292791607991770675156484892246346820283033076364417182073781448896961318442102603408967313473443173781338448542188954052465366141609395391864831917082906342613765361756359211919591039039545152411232540046990671897602148114971926124420481921482857998123767650647345062772701308464553246178412762075304187351530952574769692592354449818883089956362287810121476371795624026364725527830353304008542708559479323854429751821492103692893752619369768091787989917893499583738806143824429794758970441686677907693545161519814087872046524185792178411518465973691292826164112247980882945946220460247997872060891225068826154964077524665013294522876195798077336569642587615288923750003625536218661022226478663464133620870864046909467842012504841123530354260982164637540584269053495730499876759248962074686736873906116416020344253800857660315159065419010806899537186979968360594961990242066115135074679061429783011830492469372846781581582563245379371171801724794232145420174154198352144132447757158861251513281890579289466119200545922496929927098521853654210959338915826177968881331709990113845345496671235927822694870510950162167982806070984434744949371183087809726846425048367113802002589438352223022652114314275465557950800326457690258970480408173335073017005810165839370080354995142139792057457105981790846687186405298426766546440912466158291952760651785510054826119893025570958152080268290904219393825840150205092503598513901490896377930252769284908221275353474667494040298322224814015226386614203406704084317806580870449941244837429567197034127263393741696596410634017288365159111845063402438137030453951512556279207729327932746737674388248097389267136587110567512241779267396337187833491166415232815201290548843960740002530129047191996698448802596804140771193004083591380022160369068071667736769718825046202987045045171821651102372661204942175766724199447506525033857543981462592923062044985385430415679584015851942710844949590816990240147582743349908720999697471934918666069195596322606878925457464967964973964419458421498149375005010742569758171996638944635723957029424437525848654014811678055897674519448543455162770730334382925182336628893148967491768173956886876601777641308291121868859310446058450844871906988588903677576894216402141457860065659903388933464463816738206079867218416153660930024793678495253449970760127627240651804549450782200241255733020754735956827856155691802487894792164493718091925353052401320303533174394395444744085730995845117449427559474221398891627912191683896672629744574779705646750496146953723510294501201112712622403095177313624381935717108562452305484620020919367125849462708375559893371329106076129544614230160760721858384040313810575805763008453429738031331773819097993868334558664482264190541677686951711038629709981058110247181124731659929417518510718542640698327782843487953393410053178960637044517459456014702042087901146269804474266958663436143500214632481862834627555475575069877019906178183609153829076041076424930708415088345689090530571160445951921173893694668940270600491835944561513267365813422816133383612336901188190413521911287865276855770134539085121615965550776333838888055666198853662099250032689921044457797358596792214944422681346807968641137356892947528146595491568499014591594719498142140458226774724931407354869417147931611308242504500019391201308907689052807849625319064998941506749798046652867243880674324580616642292417503547400119704638580506121615273544118817773787471098046928896788614963662083072276365260960073999881901494134553227814456084902628660941801732763442498160108426796793778876353636665764766537498602656254909084151448932100621761699529875929731992380255837084223621451191567265013780900778395698459333957702697592116447328293699602955166424458281845092259368664462875727589255895817888431554758423722170145833064443881640835752248206312338890831689191297279868953342741457441890926540722926118794077116627601403601690095849241206337440070843400366342448439450097029268500516814639056870129546568797791428013494175548644209137079643620095795031219704847793243700222121006344022862356948602848300768821424389571732971602294821314550485811154090350065979488145286819983391771259506424101857903685425487321091350939529008613022904349984987276113913212829252947528313542599003550363840742860639093667362614352394669112546438318181837200381523260017861262007187144468817334305697731417746162288240494650496657242067451085979381356614318058794344182121320540570179626827189127178680018165601101173851288305853350121095217042957698088701173247213603371085129903088034570942155845683169672232526665790994003074004706175943674037608453141101161078765308588500186041351041638833253587839074203259846758153333158303562083952806890483822225859404349070554184418882468571323320030845175463387530011236709604770440551480171454049601786857284147956136037576590290271340712502446942762607338636348143105105807813159122895900336402354774420455236505006045456803839278876314299473655096927110578123156307555255314121378430865103607123341298002166440191148704630548828509196811430551204479467674183551795667511060566690534198387182392490884097516204627711021759888670540311459482544148832163061521380045533133225075546950593145329838207286529168758524065235357116138563660942806624943001217867553036023164956776729350424194506380897750425418825046973677476519313095023515164411172831416142743228970123885299862772742530773507523017578795704724334159406448044506564030967182588686326604601406067732480613963457012545249721387608489252225404476441948914019316080889177122176643157175417975063331665740548447619964784759088067979050872946171178534999916527220182295528139854866861717616215087504021824264298088399908403462039579409985455588106605192185654562393425806574738267214420097725359781738918798609528559781403722860013902950550375806112079696321422729513914890021657673168590076938484943274046683279042088062320193210167055025602547370888142614496783520627512697695962793424267396379399575331752990036077693227386290646239160675951424770240130078336904199841173721131043405277222814521239768684756088513986128374701281018057205586595646764399104659632188619620627710465099990670909681131691071606203684661164236880807762616768696926744685638535405930157326350087565570086994693266046654713097565785202129919530106421006237785965423727409174669995091724302859730696597492754723822641314557518648289372314799425616602113730013827171439497144392161817798853221900781686370242809328641218544965655529227255753551038416454866274765870775621557573457232622720430050645887647950493167491458128936655904936046220921169251829421253716820335575953248101484023086894101975389166319161875803952295032191254047411273761601012156027746291357934091713490612978211437460376080567366848760310297845916757004381693502851063355419841704820067365473347842167662200633758911870620430093982593288185998848998292924827562908840044774455700549462811946505101300814582825209100961487121249819983191244424421860001007824465283644686571117063852958031867802667612157220615414830391266239329492018817016809524727530969678327113799480891599170294368494663729796778807410004147784759989639750496099034487692504526919207572442048809553535800892204167820113897867047204115731020964962847777023515828551825477883508399767475031047835297840763812067042304084759800176039668652355480512951518078281222261133452479486868660540498856102846693692577023069927199488341011189599772823116122948990819557428834286484912449432676913974551948288870335959979446007991644158371406658922445831496953864233323327919680007972663183162211935658831303508807490915325150583245167579316890884040774906689641631202107750763706699089377169338764067283355763244420464824811349768986852795284664260188423785149292978510089471556517200106697901496318757390690071325963697173938605424241264845669006746803498085983173987801220966322783139849729031486795715792552162104056315386679132544642042401737160004282353639931148158879851679311335324253366652047676892575314156349998029746021196820762856634788335450196078609704611534133358073449298272472186881298772081821110770638885082171731861319824512822434591481215072506399444183123613799767358657832636306834877810635062506261434403164436282779629174944363179419590190563652881034307217332186604032824782167882162770232705352652949064740439150366042425889472614044193613845638835821936020590063819308708074001923295873590874020253034262473148342317735488690662673593545269926957843941243587688805119451484025224604995337787770540649224818393264498954536921770433301382254850943162045497767151759143801465606617211659366063397118078052920653336825969465473152473061836545432169195027231479059430308721713673739873710765946096319936988401764874083845182175520935115264188202276155441252418476183272401715871228598072621068406294540377826492016122895340687419260477783006230199657671662709944602898190229375998880241067266161563380365599239944845383844432377769996016674464447987137614087246432740992294666895707109166567345305675747128766816549312692287502965936817462648724950114849704162333658865028217005648635854967633672186452837899221852963625215060236988399443491706272277661808973764029840698834607241106721830075064241058360116827390666322366436756198244576772579419431836839543775422293927812201626208113354316192147923074017919939374320758488856135279223804599664497854359595019122905601895150443917022357588233065264500150188185410044835880006951232090639430452396760229698340117971664083922429140851307681402700290586257008873516153346934356884810066784834019027742474110620175534659389970981890849614696328878614496737258960074460292255565240267903161438503867928312911733685524220647199670919122581943954229692199136689528693733873653675382251721001582495734406593654723720763013219346409234411714727635064096370601079511338683402055688924853113931687992491803583045240703495846707904006079498237900468713609289184764993821983376434595414853535191963132376820898549593000176430622495028719386132325449377873403235450214979036340701442795065652702183876541894951023388183281608114852717569747367494859667981260192061621880481604741277895542822811458729989980362481955680109812594394550767173996550725134743002354572117187263807804276108107897968732128809529027087835644291648811826415893976808263009307639665376313826041560095510684550351958577626689235785668215494535028668947963214027593404946810744465222798699229010693880350316222506239114627603358135798549840264307791222337163797922152292408704477083678676043066331261917066983645143722180969267941330738362365736812553754724692937094737092599244247875226259455747151891304468039313782685972551764383053557223528562982332680444073022804240560104099875657965720205380566299143625539868562159029504878267830455330760270795338073513782554714731248757686956210089613045349910894461787143425847186717733193500245956822269923146984143793212263968974786125272672860025131380891341662696650960900556957223690957012987709191116986475920127074120009794950776060594665711475780521788758187470052752144667561451050334031135294659941142079124724827314336791917467333045799091635902980489871221276257177078256862618646381502742890205048761138821293727185684799416644326920151440757948805435891411599825298636540875134082679605774650116704960267173816252293984096557884323296735873804386236761216324808380156227404627264993911196416737384757253166654317920847514504191155829759875398665588632697447099012851125213714523613463589428326888062989186463654308137687681227730665408723967603995621686378876725002651457836939409410942828132610095792380498716272449034529610419429673106335419386135319853047378083622552890676774922757006961581348260963637551974120881374566217006640473780617951610823245560251296496683036005486819713488688025616372554646239622795677668575555096072455967219676871347265688636039402542241364848543538846374929067700515955308049744103936298544928164052729473179788286068008530943186852572307315773943610905324955109641942966085108674859528444532013418535718598218444726181737647196716836739125049743449020444957569630328447854515307121372837231596666313420880347402958943774184910225343202302098293355033941961122809167836238804482345556212704981401696714917983345789366731592221861213075055373235321670953344912797029016684406412677567927498482241318725025354248283934712175574645998183851969907171556151540126836147561494493223813703738862634920176207458084755245279422065496057980530333830186748163492650200673836756167474142265007999196488617538118641410666016854586763089865533701248636239035701623078727718278285073900713849541043244481344154527714968078350866037863535860250226405225413909250705574376403489745723677619632156554726804136083457983914315169947980617360051207432622497475314646320310633107789163911420645511148138618867977157261947240104427673882054175559651595636810430649010933209072576667916760700555758656904366569731609990299261014591507240764362766856390688151662041180080931850577059258384495844319158763866029658375531151669904747772229813547680461614136666745776276204313480228929266432195604102375573911880229055447591248829154943903485329024781338099158314905973243078989961045334493683083428415860091425270145913269929574220008891710800454705472405265316840936999164296564780728108009294833254746167166947492306059435272246292001491408468516406844678811131540846068673572271634327549201947979023729183403298579699868063525389894986869449167160444821439386853639507811227036034659808012152139721569440928551534171882299445275175751247919093079131484469064116565298510654323061749661300766089862163429954433252013753014979009978587737685497247947868499934486061683461019825251759214713092529785463222487730057665400659693020628224982013071633917463812610842286320564264183298298978894342507800866262914876054962383570323725310686762177575426594030964230265288019159191379782126747830308685724892882338932433175820864609520598979206521322335224367053181504107074350392447503152475332946894963442375075020937326841459834984816789167360465936566234073656353278982444909720585691407827743426630675517717900212545519299250067243665150703541528464496591481845838872420785159447666662775796485943920390840420357879590627748679285659499973430960655373529191074393342162836953841961747410458117822482109865221103260985818193979859854996486042611664005211260874330501949678482155241590579851914933181360409839290893090551425923024366698516733074875013665273091589963471818638080036675798548948698436381130246339504687457850419447686298476408991187210040066303618368261972065003488452759760267638789707254182896664572114859828016870239414980711163774540819029329795375714712065261831580905772298261606124096466161454285750666243917837280582978610451282926083981959758339955421735384181472732043082653453672317123744318101294329037091149350590406140584154980355448791720397997692613820787866307518456261260702023389650355317641720961201414004792325741213796576052257455184976846018396956316833997876099010627767911735612701706290129023127258221283681053757176678695430160863372235015313303131583642688757495729641356659615532741267104592893597016857531758859611627055167544080655035225690526765158368659675247016523744125337959235019725919073420833035577914475487234844138134197036672231273296855951869191311820255775354303500363972189367420401603964063266606307458199990503602204490125967629999034536161310494793153738248088522642870864667616115289607782399492863762792753849095671185509590792187475666865785606225937550797124769263927274343243832428440231154619485383804126401433308468330005157361574076890527459100135050838766500837005453438627496467862567590486923194235469999097611719522911423523434515913613878622300837545408024495362061726153391096597417257379962826614723059664292331636543054889020158572487886905570937730189910154033773692715919855193142952725098796276394949895535116139085102656788625172283911562042848876900999428413115441747758032571421525508300014004813704246302826115727914477893168431625325090766605447143800011498637812371032375880146640154744956383668367020036232853813308785797088112473661001625317815534539223690326019802662600200241945450319306865234856028977098497032496756895701401871760742513346539161583339883002023245375629484733376254594845153307994489965738481863164968039311497361195117844052985366847957807115875401044225890329800799015491762803677307060076656417020933923722126789394248323950051665038645840875339167544090464671692356004735618772243368462380057051860654902036496298179613839626833385540903000149668109336636129728040847512732794768092283924456472194042280015672444942195998102243689344356324390509473548719339762877173254009107737975496743357428316511459055316410359994117337322543146540005517635845534018968473153329726006016191177866715784936619620450938578503767354957127250530419410140693518126913077346223544804182373456126210584125435376515291131086971210324609169932832753063307276562059649896514654835040427124897798036919108138131812476361553016685359686060484596399276137695298928785096914141679033742680793547076884725817036987223788907301384890729074632088293596197894211398353446145662171768818345927035671259003172134902566555590085690079447152890874646688185826875167976118839810711345453130751028259506580667908935083544127352494983691627833554724731885617788612079286246224890639537839517339143500270176563778515438009867228798262266364517264238717886453339249884457499006891528314994074780939272096606026540000858813684511857483804306949169536527832787440298473336034774732927965158578266387617286598077737971113932976224074560024847884831625698824302868023582986960596729195957746198876580172752113470692045445882068675467513008582809605839940054576237224838280940671516548705603274214316170576898034147288685165932048277987356315378950654409353062047225118122544177750705041409600486889177634794589430745514234324059010335648904155195215952932601726325226469245671392712859742332638431993437286727173637845087081419926608522831839101370768000323872182398484877232548146318507968137415465375063697393855300782589609625890974654302989002538065166793521182568932191653674768443939438911032826321070149582640879943696599512912920006865362608455900712544204534457524408935859237505338558314231269829059081214157611122392851620894124547539121949299259581048013700569719777913547725798343155213186702250660281681380867081417623016332083149591376223719692168172724190534743547656656409678164312064461375722895311804370510638428648380175565080704333381274889400874954784011889721439713479600978618562879371355671484553513226940127715803108332692064080941667925248206083160560194655373431326508296981815340191682823025106658674037435391259648369806165388640221783931430261948526924781700587684575204487411061167528007774185399368259236778133397703190516481940491737420019421170565969921430215966211139520585656216645981314875621509278682024582474597370402334770881575774103186699402316040817951187962341443787159825661948726201202358823988538753654456999718947653732540798710714873045029838700928626797682137609802849976128367528443072649103288729940384077838222717220667244646493653685632059114210337589912218776105389888283265164511177129532325916180652728293589994812420796634202269908630966898306863627447786980638866665265249324251093065150300595801981241836823329825329501954087725630277714318926513530351617651581345201193098707656345739865702536167658396606944147672745698215447823898608023960464131799445456019605929978428647874301327353521234137445780145021050411798002477777859380252746602555276618198068864335235293722209390912339011557291346822652554784491469779680631401336478263288257273528996039189014926780542557572332205249247205905231731144643766329961978860636499835364041460921767460527065803193586130059056534779973179076905437791860560386487900226910992047390794705454068099134701019981911027588732233339657240996648834163758680251760794388843117071909087948680081464075449052629159994765457677192817269846511105616732861821618087244362006139319759896589410688044723650408569438356334736968011724659018929366976547277016560674246590935922581949552437243469643305525432233520839283509097542067843195041957278346242123155763855087541094537609263258836739962624062674046749416771404936774825331912123374335354340127481439083432102383444617740101698528915239732972160783660527407186735518870015348653649144930674235436483215235553150559398058280473052989933139944532095756037476377788187442851794537737195174069954236824432397821167634944751039506077938160575439992197924354448859901564460566597410898195823170804009597634037213002370285746822933808069704535993701125895169856132119361060349458413239837095576730049056408132777410518300534746756490459551569911157247966162046249738069753293305464081624546271620315071797211221288721596216630258314826670861171000462412569209824123114353950877855199551042204739396664445098895340086037116723882705431987709445159496696362083782890415569732315538175897297533186459578430499426039622858813797053738266811814934479635210497867401063337587430835473883924156096763563598009683820948985048970342103892639834026577582886755849934533064268121394943108545326247560949558505523160227753780875914923486512634768688871998812544111682144976026351224553078702654204564313193856411633551424858639718266660503390864189239715135500078253341028826492479921366244466237683832155616064743607686942099473020413343262131816521977841019114340268547376571170946076244619162177105547501460192584118256946860058725459301806702042830199868394818102675691563489643267589945983597623678292434331746614177701969864163380278517158043872090551113982801316383963974274914973274277787295924710901605308406672061101002026490140046313099217312180732234783233307571195154361115513039369487832730716615498424631373543029620640754287122254939241564957378785683966922648700119147186682238847324499322880647664794438636634408198280804569152327026887360582176273154042737312598101550729818901305042635184454842865762142796372801830344951862558117334937449321259614811893900274072848800147141972495400857279114630070235724374811165582585651209958528996314128879199143097306688775641150247739141028539431151391946910550522598201837828319631647639957728307757093553899347449379071472002185480306701568705034877162017677663032157742836708269244654561823838105690452608487447918944592140539314850348328013620169799587255988575985462030914205798170963836409619860161809543208500423536668346653853167309779049261686092577133588663434577039582742958432385025821152486256141328621189218270776530510957158523266126256299458602607489659316133207640608848276175535645507144551835591793977424700525799891948200282416271316800899821477037084264918345678257133678250377061726267161078652534286972194756709260511976036170592225501505612797590936730824143190820670368625953456576766156258694869463288420120202433525614191452686016146035976855185111082692657622670224202857345117987758878805966717783773146380603551171960251202877335962999480859295918268186893674538832182353462715429888523659241198032689391906943258308030478402358409539852592077160257952282027426586867088924573159304563985360349791026040757492624716584266077886826839312507385604125844779216947750764835920127079881156935233284356859262330848533995610695430826106845552121333177202083358126184675749155609958183220872194225676484633230227463008799750906922437072172992418529028444978007428845263763517934243674471336625545252727037764839366952598182179229491206341632351888944937853703430477184060758627156773652309777099724848923220604496696225369744918568469004133577520903821092640549601679656418465272989435844942407932314481882343779427022264049582649719849718840924729138351415526162632970949624771861981282428641353465100692548563984047163160391157590933007381239099981615187568745750106066243084097117684890825572481407952948742342311643719602492118574733418433289738390867177564247318423557903948907549599002069383899187777607504079375322930648047122989935817292493590646997386586738993822531534015926667086626760760619890980586505368773186479945012080136275969422464816649096079197414829461550413012969070567700424083644307826386201005417736638192018829629046103906108517606715384355968673085396909089435887567387494083210633358676610203408561745938792984769155628086667021855931524203871216795512863032727788365032281113279593013749553396835335061797988193470276248298246032547517139082322434252008481728885012350371752304595132743872139420636367007179138263469892083767723735248721332246735862649277776078600819137187908724634227376592371277984204065408173172958299913608490700071560086555280244199261173481935337055428520999392377749148693844902358561322399411477826692056106861442127127401722013102865013651458065718293319458713781894976705200985886204850506674226028749073333746975323000558632328466480143671667571403551137553629784701127026832636266018371138246627341067846831859430645721305022658505937220171510905592345305989332223602224946532664187636620518982681339668943966554656928684278048672223885782752566106776405379601061312194875703569742195156949522252403322282369155849350420356938531025954051143313851344365416497492219376061605787319268393512616878814280910688935071490688991836063435621904262965340341726548919021336936644027062810852931180795120519784949321644107172571293282617955396148632733882017460822800122120155694013560075384310480529555994188130100408958511529859217300104907421324036475540110559980648877043690088096546011721201502630742487017335229867464012035808224072012002574238741273482040196298241842939988023675719293395379130196650916014242525578600382670536610185464073320347298992414891799199031018376685951897721336277204311710945532815185254544553711908530583191125688812625333986571982504963316345062594890313964098068953449755859299712564770345061452104770540293880152631022282522128750344158234956827914827797813146893901775864654673942788567753130388546886583776267924574635460366240981128588987759827987742198711643480151505452634571353600755699673046643542283604815960546053203263535765495567137699336791472938965720658645486974717685771146769239134672641321276766541597395094346868543080280055064254161335107672327489386119409974283792774808378391270372932470873573399436097918049169578941670687789098605586216066293717483146420835966161460997091551514812730154048453708279489830137377896660723667519462401328559578486620695412964891613748618314748702832821850092537728643250439621707907627472805830771890823981743336772872949824265947372366160033289740302665630365016430247384463125898918635863891063851673560902702744774883940078530574357452606255916846918744923359474422723277137240446038033585620827774502801324665852362893398737113494045563937421760681831221069431460538054982013466660961159933353367839493130180977921423295553541303755877743178775802178758435157550291902851126392054244930987593954260001166737958294204999922613721105600189354429757740160197680941936591703075547452785376773097290101591389720829148901316100086499493350866940334958836219876659149985730862014831913147376974596855683763379018738328476434024653157092543944754098007112743110619800941898831589363658606701956593345705708018752341408197468445733493487441882345051873585848346357960996306835964344468207536852643914760063116275062536388267267760558664724397279813305411479551436004899937849597340626217291936484531817294337988641690218730269008043486665346302723236883561657880727477916213323919294930988347830717495542612284037922410310753287269632921368098293903175158465494874103171492173591285863090154491826615530431414228218356648231975060710982702186148786774230914420420479110220363240327084345170943838149495970735941403348826916043312529977627266455763430014502356121707528756204595865742865095191442107803002901513035080372283638910704531779199786148091866300289743465527055433413539236727659531811812800708585850015004912140870247356692588794644439632256880433935472425174584310702845282114936448704014842122571785818765069278635570578774502220377777545752955382202602872760480081965251787005889236195974460578429112105199663543760003761888129578928812207647236827070471862289863388705090727832753889337674479515131510463235624557166831277340414671641980447766877181620106249573580241778935472802498514765020307581898038251305918386389851455268476350065841456539555245044309371177327889417037951351562500253004929557108292403933423176209318237882564714191452816579357832909872141471226940699555603626163519418761337662187530321610123230480095445632122291541144150597779956518061280686855091153827740540862700727743447171632014370994764642940494574680143653160658458909320472262621957103024836547692702057769540933584340279809152925042438173286699076552484663165108729506474932644765360139988344997250588928718063597936192231483218755233228220924398482118844513839490966606630008921547880424700423837062953096924115813520516175236964690970491105834793962653088291426636691143340370908323321570250855363253291656864155980455592286183229295609322501967374609122575889993615424621955434293389420576432163743426648943752941556500440922048670630990204281546944724796371513273468473490349138215488502078948878165857651554974583479311855772935154920674932294442885360503914038436234267261983127613216302281734769204955527223869342281638363123919612989581973429598433715096663111564713844040322807159276399841557374584646519031841098524527175070741113244383319854611666597002950524843285841431907149832688320825914235957117351251561576615153111108634190294661345847198236311213899426177233244345117775771948764208221784705923744068066985295452718446316704483505252785920140961331933044086552916059634526913533090187175982443814643488840796386865193608426802529894323442416607942577431259681854397340950240318163164821385164000740474766407479896290476351683053430987166270250732678739841267515438436934144963599988283676943280057699825531351557701722994547851618932676025353497471396963707661762858275944427393155843392146035994877905286956125005145452308661005124101562476654542945022786207063434886217751524983396126828931253199049776592875639477203539395319269593168876926543883961948696884559644451497091047809762836442110582662414037457323461165194205448634935452221739417781931015370065250550654782064069814225994275004874101531853164496240915360297450220450617416277154845454104257139979674910765932151939265362403742720509036302700389275694025478640765190383619986699644650760613344375562323342643304302818094243289085954957446088231459622542748261930189076270407348244917889992492205078015987594204400867133277650551172633371021401998723589380322583933197982545817887233371246882820715581568164433242392712460585681118623271495252095487823419574888847858778799875451091456002352117951269256855734789633972983385775600838937739086114180949620879188724814320297957553880841039922487935961677847996024375201986372494914794364448197029573535068680844889378353414873913416030112079009319018405984594756371473638025035551043205229998138307536040893949378415500229924451733755497408880710546840990863627604934276462560630985647916038090582191495920726303620623844174107734183119785088157098064459618955379766079727353064335411676172487679329854499038818791670807179226032199202624521729934504439009608178593382387207615689217305645419268596969904002133470759657588208369449724500201904611057970886016714404367822131688058688324152772439092393346466957331050646486220864513494291367785997672793129927409744976592869354383038585599443678348942030952576158829549082338129035681027770969006080183803275241692548071018245437631571428791614915757320701802665403947888392503818659785167439429278701282725349197419247399908392221502942395099846988925278497370496306802450911466768551652761986672337776278168091158843925964061217821237389835935679474839500357536076773199499933945980603642594897123463266448957848615780534438666455789037379326312085273469500484679937824188419209403087386966603144173150885384575181356464430415786721165933830589733103761356729657688323471865079914557618909485973492194469358052532980275577430229243050620215029847925265548048387839198303249099726791957846648453206980694162821618500349557754162677985264976723920348424931075648235510703291536772836945610254958003568614428487112230354718576871736370185149129303700615392266684939932609977714892935470578780040906696836609330296117765834584653358556175071514277009852347643266994792939144343166932240936199657534195325956798899207556615378792031977327005434533662187861756069198006248334772406988767274701288276898127776851018057416320247014685614288770198805876674959869692361965155400802864261674169157352666651840701812346093606992882674038096236808350874374903247645281568557184640577405637456310895757616992814543344514370060303461609891411901469747197833179364022007710703299802531443307172752427850935057079108351793175673277101659630141589139403294219826743369925935007504744655170105891708118069615561376784834999461952864816771572733893445697650685553558431795344190900743587442495110267469002948357337474754790907560960491281118483341232443351785089054025559682704852864249184799909316366528974366460079870143529609240469611465544281875570321054614451999553842058576587820575454748445078269729344699059203225165596349836226416778084539354678175177686428894346111641871650761348757911259260828826300912857957335083113988875189181317511918564280878763906964299707587011580019659103129971836627496724374926664965457867146723158573899237497523729536722889245480341630234283383009854559257702664775160169647038058851195833433786460585695715955615243120864900996965610445502339429463053991196018848437266740770532294308398444436060688888807006882866278690597419568792952498814731315160466745322583263599415247802629310188805632893550920044694556097812589650892425445458894426063293329570968478701308443110804696056101410212748850658619667505960718552241495011833812902147745326770040020296984823220483649179505728869135173495886523676410600654331883514186385312681526103109772557650752562776112064389232430832620391994684182973169085218327256502894108418715607203928527906731922549491838354632365110559080017427871954081843099598848725346836865562092583237284886099530027051791640044455760299866679610954975754127627489680802881580540114138081907355421069395138496796003657570420817591340880973665514513102014008462668489899969997349690176713607114204594742507678763322532741776527628374818075484087353181869705802388563543433160127603128951907150259097281539083250191016818779977897487124935282920476186418531283087323443336795057299678978977602360723543786781523501240945527384992204376809240710491324933874960374791953854580584877348059082154087293256275179099569050254499201794576672504227173242849452422621253553337657495660953210646215051414093382185350035391229757032536579338064848200753893386884033530485753595151408130352571742250804997665386527723656835917094074032780022569793803200746855804028493522772280334499982306311090717557246565039327762073296732070694048564183535930878343636219605075415173966210112667747770636905270187165365538851875502416461426764636605239844275177571602223948628117118862525707885951441908642059769078615325778564128796277824008504782750962028499569413082130677293351035132042159544141575774963061546876982340594536165190952154314269169156036186649586813072822765825890001168006739544093777470717699670997252129678428880055857425579853235654215257703955318756443278790750170597646901218984729568085806458299231009133939603863280179639145023252930552777004686430045263196348627346767401577965993793352202686840569465291453013420445088464698837301238607418283040798306943653419598883827660961776348127823065139359188472136806014817236972403742574046427129766501974098875612061429987309909553506285780639776884818569576744210817961931310900736184283848573802978378724707064908659845951835505443142895823820342586732626282852635922313975067241763429621678698628651500938850831480062240471821792627164303323210953036042281205499787176649440875727970769809092938468489105146172561633257216505318675626691331249663654447102594459856540383048719242920334408118542190314723016608671571375031678995813081832150086123560196217179873062583418782829534750849081887879413356400159853291056049650337696048877385951607637744365696118827133400970610531016626443740563645724067639087456334021314820785974256920756242864185734747300187637594616540701680122458747714315565315115080678633003543175018347982297113602999327539779487545861980456820626180550122139110595507369083539954865140073058615696534882879407673141652872613225153602681806428213364135474911792717977821259660845744563942879294851797058715978450977888805832853689730486851372757235543330183126296607591034540966623615750170946563888868370291274879983416609403892709939227832215100534677067140932200532001183621274269000769179868366140636829836461728435290684338350690192233470636307199326113682468970587879853840914981414428065167882384452308291009083767195013532846359696307359838825270480446570145415815371652549954287415497178177083672054402447272468845647758903113543458572947842880978900818810767831799297371356606563638852726059953374821121027194058727508468211254357095035376104259274953346765316533764540907335435983869415700441874166301093099617335627886306281672602479172066596028304777239315842574748222912451567692555030395449133329475418425813098825727218871369258055155616432764937567330771834447382972119308908464396210982147900028542738611716603513639378186797622998661448734229804442059233129749214628989945450371238948357767739939789711067256642622599793349223945136025946774178511727287322158112850316718319719251564150359480784670766785464971504565957989891549973800524100606860976477745907538970610450964719565393748033111329591636133090777938588609310132012225722363869515822906398850125258781958089527757714696280617304073449556750653379587222788894735342375156633990430514441152007889815537816694700340764550223228954133841976230078714898220118887553126457436796740339997583277353315360368972958559449880483116496860057588494234420646465390874666134817953798916514228209744897429058910288079032875936716857622335226665383986271496073395634361571319084867980917762989512033729387850594418708423537773040339508092154996119295608209886807710634052731584647935567454082440105403594891754428010896069148407804964189046001419312981081781486868514812592153166775105117210322533773033014525526891911676106120112909235147601833665315984952356627703078953038260942745867264739550775591552835840395075113100897120098953030419951753214736557338733472753485232714333868351590954657964957904314002576015388864514721192723222941892221443208736083829592502395740323269931212772533241054766860626914073542686976781193003607321263667061330416765350773896552368996226508282847916210700886851990028265003987435036120835468505665981390494679554875106238851454571287853044410704336737981759878821641059347702650875444908760108437108160750875670023105750965077544156790424578339582225556762127717464719939190123153644696721523925388635375597642104362804373366524112728263377480306677488822673406425448047219058668409165861696947045729359764547303511800630581018091874024665051526670551944563023320133585826652694741399479692382895152143364809978549341888279717911705992495438445810261090992961157670660400511113288908015899486405017459693687044508477889621913636459197651889736473983588628825068050200369176723958511912079514485698961014697518449146188365346609460863875811130595675753809796283757886068126732372984627143626555207317222615599473578466953252895920996842737921223888978578760956969003068750838166000958532042461617297415729927898503669161057733204721438304665292030388320547855606985462406601037930863238168842519557366312638844170043004596215983232856399414286752292413949608714534820349023219392418580099967003632620985254554854369234862169868204572646572348774256607138980804450859052162707013929008024833253005759348645873095146858233925185522933163839912270861297269752908739779167410407936806175222509152344473127291122630090321585467703912300228155668475609413861274586976643407902363105879992419592374525311254411163031768383486422399181798415568190058243867325149461459237733001644250381594200172883077262375320290669955050097480996908333404334593917653957794952316872769618429183659094185119514232752221406871787915039208269037922406716575913589245538128831495298291609368664416751550356942859151787887990579449279475529456777256653300705766758457489789524953261360672456105822992494650347981452401849490597334017559829146094072729234559315612072256159142944921399304650458324451999040971532535841860976054957594722460063671586655193392908161984714527876365862113336552125179248178311323382690079378942029781078424945487957815708022579358095129562833790202895485166076526623469662598712509190937560465063535095584145274484555650390653978775655669048807809110567387924287393780890114213411906144574717132698932964246397496856880915708826517745185148396297200668779755426102629069548030033730604783241316528993293089411512774728454814273820825204031253753798770475390602066211605320863359556536148679575485627455212758676342282112736905874925507404705032002990795802720400572582281497271030255264994745110319744090004651643491481085066821456627524329930801008364845609518544632957824126376430917681827426711624893181560035211883238516277435945783598682884804775288952172369568102960914063534077300889889628677976756262999741390098728159057702796544562823305800701212848264802214954497471455724576049886582394759593279097599130109147025324030071856766570377810778806678775236341042768639132183574893355794948731744935292095386473963202715947725736518186517181524364299612336047880698506068341351874506319438888335759784206629210862022075197478741102025346769962569406972885076784694798068347201274243236048237177201346840137083932198702674599224433748039986246642975465925062835570965998311691315567041689068695718256649724421418001194514904116586628418261258952418878770759428842525767623636625574928915254447817004743865956294927249923184246031947628352125414992781929895662226665176409267290610311799752675135024106387228199731133461099770333286573805735136967795048456300636920627187469872106731145831349919336572869606158146820192964568645011777304766868387997384307809112558011069957460592280477797866222920914406656789931880184702311821459131007440488101948320389471609069298448222460054087401066579688002058086493567286911698285061441772053998660735564749030088441559097515391384529923880980908190358763031581978807197288794610149221463174073168168264452969489330933485447132106555146990929671808292372006868645296491540919655888162568686635242114718623594733928610447798671791195847969440681920561187907830604487912682343002574694099274396747923962715861021464849335451757525650899836986943350004227784257618301468241676988718540215974330368237294047807303204020720165727468949852234301089672931599520199089051679241445835173754369873431057307773874539650576240492398298517585512501113942467905219330806630730531823910056836447091645219210857368055651889296639818333870720236578891886943091837580967939856392742699445111496247701414668643293950748463864677888284102181804991325351921936701536648424275738108799245045688934500580272757103318098150828087365165900009353935105471295708238339467936194925622844529448134365168861848014579698788684281698933745931833929326788728999008459212451785379774810472511623441039858115298670323383932095990883424099794946927913184362276892700666154144909916767710752049984834454962181259025239995606233597541897757370614055152349638763456429857650514173228604440092693416379423303481542637476986224866136031186718869378992138579183062178773000251305736638856998983693788504247316704406161969366990046287909814119446981118419363885940893854985595084877505706866883347267614577755949210545030449683700218203983192152269958290162110617355097971267278511982900327014087213063412888977425163711483580307477613608307241667200966310619763433197241267975110609935920537713484637482467014231880726260145005385339908193864034754067427366512238586892302420501668680915095305599535796590498199124125631962866578030883803319484993695807017690213088816186124145096989531645526896079595681198413852311933952238422289897623561490789748200165195488435294336740665527098750790449207992864535375948828903259221094989006458113145233245175134087816926991965398629096197670806429180121362824064576070410030689701964284420029275954450385659812910558172707350519880131638331428144777793030308907976890148634889691374060860498641652993807165248654309958041540611975612885184549755282452446491246766387074004944193035631928137948701030330797871278666001082927378959793819942504964982126803914476894160058353715609282651054333731149193880793457950842091160565383213236506945189093135164569114665015508143715436675806841750624547550184942928424896858724121313643384866218493464582757745141903333945603760389772692486286015188053570871224070558519829167403836654511815175444196669486857067658372594146912909422368783601284345794695064506364596864527141540546538943584147288308590461680132083978292709935851869173861312112364409507713696030606924903602648360761349367572919697435839121246555444030637283698597912224473974677746443980442870133092265894661937763127881762710336131231188167783479703742398768939129536856649159662562352659213944661935811778516632040773092666886313601717801265941691120526854180910687137752703606556407410854820433645296705139693203271801192900783914839493050193182648330052346698416250974235209131839937953625094605372084765259381244501188092884431007655653050315551798184359943808926441574992727456409259326281137729564064517673239382398637371413298945088307724130900483447928662747129115654414308188767642841850274492268323058406529852590354591216549365731263949456856286098224049199767783732651053284624243588324460508008334929285580689916316297453401863115094890092220956309632575045888087750644295563123133732802326152174271668213213310943460173726313367613728518634342635452654999763570507300702969666672594011271053560404160774519509330224800060877923789342306272395606857272049161285059164954861878734533605823576021543140927787273115444035300083439119255117629725451536461537547158495791259504994605939632315909190531133732081143695868952288932620172361740210809819154581149153388986838502434594462914060679341600467284967324914236067055146178649707619082033049702132702051540353665332861933915909245578042021872262017524480353375398428543166800127793526292485148287828522341010457654773176686670181942873508345400795396202648085780843530504885719328641512148564385044901680930702217720300406888034058511308822139400791609540178481248108336373161861794681192146702710874006869660458355310186199625381679584144423979715039546988327291554795365495360000828871750629529399294294600626574354498246021344445268077213970566343122112325659149662854487605536406011560805992876194988276803378474835272618043345760319596479906556650248255911603623126638784271050093240078382706338623344290472915279944415166766412906814611529649323822828536475656770296148806547651001976247317566287265750111105860357419796955247027591818664496811422370013061288196312298033934611089452355223827869082200126758891036631852223742383111746286399456502721259166863664634636678930165226782857890228299650998479131254266989870839378336093995593562273817402202439619406997631332825289144988224511658799420778427388012271207110957744371198092655634511663858448333267083056419839938755643322268522114643223403923105050822253281371702048470858247638070424577468273361257897469606177726716465300689647979943299549440261642180310697889238019813253119480949522837251767610713811379887925293496795821108024274265428077635125082511123323355432366766531823768437094462804525682530673565312276370155638432781008851652421012982668129575123953518023398524747455161930435672560320824277089875988528195201925873485706360906961595936209674064803348783190304255541000238124526023915470644169203858014449621276057236008184139638643459417885546413090323173173139887527081466063612608607976658462947681943467190203893791307385148030148930065285939221047572821726052024013777925869950307912811168106100111828503883725375017819743594572377501528458637049212220863400844716341226271772359317429440384254068609438047314665321206581761877393748706979064631705490436794453682563240696226884741444631377626863483882428924993898990210221104824806763497144313532640945034686314523867243808041440907939442320936223194553468121162806288109421530800193609836994146641477967456100802585014460674523987377947663843648292423673298292810202419975059810812561623103328816535198259498297189600992983593997427254575798823985946400205764748951949757011025570333671277072048405755592183738981155962021837107236923280961846648019979325624845340504909153795139101711674512579597747886722698275333751599442135928372363229903959161439772406363693708051524659983331077112101336322622051842752629096669326667619767454718480179935868820290067048670695705452094694957162737918450051378108602596072309565438222491075622507207214684367295692074498784762148220188902577975869000528996060262914227345953848338797392517124726011965343240860839347317153261478087422222006866583906541804585160009030315706926663046977880350825441118662297123619332755604880314969182492618754530630795509927076597466372736934829667896478833730225066092549030858460719534754024014279386575456870555659485044091872996340928097221651902005214664705839959976918187719145395234255429463795124488191030693896406198080498200643814429807900785888633879816417079167825459522187529828903566320680376705728552626682480931707210810692385531996561999474409243928789502032804568152783729456645900180137987849791270907395705435097203080363157292566571162432510583206433316222739663089738065006601402791550200368168470777025543124000143315560612547834346312475463318701213111284843670437957819049801709639009756773819774015593919530747654052584709847452237068543162640218604003806206843964314656045491852774837828434039037012801756197132817199665913744489160062771393517246886071993665973287017056075974923614735731145929351922551242145881597697592640322984982329279723545266119578319590920770515539707103529013999631880659161987598445924642436416926470868130176869507117666094635088974864151098895171359212998168888832393142702205396930741908603930350673159909664434747228772579033012447594731284105858003962873560634838293982267581960758214750368067114748078638717783871295418030158617802876134449786777056769633987280905597697048325829774795229638457740858008855936305531464676544423026691611683413125659421356603290498713874475157186322208009350172340968331224826494827867795512580476956855607994059658664331671978374577834483775061782889716005923163788329422445448443976955130739614432129763568569449645742742791299892795225574806242402436071050574222283499984701755975984543993587437131125782024749793103282794989852464111675168108132690856749530890620732083991841512845699958430178884291176468168388344209347229620573187688373655532996185844742089399226699397542780486475337365779398241264785163334561950397714679828039702095282038349235697437129003757079306541391807115830145865462667944553429832722991219044407687541052564659429595958495728215791448087966976245091692536843515817333992403393041694539937600440563291454234259765496215146619932125461855833903221095256522780319433313415109565467495694686401104852561860516375282806884863109038878714535739480121746844636142362927988560793113673160189929670967308347284363488417341051626508431488133828768886102935161725893101930553157220313760273467009233738888789965791812546762040047408054201120232659821257925703762533037427599340656801955675172322606358718183374694519822814923313610343796681591716878171941380231255738620553288694584040288123908290432688424925364507069996757230358008965153401707137617872191964487555617865270216868046747666623259821689947330435580418209682095766962838601597314641284594257052051181579181624842828110622550740732953583560674336715748262449550142546723754502997370964035400910680397294494229654410109992422031530860193712825203863491261027676140121630308060275858182985209383262370443920382073939319058732448983968333669406760037507034069737561964071290215467477077619642864635127266076146352456093479595199492228487729665001629228232161934875024816105338786440514172278847607389780761791254422188368964723054928232502252916861886995700815902673138130065292221777593041222396166679897970173354607468342553158809639279349921863261915341812630416145137665348365861676454045046709154925008768410594728249324224520653383316959096435825183195227388520893883348412422222158550548467395602457497725701263669421879702567409112854978007892474008526195927731639292440862981773710394669800905724330749516259204360898798484087113791694719834419138499863913957218248708539606965488007587846241154105882277844953262621236536580771306143250902298527672692832465939325160645878292803307948816231104035853889746473495165300208062101714982687657611848695050309501208074611306559864362192215140561192679182208349579392377740369990000022601892267324026779831194500571890430600991522679292864764377729148148336600105059572673615918857676413421636079255459769052997577384288903643632096094030250764600774421751064259698393094404154404142562042623776797885662981121050576015615608092502475320329865955295315337266599642903804295632357517602749579308977874867457823111844989101032476576850935899123262989295510378577930295486681591167437859085250486672406090511825007690582991575395512045938112363560856959474670733664764859659731128773641927003512639679341364287288353590428781953782468103173223759780233000774172913583711042294051342514846343405425256763922078667655846341380382630472850335130732759396989780481247311151844310963411511247360936753397581518615613367772384379934818504695821997154533890808320810704413936046875716155668824512512846532348000602318637026263417423342216340425119398646553431596713674949574100642462359385869021048931443690497269478685948634674131071640682480595370113604126006665714438884858900655533650228413015302873287358280034508820901387913444736598613417151146241819158247348962574955210284933627408313809974631236917590681918864932177322288991999791441827400465479782299122447765561974010423080256153730273047859666997779133228655716992811145505032141119670488804295772799360049761024178845543700849259720241855911010880975351735131663890145369339958655115398413717611390111638622135522406092698774540499528636463354504532814216190439829242935977347999296350828002684965967769532088123910133791877967042713660106864806530708670958186301494568177790279991332520302423897905765619612890251381009589703310147847607359728481042079120454641090742082794296863018291775360066849738932085542954567730405548100352038241643463872188132495287113426545301158227625374038253447401577388364903929282748733007307117088497440195266607689953278129058930350322790228639561909096390658006871842702766236323534709002039959050346712084476015436107543416636427899264766939749810907261375182327073877297514637341570695608410056628565050641233467902489439012211695454978377028749873879531817709280998086848220976976378472654765140196146930229483686852518790209388657555142622923404765823002069369035503952678120572398026097976570004389013629602194130435350020793661545474725301689853947514928882549101426743184413578932003178092139945501947949723975608592699571364262990143128655452537890816996481892945589675635665940412376961876035470126341195171062104830620167818438363464090310818475050096692777333865361757503813581352415508290435756011811801574955181262252367516993504877795722444838452905503187182843510442314797512960583328157101826391399563804682181386536753075908660854649475409903615784475768156972084098058580648910615131441519242436790961005061902831188136321766258844956720723111287316772716693792349003430165052131947556497114113349582507485487667972902350894318332623384042845524323173575192087087062037200688794510926239138667823037806838509174726717734125182121769022170720863801995766794060124659163418341281041124696153449739511468201919814927378155966966407051212414292692831391678585060135223193676710349934168821170211621292299963262156600325369993369647103631756728570113324501903711600649442258798790986433716745047430380953774448675510212203126129745343326921131820345887253895761671605563003883018012345198270457436122719629257892722548405588926072675033513607803527180677256880631196470467262533185526813912979453133536745687383156239924767041914030283139343380210354888851609413457354274120447508031957455131307217462314632961366125325059483868879855719495512728011717309389884186777167713490994244627815051305243267781947835731971928424183865805045236441379963527225865009934209859027993795184188834339482898050218026356806986209348141212046732028031249567056999072987273930738114006515124218637429667685562282312550787543845315415520001329170790168370592260336243001290824813310596102766622919552368473551356522244937573798587916889606585807913547103651828243630488223798695028493605161255200085419304221188243597881465695074902715289304880551058270388022244855448070112316673565555419996853793912835560255079423665250069828903135819724662972156652006713011585703478063015872800048574555403286614314244453985671376359602787165353128483079744265374464202629721232907027448415968322246867622778735729940828698169972479136090075157795179629679063616736918344046952984961328651809334256846484613254677129576058623445330833370992056075696293817037966532783690029649120246108947429526655025019323993220516164923763344855123521884473708061468250879528676801285938414497108868547638436322242990565180410398149450878226900773234730920641121343488997121437541530273793985088807134539051924916979642034094655765657244251203271557633535106224959068746575051355554868847963087720522593285932732592995003708984030235115468827790378613429041522672155987509631500414049008248830490782657399168934482269415854079813777611272572055791552980643751175551730775166375482048734196229065822400704804503062028695836064324825180643402263088851728094576079633868733788594711571920160133882579633815641637207044956991933569915917561284287083967646401943143152872052690725858089492831320456830589678845576631466951454544318203135230679706993799577727789651067025951568324823415936750588687904947686972687671448213821910400166488297987694522966389158851582311623702657567601292992058240411472278879579066371035345514366087971035879723382218568259856262861826108756854482736749944813470666620151855834438094066341284137706625578777406932628675334143645284794505286268277070441950046158896577796550930844892311641643241180428537674909024041860830104641447950181705465224293928709985464787128736840059486676938488255319004334621742956192312056068337826797518038923736979570765654982951351745240565716163343075354332491082380911157630236886028942365621702003130341939173802337170477664073516007059949275011647555079371810123682734638742275952030004200723262066034242843746203915126665077509682801601728157451373159106497820260540610269319095373656441619883420912375436786042200582540868968380743966900056028750412183171213942128155904949190004931496335977757554253461362013033166774630018056629538200520308210335013612678853520550608367775262319426122787431043951762865668542025918269336019729165185218683086443957552426359066981112298558242451412577363648234144933808066490366882868584469265171625475636133093574277852896233071477741473372720584225747140013325809397262175891765116635503217382573009373034220995523339584864724274392091924105332955936312931470299377359000373178139964466059622836528875569823889567932649818827792617864526921689306919357170938092365722258689632205867648465497905780342881491693439197135229366166347643811051412275390873325053058730780945006080963318992882432391891289593959322911021202553001678823732411176544633190325910840090542129670771859692291127756440428838997249380180719363809216393456371909939232843895115168905493980527539679488747202506768263611807422547365776402437141699707491605829732808139991076097299296564525308875005898141255957017923903628393111309766895152640955287044109202405606475019635610513715182727207603687409423961693781028004077461503810707049517105138049285938799418920650886226849421193255849071061070980010913571162972417568120186341896071256141737411936824592689763377838461017076769070565923193836518489275397253228396675282877371128014494864346675373944492538532018102283108635161104621017761955207117185344541819988811028629480921741070450584241925210366229245410429206598374702215898986804571542151769825167575668477731928360362567914886653000594345075908757685083800941685513966594510418911246656296616786933203101917690847238249035760292914229152715140457680659831710465789199825398253812011989424955715133352874615792655927758577630299155046601046943902310849289541216530235168136447603385010342157302290664768034309333328581053454651108996418183842775225229872829865987876305019013450828037832457833301864692362024712607247581245444520614156392605221827882008131062508503532568862828046977455088378663620394221941837235996035785181730889118979592773102374139552973763661334075111447590019997517026769422518952581566348046103063732276743003066250015876104150966313806312508161347825419658595168912031841572486477665000597661094653877558207615461966189582906377236456609829107423266723280958155936983338285996413651288672011090976376368222475872297836997666371342659105400219529219761228535707113858706399782200536160739976594485133993385297961463993438541830022066201135060537897423192410866893599815762808114768118424787649916954977183295504450253735022303794552179262897613512457231349537509578508790040921013013270116960310163220122575987731043241618547925342634319163437714927997491479107794186213151046754223329716501235683346626038915897635430243636652883537287682741190821659559442142921716757579085798655517680748973412624499349009326936564976776705595204441080869974383323297012646797416532417842768003784522438973779728579222247350782435944345494391423284155610125567962156627937634331153214180547773833378557309628255990399723431686530386020377774281903231508051608404374629515161012309520025774095065648666972127410573516207209503022413367432227605193731243161171882803759325477991957158725620712360788964815766485941257613118620657353908089523286154749430156275901530104458094842368396403073501378240457647082534318256879452571384055778149735355132445367874940517537655199378164564742451266973119966596779869204500177054599873500029977093340108169419228891034426045337765420098360405186976833934564410107882219532726993669114563203411328820384771786367972897430677367101072694663588400099709467023466245359116047363830777474372369211337092548971329218246992352447555101142469456109984137807122455186976776673426915070209787405093603194218217241683046095555819215510092889048403262058162248415369358030024738956318665093543544676924377369487482050934996227856527238774287193197521925924217285839085761507088109197927405626763115797480478285090717907011378529962109053272421834280949644296253886709203461479400933635042160076986155109743359661273134308376662550639586683868442128777069338062464246316522355914228700699162478904473213461415533192716504270338008185391740113360947701214843391930252861836784342801874045614405900113679658402924217289305349435663416980640981972756885592622126167477010857995205574251277512153736493504422862830552382433313554871430827084416804223836257914515118549992155228274066033091097897090431804644508284469873026570728407007197914255431185768816097618625594531595522828021788601704717282453589993347546169166198049369057438902502765402171608165005118025956599619677025591238861683794693256563230797317812957395797240338074437181737925222875352482434677958046374224468474340892192385849075421218975146098407116337186958745022537545986269458016256349390885050913707774249474351097755088490642264392693529894521754205834069118579595607369807273665973396671078298037478869820251571752988690973336353367767151076891864829036834696745414203442288095076577890860337089292499123436562555558471224383729538924238876439744496068673612231749055817023893742659251798180627579234723606526263173477531176360165963893291006126164812885757800561052932103499747219854640465849624855737568163297042066465898111125932224282945219443727238338851656165804909665721740389864733005478167293227742085706868593206609283139610410444384127723368032738350462670605736316457131082279551018414947351088081625081791431665627834553459664628732806616896033458168425929379594562163027901863335833581173840919368727005388498762913770388030977694999017035552797544166795123016755989764186545063202357699524267886067361163029616653402372178144849535616531589062844815212315321324842632808652834022608756553338405818758262279226133443866499741492836294984206991673672704676444725681396131028710515981221931779079679590700829738273879499761977042382624022406066758739205615344932949427515697771666184403235277788163278876393080475133329747558158812174844236350205070211920569343679293967567801380526022572718432552846425234506693616071416464057923939281549598321454195968804690514020589246211099137991469231700629322554121898685482256082504301194854135009377561869054577648655253954465733764895767062268316389189116433461557478855862867755370248041580329708261755494178589392052932548973341766304566349204692708596349482567902256680898799210716776223331722126566926329791299688896682113352526716575038637946049086082167919599722985741391294669835699116189046343763075375030460418662540940484199252282209199038327650354574692480462092731740507333935874181305458223004786591574117397342702522995425337092860022889778683704673198577692089230965573412845143089175015664997724223153081946663379472608392462296079781391086635662980268527603976465492407529368044814085793298972502785662677242197623973876694845730076818191032039648268927681992345447695615106980310548705584145751148382760023523742661075157665120826674968341392763030362335168711983766621913942439713955496811677332116762552708763904424451350174253062065974837197789627971735480757370850104990996905232168316263140942845377712196638203837629536624574000431128333852642098417752375092031621670580226116279360384577565651006661061285732462617530458384156924869181748294116178287927184524223205082104426907084914908208902076519420823072029823153854129771340605772529155597802835796182468686313957331262906617524487842245749395696268997742062298647220267169390213718980752802158929120064370073467323952375819132514936192794308999694406405449910084793247207970441250315744153884308824735333940379343136993553530221466241077900597349333152133304689013615812441811760854728260608892288404616898183676108195740203379977224562765261809590434636803531443008058843892822270543064876245557183971542735144941027373731970210738526843939985236418480217246988831490695113923008204733363182141127258302823819578254728399959671665223938697879579289349445985177050250134933806810549736174377006939217820538995619086973729109073177360416620544472811114687436834999050539642030347713868036235650713859704932690380256978658188580288450363822107499862246454043009270269270841784650153154428262949201089905922509129419443092449477268521360882217227043260994302747880716021683068887669048698964957337692178635045330045835440648773335384189513233616479496262440399628649712686199166961322284839988810324395344619908900003737826446824322988342183671532607057179062679153417940374881669964980922241653370390509027460348367933579151896722107453121853158077685503260936236004718322583146549820520005715128191133930538577865351410526697173865736619979887490303091868639931105917194584878419482646535636046546414943124298645333449739520281398368186788160573821200252936580138824440508838141127592722924035094259469865761869068414836743562717423667645637643789762214747007957585055681362497540677186023515050911983815635736820928138299187362245624057238036747166832460647313533679310532901460777612641033147336656063982505080060870601174408022257449687563017673405456804354748890961014107879468614702052931778418972492571645484475729872388137765637171951026100889520528215810764774304489581873195779192913684311649206954776427504914135307490568888848982864548735392444338607802308419417414469744176669070157036047478009173940632985553181153673044360538095808818592441010885273427157538229807737145059171159980512871175035048225547643669074227205961437627277840059256526671697590619932068073828887718485715946073828975549404075320337689318938281306710944545103280262272282360061109623297878364465851952797623670510122159951767798155334708785846741612921583838625021035618238065610215597248209422055344002077831008385815764692744390958201344000332796287424588421940085034238262561293859353897555032695584764866321233612659646980629328596067542937376515014878497442720123830589490364931744482715741037512403443674697699275356651546324021097531188889983417246216014298458431433597753266026427068736795434042672007980238714622948454970079677798278482367514044928356141928465030409679510671637182850040739760182192663340573309350678438574982492094042877149898760791401860234011142091857087305045717073867569937150020984521472490404583016990775346292284531058638713384853311207897359754124153353221582166041914381996742967987442414938144228885021927873395922827207635107869337685470129139881410568897842719299098027149652286192843162809802396890049300048282861785941889029578471481475191678816776938480907511997549495094825470904727189966655846018380709545723720369461604707652472740925331756485029024188619387194038462265010395511734072184285306412072954490006134930538002609378523606863202746176763486938381283385563459254807833230684650510054074989830574997244747122795750946209586836700996072524584705190234544503889842570122692158864966308797879323543611552564305342468513462582530089487123245386168373469308122945493372961580596151659178732692685050520873636854392769108615557774878089418876952822860164844666166575625257072383530528917709843057792536597264563298207514284607191379530089490575402748930427136375909383920013629165585985621675081120319711222496408133556261206657934091794534845688299813618775899387165506313381911425821210300406301326085914692045482105030357712871949001696301615736494550891707923885937558535837788227119533662409510405885450789416972536422615299394933006091100418361614109946771334139392973383748470448197775056319549284565467294135803308504305203613865897928104894854939431817540545868022637561287126129660097858833443777333647532096478909567434072704616493044455022149855617977207279109621607205542988479786306281001143190177384126639806848159953179689818804000274143266546458759329706574264282736455104289287768148803849933396825773685110500491416917368299259015861375566449984701341818291222475335703685527631075234700191493287218138719871264318173128185298087424226750139287391918085531597684288610895520606552459321629889379244930524712585142260714766735049206481797616760861583797630201812723828056416547394948641956839278135658574668815134765284068440409074110323180915170988026575513930636672839283712761728388542882158446560955035346269987724693719680830389939317469317523201149724942453275323718148684678057373070524406855735070425750789998616774149383590740127500111966621253403496091597699848037028344437151253475030381813001486552711809420160963031069517196707835755161098726197895947408222459187172516055472447509621147020760530010883834481596014388999732826277609375656137001319974729249187857824972548320955562110965563231709511188732762628029545611656382704786226803898871949383082735621396434859812643606833135190204622947277510820683873817982420618736277267725729827733135159595683909937227679416159688981541162124086983710464444977207691901194187231121212347884452614003988288779207046775489541812152555213101425879559686527071202635568556889634714122887295231325120495127403874248981410329803754182262167240235385199531230496094752908886593810594317154908563653655911312127429653559996504934347265616386244547164071178551583800637791068074831412109196618010487234989958276939542839724963698539579031036340999878409027634735272180723096061227906706552749444782729632555413345058740475581743293378590921617128358846662365100495739827871401092339640245943658343901922981347769859401275350111908666115546726032073790706750147876005297741482629817555312305544029066000112952680295486752993541264833106495602286867048677307005402237961898659051008567113459248629521103247201477076706486033865683459357522677975578546319032698829231503007816235337884885334507477925201385313117493594257406679741245984525476917817029040488318901600291191247745269850286873976513936947795618336755804207650538665288268104044269095167085981299255755020691138931421293384130088511036264526010991280076104504617889004746020754684619200184176032538864283876234220625191989046325911432511088709015701229717303280224689192831070437669951515604124121579643166102275464146914983548233855338573808880922488504398349756695101062743524821622496499292817953568272645747904208766418157805248957749215110544712699277606644781189551527310343447820196541491681525663264506118245467254006677080209862186331810502879069508486194651801041674826131113994966024326731827718102306714538944679793519451274369172695833007113306429790225287180683620869531492288938624906944900311987212126458747872157310527229998505794348534875267393716380991989810557274220309848886215692413601798114241173715886611232038477450812112637526691925558080981990328931459867350080472682722741215089083662551630952505750402709400690965211280958988258390003839861030216269545328872552505494388134504016312485533911197041387631220496300908851024075742218487724684210335664245910854171901600076174964818453952039823054884599834114753521512258090218626433964143634980911332801675828755418063644264555200879965496133345347722387139909235755146029314923017680152696976604869011567166865666376638412126813405244493139463816853566242971401248006281478872297655358540406702047610805631034888347695909890912784503616848877398911227458923470541626602225896909247118611531743598837491720076527750442528619956368322732606354892733535962930966637111206488481222043332478037789015535702134660551771294995501632572884340868756312388737903584384511358122007685694486255683994695190534044151664262627679550059969172894584109662192872134101381070201335169302957544995869551021756065905908068792270694701088866778142394916237004486229554472575996984211898795378373504283537872292369154027490562857630211343169937881672320055470744926451905457308866807414584653771135534246902641816464204909592201650290802091986989107529021795069822695691068962146502447288249888486288297901079394773372715883659748137995083289761969607874249324287815246363554772897046131624737312224976920871532200460062890988187184374004686647176285786602979989847417467314304008109661735010278053913116622029235013397647469653374262673782645054987225282599176379349996057023833519535931453304035485109117736785118303515355731577051987410825034646262806542798031634718685083113610232191702165226704916069345603773215922544473486454622089653347073436956053619248663343260526814950670022495924129551116963018355136435935052281817209327533187506140386800639602704990645884771963689541847300038832618154985327636935742814043544282631700712781745122440006988047853284689597864789646926793157310956398509028670258261199425476121693499035969200234631790578918274148136166510196001966227689890688005936801810897394490495352340423819162901335444496407524998640319277611457017309111527976213653260827212501598302946715491537913889337934356263463171134430687768498042351025634986394530823507324271255859386777352508317867237962174424301692186535126092332744295834079325564174209007864715621534633986113553219551553327565651631344916553213230960600581707133179669376769252123309087278521500064966813717277270694416369968737591761345657220148562539212873230570319989967237155874299785349857733116142004015172962022146826997622023120812255191824505111857663012428796488741424913971587240671225392782802426458673444487935567086702466342359609552118814905543072860758465798713700494785753404259381031788958612425739971758975597610968996047368555225081303841560817450386781736489085647419670732608506559574224999487737772439686454796400334469544676016582137852522010142564272909414044235478152096946382575683321015996573419470765052215977162706160539647643852482555502861873392319942747413244111324384165229066166197674430343000645585026547998160944323130164061491980575967670212208969061282717649829378421162683183581895975582176919676225904474048162403770685429337055487284492035292449972305615304383806776925294899878825714985677177378599715911947835511513837487631543370496985367718964972981488892008467725053585623624578925500113016175869440195502543960930340723965380876188849192133135202324888568769599172827246759297841631228019326417673648668754493393856204547059477919018270596536035838394227878354878939949691424508757840251403017924584613422120196684234683259447108673959407891657882506907206689669133454494435475780935227610218300851097489888116751223610836617535012089621671196023504612017264928382204952566404743625982111316083374609834238419595789247377509999917971152303661031691935322735166980698266979286710540306367369075241399013986723262825280101412902062139494795641660862455517083461663357371003345388795618865190349455416051350883809889775906802922928713937875083405691440260109410104578516283790839413437910944659404406692853012842105196510129038281586710990070670958279889674669126511282019294379838313499005294131143281874025364465358011098662225446582272062329447205530258645121964306219107645990820677286277410363099710933540574713783910035171617997069139969848054098740867549029505441693220404614587671015959752339010826298598763654518471569125843005812946825353400737586835571367658866187431801298331932683225780675293242917092558776918647555769640131385987620250867577704445224821990515236733773249533202499337412457701391021990238741506366891671577052025841967081354084295689454672820996350345822055858696766553938148705829808338916325982046799203472657645617363776033246604534853659364521174764474543410206720511561400787157363295340393633030487175847860875946210236647328036015556018480966013081343307654716405490428466200931826078730695740767474687451292709967845503303714498271188949572391220986167532932041580218008870565885879652826928988941636216524424487952596751318667861254092344008523950588506125086801471823027117340606504021502695489065368730506649997562513554604975555573797782275331702155311867941947217272567537312010916278127227924922787422465217468500740999935076140442957696115021110144380571199956311692501502053936870593094067541979453879792075726471645799865444834029624468159040521565186392392453279169341205642290492343521827930000704659297256183232013512892986243101549790612486212544429943064161127804418711019529777995019494371372865473028620982732770367820800631797545914945988686731334599878529636995619341039938186865665990764468691694800016971802638901867690619855048285104280637930904691097918390353604950598060624023409952178500799247196967167463991118260676375065395572705242281309227056819435857896693573609755938426729657824988520633142489750018494375145824843580668718297189168227036029642219412977633826545096828381942741452191043016829964297784389634923753039118305057645410174639092180511859406317372940183948529061511807931585373715527066125149005143762411023176971777147908664768830864956402602040381319680992362854333110297370471097678768561251013138118053016653831441249889617383375953839324641940221301405001307139313789893556564057881354280159612302342481148769736903502589642682389225735617650752849729008532053812863539662019223360890751571567346519194500223396791158052364121353802813809144608531010524646041606694723974477193636320736796342877872697728364675118534914109738121388135454825756062221336184839023765050618827726910047070057481991226852575098656487693711103688830127337017621569125924594894627173163573253125581005307967577818172785792918998822244090208027969792503164728893084669816540116078716984159415565416002084369466903439190332074479108815814446776602882854494895064957606575353344482938205655595061380895275936339855248251178460165699799805544528832307331608859052310824551899681227656391196641789401232113826935214002151063497468747209915201994412618659145332384383595535038141844697327241460365866327631480925579920030678236403555929697831420432618371068737465404381003521944018257417838720389375184207683593071753455373715508371524351703359552572644980281024670135728563993132165437017402332146405802559681782381117317290586436300993114417142631280751592592403075245155960992336519927530355230955539883626128255106156605544454539703179251596042849387119582516988501967495168247041460703650529856243905601528753099025776177047947151927266131552801011503306923909882632467453818809302628525236722668584082647643331471049235792655482243704008072223014778135856309930206600706915777728247849238110882528251671045932397876243122967037892826121488882339747232299551371626875767087936943045526618727044673981223522790312557021889169528498508477206600440510017264231486276399131984857406232081464172921924261373870433681081058282043127864598485274156688841701290689071978351794870156503312314167126176865155594091732471543181217938587146820583756084311599540027554180195043987248565192984025793301614423643191646513196808253083004283657053799428000234824744818652357407190831704161325510480521821230096905225463589056706302918559279982335026723939997486224987124532461238474591591206933053058923300402281276720975554172696984168009647503342898458347535056332306280475333490837558728204247491894607706904656803914473694799223807722777327224644734466704365486046166770493947705366697348087330259234038607032913094726189425682885948264110704041550201762557913708736366688025820629968534655939476166964780667720248666473956310978691662498048947441222739705547223356256331400663519983274791783641268781854949186843391169778665468959451644819175530627499997702947560523195381756212106357718747389518985440219309259755449048888627816441089924389095113096549973714333264049589526667352582040436617995531991671921378359934373053134041164111813231168728938772351531388447562087181029174962021916391238952161442859239820898923060079153153258613612958395533336964940671950674122727858436904030187742957271475152194286784829202275585723060755137444087807505998706754537130927010688872096750183895120318316942691935296503954477675092696000180883042527859594159102686736679084501802246187244958735189043536427411892792871363179314590883500676579918396123746682114680804737918782884247565526221500831632384889962269706822335334487037580524367599756060887756423742773344777695199293534911564917830565402720204776708185642985364356868824828918190262386676285712997607593998340223896050694724826577095631692084829041242910702157033857664200210709208064992557407476375270729283660653217561785301463970137416041917818373187035656646470732541668537716088576633731267140244194329450866376306716400478549996634305565902667648635860120260172924117759153127620692948247034374179728274647838432159955405426986588552873164911511715349287668503671147701635386950981049645620702081040469280719068454079798652191748763688172183988511931738993196961779077839940558417786669314826068783564859301105984125379186891364429685045880753231228611383129761622666487343411081822122573759407878949362834265364749164816403659887051047677562813902242590654227543277118350739499266921092322662560999353719936618720252980277126582055519902204733129874926634139991374466777225921474076252054420343832726607743178385279673137006873833514151316778317476455975123748353193660888080176375827398140388971996541016167522042294501942761699107011874957820769958510874822753095022049617961865332623114693133595019536416160873183296657771258406463888266030394317482217809051108956842293914782711972953540376283733809202315655815041297499708910506400717066232408904354075448350997387424755386760300030346056423546342554030133320592086467923502315280464682648316599656688704216604365267333527885565536824444900343622270862606840237976562295801378337599804357592499799418766420192357811609230462133349321586201570122465062316955630619174791671839284990644286147299767065002409271316566730023312790668075049713126559349900169462419397564518306540568870885847017576642642426813832547978546364215771910716431810173288171197454598336096614467966666912653696680951178833186385197494348661675852748153601141090456181736341487031755030163419846547188446239379316573717808182406658639909111164238046200100842788013961816857941574950453366582957109290794052409078272225259698923563515050894400293181515407880328187664219538826612514653978082527547329825389803546494595464702607945550685325619160390561860592274338066119476211519932177471003960986237707295030308233544904125283412924358449753822630546274657170358180960470293715086748314507772055415228326444836607723499870709960126883611574702521503991740103507882897193096416248108782463513963037289291977959300746886641874489444843318482391398462664385906606722236000476552416366621715980054491541398092205707763508222227600690079915555022482724999088775018770043630044688641617326603718952542781668338844328384657692307299272850078603793574018610696198611068689865207979446273274186337654594583284234627523451515946362856156146754587105660600539015918063316550084683765000694205905791462604418031168255232589625892841555128484662366228163106271059205198723706194903476802215499903659925783373055281564962200798589419306677610826560541489591037809547445880904114966248975699248164508019066347596939145947955642648656102109228750113129672553547100071797753369273943103109967535354360402967936603660138884559423313999281258542829927702254644050334327087725449519505395236607588355128914441494463703191042785381020172899667431493997507628117182859315876566126636269481210995305858852237086972961065335358660213349727877317511972357543061019547040227477569036002866961835663257912871837922052231940194473895821320738927986913355683489069655355149354443858961262995689252999121901432997085111467052744802668997712534750245030306560544944472881619211551129476934359545255570403995424394713944987929213208549518971557116144483567187560448688698491170006335392474921767244130297124897398835094435997816134314333035077838086825730668648937107910504677428472444539960359292708638164258577203003623176350477804412436608460460454461207210010554323651487375298547955100649116394113513419550917090471076431334507031799450755493065631712464569409991547226799259223727660412822769174543480382190228596926633354687978925971696219002996744532206523286100066402634576946769277837381141105081312332727381534295600035082907673468617474688333807599297397769814826260662491625102905310957523642298620982100174253259915857078886330064056291072104197164017159608209165605628731899699149225844964572547424072078047751008393549035254376545385309980703017752225380802885954462692949933890088717365514910887812969157137923511044780250738001259582877915112094410295530256816882374401268188065402652099320458315918444439932326449299532320877753020612111503784752803583277373784912252305171465347019975681232324765929764636308593288649453492760052013958818870579590865929199656461102939288433865673653054998400637708119454811349769505661456187875097676415731413081329478296916034974415315160871033435039446277004124079294859339502271936846683590282905221455190210802066667151446455323886420598554680661133213840120089738187662114427714280185507768869608641138632326395103957474829630404609417723967016620416164874350714620766427525777359508679261381261141649332642804004695589968612718611652180998833495617831689449793908298708622848059336343893533944769611159854084322146078678665005416394512895054410905215716358640983189972444653245856314984866838461183784683200773420346699056522012308854803179789697988240723291380016040334121380595958963025459973552299144944030787106090561666646473067113851511403649820880796049253856451887865140425304204579348559924956778093496748118737722798568989578485710389162316179622285508576486664195133109723543727176367769697411781622498664315435031802195828764623585769361947622272172933316937057716571984034343589465594459530338871011358796200172622789592326111255856345177319525123021331519422747615044244554965201764820455575075381506154644307619632440110184703764922357928964793943911761023204581375327576162487288726712844741801131799097618577587836215545476048578509735553984531942700562834915009236848068452328177229162758508012610367663406873781072284689964970618152212394986839611492929740088151347546831738205348494006901978704343356732730802436753719661052404780640136116510114929424889381020841055186999444991845571402446511301328723773039558359226866276730917882430798498847849791365311897872616426539263027131043241368456802638183070391502234203246750826651308499660511094638463694624515216628740031833671878463722388703466660467174714472646528080911652285231701451244038896413812344068048835959629396251947543072041957658063901621364081246229628828496178698014195824527157336124529208630745876948301372380148145418237965447115807438951843913980432921493268956050595373276122899958405404163546054099721407839567988362341416357135329117996651675587075141395666828361148620015581366249237302378756371433500042255509224125746658370014916291615980747415080382102758326086517842333668585116209841988094277125988061109691456752108742252070164564346327161972849782986307040377408704798000712317059283336816250446342122635861755588110715793196634002189936324091538942929487937880486708720357944881864636566539787461209378626479348987289292125553529573199475989834781487105750591873157458768129565319290818524820119947982890839613163203442872937455007342405602339564019811345779496395746772724175869422448691665755614234488277178265430902169004641716030566930824174206820353325807343816835547763166726162372091392301618798094055354290159547810207213133824174449251575464912610395476384566989609704446730191294613591458476251119137307384795786259256651585771042110719930439986312965229245908087682507792614747852704142265363740206267237016169315978406784078159039939735180023873741734870909880864420168069121448839318780952516000577865235904264895277001864214298549752059958868405359595559789618911515885922419409611769464625717982562960028461714026866511814329740363340320809949662828755127198649810750656891243616953643117765524621893426612872188003167125963242333803254495706639966281858975528260746610094820269403487369878463580967697636555193240356108089754309762550258756046946887934043898668405915126112083941600874395689243649723680220245955248258237916465344045999465936225974112259027348020900305545872582247023110030747034524697827883249891720966984038330190975959943742348718349505103397680773491536916024884104849899083037370417274779285990318535257219755588307290906470801635985090933517808635489197250202023777516148795294421999092496218688628949244058058033769104373587809018455217924908637843090842013090469669187599425634987468976530338382403520789369197466033008176595570286293714923484658779580274541844909414733266602890851423252557867820495743653873536122573667041796403395343197233159710311564818114968078775595665029646249305520629690960944030772062094908086697771738927852227218724396975431540317562830835026517391436234052542235193469943717451654346245248590373029854056973289913717933635833940253677808271545674099241197106886258770676581344518307904582525691977946041139735340498244607551787636543747690158701735421038562607983543402009571076416699705829845173249703451722710499686316163424116143745441411177063041668444499591972778433531452521852819763287033554326383395865459973106992999575006013239491939986332403635925749336974003177383277035409067868827953782440575425244419385865571439556596915684062372527934725701964033826050986836284273287948289099224962578813289993584573812398296789775482549635682194637303479645433220388889704637725179544915997522876155836512064963544703979237885441676609160702896497499171003798637239061868493761400530284928697583981930675680320770998306105202217065878589169033291692627992894762772575572897175875245541986790391396122421603384900160674622057155454888006117596408101264176248018110981417311530904135288243535327708680623708449726387105757836849060306197594845933350516950245780144180019704287521435096122267993505538388065570153837041961352246463947999893162169326562826702707003779027065057986725646464405383206565641511197132339348021313511472893199526490741173041658773048890514722418888138893472713885151057927660733140060219557204677118044542522350865680032738474591195616104844884265111510084779695836707720923227399049155652709264734886522739081034690603010402678422798430853045595633170600980741525161004175752449121908880762778712371853299029724259351518742325861116242443378499113618728673480139889083286737181282522712614236037118282879786435178524962533009986306371477210886853431295104394676873272103305564792030087055099122069389675838744720345150494599771083731936870689996826296827998566686983719073703258971119066140541012179835937921641752068047588086864837773643335239124449531917962247857573081043511341102268830832834052247284608787516237997082754172777440246416137396141166337104226541451344041511772043617231263136161788248931818662098367676429382231766508098081109122083113394506264956209901092157676679538765773013788114877381117358802077264618221747332588832958656953983976238728525074784139392778351571650122216176230321962933732596027813970626503231751655571638175276274755568788015565813011240810286027056835751610866498700010661043887917721053117911361806200554872994509777819791326251217563318759014560728730351136658277447266862021072875584843295487605156958962319502344474540032875823076534889368040102877250009240979918935606684777505024660249985136650093136943541355217877642203589295333914642508513152908377158547766112621918664264497764110505134407458377962323110520698201231431729508279657592371860999017715318073840623579880331047567360073820471626557006877525595724225284816420547487294445648450682184898042610008783051538914895166996874752662179727027023871837345632067628456395255947138352626634862200647690939184080315922652995184234022920257842296160074156860736702570183517996747121681422696365096381844375331894222062627525763606567457360600223661715552927937978876989149459694241762121981914529252827158503216354135504677315820527534497945269528992594166581216417429683495912075268555726187800418661861823627231003949714166676964071344609263695824297303716285593326347703123897532540752450863949560445699666482302492847983877299444330708393180692898333975470755110213980294224657058402662786998346391362937371391185009396532197323200477055186070751048098143232762969511115175104008274231525229791924122711326286733843667072706622878256330416882402316054081767785470375424048947763930382826124370721185066417036343165690518576208501309182276203366816170839140502131887981459258964007942645910610239653408259733890824100915561402092544150779195849665462249236248160646865064821566978257425725609573647317271960471763705567232848319189474683538990650861635458459850072009784839987482815215721252878956978645659073255155376172177010697323226631573716233960067702704018142755185547575505930037341057586501091748421113627908201623384373275291938857792401909660507620552866374011499652154570177279375772627286208254226375376729488413739163281838838698612522165622931639315497106978560378692300925772587530740406505573838357119674769613904988069818604052714569648203903073238145235501241989206765338510879267158532458253530624432573816084204284496042986737671987881756951527266117816291301701345943995401835890127185341192860014948073770993694410654196526547619535581160368789778183524894166059244224825412016816375585090044289713613072649891433028005181173673199945623524037359636340845668116529692873869999289424240859306940786399697334322442260258417679283323126087101806817644648126880619925341268206789223757270810869488989230945235797610214348034784757938105481800084549197299919891499895747084589797173290154715062245972455185410408300182285996228501927650258732293346053276138852541904774159445878679511920626315402165484690126645054520402659811593235698313841799552014975165514231625499991813842275147988669895421394063483067958407862039783176114610033307943691137429739537125331758928007194607093326789193331989005883776343758953616700153171446304251863628035095196479764613668568701639628482451832260953255602396695673915138225689749483555186695765150020268347441648677226738724852104634488304506327123595582048157026847484646880419268562076855404809272443954244681339584358592562425017077399316471043104073783770383691668556269005224080012494305585226132038164452720781867000340587654981469801219332545367194485979067803113636807057176031028659492481707607437746029810476805649690420646245253906435715790699501306948398636965810810016009794455652229883592762110826223213298898028359256849102712320532573483838826484123545385471159249839630753392444690489067810034015591093392281544076084541754413989994585616313124705321338226242735063763975891119625124431846639367795849469490388036750574236936472080787172340037920786103562131793935647229172483175761638449487606278072464244207752753084714242777355762053424722520890307078062096056332999461582367667360891633714219924876930514479496726287875309656731113552295722313017704717496982245224710547571108514766725388992822109066500197025757210171131008244811605344703683663296950465766741073108647535528776227246968867383663529125018643519535189080085833592371550328811832051827895799196360419443665893503203643322548940281098613974461415996857797976796276517227823432452632310034898453730095649825884083761283551019200206974022234923662352162876843841364485656738983089943117094617851560033318057433731105230031081818869455515802290094183008140991982718368071446336800096831109636323125313759887099299540140898628558656781017200295940407691430112098616747047716680444449304730669837985034578131826800981605261938435682905665172104950248222618609488500955250306020366284604581577807133757755966899331903276150711153399597210887523767338833561553364740581550931960678432096550093076659476714254219750832170794429930215500749847642796147128631594117745527974327795887438641251917365699556447570049589248573270701570633590962833228072794011050929897009766485712886414125998944347652857964434599026364975118168776722993055103734207372607034799925283299560041728041171036383602226910868679228353466495073333837766616326687098111257076107812473079794649928767831380656054055329391872789847603803593311035903953153533333167207091978788502453756889730980833464792299114867829046887168519608685365865620543834803859272760140132572404638503008085435428923049099559441643591130870375138627557831381576742106706920745745828798536967254390591376930923542511817136612611448995682684310566610230792369906775461870400266599600271753260396997995340100899573681228640057866461220858598063435329382854921114241744719319397400967479572294394667102323027291372198891290821392972794852108192271248165160977605674810297419584220446074030159489689558785303176394170940393174874533756900851381076470098392961733277631702322584529803163415156556370272698549723548819956155794950584506632344077721073890907250589651337484449054853142057977816162023318459101404099736343608732466033154415751872726039528223580242659445068298118478788839898271128333022563618917844809052099864498721884162227237875751932554999634674687945827871772096780310439553153653873819226331629054984032521027783934895337730920083765674058940515989280794783518168524443738013381735935112416670429382648696454104178885693479658991776677857239266941660936820536462026339385671757177274830942159954263223091655914539472822452290363340045937152141766098579479611258107204340140687809104159274314989965501308280314616991981239999158035050613125335668451613386581649107571614321736126567998817767842349126879813700774830016841299211084494987999365757481775089145726694021137326791414650850242414266883994817401080098063868726613762571647764627974582885118629723335752364729262974174132703491752379156281581761726498542838199031133462238332889529147908231344909190652212393172201069335797763764957544667354501112863171996624472112409587002512354678417457085168145000279679589783945884074141675395641929521159107383623972940422724756675005039740798002528964283595831106839336296825893963036161969892949922629405520314334806990237838520165585585500428733190179678293417025214996777738535117918439489924376357278534575517127626588404507665362723937420221744850748536471037197904849072368009668004060250535272939060566155705564984378982718129475085145037377116603469054557356037190103013421659933310754140323847772184203809573457210186846716344023453116702282426881152833537882281928869474530116904144674391016108424842863162445251656714705304663518024150246429603555348567214183593141618379458027604535300952737356225324026041337326321474113702223078654105873090844889927863250339686922551961310074755515118436014104019943954469423011301447193650454661037595773961789573204494807733314401424208797462338035113722453829401428674116304021406798305652593588128888939501851905481970700060406524726543525948063812876988969950083002783979697198519876095447372587500256402284258677376875417538398442835010297564981391248596405510594292527289735743486169019077544654945015237156965928775760259949714335540107999602239316249772410492138569490452826571056838067267844423176791001279793298442507638373994117078342595078228443899677862412452543282565247034595839474251009810236318069236200213975263059660121670739403221016205790177674654708340783520213138442203890225543961660920855032666276626377740884567811900817635130579997262326666913553242339476356618493847114722477536884264719259818826748993721081906873364674238701529131537717786604595241226236059753533580214234185184634859929975010343605709164350028095222084747317301947613803499192605619528373720779529133125609588297828284260742835835741908913132525132687086088315129061786715610374947442342104414348344121534029308608862322199483241916204241140365082269854478233437446905641104397402338948539666689168958762507862494924130716384205156695005688680307303023538157167584714683492412582466910983604544383902564238743693129083390058251579410101645716991385846514129823047883039878747327394136220299894143845219631751047413030011854781647315159394955660728331103977424117053678653147868682500124556397920780259330005345618283460216833778114774253829727153120683320748451424616190345624216352763661120616242564690337294215338836140843849202288645290667698299945020239845614985939192307771937473418832607037189953825746529866226511728269378751361448860960591685570763186175495283489773012641964288006661243785704730869950711877187216444566710083275496195743192239936422198247173912120060946979956496330517614479108150904979759823006569478898745287967272008096603459890635699568563414359207843553286044862400246033429461930561418277579440120692792002804318517553689465403544483488194909691183944696878099799596951868841689453813900434852617321587750645863346577447574801413100304771630662219861817143697805346500021998862386418494502483403513378863049418698087053624160020783824299628874454913298505786977063113075821601626568112065032752309766576160350557517773395313928752741523548754927404623656977013261794707892582972390860224777051537939953367629009021308977185131955280759116286323268046077613086524756920263381020543464962024693186806778070829433950912882942201536145897508123931778225553025086827806025111848582354194253436935543741227597520345559857799760453007562231920969303579924658281807634768852364027903979983693944858590284540526053014001288649377838586757882989411834257514071345734197820551781488272259140082628751767834666629641833969266537191037699552863688305982622555177283745340238728977970103009868094058711186426890373684550100241555848611976083242267666978448903658687174070618373862715669457042958243697722303911842476351920452022375802026336023294285809637106469221356781626421898064927814666774171689654030520292385000978817089557719186961274685841679972544805891473269451018491355669448193157266543621640964760973589088025557690817598364644068075669188419116098834841754488919476681311493806671792883805261372517254396699788316515669790578221192440676525579400261393693151089521752684616951259478579873233814677206385745062232595396645533227713513070307485107320584855167651065996033720950871830244830263995033983746489055147860500382213366114891804954722324478729301400504668742105462586214398926314337294153878744370323279353878794340472301086093442728421853661489372866114248017013223509616962869755137636242379299051343458009095844484876193300172175538375209417891883298013042139838437529558800386542136120472924220908091985142187217852962288854333128543346112326195509576500585724672383472197357832474972255973818026453101386440930926311723963813097463206834333193009916472913418382213840640775793591255514237294240016599791859564930955594858545290395220396406610067549878544656243887050327121742326933074392847875944315638334163925996248357690418381614944992634881607578271306874748299583410063237720206797073413082931812723334767264944713603699346608951396851255187209707152817914095000541646659392164107964355436948534467433110456177230826384028512103955791317873321769161063526324000248392906265954795258679782859752663985699805166175358366835391892162321090580983624690885701793958900177377388396361478271038332473599437936871609156259204015633437608509149752560258003133224062350154587624300660872409501774150780108998740071166143305282464030541088777578055843694371666611569607509982930906048814941117076878910870599749637864869942339034486340777649616043221164694741123694056606102761584913160438396461200612053690750556686169568531793832704489353925362044788841709567127256356464597792836191753625396682755705311130854683753651199154034872903434952150269034556756959219682210840455621121261944683727506710920005188202852616837850512736716984741911485066308396245561068408089885984448155679171151814356209283217380950981478765765707121799152829335430717134855272193551522273784152343060401069669692796237141126789132932320884030288319173310071374122570820851699654609748144821843053934131456151025146807977773320051617537246585320217032366390667564979080719915096800128219234584566814998809610031285307604128895499632155499135380445477569163781595551179391917558937902443750342102427780594112227229282990430154939001280278134165242751430480510584463081193380923070380247179711557901913729910343193090802856102866667732154541839355043775438330848541687814735151493262469004796227615733696590007757593575711174720158903910427112138671600932484110052594131863376729718124656601084632476383508459061558473403887507493833891910133438377144859344654633666963910399518825271938093343673940786013811632349654349676970310145781143428282377731791899385111525097187289248331805423872862749476402651544734444305780672075832982010444437726971697049972654539214104126234355408644684407040008748409174521726964005254215786714767662492509244564063892383826347389468661338877119984046898972689692465702403073540638840120674111003024579026519944608596827172071355209654891716883135077348287952246206330404257079261974074898075300897037005790352238732452438293959083353511110203904624260230157063574280398342306865940849035260676051582509219040371539440400716876076789376079283570285106616967912189410829518092604780659193348809904339918129150822974794662705806039854391160906465005546748493654087138958510825028928925374170769282272968016980098719251593223719191101145889141088321742299053425672083390954269933401608371132693661009374185636372239746770688347859858746991193426197631638577563349013170696635247902927103116151937669810467768150549448366256241784716542429386131914377607221273662502129459779085963490772569526382388029615975036945005649723051759811912578783725597749836058002148913430966169676808919864218053158664896746438598106632461349632472755830962086113723887589142592952788941200427106449201434652292824021037721098911479483324157924280411850913169086660318572819336078082722693287490485924490280899651666202094154094153815084968320139814276270460466513016001463010210027316440461411282157194506180354809743002946013853159897088646272970454114761357833749635765500487427323170652752498207487316073480532985183168475792489914294284292199257179186793414728574240983223347368104058544484623330301121326752029819207752144883977764016907277944555251503140598823889364152233877903940948721481300610493653065173988137532249839117185392188657914850176988232188015472804518745286707111238102078353986066408804267787508241512699490994446328006641066890852032597090840332747960813369582566707242900066343558491552410831124912907071599255524810058198425482999072647040537582349814513761243924784088892981156840096847859782301738103531238020205824217731151028850828868604476392220319125143340279008620936150389779007266680236163575312796066243909797468912062267047412767943287254372565863654726406886451698023412391777897027519846514788336852712955461082324651138290895521475064851132493510606038293954565147521556810315046541857238468664074557037917481222229836501193623573438307533317957847089280177684297095432277199982635340915934875928206944297731735908203507181010870836820489779026245067146111881445842160520467152609047316437170472112321086256146125836578814999633784317730474786878061328561873217982723835083614176091578411551956108919272973673317268169270901369850241814934531917453917532830981937850867871433422171046974419316379489942679863967508515142689383172262670977025460749594320791814764359542990091930339565185193633627034652668839466259991135182439238770961541471648018565122146530103105970110548104874186283140221452053746180740631975331006895161060025143675554453203429445078041684793038677504510311140322130239388053966323882950100394810576187219177721831189627195549340664215660949165514998246006793815399975384571481431400282267228014603270544362913543648672923395794552351455649252853158821824617088321318245908223641031098088451685523721029126590893289579430803167418462841375927249984261693748535238907477950179671616168773229211271054213869354175523159290536590817293814040933219908768801942991285188761151581708232806935312845882729610555842193007047215364382934971103450476151314014074353616601620073405008228273520805993663411729450305747595527463473456637922125817531317706992294077944759783608021146749418401313614639160192810441490445711721913579015999110727706368337036544596259128303356339905669879414665853903576968094821077915408221485290319202870067370227280876658254261509680792998628904895373041488520773572624788620665867691535849782740857703105366702968141174315009499554481701628306121694637209926848602187980379420897440928417303007685072104266149088217189507902689639478579109961093418671021515947366281532899320939553460735593390750793192877939537994788330458501549171282604104133351321736303167565771350899505004313919636782098830093114357587103256271540949547781154638098520240463116920439556794686463316414284236551690040601088267844974494452308328518896089019939280316742199846638956510300561348416467082241341513883946487061575323880967671320814891199756391489776029612607834784146397588626646890968038854353940789920945632232947522544419275098024374490090643859903309885637059160431442354115921493485055535927109281530460676770894568649703962044166662333925644151152802039683185291313012639745205503832832047220858741823842918192382575280656785265410872414017521161149164043758216699365445118924792641793492247738194315472543223641671053295185672330699388273767360884377433172902812930145301165205926233942190331182622286216012441714253369207994932413319128574252101906920050317381241388628978847412775820792053184124952195088851550489360875339121717378643572391218194653227266359529121185601979563451269189778013045531665307357432763634907113265968695014309126463173560204784689797624186833053461136295285853762003467779847342605200500657883122989245271277234022117355342414129691034485928891828065856956494817651206096392298922043496078867813205380146592997626986456101696765086808788585828989432165745448395413703933564971635946271818397989955827731186197427655642187566584092963883734569714302468857249076261264229333809320045674335730104898555541011533203684076947103353395689863679092459394720874946489872033976140801631161157641525408067114401511638724053813490646653259638079379014901225785356262470855279877202918325813216316670659905161389014732126230141442071857667650131725469203373457351703517702803436819182094269426254037261790881897678894726131225559540313436787835863877290688698587202381739316124611248947955266727086722678544203499797428214124467738168695772298856298610554906341749727886120134843915414284120983164207276451684824775491037233699790887232385876816987863042559733133408682977067336711432708686437667606149925709018917428746543892672983532643694996135572899007229488210491659483487415467548474445175185170077604618650697930187895014723335960198108391480974112309812776386641963184124115680260004285179345910539508140508594238955613574334374287000879388692680992408799108763547057510835958053244081507934715784810321641799862508959150828671615621013659462179448802475942228234422418324713169608763272738105649220023568761940338780209290873076358267694958246284734307358216445798476760455014205798401228162217234814372276070758030290247556194790946282853602099583501998140890763254705035276674146935025073092893349452119325795839457048124147774361751407047009607594534402970109608773383834475924704681408736045447277050194622641590270300030505425220731806051089327518416880866013733743278832229819562317778099087340904938057832247559017775861267921269689934791885933535150550985693494725852015021105020151375705617050130601706401941777207539183033582225434751612134852754490382574571173504710037141216102980910668937821652230502095350397500754015754954485606952418093853617429534976218300791871889648366013432779398382759422480524278084216994147547523689258080529278115291174999305167110651656998502617554075164504105459511522639481054643423144507651580132980080410373372413360724035184970939440301529868043436690629413111776772412332885406794475426662615760131809562402934184719340084710981291879956606689565974054622338142367485206970049537057534674634013343843995132439620018393246535854883292474354487631344543548762262735335898208103321618443851481731858159241055301937912698584220403072623637519378956092928478050572186651106507894546284991136527651530289532099965347057649014419179004867657195618046900471251990866400062660325793569128333321698739821776776650781555473083156391184443953054529603499281108701508968778307270481830654585212487549123828501180709598459550459983834881592081117538079879994619740869661464216555353047758083607532371275059990792390833274244720997766393336593361254629388479132381427674715009669091919209031412660828042630473776059920482609584491448112359986356249233515228475420810980341794347055913328374516341480813510328586328991062629534883030091351679991177928498432699368582775144780344660007681978835371196460519437801937548568932810061246063351535908397975865363274807750299645339343438120596841345525537410224794410615193480422955808683730418137932025259720654596100165089357183681862834434618443881238058716857554383812541346094660217491287887748590399486498033170104494707210070755082152739593314837322285703229390428623346104457855836979124026871607969895696600944626102955773814842800188509453333068176791571636232099240597277163131211403444019282905269834501833295695255242271013368295244755791041165401687206955595942958581674789807879053179339446939684352687566901733037832769849085562259128136350763637510712575057666607541651725779370713206071375053815494445223094953573656308478581774300993003045710614524731877381749277409088474643274737553610391682748297049782041743180766191475020180968635023821943257676224027646451297337518554652756761140462824712354179513463275104804114753719737965455324508413442110094206028843556437537164747981293040486808361835464039776566497913665890965707287689286230569777382727722214716764759330516144664774189647094539405391710275420839994556749448520968977950019205957456775286881421014878464320064472174751938732682878153431709986767119241192271415804220693016627700333972922641249051510726745671144059136072483255539170301872256755403812766164317498872905399826352894794636737152586622972871382845552548037027305909797622975230603029549566516471760818466916400652468480293722023498159729340770362450337394735933393097335471623084160979565293854208054243868015389379625523330210671921376333011858371210313646891202415040684818318048759873934842422651753152393775243301260035853453500220258769781894026593928398645045259172525935695357443676477437566034993124076788869789986150253373259371067647602156948368435603443041273071903101169339533015179854251613377311032230872456757641952710345781875599731413779686268630998514853187520625576089017633034227397929780061249545045900396921159299684103069974827666822855039353752810569750865889847724174421349182763051745528960472421599062871637819179619995664402043161447318343330317064400955056556197095502878968559388109931136672008664425707923355005939990913238963376972104718584052067183873689488280134896714932264734827556347121640905729266657654770482689670208418608515128227668418975445700308561633078321721057454081844557834478640060711714816949183470710742818008312169943505427222748242547148941455383777767732541763041591988115897423877772651017438677243182973738343645770771298976598223895489576962420563691259241015065344636450367952642991130016030816383363787827868762079893427450551792589792725848959636713120287412385248064080612460968167054719357405857943127587143076979977976666653005216231093176498575727506936142869241966052299830644635846425500379919189597203757930271881958258044142813096369377927588500348215041830144843953124161554016595708866626971093557066481545196586604983683154576771607465734281357232366529285777801584658011779195205944687689145816075525858757251398074852610138264349848420072319903772344986064587243506002252089726924690995402539518008736176267331947423978500842198462440589091098108214000333234443645465001168396529936983131955861719241338244210435479918600882684290137845839744913375188359118694146400457699527498492952819860150324840265708966291293742115369446187334433423588833464801595571938652344012290170899504745767062506848131928315305065765813181692100798301812835830144327952353455770055169067741495780924286581534525589692325764843564134953973180597747120491238963077206794375814671945431415500576407179668434081392439322491513971807266622281110883344788525048657536644431552857754400214969114273527032263473849676617515198988220015537499688729941333828096186412617233026932862905372069832202912783308540085782731320714903570829087381503910857276822573397472779965415716711009849084383893652638960559929029152190027573656478611129425365556680678941933577947387779053523445715823201922708348902359620224422740775837583114197664896281455498356983935628971824033710491682001923752571113312832295931243874394013329347905374330307980737733077396246228690748514574105432149378337309277626073230166450648020147546993659862520716022823018354975053311607718268938718402143936920444554544269764694399994887159641680261616406035877375597188722818789049794090964234975258580572276727082573150962557128273091441994152054200959664518569210229721472954396467432787754217926457515225646845595132019927902753400082698328650164155452446858402775598621690802496492815147606526798730004850077690741842233232805606812929339448054199927338645331459275910891812696441886294408715811829907724542324679156274560178282909224888525169320053362067614049332160927185911870768888403719737447309168780117106444634772053031800151943820678881761522610297392042215936261065047627497818810217379037472995857073933419549603561397451707127925288806872868508510611454256592996125481902940839222825827056161647305036726942438474008802176050797434977766897329023458414663991928210983484673784339845811575799203441544566660627639599213847628273277537267265953553450815430017922162194442630957510852330187154650562722660755972556955013383855333628535965517414055993917043064867047815240899441266832289629874836603004885967454589013365645589770944770413163547751346060325927323124344125157203785552350798940612728367121661138533215902129882997011897768618856292781967930772727692086499573538253556736095871256552099582943491167449660216532794838375753844530241765871871827076387345512671187397934897780456779825252354086687876078690644081130419755890960657447185436218084442176893508598099377420877405724146504405562115462744209943145195487977993275046995392102208986576322394185559416743188672947127434464026356949019048803087777253955589467847370118755504697557067348677404655447118944957731769767387376813381993593459762090748412198053801174761117363455880535646156148895002009973826684691551181289394728330604076308318972295605751530875376092739853349355527009514225174593092499093265571401389188059448555162008043053419404871592069614108442525389242709749021270525128445530558406082928002497216215249736164637261072531298367827059965816291759975778085983137170030025050702178403942863160856266650510510329592865664650039277675018898423114077429873300751130281203538345086941641517874930593677493927901358359234522872636427190400107556792086941415918665020524325427562693319475211290735068446463206176743198574364914206398686923988428749988754114030978658225731448363324379780735600348240892026403928651963394921221387578795589167601698857742412346997811747174269823747487242894685765900308627718063195200498792392635306937777509486409858251017233828029797859419363912462810766897326893476898399162996159257666408725170513660983714496396045866849579972137032848767140269480497946455445604830798601699541097251415018690759692220720631942318273396527022597416909027312555425036394582437105637081448849328950522473335915027951434914940173245986540325264449792787626310707240381630357742130866089671887450563708214049419914894518211101312811859680515627079315212840912027676148942565312030910330476376903049202059034615228127347183893055570135475042397293549660360402885493386795535882324291626870914561229202189798433277338616041868843108333154536318856619890936632504275949431516254050248666207496349229402298835687924631571472838907869493328812743022854337572821892383248796512773460670397581520186341893611903176644921116841678251225091579058179813134059354669186276534689302517043921938517715508302370018320811362472877531733952269127822443222089392265316353902152031302251373397192574117566650928621455969769630926957997457385315443242441558564730007955793030576097387604207165072336124345813457150870684022951222297947518208673420109295713787525407756185157204209029626398143621870364507073272548420807460576463215519356095321434768590493504661890674658970456916616260581495939654291415018031876484032732916907733476618231013124581943391362345456992282074578884084105530589062255545678594379297315068896550188931085676915838822903765376119640847946612353187194464845955218716601949311965621573090217637497064819038631935688763526988601141293753885297601709441323201607563601955698576454663539606719443349095030357765084741411592458253920134845762764429713322801285523901575966812599480187358847086175876746354226705523010635385964627882399945748295600790490967280537856225011081665361324630410117674685194108917361033462254292969623155920266165314359875806260987403235745059285080257587132411167770449202015255095502291367970134136224715771673366254921886557021028405813938217106298092036369985307460515116145177660863289898007224861452832822502291351758808929312146081469355024253845815660639043706656688186238700558780946650586527155438478075128240354278862608242343228118083312167343835491763889923846862951355838806406085369276354649541363369204013275570705662963067427796400725731434143724145166184553372305102014710167980708956547770986526164656859000207356241151363962375487663033653751771877053623622058188273925580614074617401405088921215794623691081264533658477118243825426448248561353127882053113258728561267264585638234824272201059393617357980579675209195541761911840222127330871579293740676898823866663201938518308771040044065025882625412395912237357512536957315256657349103910533945179462639833993246529047344744994469126369265150371219097547383272980484299605032528680171096440158794223661579319977266025117564439500282926642262251993793443215681042466243131045230936209424339561627678096754226152810697997774942078297485753948648300510190141525965327617618279468838055873267851459819708243143960147497227569943545300093834072577249067797815825374272781233975979069846090974533640778435338041079516952037677735426485519778006108726861828728497564111096572549501428659925886595171891564831642763529344882811814256680671402231967951500027657295606027279664607404437426375454091833756745787682937567201994565553695682189585199885752269183447457782815709472727181987874150584534841187189222033033466194199327288241870705874378316765374431134323758452736041187053595179714346551613235830646319801199076518955308689687082116842048816860039958583351307358926279436530957146577436674554698287277633128100734786063458230336417026709054355780603367558315541630463660323924170736191210305616872079852518298860340015721246032803927017990352692973415239406967075626103107460857478128772177498406223855028750853696351396115110101347989840105205681662107058785816837631492430595887588271032813662884183125675365391520260398950419884739848604094146426762014373907743528399955277194515187225855956326996020524916388490901223259744196390457950891844064750322084745606520264992444115997200369466629199609467727354970386604593181900588718649253321034998724294246520451366327872312124540999193801184008233935177812849764953539807715545784865346004583121771959088144494403153625432835667889186394537012289521162171780314476034049762391263240144618097488029824985987560167531554661941214780449059638656462276240335596994475227857051650869548396814828084628661147321465309918103803103914081566076371802219958466347168050657845741528138905450417785016137605540292165046773577099857052805246542656641140417567370070972197942833785992474010084347464391807443361349404107525075167342113986253313907002339965648892671992825761693684390627370814256059920351951883955203399155627266241234693174469756392356312792728907702222535838835705308723919986418163523702852227072717779951893534864688143193275730774312669278848559363127301813025802439746121359565668541747740968740448445990585998485088390071142919311986887468184013071438577959206651784339158885153095032534005358450886014368693682424625888721021618801408671495955274047319132896588017598453327242830088188140082337063780561345042846975238254141830058344710265568937286368413050066322417147491453714632539842353071235093527133272242678291151538806850889756556236897722041986718466007105333744395787420469233416687219048614679623819520672772596737152607688853266431264721170581480074115952025819290809982345524186524538034224069569304601954587363404459245487165679108711727173016141973427932002101163293114190637429455756285798027132858527936115578730914921769658255250487555267015675962756537672260932142067691578625252781424019404930968572632818714324038020169336617342751317611030703269651538782103603681765839303926501825931650142128009295022684892912335345007170855819576428386775469788499320762563881138693452723026437297288996834093482899111705248128872836806897224270928361624034513911905668627374046150518909512043364558607019396847111291380642742007717114075584425620967763541258600158963585367696312202955540276253694782150937954066872483255124099602370560403441739786973380301423409300525540286551694205294472284533198035658603845754858775959338712561495605871050725259468282677268164053634085695684982394917251119822323135153566103977397638092300508656162496695636471495704033339647638866142232334734510296087846905430061126093709724887082053719612085562773353216402575509594239545209216712266242935082871064892712869195747449945503608361652805717245323006558896265886511683406650476555647073408113720278687518806457066959122552145919516316407207438876897995485009304006087981082696032770774288328844284957033162165467505793396706672405239110272581157077226490129626535835062958875973991297500400185507537667592765188997429055202953712157708713610286156589019462664277936689382152646308844703578148456806634321112892349975443620498982837934189336795682328967448313270555330202926831352974987659712098995943224121075055396570383299954482719665255571886052461535517018059678192311732068246256035677641350037111703648730706144706571225681798508065403947516185675011363392668326248608957630445068548761145800401126306420817439062415598162400612127572447016842668349324382396199865645000863723359372024630568804983275670702182037129250394819237378868594806717607964048250523295071820966129397402713589011789627642401604553349867772177316674779642933751983219744596684704571871011793548836828472076235679557113308227122424739648203577336415053438179714722654338167439507698030660385697484186652130384115869840025274829817201000527287683400622896905975676173415716890936468908724811655621122955425857411068460262970436081972956458948984919916007720026899978043228184916324529162992288235429277922025484427208587550454848553298924854623240651871462064878110112770608137732246798265330265675554939497080335353600264816786506174540608596869227280509837042536650279221292121556395107786989290471614657219867527763444995298872418779206133332278045730831406939031287701431351702152858191947466382006631305589247297247716129597661887178151801716138697777405530693968314274384280819153320174784563086366364839617704765684954826446471321731946020471166261535873706356093363468983092072280962582815082945517357008144766293915175382619225638185047724737535686882326255330841114876244183798096884634630279451330956518399487794572838368356225008051274688062485286250932249044052164014271503421930461271182235993290877051108743360863193951159175680652876670689522028860104450492241756182526285382754673853868125257222476471184746829715404842111288662783308769670620159505352279832281121805707536064337882459963992966046818124300858186649407476560682709541814049583556909201697062944163857965356126795740918812010766667976669398687954392174396778704431858380225902459363365323263846814910011163981879551793524180695877056682764371798502651531640469195000173963817311296420817617878240732354614049768933642483954296636600682592762896282454847277527582958505662092135234242254786708116817308022001225678865426135950132897364304986030009981086740536954078582963668302352327872613271479785441365153647966704272379072559542737548946882229044525380421597569875434150227587117927010051121492122861661424167077906025392098959749098662302659879942451276967592813110307904069491849772398127671473641361794482065944492968687344472202999042493868377365287232692374685702504019302256581077987869449329181082177037570248521933286621762374333462769357254606442590885132642842520857226968934869873907985120861186138607901066813258055860187496668045191068594871600686957288554590813444734998735931263096040714213342553588001684146258736291255507590222639404052337533840565008422505136436071177769115679398806136633869251300985028523299039488501632602708857238924044416016250663430088168421373546201542774850300508408062701883428735670538303551794313024697131444485228405023628751701849813269049230610285901088694786993902498016003225632869967641867244550390066886103553983349213543693225345069454282884759549893835989836853365653866958032007546765189098048295154947078717031078930996219164747552259156714613013546003709357354065687026440933794230682252436293984287446093844145894041874141576184488005827520249195172392064242037949351488208333765641732354114662550032131041546825696506629178338174850474415801168052580548747128054440667503005117866655705934501828865121167284733899296264143652108474524960930713939500923492889030936817680821856605511773118205507205154531420731361321866877991893943707236400883262792894644047834513831805030808251483750073624565665154361719528597008658076191351262857125311522987414502029060138981076347569782831959474125376645090064912258039908955182077530112240578125990837289095842960652579642435923805759601428707710242399367241878344232291747993979863665744117825198336951168193217973750175932490861310604946998309523243838938617311039272690466038035657917020362024118525249604343452615444893499862981688996223106894676023781086195778365686142118003114474859286896381897567798425696271876632067996787270173323476605828384709396478157270704476169712282727043826690791738637727461506807042938449838949650491480798881162534692056266286021028302991343244375765506159874076803586024794674129095101052486843734898283429945721670028242699855851167303607147062848462269654936417557785993220609660741740548541201941914466783162518720628996539486680516789088854701665808957569844056714639580270986714432885739656105582864401591591727050270600369607460418591425065800098972739891058581981151366750879919504367712515912522998526413582812687763858781009720779073308951874659704358031741856250790194246727992420691660431437410502216737076709255571575647463838133998936739742598336811952695578523115087554911458263505386795672364981220648886632686973667792627074190203195563124220269171737971014553509749893186482856000920831736601423013776027026497941443065227936282204845308582206965644315167058535354014350866616198872434578130735580789567911858280422254511393055808752212822177585923764691780150307473773339634402043463330530385983983245547480529600681467488862913217464830580899567809499906878259858577801760964020284663063839722051924615719556592845315512076197758755572561908882078011730148352272019494177135215694543280804463365437461259808730164501407422152677188641005218372599751240845102128276225629869695250129595457041539641900206273683974487710002204445529847391890255650786616246612265403287934223158368908874359087799107328106497241877901480548544463058551057272547490192464488543036804899952818205594187437478306292550968698473447408476276957891509534348541963384828155545497390074066661621659964559961647790446075975949454406215483195957516653256397629268227276627188959045406098278686148466200992288925108829546906005126542487511268215987792549595746300657132877569776021645008107766730031940159537959678450334203489279677451654576815757061182266108903797141998677905807562499802738034704490519787478104269711436799873248273452604698604857683990765968041980816486625807149608147249622232354675890013125750081938375864388317411785836763005852464571251426937170226953327188946946942881573005141636249729680435352653995076060311165656871257397341777235163651561704930519995860945854693124690746954730890727951603325520231246645035408646950877373142599922443584296511965632059705455605734254168521599437421074322521881737537448175651699212523093556052873411909529917123184097260191183323071329865652847687469789985115714903715371556972330415146300948488405711926578466319989129573267761494001024153013786426571929058738521583982837182820396074736530494714928766096133547194317686036960819096496991706789859847593564264920794986176524091760468835162544742587978910972283741024033237389923179317722487378281456502074422015174937049819109778371361267861448544435810686434058793032562217361158809236882274625807990254497862931195248304977285173758604574445364917844763917680610375588690383066261640131316878509337818163025607769758114567123141823679348881884792333385589195698438338497307559576401149574650696752307925257517146456275959864423687792868879404441083305168983366891764170990705474997937238150347385945025479789970467946373005562459801950950047055145115314421731619363163094159874996275606911096589742400627336647749211917302613505456981123953921066465824127078649432677647160393502631804264089207363212783302956223914360445422939503124468556145068296496252046419646966521207845180510175569085523349019566584165024813236739871794554943757953741319043936526383145147781604525403198995170550070713724938118221366078472294077157067412931326925286223210532623987883603030036850367012731456943140749646770732838148995025164304847529617150585298072299195569144913917642867375584555929937344870335605475736692859031007749709446600256092769048204602873543256305006228978167432478861117446381948764236103199429302772605870173219456945538672739665319268488136815533063781178139280289143670500506878290578549104700901934683777597644744280410213253784452687104148608320995856185414897885074560737541163534049254756624235896566655846862034617655835437155110673941296222016784046877319135931942596020743455455695830629098530122348037223177764982380121540975060931332338617862930692609516185313239853685120398993463210629341499481950242365218217543133836484441420081732403087079731825604685450828078148229118757740623714759556280641551078813712420590614515576888287186575962729958786426209860197443354781809770931482259425191688161417592103675763172547681746009447870683767815174022404896619811648107921845467960627637435097994315644801540049709945177358005050538565390195124646499616505758649831064271196889487421678570356332959627909569932174711396036133810945561796078482895331096261869095657752664087187438014846679225829875455522897579339630586074369818299373903702580083822250999507676445863506043424746369156787666383352902815823391645937658412807192604347536255878241841368823035713449516933310111839437187585623443910453196646243122712988855787209215917053819974625447108057844668586576137015765408869046802141533121241500332721265027123195954947862077751296395808392918300269693383440989346032646125017906063036768295014445382459721485996525861325949762015103777535623889916064580309240512292396807791735251002892939814677384530763340972894745546704628394838641895376191932044104453365529774748316567861014899440103347563897505551767808676058637513025433142337577229084618275066627655192556779265218233025542923404916409852357973522312871882710757476138921947317547631408604357515916544014640509541878215576105091678475948091621773866183139467891646102352394672480403888140445082483428808221703225473143803878189702533469762024058229310959405019085454778006277343788384216885753837832896270164102893433101165828237297849748344696555413393961585423036413710089961067446292546985706441421624134350154876491049743571069825345456461947974184903246572077600765087648242295032603307435784465273164504255621336687433022984322938409973002038331856161349256886308609383843222487979455179026850167360334666872895096283001358981960866099963212011000910940799729463116812660609464593676923746152747617005630780034197524960144015646580606199213607234528212887697889836254435907696487487955653894316914730784158642387000920100118000971769777903597482981219350805820604780815786363892852091930573926907222995534847646702419413836475015647493058056898006253506779921459289698487301794083460206653499694197052116753765751262681436048788712758245224672442838939254151767248730280890537026211575929924169158439750950612647365178863825541766795933678494009070830429856121988100275684101742460086704714130375080863028233144272871717301492689754538013399076995893286842979787699751701620536927299503625456761674666042342411059635389879476233590049413802862618304203762863417744521953153454093699637965568869211252808217244477066381391131800155840535683603591444265850240383200421982013277740550303965817441630265825782945691095239524157132178512863540413544114752453602773241017715530327645173557662266679213233072738798523568231543718405159575158093784087564725905343279835537640959364938141115664844085525772810203284061150644027380698309971002566814900983424918244554260936076424570181519892152589246985701432947293855556337507968007399185654442907319005076687768883155260426190847767535802131527155591087576327840526068324811877459492877899663478759859918008568895631796577361439314411456450760866216060777933828784933537971508146896878621010710201145341301985358605273263777620591156439852794358391029337177992079489464334922028997100447354362600843905753467391243817413260068217807205217810230371857019731634714526609701369320180019939092108601526760175652461619993287295266685739740072182644825397011287057048811528823355412326414323207432882926150843693629943193411314598163957566647772242207355242458529751506207398110944594509030511394456918627890363335084099335151214828180409246542791916151890216400709918632604402770543609204451966316083026024382923094252539104956009918574213151035854597864853557635675123308141251909109505810477864643111846722279991241265794329942388780793541633356822551894861101966139172494479809990162555475325463414722169752884375551889337667442574987403819461190589138988919151280381244199448158821081169052658622169535661590168088962119688708394009465877281607237143593849321264451316962487165692705408968453499432500843495852069190890592088865216004909507972170379194060567017668608455086335524988458115306400537674521637855893240428849053557625765044460701985770451112673543943302262549928361211194270178636619490604756304325935152894605198148233584174388257475129062831135350597356138846562392238110825226659758201431304989527694184057996576624343839874651994026802352304987081620994730984785227252760779521080182122490737336386413872446513408267622319149844086163830400128876606481135853709885385518870350975705615435653562138752305087162049392956535140920533243245695036952706349974016239967025149265813517844268150840741330340588708224936868887865117756125965171034144880125601589153116371043687553225581804088684643109040692798942982528018804183217085783346001168570823505598328931999987422560654197775848154159369983823299783457778211191644212534828000681206906140815947954814379581515705600598009254465448639240796155903814929296310086359492339900844908893482836609011748148732531016181769976670128036584275463855284862246504739348614959573653301780033582019122319148346971916266931454561941266273472305411675638064082581440559565060256234133833688037551456036736441001513820154218062068645630302268862501969050288167619033370706839939324144765621282025228420516936077617778834616374130798856661746868324648805699279478519900502240051084294937147265450855239716625092605975788981824592653372014522288285723280230274226240832792788155300170326853709029268799066349348403900785904319960769710954272617408219674632894220824174069989236155816328535398511869684113628772252369589857087405562705009044771589233879152377522804089674308114379054482022490992300896209911381565845380911091986981381583432203006552416215660612858685072710023441347491031589964461865073674128285970825446543277212846525440272512457078447635932253844609935974455849713789352042004729062765479511435892205935729398011379612190510267508510860526498375869427359672656952478053669689267372306850022040440863218526875668656485261052909357888393365236197041492466287803766503080493535470801512684269398318454210339208010850888159808846104642416594648397973851691940008359916677638768095985923229806438397299431416688634949789461538835770086140065991903716756214348078762677918393626234477821971824827186008704091764045418394455570122819599039344352626359440940790593287755526754945828335461262004534880597468768450502123900401683401058313618345061091100709529249245311874951680760872027695532235269606863150941293396800362584457933783696649803361840068728811750675205156869082946660573763940371153837978102543462330614808409332503423037541851742103088277988427462912636385130721604193909157970026975413931011118218369694898251946045962696809508988378930177199257991458972163980722009135730381062383471856025861180802783356851784023684924186999460644106285869069779515121522242902376148347161670676980464496454501084593003299660160230095754581468695513402229077114235224260032552882137422273707805506134198092030077427256408376280633489458082160137583032361432399765677624490522849467410675918787465610324047005132419480124900116441920622350232310911267827460091910418865510798869150862477842435473718266359862033744083014831635722662946841226112310947798440345770162110987080813698716171229750123988051197238685328834677702303580190941357655557609556940497115282226830291262863769787542787264728916829407645418465636838029280811656910375572162703185977073650874175480900575836906051733631371062506204103108622613427891417190442616311917661919758505357131906387047845139444854737761067591060826472131225935114754513791954932383156406301690953105279597874499969566499797199149834642099047427961683576170494808834045995068116750823723217235426554257685871763789974149731574639653101658314130683773243480129488583379889618986211550299702651659721951784571618065256616620527318374845946181636417967613293506543969305770370239815978505148873563375676630724097308822377557056072388075866093107172313083333345195267628075090246096453197650415203603579689703610274800650036510157302619016704571855381859056179786872287453290784396179013488339326087777901870053152924164144961638474053083654785092140862156503833353506939825799120700340625260383162280049075168883465708713832932664779084987734975804179784896425214772105876858106615706307636565102056328016342095275080577202249835524237076184588694628644813179731902452295562533656512794470033476015639997312780292232428649953381364190609667774380182517212543856240755799795265114599901464243424046810999387663815754110410375254562334396773284813862414933672042405785267227462540259239216468947137281847812471214695787968479251781662349203473032714309087269241597368107517731582080900623822031792120669196695298218597661761885651199914270137452176866995392542310383371753897867843789008304188781382083560447450695505119707922084547017163189295482491271360514433184030687843484003430883358943630521748079217722156177498409393082765212567747439085480966723766249072123588261134347467160709809802243668506747933019355577377217143214154359745393056441896197862430587425205483668325656759363059412031553187394697409652369981001031082284451361105975036710420581805227116372742476641260419125861756188699161140593619124605800800053179232724778185719081847564454922166780552366880124078846453840501498894704797177701627460669903234409668173769596349358953877800384181069589779374812483698565064246954841995418650665193952462321626120054932391381871427441189882967621102230938550060205145815461324511086440834732442976584418156662225883881193970594707988820650999892810657991325036216217389780012416858413122859788927007068570821977260652842717609562966014219952112546804479974430259345391285197792575713650450021875190227232613006742742149777429166244873355733202195071381795045369648471630770249935815068760474618831457566108044904873342138870269408723732395374170440013521832358617496582494720549927368245346676743069185768567173431987923792435697943263896870359479169872098808225990776657724896893901145343256087470617920114178334088146573797586616328315984021702076302319833355057782329678075568646078332939596016462316185447545869297286011406423830111099262025314338935865017022864861618996952764744709356240978827286990707175543510333647611518559142947080685965322961412228546926638738202470898121699871391302289055287414593478275564605965209695713786441952428856511811658718366353702280416394568134433167129714524212576671383579319211811266742393055080468566185476224763766273898915278510131302289791334855631005059693475310056833016372728652246140852025646300568204480657040131913910036172055576493663030416917917746316681854804141976106254123228573063963493997624233362168362808040064037272618033291574245379290884789331592154512366719482941676326995975259988447178358536246270463017280933531666087754927753390995798076405754695437178193740545577083216705955004396457163306133493689385171201593855830156508015332604072892575216115490380449333289182971200272561866361106937163285278084221136043810220825521330674190727069435708696970818546932205494035728678097163787676926629751464868354454404791987350916660411477465180515184709868161422932627438169703296870452824237990980373395803395196034855004465403628415533203790777293905327617738342415436335371180879939200055026836181633682636032066158248715804578609611617964182616005312742250168571452298234475717026887735338568694861983415652011354192480591914133791875541731066257473452225827526334361840715644373623944715127001302547910925715613981510218492237629785174439179392696716177022811051492842249958200516947318942086822843821948701233282464156389389355595324391797281346886168124014671983022786720644743735080930687176150660752462554217114207750830274133602026624611557444298514707881240589996830771579081190245405626431148230492107713451126574338721447358701465637101222201972865063742568619546025100285587308288134855921023298168136262282111396020790974409963321818043762162843053283417298971373897549305173833818494798845027369885455660883757874692236030450217730953958847144266329437332212783676670778337663065100560157407614304692558753207708809289502523280440255284965476409771594678003681434877530144341647565924339317692919729571632587677331888108479498419632556961951497644231020703874253421678730628767367625403353394976194097427469620526251417550826191692542688048615484465519191459527036224724905524822801215770683003252394569839050789237980980791135952241020806300420603245856683510190745681751577254605386644227834566332791635504479002336712343473730296654810174572194073335804641180505921246105798739779758560289569245511102442509080634751782195744672101542178676309965022142606887183053344930227679342147380456619328240874614456829066148442319392130316530783831966692253911300015924689017560003464642442424307328321271187066784552532642746294998616891787417515298423378806127225564955153451209274528585831716595886593031829210661551108462868134236264423981798645691567395807712818749642513980746361935345740874492710002105533949646377135480054880104161275465694247095076117136807820600047041320064494155670687477771185126052813011971691877319089863828214093938405841093767612045869772524790608247771993556867272531045358259433976405553029841976141087381393651454625121349010619455133644138324749938974066441235054731662022363815744747198233776108090102204440845832471105209858156553284358178581741078982265253150121235222474156112321448342334974251773093709326281022388595269517706699685355833049987295863673928166185746370106705643051272118528125077091119436252665855692035546000092383102001110931676994318400762959825982660199942873796904235283982352211312811178646295660269660921179080475535437792262951526128233793630352183411761442116200403796637774400506256723295655122067495511329527954324219057489878417716824932342998018290005462028497861908693351711143828897700905738528644036632857587327809424520020308986357442655050789839324185471160699354028870970698091649798182705408277664932133179903879029463806556168529991705702747012092523151733732800043435399367226721369492488144408180182001712972920266931697546359983110599893526914923116080920254496357117282163354550578372929906182264400690413057285713143930656415308175143064196644781472072567861421261668990631405709111258386009545763241194870446470797087195280539075382006553184575984409912742124049896088011064002158255157306374444199581900103061297911671169595681944590949788533292053670092989237164643907445398713922481925890937967685701576808325838251311679532979008067143100324478729398033797647362923246660807544416405682574651579399495552782855355631607966401842151347139628484269149820215039347707354218887721927540994704385585703161394124286935023776971875936826721105913016018563390660478222560125322911006176673725987894407876079092336331377948158585938456540482208879675460164058175138841833715369532807281832816122167000859570853770122251082016708408767297315646208461932744396958587931956952766318181232652648158082677303733663578285971185778234005174117785760057761680194957750091581725794793320869553075732369653098011536667839370104762554386019102242680451714188936352258290901031584239545139082439173206336125860990673883317232811773808948512218762823121112510923976113461687758822178083296047156784761432798239944178635806093327649269760924056404742512961284725235045175583203922486568814536743730806910100541290210121504727998862379669961370278902063164406838818435274556802414284781408440171116468559751806101436292153713708193404561886800604117395554656684214921864940401689608156104093645076365146958642172820362860485521043420043578545073406500031785723229386154946624489843419506120669939843844966705669327973524895711674081799058435248890992059535727350623254379947985040692242894167792301036163765000851149559976804352729799037371057370442098540990159242777020187289261966935893254832468450837774683004625203848138663699345210279884092593207928568610783309222154715331915614193689565180909316760122993475827114428154033985129957329071039714489060942305396490112362069858974305129737207663730583927348085388480934547781168003712584212025189292237202799655649322351188927032058137735266280529625395199800441410315130121192065236504428698455448233163373305707078716252430313153422609707786609066950781323741800799122483796846594359329694728618329446108995680532462579916844498600841718840914284489006878787814546229386709993130139017013719168237451735394033474955041891880862272447338378624126043146762056268083176647076214277841003753213136020557109853611252924421277113578701580456852187164231965928136277694827015463868574304433776673310017779381243706457597247920867351636238141432541843466784421077505543353319072890160773872848453696494874905742754919188025940700871287508490269422929738115752933076151506461475350788374493301149730725221848405823315725461587845607820513985019816858411990300830089070526289082876695124685487799433897146317752294201803549915021712420591137929689737579579758268944948437170442884117796634280298714701270403674399583661369841710384065203324880330611844195383872728294498742208932242459364537011579504987664963661268936182211148751544627665754929198461263908467710525485481156631522611932158748535374682106022528333770128092471837830449377046328172743388085912080750389149541127486856333620909282190720598843536769927739163065645067572560155292891947980496728614673005644813805149918369057233199344391507192165073654063343323975650835460676342382397830116567654586960717208141218612560612997488488199234388925352103614537185851287308154202715577924782086236224463658102054934955951624642848697835118557313688654866118177138934282788850448470848782033560241904225821561142710931096214876701453933094694841879820256199181116495524016414466703086166334332537302657713868146724843907727406473754138546617411377015465696744200487636958606625443348621898305955920006857145966193598215327038786996443318524642730472233379512149435648940864241968662950278087711038112592364481716473791423017749042579292599763816450796676109617150941090980217782492044228148400594594412039306468683594778714421103677246382696188743436474697026318161119335207219305585114531452142408550684167298092009168742839647970890909742521869023046183313406441588601843759771978048809672581240575100804739199504735257647607734814953939813781718587145199213306261675417292607900885544454167969474509907742472370060164046391202127038777316821016757949408254819769466792792253682951076747753164781431082723163848005964325690085156028600452690846640993711991416378337263027651905409046506519229103579026652974242087619522795697476788846226136996673756256024891581384465051207288298784364759586109827553540408091171999173911161561999598004205343635966715488187786593439725675251403228664909004530459229479607357747088704677626206998406750568458654579948355415003783388573306174807541218816255793527641945568860604183570185334691087680269314754179277639027013355671742309530641476879187161428433747847641277499102426571493896399017714004699278733543293127588616588750255203563941940358659191131416008502645962958138147132733010350048482111622239749486944990976979290101734829556240632837585831304979070942450286161187716150613323120443573865110606730590599311824017141785249973810043040191081786142299781220551016850346600886415285408668146693275803524844925890834167355683660587579063817174328367564771215026754324219340230809891572182280840380421389108150284930046837473669220562266517232743496689483050315249844398074007691054342315969756482479014912430882207778099065177994084168878375042781886933175139785959899209884049611722474717170805260087900363469177515930355099879656461142222647418116576541783632840854357155872369043244242771946162460984419605820850575627442404370757392037227594310186170734877100281778017731097023914910646057534187108348465108743504847918146105187832414835636722790180674501185029565965380831749634000036273559243973024862482022124172910312343640791149135905434968639632973557971635855661770225561204540314479419890272280897325698140549815639975292728054602356201294155582737988333019353669785055371069035511573950301438705427679557454697903181846470525456054549048634899850722952155644498318408912939961328434955520460371576293607433140187753676038468845876417414210286938692341572229656784533719576566112152719349847416169492980080081338307776978309019866215280485461712557860095934368838372800457202096314152721834767557027113715329418069915826019690083574655586355368330913247994227934210873615099647431144012913773606575670405637940344163847913152446371891842478274931689507144689152364584982775529665096449027726109212110468404736291213952820294363196683758557859968024504338731139664382034459570823970612828526547056458498139632207686198952785411806488669852796180720328311992840818009474837637021323538021834476325436988841283353224810619261015750810800416689145417997529851600238264169346653781193166823067724034397839415215044089941455387286326986167347379806186432602189002514525230054271947120940445722646114551774325631495584648165362773569893378949542425554720288389031573237537680420458634752814648493637653100790707344025824447059067961034776159921128759213450994677041199908547477455834430081469453124009718677941723056211059383473171845862378326934988238102979102328557191418246260026714447768746640312560711887954899483760317230684551197916743038058137464358991599779010436876395055922420553056903483994752386777913882257859137529034764162371016059647086262985424712170176174635469928679104693947717455565093051576537524889370254767842859597652339035596285904061529375127896832661094753654764835688282891592076646839707815140640597858216585865685113000315337317612315505322733075172332421701534181770471542040496729958234565387285387822478663029686959003324624497359477713726947045992686624044950090214497473751049095624738054523249911129789432410184225894565368862648252687015366382313514876829173397790273145413669465011891487604795292486729959448748457949826307104322845804276019680976750435340506430388203017812803442213685865844285395779525993080016383685750363017348462170049696611514615445946053220806838188778966122599735629300315286018866214579118412097756799731908134033620222176985673514363774751487904739786602771608693674922559756602440201906874234285754946698606267015929992350543128665346225116962217779669850991528074357766778265267697502877900683212141714941884565821320423197385979287848112523705839767042942721750608225077391678787810173312889849211536212830492974581291726467067206024087343530538098957919006236497167629251426137599809327657596391003106928600081910275750212783679534815780285032311036579864228472348921025703127827940265667064634268776322276850517865429405700796337147776374717263357093161004422102531821456909626673694340198503588734094932297920256249890014912530417491216204449131404737013442219382351294913534665045203020436213215378351302811751504578797863331033844489242318256371895018356941369556821720118815900538430759942728345044792986558888573438534568969519758138829140731814640553896819437347090860635641162116727465849913262251561100808995071551371549314557678182569214040185046162427798751006053803017673874131182878858808542315532243163213967483779189581112261268211986089615901123074732007932027542541052063359492711567607289677077057519144711552308671516454053018925194433548830019097116183587522770693628054111906030166951144942243970660305187607445361283797645908232747937426971921100835819837779565325265690988895181085159838029706732254909375298126229885580666017888385326426863741662853664432352633385667506378127671066674726980089216976239883323675329761113713187123247358382385017989594467813947766898451146571087430670295516376848597515559861634246753594373092322474625536746548083777735308429266602478699555593527809365118016704820738791310361280606763408924219484797734227920420407936232923210843403950224836776281808620572704018285147024114696854506132054027700650051263235886662130033666206843256300302679089459656466466084172107712441795075926632527660521735475379634457795127407533151726288490995812333858351611012012173589678124751732742842961076338620549386021940708585698122829939038538938381518872682864433771740591113678784576706548610984855117920779029529329201824434327885039201624100664021157582611307996553585480657130925333759487262566600668824985190338149491918141754335803438562477205548986760832178444312615019766541081989820133729426738615884366913407384041301340493676063923700989538073926391658631350150917063547497395050813669345925296566388464437230370580877099323341888096322933085703109992895571028100719768711619577823770025792637715030119492525261636009505699659953583109271777420764491869668664201772217289733761120259461304107607602080284314173029466136712535488779252224345087992413609410407335211513505681539587396961369726628356210989711655043857099870476382044624757824042930953660508755524900625340329176183491912453107681462349768840577878682998726054017617000158621054063206633301820726965920502630143953456526973582056797844333323604010531556766875929930599522026056803920062799411763713575684142441596650136030731804361166968493780692111972313223118658672830758178434205014323696967417548812849071201416545554373583749665323541787808873406184746478977896681828240913452404761477802858723352169171933633836850039779871802163326683137150169595207717969923338380918126362202669732414088576727771974886951663256011143080863566701168830786641378653188842303447504782411881072757014595134620086507660586170455953847044125987099248504710239442000781029357067582127730024041583462186378176875277021171007139077628845294054457773935662608925794632946519129533699443072937368300764875852468943914474267678057577859506471689937792596333752421988010377050436853216168265351120179834486831698910020881400038314215890768579537655172648765310204869690999718737569609398689791702174088480255788972718582284350105546231199522824051770922602690191636833892589556082720330943139089321741887669391070867180085420311054022831841894079201055415322835521947957025281010551406593631777549707118365310546180831881504238870087127552441827147943441032685200066074233597284563253468039895482357270959403318109507136950266431807644547328162319999996197741075374030519488490265499021717049511328448505130844173722172748263934835961351148106783327072361475294756936142590760423996540201908384953255458140593471114569375153758769468322840451041560910815308221301589825653652097918314681146378457688426613549552205003904340871178934888373971339622427361088435533065984879599082684889668850666722996882014703657733025004562154831399856021037190536416379690487785579976440923944691309985548477070861697000836496918706456648597585345013185481603783894772952170454775088959268397036218679284909118802941879104405891108069658620602966501827971142289452550294947110464835404920725811542073382914076201348111425348792455184475682413822214722737504617371896096462798048205980527760115047883394504652416765499054932282140544360286556683989261803473186051700802508380244307099760513156422878268745464715964065025609301514431543486784050238538777239061797606390144411803454376535382239761443795846203436241356398524154006876708827729524368998158701875181123398700941944857083165305321010593342345553461715541741108566397248120036933370656900140058044121704776061872550017177370288108065856931468135742371277748330938794638975048360161554592170944504781584694248226684481155221099746258713482426308189961916942681489961904822546239368276295285139821823715108721437019478133674491795582954201980534226884254967303694120371974323447414647894080175058392103723889322907386464530492725073695565589205110020892566709691926646184861247738948795777571433734864401391059912898160446366438575417457398903576515435759488871921706347786785797609984249997393729434111640750879487836910345942029350930060718995613539115163467507819495806177966492524779395755209691537335303217494712056158160837995128855328116024880975776893199499151474780262570617179154368383072205519198891091916452168573849178971585986161333816346021478722085468716812072237538196212976285643810873302850133747347888402963813744390789268341742866774550932368114935062046830334377258633176797557161815263400840674708393376250825868410178556095328914787762851611048387191882026055895386110997774110859049159900654111582236390648183959154451942691327023265383637709874511099585262208403925792599353804883261050901912188796761479407766702425841591371133606655017313443009300264263879993773842306550706933989409886156366268625848723036079760652483523188241708798892987630168175603895465585121464489166123810780047758458379298999729240580537528951783134061691642779776217180081188859486837881319391446083149738739763429046595960018900695669986871528451770373442032911032473744712858585637448120807373931926694661020438814865258260862796400494421190447003159426110804730484315451204253049877113398484154970274616202903249757301496492498413192435333645058261677556002490347074827891543348400898405332502961806297205812967186981226232278137721828690219553992900538107267977664852095443878989921332655523832269643742695533475588052130941015300300510328149576295424182651276256420950497982336778536622241382388799452526136581079217874386697181055727108635552841567294858457673249442711178149181944735612583458598647283156429137388053978072017395074493711565361180973686085078642676348725958170811634705986901913431826731533660084263077418433586436066851114841543279097282409205953322998978236347578724514728485872750036606540385842686161152275830973981187061038303980754729117546907692843715794065691849059315871243206917005742540796610121841723447246946955099964370791125845564882650583605918945491373653378331390050376138764693251233792070162310026330975134054680745762181008275305567699680435102919609515851736303841404864643112788857578337170516152010946859972486018479123581836798434492694761373920928659818156789269416489247636409110236989980632981648842148658895233133081912600223770871470664160192266152559963835812936679692312149690474900785755177694538176075909854807331934791413818742424952200087903876568396642421117919448971433011876863009208457657194658699007362478276841393885602330010604863280556861304520770228257072296203079053357152343451904874085519452323185175095411555124017530490071087367175142940305305055591841260608237263449272354377528856540525435933452473082990886887645955263453372258793870851208943315767281209159174679452627862501767915437051769916081022779860462032574655545138314927257041178330357660214495272745764261190311741618537261454782308908601717598148646542490799170552157814523884168315244298080449433050520005261162133190517402102238879984648106735416125402996704487089421566443976428864106976246725367949972242482599518107588448007848112141770041200758835991299503033764028319638715278853646361315587259817744251060965889389425486663553299228695853852607213294603509298261011890609777321665164192999854753777442216290789289930017188568546199688466557812667693166504667027221471463383421632871837120390437133579767339128615773471206753416501131132285944910713744632127067582928575241020910963835972433461144063816587509936695363508160538339738042312762458284905927899275763569345881222251898603331943554575217901757180878275584773187505268444729252212486262782053670277973932804989282698637524563418722919887988196740302301897070479065495381341067776266927707687489078261065684572694933389875094718732303022296007857888258661740988584258620145395476733561865357484599389020335337189666782632735477408328891956778901703428740017866973792397304010066690904263028405693818787675159303850860552459935757140474212790990920835617272554256616913490718600107070688140497154159556870840838857801144325207240146084041781058305899276533446677953996146831922233097650369437433456652468427655655967415247229809690272424499078441268416311874703156786994049842101215819874952414391395682639407268018611377695343251948519397699775959394467554104279814908235258189879017227261030236761612939648993223223072946294801920289219131212451400480041438965955909952573319192744855442946848414304272905881145604133441931099288781191410209484753773409358787362594129383182113370027714504720067646481238520246213151153600302259510709039472497004178663452597943632849521046665434114431164419916954017505057363391510249583026828692658162210106774560506533424561703458641650183042793566437964176933269303158350970494247884985479153545969553817309578741534987342152189976910917117102349202843876007310423650894675230362661323935233710011416582110429358136866177789340885753379873326679413057531976375265198424202072630979183759777428845107372060055415322147645614436906315183481855809627681034843649810084588510501457077374579112115362396849805480028618262410709773854408256019070338982181067573021505738459501646510439984480746971366067675824362467784007931726718041086344582295786379123107018437624050778620007457969549851964036707377915749615246436111755319978202028540981495498651843347740903293493984435244128118474651596421226546577355336138820102406770588183062819873223518288683899420111898460479670624117846962009986295472152887160961252603211508459873159636266849362034051570240869274534791460235007652400113801598499395499196041567671818951530860984575705227066556036785283503546455135692096224283613577620759001410895912452325972643250703010242459955645403364876747912423460612996547435994478180237257034956720894689911287847930805274144542960634196966711283187099158871087619922544970170632370966337945957771074778057546313136853159109885028165317517919745549038947633599484700373563377311081741399811724348071355545499463628690750776209615240083514702056608013305216074633857050751641644751031742041772904120938272372545887874238285376527518001283194445053277941495740838272719975180262913145420861644026263640214355012238864843329478935555634668974818631295839000688815525521099716454513692833479977498653556373467788048306270639569410766836554750339176286184955283854137036609262133177576884384700162289386404056488584217502896333112606982005921913652096021069498330895195215656275338686417461406357891418058144139710424137511870593074144439415701527990473397408111819268998846434557652297690817024192467515492516926895778905337830705812334983795363634744494387373975650741871652759086723986729462916298688126842237626195369202366089490595421124870227158391254188533079322669401645192734232249985528547989965483094339977398567635873678187402183469233209483841568519584027922708399489069325539959309466965297638845178757125839542759229153011245093729733972840187208986653389704681523707969101272638675400008107994498667326250734437867780237402046102350016392056135158567834940062706873208199766584850703569797211879759724750847025419977836783236162562373867945496316684352303705933334123469159434292803923030067877742672531477853709309780580618006956301318765107291152491415007931933109917843065801296519440202361924383697266863864953397287462523960920995908812970634712517261864571379436201024686165267146081724730218116238501397304429136254571685016992697114485146934350698901786514043932068026436672922908098574272729701478912890036858519475305140685679475057691459391198399409164547533157539548279573451492966872757583947630642017016020671351271131174313285653057737127115664198154506497963503105164033690321612844991194817039847555731552038374957284272273588262685935370086688389399729866488943278975079563688757473215748676981710144597454769244091374489735698521938846905768855348568187713331363934296319504391554688496255248080811351571297649985086093415163479265057591501113256550802747507100610772162068197565847853279324359233745740183026139653776991818662926557331006444001238133610763062688848769204644597214273973456227485764313945473831499633271655425976827553986689217526139432680919422935724383578301782811334742764826641615424169684103332132714993201189326323414148754819121501587597534690690651258717230536338866128668874622272053883105198752126212170306007431386256418653407856434827193982000218628905606633449414456442748827333339037435394340381569335862995990390880213939253114239116484109691670037134852612540126895229933776599752338472458864504992580455184686938101630705646283533508404788842154511917396503310472980454129301259273272611241622203737258312089908777540537505576627074693726448802707281405705129309626841638683158917521904923572370336300847390631984223219729327324210662516200135169631230466299758999852285071631569046205731382066870998443254122709243945728895547278274597919434726073790823044149885809825371786945652389739675864791137446153000195237209862186590902615492062477141660482894117203900550438055893403745874481216361156202903161742045146778789496006080523146734991508392672145418583321619454260942881062717996676846012733203341731396203498875510966065591540567783318194497037182638108987789815310409546233887281790780441309184776356551980894876895322435788019397503157002397287839087236386529556627183048037985393296097237559970011384127073024142220747863770229031337342052438864987477008774867343264120817275983562828673508476480720831859068706414333869430304375608114998630007142378364143728392290469701751757180428212325270345394054339941843199996411277739385307071472597675683812288158679459782708441616033313125264830718417644380831224161823691982834211358461021340794328775511892709551370636150277516132606181529960717551529853449982041845915474689558169796563731350561094305661592258339635765175907566320158664819483078014909251377686017522259295321807517565686530088582607932302493029926250751466990137735277229968400058806431738665050594166781385265615170797733232790870640223991066205487220978295419919690093992110138478475208952722739531367667313001807892228007099017552634202497033167338280065762129364328990773779774757172952806841860782278295680027704253862543562587373178170803779104852121398499816224155947935509961716246104574607409982760578695312547000584905590393182283391366538199733465182293699818946262139316710238777669229369963710298811221697264279782673532204665791470897638847525455022290516145665925431685455069006593144049085699192928546153106293017930754459369352119505477884769348669830735983824313073906317565560033052818155119951305294205959131878173489799708847365537005340337638885767718692911798245748437625095366243995246544365769439614277752605687901281309303905158866359685290421897484905797742336243927023148611224557447035315900822522413132515535033968489154205397873380189339519518072331422599799322069123489292750279856394747768737740053057325410638086520917134633182832099969567650380888824119193871784266343988102804516040594411023528561303127500671050808803333724276427842457982410887935161508979149674658676926685960476427802919126721845337218526305058234005684212204438386657371953469738831102895694315343221809033986938638362131575235195995466908693271532242556725971789431555298704267592905885813463609620383026824502493301929955214443829877037753953039738663354562504284990206483773455372832709335060786401410179926646646769578017178482508720619506872195823567982295875533504830247642194198571195904333190983293853123085265107397200539368613751617734411048995119274722439658328212215188070798255431222489742891608398392054996585541124172425804137351418697865304758721630523338488520239747639960496688727821749865869892234500203274681351249379816998311134005812492206440828576507519141425591680186850720130274894541934316187188582191111644753323913708515339768407715710514044952678343786865510195295961013452943396435907093530571690230869110243122656567001821689241888313603476238909251768634219734507959069468775219667108643779746767778971146481754243975096390540785629334605512179285905882792366707302113096663104461467644970367431388952047065870254151765001309984642670443215941008051725135809128151101945210836800872384695673760911289002743619612931685092274844761834953393662175031071681259377433005622426563252204243725240947867198378276091252834157176216338816172814020208126583998521243608349572648052090898312976702936367196220656737964022751588724970498597265643805509140008618590510003981282680887942048214112367834397767456869809773062509601458426234268443845921144562361702518834697166157373091647549566924798662036368553200193689271220074185875529975372762495850160257632415559399851878314605230525967888357846698573724652215999086789885698388257272088813237744035299071922014953964816435004958457091006568805197601393723003264372373338769247995143678915131317606833644403092267755346305116538489399132032070213382550232453645917016542937820839053548941146027193421603739321779738092853924515647398470686280571332079406758983761393740751068321677826521526893064220371639891667791553338308276304458419727237929621868764294470858605347124783789303863939059683552288419720726554721069224999740771856493895012768368037519413895597168905985246976319413091537638099935990663941483312577265402176092681398312753787465758334402329838285852984324756338680196363780366373159121943009565036309794127585857469311694309756753072330092576355365386773035848114517609044476513294584522684363442860706299407931716085402498683385264997819397139873862865285611250499875002271399923490432322721554670267010619164508520157639533757351144216595430060350108798052317215973210189957345982399429891975349392553167421751490403031443183289638876739052710798348752058605898600037955001626173046223009260945158250114033434111134238972695396420498316025312635063721309368472822623004967913586248273938791966398829293425195863191998988206032218340969876611943691818947585064168542084878156529970931795550186780935246098799682788450363429441559042799738611270434839898290151685544687328060779689411168092434426071967856864666532593494470164652975712262044747662056434747989299679571140384213333343998578326444324044952811647279674879942598895942024427364299437393453754595725317396481395451353912348497006447918314914752670614871279042102645387315734658955772575773839665903671224321792898942410142800706737347151682704025021764690290977795670798094496510630300774389464218208094108837332287500211545486780596341263832484088748939325505043782342729277647775989062371421019138979959732305980302587439494914205579396338209550958948877056418744051402736425697622906340326548837906133943905593875716749863922064323474249381625404495441774490463093107200825415181576520145621691651109453391172425461027258046531529318628689916196733771002089112920251261695997864606953655038229087754829234104430911993313877833549762815910850041505373593674105089759512909532726161994112882924468697663004105238331491970665763084962508267694646017689282846114943446297980956527076936847894279775945418085085700544335183646624194007690922048079820103068421087781239524984080238108501736377911249260603641787714280472665672313425285454734243704933373053319924431227329440453063807194205410926554031298819714188805929787965838177494891989810819433310825536167123856466214213147078519418757212116625210017499872491008394564565865009743117125278864779225927105591553921156907794159419745993816447583701346668643497366379328903316419542210180173628530680121941066318522526084219221528272462894324936077467695371352642229056841244983497372971691979141597373064905467909555723204892434224764369492817376497674870228816443151262150860320100041703775858502229032890684386032376205316645027614237450059100379052557970402314691651576863521453478867500142116846401057534717609699651435974738303314410212201664636506440168257502407669429333364188545947444844855339333965390538386108155890212291896925409043089392945587320267408662277547679970513653078325121808998017149866981741927649014207831318761013503441960923818864901240846395327993072713466082353666451073045465404365461628069963006977107846967973254439169129322398365533949615130407134117620496525463414037799979876550221171327376734471143030074176292744968021682551276564615569619732956096059172713095016664489121783633776697242975279023083766454830949998420437879597107804953530935796354876358108896062593312975702136304566146213008556185131421594556417794636610400524516355084112608309769794174026275343572397853785107244209249904559175449054293617554701533934966979078624499789352311901242188723896652161988506300296307456129016803421614413792858054579234261379390567486562909323551312634059757298107258174381642061005039693286019576447478224671235149131544860095317861702540389476524023603619556657239274068841936942598812211351469540229364200740038834484084019055368342898024991884204106608910172357435656177736931806342304840051123432162271669294281611758482874816413456903895663934016168708915506706619605636420954384135391178550009388890018504593915686043746924052653125575567418772490104535110484536011339527842493715087992542637085028450533432453312824966740111026328880579435347669731197797877183091464233023043713247891155006130760709198623926767719342187047564895624352211104281930574096581299590723534228070114490210877451496199830764592165618075979500757405351279108388415071647998993215501775772524258876332703534024328209866863653209055641539255349580036726417068195702166997908451801433696404133297809253622743298038991806754274096340865389446213648531283288786622518618591142606592359548601973613586775879074711641546974821013299320212753572064542709961378560852885985237776897010174627865959538959896587286698974094047076247201446212818560270159526690073287852246008187375449001872654432622742295115728421462643577665697538195598158500921365538100180182180143594479089785156293689422246780818809607315384175975688889555187474222639640822358979728335726790812576868798480893565234369109124048336397007921090682219195938785993755840438034355788134725928737444525447934100010349455090986535012463874902465927217373061509580981154377226508625768845069920928252780146760014530746857907985610280700554469278637713915171108289821176041233997041047008689136111737854988408615516370786371587780765747889661488656982756033868639147998108002631290451282581513807366640609066416906428393684133859218446174588107359761053375513876756673080997757768006311639207716582548694577858238329499832783720844062587361550016561952733745950078743735163039259701548008260650726235203797795256705662028043803763140518010774183197203022565314198933474983592754831217723286290881105910731607295248237583011928213956837822717440079964760498318469984956735678312529788366687846456918758245316899806098160297430895070134236720872386419785273278735103474650952267929724679476843730994227677976590389560148989686232597715930485601985376969119508160997753734012597987574108904682654484121341557841898853400597154024849782762000564543050699273676372190867650072974860168754814433028818359616117050360555496891784647525422966746230171469408301867680416903487964486728480194924829294868571833277519302537129161261626095187400280720064712457709444580370353242950958050698118507975788792512029952682253270492402211433519904276742176700298310922979781857613944068896490316458174213768649077705850726641286749463962863802208443767245215328609339657525758201979156180490566932810185984059831059547409680493658311609667472361438032193060946851174229233435708394874754263116951191290550815531855052384804158942954667065919168920371008220332047415090130574023289756528418568041869749483383191374634797403564643624260995799370507341869035086915885794183710686389941527891232763156543926069952612669424205325436866489534110867448049524783266041618696808371134267209110268770502186657698406130303729090562895764881327372782720736618890886397013078618871684662805670879992520542695923033998232864984792168497118072511997179043093082764108377456808563306153320167403290876446966507460011922996630097281586019703468219749943886748898095264484472251903754647290504417760094435132634598156798078304341326060450849442533897203266468785023598509398187731242759229717146968911027868613936781833413682816582610068660821050611579549542417355464775800601176277651241662709759026959182212952592562902268126160498505910737289846782989805092409188477297499385513514841426784877859603371304499296136717200504184669096011034153942301647013937097129757520080710478629808748816266692283875403263241559250550916673088765928570004910771574050766467323768250114187235325057005025364216104275638567746740555666888644955664105446926556703395163663554573425999748571699369699190775908907843691366313464126083181453660789951735252813245303027316756683136535025815580069274198494261874265519303570080144159633016247439391421785472441292675347495468557702477627250438141267515352777941905355650320550609180032663053509558897744241438754453743075616979739925723626351695545311882713747658909904512642449721438100320368603725386098933009745448523647278044619784953276047957415945713230011344330659942061961718216351636120056065207824112325393372101883249236450942240552370750516632647468982688489970404491150497457804624189896277679386822475708687377990456082998274821963111138648331842597855069758789664095794411945976374182541186045366450666505048672030761739752984942872504529156387612512073740754886963959019602093619858417396488214446037363489500565127675962358443196193122081601210000013822649197110729378763087049098539714004073513917728243710632763463517320743844497245726868206652394282353194571641768122613087631793939134874006741138035469131020730662528435520020927233435060724152722986723393346210415357854461498363956112083810007795942334415307298966747096162962294031221437491879888568166028555223811119360328240980457368575209582579414827114880143687472302070573808659245989506166981928558362175919436789713837167230801260828459628592150315211620228793137318935096011031719068494021689185525461857203622271553331638456317914700452127443495385215575650140897636889975340849118620068551606843918241393977189678519928947599145337425255540324592687300857349989813778273391843180879696512662757647257611544712485920173012553204441986760030741735410181437652506694737322617505394335561870004015943778964462759937459925524639013482213334596114941914578621175873795509258157314273690375884083943725543930744063300684246459966217425172592776565992834164393357656691854565010536517302120515313289628353281401685831613093787361490648449372983752354831922221584804659661607691675795853063945519918141756260538641497171214247034125591184517699285861554905509682296059801161898010497410660266280507687354775539734153130919147643152963347043602734316364534632461824473881668350080769085794066228863502502405388762402430990182640974080239134404247886815321573346952870217704102029809156834043686454457311671023397350965001360318923951188852851244205080654646746236738339622130997862325572407743715179202594216512872462752298180113849005035591548957138324225031037746110554377174764607918583344786704815941813456304009472755618933515076039379508875783067034305877396800239082043571159567739798920493560626308872897903419047536927865760685821199935820041527319012851507339332134540948676626765308007467540836749887791367952530642611565557196208070584598943313055287409529085117887773969970694863792714118988954580650083937085226278272347679585072814838973837376543411171010396929548035922498867203782091051995057775624880514650264821039759806830026544256514774506849642719940344661886440706985077303216076818659377891718892416203060474348616955453764802959921358394234908595551976452654214555090879829182910730573183407838210057027765836924917231496956648801295017101387455304290416258990998608840537805671448818733488045375265501478574921474559531569103686659299628796641401612773720432861697968560069255288426640595464328484609406274472743798955962105158134795375222983295967886996249051295884687829593293497380354545101140282522083508169539907313879574747636753923215786318357760980956267556313014257351548652131221250003163225016967744181781300836737936936258298282634431824350275257810141287635737902346622284653476444100328458727048240867059497523064974480114473233264847437788049910918588185764228738808569417276353204943962388970992193048181706753990472590035060840267068694639878904410392274592047261938315739410115169885484353713352437278401161717781055836101745153943713427775333837935863515056687462596843021744835769482133207065860702510376788905344008183914511864430933856729927430833429051312622845198819289993602860234132485337523167524797300015366537110624991629046952117145548865091281384725711574966383606612580582183846118774259516578313394751383906060616321212005951539982860240982081457307556373013062985096706483716675261014478194343513007843393972429985029523086763437663297658630834774165944681620413929344546963833384124514317176767181629135993693137463023217786672966896981282886964745432503263107031877738821097984676395937493738782231752501315650606163414143283528144687723869680297410053941596349581589546339443647343055521209605666144380316827235314965033719317128807571568596705366539019933682837042230439195968209016895120286591825462342797739987514315517260948740488406633147109960793810887931361811355934077662395636995514994037641903274100615366164032619035537259336205534160398468808556973599484410296530795719067969991899834108608445816286474952069691860116741395103730870044356266570461474688645577466434550451663306593197839516984337523458359735249983476541914262914107518143664491294306208837662037153900867256033869769816018949180914276509286101333758107813199236499430111128734889840182462228606835023737615994490717337133927654552708225645430105906488630834824097383915788074797715922420781289781457882107303436468572167431100467978438238548689594859187768042500109269474415821293234185950343181449035688009821810100966934717124811034871231911732444110957917300393906811969517192209779504025951327572497846095439158023855555868697141683130450589913670750151357816968547372482762380526218705231999656726814864596037178345448743348509712738280903812364332922120108121407868503723414320254323569881402866876927142637848679976186831742362637916308414611060616225988218740977635771085121101894027659524427350242206513434776453281613273426519809373583707245336112606390891493595353601216342554643603020088092112768948396524547932548427094764041833770082968149609868811847697188479574518171226953752761167437555690698704567346323394100290167244354320547183462606209394136209496483534032094306197824251965730680666968521248543299509295940308859569928411900930909640290355433531952463237856954593045485566898987723050805357344641475939094852082597152200243051840249322904508469728621421172535888723969414405808243922235004349372569281305520127402144362685386638120801543476509377543948762263122030067407177472943211973589392508839769937022368905714227776005047792967847502233067960720424994732464148814614172240831244462982307863739539996419528901726441339644795798643758383267409566269225438538853719876668201828519546984117322533107287657994523590479411318432105855772887207921767035341923481413638944512375115560954167319140741845663529454633859794556668910756433434532398716919869234549834436094790729441322690179602283219244872752553053832818924964278056752714577708462410952424307295167846569730060654808432918554546788432744341777045268346506650433508132854076746919217191055296266441837022316675505341263868803283232471904629484888668465498839082683534982697128214623589691242386821748132346493327347211844504616683755254348827145125156303918970687164017153509060645985333328524632317030072364770126745275672108960732039374667543810572117733455536438785555134177458967206728454153454774214629200836596930469065473320143542660851304034653513505494184401111859121896172365885723548981397269849546818082014712390971359968267724852434374121592275874531850788351091190909549324985098990672786412489200739854944588486781953668122846184545954385843355056037112591549973420314348762679211716920652743615673230385309744688268707840736120495465312859327796196100197413122957186684425564885844010166882596185043512639823539755037186307158636877821543332219873177747113552045970025913881791005317223961398828600036119830126113032877414689907417053623713801269829231849439166061693268983273282364538929738637268830676067787078414071103701206177907033666225903615901707503801412926049696753780129450823391377005420949612628249142026696747598009823291029366451244148633416629475228407887783290829609462210831480969590277767510485584578036443449078014531286141374533640723604141230389786074248952453566591550533419054244664107286300400829759571445567793003769975699860660693424973816633237277930820462116887225514322344716740681184855880906627385637861610627903789476969281642172715935814431874342135407961939509377575917445741017610159690552474729692921007999322672337591420481022279576867223103947735921598442625191590545434350098881446153865386213692917654713214914767635862820548854043140082544226621827532996797273127596227878836211832437973559111127042083426548910699765827531679480274449123312999010335956109599199797242732378909249988729527549198331199793097142039964776774313381043162891103027461539394043399153181789771958788347925596425985204686881864363547955047159038010425763366998606435453883223665443848618592046447684819375968078323794176599407021319620461420849468634904478980624883363415342121509989979175341030345276641075714471693664159935369942724704814587454767115361374138091589532426529781944818445863919054396495855963241299681039290613598206477700510059826886194282244784534694564584872160406927691165118529481772392376483864948699846111867824720219106911863003186786393643130491324949266592288821906080088083595414779671609681184633094874200626062787087976766220345603759998191477572215181576630796048521243929594461398359865551997964214571215124441470622505116127405609170980918046841668362089618207701833785754072605116801268969385234238817505520605594958062036265340914668552958808949922675089441011424511253600501806804311765457714594807396864882676654156459738812068695413496143909945841499818027647899571258096534138262448072778678014396273389133389799347931382137171599454045365400355480137619948118856214252241533954563622385571932764757222018458035697203038670554312383031051900845193033189415047085897056125505878530140233950345941212909835873239810360790039731836594026680325977442241272267802872220205558140062140523206983766024239707604060059926767648292561892834053074306788543331465463179688420048609172871916340981030904970623623116618121718063886098504663683398443415973032220232478045485708807398089875319186407031552660418676781537596431787626358521516240507428098865759288289623004172342033800395294348537901071984320481352555849829170658797646790927213442400420565934036745508951201247247299525679060333457673199362100966788043078873504348739726023920010056121338542455017905722978297309054447885427699383197065322438891820599582240901096265115008241309569488052351944564155894565911182688020312206309394734562534347160722068154636773633145187568620261966006438676960137687324470307059260795218309995998672872475052469731113590684555473942677699975896443779600692255178871100635245256160137397239645025016055274716502976940054863700525126033337263466154504206790816622735201249807656603859811739887819590634895538435756474474962464393886355369177809363807708923543480038338843692428493933578991232378489423427007809730155444755377979806391794140604576428399838814380436629466329016756697585075674798072172438392115522518590636007838677940740131916224864147764931028819882968557454626398928381376353783844836448910251337799771289093300790728585544701388238588677171019911063521048839761584338925334428714195933134852825961458468644846090147177380106244185251303001230305500888131165254592752070273227633191716720314388135497769406415754474107442097285507863701553556639649592162656140160361641661246148205102399551833206254972640828737976744114352854625950822888254341447202050516173347615212622657869655310761137286621892256221954024900851742181666226297198866314182899009731835116788284959047771144230745326151108160902784715290534433939147506037753204658515079088512413899063549513838831820293749226351646154530020642120164981016015786887346331892616923600256552297810196374589874699968091701388207618217811711927972125497172559798099439823974129070115363731275883037858199934140577620172140715522772427650935678700845284104642318970680458150222291649450187231726574717379043536270554748368598538915557848153211279514987652369535646116753818738255452728015767942994694296845975722058554755190969847920040928048167864647040040191512592487537918119238029871359967477007174517610776152717636249091747813182277950529966386691242169003841306458026336423407592672474158368864875319093228164575033546831255824232905655971302309610726995577652534601123374511369026007062481368886708088113328234189820337060426906639463364271326415051435553908899475450544397264327228890274735822084800127202016830116035974794373215055913696867987715480639799681700898797772344814436367255388436825881458169482523238734851306940972497223303333128471873644560065052602270397485161221277548865565356867252659825536117022195171741357941883271032185122393499156570939225818329506587492800992814991689010765243941869767891915718182051699972109493312750995099349833115094707508884118368976483286962135366505469148323833164386595942950009614209859360483386012151235297478853272536522177459286521306879305699383925725007930372036234269822975166608925666410702588232041482887642327600402844381567550477918785999753342972544846007364639372757883316570514069490453131397179809950071437553988842257454215865475030473845477890039135591797187879454518476806237404047854791307478442498303729975608362268854223003597672445868818943018696274090950172567936371712892199436863891421697752132014116206704261600459776930169208444139831305504886421588798524404427509391359105377722770580373063650748450331292015670254938829740857201374780578109644247024320990390199126968418367480979813149209386245304837938494593491547434384814195522361265788513718994399344592879799797551131107671779628200268001663002976454056551303477069834672312739552697949812150833917620187062716566689418267495699992367633398188067751783975306582497704507939849730015759375743385598223617697715061759307299877721478061269651870319829254477884007567481554401217242761349376063566626939838674729034435385943448969972461301659784214011450434280700593189233541072793065184620134946808647784659712362807512482052746370796692098493073213857439117524932344621640220979210971949708566281722812441759526091064164578017787642203224168740752377425576520514529129990691155468956663825752616131327870691520871818290347879074817171695366066283631120430568780327296492979232462206419256584506400101058807557626963226051782856264330413462652071273340046284115295760688927276222903074090265537355871497848183219259380711258597624752705504875176987753175451247540106512747109743595150967164548392625943546217919157196059660401872825062234152066702846268865698780830131168562488655399401190931136570717870188896958894947322548956782620456059375430105495962927106801047080782176083723100115193803515175700122389547808551082105383469680371092803594074766304759002415104944129497951274570517133474113573816908046955968652967226730878628671227418640722609205371004643589075211795417178115087185061328923935397277648972666708957243439105437993102018797875281524095414461579735314047505514295267863847407602517641444399991543947926035739147473870005754370922893818957869746334113580331362028203866975808736942397255636934539356454827586877652901687778631627197778400289049632349560356145643162001842012972411684567848081960554927740226053321456891810233215726675618619539303460363718394852110411529083779013536677970985769915396834139070114829850651826808940368489423148717739231411282117989580888965243839392862579347080922540853573889984964161494456898238565182045060284589684847196513505706128937081602570786386036981558724800904265686441545094741400395734120344541893696620558477895885340427560303364513338029864852897948081860260421504358441606627500697306731257035491610190716206819825116995927001977875694059754435312917185641121261996378016873840923812835270476478608309367408311918758110043383259095984555420033443276512266572198341587432716149689887055533690930165557175311410893233177576170287330471875773325525817366807597549915447361460680895076268178117902114296742019138339887689269530508241645336851510616426889327956897284244357402215036341154123355603199398029203768912619693426434876708731275284293781013875095202825723719660400483693390587329892082210885281445002263192951473547632209098810209637257042561896300866567282141703246686091831899666732769512082651489364795070659101214433844690013512574213198229267964402848578729388490680785442378426535367193096244696337551985501864531928901958005960620537119529445368988708251629144515238458882180312771123045465388427245840338827336193250190321401195052986415682059695920605831171516554283388191442756285188622209984154262607353082713728441014763781907914107059785759107626461340468331427575028394081616469673179302842492114869221084805262831350983658986230054458107844975511881091403298108993642898320085233614799746704946939254442024530565199251860620350878041798683318378949091446458265602539916564559065923976417582778093396607231159971400516894223217239501649305383044684298680884633276611247313072272069444751967631275057344381619978942069139359768962270137166342005396554524859479195325664702438535641591863307122539412386544145768271490749458914775203743897772068087857689513232665953919901760448235147935960230608560904585497058216346065169311906244018564657514530853703940892020296781381196538446498173276146567330733352607642625707309075722948287553728880731157290735009088987369978269854442582743404920906076348210011067736603051477858021895193578498568881316414336494751727072473840414532998298378671331145064225478296372117484254991420694440449638062744097729020082464622502001348744484148959461816055168096917766910922346042284912478059820080707639938899128944175649915269632369459147822307289587348883078757167044136597165490326377064745583912527150079227454579073196632258921299082530067459942622611753434589791820605521756460593937132355108918764767085729987322269153681125691900923974871159688413628589157263506555945984047808254395645720860665129695506612733573624429289809677621070949006200947952574554034675312727438515063992624043452538705735917713887615308194369122081928872190143755446010236725244307982802650686906111503364599592576235410794004538622595883757872975049354832106212452576372926290388301591528936222830584973935955670593832192623688441169273720380357625761613264698332564680656418435399897624861144255610685956821176054974963746242753879804638675894797547718806030240701834634082719610599179120536075662693049075690354733327639879137454756809829344744999912446128586493980034071344962394580742272160718868436409202245256250037563184378462109201979165879999172696260858927031209569787486468403442993891657271556575488204247501740274346772940960399688208231597369504807828851605768556653511264556879865535459821926716324959339886288273532346051386730497853596946444731620740870932172090841674554714036671278275852898350318576967329391964434141085064381959766143970096141234204880106659067014393495769473919074537517873466306271200202745944703405320771665229141892149391317492227342350528663665413848894743537275681491075422129987433654129718930543003712336601236318340242731344618574419151262594747424127736876464434402627906061965514516345962239748805942362061910108285368813494084351738771797609714908981300344179184647914292520054747240803346094230314121478648799233246408359459706023463546057583269786125363571003314121896251803898276677629432344481942128420538926180684325278405928049322256812127599579823021703692976455351119294860404039109092387588037095217830179641173368164330734136814069158078385367771117049748592317323361422682606794595795665157923417045578989596048571176652179786240185631644550564674542450107039664944371470400015881195111362345423501443531491564212698180381462555887540226503853884652744018688656421570739395953605243920179919093625080801173582597271872940750767496995789655325346748399333033611842196789231988364585084219762776983155028791455538342288885283794909848865679405057898748660975558490983932828092552164744990288697696364061252336698899631725912832679750675580531083164589077606378235820049159484002028222005900442861065825345986668084399409581744167448180062236057518311403068989816569886775175511477329650158692691453693999064230112541235922532589013083316064321159239496731279611247411804862354070362255657695421557963750952224299574065642920871121548581383708041205723316252479616842047748730002360447434845253527910020513585051141558105265932782995089068293835336434108945971942993485490640702730278750427090532287999051897527877091643102408893863714072952617018774885745095065074771348837507892596103116332443752418862827242283859652221700937262240053773176475127334449096089166995211138797352988656541956741244990504134523724426453888011306806925874857128910722264948017673732359618564573632615790248378563123123500580674617810886440342358022465655160193151411121016487312938094798554047589867718413676405312089244864576170288346761360233625700116323025721347747794451600424709147819847662309207523398104432128494663051572313513031552686923389636209158037029318563405735758956561681504327312951935294716405824161477328618650521423965511262730145473684996311830519970552401293367956595453836118883557560685127123220567101441651483596417935178630503351536301232077826289198078904635815634149805167310178362237442363465570835976576180985980428484863348207601282490659776950410761897824076203578988153163410291722623089031687257360004421145094347453313484399706829322066547941060836169576495821693273929462658132898786346879854259194639993338779653208674636239984746005814796992988850776782409344536786790994875814113166519785151286954287200391222173213358482048293295814385118183750907289058527408532696322593461426771175263085834013476238600785917014747244368019116019534359867216190074604225668085358325286183980051765032175108065870722531896235481691588612710203314617848489637406341411048314958167858226974730768144592071686689875130849621606778686783175203534394952338310530898037871951772136968358822874692287261169466703507560194757611254258923011507867330214271521876391247036783753852825374064232567320407264005813042990390977129267348679102619611723796650250725168602120821589833004216255077836408727502599866340657632276163668797931755017385628470072177804993904395865156923541283338839176868306441236259282766877098265686937413035824825596436728417640415463583825506893578289804097782715354187766285518850280294972138790334596252706904116508902132976164184081429918909295526523610846443051990574978347704733376724466092809259480413584573458115974633687070103022111969228207994047956930484147323026400309195484517511074169396055371005717579141740602096728618716376949783680099784806283002387701338496631495560828326812155860824049114422165811766729105204822157974328049208814463384399209425586938072472677488331073306014071770858175416795913835162513212183202138373966616546688001833110534607651898598243883514153219774105042681534897867812226978535064912355881419570573807260978787841534682024939048613109170712869897810573470065635445555396005443977458556586073241819959194456347839006897034763187070225720619392029723767160645905810644420560518895482387542983164575443761435109211420873851666250114927763116643150354344063385376775137151318234523860984772383774446677982284507066711944068097819275599554237483815242019839541926268664119055237148935538296134657715787604804477384379161056013164703739933485151963153758981296753903030680743989220783324153951757540251994247469707376255679794039015689048767313189695837665407865217550881015519167306863689302583496844353664785564788346094560925398598085588524883531498611614066669288200079768375933119069422795714612149250973534128705951418228631724239035614353553496555192942172616567506681540429714363816038660533802823955495997984786994003578920520872270592843439018995850616810766058113972158596823492535950349458247056073349732426238190230805452941914227008152107667327440070782756433505176051020581280567497948109352992328832677954569623538783094065186719134080116764449218827839751774133401003260141203663030023870746120223674423092160347757225184861669141366541794885215043072915497673301439823785076679594509822796426480298790769616280662941887173631530794935683554027507551017091344536469413855264050771959651953241859836634143799274258612304339469099650826075117135086747229197622879787184825357682155072567080308125189093545191264741340226490139407816320980299100588069123746432563078771951654240822327798592508860507304448030458399639551653682742333884924797336959875195167181460431464053720926506291034129528793147126505782434595197519847469994367050818882384282188326635994543351013116252201665924502284377565982309148205123844075012777689198333963865824365037672889128536014400718628344854298587217796042367790521361304364395126775562928921069833850792058411602507922321704900381630236526062507896007566959922542166552990178796306463528280837046117999197575447380344072380227756798841346638148048799915507643178170794644524460274725063277449581907683109955106310653609069937809431087004676638326077148256815231670192310994207319500217254848753083097213848239961109939854239008041059888737839338204377173803315135326942066402719814004507127377845297106468534166079726588559959609621942913901448758524951471107794092509189881335059294564166673279818034612659234855925007402119065784389015299942836974493776277010835568678610389900253779808010659542535118323367846968315118086371121419172841611276054211827425180442103333187038781079327972301546905084787956533925686246535562300643273474980526728739749622995528469703330162520527760265612384893446602209424130554214213785493655999330737725123062746326066677208055840267911505138014752076962877704073041669534298307930316197995096083891172201811514847270386837530045105472327678717121149510738818838812081645157577260083459856454563103438081425843888874206633738451464288072968656974477208188086135489758233835261421082667119371111268764421724167865546207594763293729077075561885729153044891172718829815643382736765146021911999329022840947749361718428924521282921480609485863248722781343247961207782657605039599309646119067766555208068425230092435861668196719013389641049462700646865003664929228224856334418316832536650365224513647530427575909221679856390883320911050373609147322780594814863529511811059135819821428966273671909214225386716461610939255420618095475061254494957340185085977557147893329829038963144003706905184451549797715646218923671970084370871811144644562849401022954926087416692841660780142458995110197451115464285799970621155842791552416170187442967076283470970226555777929682337307885020210213448125736102674242612219689429817636876214754995537693935070339978484182320885093005515924557927025745699557894745275836704124115925731776490247563111199111018121348730894100124211543851764681474828739025692247251969023801343377064121493920195768194332271119508510320563218869459646798715363479563424313433205310978834873932549601769997015736137446405933605540301265811212307489204695930002504185075425775376593956614785638312104628282010659418657707263518109485868144763246615262279376389576019533685796594421335283918451121850908455228350452370173079832274042532476526372527625727153175686299197912028237768768142638205720206572418078851376799778054695216275838882782330925350036015456600967398042715654471791205626986177378992337022453402085157722143349823321909988689016011776144929692200103754110563312677040754530086878847134613894926734225672650500518405529615143009092046616419445674634955802631978492238570558224226750833841381069704044357404202064782676542417185217307923175961871810000783592288528733623930265325139858149598614795476640915462094904417763029043701615174287656519954853490450849671923680181916578645895599754501863975957671606560708580894284385848128875644422679046241756643104278059030029304166460922758644334703063842949590546075990685407928401160429596068335610620229780259474891027031057059622977350653734818236432766726094963727258465813742867004775942527240571821346952054914646777308125060623753512779539028971523513766402808943854757855214844008167958060480097134206763069857034725687148455866277537610585932984582289052332312068995717163629622560388222858521754247122280578515840026025326658208971154081972422735229896696686668403095771777323384797144113319928839485995605387710040701923276183762199498372821728654118047475521192547343956632637979635868879976547564996045437817466932272725621016672867518474962100896755485810637484287144942228008390104818310789189729367343737615922250462504102042110113793676862030367656955064966412139278961637562967604501403486544635491409076336791147883617034579314464263524297746072012761019278909918583405872448064343368209703149508960037046136268846746346389997779605608829841095519445132522576436374214940414254546884859405129172747641230008259264439608750017777136501165271106988207812883678134855996883950442103024394858861674236239137156407631112339003269968552799041064675221052894417778992543018467784056175514247455175113906430110257886884388522988194176478997698124409884512456676639615700453486891660744992384314619917677612840540991640003843943317342231818205147463398665130596442260392545726431544668294800224962378542026578614373741949591054355724697516748839402639080913867195631361681195876604007096747684422083022016174542084271442587031876414652783487393314020642069852137158827714025477938076356140587271053038514975886923145464068409506935370751764959004125924723496181045121951778154654054244220701545889363462510496921680269376872100610460035489872900894018186573099868302044396638260092129078677871697835205376850250846464694968000592759763811576088264927531608935768748421842686111362343073590833648224775169699077823088175340518660286252365677168901749109768327112192816939587682663582751153175021244549615362356415768144488467353928554192540972415479207909784659765737783179432301897615530511911900159703874720873577691715915145711246852610652052493754326935731364894184643875775917887566351169295708340184371005759397829330752771145592552982938911309040324299099626147100468666283312789912490561296787954516307715135565036615058391243891312442025160127355956840678379231119030825801339299016846713560557751353415611237494134041821365134214430765809934297602531268595390307285828506736234238791534335140463244847374792203936922513991056230499286799685451465369013831082814326183465227230974395775174231738268310638854987446984022385172491814829181106391972175391753170854661909697503846783802275580004316561575955435241026434428153356016497211490165840262039248546242165757335799548510031260716149206211391794945777690493571261677008020995863470603117870768416343697892976268328681443584580379125880872058365687223939636853525942036484253703790484670210251518228855720950164796943616490097736443331803605837795245479461852125614189845621218420801218506005864546545673655590638772733742922224581804121149263470259227009955120176048265736637949753310050314919324717495141785779721960955966312720379088364137542718149419046951509753542581922175628254520246557921316056198669965996829935035815062983657187904786597246684842888357597945604649977459453427135585885198141803113748003969834681086214870606678377552865874186332580108067403551361895554295458336491422685020491568171961799383591915236332416777986048723971961075811182373636919823328586652268841650994002320214754880428084535938424270742720236688548568440665334117936614419145434460049552877834389301476049006394809763964537660131062339288921038865175554071133000742532231022180545850060392641157024715730906040123208728994635905164670781189673407589729878376693769573641413164324643793482644389283517971091282634430873115888526711836511402973769696543538351763209404046617748171205773477039320891826585541174466710564916196089139147817920664587215795258919459044972061412574818809991305262809340829274483098828803162476240527226943375685680890847415248859887539844572108762759606938473228826077832745060099846050988396427292951800084582800423319984016737047906508704319760212716830851892764219396771154697799401042004742219774768904753327878486184217644462471368340345203987251016115047142543433852206491241721894279356288129626311859035806764040824589184068983757089957360604629808089944824505063790907031532444628843978271865845758267348073042576734850207032955714522929115857943785565677833674370788649360803657325084248618942617256040427491951892988494069474883441018212137071524702830792473644190145128054000919802588095668392035761618249969552422539254703472542566003970603467385754463690045099648781490270137457240859494964983823653338164754758197352405532935987711306814410073297965384285333724333326911756126291817144654720395443238772839512893008007918145001213749132981480902664257502823944006295450621049960396982928352107009940390511300116561398240667611996081984138731296303130803196021998027032062273120076240260876108061347192699455450231109317519932383438699265305096848527996245996611603829443258677515197910333464373429788098203774390781694438476734070549320492979597708691989207589274204165255946203855714751584511665196598691113213711361369870573771595841852427228181522087645010401183408350694465689863490576966128985261321589263899220711822530000286546803427119022528241209232021248794790785040539720155053222683078094112164624505252835759286669567102159959631370463395659334048469589197038766103324987943183525063349719684296002372693521391578219982133004302822714879631075699847145703682335048556640188002932906611421405580158241869141157430204406569513782880874390786116345154033386009594346084100758198480252047715477277824001635282329257388056142381999286674469398993266611035477403907950774336203752262433394200710137445345674233684620899657815381192361162835536010257988123747391028116710953212997571792246840105197092205637707096806342653069571350463679652275217272143380785134606955415224415886739158770273896382550810363331329888572216931403648801553488637099531062056196763141308909251445823090078062160586088927087944754912226419563626039705976445793235114274993278654564671628692972637625489845256348175200400703682476009920872691071627530052541851860152999609971001531756149774108888428614303340916459659343716224134528514356919102411744483037296945075809718372199798712450030436997042368004602405750065581045931863841465244272430743965270583477922650572990893347493101929850954754766774100589563808210242967711004775928746761127980403457198151891778447970043292448967115179628033805458434668524570602754735049575675156453175839428816162107997442133964233911590357815709846262109066843787921736355317227381101304203383826620892939751530591774563479742414733731951379048020856796378194843099842944165448567494301700270934514202635363970392294603726945917299749594319841746829994906661340866516252893588680208443793690418268905866666638932824602701422669379783953165275407238648065600682450622882340799089771564271125631785201243617931297248644988602610802612476180993548380484271762277021560619637250084825105707219090768911042964342192987070831952030197015296299338264609784230433436527131833103350401526745076349442406498773730671936565178559384395273290428095307285578074673732131397238521865818524057438355656584516474060706203294635238814669134578206349848598030649709620355298522404218648095042654630784580830971349109504357939990054615089088594660687505824609466977845577833059718563627622241682867723899789251765416521293071098047837737516886426438544068798346409121618058138097690952110333907864450859773040577769098420628701714787405129342979412274184049927095958550659612876710137042804095317769436380150893609322796358787753617961395981869985920607387265205061514746057246469854172965022228437224995868961530850447700221850058221209940992210990787316693744378241493742821516059591120586461070925221863315778994635269038688739261142387040962762354666208688226225187368359644349696853426352327716746813912796440266404034408848221065820341199063804573138674694169829469492386975514366175678974617068083343043489545752477774192674874795864746830269212262800308706959929666955977270882905179712917524945615982952281492374658350263154022079336106227048931242377593871095872136036548191457338729199572472558689611186210972287638253845809341267037564962967456202316692838631180035899610324747941292133408003615876709885719705691091026404570451881355591122222438916245096707753656457486384979292615013136823397694253745875693959291086977925210662526597520113240868016586078276553441738936157496863270021717641850828582605388791209192846762856218426341866908722774761828986671467801756418342588319989559879551254255277232257608161037979332265312029031429457312180967392734245239955389840710616622254258067582570536427049808603201205093672068244530155490579700003009229991234948557948221284631972750811273648937488730882875561236223758565010768338907852724692361364079042056269464945780605277222461857701775944692730799780630616615463745189492415170758987941039816931242421966288053380638120139085787159675045538291135840536502179196002807552021455891297207671401112590981030338099533306068880449367977690678098979699070314605229508114852114169792659607555054818072913493700760539303925766268448812966084555166713435753365684671838885391068920751253698055497189993482088617282504089293381231946354512360999475364030600143841635424740952640250397038094511793861825408614018630408374236707954959105653562579746516393963181095959230014082747847080373239184251920515587746165539873975155801033405506826996506373142387835820264887647487355817425057565109011922139741145564227690581013419537693269408429987775903545330493152649571887442640970230923066038020012779515541708852905286990813572749857643487677274742553309997381253380209242213164263020282797634366331757546706886297532175467208391425120695858614344574917426125920367552345001278487322889497146159516093565518795023848275625275159541729254108035453255472879827412337583322731440603554276876942253983072795775505482190774161562326685999673898960778384080654870448026283996137238901746290318304626668339653842542497952471531380848503178440820139930102600492541338950317792074368485023279865782390995545981592427430814676038491138174322558961921537885746090398221186873997538780674968103842394389363336725505157416813586240107945476494006415960239262233386861025334198683339755058331709098576739786447611182264430408029972420385988129177950440075756652632387785685795513070447817656481345499369963312443774256512665030516472534938949827313156579931362523866158659856046503393030445298488431334856957429500216836629945639254344676524852572434262365491067101711569072768975653961776394420992717930142545150140187880765489665110726246947464841134219718517892877233996332787660015853683293648061870092434630527179062077594123200467391631144072176500367886256358332532225106687216198684684082831055547932821033355381707643452029598764232266615330870289175167110357414025148401585150334976668214118538841748431347741374108224610460839284457637276339304556656573241593911117100703958520998527949849453995557719711880434832870140074214311743619092696162990140953449108210631206237703700235132948577816462423002864661150019497159051387818130763566204140043817188700255084621101914603455171810070624416032354228204787688041466105159476646589052132325521574250881657365260824653261792338022685890691367089269224231723628100663344306421419702068392393030325436519172814512870359087837862461164188926809139481892690142189206529070814601045699458889279337272259064732584475450555274136171312992273256558616559745943822889320871623740577649751094197516946221556804883010476397395549918985638583163286206561045531778590705424989216975376544320324149808311076628465263012353747199901406922582332533703086222514664640253870471783315108464555687890806886532535828235874689369451617472641024897847902669794277836515183950889576530814464601275775299244960131089299855076827640266007923966082401273566058156169159173781094382165908659971405453481807369847608051158904794753157301477539930356488943598083368416161128131580186496940920448018672131693526813058400560776949353780281712579791393156701530310732243271698668297856034198819764707013879020756645637800323696351679227161056281247447859344009437069815572199795616151606598712934977845929128001940830501510858047581268237444930730859071956988353134572159052428834683284769107029682311520911614280546857956669873745949370634359461913400855094892585958154411773027187590185494412030730992275934484376892226017325212214037072177983772421219827929896666620203600529787536278406407495825760772196674974218749780114236209858760173192722275098631123872475249266834037080997753903191754170102442977623218011204646792302236786389323659677437615013474854735045915209945479996405476417883958043832892113679449336777888742762688742445142532069766882706253099847760698255926857622231487497348295815378079270450392109268361829695937403701666787551718489297546658726597301496644690036304261269559176362466524993052650258476554697985670894767187568392327560859544872249923771804247854285701889223972176780764905498028095852967367415996593355704360218729685339520520144952798009449161152393061868442232877311891145666704618330860175566624988149417434659546731728260792755235071091373476373819212967673937157541479858311775207868690516801805261271667980471955242490882315790587826597474745237469620564381275157487992728444357778494084885705454803396357868599737976614865101272092114400795606593248533940123760659023031163485659918881731696721362015277841877302612853300108811612674650495486049751780194153185422670931572605282808570811338177296472023158099618248364600582250306118124319787486570854294017710560797319586029121880958645875656548399642499204966793354332417240259799081266856378109455631510527835002762160524162498997027770558016402050995550807254619801253688712818093466431608533896018697877265438394612605718759648496746126079602412521583664089358207503430704105622614604693587112796414295918689355969485030234313507463056850441123180723457212714154642673278970949329591787669719615084001397301646327372923133127063401660193913541473855190658277157626876224698358090095402352971962298459449950067370277779233124996874109555926684947722249612216921883929809891573308434695085046520364595362581957047736404574834570499389698054618868389596555369810483652609618319353008074868881961283516380266283530313866957274762401186538391935257983725805008090579416299428702039928453952387011998914776876184073382327156296080943642373023535520878969931584278018942919354988012490674730176477225661656983356127738972947093342121999067995821833277358105183355217425555192019598289973823809678216318655326409081913895319443654662051911855181960161185106530346531631176500229230774110757744432458492453329874456375201274171354072242371397052047577674448034111126134386094485231232180999690796302729010357789227190303967356580978159056508216674408144278287859990152668143567541986833522028281129306480749470868751805425231032031929820884553216545562031074366509782754348355991241967193630541572871016682501276635152469225080034060027682737907386574993751115096132200990302346381340209396070636125752204661866173959483322082330949018821902327367284228563871035342559515342386249990947282807414848709845877406511461998981453211207548494709326772057812926620473124193393726068701471890420875757712098865161541623884968850288188848968622400433287542950142170963590813638440526840531116366898715181880125030179197892042287584285820579928235118407193964648313157996878044669633212886983266496332504855713775177025041368528427203385945013538953078180853564213059549013238834272861126140880199968828688283304197219151875124183086490056889608840360969162539008224983743795578946913975410540053104792412819564257871052267912793431582687464466330236509630613216272897602926764893386339850210152652094979709800816321457093253383445127005886363642852076717694473497106889849038668327777029648175799126324204159014594443080812959594570252762493625003543820338450111086341910457336501638218124166655343788217450118056272957806819095436583650032944901525789351808474418440952254075460682879235583006646161091774935378792487765171387532393411304710016999076834795498582506630347724264901773879152430576767858996835865112499577392490906174249742251803473163923301823248116899152314644293220783519845545473588249432553907112113906640633651380270189561187074222946496303484962010075846728682427433084343701561556279119086370119147752695588516185479943244275249754793720272690807128408813485975915626026065734900415707931642105166226843192642575215468374567886624412151369356263681231105783412407887797481329563914992238571806169205649231416854760140818745245866197010880834983555172593272663745646911898608409989834876269687946819739662608594908351657927435515849391894283354346270087223590131978795112768224817445118622028366416278526114342917079640055152723677860460576924764822811604351401692196519013095134552642479462894830944779013678711002239474797248774765127351895838255203584367269342213033350606261487625458068284847339064297872776525380811238354239479272817412977595319741599075946162327942804855712743368016369270392954262714194426773919049916258635670598338796730595198142713088344993757179544745773628450859242998906272771266036316488879964390384631537273634750862763252095042719081132156259213779164060516827880268314609298175942442983927865301786362003000881748547825000640067013657509051833370084468378179599496749714005649560110625712104083855193784112287055388165236589588442156451441986530108639385988161358376676100878611960801942417732499932514792149135689222254121019677571090862315956241374171845579151703764113715287720721333280225655539922933856295301855771805926397661155140543325155122213307688578921404259963209609643833397551372176396242349677021659369828060643863290233257327235592150056589156042564483847333994669145659505590476426394687901662657647921676446927931224659541874513456732178771355020089736512511317385699468535836661847681334442486255024030355927700187206648273945372528622705390248909405587879066384173672343789537201725610952830220036868684037131000958002649672104034845967319237175384732717654820364825444737931841067025957992509495928010208250544884217296160242681782319898005697252544764469249447854201489950435520900460191902316010280276578709126352083328344403367778937936026226028598929140451652500682972863416066253740967968153173877529812695131063463954992174432292025244370955122430541876095899957523037755321292721457190481592108198833041428395770714009480467774216057304137739437024646473413434034624296393897525909914984419453468064418234994448604524282976478046909429468686540546216531570217212210243723459664576333429594450476966127338176211419056132418658546244972214890629908550649446046094388066590095723786815806381057491585688384509036024807526712079815493651482773356879365060855216495133517502556707441754110629985553034288821389326263180885020608276842430782406436286119496005830765699838554593352012780893540197397198272223502814227001224510037511331799621638686623211714397628933007390331662571224965569584813735027086267744346924116735769473989925295541599805143914962678734760690397088090019330980894808787561368772291539243049512784951790770586373777173455183105697757346980602248079206313650455196830694777169003082739675691657665552300885524751954080387114016650671611854818924091896078218046716073424122532168435134824473344445749382527434794617340072625499570857828286622174402030556156457181994119749544542559390296186066385215590504510874814120972514404212228857451240228526414906709571996298953364803644019399467518397212545445437237368202386929614310098576068051659819160856488630048708864653211101278170553849727500280574492952661062246775701202078642700215339972754100355900029521354290444452017053022028445506428648575499243078298749314695500469107116827489197954597139248741489400711901487252079663152642411658475748704058439029144851303045021194694261855098137626389493935470652361366793581915574547044937239027813925727213702516305706306906281589079987615623174922605347826764004850966202684602606200670496978861377820368501351517531589522915795673134743537060337115033123876812290176238046784919510240172453711412404576504941730838389699751836022665904739890437776699629083933993699870936071103563287872246913767301671700572124717750560687836072689551984276834210584263673496397307577246817474461793748226018569819704831535204595037680234593033941294774250949896849206362627279787849497981758654818081586231571873757277447801852284715422440382899862767381691278311900532201465973192987481965887171414177057904087406827258935893666278116850662806350079734823786038384152776490041841219789819736538947850272407374267986209637539264644678694749566958633826727813638896446230192223650914095090247043012257404719625005119192910516225215204432177438514356669315324623592633053200183804944533179974318299809773158739700494085262617369065439720485639839336262203027735839336672319110101878625181704996692838273073864392113499331689429493723225972398614729319707754401855710636226514354194990174212726899021949265673542802747858117582597121117384271355640806569089968555606841329956031600447408266439151673810375844228521470107581457614875805940226595808857073256406086550532163865895168662579847716424773153928250046614263533967438277892536244021452265153823820306996147861853514427742435924131621283483075188297311980948093339707254913782206609949979227136046356401752190804010846025024260327597984295951538249012317784742869826791671613868226505067548889731261399859853301536124588882902942315264701965714070729246924244648886770969075082726560008301571677041049943218714076486082186553633442751641101392712050152940071484069784556359856423755329302662650936136809431335666046851379578742125861234394376405891631632982003711512825688158079549735023347883569388308725903107775712841130883070305596122899221535406997707182576992642357005426874843236259201342264038006514162764535107654202207600185010219837595616917366028673744997945601489218984166079652044508095167744586392260828270177959730431540114611628758762556474549600474426616060098742232414259800330994038625747186720955414895419205679134764210672034996599072167081483798535065758178331636234441348490411539492673066966236925723439268686118154629484611810814523318006565462915057365825523154237993232154443531537567287350317982724017916545416925755438934564203765476950562812923757243376186166810662712856704964086807551451694727302418283659431360385933386992799786777981279127606651422376935627030363292333623132624053060553003612261875721658489578323434655926344425804664120665736416259071600686129841561921469699020992608664030416642288948693958560808858406551628627913490507241293346773505700887539568152649913991835131967813591748509045917625364495174065153209542734785132121281253158189390322218094849360643826626689253539919691509552040312556594969439272910141315159634801872761292428012055042447464794664685676654134366423064239484675696918505129944332951814573286436372838530253662516176578988028189788852478076797267298805695072144519985293919636360760804832708507872646497810109723192848232857239322457611371319756413121397541562398882940851672099779726106431661075426630863125577817461040060874464412728764261961673791966130662568657591999506824437006024113372588974880644101927572409639353390178545308541457635363603124119497346095567223988502441044952160005928861534296185224583909999778568679281297704204301286108264469047977119078303722178711208478671204761323190977251526856985394940138151782684483431814056773796982237135611845560218303492050041942495701884689520034160797770091616196252754919444217832473166103529656062046897191559061799100194649918613561307333611176218966444259786654858880231912844711305575639587227208328793320451637636706365135780337237233763423362202048197100304329165276844466520947330337112778910593994608080827125484645930892699714672440429739781242407476117218109690519405739250961919674457147929287360823467201658907470434401912561389405200851082400091309454717106111266115001224037594138419633152429857618968945712235961690786345060722105575868723430189913855534959115167909590265362533910440265894768326228243775587192566421930740219970876355318192043900687010107510266494133415197053645963103752430863233737515447749760023693873617497212723681279144668893376612397028233845607055279029712915157469597507499288752688597494545476371553249046909293347954813716233537314957176622133023383162335211472055667596864623887564782661060923229661214427004283165122609682556822810046680526706685139400701305627465262193311225112460506290425745611129743946475316739910748498019547593553595206591793216962887854608927308429631771865107103504310559140451883666849518665110708415227482909457341188057223625711479826678275631310915471965209975395384863222242037726940813539174626038688711187636678192936489857143035308664577740153349956704912434865661889938704090867498268032965463433466141874294085697480019335424631706019253606415901508913977940699112783707582771738525817386730187309778355604833242295118765960016369564581105469922828360047038052434969606028200994046468470797839898266079148081238006500255834115320251481140102815818736148036030855350949462139604740078978302116885397900322329418045133217577872405157674232159318773435426052496468098730510566972737139707923144051431056437401028005882763564612524193825360716513478660518299016050296919510534314646874475910544416474745476560069502110105889782395922915762097255467930635385599990728799246589154681996077620811884367422525400567833110684696589016002570570081129186783851236679470997699301840587024411043597036933428371852620586088202208344640058914273690393501030800116288011615870220006064900440172257814182117276836579973153860732097808111628722529906539952103191499616725256948126978221667359183691331582636876740266861582417782023315245274755820151635958054776790897690704212457818230089343720070744539847216963953468608789329097123543795563927548607217465385612563592872028470657727605184148852426387965094814139871948132767122059669326093512867903278203333791227655859071937280937242478925763561645836905614459597997493316752013443838102578061623682942922969042676099561297851506682793503366702842494207807983067228270000937647934968814615854352299938376029126441046742372446637145319922987443278220053322541819963901731312001771350923578596209126322362655416377726023199242961878194066393422326231043450360494443444995137307800572978558679565099808601693330004501720615807852249877309222916297018778256329653694410002880902737345105809684028140175260368613444763821713743262192330921739945751621209637675965870619967357028670456025105130972769900719564477741435402020185326042057710256357300850341271060194725265157700537664180147385168660839580156737704862278081643262628391055697602336309849821573130666429111894335766235716534328654812844326640458106749773787856397785807279112537095076917592853498655809494824109825861160350176410565694770483139048585715019390325453756683765970146799437337175317895616667553304150687463152752819188634117869706943374956737400069670649660262015690868303860917440091843671247264578738786800046149315344957881914207322796344178329927623880854370661954819031945669858915087009120557447274464886263559950896922212757479234060680337042667369443694004285249020507616339672785718006592159845179301102242196143284184165691149597037456923197309473647697683661910843366821819799258234828388955103783577027526286818382034779991536984913533613890150206298077203717891548014323710703981221964331013975638156841484055788005020767015099393907761863210078531543614062151947956930673084746186091075545662562839923108160271232308976811486937624565551067692064863214623942051555556669563355731531646158456828871287228808339526116302801737097323494752686193349689301276752683878071594587651015366897851509945884227898129508930016754357699305357497018078810383563360965702254176699006866461008962414398131419171241683814976590142806329465532730325779520929456756604629339232575313629178094884591998368572375028089674187331007585179434638192821948409213961264990459146548282085429775141349952672052024771125285918231584068365509284828824866246736158878389937292942461198782435839267227612757471260023502123473060946708692746145624401124087493333685374143581385082642738845598601793952069670932333677663996415578352908639742229652726299878371591828208222596061731197635681777443028771050680251458098566326315745512763787374008554611062192374408275683769121326749492643754926238534515639115423446154779343061109711599411612004260111713601208723852623919208739553195950850528545588098522946181562593569961725723887648889475402354501945807514509922913032085022055894300355978976044586228073051639859476761915393437281579354228544412218719592241822245398134210317377772215656537055702488700082546091186470541659398542353895748494932047768629505694415709015087891587497797477378856504980848046063922396928451541309643944703454599039843575185937452559347515778108053386016789569409658510359998733284618179722544191401544318456068165461693892895919536792359872864474725727359923431961826573681069607766325606924706378342421347626820641119686525280679078034817921252375046876081162379559227978075503156199433879916275689567504436473996772395461882003298658994438441849419008466754562446339413798295674915219756528382808627579989672100100791613262060756267370841459361848225145207521883538782072376836521193096587804033181373874806189827874054705720489790967594345067595689235380034498354944498794567696559103789360802592241293031270976986327364309720211573130927894931885837275267332213109875494904346348097638700193445016114185745457087868276405627939501079010184600243257421941870754328840750437843906641951849539543908441706796436236928916186419257033552299687329706378793958128330818793880979200579144926064230556974762918921942627706441496451596111781465052137631953814148529990037305148445907149633012594041789953447026315228945843879720574295750356879711228882969248507429775349130917350359039300787694675276966573730271209655222262751928012983043450436490252719233413338871808356882545627225327493935319275332438064905688278909310674191676497833966102734208515900079319553594882674815720897277465065730581574443820692762409542361841186484953879434947129282853809698457142064145735676963875342291120228925661020253319410774124720383248545495302391703164803673292176113184578186298758274371484283612756698892563693675391583274091346551945275061915236718717396175400959897523843559283608841392324978547056894897326354421587876775508600082907797539087687526457379854394344042194461464092846333270372102799845945837018740014974806207551873610314447619071371761534016837570824129177003010167731338249474477775951899459671230284326082391678145689148235877035370258832702386446314529056320705637216820587759253179534766530548221269130027028288707239962994671398067330382626325037720726278359783774793941155975174585384423766560664995301544617881176868667296484400405184746757198950285786224415076665687613016148815951529143421149258375974676156675164904596900236066697642098544394574418967758318039427120048065619591791070418090474625749289495175725539705488864967405423998116843108234940732902709332902322147225520276177306864142451730778209616615320547024262197954491802082928277132473909691125682739541924855872560646039887878878700046884577239113510500028458758799280950029556239452788546875444629964247133983664688042505111859961564829299088603909531409680548757941700724530310638233149282562617105044922652924980889327417726904637073979818051067731087378798836474135953914254184246486531738535103844200854750082939093908509825098599904125576393802720207502012456177202176099374390376692955745619881496963831247810163923337916339475778398721797731307123423064572715378922605662174903124637426112768182689034443000429882789762355597673698379811205858893435616721787062008585215339198593429771021843180096240599639904294177248329498645912550650152029749676351248761970609946918703065616937032165509319349957845654699631710908420049244430876367428553021500541004128706346138233506048164136956410931304403951333416736738939134016133704685213965308059486230147624380543300599740608197643957993240585469993919330798922507781175111733838885289732028939069268936644077417703991120663818415171363610477793725140631887458481399718719231489151630866789947341264123227299197591759098155367253847345469213894721137279664913952384655407175008962331367177686420327747902734637008979925468381544523656921959233297894287638692023206799258402235117297131688835105567031916734390877668061801595202600257167415862408887359198105277983774474300137021787507144910254223606629169136131926474579550334287461710129706466883738319609227820945290584505244981046145779754963935079203223279427141375569126461503652602092832862650229223862471169027945094370465059373114301354532922542794202362901955965858949162742433726052347277380260964515025190072321938636855851930450486887817213577473837638812609687595171124107333055359662103124879195904785257903268124379621295610641154545554208522455056686709788535621648896265880458063703844852474478660509356642272767186214785206070954398597112989759074393493546759309370446748308663960112094146397682616689771420933867529588619575978931119297606564939735525939647795525556098860340856077624324026075756102223198921911263315657997218490065851450483387489008398899059396500095068801663361061315044281114846514634042405585283272978684501063233218269112356940678302604765424493034191105784021926397491745186877630072477158228202432412227321561353195306881627266360630857023108186313750630395984732401811716291494831725760733047116826741462304068914137847779305115603358989122670397298506408705216258981879940772046439877703848992666411831194224114141845398034046357813352778252136393515985664133925005904294374354077297860578257661112051356397438293649863863182744018516861595652482026172515218935281086958221454340833388606659368375796747097416616097279958192624805041657224291444825660393184894490164223098511268949928878957706342101170610330814507827791203453421748666896920200682323211908572571410682512445967729452365954121749179171293984834434777327447828866262905628153942252562346142656608801349449107708582839549716322340081678019080734887129589642543881067109767051447361200365616860550945966663504913987224675978978509413141325938476680052472965456402582815837306444577973113792105054320177352151752682570734539749008100241305705181801438323074036134607046562364850474412131419824648858663368209755245749483928419628290583365003641032786485574707720638576244268521196939425549490491905526556975320501436233270209659295071387381685000900063092778346452049713316042511362521562896976324139184083125711474988039611429034728712849674763458963962687137453514314121940138046920848708656909822452238049415163045855981901718509371858393733243014261795850880836207545691100672721914012888643261416873670754772756959079453369367050444768417118803698089692115813201455830809751767364170766675532187977059327883718369284299770092962166101491710199754439424074181570559807631022058290876500330840219676283388596315574280395278344683891243350266564966148366178194334216243625092665330527434894109070112061316042630944696029871583098271776499301970688367282459547718634510062549761294925022267506068849348509085333782837763114634906979078462072568500667483959938841305347739599105004669122310821725284932199234166751428338661613348998468514214668036045274810546782350266644915866086221473146047810063000081123784432239752241011067817147477379199910943438812020735124140808851189231857973301858648057998804744847458765151609986568556009365454281620991958358532349128441015535037647857128969021934221790616484487322205180760061492458639704141726002558480046650698991357259227554539048172677848586996947345758246173408767075300713312505833784359378521543255444809596660333106536280214861805001002832535517277882696909530258972684855062717228620545516707219036677522242793629976141124045887057698397617321925028370185509891693232435747982440712714322905293654813696185587865450260382150305793993419481109416829479363732366835181744513857318388469892867665252101062906178929214797838695346765544202284983493148105355146723269530742488300634511589841258686469978687698216594608424008833196187745117159194798916286389120043218949288233895705401094506139383541646311078982330221618697373219785427510403864025151768435561963502283661939251383573870447010568934201510866176238617965043170961021163681716480076488149375617015678235225134136054606105449554347147451107599608089339562543161832380177174335921041727711727337435307006243172731724375751430939958466962462663943053154658853487512123699099967014263039188713876806266802850883548411654581728355238463246782347469516574948845363294680699471974472649748184959530989718094819821514716248176955383389794514083411262864672279121040762543442451145221148889952517100239347158534818974773618005075571783487133762035682880688614578587902705496918095644868463258775298266043962678714588568283362367246642641742757883137946948664786132673665017916463429967069122599832791820130931271316563697474343212147218176806939633373526887911033808148397689015339127918454866433853423229577020253372540907293534911989176209604977343304319257843211559230448145390419191836475105593325262046090433520665955030311926299211175889866022077078741256419959501225408470200229749154399314291514150460793962762806600686195437365800400463886958476287439337966821712696072453999815827375216309121489320685588666470378411682254748913943903772115280672513867719750537395822310531407484128153414871382429947529376908848386892704440758609109899543898593142130654296181581555830820054974375663178579857506366872546036108184442892684738598212860048225163489757147449245604438229722311384167312334704240383953997956710018019436212404060134363743925180117925743578599655653732122919978726980457472043844623493798109390424142726664178007337011173164456526000608349405499361082169116453662687018113064245404982410791991665085807191950261049035538580315845483318660236237978592187015837104774517658138363950393167141306067332820789375684011579696180654226166728256441612645514400019698734006994656678553623433661489488206265087642639879424536095034250468352159742465155727459950845517673282845349055080903899651412523794171988845903437922763930469863594484127225549611004779509722245634564403546283255088754190958821900407280330102225991244945778726402491146595270248370190300246759296684960841385222033200394160889096359555901983591935800203581465709208894662387140582040820246927094184559453467308656476984980515462115322230137004421639756060470995060088499459122592103671691169824206578853459259309610750163454873096651758189167191655001337684732718443132929252221006290085026401719853230533418084303719688130173640679918467320296299221041705538189895195544609369810372212070354358025939481750544422911366099999106486036588699531234597676261149264036019581777433614028819562844379794650099593006411724803046210288694103985688620182699652632919430473222762608533532355642223363445612007837578220895853781626827622294582766800703481586856877603368606607525915426989652662639197169116499298632832114355889353861783072079294426528818211158681273516696666518878987655731305128872722749851600721922353429572830076010175743825318288601678729486800664653117286250398750352965073935984522830595469812134395862032357139623516978027302231623154139392375019478763869114193749879722807910953199377689101554848036873297779218581561266470052328629099713960778774738146601706307271604039314640375579490474786379467027787691957396170993367110079492080469937025248843220983883763470793601040024244286464393955021368533201666343109072363497826329394586926969386631481703321924563761251881664262873284572267542731207173669770881865765883665101357688834188340096366625592073193572694430033205596807556954138383607010913637753536664832965011042304234210507068513269732611540299754393264775074971212169263131189121774076776063034646896754170853929634548987250583905692443259692863034927917165537299461337206726638006201476489267356768228591119987229323504718500554112727487614506092905349562152350161942727822252822086231145387658169142784860093702413296846927658015291369409207640088920874399307267855939681866666486511103474606909199479225002900895504104551940490260704980637232265448284571427198444485574693875897490368469754266948942010526504750592254118170380428352727919511233643504210737886238634734013034302104517660075727606454684120234875450814993928723743063668843687307785965661002469240244646227015869828656313230292573511020523855990416395753411359531998268754347202718234279446198064301759971513250399597391020814540435159452269375570640944539764817817725232994088914084310976059183982341209882555705053476180531080968525334185445221629952878731283456527006939875517425834863581577333915823735034719572307323044685963119593519840781609983202766847392568293979480132577278614432535543946147732155340595118881800260883640338862149616729037605482202862729825125943042503939405650525889836930112739305201090872367590378108803304299781688537122655461233889657827679962232042461092174676064468954492620662266570479675264960905261721455341297006974734237034843862255423364745695185443201541858940197725403434781666958350793707983509582526144458560503207781909184397795842976371708589059502369131762206802036820975319688799821753021370982566279869977738373105223061732985411882039815899487190281397744178715960350442983364896733483821251087444644752668062615573630194213597319644689143653939722788064946137032349688524273258625234091424616155833983403695882549761088008746397085289589324967303929291771872735580444410263382126521972106180767078296594045403141251008122538915951077396203057474473872737306614197591431252784466252859402895123047777551930643169036709729817215141480252400399669387663604185623520913968242593095733060931564402924700449522826194622176123024934383322457837893515294571607474141367272011893449574094739931972657979044985934162091882001348062867339603296562990291109828922241140794917207237344545134866230319508250763175962683343079684312332757813258468472590338437725594049989565071105822732320913430852634136784146125873960039969002632861554187579466252057713691283709561942174604581416016761790704003210642786323508248262852189402629607023833281373581489567118496204912896661378526152413851317452000901680588520531936262916378323467050298353285726730175965484203583732764772602019487007210683483029270457263917851023356641547329238728683778348073664166884397296413851093289245261252871507969003283468364483456305342460809970154392058845789698622336610305611495461009750718027483202059913241995341692615089582682428653513237455446247255968842456446029227835677589441419149531332084443182974726866166326050747542585869178474233929340316078557653489893083456129648748391232250832909401826578057491910034287488324555728324732813897041283657653637413238528265596405444964249342343770586511109011601122383809210112540225785142686592291053786478533351002900848091296373202346075055645383772348966913433459082353504599505098862692374822456447652623798879284103567235639499622717823392307921819982968871278205215276089347352561451401126730428143845279289011270917916949306924133864665784037871185214368095226168700370428662343488590036454859711703999750208833010550569167956122449201373604273531910113845474529271793833660444097291684961533061720917996354963373242242606184432080715751414900226299417624429721546071229659169078466950957607113034958628119849769212967467800684360401716887561517976853533796974572765474885625165794901611656109355858255094929828647626676659137075566068305340003211916341349586099456990882120302188156138458923543962142844402038327267665993033277477082898558606173905703545237247612812617943659492838079558985538307030548087202659402766440180479066235656630955188076581665941294563548184722386521087017865812586097503676728081042333320227735029957787133337306767069327998801592237961386613870018961548836981385293520972954555846853325475557803073236318738098867902255444009671913235032112902622064513336945851601038451379653595278382841992135241454392226526931965348351702347299452322915106665030767916001433261375790866514840226936496434842247880537329946159556917689255204439776285641452512431245891841352139560653452391901537637016889946521670350192110980941597827438303576809394374161620541315065944666394397606291818659951034856028939891339547674468316938110638822955638778452580574897895544849094533784716927128034313852484229936065821193496079263420515248883222607783173052977903850143232701972392944487102862738292912347987026660648392889501607153863339112838721008364864406796889428362187151586028841962268893287976545576577243524300905359243138964148361378970186119106683839646063802172698245698631322409497812024904829062903842594698681571610228463103361731084833354691224773073942953265092566548679822404839654736991498654388628898904991111260508203206167018963311122485766833890842681117927679648317444631899828132882889079611336574706471370769619342214613763468715776450752402650483620704637750972898657140882192559429811555855241935547196648488054462663235930651681548041349636549832575882093547715963950837404986463216485708238222307463982592240341286764016632566297934588004940517639328269558721128612360529172059062520060999826957270983736935171098976227497490599995721459285336521237518579578723360806748689258025024554831736249415214264863369436236930033220716757307838594194878954801203940831838260094827346762923027194522630384531652752212327023225730006737113057838734500693707274548872302851137377565697605869145377008211547380036018287424573716003368839958840644288644210032947379736376069466318577796609828531689112412963022363142489857719311794849160512630638973118300043397589626385591973887646793231171096317843568686894312073613746073045325426419531742084143426568401042350727624727253058533938710330968506039339137563298109296743302121141940107911000521338202945045457070839849773417415566835781896299237140347178301604449064747541327346581150940193444727778287480201780499400788830272107945513066433999552208150092708101130628850943995267903735481188373061316739534082101687944141731675004116508462821615608976577349465765253963847668624384553034616375448167904436706927849631540231608385010994953365285865101670427453456249084297206883233546038521509316588498867870628375207580182611224737974396179600128367673041154436515821406168646711334568848448699646810735801131168391886257314352813033061690680672239206132310591332491390875114803783019838036811584638248319297833693392981225214198248179019267772812291995279611196169551516959887749262087627021538221640684624602666337476577230713536658626929869083582324497387915615777711705569964799990981729366610067712021677067166044631538368420212471773579100876108132357164724744324645465270909963442865888688056559368816124951816104699341868843201133466612854512221332509219914794877769650750100348193082535357528864930444196868340450982033425315647203658082026552927621166705068419927962990463020804026220222844278765131986615691190418843032026977930812155490284499243299008667066118546275228866137883949267237139106961718929735080029280881656726015483823276478986799151068468966043025133378140597536680036661585166015019753930138354584724403430229191448539138479117727177235437979507201761249061019855716907842658139915344131103321942231651961447104322193336029549110313225610920171920318412181561573712400593019169047751552562185606888599800175597330830068457809935519856357781257134737384396565194979105551902233403359703773871492257187462590019338748536634653633645863426554887488512800042037125910136286598878672300099531993175842014687494542624725478449795020561696401917958616650477591330644503552575294378169766304424190825996764701889600481196273449773815080620992717036391515920085305627953821772119333112286696884142056978120821912184530105316361771610860081792099584678574510123116229879636420190019205056495994561033806835971029174594516559428272076285645385739350874455121374703451894550052277960571440297553580704040183617958052644432674744704125787513256959008028370804635898202894534176859319996331291924891268511779408866070908496412431423301436919545820605484181821551431478036575124481149079666729329284009360529401869227654772292079992420458842363211377158673840422816778507126700286281496190074987982874489952917300014716264153763098736345068320213762742499947660361261128779233405521004851456735623949045013447620677299227705417795153208875902078327262623385976601693720004264154887077660022307617126332043299692128631540607283182128867168987098403361121504289795642397669913734692464772258164469266530241742837438526754969847241323874723801481386637161868284380552661644067910250440773040003047007377221163695411320980864834491077947825258121183699508968288405661135839159710905726864693373046694437680109387661778009080738038350275777594886010984649695026451876344840154477770328159752268891214248460786717656445911192602137795205748278575864294616508746701286541604116760647419336400029275668259599653315505223284555446759600375192207590800227192057765286088792371667325076907857009446274324990599239692092608765747306134888617516958054860979126473287773727394370780530796511851727089543495520474620427064823992975572575767315692354378288450988191269954285967877413207091742613609565045093752957996485322469590911390137893882651637859544934442208912186973041415348689639403629476510544183300147216850216246496723329517855126504059420117232089876341992923415464878890895231330364669203545631494554881517824131346661999075956294465676545717471456425073266264863377334510056821027622989919435582881058560170738719316809934321428272471458639489857349470741970546591399683447758402019829536599551822605041463307190673437495068494394728054823892410740561250553421093311724616629173766724840094546367332150012733580876719343204809632551617932982573618043746462951739375089987868650460910523768432280100482866573380268978806258702326652517304726021213128287796783636459575748294846317546372884217910410480884272872871434356258159021061413748511033454318759125414105265926516999795623450898758122846517971051997983527476631270868338241054691185263910250549169739230518648492591187823157870150863612702544200374540455845183437478424893583539657999101089416013481150287582964357973201056722486911612139396755971809715698721988852430617599978839039495119967846571067827980406271885170557283363246904527154691093154201481192217367027032188893900284343829174850980701724720940472539836562203968011005548689044876073074110735416365852301770604833401212277529522403314834738542833918424421125452086329810913649029523981996648089189537070981872673719467856798756637359179778959089375341979240938940429338928169639432930575348610414836466251244570133309516539970614583996234096260982651554448689837912118578113859599549284663477945343733866122300212485296934169426318754042101494297304343133866117763278214365144037772527877295475490581919857555726725968040935342099552297398062892686541454076524721094769121283256590742655719755722877084148522741088384564715572689861525394098239240165214315602067222890510990774965905339805285783957900732952360568410794595799193505374105657782458967742085212064704126059364343009053729470761878196302643008222880939334547617952470923750964209197702666874694533150521298249758120458605279141805635761138051791491417020158677914106642658481229109657193858635449930351555336828057842207976052078386459308115234872638133879282500401722243420946242785546935318861085156892799269041528320148591986476428478633023785982419204939366379924754638906523561402796270910836263920948076349545237396655800912761517069210314297037705437711758487833823926592757785338393781871025046779706848534136781735099941935403730822897472306843488651100208661165500362619139076409921267656689550686008650792291276139303635006690228200278124215141598697840354884352943835151314730897436930847283227217823510623931126453654396071369511915696291936336763824928939435549364996947256834855869222327251867852482689112772736122635995092722677325697707209737473663093108316995263589782183836285632305854970734129721011365181695947635239252537419924236921852377513814136196521511697282079634044411828608981794442820030982110684746589654515835869782962645983385364172986197827828570337143270110140303767209234722356379783000655170117811992680396879651670044138146260373486068380042274010598786142700468127153873084545843498547173283124004745414948001800261164610376723264513838961738278249968991383043804562292263112972544631581345161715510636576718812177088573413748923071601940015014767403941745676492599068941636605484268254353423685991742059640414018195181206594651224480212439760048846394504148849976351167872787744965427834262167835468810353953097433760538156670079468912490660112289153635272262187927669764425084216205672298531754035135260231921681537357104065552737469456101159171350103345814052146119707278475571504093132427152329771653084413724029239307288094141595603876494696105577184221501454794508259094243843918268481798609492163711410224050553242397458397565697464227121257878900114221017248470886203601780607032745590322729501068916323506504102617658875483593816014655802690079486402915198535128943934217110271596944562716004553266762689296869146789203250105610788559227136821946352170145477214772889154494457381891520480670177498435407311881020378415143585518351556308772228522620542477944242358959771180657385672864761316561038654270902853824832383863550834264704513679405348700673905470848993058864624212416155354963925771036196192475307865269925153250381222999856734030978093703532937715293664659674520529203846887113893256464839680612198443093152593700281751963510658984781877763070105363006218112878314487771306689197019626366377162993720374877613249093470641344414443571567305748011063127225468410824591950914121226885439844978650691292703808721365472192526949342366823436857392460642633468409710839952478300102636192051694490074155822490514740291849809313382327498472096872972177024264784869610688939943069749024808351692106702222245613082763834965064660226508662370395190380161626414195291119925964262298812026407347061983410383488416065816294875533621528531213583504148529823269358567818450924608928502693547104489480849988916773593721744815145993513033911280824109614949624443229565034457048686808160419377498060101315354480329097716968810521183868853784147811829271963457645454309586060315149360326754336662866585960594681482762587736003408130561914801428349274975879682761871012844510599516701690521173339059186122093917347278868107242196460295788852328374102000650379658202086380153387924752738611837346131183416043094884617990974483664795426129214747364233670152018736562723297223413561958997709474095854464110852882338308149089587952851570651496658969839957821018106085713312150626257223650492681773921662784839546540689927836708409625955303598277062290816767294921105054965219824973197948087648282166158813569279223935093877605225992662263399412778744927606460633113502575800280150867913023233625310825031396123858138938383874540672685205023062349904167421252875759566902455403309570076517288222766725865721517007444640121899474947658443699530384582983196689160977127327746782288268615247626524773055133259897084587875979790188051807601955967983243000208437252284100104560092456625481475114402063587155771516847392334169484555720764792280676067727377819734085808232614361959060301262517943404745453760634570503578382801155348098235984933536820252604471659437218898343246726921364197966471413733603569538415521600145063971796589091400860104128594605346522845741998361185158352085941342267986064962463498603784232125558858151735380960397895754545095029331789084764801644614320414951970643922487066713794723394025046099872082578078659235515387414878172956333303027999245661154828966668525383914314372197717784508418088489169458602480679650875673844674745091593824199456984640666840202340812467745690155046118066536806152078454291258086852043470135261429416369140564320752563099264197039710512105861161121824451499203389157719735944485533829806349107301553355634424366387282814542264091011117131033941664970300048530116828016410156976625086875621043190413825403151561917164766889129486647562497352735611666207950704836537653839737116847078533529768904698897046170081526140222335442958416325341339586800586916776548950736782781015871795114121121271432396949308572252548198666949133182440855225182647464251974273782373229217647186494400484519325459838704975730477027366575987467856552497993744730605205090551448681120284528833955309477236597494102681221630658866499512032898906726258312335572930196761112221978404220184081649040444821878478297043897443207064550890684656128504134375315470337020084906397417433027996480002871742062393299322719526356397551202214626997167237579027651783392422342058195758611761888203748913632544578830336493836774944707309116704924667180564961428240619676259236997984988800239388488677084347902764828537033311569054866957070939315141097190148907818136135008831459929091443695580952327824141821217092619017718532740831322095532081210975234612281191969023478635396332829405237395456481272919022503491476937560580646081551756437364138808345482542635607217782554194028104137539956295038631394987564708055986974813421499460615595611857133885195885069625195147942684731184067022631035674489837384735827103878417172585536570269976868638104858346831294214576320187134737905145793697759162707300483431571156792536443899008363932973304081807595391573119723230368920820232435408020280631500881862192259570894262202834461355057952531110145284533924096349599699988085640494238138700540405625794640190783122993089626331753810457609448266070164717760886968415362616716507623045934268544522943569852949762960115793641073216367062864141567196652999616355082176518666398563985537165963693297143712813333006312697113870666222966457827187495842141300060767484506765495689211320305171264456763572323123559036595012958584970229932347110892883128441787729599998518192941550562095084248757878450374252904274615146126215386701601296341326770537057881278083005948096078107236296765304352924627148514418086443462053461575634382619160030099450180532209983270811503340120786009648827743313514689266333571453183529038266314186945986733275889473632724495418296649165040756529324746718892941479734797038077604183993789093034723368411901626275936215152691616420459000299991314924086792057094173841288026956268975357727279313782794812531991848269702362644761567390595548563516341041861318322501040426236526081220988451424989685510005638987394328283008110006053204696639960612717574756191772466157136219723950066382902830671953274228119420836519261841499497161491483330298369488263660908793120099071476654673424221774215632855963319312285929389200219034852534373793234969065735876469322887827990710381762710055830756408257732106574370706448487752314869266057639725480194777211947421907271687087353725062611144518006151379146549202073477973618919692319604060069179387976174009420267909239485138398114933406793902388700989343270586570458548905296123024800709466147772193087419448307505769296237124436966196677516832929067238745840519875042747226646576710187860086960532077781930216089988142791468922628615715873941342465917791174065374744892844140389307259199936835184856795246184098401438314109882664716168079212088688894452498777366316840586960154783844800695020622374143947431192259384252622394579235939718204105746406323180270875732257822556649565913810652288523561775376808251835242825925901476790568698340283749375361254875388346221882753877378078942924573882120084373911320200102844045208424453226604092754096795766031316100597975633879877829668340916120928845270282761733433517145755989306526008217299922643137148644356132155879082220327836417625945159648022390592347483827290113148403231917023648025450982615362266749874224046309990617514375188709423904520340194671534071602734165404770545909383671589848528600611529488279621726358829306458351655836803897434597261262262516952639636580392081616973772757660580263800953048454443556042942045793707483131040524378112654160756088139076738775394552302580877285250105941357331329565354565429297531188838978738024257456835909763814228960342132726732717764423294243758418135831904187143001623505028545097305213923907200593360018119566001090567074234987338027411290645121433195279909438660555202482933301892027369312713085214562727951320302106920081687507788570711947964116797381978543889301739020678906593080277599048320938016346291205268301309992989171220425102844526655522153938649197386230515247444980089751594546771682268068767480481285630282099334546107107964571097074095449520272503966974955231119287184405432249212497839124388345682275468713234759876575971746004821302673779762027526118467244159049721507398914997144551559649353996364792512637739160242109328311354891369028803699443536469751889280196826535920953223094381308157109683661283118034019678173070038666512106794242009799638732994196726782253220884970549955018363141813788678894458900512804281755721352323452760103716444556100173996188574745326282393633167205519233086380490052501278352957877411781666720273571471561505332019043289239958490537526398900079399252103646421085211726826646535764622557164006387179945915704292638671142292731478407110386607107701983154979733773629238028051091144655164240201619243599419896416341229421838293481111757330769339597952470702185027444530802356717735230810030350959150566713667084142556506993596468265276125166544617365501068333262563500147442052632297249316036428502131009106683454443671492108289859207786051770200675104325397763618774656117960905361670695827992664282518086791330468370293686392849840713315824948900308442388083151465540658361276765776315254399001856397914983708540532699477878906446763580429254151595079584892365003370196386663893065214408244337204620414043592897427795843781909202774275771011770290657419542546039221405791594626285899709357630593855792072312574710530487290495125350484808686471151996322220307019722951192028794658213658601529608766818289677483792167283280812898803783951357449182773238348403651755366357134032817403663030877489003869468556711622229860459029669873533114514407592671193780184925879211788242663687671114228069632667070356847780952680277496751434105823423821368621284580132227808411080282620489607017877911470130272750710563626297271762166645379547666434341792173562392408996896180300809832688579961006136673897976301093012877500791301619500227795777221340869958272145742948490720691112961383127749368170229014185212677602705085483867860175707985167161377123803918202906068936021949474370028497314649235340822876985519324520576460667219462619057350260828664142222015157047398681686011522810344948956721253773833346820102287547385630985310489367311316812938131240632747188241357793673242147131844741951934282541559537690468045786406338089882333706222574396145334321272579046326721462749233032838931747561009695024945232354134456201758749051249689951080118163830633136244763532749761277968072978093793950823485486525144778677830066084329630345641526356032970016908347390418120631726550256713301851557753973776743966561545102951622154932259635574258816232157790689840086614426891872909522514390745754098076580585097641616066288121170946501632829244910537356753038808419773036373467960959795727702984087106739144099848906059210709880963149245422663393968470924211315012322682787401808507507292622416413274932632640476036848068486414332461217258831157490503958063612839955589881145770990832070076808591668694143307914860883436142499664090938326781800539655352176285991847406931532185512278546041803688581615218545843429658337030839401939218312539724764788203075696023648976206566551152983209161116760490319288483861862868900024750684520165784284291601402702996309203603055635924924094787423955491039373469746622806407647148456455285668313911263398783629410824783622216378345005533106100137737823177739419221242072654205694572925800378819692839230122643387672285965446627576694989314465767970442840207646862023650562693259210696862619858779767987410764512667710415585824197203922480324552704781544797293891539544281534324677298542695846971992741958649150060143244175041054203274098546548099426864795532653544105105797719375151103066194195484534452947438029998834298857306203585843079864983042883137602305817182962729260195064282286713960520873939694847597442469968310211882743048381105262842066822878369069459723616587732718568502393514657466523286709734336331794156549919353599230387425614914853966492525109573298359553622512351907947598297245664001847920992588817452424695336406081430280147101740753595797818943161395052389451834840719505947224284687179154203930269695401737675248844589269307987763001616952720580354554740313313587581744374859315424438696530910553213369885974854752582451944007438531381949484095359766883473981040118737537407055441033191921191424744837620048012470809932745594279564594064417399775645183943864682065124159856099759114416950468000332847328721448014145899195239200012496893510156333103169796337371321095622906069832701635576389987470851627096225831366446743609731999814952613099608039103549548811041494779826095306241783402875160977423669368231758901218117247835948417619663490503993360679991104322580703168838212284116120762296556384373211497692345622210214284350652635655543127664321926795313431293688666563969186993390872944496523305349696669037817848448282465264907278106657743894169593403797756245509264103992115466184119903487743658282511148370094579645009564508633950813868040051608288009911059412697074807153481794307215838401006226654358234829938482732781714010865850036099147707194180187428290918104642391791619967565260794419013520958084984128121357765702140497932304567245546424855460253559393393904066836730758425280153935101265243237771291990458407154689033185016851476051973984096736905751538486370530417319807405558966233721643632330565269650310679559892876285686779996008161974960739467119732289924734449851629390615519043429592249982590710552171825181728503462089885047021196780846673584524819311015939413907798422151926310325227702669553021903748897451519219440663971443390688641212262296013742563669961360499417811166352823295371771679494690654628783769500657692131050175249518714872912760377237506815054286997022774400376268562213531463908385724690490173724865398240335381426936635050517143980155530257993375602433120257760053460838119876505640198792979238093852228104929630735655627453494854356334968705013896507170593057862431175502143185728814407380168347615738882488681120314674054556531303565825452766075982042397353689747825147497126379605751268390054463202386150793194960676660157549380998080543760880359487440566389845453304597997151619078116512839873453071162296903760397365528223988187022874157088224427611391947748382675873020046108723467555789967051843981702442533862714169863153488557245607724765422385112040771835551987246900624771764178946533212867799058025723555703758824625600896159639888060947638366148168390053569921158750354551111610811615635617286359187992634646657270540209779826673189682579936420288490462792110660702189754965919906347652424727543802479095119657796124379275872176244532365214830220528399047352738168120823798011991495178295131825448546475680803082215284543491973327369298288856834318382572870497062888234565858501725505945921156033646858475817120820387795339703039022525395704415993803859312889341820178866092679149921473332500532161064109279251627504918332656895726113919563189058427354342292216779003535052195467746959306269724732852818230416330624057857870529529448765648537962355612412803187736334333206275448241007696201797551451343927586324289034793148164948428954372250312130103408592290563495827503168466084426924710307948670422421674169246286098247877898090416130253812769954947272504557039922075646748095571100630478768451622214690481121132604019433229150129882206577376532524098825597362265202031810268658893479237386594247168652704633602288818907450243142461456226738864807696672551811670903002326372777376158933959163918645002371707506284714801064510147324631188648866213666242823236683335155842781181337004768839561693883862876616297567669921395578753771328248778136823758482565820675952982085146557095703813555930147702645846493996197110740425274960078980439146099538162849193953628404404218244889873247080920694110658320339072252456233587639620039284876313416079432568985885479721947311154940219712655074055443185040703413768970114607010280629704747057495191520337726070669751214366265117140252283945130674847698550455812400448967431851133816649618696718163259420384596909512096380844433590450489294257567700301641110814536638717990774805466066459302427724517354070698974872682697938995145072838134960106950998154241714873791730837129175692722445987456302352074693290010292492579929185145991847473004346851023739299193358021337722333781912197227675519667652576275817500491591320314209704761852603262913061822168243732378625017530374032271106573938906941540230298574881019200086047802490502907014911779081670814999195197503854695708852884897743689463900036023929264961569171034224642810479649430037056840516397661542430122392423385219974773721471341332055746554101674435855474510317933720754316043018958123696167851054879899645422838667575193983985374520442761700793453466654692332541775840759167866354274803137877001414403395915576816736270816039378103351506166190075944514465139117331701955911556623002610338564916276836789228126284121114482005362863068643744986924679617648281687217806009309672850431391656646367818889283397086617590607440339489384962078019174766169112060550750921795355618422673390237395394609492167347888285341753434189917060152680902882401213962142800611413710907751424421585966101651000956488080037787633581153199855509050144613971577513098177069447586091597546025870509610306256403901102243560986550972347169552057234582247561769277572226590910887911709976212135921667018918325855354250579825454669842935667413768008383292165118850749706859391909990953269484598980329904314428641242258575977567772257686453562232358777878008894718540908803799280950890379329176533977072061681826605135708242145052970907322088423360413698754315328961031922334353331222113903621898244822303708000052114728833441455643667010942303209870680181454168828822864965879523015291021758610083660527202597073259189298462711862948698362265911986202950112454188270844819574642245461866397470286070423165672181756332281472466155917409229265662650455602804923944101363306555506438978041260039231605008764359230873484957259395863923282145587911580130473331028972659717854114039047208018564227069728795319850566242060052194182781057011522133689168059844401608676126688008673391251974628479528445552264238765722014023560198635968888314016666403113380951047593113050736900371937185200203795618754920625682802722286360514464012823384351715439572042758154379076966594695299964843587495256524443725025943225395193766524654649605499519291366907657996049039379865104230133847969300067211650321687514740218748990420432124379758832887453857167511709015368956035988357500544066140845971922592686912195023396851273281826324023084253415956134252604649029615695952401684946468093938046120355347549288682171084094353389296158002930805357595404974402952279322540716508669663578496737993219889439729412193403022850606098847781759079667948466578135247253042174177263675599733492034164221327600035151810516275521035243728318872191573928857935059957756899906033576388302516389810212614383696010418869823297759280708047403825462255547157682001549634999138207273866706062095491097151179341303349310406493066836323012246152334508005512658218725360227823504354539142069494641865758701911999097706941347303227290441584073831857733849119571390206101739538634705844130366209145099543998142579081858683230444833590278328597040020610460731557052593129484288842585474603832385029219563672756153127025225359268531678975104334802595868423841854846355881198056660873948302755953267039811037932893799710961210388859241549660323335013009717168558508733109628565485007887871500963914798220942477751709626688449265934069856989038726619419982230427762868177237884932334423374135351241253376164064688527335676544456985517695473032246571212680854746827510272668320816103619202797742013462273391945490458307486366364555283701401879079402543503680741791317632148348405854304951523599427979980251870228857229598249363822738152090013579006405821679946348032351167326712104353476377246981615786421770579633233497054063714708193241814102065834165403434310375059665562914009263577425816784452704230815834116300204536105572382908793168112975368159406501845151678993469075251753858618332978049711771433785830430970051652686614678741646174221089933563407629598209524382536716813886623604070530963000769498476405197930992796399456651775515454816195976625225243114879018735334531482918739669772304657545309653176188807630381798982878052395470542863760705954860224453630925454157580769928953450687701821131379405470664043463878839017523809102322520183480429180037052812813452581772476801578554051724393260476513414612343443862448278851019840163084073430062143659408790437730616105338714625975676508054370867594396528090073633208313980420203855193489695982941399244853540106214968663764798518156279058813068184250351704207134333528965603215089281523012690998438064014474352696749073229219310872615957983695081010271258155851741056250972810510766939404164448849184756894589105941739028620024161887637349265046511321848029314898010479936843626362748553614868775779534542503542505171065048584357619933110103728211391168893420950766483349556174442908708501043707216211456614097475129265090786309371672370512099263161741842080280779073389223481296964544259301416788226560808833766626586676188685091819549662721855961655273441945974564649229948371075532115741332734290218052046687364100346986513583062307687865472080752267194615952554174483199055486648464993705953988616600237219897297169526488948051879201506469755204154082441250159166209454478493763257220512489020338484005110346195775644702713366139235446087731830814385155533797521182660655849552131968984728626058273145112134830070136795488582280270025301086851889818872371081626585747361129603742967128748186863367757292920316718041699456986196201048663005903962895588005216644495257751596774368451137063204313692730259108713635430775392598712905038057500121769261599190630261011937718277917795330410488997242465601645176223345649967624956504012068075982703405227979437875419623945781607185050248768206495814202380513186614325394420515181810867170817059963705802570252783478438457763908247851025314137536852781623509491166829027873533415560861283243862448486125525366133616176919238429923471032735349801245825821696845219188828095202026187492903289106651692623157765349519804824568326661541617727379587054423213665503141687204809342209448963162492374332276959378689574163715752013316703350919204861567847112296010705681542698720471998307324270135860433165822186900204517424251970204556031477419425709220621806190358658926272270258203568633905139576421114541695421486057734534686402675553872963275412420587130406362785507476255172089657830535901771078597775045323672572723554954801360723384250833203489012751496537066091325498134037865997543386980421180320309631747359246365990326472919218966285309352729705293645433698413811676639455681990588746099826636051068691440695590746449367279708549061449948025609666324434444126685550123885646905642801186488193523619516973488067173214836027049803958552998731681659417880823149127101346681458200749598802690461337494620265121864496878745213328606157129946449964592344110855705174761010255600572046961550037872969660037526946125337652616717651082022343636659249106731301110255285146153077395399244199576741638070540236233781585515519923207120242412695297766677828648811564345850104588241196683874283519611990206810854652242373588735077934469185053509867738822758673064454754607869088759158066104724815634574969010448836267473275498698605961382109371316622193265526595515038340373406595091958147648752841339689525170722430079525323068090905187305224802269454339427225634240930644006027700707521739285449556726235276118192823888951620345206537376097263817039211695739081102966942246762566622914140314273076584895365604572229605900140061354295634292577742552493461749844764177143432476589884310004146866885848744524208430927887582988034254644817108171482356628211856208604509858681569492096761650001047088904739632233471810178595273404205719361994092751886978229852543503766179132337350447002337342050581388810126725034753178728215738309802581164126371874074696381914602565432948328710013705219238565729272210605994512775134977469742798706219012792891108747661032307597427459521353171109489524176798463755726564374725222181916603785575524665968393516574705048453973649015078882040901902483039762596867754460245817486719640646371615549479534923755090253315316619754636682084555414368998223006549663515564020519213979108373696140551990524977558705358144200291377950421580479837360787981437284320752943508658243761959518889987012633239562994217063927721334183632838171304696142634134205505373422977553538765911923122216583835522420728901340953064243936322074574808674593094877043408787083895094722762148137419842199768689278686943421746501026161330680736701754374574232929490951537257677395895244675140665869107481794103782836581151496632477525383889536438968300767824613221191064237958202440425311452826619146109134255787733308853391830912647707469542532570025359693672954874874761383302836221310914915769519430923789365401810776426981670710019817845098897659773478318934504889211469155264266013892581797083947116785046953292352538610168496328111897728564830033827539678259259291293057247920505952225460940191324581781865038149209481894616291729502749021052048402423277140673869197559632301281071214665009741961282844817574371414920526657434933194192599857795049325356359758744801841095219658623160971561779853528350512570301138756445200814102033228699050092125859547835390419739763884330703525613249796354391878980170649497810522110539693830854993950122523547346669692446945882260746169340341678197082294158602923153511038480187078304540486188455641916315980437397340728642244508413926294438411921621669434861514230476564575207043740122982667756601603290436627763544241528416099255928052805196192460624397184201634661421712150022731389866760229968607716941486922534999536255219659165966294302557491948782466405036562769575638233961945841164857473630219745986710195624480005174027339182319074133787948321344723245583434358132660106196610092563140296820209360401870896301079402453664722204343022238161190820131380992629929407066722631802215104938256791782409821916570431288711043932564421808225595969011892155020495198809977724323300544164587569840523140092511143643195246022269311337204187059530339014877010194363462670668178154793644003269629243587800009383650968445542847838461988962829757373496206050237635791754429947841774804583209989337003577912232917473024961796577813502284187143434988129602871781600894059471129975149415839819142467718376115164007892615997688118682889439476930598471268513341582816229530504263602138807755144501380805604881853118965189172470327640626258008438761470513137271958331391043095770062856371570662478698866241987091086569330400059294606067298088137013380918124618763449685712666538861534235007403673000973291047445424012112620356943996401260719050886213798721929021544774354551261092203898934691880117910087449900211532096268125507190787733367035309244669476951944175062888987879159224788794309438893516392361442587965434967248857388832571475650489381814935878913746477223454856987857873462156254072583356362976494631077692160026334856976141188732479056112081284671998437286312984799925815244419690395432954220758582176920992526936710977967503206589356027112043999695197197751746937667540316725128329015570854075022913263597817567943253102966389177394516383083319895652707519695201773888788185845062923915926696758612143066078355519012982466179770108346639633327406004625461577526514791922886455268224347186953777977488510314782257931832478467094727246820396782013780491339457196790695795208615242864228947957659942472812014696620749831716338850216886945701494778701208401032976587624173762223195963770598442341936465899856474984755492623094188843486374872716017039644641316566766156754801956974006924134848313278698270294972671927071534907313631584075421053843932862390119878502328472467214451349478377922065577652592368023191937225694589769130065120525802341898426599147643111089666003676867339509299169550279955935092388955686319709883681313604336083436751191355346191668863928832063033676668130132810396525583220557309384241389874018114026000496321306843890110159665579008118829680214461440359844684159766690607714458480961653897458622307078302500080956805519100027575185698600330325348194058291398339866698436325490336405931599500518822497758566124883442192498864348835737006734350254782798105683091413196457006185120117074419620046424184712154599169692921265255095139315877548116634584213520205506961764995815877595341788131248833097026205346307681042118461053033350684089930752271823632365455745575156445082988035695816952590946238509180383073633641598133772728389530773889843813247603332406393970264716307599819627444064676199158464383026176285702643672417772024780292926341776065250548804428117426672500765306922282731539668169133553122900148364917895191079521076129752829405437421706793115142692065802116243000328193030137838662642765158021946391405380615053418986772193754470048554604593675050024809421961213479047236322786539754341043016884345176513663264456634320898151577268066903366779262373756191123799501845636717571095718381725387725404863760366215988330376610413720363593351819069266728124113949711924587624741874628591555868821140810948865547218877245806499780443514703427974474249814943087458246819039561521868726274034210757741467495863923299455627870486206459426120069359123652100534114794983610195940179609139192381246617154068198348766738727395588392567800809252908721598187445019795209227809133352345987914505519882384541641925378202366561049182351136687089316304956182973461299793055915248739680297126639698589873458634438638573006663371140020584807447589184791062846901346867707096730236678078304340590483279699808194868804967108200662675145462437637449635214684192075439466948432088467414931186144765884074571475397030235349262536854748496365907209321346421686589641782557932651901912313236554576317434893457288938885973326090821595707260879143006397953726712037448931557852937104689451105474687901400452863386760162228790182944802038338000067484783554035848413641660763252686796067443124648131824364573225762338733638241106617536472388401949458189276012827277681110504986806476790853156625890480878373206033422903839307658225533168808115730443168392888001145662499173620145282253603209853546354838631022729000655865188119943059366850397584488239066295864595667411338968999455715917286251228706758555050792365962940492592444841125281732981843743919678318210599503081342641331395858030225566674956700756443399054781418049773506620335511581665597988588279264853789187571527984760979601184197688570369372181930015065722484441197181261708253128509586220743531236536620393685913326192068422766449474476901871487743626553498898788203996183464042451930108848801494128302216456675444364062937343422524481529774841564072897646287848067476772163005536509655777089455920470674688191405274254444282646657331277385193375700280507242255372409317386695627098823222265163156385934705074254188218107721292801319346637796501285392759854264586782340657950777490527949405116726627595062932541226021152858532546802418777332768604065530697611407791852081035359880467486404844463432737312736268223967826858518855289137144325703521149308717460735938288851510517411874732317892772367850488866490289702044293590788509390867634551194631249014162033018954513975236441924337176877590549738188485696947723409780520755424352645559786076387510650663979575606103781276383419393853532461056820796371980197995419415659631466687081796360648383460197588420540195887240688126969357310530206766688048217497693514787079625154032038056061685859974673631101425632167926765296758442265458235552366504401111672815616344923107520789497350519265951368911126549301995142554849361536496369160741879104231888002189511880478584469220585259120060533725663465589197789675871773708603544395130705047848007265080313588407018358532545476845879672649383473892150370710392453165314213937989848636115327185486935828322972542062174628623724246979509528492563711006743077715786540232803843364805962239400803514240008151983509762223292449439556472974519853373984046104339245109480927793730052556786803936369969420818928425263168744590546039489197815756512529887729505147039086120452184143433720931287691535763071887537649305395723787423776762124115455026617886166783981154269050989430515990997456246507273912937338561243436643412860162343096585957640256554159165213719126002938117463370897818498178195325899340520083604038595377434242963113851177860436408836389281580398930297473844072497995980554745694589997881489211174545404802114532085924572018053686363939804574506518047941128258202530365798533056003653261984150262924859934388878224350025752555996412377997656193344600438319834691553743119393934452699629117480837236030357280602320216602493566804888747849354252781038663139413626841872093643506622774223363427050680339723584622017569592199728042326149914479245947413568931002001871904435184323222157136305458702697304984848835966168533515594998268908023941833894043609107670467649890260857642726225001175968410990078070798151389481142348629114750026711133003939107008648869088427469081888407046867341692172776668090611268137080766154167777917918215676160577894321678785900210540257996426056478539194740052478240580845932935912191794173053837517336487297996851538168439600689140808630108080142807532124041381133298549254752209606147172014893758879228649675449691502800941992768902378930712034680029563527917536726867248313773883417357458993014535145705252826102209493011292678856251273450172751953689883197289094671995309191447668129925603908586640884119848712999873977660926771125172644664910927012377722015952337995968881292700341201630774866304161442675278331411467342010998163211245736214287652341671731243347383697569389172273539953824361625638774525284623306033471310265173494542342650625766556985985825750080700316758178003607270453748511985164030558246551711027190010655378274961749875134905769638894527880326078128275167451412449201904226576196967068391174492228978997755514406972377698597435954683772655858481074845678682887165535781650906489030499142357028985655060817744635449113640770971329044032273374594738615377692517691935437372712772865389482813776028290162166881890388972924785707247739015238350991706723491382876420641657763659032450110582142857537306963495020668267107848330987038152820788664192057261799376985288591689320346551039491454935612068803544510332917038369981868493978223558912210036567249463730340911477119003447941686782030095768936774337706492419316849298389389989207150034222390373587779021170813321742517646852033088621876655061457648548076650516550179767379620876091737164270248975357441515802336290558979498739374650231650759251367673579605410606218216773629959492300217981299214719983319287132065523776865154606384338025913782697007450906086701225970616692413799485971748396753881310488840645435812759179297734253476759896811253851492378533381132126053110734239298619005774401243487408343823833362852773829514489496426671385011691903111734215345190580621830273510177067337430381657624336952229532728468470464532598580720848317735362577752960394814392002408103139587032030339231457595709534344369534867291530940370530551302856107271548268375750688662413544161091733081840324189990399609940119526770554997637271680704584917015641330309386149925319527886216048296483628857375753331792249806754988604718561355599353911537320312034655732965012964183587869541249074095868390151265209718163512064459327248665706637095760674631341630182779196303385089145929057827102053454240236447939934162554518945635696448074885822422083264107208391742087529408370249365644855577847831011392219667681612813634926258677626044713499880237967085492906142090534797999770325150347747981546361021011143449913056826305425825754761608565146920242173730833079001658892808254571499804192124653903980212058991322597476371803315220379415392264954339746799239188751711583201897220345032810492464612867988775839489424599140034488240751142269728289503759168645933373341819194562645628763831331229888909799658997872454262392791507963682793268792399991221689907969827423230890752063204468773310991486942597813446720057866502545942168965820859863660841138695352782061894476248330795906024715467439732864413274783570689997616022302850393004791147294672132263590868253072866319351424258535760771706738576859240561287267173914331701926912671809039742804967787705023532183469450393206243295072397105267645328424435671177974469254301207653959872313181709889334192394090121792422993462592518219227622346464233125992815131743785910390449337778257506888203418826238311962609535053715224227332143478022892002162350360812345944336216081447774753389395040418224014652840244030551767525774528854106000739587657341115359673115385804272199660530696053892198921270290454249321110671126553043502743792336570288670336181185715824330291961148997643953479302121319262388014240502357481504109850526366649755264281370810769058298818009959768931688490148603214397252770615922469944684920086721162138782686146729388509808706079840016450733786934400486288916630808781745680801773348112542462649983842758831041620278710049370783679862701696617291750274793984518739725196052924158784560913737826621454001961450628685581966763490530108273114069320352656226842594599316797924778489852376888648056931599906893326419117020129864984484561755472347413387004224352556233439283904965356859927019619404287631992043864650162138743131870614091944824373160156741149678181279273645869419137500455369534663947559506709970584788686785910456587840261687442650569374254323556096604229293886565485236240618426893763384198171832349593038706538064042795453009691021637801780898016734889338652554962106520008423118551628260608342032730411904274492536396075021937710092234446434630732680408977021914566930556244197750972371364563166336574858226284905520118567566371738144993687003939809296833983401421117307302066645519933840030744349060224182137106594403327156094095012117957597555846779821411585447049918714463590739787170683932880917136884535191642197652196558961913901708529762065188384665583905073254589481092392661748144099844847232346585243359546568175283464075081922644855176715826286837665104955101214094515645116893240822180617594222853993203974791296320179137370312846464168638803621859512526997589661756946418387047815287725594775479294027784927449951735461416091549601502081691319979953120087509445087211396038530383394857531869098038355746339051159883448334510062614479984553118119597304731404268026567170019627904113160537612813457575603717232894216436778301810328252959834622701410985692485998656055881109614359865271239329599379063669396011443377308091326666009555443597304433892128948808443076691647320073366495691951332283176631291422922609023715451402727638541164060231542717444376634787080342188494282452569768802570619678396545627190202775858132373151001113132715464663306774429556105255043515461367923664142526072082258417325906290559070247237477030050315491215383149529995888658687237173653374880317854646682708803112841507456314728246102334065831318551340756999581428886589552088632096636570416759287254262403677896458812069883296505172725882927358828602328035365195710335258479448401288880888790056283331398545690570553892735954991270345800083117702506298609152960270175474047061939139090696908337435687264780297296022751871337260937198864917922337557304461409010058870496379266064018146297974615564263151502993506980439368291200463457327588344099335554802881198876466294302561961788507767789476925493874919685653745879565928680685289528640231067302094953113860721290448935357625588820090279791349725244141407256256327276660864414106950066679779099019515896142168938619178194000421844423820318835023931811152377346464796799582723051254754550780361919353248924235387882029270706443410833064915942554936625810572951294253108963858817571435539865617555706084589455584822127590719690032418520602247783420574586078929612367280141639715829600441420793841370184954630035743704786300094966621344896799319615122314589118033560022704810134369600201230627557777970371848668671347817568597976215314002423770797380169443770017330200031817835494094719362780386866944896207541879807259803007675266734008483856294841650201997185502544437823228510961859593134535030655378899502693741192365611897877047028637633494640832114620441442132344796884149182727096207493304453875274340844133123456503249791354874071196048736240706148853804956011656016613582343880041571063932256821367427471800949278435922383887153079714306580890027117480656457905868961425370684184884367797709486165231140521551104341847527882726223402480949539112725681369607488013272136107284073444922285851690957304573705011693532767632970163421222474092690207590936203949035652992967526718819968994296389045425380045597124623159691910857468193144501628288415213794601519280333749495857878487972564462616108253401092566144415153158589158116218930645769127465484791242945358478786133054961723985046759586908948309529087590495029978990048225471959135170444516073627177386971641192491276541030763744536084733915995968626006201931724555693223357879277198963335276961846851769040054619438749525735579246156628726950615465144059879262571511436569996159603841958685726455168895766422146713956869436149190726453406156847181828492936896549848895846372499699148326960360879744938250338108048022549283968103903013083808765117345610999173936364777318363748227180378517381364407637694194843291067940543532743914908691685388958765621164697406547151029441614507833746294923887540526228943027667891610936692330618016007517522359075174202654246879478287358006349637592254417667019075134697348967349033590736451687917881644285580425975454297880638875346567745835952906539117055842130275076593708453445550054208393658244249932920408452402988351664064506272228909897386399786897331305013887987379128816828343171714664719354960363232900017573970221727016049856662746683854234425775241260225641602591181303597650968073823213567058165094161498348065498026404365640757832406663180789770887391887996453193495428477591924482176124758862902732212441902877521498594952068540918065036568692197406898203250183211054711636612269826301856448055993969064071867474222569690914400043341623375881916866958767311133222716322902141058693275809395109912209216432586594890029341471725468536781644082803273523822991835123730810873713603494388737903949790857071909764789017319298103306086184741188250365236957474072521763035443903710032092456268285990943141672654094214679787538210279297828099011627121738249408245569972763350882793214541221256195001222454968026940037220079542066068145125652447284542015670964725267385338400452109686838791812262503359879260839223350132286085680910325563262592417982484181723125212006582997699521823036299462673440705969136050813063510148137269475898724837940900745912584778258971654820754771325102637952870275645048876990804444011539018675581505878410573247303068148287584474724077797450652336277534210018790128573607788536415176243871245875707543924138961352641604999056864753064452666098075395022534570040774076956398669037050064500799385997284023181393848173462388801626256629901672590809361905324882774544784246259485679174378380604946555377027807055942230199182612576059097274935867885214875255824548040608978767941666479657478020415879876351807012333899245693164995242921564344561777402382111572926391517181208480221801762483072448709169768111936466690081844078611542318344344628746360427745475623885629894392752231020924549762475445902745593263453239970574454305392375169269970230441366892678218162736511497255118421675340788943628740275323877736108073177551898914514125209936030037390726272336903046340542853695638982805940614400039878977922093516018242170556953515390998629158342758898193747629182116601850790159056746162596133902843874632370880476779729143882453477349252464743209614771801040220006404180161022329045980735891300825895026586917608811736368051697086374691107664606691312359271159138880561666789013431069083945075965173936428881423114638174312037696018434806748711171712467117237585321426330831788704364681192025465161346625130886233285296271441812768634723957123653967549255717522934485583993576348819326910672662533043793757348251991432769932141024582854003126023124491719867984162021776650603716633309148556515115005702454609681943817980461670284698986679307725456007872532401126211282527983643315122717802790960238089155209005471972947835092597075063301371204442971080855233825447438449617359438806486866167414089140248088996865449458232612570946516177496790854900777903498957290915860305897172099958384485615824154972318592859255465926900685396392827807526843711729815081163623084564419994283257322587520303583930377460339966655429646291168926017793583778828427043720945725006949151860088625640649916716558779654447851839067282222716219102709622604792233746139719027882656271197313806954067638525083735955533538030892547480523834292887633536712769027726599435806986885482943437974791938593921106573060546900219239261591543789191932034111788858362922531162884524245865861575679490908598595619428246711093925238594833548099278205712487431769312799997332141653190795081773294038117725397709774982407968015446724670433257855225179750486051406740368229319045886168676182143365443036842012397467472742131629142399282516496809252261911324920801558838684262741435723352371640351390484246377041098959703609789770546925259424741107961213025945087710084666675548946493743413177127148702878346356767550577058157680129348175929994528503270898800652385800354492157806236988451897631469260576010750464389550042077169769857148812041675055337399026273604040905361236492695603788454082005547593256239819784549324520005716542284763612679933304904040481054478546293227679886861397545971231646628901631154250009762562378496617961683374258317532792189433294377384773434525159647021381427247886385922904438103719244707687162077807062471726316186498870418382368745153086698633858630455528621163164179214510970771326581641081169392371725813952034872113278262248402120638750068737314433435290441291066901103834825513243621848428787116961706938192079906328203809383730161301067045154310122738813790410585967771371299378030663222534607707817954356582659395031590023684747672637034224530584147263173228283225069844212758517000418911332265093383995572889421985268082205713294727722627300258715211838190525643045696236119527368363474408363167265455647779518156641496471609635699764786928204447470730287096566393273524086397008515992567724558764810084082249061612429589677036633420548909121416983179481234532706053527436998958768176785189830896919058277018535762827700473081003193815422198060098449875593510491268859865625489867610037168485460904997525418085116354002097654543114399898978433702261959606151698859474757448398287052482754791955549306459074049038531396028853320823295768537216536440713065647006828434417819635435073062184971595554193782536533523073487399122747152723685260694742010585896993882179676996681240158371526898755677655366677300133426692642704521461170466482757216936751806459853814503648748287424063491098657514511411861615423446137026269024476469087157027203966003488481929958227330122092786288460453316788455329095484704200615095283331636577783836686231103320156053709267400845663218720956598073951519243918905656613832341385626420872792666041016932835624922215468347386761077423136790629184228712292090761639343753106396640053844495070369849450372985005940306683219852678304684716869213457024783646068809817993367820488978412519856932183136618751780450909502899201828393154373362730260045608031822000131689794419818723261941616552608686131329542853101146404715334632935561842922259558151551310187985876104505440562329758202005201302245757150709030843584114184482804711274604944248375533955672810555162092149137974629965603291666531758743923045332484961214042347689967417095986759402819305020409327703924639742802178735366105173343728369422466324309965556733562394452249096901325989459678856367172483654177610245624033903221811444960938928541366717681148793778867734304405124241085943779487404471585431038360044507424763758405822256289684260569176459624905218501415505440140724981034813543012871723143174426840865064949586930333913550029493494002047081371497702997730067009849088934348626482404904575546584425357520224874523381519723676611606967972246172862900096047464291198891400661988034131613157838394669752226924040991766408379320924535142745345616716866685113460655363278806085697499563602378055511806963406048994093700657282706597862077023950205050417224430320972721731668967148840658196220496783247190428889175697698383418569014726281836650606518341412582309211797143528398306253205782773086846086126254212380206061374457254745683431827431180836664570800084137665587385651559031680339633337776759848189179330835758277935745314903212498665061320496016384587610371727836462110843142658216935125137200004284608381744743988680402700775640807079775705961504855486689587850217745662923569926996946456956956826880701889755252551348054081150243971232258100241498281947433021768047371411667826334175299781415364479171551334964489009270984704413150858709673636936543331568224311332881501929937232658495222784141658829332400478937602471581484900744291673844330735290651435617630581793125404317442311109415190767275636212280298910285401383547440606305063726637619596300152899332825628091374994242163784389459665387735595033357389836625825137126430579936774857612401808532012882982633554660929523394729815900678734808214137258979260147981483613492259536085400612474241912370452070710357787909227229320905622288728495905327101598836540543779477685816464188859041067671060712027068499683689202445407188593742411247891742575280034165043494443032948975801478943322982159764188503730467931415064594835506175525678815666934959727109952621062826949183393844739638608495476137441055973836675797308841353870695386451692594393772435469355951137260161903185618152166741195849787921024481490688357830563466102161210127891950590055138314094019149016089053910169755929227981244934560713582838650188357872679504235421744733695328646586408653690039120215411308810878427476071342755972521775546482639046764403852259878778350962321383796441667441199231795551594590229281616064785834952886467128754425442809648325531676668397351348228959184431252475412677893509069585278097189076136539142407165559953294728490240682267741841898170735275676294503877268820184524086680390596027410805173775373743855535406937562065901049404381378573929691504144087227185135195817259916298909572945059359175695513748231009301596343932180792231319060048397502588935806968510188577324651605473718574462918270104655972818300466037219686110799349323295983439614802217606959830574870628209954604908107145218741291306189043552741615820814751263538795997341958691686831629833218165474116336516259413232980494810983333831327778667564473082800469220053274191302641451054653623794324301120648657351455139603760306036943127328941545980056302396817057214448541577671422796520986657429006756572499663799515179144875725045044871612293509844493498696123966514097898605356234769834291634903329694674510631147800848027825977285880010427657265285163278360268573070969680529249165963916993162361812608737517658505324404087463955811158718068335523405716588617812092305857200192746129318832496598026226848974967003955999594003790112425346574466508921353896531876113040810762305727841237388618951421503789206128558844196616404182810024841000922072465061973079118344457360538568677515093907145868488303777582727921657979234162441111236262272174679563105764939792353662062402205970348353509812206486089650707263608061655047066247934738134849335434533073404628222512282230723304835907378467692563985925257921025103389737526491733322616832630306448851622614756286380257012440738196231823632792559456497827626736002992829987904999627981011645764978756760116225978293219512229615831322715948409775114793180038338941255456384683070249141644235336637371677952145690764393175339360593945845859513456198071896007080531502168441320338008692342366363527667952440716901858091004810216264588014696865382037589031811799692324411994323619787778532345166949840430819177254247038329229101659887147449763695163561777394087918751706613690477757088388687860152680351706808779175750400250268376748888483606631917298891756320644009606926418760043931020816569867696106476745643810238536013674729543680271808360610598840854937553300511577291351194370500042401163489881945504446486195564836719477963951333292471198320884020872554095656154239436115475857920774875743360481986454329797640372414419088124650819198461572487647357600005980259960244445011360630156458118672577251364409039095794120370527768878969921250528070574195111951137770000309521962736563347436840206357081690110787539992844087083382643021380791704012924195584052974644264123067522547334455329282983077142941768804673765446540813898700091939480357069775243915940967660301923448807806430775379103467046620367000473438035821401798670917873284129229094179940935060323203463218894920990940640354361763458074455870247345317932695944761417916234263283978522770513328320902436335984417336185908117488896820964943669678698528105899891625757284568853933690811303705416646924443658609753370495105049523418289234610236366459611682963659483689296805182809160149061979832774783839155246789109938618237327218851274726536479394883951729968805970571268851612858154547926261480383808214079276261984426792571592229786447359650347185675174302295282060007304592728083529004214208932257405849100968091285200375703035767742647979142315704993896926100556452880974843636256457152026508412678782987043499615573050525030477388679285461461949129020361764099677340488272195040577298374016472997360656775786804623443504384312498745805214491506105890482055415515400456186265441116721608017211728501655140328467906702959045752977134495319930752789891326670617378169359927978694270564709055416495924023768337744722226964372448384063212022993465393144953808507110269238281552645688698051797134550750939933740216921188866615451810826787808220531842677064382805437960336163990439554012538386386119260577803624176276399633951921571557910670834960161239734497392664656682225208287704609275791012153323215984628424761173897270394420633125276345995908582459595637915930129815651719234441617070088078553391182545180004825107235849356859860025295861129733099159292306116379196212143450092684536486283173902838591826150817489428141162295082033364113994254040752732688769046107648513975632580426502155048495113314583609895481465545296459969751935051061689846436134134849773625033381026523869313451227719441203503748508330870055864104340177498573282529061331150754253761466138331833644272197686493824822808319132275239069628749170697221847878727217165037683199549186517783746726466698697785772351584099909738331802090908454414559223587373593248495286825328501012542341891444189603301733563032514547835113889024325994139663933387852945370146745058483319795253146414148462269336493750039380061885006145798591526706316519756588943742474623703348677673484513042529474483924002144284313741086437816525120600615571557438744420280884293811559488699312156186023193600757661652536411410547420214234755433909559518679178027884909800721013224497609072095317125289314047118223152101842438327037355776214296907716595102789959004662303320882617359123577038030257949902435828999117882065380670582928668078211470925435595144081710187865180134182407324186653411308447285066049551918329897291430860568946721866636037530638558162045703245295267080252728656212661915517843455132997153164783391918277468357113051540563104138350010642789165808464553551255482150484509266207851177516065165148781024108277022313861279876582912704054847492806365289105985100723227205670025107673359819535570314516503770079391503665744346946371025617737771204653076587148334444240259138315141302052584396554791869966233869587662371883407191302812128551547568826102006827328897308242738262053979994258797917008369709892330365374542470047767356845016243179037568711366914358672327090787760828335070469660415374118318409131304180099417929567623008415054372224408108151630515700379146790000895924301197223599594204959201658397835535556945726810235450700929933954399619007031816684150735985756650236852373213220362628227544179076711715087047218941677170566790253507796993909912953496249941534531358608571554085346122873509748623104853255943840359440396306044624862437033200327314742595630431693266215529785313910730514729475045236030735735914534934592760741851681783090638146237003154170017401262014531268329927558880260154150563006825262904315484597913322747009825622624334571870856190787815654282329883695894838358275622695649103345429424659358385868260765314651794142858944613321461221991676640232989124110533492701077170003001882872043117167760103254407766624494194887294793193020881723937817628553537903815385312068285274969673227593090074432527841953820001654246338727337249351504958766465334979066759876662724839613190126018088311443758943566909884814698507346244910767089359629392409310999097854613298725565696648173357160630749443170022595077272470462575777088532891554254294465235048516018280994917939321239120307959088868369084369945980572924632199451808966414603576553097951474191055834709380013941747431858001404362452055623958470711226542490911890923999312826588381826883011478180909471841334592412640069278894360642874882953883205246448408854418442818098536274359130523932548225613242377977094778222221224664169778263193974511727210782888773667838304856788959301119802327268968051514200354448101189842933843283346482941500184244801114933845912052743371758285699351329868026497489855327364621585022638509422199295830860335378570111046279745469754904531355976208327864259869313188802827876225015746427097977228076190931531532265198989278006018604211255030838337704538310074889156224072858147986442056489660346069288424900683378545470176749789425228260937470567718108015539094972198335423487080536168812333932364403176477526883150338214806379374595453937262170317461412938998501218368104368025999603814412612686364629117749819213067306225376871737530282070554334539941510942584093270971274633178678714041175743220647292043306079891243281797349617348730119155521376677485314602918467504400067506212210575468076807998274874762647290594659688327366416343858857411471958471396690949796945070060133161993986219443300015912922575292272117229109614686751095018153255387415492382719504740447866057132319043845384379511184083994459243572357202836252862489332103458145269347961442295903880633427699997106189327651770595360357149304158672260471552116436456109077222825899998244310594050782743613932114652850358037154337171699605554543391519889386256163436792766906298179408530708419340768565091651159966633533098007215161823969094772949569030232574202434842326874086469326958885461433762873333757764031706195293047011501789224070217969768771810363952072527921203758012005090864030293942129448651976282904296356265696076832251124499143718712377896608282870713874596592020024032174249101649202089970393601051844076187987794146347144972733292811103288861407993602016050349068518318294775475166099121185628978548223595458124871866553061679692756633410779177474009999668751810247055749861201297551810307629006841863274253226285552014537004278131115725711912356930626644549439479921186561875355141701987005807968428282176757351026226894903667230959346862475076018704018352999084575861865027598950799606804036069298574069090131244775646249433812792933051245014067796045961681198678740700589135527452931923756959962409434201408983016493003245443876306797041919534765683620521469283484122615493448230763813517802479236451717315833569274060946128043334942315017362308108046725378377942474178559753931885657175674916125946969220152559145798964155173258753520065084511520776785270003756261971123990475685889458294359668201846162605905444435805549825825549252758707777495009546119291654896865133659906004864408361212513371000490789960262595856464398496832846184960333655221420259686393898446969863431101873946976740251281131300822067022512886263978915575956771731166321230648817540851067992546291081145752244140937091196448878439053714956684794954956948660954675822497478195288255156792149629173985561002552016398258644787588750079435541521728741727906148700049794939206662291063959636269051093172039361808991162972346902400830240444164232008098601569165773343340257382804507509088164518651197677562157187222096200936560640700066489021990183726050974905093562123573776463559475479168541113330919835077142956893160100805194061740090937318529074820785241764116481368124406452384871169688218453436964216425006864681027522869338933651288727739633535341643851812102986499748057064106234855529243274145995587395984636579392085720491963811915398991596053527422729813719286593649401016692124002609819417154908057630375902135208891301395508457390495396337835241502757131519220154669642637303904972484695884121386420335158229781732576389332851387643522229847888660413075812858145134901455444052616622052859027358631819454729691125500462783920620154582649317354847430671126595582297705924517184668950489630568861411226712553897377668766380656072853001879256470684106902443636681584722422331098000204863653650606219980108897753703956675611730789120793311506593412704196471561718784265405138535044278779545473300571655973958925595688032305356453947193880312285227588145134140965513955376964797171863191298496691019009018080509153677348184267208827738177152321653752304415096859679875881256573133920009099540956554578666293457183529612405020884922636983213752149059918813998998632480473676008968521534661480378173633912900684494268696618777880255474517694222065973184931356403635885988256870713528378659474628178622172256385371736431541895918991279592286294992444004620561331497448004609114115122924988660632762641573586662511226729261597869511342224091436220948781732012759495393901145568817901517006346959950273839212851396795807707602666265121825060781825543557981781569396600520365452685931679534163780926273328187012911397654363108355658293277489919435190957251443825650305352405194460571615115565839463640018613613574536723594620205527959693277718551595317500857899698409476331639484939195030687106329508391784800467746297482045572144497552007473799657453029804785271551085386495159744685535805973026079951888503164156346037361882446948374612685852879847372744510786328573419976757256212722462611486458390288916214079647774083629748194527493048727121694934838901379231887442510486810256889945658091622636420446782103548429461106007324935708558505014931674679561221450648733215279146789195994175831420620531695025461999951854094910510770683665522674118390458361787491972620822765700221123191563502387263605861214570880850305255179296377479603417813482532445934088788034286211171638538108465308962468195633071958898955927998207453561638790656217792415050748507607132320717119276800278265822104717446154418410365823611323909528806112787036195766533005072926565943145717045479217925484883619760995094165425721300531983118714451703194813891641259850166713297366333182830825251860680702311044008821198855270252611982587993526102452022620803299119373287263450104608121150856641859080608459433480692962991833603534812098514202463066767750666742141174426603809827121949466440861142866868837566627378108979193068548285785505110029453033259407778250773616825682839689938134340776774521173157634951778848775641426673095183289333460035174305254133691659150339572738072144022348006708035397054690044931237638716097603722159714247381318575956860259632955986803228957203979045071394599697222803484615955391059342309624210456139489185448073369438497935435108920978970926920443749900909226693735909089271326301277433985688103841096411510269274209875623135754839550728168418944711355096183181830268996628898300439672187370079175718413412926709931967059428546869844183894292221250452834109012524711324363219254652339190050055464662208949814813412960911137153208418668654109984357776841634528316813327051423588710605574250056902461847459146895895553804303644504930492334792735821623559600906202960403114358115369460221331562075160657581468481500660081199715441271868621040322192573682659584747948639664829635689336176013767196735732564792165506173072603266372394923622346020097832529596366985705751332587313108404003651112882957560083368466780754253756688119575942196185673142100795028088679397931940369185165205659105859298320740317981660277728978412170822385062806844860821526822349777989229552320657959708725035255217533040089077110445486078908138400344870591634463482132945325667441006071830712224440215465299061062322551009606474569510944085825128045475173641247991908711692366408192351906682323886550107914142755407756620909029226157799347280753485980593510252527526251868209208717192307015308701901241812125148164535462677115217518597997227937511026185670898928242327824263405073520567894382349124155876140167987803856155107817733818438017576328934974754249562550450975145992208878382376373186581068399067385584159305040356208897744149524082246720620264594551440159625297732369545012689063455708625647745721939013918022872749367167751694931411969470082089034846268017698295834561260981091102864158102133367040893675222422591760289765826094019709727561185744796313748848851094569625268394353212943367182863502403831928362897926882875671477434636439916112193896873771110960691881958742918034483775917452545534413041464169227828250573474778774381235081949873104045422273556218707462963576582735087699961799776660209033015462750111376893050036247295264612715291421151819799220280605291684665843234197119740691899535931832750078955423652704633018014525878222453118226381820958976889364486301547727322330388237452850193816150880937644694143192162822165463457442148009854751549710257936024055854196878910291281790175403887794819779803958073511882716283074883501534352266758515134060465436315898848299450972532785156304608251514377483732586693625924080325003791310389891813379884726050334436974571850865866923922181976698177378332959683211105079868605267868566808724160969875247540390982483268284908224847134040989998589278803957630292582810859364673308036613191233332151102057877612189157066205088151233235096530966758842790004903803630564936602942176639937339699001256348301483513171201695077659410681469117286419938330428617700392981021199151604335556915393726169529712888059406772291005646509387335050516336061525485485392706027164732267999550986321325443293272532506873188375416851674444058356060729048550486822047798335166050223648880319517022774944928278957952846155320177279775300248926088338917537493238088074246794567421058795499537214353700860346673784473810973975283880498634740564690861860841260085786586672766263255532945936835233580930239604110976109167123116468918770631706308720823645743900034666951028958099407807715442537376823355566834519938681479938555018093604364165393337900130025434468587859946082216172346811525789061801090872049672103749068134212933049533151128136927354454868361434361132896652358948440058730203269365030143812055444745606441531945571645501481569582423495406548057798714831950263729085768443603081892573199689534219015119951069100728853501701053085550134932050801305648315956695769695137674075083769401341938893830187770203672444996945637293709216083439772832512809911290603933217608571791021049724720785693595460036574506878817359086136507695406269368359033989688589756415823224013926820365918003538456261197104188845994025267436194550724808973072906187766110893272238154487075187995918639648274996538988678042687497233022691109611627912961280558751270785906582407592896261643126603850356762717071960358714082534571187686535884353429328754892129232470785714261787536153864599250485189032399779025983976416126494198620980668844871557851859198428431597232510916821099346855917310996934038729400702665814988942227746387541238275053234312955931677291094614286803882727949353202438797055041197768362982108968093110220408244055482779359340994906590242450025352385353483515135760243397138907797049674057629232400653521199272630373072642439364795842110621469121818660057901834489378492177672101596243135601429241040312981843103354788849857977532529544890750434742374086958657232832836835190899204638335521256014912750752716787881772355784577033055013650889138721427022454836277514146370984090109093250060584370003906517146938538226914620858329714385438191849003585749499163342511923104786423012772042559100002504061852190897085333631834335976131560054654652757468497036413192990495886765718422138696461336836457581863441108631394643816525319451673797876335200381381261373240748580465622969125468051955415908497013571200850064938933594097220472557880902580608708601587572970369914502649582157712637593000997791845687842200407411770883640018587355732946162433767830134509166287894219069422381561610779082111461723424255788562658942266249848706349088620110321344512988874543601703651513942369225091318247309334542427186287674858052018170928284314762177618953570971888176429578601077748500945162629171498249340039019205138981821589787344732296991665019060259980077053483448627285194417444841581223385713223739644316554319984527941951641707932690074212367438144218274589854630987196698715775419256026427735040613395115853944272975194158737130448344910847358160006834267749053468157456306549000469769490865852870799539564689807990600380138108652912235917748357527309288458903960638989498268138719267580326034351979907405812935502351146250267487408811618418625224250563797233790669235725266962890932288424085442057225916217089536744047706693275178570430784954910212573491403599773394282149964298326369774655538956928548646878757871105800721264248904850701253202712747675214567973650079676080068284209513931319228135291495451517644241341351046269527173833866477154487178988317967603274001995394948795324589465284751814881777865808524074138974613058453326617064852023853255976570841419151481993390296130433294535465140558285863339998551520135404205461253607793795747003158303462658663271819319477309148105829187560666011809734147166272852504433081100267817627917054412027430283113316900818262187639129261869356640485694626139110288641166513505663641151503554951655250178064711814794749089688805080137385352435523377494438958969059033645433766885281844675008031430570861423227647535201759742109378054533475133465467410098403352898356540612260774191212516308420258483837737091220849830518985611865373476763355181541193407809152609822386260825322770216381700133454071860859225128767231160289959871295869075909438078822803078900542856914682043371421023631978983974928393296515987942853182242418466471162233916038462723165731370462324250158069886142446874306150278727812399366808427664739267306081300930451131850711938496524430530014095666549429111312451699019195235189411047108765476378910806316519317524529213476002814258368887162883749162282810940162687599050907903092309813703317991941849499219946508578513309906796957778013460323326649343644998406143020826552078629113971268100222932223878591815171594804627308922549843223126360106695255554292957284578311129633045765406831734904621628078396355238983940558530265873210119187001786081595006617370837036771342782799367382088983595800096884411488205318552514732956807954416648865429845725529934519935368545271540458676572490578440290237810943399010574714409661585888513972572559253863543136740234396031834897578883982912575582610910795420770600878504759584728909761610356100296255008488780644267909809383675505480406766408521719903938385102233989822733620063090717983273820255697136023528903750545314856132310576920839642124978033725450338348504355543975372586853371586572262129739783732499320962292522762579144173016926250316305597915430100997532495586111246422457798051513409989974880739125337772930601878524792246844366983247755620590033664867999680288661188395892949160196192467191481796522359959532207208310925811571293557478629193460844845295486227299851174124596875814795443554025858919819115482899730437411216610159513288215551951471114941107907511642406421377675296851406827766428309185393938037535410817785003003014672071257174181337231584929547427114186073830292713820428708505458475972396311384220966449429162301209703541035344455184896397112074027454414361175236324140811450336504911053445272616537452574469785126062244943231186482170026786210420069141186244059269811713194385835005623526264271467260661632971251092565043324855162317481291371569619808731664883430375995295366203455975551413047646451789120002347978872591688089752262800073180413312076891919440430106394643371049341412803077381974871353237038044356330078682368706072996525767254416567411930254333997721254582898689061023633068030712755690397151305009217180438988137167127374987766113286426246522233176341888519712600709888378484015924817976058616957912508583284025050890828997720995123213283504097211510187227806665100986390042082285477607274284056190820017558345827228058673244614724984460936749488875639946055493112557409387482093108295568545585119838869880282692994011818446490795135356424384753043518384399060501542973871374802347334745427980845163810247321114222240837975291913181588810798703655918182450156296271008946224058352978865272687015286240099747691315495304423248032210591440617104057562254346862226028686575857776895478055119098152954973949030754376048468734753325230838570410623173201079769528626569029748717007621235048465540303240358673827874146809349453762700449084012957167141061915790110544205375902229201141320227390659365100106744722846835954180327289567906827563283566710143190342380027320693849301896453645732479033532985047250789514345786028744777110757975659544216793499450383097766738340946008248988196799796851252410341402316012419266235043740702843469484562640690206087017500036875390765722692151207026468996793953805819042233814558988629920691747774718021312174397996840571584241599664500214878253710727119644966577520954765736058819225826854255317268460258914914218897855749403583872815804929826457821012777077474777425040355687905597725054149175771353049817988667556193763436565713878758564325422308977033230297416750320057299378754874730877756597512732558094381273680764518061925566575511660399547705615646378912303078267149461984989728421033445094819816593158500731280530451663358841018986767323950866808506729505870151261499594782300755150623215523326875697727864713460411764657966303372348390929027380588162835689599074817628858269895408156158447032906785508689234716902557637315095104125910191797237422903697904296875290802546398434089601035612827285565553719229258567773253442457978356207359047409292618496432743077502253252156115867639084327454814039793112730300594706273243251661465051838813778725820935921695303740948223143848953374465875762919651504401333678771826675441008823028964329350717716732531730993699686431819363302714262537030604553624305947232054092722885515493421279385822152972076107396134925605486988299515810787229595405554071832416683985259587267442082056327972634907940732586431819526737356133211469426926653508779198022838027114348575846400341842621436342941477246958221693314874181553367216806643574791719433983227364473370048293698610816833161548765650787145814305086745609442578036063555357537771694233188696514726110949642744441245453543440110039473546104274165061166421202392186683014116746914451336387004276588771131836866303452468918244362513943559901414586130251019004871102212244716509006068158443862339344907367146572009358596825857907359603814761555058317452777808858132868921309655878340555731551702467385322734054088367469468053873339387625603295290934243936352289459052413669753953476979213679498678154924458588570904054532167532026181032438453100433935665003045167611703615335442811609543702556884653262976456827968157891294707833792717747835546837995822243662048699088889837919055023930781001979163079293340159276129250777470575745293445288070344221342580241361824841354945037062791017088891919259998710388724229076560285381526161265097221094024089525499719151815270805102423335252139260838291830965409139662531113504090887362373116979526251574486669284035959037333017925159699526983838070196661387114129290419594844328126462608977885714700465709890165419172753339139267769323362014555416708998000740388859332260676675593462380410717485657067958993667644681266211387030537383913658828696055853502439384616368166365670133426761400046036141158615674789647703945341161805357360845997820048577748343281534664319296893714346742405210077513625605054466331323168263782926193793523392617971954739194308926240441464365900866468002388253536818392148925754008029888989589139306170968949170528922662150260238251391462123207220509865788637192419122114680446920502982833953380843177385759465862089424824560811005048899364567767026974378567211074078085212668442620236088126459845637818071089293036825997757494463587427888009334870254895384167494363389469253486965706652345195206362187733554132992421691923834518105487344896151084938456859620054920881910729667555366058073721190059072661376296674401516703684865810596643632772995523595581825618126623000861770366865017375048582610662631763996422152652035910966379405103165563521155825104536282677147890498667825951613932658771498838960639456786848630343871238169568738978981024462796733643974447469022271534173565605733208290611956808857955461833246988550067091824635358607107842261237999931668864798061395368134067512332689173798954390247136678501009122560659405825280442933827517020460232650735369902839378420104318190755736192796900310302280723638769522368038614674796855489786804151656919400550771892214573428434677147859130251939018095511667602504221236841763851858650782695196174216824663542279854253361062289655192233477795775776307880031941926148406843497752554248155530307590702300514427673592185865002078943780482362435419189505996253725790720958045226808827958385754268488197075301065518420069634647388189428002980455089042723318320689278754948175187314331946302535807607380279272220675838829017965306232294260435246546346116971697908451657262428346569847471916897403772866425760907406384315298590593593273847007380448741863803366414720328082464144012039488954800231362602444112947340388865924114054349335083458134668564454656224729381204673735521665887664270733273631432363125550959273546402038190621754924431749103759941738904087654922810428311009181087359029245086862921646686420751443916729400829915043450371885514373920951435997484185388878856290924849364286404785912203040913700901347873320289799770263030329440748220657229370444049321901967785336484193299213547617446545091365955483901105184955513508547669558946994146570919593835150342914004984705692243581851701951805892511310971707576636840008764807096442612886394049329064982431157616265063173272861148382577826184309118404487251529514334573793250616351759802114282727185598530923277769639049248060556159854104289624631976192292894275480066730736411748230116754190963307906982484923786112716824244887624712398961952445066001206334079680596225022157142673269099151816870813252097175988201597024217968481865515816503558827626620864811719784178488327212388617553653383264560351509764140969070201490862484448519120643504732815736541326286048818401054680830581169776412563082982264596084033299997575586257123164460357622056322657670872209623068833836318238299599793839020013205100801797617282347387471906320651192779567324534154024041529695927410608815060016358142586556736374798212842389209413488185617452591698645071310452616958173655907877738824341359258934406599660229450801702547562067098995475942884475509423981564029450167770707360184242790433853568491507640115135306843504597885286030302894234820663706863152976591338988686333881265764572791750136536124032438135869058264856908071136407022815196801101952354556273531308155966518499036808343477593506401352274344156121616739826104108159152776338056891653735137453626406022258636490130110420693519788252902681222528495570465728430155737427272348747467633649688994023373768894699136194070128605895090404781704485068694269495538526347698059844796477178447306794977256977906803508620032120924206114133747366799881516517686117989390419537393521150767331616463890874604791234359351380268571803939490414923850591232311034537719788476865565409603580582401958614814746447833536283070663733384311974964577290629535945345777987110797034504911294631532547822200491763816031136426566314501125333145650321796659702431050593032353957113829911304944136297765322240937003785993650913334925815870747424256035156095543868937716758809748784628217111096464840226077458363275684424828546151539130677457976055336467675453879654032787689678128574235950452311312997717023863394762572586563207728922288391630789183464805986632736870858384483759561553295962900590940540844546952214176726910959081703552700237855118655652680511385963607521994355460992476567434326278744401256552355296283586624777496350357948900460623425098329130136956184799064425636315682052458176727013581132687210517043884756586775504265132504878323078925022031069197222201479198743633566807275469004607300179745853042976988631081161384227753401741664810816717325438821389897947645436967974306057614991745843471727396015879325534441726536064154067271379246297570223296189911130993791873658941753162748256314839467570012403369770585212890507405722192341313232772201720120890517644848060632638108243545215800111781899767750975614219079615019797778188225273711945423323259859977436566907752173809753868233991776098574490052245990979563470155082777397842172007127959649165554116948095150430862176299648938133370821603867435997682718778836086083806723754158438612290173130452797829139315600819813326649477005373456211588978425952036365602409169424455575201789070264418348497967198180544696271894050061889396840491146575361304688092728183632127774514063295365729038559697359945808095798796334498663255933846478022176902050286881323367522281748670158349431387908176199192778263124455429432050996144845964255943242351960618607758272048526685340641058245981198565241565584147632259080213231214265990864842964319456751505357460407855788637969743944749776907196433867856777207211352499814114355217041748419405959672036046544801541620383718444875498792381671163360085225887009166100273089024644139149856985317726827447968495623039015231329234994759144300262554371552655824885250516818893577002409569393540739945050461714878521267080440794107282613870691657060437194592932003761080382492310769035419579952957531688373359261593711981511495129199881349313821482040229634066958825030508653005362421935856900693975395649073666086919466117157636775339047248923509589594971469634944379043034171483325588679909264906351075515395907806980874741936513340164529180819557539838861887276213282751968856722513233558548470927052975892802122846461111284082442209244484359467113980824212164494798003654547940084806289227968790918452292166989942368267935619258863740865240244016244670940512177242554377274737969808088526088924514006662379287862744576509526142865903393311278635024470551178670557905713380527884657408778595871409816896774822587446454548593603004032664794831600867739495439764814654766742354632365455793192547169553238204806520421722622835057519301878216972044148048069598919796662518704217410288614548966305460290202731820360152860873152317995659102628938534602783013350971176172754626336818649764011037904556546945579624536822121702800148609839433231820813742086807104666086034585323844424309371536694589960590932264080757657576612126187184648043009046191546102926488554547023680276512056210835697894089086207057544969792503390324309307574503641061265858588855233439723877868187345857800238453559076825143442200539677831274889767447870789120849610224560828019563922642819388686407136581233422632603867323963857281823257721638054425130819698348354663868381968696325100681960680371818332283633167668485595095660643725338333425591792560791918110780550984737191729306785705711077014782529417375841264913570154412856173954847856176375238217408288958945042330131668629519268491680618951061182818921473953447035442554573630174015203316544176809492685738155464476144411592384019796795466315529374640942567251221207926762684860058381824092082366555784385872552215577055589401729149075089624198645587944239932761443632814540309578991098719611640180516334347390167935056481937741068708068098825219261675472962731839768541472634193441468020138878077675020417853926170845608775195000965077662444188747940726669017203962138881338970147724537603864124879959190424608963635729943101986911901288355418909035982927692463403259050887627884100655359609084877729296885681255518951610983225251093758085026801112563989738732535893120770040400090498945912079469959965245458184037896041953132607149103013035234971372074036725755864346154817778385594357343396733730935494882915668967646652913657429525430839505629826147341900729209224849750536255124085385206857469007519309930539969993011363730412032808147929929959423625594930229979368958786524993788834735364874596371060632436729994093636289900124066610858127726789430527807253264976236615316018078307069784724401909765029279125761647321932853838772919352230806447546701096985451033107804369743144858574843545747125868533074093136080690734428566497118475625048586328740017208998493976627378266747817916859373359154655867650165263420933788748272263871555227570066243861002563941414359417702766056386588388146037306973810828459726114276822139416268565404761376420466161919041914399217306121993921857259108931271165696997729977358505510342460033659469578466230798838168738637269934706803326054751788509880588233293290834171293177904398898755351913230670328161771608223251006025061132060542586642249860223084745602207361451461544908886177655843407286659811095731137646365121536247290722621083993029430360574846171979401656703323464329009890654365760958739001864180393728871206676225061785587282763122762194113582133066064880653903748139527146366496093157354265162919733937507841194897687606548200078107979101317825519645629134303798149949078786939092243404385347768276250670437069476531898078321436399128303471300056516381426508285879540267628196709414229547269600009645059721012752721180552179263734445139725835245142895442341241465471235314116255907241706974318055860357655708946228734974652474861153324450922790842874785909412301230412867528369927941251609998585977484450996342643365658538297207868686929988058381820369159619500690786709642213031385807237753333677796837815334461960663219726641664071540083133650812303265155980354939691107834092418331880397363380284519780176760298577430110085561047542173477922670243663732459314834866291604976992263516241956487673667983588417421500703120245060080820273567580342342049388923171123566955526553254544765392761973653674632575673338241021158714332686612526428943218363807079367733626249684905724722577251208535844162154001916492482588245376762314823796664331132433643082729163003833635137224144590055277910268953426560197933159838122984722031054579923977043166495484579533636244398525173658436815594089642674901371619781364429142727771933458059130125701327939725419896601713187539694353450673926030603184158507035493228871958079401190265388132161541094225983353708613611904466128107965653443199719115151977010996984567104718122266192656897092515724554567269308934503294357029650537157311574825610129746860099117324484253941877875151244027020042682168928950519808595008224510472412262174694997076596989755506383084074388331846425335986293233112797732391460403413254594969054640884073759823348664230721473448998801536214448479682924610455281334163265827561757836064118323675650657423021557594405422185031863482561985384751368660512629581080669208935729538133968031462644783551765929183957660548978628265000469314402843392113762626995148585692889417159450592443733176628618306968746406828482550826361183244650048757902325528140606724384261176749217403189993565330614699798029460707115462302211785362916922852898046089880975575231528496884093377994325701210029780273701564621206449647678154364312984119207551923772957324065489378779275348684996515954045125358550850720376849305047165799452343501092040867379797697124468140260051684239730238113387289054729319541628636405707399342952860188010949393751142120885929230365698630914794961732550477016361341549564152564110572841789798274783165290228213007486553545525398151615081807098059605203895601829430478253194758346869593572661436761001617727130573778022651183713125949180227444427577335658602723354986476052451028555733286863163820291345113084005451771675690308107606342225224788373037819466779407845277591694046691142484937185706394195897057597789838475069999470761657103874820479071123847035286373676275955646756439946348353310215564574188261122349370165785380554329812710637484528880566922154405210349072708821843432159963332996397826294820129137415204292741841727560173277566607394233057625087221830970023065114256204451754969704676278435253082098154136467199634675828306117343844346478235942553992202538251761226884487343419573234284969945545667276450742914453306222004450682163133919791110327119907081250943097217754978426560521475002717492314747831868038149722407264310621440872404345173864825518663063889590187593125712127390838647986748495770472145341597771818634083365474702736384301658422702093231534655437341467005773327514324995109935580464975209575329495400135467019755079953550150551664670260574117984552819706872422958663658549771655216543520942851360781449635761329795074847220099212554217173340508630708548237002369443342105332695433576592365946691211271645026106571914377649777161602186791997905319693528478621315021907306134088245796473462348827037245230560334329864857595557853848080908522346451141398529325228932816932093000344213861520425937682717567166370732635559045327952345257418080350099958221408988055697922297375392807425648994909269728652537527226716718928924623337011716558699028577357027055353412304939040783584571801172361175103658380342615504798092308555311315562676125637120040326541793268579371899884651315764544083983803762958502713897454375996522795848284644681656703845157227681806627295631204225043425143042527296746069754573638079037636500729983796876564763421389104350091966233011521850101060505079501065038175379690469944332558012992250059269133250100717402229137969281490787957718653666778203061255978349324264131735433669247048073422003751605002887673924601729139898442134106239665914832768557513380353825290251215573952430257973331500411735747331191794281491929962979286535319617319877929555181073038559577278245199351511451142166182995506841645513575705891045974488080190588174898205942099338050715631893577071997160706677532245644957760902367422884443258285228224184308673680189848145888636836103137891546566210759382496562746074252390126485283705628700411925033123625921196038357814148834074735183639961863912194480818723153054437305717134606495581150763151611840123371155325205517643538249035329523870413216369931544665389937320704820258457324168116472946830653862624901833415366611057511036412256781047523315887220988514222874366402422395375082157860923230000141553330932861935235029480251429931539660704953300801806703974441594742986335607746689050619468146989621981132461282523732992730179355844078647325714745900552627985831024885393716699450006126875349327329278633187463145830449321235541717487955058354257450250880545442166502622878545477620170078696268313014623215093661520482269238273243902884738240350156899424738317324994374639654190113469441394886960585801325368470655156189314214523799554431098796880797256170055485003545692486264592483093652573524956637593882138994898817453165390970046128310807471444988655222919807348751911986245808723493000313130529360184655883613553762673090554458044379675601786704449429146499313211661095853283480592643777928771934304148040931335881552611641839323094490159822997893365416856607209836671533916484818916537793372748263099723087924761851936939423679103328105737795638554637290204507704535740638212019804391625374223378049394761209226837851763050170473434366267260222844669320086553152878778534154776772522205109989871031590378288424689611517175007438300323697500901888132535558198105489832711406202507333609614912141437101587667720155875585730689243916998709167857604411378542641846723857684697585163191259537786199635742082433736450517520679750256162818225456539686171152029144810719965716296613156430186539651528456743907889373707743103364708582564786194624835841499503784979564941588796648365512709622915943759560234340567247803845709294361087465564600047277996313425836807130173991845362135269004003915123575224809438982182223142177468428377347493718972163934642656266694038069933747779547349214850008669196731751219109727392847691994883199276932950535274679597709820182800567924721171509978021365060446194710738690385017840231892146345758958149725070118913104368466445758805670292438579921705179253079226828377293164372473620780639477086030567300857401439626705992877957571524502387470307897773258554380866755328656911400899361218153511033286316932898699066875705342557757849925729657111776848060570383879904943672041177659853522032395762136507207883328183701100232954360508963672494555417701177198876508507124327637989565201005592994877051599594388484817729866602155583402225294576462851439745451022964612089351379633487106581302049316784436413575224416433179791936793158146705933132482233251318208624642832722432099575104395118908412356684531068193252475962370132553191565863539663230658731196174437786409080863180219763783073031411930499160764986169102160026200163834852330586309103660052000123919868573283343824229940025677913627159410631495065505363778631054377309629958676123554385961299651058392501534579850551432230513620076546235771974969664697839873598458283098595310286568434571516820626593993137304432395315297614247345587018432857367421675695627422956964910849253379618832323764209062061478288238353214270288371122004655689052341255678789931038663779708256849652657639395960618729909411327832669921379951090601153093421759705728884577572068648511044106704671296722617846067566321746895517536519376810743964311864429858233334291744479412576745701890999195601470248025146246283796980363479756300219754399238798825932780768998508492000843797174533639411537986927758451257200929435187484119095147082561176239052982956528736478795175542796126467553559244032216457463051829824344613291392846663951575206172273863621781801142004846714231360401313219926031677357946334905444226975477196536990866332393951116977147555899718074676449527489810962439346757236009872042799301891079570681202577319648326569839748281810729957679282239437797095230961730146176622119034996226132762949311946287700709116019135794459812111107224631937337149624404729427858719606129581490133192401216963386397702921954290446166769895099328669371914119241611174230627099053947527645779876612118920566274499155838577031114179370622790247078581970720258217448284803199864172836092371202297662976308142979010998442273616078239787087192526004223888286195945563365632243875238628211070157202002786872224359701026404681149198315878306725995731911863831511147984604189320156843367591507138432703561402779980319352266197749005938137228559169001368606140413481700541193583638349055203509082600505749832502339255031953627789996018811408900150978418772032988799086726450685270034035117594097065917420006525563030699345243109957214433928028899269565184738274210769801586981750377635175163389238555170295850701741675778464978810279686130546606948695473078338295529349094763742667267698086620014593815318779446312549756523910474384083569523526161913607591923554609024178812343771503502611456499470231577008261413212045788381133313250467100204090674699599299166917983124406791938480238281967460749801944928030224471401851117322765521315729012502792501547315537813786215318352282263715582297754356113371212544409361609652232876502308327187745509347708335552488667455511635993856160516171428721595771042861757804782226312511707457845314655691160339248618144503234146797630763468794475633779325558939569663218633338570664318925888385640669066642753210279955643487744904467356907489328465611091527438557638779607088323932015114785413468485049415306457046005988186143986220363523928235134536452936556100963143511739989502550555498411574817216213620129716601436378178195794661950258914311584136098024235350846702962565568954239727537571630599690866479985410901103882709117674767948421800816735927943525347192490793941478397537585239090694506012585330996561789938718477670381748555325526343246765684549801775545197091160529688182027735381418458255788309946192555746201880430157039938458180090198390538487066313731193276513178703150304206110718076386897247659747999641131007161179356241683470722825879120509970974795742672053071770196934299335120343941912226584340194129710176395833955186129164077797405343982353882488094294020491404703134058274211696934471441089628511404661953014211186535147785412766822291175583696480564704776606802054115410122541357492603963885389016814731951887513252668316313836502457037477980581388135987825330582164473740013026264005637766820916046869422154237981286591380241546238321925184464260097152371987659329685903911403855434446103806603535638847774503354571024396007015626287877339100266018557884289106517742585622995918623290078239325795379912876902211478907876289180537880261330876730711089558075045650740422735716285076411808325250428724927722350538686928607593122842131280687832813725191107151257574167630817352081732495747087251422033810075756657867261297698012482340851355825970854428648976921060364621940397726304185436033858842974113521703153431579094586554938586559470643255046896895723950461287980098854779821588030599920910864232756646032952702091589365390288438355811064633553343710494655221829155570768170020624550837500921466029532601164546625375160519884651496926516463433807903399609920331266784891991569873337566146741792558812184625452288081016161968639432062678871823208806756299441789008058675145341923590296083582055116273690704837110900181604935688819114541117286461224060578274697265789408431509458598844403814524344523316965617101721270061861596388813712783235135316421124797948410251238431384232674362289117595011791554062608923667163350397295676808922293522789866042896571043224014401121413539197427013399735006999560732333624259880559289448176258373353449301432393905338227546733202166149648960837549187320972382867082009366581516018469247562006343018446645126724806744191067109164199346050118594919015843156240816814107167632546151056828864931981555796441595680092057412562779877518809245638369210743451017819194642491408927676677873761227524582254317065321483698953955140301888203489869654368007509832623906059287558888334357108612153982541221517308445195710061838763897772501133625092312559632196297257750159311689903583332796943189063282617807332685709291203306127480508429067222871011162642870702027209261778696033711690113266112952624238102671108992520795262080177399192461066095036438199951678860602921929180999517001498647092348176202969230534786813937640680404967770505106756933452681021382697906668416786045970969207979719041233670992459601851412160993539215031538797400475226285346518352622859081684813357407567822377542956190511501541237664253238020283457224201117742508568720095599449757784949486408696141808711834843918003792464260624009934191979216202969398118701721011922551572961181949376529288558788154236037023194573168677804804920508438174938407589309060133186974731166437700370201232965671236232400134592381810695479384531087220456857507144908038845390924583365134762081944314448075156020957495995841479259398685450109738924398287043394657113180750612171134334551917636479270441096855364622829526321066348081230299555561868135165670239890546644021175152560735384322705507375640642270215109655952939761996765436771008226603096377406272958647450163320229947548053089797586071375068613358082204648183198673630328506336921858483229375320333484924320058313814154419109702492551226049203726672202301827441512715289364003968088637860021493953019417678100319805496861624722143576942561394708815006485792851814659297266408500930384138727447937670616090676216708041086150618579504405476867208017139898576671242762536234890842873717151854602035036850900935380719208823458094059701875465480664616138426120075965545512449649278224252060346717420016216935223492033948782095606606318476226895933783117032870610142208435598218811959231500901682459897009078905146700757250556010695224223059705614473853130778148202750258977187314798578302740724836955522131157133463030368768944093287415185411668424359052982186410387577084280480128283736868858565413356039617900447668237099490534392393879124620692260861103737689634696711750384502468017951129060345764172891047144665031280146976509618605707151164877569733697810856787017510426596599455718533235334620619943214293085412071027963037556987106522856373370198228078357529484584307784672991027945210829504968973082230864392441434876969368839610426280241749842468676636812370075241401325087440097486848812287361525427412197502706904682820289759545152897194169258392686012189477915097886272464295757875701739001453532206537272183559074576508108233495110099270925597889926397182810739149802757654195376384822256351830601902347630529680104449019035716381576778922829319860145284860572079367690778267012936990929492624265791026139478962877677222472471058535875104273156365156415940486400366686429544473610968185328176727763348725419102131931347001294454867182253313803585156224074242614499975604157108343392976815293158746085776195388726404039070489411581992923069544164242541481745376595496421022606128937554831599426304030774735177040616439529638511529403805304936705656854616523909786681665877017211820526474201580789521012683874010988484752741649151621244860563651894603097641677953746879007465330168739054555808058045826391650094612824994232169967925777300761653662578908050225313219283761863210744573404916746122185463760649709894013257914908825132138022374891926955075500307508020963482650046637736837538365111263348711077209927025832050164912254380578717121665713224356806794132112803581576082430618548553521441819033232210374185262115008934630309126960505321435523349518916607225594463212989654122259353534782659562679900443225239963940292707547789681688617437641833695109148367212938138220215149823795236121155460053121010605702428993257881313043095456504960121752527336430570928454226901079033030131200626996011799336506519713262649803703461632973670991635398884464303210087695445154609648664374053848675797634984947394577554432144181759414021222871211029001091435057252136839552670015015919155553218384295997292889261943452310873479862401571163099518066964131567565958964005757178672327016154467493784069925778408419901892796600166545355629440718633621267242872522086240462132385609608612625415818154166498905542979749589008502512892991441622392213551791749082261582769811560195926916301450982507226295129315984517309774750673229221097035662857675508118173782566794764011820287431517320892839599281594455387630212865816953888085833611605090529584569257569333110291070952550462291369255861939802410223176603173915708605913956452541547308020998508413251879060717870503757667582680046926178420841971323618271360595246002053554317036616107721285355066409248804736114913313852951864903650479630298535633449646407151714160891149982957924621613280040917792707082011074979306778381248240290362906202920425178524056343230549060393884832919582183106707453377391819399165953724510301735219140374507393895631032957464855927135687447701993793621582119777192542184939521452350760180634142713725081931315747476485087912865096867142049436463370241534240316955298652476592672719159200407904554199087974285826448751424265253895197551094186396603375915205923981392183395695916944348124488612891495594484121099921950324122589594479560782854760118010782705687631703117339095645625764517085015958102665545182859639551390618318993850311865987309697992283264340263625123906647045294730078760353918704197422741911756045313457003341394484718940026839264425890691434058142111724143939445631635543561476400528127638072942736281362490021902960037302529457053294824857814301114155899579865037130108490567406407094694787579065649587106127371686225411676837335790958977949805121169511122167627710137394945785468208107455794425964128845565578464683823113589906502512076850067774154215663970495859600381001179093994122425470872316368087371613294213543433342329263476188643755889812384220847648771518530005808965840941753177264995303976079922544251320988640623251021395752328472061933683043794617844074082077208965913154319066209752567952497730093481686726738761075327750456590705927634183101953161232597573747057830814903247941238387974683001356456936062408209991515720792502988719426595846451226580602135208328098567599855888377713062126488091567126895605239936964372402422747537429434263349526682927668097142841872652502043497930336819037135401012520907095940601450868842504518463023825505359273759251912484332003616710791709664741544295419067246556473172109208672930279595981316103626427232687242683708886528784494388281711615247642086232790944348728615415163362160636143769046857958883622760653828806728106091107551646763459247014092878528365145086747402846667347731271597414041979990318599332680175545056668089208510208398002143732035162603570152745848551784375284022450603362754813793367194281034697483790109591782302917973488427279993039575115416275698209881429978090249591117902292446152685236244449789485321966364588584228892422204299474433491946659927601334147632709812160630373159824375107625494326738415010921454866026879151422873639245001538752707997594509048539949351332858492493395533372463021869381048002759168844193618499125601776538718109869011833035159694953552137158928031083392997282297607541945624231769902949091111838363802521965573665806565075635602475369731112888820722577240288320958905027074695649044306692816567659368251065558096694576026456935865459731102261991708222174949603524216749674052240833008137690027898870991153923589475079895923246552538806262095546844122118051176892777510657990761955175608360732713014027085672592724773392408184140846933352826870727890021850496638449852660157545809613115997772433326799598045372873532567179834609113685286401989643448276042187157639834088298856989193448755226567849015057515214625922119950681042639470025263481736080021428461991372560494120093493838883936309026129046766240222309034848994371826325271957352173351675033418742865698472216997447103229543243190217329238882074079167152196950278624903966447112032364445303139721709087014655047521285764857371307658801644069751541773676973542229600225751620585657753325125759460014385438720623072122458823605073184374757324070383861656076746747470645889349961460018008390514826648584135336246381540236862198408726694544846372098352006328635581827509049914865298869574239102626986229656282077086843280498577496092689216374343197206567868195275389351789648715719396717474662429832074181361254301929952394134405493227823822744733685250205271696922320467549883579225186014132225453065544725576973373189395406662617374721656516927214729040333849647246993697024658499013605140930059868739505049608799304023288808237869900562068494305942824678821857292654146921258919510027721740867390884230686944512207938126123791205745328841476273370405656105799314336952318683524407004835174398160249110739353211570685886606215614190250609258305225956213888871456013064867435570737116765329029549856166093436799175584031993462022573164246993695392745466953140699302804157361014568241082948924982198815460153928691251572132218605334619759327007937837638324083809697216417272358393541110117753276158115215366558724522380405502705328248910498382995173664995451675356440031014674144771207320850478834765178702536103612282563589739540232336048198845140933082657811469577732110596059700950714747054736070603101654588664735404772456035977042470619713237160144919107152232131022544952998826981104894874210831914845678470547684597314466238826373735084310019306788422148261280182443293606569996968880449350959204074764495446689172392149498542977673666080995426096468851356191430299138094670606701015424939685916010476263243530983505825799111005301863836366071726450529589929886031242096297389490551489728292357078523541273090968949609369418429186236118802068172839876841995942335551254742227556377710130448260883050415370996909691963195880763368717723806037161785150857525798286172073969229636147140795526131608107161196776121192929574981603463161667883203801041045348235931518612416770195538737084842628047868040393864567639551853039574765950233368861050039140703462575691749792184008063370899611657312558103874961270872260869536397483245564077714434952756205754655879919045343670713237263843761564419851420413906764481696759498586052909127902872574702547143367144668115196130014423228464335887038219600836588937919731368791582861478393632333362601643607313088822557352297072264731025676745405703518344563739620150201662856610728992835334627688656279965255465502312045146021365968522708562671739768506525447743190318225913130443942307625454396118701351609656369227717288731975378648743659288314454164679228938150792136829597633360397080492819288787377239316791233297208166105683309931680765414742535781648894790199703811634675649603289791719012485747523472741290729821146487060143510814329965689807729453656052822591591228939377214824727278102358519446710470370401944274188702532459924653760547368414449624814829857001567695170791872251831909990491839972397669022426790802085570534444328296251353428562778743087869400710094011954848790594284326328615757726086922270495263119604974364876138516060685566256555598944863445289581806098155383023903304930798902294698780764612076561188031877544799140230092593870464522845797462946634715861827156845877829556295446019807499118581536673608365560780796866881540751715188572521372015626427964369527251184743224532724804236938393936513418490976807304408602718436126181956258750344449022216020922035914392832638807088437366410680413457083226191774556352959809969093558700480608596709172891793485100925955978144740178056809549661732019044448547276190754722619186487596932960493904002274326982633227677837572614800790654068187021361413439251429621165015207722429022163941029842544219116108471349564472699966515018945601810554884673640669008225688331344095723796552623653369104072311663705952140754962977070478896983372630556312658904352666002129024459834036843258075545277583971994213011697723360752465914184222733494634598745979166825831019963325947946867072435621144185488785514226928733110377876023559493693042150022104269843898171308491063337338197314420058216514635361892387605545666585418343199619706567427265933877621882004418412108822194458370246027066629249048289438440617892935924779425288973683380937400540763632978891290295164717863392047626758532693968761064676036647787977616637391268953875121934378879237231447328513645541721582799392319532999516055908502510387871321397205823274895282845239988543089821012924347452958246133317771505296641422833108800141850699622233803597601958994237967316582677905877164574233826386074855977878765364721821210049419111015065109478220017632647286536500255240279735885446790974166820068969495219980975260112069066511126487641644780297029366376842527377272122551085710061355237629591358527475088503033272353679291706315722791697944219530128801659910168851208772034417189854191511102251150988492047511254622464691940261075722161196018781407854021990554239143903099482858648151930653574594920775781629706283360780657785552959014300646376653612663007217291439267017686957111875558034284503178220718293568755466919615503961878830355913832785269116066271380837901965214572016467124816670075401544738476490586343853410499210669190039961649554531456813167544956616129071969716972527020754962212436606353077208254867356326358985843784219576499995200330833910724385586356311784753493546734322700419924194650653107091785315027525815460205181418473831881236670380827326034312943723270148507009625505557920138007217811854433101781220763788196362152112470802706613784800073004308247242254997686212467897496121427763889373701323748627214645374799556668130221544585642722717853997880966745387828619375700787701430265741188318641938252141193016122810877022001266335606929873391489627082035126296175599372700286287522234044773988551006652673227105524186343925130823817073056260076416453344749173893679077100799881656794392014896649089729414095339644002293859532692694756322146835542335608943725969657814194492992173927884051085987765029016139805059926403390840878511385363753913383135731773601759846397700534883712346205959086073341925574124936411738438570752643603196318904706533608651354507386910491998707891262263642582330888607702585686962901412319208717868001314116217613913378380928332219370308217605257319651365608317196560264186581711494356552720067350406532430385590943521751399954560657249668888431192599331218104816908895210417922386960978567938654185595222494651148667710488340628899170410692527858413039441931790608464338112610880123587567280260780647577642544421253861181018001019901367518540843306505493941479341534804696404542830911289052091947875897064544996866114835261910477741129787506300754335363485507141795656187214814723500900017915150791861478126954344235688342824541068732781788781021330337495752767706878516989727723039628514876265219213954905669524284505960636942897536859158547257441861901433935029589681626580454517957787733092241109377905835134580989712469535053764548898071412946610823788210962576231997438713462193866069030242015003129758706116174724125940553660939951056732894181163858146916503436998164551996480460385168651346171920185544883227028433262770839124277814521480594620677315128263617282399035841571043236836365848340437879257680839624517042663576503270168511492284250799363787330673305469710076616554691990049892891677528066599233927721146851448153605189728124233872279222350410808501524033394862849556554690690946956567169134658586329614791492808744520253119069657003452502709452204886637216613122479420851112727153257538438505496734276708041365188944428926542816857975837344220314560678407175549804589843113643071865641269328213518343352519296131341695752797581602929205291126771354407032663842161482002688085243710600812890467890072671336317942307824161607115948933765155024627261787254672986605237294768750411998610374185999183741917144137490002942544163818202107392440477878351568634240812896354121084671139464942271104980073128260797698654898703505027823159910876867571284489814653534581764327734548945829806721912686185553865562888722582028335542513200490625814536551023611885042285236022083101083454801123562612863364533345348810004187023043393595142557115110748590011326402710343059437599992384669775421638907588234715327189131486642570125802874319888235184000219061990361619878199024038302679437188611962424317445517150649906102705352418664099594475739056659099868202719662792141123214389208395293424608882984902404118274712710824718964357956602716964849380739207726651600815130422873110361997684974410562415426058265701234957020868723234792020897453499865906087546721778869545207567302050657957837744026865437947137319380922388444291429889194434049307104046885106720504520748269726505435746831740509674655292044399028368235534770533859539318521821339802826908908086907764495558562939652641766526682102590559370924498006972993282922290568244179268558311168711928714764567291647671175248395293172824000611540186845673924707698053555212321526966039511173385322923251005611361738110695033998142208244825940533564890873828525165310921320913192782474833832994397742239168695350101392843706918879815854484419193767304807669573895565782148293666544414079308534663397198465016622890592804648002363070959017906019509985876486682007018132671433893156941027212182948729790170100628858045194635234485208112173301808576179066488577118936697850769848744364130604188309500783144981482123858507816613051299924079969155343068426700649541703557776434575896622325782734951969419769608909979206936156753068910786872587444745656224401176908157516908223438095018923723698114181803982280117866747495825693033910307982422621302831151168990485439594431050996457535631269541081278041062586149551870475280281986042716586486702059319338030059705819001582343951708143206881887049209011950137269556505990335236985150931814259420999638374788981962459716755224845078583768853788504571899082047460526735282491339179668606420091424309791457514921616392347951179179525691617767540341807046564035477934969279679769063095097754354466895508352314812546726858422189696490133784378016445809930441716495057194384711345853944109995362853390806147734358003453178602579890371384447617165193470337558381676369443183574673452403069882915573487651601352261786550615518403388903445825250522416415791898408482890541652512245962428515394548066205293185429790631002744157777735918625859239821862082954908939171779986639484539082436808152493641992563558232736915257942607191410154991368363830907860419471404618412880890281939051603611200914501195895601371826768530818350852275605785529091533673131565947559064780718060515982474937265646218914499425763038574285570772775694853357239298338261943893515574326751573705822441114320205345998100891777864338204932109704283025223211690775087532478732637761408566772158271904946161955436884793426842973326953649136760159297268429477041671966833510591310366433102104034430220751720274711168586688370818758488952247444943236393711907250953159990424904359114722642370444153405678504584393436514610539855910857879335732613225635030999104688184533410275153236264311721516124701259968936132922959396604438903720370212215782917781611169050029408637798192920760431985737819236239331876325688525238334687970390050718607036044775507789380001828349751833819147348197216019102462013119550979646439239478823330391530523785145282542074123423752839022636574810582798943626469814304276095097455125844078006647011750444034173632711815302923811306569153068039758900172205632404881927741017734268908970494597629773729552011687072052606476777755777539579789616759012951336739667009348008003228049500431544922737198519294559166738020248080788153396020720209204061324808765098305042584657309599623848316530090134143308288486460363767017115708375689974279606850223324445822185457933423348063610127813777766874320868614266107504432837572839518026476156957358575412805335027961725962673716676751037086371508440737504317378224131985299097895175412161399097414812941822318375782548516339056074462862237745189653810269713850348712135365877491282044948704087869221961091705362245103201371393246441716314297855272822459980856249071782839722358362734882826701126717591845549753115291456103544685117296277107074763968207100089815784036899160189331155827070099500890526308453500942333674112428228158738887208983667689660295906699698900543503180004649782090871301985556447635156511353204531419459984369292754238888218759398389065155816289731299365377223418913820876449955723582498266659636182813237735416713457880735084438417450896275552935693789441157579410069860658883577676022095457271234747914818716329094010528497454980567439158307144438958269636194570498721676102780998984098881076916926892480320584331407326565339742160984286454470051439867279071380082296227799104202899646763815317088766880741743600947287842932584291146130365662417986001835028384090683073098385339526507626507235848030568904620166414167642806477571982520375859875079180776701669217549221522616066833662413841143295764989932503678986751839849852161411139867392023879722526409134094200796957534264157327003826789745354089738928923518929427654740385110693858807082142516808529408348503380901131866593017694447321114870441927994707128252138604202269962166308642135175479449257668129022013321812978664017807709947210295485959767373957028115319967665497168216365278492483557453332182574517508934022520887749541777582510255845184662223996985213015268362104491949328913601552058100922629627247430786379602450727516382995079147725283086488207000108373926989749713229807638359556389439616664612552179726574373914886453791540091702647983633958145845396341866910685064418000683457360089338543934070246625843100596502553336796193309431728897238620148189658181690933083133393760997367011904551083016204814375697530354548142155097233549058538850982159856307466442820151705319307021568128027043435739289179213299823913177099668512593457750454736024811749822453785175002216878400561556446726466534491224565919817970806558618091400671243662202200048367987922394195583344053849864661972416694154789943159503886242175813862182797681671316661905062116085051554915037920539805745814450118058304384663349309781229753084632965617449237416246940375971514476841378850488754344131801399203521818192832886458743239169473137514826413315177339607519025766059532639772375525924298205187217764582827529962718482774297600836103335271575396496621539886701606366409627867265517264548331983417022805933125747872858805876180903513281986979558770492975460111702029393303042813043763166788192479940655244249118239840233522475815198399021350986491084233769931037627451433544580355704885198167525566352112739544148103031221007028202358783339766221353728517679514169192428717591697068386919381337369261833488745646048592663864652585577698773330011971190394510998992344059168850047497254870827779470762138225900105711114634086929883914005479027623645488945511473826658570300913836523739465580304483067316665475454468374082070073054900040325922211677566996427685772336497811522752162394795760466150243465022295051989832697609819196123115655081867833107930768638914816383213697957988028750718360013386689950997794959578352638434150945294337510039203052658965084070368763184797997451232795892190454151985291239192321562262918280407937073272211332129552550426238713966685667002977754547089091339276320739225511496899411659486246636562735579646522599801307261972145046867491167567399236000645830577654412887223161132133284403710119215546260460020947501984866882936411169223982249236470237804593908674256027849148773252649825561517938572848565920160733580366155373054844027058943987020846377296529113706727759311178782812155426215928611174878251148611687250635285462475077276446815726152886503871588280641866059672292894166242705192115421440153743621417233570798013037041042129067864509127561921356975014919462388356492936659297845810147446419441040726883489448512577133585645559396518180780649458745188973685555804094360894156516546315422074183684282621999682956758231641115312129959905592754839155781925157937973919010132713972759661285931477026664871322529152724111782568295177507728825822236304772271113808224379171097488969471674759923821719971308557422568853307050230756777832864109564915630519833048934453970076376847056362479409518739961637029895045698013682400700921564786472906203011412812831081290597735664661755445063080644731862616434710849961149437571941349471026572422750258210594510098063754114835511342820927363505668343240028367840540499821216813835551942198388790329107899096326865434501067122139974244614526051103911293820901792121839843662228052637840567379912726256371530209968087319012966261243459350824907937390171638885040981024888548120495513585916382900179882603272424150605913858984090943236630992535057676815364029568855304610647970546920569993481593488962813603472267816064345708943502594700644806280738496914118617895796126747338492283540224371663575144146716382844918165815805918026768915662192644677074679833466699288688559561574069954529513555817072783622311541436796617820792451110649878730941926830309722928616930609495631618614724757290923977525100635691487541876970361869082260990242478971190735476580036806235244354637374041955977420431983966366096573902648940220124189335815420995245089521092657626686903992844478099699478575256851852831224552802095261908125515629461367183502633792192046532649890585595380805844407766254125910502114745605967910868417685923520122271683293466052953867231282610387494372311979239482159511286611965370955201925146833420369549402218250719917786429485251929867676482381513885009357948639423584175336483149598724304352187677908860477413759248016959333058728107811239338903233735617242266942356549813877863442144190734877621999505159460548339957444755476628635193479142108461565362248006855122739597073738800546417694965831587127729526699041465211358939252909333104478095100636067024787427426138442703009719984932693339310260608733191247263362097567173825292011546994748996433420560842668241804396326843494921952277343482751563419597561405439059740617122999482605518248316692474668113713838682186028044650669847058363367367386614460290314984920642349107546015576457468763294319444532347512364202457815584028522699396605311408049394983025738250550808719978179520934039645535573568086130161165841265191619865732679663414104207193299644644600118844164117969076597691828693155844429754042496699147084211615479891979507220898264843869851595600381658690914008388054896062789736315274787437227057503281196749954384000183051047853052573239757968435105074870794459071403149815694021633891366258246739446279058112423497541631434159295086908376825733468538718290321350319128716142492762588884795173357718424222204674559545519033424740943347040065621561731550926781969008480715485678893924338985067580049252637325932690602463554750255809442487877937558291994315815712780949807658559315565596037093026364659406853169674476788992327491237389774665769019643502724839078773030293656107461974372242611097619174439047541735293320755669278960064469474493926320533680107858225744417005778555257918497338643676375553035948622728638058462113842121638914636801116841804004387592133909324796430324220793471925193207381112477647560833591246082840175138694224414602382022756549768595143552500508740016566253466240949888795373286517192720732086065954529260246799579626639064309616020027591335334331301280879013346875827517790810643598414204996943479150979786371206174093674680315514492208021609751915883445210887655056630472149809522730356180826840842322472585300150493616233322368077348941220307874261554076171157504156884271708837485597390585567995026156436222480161414714321022401925359673819387838957246152443023586782053455881319609686544520155419867492080351048724668157761228266938466306981891146103950952683199347640107868147591651843609315284831765963915765839273040690021100261974656948649563296757254278162300597379880775225755461716426688815349684290258194172772118917508011056350085711472877722623808583309579409004446733219616580934793017028096040004712777410760863069809524260743359577695523732318173293260262220506133500742609444053699331980064938831280542641266021907314373574784387828268210739441373291191755220796119556954987475083304560717075762550505928527257133801779838524541394658872206327649869324295035423729914437528351228166943741447824985616284861356896225821604212051917974586715990520014489242206157018543803819687126197104734919171240595077893675628332830447407671247346017829423696094721254465119827591759158573604556446805921362629756027566957298437005056119614612332431688585070858501053215610765466273567056622229465228956836661892595164453968647403903295802169764175712209278122661076524234341430329447954279938317726475482100875368425858459490097569142111766415395547562086745870481335689303332632138113179474858002607226644141065763592623896347204065737476705176461257472108338651127572022907730782905689545496232175430713072318980264143471369186119499479694076673494117869130447212078417473314315303721950360259035106661113472220266249122719975025244416395563595933071789328456217082248521905537009326433376589244023008219904054274191057998732577919471688847004636216829565570529641025434377452431135712428413266030871720876707200775571443354869855016600331544473610767032935571508107688861664811416987982199980519082680274030972298383144636192396302003197504829508369972772771285542239280940699822108278556987683383275257861277632530643229129787281390642109596516560118616731151524128911487030759580145217997861805190963079290861948753153187968275718484422554435229667432303426022009811851143110162421615632898442084128361239183904394561055316233852451521421169322144813595071047256531826904651060510200932564672345193250759068443658753972923134795254601353893699219907820293578001103962205985934802227390815414558153964029402038433163909917732443530022462317810309240177361712950649349173443807750726814159498630324427933818437165413669074862582375077316244907683588970094660481969455000884826429595365640895455685025179773991295528725569963930119691616236719059991678052628147440893187259112247343253558335431051630801860827625821292167853356865691361970595876664139881401917314037076383490060604086225310991784139763151084385317765941604126088972614268567790567026863820112457221092333749697844706778064484976849440203938805671946049474370520421504906185811962441691078340477112564412590036913967508653405019933287726951157606850888767153424900496012388751749357803886786617266814995399972260744523583725139977363366364424628424687298184838092690472185813362058571475021776149759661431833772492388686372119154391643116723623454271559764069440013014680685431816154570502656668292476962743145588817854252463231505440652468665796330262272545949708242232799612876479692785816281376914215836064326491137967537317012726461316628113126123567183141250433671690820250928888705247496718942648046846149521198684430571401792255251576662924554069586669196464791030848205311813912384100997010799383146141185168532792410895425566320281632162416583181521875645484582307850047585469506021318519289849776028330693696279520303888258655839669781985337558881368856609259138214723526508416470463219173371073909941242601578832783096685264160328518460983243474513457113150818769195709385048092683289251364188229117875275647779240244306867859839900262299613886536178104115348888247431631667980678164752485272413260850079654281203332875257574018844954393330469906547731775915972964189662759118798140839579144318130682660490771567052101144855801438303738444390600192270748445440928708535639837401877838844102027283399730486305315014787195600558117826792865544764292451040908550051140107824266117637172397983456660324793592946007048429710571520662980768750956948922326886409337870600150378554555649817563682330101324767108378123539419663877892658433853902622549260939297882832055704537592642702397553041713166123088607625030668119400610851121829788588473432320621744773884509449754278802023491688930612734396295334824851202037250802732397650604843964054912205285527166878035731648333594433103163013700692294374417325388315951136085353609421181339462426844510890626493544251812942588360246609017413569070644407410711307606776636744257823826311372476411044817580222843172304363733990864662453584736400319522473596057046399687412391850355825466298544658837022321820321129049516481042997069561095871546801441238755889088806461132071930269694295290454108943509352211110340955968398147769655329995301899747054042319039780823838496007453177192284966930150547166360831087812570810432304898374401679587492490763920424434638596911226036993974574920146003401515799799903895193423983564462499683196694247356165049640660080519777499903619480990874772697397839317083009646251062208737656385600741704253577539896954998509542537816965968707434417989375885786301080591101766115216914339141133151428216598333337725291351991284240124891676043841980587097932112483917368412240460625551192793286360977201847209767042844664451083744821072015768631432232448407049814793221836331689592793736018345194558278696617335984870492630750822104959565516557870258184136800966101818881666693291087932758081889976424607551855273700960629366623910693723540878645335869362931485089161531958140134305678644424525023418645599368499171316090710245678775492283368807223029247893250530316186702863224784211781139374573292126306509556314772934161155687215340250653197337233416807203324014730563013658760760468348831103728568485231712904103003297927735791993059692601688355554399963984567896701321940775951300745673480586742239469930687449816387819481182116986152468153189244862841449426017710442380976214438135597002607125318456438100827231615626862137425171967275220081315247685386129140794191620440770157783681480031395419322831751839314403026702018090237031869414377496888506676409144269088228163509757513640292677965402039895605951453115001983815336926380985974693208993874707925972473031232188431188381346933696869721710207132366021371845029736585261396777340530512507728148562224194684478016120609336597989300279535113683282252899754096163310123912758706985463205305759419261536247751267810178453608696471435545062126059428586501959501723116882660341105248301887560051535244564455396565494331551931204989355758274241957125773398361380911688613718759125645637379897065243225096325365210575995325573353529045131408124007835322991273427216225616097346460037332876427015265570202072199680311757994387141577397409131370084674926754431947603482577176102268832056160941294876031344409320939089914167492006061904241593907244517931915838085219151240973544339198236420955219086537481677166615222156390638141825598133085650638107606581631473860255491216354335707415263810677774150964075734628870663858741096234960367802334360346171419438763317574077588558937391012619852994362222486557247522056668912623652985120261073776252683398760521544135418458565843446222017752564627526887727991768966333558189898401944808029616877644173028024375784478863520641144844057965964953658781020088124554233000575868378241398646873990345808164354807050729639635036151416098892844301384571236362820068876637144056845008594900909340927617342629736562202888550456473785605757190904861691778603669021462232939590112441564256467563701099021848154148852565906753223457872410208183763287377715004411502992187519836917060686903914603466080960099350596859244284624976867981286204077463876130398849197083043229155481803469826091551620523050459415923817896719770967252653831423642016013903651518856964001585585394724376725038646994739479425063786787029962082396373552508505453163376634793189158647807062124995688186467591992504521142989653337958778972097837971525280129735796507152412504615152176063347779656058471886706230480061962351770819729526173230078471776030871187195808358326978702466713481005593396086592187135592237123762131214180205722284291672711059535352726920093969461473904155096274012935488351195560493028146457160888130480910634727158005186101182094831474018426796993077832375711801515001319371185492753203399718265984638340489087531664211559736125270654140282102739095295236587822489249673572348575804878014557604085458343477624126764508634235509247319993639823460129963937632636571463952111168336930100329974851355105536089818584787838880304999623261598073175917874274644862193248457429948307259063657987177613407185909917208925117861401239942981982833281980811556387326592296602741490426207570717835536596438962514916970466069794415208945867139094440424364424185027350520681269560993232836836533962343989560884013310514571304918774109254433289115919201963288118361463103960401794303970338713845368196277010538891639029196810475212998069516702813189519735638646665238822027453919806508557455215235050743834726155578632513962494610617284540648924857486789069623901099523676979674003477330500888031766882334808027398018010739544897347571073157618108150773944872870770791511221796544165611056533837480198245828619343068597749650049265755475310524404403474247259395715916169004591365176654720875165443018697387880696504218690880110219866170092568594428192269558549366814364132726366126038405452573011825375042671546794804354792383428709802827855216663055267757233165552270195293892576717641167647341956568582371685747954588999301621753720947407807719944298624542701577227335089459069133729406077245198481750098305512741219663736007850410902880772680450670096884218153348379046939837273773598182502653183395877558872120413954343771078996773868247806349591479106453768997601038978144045597357944469619037098596380720681754853945823879101225292382506139321292282448158471290850206886672604306787002840261778179301709854655534256724084301650693920968022244094615178173098475524484196595743535561469829578448527218527473615217740545621368058858360041667314740501440166737295375039078614453590516570903546189077515742149319010865007059840661535125443508382100561139850808083439690396622309094488513355730754321737638012671361764094712846431938554777713736934754293049821887002237940644576547197511874304855050395728319177565523363076882836426104864245929428586737015905914790232237910799351272599756910865018535803449181736935624295330821445320164601377872302559948584559314424003985892664385548465804037848285274990006428288982962891406865033522566010151418183730783260573485814540671504218080944731195458581078280015987603451174774085294362682491402212804041152825540705251275117878820468899745949056174512163361859772011141736232960803802504552479809901284988458310750483326069170835248617408320205860814073626641192250648657901459658893932848662679475301033955061674596204936429493809713816843013906294968503316791717189958324052951432189414519079446030076724679860182070878926809999678221426817560737650150593572561690278916576866642841142864475920188540307203574238811564963739227376607203406706683604788123171962093448275696023469759175903042824393858220711286976497187156582600174433109842133898502571022600326665596740382930458348941458475725971940652795205024243693169661699097625602140969882405946777479002759723577891904307304776129678413161202718611883328261497875951668421729230837320525973692453344441717412825646431957602787406618509187933479288420744620746926746443878348128664112459687560811554113300684075316331218600025013813562635163411487382043995634703387383577189118915882106889087261427277435375483497553441708874286490171223574153364782187219728265812948670344339923174029150696536074408040975091066281232441097884292318172124669291333036932831165397888153101641866894753154867522766334521888349439198964878189181944927956557978621247362065017980940305905452727000031241875499363408590856433289580109179175059451940440966944559262662657480825005337424246749242971681613289655097769247554755456887586936340130649766610453034936480884700896587953535697234357189017469901264435046289705361366832914777085102256536568057497392267715657035409364657633960665297311558235745309118688294146384433039519525412372600834502435455842684508848656432233049505176586276130370019975942773535649910535084937248343185613523289346654058198035186511225541509297429390719366765521037640346213440589170914599890542194622471474195180624049346365001796946496536824221916935304952933722887950995201471076617258926340971905699870164799780841029336855262264099772134740260998509428189611764305119561911581500219646731559040531012935214548111977462602345552652297961495172745708243128198699089140809476444104667939155588207271719886893300392049394388263905746046870639131593413285058581324629415319385840210832706341845438527196372859402155156881253281214457525508333750718971646065230123611497621380323520628581731392814933714171984152813317385790463947697694838550361274158665076528604058128324345705780566952312981917292944364325966044082727238253382468012126599584253252160055647357381326656522035253326108184767100524167532326752347941253294368635792136293884585143838571976455896666214953919433718156487514062013212220838202649820489527587502831472570091867107838156287617200247396454850292897959591192140201882299236881352687481027875946671525820264453173809387905524538617383043943706867959384007136548962174876557318921931355129558753031056631715675779154959382164690628752809779705565940850902288654484718642215068774829353338746846001576775058287003411817327175785619327138570385355771578146535395966717686392430563904954305720263454447467332275734220959212324070098586962517072895248573867833579008399178440878921676082678767674326864273336038490832532955770544447984051414937957468303382244577294779703929094823131896369844496707423391127654738556392547393555303851165137730339294977698464342085929891507136332404007994434789023355084863180756892164851776784575898231668195034499270338437484447619353948513191200005127768741975189856656866961780437113392656151691497568387011311245184351705453579709986843115899117214926473298492942508180672703090768258431862762923756552785083930085777595458367954818624922723364315868176136012736990211464506093466818075972419899151995226127470925860919953208725119315920031836486325308280320000302593356954820769407324910222681441524950847839823125469792557790811425495138634965999328447139115984716771297092539436299002592836953960716976767372109408512371230296435814779826812099880461009213102275895367420226355912551730049492910650908165547133272705670117473878627824080527095142586534517165534767224382571737647662442001967781933152376835508840686256247654774124975637043351232789358458235481571033063499157531317158579560516581513659096371586125113509766151113774991071604709584485003390151301132176697824971948603700966513666967142194338265334488705707613267339943283882343246515812558615527441665927322009179070797194641027089670152117512680446899215904511490203322257126775291721835615027857657734444752888955273092717386946393096655405653542448895794653035474952888752303311121160987453080803024594455971167848790191322451603089310736688496552565637397293947897953944149009511484656383434942531432225656383721543662168003536948966630174142110338768938596151078146959169954950163693188660977505373984296236908079574367758007092379229003722384207922569316175103270004069190462738467780582991298349367316033708919281396610601567983106360474530066414944365465360203674376571736479750463831218188800828182680138832472522556673920377221775686589164076166831866054378120598150842020345843998654736170382153508690774359245183166632020849555151390831854232153171804017669172297878423087572189345795908213741335739933482328329075905962233059467379951056273119454053779976175027985667939205699436319436665894164415201508341735162340650598562761314175837963245248223794532395358837758456507329555664837607452612977774115129280965630743526923404516452315556788385107744569860061813709498570594967237084146411961227780006637466182845715143824220024016647774526229402746212361584557010405568020803255088468648869801171122504586721694210995149380503033428031083522218502091440960061466396121811818490081614039735989117056144810522055970288248020265353893257587232325002268848855488549239766639885020654434562041346917944736135504604727437057618739919791403712926975991230446751637384323540905844437379747121878737798136443922063144283941272902100049668411709035000181491400555738867846561585363091313477490855606965167961729543351102041078358275571445107646713488700059362643714992544460353984046266467330739652349774299428842581801261344891196105888504650966101353249958619509419991796878981733016115376389033257998721140829113365598667304756304555188832893872176850390316098046813100212360036811753397974216920404451325041861453785491511374999706093443457570922786407202937989945024225221681446336925373969441025968268971584118075984863121232191266468571605909987615858980384937835629890900630447003859909911458299442532160340371822402263635320565863056469185890246684087686202347329047105911104164176443104609811832149602680565362726509378926854211090071074191231504239420283570212433608498805533301215388620360335546496536942076280089869349916588471238133364097846684769781224171740567905478130595430486491996939260797573106643222416863552051893547134438078940597543758742982281004130600453293761471858362221318148784650199331644450288631966594046705272591930901907766227652471964487704160148025292226890385875006496743928355667668583971213435905030050247243029555191817155588372666170220055848363122057087555640178052122685670607036356142614250219625326552862991228215063034433853917497145101047573878713162758322916728429472571217438371611539287958159447073233036462744002175754993762894955121010677219591939024373814257689247746179502407329418373361435182860372802410753574527755531689999611373134552956868568356625030163615318188382556763759622537038175601916766592863768362110040018222462385181929720028097598977234924845000472996073610161289810217245488352847825256173780523313400522472101734248395841190119737645903380216094096598471915225315678769975347415090050905309490014095474528127594069923931527097877483600532248293105506394300588570144022225661419334436246435969320287394642179951280862892197416029433966793264947797432225054136456358724477053687416356450314645150140872165235905930073055435302017415362485868002025840817098956275449531381651015145148063628070973231302222900300413637302976762581871289959511471950328665927824180547097928342774641357533020266881416734700483206295577608687247087853463028342055756022702813667444184490119803324261609076809576079199918237353480505451348491340524426219799597331484614315099178368972519407968508038570296270290681562292822136790631370918806513535586717031275301769376767822419505760719809418400599168495831169871230141434184253579450456875080957328769931698488550373881199764391042008372345293982182236779847732417651303984473546439732012836347294685191568578541151090128119429531953853728152948547802976766198718162564583776812091843814866003074147238375641721475114255317030201050548656359178385842907054896284863810939204642929928562994589912470221064300627135145432198304264773572832351715773033892861030265830280122802346461332078396294230634142147605814589539112864198754164124497297342350377291080442866244471128170659279207253322139235190507008847394396163316558356619881908232592301732806538113721595008840047969903940984608989130762555447235195113495881152980753150354795104886256804554767960637855231278785441052281884802957464678984853124113419662294169871628445297417690111274540899363778188003168297526495408805348842245756292332722470238776303371953332358633716441571375375395039213707292780157768513119387455137647966935493502595344390806379712260117969824321553187469257493207995157084101972479962361165885604141795932966387925548733093599980415045620715040893754525403994138330026165342908708855534079519521855037508607101167327731354154941714440625644817581756005266944131842144296538991494226890157764495728000656799899013404366983788996826579720001832915329176446727727459111379178745813358699403255556494150962534101617868731199099171983396353221329448454264956373400825398350500873095760183821182497396397764995853533092508002744985888799517975402531407192905698479828814398648451842954567754079142483849289749423782744153178350443727833423893058435922244110045355871640775276419604978765032334565108632934198434406214927214851281347573593077795173366561541539297744027379821003624135121207350968624981706038060068895939006907551515778667240240359288501827381232884315200117497569933368412331594795006904082890652292054337392766561379146095991382362091108172466516877755236722916811561024597131233374708384961349796714235259934877689693046499594574954467278532931533349794353598107150327083050159811571229162618021226249778606351634664189311975390637292235520821395372070927785067346922286888189660181214905674226546049838461230686893541301742612447382314707676617212125193348357649455132571794109549032314500035075578221927360516889053727691700532361884051141508569092501623667164481882039257667270768402429174917891585078388171528747066642292482866950445300064310900101092969520213904123029446703538994775221944495529964077470688398837557404416885971699880387079162534549075522974873524997239827988589175826827151674763958234382027120143202649777293908354514180260892613860140291340592572335663039881677657519466832309287238213090646606314283463783683706656303898404093458293996091420428584018352072060758453565364166591900372893239381044054974035133504754853858115666231399491996218803720890113112017425853460568289096094870793425569607346244607120722781052007343721164488769720627486898692811440208774539457283826275327536147009861337066522126910344019835240243672136582719717244563238590908684412930651485129170826043690459637907433951013716791047851360938358600461903339785919927581654148294351301889275632616126328380763265082854886073680850684851288092567099649937073391855245501050468685922694876918234098205614046320669541624944381954688749261070292579580798420605806872479303853324150788199486867564003250176442442193672241419982832845254358051941471232258019754083875798122653943429368903686662583622907720947089756133140635042058134421725521857542148663207596625388608018255763628407820512110397693273740804960276792086179896332769824410850689391628559305709308887010992747360065356488027008771099228907966413594738497558366308028094862286163790675552509287256346990054278359894424629581635922126011279356709846375423901231778395399141954418038688138000642495471309733312957006908682970442417573595532622221915303809025969598556646916565660719559429497848656870382581501264486790271371045471136442316545107849874230611711858155474712982440854376059390317662779884447560601813274695589693553410175973770444704681719266647618486102742533902257094648066278804374556853389141006839904957501568104320686064922642884085217512874364898431265688530505351233459562997180996249100623726608074853384345590711791405235240824031831141092164482753064179157113480309503741824677447672158114650384649254408673137470019171290988477562546916275817871179821353904314481643704369729093731980518875866788697651818563519482172540296027119482546934415805004881128747735233579044355544732506325917924910566065980046401667616691307874533609728621580180537050044939191056524526341034868148882872368844566829400107745779405541567740740814551462991215112402708725461264026649896602664954198064222810840210274305509614102931608779349323997718330447998104589372965539533662753430641007210344764628403702414687210787230547135662003306173731567813362527414297852204420827260368076115262400047753066730020795778428829870336376056290621456004973336438736652406486997333014066278136754915830270588482987921145910751188840922031601434159848445608684434545015591362143361395845831274241681481183562926574603381373880075921324370411864600063768472391299452816552977324871445216399783748788897451786444781687075630919964585741804146633620348596029142518138748158054868020067239632019760986007748575412886983162151557329693404207357924303015126285881999014115111402550521103883090192168761402201977874170113805433695461426789292297571643380183854898402244144287771823021482187604561368411936669482412503124545203738348800141958618766694719575363855004036323036028903557679532099912108590297871413332667663009201357529877896317810300649215465909513161536066788627177420527940788186606406273539407625892694605635433887135026219715824038848503055273940242781043889744448475961319452011595185484810368383673477102980890114292281192105931499606936374496611816017768385501611223442181961474086265407495618729652591019970125015434303960491910533066409313183417802691914774042153097120158413860395001401656824789033281540421991999722707305911466975941142709368273522316120791875477421009946723178583160470857288650301097416783062863238142266900568235722848539926380148558899058048493798569419164618509720657070907670535529075027254453210872788109542855555908009531446390262593030035144810758087355872079123423437054795921506573010221295678385119511515271647301949746523867225701423319342595927517377255645665690260092181750944541027508119494724122228747672044859948069794158751316053207598000544951048798406929342630489754838150536672967526334067831449378331759612729908265574352627665631346680275362687371798089505155337546201967920712808974235483883139459534626040293844274281541690417316527969163653160120404503388631098692995160640584336704850974885931344767751779528841913695946930474993428575541875053680583445735025622599262518204039582917872046267375026578567548472394283876418316022504647002346155662826701035252014826937858306422634734809554434948684657364383427256193528915285333326425105907534624908148254438068568677236477817483196786569330999574945249362276985266185033496653699702388235242313381939839445709493278215886496698574413926659070128063037488797109708715445181404369378959446203101765353756910813822486879599906561071050654229914134075501693992620221360288929793358649562012677974803036273951492499519116240355421432113991424915311360185791112550219787826729210289378961018907758523145029872661654767197213866685607952428064157781549721799935047085681510065669514556994977626129678608826646363000961892453402030708903415469089827021328668446700502006213284336986198753874341794490045140815585534967297333255245773143998351906765369343682778046624874064672382910163909132945599271185385552522740785984267767010030406487085668740223690509196293702989168186262268259205695293254929651714008642799874749720101616374493604428585285312534540487743836942945607023691848703469429047631499334137745987662258626939104294824888691425189117497325869724751918297213397902808346843223609177765342464558944735218602775244184999890357364549252114883129196765843694394359284709312126387304469049712139661825515301097726138373148387850991207762317950452157928781548722444618554468739940350528395466204248671858557525133050789228966588023820098910397786643215659022025604350988962614148922595788619492960718172224193228144266145560735302505703147210262417459041753413938411991583287387696813699416826128480498141277118896035313905990599738802164344786419695443159239971567023903121166304728061625562720087566951503026799261799079238094532765178461829828179686974120361543210630060522264124286234880079496136550788786781660124691503346097088980393178726173287960558044823783289368826562520388860455588227300323691267553963661570670128987743817927458637793452796826030305548277297072702285185737318535527057178957183828071056680282369866754938960720060951941929816303413016147803543602203760387771234147867384612991168151170455358556296449878398772862324958891468981350230781723926031043510652150030971672895034788693908925567682907420462714058259265790083543943948372483434162941465753313171711131138782715843293729962136841917926162794731950250493389681815717193172679948593032181630369748913168332417802347794893040646359935916645036758519858912731053245955193180810624786573128679899808677507509405394721550141415211697034784899637340778722914186465736380219259310713019969598271181008394560676043237471373535372215792078058566498906051157502790098544272660585607623857176659626220129318346784614410984568226217298099684077759064769873471986021728893430046944290140451827727781654787367108496396712167955161742650390371259678012832631293032588469119259593129034998617558735298935890478591489680375389057981774584963864717061357663881988037723836052056790892934952096496435730474900293413507277185612667924475717085693212456492360461040326027931507434591074011807949497362176296319885110170837466719373617247451337126386351609419414656822957713748536381224720523646182294405468109126876204693042883322600421725515423578213998468764193911073666359502801507225963065070683265518631032008435527005989180813593487590503028391798288062015278664305151820770971197555594667123475001140287694013614222086371035259628569165164249660832648017403057871350198140422275857135421542792435948722827984771511006880171629267740851803096896990306649702347234793402267433451769868261186093202751411121307442466725836145696555859908661591645703209268006400119461540738864592408450808240434161840350009616817648946615139294935099509381461543599109822386061352701264716965850956149461366687744622874338691769714907173384262204302094307770518487924582920952757861414569757454366554401478146599541859804561991762862229950876413376346476721914078480822816234373109582633069983178982174801924114482525228912307096554202282777917772539084483339761712190310670240772887286997589119300591404069737011315201931892336324728383106172005441728654270239184093596328283616772245521046149392766889130279426906073944386745110256116855966235948737590227093097647272642206008676321412650954644074904380732102908744516287936276279869535358679136539545848000487207145230282695929999915643592970500192724512671406033399082387534047364777167814470758373918255860489267665308856667023998451638496777868200042665933090805330260421181284584636527181526058892713272500116762244545800572441165044940632457771777178142414075559949514965971515492259585963887941014806313488498461576363541135144767568541153207087910789470834369727808198086557919735519530961663093920005936737561297742062182975208723908169502692440677564207551567235733308773874363672384454063434152034344306748057818892076742280946320219645256102578062189465807837705632379038842576565210722499425218469632972840980476368151978588130422826208084129966666548564534441450332243185364704835783606765097238780347131722858105141922979626322587816425291114030606733052037956644108395012309521296601966743539360566744572139168890076582013428761734772513153728099720131362693491997276875505728198357497416143709135244776610483152080889108493521086998524109383329492574264309721852217084212235633025475094224578232685954855588944576952842287753784538301303100247071032625417341605167642958791747904218260368064822134449698050714425612010562883776523661686076620135660855389198984442723683381029638375551386408197658566107344751680844126014233078053007150551958448393926148898184455609400194746411032301854284929105534207636525795550082309252484850459139870175322756734742465801017417186926272560584182278794026977364372444399809373773016123201029764503535149639346795693342860911018546365916088676305816224136243675211928856795458109572662231271147196439138198068375601032748134195878058735480134862894470070492924098067301779650923204478127774595660987529789156536603172563772981156941672534707259732937223343271079019686510170708132459853946661995958324044113238631051012846834657594388069041666370726909341277937278460898412335359564340217342032323873453258125016351288757990510061384441754491692495915223141604009032359588313468352575948739562192249285692940547835572159433449887435970389474466464931182603331677865798300170864742898172331894650578289274873524957171986820616037638373413928656663348508247189202869120263966087865149245622487083853116865942665657044115017434721138704430894119268731112346413660238438727877779397940223370742205752326461259081746964161486540390878682805829054320866271314366013949198925435075639673044959621124899276941704266882411566499435064638060741854129466221982127498794359346933094233728646771177387768360693416264697446205991978245952500841416302220767844352603453797456739136787969987922998923266126563009307008469941751997159592643086679397144274071417120268530560247826411913055705207496000536174791756588758447424190067471378849758130860534088489175212161071275735855768678960391955066406258900261611585439104199433226213484046113644114786651608177384842549951548304441245425807961086712232577969788073149078994588146844831524970847837300203173140428190434254142253038866322352078549526917156065763021315764622459661895680079774470842323492582874694162956426953742699479157886478924141118856751494692116206174748557681885118811691148105613389647727425218575286259987076440244456120823772077027343298309423773754355215167327655012756540829487836933501157372575316678628919451910979736277366405094204943288103966622780544909390499849264623085317775527574722191540269940577059366704416264376062241791230463384166946799775503655679579034379794750540288671333351590631864191316740828042638448210544418934457706735499786067957689064132984663199157732665382937289317655469672010972536036037860972632201762462649321668612187515393605706770136433064780289306705006410635363162660692010839985530545710847048833473446183677612339361627623440587551774993205904993874663027383845525062835924604841219170132101216993961881503191354139412750300478222869260632615780128529433503541311389259914983868358439976458350554846685311181539641912506311710586955538910589999899103758321020159119950104857183467674756779822474742429649300870512704238376806560454363338181848070560340814869309542581770507726912138206818441173949529408460945780637712933341230647669138438143288084973699610755873776011954884401393445879863864467914815669161015245516374558760349259340080185941524768177615552075937554116112141206101087882132480529244762030691883642065833291868080041078791307184201355643167486417244000834294350380902840859076661670613024865280152456746085779568573382251565269077282803371576471655696474579626503898188573038948367151348122307207444220407123349223281207174350323089466532200071870500432678435578542772573485032348814112920653487919969992250324845215074921507394432728265258447709260457876074226853508422747312593819378411240946715319486697303428259848164720438537747933184666773243104997387251745986677510626447066777062513094284695390033695112645431267960284119502507061506286295945043567458013232279636180832405233309665065138774943373739916789206847115483991713356814168324145271660506223649719266583457519666708297046572381386924117792754205506158550626592750743860211965748422794789247480183893295917186404378947359171379041046602447926474384459657311845756227716740223096759740664373160527929275428686866675617355230189005620465238443669311806546842670753000922066295306243325257588085311033446142769779033718236622530148979444087329633992170112696569459421520490565322692143751424392546216034569701394836891989504888673533614543794443887646135446351523482388716592118560279098254669141494372713254795243758665833215287468172415794606370025636125518177105421870421677207665735256388210622123371245101072017605896968819084829916856622011661721096179585329532308753340923667063406349632070327970189526955245964651302661524026977213322127043163992159918179976084240698177445245805443156408683233451477297205090815187416457079267600377521604563790490234549514863070071109670535533876107750784480270576525380862317329665473936258898032077225680927327074336909376686185489380380710241710044009739028687209619937674322371637953842620163292621242929730303844772115322936703656200310303356720790412523905733235183304875832740818847718617095203413336501506174758584146230856479073364619393870179045568226207254231735174802706846274518999607155521560093427182697497267188390614512328095057991773573427784611141041099196891577967758406693053134237260832989212249436095783717035770643561022742913061129755236388525607983394264702496293231922632699093956856692031369299104223566323555516240046485206095566968241797555949705930159940161730537440840120336451465288517233122570750794051073974598595729453863102504499393134219997084616371119045868361486915676837359993599325350585630165713129586393253735331253632049746682172390295792529471305245530856672892260196397318095197759305590650177782529015518315871797110975661655136129406333927649973843834745191282690435367896924130802776377156274112031506220726739878644952774280395996525323035565323147128213445604142260242461456966106936028710304947021609337138255239141149699719103848990407841291971572014053982232850376402597249753595976303596569478420847645942457703662946124026551128538415007034439235723104745022693160905530333053852876716050943475754788374579026623932777641879849253340845343169941611043669320586309860382274884909711439970716104963517333122035239075781041406573340289605615598483293502231221374340830940198289040654582674201884136635749890175640675986837585732425400818143437083823168559928358759368362045579482140146110412473427366927569452630328653550569000602211396117291573473207234764098142361743984030024798223268242211464438724123832950947923807155341772063695082135612922489375920067187101665587553249072341087283508292724829725038780797703014524596501383723937372332677795571179248814247546323450733052359013649414122620255605598934625809945472320502234207164547342364453510080431585937379588221931744647199936530761642986313476775304411725178172089558034833648056731974351394431803775895132566617029657883416128479547892270867681567052602602368007493405882716035128922428955777254011368080513329274259383063485522531717702682860513011793263348305753745791673616011653405347129997772116432275563321356502799782291880387994475827718295829842869444914171587416720530120884986484675152556461347935100214452200729753383455913483984144648053013633839055018408487942107655880086684261609254871182843519006786753362672649628972796181975029883631325706510382790376253277968304383337868131118671114824766781077085549048505862955681956114158620827876834187083385767142820640494533152856894714826943201438125499453737935750717712457649361156449358577802947276283408267402967578441062687832039836822679205348038562665680272516969738298425787649339844062985308387732592974208869748598918350493616878533479435067401875774455468123700714775428063402343796894558536290075539675125013445751635594663745744180596888221323014740653519746653609988764854132530361463423595230075485534385108075601282827894751294284113945272859134167715900972375489067977865394071611897300996876417090397413058219926190771888809399092681071185462518974257863836607701301554185294803237696002082420515553268418470582109242283071966999269117866226650694044036344107406413186848320097309965056107135028959126763986053054403773474554467273173552656392972432005168376101412772930307409060683900663773872062440275505271267697646814750924160772544022380406725472116237922970607983981196048586816285439959673443802612470870448766357591190511355701133018331949060667511762806135587499496212275382028925738119166698436118991477749224372252583807514183648408370319264017909696928183173336936543863720317951926202304620825126506988579276092284005991596748698466038492465815963970106502809389221267034703537981032462970522090524279167681906590140942827828334243202338369227590957359947813450041962823108637256390505748637132435928810234135137051627645360595830140410626978074418768234876925215948982438234346194409183892192245387270210519499467758655637819452353764117275791277414388517612808471750111678987787548554635657477243477105424501420946920356196270191439877137948852370286391383559149406113504207346666279918874889463045575477439264883249329789756624706100527255067642588005774728720078997457090279846272791154815040422255854512383461526807861744794601524008500261300039939602294684379253139287599818281889708802426818091340670494969527490748060214200260490803743970922170115777425928985399025656815468693527257639159509322583233991154435930003856354307858777858635489904666589890448171385122194234475878962978505407355359316620805087807994389470334040985898282845357956681443322485481228062329847632395948450909802916562618514414422872372190367976279880035735395272804640966923900029977975031598813789614897760421553364262126146930442460878815538960666565985927814226524853920068569034897460941100477303197565158485923170872058304682250643587002133611373136179414975425145660499786727603309670515007437598194383665752239000794868678096849450767456264481704127929574150576133972772764686813749520238565007099807909482181213209386815412315335571289351777487861471679382878630147905746529905181553821076028591301559706238581327564418000647196908573792386682350796330784716600264507206046971017007907875875693657719068698457321000207580213165866910065504444817585047428653700885955048590467577638474369110919604086118267870381751299162004078139054927048662473165213712269315251571292519647871297756692432999924744959266845706728481530966050491593355890724973146563303528089793133226356954329013087280575482900967992133563752510928391589115730676978018469565068650909313840996296965234370388214920923225862354990722542059604697842587867590532365228983064891208683293774810464527675921906297655928934989264102764817489367751111338043964473810577484522006829378388273273590213986877788749686746145941696433464501318590471977642155407523951957288683506767881211111872328598241188267790782354698579819627294866393714969283457792122275836141950921670930633438149394401594956203440636597595533205945480600659675900443651793180687920962576857375041761115035889462742965343873479963919543238588172067508023826352656880050201517349823679323041206788929249414648727756155065925157568749568781910397484656556232099736596394550278326085822269093197613424026928617095994396047936054865649260651284314384229261786362167913753464540698104324064431451962490319194091588907939380646983502649803697901234648900594296402847252527916062508830128447193468859406327993229337484877154218254395082263990327696466168769879577611554952396999456322142724607908703473435837271104196310375705287458588018427795717537488656628192846067330974185516810072510030889419554266691913576259633724718728551160154563401591525174470666099970098667936851167820116757776591830330998299099960664131029925011305770145499458502470688121022024555007578473052032388765506908648469693012352668861363940647904518988044828824697689273910968333803255376513241869374836442330889244875970195180307088720765444227907811586704061892039632242013267258656530867199309785779744028595649409715240595809115609774178091883540079775392330727053087640150222858787410563096968651253509794089902565537591111646523097174600800731921914182527810766432244390964650939169447206043698655791223264330800017778347706477478022934188895486693840930134139593011429775492884066367678799082839078687557648011963527180386496846187355680323577197910636857694120964197136775894180899414403570613055351030569605126530416497426411325300478155319982744658909809858758086147136895661623219396537924256487156561202852169301267017676985694147208134326963161488242052681446651053037618273892727338102139509712255863756392070565335132773858394590413233014036017207558681176214784550430088925012388088329934969083961731371969585118049260318733457246299062686024918845437327940328174030089016606822756989379916232439112880580685800510035090557282416032987667961091476518465914691890223252590293421028226999288744852026202215932571453574755586316424106580495487316121532658439348884917219409004584091410040177088768428537502777523687114780290395634560176111852210517732270763004592952799218968678554312536010001262247041045677106937798950423397182399015405299572069472027465059952268919941374522556825897175650303805856804473542569272924367065240863137108081795576052114270759044493635528085240511476275754603610144708579090052476698846402446981633711101767509598026655805530235516782589789567313734920560780735707658437206344434604947893369105401819277909297100324448821159640240991977637145679535236966871829850889101110839460663405091633445112652611511707204732145327709510605879639785140829545545686655307222945867784258117220804151042308996218515202059452621673170811241189168974130036898572106891152354860754377739848491754857320427794253111262765023940620181086939290619168263324372976406456038615522063133343357094531369893661437977734895680019934115961830638739300893574505553129624489164747121522094487789663297430035396962042642251632416890809399525093624824540760219131012305182886249683127703682881414488505549916902085989209430054108793867074912882970087994967035719700536352350783056501807211748362936767255676972258202342094232919775750133427490327390207714539701625612233597098691133253111031291990627354449700654507588103051167143812716288586145004935090665537821023706674462937106020827298264107760353131587238880013214244617635105252944114562463819186286454937835339352179888642698505345896045596541479601349132839794804456996468193587101744783728306334846100427433858945425971867289090659684201001809151649012486147434229436796643398489482603760299415051752732239697054525084445755786912027193510031641311156515244724676970645694470735649852223418855626679002475060412186742913123855287415551824423121602033612021910954948477912474826439488404550986166600486844489160642602337081442189027838156355167281342942594348131873157177615531173006681535218407440044809842305685400549343165222466264550933816383539465112972576918835223641330737952693836897021066461000479774215154610305688626497587916299609838773428558274281662760589780356018603026491617181668984801140889712499393549727497691969126348738049720190372961132622615577745060510743324270022572313271114256468989035123417694123846648393273829374183116870027114433640891649277817151394204359301455541272006820840562613218808886782338091935591656951257295830889524586425064751950065776712166952305448562364272895118515036395001748764217229663761457213448869983036116034050314607373043933224519974202933626065427190131079051902178742962629045243969876162593936762888359277222147990894874426963499722656699705128791054026431783953562643540932644698780303690816373516350451975582116035361403629987460502771890581234991694692606100857495370223663550689179138558141738693623576413963034368166397303080934326176472027117752930487034721839027440538733105735535352974682186886122070651410749864886574165151585554341281771785470798917356220100421155701899122715271548515077894727007979151778568924570819661884897714224894318821852517134375575515007794899167394548665555800072135802991168732497375120274425484122483963599445109791025041355748687606162976202052977808930467166305876825609776348499075837296414683578902240681232650575935767166282376363195252952226652245289316166247800322270409733052299747323673059078122246542645755689232052197000441314098352577074803114685688701093678991996281624848516530338634080555219758874037267044778991990239413403588607603663850462507443911397467238404592229527045957215421248201258643888242275543731332070791257499229016356657676843276878651030237541091636913041600354618597151233448660566588424553703640920512886857009102739415693735665159895332975654478542724566933210814547649503456716634584686746544118793033820354815728707609701429989372765205295594172473311001576256980059532737167673293399715940024903193442576779580486334824728049562501744333459387627440906494269197774613615062859823729119797085168936904905886463377523761114747776469168030276134627087697735007430759518285723823395448904887028695701045310694414027436697828158310929619011208715499655035304197484962360123807011014229061359864655068090404476054513586494516007237061607160146307414069677233080032481166497756646662170917700154604061143415223718750948738909130937780942169541423189227827968933543285416486925155342767025843022893726053870727351961930885816682431957254637277415114133977399703297899361430369969687193708928500447232698969610793875798234501850350581246425942952527491892233558898145295344942725667115737442880642719910723131650232008993873940447770167860728610775993646078518827084294634442176068426511482109978276993533185213386266937590960582901523522849419852068778350731516007086706635350777452891430259963589394162601942361681282053571772345531491488935199540360412359117625367953741971790482079613082603780814860565368749707904117088872685726803182826984825003507790884851981408622341277287901378651628041341320656571099047285308173252330556039278842147439651950994489733611789590109370954942617229038135132063403774507633488277399246919133804131048688562624119269993846778378164871338126491490954341018257571410177548142702474363896147732263942162585327533197647928441733048328705366331795921917769064700590935664031359751534412509127248426316902810644288617790950619878160891507421902848991196532025271126641036041275762395372825120621717706434523439534913526440957268364891340448443515577109032515915494521525802137287201100880823961047096280716788304631207143431223619125994676993473501560210049998506057439668231450332808518300992287430597905420517102200807974350469235223597126696941631192188182745227589426713710670709940636073554899230299370719749638298974964648346628827530626229459187093291230719178055692485395973577580395527810781344371939289723829229068636034456274358823813821971628310257855859657142011075668168794584577355493914021158847683380820148032377355178474766476932232598803874307524814311441699198398067990615849288588785291102284833344271281301056344845709194483329448075008126852428822855225706923314110147368362674122027872676486680109953794571980945185859697989619444762641164988358099038445618382201765920242644148600435442839485959493319977191965074044835229923997676868075944368347666408305861830783800064649519404509271013883146163319535260040188855780947615594913634672522461217974401150601898490098848212003425101683828088895028645188773083756778703812293118254501038993159746097642580397742812847263498465565628833838322536012171418203786666554776322173463039055994451759510250857201222187973881408467188616654118377776517489327817674490794200645539968429463256756507072284591281834820128609876702361390151745176036841656974599487197688997531867573569403856036989833656702113414488199334359750807370685065595195528001651683842311609935219383716010203070571571969153439299761042862926847166654861848511395771825787969740010671716785372763447114423879009675066508823607118468933267810890178418117386640862627270212343679691611353330251205070994750092820887736230068672639750182380207967964217533786998333934794815476872888067582842638276097729246785835148235519848549191457446114193983587799266845944514870461806070788950186089212501320643249845601174866174435807136157426197370109897879830468723517580084910958778208530312474472304628390865049201859964659047421347794764126893044248418638147115559264886551599262869618815310585908132220507425301180560909714453308203057325927639629831875450798907203709492498702791596299469772737722540691619673572438435421569429431287221632114792967108906151426964550278252863160780672790639224852103298503581259383119422362021151458754871731270798396221217143494637025075129713613961783144449904552820828502825861846453463658587942308180958406072145693304642845650711563366996870626313108918774755567530454086515072850771495925171025230297161816527540887969038450852612071064739183154335845879357413808477561827182920103290419504637402774414357540790248202516850772429725554392124712245521817954417294971482623205534626667445053509558849068034479445455789519971707801485482675985216635202273449827131279956124563984434285397247190011873670931424314264348360862741165418333512057218720660564092977474633577422310559506171334816447942782755650204701325195171976208222051621231937945682556075542017558571817037979055811714829423608346813667494015132436837116243212457441367427880535374267341815801371138204052237727732058433567839029701132326947244206141779286329492641241258537199125992899647820643162591961526426180625263311863237145257757248128872604308172195319779076364767164697285168576456480774464501697403056685899322797990337261990987952527397539081214361727243523054718762258048712092660556398583179570082716683792350258112069424839205806925177944432691711689249293903067620357375145936195403336894310999495287884896413914301656763265936523313619758885782416907870781089935212150662460000061046259262604264885801181873462552717408658547890612502106385370951433685088254257227127564310973899566958841041037919406675251745882885612837337109322798506705196171923041501461184369505696560543031045589204950716073975550146977649092392081396151412729830838751286141354956195835932047046630903006104675514740716674303596570343832969423120412416381296142995079749110366945866006670423965783231876625168287009586590582489508806123326022915321135318451830491728626867024330061147922827599670215430606973068249018150323526592482101665711117513842408841191671985732963098835557123475857214880451992043634394787182418396397093176012992870188399002394454193734857239115654452156209311757399749584008941285487565872150254121733587434486306270544321256325843576731295811322023385721004406890476740001625035358359137565469185845362553766424533770189379906379362445275705699294497797653918243665710573498655582116592064685627888713220373640724204469985232934234857862660245890644192898345931405469409782110070904389988871259603008733277631369977996306842141238116744224397412087616164994482217190308338661035582053123374092758676853049462480013684951378220833633515561244467215148825224821753370913414850553773956349294110511005943973367803982166673119498857483357666995759251592102161103738632669946399779224096267967231272341734099928641101589933592881637302827463987181806161579398619926944373672588362189790155932777175544675049233251225994204216852025638413653046568080075326684170373561367205540682739200805889001325374090482912629845578948637989609376275309026706295545170230628444986184941005668004213596854283536377301355660075268809080276776555627461309118948747599406403574231121154469753951912223911939430234895606655309682751819866143238012917107480489823072730145092218091637934812153677544449920303124574561935523937794559527131793164269845236087894599463029753414296836175250589653493936934804054450800994395933759004885289452588605881520639906019864962571409860075277835987842431507027780220482446988599487793530394138318082303252746617443961688312845289973247502630528191623510278700253197630019043272181831652275163540216721732492257044823629263876632717807607956677654152125711381491196232545634275152014558375687089992148303618035246977210065639966089467087947252741713959156090380291484949310674275818325747998080389893261266942341965442664763464184244201967473767382810529162570270907572945155058684536286965305851038998004521409292719016734708802365621250693269984231832475218915076812763027079117756915096982930747839232171332042082059318448440471599501653132615852955949174407539415701914703975616103402319636308963977399976353334800837062148402884964965986152072386337729332762412944133086669986158769465237778640638394661176112907606853238208778209036285173002604652820369305686058271364145803446389141565525128957811440500165531045432370760704710513714874970465475046342414782506422379942211179096526516224642482983445980966638522557797472068635555218962137642026599545367664620034711458357154313999730424531745781811125760713793540393508460160360296318372156146175370819583884628530375880728552043130111291038307040689931321157599641560607271024472951584707418790199951565646578774430294762316529997238614806709489461623622287176566748214278476577720938405304923074772171314871447682993996739595466353918719412656378477368610258002198333822196532089353312506010935794444269448443326684586949220468231625858004640004557929678050640194168318395390433258317663154337874136868724806994919321965030090613187667165339959481143914334610934499116275757238375890110667008155384001367657711316436294132011232377421522606516875481801711749972467080843665121760347380623598733288856552585879169681847331276454411972588847834003582352281841788143958635782917162197128997352013307138120847982609880830761226190504792988781140178906529125167309689912614316325597973817922118853852487850120623372797355774823522118687627198979333315951190852247428939949225777789375274835610729245060008654130831587981265968427030420821648131678155971427193504271021067524212648413171289315694211485383349149874885049050829041635502840023338980386944096578362181661563992456341134584427045426150771765820677299608475481836058678619476326556951297782829158835971739894801825731334258404180895294559592482602192090521809848265385999051557237215598204044602051134029909133623259255716757581117724196663488366701856473302233838804085465311792049625818573034438248147128210960884260839348744245022642925168938468957095114533281078187105825174597996031257719008012225797797511404677334724870545656695469993132226477188984154515318392284890826423484957196520265934059937266691350315529660444298454047242879095325216182080130100654737552163338279871667616880120591193705653831714517881324056378332224251133420873328959611984578919424861066335690004753415963684864365895974684900802107791379136244502694394686493010222858566811250986983701158789493104517797284280421718208153989851078479523864739762644269268417239211901947319351899944240115187321601103859100182631323559687913527184451501130888076097641524836952406428786287885685600160934590652636634851843535205350888429028278174108939884994475909906365221414346976428446081833872162255607066829938047235722273845319950294981976044594752299362069454170752764418148043762571035816196091923999035693359605723020834823667526105274580588913403343243283074579510741275130404519448886961754686063948585586269670476634332066606655479296753614717811977593996666387259238880892648075110952834295332233938963562129391340280204769474856904252469855403070238858733418973808334453335382609109568534762921766516164205885562465089195232870774916282811287373426372786361015351542043896169205545096389000091876661376673311395842441046936530530120664627420744477771244376721000736457803922482572369650785152332116388883979877863693454447341850582936334409603076273029145862887548098381911340486784136107283944431362323873661468296563813551695200120374133483391471324663760949933484773196155947176947251293974367634559413447192200769257307051055820868986474693077768272871948653124790663674340687391502562746557820798388627201992196235107991896449145885278071826821535881627498776552143958994338092918355090653483858052403488387459847028968474549174936747939782516039899427401263395625025654100322885408018406647476087943499730037509695877812319544407720788921062993028477384285549383552688857298046183149862106074769690022232425928522518974145991458432530271554917045759336526617080851246353858893432127171260745097014684401602787529252110909104861825301058992938146194312527791721549496688772298752467066500062320653850877319748248706868779794456898815416543487932193754773648926171984379059658259227954984355651197261046485762214137071084653427722697003966107731186593162070223781022963054483688244331633992179048513170520045644311759619188924537326009667194056184397180368068796010423104461238264087565458350819201743100222232496657443947150830206642252198429772133800696131333321608179856795194338655026859634993288264560644091938520624885645727915843019052770624546481312611177996805532813452340006405985855395414001850879238759866813988335473399988069667147118519572044613206180909819295843193728828498359380849491047871858674625956622025720182088597765484189302529497731090952676311444077247508148738046916576725841966945550994469918759721850408431886059035768592721799909732152920975462111646113442583590897265986156252493690626395758216681098363598052300753179002009568112067023091363082397255847372373075108021141772379013347087422319908452051388998734331305166301171597204342228754619109262172742964371614062537402028573597721543023883079999702435981808192434448205222835180066750792973789420212667245519636763388971112695003233791383536485382354004324599155804601542260448120646852540085544217340796776063969675003596838401297970470039283670728213542669400797568049869046361813186624310261159337008233986193784722160056097538111959740723985251874693020842472487467017576851525908626908433974152738203160473034639941021523271955531362263602187250454065290253898124584735322168991468956724580203559501449879009655820573306475391870830426781594263404913609867532091401279261501896129576816411284570417491238018800535137091219467162869748423104900691347657697886851623597909887265669090248575606919694703178716656479560210858505912166952844945649866027084018199270218811268559180299222778472023659927548230254039689584712725427649202899869565825133788434614179895263799848290363077782523952976339003649493199488896330791007927456317741408294293688585095120386495460133946260544953155972046636573415327645175037333168245322074777358102607379147156676717309275469044268110210013799674264298756181635142215493565568062292631835641248713344156559044757094194724918482430104581788107835818187654919360582772758469296604526802913035491733236085639162885005402434986618509534637621532890723479990695010033541027730257065102175763691286658926417668618409853255378637671386695164681816549608439722407119089458140345834159877036450520891099262746631015804457009490953246123487637169676492994537324759985881188648661033352490521621384257732532177790428855428595493606201016125381710511354712184403935991833853295164359353073568645544860303109906475459860443113956916010482803253410059416549268539568404223815421794978198188191521637866824361089479571324289295006389693229864314230307744665896916989885761926313770413723731686046191687471513530587099209386697550198499194152409924643041100636034320021516435216098528473609917063971544598944103168812205489460297424764623584232860374737983246944125563666017656797834038662469879003984488605038950357295865697016178312766086411165554210374390249843941910641995898610121257697161894125370750015618142984689268523939665366657168999832748823699657913346489215819128792276768225457737253490525350453578300396217810778019121775585141672546647140712637436237130233102623307249856404206423497616250500041583295148424477010523372472158973709999700025186151079643404565225567733850256738067829284818745863484931698816979430758184100424686498952013274683315943290201142144441496495663852397649478167631315232971990607415256642952775999349057055775221620058517032355685152328375101688395549474535072867796708242679591421862360162152953037218565639145149853283480294844149019360642122854958463380892128673897504868300313041700245692385574841244230657391392007426395222703767263358199697217439292146381965100627790690051672464081549697372252900513666105792775469156782834277512340741911228173418413280707604087598774439161483419533672980260752051081924160009969253832624271014321739167501726300043911646710650829383591570384903934164084473447016310180362302177035195303228823873182768655540498422339081996241446734292293434664347171455056867175432213335920993389178424968084509564605751575913937895923036251317391857474411707191786942404889761616629229812369002342404980952550296484571343556842052385529190282529490717885936254645648393356271334440418403075126697300057366058908571627063596360859685474454656515481802933481984080853046607259118092491980344196393252556297228571222874182963565575657244489681934175281138368275485177093349135463394386819727191299788295886398044417323239460204380621185094428349022138793889596099745365802901936471276331143902147733427012022063896837202985080141072372276705945466581090352991128636533372276437711770923074700381350322906527669415761579302281787911712671748683838988353858763614068504489827536138010189551345075695040146472759549038140940776828712769766058315026100405207240832382904994712335802680130668219639321256660802266662531425253011641255909920250305564905202926682434006287864454538990331440557957188332610301142902145720841802753569747738817592032824883287625191804571503888267749218584004779348651038114247837344621625828766433550321367299163450976987381288859340193999667428478908780262479743859656005334517150160057904405152186647807611668576178793405931693505117830916021743760917880878932056782153551248234665234451487814423392567520266650467936846019491076452040801193092433180887853817345365032005325467926190463952733020596690288447461454877643084880184566297658724882067931082408394505215238558752554637103467093832451040453169440654135471411954314278022344012430582872428361106975396818650948624376034965817086166802203228651835909723861105863588701276483508719035534459743850263685815257258051839719154787115299805606720834909623681136347306009817670336313951819241558018587537002268066774356097819639487615631717661339305726303150670303222500726759904852220293201327972504481711154723787784151779681466945107847453717544312866264978687800566037607253310461086049217656363201541056774378801537643164919781625317408494488318662324590176742577458928423827514452958448655984758284359175145929437838407153619983405876628908895774543515785274026056211306646511167793209484443913365761894057845563797470590137216557060487211847806993505099273758385296524686833464255189059647567611864207416045509430262820279016429626262539226412276909308939688996176839392217573539849169127892452937209175515240736827066707279372993769436255247844438198413147524378594247863753767275310671177853865383718954752994120200538974520371580875280418865205147133060290787312266678832293337087757527489992603535318009304303754842183779383910507209581759940009370991400944661236052178605051021434859400231601124424328243077971990248724750560608317571664799821314115329303429305102781522227913376577450429101506785991407764455642657415085970636268270934347670769541829196567031213990596150789153464102835527926924818937796296979281924484047331712435681970751295479416313884168339573378696052292614255401856938170401580552933876211065766241055098816057296156541377074578686097905497705869544177831640140226990594965067070480306750929539830795050434159352014503693557968349941300178354968309315788685782842745817596860457865155176260590641728145070145003442879613618182903136932741125410134255475870984434702744615561284621404831942579366353102846928251773473753293019519566006189506624754629713519659760989521600774199822419406910359554223152062077106867503262439668873426740739230053373110253845085685704177941407822552295034830550741527974783570864934050739018069362891564809615645582139733988180431840418938779386491076309423358655372783709957680746072900870934071033564244213094213665005985227803409342112594268846127202385495490491041460898780022819867228025222276375160312313309586390364283677675865752982628620166403677579045325104457344140585060861694893788346742843784369208230414487758864338115195309521031743686885813969897174211022156411881690094404549029056789835893979649254375996810780863279121744645999333632109670824762345589249409789176824421620176006378086901149899760307127194278538791579580255655191521730363320385453863428662334097537051786641147535034829796976592447836152620387461269027754938012115673372201248462393649034845324876125822631785274172242980500636681801756246066641796493496022724832825402838220147490891619025079563079451563013476992658219756694610663920526462948742629840857616652082715757908135800028858610678849928831435286129151887896009728912592432169941562745701215461590943844876260472590017185208556713916966639081484102028873294618650325230197367629427439260927254200925910192161385795617866279673794706463440387786984301091207023671187335865342832508241094658081831195041242603110249007486492514185455469054376657954534632143330122055383207815682968179894476056834366054568841212611534936288388199377730829303092460192543397481351115601286561016241195170256390802482549780371212045291506982344080446382494282690380457253826525348796285018934638974268731025061349985153566602722464398709697486064198818168016403817783279993062833747113817994958755215593347334288463500719334669467640919868855191991892182664893798349371526677003383634581633806023441317177441556288063220263431850406150970112647136996369431284441441183484778129989795234539421121448948373009310897394534132292333723064657699428573436370256284654481315212208635221184405568803429530572636948995525863553998526038094095458296971547029556782655601086221663638788969873112514347463601652901585513820182528239524583845360228107756562307516440974039767692105978556985336045278401425899995880014399829707514037893348617667137425515997470527318357414864890225014074548435771538185290546471650791338611481472042859577022170283932880414240900500251476419047459324610278532831644775245664732709806119072156167668689850094200539380704327523584037804956840129814031900082534786596110765641513052253998652171934989216184737659589459918956585246347311816944188529370535549960242100925576187402608477115022175334872284428447481534855601868704226365465586293106831193001237837939345138774524538885179591288908046018601737562506421323613214926548703666243762866445434822586698863222323145104576050447110632507928821359353906777022452784926751333650773436773000164647982764847988041831283058400290817171499399498386201642652845616371424534083321524781444272403487674350785461771082959654320865005355683435173744164883897626801079925460808953865130206266564819767869195749091240108862594360504140084692164927733235646413494316874969498294864735094446249874802297702766780138299139376947003397573404443348201974694825809565085783928276199727457967213301315610398069510645318712791938924555546597144804124349981577498292506252956390008455149033734337887398840577900596130816094758859935520743111840599425338487273759758767852265923956922681221760998773672333916272343797602325831975113583759779545592832646313508475282084695774053812846907256279293690519651934021619364881143923721994440312865549874417277918642827851998761692071577918269386442149472549128745146193611304263888864984660674363243218030270584900155044468450927855518249297361723139408000474043016369785009383926696065128455963274447474591030984585131996000097620341728124869925726667035723854724330991596944160747007704903073543877788653911686844167674515581356021467100654336644294000612555547831211550120948929792542164638893962273276433163038407592476913278082100294211720373079603411381930491806942160350507321580479414972398771474404157230302272276758725197173226016715784186788379800009707637540190225049200429080687258368326909092333554893624134263206076917687832551075814377104786363156240532963847482551035805699124525225440341247759714285771668766491335457442683284221010414824313271984662774042813790474633343703050140704993916717608376297394827626673819065065228513438932544375291958485746596441299821878576101665169565115673856980757502559449429361998703526303922109185099381727316489581436757942081966553574722655419871161968328985315734307592723604039594044612006002866128410491950569147107915796919291419793572522628942271651656249295305314006450230230929307856551154690341220396135431641060790561424720912265002283773608833749451383552614928851120531335854751503033559882542399468681662284255082182060792750256427734565837599643798745704122672142640230319654997247081902274112674250296307491608594578703909792111285215815339525470299235838370424761036676690026271982428521678637412218828079417076243848214222516857441833568453773124898604586772287890306940072110024924097936164472558176866258109187921738401702124401678702727279654128460720371306739047890725414330661272694618515888774168842612312112444868372692833728826290093293561965020585018857502938600743437012823224983355968024823323643571616448923158101744299131736983921325030387858667860823175060492739483674226443485178822596911462061321463472838169054385915477614002796750447843584001074351202184215686414440347163835325827614184996016929419971947926787112509784876712909714658528607238389403029944531389514630494650827845444285034111286916301792141642480376240803663153027743292638012816959341745670677615506640997668423591178889647542189967480353292977359165317909593636802863498006508718689363352496462610133319510023521717324939211177774807973277799075497111956875098118368713956556652904198334858478025356811282148053749533473527311096433965791266399088385162844164617331499254684566367090965029672102668229005451050313575774831563036718614574453936977634973130399474290192373957252409917822687366885522665322641651986794162192481128563379317320492107471309396818096971534488579554234106350978041264899350148536186812878550636082729918487454822043850633114119508535990805089316547408962756159417399913670111110357836197007010806359106238041648696058842533380423832180583483569666010470151041580733641408204326705078357976010731322766014424363347016054462121631448276615439227293035238533786569535941553796139342063568924576909716706864395740747690032270264721877143503582653694773013172778632867664351880910685082118438409958548275718684710556910105044971468443135908501176082196399340618988638020585003229618693062414547204392407646655934198939719356694255468574692424904890420334645009220414105914559332069014949094836605066276608491773590739763750269749253174542327873292712555652028699959493409024574044866456361868428600025584107090275210528510025654792179550815126355886166469667845918939220213426493169220387996066783919773508644480350044179499002851791005536313493535267592068328008459278093297909071320106321515605540113723576405240518397870510368480480740195201310146741020203628084173770407053234212549403998996273689089102331739381027289697464816587276865654032302267961883762555504345352791391325801348911399214318896889837397194632804377920792815665682802046965322418138697394781640578919569826176457731898077061013949975873780683749614119926135471661379010126871755871785501282358555960485021512642942551292611376333861703459032352258554959444531328708718707301108629396275794928413505550124133975438648472205666961451004905674441928709985992162184189562362390142543599022364119783279624574970366423709283489340384268670869257881716384944038163746737963277607955625770218657748452871438334015004690766750028116867907416148855496253817057654782786169533627817222124765844783907497279661279377231399114953785320700665063068800719801334421748261702495281465517185932203182761604312756821012807906520526895321432965442247658299215153748652941519555082803927910074825298735283115552305670295882049346312210652626302187683998396189496533094202163852822105958246472680657397081531319411790725484760823580770996643994671610787833112454205149728594492971148903407288252972696441504972534838292683471288694790810757371362310093535780031506790088077148672599983764883394714050386786763200979536581791260392134832194222169136962186966725140342030451376951801860070817251697941623616626135503215956895962357979718154175438241535199457961435700292726633361318820482253730382243742248035306482815396972904170550387261999984473093542043188879529312932993095079639317382044932055259875589324745138760423353030472209711634164295375698761947854705513123482082587794974040839829282817649134571595188036738149843264187049042194455949622862758999195908575281454233384471354675363336426311909972333551450629036204159697872958113995515708507788663306204152397268332855968463989294842688639226812996362743904876868863856545873396056672533487566370093876594739945491251480628862800355046068812262245326562880409391001569165295208612559255359425573330648163759171441406706767824210910987244517385239091788850855224566308380106616682901571079480574877217860197748645522950379867882458668202314634657799881298656180085042331713754514874713796790222744754641272977634222486574656401353537790311098698104391953929942571100602426953643163367934504822818960361847265249261085716952251354817713715060631897137865831979739664968861071201602011520710423953813400425857322991529179077465432021860891915558180522640096098349527612019140536613082880828272393164889121416977653579901007970015048319314941872123163768968005442137316851022206234515571626416595435955003947266358546615528831163420243945268500202564730942230884192906529046493971728661715056059871823035937473995990545529612621831536272087256197933749581582381932248709484739771213570726735507703745299798340984928494003015722364075148012668411689226199199152168421345149598355512116535905455526638105967946104849772237439578645493541509899263924833627867740655543485380605973674604909272034433118177237478162487955472473365302931249766334123494345151639814942790251018061493203547888137864905426710362797079049795152570324223605812185060191695944290512922523651353111213494113460678415677127811952848014564487010910645155803232412541511814804428362385887366477620412349076220208332542516952462131358880254392603325602951959719322317882133798538661064837818267878019519902420581009858990760328560750571108812409406894927326080220112670465140855206750990866055789820274263478986282873908115658852928831097716929396062173929986109112822065840096291449356521600881314471390340708282236766315272004900860863435377184179374345135709489798938407034593831003406957645874755344067108966606521378205771888344202781732662487300303034799522960000120297125211668830670861933097091059732018189303555412944171995062574460050271269157506906450097546496248165163244918415128734895194992847152922988752671993348016858306921193027371688424839369519085458965884305367064033729554814470214097748533822132571961499470788367629337411110639636519406727465107178556587464783485877071496508537610197080338035042949936022793714087803305189385217343945253643036140284897105206197274831146347936485701152961074830522482129803641180309399218338122184133049271004048117199500400388611309970994143955776487705184050535644183071111772358024845502696593788142004098324915800951687432043546910590262260033908487553202119584322645079899282551603552051808196998425576657044139944713471816987650773576683121986622921657556530392984792783303218527237054574005453263050615388619059898287870310477868935185214212935302202853204076656990102057995918557592094790551709925352489852254202268368001986978255967533306354177413558210799471505461267716284038283137498352322819840602391598241789625650245193077177446086850187962326608427694616476352533460879959605777692050095312187877397546098107345900772307771475721488810993744951968163397037244760904076351341588095500621640391849125056347482687579187297900727039350890263821009774722777148366712674211263745973476999487946746446838626249763202055583717665606445876016558164463976383015933332905595351254013594141139745119211894371984781090702746940627343993457425081081575887602991645862803081331327442331976943375930815580956883603407989324916290839223644037369862864518243548822614789510352916102334796906262657860393950783117602612974147798993901434677304182844588735760872650660177336163206209800107752104031285409544209545618207949719006479143437483830151959023756912164791599920091260810178584205485801139251734571538391187096491270436252330469934363741843971981367084091654493195585312325419675521546089664268463538772776958823134981725797474537364580461811633385526342181078291955580593780693611485785611645009440259026340325032343073259073272672462404328544178546105880593970482885466764106911062146916463514852658080698934031285347894206819035703884725036110339730089054282771213253175852959477373306968735053306059791410642266822264594988688750855216595140621888108763242599838584067462927884126573375924219604096227806871068472308112173682768314084766255494874380949350281538983707378292673144384666032429897784192304477405596098807894544037769755172933154792522282419733365445109531297272040053321815665582646534265800277023467166392406458989606277907014393567442364776170226145364892045004649276062487294240283233864479702600546071622761305368372752354863348978310851955715497446150043436389018045019660854973448265692910627413692166944618712712097478232825600547638039715173164294382221199456616448602862225485925580120876467728134294490552311281997432100423761381372997641881210937848561083619463300044800349143677411715344520378223902611360784596186999967020358861690474166932728318992082051953297580373438349183088305345962686047174985740194189741209027300056415502406634078284219639891454176339593872779052737266313981600327700702804394691272479537705282529409852358941750961528898270544140761606056684604053334445718729584355635510000616843813010522516349877576907999649007610740984362094834298257227394952414405093585416500866022022203674371547562513686783417405474519325588942522786297760015217706850035265253889568093919631706001324328756625662767725752524195802874139756444519042163366782685443879961287856601838846734991355673467315648718770362630524806534722556960043060043548942254579601632106137454539135729280074267690654861786706942389272937025668559542478765233558956065574712130156947866755643542476962057136326249450307812519834016803515749306420605579494890919474485822822197300746387090132901305016640199434025203935261197344665477418734098416955620129151948857116862762978977118171401027429605442348675901882346558062727300133600296602019993174839088892585581763986769658062911280239564148802470143544427360668355548325897388086883889476831961197609447225415885882605473505139843678891287291545999055572087669723432520785036668765825756980064454480463300396720380904539878466630903492089359114846800507382862927023314197034481143569364173195636583334471116872198636726428707519900380998179408560826405159169277362284427074179654011135240243621114138611293351734556590705729533773656084625457056841321242359547268605378900501584757459838584034743894013436193796927338713660676619883056551184212866315689984066774726944644971212237695376901283191346824861320127401192676208023440799194683177695957753758191892880574625585715307843429782529416720764849842578073034450997706616776841342344615037570151291141221523073874515428951245673220018432500909604486241836023605213398475371554146096252612392748444226194872507453874522847664421626801715236478169169717815342030774942953469903617562858102761569254686815168218126448100463027841767445921207442273635997349322224678671378473016629521779518554276959222006774614385695548924369665105168551403613965996223061749647851912505515755285556517983562052073080810463350246318513093206685581012762138964936642856295779037950610685170082741452663557275594187802951075191707813932262837918847920103448155350018574715149242791941093889338071634797133310821683282901532392119428149222778715245235921914510389561569508899579557367569843026700802650153199786270315126227609948990130868151548545130995627417301836139405032486794599027701790631567955718382499037150180618770716076695340798634126249420537668376541910014815028149541422221394804936795315842233156101405855904221521981869205827476194997440593193415466208833134492752403080540168413449897580011934492951953257653928029724288835201514069336617499401490314573864283219360480372503439718288904819911065341135073911821735678537407355073707019054864844080255309584996725081549701076291686015391326080816488453860077210133142529633824736039163019099131824500311275148123193751959641852687856276336918921375520588554693093902398529934685778067623773225636568521275756574206509834597731036575822032768268603619320156855614699181028181539087658094420272591636411776955406822642781408422160631890886897269815609025516743694375536808281099442958833152647208463399155434344940970651499332712439940589330134325665967286828273475729736593792933620517625021611531798158573753993991777354022619678641693150114789577489701969719745977385570197125351738374340856867680400697160850220460078676480255949354482503534528109736507222781006777304539269744859036517336570125230294356531376033821541465592409099685845054899493847410956310491628327130468222777960428346404642874142863067236867376755156836249457233201089330419627113251441789092093165146875824317758486044539849134770664113503050710293524367064662120561165002383364384618004283642909781129972447134764490080304718748950335908654346063335887853746296646054875963698452405429430005008541309760489127390277157637834604507901583844387731827958146912193382865185082007698825522116396552546199453402913573660014348162157644411141212348869262270396164024866502407192477582619950889847926409817713282624999977960755126627263013389071708545303088872097013272055354126039091772800383922873276418659072057303687333568737399339135419251547148598974139239705481266484079554114013968211416260114656633052032542531400661660354589238593913086387450353563566519897706152420673092621995191844927349656806277123894212457913032586485759620488616545904732216407350932662942360875729019467214753358129446989530297237985039571635819783972687612581651003260452733536667882084817268065546768328779209464865739677812294267454577818501125757051489790154874251350241203942926117630488785198521502323777747350370829372384403393606107318163381956036402222813577389485089275898568186578293887944167309197709130945074291414682742285335874394029096226582247458213679996013933283283412933618031482161497342858236071821329811554587724886829320549947856392892460426173909493419675340566102958576716904348312693027327110758953991122750588038089068641919263796888799633492797358173048537098003509888174522433595630598065081884022770541761949673947662920825692068145496098874845065542967981343555114315225803630395680066685845049539294394314272381551589480694845301729196058229370259841949490641264449267551067262997834765740479455434665018396235911670198802333348311539876362698651673107867315638597873269140847388797495424645414657684766064418638677031020266851771728093104453350025661657227807176913049658226051110558048722614938484387191172435101553229884780443508417546995415569226855689058709720986201458109765952433071341939663146489552635719922624006812372823368408200512858378748448151583881471305123016831986577588613446291134990032429349280838391522538767233728637120777796958222203931491583986166569743932562592496250564282127199177291533367669586543545465746298411703394658405089880160852001766943026418208947449060705679093158703986115346688527745155827253985395199249073476293233428387470025182988454920120897415679113140386520325633355783542503569518434985832357497848048012703260966810238685270152090410777606886298002245777337219991158951234490507604367036487215518314696190361699142812738053518514291141620769191101584940118955357994582452477247900949580614066115134955602881355434749622464144804566296739780927389463645903545717675484185201766882593248667790442499300158133634710921208454857922236559864045487410451904043155793911269623929645128106789995843124181168488639597535230874605221369244312409953712020285285145912085363961871664727292619305818365903690604544275820310912540406523450725204749254723162700517881159492683785660930641884009873494087800788636592558728437370903672357570808049643775672511851877413314042799557653606813794929588439265275290909002661665108973692455066538956027497882989630630780355025481459606368259797323874620236771344104558956232698241346634659955998952183426266494147493018290519684558409648244408090210495023972747729848224593755269729291670470668016445621367821053269648685285775480800798202642937805691835947001970839476125295168698430846325271353285672730574232123693918688974455384755763251070974289889512688088503785155434818140399699698817537409744677296241086340890905674873138448323726805710105512284504404013300232746878003190267478719867167462148680941970005736785707893703741166278394635889096061224662882501815191796860067224426785824279641438275235981607613790627064723892917128649905923508062790913081415944524416305287137155475342312391177562365053131826073933351369914437630806712627846206633154473822829143245810002735061432885743278884612362750722443770447292684701614264943234340122807184212997663005814224195868171605753114590122797791082442353042277953478107501814769446611618766936888245037611775665035383662842804286374922054359716752690258072814531938830736320971623220721775560065403499768255444159902064433586615205669421154639587731439772538798989533610197409892968919234656634243985058635835661446775349560621135750409162279828051008467448606668585431551323611954063635833083633924254972858907098579256339901137450098119673981705778310395490470092047425715120598203291324850793887701210224421035041141432528947178368044203249217079589864549688195435593620231474884026707597213158737556158760479529283142396054862032155215544717193567620344739631740264434657007928027908733950119627468699964016487773394187321832128564748218611515495077190495560716242303216987736231930727658721684244651452800308926079453291019817161875554923083057178320506022784579789266447449198105421768169938264220843198802683614047935749084972184285758239007521578211175588240746553637801176797241296207387015773979151807841061206068341850501390480145428225502125676094090590634589004707907539152741046059448079376095860141696762320297408825090517036086300142853349291057373860279227070182993637510311651723505714857830225893264917604461027709238121430886028178134796366083708442389758264904960557703625619202694033487328027458577409976650166225178393462363357689924776486346679166594852569308849633853997179862924714989108947197154829423911372437102812201855644298083712703345215449383227324092835917586874956402351053196076551655888566812582076461845475330671472718175531672463499174941408906941453660862534020607111493408987479856632834510950868242264570237854610928972499070551036208449740016026138861734684084822625936805254493049843649468427653848527519876756390381764763389214206252061476556147942956625471773393714314308627539724545048464892596048495779900682964260416238213629812279492447234158409238210808644011758296612124129429580525985811812736352464482256660486080217155590451014258294190282056098854995223416853406883812082372536575133695652849755112543904889111220046029243178901490869002650632793322221615388504696052073448046143669102430239203322417624637684282960276843050942935464558157752097180425947397760027850812936744550031368869757324305119996765718642444332746561932969647073279230945804352576021724427291074717816727890192055807302228177043894614819356673315655700439782582673859929071115685483180944417859577725513038355602129921352735433984151399082151911479889755351507195580997795547071093879857500992164605674614363559050251536157757054468548877953471315190304305770470237229097052223522498328025344550640744168066567763402968467272671659786637759578764681220575206097763748131224974898284824305325734649924797574278752072109222263611904392722922924875861422566542665262736523596171408245986189388870801828772423392463215154019680286962312020425322996647552835775357351138272017215239469745166665521654943633552357671610106930807322726852297322092890792684296527125629771241746029585045001700879436660132895564478045509857422367484302402932280652197961196670365580115483487368806097728744670488573746848093891953076170788177593481269713133717249496362381821470143663820277379215974557883919179708403513215760933853856090302421581018844349952803475678664884687414701469124001152096146802892115282411096572934147405020520077246217614052526394935905282002504078809468510442274037573893773291383347277712688276099333685215912080496563996334433552320600506226651223435633806329165340988281187209864688471313585374206352549415042907034575558435366319398949597826651413428911276471934734173199217080520702075996967682252337589091689668976870171673226393317087892654646171187601709430301880051872399205458217041041747927323801684499975945553624033056612529163336861639457334432731799004640986744806986289182192002715582082691538996175044061036667087346948356644896815925338859914352553746594546570607117566321842716030979148631738771263420965854030043781955179114085613944666426779890469464533493574553957117583482530878042887036520153300526604106199899724716685188006203797976279844129838238635326697749583060131130536847785654315346778593639928347040969719059219402871194171570031810551963409425266904340121706276983733002031488435862082202825661507750608100435927959347183110614614416826086273319940049377153602960032459571536625967554844346077620347765168930824805961913724100976062971155815112656767195656551603091070429446609908319916410638134626780068882965208058825152424923574660089256725401789896025932957167523184913976973682292031631778480632419231754928786823933184668282971477664930986226318882186410765119370831071653331623642196537990347826866256323668552026673625715951246891689856799351751012359593753020505248330899617118100801591856978870034604921845573941993023814583522588331996368043772420919630762730519103527960506894447321621252946427868221141205279307133046058070775356938187318656080070559149295338195740112043490850313394383730114171116285143196024543553946523352503211037684626876444378296626376206687318939699507855899447903694141898393014128143952800829138306312506397226638796925386243606186610333783026426094754551553172875738364738626739417034932218512238259133089167911585890565757430044935272098637884250261196174264806030218003258676763872317753748220249202533452526250651605704267431645478549701501543298592647126540415935844944328761586980842569591533415013329580887416003382653803630186326016778100027680084498637778882229832576788324222064212414565455679680372172682612591390681789471204728719007022450177981928309699676756529946435956561966776081588332482375061804487642752525891617184959419020534837959044648018067346607497102422832745878183959948441501724426250885451056969087572190285619972916988808096500082662195883697025929576216867299869154174071420569776442539769475182790552373864679778769942615453937863867721969970850450720178953626237260360803610475067586929711847236056192826706331990511333580008362660484979536912740075351712069944773828082708023390841149267717966805512370405374774092054455494483951579978391522000307028112311134644638390698931347824547401176290072789626939912950515267225465425762162137585285969488541039365245134416713783593017999166467688292487369215723409315295831330857158307894470987986823312637189604316797071881131490266371745308638553160809507802155644023923900206168525882449893583200923780827413764159271484704688538430305291198482692701724625293483726431135745072605566394210898861718583170046589177220630694266594847258318454065729359158113317598422155622680083293694105871007624872016740761591627101888760347876056921757708789161588371052271301734472467277974976650508483969364219703568203993713860629535664615889123770159146182635856694353377385068516669595286753452890950511436206502400561267289488054555338510525239187878544948549405414999581890431658354018773949796133952867825862603489173740456416658329442821065065014936774371744192368258678866148371051677240107295892389191395459138571021213513048503667033321553196962054432571412614624075334494715160195031719440016966186340999609441229538762774011309632940739822222897757413460905892746500679788373948161010908538320814660924814475438562901046376389952187320604459486314497821720476874693084184047576370307779006869681809319339769192416178608524216860632350949585137169074325879121670383965742852403841742589510452442044082009310443932716034840039367009885627838842091783180109656303072448667897500245803121077726658198059607766307984712115842637659052147479078014123807907065745689971867066409142941540721182141171575399563637513954794027753187350004242631530298101593322284066988222332771166496327653387307440433920210293728388749985039934714420232284712031181855265557118334536836875552440978905939628575704681605570585373785102531487817645968344280535669304136616425208646909595343547816933303957163880815065961278146148194871520157894317747133690744672939260441281741071954385707610634272153406472965985947603528120748791830098053032866748311231197477536980564058394983335592363916422316892879293240826370399473309103671099768225512044060171012810131963822461858234777457204468471406939818417135525419911635983042837367780391368941918755190525096641534213015535396241557066431051699653046686839101784179910342086677978367972761053482480908041849083078457274359008374746724548331711492267763861999452861699466325011735306982391640872083574268184902816066325934244923039752262653937690169948483421289749779012047734230201636679190713015592441842452473970042016430706234819287783799235806046744294769795215141885027396266076082073123818599844726185424445155695107766787989327185512114554539670352320480983372036107623664287263353251551007960778175588402126424892665837768344183860105094618716689847041123432941279935995334591616982071479392925886910340880434663571085013671244826630588027755775132424715323463078289513224693138040082204845825642393862178985527288545793280671543451250934060230111120052455679477780176605390985180117933621261428900287816399618049080761544890545683829324920257089554977835051658103199383940587209762766090280311826384081566964832598119320185498984103660545490249141692674109716642511682061146350867544126004392667334579048004833804174350960822960913642473417761942247777718052148850844958762167892496940496824398988785152629400900641981494282652295402967334954652776862906788593198855119869518872795448743319947213602102711047663055185038560019218549995829082124456826816188321412837604435181503009792412079634973362114703925756038530341833430470716498112028816740187685185411436647840930459017209875028011630728885780586994792578669366999585387705989916688050476027398972419303546360475448033369196065399979819907479903697773944197293143432835104064059285832192674708927184669114308542874364833594942806864292045573978708556609353613603723899722793272521442514585844456217117302533924666456124931608426540606987580921424463459301923678368773577306552539768037238617916691802902565057227784866848176591225031494950293564512034305589299638951286390744714855483710962977429984913797575103948931218950526957177962281123836936638842960519756265680342579744701522109491122602828593866459746442942045159873471845551606275238262717057758927460215755638036746688192852598048126939288208978321111558006218392322327090359498193812460978802249367053376506883668090456966656293792059046090627431201806221278554916775974752720617625294175898792393918050288622094068579231359770868700539553515312673565153833169218016296584169289523318132552400057088168181410126036012726509390776778907254698578342370479504678337666094642961408562554489814234453801673602632586364423108927034712888101212413823440169876492448578376206477624772189548232598579372610762315153947770903494128831605855242301091884863007295994284725035306735708868664633298905177421007829681295592469161790697447240706644850813079170486545132590142771887659082415725234422199362302944182302555848124388933700586052997329244785251058903431854846608695030165166612584375471970217278336178106969215062408074346883788948023032898884750012858071394470194849031069549761839071069968391402061033393938750004433693276657413962704999469757097160068375713453187385434866873092185167156182544357946696997454072190210852578296384665564945047081284195878250934938352798168220148458375629042123833625255930449144148357636421435324887352523303774048320251972041446364930697242937148083601262520109597258550808341862623305394920368839970714442310586269888080940174374818646767824636747182844751178048976510103796097708596519320021389596221091810860479551726293914112649812650026810640173094419192187027821681959915037775111581386980536775515537581464710529004392532973348895515182166599410666387835885273319750004710420906652350342373240085860550086143885397642170573485922353660992244640959181581350450998618382455262132211698928324332398226736129443228060221111550088017163570890076918317344868222560475012912202916206289993945259399389129935822367572318579743138300698275527871166809163049605514807004309629272584626840614822218029960772000252200769740898791727670850750777474303167928135129094632562334744368950019330842570356072554856883670709572955083516795369182016595849998354748579949086014813799923674809325849089068573533273327016000744208105915717460394199393140822578999959857640913513202524194276800400397821755288179768413136577074457337337821765240547673492866021164007614338421890348554526825035868573596061337620822664419336937906214637628905805439033988625486164420843421142918939526413073719592376854580136269026955264480468428874082045590185077439079651843947347494802172092784775825890926273991757508279857853480724424599271274875016816424733560296849954426066172418018952502911800962114827623377350651137105574380187140487173462021936171412069199958744328331388284626891773201364932646340720186533622860758893132050847137825939885398404057367367368539603700189681086565165097484934034023415032423864903396001978238912136014042552380886888782557968406421949574129513132102007106171663712614816320732337824324815310534077936201011836118703147904486464505936550490558221489069702527994366361681421681886677882232235592198996124045126155763890120207210530727843634624183350965496806377027264893635510659874550738178551462410196715119629049420037865793109437046504172452619519344865232482285340665847170541352118107374935277821377100854678781724871495702710935769776840019943593187360710111389368455544582249869028231035018685030341668622894673218892988949049423087908887860149868227848849060732751265096676769629740746162478068040055326990910538427321879627910852486454335885824710579433832981188961980178706787729760070549873271881784092550918145101621806928322611595774132834901333271377268408883992904876877488783764986797095753807178742770984765739290123299337765533714755743513395463053576028336351260424153129330307174599743113918454279518559547786340423482755153436557884296006596166450960981201399688180780557753978151759751564681976084653408498095633483813740206541604287261667288207381497794350718842046895359992923825185160731274383231330191806230052223176754367272469903033002856355625006325790699573749262153496910716644588614784634852455862280777005817383883762147299129120895049219346011654395640194426850946750308079175694715647835643114926420860220871197771069054841587364413009268560009135424383559653787598375209005964936880827066440670756388240461081726425907077310996650247161630199535164714455790554831102111311504359509870509276067242480972547985828086183754823090091409856218754473507442587292585205943483510611603042282109880363553877881474274184207905589326636331295072108617354585231812083953054869152771606159347061779506058827447607254668372687342072851423631930011251344217674440036578801971604311582393449288572835538230496555729241885297460817535863724462598250168845490145980502902092632835179089611971771633007129836180638440846264221325321915721287352031929899425090614261084797773126965704036958239740397597680923648463458210889498392947452015804058249921495405997211738878589050933812765286018019475049017789171456259116979427684662990858576357586070917532617979535295425244529171906302684692639982172413446993687737564477941931014252230351004710237744239860315409790624813023663720522335800165522702168373156171649276964672858314594360963208390382374206849804879158291227635266174125015818241114550802889952761780212683315833533993515580049393762816454939052509791844736676392540000069213421488432968793716544284579125075163125862955709598404146768111362429592513595208953349131840839135786660892543237554722064720124404239070902432732463661400136933528979966040469391230050365969184261773375216813445770988398564990406599458337604106391029239007402241549030357922340612711969041783519465005377638719586555982031716912048247654888510891365904455293252708335957567015277564180392651983557398246169352959712803318607011348663158345669403591290993318229437881633769907962608838350156410869692430270154028994280102890346105190670530975164365624512210892336122895324920239858896778534365766871949108112039191613239722370955571786855000812085831621569088720282878397403908187554509959502124905166838590270343214478719956738033111479833354041447067796976154295374888343841720531339379247044056801747921108091266747692740886406793184620945570091286454440931783507984883356268881388820667655793049223824669089643121366503347964139587479337489571142958200888032463694107496873263389029711697162624672148751726078441501354658019582774730311624135322228613776987204138197117991995252629637623236490742614782942234803296726477885266622391401134038801698851708670283822145269177460726298825734717834122228751107363528011161726150892944199328554878783121368417926549400759332402230196266812324533699608062682317830198141524362155563395278072165516872157122635617219617462741314573472139645866459085983709252328130447395051635832234579271395265077793415558263182098414929576130210342178701834099334128247790135939307169738142585259369360957777649363849394201425785727272641719031489491308755675866565301884637962349969141888199732643007896073517842863665255192764009147536396980728299248551939229956825283986445914327767249330702700192241177479359944355879220037222844218986545757113304220406036650685183108756415431610677570001128292174277626942551365612478903016017088846184657561970118959555489996196491010433638521981781802506270626747733537083063741505476797011775511208666262139047501614967071807866446986183572662226411621996891032733618802896081804179532515574222286667949182069049921235942911705723943071880489877183548785994228310717987966273605410495120910497417789880926188289483298319050283998248298751344391130389808688428015092970549635400678561271565794128455327494789601494147442690668730416763743027141785459756230911121035485360576194685604197872842360985752090967757711353932422208732439002930249422962268518828195166695208010133418124163127229459365532493832130882393176238655106094902848450967497680815695204768396516759670827351509264483394875838168910963296280064200042753017289032940568403139547684605194636294752890000459992171485844843272789255136520270250682387538575243054975993360414770201394453486789663653646445688767245636308785466003606161650804688365556093169652230251546549642667953975625941294960885048373326427318484865348369874030479682569715068715915955425163068079976271148094489312802732603590576062442866760737370109952274968354655573092929785303849479520518691591436286802191435906126481381075108724183307350133706643804471835434612259465911134402930417515889364213120804301208054661168101060849066761914382467894461809213313751479679787351918720100281367392102401006479152704902393547823328210360721392235833195980715104477216635194793763815224203237271112096976486969527116166828852828975798571228047721674374676569134303826396224047163238460463343602129111142872888528020774506808553331993820919725911080044336943388346252993743230288079281936359914686550690788507312668606233675084275399806983147417493738148594131487788771688634097429199552649761715188257461900098476470337893364669226118555011551736828524272167958093707779677202771056479349614202633948294490616468344078993505894453497383635486871726273632877373099082192194298704864838668385992215544575780754889095205654631892466900611668595446320903874840570085672948207700817156557989020836366886983504298037909232005418184980590321072099602145181071025327695634209104761652762903322634690202255532310117152073938626085060445195767607975635491885267771827666836662858491801888119384831572204972949424470722031290218269422387186371899416954757712651037464600096660367945397580469743377873247654885494221757131000511059514903392624604074912230153545634145796474950868468957586296748638887910196562508654320522433885963529719017941406536992004968076942843754167462080108090077967644770653827555422743788975537993158119560360918314268618049507076348809178739594447251361322771196065771159173134901619828497908780751860114017754689671968553001152120743846192734463441999919518594817220506029811200746947716409417306223010569742759850256105451615638908942055000779031404378992709698879958693532804094431068128423162081492448405731369701468851025453012208922981466533515252408190439326919517800472828703337016535672307675187134145979820233743378176877185250147893328767113181800860100769081972692030664294366211081845877010875923389830588353084188041603995828472430501722056477861421063667947681779851626174848575274989664882434516003652967896787314966006783319133853243828896288396463299102628360464632478242295524467395609364218839555506690187674172518803286587251071303823528127062775676151927983741565209111438062122151104493660908789962506592386715874698773331131864912814762477716501086156825362403613151025622728741506901055049347332807463466081156885752770509302393124199568297282851094730161878342573395786181418606999352797686584634310000689149514411533014099851063942494822858317507493663307480649751396266709149708086479490670409451120351929672564134390685257271844999194617414395267178288773087166085185237778877963862377839374048310955090037030713918679631493267579509742554676251129188349462870299616620984692379648333028364200418577653551531743974008100464966531914195122493288168307756381144466355103189729575410291331426671714211896963506763303790750888636078906251678802829538194889953702083836279725599392535387392198110775121110927841852153852325340878768731362895400613662484700468556082414902455028522814919366318782874361374010785327689924839408581652650065133166859769493218431114557217392564075135672425259844958575724302215080191634451365264881741992246026184936693264202779897897093003971098518920731137486045188727103282077474474037997013214085364744926795199637513776598556212015962248068859696716612764394509910122692587650473978650029610380112676733914504821304280015074593432282943212552809169469704067664029717564771508327520777150451501917620069972753024442528717052682537083442406348710459418640816018669174077950792090497506967388801820986158739179492665356920377803375585881099089519459428310616201101012398415511379336708770148063867996951557871675949923501425420535367755000508137170462542047128457586530035169473382862801287543258445584290413261008093409938248972822024389858022412252437028796365175608565194653148874469740671019054054684145975530976561956051518537995209916535108802001320148644102747775476755710003215345491172310513902579645074299921068912687038126221144001826305594459930595155428778227058609213821126570276792235431021452063341308437650109489774432231378776643589796187443518218828559390056087589573254080373773103377229866899370589033597261282129815073315579977212598094621644677043696485178638130152136217885981843558296337568778997154118798850755604868456342524560822451066329581208063077258049823788259258332889171487507728827481689204724975670585483936597807958408701280440841312719216691389438545314044992122625436611335487028965005180301338953009441390299840362374650127067719876891741128540947274775534134694484484938613080995296857184784597571674314403283047814619353495492925821097613824660481411441698087196080709616760344049275289118050228972242084026259786861356162172528302562379471511187618361841470692953317167798896399451450342189683356456314437368821223262194434010352355810729622208225068493914916176617090797685452508445299966154734366002978067365566308477438351220359416572131802971109560509687207906542343849892379937243304832105242666730421354454221205223754892750442744157858919643852612896129036095843022482061052392383414744795090175254963225979923423419521581752823302508799601270166677009692605978303542493791998846260273156784741222732530153680979867418476254392238222018144229342096811117712407208067890158683838730779444162155974199361693905156543283682838003530821428792996649041526402312549882441917331968022121369054171915517707595269976834244858413145517726105401422612086612188966648959590208696735204234033122108798981880483838922790342926545040470495905298366245232130004939067826167899172644436589403958297682234225011668913699648867381805636453760161465453389474119187645825750279242102845457992908389816099774308742730172604670897721972630297044517062669161949604718883334241968043905866715309972526946038357594163085355440137701435286253672320497182854420604085396431766466974845643175933917586546995650047846919885382942647370522499137899740990872225177432207668277569479530938814036056146591940471007046284125244949816092123178309182070556080820488220370991263050740205686445372132378291990052861106462007960980116545458178733891912128536285770469003952424033848689593330393345995249277643262156996452571771922868153838898498098894958948785135073738593418119056602095317907734541127759553300769312953833406627542025046616227487787621928409105195457319676874284080914842886322757773157406466957744285730140761363414648350809828961299376713978404985050126138800748443440007173819474484874268049582275513610157213044732205517824105866744960872911277643289266190814286926805579892806765956025552937340541569830625120036676606278411264061329778458079527079185930114953152243337125951066390478570406778131052054193706940812121798211281077112161000675320833249200556076688696525561414566903917755179838245314089908708508156172561761716321826563763699433832311674034718787328831787351056550258163324273910786895851325407968096009150749238119072795737774292516776893037275700887862688092502953337144797083070217434356691157192478389451038772754000139286618326155622727675896066770035496956501293598576900194454016293758677622020890495237907413752121390681619544788726979286425376433916977391567682815937298106748223127166979404956906211955876625703532849799972115844432183492896378703882575389702708082580894360071035401207647837044862521417061081218206806262949206572373904265095065705217676726038071791135529129599642548664535162748440836974210514478402863061784804518852196367135354834275929127555165867794184531608530101557372814386467070581779527440188607245323077320150628704611233613630669175681330187725271339939709440962679854298218513969552979198266458072375968406741806655412799653525439096848782568503937255905152039969073362305860549167738713914322495921049357831677725090400801644033286570978824007454191035520111069153828028281838113289472538558713533797535252788681826321255986806580399934076890639487237970960613562610635723843489484951774576425106455496059190089192297100479898976013845945582427845809795540440251531208337285095741616388266300556427341613901242749259943644376870587969694443137380942048873620465959897177326259587271092905425765870360237784523052330897442211462943130245248731586296483233046938263699843484145074547040942518927002885278264135501487286001341839450355867271445206269914336211786180240903952175899052652856199147437052911740664148396088345974089716132574831011424468313086995223178731157305101181804490498577662028877010163341727711526816116088087091710701362755799538955015196128718376935746451986115515642098381468598827122123737720589911431095118242229694166517580610373553799608519535628383341574542160541845383314317231265527551997588257357617630795343354896760692926606943960992873624453785417057704107287213717032313947634096605454221513203382587498068523050494422118101815334887634105995949135069466742925084944404175469948274199706412773115754566625826463277099734612801361525830935993353221626112627692689220843892604952960778019799103483952584901039264396547688028026795171505110826849236597932965487917740962757737975420625602728917894962873075104412574177472084602307022591788144725937610195382427271866222344477619374460955377692520248709866691213353642581082425677541945471527975608087018456388272214088102397345341841017577765546064533140530379208700517939052690222431802599801048445012861997657863724987014838360509790735302734264881365067348121231788928471977564198458544106191412616924315468842464647648522618447780023395814886600988011032785738976664067885838077191565490357361135396562481539003308946213558369339650841172014803210610029349350413240451783372451628417466731992760203665844540031662360039634050901541638536977414878317312664624866620532613464359399418923681772399685626774247707084491944246018909650720183509827174061907283755249142754542227975886779324081575847272033596066569332524420068941801571425623338445271132054588653005273283742971269252359752009342601478989455528507319637335808510965069419668087462864817765473656828708222119263943782206736663879922272399730197300039214310419204555365659275011641273588329432871542370145972569297760832183704990702881395233463694742970129036295928098294240732825385782510983080673156041697541547856593938872393198273658736657397108834636566140483845089244582070728818224431544376205557471381977878526434686966440311811632618320309803333582345162179974280041712716261138261934004313290487112279371350738593361914276923635140554115388510533029379683017222559409772973931945084102353045492256564922035149439080039812339796191991355646772828423736347847707848125045276338247481829614392353327811778506862744129778451754904674711192259025918517682631903249949000912257326961531511608614533731509563424957515520855003663601331615958025275040647302484401853574402190273004659492154025439240985147959494450851788044097984414797029427484927143699680179485786530941990136782248189546032980824601393017479034957362809318025280051735721258374629914762071163496734086823768476626670606193957668563679003302627838269915364382458875777697364973289336225397235854410475767084855743050609158098408620209327328448717177755215098078549883502573216166300746812517805321891032298681224799796831174450987371360112158193976895834457078940932442017690208256149413165157741254899916193049244031810673967469396379818260719735765515571167319818666974864101842060291427160264857582348764734653609597176675705775844473322516592721956525406920500495747748567536993735243486159261443463252301800549949867067570451132735732670845909122810709921168854010278213631384303350896669009890493261567816468747781766384724434006512358089764981123981014638886993693884495118785139040862513697254806041087936456640823071204799922846266006105327603698009942338839006385058398822627347182189382375092018569769280184421187664095382592681303150232349899685376012920024472572235461193018788015911737195339278056887594486145825021023983933228465043783364445292717217234529199337163209053189443180430777716587033116185301614223099902760959083527377598702810781445265763424407803654151000465906630189223880350298694963863309324185745660871021410063042920516930102846252332404519705702754000449302051646280448985237790174750659333439758826102675321647206764735319801258570152333227929039997746146641190997396976370551276652451636311842340701522705226428040615971497635753311777741013207319798291450478944256122193711229274715235061359904345189865928011670759426230731834497102540593525664783268348286749138737796999197616255947297608452524913823956543240837429240606161170369166985787408726398257465169224235357612748384271641972607622074240812404158635688891591343353410461430465426504799655567159112433269577327252460192289864425074874857620849592975176705681697117831207596812280907258691153065332521614005799982842502370511594215945220913693754045066795587576789647519835053679696904926958527533015863809070043953622851121803156317825802439643099178294468072471958655872722174441284348256763011416315678678889781636640337237708275313099676619112372434079254010069144261454730928817531655273105319655062567207090030403579242671686512045063181593395914179726258000583760567657634274661943094943685585191869550696493945762638866048109687028842211597648268484076577887599811660272577152002152630534946434674939296860848223207700636376297144936097270286782072832362603065829556114085921766561269415659347057584551757025176327343454568640741324290911913733377917145517636826103081182070842676694164408604183688550365052469724394415332054010315199629089771644561311931159167811370473582504472271882940906301633165813666520665718097631272197277800168667816827690346924487140741110722757917273279175656547928061572884456858859156374772855091454918117938723181198061594884747961946041842264847851808367377747818322877537789507075791105713030508231443192755967415026585980367368832747577241109567847779790626878600393794512838322946823223257603973253556640880894354716826741317364355815508142466967307316780575899573154363675110224797504173399922537915520909697344575425124726651583092073785824803337818389790011168278617038229139283389365988776985732520875048627039834948799650463618240815072003916897478718905179120707708297743413724190003269359473026336232902706394131672249882939973266618662419823582156963431549141282976608007055860869677508172648007393994795808766872948784807384780674916412214187004064934844706235370658568000058862510662255733162507672253028526724823141757682495757857365966997153375825128771912764549472671546398080991263644698514626240801568533598625878516830246523884803275255671599747274561588982582508270275411833509821609597760409602613915881495219863485173718036263134598678626249397147149412322705265444618429302143276719210615188387285553243159116005297332544584129874799677547611416623471038887281153478155392157296958748647033982250161664305679225420465057390780413949720803525574266175174811423426536713169936496121364871655851729210902625783050353396504629972473378403718860528165049726908056039914391442132868804081452081843050754191371751998051030198102893408317193089484402428914909061677768747368277411818842188793967983507726046408435220951755746703412596044240446116763223351606980896182204958339005115723548365668030287268054578994425522882993731112958075417975376868570798984857535452325057814400282178609720282396907221134362608939487387525003231222478187739038147633024966147077777250041474500211023867360611734926328545671651581530475250473380116518411191991190048956034690382374698605621014592683053960629536034293024989040377873987977658304776340161489486208108556456916401570738261206577713160247332634752870339756651719322590594454642523771130588209812568516953768782837155043142152783531249185126920908252575138808796226581924245962964119725544773373493707239257022046146974866908565093474097492289130311349207294389530893762357859027033573046126475673782208897629257074570841548130766423082188269720949169777393669965475765033994353300651918960838285988921256909306421033069604626895356812762175041742966775536756519140688103463479693284094918522038332455476142329979446064473201953713807510752905248144605683647282346960068356373887410712517966142665958607712410146876580575834333370958733657673668414457218812173793035662443003097331169660648668971211476248401886024047005232030999305380088507859144145923584470570748161955737348737102265666682002832352312171708792694124684875679218641333780869906765770198090954188790013689613452280223122925227695509190527776889814053623038925973151864184576536572513781628214867544095012907863905810529262906144273886871777459252970459247922735449687187668061423212394054694970731825191425549850033181608094965622840661674550444166518768841864744235697459625237088906163998733281091259332303966026827589764589370083229003965986115746343991566641566054837504218490819194955840630423704585071974512996744114193682900425492526892588187667090429954565417363510703753145166280757602127063303598259039594089514593644003776144667219071325649179163089679031127260363126760522414270659658972168595629224208762891953400645956399479781992723720152804024454934830798528410563821830564613534204145131021735738114224026979458158366776119630673584935575572942625336674605941569092815803816013547629823082177408844703453892239116779926333663549119070752317688285046636664867006155829836945296615826941327285165372297882637096043751730028640512697173255311811061685201378798577647019443025707190591594725102163212387510356408343338957860988918172424471110324065117928847371289050783918852557967011866906093670759262521289693612220467371957477431897048765948602540356983249263012096137236281699195176134255606222465187796747016749570064115614085859275391833618214824927935690684676495127602943213549013723872615293023145115666599254485659439815123858362329033050327435826675485869436111733203578278758845149731849296779945348938619640141470833299641949546035191446667782640334848618670044218324507622402868478852672880041701952261915297705314447725013551437418619321151498421238009076595815464831325944145949334998536184201626610507744923100800309386219792511972373403637146727982891414577629220262903935536333085769659113300669686944523747743369764138278977966518040810623948078142594912148066657747044152738003137856774519164600335722250416770298620230807505423808697985942343156799190376617836947611666453880491920567005507339872151213499649129609444656738051924841423951137344298620246067522939265411655484068372648080593042684836720072271405887996543425456348808959817172566856489144597150762720392837759172693308309057290654134937869597733518466007059893712791455731078397057981481386113469711280725059384000812610187618254984061013339038260503511520173963998299759292701541404437429011580563593045593050441141036096004417505199019737752966081515847517993901637068625486225101643044560693748244938021237595520186008354514699307249028449655402661068530585802425871249144946614494393146204366527756530159622810607048240446827504788887964155253720810843570533313921037380520147724477087920091403314186940951715096146312095893733275786080894445982486523411924555815197468798274040823228792800165411924763964110396883807787822536118543912139607745709083638448515764841894296691877380859238027150096302770219229863607180367975871083714066458195430943790425222918767240365838766066015671098197109194560810694340063837727006592739153950601516176537114829287461432468083253752264818461920880921283324805707927908052590666090991531818068570415486480261478231715275640944246707003548413821275777344590562149241572404425984978664220526513452301609777321330664899692885639078220316561453911743286918520697872150649277227005653644434705023274061164500932754192356524131127716453368833691800878645067784919568343146084984325702798320047116488754583680962427789759176368024590728396308508429380844335864117263982527930388640629639649056774408436427333916075878275503239151125044140450419621814757324350356093620718489223355672879830715770244485082975256563487028667912877371207609623331301844971819147055720709957223682470451240951797076488073593739929015686236249828230094993060855017570475236219350029652814950681296617129312768617928745146992659820358652525873086668021753853101438140375624799281325511620729716640609266455242831661232496470573039926201593608978221714602883732317818865996246307872672714338985336802080898141234921805433431491298135909275966060090337662725602001010059328815633264373737278165111312657938375282737675083168474957485253907489896153388705489333323856268331463444549031267756415850012506844351446356496042266486309375646837745034874002878371613665849978414692207623917838485641713352388780730147870680005495081652039452720053255962872941303368356249558889993203221275191361558164033629357945899131712121448266170487867952004415361037178278105223354251795244295179219000313551280900609041168660311416124636223270889180756907495456830791555011077719848684760441554107803647975427164169228249413999225323822705432719813549731130436560183711505321324517447264270340305843725384900042582401102260353228901379848214958222396020303401272699523303058916050944950426334772181247639065610382032387676422712474686051672878611822881271223021411204957755306035641826808560668311852791667269877386026201116296963170661005162730182050551704052777594055889505688493264879261282055463291394650236623034999357840651673168235495647665975377123531604913644677961602159271912810667755647560521765383128346576054087474779137773706582495585545573516182825493891944412749375314798938280830635321223475870462694756947431787381168850551752356164323332151215545594040039634420176110147682895103967817615580289241822170913537599016686305910183582677397598875973059291776660682676205200167105314069040360619770671304306895381630170389919610648562213890718482427406331620884114442101199400578605541913818786274825480351949112080062656730882821485053557703598349356790297983411044970369031601744021228794790361754081360784924969138474764319820399150896173598634954651290567271824515619545771431927903346244490458074772750508667620942951392290743774799724059867696480454941472849604854033858239258999028665718558759447174682987206085215511760229591290957244861394240618629064836802255913700739847488338802864648566618609191858061818858253903081560246180171981564562802314141421850498620318467274717347823016863143170950709159251755196094471557150093994752826283592910909006123552617900785629440609161917650681780837228351598063621203875855315072869574197951043594743125554809376251508264029337945457037665588176682049698664017372098593410099485063748406837819579171912194778774521870038396359892205953010888797215411133437971479935207868370165069368881418614721865486591864306042461278097722171685986591687416603098564159497484045967310083741242411633004709851754370676116764629724599633825256371312057073795253484925002069308651834279777769091964867547723757506408720896347351451498999593933711503141340648249481257091492930890550639909492835241917779213890067074952299189079577695410206022595050659043839458201713174549586709177713696503882241136221820030627405817381795304075903694516325617429381411155022995235440888025885611782017464258490498117659242441196695256237641365564862386743987699549042594048024898846282110044709218743023725301384352921824691719797345376994254551961264552477802950133082634726007483861931146005993631515640148130206227648448741088704823223692076940606514523487496421516613025132890994807621678652897834271983824557090321342059320550488185163487762746987467727875659365940709961226203243040967705999800149738300852521723565336782842439317139312190855387758295106532276250608947243369777853588229395173583055910669012351779027587928956951060084099581664355114482375280700952694755918081585186412596696878650642255759748553437241360790189994947820399868884791097965290804791578195702083883426468395361830074189297856041964163345827974085167515935939003589523506683002831742152290509059466946562169691732225212834048740467322998650037561954001908232577167627693661263786021850017900810980627079575386628639087232466754572785570298076987918326370345058997242766195097998959892774791869269762229776708718223759686574753793460296823676397605001044308547014435209731439452664521444526588738767929524495326006660668698880060346978543888664369242940925442083684683098338765458540184845361876928505388995071598399951503999638336167761900436215489311091052523861458057956195828480611053308751064008004570317780431384768981229816243952141262228080215498895308312029639234063114466567284249923998299038961371876963498636947385250271540158843389501831507632301760583567957354036953146936811233692350303165577702758486599764428830880150017904489046241108739080940893195580256360262055250772866576695770190944392083816421362944585039828357835290110190173802335482555370146526281737279748368027156043011726664341779130156304141638278090550449680032455805047993156895046127037525828471877468339296621385989259017934021203285968098326283710747527269367501998143677342492219567166713842731621096202919484781195246727790823354864410697631965447651989526705425083327539446227478428213353225729592223505181235202287511475617609691511925826640823192072440561795072841317809857293398155598326247532146527989252659154873498948723263700302853222218464320815782607556221904699718944530706199067251370999216723279694600378090554810572302602512436762608195872156449019765161667497347934592894120129002578146096621510205758554834584057093104982295474366160470334501500457482192902557221291568201975682054569553921922011517855331216408731232762013769206046587342821367095851266405108446410339964626160383617501525061575130246888496946893485098021292192026605553942850402571161664804248001534919939386096191404201321256067894137083396073893308778023942390736093113518647122425979705293541646539922688574578310507397878838071778255758683025065386002840408103309540465185040827522794816938260139387304089364753891153355944368752341964356125768402396373633129828945428223216698583020586182061491216513283565236434749156777015106490450715028341886261643040793574312363778804208302942208956266494291880958914802325211763321934929161502385038771795539336294971880556875977020950766730105718107855152280977467642518091997481908580119476792474059987244439947258854529996029143792798231205226086745981091414241363831537159111997946934081855449167152827696844876784623214579336258541114282566836822719476891212957421727583366996630405810605232904260106824777312467005253799623669638994291511947032482814265538248115405679821695795187942870637429235188931165845237221874554652271548506693696514447733033819837499861930426629187169709383699663154757084392466615140139163959412380948091448487954550410554978302931788166312412489409787705927426023850910921416693681985712180262637611335769954338403925570022754088404206619917113055148423661756370748271773006184016304638315491540302379550555247295548475301015307197716289638408701941140771554979943057540501742190985718125997767778809405261050689947687087319484649882512481157769269272730520383116921553276441003792722359551571471718403154465258098710627817312179625102240517499346099796350630569769908231303878175236182552933772552274984661365240754629097534738011810646806936804961305385111949571158961712104844679388051291603052911146321899666908918012380714836104578152493965244329482981060192354844247612816503754398205595217645880018135082941117160128610696004242137437431081678335909304810681710791024842300495627213232725398346168426735217382282332947479839656949149619068285487349700830031849664306805612027576739095605747581802797307848647097847695631533549527822670718537235882149375477070756743253791492983983502050721570755357724061149481949298718350368533515235448468024970793946353009020231921526497886876453822646386393075353713701713187867151156512688304863763871650726903785959079127778023583774053197218294199251761885973104451308438059385417408820442044005759268011846457462109166932075943403597685576371592466555606201796068877171353603181252533388264673684770901474607016645238213670381130853183266490067952232643476110428415246032996078822792466782619243594894406705212795627633432008859837856574345611002212300254324862956111210878091469713980352417472383765297031054387548369030836538002287178095481290901679474450665635417939996458456740927777626515328750022912227095988823596769040762621087697184852197064587965005644593322996710605854568431189477082557403906582242983830093019359759857070149897354221439594856810565796522477842749480392103079897487119760760021751797404462278303982356063276830376731357076875435174294847807257001097107477775126539313858443984219594909651819645697537505504935646106119791215449689250526525302351350878652221147991065268073445375312912425044570163063548514711142301095839508698973599650201527215133284790154434653138817570287134585527711248193848495779658303702605605711836477337152634428627315974594581521850957666202282638289209352458351771292858062926410617866408380301374314197194699882965411512145266265579123874365833076215723652085265992184785141881493574490863678232321956649108119423418186694280190219377188929807427721477528755572433095972339470296045489356344859784343580917459473320868504708490455898282450703057295068336451706546739412309751352262317858666906034625784902368415513324042049315059819883855564686849236507283288103633425988239303606501626885697343250950067969030827246654505735288771194974447158487409268974638782666019670786593653783152981827237867262568451201562346785970375494070206835817329289188400417127342682993413781649902725709852261979476640290387511360695582626440901440445050978069644096439605483918669782926273688518763483439240262352899702949931708946917059606863931087632492264033114577223548228409881427799858991729730540537432645989767816240832017843009975117483980097320569856210671565341849937476128182744411198570427724721179114990092103748078010186824093360696616003044935608286658733145140599748419992298836362057710144590186805020559838301900244561558208541996452039135685995994591657432582859684952518104830893787051466365506306531303839175717348743591142849143399487336598173974032691170005235210924284773136723575271051566441928356663050615756254419562756679534628172214068654162765240059734169876490387179671573315087458899398975356650053835538694383920546269040903013008001355723297149536675858588210414620158704414505425921426415237807707843185366930665377694711582085505385687687050099243666238571265629532328715057903398138794676038775550074349658475084041963767932630193404613124250325507267392994727890717852879283164687645281787144890735318130343864158894182446803375499523724594068765895766822534224400347778583486192568090434313800111984067944852928867658040670807366413602562939337913458428360226006020569208389668147745592497746836621371708024381726811762567137725263487948122670588670557600877320807151894443831551288137098207205146033937114497286904831755540413680079036759834835905786135989404237918682715779131548805473308180500575410303890493244867452223763887458674040534233375950662578710473913656063034113430097309851674332140936348228782549048688342800076057100186596682764362464138175640120338949082775459688994966080291679916775833721790398301054976716858398414819292415987783008523780122606553814327098797732968668613703877082765778355125317465727385519499982779746034678831509556512116580818819521677654147686816667485813569877582660641610555678283612370978752363854160349907595609316947160271513793296632055166300232688862326970209688398465729177639836234959679837591876708210131566157182273784176020958318824512958283289369896596069227539955411174594799168255230586704889353756006487945805641256781411310192186469668859476787527698150287715737020256454642295112232831046698285595898329062693676249457072632510206415810672722591197022684851782996235459391839158138227308593064568167483055943696814927713352197964808165853718387834843630167746374296076244002941670611032582978353835577673030806660161617924279025054941138728941304955808244782634773110335256672406896538060872717694493509281788265541175426222297854862857672564978555675942737639886613961462008938721805060610022364908260626840746049885183193380327352883085579824056388023888319997240088181069028957799736009476999508496124521847566024818192832518280905714295362140565122562661631172280555036089866192195049105342604648816847469357086467442675362650468013768907816742243410202235879768560278895622366844489767363124595012841783758733528170231035319501541150141844510932596389450840688252323689762996498457546190163572438826763868225670547383249713087833130564085510638958382475295648583755326212075529998184614321023278479865109525141186666119550082295534712633619367078858959339938905780892364543315888271390023924084030823660874526721445502494276031114110613716027647225191235775125446528401725564789034888222111205000605679767868245750267745621416196518968025225062378082173375283219586816882135604511714838408585877789091378624728075940965966948337977089958122797127041292655213849404450742478791591895260424441127361781654713605583343303360791347203434513643762267690657633866738903970903208812882957765936575608246743793030942156090031593126635690116316459984074260198656820259931938119313968396865877400086566642277594118769468058134243786780602663195226242495741054251438167428860475055300074796939855331536296002131648427352305837793004287530975281364846780631663227894730295820901969724626514373909139584923339313403331407644369863876852658855665895228437347813293137283634828727697511970689171663915738072100764009370989558260926087456591600347062940739039246340213185729249449004817828417516620091313324398924904606392446668198203939300368561351969520390340970194955035186775000611836219662831270881357106889083370770390669404514354312133594212862594470496526464706283664158798524509230975171733700602195710352727281388726109329189658238898133739074395813878497695483917270027360043130704144407772370063212125008965517645899204881103729519594828119822292801469809281483791024822184017490226876231676293868549398989781232676089329700122188529296179905868101507813504799155538122667080510161178326021947783943609623410009457665019546446093837108953129674711171918181221544218646532336352905944971111446061380893442311113453739411937814482949190443775285809886700568546206616110866427673888684553722599560852192029049967487493582491695339314162475907513139752455475287382362005605662988951444991009218136299907080943607680976778224267911058736329304755356378236346727994342846556187371220356908318975621057596171121599191506908834542093105426066799529539947909992500413730384215151100596917370379367226057241835738563282382037534533423921530316370208858100605649794235705378908884162015748298792252358221929202650292281244564870081027589896170150647822208583504297580503947791377290685738199892179470059853048968702472974897024252311203501939458425508788760212316943097699824275842031686523418063596965143980783167664356192089609651559508178015245779880248052973722702136147178256792436994123184626765174626119709264191989757809511827460745880381836221890449674983406507383443696553044844449320674341999667493279604852333724381337240385871353390726093345401691201009727050853089101639445235114158565636680493834527985471788660467134581825173662709832859262275411066516937166236277953563078966495820793300657904921764380194440001775166509810614164154500152204086270041060259975436814988250844529352219307220265405943276442462989889588249907422143743243433044670837795079128532621370991412872982638232303526704074824234002791758118395899958602857135639957895516728745659531331280451552413349887869062524632526907472397057089458076704996073459637879056726916125913229227725878801223337003918484922899553593540947854384090414248078375393346295367856695592797230708834094920115746468427501163760347008468136356976687868569845185873189057484930641421630786620232207349960248239663931687096337400058361463063822572297374291811165738490147716531164337365421870680409260211884345567374941857147085499619470041847517908133130002852766500861994567652346537865118346900740495068032665852431782714032867410493944523913981125626327400331070401452855522535845981147088920538572396356759921687057230106831861819636018482908531225382413686452236467990661682719976425088533538053865860281433380969271240353632683861641974456422389179212712132096343367877926175005765357381822914126323962217219443660820740089874755855670698753614204808195820593096115093772118837546374774325817922630409270990900973859715314287967524038901024794323463629848923640994667073839130524753422429013719589847106520259429894428748409719728976753632656912828301083673987285700357250997711769205372931628608771860054030572670590398621709971457317721370499846633478871999805224861324328415164990799034968559349451725437299257586033121880914272022956671793600515703600410351061066604410154176975722148429719619923107978114532925266805924429685495571889620574284733992207484001294046992803333370688740386133049785796283921047568742985553205341392883432498242903820458961381971158857683509209329229969759194808953800607449478410019190781708532387377088201192395210512371744048719774191160442246319358638009642190252229133078090715288005003227615889231545633196134358909920235408811754182562798566508956065408677352558167952267896017108691133089834468993074116219606109503281545111261605515894048155216734651779489484494438584409360837006337408644767455359783027281604981824489276990186624943549063387473111075182577023022031699234626416032285669878250169425914446694317242262728887496860547943525770487253839223612125800183019749830405092831637464895646484286171587273456102706576632569736441905107946115291833128185023004458880951139877982642512289321108997712715381013615438667502816366852453441168729410115591642957753580518893321692320138770852215561013508351252004090183522735695387118286686070409021284146552404885707109727745752092050983406916224346335411441636582992105480714022056446736052888682365647863947016875809283066313122768130577304031087178101140459909533392630357695218047208837680188009485531543202769538101465578352959045955432011310461557754303989277776826540456920139629018818320739017540147090595579437712694268631725182797152829414610566738801686735325339167164980015699920959162902794946007286258712464407424481590364735076745395238258202170064755163913303645092758654311245516257403699456456545942869114564291006335464717651765566790893840028804824897433629713374148189578408929272757092511278548850390317094128836855341604979539747962654796086699294287313138377215681535793203510076112826564802418393469308837331786736200664673816042354068388526630035569736308138088621412181231422423665328572645797936538234012942980093021957848729921404337965026588729708445309645450950736584914845992921544081836623656676119868283887158182264404225221449315111255149487891662669880021782936578996970069581763492464606403811516941210131132553615060816396893181828162229256070609480124704734377666795986955424067113775514638630890640382054201639126823892232567320285235818827049971728742714993002613540495788563393262244709820339883849946144848898688768042226679200301833112497726282179840154675702482802244270553388966017571221875171606140694538612966599224011833183869732159450101183964720864200103093428138440372939395689973802520340665893267278444058440454013730866471567401512512154705256841427339360817810940007572079865893104021943321110904408220558020236251436495289061744386134521200751150810864368291039308119976592869827608331462405957398202353347605563628170587295570393881065665847977629896622223987408878553549662583286103260722386343316983260001560839803610020870459983800072773123558661000688105112456230379578518882056137150471465339341112516807388953327497313643844019875551371508426403327183104615952986521960140293685337524602989724826185836001686895764061607325606794234335500780079867028222538034691483913974693979701427742957385581262260353674514792682933537873625164924686297748346199535535579312834711646942333242929809749550749039774120270288813070550440281330319266346859454470280237683638958223643935080917815677559830128458924339102906066578368770069053942993975023272721129576315311377927707107859155048795036142626518333228851949154853851913919594152012142929086472649055747664399056072490865035534792325655040674350190959072728295468119154216545231627859969685457807171139430496451173265387911059238661953795634287521372928082613825101423807312229638526662882700451096614875929155158444982671795632464688163976149500407462762958814304902164324656133216700441816654125072336362842697861904398749384674042182532759822069884838672813861724579822804835729003728756817894368579076712571511622226890343614499790216635786239528593606053463949429111568111146916959105025109516667789577932044401545438486552776871179351730146897583955811529782272862277858643018142837630852091960494448236321342073150687491118277616257582084794801458535713444873441478299956655091348705756219825689582543671398367555565200029111124583550888675851383210350215273164422641646511821110419894855444157611192621527712620277403888396946256175362665255698933531209274842742487906679947630352714103555683868964724324433640380384090071608688644659290636296242269801285852120284009916936754677248811932830419990171860408805365660222323786216484548538109457876144675891902125709478761451652639168305228219683926941153304365828293069340458347251361437967938698187634359615154845876885686958329759561308541556179594100354076149851939504190031908553926712213315433314238686601825378369428035835584943693740571402311488207537977581247642283572679979626771543750835617464545692888979113895302025007685328800758057602325938435259138686814929229439081345846146607057725599564475830711279228366382379332231412343179669055864267817894498456818106777779254273146031909084098697632571839129243240186297690739357289638332063776678746838889272316560678139473608913878990370080387014857542143148962427290747118218791841176475787883850365696143011507685102286190433490653807206555544539892522593886123773923813130058610799763204392304517907226311715723340319632772005144253302455204043149829997236094523144739944992933068875156314636499520571356389270227638077865541149294921766373403691884131495502812387670392180016462137118336761999154348914807573083448990841619771946583354345993569825176388168268147803301596379865236951974888339857985336750606778085930869551525796623245008115833448521302191107167877979119461195495368597907105583065848787994340770231420567866259529463067922618970884451351326161843298874421719095588461205191689902100681644198078345079551177064348164281945965027778736417437793454241525918429011955607303251038857107051300044712315747956456429319328312057064590720289265439107328954715132692753887210916237315405234129138166480033254081282599864489145619485467558508274671370206508799307981748631437386265413987446341110044520753179558740716462849131152653967567805980392666433020610410279943665812000712459199503548735423354475655392063368108441689747368528676006833197674306753933313146313760577610068770383130819333139884930303069089570831225551847940009466217714646538055645995667785938080277151983878506365941013403294709578921297497109964133843598736805354330314303123313912686974798325896291102926141010646909501588962887632948396052206370856579867234606919496091244298411962380904140430017235196467489752903535978694237898002436714032317338002633133451470807400087265774941743460441629174391459981974655650253932418134927597708856484194899551960501285863928088723025551252858682936507995530972580116930273520012483459564137476643798772527571726169387603111904565804568217061776649470880368491546026108751647880399562167340211049856741130105096142231403835291851231464103716459719540250977142129799694715161107545595764542671964777962573772497608734653732727633831857173875008895105756064531921520611897415130946876957223210605314578688265506301004298959809335739845348058190127126456594169756822541660855333903814809264317375635789252340969783231750190401532486304944302296611125376816592500479826341575164477311924842000291648249283864574557056043951712242445355350326423641742200687642057865826272920802094052677070602381742964039236313833525397308491345808511005261743788802205308884540758114319419363561432364684037659514966749721879917504804762450764722249165589630339502045001061484679019340187547959182987307642750266520027034111318863705761099465272793438189738833193323955215058700011893805937080829698416716161835995257516529336677638524730236975183104543834848931088286822674180010620880295013881894509970900566223374414546549132820731983852646747911911269472657269710377763179643360449868809073396262571963327806309894281283691902780901489840006149474812230156926887168219065939032780276842142988157249859477501254419736210649515783894186934188875472526472437866506599768302009939702243997294235290560189941092365209199926823382638009922431769976999083947460234198059742546823166352203207280451735457698112683583895379359540564584792972834340014666767788318544693875398359395404055979669315902150333951679384278138889917278051649218157632692172250236369500216029773386213079087424800491455613016910675206504170986258537087483991399411049146823887983685679391271694040645999459016693196060154982644763510592905846728714054392042022975976048538002798522647934216401503511765537487972070635353495479163999109880184890452283488143621495571225784125241870874563978536890705147040435691022196352879897597190632484527485825742380364016807295999722304069855938511368456152000814213616376946733577421106573055358231670703911919167710209374863899057182049799621522101179058308289740399896765522401133449972986622786376291350183403048403666288239979655418009152491124658531756673217992632132312091749263517722928498522134332879199974258635060361427503352377637745244820518873365189757063711402323677645195841080732772802827028203077023304106200869091878827735949952440308879875867192464245086875627816656633689519750605303121778910757803206139569722835489048406332282355363484969293038077471815694053992566779644333505016131342675074886447531073969399951947050200197023749826245242988043945009404225895574045136402753618553290011686425743205259269436528435803999301982472031747948142756681784184319004679443117370906267694435834200107561155346787783346623108190397022453587385545404827746087896928282809092870136422902456268272136222439070876109344453390637344254415448188439879686760858107139504411061534322798457234698669846543599852738111796113970636139792290199659132950281190977715169731295742734426418241282566292039388309533346954063342329199197882186369406178864809661897399207932237048254204478706805390993890195109608448734021810334781838386911470092535979599750677007551633831792596365994881759137262358044850657752477143749020380127289105850498606739702737207455556943766601236460945012992828598162958548574396745861347161843181760344683463425354416286974073040285675143175020427572727938170901559162885631023047724633473239676414921376860317945163865569448501798317201777906269278478905421386717910394566289186461429529452238727005538889520123256911807397629908564095855761530727757021445263594278611198875121026759104082703861291121950769733621340642019349539535050821888053269861492569174976159438897645983218275201863992471554436749140302887849715579435986771028436754230016571557930442707281470108154353414344018326802043778992452361597432354306137942807239363776559967296035018850814420822812569337120212591301526879541291722563444045630005960401112341651809840800811601052675386080064239979938686260272609431333508346400635158840513068935809150799468081827690782569140523330731227386921388269760830959260771309426774272714132581923911801109667300261284748997079624073708577090471980638866821065719025866123119220911788462746799786507667767797766454490860368437496746375281861609801386292697686857660649441990698503022578966249665607226302396808807775473361293526860172001888990881357743370239311960289825985459518280601849741862336790170298448700354277392253210207556877895304054833164785799231258790623569955012742222851578764780932746045859368921607018872884272229675611925977866098847682313089821484797901509075639290331671362262852088170173377652262759542237288693583372198922415793298614009808372823576763409758832947275243927178172725594328158510301262819359147817715629857169419168125854152109437603346525142685572445555892048366572956591122676634029104668217807325561810381041042656909102986484978113100699483783090057910177009920565920138243343305194600363085910395547205922418069540441158734553512674969486254383236791060321720962567931624436728957368135425982122666674257130066741816849123695109344074157421514517815979448703663146719184004762906312718875899665616494437929011430595536597587570210990487971217962279398971044754186916197640090283048765018761849554158544046762335412159612406031549182684208516391823350532705041615734147249677755334628895976971016070003913760922045978504333188217542782680277963918236617117233619122994952266547154003401521716082439492247777671538699978977269352055900366140323995851379074417252350147473621776841047332521882901718335277182747419050488373510155979636462708035903637695374587254469333670600689036701220506936394620639067736474532902247942776156928353731111100392901977834364518772265040023702893962444841234822619505995472181098158484830616899978988733288872808824796309393680713638359503059608981626850339411971380318452728279792884798466102366375941101048166523791420355882342924295058800978180017857314135566270658932942769456940865420796525264491302922974642846583712410569345367404021615865712865247276602138717327244597225994636652811836050782238901640825225782897187536086491171118432639092477979798899442878381931593510679829383253915675367839829003050587356500077471271980007284553264425629014974511498707774947133476054202920303997408365188871024738061723521419145884649557380071146561528259891380807063791065024908885248785101848485269858734471896367959566401459737098038416683678279904526480869262245282425256974026255104305082448992601366464954379571235092821137495002974995494557106439774790455718400043818893320652141059064170243050167301695486851603936059857291683632021961245874317765719629125344110563534360921446247172248845674879603257791333356251497719598184570592314775819637684499316500412964213682986328398293344848191186794840409688793326854544483481075093801638259320008217504086890542141378308540503368475155898367575956296656225533670934666866840617275604098361313245414544404024078786979723637556566965267835865761644347955823009927830559635087721714639225952373124068261986581867418772204511685853316294888233868127392104336913488124693432832411821748381043816316256430447147750856328698041645338474039821016033621027302648889128804514119184006910476590641377243026779720342169680337340049779243005461822614150734069430792593970445739503445074394880790987554676158401223912025303861643411141228980510935166423267618378952355796512799630280343688263393234124805080867995779399025279755620083541605869718581061703267891902216073644759175855219058375918391363176782547817921821039187904105312536948703483541458717232741427799539021549226914694801869550454828919573299745681657611655650891565242019581632429329823608190061845852994655229188378385942274131081116281427139249995823558393172937252688041006925731035871360890068042225251713382803814413801193036477753406095366841557814113017368707009861248706384183780959911122651146331863462126717576195991151167358614667055828858073989465782011039008701468858942989459946704084890786823053306713700561800286128837955009699455353449224979008345234573297417961407872107214602440198192880834243668920153812658099791182999465226609183826558928638785577928510055734934332811792743873803445463971020321746636755131863615741154758529504657523112168978384037706168229812545201991591089480203831772651556337637256016956871823233946640618046336334270194973839976271362408973822764467498767613424077144353425839148298616347685040518374689403671747285753354088485119530244916894546307561660069673595559580720053010206376744381836420056463939212135076717737656658559118899645105306710140048529063201640470815110282157126675563317101952272637336659595476833138551680207470924895281035586845171280199783895807368226157488706786544786225703888646403145833925863139769758753148689098673851185611037363618530666443773158343169089616461141919434954676693940870175772126878412214768310540403233296760335157459398384663772076744544657392802360648487511478999690918493502867979962502571525487363327351027831611068789464900442021706514919048613585542043464342028688642164394064142595940870028345363833786100527529874647738715505665573737443819898312685144994242706341498630839663630531140965016844091552882371356589669364206395198138040376838991634588126062681951387311346874362241459942552931505697262614189794436005992733345612926077125965707652154070850268729039532713963920114190184726363060948395049923652837132930164499454475597963761031283153960433116307532599937577784858229221873760487405242166616953881737302805603828130218268271236497644808555518291928933080290651666289369614452587057181724899182200363077292036351204292956266526365093692597919534754855299587595102653519550629343808488033413444009899215002598809571583832577630953452347232033755378971384972341393316699054691749847492219694790520286945142292658533885779851174120382313892037518108690439321064931983855035667739713211163683562796163160154534877623446841160714808030327182766221986552750566245847213284772314461934404114665564652969864099672706464608406131960409282332904999650817537455847735355249122392245685370323069459017059461153343117848591185412416159123657145432966052531024123955105040470979874070011212398836810114209661743592550083545792546715367496265186297909723731760853477146493540219615166991553618548430881993283743078014853600691584104771227992410329764714328157567581676820672904524555106765367972076326243613230967100468999157023125445244544621292371994118743243279442904714967736229687793400443114088307147083120389594455221391161484810919127646296236912609295286034073936686876176478373027331210600215563550958420442271376938613364869985594716577222841296890986023781039870693067454562091568549570934618429642120110980617065897883929555789458029205594539246396534410696495916027932286497999703704736685134222788145379957232656710854846603888667502848499107064546317932480973780202201554352680010061553903457895995974035465422819268756227471331454198301352311414685575876696645452631476240871976352721153790439428921716175356226215967847201095643124279531244040682616611853751980908535790067639378733509618890599295864697451407793933290278044665123608431016476837341055303029810913199301386987066153625183456344229797109380940616422135986613643749497907958711121556502040572879036921638912743657636352678752775142938424811631195130230188010544712449606686947870803771558261869629358609143902977836460050150989256080154546362233384542652191778053057720341288479436857382680659629194154921649393245206973733610309334518664655030633100758750559781828181518212690212996254575558827623419855662512176945309065687602264759344033343994225078763933411191554882456503485616013690243613407748203222539158166641103151922537208616002867078719172936676001328547160699297791337233520055851008919789298369668878292701236704159574352645626446891256452569769864336736260577706078231486256928365447759193579233443145721111496010922699752742692256606650166657728873835178395729857384238155438716387758391036916980327302884581853570789408209195674959195992773513770511082867036973020076736016324220559099807692944725046701795529369978243315107342986935734233049045400891064400051061494192736042212443173848041180857912617825749484254398748239232560525438511775659353875291309844571568998073103096656228187044278368102876605484755286152028165528159771833146905679037633580547326749616998925330722100086053430190383588062779069026684525380131405057326899513278112175803937083191945267669244880554758200445113905377042344324538916298848903386332669839983507864765726093214961721416561992095111900971673191408976150479524927970085691179777209311248501881687894045571804133988663698290542020826361567575564831403364634838478416408253574331328305934617659786412549277986729428662528469247119255856719752754666524936913690973657072103819095039399167167985422488172230857694344708791666938678673098652552727680971487399917709933505005590793465090801096009020720907113380647234330039619257653996595524650917064092829081389052457277055307759309607459922692094301947325535441633510843620863726586071876770343377904174378010255489228243653604475605021898716161379711618404857530730791527606194212419757477565447513197285217110225865093990065276971258130921148071420251090745659425146286041006291443530193513210037757627755594504981213718893944156659181713153778996733370728442481100956554710464227749348748150354681617998251065805372312165755077608389689653867094798918706421501415965537670886350664369206655986854462563322208586498530728025680135777461694353275141414682605214620832397533154245520500116459457535912021258403443534419033108397429531220502716157078771695410279202127031857459306533896022307131871686124494890515361063234452844537758794124925648851358885483870960697168876239950754626300955618770421876778199841816905342046493079070319140060556369518425768349031390376500458941484178691496610255887894357148723269065573151576146594724176108010123974570451376073919416814688756627247141789695890910050993738999758561529596726393716027980981211060157602140262316403622007203249791882155003971972276185003575396571292908142639640020197543640516351299273284293518795469500188263749711479123639620069604835925984924797802063579224326232427106836340686023480719499669275299971304915049808913921962194560062764600536124119132799502820802429890983281959100556974491218304313406902199131945736957205132381749266787683791318810681073968210811139039422474674025863659473684043547603755790626059567290418085015299386073030800549319108465485628979557792808154865372156357814044497629821125778699264918169326627776282499079569327696066949862517401490151614155795484244702583496920657480470076339580531885698738947182197645547821462979923837683224000164121071085351860154460017758453359275117594126073597261920962413991403545170907554958742575438659692647255289537615134333003744502030837217522378531207148714497303146181240949943122705255955609818560917422941596942578081730465101840278909451247087792523250665957539874657240186461339804204321099017483643007748260177638535165740896647803493464006874807908965404928184290902651552900784531143548102765892187563576981298467640823102939008992951730353467532257152604189795737540340177499749941148334846788443486277770207134211846755597691026530708271421445183438538593274708025215892021573837146400427949298416034305006203448681718422351887022414742182608309918394689617425719807373492403182034809055797338747684159259305195585390919882828218701235876467333101301346854350726950266399972305739048722252882630833127761961309050446446769631357865779537862486759866557558124745629621099706942455403536331167170918201711497894807900735082350014557250827911773766952344824528104239889148159132981446048589068214064627071037265245095995127610497357808103041135608442952704145459127988040192706715816805601223880306035242029255028670959417675151073887491904760560266844688146335916262039178449441633415612627133945742583354984119992482313832029208458374461351014103609269819222663888636049884017336395735526647554041965262136243175907170877899393107716931836695142147136695805209100230824452871948465283844351108355771863226842932746699732534177884010838281876939232556144189284535767572536293164559848667844098301394748240529774538301750165954493929723434342964619967344145281888707048130525774592583948778925426688309136867422983077507548218136289273333988546846717797094488557095931618982791436809327520564461624966388726878563021571523870290799321187974780182561168164963908566713203541211541655469936584959484587065374518043233584267669574715236988823971003744845967405390019274748069532330019024436320078527522346803502178035792959521601708145801593175784685305340088635932028293235173038753183611543942391569786496702395906688246576555448560430238033746857007335148352626630489724241898143047577496494142216682344283310998124263314198667099030964215384968162130370643364078171449184353101078123828666282963361442749242526516835749221004633332494428220621985938174518873676006836709995429461827374685123194190701152287109417166746642152365828185883238581578678850645311322308215243049224541047288759759653432162658932820746504911090787861570491195724345683979656103689838543651926011529194348296613423111352683183837094259318637329937239780980874442912075249936302738600265886623488708573269904675906091953666977739540777179763617473083444579457265176690707502122312791108681032234506293033559606232707766893510440891085018281375912823170416984776858528713608516989624758598455412202818645685671649645382432817065363529183953587238609236364555931550748644572473986708573014455727546729276195220710563336777034073566553753405903209796703409212595619757293299727097346001470582820474142079267820028602136590774373793529621829040547393211964649499808103664574426648016314496554695627085627001553160480664354260394751235953666455992513460959915423962574931210194536100581457338356441710716396681164299259576021724836478034222176205205544482359440059794281095540693005459820233622696739867847982675758619566109997605318634972320082714206605388621529034221787403196346485571229194468991082375494845176857890594468069154417528395378103276076264393941518189159559423269467814331944791663651904083067452322723049477654127533496547071106287701402734316250357385827927518662877453843196486065095406491537361436148124252992625680382048104177968802455426154502077694040324062888360361879577536786856090873173092864621212086007386333186663099862239109568208438003825960738790074265646328820223632133724244355490270285233895549896009251432717029245912872255821399829718006345110403000644621433994955072988063254460857083870422809284437434725654330179861240001137779100557283287414072361000543434623968119978728691531757657953732380381858908544671235086618518861300137145937855229474062984381735513018981259110817008795872290373254725693294817175255165496821714264694411836295464742114447566420033967257024487296948113090769555418852843574454433050041690354486719776763236913422555982970595228026614433705204079825698095271695911146401073385755877649622327529445867282102063734573884989250515105697999402504050939275824006076141127639463273921975974350564771923333583000802989673965879948826817595468492303587470183484068816179975459555292068198900892606520040329370244898421863535076394951720054469105968379007055151733378098803251850805510399449927740038831011147521451731316605459268997851518754962334485633964970823218445921174862442712571606908829997435228623644576192235465038733714758770767066482357316799872967529167967993090646337493911996956993915546099147942781773730746191016547288084578623515810011156580062081473306464118011819034160760655152544301436014091118878214905224971600274857698555205642130326628746859308136625876356116741053382812554697733498347820224302111796199163102152620082852690738775014183281618121298669868607200126348935981120166768518400356495486554902238768629311805732942491522725787757165352871630339797502068867775140587485564435689390066714501775750004736079601065589222076146326636252405194670428032313631373655917985293099554839558149209651947007492738082596675102677708106924310326123509997897990504653854916954164357621847202167847241234244572191147536385243204152631604031352428778241793958515526393025676197316305471376134535940723306564757043459057348867113305658616470240834503693055895598583615748844899470971812088217187558388542647416819971085723436707129355463028185501211750258486448735812301174686173441636101212300487383784931011487454663060527696026477784924109230237716162299103204332330852886604526900256442024691025186761943147690527174741343788079441349863160302358064494669176310878893330071730576598037395393707567091584159008946231240650705144130533939167867917996363279382329816280329189409352669855486935560440301095744123296684556857211460416255286619389876144548239514649338381634479497372220113050601832570554248464052385366982508089954582630108988129468640153736589468904427732326696639513881873960784990132349116089901942267230146213968256280747812245972215372818775678021302424396529514621567428690616101306340573757795581605743809393994244447028339977932623902803182867653612704707001294155672013361549201726651646236826200132766245237371898969051512149993632349055985411343416667959783187483764578640118113763298377587523179037608176399117069522882044881372240759313338376189443887516494617301299528579194585221119913824768720290211950144914598262625865455352142640488731143109203458158303690885917370419869520174604563582347902721095100152594539149801561716674884763791804512361741286205701596671441880777096872756861353976008670297801757385415193363017335927186466039871151875688820703919246973542365612480868895284299212497880709876368330832114293049928902456894590150682709821289676549978351083608953576487019961305712431841579681215687543496018036748818309720863767038709360714591086532357924614096676236527107466172534174076598170034940410703229502321425851903366383302694228778566944608025835832404053239070955855776875401666985989190433960242894142119416852558900856428330774954191472727574254720078575274640855428227475702471458569433331022868887832567686900407350250929021420342989123717174652238070006209747010369248827810977892353525842155437071451677833350766238114718980693406064880489472045936752121223843249080496481432637192488263835874055611944128762429284403314288904508703150644450350749721467173767667531481843726555991926170917100413409298071599123170110748400531789025139454937642245157792611668214913352116636242629129891288727112664365043712860252452982697861499823769830147386165370557149801872595457556760214962444251983053588071443966557923194580163331432417639398843368591150261062240536641139132271546784684024058455770611214455190167224630100616928739040666769748904658532131266094287451768106531877901817644244448918073535140531252621731393157921349792850999329088710836347174929413124394373382639012250983537052658720558696766021040516629061859559008172567877888432937828200992451605151951443175539771701837428861756347465721275312506813271717762365327460454658391420289090408757389557683532048494007868770302431906823565058767287187866594386005003277790462178550383896841603780184760813238153601143231701167662728882914536365490500836930356418320891319262325167041956693948260671470145222439514955337481175054872816772108892020056853127084730737923980027735059568352216490096941790107266838460501914887011281490406400918818257790618479638314590374971974696073551011066753324554111767056297500041268725531958930209004925482196500159768902364763852133796602639361158809229951723812333217946996727145883567993196040843310700812591534768284821750090042229158160219302465380432279971301189879666157404608282395977440234591933580813647765510916510339849358221785777904296591369893026117772979140219915591530879678974134226721169012243834143334879527335150079155767191892103075120808713842675575963960759058473831087726699496716270172756335057721515071645507704153101627724921030477403983372698249734701218619667528613064561092206906585400265468233110087534927514043120305880613592108023991999479662973519091508499004887906532738988673539805306929938963641126652370837451114409231652434167486379445202404284715141923519963104868120676457141210738839715751313936277392533210162563383827521692167642541275350413669590795705315731526573231339170959012957424472338302772927300909297629018708535093968194869638458751186846016599235662495088339819038047508344348372382111950396721012918049300649683661693310190151071945041056787386938843009108210021884163613085057513618434964472671354493484830552977121614454930388849133363533760739632073850371877355997363913002709689532482056973110209091907485010323194607006655054057182180694882525873809757202225682002237753014142766377823317344118128201423371592467245965298488445930274830530969705904248050502645783125886241219814886450581814743396688820265141535780546024827322661749475580447749262905305370682063046953712604357124303102978672612362382445707150139754447964237266382669394753478821361754226939652971592048165964822493177585807760920485826549637561579662430267756077176896458549333458982031861986001396607063965297300457929135123166209424355851854095131893736125055595678525004903060164136970361567737533874393459469711536232495631856472930195448703042553584809861023784926592669147150658140929359595978107714866907884471346579528101647746262877247422879608877344182715369547758565663227804673043446157283243001081000063126054802700492820095412633959474488295932137235285069526343532165902356129976520019189658451430511303617143705905067393346186561884679341187973512563344429374666297309804179742278366314998145626674790332753253900079869227542010368426920171346052015582823387474533845749333118201337808558679466659441945035448612036232955292426512072856796412498401712466635110316504545324715803968631113394289585537562528656553363089008386010787388938846396989673772797588929183076141945650660925316838197867667748866705520559918911040370578266152920270629853543738545371189576029256983584157042009384217377974074080642057047079373765397377709257732345250292628697254547718820626361960530585774774716468834672849203488270367604545308908879520548726302473719847988679595959614702052094998738592714672100179640167477454131352431742439636355179880447513597796316359976818248469854855057914342572868154283292731663235841833709069843414625498694534304907509871525789262718698983318153415901799592185105879886855328281387191541554612315094907779694055362459408020632687363755109874906772980436158241754130264105912875547492772451182945728626984566034374278063682078959132100461715582623021597808952218597022354452745307574688488944914648168011311497596285551801026226587868358886636752867313127079541974330678218229120074784087699647723451536517921352245165057957882669591779578509202320522756233950057576140657733793867293892780007897069450918979300938232823218575279427238735144911799868227575561181035782040570023505405805043005873697305433926420139114055079108218904133758271257840664820003776119463623749700304724015455971772740826802421892226249998274816767107691081030096935521968863853601879504684029728675285536625613408621130674760213345163710101476854843552861277038684135447616750373621764919959871461143361121873885636904918857098982282858254849883568005619825273769538832921864480313693215539978814242156701071609139541006900322709066992433869940413402676966391677159781949231665513796356793914494485745248446977384671121170256246621854727357517402596816827183221450179853648986346892605460984609064331972634501934081889175916035767741151024350670043956684048521464802702694663337478066735797548388028104952050457808972865557856591874390580110590205481370418764885091859844629538470155161682833706615912119748727897203174124946258573772138802133924140898456432693038854907977940059603014989758668228358954221911733151756710181335169495884771106042071535079771655360485044402176715912020964672421590018422451047229330721300637027574713477434130065466994950894756586235590822364955188213201248244202445829548341117951254230432279866210390105288814114046823743180778310334542334826068675265345874332967081972506426436516966501285865277008445878265073670386841877095061862020923091782490482298101857015970056862609226357765316255273696999551998205740754540409433631196970440182372808834862563442306062543068362386499433305391720419634962248389005705205563857391257430578551874893931193421571387238269723210009351471652825725765637349574036517388723245484615979561964248969598074625737863079285953439458357739271378530504619379374529744793446176641966187034967707669820048584996286228103220435398733296648988327900874722307350341314482793356416363509215544177514577716395410303274819920717658290805616738819184820061559199146552178865055547433543346389480195520992587306275502368771952528779906156156340855068307624945269932879947192063099194858280408112764358127707366211106841716066086465606140134863115225681846192634947636765019172647358566895329916826934538250933433660009509932565998401627056381148826933167389132263357322552558748656562126902348907173361911324559460335981241416072010434191269217018227255435367734561207316991904904828447425512819965096134522664738515476513431110998805687027546397092217539429122456508103316632008444372293235751011893077219088812855600612553859027352647219870512165540534810289328319507253178071185934180647934117116272535999404266643214668456949657440914127286396895089379942366333322519223110450643973652634043855304961193150902445899472689978897935700452441859730761441372702649597459099859088507173119634996954508908932467043017438370029975713320289024505849189329332505999758887360462338805155146161547857386775551505008635210105009237259913261483403578380765137418521282659296601499776080534611692557368077422496393641273085181392478755467461003155091127949837756922560959533964722337444131481237144342766673671875602948454920853925918245401544791743411682825248462924138252793165081912659131299305018428091748837744694460086821311728119661582976608045120653692330888352256974379636553064791724493333381020218192260771830537677695746475521494044793336986789470259557994587191165139720538308423292551054250853463492169915527065463014049663086406238427683491694576648249136380021673544200458109974363523808465669220832610784514655463370596148770480734888976020473120805897342913915042661187877813109529236691443684860768361726544965843879815456252627641803821933551930721620355888375285932973484340668541660299189698677953832433257394932538457712752996850434995173770821559376246450320819720785810621238689604491969441923855927662557582955417456833045937758967582987466330674889064513521647483263776195751185446742741486042922733397875229509157962904257510957723407005083108174809284584395116264182129088918773859954163606097032277287344920761792015337600291055585880858929864539479617565608046680398115357475342318382104122754727313579030181240618223951707629424632839911958520275280674048779065998985369254352508637231760793129564823620810886264368621794721332503872833924722729369674282781024742314323280748603768901582614125425705575658366455194440621371902498761722998762347117319681696816166294385947795372033686346837802719633012781449827900657327740581732270653553192960208366059098096771914927289661657156790802555343884293514932680652499037535846799688896133324984178813879131146618957712838366087173550734539893396157434533807598549360085026420754988980817558454095038927909866352457585685332207444538760304623301796599028087910803700065448285995068055473610325771709651825001159793068159865336648429363038383431030380277030521010099299059113094566327270599964946129945111650426008699825600464842914331217506999705900041429913255501933469502006965906738638351572862444009481839295871496035676898300286676652483352691249143055472948958269613650958735597653284319964004583292299066401951627162077279534385738443848735677502199173270685344160588685383391103707925847635209554493711329544271338775097194445852542676051407994885937757967408119199513702119409178025546457981751472080345274472350886795980775603996100176058861088755611949002690973278817725496035943646494639764461400906535569200984497051918002998534460658337741362097185322127903030153726951887276024731933603067073038334976842219350281146170645335399042426327629138700740618161586178028708954791733249797644214098011569703451422412276898549926152981554309844300857360146400772428395168136615658762114702425636626232543337878912760205611243773593429362900344716635572345114907746646327174849648159641386466221760757468147726702157927085167067383426231440683991009694774454157350470944326320664040124404799610562924028717721469175975078895993645251799606667519184221503739333927297735997778879234290136511670470941203558573206555977013946327975376024595652902918466410204108098037460164052755953229608197248970088520706637493754762273658201208054720016218306651461835725993627510866412134595766852485278989629323042091308359516298288386484129518312031358468481497759625018547423504663780306272485769979338294350647394403168655610458666819103336925343048920134395498618500118441277646664338885060743602363237072368034431267811733258404063560174095591533198920471610489523941056346185899896136694475094562658444572426449213154608225104583868826011897431525950636070370554540589583616004949710627397225457770886741830638108878337197326960696369263143534350387544910821062887083238307447218537911812145489843850535513592089689398743507412095132040125375879407493746061290525463878337290919880708202862945355724631849137854278526609501642636236745061543491725324505388765798573762108962267289015640105334639150175679154484465141382679628453696714129082490552188566906399358490951481698452356818291408843875888696464413924260501495270602335130278219671799985647864522545232741031534413590573874135167316382011704581308964978926942953918922635897694891263661124259091574908667017033287750976928606994888612627205394463349093730942312667121025791854687283808094227202601624139684785814054225907177797378291387017657629132121063897786148774341779498539804286273109641429497838503293148579749301063041296780191865580659343699207465431246316939055010425931276873950955528985231992947348795134817759615797574625242824668975917190179356426520572885764621149347332450290642545406606051803218904151705511196500700845543364140939961987657781365384584648810612622814803901210823313576583661968875389595001505828102170906509109626775833517090073394040408152645699204127274789136218667106299653616392708734163487606014519221927861163449115034549948004284004914708108671116067605331113859511687487955145785042202535504145602621906480264729454133443499218015919837153372552445106414703439389776473857635711165324535179444718459788394273871524567824204403903887394031887455009764902514222332798002831535128139185238982285144002886986407708544171951659473176891227274914954538560832634093596541262968412117894041281149734703941237045058753985498788527021130272202270845765210354109147823405529428614956618266652362382156261552646710131153651355437482643882675937485788655242077352475719319871022489037646098554945290817811066086536521044186243091969130278288778174076716803474728242695840819500088952448851410511468337529055591728059447148919545035993322541584637425110141626188917609226314438281426572431254560159464661592776386307017463151429087653891111348742299157169157706422572972890565809731363783470261001999407855362061569274091314049023059447851286040574447627091986177804354785036802739615771804639397085996205407136774344990900890527471044823808968873620991331242571196197325007309744227591396515563196803769777953223602406086104615334405624165994522678798889358337542132775236341209710473075891378709479705658045488755244932647307196569527402254282000132609415119406886341567222345181141375844634946153806089820464223561060303305046944599942144400749793378391766403038213719559681648301217819638530573735748009978510104050548960610384985535216887802607020939084926556488820368439167528716454287504471747555909845827812177063524117680929513004937185532884696013550816407347348760061538524551732594947134902363848145080385901276059530389825326764363399545583267410897361679437030901600468900048518572759501631177586230526743130175477205041302727794891901452472208790359694007632013722449605419819277652618255237430463992993038430666455285459648711133096128940971961178719517139291903532148985351429605897571952594311368978501216590928217368236446344967231073556327856123303423898289474820644929793867183709973882608098473302161611611932018680480039044354002620627429330630015053448427332699950062673957614101411498279625319135474854061434828062445683346820540171938004375962423318822896425708544004594926842967404601281878515335751595110456015647073446253506359973076039103262364276515841372944934794332637313445648102060699174352723562347769292156733480512296998843400828668734246607324606590310070730922206179268358858463338098723776976022684388824641799675811610217615014106667551896110992951822626462661904511313650961900632661978941847775932444834654669702596286514939269202320600570764028947998336949016837832193379942881801849077359645684173997908954656125257633949187763548281649337354619798433679229551731939517220335860316432162536956506424238261633278252109527585674441175606269070759519290353447717336953844016143281446675762527660045601694519801633102795879108326233960486652593759818372128749282401270896982287947527107615912474201707723820610541321426694977112162128636812714480851244673266518844652289670785778589600481162038584711531554083647472108637014840885732393903495999771791999122611908600228589057038929357089382961637219988318511753595777166839882744946999900332721760552664438045887851484600856290037608639517487536744671079161735355565990978236818483014626358552050355476078000608225115058956281294102167894467954189760175131012832434264829848557831090826257144450308428836842304285846941650632366546025558038466802254947461507721001586748518715080603583874932558380681735299156662090607764416976733023781505019069737703395558394470599816550739715684129973511442752902699579671453771293471396851417793067050392644032704328755722407377007853137618522623978989104328046127100440063338802056176216711106035642816186669658156505980076542577492787019348479922076128021903412657255806053371113227718994522867457719858840891747578550679839024536340231492501269303524877913841136728228482271708178386391456075938880989175763500246342120791790317850869117362612300601185617809528040317626656234110011382617950116520370000350371229864736522276851372783539134620522056292120735099600826594308043879079508575436290080240740612817452150097363686611017697329379152452311850827599757410737920235718818990049083718980247342047486542355831449019141310685677325266291793224000591991166163694635579555560771656801895441076987923946235998937266634529242202898498056936332388155692578873000828250331750231041621981774389013899222305775005525589480548965813453336089767072231233409668459537155424141449441409349593862072270172626910018947622031949227839575012373249992691261383522563395295145465932769805446915236964374307468051841418441079534069344289580461265331653637161709970793624421303320533155104624876411751083818254623219807802340553861263375653395836611314048696570743078119137348592480183675018939187568409547778642871496916495526813251325247522349824265688429454648647619429592224425689785975795790767624178832005858894441141883794331656673074701795707115002619384479082385483671296698269076791486146433471013751628880846249365268451170698484555728598581305205724169159970396877312753331103098012251502746979420512613724928555157294752616763996361191425719822902064784339188577443870614063066337125368540184678126436118111498513089272833123750916141678531179666822345076974547428741505092806711678778252573229334574056271396694462525464066182422461662266228346596473096134606846403979113449917929915119120400516316096597602348430692303434739872632436950749380665034202184526736334834265462484357207552640678518929455898691440985674992943913841282276711693809833419531551001282865891367268446492602889607353856882738431067722426135631302957673767322795368272927400893848485090034388307887193417614303430156561592591434943731937703082720694588421742317120637120415480452814506810510444705257167747952679126310745205528197721255984406531783992432171499882564841405133637087162587834979326008248777242559076342586399964735106504780373917268361205001775008107085011449756008611530934342053969527188584861237403992308338537811089838701525730636612031874181418424288519996764312828843707112535128689432022771562246005589146786251617649189935428606272088743213078257975522463993489031571646381696737341259651966457827628510653802946106839026292695011697827839749074200708808928896050862886804265288807654563534225131950149396270333224216607182577252798673504281271727795168900099431824379973002228220837271638851604632318022504382494237493600041071341902307056572136073201246951210287115937063651950362069884005294623496112237218349458141477494461626518016876600176482401176907580808952863614299073342780942535887871243374991547237473616386352291394055203978637069298345896165306058720511217674466115490109619902463599043876530173853328261564446387248433926561866083127885450607945198852202569594181663327686054637213147642522868881914475581802861868145781982981108126020956109097562504828126545582071623514848491180353605532963671376449669162373266605084265530139477441591170947786076947524536805393104999828175415784564847432994281730266281481891900547111722987804132962050299326771809706062145406271798681827289048177217822701803189100947901556814614940505073238496290237151286566433036394828175748565533243546344806942095213000836686303561736108087656188771062935864692091142594116624835442436904983000421429836960386672051469237123392862225435677487955614394656866342599146739451157549197920379990037414441468368794537670643128844204426292669140959339377089323874925495734473110601546124300456780774125582622350791041310328435088118357887409564283487501119585234554889067234673561475702354596941996560538911371641301702631031096099889827979924948644604481087803432497790850869868650327476072254559807177437058117091465804247866873697560733583718103742501976943389670160057413847900502099162304944334607702221482338260595478046962342148787434392061535149363153921517571290347887134393419471698169396812874222576530604833160065746471808628353062159982825359368471757214138613520368557305641918146886940338871996291283407617423412817858336263333409926087035715856846451636983294514767133531349141290653418595598896512525786519523073896239578846699608249351538169809376615572105349388959905000883257376095252417208836475328746387251168910299994161119111358324071681081007815699916654689603634643195914764562103282257668091641103857170049309902348145987365423357288327267769600227541507646018140206309100054769306737437563303780926498959112613151489583010368153245071216456541448120349192701425071825783925169871654443167624892961228016068304057494244017425060969973483676824329619242311889440074377590657954793117904055137283874094433902414323023529270430798828676943013501762127595942224640988679567790666868837625248387887767521676512596470984758775685832212488218777696902158923789825178934267080813116942251423716193952711593750941176743287891073977634721222033763010741321571914200151720723538596313844073842996656362532985063172150106041551639440696222803897604721947423636835126315813734605653928601123562735759124772087195926657668741954115904935248104595222218148550519617973982693464555344133368114036278081624638343969937114860279875303814575070467504396195527614851383796369157567519331200113766791908485628815523424022323344563257324369695587858481308027858441938780484014362557723527375385793900239719456136802093776608175473182287929785924165440875893595300581029688071088627090968905544281286501534500055216460404067421852920599619823120129307402266060351844355190493527179163711565900538427664697783783472467936762003470051950931960051342645522493503873071232261375192473146880683835859943958948758381181975202554471849902792083791948810916679246111364173370275399957154813019885068249844191012388060250301981418528626479587669459968781976625704765662413178109915930510083797487506553170675089572576615306454092999027517835008723205076833009578965697688187720622201955800006315908767139357006206856059631914051591856209581987578122354490215749373347505945602592308507645456802449390328433791582076516405655273485184496850146100106148581693984093733707993438653125395061108830523593150110719096660407379246574699019469454142881767048773304481898382574571044262526936649181336504268688910014072082325823536927502300182807154332755298346812620754399912259845968526783931576024510391849634529037838262291953679465395572960662606411738917327099991783439249281187758223007675301100041578914312326975876094823144874364718788703127350248888289231283212154770917157206719555467303505505923104144733929150597992046145711428429723999041963791623525872531538754321499808053613980897893303538767932737896036631505618716463394583854741911397857507983193240469400373778912467807062011393103777778706649770943707876954183853127834643448028795805779954400437314212131113405225403365719581474856457996785878832656165445732010156123722533007970445861210975538801290452183793930580101998252084375426829133465305762946183468854619698781189323227622746453346859659958324268047372243322745017627012804661564655834977818241314731669085833891506956346947568944338144029163360858391574514742366382051822498367121624792649469413495223172871289316992207053775575720996391917821690676554140678750062551605155850689975168300864326061216615141771495159833434768578304837126805466901608155629529013957393466217080400292752790133002128964969595226037179272949256206207428370929369306580023406589192134200031357432224183001255818333941672967713592136387198024372336078432151978499652464304369375922594094834215348198512426172418015652041266941201399460244129112648845959010156928963675979170445358153304801928899632388791262957944501223893020132036263426720744714751821338245389428438238798692263423242517109582439691725803872321117615031131037053303225459534757236732486150440998028105489365678130742117412122748369494326134194647581709569748801503959911668060642215848716774312963474093927722281064869382868138703564209850936237086444551066768748177585087618802433153242444495473495587515769980697227611631441266219219904179306349520099322528907782283996346175949348073060277840912499924690656578837698274289934163272611526770664196943851928401614478353262999576762518752432797939706281184576321920663564258415702651518875462488882434022085012870187027163011570707265325707097070303205443194916099546039562773727518312156694236194836124399553452648717571725911533639066449972513448782727231853617302224982332858954970223750234232357942215002380087063753522100470626304120691668377879084980798773991267544448002741769284630177228006840781189879168004637691072660417636386170577782955344654108992182141633653954747511413085664724677830182791114811326794165211865076081473565065540686780133314248150876875734471358735158645736778112548507155969496996836980913078336816630728008901625741684523396638295845288730245701799216193260451727621724301076355176082541257028617874661702164804033285887268310864277078720589812352099420455892318628093846694968957116445249410607843950796348912997590949443721761760601102568209278023129029379914410195876333235922164326590426513302855453707382306435528848027065396548578390522514203424478941896651201103102204545005867237685097196397337203108934750151486599892451995396346536729807305762274824740113528396289208311068556754011530487816596495287457879737144503263741044173928400631332082136557935145714338344656748022335910180973417825660791447460958289185622342974101811587076246565608288968504869740642246950035707491737167905640430581005400201167941206710825402972098330788265149498010030905507533890485887193428830013074450570825179263720596993769682144278485575114306560573915873935377086078030004290962517417030616580100275473687500366396155435902296737182127190922977982591412743135197606802176724150023778815922672358314845888207494644632251088821633958129439444089620796748309153368214918634075300167942564747031943981193423480982627860049260062803913747669176924853289428418758122497707656016168650659933105266160750742202192212160226307319553307679462579108079769202925110396754928217369117880081006576078258916318981227854277736417917237954381112512637119241556844285457269776069833108716647974820030750073382886108045793105681023922747560751200651600239744223102339980896533613920100804513793265931497472169106234819071255787774038927191933989381677874469210760240003844131769592371867367454764071557950672189062309078236735244512191719410547749674890606090930444985924835143006724369010646807254186246514121065202019664702676393576364000166801568720491322303632913502546347129239977651050609699830190435866026366798892332952843600391491631841948363502097518217350299804524051455621935916518718603462042228658633516874221879411077383528409605092499437593259634518943984872862638823782088398430681779999246506775230834120785369776033596114697458619804603824571628507704256593523217246949339382173809217607483776272246144377045717776614582838358249026258340900679358445273771146241506665217325286448980573152058703689758968677513161661153736685685691011695680104528261571344259363582113304781470422780124831363855310277135596952957667411902397938991554654607670312751205748711048395993023177927937187275555894555329058025441439146821689608004682460303290226431539105017165556671273639813555128633081774299087053080875379168888001733589839402394414239903743382398595832504517595932142401505404822115498873156567880504751436268857173940203093340650177185445984755928529544276533937777131554528617100107674199252946819611983223944398842206181946130896351327947204306509310060593241667808552857789501125541170539099196927082467294344585888203468248986431385226575034039631026639294709160452674579964271452942377055932864881234639761312678521310472810092608699214016415283443056633495748733789367269256627215405997712361707637465079947424603921467192624470417860477503419632909517645459349267881935727756651168771359797577426880861842653630030695821161367720230225447574920634409021993247850047254348260157847135699867475437543554698286236487398074916414401159321335246897423550688706434202866543678670170810130971499373732871211123129266533579861014359328186851403487190396011888496940470288405741861073367412427108173969036247855858244747045563051318734005912309289123792012713625036631719375237638505820743131751094520266060175013975878349310055157951181752470272595435832983805787186206352281697875805983524932086886875046741101336753809745857802244182464193680990751682775957823054482514109886225766256042474929160020951644941368693519341104401084369859023025020841166229715994271773832786289832384438591909284760052510506323719059150778952122723927032349216722098913000441693938677818287629283599411946291307888464976604874794329958227263148684209825597894500982909367582819487801303618928312048526742122343742372950416471951420557389767498105308963733654938396538415846629749002797889664663707508826336109121668369871881058429372884333613149549433460710828471210986305418399080285790741722724031080581062298376295795000181424686133418447478949462826914261325720115749118132516623621722084005672607428871785509700191904649013634216480454571258085794879571256381825672078917123215455210081481440300270402532189570251875137594401876623695515304378644872478450711538913483798333793535819318071942297560901021285657416692120581661335173281001339651790971676655221948368707062447928613595214143567549098085360372371614565026421466277747365231392458733683906436262279920117501039540968436008149455701186214768132024368816312990024219846540131781991916593405924053011346880014837848175515721034362778462581348534610325216579269366443601356321855585325813046334587570793967331279990301561449182073102695698995894862160294714827885445395241088757132245374602482084089895186400553154664408626833775707980671964862382294428639866680987787650806934144709687465056544067257651606510843139407895314901573299226937855724208032691704195105942035785886654717594983706402016415951747107215140848257190030097546101253064697290334148161617003537186174305900618540380888164090348865402217325767537758274763351835418898566800874403709235555978324768251614984886316313106462838454494974542946916952422177044919712621560363746106164408625474823564811327956679134921896257801084875422354545444151395024780418976650132265061709959071507978478661859770163887570398682738010997702633957097366364453624868644192406112165699584765994784502695306509858442756352987567259546564278796029650295581282697611460922099102455311276541682679956049515153872655444210861764212693104509146549963039675466585041221061778408885445532921737536670581826164166665675543320936699012765588368224063585899124066611795727535445582601375241953026150150627518213556331771840688982060956331008181697581070740356611329315775590378993492166203788618814834013826727825058798001509124904023984868527438166782678244126734288796985244095500847553681360255746795337660845345978795866618116128142556186530734719901895862589681230844494401942077938797573067150685388372499614486613006474642441857654761186031358654865714990783528286005739033620819886175804854377345854539074785727617397297990506999006126816685288867247535741744361483857860748219590828510901149594914201967330625819234469250184614230286100254935960160769944712943401129809895996241690612246384524899790857283839504047284647725258627057743465637306895487565064181974643952417093214664231906091606256305826757751574284641205099937222507665625721455078862088213936834068479405881683231898655031150404978927326690703175572973379476373276699969797686033943859527415632992365433045034383270094717003018446341199782559498130087489670349497146517531746862442773140159734369608034536692630296575096426390309025215303119821959387913043132479433179281365911582264994028415522802246085121636450624274463155470011156570821397684602798950626881504708270876773921240773930189527822751619984994914175329598638777020385697988885152151168792069495398531244707574383597307508516202768239194249950392118192034108657439608735347119827836625520728070776675032806190508792442034117299764813131234465184553346818750996611034687188262954876613457955980668230841830586784348984581942166683872984196525151218565327528633179284204994745840295288770755005905442011811137910472932521576532133051579061684992398487648048969981481477871599967859609395649518086603349497684642169277900569224791031418026144731600539122667950384810547064903067251226379524908784273054461099827977499252094471187478210649705788565912514560454421597568375813263918824061679572676265850011910949200191379707237343944202329632941269206403396755603112349042385254792762670937085139578671569394029889075591178179822641084051908871109231824963084582040849745524997485235501475005005463170375766199575206721392722463739541526613969336891925854582824209131043219550760451073325854435822014239555765455364622498839150030435055542900732627108197144002049574845210213761929397253691126514746104483861850451302344887454487327545574644792803091259568662980996875124814882807678751348319386115266217153127964819027551376016772699811284952650145049588072210705545227709515206798864764079337574221050003846631525203383369131365869785880601718578092042692017639425181252536655470160644690491695281068788377091822723548229030229496703699216534549385887230189983008618887131773066328656671668148088942265923225481361210786797862378969647001886903014754716802470804287333915074349541696352203714493233501093016369032707754719393760290033745064179108347813724814159150360481224228130977824887032842490886552338541890047553094336250178791805671109364156749591449444434038881534531869193912090319448029978831810432272713604879584828835603504272438134738435752252430716638949778000303361533830803401112405605049241958301721904701125843724421402422554397722086510728590253211854601387380206447684159788892836818058940107260095906305955292056518283992566646211089143676182145945708009332155439193365126806940474431885314598884002629754426804915467241905456722911128750373208558981331217145278934484117620598591519671801428692836772697789754545724121475493396634928552302814808017552521538570884917684512525581808794026161818702585145118299614763223203647461216406665661430203903966373915867092583043305253902911413454108619044144652959465119169312823686347824233296027630153397815695256582803528983372143157414947617580375947546035108061206032998540064214406861484092734931190058693738327473057913433604115605493312409458604732648285282106907723601191569209860393487791983230719392156997276112801307716672534508331582601427916343516825834284900337968916378759788196572588216900573225721351085218923825557022485323698529611349726914017043984165716393490846109174011559898815831322105949864867812349507414962339490439714175950542870711268361014189840109945385940458415404738659438211704202198199614772930718083349480014419954290337165973880243510179559183414779842199067265394837756419726215954047051437193369451719321401092557034439121564464761473631139369175490950853801434862814441660228643832089366770993177574093128800823419597671873233911946626079810424553552000853587621214120258862124799226958400536463862164377568362533555916969856573218139576017476331189896435996732564701616314807596151715821924813466529393166586007649967122230153725122562955613030020456888525034821013577306869551795055692165872251933502151445136253740234051282333222848109022227024459598215486673512720473628694793166695098186825682182646557741051021453217548388823939826924866818224751413569513460623773034930221683696857494991181599977520133411069341193287915698996227932217677312785295737758805153210700151431895450434194402562309202254000057840536647932708860979358181842139821315654692164061950582530056214276296802470806417021334097428694814382642742466975322422065324283087873879322703284554948600183161981347805831461362887964255884985454596735303089148390983748960756884104867041013615498621250638951851924471386734020582811836771447855835185455878035863742905022112100263734585132053204268780741034646186728908101110620452355415072530431969426856132885629158657335093489087779537647595310633612613181440316259861060642476486356255116460116020162498770594851120507750622726855225110692164029566894763692819432077453793937214399917971391074974414664228049058780490935553687916681194472777875289558396325446905996837049521059262729856600315894626532938408943394846295936749030092720310573713592325365241027524343575893444288358954906359426151138334011429647051592701948568708736458415505800673613913103528296197240984218874530511897164893717476556881725125822437674470908694667854414178672995491078007018023187231573545699558651276738211832825685837600535789286702519164424418080315286961550043082458065646458700828558444579597036478630040098955462538663813389248383768100753599647687846185163303068240732826082824713358492861444930393249045263681693301547743522077533016731403415661829962847725234985712908143238869109428525911360772499255856410057036081954550898592150624993043444999118645607828260379988159216716685698278531100717333421661763380550227870694674302854055523462614239749222838610061823499768647897110839665166658536639007632041719407248343136328648565975276491324099107795578138951667892788254674740271524332453829749687580502398141637597992376177314628352947395929634268745045365309882855898101864009951618315682717040706294838277534426468964511702571578258834392849891703047226341670920636639191037672690864481075642126078786025507085348173807949227263604389374688735375594093515896729249136161621062708389225947810994183930470011945065531307662627105400903689623394969291199040573671846110853491190623595933719753130959177677451951970335429467798004603810231377071780145976136962154239846435900852654135171799916084459531434626305435500111984788118235889223901024835141642474934919031478630416707093198052676200572776741622215381091284670671088499420602659913526275545346682896647902094971521769172516392545185887239048980058026285229422139478557403569080603753867847119693519957537446772457851818419773379093166262017874949442755673371896260355925894403843521846701717866405560889313534756859678059991162250289531221968705377041500910792658126055170561895969874015199406117430408922625941617370929127784627847849813995300425998223739620931936710703280289807938753012938144751711146761854652639416622512765920779312843773078365942279697759889782923996065494509565500519812966246194153606505850460690248223575659625364569539879775114693618093261200144648377150450196610446851452907317648542205786464378782326456279082222723949295682892738800944986896072972160640273473454325594842521134460341075660823054373369521867302527949574924326197267285578011692530844982168918832729807889210471071282535509467000364758139058987104143792947001737628927656668746111605696425744686590670487450983843731344999120761945283555839544023861030126347231418105722307675679226796700910643693331665528867603656044535544094711032848208644577817054221197884620180938047191756546197991387591925276561860755758599550597843966944770375750162979701854816224692564439030176545183495570372793051763684186593944350082825888617075972586653609000129650324999918791844908663943552249861765137052228371086517154096327095621999531979885485559420377403333634065267532132812182282642889345059403974644776067419013482678614546465688937811607935275838074443553232253631238165183944078754073915982135301535462472026079947308493643698942164790252790509872728222835457266003556327238036929988974994830736185105948342985767693965761266068342855990441872452356207356368046651330092997010770989855522512460212055466814207682740403739688985912875684880199179250833333275145769141928780875853999735580036664390847337922782076821532731531298825368907925198039777701921680077140508884258315221061690763294627282790445703932172924916991570771499368019398926378882243796494203651144386977635297975027796037635981328214812974228032982195579565067959365708823132367440821926004685786751009424115086842728351618888146185618869541614845273571949724450654419763627823710583034383150973082982280478073882119385253370754741231514064204024326849310749508381204438210060624496850537026338297082177597730069804722971927024480468988287795635855166569374386988830248119460004118937419087502744040573368806585354417899453139240308729466003528008446830743880026505860093524604594427214944035381729489643680190790935947836928000028635145893778901813363052754725351936433434998143736421925883959752352774065394990138922741131795962852495881660281699797761693677997744236217928361844601678859484324403591145054191878119122124629132923470375494919577775009650063366576195231428153701312232553145553148746270735585663759895408008986768403222044478597929857081402381971797492179238415006986346160981044796661968530522226376482664270588094978891767153359348187164330986341882973102072058545380706473900158947616225353949775008285596773001832401471730357627436582592691032939667689361375103596469669960915268745145024825633081685551377989668684453778776767147729234828244095961183881378365220627580966914422204176270390039481439779168426049487458884054308808990823806309561025537629858271507002244228303897810764694152764073106956590133507636724340746168945097069132470479243666830809332216334791187708374516286868106329398145543519310660511013890920686111320824125599715147919112059511801988880515373884655097306177141541199051001034713684412827243781344969463321781418268345823638152093445429945014549157992966875520459010307541247399361730417352470200465490837818891855225267678938656006305606012131087425110406964265544719727953084346366286520675966231548346019998927919661460412506135604722149045431030881886830625640471148819545734768150456244130032074958820956566098078039858627949067257631803344896149307961152402803717626211593251356054359820014931898880587047995741236174087158035356564307073294104159892533589017716762569792097595200805212104746028340745696931573719313728092236030843847469189052626828054455637076850470630263685506433370931761419791139260436488065523584125798982810561134868748181575159534722116558485010981768099761959762237392425858456661512390689364317387452928879168943825000422888158995303910851038920011987318061399916826343186477892687684963543854362800264169650456087020726858582410093406727991636392836154126317330716594778311349385507227919112910076527344019605313382764502712291907854505424638732733990268613768816496088579583551877728781872285193469511051742449787939577552572360372272710699320014963493730343221075693220236002757232588684090591038442693578804528390113086108785334567957636748995079495793359870586827519569043545379578690143024171771020862520430796152861336944642044020134269654358338195022824767349537890760238155405619768195157547697157322610384597876167770145935536413700703148886965333235433287148486702678947984760443127674406247881706803004844742223427474172042379712589346124445293329855437930031442841504857414233755917786574282142238075139361776217910560246032760432440043164714219505834976902589881914659419723480465821784031935781297242276194402704979226616032084565436765451298131768687613277665185062489893563421786334246273834027363654545911426285754794806546263965277247375495257211531733003145052171024653058807047400675161781142962112147716821647026767041116091724051703122015196634746116467442003311957441348472036488080473007321262263878734937773958995913196809730913157144763797387907455358235532793059191549733032217814032623481597854983172505370164562124533657088749608478713248614382547807266282385601919535199433874312863782698867480211208910810840394987842449222427057165060319228972804531873096136271133029058815074842365065012596103865360268746909900971015462296141503791743444749978875121759849585804574821252583308966401858046004176879422635032101035878850282027717924917209699666613579207139333427216306749097445030329037059460704126229430907755347036086149091541405557224560545496723653324690965214975405070094528721241795757742556022299005111753933667574860214600324054601040227828017962741373450049182128633324172152000324181184072508770282840938488587353562645188657452107573297050104309322365148657525706959050541424928164407245694652840101646266126564659496619327609991070267726279955017609835331953554085232411613517851725307105576983723781871907666557528533744251296194892999370047990034624997280829170044784523899626109028479479637476272965122041125430333044654759957180668629691713742188036140467866957818763346363234039303023294761088404655140266279028438714128357020290662530137089190666432055696797142512538811025210075077786177705807206581111413917366562472913627181769140599828486035064987109675575107482379239760454875617296311427753398096327016652768984674211680987735237064935097796683441198769949917787709132836531556494002609047778932120949992418897417843253470207520919491049202009609806598452371885152222710335787868549321629013529150125698887227473166836621728754895086071306689967327844948262303372689083223306444420368337867343835494586147139677441211796875805684271636945659896511988821111330282592256207793980929814584551222104832800896746981856087442542663242029293197424511350513675772275709850080505939324775812974486370073211611338343517681193624236822222105526690572654142605118307506134889851272740499504103396971013614079584353879763843611310668921642878450891110140459154217923034419363239586856371675217327326847484217820913577496157874499503962395953194221018086626860396948213440446831582652189890292962594854942527484632254646567726329881248685357268890213034034051776688759129066320205003877882914049531689188886558491477580138764243004577411034844128394158229905106550283271934092707038516504454367190057521610564270221020138384069431124111543444256549438551182400156834245181102944453283411055427582063155053033268570639408354817090303315613723914717541248679393811685926286524278849180322373625975576800126867787326086877379256935120655012850347248180675226680412974754143472232403748261905008016277774120858303480851726788908497333904410395914612401825975235046844442483958779680957665527498774008551382589801084855130274997245473307200878069907714497089001506925265530830537979492116478865189757524831273365375690345997950030277989543964170765909931702196665857762000711798190706693006421951304600848624725109204950332122436769377425511906719143640157118340593226550449261879645292910564931610203070257656189348328456706876671513834695571477408504565306500051305365276425218205042799673168068712233935047559188597742159494824913766480084867161558886425325753120591052208958840822958836361470908355750652574671730581323648309253215612950353682093072794358845148041705287761669730197049949080293629399168916002197053653540631472023909020473128701843195960543426890021084220627798744088716851789788409597330835338374398761451892567764459994888030731513215080102160780159061528709451553752343536261392905448418341632710692191561296919167465958147660638643862189142690838278571806485523258180723157390104151258247264840858593521241985016743998697693323461412625696253484340580300328163191528945698015655828202960638496871912097083653686522561684261300828146023525767306404402992955889982655568196529021725624792039615462789561602979056639097801098958283084342275802956963283679058007230775405718410110441895885163647301808931475661565786892623375635779720604394432099988174185425056037729026236806801073002355385886349873387840665818151047261313792775230270215345164619606941110701871481711342172695518034482388671544347285317506998476265401245039389295038039327643030537986217939794520953518381729960832882173848965871673304199705693992417504205789408407728759156454303736744808896881517653015707654198897976438451234171275983237040440954524852573699868789297740329918610078787806035770035680860159713227364950148364677574166804473258099460296698040036508181385577485421792872702334597986137712561743912593213638383566687834860736222066456073810190677820051278722649701120062968988180016312018382915308848433369345687230095224648308371226713535902131579528015464756760848887137902382472582112541375688971619739163640036968934182622505859766597112635673947761943314555810749290645194654403982165786346127773747508236209203159336473338735304575762162606604531688480012557470764835117518194131513179756609573249066577955050272379786639461058664098527666363476051957484544398895860291397718544326947986584109452547021457717140406109721720803436771327349446675385783465802799021865728209927017468126835149082216140503993592243849230049453491582454945746315224835224086063974887593407016995237641855552063053110946101302534154694852998839564546913392994275122069986713747809616772980732088174973452207036987711473527775314579125143487721956441812891985874769637276036690847060972087841185781482578318609440978768060329213451646662084461057048993884720945748316949692910261094611364012975813973744752723696874264168094679279065511719639946258351150342785602327054143798673119142649254802356163251644204277029864429158875939131855589644011770838018911951136575140463446626929245038649276581880275188921491882446152109500074666309024284577589335970804124965196624120751395290833796282364857244658795497641280687440641247531896282489184178100676075678143644774455627943217282190653160127325820403490065478856424497549866351180649127349093715681701525288668474761676467453384882337116139296152559194830062762760719771072106220821031376485808802093827041690806721566001823301572681249478797050365282731233094242728026635743832300960662238869555910470445195363891577335437503743713294208562583018870588501603033411693112837751558285931061920700284759205797515754268983588691942524807913098967931172463642253714442392183864975231681402665215477827315763944945548938790185334877459855577165413447867573533826362700685034205170944385136136396952802307261758536953384095782710317309073882183067257995071370503541701194233269081590601852086173808872577464134654866098319697830650384378277159692965789904918009744628601124773041434071607421646613454873346052566291800617103618328471122022721177178594934823938763194857778468538545330663704059424400677472883655794286431770726059999911816891016606442778172507733951745552068020185419336184013394469096085745789002752448039595931427040129220041548972892115569548045419805159435551328169419758596520888758831004458179864516894434579242391926455198934098131795964870532886150751739722886456213148718797370118765168955595695611259075768815236354013648066034443775301983023888194068376097603718598661195375561661290754849629583248928291544836745250197167401361011712133527364606866863787646458817518152234928375519740633221590913664546313848291530988021567166613310403918678320099982109363129994204632277743647848206513580568463071409217515540507503258622475113546347944054802880956373950571693739107515352317433756400785095054320989299704275913620383937344870448619990592901490084206542275118247437535361751921432250213557514137054500703946161434404080838017797216974810646173852187105873918623057160457069074984027743157218945293145131592738591649498463410321844656438815589833415433677547198006126972527301920948602098564195709506373616340577805882483198318391618522065842389755902691538596250825995295821011230117386047585723997752986561686818779836071669298718547028843611971461521266146864218225371079110658639166615878714139059882121305651616572646494868494085939298666747021421374017512434371579071484298004124767960148010418145201777548437432180956851058298999558034006874606607250051519664859952998705693975247729608637990914804039140340512107824676587836235735201517612672897134191303737315777009634341600818102734877013198362421539998381895646398697809295897368040954336090769901919483416216221502073932645809222244622942443530205306661294129437659561424551240305764935168629636436315700022895727565728223144627392013171896268761949791775933659105778730995599628253680611339194157460546791860217090644902182165513872510424963014899859003703665998956674108382680173396357634928133782370019094337345878204617025833688131745798756663239912242933546964032219829762695485505182830091823641107111683012827978462930821896994029771394953731638137260632360100649322293104677419907671672327382349918861088014912117663911586166730605887216449506126853311277035190796228048755710290039009950276627706812094978917101882241689211572706358567128066413381679453274798464737974143989400635700880416260360947515258290929757588333791079454827895663935595377495843418162081385457271122375158587084972353851654405515447234482812723217545542643988540071073594090622322360928379398888068876183472993198948863911693076714512780782132650125649947724929165018767771758751872455446364595330761251571640602364176075419199008707881581227986347003827825002127810443817032893760240275825075816765151873403875412358675284805220706308701985893785449962828061795157033252851039316177836849709158452661234670178579472648682314324561907656053416489318957784965419485105137108268152973105557703935759120106016363004046511727985506131097798637058475712645982012869963292675131234586050916820729304002037817571153219752178409382139526428303983907177994702267405426023682960395939581647852524554915263651538000244596808295024344617957415440919164884207477361989431613499995058641414625421646071980821739023703745708159143995630529087355536975611412352008905620832093308734848358900208009368667170609806969383121409564288480898610093421763800449361925505934273769981094017935423900703256715924128594696158787827245640627705579579799649878740642119631540514999653468603716132503262723974735464941227322151717104550579468186021950282992011316516376439379754820303087767178517178415417860383980832223510933822649007802834722135110971206642318682651441984546256959333378016164884354449372252797077391869383367852824415782439089244917482009351575870676354224938823342160775581090247467789994389174352819516029362898059577143955797585896425563950316168240243258207564689812347937101921015824938052228044682411315331390799032318085889698206111445022054548390355246442864789703857139699864591650018181375819239629508775386911236984274683754463134402656969678198296335440842221972824031528928172478790777337946700969409343352657019437839721922139406410852095877197862150326674080664868645759895651550827012780660032345722595570756671118719427008254763782269411532880009904466703990855024941171656448548148903155594553108625541627232557775261029756316434604792338426275569766138175064373875606762084102908436276361390567073220815130003786639066611285565126664737089918950305322213185189969035447463983821778001623789119908554815801334280428869822625847171083267518651506449709155888836770156339804150492041680161348069579935041964549356052962355282545747075385995521787939131880222080321969238616523010875362671174014985572113020019071491748198626603828558960996944412406288656153145295307540235514576876335263701166725964810218719543251116661196518892143768879803799592955607080603128310874158367518135673041439493744795378332652108440940781626206045339509353912514342626460946138209644600662493340072564421323959676771488146497608298004921871953604809938214697937347593438486344741165600603454866569174596491632319901323304274380095163066518350677739566956371857636419745149859592923217574693395980794086888772878396142095564125252900219668902623055612530105351767233792507512729379309675898718853976604063343687100216137965680894340715335801324005919900330719845880941897395901026195533385489120299515648580190255510516407423064156057999119246772506809007885373273011402325465891932313839232481919064294462073660766229318189208641498287860168493583796579818594138394014389391204364806815181651999876824392824412514395557804659290615737936815937932686699460059522015469825224996153877664155843929694826827956455475871525431289400145656939499505444753433518399778612113000998059202515855151242095192147648366691075425732466741502551798568448694496488780737883908910082986136291045116649283342834204024862176595471958385076110069380616988012535596218267688651295767852289571037271273892663928814826883899837329076569586186851384497979022503827805447160840945021535167144095944452754305779497235933027129327069479040869929215807246421030167671108077346653736720461339591267929862760439706250162040536837816586172402136874338648124064665494787724789547294246647279090612180205823827407617898436218681837077780130398013902705807902135608311830912871637339610719144672523969994811110278649469265889330692101801744828383835309215587083722616345893680280016027523807666578857371929934331031743636669369787539716374746341482424490205895638970199979995633169879472177604243692604209945593345446052458317700540730102876344294007821066714330202658731256008630625446582866142552521026499550466454759245492967141956253846580851360769330357489257897098977070472676037868961425872022284785478559773854229316784475641505168614386117172814297918859637408238363591440893535610568017893842360044313315706935436194189150676220361340706455590195136168516693750907824438733309356498435746571161251754228370123322319284574553585949332846948294340567597056586552075476406336087802012821569983551635326090336335669775440900855019127113492509336532383845980899089282075714292457534015330771814531786748727946066726198643972033567112496525292346993116356468431367821122914516113492954733582982434423201005703150769397545045522955999080333094141811635363210168410265220643449658215048516809072856307834687879771333581225835684441420834012289707630617682693492801328856788105306606238131734220524776705090996290398961648919702645995267925882193003253530707514627607583665065291305033459603131391384700267044159678879425798976834282112947681137053693281112993594480040158920720790364753322855751783411960961188429232966859553116678506323904140172402761334470966041694635173225890314206578791446670344827613992828246725285122619703121599085299812049742240647555669220213412327335802940600835583017338133721361395113384744126118032036313242027054093456262822013702370748249795142741505680675199891338649981920507300000880366836089459978612656404632318812360003506257470949057785009882309305092454414154324826391513936513296433208097126698874942281125538958392460495966522355753749138349418023922535487507732964068039108547848569458973186404897868215607264875658613447431993350637422379333888470344813300781833128951739274170980296653265085662869011193057822152010865410272761223758763200170865148139629353555584686241256351334970322974075622867393636948507313345323084429202893128378265449487198123906971999299040633730514374383234922213746723910543677153248180228290631742027100995375232584848714296280706798397473755401803325634790375420852283790472208161374245097014380567790676748686702706699230967563060937958458810479005999447329017259473875835557094653029531852513932281640256515060537572119023377345123939810575834105625117973030402638153384835982006591984834441564812566264349374267226855060125253919932161053493427451815468699605608740181890383239348061254266187390258788142042985526724374342182157459488154876548395555541066663388839213256047668139670743710609203749689625856654955377138224143559004486122097635482728394747287330173458014400963356913814526754065778746766289079397974057574699959545555525588703846073697526299777175566714533814530868594532480757405564562203997271644362691866263968708413241105637908092262557247409077131232605243576889944497347140629660090159840825595497141457928297831541751125545851694986629124293822601353503586248403904785074436802160561640142351823000582397847132676566879371442880019730493791681294209763152849819571763066502303385641869106995881840737162296929199301493527143983287294124826098053949546721176965048071652829292719533738405899706025411661755292123991240893035523135016071442310837696654598169426867023181840678593591261296706314883147662403559442091984127122396895540333650898265582328630031302402881909256949670876820478096324198924695811047760208302149863438296657367836818113397909274009394972472450903776521487123303610591746698252215112444393288267219122161222607726445962117299844414079280761444818973568315372783008386267655753365084651515595583428433993408731477273901183998054632880383476946315992621598599225011278471538798088623355787519050941727806667123260658519601434235545708258491436920523606172654116564443732996357717510995918596620755244472147696325374591429030024242469334196980219309365363880202564668280183830702835232193670197602359654675179438536290033082888880095058711409904802130784613337646513182750152900963667421074838064982887339830777790340452792405347394365487434037327830229680707648403347900363883143382305463024720797601111007827677562558317880378941606476005646697392078837892687638741649917993517293860102532255747320368936920273466775962465892189721536510606656301994588276331025441160577216352179215350316913068933443220933194066701857027729716209574579375939708405788476181976037114311521000164110458920648287881557092816846207076599569695565808571263640879324706230244764397886848781877417762269590134190711660194523009106084411217879489868761109777042866480692984844829396378318285215276900698821207511019031457262628094653334906484459310058470399671817263783765597710404602189391286609037614440707364495727190118044990832471170426167003608381918569326548799296837852004461248754973696732260024431927837922640710936377822441759254334591733485818539056408644127433585150526045632367132353334065205013260597021480991816673510504599727522996412945492276004110028709672473330059021994654916336052520066297239150291768070703085115454574287128188941024560078644194939686246085046645619804082787701755802834894399410226175718281295524643110380191227795705399283723643580588600137514787787858265531689530408493239537774707739673517453116618750324625543587805461305371917334270836444931452257369470725449722816845650978045474703184662693229310607583569342911163805367040958834986776733855219212321349157590383778656232985124244184335172396676275861374713257289706445327637042496775032432630983562169688106416615329291085818993274035560710329693449602389089285517882998510812143964726313081091716671013018295862024691194738570020742523044972197544227304453398327840733557142051866526788430176191389627156330256624482477796824808501731762622456631357462210419312785612340290087524067870639408116118617553669473267683963040523256383215275208022406900771446928706148950906317962105163542504273956615998326608112659662246423017510405337839133076352272077187505263510129469603901254468892646971456855016243858631470161894788569449095998891085109588285782776138127547765543942588928685368516474321497402031214641086657073427820063085406790988945614391979431307326176752439794027214724961339235721055280115058683347573055384976282601217317648571471507499707146986458975063847332611835551238597331650364845105213206626899710383501109143951740053104064773599095572930349404836614588526122879278629749240077735262596433251919644887758624728705858805560598589086583965557853061461387896640166268810245050790630830578494698362961870799780083548271730040323689540401825876216151714426954103235050003335477703061456166810560513047527765507114098775473633291327323052051933815931334303935117764894167360876101853536430615171502373692028139225404935554989250151182793782326261311568685584081832156068878951721686531669291849647848000522272010013001465985916515862544178916375246343553852621175443869954998513836046272788428822107835645690517485888393893525043553868822881390519189352480660687522489035646124048690124561550858861162625767837658873713177073077344967177042916117091942703286566619699039894919285718680923899447560786106645877098060081821484728868954833919481663734059489713817524936956694149077979054837339652287503553443436245296746434488655048053621079302185611134460769474775400253548838013204234634181717188863389534166240578160809562845174322962097313483448095100570887822520207359373437040208759563703233041750594047921658702913618088964334356461014797560901170653648819145710299844135770557362843282397890198547649366614987519098360306992575515012720778402432807755332723838347270637470360777951284613685723889830820465828854395516692307627918161781367567930391464413574515253886742432874792077225379398841505791094452117284638440547904151814335939794322639379661594244541077511374196053184548011188855459702203424681710826823639153900186392817439255356530539674306648192960370549396796470294415099704464624200114970674498982239356491690060680477219412785209272519887237135843300920321934420552617374127207397797054955617781758479926469657079782858827497319331329477624208573871975763105955919423154677750068869462841021912667523065444347203171415090906238717200955823257672461947044674425160051620762111912673624468921760543671046332433138615203752925234727688074354082635611573244600385812647626794732245775895880266212092066628251331973238685676780405298941407981997892928055049614882475386376559976851131130761269809611808167225809709267603301633074955815898360977177924720911197147741484465132205074439690919156112348353400899949030545886072409301606356533194263398320672730565718539303633556241913786705463917011927345157881230216088439222044982192172880248711887673406789633734429563659155094367802165295277645700948551085139132161105321649935440698876773940530125572598870718641798827689899543518439512318022715444996078959896825798669793021977555515323046151803816776175227933222996296543405023405694736038576982952465684308947665480491757510322863966825406254245942689068359478194949737708713194468290922395270332712462320221194929414276602246198139139804559232965898184258104258458632042818777673535889907771781325588089586071440896554296922892383409487884609259948755775020417825001236614918335807035283969876786746306521811387608406894651596789935885610147668569701846065739814096645776948870159528708568245302072620728344788843729617026845605217054475591597438761055815942555433986735679430466740074530593216370318412505413299682546479799282708136687457339474320100639727970138765497646010737285302230261972020404606107916019429238652588989738087949416263926087880487195407551534525619959767311713462726925795191656862734176227821629751564002184463730366109750911886022049885141368998577263389753820005648747945351253429449805984903907785338121499479964501469744647275900714405151529932429925434285959100042664162514473977004438189541828076857434639957174695172375758299461270078024870042779202923928526341606677712557198839020144501369149751760382992405843896623227167971188271639479445697220532633532247483117322630382258519001179610823031678341703282324890968479876206546586643493675171562070623610195402580191223953577206877934959508546148894814849744097273981208565996883970792180850150218925599771832576289604017825606308444179671408501412191395807978623103944144882158799362660032927559719952539305223681805105834399695114252759637822103415978031741666696626250433106899256410176005352127885601705984528215002676406197553383818404224355644552538425010934146458704902154419754192194889776315401735086073333262995396363150112803086046683301833429684856559310454052298787448207752846557392478557633032782491018732208315288704885788751603363974552894569754183190183594209748091096020663414038746636488371797467835704976778848216589322348786944234578934823609381963432335495508160491342530065978019938409687028926635537460750595344796464755155915057131233080273099546725896755905150933692712926474439594937668598386394464761453935988924391411504608059504154952328990544512628555904030364852216890281118946984606836875294013857926824166756075757256440875415183314216400080912184533284382876661563959036619264965954832073667564788254799131268782742436467916031961907663357595270177689223036416445352721371530171648837487648918206535251414700609727970900502540023580672714560954748743293369137091570270398343503694441050657479881679012314669159250069454079461535208224344950411028064358956312625532479356941028065438358745834033591147058856126639122807656794598664538139792334873082191225272272014884153407781011342125403659201333527033157871404261029083802743700386359024963570798160201404283848107733842580102526015140810814266509247095889603576053610315479147243420015918124449081559812869803672323008744844992217961624464244280222176720969344453586654888495999089317782923269928913520457100615881283632922759662022525363212688539766193483846491752656641077076497839219986257248775599909965321700874979069759905684037261932629024983436188122110963860239924336299369153540694406764866034960056628808154299703798065373718635511902756684843940936017364287282700988524624390082950118423906389465434441711688019597586954608005264301251818220529421790542291930880083497806356645417235368392101726365414997308675910852719053024048945135665536207529577538713615463766581196851933601403194423058912959592709442306391950050554795407476837272204879851765497343671280831746660411370003974283297550008640627588095628964752178666165126154490788934782250451010383893790878937193788679969992463006293593646878341550086663213933225376635538125089536832294706116983596205166485783200805022027538070734006103068173280330345053142405214049149255833008977019188351179196122490686848004493347778696975904396384295213054151599661251888831296521031734403328352428273769294858516627727667532498027558786028842709387463029788549111586262760151309302422739135350715142507002866231074775393557124718167347247379213616541030844518416829469032129353375451877708043036783596050248402718801580397928384195439077468883935395866196954470491673406622269228141080621587116971224326800022738897799193395119026407523546592134424000087598344165381854870372214778188291768266975902519642762206879252222509921858225803044023061406875588153477977167170228581212645094983133165828665967989407505298642646164748448739852012726635358571888169608222887451834140419732823197882362713380973962039252106251016770236742001234317485507691592858514125281689079450641867929630418500425965420236880623279010138937426047665743169207399767333806698240408006386369045079725064135010421482084265073346542879628018645998090902042130920422440306165021914548658571425321461806649405258279759535177460403108696314643470192255611328350308094579438622294037015835103467682701302473038890893426473969623550341172235588481021879788711851594211077039631875845432539209287296758527498160512108214585597889876281404491645125215005982575044825749768756591183727868342857339219030566995610118402366914729903432220327466594874452539816149434875644324079649817392727604314676431190183962375382022567628092074227593648164159397780200353067637876836751885224245146379095702871188050188332922923623006410456424152704569224520323979146725836139776635697320800094995424975223313420716364821543424620044269831465374143371936618726991233166555488238610785056645889139143829403413957866901320072722144347027742549480147044218665933390808085568770325198913042707259143564224172845416657033518868837131539106013397295297862814890459200935132629222709155571198861937842354274101047882166980426483258542717044074974860452540550258771525420326668439541304135529527191398767563296383212488016232628583009629330135068380599770562884213742841234140999729565709492295055583721236974744646826201211473352171258573629488657945460454692491910098514447552884108919517537150508513609773071195060533474338860567328440035441752148885610859328191964122434427362602701872800508639794094248579405972286873776120175090162118812002561567996838771194730522452256812430243368713368456684662863028101279547638295738573275881036384639498342809778509376879308010702484389400706799968856834134577606691016146225998966671248189154346543005180998861704036063134462984007839984759750548645196005167615531585097478879211509286416797874980216039260517000880232768872353151981911167838781898260573355185653378785007775417474341719618899746164282398428690146352245946702826847302626554192476646129151896781158322967849559101339269694009315945147456054314693554638068308935195212435507904735932116733940850640586763695142452141512185710660125815629339508902862337884786665460367719224227322180687975495561065636316966717577750292708068884069494603959930726220162126166587202191103618870599592677961934213760039279167896678644486617147448069333126610361581641265446477276302039244138104219255294088242676100459841198234617489886099488178940445488893542845646944340585435818816532033370431944514951755507352429777907856337697105464753840962787671291776350277825657920432201718888403374055718678715243348580293644968222141460096893457472159516618821605201890375208470045726802631281641411679807808189571820501555908785596435937958496467540773922197690068193726053323169078711545248805784607606482552274068345431250370741094023945069330966051332543151283288637119976607330972242678738055046601110661377976065976627326995062899466299994127154414537698088620623853746845269164580457507334745467509355810984269679250247570694197162486413057866176950893657136160714193689478187344352699238749213809893732983914198139217349674288668462872073501441898854383432604251427793618183038537253622202738021860090380220267154018936428867649851456881772811433893826537661017277982250514693408899443844695509733877250824749092429206160447915238713307142594359983669688882083383540407313352115973155317560395017055511191229150907534145394022986169716241484032076204952206706759389596404274096804533653475197130842073341618328975410209523396018594178396974639412040586932649942130344918888598425215856075997475224753472003449585063805069956577294350723557166405998212304535228125762679450081843188836534058079414034403537828912643792623030937822288473688485073854319707327339390147930786335688981527450343209033307545733386659743882587970622306350103593063907329096878198468351337995747252624024553545097984508484387612477397187120273845970355292129752940628922727340213220380046324094676497774000454436393403864279671261540304278090524159452545592230129086640946425428440245262151582578894467334135416366025427667479848239768145687964773948700726502218309268162647600001284213865413549245302800842721376018996192572328026666383071950729757272189359771003507848345874096982467333634501138023807941663451785390434785970974636890549578871867042338830883039506376881076064894283550202721870611477179477595874868350385007928979399282462143625174601354494700949603780629129135275731321791632431539595550989533333077728444723325233548750341810207488741912320237921057100503723177417663568839010094284913665881083849831317419157495728095674492191024423677051969253251477939567009718729086051261856276230293726380227080921021442583671948581212077154308384653974371820716681259659283797131087541748625053415866297995057299555453288549042780290942963148496412226285624659138070549403975162921872636526287565228436819766284483489277795528184613437018965561813893504594277527474700832018722114624732016756440381706502709469538821881038766482240088182416043902394026673040793495788912714130381122228508642484922312403839718197678470316098087820741232995082362878643706518002951144572152054276483949447018277082855414253138192392774669702745000751987972373234360205907605314068452578142887238105202143020114458186165311117472471583491860859875113031901731332219089522100267289876526542933791719681376927901948635448258008547434131071368861094391976935280777966033889224612978832649139638987837634935536612096032308330147767311126084130736815757775825417771975638827228767104526620442105224594780601745811126157677455502671977805750182945283112745241681094521687113254593529463700489364910441051651285689155391162262033893501135205785641643159458211523226957585196046110754707184848658376823063052504361701663251721838912226023782057074860101836357490417536148201297697023337612120897459266717367976483586884962512599473696866649448167496964241743106643902011831480330473587411091783202184065674024760627550439401946650686772231113249400675746293175378142711380073067659303835827798321936986803667951767544439791454083550459332762886131867318038735312727917834909114243485111101914604667009585325616024014978251591825548750817536968900671307081838864722852043696446835587751304456652629147551520357748803633750298997308237834894261029861626271313876259304228554700440277791022971324999920291512119830715615362856123002042047228817876158815281342312121158228626528253344342488387227070484860601047854952812482238764661434845858800518911116001480324458911951075378731619278054715086120157149379532350566176023817368825544514395998068536366309546407762848658551401472157765547506431958533354966401297990864908990833956008568003568173955281873832177793430732432759189855587879361042474406709094619308097599927491110949684777761046675949089309426732052562632199216992806199495329462134092037253164221925711733353788556005799201689097726255687239090608965277060359931402670518271294599087367963252190744111987435509967133901062073476531327021546098053733049145455203190801366159198549007399167124421726109414721688450106777121717090082200901512109049578691259414483013168844188177770755102842556814802483982326722206431980532206821157415995802145321982627370822827663369322294109857002512449426598565043520761063176694974725965956088462340620487163381671640973456022220296168067512885222243108975228221014177866041602406240189239476561278226578677420587373074844907995234600635255604893443295427654635404592940819544139285268228491297128809959682176523199749701862231588135030159022680729813094714324988430373314587931299550990565102571313690577571696274157982000856994825296222824957252088896717334475304628897647445046478965226543107293947757362950570100662668518841788834491811798232959384556433500250016473845978243041209902183276526595712202428129195298059228927727891952427834507365102352375857901399316175656173545507555688659442204785921754877007487006113534926286111998973471486534804343424764609572618122807663417229247756783374071554700575814405316028224880881095464779063327186988962899146160608321965259395773782621332346775326627277141427366417089765105922184390165408595476482545739155176096145208632647426560995748915470035613840684617114669018530621749688557033106862498009789637263894265910589580634319405370963235575219023028245211595909043157728138197463913238611329924253308446551909946328027185658767013582615537211595041086029337536064776519328847210109596875426480260534010304743707955301899929370236579721958663300444697721128903249080815201266337468737490770364251445762737499960093520898982597475415308014305470595690622467038628134711921677575564060783439150913625245831777795009243345645531036124731478822777094015380736124347593770804208453694471211534443508464523052513877475372932082151037263309955489123486917117401475559903992998469040442148839624635945146555833399081892349510632723741291640240368828460862282858548743037455098041925064904398888867974233461836820573556411852582815117519865796052443629034984254497466486962698818336302421287656231588544582712326161704762673562174719465548071816598611293433122131186615390772875962837438083528770683104577480439444630422726630114183659098513379700829652593270502172818305172393521368612578290748209822680286004678349529807667977155947687769939991394378593610287380455107584867837247816293003902530478096123814083210517109166864568241119661672068348766580828659494091726284764653344381747624789834816971445706307538050077785325331154327199329468161267643336162204510391235767407097731454146584008093488140912032666484476046187909823582510156037387788355663589248400860564062310330744616040069801592692754492467615256002489092558151500251553432099347571540381360081169719161376950374923206153869773358475671707928569064490340975761955809872583181238806446655646875671656974130342719481208801936639370156884950251476507534520857180300174300870531244945397014079054230173125397633718134917429155004440723494812047828318173770245011180963294849265255415226216904738598658174927525624083956490116379333354036097010415539342938921111631004413303183815040543398683936419830044179727658589168205313790299612986190258165525510203004725660744212449645846469108029071243958779094448464777247819244921564340002371192969304547060183104974458200411880957302508819410822656715003674716612863255403969950418705346548506197136379148491598187460479678160487417154266246461887456141825063644250090353432741298312525444598893721004257343587433222024430991220047687359549082996928685518711603726360157190177094138252693350762612553888827795575563122163526128374708209534073493521857845232940901640880781369447724763062154562810959641980513986577935082584610809395434466554279577795365809804646075620759011561737580268290994240111893520865358642783977698539074793125052415551060887959619206383572174512951707626628116937287674080792340779792670634104290024705885184011255432741545401311435430481145756090075511094147760378966341781277882967212091339702000318650695057459623122872000459059927956455178455868937226179330059060673665445675008385827123209623150130764070666879710732481805613320827214386890653815471783201351237227474833793088212914460721033238950066463261602593249180788598992795493064904340026205993452630263362119016469258277856968283275228617641050479348804900821015559880406089767961776875099506302915782994716446933570222329891385640941219754333170347427471655239389435411699209687119203418582709656786123840042219544729597100215038124161434950962324556813613470793305286192538634447006784029124034492933676612882412615147680401569030317229276279956856845836572709097515070710118014081058983775898800063270833151457126447933544514868096386998060092673565555760781996412306673352065355549412596379105797454023763134121668880810369384114219784527866077531273646166997404304313405116915233528269741312528031441609370491953404760946471526022163292255001258151485145582792216829118226078999788097655694855314581754968242655042288092105255826592213253125734423860899338535600083277748943376024345201759145719618067124104405935720406332715544199151961981560267054169058844370729721256841898445040086394596479507445894420162673009375100487533249132556971269123770694413554398636271388691961509228752871731892487571522294236662840988466459863913150056076137734207677905247462354191793705290492745215115903107818200895155113354268124419711967768666848354634288811478691226502246729606279923916976632200781088807814875828315404546609756105525646964937045997766473180620913169326260275866485045358019174743528560875883036686456248234855221857115376301651544474029938574645304110338178096186695328249403439738287053882599337510589946636828498181931915112325247428850599024044703121372366665904190052852270330454282202296485183279987298695220482116501721957448375984522096121382161282195558586411689455536648428181871665671782240927437424046550822840430517683943198421411167529568755183418393292775931077761486042513640596621182757184414705272439936031786602026940129718579566404498580481483874231226780977418581515676453172969862872934619077688856129591631982289037702283746143297250308635226366231971212366048515839140028633778247351052707148253788098660375352195190601980929090130606650914511687219413535857825848858484472752119029275747670211550736007994421498981837612611893097685981697813804586580828071956319063337376592433129310626207136084736097603309188995789075100568102368499589937748682379238585042911159950985788344320849465074571666210380847980366631726009550090781399743610015234444455770050807773525531737202994544411379554375452807177424572115650419766143823986227710396222507831039096068557066881786399754483450691353549468868175760902127828183561444337471718061204244740909837380172197438795455312027621514637323196896572460005316660928177889939872275317802505018863230368082649799713476034739105809180256073071963154076033080432358767401311092461036541012275101220081786786341862940683395204376743917974766744697943024722090784804189063819461189613358053846422839475809069098267133403649664899018916205040676614821599625995128729931630123270966885805036545774484601574983715949258137188127379703435308377392942140867970695872970534554620288298521354595810648382766641383021867522556815733005058868641895299756120964763388963798445018450725838522526946079444098170305446641765652077218170717651826028505502791066165087622588043858517689393091917303798375069440655441414981472845815980039757723174381959527915097783189256854041804954430276431104164906136466879149533228892168848077093066486455983035144435931303271169339707670100105920836019931487398919901593950901721109952832904034409619800056781436166691395075480665470108804694140296102509424041372695838348325284653012631796628475518800474797489223904466907293585826415214693827928446139703015593149858075003101569370208552408850081271985623542786042725683893718584568231632848965820743798115134066867575653526680278610729889347576155952343608720915933207374935971071998065628997226311327724752728820113384295739711827215478999009212953508435323405829961748185752328049431948739940162593056598687141641084665764489854386056435586060611926687051106645613456399263634018816808815578135077349045219093973410834734682833301797937640829552102351697734073998272908060849935063506483038169414024235211812008334567956052950483425061148083528873801215542704414160208350256241043395736477994712154026444406187853891336203891243704253057533877436678635807223471616750969887484857571718139901091667155125200800726621587693387817061241489140608877060117906974626307276860654222983360108831015699574796035992265758394028245017137344872151929045250656577595260154060570425055865071807318583016914742780775589686252897718982383484741018857309443237223505053922054128343275155895402579077434928215298190903084458530791227255967471079538098912387775621558369848098914467622412877496970829617262319412091942622487838008247606676312752427483956091293552225494211591427758588532370142587814904320818129346037953062445975425128166418146081885440055678778375690217722879210808206101224827001635568340308974688893240399787092623108806239531014711022470991359381778092569441540366760544935566855038231940738473097416503453661346422991203622980255370700896811918219594408742641197761941489484521219474710177393481948387323756187409385212651464132500956427692293514273281745388152021287341557322921205058615853617676867163206447560820630036655647368520974973551268074136959311805527502038795542525052526420634034404057997859923214443739222078140443748283860654144711950553257337183758735981285149008604687265753854623342672851923023187587597592704805279941285739320850670013355072402708300830398480267022174057538470738574329956114211256449842829060961609604995422084092421708276103398722667764273475397150744780832943731258415465225365818827169175551056545606551677891618001670418774824095303574848275385982649530895444978085440520949695770732745498721696746006945658443293322605512098788048590097580006402077058731665831989054838770231308787987509585996293622254069115722446068083942827051861309646674081795139091404859743016527841494046180577237948793765358653161463269116070991423885220286047621796137303427367728943827911168124826987276780200349939664450022609423686499384025695342012646923402581742643653885565752014098033039504356862614276967970129623709688455320155125998855393442267607489009215987053806555254349596397391900832483728498125165154712982054792098679855095245929688278620777125422833376244374999978759413827462375979573031285168990334226980222265594441582756886966795426096311084143259737239602026879140084184492755759190610627525253295726363423147539751214741407185988579314525593572610510814087356741672563277268304318095216836843867053376874191483699640330264464564152988139377964081782314038867734000063098957672985428042003215987873067565946946543338496907294651484504971152218588414586299858973796776736699244884935403078256485002125367105763746236358975758132781967945596788440108403048118033789965434620450737358979805406440194724971878802165105925639040029430433496319176016450515409502467357447732953059291104803637351733763308414603778306552746178718734244165559637231566955679537611600607850947611224018349812153051263634397692091579715030304823065728958109501253698496041890304634604660509298963183288000429190767865140683603247703836189059774853209504379781504345808308398664482904534952711076743312153115039709952980574814628531121674913059441439375940098659550559193041453015129809931602060509626704893101117836050629593294893000589855396465377326513585941751198123325002379594695714040033559742509408711601667273071209592404393435554528917618121468942071767835655672924642656715108910659249440393954417934259823637750915790752949822974054655789514518829502316044181405353600916960576878991081066477506908568219987349245714005835627822824715198644715141447992648437913962822108207183278011280863712493699816376750982131680804869087153389807370965592193575004659931801446473096818560618599967966946798805582259140165162399307591690873803636158672299027199441286001914900801530163664873257128302504753438095561768179381025818924349970526384476330867687611734788968550789649468799847209853448242877980567173715633254760253697390389855245283988561917679592850358854231567688382273618332026166481868931107178735880176333172130042859262162201720030334844353519877230774975064850462117578362906605692810974891362998346141480757210621201554511731746315896303382483482337507941686365644036839034853199414991100773466879655015614140336810508668932733375708229695961249020441373964760769754624623130687881569706714567117516009021945304908308056224049347894727531565688464923922755316557774524671624475600973457645578358984494719130821418160837345649635527105060332119634935952307218288010596183685843070582872392676041768991788597737862486689052284887109544835127270183177706982471502813205477157961798726225508775401143609540869389744390620926595312488420533389063247821905293234042513199012458987042671581411870345790349065121167359187132773014257740379473711629397984989240583682676971335142927267822991556476383154883140737349052013622453675435490073663678978706095626433687561616808910627478013327680726235442113344540615982475481763254698019858591950850995075277662282642456378868216181855529405310569324187280557421639187886294546947185135693629134880645595047976699387394539964588904193636728671992985125159267631523601127994173697365336409266073932326430534074984616517763798219892349925819270133520509535154695437476317496337486379085306635345342540324241739580320941243368147643736470426468246141511746459249706131731341465526082434148966339731346297749337287918154861807290625252269721151879427611042847039685362696244538195314786683367019490006889618203557627805657873391785304239856489725468909557976256652703963732716721454602830463530997297074781204992004678278794542117691004155910511342944302668097578786555604711237122183605081046752125152796128888309395546146566837946743160947943392765349597357211694309181869120118927868592260133010546256591311558253640471282309373206584891297538836309000976476545386992965080453686946124408680399974895884975944333462618367148772931125056775456347179464945319296723145048403618671914704434208993661837221772198514840619928587207000644329402082701617752528717034692349420779483930293459370263937293759767923956266337497772217458700506717657144360991097840192649999724733158882291247098747209384369187184467353267437374669304640567311911110564319887766697753194764867465034615278789071862320256989436949692455294416720304809684210852558933550395887365260958940420819459052592663015260909738720444536300495647953771996622172748307083904204532001515104786464365389635157350928212358917955866833522539915360226616497067749344370922904014049766097836375964880263075470280229239276093384072489822661622196145684128142780200875763665389562903552228882666402407192774275799189496060654025871252657557909896541202681830696388892743743969915138021646957344117327898005238273314634008040741045204396794202507759982083819247223129708803235494858822449334017516913996878915816220776118078128329530957713408624788341258516460537430369785231973627713214219346366307141511685912418579593577184862974888103262919586104459764655294053238246725104330269978703969628834196559127115809519996578898967044697432978637719363387893401211879326924214206335613027228741084116708352934138801935230604234710549245639163138131694178992146841046771542634229858104006869255530089580424290969505038809711616644035797235198364525430183202682334328182478105638730269204765357111280113248378636090636507791615679073151515750554191801355529004888356784962354539978784617320667069004205397130684142976658380963244779326610220765661200770470092594067624512418463970151139821731150464068114698011887595023950319495197973021438097558822602534701940419108110899895027881084508382695888249663087732635141091536438438889100397170141975075717741131175155734449839279980316404556428147177070628191924305062976733157925160780642395669844297974367705270948942807718543820468774387268978769156081782209444320956685346697305323272591158451972380536737112229619132513218426349625422310563234569079421598395249735675465984380767789456270055865915896333135343200841097501380629662910957959244780140157811892866250977643710551254682082469662574719639922690511595169594944079148598341453291984548620941203653112394151307781695057794227873280156723537586999700340464510608927523674534582409651367176757018486390565071384127930548604718812011343977048796304921982548964573263700133219543893613567197588749800091339049186679298023453866930868684440041620222478541874272404766389101001691403994786794627017560268625697692862055287086594714334723046348145984756536785067213441082647593552382781495280049366279885131855936498920793676256546337654027171967174086953380294694990771754369759765074204399053897235975521877003337514676496687117721113463381543746225798262512938700147752387668786241704859032706643986031695003883062350231489314835969642016433892810226842396894811731827497557224047716421319102774110392754952438723528960282176476792298792693525772278004512297967141576252275717747724872063275855305258381410404241692025897784433407190111726540196786986523757963954052696493017876301283380554713363734631168986496589810473075193551097353191925732966889495969171226097998583689132320197307095414599749183968732994172356464839959536795436167069228230179959862485405392587796381245027301817079696338472429219776044199524631234139079360533362482700485212423142943113055358112148084864678394775671895372485182429564491115389490240269589509980389918436516214521264983797132784156404828024008230856087728657390154017255926290000649274422653892606731119492608632884978123020639656218432977557715012029837283591632397933093805599488457461165808392507910354180620542376322859585932770465026220944503904531756417008049219061805006583104699910707219266044105498391024552334204018987045939305811898405023108015947427174179865090070083102433539494558718813909063117591945133747928448465231101683852639296613620477865336554114696563871291549959880528587450715843758725802927504601485729651575314801968460849880729270011474175292266951068144224508380826798054719570764262655051740745438959629035096850630971434595730960102944375445423747614677031263808578222091426895158687212691452879139896786733257560659956809919281753119009236121221959618027019769616814860822393720349395520505289020169724425981177609727714630641551181264756515609730607962830335194430939155174627984926146982432489484601905538471513516878594749361429942564831562753940639347349487446003519167546909078491005387185644145320948411932796541779575533737733917575221103567126828186026979799620895099384555840637295390862675110186918211046781990137187758192676957681302663859446475362679382407559996407882136673621617917116479985251337781299797247861439931385943786863138701297756627782463601600512114022903298132030780944445358636489771810029904538971279156377185456456922601799657598809664668031906854753030064873452562930432761123161559678969055438512025322919677045592040490759128363879392172644659720753572471087287444958470932360002653821273922277038573825114986214152602678412601156382857618151013919257290013547717138376033558398289828998921826196831034596832010664603789906686144673593683906077519851932307258766801772982229268394618902808331706250858942899631489480848993206633121782232594150630272309834933273665073561026837989511447452509242583365085273653110805030801454424322671633152632905460743603252313989380664230087644902606037746800404663203918650424040105266517111640184474364172829789110685797822582324964706097480569945410233159209239902221606291791184678806123607404548981100127493801369953600023937410102576749400873984711512292879513713940292140590381481821385587081098798482040657118826262247714283073996937617394526041259872861796858518969288738849865807253893926853749389407650151774312988169818435398904426645606502818395078156330155880229452653562688778094754188301975564393689115338301619094822910273327382458744726338028397307711102809648690628467401679280966795496130471051792775554074643059419868674343414694492030579475297411958745524629409522830024543185548029223701896237501830989626266582616302331377532780682977114008104211761427419930971763155629784699562431332295325900420508061411887173522640552899680880897404913147097149225843867200561721628310896756263507704741098672742298338410200622941838985053209610779012467284539392076408531338473209676282999252007225898027213991666334001992701372023638063773761561951582196400096612445808788657653777069261527017908249055883075166340830387259122930254267216142173966212006982178218232737561723433968845038340798104113602663872717328604765316415036161756049120780336357419186207760811975587526449346050503302014958374594645836189318956648150547357616657527664328004372100137441158100049019732400559700742248118679103392926485803620897574051638862864161095879446388530160214829247988454465274730926518479460319030823044915532542511766317964924694651513361418028065816816083435666365503448901444707906929781508736274743077200022438492688359567572126454570131661377923758045383737176777207147338814813213329684493765669028689196272426999384752423861158420443505873513580491171555872922144815525430599795404977703864884604459284178662421186281065032109587882927356439742894073657371267837501371452193076467212786030014193870706466408960828495482353861486660324538030055647890154922988007563981652335485356988676027723799918498822643813229936757278219562085248357130404883398003191440512984926815177184338633908215803388018260802669052743690764354602559257213356879894559866276028969132093192016416012366732489691115098306933647348280751925833114080766312115377346173150315537733110747733586295196125657329698702530139296302996059126164916845239728920627117859579438485311319204345726820698846403388282123239659510165237992516181360345068712896747683612775293097640141801807436332852271928117843624330261534804680869903362230988818041780256239847272081855069861448351760466980430641285164779943381297586578875371926630874396279953848728920589605508127182343347945811463189641004259647770692142402670932487090091079328455478829373611074219225430877703469285857661572562875428156701795091173648001830660149052977403586446257751911938830234990555298443723062943531204493520643056601091128752173891042099738741926040473679469464030377271297333703024161021486359518953145770074605484902182612661454120968830472412327029389033745209970854637278695021703594778854144261111492829451684249783363591485270801600479781310941794239607514169698077655813058957964613728164001750788337114587160760132168929855766259921911553579581273481945717800495000591907583947786896710035607750336214502930795474835871987345106087495846461501912312761343456342901186838438836974516323993026375511323257365736447153793470040872706740341216058355832620678876218593713107507887916233101601216479146905610191508757636923070101214866973699845946666152441359010670456189256707221914391550052783743746419115634715229531632554570676260003928630409593206691508651407532194213618028066034989912621938888558488167899525487735860887520522169332147404254558314026401100098422860786405259598070024003910724686738174906835161506616610601528165815923046235262118106976971787187686513856511838681609730637010588867448236965246598393336130911514415395708629398063434193445788480310585190197292234121029708281916255930796582189244450692330111929598238515871983101510105963266763173127621483359452759937934090318534849498647381975888511289640497114010506034730466874400881976526616056273299899964089498931834058398925802210787128993838685244655441097338180495911098075632157731134206537997452076902278095357954712035313574354908043865702093585777612264192073025139649397050001138011324057572791438130647887129852986321671700545306917943656945491334203811248417197632485235607241645120499898513003207685747215352937468688405887807120039109812085232862550809789262341248626867417725420936897527761955373119463878426479350691876092774496893679919244477540089396543429626112444089470743689979538292078336757748919817454892640515285752045449943075759591625797985187490195798268607755799606782155590212699855347174977086688894317043575853062760993580891553392846870272170633830005188363503859828115383432947707282545587553139174992838702911015350249048630324803000783298789911668070575805960538527347250485467581236730563814564201589245439982072158055023267781741426912546887270089887762830310454276404747737051600624647888020090839143645580882107889751137317251902468334512697660528332520352661166313407424751669144623375392822354630105373550825722164695819210218798303357003135258529827727121874893695982577353610808369868324409741066255999053502047830041139583499869798894954109856194391960215574314957464464745783999011909697074211859799930938447444265443934359792745952239829698626463384084133771380033810355183232412257418629209594519090571521861232679874021296747137230197697308446677456113781039828499440703333287476735439792107472766990610874268418148185797708809231624177098400303914461144453888742775491204284529142098779450772043913609173806434167700045712962584806359607498498225463987689706840935681807802310316357718570984718350749495704430242356431158684678006662892706126053999545695525459530461304891025843543820644377038971522889689862451165642023934904677535450696546284197956374100142155031794160146052821652640141901594468088681296398808639608371691474301329319036755829078888878528060161872049060194399435091648087093699388589261617304373036903140848752645595203403969497666235245620392917792991392134780070036253617904863298484865060790602407742169260706143058106722352740042327746211941823855394914814858088132497389283173638285914913555348960747415567273827252107490296808993333039384920126910047651794559666680040996192246278239296329599447825776775839088792150669364568605824926941261400006482771337075709473189024510270032243474053652091277223463876546830137872072937784954115471011692391679597817946973836922892645541256891370383994999948358715962284682012336912404468692591011364544063019267030551267927017462274268794886812054283236872826724902396292667561895673409217977183541500234170230135967123136533647914082989644808287851461638126178508286204524932159686007599394119594644400798972424606979576150425375097434019179473236301418329781632714885477715329438945840612034413470758024586629408859973251472560673250343603553699393681749339540877576940166016130521739585058563805044666636462540833982942337720356263322160969911008580442264945481920265780230601243542874929868411543061826404859739659241397255045637508649263981219994112369462429767768606861638022883098911051826167198430106565567779957973178010650402590897801855964312575403160205990721724750717864405992094449774825029587864821168673038311899053466971578359793703393380243658540659727582680864983799933501791815043305998439395710851496118400834266048306061407458274128159768748567306549982821258769362251722148604115321874470863273537702687507047325827798655932090151017135994745130839706397083341452677407053724716064741533795008100920343503668228466001195191449516634030644994917470566348746158728369275721511325991830046334510173597837859403050581511658828764435859635950731058822577015311747854383034171910042707995473180413759098983031579927414808680018522517360149409931093246288392007953419557859802706384462670377380558534893935247213634382973275562437912632451100942740542226707831489552614059416444447316729972979166379239192289753065987452863769990468686397329999381487973442100771190371664338203448954199000028091243207101005278517461569091598745460450020851160229613626506549868623206820831519622156231959103037440615623341944797141116497942964882629641106723591047509378191666118833801817224477942646847688757683196469535180787559287518929798822747272666543863065510796978588840890259166646883993575501819973161842665699989990514479359994095351367967343088601164369601850176452742566921524158790517039158217150406392160495114044710686715722849084486535698194590361194530568280532399765389861195499210517923877536445604420288243502250739015079666497022790365851043825336415176356871997386998039002279324913726990418812987302974544090682084143836018544887918127325177236120769642250206908040191676737783486050522526645829288666877957989765557554366514380620818374958205948542935539315916760855345797552703995206622954162491852322271053525620639025503693005373432818069154184390715073929019549316872939960371865750899053750186294073540831319698837803042349697838490688508423141502210450218021254477556434473977034402314712955324931476603573646611279081636100132626845769103807260387947101520872565728615504208683770018739280167125268406836735195301476963250699580385870137843209681659080719680862294140239759379954602935498888539523538982934280627427444964710782036815648995812508663116600850942551307914622007273758515431253582953796556914453440429859099951480339352249850988581318287844410548784613592584391133063607860124399016432195764042997031875226408364224690588052884826382704553886174204866485186814489829295807156263179181374089925515409806951331583373384609370090247230601156304645661228173733808359890498750528321337193440747406469589142540741026155227851241334011981805754411072256413269034941703984410839018963520697542848033678136125944946276339416000355261118171329446349558397133258914169382518025094586236279814773240622636995889937822384720543754768344332744660351875702694727366660221488177690482553831572294643720310609021655825790112377370096718309609925779662713581797305347718160452904654804281273252764190437487737924670789583791657773269413161108217054339478933018405043159520074153036365449104458819830299905824801956549000610131068945843630176458278830838311953149792395984706028033089329949556718324515820902136750975894195458105126227189811627995565638664588857683390858751025248445554477885698555745112129209630523872706039113773624237140413260651857412507103598924995247467928074578617105909310077568517299397870349272428918841850236251291340705900253677574613813330341954197878011582972066271287922069236419448994585433594305201639308606200481848520233497751867669663463364640123752875230510351800170216026823350864472492517132556470447453882000830385535057061757989312813064626614906016690184761049349640549294472651366830563382718769064529713095513082493417871583460734820131585091457736368357737501184069260722349186553599382645436617905946896383893090795570945140316829741055351058545552040837043261230258087877124077060646014597982152977123707726568197176593906708259465798333515402238141978807910877304804807244900206322285422210598566962577751651918723337732636805338552162694339730468105927754715122299859474873893537772693438580505354086117797591866716029709756131170210428691695946653465883984158421889404542174961654228493392799197796353497283895513424857920093982638087469672893455493033055855749979989135545087326958884606632485273595591169971706187021089233334656500873398871816221085570049161267861509603177092892463694726562805640482418728442210741023588082130085406645280129306094080946289306177401321022526427582127138947874911195818664884319370724898228851926237688549829772614092220450745241634214516761538249540212559294999689027979520532455782175050310230371214733024847773673568433848035290961397195044771490827695362341730056188330020642383348196246514217875408950469717544030791880468571288815102611735081332298362955930923455884038141260628054665537500290150835865314486088683673639234970547924214487081386722012792361982366000957915755214995063900091757479152259842912513219061133509348671251927807214493946768373104692124669727751133101260117949437574551352163839818661980854868421872414143886416711682727144480448878124995621372210620859742033376177198732779797422869209707488847024857524536020730790355631562105004602121336685102292532156084825758063688928728570773622132242469924458922365641778433034843764165891028479355358605639002188085684992872668065387683219457569019005755903154413034457446028163439223531081503447622580307230037500225818723589533272625425112753700396185746160362619420296632392513509892321810709165373560168589611263018647697424441219742215540984860429893993779626039040131165565269215325537352770672798162528857958539470300653584837025973428264549682728541662446586125188240144902629707944680840609503705138539641349176086284789867872393133702516112042147268279285082970673923924218797075661167835487664679639210764271824356756010470898628019207987152268046508688770394240484253097656395470874153194649358213092380245550155347477973259530966297477253806290345126831973421463412224561770518974357682490664849921293146723688596097969864223809418871238236130054175224092554695544500106742426169567317235421556579927290348184016598687760298643338916088400488704399163787524716852599453765212276393619456383782162282245034472879490210250168444106323697625832920815306887714112435253754258517860864360799600464600970669542034664356678580069477733808590937755440789608598428091560250090086150550364013553512368270711323093278160984645267211971396634506180222992903937346795113525253972597134093252489850323558785933005951973313807198979345673397666565847002397395186535817984560750950358576070097867197725236259573424839758396889742228128032866533668468922235104523324522494381913930230329476877846171014050951260124146331957730721173630400043136973830294512240185930461991517341032789541533490139177661723993246230856969750820226239161532519550224202447111367160387669569433109453075493517980687041133267780576862364427091925491335336386936398188379003877016488619251317341555587934366238051286438643714508790625476124379951497318910271371793303836709630448033808013951218783051965313463083279451439634810516740303232419595160449942691402538816164119671125220812421513437764765167136407888291500009558437018540203511284463856971906410152693378104708226598301826898594905272849929317214769523857772149880316025587245959898268321304522505180882313444927902877152652376821514353993707038079956077468622525221504627156209661267903455895483786080355116383017220727513055795458525914046080508605841731763270643677382845717053959431684685152810760777383424740787280310764046091564845566581353697850278671277060344471444109886602994795360047655951797171619148176418544637000893748365629361675714771153093162639460168244111066862688925487045785406149905691203751990829374741409216251151735349221532183221825233888582262707103455305671681238190845643037530190321232052289435828937153076061334958213329819914706079756896068507961687648716698396112519432626773725708642829083833062341104535578355933185037039745858560983102441273190552894850455746652263652894042109873137861470822279069203175943591678458216325180867691780838112884955588969443054798734013965046455299567705311502250736394376507453903619598651962746355277574267433764791167160588559695987885356121414092972417559834762222541281016011999633403719214177837329618364778889017991962217483332110661075053364070370250834128249793650312710726596241199420592812780245031217059964872364481996867792735765029923581198519414938870658491151739601437533300642426925653204852193782736880812562226072402097294763375472766938022944113885107308437767124457125664391277358815371487493079462765214298403200653580435792239456037429356256877897729323592618744768264768349316829110890618002626555878171022812239510403067828298757519281774080585982557974647376544728975518756005753637957215668455632619505677554112287333884311835088522112589187168532470621836896951382865682965571112307113220066266417076915024043252078888385909324697208216321683991305939705763586421242207831555629633535905938224171388434800707261291974397149339976411471212861034600436859625772204921608995456506321670498205199969623778496326623153654976889820355106056138110408400008206363527185860914719132090037527970566192781777622335138323698140059213776555969775520108220431836788630011754608758439898787448118936003597199293758071695014904439999127443754290991941454161272945386163355027355908749187571699267573353135245922576872807785670253728754606117977129816645354490920238907381704000202909914747235387523904518506733388960485544796411319402347119003905899593190926137654590499982597378051755293154147333595741583286525782382532084980623485829407905230428054333724505152155544419381078165435327811233478034829919811564122009089496979189530053995859780259358070290326761275641436035011905353715466742792692179805441421088508603035678899825716514754592735336830441314125639214391009838650925200273250212370145880073567860651651881409193354543320576394141845503499952183789462574775902049775640412387158471347946492529905131247207366881367874772143145491118387299451640889795974608185628651250482531419760332817102135217827871894599903631218090599929617191465179751671342421256304666852058534657909661219806050053635980505761534738758284766476710941815866531825079913675374262594426250696784174295026317357574940276616775406804029009797544439054637560420590567209318001723174212640803513040609770542508349251270501283107678070007674064858837490858508902913029649886781752000438112997419957528891591112115218679990935758621230098215368251574221617669817068639589534421694342730979928957416178271232412698143518722146772373676986864454347535147714664143232119247851798243411072505399377214253820305352308761967928718800752487970654017773461960381237109016156448769295492838904934087369398962240496650773143720338817315998811526105826711476490152126317314168589789188512543030164637925994916982909259929202630830060092686565527918171108584202250789874763999764128491958696362400815447619944387961094333881857222827686326268671106937987489712775636747634333372460253456034890217692835604549684894741817619144387686555225821962853297293197570233228835586162394016861278688290790972868944228007396333982888520620673339262970392291410336087378779321986707427410777086165245746587109067804665397052088377252528923351617369005704067374334214974927238944563790748131509374927190799454596890393403425218914714599154460160877572307481822722293019717096602922270448574541706225106870904984081594949564382492381684613456465666997470051279745167839592462164985840847414703727883953139366650571435109352403096170941593343550814601042540916849119669385975541171982363247993763971292557737309377867123782756750917535465234504314954520842950058528790258510165115659638074905725510309082923276235822115522716065528659673107483272829547568607996253266579568192502037965661453220127468679128024610064469409635370057142231975977812027402212907248643447636766442894049871273178146234555805941739387575252108535879624698088142990813157444827430473401100410075280412614906201309427270323159828605576977779646932221675632400640833738125909578450705453446081709067035435455138577379401769494004795573466201033091379437803398462776355036452115852048611590513486035163419589305972627849955131901035236428968910288452834256255899600992325636548106090282875259642795224499207976269747514728607121686834105042227868502051894543683582773536982705369719740631598087035799262548001158066705512457810708895968115260467152963983943183470450918529307141364051029234539488121836152974086641799207452255267245020211941274322576313556375792422957767587030078963645179662421929554287128630746943301682447586427953434726830362452103689889380512114353907929152030311850081879068113822927161087989250480074066857928943251184703624681852771261815216918086977246215334482646134776346743657586974885866286483450816416568032502611721297824081100639083874080360884626455551771543462415991930791713936241826529840546095195130927343202197021172563664598584959934461957318846828191434983721357079570063053847957001194284061917690711437833834080749541179598312862335801404171776942262108582265496993996013148976398136921473621340194716366845697747934173810007198633045136964941627970306019210188558247302345763589220387531166879365215678901621957542075480432240494523908905371135602288736326293351088439975269478968327000383724535538549516665881917755608236734936669610974549714748080740822883332930354712795753879697914397824058134114984184178718181512725530367211625181534680362236398236778770465277637850255032165872440147636427558678874443628003586538513157824053605714019225685943923603500832504222119262248277326485731178898712776780970145889853164784065275577168759029633879304984054637012596600126818739797972312820385517042599964400631008734126075871882832840195223166409649228560916303081851199807555806820040573757030602281883697134310343734674398999234247756536282075487281585586687322358560349999179238877673394356039585282473019705687248456487700688497962204226846470496470747723953605187577308957814156265318887769740907224932861630574622152385689241796959024419498370240621628483110714136749078179670284795217180605758002434967640805225481398679198014210832250443554080406608077192887501807636554800041858904391040167367181809505531508120560906855288908606039168801842239581091690112972932821246453014690475008947103366603566410608913494461732096669958028184070737963226430056062744469979815534111347268233089555997020533635631012064400084660444552525255531894754577196357590592097973581262342006205220086542703159806399257042802480737987287108610546132638729358046292708310701712583363591623280085376071737768408920270912770767845220565917380101552925002495729009280462214740620523462534160350864480755228221427440458467883357582487092163010536568280434647047725332567201504284881055902756808140660602828286427954192958826454704988033854230577412093678970474065157082882955410849445492740778805582733963366822658158331532772021356294749600026523339244202364664401592411090637607410907029797814252549100811635249061876579665236449610232110678378405632257897015049575959903021260506434126361240207724588737261009887073679589755901203891458147767588618292861233847939426565470704216950250835688984105281152389192040488864847927900605209562662514035003948093574583367159423562817083711251633698942316481469119593754455119923255526368829795254515292567500141484626886541940679046591687551681665262529948676251764636459870724298747769067402344169534451587430776934859307603043231611850478405220035318379682877477761895340594191991433119702774155958175551450013575230255878844351049785105925611202620278838369497804911261759408152807845604264136883594797746195459037352127493590435663861415586816377279915837212053489536932790635583345714845958596451073759395836961524207595878717352902204132259962083302013465866650524240459893431096555328089309865654953979930049869265902478992267110591430566262754666229472620775442521529929202754405267203953458015637240067121090619739678573136394533612723970272853426666079210703462235397463147255853654493111168076367495923908075123766483993090765542598261170287125171432750559801904348445798655207826874400213671943799177110193762708109481303128599840570358994856899927768266579785240094739684837581692423481793430170647203955097243276809109533178219797404487627248597471810617721653366985005003755640897285798956592439380100232935640915515557081183048321683623115597188842190586098316776647124573767049059846495383692797105866753717295601189372931217140979200193222520631938018135761884082485648739819506098347826394629810383130448134215819057185648904481344983872265843965279948064399636565646777548621267278182137642717442037479426579293162869831412090882653563953670254809053678197320532902536462524731459462215160334228542972003622098444327974851068510047485886965451069777530548665358554971147205077040510750386374632626939015522971805550114474240763251019984219545914792120926201462982549146386166317152764116307238677439988997559946853666077471246952909546020662848856688400730051173273885768879274233731303877697623533994528468218214172601310059201457256115926799306067367535745159624212676970672783125158188166424533207243481326555840680365522903028401032585801753400811759740624058656713060897780023663746092375035270101140364468344236395228690557547666200364124192082370664102655361546369671703063296254531835651367184649053805326242880561973783837289696458013401723881976469032243413109966257730102365830195375081701887049298985737238344786991478906710706745047701875538761806294259475868685121476065216706850032935681878580191922748193979882340179663433268845167868781730582285205772317205118005271895331996276669874799568893779531750267354007859396940472175304029327127271111855730397288194887195910480975584289171356977593115870799287542505448718646963069907248385251239770075003679528204421840585113813192549181710912122630237285502444745928079491211492687887199087472493200982275555219945626474227371513740321663005928774211885838707016056064350670000048060529820537003276728779913039476461871940872762522748856807802297201823186691733801635626103739822330038732106436540909053283658551573928752949737159188919380483797092134955533128930832747478373517920460139982874312749501680538311308506614467481924792044248613136740621045014975759404740382832880284198882978642416852114032098839772631128183666448824347860382025369450660355734833812693738175063066789778110873337388632264839881542182345018056905811512023463485860532732515494239960196692302695152018008514355128330692637286804364533607436504971905610722941821811517391340973407470811600806923542805146224149811334950450100397246420880644455818002962403758661052984509344191313125209767618524632379814816140950940510244822277413715181389333298313943404702577573133842203128056524249783289662765693561335518466617412335518184599267133391218802882005862540225871961722616010225714672353811942849942879773997031321438109586016968429387723121847444512358850573244566009754938581893197757813863634994010263286825562968386001125692977550375425520699823755277238957300456750677946827897056515202765609704977671077397376567539814686373719659197375055613594974775753478476402433272732676044026979183599228671507473611029013156048196649996707144928510197123793276823672895563491568412874520778815112857977808832617727209679129538308277019954398465925347151223759692032450577338507437447123248211650384850464162739850843132042132457579993977080934528139850310640161638810319179514137098611875152307007208378937008068162335371900820147552688815116828874301281959878754568145619207444191816732180571800392475291439691388372610121150257515366817147244447100094036395277629281661685398380918039382436051624044583738970911388183081904850425396532171798993142462877202212081302837636873091310686639111196085883761415035130814873823937344266397719398645254595296060080729064633653844746392517391651085365393109758661237939389070638615886825538221986490167921888200613185650376929555235810520419892061312559159371384619549876992692531774054672373908126151468035668829788727616647129291287011290353096166307497314924624951882897934001465416667113475604214103161032715214237550367077284962497409027837990836888271855557787784762933391244977135719160123243027623726905912189577710222391919393804909719848502150461147864391570458178872811888173214626772379329025994380663654057225325575348156736735847785934274138793928295363380275154003024211376732176529691838948656806235938704533437681622986618760089261043131629126681256602422284518329316218853053171176774748821712491461203421339555295360737684029604569735350491150847877594710043011323049970526347697920421350274732243273841823257477913635505090746288283180302368401088553656241316071638924588188670340364787451137193611981574385889617491295291158462999186325900264408558400421684558346295016791155619452893873284629488347878650379919633568547124514211684833526599667020130482584737759248810051486464570909108711281910061342496178881379910601295598437210698729266144765019182304642597482064642325502031894827694667757031678402318436934657249253068146252095402338530878936053857829531298171817788755969278745467173691534793022640805313644835755194705208648699392899525512023645149938693920324960319796182225655937314232776396158528431502378072841423265095649037636484161940010653640153766715809332180586945674306924909411190280367593523393672100810294465736388704158116235194601622895397892834427526623849395382889509722546254377096325319766321703789048456616345440904114883339137935194312097253837327581676215534512164099264983089810883696603175305390047840432463691363255381634584527488241536404112520994506862644127610078449028442636135023904299230748793650447042636118382008570700260266629185940216628607066902375839027948148162164839129928514252341454702102850746983148565844751804280842608749165738829840339521099031641433641627699538124802605932395143358449293985416711163809166156748757869359046670025684032913429185565426347749372809647822648695020195717550829621176526671527317086613956161569200092814282081689979733093038022738100866144483511523760392310311951920801535663041085337526892751635505360292889297333347492860827096528936913912728298864160384058197947551934993871497595607661152253079071081307852173913258300934259497654288928470934561302414550783535840062114847530348309365392818017285244316729596249500769533666985261322887751288523898851188238695869517509795710968716398884775229604868197197748657007911126776737026682578100416136597260998890401056403278751961953372508617349163638923011554019730163757652520758395144750525145268796837617319692732199202117011177700325647309023209711602399880505933305002766367394543830712796927978295120926355000689489204262873748896752582532938439574501395158280134307753759599262760965335736555021580655911514455979544576994217329950249248425998657334464610169038996768347094533124488867738945279203601898758159566477679856800253642696633116893721842838434984812305089003675638238029686830782868778825251010177573499765738899113555763365326615940107841053667341189919359517601976278439953129946380628942758282510221918723003651343810724710595556991010522546664818123357339809622228158487275215940719056566337415867870960092416592452529108123560991956758379410855790453015392411773903490672931512994014388629091439085744634075902328866379382580955871759939080636169422346958626405190625816377638696623855416236260257464314446572167014716572229131958444446618588589893692599064628273264600837213448849648890640926098555885250094686088864895409010467670792695235874018633422856481583122702934141723301088095322222030013570974577148441911009946291257259460152670658090934543445843778071494361711763081731726520641512145370296859784816963448385133653924546626004637684835850679912280976514404821063527136907726210928011412764526027709742144066481752998629822881246470368309719107776172015711773482454111240003010204901881835293780060545281063576213545800459882726518554033497879365194600460951744570265434490537120123135566663209515573791295021311550281991656451093118420420358366337770290046928441095554256668094235323146378783227798124332835907373297221994601638076124623265190669115424020289585821195991961689085332218756695258898795379268336465385229199882502055190376643726139112688916442075816501254820015087063055916390923739833386078521461856816196250181747648173673554018321716181097238292806260863543518273676466332952866514647114755753118195747949088727829790672809949194929216693749341287733346404672764586605553319981656921526931022604194365496066070408712419953087276226467622017519216204932810298787822189983542694964901469840040102614666636439195163040850412119642710274773390843009635230120891478146414780908418101571767098017768714601492490602710349135925205451521011441175260646145578481074106795302146090839732075913718538660797733993271631525494603219176008048278599417029129447854710532488450820148056660889548222056577925607833729639117188444948641411612337504143737478033044081141068469707389333426359944263544903555282674791533324263727563809329084411866186378776836032513909609309876850713332973736692251188710584584553507726776236249714504160284476868401651435674278891743366409674311057309303246043588269881035071363129859606544766247546879407961454295887109705564485007219942074522858575965555818573810538455751655056414484951886564260309366293413945800389223191371007057464832350741340333481568277474315117602219808077986050390216690039116640143128102557477081380224195048758659965660911294197274793873271498415915764668315148950636419379577499175499642770160494806738602075898393083673767677215279558709802749369369457300871950123101673095908879825383283393161963967136466306134963414637161897942461377336618504926763053990329801585155182279468304514029088189525670485979883132171229741943065333131890215506395107698326381757120767763657844250360963477321237179376453058691519829426154625379882073279907719898737613401533956453683406075619086633761206220166859526782557244961795572652974811264950840918790693711798325854938515713238559462419326594683533757619357357928473847663383804757358766400468569552972847401884545541668429754065631318311986747599307281852914785352206155304064068266670981527052833772985076904434541600775624972628365575501530532257132808041517252304750245074889160250499366628157290578875792889808466452071802029139744097797057822295162155430213413876455870438894652432723172729890766459666474543712307090062110886923479917715062026424212255699225706526081286235891619090380894789066328223988178795295357593968728609381091575797820306643433510089533850072752029178957346665174844847374212754887537701189886966553729654641988089138652930399723985737271105719429503318809295260710219250407995949818215578005780155695231337192269079989919430720314904364255225207578781304477046244762388239208911832028565878139631264132014362631231120875066158426330720936860251146594541077424214563451043124821697064510189144028444156099657046354027643767079482336636803255320951010664145543394596020618625660842896677565227847061298719052029982725405794091259818956824944850555952381774810241547895169572690794562897405159419911664896105277419250735991483647815737919195435085923215205703165895037656444496556203480942862345797689137079103797971338481481272394408991039814760794513698829030536059406549789767854141123457090775051993404430787096616724070680410752502182477890331270679853292414470583719069141471387770590240046441387971827062260055193559411881014818333710078078075771470751238702808766334154026674014254851970559286853523483666402268393921578500369170079314387924121364448298011124225218244662483661524834973000637644190108376235313676048790476657826460131281813443284336730062848966824245640246585229133092219859116644706967053162160994546741021454401930169966199482999678040864893837777676268193754992636319005021457242430590480202509838712719537985397839031734666505157283708486660598133252827883754528915717487748610316910365851542323396299835373228197011964161491222653374378884210567047670553481824551008764061463052444278045932676244651652179683423419448435044218283965627036755993378384471083876489047925698388715337530582373112890618906788337073620137817656355007115572524065633116691204170059756155373305890219268697769258007980273439836754662831721942360042286545297996463941487316265032347105324861035742982956931394151809949399896578612910274179768187026187760535159278801912168997742318901857574589232518533393124787101257463708397359184453349458608589155771627234431116151345889085077370612890455759132372339826269085881606784451056287845952157348186306890945915986777276571210446473841942695116198874099938200985544383075506627327224341664253190307605406108963288263330104502844094958446753358477532256513047043636289645695528689986441777343258890762958275690649518430331427781919277082156111782147680808207912402436035905829081101540479438158092280142356735910782396940338129301223188146660317038819542257637194857271466098120895953240447351733476520402962824516113023506591218958008923778835545691426138703616955126508646040012724547318077028624886061302424812614022337031561732868019314789137101300769171204916465887057462882851212667778569354077197843319757879116515476205350799458011790286612998821478788291034075471879707133601868997690642702026584362180995766220037556012930068781157016015111162497244636932404746071895978743309140497079004261582487375766502099823560329711444955975383952215312807538772720209437120293357343900772025669235605931502893559014057886363993627822321952638265875506358538806939279187646422911360765526155100254199965450949463406762312204597991377655276388901855012247417841568051593718013928187565155164650863844243915966977146928624299341904640547149641048235240644722083186660644565305900414404280140566527901042985755376343569319351330596960657105868983849025494217783709804776311528771265016917844384526964503830833679308089429505755861462826403594875456897288643890874118571014046366360592095237817337167844142688161109352641835553585088035741498221657553595722406011448156591409082711193190134601050286472173851343654780833207447927333779974495631415414089528391895222003202949337647431994353589201971809195722929196344243665908406820998770561945001895918645791342591794927364555611210682822819021090399782467021091793686285439959917768887612664907613876794883411602572931045604701334529499469676632633442903916949798013086549346652040529400788744959755561371896072496705923202499932896961640592617727894267969162971491223634276347008459116225431626365666534828694725931397494391121714199323733142303854976391331995971949115624885452935637710963887982943294949871360234832059535322609214719500871009120513528069412896651214264057382941090683571375500116819435200617945015234985124049751877826362168888956511376644446795315142772971973326828855435022537455848426078418492928227635746141068857898189825940394516237242032085429153132650795725533632530244892850728269681186857265448153855179524248378331934270828260188701496843484407904198501532612120889262322670125358888306803321198658358041244740101033664836361825182856699322318055558500504718179537685247063026196783817960810958271113262037553899284816483174578306791247102522216316721096015704856729061394452763210593633058802057562639524314601430733559787154023108033987417721016096933184159611863675086768639132146623198903335653360670633492578430289197250533090326159887762884332928811111142072221760823548571594138974857469910201438793314595078604080103569270230745225208950307082519690812991494740080941275274327791464632096595161632514326839243577284087290206634535806775223772124539577498815580126718073280900378846125130825831189292659408111096483974185673090964908063265895521064177271703973877465649011438874538809187644254438173366205443133174778199986935471689056155107282426158094840293133929675835104225601762841205899090216609009618095536416517694323586943554482321953317294781293496256352195099994054932992747614803717366753699067359791908985597269182693635768506429232564745216396579684734193946749818069105176331110986400220364876652309419026621697628734463626287887243704441319239863483011006551993440202971059937529607485707963669375212310833273055259321211668723254604493797502072924100641695681241320651490146887105778344629970697162798494354050172533717092153227712831539083742995998159282473589183269523328317778849610049284179267256396732988742167778767255236511086630496154944250403712698332470304020203931848814731135100011307272099483675904531744910175024247430200517725463979293554898058205903508702134633947991990680723466978476969619395006362627517376292715219351107796305160909837979267243364104098647880896103676012988142149912693381746179107488882900877953429635237035587009035761929339600835485234644275414754160289415877782309964408410235877362158092777577690606786376534156905414810722456791540517506665406406637270765242589056506622100186388483731250816405112968327650794727154701655423715394857155398654963904181971235208310844964176900932441589091466963416106612998554805192198947814214779530598232956011440243748051748270919521833267558449467255375621243100044150602939342815368340156999835406746244990512999536002384217660760297338651743422863893136517805045733277839706692467954445918766917984878147181447742676900766561762297215468811092301391037184913260349785936896393235955175036736258489390819213241730091199442750357959235712638473731200725257482142074980307850299142555584148598646426956605835848825616018871923189415938475756555420907119606717268716875957450562254254954982862153654530047942930698752473813746242738504734278050743571746090282396305431490637245660110790588742726982334636442601216753454225609794976487545605142555078011215478103476690195041218252763924663605618541638553733657336049366889345334317319801644849995504566305827989521425519468144394651384147899737627226873607043303298872072286536417202669674018921051960606204766075338100895626691332175133935283428615232473839075335757815195951397523238403879031732389889749095578113009430770979238024263932246449970296267202225578267460144942736046495312640746604696991483659665256699639513085948223336098172694120204701071998668286910469602455793069353782725898585228797645951184682279540694600009693351554860868778554105872780678676991825930775118315117782403160467443155790590344486339311209183289375190610807514483378277968347988343819903217608173989519640201006684129264768446524904478149013493242974180222173249756451826612841364372975915555387476077650178907047896932931405508722478570985258815854415062414682154043553156073458504512605352080526442239254434813982046229479202555832208056922661538764553662061298595572000778127330402095322590156278241297004999520824133281359156317876010462997229373164418546728794650373713326722706956043599862764229296802644499079611064209591546487911752791479612519916231337575594858969045947536126187414351224099023372414681621527733012262723872947678273588230725033298163039492658097083049979420463547050368504268137779994311868662036336486356436942565397835706566641999140393357089617328844000775502550789596033981245199912907152000188282252528194734212857071308492941961879915422307040905548404294348072136739864208235311272364441931934650439229515895248921303973684583251203727180468944064756259535412022051895911138657835647260978599069712618143169194898722991725961069265393001379190150582676462563446593700263688581179440404730586856987628058900081955125414333053496479125503555170903511171885042359769760181697450833739538656890851603761531499567510578383044451655156806489548276044778321668951580540281434185378315323419244216052419744708400974036876817022294278136165460238243102159984847821548367532834378133332702112735668158839657453909209168365294581753806906195691199653157808468429457520879593605286307549082188661120042354228226517142201746225109901983659188594378315786840286481979107379031533662503147736128535892746827987684781014348766345478719583665794777148323133449358504851698639454466985618697434956964616835175433256998908656950202200441757230854031733839684940903188116222000659327530450347338326218757882641600789228860282965065375156155776419239562696564221523188755070155259399308467981272029031358683459366901759858985309262505506273173833720477309961347348179437176254515163835461809098398157673790100986594573846912777600361153330546243404865526701985512627487706325560372822493822316228513224391023823935256352710669968084434027979844705670308066935036318153277474727650994291740629857066298881794376806654363920123651542097013593799246550102484370292915940151407908730674320771534420393033058281220070018670173665494755444037141755554901793834853494620809769427043894531812240527497277247358685613819412277522931785793474945283088310412335034345692295111168729998969345334457448945671275172899990364910760835446241133421219531580358926273306476276085009683773113735244993778488232495454476327338313575866799371966922796872770601567276241757774020079934685065260070434099334809831978462324618028014621140180520377920684874621331522145088618534316675799085361218492105695349079763729946568895650246070360579381868748820363388359868830272989789967065872038916180895038132253130726089979056902035503814465022819753119348537396595525895934195864927490444713976218775901830356549041582357539937397260976371691058261993822516378036613231826754324940006027009685418745706922839193790511437400396700144035388760096464770060020664031765616963431323544692445284111280045180786388470034218155738113682060948593291895422431192975131528699364218693299991587356972493751691721984721557464224283829967489908740310759475032417915350398966208480616710081678696607163274878272769756459715219883349393828326123778025008889415272225326237050137047777876716535329202888300215851782738043655779530210305782975823285162474085358766052373180092785843276432710676486706553267563679610591619741489659254460566280641258191185627639195543629621378745938771923145488459523437305325110518997544854673697677114190038700287663823990528330747401656582146225456072953677056351610473478930196440023963925542880982097102997366838509799736903645468528334065208383851943603246062394306531743875730231049996269767649425226187161347465053000902384825026893272462289397372989360646345680953561945318905696162303139031727078281436475551561187647802590071156337458526087192180590089294427678960840797120694509446643251015133040661096914745107505295071497936240629087116849249332012456083680821097694227166152324926418236349905725816311468885647535212444712013987859120268985174248807830513086743462214415711333925954575428419713810514854031398092595988058118815329776742631624012684497247986980123651019263942393167902797186731085034668071841044562554257938475694913889534214579663190098557726749193361665359337884876709368960984304969594893857600040046725552114703547858484659199697997202501758795651201294261004185034822080665830303435581629049687180837027140701257436573051184662219817194526958240867394421687011622442150251693636450909444672438333978851632527314018396097487416495104615698288687549583878348482689394366733684894337311417185985364528002893926648966560614010308388039176812184967136152355367686777838648550055117240428973756925443007464735910903319539083466511716947521043488729936599552802421002300795853401213644539264275959378439949482914565935621424603784819066040709236595021537826146922534792350154648661864586074086802249131385562720214148357693961808290825086523642325855392906426164872485566353102476015405081628629886186100941857823835754796494515356818782798003913157588041775131886396365573612109575872488329674270797999170871935885096717775752316732327634397090188264300814408938538601525205661233326667519403784139683439844401735414939496738912753377456896328750740741443142597021580636935656654272638934142018826395133903423200478050634383777491564807889678034753030226390405319235937204743037548300033353029406461601382872470822265674824208126004981232023913294188118120014047899451892882918791410799017664750978614101431263502875671192132077240229455796064810818824528334583574490542791609749771948608258481482564127164372285405492707104361458816787689991345483643693034225972909828454355165161032656550589259958406155249744993595490864917529841561161124575660795646624126704591348861918657781195536110939241236664133066984245683954060974535442117465143541667262552823004354004585088488970744580507572427290711066371013198895872581397028563900144042677635061948320778437830955644168668647990867614211837149692403257404487414758839056957979394350278376532763321621906196540477966492141752292103058657092005696542893857515122831381592699085892053021427921238233011365104743143127104367881282617659761318315730061793188435717455285797954405640607093793820382648749198673313737663786464659983127695233786080700032650168996172341739252926474374984404039952335556832163194784770874913926981715387150388521997946192779031136852083027871647930871420371230592993733135778649179099709463486287186762506915114195786061365307667775094503851544385710985621205629035821924894127821587320893147951331911281919092156257651178761336806217253525185142020465477011363913955938061382563118070819483053757286671658602602907227458173774168468126903444533708733600768939994480623237842232655359144694104545561751054646786051488576883060750526610910035935581703577404941320136218673091899448209511919515465097216933898157388718851482032590117975043844618176213256896752474396804747409680882412672158805395151438881269090559828840619234024007277838140368275181122079411940585506666018338594120417714185758840420550542422356822593147287702493780523219375895644013759892622485818631342946443531428075349630286335039429825478354215659346372114984301743613311825965054357753902976056741916603905488844401001729797946481379544559587051254879124379295369075172392072974482261670257223856049711776420872430734440800644155460772775116203858193122117530458142156554494946869868246878990729145804265482179035425255401307150220001928092135416941108360600133309926084952865473793389014974827093454882962011029330387797534643415607814279735350954082374453041652680476103254593303509198424843596567907115522384537563254927365037624886354948517559461065566621825194045261188697382099396584779063009450574024295579900086034858394906005783633700318024715086576633862888913027794956580964402194550916760307483137374355660217498487709653298389845887904550454968589002734447143896071478025075617299210704885127557065704294147889276360128085321197316642000051198189744878377150527248574074527055601154529396856461433945449445682753170057994501460584252997730402720340361995672267618181699645767740744009263248114242043964131623717827125947211056270189679964806078012913832342578081521483553341753069507150799090992114984627857963442096560265597272896784827660886741073671227875887021273355316924848589176609679473204942083478433085910202321818215221771129783123375555068381148798177217656010711723614129207510194898332767451865824581553958806068944062787365665797189242197504428369695905696627892575937497087910110754004010531280043672886021694504356614890276495450330676821945138661382619176385080064289222393164839778583274088716958263623780102997473978306681436612758758395721392721913193666713368215628048584015032813223320998191241293177363501198328056519194281930447680794123624951315190346283977676321749633360266361202721413102200084458772657624531747339980864030270096181069982592998506056342501549780540656513503440897749961466034493743330468754768555234012754638752016128734033493296624636580490487653882512084993003295078925674750262795404190986489116764759853556073305691155440464297669559478897154979433713431478056260531236098318316900931029981656948450811567265255603609275731167017544708101396378904007108457679026824501381186195209191860207335399982995605307941192922397156938663171609017744439597521754812622983640421202874732122454273962061997343541606230776995610381018458352901850613019985254114836341522734520855589633937707643179374335428464293836850767792580633215991403616639685787275121152109564320516172461413523904442096652323136689508429986449863090498640395119229124559691919843525522027896078000915890339935849541646189820822301077627760357758543820817095956836511243589220638007402442771032935104044666672478762675325117037083706055215446924343500506753986700605240926416903871363967519879314346214443278759327707371180562828758633136949215997207953186881635194023815951233909792576553528473175855726555073345724859426699420311383004959447288451657781909257278668462086364391455394643674828427350846317930600476419791820727470254721296466464476805367593225677171598544915539324298591566277738386717915207428910173725992707582846610971683776162719838996333307380204138348733260647828305851480934712122899255669064987381033548418460172565946009069327517010410291688590079502000906401405987935735272507827887449709992188390544349205414460184927991481389181309428729701270466484033318755203015815642013300122933029785595595119027739193082657881020539676396768406032290744904237232836199710902330282548571495519070325235794090111127561286039611239975559839186855316747632980744104431484796560378862132488215756790499524643681285485339760125334027831924589291471566211710156631908316198126729801449926487453052623101371357374750863676383791273928226159321450869509548013633672134740664832464024996509104446221670997706413452195324084839639598263827765229462089100002839161915341033607041113997668563969429720941440676807499409847280576818567892054565258551322379689995504696322716068533923347478561355205735971760681019856720093368188539100746678385950777783039510198591961139053920095108872966663005304787110633476807427861563475032039972522317252928636033866502503648178154225070107037463446482967597945826988423030414582304135631711301396334780092424808274726157572143486769857007124091249265933346352836408743016072667223906851879331713322462429636104081689058688799526999775194551607872995664498134181481449259654289540011856863641316477056765840516064558724780817679817161903958480105686243755112602335559939642647006452690621904296764202701777037784464555093948057979855211254022595655084935268525781843338109990151427646781414582117715746852404316110827741048049760042927740292955732278561925856448981174377946720912471403729978539892478787947762110394398064673068276404709678477106770831766611822484434109307114502694486200566527088521296511950173599591229038848025653293483975093984870673340658373299783395619569071468326688337912403636630104815366194597393473320934787851357879186124412478935126926740061333183908893310837979104870876867481741372135291890043231514363906845160352020105172207400346701510138392180199932176793813652202786216046709236434696036837165892990997726100755843928177758310953002534644639570400260409247492528028785474748857291846453612231156651073488947943440544087777976216911056601085762976395711151747763000275918496454901389244288053845871945774441024054398270331449109425125577453354091914000862191552066759135982615434924919756242873247352160964450628728326876116620981452136238061869177479523764895610886037534228055927946423837956267932750692676371853544021801547552031314759975868501568749413294868241331257706944316883536165948359776074395464677627066073285726327086232550792479810030610000109329400280884056768534372854367211230935976837686025218656996702813244530227095370378272004257827603387107485595559398943050163191731901685937504517581810120515710055003253651322115066203495336805691435057698273184088886183480747107132368024008085246130569214824430626921559989797029153507809218241973840517288349757029734112693477216563087586708248507950134588500113005031972052238704602002832550952801968134570085500775714786866713840014422939682424970085176816602822983236136971708427244984313592166587650223343901475636736869293628535816816384851121086976451919131557688080216065089254267277281328024703721704648319973767851013826343538513871932882367874183731459511389535594935020842396542177380789800307865129688247252552485340653101279822964606350514625491383822763293868770792644237131606974022283128639874178407943374137898984123913543897591491583877753047360329265874440497612233092324152483806232002852757779780289578940761503949317490482072247613969285379970945691129235577015768775809172915636387293197807505042846930005416672708463417286585548120521554618708582176829405517704121431404442732105511333946510462205850570237363575196799051207081371697250166669204560999696802867055840806630845202765636010023757317666277822566611744865155374189154699946844350375415540290367899474393250664024368251866513337686011741272512560457215913505987238420459949837076735709156712326840078785425653077289532774418237975049520730009178938482970347121449400583065239085461281163145598187002553124102477925170762620605304987490214323912453435947114658889881200206909440503620566023485669524732881353783833952866085951873384020658146365868926625039383425509504897070223508088807218442071819691579010859184371203255830279777625328877555552810390670855321106798216341186652232372331335738359571472687439069889553010677754347962551584182831722578714784496829045133672443102944667624857628215700812967773892963684530877063802007196580080901789687543780982161302595675202673814782504237347030482541686077660149573522599967657898256335811639773574265888887408255020700282224026470356234576825560281380033133338532114057990425744020315995685166771597267731005068982439233523258649701725489909034580072562199860564996569150329232010160582160295521119304591376942697273741299497077511115446087717182511170078403169097627340257140519204126974915040874053697443096453941569155951403504346802787004599157050600043300361482001400836889975485733102711635090379524863901878197997659435529225128941281704795343657187883275596051378133977276581195769499034445833113970494408927475901128766938271054858697041516547004149262880436549937431997297963594480883944420435051071083700541427227762800907936900528266193177348879233389821836967989740907791381319029356046550710240086851765350109702627294017407504241451420207882208616790610955079927496682743681638336336194314185063107117448928458251469516940375774745279814759148253081976404631015149211912118257466535406251952707788725141703226280477570454645973184783311718343717907644549364963640169906186643772127116139838152889744309252227664326218285643579511452611822677107849126023009334067348935054057150069929902025738354229844482663094535578242037296957470054385104697718831717738975301477112408332937834293984229149207648703736047776676628362409656841885681734982037325813913166420026385059144145248205501499935254903762053611709432288380327660338274631867250075684542611949177525829679612407390211000857629516218850319910855810717933492069641188444983129695356128726326514866145030454150835312948485192288816288064655027087303784921655793357640183885722607094087175585685392039997433686221845576143771548990071039927108176911995834823099051651418048784181888941120462564002896867951414527602813334405204860079960481996984106919249786190395690778255251582798933593425233627289468500767037509268739618567788072601264300373314786240003202837631368146782037423669746102679269574124609199517292675960358884577486605741432115051229658478111954837369780218233576116928884529049308220659664534191700023164296215803445269324131768234987345131626780453051632427326861020415553087324892770660784497631847972001668638480939145657320719890745986951920612028007727710914459911032230286057648879488263757271472456857774755437282291095329391182716569730160385687827034196718702377646502037434312503507912882267093194961100601725094858154612907132654615003121696178613474935994711883653849920894092194157172187232296442764610377440795312340633625416918979952072031740821371090751160351688187749655378275268602315416594534527091093453449549380516418301354377030026612436537927601824178013649399663496455690891101925170549960590013631308229644991099529676420666646184897227372353212196969895096290041328470694191665154307514138165374002362879727020406489619450748836577126790353171167493276539971958232400031366089882047739503701698528064235043003363918866454014433069207227912096009264835685013702085005434109923710691895169785548880533786463321605342342857932058277073770515716112318400883895172136812627563005165832842107759099584148375913296633577834354975932368774245564071409022968829920496725769383694309910961212248733142010073513275071718180224540514594244059843711279904729293037512429423590298298129922962157481518033759230560568561491255440420439588057643139504211740773600998914547412250149303210035376585407218620264098640394190576235076275613786254049660107176624066587753175624082133875713922180793280496750598098408584365626660520394673568726800015298955092990432272918131579022434694306977088242714022700494812546161881357634779799782784617221253481648054132421260361160872069292371345647815635193386724773822416524723441749870846579929063424471736017314390736840249066488114332605158772099099419954733948187863226346019073834275850916329299957507821867171918495482844586107928167704260231271229581745555789128347403302982900977836952723865636981112726488975593201649664271989623728083006653579533454323176712410043930133552594171758607428668646561011216440777098238625099916066803810353108272095225290165075601233523659226036384509350581482738927220741544236019690826181934464087484263157161549133014216308045369348001385899010773468696618167153104403342428792131181336298200472700519385945045390077262000600553646456984854067271297301890007910172421601367346725716390661515779025914140743277081421957013723809312556118560631790891285670231757178948081226001728755614503950491289144312761510250425151824984895937041044779272904985503209033771995308385244238710882036059888408596935032721294614194885835257867705770634755458745662054995555454783042241532396357909371852481900666977674963869022690474396458824545903365123011602703677303189669905711724321520981937103071499976963701231599993070005500551216234595131942282019460027085291952321086941388428084798469581444748822775209324908923044472407627675796637313329010299281979693504936366984077663402837913945531959337539539578867772011622206404334549629979677794584884079408120935889330786197882766082321003883533654880611485219622919320563538406171993525006910804861954017688826136937546701275483568150442835287090113411202920886238746580759055369607084237970246818572822740712408440830145218622513751939122741437745221782629809885334943878212529562670007576337525846850210388511810710623878576662908710600223328768939293091362472310525822896135798424466981180527451180188540165459272472996380906895140570853788442721243537868410540805685959105078026603440098839543518249028603949301445795157116542757621832102713396522103349540371809237805271522911115291525484932982174089090788260702468330195729910897437419368185852272478602315513660456097382730068175364380718406489980602759514894331084699537147646811394349457113950551010039674064702023378486805818773337768026856544023149486941102651261059358599543895861038087999023338783256495262030247134179682572721064738534470232274966166232388932102417590433346757722290090012431329369098533552182573974801725609582203409913711044445553167228349027807055005369222650212064581433473448908901407702089669774319425503656009334334202584029039073882297952687549170870296805201444898536942451658851943715236267098851628044546133333765491522936301079516509330910562235471363657910358078953688281898636526187570682287613700309168082766438510956347663252875024414105204148278590331959549910607966192703681936000338580069990556248833330992803173189307834779376580219470353092488135579843118677367714824561074294450684103810940954254925269718508781965021434864546017452323039165111548590743464015763884947895703309753860353216316226687206829217182575518118799578327736230103810826411627927597864088398536209423049020313587610823499065983657066177370316113230484352160075947561789425761769644797096704289459476649145417968872540947677748924589247003500377854733058755435714303614958552138733130863839031415348761104824850548884413809265233643505647573730200294156547054054332538943109738934414902489592589097900228612478068323598661403697143026733408798587980283707627452032338611824002182795207335911288490631745101707313225820967901430438776335994686950075404054805366871784738485534341667822771133275728097049169256207060692827707444632589889714657626210745793379641381631054162557476628880358483144144834902474090492522286019282357973131658045616982493461114163564376214397683340229084323448850082283968868156069338472837517156003920462396018363603742352791196206848886879541316123338768909322472708609508441138692839643337106241637764789518219643143070821932945258834802077909299176371273136017556645976068703691055326858957880898056929270368784087995994067933935795872079624159008650047112471248323364498551701294627619977725411094280434059220217385709485769565251465676523178670638177820141672006091642812512050248623370882800712776869727745855180230400149505813452312394875441760442455326275356684135704088264700374828163357127392362301604088244678371763940700908845976394064419885199113411403278200099924541955548334641420835495907658596626109672692735469044976226481103063412291814693653320877936342489078356180283325098803532227174556419529596326587584349204970801009415934609086168602349422190285118580719599778624613475668919604147831152447074288580849025267270920373148015242638405829060270565710679114556750358922532336670124615002467028234985297349873050056160642156642633410646445313110736687280991663312010053497399131320757229106793534881645304752037158995154675386106266658830418455143562744680015688170131404975701359623892393877221970843054401346786357009848861368860297601839138884220251379745302897501337255100815217584729608606082825450950773069141294116754752805790874647535326693388306381003267837304665245472748666573468281207881124568001503410129627418699742270813761666525320327376394298269318535290194831123942551735688349048375082263617813724273684952844280665574536033788365497377264356117601733298173616765028873769577134556022985128835142385459574967335513332673288820839919831644824881942718129383839411508941443689192870147952076407042754824503171141291281885704301039779438283912210224685041146780017271218460495349527500267507964658151217336757800217525354270232491122153383139326036659777986889221353537546249273324406856333133677485839634385624919051759483735020921375671317008520983337393622737329165306087418031257068844725660914111775153879501039744057091822127268386779500386418891634594471689779333458846332246483001115677463663482521955067762236824203080776323434445982096108445376581609345457869116543025673979165321515193405764387729314416784919122460504660358517653543093279146107989067491856327228513936987536243387166150093298917988317160399402009925450887444138737565317048887196719240423399658217001454415023105340227971744265906560980190710853093542018340242488125778413225511008707278546778861395884936650734017743211060832378548595983772749781918358507219362966879575585203859066325411811015733906117042691882837336496842234894752501372871382050998610273392960701912333882775883090398000254846789932713907224517389291038787624241080713638090584949488384547095119283031708130780409245382995151082584256497912315745548388012268256913942133321317238691560082601726013315112201568929868770268018416452365952547802205878424082242053111772154703548118257730666427414309294920722470783710315190066429974887388087731117065172695334439879235965768650525935441969872530061764999970990497605672462148863576454007963315319190188247974846350457078075761238742950605653288758555313511924332630652692060074056934686570713137989533879259522902549053232549063783013337789374753044229491605846949531521277625132972785531050465812918818946618380432845781713985554112124693794564825450638359702698059498979033476674489560907697816329238403669381259957183833762942497163225714346859534708672636952912247420697264142672651490846579974781806183130916417943332479730824494721275602541784269497683258839490637743285764542897565572367884049302409730985944280413834944877942509689433387174289184126577283448830565160430223798304184302868291992323617952867055943136898389386715209250693285515143886734738511503044883202003541312751755007587101738189042102130870585619056970147487101450431937121351006601006242378378520312745702528836918900768757558690133401910066534434669607616727867701568299410100913258516980972935515565922990244183414739061659397036188990806256874217933377075230259975175175239085919746943842043460876966912880757752762320645591979173337191372679502840462973387892174823445318662639685281664617138901877944060112931276481239953000329533620202915924559314786808592004983132899420576401080599437909750494568523835712447301659796230849495520884793945972013964133827151297258675155952520491786963274432469037051886487174496521006775669224400295366850681609601092317450033257518971113647335341901610915856627849584777541926861419200829427946919087035118294799368521350622629284831777805294910949376387757110051322505895526422727256694924911873099401853542507002848966466868561054297942569732946302652511196020731302726691262447234884793483501367782912667400893473782368876678143895844148351621197902455774347130318791112121249375281139242075178791645510645811939991930488542362336068092021829385774286243811408027746067302745283946461403593507515420221361972741218223517977637583001290559856699488760261835449033450687086850048789631696240387216498395128087047884469648631286813875051383774682511154033640576613146772079890597500133543502882229773636096975155210643575005724765672753162129141348274300619984051925693253548261381504577721478371265975808471298148679407066765770854735878501638737032411236697199264084222267842472205449599381523694145109073124339393471536914228886489421299995244296316387794106289877956082572199830367855443043273318759468025739808512821682393937077585870861077454123593848263884199312064255080536121656655704827492694981943637127629044617897626658189386400569865060730584401199556991970645592403539142131643276093135346120140688207253895830264540349858586837714682565151691778865551916301079924504275508597212819920537289296287161873726974096925765582798259279475914744383229983154658772958064976668572694337613606987214687426200815053019420298743339014412238595625297488969031171238926705770636849533976961474702892075051689490617686627677476422227283013234163390520781987123060669303922344466025284589998724494041032319134192036932804539700027973606479702664934257513145236590969995465405836123970702840175753624307175028494809810614726729346035839291744930765136135960744382420619682549812058737902052353136522946234305518053003730324461135037895060423030347566269752378444202662868814554706484294178188321221306798616566318108400205714500039899254093049556149408208557858476062610547072897566988559715303868634255350994064456937530273019065658493681413540655743353959461080796219311259641381545755492159044337158605374480251568504336948320904510027712120788276090423835201649554998143656030493080316028852522154224820009670100231828903879919014979004562935822043257585228598599093253031379534791525116965831380161724935583602821957251804446611509668663034395007129884485818215320553654440216421948790860629315008288849103127462494994543089634389421459948741079423821272940907269313461388080281068192241019033086658582597412588069326284126740183284181983423905238469890987219430581172276700398470551286141270271853963051113626217415507244256049379896911699018672026257871833636820904610519580512562625829747404643626373708454750185644279415681692931685791769589481878248375214402451603834701237049221108137990151821960063518065411643635475274551403993472728264921209801502581614888319578243386211290223788428719309903557726829641250670856515807601935435579319671844092916668999736015832696106224174045353778247743660286026192233300086274610814250010952434171542829373554514015324880049887038235215259104070419300509171812868006045564379954869677066493377405694904950200747823691490474928067946698219497197591312594916601914349837533996478924992640760687401431792603846424386303635169897577410392864582588005066042066462712598474353672798072007438346199371142156405527011268012585539429954041732893248648541773802789186425386127957178520687660496002040726105373431023117259370031301726152350334282056182338168684045777383488073783765955851549656832528543048484800354153739312096111255777885163856349265693062599743543706878283235006429104146178712456014407281576700933497845610457283907926533693022546940033407046457570004031638178824100249552862896753517127821528040523631981957696283553901895847196732507437982937664391853151620699310469324502335684713489158195448591632587869029877609142971774359300388783306644001147688635681152999277622549246423924418413772523673539065018115386270781041521567802330439621062731068582818593903323962019740682283659830195176079552559720684517343302465669840916515049584968409501031630897871045637394453945535069402093201891313178265285359627143078116705073330528660147963743879341146668137528418420254097728588084619098076402888383395181576259409302302981960399587650145791251933916866899385368345168204117380417737548160188306043611292054418193504193252309297575488189624603842978114060926352108163890413668199733359941306878401367940441621577962352517848039053704755863622374104922537363881680760178235102259380682387279787900776752065126628607888007388239469427772100670113745665916630225839067264905097598969767365011902132656413244367547448924594112512339694858651947828927042646794004793437444986577409709752724937537915857909846548826118657482978829062483442990547589280568131542522052880075234604803838537125070531175405604568203701109269308671301572594796268295955855340688617889886084037834495422423529957914623182261847004614158006403426812777173323347068370265043475279090844083640498466355308074625970127584188206837970875492748618160149397245102738221727818693255076621188444682653423121318109388254631160973909525117088610109132116080788086763796608854489244507632133054900616975557901458083938480177986606434319552817258517750454939720664043298861707785100869510058017295461155649342015355455757003145291303296201391816899005967370749355372960405095303811376293570046703400623848292358118111875236049668931313256994270046222382504210833317607612510205280942543406978230998758807674256613290110928967252548548777047628213598055728182898362791100016979417087347266392530617493476601661624673322992327184779990483343563111298297765793940556808694180937615765687911250867096382543917442264840469900816937656166185330647998883513452040797775177719258843889828093820971487782578579298725714534067970970062406041537301133079242142510501705195675441455055727511628990651263339899720699906084187596704995589392806930448856855510696828557583356063433203368844270501789344170369047425040698909126585994028644827776403155019341075507575718486162766650318236676295603108411826938335147330004819004110947750527181311387054340739360306834416052290851452559176089190453292981365012648868941468750385243365684967026038208859132443081920403841743714457500095740442321362373052802477747941796028660633319595457418827258207205176376505303861460834334055901780314456429278068158767052662861136631049759764294923103279738273826387625709616081211577539784680518311999175521249347557097687408093577564360367642239221336067845341545344683942677951941445086006572442477996521105433130301481608186803385245165219709637631247863296403834568563793167552539971415743633893921551495240729355517160636552004541708703948262775732229643088244250849516313799751284734793484996657868980345581199755738436394830395532466773829459779011218091893769498193990985983592136070554872443794790775195876317846460545473821321740770855672086945116399390472470881970251149701581460894680711400874030006417938084100424931535924564450101479858494530786717302673285526262883591851620581131044707271716622117835291307238421748591852737518170417994074448870777934685922785155552048405471925223456005774748063163561277216139169085147384154657525348766521674241405744267007079541555506647855201221727583986337537406659211074069328310220773059318508299353615108421212119082142233735713519860231486276996159783451772019742690694581298007159604708690303611308209580938569282506188204070011928343306920327780456257360674975879810281067307163982230740021725675299362031667322847483097301148518000819082410295566652371604360020415695714427110907658985463666730812010934870075741987322344329727939300474169372517318946208330861914822787906500626189566902647183972652737515544400422634528639774942850934436868264182186069134779187339795870682654970522456653832157025131399279263805651108426312245338051142625183041232295947053319976594959367713232037296815040082651523116869067609958174880144289265850793016120108951348030772207311415687955916221440404648516527979430624301795404944780270201832689005791514296950749523249031387642421855313762784571510900251477521927503332522068780771591733354394910039103518007692329644460279386204237365242209105697124123683545445087732615184550937081277392673536798129557552135578684437606185147460447543464834562509743931835078749822905122261732041407968546518112183007468137415124924715062536730813006538679749980342701895123447926069661563360268145682112697744511557775148874762638099031116557325793688148912997580439170884116064464164912548197017560496201188241029441781654226655047966391794313899847978398205969712627294495717331444872654785493140816365885496504339572516399649905256026748156010740722256097601354252042692018611774020293985289682474968929308273122870856565885868882881180132038677986716080943126248933242896614788609081253686001797030541764274839707243645113389641370845599396390523554065280123386099583915953091639263991250900977651762829607324011913530053424006094805383054116043255906840004111439579627954679235571717192581177386972582008481511392020920549599166422054377531925742744674090097563004270201998748763102807643549229572153591927227378452596446399917109911632564584272850799506039969354553470127956011684599514439886091557869799476033595243696118500684042237501467940161481808754799544893793013283845488103674650377442302967199820324379380665558231641732240760466990578471961793651709896267737346243896583979783934035576754718147846793733160534293117129745699006529175812388068720735230943426204386530136537596522370739202957151801907134933893019602232989651494538317440088951907713036776322662727215801706912054257984130942328321224982412401073672716703243219064386906929755348554499967322628397378083487547884774279395312618761746573029187505909096086290431100625196489981908640643043872804998499336051653200272791148998975673921546162035255949703428236116251499774949370792400128104724102563155034380841859986983981134486665265258264279147695615626559409705142713242881899399304796520340365342349183940738680478429298256755788139293038342608630679131445078384809850639172122407882314061122159846171915444343910789280814175558723128868406833045932841579519754609858135375396608244838435757958253256535453430747022156422715547782882610172955302265085190733983555081485804961457855672328937011197312801564814205319360168984124340310133871738562217442165175875769518892957205235557280144508808058885768899337936591507961296877532351237065178354277350100258612552773142531986176630066127172798451598513700963141200289471229286469836169000061027961583696716050892455556714945019036724552660285187855309803187775850753755227672641452788042058602406039174131709291234598028408621648998953652277941396287347475451377782423018086299965880022598717358135293114874453527714343402876909293831921330712230369913169766330657377302161021858957719744802748555197956160695639137687128435579550094344518111309809077897027240735417055682621219559759406575235005776765580190364366092079127911700639208313965081637197795752442977432904903626653435779329383842840912144834164115380733143685125834728593658822462758193989116248746016386851233292634862246878760590123419639263875763870611307840526629942515736108326011129623791622459955070900444456376393561235857874488893462955347689446815177923228329325407482599060209158048142534112430851383020879871625123639456472705803208895583502310814408118717733192680668669738282305309813436907053073385099837085471546390538274307616957415733299336989254770689880224012692123740238301356419469525012668079757273219941812479960200802650915903466884405014880905043203349524618162350453336645005963793774611620344174081974284104979599645089644927062753993429815712790122032133312214950965903686613122197413038206144181299195382033344093195381187491460237305662620043970093215580515347046100136555209891721455722849278113486073728660931733210965586229640709767035138500483585704722253592793157127954546776856817583700650145927495590453193802966849329901701073526154201585536086555496191096988228412167707779698756434028955813939923588012016067855193462511092244291601024850303981164613724005615097337557097396167840427953575860648152199319115220012183041317470949504023453018901008668669651216585223655543233250332901709493692609804948628032568952767317481244974439673952136070265683419342599104672513166758771248914066061876612227834395853441200193524733630113818719157414834696800833019661747899297626420432727895230261556232020218840522659824549972210110841063158357118212548138164481665094864524803202324385586705480042251060138088451594440916073111077388690953177226020359930443395997991906908906672651979479047349451543582456180824582740768865167104865792111146605773012863648873089288112415898462422401444896145078982350686293466206738656700133057728794894897217589534235927950423839807424471342090451466927829612674718029871413664352470239137815051682547240659979705006977548012743440384288493573247398521664177049633449977357480798032540574549948248343234509145162193516152511052254493778102875690262059412808856543953312288750825645032006831342404779802734048046655367549160060892726862552925285661572834936281519498715699103039710892287947101804325300533806649639509704490138193131931134020911595634058298667563741856648916677112188699732163385741109855286848466509450952327563654528739298113550276483234164091088835803098638522721547111282808820969818833936638234676294054158520649230225094209646859587773743509209051225455072843982661035626446256663829526195628942415838636348548308091524038815056555182058341279572082756366148999155837387489200548871714275531191347106365613875798108524455532271509127745038893704637050553406365902291436001955033574156174124706496522770985964651995450431887622626092184122875861775410400972313570004853479012220146236050198148063459746469370880930629619923903106187641475900706475814073418540143037536902847925541505630399623242487714808157286921442851549190639697094051665475656819042576894250947330597120878972732116092927545183066052468649908725616765264958597777828723921670178989677321446928995752737629184432220064944298141841570355072588661996194880207742066965174837454375133830151306196243183756346846816277357127502852360286928371409375760552824266572820547794439953427304312451985123707327192963366813129573563108062762597565680190537329403838233246085990458900767106993449432807131250277285225421713935104076478582761785845792025049241943894478277396989181672243302492390743913406550672114967387995949457580784393375807439499163895755614789012502370579654253961094399949111472188619671294589806715244762331494832125560298017949450089373817499610351258658904423714948743863883880697336858361644835857353107314115680613194513054113447622416881986155762536822584107425225540283636517408253321918588286411585468308955643124927387514223704276937268966763987397632230621952318659135902060234678284065248346436115522727524551288708908661108200040417903848441640502657185426147516244159821860546544608722534288330138813706211366549817055316723721148120897811098631794660605189257792054580245548373240193028837593075863294682030653414295250047782138388264930262669763153148225438651276023659754568544772293163541078588084803225399324769940043521403116571980117016836537773227005448103285926394575585239091994146551347825463367837569549122732941879240026797514741567697700769465528478442001271077663556375030735915436902277264255906983981188886119001801287725954116089807449310494374345955223407952988038436793170199257619346266095626094254141323758362723785069220763956432214459058240868622922241700725639019227521094045477667497285338238957631212582138008277184757597909281467736452948733266900398102223549032061849338763782130289635313018282690809214566493184242033866757960851544348833750119979653552802427585914791100234057570881545289060218850042541953248219027197493834308423144108107855742700342481314275688512023221905515393111215111487324737858540074175001923319686002564648453289439183414614172654073127253419076807799642296858491552603264057499862846219577868864331734333785493100047167345814367175710802443386985790404193814435315326912807991559230648387109150276385077428621719621658807116391254756670590581660031155009992699250105248226210126497854929984452705891433683495567054915636742777771832727538510347254546721163214955524099987324463402166277888146670610288352018193289094062494838885919400507910025792688989044515523640432944082791153855921064145557987332549021010876761420804573589910895488522773014058997294856400517807979566318041388223792942432870182471121842566038750930155641279258926388836059272308112915960460660454846847915088000989263454374217177433513670439221385152315227081180505616054476991014162401974956431829671957571973444997642013076109553579986458116081379078044894437867853522087808342884291653553409416033270284428910202348311173614550803267517333748914409428148023018109425124059660976231605922728993820959724764061965517648370941010776475231745370103976902440491049551115095429193848602857155294896222858493536483036346935420198909486317767436867054786128394952803340382043454860962584633681511534604932240077055121574178538260538210701856968893358424074563452810152459853725564944516879263157085363095804993183117221853335018886810828562502406625504212292779301283637133363903427406193418054429999349814245227709407848955244603238917709173981621957948204393587621366961851712092728282822121377547357459438147293852546301930061497104565552241976156459642658390421073544451364586566059783635072319465816580528521976359920995883024678915724943203708239734312884368007003302623526631458738836834630070332969390061999593470324821785445271760924374188953407991481816142126701978183043737607056007459240410140966890457201061029670704991757127182758106831080754645482808451768487748943540690620745995363825056930550397588639163829780524678438568899147938835985872909057410148062057675089163461072525709074189547644126341396291754424281415626007319402521307505813405864547177363461412839110645615528396193381458990125075537900957240813517549294226768461607643644087781727871777972450773315333269045084844282646435410731202558937519967251338907232231468259323478555850830446479370012850090164076268488532476067748057035663295373993306945123341371377539157499180244660259254436245571460962325465054332652582346009399426911509838430805862417643164706522661799960696267629644478388497514292103996909139535680563913205105430791086477084149168596632138285723329919628504031937487004693136644566579702006168888945029262033958233787677183130650052774378265756880433736878168457681101849715148420446338069979056002045976627695419586474303031137337772090699066251009244063333068165848194574068109182499182524762187344672158618540477728522821286895024090487886783018000714140957259728936118726338882486215806932526164673990737516793416068400494651819519091069362176081606337713164668194914240089932342234433239833025048035847992930508574296747993037299577643959291140218012219240379220723948371091207465040683024620012759689541577547647285634301603753180531903280411334974766486100357253343260599520059065574720863296961724214140888740482617763599009398755736993979418910596092789905244359910829336340659185883531440901252303814179443242422000292321170419776228869989091692780411363661873250046283749657209263047348786356171457097420860522738229376638535347128226741180467296114857178259889158920865849213447703644502520239038455015817571383896346700300729755205920953722076790858445255639050575409160736843363758684957339870672792227786243322911924705000638843887087915081524127224514736383330621617722327744636143954249850296810656405534669365448718857586716048631713143604142573286863487044387828452817483130162198533881959828906304771817421993837290792276630703211503305582965584118476142968124286567269494263132451562046774378872014747620997982988677519810498032102571703960542069152227667927712180431181237980538474590456880595765660889595750861338173086261631186245185990022681181095082921015568799757659401973751951184218153194153529072732214628235103062763662432425810673089998806264612993452298057941760112104820513782856061573623807374440484995141957626322352913573941407856146695607179535082719270197754482328007803923362425851963775120120495289851887346035517672576093740048194710882653167046251106996828223815357004683198819372441288904688953366953392703320194282596302214804427321685241268577227132831536084863124257126904814921871202502574149030759315830800390188390965535595531569221296251813945232955379966436408736774685876813724689400711023467717078868273642689367147308215784012116966199923876706162174949325054705856755810530315158532355470916116650143390316192513443671076438696469180888238047053931057031167553357513232613575130253062291225313554920252594480856227316524875807339696139719287764503018871840153765184577750162570965920096899186569511333209698204594438996154115413961204504865369661166118149251106100625134196185599983562692776771160808306285091775374998587507835226632451981363019127463240113778633474491914469725156150013576113769116184981343715061210223415611712054111887366690292089765622512958167123960978085983688436775047479385193372462977616151577160252811452471059819316422366454817636999702277056918507334280461037710197307851440204158042974679504605485770378003109224612370114733295988686090014816531080687128124657780467499905814085576253163029603532247578809564731607883194448000573708151107981719483243367393079292278635278428434667621227047169684248913752944019990262673829981438565413019540949185583348379429018830037077257599673546132783596007234962336841901708675451550782776989444757227461125208847441671922422434063092410329384393138738892782246297467091923819501211770281046760549688032278294292122207095292366029182136900861524795218559926996289729412572312641179912139801628073153993148775524636895464584170167161142662364022652151482008156475638338143763968078384346467533972731852890807164493629148658907232716004475359009112506283371182294581744419608597382838221982198262402625679131641002897979592313032052363575537188027813779782754661540832731400196507016168274860178652301287239551533288757848001733336262659414183290446687999374170936804352469745314593459536909349720078708667333494118554761584648902237852937421878690674569234648510271522359977962056931817351798108047524809039479206230310137429681563076068952455389527405404605338206737669901970506579847568840397084117161412597963005897644061272707639261219037119352119127245245750324261076155774630450998568846377486071350464265536454405287016443485306505989908040358665070699314940415424695880401095108271558206015354224828702556101322019893778321821983382243240154754248721606361139148414861631262367652859843164858980353348221725066763981754731661894531118040136609109603766961708251481070754489199806186495450764534114001469055805826232665041152392687400267959138944744339578999546933525948963169084759447611520588152793735539611664910723544280390216842530480806230177555628433567233137289545327471500897367704486312687309508265277905916053122172598252059015382759159350315040641123923245271326580372962501742374248283421311704681228231948709161746655214252772466371573995184412458511869857483505988248238603555098188073163606375012561637286781738112788555081454677426407564909360312560520971224228214547681996541810276034801381058614476248546586415072091344999359148715833140016677040803041085832911021377842650151225010541344215108542070672588445252996996513501836932390334061744853285443156063347301953775567572548289648149643524861615602484101580028102045633557748511394299044034506216595490115407025823222515336445845434765514130589444036094629923215582744773687441528510635310560826566693092046308734914627948487803854156596166762283981049030125883833272819614527690802623235442855620248220623080044235285198224880017223194742909369583542048952261084204516788429104508008628100255076734177203521809358466728366427699807566428464926291997220656351721228093355163673359412858037941484932565653440002625995356952008252172149336992988215521529501111363713881724891285444317754939575782896324666308766266182561787549458092024636109738662859902286234709350265611878226924583909913174696340939038116150209389203539938316843499756730110348214076682079336650270517054380597627364383806632398931645325352363476873426646016504600538476783049148964757040215965906173315848417988412528081154650029739342074568557235374575389238497658636240528733137816908853461832899569383880980440073726058871602332007879899021252913516393976135781598912275229627087915539931311247196538881852101946589100024630328886364593272947699935095963979054204237804884433723958154536984455443651679636106979359355986303938665543075163797066896993420179862264324007480070295781815811761814411988918288334767094907505218653735902386213724093963683983341743417720703444151544839215412039070487578092764458699998075718629845964976072856192471612612345287818461394122161531676326620191948121092131966224577728364238030583967618190192992465203370646162894658677558676667642245759033755653179218234380809979249185094864619698802925844948967186019192672989853601648296921857339721900181412333461851765928158313952403864298456247628605422777433916893908926828715887453986262862188204742333959150977911181187428203537905571479995036757684378520690310574850278773469812001645556882782561118659510943084564267203088094059198454429406121409638925969485940970227556454052050635197085488874827589197345880523979800546265433274253979229825068480365790303780104529709210831012745506508539130263241528790067200403901152697401498835383931080192731911792582261398335217301010318673361004484633924667807260407903852492430246128512147056405152926123174159365421350392369316031429821323226929289174369836320510943374336291346266498914478581040474053808103872436281162664707539344832638184518606992235651112394603454938834246644464762140557179382768776451462383367767498568704855622861894645160936762681663335536897526754317287140188360979363510413347624761510168036043452473873204346473565922224903309138412467840755276428526704366697555281608649515266559013431057917116332668965974582031100904171028686479363697008897225319432439611364697300028961308568370895755075788979488900980512190270414954560755931506616201512411422227683074212971810330763317082024785084094123971718020353258146939507399049064019918502133304412123976980412727509368616528247177672150865665797926856751464476602553657808434746698799090236624911198313863816742208617010631137606037205741495692754001037641319475063656753981469596354441587647054140727144702968683019273844395922581079724245989738094461835287765130877132208160851207875832548815998275698995037259764250107851084654916685816227851022108414018934526109452012672801898611690944736122581418029352981892570293658726094000305317500467049517827103407200954020404378495382570653930787516557655313183661165168903959895083512307115992476383924677636073387257617678715909382954280652650794754376308119998155571242866454669754247699323403446627276938663863641179818083342857530792166540940233201579704729780918950330166262962335768602681705228511771674458932600130013598664076474944335578210660657664206910505589903576950162000093689817153835748903943557256599004799965245575398600169637191951094823985577060780290078696022718627125716833274995596945775840408702598689118434956132008304722936731638832846353225672879665823525913192776573581686250181676402349611093942881245618304043785045135651203438327135194460926844652342642804717715911552049690506756676970049874752581061741853904963949791222399922092171161424826843214334171120310094498766540714479192989571990359217049579492985200410535243279268063079957150371035378906311157266901277414802726088330531119996347917129586507343414311515772367682258957483276969931398279943033496613004834516625995728286975142909801267139053610207692550333386164691760905024144734248569350613945067544031778479320275435304105853226801328172014803437018983619936973621964853905919387592474930129978092728835361940592885287092882852931795792065639278285476515664680281035560810061133440978195955920190342721241353804996282996972191243671716898461639820821381343622041566233764963298329351169921315326862068911430987461839599281899167614268419619549427909568887126059543412882821423628007341204431899922074359667733763200021418157352056271526991793572914483820743592475681721390910122227621263732812419896575227366485975581492768651701058524151737354006968950722353662480308744141481166122822748714687610928572819124358864320663209459575440057491991224942467875859582062877530241340669005797809617926278758192042294217452391006703621799453721975412512446302266940770105860185030424792660475308935636690537183659415474264377448849245934305419927473121829918454402055734066498225552112145602861574685900030431055981655920367484389694961348747463074244331256565708702804781660236429762666636717352987000524156882096216290589234086861919690026456978278991738914288122032703706212437307788250405565789310065691314382561494435883254881040082079666475226391433175633771986639434178740251641550032200697726037957608945284220824426346991575335561236851900408659155314712395471342357515571039184640100300454394330418105929266439579152501758349683478832353862833312101131237007230357176740422010731282429576122300638394369395576799810066229668456759105027472289650083161776133522223213996697265477657923406412358727444290695075598288825059317438930468392400790063530555410303771062422232580381186238017887783580840663654779763474869960412483728318666916275979916970201282271079962389808305029583142818131302231828375529098633149801054212784380394637633486288717412753600115958039876381508483379408376729563070014868649563250054597129179075453306194015298866723786108094388990060429449438912052825225064917246911981555867199880576070183029199716069315767910861522379550924952536296556897397397020227738142465278598399212265466283062865862656419701663120065263706656002819896024265254193580024465468709001374581833930799000729145732548732401258030769344202283155855495241258514149317344676601480253779662478711016033012170055789376112669981110026270005981446869152917045671503665518728680709680448427321869975365919531614995187430214157232058589189296877670138822492964024190747288499552669381241147288172160575573155344690633234116383299347195528637807093583947406084838219109837311037753570033918770166595083023251857436028737322960738178333133907903007447560805667910143444978626328002905172728625413678971454095849638722654822057027170241651974218897053084302813150867177473342983048155243868863578433280186032364477089123734636704492993193479940717508764129933872654918655937875979669457175023039564448895027489431847299323757306631234854297852479915252523722672754298718051723032204927045967654336339410538102997541425579944388814136688166245595611828610275391018746340349125862356888791708527272034074684794958159734178067656643421094114957653949951260150884729145635268821321097526669297327419421841986748803123449928146841698963305916861907694981608009895279344655431768464046894915082688649695700226648099159260640646508529413591050344769443360121779593336118899173550589639235397110419213252697889977291716263272634669607633497988992199569065982510556604545761267716227037432744361291254289729786410797989820030574464199725153356705997591125832934401404465132301514761000627298550621502599564759293790902579202789074489420742195708211480318381565981648924458531031369748212643839577824362312340249123768311346182019302867645632398683283120955647042709056031411204331650997808879646448930977337990108457268013449873336818699895139386061172226175949243074929455590260821666580045730670641310345553137893736973898359164189477915941655310728114233347700492344579736828553488481342869657487790045898301292205461735358586801388300874194633279967109168677947093956849594609392366194709652723696918171854590323657362183091270922024918948776790118039387145170387094358249829335145729678348946345270908908470217316141845370406998871914373960608529524699503915211413229792759395551325844076870993414179958276265066861172166124352165045229760627792994712300251621884448783589585472945822767053898374188329668480475472334340809613894351410717537909578250309492026937541828920966438405368626124843459704268189824347696447774608315365187303344022157830026853058074531167415916275298282207714692382350746328152653908343990558861721428639623551259188766339873079440133311398524300488397188309408287723918385213680065023557655389812669890081114463397903976265371347628671089221236918494096134608255756750251870631504480838834498200307006088571750965698327493663565865939192249676813331853557953800185400006218713890751957925420754381069818560701121553689342446559519578116984422326530636340355962129465454687503807744390339805263339751331156911270952210111192330569553431980375179157907801462519169982144333717179285807752630562627194273233678136462352400745747088785628360245277974583070184085570829457324873370502835686623314851191858984489350334672917446208400107802886604728578360592941562069505722513898709342602234290298999159545622295398654485357789101522617225195127131848832330075397300591516278789583472158930621513630232771218372958000886377193496683117122023343103953693777079063460629146534140263662027810967725427818817142210702621353086143353203053597834556323289590437913272702855089866157126712897935960879898240717218997880420878595191931193386511206668670674369983633932676415982783651274393103290028047987423371230008773860688832162543135238139723457833403787069448006141742297405429287171657880233936441306358402435358946208645132099378094947650871713916724661306819608609563186618987602920022343381697057225862684006196041013005546091429169334187053729835541254648432196326904384745225083807368391208157716948723774272448967376034850130998940374853440609493656975206230653497866211854811546546955401749450980599627048913717506029233622169823887806677374126589930802839985880889759056067333250449928573086227739780116428684890272227049495986840282208749875708949022112013560605306219136820772722323095277344017399992040302381187794663086088876324107150088055235822550499661038131143416029311117325789964034782982612611692789753624225368288311443770664887745642414539250376811321124403500376557390149408847571629032927848885294928483531316539490842874028899539186033691745192932173089230959124912731220203017321525517129906990298420522078219666490786669674691165094958378404592462776485363337776039374935362965165286728703383103311251069758110143811270828858234609413907046236074323228084530405698667422491985747560093632713304425674914749491918429943410218890930054089263558478003097727880048285505896764467397663835094323525073186870531244025688552157975547947579620299963666161958964631286718481078523914042932854454203412429683139554034155003322852619039701967794911981300507111738532378005574563836946049950211548801385589083316720437858386621493407566499559326716542635974426248550185889523871318023588239734460595605701135832804991477775761647784642913146045715420802827721794482400512240544401359165655771638983042567877254455132628788540420626754446235024667627156527800274094144769720382081769137593968173371672160585004405774677504624054690868393324256710343569177378914271389524014194157623679779039356160034556213073526156113877742589734699561523750181967468685868166417840217392394785513507865024035087946649375033920763079937686740641110160947023122629717295443253918483620315108548954739726968713309612361185073699016882322907582796211182490711209614425892543081100200541583184580333960830157546598652509228592062642655080947329351019740069955698555778265308813743953720925599297111420738635925384611919182608394041356079178934763175410102826416035444806721042244033096939024322846887753353217168707629854723105747706456437996305113807984543836938327043610457750883534233180538098759418417412239718468873857409001195682069452815630408403539141283616162952903476261703103752854386372966289082357089577097522201960824285765248105533073868230993995724633715903659635149877478161757664363385733434101449058694167589615394907283320180145961460286771052647818151514819225417098195539472044937952378827521645827500873439719567703652799055401118726819808447905735737456348949943682680381718733925211454313264041077058276321747359853709055667881935893690900242143476326965573931547480554515801366774652674092307797272788239052565595080340242469645145486446760219859150628308550607737508540082459750479618130669899402097685814966429621827074848428901124366887346828519125907232266808892097175890367448886313802637357840282575557519629202614504865088099973853867218157163553331245029885062604315038918748852241242533568711230727981154583497767547361373666919757816566797858170911410448236946724801393222410535160667852390831577834068706972291478723763596508521372711858501333577590849865127658376447022019521530349609156684812351829474727650887871109972794925194627455116074110970834269846427555049787108776254707474639949691263510580787648666311040007219642479128655771251893032372250691243429032595766287556614500237449106116504378914282262742298575535734204562888040531427456289741115668200047267287446881861750622181634885326072677305466261638332921082673698370239590227438165388313961383994399520679005104180875418764561494666876470429852965399623146344880098879024860412584295557684266397836647470498621518954803313994198143833233387634424933989170726570358709219115756414253610799332508835348152667279822133906533122938861627329957151666224156369091197450392789652829525955597484698798710544703667149946495564237152425580827449813018338436625643037090559403584020787576635340679542326948267517043079763238005949493819010900495403167552098071905376411852897760712323951446136529279731206020434182755262995278398705873173279891351403039418078935121028740575773126548432840495129740360790381943352410912510882279941340959407292634768691865607183044460630457047721589432507063852214966567778581359681759092039919290408916586500428868670554917718582869889240892233598107166939321056435371432810586120294397589811173112663163609989622071971032222502981010282515630709662862689713631601680981264446305024564077596814716262643559526871997699628084543697480386363718961034272065469975398621880803428135033070629446885144308315087997478202733813915680912259727889955652107966645947074077387250033025466866618204423671715514638740626790267083550232277156692703481547934706085840799567276983825452532490613505777247394558916513896858967665035787113146002319165946666039125378249016115653157839062262400662265273223654301652887308969437397548341416009769661830255740232214028408669966266734927716658960301841394313288757132032052429105517176856640730504218838101503199181462760146855559779577860697735236551775725475980363386845993367938604074815558696004518072510549924030607035465281865323496278886747225531053649041687525970044341010929952438562385176011002558895469553090816246827573226199318309287372813557759946057153496910182958809376533638249097302019939682998711424512138204341056809395486128893570079189298339340202473654998511299632922822066868015060951145357822734266743794478864603044708203757836075779454403160200356425302200720474521580273018001946458182398377496944993315248611411909530783892833244177413667746391362760816449556121164292362188378404214610060238189750983789439357305879789270215883392498287854413588253368005722716514188388581492954076629649859828572858784304881152687689225930011203103741375636297157150751624866264039124033080540462073404810459527755416898031396498026201947810649115975584656433848358081067048348428425438230557005082358630001066032183614491387949724098599070605535362070440799779029343493264778565988971145790241825012817477055527301040620629851875503086685998688988516849680613894330573867683191430085563852780910334469630124572576127965733352876530381427623937837100906919236113576739558498800336928867863609831478792101348070491678126840180572994054386633525174175477586039231739937028320777071670788500582213602928829644851429487674089192081894199303124634347960105003875895007349227163624202000395889635763924174914327739216747549285210149219055043085488544068560627003996744402763196196469931899369758410248347124299005359284863494071159773044421606760379901942241422991470690537550484105462316642300154187008465547692009668218977865067260764120424003462723847294721836697952066172433552004200731423426905955081605213518191194987354031483329667421142238460972447303641651767391148902158133529470017777919646940261286177453633917362558764417721674914722099169543547382869919318353011312919203870041445580752248288531439878791258654461702979008989531773953967256544079889608333702291806425626693382708783651870804328018121723622109532642112451261806401193264555585976837782200594256440351143517814925975960007692027697603556323120147553662168016319613431870952993106972269016083767798099711691500012888260201460709214884331112053179756209927868212819332080582047000163816773610923946296518915140521151513852773300991300448827655631829373594891944929799694412090762320810851369797165131660089186643235250136598085574296003893645323793432630212588303338343305567939900452135928681033736417463727980308953364279197968389548496987998459318622414233544191188838209986019253404182523814413369910606711768702910636002414519506429194517768104553601845027702730966962643954756810432923932790198394740233167669717714632977686713091145271368091196839165452611467412342962858806409086225106146072625653724590588716562966599868608146388577057455999378949833062995838575599484293900010351559699713601962384813362544350316421216959281106280884675746042670912966915104141593320914889498077150025055566654094310953493710637547119757160312943270246280787614134299868347794907918371567045167033155357873798602025725283978908205966720529391629742573870689953789797034474907877892621491813988668749235252020156169900953814058690318086426514164244510334255845384712405130322166014035587407651284868092461027143888016532307287983501736711740813721791388563357405362282733321860968578888623749166820312268176192807056929513360554743585534941975734718474807349262653851639630059749365129569436978886657017742673679644269888213488201623206456936365076650811085925159532745271937981757447542159002598886757608591368485630575036879544866434733245729123148419739968733958442876435743296985643745037311403727987793732679214473892776044950396453987991965400042360888207470775382322120906990706572136167208571255214173464028495840505580498396434204651357368700416631664439482863312215244456470897984718597939008236857273555599892502404758662042530123107459666680918446078978665837289830740747893332751635160656763436811666265821104731859644057911758782555549617674033270435084795459157038675722589038886726692997303082051665218864711352591382096505255670699461277499841403714847336251841708489620635926268782567495180352718608729100596163283051645452395667927592356173711925009727285665985124644555873970255678766943703182528699327031268166024019885816651478415387562275134324339109022627284570926022267582118815035614153673926919794124356189207267924151830193947060759232499780317966092940458311044599754640416109889603511112491794298029750982596266179595696262684885185740326278748951531149513509175131803726841118255487482287204927469620871122734238377400937725390480214857133331516029852877520860860483431932648171339596289667435931090800762826406727526864932709018986193707764249437665371217231961509238048194137333815026436486928626929380828603697325259820373848172085373292684506756537178321278808497064355305717991472986659448668327882681676935018133924111340563416256106007889948678559437795237430664947056113672274406485700128343600569779782398987300625710098273519712250251212240124620833549715522051441971556171393686544035220173117298843848993520974978829731031598585925723941937521458558279919332482874186819434919184198068213177701736716368365490862198820165297533484043611256372401902309239609816504553171288645265932552520257588898980373836887182633205906114520511321498165901465124016680637413947354084063384419489040313607663290379414055675328321439600812946169505861288031184104309712128137411872202572796909131631708114341347803028357544945926874997589788714868093201094501879895572859463757415519093405921187485134180152513417250417219047610992390978306900760144664325520428366576530783159006780337127746263097848551128257851354527203535147548243296619040666197363280605028977182895091203642290991712308739381639934216668896070961107220736932537815462236028693087392815639467325592783082301294246505893162887169082896780692796547977216765518988445295046452973589461052378136175604264305257516904156657839145880376406972803623150958513423214659950846813070203358273283934617060627804970552202613982923427370197178342551783294338438245964051849656941174752745678302322257030274360729860109547654241683527923199188696865883602614595236255949159609247526073669143066487110332999423109708330863096032223649264547497949527143284230743407767563407227155551557025182265413248263489012849651400176389931131353435838609686410530344874544872687767329637053656829380464460531865967451539279270591492652216998731056843645446267845037788778379484401456027464411898845087402417780567347933375266277829710742227132760251215943576366598396010648436333456821738217909183460842155003691247127016378809426648278473834874939237801683125627319275369810739091891697382366798477985101819593081744821706254683717273145749507420677115749156918230307303604571338302723039626815712712534255702579429631343749754648383610189151650011768097975064048236263891218311713862083470886838276768770756142872566648261649064789073115385811665527664116018524120490448946556474043898349096940858795593217033192652392265235037514448310035141735537504729764193429567819669513649842696051634626600932905269449981606489850129504219658990006569461925579589654008927255964844211909654696118417791857483763104492520355324660129784545664063764363543828113119268263723197399970511635593906576940378086692142645853849984467409595502675577938540981328752946615799660505945241602952320314583689329688236863905262084903793717673466798818397761256388903028569399482304874565791053419139206959934990086796216304757951411863310329240439015436481235753986404471194310313716487069823938201843509798800134048823627883758743106541528269699031585150582990665146751294786375674065684752700659300948316898445409001848668514788146325336586126082721028725470485584319812415750791382203175830315122628838902925013126401314858161356207679533478117178816143015101127656009397376836763203139561156061396570343754104565001347715278129934111763355345564866426795989642239441830654283005578223676817692434816597598561822861597828123301509434452508089809720041933737370143736062101090327265063163911301238587911773381290808528216167741477465006391366940897698277532779427557051394046217680509243043916003074341830472581352332354733673125895873788640577352504789792004185290435859114003852904767145852951400846028886989450742715754660637010174358192119929643319769649483931564056499408720035901402624478064449260210389901945640943375964004246607823905092195823474298267278553941796330025451292932398270214482607305382085380737679606543951143096076985580772948597231662863332004079922099856077794772789334063471065707867841786253089449933652786264443648425615575051795822843141990554722928851058116481473133961596005678000682272071583879647504865928514258187867020474919567561960440572943912566181522733365862288951190163731870267348414463259690873211748146429005054682224120069008699706170385997888089817655997621904502511178818794705354158529269597240075553462494660359612865742626889406701738628186222632293722974277062526546760401892071824676253813704795191121107179823695896564966157381163513161778481697277071319127618327905351691725766752786250662584080201927197990534204226931479345679423229392654447024819746611043964704858726654330461650260715945905396392047068041216196857345916956075415083655852469818786004532085817159522138841400954347083062151004250559305450250646555932231607126837176517575586436627133379056145890644667955258335622804618932159029227382822105815247264882005113846744286185745430581556595842060940907871719591997502416972752793957856836599343055891433103486934115086321437201083179594821976337291073587372467410757750649939636583061048179547632014954023568655843606986963289044357181343937627386267663564719235889757892498595550322792581127653804766024514430032316783006877640657888320193239850858669235963283246171058562948659476499437974251463408849144162040586104427501200691917186441031072092933187539004436052646889219908801725072819723221778368037734234458693755651705056520523869821613644091704515340877347777342126756808794060076710017469114969419309651904871909670171325602826752866708494564839179976707731324377131586760814479509971676218563387236762556583980063982271767924124317328634121889475204745525732355288597745122518843306701521244597822084608255201739795367788415005603623415764594887821238873558437067819175302268476025500077195098727059694489711796155102615147150947043515109446156605603423476660346654330248710081568610489917552547534624729682931098955336245391151443632862804585100395393030470729098084791400752091094270895725555457620853596446371899321465114076029364346879969860045841011756859780291671352980262345201773890125120549198140261844377297034600412053223279216953692252231468715739335779249014369549749858891734064478170259104712254046545783116264228246447816386118855742370393717677375837387510224206315601819492176498873135083373632105520863154784368195910589737171328291604297453270761219321352531938120640189826259335300999394978537400998323549504119277057397775609451381780005586647668582100921923370545955584387150619481483668284085721446568709624494242364103949203124946310110601179399104067847003738899335867770403002162598743637125570315963449670834300415163283589631166197810933550774957959898675595764290130797557409141922003252626852458140335295956635360495323763681015135527716361702236236911188238540347395937031250248341304941396190222243539857693825434279966972242084508612250794782189079101433158152148513720870186157058592611874394548742567012982767943721945530659591416072760242338914174831492916750145325484990935111777699027016590588110719063364450448161634565933323098178879853519996769623897527985683582659746247572308951318574218226242162694732098056100860229184241632617929246416263992069933595891458446179848124851869101600969679264411933751252714905130615605706389698580878991406438325789574646297885235630583604664554798433903209420896992417473027915100854024528514935630726484531530715677974444225510156115047941925918078907465215329183111545895166426129889514662852477432039565173494007146409213120573597162339814898883355894287836791266606119854489238182901115998984503248588345634789652192902280310571615566853006420497506885004477631474463790842270938691495652784212364739852556041098419119849725119146070466855910027176232214358497017550337315087146161794107494194265275981631903013227276944972729995524029863163191429937306130640344091640853543834429517219282611087822352497975963949569181359923543076105079261536632779579726937814716128077697698852382187859822979175835504942888234561344673118551980856694808403746272198005842746620803119798339004814732364250330225618673325601886136617487388932371709826096662438351765504550501569034517106414236474481994574120143267208205570811635088653509468934079145036131161757559104499859497430075971735560522886545814144305907256410987775804607877079448767739687752620061973814343211398271699713497997392546977306166609127699967451803400954041894402621397488012212028660773676777853688800433084104409642414544113350061811623066241483689987900872267904363953262438698774958748784763628550443482456565951286922628986870668745988369774598341239478352535137601052618536046090596141747767518094064022291556482033967491907828458119483056242915564912383491282132813807958315285515406309335069656980113405305277551959475945214916141083923333579610510675334240542872284576508751393380804018971901762243140176075058173987692678105048415804413002040057218412427900327086025275714833720341423199748280696043161226756641240942999552013073290385163629328319504204890922368163439346937417054941797706771898966346011071009379542091991605413617817814537022549428004173254984340591065905009051442643370339188288215342785614466301150539254998916388867888955692648082667697629525314725271672407242164240281155863822576092170670690002972920293079057420911081784081124278870509515245634383273854362069814255681204039494632475410378337728989317020493170780656066826206431487648220406733526108210159316730937654751892294139098006774245194403716450393384498580242199677564723965496017429118095013983749317018092188399324601204542749155181796158179215445769047489815880093730100539942008370797853322172648310626534020966175779583745569808276677451225959720516578509657513930800552661126826652748632102375350475509657404192600853581579000059758276583274382843099742574294625203967326310990507267946411503725255391786276777251606507595036646654849978115442682800221089591628096588889378782888139556484476646248187771859691503399264534812575041924283327280691073862775529842365280397280428308771527798330267061145117646870057205201790187326289579019122855015732411994640825133751039147397347109342457466470983655680164761579479067442875797359577003045698066675172205002384105545054134824102120207093246780680200593542976274354284701299584185532884867691896231941151026811723160612309941351791811370948578553830621918029529949367715738698241461765837692409945343936305134973966661759692799872823517657075735327090138268372954393560245180523324997511934677674444802681043234871417623217523880943546182450797268097212498031307705272349984388050262925074651159678997392753559234920277969910236027592781059182962645401899718073951122544516188213184811492980114735007581617690531912365633724968454003537587135584229125768307302629315504557286756246406130152351932843081519137133890884824370217027071577625349783136724469453900872533960383312888240721728375749416109493848738493630947486389106948430210126122574701655650652324087965939528929259255462086803326158799860790218846109456564197121370086947972901366866411968834788816880674002199693796646073208263458912551003914025938906447267042832654664380159115362666920116568447213769704559732593278261803734385833109804364924059063802516848109908184605261384230379368852003528319680538125229085043754523301934883630443776694615278070256836669143784231634910450384661093232385536418694534531715476655161691691490809966458640801956449867238493885313155458159837585173286679538813767002779415638184812055880181049721375127949836259591352127837738246425451671638269098533489517053161733196860616747894965722041368065541743672947748940909100370554309503827105711802045606867443754467390029150548570830714661298605001095626943063401762797605598448870156633211603438428664582931944332445299403372208795018383667897462841520529796497649922802003013979391261985126354106133273863076257074548677921336130599420911243056826740219271819815314575233051513737407577153965800252694805467138922757903475070217815037923021549966981885657853461816909928951423390442249327508497117682039048149785198438117244858738520801828231987336523867435313663491222012619162050312144699069436602202403591556578540420536760231007801651178175676579058751136431375342902663326528003619042351856982924441005052646826601431865505642932512727851189775493134701459364031386263152593827126350870577605214705140528153424323003152407039605596579279053126874526159772604438748923159912760681500166191092432873485541993401391755011196042525386845214366409598680738535242828931970905366492775277978148016499558110519066771859550881531507087648910879209839934470764949781599084755926300776225339057115720281774494861440933264926664711836894011791307101279217918720427243714085267716261838719942604911254802564460663186883280620538410823434753890100873628021404437246449119747045675462187155369864070740262810328920662926296669941031411829177441115438563947435899720355103602109146991320825087237639588096728961926697126885977105052353933375131581540974366108228693036985773340625436467091328940890349379227876139859725394976797349333455414225328450050267751000788601025712875857199345045202308839324288348825522868012879060606096825232653181953588589558121300283829801210529930583839120458357977579316305716579659879828253505204265199247578972433252285733471365673657884725907352688600105356418921365820241065320315484538237591486402099296486243179827127032321344066402551149578878804902192201463782605631545982762306942648307632261924945688953424928122577118300760544848992615892327573970099746749229434164732124649684601296891633073141183403486429238588628962001926018986875930290336520563373510238706618609163978543692155227063945125129051062395524804086803314315503712064631400776339018634851974340110721605131912914520797830204750792948955610025594524876499148195632244252678121032783627106994294873300585038430326101509410464691644250882807696942855184248387869543148970119615625853230782744711565778774143784295099189049408902901628292601356469886560973676436988960832771182745287868325319498032910433330760634418529782436682086262649936805059414607672989117975625143389621473420306393211963633205670635059250030377722977939472609839507352350556152983234359688000068201306789424094054081963827638919391225657972659011227468959291588384752742996313224622481148704694567106864555451834670249531223035693036489637956000909606587431347711026247348098377840733132012634974953733441779152202878012642057925730886733858042218378963079743814287589276781428926712831799201617564194126028475238979796295476819110945689767162753648000036588239726136840901763267382825840326869199788846472438044843793113666803115891748659907309579478267806175169716211044141453741366806670105763357342414019681014275244031312528784130593062657547430973553525206303227647627245578609401854124707562422181244651299066725845564769428101419328442893876006602436232647637470833093439365754680632264168940029436888790935420074347114204979034788440059696328318467871185886368352271902179894461103909501117762742363801269695525180639633532549659824618111061041210381210204308391355817152042482292707589341762655001577686596638062545538266153687162011511571673422368330035174724295996968776209913429717149814100271111955806339672647139179385399244154157258797001110159182907970237848871329350170153218492953244687020940380164111277761272030744624627751756693521624468862232893064819355117809205378786028451622391060343306227602235426511989360186806860147809125816280085737766292105625699226410314545394505116759297766413331708399121636350958893912599723448021224278049581563074773417922561795706192194617674785732695500862566867051232084164224285249048763591505818725294263252175857366709964281082334239921575781217307397311629455411656167435198744289897765271652258033921342356829714230697503965409842686532010204191455409742288336538588864260430948241920200995138900043297939674450043770871083542001080931321660975923293161094123789291917672015229396095599374719776764211003542703127765558316586375748009551172320047458602740268134535563013029389197809378286586367776907009317381229051752877451016434684877299636504901766395417306483229566979774858505932287866551253908200859303787539630881862456920289024204006683700568043407422769185543536039190760701097308425162499248691313453828978394340276115838082070955108257836293980625075484886805050092541844329789403176841313048169932386903456335447991722718215779252287644453286930933951543698330052836338513743734378964498825447349200276996698147334172127673539632869670529818304675793042619910903706037660919506754101399414256360868148875006629178972646140887705698118547291071942565669461375298533267491774983760936529089641397857854234510502061681707447203070597961653724382793044394939865757361134232024477147373192517675216728275001624814878730777460148261672060409902671778796188052202604156653861581529289260007307821902843949444528314054935566352484699190416814005964010824684441082320716989408708730365368280161433312296449305584013140089926900617819050755375367053821509302729907443721990374563854948435361919540057734349322869744616460691575074669806396553762201288103653555443768580353342769432154062239039976457045601335703381120802180273601633684855907441914060105090565756902330562542198506042687130857407163714721618136436803160588902260505026034522298035776042760362150156750663471226308658866138903456935283589412731913512373938522167117549099131564121501967957654671638685099168073055094166581316696403150642189145371848679893138717449677642318909128900930603963670221902389568104253665717067638803262296148292807590976377675340406510873007627900059037676945877737696514566302760625071412431679329552709423531589012023807075248215319956749137903610379816051058319229333479385535570160350086254830438079451526667841495009848230813578490056125142393209864846827676682781462313756084582423447763549051305001316620621926595317037932629371810331990184076384845740649109915434438527979705860516473035450153270935681856899415286462809554431427405273908844553529166303848627745663636201420236623657814654882310793764257811259058194312529821689056173325438210478304668626066903886783260692593531278502901486615730489178001226086592584027725109911169407518887772442983346742354715866552363961456244324730304489756679366962449278368179371568055490970263219564786211207864961393379233515249554209754791812671134779747398878637594508835705937140772591089269795272617785432324126874172840394091977702580893369604303661160054649023930185249252863157966140159901519015809289259442340539385363316462949243758584938518117682107359349028110451659927020209885160387501542770114922606771535912740451410440929319409884190201756919848339556888413071402690423856055347387018892659617603725496574697444928667226411372448863462754500618423812373703884831683245424496448971926615244352997199555529916402562092124962814530399958408963753646636998690596197021230164189653943146675684279661650993412897196124780205910894942082034461620270477393147713781173169713448463408236679481628528227566118166662892070469136319247998354269621548378464509515854105976754988505041956733846208438211051962566744713961449137751252391995905291642094690733136911212488889354594748553703483833256377894829823025492289432829371099465346245107582684000693945424492605220066696417171706157631448881365193088813023968250090607433533478447366885504628291750603134153635916447650431287798248764953367239073394798582423427266579248117567783899884610084825402746028079268774316940072144743338502229175899261499027096386105870464613726248128559768615588521354402014442354349353405054144988480742961307178064461219162118384926664515848314942956554917787173731377336942736750761918689558117067823335227588425273416268995620426231249549970884672087934128559123836532228046007156124330285092276256734963049801988164087286103959454074976452989519833319725189504885595341461926235161112064536528850147488292745297600951924795770088254813498648006860515331941596041241427527664272196554349934375638581019264772037967936134439356848321352292978859798379604629126544890712091846164398435612814070039875855816763215216827794132370336849249968342664107407879469801398356818495945429809641737316686470003591733571078131246686713448682427740242339639723639271434749102667801493581978505114186964017056699553566020611630591613931790510096635326017864224489015856471815373779907970218514061442429356466705251118394330107836314256437237886445983331124480794175921852326783980260211773651757510918449656275228006493886678583463297590019620683455132883584209347017962736100597120095447601809252347667694763069628049292061415681461869988952760586963263488408480824559268238805954290720409112117337793242285951464083939894321276157462459725930104795402174409501107865406731705900031244019267507789101232195464044402687725746788079638196059373469615815143556395816821473074817572736820368057801669690549992114929829568936522871823885307419981476116089972945345160595201253023823121935000155247465668861442899395714943301904769182996925360297135159300111365391881457587103234975835909081412822777355687161126221038703316385224578305998734144830344165439131739572536791738035373872855405378078488342431999316297260498029092946912369729686341390912570720862135039727178479550127726267188514265330684598071515541434381784896289651730710158217461705713792916148273710804634597620556934773561878931624149810622967172751528177293717135245194213595363454828012507540163851935413637855068622530009782701987520660783819339915448326771848197798249974871264768847235740239437579144371378710552460435147672574504929215648861773759080331708332711711229450595127766040272097982970197382368189968783630677211964557855020008363483405524367590700440318066551550256341339205630173104615377875586179364638363860178994615784750913661557320655181609990117091504195366200644903303007209763116147923936407392664966637992542494644204163885281335231007147080042223632483219679603497451186421127186081350899918161403801886034080672369903573236264075356123209993178408396410569117015767066372813863170414595605071271619584825187704532529297513824709323349595191301583817079164942879651027436448247690029422502567052684793001447190570122406923730011801482183315613069537753945261455917985370373842194695095733123815699528583182990554349660213754970398830955067764753397928114854399137862584556883375326572991090682351864236224264544875466904700879059286820674549376161598205758772626763317054499699628494157333345090426540096620226305702753966745700202732355779918798067630600401877305817750946467605777234288842073535865846745798691506984752599891546459996749049663115375564634532773198885226984140908423141211828767059934747525512519040243682973428588981917710964195275124864369219380402924308000306758153880054129946617099444618002130476570017425744207598351812794712389275575476399151694400414965768911123660272163791287575144526540014777542141482629523820710952220783456591096941284180549429551275170905434833719487005696325019466434299405923059650859572510870731267911618626467928259629386434479554217192202751475186502370586817128723593175706237083950521351291490087597508218886372355179219865034941087097344071190918393933917934775320435542041651877651318302727986591052517873669947585843478846916023952889275496467646083485577316856519854532436029257822726059149908893135626089159982735708600515869138245657278860607800092538544542746297271393821225059350501906049373864075505074040070259889786327030061007063439176372438587196137142984124517116276785876154530889047444326727358484447760787239227071553492200465877116740374765184800173752129638212228923349430267744721858935657443913083279886098323520196150193207597084225929288597780863140403305961828291673495811404053123161314265207959442428069511136081591082274522124510816245566240583713942785406495327800349392055947161615300301748948836506371273356328137746021165315159585733363170032267920298581174272316989214562337628379310379490492290728943359543837028033978144880422744020239768972292128960887648034842393857648903725061972487137747702444836995900862356982711260364264143489782618106502396337712786346796112506170046220766965988621046341414846026900167775032719858115271836254640756838635239430168776192437279150650048013420167787089328559071982823046533567351337393112444548835658406030541071269477453955667198963117277723068871985168341611868422518750019936184720300461944573596913618577879161486764886067454632219926287319067527038922931191325329173264441058519444375187529853079944702536753601113604952934581791443487201953525694788671684244257672924275775291615401711661556548625410250036345399684953034437909594423894870311962419519014338888368260187852440130324646921207490650310859030730636056618099348238296898432132810572634908934374541451883447970815328606086019614569744851705982412992617006902006231247449791018323887644380953438645380148120317038436863531940499019120489289984654727788905440604081768307199313591240701471982453264081173553181581657055642163066840957566055985905294153198714380256809727625998403866554672428103757410208108505008963438094234204799874049984140458097836976084863560754440873882951027349819669445177503236502354911190492217361579806761028030423458944217127701534657264614954100273542813650824832699046821426923201173762272712408640512422790131210389873614137280185755881516531606341534821535719633729605772041042144647279990687885009590959598948704933081105111274954212291865078604777843381034191873982626049733890067596431613623778665348608595193453270704828372498723763778781239523889139887335241835669995820780740933333589484764059952690241487542083741618040644059571231009579125448878449112066510019182478581270727482300377870319927280525709450550599007936024688483588494310246021494913316097018059763622814895615131880753497331356600893024958136452485177420516033543410339964588013242522509140576016266803370661932214715780036650360706411682377726021099797364948191395389985664843892521764359232366737210813950788346993398486147002919337142462873720577416648353758030636564708702085012393221418345906230801207302780095061065307925075574437208634201610781996157559227420001634095815545901760588294412558619194183076766560486746334789194896246542122330666045084408882393733014634156707419558331073582121377831889872428083649379487221174303663377216440015179044760636128894393626382886489612634856459592538451038195141976171046761392449041072010518302321945637458234333522948584265730284636132360565993026703223146467242717080286465151444816479225270557598601401491212468806492302337425784259843181609256160390637238115637936046873939887901174196048859518658576377482539669172747786480044070494611017755112630152143816548324183325135001627595238657294040420400734914464257145246598332480261483940411317268166319779104486816833224753583796614890465819325260072986591465593270268646294885444012624134778732796824194934307378444386938166297755062595224868150502496642843264453212931719965397024151308778179547224639045795736480852014579198759462797474611221943138091066624372895166745402768911167710471601871344276096236748858564739394282253385698298271261987363549824176784439300302200784933933860736792596836000489647061903692578483648840064332175969253689396972640302668432410548710863231464642546622147765678445162577913514864638512203559119700738424225558360465472827555310513127272958818330662928623052262853396058513716633832116867682394683798631236894012606157483867607274144956353107634334575940429840173766235426038622313664598016366572540491707352140806735917165225122974131457515188856724890314995002856306303247677099048371989236718503100191970489909281968000270691703257470406529646803430926502902644329611282480635645035969574506268752983086680237660705254009243582271211986421774234156828115557731139473295416520646305312006487516948588322768314985202535435551071371323461409963618027335943200756596583975056128379202220886678921283838607054777830591639095159900042918844175758395399669780116784730817271645961408722515900033006608118582030510949987313042519602920352429885530819230545081662795791524224774445824869545846118148022621444496958400029995441639750451347586173063382059987613808392788736616223109474338714272596265300864946437691065431556098780257951174058912728306473799087636529976796162339201763573172592291473412261312409343272409955157396674521274643078531098350939639451521919080598257900555980780629930914739088848701971232077912856799349456912465889788517030688312583246188977512532463386869685686006438770107651863030210816236921775649380254853159666548217862434658834058589139236475139749447536908819859077691055931861558441777379783887299016022685818837647744862563671462761920432606939591324851460236038916591889059143024410315421214178667487835755530685818519645941530326785008015962222573828829752144982666175202283672801836060676739551415524012518174739282576579560451054024958263109951061897961156050953213513536486875436974120265398573502275766669525410116638160452563730874842967667492041713016070237833256246114641518234217279238735667603145913972240310616662147518938297556677921671561836322977266589633477037768483111236741352936244885172577723423216771461391373169018899192015528075287109275286217168618768369387553666848264778227686418207906843074006777997023854057320610405204326738994822184263270205660262263331871460449866724842432559045147305320915748025748304742255653656639292313920164307372301621564871832277636615264924019833173152456920631376603558369163611838171150876456185299687163330351920435222507885087967663294915337304064716478272577204317213431627761362996627857252038568877818628347983833651523129718386742277690805375249942369151963277554740662693169270154767160900672889815337222320975825063657755146044412329541681121462105650978166333830180358661650571262392136028752541291106777517580293723820992866957501943466957912316654340391797181603814236878607463404272209742835096801062268539461265057211023733707055660389834703645020927134965130776983512469961928930516962993817553849581251300902297666712971323739728409914331265113146200475340996392431186124398185918101569546574021205072937373800160169020683082952661549205535247993500196230053446820656511101982680022422913630113486911048314602616235533195163642661486049082326304087936067967514307464544770610563057527842791318175591631839453151862200742035435831547078281295564526297226205691516061240696598265564532763211195887020624770080672420019261223088764213268900464231264789066609143429082483678328724879663971748211847354344782859808390324259248509225188150290654868966230480233297977002079294170987426940709670277879627294862930106475988300458077975111912613935040047384358775523750241486291712116655402044782424722517864847991046160354508516880443169987031989225724664732036177232876388085871209834935342301234093958903390254435241689710915138812428837301787259125354306086683465843189303311950594810045583262993444399473689107635710630701994509240161001822363314584188703235957700815384006829741719889572800906531343100025354562608861247888453924017339840048620039141841904881621175772010108880346811446677679637900035652017164229292236039707667967712511143614760386720824180079896069458990488425957854359278663122613989654273169640794259485602490843707772886030861007651354249267969621806348438171134792978473944359594735771390451520893174382604942749109753932114413101466916768862528446566105842962838917972744939844849602444527000795459562296808471349325324577326467169659663069077017559206077765271889183004961214195991310994911314025948575556127891036303265941456086760347809455013528850320187946974011886182532415810706195129083239455291223158730690740749862230465127030484051987808784733807739738124024291821299428872084000161045874103488253703164812867421997421331067307756618461010047722209476031052984148703696725130560014817366580638472954035264246869367967689838536730277526858461816568440936213907862436134340200968325377948249035066316933274309412822021136484055119824255618707642841242592847332561239819206618031889143855286042905418839984538694398236807463505981466368182146732227916461987979931277073428834661588396844926724146218504319575408068597615358023409526901661191977439769950067311513731837355178246051314904729483227946843425318227290017696810530400864279544113452298816588291442999575468487303624173769668028791620924147875258975372320139868154156014653673380117506259613963642108328143182855294333267446322109816082956802561302658801534029494072572785028362605532534579213040542363225473830684847677501853048918917236376541811188520629140321920387111109225175281909219774717091680338022650967215497400311831916238644818729813406436281245392433566259672803558530962949774629659720489543973098282965268661101039311090537421526416108557509774412217586096406090807764087049456342928275789393175216489993301115177236368657722147924861526021497028568755268810226704602132335998439136904639824045231366759698602014579317881915403785220727501635012909008400451119039575209842003979275176653575172781440685891444522818071893989587744593942876819661415255895285048006753389888463840975406851612291558125160953405261571451515172100900925870796613852326122321014885877697348863874857812217425784618235741286173184611607604539953065390554532185017373484382157014573174936715310366173893265699167759148870285438375699001011444949747208502123493794400011109316343566621118013667929466326183133952149415068606387273137769441893722291416812506614354602708297028698710785206347806238196817414230758123307072159886245190181713498472614166737414206027113701986627319223908192286088506444819983979975256672925716249197058945190864095268005961870634025135316890503472259640809228086548305455571088341164898407883927273936171913366288402771357726095454270490021505703977943916933235726508543453281872357318623661475888908550419676173499660206645909558633065297791568541370180792668822044325107436455557953469663163589246980814702051623352070009322102558104726036020055213310948969661239723637916435268699030907882618752006093631000330720918262951025442018211075005140625628538526812338569372757363354729105341333656970151794519335293100369926354092597076070671780931908111689119001036217663044660830279004372093175092120984932979895923747130104393212055527164269844410633420763013154385878637593746548198363482067627633911649786280111052757419896580939668425382677309316080080580890992087197589159307420463167687278416983234010357147552252564424035630217266580443564295002612586209322908533424242587702264333753262581053975501702480246860315630235132945505354868595683724296146991891572831144749298143680803303170351941037507690582517346005591588203751412922787620009005447689779401025345449718762397823131692052030074390849102691085110704097753675153620226763040229569043011636891808599863382458153687924467036254935641540226873149123567796527227789104665995044857235577934256630761696979803423566364102919481706506572196423908902546396648776725503640791301167359495920183865323119507087908742810700781680768424103345016115460021940852990100253513846522908576671444111402926220398999428040244043787108356882012822631354374010127348228168991414104109071439997878915188124092077671065099477252994438180235770917092398696788783871948020798009596393457873047876710362598202491481047481912530310730296930634407920474923868709283944417007007322561857555123159735682465420456902042708144734610598205295335798333613542362607406881934423840091405843296020397240743972338390839866433665560404964230011309421907032953696045877042757025353549402164840256991657254943454592877998283330859873895155881329661064811324199971006703927329232776068454845500551370206783746159008307919663856051168693901861923124466394540954913676065610979069921873126146301146307501726522510646737247451936778006326911758707494537723035815801062892715475773710014044584250518990075707831363183388999777278985394243144731913087961694070363384851971569806416834116522300989301275641130635743555522414063668417821983363837784948797725894451932350781023302392999807142500597633759322868669688396659705491685200908581645760808865814570035922991387842760471540581016692278444246537961076212182304350010158275254908353238552780463086566244705681649514088565492645734570544857377692074362248223385180646865263895041551879868514436729993362716280735340274364086575864162845097924571346951573701670855055580053677125599221500302347058681853598290832690768700681467800872297662934752011904276175557523985089024538248137659465777625587811603011382138418369696196144187848364966892704878509193055340836288458326807205931922729815141517448855757042978664761779544872330555328014878631500328879985404286385408263758144992024095293899384810687348974869340920086177840102438086633287348505744905334328432454049706710897839101320407336818821875171793763026282018455804711665410784030470754462245739503603787473110510833691876386157421103065110551610305862638248277191980243992140204639688943180313695488237254214897809471199734231758022792674058495983251761699268162463097812068282347578832618479354180847515803959927500106346762510337659888263653562411536317649116941358837144619546066626028611605546120212860233560951835851481576092796163944331579738044895425142663728633088844736392449590418271190281469580455691457895347793585943913774396051959896015604152225674927177254717929053447763272744526238796934149802698850554837587318639515377222460232441532179471709866272997933119801824549357515570437696652819511845431787213237000648750084297186953338017829609612300158873030942499739944697020139063679292619830031595385270321477311724860841933921954642803037538864311877439498557042977244193839842777640613173525934313204331054021621227985361130331217959362938602975913870479897720249467752384680073579409960625046280500805382322101110998704317211004801615474256166972937814525860754387357968008889822862077723485969584037722721056037162932580506709373949932001702624422845118273209748513571044742385749109383133850655948526797212711896813103833449229778166368094302621851056712502876592033172001094930107021714543564187567874818160618294918222728418757017580089906583860333298018935030001998197706344357288793863759207692027250796464238494374490012181789178469777281445414365683639480698546793194694690511372970654514678448375607736551525083493564998618307943064884894118550985508399338871735251249560518499791345842784044111304596040550151944728434687701272933221449915372388530690921219723376694786649759324545666395201469097738849846602442737003882671386123062891133554668074174448333221977433850710406140056379543577868558790433426492573788100797783192651476746691125587586940611420501419448026989766797005256995291061741480731974197362972722363467757797937625739874531447475753340279687339415157053982927349817153802425496509983233338146212385610403754948193998929724536937583146167430521925219412208913515016070963536604822970187464125322143352435513123638224266265689674775481146102115814341420904582520220789455491540976959160607924593622405460217003713502986032981771459592069175072705402639428323479091214863126145614829631792679234038257663878647942660540852150435774775841774151949475756594600781592280880149388041221637373228950619454326079708655787511221390681553956103749720405246565667129292690718977566722145971581066102189311998005106940376356469520795373541195507086621626065142602743032622718128288831574427319501226679610751031093824004260877380520267389660712028547053979557412506825823698847128005480832235655842107221284381323351398576248953984706967946315129606211711775820025073099515904715974827609982845106467441609752856105464254166501941371256067298724713494054093903920480390308035600214502150544622116581678516704257894319456897877304517786606915728934738601191127615453845035947577800146560441985576917915016553413989402502191928295658696873250755177527452013313461437169778926853255326695206163975478416594988700882955298029025312978991934515693814955954952478502610421691003574423154040028573931551391880560334345317576091359660402591266398678489324761403043101867718906872866489939305373460217309799467483184389707618649951814843662838182429447803878791079096285942561859893881902196906480081051955518892454930908887767411857131356936201993518878410388681509793308271142188297417357646527915479516300799756906805523327073881585837839904653264215123856554600978265228649728180088510575249449998844468899167120757823179115331671164308266459876851623160478735768397075920795537706982144254065853292572495584577607127717339288649585265160005207390334605040007084999997294389794577331005664333044679673633505390820156990631217295207474651737835266183164987404566459726841455270720982986881653586605713162298498525669295647468281562435914085038422195173092697648127121926096744842172401076868330504100837375704138736760877534755260691498106829626485943044174537846714465050498417918442732823512212711557308250659662642726654925530127481653377009412512034583032351352648971101194503321865599366394206087092668341998590757585979126552968986435127346145302989791781395932550230753578205122258043787489174395992334943670817630082881465251760669552920362440328828341226340659751318661989258683235014707279429069242985706940143660349733254988853313356106750581963590600269521670505636679062270096227773416738264158321943475874975483722763607762706726633958215039583573966105860512293773902231683601522412380611914884308045653700337290026730744023262917297264720690034003581094027762146264577814269820870972473013735906595770198160239674895172391157302797592656021679219905223207787667981456051405819424843247350135205752106366048367868684962580695722606289005588194664121027458735497650920285339688311242342159522686195174959639044911257553365602544257614831191239816311479855530359285726829315328826352230261734421682622937433045397199245283391404155646367962183002937668018028152343094340162031890137049098231097522773309257466051334802825152313426630487309306199728383301353854361406818782324610623352943624230085999940794333548847527455941289868246135780911169053213852327800144358789161294624525053203381038381935772305620021396026463676513249662814986788792892773129232982103532371465742138135990544073486275045091626409764315922430674963871425618837524214399453116395127983888200958579460668829661655664138729312931749730834860938553426616616543489277151450011039757622587545947030687894981084055238869690378810060315928080578864248345027530302324090232411705757397689149381747964397563523701734667302180249983304785394796785501812495531320066605279435209842821008074131255388093295059808526159862401719006289312204479256820686894116250482278416234095522752739111447628147413002545588616186700058980105396786088279867815323403837042949772528462463253922514516747716718688637680448645754265515356720319329562625948211378715752410212369589915864941162347357490613506438436456122021580863110506836562360138551050307532536531719713376852766281318988965699722923752197849172526511448163955124680572347127530160509882474767561064621014657567790805371512080853218507163777853827606471805092837122676422930089287753884424997987186657164402565241857163491267136844647408511021545896680688191803105911071464883581040403796387191383961760642787007695362590366290921247938416693229037314582591530580995256763556433495989721132412474352093984539695895742732179082282028080371805635235985108235510985057323411340521033823486382560346894432894030883141350427931419195099424568753196344771166205510499530255501789367155232472190758501659218558414680821754589166904969132682415469107209883743825028975429774374866339489352936468691175170319504863047091451156379054840546858216538933429448536931900698080221802522597289616157173900025971356225551778529241084558910749021783967655809768094266285192482440584627153293768087773105824066395966506574247867062120141158851773962940954817113639623796737677597906876768301022908978393399586966455694386877377733888283993152569459190623314821913494078471876229783396441620101312551576266496957432357823747467584331707482335061355054586806162264685015438679512325076615423584440926401057429339541643974274788777133329147720550151266579537982613731231964694922119324804097010091973659183883944536222643562121283803318827518495457423489197491982097101725274604530420937783502349034424836380944819141820438714265191924533781777202690756414845439272114551914699072070615035663906628439772031588310912976812400580297930761760664877904052396016238832449792635025193806973817573521802757230676222126323955178465060866740786952881230822589743551770194166256427906452185279835958440829199983545707060532946207397864409382915461547053698134351585776079388009661588156933535662403467154475215896255819959004566296248366055621381857757659300687313394521525633159547931333682536611798492640166842704248617895691519260896893286094673720585449385825169513498673059811700003915287217386661125988510752444266003870235896772854995540580389188330881398798167869362926201447352411543143282882330745873982849035803403967616382438472403896489374165216878219497923014512379683621216291466787782155679223499834814603033727480432923522859085213443591252771257728542335895817546705932835861245132530180190582080210272125912754788818090608157704083773024862538083150845557289772906087914556125720682989655223528102611621389226366080961740850952590087540543298789708073222608480072414497977786399729865102019869151845969553128682550672153406909778075510025474512440571968734861544365016029544872078138917932949473212744047232080172580816353733751949767479857905641698662924820826144372730970509222796205261116510599148203962011025963970789730682403119961729827154967876933355509968230598854755912614131457364131307178764242526725480546432709042620862529548566211939823411744747750126685450700756680482614080835191937063651101742495925148386171556227510298151872050308988534857445936454947228778155604262070278680114581001044092831526155638224311917086185491026864900941827145838366057679834995026024245306657047539263631963564167347106437260259570847585318171667054050288884918521967549932676903948618930781814868435739505141896285790942200848851586652951952281950678018678672550681183706395699694953277531733070688825969965336496996048587856007805200974355513911944285860084941468330732749818674453272001559112734872964174068445206391138601244130914409644316582564525862556718170933717199076333200167566230029127117757240994950426209113923262594212276144088668185044323278132433029691983115298599425450900016662111108938738158565209204151475180111119861206123552273049295563029012901272253303750604090192924933104149950237790437350052682509004236079135422055780615189712355001575720528192945029522340675012902117344661420917084319364675484798930796390467266885866627261319646783503589084946127563892082071535536065518056611415461501878239502254158631110564150150360133934392235413760721029017090287815963236113675741742837042075280752354542821417742701384794762594127654583438004238588104405504494511574325668822992223339010922143980305982877112974366337522455649269597888575153729081638778015529467463213119876210987534282657744343526993775956122884048381540336972144472458495937202834441312916857559890059286144009043591002497949464001380866945344708832820127112568937230005902519280543757848166357115748905103451573448878846394938704604686800365086733099685737947693043929605621017034493862544924263070443892027970697327062161499489506334726798276818590100851589604851990290203203675658556494404200768630872209772803890927280490501129033065797014454381804260213149229634169613869315504957742660304465689628366238934323849333766775153599703990440926258808407449044387763454662204252854051275056737317076153686807098464369014581695957522286138604781584029133731389745239435504622406313629026412846068462306793777108263658923327063850771460653545226364803157151025506672572344361688579400358568090878981694936932028008163447577684009057438576277871199227828970858239908347246598601328924953426591699396427958962334467929024086458197227199537747083200699824454505110831416301681750610761082948335838792802954172600956260250548825078324814351203762162144394519369144179761006573953284498072462333319503222349805752523527150261318705605845345152054381672089363187179225261879870109214122131323117556590951465054741022757077617572603141649879764399487999836396699326076373634286021681589262330281672964959959256149809605066686046965613318060751880218763500096691082987041407856476837189273957502080605483498858000230149396581575285710079316924199089212556976960463598438099043581792349707130353596954200605837367666103205174093662781184343143740595655345427361131045593926855282504206152974882248895102657712833206308372004113939799685624679314388025442844444646543557258446261835218081607122176479940671909089870564202264670402235516805177719987965106146964512063083309901065926639850081440383447859743280405523131605570115165686272164253537271945040274409493412870986855047288523247694984859650938432941754692244865773042863953173426014304588632854195404335850619067053898228568764088472334277074619556275904136810032696804672934659451260625200002388309480165342502077067935321804495175280261624842763200940922325573368038201590200680460376369590003014989848489669186207571945107377279710947298627511250053082766795635388592165022802019578486839217824034613295348076711770347537341644851761268469794940424199469467711789906044022242256195997339176774945985853015380137844828425549253294155011764966926503735347017094751410361590829691027744711492303828863772407264222193501586442056689604044679986833477089372539616590071295870265743612587029467469919756413393516499119113553967488232987585603119039666242250291181130134979820524557988765143309640781980738937974276300270752720715662519170358039671824026829973797276036111564893300976983680202448691076709336311176834833547426642179016153194209137111511580055482935381843603380168738256378476187914997687299752152034925620129332949019495520654774683007619846527148743408289903712889317768204195061422672290271431622672384607984243009049768477795754168468419035630039121718228218754145990955762136883078566217828152736550177419212685272359063079701582573403271422318067208654056390280100466955673876294807926748006749644872355270661596196077168426896392928605196299756865187078491378797533425857383482835154120842299603115639820814486778937210312996276988908033244791408145187135041112576558182690905673632463994737192931874910767552715473113240362065263892393159435389109279438791639246186928978333823501810668443169543538827007145066833237750683360452985845712080486542463026174467017035900426799331093622019593452657787052436735806378124428733260879410603619045536480856699700461101812692702034869711675445586771704608702903945929010400166012265180267759880770279774736115652826360777817200220628709181056760111620864397150581935195589392564291439533215275358694086442440958156940512849936248680663352269358068173230049193750605367039680667887581655967784044469175388388012178847452008657294272579685326119489159732412070963368957063175212377387066463794921759106604037813757580869684906280607275745295157525470056780477947833979745808220680839105702130056838073194851744170522812893364825135423855188978267146378381270247184081676973833925539186406322028142589765954258884777331527574877697558240364507815161582983708383375656148397249810249730801568922839645315263306108106103007577783599325475580037673090976295506467031500170738427930543585535810995137144706266487342185271159955324619667249957853070729620421252954424028189330165170985828432643399198585150374517284460615323712938771445269487748094510548811940290381901701972043413786321168293735944138392481061576851999429156473175122998611530073385932685819766544274227686056223855965318575888662836107567654100793467477519688201130354725873442609545284130924963305804453863613093204900401673525923232615413151530628322142599432370512422495123196820965990765889700654797138074138729609619550753053739576795391148866551293965091399720946610677968522473691888119820385777687146222913636635555226570737434518509186049375537292613095347707693180119266527552377991284372716687192620889892428389034155291460008780277879057301468004800219699685431791197503338207070176376020779805326605773829202740872720494340588257435362634001291166875432383185182044196009951582830205393300651736887326963522170463572327894341020805406145812812380730923493952936166153074737417519168462526986198428856465953580220836925306432682058198344226387139054435530422983239218550207333509642664684575550416068306749308781979546695083488949304494555260378676992909906642390190469111861186340162490735768702037937598325343403667937520475070226685255633356172157824478622210493948103355721376664700352787267791769825303010733577365181985445778663500161782501367922478485778707231054058750309860516575332603208378163662961748436363141522133110961028501775383474976319672358502906394526509769413828149336083583076798911302168361067612517675622516395827958596404173290606984476378085041838349470741818368366172678743290432508189169338832692919477248569866654609902554556931627694887796952905418569840753454300750960294532662379882275844112486865358099336438164785150275820902949274718679296849113436333149671950020091428587196304681451591862596571714253188641285269419744804495430521856225585804268174014240063615373180034146416308132019821860525850025079598514850591865262626072569875435258134342596348441855769270151999314955637879759583419766854028745207975242740289614571309511502283153026669975628634483560968604513108580701232993173721062122763915984394177050423331577210075678226239584438472821019546048102475456196720071754046832245764458436052204000433149906130610117636852622965721906856718659467610187017597921070607503020470284868175790346251691111597110209569347448271394388776497859635130961094882142860930747402130534015834387354452924942795824589727080952880825200775050423215794507914453664571300474646373120922518722256588525375440256103093793202210602648506946006350766084769075929204538940625900388709623275972443941747674696928055780236699059170759129186804435997065951759851033443006376138777439233724982467902539523899177959087604802252260383036916685813498756448143292856306381588585095253999203218469268429493171186632911630244825540546381614695902004137484581574764786914412820074561191811870390586595481650662493109211933460781930485697282615619541759895485085075428056530970399722048582265106279874219009696017716194833257992837363323068416486718872448623126702830123057900252461274827366518120736849875365103304606154166943270749214603843801307257885573446560332945729999090564431349501803957432595999912090757344807881960657729352292419526955410966353383733574163090430472770964743511954874273685692405412485916393964566071881324782017184665068341506217327659298839190873435344640291486633670527043570381258280507723303382108239833441112125551801897292580881078748966275018832934876953585087876512650637955751370108917491932381921317637897666127637895996004766679544363931715125384920668855614809075781265693273433065822905274989990788887111891308513132192353820256713947794556003451030954204248902043142734660677320654114897098329510342603718643711418769606682878977919852463135942046483597913612669922314586529901637479186849538939139361086296128232739115666877456444035443242109065871151320615015082596080420447539144346208003848097637166824833854163301391587967121032968014110121758554589093528181660296614116073628421559712723817898054964951177625990339985858819429611189562728154202357044419713236767984546358320328197774076305128681737407838667285615192993117451580139973787195539427005072033164346625528409354864039502992299212665044629336529882676649557345062889612029260095758712130047683707326126750474825784632684520909092826937833602577503418251020301974850159615141044795220051108253032634090335678240060759697659909957205638752055170846921299329435959195832664669926604948228583243225614552505918538486996777433463874092134349350200892976809859717352988591198777518080062469882366951348181985823652007255481710198009219846032770059895347000100639528566051117563890332904359695412322685346370133884142731691484839759617897895073671512380301931589588769416045363146002078365960255903054222570849782081099922063940467489952491739295765657766085837091661145080743549782699551568521062196993723143354843547101994930101342334102080998502581513735817683912231858651061788858818724038729305965642994531798638716742269513352647706448635903297412417574678187470117509052025071477231706896290893975939920454517822624270633511925919814429513443211787099616876555469704839873066589054220137613332889241280467455687374962706155203766772683197959218803138312748984291641862749570735874056571021736762021446198599720550116869837698379619677342108235323306936299648681113536346141030676984271753694140858638061883726355959279226935609839715928487788815961639056150925496509725848848293904766189040833789717664302220607442624006997688467846057275438441648442810142757116618842264131320525796001011879237230917784447668763449423837644914498669414664347692799747811187351015301265386304498305053983691011105585389606039764668488826843099138011935057740210907110548459691436445132021225596523268828380871309717925529452810705301137144877285099776816700882196401980073951165606319675943316148843142766847544740861811159812555081903871101291166762868774718760185643519855139511460229211779639371276463808896102627631594656110708153139723063805224796255412301238866369976870461018372485323718946268813674115884155724191762941712365574845932630842688499103283669596957595872308854506075051971848642623005225458923875730497719235970946527497296883738746255155128090790911398147421414031124359680272892543282468760491851217637896808998311369133508823965787440770719932286371571837062785215273308763817222402173959023355640386764670127360438089324790810652755021577009921524152447349381169856598407188096129894011387551551249207806237177907206172291992928320388557281187991000820306514280234345345774833518892638581455662847781096625999934145790487710105282607505810272535233208051832604853812589050976400280653001962438104801269023189493324608940113168787779695722340913089663796337319150554841963937598785827386225416243891684820377460090616987539434084237080421285119293167647178463952593565522864247546712889993994140564319724876437257665582241672218853830347314175950870439837439053588606377544451223731725565272248786077473929010877137238112835529593124901359444506674762794630023801978749033393503149518130062102281867175191938279309157485772957071872705941492827885680567993388543591050022892279555838722408483464856901380493899802688988262465115759890158325037184761240367733549709761437757644288122255167829150122109291168486492270619259900263460167412348052346753105201150613747005435710132162888326840529728950154864632246586879676577048277842772532118919827438748655650309321826438786503557092368398357005495779611617756832884806343861808816393298344358743221324772635541275904041790687350967344351007728410806588575659235623735635299859718722127574648833924065560597515174393604441110437711928397227059228274737878996269739416124927400817542859162800311909831273268333815087781214298260504594902940199367021224096854483656415087209470295875423932413613211072957886645884110445292784517765903362941011945832764867886380745301029137971840937666626807912025895026550449065432719629175090092453816555129546772885772505232137736682792627347047801505200425495935623244629378834470976796594562130476407078663159652580316119757517996699470895903307720195249841001235770418418796391746371883381987014304010207837404817823439466298411808847402248164559035804514893854000831164637690341058324984079097999908727511121766185907409056353748307721227963749627101061902327676557481206459008653992147778037745348927748088897984409885643710402427198515644994795306681817938110912661675707812498346564839141972591074914714568893023146782870084614878241823482497450389956797576067932928425639936030227946754803329935024106355103509553634445201014764117745165163021493904637268476411505495721755265462279083855540422692285256525192596863518348724906930946186708730241517556128973444909174246320368260848337746531647928250114711928527466835278193902960246314169746648490522727797859173731062505359181365002503655727254642032074767005346246698731668283685917435132595464996850995434666101122918137035205488631460887946162302673374749371101413663651592828106676748043356536017002987944027292704434463027184803850340441593551739825488839843499672044658436572610113366025980364194372922771110331018428324380783729301679052555156342564344135689093264963244667111949419306822750191449520192948909930450881704835717442705165363153084950641338031867153567824511649512693446577202990955083339441666410551764261556480109574284483131007247547930316072284457781897244070410101656933218316953907111783378761415397366202852185990999964596284172276118906253692700249313376680995592713563788293323087380121152920961482247948190566846572889090165087634071472458275526072677621491555944651019181432909856588050406731030959329033476599738996797758556934106953722992631653061614935293557799988484246534356424282028634590733050707150648305503405949956457668455190158918323552886312887217887045642880693806224347722016498953558967846171837597883850168298279289934993490325176281183950381083421726703931481727681691708507378723930949194465015191091220469229149993210121463856611864322523362190798080439206097939277533614959097305293992348043175084740199081577472956356283412713873903824425671798290238974964357378741980203869593850821805613700480021356378913286940687271215248523839042706845383240259349181889950993148676123570269040296292328902384981238252131957548962730070817139108460301433505997480323959619941321659305043328425980321323169550330298334375823049172329193707134457562139557582666551474752067221969505643196740760761175269599921800420963999035092035051776700597956630058899987230505426646184411757021895768493228060760329181530083424520486272414524244981522403782315131071909018964005999206633465249917942518435496160759468932686028689945582380650214617265939514866802280243094023171773164815578693848385771751388728563589569445520698589018568565712323856908429092545057948970314315119359811062792573680028077906099900349182744688591656952682463395157535630052094616844298818681349160077533861499099158882120621709429759258346060732014311831635066997087639769749488704863117568633062088373412532166571199397591562995616174089314967331404093601780865877672817025812568313627494449658504346412902208595554985006974670763598143003863160415431905682004285716961882175433984387980585235506725373149492148465600920937564465357172401392333591194825910045917078784754210369229749605375312316020243840107104485290142314859131557412896612206633014433212401956155856127239956949470588034326202312949491513119680226416036327265782883369348004262612413669606719507222842761920712605256689753149384503264357036645347920006465301240983572457713983054161535181588811176108548121349261459786855923031148552684114320390750683573453893092012482277367468725390004294108837064485014702435661868223893325586447328142229492779151797310954470216240035470424228289132423920151504068516553067076717499633300198201215988360672143312758743933743077269939087643884195510079098258392962685414679450361120710873518971759173047844749470169034805659309302876640390448201504890002485346625733139707062577836745041510640786187716417495820273147011003740048220963253961785566916949223302537191470299051386966129863676330142165489936691257496752000285352906611927785519865418132280857991942022906705825145563105757703005584822769420016216816400402921180230974563828162491856822719137395762520484833327202629609078766892859868577916678508641975841141545071515302657990840985921604809731428429859242976759913640896404827419175765983830488782108327834157988039375206527167238226934259559749679297297457891264577979139803697513054387840612843851095481430669720944422833445399292457904912499367404043504754670453228767223540531963808478880015078056962092162040269275904268522019284378978260706320324563724175632194926100858812827501953442532054282524991341327207852567570252156634404865974107458706157497159626540662317245628043765404815818336767980392761667605214079615829838552609379416104735757849832227004110051094960767584709390330448082842004661758605818943779007426044820375147449256336189404054661168986273212600034226230056632213843237827894782319062289886560265640499829511710529591687060954782210364934495147277491900293117870970624357353086862768910767314612491405617588883937053136073978408247800758951043696515365040130254576284689490224408780311701862574095301188753800586710581375639504391741726367867906372678616771882613991172295236224140868490808956540211932174187621543786050072363022836357263909166717105790053291126703760311623125084821567707752224272588943665808197896582407094000356002574406508692542479267106376981566519530155843251828043681393457217885279381099673523540633606624625543956240502192429624980698213605803178586837290992887745008675804691716701014273305605924096111519304501662040988043651352565874618428021179116300452914121848445061269300788298879954108475660768367094519951646273805428373955813059338484796560081488827443709559014693376944900858728895988697619859839429978202079202195477365692403086583057515650133872262866078951447412822670993811492821158861562738341418549727497335853322513015735370796028958246191174976424307315504723371142525351965716899385109248888911459731024535190175056345962425438177940197005620562055431365075901110130419532018129133836259636964722856715937819221249393542351859906082977880568834027452227480514117349876658467030911754478416621361255869231464944833081344876138976604228288182538629000311133423412712579334848079164990996779344929845605262489365297347165287014282788948542335025640125371281423699631938896695641672817970395947280481225044242640890997641790101135693054569908386515226162837397993837675308207066473448400412218529072260624632801763129424880589053620894824815087011077927925849122100184472890360814888158869719765744024464050571839422648438819255702228004933337878336031597188385568681062455719364740660943318054431297137833661234515273481191807135031994361635122204848855294547809741607580683451238128657478897529946321985057536395848153001700267462783884579801383786867999266954296063752255041137773072452537724175737155445698080273194616667149887060245148581642211374039189907926425982218200043162565301952877723004449746629558613817505282513603911096174196501569752863411304771652621915559574017667375651681289815293508844289020241638005087111888991681984977551554438801627045465880222399158127116347848483553988799606446028988281387397460304438259485741440906634999116460073175035994328225702131771064327603282514778781173776493033823451738029805406437688995380097307886827364987620502081341889330448479535804135170727286857388699439680147962666193425996072930308495069102237249823272292733383191990169072417149182485050893491860268545771734399360190261736599176536657775402533103535179094047980469220928573606976096700565446966844135049080773621269937513189752358254381391509215993967068534268397071199986416247719297137533363448925828269509410674835487998795473585804437153876145358711868880932951824489213108978959469070947250961856023083943933182876530629648666300587482736829426872378725756756556995326280941057033126404502021305752905996185897564243111027136871451686062787635545598313854128066171942896374116455094735129436165776723062357951278919857028150881496548923697590000425755817187280740423943285549819421990665867152952594492378677068865533749865221919148020991048582052117150171996972912813665973890596288982357368181917912064823962261739447043370013029399276334706369321667367145870895726794990387371780770439195052619457383724431552362245714022824756931151121673970936849665718192319373547290008254294865875210039933922358657420938310757217785004711186388689416650403981717748016583956020280188804280856422380661303012292269522424887207847121022931331826439472383010884133003545625949083093911742863407373506806868572673760881245607816150960027956957323121792766817256028097293600554741289564034996064273335357336367951173997684917503688319414543654728065039528449694638565444253104410500003093845022668377288793342853191642702592792748475019562643791802794605645504152127613803379577660457993541240348775356103854775782053593000007586853998176897356446010784225168329249528340211128517004853052408761997645523810682402382011135422492440213241629302957623804616060071525702690930316316541422319061907868092483473415012457783066758914065286187635361029301164183125994013230585860705649432135609226484059199489608941953551085455269428466187721943946974609519870004518149080764939171837792336797991802676099238536835305187573016490260713545150569504119496290377602734360839805318367634851530635410497442581243871091879899833961394374218445553668485945191016736740215999163252736937971338675120720652964260228611833549055590297455936931210366074622602821900894603247712106558484685155578175991463401056297727278419222085512882367256448962291903904517541093293627552081320379011937589927884384843008260960482738393271399828421300235285832291360927697254782624365244898745989746111598311049456140671416626397811428934152492354771314487299303968323929938773618113816192755027692511077274179012281497501362043045165562804036064407215837752610427842614188516534011631203056365046065916498799247341958211786323257911212167145172760345664731126041424151340245480264836410293757260289306137596956452509143110079771408338339739104012487242286258533494742844394121987702742428181281228160617817473234264247478332825064572613056491502890869485048908302892677153445484856777851871606197086171093726218566845194567724292946328155402390428338120828401790283611020340641526201685688987537327478243943340583521068399082467013412580444071810742499813885274543010513332426588765686170210432137671682838735191506699443147661400092939148507765474260194464682626886120801892296345943077438441044671469573278340740697785124028615041980236333190568617253712857487899377966443188268378892186011314317726683009876296245080829182912104590241785337467889101754466859777952351777540796904780751867544200231992276939045965618161264585270330887476415720269055928173857227162899617421311008845099045038809308636449015696271123488238675531979375273725662969057061165144192852914495683968841255514425972857848648833623287240927169144953498878694250554853703901778516337864170914041580354800186537610058817468178606527789723243762783628437279071812634291021555155106974068400702665269292928077482427486663374840122815647226483919359811975216067851414849350161538418123931107279368937830478819136902847409507972585452950894362531604450873149246980094973948069036206233984603317077227546146617548535105378162264596617905346694087014929741998554512743524210209347598892770397536214410586179701654084319178735221523496212202484786332212292328246657235764394786254121819542077782873046561088209534279490585679819404135721608217278442739752138821191205968062679357587038316467511426152228296597065101555919860198072350395276803108522221688324207558033488939217036274086836606633298294733290206268640610838274703474165554041892593871056788881590738664605992940847363132917644786833108444541824529739339233729015076234784643771506201735904520979145422703485194546945792690913860027100096699555490924077232514206225111738176421708036204727678202424982272293007262099356056848622327212998255170628249191965347779060642841796936742565189391012214584949384821075277467967712495682850072092443333059023208767522627586050481826395630737911006986017545369492131478031706652246091141645609284613419978351651246312165151418921582141625741719668034681485172540116110639005672555418467500349794811887537442233959346665135339780287788870910285364795568612924550251817744466599302982853406136118896319241328078095163828732808706035098180845841535180285789593711371628372229459366047354413364510111532097621762926777208753360757793429645449313498781492483526558961800761678968236079923113763245070702539013903765580529199642317013508054870225522609235726691053701547145523746041460939681626299589442004832605060288232672902131020818419766895497249995552255128223261220762147848880802218662444244930300478075361984446694973441164385064593769702249193143155841006092117578073362515200841733351734413948704599587250702013505144509383947500149686857061111098978553593350914910038714776244192534874562063288585347453161284757003613860839640694832016882461656566402874847951202133024542757510416500832942135794812054032971403679112123587707426903887813064360242805139086767275404057618034737792384050555393705960548228033853106457750527308306269235703015631515118587885777175616382078678905847537114309863727515811850128111793232905179888797053030823396905215839124409842021964783281723335465832776206389289542584930468297105380931883387597429063422061457122557178914449224769440717790714124265255751026047983938010669004520821166496344987539901582164651425427686177048386378578222533710848470895798174673190803374044450296599795108225675566111341270737216891751059688267734141985720851257476879345934533240190660436908636906227761404495858599087141400728537812610739712243822605926504584918771147619912201437791099936240733679024679710424263156321625416015921001106558683959458145284099846568288586454235625661590073582318366297921483389187331323453939648810985782105147541513972484304024927820938637883149112511065791682435619325335513133987274477050834002777581035118265593287852642084712463139537002001860038542018992359651375998935961289682903807791283301492657505714853387250189125556696885015912109893321381125692965226891400861904808537496479751636978523927032964777762918320204036253411437843275277783008742586171603340139945214107001747150410478366938081720603691014854260062664106187662996687350999339601122891649189707781762004321666497508521262894659839614679625802142573379872562132585216838601163331448687474356523798711058572376086666739136764634940544214258558244517129366336239197290384271430296872516192118584752653686249506070064774986156907509379227605269131392467185835769955477545636399103805438014362152149615906263425515124958991111929967920100756127585801086189194192655155094851637216935484540700016726691375423587029228098384458497569417993999689842049663561506811687544847128562214430877932441796028620708609528872291202475708772776860330506990338890088589598466590320647971280839721904931609089036094564181077381982396583564078208186478708313770626184337935135793527042496483469150133833331751576077581651750353851903165233988307860312291194124162882802360417976266170173993737365590666266777476342068723448450314471505665746201885527044653144440623967106084217955963835796567624355571963414527224581531035227458730191390226969720929016461752547375044373269443789197833272135244765750964582378036044423466471880166380597072025008396041174758545625959063593848061400282617158897933469800192826721172688527810165834727083089935739136569123063378693848950079639727075275681035762008347913838751823023919055269734183765544425122397453126264688914783599667320344468293436956570077699397044833626531852529657151450656897999050301369742069257490745772544143860316944640727617916078949984157092923411076102387666699436529278569654435779195842361524303951071197853818457946011546064635497561664858307395545001300233383181298463050649386144348855912484850040801875316056335808761402665052221534774268473592368924923524813610052375146114706855906905619680245076086228257855691851561316382924797185495750221030140497210200655396501835099429618610646134863196009773072697655509090574678948796629405582722610822276795206108991854221463906301670353005798807105479362914935162722092020901320335623464014792739727167159720567051551615049509012814612027422215676219213872066027905053407049318662253884464416922614833561427794984116178730493322846415174168492443546861199083783162330920186586971894160038536751757574478565000391270785513238969491995163103661324056679017690268613481263253258450338367057528283551226659173015909472405138452756512925060586683261612387497053399815286153580993054964921354127973354794352258879604579924731535950864371530896719184660705238820075220567944150084942238227976033118216025323500994411187725453338308326853915831184831741508854871639908293044536831388658620914182182718265486421824732392164594625496025201433040735096098806461776969270367769111822383332326447750566860561219287679174011149143746332556084162268083371301130696802000612999332830832261201873149733197268969684965915047495107844541572674230727969320141375746051126202318753122121797641564419599279493269475630648899892065297703328484810005280201751097358006033763377771197796582421860758098949808291649686276733101900454147653119597524150964822922997499881532184308872849554988818054800572473776997940708613302702246105312479825509234921024605246471382929167240248062892184184187994104270493779579684212911594548590425708644337399902443219361970281699172891611809694072596928785215120865850640116537131844509647833895458360595070283451117249528163921018777564770577829879149966434967001364568503994105921308439668282475592485706745596045743364766355626526676247538032975685968398581759846790094433636292987395339046838640557026731144629893757235831712918703795520376404401073118195352667410348168204630165240270379175871858550349328130898953357354097748260681496554496790064532731640804771282216609241778548518206222428023098457950031299109828577968113833510258701733274453998582052419264662789474583207310721268277273700882628963376149937832934296664252251188544671281167486690351157423816744443898472539933913647812109768215447026093343361379865751036211735343158462057253279144980599545857612694539182690647149180444293489170067467872862780603652913486764862289334089113539154652082250904129377319183729256059199727935367794271283374715549031639258069654755281482179316133085538788949402047420972063362665704848673645764032540877720997725701283528298943786046614006045590522005303030144593796299741764448043988741719679221890081329477186419796999349118560478384778021903284802236979411028854909571880372379254167199919515831707703354315445297953274262377888475805032900075343452703028027215424594537146968020172033004333525267555533957803332467167261085787401572570337159450648170543333392893934785835902555164844974596288482726423580204075127030728273508181153434188892009610323609420071687177129891709816429917222084440934019614078993743675573317130116495959475968357737963413662349293609197060153646729223328695886279967345209233350593856197441210153425990944053594774323759272837655465028569105468349770268041840398673172580604655182109735683084264321661803108648759454298772285125539812017237889176411877584434992120497930368958688127247789824397973965570803715084228874274329377509843967413354198587804467023157915140530066925096207634567703726044402236375280410874638073091009838910269435908134373546041524177865871704550334593654963726705558369749852423242364342514378761004962265072836609756998208686108602144208798344898092397731502853034260898138363966159627702622781851402764346992472001872494092164688948746131940568509320964843015290176311888810335885850032929326443379769769309545978653227413894604699089448131511183195839904243165281460494688311624636689012849897448450343074336303130273546389828354132163198321338846492102949575070939002284144551372350171460608146012922319385416718049641138367512979388782570294947358746037035040416116531929231702596851199958435908223349241424510724005081176296390728711030483787508391075957053657317665801314698924815394986010529199053698236209306096586135621391315276654631022015748815661092372130694801002464382378376674014772021359944951567445677295788989735154103867563096645948344846552091294008193017282805632019496613385087381316658577033984329315168496462439995519358965011419523522282241905958772817638115847405830682249375468072832029142002538866819709680296537208643428810666046929350817885620259581950941958500495849637244150537750951850095433578728641074891067491811797437349644329279612771926193523890287180509184662954324813633022097043735295539117445599147796926806991939393919274130801443464194922298875389915961536604672653724623633369176092666545171785454125517676227730787465092918220450984500098624372500364656290013769956347007575830909015404234563648035802179382595373546024831616876036117882650599149666552314421145611376956716201619690271809828363084344354013399462077930335671340927443905219935997023623020365419068962963466264083353343843344727118700204785569289627411715794036736589563010917079726731508126281564884400971346241803281709355700154668022530461823800433050729314875119447868217726003491203091275567054835491024946393294860127898405386594204184194683672351839569199863439908827891637831788328744530920551417599949737579572024232790186916611490287441165049122493825637528476940511967822941773157365627145015703869737015843842169805592979195415045236104515610487385814427974567751520501013366303180584777376728318654404413515586165324418245212808098228701608844154608317021792024911004115706280061860449231988222523338467358925798592520523334719347877449261135669671636476530913856506081100838591902643829386357054588586107913565990929180961636319892662150800776072179601247323632254210076218522339627450188291226841882570033881859518511611812205753332822751459859568797811402516028719243323321230046272091211736739528048162467031848581487963910786066018394441007640506476639839257106709603939788135379872868962216118992983048407595358850489101204284206109938030981712604879756173483075149647246761484781926939033415625040990862156881018507217739083631348484238324157294929402673013638106512994959100487594575285414877726916853320845605639321908749580249442004314483686866400101154665198046043160698352717559807360158121428063814082367475836980614834480307850882660764184719869947888716436137156710890941996613662063361380041247316395432218130858649529028487198802340121096611767696945873637052747223708220930679285745368065858921708471730742886278295823287268504855567666533119099743023547732829292386510547028915098107331687328222757615022040781480131271400346894724458970753728475754598870378242974889130794773563011085292597407120569996167759974490867708165224413643288232683127775939339509901492271537306235843944021789721146918755945791896536541701516067270778333809097021477365722380197678552725375643471137475278311740150880431410404805288221162385305512584157050557215905650237163599764156337700300123896880321518197665886615910107626225303839372527514716768482183999610763737554657022212982330176319167398019932171245517301968520237393350152640075299791206036967249757276791936600813140756162450838436195753087737422404043984862939496529032591402971123432972242255129301612311324659984433351262736887470828327474874211816808034667655066863511073497919066345983486192825801816717644275759491210428496373943743474288213885433006531902807226461166177038232402608997916826306384814708007386955677201281259769223886666534328901344546333350353155222614298444678203812636652868625240755996526590482584774189680926013049978018213148516287744153733590966863332887201496305421852519930807266856895554421416997887983675727777487654818479350556549377526271263440564207596868507190542294967271027941086618322755447610282589266897835138297049874024811636805129559342155795114325200106075646318405588672821691484500105763932463915994760094736912937857963418948186421593421589967628351136651339728777375117680883210242505393652625368169557752770087131172893906148141900088761597237881367268033893409639155504029053672432408281810485741701848522477564392481000163399647343122579947529610222379746653489889593325671082493212947931882866967333318959141819621052935337983968818222314360352070926489115982381465148533885697824259571145538926133220130397311247559960371615502381109228105466981537182625372540434421869129764246822887151030174923049384053393360517698501149027809771881095073383481446216579662339163966187155860306944960350855633501611682365806730463659830921928345793586463304407842938690357792981146559452292026006182126199076608199384572415181224036027471764949968261765865552500222558972192074678223799725100838125183755841762984694732935706478253617562967609186591026368351129731921915695277016163945923520387221371829263893265968921457441001656132310465697993807547389469601823881246206759011630518658121431806742118920605956549157720358247026598502121689079103861751243295558245206474289602304780208993093513403327603308754428949673819170353431981597285492290661835584575494518650303024944034492866103476834443224837299657067125828750946983220351094837553050420755564811151652091106934882738330620970853730213803657538100555628975246217349622842889711753272862059548514248225099043715923357515524815939066013730141612473811131243155203857604052917444744887555210217057561481493175984566976978513684018843211352884637261996258660313671602978674230928220868296464107354465871293399410814523108169842788331141894476543299116471287897191298994711869547370382801515077227859276966998860422708470984256082645003321800310516989315241632780460262151146997531699958607833202726806569970715223280379234544328486159238703370340289532400992227099344820399242361497355860687516917281723943993294689157819996093663279633895579923658387311218576873526584822170474644029371746930219550491372766662753148306752986517051173150644571526270082560316761143275078820407633647554536943376276174607075269800728913907484294529725549752510799438727512564920389349495591852099564372431452092184416591500660865514709843563172537113806562803084575498547541719146899403845683377437999579290849035177367120878451460061234299650201069163919577102041856879021271128100224366095972177586031013381776655294151626069087893016858953683105167594844725347331397676933933340343953224448742975409237298382075930999508086473409177896444209694092084905354181879981321483159906243556656854544826910786241770784855382870636943241179633707412646511370077474875914248614491278662687064656721665163008403993245955912471773661380804916010989785568069509479572061151625152245301140899979779890744717022962548611319945228683730958779032050833491932649543459825342311554409587471021086488529828905578719410823417277389831454338248934457833880920747116204620546502592147004399774391182440165341008057925210974524211699980408347463838046833279998049320242623473817569531856938956949225329086340772748889015259776112352712197271231051980435872798829346049010744209267986848429951906447014249937124407005475001988732346386404618174570565354787301862201941018598838556029403245119795556763734765434083641642367253896184670366260679340326071165293714461337450331716758062571336610363572374994088490577177514163585300893836331964979517021305458627238194886248432321846732849264283048687704304722499068554696284929605687138585684631615995087230745857474324797419357794299479011442589688437861598227799994442493277734727480355760559010999268408679891498850062177927195418659085580923583291421065567373643083980459183045593313922695530320846759197211138727089586763465505359183067478807929007290423695420202491261136965481837343374059789393715618764079119318632577089259243207333838019990351742835225260392285051746007082522384337459441752639145442796409875629855258794520010457740821159630736598247259102292243458106749523732712290472278156503817243576693232187988700255635037664671131437525973488638969356869022724757113043984061209674144217895199923596183288968928246511460146030529270973085980902520885189836133917467604993396200264273506212242715909128736086918621813584758861300797833167411214042015765940185906223111556292050537624771971621327176844994706946485538333966499855170548303547874624263550879911668937075909449144480469383730672217961159458040986352849260889859700712267651713566836292135485319576776780399737783738461003175557300023476729900964230718393465473593708543612732194354200879137813490588723198150247691761400063427697252925975162776986549204491415015489455381818056811108316870633828317711596640912562320758829760206385998280794861013454299738379833125689194558735201254097352742276697665274362458553711771678084327534293993069204613014242730071891504392540090610363716001460123387635822491093546631136288932898974053164884193234109464737016161507301911576240451885679315684906854055780036433983219104851114437725269214534405226566733278159222364960732102126719459903477925285148626547954584411491808341934179691429283296169801955783742507098753242539863355565530005168631581010811861050870010840152087672631207943930178329477972024316485586884892456599569976631114571510070196293682074385369260097043303876324463023597411521674679589885232679494359428131067985046858466483961524835777783418679350527727808393348603558341963121361846238692227317034639280453141200674724442536075391160991514075485036082153423727015698871245662687732434658579263178329627968695650469713441211109612796551199738137420331868496800059278936555122304059221480006725452964607415763940460988525448271486257668531101964154980664145640025662277054141729018456106967107601372651574034821802492418975357539309732010157214372709864579637313691760339680255837618794697791431993839662364297057350923531429162627759545666641947735293752909912217721394444935866962904235694768795110770728191734574955460449280444153968610256710322038215319576110862935240375750801906630824349967910287508095985269444284586266920281387620263659903464812295120275454123746809595744343372121694991038398611271268425008541475052700647943486455229839551638370380663294543237318471667801388333326965024552466512630965737821568587467382562421151223728399041721369894004083652167099738992451731525878166402217775705069789907887607971278335693872762175737775993765478254694383636821576201404101008904548942226811872408885290490897817055947349268236919174634561840373111219236582659800244480731659158353458874897721935335732256585309652746477974987956913217477590141741219193712649372222814465445070685483614210587206742518287708632956009434665881894240129135818783151810662564320271766805178294387152422803712195036563250619784710330684836730331748015138116036285632795704209165243110079139972969378297949384835518009615583224867138310341012538477185168166909419565665046693858856492597136108915559270029120999257430543569341299526535948386177746711017827783077204798089624511549851769560242261018904036189386082812874032728590297656879623923856118552551205485267793637975762873654376647299041917300595122141425009782689428070650106231336937462661258980080628963252487281656800365967701982826775317645165456106132079474733197690721751342319574435731000445632938500605978267918631469273365367625881682060369992648420930745076423929367764316778862675212484815186836625048616955604441419565493663458029337506731694303986333356225423481971949015959942654882038567918686916949496218018560615066135476963773193103920899617887424391887719167693904454697066100353756235323073019259907831208585058726806896823608495783835084302988659693433595626232939043986046396049907352679315387881305803975332573806027779872142117463840107420136440170521506409611195997630812581841651569874300208457423132143633079348042059534084228230327189297125327822744606303849103748954346080458886189985183750673422409760268954892802418558414657621407114335246074011872213581609184948688586808367644557430643620328683657028248365362000116818587271978985779869995463277991633729996786501073182301249266274792272484387098818622711031053771320428202710597392742514268077540225639746946697489405686231895787055040469834959292177324204064777189831155133754625609108271445158925593186450844024995618139501577249477552361452226754669821348571477689201517697916807397892621076885180434806592320894393317295459586573844062377117075452480390200624903627883806016693378244786579462250519906241071976946404815283247240363632318357052080395612589265697289758206069425772674231090930836042398135797484947365553951110300317217535674192309714258772415865247079907042856033180129689084667586542805058854514590841452254836377825199497624527686876706221800103274541745555012717957660297917757168196774898558829858383974397622924901493162030989672451475889820051640610379333264870356970327620044087810603414005015223566271292623366136893138346412170742014486399510855280381759055968620145869857858172000101021986365258632879230949110921254825072109509378323869161759654313796893985276054596040635797420386447603567598697664754066592141558732386986398399210335801473718766012566478149320299914233453309536842954231121441241876229318554621337854850158035481706060922455842741162278192273265454188825748199729361467637584999462546754071451255256932994272831721162457292173898171906898116991262329032238943863387084548269328915320708751971869723731921985631885123347037290880947354855718671698955382894921475974390644142400925038076045414573139428564386394716467588756371819187215388288699302885539278603398476253954170496161618314051907782091483758897697265807015848831768523784146315154950994341752231816998395784661452398883823761382695425413703523939378336839790825486753096365552053159581167574744404498365993002825175688169851087259133363814774052729208837212696209073778097020225452967314081971532125917648437959549861667907432290550288442649782352003691047388889305830227324117115198637270378755654330282092226900193569521879400914655338525342463565388079334729258939078606084991679372701652619863006423662545094918300223567315388984851285482881757298046622356677225060612697869985654081070534950012528622333103882168242802662437527365749471061495055680696986704756560824110697317000125064247655231767576534327542283111730308412338255995036018997749603126623422871458248178944280837613331273130049235484532932451108582482635780943450437942738962339615555323317745191269334466651063187579432207297468529725327306182561243507405093049377266843307912831588490991700820354646318166379466761440965796229387105717377147000586768713068728758176714310239498766297045526989715060925486572390868087589698056982169825449214311885862145910654452108823543335755481416627768862602232778192308945773547636852859264163746207747138141648759011518584050264651883431028319165435401935540905759640416019750450918515192714827380358826282132321097391021096955427437015361853562117527877888174229966133774544353322614203509383866440950791651218758329094140779449739675612278765958763745854998337709585797369624510724310112745631618974428165966315548809568949009380608245834830566020253834980645720656940369556806695220267561851616476281188724139094451144056050445643240668434618627295366183861089142664627293417625381494209266972074449524451777715352412178112715603100923324968304144446942985941735091397151512536829826666247107005011958167706126973170330781638719307277595513699529300994399604116114361595922561924771230716571651485071477537702180368337734213871941883751972752320043055304702949229319711910008962076769132031738944922044742605012593383812858756863225557755919711087910729813513843408959749033670857950153569100832941749192515151501858388715991850945263515562813511352288754583275209263489657009748529631989085490859612982756103699556122559004220326157213519333791275074108686810936635626558047010070554038559094733080055341559468338989431681793440689192651261834087221419057488017074018054967230069982101940197344039747151394667592353227082119308708428228741588417606202654230082998916988243119598988260349250297700616699691393458973264889596597113537350545042570568868098609725315334203406380504017096547619774643481611006864343200669733254624341106582859178672417094880975496968207144368373692141269705755858150760397930975843330722610775121074820955747925757387764791555675832325802222853252988426612189833671249015211722778346535801496843745859874667442702336026770211221040802706464260955222271924611643688078167803670847105744643062336099012550691908035718246482148416180051918650655696573720212498117740072431713997186291766124564380316040538414798341443979863045620739568302061932857273990318693539667243067641318144963302973667490099075176129495136953542894706196649634833502836126869797148299464760928330759312250962554658978781532906043417531607601466722376312971050529444581870310621162233887471980113776139371302469117230569454343903052939475170085833370839474867787575907102271219470746644016131634506240616648957522047070750142034634111574322222887437666376812278264110062163955018773960402232392115428226827449845006244936769310608478090590562778257332413537875884522144153688621423960402404243989632776206002190758509493510044349893720270437647574774016698457527561078816255549780608128758733680745777559023378252905091895998121513025055997038815426928157308455933188870866458634359145920449136943494406172112074613296153187553500749725878833817264070138609600985260236747787291220407178433408448415169957120407481063723305349534278628666397422181412351147701874017282571632710582381296050566428510757413741447967149810455990883352431739533329273502353323205432963181745180289000914744979682322885127806433226701325362678825296768446385907546203532671408594134261916722942845105613894456060435288036249529646391471516482905270432502653343482436962991024225528156696705184326216658213096252788454208643473387532720078204842656086239365658126919778837740543909284667873780157574146557632340878019292410964229797498262642850790156674103961531952891398378516489309975506995644158610756520337398872282592957331936035690984962302968890917480238161300797825394396139133501933401771512568469106506758691273506430899255271199515005995192777928399772441532429754675764192930885519117267107594105351341375139672787136007071015439242639808738966379044891554356087860225624209928746604278448136700597581572636195590690036915501918851321576319068817779565781728050060698979773396264987781590167255937909705084582789666606998137831887077306659985869278944661571301182095769725598853091646441996230813856272379292492972942883117916529637113830875981294762211855615931513122431927278924648877285138632652890500184108017228508114938935211587828678919478306857881146125671528327594406743190886767392334922360224365705072455425436622817739181288927641706477322595635632729440604208501344970437765415518327223638648946569468194693273821681977284020232352105975719269548092302594709027999386680024486206104317288103513641800677276246711825252773648911413461267680356618975239307279540807222106962469558637229688870812213701575123063519930344339689762752042563033843342135098500762358855179935590545931384617358144975034746501919933053184498817510151697816473344138285786049575520104078355710418299143687956075720172959552659610710885312129021703857147082049737447562603515691522151512016732173004169374937511545769831778648131122210743783698237736394608252499476995746403080051376937448918815900251554342675097749768878405653776599978890264378669747419631744497587665860254299218743132511144658137076150061492879348499509663875569512773509648672277985144837949629150456177272513497364052899379866154931081510668621216253526579261299240423303918818688889472882687436378863510268600272885307668510395533590973099759346208891673144539031888232312903524859330295886615680267821582645975456327598612417426387249423306770229647786780420382280977784055957696233747394536303204461610474899229650139623858073623196118584886329032103172371576224604918964314630267634334654689868560826635274698634867574678543489506034487052114018609617361493947426122579124940846559613823263097664614589051214227359367633166448575475267177737938487038362293316685481451476530731311345415288608663276158589055942174663886025625496881516957477994936041021474847379051315208243740654494595739840895413426160870409610727277275044586927482113734225772070465756027508395675635361138426984205373200084333545953778157264003872736995683949920536288830387969346591199168002651899563009220889307455773177440223309056887239635150291818075206186716800332128266938057061540725393762689324137017525561759342529603722273839588814136779286961959757081403200823817827686801569552738317084670986063532682362631780600186889332180862340588664494811677599735352310542442095615331625617973630858793827141451462537349743997702341829425339364086719539150307013164320118052139162052948986904173403206998572618418815829328333850663524016188585886001737728161721813937892594275033966004265843837065927334786433041591609758202034734647032602230789829175920739314332924396981085260198293435859213359311264743142860009554008877701243093604230201627233156238693055351391576134020543209040582164498077281304877589843391938495639937221392597441061761095984261155611134463861804764616290239552840581492595288074690629182154842855014758007340319692254020188220873205049741831659047306645973047979431122490607475690331937240023030918190699944814274111648488332058458282153801607021704044940332502404770223051785419333521432337739309821378401943577945861493381122756690684933169130609624102861463156168586482455790979107574140540368914441662977446891703846061317860683604377578453835234640369894123670936817573448085980623700223787527082031727043879193334151321487381917376821829250316055724846863027355393471872123861484844952562746365911506099752793940524922814399665051894386016751066012463226150561268399972648534795387620342985782539212491486652556062739011048493154323718039828190693994834363105780518993259842428634097928786942158431257951678734198865887129313956657726729382981155343338827384752530208269442295731212524751272762651041200228233757001956109253962983298732575862707174212291067492432888569254164659902332537613500542956446190309046522758737045932531307085284322538407674929661629614382087308289784661732378002445891704186586894987627942995990548973262460709106801480174376053171546536231516027366013780584112654316411227867665659590730024057481624696549359255385750340603570774876476555075924011156932553926219868396562043463623500178946777749714359162976793922770203301488080418058495386163138444763930021905529466203538845988698895347094516991396659027399466875200334242229215263457391572325219996263501351445208165972344370960830389091658444551314017623101784136654567662267517231029376274803313632643709881565312667950305403841688824716805929607414346775772227130072337042341682331125662119139252981588448346222369454196400924909409532822998763140633464627293200681979183325240045484141902808663034571391234162578862191225947139257895918117583252573401237467284049614651966764584690556378002310039866041673640977918092782438488291463394930540526747632966399460716072649109630789237141658874101050036856421776654571811731179639418624864233509184745130774930854690699127756442646290556788833344203773565985796039681322677472101055043620683697465370214093825107092375466550040651172420758733773977006985211907139952933787697941916894669040976409482447612459568166188444964819649596862078793486520850471645186255612979134539362191031873264728494886623411570765307925674173449811475210323216691956688083918908862923120906671293064120120410065202159175310044803277467367192454825811200357966465287474199760724184898578017841607525816182127877766253795363896215299007787244474393493552722243281453383285375586998321392509714862866310455060767566718841812491612137143670348365002478036036136085518857229349381026683754923149457580603054668815771974199406584438437211466094281843256525112483922171200326833038437873203784197719981598304466527778513974053755765738084830825014570278166543587826795887110966873092922740070770848245167876792258045811834757147131246349998313660578433525951774148108252880435294487746390935140386407383124498120421057931902151017666708965788754534457427561911555140847515612551309742189880923166737629372607219381250012384860653361763195645399987346366605302316038096349568719907689188616442643269136465834047554271804659746857175366349751784685335717169347928349357443142679452523369770354858738628413460974495335497081802335848648986015495731772530976381661771402948703849712960417318269348500510299306620039779982719696523339984214578433596877164412806833563558613300365779287042887806512714890516024776895933443842120547082835395737457684165325020845085209437764216986751329842760510165037692133005824952861631267201096254243819296840797540795521230622513090373292029943004701093982467915238707892078723447308625140184487715991053539906548972859811263103341995019267587000437571385606746286926861332200580312570551761774405329962910981484128086456983557017173003564481557739025857534940408360719429094623675849311629219236742978822964320956746003181187952566258899036034331872179849555800976565030544830891416889774136834387671081936886586028504414703194424095367679608566177656327534363952701002532901188284394861989668776164594946948522639797637317058636535399087354707784339788653538723057826631990775990261668841708939268603519601016992349165147169242658864757678657099106251641729563091538427229358298653401828404089973027008296924617338396023897024218667749074587911676959133692596043648253396830684070456755847645737129842908612809222912763261401221851240265502969103658390868361090647567692874824712158157569746219907800548730127371992249027500754984714510596052183464803321095151270309901886834804464273442469806754733619059772847371585557379263568769957912770171962562372333551349371900361972488000669561636041226623668283543138454259420039088403416713647715835209600808825482498691449461841746965975068198878590685222358066142677982887577824277636816191679262321760525130160260557858866614971206811811570019350460968406145291720340457746521463922351245753645208854072000437926080039721463194173564337223728401164188398943088014344988597029408773518697693023252806711472842280879390290899833200250728084896227561362149681843976510506683019964792938357724129748080681701586158733600001357604914214380727550696911355596805717962370359423566158112564613260562696432424313003599776468543140953674779078939020767470734159040857401201955781266939052737269729472459026467287122690694529671048061770558901242505084670171667504081480003925846182835130291414592433745648916093323576876500225107835389121152891140420943541071204786201380392182832660166481893180882137996699135224612832366503550916522554360282640356467915332342584935592553727159354718365625690303664731743175223865090207797825649033552804599927351006047997183841003074933489613238751871702236483536235527801312438861035505283318460217622830942237529081868626708076591907559763203815616703648799340444170489391375850133772234128446692908153626548820995940546075398989434494187420008253333166348522058888710483928434393902673291911342470689856836859344066787313131070219046517745171725788370067273537146826390627814299259790020921961827125471427181726875101269583460043602150429000265142746310851822372608444001128967876418555245190136991586203917403601057322901173552253358699709583114605154873443736369798523654212936582837204829166626569116006744577992061273981530023072999195708644898241025593837798390142217114050382300934653955175084200954603397133666642005204832178383190463973509175597640569687499396393804707241853463035242274240315624211521602757224420761100830240290762694822657124223400350940595912165066139447153733357741023433309710944243503979369675414802159860586332151302886268434904823386746256685192802837345785494961332097917423879297403176912507490505756943317478971027493768367358887078142196887308242144861189180997927153495186349647069052210121375532933348409302048893870319995352492936487272553266957464533644010154823005604051673303212008154969140566580824458817255816425095851931653284264088215996959508979798072877793266824764276904573751242471443423888096097534490807587435986935742649958500180984477959864007468640375816164485474577140713320232260227414786334746991171224173254757226318252628043038388467646594986007416033015623384740519787993990817563726579915771841826858456916548434394779751798970808902710509830315891074433728507311481279628355790422281230648689464973504399210727782468385684048290769484693761591724998595327971122975971865588817041025231607830251386450039433241014405651140496107765352198864539180231788505705578904066948031397927076721860121716493256368751388252784729443995444486230308677714292285475833391301876132395891355398994628346622103821736432791273441961111615603115234403576907222983762149482658584048550427079509941195486043909676017269005745557763878094843412831787133038558340329182955612819216040487093902219601587846154082543023973941189177318650501610381612127523355813060635095827826024428299562415595299007135357369238464943549474105032388061430926036795149224710749175469268313554233889119721075296161614096143729760294697713398144956214824705639866143010043149682310968845469268270093564507425198623501350986603901622682709648786233988656215827706150816838263699428089159592750245234708360140884749407356549455941882939557949781894035686455097870656598860794820097693589015960124385106356991515479683894716852540063174944451090024585404875204819311361361402954318180931066404726688021320517404107202721986086188330763106600465225543667378049973370738224695405074374727312337430027456143277323252993387007832066083141339708680071818373514763475057049637954213863927817027870593177634316183650693537012668665858363056145709962634380695306560959188964125238401982666889771833850951680811564239813065416819565228200314462567913254710641268919521373724915158568985980172372582717536165832585384863599666283832521524522064510127408401885113389332626417886584661449526065287552138666185269809060727448739828400080753290183161475069546691336436853520725935380590818136775893726599322516368318395669953520062044721323652079524716986900759371802069745405008680789042061748455563453961361330702677567722211689861928646414499620432928249156299264265297214177422468248877397429948648879973033982356989529835399775920203668072623790589269645416464120374731731991603620908511605223727864470626661266827794123126917236853627483865337013922215366760613290749412029078079093722434488097179562805313631019124717480940689394169426128755666636230745398954223616840414494499997004897964982359113551202108561504833280651541928792890951837127043582932819768352026231580721704273450975080029980668603478117200946216451840051217519032752267280701266433037739550760821549259520009857503063534658639676055857571846938399401073740926447618452983297931744571449200066037269199084036144276220364970293271939491720738938594913885434053954349766126246826270267043335326584378533390789887859806533400789679237467888718061269333997628762345295162485623959573721003966933520046321752571944356556170580260066680106340398645535298825551957757679551307103204480326370315063306702664734360559663062621934753981915356439292036842241651567724677528498825353356589784438019947005153331618244789190365697629532080109700196731657001190250953968002851367258389138783085686185063879998602957539765274692972967420394955215964203225835822895255810604335066718051627382522702102334699327378929399467608102217747235798345465051715259809044449470322612720596897587697467592694689270672979544825180301084805100316361363563875047548129486572929727890381109327518679978104148193024054238656519472119672770913140209023017407162672030214805997796330991169345707419164742554691639650377211034319256709903274129526028656473828403633977494222965437225061983056279026229783769095354282787375929012856851585021354143867863056131207940084812480837947664228311325677918612670478220615207119520004600997331231480955599693314977872785143707822892281157655410603475536757236867465649578547124157801930991864357783556065042591196085321907828872875860529594524360394626121063879137158074250940569405924365753027066086770545950459052262500598496341671158705779848860037789286764911008507479564029490575393327183853600988469210548606214050346556029328093788740568960906984696696889820106525126941199845499655668933882281111177705207265087001106097069980056887418967303918250420627260442929285621668712715075591926792254768097987642974187130056491437571348230800612031129627594670257950099316631697399465096360797236522253090322504515076329298578357047484901759102463146072814572814900302245375870011906942087988298337230766710618843332084631535936475157131675753043200993805703988781575801241033331002557710765386172627771729261030762464598598927139571810201696024803296388561081437576907691634763952000839835962541715994318357249195664870118180738991345014814052974983543985634562405186683101592182691596293647869928758072009579710373333009253818564144195608424275883472344578109642948765283555440369095884965009919978726288848421362229416709909724325279375430810297387061586372000048338001307532782953496438819965357465280591508784538490857062267804842496800432968776176967487164273124188845160560577857046525362734243264814359223318642218979163463379515548479447577738097955490061048254410570371106722244603242478301520367612462111033330889047935127216003347266290883527180246511109741308156080009250011561828385129033080399791381679961662306271741963051493998772970726980043170100977671229534035254396091634380386389967599346930270534937744663624965932919985041802150484493656952013700305375137542566633037369585918143064097757120895490708414735280447720795290153938662329345326147983784084379293760713064725536348912089377623680050128376952433886539681516081563326044325376583274160977976793799738825308805987253515259176610976470576551493298913769295241151359425146716177950689939340259496419111823168603268495448294219295489244570840572548539785958119914912647675810832289199337901508207411640539897780749315727400265966902276113894982630574300870792433112213664736296337554927436952650305200364188946551017863772353153975852574188963844663266042894774336759218068996536864183207690716670276667989630401393690707062909571974000227484905185420225796779835849918189577643976211487366116367973828381764689304952026077243870224035915319479540124123058502610419746555176074284531288426853199453566824065505766986525997566207590288179038501423148020839341616962059972706680152455212354438832701837416116047855367223473898552791305387737366543123161109757449541944549602532548041689440560301968314491254713327702085359118601596671865870729513141473942697705488470308758737001450252971787864315152662778486882398202776496566187329599668887267602011841791349069391923073268348581142321678363410424241391993866916710218888002041202660045576457382216117472954207997400231915119388813616933799383246020006368328204901900982771909169743590126646160602537708253552618636777834868261726340665931319539291050192415882002482773998963483696725431626138690626134149880508922291611351304379864070262874218513813097459241239711213812732174331096522866840363684060840972731556427209174266595135006100678188966790310900772397584298619596977042316736346097214235202499365632673287501276358608244201475253207678096901488247229971361073137338663369250081318818368357302185758619865237950890666046599500737201874951103905691732967012666697856793233188064918821591007816496785444457807321127308023035858563855158526901243949755242192296275957983468858264580409593894936541289225062259289044565791001924703576473829286625817786616914106258938766600875581434477607664388464428415565869329763212482115903329550737165299664717438403388637550959015374678142815340143899538721676328233127680623756718512184695885767281320126934851080449223223923768050774274110286395517787295062249283764630227389343348038800894394421843283168409943296958370774431254587392468923628014741228971669029929108237149883682179036276046013152152051896912463906968894897426311704786478875195625267086998135498220939805227258235523496187531437370041249600321741285470771535018897007985154113417561934844963858027191210900556287373367788169813670201647377394297202646067307446599194541564501765964318477391189105094755139162411324872987890858628646198260885959194276445807662382695524744270058674528015467983929696067774465876628756265923098006789294657317866258991786014926802073968763243370902498689887417199813699530489889151969823248784740968783407609088226239036113075621801298123826302897509286329160939475810833346691022492255722420966065064635250886949474173915147647082203772449609209102228924600670705922403740509762599498557654167084751842367237979089027342232124100600757035813115736969359659865055497302739653300104621793803705173011922343888324788935410005679177775061328553057057670473437329612019185779504057898338925104825722504161027526166055450165593906511397387238275011411554692946575387472875588927815049927320985516582604569506524059354435436908490378600402537095831810270121358019093544242955500573013490382238015070789702053582677878170374913615657282835874137589746556473097873263742654668094469374995787464979242805032241948796672958938346374538840682612324457253794847162432028004574474204197191911373269903348133881143520512752138998021080700934246071794227195114682743806822068024257767758993964066693793641670111599113893637086791323290193400906681084219450128587540161475187429531786634657197866765415637143886220505170301851477395352264306018102065417660884888850000946930981101967142755117532390974825263676146150947285863385984225843084917558478461114647498997770133463075608776563999882087627575989410661438993386314604727115345650484714095210928376078601622861859769659537909973079989974813371558964451944945110496243669252222514251292107088331786542853835170031242395797280764321449179590631142681346362487893002937826262135488463406549980463642442292328996699446834406933457731899019967202466520675750887919041415989409090350589258621349839737033083354952649552686751405375806195773654147246713775336505646376229371283240155838682697687571563010075935239961412435817465717210894518893039598668434558278779826445500077254939312197684458031822090337834649578514308580071438803980356122871643467819881467939571633291567959942859356865290383282281306386722259841908390259229692950388602692062670162762907662129607227015306097921239277400027083133369670037823606191967716215040917046855070593859742048436398846216685423254634204412618770823634335906923073822663014049864456270955544276360637422328004547014008525780607427148922246983729702705583895415403055949957952370797062733894198354781940834795682129803857295419152291223214607639552649229859236656877774247542585631645648408690246522685931498440691450412737508469231531878126526181100782428437113213004952966602218344530631454934707697860646264792772511436991215417465872735566570932530578831053870592142625560982012957734558046994943876508892205041275310180340400434880658651947974157592104536136681333812131788902530717110804843473706793583957884740734281806242795860833719951728605848497728439298802085246690569331093350632133467532508174197480318460886693194970325596789615376524202637751934718018407216931846938206354646169467780549186703172829573656698307991974425118530177149056574228539632927894702243431382884009467887412143184849438605979306526339864430489236197816110913764182899821027904747462278085475359510493719295916617014743575615894413059183373929370140799536135230676761205286856474811426351811147134076844532288074606047955593486728148150623460273838188615459442248392415579765377960664602153608425498018925724769686511011346337326078885027386827057159847874757921027371106637485673059305307508761619105095735035534932120853545477975452111016573929433051690629172687421084555333750759861043821471856747262639726824784907843198745934708211179398703747248576091052246558894860682361604096293725418650511601026435331254671630274318260844208107620252337718579165674047924643238204597388222295114519233718264600513232360535224748402687105026303417468157817560430940674256618491955115893159584593381484451183469606897276857849881492413898092212417778480161206632284884612957274266196222462777751428165109798292016262097902177769626941567256306258493174339404520505766941194191085271101420752453047683485664702506038371163855236179051673834349984720059973199749941212009128947125861309517220306576964775047784315448030509914223179929846955432779131881232904670874632555657572156299677188331263837924630973652651166373574133637943146661760776754212905280944060011394699373483939280166879829749795436423358224173668629950190885975877508066072360513408385738012166800334669217013835392740082477014070553320225568473898276785065284368297672328335009089268720079453338558420739586431790880601471815301787326289501608465136674950964124740747545387824650283314010730397231084264028405236016503398946258867763684178706744082190157515980486186295454538674228009490708413114959887052006178655688514052360774736005586763482924583981606655123764624982282427148098516951590665485971926876168424820851131177353321786503420111137518863981464053483995941172710634310402046207493391064805428843129538251636971479651609524126737993070740377764974326026013417463304618033211738144162310671542771414174968504785723689801331070929912278222097550580269746384070878325509643539641787800916184313756815298158237700746698591294548349104431675016663924876913404881362665568207888307771473337800279346172563728901306066070974649662763661664754060010056988764896749716782383708311376380452489527118248170402097908321001031928608718241685797929155323003924237592258287349060984062456526896673310073146380987703349840950617361821771509260136403357635237233531285174805728526957506336075140684082514900885492087532285547008754056414739170397333007475289459059950289991743909243871739878476623479960811216448259781977002937472942391183817341452190960121703376956516531749644740650033718702257168270729046384468038914898311673153009914028461190545794963145235106508178449833747282422134681076408225943433448441080299673677873118432115281816724671629356968587471855377223863131962720338164051198421489686153968704387401227135137788552656704754581943888513679219994142510464347604629871170671395000493400863986625470773280805075946211390400929747119655572526656998660261408524719443001959564938232345770734913834691796632988512950589268960565006655092434755408059578124022726484007730692308296478638644148767367786262726813423535561230013505871881956555456123141027989179308639152413942418156849706607172164628574354682284433939002436018504955245760019325637000103554298953701853747430974376997100805045146746813293818137240392448482666126231558636214079088365057966774625811591966504379281780865352255164275588769940718682668340201906309388355379568403124640914327896570336866309856846815828085311079878676872189124730340142732066605950364393400216862637633709166063177834592383136472143849989736575068264196707440806715579878558633881335594504188653951506270353186150745241497726423674257692329792131711361845356183465329358858865048945064320942925081645517847728922919669526602826117195978003485818274170088378800102966354750196343749067769949403248864266051016163877177046525715331151783579894677735282094264677446617970420423701913893226774388039731727429509754306610644010578838099967159851963161924289905055341499189047604483379567574424044231202800147171699473722041614755114827220754375960021241255020934690281576820521145718390670152376217179594422283601726900075265081096340687432361612910386438840748634816063189605638836027778964896512241703916293712586254586530984879223463659143139405474341188683167461473883784584480287295714119315799748345322906785604870314937829971840281873631236807953634578415966709366294021221688831000452509516441644032744023461224877850178802221095904986035238559894639135737153924281279427344705901693339362546646933745263328302606011931777226467844563798192102671018338077966185776636233612180141429025532073867672002716678084710624231405974038125453326573461389140425268981671590656149733139685682368174247189513098267955997647875869380072085047779378597517870270824920456951456326596608602081585790844066372410686792553135359013601022197248553696053997370764611616758400218278791425698648210507410832870476556310067818926794196311004443407462204990785229825949576904008592968875315686010346946532205783346174977653213399933027454146908259610593718049856023959410456928384169015488718790617554569978412739810148520622300463771464430115676792888781169189838292363134387250922104014830865786807669483961563939308224492295188496820953589518734722412269880236301048040948503294404905351154350608804964922584129122466941655814078909761880456959441931837118878538733115416462198851863563756345729284167849740577404965426692887373832521505151135008521883450658680610406197758386943324119693962315982575361623407513180320452597413320751122320028297211100412274451639485608814079798001269796726660944918652333765430002943045811038366653427665318717637098989221172638479461577111772970778784509618470359497831603035127184833306055826371792174284376956776541249544764102379786707951154586976378527037159607215063945037069391489139633099542776163299867040615348386801050068226408491304050540706995721381219388252341183568649356289999229305523655082425724914060466865366378860432369286001226720949398024723375465803298903778021218990385710379403647744597007221317315367188514100029031041857634666711531348615236449458567456014319278685102006406137970200686550764814344295818028502001997933439568880154962864944770440022694901676331620988609785773871974040225422603628357828510244618772781659062172244711844305324188296512002639298501379371267018570564312917955188943461520593765227966640171656669774016318728502444977845907094736271945445300861043417304349139429551578111849661965406268180139475716405418557038601025174261086963782848318555842047950640486757529255688403471410173929761132850492504418156901731445439627843413374941821445328106101760410344404540183743075709414031716558945993475670497163288130001638971576311465262434130792754477659734647548166295771516255947575291404203837850051969830035709597259876941135653146817032845045214174120363481380171228072779757714832242153174434467826537039935293295239571285549976629828818386106338114485710605725733523611435658022061411548162709331025928625414673901830710205089210678455631155121117272150464282643965426120057967100899245108192729819823944783332086239767153385177352387609962767542523614485532730215583918650721736507255168689750083597526023414431366673040386424061398550656655044140304492112711213134001086742954287615392063694604896013257872087613472897235862641495316827725889309055586144082079671002078076446273666367082359535474818340559637924723449164589556627389966322390103649666943098967222017223670070149296444218606243122998154614138261432500919690690962282904431301842011332446732578577333480161003615511976932083322552725245294929416234960406799010794817072516189158778687586368369595979243780037154201669489265410903760738261927232865029822313295159152435820267284797384058438854480517709946795453312342449083947581410521742697794185949392887916096252957124147107541900285332450114464877468657713658711586055085711470019757082078616467390585772527196918361869962127892220853925940292691946987657651791212792839042990429352889168855414087422162366581927988122876588700070336413138766891593233140393899001962211657251968201692154487325227895282553014574219471374073989032997241036360541166446040214499666746495770940800246663174108205956128097303089045520275728532887469740862916762127566634847770352322655530601422907356996660690969912619655562174321499645301261525262947101266788957705367127403355580077620233746184843402019453135638869365360869111260864723314171407356650364821032941378443635393357147879711259923706407242276949033138732046499524008466773844548853964235457776462145246470891477022667338627119020038871206559493062437900680020075306097633135563669592796764282049749092020103353802138031126004803088951459585606575379931739938647303211239490276256116993173654990865990448064351144417220410386897479082134621446071006166874211906507473678964317282069404939032694505165067684914907360067660725347100896438491017360896832867902635505543907638815945809130288345008140793866642504096529174399327819140228771262314112970249510732270865272805551971205671739591069169503439665896483744571072334615838495247859937550448336742724615537608179532061108575382480801157009263303534659101548458912255105339861538693602814002305529578264697540555522586419057018789361498148007790745480960700905724556340772166495030206222874548310671156336316244734265489266792882599998051286085084038542749160759026089373189160697951458053335486584342918669798567481254002692347874404540055738061201398118457072012211244305124332458618278980630715646900364439882156118592140219320765093695411349849627486059280126763801249358415707350590238703729979500193177333756645200624413519974517114752025846920315816357239684316573517859914725251635368061127412606913983073580635263715031798852901142297644275014714042551791714805264359484046560314022338090470338670553896503141235803753421934747486670210369145959214342497596782020421491091506969682018496471702571205596219844639522290334876347465686324900446280369376902015384445026552362978594189701403873952056383138077926623776252202616416963160068608298757876950694348133553878144543778209482930559161650114551772408293862900163288422914416982146484295306714598383765824022359574500983807531099062954973954626643200265423816219454521132304131864612310757516235428847688460430514390957803968601647969109526512216134583282720157513345903817766625647737988012226274777451150064740991285972946073229888949854215132481830147428917790249682424490579012993307259292909864711397398366664557656089526614053847092879156742625571824088700721665145085801386602401473485082903979669715860981527286256507708126032613911986917468708792091321879826331529661115502058161943890297156747225870194815082444538702872953583300607249107131318529230142505431208402813331821718583610508393168596618356480801935603542569608598150578636961862295652358997728307757250361963435391056358649508039694324876950566311881712600684304219461764656232475458597656045373208178190357949218328646617303778051608865892202771188148744662780674970492411076971112191588743850699817204255621366884704358830408667756505945250892556495777762866160959430272703234410615454153841491738373312230086700166504907309649500548650209029290421871525178539469153955404404149384417607333858468461872481845856038796627701565479084152104513557756734723448616104858572203939669523957241756198618353632413049127495971566167278646184080708104814238336307134996221424212966994602299989488616624464538908072406764468813784240535627838306178934382141887773747864086068403381686478079413823141508013824393667226798577065982491725894769796944490164607872823646729758378632946114804370690179752514368391325911366770159441660302815740323770462513780379510019647434886225370569824065689795284394933015823218189069700856103047628098303831046770526428347965255212740883873198533118096432928834422503781751933078055498033252655680300870434207296824898240570296013572286259374490301781937659579237450635079468257801053849344245566131001925113574560157111960905126657762840546049819221712682070749084543981697612505870980811907824060264845787013814587620940871019883320943705044677354621684214894921944933472042878627794585813554140667498630017140069477227319759600872398656568457074708741000109129980697726353105652433301077431396311620445539243576429783807286699264471714215439897457826074518474200367602009063101808909801410311713064366457064664955809328916838135532763098676426898410892626898491040033889085556379123502802848698324617572169442412946216157004414062345824803474813558671757254328342031301937315346411702874573292940363054123256807025913110104217187790315552623584997412446825369017238784719941292579353240207055023030320646842477537573751635110427625992937313934283937882075443357383203728728487364831675202932943836367306722665058863034329997472914835011174173957669011515690820078856097148572329474629305803140407930269432952751938284691105951282537333528125269091640631784116053190268392196969755542074821042616869488246941106064527092081100997373895191079722383225390744736244001045893483834325127353678435623122737530844064350289531938235184373786518691635304465807727553345123854236227747604101886983590304756936668595333392437007810653222587080695668449044494411532731709078455751939191712029023569690041209288846133131285316751674619388854522623623864542744070684579212221287450192220226509082699525991273590667412125433465289924648233916112587363675107690091162671610685806288465361033555178774700779487382100234064372901983857757332283417670663495604656110264848731009006500858890229029234097643493409057299056188550456806401344202932586115754143182553889572281614592771683332550129345701260457088347181661961501007805631016481936774792892375173285884493422947539791173405563964768802765689188671398753373554490354861354608374742044399131919828779205976050516967770469188515527496551301106516031650827153288533558519738565257979067991533501530455140448886778004593292959254279901675454259590470321383025483405310035368026541535183880290412312786581633182805394289722666214879147491145057038939967465638985538558700134825686891615084121660989971993659536696518717104796792719217842340490526646300479345129809037380571213422591173695597579035688998382330858794806526014931775708009871979648805975720965642148851378092193173731214611579634875208135971307296354877272822683449022338460076131163570658351946553434101335490597418506751529199963390931118063655164489098602001811418129017302918049703181571178990600972506065166065368392349833419628092819764559140816622976269799776206750306634739065372943530518609438535766217334897079235717533871906185961712326179159226619108563731229605821841620968587753708938959896380256944467649106551968312150705909434694588627191667549097996060586189749083681937952410923053424253499003138999765211692191692800698125609263334294776305716961194038117989447611721532633571070812754619626097418562732273221243685320920775881343257824542120566903881881821426264950696893272741163445000942514438753865936860349324884282408246570107894628393260439817885787355623802185695188936427824443769630739087801240494879423750904695079013841032981143431647958380011200558880347275024933028767468403581353936391868516810603213686143193345068863351949785826706906779043432353130396622846415481321773298339631038571789239614630207756692136088076344826475282147325437598445398322316222897961114176245899404369553162201394237018081367210104881319908454893217157370643676197801434124043166473171013063545922995556831463801011955681694548236868973967281664765643107166632438041762493292479211147346786432335630965781873797702568316789297547716065578384207351669773571946940194402199782371194218368676087967473443945869836504748014508878229830757358076150973815089120488334761902515486972510168365068157900107614870410366835806831622321883983414698608729711296483007773885693850870692348435552941875200527941140081281247269547421220297287569510545320842289409040513608791218481570052761667822192609169425354948741729598841131006375277782847532681259377441816665587087377364603280464288555477744267289054525225423975321730885120804752564416020135784527042714361496399697333811950435693328513513148300617816119363001084266297610437718694242091851039074018620706881231338549137206802795796201753274308192822662409074016442401957375095855684435062438219784993523228650492672947843675091429157151617309054514052230310470564336692337377180557121138173101576528579609875767031338962208559218858117489494540359818193623039360199145375759313817340438052131956684239366010753259141908420265943242807216251675286134502610251643963906487296138969079935729559342236686903770034929446727469630718893927586992626326353092844045423379817507311826092429270420488096463457999195018049673225042090223380123476219991415335823451479303035576628458590362594063215458750542788515002060040444238127463811324103717936101792142591942131296719327426314200947023641129606983607635279778833539076460631363852332898062963042874356754054812145852134232896553336204569715191559942194207305820810986528467518415776879584466330452751504359861212834577155620566974552372991918175126697296118216905765785181492492994352716249883937586205862293203993158335985103603545418776339968602698269480840347146959192650531890283283032446991672896437334911968705648428403236576730801135805794376703046687524888426799291085872502459921814040615077261391147876243671808200646823169338958091930912809307426335594760185963561680319540231007455942847425958931174337666249597414699641762879703211022676234969165742382239775903030948874312502218652426107188317650730887947689254148997992914239143535538484685700693254934477150383161277645521461967935231438929552980369117592383862948606191410746367072872514440536354492181563217702772695299436806765254662891788983549026159824844156039068729556069160889100117416907044755853370762118803791412196619333001395324576554505191479047191217991956932291773676373744458248833098792599894096590850940280248076753015829330893231140399925818421735428018545541895201227723636562508529660667535451170526614297301351022832796745744692848343783817725207707058540946275142374715453257656362233850584322354106301656409509531314663890154303189462331212371618851030432305471508146519261562181969629284058056135248841248434006859466073625694213276844207416727705311428135206526423221535651483176043984000118926551758546857312444354085752927698771104504098124316125375026556135954368307688163576870209336862597263479123209151975746000617110645702552642281836446608348691559623844670378353484829433093226124803364775595830337966834819798807202608984718992443009495504649082967947906921268208279750968581627150619584710101936296888005702110924397155129435866743533963704052565088253683906392005191583434936549285533449606473642268249904529655689992379818507473335277173902425904444318874760118968506398200765876401700337595061726354851488032690855262694188592228585739241507339915902827969917929633388554074306589492846152144604480982297640760434485719053154990808850843548264770859734337376926575399084257458833181861918799053130142023566995067154430413743833968864637197100672419725224696552803103659191903578064096990396962643489275501877827427649679482614774647003740419925055999736045246025631616702663567805596781361444454863791887091247731477456435313964502942280761551003564526064271431399760465153067935877184315901926416569544633821223545115937054261855473243417984816231517790294678799713688315448599549868603495557487403790438706367425296786673421069491925072418821498225875205992657948772354228616347772365905083465289982203312177657434963864400847743742926593198188709508637362044737140165194737492270316747046732205906505252071939279548620175270316286919548785807005716988164625385924311468246507784402814861872892684411378289112756296245680543273478729097364245423860565824202037732700309086710017048004836559366104243875124137232064925176070441136103046692452660003682965228715714073468418157050089936500867156697075300927625900584967026418089933154703176342277308267048500590852849034961201072479306857183758323083654600747719249614315425214547131563053196877630007345229749438074562619970811136644749820713268905027155846005728016135746499892298454490786758420868671221846393916541834872883702545405989353018189181141794380273006837677082579150279281762331935001236083722001481775964703469421563456979429243879013157535409218947971894225121980064251399312442347152846843246042791794180951629276046638435188542695711522188714135001074506247191175273281371645856468236950478560077584811532097046887191893788953247313685041887268184491488247031947563917816704699797177954718572225324653714308408770519760056449147017156744318342853018385046365085915127248708726112795087052439787853925722275909386773846561310028609323379869569303257263560033330458336740798076188133665979059002398998192485336200461245353592535292665826260024167975037104399806534437812316140162792056616338521921824692012415047380966341136181456323409652401922776548490017491724587368936503156236770467509470022154394446015497503739820309007992122356004868412688028473840259326057058330421689799102084855864518105148489617715499668082242529596575891308673770408968226933053273611419960549498746518797648405489958358283867338081839253649506225614652904791416409659638682904177734936700711846114662851508366324116897115824586713054029927392572018349382848436393691622050566205997136438898350626168754574348569240043722215833230738490108004466633598302118564732094109136493893430151892873262816018869954168252541244330744518065125055071112359870500876176733329776095426727991419605768552506376110474470492108344698588016321384563722726312751115530493232257089830711805625447823703916826224138493465507340564343933428386412381650137783944065649146774371041339696460412621195715779427625922936936917830926337004841212546849476921243289972352670991757190645141748014017402151170605667918076922393757020346017857081195949807771499801268918093969837756801446204151192653864769472131530229390094843811171816663959918794557425549155738220531260630525596186730807213365013855841123243250077172954105301230644466385059761296204266402274499195304636432194269598724395302138059386377787118356331878106099813861590179975254331404836430318339056746695143217238746459218187060701403965428623310563470862377720148071683588803212765642758455393978195917108600686980065020062994522995332069328448440175641431611298757031851884164949121919970201092723904042751554840387040145074786464130027171396378227299146442704606458842557061621737531390920985466934748013822363923877707683426182224964190072070144693387962850752501415701542313251897758326914820500939715124718236769131452141818882647005752356500601554998550478806190632912707816655668329412206909674117680766010729535975067541022328993577268488957269944937554707454512590820352520445995303148810134467675092567573418218119983632204157357513326336320580844365723694725756168781751629387073823461170781303094826844545589304789932854593506523087214818904714213117242303403319794736818211223608198701597373711169928313438175935028191516730645430127306458756574986795020678799803339807572911574685584958192063042481085671296382343996796214801299190394956484635615304339073522241401314487057530378346436804140351494567787704089560485194917195757282789136892289933776697967160476781816816178751281075720896103757363134916748657789705390379908650260147196682466335787509255158938440351038824692306355467842261372876388288291305236095395837466906827962196600372209918282422594861062881194293743517918207430118876873720253343329228740594862289954339317988169010323859163600484458480776790407064933438029659518831559377983007830867354527978714414310290489439722529856384907250023962467806006349492427636273117601137788618529348497703120159896925620038334345531225054791765955844586874465586920842864445998441042981130461841264805146188174965728192789316972593665916903440923854352313004563663655253648869259946579707039862989785389989450810440403001822093237586137349486192098621151031886493433654617065285249571847990915935908863803454716643677055674395272636384829640939194881885395636636852222606408129493934245264153174682616181741724870544427819754003308656453570936011121521538520015159363673023598627940208951052044548336831726690650870411504673514517480914270656946201188907245666223585821049977740562800539269133813953058655048245641438489053977462004297161660662031985671212378368128195894968855010425123689705437291087909273930188838776424381090339190678894549795741482564882651577651074311280133313137071601698434979946571875749027367963596953277563080460219624343134827306678897426044420975275641335857330189528080130376514270290736611302831394333943424383947076708758577618126830420572245468012290432894141320480819809274234642116337245357936621595004354540792762356647916503660927475511009762743143047773798266742309118036442150136051609937503289792501529470346091662384413119946044342403150987602986450444235605939783456389270654437833264673693567761941491004001583834387301695981699381523340577482440899402207715759257783732200640026348394875888550357865904830368968881351391394808567954874110609040962621712085408075422832041695237281067193697609787894176849903420246797987130232046926075358689126826929123014915942595279774073372044770089803665987277233124596211711627079220743042126615148317900665938442731240186984206578124672711094948027952565475416613822765913671266128468687128787233098453336132963191689520047051983586879112322588342195845461385430510412389694195046596733022769871974200658978598915045901626286991663300884760615421998615462673077980563042532599994680362269618124035263382183608098497354652332443312258685079585064670116937307581416642680481037752477930208106288373064633144507995082581361222562595387624203804460267634898042565124534300946892863813876872420073471298490192968786162639244365777134970920076910208286778261842606429521567703658380568373733487354150109197129546565449971414212698477369169263440557446399219274820549404452886371796770121924941513378783331446729294940327429556478610253605689308543809944369721901263448213712462519512629103250582056218295776624356893460581960221820840792077783177317761093280118068011785182833604039671181852006697780069857238449957950014396465542819583339091017455841619650533370561093048689170869018138747450601947156836962235114859173148208291247085834604460213940617742063675169096271496304639401848192223670257907490719904285012244382333594167057498545934219812251504989517789334574516417572135674961349154234201223361603293884850508962405487896464081820688823166619629984991727990663559061686593796403027109683271307679257700651503619724639300784615420668331511392863938116048337483730687875515238628465257064470754078308269653418750783250937109844061195799391823353827692496133265171780217107544510736728874921877480202949462806690892423547121335005880651951876231967376739051775750555705257440119742532711940736385210632722591852056033092498147829533845512379777243337062089226811893058398652184039039485968956334412371107737315292695425844118398987277654019872837318017787077743165209152109417571197067509759586874243596474355625645514496306160173103730177785080092366426649012940195897945217041825205507932064233690288883590458183043322300750253675371852646855262965176859817623966574176890984526122814367027719206500045708552963541785781867366855462388976186969032645285017753813847517574538657381923961113714908047424428781651073830464589705684688157004043255211250167440032074571301410358404561625816376481175773238369724200115613840398263642415218559818554506858960716669665234605268898304157610910256463043105777508513520949736118534920847063899562718953723561401946996987482546963431539735872657392041894285758112587521493668746374500774188232567831221682412267377098362491317873362994771045595488385807546891239627753741717747044146627615937184113589642082071894535260653699390453068591398010033396891229773681759062564069427812342399245978761462270471837860888090463784324190546302491437908210975348698434509231513060797258580335605468338818276791905127586511159501759034051444601184063152269325036980663309401168497537771916585501629227634336772069684934776212689747872735688873590032634166422969822520935366683375012895942719486260903160488177509406582213616517594457476839947607870695917776108764343486238825792935082207783182629007016722098284293442067195127843157903398654794940522415491945847613275755765571382306243409671257182328411209732727083543071711680054888388271452993888677099473084366944101040392086324490784618831211604891942583662399126940263821755560464262756743883263267855013821524885398735158520595047791449068449139633121230611772545147490311200600854409609045797176880580978935244577040860016895708869289599218160762361729108565084837350630357585742745187350046470703711591386916326699030316313573972144980043618549957696218273119490383348439979025156888930137303636571108434024038401801743994979959885973747448845409137099463432650509046238721421731172176273695183116579562151596622515025299242726500301555545771215636242860730874326063721649627966851880015311018834794082903910670872530922593049316940383290447959285136580125073049218526864394379874501413896585909804548439766311075276343518959452860129015421524727750861666303965573882634474740120651201619310467422781278615458996078962476915213721705186521769655920111638050145914657524586873696218373783702123742609628517780266944689691520521214604775905126014762782702816989291344354022489823964674809315659768873168013093950081896357534677699661313126240680581022892274050453629682647011690748562579028042045091609609708049939885983290265105576184487842329514884018470988481135113881154801103793042668670986709914505115484920855114998220690175605786822352152362823186911942222304627146680682404722119104076696451866663553304891895931159312385555342557024330266541321328410460379066839792598832885466815354631605966993292299086706858034964452668258464829107817853312790818445155961892082898543716219310447447529310364061211173954570673025862521283516876041604651642297778909006424173853554154393987689822090745997498469611042248974071389066309207294432372007934300012178334161852374182952969656995087504572661288962358653600779065347258246856188493755922978562397179906401722339766984605180658529077097108130278921229129549821380214189575668928071757291456387877801242231429635809578274335114756552976491193055657609721076113747020599498317319450001090059330562657505040227275729725080939159771737762925636359494284074924067262730100711773082369472526055709975219093764281258278574121440843138994281382774733555509343567657549288124462638033984842057266140272631962548559650864365868492471384098875424162880042560261219874275226548196768532031220300517525730346821364972983483617961128803872230268057739293214175952690465616557164290505593637858538941227694795056388499443256353817132061071928398613449020053732669481501127245409898308285739180599929220734727275104983367126350611556391885832102954618164985790406009395421256458865738135847517769538274083781737473646644070526118037206548622109459903823854687452934609478761036333317954877282485237838482856996863381224370061847370220469242377179120113630042285202486812365974272121806374970819652563009392155237107584102378556643070798054029070646968494385606285081243008265273774025496930320160612484629758216294326634941548400829212521505302444851596052313503898892404782099037452265961077402923147089817650996083885984235842203700060462045825024260047179554201318877993913655580461690918210499618997719694479752451869251703723699091306221695586621621424837200617048454860014517929284424336293560190362826998731471673136004621357455680675803772739683493013952902266448681032768024858188418971047384338021797571224318204566635660419777683354664479891243966542591280669472550592302756829941981363017084626785749630290514551284934379871416748779972771468508977367499063343100736191779907806453940231198979921484228404204787463033624767499518487915740612208621241525625787535906013692323239711895403302262778424837646577347769542875664290755447166242020597865079122488558280533748634450199560777292057644845905024690727207171877101158904719707314691921492441489443268152433183877578773304539864742088976708370665685525464221415974928419755255497045604897541450820453887057871939993506622757133055296195340717721759825893538672073319983055277227893720646435945939584166980933016270470502765839797080521376796771786029058126212661412713108441169648061100734546806816392806624283433978698800697003510736464243178897930557192768371643909000458346046335880237443830493416092192641014824815564752252269223916368157478492176591827147108064533935978954013079792732261654419283199209404456612671305576982995551648233840944703791051244470198125568077535584004753759965875403544564910197274832645957182144871058144949913633235862036014023396571974493812236468887276771788526531045530198016652897664439799857695453141269508693310840570961427049750210492161794833396344427518334460007746119484501632034364394834293663670583966025205008574864607060495276482330633208994036479506656488407447599866347797459990091621552498933519785358782037201925506024871792008871961488840335777830710326932521342338418065595446038971577808830566039563889815407510400975343952582100098361828965602289500290503283016845268930809960994354064951065942808646420323770405531214729093421062381676998849639261487991412241816853701937426006203385585855126136961011724123396885641421807203843007101239849576129934448302911280524088306417903430908987829267407468109817988890699168265533615551626211423302394262515301841087983904965341979519529621832766080042214374258744126262225798602626437509791589640229870378853073263220068991560541810108128670668777433286415486458032813724623082405611472628183888185578831805042218883457815169968002754441376572132528564516832883324194178312520111618775640476815722486963051172200118021144307777203308665764132696864296824362103946348610408671356455844582706260734338330423427909028144497938584748765867241166619394469509996086105273091292392442379562930435756252345680965411663895747550422640693069781221590456399024022796524699314558712849762672810655499920744394597550097300932649078881133112553769301737903213763494843381601660221284105525356470034763393086486300741979410485045933181630945577232005651228376346435851745587304606962336133515894366228466410834857749682393015706710748165765960775205719473273422178796451453492599838412394965549884540333398700377132554280746937629167516071914103290694456996317632954893927825368841618128464245361833294971871334926290976655854319628870376648052634843484956324007340532517836134230500569708956652285633344706947799860463449912712379045302976833295893737461566425237318614329126262033892337895895820271817339278976102128572811051731325245214302899241245311936587247009011006188930297482747273809613222048803147391371767805849253812965580157145904088353001487882266365472810432523671922604687008668862466725776154558720175616550635160946944871839720058460240282167488040899830385995032478956633160857824950788253804766694510086919256298617748986998200358526001844738789667786434200740615389183264430299653093587970178624286819412855727951539470940111829023996190724967912054592544419767955359307350217977028855250137438692370741591115015945819508292560137197116610658158829799421047914809238116473432998264183047473170971905951225341574490126474958139832796821662020815891523015994914473458959377211534389285760049102515786289474012178231033888208844947626350126754631024575402555520364327582498021960155533345008111687651454575395017406382502243531510597478017893965425072880948319211158406654861589776580363257688771181577862304369871855486446015683228317493277841562465993672537410179283222601251657788497601550477315878568636707324229852534282399646498503641332331438592945084779672291141090642734007844313446877718267222166690635792375647255400407462590049787509542406425447020598168564585003434548795510007431925344535032967397195596415585116983797761909794772142337198824435588944958000528718892518756352591951558562258690219114166555940644039751428262575660850192186822211468177636085928117383931648817789966996786806084313262110531933668782575682100232048882408767606555504548339048398373199831556745508225981411608221276358646927705352968912782774161557576789201917694549157542580975201985085803890591092823497067824034932450285484195645989036528172237072556952693362160566151650299609270457178406160783943612135351586160834663824795046819188856671087075992069874121480420519413523002502773873771422204777481614628793187624754448055661607652991365564037547024229208142869243599757318060614108900992706941613211342266254463905436519877243648218413140438350000081584810531896398092657458929274960524906622155491032278573669078247068337480248578848816602073868575515242320932463482961554650960045951360049009410553470746190503562741573602639799255392379544631530764546619714446034849005224633653184894430514345234327774915000628010759420499111629259422008190356767436662948487986852659400873087130160101641483604055197875127672840833332726064123217003153224346062201189153393527369985712889388380408675595435843761806207542662901993917982921550164281435029015285359530318266483450124436280263635295038396309618107168296045282845900483711176173108949257481353408143685861157912278221758338979681689313603919760581506074915480247986386364006208518448103719170420826070363413550038245902317905639184650377454007862926232572045513069707324236430875354485950215243468372921822695667910767041534725337095806351715212812567389939572434970028360767519357931920531792101457664401048647169980691666687472092567949265430573945177473355414061813951225683056067369414311606545758421749213014934491407756145310225545275416835639010629720848060112179167981577021148144737475162940841309027323239503044913522058907623936140856286551985201821465486725632182174253019713180429688616600721010706128535357384705862516223881968171866479867314838566078492662881014170907754141423235863085109387447697422082067400491313440023268385454260725270107770960571507826642946884292640305641612039484534983714120684365893324538272094008349505514911463359543750462112008251469988504093010649525752858374853375256131126259964706017117677203529523124541764573850124892462496954267769367492301125022176724719185565248583523604413811159912197220327377988971392671209499449054309300561754580074453159011862815266815217666854390639104115467873322923240995113420056770507408887319481380423537655002082463448909955206028984760238147673719561936416093334328161998021310458885933876337969193629130810761835954133383431336215340086283865866217285167683467166218839575716064609236498655597209517879810688509197617521442605478256904391909881996279565486882159350201351390250335576127217755920195032735794232981943111319931330923377425344402029143116340737384809935587549130511963207672190829322711752413156604229228197531935333348653313427588836014456115760254705381078000652380810220117562832798845302819975120407851248373753989334052764185488573534348833759491874871522318469854739363272940339259478305129592723727334873730977784869228124446608726051127792986483428427480024562701818757464352954651745914696955372531100314588282428036450700193024514436820424802226031736733676317539906748844147050061528136023511119722022054115543229189466541614827638451281777661133452171506390027391857701189649823994594274851781592329095281242631410513228723395043287127092590178360181887813529625723349419935343758833482550118052787635336873327531122768854109868677497928683540597338250344362251560802128105728295033471795290993482773079182009559137489558189790618216897757936186067409219646922048977582292866392616698396467703257859567677688013332939271457734011368598569839719387299918785829533986291217276687190115981927160561224349401619269936710268399399839374221103553245262005896788222329950579852018447071028341859538023083927060176768371513248726513756811004976615049988570590658295494883991215549501889841635269279067341922711736786706761337344272738915922857740420921727021876681752916939510167151997814230313232467754364352676858546893204982187032287234831145367434542979637686395619892344765254606450992673613141533064099509199978922397406481087650442666296628315428976668455882800055740757492962380874394794820173383998654758381978972932600849022214752671088507320688626932511073349525677304891721155990643465434939424943593377950336499337817129463723197289132402386705894880651774381483558311233679719988710588196006571773621242016737071822208398281720732474971389959913801074450627661529409665919196207987210361661947780509337312768545998760490995013202002774274377348357648433673103837225314262969493038830901529504729005061430704036818035819509925623144282311695294839895721996134586550347797682672446688542820641392903752437491072526085794101774714624262116629471704165444642217252520712011758921533496793611072335142394406570548641707239616177688454278930698211332877061486623234643687964133468342709403509978771169313508826115104839212692053765856008828677119015666756440487486541822708548196411016052974231908977687860690192130516313247680500483990312093880038663490741593119059949804483909509700772063441704668167702371218905426002897320265897974368501785283595603973772439220421663024251400168110898647691283207182998433239466554982006623769883831112154201107760154579190792405879470191804610987108895211037796460472584641610484790417301421876247673582971594676576210652790141031275304893683707305649650177597578268222455044240775782253857391121416532442363946661144332462287628393459757954567638935389531750567487079848750014873189549987532126076318434667551383522999751902270203403390918786124320987384564959691285630709202582369808139668895817308169682524262194812719755614669594083476688472351522655384781223944813434389893777709086338205172236553193762290392208267940164237728096401079237801040178266710892170811803437483598822888899097546205332801588073127591640098233959990883526695392097326221962073143635743435438377964721006291574092010434485264815321354417947129854345492541962835841636485017168218469423754732404093384030214936458399871648509580957736281495933947264834156490867727923590845165064559187325009586419539091096316650614426853958135972695800628866389796797383929644240883121284168270737701894816535299970559550227432414780850686328978123650269471447948714539009657385815790177396267360291053116222592517773852123587919727316166193341867353361847320801691473436175541213925018926759162220938463127851354929927523410852365477277035134338391507743614908119078256478813609450159078811510816964825661944456664168544714567837427596504413845131935016141373142138863149621789142539462158122736520243854502257983577352179551119228196891639947868984149676118217561819509737519556818738857591082229853861797776315556297997599329292988297591632841160767156183453327268395755858800477965309567488783247335187292173356234266723256670653984477350053517872991784701598053536557620521274163993521404943966809369025102230750561798343206204419334386459645028287372973407744657052860867988063485746463965824574408282845884548685089602659369715511360455800814852127349076675758491456082491535398612331736978230227004763894563670100155937124879642657006655743361018088593337823891429880254241853261281838325574368763813184819661448777536841257804623071455948931971352838918542973050097824539110368443176347407010776221468983637311702722643000271778698801443755897853097736582596994041964034956673065705926719461962553331624780352115900022965072781797644592367691676687954876321248043486150239695997312024851747004549202443419370883787383048396610268014939808802627186241099181570735007076148329602596990964139511437897744842995599541069534641400359430052278473858872942760647831549113527166767359000424366517144308102271597999308112824266671252635305959710014320228604586561599899078378175262712525054738615753736368629084481887195983481388137288168593917647149389007737802451445714135250867705791437015041837527922162995440131741415021312561377401652060831551536205258109138967575625391544456093115825702756718836579389944431579254680597356331783534565999270819863449523809148740362428189069216748380181863436744558539518106191360788407744913961823041325799326656439748439458158232972168779004979146628216720724799733921393122873426593091461888400938591929757544724222716220180408453640501386283859334740945917993593537944036577984640989522210054149082614195757775297011681738976267091656575167238134047794199310583819706209316009170842850102043961501911501729682879435427771519208371190464340005565538276871850203379640576418351665432024592157763656004584955376891806822833600469034029167637114303679899708530719579109545640041932210645624975964852738013510720408697554506364176586827267708291072277706887821269562168732536394127109872637867923121681332671565218416323140859375491017681502583030353426071291980124544944910144016306554544708081432110203702227909612917739202987403729481794513052918696825817371713110493337728205602144609879295891496952412253459364512067249665004196086427212062701419267062479872687900615160634264704063181344226033926337204232984103271568164357038568258423449158001044098725597628266654631786203716171929607743816324342353077903282994506528333277131756373242575777622655044801205484432336674894307222922752155104631277358250851050147035798997673564483929002198654468120475561489922136190622004345966060474307594470749885427115141849435203029162287652134434323517471705887656152387669647653756717555021616356230861594066229570403652440473711308444873778127570986919553124430100431236108481185523022833852964783705104803377008510916299893488889702431715654613605413328549634672726311480844729773063826599552655094729115940465491070450577794715840408139245047771356920903112032035866273932107527417914798882110864875480400815095735818632960742512500611390840024811171732437382702767876205686966111917026319646636906380546954016330084725579280736327574810978903646033033676287292468950966758496456803880280311261383596655280434890120776452621078563563946911911044103083941785815001722869190508037792112418943363471565337075493337546089913842823930333859407202227600020961711579789686358281835159162114648661590635894907756045430188837283846821763852036737352963163988846950761427137700586674630651426187707352634918023628089693218053319127170958252142658954742312392639763500181476061022082523341987653499331578977017558906641715695751598059488999955149015040475399276622161685517081785440892087634489602172688009825450356183126692485076524635940289894875045141011968795829357498800546268635547992304900023709980913531115727636314016714863177773906613755709052878260172216123600218797405238400080306705160148618881736490758031005270376455967086989761427667600277610358268657180120330895009906106775699653397906655165079481108684596861145652452297637798194924707397142494904909908638890636310371198316154226542775390795075430644338068170090788382123336300276258529364691075116058937361203759771476399947165726211742882925872395921289447255481528172988033385579319089419106224945381311875041027543374064595667369461326630153467665946981821274381285855868024128019730413131627041717445963706441175402231426073230689448718811218880437158596908391452641897533075067280471253958371513540038679139002771263383024155524663613548970514067120295302882966905092777674922610467167055096479811823969124343175124504500165845759634941823683438395581502339012177487474239734596782464844564859842655840404884920425791332703457844423719916937462686418708630576460392670530944033597355456221268180408561976366196212261261293080201778107303315808035125941548403751875223986379663453842889934072567142944861771051820047730071432907041842499789159388685770109070057916646962683110009816380797593872381412461956844986359300063477270771958124099548823410979883052469334371685623948194046401459500321003666126044764847070534670287983992293106555741724872318954590676859055844802628688587176402225414317206003774876632549781934381545233395196152106979186029246740506822567054510217071641238299225233430256778860889279007729706734985928086991214558638722119747109575057313468058596631441167679076950096154326856444518228708549477418513328628763944603304707536249023684320558226886230669545732384627384918283578038722084198085965622707753064009547138195697677534150128291839107745553778735328177883287654476264185522135392714154861480009236727579607592986131530395009983903261449944831641841449105653436406091002104838984576767981608976362002514002107223663073027928127533998425142725081074431502232978927973144392077044357605596524231372353171670960211520984746487354038100068148450104301334528060564315500975295456149553197391173254323380175111368833325854885389851920433100337476846303519568046831690420295109000983938391974821807636448924430679347698814921955966174276116238516606259227960915959969806430011635702001701971385331075143535189941728716620027585096438465108148708355292682601384701688925340450246526259427752875085845885540281716709758794830066338350425913302832072534167736383761878529984497583994263449090899783443056589565851985754366522117179782564834569696640173954383586231762286676970360394121593116902522705436524215931335184445641667424272442841843158004132798315515611280090994902207176938105237406023815009301429105662079470136236269571745008091499636254897441980126904970072266824768626580890409422863732012417351862029162419336326975739601380598102358929321614253027860541051972897908606872152314520973762942961723760179534658442867441448666128584188958055507163269695557385767909218140451868472752940358878955161884779643112442510073828449141500825616440451040802814568049410554038661483153172554595838765018232933159795982987111204020796205927665975736457540925013739094671429842522385209692775465973428053527212808727384027094567759221830898107872437766467187522677303854702544170236829236734327259808365952736531974700171468177440441266511409174733052254695548404989914617413208088516952230044367810886533249033249224108376033937133952443426644257716953874660073731370002160622520780581485834327782451214320873248351684507069347334989448499096325650488348182606922684717516733071587855489118004132289122700101768990838351346882032890909651380937376407999236311104351340461499533144999642914945978549183400644959742802085499918682744955880373761089824059594033171193678166005672078723254361266318143860726332366192151136568666957572371849822265627834513829763837763037988428509805213872417212669471791423863650125179824758367625808373620562338623620872095796914924547901183612372768892153365959391469386894844133483606004635581636276323255458294210044209285900122422457515091297644644438648091919376881122474595699297482538246112144449704503511952328239481508732687191312425428266099241084046000019003126981557981553128051788774451284120608413010173855046217912855365682289881914212007994163630788747199743143140752484518502075763765482647097234806111661147746293681079263925494142356907024597734436289605764898394245158691603905106313419068802424922973536169137551043008137573513638464101350872041312110265291220707616861555487376027755498399907073458024042031636059016367120505614882503546281051103902412386199101759983375390128292323191065000826990116025333453571139883460431153461007028105587588402440029096075036953146211411646787127640156824740773277486102576416472201157037276934665965613839141099662583269180503923268806130613570418632492267285018291981568505123037349016550454221587561321313568303864249993886222780585997629052181340170450896369849475227665034504018936319067810337806873723949561906238214102031166285030183193376803121746103209955708834277693220510973258387260926750540585648814042880979886559119144601948563393814814451113384997032707188468216848060719761814547200003818445057354660815721500985157663597748349782333115249432532625646824438669728891815200826620954763182457044124786567216120756327975683331596416500598818148434431373196786086808084837678997956112741639477671121650819026371193206307891137096567834632559075265096606529375620839032228382688220403949574986885478851405306718023922346785627734848368570325901545424523190265664844152317786159790660554737304543224476289833696468995091516304189473204255581026541740786189542681678056243743234654688961655198855135586363512514970588632584542761449042515326525460270918639349644162599491224099206711252301885967948475242773495313367849980634493672074757729842973656370484454568244818676062774349690052374555675507472960975086481770273207090805851124518699540002670379736061134151415004173577995916894682908568034856136441568013771380406831741698655726259620122791040399204851102103472303425937603216441209090191845875308213708154092219203795248411803516854177551612024004987328500710068612672108836650758708052779578601152164490731023345343572844602898204591083850728765547820406443205596543511896061250312405066998559503390735911029220522026903542630016065652878068952347495943615562068614991157225080167001447891641991535488680444423045305363744911309950061146094245567189569676303483363872522666118303702312103029627329697337172606525673806511713601022501864210170128354700622397283891117676229285087170051486468913941942421620296206891322155252994628983664795016769486946334225634396083065010829453689374671767870913108248575776945187915628519593028071379211845002267396212798845379617813549027995101851191390641686299640442344571475230683044113016217186351986544787656258424521589098492599272720362645254872606070478774258426041565432095711609681553325456168259084552935043892330205598405861341729844665925957440804968110727069941458683347049458949851040660020246117599419498706409785734849215698568703538460097659287357361093350224673646714918806517992510004115941281016147601562975661205507617603369744205416896188560536269993876189135551839703047458360685528306386975666304756810940804833587480279823971236925966300039058076089625823292863737248714198405144181809694445844739573460893726645031579138895691620136132209593973511130467874810080770464105490642109945761628593609691262859613901041927433632536927737272580375525190074430578461952622039463643573933561844844252940733843296912022960924652063117162389720505383761386850489322067419392549330625858056248509787182885608813544647830574699232687365816641876929186138339507560329501972441415583925084173466677792640309353358464388874882781043507201802700571856707991877795383683755696493594314259896437599145386839556679003735976724618403536958519658823626512909987799095698313594553678169209858721548529152456630864478771312839924149543992501539031050276399025801877271912836496730990422695504522599322850566306873872937952383317175716849023620869023648725799673484428206365777775959400813157375388263092919198669652631966326877892566781810515938983838713997810285275477081597184503631210641483308955892858830138354165199453236093192781777887078649881220026387094931224930967957177425314886646591173526814773927541619746361166915564971262933775998874164242981023652508550959109258426512129714709160760729529115883019237917624031907226272371112467769881045913854799988639775850842360470602614467237646446399024873382963976347745811219361591545866555787983175977644624882405388046548426084251757471012160903165455677674471164193742958223379347093947796521627303928545091775146726216687643488652728176881065538314322737341123075671778160317113889488993629920675310021609189057232592856772512230143136321349373536707168303545868432177672532177568870082010261602710756771128216876813726768036400484446037436627232199135835622624162928783110695704580548827989840831440784779871137164975998030582858979380188361317044703687984698943630510842840758684252603832578302984020734272631999106388468118949555304489700661244332993059133340269239344317163201482940202825350424637682005758471774196673558876249395171300782484129102096593724588638453506902486476164946771078020516622029384325407700969877061180926796435071383739012751170988016160319777812700861313660029996444561560064727990493105925755618950323399514371231389748481691818169696543903171849177890607963582275362192602837386593793972512232205767117795597832986164909122372723945768094988424176836758490300980500162820776264509613341203844867005400865610061680555203821600458345820013353466348896192736030265453210161180159853900608319878184622165978346310032867689891807145654011478524239404338257657040660602399563588182546991796159825640527200142856230711372899489524579957543278242311815494664662764646131368242741524593188069388653003535710440132008988998138434802586583599835121708059605685008883211259352646683360944837057141098960251297060689057680415534044671068006127965463441257902192587720138371031002137430695282570708453165782132620326206912901803923109599241777648162506083086136948844349476940269497331058901562694930275842473749954751256945299459502662905212084848631941569945523082139706980700723911498908086775192019751842150722114758185889882092504078377879404990069857295133785822373826638738696939808975336437948531017194425743510812471240244058532173204233864441098886443842496990128140191392863475403311532803990190184778091357687278002226066311098140362946581416864907371376573506199370081095878927895451258167639692381001827592387703043370071396630226456408554222711654671545585302645676225656023358371878571278161225525993803121109226642567051256077165679109410998557555890715687995475487659337611736576294588539820572760732136728564867383617592872417327112414253349205495551895680508306974990398605336594555794353079919030221030497209863083067563131300945217699961797427988758565434907446966547050769454251525104547333623818637546316690553690160745245127169454271486607533221577995009942441448143184163053332979915252954556140880144505380619719209726698008378671686424334962683529325879109959119802480030332645614059718491600629269237927190256116592375423013151597813437241075534607598883013142995264305627871840091284319263667528202828571279988879738282524849031777455102695508253083683290317585332165384536456283040267521726693674983796988385105599520233647040256658482559594632231959741173409212615188056333781623348119497052054425152069857483422212964334055156330263834028465168068946787129450243223959710535527339264139011103726586378625159749718111661314150680369732584389482487686455751739187428504669414070472669557090351285798587828575665862892778447761384011838584831138928974190312020688122378941010113654486902486877972270775779989807136942900008402722545935673922093771970297939099606004083965576712594718060913485714248106087284149359418630005097924446521361438908057618631382756661878005069930215223204135381556787427084772142473699610479076802081204871221023492622991636541332858086469821457925229436694309847139556204768231931512345920055448450661656538070768817894213044689267185625490089319935388245963503176913674006610802642090103738071649353210848793292905086627962039609469635876377592175464960413610209218601766859751273630822931637898205419315137771749878085475395921399457547761046705789875207341340616797698626030385445274040915591571164850324079118942151475066016884336767245507019006069014137490942824004145051510399562210134548158079766858527683069590282072810666792637158161251793581020407035722641696513339666440542852205133900607852631866648324650231312628261188757375438217518657942506059426198399116545297858298135892775163297257067863122815530085990387876816730007707876153417465175543303589676558984569860776173916222814481317036985024381539679129803202523004759372238036634628874900318559505161597528928263219645320778315981938728899955893504410019140256752750676990459145994975041356248831816239924696935132226877846387253693346989837880864359080628802028453298779436230041060577696602531361864810231133971733119150829258850046088567494015760792341894521642219133902919185311897933257665221734838058493309104473097027879621022727419676000206301209640675039201319851469314300303506706273837901659150769013202041959910755051990127621966885623827099589317048676294282191990100070573471297582623611441490086035793422393979628635303918504450864214715288611186988776952489008880368744681236291278493037666462312903389487888666282635657645210297206984377704476671216826783885008113034489730580673953706252581788407655306870953064226780851808798454210627456640923876703979717608961376810610823624131952463423022140769366029921746672925264389798452891412266476491319776121052722512707295575551569456286827502502344254683895793806760416908109034889038364532604247535704739021491650624945466345431304989350798672904740199127123554507939780364820661525046547331495719711881354404882320628611642575851572537552316235929775729596895040279959403524716564731081983494048659552334429619821789952940538211977664620774535123547689898863553544834708289637474706957483701417232384202263492304772954887799777522925173324706752620686956611132685816638846622468776730907209171631887347382015552978492414171096588908458504102981437147875511224133377376788434969858315880670045420390029318278697491822087423499670952977668599567138116593237761205908464712293248431441565394433401438330718447150563097857278301766946455920539747759174530044229369116940407151704487072671643659274199872586466001790594924990284607136755266905819821832927788433456033440160047834112722764323726121597142617140332060040855025149407211027630510050006071819401264354032445022463204684637798488567186963411489173480293659073220487483596838988049444484069203407212996237283728987999604270567213800233157243254709976578865943441992817097912420580357209095115274771658817623070390157134275769537301374786059070910084628502100317894557621198963720396799021436477005952491025020032152325698710471119418271269212966639483190960819928510534921433005324718047845539072313131194822992493862152260219151519889832719108306650184337780904974673631281220837223654558936157210130178002026934625842962227001853252270571435621850882477139693634743451586885330410515782857928227930584006908380464864118458841629551948083122198854676786834656860968761591856292238140325079471698794250348998348938148409597637261568684508939277436144870727759558855403475015554830677480633382869364152384888160684699432854264707387903176290381794570776194984054146228403172644685355316756129943551046449753404353844552015363193377789895475855862646976995029473106416809954683595313992590394883687598853143467347675876685591753964466110052449240932355332046179998175187270575098860882794835889956393981961635821928753458795569467284237332215625243099401587111397145731324009980804459540101549627061623768106203357832812150081471955134375968085510020594093511468075332509712427254344764938177319698788321424273323190700792840354358742900740478579746333383713058498026657469197051979646623503895142072293898831368016815483754343510874818206457347460578747509297838840348422512618066531094415257565997713016499790144676073003314279348095748017556769345860563391785562138545075379881369395723455937996463877698254955698001241872498150867950324669562089081804036850709822402153789176196649852849160216739241568400999332221601872988378919462726537015603249312767411689115148441299003308703101064307728796887530433920738829414012264944001770612610108893874439127847524084591240752301076273236014100239243097360457388538154761228903932523620760165690305113651112250282878585805108021349246412654246583400792247841742478677322922238263125491799292071886247388684935500722743520614560873194028357372998123054371433028149825330368871652858113540541195647706317881564341064024717140018274216587578680360010886573339027830848532989400345689278571820277794909883694593949814533966531556234480516243125477467580114781281845061827334513605964333695105036076278833408829395866399464498757844395266253814492806187466038519242244912694394633741603010145533843513443866650448791665677898828136464337806397534360987519539376084403379067314941944271621797110969623560965359605197132754997553703323447108203041001803201052771662000818335694176879683726275656792103521222903028391582050810310890059702562636822781612262223321536803481120530248799716783420060100723020332840594200366192995298233758866684947398027275551997420127128444542926799956667725137638059033301010558795838906964554375137647844548525988825289824011805305713670561948028159751303950865803523509540764401357591109235846628626366901082145237792532870852456772103578282602163386030358129835430934662262217843132309415242902703369001588133005001349784827758506435356421424030739922605752308362212800269522428216430151891225783826121716450216969779340176145561713638016079213552476687732137299176771893943721383354426575191259123456665822126358233596034336611376629927504159678328045286673626548112001456324012113752576145207366867898004030521213586868125843411889217924790039218528486253103445429327977628524481470730511256094502640688155790228053239335776368789897799601656451039701798648776141742787222717597928425569517845954610351720393273382418486890251022601646710841862693494275733606851002741594837496245202064050077738655424256790144923050216724705980245998756239322577887717186131048113727319846640704918827955555855872598745257870984105863311890145820390411835973203411424968228268026333975147617031516408196880433938643816255821021389115515714042446412202921775172565524910717674643161606294282960952678556784064359884224291545442756372822278288711933016956387462667968543039811845367663188955794787610236350078457166612399924045311527766845149254978219652873844105913219236325194763498055129230571190734027013491086972651893201603229975812622648669052044272728895981605572970900777788837811770811688284188863588880348231576824309121065266361124581181912992499451825148908649234481568511312243559976023922416121080051324540658679833730764119715853824807272266989182578713603215110119661851621498193982529308902800920401586807036980740984928532560987863994256664111248211427578948789003359459237230899923691283138050520931895088740641857808057450577015574303797625420181149128678843027382246652867187190689741259236823828269017966987220251685224306455979611963129279153782095654519773303263272876253654661183836963449322720857793536884770514707112519528737934502433204619128607517599161344206017356841684661682456007054577958779251657333527618527954052434883668392252525430307149118004365093751877204036561077456040159744135004382245267655655677414687274617140960342067772509737655360810195672097357805029793580941991138697127862257678681370534049174659237170063627470622864403063050285752140013857402243632454268090088227453647560298888971292663921873096439972943665219886440006625921292637629448986984729068330785444243686625790371137987231299544509999473076420002838885815100247024966674238286154570077753595033638657700855310687872500239933923552633217967879452927663805851507873358031272304997793464174705443871735114979230234149232404070480411508242199982564256445866112774737822211788539201425310874436939164299963066516272207144452604485783633794639700349122277109299017233169523463224227960835654151993604354365644896787569270983384831001786895934026561972996307322230204018580435612132125837946536098859869673274122940079221389994366391448613268037114824895621961656844873270712335988649821518462720207759497168387016565847888046590625940499130696796286645358190003084636348044089737371467001260560977901221677178300690791071076833684180597325245590210509609241849195234060832910718662514017338652062831948581117274405024273731894434688791509951386000250192815321926961465395689415415150484454541889376769391518255517876460901219216741937351277047127101663073232410706575692625729048928333088127297409465346196927596524709801463202221880070608649637404469748574952459023628228107969405712157936743729528536334655431954210695353826816735361005200634083915744317758999433871167619200518806862040939985443169794203831969568953063469083797772705178816527715062188000375525838541219828257202514298995721826945204782742133714462478073137905759059553813617513504294981491471005085273120493577502317207495025318621021670660170106542178056885654928480615687696850868837415511426515718675721429890519236492056040300206884350726542263354558164773752620385733154362431751258475474725225469607282116448595709835375887247329993562850916489035781860088679610136391092695983673270309452370306868449721382627195564137773534231307404376537282269080510281335310658608497212932762130062501506746986370681779917220816667083394509388113558769832295668613745902523657699420493694821014747598241362081264875277901739198519471351903715579967028541460188248554124838184141180540585324785409869319707507097299637571398631575576972927104470765460971730930906817093376281747954995528157476015706793626516350840813564955029211674309936585463885509263947275943413398491623485521317216245940869686692752167488468121997285906073326171076921444301476743911054635392541896315638645707369734806731666151587889014588705550882040220505252161769269872279805551319352898243027752802892862056391696874069293415713442768075588529943296764809401429838652595754358664492665798016450771658702912498445254465779622870367281243504141022661359390830161160060280994338354006161107924899945679252253463927412869401762094629276279747310871521863956086977766661307211391906050645731597629158832426613708455773838285068414607882661080388854165808584847805915596709748991813716382127245407490754217207147882994026607278487416778693134280641046746278933797506076697755496331294421651876447958605601587048462489630180105993835645417818326902792050562698130442878761816623478331036221186430540851135613233657810401284994028163608099067022653606484479129769294253014121334696269581202294222787539314304800646216445582038570417883231398998285335368629292546523349462830509957739281102396278427351731135779180791969904096462660916852521324670511144436103125426382342188597862644204943675667686679384543065740064213585247314544696258588665788519167742816199170024111610935896210905973494138252745920433052120191518346255532185486408284436056543692678095591744677822140293364838677881235328097316947181731218023394131567578319490228497638426047355262729936041857777333610887342542775704713360146874527085648199858976636135710355055628220433485370329462462435000824754296417879438581198256126655309402631334734170559149908632449624235602642912942895075672514765937234692168318880907000903608457384008416657900845453863561761701485574399082293356777387728646277156703295507496517241483755217760056240265457142095600349825552910641609530623740816533691276310890020854799631599972999662933148137128400805810194544840638843088821392379922637570374456539656384304203232052719308487981372048039036971690693000584751273961704236972495171006284739547272571519297457433833002425377883377720153523663782036663876073781388439176444971331884338659658835857083957157263405524874275541217466146430399165344538439333029610798397018780016942817595518561106431655916559787217971463943785639678253730316636265162739054684252800068063748781711666102438154667276794084275343929834818458575595308360966181299518759306508600952985479722755839022970373238211514180266029330363008978686352311539548183862061503951321829700938497503434807161482758279935373217819128799957284230768907480907324517638554592574627728755380254581845992662391515685432924959451344225174201125151034598648711048636802748951498835180198338735945885207536962162576462904801418319643719218810465642650459161819992210417409655317889099071070122031293114228845096652262785255110026795582455692034782541783413978383161050871707356339627238956802738145714087347606527650635055504610246569932911222184145557441021850279190547206024884081084264113682992591006437701375678863200515461310413950707401790859205208819987905714653792499301220247805895277896169288263727801490702502694758034327029870319426633078521806151747358569419584693547606035285644150426315418744690663549894710587373274686733872389512018606510241226852347547346636076774808657134556023199993467783879899870505888319054935687162065342522240319134086015964436847744394484355785864401127710321272084176217852534586369830478701759277660492896198202119245677580435333770875264040695484879838694894854721618978872573828925382413051784809665392083580068241880382729386271031745257647492508705042419104784156787319000630678877127417216533420772172841655245968111616942703558286717431925337822580206136000569048498456181546571659366400546456632260349657535500528945863120905922272085472845082962878839523376349163758251878111442184367670648240026569845960675938595629461271367011961313031543683647773992007068605483211392682612822769402672882320595260803355233100543164489885436584089341660917511070827890654441602244206056244040786735376812550741048632469249389409582868999526686180184708144254136832844150580947234479430852678645299255890824865790234802708506565274675807996166444573665819211134577796812365452897099617062539617388330529758600924369702088886897983302638204316165175896370985069950556368552122872997458429382834732616870416629538002129890385236936793064270874085608659120962989460779476739218036896516676713201090023938228792757186475698664691008391552120089287874254051497744590493820465512578689739192515370128086585965261676758261248730068898533629731145689503279591865245646670680092801208058948570314302992405442582929494485656800390604737277534285811346842615391931178452830290393341726646611976891563771414898129138314478897201808776958955269601026192096783165151290455815073156493297922547565733742146408634104532090231436301153588265534741207034490374953284639225863820677158345339971746392587201499935257642071777193625288629065983437958440379894529934175998474548601448423828363458606433536642843183924308016709957682571802016227575609539891966216822514662021582582214672852855628778400500125028556858517724255421545542843508355213722799485548797501015248280235244530397360517852913744974537879890064653798879115732875126790731258249478123845101564352541740840382753005009870845931720857770326943189378181549522168137705644039429864537677626832520710236758165346810930324050992550812696439711894686952321313837828544963104176089557472196776560879687109734025783124376445153069088303198891192457394183265912117487105137500133781779913295916038529227790421567994500384644438699543956298030947660590443980549565512650343873072051153659038376255970730045037021229266863213111620967187559246118539532007554083852930658599496266482227662675415464862474272530962220485118131219686394001758738283714187044199614743497186894644832319152271233630939287167382824285741094734371185622421676999353580089514651523215848552689361439712553670873602540474803932067700724539908483339093748679114554949985406407879071585112267725994699075667876588533447358921492979767176509663745121312561622092206993010883332607360546164031744453335164426456051406797289180369547861328856910858639398734832859576265648003802015483563963347964516097506285248231857751221316926093467271285973642228401661520747720455002073182785652806354818766847092414759323800565404179804447881841275583683879632696774709328095628226975962622232948663655752854101672923602956546481917021741520044267093119257152816405437407543234299367454805636535561252350333595916338542631676971023586439555848008349057598327300538220678225890076428880956301948739098357433776520803512422177894540975773794667218837633779653098875851176175631502473809906053190511952544997866429069101930595870187830385709456679504575755519837130435277926023277163913415088531827973916782814448938013536102258765384944384619201452263016364729778495665418920302300490517099183512637614997649752537075872552480311075868355538387057499655177114950299649266705634186923984511487821400300732057870055247514857161841812276214187510928229420558596740419608404382070613270546220203747367516198413324366168408135453816117594204785553393618382924788861219190348265905953304754057622562574457754150107784998035777784528571854324303652519751805726325783541955373694355199808319249669254312223527724524270427925386187130766913116373750013769546390012929952184702800682132010521115291753329967523599222876093440227853539689288472102104358441505304067442092566863070457417525501980309403054700031276717020058407322677660476963056476206999682588273980101866042291446310159138251930003755670400484141566149976354267802481858509277022167114144664774577836965332635413880970081847579131234981470836735590539306081800119785836129102662014219039944318040172811417132117736408414274273737230134762606867921041930154220631788502224415723436561234782508465752275991458961792807484432713125861841248217245763222425003314034464970278071350843345022577569674279355832256304182942073055386474113262777627936072910341584737685246468189888909920278365103180860920011340540237214657481275457792126024777008013324952253857679918958241717564926887244234570337418619703292144780456324560297534740375105745373011233107931860932260583149052798349564026356170307702834950244906042573157242135598909418525295851166461730247825822329903948245613226450819876531951181337818585770817491602837465576106207020628046308748886000141545160265418387700688888266155989200078771143867733961969150292672286408601018635728458876938728041789311706865738256452399499166800947155793851388202058224150083762009061597903570957136449512684918601792263994942723119447742280912768490091095764248459097452529378633426714374537707893490690232794367749337984697290911287022599142925781300320036818768104817727493943663402872272676413473315274170364520590708478227891710593601751311751824997129781801010296179101311081699557379484052699966670876186329518314816235220762496135282039907007915559620443764394917308278112983414254931510239551033959466115272395653774551391159668212826860362555710910016986530622784890216589253896930961672911402818017063484839472974704671048095218903878853817350264046203204515057694247526497520146299385431408954759373946081875394449841546969047966423286540824574128815882973015816902050887949622026610217511637105701532552232034359411805932614054495484662289775434677917500676588511105890067927699025664813473317140403085223888929447147913379539185449754802795743317071997196338611294763681917564279460358415629696708709278645469331998247042823624175001844262027281327295473380536396101985014378854779398010372351575710977148958794876937289242058879227532900545096359716769077427065266328188625735283227223037856071476257719860910926834222527315204465225151063487306252349032247974072036060924355677570110788041878867883996207651839070016939708468229757644917739495684355871287609053684968005993103839037896900661657790706798520956502565129292919390545613802988646131900362492378214608382873827904358514917715731947685440330325028870140135723127694951581623338456907929085707446442835896063954876980181673472819286156913688984119976380323023097769545330635124784431579661837317845568556157814559580888344695486762185203304455282458329797423812949803896523651871220195420333234203222363460905701800620098687563933760727144286021404807418287692369135847893295785222464294738822684354248057572370597390908674425819340801504756928620917861571848524470998939616452351946129287267304471355378905822544979881656100064290596641125107353555830782281320743479954213761696387499312246339278417643488054437903273292393012149876388465102626608885928122408289187274879996868793661585764209119115139087529577459688094786562025411362639420961579513583167996464622086672926453138182629122791830050907838793792066919564438366928321623571513374173894225090597956808262885416029115162339615859621967829466732871142995839944962317354613637484497482316354211453499226240612790788830509569966202151229403497668374135044538732229186129373809088496292944646420132667396264128514480232677319946249086878326302563023942088620945221803665015223842848304093167818471875379528790855432138513610278215297149331680318287452662637472189898705959632768699051811352450534256877351644317936492916103038255080656478220716502979487876486539950087638868611093923325301068039105460183302002210081860840760173232037508260612772905742847738636707416064666407255985045089497678327512472533478425894515661355723208713781987177729727374576202867515067204744592024350360809120612182879234716085288080417599526235360317254333792425901434722141633720825062339745247134633295572099977006353448356799175039056486112687797959471731869050877817592696903238178434420853928002714141878843409070999209150038227442996370836733890713156289469472762768910506015422876023864923795786277988328955591654570675323948931885117208100944379375381526366975158786116671137441124401533806180396213717666847155382456172202318135018218704522768521527064879452321818781579969381041954552448236676959721830174590092058292984729784310828503465899767360796536298738898830158843983406230315765839316489071368165369947280337972531351826723420578020362528246454576896928450232709441872241345014625464292774135174996606657062793722105349223828643810401697015486421632236047633727559250984185076725532641792731821710790665806896514493983199132081529108818000956450239816898373717397032398366083313612221194685985678840945552036290620911831114443030659829119117870251057258304101892484536501980804240105187513463363094388341048929907684787811164358341189895956503733938825777998781685923729466295913221746858075691301493417963410284089761399478481492830218508966399212917407887813806459991511584271546173692414097528125515511336217643735593344345729116405546793120187563253187627558140368509848204412013664658574530584200227170151136879654452431071702732158912563145216148321101432657198744985456853736616399862588944087721994159956854589457065465579858311176937972055237682008151943965291134961580186050706772171647175447131847271564386314371496651291910018562451931636845423096992159780730939227426341917398985847768838784361244650470719615563755528421326206321821260747233392630549000429919356287624514484943810189754165351982780354883130214714889243623191726273388836298102020544047768717613806341946952591209500209700393208980475729664074959394890417645356759599953096105780153350401098551718954804633451394580197251894758880231562877638640092649204724526345869063038168342397039263971590449005720726259363682717310634154453236402019758185175188788071095735500799176370414580900064637986663902305764136191064833500727141502420482984867964346154977664256690675091418781611080334122261627125249066495672826983059636271840405227156316386774635059417676618419258227857158615659517108505516636338824817187459263643614787256216877983148088901525173619575989535654342272871237466147992210450725393257780816274492692116526188596278467888515794510074675555007554814250880134107038295317797749504190577667132960223853586849630757979903617128530443179794469298685495291011280337051412113498876697846727822045648183900773066405842020017158739931293467530746806655543138540843863079358806389166525088045878967832488269662371133702274516114437186270598355405679574411325628341893631064693315017932805109746424662180526807932750296576116390216402219824165930193333094028017458970194864872811472891504291704781121400182205898983955432443171957407750211642324422899028439746966008021628051716725600797437274047964911607659367453243624870520315842418825977534457389799955374704033132425675406021286080923957055783533291690545182070509411362850510061403618792509848148218644690836849239143455299484554512765080922987992292219795163234094960015249150862919280787235498912968090353977381231757072137314015488402478595418853692574569201739211410797889299419868439081344024480498904986396862663024423615567265046760662373470644560897534388306422235647074748302629930782541143698031964293294835157059934839831040599221816777717039322750564981433691376521175413997099214471431068514529056295776319698934692684203062233174972970791997351527480895237783726798592916273279689833938076731788037189587082058176299423308034968232492184389253383837041964216947410000373757475166724511254846142082046059729703007633928153436226395742049886975074057446276252978813311473667277127561864204792222013730578638792650467089001154011523131575540746762104264134465930652563453055240675642959955978894227491024482491089997442716833837602786869595568613321212526967466266686759117447313684317805171711039622145482833257174036536907276926308125532233716707865476983377908733765140426341259822225983921754841396176211477824929475582733132711711909726584253732333864482059711527086159626767731781703465027992032635147577902010923642803158274208224972796073693593546641883232706851015015968398718136409128212671874670947538511970990988087112154732800555789578489232937529027918030409467245730288421769165326765301691499570865110250135952849310381325684322469466197281334205685669275345801526922262595054137941727421531718252351164237507372657966898454331580495856615304796466943061819471708123197653696857375674294081416954043823487697815440012737550067535204484588426113252243704251495286017511428804392986704074283732642520833886189822052723888058741479195442245460678078663094550670783742100225569001656115948148187536585648776551393208864325434211155411962910064313190042072293623572804026143765701938192694535309503896687716220268536176460333263612139843216506472283820172399354558286294990474058575476538677635051298574017875579398711439822016039225231905454026965359026910631731742223000627722304636486012960838036425765383551041248461383535991750556139797427711613401210320485114863627100020205615064015122359865722394895082433807190380224859332565255621179901995384430487641734731247653266688552922814966146555175314831184155784727575571453110101872596795025745410841448601056585544131143624610620378042417292245712326083172194254463157605011309009589574054828376323791433236072541249005349587850887012224846804666719772322880231246537752855693828818778318933602270669601317712058339126956946169603686005808251419220921831965325842033523483844124503487036553032519928177619445936686871649648021407448924752526612282604535002259271856532232320034077537622961343385183206240193433655594522435830845353056500325245173065310184867722694869923045102901966208113563868525047349972456533074041334146548654960409460217681739610855455727664136774160361520950939067100407623668213048987393991034589595268009589453889918772021648412930767504463888616483878187104864604882857080700682051287065543303039851520945302651671980460454203597450857966475074485259400703479912898475105620809063571617031346708387604990503841796489000744314780742455117198834369309414301788861605088928993384529257413069540988260293915676899641683365739393746149974801357834098844229469139525833748387283884313241314444144576558198950722057210978250015560241637418422877977178029885250328945244971301397584875168386778935600952669008475402748969559063628816840929883699276259815721642107166940614336708519905498425039744207337957151678198100093058220809919224371694635964058563513111352244692301088523625467128738776394506626553531146567972010641612660691269998570291182932583594601301059619810037959296259118983955450994137696225851872798998941799069458127337072800825591453219101354801070824597738558153387479074073328336731400284704793150918777986860847958824100061263665719385197883740136570975258728012150627990497952669288472986768092012288016461305160585063587789793655664102924250847933325211992920635824263705869912931044423145224820857201706068315391416368565441291008992402246513475334966586620312717018873024222419252146089488418713747604669124519441862471232128033939523936888618361275669087531146557482073735275057501883732025471449684462554517258227845443540617699520715159180146401381900750403625463082864348279139609034897146508928371154884801280398926693064299358261466242785699698492084677433233871493973205468291351565005404009740114146244525673437157468590009497610466167672860482307600697564894268930900533024752875282648592219586443259669010185550557833624930958380807165275611701025796156307871675986166605329906977983640574774123081709111305754189519498361389618609085579334983584887243639439638805034164523522618471863851194200379046000729533488040846146494995422034218952300426667991461286371812072556120196561831509472108431909330402569914902514618456911624948252503857285392702121895673351909139248991019844659904503573813885610286859032800193240306999099777674524066293595430833874296449120489848685520927252911812347624804285291394804499865882704333195623542675598463963437534213484047619631908402925800538782366034386410330240095226676454118890192885756774569496981482351841150677037017718660584685062485974562414739515092271834321859522276842411994897674353569473598002903881414328979692738617547152137278634813242810162029550691449994722407588524763988814372402579711670626468982086349863275791714152072980354172855156093285634348928475489629344553937452660431374543527584821614411224677403301665320469655488615450555353434450754903569804973068780557665965735845920111393269773052015775533506046048285107864882600958441662042712184935195887420412025006044309717560386001801498386017343714307589759239258403703405947768707853539132542431350953752711898008152146125808968663850799912013290191854792371654111354064266869213495963363795100648962538435242789537267445320633986545711627702028563228763316976049394795379392072227034118436376321216952276061240953361370416391607170640752711176600519623912688924098954388362444496137240703920034670941888024642637184393837130152217680888309889084946827406297767230562208246452934817070051369564185923494878197212640697063531415367481866415592331743036729952882897241372923597479472947779174311221491042096871513186449873610793455302513253304347653754063947375005728574065612826200248526574761031435841075115125289160790870824771686805411558657109099173577205186680889654305826999083814047448692253248412460504501498919767290849867013015625163786321868621978588742092294656794583971199440168011150572233540088102677080047740114559053103065156670476064197951439710604842075974733070626558083200303316967578964545006522065315391152430377486125580249736852517410018347767595208056100466790460835583209038714129862600963748540072282182058454411748131079152401067332915556641371059410665202689507589283959075790057976045318064042743688146855580626253882532761233332771378567617060300622193385777290976890952701726259732325146988451819503945151933187752996208169223368232889276678116194231403555933623548697903855805401837627909103995629275059785794566831257421171474634430998376114581554952265068217160030212247762035359304860074134268515935919925941310904710306048949639532218546355047981846391600132438179943623502136009603127234253709148156737272098417714503578984786457718946162985607905271835954166495094152354781487643612304895993735669838703777065754893041260412122642690865676121089213964083853575209136995534816045549420140408408030261215330545961297372148988053928894204552226146139686030732104709663129914761093970339742488797646341266742458000132087255675676462753489876968212614246817321339737674329448845168214300951612852267023641337856498794533357365550377562745815289816140008464002832341950215955838970031763418300549050050531459465763599441251481232958281168550526709214564919991697426828208848082295016844886438133335037750175967156132719636981500285617899855745018200247200279147858931978267197975311384002526860778032123097165705277670767239434062242103812728278413374416563392373549540220772812107714255040100555933377582614415518034406254295668236715005821281367805900631480037091905907011220345032332639334715675743676594308598074367028008045933922196039714618998242428574213240171880486892185756931951481051162186005928854203820249485852269689649292091449653911768879425288030987442255623772125819901350909358934515229417469027952315712967204736297843520541328028048886768396964917239495335578958165412287714572201577892967559364728791043869126957933374896165987257924902499956442707513309726351867223813920478287243701403470056873006514118936123348815561867871319538302831668831468672236105897308839250449603771252789238229179184477805349674424478002467340209157657448958127373377062444831441052179560681046208397803813318784992158521184454162153726059776706868546142041192582459627225540757666398546384857404180459535980693078201949257545066781926502883360696470260794825372375986225201680441251846108684104805267380050695092012630837238406780916880834831105490444313869271706073623941467584123278982110054405934807228270470295080048140509190934542205548399142852037875255689232493059038421168937797563287772155426371907489084847976436651690586389416883279461713812044918738049175296013741563708431362455879527909233883715176467871830279841197145093575414523589576032115000669483221557823014356490711635899635087179818048803767216183001698367635325388116557476052600660075219556475629029953587929104147741068644754331349400088073689752653713664015521073737066549444485850665081161012869486731980502721758380544535219784314006594879940618899635556482107838738200255453408563923629188035093996605498503297433541631276057332026548803648772139042671454412508398013396290216104835674782305938148779845814585956573691486890288015616136840291721354578512820496342600611340279160103055785914269171296951636736120610165891444085195698135362098298991595412851519848646898942005686306775892553773164900825668928630265740315715352959704217434509345476890549241315593908828544792744594585180906715692287146671980332399512832921378189978065984125962703188387675011763592743469687911891023903060402490116226624162568748025633478648157090213347948646830702725644235843465491152455184112044860619123814399451617920698157745589389828239635749170248984636509798713149740932218626437814128764934124964786909956173701829069476633140255560533740602731223611695855750342125660256601347810175689031321408098415902771314490035027805321807916578250485454539271310205448249780810287489219551608525684620702834768066434723864594933082595492762199671418120199508801510582443487132025033303131690440465606353995854752312854102522097579441389018895374411590484266053605441973901501469450673399132294930152547875072973921342725952098556636278732875007629790404362216195653510116806933343948679230927551722396336323855665246562223233472464625015488330804374534671126657296045795347016653348913695924729760606277116476569994996500246666085910035452210395036905793083960660017517179118636119667221024000382943469654719766271401164867371609306914803959713762933712722580077313278350483315163688164505896788471597277180346415536540861057626256679933044319468440329021400558830646029995959671412418023463519957468711049762809105630533539921999182030996660847573019034111182287021748473804209480661062719682861172033499337363115268606697716031769798465159036501188804894557557350129248957169822502305204214513610629572018764274661934096586364850182584395937773305791275468152488141894207033762553688727720056629727332659874553666880955563558975257057529247996072102918634747652079227555874022144583796412983300322117066754930313454764319344850142714228924309535287511920512025832501149040160603123940922545126506476048156728883819725608408003236059332803042922899823533124856303010650097955590753322979535240817011790702822289938941699605993366937469350730715802992119185407486004905835128160406246192885834180814642052942948290864991201716328373133508476590293319004124804109234134820182628434819699602040499817653956685339006501798832198451858835082402550556676978780278961048344565388870654380204972388776584252364701557402277796992159175709871626444691962687186822791167794450739966938936137274613395819063757700515106628429617357092180082937821272638339199708152635558433842534428734754567356665727742012134156496449308759557382987263315567559342094721144280266207280928829538621577886164147211114688267591730243793494965903840944829855515099181720401299993487199912687382017838407661799259919556330863046159209910777286385380941515182647061962002091417831477289229036311771065105723569374188489180343662853318522680026372457949844278141959003676900907243485029160093052307988780518327793666062551909199903234791966550335991418694863836976826584387613231267436269235374665918781229048508824419208589079055693110607785191296236384152895400276174054056488080606509803142769428714659432888864660646310635595103396765022940945083500009120698233002098136960290531151992000372398123870537828269469249180959820964370295206468542233358077439822075067854657343710341877797646165179721268683376941972087747481341925407906596133210087633941874176377555555512078923479845397383960722291254969715320190232168691230381232847321970949136253460414132894045133504987765506352941306285640059949834972695274223163010401972335797872079096648471476087850287258468121353972667267696387301448595932086568148254739941431914712959096141306323255225190269467649878615631755562096843891899973805098122440454078298666914652450327206784800963167650029192516387833626328752973698572947353043681415236895751211517622384328502829319000926067701084557846517686454288569594344624770358698670843374112539073027558408147027958280933572301027945311890951265378025793140407947857348064634648338912551238790955520361124732477556693268920575619728762523529770122104539723038534029110976392028908617154963741980856665320692179070027998165766174245545063464536987189250441311303737588894186513078901359366503967668025491752460609388539773409762821639413617791357633577116908765923367396662603942823961041230802936757159806120092556910741066642748039486181623354826132651172996965616686928191486518315112633668533086670542199629016652586205464456643759184335025800848109040568937853659867169735805340848356931791715423133171889839079775615079398703004280218830565037383955131973575910865998097627943481670273892343836104427175634222317861957794418661104537470935505391965175566210900503251982532367272022456360427445406985858397790297655904438654624732786482170253374405191874791541417792011927925255844179294294584672513708138848407915104500511533391447141062982638715011511615242951503203614022524026985414787825149122233489442120386064698676203658982007346584651440032220142320951662827325958955702552291505484453451304039179159309839685555610614558446009593218159448355703667294069983116880560905385913636590801209954494226394552451948152795059061325533275436666053892129435817998327277626962300708909010798009797107724985084048800255167062968001470815453883239091262188203151573744143894429317035207607734829573913596856261603950355817374940224239728948742667542588157329574382278628709783031638768408557947689316063880574647153014121067722450724205590927923875802786037395023331335885709005994721525219282547604889906248361865724064043384668682108320310901700421013380916922236479051262300481978174834013999718909519039176685029802029103227421075590415529495814900315062835738078546532856374798679515620689550160726304863929024241538941700822971129439258636287120636829834366993134889856983343826585370403564441003265778011303869783586577012656993977144038290162298860240590303353670817667771205148876663518766852197050356884790254518339309943650431560330243630269736488129206481457681038345917139147823147441685689072828339132295581718682494796830106733145535754749736969391595318384342877753346965581674025432818815251679363576862548540261018589931046597516109901397347738587449814076188063094291947485969342426695832383587201118746469884700038064085902507222715188136566573850632377752226218633064017874563693397206648453377869207923920488852657603955116746860098079796535143535113314798544081135958212871646375668503615256461828166716077686053181310350204760478825009116081587685739462953533061689011589462826983465481367924439654914155021177922614315895604257663528914387707214804428187789702450124790764316596349522311353738009454387324416019657491791969871069811925386822141283285780350483637325187425666842238009531923139011742314275510703044526009322173599073981594901362114834872090641926062638229217736158509215558411258027787396621266525885002262914113656151908699923979073931026897610904331140206339607896442736733041562890433421254175080641945848661824654425570123052924644345610131952699478868873738201628633451749286229883304498128418850300860581228836101894442432837263514625391566598332630304761723290471448076660541757532851764191531799950265127853524141843384861365716525938274245106210008950802092414467602099380069211559154998568933547148717456944515956978338414112506322936848623576636295376771932524729953711366749435712939471356079744449711318654277921762796282523327771654760877987770939030593334213535120741621098914081186581723509129943442460193743763577522883611429817896156744651219707622157051164744628910275312575056013986269958807157498119219240901907936394102445286977351245929874254100741480447616440991037762798934666155995308292688189728934125709686595666683168110054383245715986781719961920032711210924931200494736741883932664357419887795540065857550353526178504129020314386314882990596718188398294909159150082208550311520983994914737267005734770868676693145486101608233339030368862462916073289306468324235205673195229877654504473479441398492575627044769638344704668824077710271929085810348692886327269882787573269628830897353500734950228992356456909947888728982562230140777372088333857876514128045386811882850977576975068052220371020563597169739334768525065166463185480009995777346899691591130472887779210145584252482311099047714025862204020920087215010571572359902343084892485247942767542794702440096094853810842132539560954112368028296018025824266379557530120168020476713937827238080836152337989472653942622690456276963626982809923633785154010599210064129059772768006876202302106361836176642825922974882166623927388546924533502420003860051280422666964648775527854263015654509960374347068990485622928821800058739235028824685003071835586819255202512655720132919833815170886808345424495904255059359872051401159213428662519689489371232401709124153423434475835900961220598667258299376330227047925932046387519147990936033332203022655297402007750271829582686671299348762167916091751791360046840912339715737648971273798249458547179666269994866203619021134017925703851558721399005139463423979735815945499005988771298276951242356649097099501973146643682151658124085092667258478342718413040007484918051655896240154525304702723433339318150763672873069281243433864873490953020191690792624268376528771348785501621383692385727184284724026045918345868189550084654608816572066217925674891333536077320357985101267571629068356846771083335472759493792203712432818223109242223282008643836664012758590613785861673032027681823447640300258324570698036186232810809976101885782944091302031101347517368318486086105753062790244410460470770859481028486342651762999680958122775922368598994981992896978343950427924629379975058285607031731087517571447323027846259279786926853069922427912354758035726359913204659222378550111354760722446692919736963475429806637343209901568484167212661260723484394132988573103613013335601158027960677584115483235212454541315014943261549132015847285275800881622400157422594967222015076874004099907714262480229555690406034700638025800438524033956191999789187141797245149879541833274299529265004506619449444469417857117375884164872157134098066492311936514193978945850830212040050312516037297199420161024442465485207374522991646613423480920733555859331607966740325634758147532571009109352123174719287428769374476633763005711524366889163047285442576286231904070872746509950252527223877772446770680122436211055676268646459222123070778754569263880752920486002333458867577050484508315397511505899330259831696508244205623886231979670703024411584276179619707720985653174128909490043082709167727811314289621463328437513827008306923559433827749790161163527843650197350445511706256744264629071488154549304581241759707022358237214838970126458801776663761920378940726682823916878146563270196683123101423046140476836928732174109496439978940489885055502642729887844023580183906753350941328293342598179403832735011172119397096598810625075751167542787305529100036290506001081681001561090168133976904389349810799844307987263732513274797785737796479485532934386066361068720942967510281882423153779477723195220424722289953617533544961718809164019022426261256082651461369635159939701407160015652437001798947476774826049251502455836665636278844408700416513674665527956811371097219595564950501305397094573139183715998668200028481647864278992612980826209897962589183854695702459581376480195303228838979443513853262997453905852819908148803610594137356347976124026184799905370175219626458794193274931087834094338904010026034653005037896507609867973488178815254022036686894779526505743007894061013071127233171714601021803978003329935196521317973119869656476912432051703500276148930588405684165434647950435367006142016338985373789946046651517314273011165255405014436263371477954702870597499767881797806009082149935055917985892627410504350502345737547647843300094593675034096977404375333399512869383449936282084226750562624781647759431150915606902347646185266392443859354542469886605426404426278535335074776217037334906974053496495283041496395641409147987910285841169206325018130061419344211495294526432287265214585191296468408816960662072966753612118587490630491562515459312461920284939042209680096636686105140458346324978704808901676987002835463238885811782496420759128686316005034687693243110945589917989410715789038077252269216118426539735572028954099701170817812633200064523639749993606732766333382787075067113484550032268100883497471386589055333256972272129798837496398686289318785587089701789456513555115207456045450906112599909990940240299550085727419164937648799417440945826724770986442088080999080315804695051191491467775870710332679987601047599729816675770830821687739604703830354639962162957265268033550905372226668811894692325736588623159443433164308253017499206824420594658755041851232247620695388535442717387462776718098841785967671497733109847238730454555461085569888120709206886207442736305045616976263678662255832117222414530507922169073467766543101291744472489316546437734747696162054033951061376447081931449302628257084035772781648962870564790657988756008230483723948100748389970110585821627483677837386057708832714564586896761399103434347835361283387590331145527034031384427785529096278050972402577912266880871013742455258375932775683905604202969209418593465704173610320358355661200862443143402194204784247893765705105524593075368362622524028186660507815421421348502645927603135522473945454175599768422607295750685815429793521869802206010241668610185536965219210647532061627211103985790847074146541020796587073734512221378111229118468345916181008216211353178514348654423819259683846890369419362770177038953429545499726212874311782146068575617902023689164191520885284816932224887282505464463182341524786371517156514444817670309785938365500142737745310771226230015221781627124482927723767973592421324344014649406919989244799216268934080167195609983283587969695752527704365782137686298519175398860132912614060473207400175783604355457120487453083413672107791306522153862282892449694203403852526805748828555363053603132884358339286213593608967778688777676069745103251201619198669381024445345724548718844432117454002013475817544783594665367384429685916571738320948696307309008781682393470740617932063104387723168576488022886193335718266592512851151490786482658410268934127972283473095570618711644073811045075050546134234540423845526340498953149628158958667619989692073628919557157686280550608425621306817785159963964349269179482080195645517691949988729810548018898370405202233316651999260245434220600331512157085892125339986245836790904324804316374601287465339962318463800060088573548949191282996596017619537444372807943339038149448000174700328397422706163440186920207599199896620722863143634986170761703368190899922867013954052325437811737670801546669107496194103978029016648785205383741545767541789349929468387398846511165536669478129088707086831980422269432544170473168429924607363696778835097974783136680900506241451858549427984610618483043150140546888922300702787010094455170798799889994022421250459254853297779528629097698738296506466875988497162273350923291523218810841211988451966350029496719133154916798842065422730867112873096470874323544897102907396754636412164408675473402826472853945782232178800835144485099371871722864210160582280217422462875240773895477499898427457892700499708260412702502394589762339083900675512301472602840982275020612221383363187801829071284059577470584869849258001024983944818767523784796158385591434966334301577964855416816641069171469112661069489572089183777293338207914749437234673558412038437469895923571419659260945735935263449188761878756126896713916790961556574026502647275460925853224780711510802811657807785263627858134401133438626778720521037940496794039533065102868063469150878977805834061680021666593974887841751436895275030462444663063978644005752632226620651946997473651504100902478018700404502254714794315938427969534862115722740342642295329313789274630577302273361658598649649607331056319744882880403426821163017426803834603141814414795827537064849277271890462905412229007322116873449650492468595490723720283857244783805943272126298927108773354330147600357911732125778375271562487589900243170562097136269024761126973961070975816388573462713534574108814468757116409584770885502349096392548151316008542862604446214258628556724284702417883337940386148684131394913204082707140890092809583108305013344595640935910335105797884855691994401085689383571409907039081576553990907668017851830890031860076097986252698028721020547464247940957940755089919789005907767742045742138595435656607585168143227693177064906569182672007280159464277994581080743421605564744291111250651848292827174526264352775013544005098069360889518169010904469007516651094949799690424654278338330337701342021624332477271383987826392878098268773254605495992319755310994835727996738944649182077804638526722582354644547343983047497713221569070759961585369812271011327198931571326046161902355708142113981215853269391223149535915964551885254667932062367061190064240988370826621073348340852570177874209943477454435233025447325028280292935348174721149477750174335423266842013579515647119593250995321183520633552001601654075485839611298392797632600735374661449204792690537355968083809748795104633672765763750538242067760730942890047215978066228380134274475318722764610770220392215231289380091049744446298678211486701841004095394845150561052173610714667644930318850702370189613005647599489322475938928366985290709740392156549500039531537306590787716472735019793308547369653546068757360095167244006655201806955796853344400190425077148186433879538097609894736081886381349094832322271636551184491770772205925833583847772438970981588961705329735261687276626511197055894541445429533411751553555432056491567647352942153176952868877660240238431089710046156418392763244776376991748120534395290708920455881117370081417554496722157990076363394919948449755271983814212413233979766200304708935953814470470677849171413743902920492816146533359508804819138380934123234655826731131762120330403969159978668145130177438656558387415468016545263918092708986429757458285686780694874725913565228572583531628210250501188284355571158226888850058458733421888971729756821523683652329009597279898134275275589356925633749216924391847949836383387419285299377689445491300362578231810466551791127505298762886226019884793043219149746383800399427259744226339155877743039760209843960704561370566112789801781552214329102935550576095637267331899078281609255989329853586951643882241663931584761219388778625020334167233495256516421742978181691137992375384065653596730169898639181825781138325525599821944353786819326060980739110485744387429714420438348650373662447296074140931467865704142090444753393289932078005146362093428002527498233610254572806590374078591824533734009565485966660811565479695175409014181798432271974328271930107956362421241124804996097819512063917554834198838517385489191253896443876550723629729081276650865842977955031349104844857189030867440171268306409503357425343780958241522925607843419222889478976784283607303513485446268905997957101803299678378206703759986406761551973404185227497025342087698245354518543965249454668373819723654247039051663717856767760968154684853416055731932504003185276469128491462622693918781190677763744381896742705622032735662943586669307395170479097989228405255377236885897537988212518536789462963457427634306691402957869543796714484738023557881232615947921638203985133623493672321159945314783864388983562878824651316226640577224069117901809326270461719147285947957355263986075643966678364708677438685351832132547009124989120148889625321687781510119338535053098313905626425110224994759636155449187006680870793355048492882728526934963378615726369298688783679179835507499896841175282847424559095175690682897377038179808342968330447079627835631281610467294849044703307291167174668988347287997153932852925015553475424494034458141664848742011957381876273648025760543668076256472103413451663229794118110204490624811997694297113452384242007922149124230613618000667300948312813464214628825364458688114438759755958656479503494130808713258740212736144408875858430601632072621696111919815353804331745651571497346648736031468823261314699251870225456191611396053995788740975544684085447041845822977987415096590811617504667059323460138627168081506311237728740303014656817460143660470620611833725498458963094661106482321344900664880684960433694361591038065988875795670810738560080919387769557596278574717236975561218046609303987222692749983886864117350061801699368191828507137515916185246067994715757634811747791496332960684954555365852533278562183016126604460974744054554071389649561631406445237481700804719930559644745831517123054427664703841919087365825568616931106587797354089875353487590366089339920093259181897359144778057679119794554928319226383898552135096649669077080202094843860889023884799432779454578429501055259501256143739267330751740087669499611343653446621305554506006929561113164417603118927430651242297019120091266872792548953191345455446608212452893516754493059367031074705238132471326554356140530187746601885807278022934853360941453803519111379062616321365207440816563440276968733615614403614721170972498664097818662547765767145630820389328409830633127253008259427833861960958073968360156272140959412727056600376795816638491684213392144132494382005289093943026705580673831417318316800698931231082291188469880657778074560937358272427056027446274676472324789242355035680923310472372793286292978328493673469449245990687762619414114315930693980972712414035278630515138394946409417793113415581964189495904647086819287433220497189509429043057142145540616596581494005700762554790813825611807111346084656726850993970651961171095686412894268393157638670942318495410582294166510782042302421371795872185663682077805866816992970864870789360695666996885962825858400026358294662435595852688365577444115052089350887853988145579885154638578415852174449441779486775122953569860872571210162122987464464297086329267571864204237738170830469880673394327837276768825794214725835328004393505247664276266008099966926508764404888188214913889233584685243521513551046996373239566939957418327823257264597703160847243034091383078859318618852461896713883124936336873007532829899811201486684185568665048295115339656052596013601171204295471454580859571416052926869739203713337804499767420021605077836322126256981986120648120685517311784132957713631577945234598395797709771540938588120953582074659988226516261436543660020347716538312905652073510565003620301917818425282488198870343464275669532146295969599313134510165037653387762622174926997098092452032636428973948963952401682705023479149540776682614603291800556952694394658405992520290188548190950605704724932291206640748447011424028121354625247521761342004629281799578517339774561056361683140786509484681420345001482888802668507175122455216830789446609571964130686230507233911845920342030575322216298305216345076420805328869366830995741034974993030810905245419662968600260442108389833922567866591445438396169252491644238199337231454258398701568231253231251294550920016047315773072551248429997599757640663306469765914575815929211156144195024625945967479918709828551189988415372975080916580951369434894231148458390450623532403898344345371407625428313435507715875534302155707513334109770191120849756844676060605405604845523635033254331856104412303863147762735505603833665947522968425692302215188012836323719959886842918722404635566595778946184555346495843855908642497253082628595714186168705412536913417961777672575960099348431781720602667210504619491102210046188562543454216104800568569800775693792584741023730278745520258280404392362655203031817864075770129556426338944285889553174558018374809041509638527871386620328574682980911781428764034253992088305551436771037234881659187709858278760873277357056832246355336375743569024253153790976780387757820950959779077280766091444210619092209187544819155755426939583597627184613176452880808069158682561366525055505343419258045471758636291590781509306720061079635452255460050586612551420978900985265481818161076173769281813782076385593869108489957159451997365040449771972242970382005131226877163957271497083874290046486949975175724970917096847050246686314327046775675206942434835027471387692184202524072512033554807587074540386253042909026797922782756801865092682716823659500039933178068921500586983127121467637053144809399654054304322396282920965119883990869364800057764348961005769358958258642763971599473769530664130116232260070669880802133756876666828674671488374903097407477140185975955659088882469089509505283513105823143656758154994705787054084629857035418694350029594977616372142240075943970167999871649073866476214149746579873582263106928334954668476581698673238936623125153350375136332904038180364758271575535820516024505305728557713892494477448428454249359496239299688927359255079066568104174629756645344190779873241650117069317022804963272132827278937496995835883182597644256410266504178158548350643945921282285503297946573697363767878148124230209268229523453961067003808171883118144736913004696045567449441090528588650494664126991383929832569691308980434489814739795624960508186600669654578916322580650862294383888434351456695442889758161032350919458955278292296624983832981476280398081564978140584339185947260359534762120340905146225931902798711158857012517694547640013148617567201807193638907430654813469436127695913680603894101772428377664931185231325710967262040532734166915356557259896675731240825776581650837341800026032000351233876456886536255266972531489461903202575211537536826854718709953364255020492869007548478086281368788294599931894807416973095258270894941899166157871319616978635586285137381809427805369965728171063539672715641596430653862481826680758726314434507895953383241920009385697158065065625962981543165430317825348391944220742094070904544256070977263968082452064243909360397546071260388630114874581063341026165394893656485038741087743085094458831188370796672522521286045326835329756653605402526322962987173461163945546912797695443518206449549864685913779128486836803145921748280192693360621080074497160268887939047050415150049164895847532059527653842336041536410186491493167947007792658290930381134332148221371195914108274294490408315260321457261326075064481856850124882992666633918069415254320279342340890685761711185750904592082032009724998338830911558307393321654231910548667746617859152586172287311017606224842206568825037469153848945214127127386523561416047017836078297746933379059622105423694503919162119127766753726740429846471387963704658342875011803904945313823735518160011064570359816094567154143149808570042525429756274870480228570070005791054697697076256020518349688509156409314088927732031733543754472569099286742984758331905859967065311445752280963354851568100861172816391084708267845213545924804633119808720145462162690532500798546461123501075366014825324850375630398662163313890833513099289842352246277557266245379908668700532699174544661368063654888157250153999333680612380854542273288324490755577542881520304533616597674392175977010816725973060989455438884188472079671101874366382375541067495603673601850598975961091232048110539735651224061939856691890064707563109596908782610220842458011995271302344847951777950327368476916780846958682284278579971305300470683026843233507732968348716728606542618486182259460905986236631256464666191748796212045633532044058025193883030267457676674627038294269236982751452920997103512006453115576271597133481133090459600549209199521904893322971892413274263779605086570228382110137356234015717894906010901137097492875633325287953194833621338831324063866031202210476381975888489966859484547412804246867359642812496100233234278792246353398355199563619277445883226543380440148507614515475014841567773063950130913848027063590592676293952537922383970386302591480059518663960540879571743316769917030494531024603985112512517256264133202453934328754409693344301776149893397173594733735013665081474923632398618355023614407745013525298353894029728112985284409318329189612986778158582716464203270593561963925456870848946550693538851783829749198397529955219713107618252192601702502428832081242335838555747474432798601348282824098876065321253843140904133873579577437133494400215854538578506212217136243604129334790596587585325398606045115040103657419901999476593587884555127100053014419967091366337768581468074380608435336571267696066831395186197230924279036454211228670608776919059183186677462343323200407158761119645003169383652227636779735168228177387361177813212455527772265840374051608395016009895783983468263476265664115059094381249075316529838580608882263023980540021226562098258078706122390102242939225250556989894900541519087630072807164188093194644535974801855448422119693359780458063979890624821906101530733618743032923229717103887888694764415957686150646790708760221553484752269788197719330895102360814273419729213296564949999839361613786924899091705911337513180223793573949750078103272369123375587339374635929120263157509599535223638023531097359019059744556285673210203437265161499534960546172288841365101264833893011009125728350861797639714441579461906715019075479688867655355193087601858622976440634251139842735060157236278537944181477839306011100623044063032984955671561887945290374568296648828976278356091594390822220623287322865323071740559756460726171783146101702878152734557150727663552760581758345728528103975066326220957471271114697217295784058328577472728883245165331270274296850726984209084944777752964051241368468304451113461435669424620982026015023305790892404193513170289204600423114672595483192050610833282927913497561469642168259453671738663375266470725496084998390289084032849497541987939088753791130840301853667203820454740714621393977042464393296866260589537402660253687498548334436338844630170189238121420252561840647537465778090459159021307051586435141528524493285168511348937977355264405984870600993750919036332374553219544018331571919060494312552871114094890406175884872523936192901841807747862691323618275280987068748936555878919674966186945297114430007745802960729487847035176779255228572324212430158308023982114606493110254100422041424912326920172661398698505599620532773274957203144489587020804164458173169419771910366292231463202905708494208872018466645016814478931596924125754762777598554872357701742911597326443395380343224015696930856466297636894004666286573869548356719794546272661547425608926265807766166743734531616703279774324230689204043191313414836375408937797396505678860308962465696882676360548248031848215636045356206771562655023652534976375817817282593874457084018385593364966213258664120837384142697784550031906315379693578526490904463125145168655031928627818710307198224294619509618987468067297877079993765075759282261145304897264446915121405758964675139834007719279053304211791459302156931295919902478445086715185961190783202763723266383753160243145201718206364616352915719138726478911884253645229915614469685376172448777044999969290291479538119018547809722501238315299076165529351130971158240735936024411928831212871625124020105730402846832092689665103814315125308202438872464432719295775695502289712734921732513817980022275488983646373179559012469690742586471896554351895507875141235297610506663425632739053982167884906076985481783155027043505626591674353854515012385375662197204583060697029490819187977418358835588301239411335498124918267063349730911470164266373968116433473087546043416575172592349681041312926318940100287094313380180407198885378997533287627950778919018912564302856805425737523697731028500064471195911759353741127805444069761660142271441280475591356873971881228294701136418905483374201792512234906816781613080668189703711579371285867426466095165493062630301588931812823702138417754231274920505508757962469702906402063038865709143664599208790825468229479824741054776525316428977341976249384224296280033515246206941737400130173124656441807693014186046517419916243541753430619807302362918634705873267580215095792489661434136023529917502461270486397281389188305520314865859203008254967457544511863482435119644327428486613128992029941750208963924368227193545652905963587271023078487971172225731100913879014668479498929469443980692567156388063651159583987354865257163760778296090737147587980548350450633041174174766049153694948363742264670640550637580764171172159452560102410507525265640582448238383874322267208072819897136442648718436340533564349461586162185004785326295238229574491244242635712569563627432789813365883194078680164969643018687884236523508362720655156911393358263535581010539360631138916460925062898697825129507912879178677433412638998394066917585463832197441649240737294027415624618710548390115476941457069747106713191017964523138666658568200874596700232943646022936598169221411207231782637863706592505717744595995249379585635280824324113048878868099286404969579840255340515610709408667909713207768889694811114377331140468382096912748821190716659784894151974737393272986169679900895723324974542806561093082831830256615532478668753860184173884106813450966277132445332147411220440554862225544655834013810059555294541354974585892942243287373135507357745122878038482430565504408023284000600547297553101890850309979352220161452719271181468528799086381793393519579846525090272195716981408455286829570182130825058038507334363837402898289235933318508929225942694614081298279011496348600802108768473621652917914417215303235701690227284608183383101628746108953698102875700073135494739628405814671978810628585083502308711405740990068134383353136378764871729469843033446203691659830318287206642335741078555834581414502453143581307527321576047220811700481261080078874004906451899832100582531663779266586622741611201403768020465972921223581794241139340457953524384851102557139282251638342464911838450998337617639475242249596429997008663053587404158224852137723183258830583705260943463979333995984700754363760569589149055163664954253680808283739994115226446029326706194085867328211632559095978650279604075374410603890743923769645565754726673540836517246275318221664114962683829445551442261751706318950239082733521059383939601650003547362096869640138678872421938287247581458857368144661331636058913589220167067230186767166577268600747700800062429870988181767219575540722254662626046266806459705209093525813245981065220079642265973948710846000902266021774981301420299395571161733712071696022490946636794834439869075541513126723939069306540821429558018199505922551164544852738822101049613997510516385009752842771985913087216326402821180408359236403706667792029775616808221504937244976862386737550710971176728457434235791152607367860401763301839246672790915381325794213035054434466266044474562659659225749866366092147582377525631277025632305440758578737922000554527145472699615925091500032367357854124304123493424131538578365731195327149257759439698787204407518622917237784916293510247917288062075302607751533422377058072874805010556201561902339397496615180371858288256661897731033590185102162905101215598818449812584192127524834956433719966983066494340973202919764319039566425474950992621427555350930648120423678370942987390606418558319763931876923534117415497458042310415017699072264855382856880292742095301029706000987144296387080291370736346467951788317717984231569482355390194566610542725742935260485465084458946624899738341224850645650208733918699556072673582606271777043057348150664008429712800118588636364233685185311558516874237535887090315369960329192387709944793324436907016159277872191894392940563997178583743645080976169838625119116211467964115603771249684204286758064252553325683062583264603846472940406797524847650850858819346010119198640809844896173952261355830487120982525029826085937557191655813143595509575980749150951846544852013783216203677672745304198569636443726675568792456212991598502673256692002464176839414785407079032060998594891257970142015724289112904454273019553366580234147106911658825662655448791064454028852910024684311143881451100627114649339415043262067744078790591743340333265743682515959583767162875122438639544710765115284809258050740736995784671025250423729737980105359660447430964955702047119988141848669755987168966694006283517682762979061925693017531178093355742637222536595384307784884918597974299098699924649841375804326057461174285814272435581393828713999732782507108433775050671424928517637096397832017772296398864947679380685662430560545494288431797372895051369033679900909329777866705635141722610600880457377738344189630116994466234250363161591157513721057941571814499769306950092464464773081288973342463994615605189505249116436920829434199903209961245441137116833302556148219734289123876197425152366373545232410086282188873391763681415997678183268677925045642129605663071842623640065557308768153699443513655813098891652218611417982218599762207646181946940617187997879726396966164299457775661853216066268656566196256264067584735514944061114469504488653026650082494713969542370884962496492642469249573444130774009967647019404235241088623352053366514834731584100333146843436848305089102314517113741067076504076861889848825699864486173626176941406227753462515953457130253353044852738966963449737079757269859260699306934550452133306581398089555721223161672536361936483566659203476273039311211423321938487664368678910227994615201900761282675969872643091206164051866440218860720542982178984225763509102052086519302439122248964225976131036920788700605232325948517262112538242719671233108074904147009739583319930336082154183095197764465490135305811644205010587219306612999889703486266821418148679623173773381596693960980072314299282067935001602596114500950219600149523676306421526066251436425609640383508955780389618975119465669932345643270939512135162718651701953326097718875066755890964917905764809810267536276031439518142053006223931357389642662515961837145875861465809905248087325172097469622670917778510432393743993787541894841125171903795778832387179831153096281691340064261328520363001803320050696019083401646049742351004439409039364852033570890759497765990141019243104772346485522890302365431278793944587624150836409004025984185724755746735156044062841919165311338638443927332348538961089230065692595038455117478882986404463263134431682770170983216113945282797692802158300491968047389601241353533923065854426940620307974981506067465040395838746359119477900421149984444011289116641254120600414619528379858629580016934576905668761646176934235027684036226917539536632056859472112011578819616373334061551406322977222427664222406286059712710103216673746872969102380337320253275856880953199039317116748095291106027820180117755243461353030688726761363452440404396141311630876998933383668909992353930301296281000786364249586741858783219888124086646015342423882697312121488882505237468898747205095594505550420131380662854862172848397527947684566986247048783867228370237167260498103089542365003347717361957193880972045850019412816598845985527630605177705519106285608460066144701104003148752383324934646252170636023187231888551316595218044428195463439731969389827620332313668360210404554773916065728974952531168556016981574429610362015783145410965285150616216582079521976329463606675844878138765373809665746773133221702440512460249430599118101128204720712948495059693332767246444195225316317713106216692437232017142858322793645653002991870186649903283307260187395956761700412978802750296111544242974391788012947131284094742255785636929464121121656728090661565159451842757387488412628430493013751453671482650895974867992907378421192985833506355969422819581717932449933665113568483337879645686606410927457148266686025160908974871002476387329007294261772388794861980221277474409996681026544232358759558113083933615041506392258304451338954819702122174790919440836154409686131970468404648411045707366796970660582354602737745538802716015997278641623571634926231210333568912998876994152440209563630758575177313534979897597498467153988497592896292344028871546687691126343649127250399904455485438066331490141791308100414614444930878742016020378403086399547659662047674974676158792575345156240017078217771295159200826169608878507268609476209255949373347185070444258546671449502610820152394820585261840584927672815873130396783017912334184555810793341907639527935145254471270048873167461018382366714898530261665907585855444216717166626251698133567938288867852285686671176871297950717826324874744427769696778919368891429787225848320163200354700982163231567073772347610308723177683397230348023070392857263038700447977934927865121181043275822939460622922763775567823890048820604571617605640606246485828138442828088881898954534041370420537984537870442706335338238014276238581698159909450215307410432838236099613502644300445261049250967921966062652579329651772222888381315965410128742745719001847379818917975910641741437898243030525546813350664196744863171339281468065280206721384107606887383739998114846602239459415531104517361328728556047186889211336831261597639118823905517309153564125667197608848141823783636942104940273326899943689920875296265844398488195356279522265784720831653158157682823026805842224454248191135584552870949811327385114810230729608551902149936165361211575535680589193780725123283476249504580206109277170185635237648316841806849171085107292708119388472922053283225780890288382154452612112530129705531934726332701901818352177831699386025784186791831620524876200893401787118727745680894864211268643343718032971887163998589072300931851421977974238449558549391099048140734861979712336165235475791360178446590991310313332880763732103505619783972918022874679473964399155659298147486643653352563132637661074649478010149948939973820283475134227406230066135952579265927014937472900916014028442894206775106142028693518454952068515852139564562488583612596582235471032003900126832170695344905116146816006870581186751568982202713750590486867820384634879876558329894924324289068730538470395269893742940640009835730703385059319375657673324959339014162536986689468978299228230819395542288735458034714419504768461452881134124107807826243959293924109541682882042917698037780064569628291078430651784505669920931493989153666172642019990983909957873579738871297860511845787848028407210223849907822504392078098051106827568531815108719605667032594201076809944165116783813636644197981081772451797974702269141198246788182384989970397144977311273912254718432883744028001718984705942783910746709615374053156985039888739951768491125486260939972594553026026997094472421035797802232003697181600016352203398106931027408149376107993255251616461389701418699109233181469242435686416419995877967836776800933928230838730882349325891988037972961654350350320254119426203877696023903622457772200016062007953394417668379924883198035273535397583519349766696651420060075074446647529552001053852043101702103364410785145140356547692792862143430918222080581086437750344872592835096520666710519350135251801056976634640578731053471009213621877003871976564248851935271402340453416946354408822111826386919903554363327075378752386186718297759243608053526622673742083822911749450391251702686543080618249602573533156770590200159894968121641300044881520882655536101804790025368649500208401222886752768969413144421806640776623636949486076806833865851686683338971407427517561628408139278030025855662348951315466600999306285789057768220085957722238472022676587662298007057938927176104539397429755970957242419645730881428751120580436204777577354550748873696283781752262120295570234921353672287077544857189176056668844106573905437073943123421952968100262483050607077521497639129248190363353606819268988756009336931997374558994091781209177395659195043600622760867132141797476642959260708279314627534067072421621456154286805105930975375909438486366235255612340845427547743750367642341133253460851031563683941080096865976476255296220576385524649835771713453541419782387900167692711307701982682899320406540492661704706583274788097692230852617375275353661934231634932242618893759064448523590199155348589024178310018121872525822606991893075948116928062700987454835694098339975710677671462693366704160387642272031534479270134881028212408609111630353351838983509808707426642013625478738887480143184549234492496440431038651840068471167567208455026223926495669049617942653995632822525657507766785635608380965320256768436962645311741371150159993349274453505829694538428733687346890104908572281537511913150012275241811687446224187574797247313780061057189933724429546332513351302129370490953752973760519690186420413880675939166172236757572756877441953001073191871021548547849018466600134168805033237889497300719044915846208739767705501434017160595871148331884516763684724500741471745317913297505692512135772209516813799087391224702985628466295046292919459230033719634586259380709454513260001211716373972886926736720297647216509234817185481438601557806826266341910505102924852765324981202764158269603150338083331696836669425426183031606992761153265202866299665058464780901344636747135662862678008434686538219961993118652918998915373054244743821851011844735466825136658033553563570792375656665131525519610858312832146411336794175583072793099028440215096319484506406554774323335586291325403012997431857201041378663921186049667825676078031393547552097703336324796010040666767058639082420610591028667972217143959903338907683248564818369948719788745363514184121033310422213273964109825672692672513673656337019677321212915328711024608498057120030417625994800440677448568996233611110073884842609757864055397201415352614220710120463693291145943909441858236792562964218404586936435924550734648980233330136859748778069980519211679333574304281390136916973098362029333572716727011696698243287540053340534958548635918634041183456260706628067558159352128009224413311699436759498049624472989969627269466968322371163605948917716737186811650475852192333085000717444847076866984932173283890666761039862794253674838915645909638571208305299569520943805109965809395497747198767980771329506760225779152936972292492039034828833813623896087703812393203734172620447985304867229933293389790425839972841653812200707032096434868915444369506417740881266057151468252356700449252105176524404972604508048829710801534665140475438234389315550376582177569538048778761276422671910826098746205101002993271435872759388333365553061357158147827017819299959767225760749908697561501457791662161242519576165874091231211381084987437467406769743075086780429291986049642523133829321241040891387912951921067255503249949039996656045004650793189633801441867554904318380562859682772766317033118340711791115206604186042397546163741556894202639850782312532810617849790442054534269202637947901580713810101994616112149267836532656327180866691152272159259042461553333132784706300664644176902466642820574711680240207512506777486949120173888565550553844929280470621157456860781740390330702133840071408812404286594186515038560994309708193346289797237934381719466726297522244066406807739704636029002815164807875467916615792258627748436909145971567344771058648588204965796313730329467201915399040109350973352944693714302596063635592083908380996405260359788309847289542430482734964493816056933191894144188980192268652959170423225696417834200160023467928168141521615804408299808929977764744104402171468744857258743685854265670490583622568679033073526991943667100838950942469189084352345635400530030545004179486964884254416797072354858606202736528053924849747938046876267019203296778758728307789805471308693563609924640242810893592323020987664063501841166138798079702551229996725088972396717479577554001881650958243259516225994278548371687992476551840435845499629923426276002635191381455518959667169886518692794439150227982176744850425587028252213858298418192473370394324533888579301862301298841815615835649264115331091310409622669048809121268472299913266383039247957852957004447981752652476804510531690988891028954985484446027094856069511353328491888517812447090249840901718987595506483645617176018821346207904588727491597957987942303149013813570474968813618252961415288595148158252502936316915074762146570459369983860150198356138449807614332064693382578329797224583553570382885494170612452836925356629473307150170563425109921156951116180394675439584670727908366333149309294648274685557426816259100238138985144559292893724513879426288198497707802874402977160723880864800268874955353099694213668164971883624394804181489135776786078908999034152759969084473795499617348207020903386911264981755353568112647620656457089560863258390910351464666589469584284630766987788601466660404791209859382936055290755047463179264263701797871441960646483128074282144104460958333329210771602780921226625644687885017011647703838483453158279063059116623053323794381348992623560386814251693246852855483507792513967367090257651846770321579214519714574956506856346365868570909610703256427237180682924610330866461489949083812529875286219212882515606206431007178637010608528738970190472717205386185934567485534081149087232513252016018867324339292270251743040304846133345126168379546737700805513522203091110209881700477795062106299985311099270157498121359586095735558565041556880988045335719172500651805005154161064011901187940200192951463088666079233155643785713364866328061130598506785998563955904335927800667447224725325136909874831154075989470786324264542637885955171385774433680706329985859935521877674285723492427972129706096040395640584622839671452216289349534941232627443773921815844520227329093235972650990181078308744054442514835231553105729990440734657835606950692841305918906418214624501366459670037104787165626338549028429490678373590651643062055935978207848263994301903567205152807577041299583815216743450624657655810776949627403980950417177400197688810710956125650836291204383879267874930463854824342888174159768426734005297429620926804645641241984656621119031595714823865628926363504729279642486746255235287686581335774550877854281544176819830619109266552366843452849287960278545054825609983742622311043244647336721916077026870807349602953818148835864707516968442208807826315262263272348270805770173897706341372837991794058051759152820531479194767630410751832928438668438641449789528612494740208918140091412881389014165055816981678828812628247585878992643521059637587112364314981004814829419568824461516781849337761531042699281065316072455117793771139492455537831205596737068653804947604814075748449018459146645229898838601799377369946132984128141309230094766744322643016795641328098659595155390969755582243055146997180202904321438240180849355698199449595549350179269515179474651726880991688732022156432269021344955006804318805645865325079369424845112411692854655622240472042735364445821954925048366857008108840287320254306632798767167719930560546155929542470979188193250999693408986888798789611747407689115308388522522927678425120710207447329844402044134689373385553957526932179839468155102209171000029716009023949002076436643309852173155964564373748924587870820797697143100860554728396417897574469967711038695034268089599330694428045670552672184311300424950395695592405763609306841387379652702049548536482811841210566735664355679427838556451273576769116302613041578018051541066264166008336542938219047720442102284585096262560059224130573826082575029948821074510261150748988739226408441998287335660872141579899751937926399700172887616110392076219907237187797257954311525476393239282849631773188722436416097773037474505498984587789904620660019251035803842638625120577318900484925148440582251989005206107540725915108398962411939895054265411246005852004208765191527230749423488826436361453181432091774703629225709728630800451343265982156015251435373438845606206731764054041431261847375040236589264654666749181087093445434650492041165439919854653760965588689712282204558003370095185904717765520652774294398472497085391059397013086580897994675284539773932539820519908112478615807744096813332524402904470808372481567737898036504486228758174490757551110972214587423516765817758167707795704458170929192400275954590447360405272710858487355142962982909865830118697045923609511475516619292815783992682433446749884909025438269388572198138887135225072895741753150875988529808284988733262914789940119167444074907539701381460166215164069590013929728612853693105777181295116835388464255665838849844831328948072196959356870298220328777457585066655304619825761837639265282259794327411524892444225383086346487397512505724970763956938281994818258695376972515471789528123077216698355681969525949649276712380987711553228275025850238130193508661002135282771786198392131215037131143256691491943412173985007842248576774526151605408606426746922848865231534543044625006343428095270146416430973339762794399341975484106490837609812240633297970103771285902122661089788753680351111327729450598123880071953692991043645508583389644305008421779878124816853209646516636896231234307164900974366280380754177081746830303032350415914658691644476339415449898785610440153791953544382632381880734788830623905283891652954242425314900155938255346215093120957869300941080997184491858798932687842306504278019658390073770096467213566464122656112054027672776166578437361855008705175537772912659191972114049851084334060550774828646535414501533990060003423997816831782317455314324132909977871221349489069637332212168967781622584240746670780475986224165779877821696304602551978449984478422876707058459176624869941551360782988954587000075018608885340978978694301083912833753633990927502256123848232431924174068809697270068972513365254388117518053461763670839743563375595035875062291827163954109123400332236653328758137537651757082284141340630026620039035747746614839489150263254651340189256212565556134063580943752692467130621724537069467028060444694041618914012959354279461368953615878342871891814741966085120545429750156106989328878058396523711328647691409241415256699509918030097738437963098277621135763242643753429775681710316232335285068566621456302691639372306347169273416617889713664130701387706216962183192009291541388393715101064010317650556137785145382058458793666340194877072171224825323318693678263331484663431964190420587237966089113668417773009648661135962571025752381398953911096718066424223225286620396300456846069125362621094195172100439595411508930404740761484024070163196326077009633567579975866386284740570981317977013012473348963278942088919560191577462457624761399657238295045144108848731419461579758773495379373900691179013860162981291263680520653974878601760129014253222006152310899773856914938317568615974593897586293163069021084679490578407177693882362731215130782940441364322502874432744200379542169589985855988613019497041488244120972790241639784634428713539437881650782955015887166248958386726910965973536769551374640845357159103603421701638720652965853307681810369330354077710159064024283775377630399558679078871646579533483334409644402688555080461863288916898771539206216792675606726113946540322350756280966109186365818501376903461227878141507713233748815571634656892083143109413048496604511748025056657472661246543192260414766972883454444273170896050539772276682566827081522308042346368237562564479639329049335153374803370691528598420343770124200789823053978147527258786040621930336733161454273913826161648802383238072623792439757419054888966298787295498189901671170713640665309613827432993350065774453839823024413835382510562423402676416201549172853226853819273936820101936375873759129841613915069921517858890678336727796208268585934616081657379192955736743765936854638200021309422807376408419385806546796062034332852786744691389742937124521353141696211971646994059659434988754300751569212485524950550912796990223292416858748272584673552730849161559162787135681858530407356790624797077164470162276752939929646552949363498092411020380214044361898319075393979534672392758365060655674550224702593943312836597778429675143904647162329859542667561869756377512178864994529199746885040244104107729432248845720285996114304631486140710620395966384828786601700459349737063990868566643590536184523664128337952844032168629780194072713987306315560199909454802449298662204049073700698692744204443085584764847277322331042820490522349837125715374630723963987087892620172709088084557177355083795619488593042192716240230096458796106969993067204833239887987241985000849262582565362057665387835075162206477888461200051291247910362293629422828339959928622001424863659051425133180072616789980698166251685896286761159849743360066215181592971021983580994864468367049550883200908446413974641493696363192806620776102042213674769507618096292962840755700240922957386985335216444785934660631780990463968809974567307450275800412788669206029117329848046688081533312624969857301891183315565899475204959560184270021496359026409735375655046964098158173627310430115572076883767946541346340704361029529341313126737089717978660729545817150347822789806228194662816973165399649314037318564286394203386366494637976316520942699942642659663168021850675183175155718135486282064859362988365656164744973708449150901843606789780002972217892016734760130704771880902056265562082751481213005358655091567128055926579804622948679767369504490258789829810508895330343554265996915363121721564250457142055391594980049381165656999606543492930490871684001079631763803206943304336987817777863487914936802023740590593050037555537502423462134978638077259075083496083871525998257077875240227452125278107332317970264765810032514654888124554682630707985790639130758622199226408373795635090753552529794687957973599034904470034458903270743533141817146766718438351070126959880709218545738323172617368402032716783365213221532161426815722007846682880523087692652009235168519454095390999765779751369231459791753880304602734977765736303719042224987249226733476708275687304495148379964377642136822335134899433303359447666341937437884255051508694071828403530715898302847073988849793686010708607841493883333648477366012991459603912188152496067292931632329308118594708549271021921362034338943319379220747983133359673639524828798924730232835211571753049414060843890457910401864383433792570646470561341761800152189363171637115879823597795384752889649484642709382395094778127474525494538066904902915703540905550418695475534555307787878753406064390221155638525903901309686778046369944699323119875169270169368930254983961179990590757356358885405381044509376559039420613571138738465328019304895881334423692766539082141751377686869476853930906037382456758688474324637857341174257518191164678091869541417256367506846948041550449598369310315373334748709302047202242399401887609101524951037081742997888150501128187397243079065589506075165480306772170799439552906322171152416352317295724834158385015503159685371797549845017794695349545086741477272611119458725418682440476323583383925275818828767003376764960705271125477747952767074501942042455647416385974255224990389723293232242191857791007869010613278697211309633272065496301027426210122507456935018481964887335736775593591635111145690409872881045317858022654457724602879945066476076887074574995528157014326730791314583081173112639187175909052878763035183733842564286373723685843972835790289868124594361308723563894507963372705875169950177767352462796110772381141870906762103895645663760444490033487775932090720082823909637307483842586677684722982549317265153421907434238673081871917596012174497751516096723926101298397898680793796777580399652160164473333202977263316057001028348314806120592601801983696727690072641724433135023426265552524182864753118839321714986397843050497921437413570163221908795855832560902229851044730720843455438330952154108590691379437680012898667840469802590483115053094544345577425067551130265812163012510484578619225394611437069157184738497990749047955485052789260349143787643793891926547970435595383095657987375482094437940994713904950511566437324685234858065222980867398291350084111322843599263159248395576843054567678839104401286989185117157285901501298561874088008357971430806993360184214596415746777942948269282016487523979275457165342448804480829216162482785064049978931509747892710381132923422131374998003971372552592644045157989502248288767897130974524865619417716257817669537655531147675567354900057633528139757681188520902728482776974687762644121672020631050918154647910128474252555949789462614630545016623892322962209343450886440534820028148259867955089503770013098858097673225077841009081319811873805116939441845644669434422451615767921005045327955916449116655596244822982661283191777415684114903796932013454229595183058761173476205611299406002508705340182938432777614562745607029404859258667329093841942985763769822655199332362290930918932284423316717765502532132954683078298202502504057873795040414821042789315106298126091269735678771726385565356479959251627872745275954442026081737142331738445079800131495776869630566840103099796896653195093114620089117246994403749573319733350944804466766101215329770227345366846527633616369820793230493681827087857532409584276103404214874081895672311366489627228042177590333937845660421802339515291109777030341865757768517520970843997188897571433921494749052937999469132505084718106754070481097042895986371959411443430637844890362336140153107363576169096216332087045676196250565019013169890097571060188989761107827204832253976968530185119462473727965419241797801272869425271124949510444914693809032958792771453027658479587921201735726630602919457575246210674477055843391565680427235247329466058427458480735421629229989237901042072310925537303318870912329025320063048968012310719876747949172372975766034797391327765399255464938433959376106804170013057932715252565506157750600468774191643264673143042837712221471344022646735398750719342780295939999505166732520276454343342369980892193947763387972260099869729360593696872781418054457153246439383343354944771132519713636915804695450263710048782406963330283998025805423825554430348707988009961952915589467712676665246681976740463051335078811501903081054716092118327117725074996104008520269992864357349170389582243872383014733345102034816200180100227673290982974298493859532884925208491131482600394504934401924662037602987691117676562584076482639140004009624624327447261906479046925927042045662737657889322136330994476829839383624090458835765873235127066681212525086395972308144099458967655172887356035398917803498358789633030814051022486039612395488833748111189943903020478852870766099054977273576972809106281926321909022692912745425816328002453407468388749650151914961392300291897874787321473802619188629988061700937974804610070611031564375567682826756979314586989649303954379477871281993191395832649639483198496542839029000402529056765536407707710502052196662871376930085990425336505643170371826389621717077331454257124643531278709717576751370758164253676664924305464136484382493126939833858923937887294899905987346454398298439754571241074133023226528326104641918168145786534160351257441514844943701356356941162233378456408465495274893474337113337499651563764115711869931550595534232094609787495503752719244021614391451327527106389758311342281997364697583979323344213016886472617694663057391423809055256898971972808672269637017795717215384370407141186394954714650446214841561956613727613381254984044416065035111041265180471258116407106275115963526586270443005299671744642722141903238118526944599190678167718249877854983569121868877976413828413643971804434333667843526492956385493738429297421597325137341828404336977998729876849448899674522764376371429956697229320157582240187705203724479543988215518214046303125298408697695522845765037454335794562295293506456940051808688973972907375700793011292760326214604448807725379963728164883811820876616318878777269827994375942158511374957601240650550970030275653485197573055113699971741672166641415542332638244533265657830424412453037789553824207786732101463277381157813526236341213693929128365005194673216183480494783167057896461525179970851289078172459900493817326631928861706438183696883599057944957316485692926011477097712046519337947002271001854688632881202233390390403865161976553700050512035058224464147655816975339385579086646285631542151669419678526662339472257530186553485837823440426261959334489834583988127608471164234750819424073352062041085554572194149286683470071653736657923558177072651034656496924373971892472800564250205430522825831965757766883956694420972252176712630694084853880632276421174341193917792726566969567068311445844841446762092075890874201213623307568512012280620315822940748974135913848633893412097108846138828029318215282556254223475028803201725226949804804244972057562336199595145083005456883721979258057061897040075900686041882173973698233578274521008721941315144474694299589815066470289091240872778257845321682668062526928127727928579349806956575657217527630174216234713756615126412869544605551595984970020894423393363118793940707917608343829536640665084383565654975514290108909767652179587969725195447542862218725617647247551669002927117277429512620564090994376890913985228102303946562716883195766596463510038353367877844819177963133025940460061239793887123767926762411714803160809995018350383363782838617819910982418374109768965887389953633327115365336625299835717942862699164015590298731343038365412282255438353885114361069774060442699482665926143627313964764193393830364598624253903811940545173059175123105719612381209730810772574774017522359608198296818844199954436983198775517969573657790365567139791717628912806676523514292242088738888883500109152860928079758928271064417628331999010305436405685209882242967088070773102377955213976819479418723416122201324497398670195833830119184956931861077320214974408757122922312609207088986415666809445996245927611635003918262332271704935084394688168528722691008326986603820179633891597334218826787479030410146364013754339543416497795257919489576495913013190671689428715826758682475799023666776256463110212387591566881952739425082689844300913531602517564120661718276619050776528214081701555989454747145458190143880306736732682171690790435098240745162284058385169595438034845704229546292074365519092913978905728464674739439092990825417744215457468946987259146242224155378515518777341040514955196510436352591580618895497892235229706586253931349824235019627924268019968718021148008636086951347839391123090379487411993731290225810577945109879577016620315372438848623452428528232956304900053550971059249885615694516230227072005894218575473183585516078887999685828852568288496395714009975772388144229384928855898113594530824493578070265375903323196184576949940734636638791192122536807285230373674826718734007429641981231255142820682688222501759469709981605906507199954028634771745354270267711103959381556732681696565105426941708136985881724457119462935602773759595788686300449825376459798758900051751141358329515252750915368216028774308034892368450380426308978395406920731333319958300890536307144723255448164955828023143718312593205826110913762330021598823399507392957577132668403452647000933531279031247864646032696873642908110215594190164266741940287474936792189573466575620887661204188895835980650884623210800296631950217551742033605942243870326818604970983122212127729104894385993677766734842888745793981487571104580632715829135900073256752854732356048933638557974063583553965309813649898164512618836434525760816259365574963767409133438147250194214049323274499959427032470115004702416492852334133680716207278815092904209401334667785325541729540416829265132491132811866529933679506762102923137147363063053574432681625929271536619144472940524032393143256473081546113633402170702872243848781747270335724179248463865610639938350141581508943332401715155589625839181284867725219091320208560214147017199427563503769273340352499317109726132649315444208008662759999289587324610361008889519972777660603301205827394218601775314345429745906199329076095217062744595425418563611393018491858098519544392073892920616442354771893293193777946373314090298899863095331143403086717173586453731024938248857189409273162213614677348431973884635497680057530434763599073654489664104153490988363557892662381133740811422917731504358517017174289925272575448636094874827045407273658350049225280686190489365976893305922201465980547315271818083993171124574651209632198436945899075473066203172343165381899749630333334416345633895940293155926141949138911949367950517455477645288441389679000973845237424741544382442234295399304294441153152665927441744108667334627808579164833422608033219827892320780719704862479461078018137816241612077580475522298134848357719554591105653455200139132791290998374325828756076055470070281942620467167613179604148788780528103491232570512319501307361017202078756865413026849230193979031073782372792050999372195287224567404521429087089056062232769369082562836797872061794521409125635545972989609286307122849258439427174455904983943046385271232670918173214262074879899814792054469350304680000340897379476745275429969575408261679819925858663515057647603979633535160055070722284944268053312861794646663850806349116004670972542259927192240272785859103011881699387880090841895265074276793752350503894232425933042846178297673021455749450448041200987545353037396809982120024586335843856565661735718261704050108119297787391375951548929557308578981765273975696953461553207122860270693005620025603445846754700953796324587239814266635558108610203666890211815918176149587706781387342845719168031441780400054583408019194816744547173686209007781562192502175699853851941333031493973782928303908014178472460596708974042880074168059373634255065671019093458235086016519346435935383695992198170048691755213217490008570800861974502726488124201414148297071202082298680190291992375577399102679725538326834964042412476398038652674033266250001920661650645022244843241236132240487373734292819514143325622695938560295524304005728455975594705723420200545570270367707041991050371385632043979545268036588130396476257000127578432850400235503842364582209346180610488615681068210927045165098682090384493322307052718465632512790155980943739376403086832416053640638913704788326010383468738751159419159488092670499236210861042060887689799100854671710110788160422721996656622701247270830730859204058494118219478900867416905571604861611216636368617224154732066218256833155276101601582222867213456487233042568332992023773543383486374984707965552175862212395625573860607577892169494593301801733672632198686246000116365953234642921142492834754132277750548299661225291955910654916953067858803329104637148585855757194032136762418326013457637445467962326759901348598822706817868664518147737866034098731186473892935359281105950779320121922150440516610331436640316829207408322359564309060536883757776725010335918534029918434826289501457927579662547169204096219397973100283437725160321010704286063622044974278997666109856113303047138287371585117609279603882090070929468978586643633272766848369356258326750140185729193013499476576435130767943020019929445716755596081722015956266219385575582367855373562865840511271985091626465331401838097487160271381120522689812612366227823079234019254686592486346095211949523026381484425575991663009428212651769366223030775886863350733882088676186476888752771203003608471392910054697861360878767412103105297155391354134170127232966758798987466516290487280940213279968679056481719021723690754354941539294429854243743871640503986254915052866855262477505219447693948358157549074475571726769141270518646127248588706704350985888701786076303009253087339753282797025828915708315196999614180276534407627179526276221519231497471300346778304834685835087290406832171224587608694687394629421496974741024239450390998288885083508989112695267007943178739878999764052095776521069654025017675979369937080047172487845296320450924366412342613273286178677886042346090040580827098310276048631175885531882974165250092873342735580342766053817788124467385005767268028969228728508383690738840841149451701582397429504203851274802336835555380737973362826675731817734327652809034761889243909918760428174744119755043356096036066532373471836712039347916023347462059098535605356410292609141069985004035120117629916519771704840759919504359422514832032017800453986174489143570502802846484295365612319566113970676807106491028765750671019405766338169408135180749985504913072674663457292404403624426158215125649982973880635399965302006155433763086275271620113498768197286216312164554538856036706453231837772641398981074527681505193093457837080544473796882357064797152996761959986445929478892283275191007817293669425229040658791041308386623110775432895959497810742939177688442487696783526566305521370112334331695844443344890029912568630374801794675675440887002032529358874712185992289572445262327523075344808733558475374021873503874729123507099931168725324097518694560761978787726015671628157156728457351789011795644206798298247679746217859737812221784529017100152271485851885501876999343066591278720452140276215862326968492761393631361154591536108121466357595239198214928672611789909338002188836924180979552896413421788553613502690537321693735054015243644875962480896276524961528847950775736074291221721802068542669109523938518868572144136324419437289011060645237318274428366859086416332749754935142900870031545908053311611647949683644305857330772597419721039282908885425267766531043702090522319671747610714789353808128134311798490368395510461378053738103354076868235742543094729178510861746202051910145627724081814239731521540672339083296579208199466334005561047370527560244619814651645099544729991220638741405197909249915780320130776985863937789810902937669984273011877828419270085996524563210938476799319106825837412306731808990427140877938815184143000713891962803576070746910276257695225649981533281711067709412472649859013364198612772750028165607166022879924445464340450998069454314965378978313317390226630284976655419032833724669154704759105596166333476101250200695777152803444839086297105608298023314479185127726395573789948354561293921001586989031663009998093317253405802149165902010607149939599648100530221083151897914075121140615949237757374954353992446138153627099978844650715046889428707227724457649511904728512157640217700493926448507697904924759545866872437564668627905300849562129935007533712459461607285903043334174344580329235157061778520966887178705215383162944350708189096714323890235446996362205710660640470292908825377971373850899553443574691852665944919342417093683990098008240830430013118724909169635341934000661798630951567449939817618955427475985612278307521051878917639541848882192913899729601656891427040172062454676043115946851557541604425418201524928400970391650736220052556667503111445567523918127883849446776734314546842347104105547810330279254367458773549889686385765862931778152242606202435889568948636238016517072554264845476769268628162932319241726493569243664196035418670379016003532051807515641023039560941939920963343345692495287626972490299451222638198367428749635133976564265286976294944761281935848985111519987404622444420141773392533079245075912091345017678265658453164883989633740845083320993897432296185446620462354400551711958062823587475569171405936797304506354328311959187781721772812038170681145339177561145645458146744286897283473707295126085571415057979237056820400334475824642544439668964519294911294822273017566138080984153587587273267497042101702429561068823078676136874834873374106010246869409765452464460147739508573121061608810873277219936074154096972300365263767904864208299578533797729564842612010221013937067983535579592528509697680206928341939765499826075244041417360929685276215341401770421220301932043900290667069472038975156225432616686077970209196129284735672257712427515564679506419860537448625552528037779366879080749957126185997791575843434753277144813660812884447836355147863883361515659361465774809607088058650111512267048430945606563635709807952765818437969525999217209056072638684141500872098633788146299554463577677707818640552736241270458406989332423083522909410858279697477047102988172274163218023761917596869075327637751991448839963404260949899592322793198941105066498701124737065532131965508943216447684081772588158797967592939208205149183836063906456523904294937696768667477494239475350258165289928281323396615167515069232901244044892594655680445539541829766446805031201067828472890680363594580709465503120082826342561858831785729453951602607616420663843962394402084524727162184977278223109213854498102339541187521404935435126097979934537300159019994391399904282035959953597942024931140494787608920039458726276857870794142879155203933207764232805570121189752312661427052902715880461449065973063194960453818331683270297992673986486510055548855107370745431900401325014977513271472324444749441675917832930595473489123954809896623918372764237657360461314398503882160467533058877843680886041524125385308326470698074163836339406097591701036464025764113878646580397163339660252956461536564426992220551225057634320635195664108701101396675346878790978042365736358788645163186496481631621294718048210531513364188457343778132390075705551956909848353680899502011839850773796436984242855083808340090463109252740757238768195429473262749425567816262636781354436944955534895847841499272192133625422578235187844080848250482367207471055747668007551324027005588352925111795990597180914733776042788694079113833849765924512309202610278387678798123692922947015238864301645468708140639796210353410588534864877415344189471442376332571761132070974397281105766951918626603354135242689780088509427583881992319906933378809346201243901504964155058958736144938361784479033519852822505727708710152993707086480620332257749682727475967033028792529664804976999330808608408920787727515363950221410094756327812248959647234843330323197541405526598591351251380718912821183659086230938924143644789130972099584376413431229433826807930885658078588984629480565183040257933182747657493247265370102473230672310863122491838638155253170137696136118441869038820867265863972054506681566613496085426393877522524539728110828457286687904533956532469071620523307912825678042901204046678299169274418193175006995726534390191941281991466221637877933013884380870538922589366198126322219479334721017512316440779046552619809056474225017277116811821300197258763999246940478465910155009688306423261960189153983849722312917623633928624140614878275927113750346998783247004068046525970533935850615742190887106362440208907700853657772620588418317197591932282901054304285591992335088450081448915121439370938148028624820167458687636732946655861963875492922077547110232192273436607147566844700862463429694007916523124828988924165399415071648838284865502076730178819191828961362452600176604223228649441591939822539486739547022667705639304209113464532152208568215743359413890022292154241272383636359514562518914885132436409835731966212841056007567481110825196680644599196275446388851107500624276985246867868886140910886976710520724873003205407248026279797230208049259878956333812793035601466627967902584047230037517992202567259048566305216529819153654252904131299538071794940193249973465949114592966244146667605948973508836953074036862668895099987616354684539394615377400256862790086388696066012834401892017172253016376639167039778134902508953276032714780023204735889088274936542659047786054916430530689689607900297113020848851854622614623636994406205655209588575501289690833615564397396339518820677354981734219822182254316348893115840807659120356175181158319258878629912423843571716220237832671191196488574176342687092559284442045784031712912033469370826828101015893491959109500413886581508892504695245289488668784672725983929626137305197442568521404269862179427073303221559499909760190662923258406382503980602250102940676204578680216617017250502850132524075890934802284053887139157969720336101555642042409732142500681585942234300091133417982071139764419053340202679112558875249594060787167563538073690580590894629106793580287107642693528111669724141278063095583367763843431152306402669409119258200461443684705898329217022338392927845497946901874287175128276213921627723506172215976424905809770102183691945165130409493151401324726802293389295843872653146869103644916866884223602641250070243189946728179019074539868671618081780773172917127650917016790444668741908368434828277542078701915371788339079701483618937773058184912738798683649188792367569496646555961480463863270672551755994934729429543341589876410142704162340210977045969477542822470865299371536725493821379088013281138136321741372682790449810137749967872947526430362493807880762475016348660276783103363167975722563737051716373291149241402500585901747045722999228172616446220348672303737757684247126925095145450626739632239912619258836202073893705604292067686874306042335298680453693384482943739175719001946653832280051909593353583421791066223507320192744352987259536637801605569972701141593419641101703205837216544222840408328584606579553580959613668275383736832729341020822383468364680779740216375045579878339741980255912075677281774688382363049489245673520872127363970633426071966457252863837869936515437963562271916086239269696151598535352186414764056616399514829502250283512592713403001890602603338134686362520365795692868903273079968523483281275359525883039756977595509226908473295233514548144467459422121923934294514606462748199212900741000109185194190774569433678972248281184123188040079504494185277421704078350026090561419008832215166603404149158671774192171801716817861535835508524709733165928865979594418704071845793878721304680372123154992163560966949314717182938917230614023402830706492244383093147131164218144622535495569361626528301368017699080992147832254398820765229395600484530594738502918923362787852301577428495046888192437318584085619771815826808448080941805396096212492100955319530140395614860906573374229574321272813481046730274528401055352079962025365228791518287800610388468652669176259044971002720592694982819612335943647158463704460721985083436534144606432746842055681570545362316551968536138617439772643628450256149439044494916008787252864697534655593568331892166010641107744952668323290426315529506624434182679404799422497483910756349068572795461391509575110515245496960027746284850374323541049931824736134485407879821834197398743349227593111514746078801600461309084369853362608557139335234737601950349210569847461368982817449274288520246422451091684629166030552765976898082338321900127566970789365191709914793292264370604923545662756114877422074416481604227104246759053277366839522326518224092003892862542565752866696488433056396363243464401069520519709120655869754252756561865939155210969684339495927275805714686895291904132545418594841919048035385949551661941233688430304768750468083417010282613223440965727145856168568214898997485951557200256958700983289041602855577698165391560269308479965461593210180519973552096315879330451188958281750045530177955069762492677778869966185031200337972743514997413597650715025843551547110957039940527045904080832581853149351370447825802912320189947740137508740684781118039261972088856036347133783846377982156763306471335820934675719589766908260511402669326178938407984318325005901800397193227673296814593851056153835797130991231419394593624215906158418801135292422617812110034150290449600133614638223680309711330562909410990027856429457261535733632942782855539118981102189423737205776162453781487573976581218891357854287639700903648068481129147418828560182056102893675857929497030957437414257609045459481611446604604211357646876007736977196268377005413663588264878948380714239822101706617477857609291742970331303172908779133901002608187451937841588535647869617552761459905751913310219343994273990092684766071884624963030617092536976188635922538629829491472786540412316634875911397068383314220042951534469433374238214090080267041357700530068690099562199569095531813175322930928503283323549815814197777346995281409199525440647535824092916497439475136214454797250284320625318256959606525227427166509471357791514114179300625291380375188876453806242181553474460458427546172376921684684780479096005706719290547388547753489342767706034066175734605228664016568004656995785600457510046787684974590512632883779485545211064804367649272372846492090919615732037614833536037970135061643434427321472402294878794354288656409299593851663582989945861960877286024605575734320684454025184400940226226759569459960864192373635692484740725209169035867481732694344461147529208714865314505670536296879328563303563699786845895652350675585638552987760990370552335577649507683258790973953162033054503970225209149230869714900959990728443484324554151938728636439164505617496178156059522685485700753119735576763052698784164106212380577431638410509812713493809018055949111693724970731828231797238898138540510177460032975399654980800477118990008162646650938725632365760528827719703278104453795802923711695459426054657598048655065222999696928732251167550990985811687014000687537776610378375024167276787695985748780931976830283660181284832157344352435937671191435538194961470699157743374305262387333827445966092065708819616205286113394801540897970044282502171067076767842715146057639673949231188939961796022361095127016492271475175745985003600222301193790962667665232586416468741123254906448012925152108079019901297635933098861321118688794667951932359111192557051234496510690364824543016054313846597058463746679804004823662735821492034838471910616642285875768094587079006685335504819426877601761600698034385778642423504854266378461648901349643546626973791280132151124929239211317091985967896124222053649180381485414878957574199633407597359059329955510904185457767807281856397062686067017796291598318802349802633066777157937824695124699016373658368190009289351097225173934676705090089063657167230033096809541132351217403136879923271659909567149180478482561105272398152732661583083306242164826305316130136461833149463075912974224513955185580571468102926823626624903171156429200859013492678434829736169707650101846419847120386485331090174673353061205612898181118456806187306006707581466829827384085137687081420242173749646188007480500238419463580130167230445757130012337647651659171606896792960588082933864519628190671266544658979467598737734175672953363217416571143501115373355047171180791227228177368598678122152966211402158223017795178632309880566946228337705467907572390290952634128720090198656929398934537982000403559204020823621962623678352138618759367352058461879155187658174495746648607454953795903244859939252874083154916975521750131392404173697497728035734206600720042152364696384141496290766078001565416332604125869556953898572050919145481267913397610991252490572307818355132468848535633172601491482715997314394574694755690608445062977476251758333634575170859790525999917933062347720969207099672123562918185594197569296636903317389321540386302439754688950830700520586281916893607375978430254946413138555184383342892912613886248692415275336399688240962142776422696448390745120232174881214814552522478131672307437716479737865534335140989925856766757395071389145512135746448468683903321131847856327768179037428928104926985336311609477769074241985827746236543107039937752662216833318742998208496641231306316341471437340830816316974706720848842112266707993713011761567453319786710014820648753389528835049149765662478482631660571566454951699507338892952323087630246234581455732414676817197033350512761621692376646342886257456528426845017814764918357380215642037945438707357690228282523018851702770431753329211103221298110240727111569510686448703873162707822435479481449641457624191600040078872384854309804573699568254044912167920237461869591990286002192099325887266455835232356555575778968860668400979528470065472805213337453765281624950348952818878852952820819899274019973051678692199958411519847201606271299658531979948560255051914423731395217069520014877993630669534889472833028856923530889244590399523554929901603793948374072457275689822816032044468165712021400761355990876062643166584427771899911012820547651222864547513591309459866135040107143811882224288734266249463457353663323207760803188923734975960263311220667368225210005057560797283372250291954330662833649957723886769092753085584852665641088192917629101495995595750010469139920868387512272144980197152361511800316796519752909502593053733372156422562351502278454432270366731039635760057791885169663435712524923767418077322684740367767033360550298759898632081116510825237292140664957315511476186657422068661327561211404476667893828456664553601082366647802691684589086188420902673897935963169132235378038485744009768308236796818924491273045146776850091756667909090009406724254965832913229061436868130101126160593180748297008230202952847069523553662657346525187158081616367539561400930592444409388826669533935615321472510785210442567272617351194723170033980999939766503699249383498874892330856262910936911754671096134772955307542393596067624004044394554793585564037851534280213062912328016740740455341646631694216395050183438054612174311118591422050148912952199018363647770735959114706514937377648204349835720593542826250765680845118627648800181874662892613015089281372032531283615024434963113806162350827570854124228890065108978527652403763085481894946919915088057322665812813617420753399879605810879659643593449123040329465215964619338661948327930195747829422966151477294801677991275009621473164597962437136961861925922147344551752388437528816009996621420187397370515599950976494651732670166398023290719763802281558646041513419179029491567307523419238135394016040058221777143103974518357369688621709340428316824918544337747145020993722456436263028285286943742472923780694021272653237380580811083028631904432159240647038313708374764580170843822069783637172250136400226112890134389583714835872711078289701729282777210341640783606468334621956398921281279750378161012783684022532687261317945538154716360626024319807480344887708416934938363737933908460371916134394917895098519743438069042177499455711302308296988837554240093430362234299596886299248447463467721413118382114327737565461691707502349570014494524512519849327790191116310467387140460448334976627682808672087383606695959851522212768277199790776932824298628601202154383154663409638397015569321407494574837354606135502191180115415596206296528790375643685937056621975965419761001599449067034883368986269249104048636445538100152019169856774436390666117775731778361920356137144113337781159132418529117219470626256731186366097958428373590207231556633378165309187726792321045054291264341345961086707756722022144337800634797796138371012959954966348109393576135992797004013992354114695416491256505742205994386422617550754278544890556232982538589793431286432664113804918479817954048339286965272674663491463607027157151047157992747460731211127190150734254699594907006211306176385439110245621106936408739184485752778829526771414279559794374160860963444600272860295969739483813853429361949325348684457641196751338772909970780020131486298847678424769275330118308660680029429122039310527597629208026706639409704117834714555456737565125846482479540448616490566963691546597006789333662117184693253298548680594865223466258133992543932909674503317703524475027812709999275665570180189502347254238337636385163947490091451453889848185936868606915576124169747768085352803078976169475052031660968136248012727606756701185399304455371683602284188747334922962912326287626243047183729670362877929828825411656038119988773227393074784102949550426226495576520270750748188935552908666058084889772683522137334346801133561213078309881320287747514609033934721541813759250334172788282393875858442338578188390369492050800295061962059942708993820823680492987846953149651596903136713059642243989302916234092536606649984567036007736526701197330548729161395466827295447485525463221158757289036567076748185198854893203007895227048264377496778699403885444265504432333019836665138255064406708562014028205887389282986487843772917949639279978211116392104467588691731259146200734769882605700733116400536527868535360275359600171983613355882766847346076291559533861141774092287729861566795162209685543318436727356075653102574253660648160275429918842986563803849587940431636070612638950330902583655718268608914002731137945973374606322714935657573622038196643121867801970682426682886713287629457732439927963883338777400422337787153083540890861982003230464095026752072971553059816331403583467686791015177521172746840945249119719726042175582848196777584897689073473319647360925557339934528172329039006441974974198143222049350590912782687861023894014766047990381483408317918789386518280998130067389716859980257187289592143939463204250172445491380079619244885589910631088471334662262348616101120910034029745568713998003353886443184665662774470502039129261424176836370166782575492955864310650384387263967203012532584296992466710036152546635469567214274160553323926008772460086600115703396198925439453521466114924013022862291848255351314601323239615700656227273869062760171483423789890532905884472717503434531307630486925023149232381162637269906462158660316058695607393901233184982844022943747755981497975839974370933649944262688267636748574809785731131637703961140849686701371469650634185387664224825515819333343169358327257649718686084026280671147494369707113975197623279455152952962463688970408825416465959920854167833886989122616709051825891150740106878010829545578034042339541067906360401653036347737429721883598774738691263918429690546112159375327712702979336048285248471681244324482027359254810071680015516025554043909866823160809732410892322872515334778733401283051303438992556469474673059875213175701200855647682044675930989442766557390636573032167348840222197120823873208664355621392753831656788787582255625997362888338749973488161982577526701862344611684778977316146250407441299505909406258751574151773049968538441132835968567698897661919568086223671467075930261812028293591885526416678717410630023443861347344141667184997499695583405849048422770487238037405727937565468110279622557278773442713430334052958145944869056829913428701935762870794733489982685521967303571851012159092191188591327211009262598992424332837108824096832001177865570362499143730236529185162379680761827235021663726736447962600567545434726770030686735753292608142958111673993523820329817242536321040728763720928601005999688199697335093181603538406146863797370181551464015537149013347572418864078735443409433054929398477276371630240398617665151563550074836216572014666705051307305145286053422450599958176173047162648629116586060623406689308803987251734287459141916625109981564380450659705301448806803558113204040831578356173306651242792606535976128267339129375286472923063865839738196424980686639862847885002464731459048740861973775978513415462024548780567229109746000372994317771707361914440577648181806489210934159926369682222635730458785748565394262153087952178381234356313122005277386791119867538889444002496559445025585628807816994890413488258898309192856212637709108637687038159575200891341216734223464345443374437754008504508921219707351344621247979430455759468504553514519169543417990106865739642766086278231854821185378941909545856646037833540218580522502038421541056528221844906498733487197419968563378434796338258106309959144476011670339970868519936104635926595051506199356163145770284810401650129689085909784657227472772546579461488119275051313457732449586069779700459687500504478427343663208599489078434927205642448948918394042628040684563437372223705114467599087239172852887894956572519365440250588434738467205925745091090805759421854072646316218033521819605029067707193558962904689671290180884245523934730438488312679143482625650692385369087145336344279414419165794237817062835289270963710674640473416003236495077505737621713363855694093419585806170690822436060661587231558077660594851960423171267739412887599681282937609141420272456643711037315656818976418806096080443715316221106289468849988109713875291059198066290245237331052124709841002615627579052376005615425961177107216790811753671971217336879783655444140617289941511691603192785289682325274906256055187789571435100730342411763318253694405255388351643724290146267276825024294694995079801301168613143171264009094018806554550861895296121746696547466639420604253834783966684842216945308227676922293531001318796358778618081669527864193496709052622524056201393806021750131327105641543112124096861579038154511343098848602521698704111673663110961582046390117996835788358800260296434176344563428852451587445254091807355686011003502492106345063191294187439187302001419491554320684296260330992698885944517564058878987525119828636759629352946359842051849905306948371572907910184817870368112521231427984674073325884872611588285680159199847245813607951927549378494745740715102967338660370086481174610838867278280541477534552353612598822444256137639558938538783167449143886522652322256763881191165529666867707669254753046776680382590116793724096762650593258435784064066516633883809669602945030910370836108771127594276629953111511794759432053927378983745482453594541034479925426573370417989130215272027562428925759831201587868630847829685121286131312696559102288482299015384705049344443474289895663927769643762244044502146784748815974936620506621005269578115032460922932647048136924359456275192650701257525490149282891408439323332883851242175944758348353231991395439288819284616321816908933740222389444288145356174780468812420176289903207334545340905047005621876551114928152598142012774272626178381877200583674606324249067797693718853262558708597912805247877672945741779410649676788845908400792498477135279168181156203817932095936138512270374284398583185314390512044649033900380260109862630887985812901575691754294683739238245715606602547297159209935924549027738898499650135782598044649213058143558367694452760893148468961620206322738751525760062340878286052004239726913487885082127830868710943860894480211294454304365377157662794195862880193960734572316768156186995126417361849239335244488356066079509236596660194201092792102263146462538648556812014562749510465950200855188980499746658194712101484859608511589192003033647535282612880130831656218262644623150480699073291240955033475475640374574782029920435559213099684516809475996842547382050723777627549654531421023075450301700452725102898210396820910810586501792586109000911731017968294320707050642911733232126561714939797861748144704412043742618502400492764729332294031613759921779283915612597340789070396280268892882843581997592876573011148992728051485424130975535906418750738091771150007661110794778271110323943074298356211656445739910109876155068401638433902702206073865471143315079144495951803544568983317166987142890632579671056861639355356955950772978863280202646295944242519304143164181248795583797468718736257753871344239316995822839974069326207308456539712292948255404497555131148162320947290747844051683517126494935747831309296282916526476650834077639217162504877420511498391323150570339071868101153966218833822762291260308280383799858863496047459334403484586212762850052080891100079617613463606361991416271968493618262558606697011955299449137157908987866603654204240809139184233980624784683198108791413041444389651343343738313881556995549963422445150384665128081038919905368553104315470579702896900621982673536220711944447763614436697533217358552572629489190405910464976680653397145358325656705483532431245439906845559964750059055398615946686941591688807721388550283241085798019894836334977100104290220398753751786331344782350585260913964282159689566990833022798369533763726599221819634995946442413250714912813274259061091627716288400453892750433585820692845945982414041198579379855139987783034248239516053094913902280662143052967617772800402174129311764261175558619572328782540643021888785890869672427891324580498931907258958876079043599496814260883787947254295920291868675845982108476748456934735106665057801918390961356317433248736454668010222213025050670393139584912567030178900357778286960754500979220499244739500932132717013285892195956117020585651143838802039556414842194031879835039220903878309741189895630795522737201074685066705834089573637003528856652330314406878872136024176269982266957542476649006517777832129616908792774667244179134969243176953375840495281285681988634417003298604343520885584417687774438263957569939799016429042246833796544922221532055993494505263058498140918697202070724443531260983942009506116817516972098778024923151595374588534050004808907416109473033381905200228562923790313492418275007198639715687828171494774886962558750199810599253673791180716973295748837011091911490935981865858702302734359985774927232536546944936721714282728523661699892077769057221641132391544875296031850041006793653154113105413170412107006462765999819691883234257461280615490904430484287626181899786002733144774132178530349020932547082994185729343805304240423579831861003057061996617140310756116025352373774399576995760472705968760829324698613111232383326585218901068577338145989115724280523890312688588262104701569781438037187314829067833758947615700096269296435960858143551450825098275756662453201950452971747980688064157877575344382636483592134012683616740123580799300388449871034266905990245910492599822846571439440867391563487484063585567116285765239359177405592078791316182058348302653408006279885780521965558244658000685250671429139442793728315407500873338931100336163438101392265498777576863026462296492665021666890825728073483421884337802569416423056385647969943853630489717610828767793614193008067918325972390451568619104979707140140684385263965345539345770789921006687824883456064549523094235959516892053549576514410986327219258623808141052134387440116547335300761879977644565357009005571600041265954296484369293056490431343787059012034455790287747772738514753028331940137731507117225679003398323657262354025689309975774980191927577714722080633496496201348010534706943173542423340191354518089944313395667838685076885107551979974125404889253708288766927525634956648470173417676670955481781750763253575387815180673752067790850290226224919499131467356070942029364096580926501149288759736007400520834659999079879610342593116379031254462826741646111852222103729592817237181826817488637760564695088158407369671700943485835889454091756230934794051633554594696053130200797576017033913622402884215198973331704609106778971655276907128777681592794702839720294011395841330327091671309431126073336753726400310762609564973048209352500137015386289906639490747960836618010166564980071712915136424740485392102950097178218790363046424893208001515741663583027009181110258503454013835810115637789703278589802668273541176391588207984742602896040627426453643415420368969472812207143888398202345456037442278281395680246916479043544316944519379979925622409455137576090844033856789731336226306255416233339974896861559784204263795496687417393789677117447602012814553590068199897387264578227367421508098334663683790935236645155575579883331593923259848945624756647255085240561952011802761283539524385474690329098574829694775008796215365116279802552719083780095811410935864444151580023464496629627943114624025995495604674437368105970106405085240088503506583146798744632402697657507416499965707698236154504256862774473665423846931228246247989952401467473682886466839165715933239557863675554472775742710746586577720427977751787959838876617055908932037066317092451200196783481200078479018183929509572082356925240871468955207152875711003575722931875481048463478042110087757129279274393128035394497741772877388969520041716980223913069073256894142402429366232792439863614169074200389529362516185899910389475467362969564642495029605358216061763126625345862104480617933744256661285145529119038534523601847902979138525040664594051634792889689616256812470989537898693597392745911088169768387000003470561955743777016480873071668752972317283499779063523890604725683437421898232883472402757466529180839255836204565378597853004209757728833743194097968420602598353513089714395228438386012449871560157335695659628928601927863928537104095544288182246347501476036982205647449335877306225100528287735138705410456990302763640594702941783861401570667383466070729369779225587527280996976281892636478597213233684709037807075444193263126529599944664470584184561561075972425743804047920052310107144190444330588007076339472710063933173595298070753642353360711169565365693053293293940181293322416562307245203908885306090415294616338894746054981754427557812829680000465326393577254491710331796567053833127811335424387239913964834147695794775144728534626044305179294372783086705174310247874918519775823125146769982941484858551494974517504888193816544404606117046292338704826181745557297592522695793839575382518194427364947278102356739205113115363473573560422816814318271254553650984761838576227045999465023367691816534131841126181555573349812674352488507273358472164101473896037228304527932383211217905562707543955272661248735860027761832461268393408952948511782187668730438829467747397885954419441858106052010715648316099529227472211448871133754717879500000267643396026921700380851656886289045369840168172098420027905120287772153994202226195599425358491220285454863134419268899783340750426850138557385951548907014131901968885860236389612168441097810959739390977951361096130362576939160107963921474040245992263923122202744693392656343534507433645558479486874735021268290021835802266271901330888246492266799156892404988527294423685240203064543322042398608281746094415004991925213792176581538309744551618374373210678570279726108816082021592274816199855429460232939334326327094842454174355267170905885610736378034603297102298505045341501073927302028195013593275645992302917407781910907739028877470220343356360653898903209205950175965290166016356777386867899363091966126156594315623234978700143903618613720298223581502319111874395111306749187202247940467256751141881721583731353653694341566572353204102458427628438778781475630243648865754978146923635785068779222334776036376772880348182463509254563357877962000714862310363682298874760161734520881048333099461458844275668054346050965268814315494541497447319252760969855685925940884491706508767940640865609672289753076744647005404537928584496565271013996065776089235635635516824030365156583428693364288199139468902374597426806297230927454825581882292064240435219323682278434135308348951250119377993435446595482844275004604882724883450575406277280726142195406391904934179507085911378047185637178183341686632378468509348526302435558315634209768879430394495344873785599816548495876985695391884253087809701149971773493227461453341223876855965802819570010663301858515923653545226513322554882617410854460104144399565898480506634570287863529983209871597677807697790332835167282364984362743606263556543899025143208927699780511636590229861535590043289337693526576102730305212478970971884881051225786781012629053480134025675364102464261592126012972343202802384623907111510208739612282233408520575935368229285268023454332228656058235517796584118875550282980610211868558026904193365683717749142831440088648098650418907668063556759951255373995128686552365551250481339003194367786155280867919992425355812126493699989247980532030812992880565455813604531441175837875006022878880729606726069735198933740864833001913927349147111062782338032997962034368763234467895153556341907111482462844125969687744505531436246726304651078738327925578210490925973286638096185347512187273180350855833585373990107065936482053215390982809984120373550017120422918197063241336149048556980472899105605549758870017706654347162415026454346146681897968216909353634939839569922014043392133519354488004280891301783694023087872475939030838031188096735134440880922186095138363772234545937623538128245598568765048919320363094736527620432651445776051857155045022196600708399447633820605268365239256809343916460855600916638666354651255389867927078809794499475800854162751819805938392668927045672221960149729245886684268486603097030692493119585311382151244151868541024338088028755479886033233973996067275921027855790395456806639031713812284821396475361476826625760305207264164866593965479511171288640183720671478380533438711686520471415653110336979562315795574650903812020760551231132525701454944419289488434124997111171310106551410951445770900037523276213116916551364682095508473956608581911789322099793045395669267193117620059184292278546518414365613488623147188124869782304680297017025194239871599120899562164020291122825945292944699084686897801196583058717804126199142657993625301483319547210343967321442095886255326193861326723858526915568905269989063556779486954323651605548104893962545554344898585702641515380504377589293082446254303226372409385735733799114133078227609378884117176108394937888027587759801648374342826520278388458584208729946752527081065462390106491436466137804160859493595496831797702501195272325651297927400072759049955449243783472501164826686284654311785943386920314676573422586358962586551643390928903354693885319261861200277589558334003605459109543726745266255917784195327427660566511515478184293022874750859823722585335412485015280199841049848667433380032317817571183878540477841282717468928535704141920833786904840130716445274813812862315855549523631312506065933388618818608663564037633047039302240743124775377512927683953727201773912105676706781805121416857376729640959065573899933205516044606862687975727809033956234571261797659987604816172986281778197110803487179889826673534485726976685812866753082636636500735851898890724696931687345376059342979368830274690298476935836678242984491096387774340868345945996290870049066904628385681054974868522451021471444920424525504936357280320195790385936582118647466441531892888521175100685179584704423998521972470968839882413963345232597842324632545825009822821076738007849845330819588467960634362368593050071428559907077426265672855368720112038132346638908458538409456024944654754388213866249312798786435285554843404017268100230657728213630111142621291450663679045465470509273551831059337587771283800737708572510500049432397402154429578927684430982241120211033239070255056778779140836856750743978034019497807898168115539900196374697159438418439855060510746263436015663784924655788539291738212086486486135004357418075414203678157684924555275964715309230036951736162360962009160661644425019891731566928045547692293508396530985799566242169908206425011170234165070632823646363780027059297188943456873245756517040296388823046914431342049241716670337123520781120882647270091799139146780269707082400706464907496581808257983403906420320643574362784925365601207954509720025578991034499635442000770081848435743946524295644912481872638391898212096429913489877835151759730054539537961881042031335251914140377425827051973923789429538439340074307196493254985576018796530179985006887475153252168735664160887017394999157563194755164658219074415976498565457246624488269172685945133502138158976300962507463496714485862277576127600953378467769641955742920211369277563223679885447108923255923826817430580666536838060667445756033737580974763320754101430887442581951238765209340283835025283918498749072240766297947467391945010640751187767967991006806381001693456596107530309465890841217452924092409552131808906745194906876400890753840006622789480662788309399342858225704314528090075239349359487824249008575667462804331845366711857678337526057392662362210767549882056331705524843668361023636635997114308614079265677319479714001510748391039121885114079607731332259846113369181639472260775230734037854588795735761347963388091094773943146104228237063087658068112609463922058772267092198853152309036993526831050799011679386523415988845739892993761641903967995918213891379526342912095001985470772589991330830368045309751043055014208505061774392823184428804152486460947340172918933393629133031457153870174823540811858448167005083547800172459064031395874493455547272870466521577919755212032144298138821022141038183808904505827019449467950503449890291696166797593074249844239881204273143933022856115293870559002510085523931491253934615611677968185589143775953364666888406562405991587658103814463379920285836551524416089490307117881033784520891499485189817038383156770105486143119317378362281491515657552513798774207657291652718191878071825726614846328266269748850303329754925277987599100325184763113502760817969740802524366202581491193626782130479843163722229427374687940624380380798020314594563217595721362965200017495715368114367713865094035489806943723171723520883645827310434655288198398731083891950275009256311297444373863210437985583942630842921855200562288895386935880655236236965033712028063766080488865949514666701114001939976959444689528851118152749916587674989072584497166322282133082412078944288031873184190138590143867064916534362996327088974689120583400768937648873687417349877405388004076343915652281280543262179989765119250671049000740949312248509897985807843551836565345548161312787479750747456702890814824925977570201134726256941186179622431602421124403846546109377353309055197041468567310945777956227407284060801189346594530819904667336193966968100565027916762980107898922379841820960496510295450646127341588009783424386141263226087589513790525648714997108871554383938659134255825539370970141452178047210110535248874596450489274412208634077831241504206858756042012458855265933545815462388308895160654502297098515167487993806332346901573445276226516438415927517230458560447490940756689552769055762332490272019396959627317984403639270882761022748648143812421130404641489932813538125733944533142707612154358424883076422030017184565627935990477448303980503766753322733080981651824108874134740625321969756979102548072688522347769955368049602038664711902750557202143252313160423463522445240064124811222265601378819952434847503370832739556408370190075397827352253326794104774592072676588339504118523788400656263262426982535060854482567180928590343256037591523335861320907406404219530169508600848459988511504210375070673173147776446773822071635029271384193225995231733031011072267874120391019498773081363591709833992679357160935050474871280398080163380330406317123114323866350112750945135347768356892564237125710516022494088497270692637909070514602191425853033683110274182313368104799232425338279083616859087029120781725826279308729678089493456795837908059773281604475651486432320489755058395074502241521150681752507222239256956957172820915157424601255851139769772056771188116244197567798188521330964115240903670190994803281494320514294457780214331613398732554040562051411029438625972926630004548047232726029816654933632266298213174898324048592412488859569978689755385559629994359291600356470960391006757713258710734941428395953319235087328530381038296864177726685784502243334663293366763585830110175739030617969237273393644793171023767234656529769514479183990127194272692455903519523649778592345954392790985691931259332650444933357989555979770437319057317456351191295405645394885739309237481558912919534594591316129508356219125401963388799487141524360009084745085757108215240235482189247200176433908916870542157690239591842111848520659994537529028969673892219942890450673775686723796447426499992408906925932997877153840963589112457162659251504605052055873539455901342837594122253617230865762990874143517366494937208712674448814425907239043914680846599864655178852370835949237552840605099523402084110278195832706870170982709858644270081093349627422104032586582104384010073340480146472794205325311207992824787879207006410162266865848842090854301581098463891064968381947351147089523928692655302354238160051660643454392507232373766191953457937627269738423491131366450612958442747585817738771744995155084320866597421418270516974441101271889721829817770900949538204937323523116207716768000962968167347440116514994233117825592892806554033722640753274616824281946701074656898417702608593718666252416809985667625228655465954989045015895451198667439662363160638222926424622322730593264492263739927677738097825180849183495049374880767932680993475021267757149269628873861247623858144615077259218834349053085569022141783127936335624975995004027259610631114204124795117448661907455598566655553044146973724245949408648894873714209156907355396427391199156518771829286146678463678171998531136620510759889918108342656917147292410721842892135208437873914379036720641330660848096198033316310920927770738319758558249914036906968721360517244672506396851876242405205124175883441268936212858092697207319833294919280416017002278266527665119129150371233133118540802652494819683642866574264836908168829763397202254076929798970890334123967513297761823637441311902553111503056599284852242931427054429890536974765036122668319976500522935790930097519212205048871426038543421898416525407128335322742236000244268553908224800267789131279861885420813417489451666196350582597886605533655496087910614241813483057999678439862168446678537830374526068850673825958468560587247343990007519432152569212948009498275991372205331970105791117475798217223576929853486942855863104649826508113389466240957451551901327680246745500994467118155911769376827888508084394902748753335449254514503943821754824217771476380300964494722501100394712238682091829305917826891109667431737376642953883322837696788036984527997168603628568577151697199403160714472230263286092639954271310111164978325255862564712620106898017492446767911734667358100428985365379304875464938129118450280150152187551814613820880232902159591659061403764426485335010431518170182191780046104761325762496382777595043436788654285499839882227093329669141442266998252263182581979036236852191821503311463154177327641217285782668224841822073562526739109826604790333927021988756246635666784864223405443520784461344476265461729279303022298586054820469032208297523437847660311622329131098649472493939339922996537918801024443320095558268616559547565769533698207379494985736172933464148565057286312666659088754937518148452630082860647642840934380502002143785311542579228105645692825926155685049921731404781564292684528650488999774130873537402550893725662228501589796132007403852678730905204933712425984430515795662378909818462985424358097008642613539049742388891572354929400867480103780187496332838127606533219898848467597496812827426036608113898134952989291324292858196132298805891948433462346576133516798553875943308400332311452241057389899946505591879867968604642962904786542691196441119804760357574038780415127397411053487357776055022285595890000548560741177351206562547322880191537168910908197902326184936450385722418537095523871420971594888231024895108268660929257455255133204729466268195840503800781476693402888850810987878839411278312191503169345709338993347066420105667802141885886502621185877856947993033004483853705485816610351733585330154342947983729226933788713222380773454663944436231433865893992121341771737392196601488783756095067482141316165180706878527190529852893864313213974063015716146079488203900713253508353384092345392211979687146948465431674144850734046610901710702165386447401161110997829948477330651301878080297406697416837763973225390811315392697487060584144016744358787841338446422868287928938722499147585835651903137865734227783231841189419904707268455922836056316860314089567779002402439667235760553497218591607977035591683813315808748181986765555938252325438890387096800021438360267141251177933687227507485745507138515823443655319013538756564909791129366392165586150889957946620884426092602166940251617694574260314650254365053477466011429614083165008358118664786108589679908687231691100785377706555815097401373217004503931288767483986210788082881955473704360299795754116076753589244564753088107742974297579613461370248794243719443628730640250142871188430494276771526844772633529280550115395915198222376492063887286339041071736001759541375369494249055568815497735318157250083167193193125101870104461872846844744317477334807317472226969920084470114276405112767593659181263067332605099151320902253642623550050126079811779710622869368602331369736775530813560200460879770690774304516405161428601171522240087411463998006719568072233187352867565699689936908803701462312030683582316487784893921531584800512680399878780188981394970333807051046096057799340566913413153591620277698385256035901277078530372681024367826054843424247223364469764305893934396168254484722800051764237306455066661574219436118773347565505532973048651601072405241205349760653634901295821575428448227389378613247413298340735640276082884259689590263167625272182805139721228849688749136637814290566462068634449355251362837405978176139346438246145707656358939334209014395425957904298862043975502541325595373147465142909494255501479662998207366169653316544282596315381361576793417519354716468920027969606883488608884634883023450807911329738219430670059941872019617676135166936541918259091077216740743436023896354109662878199624810044896318762725761449189810177252648907522794121975354207555483022931475461893942800544807294714850534348619535697445366452258192350524451825473216320245843378327573319880437350319530426793945419969897955884965589492728801513969557817258534618425070076488579074310309168061571688192883410383464941456506252756565816648178788149968730822095360648825329129431164980060021426828648633675868010290467562881704813413372067571288912023018853418705084211965699676268943168769209067581420463973807995976463403281121381832085596101381780154910285765368773674295141033113057501239450474119386811624601529410201691881358190330148918754245684219850397256848251352261985303713061832875094948490616860012943080179820832942235772428305750413609008681199528158926795400274233827266074233023843543540992410515676463006789795662910209563291340805794379551334554199031055873029313221460225671348739169446846470704218410650275815247055160846409147976171521569512998804955758450322402255439712217446303384590257826211042482849624397805387023273134938495857163810243833785664511734673917515004086180618635363557534703754024027199920898400529338304045479682886446947665552561766836478613933701486890679197022340246973533913650215731906265248935851753321936062635087921918857326851888202940194464424486760400845982205845815712641526165815309110623297517271761439234858719773328403670173846074461359325156942395615172160631063164043871268434344252208091366800629415595983041782007760324741402543213817086020118773257091761068745122372908725821897466861150337153493195866692422072684472735037594822592068337656592394365958768474409584488957230290849753780605875052823472723739806259800542335195992820456668392093135610983333475549498380828728178559796409844796387590662428918753006000554562889842585050245480512476209123459669947895891664311540361109509545430101295517527135683754501719421371005678161989863839763887623711131814085586374307329075774256307563160321213175592488713257291654289563031887739269365655265608462608923586413069072320477779855574105194094426280193991173156901273703070640495642124388374756355171495825249473815690039223461542028206837893826403088250933051222960918433582374826763397653174642842871191189750286748091482859826075283729884130026805529256304919642365200391611925288540637193319580789186040950485709184381881442601286037216193916327098518416063430523024537337329483891821510998529046692671161954231823586421016318549233810354119636240884517312940085223679748781661841361883710590961126628744625427902430977801321500630129456619489746610539099206566388703162579952644114477110378488343564185685034714457637687159498493983478079719839834707396080547625055555354061107372785591081289036134874870559636426165207893418325735046524161399256961590426303788437050065183984736879680475388361746941417837159742450905348558072072233835806243517376381834378172872987959488245642131398082562106410477486079128175602240068639439940644480308719904574644007263575213881081287863905666134508834971994139007840739916090193496277076536278658963166545345836986145415085650718320198837932353806174416515773039889260797733682710630874221948023267814268368740850878359837527627749022718862836879941754311276209535203335885689330461195058279849179258418768085444745610919290609354757151809742995690995568526337080010315166912436398280915198392740174149693984128993107162348732586896522157182740545441693603519927052057636614412382586029531255560380099371475143318144536484993735598740525426337570187255489262997689009100241783419198302111590186057870602785833097929573705452384470130238182206610851550806798439593662060574374507423882478681222165173211435837095044727815826774820781985720539829267882162285077001077421990271013375623057721327305114130245796939938885633735312142851009474975224267089757035033217055770179757874148551002775683545505417387947022347936520390099784343936251445889666667644725582768500850289188363841770876885423959591282903446402699175997059799656199336463191557421441501158601142341601809863418459587044887407533246511630251168729594341653542329829334536292253718794223278120340561046697651338885988393470392391997660909721865091760862778675830582428258206086397827349867654010824813545025804088444363343824723922951748421527590375784409198517104068091394102593126476342274048714432556485191057238032489096108182650027871313695843648502032461036372076326417506407909162973425521017180299782044488493827563622254658501665141012104767745384358938019955675180761206278598422706132117815653684908993083380674133433149032779375495667320617507808623826964336811349295457055549094484625473564549630611296620570328759931636661062574902846075680079955226964183076902353440600340641135606500612869184844087416302372257938330480775154508469556507700604001819804006911612742422569955551295613365880611849452707940263269263800356973590731047305982122861061344207069072637476605813359372757862332075818379253561504049719338591196205088897294008696166598420681964221253826936914752527859967151680953039020335335740301747519214270027129496446140037137319868642472109268781473368732161252483481898278941239699822713646024629685219903544299204456608841322362226164308999250587641600710710164949665169177679483005479074508939212376603873316949728534302344971701453364377996439634038476761481934976652906031707339647386720132833493047122795799322101685759932888028072042000329022105990977158629190032605701793572735732498379662765222564623684289053100651539506788004956401948132857277257715734053603304112508779860852663011411239675478246184501655674638696609221853916912218239737391322459562383111202964858502898768337890036799819654388847009180068320434208330847366058123920021338605561560895133615800347323188194857771006735446235542570537734397714833636904809374343659759887576472955586374540458336632421046119818762027549044076056057650424114843362779043048914761935413551521664646990087193580631667470572151357657316391654699499609274835529061452372560151393546142448517379541674028313744628737917336581474557937739238250478627124495736311098327921073929622631649483464871385242979193932081057128549673902600633576659326593226912277692751943689607969592646266159830433191849773521606571859674664367714795694476573099889360737246662574464098485565934631910658304452870890052258076506429075112104211668487393202093194747129312563944451669395827436665913399314925780638605637455766705699067813362263095184367649923450103785809855417248338546667661110074664706860030877628575619189306120586381375400744417484859262956981867112564042291208126665485260004013372959803200361801374089787295184297974885202276635986118399813204217425928196142174694877051635371998611703766917180389051648096973946467368700204195130150699615766715118013182486386906659257252527601812223104265972788413507675230328040275093710804234867199922027886479115283564520690050439391117188814478582903954424540766218576609978196268224587254381672411042042255028484624398832094982664802633060932389832887983285583783074227531515869053628202152837560533196328364107768039093886766426810243157577823567425578377147150671489504452170826119742257545230287428942666519584288250172035551201126971644385875770113763882355172567452248105487974627668974941751939154996858057207807076379204490534575647193156632905020285573155840858378155650511031848713029327945992018919269228836532175782821728975328230158500589734710015612140157978682482955387440596473472579617874812122089739798659186032434522198361999527129875030735223445641617665918121335335359250813509390979026396689912426112261593904121553587659500912972657595151885443758162260620380860047471193618688755588306016323444137303146835760123562319993907747928150371373269499355509141899242587383694572766933260155501830637897005221306197675842973079888266533978403657196785189028731672609850240870088198147559823295568553736926868815927391639374007577955302371685713676705902130196201447904800669417931324006374861532989652026962473493538394159876898319419895963183558665906660780906676916697207339383102310612783902817310669755960276791407455113056900732136012657114457117053998149153472759386891799183839329328906118944943766189011167053993016189820059639672321478379186903315536804920457976400191593160361700627072898500878236113689233287393558483891512367124243894414858235259424349758294897134784072090410971692541932769581964038605141369684150516913106798183194326439421090443754407032910988390964690177279837490701711905172145664287360388535687668683759649448646344574731980234680696648851353294624908194497060419196217577795313533280199711840971832565649116889555092317105558160066157508042624632546420271605857549452745763379211453144057068138269819681458815671013672675104169600624358448229889629661301585652079651889296900896604110414890425959299399104016875083715251436141052386294259501335121810095858547089390894762199255913886585589681626201452036937489305033512800377799046743996915676856491125702588879652060509971695457905533697991101427073699256734411567734875778368018780513320804318417534338765746351438825344856191602264365077010766752011241099621808747821694958748321271604665325643120905734625787383981705900035255554712596805334084467972940132883734444887432253668354815880714220197569696986201980772113724346184349251033879259651766504907441734549811381808171126331815945419278892124333433584455561722922160174581233318687404205400349795556371557408341443116603395141608176572768116266015643259991103237122675685009655824420253811551311322281094839988018379901616811827904982721451592928403965814874107126809185974255381520365769368724305052244553474094805798399663059875317925567042999590778813061387437734961522248243564112688580812193479776683477995213226127973961863654524093934757709320284214728434413678555219419193074175284148241898151778050412191940241656137385126173744109301089215623013331855784039135334265462806385903572324528265108391224252019849087956619376243415646861145003436589388263681595384621615464415208880419405010112124033050074366764098669523478573644633022414682793746474857081408288037286750447442391502603065289761417652051939541386854809747468562338732189749558396115145544512850621445286963013183745918726993440395272077136142171756478676041303400732479619122020805215916104087515871577160960332377258781139531733957258142117066381785698225916525064862876305716796418291370396953565926937480427107546370201823184073260170395064559373777624627495020932837528732940603790254642075143008478296017219406381838884916519835944221634611376010891615393303177634508299766500668927987057750569125862927364991395395293289106419933388816806906841796157411331501145968480761095170163973129536505015912758040424114847351567647665857837499757364961026895366543907010114686693460971545913206202937568446251637147496608465281653611100824166118153371145306032919050822276042950434438768124444873654874924047382467111038366683560646185110349692301310811499232161020712338322309648757545940060463440812951929459014228466258168259626814911227181952539030722112936592447576694350749137072162162569893899180417217517452306860368886303571432529042321501522946616552537580270236441305727449817534036735529337019807477439354344759803360601079788086635765986114696429361607806752482545657959993782264102335594972099436858843221099642289590979796034330910146382418103033054309589564840292600514515163808253496414702796336886472242856702702336576225461116851250669023853886752710225710103719292107872235530648293842124305689204631313719340411689367805293664849493753329617282752168653624157762193618662048797913660819012572819145115033320513646333237071330839792320688405080386265425663105627806829428184670336552869970059016170154441639712110723336512918142557076257500895345286908477962152207340698215527550821798122113305212742401378112285988003750822438243999272791991374902305934565507897259537272432096136946420228484246464733135773607792213863232736625299129569146285059636402741563292457699290487426973303907368610281497010363980315371832786563424347082056855328458849166585173659214197461500788678739359182792284637453485957748455212397575226294296748479552874533005818756837770410395169760856960532473175484527211687526605747331571847095745407452397545294051563041487941550741487949079262520649837016711265944958946724244275104323816298053820501862705150508091281969431621343171969341783692848042027073051907455469212335532025114824560635609193561281216649685323255274207314122262787337185337766013911843789289186688442788697620586391236275010240631384646402650944761380187514561881359590639618234795361053528046835450859498448666350399449564537662811275448402363155111180440771451375500981840780231281800030596994387075689850923062556913302191574685846965115954841401971085423016400763314238060620902159245441148773860787213565504884304738246797810213784980983594788928813346310570438659953705432046602937522011250833241792152003045048454142395066028353412847628528593133456333214512976233290402453818815317068659394694778383678458574418299442049307358755394785709100204153518233256557243104833342298955446517065355460938052767842876049342222750822573705386782357155265238034852959896880980173309853726313619463000217172272601983737393043456632542943605951822093829979518804963619807770693355674175688807922754557579173633156375541162315184515166733528913193968946569147502453354816456909107574925914005936430739405607505145271061409937579577895800319635118253216123194802617998530365020769039032835266100276400501865003130399604077020129147188902867213187575016624048834549753663482883732529352491824305844079680908004813833046589058003871110263808510421392403033262792479920414947369581388724757857091293872003739301776659387308046911480675656451930323247660673248202259810466492769555591831444275264360082636220961682393031439511190005450551404841702498859857986766527007807195382258707427738530158279037548802703692168668152711235882026455659409382104451149835966803121973833008113655647533647576477451381286279028188251173281655269574962682035046239262424714029677622034630925102454086413051663572654334917267764336639229252303221336094048956805672492417865160112113371014614280516048849543633801520841156581588790161531238773699516696288092856258787464774765218513209644867637687959798055713111164623391636194191508615907595118402289560892597891980285538082905601497726056289567141067486576188936638260505010673200602438871973023017781225225135818972795151048878401010048129623590580369291817217340503904555264446834671039684099910560066310420843426460950955421021131907896743452759131273260182526658606094634874275834688512035812684101658657246023262675962933552678521275707281608244055088681833943989063225521392346697375331855337128572065575853009594430058524375708614567702319621483711964902835175326393841252046639719118247745989082835337833186342389849192785513548116139469517264916902307209880519705888608366658070903142558803453698865209337770148740845062385281750711108826780041866556114611350194388793577422206077149308831930369688367805390564307350972260493247848480660633191463831153260934820149085346567310101326269578658476784991488296753555617168096992133793138319448554488526232202624562012755797086710663201122237032848113223906680322848859378741985248964276162952336148433679247678462114484762704195605013748049288267969292487586386035240844150783775791223397710484393302735414340865939390466110371356422083589662499406609044477154306899186984260910711378216791499099257427270265175198459247582827165924788340828862126946951374711208972833668595289566250973178940761737751834094743622144364704223297229071828535832964342107193788144594791780571547905943046196457780787814925861972254324997614120512112782547892853952496840032290217268699427378570183328848426417585808603472632618649440630160119296574359945426322391387505797035640404120048280533240560851569724239716265326364186191663273568077738088693855865390375389868835977297924147527233290737150114483203338328434820317811735919787338514518140708968650594233946673148729442816447630424436768806143210378235247185348771966646207868234492352616029646227389090762468067323659703195656561435227060005304646014064801586331962622142554065473356272179104679104545984016174155583406375068789647729526950184479555765907186293266999206096207866368551880318547893800503418972243779693007899285714542299304870807545985143762777103343609868378723341995517666013657532549295915661391766443325561550258037968494687112115260937728713277496004024514220742298385057923067381458325221888369007877564079505616844791940611985896613619954322239726280773125727677475698310846124443590468065178151873930022566881326061717764215984020095792177421085736807795967262633625091115561018415309259747059831930291332526510107490409069394447698102425407486993766267665589663044857987615445407913902748146040017636632253573402178932496874167020215891951203195144828068732332797915694866899537142390214250265357594346786694891228785548599529133933142412039831637190679605694192170331743909382546718977082053461006845889065457680036465312864766921558379680946960873810996327475742086565100334029370867356770399361502448901534889853665389460453717670247577750733721685394969460942395756964549039245237217299068866639847274768543854827015516860202794818340420147130106739523779488502792074529512020047151792681038203759875260247738602251348896870410666800531141327964271702739953741031198828498546648708913723297618183736677653374021953473718118127220494290041601760796374051581382908096592581954175967762953909563600143898312496829596818029274226368334667992108343567884221697388071442090585973069768076186172279892215661471622712980427884710430726381193920556717179845939248480005815325394915794426513610902337215208747942593493968703857786716554835440617766734685199211080060293668689467580361146224099974595857710329011276520061016190562792529806335266635709722462562058643635120995934953164645490227537302562748020037828961559325107216337570481995167715799647727785781557084328054134140463225053308046731467672733558510288661425762327259589685050538595807709157292547413765181199682006722923236524586932888612415373008632950030221845146948316885213144598049471202830493236065045159292338486165646333089002289676288714286242081570057452471431561827464040136639708225077477155330551015096956734080895200161996484711019126241464355621231701199555069450940228617236214629685818713742318525951234622292486615012061169632309236729285315218885569310217668321384182776986382893908756829979652436814849751329358872633272564314911226950833477493808706370893473983672592771773217367705309810818749418421054693161574516833221322332484005309031753967299738690340479120463894419093708932977643783548737843395099520840153374972600758459566090163585167094802216468013898529641393780140187376945980264463381803262902049353801714923906290012013529257230270973856204936863613245542550167250756066259236558006910647206593480675648943402671694501997913011928658597133192416681841262944586335204518700707300357353478815811761393853986245730548369386163155255067941552694038109424277836191301869286949573232710970753520838462604737149430938993944482156634356279377746466703462020330306215784310287642190798984482173496946573408427014797490295526975167659280608700392752999581541406667634789549329523815013413564327627322154597837995799108947968712340143409241130683100721466707344179793136552395213798902764599570266751244904444121114057782944106821151690520787115691028475550221279124051657268346366695339951346834047342467437677874560835753482179944311937988672003840440024238700826446603929844645813520500189502779794909585039971085944906672901018506455078308542357716062213671982480102426979522270483257880781398675176105610694272609822821833351494288850388040283671505162986170646609632950375861399870933766293544402112621590478523891783244538056380800559858431398670588688807259540463823697096634639501242389388047611681069489039961129429383963479326255755438086406358672210689120550667353060029338787450968043233303402365617043610253858016975492979011557874410717560797438873104542003577921820457743150248995905935075526171249478305629390670167344498533623700138867837676684760416183272833646997671179765340378447865169046376283015808955394172401088582209393507713512153915485019265372376540873848525035266845047216241043770993662067415322046219047336729032484034185169580756100040475596906301184591175096901533155096769188151239198127838830484027077797164920258501101136060793093940838286981226606114854854602045552998232422623808332747047940014080478181661800458932475765565851162081280533476768113772506558393650080978389393575369844356169157361453390476292573986082626466185241039581985237873977463622306645561115122050025589929848849775350662329764413165557259013365292045962377181881615842512428638765635450003795169218876190895710251500436349899862577319354353392176586945737732760983228743912651292705637179198094908006751945580261259528348501835805894108343103161645418965336098359248727047485196678809886811195692653238772370061660407250923839592649530897708443922493607093006925520223658559126347698767032884566005989130344593986956092351229310873379031445665441607239414683737643947870094766318381830327026486240896416895145797185912451063944430613212547097626699886345514239977164734397399328457615840825557061173340354088785266085349784056661778018990103347802600718454168939353118546284368115239584695652870709089519273149237244766855766651605545090688378622029179769019249425615713014097650760248232432719478945273684289538338435804690123308379198832247898647811160399606132714403946246354714915788958226088850125440817504077620335059699811511830598717655765797321347218698793187642854761039739511243885257789357100798735454124543298916824190531252967741570406792718903541476843130726230052940831573885577729075395658814835020271008260595748117186207763140349994906907745381796911826862968839154931415443973844826288929383905234543908774091751269534496720705934038130057478275511483557024057952572913665628145419409388447503874122849030331227253027731162693982784041257925135441318610966052376390858506906486056538721421127748324402977919402724414911092738613326860283213350708436267363489655424796887268125418244064935601535632791654848052772338883094938438847562985274203925405760671349456868457812159461328554638722821556959454025208623471378512402152257304091746525676379127184801128351831560095224789245737312227347490347341469595112499967303975377681620362402813481190487760410680143628383570447093942180251085035550545891269084081883471590291852299487854103385173493535045337841742045672882782298187722903885580937072557579821933074558605709233570306717810718735101247930711293897646976429026262860805849403287662917057682260907154146484082205989710259764943910455526190692808280990835827910806276043794978597170010418833140626269520712364337320195789131738422213625807006552317485680376566301016443276704516716720466653377873900831189899791492199302336467074024879159040524060950870277180491504954804911518069255488564850846478873275228222750273381215694252960436505616337964560286320278720196491297581874436596444403846943817070479638255309622856868243762967062066080104337786932424001473528359607731134782485652515052790055534908157165933307571986661906065604100900238618354488255849708735094164818670076391568229749894102066897200790142403420818843981409022456917864155658676928287288080421755670287933710366357653491006361731756754483113931144834180072258001478988429098098341982342409750155263121963624448138492821309072815417996149399401188917300097103308942642841712892724244969469349610530565018614999593056465757106766373498647497793843191358459998028846054567936543764170908618248518470263539055137213519151582970590442332432145771033477778402211168095341334677273376678488857809525234063737868129466009088431146177648810636227499046974061657745244256945650044586519322343757205142804276438701284336149935158458139405238484572806627575356869366406823551275757013571196393861361007241160265389176696033161407512032205064789468055866455143199063415772754370437900333152553604997303991350534800652250984740331913892290102062351902683348701613524758914997013730757712546884343434117441299884496068599739501324930042821593253045450161068516397281274967465465676552741765047205096714057709656341779618461100095219837235302002522493570990270086556861956645100397950192994083348241407320119736116860476115637787202511565187701908837862383270737552309985907181338563911349146199118752741261468902226043176162780234714318390274400972326524003167561042296243531041086176649502324359661837196576357752064553992914334198805076501792214244690821355854522129836857362798981536134289387030918341026395735296631307466244277178072519883503228050827070481365944045380777680745426507795319126849289246993164000213765278158080602599376042957356567628538338835169278890747026792121819629803778308834552964462739775084104410096532599868457330886041657019229562142464876288082553747014251691881124607471552328834406418247216846012872064923687985572956074234984653423296483501934036689383266390806211801209924760272420959433134869824838816084253769167916498841429873376195762822412041562930413210555034097226622681638158469154285245807811973300775637502706696642832912135059161362256236798725877145482888227950359061182385297647056693880848605610583356010108630115390159699180205829526769681733656335124388415148526785688165073112292147176551596915867184021022449179052382079430658424752197389765414920163213266030592335734713392820509727435538320545241863723099376593495870525852291636286793659281731956753651224554172728105616049504706333913087497026358495651488962987004538281944606998001573033796310821189680871742685355482583638733864376304080568304828293574890276910533643843861191896797240713817374668492242933275183440316389189970023705847048651082594435554799418385104302734204769021208370907387939703250236666953037429760359718777297321538060893612554030125686680182275368074663690196733840531450122264610753095319552650563976469490626016133641559734769277389621172706742049917478753461910491617974287512720312090720989506280120263227799084902735071020196970136771309151828824372920005117184524187979415085866523235180665008602302378280530394108704973466900462607633040773347065623005357402920101117724059118284582105192966175114782567181465362645479672553060937730169194623039990739920324433882132685337609932987134464695767015956884326817511825352781646520291745260992365079550249918540377540636595968747716564541413986417022749543684627403569878701124574666124778431318665100701166841672208612983992939645459439424236882136097922683362930483148625352355569903792407214646355972480593138818108672996914973185691795204868490418241146193787454389992141640044544102066123002339907412443942653253758056241792114470992740365615413838012142884868241655139853764999140257502421733008116056471994158788813144060046861011322582191703214015964809315477466958403016080866978202040589604329612310287881464183135546887401901344720764490204872615522993468791878957867838543309001446811084283932017671620763165545982376804773566839917342813658559796407865996477935454319937129749746034010121603972088229115812897428434427822060012248926357377686591783007578391919652566694939692670000784785522223342112696966245460778356975170431999301368911775402892021226879319519916494178979704145275390309131428707903713452970683184049890791172123656796747557809977689267558084950522979040352973479440446621241806330976684141405144708955151456636970653627104997706693376526668575730611249394032675037731520308266818719123898160000491169872434512513930033825893825669778682038260933372322156841425418231435986962549391573228984787997861734973983696769934055174743611407542228680233177392794910455940046046496635131865367180751267857717661890962843767150482696714876316546816486253272983423485418779662234123597274041282487830288914572975314768433728880939476071565265833285699115154121299387212784592844041129639943002722946399879376436910155006417838868028249339553648603093612323939467446611809090727703714059041380995830364275969749603567266261623971758438597688844101648125480595435338817616025634655673410101609548894845880378959336700490452917471051518786664078527069150876552087813437409887273566097486382597901583716752503697410870352887549299611757151423410638031341785357109877504868693024359920171309853465507867799087205933869459446592990072701210001472990437666568845099672476451853472227103343634447288693032305444268089551944924901101605682750928619850091445320237982806094644331411081729232285828608907379071602031981863307425259746847369838466522419065692141509900460139466529466571037817498965532150471869436679912905627065260221640875235599964758518216459102200927360593550108667311055857275811441048679546611746229737295093673605499505380006785865488309623626837871881497575041636347836240526013986043574338889511911111216021506836356658117027008937612345677639334548401849333686885728941072329407131243261572996360699106287962259549021423373864007840673213749433735572972967949236443198273605282357238682420269365318688704999343236982118881723917990925184384255801424142756230877809669258500666625745977014780761093387557647773928910207117834426406189442613980949418778104997834617597973353666624159127401784848212939459618748388878125079602894185945783524331232912678296542298671362992644533277491530777056830634271077744566474695334193172013808188105919836847581485161174633239354164480719635764369454801041982327530041190358119157297253366078862417993716665924679898978485610365097655393291257788662857364043024151475615441622379881716479777899296818455332664341178883925838211389822218269173437895849608512147195317958593694084835733890503823004849789484338293177796545404924006155837832948364060500272682657668631206173212238160809846537539652292532145938575607468110770890978685464175941691467721410729807432971720783680574961869046051243788275417903323306162661778756008940751419793360563585711998123084919295214312133813894670434308689773855973600112129899849457913319161937908204671022928571084107573307271304325951299088554818161994667393011234608067229609311906301620356730352564301884931343328786241754503372589889183393154888979144466767967220122327638720028775614684362574603100376457541892829745861969597739626079629634148256345657244588869653618751595636723845510057745539748019658497701131561083144195386484082529050413352153685997931246470453097462512314538827171955494248801793114905820019785634480733514267338404846007477344017528803477872040429543319245996544933052159665363537795137694934030526853884601730079270814483856519801865124200308241860757792847206036291042360071409080902307916565863021706385700328522112659574943062412656720014226413189584899706890974049019466678914426416129991263468271768344693761480169511075828022779869566072163814279990999586002820676057406972017440859867580375635226847222484237142742652743990481546661644543958088055895427323777997879299383863670124883081641372587281375089903870140224773550586390024468468332373540234756708910664592271580017391149983241001558395911413144523126813113158774076751803288598885851522033603511853718403395118602293605234604930078936626294209440039381739363816632395983654290721077704237592282672407888011275286103741365403205894351748596382985547844911267184386106202236466267760539091790151865739173793447280247960729853406753845137494315528113522794186230540179275476802624224599964637639137234840173815524543514090240282236543284234576223446003047123446181704303000230900807796458682971227367424778881627999449171549533982254435312607846574062941472124328486625256626222688084404140173233078755062294031368923309498590349930135002384028560751073920827161381920597756909639567385826888229313088802209789320656430789054775354610467215826213496219771185834476308983146655076824636923821906897833510679458522964962545795839663619087289390494767351710874880612364630581132379479832492465824785025949467244560957396928932816135866181379940425556679107839427021322673950329212723125312468755738308300836454436354967087858855359704312775154514953742801636273604498292681748545650468599746031165463216580970265529339479491864042549565795801097705886956656639785441994133993293010334871743568491285962531570817045054422696647762983594935835098277490940523516108118573294945540252457337556379739797851068478027393035452975944284964680089755598543300812979221442106852745603772164825826070399011017559331562103307996545929167426028527130089508126753163567057037102867011093694058991800461472284237690911517054493948754273635510461960080056629986051304940869214574049818270142506904320317144443284145041898923521366516555932586071950691098391609715726814586235082302302111300734820715719133835203224079928272201602710244671859820753295058871367667612988563794657758571709431946075911529401805403880700168155073163425483893514817635328739492921858700250901231287950225845670903995945452064086412014188712331481983842994857104859647013320608017357975360241297727116392582416397237523150517164081236722586448809465686174360949714621294046085226154506472001885360586581292325544139959388385107299364610475083466286867282959451029881210495054350957697129183771220647691768643484038381185618137681005985767625430017927180487763163408307017400940936304303643889651644893052925425348425300162325036684937473339208168490964700671660648991575656536679091746642396845122183702714461924849697262649488000763705390834019303834562378280753236994533695215042719570962679562596931683201657364222173225704179806727573676336670031962099283584205653332246519645774301807507153654277251264147660209571298068642036929900203723126287778455317549858997122123249080692988841504740042075333651244820669481488318280772014242938205009674047946743812231156526145372538146500449155808875101697540993917607997217538951096688800526388851246408389694102491965878045917027282048504167135635407346325502025767167124834409562757153710528124248708906734577281721404831272205907980557824669365950327656827821320224769104983985913346395796789532472182433402183640029776818146077780631860587914506978637137246084577472965218000453986225477288216377223312704162267022366427572184881626552377614974605545603061834449695655262011321330818653953707233268644729626220571354146470322721444725113836379585010299833140417426590935291707414364907648842661657982767205183003096206868323153676881128689970559120276974364807158559604597657859109670619528726087393903675863112607176098915622452626101843352684063714541931188335462638074257370773351327403771697751671009071094199289515302659897344812704240014915584253273123389842101809252353353119495287845058488307805751426755407726981703888341429434018471539498340165131585457695048984700215190380571827782661448844187727500497373454114846629500365358653364045056895229240717128400475789552195923714496917999671937280821027199915124375911775778861829639805984361367189630569005481542491072714123976484476738588586973913838883199390090139468264599809316875727511269375225539507580141324009464613433430086738234649114373519808346006841067529228858649602948590034279312778383255678920542275969037126736118607238365408407193500537960807547614681928171372487943854794392168182942543853140400470059832407697420881509534436701339967666664532865501706336422165756523409621443669067810669924074257027463799515257301072299853363762723332167550054888197514944618422397148420893186539139990473841079075473655251524831511217969890891151914724270255638364272238643004017614777881818890201863813730124771914292532392200065586195555840452827018541475649170565332332736465997830716457847288995597702335056763297067916945928504414195209369203087617948575433373517268070082965822609378598441891668151130485538315272579500720118015994103384340459737943163293501523271338849249014507053992620131655470223610612199739364179646129575000517486395740549701688508965434927825192789795175030135220612746174623544592048735784959275110975552273464233254533449510862045909145469526621346710436604288570368401603632134205684310478465000026262889917040737428193478652895879805937154246368573683553223272389442357309381622035103928272334424143235417634648181209132044953751920175408787775382691111091708354333375850648165546965279547309437905541426451978613573541211879817181089418466911961110910456252843596596267757737603508979250489744429624350227302133512301763888503320850006370144542698919824963293571215790648521934398792606768161876511820809958399364467166058069596969630516442222038636385733461582243919575499099934277001459170055969452536238923243658583479171675243461203737806098858600403235563806213382901506942070529961236633570918617573178612737117038320612795955078831715516958785811942846227542160975769726908812472164066407812427993599155064808920159815922510495925276402796188482152418521520247940108101620779911407388132623894924945852651832271667577262877383844514144624486107350639134152177216681371457740014488670857082693841656681058679622416079018056089002620497121129944976040038928758635356703340362482546877412723338754473384625333500362049407631712555654602811837578930193447957242291408225039341559871587266416337855521244047469628444394338059154348167406372057854978531448792302682660635232199316697318587723559252224766986225293931532414025074701859557478088256492540294122275531572795035706949085370373585971934310206994013454101462952804080151920010254167850171930427878959319796724913311860820527009136240063024250688800618210771323961146567280180159636496988921432186370120913779967718840288677185969020230077919439538185305819876133602934084841179026559773765388271150260940286116401877670005212700820598299223264580331146996248865184099699315993700277980657062000748249161683582780897383641429078037552313800855583461613058629869460240490178304682424339564227557427096942237564972407607821195935788981354043189529591467128864616734503253787833554093266522850926820856917156229374940914789735386477202769545577240871187418056177090849606972852074465908124790367897350014468565056697001123632971286739950506974831853885994380195510920836257606104441189345351157028290920949333043958505635810767365448985970838889851295413774073415726561456704240836759507882034259616312765869167526280807224958060762891826223109201662102280368600670631759961753310822624919516498282657318355176894176267303727148811844052716665332207112229146308173760210521148939533112829045102826606012737757829130943065903914083838322162349592218428807999858005754207952130083855729536544185017773565499455543824283686405805941579158406680792327347260281231677642118796640289646134444975473119937679633463775973775235397604539313993877200420619346231929795665497837959301895421234264353374046026161158686960219658978291570360837912124094875935555404785902852878288975611292603604693770735358637192569308161937678048502993406634890828589631912837833430364112296273363032603562735854932226387216446132380765348498167786754420151936724901573634254530376236088160527372310882198643989787061267702461819527050590993053549364401305459431592021128749002768212594627946317286892172649384310606081974102428911876667669509368116946170763554196273886811682833255246374015476756828574832430186606665413279138752763638156587096037882010435524707223523495576909040172645984569986599738181939940435800478468011039876789148462351637211226907020153590739125445575321282260391877717071831355525674766182322276843361699450649540697112667893531220167157890441280471200723825993372991422756626514779758624696531137195700661327094577312542369555150584057273197772567594106084513262325965604021676669347477225681856857639314318907448489822328628876992078714404331596179832960481547431838875071099655181824604957371459987945792726773479003838561662339431468800671827474253181952019873726136681212146259298507730643286244703614880854160712690475977892864556489372946214426050296341989635473173132973043554800518265709330265107002796715189483914984633483053961540528246993727564961678859683870488701466763874892681932378554918785333143606838586732363584696601292569429938619869081043661752398971479082078257529225537546020807050924359326460398598342852937699602933109741786882159633348758869302410520722020865953155138082860067173752663698377493692443874501045642675261025148557977649199221725752661098492849873043223530502564333273898907347610069270190300996906401033677976538699908820112415106782010081502217081708453751222076712991777406118907407815008021845603586822368992669654809736849691163789915965859015987513027410652593041188075670663457116914580577412418528779997218999741226183471819042425581479921616732475455218803169075529941929905946274380332591615948248154128741005889078317019131630057007640007484567611058864135672002116087432596536801976666024639085212655691233411811861592595058935453740032648320192025328900919322823974239123682345644240148288267805893836618525296421128893261227983741675953743928427570183014979019134986260419307626452597797633837049862230115201472199128462025913586145127630548383193037569352380755768427693131746497407321097615009917656777947038826113088126034434549692623682724537426100333550884734061995011781768413263633521156220389934738920692217295277275546552806866792726272355282984661512805209883220202712735979592141798334608615077690159929943498113072739670134379049635141136533186175193312497715660626854511315326146932042687607141013838701823122364775441288724752043194203341642103842974926107896489482963269257066906214292011098788389626248793272237363126315809276437401814588928387888071254210092390117588542811873887145487734254694016216245952388904804446714520792097056230425159784263365539358674208423124934932951951421646251324867263304880725013857412279744782743277770635545962215491024245142609500876971663916365507826031839341741099112093888307532472764131076362649128251273058963752377209960551144790307456632451149212160646573143403345720002742182750588687858636518683281457452799262075364744261492496139171283948338997982453937952919911817168343204644562529757018296579586299775205365604092455176591195185883361319384570898250613491290617414177331832990427241504623433207138224511738962531536458938763887611765622984463616628492951034179910750659203201097327744957806795751576127043896056782291310226844789529020224646423354726732211177239080127088631661124850933008816952182965664687132081251480018638005352243835859413428183155471015299817712584470265116445371263348830519037409410363434890646638557304967008981127002749588927495951611158346019418870111391516452789121682020954471980215494272601330378851940000769281776793938381506364085390292593691476898488319938219200446270380540557295495978049880539453756012571355784080768847104707409929501760600301648413982360591099042674006672657704499233999992042767205020953661509952626070238879955727187514200484187230882570343790081251763503579003612969171090224165823642554430674925404560878610250053999454688080410219203223500409197714220891851976905849976083027027905304582136460788546511934764798196688463606924700297374047256250296049203560030858902488733439482986411702435935922868898626114268309620272495260027828470621608210690700656615407108223625680275000036585444364555699150417596614974455795151440864319013015446038866912339909044743041683902325883977231836845547034024649398231062446693603140439242321461484996304006131825919707086965796345137441718100969761477464565730056509026721341548251391656585911854816319780683834069052008193466928756567772773575311013056922179706231254064795366783542421075291292809945899339849656923031720780151768282624938308699886604859788146469880455142141814580376274640487805415188239201591219640054360931048801832132932939604079879953092401697700523025892605482644920299832285453914284819762711987522957116151443851297237258743672311527393449371505723848057856732180842248176617595066890349543789070837205849396285174631520335018206003580911917897523148457192413140690312468009604758917667966207552554676824177769902365072096457856911330602066299119564619829589924807810358516886856135051138287791006301176434185848760430575374502740270113906553765812177486937071115066447562062638731640959321322156252613917619782605906974949640599221404681963646674300918376167037695809485536111218077264135456258532806812891567551643132977754226186902297382747074868248128067976226053319307321476622945593968476780070539908277632796392959699103557973329260668805836463419888032325178663341101966851340459343378268449331560210680605344429015279189600078469714794118772554447126047231674332332971351268958043858053053579440311767945176161818524290900137192426656081267499088276437995449247493128631284417302675479791734391930899206710072529121172670759176621035415762728858854239656709077371813733170759633216726887596508491904184062015192212731966561045610370018758466792963733516228734686169059617865883680242734082010852066644740691522977235262481065623990656763563745681952227067547121760767648680321321251743859170775399815393506753050969150613688698223133717467172313456697248447871396377531128611100000290476509599553924365869354655873201385123509743005522582569287164695096966526616411814432131589808536232768409880440492479440257553768136428631754251277007380272462178398133595516070652680904121904236735828639107503827783471812843376829513442539706716065734319584264686009556814036391341645523309751238144485069800237459777636853668946791357822616983523255535992809284758669248698108694142522596364306130112943301019790400009013993200144644056717603213051505195204977846230024270742969133610468018798050234938660330697271149571411344528790956743727911544500362397382002242922377259918862448125972622700550145306021587065703734788464402917473853394878631365186827301708827402874742278576240463031378416992476095923020761213357951404109733151482057757517427831916627202599675065985808809604562361230972489631030336696551602527664649977451401062399100846262560213493016279478524858983405460957785120976724302832191504026184352586680546559421929173256698254398189813322229077574492493084420251073173216524884596091128320890885504008582428363289512119592503682837742446556318041005478149379486230919068185258516473077784043566012465846029021824041241382092990086868313007991717244232119905187856658127950004359457050172813533563634372534078003004015060086239949503558414206960771049481278001902912979189490259503641468308296120421910293233188432939777377118341643424662266074405552718541329858145710473940715951427773056564534935481461950237199147072651036995506180081419483857065691300320838849534845017355760831967733772240126805543241788968012655183929518836821526260374298610030217935496820192654698613220904953566097171548970293479147998301694907180497140997799399255460898125941214781546908020256220280571413043962068872223901792790793019678674026818699604208680825690643210523700753881949990834441930977251352304103287454082112115586190814958361052023035415246414044769235528908376031250600275666942102876840021074956680336008651247139977695454926153750792429398854778500235767897393850052286809980631294944163890076081599171118289243972373148020019629888122018154487500326974528660469933181195157338731099565826949179457168796524501973588025166402428385102200179520013245185136064408151360555456917744676445584427883255855261152660920130385261966215825830635413908143169272087211446486207714984638840250722369267499613524969416663559645304585350794158741751697726571661169854390767160958491501830505666731441561947435424382804568392787101786982635092567112203106000270713193335665040797852436367551953352102300144423277480142275964050097497403103714301986185681026235317266828126635697783066462481839373005006268677844016417869011527161011819979122734141898508696103182895027912054391688995748896024938103535756402481011149095215280962940604051984844490794973258902734510243193424123847405238081332708106732085837001459227101478013528788313976539184163338695146157195306769801669029507214906736966179395081799422008930773967140095535002041017862687856061953851919808817818334235541783014466058788772550898483264280489539297757641945462567505544689431118562152835690770453996566583035968630627399901129204349349196361790179378893006927293876651407343708713411527833814300931695026866483869397125934624951200369386752485111895977906260476495223934737361720810007403790054620913154968305555271716948710765284904707634149548467662731836576547773153397854319301937948850476502827268270516707448480990687010806159842132484122037088595383298722719395850625431255207455081708747214303664891952310091517312637423298746564880143827724644079896773712324736661233263322818997941700126772920093523756918376618294799467776168212727406075456855137670214023992239798903269856159678848556415822739761507374256812990901660405984591846661717486757709143547563017841925673985236363823791021721399603630253065908035447293770369284281160237855159605388424607398023779365811820774745892199978241350432970293632427860879905362570196241455511829866122484389745390785330494504204212583750710402295165246838184895984015957882968071466245923224624529704222451511900741149120710790694886965338462151027162170237793036438524586369734033136608558712921293414397305039994032796663421636351748943925041302212357265561968422970484760833241073012943364192936524439644431184882378954591833583367790756135455964841262215316741239933331331108633380191043717232873790008723962599237485412771024242990823820057075853364883521203644860953398309053124978230601804731151916041515765560869405641734889763570400232133804584095674375682606104139874199127434791963101621838682548272802375719454864767684242010848991489567896891824825035304662027811514236605467450571021990319230080916190026290416117086750649112624410808921006860491301591378904516293177036891478444737418969451053378586312595186633444962990937355787908095495267986006214521899406860233260503681930540225460839700621484629986886280009350574229853765868707789652572657017164033427685362860733401355960605894240434183207904183151771548960151472281287469064579906116541568930005234266536440538828440409756980786298978596248073609294603607903418792054408729676111018036741486814703905406729049013656872054989782586491631960715780574552778487076075160616058636380107683056885695252410027650510669484666246284195500317619111695990618278446473931358325572054536481530595518832583479726893540803720474484039608158941324257681111363545498984852213344260703764183857923596347766865746606293087645618463940500149057360948440852835177924253597644097229357588289776112168550674894400531651326544771383320966550982880600383088814518037563834043500807521815665451378972015457278330354382902651016098137724142541788515208926724979975315141083589707227764085242277738984705535430523276887027935397782470798130616057093575731392040079163504059734366315442560479763344704311497414002569517760614197362470609530631765042049421752513813554824613684830302045730679580246903246728843623401773065246544878299838850815710848344648074438892872158207829247336472178563142540856440432099794912440158064940048676446556914241138722234734086322403975950416301554636131465386817184681327928516250100540008079583880758686971105287844116752808368765476597163472562409977532613469496256014443847202667959204356461732645105504122650641485231274292155999294900465884620052718197888846347082823323279912605573412859071208139808817198842400694474126532569138367334133003471761790361443192019247362427117548313259349186243839593842858739084303892932592622659825474226721183420284432795889998366111866566381438025001199086885537824867095275314852800001723969670724120288659284828129446245110091744289465051948795031698586108025944899432161531953649677006033254710745910202522912601233255779370604751063441964252134489465372502920088168325618117027524916142509471629981428880611860329475935524632170530830030828581639996163746358217450019788888568867756014918133872731905121731861130624648635547703941460129514203775954041793536568223264658967367613368477205914981408654630541511678902739921644975285861546570777580171965815195859299085016687221879598409470514724639214667436626179295036814086759015466343367833084812949493978968718109728488951725523717596657960924911873577336903470735040188839684703146785570562523190928221228729518786356320086084161940121640024181268464718969954281260292408761355404080195369339177765471775629008511633749353674613010279816710419680630758535175675099997219060090689709085086055378758757739028243698416697898797150107871295412996105525901133404032351407690086248302580362779056304703731339714659136774202518611525877787493900493457742572868128063296536133335829206452975860901948263676544083313469110756849775436156473351652950604141754528258445898247147258641099937611550376293503930661256926641088587320471341330737191386296457130408937251151025527190934404846150330303400329386609718979198969302738977419188988017205981922299402704791573698140008599174583391035244718157359281239348902186350809016107216792127996483898520771478810012804763105299068572372536908650423416570212121082099060039282577948186946113174380366519470583055151404499787427459100644725546166995340946621605162202251230483358387745689863083295134724700433206230789145069327145010876433778752073594174184752708994315784855615741172156718569319044304414196639708694466709878715156741263967690509230600954143999204613824923251136341171131598684972484896797551938876516274552953589289607840039099212282898005177494094208766674426793816054364840952959139265605450034875219929422332295494870691024722552893673490258932628969709051571660849729750147299100274232799193146597508384317715545781413587388481940202941811031961439201580286728006161581687282304416256480863218556400955211936665214357345297503233459021262283765783104419279565527341468417759553829334773142139226825794215587230783820398720150111212570958441480141566570334879932724141303541996785915052023516538511143313149759461370193934826265058906730550165036623559934310106797793912045199704193507579155458846001852591518894503838628151929262282932035926654994533645667892621648311978714882991173499243035657221847560470645708113574646670292878685993585463623203676076228521881911411158112536342964956615961582923736838552420884343404326197290491269541045741929333143265270550411731404003478328037988991678057796548989779793391094092456354592791598172302122721401402044091571723497748090211091029607061890650034392988167537051446650068050599717499520377658643028675233705937723794737687256941777146641592547355281993989703040785148768006269900550158154755450874682577262455558610021364691049850146749357441761376571693660148495994240256071002122427593501849446799782740361176297642857533417877522500366340381574907601065562101140816999058740700969072500989362680309682688882103608282107513023242323329195528584533906326195254197903927274676998188566099828167016518566675663971168630356317757877745301645242335164976579412871238513100600085222251878082993039318524107263100876164328512564463742857798826825572051317826508830215786899228184368753404166808826896829996008475767146270597312252214351991237257489003308496260789451662168828847893778885602594216894441467812497313409414321512000421921293023992063362425070481454238885146026496744324049093258220727593612008472800843244267444962579144421993300596684987783271756305011561821973587378267340459100724079112757886613314653164852252424739881219683235326000911823056716074997431936400227592793446599724304062973931738257603415230052418754687644142788085396919995605158830948251366037651954685766830229842342412975998038786169452251967766800549111437939451205651933244703601385830279755337346511327252262830187042472795125620307239455549853223694622718390546099442533658143753341725013192741159278959861373266738976767873708351885539251982158129333273894018901611136429421099618943680895252583726381316207478232536507236067114951489275803401131366723436450815769401083895884273302091090427127562196946640278720261641246431988577324351231499195992703286551509749584610309128340012054408186791017113966712779382269823617080950691951967727066101685959315607584498601190488222276537989253755038606625646136151527005882572795501924987697757137027413994752356786868450597939361130137500204038594307986413241365755695114589857261113960241975043504896536647522826883500397588188964133535820141295837352878469877386001035813288537872557100589540447627848891126619389878321316531098356901620234371323632948677420564789596176300270429209647053727572366393153841437611970729948320188298222158675949537546057949148878406085231363713925219709431484401327213076802050538084231105535884923478464100355203745183645185403820833565396060388366297268610807382188009787464651370174959906362028199261970759772283325495325500829184151703033518405974559024922213705541710957493385375384471923287642500733735287843328109885426528598057686262718598157877303702789108920438413600452928594112451063100726281425764411051107037534714371428867571302358717595051510794053539002550995149782223512696645945335158895379106560411087345640703914100030556221213223007096266100917189682705457906759025389212224936408211177390997034481401319531727863288100796969698904258768944356130372814899991385948866235309680280040064931122114447578484908129815663165932096058937209199740916311016756423079456229550801808120396281261915170942226383759352151835772957415029127632988468152330924118811928199840284896551957678663955529941832660614922932756812831832714686684422312522746281646532432487734208164243156935939881989471854317778166486176472875232811124993453773993110968587582961459612894284345684913054287721063565533352068083980426715642149331402902245557937477968172070872634599491505127690733553686917766369348105086011656991142287468165409885521923883100542686418729755616651434715495627422971723081273190984422256155233947095352192209851013809863326026048859060604777249293114649159976596848687941658960421382069810721704584287470986623142298232285595243221176756590393103965035189722540041544551736102484663416800424245399277666029071837694552307979673153266774371270815922435758721835627733042670781195332850207524981083630354936778229906062652767711375223151841347573909033724386328323926644078677127634305095539070172202291930208581344031083395925646548493726830737265606185378454786331044414215407909137890292597866535344353075653976002990421919896458606419137507181297899372217681249079534668403161993748904658355505124672734813897605350485333975659385177957279431263637985150056909126659841072556153597445988793345216191322496181861182594801276439728048812961411479574403276150086568221096867556480286491905892539432929586898726324155822324484820995172747994636584632948636801825899197311666099517874726905681939514781890328883283773755459305513308268387212806868910833195265386883347079875473153625942084506047055005096871028818589453853666234665967657114569799837039997283860377552508262739551939091227260466259000591064935083090369840543762484914943841790281575167845847320115021781674063260119674975399535657735161189587668957761600260551333057155479577812658862250638052761979535972816100797845567245530696925285873628555314736979629236917781241138538572467624862928458133854396940500981626130238970268486600685076572037396614189875511727020884702766544520922898348423123464920615257858889355806470245050815626745072379997622462771056758024207088345483225633620542026399152743328418009683476642318894871966939426200357999102571059692426246660926361376037406552911938551871291617907737486292361229034017400637806519779043691471669947441061949331433091122124978698091957938694459171917366175831993283344797543474945283115563759111868543944540924593821923197181736249206422027614991176818910169097005516910368582466791765937118122670182564726944571134003505776180308166002597984130269013452778352019471217842985320197218329288678405451394221180178080663487456887899858822420031572451637944029921557700257833839105943288525809441467206183352252602986090020338669923906599098356373218626033333539983957486946583639989812537387502916673965494569425999246064520020415259643967251950233750397792366332667668942043341481484763466525668374885366268731167233445135954174391368999894538446139011496336648200114875543995574850988130216018488934990938867783667594060183238849354837522492975153767627385202362892590593093481738752103773010785954814573617409798558674824848371881871902711486783251852694859236112834023349916080364924101093271547604576944165128863046965466013048891999840699828229842597205575340611049170511761219317661305374943044638204070712996156913210173833967908814588464279970701773545372068517269320410442283342638202059215954009175443174879957372974239604943556667057673076366287953858267137074285304796703360813462478110300135904284244916087122217758400156858794055421510032596641772373112063075296138610965898100634373639857864967591533340855856705720547232357676060797566576618789695817752758987577107846499983948358008127353010521337894168711699484559010690457765696606324254688062252430136057112461927389712180062413660335347135687567925467044981755078240072012098403633539884441746573766623751163987841699032383519439078846819994186413880598126151302524530288817324655683981394371681866089649146260362872972117196736479382849778171745306684302170349802048610149506557729183803205384034156674057972993000531679270258218256796728332279923911434194870756971394962628642944648565681761470745414165778145444345910550531368841462974401485236744912759789380495377927751918859027481075128110116098256929363725680817598765434292135072031380290056326167321739045689812227915455993603235829230087871826423972060392368085892543409713118318484790106582101478157273367628236503116931922997092733490314075431330117076652851258810022388225271432000705052058945792203529225504296572185435431191968993799258907497568601175705110136076709041656927065159256110883019253550927527412921571411833433270837368239536304448940047925412479072246837117610529404946600179116492961264967780225620106823214464882240482040486194418762020890690892305950866247483102538728271428457374659885956841623705396530481602903094602954328785306134862293823986060067594106134741568610507751001499209780489455364412832884999646821527455891923046283924424917249802706459802985740893010703271501660049586469631596387692884271342902375966760684900039068759645821806234133329327808771606833525747099824520319563192740560748643587132017023228617122848740934226413158457790678337040288680714096452971559449623332293251321491578166529889530872946924250632931304062839611779601519377428712797920246992191641170616873626947699235663868093727244136482128071039572134426574390516420522503798781134195245970592704180617179423891228421220011490887413625268854935141494083886938495840185889600209362346080052850267624284752104538687973829809897475791910008481796993838956679305789322413413722029812661470462615774766875971365496048990590827001109593933026506306309873925033837456790177996472357266740888018262007702905848446221548392850739888796526229670817000426145389048637434157691665925956722343139015910176145997039840834736796886215746713021027237940485361073133905683496026634162597907084045837468458754187576641901605208248131053030268308698084017101483893907733363137902022614361771085792527094247208997325015731635323182489037673799622949637530112062789731659717104721097912983850400445169829086988457516074173334439748323819660046752905686469202972300412485307601713035036503403701854634763129861991994545788691637268862412464990639414425428790095770712050301240481264533548650024404786351843293625049808746456208109160002137400075015547428931918115116947724835014336475544095687087389511964117625657602535040406238516411655931986756667091090471514824502281609965648532806197713539861846548829737702571875740356278743956662645072533918150921492292946000024478025179437688755843460850824715224932982266182076753698337247253624701870854291869348976927966059696302456353139195162242615222521339774023109351730742923963048101191130824514677192250859745747296280085569047401365475153112093075491758133193591272230258011659493174455883035750513839057155793075702010887463016026842296217257919984114386394204645821008467073689754777751461632234973722769829342316899197499640111715240656414896531439449216361979085242128381440325746939619151747050723671425704839728152724290002334675468554808718113361935794710682439675766732368818217081774100805791405451738994638903015091334227340037567934129575697231040647677731346351046550465135774483092891907843400717255184352625454867909319972564964898212371048240809963398779040352889164106233576522522505700481341578750995166204568083807861801251774119220694120891233688606270490147588015289316665862441671308116634008931054865542987982502852973847524281873496197745886997260477443223964992197412722885061793879288196147707319167501469238902796023379765413574658036161637846876269535417086839631678658763242060361723988446258162182957221849909095019367444053113559406883908470788141312184480103370360998944483311792134051766662128070378901667208105034861797007627062872174835122437967149268137239161777629370145504362119700505589047059035649306299506258162346855127040252006106225346528627628356532668893239452929788217743925433317708120151816955092094301812511850190728551322475673307996933448661927280917978670300420922307496976044655381735025352291348283750688239395885220516980363659044874283173690690230042958852859980732789403880387247179739990154948307603168733597884663030178297740966081953660119275233425132078578223354004087596641947274943693013453362714690182665830939364228645487584869893605048506424510855483509074030634479516508126926567827324229504258688304990861973039607512545035163981433279696285631039851967862516766190557596068344228384644131400334082853512989650617550188835905797072878652630207730273539257544598150615813462666993409296318849776997693880863849584668116433599344242121816610679723552206525529773024132477647539234849128428197422514489002894837578399358022846827085973580905652406951737870337702590441442044630143583340927128499676439199695304014362068923025083294931810631231437177975286133117713647038524326798752007853781741090876035774654088384967151774508987030664722868255330542721790359956598745437360001754433510513700937567918140682374317111772580729649741699268431482182090313030852185364399527510234436592313146590744559625436444095141921016881996042748678790878288904950845944109597030016716203515165301334328877846529372522790979190007824164826899375129717701185774703162564700677503537690643415022119701433696328570066668521434225795971256342757755126740121047980869464340838698687553286789541879954940123429172787962561844528702491106547847340696245364891213234393034783104989381834884003911189266496634387472805881864330623838559195619349886100745384349405902578287786474581685592592741257975184151775030796691214051683104633641353942615941442182355181073861678196664325159994880495054962958238365822441230047590339952272959398279280104636291564640920685042568287398336009400264820401906894884049319208244033963028390036133008100883369572727750881411727815845065475236546875604191036330758975384238057180054619932010345532029450526326581665210825563800816870084837773887939949735257048130235395867230669065020868643895027764198496978982596724036520911645935761997916552572415076762157535473701010683605696170480146038409748867705619656602853339176044009582503021097114366962679603873584256832820846419877182131270132783710897409210371552528242620931277975614416098849953796077412505524019472862882029099944989137602518337767469319606277149704941077647940320429141577968580087947530271754113362027584610090088970287123536226967203627969053165089917509755795895677842473121302909033301351944108664813651939048468553482354267494637780103626266794028286928706379019363041793850156291444130266400812584277931796291621489002332181121015149117891905908464256999465088207375811277789920207021487224320085204774693374819062905040181745594480380121021228359084962132347731955931003248390426388589108530573022977321516632168968595812373987758354762806134739593301503024772242682704732790676430888388707227805786022550023080454066430887608483366367577960913758328023005281569516728765620367161080285290410814058160881641720357694122055174593402362697155178532151458982600111265553093778585589694099634947442350930992616169851984576755833513516635386199585603154542296301001518378097497901253725007161450149285866726427095251030439309323303219255391432665889372808463622476563068712769137028474285521077013122058050040490034587053973754525946658168031033255131919044741638513199924669374203309220456566226364616186172253142140589735149482404337974936539193303994948790413887783945346108782647178727115901500344107621001191128095553025864912938506840667069290913366178091528343282510354983285686356291897594706814922472827922940137677729647765653180034078677082188438974921606728104073842727313083488219945001999291120933717266621802751326076066896212400747253429165513132894734038950698271667523116697820976953442133262437739990736673580074483611772646313317019802363628567240152710929887755299928024591622336590114516295137369886820657084671744507277478607016893727625158109878675305349574757932615036482379843760711729287045055999624032117815397724566566423425476063846398951114563988785799790006760507500902915927241721576415173616616342876606870183271955178612311369352224390906223017199006669403137556495412334304781297779138160890450754394253645259938793691063684234372630248680706537779802991357927050206175745572703362354384578399614822407435569009671585665641151026731213463466330952620567550868512283663183969594198703820020959766777009122524739482775072660831338817049907132851593618400433334049581882580027827224826339665448687098399221260514731856712634650338708618537380486306240396819460145885335732868631050114930056316381202837546419782261216678427147768145776171582181572310363870791681941568617584076375295077018868041210487270927712163631100311299969610337779447273047689776526674927019579946620925795282115943253528160055025342551457236682648023588265202810459059170674066786032377321194660637573795937983171873095156981696659945904734625015288335907637390798090416417596536442338028562497778609568129072584956353485854401799780596742326097373820179286859118008027749602536970540372563172687788587965441790101567102690465436329290271651894641982819025642740164830859895981334334772935946083447593473077247372526609013977528968312761330043324849605309698197424197004612444092796013088873241274946279505034839484842549893534004351689258531203450225660902006364046661505905712687054022561695091307476220953438375427962239216243561840852946342900298143153619785423438559951970375483330220867568168445598476727219385137259020630905273434655889031242052150616490706965678766057379618635433441576041322777161010185615204270569534022894541847459749275041455392708353240981989838967135381036576665475636620659273692998494540187212019806906571594639521070205696450070145021220642983301973194183976982783913231909125964230841854196809336591226698740540110373849292777791535037385551497425933295198256098529655527439107360482748901199807783641142628141611215973609964862920617866761996890849334986150744572197136839047021608600769695093402870313095171219761501842046875639072905281281368799823458218511887855909493983955941957429524055811748295921376939369036108276974744281409517812723867775192969053080497153321475721390903217286179156008077846393975226909969085260664094505317150000446192218376677997749608371522269165330221798622194912541622523247901218319561002254301780987842479812341046179453150390377098826700461477528308430703935553441601755250597459976727601586428504306945793515163413981786838428753750297595031534251154866024564379985675081608929277832947208053807156282489213750316166532619253839942679953754973281565521446797783218253630269193633328628957158905434659463834914615035918341516869887595327278122996623443166052219394329141358920503222998273710907792043510299082227719460869718617915723792650262287321858553666135615698090399041057342989939308508106583881014698375526366061374848886282246898553045810768396993824473432452699165874090258231965017622793689677070363927842254999762084205265606372923907718915100590029505293549686473828627732808389621317565076720453338354397980921505364824668973638419648047329145440396509876139234994791753705150308433992587671325428771217792699535111733735029437503007602237510923888400436336764892158741494175643918043874788368326520753396736557883718776193989096953352322482329639145988806074046912058601336702814517393482574170826577505889523697069083228558815151209313142927748764897100938402132850620945375770937033652592103233030312028479136598434903787556433418110550842684047074313224035414260053382099633387590946454985171361005850499398826911962357422584132513285766526637176905696969838679829548704316040679333300237555398210235528089930817608297567588689799003907193839277730919253498938196677076447674891784480472785525860825740330108977231933415556500275302164844648379375471631841473073146154940139922070984587552758471241643867353006148172512692576998702259446094519287628823680212189396606462463677285836102286493151618957110124263063475508480530517353240123784261841139697797745878381217764088536991706256163397351260923676456710038342725757272853146597614271492840208246635342608309973927506555057875902175264726873171833054280183849302431944440857233685405256090321535893427907279897038610022323589923963902687480275904415213197717045110683171119205352085017051252868946699283398915172766264569028570978261301482686080157062499742997688816442171147381415795214521497695396494405704600201534456323248216832754564973453023929317104775161361487327367076220129484246383737335053124046427010102674843788141376223754133488899103849554177362165495942629975897156415724891714318845522106386928640087799703687309918026126431801995944590869572481380002024075994243760358935316151107439619581536923288152119040927855593624250714406123519205878278818381956777472782942754444410209019428725209144523490113786185798847016929184076469923583137903705754691619049403159149969550021712202689264611854260042612026351950230523358509098200185757943028018045036148180550144639756237181379418221818698288861382910270547384918620178337265430680569465664746455453672988161117826488732327817122192953191235393315062047992150597583906595624766827547799134450134222162797049034307038556337923317626087297101470630038202328212672625994559761978877548183501940065227942034487288421907246194269091723045412295648517306649117110207313728278960835142009923289099380311155678818119187789371976024445650944682270326933672874284506767661574065380057600008364669060510564981244963574692873499018632175262367823457068975278438851384106653891092607715143921784738404480845385894169386704041929295672111592693494046739217729431494861015694095879720314426404648967263491494382983420131349484525768705718195215911949647466575961370625871561547078950069729420025268344816847672358720430088558293216592008289754273872084479984180642569728195120837738680129114278455273087374757848708443257084765029913700464680009526554814606346028399350386046649310444040973120368356381778687939275534218676082682977892654527260277934454845911732972758163133878166736014203575522054940864277960489556287557000255720030636038071498138168898234751511632146603996421695703731317222619953461198972524442451423432464133059553318218766911881649329907088992331482982759794344393361567543641124709984701084294578486612368895613167121127547770718205108478733177173532448591269973481518008478726047659311910115495419985725810114473297365632124839582211446628274621286307751843329427003051933392034316742519426462162633162621844979396411359538801747481081075369195783812484224136351820443655012042761424178394893682366748238908217700005578120522736410914505958934705779150826713309277008183034894045484001792571699740655525313733166850232042411242491128521310004292684940136862718593675475060932799360800609024412286893003916293076501580470316227405946748786010481102999268810271262886724337845763867930386777831253594008396162211757436513655001096842816865668848708642552934083364694092137335978643125063650825076548351850715200593648606288016407770164950573988158886503546596058807615767752049827259898624384214434129656446742358118155893944040666912390980817629563664419205709570777465726281048910451528143880988171882528594355980092198030901649753448659773061899518754014977933590050501732043694164812197914158157956354928257775056200157733705001740979300951255516737093394975489765857970578950913460373847291648614641983897489893768089357443815056312532344466060937858041105375112908025782633516948106517084650856677929625232048645180224019830949103784919273143163308397773624553090778816571585739682797576994352250821021378577002702149889648788246257602171923700414917580942006985734604618239254678392354343636169501662997905963340939421947142900469316144444726217656050432324097791046677377571422485263849971087448927770843886900424171368825464295443467634734950342152948490074615895062451161953923250061010959296106202013526215821592370503945483065163746855511003412330567889378474268455024241318332844213162110319418764489396029028435564628541049455566253365278832697705138043693225630022420320944128449235775548822738247447830947521960765237581438882715395697658456872367341772368096850915529448601875967265985811570985796416870391750253950370848239600971185430711243976399749257776802657076846925398322108054957059690598615799752109696801865067616638775625978380452924095937966092886879726151220073339618438195498925654809840133372667431042814585641992796353147759016814484475946955793838171052621170331126688334871511218863067051438504991439735944545474351271415597717867690157272591799297776790013852291533039954231946987183255091375630406945689358459824812663750682200482575207795652826673324606047481870757747801457198196637198016597820422651364364878739046571293746620177679298751612040634784899510033237433389066864837748244961309615155374724165187987623382810764238174576551277965089244338261243757676500697281645710704787734668979313826897090592874671498973016269761019528031740837626066304837168199639650692333100770937946794393552754473365067963125224605623679148605069335135150258106962873191770320370113449585270509258254612060877230980875581224373375833514553159360888222467617969401243553412499235967721069994355764080397992019236786989647904929858882249422279303769521781192529033122148516816039030425358426853689817365538307765948563130886290038794451643591942239145312058786560388126604531495128694200568522004053712804506318839967472842287962828775254821578957094955720847251919909534043146175583498597806053359112994353631856373023000741364983681856657539322701420126826361190285556446319493130771553652462368633140449517000310575276410073165050864172643110524161365625190705726929113911476814668789732880058938886887676269825630104178929358116544713672128409316475554918821198676266261678605929809137535264548664485913989465886468496532108356873268483055939219261716039977795859169404767676446641868385636209743171047073876919885303789893509689998373496552706381172881393593284915471208964702171916068607412856452247576988358314725580894995925780915998464381876545091131018515162504976944666295529187556364790910463087006823082666778201159274797965590608639493728605537891848761348657090265849583804257291448798187829138977445201974282137043984951290169196106405804976048420155646055789644621795625171242075302055064327338677073668463956182448275157209684021015258663571896644719861803900943083175865202349949308458836753303351266026395698285614582185802634579092190142407794247336665911627826219066130634223478850280943656655049937833475897914121624366638942987248327834417737382393082795972489307159600907618021942838042039562485310076921698606807220852347206217239227173490584434429757365660339374151349684248886794334408439371344203140371442860477777148410693949766347462637967234929539404388100256509692852056729276898795121400510623898033482008302216259097629475797590447476211649355547183363194757533442030276346739649638753963486386255340668499607714820119209944643500371558775474502993557425148928519154964476727730067831015238104348853165613889633328512819505564970505672686863643207330066523158581680720386263839401319740753303695636654489186495615073605140828812993104098322942708073011670550582522585023053773928649097647795367897338535397724874388909904064584437464843645722528722109503691466837626435521681073915679233292319246630907402016009793194972478128616211281230015948168210556481547505490845977314756586226356635547453420717261802169267952061096848063280799915357393079182498124968584790704515552628392546393163500464072519367040412592661923749363033347338073262029255677982053324647142980873353888575066139886321460218551021490865573949358461726605238918409462164245950360278773169435219486173823542251884385972905321864053914202224099343553000087458579954551227557475040668360279256533213057619541642295383085264028967064705782988801300172587580032731471017393019040775916512995722657695860319867035953618518685301441746556023819609799221934734951701517399797698897751360569478418409526294868839462783231715805715357868299128607178126161660933570039774598276879410060634187919296718810121288446479087728218163840616637534860716061227993699953200096552780142766974243636440553866133890183696750203109186587786607848920455248624683203864231712372981116454888185135239575669639415314191122845798348199855632563340905071251029769388154966622394932715249981024539202331441942586911188660293494899862729234013659805787521022313059196683567755941838660416874555114023862852369244145479542265480776602236469968094258132975355939006520887127823938127842121533874374575080691953966154227731480795386605472680237066547919930365340683196201354798873376299116680169415470425516326835972214062318322717675256899176006412819004207563409512806400290356603588903515134258212843192091307340651858376549476712458453033065085070030749348293935372088044475344117520300762186984418178097063780119011586149404438766786692976614296717552899697855720292409192653940092094394664689454558086562960329235638500693924825203443115713980448320617166819624650625835179596486143282908581590575089818936888680715490401135092549885167124765969833171692080556117079223134943816776299434134820693873649219893584102423429561410100023043356778322639325191408916070800809636145855788844528238424697653415470968305137674125604366609051841382366552887508951329227408645611162578926717085864775271227017278139820448896132255115346672984225587263586549624707916386983723632692048844984094426184628522601274529078744164183899811966400236976296656081795952423850774523578881747853125636087604312859590273845784361054742903461865073158891159787308089334670603566425912447085826367777454202295379714279899766573211114944807581374993147862921266299331770600161050566219626551958775036984815511630015638562949375259791758957860513991605306972053271261810533720286040679342789455829575776955325762620214699269209908963373525928611921551493151254366958661913555593577874407736202277719988977411923045497403573640764408466201564324793244335017860069728448829629845733340562847224772289736040970784115738385836400305908187935795323925369566073822347598281987484065120278158710652084923339903432143692746958881251644414347221768517023656276503950590871858730608321294022183878817549604256565505778986373144856869837575623756354037791673866607835196817062675029436725541905071315390000795143906271354910868757181203262740885581519112701360943841807414393958597451265777677810344037397966765526079339720327974137696829779421471556346957143521221104796563842126778621950563936283165080431794777857192606030370086046281663514406100389085167049613662529791556570105539327160739698039403948776901894533267130567638878311058443503497970222066128504032655073818362193829240701570586341557903456680711435759326802021071646218232318750359965416936872443961812673007311961320074154053608710295136990476101850020001433643372783480260426850334580465351388919316999725317550011886830855243991844917237898251657797790856405659245986966876688205462401573479639148478442945918332944670540425781391908844693813803986820023760100668385921018537258457458212461688005809233828839625336174475918142332977495895550003221805186885384827737249481073377276708617038172579270061544659080620527524407843653650666084777755261405455510282088308826656036955937450794037647274106304722663502263896721420504816997147279242792952615004680122184147135220364943808059577385901589010719144569474854783297505059179996080897835869670108244641959899068729093081567005976367712514602107842875735771822098265654591334051458191297316779769048647882338576997939538804145584464327768012955136737852997927619733988058708526311942235810108283309334872473537726309568411576667902191415058482105002472394667434829868270606400137689281627202287175382642197206851361551343197894040654263401811513477192221437451251418444611805012092710858473915527887327525408138182910684799636311284152285517691323484143076655979915293256478231224705265516441161605743208429018108960963450936756646093754106770705390416140109592464717346837625677111970029969626350229766346137008360248238758568313797777790013467627979188452121729028798039665918223894072860974098697658231182324852694262022048441634361926560574056481870504383005054774444417047742308201786919638432779837664103233774044921329400353036044424925409259719130066911566244762904235264432608025592235770388953437818985901573038635706713152460651169199383546209104438243687734953194805798404138094095178932819769439985365618772516033555469091817610857680948647644597591665542954245879749690905789481432343813126147818327795275050507193533664306807696586785637521072616788109273301385341538407152836463146154940201543368287908286759830030490479320387630861435331615104772393579070095842403491355155144222393343728649844577355729553822241577092788341616123392085457609147913053435063659849248579944383620367999784785184783588020165721506006288816291087217698606290154193308312880512984632962900795395804453345386517769862064017548351788219780266079186916698284433360645725161663447134462569880466520290655216665502839605029095503000733995886563605797654298673698053848952622324195959962742013374245431671419326830699724215692798738280326927285739932099239032658919229567367265248354746746374139973471183220237614900507475162340675080915108006655520470913290217381330768778081000309984558242744924799150711430640057894772860252590264546006078288745634269438750698752745518740241066357518641377147533991352928911588587348393751154206422428612848970729478515202499979149575735849066440347535423461886605722795140360491119601774200819837951598989476915779371492384038700611922969045127675947551062927524665359419191267145885984580199225761268719660799834654389634402795662719514264876669562330457250217075342765122690445438946645068365832405029744917040528885468215871270125151097246341131220614220067300858873738645003977050190997614778973539296398937021584184470728859087463134065814618313554438778890733995287168158970984242387288851167669877529547524398310964987763110167657091524954023524993243887375677871307027411782275765814563686788569997062399940647736614532719729991896413453603755558965357144398651342006377152552452173710611851731912249020776875947511717625303872585653340004991912030392717590050001121743215295797202631168050486282065909364743955293099420257850851552111604512793776743068253960545275714445134142610927139294019089887528787956721088222257383552234696475045449858644912118012316255183931151043182312800865870290348083602593104322926217257130119345261650405801891759213322491430959408960137693281510888550734027087564205343913273266174081418916844937026287359973361684642941453221092361825005143745997556973304798364979810196666937491325586180568135505534634882680597747957331475000818312079961747284515175077803161055293619797290042252949398828989501753424001975364791141348089714175045841015587776082605964332035980916484692946019532393039477615092261862303332534294639800104488004762089471248196340355216611456837275382195119013969765549623619129613646211669634475450014783339385362616361961313658381676289357142008381540503727464993920655993760142303886579860177531453934999791937867515667841768397636477399091760567102293267204330806061384835578216568033443806994744399971375131709071924114743286888244831807314544683551757623282102391011323959001969029253370971359131194904495323971096627585213864489585937228023440428031433975972784722709141696884780954166463864018357580248066814886135593726657670449456710380133911678627461552277166700641500725866628564534871968990086553981711560468578913747247649231449690917035227698961700930871390911200302605933802905192854686896041134629047807052081803510582828336313877961163545983356496244476629865661571122762064989999436449577053186124216347520336777415847913727050720017241279395312652505629800698159348154150797720780135541215276583516037380465949204543037031906460810200154251215015779908112162770853447690343086461397822688362252816199884848265791619442376577639255221091033328115645661179156632691070355090535905876588449060164804336847586835104588599859687635205266119808725831787598834510984293367211762010244640779442590946846142093638957939929502779488234060713182510376962723692782212799795916915616309935711909705280241527599103730088153884723808136767088031171575397196652496371809642125590311216752947124560696077816609315595943578687712073677864432289556625059262446525499938168014762596043101120007609599096176879023292960250571418335273468008302475871390327383574675991065306639919033881100826564723466951314873398507443119625032575156073029901297494347871991265255330398471467774229587993228402762295671747903001832603720161080191222575330201542757838744210620520903427924092928862795568117330318711936937986234211698576511340965974413409557990057115385951630195578368368924186880049049204638807516541215140841430708042741535014303305889758004729250445966027227645959026385384734357312903481900699853728719398470810747698354853632219203081544588083382245786901218421618500611038809032234701240837226550926998365876674395309782911410380584144962736974692019405489011318150456129970978153011605689344643141458662337937077201380638354607359229655742926112916384969602865479682714456336684981517275783621708272692595941781415065945261449295207601083791634783688383179581188329208189784032631916115456700799060800432239237973222332441010948814735467770665366837220446241666002888534052947944626648758690690333525695272435100564430807770825467375590311692373391547745526266526346045611610364058555143185117317069928732548105394071748117911560864122561990659615143970875078034241600686661357547030101579050065179080089694777711575713254366159738683409412880812098704745248781040875216728843065246712902812211917665475083214083403654159785184522079766985768329799639331889143477092878400419163312842708792763918822979879851192302831552768080530991171746775747263425971512642302203787554790497512870878199062534271818789765491900005053695297714639832857632636993776543467633428278853541667441344365016026149509427956608315557582762799160859065522835037059023837738824625842275653688072784490943763824042327712881747581518144464693088833883197612909391396025893016451555690200264522468219340031578894216526228283808139332052988569466011803577303894066895291467127214568024205765380483965135179659733675708753685867875405601148874908429031909221290321249204306564753125775450838694799130512689461290306574624300082958701824056627480082856272167185436573486541434304721131556364250967043898323632723781795645930487281706379734859196060409931137547777675280968949964049766654620252359270726876050350511616153254479766726660160847876705063923814588590700962555739938362807620427626654577138507911613096713288307670439679061015057742465257065015820187445781674729536891156890461138316378418498377010203100182145284570126272096014026131760282520688086187959725630615053354344226570191363626469131648626161101613525952537088447614653528915405122623044067289280501415705395787962095462643345281270743116015969753487782166710761690330318640439077202538866316944945774603824515907719737268672687964607319256126867421022665431596993300848250564856690201151558980171674055943664328634558231271895842388624005770225729266503104605614461512373030540192663985461720755036242155595933405718437493806985794922705056012413625885665390136984554639743899016636337782099667796799666673995808609704663365176440973620809676035137038954425851087099937129641961799437550633749735193609557656507183247077065379828607377386520476618324900836088130388413610422293294463599949890289743210694639851880084875880407381582201669623075454113822939146795569350146050279736117594729057214327326855949698277006776511964540803075643142522033220333486090858018420392202148383237951087800999108218299676912491580983210632582894640649937546452271292926315232313698957913101571748922112225169335601689536909665277275688909549863423198787527686537431842809063772426981029779169747398971138921392525514762039957235873082871132352010674305749868084109054975907739631307351316898546575223004445780471390508524777464247957521692267139369415129062104224395370502579536884665268604588091229305055352627483569172305191086035888467472235109806015030991756349454076571833057039377954669915816037355858172834897347641457918428345010175849434275407703695292695424800089306608895452928741631397838446997422963237187633399370570878757937731412239465356248644614781350629490330531193918259442987686803799199239554371302657528623477206582493285581983650002505529085830321244006862183277610515509781747943822527427242626608771488467126824677193241158676496635364093432263562982369815431688072388538050436940355113362879675113551629704380608063637571832499033970563077816747737435255234012534127785674208357286534407364789252817936520817337796080360119142787221627490462067318021038354593546175565558398337722457428338256910712693881652064856325784096695414184147436207152120839251189959081202598579116531259059214384736676145939481455222983807644235297435318199287852724166714964712048990085994734919471491881668852427720227518839549464251249478085984882537084630849451129662737920797011839285709592965769791450504615193198544281489147081845391308507022048881411366514142042443928157729830666870658175868044368944716148188450908858031323158550145877811773606865829578193935494442162617967706847700168388889430839289760205412661099635320921074959233911381859365635335654974514004970561509550126841216378902571162032962997845972186855297477645989818819692033596572801421217955274333363956398445327817405939389109939714372087594306371515625463132257537980938038927998404336519991775056877943351719909491869992848055944992318721624241218197406900372561682014646160101010876939066442179669956705074135594916303364766272135791712101097826687220058223466289478970013554409500320740788112318571678217649221661021914188977822719313277037973724853761297601679435891539345664970374229457235580151163947356097483850717610247885052317560575573097871112053580168938159552210614832158044129857941424259089852878277679512288562364434591917797724009863250385500964094977323468272216361052303670428298157582781285860462470817088884269704670350683843836385700383714285198031433916935054192734268624838525892267124339572136053139045116554501407951862470712222105645331601257948742428014467716765359109826743752199037510194762212077433434829424712238136425850692151641263084870369440380412843386307835211494687037979234225721514740390320749084126087273261536811012677504992679891160823935217593674473644182262721942414597432284604995397911578747680050400967626762186563419551089864966587039589051607856366967540938983752102271987302667493083424288132606250043359816645051838311764764453858086468585288951817181577389790641250292333913367078738078611358491216263004778350778300055579580311666523507251259273361664256049300308587945913726082245069534028043469723722827342452173730612677577076112077979438476575351067342427167011584861571593959973947527776539587103874297211144868298555953122382545761736033373969858438816009467170614455223866464041649839557142145941671203631928094767127460327600634633774324899623013159440685929066284382923779485027234754033462491381409909882199312972090916701818458179593670624732072975750917659639136259196250527871439568825418108576871824374058525180776618293823456963267251886183631474901858889189282375288204491412143630016432354990907131820850560832917735516198759653922303891285071794661395575595814776611042714170956501336540181224206649396119442161066567054197077333156035437461091633313831722525910437475324137342283455188433806301285478203093905907415376746427196199227608143976218147592485824641468795044432200512281186194276757152853882273443740853273789604723506032686824230041641259062301515327264790434800865987929980865334425529832310819342391301671123978285437011261137148790843761935583032616182534423498502618085396512581218831868364377580933874350826689243352707052981514163445820472440928311825177822887797475235507680012994728972492141163331030345814649747341776704174758051396642132660533022472579738073284392858996835030228226844261558458840999501330906865666268173842612642453215814730833371716313251808209323119329565864221031752194321245312110393490953874088410112042951004326394978524613698356835346662715514934319922799048156370664645439536814592348823219540610899180016209778206948442031820220740701042942874492520573379296943406325711948427586133364222338511433686194391349983609335268824527133565204584711682349128496230923484852279294733432160421278672536337619788517738164695805340338124030345567624385285972332534389197184008313645994616380090895450960715473415998862318388134883688924985402537744475775719206831840473448295698977377053443372915566477580552916116257844027649777413779888323351980592883129652332807501929677654265659610532532428495305090340305247704096997996627345625630790198749523794865331261918262806058317511904408549503867213506764864538543648413755789089946884442624539876072316192655679718548318555035665288737262684275800689391099743726180386718660209389313569389324405742834003588593129503815901534410279243863379653661860308056863961356578781683845746843259263820811023503625680821477604904383806053668638083923362410293321813607857397907743946690512335728603580230723057312366741606033832670106249791816123349473348662650177570926305194781359347007632077822231573353045853980522398556888127130895089099054456638946286809865312315353570571534614827046309036355987245517300449420919671354961840071793134528364644024348808833199281313285702800456638931272706966672318368821487680072041428806294052613273315787152962099733222495201804886399535917499626546084890934682628735713184900568108156199571316208708300360611560743577110413472640466590678018198443321989542723848971878704252177956021382098315433132844161260574390250603758223509630960555116793755969899474299199215039910221365706454997138998218379889152880419100595459684795191440256068060633853607171799632535010509882847351790101349555121439031071098159473218071356131068038330360591573709649860914703932755268119298443485169052068149679456349716344739303202461749922188587925517554572885844496843258700389270483087255460424492012319011194786168459851653879596379986083329845646588400501407656727412008558370793778153586211184864481869223892947848245259116115502272706946613837350837842130467982143242531464897259778038423878534761571501772641001798268985325035663011580291342154744342661328884004308366658985395254542079617338989180599702101247121473490597861573502012712712147016993080147700245421327142762150821551748443646905411408404319970644625515163033062795364377158532524700610064183153906749432757482605271853367637570702056934558846289433761474142998106495600328110106740092504586956105743018423165443528182897886300714373275056183298274716315934610003175806516375203552320567359121836909798250125748318663269760865033865631597908020317013687030632131606854604378538199185727868578409533388490525675329395975991327994184554439455126583102210391588735285556871993363956324712902754506062322451200559882024876172221702166880346111524736966592977923153144176156993548885720037930685660898541385678391120173834227537771715916925695799220284383124900465563260287559333407777320327784124020458193683810855644099112888935907929856569768688500697836696219071150588725071522114610668026623808466215048985378315609644798368018814052681486736196828800787518522027011408216776046983186437478548226167379599427758677814669014166695863015166174835708432399650960020435721153567029042654072731336185378205995421664222821790910508853954098323617675072791871851410706663319068183336062337342347266013574272096139569594014403388260009057680319507478720313633060015212572965768855699499492087373418250774114756021303723177660441427692956321672944123882606376037570234978427098553266665630051033018368332517802195128163418084518414567076300166598426106023186372087608050019115908927929205366230229900286538188492983686676970732342657342664111813315558462021703573149626296900924562545584478430307098791355805368291096732155090005784047362354436371857494364204773731182411604331014578889548195608796632118958630821315344308943742883155181999937487534272847885596227350276326576052324722424115212884791497010690408675130377551108101170941558681287378796236599584663935187458065663850208310568713055757942894803671124204044828515155290605625508072143632512036078742022903656192476443292492455302151923781737952192396329493358830334574121736151075250654434765017311606883343414595123346756176687816716825709573464519227445664631151835186399533663640962446142471347998629405385418939114295244566624861306526405151463778259056793420059352399650825060849192810650807328758942463640911575600511842661126201482444906801044862829605871218309090601186136702909236719843480499458767317871208829332524312155710027570213444684850315998102281097040583196472699078345821578703955686265511691823963075826755198351313025142887083706712316945215599273780793305853001329612990892821992027920481249337130214830643217733186672912599232149316900677309752145914317167097132553856810770901876750622286764795848095323817394783994568506918084630822514047363850347693178525005718563222964046380243382624160729524933751976449997625157140718948571159357115510494071420806329532070146744221814294892109762271458831952081491953057632195636768536578771366678517510287978759463705590307498815343713481220222744200322519667204961829907690712363459109006072613760899685024769611993306583718141166993668576938783392168153181149245420861855235285814880023057995840585014093820308088879207339092802537314805575228404366808777356689359258225986477901431539370280364475452886306999864037371861843220760211599190224969071640606790941778238589515418654487391507076822375377640344379495940294719457504990249673896862644149462475275704818681516559278399436423912935300108222572918958103040653445035560931083202147709314984931198312854781821112225900743834693196945299970514172610578319445453392437925652774434939415159539950128993645387396205903373761871683759064718566868956515302288230803857097832812667597865290951952243212212622424263265498376069396363127679563610970118114436118232295502889179939630361067547237914747846297212878563654773265730846199557005948383334286448286831931563829804555553748207798276847513950797727776305421977714472908521828682230659654287350560806844184218217944470854515775727197907857475773745055021137012958917662976315779318467545410747241317113864977176799677147229288592114770178341752496084624693449893217441285975877564677670279318361345552841018010612707085954903867045105939486092657368374480534922349586360006897655625181309173741528409567724895331902049683675940700041180326828224813392002852130652673146045151685865884901017044479307472982362306939675479218387417455337582430994773191428909514405980191204911920803418482802556440304394410310069803072879559588906843889199212210887282830439810298270308158569161099516806635626594362245720966617122484891429481621508787058058017703522653334525899707060239906792464549572755973893621623966088241032098011048845000136130377133219555443347288907843204862165482701042824377253460818976422465912032606228876199437691490702594508057686434188081633443684103124437384946110029045537375654124371629006054198471268633998406250735469228724418382502967486890828628592602092281464489050216285846055404975875465972318346670863723281134663697880719093780016032293848132302355387296951593864466834633251787463796311646551716567178835143364159361477878273396400573799705194726529922130738648646809575509792730935660389898546832710204421714143262377531568697128800028120740582934482348737677235527036275810987175759902634995962894722470247383280612448383592689332613735244126014350450805904626266799289097950187157979953444755371568992150405045511805090387309168050536793400213816809229691984905535569958796050492584570197624219404812148574977661488228155935403841304882551665560755336536182424090673875527936601476694359236209291756148501579779667766203020861208236741138606715576775534455398018543112486831896566253348951256550652463620164874536674634920989128429253651997719605440149444660027654053607196020200329516088854616879386304703317083112197207386227852888620294027177483377548816635046210305981817085464828234254594293040825974546976998446610258839871185475739486533229763868049592388870553727266870575980006027774481477900713537166022839507592011020211896832089720836655526904471281129527716292010211110763178977634088684388907044871075908249677237565488241444316818085062217447007689734204815781896593208212083304921018119464672185995265175966541276129906004845610770840129334395930493408216675912516790742028403829305242181910630077333098815295899901301042541828170456512110091874915910428076430414762805363743116288363978254966917647739373348447191361203619777652187736378947504504278405961296514601827222580602475947214500815763462041480562836580146544920068510750444558473657227493270093180880693926689290067983709176248196307787751876214393067403136581229957172152865219948444874048539277504255842947444221761745273727783961603389781010078623781304465002612823450644268061223072242521786248606351392930489207660534250295333669876110027345621170314324031395117825586167371210273205168679880751893028109969119560907699467436909357116950738820635177296356839542359330995648981612572187136713269150002894577850194849791166390467870064382028093595517764497818109265079966558547898538662946565603374409976196804391367659670263172445905156876222866912521046882288994446174611639515597900236122537978980402357663742983512433460439398055860933529939775286028001127104564162450635935440811408694286344037024329677469267913249576898668024773634607606915631997710994893626968165512479290059198109118376478956756996743863847449604565408061313543111946466593475679595616375906096802535742230501507877943060671385126349590434970731151331745929623570728072909639660700433504127610550729526444305914338623568398543600897494563632258253724830241349181643994559842760344433019466509254610331388865402769433332025739899209066932122511599148247446594996598574334941737533130708845389931778231317880171118046146188929253069768358069483457158279482787294650944655986192090236226067210986007606738012740231153083246842849264067799123643643909480833438981401633924612704011181960004295075838003985643679891944562899703201959505687733504299057185245389700430773957768745500919080775454576330635302064587567309678557975469083661908435466082346558271669547206039516793162857323501255150191872069149490118185860505566525205357146667270829114087478466248002956595312865572963276725215421595432115750552253953199666620783686543088823974329758133997966265273927865138246987804655075520049015197457599786548660750883727643293936071355317483398209625731753609389415770812631370877327641642212794462126628838443248207484396429260883536702483315080577046367035193701766896950777760857360031340887055193204732384021529903548474362659309953478869680469361178034135192112858820109608186805575659232938762772251449619604310430873234280811708507050477227039322611794986864572142243095301316782223684613331784658564176180846863752784461407948286631960926348196043007368215925935313809916899150867799532812688305182717875964096058473700946183797379371345150485262448289110787412198194561600132163888729771620618008454260937849543424213877752155443403307276277913118680186659775642721752485963411999910643746059586341012583914654552555412363944944355642173576202701482333741666581252189627911787462943589453326928414752760861805809379222498550359870877390151763732917298826147373057202521454722998574526321007356702085395618338150435135041188441083721146499193625424627748363932999288489191087576656270411502982577911419856732066700367530303806975353260300561955526613686286827851868372393431922179795355470201661334964614936877897716934202209372471975249082687420830995412338259634360570146478228390065570503223957445344167788574756451542054227054093339156960278759857672141603075593611194178374887294192493335152320654159294489694783159369275292210302653350016494419740301951298262338323896616363380223597777717828888018036199480509849283275639834553727675741009262054770065517182686350807998583559451101591804016685745362120127542717298547526851276905819845787548513397061358814604114644160992473329414693705676141080430156822390977607311596270188372340598875836433792647900354071788259366059104870998818188161560943492564862262944939420158342747115685315964001698114667173225155753416672025066983128134910604700957702497428121133804587721180749241237292383543820817849486617984763826085820634223341842491593132261931946817248031876787472494000271546980764432015943402966380053776634704104389928739890602350384293338483129317196967518709171638321986866907755261604431156483485909468969395379923782652960584669752624754697638698942085474796805907830781987861793809831990876117620563772518291423944051938240893332380437526633954642442336644248001725154617260978944403351862672422246968419674935058400119441008386738754463267864846312237667810021478545835230669201572885070162424839293253438073529272157656749476760691064196457447794888660089681786245679139170036436629986347337028129467486791250781020615309307197749460629844047822099893832714858636901904990014606832762751345463577587576980079201741149513285432885452549756357272687289725051095890569412241087543666413384923367611129163285143095610753630020905301618458187941459203843798665705415206478154358891772363330370125851118763158611040465862834347055699938941993361189260144498901327825903888675054525729966032157430887050694301309597532689260755202843989564801697148413374372051946347947827556129772941726546117408238453355136065762764267772234806846046464447300362539909788546211401659040982242490619615605999176509071900216004608156351013174738794240936561617168034140339930038688859244285004738423226704954559006026096260265008864064476109608855759529332201878146803399425680260598188500729650032217791394270346999067117542989753755088330518481574904028080249965682743130730187079018417326420273193115851755723963263792687719344758317111739659736037732739738807270099819951445839962915663728198178367791661364266065509088632169484062953559448868159066628911715398046103637507631365284375535345130587012043773920589016570235615324465027146949429246097549279183184402386288976298835817338242423859394371356102773930299970004211380643137092706340553664577640353502776743728160771350188925242520261395301007993000371363796659253701217243552372038135176975424074555712690121295838466767717875235857239488951498995158037847297176396154763169848487661966381326356430958116253509263767826189580024499493822019190363428170113722900548226313423720922792494753772145852121017400333984971063657876751186207541227137007956637944549475890564813395799800820291114112315623615331761441065946137708049079998029435262807185649095314450828539796558432670502091498031910408795191630175928829807726945756550941836609843390793387133201702417715759728459153094894602846436364196922874670900590865700561386459483600477976368105339046940888306980772716066582370226838431192670410780796173062140728347422946072683997710913886158765173395864862876049244954737323429390116915959391900047710788550392314794289320227404275250401325566458557562993786885980477424785231027602664062516261097134461812355915729395475511699408707343890327184381671728156223643777747133395701056132654978308414166842875652147427420526907967534749450272187734902260147789117835970387412604680431990529822100854430678774873244983562019331184092481160695079461050431338357166951670637573974563180272196492934641937514870883612619441454195104270919204319115100880914937296745636137754797190411242648312863960389326455005872550751789582104189886455150655618742636010795826263491239485262683893276946627623313194242753340041724934514221258076343786161865727757593095350901240294670480364759581073635694528804673906745683968590605831748244475696359584001032328562571735919783420829915139235014899055285263104914098154478744901625896998462643742628683185744741117786987277344851188419418887736864297121889471924998073306444469004009721362250869240094414707485086363166623291225706371442502412904984339471201355087839189945674271223850524632480390947703090547210041821665195119978550982392003095517736934530517759012715861024379575080522344059851807148750442191484528421048302430754711634314931780780610993401504156984064189468245926665444091899502542779072694870931571287723005407317124498428016860551363815972178662976164668426787494941414642964982091649079277566373688445841152473295136193400126278856544808283817495004594525447065145444618526820639225926151280447904483687705893971857097656200729740376252497383320424210304691028226236648736642678592924014482162839640116846284495304417467134820666068529515553127749868487039535009656638488304089838220399106393114446203820623794793194895663720767626688139477073510297007066977000510800871182543443768578546962931956342708860189090091794521477630719637119006827633769156768032551825060823100773700949840843745725695756803621776812456572304644884103889518762141653857667689495338714402285597494824450571440206375777086068189504349673683027626586451570077636398709441856858799068696683938025283185255039669568288000227226657804795694228313552013152125921621657798597078814645014755261482012142006057259743240679281672683868181339955922122796887856155820867394873870825078519394718883940001361293534143520134310432800347154592409121917816270487486663924733231167064762376776454394339193387362037726256678901175257188157487411342214474048635495824879514023892191659949607059484951124607351715675934351009069023330887789824998939707109583586814740164757109129244266271764194089188195335932376831345519911878680120893742095410785562470637469793967511390459915483326294918130607063075998959816736617383782922958253781997618327109116915585331401787607876169619815110229690573544920949979845690938336588502524928593015112794563361355679097594320629983333271249624806957054588190057151667001311449585113468040889937720588314134738391010319806369748107186225507720367795823007102632980197561761141887485659778150715878536574448643614145508508662984857769466127882822180216076336526249535482828493425335830761193756842989594526545518745513042587580152422662724554263038072427505231524352858586266308783291025243010085061623265255973820093393819594792974578526253658016512350165381291508993931622126363330800601329340909041446625252435370509598037943919894871450749208466088277163699273650552585451558925790452071448137025311465232526174451583859284779764342471322696268636218461674204431431101467432546941101056492919230784889037439338113053886437124531657300323417088626483602879836678736946335293577976434827191921086943699022648530371703495880786357902781903896861725133685311707945081410299539383502829417638721569987593627284265671385576242485172510423919531658121293642613150700560599775524696344587591666863995200879615857619177554985037010029603098003565473569785603108236066101348176135763407047282090895190950563911371176594235413230588017516423180841635207447074060313701347375833130000263753183570620973392449062739207584446050958295929805007713823354140299557119910768581843328206994819808998477164411398895676719002333003452385929314240520687469392030836518363635670524080125425784138443889816899899298359179518018911927354493608098400071241395730269593165237904496407167653291548198391781846497635850848277691179688190691477021708576203605096194280473917658666046921295139568904674519091569125341217988690960147641613207341283817191325748057481269758902637858587269367254269924206909456397141931948959642483235305723178092807247745589049080332781473498690442452121598779322717414324398320689686223821369009614983402651425075713641736196159911470551080963823121640911589106633670420637513361621023876702598019652713741478189673594119683308271530781046810878332058983038763436226919476787958308920630768069780490173268374749828341026993718247180987520688605712521006597306382385161101811500643012827605667922705207226386185180337184578859017399867327987913714281961535842770902931971464809151700847466275777424389925492134973893524967677545271874329287478331768343289686760784453441356572278952058091497827439107913580166428455884851011731294053976530239942937988030669993075230160792238302034738911411193834593086061224160156631902284128459472768823875384649993290836982786922365135511549762929272129743678516568996163341295632284963262203120747186872244602348733801979672681614160713072767385687178228197154671392480168480344897372290960433589858364451329890718897130972782296409196734042022174195037228058602446988817408362187871509325052608996192911537291624294263437024366421692134051653933426008539122057186656691206855776799477598995841939813793316806187259442445672215261260254368131355297991716737771646521292801093968670930577073143680708558288672551482683603470103093075983289714161341828839423781040636219679576246416873192117565556045225597382518590164612588690814699609376804716173719946259658931089585403484196505484049218801002358103998894097914467559679286689063163988308580037887575797575713858151895795976867395719609330695061088983500163188437563912742104240301363658817731598104023078468694143338087452747370686291381816641300095055923753280175825809066213486271225886309251713300103772540896759682149418596458687707410012128970133643802698140650076144651743960396961911405099739393899506753579667115338512165556965880104733874887800378896325447432969740574716810086413036755066615551730360950835164909939341210503116885654194431870469742916522251091395026989230470674543623220104099568517253109347271805282765752241578570075647608289740006445828541568318855229014810436206375087164569886761402265735567878158615207842701321441583561188922270964609581672141414114334064720188555004913129653321990642024205311208734716871583987764161773464414399979874705131605779208744919130316712896249692704981683830290825118158295992310139333519433566447699953720558785879339912775855184804698873476224666931153193392357740130186799435376808910397131952606226087086115405275180605515228272195511739664333617812074679302934095641120355191221507589864858435900790709381330113105492574744551240469276748969426165840289676642460365668055990918299164405094574024600106450041931426853031544293885168972030998178074471488517037283910158365224673106427354034573111518080517522102925970961756070781519848432021708366852417818109976557563767798149977806284417490407029743409800446676323308308842055747437439319708805782697661079611983219932654814340778739294477545987935534508957876684959558646205344038085959707431195712118654678459833676046074480229632985244080323826129264907497788970454808736713364001439618570278077123460581387086131770279356233596125751752976101352013676005667748036147053228541206368470642509105041182990896287010645724198712373902839013116428528658511812008184290442138003939596530820949286532225541302361991422753390004617296030643485199469727389625069721588912558842303824995786429852186905798955216188120087900823478232946839292989592738258150370295706182721844407037553744941579228829647997571626273384894423568307646320707427507804906891213312262201864993406093347416040278728221079505033256650557461819743685567173049514237670998085156929291292702574861376365009481795710359586258415586372171619062262461651441330097750598870353007836489867822844054196601065797919444566135946169257826277478682061705100782713815660075404497226260350818308524535741142483518302865997984284124815549738438103785783965716828208183286256960665736596628876344304019818441641216089021431745520398052614097815334430427551321788488461559529227247129253538452949775420091267527268957045668344161869428712656226172264615053296547157141669855205236206082052444964403767996759195824382054367909500092325217466565073850828207528774923121761131750679415237725404546508067094042264315797248892474462155984717777815137598177847431080494529087770185185033947447032839401280263965178996346692733158814453722705922932847551434826980913200307758260641665418335281051156359578954579010374178338616922755369647777433949319231537487862825650738133227920610937649340081662697846355318240925855983246768179350383896808663939302922595685207074482046381399937218258415813031268897884128177227691837150064222497500273019211409862665001381337462535137200558839576188676106573084286670617641295669202579363679966674542344124304263443230638223826597597356005767808509554530793094051720805579295891565881694542628804697526000627790241992347780699203078349973769476834411667350397998362251080415757999186614773464865285242798921022149514262084813395408815348674354798104221418523617665291370210812218613018289557720271542850568065660682250839505943909239812280753135401085198481461108406906045134341637540718770335285949022193376522484987622982126237272665436013204397397726263635879525033197652898202480285963123123715957404381309613963687493520581350905622297080381040385882630806176987826371879897858264386916300168310037727040735258672575701826401473816284598760707940252872461434073478397219159643109014246279408621904953137360914955313679530956535514132152830777343642707826622527159650572178629074761278678213294385389139729642691214346046464103811207751521162419497877546563737051785672421205786102705731641148554040827744367632301026503598111095407997285766349882996198697774255759987365554917260325122475161494726328446759311648071900619429225892011917889036815411326120223223799642529154520983310014175555105166864116445340886219907285998880710127687075664582877546701204660103811887078671221341832713189400316441674279357134549451776579858098390799093031097338659188524017891016634785735169542460661190900491661327285333018698182058555560942192307220980987458948930212557164583294229334291851202798027998141059635590684437270645234956610308338103169250538159768389280586656007585540707607838688776856719875080511664116071596714412585751839941342935318174960338630312955947310807154664116752735948901587952890318222046014764585454907092578134420841844266126827063538159372636111796891167103324246599161574417929124724370220240171785654965863207939289729862573388391655250989033748827621075053765170922063190257158973497827041933668239892835108242980835889715647292287768797234349411289496694190292323649973583556134472691533939057926316649391022417730824290498469857510687862127620412490715203024704517160469626894651760292815197059410027013358970357732973118886899975310144521456871588499827764323809720788403636084327784459343232604096119044388637445833624458839879171735871425540772043283650628338353068462006237651800792763487138561929559406964373172046997483220373218431483544807011730525404556449878959712154359589092103185787664694030733999342365700104004469260345188486046647365707463828070413728729945800709333779439412902870319991432891944097356903197802029931581497431634261037818337529671456045993874130572393295528022594370263266801282167330144705844709598441130156425536153148679902193458326437752016625730332210076593832039994189160429412766413766439553075055032190927442463522753287880935953923284973473211947966754955007354104447343229820743387638776300528000983863719938978504257407813897215026166701149507072158302860858898985055875005211639101795598001021498457556752751155116260922024568075925743982153538292504634899038857775814040212287545561834068924100295517689509853768436847522582933305358279474941804973684544892681961191383312154233840552356540187264452249169221075122666296840885656610476652002047936901568905037326523534748658620192711879950002986440985960261801912325125052789555980168859448163445544368200237286237841881398941469697938613597233526089950494001291130240278630837974585060714577729138041406023719836524255062166453081146344241613376932279233830339126266947292991943651227032343752859855979806500579448256302950319665473329679153836163947415909469790394902256910568382794648841876429341095442567317656718272955623377764670614404622834189483765880037525485981942298007675594777781277274970348783048512013961988488245709265467256940855467748680974627675116582772175527943089841624304314242040265518207043308506662712450753728663740646319811190492075347816494005505624132995435510849746536402072057619393730238345460671618083920406815107600007043370893223268673396815392615376694207029828920724726466691306056910093273048978148000200380089018822946403258977572595831422881371889884751213185189654377227085688646886804336668452952710191835812195851741516295706375267219616750849784714717843791647085615405918200763984134526160413928119998007341201722433976169189168700442559058355439376827527327019995145424622685067410612287310288296742280484596787081717800970069844176971579948382027709043088122958847547640989865972200202518348755590501527700922771097630974264237687462628275494018553176982114376163131902928105710154841095518293688124742561207889855867542584877946623624249967662929019895790900029287581963280666096610607149141277773143776802497435811700587392355877010855436517901069526236503581599184706314168774699647894865209250879542558888209018840404399334174828191652700853016786084561513176590180412630028045046725861596559762821588129082763520766248641392832320151389335895067985580947787753807568767466878691630677384153524902570921841069658152708757355889574212961619598515926520729012987091229953501797208895284481581114286640233517609647713793827563611255891544838303034263815389743956856913004579544853683144143010376285379015558982176960783406459848417254091947641772616602706538540635266909398213867477364381766425624376143720781449610615200067464003986496439710233659456307071291414085411938530989231924487737197723841078907110058545843599648225396810237642892305305148207360964879879946934223881325037574220324695066685136838521729500885574171819374207044562384777664489666786977653810492792854698300098886577275618309334738331669213850138601673095880188714564965129755063525174917358385062439128468621708629376613653767475603347921136417059007889864003508700658158562060153993326032355871928652534322881586795369081187133722300037908698123589038099806895603115680796441168822586380110260792190032281106711423744613261175877584112081102276592809909073743715615592636747869265334213484287653343201210377783677178160177676821112774579586085779937794745901429198620432435338417519193511048490630417500495932180888929217967175659042086293165152478784682391170305961528563989777777408543223598757393401415544074301500300574220328933302696319510098805859698269780134925197835492168992358230198718500016887657680300843362999822077268741277769400444890583189899359036771574395968090397551187331369867807525657599399798694005384474141363669329688187418132942880180102454773671759300997577447224409112313411051880339922275583689117260533861319540354760279707137671431429798476172066658818621692606280323216521046950615690539927776262446107584445633532844658205155403959058238790084199258772578775763899827161115879982917896341315193124715591793148756352728832278829325973126548471328782950153001805759446226746492531451817601831056468530668446092981117196439602378377971176036929067398706375673230796017024207175193069699945995688889424723193538714222658955370141178141851165862198674546993461139563321029255650305816553686795977473001299466286402275764064552688279837176499525707854372692801170691038101451830184358815945062928379933951621007959585803984814750363981504581843065813430820018622145115142022089134765114960203126761063072484943367706828405553032867582041086562362440158525965943937302594079398374675495250506878028360768542265320866890011568185966964897919398725626296426233351829730423301598907277859559164259857033769570534494856890769016165543488641642579440826100624187379222695472157610329410122839279795205352591228466658677156961136511221586721500896876371914454302520528352879100290979833574443212812358411215308921371508243093212310848064037368357264096745417707992434844694491039201719323527571523852741229747839154512023876474958915832961389833857267917193145942094109115426974315177315406920094969666026435601270755890442299045085752106802772674276478594185012605385069356706341371974530091658802069983484652705700518717764092115563033984882052592829080073441684544047877984917553176315299238476889317774228122310816857493815287214690112660766999581851956785814092708073546961870922896706392503024561453215273696031297313176502259475345537595309940357090846147578665186019057392238911352643906603375212427233098436658572019213072902523073798055675929507912714715786178206979694556805185832916949022832628362385285021413156249737118858873390646446245176917139017859873848182319153437858289304173525684874004292998985764826432879367687415434354119842707418337744060515396302293571192662153482786606678138485751404352296425345997897561117167701548155107049774393382041872021420252801476657471849474076905513130918907955524090855410552078191364020799445701838514710429619894097272189707997001266795649683731501667482229809618581819008205454724281759089840616791069262268053071453421275588576913173394006568661435326831850398737562318115579184345837223574600790970428060152752005119494507050426864261221912055659046390857478137191893644010513650365977963436565009903253351662241601022306292223273751139176203381559066538267322617926428246581669081012330686925958098658599720943887285580951748709752493372083899751229130030760677306446537133243546145051742240241537687870781555659127555387651750484071353375215436466828554471860801604464821605497264485477288913041902303119986987677985760805160075284233935355593073244105945255134154161540638693089715088155387013020855698796607298588487345648971163857020762458112505512009536575533559176858959498742918432757885412645311694193051199972125365546905542738704682134493048562146381834968310503932903216382560912726225705750643108718398049015370144612610747885224753798581583836219926688878286409805304267208396862238026673674218947319181276725963906658620674914980471059931010383143489670925861068622520779747701148646825515783091589688773784815928762799664657007680871683086809017008245932476242059350059112180030182224911469290380181389941278653332905249785868698139333939429793666270720577236964714823454343050501271077827931833872645462775491948317669366968149249721755898864950683966016616368418219000895291211273927901877642718378002827636950227488065203644361763100140206771146922226698210265582726687666152173904861891386174300505534013955953119564568817944214711917006416153396308744774559301687324226679154899286433360018175825171523910764903887242566540380979445357669405690443857124885325071553274955762868240213943061705685359010837648352373323891923626624417586315648274164059435271909313616542684351442384828915743291255049336531539489345291580849966996283607874859833624852978810598056025617380986649534894585456740964824506611814329253076657781137291148823772831890039575039878272225309963369279534318172699171610277116518604294216482948000638262237630075084666857172862684496060560916001187235283126944950321509251820015443066185360087127210969817499098200263150003160674171028171102340983269802744260083543968613460782817445112200736144164793780121050015059442737940005958782106777915566154208400314908420596666259868671331940579196794050016663262480777416861460049144617839124570291911567393472815613638775727108913487861493292696916627680611984997132568054231264691831828997157372833726117979456827386480207731641599105545008890901595921210855976715073600966444225062287994917631004538440877603774022197222487293755964375864249879214212463663542116260797519355245769875283845389521190127519553573955179560366374384098875691139480116262586129959461387567443021483050552276232777170239314990836180701462056738120359855021635414720112351388059917299723773648395846726906115988372608424753446792096127552846410056092638008638547845898408183042888649011415288572695735020970412428932015848586599998589453192253464427582565320194169783716273956285997499099979320836093985886562660177918282419185964580215207819745152835412443790412161581933345262483190908032368705194494423417948092103862344278220967245820510323140164320163388561873845285666999532957955299299158296371395157958234730828911545753937325678320825839003394040083417606066214914258927308379667651454735743562752284519516900522912297963131962934667854475746085343807730999162196775782464600421205590432312597406970546537344050361658074218454147905515651584448222615944145114163244369146608121711343953876285348236092152633867937308149863946001635454253660871203866184263614387689203990588277009326982076602599169857154850528430312337058581376125794047050210903284566184043160552899082461843778679832785261652344476179805942558019994720233590389513934358663855959165989358378272075831550128096668248138402221750941164846474998949827968589601770968437235736937446880077892323180557992663331381059922596706345047635162277787228177779330556892187691000582653817216798673828207363065977368929408813383256676479428798953418983429398265786498691628317221131280258779856597118748828992053769342092399568381795978252299602125498022633351349073756363760757951013735901821265143371144056012940598436735549627980667277472212594865774520964354030960820509300328545914069839979280719705147172645059819651695356470778131340785384218848452656613324095448990405949803564887081323823963774233974889756234635476533178434212828192180140327584491588008630565697179009459397849280869431210669202362920860981974830595348668959295116264989204438275063094535800283161678211442219054456247430049016004250962655958515309901152245488321461394651629200681879270146137620457490575117578859436123884780836289833050718115504335052022583369996563513715088787372668818327354783712717254482260875567849817343739277900384539988069668101991834170552789556115825471002756544768393470156446635467554422668861595722490215892317288340145947047992969884620482625513581279020553997663621875979850123029572566465459511599883149740236619886894627458343704356466396266844708621083014636668083907205482388825850424649375158691691326595421743488607263257628708172048278364665590857080584771034377714625084377314841148271064646591436768779354835311432122866633692795022988076998724715340025368866341052491334218238178831582666633265429184569903260699622229454573509049794523913611344155725371895130133726576453075627946203497956132249848920872541412905632680803376663247111128635478070906698428153240320764209973253609701117022172595796207374339300338569099873765039853341452766064774817764108984556806718216530953684765142905597068339481227748896836354068936762015773037300597697838047741714618964725062450131269454883311222282270394412661208593585207785861189852897794114691372558984095393453784550725863128565015169210299403683619453303674759605383538348952512065814206688394128750565920452113502081232053205233862570839042166061952330693061221914564453184000313588718130774741989874323577306759115629183643240109570091427804493027796254082653053640677563485507243738165998573106202897288077279561557902531085143547643681695210781482014564166411612961970536016825815428586996694772707975720881446974651365345993656967661717792725470833631169114642065480349365980317587874802862612611258419864917037180247375989406550049244397248279366177487366393530178569746459485850523474767218445804855770706639935257927831934717372137410689702048037791317074335362756295083089240666241276454519488306576554000660564891162178769940818649975473441918303233426047129058961644366251767173470598417227389868680400028791984695928074493448863175815935796732228042278486172490339946490190853163195567350659275918650034951111974906248192368134140703162013548231978342797303458699179938900696934494141419660170337394445314758325041777857308115179131370526808585599538726733171178833789399470660477486581099160349914287722680006315679146140398952457158665423186323346312886216642216930788731042092790024422632682128275710164633085602872855777771516605519418078735625960003462168097813840732274879606219512334929656004308414123154906624647805943203213773916679608556252820634786212547300474621798482364701009779139960850032931126418130877546458242692891471642355232110551178342435172468174407325709221207607233923453093171632629062481551273343954858896918758858725981289247940666565671108457661687343986048880009826353046197216272998328186769611872987899404012961797736957591970061931526479824377775735913200369375355719744945130575028447391763971828392525174632598959556802247869617419412207809985068677432355041640469326424931548136309737664257745314285640886896013702917283382858562880515817429398383084172422105028242983665403266311353421829158321476079466244781751141423801848232618920966884644874155762896090044490957608975137541337297191824474354916104068250974378617384896247179641757663394777146604405863543736953502985320955149272804225273539075420204497753101084236576287159992185900081040237735469090924318417289022361810443261197980010373498932627333676273622288200408208709382997979237502943611543864146033139464875674350277230870361323864158242103732188054965222871769184005127873947277137155962743046010452149368857142137897571488208397465341408015749584609827293135612436091916608942367806665691639905221946849811295558917260345350833437952187954647528739887077157609929660192265222783776520363841570963484990158155725637871074665754378789076780430544272456121165629815083737825210548962101416298895023124082562503395906635185610287577346331952781933133796436171037910029669016356734068621368931108019910924864145987214170080203623202590154798244855259647437716812242554367092828949228748185882108146204375328763497605057775646584320755179049103435638793600166324690230935647743135255011245327450911451234338523819317532386422317424818912863990267505128035339447683519555178613011797026940500577759707014207175685379290742037783307776674831318971403575635389444229083500870985526511285613929530444217016449336278825277167034263039942203330170779662596917911600094876506687426159633495494516673513214840103823281034309034802052328255793682017070219671419525181927814097297734505986514672310454576057566219015432561558203129483269560319808321087881900294903121410384397044045772978880856345515123116906717416133830377520394792387968317945742910558953952899537315389434006012403761982040787097424039156581957593481343886864647908244350165731577996395870875620859439157516353705436972416065209227237365105210247400994814253851180050689576752675406278423982599890024024209843691371700537855881059605576674871173519050440172089758039300452529626454271146982623405904477109779843278753085352344697674697486387574850550853088259162670877985264092103137368285938828095085092967521164497023742739809847310283256205964139874245891563773688824676573280711889944189817666821768242219827252416450988848352698325282983715277965272366026779900424536482740323352580049590719599504002552222491579945472945887581746004340789150496976168201390429592565522630302364659452726731379607936432802326350003409042580657674679622246530327616857373648169260879293094744549620121688761310369320284319396152263591523425612226458785131666206658709561046436090214440175562198296435001033045330742296854281993683495756086200317703775254708362206270118602725698076936331233734341441257428452149154758733905776734883553102942147798057958407425241385256723597638478587183222931682455426812027960534912199605466476157573687365802876617712488838187959543030770968725604895739213152230809180804224793987738266614308731914095276301764766991489609811131815136676350329393905588626786175241286444567551618168004742322290185187140640239242819261867820458855014045449809046346023186814266354695755143685149699694892100322416171347887044463919944027628760351316099969694968131443961355169186343980420727566777975813639023818567860799077175985202242802028674700533092810316077660050152286352346835294972573687005784515589564161494613116496838519195558359257381770611212582961800156345003133266734470097690875256775644824522856909409647312617352546037863558943119065761647666178374870684288721439081966772588268304590997681486738320445269463788273959131435718931013173313807300722915356737511608212703537338397751079205972226813486930508467553581119600673345282649798220309686225539102665784925990392006374252261648466012466234170318240217801454764839459253581031372080628086943295431900453219323316438071086541335650421585562929067032790500535448341432956771423120833690144874979469046140886532314634978981475147248014837235981021269098799428170499622516121951949984864555213988047616772356698482326096145849331010974820310029245226210185286784438132356670192435272213341818311781138969256422652744956865724089680412818291511568114856195058816640801869679371094925772824171769802438420387592263172019714346455023629306905685816918552978632649628436949259023605929610804907797408993021984497957379182466988932831317837719162384192138989076022891247672150774855909059033007239586387541775313878423382967803499286222536452559403418232638690300079025924826828277101700212926895846262161493057611113238908857696064177229918994722007434999582385179092190499910658627997431412936703206926368470424075121432326655952251295116924621046534485753088521313447505228958464881027174548155367086499202817648697732415993682541875514871759892175616589689874450254213782034377909455922771411591534781994186368483875812446496629185261630647502224966333616688895495822219190408714448409851222898420531223913202526902967233847075083135912373436669151303084202282085825862013903627809991933360650228924744684209954529512879149053610683089864829178995801179267004991246375471291250007835891545936950345596731811503460073817099240990573382659387824482898673212503900763963170268572279353240235363681847785827029492906282504585202461877921074863812612274481122915815664558307408468876827501045536055269371090287191855588966391832912730890664810132552506558742741687176200039002289680385531206808774565886783865766745911075886813775709553218158976922033714503935153764414117890148831493087443109726520714538888698943535868830150544298448500025278841767495567534079547180997406730428596339005493651523900424386309361989750636780806362356659144613472482155373506234678008406596945970884191060981082271087397850249904016259458289500020393973866868209367331879248399677168495455006144703062866501119437989342693436643707487605949405453559514132073398545563243252289179279394328752754309711010648282979908461559237740261488374628766419427313105123436245681306481983203493103343461715157334851249197740278798533794370407175127004314523825853926452417421038455837312251102813732582426463373317135767522275984745467952365905861998616173765873287149277966592861942637111140410628670066769555965337927029215718036663304055042647108071625897946985727128002910516883220501065592269906155328131413934158061647971052284557114957613906325115102949107693399034143957563120108966165519810328499835388792605878588686802970778246384570849836966788445716993710974875776676272388636432748971166489968758492642278745203523543164267765518534638136928275339728714425824939185839749254283842538884733608122231776541558918193173320682513578587691934957680522567492521919219342102191417294516571642218870918456211433603940322895573529993363250412685024427173610093814441576349099221936811271753695802432353778173134586709043491594133779791862993946001500327629447274292713656974527876559689425776294057482074822793274115173535658960594214871160413254939783086371154389030813429545173762845631729133830131263734176400067271418933011306313244887838772377630956294660490529075264797488033068007740355443587221836163601366220327277147628367262799324545225778560088590440394696732826307162893454221580643289619729384874599328462006058770168172230870064710183476189721063994219661711826490082635042261606208577134996559774439179435036415877279361627836931281996392947451912592436179670957991314259597860986628453128981135569852814454503215175098215147642960138409866005280412171463991618923499964653948565932424235935895071570111368048510096935355586677348076952044523005362798833773875608689662789584528546701086833001738743304720361649379881493910976651606252632706893646113001128171234959404476770846971482775533783264127499498010925803215697515553444931581219906789465795421007085541631247797822645623991240850164041194572693852549678090334699274370994098002375071005426717059483406269126317726302220230552617739931167006296966716898208662435240323411907335887690939528992479217271213057780990880692110659869003268746059146830873796169251360051881415158189593220843058918966659531184704857219699817240145850259240085279619646701998555197444103194580303806862017451479813540719603266017173217823269003733860408826282380379037077690566060715311319610777126490439456047491581608701745305386447737360172437281125475454422857542206488425039353919703608306410217935047837912534849751024689901077598039114492643891101835029972729752035605115227092085524678078812299222795138042291830691700883144134464946461149438497684231799115433212493664363809585818679420635052186540375708836469708978299613107004816296210969282031419142884241900012958773180990702622044331776006289819707145399190090940825313868584733525285345555819109090257758140481489351195228269031080378516432948477991752575146801199535641092747722020407841707141329902422109067236871868138086619993209820940435688615849815500778905997668611009007095000556931281615956321991487653172451381645136087005086473289658126337415784521185068340289012606135795416523300449598587708663800563848555757976000081979846847954848285745535657094766120725608133661035834530079728680024084939678119314241440912013327762623707054356992390099045839907369584838653465308444127171725775809588928181242789808320477149470800594360557161221244975440691930966776263617681102390392703253260430640838670154698011747638231134365228067517711749441372276344357614075909797169568540812488694999921086932736324942626219035195747885417824140152991648433717923116840933333016657759463721274244191448966566394633980016217216362982747988112837325288655434516688611586698146338286222740959877055085331933235834831910451946467563952879565855400500302495456423191140160275176938157008441565855890909090180519605104075164798173659551663889384307460612603612214590531805154181025270767469212391168937572506497552198820797308418225437397627039328737377623152387052562723537736219733642414438599478331594381697100342347196268482203029046616903143125849013087306124753204650801643058440488073332869888586066044989244119921449830013095831411774195356433910584200024887508279308826250374920800635742063096779935158161370906378858585810592487693637112140375338504460504081946360970217978970954958931038426099064450893305286810740937056163515337051985670700270877692153753353285413761353626201293584499636850890128542790705131794599739091752625468390640071356596720511474520656309883024636836203406492741056713512234542609560913978531096537733001583548810373034992921306358507976413193056190104813324700861951889351306989809458543424074363693471911844849901216679072379505750810103239245071622433008874563652539046195123877964663208466640806672344856074636616577444689713461494569706665601241278691189416158658688954677779285569113126439292581507778640549976433504455097811663100323835423801431213659038743724557387247688014461153489535488447903947512826623943724795080175175767019285844799696236017029523978061932575864604021560681006796989053724813304707505865714872597158243491621385647675515607543870219198442158288572944683581791224924579338090123359475002693962111809092146545464113439962719968097899277173282221262328212193228928459085830690771371976014680458482823211451667758230305568235149058889018775974203739897370769349495559315048337038041392576075751207446773860902999057291121812223026407939379946615988402806676906609695999851922223726974988335492009455708364634125271358171556781622381908755358015302978797496129315479146442815524387095025961546148985145309963918942717851122609056980887213405021938036799588300035790731917196798667215552853186745172035971530718545438665886558932198584223868585162190212157915805148582145623458071725356423465069565597487300690750363866359797147807618106409253404887838946324999276139163173319319340552643317341249033480998035651577745335538541494988848642138748732626878895202284467955272207984332874512435405092643879577091862454950130098386965898795985498802660781802745038294535465693589802227407346388803181218696951013210206113406454273269624772822455601319946906350077245788739642350120897955832057957641259895764380334550623501217194908784311650774645751709962414919640067469003986576970623565060471472309017943371214268435089843044415883594950886795640956808207592948838243891573103470686547683409068895231021215116782442397438034275588789614574255954385093965650966400039956538155036218187378757784521852911770494078525452949452263817173973202427767696460263392645079687856319894989653857785179985587195471612126478656394715756184835070157033332757309011091401459051417593551415274104748856042585632936439087086453989964356356367014589052960533923537791165038763484586291123588804544702731560918999813454196939241856885368003930644857863533299837804048184735784271801350761619454729891775816329504065977396979888406762301432499736764461593150925880308016279013296491692453455027102451707914916608579426596208208491790227755174976920782430144733176794233392565118365530222871976367692288370902969331833553702352384496171108485070244953591984094883668286906692238553244529352669771435614733272050631187567335853319230623909196643427825472843440494958340620258027837288065561111253408717132299751801365599947015086824431500835307721992443569038837940711996590330132040283893302594321935400345141784890727586676929312398250009336450977295042259989602949301099783201497602740970209839712024556728185226454865755595542584729112278074914226130986401289917473607063444074296623197050866687847584908514055068525183389415793722726552913509497178668009420915546129649340665706693113865127083144810295845044940854691375849430839152142189392238354696167786341577608990940300679015490286155454835081059022204817596945054570577379565162259893518629476757785952824042580146836726315912391514207629289778259587997374441403409767603860677569811483958903152242587339066957235534609376106904604306693319974498706563904984285377841138338649119084790423409162745506434336444839068455417083475120730537440122518052151871456272253214358799342795565913466472642680462987387783112724719839255624948292154058735067535656503511756959095066155262339075902764528002982368075320712767174192987102160869247838390316710331894560517286750712556194132337818998214131014368522658018829275659219222260600381118722129584456836518812571353033589224555950629601246565853708886021424648550310862497979709885053727095300079723678489255640302122845122316860620520144679087332323718716945198665725205756546186572838264843993272420254246192500284460163597422611584811787969842785368976434740114526434928331868571212327157601525985165354544205860173786616041274517525658163969548669365366514975947912798592417736412007989677682608718350063731307857396680027410752350212792267680077911178599883021851142924611367127097617502378164724899099479297863055417812915865810064732467865884851214035056803034595536068345689602489562329596623418087520299089924875799060312864029607085888408553927439766221301806093236276566422818341733904838990735465745418622135062271871675913442762717174746751646057704013011136847363537617891275488889038993965094048971507305766197128081078816293691556010463693355155603544595033703491949567693550111478099535283507852314181401369291757556283863031692642666836201449682547474400050999438970448835826393360269939982313941952748963328334376735894076082684528721972820626102522541977935547859830703417516557483642111867406547215617493292743484177581717241744991662179248238125168222928825600119090774393098985359778626567052099257243757165428628489927683014736850462014810101533099254316993618080200642157651948036271477193173409431621768064608663105007539310522589587075855219225384747098934623986117923403877770415077473444067576663799916138965234800422057842445219376205373222638839569236004775123124663060959745855426857231528232801272727731270685012867179960385801556081965555368039633417680384313480091324868216717747036798921668210594638464562469152744503587993934801081861735211192506292908541265858376661094211931205470244347872262111108732396004021227533021317499230846832097776447498671173232246467909358494837211706342269455607931336711405187269186050358545241304545507447005291512631508334230041844484042257906817901313420042663161915136594804365939292371524357050406719532950416525138229231459055343192989283994077644971902114112525515269330449589618583635229646191419883305129104803530048291618264175659522645508621872928346392751648061078782278006253839409081674080206475261197492526447083941903994142850416431862198624022103806987528384388663114843751916734229387668150201685956488547520800562407033271005328547377470827218248938938612404483344613006382448178056723989183713309631047661331741062458170238271866906459410620257878058583937497648043308251491533467175518927226433535647294724858797820294737528546655080650010501467838647991952497766696476547117185052259796346334345332768135010628616309390934182844628615902556807354547606872531671756232994625674633884951827213441616575826219596451956734747564794330423348710721318662329251000517445142015516105176678424683617331502336678908366132592002707911650347500056099318367796915540580440600469270059266463932635486175607515183065618646446240943481583428448675997926626926146769779053288841724108531022791510737275642404506453045122498701508866663080452764479851453039260213648559559040028920291526969106614554806961555744737241575672076190788891143345966931197231469412355223806302694604747657791101911262581956031047091597729526623865203680539438687536220516243938692451430604931627812523769636813576273637106943331275739019834376481231970721005111861363483753774222806613523626665839899362221949867045493729411281551101210694472461120944021641581886554739919041005940525977273670800906155119085102230040285357970874745723793585289605583971240976080210493470007521699164565434196530156418161656573460533814722340437882772513076844286489217623092480931716371049029459747144665939048092243356390266033316983187143847506397972162484567953370492411075137584854166335522999635523158179098877409851207082139912165962025844826536073037036517909195011747567012974725132508670352717085154700533425562138191993845564184348728970154959023673896642231609768015834462216405698994661454452070310246590918035809518974232549702779668227936592339558456914015994177353160791624384404974779106335494753684224620545121764175085741406650783693595800239844145366083676692660702611746247381728374558573963120423056541425109314511445269825731358682380530955966181881986359534621412328593707150212196324210660769512255417869922791929544080323744933079003984194795128663952503104971646271439428194265593612429017530402089165748562898854963360358657573483365950663706547863310990258652301440390265053059633650361283691228229319789247267728486454204585696901118930697363469880829082888812692294497170304836390006888548652046426830937133576486594906049977846690802146381487374139055669279178160041776799734973997594962938996193797859197315242519953843569841779939371292504862058523208178831736805596866408621513789874961471799870457538983647935966391576525253580724890628205550882737670834933508689819236739754302369711424624131012024880462331917147238237802620448437146377681614935978172246763228362431590728156574486777692492890397756555425869491278751823734493671150972035099532597500872586400595703936736778915231515048273063098983887761603364425670658011631678762098698253493021488859638168918399632683582325585492056710306704666451580181169233529077420768955491981191479765620389413368111151674093075547075201583533016207105507523527323587235878733046834634887810734757402287356895992750493702576777821494684028418224765104249377157145503752212065095842828108820565414943648338634591030472036521317654494626281779674807766954091927954912212499403900715164129781407207799930842791081793756671356026677937774071215408596158200243054493735122082894066483241546973937853315968408532110875853649659335793704895182424921375257681330393776007903438197501321620077320294699983634519002522901259531568768067772445322470143977625665843571781910127573730053508142687406683773224311112955598388683264998140840290449476423602713417216644669119196931275173058480601670203875632869802212904034082968283526762805703611469185731934219275274999336674911016576168679024607300691365110405325292434585691038556456369602814446581631606036178398906598123602648713981432285634054996771314797408785171391226350867221174338223732890855463273841788015365507026767274919178948441924891243689353615201064404867592769762878902465383675306661226147457516843891541133413541368673439383751095137753649691371405724297710791883504789913868705988419294098870538000262170148764644700870973222547605252802773200029351506488474901803677509750943423483041557760258646112481287366116373535242883124110474120565794478716755633467297759956854713299070605072623314626406216863582927471140805220064225712637951417909912221398601153896420115469191565909187457981191020567351319788290574054545826221415851249824271732746810024045653083289901375650905095180257217631382331126769273378951387487075545274569089607097589197730080869939515959030007590525035877970587856405928000247222694788193625106654730098991812607942280707704158512793217939650623790614697211923753872696367726316747511196024877503586796371041540892352085344441234348377590463273274590889807720706792880625576970155446229473774901619900053686424410629674687040232585091382343727511850529783546424772214938857119111654417766136597273194642761716400777377797724467904579457596078643398864761990245353444224480024189246754754622751818833798015051001235680714382159925344851294986093327844194186609440508795574809081411195070398607098223307166406403525205992767045598388583696584723085013332178644481197385423568982356751908160876235896752305810467588152348473063704202341479453888626741519589027651104734709327740442176408039695574346462735386194867707244958133804651162305138302594337566807182982301226149065874232901209222840464637022269664161482469025015530973939719738443748379490777215388346632456009754966505810427616822695575679581939319597144895267134635743287352254549097361042711303938920457643966009531634371062890708915370277303616010394136792553950010845465743829233892891378991093283230742914207073240518864586262326797173479250651776587065257265688115939192926930855030412958047334887662331938144321342000727611575820688950736487562739247082015478931574346449698512684765234127989642448311585612211289722966945393398380432860873542652017949874355661834118045917548572382905745915444876886615216999029826950508913224573432280060761368743882240307554759305791605196614324143921610206385587878381784713112269387227702769361411798151184512647036989351255293712814849742060567631169246199433987309093636234597403033405929534508330674641107513090604820938471836470536956996220253565762514924130788823618009769995913497681555411884060343539420225816515987440478293205438340992805645029256776877802884785704312773416807123767490879770139820048950011720248625027961345203420648550008323839992703557826605467474519983968082446999774421092373114117715442512428040184284625901475954073007104140639321317967503528024351921416676469570813967962193517493087716289437066195675296059856252067150452175006500503411605090914871051196291634207553554203715261449716486640082850287449139220246107754324427091632037300803092431382286757575703449795380549591737604034577289731526010637268142792162526837969738453429995963739541113467833451265046343077377217191368010273080405459024387278041063825138496546632627986219444290681960641580661235254827650343663738178396229646001718049528289945554784814311888683501278574334022019016306182741187921944407652306267135184825717948748061090900828012211983808312837629803460278537945346356763570389113019505865617732669268485196526039695735780415865199436075311155816594678989334480453057713203500931341886139505378773332020990166767871265671178929003513342901084380196652580562983392328704058089232958558632771620788816367331987728174800182179783094204739520190370730049319328005615766657484553318857256051538211804770674548560346910402546523368873067517014227432344818891043007680604339655565711207828988740646289503894998952027876482051743160614641545143880832828758436643171179194980638111062309914156835056739006416645134017311558668391263233064669213157075516405884076749627733148331845244754532313492407845178768072533747752713890160880918229189974687868643457867163332841460568510117334572322346539996504997348006848943272113482530042095023664778533782761326957489246569779880202365189756224504237934080477628567993922880798448441566398083186601873483955561042675654468042359740974414689786177023331393553294102780379694921119752362240667106048424567571161501286644318136654804422982491953827166666224991911024925816015970393543450314904306019589326102660937476093970849053567084111717832514289394411592281555754948682067114987882938879087679825250079048473856994224978894078971478852220117388361793703024385607536892905304677401571409949328330505491942244960013794377590192046846669214514887070414704116800313695756491157275961885463304244887815388688810070110987317178613354624050289730534044696917486640941527116751485001640871424513066143048516320356552041980021701012546295911953698983849600316605457499380654448639922507639561102917321753799521673914054313877359068569895403400990329206978859695910249261041180828458198473432828776618772461207046615055593786809753760400460344227397036363629766141556721955683873473922537133514473747755112318035213682982008970400065801624564127652386430932268206731394277283817824468619401363556823802602539034716988595535083427822257688635725747369391761789773972346250663719557634583344303021787870466713246007684443160412558148913329189026364745044526314207338955915094470593784857596428625884614669556416260384602104537383373237401934175446666754517239399779800764418140654643166336810198248275268186212320141766611852299068307142361064096230993133805794164776293988220985946901515297587947000666676674586132297152653415787639475334935035573368913531085983073122059628555362000246212687718131719094952995077039872529528366766095818840531927832447679554785896352258791264357812099264541248117313114199581669591277417378966861696307559339526359307821601221513296386050127929690225506291490398411108545426508796565898930756758973116038373711000448243014483596380471118099912997739608939104386161660031664181868458583771215728313965882603364001866355227109134716316519164376327919052238599417814715764135483705591867218579797620553542730310393196630984166474640514359573822393223697162299832144943421816472402172024566362817093499236352752818381430993344710751055746989261031614402761430709806420299479856213833773064514471412456261053354529359886410959889706495098128400129677066573895251661751101809665321083658216145080286656086157424791960814973864478544148115848958836325402897862471613643387442809382997711826542440527667126458645967690802521019097010158105187537467551873325611270619804167058851962141104563677126864058629833509452283124957368306128720544343525978076547601420054137921881487381410005137964356729936055762121842101521592817060209706642661101898920380987827290564387674458738028003276354069754075851155555216000263783876292729520800147535820181452869591780504010110482485702892448998767959678795823110266563087366148510844820362765547194096000758293561281936598352264634893967108510744704276388243068620576916769557215074282618897783451807225054679965131146899613353606368701686903033084275419013132542841739714879512740318822842365084371292263583277510360831602771790614743893299257324786028825839818159721672541041296620361259931011064347379413495544085095137336423107203123236339726331910435036183087367424652987579253695092761716812062586415784406060099374598730517879926968450235692240330221132931192037798684846591882854013688919886246058381126981387349324918761400026144123128554831797962214668805229401699780676020914444451982335971979185384143498736885241028732485067743258818385531686894467832041641808956072510596645678483559738635397068610824962063305964485558995537458888263208889865462464845527217294402561248575689037330669959215911439352141597296069781741893239908963622291060815413012913474393484967942871159277591598646374356801228706265098601113458240160781655312453776186826112954337068667804326983926282709876348624614715421452286148474079496074166940998781081018964260689934721625519056442190607758980323651151486941571392036978937672963622226007106785119425463397721481271921013075358848983137469251057709130937578185005624160397322479814431015077617361237280226373111787454646408095830881276615477470705846972803971386448685132206523059563569365296790912019647187523471355091566530075324644466523074252455003179287618842060212358302261310289404295801655776525674811473951144097078399197621365714004755256478781707592216568782109843173452042768230166235906121973726882516231104494972797013777497335889522911444912602114707260564218718733225723466737925266258124942654384858465138064467415657206777711951237910775741669817327715988317122300661537036002520427874635976440277225728333339164228898827191094220538701070304250063472330893110334121108275501585062104825546005781014713436851918913282414241292604466624982444432729111987860848374904369293107953157505931210691802455329724394500866894745245237224269610781233470116010228423867724845146133765631714622015081174081060049395080427283345484289661349867218298396339307809567392078467589960327461003229396922298383052610071823966334488737118281029001292401929690180531586245652787485156349477271557553964411342308561450022566797397456194828393138315463029010089289494913406090602198124227690510045674882994810295380603843874770743647701596600515781099150754869676351927040995862168222185359355549608910527923696346830276793118156507790355720231648255021867573909873366040767796468314005454585186824475610809834638820926898248561155407196707509177571662384448130248532745076132473827672404098805793295020618078663184371701269415587431150285339958713901885976969238149038856610574018039241730116126258639875455302499021389945126365398035457107535893420477823739791972598053550003365668921892753056606403638033567411202640397842864110159056127983728022906519465980104571787319662922500927051468420244823142738803207449556508616136143279508988824426596488127239001549651158711311240110844314806571066050195474395468151234994548391338478425607298638585303524523203403033657131857984659094238295870634334673673821937450018656196566815866263533216244070674412887702961826375592626535035700451506336510060154610065543706798807109967451310023625569067059515465100042964223399167042458699695484811068204586648604566599472321714914636623497945850422875326363888199398409493319832196668439782582893278216247775805094401280268911198758981575897023646824145989012000552438869771218483550556660820688056687097146146094781919967686763167532779410993546850297948948745169543643770102985970020477255720244660664867230510664383646876047876132942662086228920340982224852644079656754357519526890362824402070130025027531335611583470860875145418479324663842829006285061656095854018285467655051935823130846529185738630623951942257366756033631546200028581165823475664998816997115716330853141129909713237322451770664838492887732044847963564000585615516057893958459405137060122744333221730964923083111138487102765499496723327970478417207115241898734515188125147907858480526792287675066939310333921811442171709682540683462359985195000444776555744943158655018107787265356064103655250414336226597038642353943856962925738273841718307224147235733510887541182355191106006068964973235729235912702985191600108898027414088904560313637122205630646854509591696943002427388496741145598119429441308332725920810531183674949367872583467892081825378716747769268984592133461176813150544318539119934280503958200082712236381944895938683203387491173343344188092797037940229386512302722670484077331484292363140393356968626085016874601387242043261520847543717184479520575190208973390955168469024437722274362637820198870252139640428169264620967238796527403314589773636353043307161258363346240777120593430180857966896612637625921693027894817036801933442658045975398023766986370260503732428186364376470577696058883181089056252872384945347347543503624243341189163607404324871360909555494800468461422450510719180637703417629703780725776499775966292084054616196956254724589158511413794342638946073119806096050393193059565723798476533680472749430283466226167963382437973129016428919016059698757638195890113951821871060129691874714529664943083937932331801284117582667728869596023206080222335405041790388508973867843998681455478479214550707687632266691739241040733499180072127044441743689007642510897359752189360130722755242134642995846715410156023720584607490729890572470497203921273781602430843709906084220959856291700233956597300750635577723589501441162479952983643848078405487750348432932662107856789480244112630612695245183184480379983086783500273195110768112848402111471730573941137330993825152947642507308907296635604648486322424388264143053126461281655542576344509316196595516379049449232870461701345298825172384628693363465933408677505167459181918135390381897088011481002910507684935948464498507123152417421676568025485860609072460007630120977742265002282636607524626974610456080884213596393870940733185720324728700839052492203223075398464917672219861712054804242558003936606696961214940131080249045700929159925955866326989124023292356850809368853299126859269685779824609284925142316143667117690431347649741454246833920214216034393869697073338116621337779666681511215818415917948187897093763032801784960082798948352900843276081231034807475948213440170130188537887204341879808513338606190559607422817930983248921416009416268742899521954761385365557437269455993714315138205230272113351527624917784625091462962806153118171779933251419033037374338960480703882855877308890891888630744532978739702821172377147790317101057248130278006569125960011411755922167619428131426181310618780585774433010047499206040443405134675155018837059929994251175310704348861198227334027601707664157372816254557283222196808283256461607002896161786410370937040968800995263064221287417275425998751821521849159584263792015048801354638512718103341618280713239630476929932796028646801473443506925129902525974858060348760596829365797182343850606822586862863121437981763133168760867710161313437998004529901399715354598333924462332783931782565598406173364956096888203556845126921330838917477256280322566966861225120843131857193396067598127786610350369981633763227275974212825122384757178923526647351767629635547952255075312356739018435680742168405253755173055264911384220107089963490449590881397382495191308443370262931653138232950959245506959339789113532081461017067841639035909911132469150726978637450077131584169471634815571246336754570166470407473992651036618707632926191755377526105303155585790283912875114859947239453778976489395665650350181063262902748914450924028314484936885539769965736788669619060794232007435042776181230163309977636023886953653420614478380550296582826192199487727530857061552987878682594147900458898836502704314175444163390878558332270511901709629063137069727269556770169669656721009075310952725009028356893907178074440875923259308172750721427596878239882056097355117694317698830882997191290983498142353092093445309978848397365090152213098906515549315545272759758747404688229904138739439691819011486466815490589411829763211939663407536282246423349305870250227834893739158943071199731110922189647899652918959936171216260407366246095946970411276202586814107995557057514911106357171350465773999500577403337126636448150836987046021085628386362523604782351097709850781506371589369166655264629456781993009676217664538550045644485034503953202730501448084574722434890838388747940641067884277124469935150825705642445980924070299676366592774479102135677393107703482594591063982433027256338138455404124065885230202938240424652830307911777187784283993375032398048016734801483521665795875913331986156497913252909508881684270520784496547304880504541085899757970032662475462978797966443756205112500800587873468730616575902271657091190894446564495995941061670992637409763791078942869542460971686880374215749694874342972131344032261141348141027703700745557585743143773916609439141792101589841106948102270272911598757120085010222238293498120831197519517879508920455118052868324370548858879250793363067323899087416454845887944686049489970877911057990725363410590820998133327323813195021834446702226508163378756443205259644499717378919057233941937357074533019667012000472271645815223751644870481325914170878373548110995406822951918519833972289009102517324157767183288047560421772876868158715211277096152796684742636278212919341094800181590532817049184576748133624749497410158618798130111855410028176834134077420559998321808578437739125052994469156603133180070521279205247049750431902975825375259958666042012911730077003655350958517424176349466218709855043812783350227483057556286109564530910532806228039272304397657699632076525452237137929990989091318008855545310252544721965308867520027649242340101467250014634037540468657175676401365075576462970793395090038470545805566587180347546697718626463165191044546238319226075259475785201534577836505678741353343938790593415838820828428736231835413501009242767686926807704291353306143796511935280978812616062648606131156060547904746733623486846390193289514869978622624754843287839783198431084136088139358428989248732219962986627984338902931035800577718288474852553612996635206666558046364572635531135362980818289152886015376639741486452510225780839545794792993486674734015564688536455333771448313811806962893896524629574292342945997844679955973006957276713273600091463940395855831029265735038234310867036219466664089456486053889815571712599008769671555141731787038157096271069985803853290260095909639281040602888102040142330176697058718432028345396120463889454713354364175300975115201129317870347262659930876237753151173618604262911460662384384737831254870329621303324676721123041268359040400847004496885370381219323410924732682274004308913695181702570122297866081920676183381617552636984582166209672054517060422475623706781841801251329728700008515092034558225030264491710539174141910720496980037203111464177333390348131766938474831933837441394784756867333827531741301229298727476269879764280815455980206560412584875843913058876363859938454843577893856953792631305448836290301220658478105094466251387559774905886963711522588645224016142955522006368806546519533445906083642339000077379005548742339286323349263979858314090748595563190060510427851948429438745059977491362168052977211820397129077834533480316329854646487307278546906346942526267983286380502397227628053182978263185256055332187931691880958350823137429972436227648481581865106455612821466339238472857008877648953255003820153974982477845612770960487659745816707253555317626845869832787936996717223588520698815604083306656164778136232591880251250657140332340826909624126556365314286093694782411605425455971649116269099109472086046069616900220096260661176163740533084573375293344517080460769609385601826009364905379395313311467260389179608722712777661833899507547808824644113771685749503606344834871101433496705769253679420100443150536011844897812669421982012235803680756462490777400634373710827507877796287362733269547740753170833914266924501059860758768285487648857033051114997434247698411616053861102858358660035174278474381733809590724858711583117410085972474098290286436589914811521367244714317293716567923989951499758820636128559007491271185607031525570085754637487635240057983517339008350019054778178852943740061327280619394637128944522968900984172771369213888931368020625963535454898423564893671168971570657778186877764134550560828474716500177004750767045217021269698015044434578160598765530764021291032581033968461037535838421571310769160544584881446007038238211294109484708728806518280661446455970698990918648937352515703566008784227488283601134655968899599698819095056686697925477584883586309662053393492738196578505040308254096793868502061484056141821384853456864897801013041028522664374579310474538521576188547714232476412153778611560877218228235305884877946912760862640175826587833825607121397924152627669191785599655808574794834531979736004836938034267244305975773863560211637297203978887247536778535566109728276170165642174943418197598433458431841821083451439013936002973173711544813552342127373164317824130912790837385351680845373320711133165132498521434445013613242140823756480053493237111228864984763796904439723645079628092717467695479801903460396542443949104286129373533405506011654722912822278171000161279578043494378324082259895710922910650668831961492622446250868260881316989916725269805230041186494443042244934232957253403362384199972948348464176621978104136267751508381822453996187856552923724502659749725952587202955579191567179476038184550613298836943807536919090216480464191073696443604682563440017910242049656499850460872120423620226766798375122663153336369561962235710583582546313584681036048553992103818567455926426628380606122706803805073430602241579995392464754602633539257386353686389837667781429322941328332694717128044826504797635737451917424326411925148154353406558264319569534717200057367002716122019838626238944104288968700693827506704596448813604169861756652028540734288674394937934087520045234972939749067501697115514517341815011333830704576430294984230303404346064173734605072183087579438193288741932401280291575265106077566460454223667291938000851811799319319839383207013818734482313331063538788320173881725227652654148845858195045488938150771033860856371996607157904535070467021397664882661197889447466982437065390905763668617330150848420551892513064441777397742189815730974438208752041017555620686438448371999450369243295437258343910967383094641754298059835995793464729870629253428717157701714204385688926828455308475245201137868644524681917917325147198131683539772287925806871731089047582320568635187633355311180772023979149968376334240497485262350619044387830989034341130169817148906797325516564155565709037517431603831904380157910861537628251443986434625320507917531775029417769550898056557998059208648025842817476900257233494566307423499026741097315023301780837997764758639409262174993971920631210634742134254711824168427428629391123182174393216968617102113075710320251894432710162383949339205884982081718996032604248907873377195105252982368861267289289640940598700309365466629240142573068082799035184372035158166986792177230099778618262435401039628981882163387403351013888694555185771208561349176880605794639133898536644931795132555714702191921148940078006075424999366270597982770346350689701106965559313808328985257043983366611983149153726156441679772173783024709190243348678521548266535533379452424800545598943726192903910082148185041237987181205848117382925341966631969342796526274663783879536437213628576777349384915827260801944786881991601680018608306694965846836152153802276602582428375344913672088932638230042644170961281650844823876037925724713463350171037553339665474598463735843982094577245515525048466719852607153976359205862985134314895548597759009839093273316208078310674972285392180154140443224064076532720832677821964428476559019355834764357533614989187778227871597598706298008221301594722813053394151357476559480494577271094682191382629224999241702946394399821467196814081987615877667778409199557079268818054515048504120978981268393843035411122520327421149038392287164895788852375947408748324785999239389626223861485769443600853144237254281328450108702940112321034869258032205949484598390133427417907896495191096752549200633739338550729926133371813473358702811396070949053699709114607148556039833586606855930965588553534599665570588504341973513822119765193671989610096399105195817265967908968482272226321187568157081406363721145840540673384218854595443626464310718839876919289627387585992075390862076308516184828783055796673174210222741995551840511907969856392459850196390626910507087903155463214652952666454591524863189008421135646093755133377286103172138557246704184270450418332731837334374798930129393113145470543437448664529182885501314475790099178470840356590150408019016452702741127531305898955514489199523183699212683058991599231970354043974130811430842417044465780241419970689688578065063783543935663806987375587725127615522357796715451483419275633287425991758536274204464758619322534226437051008303639874933554350101731228338981381344567214911625516186033418065847892594803149139585139314318138278888121152175338443532241141886997420828963888116249980475075449938254013735783581461540953328834556938429026199948346612931541776543518519235545944725742119639117526138429312615670592519926289361784373933768581142715494901818804663497199541815195644123108970949770748285234341716798606942773548515619650398752460436344211970788990994240223456827502248135403522053040186307330138780539710550874290902015967299468530518408301782877138585332242426508368681566289579025397575258414347970978575007246506663926906633671166685907889631330808592249843744338602680076376068364707603090164103678456040167736749364285067433592875701475588309187083307977064505582147355727452643505006219544206234890614460347533082211647640740283797760351799040929063838928799127958478869329516606977085843758767480285372638499153671538342204812995634963200161509429758328991434641313002682853717634696744805293540479308972630516426437300764707915761324925539901864756069466433694600947783029133566223597779272627932506514953629398869609936961352914997443042748866712750957935869032021153860133125834304577603956122795389212898695868394649577179968632671366924365435665341747350427800240226363114666296315658096384980321511324684361007290215504055879600598792617037044516615240505452079306806702794014226468582715727601113639986176910682762235542373777236969140878995565305043092733189090405629415554115099865909131786266769292901317316549438992754744206064863818114252652192471608753247215455105287762068216611624774101973482602609060466817929351495550917722835967451905104735556843051787942640312637477525320229963790240393203660496390388109803417467406334340835859504845201166910313531142087095778886096028204684137616780598324933658760927227751052378789278427812936485831581989634681585482412584596661275257566090464736086023527805116110548030822701764607782686782968988082931118989855001912099217803692150728660274338941990925681003825775375729519380681135204613181418766484255592849575266196945560804134484312701688723296146445825262674008889569984589626074090948974631513986683899875502774589270834237739400736672634487877947604828451623551441419170478663972967204583334226477022086152202034962703728255484277873389076157100407142863292903619452752045780230154246206165104482908232749122907016291021506909015716489460030200808396461646176723370272334953929798352782247491069676452864981152707215496681012980792039241354483089285963273887254936444522222019475111738174835804647290925085772938150525141522640036802651431747300618781132677642206485377186300348608842080698196675175446911563547916394741287273684047689351259361079952190983324072632001101711190107694855354228823521414182882848852797099843690456828003921675568777755388691040293486510635193511133595642513393485872479610223789032292334289353786374116967123109475130162988108856309110137132570777037252162754392994127224348460441688425448069089759666085451600201089784940861707305598771758555931169962566541525961378928570890671684417394856563935670228717377517919278180076674937922935758524035147513708886406453029401539110381262587831798223374878460270707906482440178781681266183589351477718799416152178486095696831798676697517090155596345884084420979649352897858379081030551583997122733089867750505315093910173384159513629710494428504159986858416277697018026063704604536857121623496816608836833695100566981745439638731017069179133696766557550447013673578488634560822234327084147478822359439824325137979784839467594607739349379935016428619326855022473008490099072822777961224559074925899412339054220521398433970982262382147918116677045260814277218781120575132102505673993135293368111792227583653421240655248588974973354008092346313758141005245022325257643439854843461574374416660396749292207904183280484286893591111775349846589834425938196360152250947119702273765629391189652674515180030796637861163086673335303364501033791954154719658198267723545211483326512352202670099258366812373150536833456187782906904733788545653968205687989626407379080443100445580328334091438175854505263704172806651888776231685044982405491296551249178848590880705513636261614083256554497034595516108383265541409496350725367098847052629582203171721066999072942599607669428503915106374925973394635746371515647076142238524612152420194773802923074440975722309856154987348661224580814757067881550972537301846382807481501818781047544853795872738788624558393842632468273946498471140795910126959190231379171792333481509848424570142208094365625887427607611873986922832707512810305949377752600442898742890794896183259334969714975060825996734460796396936694815094233376262985837687815293478484962674292297377949387171641299856568615478853959620278344478974375069299794014726765249147424482246252917018345691297207711959156681505255653137935910275196442087128365785946421070461639338151352630752832985161363768101660445293380703027211080756899475777061920865994051060026166269390520850340711460654572400126254269270569144155973338057439906040923368228536044649791062705406304632093656049937689567982652255046379462614010612275549851151632700087604027597591297331396154032673142219418630417272352791974284043643078876293493371517203601691732549994209612924985571424302050319746365781331875142282598058147199257958624495510611013303691108490806367135805483115287448356914606329883636310697705557124557832867256703461100367346815165586144651976510050969987459631365668380540759871692879387192934198118819949238840012418322202789731941016802710196576085494554561051941577610760747277898257893267359835875031410054656175337022915864567454753521645507186215685571084994025902461866050077844561618364267625364138193274167449325624363665512853032941045743730530657529145069642870468629958078511800580963243446189534619700009189448847782759597175652374124804626603964833938130887801986045288217046242854301163275426767662034149250419875705214429856113908096922257583770545973659248485441112833134251746633953537523816465815392948409611028327767021681329966560288991849344567112628923638919317490530335737543404158815562018270730669921042421044707297346847678671599950170748427606635606169099478301793808237176727477959486285936178671828477187417104425927814680881524297877008840517631821400001998734609049920276556512584067601667235490866197956201043717900540340276143664852921075268614594559512003025803901470199427679376919624514775723368196428023282045791805040391955541935919372740159276652493269011993420835776124770767772887500403204934023678696980495704662482443642007749041361772027245462472784883111122830170597748666029019230102493034737057405533353739574533520624013238429024642872812268657221246086620904364387692927466049734171001691647863589985687570178386423234659038346338403948677277934963406449156736257866312437296893631366395318027211426947763553392198321129470434825490862421222085488270688058065039187565335213353022452151274514525113986440421765011569358249568093867226770386257099410593736029933690200923025385233142318846417351295438020390494161622307370873302946918981030289424899061785560946332560135955644965072572884911230023895518150162370614088040232765421879923846048737559551761433116806752390572500840323496267996771920798091850904489076863270890557756063206707223871007131975810941644768480475328165909823701117229862363593180670678391555489564871836692690689680460540351859525709051903452880312733872081037716418046516822716853689202736461903698929100808185373145196550882830681768090695402448854012676451790396774836086465234556871316733089115955922060899432368610337912801954287839351742025553110906376028946762429346941689601394208045334549888950498825054544643720399664539910375203523361030803941609430392037405856389591100454741317469059869412773063075831393847086383746884867863862675510930265829217008305450524423303533706878536351104690622906221393275368950455059004330682312534507325470171864030074745983361176905015747910721706136162893660476210501905693492767479584234644941557645563140001245370210570394581383465981488139146253803513747652867232543453807431433732106114645897548413077313966575473092883754764002169653095825493228198431069336495023159572917214025695979239449486612071325607073851751949012552634029107299641570060634913131898117684729079293262470268313565152355848813773857697780039957470621934884752260404031470685964879155299614897247229080051253766386876544264088392631282323939339428277631494892267411415686438174589264397316146465027818921502613647634261978741063540667020823286556080477580006409840222908683832864620719357287170771591044430953555575055871782510688875674527737343259010882119664019225080571810782281758264383720224497300050246511735019882870151102502448855864769961129837147975278255801433733758989810347538044393829992884062006767695227671326162610195170975657342607101864304452062447931209502992651601283190532923323348961200897282243490968765665893502150592131625120720299662631278260373332795862094084228926517251004452335479266505276187046224951458588760596570388386172941861992661889285647446293291409840329136026417078117052453643553207655322829906040679815289778997152347653673760011385832375847518391128065768233354343652526186082667915694047889951815608346196350739080097096122106608781640694553935980892011685981034297865026098767713057640643882292470046784331351420398123654916307086799431376948701711631852046770046046369857498106826953517972908585235344490507740490381267089702296248092685008641572391262884944447521337317707810089501539134816704630347487861710861384127541787302212264870071012492685113899535086782431486000983061597833820253384447939040345033508527052929810709241279947626145417481105681413404838769500777240968332766721611567199551269639977684613031470193750618732905227357690750398694719857709650044875713340070812150206315679463095908321489572374162155259194678700413226330366480705503189009388817335292076605887484354964475222201028433578603595516975224154495461530442264380039845479688639290669649102167433849178806094511617361811937134881688095685354012785827809419074015784390883764686889709030423479789526988387374023758938650828730538955825860693414436014561043178524497013601596412373042069226326231869150283623439822571992945928079979609526193733618794250608209334832073469223914028757204761074587421480071384825721560579883818659254600113764128284482063367067453506445956400453779200299821053094837731787325785776902928004361623448664328941876970192133913045709745203340831347198522267864173370724173747452894583082039739744902057725959159782244409202286992399456276629880479201091214845467285844197915793639932595531492752496615370343316861517884977811878215133896793182968546374166461053528792087808350278617875197020091259578954087910120766187319632066338277029195876835087249914105682250088820672496264205791237792924878801201838686711128410128543714500580778836058724992791974203036661905965312647302060570393001294575032944519757555827862673931804210384521760416353132385999139864906983101452997214704426573287951519742255810093760390738214026978725143244666329673871624016246142435127767346593606893631964520297762188871822748964776639504616824069406654176358801705220193378599728257818230610710102984033219502078352664791672958858424483381811200581192454428465713316379770359491844576906433601069174633519781103047546322955916571630275832417820950995858478345804012652078244659580553271019661155877115641022113407019105935499972948026959194302876267626972159596217347984471838712457124232849816237071650514187674247928172142138627195583541288662338004753394623746536868169090050292042784872034719289273746332486988051038172031576286129662121628150255498890541795102837303283954142660967663490666699859681841026961848988001137051088989364084948401677753377932061261038648791055298078081182965007471466534357373616464953260040099892255150968598317839599102702358161529843545025293226716633039598632217040353565502084056860667149976992935057797781336715219077773742848670743897855386197298062268141854816386339415775331677220074415924262473344309452091024873258492900490844265791123058672615755078927475743290768574153506112776316946746793564907789501909560501233051525104861487670406492614309030369985436329513318053285045826908986521156989816052412239141407523294083999642863070283566766498730319684151236566774345790056110080310759558199613729755081888461223605178387530196378542266233278759610462840303263018351453302098736495398668902034522041994148219470270964137289720258974076604335133646435726870416156828256568639250647791137736583785301943040076960566844343150046690309800307033149173341992694492452451246529180622302599540895254334588518641574319034025626354665727187599645224194077100610865302942559771076471073738337783482699433455543903214223135759984841918334247364736223644470100765807528851681479971127164876503152272689505908861935519130138186088523151490452039530269038865259046708434073730272922683970784223476133163864466024217691121169233014086101317657210770948638349723851104631858106720801209210472803083490630842711135933758398623789587244184576633037150820328223366042845260548306084204614213501040525899249330850049384664690828627130491132406628306949039466901441999769695175572258753601664743124269727966454430786903515031290830700823433658444795295141878827476870617849275114385767702108976774283017452610679099616996460580082601332048570949642819284710068947363787796489341639206904523318728286518214948713104240562950956960094665703147821480440187715242045583231746480638145901720523711101417049953588735282328354396628457130391389397449449047468400563491446952659044451632515350649712008141162751200222031462010257998798119570044281780204808113951065971133784437803045071221610550199754250107743231319878836149617751490815152678435001427843166280703512968639507519044206501942601307526715592607971467863442741079794697471107709940456971962040765459919956664799752937509968820214580097666093540043256965661331353722685767081093626829852862325333529034406296783783273048888002545106326604142169509865848544817565093047211608873336218498509946237658916433631290558364414199015284774354172716668527126542077799598405789167807814535859838664859943719692656621146259145718095437832557387750932775181732679984666969755981975145510703714430530569722288098134157128253543996148382123903460152613584812456687918434352811918027146700179229878369608423959751425024811603398561750645962127371658680652044402254389141702675958594107195375950169691754525507660312894379999658084592630623822253774100298282652551007609523351082464866060263535889956655050258462623997670409950353900384581307432844595123796847959261564509405307294101073219497493729295513963712111452305583349529096189534160405542717262308219262313583600680520300206531266488045383411679148829470097188281302265831362401701752913646486038572835551179407634706606687637279275983382213090441866522552961078585393162355969132158387607831888170518425173988346282931548398606253109024595776559936048663780866820989685211443930072183608076063050292124474854493229155662538730361437881612824930604117925961577348876670244281039315000059478851512799006393680480440920405833126377385773662337735032832685586514532228556403821449561690645893435116331068707642959731357057628492096608508032428466731385847925905172238395778047659679562178842649380868027692881473537175967217014540743977072994310724415162917534079087914096822519531727485423186223278616878424667706701819273624874500627445198413721090883225627787620025262581006350725955384331920156876723177811130468463219899095647989547090772017280831615574527474046774064335641091652901337099274709990092099859822919048344110146724413340003347308141542436809408894995967669480841432665340288854011245105829328040325394673047561881134092098805094197098470459883720387438334846334147777224150227127660350742115731114847272085258721680269096477510831812800322958982522273505495636149141593468404463693169916262661746827318915064800585390388341759675738158373069891590368362106738895693757191931322681878336765324790484757310756158229880580138500834675391850147604918854313642818954181448232201571809153517954728866604996328772583192480937697967152856466272435254687231421831322385101029599398484118261429908321897722378112717804626632646853492946972443585818695874567049364601990848497134560862506245447724884024273311374141540259875475504401559236420013982150736517487878771117275056971775404728437453760045020741137774741996748785020885283491245155708929238553672883696490165200188537101958824637640257613736938966761629621688982045877236172090879072325951952569709714722759775403048699692639827528596286648214240936210274796745795692283743553001212989213112930919739093818594180651890212003867648233199767896259711475830061473457987245362590476579688117781541669683900878956633927731749588445937986533798401695177851639561794780453647552188437889348534960567157303532109763236131396123962788691496009077387063337098345009204926888089537207725059631776662497370371217879764502443614358175523672431624970558233606232026101743650484157269162932270703209811328124642244314519613536747468831524382385183984028945661034401525643743016938658699244758367889176488520078147786942826537632260732238090214654116285797239813801822549515197725969277506386867582301172821419904730229925544121626708404753490863825662696161525510016159461184824938268840572581203535534699680328103683929061556802531712821490632579806590476824387042919351416399965602897588349018597005946932184308648326725115601865692506476827875757623404519299569093253385221561993585184251812486304117877093754844572672764270689290676606908017338264144915800537269699909332547669545853571652458360311347343308375969077170719659999225789944841579061331742854247888164269593848722822187557580530638630475431700457125125112908655595594677177061688445571167138883404550671381283660757912150167950839604288530880362430933237461899088752030284328264526087841507704475786909175953345458675352502800117319857251026007598160095346610788376736970860466497483873954517612919001085681011203022715603983205759445615425541344982240953558519415943930829689452221800457323724646581013835452311017433012504914653670241686734317280107130726443155273664866528647022671748777076455684283501059865003172400168050053104435666870721853426970526846990728508215551542293787560634333309560295164442724719679331373641443266609149225807721148395291630198955062318308775214590844118023310665439286059225538593013709314887421332187283573712939158501350144310911437262557912373906793267574434049018849164447598234616521093608014636762382406444032882029404580582477548461154433804599586838896211660584481344249727183764292798635314169669270498387468939631540326309619076574297202570784855958963427479123664728665786932317211672989215110235868628710010451396547673036110566583910120432349605661648074097898622618034955477003361532981580794011078062219963944721198170568162298758794038951452250540106498606996368014191216332395095610849291585508657362444121063632426639001082655211269236246485582389510351099360321900167962984169439310593819046839945554883053116848934494686956522308302542661809889972305917086705469579555860552980486453467189359365882137886458484090221827873284056279603507837635432270037255749576781527900793956151749374464595831608708798746448543648281374717052515256538668639658555347748963580611160813420100451597287196444393560715219282347644713030493601361282569457402717952467423249601092380246373149693060995653596979956969335696007176065211383870449818368768996484666035763877337563407755486189957106684059747605377207895368580778807176898203324355229173238510914011687811848063096250349708989306336557192192388939711990051270894483310344326387092171415781159957854477752592986685442367856424378639383213394967303833574520099638230778321782763764416605569933607469689995850171333125472326510430736297248564577765191147776864925430011960596679575786293791224010951418024627639451599565032239176200791432656961939163703891789066688992087701255941387548888688918648164175965120879937940012020821272435926066236984612445105915184717024838492429672160255201427292218688273505093310436968614805278475730812217405105613351285444919862145231120226551054562476849509409251625249523284520584816069121100929835005526087355752456692613751607032114919342768807819597368564909536988566914309568080136725210824955513506758343377706109557550987499902733780318326343282857860799981452599255860594044690171823025102052477207623706296466261912173372629592906798598350201690745184274722927758446257862001143311448603927227486047031187352181820020108870671800021313242641504084849873692088993699196367248829541001516151109123472200863923488807296025936070768518327334979288726984688218918329051418893022552022569131492688227161209702201246272363737624202119873733931023648639116253334718983989740659652500124781562100362695972867736021047881216897857798938389259298642652288946079506186781763370613714608850193575670527601623778041633292880408151664012862778242231685201990677273830795788175783620597725710855709559750939711711193513969765925600281981138260935109349800184507238614151012282076014589480764862558804368042248394771051365347485502006704417360716372772622975595926626683763185275978906107842871583218872279934549940032918123112083656909171939556166576080064911130873711981859868898256090923926525591527803140918403801437165512776734563592167800276443086128463971770084785036584673870375446588012630440112266014828349968676572101616203653842213394203874655003180867372106858485442668031867623838339382741346448484199402326839497484348258043513353160423372874169882451870095711122615148255248422954435379552347240873602097530921053132313176033977139614950973291521238881990079875464460445558576802164147788464064212231394004117110163957983586878992252791661975532206871111297888764990663085605446787301529041804740806052371105190819106100635548052426638549269541154083830223059015982467627870712678110070580059298917981853809976057668500293781558505605516495791326308103834392122444543218527506719662864868098829364928842443469741273821278843883332724640966202139431568030287033584833763022411478924070896856309350245960373905401913304547236209625520689420385173533531763611708704651904185900101419702365391120570848339643672455469125049867728267285850587240861859828899158672362077517442783262842145324466154394201868717222507785499818842903615275098610254641433165448361174708152061443249498359070071838563557754015189253360682096237491618272895988027259595733732252260087526712573219024520756161115573511098359437613527392653942262176429474882608960150169951972637535408440019135251585303637635180821577279827199493744888316714024466058800440172753024206913897225016092194160632765719729687046480280010753596572242675663933141367747966344902976332385739714237643285496054721886559999023858903809366466270940178556199907517851608936027012365702809752689878214219934937447036074698953752790637764252621743202381172081895721689918792078068179829957947550528819418831524465354342231562471880269309476986809113926641095800903145470694077141671044153719346787660586038076295330466121442291121024072932444993848691434518150179475323877386702580958615295859824352616643126830016480016935643693077830091920637533554028163662990965348522959222101400010410409231806896183951351570539616313530725754514530183216239410535967844037910839150445825428831893467398667535027731155295857225316002297637405867970938199131746751310446540149836868720373453988740691109088692615668137398473455137429735519388433313086107372867529263157740979596785880535941208139132430157788150472505697091501867999298635784899503016259788764994851750356339185141541478157936382307587969269738485079779209816921578276998438352371166020927414404205186934355293683238083831753792849765850834317251893089293793611145383945615149295311272366780682187181727125758632741416860299507122960075801391415661135838469950244316205472529443986100522898659170237700746115984143607277194098810318797415315145688614170999859165631001986631954624933821460376777602293164858121569830205961922741985282694059270071953444517871604966542626548365765193801481243447854149268732834416144635612821238272679865573437444446584257642930394980026548487311172877208585666688373547772680393773067356168595688516662770431025677701155044139375957018836824801337767047790269727458869594576881859508368703243593707023240317936228258539233370825620197881003481204368339158268387226403529161397873549025920738757011816970617809099140458341952879095987908741729021192346949823481343513683373862860346024646255508729633369080433616344922305188466494898139231133044733530620348954313079417316185671042247913647544335297086207822866956296299003574668437262621398809397497862882827153001852924417319145682342296743256660983077653469966201703304979131792185824040068160416382832939592291171986249461432917841628463939697121504703935998207302051414547652517035273149877980302013185753722496431268607089457966822593263126303309233396007933694097553473339250812079351163712318258736488627163739405341107656012813917340242079635019430132560111371316894061044524877735930221448728011296539885002194924364353692789121994738348861038055557958369902578171779000654441478565983839519624093384686589926840726981483006859062145575554274294260013287444748575053858362692997934983674264658482935060804711124146853146046567889349555599749087158867458620798170810575412105213872912526079361825651559946584432883351834033862432412863507022746807371210859796837523925468124515010119067687202333149005811954821660420273967431368751310116364285361161383450166490822715630327048349711550041515764057502316531069427854916775430445091857786906716221249052924409443430353195790213614931258947292466562772593154266270522384531052803509348199602232793455333891429961596886188299359316807176971351035779308245427069862684012745188247894136068508757275521515393568787751710399569982303789042243032901675283156812661583811715018137144000443109394587649639663356551015670783502373486118812272159761796423030784264530339530143059853159924233903845014632737488935888052541600014752027874167700504029761426147598549354015867768341710673170984196569577069784003955320494018218353167203456430939674395350827376069333079698886924058975579748452102368562333528717230164026848821882149208974435375019256648902564981226429088725571232171474904465979420711430449488562523915519324179497093297907098381857995943713240356832287733190279090941273632009292266042212763876633749489173025146813521880245695111482530325637357289378168605378471630641426648438123186036531618933203987796051596092595690840338908326590222196542264270188646857395431238339553505705904540840747904722544670684073338729971739951107236509945736021189045509009162557215817557152488647956900798728306696602757055816342456368767077115094626552968943617406929843268319190474870724677820316408174926937695908704993646243609519357938839504070566817441780752590956324227572193334126785028194525009391721884923758106047623683164759502084042696174211872897570163939919656090274773644683539967852122063525714020246505996153525708593133275267300345793236874973468773428855905746242614007599534206370721992442897478519135031427514459594751144033425169852320121144935980972342641994114504856402104707163591260255153996396482112010031895200197165071254660366881904724963751629613508632261279957403791423101262975214801279406913143433029913698634410286299591894511296243976060115851741869030917026137630328864901819518093050524218672681417631403383408241375749756161514789382894027416193953180241175374085890343745417305657562138818665399488630594602643594487354996829101482027372037587376039489040437424886613185875199149853399100263541625644681074756161768805915536513437988838062067313110234636961199635465312622186017273923661420833935418986182667945144331963870988890748828360450591782391387574586131454985404158252501945661416346600643972751213499900394461015148793525049958013978445989652840077858091173820278608319333345800414479324385408146689251630733967902879615614820827783070725824724905006802119731782118006427827576733598022432148918543011015382898824386700449285325053705846538357352366682684788637280911497700622874444993505250639764800211219208652260926193692291139651647445648663336529227479980720413352328872374422285835182684556003402657903562789068140366607384893774098196626105897603450295863102535999944989941176538514089603341559086625921664673844603660613594251399807562792661113594148753529550214095909044662796780482076167708610336111222582919728661635856455584092092626312225811377781943361766466689996496275523145101480543885744509455276230895190667762178378685886110648410638617287274889718857914911526657687153359894705165582144082141434558745860909568351220187916614132696022767973850527395447218348330821810227400673438614795405398378577054006086999604639340494096829055370860975243547812774189273047295815334085497893141793619584231494791566401390560859161299487886320248075388243594408415170152375575109904703705605155932680618059857257577889147652996723204758693374180954826648753775647474436440798383874031556315230250458313516301226484881145108603967696510812047059193495977033578844347638113495750310116371744306520196783249923318306161047403637161344869319832777425460234706849479756522619609956834552482030349699705427178819055334227761593148973806750061939222803687786620339399501415790759707703851484087433613411093214305190746111771437779489913540588491453126209546832975832223808010939737454714567363751701120446842267031605176352821811833007216019159956211754612066764979725031289010457692578141648540804243599747564182594893283254868216698543687366116853444813486718620154901538600951556409266333040299606675156172817983243681379986781102998377925505454520443831957803688129549721680529818824089167377336073526410597128521759805999184065716590650471406566212132192918623633375766786297031184791529922872950039820262996969042499386804427010506057296330524942903812742288894733907680864313994108725902852382603717608139047356430046814231378906588308319817958160924754577511825284285827700194790495469871409168686613029426007351391962090125801146842563072337234206613312677323253506697483667600259844425993622896258172026883565287048280019973566727305717236954368083455293319581492291983682487427371694250277353587298490776102599460604485669378456243827311849205037868949422754797859543730179631097027358424853673338166393707819475073282429673073353026598674630544794992515343332774123394397349723563072046760979688974478131620127668921996646175117380578941906852632187311897786284875880576892863764285111898696424136797204542988369710125398174632577526650471562399778603501493052165975132902721909786908958887260213906133746368734559873383148599093877212727435119464515282146610122839430316132405053444696594618281081652334326030697401072748411282753752042221951314722677155053461105804522251539888307439144229743171880347203129795830506234492825509360249228704930589843126241462839963163857460060456760928276293691153318093414306729457424414313736452984153369122873766027588340278470081621525465920042249812047812145187450217766454426633916541265967073747607523420453915567800616340890625921306496476849816870437173932209254415276400012424500100283034988075798837592304459416237052456908070838927102065134062036720032765878475363028688870886793919097660699504271255955319389756212268701403907118764624703715076316135742778228026506931253895417064327299902723676759941027339088633399935159744793200930145491309871697517619493351494496449935227936183211974304947980692283561833538142030574502205826572625293795037663233518539194937940388257535565877527145365793518628143215225062977803808743624799268955769096992119349508992542081613900936791738337087845016610837224162394743281946265085309765241226358666026421272040247729324672808092629994579762616805503203954547711379775136639223612581165724442249991862945795044442504613232780497448640024269546031474737240914583697234584747719876954952800382720648806284735570612059078966537643376823357682710714838214329036524492769892145693017859117158420901960569940261028310810097635994590617332398558865329204276840366254126853078566022403345754916243907533837389645225828896860468494763285965500301916533086867925659786111764429384642207251174194670298165709714791444321178863819401432939396459039435956646846182016018957514277726421249507568292536742466070342346188057766583592044121739637074777768043721331158609264195464623215629807344062030433309640255252317240411361749622204104195392081982573579331722897439673054797040591251342234304997979473193366731705697170141318854493942666047144109261625672342386356355376718138056704900760338752367401831393383155029866964823741194408514024553102275032747987293647110948853124863231263019386067534038028709420804555625228262238429013015283456656754043750967249655524093509732490342004526439399009806969969218073094291882826181996836106411302697317248669203870930250690310600679824817210583340688210776258636918965634083102032176847247138238652897802935364964835357816488350303563120055598122305906455942827920074188809993106524645782022734292242527422178882937883860245769656339007723691205681513036924893146099436063385263952435678473152405372327643820489474213461612225381157630728490335688281916184683868499375606466606140424485953564159224864489139212072500799259275647782571152388086423254636918840301282880693677595106638240550514087342676933958813136645808423466031205149994827105333512785449305755944583735058977433372731076600979158818824727706512073076410407628854360585119001145848717555581288059208186639898641480137976544879942032735326166901936572326238726282479468534162519065960824394977258665577458820501803531458251422355117241698376269325703392785407017226223064398470444347268837328813225772485493694825436613057194239714778370050622044739735018549775924858899353085522094071737386519941406094181660874127945263175478143461082020547262579438712300843166398952079382335985165971707729250744831574566661439856829017804741364727740707560815399095617227793768812865691114553565056984208509586522946291053475298112588340911614611082147918505917887982510666680137411775587864200966436254374064916027836980875308726642488298816037121937275207451538662065434903561406187454485385260445398928361313718597641467462613862830489611686767574031130559827522343906039013511678761144121219561531419807050098998489619247026076488369086633767736561007043327291157126455754460556007298345942815808016642891894165802226297608225667804504714011243343254242409347179558248903555229992146837917313032707982197614493198215079954184029789848870433153125163702636236782378719770179167066266751323356532651673805107875936543855179207294489141054975590605912653607879442512179174559094088695180427557130326809316185622269310097676062251152689470338678179840810952549355097946029542601868564550054313014690102061241794381143673290977815699950411051464847724284638732393952829536699319755359041299887247943023010093711910344348507726091072204839945533249226455567105677181304817180148370290227861455675071765175007974652356150306874553760370001564010647942539225031936222534160491171634509356244470002408011848272869425809321220096900494745733827544040081928049401495168893964850895360417520148534107084243391682421359099442145467191711269862243124619515531547976285830569443846921735123892990194114948053953851850732124897283133992264349836863311784985202911412390937636946999811182158702506893152883423860886425500997085282987690550255426242973230568885490425646821961983202037754755212134233281129611485266431155452979684198945202603521229213757383700854597692575251806750251729588616695658246318170365931978555349453432838856777268994698006139574154885949685923701104546170596242792277106814365357152793636742375858735778714038781414718874989856711173113785204864898530476001048764713595079508434245927418746983387857433491677941138722171032894267841011228602290340857362386249584845116850460268038847889138227530962736120525842189430204207762677168155752168306666288621646526899610591747016134984668931156319902287180451538881995833106449922624121574039053878961990510185493360354679982108099490412860577199357967456437721076123470855353170831283084761961835365707579919677537227967956092675536399523014661946722764575154184820556817194386574862041318185016454141165300438291252331235822873267464622526278944909159220329852210745713057207272317376748035427711208234527973252095417451616394461981234903803570455297440340353575815562230267696821001148698646202379293607569340407963618208908767457697949773023597816598598227094826205732518689569149657110570293104688424947303454762584864587807014737954638260725816480360182796733673051395393480661028329247103091761156355324708980227659349900813939726538639952499779535574869613484681131455350035476544011727317834377047757227473501087869658662775999096599003634491832149785855335936230424284484855296320023358291513128068555467458395429634442908270751901420022037330944495751480699357731513942983833573207742443915359536050827008625905204889890894074947850915453918363032939634129203025854000148574674329530761369300007225887238514648923087551377945196029241384262236801979110696839101908268928841070835483409086784796977676774063776582563950792226299700364896541624187770859712841558696000057824056316135989399789975259664200258104336495224278509321474867277863896843574780451234043379603275133657124223914622963342279610279106266504206017967498476824936257193049039379843466499711778789444610229149139626848625334387992286139147421013097096759451108155329596588717643053193171738684060121589809261732825791344758109216348536289052927418377852994863531102369732096454681712641336697738363070340058646433420010866998137286150907540073422484601720545396974863970104761070241795906564292236886252703241783752880402957306611310614442547726389532286561001875246046484108467364390014683662251364625286320850204225956881840284878806503876425111810539269995915204215183339025360977103009821837093446872268162013873258084430375061881197934131953790143194319251694600184482682236919306161966550533273143959741845482939270808912037862730533892821999049418320823953095846572433768154365185110989159852881116332290169704906300147499746586302829640176318550628269610391232481647571130421515508475617213184220585378192529865864409341946956884845425779467865836394519995766174495924640718075441605973910973648020869335475303660738568400464029024259936768805597079373181575070364599551851957643665865705498928928382077950550833955897329942724201006788749855581486654975304003183768790414189910811460085212648610350852684813900544906782540631101019796614458588431377698929401322699618510096244006478747545123543770112826873542153100244970284294521851130179202582335593341339032269437531925167498546546411239756602422615033797900073732675213987455499481622443689597523913665727075738804348770148361885876556663990133544973004202374793652807765683031554557238785485123613888322107244015032471122833115610421888066243062041876232024967119048947836817998355847985838612648818133459917936615352337751655896339867541445439482523666540068784808576836667639465997813600606206927217846099354469393973576203189936396262097733463129387157101321444524575747152477725289412004436891435542358792675766368008334787961564873377374076129657825936511646458845916433107029947345163472389109828633911989591394324870885518458392732615321635978821791244243298778284139875539051917596777886183298489505123051210969672367666346035209749594892575593484488118539099242972235191294141741856598509155500178256282031988314207296751003760248986540913133534720627756772403892249130971344821225894122273439191616493545352065048090738262470144483792338920161042750816575712306455958079213015235643983715407156430592834710056147728118288418496951304778598419252621373280989593492889981325642731550210490216511686853525878009168737721695484684088521518559678342947974870931441007707327817961626054463997664370425816987010874462224605109340094867944122655652621195442269132995636851218353207216967017709958916954812012472109168338557510983762966208860305643424158849548173162815625000184747923718653794305285236392124913289988497721297406553748562529584230471828412767965236510807957681593741362722279188013918644603946745092635038665991428527028938592268740117456413807639469598723163926725928241777594427198561510915981077260542354446836619424216050790094197844151238943411083663094093622768147164783580566789900869707091541398690874367201756171374912822471221915727078309642180496366070571090507052679521232027431000630852473301836691265421572341557139925834051526828462553277311687416456751097588683924942925475051293620698459106304306645691223811881850484257017562611575897080140367863361422896113383200601316138048873139759065821012794709329759777332521385952516569062469019460759741160096685868766139150268741282468933936986576148782271010931611867295539138509296248369794717809024867491928894477147824292151443774270355143384866223435336817568964486717988766346351070643756518611539430040752209037684595959193710388518337510016646365628407359858563619841311548941565394800824470530131102017253979002493281487961954825860284030480728297560282947660582308758213637993220331034776373062349212146544756081502694628365284190711838683444269805149027595249408640000603096829085169030495066752992513361983232475115175555904313341151225126895749547222413960833989964843490159228159432527896509396854469132743384731658247514091452670029597107309633752324383357684558667966508267109203676345438359056051208210611610696920728362690213165983339845380992270212056711380349217267117589887781430950156964302978634097334070477884341166841356526830248343506522809408046683318384304411734575869568372158704738140789570342612547152239796949431973030915169475639314882297755729541731176629869007672281684625315497713201317101610095104060802672026961244275086326432449476297740777517690997734428759733879280849592524170896790135728902189147582761674227326546600859657067105744773703912668848840223783948985787658107704406495631540697026619381245492036969467183005515471276274521775980563280562473833046677260595149472956471883301984384576186584145391232555879204485432435011142648931491900887059848622873780617875107109704406674488318736353663565075931990986720516700562118488853160897440826069562102778086351993162026381640722832759388926918622531403492427372257559997093616580289299971839794536194790196424323568496272262667402104310502779777039511665060164488569984525761238427366019206631391306789245289540810553800880011157111875988056581539086140072638252707288965587895840040513645190227857431978765097098888388250378218927333116739886636197400252672005067123510690072071020706569259463603517636889367101789823886893420435846511761471762177796026932481714521210840737895128441299408495249843268792814418102811144351816146086569608762549234106703451940934859925941426635718711628547327826599745361509150583404528777858990830521712970194874449731801609760007997791300029012585288630864197845943032333144062501312451964086042421052480680821333235613962850800987683833688897931681715213387875538310165611257970815923921338299857386411532817774354421611706322238461765447611126755828997221574574037126252286913136524868460714145986677594793098376951427180578893423798809482917570942481453526421195606046871844452980887163442580926808687095260766387578903645008732376626675083018279771155835579168413308653107194336966989576793422819432419397390293580090431696681575759160183698219557040086436567027577653109291239842873928208204255635737264962929744033503202233635617286787148455190427307716403979489875181264436119102846344425661998946072964383878223124901228293153399120824966790194946426269943457994411529462966123531978839981787059321161580719734660928054271302162068875390726854863737564219343690454067409626042161391451547281141376587873781847238820105843465347076710470388464900780406460309006964579256417859141166559462846063155261900164182820865580926728800259432392853027380354385911306272242948901585899271645503409616889241712971846537565472377596246482088764927709881661887860744139154377128810035559826853123708591158628850493875033659283077851933102455258934441385759914076891081923248178094515679997936642127379551366211505443068779278071256502218743940927272334561286505947675722739640644634176751306911656895342656561891137293371844891782650837873187562930283183970277019063755231970249811695132693792411376705571154400363157136875776524120037669916070892308722559624213679769342240694971411834383967058075476854413313463385691211353342104005188052127827244158551542342108839742638098216017725929681933460216798782542360099038006007498629474865042609719625676107559060025340978628715228802731880737822768266023037131873580073052928106535888992274651062692472733345434284765037132588321295858086190502968103810214131144356178669837975630651552877974167333198198386173116597183234314760361787422069686440317820902317549622867150022380550976841260336034183469691472076118091446745737185179904887387728499042313325042761615757918892942094820566784033125058624636178244287836997772030155800456222315827186130365886754585824657929965062271100838873285712249125321446399369373270066852495338973084069187322427572487160010965946319849310129298257955446345012123912272879777759027162873607543621343905482351646588506940997027746981981022482381912205207050890337846879601944000132676806958143764498392530957994779452485238356466933176328618539040759467166063114783897148451551102363827641728454277196493849432808258106544498643767840702761021029843887964305886429753182743632337925839416087576968943214497021413356260043728553003750104988555100816820196801604600870496894708791427905769944772054421974020474317278787254725339621923533594217052433275217563043279709379602441097321587809984900872809698487502561473533863931707233123690101757720521964690608504705085095235693799016570794640384358118506565250150577543690294455020416539012431781308545213127881490965504949757358713343107386439282464981986105454181772693835041585392178871622546924200441792400238672937923885249076956785707951172912949898199534843244999938972619035423090931634397013901696509371686064815057558503371475619557978274775611668326182721546930461740336790988956899714157026213933329531805302383413898428266780993650571808458918111645505045858735402711581497293048308515385568619219096746019295855403860147819267006500431770581605600610041830330943412376939794240804172063817167219898157225682870444151517943336370910740148852481815520055412584105206499655172538441055808912015857394343533778288018652825908871631323989826323089752645523354260956197924206721989810322201458320504818633760250075301160002207829245883093404930103103005201151488489583952349303292927779626654540158633807352042589451963090921141894910025639028932120999696433356922051223685519748660168699413495229660747338669235040435810604342888813286667821619884586214767615573457364932553023377200593085626065647480637409571411850679940832628951053032776889730734092400456595339980252186258608132057145681317166099278397615880037872655681081527196190391261967694465644045847543775974137988165683992763605402244118212211735459882272545111313241282887343868755505286251465537698350307658075532964206635392210271772618991466087825090918749475756591737660245752863610413152160162714508638060614063046569912260812597471030250777802933551929700474486526799528684212538842144214946994539748004778212445739587492540106509592110646285638391488059649558568840129502186329365052875075659810850933283122458477497655846314429669204372815952253103984503241767401854306511799513673301775730292371864162276419262637273516937896839779551713293999466768901174581191275532422719117370594043816587905746311892961139579262931631819572992385016248161827233752575409413657986526712466154685644736144886994770953229911287677588080095027131137370430042997386372169040317230208410725504778276899951207649236358809699926655157255910494161030411297984624648726893388254748121028831884640714508176009958286527302750856125202456083341402326442844638570734580198014942823658956212609288386727627042133171436232451202906893987337816107788501815174885143618374941511777502104337346456938988301154376099990243219500787671811241036426898002231925103306341419069276371651985902679366552769351429513401669136827256329532843030842964658844195802531703146686986750186119194121032531084803390273377223722441504080441696791248585948357965274850268021044846858143537069923066259833327546330386027872352081453603526325022567528187580455333901737680606563220339364471473385101218035407732345075949596624215323884506837552734793121783708801197867930463367475795144836207451339625029125184423100899729947992395052117303028081898738309408864127035633171599067979101169310530044253421893138811086218381767936745708810216504349340809255194164144628483996077636507136977362058857464617021476212455618835313905934002817580468232768759602286073387652163872045956751342648431156772101473299364658318114920017450595035512220398040088298246712639013055549710762151365470763748213230419641483038629075119135109801977356053846217574746019478646907343835510019667905985057886829715763254266084795063091800231347372138553735820335593395820854830100502856993621921131030913993349576883440184642092530006198121894104413804559921592858204470065180028087898895097063436473330642630734238205306222822957431748554764113032283151121210385109813810081198262190005378904125040770351626381365314763611097138009143201779495147385347144330376994096285471586296152995016390345299282211186232402310494867689920716292733863451328619763277640390947236550924449509623336124286523113703255483256770696974749997851703024216906016699444394479087494949575537293008046990480798202770234683418179885215430532164509074938914463198088649361294852903200411981999487617294116144902815833369531915876714519950455986785360347371232564402082510621729080778823543384133480144355223107392028989965625528311827356436382176734011888590393981972976448615245774065807627956864590994149862467559061829271414841182009452255086615993637697000635527157162551062383341468645332726981424371274598850381123636449900383463958991923881288302574077936683957477547181943075179213783740848549510390137193242703103009536730575294490200521512496795876078675422706628517082772196967137818398040755019606643660130000304977667864575503364845894307456440365555515046422127675547547427309512594531198747662429715040310571747707105498401931962441483651325990370023819370513568888774931825179003618568037633168446084014407411334111831959445133991860633488154046286471171044733167823292970821597435527939757708378269981812420530155988397442080447985111057335605262534311558559870617793629480283955662665187862071524830357951115323350888905423709443202596806143954684458210014502474704158292408867191857810018141902297470569850832132771679850279169094238553414956930932811450856134890629952211493667368602113956427536711988378133757491200002928988396574838232377888154614946449876382914089263314651399760185219539770178970740805621625876092359874878168629994196409509877958123609851603916475272644276311251921360012032554518737921201807351567959849447610730302905601323987081868627899862268970144438770465987180000723196583868275554614484963850973042575167321300441851571108325969805995941833735696122340829973961176300243204088975251687261909778212664049957245140502696854005308196762728006990383071253091035127640346113669956103145514832531566706722999926188494283156799973347155865956489391917558993621651427649066969564087226773475078664075267092267254455084272836231578404688145031952689642542309942473014762555127314098302822441651962650820144942873767206318212476508674936580356879677137293862760801063841234588313378847698298302007440009902010416918695683823330446233360801119531461369420486102559828281524479208248418946412899458504720097716600206375783049892565348767831693626152983600147995936282499052602278200382798859406746619196833647482597830320158291042159059431435181808650738740651441952069000626792665743733049914468555409669786964874802843978330502885943527364408574138202020211297162812933478597826714906147963614130874602814044748458531464864460918555992569753726004224696022282683249971129442796574780878279891724175001883906816195880077754718604155021526992037396481252513840225754529129065046375962094494886470769304163578283272355163137536779599048065678793335394452116539076423873968023647019499657151917942124447951198473930847458827256474370276829362300356282260238929230215356972581343427346196388579753523992018692986193113547166308773269225380296549405326520238374129841839219498051332096485538289904114617864575158567555188361563380438417745012031999403948376755088927226922815332218580979567968887184744883399249791474650787786719961470658204272468533046124523453717749438432502459892195791059418543919096528416134006596682373410036552054402372401647773756204002358433032041945166394966955628066110498824957831227158601495153696700510890085209106290247251038808767097563242652880883717240264834786263644178915526011958233483645983861021363968280362073961097934429271304693013693847934585993225229918863268513735494128179663939611360674939396753999586369896662191150982537356125842412230636129568602717008743942474816457998875284901779972378016842509688817553015001167565039765335297643521739777091353223679131225454416239904756958798110945789518828265160263646602823357613582534487690482487560303889064005994296143220095658891251647815937514001593860742308281123950610457304217186659999337435102792359984285256436430953859158874263371931991304844219477530537146070503139349643812689583143351524439883327497395259918872723384178095145275180658533700312099254224429749991531635967747632067973473622462724531020819921078752771137396115355218551235730521513190203571607064273132930728201336428542531686965685324532554731067736090155594780754027718498466513307113621203781754391786302007059713272482322120980492139124085976179120103157677326793366643567088441339460665614757024624859423673658379310168340412887198400099026784668601176072640307681640670592649164209346423082396756548809352922660768648973151007573934053664057469552540529860758543294193703170071517623207552281447396611787670377175268042564913811629475532306563344375663921563660723208752588964192536589649742933595818466998171462558573676142810208840430149622841990019429853882620344044232852087821838965029058073524802091780422715800537766046613180167427292965525869058433087557325916903312707700751284160916167600577548390976995060536175430949968149955706147258192279006002429889999984911909714295068512690574981705481255927231355270577246518573893932416286781776517915169995054967696447866468973612618345708799212368113671219724626697730570145635298047048481477060373771947662454501397442376684908352396123862425353501587782232162291576978256358034684577933332388095630279298404507419005236762669816808109077961199920213805227278333819778756988554301028479601685401025958867839475586524336437483811873722191377472308317558533628947670126318605401352268460346342329891977046216297937542714900241788575194854471356299782440668697020192054506574655935801543434063074459772689632509887923571067356240650535533694110743610842801391645209759462994091766607047437102099703674195101348357730942531950751048613577077279210572630579090833353332390489131635202125395393013356370616034640391082390050575839163262447878484378031130333821261341619865965991125976167583674924646201927663396135253681393284726612469776028667742200384047390098619987976811838355575827442555469639286081048716777898393117416287168037825341596577008379733661706336212560404057324571258750766206403134393574387646712330740742529338792701732256662732698500361576075560891879612223339382347453706452501616742952489767496555950213837035608751884486075373338841719520785643843825128276262495619359422107547357181604599810647804467099301421438125818306089219749763110336574059244334088384746095974114969697035421689965987631605403083364569608971007533857361212440520596582039324879023945081634424795259751669649761061405580499884546429506889537342356575457104254842725089037913812100997969522119062952608481351160085896603667745421994331193096750456104540292254001566864025378105643624854375925960209689550724182932902973348101562573345706790551824559236482393411809876276879588268621624145560333389074501427177854648726857993356388117723196121369071263378757111893528412609329651848239756683905821394807378816945984432795290674461866513548595759286574138914010037430612529201200471909664674923433621830750520365774783434662187421159469353160530021889987696682920720294467459166437522208203402326769974922345179493999134638170194344414369577417252420404732633206635650970966205627933356977342842664062761234044317133499574138281231047797366498448964663120857926103308654902795563642741505160594531426026156299662132998767273431132191668460447002293573270851217099647465496729187023362530933179933613694804035103264240388069461380710942147358359468817743602140271454026207723809082701977080676031718450904020085480938353897247051435704743502180607095058535123685462091932655759506441076001647934290205325416526861720807859019032235499972019303806222227481075816551483061409127052807682545258113949494305356851406035982715460958785848331609636526351421846945895442555410342314287784218569691754154100799426078794249666456421782561638726286212192097972335369685796259903235537294391826170122847414604498328742024864913657878571437409076595648106116771307792157000276915386102110164274759266953628623582248519671845669405429846561979183858998957130471076932857351692256926191230747001306229284506713936136647715294255832049784008018045981141612241273278233003526757780089661853962564047575811501419162063170130719909049855582663968171612404457712784423236721290674571784803741197044332205107971487537781330870704589657194020557745576313910230445882107743138590039711065268802607915174845908627220242658770716151908530219575779410447387354278072902810305151909833385160717361766985813551515937103334154930599843550715133170984443868326723030267022611209225255279767709882515961489007406044472748732442051780623011794317644425905887485302733697024373811574795072503973932988263617710805239545049387980740992993681217147602760966523555907878794653287679660094815131361720041089547284215000355712925670694974101897993299378692137465397618054990866898455647313675483200675017343330746522288906857533178577190289181033243684518319289364974767375797277187806222613306104923481173023963701385115029433864453710387192362925586946399224974913914695420511322475339686667348481126102175079265555260882955576683298188088712813133707766576581074612787962246783451681393321268344601108073968540659397106156973766423230321611135030631154441451529535137374686595313759827147271049027786297878412377853312183966019115166679540283578897430200739391318862073484978179597264011723686678901991489747497525429734939793537117509925503536456369294892523608539319423603309681221609851766053977865624698271765267841990772806223854946303468722040826117973459858365753539081167125131006060281027802988863506190434765177332001620566450921960336946720078198329183933432902463672291419938173010914711731680009793886611562395446431154729392828078371446871502699940214397760077134824723339775054290178758922781536355357627667894580420313836737255620602950859231581168859782196056558778040703326044590999652058204271136318109653232151967733212657110265973380592611629834399843459674282249779217213633519048285677278941121340611036338397243071319898814979474072526575644877842753716586912725366169141807097428730111711138473986104977519586730271873303447632142874886170614424672026854277302651872529225058774344074606463874415493248983506224203375713757512661357518852671491961627845142258822674675419256411818933411986268765514133504042380417988799298783915751275234849674977990035265722768720363565613046979743950897354392902694632174800612641270444879500089370229952157058987586101710185442896591369168551593707135534980550297321636170112207784886093791627784067360147212263475843022152436715590406970236925388235286628448825787028247365280909835781930062075520715640657979599257991917958375484184468824234561510375208979237285949133595284530762261194580193377411207218435191655426030352730557501602827622227645739191390757090810983755998813674158338951350521520776126996794528889729871742466907477339067764137597973782264678247185425844050033585318708573972937573455993383656056550709860181271483321602156158856192791923344271751063099064877162315372041445979312833131914784650242806267639925102172047335414576729629094466005820230919051522939435008017959080888425443793210633854801125628126887869787943096704704731692062353302049271411220317120097346922019224921595715957636711062575026395508636813740231753907228257824133110659514358919943601888845721982203014140046783900442914865016342400998286524750299701474555476097641844969851530652540596064438101071827140491585180598980163845813847695804739834901349554462368685312908564620420330248785387943261767534539950490852369668907216570172751878250713995015698889570793695816730930502592855216268231002105575407965121335778549275739933634071924638096283036870145127893001407638009862461998998254205568018366292567488341836830857086798250425703784404715751157351236419334373552545438335366604195080722188710946422512023531933365856847379971863725200725239799842848060435986776248575472852805941816819732069212227876936243166129734957026500710980195459832706409894177902591157061187935901909395342521116504012832992798418135526107728447155152878211908021458055350953241324036224334117794355382888601011516021766306897099412973119095150917160058845046740715431987390203401146569276785810662371761153136822120686019312195870646921542809562961752458817042644668534333410366588672966846016639298785302626718827847685853592462034300344886255423273885539161108694814966224785336917415818627954283307477589121490284384549060231087577924961560016417090976917265910844588804291307642306170258533771555951289837025689508622937624353347332178754743224365362008637593116040171086668003225959118107111354743284705574577058060802338301290090592613384596409658423774733865775703857130661770217249822955651912852144258849529344640474993633576439380167151601790256622697381242895053978377194951336804645525380722627821261989200208362773064274619785440012947955986062927627388313440365096260311071135777906152545522887524537343981097596298366434167964468664951867789486934036924371050486085815020017274203126372877237197382460180435182200505930324128962639083596897060648599069141013855573263754308646560219565934982263829690923557200784043607478688379459865492285793458861268662721062805379630414107317335012481921328861463158540628034205868330812572450056038292294952865660645076940678146036759792974540636168549193118168652486178824020700356203093024130178325379067130188311717863342143005138089559610288854924776907445776636831945651079177646262083128893689232752147429055876458678267966167214742071163186479172843376227455362895431535380662282223786089514852028250459688444618410189616618107945739095685478643032104675883761337734367141521563734369457854182555763044475353735832291855666905005833938645589594111357053500024181312761030361807019841049887563448752837717826273533260171015661086635733209263280156111589476359967536050235352859025995909155617988264295746374143668368267723185007270739539270463525171546404650184292392362872190717155745173620153129633497892136489513166398097194204192902293047443328454822956894619723524853404443419715608318495972907397579484498695914697668756505517155484186495463730215610396831386691384244470280302359499471693454861276307390887611552240588039073928411249187293420250007987048702155463717418734493643955745514628069770220837484244030442026364780747999386403309961545261340013445670935596524971262271538616399049544820692020529545346521148016016352925216436438578094125048848486008040155125557435744585088094558318414837001450456753273993536648416144294892072812108243701670826017610340531969207083185297971178695019275558174682377929315309265010734995568077566694712566317394140883481867128338473975915116128625780813974844564249085937325739630098607126957995062129951908106661149551204921009082793666281000261093664205068207591114559386268162507932771630897487166496395191635152476216179627905607262418814066527130837502124991660332857236488116445928004826523694999112996601751702332569902841468056755414322036235084252621339854722599228761000417423383187571976700774862094573498688075625877726456105965852798590021079010994522786778552415514766279320184479871726479706614121830112602163459173497952046672611281137447109655708189622025344083983684552425003101447083280631017470999126089891447384154881220211869686058971547438098984411200441531715068727925585286258558417589233505533465717502714125463012666489061374576345148090965508471625193680254011317086469133806635262770133856845313467180211309883638493464983180652249380327121917143428178885755820981034974719177643038524906133089924961971749793239660208306806543300517621857019607062218355631272804786922925500218311182139824645492088589817547994639105121339356947134621520552632760351446825068680312020705848074886595526547569411378135015967427212150794759778461963183668209468335192066831943361342959938476499885822706088725554409726328441883445562505636435030420043525120136367376934210456701430303169963583091995174108504212125074433545952598325216182973442180694962567317033217331405981057810006010814662854362740748737547860565277618478855847860722908625654051333730742588480347122057145194917798325835004085842541702340576260782198612388740897285932024581248928742108731753436526952390332398526112253706291512335587158546661540464322772063142650314305658446265545820890560838889599653416353151540219291869002948052961812968973954419330828320245395107934969151486988141085270403502010463575229317650272109804157656268052217493986644086990842326564917820858216638925991340401566698845413987804554641306972249005006959707549835758128290845163357077687758366432694446002582704964889570671295866257017034394969694799695617613828426962626350679827029632815697056119269519249259837974618887470794598868925216082776884816093920931413320302076233243828755899244123801597467827870229926092216362374715159442476697789562192012528375506195791478888168569456210030678524575873067916845531533974933526745101562594518896759752719605814707374930709208432801643452476790696144625219519778161220777002587020203103731851583507618948505560897134150784945020061917262262466700303465927340737765481960201789238998457384144297032543710988393478237593317049870438616297389030778317575224015820296311922962602287136337008066464472249654376168430903390195673168690937024905867919896686857916033424035434127210274032439076416915179908793649850983576287720507633839390514050019568149241638849336253635264999961936897359017925342916017625150864222279049228130461644860038711288105748129484387800762434967700252327874891545823428554128541787772057858130266772953881546741749739153470464363936835474067265385004959072709477596054831596099148087599366312441473811582269312718986400228976843426005614187184319789996913496240498840353514913053996106310372404707006900889533866321570057976835309460850391844743700793542110211391368422154276349859037843840536271550588472545560577283111974108976993766321314793855331442858158788756881117891830209623586641256746485865793350860065475734815831554735991064490692242963804101970378706320712230076229941180165959293352442502724508907840115992159921465797434744454520083076896783932591041867945594525930192881709016506150512603507440657206570511328685037795514685801711512586685448900993230754487638855946217913675272464553538196282598411607151709162280792121336547135886983109813079366818956295284600828638889246016877693642595988215649910372934239749046752907748695216002861362999654937492336759809685223032325645915022877458818969168136319609492726340235145003518367562140954570143701026232159023953926107788416957958155465577479943437622221820283105667387306403118228385709031266889136702301203239037223414300198333417473474741339942964454243874016588116624047003816500690850834062088704056740619988925744454093204976314073871510848347103664632161080400064397509968056018377991851046377885995548982500469809706426130614837405763596725019377011324526424076101540674222466102634224657397978855447446072113301507263781750826900500625120815067062096059580300810515471664681338549091831760614093689589514302658563700241656513246815307894133896819477733851792541586041362895048447388231426680842842339585008022397410168250477498554707307053521499399413061873309575663225759379101443026767936908796318803401233071315182792344027279107885955171540624605106121563692780182145000415710171337889763986312386357438700389507448206080968760709120392039670041101934429527510064536031244180764413637779590444285674023981716674108230520419350659539272758240453324074358672498813094751014807952027897199881696998325095925333347187421913983507884555960193542226352212882861455786515471040542966114057287421838965361480189003918262993279387264226538894341913849189312526321964792978083551100984136323320450854805383324723374882720417990815341636804298618512531051560682058846947257616132613851736345828522445309509523261641484630924732682654101760349871281778690728843323638708536064217562130809400870349130164281061319596946713624547228997171577129308680602483636637890339258574377885264349428621582656623000080960237989696404675390921321875675046056875043793465728255926117570818399797146748477423961646076717323640360750075759877984354558790988379263978041326022843728801269075884599948437372587241393973450042472716384904906282124631341158169941268438933526259177110871469761091605580880539363536931115169183873474895885519551889681936049166618284023516538605326611370737238656042603404914713397521787622260111734682651648984626204617987067830614729873821127500515603759894770507150606884146530760800511418514373788445272414428506172564689026708286191526229480758566194735099842605673534712748769325581999269397648556138616297319426369607647992065674167801798503577361499741223813886032460266951964608621194416913625856355999341393439386300852509474141857379608538451876089599460966506787499704803537414514599747822301281073654214954095631206088159072189713043822666185514003301774669459506872960034809370250314320015327405453855446787606436630675038729663548714881804270112371824735711298427197507675489003565187481972057515154797579003423341922215499800103756008877876805534345230426978682871839927986066254411901402223041858849923138932944821162155764894218908069946016106388815832409640928260278611134851676701660250071589146111058098883934403377477562325220769261601772440038562391223820376276655747493031850980756797480989607738547600731080665374616106144561402279226343592855618702583521413180673996152827869150411381760271253184615527631159783155143842095692804655361100887272610384957854028749768473743199001046775281842732657553052647822648373567075878410290084775420261426901690442168488356186369761096191740379591304866922800766910288796308800182602955747807055472874147163594734461123440890232956681862634780886848056041922482113032201294905613594143055824942961635654004935627479965492007951380265902385480409898173676970141950101345407996267372369429944386860758740819774353692461763204106439972727688954681456281560585023863307593351559031520640590141659496263035645552398883230444123156947325189096104511688017714282634994017519281175124719038909028705077921043401845693648346372161380800104243904774918159090728119404174557021171926147273086995562959105220977743175911026750269883857976066330241471276915539603420845330694688606515126849596560774918790282329580434564370610661090045066835720858033474101096988224488427125698927836961148908513547197914664389016310931033972182515456181940789231976097354559811424748433487191160371972950451206339683121362983886342712126040024408071349744726069843548151261399239297493951219893665293654457394272559903083976024984633177101963408146378444616494820303337156062642407877672427388167915246794543040143068143719176666384744621283686274936272705273713233938835611062074122550547040022562820960764132734983873316792091949800536466352359129807608584606180389903360612062650506329344078295488767422185089888840379140743482770493257712386578001086765278452574156751252586720807373082705469587805679797838075463660883436305038964900669354039048092199214219604289712923588070271586152148215499926749195260844766803950844088597157049731168187762912007316522652236703302016081591487219337375971057311332918730182671259675641848732578213858075299699400247116462141577245930615459990863850405772859673241860465748972148203878087359159188317477653201552796060042767947518717206307222931703203505897369913264909062524028490271486155886073438585611013549404908335567377827091901097411516136905121840269039945862112659501012996230963584761322722505718082839442368924058563256051232140440662322238129005840019024618137191138406527467124316145735349042019850518039358882291635711865473867164942189496762776972224042579468417573544443951232646773655037260814201969129282027360590130192075681817440487977654274179096102360886281724103896389933165436340581671146263313701433653820689515747959701933319908522760083674636024088012053731929784332587539284387930156614603518432209095571870007884015316405632873818847179180375831657593563458993689498802272708658967412283572561772111137127310505462710799439427188997092703193287634432161943778804678613735114018716197908271731971868768491587854113541609705611087294071870364494408171330895972534371609556477986769317042607764384908446022181455952559262296742910574917725812728770267403578663439313171679313405340025024709431898154990533813801632747499695100068486835052134817626899257508090727402819217616475598951839953908053301131083372044834506692133389033492597727570848146120718289699973458832720848989373542744214403332164679875419638193785474784969719215090738209644629098376527852336559639735197104321802698078129511724765688994407980011638183488078249502679508734205950116014723215255177344994407728037899207645802918081551754800818914479049112761933131546001456187549580349649958369521706638236335384663302428024258622414058764645626307632394334618448028698965283634082639801329809174569365341836603946918106224305097055837184443764386990955302709605712072207726397173461277887850435492584058101431460815906069439446776901647301141851378663697014306860308002615310009194622417581149510943829388660854756307028743292306921649901984361722532101306205036845878459968010833891543164555826323310403765123915314089690548390300455658333773811492149097096774097480354369682120961080388359472104879708286590909175886440697565133447681026087494122086435858820615518022000623737931197560107177500383155491153107573743501691066925711195572289237394084604823174414489810658661104794064563604386962146227952597356463735813599508139671915215818287142809822939010932887220693589074323856717564847229496264064095507704683253650487569672678661149369181201425718799617593122889295510914177465661114656739068104963909705378408583611266515348923614091203709385957938207127563076488217146179900971122497356430104383482243474856281387427226540149259693625801315345940473068618309981384607128051174617467456272873045330400864017093002992742162260441995781581971534083214726262868693967367661389213810811457199327412014527613550289530859019595720475467997745638959173301267127796942312685193640137424535866691213721249823221192109329281525838546580347396823330739706843589924812063261135611208629652980088991835034905561575564798133529954307218938005369300690765290642634513770397538511589219549346742412334612016579915627799354666115823905161313217455259012460398406792172759264612594251845054787236575532424499809552924949067528774634699700153115420885633959183568249483108810734424074326286731257998584759291511224919910259021260445289123691848563036433261506494561189686273947268299565037979635926043024607337546720174713654243616021789631110672677199125919389410204766256901579426045166003139595423933000960489237150490867679129895849695973478210320448301287683112832215106921133177993824364731496977914557819123905211020302148305811067585920975431681899684568049191276935059228525084281283081027415782095943816066304684204712860295226175001247395817426390535946437146133523878787526115443907383197558234069425462665384414540934887174482242070027703866532866083793968780476643884088335662063610206607962933281496662900991873114166558774473108382012858186640810912665876194168693514276541749166860126359695295661466471311015601658122454688785210538022669188542654822591850731940112251586869568287889750670857245989144090218542567056542798044939062527211441373725611835398679337894951109059263197487127270174781090355034736130206279927925007384311497339319695959669626528485381828462925314856714406021987415218890852292337125291242333773803675243606921787174777020814311624807251012969130662563565722891258452696870992380956179446008117704901565560796494443212649842236931900729157734740367890442616138675065080387070920009485175690139287499041197058943242091950942254473474774439332263516170419634189238648294895104088649005022295775633259367038687567459112227929006290219548791103600146689510426811722189843184800273545776143850335214909127115116246573749208689149782932547711143279094737224146254810138930685105301508646583548679267287107796625983642368527230024726404129068670611766841651802977155122710998453934941067659198477581891954641756558928545673429425615428861195951390933190167815569098407917793735490887579892312568451131220207556782592689227373783835674187628689414111847372506632456655915029317730143722531003058241365627022083361821384129141673346852611650824914569196398164464844335663046953312888051582556371423112119796788151694760859871282144463060860545038408594990076725399351745514868228206791648598117919017684271169977683473165724151983192282656112842400803445227204556854353058404228058319886198180974919260352602394841495098723194625660408683499814246256176625056337218376891941281483509516747705389885144395560269416397146786590857301491329282080929295388183234036942080217773433360219991886771594074669909828967205067083308063360941567585831852164403980966987097954979545353880553752775036985739692655857927546084114076167442801574053508071922877888318042355872597745833173880395241578135385777515807347564510333949008743379015990279181486088730368177456990083384331404828828218085520041630585305924950514242272399179209301031887240838000350095723935331182804361346547014790828135137135848845118488933552421633504945189212510940992320549794535846082400128364048938420763145355704167473782716861068593516632813381991537959115558410350877384287456583300912873692294427976228800904359035132023962069571457211209817736034212303560388674716455220592737984461898309999060739990139997957132381120632316262811037950734134612263146458148597944110478726402949639546282509641843397306773279194786773544267418544229909839484121809737780545431981839635916495058639535807135659618850565079694974245974119510760861554000393548959077813866600276554662484058961096071459237330647746911525505190262683797619894258904399298005778595103155404602021167271163137386005315221493719214197588387253575228122790680597087893547053338018896766549270798905330923453057696049883883974336550695198219626387801774330252611978186375491064288839551306190591454882285984825879857506463016149959459761029639702520853481506946504009158824930330604943840039714863897767921630713411810587182386810867717062736302280104821467624611073722043118638174927364480890100774465401329490324375104229726923989499401551381422176807006372715832455829176335691876318978556965483196308885747408490636467030045126863460894552821825293634320883929175586237629885993310573019847858966122671104194588730046242961244719971681605260667637054779241816171783847447783169203645287232201239055622904712100202724982286003060448671715019343447674972801104779416362301716299664959571199007397375019388791145031797527745131747970129614916177107018802345888213875140015014982587305364850429956693863819318203376741119801725820972881255423242960667079650569602170121571563815712514825011542510112555669700973964232438167156157286680172105784575227121545068264654346546344068512606416230095142251704405797050657643946050272998861872080140682432499904798315605630106114907841491129842598044608956862670659400486117081570339981344686103492576561321257258184284959431271395108552429357148688124673572406597129918475004423835574981089639572790160598365344403030904735649229227825846444356880563736457585552383880092124700176334371724971944933567401685919807713983399475267601312391719970717753435637202631208298388736307744704899135502005524005789758941902360068999834613263788515338235422420522540522775843819925883947773910293157762072839833995600524984835279064239207610957536400094550567235260808699613944281015621450985058329897432315207259035838754871939445659863470834706850501558846985814024411244335770597075159097262103392539482764121798741046301827558914156302560413668457511359336119332653356041220221517406511637529940068112976766626633656136340376960450260697018444629285867330462309953016795533889114321582795525774820176261840107150584476535375285764080958863762942899937400811530233169400020845317659714052128745267794267228734349421155269590348475722721622081552574277435826754164600747933450209307481310616072302820640622764336163205681322108352805053692287876014757632513966138247218249682920682491085198100766742115077639228466844228675544752225321326620142244730412815484100667615089744216349090614600744226562962942443197073592895382440110477650795881667825823428200892350834474623693196844186388967035163098646719736927675762113738910581122663723305068715897423675248515337082166266764724141873026043128992731973794438582423909962438168221525254964704340480886065012441830856815019306318508782921146807101699979682863177092053990171312102850914048688805259402446090002133244716114792294127639337258868964022976518227919893648366952625409513251186492541916741005224554264683630576456002938504020053246088942191023264404019096007372167354870810215726991925816456424036050036581305943354865929437866427495035823792975903386146722807926325715959853303792242057298173407755954787721420125107722291727419539571749767852719742365910351654796080145025198280991808155303936279438383152651472810369335357082649559790582823757034737179893327727363375274115326400337831556492301862208140234019418139786166836852126472346972307134613936462974348465053628164646847941765444193654398139544469986908877917129649906957910992486192812051132081453575821232148449844013281253408039888357351537588928267798858137329779018391907607972593150826505388251233504374857758938120112325482334386149715156482669881610163378015929578256421462658078678189098007886387061907586844352162118211663975361342708931070704686884694318483422695717588427460859490788470186089298916774410577815364325518555330323392257498123014137917064008250176101671047740721596285751197137797713013626641626102865736430289598551490510122027527870559507930118948303595817078251787441151843552769957682139737705510867885226135212359043263277360623167781182299147737413395419852883966671541945881841684422806083330841952413149648308956236023749343050326928756949047067255283823446266261426480405032455711658015797164650233091301352994390725872244534223374965889900657781789532944880315063084687318262260863858133618967961268916711557565085584794046629206842733167121110027480314701237598545184781023121932932220672139890265895042771587373507411168167694718455996500495482592333501533180278620027314345214773218207519616464551702035641612155980590752181360665543725521457704497408008225277903567376143118276571281005055897648394474488396181662754405914913114946970088519826640125522861778394872874247806608683230980411329958708760375957397993213575438665866393640921438605545173918111512359956851169721573526343661534924614369247223926508741647320797299626614931071870600971891152167358486099088513717705733947230190571144419545427307667052543587343483123579202688906473860442003792458134231028614714860099016198653362768489069660940560975641320092592126967068160784596991878358666668790818166185692009739077669416902177852002602439985133937733313693590951977997106648103589607490909064655356622685752166541757257558378652445837377803752608268421814642268397941071003564664365795797711378235080956298857519398719064093269568677506030607890839056849855713896811810425402845288457020719344186326116886351980456547012468691282368193043614626237476209970881255119049793519647767814930072315544652638410484947760743402204323300863422417148433033261330451066045445841261922891996802212847772545888597886264624279665884356618582742029290351922075267851123641465722667401878276940358174477139348237522679504135480172470246366665147720513354592775685517556971852826758927627390896823198957679108199133602769452543640490216514408758715589789280829541872119847118483753919496819935569576371773721111658653580595496404703683629891936675303897596135426638102154808930452797907635362608882215121265986127644194225467836096946376406109366866631944206916883765716807488244898684233173558073845127197243664714028253663923025109870509783541582234846599305041933488853855515555716409909618708354467360241372245618496623177702885426835418191442819910241037310125109814266977377509427529996090647018906394104876915652355344845029452636815171258478855866334403163372656653407073116842446186853292183462965130247821732689061995538073922624193195110041164750893505164362148669302466738140802936003137364741907107704896069746033772208969713855992293625395106139674651828778886817546849078485284835177703172081437653970067116019908080034440956024723836738704772860831735729878887632462362121515976802829944105588057141726765120413918176326541365288325679793897246542474478819320537591986505270454275719037725247436834628082112552158486464652353966431742500013279234177162022150228482491436318907749451246983761738132252023643906976685520131824576892880275710670930444627543898207118742000787385728349622816277573645714636748571424116874486272128929439069009683086524584762061546720438554571510243744381755644949674302425832743932399689300830225738391792124278859946782830422411283073793273736616512902303310756788148149137616345633342505738975139620090876245360938201634626813442738714359979119587412181867325469162561326230982842317866284903957974958595374967370455101842685725669153984884488377939971072103505920358635684644197141011097558029351453208065042593268604492766544227682829318585505196755900970786148074468909433868835289885402674226836432767838701771361055914122930854193100863357331102732393381980355667644145882524115452793712121031003402389738491061092145053694570881411672227606796040303340003342518802837663892479867237773409837620238135517342050276058827696659705284633430566410091958101623747293988943179510900009114965848106175904874777877389740298024457071476750760721018940600485237447303867279924262337556847407285550338108811411429088006749292211967291808988543023429235768473197243479955924557204654292058643044663779898340952183323767821361369181242436916351434146524076188026788868113349090494872590829124185796856877091956191124475625616574158419072791799378262965401697532844232159746928921014249644514548287951378071155910845300163362177760664920046567269650245038857051897730099186929898312787957634547939572796828136091553741701690456113294632889225256611496592820164921805504978948698655569322653172473598189825949412743240398424870666869948865744952285931256117458541266333950303865956236422450627795084437834476230887202964645814988929383953180474999615650751911129335040208273835524401890540614394802302275002586898581268224512946666669370869180200053498394641088373888557272811986715002134090614081109642820571502910617109311455790541546222124172327445697514918910837659463721165978302792354284006653859940494772003847548454070147302491183845776011025522663634217365602544419378435176695929068731093261243526321986061523300236602232764737343108439912676574478409439380814253991475760358048481426175591835121953109595189356420612878573579427581012777377203201443167914327795227077982732177077623837852114174429300487965884562054960172076849541661619484374072480305948690792217645362357004184442771634745092485055675433317577048107256298529309966372595847523732264879990451459581730242344993957081879412836801279713896493035441560584300017417825897037063592154120210081703159799130540008209680065067678350249640184555206044856748174855708060990168184783649991189039763225989350639375560083308814427554845501041889987765894529214027369499855628900745847159053388780311520092370146999447556813052233313065993705769110168737673280953479368911415728769791971350540460640185471354475786333067422218351964007426532966348633856782158594771616792886974646182220678081212413914461788063956271202405671486256711278491154115639382583713347938302026471557370258220158451753614136546748727001861033542556909616905373240083747576102602860460601849027379936018138369140891534808981184703774684198737086418596784624580368264736500412282412762585079026142053073250611556314894926627842456584954575513349303104596712222540630838100941611088555198908473165848069258823690583950963023997267459535842879294770669070712020300805576238647946168864181862015591092285546694742061726228273303227045485023310922679997712755475952196848167890559632218667639434177752869717611617102695084027534279161866743317031863471044544288755807896391462788753736752545127272440879274768442134294950362510425910104944367551196286740121342032608296875501489433966192684911863409919362772123767367229567924248615695386886601303730517180036336935266504090065804008695554482079199467231754386651589187784711863455616332510333244162199797103231253678275162066686198218638442121442408634679642637135814236895216843561942178805303340933458479817824148022690953456299542742852470606893656653735658874429736486702104683150492931617981278265980008528003584323576955589069344310429664154353190553995809504741389554804893302354389638750271007083053630579636412997006006446479219260298961578565636361847886563158430203310683814165304331647215463597626684093358457413445241561699287739508297776662683781333024796150291490191867413024557451418070275651389054881765269273086370057581774047788348742608633107553738594493621823784158404994811833760891090277351780235602784704980061400518013259539544501253710462466866143993964848926921144212267567331067018934743345167894289431464011868872606930717904617304227116414693397257990813427374189295788528788512661905424585319294926870632985379942721483006260807567913444707438693009030678824594028279713285581246779620531699359370154263417935836270791890242851744317300256241690235119906564075633979997857142403092844575664437743990403911184726383987452999712998011884697291869081353931401398320083930471020482589746661814820196807154019618856769214910286672013573209020953771527158818319005003106159614758010134300644007520104621698597660314800072644775809015920896729300313871899607459202681129294144712117350909816415322429741153415832209447505177444029158474124519365829988774599674334763140322525501752141204389830644407490525888414046305872527256969002228293052843469477683901142587617913226078777922932626010027944057060434187224326497391833089673197073645106198634993407259023841439809969324541473901929826952304526610726188054375059074324772992274735156959024457890283321619891580547238873845219983337734126475573858842020851986157419907382016858473922469280462855976874061222396416597160056509019439578677889905868981417596976710601330423619076244797231800235368226402775902281060693911226915254450162883494919444928003288991631231676972650626483959290404769703741710729221660363730881436362863045945669399700179303056174814039926512413180623348925167922336813325455273204105055160007119158069866095731904230361166641406989838317582399346871102635266782343957776529988187355370599165857260341496015125077930888916542304486627928150708276817332052206196601419704459901282172654013457411670944103251975643743494793038412840027459078710848317325749852953006817204427175774785296331362863536391281428624319387097120180980870468871386427041452041303199345534250795262712772199762203676038428204654619028909217852742708529437436021866574273712355146622321377891894616630211747516210420279328487809874537132222186047388217751805396677361026744305178615978846772357880533673148387054060447506654042596238236093000838588171249642629985297912573808020732223186646948771808048217850679872993473565285864105376437069229308523481333172193898247438355098397666651462964319098978842095467987926329550314743602593087099817532012112786923858047908908304970285226432876931553142748032946776929945297990008288765733336483524050417924891827103592323586392422506099598753599252420707096172833652661950811841502230532749887971444900362111744000349974553730038859938468579019882846835569855430268320334839006927915098293711236928551509577940391623991885794899825963020710909609384924388874939809031243529504291907873663615833335331200370579476874879622805521283532233514853877446161070543783214208680661868209871919543386071002786488340304106284616826028676632595353792273080478437502143005399818265119787005523670811524654563260423347134253394967644484279534300689225957759693694525126757003579578705200361847461150558385623423813753955873060017134000129345938991695938597864196885141101885021064068946415285820327441414975549084491804140843625095780979314919759933246417607596079634091151952698888428182036064606292715571532648348573134055677092552921257098719525907052209285903561316277422377057940403278991175630141979188007920428806818776622923009196324447764149602335630674766702040704257987365557215018923295247673916702203093469170529885551565911061778474191491077875681084540782434754178915482685410751598956310291147781651578113189546833881383059952748248936306452735138837092381722463042975102122824610825948485896746201234438560598361516744808332293619141391983818177845726227281697101732022430583643805600810459796531155903366985572834563589125201560847006437924651366332187645492221984177224894858635401785949624830763801049319663769849904101056838182976698559279682902190522529735274965940344287360662273589530874080555890694598356781971159207676832151932950975554874050011359381404747791691911296897830527092273261470555673448802427706756711178167911006564189318743490110203669689175046297071019419093472477651966282959651559040583920268605817443903355956874619514459645553402953029210554564300084600916946262822197325723372347109854570431446769843722453845876328838795125460080812396282135929074515960954267083285279923506853587541914753392933635216876954714786132704987468130798848805346792243608205205097994058572268935301464810912741876257078444397835195117219214904135706544947734900648287507298047228446793861888722097802037756477874481850987950468608294876770422757161543972631404588763049037316753080625277787708058111807737508739615694319544585891877536863497944429216913744289257125577637798207957321735467698501028970641428927625804084828844288885277950215948776498842614524408999198130659039103225962094945503043341963199071761955834955881333265738732511127116773482787348278915136002437054309070292138962990395970023334968014078151193323545307106425290201407128263386370685446258857301640598210861744243989853675258562358357417171786030800499334396160783614646385086884808100680935945993653576707231923663195813465563725927707126811737808167043799778954076897491048625941218613052460015572228256378197132321187080075497372062141141418320331909057350415619830745328653937317914965450600351023815549055101983708143255541835576478881567916703022831465727474694435744446791174011301027479976357410063413907552954702673379035802351837470097015298543301380197208450258279398055223514958694637744770535374072015156913485427094128689375956342829206142850033642215645433654194720702733757883276901644923766693577917005657234384938895208366167712369623310833863351694480984933709444783331012216356181887562521710972070041408163324676681322159777665177498078238732058252559200913902986086607582965203955003934245325768828130953777280970265134478128295934231735614513425318035667336219844337788536170825585528236118502590139868642325844546662157770444249222250795511503457103370682022962970801101904901025735757372065004759033945574597694503972840667520783159737659722260173690437326605904808447374644203969668431905413672950491093521069142355587248372120082718341335716560441045009172662676966861144485212367072408604642350100291171591173164312727045441171421051105346665894838282818697352090638032604646798330669435082497797739424848394103401038693419211005140298515514630710842862846829291158978583356385052753937863528637915658744035638595958033377701495012969716364507032891949676196034182904899779999377071544439827457538762595823571085665050357429466019085452322374984673614789846941527244383507753680396200901229991637868295909780330606750130889903396006102302188393391169860970518132443168501363913950747615061870934379231014086045832942361827919301700693194411193529274995811098703082969687721334307584617284516362157921316272010956605370715116535996392808212769710636492309181854020354740137180101803868718919476609959611232526562899594258511546858926262362513791456212128744911367847974545303864864212786200247950395285628609381333167499004963138969747833048090915523409641170776445292128580500368721093597195686926053251052501848766160687917499506301488996600807521534221121010662884721382856543666354880434696161793065916148160358736657143715714730427615128212083050180642214719733428865271068171778647072769748782123316475702100364039423266157476745404896376786555330107763894210338161816739890200127556573699945282366068952531116476607045534007136895832297878857518537086859145101774308122690946881501472837289723562442149130272553887116775128182827232168413788659920553647733298632296832278954139933249296799910097895395843426732917039124955339361950976285033398566134722344758610925151174104799453260533520819919545013448960474489697892002207384246652601233848971450357243251493771798863603663510624237760387685457737380327334964961470407201942883969500038386763287343456345506432783443916203355753370503188927884102016800324682615020881156271272759658141030299594174371134975150976428465080778677765790544423767992083650473243576242723361458131941830598486265608185763116132060125560292981157107546622339792080001606449162895021961474510883768735605990172471867661272225901426659095022504353572977988639501805016419963906930253123766120570818784359756185061880245099079282867457853046439271027496260159832496017898054599026584673423265163595455890633560444629372422982727159225093563773255769874444316887539157507865216260374740387887759986311225107530660007825180541071450300208457631254094929596746157957752916403914715676813200993759120471551023000935721241620310344325912128647256577321183677436803212415157380500937266387940727659523552426506708632358613215980851975322413437519128470167081974786206157415649878004719275535665185918103489705744001524350144968122978395455399409858611366902256965807697568043519404910132741556662410086510423529665796059514543814707212934433155047320111839890846640364082812290689182527010076530906252195400819451398880934446733443147497113438898955406795259756484072236337509821313715247437847626457733494121092945612887603689329006416853960949084312814325964904255882745049594122015284836802894086668965255847095197841368330717597047444065912963275875349141788887460953849358794426688989261612344408141367154005097003006148731170038039851638597374758690656460871714209845034606894688876456037389644367981602522011341029168087907120270383110206581257933598295892545515338962676469771060698753043246782537783812729631821284405130723153406687767662983175610262516646051510443937037222494133230825512740247717534473722485902869135215270840419834237774653214556555556831935756238762153076851024959850887452971541155908958225657304149644578945261666433887482522098433367553679824941065485392280101076277504507399606619688589522725809250096129285532618078679021347102245078159281444968817448766541833746213477081110435976677283143592559135563798112391221451257999979664926570220252283271803472154114409751055801643980940587204986706756753104351907946638231882237296773612257136782639354035936948285486992867314721972483382250608584334440269080200042119989106401133121786165092924185282188968771592837175619380017076302457564260906603062670047937230513422552794656172113578802031020002421911899648222254679663960928427788304515755071196525608286767767955088177379216220307252038965361488243808079099883478378586979432975835142408838744848711894973531516360900358606688364437343507437106123623377016012443489969317656349119666852547657118697307766462072878411236121716604686445946636939552822269173481514106266932783133243316651779773702621910257592326193615018679553807435342736990234288662880197891947348342932186403157678493385356203233957958632553953994849109076214354377794856574249525710580758393364493826242928771805690945474591785275875289275052882823888866313023684170810326983866473016157099474142985186379418532183491130858795898464981818133933053922670023417986446663136398658983164428437267133399806008104331275287197841247923578131989737699412002013579232345435168422732429940155843227976522616538794572174046661350046972890138453590918819876646860557593128047449728488363719786005505223862768384311605844933858628600316482559573351408515030545880140414505959543029941812632537544323825508157093577689342282127628991406595019711131823201682614455784381132052493700297352862452041744010556162300289388582803328184067847302098500526847676442854116838147199248949501149949637779408349595821281897352283791810505049443932301149189263464942930192384979543116659117779910911134318518142271807721514251364443763370892097799106783077628164010796479181850475420323077552463472991314930507376853119162812426500219725049951908766404214940840591861346277200685286894412326765881848262951227033246255013785773579884412975713329208417424591072980079143722511462543435164741062306068875161337646658325589526241598053724427927491500345121912938894332375713165023187674191125117593272131079510896554318352363671181674547382209471126874267618248281928407310921214523737754264808907889096404992953256890840687994011553869026316050639696566859535313159740066998952590413862550341652132767339270289172053396109662058645814058088173161090378572234868920253729903786512108014844069499469838896072546916321901104372231069175291345371316132538026595696401033689685781046418259342563130718008372538598435496393578550455051611631041605610674347384426674948948893925267378771456649417209703056645895616589216230696266410263298865100345642876171525025216074826200411814105477063693842584685321979972292458342509489599558238714433011686366270819580518860223788592304547990932103453941972763288336784909728322632650389638098166354491220139795436004831992504170449501510297180469635050760859600191948822273467622239600325505219051232934586590054639339591681796195076173638521648388318819905010560106776785976901731799552022810002774407765029551521161044522078486205620257062336818771935708773284084398661287769397032718354161683215255464273501687633980607224977655767253911577151282645547615527146648406957984518524859785182851893523254657142294502051099926871751769830875188876425569866972743364819965585668774947508458183102909539000765549513597388126224053448735966976853919526560582848445998926446152351813098971685943179688177763948404502654976232023187650519208198430108620583846718760510213110394914431694990785064177264645479672189097321056264470284529318164401756292433722209881041380956621297423821680160384618802814130572781649935409032902456913505295869433254998648625099323763058335428776293476700641821347742127936022192375726710589969798339857131953676342546726260115645669549528789215171839264000991241511690563863067305981181414428338014817783143548586985719118708977322400611779268241717530857750232195082401984792592542047101119503557493180762401517303836977505693697516641060645592350502408189286320373349035326258632795607008517768198217563042781222693177095392231091828867936387657167161983541627476356693740375820823059360577516879194397250276819234834276324111978603357328888283502082983871796605080573685018178025004534998390189073405987208251096380124214592029731592132485839819134157974784114255005830407456890455694103526312227488611524760419087999599797719917973957240194299353421079301439954485201278497092386521276966704638483683814209816719169363644826086514121368596195446915811123011348975700379747630713132578722266578433898908040018196146252872849985232337234568277541691194085651556356798083315420771814581589808577818783407246552456616634633597209004368783094574470085138882076930181219557744457929913065248064202073251766569573104663415848411380145675924091004002204448912632409132033369364216377950245797078498483056299989006457145852041163052223915477825876372378116534411193297276046942880798536764086969079836479487788141954272618237493567065192777108456345898333454255074475799718591455644825375736700926000681247996949944161498789445608955737211346386765654495745305643806198759151199589473441384616267697898502097341232938354549067344571148753387923423440735285852812110540327427961582561476427127054496029747949110057891042298201916692227546400428842410865293831532573325745288317142284607555835531404723368641890675462285732023317696464931787987139031169247948729188396811932976007097219277357905378740847452199508472430215927835830713902832749988119083643068925584591728618713870912138550531420116453441329934397991091663130313686388538883296215496343791625833742527939937147909588409261032135870742271122844534034315992558021582476915959847028606736178617893163147360550821263050900640802004777957089592785637073361660518003904150119803800130955681107100810340465760538096960226976765619504670563317990204451050413680020030936670455919608520178892666485417391543990420451427894998919014025767500599060084572957391846180782451267264182005119233072118117758537440949259219360032359031432829911369681601191080651242079414445166909794020529986914504872589586301883838930161690868947297339204980105140948259680924672217790486863639420303528612746070280573278936897672427291993520615378924793983664602168725297468106371010747623890445679737887518465079328620228383635830115180855675656889370975023426185799081707697172126021250933785542263028417852121348801587864621834838273317315388664837765149331659264010533084966979878086451118581445761791530298626396755640886685127042045784750490241002889293723816696451732323015339350062493628357897027504058128426698940724791829728332148049269793172603793162453286139926539848944832178239822668883929027194089061290701949092561020879436982509107280525953475643164899934594587732492667882130152980751746498967271644848600039703913630293501900044658030817106167849445504536801729285923949013039046905039997807567932637322891559299646625181634938601497115387650260774865941556460441133903859697741684712239828879865241411344461744260774584844568438924628263693464966313053007050092402889599056970150844607746723892176598625320764339655153256693079323311730935019799598185776095633683588802555098482708299262543987317941184021995690393026257932411447394631124050124366122743862475223751422008215023403103449683899960658180444992833493841223709328075660378520000670802583565924365188671009243897156528722270193314944953616222794053115737431014926002385187053307198313976282615071159119367346444643066502364624081849707710268035214346134688632918725820531505681684433597802552501527624680923265590931468886954018434778558628931553487138631564598882129070059618392053499745685332899719111617630327940244912524830981098247262113539376560535449035328124961349928587534309013795869321073091423392995426665438744341357603734757401985201010858366918358208035681881335906079505425956568588625818805716190540390461405841879349259649372770568297013171600900471401404904526383053477856045000102971836641340008729221501416483446935282423246175077307166163056709408553919920679647459815227809390209434158304977939561170840221097527510120917426135683525250927288134922331978300468521560087292784976514274537019240054656921099589311436732266839170754143171428727837546913293888374028294261492719834357205318854405424952891553519152739122126249565299693092993991936757964470070993536329280441171257039501778426877887908846739475070501437159272802175241731858771490189643043774622192562671231061934340414586959631749201602167500306573617132990979423861136600474898872844661526862275161062936635321527506793507889516304017757496242279330808158481314280906031279157364756695599865165734013697784254569961340326314452439033563125488327458962318231811647943076634531117427788517871413216870012932610952463273094923389608784863440097438252753006845584604663619368109128825163658325235472750456850009474682172947881054944950532741435295824011569138051420434231642361951003881856764810186958484923985124346840746921406325594819469815885186910328603892797973878508044408641754079413797118194343797697974515225209105654949041802853448689713182719961619453009268908888719307930112517106730773106141144996492271595489308407313082951852815785013437481680616376605118983717586791978086987867108175598223593410632438382939615134265139827916613234901429986474165007867838942786647929801775401239384761530281135743682603395536473131275910355214594421858608914370071715869960570531965788547888655892692603924229977275904267018852142048802171033492491888710005357301253137956035631519607897803670114713694181671417121563512659314573455639155469779623851476252407803686784428077581240944531128253665226908600871705208043903422371153175871419651909959434711628936496371676960043217221454267477599402581406819579881187598162253269607003652393183344984823313504204580748277481980601377850608913477106822281410069880193784670122255768187701633991574144178919503919926049262090447674407989954821637665017949525265250583894777390618674396289717434894151046930261129968104931047310585826901846112956522331370254678482178785674826155230868935133065573128340820248986215917344658220715648995647151418899236425247179857242256170296624217488021471183365575288241038999838634439904492385814474857027686903182188278724000254163095299796299152833822236006318338815700417805323053919479605166353827460131986413565189856227288944899159600044055191649524915960343478284059243343230127899067402941649142932834608288183957391726820509867919803216429477857733110489217478216201964557332069941765091658386171733507615382641880052396604290914921978594033625686927835130077217311317713494060309030524884253486788522011235431129997559094849791179996191222030725992579691144782035612743188191624352233093202498601034221356471305231073170541331275907716510310078625170259423096146575640241687005342194195284738935481064373072772312380299028290782334630215245271219564362396699048176201684128314297613424878960914712007098210897579186735070810968437855826275990986642761604648664796465147424057144002881487506003265186389536071577722949841321675569361846741807703955526338054908704418918685221751971084608268339566169931858035673517411434426559272971928907207830212407847676450440735901892150933408160985250393055578618551599730541785081947472569463579273646816978031568205934038257095778064911174406671858083105762926332968231505994984452554084276028791065198839266710008999682153140125950991004791038216071829130176324759601787895144379237921133418753022508307754153886582422356235685335309907136687625624098649753799611997093875683065642632245075928279987135636782627188820900760044837814604224024664598442689245217459434003506010777655145878841021164435103070134069289070525493637153924970790239910533929149641817778960633783200321315828783178064582971932365953253635748904235114103631006895734335020052437335713630144743316969911642782728839070023791330117873037377334343731769222471321169014184380418419863618206543091524422739254723679913758517340503223138605822384494494892957275320096619094421839534478785785786921765067419256256830087045463504629136639044438435400309026488564706860644657898593454083430912436336888404361122123395892770503715723849436971050483776431432310420111344930067320536389988226774328539135480853291785053969972435279269039158270689734463434208698500819452759821663136586033941054766996184659977046205427849793370544105227116350825807369052261551558908742133878071462730256300390190084640310631461705448462859068738333664727804779628749745681981546097508386423983179217182954388871254575618476225591191420078725257836766858445914384349776747961439531239051315929906901970211110468016962362239552318059916582600606487256659305527093603020070657184326111990901828693179349411806925177460939360032584737377183411272509320315522408640755106358430523519882129121385730162089750639418727765029449883066111707932797416016509478777360752739659804298330482131195932600707052552824116930902484353915839920848860240371821520219409863057461395247532336458616812256952775619923649890375635963901669217603052915030809273977220477970281860807102116479018983413611517395188121916133141197078366810634476862941821388578442621092837140271599716745074675066571278241467132866060012242111713992357051583237820817146104787929751561126070585566029388490759715762419207074054448649917052207610512437833324500553454493180627225477364612642685919532251012395875380046707542464743393500401110619804599263472464344285340140871388141901408598244490467941411488672943468467788104224705654461012441768321618921256401533085600721229116699140281598640413558740868419782823560516000575453306305841000963119527765157074699189571150547339974356508164617299073622303003245363045690686999412989006786872433092598661824929305136661475424105868665609373978067993944363707514175451610784439510501034027502515958118699668686870944885279083578681190853992164385062443398464331890628487759897972175056728220670600437774970642569593824045353366972100697901390130879022064405227316592314450030408689377384273089424920472812674088051705086893501598424061300160788577686623005402679455464096552767594197548525097394904368456108555509686523706642211473825714984227083990343422458595742335217692860619784506540908164711094169115365156966772261006350009680590043274615130548648333077776483971769637493275115733756402719623141856402992984411165200184358692070206482439770054990893126580361221106669838178738074349464699110582158508135275309995768933373504522287060357895814103030294799182033797392752071829746111012124951731377630696588466315350056366652992288824330737346221743197494030339887583845685697415591214795247107883346417444716005910106040264876604486515708349403872640981955476274080539349136900668455130478115599558073203334731176915266643545163572657312368739975216760171934252273212881289834660859467496290807160918172381086348866556215732546425471812894537617688229145437022554642821318439946113151928181915385397232176442655698551802146163297273746639753357358795909296952552243955711570950758133493175806394694821385398169752274953173775534219169166306656918241976379756939480602538040642953747160752330494047673765463008901478280366409152044405049146272296102469483254131537621817651987083219336438776709507564108312038116943084435072225116596018782087629810745955997021362041363038442564800686338092797367078696464664996448325160132293934065161908864058241892056812364576681875641168169329912267865322594131082857056614823271924905819994434825371409134257055125378913095001239809865615395431776870842577054300037933879066325548383268489903235225320200318615869430144391962080095715776727039576368377615088888098247435423611489918500632282165192172709643415256416920079992368906196730342570167894479393105157056955616151164685106782634603398106871257384250421251876128784464602878430335044806405892976527691626795627442281149439110337137916703476792785178541358160647943316029516861530121220541304542939790567274370995423825794002315436797009278329807731121126155710796889198389492684459222477363561839203400040504180511923750530311052059668981542540951642126828798837815199050563027825754394339758266044697562245955262340057665511077029484870241573215650051952016895183497194029023721156290698630657425380702055859644341747060890542664644772435138392276479856051240940149025767636933584433874232771925032536132081472300441463960798353027399607516036289239433040970669887750679720388714689297414796083599149018053349912848994142283517279032612270747052561551044712128746983650400316078447308184254461779981061926113094015255259207845438430303204303580217495068738341341751247709564270755859155664843122798168508045476926388515129059032789254616276126027136839531209656584256467834130078133853929261237303990270105654595832869395708842214704657128533475525296922796829976359302346855914169389422433810667958374337077421354208418691236480891203731805571893518724638302224627624652645060628847744378211328083173609283899432195096269154580246073947863011511573294855576819982068960574974020715645119480993872522042040372488421369551762867689320673540471257509692702722409167515808872765926401121029504198685739515080414080974897194232441413241581520201585565857102519327854902469049489820017101082772494765451218652518149843697539268982127500528252245793072293142540560005634057238621119521927279909901627768502730857086717650846950278297502481603034813736612089876732663159747910442193306902317405649136425236738611847672379452708198180314421801494901509786529232999473046800349768171759737471650494385605195334162035608567455979472627840358750154019246867920015876220516079079585435641907941945547846539923877254013335445731032965718794986656734945476189795149072426169648246574196197677175657966759149149784191319837524430037099125074757997366512245584077526159337664917924511406782155913392063454521645172465362447746082718676905540377624227444028066148924351946235791439369636670237052685152226560336908893129181819693044075181333861635913677996677652394744539616284646924578052270861212578342426669147830223104348221277249023597365609635111804394650655819033760310290089117284661533804999966632554907215993288409356381099853275585807370172517080039604357518558329761200368546927088373154339228179308794014724510526754045430103697224475861734294034263793911353407326474791191033768553020652571271230027785526715708134174029133153046500643530295888143660605049312133010854591807841544877709231956346736006275893910842899040712500210539527241735480394360300602223219734442222227615164070232900854609978267286078831583045089764926717271810453882532654767129400599141869707893449155672573364764563693481126422304514056665368687593383389510314524657476426407914039312310377322278811248065459138413088062764950564714722275569919367179306539708971432338370748679460034462717057619239925498546424762293563373890840266168236178785732693820463164915600623473343540070418033012937978092577034239184545132232655476384116890858085755090297082733795887147933930254875553414946723330746942975768272957037705603495906931076183130735426913653790704455476044570315573327426856143177783442085698622846419391529890194960025621052016043046966880989093680238950665709608945263907957713530134129018458594640972835077158856312931787602556934623784188592172755254252753359378790764640340259491049115970684530483146357269004283377470328452486663491727826043187832072257174752144489080845472149634560927443262531309335129111774443958045144943305043105101510479478858838288222003500296254022832574743980294685188527667677993542192905881533301356544982529170648344359150755760640796029989301422411840197002694962855536077454411298642956224535074822023720889538048426445819696989769515599614788173396810501245430455906649840618355318650160118557877428037275672505889036302259248463424090375147817150712198509169677096804082742913532420904379235741055979428143722452070891607384515549424261060830097370380356028238253935410431168379645334609412367561932594234961036464526285009216753706207908010616103782933884162757708976000609203660537140668307512727346006824857867020404213189062303189799495470494273748349553476196163656639967876137406494726058117608228928558434519460442806444730431698632376719710888416928151294270903820005280941130847675767189117251343848770351953355646226313801871444284313436017031981743435256412703677549471056990848735480617662574266014215491968694637685408746575826961467413786188024897554593803935162760644829287048821107347888795729909788349223024427123396649562300017241761446632715431178976357922367072243458197194263311163023993424936060019444204267200311311741814241650254168381431581873220645957881324880976445945009546912199052197294186394222657240808081119591784450912814355999286977355670845015933983784536210254100733470272637321653020542760448571056594171653729632643205263529782116291128571997456927663264629125835479996721319866027673876306046752540439966925624011939434979265646185836452978318020591924023200333788158935580635452487268929056195859513002224273788589030431464478190774680044550095373631483373428046206444916081038122273485468694065028691151741131444919025518681518847637654047904834185452367625394705695251019858104567501612632775759337852580469205246657091085512286993128022997892499458946803733840994601734217355074229578323393460267222628437076611400985618318345749672182125928251924040801061011454001124981739350119573952082856365315524967111087934370986649764232135553330500751124174161130541928050477037776310961162526327681386331511448506590831015964287409585654125393707840398731604310847480713180590169525840956303073190442970880651338191793394452022056196334075127728658936924625678144491089856632495312090156708411589652132040457560824803777970104214152538816906329816756030678709711872706539964898162370225094395277390729125666633511328162314177833753157979195768373881474906828942104308677956987868135409004103843978108232589843941408592709079530267838427646384955596160632865798464681143280378844414097564548780618987160422685990785097436804123229622702756384691142631834836688961230557120746539049529799663111942276829377584487655366945976044069846836359924916361906281790278420067255167324504458856474428627235152030730420231318994346545651827031085109380504834613853543235155017190023938938838625993331339496610930731769357912963188690950179733932982175495248233491048811440986555866409408310418926146366769093766359840255461169971117293779597382976145339280595039706436712130512895330160595833372164612874387938161098317481592628079183185145604836340504685651970398648328488521129684584241298386450048176510050343608401056537392411415176266084640914377546812700081492179479242274537099353939721410026666334309417697691810285172560281301352300550512144154733573302223518348659856905911896773856078850012579947781585286323060197954506706914951724386189539346045020422939106094253960099212711342369094328429302679620333023313511107411714594322765327026426797143037891963714877929330677023558922837035658110145351549656931315129172218103110332223656289974484843662286581466789713658289767215771658993456893207696125234785715113440894724169175656897849625855799069682701428194202166062387375225410804106121302389920054873686518107691331337575423041293715316012159018479733452309068615621757465774721449215618469526225741270270824432147282517267429123045059307970888000574871605957389146944095035910202843896543620556617861562976490526606270299356914807667150458789821271974706251958064986531550814950394951092905540996394977262415869552798775971075013691898680151278984379629783717310654080813040529922604916347427373402904909661384410537244421794424441328359601954465635781984575887955927135452394053104273390868682599024136816996481621090174276227729969450030493549521292644253946618563858169968146180362937673961260135397692211028765559501403432730953702281983970363382925888506991043076772851688066263500746657452218045686909153394187242133763126502925229372682887068642348713925028277945721613825361608691287469815863473409915963704836418195620017027550157634229481509499788890400280921402772859095170721185418789456612275557348354946584017901792968824176908168126819729730271047563952762276399309975729699470360049760664911865400157219311998686445737376893578291248143574130788531718943412753251317800296768328818349327055500597749716896298405213688634161157251433702872694665374552918626086764693830602863020402804763963535607502310020006575797852181063570428023637472935875903723833304504202453262841966680297385487634010638136569358885870425227400562343494884928014590799118816020521603747255281666736751408605999546021113424226769879196408076223638750384595053109873594046282998973915697135166334994371307999010767286065391554636866188688940615234092164496677743260908790639217765612231894778184216950498217071424661045984339948745694912803503517687798261413133844399262169395324318834298046091866389672574775961922873892960706570067082719636496800085909412577525388408955407655086773442693252443212546492369439881355526936267358247200958117627868019175872334353221898034054299345491770755001590282258987477668025183016204876725379884939131093706229016535058776304565581973562391638373443963612310396872751165477674409514005808753208750436870511871882358384232099301688152878589561593250768939360311338199386628889914371723041050260619919589122219329987723890249969065675080187030323005877840029301763681579206514343267513095458973902589255321699759891043053046720856809756058790041671036185487211090089813175761231477952818612393009586616178994054255781551176530052885810746389733083309396295288344837335513626447660522168104082087989364567921090071279489462955355809927243707657296830793433118195453487365070347863113145744671974980705698764437177988891244130007234953324477811948428399048467954346798486625118020631463875258660579329003667694117432936290143356135705160574889600560143647578123251069430943893528449072225337204234957834101383786447694205836212715473014915126253723951004475125903135015591696250465266124399445342552669247698037368303745331155445612837360035071478491175195313727837873218916331255186960399342762222256230491603754196345115379485339805165609797511735261818280469998749809432271192597883936831430687140269193974652331295510900056486682220975335428511400322518967649070916869046697513112962273300539950276266425005267239225689310886078944912101499673845977546381932480392549495397228869991759323658474201725920475958370761781483463067141613560811734226107538304580075036251363607756935790366879761403559141533391868218712766895369525234230645301579994208527642543640952305135201429012888668436595677212990005194063895025813673446314990482591717800548513511508780117611841149227010111726788769663020006973331244763339447424361706457714395363327235988663476462602372247354024350368719951401849843230168683215138807545000859614809839117430810325760633685272775442750382802688809028023143233057278771152721771853720525692417814987802527259895710462997035043508487869456027327569167489346745995834562159309368252070926197960548561165004203538065872735857504231467740223876263365608859021508183653330759115410941657787182152722664916610962217064533443563886751362898502597695511261279936654555036211074770464006239365033050744911287945727756281266192615903702957234702261094110106025616946395792972360354803765730139493156891965621517710337478551558149789675184698917484658959446286195991907939326719535642474768715471239866655017055745850691036916631722538736448292384027683992228545447651720424028148095202507167635729642496663888142015248077504081535705800853359826048756480471660928145047988473800297897710601926131213709348472160244391957753642508792103764941020072547555338834453615660844345537540212752183800722273589730748025450950389729697523028893850779280121517741087150305275909764258683959511661835404130088087035204535933617174083382103583015054404434300784380519748096686361432193344906051153888205724473865660379183078216105108474277077526303941584188587344237331507974205296427540683116774234341099305490589359503647991028007091862111217988538218980065220779529515149671270149654712980969872860132867008357390355919505423205474295447347117289498932399013735232682981612713998698290059705437826721055076338289223670011608298713738864858202598116462773362277592851602384356181212416573717639520846756105315238097260862971179800401757978802868945838045932328728744654273929888436623928886313203274661797463005918652287685631249649541532482340797946952446425934354694795484419199391432626309681142996273262752273995235589352582640360103368651031903513693613109145338381444778870993714040548619341483113303968268110373910489114120338002327778891933820138431300308684367197170343829239690914932488343044542609060743368689584367628501404260236430540295693909612935829872263192173664070037616598987352212254155143651881199571050093633401147256347765242036927597689781729992177683419063322047008728059116500495857241066500743638262343520389855035534371594148401855286821943760690959311209072902839730507487739436926564081725744305257232334284761905966485696489833778773833027686073235431975322819976346514184275919451539402297233796189677724465557794819675788176850128070717220792539466486677723002230847868715122618466608176681882980472471949471063141590628068226129539678313608638477965183878593800211011859770375414012045406301584811106810734805810135383612004279928920548172989634525577524369822240297866567690741503391351716875251867666153780522383877185906580464206359253286670709180969251214335135829377839729672284003277669769435489331295356834207741666222615016484635002800168059806717156036522426039891346859204386923693768477784855320745871494195275749912894578721489377195516707328024041054853224533090596083912320919294839105198847949189275550413002875179904155364913740160048451004455207785968090028330390600691286798462025482900953562410016341935982929887120091996114175386681658991617291343806405479974202159713707683497271889360331358544458817190857992027496845919205558572027151572184516398652962600716675027733850931658970043668377106698941152461200058597003553449470999974919350801019234531507188162139041701551964096882720728362773111902555831544078410579659990515248220600297757489563755727419895669006848233666396962589049850765103414713044147103938412309802780767263969005962475264901864339718445288963662038494316888664412040548149804387625162930049528142838156878863300526977575846636298962507682486044817508645991844418464544168927585689066353050116895173840833529009530295668414080301023087193518606625122095303238194729075075654467597158130297996207342348936598565334866582373388325345881998797321229510778297169863359676119596101322804656424599877293046185154961661643309174090577744755521708584061269051920163221355593377840738595851904166950233798353138047926272493861320900195003034554578446448086331960991902456485287959388139943751952317336284133887529097576987389773037324718541356224356427923825021602683030905699611090423614277120934976826534097894567012570192679145272535240441276009873007234985503873780447666545927150229657613063981248520902622824557791650126999910471534118637536040748628859080277087694405281728170997790821681619553859567564163275616537701703557548981596550640134207597063367641085272052296052163801778461105683168526403856871934910689762837536274287794285314367413699018930792924868367502602418124918840075911552218786047412052306916921671512392794618458759928851535174420689666352957950646942623660857776017911653193964535802899609011406512478548280883257569873595424212407368175867066375270510929546314895562286135198785614189234304329970048981086437642572632178372523951356561826949657342848691842290909386166831980076687240005066601934680418193663345181165599397980257925329815543160694179456698500248028638823376018319161765000010018723414868788072200801278317750142759896683577356899543051208366684300715923623342847025837208642260062148378205113645864793269568185946682565760746505153330364816385715047770216283470122621464188205469678661293684647294842470631248337891407125570871103352835912657503049297958521776612642730845149775908087891158658788994526267682529755397550119212517235826161319019883985186627826143059532941966847969328542640567080741019909697658219008961291677661888219777678656535285789188861762916281871986065091712904006305833527031564352460001189239175542070302344094032983746851687746139643582093526594084461802634514051050850299573183808396113749773110166933012375478181072740239974321277237295907427474444613480595320517655046053040390634888287212721269614525414197249425189689738214668911605422726670464167365099451751338577440962408684212631511917798131977166313397184105399966909518313652705425320430616091566057864387932414693605086524753761683259194132974628388356588161065679920792019072163012021162824350475818063069050474388189151835044820981156048222967898734566529411753804189567760939597070641788892665978530496989956768061439878094563804239176233835376184160289430931084949768900575190806475853423743550301891630842405170061932062728337017518848049864142025087864161224918767206213411597676138404018874596991896336112797023633701154245317777457814570498470258824251550156197107883213671292751782790682400092406371337333569549203414527123288169301424449554158445869477139936803160926845546442147305924074169866934553678936990673042762055371531261131685308354868752553029913358904563770180268966508472851237844805356040270122738685490852027122286631240691256035065360626341714798124098518934475253957723128858675378877621305087439616638798047703276717083033862865066086666535061246194412766418688907570243050065446809519943237341640153191435398931117718408116314206658350606619143566415750621707875186165541201064243662574498290826540939581221517971824093340772790091634871566756950189947365690058522525638345369902904624826887083451435690101900117688936376283215142013820705854393940019535783247390942712104134260089394475244577953404225769203130585033321060578445697853540511788162690750664101151079617840930733573102506809404848663872451289717083242203637734233215074540099061618892587078622245181109047938042417952561006080151237650967585970859167894210240497307569166023713625695838267959673018444096214293054230141308704518932904952253053414952641696897186494196373478720056250810449073955254933500630129367218971437943730289322679038161904667820329280868101712673892264592528704950928936687758859804767401138624919132422105596471486162161619883605012936803758854261519974651369137553617906137813353901413170310457887912758877182853310120342753359022923630249933092899230347097245183225450275324131186982738495814682406278473247267699445238956988069528668278183498542219841345297369878145824637810607911681146616245579719030748212164913532017175134044651145621623092213115306525768161841964784755478594205262577054432500320277482351381280360284411932148511737483565125476386292272999368048813285262838548506351327582057455563921712924242311165360872246003949946473148702163569280715379524761992649801442351237386564899948549160708040466362780035724097994510959732726606490518946053549756492335862800823905543015672406128500760895015023609043319108565005027025607649555721235292752092999421252483182804333681339952547244871643845057142494026980272928691373076115893080114305665687939758625446682248910009313600926378840003198116564157045747337088148702838412533291696011375994427179386916570041187098547626534592893359574830723983084383561761778143457063584987676919675635341766378135786657525585027009598777072967795669920996738124032872624276814768621029623347241174284178603719461695958066828045591549176289995942329487026142223162566523880815005929716149944277881131567319722114803325654174112298615443323409366592915452554472676948447594800323489864252893216498219310359522042785364076716058931081576902741647843041965156674036020628589598308223973370187948611845843960958062079923513245420543868061622871620279399818731039054647812541413192878650616737128350405734717591517644313291790055617420018656900168963173724899445535208442855876331131382619394390732760541121941791554360701876186604214091041963197114911425112427738835334259764993961899807567722195262571364983832972743552819197588966720440970797584847185917964522125325780036689894287589700890772851696871475532486943503350743897941665672492340502576702456069094795824381326479354570530601566278151424498542414163036034788391646795805336942507350948016724385835497934863035015121504203609563456417989561510730759328245852319874421946296542058316669750368025622920558115886431101898338312174184288442237169101304886795316225739859373182411701527004121784189151572619821777753346738900710733162134879339097179200908037845737474405210754699580269603851993151081328975228653397394499830927223886464343424105842333411791737073650398080834590989038563893773844796908839944200479054016025480558649768404179703980597350728606662881357466444626665632230160261033350510063656211098840432162202497559447562069370684838645830316967845251933486486224846811662849691873594830135135975379819718342811227315373790187434477437675018257713424292629422493074228770894091981706249967045730179238820429910247897955518225062973274325121526727514026760687818935970988310989750852963367966684786570251847844281380202079449823265199608293265486812012497922255772462518986177835003674878319765004101507846844000499011983412401198790644524212943542080266978139424078334507888423506953341183520355447983789224129984619899155111438305626745858755263004301773421047751841357181683935740295801369476061116039510960619080744631324368732589094924159505930286953477039419761447937129071346487665537745779530976548794404417711043389435397808710749030024038792477202120315106862390584697602900360098067504490886021414706822324990948281221664087744308030772695890464208113448860680829957517576407642241942590064742962561006000352259581231644319735673411596949799867697241248253326812222906001190950763502025289811412458375415972921342120512919324459774275728540755154870167083987128139709352416913177397334741450000590551901290672507859455693418803286584448951166895054951778557282399157976989677852078151569201179234416163352554534250066216729943923434766407038432939438832096951685633880753239077211440684079359497028786445625860123072148469867479651079227869185794612363460334789090937090453196709024801185407047101972315151484460349384706174451848636543739899700097055901968818349573941956053888893871824470590883597398567747258952154430633321572423401429659530882295281311831229915233804763923351065659849821387597446377224647594871563187776485179932206305932285007426421924713318914131754808921148795151672650293597850961602158974129101887075266378628446205977299961281615981776282294292622786652878259970703522315996870965907998125378293375231396671988655610323964401578402304679011523290983909344114050536997389563107459020502584281306164840616695708918246967842161796766023082196981502335736318945554391404606086149503692469049672925850306749584394275819482788367802565834007386899245693822964335119870485938141865818599212279870196543338026796298547428546165814609413843069822109609890644348461889463607408876470643359233496832363712665415882518687073727422886958433846147574078909265746021685893915161880464934756824733776769543404159941043543273738082154811555627870497019686498028472362541964761290596104028384583305633760343209958442381926403715099716213981739865762148082496254100080567771537532765752825157832672977941766216550029848249111762816035568094553830848447472929463657461786294177324779636724720627293779634430505708700142140968932677587185024382456850186631689851632539264819617586837471500685683703844983744481445238116315362659134957395296021781528759284947722376553300684310246558877945791936213777908014393605308151237185774179352428407913097113028996284993240572155480732699223667188132907005544255977876578921101879920929672882415797058497215535816933166830684319216707159282821577261422443319240880587933758801990646887701209712954351541109523785929122353608487689291765538977292855620332608865541805499747080990957460031132913262926504156043508079408759201161022306361932820644771191372371577105703039833625452641099551360857339412709194070077350077501128516838334393645988446744410265838929683901860152289416828374258857865424394564530578104695127088496751123808731203348826957177340728495791587803019893398276326101704122947864588948755006694954613991838807157677020472190863071454090899971712505639813177846405430975489697365512891850564080709307135957056819211529637015679524855188242948065315903163463780609554624380803717448514327729766709487058222134104627743214218159544107020137938592899634158574684268087545892529300674776008125627022765700992099841072962692954744597527975121741118990050124024797988188824000337522146268869271768196955190044611863628325274018340662777371940688937116557594571383679488778249228836972698728219595446279676197384781020053094724394338831958356364516414440876356816681116794090878575727116386577403775162012357894065121000533314587715629325137467576743968735001147973298021975440779579290813744541762171029589840848003328879396367427210967044652844472969546424508966549092653340579743734298996956328290652781778513994158577614416425303194976962072414183746464837034163081617327762926950692632329444772043677671326028322526490648447332105439759718706357588300446115419577392396850309923074495858550580349615213836254677967227760828491568510260077890980525297276852384374651958250211271490575876828539287176553208425986857538200110559032645337568144785987214411841638786057092340108619871810377641731928426372878782853148737919207011174528094802500653900369674784991496789556616811562355614623937957237710643534703852842334805022885136131455109516325466678601220347783073870213106094337446353641403832020578210309413723122101420762570124966781681872545194198432597007895778807869251388778142510951549418752484745017305469702128809146113591781989376150566761580400774131781959633698399101025460870614117084533807220393960147172629878522692169179191837909100039643179729231763846476225320931524782515459482326481159962556349536031290240376025550375844804034477743988639664418302348690343179158421887649932436067931811313320986221028332667551258088231546259964390722234179786730802380821705356000822429356261727801801270364715567358950752212301484506981335648047916315376889324800747661713475137704952639825669171865154659885241491746510208769379923404124191115533432864677202927026871445216633287033221360375026943778533619037921531992023689284100175506209717084467529803185299550979814683238527523727271297707899579201360440208200730455425386017490243353494110447487213675448346780477470824125607829209797833986523243183285353283805551583209284648446963489591415574302921505419984950663283708973251674192543158916444999624745837118389868132229830427787461751510801014572435687037034116636706499670745400546684669969627456799306013667736043700350904742148170034707357667052398962471673917708149840997863898383279023160389543224711587236365598823207758124383365152593644330108582898905443660487801067670852078621993681337953042297396794645348247513052171276934322353888356811361167294303219112192056080168797021063720986435795149184986550479030520488276391955057465655840357926812417809803998165109130003951392732933136217236534180207104504474049763526727761235073545342359781888738370821790492178679210086679559104658745568407479754713794501599717234785886345926583725680679069499486896091776877657657734803979383537713077790850321081412995663841669442468093112296944934553040052375743738709357744971377803304896429486815434970190808187943366292151545192976586339806492929839258012133326266798323023401217897129021902051862910986259402534010103423607750082187622134216313840896685190861622365680455248355848588280356917818625329837076100717105453118533265021683680365984963637348130526632864736933238875231957280453374308469639746144024727947129749032898289078131849468370773681758831861235006402736711804317487514133944955029787930693062929108099293136105656024640391961471667478332029304619407673352510106569697486303642593714125325956156042087601424822135930009647058072734431419383346420691870696154255507716471494557718560232979270696854742569056662898731950879936870761945104858235491916340554636248515609349803817228294480228965308849423412272091545450012962175693832956206687542754395417357720539764610204614110933985361755120724558846505182762969765804801495551985541326766517233231044856014907658930052661798931722997448425050457479519299172738817669641473391556294988579364850404850622624253536551078465503376306864924608297940376766355717167379380879343215027409166307642724730447158783159206986318300709711588888576677083453221885664328435405131070844498485236891977948918250922056272114394776335908773459774418615431036766038226270330863399218807182297927864292995519703890492070784888447418246893609593267639019275035447004603357976597134880859226022531188188497091581129373382965063525164549632411463102588431262922196322700378670318964736502605288587655077352247186936617412908933117395329420736886198524846210988915673411969809700194483373182719327126091325551013051386476140613202253610342645460099504314901187958307762679802628438633435892936819696271080099619327598357056873466322433144191632033170980460517975175612956480913733511573247387902275612316439943198465935500558702439189568570350033858969127054847496241094856249157171458884538221497670222805579388167813306632272806628475215203911469149162609183420636860903466764726567460362525701543522569845047681815931007442324470313538258452820226792284876997984751101294781556092427458982503481989189101436194953095982854001643936332424829543102776436832613841916796385006096325676996430424872841932069062067451820051384124668645609465550742654096259251411700851864651522103035369786052601922305766243757914011775145461251505610804274840635259373033063399367312158399528034955233759440844930101601127469805907228283526488917814099518706144647101379201365711205785278393867310414631521021940224250872469666660532006470352350896708059905471307637188681755627651440821001205253932510587441609703515778485224696689376040204949394003024409641339668351460079142190728825549110681092930915810957339365063977300314201208816275207942125206791385739233808410024024391327131591127748736416651669099255228869219121583641498448283575173775309121710226798827355970389944125104185096464866693593137022619516478452771336065257666490887993136523981430370188094410502836337227916509955101742946520230256466564735452205259486668796003395789228066077980355028112899486351213304496231191820014627282372716612386541111846750139763482117224142051605172647242167916240604342061777666013678153052355304461344583357065279197550978520649460551984454246524398696213047612814459825818319105437859356814047570330115230118855871907133981381251284939437574254792043577277401165875843914310817405968438105979511365762726356785315444672002759941854132339719730068104328682111324899401467697239299029431137680658872962342748611945338105987242580696782899532631623141485426276889659020062179152579242538745154861481026975009399985609684792613418604556526740517400528156877042562116708922409489734053774167615995880661041773044403530273917577684329078539032888760909640922932017908698029216479443415180227136356681330540747291184338557079296744958085397051051755833772952964401530683886601853346797474902137490254610812038250377027695521669016015276847562284646365809798433736130750287301657817196468167686708498220336564527890132040000504633564475404932631564574400004798603348456414875907189396915077463232664584765239528686726785211201270156008333616037373054275456356933888010084942678521674826365655806709705226260283174753320825395257174295893365873686367168333056430538803604653286334227067740224126243140768664726465826388415151640627103455773646438838204295789288183359700163022731533600069781075614491340513489404926671227887766936242860751024423516668596725667765773156771929095048346871314332515979042529961621016427787644015170188832919163951822177878190571035087347255804236052040931466459697064002113319905173313839364099791632865561538096731686816752988239065031221965121190642013061238644015355491705132313919853112484758098850604812038224737096044993476402142492288907888780204325345629038331739050334945053099523911993929419019529021368219910942767094770839591180111734448940023499255370201203895454742978832211521217785764931303315456704928471922826761254267701833925881824828252495320721450245768868683334050359225832480375785734673053221433873798994075477199218442524524373490245921376203049249978256925015167089554179797131258027335504583837129800628218270832558323101779037397056162103820952530605039362238099291611438684055456713880953339306036761451635229866760779405878058130720679680641631933978388408452028148331506533781236162398720599514744264780236686542641007100591565511401813389609399575128939136717041277385130754669634223823805112775229806250291814120102374786023174612042353027087987220710682065824324062024699808159809514089321599636532870449198843003680897314616775444190669715465718931993212043730636347032818763041170944281889185593364921699542799211689574128785722050997251452150282933182461768647387074571382011258001352486247395217218659041088413124196102259023983619012524099921412687150989358179719572503296859819240004567568293846036181016666321371785578111741302953788479753013572158497015913185379717616649662505039153046400561231570134762359751041846789229785659419115329787153842421837548101670499769206552235352673941170568847425924667862218029869058648167459965191765035431760050273937988397268915424325750190449231771194451359313363572739152627899635632409855065286685387540633344761366487345078547566091285947499261313991332913673417590395451363964358945005064465565002486164942083870809825733335668517148904144480465885190293805758615969648459067831556806243830375429698889339690699786629586481717901646606273728482987926411050843060783148154179450636602778347642660640445192554604349175609360415428802234635132369293149532077396514224563981997431298109619260097945822163988642496703192123968662069423494802990717184297490196341513354915396716420033641878084625271576621629474820131151729473995243920766788292834696538823071334761291635389635844239497785824573658248501363646053035961618408819314217374834168250376516691053890615718457170295136742890994772733859150964055578394892513988805820765138386791419128144763729074521069951144407735410407319356748782359906362505839895400938115000725525443938685637026472107276115984394084583111148320720046031638713513280449993931709524678208430411746778824397381588508568377091195707924755867366760665163215264225310320277537498527481619999141636630210034580545910523253659433985242646400707165437501746163797492122159517539124869628934001492148530555934583257928017098221850881405319928107402656002024869082816202007946177763162753343083362240501466922385051488603056736009008459914992832923869137406351181196223975598790031435012123301899918292140190497321104069561078369227291095963924236822962950261615504483638338535266406498622010766552214428028124439742674707391100056241191009924578796955938775679772885441807738322155694990938603761301603711730028099988403163997934742285415565810586707671669749524441519753594726370871133890083170348949254063052725244405241080617130801683784920316185985695044084438177663929501307426473319900204920743200921184476322926299349476265894789667314227741718100564056807074236655219951356062109047506275108971483471121313242474048155815135213245401499211471398330672107224679239115113182518200608338963829871754870144511741983671955141154315310873990526387796078401349340427770765439990486988181399397960756010732897695378337821251335626987650364363107771690154625372047915637968757362454564169410766644836186806516148318333485418882849594990995018699397595697511349572373575883066608041714621277554579567470603077914601705418266217527689740101288150333444183769625889801915007748349765598129834887326440351653261346141922931914979177799342674721294096028975145117806577078092445434641219492138191249239334100673123957902166526156738798468603019278998977462888799116400782599787106228477491750179204504747415740495760718779098888885677372590588969592668997771485084594677215568198434469812151441852163308654432115388477307701418299880457491497842202687250428519673828019955579965656676496727655059845944672808628430414821110414730763357609739015763238228153174186380732511237198616710294103087676495507724894458323595613064390452327766226506968800605972991049397497090342053709630690637826077010026664270378819210575425501915629162730818707059332198000382356852679497444696196648719834224955082798253725303665423150391786451055800538310825232882315435319817047959779388544548081183491892338945445860781995988464295446520447123225839237788081934131507222022900545455049497415283970376778907271548836488555626702294529412115430624174229474628659769520954823324559258184544313644388521330356190090390529187892346776612923435684649487917126130816071564708141407952227402807819887426089495125242467153082596877064703240204468027000991672494572010214338444190158131274812032036708634057489334133006059853530942131435839044211608531482187856438879765593586327988426245405822473425771856976125304021024047495381033036323073866838827777366242187997877465073183935258263245425709140886089918983683031108885584951463030086025434111123376518686631536780017969737347177856492505859494241257878570950950954142577545147970520933266630543221442673796770813159456892699725668850257177326379984745663363248195738938487531030555161427735380305690770607010671722966210471868902485015000626787465154024705142285161030343382917473584002932180332909606797012030922106463141476907525247727848934254255911982858649167618240592745969454788734442117796464871451666536610624039762406944292236266994197813264614438904101289436389088684558220758733092605646064090456822560776542164348874501744524341493300994666764357615979791533886689459512304204501004025738897809819428951364159828168937323423794406880869030035679771141779690786033052094638858267368126597511791929316101965784827189549542997999603255695550588349955573050832259003960525990721156717409627551219464523576113001856431516966024039691036787752877717940848495847337531596609761390646136244092102014075085033727366559231183607421677264968444870916719173512688438404964897990393609343481999018478328021684343868080914788775124665510347352145853165842354450898508190264787551727370687667594304566090961207837477744653286590382035175287404772060632891961524406343228687533125998083060066669373559691919196795743889310746202953623712566673351951489163945037724382521590347512052187165355884941489621469238583680969878084005223263011744434706462305931541292102864204947696350723026761095965345407334365523599078170547820101619843810669048398395391690187449477235452058416507048788287978425407772376430367245834369650439486805875877048515398999791800260739875946749689403848226672599999670967970322477149963223109593874981184357185487706389646866400721033855554426586446622107801166807134173698565330590507024651047969890176630478181461143089412822297422324025419947719949339759334467388284962248232981489690408201166947597205087553686823925337971878160177256887691305403570556176221327675824516154501027092258299818793354197730080193861233560208326249907365549182945011872274237910580328900830723209993363710263260486926099361694155597556002220812005618020230316830013737178808822027246241350103745690468293282253768624100803410020795542266622094144709764497031500067567610541378962669103162816094284526882284701319029826700113506746826731283568957867918796808586403393106431578516812345398544269407257302511150215719894911574944461186869532315312882932500761785195830114302213484777397372733659970688626132540409412406061591853167335638814465864354809739125519550594662733743412262474631673875585297586896525768359150276402562506472238206909366771841506186035475256722164969857022513371478648138536851081227017671184106553071948432580766921710736343443520933629215368784656141573647637518628703951484313094912202148052231371619849964367637674704876264837453972015606887506035720438187588415137046131420657349412690068260414026009982924717596389993735189209019764331638561148783475757101492439299575641119419017772887688400782703668056838654681859191906323145420417146393526946691917926890875474766961208755845101906858485780103119700166806422062794206504060025737035757121687767979541780599573003532910604148435895091827096343948231191499055608845975178077556586180529728980825904509209950507008852171284095523474186196776340734125682402333328606938186195217738192625114618041592530097921658616035600893729723104346955819282752885706146699333939376308822099652196997232728963639686330930881366111319093256216021510945042537697248373253653315232971128951377553442287034721097523878401717204597702131133048674474980576269481011197402319896689761808938019362808867074026590809525252174625359213229959856557788432908637208743466413575352859877916715513718733988305172653871421584156565781555872487405889363023248235852337469292768234349089026250136066003903064830637277942238955236792287200977567914944618728047455577167681025776627886871021425087639089305342126765729401456058844563907062974343237888388836499767264211129401044810634923272072543979127932864429255385049334561394460399766619902590422763164536565013803419358247332498645414728038844662528217235608773152762168275108451219735114064586789406781831356852348430001043408884829446015068478464514177857010929807263571030889840946880298133505716853418361598246212467408195856143741727817671081850677269945656083462936396214075304965347890531137560121908571447572128332220075578762956429144990756615071468858522341872569567012973219953710389748145801226652614619720385055833723466936128588979607944917544627783488794640992818414688556044409840155022992349926731846268820445502869334622231293810340285535778337021897165100386644143867144427670942417229638996780132725265642126087480509823602383448262399428714574176912423371537804512443175850171221335984684909817827563574931908503983908716662777487175468956596400517338009355402879799753125817807433829956901445714721017812358154036049843587690971322650178465050003851401744239981436107120608583696975298603672000937008067510192046333629307212122083680070626039951295557331867068703221130862902701766531482198033364322408360884772163474494224626628032798001789832548056469855873648682884310853763979106876494173040233695530057671265376726587012982904674729929170859402913014304423180893466781242832273008023984654524977663356755364673662073832831121588696340144580515439971175905152073459803125605744882075049525738979252430754985949127603153001124903227567089604893987495094151652928221053970253963151113012135251611896775998217010338051894240786393526138470094851082735262482716847303009433806824175877112291884664091544733322824411380894580186789536160145021412137249022930773270753445873706538024744030441888277434875940860931237055247762298080369506658794652837070430801703083247258137518278412884246545663365399736869076221065423206015486528612422178332896599350884994206058623546741256750950691330706047180826474478665129204462876859197111781763257494849515455325563756131527076277956660896072436132326064845168454307653638226205100893627154232615251063947533879964085824050792414847700116250301715305331619409868966277156053203997367402119849433343221326627238152694686636499702182866927244484066820804399242695394013992910170535372161385129044161887892305066220464319503380793398563128101843366975401818619168765871672600753932482764966389770979693413193850707555880264288660020811766049457395755862799967697746994126919898999902348845837621128778068207070938297469834028805692895893726003178061931577658964802535752946417477219980824926935725734237086425154827826983731000195088865946517285299444045050708313697295295229510809330149835401915832003116692926551616815515621834012854229008497939482040697052639073417441779353968083349841587066310054558984995993822441766958215053197389851214476195848127450156364521705389990172200703390304740650133826385619321389279412479994862433424006844248687546067797382360929564426688545840421770978529219257742311119678539624903701905574500375818672547819827409483413977120393027475604080984283288037084317288757765005882030831854411880838085971332144872206129714707418704059432722276572208406729238970543552145116726793790314376482702300674260784718318233618387593425395610538305613713605659406128709538401415884429684397106922142308805154625089178172937852544797021921923620545549048034512288336175193029509049740234313637408570992600612956762692183489172095892428014629065357198891332216223606078258167751876669208203013777975206169788846725033023367116322098881629317514954862772276078674590668311240079274326270933717060604647234468026294734510138692868394924515962307574561271044408610344916455119547705879950035157029754885248568244536007842887512278411218119655939261663174829008506206961055309527316925898603840634010690647079278567669470975431643957023889210413339350298752351215649369711929964620268107455653898951870507713568524803948283889108878110116257367774723220118531232628884902668052715600206854070403179743958061066612264735204056647835471335537208383548057043176100079145831395953167357501430404398054910477725228261840465323890786206662454634463133393519373019643877309197148619235074891189791214756607968674683065011573402468230862913582799562997505899796565910514177608334234352875597730159549205682107759987146558076119184628867401085857475768612213623843325137782302240701617241339820432047958242700930805670206342573497813118377654097424926691101021856027903906836976805148907684451150601056944249432266789462454736347044281598745530239706162620602351767804306802692217990776666685773546729464701344541666698000844299341606374098740702557160923627508109583041123907121358264690969270345883156928466686060652135701248935539085278751500888295524696982602154087808776397920903490836883986469758828502904966079564334194514563015901329308546757259572049621129244694161675794314059255201083221829740813865920683682571775765008568396856316369167565900736755114102684158407898595623334859062521499599823814962846769242046995994690777492386604205899570598372336745632534199381899339385926250701049980700773077756099123832210072632420235857143282103878447544322773721316422098070840204375549551819799671765382963195246136154182413414599701173512576626693499593586759914869614521295250722452972558188004855023218645899568083920508999830886290045066531073797948148868575203717715657805241886244033534842965052772835145708751409586920269690416693725353415067624414258908924061310207482628239220222864142833013896934080069970534698219702220548343400339170238236818457638983825395379005718119357754757785279265258372052654453100362517277876505117549893665522442068295136306996207991388554638077383211846952526098751132412523001115460029413772519353805569034189094541841948667932158004344818163824548119986040233606817561216286877323936422853465515426099540745229210989911764700353830925395247335371896384098697653796155269612315113035020160424123490975763453943459933813271206389099236971787386710176680119957960272686376025605004838934787268686818122574906803380909206111633924472048070882390197104930424990118675747358880416673167681193228447386203738549147107601710933357227559049292488879728928752800583376765642780251680578316657527287125791870303495474351979590111007723406158012445700557000952281776288940423057310855050281420657146620443834697120639531749786592869109770160959952702029650597082963796783724076476263509863612372376956713508561459843403907890335417971910898727631881125954772386414788608451441334315905762662985383971120931092403622458402674713892768033519821511406686609226668214600631192297406840848809412319661313775502347146126144961695911683678727926725055665323714273164617029485770934441100760264216362580033918349522500038116259706861538987176160533937591597973505783640042433717192939812139796106859311658986596144620411422138960195457873888570825601788688562602123767233484492124450740319700295491577194217668668112284534963329793059342643588329153404012857402325504569647045781642966286981983474585134510697895861367300693555016414358057069030530193282400088453055683674287818349867212777024640197059722271707249944433943924933810346461342121101476828162092846277010139531314141676581900300324258489781017611723461553638026194393615379759733953239943316463171266727567180310121210688995636000965689546719853622845325241674114487512031324745553061810251248983189918247362712224262513782940089615921278365939953315081896248713808581701888390874391359848241950132426936720291752417689041279738679018586967194182769451748486755860067090732570444107785737628824032589891659557069361208848375964477824477176081350999402230085608306114077557565278945780373410327320255263095385516056231260344379587160968823169370074177457857768951514551825258807860084448108860917476147586217987581762978151786890622611926012756775868315390423770846850916205019571375350037773619395715234528310883422776682628214367065974047830870813176031187473082134994076091743776781395449993347059181702736380587849519097718321483085767239644978971378684734595033500190739083721095329454456997187019401165500844780929759000324569534904086106661134094864085714441692771135359653026119121738774892814886840956465864637416408641195879067714216311982403038733749143963202892542093793197385659288958679874673047943535004267795923866061888630951542009136190647361692258009194106670779575925791726918795081904711190193843896486902358706671765987996296545449712662728091496124928215741965396778872328614725455092403292522988909746643646299420154411003542171879703647754748318260783665025219756382385929976867517590784628281119810364055294133837646155037409904192845026357462058595026490622291014366935553909375355720958959725846474361034463262877671699885335362727192876244590149368400793918373391992424290770101280483377524170033866556967301876913053841726139795488464822183948214395819187443717082604822360334100807873112622171332302912531315332600347574264253661564591618445019299063153152326661209308073702580741631112561645311552396891390825522964334241023074272674877996206507461067453603415400557797725138247677575482021671589241434359730659371605666084025349789982836595155717182810453107342561736179641727077832582296664208113094741990574231866201708946500955147242400170814545105382629544061135144513341802445303566608454157005427294239665392168236421580859258282525425990478810112619246629342909829222209542043697679343152232612894079790932322081068600155308053329143249825319522349571720685074112099942067461582251882536323500298560591641408402160950399344232898716640499393248246073022909174603353643552486596329812396372256833584329794501496214910785713684266421268556024132368196267930534293501978805988854956694038402469919537078995513689756831729474324119899221394938408290979902071873620212771213650565012882868645976278808278615627265604086253129726586437940909619853865570490267052376585296711428639689266087641445932819583876262826859034289640110089644952735110043010952571553650881875209107072552749866857449314641155768798855911567723802596009343469768013785010956811444465728816888770808445218174650581275450667688496812192985359480752883507403396195203642729261885076301068486115777249222561563869652127083878133382930860485703116954434735339923396392750304889192641915069177439116098883034765053782295492765261822345944558732000128135229040343963245048798029748527211383657517521453617715206079118661504025040998893683493618347774330379908578326259451706016424348841307786839911440789125984343472983946161639739870324303390914199425877752454383372622964054521132168567721098233965141154822958752419237270631937121978000232367057013749666880680470566479418520512542692597764699023110501137576604624545238759416047129167236998509096489789950811372353985903010393087786643406596233601301590295935645900957859189039697943313086179400075400660254694360951687043787525191982868313295605121363601272805929695202016439542349112115100306093002423795941401829505369529548094023560503943084756352895085859643949070495708025100439480897250650938918703410404499073704146822409197508158479865423307897711158504795410810145602836935746883468337851433642229764934399542343177606237244171925982033361343853995630673618834534287063102954126284251724425434925009987793573425435809706484574607537062387167939806178208974553110043249017012488867548241654372085672597893653498188962196260447904488407397264834793413388575135459476390189468251687875096826558144635186301133026769324216281766006929805383858916283911000819796377578944392152623037357891862567507320711480076045576420531551927935223899913456511655607219933534486092408012476889613133622321674896212097146277953638403256536763136037949488619138346571839264548346937361131340181813209080667643733724284665293359703078770514405763581721898554410269262379984358507000847577229324101267463043431466183745904897306267014297174568516193429445096485111649066830267079436316199452928796938726049437932847172089506784902939594673897654590257625407440621701867562071264320486855589410105514878476865978302740205550174348468720362228779435921031469538099199382238460246484566187264303526489538509667863236033726549551674746221118659904959900318781557413996348296908021871846245851292487969250828812447646610301062256092149605294360343293071044542607244147380826019175956800746557177067530720511929609754000969444865757937174887707172374760610582116026853029889701851093146932342725489164071969679152231428024068683309211651058883884328613354999011170883861220915970682899476239726879679593931652681709917458713011591045517689606341085338104554495502330145713179731495732602668502512229569531167385724821700929187860190076664235701907977952823446069546349241399571657613531261836296469623106639899536637585653181576021465784689228803568161754962718599347909800062376110182435456093830991016899551481199108999801838616652240619256997848390493293382738431167173989687943484250083219113688778219385689272945934323057652060552718736533842460693072195023261488669047068969968500054341940505435233829233321678074460537925644860196564388055820759324934737637953915268393940155348026230564680791683903992359663628829162086024206183514844915977268859168917013126342046582911746537485862339509719030851311492462195040467365092437327639469854381966431043260537696344306808342009265880868261720836181980505313475435036155530740849465918209015096527827388733686162032812619201151262691328155161485832661856081100720708532569655955572258772944033926111509283016164621700688595570467817060414823033552362599837357885302247025148770717167521361831422576572760264427926832273638387134915281706573010602042765882868902835799717989571187523124276263569658495557042763931771412505400917666437497212626719712579704054962318875105442875908836511991660872420850595682829999570211511691263460018118224605155893685018813113130892333136549934603373310952896037894116872221071085429784339495250154573630333285299275686907516271645600123708168635472159598848953710989164789248118156557816833934462559423760541090324309202580891540982689104580982010084953800506398718475546965121976778391693884487122492103078015099287050245680936395123256192555566514535328736014884687954594816394436500204728505757878981397398788919165397527009952748805209991797940096514042892850465407620659064276960019254470405444199887121376306081994135924891438850740972189999985888195694795630791526663511749356097797654412154284653361171382748526483188712848624331678734921279395956000293874029501974750176000071777308107899221583653180665279816334973042245782523769205701632089279885418202711693018311598899615444245148696278241008425333214810118754677792828481008210681501960614812645415094738551539737005744691002226447269016889829223812779712759278543747981285038918092480736548637519897838119839805923033558622819028991622818663557224706087864808810343043423214607346899446563964639432821181626491615026338848230461107195055453020711418393442955623431539579723829398719009651310395999657850914045687883061600931753355488083572602730731791104684179913980565422402128063570945280723875219432087484543206172717286324237322185280423991062242085699605480166781948156294001872779913799591453081528549129401940271279923768623121425324136806760371059672381929761202365090546931759553239427120090340159478416335341920429259526735087260230567570753968101414565147531766172548958431063076002677161720613459124281880377198012133742836202976589361404753874978760669711173987757491209226479467823222884790435525551027029192009035673803341290672731136008890422791231798205656894349251451806627073514507493063808297264271562480079626540225592154158352224940847518060646736649040064601687294069306888455986902290088621796446417507976785934591124650491978817384400679776359170113654515306283077074717666396667128882968003132421031461944193771999435439827095354353797034676618864808789479090551415850519391330953753075955242265133659555534129099692277506658420218296892769858827869689571740858190863327040895505268138519392835796305910272032904850577798304027256510829584218433176983219562777920290428348533218859881898497872057646761807095086514784597696847129932819410212643528232930015996943871334746937665435547819652205930098415466044054478613074923912296894751001439872707446010280111460585434783206820918520251285219197423750120467377998311762136982384565996468282360080985433007247019888564719339027377795734486999091354480623776110885932454909354152502650155672306974005256023896198776980369619920930233417541064607026198690198360444757097282042445057636277975507846298831551898543666125254316916697633820608158663544776558482264777424801141292274995095922526506777887606151604126194996786287750301584272152208410380104307577520769960363158460478607664481274302447068624533387916648908555952689392088242657873158318122481422276528410410618355010338479887932346457896740967527607775515671545846707283331218319577793259073729026944245074840385223615570976936646305439131740560921766226086540160909241535350626818224600179619248267689198284626583855910416105212760017504599861148807478240539625227426002252169317386058969889266111286707854212339634079960859382435619243287710442465610373099969889621733582194983187953522898122089542930919880735189400926478622453419863237699049821713980718053852657078045593081956637963952010635155828353350446429860849738888371654145004041388933377308982820422794336390549572921046164844314108108667503565115781656389285769844361601173445678943001758852563555274598418806254138142264433394445539179344172379965202325434555670925370042960623161654921316898297752639022320434786731101308888745192962740730116503525832501987460851157241103739274501005102244176958973194658630565581296978902802303299396959949305521131584023674635577366539572928732428170620110557833062371016874920111369976472997259510462942133639536550665243157716534358900937616918232887544865110582326832430813433295566543098380274756711956430109921509489972082130381078474485017718834732329053788376749399420670774106512291674416707244371963198396026346133546003564732869096886099978996925165657228217383208555940723861368928195870373173120576380801512308779742086298113849897520378231735965454320277508088084465979699852088329512058095956199687095506007750168940368087794911082344541512139249666345908838607929365249638593824759532541279291859400027364564238477164914772888446584921482528451936191401125240953283755162559550773659377378970530120886032624244716248114743971444183727515847046017668060875037784203750913812870215468337713486340856009901565292750207405742457317530685073981897584847379833085914857348210976461439565461884028537596154242850169200890562177066477604939275085928869959597438878545553302124052599496718711183263811369835246921548565091422682240553468841452041783756953648982299039436613439428877450949337862544904232557920761441349030172570688483128909944309532309038374665500882691930744415854004072571336691463211995544310816094051342554718563088841616356576256142518972927458002488940609615559177213137535950330370646180854774666184373445383864854643433907199359874262234837254021489539859196064572510637872920614208765576702642508836211192201671945123606482105726839934077387732806607782013216804000641976247608817358274096266433391735904186646594871418316116290767882236665391529880332593162615056940545189334039103979555970587988391614728073151183431314357653280239075067663720669537681149585459027843701616278309214540115677490455975045448880859566811828757944794495983526975064728968058081565239177975414664475535207366933468281568110542564108305608704547790969393862640680207883592564542135887149006495551745288260611200388768544688238567909656369971325888254430970129062489959416883740679080715355753402782426813059539625842760955007698447773166986227668557321621229751149016325120891996839035712455275177625527399913744369627796484766862424543548768501740090647477672319543023531219307382839722767653667167140741628391904253713086713430424734718276310686208422628920685357066217030139265843239499296038431511407953180540669235073591610113202561690687734206717040928815027422657281385802488754199309681406230176452382601427575339646691324258572050873790542951056957700316189420183166282842444646573647721715073940284840246962649487335006126274099046782605614016865781937459826558424592490638558532805758215204185593692004226609381308582183473306999259703403964011952332870027016179135137931071507843826493336958846901883625024611793592963126121619284653338803887151632199502214862584596270096921771506685617041033354602727087599335391501977617406495611545470644535688933751268835463267849663386805582110926481403187222532107800050602756348784971778503619570138224851450349535367249465742345095386596344932352151911809265311841560952396786590824503305487668522621627004049291179828515411047739918366925182619207353272312783346992970005759382775752495173859604562683944470934480290416365852752407184751029272495288917720158127135279870152150832589704634451154371653934463703025146973768193285540835425724773234446864083568373916025608222268692801448382602532248090581848803382238958753025840715120397726044456621828095435491059556776670451800626753653824306376337683801758247627518117856066742646396215505742638127920451954937231988479430871377095922404921319902882303824047790672726405781659615859782900199574160344389467651298643549227123112085796760478853280387035028595071946928139183598948397910749776677065736611663902647639438258939324571269272853821867437836860108550383136998822627976238403483108836521525129413962034450826046766751449532195032501834653477368903959827214234457307305428325451003081741148687343563172409039564447944130857260538679388805294732573181026767820439565114466303658909086690394755516687752287745570629317007180820918912936320937793585445088218509939563478554101307781061680561615255276122095702532776556929644339565883513793579558451706837883440849914816756005591356796355689066635826079719640601141025776254556778246436744721982137356301059625753051552585075509051200059085595900985416045285959632990037465485490664414648310791781732339917038104591655377602811287921287878143832666280518818321049773153048902185880757991965364106720721322205895901574390011924190548084861687614325110768581394798791087208468822308866594746366329437121894752916506907737251174948750632880748300588750537912189185167645215468782345511785532873062805031858307283000404806370940813693209052254555260122987507070924564103068536901000187868061266219147882913728380717445896008492368855191367155204066492323222696131516435500300742963248312867347441523914478712051465048023549828690790265813236725431295874481119169110807963510930252620651871084983734314398854410743166330444146079561724080145774029180089541693590486871041571843795648714454447794995791002101215253003905135238001519998874915225660732936236141217236208978182340111009688979460523818395057359049856889764083021881133999275517130631577145144433077908471312227171825343820419724856155976494228085286144546667844522917723302392031791142155958502361887149368814526833622791069155713025524899244594240111252578989928524563035347545777052396569494275017786608720289475869825572824183573626130022546706152513928342259302245203418057304931501561361546542229966224561894647752101621239742353151081950841565867202362818271876621111823312441457466628976343369969923374962178081058163244554718813858729898620935736325014545191497571716690981530592576084277837161750739445977731795331278215665146710801652478850733794487011848713118135477206346855364995850784649343800809427943887525505877981614133697678840504692142170753935006595410763197939464720818327343077573069456657329571982511791715099137028980903002356445291676927644137978644578308118661859725067718023177636173163470390794550860001884643013057092247749179998024858393264071794508513276630648949846256216836069970989081384966672946395475899486185475165478502102836197041061108223129506196349733787019441001722562001136468682703627404364950646512777562602282445112255074477912138282265034312504151263993968928254803307817628071748338137484090905086119085070249040362614493340336521700806087688865650552489807638368340300487957280928649080614026939524751121577853320340325701392462820779994885510600000355729785135031759871151165257466985868401805221298770881550970069666775273922165897661930477418697417793146458118192476388373458617618974160349195320434531309150765643213128565506846897069123054242047926240900567182055286645648070078962382472075532335841351550946265619282956207052648313632714418759584731945922916082477050471337717022683891581018678136709113766168795265548125574388354928167169231250545822776344571088934878929698142851540103144112547765753783218503620811093292354891447284755900808867974088365520984304014762265292737273899576754491653294828012388024756788371170614580211040022526046903799024340478853126278539426247878539658000437353191730692362794960555647199939426107729718612012680533861407537302955134327002111025581077620026092408132033911369313561139649770897282384390724208390014966587887980933107504578236925381030276003525295553898361952971558132635905185740431093515743737290104210978215081976983622265728772399210699373350520451768732392401739436966623443573059741867422368959612878185770856403540375020044771618942570181393992459249675777547419440694681444005870697442804650941881308756870175197926086858709053542434427779291376635261255017839392731714965069345765050562601291496452209461172300452524961234545597726099552018386510670446162605404635990968821171363815482612823143498792086417006879043766127817312620208290634461613071973350770860352507921283778937035421805624700264019870358618558991056668307901008885312556491054486776632137299489776633886593821622946954741573360302573337831854624754773862245803719309063744693916751129792855217137736500498132539974073049689812750839162424777772078870120955636997558411243982557292577574202767483406292636784801896674186674954493069473329009535220636802844503652793407079969601081861016145297148509891787226049834428243237531538675572143068848822157031913981493276772466168262550590857332772096986459711601014397015535772202901491736370448355390145746720103828292815307082277069753530425133890669741282722887603353339892613344591143846692420979988328959990590680236040321478879287397829453713188955196590099745062331496911566134080948669521877918423282226963324789359299616906010070589960342876591358617081968555182785306638281557622555539506257612997264659583863952984359351288160932178617139573612678652307276990258632960209798875370817554377942327038709853900579478982072085078948037527576427478359091458341125198572129603186549173408480661299256646659030085521903141385410753167735556989129276053676504635198070811459021588072754029521841648855644048921323828510348100136503092916844728919845065691617965562697348917911982955443054932490682945090770495364592255399496029223099096432478621173169399242838681486471119625843772320735544522239055682925033151250840681814341620034537934108975171915298011688419961031095052016383555175725047664773838099363219647628951964361283267114867444673746425256815648040119233891485182672250575711401454990370304659814749476225845250038344038181461086386401208462348233912790719129695853129258089583127908931892010625989492186635485678228216844920311928795507817095908251612566734858111197121438046047073732710621698805010616944323669645041277152880678514594785817300255502798483521445956493397082181981367452199508070543668891008194345359964793614213284143873668345344779877904696371857746444528910724079827725084513929199209828509701508690594401346454747808859005984184852699751648582703402217877638938008041346429785097012721709590330445636697153804374086267636038362743230210778533897369447786166300249961961061932989358214896679861035784554604825820309265863911023564056498380109762510366160984928986833684315911201456856912658835319444326603850482651790612669482960364652840381097723374064212575854064791427678774664927666978269789384823591676225342779623281756972051438678554000853495152101654348181332719042494122133586912595872771452234318845879278120622096991694906084722381962541615693541860302963099038705089154266899649054663953353125526402025049359413373968669565783875233647192548779848816964049658428789536930018226869486485118623229134041708798263511008657046072870678914651851500596630063469994059601934244765171687068238011971089385757322080298536471494110737005739024068614880737837468570855498287034961574535795228024340505383238384004160289920897187548749254693279354716599453274004482795675092889839380374017254201442028661469427892866088673013689669254041240474114893601915279784310647155755277946333334877982929096935654258156164325491600989740333339241561767172093451405644954993191066562550240882790793750145326718282846649697691203083827191301107639936976937129495236953181092188869654715559968297113317131467271690831756464229925910090495224750699020920594777079781818415845447244299766023990411890576134223852447018687135980556714202951552410465212004661271798185219286891522572542313670279843606396542454884429629085549568312002861190356821335561095701386174732494362760806975706807203235458883763834689721853812377414880946981389943828182342783003978713005712183277347667484148509490506993893598542843438297101056050386700521116646185853822117926087883102957544781669913574985001202788070250224060853371010610905619182695377550290877389354826908717336665020633032432077591355198433606012456520569152799535504895056346718261471312667020300474199690528242209768121935461619049007344653655595003855443481412978785690830709397755778768675622449241720663991890528641331954090021131158883495350370309177097238918639819178292967191343741071744194034098439079964055637695183404036742061192658349719977167047262065340548126034705635074295589577273329379697383663926114777165735603765891410065772927670681743516921508850365899793992676321943862964288825804449040141315927806086151734583053877415686622754120193543879542041059127084075938936036270535339741062437168490132935442343601849169756106020161565672090854181198736887058910639357288382702341731257901264692966366912815643783544143110215844523135661993800511716629841059928691937641421838803537012506135373942787905140725215334333606375635770782513240794006331846777654894767622439704296049126231846540322191928842954439766381774404735736341640157566361536058686517959658818909846123337896936622150911613085778321935407122289027770206163269888407235866029308692078008914786509533821147508114805523979069814379381027371637140099544622009390724528800218835851864677165517553940802502421944399682484117593736314425561396932402585511180900957869488398274755581524760359456955345476956031710500210482531561089801354079836429776546044988515718293460251061585518463808302620898942957565189849656079172926972956946573432660620981362064236353374115083079698610790040011502251400403949107634318326462440220451094893518390679947401137760714854069515082796081714279437359924324757009487531601013022982894991764464682393384211941363340266341777725133745212961787925186645808508940700570009163093240359924978544292281689467479530581799863640252786912028880983414146924787480336765094692197466128109540957887137734468866299491080845417712492090450630118098247007773858177402095302468573362285454963112701686646449400186220319107353572560935372953387883384578592858565076108475077990229979549962463792409508918127633215581160897229087251846768964990901890168109984457476265429839666623338133963555509123011299274233417183155742546147012473954272495637703272517205999653482217779861181663807069592524948952813587889586524803266001657837594616711025580706564853217809476278309536454037147349833156361682446677967472120424480154083209521219886392595334686368491104426447482796757506116695910800416076105059194993564262350861713485218441439871119428051594789994969394386398767914175416462503760374211318646648532436984622750971289774806716830676371372737934754918028256501983877180826915980404237876433823995403689500170798309803636485380213372992346175628496445951302172134419781168688949141453748480428799134860922017057692061022261974740453251937595752551806271532407876245715188974686639261530296610780186316204542719390161902608420098941455895267915794688327808585473443986609697214843461401196206333592671690016052132880363768059757649734375029918103112305788351257971797093856277688281093316608978920190594827149564595534674290974243392265574423409914711655271681709056198813670411510413919540991771397059912145884550120324809464017877164815899940254884661025490221447334795772219420055829991864300414078296353549332831958038009098271471615521763434166729157851198667412799033851737835654403097126854007351613780116548356612483111992344313196274562820390376776286875128354750324386181892726374378494034545231767066271151790327898740853394292595476194384793268411161671541602868420505744645740537375202447224900388399242172556682932451566068786801469373628441774210174901886892950193300134658737565494418158705679652369943365091207662579769439491798075497240917766133949825446696999638112987737902737346050630012117178119051961688294045259633508941174955018157414803707834287176592959584468885037328774956087167798704451951757283130637410946628023292117868415994298571933806546691246258054949607307274587193944330705559690537094451055167920721437661179946656293475007660878520585082520354223068396880376029956042836956456014016977939757433271720220918712264585287065226643744046406719225229352283160618155664176361836339624983139220800337754195656830006740421763806206400030848679045846293694360982555932414947694176118072199918534370242986424221348390102074652046311919557734334236271650197650162428389315378115543944400554146174613289296879526009519002489006399344366062577712976049102524690706830885433017281899039161136432770836404821342693837245096749516685400390955335039504342074231348608288021590998079379442343754076804320257629991834228692133202446270728985816582028013863876743684635724233987895332042747574601786201256743439039889913205090828847663924950066028446656886085598556178562551657608194949052200394363151236111573663301715530159498245214948488906853866694024005988179603605569630175743225244801235333570431226207054486845693211461637897014091823778577386963933461778035264037900941019814290357306821565733935037376277393971216538421342080775253789097102671298814851727938986274681432421470171816199924550524992481798704288108059109708848891865958938700360738755997398219960423348975475569763178623709636976510619245447659452621067268904052346652257686701965433852621074882420956589420275079641596405872701832576975109910330076384225350747459723841848818602338476044110678573998195115828190671535194017628566757605463153273927936648516511458421027441581915224490993372586065501208137927326340277593683556304264428830169984744947259563501651809368890080506002590652168348506560553045702211927849974234143396514323406524774437628023408414091646209489852105132696049648287452645619031957169872040809405600572011866094741538231612459695474936676186459386487067113840230890187566243774846857396807469590697516658574846926710381593399106231320529751291002969178955814254986909368375513382623882826996698541420337854046605435742371049290206144237723649851386912385643006176990927393666220545086284204453673209231128114539573051053311643214433416695789951507352629328236462013266260813747277700485488337471959428870926081341027432903633794616630116984302464252510458496521870281417363951254961463330076214155585662359125406270956544074644362180529128020090998552879064558870735595974852584089012885422471172808312497544418017275143380064498869834315536580299943732342884736801089653690482755053956423112677080492644029242542776000503871996051719177086141010956438556592064207831669187346518711586966857713556207112833452173217200213254427291691047493151474112334190610552209095979876567697538906833743509800124802881353232336865662757501992393420948043655672837439530143634314331504958228188874953679326309298335253702166521823997142022700107463326912669985336853019963922556865414003193872313737291383713053994498851703335626516245596801687528528678877336369976795697873313280655838750932021049774965533060822935997131692823286908650227773718676821062483641643291175056097555055963010609209563126464039314916763209642659090973984547108742288758089545431780317796058657693747974101218699527015926612650831867424152228713792623822946036893146153921893140530014599491002035417221287184085405220154954561196483188469094428293293451637068834622036478938347101908374790862861530945621353351359483581032477974385515844978485186858449194571496605885016686443940345838945539317593128348667482475708747053960986738635913476024454332099233071843750566177727291186193428565280040886990815503865495017861780513557981791741190223018028084337564105220459108988710154486556566240450600414408277221247471371224187363006491309251724670920766868797484451910382604564108455097862591607195844848572534511576462658524824711866542330763592422111594382989740409962111636011819315898674109745759385107784838058491362016125308373571949491053892762842889204823475442421719001776255876531994808161224364524859843306984132287927133352787611861667806294837038029089672559112284162852921934856527675033431489009901604562927847612004692514793073503587433124593286482779545537484299199043595816463311697578446642414203176332520169124830532312644086364614274947912202520611449120013544406423590207149284434058089142955449863773622022236203260318002597481373564890713310116914379018370235328067107881356953693272981419056131309541195222318576503860409244034672300351020698321344682271095808666772238284926834545464651524962962471660161416843648637778397904389326550246157538770733768112133341799249507790845103539751295989677270971807726698205585700193514738201521347888818005661720249495813141785962571431336626384394197076223129873013516124414951014300777585428167877079039512943055808375041661532495325394856814165703423472134142226968636562390759308834353687263633145584926256162209327945741069118221987691438580607702601623558341969792990192966273769710016547934328169514844916054378223830432186796014726223897994469177717947676243105157215387814912817661968579777237039592831634728013118112228178308172484631838215605104659039968357524361840786977933046844201157302122935513036415585266451679985384147337527592344609343008832094410522341841622596684816541588986014776866651418350486098783124781586880968373369239322285976288649814462790603360003024292102537519474716093188428387545087171961520871459955929263206840155388397911292098513901635564978314761135489998992829953879302452420186584980359336947009013120596575676072973339054245646185646760910135878936860783186804413110256716896168777543116680533857462004024999159371621583091937665859033753179894941631064739227890284568232232114514999698031237230281793499559682378350429658153320728877671171426897587344391221106282937241742611234948243332891878565758660581946334517233475045829995325202514515047732387507714527529324081583790737163105952919876501633678742938952365041674331812000011418235941202134291069351135133627970113454029167087098008692602667083405626635562858332785814764608264055854635053058664264002589740820116129921442900742601454135250887360184230715999343164466190933190393996298860748568670904209474739850585421446167309821703348021210865188954245120261734917941495283418461995037861145691579167225105805140889425594603157825884969190792097754984351375834463994273057518295578454833410265097587132560704616101281479541830328315449936289240155946315287148191056145477807066946359371743216356231322755041136942894988109997698294216553842508477295743650973516354083865313559184734760993106659149053521485093325471048605100641107531917681146664885319145264709663993558992507783501941788202998917000887270980316020002874341777298019535240246846944274141571933715023129496329981688077314855523491577258825217032821643752033232604887552402203517181621545323750368649197975139281465268875725229657114218917049142375515999955104864009492044008657120024440355341930069552853986314354915190983692799764479019208191920173886804090908563223352355682488254738143782748420406133900291078447742906725126889695464062868681038542879116765149408475043463867678649882040632846239455971290823388831739226971655773620844553674766237155322086836246367350369555085687011641298145137973051786263508179735026456413656403879621904834322738432072890068455141923043584004258238081605522536940883995195293291021906693956781702773615170388502744589383454882319093405161091510616736500210673134502721653164664011921610605974394461656929283463042145131897711559988743242707816578263570483081699676257168243693395696846297433927284745136480087042917634945055218060878722618798683156725736735794786855025912392483764212731607255613803791989711566357770226900338718211608114167916476588250968895110933589972026961763494740012958933062008340658465425895698012784952154187124465835092158830607971115735328325429264791546283509823674285585918786260999353546597848497814649380614892225737218156712224932673452351191349431066463119862103647844089821436525828857321750116866553973923164100734879080672436092436235112711145064896055149368257358116147582847178536615944820065840435673275985756499559598843724763753779022130224959695401600396059913870011226977445730061075690036334108654837250995448185953555056446659519755390923795591653195319093931522039318735083096372543153569088487712090421283934745250981995189565610869419651262817593033710726589807949863793541288224096788358160898335248353365903936467545209286467322074058393313992666436856090329077378916765165609389013145240918274360350187782647149765198192252092572284273305132087937142311483117979427343389813293405736412573995098326186922727064865563878743354619359080514374265269766042781956618831375172375331427891544793158467375011526362880072619050737386655272795903620997666226597942721686097689206153681446907426921330983959114748359966987011204627052466127041266290571933839684552003416165547588469274719838669249846657445222978077410538315178921651887549465390092176073402629561392856598587835814258250416253293563948470531812937616104879291761547726723770287035690885814353757418352367594984113758946654742434973140422938066913402886914239671657532999952440940734477023742869823460652986322697081129549353032588057594089429199330190574512115322449054075486162824414009405531065949964819823807738580166316129266636435827622925767920883405181328231887133145273738969989597147676225700312188166984033365049288103968905357875258466729407303309467320725739126835155988737154175188653004514682753474256993661550942194644077548690022037914522755351748101074938049483134162814408171916401036359878576816536416967217619509237899740087105527131448644279930868918652543050240650818683725077466949868665956797427254475068093312771044999825537038176505555552612085691626129483739957360750499988644262075767745010339546561768882405950477844593447567697114961698445786500330012593728159840265554832471296297687045042011816181078993119053691749964748543503027163661090255749844194575233300625014073656833421581191267323501240083841582093531594210542054387094231671893888085343421311116346993082363728382536539940969592683937077436793818230962913221063937643467643584070238044711872638242890889095224913435154694501540049264660293282384463097878997671194333011505166831652034383786042848194961613332529843851446584590880920294450639699251127606177448935260266986440855593057498465609529743539791621830960603387449674708627197794452952201178354006468053773757325929340395086292334740543605949922916037374862117906654649394382798699195469405152954443801805851123982924593404152823486044588903943922220708272471108209465106579911745770368420608279514252032315781384791114898086447855726361182669698794629304664514835174862954541936649006072616679965416400625609644976904803399109484583540790145940994445719595869524629832651830595268161831153451124926803717670921842904080034755741825302209177521389022739254987953243323560542961950918097062789534836402096163642591802627925706102804682539103623644186962012315998927985705870466810971188785020102807094761236878449309279107344468886331355397933845561375539833066020035183545783868669281552945177379284494180399340696668521623300004472655712172691761202678301779794312449906063471069531939322658845096686588921794885351131365099666052023468552030984828694676873067947248356823214843279702988467433833918486912921915520506320054489063751454080807479848639635240039238674399048746771172784191473632683130618400571909975702580431873856232953019927432196408499342892506295482173902647634472828141267523256169963726463966637639036157239411802797665122052447200893704822287829077178447236235777387240547236194746944390945112132717956458721339931255306547507638536964696197873295695557181022716802368646634463807598810769881247008965510606557229410561467166419465585394515973384063011282756367761188831698727318737899881442556373173446325237336493979318719363970231527471698906647160048438869227904029972632612696939468480838928438478198898025095650755067897867751688266222920049612856927160350174332544905625006600884002989754572752592191178625193520094498681761869212341155508627250719316707182975062112330155775773878478563279876457894423628289861388535915773744405482590196478880959791910250969085139679911310045346726261752816998695346946876453417613545903723620231815991791429715097473214807096751987894464635396713083726307339894091741434962399158143369677701350680850425567926729576965548174545660221975820827971318429368036313574310978156563903220339343634618624975437347558652053146925630498917890337699223732706235675997309203797981924846232967613120659871670951213437699062274266808125393242371380393944698238931714448604817167964487307657103219801271442904660600368652669337199393196733363607562256773993245457938587544030393444652150163774839627510253737619888102880180083345070182453503897209357540636429614726221007938702356790861089736230426559107466595325253028653843744082119327254516090730913066846472531114066533152383726236643944755559038443959511400627224816689437653563434847985610603066611380713312640787633542561447889338022987327837364932922174876210694791338581577804816650524913353326012604096889845994753983913944008336759773923937883933024997697379627528959428207105351983375541438751806958386732669040831441767916138168342452654527380119331597000818554805455484002228454396602838259569842540780075313531961517508253000965588985557617113103558813724935893697200029567522835567127447823240386428776589140327975716862290656807322105935929223861599201772685591260273997457713422630079676158526472976003376600253127284352796026409182145015141014373174492626496719418448279989656782312636844988123971868100682672436992897448152676560425535526295520855708796449240695330042623861383172307175983663000686285129221375694152006324520517545083605261698876711634093014073514984692971391655274861048820787788646641098138420649660129573419604615493897863212418355589977320063460179942270272536277724372666390564547386592931657220007584219378311490301025199571830784634478570570820289867403817238705697854449221651804164639314981561540192134725024951538815419750752928195047809436262838670230825332031961796823633299905800170480952885991087913348636344813196409092273499883786741189533834760428406840476797791320687441017973132402409998054743302477121759629998769644722511284853923546185194094845588201459630428217749341395207896652273076135597647516871325385532844401830381559859514885094979919899714440661142874263694893820924417962533323320981625305404878690515901374545269703152365582452132716681280693213365370189280092123331293116921585952266240743449908523675333021919270783659195096033325618455015713993097059528657259743495362701354441118927459152552330362747686606312490444103403353155748954283077567582034381312727541519186083073744118224219734947147445782011926493447709025810702177253518623485214630584654004375107704624152010932943553149592258421715026287854214137658530852893845633716226348178725720557564280751241018633494093496731431246295056908642549911175448863875112994525820739900504467481646675312812950543466603505003367323192926392597507653934909441557598628263468369240242408486465165103011925910058647834698323265173376410282225508118032419110499240494987270770877302720084220754183362576228520531262881736814669791189370501680343410332561274565892413822832360722777755820324209537387564435786281456914155524950782820034779820070701257828066455173566203205826958033091531874329551081890936953243921768195563489384685037854650718908838027274920749391338524985744443648675755961654401320290400421022652921481410444552268740511546120143216421722179580575498980371917855988141400439420024003983178019950480329566076686270130384675848285668756000289007544169547450933289611507061716869651723999066224984279024468712671872846553619802917016254022023766867463179563074849511861533249079516017964321200554421350091706791276178512775364402090210954926007796458894331269972511427010398848006518602344640908996979695353200924230712691287839232135950585144800196668643926266764210748386146999185858777337874478633462901874748746337260001195960308893309787789990233882181501028048563186598557304789810145640375241931324324800958581811626407418573847303962520205161054333106137680490917463381415702715417920058267683230841259636477328064057373627261588225368995583154671587283547600347575476949006086399809689445202253435302070086496084481591459082409987522069821369641068170777570460989815495001649662253665316242034072707210427516516291279387451626346592529839078058758056094239210500888732361833804896166067561950773416369203327086537241624924804348470122047580578347063812630493083333331496794695184903243130142492105503661253538431492594764879011801821100315681905037479811367190267246506094354428283257784371733734743428688901141857980470917225101204459836714014295525258658945964565088324802617881135231812708429852394997478317010145908352761399791867934487301171808151931859193931167843305929248942292665765254239598240517241094463641036594882647095537905129222170824808084662522721904851392792168826645104596215050391368202488990440497047487506795736986700329198118869595558694059962366888659470873172294326700633559645616337851837317062506352976965198281387389582420957083148283445779784335696722110681767249435307233317927776986986450314360289905474804957961483434470235741854681718633525658046297103033321944799831633404644529984064896083866024410794204482043228599320493684757589895056552717849053362301495014129569056691804894429529842603165589886958751666644651052018899102379456936418174769061159309779430440486136132418370132551326406881321667635432209047045711936697466705878032425506045555957773378126812624202966208563989739050733142825786565373133254781927709706159748496804057303338560836968435273266222244203335508990672923118501856800413535116167995820031955767633111320583491080472052925264463528640900311269491476312910548562158239252479205923924841655832487627581108757915062643906416256875814329508506416899618245318654126143018146153857184716388709176992234331125327776380882650180019446424754959547011806021284468087798950846186192867942910542432302680193268107685618543394034659566662357630180344294250123728233151250412644723802449466331227043143709961156538552971522369901356824028764502806082401339716965005384123991011081986360624658168582299747945422383658836747128969474635525012342749262204761977780785096173595592916845266522423021229976825740295048139580927532234048694430095623036702891094010741463193124211187807194657373418013829113302504178582983423967955633220445155048306418394491275552522860763475092293129049178187751663802104429494672504758544993298273715155546813076700938510643740825386802243022626459629185409068890051122061599848719433878097619104078271990496287591480875867191564076065113679638560994173888095256439403228788281007805093551507013008457174325059614863247628617225149229082498256280370267932814088827245701387275520652767297009645990230974289463777346774521231881812440073719430093987835983354263738079993407810836586049071524226935917664805836103409505974108121061274237062999171011883015321248321114773237050647461359203765398738738822872844113968810641863535848837887588233048478062173141848940111169870514931502681664302756706244254461247645787523924383442283691402307967020364796339649947333988974972093309335509622657128700050205353136683787550550882272351455740913996606908026832505811487458727249871378725186772510588325241638530931548863273575253249710133259553654395576076736078569106750585211824561028562200689909483872169267949962207671122255069611847516664770847091889799171745523846273198534705975339779746757259702598438727198850607762402304067325782520520454615229503830826982624330335475132913288284025882556748728880424705592959947719106600769536025241964263639327700792568410415235337031247829437382096432699442275879480081794222599075602701478320055477336356683107163747306370616707368310676382402936448987950938538942056050770820679166354659712379290533326616545940477302434243629093294895134068071763062238940445805152842559257106447292457714321954524674198085320092969763695371860914762386173045289004222929201424517315628863482519180932937431234437158468540459551055849546610050155820088863917983270483522281642958465747471338172493090317424963973146722502651956791054013820556659733173863736363611950316070730766508824634615333190686678518319602625650422311568750168100875037399520807583410018134441397150889276159294753300426519505681894881794533206233488523108216836479554411201564596862757963500180567228154207650861934495339367917298957843469933388123284249079201219853092120209399672360785654782029656985629052191313376539132871511049784778018858363985801153712332191388575450588659642977381400706004022155711737445053513624883793623100301922018991347304059188779953823773348551658152256241058319079515506292790554168962003521807329552730891775964360067570087787284356768352153510889598700996009773697747759510684864270041057957933937742745514715281240441443874430308836669877662808519217445849165626541550268714269761540408962786168464337585957059240307598352309594365877501598374686696922748253018621893837480110599553120699568860753120272500946623136434770388857402139986209665608832375229630161077259529854142419271159922075834259804707049756410382532694475598217886723058572554046168121153818500535191263727645018604340756851863986944800440228624785549483866985549514788859505230450993825864606215829337478891227803959697212339004474793824022702265323809588976813377557265956580241182918356317927149518522672603595436877698768720840494719206213675573102705518726755902245048092585062034028906898503422681477498880311087894202973791141020431239446672027949837377641937728107585110824230448250283259706958421111381386869860656761137203737167150113656965029254827988560585259156022560659602806253199423282450935565787391513834228326185140595883927071480543151394656337930699203246369534747546897739684698504525005288273119755767390908340839447952784244228774163294912593714296702852004128818881906346711374004651246851858806947676788570850054908384737730709264679133767637814163150957499230336932897555508654846535358748976229809498245832634240563894010379434638013761331803319741622958509124112384348140185519980764637630431160418600469919617797414528178668213130598298495755539500399803267036825285775949062258643919550282451937404937002560940159610115295344524470677870579971329869953038463120912978234866591613408476878741630071105878999227401374809429170135095424267011920186015178870609168167267389496962756949192816640534062792472722507309277341514293976674880962465889211064225190966047894962896756005697239585612378781811266598292472691061388687823720196825715838090911758154882125365434001171390380324036902637172283643030954545301296882382867881673638412385764598473514149972024324731683168879635989340986108860468995387494041005662954728649554093944780910774312664432795161418134539955341313246400186657184725320017830151308154269933675358868142766931834885858629439730484132031561296206688549176431565029807761698901945516150327097333447781613010334300793346408386575969576040173505594299816087511609295845266023475843360952424170552068610361173175421839791066854235829549244770802693391636932268314414936514280210508057106195926808818839375217065347128034527535752444621229893131101385292761495423468809238789123625733890871020016872286638124195405170643108841427219837973016809782194444105790345108504398260299008025892524631773847265934506204325406415839469336376147404634694782901797518754141745941515524609296424243524387745113571143731571363984999768713945051852650600525458983751853517962176196207923842008620394172134181709042748927281962870981400436705282428800016868919397423571277296481476834606293466287324270202636333596450433828532649618838720964305723546903920429887109979714942584289006033701817023139987976867026298708574565629124149298959979391966602581864891390926386321434415177638169738029684216789257893833670483315920925490108877194948450861925827085786466640999857579874553867032793658606660654323967943094268653459644374204514567807532779642737502577662423296696563409339288061700813353254388118985305491627949121220974731337238891038604507920014550800925862129833797543823898123607748766631900583455117340903641296517723805627635130204210376517459474884578072003761632864543709011269233792512241268241178964424634082299466004891857225592736724773128565741461689913757196227736221193687349936787756864859549204936366498221726419284250441468605498120678202099792020152191355383647506935263615150767789232401809680982084302455793164625167521928197880892404538834260197477667484550266242036100306346699760503620722433433382847050138924793296574539517750656305263392305335879833472159615972016497595967809517937364430316239517567443737663136064871487046629880814373408317795687837863980643399752840481243017592248090721629549158310529502530493804128790049193763118153888137463781970379058926408909951023877820815589390875897978411271145248432886100350752977286834665792252429460238631649409664278433286560061965089727815743247855723158862736239890572540590684622206701849704570174706894737014544956680916345132707653168110808434492438774767802380606607944068159298681144297379410195566009699474393364565441551596013676655463570934538176128048403164348938767948836796278615855816423832703219577103242424984609059055011267131719570229219391404671311142431604102292925745732422263833379941767836217201900154722570270870609768889328701084953690696218916685649658431299423025028086234796406616586124018016003487443303881282731692949738479298512803155164784425701481768349009420561686284340447745676252455774441467565025844685775669632218867900242493168229472558880118381680464561560614703119711843091284234319890149333571384552778138779704873557805432682979859649435538908182857686234013024734889472659482498536590711782803215404231809467062639178925203775109517253915664152089631757021620470835632048343477819699251894580852920596910250574658475218518116887751911117190507856935281002572245366617908276598065848574237649198413588324038650935474578564877241567152820048716328459272650175301578621509377015044811328969026376592105903496839327475328436632130359440318560676167793104210628824271485582712433898404759461827729908795048548463447598624777998959268408733612800439347033863922037615188152545278903055614074475955229494834394207392004446736160346600784160821391965691950677152484127235810086573804524722518241689148483514618791972233391664498134823372926367913494837221186862828411164816876600384385550110851987134407578010801308911544940607534713409297433959137548338751914578967034131456993430785349620588882211523152665807440687428614018564371110468339545514622814166798313579397979887124421410818024863621930792899764507492068329625714481238412202025126124155199450135146908514943705982510210304355825992686622705380021858005909615671764074485347050319643155005471403652882123978096197023165660627670728146403749429555322842421624428459079417989505033963823909566646283033855898179509139734013168257482898063103644931727942760186865286706322237770355583211869323769774460293814925591233976654707158335350869155360111217309694496598153961890999463478554387016428895243477107826130924637642337330489036134993896151716185816978960354640404084028328451309629527633384255139616680533086359286972279812774463031953383088527130615659808094984468944563632814629234770751577721372989347456488487909441009595451248943634042762348212090073450907556858734499766486927004206622819433166932098592257890249824632752630124385212629962126614410191840905549880267914600361953768938146106082251429064664220125736788055813076267079316348605282472545351096334508756691292090845514161305168934781700466432988998821493565424360563192897697205263917207917698769436261632716633998995434305201132851221008187242523498201431634970196783499812487106230117157040770660139213888619876424886952753063082404301397067556585456026033367789018751087498876034514969009149279729028854049701265998977181289579018958434270932342326800859217813777661403256675428563356997133661165117979109936037041150119053689644465772088820610479494577660112112041806245863323664430860693568339598818567990538457926079455135973442747935478667635591964877422855797512384956582387111912116793966238316659758515837017506516495285498578142211040202241413841759348130837343450253620379446818320371036308947365666742714113740113359833453872220835594677281615518254659791452598577960345723628542694609734477128194742558885292171606993315456154324038352809947992036739661389446579126404294985126564789709638631616833096632481602766171672101499844522926895129272371308689009594907568810510010269676726152427645331768456172333935712338233785877772230182181822451457574055014738557474472737118381589538906701328791527929379275216655721098803164106417680349991237446305423820646199210782239036650071590328034543645370085830769771611693956328563913705835371964870542707643827656828327028870358337052188549185680207657186466779586554485879862316849726136564951424791377390626023529390083393063621931266596957392968095607772856757892497622276239498293804381789896750970332542335022700557416339961872021585827603203007308074172822280908729327202541316866299669135910017641288299698505473419545138948540488939737192200459008681376653939876574965420668910526625550666027200206727965396795671357010593164762565326922159324127356291259886561477499621231128211100420093343977135508947682748516119095612284316409250365087897170042571937370761379329830692843968989556867354284386198546371163627126493481814007333938280224102323261686434992080059031161771604762201532737618330393403870203282774692940460746798384206920404092537786020086765294599199269759451296652042194209686170742831119543467295784457251966563637147049844140050717860267432936109857752952144556116705447426615180927640068861905078143696717437985230244005435042345668230679187170694053535401980588727270842447550820678486233160619918211084654414619225651143689816038005938926139895368794128146445962166587924923374138193899568827857911233462256775479256050769285144287501400738952575420474503458728290669578658564444209294571291265723778305630955590334881505426729503695322484226409429906289234598829732156479576762539277871676408159648834133070588269947997927365888457803274020748459450851661347376123858640920686249512695094465387998963704828459683484990341173438733447647417839398827108939125067588318670391938145934055085506032341391994723641059564669469360511938478150241810956008337835975188010129975807749849758578482108034548452812348309318657110765340367712142999554214104294445732440707597051150319404815199841210847446089489825305429973188856477274975948582740203108498137664367808287840552341108000886262052189802473456507576318553057876552963531585008870333062439519948175065031548421593834935616224453059851206677083546117079555713574616011368335246602997801342152365712445165493043114198575252582368985999498165763403470964508086067494014285733904705372365160556917095493146291565988297284768785201242869868055623390360786840853492901119872937301908540776965894791542983149261984187348439139858557150926629741687381340908945917875953755052713483362715976368701102422248731346223655208330308294393666051219659616365307210107239415245228647192461636318843835639086998878665271965775698575367887792645489733939739486977554575407963394094131460773029589237847694693723751989789037182461117278822973952469942625292907236416355511002815019150896376748284979836680970054368429296160488351805769228295144253653771240179867479003703802155581645062893753954646228709763568362871204751072439450134497696752772164942066675935140775693105622146342261630400247657648219713572348026664670664181142671612819876308432404510889144888174074862052518274711202110868202424439905982800500654622571952094987981853722116070837907580520520848417506600153347441984921905456252165421481122014609641344254738030603496987007306758845047916523010047250123255028535509864247619921145235819037654944886364191661031162151957318447201318782657629821758866714722357994675073653825392692123087090416120579026871846566027363077828824622974558208070565771521096771132384530618504860274972962636655737534387588088448176862768022158642986962827991232262912017142652818607497525583257914909029489626396166025870196309599912105056300078341191711205004788727154988218705503571914888500698447956128577847938727407125097290632113585815142305543960956711660166725263215378609480751283274406451698504920152961306538880090442753807980579835051542204703630179811088180923338509170109828046088005489941568596329214928213572770834765258559354487446488193797331171720066078396752828528692268161349790692016122412830430078635777049052193292193079764126896656199986899407254925094749910769487099468885395446815722731636262856255447106876054333937634030628262802021098710980399039768726008854532928922683928055350052999677060342678650084723153097208185140811196842843108367463612370501210338852058243248754302497416308363853392551747784135896478621813330135055589935057096501803519967882757991620811228473941367850396471723363510111438813206326178882547026945869147508267103723630673448492336648774293859845247668851725893661219904041009071541382966574255529061611224513170777674563105546491176790345169734992678483717396459801587127083887608076133423083904532271736557173134773889738950382111719644843658387099491342767644375050443288062924159804466649430844587441194165703547665560680149233449990631024515098498103937469460282119435879131294978557844765622062302823778084310627225942394737645878625078720885422925819700348047564942269174189723206600005481340191059458688196830489816210237029657335690276807543136770860926465353638085457290549030406380090621308347347185887896178745433760504718831233657738541762042809633816252975939343757467518158126450561076064209951054725357379982410186231626194048263457218585577279242087755260890737524252118254960531392686884335389185332995531081824444134537963471228147477762404008397705559216762692156148048463578436397479903181485172582844245916128676544970983164832418242559358453065988390459287684008843322505836814830819157713402284338836358883064625414556293448521311238816283677991622606288663254164484617781461981563762608845791277151421397431224367832038650084127487430262659249995020776135882539469759653468832171387778961417696701813356580431818299327064977835509833132768879650718635240931321331708941407605674710462070067486908646635611872670786726201358215241753539310754311830109342714959683644610504997762930629183534265295024911864167119759583095537395208897186719490587190785554024663000571314321794766776749384219814833830538984232916959010189639023006309011424208943019727173646034313053072361399207673045293183108430303876744147924209793351061365063143213374805128743227727166370009372212768407854463117398348872466349423146706379097269095524860519187484429281645290628896905477969724862261224553289619103484285033479411005726501811045345308712872570904460244220577688399819638672716589904005249787894977082878753150663779506085493485361762876811861577192095380265897569898352657954818218794243722256300264717165217306620978458583188103060919757582120318867344074175891531757043631079892566580647000749665023715264787858923461486650465808552037492125746770669301965283951653068966960653976452359902056464472472907695334464677326597014255513592827009708400747414932030805501577846124724741843117257300615863103328849146270219786180415954867343493736296181082208368171963457036419134161545991314271786411246170695127202076594604103008876556556293377709518966201124273341779880202097757213137515663823794854060930425438859502530272037732429453875320211750374935880270218173559487796488639533623753585226796028242406698390092915468842113694826329168895877724343016715568065274824156050899479004539013464283531947715244204651311105783789180132373106209073371168620248916637367318036395317002056159101069052554764753459863301278337989138614380421649459775078191777230794863670539492993905534596014329290891047468176366267525135164808513040077686575558282624669397317634050215167660653057633915340095771464664384886604953462677168776853824247884411298886031088397295338537348301458700479639153703753453918387767398642001754922407348213595074242961449226060897127930862313282793138056723048274483005599256034286861894867674034625259485969339799606569539115049444054435330837464275532204566827040847732955222488290446272100942169237659556340827237846640846674703822059104186420071705475540174503819295844911504372446688350553952153492283037995898464939459871472112847249297889023322737941400195249341595107824661896711868401044001197609985100079214473904471020541422729757277740609077346720142924961343677071738117542232244816636937900872694374469156535851406490018713322250060844581465122318000298139293539308313532343982367578646962576651345680222547303187850643290127183386762735501054633757291047919591126382839579090004013676542410930242897191652720739981851550533143691995453787478994775236923762433031849611899828367104748953514175534812177365501144866721730530354178327984809558941625223483734156789451535609635347693045778739271282175652920800275954079103651518844622669765407542967021583196839388636889712857118849956896382554371927300950308592483512205242887755759244569491518431732028172871527283750548748568719588395038985279681777909848200051134728839933581036488291642218047636073280911133000263947261895123049880560438576886168747339557635755588493486191701226058636533217002804893460399270794153564159811446624732021944656897713195388345645529974253061487798725859880291442017067268892749320590789367907972295335529772504212331499356950587220675763352649164413042751397989946634920279588157201982818421704177815197710716873166438135259519908216540361728050144275937030694484337179233947317982552464095198751885047543219596361675623944158282326525289573981375736812888318134913459216177064626995030844474710712024073452500220387752568453468695140412914286173658159690419517624010828451954235815008041507238010129575416710232906177373006954811143020220316484406246855653425591091476561262027151867324481984248877037501634496730282402038764464884632726563184336284775169124258783204842950975201177967401301525023824826426780728225827497482827693627199518181421707403957464187820516479230213225841518925619925258568420162629260206464132656224809936726939952737167053280115194563828636327213636644076714317767025458809188360101185806408320717587770768780555895254662497337604163223631182780313184122624445985007909644106286989697449443835297320025665117476453858638569374186204419438008961677473662516510412657838939443071492976160654765170740609159691227225302508033373258944402407221654114728865298707987032321777325171811325780381707208242275069011888340142119915787467863693616842663882135275794273646427579597109808768201314871177393241475363348380914556283276025068531244199089882415237272292117982511626158261380317716377992990440276853508481886681310277798977717127042991215213259370602889745532544228868676464361954304348634518649089011925701131164991460523383504454448262937928162314298004183629667863568315098400594911192621720418346197952195341082844836499382565093162929295542680829221185227382321977606601050720739091328187910970016559962038516788271906003299665984647783972593822518664683237401031146776384283600109703949334083037012433897935104645428406937044228275508830700594455167689385070320625352028023403195165043894896734085021309742675519991185082940151019794830228952236039170981116542383570330058459636479515248223580696879369150636126211199996104554258624932892836609253385031640416499352548967236087409038249524188513155681199760800701796109005881303294404166283497825075674761180810558900473465310116311304734719961819380844478559515701024973048151591545537564514057880370816897641487569227007021205600278841210050979595683752454392510232052359424518734743365102285871211920433967622697360661860076267885335213069992153752478796724704747009920960347465872269153141668884853856519352822405738445403489484970178178954984847227580578150807767774516649005571991642973658089466918827553646538044271678681423584949951222317813271174311604088133068951252440203653821944218506818423047527782954624068193365881330849541287167831047213495481163898484199893792442928948946879576532293644070033761425948580990424535240443419142023349426203111679917382131287293252760856373151960219468189727556966608009183324627354213131087392801892771774479665952993844568977462787622516688405550707183179765904701761168934674483362252004905044538939350163224177123730138395141978575311382081369744896836492167576452575884318793954032602457151340976642558052296345075645380995168743658212671473247046641338649848000498302396898330847952407143870134344063369001876433108498937274716477883627436589216290541271103338535467017025909510071973388800574585011184113438783700203889235083828839060473933806088008404841688266335028839645747804283029693386108131537628824203599079145849258602641155491093641869354184046828181941074605772409869807327079597063365486286356834581536948990664253832256237943460750847962884244439020507869581194335419461692650631108248369892844310508940280841687196278164735672127725141138235353202652873928570723552750229651289602992046461631473035061286053842497113019505080952969020721706216758055636184839475935777404077665634533002202841110158056086716369643144737915259783428654917909498761888763011876227132586321433333887648106376965696368883982720254670602500833990852611463847801694376325496238043593757757423602126105206646473713893180947743956259017720900485184736333792769302814868414085914045171843329172866343822342941951338617501274743866355824205968593114671302132242324471801642442292080949378319017887970643923429554600375091338515925932244889300717134155042302343579192354819602783313036635443804838428607851483303399924346982494848184289613512857292301153235832943500774990355467625796057037906575296310749734256898625952878593735428751285701942608748839246853871326849300588161034999759310901736513710321133767333284265192575291332026002096801551788732191931926623875993675366719580474471582209825858276326159082587024538657085175315709976155488821937242594395687682725011573504507621664877842324522417725613875868202097832533385550945034578088409122040899283174044643491220908366461852848783825664057730609509121201270676975638080745880039453108957786929715099402545826463263340130153664923466810729708698215487729466352385956686452444804589698609718725089904071593731267141464747216769083256834807299388774092633537475361924607788525016842851922132915083286870244128403983267038504548243822221186248909361333117951809518055709593439304235910229591042617316290967816548510132555365888732903409370538341846718047722646009615181358960981192223603059386056760473458499248937087387718292249652767607377944493930034009698197745711700655200630643927796717923140271249138575066265807395802617932637463697768571118503824985892166040506241223408057570612645496810877908634948497078703611593690815317909623331412677868611528106582047394139989820790234356028568160297185755502646449795720866141927585324633580175764416763320992007009711862435354081086773382295803810027226414667804935175689667944182530312417145400473336483360956684209424888546548977646822801474658986782016889059173881002615983685204812778935086674694401210441828967711606481067797962725345629926143462910943321277120940576692962010830581651925970874037391292094227508204703533603869057784771350184285622517479061763633455459399419805042524422429996499255505077051258087970696688878406994975984052067088661356557469665220055170929192337575459544128079862681308722558557325601437090855932290883761061674323834565053427271183626148833620316601518536759950662316743314939875000868581649154088593602068705838298955853707869804442890712132372475834271222158741524772501755857513766170485845340219205779108356154637310232463558520252282173863424016511612145993853465777376440382381574760638937278185579313822639431021240499414809279225790483237754178992673703132580433014543884923243125100333450566847543031792585798614071961868273920918506218101321295602693141746427162151481642015458552334374488175248077320307693005466399122210148367468666597543530618364686346309889185012215493862025801910475704185559062933958198976559783710268271239533078006858646634459508952004306313126421301526458314139443839248087558471985163410313528920654361716577329377198412841282512279886814680229870284294854183794598351741997233369193144728316519510144254983347367168184001501722696400930968393092535572195546045244273879156026532359468415088143589175416625126738181317372052845706353918414063152790222273326382385537796205186489523576291972488211300144708092693711793054299616426229064554775204059030970580737381232645489649713401609974670838581260780645680289617398336782585222370822028923623718573324216914350956138773656942714673443674144335374584498980113578509231162169253928888270485595093647028287296737049041140973641988085998646748908040242148191182933231714686913508672174193944794338652903658449907632049850866222419390922101817768050180304040073590548967467301593131199643090610615251470347208985699178117433015150777134727145653135148265222202513750701487887552542910330846029169995358036487969073975303968178003773092879571861803549306107527516636893321965075817918758360463044098089502374361737022262094960183181805129833140787627428902084563692160172682326720304908866964565088431184320238154918575143490959774699467012653308272431779760503157047229029076379503394668741325279137283142051274891736134155460474030074322071223939596709690286365954327274025663140296614453552572925465295666214902501795276345263571652582525835575549864814580521188609991919631855006186804870021835628043536442523345884131286490963978933599486363811444486939588513258529279627246936074215297774522370402513247302156345666697392152260266060908347610125290680150918098311504983480318349029049204276756830163351145657522079397195722356817049587003382838975775248529046454430455836186231593777607584098591903718184211666689777205864773255559145165689027203720439109107042363318865289441923018859055762650877164432223783870391558961712532601295099767283929954966245342636337339970486212000165587738343926882591810274040359013177613379190136214450656544466722629904698460025294478125661616528199427966224954094858276309771744038627629097433139650585912242953889919479779170844625448350679525024983896009117150819491927497279149126218287079661087796768818876275576992574735102336638549976249965469808304498918444627739953902867004694021221520855456006719252402566625337905485006893594194946079484821022578261628792455364005151894351052362222381200493261741404979008887016247606418721895798153839113913257270513464057371700160984977867457175628397576139679513400271514554705831501037888585067524205652572651889039701507438379709134822318176252822321011960877317526143388924729478912401521313392909637507056868758377986774137058951783490712382838393527779911822164494225333047538159452160376242609648999702647586340743026986139126334878043314962693191369044082234820211952126695527845722336032679919581369945712938998935191585664895530335714141972980492578148836193682123891045460566234418971296109029065839215233134217425788173374457003803397388221364867795036142190232454859201734285348925383556273629585478418254507568098529483796603842060468746991694602150571316235563867740421752291664867291761726909077807066362808185567237812105696177297879407232602991116186633998362243150664602292428505174409607096675535907660735193135274724002217443542347041924964205302821546721896597501547699915236131602902598581623738134187838705444970644418946801521219285010235509901718678659979901710225930020617771779456940635118325366769655734153720457814862800254819975995153739177630455340005415495440464073001055220254269136580023946384371234269326443394327151761303637027002704564891121076862682865610711386481005066635704357065860649597803485470253363626913236274603984482368105702531495381065164930261555756236111576927350578865625115325824727707732157361441823232121974511243078002174056744748465694070995532249013202928205316482386150361490751802881195604668454055656539604599299327940038018280441250908215012887228318058176620801008492412566697402129987965720681410836903942019273450338219327022477908150826663062705209910762376083520158132703777865724582367226578094108866448595119822000249703942166844169323271084282724718148418358771350893185853767313016294677889365286512625960734175911881721705403805193309194052674537921426354041519137415860057575066368390068269815027947755111319117498720814261066262087621999550547080035417888871134208492118953344673790882160787367701621386949312261891089313881461178508784130066587272635492244303499113304734622741276195479785327918885667049672543981935994612602613283496579174484849437223625697570233546469831308429118700932705005450036748553451315492202106712441995400924775366522323456400946852071830149998727500833356256094420942736740170387408540542288996101906197340045253788037799053580468088207534107897884163091476992314964089382341247148909880350564760724620620642346233993025792120665285982970295292187849249781688828042091269515948283944781436156627508356454812587027782023917627487125595681115956307867555586631113321176053775708522651198658277914720446225255425211849872314435788302754126683831599830156842750857029274232593086764838040014553336958375610223383641199883901102166059848630944271072927281725956755577832945442244234420880607408178935120567084656141541163235006931094564877669219912775110149512943039308005908986668245755880875946332965211795845505294335579302405917443008185860657794765853631960604588345884668501853700152849074475092288809961164178058046220783953421977251990791146992836133823217345555796991652767260464374741417332737643313640191317764431181543940634887236980887079796605960010442234376888564122773710230172491480542061494748023123617872368817470427979336217425292040167664532820442759621371639621688431466143536724096163247691103549846556352681423913677745136311568917138327670242251129543054700953106474377958573770295320634175339765809377805269225798274292443731336183345888807929431906059380904590322239806011709978743496965098936772603240206372262461528076454207366169467508086186249083283218824191942235928942513115722525344018487812767716601829671041500595976188609339641887413797005478280615969546162789553493721592244541507342668057675522607798616424181095844631689877140603942771775497276038100984651505165456643139852211234637593849759169402256479496405170260340140103976814856031270261946154157564358432883008087242572922354875261078614199717120472148449453935106229703793504109238285405030633201488921703575963832184819520299635217732429062976636987050758238295636140863989428343578351312812298988430682370216526220577781346072435859643397654891605555260439161478661627969768484024683859984598637938252876601562176248608997744897854881442606469325091318787634851707913812180086638154828883130461413135481102500796670790779900002724458124534361553339046533614432689125747236452344678526157598168018320185474344249459236650383068862670950248812443159056076295853559774543200241293476910462390242768717474671388015317887595869435271776605845121996116696443245475865513312003825908373282424353833989795972673242814705086640106407708292337290420134582149669776676469750226337925353840549398729752742615299794754971736061290073304413687736091974385550734499325046703633851554956990751595230207996773592029824349733656003751678747463969922333993962399268705101412820530724292995421380649410012027942977948040036714105797189330041552009294374778426912123106557172230613643771055282071399279868823726304328040662679365984261121910441836370695759459120084907616808396328289371870672192059582437805851746927514896377365011900970635845926623328918432856151293455157710247456680059516333329588044593645613500887517526613203290874988858307161176520472772970959015379523375416261743413480399452285749233311218732136395193761673425957032794696813363148607156220059997931697392380027779256489438598967946500423667840144436051053068781339092028620820264748767207044610291209794615066752025965249755559852308069868323924892928660895944732235264616309426407489109660294613806175246741598333878796164799161622820290300963718864796179788847738631341434482246528223918315703456536979477011183546771620827024744114562574239343500489047967988038957210612190842120142281725916793028800872518643658906775856192799051812798088781538572775948448939600531686374601865477909618693065851882773938462301626549367283103745263806231189399118705241195563056720905417057314876193843094334277191815748924571104384419613826213080822692568656468293735976272525453915358620317858804495704544959615047732164617135705353859289036859181675465615684453165365304670627611664086413948385459995992772858635896900099286930596820443472398137811408418110521361438562417050271863317753480146611627854653113173271557601244208824286785517603127922928985417348592213024107463850680267410792436549148621970902839908935302018854273000607556806713468455840764929426197352382920790956025450015547418645967088090684831828276809481949207703439872650434592438824385730124250571511399703373133989129518905229680623385943000110407422570306142880259330200443515193599321859241181706892317851214741935914287973848468101204055591847786352722779683212293783895638986472222481792407637318416463770708839498238453002023019087240506895162824636133687513420366124206456027528427587703481660959214349342265431744627760398943774077274696813069538342794438659045214557346124840469576517222002921203710562945272821850980674192773171385294496127324763611411000449909502590804662264813500289792591856213174714006911902648304243666168010555443170696143031675204015620262631476307981738471673754452313016844589981294653107322519475494473312016902206952264399090401172119697954173604062423221489686238704453214898058845433935626043135669921007939415223574221406034515312363804317827527695519607261860411162997002698545887630970616632944955934199009052141628066728283400435806740316407130425197978845577943221224534946285842824730492446100939442905437133830260703603413686091411239073361074572855257352364114773759956391821989389194980776423070961981554473580790666039408175888423071967993173636194716766791624093792109741816460290500597840775993423650976957711774509195832185619590683225562981962492641971211530723619558371946165765046970032362886158644286565867186890716401247343397099877631702845420048794372570231389897923408593902902473636413976942355610289147585753409827635655325037103529592154184587326684717490320576461253644868814656038623550395381398722197639206530473201568108154770972915622278870996868259594891993291288966719323481728384746792637364365598833410495247220072046575858604083513438698024324218662321401822295384762121789318461438776230175164235827110969157495330103713048946684458230587772241144411849565228766189964513108203654787406483807119197300165730876575350375438109152437725240898329153722564618682840006631244150790159827110973662098527162035523225776626592431126412217264940105293805517643078321983149948474704324617451992604320155384427956280278464801454610651285538102359011142060134501675437002896194657855866874376177730175712522272747705874786016693896158874324891542234394922167391111130348910116499851145964026028682574395435881915554399233830107374821668616326619889299967162267348369810039354946029408613320792719623764108353075266308171785422213660826141513570396097878002955899822747255484728515655565293113508691613712705421469563410720969666723808958463686414819296826372785831686878736540340289624056644746865124443167533362206549354649059264872316811997636528497915127151175050693060987415941224476333686581108018056489691999730040390713108596004945826938631974706324713762235737322966929383733782178423664791148865508519823121423032582334720939301031004314006114192098472670448804781624514305900782977763356891314605878554660097667742555502864746583684442658815207534692246366505316833628000995580982457803839542692276212737836612629005533496971959023684474818388293117608371638207262168671434088292001205245550200491139266872005166094383300838844029862326480864511944783113149599923661559185563941773087871302871421120278512425413760034934629494096732775879244046056065416513290144367690530673133066376876042856134772616029724980513902491253764528380224661840128139873666580315790429233922955870020225615475772272228647830586023428683514670350528429267108299196293307939381860142838986471624723430067021231090683337215434191776220211413902178324592287936509443612879693652906105400900022067357687718926051150144641111477395211448567226033829114196874095493144384419358937142862941338584697511786092200746875191796793684765637866766864447808061167515493202425002452268497819233919403293164019408005546073270981349484103183867722887628931971768091745149684701627451209299405427475482611524803028114731016604466965429980744103425415295351064629066543580741041148129766087886938028524924986408336223673332200314718334316994499959488569695610618672926009613426695271905706614358193158697899446258440451161495730964516596691480846309855388881089285888707500368944603363923603711270194923035169882705710249462815326604438871743013724946181104446203967644708474699456867879923591600453296847767810015028922077430734853139122920807883229529406291001277548218295678640301978564529241015433699806335563312342744810239548413026678175028732974153903757880643787752333385391080421017005868044385802275409185949324760860396381214463510831952906111171651537643399780929991461864750308810301439708499353075081982331083939011850231469938769790574049414315754794401252033176140765547998455184341805262964659226809022844174808409579282828118548006864885160955551210045312535761986245474051606886937221144426516928426684926238757244403901284485023652871728307824831214133471287517265257112939810030546966290470222796102556644849861281634602051949361891219829554263261102429683546897144781424627373038111525205844813615936799663597895638475716383459081459083212889513118607652078911975739016710412229289792464053861423174313651767395284208486361963865698932729270602212182163395304806821478534582126509933680136025427685656055486706810830419770724647812998592892433842190132733545729409944851237579029420521163802679609606315454364622410766689738265073671517659245638306130637013533735707657376600550901764912833994235553704196369796960841786646646587814919137159811770186672592831692816359343804701257237403127532107510740676833419444240540784396280568735404581745756749300591166711524985695048899746167633396322995518955323626560505012228065272473004326615257878946166113158569187608768496537708348981474865185204088981298756641072231695439590218526693153275969499333622019447256983582591409017022928737608203041238051749640036411220975872796643774515697189871698046410263025866214798649295764102461916845865393340070834443811097544782342534376089561187878459541703501398240288524948791634495381144080028759775421641394996186673273890237782288664355206938513241848361364470843832550994530179278653986429507839405219538023741137250387684486645171900305493319026848323436756529625536841110354615909454897601131779079512516557484499086649586493660144963736229292774094221914283308391948007363352403416547291422160917600127986866966373479984258100377693851991073908911676756092002763721932047892053638695736999382824830398479547086908401842302867031319255200563244596608900353044462142586948203873710979239350390763223806443100274238843600585809042652303698764652256525515691646459036081853272245545301787292596227903468185525835027087836302482359884955470617044513348028675257027427067339613050890967383679706970717291865236242915365044167677125250521418451437834303169727714097194277777653482060300745602001686644874564460953596967569923089954559661418821780357023551089064499231082845196802371736549719742486620793966969823166796297970742121977067676357495409914702112875311517825970219633280581652348245682311999710341319632629048611274974351646600999643964196706169277642086652705062142505920520411085568079349738326296534256313200996357590767907956307143131509587065970613752548571790227533052282166493177881486145282536206115109994104776109316912980310506207421971474558733607377472347116854183050734332069566479497335136034706401295852612113412478935614380494556622231835891861422094546404182898836848620940854090152812847999665466841392925582479153605703536665703373615764973578828267402471391391028610634804957283774549245312784353997077799977532069897819347282164630426259429875749160381350472723583535654222207549518304330403853426877459889331593476409691197494539125290071684565427536278692267937455950952067608694042868703240235567370284812392239361463923622403282517914508374941728517574418765775184024980095709032859937444087398580799477549794979235537147435010019146722892913161468691979199662754237026734426970661153060361757980871932225484700801317627758928148628685104508265580137538750703319758936018862022407301584971680520089518710161967237110994948874982500742540889215461860869449365422942493531922580310808528055567984089863975236104511424004953534746888655268116494635576934823079262692112994513124102462726929531302886471040814969389458487706138323774643343642101013602304291649423882701422345086776310454347487949830654296349289760837264286196702012877409224768299919449357148152094445373750323173600869852635278003730696784018385992643118054968692063894581628634256582126210034113169715017304073054166436449287506446526050358141576315745582470997390122462333205071711288338630157534743732303450737136153500155882397761703331458251134284306852497356841002766724700801217579733061440213080530058192937030702433330705579720486204417579438730945197016703898410884275438478608954902449698951190264488854981081251315573930597294174463110411094520126162037200451189464791915950641204234357137734371449653824408813424548228732685335266524545028529877012474411998953299183407677637378954345678830890823491878475626523429284983511914799815365067674709550144526472501246148525300329867614249318244997658005392553077626342252621350854259934092863441130725829619027518927791589895487355921853088733372803409263206872165065149046010095578074581584103636879139107107483461562430619673020064139322465558383136320891774113934310516319658085515621834047367841846323598357444825110507185635871345672541361501735084569391237168420255105229916453811498549364159626440854258393678422763405179567143085557157102098334104224799090973345840625365144628613237820363492838107435022656616389497308104247754910171718404415926010827500991790761468189652970746523814203891652433460642232399901234420451233502661333878599716373134043559915160086577373517888112082876470891025032759344718916313940971461543648562530972157536625277193574877254445402091450860288141780198337732849909860662156572947246273255235746362690443955965347520765296028444457418562806690059384719241891610063939179128745628307899548217153997822471239949143930918520184243194094277745012596211609598358895506164144893987111792037129204164378400558579886716672172167821281829431890025083492667450431873151312290100136910565200919052471893301297437010290972687423231155289760201030988291736278217493137275157592189565391265838898994380631541088406979450169762988403905025471395519086952294804014995946792883886644814528690619437174058608675442507046616288870171646244324747271604995482225994113161264330381354846253472910916445609098587906329479972879064212694202235641015538130923128693085424214167086992662995109056612666004622747118081792701088649408881319275643693232737055093143028877560817400245334651598180280966295700204968284307266542676867264387146846177915858605802157393514866028940449100349558969971764542216183427868214368476907412052434229947457300523028696542046919678691785955192910397436515933763487477941081168469683956241599614556388839842974810715019266944902413039234559360679354956087590965660648555085653070599536278709987043493013679646209017751238035772275513896358745434777295107406897485651890079379636531014858741098106697717765083866038993736024057168981775033484346931410243463568530170642396625275988952841264353656599503734186902032287545254709836167960964721698397158328799827622704687008222504488876142192233359909917555242319871472965320236424148166141354205470299978503243138057100403745751100331097109198107366606243963388272241376374292861402317208896088011982955017016327763634590280311526128594353590085344398862652239797378820646217569119076089313695613184472875031721842245070987939032887174254996046138415866431523383873012690647328538795795327427931070866986402837433963950087972215013740684737287513729396077708862738586363382443282023158014072969136800630504217948531631985123626445888686244718656847566180493447382387996656963596029852083113533444048374357578083490554772421168480628937631228308029540196726417850553975528629868384591212705902394796180900354731226787216921022382688236061275281211318352610489269639363664455364741464956293674035301958424324588873933729169063952678797442147476979699408398169418010447984815654981011450700530088438957665445619177297814531069827951392762110489271744967493173278921339282974038130161364646023776088792308875195611506566213514671838889896191047898799682813876796667171103755308209794571390249799753633316182322385174492563806658158778680008892418960529637214916626403893261254248098277126597643255718681355799632607758907575114357551987764771702366636746973952040339475255827208511252143228905614933662232362259334296774664407780283523431923864339370677491292954432756122961984906806967009112992736472696254639894313914425386188646924538888720696854764064914185258301920698823101264714218002928614592592151915080034474044372059129600009524259583724409038634252722817358039348368877616251767353765784714363966211749803055544509003260587732700040163788260251045586997126216193836807169201916020857675642013808357126360709398198800724361063194322771389563346558772305525588125894580267904069626282599960600931645846451884268890157695444499781832053201546386346934262030807420947484250485534641254560993633726305931027751225548332717608533970347549042424209062797837377422634742196322068201871162297207962090445230466661422400002256805007483642659963272932160194179765833926578114988138244142066066821303460405121034298191521350938901739766535068694558443516437647696800376355075664179285116167167078338781133916714913146941853244630509967379278754302829272741842083871082486597470765800047800651922019926575279349678387167962980157181026419072280235401673319146150200173581413413704316967207044043666478247425162574614024855030673481500493531552189300082770709057806823727545786787043588796332025112998619902294292423991581888803124102002113947566646897174485310507133638992147941419971528434552305552532057160038406377330516662535291384055914318750622394460349212954494465283228170620437713025456402989828704219375283869132861378835141756676597577105246467975470467162073311380429782401030670716222289349400921545000547700577969124704870068398249295081910464624222790691971597076337720034415121085028334080653995840892580855024684935026200112504977962405059702975924960256634101732105853047072666032536696621231683943200057436410935113103249982900874287041977696503026618574509204107559714822970776758294095542654781579100241453774759622385554366444722177868381321992600535272731860243273829352555126389903873404630390709383439282087432828378487798921986089300684531841430265409292787347238318182123246098285560963129351607230659589000273262119169278491027515772448740473713890524662678182615554609873717193107102735835764774303776074296474541894929340477220012616718196288326775151472587140130979075362894802201209768445459907319265485848369774030094915939397310731954975237846918128635168913088430432614207010261628913362125169218770295412053140402405664181946591720256244144687575168030386925995146820672577586849903024660995890297608196965702450233222549959323863742913000791833690278148568730476311474376148742821667962440002524639921484028627125140999168826425281826580339611375572646682880781932297865778634031988525551407601719212400045968019795044132357748852657405361361970650573929563879294385341463439255224504491578587658637919801437198046343231901891322559303254132262051701055862748320275004591026115593560657879927708937121740871890669518518174297771486685046873137027760309207272271935619812276453730819729653447452987779019267317230734551138102085264528785532504322884606792053236334650639865375377418235569512180993619015138498175161918780349929910055409131540130409524150454017797295096550748482728842161638524395398742233185324701292840349229297694233494472527122838366845724496733081849972494167912976840035693420359303645305784824769789247800883340470228525281457451974178769730962399921609905656400480353443609671326443115947790332672026028436372608312420911963845774239014067418442688555450808104242180066531526422850634593217528798834592117637019550726021835052933540478087696768904850488559542176340062495737370260215021052492468424708732991774212665030001302801864598586268177185663633527186084541993556929077771059051753138478514488462960067075401288003594761859706533446147362095755163160501538532215781542450574310673374530335289509830237251479415882165293630026105452438231010669908740132426386151726290901252229562577206279873077931344692639910038684236802540474383325738336934839518420361145660482376224314796840282570699134317183116570089910621657481367075590388811195206723356110809616675175980043396376530116163819898986444343319891897634624040964107686445994687907275898572019019831055763998618723506258483732844288696787470957751548074536646792687778634343503539718607058023416598485105465072329283178426785893424657713796509447983509702822586812036886230953656481898792318247482995576196968081303163285709621105203587943556879375280650785572939218561124051208905756081476053831631166277558336410966914348922315392024917530610039973378631037777303317012505234255999783854389053712553363570981057616087818817544772111005901513094826273075028538830973393946850208067966848548581639839958098382138478665201400767999383339585545593514429293512052716604067079224982879954785865281084290090829326284677523471172176883002966730179327124487751596336152078332258458347022547853851565264538678723203091325568923576408219521847206528313513085897404502619459582965292752207131931534912776613475808766472291457592369758650777503623486281325237351702995327155985623592423016143004514024162535433548012730553738408585564129067782762945134816389828775602888240239754765560443427777144202219819656540597222678325393687735461400221008123956877273440985712306114009962526557470654726761012600342050120362049363175239766449946380167961683865786536734726587138335649354431275795664091956654887672717558922431550623491065081297331914991203804892480623448687485653090980120374747990458274411105073036639638164220689996043468544626589547639077662025350551488758044333086222654669122772304459847964795217696171747918292765342386471035992756603857007326259001618084211624249233864321857473681567940711246419629903305383795472014131529576826119361146686262658409463079230231564953571162745710006577399346220137801335410829639118235029817086939473174522812012145665859480082669787819482709416250687035884747885881393299793653704425546066469114363816035335793744735027308410155057739986714481060432093476162954783043267298834453640942944481060422175762100931778650980970773073766751010556963043627137836990097228707097651517799683027296309563527905562299276511244396182270593618749532492099732230682348731604431190645913319571640582122387549630600344580619100824569164207430756756172688388841427625791278025883430569306004300725698512007982110020020479918441885168434733337057475013277276034729942826649065134052989306028050400183232384220713125727357728888447241590294236467367240262762605271939013957381651255261853206022073199105678083748956040224221116553412542159477120798825416116364680408831613122810857497071700442056913786697810774599871547284102534101869231886066445552763776725847356385863272839808696623705505944129971289458595897241082077489143645775394114096352507084718231335389736208577448990538992770595705037130377407679354223746436799543239256201497309074581767549153911932259348480818505739956299926179225774018371404316894430791966177771497815423178389307252932824672153403875053595804991945161383703338016592708695905689315455113904067956207959932347934896950413228048653391469590318403117484382746872509444202887768678762980444264925498485594342643739227957987956050522073227907938421332948950083650937332477731362481870984308287012863572206939819146659267125419824052741910594469359564043510419450274219925503207024940009451322853666905549826759702506873700674220074958087041964581715023697870081134834372553008831480368677649099475350971187621989752430885829045539415617100943818280151981146249752692111486097636724483611652322671964499425368992909682799577797272274743224166312335547738479099397270162162588861970766707994625310803954353350479100035756713480475991614081590038898563215371167900518417774190757393052820900224207616487077007974664266874873304467132860335444611487645429258910844486507355532032004124462775859608218674442275934470799588602574032329712915674772161551575697253569260473367227573751046656260014707114408394308827371900435065346547589611585603351181334197624602830981701194262027595114410872217841226931527162406585155722831430725849373517956365473838947609734425114320346689139206084555349693309560736610285911318453490587849909392127315328694229648028451652876261012866199425714953105999129823816294079868098485373287530393395430694835099160598446990463344398360096558069151424666434137886735855346332761908764014837233568378047700273388816903582004034335033201462043495932194915068790819925365793697263660223753412661455692357248682672933091154507295800285379996543139643135207833818660618764154723039328608947830024474334855719185116981495218351679875110903132673112475555016031648688450233053870531736672012124910944656793491819524174903314260358799138402646077458755550869501256649275692330282008870600504419843862556800432893169677851167612829847509259774674485681313068041260631193818249462039827631970216410422063810424828143787532858725975586019314170607855534043800883007123054100423378179953738139003803453305399319129312633831692051054060005806454225743568061159567343756232409798207878250086069547088499998652349369682333889616578590083626460487683153860601876320729624990214316385196179688412112264950534030109188821526695028328218334465692950029427831968024722908731914161613222332466942134844667030386393529169844980790360463004432255744602427584358546653555480758286598731492355764018269962992607138120787498379097931883069234922484819139667927418707631601095829823826450526634157440580748494059175043125367848716545001721366099669812967911762088029897280501754986380108419107108219479505914836543705502954076589267349054406587400389995743294055295066019746893978563894857490879336239388069223045025147369766291079972136757802579760173743842825561818306512840836849712274144024831561057350978087523036115042571232556451263093670635737925509654149371485891048389490849360677013014579663773381562817257328573122498203675053610764386039724406302082981152556787800358948179660147209713501927731911553893392936489606323131176333558951990590286192747323710057174660076967446616948568965010498040500136829723677615195929749676110521764952500441285065910936827779060586132811937558009801744382758343215540598453066050006109407911259267190399625156051413078826483249568298493786050824913974561266116174799498070673769751231831034528854864112908656276856716856131707507305556271345026155579659498243481934481874382081470632555465042467968165995019139013309716971292926611024718149724572340199419011521569271578158782544344592732035588290451529564457704423874558242459032827749490732504229558082145404043089052393728968958684102339581933346336798313200994895690448203014182023388743329597612428812165204963390051385770864828409931966658684232035211777410981725955234154277499192749596943163487520014022301811843443497480207603035277911414063068715126448561214032485235586529544039498779071012672419927188485560129653086695291498382300816995717966718288290893990587019538524803873525291493833919443443425471984269402097521061689298621261282023503809632940753534437431294873659456128746120251502137177199652994314445580985867180322841886999013404776547376743462298064817777774759431627939314859530871698565775881505067825610773765005777385498525331070482531694723097656187847339824099098806509145641941799030067014160594128377563755111368836410095184295465215093197946574746694664567500360952900458270388879145441693219112196057768112017295190999986438618261360442279689252703730555828100394285357258940785909771505258628390410059584451335292858011262332974271866332791985649843587948347984655452502479412345078508671857259695705239216782431815676810894056870951670127737847196196435232507269623207291480370247773260460326900997823184594588466379169941140321521649302032906112003516761666502313937360939129784742616007335157911396711595100270336456439153476147821728143112120663466967408667290547145445829059053185635854678616199921352867278489203905704221717533306415668151868462787107902688843660254354519351409710019346259048855909491811341804760960289539707905932935144274580857564584064500902939182713296709093115608415320678712896948307895700912081159728030904783307632165934702431160067602956159202814640251581142078749499564503540568042492653269870895475806631675687654827684965520063695561295537522016966433818569681182206330773710615999689718593425490627968104449147755471818103053713145794734086546157653960613407047664074976657616934131086437816554632826274823998696209615628702233522032739801723766989152424620295285951301965365509059156544848097414040362685479096684106703986406833481427589795686481316340170018112061745315710615904784903471752406200309444129436671556853683780550243784153095423137191108029434824104845315258783225054927899003604865238769337062658976505679968441104666086071573311933102452994057876825882178363401142313472345543424326838093788457633396901124306419074056116335731934576942996050067960801283577738449029118431509355258189340617609125533671627238390360044774119069110710178235382423654741961773734462972583097029005251777222043587685356865115322288297837068601978465493364759634793937056576271757670382675320766300322908434229789553493112429317848836925769977701654949843589950085519962803292356361262669732904513526272654910890080391393203233553083861565991221480538859281046457682882766256811331920872974403561557484293403340185211394536455916624594881718324743405069582422794735293611009493065992327182171596857719254806943541716276463757172216989571839368286957508436966966197139122396719539653302726763515012134175198832444718986334466655108458393514834794256755147184100277015484804411993810305448689198761670953175255964695235417921377201231859170620282528417581473352525267735385258789078483842514995520152975284633694674420516974995405592528860420224682125476630140113185173226367057929770020884102014970630231161835324932637472441738278638425861792675390377484761611644393347276269787669962220120140296191497904716277474289548557595230981989272702558132123696229459782203991323592685059417429307145952511224323409339330835544314859662418111401183881002166090378513928784529259402535686278256244661190080339253044292181663367658398604586699709835520720302468901398429481926136142925393818728236000901934332132810039887129173510322125309336455503714809863176141765352237913504236774268643357736107665197870511408003057752203884888542890281334240251437047350559419734677087734702114688792371192535415607338313716346876888818915660589720003437204007203773461105261713057752936165952764310559468413535210376693484858009549889093998812933205209895039440755418146849885627553319046393408013416753251457304630224732099246109118014524947440660521325483356665465062736095983461493805243967571091471298291592784489068100396816074866346994517807488747943651423250480374895675436083315000208153443747196494331215596452580716389887098813186752266232287170933688033262020719683683653961421470879921148439155870224823770580754245829567032002656951631694264891991613613012624268529620959861443964563236137059413037615870692351030180411939741023695999046647912054973026630606237465249346912234357363206868260413754752670218588938860920253386431154712549008042266276393162016851700291299041144514042598022211801050426323035911098479837537019895284621590310182179688208370389768052791142268769426507842972075346737091526279384434629320046908671269569122215236582668902950345276290155433435766246373465326228670520812443378475512480427815451056415168160261114735797242152583125098661349196874957655904539832528203495817805229404572867324789993916348539790686647654116292493348698373327124250701310592938713443298189349740827399607016021325237076201977687439957927199267358588594170324861390413077331694894759421302007929383627071187175777991340736324292108115491678231875879006181329563821062661878225112670769878977797087426171259125275770614467090551220626768444729461261883580103995168220108939573106575097111160527033774719432468567948789344222656844240345590282621175087770764431151921024081484075510327102840219392948650345426560868896445457386247780332299842027051429353895770090154283441860815277455820434126302925423844015112389442829444447326775329873664473227687214761116459790426074255714077621808692654940987671318456595663940696872204105269861096427642175074523920646342219315617212381411140559629910927358209590581918237556607876055844350848721948948635241114049339724354510655026091596534012355956422309678727680454527261206285122349424410464279492412442354444526002325323543634446731405886619018734607669637209439168400198978627141287510226663126951465910109135357219114834350516939391759025837154169074594508526162177397746031503816583155419652586867347041427350309804218238597990821568144186697579155775801514882403279750561442609801191355601618713022124477625772080143625729452941234598983460572806641419935311521626863297875956642128635557646922470983850205923807671852679562095725050268352026147391939938565778931595804923258825624544075133640195459333237729020559877674199510910980948276765507211517338031668240195552625742678786022128963062663576102009719878597149608354083610304603325048490048726034474244189111562191248898256948667363564843870104770523588574366569039974886739023589139748022042188423225471413118143943911594595582729198667056777277948199674326507471117719274535110646146110921057783149826898978504878722331130964070229504749124347133054653221504318443010584357241547170694019744155581909146749524219244312329280708645071061759047503698406121852985751997311468326291388408962955122662376501878791126971783724036944534514429712390151233524619873862082348814653208955898351492649119452520139098573594352317012014190535154651338555829360921571277249597477728618726734237874938951449388254440138756419597069258779388925956443986341728388437228338084804132151218403975746219297738083596553433016024906283534605311798203900673071310371605955494968812670811975002276362106313085077622640116373165568979290988079704915565679384228841876431416299051529468971382389120944734772418293352633695593823030469096518353565788511710002933453328412083085894142588590425737025972867333670621632476590871254241497040136392303110446148577668581308021228557617478314553740870822064410616335114876782997203471247126006114308406247826713413732309602058320773775428908354028625619621977215292584475635295185717946652946422284382626301446624664430117177638731922879861060992868799931984549548529271591297054243132668720617964187814592336898639036080618770259038408772801737242692204674320989986725877799022082556918741763751924839444586158157188618314984918390431208385931584924721900585638988216533580605321555041924203302070781821705661743996923800624137573330114420018116076048686264178157741462485250077037529429098009081320189673821620520775228454443894181702060375733442244379964935257290002477760798754915143542020766148085736597486937423729032011538948893181627412397305040271021685076724841049688058367189276650605514377853818125776085680863249526529025580325096323389880804002448035150528073285887270519081232496600179086484152411809347074503119919971762309781771001377512874604058470281621497486039978499952951909787030131469476587137089622741171842707380299977394082947203853618629672605058721316319860526603612871696538312292786274636958690981029163218034613348341430397400426907099278281666841240474991578673085366459898343157122997442705958267956544822931582847603635213532114773420277403686833628870883266584181460729777817151229111636109404982526443696790196258898433629233072029332085295764987036424210733525900088111026753952378387154619522349642220488030172151038824479838370366819076064337639066951135386306681331040901858856987131641757775729819941200608132458961007125650675016102660675148787168351546235523457262969928693791079077244882370875182319951978691331332817370811873351008461692060816497428072299723651372070043266959281441875202802971923308441512135974402097651282993057348751251044372075775249596933616812937966233507132186899243065731061139100821968727261530332828828471636985685045144770531787515771183225049507968242717509432452850107825188285855818183375635144149022417889524603717578953975609495522036667525924846641122418268083758115206589747841168764971842334674750945377710748220345302419790904942713475018692242487305949646506153393487213465301394419394908939526437604250970342130821685042704763368033416163974127252038180858856378673509734694168702639761393500668589348188190983247908111926358719388555694348277101356647625678872888131616192436811692012081674678506579563282808009814096889850207831037908884721009107049647796310948494533857895601534067817589367163216371461765750137620334211658104736801255464359777180318678469650595447331153219227190229992813033024523571749919731152758131545603816980319604054277718381227418863046475388404844583241837890742666956407242496214366589227294004842391076144880907226953998969295883941849366947080283576496213102635579792692827797964555587422770447542026743163104064570040418940753317286130503996620245812121629182054155616755041621642970571368858885745326737385083117983587178948988588244306036252751565664691149314338968931114291093656438466555404964193417282785933362746017691552012472800824076827282367195765860257447451642395504036097460728080747110985109539824437534848536703617249582802474023941694274996411373679745908398130839871914495576767857729685116889106230127317238654177883708600845039371923362818066487568257598177998526918306537255750460992937764589452051812423738001726461952678721732005169083604274834614802743947316265016514781202686117130664561651923855677207850180337378385059254067749908543998635857690775803674361225856708724287742515068798674552996771954108116938975317831135702805405665859554357024787762685351947116842683323043003500082145713361397008719146519981350919484387121401447261914859631515903337937617854713176007299135865316671641162130039492913691116658685138089033496888588130082719275829107183075493327894342770988071892949378810934952819025629460476262810927596702798645414595042975029453535268303254846142479067406104991183048015303790716786193023414549012763409597640818219245492273121050437069397129239391389901445273104319858108199512549084365835016768396788677393877579964568317204171204300431829937200533863015396235347868760863247791132338974176447483221781103569893873926915449053040876391973777417017052065668368254592335151547181111373930083663356142188377567629251833354642675944839316840113045563297476656128089391381076041459331481362381640499496944207471854730944359190801570177705473078879708262281162665352798125788876520029338019790991125882791589473015219839375237247652744918740529697663924549425763907026034371302589729541492022410041964985517531419837997366879819279719193241885411967632751785758477435770219266024867139619458322940612319922983621654533249496415137135499775180755916600136718293778152748574012546249742068952164745942170142756789873977290982973816581752947428685324046600161667743489594761894760502427186260754170143099485049934378968137445598812223996174592974329812492379437278491672892780270899656195306227840610378578043458944456377869005232818758513496668018348727475280863270894445572852772355511776144107107432974967146396186597892191280406885998088916085653495702685070377311530494196445927870415748156002322624919372180386964401832118793368143487500099815646117312803460473309468885661067057785803714050901640311353806951103812203717968917152783531478219709833640741324842016044062688103308874278375022151303601308578354543288329321304535807980391883264170601362889448704152144382361571838604129755345686285925955101998920134539351030221132059552938870128192579618293257551382422277635874804606914092210137905915380303774674823870970116409236167345015740343939987573201517214503015368934801852948299477022888727880327830218228136907192624980170070126451113964869593063582636622498388357240102926834361161210845385695087112040989793070335215047454481732504887846141869920801242140955760292509614633052604359056192284964302480329085516657083397282067752618990486824459988846795186561337189138646786372069235817851773247680965412163854810839184944160200462036439234612845032085712121274627306989361538334442684973681393705502558055620765702616875678203028468563041228109465354875586789813637984750079290437929634782595096089669820919084334813452941055809105555422505028041867958257104929894865550823336530827276595469355115785371778870063080028074691655548999207124590805524568682537460814465458643211582532778120620277960092428334395904112414960705343125137229781257283663701720507276250742777612627417256638350113582867009119852024634313229853389026093593509461534898725618487048820166679258370562918387913296569957145081033717048051794809802549637533227508339018517474280632006441198859553689384760492204969568469331839179014234810775915211490700556081965753320393135922322875487893281541361367491857855676959717379222251012082001977142121667709746677004852393817832186163122402035158341488423604106214323683928356525499064606432231015852845867981363953240606283421985298433458347226548514180274371436120341188708079031072988031877577618732988624152203448424809996500568655289608023227547035578843096454112682225802710161443590172643113067097433017116556987710365399104433107234707251319513510857433404144818789675898787138820997290841894233685919807397999516134034998454901257249852973003409102998722371511584363121543245790235350511634875884508807918851860130228749235982366627581043931513983522298317479865132730538471674934358638330537387312222760872291280497998033327772906764289909547103145468666970587879617811133910917233731915102723987677589887160631672006847920197579500029005940507609733000773388862615138556931512772060965217137879606850110434156942223684720033097739660249877618960106872205431060250010621636024355055298608881491507311653748434828471051648610207526453604356191639514611332539038710157277520256038429800495679452950308560138468911588463810103236354643061722930529218457981408623572274683715055311821761114060663075697285762732471562888614496245537303953519202223170006808941223489474123652471700253475422122253240431412148246193377407458656971936769894864702840293324821325628167680098882682423397777930094234452397249082816658621889849375592008105434640379861618043426845128189007970840810431115763603212664011341600903608573859251620891641163342544221012719023622772834164647784568660564096764167587216284607824893771148213221337364553796435822683158008473630229060193417868740642476740636117907776409257152932109912544886872513329867964602843894723022026654176220043608152150421864687433632747405593234278853787904978501852530918724910617679462883859058865796261693608979035293622311343890315078200685524580202878219971201559536949917594980650085892001000157286377788989209106264552783942379148452473804313933322900129586838618804342233231477503862031854172385339818079028010623091003790713559869573848403908589973332708340056593609729040598104956489360328060982130141647648301388304546349520928662546990974615802980176157479474808432287249307024672985809187518073908552135772602479121956507441009836524718116469218879630401547795849405572469450729176072568847512608014890981112458893907892863984802374036660125543867678056180011709025556891542441335518918356052342359909930139803675855818874978903944388675320291490280688502005433558043335899460939003458749397779546268925644167060900703615757505807431365588872558782615460204023718409826139698317279623473328843819965261923401049757356074998428956002041009615857904963604873331934766849868915247321339260091593488582722532373815164506431698941139631409904535440238110711469199672299446065620208286502470090467506305479991554419736184420832733062335888811052992964265735621839686654126583701385170489720780382592794301684747855685366531839914399760171925953254506731488223352691667506632461413479176912124539715181075679695176032828265285704318923438790964169804898009725725087937337355174034397324439035946725470815013475494492049357257898836137760396183316095223030231868606054428728761881706053545569536577983464603748926203784245122481919620595087772881502975611408961656595910460048585189621618324101709862792678453981297230467116838188586127257657768892671590800169893968004404243426106913910610535503393460910559125447280363873708923363823920122553483112280404698689537183135023043499100810293647587959824500056980793728016849081422735376510729298558572736345410744052522434095604840210053854850814977877965244838224886846848276987298638857859261251101121105354541539456447440845374876415346801436928161103709981145237300978440581129912907945493959747239565279159779372887060574183233189939841466919733988107629862477549514065791239904964308975328765227939441305798241920237502784772367107289746812371365120118584236792521257870684243895070677467657088618255784087735499264168347735671057354425198497941564793883032072889761866707041877968195110376575258214950218994399145578222438695612873290112560387878350020798300299339578724125018491025183945466714693349588402825334491087639722232693647380053832218216334403761866140641049353046279650444395338391715734242808557650918767137441707291235442025556739078702542081993536214254310012177001712150261204906533839937320089487928048650168341128493528274845107840675593554096189962105247017128999398484305682892101318451310052522278408787193302951694996704192754525932598240925512075153526406150286331008769303427730038214559756482068353080541426175705630917467668387820151799136579441456414927525570300699717840894538267820771016630677694194162940438778929520644977083170960150899185547130981837790855941352456662277185908121560338575521370818803899214041159615606623591182158864991225391079094467942709752653058318157346452917584978159023682133916475315358076859165043722849073445666012861245938572984130848201430640703533008196457991334829506610126849492032959782952491832964519635615852985994498737177558541369967907140048294699549004577112031055855380224075808475935935895116962097496758642740559450423408816711465029544137598844352744386438982774509709101669730504505665244677937156716398073285586026154012938563528526755580399960854666316702197728580841509132768370025981523670872837600923076628970012952250089783523210976663454377898291199480463588972967726293244794533112434917209672209232507864094329484849823766444493375952153869154864947427819858266719623879731353201501186976512337055094468780154950060288451082441471676933002553167135552430157865726724801891943412580230567703100301372152469830244763045842460602126466352075721442948361174373351572265300656269801270450191995484426549205963560347573342823692711231102527671201442305448457758434096866357318763688729407788605280680920186877278132983742318946682589468118698887194329215205571429909302088668825428064207846320179495403994378528386759440671768809383592997628437114038374284059386233919740343081550697511061064407243824081537713741375885776509445155477662029511206610598531990332733086870423796774353959797207265128690849344639046199371450270374152596412094393291810217482504167794397756535267831465667214383108765602704069366813838608898757612778437813654431375422640259437880392845171323186498674512479297169064891973642090458060756196055715882465728322267223046765177132704111541635297104146187076310222308386583116965647585884758302435800643094736625497528447395746592466252051349399674734775309270675170934507683513540472004300345061517544886269492892343350102751199096012160705431116699769289102689040810536993288928297100622873931503898215556262183207032031345077641751245312931799350901871909152462977430165816173129493542512314771957573810770108929029674291104049175952601478123156361752651881461635375621446453201542069600110851303507494709805928747763028096827631109122371428797784397472627008524548578198178577964218819614527434802358930896011343342290183227081945855257835425654411762481148785604084516580730861864130226664931501704926030321966246211869089364760909251263845654395380962736604494936872737812180399597388343844218979578787943398393463747902040731751248083108272133375030385201991807628042613408961108752771021075738717395573765741226230724539633793713342961304766416401480962084375446673585503053353612432298108768559530460284913157387769218848314842899216791938122235686749571094768551146868969390174887542358484055483078229767827544171624984693665543425329040232145575181378501616700874917875659399819386055557439522433749649456105768664544172117455631258796668413494141879250694731768303574637229516866763678418023584919466456477131312689920698373772883694217466941029374899509787807646013580060771063256382987038028982397854356330142943182746033036188744554045001584625577599134291348620293522223113797687980229439627957938057559052727580214249412269076681208535224733768623193303665961198988238467759990846879985788080889775968639995767285449441520720813499125887366625929447951863372337428045777416646648671240761059810935517522584746206563156725354215065090378633258787872581222561674068816238087571486723883506205486099112756729482487475571433885778583810442100406917517083853265630301726290690098245145706621607335360726150719403469605241183027631970284009000010294618454735302128278662135084031549871175664345989857582569415011694784836069941836462425658409728757780892906803123700173083002431002879532242384008837093881838655503753837370629329614883455778677851854935799538156154739075759343242715363507388143313329670052845329330477413834149359579377372424319977765103375336280862973375385416833892687335139958871117666944785725053366367780461802784130237420264238626620911788828969936736956863148483797775106401884487437456809891115631408764886556675097770712104652447515550568896170997567814004728748981131262273097090704597036075869623376957551011348225125210786587269489685259280161785138440949947922304785016583981892923528771573538911912471607863010587898768806014806881647096645835163762861378193153117706766018579544018277334219678373328302718936042901632964759150349888188374037762003709685121050962532035757751226480991007805052091231334181787800811057232651102562298678692223440374159217828983170757408633489297064265571564239494034242123533117795849179459325667956559257758165429040343467335975739669380781126323929185803879735732851763866829133376160587564290341265353649091552825270102147678417478824614203686909563389786644516403579465187702826488963008155664409648036844383446646383989125991264102252683363134110331062729789713605286802421016373184976714665533735526205350099427155651720265259955005965528307355558220057822164740442370910078552437810165784215007640459265721204416679300079812312723368326417468040272136246083631791320200010180125697624715082962506405564937925687983817817474205362011012963212724665215041484951143387016641350720981685849019981999472914211520729079184510637967318392706851035887183596447565307310963351012014656341774820083753887940470529528012516339096524045820624663433906219289123335350115058340995743743251624710621145993143214851208210667214317520190060011756229129261585153575722054076189012810104111058921254579762372759184799288561405989177655420631999952677042348354318428470234738207714892533093416870667570570872446509347332642876655945338541798126375318825277411637997018868859925508908787751335708266429175717518742594060780564761713792692927748660491168424660900908184791008174457618009557357707390783820361107862286005188764581380360007262171204100290769496648917102518255145627341928707398808973707968580322644648611210011746050583352646621314593525044494752746170149542642050359961957640923294427211007865599410970401596301605638426088378698896201711228306941209227524706966586906280808702019737364295262755002073223043251107042204023227636239049792114651092601906235532146262530671126087973709730164623467675608319761014470876404827887565538239011932336132461129016873266309479410233630302358116239687016678634008154298143767129417525170806706802391171154615217705255978313342585583485867239038551340325642586309610197726691305660514762591414749492439713692668554318255733625550035573266517141277415737973375490347897408284966125212446340026893852607185354013798749967879479744528250525235540511560315245348712117698218910065073956728270280345695706235696890552077600280602681761620638198026085900206772435834329648521945735191678547836494984284990231078817744623257153383962837379193922447190003252460672749726657402273149389626059229571130786093067740474169008160373848974836951756187320208331498437589499574535468734029511089395526015982594358640633838699412439667215338220557136255167508687224322151969704619777085543280911560842986096536712465048555481983683311831314427535226573467327834222681223171951180612084845393709621961312143049347153084487102814367634556593442053420246828603576247997392725678939518875897949297964572895708148070236137449128992469062061095685261597564976776753409485274981465391659105951004290382783213654441149503183451618966787700852695949454232352819461347057103633411591760300925658847701792899821533126814349898800605275690339755748673086803550568187780425634517678523125242518924513664167218221031516703992261272706418344103774793685002914898844842245502642731480894931775286122896407878631739332246243169502803089793699588489064034367283842440865926556100445234270547126522247639481001431667329001692358939549869721304096724033197225444318775110246389435031624487427417754719517563633449510484521802450484458341764943290343296249656968961719485217146242176514762747736684158414712269388467825071729004397050665471269189642778137654005639833844165451877075339126196311492991836688919998114966575899959813058247550602545961255453034120635005776984637281038720057462843893783195984786631454347808022592467529802274514410969455395132581452876919500999389325039618071147661118569364076410044184863197066799325606194306735880561025618659431415868988520372731023538470480863027862938546560141521667245103670019142300690963620098119898305735867716746458680445789034335973115939795912474825092332178791949928525992625340172489230825004166061434243796046364209841461012161463681548754002709362928889059545851379963840380479052219485979122982083506818158717892971206605700069428105907547789649391106591540796410991542208581466082738898099303593342469857219444488946229634743891756167951723035345928216986957346667483755520069049545865670080443040485188184995503757712458116547970223843185920716636435061146679895215868683912998290134813105180439271337611117110122588158212966069917184185978393980982344425231075596977039560674118153500132810015266731101756734147659404801555890883697907243936113857779321794271647270048954096368164800443877126322103054100068301819825649770006125301359732550574975159780898553650412455679248056958726090627591834115640732789933580780662171226368540479623800841148241445945948424040369532639639391230333978183020517217023385504314595008780539419721692974128716844265470974959114832846041426444732903937016520503662471899159510670184851573789586582595072438756516556260152295545233740240167898352182262247539978581542918128030842660029255544346867335046535047600899436504143977848077534741088261001869579854887002775551370076104792644814310675902596901532073650983004566141521545536373425713792685121656332681122560081404890645813970639328508973603406181474564475264712827290727194322410186351022536637645674959921381931578339118808208333964856832273395132575474400388949844997932636724013054770373724835730594219230120177630611493255255799443443798169556584774684681510492150635651055891423238843200563663029555092554986309909039162026961066150161095883685001911330025771474510036041002631761546906503777944394682228634065735441259405029123763873421216758488022700255641798471427821055259907654093615252537036322785223907207323286343304920535807107930624747385628643938711236601477052643718183685650390344400078374981415239398707093037483147785921822201079249842004110041084600398818022257568563969925855550800142117940641524385229010029735864217024119849262090187653041004311466253177224778465822097863017357127340270194933211233651311737433194234021454618341216285640639079834197275306069393795115868204449388505125382575535540541240200641954078751253714739228259268680634747346361519031911011894442981399256308732152635685556657812630248573963988248934753024576978371093399906450717703066146796723670066260437532187529365073258637875154126209229754539189867140198423236548987472490026095872094825244049872768672672704084913104426685690027574333695115572630991107184115858969016040040522301826950349693215301724475741759343217382246531011710453279126371635231613058925479988240005173873670583108893303746508386856973740751990739188444039716928249142661838457940165240821977227774139686799070794915952973796675671009697610591513018897534614337576689137754163667132490508056270785850082267705006414217865255860727077550000627118773442123597029983853012870448713774277890417169305896661255113250680664132250548692037052141692907770668008762903120919546287836605194179869503457436152738343020073226832023402752262798593925550314135899844053091340353834011350757439964437230442567756595632136949607645775823740163267168906727373560319042095644611827819192496690341955133971498966706917383539138218494596790885121900530848561754058151249945669366286204131692425937972150753862122172169259735300948053960157380378015953837721087006112315970377031517826610562102585171401777782763869075730241753188432911480872401190949533826597675887057243912737518394968933413457502612646510439930518950126230906339518551879458231978103043751326738061965520402869000563128474479888958410314384410692275952343288975112798482602037423414115486838317455064074246168315708354544762262569268709925380615862836080628051453230378725694058788305514098733193899448793349701050736611247971451104418270975044744156668474367879244941164876908743473713088058345268979572214421320517087744491699076715148183871051527404739098652262609541664886297606952153829691799171605126307770177950422681508013348020532553114717008968501218540412860714680712351510260549015424639339428130536554867220381829470229184019156493032250392299013722871485249306037667537050783380332473434169018180849200309007096157636975694444773483294996651544118544697344094632588961494159826015815145869439195663003271803476707939538518248843638077519461146305159694286651615005414122567666087458249898376561419922392262198096335435031105110623410140211556464013812170443651880715445189385854479617840600153625301582754925678396733893315899880123797846975890261859250733963375707755024692397429351688039760774212972098994016331348359236915735356725792949923669429318618580658458548775744206617601759661219481588948434577272905879519722959982548674492129583575569667992266547700075760847741292314522688935272499127478496889199529293321138322250950607486749163033149469610521374763266158891958010928495647618830809739616098025777383283726093341461599409756374500286960081396947723104046776566250517203380787977507489012607242090879175479517093248093539812745248500245057394451008734773478451981676630326687721556312253884767978150369006221628979063106623909527701553919076347203758018860289489650997481313816762228205958621998660246184277487575135619906396306462608269934242221887222722894588401368194909206895520984615142700734159564963985226015006233840625856651068816760725960921684807765880094973347709529619444319479726224505125969229990660694447815183003921297926139627327145635551270920700582496715292321072835261725683005464342620150353391268584651221201996712721593703913700574478064828450726261309661805883950047545081354433584973878760269593650114277773412914173664046731028523554270685921416870503232579842547735655919227125148988758132685256281762575692659049076676736962480946684264628931059044767076276768366617167891435341789429687496852973050158812853753755022266343072274707771277630193548321723485350018200180980747198405018802512699734437870060952752214587462932564007476119670579921279589210779872904064441702062557724142689920229668690432890954598509002951228333156323298542172891845838668020279299442749548890509235176238268011414450214308456102562471529099260115513319085709158234950165099250901722783413487609979260589990403974960131505619543566991745487726980270513435806498920250175254579505056741193676894550532923792016899724467809946741968028522601111351652334134900349000842179726056030244009450375578924855391293640476265214001086376759598284766418082604042506207927124863852915068038856037505112736665787151183738892613071042526870447586412216986991129042295972435971350561318425983494440705372806161667838384481755591641195824040892096504861398718621005364689022010946067903448708437113503304291320962681770179145746507773213489433586633752286464627905532562895956104742454840427324970618021008798002925472550701433637671040635983464423432961351755224560600100542059306600213042470247170039415851684380446315882479540724965319096366477680738540248545644187602152736381295523848021893225081112587113380284320823329574136165919234119034269470930489874935775384629818617530071981040088035250876427339687793543052729175794987830891691348893826423106770303775899332752819176912682951760140407578985195113035348615697409382587583085260362319251361303750330983647481047685290947964163491657028361185808712563193794229892345069469091295213082597335222300414426989428333465623598125414333680177331810922161070548699827282596627421075947790842749999417107795060334019352430223828436782996886672514523989435741846277604262777533565705895469050100790573867177253359160796206220625810299607053652992644197464494723571097578159744806095839365343063559651721279898271253707317994578594954972410092022642861720013006620605631561786744934581748246113548218956085135395732331981285283552372136052548603321342231931421474469715021983313050354780565804284076968729438676618831050361059769530899612418261536778544632497838973976862813370968996518801002460187645615187893626285241086246272215842020079690367581948036421208309091555711413887766316615116673425309797006669399544471251951316401061968656158950028447759492208192133736563821296764748147717349821838741973270461395019393950049406999892321642538758752279599133347350225337146591958150372993292117213811801415800907844869809586903700296993123750668185044509367629478029818219831750337322541783547197477710288696783839044062283628471841219636878570449820017325732056316465181742358927490289748260090142065574916633996333321416955060546157325775846027802889925443612099746163982484308253533080089370273149599169803208478760666680901970717346800497638289108089346014617450895316076269847250004753584398125206503727727443733365688511899750257583630515129408446668777941663698434497298007024775138418399654554936390283917422799673574222492799590313929570538698184215922617729137462805185112038151853688228483236838789691761665772285509124652278734696545805982544301691038351028552110446742364772878912961469486619135510709973158427152108104131365368503393012653531979915248931554475236507404856532487115996439307458986751960397482504433472942292292146069537014200045911251159414864614520807257462596258827282296178013743450372994571783426800921406537403371010901999700381993909098207557975694976504384753219097454247311561560534882884205659317845049316330790770222813845147123853984993925371830899746924951107017948348708246758097193068335248513380200500660675148951866365171333678463429470928430099128458558240958300900578572916288086127803142409270804902045877281361229429671119944118233815285322256241312138059509906826671656096584080448697942617620036431967545940105616464803836401522154053922892918759227260648695656360676581198186351687712061942790315816894883171165281631232571169691879223550963817173873579453814320509548590056618821201348579839718923721440779049431359975832702471389484954472465817845481186671345169583001434055425745744100792559515211655067925266755334601131195355273337568911091740606799780736287152905839613307766426434786782606428848968503165993612555630997452271527697918847093040068880004051040705185978885887049864499159968053607260789250749395087443553577412506227261255481569685741086929133364241101080565348869333458239678942151682984187516855771219283928347702245514870652981269141502612616409962945605538355849653480790659000368345815380910034235692221342376364967742830861358658220823745682239214037471075552362166924060401015972873392713284380099306821029233555500309125174670504834698015676999920486510543394383039279971498456240531172099441361193919090787323295294066332960084407677371229017762941643590679963172669146782012899409153070605207381375683794653096834168790474371457172341186604726782321028124962837916491019493590581595067946783533066714257179401384453423666020557691266535768630983709385348080955745912294293746410569310891879095322169481178868987994009581840997547638350623725403155494474911358504771195205440342781288591021176420636350600589827813025702647537397108184679292882315802810349935000736184409844668978681938255585944468971633072141207298044196397721973670618595130740947669117591164148637573858294653846302487157082793328284003715322384927408480243836833954549961775051502033050647167140360234325692754215179040471091496259083515034380334427500428025495647433979429251621838883173511274424706386033046156404433180145571303850432119072553044844648188158635389867385210590038959184121438759754041992081932529513827588153936392988257507763231484632573823358897413569718330106397792214932421685158112581664258340791294723317313421872414121160751456103440507249578336135525758823347586350859288103467005371236804029599990037484591378719450234489353639632071014324289940761800384800870064651135032173232890411986102177228863035771804838171601687480203952802996858995533476328591827428143164849974545431198650009856836471872392192889694734720605055418288284849861620358407198935859504011540162770196652141744618160468423146855440409492427610327039376950865467762058602143438732589287914812680254749463772724722782924919521532623356212168904834496784009298966536084700388576573910332244068321434351976071929233176352764004699610172817635508489028734967249990724204635983899854260248166278997924876507554544944861990115458495209457092761167335330175757910392761795370017973386977242392795732052892148550772752432817439330357692978403235922384226236258263882985328383319658770241097522886420162426475401828629476848732651312100652497747882261358250091531007493839856847038610959897595460899807175698757573808413765745777100303724744273960924224926639297165047269433921532755450871955808561731874865305898093487866562015167043366400214191372854420934415816507737767216285153222882923024404933553746199005505138504250832824905456702016049802437156404471802372267570718004972295744428383809874678287284217221998416038865748733805668917006262249614797212269818104276290257129432912653658732249311417644157960173485606914764892635699269450920529144115871735972002321114543590950570394499124861719057619649020230804797924049028874103110872334299385616524310396870791900382072600147932671405005362714945117223400011317864543485506902263298517247669885462548844299164884343813158357818542235343199047483112793018681566867771070400096046009724611345766861781401414120932804544284266167953012126457807203633048517671731059137604032803062424744517058699071783537632645992848328431220162244507278907574118456292119484717823249984414091746153688277848497024995671866962028727125132075800844370778469253705379514055008271637110027058694321891091831039351192144628328243330765590521387068856713186863829831735219402552371332663128065842041463834909170650683754570934810015494004709670215864448559848484956816515817225283996363469073103933767325869773002949683332509674426674373906581531177575027827387456113504868919022620223202000924610026336821456902981585262230009497373861146802330592865499321666107454803053691482477692333388428477546950099799440353951918649699573943723823171762603286624805598790366442901135546441318150169188395348071379260413077505752615645378193484574024375342335543132619757806695117384368086212706217671896806264624703437679851627222381306122190758857810307493163277815391113812241502895930776473409769716731182584591850587440067547730592279376713186573276496971522652849926185744669068731033467629969288586016296320820586979847832544016437578730168734754359252585208486822422762680371823182389062352184292394779237765367700789795618235855116760999565504984472758703399672026327860827906402446365439045005490361428118237455745279901862882830928624071658667428599637610512441169422855268908062873557472268426316938900993038757220105683156802375344246666295489589858958394257977750618609410292655736675680645904507581402166641572092188940614624740923337782800447674258476691384647974087082575342511207517842645939240068846150472830829090264160105797492364392497150028266338682997738742546618929732981832885044608237450920382396691057734949126503171008642634803372470559582896957273578848750215678563675666331557938715042970021892055661272278253082735911878729688420968359443524670148327737273916185835967681150618349013793887920385614056797327499363781752600124135955117954188624343668338140683169765020564227100988068543631796685338236207663510829211343194337515183428755520520629797644747025003143543196079067017366485829053912780612390066244157886889757204416374386247864102288178112612972114759917105161064559055449019048543896156977561117854261741339942008592093249943050559926286990184359320572300322568063363134059763932666243313715634862694870498692237383163578252727199126539571825362435906758279645345001982202880776869338104387353806376975956735686331144473665258422523034270944468217027465856826948750241824888991559840273308002275310651819901971346056912183023762425209329171711319793225426788679997030777908220722576835443852909509346512207852963414303166486281523613534108260636482948246293843809498038562021646912971000393718753512811294828819096326343809706037821179824928935313626055733620241146924376030203103108161662370312889535915716769769019807633328275757771658711071130235944099346153500292715564704369284792043536811526789646239577293532242511689678763522913056312120968806530643409526253146757761679617675604155723390401307684692959827524691271236231543815665802854390697053700768054163305915156263631778213930706295700612829642825052158627744958194190270679986653540365850350905237231115410222097364104281844439309196509364390021945708533260061329745360266683880401881853572991101963700566269147098948990420756472685031068956726043646446734650468044093984512688139145047033534569691808872894325448464295615119673619284220466688273170300489445780644297411273182124659179296739474780832850261112446588044295147000054950600460061540799096813861145178504310782231386293251247278525644779246615719869784165361513300239364321773288764354258309941791811941880620426743745228022045172011533702654721423571478459950103588442912340193081606806430642769940777429785264229519307601527026936468108443618746264469214897488774693319047446077300176115326681382430103772758010600008077540968877257686790454655490692899968495809384471523642140829064853404271104896317951428199103017541888312676593037736021305005138922821925944634620529324098032073892158584067642650510164305450186275482327139220300083183145728491861177669216642440493988698586142781262576652725886385710260080889253030622881466868387283866911141012108507369393343969837058095711064082019887019118953152784682644768680792516152528491791515018344951951301056944433246557737321179418583500666131021605440152971872289976953437314398090845735881648903864232586867442901226788533061779218628787063618326491459791741276744802434284292663241223618233182232995772353269395947296827720563968779132089903160523188101430797414670578584662546009429819512433935270398214926177754193227659176405766088002212192693560825017037052575899294508851651968924264530664764771382739806975640258078843235492698482929977211124370460675526776679749857792006778845101959849806123746763669755263858020266873689550141859295028694293912989365435287463597739612627219351974620263472297997792257748134336734532196357568312059417942075729545940529213397421743128400651001936681356747578300992115769906951397450991640709759445665625258624003537576156029771732363605247868590790478936394725447044476225944249911839237503072541103424792594209117656337230284466835568321555764241670200945180671583642039574878965496408035665951996366013463502304767271746090642177284710972590863834904868167419016801179221258307833914730191078246729787228109656332575226790201493019557887099983467885203790375458563890428170679430173779479136752536161966182939692808768787964675276734744886154323262663304354031461390508839280029640944309518345311147646231991455653051464252372979740848056411901579265962860420482996159371000030723643710790166969675988306890533698510907451120422331249384285682990915755080039733454341026878197963504222536465027508423089280360409920146015193018303235004075322727960238754319687424858062901231159346753277505553956230328612426924774929553786440051453453327358065745703517015409210516591003317208233929415887149929670604495256773575262032731729464067603531263424308715914754202681755917447202681601840098566103475127788762250688896593040593322978255412304353353890193716470002489653036553218417558945713582150341401808696574034828244498576845121733791668047377963480653475341420646243286827897974729730448717613184723564506907446501947637211813103944049077151737601448563593328523668809842424177156127938828633649648432042429954573890177362026998376294664532528109431237582617873504001721948825905635847639226258786378310146841477229908574181473910490668585424762460114991054095102801737412879203830884805944103523371236950984799947651778368806045452949052510041281525061280692658881921317372252224897409665095756477030429083274754515622548017812209119490570557488060058687196092066689361527963168438611681014353619262949214308431357112812790128097358550595673003011153965611483979304576388071238269711076621306928122933485838252719712551717754708231847522471782012074391217016317090675235576000688782651564380565757002454913759183475241740911298255706055099664056595640991946058779959902123299965123942584791314930915636547995253757310323027856508162698881143585622688250090121253102614543953163606382337481303507444792735925644967536860771477372558303519705911434273513744526628717813369428991684075143545168048060985036075973782392104634881076854516593996930098651099189103482295773901105120588566920319536816530681507865859958089551595981694160210232393562320056711005548719773628629728132574805925639197047000939409096946354231087672595247977709980589833956043936860697460992959195698169095978512602440959927365134109900925570873321018235957044859428460024841392542702811236133238778104247912676559145553533168118658416250370206363516144047368960661641803467645622621166026699425492513923381309690996409502475392833187352015690281126610600376195410851348140495607265930847105422759752963892086554853570655942906035016078625662854370106314483434492192275053828662228200657371150144622202726405076997491117992286973334408280368902990744581285349904169833199143867772302908455201682605129991928513793326515762168823948221604468210898455469739642448954098437573401976545662319027935101932249461898520748724039188286719698046096271054203620277540441788293304020989114645961703290365375722247464324231616719586404668145313347382777802373519466766241035148165391564490965052399390522953228839373458240462748871425314472560541087934006557108855514672837342014103845945597871042914065594026133968858252565456229327408616215274050193023989403647269879377844001157713584999344072101923731027693857480471484128534161115596317806980859534730518844666021372102145024238872092047900892170648138737085747137120359291674625669435000448440946810453753923082903821236225171142981180222054607705344522405526329323889665772080694092554473133455791146434924716195690699825065370410611850799728308313108480282547213338932300845747615483715014523991472833658863070533826393847100192213985662096722625671152212927485338482134719913495899232506226079418851138975285891362679882569109826145345847304790643061021888252253081573799392610919664739980266989873767389857113823045753985809654408755095724333576587388652138673103579134902904103774450151959987869770517615650780153872120654962654620082914769477915007412060633395197082222379609410887526314993229529430292701775394843395976851858601441036483987094181684786716118636840228005642108686404594564022498628493800796145362619096699320071835287097720925862970006924056325934950983722533611820567910434540372783338519856879188007667242350936440597494099185923179484974759245294150351336974741489450367217629147312411390068675744269351707591110551730154995032358702112354293681803732783166307388656206943882866466931691928922325870182202512169107290037100559301327282923040891398253589190847583351267875920834877281167687553155053917483759702660963368033565387662349597843255053537734242391614407880562004309852652801948966784578740617263148202101362426603781672891378852186141747622725570189174842520664416692865758530039642304067527891667697026573056823722711898973054926759062659441310292820863020918191228891946539102108478740512000208973325673302304711538202481324782187680831612074715176343453035234466839705708353642304649110571263794334834608773730485028369694946021420281835091454568444756216522944259847837333265029721881984170150991387529165461212675534247829574704161491939501877787780623264856896598995951409445698283787470013312679365479392449577423246620204328945565436542282944326758743946085476867766857809216152808826771026068297472649488550967643107658833961911969213752278467451018940692773832701589713306705872758006508785302418980847131087966326462605880001288915701943329597881881491046923530376905886929660524417579911642938335527274341890260062296700293272658874955410575545958193378815044201559752924141705608772502960273372169039035998222316482263581396861930737967350155393901025637129622946608783003796890684583716387070145194496728853820814594372405342540595849664359383876377868410646606547495111282880381248635233525615296093737744258972310528576973432570646408125142491795554947241737280630006452939772778397950070788501499701720425357347644224967808319533062315902570294083456354365523795419115876549148102971073830218744106388467722303900590169841911131716468416531057651825572472828192831101156975421326998145791915601052853884576694627355868184471338667527659639970044929227769980726081269386549508323490033244519214861885518971737021638942728557349894095260907291981720919482608137629998650224812492360187239590546070636950813200920487806811457126099080075514803052072424174379623630177930859030321064809790377443371442445553459244700806975380047040657362651375997903547361610367678904993803734116864678671685184581351103307220359971473799595176068253486483909409223719744556428911107298307542993143443158347016540439390330965173504117837498837917646811621879304815844759992353389403502189343976134526125958256054283236033057615214740540426925179577097726879522671513526088533166487006169489406595644052647332001769942148005030934971286609626539036925747744569516795868128171044268101626685862027120580249530820909956337033545727895618891752955985728523639954724000688720090146354487963758169701987169729027315937617886794417972286327667152722166241401316468112519268791863389805349037977853805944750887753629034406460657001315884114189199095986589589911048824609037518199054674604740339171604800876670863449764250616280226929002561769520451814148386920788199204013568705817029537761751747214998036372596224616752681972247801080148330414467193596466886241286295583166280502865610461712825442860259806343077944066859325918030438065541435111218390945931611928059238720078475370580125865582982156289106635208295925161390942320848250008631885210811199741984808136470566472183256031433220642449501592452350633813712487342658989454996483100540606866920562103135071996784274735059967335241128704359327264458150511349602464777113502952184344007479834941449077519067198268028171611302811401577605517251778655311045387937780552250290795230397552007881550270099348479985878597367313335916147864191425594791321006582316631548010719030183748973542595931659502312591826107160681363583638841667170077194464050659560081277543497765779844667799391876965347060449835252866781337615500311520711404563855982600042987006895500850379817998425830499967284644463620901998068063212583855218012706161847377565968968131915535532522997009901274376095404771061115812200706796843742318454821270151827196884867671801535559555257150080772880888448459642820620115035831488058806416158106959205691599605233442056089504132714246416831801097659551451657945614270946911383117468122660610369454911960319672940921599729340220600227706973896897273857518177110643822366493408829198620790963264907815290870483326023121500593944702943866762141429697391546232599569432091320946217376018279471108515004113786202799407701512717603248142341300289329013176233692295940686628601531588215099271913448142858697095077872808411586583244394841154732895146206986737984269458213610227492199393012651502554911169500577377658803363782314463349650611229910461815596720764989418860975318994485452571119892816808183393215260210568177035643748665068503916482560379633597128440323878134180095399632216316966413187966566359201530945712940843438798852425625693740611447962476441350427962967186452235280036478030260590809977707413621398458061774014781626187997768801162832822104910372987046547694316511132411650557389177339872223372499472092278198370698028818316602846520405675572723109187461983286289311953672301359923929657068572362803312424732975491736814640216757111537647834311584478124888183499796579420378049670402969666521653026865840104437388765666552413375373203144868297106402554966178326304184251164416989092536148663287439657808743712629433379591170157145206175797338878416023277910547214862570294803053571176162484466864764066769915462426113509477831382399384953393000454994816332901598646724091239742940134997125957053469338942397325170442994783001474605986192895219601499674694661048919891770222745537797294020535959454714246943957940991399745886611200366275755617652904718227533357111877570808395077364622301997847394982538481975332802884094181666486256413763983497205601336644081554042337988129081672050394177933466464983539574474566228416388234103748463786283337062143366543604334129065954966749340257636042717399790167436062087951609509081620908036357690169040235373247976636011445680240295447045017896053883792091597960666562500661663503096113618215692239296248645491780128920674235370739698346422783708871648504055709094171265269193874270444034143759030356115538105522631467198845944521198262016249933688446177887266776999012247124217767374156073043167797488291204877636177659274250070797617042751310125696714431053004991512601620887329782427089568371126503860229678477698563490223417997385852918608641841085127982926411641191845268922665816393262767880595312300636818638819530834940229202397117957121865101263591891576559458096612669994760226737863226097084858403263517213960096993839857520234239063194249755532651223426988143070619936081309877381805116311898854338971776772273566854909932007194065322204832760957955037479222089763758523998633951587138149334768421390055694056570326326226636677406533719012242105024123521772387715187846899507861243569141427882090426610255477021088540755836355022357320659233840612952438682780094191692309455291186063597380330940538255414224536017260530129876624431110288263625164852277517578878648298230110616741704701782372457056249337697480477620253729996059386705419104290888179544942158755043985718386958995913039771796079728329285799979553642241089223736143731623495827416757619360575804427648298016681533490881134643686353442156971676115450619597858951286786505049624668915249133051842499887171961118860846886341978084589843952511639943654252251771547663506171570205074425849285314594688145954375527268078572397795249216405252065054601887953298558714233949560417229153487473333027102875750574754870651422985081348310503744315548408812793390579445977847731697231197691495574506901780899873428255474615363661152105496851643120135066319838549831936054753237920947257540215735405121151594271020278800768388942961678951064315267723802917107791491705752371479234161550067545920406299055255339995642081636866885153661562394190972326698422880397852260628749711768998368330796961490669421009861238054382745917961454305219156927858664034951715509881728070461680979229786225008518896039161274897095580109402017496137560827769744123616633962151706729278821798427481215415544951955700950473448868433963090824120405966009894281437807743558628261558251754326885630285700087681721515326348740215319710347256091537958884860412949814481875241739065122050496440072125035041666960690899163018671099977946358289800665413816339088370210746531171419377279260256386452541649821617057032563144886847900290812493525003981838234133403929698925011516412258913904184106415043403756337973568102949261004084284286970679940163648281756432390758927660482120442193207897397796950341427432025926492539118104067048168480863799402442693377655788874270738710473102140954229621504339927554923160137669441753112233442094149886015395956919658856314279676872294306867196643395373835427932361601867479654481424441015296588827075335501778285197132464102258092855978455912219852728004864520895438864424397293765643195867337047684159442711125520051692287310626063343014147195580914647582255140619959424808985875802005252695174069677902940554351944876217130212145428436796809292251346656155968942185942187765190596524093594267244250344975663230934248350912752191576887028944393172165804355298071287814336091661735760339971538936988262424174688475963393088553110535241392001818301851371402392132170723173325272723054618220241758419012308572440772743825699204988491388787037165856979620462435056016730061184391841528713631840212972713694043251682267473873121239989005314832594858598552775433776817127424000657655975326948692030331312843658644831025002064328152403156841000827708912128675609146604714424083885207632063496871241200757143034893170524667075513296741267792810797139759102307164061446221690823224407684026994880588036788883267174987739190901301722436465605709380495414314853691065506644806032327895437833666708178809623125570109490089273434445736573535679642593968107446353332690030819336708412988889755594260571104304810780866860373776418879804056637815571228067744485341859144229347214860582158190601481091264915460361717460526490505514972865673962041170082373545749210122208331405479019678072494574492949693232183569171138007659335280792457414651328762754454015996066727741057080009528815889157500545677804414097427932122639928854302662531748774284552396239076121795714988343274982259826408303095059696879463440338369322771816663435459864965273269487722149536430730429262848676000068545243786253305961238911164625412644715886345361227106783445223404822100965570117038635186782074110824431245311164803109729393731663763301282826684800619844207816953190345372818711422173956017752995009931650254402071939664036777801976786170097477975656478707260418854638381257190925470006787466792486285541606232116505666563365003575145766130617386918844965556778090156040475859158893919270144784071824420964646192000491465707491624054429386342275885635114381066099549116531953187552790746804923983743998328875149566562282454440325328609919134676154933875926211585354488001240777800732513747920518408725220765271489883248287768398316256209060985006129826528501732322316323182255362099533874013031305111027805949098066379639806262410716741541800540154235236228240838885411825435957652722512864913564844211941815823017967997103867945603305264124968026359190583092187610223938470060173997538389894267467236125576846837846702783155172284628166837887019463854651457784160072364930835253178399269097652757734339718334507060047546881714687310495257563071549300754078598220937746367691152760212181279759347015570873611966010909620162599355969114063553860606141566249944348167123334674960235897258142747409427849533711842997678284398410096365974561253133941441756690474830254415431384919633042149076938248394068567786969959660430383518700819263370190549481628518947157545508383951863997517960293908126741248571600999372271043796726601588952723991422250162456817044268234979248066484171906621543542149978720630955094844018859770390432219450486113922271481875490084709318340963929686111113236621920635195729605184978956394243720910297294534625092102915989216805590425954642659046276195661209503350066369506097799849582638373384949843823815083145922651712756790609043884836359410411406142331500086360545215707186071132510968334574754879329643242406597511789852868288449129277770485920654515103597440967776576066652812287658691127139676660385623990853300532633019138242510687508399019434772127227961539229395928311115162206983872064484262081309524971166355513135006630790209874516972901485559282481112686528279010169358477531185200953883384128959517985186114555862717249911027263160442487473902339072057452777204167129096702319750604203625703107973180062141727090662232336740057012861695012475630442340909937564448939926934682760773826629636411696018631427816829700049078517845142418406257366560648569694538204950449898498995679964601071548107328023418698752431834210649825337628604646671891503742092269071047178800860895064930919444591787698180555258017561962673372881809971246500880485088921798840215327664689729385824190614012748159286377401594044112768359750270082700861907562117867721062635076995179058621459230208188599918528979058925826154523447240349743153339948718676600277352069674657749410940627196285159291145718927534001237319373812914469596998904250205026273491891517290987387109569701847794553058906254048089923068313988841738940147491971084422529762577932599253213440183994381780961736045417317671822413663896863319000242377074619720583835699004981664048208797446844416779552550177084937210909429378289550884898923805177134423025353249745712283200546742587949067502635695422255134204783507719065181321691460223586321479297748633575706751816095062660703370777772282696392526368355241046608701884466427079444304666110554771600479593410232685180565344447586454978187187152039402695341938864817377669692597471093890473295249721681689288098399034064236422333382256007753942874038928354334142597708519129695065412704710749747013808357029708099715652016898573228985338340800764935838691043698433999536436047450375840629958381634580598943346064894405526354560268243087692373499874478636490272884532759814713652660859223842688006245508410424175291205598049479373734398556040611171162331523204464763952314302356923813897414187453066434839432180373139965907773220361796031860820297815620612047788747299557014325143805168758626961984255984129387341013499580665569999817406325207791639048913080786721663874290646855632321295588017583826755943602873740063473330570805594107978705398183889696081213144007274790272070548090807416994856283054984280237672897087040760026054985719039947742908192990893159257805023776045835484283677985548178897895884379695046775724307634018429867732467228931880838360594778466206695154413582813166000373050798344841299893533888472676490983400216427705740875785639215007549357481822753677581683515103683132227070155125928378089961325007876706564071051002747095412656431727276292166928624919433965902659001823597153185254600947278245910824437657186123920071826218880692626603497687851588045678159476079458094960221037970454551782932829731040873108743122016454893418288944184313027195663875848478877156245130544449800487107221032742987540777693501931618897709601123965317662955245372933342752949346727733548134675665968730328990337993338662181978831695368548107823443356103248264651422874209284688039199206301437795211966333059914686657991220086362861801564572044218032903897325914582822540662519276944680416450431252610936812730111405772269511717333532073029793741954709229107469259363278691089930826466454906979795945237898300368249690171444881299521129696498475800911400011050501640708857838504148891659751224054016264200780130870786350777953934325519550602922192558428964117158078974860905527371036681695388773472239502146957239298521778688943712580880963731972342484205656038356076934369680118480464008963992296457543110411763577209668131726792735807830473678273862908019437976058437258385280535781034425199958728132124218421779855115381091968562940790890602007651239198173534635426879808100565695561647879186467041848446104391539902923376489427378531909945612901803083253712784534659831056277890698391801884707688201263607414635848718601952335557133241664875128259579758094198936382907324010648398045859942639397806803118245230426250599738798630805287521539449046488415880667370695759708045216751013208946647966880922825733289282976369265089839134833330275439163705384404374554883442498358332699694910025093895201944484322181232228174160734961443313865893079520935398170107630173845929831039556007323067391033146238614096502725611636999371705771779533224514397353744000617351574248744261704555202185052711725255472162424118257002883864863556162232010865338413603979866513998680042046059133588104867549062122444147738829388194363199044424359127199350395169831664097246954737589236334013262610077704645151143213047880669900531410415149761485232756703559878699554534748840370382400000643223732767913200332497638796921116331468912487705672209884408837383659292615572106969726352797346219621828816430929496187440877569018719009934520059759309447166526062516173674861005416511771700256685851614016831713695394114888574054394115184225460399162944210464409640272204919399151194307201159437219153850434501025236970764688778060995862962595466012191910024646247145845565110656801780459157213277160212751230804796371241338022033956319123637411461023928152652471225366076379863373500398543655238873618060859643252395429957543483957354783326792488071414479090890895509488573791876408222869120120217919258463490332684798940333429845147845263543668875887872292639707406506977604087050226411618354708297674820946407066352803527331614352774492874088445950875234771274695382851054797972943812868412719150879181440662254917438916443961723936483874873470516734927015960096049709358526581944224507135992852607507770448802020823117458373685901176975316256477383709335003408218750903714634664646535300602663856239447655298382044028376725286033703481058137171444348444909710446958477830668653042108600473038452031966960530532663909894136128986696768638990065765572941941265930646450492259640196217164442073513787607785733976263838676795013030979917675539047759146263117831386355246887542494004329339629098879854054150310021872692669244859868066173172451247733303182275162458339199428105211529601430583567834492133913380418993933685420137001625288143404554965191281351355796751233461830905352210289892421884756619962930540574097907818241602677485929662569218230169612964847125718575985659722145071564354869123775708603065570785891258177000051857674275552670787126277886347810481849780300240318239912316160619333722229674649757083616082481289547565152124931227911475684267678906255328582558499384850755760047100353827865131206028527056761655633506433633430072580566837347591009739973079591264970155891318651618115462681282160352183421677181656882075647409516630589907540707757344292835501680241130546228139247908984997948178454412472489960307584722731150283955382010152650285624376717609968560473201068586784668645680100543342751121155912931837537598043116747645605512152325422628134610431714214264360900758639772500099862438286528549930808408881831957567606643617948999456731186665756188218468802781736513489047832805102543327320870036779886238741629198699982345985561271165943691257900621101783512074108926383432466558214764469474324735655983740402047089494319429255983957095256288286576008485930613949735899623565053064242865558798756524957807699284806849775353803260833813479797139231957113601835906849531731531128920046433897633288648159927319741698230174636936561114651464134263577506124599527536792886532163347457420689951342200908166048679358649966693121581201280797757713960369136256688315601242545764321553587792411407415857876551895305364029259869707912194469183592588360026814640095049082073855948821889203486178661640888853031433576285611862559295049265115770861388980064969352682627741789178344655882926483207077109164000283305377368513134144764948129505033874044838879252854030392871245990954424236227724909201070024062220597699998042257937794407310318811404028550889154850202865426144035199230221958704374885120316198953573233154240675777457470127315559934946891757975789085259948292647643260093458322266004890336329760534246113909570563674921436906345135984898813894340395828436733166953589401841445235826053811772875075209299879716017866094943193535138927315412423651037605278048297017723819949642940565584588730766212231408162252023099622372327880596775177224982405193603795380944168521066636543071795547868317340000746620132420571139227747263461088506141984623986224263258518711681586711664772629768645959332646606918243147228010713070395824788723111088686578534577718687189324535727926326751689815215612399833657804518874459252541598672020761545340704113610922204580642542853150337783650799894549568230397193070083723772388010210601937178544280762693277653067431071004437341928495580922033423000944218626083150418149949551934918833481523167932625205591879299571986778681687238449342501891197549920598660278963273082844077203220181201192019747038922567713629035013086599543025335075878446057198321833861984411656222535824740160089743168104002990269000410720095866373411070400927517697440702861401750937879639166911306532412708984896444639041106079485042322603349851939133823511991039828717187761010185082516458889221245148745980847097949536362003230652942851332272396812882561204117096213980067230434812352533296199447124126122685869054335563529707226269504634295707847835040585708326238516843434376394742272654929613040157520711538348956660612887519937376055706628640921585776786710602065770925194275444082385471268261781183432053630194654810550924797832297300289804583672778642526756717437616158632440562491862962412097429550611514616994501612753992489249153765612678210952002002605672222462464656713382930239191942594043673619090685357551890729010008722138507103614654607171056415972042832920909095431307167600685213844371850856167723270190241772505711390910141018601920950014950490822060415936467180443561515834485545615535575276347693553229112009204673359282821100002425360584855242867146737069966161054876131822774416134307713514945463824007614995696268502081245412503011620883438269647291111187239279224434317535494722681853456957325380875949324379979141134758544520679882411267505024701139237378846600429507935981240057516632338820174562092371516425737512006018817432366188414022982631954933263542630289933216570560654640261489190652981690072468332662294655749276061067439426477126910636972595249825312173707964103337658513175838396113165974964688856438646529714045646591820372285504973100595439114967052915228088037955634428152613374201061353324188807865624639383921582784548975141147745962034418930889449971734113551780843387565382812501033718689570834186113912826489882095193321116640423438368758495354308358697140159816664416166993843283885746918367735610632959951401504465980361753441906472421419095947029999741865647959438982367212507084269562003065591301325281944461356712777190230712640506083544951577751464168632776758096100704210402879186180281632934029654089245191466587517701366220433874564032791686152387930316296217720725595299411424101535719732833425294343652218319641005856533121496382160446263903792055343904829624535884865516071032794211257412984167953400358909525368426978105826092357178397244868377846634628740014461591218563409461549279310047838525681084197899482877285181885087116189910744595628303470224506005470433489795541388774384640051995279718380643562651617426457732693895649789834897673195518934971492040615070879676807938155565208826310467151500987650309951315580692818779082407645702946714773600795883415761665557331380726206110446224691954242725533076436276116104260315086637100375217245850185457073776752087945396680739509483945211813412523605717882363358141094260640670075451746757278453545559231762968310048960896974669722065165261362410296337806911048019112209388183709212079084808978099252860421557443099308546658991841288482420142650119219691823071375965503018951080009387389424562368530088925419255342936706939408658553542609777509117492957160320898891599746729731389358847826787525518360438395881463659946080503002307191609582179657635536640076907579406831634631123869746311573216260847073268373587046636389239594958517678799458757447067398842627929184631043397135241027298816719633867121891259270859381341062576357838632795877438954167049951092274967229420974680757055753430727368042998421274700096134473936633170946430584076481728303046728790317230762646539294910362938981245044921397876755767083597924761448924509678453961419697062223874270252124394182882734155546401642490271557893371175653331358943138453284869009495523304823030742313733230894817171646439720194990691189130452818898122802900982681231672694946721863135625533470883717969419497680099172828338516729739399639580183724325508087520228604565078822806120862405911143290427175116074664442170754993862308012014432788060564006000767495078295793576207928646264552168304620692539459076521921357412102944394824877384510700014685122342835679901337313719935733518613965084688769734861069319757135739461291414039598130113993290087299658835827926920747538025622081853625722487164468458263300426676361150988117892275055665312368677620262683825267461625266912958286240370347253700638736988601325202010814070036045146068844512335841341674317166559138743669262074649751800555284495358489365971480825633042226054518921735634060865056049123251146887267288639788870696603071830506065481943598769671614235141553501968792000700099094548727108487392017461243778618932035098124736018583072256771113696910384610471157396008019740830968278017230785078464989134084800773466769037810989611755332206942594134817586568515207609832739456185343990524876404725546904305290808015455073950379084889516967298900726044571443229424719810484190844443002919413283830589699618299270164595283163105883533050260586488653591008894810940066667651983198311791238384169477883450786198778632958706222791075376249825652735046679690469708278721381869837229647875311533677115738355920754203847871508773296179299989440818933850842140994214151147292127210182251332473675111971113864468146268466094513192421407562045581332289562399921183936262726958317274002702290918201510314364100694395807422659174989188631268592634655159436184735008763001781130691509756674732223321888435349454538564457424466821672460950479377152284266642956895062525052578696349421059045420839198726003523151249881556088666130265954916652590682314737549190746185527155692126287761423944678951696483637657352364923691567543971564123903906347090776508116504141742745716200183408774613137596966882891609228387775941442987905217674187914007225945572229835554767120043179223336641451341956197448627848806982683538246562384089773176930429386631548935720301248593273862772660476448785884154998166244190094374537673893716633408877308720076605408332718002997537645131301316551146742564245998722585986068242643506647542000006217703360020703065784671362552290561094208864405469402522633455613225513882874842493300734312484800195588664036379032640506323935681486861151225602785675820874737974467465880839706435573515072225689515913276725808766042146337789735783524052060590199337291075149042435434455852068142644257842849840443468021778754083404989148811092552633044434970672143813128045276675020429697601402722700056116498652328822680720801198375889398430450727627678389828939081850776445758440170531811174411682105641443262433464562669282839622800864025215186092490929269502846193379543779549105217479913840211054999701921402838822533897478315196984978147690344098886533656474946859842171694533232767137364754173969130647196644008850060590742512227525521846264942361049091066233022111567715034981696049699165685052517152566074944718596553709403914343075872717843880310771712779217451196595289019803740273302150299459936876356196556796092478718472293193533319218010659757935909508539144412368248325263108518092555799116532839645040187445226786104911488461476583188100181174787212783420822364127784777139305027321650149178330272906467150903316423362684486573468168242910383188435876815680378993984641483637368355452127021238482975420428903785748097052771646925396559885542732554176752812958770242429778191406647854536910122528153006228445125578887496325791288566777795770080908169702631297067445770362411689741934906213164459721713918595257561752343066210895010260005922420116935170884950207362539589080907469172415155621116505028248971798146908446584365742591033273933438010469370294067993050322321069838960159467490311183868621831572858153236300273851656648534631043253875218035227960645884081483201390339245385636939064279164696253267246464713416614532044295837676150714267924436122646831337366316568439379291186647070205937613202213342183506971571181894170151959926273391962739952818343048929866132822059358470131555951121448499147133150424918878700206540677333031707652872312914005278153347432807921155222838895760677533266274383488743172763377353898249793624993463796432718762954344668391547111116937802177545282715126119169152565609527030114276465588554073567603295633459400464677493035924829028442167599848744795917086846270205778205130666647120735284528577773252187860910030039489112227846752049298814294276840160122199803799235623335885607174440042976115888115478307210757355528341470305334722598379334326611845591192869445199439977015809943900641358859978397327047310605443297139527269935338349561964193153606901855022336673910045355477990441089239374843336243374675752757848248706771492884113024882965720095794078503863816577746302018360822865544418966608208986029877141549399998613364698384809103257123722288743896457305283286920067082465587517788312755212584570935230923626587569959227014793338590691577779653210777068921429229611486399867229586507390273039935758730338521423996637187620856354330596662502506271660570614916546663291855571651175399691644805585025309147972095800979981666256752501325135415552352266976906181605436876199008187420729452845482512327998936035046004696001000793149318906069141866485555365846434733800677558734965125881846335536706445956263949855833329395583517478116659744566110524523106575444099581482554933539525130098748985900295034086126732851452384179582359770319089455420062656671420794339050806092437868321687547829744198078509215138916067118765981100516317596216845073969892497126236310497988493045723108212276891200278852393322076189562322739508308766232505106364690788309017569422421563826528003460317156159415029020383965036514676090110991387051171585395159337544989805299454588544752848519736983934343673463806937904332270055767737415122471187200462174962720878548792879502823593311940091398313038025543506609347057941389318551806875036145701629440186604129370770334166812475553205797333151716137557660123157892564806198184098433853522795386816097873233149185756372444902630160907716666417603080199833542431822709525916216305687033195889380950021594706275329876793585457539170148508075115862872174148518057266460600554739152122018214809259679587854114985583038942546787013737279579797923308198343890626043827810703604517960333399120354009245403483825495411420731063746423783133299089553135184642076484080126332409973884350060742955433390779546138256362556487968270717412430963516869534626337691822798446604361645893409892808337543322127912026325946706125868308362831144166795459948253730257975958056475834875111919739816864295556916624070988908103950299427151701804517134086329984780753996510469051993001150727542355526014847357593065999656239881654482580238784781307628528743079952244487041743179543064982128397988639772972347045299361904073118921504626221528475510404805223743723181142360552053613011512592203961064390735259637698064148877105085448597211391548224465154186818444632467939075751256428401949172957495761048749660026326947766060581653518172291269827436944070187518285285204421833572724658662668705591344104594492364444394582367256306058398981476972623818455245270097120152361403286803321554336252424636400305771531954976412376061650810018582192346178446475796350406668685306343920632401928009843540888187915939890452082050013275296760230873210059178276835170667182656794454293536025072864283751318140383673398266562876418344031282206470968734008033631633594043894648332612866159271132800485059392845453141591925455382651320210865656075071183617440761807655745521956908112736990437340932695768219599277989858174358250722315736803558659088083258663530850623804330663970107076436052830707599552596846517302609811098073770222835912398159510823664928417177768816715003436222034520413754894345926131331079837284874044191280159418918555752444630191142729738472194597321806581275844634780528376520816802556938286970552824991115139631742392091554801332238008206215791409283875020264483554896043690370495977293022288287693766220070431427963110191735325725021195608300078774294534267162635979922389711937683483617363379566834408174842437094784148453809883119699104235254942388986532254655732810865199674301664785104116513959467224993322052527431765844260270621321781487647370586899212753904842849871166850768689974053669245399565274812359501377623351857492956896944408115616807047980011574824421566096017460014893692531533693000619729184595502199986053565200110754285107926278042278445397727935177098834460599952714124454000076572829303369277792809168260042211717367927003400282103771390683453662539522397910715074460621327474374969816962714052145074664963567002309446560218908090485751046474776612766913168928706199620497585411617751470781605283358619339429168853755861216887879444684304356046406049700174777956881638343260528143967751493733475814862484803913881645122197202864238940571186821633181649491924425962900878566412531945985106325116145342866667839336922890066927108788649465091910922763699194061253501456536446863327261475862407452230329292393491060898730852476083477918665088650640524883565302543474797912768827895120048704237100386564024659089450284366076875687135777675264406656325073237213129144879492104630684257990948277702442458326309059049369867558609571831494759250320232471816022005297494268233369521465340103093086811303001910307238987848203678684429163972522505288893788965314640272354276466003769943786132449273917347268673138443986953664862377708830423053772078393354301436050048571868655005619231345988075156626284704529256659694546456945296750749808139716301930697147658957701272561522229995564105999014743847946624990914656677392732539817897658260797757943948874423282132479535397909480346245906399615836876489854937066963189412910650979238019403488783209252116731175057756726475025229957881392605120429224194686130491859411068330386292542100725514739588444181882533770863626509487826103312042860619963142740628066553437169745011197665203247551357327286524314215732806472341247307347937441164149178266866159690804406640988919379924013178836308460607475035545423888354722745588187900046673070020193371195281946645185419451981338034914972220397816048912187538743005471546024672793984431982985302751802843992737807073051164168079728857108469500600193209624751418877967692464762908725198220159014716583780431129139919911920024308778007376078394138768353325496320827967663509816503811515036753106664710776123050514507578656747651724017291185508671416726131442609048915005909912577192834054178390372895659425754359658177166569429816406911131944469481367629226138990357063859103052859442130724447111057912579504634008224256572457110427833556441846256427543489462452183168890445813875912518055848235077749352405252655588027607753759378548454628386370707441183409956428075681515593649765115773377099128672516781124998499541896743489413386125699093319002821409900586330071136228547333412121765313535960140290528500859904202661781001233752561922325756319588505798623463787163582369857071971906892626823717480062265005869668698403733063757293703103151039349241910142304147398006597101209284378198484957974842355459348498813487371117035797996098866095844053724278608008419665874814762307613647804116318465480015012072446840859444864208635652636900294759512572896029170866491522133312174617995549617668899996237080664082494561147849490259333427948441875972265402828785829289203000370732643997564094510347715964106748030373707520252955998673018851007160089111472354523231512271005881846130964768780724986908964339358142097430258979561876466046708159199357158581313159751801235585241431809827214943730131147830438849625326285507126601011499485832362926797297143492778023593338850358510511356914121191269470591475901667828037109415218826988298881045776845089043986970770281494197207685271639336625630795284535071461381398826714522414708496595606268765308665227493730075127658263826228892671279753500669573706838294738391454519883864155836185101869652465320120451425927602913569493475477992454727557499196835265744399965519406353649245060404659700614387023471051998936984758548461947925015602811176643024953747984750812975324342309099116815084228899179058441339849956523995302723934335235441332750838249666932442522406560867133280089867407539204496050229198404101604571855352933633922417438907206988217040915173103148627278250668399276015069854062578437148986224959645726378306972908495058351579877137982622505194591710058781576644571475279675290612031915114628018954027267356411000028134152106373857699561840931536839306963808473850673194096640673154171122440704716187726283374803360943106543319836454041681567236685175743983900078748147343986021214715064113151035058986100897792648167296019799931923927370972183131936189678486934504432221989571070500319121766637924382416197387607289856158435328175606214094792383933974687348621156529277865087492429920016819184414722777851465817918729730886895989449622664911292416231359948438814715612528639586295653512007051620933187828806907285505125017545676232341048006283571878573746397232573610228517052977940727448729756947208078160013591035348522086647884427431193706610632156437467074349270529964445142160079499005698821842937060648151171423854899082439915654151442629465580477653917687278629667247466074350655678535175659178587616284662320194600113426563021550746260525836748956861374578394662985762107741839849935302359547671817153798361626839616286167198794110801313905332531572628695449350354944031067558692645298477685650381603980052804648392479131142924893559680864128531308399808841003489764264920469024233523674297576088203964017810644033211111301875178663457802130279070049532436939937027460524272076786174154106804473165326095815359126161354030943329315943130133659924892086999338569691559743432135353921856429627841950997325731003242923660216501973375322877192015134280046838066694937271858920772921895947171392119602587756515033677772693882034975954134161308561209820286036677371537192574690423119421527585008747022367318399294218247352742060343972608243803854988874350060041903816910515717624648876902508873545263356322858445411222739677257456677419768276313759244309124205729359656494529139965896059663124338454813053306161043836671763708853137266242325308921032334629271569152769949994241643616111800263181090376561860142389379229859964042745590047645203266015049603042932713789689084573431337668220493851663833066167230537779873945758510528564801393563448751174946840049382884072781939714864300108367533634937128001173768129048158738273651573515049070591047533446952669488944455195333049095544866355368600147078167205681837277564338823112903495036848515877188732402647823793571642087208710450349171366099561733740677327984074086025121708983771583383374507196366343082564235435081841308256956144271010254981522021599839718715310344942627510469942085563865127453108157271860699448759567814666359910038675168220837969369243882793032873883748662707145168136774443191181372340389529717277488868894693208688608788047595394515819680785797827110063853501978041738532248222013075685903716032330165950237338962248568754637236617227551183467417358475721863962889390773026680739580484420805966842517564186054649717035018949739076338274935701820124910823494948479297565817619657211940108052847511958507633229596180168048505993785215910506568901773275196456890621805074856056392003446114185644862614441018509880662040239830765436880783368673972254411154130357481597693365553010691941464901062978848288270714969713844518845536546755200290382276933994245101857027098817939699944793698320778382453514148478155397046646956308812230009430145517001219667339161912332082214526979967366460538983184065047955754187932443966010227542941189818269490233189267148608148904915389859728317741145824528511243155730601336851719767145721204289255357585003741506143292041295455560198814559356594260333405667754709436629667425759442409932256645972430631352537003605651448687576440801994477965245337068244850895437351497663118793947396623692814405541293460662279484166299548607371327485565640423352133331253571554765160197495107808019642806011797414588985688240333309833262239938749832996576442813906035766842557250068922854173788152437997286218888342975326235426572328122802917113910344283667700036327176999201954879842951095087803335044087511395542249774830112360753931713257478758704196421224879237025979786053824611902792120088628078908000565004520361689460944203072274712189127239401162881901316605138093999075666273155496361200560416953200626135280826951984175654051580228904379464810236232527547532757068579596700677781016108903955238205760548190425054681763404521718159650088327902138085309368280278351347706763568847899111168978216388654632682815973141562582166324512848868856343001507136295637177380383720050455504331075618904090113028827366098491843921806797566328379386786791172755157693089570882527245329512533272120683808412801567839584346807970074475744395616268981586096350032460728733476384918327213984228394515668180400231466519693650197217247718520882028736825982443535541518456844974678584872316466396312496277306472389507174821418210885369810184424183876890554443202591120026691558532978798896819008833338952421307597740564136313674303766490695744787012225530381919081641136121148110441395308658201050522830411198281649414487207744436026067885966001133217683818846633840658004010403953212595180049271225030431259578412293472922179917297486501769275168343704341680811401054777387306433036742039555348317508228656176539875807833632990555153689406856574849961865779135898290484520385020499459425261146909180620057321755717443909844378682702933668503055768459341477901034614473595110652167933254885261376256348316008694284967949922742447793595819133473909286577747155796278114929799048083869332740773599419591260899121094676194489614789724757064900726360760989243069246103373557122254091418157664119213266434979189254784013786131618825390671933143894291670490027297292263931315405716310896751117577149471723890867886567578073299661672709855507452904314163186347924263407457010688996418731656463388564902895730941779982450732182285194644610230731640525104143313399656092035250461358007372687354130784964858114254437674422151069217760720523929924301958326793041938818911163100745309223361889005323026340878868231779671012680265782522217741487283726185564443000191161866016039656882357096433280807326847697488951849391645828860676892280565157910436978211257486568560546818563081366801006188613796644188353971864812461441152826263887291080985012990047480645515801642268266447371882031957768759477369458410438342587865725093395270987881535900554718511653896770782966383327670098434979888310457591376799734262042963778056825374277099361579169275558290608787752959354082905919580929433885062060075085065679580584702629053366167579105801347607235718445062740889804402820210698421516938434128096177346546916888098227119206718194876053140125438686414986909192905013867954550320073227882704505704888124280661090820420788684349679027585060236593020872378843322363591544263682099915903934967450494132289238255612280194328015806085377354535878494074491503114966027281014049965123082912343327762889785094359327152882600217861049318874707439495557646976006897743103616353399400869143516493739382527594337875245830149798361488878051076080573127801778792181370459807384660291619732393570489023632777994837601699797225222556996081408052471673908681950198399962833214575248131304073309014470219852434898061538551896746957976635063632002560349236450170529775823480672019197196933879330637134146891136062406122296160519847465768436962011336466910355892477335613035321208698155445898077774728279867681438500296316129274426736246390084018592617284351506740830680512141619025806971247616557463627058002327760962221937210729306447549051004203195063422470053568006064282760903388235759222235272298378364943986220534813359552148983122657629925122637080373919956990586582209465274332145556784608587799350129636574702306348023225266392719872390888805047886579455132484818180082080262690493317956217940344875588166254940208335082127536496431237260987985479740646612483743236372904660169676336300835045264051168320345015053264031069049602079515395233365041335778445194788366738218326002490971661997649991896374273508789676176784048369502783195001078392515238229365326972071597699861467174573796552767845486849400872707804788625705524292484012132862533718535188279645590291073629678722316595230855004334582995950654574265598171800389917791691602579193900340551874592629585751783644772640539309895748986812240275795817797475702605088547422963414915921123054425286780335902015743862372848344872028247172481702604900189160651659497753120488010870032118617460408751778811218376538407711889167745777152437054552426176070806866817923796270011256130035965518302529154602846550543410665508890269511462236594060906635856852825484300780373390519122724007326445242927623690251873227430266146412170165146466622047446814045176813362700841359008620330471713419559175087128171471627922190058885474694330506719907750196973692931152227504817097464431989148832099467726366483854963448291756769825003829481438164246765839494754480519733354636129059705305902560460225551288420840833633444602053843416302260164301381775540268848503164654282417411224208956402492740373401973599545591494908216055548668656650514288888962835595753410614398839551175377478747963054359220966995322076759411644017656302407948380073391352743480331992656869057406670913593786156088752267674040238991791300768966801974932456977677234911490589844846481326106680013781025225956559934765697215104446402294305327760679920529285758403523507173356122308760418831709392107260756380752892066199346924365036413146888425426709678715345895033846666782028061539595455323062718731140253658647462324631478662993391885083990281386080193439898505338939561532742610854495643956265270755401616620912778456874781042260409970473009832135676799480209979963468184077474371047357732949994310442910841256289699655900926732529231081728599220760006223445261662256269494143021876307124462081782597066813087944166488434889205853128652764349280799803644329991248291234924036544345684699041848884426713451466993945905935650306975398413556714757115978053017360777285035208181113947308984922238633728157534461540708554102160698979747159717273116605452172101547202052913948775401023985349827118588746949024100337464760788177203977590057326064789360123076409569981111613745544897402429344192569786781858916292473625707238706651338461035758756239890460523115377517973238051226813357088242397786599814205069741093450463361853881528657138856468971284029423907834138657507732727781995988974006596067362677963625573375543619269159416161329700401894085868386578134556823235664125202779262658720610902567937868143218168278074410031644746377473955343890023372750066881245545744511701715761030891090032204814664337638452432446771947031796384925792756360173347381318254559205505039282895221087233910360366846578600751627895976853855164788796963268460097906302465646092791573223713823869425495045224136925070119045646355770859154001403247545764467043131110861086515150152643796144880769287101828510446937612693108911662985797290636408797076726843390153641109949609184979488057324845134968813222616553485072752586963412535410900358659236179666141228512509632102977489586568456912295671804827446592146549115456049063495634865390378292216204679075747283403819427611403545572800814172591877658989925432478809728176550440291359767228183011362183472698160913985848059224733358366690958679661644007315743848879738946483917347441151593613448422137109646734241016678864241004004014114055482966190225530685999795681360684153826512367864204785853257016928512509569768503490743664700055203049727981816882856783285533332783641294102276871862006303930006449805753745965360711484338876166068169497906236041107697167401833614242570406929335557021329743552708573526788572548047171010411331683116933405362219747115168068785686597638118972362041442571982939569809266401338071188920532687079749655769928001595307980969230196226470830448855632473642444657004929967530746114617680327612026336137640950308926685667079342115703629884485594496454135260153317769511950433865432928943053809735603126962106784142127918875070771480595407390887527872177176598623961793103424437340773715476547256575054940477262991386845609702247294494983371075711562056092611353553474684005978733895919135781661784194648416384285759216582771760540880416272860651653553721901934857230590853920160393591156957989872730146604041829582808925394961341989225328958088976849826155913916896810552772134720057618942450443879307420595996308864387627001794187746735543571197522017623877321224225938890121953678950271399253855034975190166425157914150529448264324162974966551509394543729479984945151575663755867120163974849344533311012005737874726752476393555884673080905288930032247312553792807200184098488501858037830571857592877209292584973300968337014525091344164470244067933589468781654184799692036312016148238266699516092184253133817137120845806854038926566422732763831300368887333165701544453907311586982644353391274538004563600896882087012133628700138925394757752685024482692460352006759956065005233103179948080413841146135076797400699694423393121782658790461004464241272593837890240031517132573801853937022205319205122225097766120710702883849641777633806440771879112618633387426932333128092049723035595900200133911148437268042377389512715530147289563378544415631461462914579919440054381009052227742577926370900304513381051472076433558719824831427600985615917451012296504620065456574457780805040692765563784563611485683977876746373083140625437991002008329316362859764723068073882504779955545214468552685242948500736339244447430573572434061762581167752600517655279662961303190005477063042269136141586125099857662095564735139732802507351500523150593801908650556353965638704095258714422673134838570013658522206585161437095772827270667353951298806303415484998065972680340377773008351473968772769215900887071243764140719080270204036069820384728310422364885028062372118998616939166915887058809197477209506131879184060843474691413889385531695826278953235888867853264137143026468187623148805852573623255951412273540987022110035921561198164371774977642978005660507118270385169195156878149064958806912032585123285561593935302398961050737966055947243787428879922015939511059266434256354179395715239988767721964271216290332712443155721109006843500995608675734226662996232159282201915807516708117952202589150994971552047583573606466967014505813236824919845605420115259700857403088897975303957290436443540400946302990992786362315247773792109157388819076651611420427421655003351978372861817468457975554932668459784383331441251078218843575966875675931359722398403014379754237109886003077184348912611863544929831902671665504422011700094721107645667937392425382484153776029429768461344596793083574197424528979482695160558601553152377941147850733787085408657718488808457410493845838620374890793630514023011518449814844859581121978939914769563848696302141275769860050090024992872879615836323467556999087244821585952551040979757421627246279676155221515587580488745788179671066258712160089408161652141556522147865032631207118436677326002811246426025988218762683165739799932772265397339728838467533285856223777845211238445757226387990854325502193229781062457579869819691588308755570935681809297715261452531905100009076600582835447042463611572931251479071817955864065195392944065694355673550990250099257357511987255934540318869651097525821565716340206613002851206041489949462633827943484923155464245851930835660350166637815506279452489543279278694922802117425382759438275141878195072196784647304720770114602316184944236863290300781766255872737821356833463968166080689166434029854635063235415944365618306346232813335947118511093378037050029271012837962134507207347604477632968120543138159083925639320599070773043218309180393384566609606737439070798262753544382226182297759161568321869559387283551102649829437756578790892978872948832846092208172630118399777224961979649643735346537355521707244270648544623589782428510703402468315046562484081080063566289223634013464674629375377218851734283973598003397492639848165178551809767290478666253553993230991744567312601343454224868315131586222346870745117761957274375992319724177336387465751129958180265250449592144697939566177965608704183223806162543944014008867172582864732731279955640833378355412470260665880045548619018370042811979724098669891699786830673004652798427058025418269964599586975681621893386270857990010751154522423544205902481596692514043702438470108751729078837001051446365064028980218662053003841462257325419450813374979150155251060423829694233157864198407928860592508387627911673124033385330072192248064502172298093058388494879751286275877084460800944529434872956930717878561372705411839619948232972471303319291015755614473580783519673224427289997557649424339040128057810990183418069085494184316508128986124977150881114412399882274318604774152096164512121275263026230692969506346668411625744524533431845274329790985283088194276173605073508784563328948355375227219620814089661054502243533419694988951508115155827019277989203371989176479680968685124607240473589904365680507790116912125805659491165292795507753642547568701161777181835768121288859815599438384475477553250526401066319943066318439547314407047083238086410562889942949799424803900854092870408125612836793909618722563607789698077725106615045553514334780046808075563642424944115473031665440781271799055398690649589747038033658024714977363261187679471713511040121741522788379814645724605620292863281811492785819694061556137739281788129920673583090388975997700792446726127299106183541942054490428076403744405868327366471157666685673687177052451392856527906176799918462155332003561076886449839638506021713314351374839725542571204794828574691250570745539608425636620706635311798335422049617808996722698565825961617705494411672903701878468865859147644090382922180549607248776648225903172034792777147360083909247012103526342301447694105404717336917112001117028403129149682002291405764718505062591740070700751602693406954269851634965342441300235261374540634367718177805672818347974260217765555351636724609892541969501613261133912078519047440257753211734047361946708041403860077694880565371950808628571102205012994086423927998664933826225518149925604041038545031342548563104194707602635088148895366477454406339300485165593620976218095551700558789534590676836038588109890492990535673735940830243132979393163362659188926503656166600245017761370932748195062160926264994589107582346464152433153004961565941549701989193060517068497519954745020061968014341382979811264438670267187655103545425148726958320856783970195599425574886305066604165406341574541660096687482628946900186071810208684895932492250904635688592756147236292446072833695638406141308543499366014123045963198277310024079503314884642765477787586148971989527306608883055322765090992085459904316423733948757051255353067643417446265144745727091255372555765479069438008872547072769262746995432246718215202175918520457957960472021991215904950484379215849788849342257057211928821002302943886127284538033227384805459919498826258466537540170863579057646525848081828070131027686624888677676892614929514712092592497021856335504389635244693549832532952302603484535688995533502643887894384363770172125214474604288354065839081832784580490833613507160363854178755265564741321475295194098425067863598812790717888101198174276959475616531415772710250260172739941737280303127104138862754520649340180458699830331875515675829104746699644900414290002250053245245879772388492955721662582757258829413909524779509880799490650704736297952770638147402481003556066600551986561825689455915071424743875799154987381884089764731286403997230562475343123701124256871737632080050917795381630105406771730515978653126875053438887181016862372491023430621543695437591614809694740505238470835958344181790116851762418600095660240326726955039367283368234357892122266304779502641682694670529138081564541172995452962200655151157678622214070271158165174688301553493211039469599812385804737396978685674694511389174142219876692019082313247544624623136956979955435166869260856013874797366974829143700709732665803037094164861099932527343671783209421919861014343268868920901545455861743769049642684497542634344700883491437706735760086095121941148051874691428904905980843973980476261907176694927930786666826187136408703163723027092374818546928845321976345565512434058391641611304737959730964843260782313264673693154628823123444176884938609489744844176420623226703763919888232622124440495568337850340359205134880012813370622497611312893798279450725024779209834973948985725714110165640708206983185768227599063269509956804901833144858425923161772186088176063066408971820848152558576513855097818243516728227849910720400286757907904466335127182029795251506177253340668949889564247032692301539982090039016627522433818442480858939529365258253635658584175485536744818650289245188206447853280791296755048655729290830834854839375833346710190891206711453695517314092946182346647872528952997420402127635235923293305770179423865225963240694027480604128803030924524810349415827359324438872731093974163488960469581924539515134104343399838187465097233692635225791472454244401326312964396391209607800163448511991254208197374074460458997421457310423136445648650193780106352660374405656882386138937544397351681296831567911618884222251141477322612331396186060803731103486926609339404384163003261434492805082113157573772773982155152228650999766243258721393393445902091662272905493493827178205126669021149471923113809338223112240995883722463325012223233789689526902536626394126701031732786498717025714961776105155492579857592045532468944687427025046397905653265531940609994697873338106317194817353489558972591513361264822691254535349157262088742389645790241519660466280327903839200474226968274284389702634562340964958786377860034277270965044315722154465990170617044602286135172668555795564006990807192646068350507158823682849408537574079562249808230547479747238225677012403245011631401870195636325394983976919350650904924331618702278787610316515256296809189356631213088087869995887715886106380575488026780739568146082771093929410536838990181762551650051127855898364933812883284573915801545043703992370545210863980687169169503029102659611117415926286471873514295669871435687166283073737562014462348009621648226933117198240848827113360006337626438931791943297550961105829170157352376713249427586257041943389965593998391922480725474757586662281469571634263713504146871697273702928083949463140229162019263689283204058078917445102625364939262135178161969075788247343755061419199575718790870003854775295447916667551864297342281780185799742431385461002036684428867731642407845847593024225698634143868879830228538547193610680320515916670823899795316142415093500768354053005085014853691755637072218162276509420921369233390237370832640348446406589596145495081399442784060131924800693906208813794288024637890356545978779720041816849510582388806842462429936017807715399564928147578246326445422090320277097695230468854349699521472788650622106784351377240284871837788346653896704781217216008169381322233425704535725670035500185198739858250195329107549684980476080093889102115358363347589124740783546831750380661194377242553234320433034115551802252740513828613676804728698915501777305920725515675389501223604425846293665881782033371493981277211108128240689525843132941109793942097717182632525515354154444279165152575755004729646427976679885189539799469146374869626480763862316508811248808257763082600429287879152206359642391380754708683109802490888506971313138804232593265985172099937559151880003703498465669587918669453284021296057450064428658428287204978689537843585076532612797299146616445830344789169791986075053159243937522202162538873045097485633504731701991593419354288184843387250548931562573640056258487249124537541563134018981031236452580743004596184438801052656641250595912575448355097956889238205340659219896073170409320876686358749195940320232669946925012415227268586580161747644077808258742284020771330801068551149292597435689450928940603207363795160108083421431744082768235126751562423098188291983991381507004702271952726593402645942010644461799677109830265566338422768909360125218002985498368873864636780104178233264412748997709175980129751882388229384143168804672662666155433476869248320005252153170817388565700006753591515535700393465590811851361107468304264505997398734282587524240581473048903571365995338654727633695183482203531414310014138063989348509706334741807667737218001070057489539777690636080798370242998898055600441049560674719538585897424746367041309928985709931930656732112842431335647668631989507293101066805428554544368906467325985151780052491372767177633971606741460184078602943214246608047336260251153424249888991450652623593009701392564198790580582636248384994828336375440772790360966927184970821061114762032079855545208134985646486545941648202212284159310309797419733871619606806413929667151835556448179499656260156664154799328637557653464622268934855055665496572612005220542586531388190385848299116893640900061215120353602153255199491064725997401821991599042877735169743443716754968999328694863202988472948001291713566868310621126455960359013037675519819063087901408889305793184045762035410578898936951710797073299283961113217289554486592504726973896037666626219756938409017009537381358247779712914499972301254582055532896918568591784907306735548196039273257707882176644778931412510571257644934554696260535512008527009958183461506584426831045348855054333446450707269300723902413681692437557487879351202416894943155540295102921036334615645594408788875701679309410046330573442049693576585648059000839563912364336285077139524638297266772142633862530979265876789621822608158075243244167724067762723831847558553797431039273097813305426002951969363675937921153232642238388049741250266525311928884432778981067924455446491787443060106929034060932469219263098693996688587550975351595893352030085406734440143264350260476187550524969288363940409178831019477300712060625183217415951391113859661188868338308242533393904572791518053168847462014331784267243092724281409826021192725555263274534101980969929913109331338031345173937299539833073839870369737063054075736841837416043081703204613888274302756933126223484127000418056387952176092433799000893230619791916323380724638376898880016099822929348094159808603841594895598017317492904218554621641400780507556473624000278654822300081047580215133944846399199014548155383920684461931187919644853050460112609846759367815634268229629478301907585281054243027217386024597531249235925753807951270001843638735141313338712294917921729400037563777785607291827517242470385977055984677408388166538224970520328089821934724774099727287329817307721829146854497266946512269653361357203505002805398084000348713346479006806791389344972007942745972677986820619222710624896950101034366634993946047604495106512601261823149698331844909195392209381201098976439813449698492761065651904742407209108863093752646518770738265677309869600473571241255013233134275708967722435934845981096720957408841707660640028023335333983943125416709442689058515574734368410048185171021350120283121197211059165244187577519705796532748725753601114655675660505726908323845887460132900625912241689661573585847573524895074638016524741852607366801260215991498077517202515898516289634169362666752760610184373443341736852761052995937957694287209734777353863161113659072293814648905102250822512743352321702357687045123178373210022751489085936774198288182370561186074663514164431108640999158604716021725024395111659721162509480512315998861994200109708478217379325154391540861153938484211339777387361230375003935062469667966693821232505777091065205700915824576610909075077173259264792956904447771133660660285565123282621153192173481689297336361317746435025415220844576431694371472723744485313815232011911434537806574345630376596702904386216650619874435032675086171291565728289687526425398666925138090885220642195736401500580251477750236519109026165138271763570587657474097118933492713261606243170359775105691249253167157629767359025820266435533423743310598726261701321576281914624647613820479530712451300018183619377135653993886673064461195782397571771031516353536397845733397409015295782380341565739523633857693120647779248961432313044402716281672038863822927550459250174543266994198995463282987818319405587510003665639011237426788236407762009160272112799953564979075369715304013756543853209631133642600674329439205935469271084494784335637766356218942075921369934792019015697697885296816200526679626950028445083113336778148472066926676222157339368590560753299037048859168945208816050101257549172338687736986750513070529245361266561343135555889284243421640422119123961915346478787283342320216769266787941581733392266545665412359613121653900877380907163212898554565632945639807302346400539177332116315153807187926377637398132249447480545842348881074344597916517514528703594576729890501199335521761724632660259585264151953105969001012813790243948122464533968727704256330516436739011133879263523791549105885354474690797017635442130850755460720849365304577287164883435621824614965995311072317969851605981811387330428844308148774423622416537423339228191767813147199292583256572030431301744205480195779589352334273080384116089080000696487905947712632386656359933499816758506604142264644057938680095546931842600185859861473746174027339643536089119728701473502693173526965668763788043200982151801917213767861976350209118249639841269062284072526998992350676145485507892138971640449798887403485021884345255452606383429971674263455611117488871122533347722560618748635672590719240129803758793917249860903279314415610635807098291398075116034045388040678841398013886778755314616162924396756268500383927958503971257683120984313327608459469189345404829520432585094653442308677411480755874493287585125665538451338666412577426789098800484961561993095844083250530064589500167235356295821955018175794052060278909496265900359945153681227600060395229285056020436530672900205418013805406933569510635483044946486974661304706023567907294598360043020110329605202987560022743721368311149409015396230666384017436348493940250157551115505193390438977865405455075074873865163924611915050031609894679808034486693604147372555282155706540081083484236636345755332796271630349523057193604378040767937605598204931225437705224186104001168978002784523009897881297346849445388388131913943844817933311260066323775008822611198270873979590359905457949193781883467505158279500939709334096504951748242389907720037068628167549382606852971472394379314553648770002433017649264668990945416101323838765175838170010862098872477938791334912037244805988031163444635030787574363432858896813029592084887360327450009428628277253460978074736448286820384669496748754510841092357448116345194746249919263360548672497640550745586642884960065661999744088121923880347950497379933226098754905774087740809353220605032142967315649262899612634154327304051969192610978307837596605218287814892262223579029251118455972766660636828033330365824588549174846043211830991160089778680250353048484739107712479336606532975227524728967333518093987713116117210317404835974416730932477037450512754567872273526618941119737682000861391657797975306711660408121800701045784610599608979882166126391224609778286126721561490570399331893246870891272101916401225813356692300380517485225532865226855645331030260473088949408445307043398337938647468858497933307407308067817429721568945824803040887732046191859565612374230676658178498615611148726161967109473287015444556821304037556668712174707590675531736599611997738308999981018671097145764598828623549633657865692404962584956832971074834936159679743410033086976693800746435748584049160381778997198076312761755604017384140993130188763071593703635414630630545128309973070941222386196788247557132063659652357103243841978498952769296207129688845139675383843360633293456501039267976781613372306547191200591363163407801232454137717897970101414401788480257658870985393083714005529520687017514150398018463803905458122373399271470334004463192652772352887546077010934428962585124032914740993282197071214851489379246700287352086494740782037698462382484259551972998268797900193886871788066368226322798835096823544542442481251820581016846148653911824542126722961175394136112231325680318823051633999771308132726866795700774605068295551916311348654842601162926473671137994159852185343001852066408771659389336418041412194671208265520557835759620070408491632255737955177919596422585487632849799767391132122771897554780435434581737180322702767947252413295401365978145737021938562201638509329658794276167822920263149295087927492419912423332316107402416547953396712411526944280291459847560701750387497519678195493005998032541042598574427902661551960547085319965440499521931742031438862799059871866962274300918751378857814351058022997210927756397669138553622397397635689329240757212667051320540667472796539771069072766305271466665838485841509753334155486243541710846308323443971771913569899431721138606409668502091181644944045929657630087834312310479038210702099356634652154985301463415208164343684899786650067909990806885176123779006795512906888134359944776795628743665162058858993434587171817220457437315204362965745825286664654714538314857862180728873801684634700294647157554701605823868362957447111849594627656076245237233855108564461400120576395941980265979281245749062280837007276720386137574228507406710161672798810617051047394705912284226003986320285678857882062832673694597016288713105916215233175868878441115561071610532569837842718098923235151036658394400181472784470338595319537775798509960374266100679851481487169615925214604650427227670412456122774829257625795092974671405547971989861581821080610044483514934058716784581697054408745286155001899252161958325579417909942870483393798260181445233702232624110955904122830017680586196383494905473681779801703897672256869903882617352590301894321672817052657140521528323447212681425800956090505855672332709603248996212137302161752348500619435038135210195662459155180140978035546015429114086185513521796871767696108896023326088645120726970485469512637504025288547660308466118585307935561642752410493895748774138718884771567965967998229964383450316488549204140980825978523656044993599856470716449155585813910847118470011635459907327054099576226776069863842369874951959226325694712082188851361529395709214299540437832176008205913029509275745404284238814314814692111621309153242234531962870417977266343506789187868227844570067017905864192094947400901536046717317874193068949597359178445179674833219915399185195338860798442028255923075472643710795730350156704434088234740285905046954380629430351633822467336404976077650109928634032566710393790002747766233995510115420628171860490939962508009663437856438237017490150791186956923787176579552613505543515598071189152548224094600370336092472674198431378864089620480020509253617180710416511151862743381992417677449306770266826869076702426403052101278564251482836917717538586977773335964484025399275702940160271958553883263397256044913973883768343741333175026252317599293900932712653251986986756694021629834786645655944641759516863301449398288118269649830169260156515695346701037626646760826000576559138346874138122936479366935298034396239634625073861673666758728201496620953276738901735586867007423261355097198477117877659538890205643303825232670574827170078429238575798177974885073032660260660828409649052194066803264032548101375645809547807367263266254680473734916209157326131136993220298657542671047252773591071638355776784323696357222366930885837065681418058831892851892938177849669540589790932263301784169667837293597919055677951000915031794686813294907902450005574596909474086985830096244127482927519397549694833990857667691997806329533308957419515425159957108933630853626970599647574840505218965503444391735343064773298228539863732207911377077947502637332364896168782158634452603434753311954649303225956649385033239933650704918386169371667367354427443034881834566047816026568532312859274836931326176333085074645026839815474171392960705385881403301284508497447787654353937188705829457607172494541385211565972958571013119996058450192397133034422828488992225394416544148475121519004937339654088641381098733872162219806216546851202502468098284670289131294324470682675181123458158703046864364217175594231836239336352454061842886353873525317860258401373133529148566756687224142915718349930165175239132457007110618344124995750467588635035219044029282716404871377212306522458555380349770530972730499840037767460269635280400976008188852187652287406614097651630588386721768615512379604620502041427604461625118832488791488634897854922034197912050069937775755492026612568025356344970621261126224160426222792776771475273050764503969298964651531495246419633707928244113857621048713587036954179387519461313736575637133915047540199841755316450537802190499320750582475780690697500448747996086793131568533092430443246787380051623856889662035098880030112364979249982781511234061191521131430638846394483100078770826414735055951274058555857492345203297339485414380460759206545260608548699385446370357842684281124934038331665429577603670019395945836825547125223991098198507596630932659481064981434536799073180770661483137564583169512990165063927854094892131084333971242414457526209986825807764340242944968464809081288449458618854613173785319976385489127547237037083452963554282461460068486027616740902007481159823293884555070377014872966138946223321149285300016384128255028725043330174341404112956120664619209860663411522599651049575380642078689556418539151828121956668739976952379300889257898551834266265477492374500894607205077440111503629073941501649686276912213027015902236409591364595827667176083124481081489331098346573053140893332583405359173653599326750075275506155200895983451936372087918655038000628551560131354917145931942217849014119308981969761443598353678282571357652340262214365284680462452195952957750025671448262229149189943848322370776284596361741021659687407515487669128747524573263886407963994987569162019165948889760492462644168351912303358677875886687812521966748025658222023623748568155189145223450118122634249573369223535632879255458700376911897771430911043136821329958347422082182653020710055152128930375008192935409305096854842066307773037609955870256093672292830639364369655266321999595083992280876665000530046246116833664573447083063462016725290068146501415126682379550975667733748805957015902021967585927670440360890890447708165403476209228745556686649363094223936581528596103360950516429932641838803632939789047838586262587616900506015860903817318992928353678060148535047007207250475487580952278900052950496136605736775564205281984000441105318320668370193372363054247352438240841050474765165486302271670473438625500378346635879343399354178976847540624879285944176667652684604775193649980315166284675679140223438559405931072566336656233157740436251856542529194197154549571771049708261979237659364188469790676854893978444735670015716941286371789422382791137461634751774005564091086497403992615256123965152552828063030917616410493723285624529878579722573434525075578352621829648756887247131665318212081744889181096218785836313679845145710425187635580549442953919825692780089926990356373792486055099381065401279538799862238567789943910179574127480597591432696436266962355080355165227882053150577933427349222362997737784772141615455930036519514369425175642562327428478893785822422815659887724751744526307772746000475339967407423887032212963792107776796419240158221068099276436789455519335396106035908573946451679482491604233595611026686482856539351373183417570653101423676168527016865484099492376024246876760393121246596711865833133132994428548562611845143218921763589450992670491617527087807922313482375870069256453168484947507920506600541090652080460971455244706788847739881668961125673145695620721681224616959681235984869586824807963154294218361951919380943823947568668325036008159904729923725718045426753372961452538257519519034655597809333709988711200399595245083093365868894699694511734815631624588833176033053567459540624646299513245964975568681434727583714190004504839582002339095202928666315597608641642691836516642449424078772755368027291146160242171680827622316054229060689898702590218415707867270484825994670978983220594241507735230437164815410399151827079208205045808375452586594015419130236227027431288964164254507185973618819128890130592604470608289100321554937795842095059791574610418634967912803010219703571017646447689894200490725332560523705214229842127351025254656691187314122767024989540121866680944996263497448524785295341856750804591170678173936657335960977810522372936855206303620956040647591999402633715315381143735998581140300202179123194523385592890097560596216911087351470409669931205580254225529895005618805196096786469652645921591121567019690495008873494564167942084385195016740113011106260530633332399818577818204002718438473587816594666409735586063436166493260402819022045045136846493776673389418036664550421891746492085573608470076289788657436287192106318109160301401338816255628557923582487630216545526394732911583026334856197074430585245004433567337418787713753052184101254293830527113177803982671687657174791558900416060387109985826919020628113997375918817266514973804752316272195957359774461287401092188573216901438367300056262355447156654103006130061788275458117877134912606088396843842841160217641130125196766792675999814194562117119734361368312115199819722598402418401013971167086100703800066227895659798065812559141035520430179426308974128848272618303640852861106096894682208011066501370315855194493573168043922294295619865036662604685170798298855235771136902716685998083523047812898155460883919551781160317596878856032796233154003558602937977064341013172950461438498913577991753828980702314379023270466883498031570979418603092575258532802000974979369588953114090779348505328753235076173644912242641329210273068335599859547750512859440800293037443367097382316151411027553322087520960635374574940999019447150984793644817714877666942181005807105778308791288178903827443368379674978126172762783585969622273217230157792933531014639643782304979875514793411655873772091257409292804017927443426648411987313607247347913646090038126687585339574584337343841635774630243938705678939961811602502702709441471202435833359419817176597613259303039548111122453255178294938317766137289067474809241716685918460694904771822214086412096525113113651338391747306772494926539644757637578184597992551697940865217862776666547721964140883340943986396472385215722326857278007200010970275468720809862506982834608224311955360502193532283032894774730575005716497434031135236499272626141724177291603954705253064934816072144247349690754955865307172083824856057452858490899252865224846062762244994920276880815323647364568087617195443098037039498491442586195304243642873210389284237089696991542537561368243277561953401798766589572106498620386790152182837948587717675776276655368055542989619448790179954036003356871127323358660194982370395675327524920375216924206169901078310724958528663397420996962704137599080054879505586998677202306254441965626433150745539848116691759139389850961890608424794986443283690307141653026928284992658614038671561061008352052487094450916798675442555191275927756046882157587950685999078226817875335895825621441182876336553579241272878296545245355392347851402053898483955681426420827277963219844577082831503706914050198720758360882741365397138268434337288096887654376211600166637240306356862292574876817673784413368902821020249941721223365744085725037266600327764087797092006198194247840340487616494191295867605314420754006017192065766824891897820632884197944747173847949620871066733683336047289586170512259269540277881521367130797340525920194874278728875734636670611040054247523187688454142052585344066916563711790105197383736795561158925149648661829494661699247672008654912761008853868510089164987139566115464714469820743883843309893884360011016066628691516177182001292578877861673225970306927630611188664456060662263260458319322341313770731093084212539343190477292438677816413083824482483848530195980507235985937099326750532874295179534257948853716688777828712079916015211513449447172159436618711124587279097109024790110927219881391674641944515245908355426475679947652224424648706603536620675397110106447228099589261873123550416736275098501629036975435311378343267846052121056646373951932709956043673116851896199897116381119559171554284295285370275904351252519562302091236646564575500618831432629001345011791989849515578394482804099213889352129254813983230196549775201269696156642418408230544669018620388926526357232907491273736164189059671511869899270504781058965492319792964479058189958687956435220911344264048364018676547525635740585416561734111984798203281085321839479488055025409103472234029593379538119519398397480911307693473902990569792945428729502275629795314911457949105201596092766451504550394398582943088725225075289416038975825458392314235321149157615556517753863630368878386613803798981222213666463472700583373258444621121309189904244836908295899958212382387383298193656461667766127286599813454194898109440950143932202300988043870290070845631078904886861400029490502961972790351296953456360428789981392938839292506190893373891387781126349429037227768571591546027861529945724034468660168764589198347739594830027554325467522677033349251033712160377405013788018212918121386616287291734903647770770057018979497519495737798164401360186359883411830749310451842019223350798035672974657646755705281994867293702405972571522158917885780853274044838370341956708270359152134814849763204046075347344509356438184167199085020020997093468134627942183304319281702269274051352338169481450999799873812231910624873581055694318288299772511448011215557523666883995129832116164522339788896961508213802545165827097576108999267380814928415692008366389788562490472326724589721632800707873109960927410134394012496384508645133004433046333618911574195711704871070408993913340785583991485618936899319956128572932316702888717090027367175351159683552009724572020871049540023712750674957753277784735241234310734852759068947695533606278100597416611912204032881789948722270357788808143523783869146289841928249605908720130912897100216726339292465659270576652559963572814029573032239684891748935235249569062076865762946805006127411903574858459742311004606636268201100724018764512549732438176302635334318556288006908699031018428383116318307212869425171481919033556781301516107412564382096585231196406224152356781407625826284020521432787226953537939794242938012766041695399064144922702442929690704722231673589345911193333321615309592823062941173421711573962315764373265180175431841822856693191680661788775771639798625091310776509608669327225940222561552557433762018850392001485733437806618125127329650696539985833066835135785721861192171762307952418020051433705443442768944618984944585555443551140217816645174058865348997823119106804988920379338401364742262887416921818355905699940173680022543940708179214215137992305699390118187697598399868340665074669696060272397430524933687860978876267522264559350825897865542181082879205174092909677983678944981905050382611950448114118885233668673271581530352568510387296960506758189250524222645773274162772508168218532537124534223363638415858650804489142978842974533051470933355802086112087786105650651907294686056355840823686838092175480087177926171683147528500593447122168406053205972963044115418626868739346084646533380348062196964621497112108794622502874757305716038136199705047828133032302537522059621990834958886049231207282185827709334035839282833592380488263358358644112727555542775153321742591678456930777254035785406134051660795558324678829402634133543145613572764612384905103284096098482772673271565770881871912489501178874298096345157371054327851182115504672535472832382600831203140703531275357119278002868544348758676452153730256999834020313542927474040619024755216086881205488777482340564322955302188065755454055798233921289908294767977322386957570270683384135401386139847427168791890218867780967741874110459704749047372213025948572402597787543623420063238784906896176386682906760191902372647757849025484181534163685684418787896662532985076091180643678421109592682515364618237427799543526623965283184666952336339551791159718173110434626646283009338998041281532400086208593292745478420248285112086790161377652689014308304425041312147713946176405182298519296480661952978794375574852127158697271692036872545201227143915747644044992209300711894989609128948439953166898356082297306252327197716060445372110625284652165188390246856666214240842671541725960630533269682302348285131182950090167902723807971749474337766985752092747564578609474557330537492907002256402923385767759767142868033225918517767246789040584028073394892548691445129944203891948131013760656929239217354266236749668852388010909677471569823468199868550671517472712436380577883320785419617303949627307905795305492424064012023017772398909563352570162359409759858004023508278131952907341207128319714187345482475896320797177803234043671264477046728674600583006523088201419607898350242465323196510695940888494744452286166163496599065598014422444398033986881967208405701715980001392591478963722808630657533846996957692753379459298384211699066279752336329764085761486733000455567490129401850906493210961138490571930454039572584008659171427837930291774424284383754767268869393131442640633050970430634556730954447898670435321753824350145914905843179631774447085970602918685702125996257132976591650861267544586188468196940180220316401410775093072640319503844031787091891288614092716574984884538500742791125014459507028589238666165249181035578169503116510136230582766128589025808832402942717690463385911184097799420780922322142555073159186770865469805215313582410357285941261859236354025322379236118557201866853346363558205993708056802533543865970434341827184118142566830374603097155509784852853435718622348642966488259331482080329596442757889989458976364315202968609713713259935483903386482107866041808820184228638751143506586701240655551546889968150958832617302543147666275809705267732347326008624599558345754130588574936935056513272586408080637356324502047361914622516367131078790823552013453509607693036721021548335500254250820331944898753671807262352963834068647074140248472815033547619340096628966413762186798961255198738586110001501462435532184204600669434055745181144879971971109509714568572894050625351235754549060137745171292382387653214427229264074882515643030223192077128996295309885627740131664294583057640476281926436906093751898565243626332972573914421046147436978368873454131740211704979931764156679536150294620543510356053106853109888269683746801911186634843718652038684566812272750516350947006696230035823004133402437336220950814480727863396507299622390704738490175259424144286929589230590134530605636923900735740945260272006458115105101227955816893335116558250797704708579945761489507316605371998630385061504342641359437310330145232814957067663997053263657127329925243193364744384786627182957978704465641737660093131479965012906653535220774662316595218324618591549496410160085297078076722245537904523882115080006412428593585887915468957301460498655874683627127425228371833454069828418498647133760255148691142564222999197619697264101647784790094826489739795367324212501265935935421198096871223557318916577352696946504106986891760504640117228991267737340232056733771568641642650601691922388168081883607571485952945150698923345659259723138946484386028588850859075610725534383768362142925058736737314021582227854471981578557141473335590017561225090944380577352093842135526023606628298438855847893411459713271044873950011331263863074153612837010284213388849280895118872222022945090870819896676904145818219636615344802910576737096016816630991044851406827395345016847333737403922549177068223497488151343370764075197624619710939503581192140771381820933123468281644435303035321203043206992651516073350508894019770098237164092336158197110807038383049118483857344834822304376987205017240851257222635103987293514654450844531822937901253921047197906941898360495059142547932585085038902133215773595855086777836235424789996273492234804870443660946164568375332250065159655367231871969649307062411291237157145673218601446209301246665327237019216703624019518737901314232595189223903634290543409517787032904311200589400856354697678009334988762665179728171989105390027638295093188806172115437449694300972292952178384171723175884300407442987511477671433214650400062991157074338323425248907904239091739120748750764310261300827600990971936274040813757550351380106752574489879417248908965326167054004017896873627845558765412626406539763167103985956532044924620643960359810133579516963607203245483883976452210262669020062529413071841571969335673935966926536783499040011650818363659151951229949672855170923206011398246147104861793263916717476244351507137157967128884059252889936381602335642309346603104052664125187226656817557334482901036751612171153993029305942292476209211236661161686545214809607892868243490356547260328915245661086958881866905562748136373045647727629004329403410982887827153327315470090547518575022313245215938359828799540179012915715323762533398055871684623950543977468108838508784238294524503349779429363693698241827324595320038893551349703772464760886217616623860549020779206728854546819665572530693277818502689502979396605062290686870837466358982350096426715533116489449862811556018472584774213439882523941858352835581183833201177474069611164129675509099840442588127428098019757291822280511833883676854684503222123404510705854010350760490670787970089219873055052297345882753705169923999737676173016396930397476081214918438572877383040363947696868499106969293241015275846885306622698271896806194749575123928324444325533478082690026499987517107947878756790086325932620653821210007512010929784066226169198126807625716271729547157818227252317633104096851337583783112371646054051010542967803668257239938539285843034504048701984669167895971431876940050392840403568444459064046573240114703935014553730631256248473194873068282307487248114105025931288998272837208049802315604661646310778745023054252951045547731998411295062324287768350240154561436298197010798370352020001735546443696120954898887628496121064494587397562003111240674771904430732801548911186621442914458005484695141153594445006970179600512194197355398232932466661833571625029218292080699842082195370778382532608298411773239236215581745011972951516970024767311079139222604710389695580866572972684890887795453729368137012094404983913371133231807432960081452077191866939966701544357498948081131337017429197069635751290227957928360307526821095692971728189472456382553495499877401161672576239957162975579604712265368867383103900822474772748242771128829000887177413936465582043348585608488750631279351223744954098915989305376781544805891273223448016829791837852795720440365594174152355393295134526240491864104184480623768258882644286260029697973196023396183428906991099180127977878827256264083495902845709812816140811071100665333297081250691333149001686394494563655089137101396878995487002160282465779150449825219298304227722679460722453668206261915189457655293801148888173101900289472238348411168293165868236725931370023590368119290304070873733337405183343016284567797887566675219409261721079333501110154234824110522007119552608464628324801619849661064997291196324096920178931662499176231997109278467433422861430444198850493185102434157695977247572108608244120096707542498637845415937863559837173844908986957346158840693244210185823090093064471407753668359206919811762106099036983055547264667063822511492513463587366311595509959997181213382562026723801082653536345796131647506885336746307872251138291992929165424719659131497089340228655482023159631165837470175425753580421709625420438783672235525388480843095285711441265692885288878648616314984549279716668668705407952791290552629636520206260846685529272288457643351675400663406900639366517589545137925677107487047230644543001512623122765185751994781017429388149121141773814906026100559341393200476745254051923554170069912956720641660855832536946599589028913596580781133962031110268601314464484005604597418502927185326802980458026133221728910165992466665756870402467594193687583330755531464302439569572183258978428209345545001466210423125213954581239411984408622951049291298637830771131912270283138930226591106845660078518706580863006232359884208561022597976924346144186637539609899657336389628048900374699122166944637800616667114092317364089340533093706874590510590081373805440924101220401123221557518833212103840788913479376360456207748419808766624809475219226151404439629168420342630006211685500629227731542032068421599775569876682741579692594647072496243924588298933487402397786898535795242746037834135458944774013610586174055561342900085606763926565878025565007385373934824502983004035749267809661312443366429090181452609589330905510569375782791218513987198768373765007506184226499568535058918446552821570338595575601134151835044245592380841944876247910029616965960794859331182476885104036803525544811483806573796444517705222840045576007981471966243766412897504526133025916836488976011141057220369373604085577698564335179044874215737044504663503666141612299096422544079304262414761322445156020859379333009595741517473372864446377258401581174652665311762222908395778816018528098964840659812137552103341037292335545590015533728406711546076546154045086786063578079734228863750862399649110290632739228458920127195831066340404901469490114970692784892556375575577640520479928535793695826177227382667216522574636984497271073236974268654257845656486102785908001880564339223867393623365860292250365208208550844023087605670864691446484301244402132540490131570897286184462948921688096178985712224778511341234183101402767411447612473231175897750223809966942639081296376624908795552742241199626398719512037281101212760054616229162337392318619289110086266272879325614640199541401565294547096788181340099846141958141418907224938931492204603740807158913808461872680053450838132985112695240531751079427326804048681663876292446744886379229526615825755724729944507831256008484812960394868877322449410092512873051621746669876247352443343759699966890989180089166444476936523771157358830231666641235344546294887548590049551289131116110827307829991685166386711515965164232762706677124912185321253104969156296501134894758842496950022144487512369632962963532050779048792946690404711611154541542982956529405775093038329752912400737113337423004708133791708747995100425561343838770066266268007848992194297864837611731459140025024678526257541432131967379242352034555942899518559417299493134169184470011479840987552818226539871024328654793706745658187868247955021351954907646099621714914109900358840813967857951096683444795860869117898848628042520997858000763522436414386740210516215841857083132791806234252906362233728258294740306671673485353956314315947792164092846013766821438385230564494072963694668105406605763815812031987296554793528539679859097704763195737322301485293921740960146293054646406511405921503914102579581834668530949797840466700633994366009582634339602750995581262389356163728300302625732779721304770139765399213336573490050852786261720131277007475520897324782913502369795975235341181948053568596903173903716307160812427368585944219066810403886640414801962404218144011087504215515970481826110467757918249544242921623844085935295170740088346928713211551886361865851828863252576429231143189706163834811760739557540258510618901330688756998981715474325057186992673331743943977547290991756733040885168939982571693973400182211175223261687638053104344572253273047983805599443762674542224297549029283658760706077110033002142607525608739153432381531641817135352507661344454277346108380869444489653655044438897214529766450293933554485104452176220993253397957178567512837949281705420972442724253324413374160952722374684835220576448013139620875390924675854299929492593906746375907102302378403267173312746151764237671375156796376229161240373270081965244113822701831154801413909567352848461885469401922392222130162011340581397684319739478362201857308778291855428358775985533076867747874620526019057576373861195070435942193027887893873213127571177543400074216875882422964010570441515499448763391688572182920775243353804902150854553554144570923765569157893396816842668492309269659936121555280040505427846511514771123927584091885924977925878761990545889545727728311275648982093118882942378214199353546738613675066847123527315638148507238547539004863475683634979786463188099559272016399281116327971093496270355931189163458153705320653668153413030607172078275031198760151006188896685297630595143390143653312396488384509376325685052506964086152577564455493079689778895467679616810036716640230913790944866364004592636429186882452789017439741403030322843804189138429659645064606074394682163564138859535124189517415200987975994710015991750511114710977547106485488582744826548502977777514081028524813938828931768975565875846257186964493281975909623164530253553384545725136274703439443499123021561223735958122104110452520961966751563090682660020324594416755326821141238547535368032403970654936461083824149320338313171592427136979638872849211046008248674330507654144124006795102836107651009645731550107939435422156598828880186054391384774152277532804328230369240036874295836720207051102382819060898824089644449860662118593298609710690238014886704588085921876935179906598144042463013449012616257521862680570667137095418815418880533000067060818555981923435652281921375212292979014842728478378035340443222026071478935712317811357243406920808270194456270421100786381826508069663792345784716928544097607836273526393850258957847039388161022099088601660688097803218501665051215406268199621111353470307681703029402173551042372331847474608896914567779182821236032544177918353924265532665906470342008246275221803590192240711064121093142622732907968542713762763570894779563198124489404352905227175766032683625657205518950825094726788787513954383063854671606651092052997740534905109222885706634920787850936200687965484100878844300440047381006118279747620634136228377035676370050982352964766719155615326443121879676548726932291205063157599587193343852642664163169714470111354214825899255711436496187487292462206845091155782173018425605092831175563423650358265294305335124144153933124395815829249491285645068759202958254247226892950584972684195913479870827482937674110742775595007559697892343444956477426465043358164426594229224040895489516533893405457411921424791013116653228688041514789891170246736801361678658007416236134256727058237836563546200689102403973236525947899088790177885282803179616691333500283376385819084693421471049281798269247516920271767589733705671256639957506266285768954176327944546121317297670592155984452408128552708699179066439559813010657213612228520625150079032193687013927201350920141202788157419257913769132443656563303468859266356982187729734576670207878670662793427488626500336583335375839396681908796510033392864811179093714390313139274491253851015571751441241819652226659144309412882930532402998366211794005474580784581996368028526657566400972219049332958256869996405601453691894104432414339229077013786549644137969096649902966341256247474842868604876294787945270562632667211541412382668742890132699425663726920906070720556076500260003044318487854652860682876973588787205059975564026436579084579788797959943888512455141836981896566547243779552837334405097191343244030114170164334997686922427890215378996408281393701292390938832938435285490520555415165152573135919987285905475640768295233558920067995503260867182267570622031445608010437018188327755588329876476554333877804667896506853927071478624874318484184347031419855116262978953616931101653840026368895607325175640949745876175195850866783826193950789715620271891207582573478671950193202383307524610047593895055363946269769268597721508870114368986941950345456842840344889920097345324753958126115573454181624123379139835245016037385997872016480134112932857015652323305984956665467110481392649177084716737548626203840602131121825764694771994475329848264594513869469770037260391588742836064107823554674444051902372039005390762759470642363824023890014993318558895482012312317615238540662463418177233930943868283567588507006217016156176804641694365437730069757681603258733835627270433297740427975667443964686129267504163838428046281705954473770635930397100418319360757685278552042813325175846877097171231463320098571182732972642448968605759553496018897099308118483605627799468622376200651731405675652691488963548385254896655780892405718175306299966875981500800192358094852228361479922972571127781481747922221595798174604691596940938578839057026501281027623364547948970896486055664013961561583731366041582331755490789758511247399167553625589698272615286475008467710993099523677997172088013373241030345173175114736630882870922949741612723718989755939163761822362967397367679342834240798789204131623993109993811720576905598688451706340423158672579448528956018436521193345922888689286701786063169792342281276667738176142168845938651939369567166118761880343750840280028078394213851819013529416172218813265839633113590652168187126932124763375806158688812369916346037575621968143331747116923438018892648827348879203269654262626517126433943142849968988209042377310015913077517393487514619680522941473421995050608362866632543787869084175073779491260515096437841899418947772959682789610001756027293621322317108331067101483653675145063731851145076914611076312184909928725266177076438673979906141128924344856452576186096671482368134915868391584293773707884090049309042674171901332457630046977435443984199266115123365944382115522319282046378856434748441745325176253289575214365470337415067648127553032130933658565626842613438006932750026743793443241075953585187076516745322165302425399772822894916840807147753192845558762699412368003781214786096768052052932089394644231278576740322300578856130293395885410735029820964064101358443953177115893406394808056732682808306308318927275932040906732022623449310452092856153009478167975435418946251728492395368840659739620013443160131053874996218448097662938067655299468304619644779069578395587275984003618166283489120044678501459031545370878563200860464059962174911365426198639653483534132074585656198955248059076126325713085540635121969693430146299956433204198385072988322452307201659105415523064791752740680201349827854113147085124584289020962553383428686641574671957633452263726240396394766167148393059708924112989568750484057031060545662352856759392328723856611808017653157222882248330698170465386002151170284834810067531861883669286055871706742425253871128151189679145606751508553120471805152040627964401952396462191396899850580414936314692908538350354038736300681553596179211826501824466371860626116984411675406359905603459786804542095748400887964344994787186148779676125092525757153083394156611109971858177891798385184376814481785645464764679586422900121897141209295798922392745418463530789465579667435202009157142981788590032851930058454908268210873008407805853183881109844049829711813236713640756102740802842386982804203572381176674837039292325199648471117544885218575612963183952911602548365187444071192056847411909053699997208815262492639114714941249676320205011425382979449520198597797449325441864647811186512646489738708090248730043819683682244907996172427920951949176033467710101960909869560209119045044034846609773700119467439559809855105307470417662547724716635499571715067904308692947238623256915530765812625060087881068673918632446446150721963554475630647161836640755972185007850142124280607851695998741270924517141988655206371934637371151642775180245494170784619062512132134787331575691706089754837254520303626316423762200652733966355782507097779310084951594005897334659832730612542381495678528751822352424985432160958866760514272688385807356374935958227523688728770978763386678619495760219546584669243489191885182493011609120926420669532678254895417636556191911137074454158921210959472680455305373436002441216562933609624812588890053274566795179788292832482840109081006638860298880710429358259181071315527008767384530170400399377786283775012350810084751542463213961337198679207971840012043614160555589346495031787990026671052104743362558726488775078283979486050330325122818077496672470372059034467384321854425173357675128581806388249982306756338807805759416865746475746330470373773657762526385813585750719211911342702126035060586952771086999487380509769204738937857101394058561516888697042301736500399181900477625987144369605076585931103222728597432987307863545887692791574561057784824295514235035111982237649644220029934301223647351759348594598515042424075306856932350874337126186956571079106660144078232228334802588822880816434837093809951012711721920945110254602145365018064246600745932841605860706948853475685227831293366643947679592634819372022336739331297053934303450436369824233213734545006134995746962293051223046613737356547589842052560141524413862583633193525484042151262430810924754550228613167835873752774796993156334756273365396640550410655440368389178106724042748292119872061414876941082280711110869333565703682850409643473740678750667319766105847851473716215381878375961276242408822980744853868481101383734398114537390690108934182499919983167859017864275426568676399912984290294902264844529347105685979256775772466009051579978654035505911115894702096920073355730371582281554158240158530383757104587891348086567428888063455693680028544044582515219909683714586813139149142707709645061299927391975735486263446878891555618553110839368658804987439226645914551542656737858900084517903589947063388803200664207119917927224042829926624821797762189886561357088688280322200801473610532862159324250141703567171740437609882530464108633397759436330580798304248776046771463493163901458648188595408007593952713258004121877056771296445037078691397926682696127763584567164608396584997435865802122998498021263736560056229760775404931767242462363714379602767924121786989749839451001613222070843259519721156273127246808946480348942570501274013319692380998898917511876608067792998993652410161834463686557660834270242520507199951838008378697396270215541471535645862891217502964742759610859474735118007968250008728003831626905957873412046059818809408769081725699252024755865665285101595644925877381057954877840224062690202410074457698856256195093180407124200432728343626376975553353388838330804199802872130399149621718067249091803897805721246702688236846785761051411453502267713605965330148497380644647496243886833784046323663201922638474152704521812850729045100935153095538857003940700071509359146062459333546679943963808283621219896658203358677628566357533472952680212955913906520853657907594116342240890576405403925935187038063465270828625642147139137600472195998132950746207483311425908598716307173482898499762783612999519167305595267948212259338457385771194555806428489268442760789681243784577141450376629824439737717421068358623835424461115689005588040478772029830912053980591165888916537739328721065733392079267389944444469993252771219464079410484003483101591169544710102110166233764939763445731323986368228095214483728681545316606562746815932059155322086931433452797219019682451686660774910615505627865492921503427471467781469078703097074728253763526181531844614455158856524068653787601060371661910825411672564737558186140777059288714525159662683688125129875009090772245657702509674265249163232513961359590110179736284254994564873588815368161891000415810605870834476561566219541208097107494968896978883013010432017319209718475574650519909118725860812940716258054372720365145929267907921236427380934864751090297085769322237508703576330398116816369609774850168162468764528170980649977747705346097244049213865486780936219271139712067412958704705972579134558306171179511141907576258852944536049918263702233578325110533274946127901706109368556658083343207329683886300383102422949535113405358444170993998779736003115940103013750937150730092488364987564474433019781026322008242017176279489914239714141537222283815521967277370661280024833603600341788235267512054835604618286668209995548887087888078158272844865089001881639559180354005757731840886284841649266722450873310206922519366667506744183467419302706864175805795089301364186259698398327835267428835992301697466610664388094607555810964073064149895303202450790231405851569370097722337825945606703926182761028172096732028854331866688950189856638818067430396864069979112090381308184794111804858588066062886185811174325166727528083106247727005859067436718412336822260383900212201093317532226873785965957530680655038089642763061330283394299848063019696824935046519108978512183475533609167780591035750870502792280386218722065832577337456101947341288278754896066620229783483118151814787104260582979085310247078585325321613545936538708499324587810267246957107331040455049039161194840203379346936168644617613979286875079803045923572109588736535484559443844789565476939472174595419700342042824472850354591327719004213283257148534450014907517683066332788237325366790123869121563822048622572278080415298597592104189938588986008086980160228522867615859345734768855798115779568151874721167787925297592550569060738907039357157800887354982254353962393065064584665071377033564387019713927412072848134521476190304810093364163695644001097940967726862064945558662964686653986365109756080448922715846839286298264165579502724718466079137395705184707965874864237742554848446053326570355715462116735815596372389389046500866562248145471524700454516566788278697464081214914818429048208450379107528634165161531913338854507724020744927751073244113951985159563543113152286918506232241272724454911549128037844169136934938896404760548571804197936884584564338199218726198398009810745566808093477822964272156480546298920816589347658184142297277243156092787667531020434704379951997133672775190997884704546329939451498627535027053281727337600867062005795666204756638400192927261422665777504023460512860242058385375050501073590524448048017585981952914797745913952879192630650515878662834516147684028808320581542188950941271633677801230078250826218570792029658921634830273612854607946546181382518197590189606761330315247224039394898908275116876319023817888320637405561061073838700783468643883800463948651580631889826985807925475401475071243178247008220906478084176218801829969851742841960415676408237820778148233564926415043406759135559818582633855758939235939335720759979125642968992800237899820801378390700253818645485429757360506383537195322060462016293958142357237938223186943021922979385958880746881293145347210272912562495813213711606639073626511541455262558670969095533268147784812477326848053315579318788641545771386099290075780887300880898061201287580767388052447240367326945144160323483124110734885080674877589414269247142819492700006448380565230546995699029520466209354963959015440944239052648542080995473780694076603209878782536936429470645229184745683211562513314753272423040739253330577169019227462529376266143631038664879613312245025153135267211716652463639572098140718626526841436583065147550851760653422879491739665490097051830961063587773588712622866818318069327371363716627902798267134455639549297337350116835524971848564163638546089205255234436813139227198639956473947854887755747743889359717363814699082317780704552776723019766549870513566794138666358698341067812175078008747147803924024043279064646834481727736406653654895360922983875714557334404877030724515742882420402432382789539614054506494170075343683001118539516175472515732964263362915258960763427138653825118464908666054119248821958101448664016621915331059165773078324826109325453375667682564096832174968563107609016087294631485577413364627692290421336772265932015499925772884977890540558749548370312664600063334760102261776478388907663193560872911020675461540235991959207159190898357113202429562099777993438115890820519170936645721051019989135651492756731572862017380892750555522156412123248503313738125369614366983496088801575037185653957000082204120516708261063852275469033380550021844675487413605363062799826896365991947843113709585561751438919922234233432788680797926146495818974236503679568788471781336527603981585840196705252067228476120815540198168457843325054945058620894501795653549765135113402049906770512971248720724375984563882568294976527166824603884478504566007886627281026081840347314718165348941591053801431827861628508687356001037919654768536213525942773848672317727623851597745891894958871480002334657241272922535037607550505864692927099832901082069737071369508470500254400139254447483270972619270041978953649481881062981292390737729164139942138552410782168650882090692917182607642360255804756430390171355104759274089993314577657856296877786274394887966809697868781583266990361563801643889818684845520638344025561782797063638661071044947219630877280517913036870249086012599821381339199442373154354691723838830444414948753990344646875243031120374128707212410469987334142980757254567496141164073976861828510421000147563227508342967519732901540635422585082263668846177363729717567972701548260552518338154635789022795885398041487871822894763303002421375661380589644271617300807915472100191240566620477993237916799321349387025812227168622902736657735487581053991797097437481151339733385215595616198028311099648315294667176700751888959940028696237623250189886628019716300169429646844142134577553034539548428036226979282926479125713005298260047585203350690979249876638412146541371255980608329785048481849365558424845162300443705619813191998212431076418796669729625190825957603031822098705297610700095781616866232137025527533277914890096473622914076499371026545814171445183937451799655017098605906267070380917156059163340770891601985757790872456523739448366757223323679143459471808452788854740859316711396039148239545232384900359785352491715982279157588726074030902855714835181202561684462192067779973569650178425711324992961632958889296374191578501622981598222960604586209447507011091204006406227807647372964895340104358426592634167416639870212676054787742162895060468867998892744940663731273738666456700386862992032315800075789263688141341002873452323620119670396737011446434334009231734394392421623533427488041260079335668547455600140370702309617122430100629753485371384833409213279264428756616795062216626734845461866254371763680776987566937628367446936384952070544927404758135676566294008258723526325284676943060213268467717146347111046141217573331790462153893819614690064382072860681184396397435569569678365782683708144553389889694815668962260405120752713122988236996235924605419539060938486646721480453121257114755930180724446897761465036689253200526015403181123343871033695283627501758514026670331357085076606162911399840883015901875445243716023651045959408195603241416829581259407518687284158681799613824620510531973964404854209410078453710427458557188766207304611653080499319753240207359397192490132578910356913011066133730738359227943881273283003028763735350229554168455573007306749979780325142397080797445539879602933189010095879309664449955996231752841891941683527826953403376546191594393297941525348502627422367678296214681681342819361511668922349431824842929575083162360969078406343315077412896067047156492641353925424116265790936822080038564284332007625143303370919245344963050592775444855186791697813848180159248061157645912000647814482337882585696332989135778238970104825145535650466293984557696569562430034489422431779947681266916016918880461912304193624930009674837463604713711480000152704417173429337304036181197179931492794066444370843159397623118983727012690672541467984673515150452487981807664916646208904556825351559341915691304671755435995768665704899512943204403785631625208653953582876953269300962081116430777392796020974393206435393457733323262140984262648193911214911711152253786849486495791295899057455750832533223019384419621409118142535424200938087444491085304528991390126460158678867842133339394068110447516856531961719922115090848523238121736609354598661619973244699744881938140439090333769442057618420892811965125643681391727002254052017811804594459830421512283293620094350227455006960656274062719192503326837535275380869570964275760501335152350921631930959131723066719600980509072671962405290622608667129217700139035711269178076349906629002190388078515638570462661093575567758000056391913085284565841263987526947991840227794941048865794221307120925702625817333229607062160745824896192282236155635126178900952346872114435147703562874604091756918239173325273018069374061804764740486027773056325482390951169041660609807365813327163672134663491100910965886813241141004679023116115653116136478965409171888498146887117036211867670099187865218935421138247863805882195385003547763112839124473660689918650302872315308451775458043020677221329368778535565553980390945773058800261711163428411694235491669964244637787535341809718418241884418351193245920578816026544512017279817583747251876062567880337981221163122670203497793065659212002819917935361746623111334728834251327296209780248185194162706829658250118236141287467539893817329244990488515298880340496102305170824493718736206318772962599195924133959319929171324913353611973245490999979257205157131397329284476469719100272573000900040534811653575703048342757346576188298270834603098662336743758668503261318412061062638195904659543413754494302282300368960383834688530962553049221691266566082821177118009883758904089099272140744613158646721385088245468953786215970364327079299557602826014051420683446907743426334389292798824198773331090873135809356877121579775234389447327520801852226566016827938219637042367040808382019914733282865193064962970448405973646517099049437463436881719685482039744668474144201855896852869880931906818523326441088267690449134838557337918930239257287008845616714429772271012097134207252835689546774366167282287914015382423895852654353388608311475539444632201405020193592409573189062116688851663654148648052772917821858181301310340551629016947731474933065115735470384453122590174771787215542781244608638099918639596450058012353000808706165899984247201665769542792922634039920511493144790348610873226359005660936396129821729044475013811987830399320560767790326581788101252510829903851431735245501912479921425464025083009125908488792359483325439256541813767061979316519620279380171432859091993866737019357112473467551174378169702874822482496034672482361120078428157157222304957902448549217749837510922238407651486115526749317048456049541243929438207769195574718603597018730350347203381260019068296644597059740894327555468103601535450603805128770448152582989634180302374675142039030099611349653119998203817782104970174762591949980121929853671687579320916357939811478202334051622994438473616073927163682511742386413718094718843588844313896127318124185692828219256653017339518487151549681134713498281397253980656169338945752468362536925013579684666246436788472180259275760861616456166698200015263717129943370553198115811659233376176907839444000625905679184093046364600819845968302480686481326363917762775511188067194555034202699555241559395574936728169532869931563045090983689868953428432567671694419363422868546498869110213069576061526621191172420579253450453368538137568752482302198995817109019167013972571660602346723834568906610436142259262128496519779160433996012077977859351258255431487012735258273933135762750120467523753544731846389898102895988844062248691012441595724198538842219178842975571542784135312757707464039625030069701195192694570293875808872959385969454179928406377984718317455625788242538408292124679454453370144541509886004828298642324415409244667063466714030647924013580126531660407455439052926593343544109539709582615693448072893654507724445497246203105880843368755672964889400295740455661054970001036360905135469151539243685988161154554924090013766828318963046738284914089044320035150042155488916609183884619333376757116061269217017388921333156490392607672625045230498910405251262663970746676598648123718379446438163685615649754773959551123479671184147717728625463045431763855779154735829364867504396282862301521718260157052471924583004087809646682931023106578841889934473108001387847061537685924411674520732609933612905363020126773130845281261193479263306044417909488000776633316554151584329448382909579271556573964001033909755805735053433849999907117396931144120049776206238683058695519465157518090799340501979596553996972977539531676759453197166249209420172004887975491990650842438245528482077824940018923233270339554218303452803513800920259166057189933190068232075969383640505402469922898682359017547451281862571161220943799779540927459366802252958948176393314036656368855750931414249798881507265630170786686103014210893332536291486073524459549943080357792733396749257897198339555873843983620967036266088286977100458242011610945354084060107589563373208260107831253274291645142540994212132224171331495667797372040711336173487578294855743264370508243957489847940760984061443189991643209620483448778973827679119362125619041795525554753796890006263047723167787377176726043875989977142151208939309629750653602248104301791392105499839525525072310528763335681625567279890391827002478610648839048724533953340284621433501472079100065889210768270924888589296747663601895760158342675550987350019943352428145821622593179145306857314546306746496513823428475509523217482627100795229406383350316795223447871561245266952070147856679043619382876321920863672194307774173008233031187867284807443102720944120795959450460280014231065810843526932958406974683559654065425248632912227431257760335967326302994589264679302141112497597279705693558304218135451146949155643154856595923127873581785172286893419633522208566601064383736059186971371522028106373736139800109360995559353855901228875009808697575818824998783527325178251410280512901098742811298255836944221961404956945885545343659528262068270191766893952260236284579892859630004564129379240390289249916354647466348120057503099033139397956645351944983857566422351985384354730804685863836944134958472123172146177799011065203822474435904415100617506523218174136659154576348295678617497923547423763713758197948520353117203279444325191679042310078610453682174081602909298817127651819044998066473740038547893075184200246304298142885951456732370933437427551075457853475928361953336963599798562882227693271084434647704927248063531247185555885989297928644001406514629514935452213671007911671003554402441229625629808132231224012672317083958486004360294971748844316427270443124950788886179752774305399045249107933043981897311240252110454426144071446826697287645427773714865948365264247694404866378172847848943177879510264933584141056677939485742673220118783632584684445510215188377713745188430919984415744789791249380379926301292303511912871534665003168267396620447271678671554941127992286189020011796968363992283928595514717713104185905913560582285997091315598827107008857901117507872942531297696433394289393358351747928951236127498484463629223300876190956589538067340700992133105284514956389413374828888062232921965371281999163788717662964869188982063989876108422647742840871567000569381125100380563709644328233076902380431158282930130183564606028046131189496140677225069329721249506805120886358995087237868142568367224475029152233272957255163629972468681424333418770631143356737257078267681584906498749333589554758578853612377531573380235136195996674785584278100667831546949051190573743136661036229189140476888275948693928091203187935307833124165598187307994736853128518203673480748257830807609241621526286648572770187093305523117364068933477789187412801228947514200690940756576603868882525683065908366885046376128172940845560666628104008014995696276445003730910272839133819742532244523480752028874094315095503387628036894418636697035969514451182637327674411874995842951079650042209468962604820354021737852078819720760074330330908793879501170047613021033469162701047278213879329486047661312632034538489672535821784007268030614670938803321233351333426494732012499153984791765970473444106841863169563367971496350533752846373900409111669068373342316814300389608880107942593712731816731426712301004346578014662711494814629710555432034471782987436321798899024425637295021914520651709253520299706447346281305598553179899688305474835390567350744967134920115065944819263055527914092151661707172274102916519453278037967894851143789935685747317126582771422124665232181358955072882494591763035311446696530732925365713932488756794926633302137451125934495378909315589284151770097325720352445646859336698632109587042958278433225653049104796592565100064009931653689451808607380103959277429186285471162573404181159920259837883334145679931300675703822181264702026655678746756175821627044916826411395212640008928557395783927099622354721138736542362342617932985064718584098413475009243673042856984202699160996891287915671316705489216859315098432433054556147252928204366678067639018334174837629330456894375697600275768177996285730248577368942441297034465367093066035309213138729607151302458164717546778864731552968174946257104685788425057111321838890042237958581186892958213261035598274451304982985858085219650501201049646791607352799501690801790892653717428642659910814267327993726689945913141725369198946265298332617004865249287553136568224048857353057524033016629685042375909145844365626413867588404638485955763832220184580993419753174749400920538345697961868938082299483166440808331306476542002245196340572885547133909921455310357632737178330657735610046943409115234977779909690704753054674815244357378795179081300029890610553125433195580504921935593630090261608437613056879909491405665305979418351184798735791068318993111747870743117066326115818250899776753767249464193910163321791887660746138139178914778798472504910572082808520059182381991626614215259138074502920806914229306021751543890694661809620517472496741749745267309329157473187051647513980361414118731945289736623251224181889637118202970649454828396908699353417024459699881387698694824008086467962613878040550540686233048221884722791531650929860536701665596782488672626415861473405228198695614498512460984895265194040823060379773773125813631936303098900370297278315200980653417356420979772206523301132522290037219560475655397058195677992571026746463397687513909374984979133702995455147035854566279466817392413649587560844006137358360795755173481678920267779982114465357110166880567495691984222712583588948794506021246823169264973361762416195922332019333610280457069355605513553366745894318237289823281801183738092623594815604792549979115653008754223917037001909434273234540982235799031253958004699702964483679230581357332837122055858804978572592640896304640609586119470392050266184698705900190214609247345172794261962913588783442103151958987554921918744250534921090114796036517424320020626692652986685748102528853640956049859472178173110340736364300196587623816711555935722151309658618514949568030741244589794808363575605548118454860171859152305161461702315360296804585742172704980307076297145428156653630467344553237538662713462777841717027637726610505894335251050559507607664806465281918701210544873615284459722751699957674558575421398237810700614929320391327271982026643393837356354259759918398814971405938630535618527141448440295767469844976272440663280555188256858677115049104852553964637866146557914286827760298618663003148342152046181049435372386170822154568417914599635137586550225647048593229677768655040002698020280199634564274457233860147954592522567902711447326707071988100889072770164856890427346502662287511184644440119446149479727977947358773118235901356763941747085270450835816628522570789561170758574454200049706321724831679356644208430267689083296568924957437000318348784635302061523542185760586294042980479625136513131738637316653451792004623045292392292814114749639206431535637161848104610486803185326832298472529088825078531804641218067200813736715826175829447337676023598742343094108247819413568906401231794565454858157910941557740231406305834648084300408461745483813131833334490844359010035139497032675931379105677465749723321203797418976827948312784802770663833642672409831259182805620994783676755708835924139952253415206666544048145807947831392095291515063857825716042775837885628344370530964935951923112139970960808812412826168739812085006059274553308099156214192493606130248738591416625865773687858728476651756750347120713130035121990978142885037575415639634686006186658821161007976079803500536683786755044044177423344497166820178385769843337613731184041836563528309549803986803167102568360318393445311111757875861185026909675110284444947326167613936884613886975292705127463740834912243267777679659220311840002616502678703154298975694736164314760167092040858892396363450483416092199531996507377973960687821046841424159258186301169177815803661327569290222395194613998004625333326665286336770242671970977648068976636963512297770917960152397632791866233416133143722589010059393545020545611130391048495867798404117437596672104766229407926697944902334295972605147365878814421194775183640958645739629346495381491684736685922034744269445540562078903540998929761414583049163921066258770644515096448656548751739426069147216623264143482070608068082169472533720456542546881611578631109088300862273695041646825993225992726906108647736235026617696459167229932605795662513817795036744640673778538927239913026891819600284461410026652308274100930699339358692465893764121313301231485146752473013205689367782240563224211085335589230490512397350737977283818735703032920311996405783191758863805237120965377899718103238191717483568258697580121538283112650561998803710697562869241130597987810383007764104145284760499818070939022577681291343137608218793047837997975939044978937356675436735889677271928222178439651908704225753806868733764184405540450457129600588106651514967485773304618460049540362147827556068826859235677112787389772072272041716837094251131788883033412213730067023322400771182604625152445936611242447313474377104675100687117202686763204927092880622147390126180613233507650265584209497361583608779336475837781776118966810896864257314860376707257844105462841223709088688247178637752070307680034512419046572416145219020282563292531876077507122201487366660608681329628114452582690380558607738136473273744401675453613426183015701097498867307566957019105020593524519985254777110844276495919194513099585927320256363559567765575993794485570935149593672165570704965348283346136758627385783999638230188133160955134117725814765418253169371402075301005899158123876997418310958948993244387986393509896226557720833828022969536391650963755931112355212061997804135364632473502790282622774981998828375218234745370101486576710232873657836268003292918883972171396751432855825088591811268167016900120395548994376018403258706983375797078725613112909491873645002732737047972818073982351301256497514244213704991024631616329567602984043390637544590316021256398567013009860255207642638286542020045555008076035023774812807245734872715410136577216986209519799002847378694721470770954789258053328411617340082664836038088688023387734026745267664377682017516755792202990820378837365272929340586772476211084473981093664713360508374453680902853749819544766454252480007325535939724545303997123880904336655422139547315799136216707901573905984615288642772479987304984705204078689200163678994440128625951166980919540793679299386335986650149600090335541481946180588472425175034713304623680541965785912980200348241646607100302658973334699367227640909062275388644283509724356939758769230528192897092015489878124766662132839087313334097353075140076102367457262017377576698878834619176565468491214878391514413036074306263970420847743762779855852680028230510412514769905647563174869225581428124451843025914899913709713195211343359649664161362597689973018949786796970229105621372579193430789451014862892487709430740420255427438604555386034379929116916278382744670196038525429656441752915150712820070942146049012139982934706670231639400000748896007862058103512779807464301576917852871979338144456970392791772936912039600510382450135486880147943091563568183891127989355530839485420500114072449275175067556708609478402240155501524252312395692763404395822767230858336431528595961784974375776201010512351892143042805385748349073317567515021262036758632286461610921920052516541870054987937408333243955558215551908519090813047565799915387388701553042472171309753553379139298536456977868037233382321027918270011699421677146703033213377600454081756202457544042240542575731029810492791257054308705783838589603319750230736446926992685556751096229678572366063818470725103303659164315408301468056445210674905082024524882115174096435472812124953380546858619105303454661247798226857463221669960849075979293687973932146571946505918298419044276655004903079272160924931367490345665437792022771761611217381545977720037594436684824036683641949589490814063227722457222698955387996839124893651110386518476868704170576128248958328668136695568582196722090514595202560076472255505639463460490878282433267589377522237604939661340752979246818411068119357089586994071359090781227093938315578907968483743316089457794830597430505657931916903926536889730060610276745446346069394304998872224932643318254278964828922041079300687353889553107223649603560545618423487222510496765450606007651684463242606882462863196816970877474586528387688167461699830140635799305423613652805820082787361908403544261926723615645844378758571585105450572948906733889438530091485900274637749336018587872632058244976804852809698600086597657886719172879595327560067834809462961150903284891870099144449599935388744286917192910391289970765422030836217757536059147619900772077973898106679735081084679716422979283228151706833263359278869350235476903672072403440488276921591214390483076150365618760312069376539391372175733775294290663151907899321973333818763832033527880866699675092435795211572907095732541316866028757081244319964934476899796345084025149608740745605170886404243363111814947392438824735154232811456543614764380985586990950068987026479588137504355302212875480854287910579060614687837321902253704750975886147552421107889174564058428835062547343503509736555856433424741167369686180711622913396035339946277131958867577147712751163233233492668181933850071001559695543761937471921538866027291242393171091380280110193176537664983193430889916995022944167209338503147683634202565027957043415658665175870914130466153283651686690586530944500016388166553614395134134951231702120612689139355752350019755437742918578149474838065435977003481086148479034984471698264302833480071368058475366601574712255057622083165916041483818186167468228505132335317596144266069429955557073109920716824966644524350162849912341073795384673072455807954574025116756843194025865411025033909083239665794514924684750735427480573902907101817953966818662807324966024378076974128989869439526208902492850938475582822553723569502336828821603146249347983859517602119640095192387886249893978067531226119455426487942966125935061427692265929929600125975154439457727121304079523291135710385314220783413788313484261861344597054945217588514110762568090618144051968176428026231086243194195722311079195679790430618696708971481054189358120889882313489347800295895148089625716833555737663230707938264958385244903783806428704084627670819480565112201029294655554692861436192575259961102446347006403310596210974963734474578124287429928539460093740329826703782436972917712774203624716938935260421594289058258045703577077407194198079729414086838034698433877291936812707799640421065302370946869396024772251869225988376481007542412074679951104138954058038553434366150705043754943149629664138576886192308058500806850351575521173710249606077763737025997529541483481293429206833166896115078882227002148865035762995898379525002033152638701752300529547804632149461514917164266279692697107766151171049182385102521226565361565235499881903109820351867330340296598790119755720355656783400654235536129600058037399331490189226174514224628857168980626567067020113672598941374751703623522960207642742997368852460588518012055481324301415940381016498248809604798264553301655907618572988347356059286199592028574486815773508509720863269693130358455401846586983160551357047058778252400548282013114574998235031518634038354124616135818197668037638301121997254906496360824448544345192235021573552861937613142323782504699626022250205359349179321764052421788114518892194315516846746697084384586379028388741830592572795142060247197068927218604062729591735196311150108692888812419468415703862887629136178824274223152501825317067259451103238500217974256570237298747614796435690355604889903895429667116551296334459940196404888060167222376594263434210231396771922555986382835560248193218561110197807791822021660696240257062695719902071830822438676087042303343229524340098162665840288081296582144086178962740625161529724028767559904981220589170660525556240734755290733438471107659414971812321940588784619514878400838818123049685563475793992913807040118445602172712034420610988953187900975207007902997859031539922757411124523681369792930129764704868879997022608057368547682874109146215814932243368618885267515902945807147063792448304326993627896356464698280885626321993951970728412194529534563583911263119632028025089370649206589984695032735022969338132826708820222794202528020088487837241359603669650402225303009075194349640401144911839302179085525261376028050871286186362231448728580729879832778827185323202173845118488901278200478941747312288743047317420705520044299423142519866503877601101646579578745419131844826931785455425241151404845422960254701511458979510114753344590632629763842970189606338422713600193637178706524176497470966600079463524538408521656780261816035563482979733376914210508816491873031640166618615765995245602240053092476393887086477516991236338652793871572416980240656196487361140452210154216600498755603535459257971345630581136112458658388523508804189851153147687557311256026306496578521122787857216286235412249364591074704036728057662412542530127698010599554221646649543732435968467004281773599438300588639145568562479682180760562728372734589497104476194639682476438036271986672519763749526685260436585778389901037112459617758395238963160943439863115891228376123194850942359169585934740516747550002288198227736054266194836340214011108098093328737785195566228558225608719953166431157776560572219712961225236225578019835419335268149085481632481677545547766762372069949718311230808241761897836553864078612231141856298234004514457304762212425171393020326915163756833521530918272984586556756966084834741919776469198854189375944807856222713938482261317810700275024341078776213533330074442902595512290660197386594971160308844811685508533627456430031152591305918937449117088657310227724650617522157219465732165611443352851747574815629607369063623896993487662126211868803894004053561401005785689439091759553412588224014723089359523818820817094206186991467309382663150611303976111658840102783295312259816601444336125154331386214297801702748067783082038335545071244278016988860475453204363139212868694687376690447329190008124578292945535110363949452079440451705873843485176005812318488518626542177193550300596614638611234364837202686338680403209446293265612763604277981931747072587917580546744387051938981366572950445554655752570571006979271180695830564147390329808688313759458476161757577570648431442758369582451044881497945140038448536001202299408206925840480073762845032355903710296427581642928467561664522264505435842034563889920805497911464813224677904608080553858133479690057725811437770003546779564496322214190225125820997795781847915969919990846191243058980431984737867551476655431293379276524705563222162687204799926444403238555193470581895867431391690833717993413774359882096558420043728297180428489974736768771054512409197143180113457071550671634829759242080923432202453989136483894041949786875751339055597914816452087733232475462937652562884307574074891234768145222015038492525073381098116394126506075611124363753505714334596612442768891507762477532414546642113685679408700494237936980708116603369416033868788473501192256214271286193191759563260934715572414385722271859714994970367617686675233204074108568602543461044346742029495895716911911990256026947316862367972778344845600866421820432591049622241524396758032510011368791481954406396419623630426230353632704889492995383355286380043349521993478227204680044936822609935298432533720540259128297129082839925108881392150045721019383394928337737786976992715119942953985612935845285371384719038641768805763351104617216611883273457237498963407638247813961044088381952314603539273898696787279124628346681066421119142891652447497721362638355438824714976118282277907982933407135987707948643967773717777784863343166035253745853212870083341523456429273706294801099315370326808758980519438321111363473773084059606439747652095418607348946581583245605839206570664261577036943613986043801673970418083820843102576286774538329088254378939316231434086341343971805868322235668018666216894826686588780168803853795237784487376625333831794987515082943730766180209509369679974754242516265750341738214158278461081810047485835734168532755767184583048360959818322896160651250091999080965749397238996048908663254515121469832539158322505597755124822030266243326097538118809431116231954316294511855828947823648109224847049188725723045548028875398860708537342316708715199675547750429388437309060630292142332984109769075134515581525936852206659879898394686525796866514045245943660545557286901293061766185650071157620811978803134318840804977444675923461271118504017071418255893056404718567929873590751380205091243620098654391199001219160729210407022618640311571186473488428842492293465859174188824880096552521054661636696565265632872886224125539166287882163138690680423709900310042805892887020426670859024690271788432702639937747238213685931721191812614852358738123839979930851068973348788146744082026663312501847848947760918361091006335914289153227681719165074997253168860445488316328955902380440135750161610186331838782670962214872088243345606632055871911900327013849271484249551956808352257089086936571494316818838993081717613749819458032204895953048032332568909299445854516187502777051758389786985187760823191600959726735648748233316957456477053440751055992088199028684983428214457504825499825456140214747148219578838965157146747131393819375821651246559979406777179665516416178678507624029923290397553894417386346711505765026155951358718960791691593496298704693821470676012764779162856218062712290748966594767085083428872601521089104725312120098159040606811056356574848690061356779976447797767094788206351502471616386316876338387124775647849948752672682359816017685001419703121478674902897567320336479370400643126846143262576943329802785437535144017592779646971979465649332667347922570464669892139946629618132217256329052515181843420852511586368335841348365964707926860494566412991301774683275689020763895686885946072159192754925940689693110095286842680510919954890550360585544189842238616619422793954960856800868056100491261291081070767871703215790047945754348884150937351929514551693042806312709073573458865638894986765874100257459058074497432843278835550489594705635892918653518761684775292414566239714667594600459762594932921939983707750025277840582663703597995803324080592755401118201710538483094359035934426023836917963448444056289184206046140835999820616201579350620016178747561525403341698814713584754514689536007554093999982453108696152590557070747936503312741067041698715825634424069768677596023702217790669259304906316331138296396691723893106448209491283085542572103165076069562107989755175676294374920477756056335326141679586431446521007103932075198295815757161984178603854993402939171149679567180609895238299394012989199347221675596501578540844242017654754199369087541354585830104168689636742039226513984312933052885592941843059171411993330612670309992687972922441387645498676631064625865884007514288449902437733703191067742930420395126619649948633985779742362175050230663999607299989826537317313133203532707275067757815058489733347781801100041253701096649554346413812663499510331994674941318012805071338162399221798532293941356486421205321022983493654946984905093077587887139337351526990166023245842679005975048782802039508533623894417741427036419882860963516734493865993406015232499441177746238775452810442265466536294280673517858478484457837815028463299773326186662827521230908879340357893835411226320935789833736208167050934379244132099966209016317506558485966074692689257125524619986394205863206631119258217692393885272702979219343763975030962192261772965183255070995119701189317802778366551905953311149251528558682512834516258502996962841016728190650470626085270661484948525086046046339658532883445578306601947500299280870827487922915264589534185464326637561404339234573057635509028116178014293980534291086597945401311249910551644418282856288520054547125199962842557428095086502213529577639377251925546458641448558275218799569601990275604595936649980728294257061642730846813091862206485595011040583949971335036714905438673616374408777977439475944746216560415629950024104554989747222117907520134188585052844230206848811162582275360681914922857118072622345602469990621982031165441244182515924637657230503077626305056456815752472969378248429114298666256831963787736125253218685958022957045958562422813966189857488737273971924495229251348640801599700339243099132457088104251967269384975242539329201392974988135601426031494369973007559281178246699212876088538550342026870862957811451103515194625047238779865704840460762554889358307609997021584548220840793072808316185670569851659967302335801399356139691913839583508334104354864823314054698438713049425497847917335473296149856598052888499540456123799854777187783535318646985304520919837358951536897171564422862067234188788952237224855151799992414230493330504855317539416913361759096542959365920853205580283735680378512949619935377429506790171123675948523826503861839887747576908843290867438386813557864443191062485358652969806364732665430238812097558364074886932860992367686407184683998887354430140435815098612610410214638302371119136807622357027761961232836836415305910331732591247626489567410544863739103805236527794561895718877497608340715867577008996677552133891546531249125430201092604050155695728073405801165616918330073049108353430304015608424695941836253813586606192568932781685263915018437916190815911985294847345806080286539562432287817093171743215795071408277386794579120257323759133062651747750789704743285861129682846088675953553620977154899003362045760389654355735325097814172726322221124943711113510317277286894091466144081191082535211836751848519409322190094181109900564572094563154876295963460061401907835231626054410776519160802078800218388498461855743924779611174448745508645657396633820169121864338423357565323875518165244746174316739835101495423623408551809783762439829040855493366015442073653292571561070628522428191555294383193314890423842423832375406799701567030820607336213375153150610054506052738822522244322981802415121176972068815575068085819788376293673313697103803382887980373703444325539614200194753029148170856903716187656209429939770136138747455434209476648960697682476518161276383843748018906136973564308712757902231430566011604383122530204641468199919918911472885418631499578540388928179299149305486902124826576238335965176467788327236351406328919242371668244442416005434705096596560191768710649121614449936887220565539200709767140435443542193748377114730051649428651582995383723412142709815868587468001780156347963340811976298921348381352556503249509832249108721728095381908254963242444159742617501562544420558536231079358713991506336198390611214676663145787734016486054077648110769630120527236627941703800007896121484956461004416673686839876359057490368933024587649021550611663637314329916775488529817932492456697570178758313664779922984636961146701144803465329605332745687284048082594827634146783828098142496160802540726312995901992110612555006945947197052095139354858469316491384000159409000100874388281787232954787630418173612604512710521720661245363095045634907537743426238017558971602728309933192558029685593096892271884598679891222808330164164035460366952378827665652678608679192914693092269381752749357673552762650702934595585740723483802794226406391343272926509236014351838464569332348134580711573970048255875638103366510828067946168489266371172828717138450382706615792882344254573750235686604369749500676009435672940231187888506463193339963357418288294861281829284113962264099823450565486108633729723974730273021069687639348571230542433766808691348517574103494571941057763015828039046307005822862571706627318540761853324505213621547409468753451634699827956145128672181585917415643145609795763035678163635550994673548842536029302597461697988137491563657154518748714437557002300499795541811764472546691944466326834610702168112594452635756139220886471705467095473447954549103083762307431924402895986657032042111891960008325190444109321711421370063802659290765530568446004681285543386239846186403300276747460024802298177226605577285092691841788534200853334183884976657073206421344795072383589451243352682497532554775451177476194921483485284669081150908282689075942236099325127459220572932067291085287015650613437614442320257030539758354127193116650874657303481060342280397951920501517869880989995134952105855265720774720458020255748721881229072359092218762024757302114060366935148925223477685779605171004732206678222735451839759537022837490787184844644478134433264136945587637022088761628716241754866208124326259754148680601519668568967200750220921673127380511811753162282465578565692346594545772152295358366080553887315457444715558958643799530387942953805364550346622093591064224924524339654406838831930658999789170871441655102428210469577977959534147785417484436219937786237121986389712773040641525563428503189413876093651327361426852212519814101790801731534482522701011467196561795208481576297285088198563986901717018537105246732210504700185779143037426012308288365321324832767457565088597336995179501390710620089602440293647037927485499756008690655813573076790453292231153171465184249171651328676991480826244826066344444718883118212120314196126058337432438011587585715196933621371483080375681842648156308203850492095310416240873268719440972257998221907570499955651607533469974463291121135710323508117141477933367758375328446719480408191338148065736837727503680122695360015874561480792737142115753814915562939535778859871035898347709990413113525006290214668415236070919632333878094519780377808369723209248783144468464307640627264840034894062877852694913727926251672427895401131362053438594058097143219378047868816277361481775674210877415734901821062325907885744514452865340130952533771404844734770132799998272454190516937576001000050247959192541204723271549288384719068439246523277965906812207606463345752452188926514266901903415864012897654171371089995176644828343950877333354644671073722251296766352373511262729237276194856986270307799694394435567739528643131467663690522342301384841624271026515293649410450715399236441980433621432281307656833767656284357780441824940613286134595477564534636567986460573511795541794552085787016976318523910729157932380971328408744190927801607567387956224958226047971933117069772524201637311857709043636088556003566997310758555770031463388810975525911401766169487822527890115188862309731698299717946019720192636713104007599357035490988810460134132249782446037297774306853617825879484681489427033027353452362335027205975152190647451594767640171354978731688830535709188697764878147905549706172901901808657464899779445615827292670169915138722363555570305351297924015087215749657704152561112936062469915491551201286563350830869934955466414320635386422019931654991032180132864405204623386876390337775063061350534262532353284411417112789863219242008458007505460719777995223284809843847879408158731034691798644404344874224471173108649776687067548670648680023411508648753668754990094201853333831151044092282400435785419408645720189076046857778046887785407199231734555181558195635003743290298670282233544827302787298226917904974269140312695447274612982770865987311010795781261144372451210248055554293225472045990327710629126340615159924503281719059389744313101618938340968417395053979891702626387489470518013148053089269701170477058692678958080346413516995092243146095626576327114531983296803289876243175004518677153985967995990995744046571047881816770771069336214203379887234730547595868571910009227472632118330425384254449629157695365672703220207251456300094758744768013588156171283381653594459627365959864096812494734192888071682714974212799659726566055333988564050076803252086520694841510726042128746288617138515163709472645924071754550030604828112989769882288981239497855855934980083057822557622597820629947929593958465287529803801916220335864098533958451534319697568572137014383936814278678135502988613625450746542753909483766249412609508019521697805287834222480776817202263360656250137284114251809364598998721970228804620363036261857800498897227610912050032866051672814785885538998729322407574105954864241329638122657558096066617411094709397913847098507217648315991154014428936694542166825472081111787493289301726268540720685628579602086516200969455885435695643473453566564859543558042076410242546815509695814632936165433625082637119913820208738513182579287692309701858610781295731028205731026430568880896862135920780430784533999833813395550229346269262398086214372455395199693935590309910492193541292104773237605216145351482741056584880728988754380320644690344111451724602696622666211818482896319141368717487918998041602910266264429473174216628550207714881566953903937400500306807641338526416537625224270430172525254649250358721082230440022149046042142822112647545401117690177075655815719757136524430570004591447655973095046809570043333052901824384534916070542773600698368244608820985820111764755399428391605004600007580259698312614782801918968365168778583217278827365862089755985541066896781484915058258881541039542119390974379299427777874824822034121573369067658371824262525214121989182308863779498916480278264323453851569127497704453173074585503866053372872221152441036462747755875550470542454414808944249938430771600945549982016169321388447299367024837119497929017351909524666796932258212335080618185080598436714012213413871039609739497019908846772490193865251659993830483782882246866341598531485739514808903664569594744496496572275450112587973661460201749427688680888310300122799028730335110785584718814092171308385840481170759096081260276859967852092064960040102436153743586700670919636196033821200368751844813745961877592945328400041495291903495660851833459714369447008995528851810078601435073854254871762471798154470740254849449595216781909547590744243181310837565126695661154797837544550241535812108293163151590750662676307735626886167074503724451537813505603564861802604800626409134436203567061972517426277719535466203794234011535014018517528457478345924514592934817304804314866632670010147124408321624426844671343956173310538680041286911965053747717995865025291423010922421763746839087885650061561417680206706132378352446342098135108946429506710197784218275422249803483586259704578662046253239057101668312207641584052577156840464475939633382766254002089672793100473011298371902639308940843661990633194072915455155302840754677666114721163519164317143227507474304852283634785560357335025131584942975289743995990567995320868371523012981372946517373363341243553920061345258998781718710342174682590918109950281834099521262348382812649402973872091525726560963628822466854493115546121422065958745643197218358687100071492260102789130844797128058014326631681018152608465972825493673520881006265884753769018089934875353089227247565176948753953700374011891174412949711445766269167514799589211556318525116659649939763325167506303352873312259883066921554400971884732845828772560422823286995295983224075818108718318705815729107373375859982117864927129909111630226137619248682333349782964492842600026939455393912810142092101946357600893941467415799254467927325258032917319957397628985652340876473317364412991038539296131938739438156619249777132168413297910186141366051755719692614152279864166014027620889802529494238402178919584110675347429126829902051773415839623747052322122713929826744400845531331864485400029774408491734736064225236477691524363741522147975081571924058401496753631595492414093383475846290580424083964300789232047569853117342971996170483636560167830245189217889774561128296494854397635593362521964511146067118816974382603386321405498149853935031589690185214600249791605593179977546570382988766692620289833649210829196029883766409746868663170289835351077313018102685255287062520640350949824154189813775009723601827596499931127884505934483266153836944634257329314103171667861239957529515704966187833545350396984123921252752448931648623243679745949777529757378266294617208143390049311187132385633195016356456346723975965868224933081519795929141028692485658332235045118037218738969350112050404762196141116268384806946399677046353335641112694401900804308423364631695446258532138845223822461489613046144504076650867272016437867982983785188380235110014960486814280294484697031712326654061092784072419861503174972363766669214811699097416036093433043349876023730150041942471926912867287173220417966463293549702571420050309666811370069363996372880367005584603057760442740417471315513750271455858207457312027470784004727358921139430810250829665622928780114743604869921425748590999508696771905909128086796875938853676935410562766835696545874800407634909622239681122354283904260214521532571423576050944555037171411254354601693929013753689770195239957357841785082953944282756449360753883951993263169039364807786558431438084233357601044035187414155173529009780737970601706345711297137073489867470174375572801853802890954665493561038918596539780342199358686571403808353012526757921966416704638730014975380383754451183930195578179460769499616433683139660933738892690310317713449396807942616512448123108978087154568401442511159561532466798177433125889647857438501025917559086122416755383991067704045875834485254963586237245983087752014381262275489214089291973484768575354828976854798974844826467730664864628996733133172638490331362177236782237726162616650257759899605757740917813361447558348269871752422253433112794589676863767126583789353492129730274097115708511098340292161294821789753998296579847279943061050304215129874157802503013811733803081156147660207057469246123071435270988025271037259057128209820678446983227002773002052041012682364989102600324832476249867773296756760307302701382243835510137110171271871668795888695522009506854048097555213024888379911684363545849555314908633704904890876911769897586788252180392668603160854056056877245252765655906409426548672497233382125618859881485720791302207866393754039371134614490659194457973836467125007780048747763470997244668004676478288165922834195691813398213602581853872909046679235678925428086398292068818636937875641907215871615116322117264568995934072813016433234630505993249218324557146063297125580429846805092507080638147416450811312017723118168513912373612796523780555509199085899867725824420080750946129854025674140284679682278799771363323476881565774645072468907044749417935112828768976462327756238378174822737256056908413735867905270150131180865351113349576149821197767310190446417128861482522330738708747829186225534391747166811867356290836231221243474693554383972434906037322993577801450495956926555185630201234471827386535668326134023072130682395055604397458930918207771152817607723990832929715614491402051419212121760615741246265532441844288931723720214697151733842181319300753029362453861576581564079977398022033926379622717087913131731575287859670452775052723103129640878446163474878336524450790324979169167766324763007614025361984590984571695985161874339523909770765945979105795567442676551431085780638723047983589932025313832762323429080761131063757136842233413176698407987403097641045949346830661292296258867258016511256712028115336580477312543054908202756813488424626610506601364962400620593627555775008736601242338680458315150947762291807567820462794801993534383674862868740906798864803739613427140897941404015501239740318238872478784716176011600102527386381521578207769744504828911866715684518640350038435127655074603889251636608023616419955299766112794982276738047807852566790999957680066102389162326603656514587991808878678688939195397227557763504750475678175814459293275939769432153549238262622384873170073017191491368452880428918928948432258560328482426091418734379264502897687612675342459997844292155281792678762108481224476369607411339644673918345207547514546427139699498202177939837696821149406159411290307618082232912008419444892465636447697175176407260605572101300811676039656597346524128885749679286007759951429397811223227465017149970503673558937162795113647358337381627112191633108031051032656030375822971798820171281279350377938760724552992766596708377328607630469782154665903852401143325199755126246247481397853131826149214595368118570785490792977787181602304856437015013487900145145300588527923390937967320913882652930296070561158108962128874032159240658630396599878661890910250778056660143811234461843348098771152919847589670012092413015222544415729169576342184924528650762319994800311245905275436385254060229265345761472623076859366594897868494330242786120996174567081205386198198916415841198259243559723247615586369895188417773566560438138085564966903027270904417869721543426348239522094206047131260942152412577536438686703610443794761761183618404789770606990392623796161667084378301102726335798634573056614314197872968660287150758232353427787128931519977130845685380234581406892169789774799476369083448287161886979835085176612971965522028174042902755870135967461755294988203711401359054071570325789018190599634042182229432678871166226408292831817347120020997107480140189890353870797553050081908874453701789514641388656149233316929412100690415441499785344458489899161000176273369131645248509055631417966160285133301751929727165361478719953460114660463050385847801912966426106656155876141628215370735075854606942287236438117011582564798116629646474616135301098243698259834440307638354348548531276804595458605857467427566118174996723944162614159034130151315620505689669962327457244515244475559528750735029407771486109054404804419005535018326261511511276871308574727269094681234851983253078499045323377440787386187258005663902840705181521075477252839242978859130661879985509620096510767721372088755145635634729304076665810343705560159239480832916106050367906216540043601511947465529560784702938889914598275606983517556472804080998662894099275846344564975915049292585145825799860325337761593923194781707603104732571319105107235067449512875873541318532252661432114325984949840775982815840704935490861377246390922903929478722714890357781878711831578521255514094773318534408514172265610793600612285379677966261726020422872753151861249040669288119798205881463092688387949763991458891554230459330486813979353250769103217695459723899180002408177844531113430929042220074560912628214667916101546598915642854592551004502094557574059506802165261295925499765984889964176446444284131943002137664661410609987999780053282745209336728010732695928537447764849776601973224994330644812436483337079305905346403469329096528689936301750282468866646156591834332514245238203628979787505889884459820859537883951329080438895216646840296950482102244513128747289243401919226635955600771392801324509098561302016505536543108226385072831321657392381799362338782089389362569025552872572121422429472561540072389904180036069717816123634855300598677366943056994815153333983886603391421456482979905480150195287417728460711695005999872925288845650704837884218176864132488573610933595873935524730247199086782863362052508421942245830858716838577123919004138977422987671257199907272038027051662230865451771276738634485468064726388401267536555493904720043825832034927882992060105973663150928265972279395474573408162739718195958453716662424239271697443060191595881060475224542768731043678383447701566108309340581177857710945681015890296951544779767349158719811556922252691152386133546962485764088930751676235062011346262375963067971964522831332936548567568802343663663358924762203642494955160682078836888998551133036320687444763526322821237346039405688032159621955650798433442833447771761977239653152122406252874804562230433870134492260301518558158219777859007671867680036474783460409118485269875317260818845787294005991164529822188313845768968762686688875945315795755737755315727426011359202965722448041710558083068684815526433139760404495314653025944537532222922997351626387774621410366994386990340338954318912378175867199894491506179131780672057707524426236197954892923414003110138320056741859895616406977942214831972453208138386026541593032810211245282727545593342430349811623368830194125414165543864388280801029923576112061944510513665692011446326710433213325214704607684095210194882208312229393044586294082194260885369737860174310242542469207166585719133525605499546357128434128487426933367235003318061525001420361014373294701627189561133844375526429277803430568214123082933431865912508233978966283895753078085988069781161557347635034087279701750156128212917146913928006671982668032541761044346193538291319480872845386577900626937109333427458581774259334478969062208722558400630947001138346776698734773188947632499915422206304320455390521375237532170262439584997098363755332225595845193470569384567433142647399392368637590996722646989309324002578212346558022315765702161651885711878969336042412533847854569760274997157429933697937528538503160329600782151476577042480625190286556223077399318293466943493101094152331455469903272411475702421092779391366516063354181518835249505222698287281400379063692141210803667916755427724764436370248348777058602758956076257398962239040265107893783411561387256443381316665345670240870024725693921006132940543145582769021332193586970561192091454307307328073596566305177140170657831032570340271308101461739953262871733391633942517839566030991699936005894713759818958957273561329888050196120546989838376800428887799956663425056168824647369365503835248099368228382412296615827288816004300195143057024418608642596318454007652723727089831087465415008276532029374149713659201948866491094600137959798886896813850059542063510434471840683116332171492599646411488863943929989925456867402447226626931923974807524010996735971246172382111164886914190485412439765053769354619381207378320820610035060913983932697172592399007317069391689003508546356724034578745187835104101586322721060818669985234341946467244181442135813898659433385418533592782810194092681666095943483646622578070846080814296776951785789045026197288452445911926888118205378090468955767975570097097890410441081490774054872697226819979606198931101158857431175555494997463014772472231468484355924084155798729485173385559515322555747487069775741342812311268319630950719455800199947066133873029663807791091109329851281604360452122064108461179247277800922824192324903799168306520349957889938289248998447496693966937962869307726160399663466076675069583370652811059568397279120498311342365872198246948652671074192805173026037692552993738946549467643080872481368735286311842107315186372605434487322932073149922955422849403568211367241183369348739447006013357050918162009890886329341275236580470646507240616233990071592707892621370234291430357893586998546738179865982751741806386730283318556293708241782788742682829515453571321820081468675015931593120501537650048672642393029489447722049500936233151048833702473268525272790156723623140378792815440574301828754981679234285270850010444560966316909686612096276651430078633001260082507557388886658840435690414102910497265037117417395652253556032568486596741100620628728657465258884499953566886273503344106857135758202040255318199798404253631894413170723179794559306827143492876430304428980127990479780003189598378111004338221618223439233689853295052939110985295686310294704080902379487878206429719708425054978284390382862210359939147296529148497162068443997286259735100542558505803245096428770865774435648081527593709881567150194500034550598600258025580615662723391795268386508662420778856585119619901849053858547371751974621139528188137204956357193833381968952284551243082132442963629117106125982313567982826638235556779012397333307684431724000617543947438585347184963816152143679178948775734825046361751115177473154437303784838582251557746187076690005578501145385109210550857518429897027774615254527117180373370301347506698723757207591224751787434194483047597433401426752366044546235165114494389544535124902445125797445075044637647077376885000719200419558342073203873157737795725854407257603196005405559303039009214784834160210128454981794952275710840066801915134488593216646365668808821849411152247725527386921726588046496156172493682380381530232893533975190930615672325133839354282401074047105453965711364035602120347849335270077751028374816359104805688064759725735610479712789573813987817754118878273313380882643814268802718336274181260052153796344347758313865248525695853340589388093406877637688073255905284422901981049407818614176315105124452193167142747673984656734233048317391711513083501804295966164186525874282966961565570030088486210128599700572708311073728809126404938961802076012531356462965480999807908244932794946206269978932255472999359831510725432617511238029550052455008462548429079020706512056876273005929075593158899486373844669877661280869124758689553512947809514615230762973280477071022235084712044190794108706419438538373336315736690747770852053103782839542519014996342352558367387141660105863468631350876205466014174787351461821982698385957919186912523142867279499520550576488134568855594096285633584418909529569768929608947228269210721357179259485234656169339077532617867002321282241083962957562963464259546254266616462703909652665896643455028106345069125366407567694975367697555322615466670216392194549515138864370754088661229698081283377236928082780084673959389996921596164123866312580774445511625910982216409733386560799415016491518069798371282830687322679258057942975671412061198445001975197527990459436005703603796850135835377932804544973759875831010431251538505463963510796511734885679508605309678221505778078186479342342355034095327262174215120935157204765384624819495515832355140222872299447940012217245906906573561643105709629616249950999046711766057077514814855324198103989729272731418991516802235258436190405571942175026643725405263841358463524594783410458257646417915376679473636283369165972335304407220132853976734346757109481664988636413611078268655088050826478327259978381873917825444858576273799442724274519786531640742832926856690903516860920189391105447320885391296955907422016752111715369516750791666088596263436513975521702970262977083747554770552795322049945034223449684948702627495482553597444839710740804116522157304883144214882435776842120858002043537655580043066986527906447265060731408761996685525382201876512082769103369162428863650455497323192200584770970526880339959238447344425373770152045009391747131100395413826109667978852948371641587559254503629272911129534562872666169104648083354053003558615582351545003991024680478995940585664660049833508323554760956126337033885194356312510841898859344058529755867709395862251015633613897159324864151927772249580847433456318300156573199094548187003214185269088716077504059731782478533554742811814580252154368732009161990018216033826364933737051038709794148165612513456688225310798320458897394889317536255965569209500681873560414609293871440945028247289994588101598175444698395354681812025541121870752748413324940016814118746201210115048419414869432280233601732160014345758010885020570184739696466214549384145825703746653170599098946958914640397773852080149958407981181691018539980276274147290277983188558232381339450219149668329949669391833294891027340601361380720900022904962033898906708806601442430909724804900764143929210008694211863528421791419392844131590058381273781262583815369664296977285844804747734703024225638101678142231713902689925549454253694278336637960894136539333066633713092699515378785845559237722856127101508657081003656561937261341874922220480378972130757285350842954505472163257791874996716278491666498322127189502235611880016226348211943858920648260951590566816753479194042188996099474098632200837298362328187757287328511967594968376136258412188034130299326592157002172134921266551499880837433706329162869685900013148179568052255707609864546046617192970594488034484253104916337608581054639952386806279701508764604976735181552021107631145397164070025401815416864512728751510692420636927243397299812046981394736200524818683371377842437826370901341845371898574344175096871052911084338472141694883822659675885821415562858433172257547326550694077854504031508314481888213925031844125162947018632365635638327259842885534812016942732039618691378349395739604597702886243952658355863948779572371907798437334770958394122309238213554648517838462550608834699299796509228279422941271401939225732202544569897326689133586164900042934897266774609326624353403275791576593755503696653393267188563497148696320073137222245299513747724762542424493549701485822559215803814750986937244577758738042914832798184435247751898942813227226676132136410520817127707121786070918063973500577426949356100780074149006940626006418238194223549100423352066695754807424223805774925906034939337319161281964247153470165559675991166067796061131127559782078497520915694554931748155811762172167214304667681243635522313620398513077896979353422088888625695322229196884863932811535229184643016884347942117193011572557722876286751139509167200036696375961815207673302843526364495264383921505868042321820618172358101814735679546169629979052634836765430402042862159647645484526757519366934195586333167755082182520044119196202503695411686457796997852056597149738314977111120418360633663068460830612691034464129218377619896658164784652174135421849260591164304971014945214517027493599664400695025724095521535300553363194729447887081454789483171975758614051565847274063979084628508487229225403954019321617938836825957932734078225411947015574600684025793679689688983891796099984945305392477681510751056801555150907628709949885744574697170706265378428000716873409757527653638377171486029587095690544478466792928919300122729137654384912985228700436364312523833469203513211745351384764873720548244777026319128334708588785366301994380370246033326583075498675563914474744413523874001264047452251552551973068299961375220672805239019808785222598763740041012940694447182422642543323910930814515132728489821644445062452504321207563663840667582960693879902914548399382919345352748097789635773922765760274859774396125063869321379966613904759157567811369913207427544567455658798257785529445551204218718374969118834802568734386348097623410957784372137029449604128550535919125767415367294354089220067796522895249800137543800327386927048987812526463588921563429548958483833273405526293920953338290383855732374487420262418168455797881701262301251939388699920553442258689025888844239033230799169783313441832305499736645510776815989794631861368376253536099476198522046278192134108689431271320642630229008620217052649194683643247621834611146236001579408421045815970230861467665008373288053546820381865911336251536480259585731986506212766039751645315841783304527856698867667332278495285559912041746023015286445290660367515922145574487106331073817614336057585449741735713251079721917381674504993954485755506259065960904990554227171145387303510534494520267148663299082524403028122636350884335876657983761374424124732580045352060103526477787092105100324581914355513505299503229807058683474837096266273964837658957515054641901248938202181769278458893803377982215601095657317473167711508623843674216693612802840408374723584383022739888465571038460800911367455079447165327411812604933611991617137220092284898249733513642107628435555416880264027631448358779668364007166590192005156071155096305097453834899865085706370897665030393850510808005807097769783924440889569643682835102419946285256006050177420137791028086978144044453080970767886442165934669596029637503070931146359332318569953932510264007362792759537377549119248612698503546704775882150014784217087344120425686621079926775833744873644959170982088126826667995581556650968156386539096143305928747876031698561605614710538801795066973809830849280519514782198172250695481020050393339498880112408219143855668115107085753212708436277858356191746429215992154584551416070448107535375459378997617604179675266678387398787035204658238311522213119867940281210597583911743198347671742277516415106691207398270792021542436000139551477497928711839271479689892789920929345046097015177569887555378772126318111251761081404380095924053044063094880126593306414378471953286238957965507116227612944369549115834138104888339088283563187766673973424755996252707687274145637065135850391716925504217672016258319611510551447958024327309437175223489252374248138902843405235516356487186058339237823331092111847691169224571041832630679560502483454090236365730704433669559673198488602941583516117931026074364456216501687750473216567182386385204516982893563201392079611681593003983550441150030685647026613263067674678596650834643351423034874205183157600382016739342700586649957490465315992221807798743563427397164234612681279748992997255252629550611230128778453428790657201638279129400703080580943083671281049715138133868853283590000033967679108306540682818870896905938728951026363426184779914992177198093706188435141104913107648361754732588959588758354515108674429198951755048642273942625322317967875495673788431395208515675504751867216753069895569921186431028239606889548640516298074649794589162449572360291601881833732090264249193686355635801037171203351971466216476670006640453684541791217599720824175649907639367659988372111442182056781617187868893564319174860794512466735722551312338150188448316289661317625136608949965414834762683635250819224783650641177420663534633129645011773928258697348030353023771280872796409985310984186883087485436299876383115176393882599811588730373152159946737987867815510762627734678638479944460279839001038709438647096151458026671107893984675626365360368154860122181208637155126813824831981697817972193174711587421867487698651341316785229873126633114826935304680279849895655495158180407347358950637304028356695640687979532116694943428280401094825386849864071822375962360049543896836686695283980120562227688126664977841641007155741464889329998761568654520421246581106997202333718063961777647286486729033483777953248741198163304275938320957353524064845510872804651087950031116896494673976759738612684171858690034780052189479229659481343686014054044507509970577415797859457501165683253452899021591282239389683962100907494733811921531074207417989628146961245240744934307702136638170193551638666627925584996747876988522586544700246058391273242734057622460663471608271796981041173807587222874002912956820869188443709469541943104889682432020431543176124431540829805680956596646479460400164828716775789283083355904485095790420062407534504023964785514011777095863673026552425187026031933067127860915984201591712271306641218723793501063750888668147313115934848575574651915674382249329102561915449158363630874591850967171212954208687747482773524832783572261361359403029838822516859143279038780364544686177848046052079334448435244710322013654962484431302721071400923254667374752922150389861283283331655531635615128818295644415208469299213407407490691414498018960617586818997524585785957682780657628029103310771154831957528067654319798277400089489897063289148555706517949873233581571220648456016255835331864686354892047487242547167826161181190968948337490100544501690946798553202479348570759048278130066447819640078511808224126038221382066999305691759333845445648292329789642616938671330707069747225205530139087185083880100683840438638843365414390766034672338662998238162040415347023283006221359842290325869210562353068812896418033639801520890934279210169635456530810973256735803959624394055442432543855875505679063565011904589700953860662264133583143743608551456897874855813067223663103885344645632750478638005438487033050175998136801854322372694987135641721970915441309615101549506178493401138722957455694034695874458026642691205270289727766192535858753961690524802458831623023781972088882463459334579666652207829681529837262057211002811070847327896944514000674374771504779036528041696553353509008400713861136682957487726654295520100742965998712979805573797947817202966240521058697060147034303628498796837761718424132639016986738242402869536201115546522334886812742258741309894918046101028685987042949680014948263025233516260486590461901400513630641370556275739169302072777063099145034351114783890153301904176522164448416211851301843978785364756831893779237742930719925920684511851542496449523327871723854601852870935510107862542619276010540995078114431149481082153540562618721496655963274932789407047314277929951302564034992831852099802674322852117326611819458546874418660500845204997069388361721502175748296232952302208572945552376692075583213838359521875932315035088108039062757003434615711572308531884745461878042448026486743391601045752206801690153751252514199466990345285483076237153457196367878290976948777103936857138164293857770429185323272986912143965149533868901748770847642330740439118798862294296716742287018909041155035277326810619758305471534831441017854216234559330817915655451675768856403267655222464673433914250332948228900161483418811635103766825814180905236926298182789028293890375905837024696093478062950345316510077196465921846131371197671319063612736155458626009670085013557784831772399389783307009448973964153164928983492922835403811119070178438355380755476980916372405493052072806365791787885883905366118770369838402035082256645307621028089370066102966327403078541571066662260085731871221015433679261665691162721613122153440828030370476916171312100698730235655695943967575525375317542476689796078205580328136266081454222173899816712196060182170817043784084524633497052299374387378181807433367512337088898911513129227253693625556090687784095732302993098854149082234396431142373046306467507126843405545926243458009611948761235222728367726840299666112407059159729286100161278519929034284019019059133707746137389836471896809982276904071647982437882291170823750443197772024599338971762579987521891341381787684423197485397420617129328303795496074697943135660707522976888676935078331189326792836506125928588562100938029652707332964586229674519665593810636371868227232498340384461242981477929610590163917780859695925523094216019625165818996371735011577484198443685087433314645042984473162115643666043190743583082145795882780160094465555221842166169223774691096190937631641872751222861912718615632866280236776973664127986255252804787960473082838866704452138697806063341310214700945930978857686838792406472069843640621438234859469205072793751386278305346574848782605576039592297666467204700785997155394689329643744544609719870618896965275550756277633734200667815055341464288984340008221403329516916037949115641513743844622404191678253276872490523615859186924689499003180884059121526306098877821542379319404089715295783008821836875101111901742973495079892161479235505549864402552669731678904822724821711830509731049922805760090962764840671133463599532671118773361826175208049259411814732176638238655959129819424358459918842170214347550473079166535902511217534993063205231041836653625190339812232973363867730972612274756489186850245400860222023849644993955356805906044716187108664382660030757450978586299056961615528577015568025310093995071548539738511130864012202478112877206665044057929151020088757835259999358019051765752744851585445505269654911701139650832380941699312468960526345381637178331091674515107399908758499432031765105314916507621696886810922128968880827154836608627780869281283785803407971692522245070490875861748393884187768769152317628434425164624711990233679298619130153063505230736378138427249474910021372883356124626897276684291641367648815749992731861929117136755276194239905730810409319878663280597630907740000565220152831809491433764165044033076581264814873715780274580996440589179683973221075146848473432276283653962002323467881159832882039995331276573929532663567112416702997747558410625472516453663113333387658284045361045846618314983043216571351045234409959826116191975998576347965444822386370761370531855275372747234893924093170227354403148228463126001064360236611459698806604635255259748846242425748182799359268217001126650865758042729290693620503886959423929499692929198386823515239256926270875569264344728963464969257291298326164046808167615432002697070284778156753763485006211585736598159990548033903941367749282822612849431102520740907999640227597104329265539206093439387379621186490618944707720957197877356951529191643974115857968683881268518550825039340326607952443456582769287427498227006786879467972001520475096088127428131613010982409361390197973837739594287283447489737677986207580087143309768860368041401374598948483835648842953710002540183578001626972155080435181536633081185179725500415761361555547895265442269561745374433623204600303873274680326106760460812314549241454619351718149078762319127330940797337407010399045649525593687055130761073645120292828563990584105211174542545912560093092592494152818327559765147131761725663547037942724415944569277320447101328333861980440284523253979389337337974838468590144762031301222448098969746732775891476279249489111605980312090859273948072641713347267825485157976442187168094189518497353029420351188753283080250505664905874883110349453513797160850422678884271288655982946235481876112926016434239385843801282861530570915951391732055557921813466744983200908904394244296626262337796918330081716802989025004183250984204782216203361852870768996187031573698652218161800082999240844189223787405118479950827034391680067848165703186115672392295322890002637031168534547302654627655450319521019733016003346553642473993066505245084079592436466140135044070762466006277967730846846668193125654283472390629322053460109459144136624845141311971338697825956773566808573989684224954309834001920440402772710995800510591790853296155869222440024894456433963632913771945782940121003224849062031609916727776440019516784106024070402047862860919299199147313961797130883299739660471594293464343760541203824189979823647518013830105305531093790155369512140950029188222068877229383238533910217200334993935059817834062685041770217807704790820570298974726989653955634322900852994806483503811616059113600064172249661533462451898089696357829054854773355532097992740333010762784859711192953389539364151070543558004778027367324619492318839451047179227765759022331104536660399153724167562910601067517717318169065943954332374830668908477697598436605462153757379183770032053676064614690581095108114407814014575936041782331075736806591534327630587163952263508937104581414225611954139183616002784310879218672295642940367051867160991973713467865095615086992664601923857846966607644925473428966239990805739671471873252425578201991188129343561269415803443057050369791984633182877429761232579929807326284063060866005432653142693363525122142856051678547109168655399224103997270800800301014691609497163716389044329033075613968223244371223389897389705796200125928251691658165712863026240276060418192486354989399322353315801690159110862635909640768221375651874006084672342013910038270473520903255632817751072512995879589204603819424139637122125161165307209246833144963357046287862147456890238218449038042839613501757662507698679604966762712971675755726862980868371317676350978501999089246849551537436781786665377565964554635478366314020092039103545639715800116390570438836967959613936969925706807945050184640305959768525450648437445353000541722763470562352677204681870318171930628800480152931119967210658501820809042517609486825044204340102103967697647053592234392150300627587753638764966933969048182348243969712929822217890936284926056091582411319098469121425210357898392272203303486182271043912580368669597446406194678191622058565746716701824930228677946780403126320346963541786422417090854611695709208655918832214927081828857683257730237990683063946309470710014485987492693779748636282547177342675238925146288719530254101462977447013843998819133697646526259178909111606550852383482878081165205891843341859550883978719952346704940340944749037811880582518570739090335189365806089623240950082052035588426954408648953489753833131453768664129820788002814211080537823902226946833430057559552323190856473885837192637052441203505159699251257596002505439568151087188893700308766917514298727030671632362203325452906514097926392809166777672592097182895925704006417643409106314139533431891917048109718240661383737898569684859067071426788853066675013440192503781815994232139073581785605801698444963254488946203116440240138941944158185913678187764632449951832266170102223463222789738911665298183282632439562515196023454268186426960350037311292103924666595218738513183466546471109373108914933162255945679833766692971263300515130033296877453705066753462410163785679126069624858984663982651699670266194305334616214814786008644764936146266458030903232868670303596682339301589102266027347257155198571212940923185634927948923153925034339438097174572994104688295615842149090911672710330155480200781933684943669555858818565047736145111336523677713409743057856264291431448027024031823361812633634845816618534733723506444588811215964217521077664031053899113378050112934712575518428445897549277541831105051695793103312774221350876925702911513962517463354478133613695312018482229445582139788945705533875597951541893301164923513329161631518199393004167565680158525142708463469962490197977136016379874133171901364945616205826919064895253467653569905487846922043050749812744525171988168415720935161467675208486232772967770683378180738798646768651300789778437688546387846622910726815156868547751815904514582792013774025293412603442360184642069995533020287865613130378417127433175503831141785903617440108718444097236930941351247340757488420116421385048188650619508457728996351125872241273555654337034266202804174300446181490511044155920558566158598930033884854566047837329353072447916118118663969997080859291707649799973595469085908082829391686211633710726938300339492121269319495491491161611795445629847447597752761022884596553322310867558505038489009226684378486380582753084929145113879006277391071115348123191430766437965309345942122671899610901604985953940879992668186709590903951497355781833505947934529037337611282582445684015603569002046474267334179240864140187474224048462061315843738960660620047497681518143668992643528573256057480879702302059813468785985886203973822349566492519254983250652670132447473059645721150586268619494263698503454164103756389785300702341960954303315062848610897092951247561012408000727491821742036197887713608123099363233806116923536654297496155527755072558573249896395653949774859800977482407057388523667482228191299516852659098264055690597281495858729801728400598254261381696703385902137042371467939801627757414717982508087841012811446829513520892347957563902506110244346636052081453501073931635418356563887068374136294967466991498595376686714981876227016359266194224200183140380885922581139250899254468044542146567639953955311795148350595941784728663032345208449427570932507142289326879054826329182498968244416501342187213455349209729381882170371064211352637393554491065411913183786049761694868830507677404821755429705406379440682308439901246860912430665803102338132505632004135101888892364098880373270918639305777115085681201799584535717598932993205292624915013566568554724566221787083124201059535238020732038542900921418301222978895876757998854825820320819465517565490364902321470692611663897448333482193045652194436412770551335945204297401322539974452120158524607210306872903704080163923282056412587902201587525027819722765501994730156651235041834447858116003627926387888910270008947353889994389239704560650174347702737377639809115644435563724261227504434870141817146488961151284844936990325798724556159878243763819561939283248370287998543358895617327822631545346922303222032872217831838493608562165387672035719336978968605825075662598686444350729800759839813676704054317853698913676104341451889075773069391475093603660368742747881531292983335050185778131688783215479107227142214565703653471421780109082273529099568092064276330192740962114899809943515830901633021361036794382907873160478813762083126569212024882869113321484180399741651400200504737013802040915806210736176564420069867376586516024335795117201756982916842537802354986135706862530116807852791457778362638885020818321547720003532747435863925972959650441776914913325127620394501590358399865484246680302356177563852382272294445135617481643707651717276749200951017060774904509431076865718302776280607148216935654210724598525729214604994662958269771231339900502073318840208280424233607858270547000369044264424718542829233399447474135523967046022272073276430714184641771848373544861649959565105705665537591256186479314269929044477548157410024417263852501050230422016435888576516764440812870374254040651486156195213740603376864789822659137386193378282642153203543653249259443409356652253079183488989003779119992406405226649090739075951427763128566609308447061673666565158908074579980404239734208500212633450225912754069556479261665201447310134679580221283018100731481993635828675007276993529033637658145203680312220982927922250214505566209253523869253954530250501030544227919142556567278463200573596709917416146207745010168158186141503636859696532963187870429496984508715115263881573023915032995679643373244974545862103285944358884506713816745255951686896866235668505920995625116194679685577478524959816427765182794237147967362521567295326983124808019717926963542497495935316047579352402716615188444330068466217048769122189399283982351315432600001049333315266607479616819915724281691021635852080976872980385917083798660249047301965872065467501070622808529576042605649120776466816018469248286862299260473063147654734228744354433829290597287435188839552753934566808963540785656514781372950955567298719456314895237055044539804898815460914475058397590148993394575769800340641991397191446682584814279187466301393960399536585010205159037640144121194485802110240885250749197943414088367980270336647371929863608515112743329245749662306782408630554492667986148654930907653328228398924942071206017618389681154001289647453716977792372970796631458014061529053799677047472506275855100978828167946262019736030634197163807355447561796315627878150615438961426693028310234748877739980181279952939077632203349072665063696153073768056942791154047253687102734819102547794161414405852864050413963810728193019238500908324371087877327648264549835341181063969726873509344523661286098659665884718324447106755557707241685384984221379860911947174443665254350352397792400648859688080836624143811433215496576059591470749334542289023592041278752353971660004450464021329047118717742585708022960622376633935745401820019359177119785001601648517486371980155763313320566665991369769252963394368558020099158354023925125871290818881905372630332068988227736229966263881285961486741998777989909157618421747986181957196791929913231614067689303508397477992783640594415051160676256685849329473909518481608323602581829568039055730953210725744665970051830982928867554584347348668461905463107745411215462242869893628696458695732088831801890745680475420727601555033967419763801992720185316650860907867213352961252859118618947404632421080266644318290179786228065974777652128959340787898802826383186155954767579959064686566344931272357949522583078855714865164686311783053244831321506717134334375108759760365789554285533795809871202683396866147184958623130776470965549573914647899509350946239841112323184538974302355999188289930384377183253811939264115636090548779258428064706426021935266355694817747341581079491371694460797439387826779647292826865127557613087780613005860874324984254896148803698665937222057360857983332872610901663876049918550180356671626266183760963185513343890571744196621920723062328495758041074058835238980531295967487772859000189086471735183172438230803313751220168030235360123700107302548783699842490123630567775290563363529628450361517537782346131261487930726192799923833423559677811657710492685609949438891222155771691959645945995491139428678323583035203815614865908877634078053477425509990181268391208939765700998163610580651757941760626643966843895767392868116296306728130561219404826718290930863749600079720665102220646882283791675331408293749235999656763171107644729458210806915812115465818713299016864261659678937582220923903230085629961980416559968162283779236131078277381523251897453949335596518692694450559925870047017659454725330721391999982238277241409026022777739102204371460251505853453516821334565464268002054559305412670366650655626022642752972186018429366336242892252568814280822927795308628267180650783101740834745248229337001436771919777158198986871810040740923054967036693116801606493224702706892254351599780577593188832224541091343037252909131832222262752246858499474399453535501521384464172462477930821771255905945429324084044746952762183715096314847427904044610615610945177718464052152973332104335872950050735480939832958157665934640378975517760732766187719607511944143305807012901727652800073860517162446057346895074541821227505548297657492605543001344932049683243813823614178684643638940110777686202271514532054362357389006169232238395773248648683336428290236196956822237346534507840878791008945395515160517734738780155806268944252156482757745569633453414901562280209251936995388110679409682161213050205707027735599837030302389326196690182562248358151332273762244227085575617842492637487833271098318775601598109882674430702884941910378242757023161485800120221490404451781690585147495969914125891384774292866264471456154044778943831372487287433047118878168330388535000681108418909700799428353467351621836782369209188903651283581891484290601196610509993706863093744711724342307920084267027935136130125408316278751301896695269116209123616591947533842129431102489259207331846449804097495291317353015013462475153975376499868714485432972669358501270719929941217798217573666146345446175647663994544515761514540180506191062416276098215430202756400837862828552433277041821041798517808409253833760183010104446582692033478944193337016036463064089047628564971939090017186850761650208711833564232552104431229011871461619924820050885621578968405230133745923895892327633383996145805059993406950759161555548325275502420407898650810217384383130355230958114772379684164246286968021417680349955553620759563441505094907493351067049478195136412819223387390191695007803140219496901803465562793009701658190539899218932216164407544353830876513764205901320623268705034967129126170176931598832541005911772334566988953395981598288895875751794729581998286426401559613665736557770395319616027604511728209176357411195857776541386323123557777402274598269974972855255169261202737775197181614146909761221006929283375473698317507603285874424270999270255009689783412212049845097227089423811707744703147962866331865811841059495402715321189121045155808848523900355135745469057706523654991779683808130861969747027498721557362853693989314980496494457907131598393220870001031675006567469516375965225409979136591942650768039969720246834327131060515043745401860965114878931514947950308061456220318546643441121031461229188653214331845956250876391856022742179469851861429685064525512631232386078912960169821846253573957968996172350867844635250760043126204061445697610412641475518445247903180693436267465153951545300665661169493685427908245546637091633924374592431852908437761496870746803053523144867117068459607627696094256644699415315283634629038588883698361978864854078156374528942047707073459842337511216374904938409603797465010410252560401144588906699937563062803149824685130086104732407914083130880061368331666288803952085992203831702888945892029535439307603750519842301287404320037991403165774230542783706074977360295819187590449004197886955634454886416527454284337534933062958747939567940752239532064393404708100043667004605788099967169191438520007505088864105788803739944733318404585319110328352742954587792426004370343351996950761779726432229159675755184007502645351789832000990952053350837043878843120256533387110363024329310160037591481654627810486243250928946633330993761798045066349840259518147261164951994450046921141905043768208853688153430725682915477789246074783521579698766448120160175587590333037953953804542476413233174702996464738960077116601199614477640236579941290721173326968411626442809696336537679987742216261044148147504639677723415202077664999383010592997018484647279576667005424748446081315319688441754144192442846081452933496238968566876812650998620630432948388962711206079279607554100944128000551526292374707011388527995474152733654575288193537524779756613383312491605569731420764510494369989457542555469752417398315831607906783313484287011585845751721784215974840332520347064819815315486471890839869022545296585742969297923746282737297141316854222128044211834906048554251007787597731346745468612112377942951099040023652673306276534656316332935555717545882787069188386948733204373842456526812166697734474463189931441333640598536541992841877107243555896258943805582377953672124583004533163842682838621450888010646983372534557920161669547798663033978520463862784327751648860167513992927241360855583442334664094740365708789316770988044517109361679171853787641050761047951479071240647269782320888804471180715566666797460391677357908384706451479272443383420918346111297316857487091322482116762661195986830230003186264189654733807000676280046743350806682996079985001989365588199383149517576722740763550122371449060382462499445150694518143163166730551778553462707050836327855085984539719880314971861791292914164935655172239182826001111708176325847406818715111285804521417543509328903497577543873388177681760194508829685323663537987938087913503818407270686979255283927235914858961633535373414596585170803790976758302623413766030215893220115122261924833025517245687832102934249408853444168533447676060967895518409438986713970248938697484100739309022040729263807535777001595550388298770656161575816294518665824423749687332657878513588894076086427210761642016215013591907087749503227794383413520190520851387349796210655162073482799890344807842258113882740994317259831212598147580517213905003629079531072918247243429075062916139224811360020002363870906128279184471009034667553341631711481834409291188409568285025801783401456625421922913369767270565257560283947295699960775468060961446138865521219675006891212220726262227956117684492834470698432103041428140227487159555625136988680681653304210288795194401721672937313375565971748733875806308462449797927228268005391260404337322601477512900008391971594774117607971238211752827216820976322870917011523105300722077387132895557069485299304543140719336549210378911540199049620450829543519367858523518797443456629720570276810650886705843217519604099901656298673069695443662720815754163524187735788549569600756708176217303316565295632726218460948522702555387310812387804676392240413199135984208144892973334290683938597923594270733786686321029954598457168343058886360533574877747132414934329174972128500606521722540360136198998476422592563810749517358427146723401017643979647892589434357692115563640425044556939579141630252524077833502132414634719379805126436774428747822245341758779012378690761236982792596234837317244479101400561490575175209452289183358724521741035768632711558885562292947256788708500558640089243863069232677256457909550094013656574595949693478499240065818126384793407450995233643309347241291876746957362167694357905291781342504077214840247844485305306220365105637368321203787985464725395075608294550195159844158143594913311790327706865883129304688269814932141735479762253743142278358453250930443782168071367860262894056570168560398784039258641362968331515436232763269703742439332206593907643769579541683387086240983197042833217408160146200391646207608968205110597078146125360764140396961711506583162704375490236400396152550739036031857234380953690166008097364573599537898549571766580028912879756050170854648563897047851256528223627677603863248057565320707079331908444612297963491875258907672297071238541489111251815123317513278538503869930608916175665531783474756473888349901826279852281960868484911995200660715968373153851532732001247084223591867040998085018960999510068161859843188165617128951974042573841079156645051233831603212214670657498431017909703757729795888257751734324498212510805537839914069967246315432122608923832717839925950420595411876435208294062767264903477729780165201968175628045402140864036556957262601334141059346110264857910981576012271412063718038647948426296848815113081242524750822988904755637855568977631753885081692200232592756849652658938019592341017588490888142698622372798442316919884137615407095653515725506580818395855814259061543512906830903668764561931196939650874930570475755785459307985231834346335776328443839071189336777484179067468339445623508445398543807755106317341948330913293511965358525047208649874393987859382913370407570256726126949237329442462243317377320073830201262517941668753536314810130730684598772137020515555708304197650318922485311929451205847096847617477499085736921729524883010159937738361488435745506963785447371278398405372044735611439594725870016157762228620381532750447110605021510973137151542746518269976439390546956291556992196863329037885244721070261918081079462785296634279403426161766834467528699698592272985850685367744993964983651337044020925795895949493707361517965842370957470140964091335474455993451747712106567294130648787605602056137185007414111068366398562014232293815669953081522963517389430864073860834661944386111209743435080484680047124920767413287832789599575414717286433865064506413209284891449537541800615356586352640347013087459016759457419251510162952406009841690170767317299569185705232002758954054356290495059889702368513679149296671254305147420350085641184632098816761030036354965516516282734694498026955036618680713524061649836744464696610433064632018387223386215573432306979432759051748075237481283112049136224753508335332713921488766129298797754895097972954418451758619771268454191767730355719608548286590481977158530786607223737795757549195127958978452177627255471257614514860719503703703709859763230738648917041805604940259387546555223277836110921674069728479653505796669584909111024722371599446584432958467166152256070904927322846189563140858572995194657513638001618405952831379364367618982937903237999409285811181385639917272853309341439732828291622825812700056926976834982774690395361583803780530825293665762830416209669700794304058262295281596426880708224514136531365479760828295305197790274840732551933942805916169634938372442314445752878860842227256436786302741765751616262963922700049143019910804987946641345893350079011552396091388559886416771432153555560339700400747282557943307716189209971539915136814096552100062030882663008682644046469942357965256529296279051538897660694065869696473638065686351779581921227850283616551838545703679562643316396357612875027738491207373719719395524078808586058031250191829474820033370741670918512315435423942007107329877458380258895500996733849369279854431388794850376263384916778897527951750864534154009297801692425793270976447363982727129222592452779331917599337196383950685379742665574342564866685916306741190606426990934966719189130835268485363985265741886344717873834419562688725879394347244554865779525304612064625423645605816820194890660502595183111351096965246086479050341909768104815156215568263672778623943191390298466447588877335398487711900845693390402853136573445271664728808511650736481541074060791515650935801276538301761100996058772237011971977205089921139823460011996321330526280050268872635679012846607512100313777703449075011867480443275643758978188662966700825803450173558395687813221312619414792604725805174846000433405665643935698188782830960088038457727914776016607438366074511918107947592022725536397160739568455796761853758109448533320183015196343407509739503265309825676877345181125899065694467605372371115510441412085972759115186057340768036246382465189622659604370756839705610624028821618018428076445035005109780761281219422903560048945996194333563425177310220814039134228474609144745025759388242142685910431802898090148512127079492642183774624873205604223856542491116351038763270688214076933546987755565481342279104797785224481290715465791797822408030775814635779598722993167981866121294081573840662027455267579063521861857156016684823317384611975344799380266396409446760421136737351148248545106541942361171455400396481681015562236130064881235853676740142969306950367877362708650059304495839354681005536314486267727105078258170441149022972206522201972287944848692572760398075322904606819166098998331446884315419919701376892153412012925153218060073000019021974848719157638587996606999459991761947381019715272432073108560176355082987970221021602872484394928557512079439118151319388409198962025839254469850968293271536398102458919180738846585827621759516317646012394129186774233934949406366407397662540200221287223964821743269816416250688484864211401213890044814375322165474468794261321973061167414771990588052153531401928319493151503255689344515494540813100403724537888103299663625966724134195758523237329549205727618257489044877204245353733245026563403506988944685265212570698970892862434480925661180116840534581111852792358342297715901009010525437890189932329608079008256926298829117296083051999734847399815698158130763286454927229489380683736388753337562048614670997724331982144819967992901857255534418263267978965221077154908026426176975929008740000084798176476191655871790180742814924997477006315166911975581460807752891134058063301277730883380125234312454923603542678847568142088766734758562258529690462716512690183718925679841662381210321209365621237809349034921439010566395577928192171911817148523583254004975103372125880081929580226712204010420583704973008333828193853924809506985332541590904869355804695943027570885123875375446839712071514414401004230854894431985543042168700229813084226962988736642085167444090645627864412409961092269632766084984767083340561148376047557852178020366810462008485086673753772346857399425305921953830033807645495914986226767759413394280608396241091153354307438419148178953913171281914820579994142239697593204510916330311640268323633138339628581859508707073261774723872215978366277935517727374339869126889726925941294794081139069676540963507824781506490038816771948586227447853354828205480052039352430880111315420708609135464097519482390961800533216142281388468924087650275977518561837792194670255531189129537341086726324794945724762054946760190898571364246432133557048237043433023705054342686842073894062014909201913553553975274462578895479000522208101279424378038183604158422907185368026107733025718537858562307033861565665630231198159500536820469343646583892942665694673665521161668984437667797786287614310903217904391572820217820020238845104392255609754101310231434836997101071691671820955064851174535774177222774661299691040317172265185723891525896077653738990476772127127970075039315529381523384197184398421961055935017633902563723322918011117096702044169364852973506133528410531608802475384333930021182329987466058655779608120662054846022725780629505007157576215018879956129676443858484179149881382674590715251353576205834613521749841704791256193233102974490502826325334391917407935863870949480307454916162314933319789723375490459079366846694562830702754983046699588468402210462523524419695510770838428807221895590767071523158374672845780163844341955182718967633751223335117748484760455026002668240437600704334925566604883297806336715491527963015196190432223392469094653725831040213940123845867969814336016876492455650955232139871975247863724924423943706800049885079961806216395149282168454603345746562547495454192211308931602483587722826890509065615133426966098132918573792392621562955857816012589458920698221246587692973755732298255882930385374542743346402576774676098438138150021711124922052555951269785192414541138642637491893522203249338256432780880268774567971770801188943038214248864076535972568629953099030960142849293647053195406016447745655682527736813489750285436711443846866485735784991114069751172059642491014649007804914757285503564814811019076046112834016666240229528719639167643527429832009826333314786053738248409741166343396410703307885020464691531644498206077616667681671937398249922613496555994824943561103045134716895549138584101290475536201841389607638500061726962680348445331041590830233474553432601789135176521213837411994103988997984959560564069053129900925713610154262334635176908113128691192380653913042735649385906447683888794740229138211144566904425578380959709404868250369704456683860036413984749521144191245431914236552439467084999958122694144204815852569220134791801539358419779054343558780782034755798153180678669274038477441976236781804528108438372684416321857080956542778588482693212552622554399403364255599878705131673580774586804063422284918730181876760280312708153607966037389769637843400735704623983576218841946818600062907908217246122923690200969503990945069022403290184194242312586208589735468442209470263476133679366065149454344820046255680377549068432594727842796369121726425912467686361417350876846225563106612153733987193322321712021155552260394742968335652549293820972716930152812574448668525511680475700449680503651849254243605651663424424116663316426153051706565233542756961068269503373310756879401953950464017305417526011300615974396628917626266419771492223437667043366354810486678269600847843139735936369737429125773651705633490362662662408405055737044351335905157572738418699947915213440024058557611268072095876905576139690325834899313441298584050857551232038806520459936478140630849503761183789796378654132254503543360353967519449037430627164056828905640548250747396482381395241533780173653849191233402096887919657123655360723725248361909126853848873483898416362538975876932653645291633568556242144790200274346027793635360159713473075413241868253387867084904932641963164436887892109056887073963951078430566555336684403833070177728964898187995204613728661852299167603530041643710667544483212806338500874217087731945271949921662529691412542441796247460841725550197782790663602782105741938537985275348953046426002161139717810060937795982559236715441464325763760421883407373528345826836854770110678530409079636087782373785455382286921660146585900971738826474685631783869776748580831211636842680260927811249645530724842652264560995276231377827930749792314715953733675030941253898622115125839254208888255165504992811048188205379844035973306202012405499857460206516971927897212959541555100240302146720545757043556151339637758890254194011083461485625112538169616574820027760294228479963893898478363676355441262297937752805665540969162720285854253755218552205438206746619475770702295220701321972518828055292720088122186056587694363192375247125956703373451569288567438790030145047146644614932596847505902309882094487872836112556404846856821484185223565117474833200040454343049827099661757170869072369509335050146870489369795904773527275898303910384360732034310059625057953449692375640725025196669479521144474958431001331857501289757295543900286952410405234374999522442163780046226752166684700881296196524606631211154395819270676021277014083834428172622117092935537227913656434289772529688444499756928237119677733672653015607872680289828027674713271737900433697751985991295520228842796914770993841274178770673870181781121810452758107113461955068949808554810001656506791717397247205772589415671833612588898629825911407426942351839269125614146605792056182563405848560728221828918536645702291590291827806474335339665888672043984801618323933250129426828206890844246882528274084758446896602759303055201637324092710465719982284189934053907722817771385826287636508342763981839613746167018209284714710220303847963250203440305620988760431102955824000625746892135664847698664573513809626107734069159108908485538767619980735416811803227961233470213890875507765472104259459371133413573787947230175149725784245203491617571687623298262232619791168468395890828415600473764356159823990207291684775528781980579274506314656935418043067245314530505662025004245708926439563675660632994150570368041445726571862320944352287218335421720160419071077308547760277366504172924296029157845467815803656940252442005893775623671075888478928371717705552762061515394028452187853016078630841781158135933276068941546210585254622572382913894054974270655120706078240534812609087706717199694984116251938725816382886888559859274031208839968268666127156632149052238401712164508977200502611855286497215495604186145847470035624008537131932512323898392540012347051601029470917797615989425544670276750570736925679147944372918691576497593922092892438200510540328005207470895177000166017051771758250628442716982988892423381739580445993302960552658680035016753441375054817736805347604183483628942244957222634835245684478865632487458380707986624330344369404837363498129294578894473542479071085663380589447566669002526584841183802031982516479178256996786699365255134441628389311855654845817230078279036496551476672602201155102558572851822498019141384125016159644540942849043391951633986677289586022883527715888262835499963544427529995854988367384262146873438231190618843034398064658303682948363971551553058814494985417807545213323236616367138751550620640909523045476969659887375561948232723929051347710861010547100646061264120055770285452354215544463022246270778914569915350046124702645594950649088720996098246760818942089425461802713743755661991138208443594002437440020517151189327489543068775866483709769954171290632977305074399580828196799424376900953838748167497271415601158524732558410299029086071810250904066510907441172953777959086778001992649829125913465636584327220421179468236588556385582620620200585329161285241489828554687112839568410302129294150252671658369485349166338744515921812016593109743858970120337604984512894892478406176112396021098431803074988604676853660998854267765067010315904991157387316820564223663406580063795470688121163240441811032534123289157726132345900501359559708311129843767068047111931579104252323242291594679882176858832065684482960889044104286872091984525554274469907793950144765314267304496270256659233692836201297232422662798037889156866162159991464883652595641428199803585257680975787705979469645950459556040114843505522245575200282704323657489763152037542133623385649783443305794584453980720477556671726850021042234775832654631724346857770950858486049831051916403883463847007250272386210004157103049925399083784859425143127540427808637450070694039085788685208754772621977923236525863976798404834848521912075572560458485483694885133435020274888904942722985816995386737218297715522776889338445934147368435585875170598503141866454679933969857432879356821310901447360783567789973810104946019308262168373581600311207730623697564420160598993198824620813583826531744974249614084878075064952551788453523550661181287532369776183904692341513533927426634494134560305009614745564400399240041056394926879786183422546343770975786410374926785898963600697061330822854016695412737204620635275819210286110684319770728881723678049016916886010925529292802164650920238545697732956209795538654263604186293693370486463378378549463300508814365792835957138490236353112015922958054671822123130385648423498071904789279103592857953709153314706699702651798698954680282866172892232158961998899608165594951059741986575986063880214059504300563146508907624401074268218731085573241652618556563608473199092052548416749278250956794082404408132826810573544876390049789016209087191015941839431779657958273118599570568512673349824852230975448041707762804392048869529037347778671932716412126887530963689366738006441478908989896472359444227212603677018568485285948513948450538818778620710009377429326079220983490140795466978099643205978036164422948366882480853265823737075904802775472525023709249415013897457810917940028021017960354219162699220126303292958268651358345077879434079569641120932388092994365565924846177764980180393533987190685906550993537014716671176484169670443433285012910167194462828585189113717127200958843443713380216333892640296307450926906575028485081437186288299463144180109719354837979835119354056748291238015692948832219785150516108599396210530341736827666381860682676672548133615120587474102708214918946750619838067036539226064306177103706477940343083623978196436137039062278223935686877157154892700382767763017887907089468787050690071806760325944630614350982670701740703747737654679514553362521373970370373937567775245081878965133882964624400621492352866993532283868098512784290798044464639356742508442923487461422500399424016223700756450515826025934369486222036082200750775265413199369248441095599817104999831251114436863754719348106047473663453187606012142364176617922540915447095779993978967175699614372288212589651316443459603222225124087988932138550932323238175356883976963654719833429904730093463930273533489960268984802555202300132660632283417194474181053927503022003448633010772909953521928092704918744251038627127021585124593702656860137226537222601301366778450910887269476667883776581836946812701751826482684711858128923689529981224923001549935464668418256328780839853762023607762870881836178372371558620075370562827200537238378703430169149933420852770389791434814131856293396958403109568816578050916561436973931846071180134336116697759814850855613905132311397965867027104269202250061569079599167235288416875690340749991810369286560196049522780082578038094823959523840462503446885427369313088407133538363908692725829895997001315478718925559134261143994376784240691717851343730093584693452738055985753516487293662097404984424645633249790865063471377343923497085406256412310593658133031107573431431197595658411353488666242385164612661290175048582090339196330525856222719635517016835697462257077254691176705404780278209337423810129850899193667629851143999354389974609552715565753315610527717180772420383059735616689456260116057749070311888094815119600844838836445239684170196113218576856439729489703825216422740302869988172632008572816122404289946193403515923043247925789589246338008475010451943277487074350543807126579229598424817667358663687075917676215176839383697782124483464896631509646653217747912817876299335925646738720696498577500174222783393935369744648940132509006293580627397283632442668651525129345480908885344367573655238615708355998540065790611268315974876561254733166476799095614498911318727078630665897943155187953482925449841103624141361145391973617113084377235192850313809298103621470029984842191937116371532569992870324146012892359701814292896377814600830521680197993675071484037121400761571872457076426110996488849667915817397936950137796438938965714895736129415070541137406877823013104075170114190360814453065365832044723503294378806124274617508598930306349535407414137506590400110765460173986050628296464814501475963008309888980422858067542619469713987288148515175150446592794718182337970467512852108521003060236260208489025847677988552282832216275048787962533236075824263495324898964130496287660942707746835596045222792591231985655871105169641137457576717342186896830409317182447656137923145888912338474875186333524000013164710203032057006636701140983690354488195669378688663060069335924040296622532388385321390437304704656870083186052716876133966104895160924278952858957255186764416201415311530896841686945510410782900242964915330695605683089345238718452016275656109613768431095579892619583157237398740793645008407623258366552057573451926829107841769954678258947251069442230887795435347853836987979484377573463897272515185986276007120868941452949365172488944162561746770018526439873368787340815588974562690556530736827624506636033553337869679077258727969901998297374056514831772194302353309860281322796249552309496576817835957436829710446066680416577039623970163032078322791448205614978480271697489940548401681819600411819327945373112922583021437773567672294569668766334902380307788201772634534799374193394828198312869346005650006308799085115013373552534740953223618476433984737685102497990279369001834750729838149017973649096297618718550730904027181561235162911332713935394045020832902182257997188142039111641556962819306683162624285063418302724424492099295724163542567363923848463702050738626540524264786395100221123342367821257591770072992745275301917899561069600355512794097793158355327864279609837548065645535528823892540060005277051918411765820120929638053133680274182493456237869950257894262535256853303786374800183313982293221598132771604435851128920622959929017174974203774961483781827236929180069251989002069516089585037040250890235812782857389308208038465458614326911065559314746051127385143048424492951111834597543562393660058714593590177036183880961514739018399315195669940192361546268477546367977644182616349134091471913453383978174828974745159407583896053389099916857626918463365253141991573954879948749383011762851204689675085963169374805583922720053509621561114910080593521149994900300625395724355217807962562884929208221071087049162398406138225172954722860832616493419584566185039225122428071158492075492436579629345964518514790794967389968299345839856527365610419467919186103200099895236154302812201726227339435522417858867664867071200412711196075562481070892021896745634429535292554773954864727734008764333997687624079125972169956261584621482216394982904880836877747895768291196575158797438793376407255010028888199729425396570694761562543462442837367386104144103671048003145242711125820836287044020160467153159137756605680722805133319620722116943260519355727697160028147353279110609151086461103978799951340819221202337470661160296513578259205092239509355570146818280996115974339592370374787150070003466510362094371228160504090303743522418078304671916532334379361699996248427685633459626903707541975375343483786829482018773930449706643975305429982931575122895382603251043571099832771126227224828864838375697139932904985365607496038014913239739669350746213185096826154510244166573033279629786425509417795828844886345117456016703377543447770699644258497268546575623861417992318166694156041146193372347394811592905994530810678620332617208490105780314942549124694444078537081656507549139557076934132409731095644549610873955946574583408639764930955311411321746104289823604416277308305275365130124432621697253357547928117373875052534289690061743052961222146985874553464434197547232449302283473151825488916004151676920240683753041031178680747001286300285306557888439169735840425597302920486400312242067783902469198373203667273299559517167215728288211986496654728939474674940395906443069165023769282790199770299294806670318956861301363870757117321761108180421210554664351118649451253212759605884837914893573252773412254314651280607125254302499958308213911476876392217776978737101733590333794787528017463440114960327869643816809742353872453050947305444880134795984949142567025082223655499158093005831071506904188896255390928069166277752847978806312943859693628207826743447138213237070585428349718404083868192858798392950638950414095819356178577868308008773399290945511790414076723640156135925262563101508825278552658624166280999886602228793635602858967487942011438615887186370474718598413444743739663817344671720934804424810429172109396759600509779956397477649087491881196519281553145967149401718248133991408512980968003257728759066910926140766449386614260711081209220373581642263049002105675095697032761997035823181954895557885624211502062947544528526038753614641516748040479529759677514051514947582423470296325266471713776959246151040491006837967015708569370677976060502194763852114220169881101214595394900891025969332419361316893296094115981019833030507263056864372796651274461961841389727656800610797480622168018744509067180072514665077978034292223215730723633322343619824791716994815766401936274767414511481387561865050496733916674103985723413725263747377445190515410264020628744908450887763283706250434710122753714737257953357080821814780781414853195199029899866368583378812952230470850053531111741081739560827375438444671768725731989148541015012222139381304649794902979005450640543512449739452951216112995597224504417635422522852707895475840674615784438007808242991983610243114420791088376872753999736784655068499369668421962027517909535322538080827407517220000669159601477121741590454654072025859281288998830660858642293304027679087900875169713608549228816035744677931442641243076861602740780981037091836172624054893624090793594168716088584635311140581625920015893317923172608807267923832720792170429224285587729644214168240258097332812443018605039966619581384103098728944159314184020137705263461234513042523007040312332464154404987555906313346563486305472639209948418110882085229605635947671814385773451247788104754337688105885187626079603825164839077130379456514447833001057284981697547896583427884831762141598492622790063584318351518816044588744767514112723349468597802899059101758522624974374945958006079320554484459243630095583030254547935679968901548078219458095754531721433101960004676563918424540297844928454134656581585273325948950615482040723751794278151620314193525909230640346987865748996344991627679549950192397406087604253179937504715154897126001715999388095093889821820257029758164336161976035978865856349612242050870521302326568767648171648227784281030541671513385792588172189915701181453311528320695320981792393364915482531734529617720725104400160520225101253275474761838565167677330421934743288304951398804767191832928920291123823129421934714124105981470453061654695639042052269341111499179025234774932844996328702627454748821268441329331365707581072987515772478318749993188748956076201632536280455218819232258437456750153214213294500800777051884303713015829137847825701211283293124151160154024090018396135396912320477582779070467432178246059379804943741417352074957503374635325735140346052440263582701777451305538532098665142143013133561608161903278228451087212490472543575699765886633252551689735108641212934568355400956977672555596078772904734640342279780938612701416388376884813279417087305093774328081314793081716098394006220041903731029264555234899332554796835711781754072031078686612700981298793264090991756145915215910671967002021133855976104957935098715220708830658077672216373902661428001338957319494156591089053793589484753949231189913004317468801161050934512533180513550832960778575985776534409128255957712201155179645596617552502753742395622316446665028105054753193645746163728891719259734291076382496914376603538631828587127102297867635843458960865341684649756033060141312787987588490914337309404851416284629904423161490276856946377396547038827853424156783940735917442481880365584221274138755044854434835115044257266067918592424479801349919925265395785688124113926002145966226608789565314362040557368557561648371244838280261018145881295287774212081234885018127662095084686118791979666330662438247291712402544276069557683419800341622268016140034818869353155241627067861853574586395774916355274404431153049364948185889340052024784303452010555893547344198580815515703298455460911492092075714487303242359669276018955443017744240389812361672987781003895373037349874512747361124090810352438548250646701110143450763805077775639777291447092761326105811656860086619307563651069601855417277190487862294480247080724890482423436893945081819593565468525617098616560015807862260971653120492273833462156740599430426578384050256364330318504660029349971444253374343100122700940493612729228716762919832504987897429218288816977760517467200924277367567027140756580086320300150850598116505592988999527945542502407112102575150947268385279344402153776339176275592435932541458080824458352911535930357492493012631888052265667088473317860161525358961581722954171110997026025447274217851630142260693175311291843241542509933676192069748581462869412027948102970612041220667155626427170898638307012614053083148284791108784499261726251953244197590177340174840187572883008385256491188233322302531876911973544594083155791846886116979215203930672841307629667060045065495795817192964632415830714420517016992881893974064054751683359297850470173889644266085384887808873213428034231068883233930869931954302361450778106322244591317281984816733962802288417192586968258236736998390665759596313508019103442592693866240631050379268940983736406263960673511612611091868380443166270782547280474405409373091399284083885724943318710903238614805360102382319725544188262980585588786024751620345289379193759346840858587501434899433175938081145525110807286863688309412645857681211298283003399417419085315544949474617733922214455706286740641512658597674741867605833188108396212700466352976730205299349547399899944148668237742767245184297463975648197764449651118445641388257674359778539624258529888141043093466140273512337220893532715601112359921978939092775221182155887286306500786992866450520872761181506250299963439722987963639538400316257633992282869512466919357148220677721536397001990415250899528489632535340069389998778622798455783197559950185430347905158433239325829557065662455318736687174260089785554609808226974685253327475546228403807126449678856822958684642967106928778273731130493417321526699110008392558947249298246259522565765674690856340906237050023778300475816091772739866431732074819322217266355130076868137987415379398707763898704496915769561742545268112265325664428083037743504857441754473481113430232432992098155327047485386276801625131298317938693003075993997541464513748348600828804124604568442193188738491196181850365787402437855807998693453638231534897521463494084562407387459231591296518171655590833472933623420735506268670665514197230543599016551764073712992225841038825141408729514259615521060808563070350001565857601295928564807181617841024529390826721176391773482779147274302891027057965510713818652827371659552389591418895092409816451310023647891700414508054607589182379968342651094024449183594243961661869551541615936757714509349555929254020551371633625219681584701154091384437242678249950787468489075847165594911118819363478229438039854206432803242885447061496845723126737581767267872470715037774106188159920945262476001724493591483115032245051281870046287401526442380013900685835061410795212046996962219295913124123040112708493447962993949139001461976070754411794980397991806101159925580521704966760037432136718741300816944325310470679296093526102928612464570573521425148035357851231791678979919128278602431494527316387129817770823647445560335953068758671420429799472405890041721461265000267249201012991752052237276310761685028641575908748597180197064995878936940376883456678967784422629532422510490901059801747858056247400236057217390291088491835622994456582565994808312979970971872997107230055421637668294571270242676494333492372750632259775072204943851368101614928341390285505606800805033297862251514083204521970917420617232387069676058765199329389499826118997758166931107742210166696932902064952450114313982184101970108649098741046901676639695772485408952173511400790753400495145244159626757325395980530857185984646668639940825895904920519104984804229342494061502530150393238671113275056961802434486478126465222771086497595828707555879267440498913671401832911506519423170740198205992465111401828738379052639872352219043889689634782925199927860994125869487534008460133469299634058853526354962174114221635963609820720711071264740310642807311223723986925730397473589603935701683102909165715912925441454812768844411137069983019466512191240254275528617825397434846028190788446551362006908871676177760804031880620148778175240877631811615283871845151870433830786948601374019618111800547385896878577403744684080170660553512636296180012330457558874490353752203108704244892394882259312259448711188113459010400530839329269032993452731239618319325078043512745079739556052010315562836767168166709899456885752492049417886298771164530292989179928397941727907996755166109016603777632698650758395223207802276235303389138398553208672954367880179898270383648598780533322143072479445071405477708815011508495907581985266897923896001575891004298457695880182148395758877076313749327593865532490508788630410491672422016624504143715488802186043706337161338986712422912844127615534100163569183942680984069632145164669380410460581381891367622591957225277277364471601165015324356314894551165509983172956278653800897402962101000367156026174028326220428788771595720088948248459349918494594858853986551467900796523612066575469346594154804334958621223794327908352339390447494075311533963397142290848278898532971697041549788578117335381058813521494520101723463779725007489856018274831467468191330653607279204005642794009483048250983649603996358977833329773187318321319274750788880616056401583772062769147930748830778150671642741175554790837436926497920601786134167795934529623593354523228491893084365557904761687821375550408087858127369510296246970686557247244870846309114386363924151328327089270021195423530163795427129663848693677740650939952360063303332372954480744185928404030028742838416228140453713153720577280707403622749803406191306750019693838094662427296427108909859368938955978768153084623467720545914709907038041735018817346553191923928742920775695759547802859859260399465512010243373112826542257130907813891341788842474349031904281284594838455878702218735179097473396861660968654328908889031978605706683042659994801519740361986830841533825760270811898562204763403142643286565326108146841177547528277730226637910207757151729612013201804741233225142366006066300665661139837952156438355615172506812859215954264313064855937015539402408442013639258689658979255328427604134927046902196104635417960156229727396611832294611294506832244797623795758127447960203464789337552705392381167477777410258433832918011612828883936748995948911295786923986925045391359300558887591425908339367441585324916295432130855005692133101641517858129360514337696448395214499121880919543753289240075113352484086538502156336233278315525515572306358351102433308760188291231856475859266397969186038674933528185824685458026741734053786164637423924786158950476960681939939889654741571135062992540262619361651027941985865693899151692642896255976403848833661423041533867695067850329594837892085615492201883419959864634610450850762730728764851637096526709315829900671229720574764785541871501532427523555524495811051204686720822101295546716950644798159937417077348796657113309077155499850157085295957348043830126732409816711162803750374994543848255100342012171555295909918230439142221935535097706645679577672365129135565049348572912424514981308157840682741022039862397021952187133533810628478788958313365780123541336618275614920930457879527747817570750724319442820764085593623774627095228257920278071157775486010033208416525823024342463117630646765516049074934728549095736560261781318172250344084580585320237542148182092708641524353184797655014278534425697721922184089365233105817972931848243843680941890604036121285091518729267220522591012982896967728469608543867913147370614713722452475773258556397684603462145175399784450166614143234561880230401403302946804286121253355376835105874066181250155556589453697689560875694664074909473540229193506775137812731030758611307158111077114168108442596408609315218586272918387302070482759415950830819167392730074560090953917464327756294856015572448535604182470582966655054963943410472094805550788599050861837674076432692426356882269788116133746377710697982243124889090429459467168885195253296288314978454811773566388446069484741249322672478598232027441104093094146625826427570054920024438582935828681505826735908754867105060881204188319320785004573564267350058192627863412635643798870338262082024494995656526269800457536875923179043746570958838395132403043863254391694384309563406993885778519290290260676101991967601901900611782128076501187157089482860064715993790175577159532589362543747177593151099835370655490360365569628336080831816382900808661563146790313591288545950006913681703191175778691311821390568264577812039116799220094712080329062388072241055266992120819343920300243179871107667035078170538922482221545590722109561888908899736610200811487441099107958488024630590604070355301105180543195000035892639555161173979330014702080014907908259975089623556268103994103964860011293718632312401537365290681453403544250134491888090873738185266363622088199773259614967369439531248904362844514860766199222974516590421264376839673762564141824607688893756867592914688111297300967693714342240916728729135582046873140873482619210572347012639100976840254707878376874830296802245406858277083088859715267314667501963046343060001386142762392105305419550345042027919303779777693758671568327639201419443820418556086686568982512096667838744585158260655284158129032003612529893886116944184164552508807939430069054822045266834586481394843392387057690283842969122885843977345471915350115615198853802044105972063109125694177694495700578563925121889668281517206962037949251616926126457261389247049540253043449545369422954815909229511217229155462947479886703904492042086333194240573391936813994048277336193362704875324548264107920227365287369276162878625498965440706690267474615188245793705570099795559278763524562987476579830436399254907947425370962403642984795122367846808264668009622274916887710343042649402097551706511623463318491806968796335036493215960570363628108863238459671442234723450307724325932150343158519581487812599276464206034924999166523795013834234575296207929255963912106960770200712367323315915252996423854294328467124400100360204570302527124520472060510517959886399889819009601296257337109807445034705535738160983627586398771233656800988113861667164791429448159789638236165157780875530557399968504219124827109219672646794170361763213678203523374329245787147199051865223882909577832576984131262013000746647799379394766819925606531478948307704253418047635175009689697443856485217103917391052672790609088667245584383858038773118643475983640925600033374392789282636592897583915684409775598935732362592257085505432718737304504488708576401671580177114640220927614692086050972024583431232243540484054580270194252486125899303250087461805332147741953457843758301485930992149448101067417356723368527997113614665966106502008023026993591719496660490690304305817935325712543733120441950149971419055506601228365970449332192969833602938769288944413105153499373803877388979770564646357875865929552760220945158901281638806768770923011365481912632717202519873724115041025955092605930448347874373727438767471767439147978518492172214920629428359532302956488590220010666499664245608298820635091133075568729671376804493918058787240330930274775556534441494872393921867111030575487147274955996524416346633161896976508833199583037125704075977096015167260068835026808577591601572183333446883801844266035882471120732064832509255117265036451338546476536163157348369295171704544613853648521729406505868838688031860472210472753836267709232953103467665701358823250775373481013537128743730662663083204464582752463153797454167084859733652331126968026240540319778868641519648862909184109057617924748029228236039913465154205062511295738870555254241410666531115421979660444138629833391675583297040515114857285856452833554620884791563861213465182914672019754008059668045654786406406055780893725478402288832047101542978083174711436264827053317641703156681991943107663456529342203694429160444137064631590522544146314961564217093531477921492889746286080131316945553230434962648908001297960823753136299927557904605832904375651049035704879452832545472463278457936063014387259271880692014249745711429324475654153228384397334624075022357697533144827423726385071598779538040924763360483708082267009644944169067030241838952605303143329814417005818629574017548974547962658875289107485621966074161718123823958705398840834911662814118827932524475798007157243023026561315134834236448029908780972919522505442956491320626119742404955250803264680327374078694709332172200574805186856011661553670978664800079480153529540117198605427410107774299530679805876277781164405010085653862864311493616468654512568249839865864262712377856768373697877273420142272799372214207556291005827268084622523976608859566848699727182423457068361649771818973139468803996213138460730533427015657733549697254483369138182341009911652153206803974830970098400824095300106762925571363541245191508096081244967287268917848018898362267646404696149515044338237810456418802899787926379848801635218687479808418786372019134298344839914838339068454132345818822771646345318634133036129486251725649940866226975100075213034305318178042827812985460905176931680261054323059519997128559540522967964470062410462815028971260726862022361600444279595684077130127281768355350718853777839142615677466589016621653800537668071817323781487858410439213743501276010985075326738755695708682938515660106702486692628999652744533476008088997614504860248771291512807676074814523932123203031812992212534535320441010596030877840742292624938865817302811485713083411389166571300086678471464082061533751677987615383095919817585878303460734657766645502430812242811007551912502776587212834494628650497932277830279069240149690827748820175596536920009236751237619589688674157722670406350158121467454399123246510836174306442965421042282356366458079045919685844867424982258091332298010942731190832472570593519592620688785293239469490483292845170020605655016299241853097247651328731294608556238159738091832783396956019168863185664687107103909487511753838809706845497031885004202475803834393394213105724383805951235139113423507354570224546402892236089274067340530327723636723793923343046817950722950139050192933724466552864893490383140688596022457228163819045488654177900520797743954778384839832551562461597998126605950314096372700868166727075004034802489846136382145034730154506574459789439428371137588826328999982853904018654459872351448816826931508208129495710588502293655496602180133804227286768782748495782232571152940140860200651177362329237717810047750163614875674305568175514272231912681881889057469758864893548500107996503822006896407801212464279432067396143130686458637391092458974122725674369169534850662887200726821623680920697976657100590489187921538209778100176696415918711899543698062676331088064448287276812755138503550393127902097239907987873468345596081427297143043840684624410163497223663816182850063919761026740909159705225953128561920082284488868407476533260943834687798618694771760466783972857841092387312431200271432219026165601453918549740084344952169981168848870191993917145986934923535139855613603453826216311676726133458247025708268188240884538713103687706358150354065702848742517680741697547371736630219385903168089227912776653297614235768277314813979888199033738848995839116992533759969814540473578415765808246748877423430425056093135207393309984719491381141725936987455394858119233828135071303424899252256140881723293849811920907547199556559195757395492749043177123607479572465395427261724777254631862231673249479117069654709698742900913569507540564124201263024392557983975794101898405728694585935745985873240754986294437065235392144675249904995692238941560554703496729843011732669532799424355612033700611182276381900044511082731368415264276423591224738366955004557459319826061750463550855817224758903073538385548013552438859630976673072624516017893166368941859051307060276762680930859598643337308987158055719510067887135681050497470612519109725644489649370010010231379556268538192662127562481147898874882458635708097001139144592725418333525409848747240341645865230524546077652160770443814278095694039052488398650570513738133637681258858925690582705977395593665661678677529437208985835383890034996518932446507945638783629446778710991854324517214990119659498096792485203763476465793580744689151337319052881113746024209688855602723216353889803713353794866511271588330261840020223373841213225810255411768495889559001355301180712204548627756104292904004625122496365528471550652770873716204235343339042015762547807308291073792675109963748029236977754687240073005498816391387811193213226674305648123568020921026485411144271184316737668352785047645191650675244579582437834495713015519670592465713157988597164376217633896824592123445920524950561912875220157678167937557212093634597093211717314022644865217658178026247049151404033184673861070040266133469095007831562059073645579414100321013857489923935147612996868959681930159799856133932016415599788729645329437307951474817820388793096310552543771401937879093933173063885035068752669804740657560650379066570048890689548194717108039950625640664611844454858313233050939538708390585178922964180570431153275101889644990203808517171027474422844889131442758284993252614961306201230902992677356630658262836141344667671734993455419811920142687568960060723736132511631440648247690797430725037787488811614116463915700037302406250608020226036524711110466767908674274803411788873122145762415910199791521729984849955964404160587813749456795869660717270572086701097235198768580887456465190444291599728290369011460988817196903925187240904909927928016678086793287519804261579167592210324230509396523937442318210906653768216769997766643113360276169231550636563080949153702385232578090654507392064875298606939242020433228637309952474330573648504839068081023648035899418449151005952668441392225488440268850768216488074051406275274833279630947866450051663109771666192262219902915199856972813639297181610810832881541585870120741770785228562798436058022229104686804637673175956393186129416134177213605347832152281798659040137986602110389417683800160542193733318490980603839714833210775133559195200760223202670232071674626795304147391932727636417453235542014832013619491680049543348653788787809693654060248863678865838488005277385744785605105727215066453406409412010511074688997030822087865437605355908654247752688732833460450910439626485233231789995594560350410980697009471314083292272255694628882874558147089107097764668789877664862848158207859316779611082851849172028961785446939544711887769016012935486285140665049516955951771434314474464128524630182237699724501462456871232012228101029769760620039185208884204925838486970247375361780445176713794011150019887478769434582787192640391052384896704509655893216663111736926634777088129795913562983346256143928981454865688251752969980944122334687144038569098282772897262172904636563229976147318377410017029749735468150505352380947562594160409944039452881271249655006791745560028530137477072851773409851357017054560758951523215115173634245183080955546903150706049439841964382043825569276377404228983343687335728347305692662804217695856953537187855455679309168098525677521216772962615912756936799596847097999575083170596034221505367053370279046814737505477096097127823236170795857784705291118407021474430265143869243108602814760692185223889795143460716923383543774544978282432868941191101728856259533876354507387586669345390758573925937131540081189257383145942519492103153245644973962118042384405385694773254578986779801507790661073077847093937138292777124313202880489808091888965408612240851191547037433078185686084631766791389009518657400327930856099563564213253753033398601216889871392019722853656760827160773947165522271222883701745298437991147608740760566306837238102613407500039310348508012775841616232102925264978615342506756090623073734380809083076780973690652680603835123252581064003000605920632251270423694410785105635752293188901887721767375221221534988104171839516419584571241657828040561890419648113429487201818518915908901947472142240301837560849167156927793123042858531561316493843173320546161414360306785284023069397162889200302203768932921065175711728808126772527630102457497565337370322626350176706923751408359225241802915977625182447918960082916704083772415619640510035893763960802892712722552040172181252799079414012346676876738322292985094275664048210477215363167220340158337185555836570606058043802007041688086183505763028395949141045055655354622406569222110951118273370638684389952176107698376076288703212672287488193897944632826357076167986005964659371710827091277105207424797999554075149883087260063897777126665572250764999819271262118328658182240271430337415368472666873288458794715951025834370458402480956427674425142525076163926594040163545072288003701757473447058754183832417847479960538336758979860705522794743061968698540973277359305671620331775107652668149264916745423397976380354127112559877213104119365097232966525244925087320439470354481759283401711948784866913264822288389165481230776531585343309120553689611005043900628895947355140128481884078728718320829138581335267071094629709588003113418135005913987517303842377354184505603740152174279134261266029803672971196526575895655452748469933229515726822529535088671586790628279718393418789788898604991260787171824818883028643075533554995710840380448740027586961642568498377937903923396932208947009561959496463938634724273765004361724715612422497337812701357997435616520175887440095158468294121210698057094420746555803313926034360041497801962416896511572190934830842635163943601968666535308043716352241428353608466342110554813005000235935612339172222121581193146918471829584803804195791713190210929405313532605838840226874762331853332274267336780940968044921932451106826121794215932102991218908124629052095567592028923673432050424909156177012969671466677006271053566683506414491030951742583441145513608043780127901075386457423082667343918682830674225424074614685321000104163016769661148851823052597550651097681268183688381015058261030795141617538910381272346463929814217550690449302101554851915875328465966996851137021165483638088923662248050028982078543953338039714057769143662442847436854641366676331506663564343560295842175692535051241530722787526065827756754386059180416967455089663157042644400909746183824197619972163005971086410602653261082876954398743170533536358441277690054731817854101371289914014714664898030681900097061436578465204363328840130215394913304697496206228516837145320070515305241876991441087891472175990372816200337548412997654972542905318727751062629309675608842430407224774915390931445759467144438417247984917389407299069182285039994896003544915108478161173980259614318094847991732148870328714593225660214926502765638272609389974555360826819510515275035479761413197045104374890972101839672431740493141443855600090124825768146245152781422233258223363550600380257758348567061812637831242191365174583151371325340202600942310963111293430860809074295655651881264229123047639508275770352483386154606187253267859081478851238366710559597976147502146805478473036689830607110580696017336813009534003542770974752947923753384393162963574110144850353525490888851734855764130547261772416538148203565458085652905064763288474595861645653422421678356560903611508312847645082567919955332994511583986361143189188288051717953025108988751791587461350580549716060134900290109266397977610103943519003658273955817195045434375466120390723691785803203428732559437250622790453243761397351523654820720107400816724030962979914171644893573938987323950158022367483665528243886554875198044593517381861064231917746688537845643918306731048952834936037934851228221462501846812720288539151701106294759104519183525188281613636989991330770044361221375635064437943000712521678450075941690532903165388943410056146261479712281574228399863801571345457476615477422911527388245034601450496707696367290590322505741669160945411824812208182206215181510736720006332111650781559162966799888620656451331375945317453772552600472993028374928260645752534496750583703738943701800142624173738642898199614885580922064316727120187109223353582193853669887528965871345629899412215361848197870369774242038135523498340736793798210063801600505094715320279403788759830937609914444889326166578616414339959942487537778266432165168877535748290317001332989906853203125776100388017279529612284236854893799776415583794044557920060755476188035681169368356416604749329432134812964015807016893050272620187163454892684277594127624758310400438929402369142308845666684158761717536568727585931416002173113182588395471099155721592408070485265558435880874410378134537106861678719016854857282971516502747404811122226500769578204871396409919648158789629759575993694334674233155543290309519404731248395432968063706254514701783699646241767194476910736550500262683061518398850038915701291995756335666002063258208065232928351978311624093652264288707013118753106950263625066290219567571338735955058951259357942514660707211082752218998071258526953250451718861192793185911191198938037319115945765470489501743959817618721761360998616396784088136509220385327959915416686715913790162402746383044686296686886331072627617106483453359270417227998197455317143624462605483196241684753526008488810501755837469691129652727668399506995916901048445036323698459586864075131982980497417146877167442582360088871381196508654990560597450450079491878722418366605753392192666713023344780560621262049864209711816356268737624782170242178223112366378629328895051180038108552131581763704624761231421729875172980790202254685173703333039792940706543595143931004656261308395926843823938700510860096875013770297728371319295941999878184153678119534231513808945231621632525697369399484090152623831958730097650434278720859440195058968066528437296229358461534529297701804338762103126605585354444711743788663669038635524699500141838850477893653617178869541108079378935749335521677231386835679815641253776159886726984340807946486049686314290427711821222651899556762145059659688425358063562860592891613470208630323075060667993206963763883410734367092920413027916052773053597937822041556084848203458635620083033139554066907899122576174357269675255373191248243204829557151528002682732463004778798901832143062166140788747017014051159244294699821432160029743668490134234319172457679731167086990730984693601947493281733626051946460107589170616637733590367861631373852726000031735085232331062122531260504275643926410413290447354297487182713000707464396558849483784617844670355452689218735760595734588099959420022641063832286548135332696604897491932679096381120590653760311319501836030333956791085592137667366358904794070879955382512069689668860029674212477267822064916501056054486644849233642514796926457404215331499970509319321175234003537894358270623900987973008832029435387497409246457018502322283531525531528071918719237810945180465951425814696846995474668960283045408930126792927693637719430521016539826944695642809677733207626501210323223490069827635949611256939591704988504578690301114342858403580388552036777866588059905485855515410159643289843086822402827459482675862598621386276772822871366770763361180558554649276196596039157137950877939946560449348544191290702488463404415743327122875239069978264522484540149396444764260525752932404872075246690822171156872420180591595190155718684092503546867918159927051569428724355975951544233768557705661795188384140830861337191495518621005168394759307598826574071925286576202817191620034509330303865583086973205992964457632905627396739172475604461476727207249415538500977559192760206265776296189773898728982957557829047706690680457624126771225009684377505302346047235561705883281107115921222169697802176927631081530875017833545614545878947348725712824862131931469447507512433613953524497559840358415977203313385624069828105466695452858039785302119114385706527149785572276051976214849699566199133159127759951785977378506279656012700103661826663672932760771897218809134195919431833348959433183564826335409018594489818139126959735731391734856415390433155403254946273378752289786498276763855415819908731569039334573438728450843633259218071037607569668904321922784229180952650188409155877881150747302419582959212907113041941788904205595086414989124820518400540365762494601653847893210884587035425634026691028211113203020114374155765116168227104193502737008124831896111614531340607687131454880973536122059191503246251941447335566110807548964099151647639571659668756842264651827406801059397168364928936612503852490808314021399937144081517326921253881087694472558796767585030344326111098170603304229793755093652176945613254156881630395131218390563441725033776610911281790385844328243917105440952044275344853548302118840024135379901213824816865228058067119247558502638803634647265851305713124222263886447224748194667867007760510410018467712415843887998505538844188892975665792507080997530043813140989981263549014755766629113665712601485870254769779284969814988290030487250811025501759836438899837723473327313814059404246407676634329216777699053592910350964682976594223367459342683822117530547275614196857565216560718469624040655425451455815972174601791010887952319309243307126594951200477036167491034135747947095392842707971253899007937742676963230557840774206168253696542035032743236898552026364268953261213921314602409025754427258151263252302766157204450805550532779266356939745278515269488229609163734176906085109960144129458338977541242054785878681803968455409627764576762792801646066557803528192378813856083434949226805298657747029570336531555639444146803888626724444635883156811127653308518753503542733146469423572004419033749542300507100255031043475742498827139681375635703594305500317971225610798312514827390882494841963669026394835564295015712696709195957470106813967656675409893176374321111952339651770084069546529362373697218870071479753237803907690585017940755097735627467687537516643192050355763665887671726367000709170211343793183217594054863642341909802552360518742235181712527576937883143451681697254272062804459697222564381787804702457140279622512264976048899193835926434602916945165002190202291970703164595800413202444634020022987330495968265275159371902619221321178843791747721774595473940646299137414521349443470583402961345564739119819654544466420633156772805420653026773492222973239490299209213003907530133387152377478806848107557971246511028046413955961839973312746937202654399077242071458757460104730257214981076992905882068346915376953027620751277879142496182020178943568842037348417077156065221407419710791457406930644796891854192944333826506093250201573780841242976069659957036379787359974927359630845740259216891173717109975270464256360983031455062198367661839125567866269421759521900337662440090357190878393379829411764319493962176494181843120325545691764616931079223775160965419570491478153319734516986907168622545682291684517763478584649424892210662362602130134760123027556962951845762396588918312181354643863607184951816844882479599315139601559646232477007267156049375525474133854600531423759057542121325881032593030412572675456878422044401112931634461467836452236357638413118354543658493897749769280252514833288260168051172839573420156076183806520432301752527638390505849944978777222460387622020231088256800307118488881625169464066052256924016758438686275993421293461488549050119387471307029372084126724918624984855204294104548063974748080265242707854624860420162881273335166043603839401837031291421275590303769262940706259464547494490346457412130757609279520820379187757541922644494582341004722746115478728675028758604594291661826962398882696096322135272087619052445424103704819471294991546644930740323919427372870030114275321749187641488704236965548186168723177874675413063833061967161797313076934549615020395823077486192722579815957081945345400587692778422504923884872792702717457698105704212874912332148824128132882581366820632580283854665601759966506657953313189958291272396585440732347400224234467829425677088204025144098602257334795443039571059651139331209447069397984515299230763658925598184641491737386894423453964413128968732471841649605122051713174290425321610394471481672617622460638410531620095787993723601511992646390625162496425480864776729465986568700095851943413120913267490382036359799531183975077911387538141554945782322128514421596771590451554959621945008062892071430411634833030410878857181625472875709044315185038915461569968107968480548421157446224240289434157689800689738211943652209586961123146728196060041523457988765837359580474935639871373414682554375858147838218103848641678696131188553887676875784155043723815151388324865318829065344931651337067412765367245608819111246408743131725673484932535988634939651939531530108124843568522098673531628297273992732014920929896086949325941336281067071388243269250176896787083072852399870578420868441184176611407555060343686606049001787868425725221479493263238805677464630629746653943620314868398780387041223854762977691287771515287755485197728184185630574816725054308857377496891531043473903490048911261974293431461299682066849042829972383788979500528232200640127014094929653481630871809857605091910784954132063237854526606415836549456703521141042577185409754959234738231735555076887705354061232661406116826087532979447230396174040879692827505570061489609560711985937805989255896979341641105162842746287057088284292334104663080039250784606493640139705232864956585307404613311390050927282766589023950283774739654441661897349037283463165143759955011972624156692429203144640247681149700857600364635473117765401233233626404247638483507530378598375105668480209597497127805350898525019539795093290107338839240898789916658117945388266910385841039969431735586409883504840771195103843443902499627922470849045936209290216157173607550767315458438006154550377236375666741192540863362758733531766674013526365735322587022697968671173353843466798972613616735482960277059538490433317396917085563419408266478639577061130973425868484084258215778254883441998262294570539266554840727453047793112652465745044719810199171005037137948919049534762424611122011121743212900982463158952692870174044101976393829679749265831885749146570860586634493252392004467279114302080934587246783480797261904394589681993389813588322821065525763947648107565207719593295501703030459817194061875702663291207846128623183304685104011818301118386810925577080450024881229882653530566295755107109555670689991511733000886007150427421982677322138787613310249585335076998593570844754874603420690595132747077009914232256885074149234552316960362785152817293162045115802712362369220170603126379057614016320757093194053733342569243507662217757898759734014988222414402798717881000032670971280848970568502200938346708943724065469622778994309112864306642074026206112670493565058113949409726633145935302217145636168181100226689102665637730462872734476169498099239134085281087445487780554650271867437572198184265450586108353013623913233895965777326872828601777317640419426564178454332547992455197415139062409900083057961860670728158918648761898421076453852053717435157465317460891344737465141851649619645373847102208020204514879333660253617773591600645884569757726805801348616549203335665537469508888010413687871918900777052411503978430053844737675090069521801168479923329585979260676126479697602806165475299406774263564457477730048987897845924648032273236073155032725896451798158984681939293437543287335470076636692907236581950690700974530328545182755841896764970704471208625684627922187575681729908907921125975259229603897510655073526875601165823287676488817412438179131869790579524109994189889411437804524266341994604767488253276766602510048215782735455672237807530925149329220187224865115452388031394268825025370833549049684560608936046380113145501419044987772983287179835412982285704381960494389054383801031450573519693414378487198113453182917213644817558275095399502727794178764630784846234697731354480182802239302171386900561933805978826182059487301284875061832094105829988798096746364027135998382952314594858291026275414325418582145023913162036199886423839511987943303494302500836952090414183398142842379576646644378663285632783097056297296347089810498414027564754245100437473564307270298142763705421257212674475388679842359692891793719213525572518831615609843748688958083405341407778893751782556341358167557088033423894543036063207103955339934380968696812667267048503780705446058378978645399161280302194383400032583193942925299274414829464014397378013552032861551297410991412981154109511112609919856340182756811565730426621078173953404572522139356767622232294035781670727414890845695659645637713055480711296422425246242494437245217193972492623993549216649295373638834054126910272264528670035377184181259075687499414536699059282330103906991677964312904707133842755823581210429289274073228313867263580279894511560479773616929997041818652303961390046713542433501582729874160459489872221933220027271265568199689319582613542927811650321426007297130454710116713531559305960515728743331011514884987001665197813131204419815681845976329048993952441407645157980775956947244218042221414881145277311151449448229025172878503885248947936701105582985898790512347105480336544558526303346000787246993949824656769272755768136839500788683549998737091324265010895989817047086748838289038925711233694361648988348707576019555420069851288629311074698031683814261322211421589950707192305730734823260297481591667275628365675531800290189961217095790462866234010623144326394328538718467032288967210070891130453474106820472489835882341142039473512143531826148391631896157562417718059067484527089592655173018892010484325317281516722101185050292674739833637576161730911615575212070564724083340687391166073063970753380376319279491184362019409164793479225918479841215186489835693374610748014943275808768783841226591736022683694160728161953669161090427114534827294697079246738593334150480840811657293036182779354741372233188519296393411458232350119950276294532867494426342431962961624210996044820458100954264670494583730081224908536859646440333283856406434806256122098610273186415437841919066856927469757351069182586596182237174535151835940350919593778095910035568493768079835756965702283328733326905698997361739593412733392792976583187266410525174946618396664608755733780591195077157886707866292546184202087810177145446991169588048799004670397945304650108160310703016337439128973955836692048168521013812256830566289942933618912316290964621532408986288331181319678267412667567247312005515252272131058185511021924032075184009278996700518336114209001170726008060208428742343664512026701965711680869814129047737691521500524390895300886308904957521655172912057534146251591633176738066023893465568993893733032182401884233815321691445940507267987323219027569173202244571042090281660524784493403092989286039239134464348472482658178488033733826912608634557746467291787429510547945768928277861268003848868751069037277761882740068055644491849552583442080489549908573917446261588893363462375994881628392936584463719646218634156285336901506520338693812351769086975335026461521981648243071620630090994172616366835172159634458975981394620804793512093454021791195190664108835326649123239313533582511359006107044154010267320945588669089991079375747297164729699449366281751871690754610175121936109849434488075220464540348427960047860797724251530015852416600321066075539219865473319256622497731583058430966910657888536867753607572011022815420175943104532634804868806134628909735859512778519298395962952525916448970219266735330256366510577446269192132662976871501643007079894567667056057227323751700250962929530742315529587186338823094065902547740354581706219919172068616887863182111153708596790800331448944276053184007687826002848075968728363990422188309073325087940200807634746295605399620347924409745625134454263840158640089969639240849357938865309463055730395466529872945427814308836370075791056801257473446567449525685964295504563195913092618907501711502258814356153542833903210210343065306326459152870272901832094650028796874365746026467294793281985387812240832068052049622256651287024192826695783637437467318049328475519719012223050408696773839416924299963376920801383478981289445158193988906239418415355721741977126385247893015736614300580451516448205708964748836811723599118140911139391923212985840467673999204534220049678753809323158847399776255205253724325440386904245150032979810710640629529722843889216933875598920747233827773579075817037954813361566498810027093501048063259522569646098697444602820050815362506590685422276303921974151081758141848136317005690861337057686585164879994878394583224341328756054446089610465932012963316120878148808579723550725187643676226814835083981351652094007322271426581999579220613373852396151647173781955060063777925084341082692532202811146969547843940608355681991276566464184041232698529018268358705363419468835873757801976770322127813003093518114043939841685858039479331041255705116452484168002716385957418487902216430757836650849499197716917987469811069860312325640126191625340208269556130258993790321310400470312626359766293955608738480681390478707862677247030960766868708184270069682791947577874571324151319682454041878114170565509068449450282563855483440737466917057143266985084668651131494793941084269158784761019618090914555903527083760030750854138600110568281188500524315881466174911545226202250063684489448129253451801341178850095369732325070234359051162016246759666346459183624670620072146062422580805576292631425970108986542674377191198932931322996436179762422637352736006745446639500820529424708657479278062660450918861333298938785251711320964356793483353133049021772375665630875918094909553205307715458133085860069271640634828084403267864233902275958807625432093030327146231271544796468447924429120271032682159391177639237962565322673406257087154279408019903839987094060175111624519987538468388990022340797952247144121929104020497716234833964300960112703682509404999902886125280069976004145893257851999507583604260157437737157644381368260114517543432112889331779816501367740439979261047812643258862529892790877535410629219570886886840403656919768676143408064647633713437868214492241397573969599662305066463368508037924326702462620274979415521704177369290128809036153132935665683646484941091146657768246286839908333115840950471745787266748867239072124693045972402002122258851372769285176370836974217802361325634989011519392840678910164641572606270951664109883763678299473014734152572764101649882049459761267306178464407897133647627844841121058955781566658198287097503287698463515918420317293942993740628866497331455481408936582281455792279030298540402661987434261473583353089051850733281704259120429674237285692385930268688527036496846525828664031504814466230908572693411023040323114536685742149231088412014669243594952786931017406929715167698740682118807811941676418775834697207420918729515865052389201884085431581786687912511809699721151563508024598065952983995147316259140564620535972173989851771428013874681347829387976985694108775147293754620460682215980659745354306978302066198552486540112843701596291430774781732445590648348960092526424102608653764914178734671655796607904088177301076570077254129162968254089035543802928708663209601986905366273581270369134579522702441993857909000662512864307207123183283819790959584873493472426249640063218605992514727310763129800284055157642226120475775256432854236370048923786262382656776141219966842188489536015437434048760519391566172651646968182492611624346805433398106587460576616189434005798757562426022803631583141016281491905337487904474639114009972773995707180500046377944088536677455456918827209157137396397738471955525697633943208487010104480812093911219024204492352620184286177261105383933477612847376054422579178481881778271570332124915383943224175761442309854927354119040372959289078088966058542576715356475281335406092314736986641943712888820826613241060976274952894960048961527413733205279552029001795725643077294402986950626777528005912365627314536336599242119068184158432359159160399478039356842791652859962645390306178658070594360695409958904789216993045265058449305318876279537713267732223926515282620760134423108448220886006619471027293829316840679713420248186433512892355394537024057209409414879076745213787420328906992766223966777703243724667495739971287681101149368664742384320305167028560308931094522354396197521542807101708163918331550287098469747927627339312124254836205835558168599442700839640984233022204138034597853314810495477427338661812089580514694436144861532904484718111665928921516448027533972035579554079757958155028455469967849015756311476495547218002939317866263894872050782672626450695061878895603406832018400852713657261485220379017141078443203586390442643772753893910887520659304253535147949840262992938208365265369375927189661789987957278165950090646514293911873638229614090870404357489645863897076713764482270142996163147101762798228929237459378301070913494213953519453130450913631515298957130595197991572851975193675798930268449594653297048148017732522640273149378440305716629900662901196639340258778808631849139780805674212225001379923429063620487961849996707477006502542188269325040697333541351775695514862463915367619592035508348065225957803133095410780677054482723095281372432132243620776503938448631879799535675385553873375680644277706103030059020752876943826102271223644172627741494445838326715374959892429226424095034112813646984567040583017908333161768667822619689321741541442083465493552707417027395330790176392046948437719029747702772694954761775818548420220196342339963572126425513636721296000646655849102680318350516162149901085120531752728979538929786920257103472141849198809012053611996776300012700240443675323947755647474443972601662565632393379650460220044865389001604272076399419631901215322020944626109610783211734884835717808897016321928880335127087474091807488947829808036197787878871998893507121714055251620736891423171747101648789914147439128582139688713095200043230224963981243454756799811212181801133425185821748121913195081754691605108766422616706169279843924017511363547360149645119884687381143918397346345845220156816530352421452859117742439089154688614500132473186453628451196541171362933118444209095128822513382211940204238441989394186059600435547755418749696155646785616069727969576663135953795695465669958364857470906331484239888713657370984857633146690639128538135067129653961977566978494672252644933227914373738664518154218751932165909263227634782160534932293206601532208309489567235721511493235229618432105891206417548305061717739623274749767276242809422078765773805534320901759443387857647294431905878377089284569692092057572660462687809060890407950531626801977290466189388460909935552740042963227844771074125030676233480811024279940976440949341366313162679911881019008576501868493409014954105766198181891880481015392573785108159672887669498622034860372429264806823152262224452098195337182246866172646992294037221454954242556257411397605795843419838513865219703648024281204646362530334015549859921061758829306275820196824550677798158492483864324441647058966858457183840785382518969409900848785690113636245685135150951965725653501325532184137351165268686833857655734584800307223030248222416122073154704256364062690945015360354516229844642155292890160669718444475110076346401018491282883906756990443354398450952785974980354377566779538260619788178178117221022768231559186141657620559820795015466755555755091892421259099630515190285027443982784164265350193110550292873117399199377225447946146234465694680652059503458577731415484910619392459871125969486879685945959249209883753341137304686213879652067312830601166973738643866983506746226892225335305983402093448300517336474273625738460269073360003005404357957861390284669554696563889663548112782182093837928202324606327251518696345871921550707430510902280486231432821037394185070431523667563211498188057010609294841441604561364430886924330952294063520529429444296335244620549317263302695337300583970770700766312899161350196258417415949367440056490177325298869417478559156052420537964948575866226398897654256574112548719714086300711765032867703239010270726088816914487849256489060020644669377107275343822387650672938171352449441735404061089758122924815502207788918959493020625932631276896793887478153184209007848631029383584429124774304021978605030922527349342419296279908794424094688506622895369403267426796631155879004432548046770238670881940871977699494182732669011045769358080092848858569877719888204349952953319024011176019676359374802944342977558767557948005083053518935370847824413973922040069652790847716530664658592534223035551681609031729246343912633307591145948098405488664802540891872678710772527434427464302262552828049358934460217663376502874162021686648604297277550614780392572385705307569948513355459011352174946021283430650633721524383565272002141088756372621112102701833496530544788980762514268217227455061946092902655373273758660957295548531665912676053993290793632316326655495778049089312259278277900111115040650486464749791978548823030744311012566251305303088709864308536542232297319725803280101083194083170815377380494547808871390124978379154073380601773880980022299893054409912530524340177311688425851532569588166394348705424428647926785700919471089047734804780730810240815188498332706456925331511562807792913064875373950112860895241494726958325680632252295393121486928380882438148657897074262135199007452415768980219078169529565245297320352807476995886309491762037855610180716835918808009216177972843150976716624376572637475189696152142790001445393718492097828500778511874657079626140406762117134843573767106721731248605959842042046652500650956231338595358008687636292974269339368735848697846029957671040082794821237530169296768975323879333590714802790474133399093788259308986830718157158920926984708024478658994615029779013951801779501048706458945256961233639410961171619656686349682355927936078276983035247292882920327782416580900400290428657272404199403720917187063093599279067814671658055807869708097738161512960400442273713565288932638494936654480080409556976562359726198058703376031134266436262298250121469790285904716941528806956598493771196643894393866910620060183879852886446259674712567944223471474848189786789906822622006607423410458219736975448220210564339806419530765940447831117660937537479525238997141404631225655111694309646212776544087979857838915194090560609220124843413421931518813372146664486075728841160821620280354504650451636464288510859286985969080955937293618497078050124443534504754065403673407494475917541263200368408543948212867374930369498275302919682828298443929903278342918155346506838445686111036704149070604016508067430866677732401694095066469061596014810913848893480795676719830464487995135212137479427807424995684101418004069793080020409382181796801082823088950782280539978787278182656287025804077054671029978641821082708861575992498168456519187996329887110990310984313715609362907411801590121013131145022337337860287486714008565928001226235934891420878369788308382214985472795760602981102755791264892804654844547549162747497707096378992656990326659670814708756684774228224948922200368691036133526786486722201302323560179970437892223579177094224222230907923954970584532113788311199391343682355214534989996258771377513919396679046196592115784849782208900369718580060323496046000088572839488206561950414616684934068243982156314694845440316164338895603315595547931950608729385574603623226157388622444302114723052689357814778160319132705558646825835609447403399300382061168287783339944507001273921762540810273244654401494254650267443266481538572595202403160899054838746680999987779736395327579870133431902447145907085321782441005953651431248305703919463644405345534154910720438991639250919220704192741026888885505635992860476036209363219309941532656016188856205191018960831041559803365873119358674758218808555462303791135916584207179517862493767634772294255297174558427421842573193365303552953180133119231922785052580286152047500990256544806782499420306940297012067633938190034209319020625414329424430575485102436633031533086570798128261251894369487059506609630528867672109244137806544602320082810932647173501337732855392766605378764483191158530709782212788106783427368633411441436440028851968444337654831468650910714678319224720554442722273349907258140920715610684935564566083210272963626784089228377483888825393374484009995615227271331888312525219746124799974864934229573048363137335521288431148926563835989484965484993157573360349277444777565621342097638947957013355350434997215253242561058470312485661616171857073766657887320199074758791581138330001441095719139672631288149596152485523333554919185720380636187998902898285141691740716665369213442588678547143666488835964124353211503639213360612100432443041964746437563204612957289580943531774493912587568351939897281016025054474112704643562982889009558620189545635848903611592891571965675928059099510064457162585987068879473610628242629758392978704716040177513834242296406666643016935813879090110432235824604565155422936733953468945150970643765772434883120410209913820242302868985996082645982529221260933270640901258388820670040647631298103004875840220457466539664317839866827129333055325555787318537169981064502828455444780517588286306836290094023856039595644684778943145912719209262356703433565922965244557126898540360942212294888488659736010736064290714982378990469987382481792658464213982329495724528076071645875043375936496663029600849684730819845336075820639477206065330148218646373578241325152823538184610504297836503991112688169993508881227842701584117041936186780714876867624693833039061188619854619665648135756650335049951781476054280604242400296822050438854513438131667636351562495726563921051312797799973395146875674506735640423158908256670643310377588159865834896926586756499920106464839682404696267689402362512608685744348745357254200537307083145210038972711537809742886556033443152385430505338771425401042670830106256673044821424114898546349348085185745366995169545522992266645796440002302298951029986608410251875057988001079271139776163386943033928115286681230038692441694286877543265760656361438007588531427898277025747181552830195668053229540894980537784379777039820780380295864341985057336388270642260672135112040039539465381335514622541514612270393240338305276546404600400655876404996357397374121809833317766927115821165115082474581371953243473130937654919087439583349729885833583964041065928848435399242330245728452155413701211637565443665921926530330461093096626207249988967126094577337917789414760999308081294516353165505125659440047039623613494488341925486581812539917179965000777549713250137006468114516018620576787875938954094180117528903259202267027720550243671035936535547924937819142161371145064145013181326515808114882452678831559777383490579151650543630782460719209256605849548118987436979454491676500125619848322755231003145046215354253470047074043766732617698701462960753216417308837361394946345643876731807370038050159105692573893437067059704915486508832102329990426215053540592713683332469851801393215921124614543525745615292739247379227750259665213149815448830648525408998458715429982863472201868480704089960208564946290641121722196726112815149481914055209784139945065803696233228249486607074083325097419112424122197848258036016123980533364911286993303609659693290850037661024746817330812477296721291696632447650607616382263154342294182811534651054999235985478161291319494909504423075144917065859423077011553906018419478790088473236537619183173470772813525790540646854775037200037084727859494594733057588110720846533641501368824641655717601969416198970417949722322545784681673130679717527825163644439690969467906821902140194246499156214023406293254726158298987509099699408967206737588308119628449083413773327544280590502451942253634586922393733751088858251262497233576032362826526612920985030433635912538514091381548632512446120588451507602776035278394934928255013902524106729274636678534203412206219118755551633493908701342740261415150110979457030309972366021611378353201893553475719865808026118314825812001731507670916544022816172368143177452719640946671248545500565161601732173596924847696421740819390938993093426014119007064756372812852283955272440174793866784299413304014901527229366956586433119244619472434326434035413361875345655547776247989707375150140846107249084168612492545463833483899396739976856799948520097270423249604934749816676656116762319693629159727436794155894727628471252801921625987555578248613322746457962382098209481236717027803907372651268759531643103974789305567108910173822169586799486487338220048244618075829748900668280157054240214776640684576696906203796661149253797458863485158600694239170662336832260937296887403173587953895488408883024802922909493399959327708987048218511942793642052885472944625572786070397583971839093366338585082167880219184402379973228231637209835410737133556956184716803715818227134158390674928835155468337732785943366168403309362932347871645486833447331547050349424391825003479086425728533783788204736812608463369572888156951462195114019980763174281904314638744964782979039135910444070673684266985828513792704412358861157182780205801570016156737279213224165377269013781778712747428207479091213916959253024828069703242230985015690125876517982797716497762759461617078106975243169535042896940423042087003692341554883812758793353501483548314518451105688568657132384628158776134895765211608519076279916237044362660533434973496671606798836513715833510198695376172656119182886967661546899543583746185548311848738889346180148878102740692015808574420947515458356711372526956645133540815848852231829341733217612484501326528399968677436437890723379400246669081037869195188783634135816530609268702615321140424153699033166476222565269687866451741385283734703094785147095321296477288476349267148297903360923541307364137904106730088806660965314997378402354861439682836043633092726500925046254895547383098669113973750188324130678266929869972546248978452185099458334745531751781719430835820267176101623290471203054419159896710282332878116307455595914234784192484765858129014721613667696314712311170768518227010186606310107671750947752244143291611433591816157580435254096098718121948576111443186765853942007627390282830950375370237220235414563552987440316672392282223385929329248103006870812686782958758636234650318656683014486641397407743967915769946675143818428965705311475645810997235722375343810984982338716409417293562815817937083563925712171401814946706641966348376323814446604600898287142773932210855212128120895926266849859544303642091291605663949172691873619264969950093818179666372083300789107258003041751700590102174762865811993643364559946155615720535230873728742592467120698842299285576788590890400152215718073842065459536485513054520413347546934322286461244041800589215018691473045546048434029491633894204065208900760574967983469379857243629431587343244457629324530788328731248114857198330584527940966060749600089329927694075058878871108317181586479713381093238402275324594179497909714827465195383839307088953486490318071211130456968866521210159823716689363402716609343738216087720001554655415580067516014574323918641108870803101967789988983653911176538713588469514350169194886627118089034754949891339671356291839687779442329860104641943076782066318828186492870610125334122258268510263657841361627597119977725056405216672901115926062233222688043846878739548848207489814122721194256691341895640954407978483408990918357422835196573364021488428279034707303297611676797846778701008192379588668391464714693166057090650734569467366603425682859209012816830494447555354599824033608362418888593953106680422745002843520782577905505902040574196901328173833880699848348196570827292937334701318120352594942963607497349846335913219217205059923799248469494427125189031783582747150978488823705564616453132776104018624853483043244508549532432150857251921163873475745550160235988468799630289809665958383792310590270179481524338067707833943086398678281185618344757988279832835389872945444087352925643386693777160037442421474828149465779035775699158174973365435940133796499550638515763175038515483673697631210230758743039744382573967650109164612292921731873675909824030801125519753509450983558587201729248423121936376157750248504867712218895943784927408655900084815079188243673724910548753367226906928836367629039476515627805362151234982695955649548190337275547161660877971529149921531308914528792812527125527208033688696300698605853513542305519497308094085593134504699185286880199297379095624675459592157003452868738397318339658303163130345729908825861005676268442579296983075272079062625069335450048003581184696824001632542887938385438304478071260837338944616611828847312913874741416980359663075745417957883821841489371985830007116315389540366725996410952321151692330218420420410671164160164045377233508551370421468673073983027063679157367542414078533818948962578854938447748386595185431961010115229515292810979224663778180661217560437015526535442597796727452334228050562523710967346556690068701369774571820889083376131453765718427106880530302739835498713166969084095322546267321546038295914747041803413045259936528812809311635419897014306900359980142242815624123229440397572313636563032448335938391972928591260210979085102297926737543475680924431021327900568461740133311670045562430116133214150366855915649181205963685329087605486521101636362198347806068282496177297559308449228298866555814347406863192538511778605066318361302286022652226865286478835229170571490755506138809991587565463581370847572641797710192431761692783034430273279416614032602941800836561592582599896388648311079548881086621376882209340694375680066021757395690708968890673543355676277082822075207547404727203327184217486001836356444575781705197925208938321648446627829370198872660634469134893951166734254445876290699859376368964249486942502120877963834865143239034902452945603103138468025882515762339627256044335726595282144505496638422373984956917925954417780860914723566572358596137826022745226355688665685685981656888077698477514462723621870830959137044222504085921748749743002284163680271587999525074874695332568015788419523554034107877545003261401530412771639460413861151641676343670329979844874374507470007647818202222512772168103700067353936999618718081008396356231273750250182183110629806193516386857494221714460363685518016431736278607048630439725092492678107318686446782901691394168033357033209339445619929052136891453605435924230914199557955847111503777796669385836854381235046228591512259028417572081616216214509080844715070724329654928759566260137066474787147206871414127939536513606806110182614562349083538604406685505508937168016649228043047468989491632960963445166825894684435956988119977882991645250178081803802343838340464884639362257791237278267009578600014400104177207597028119495696020584154775088157374815948514869525076475668101036330129568248048933306779310361770210841128237292014502112036765629243276547258694501820166707432006662108082687314722321523806022940417544818062919956214953890421587575564539212911830584765045601761853743166422870553431451021801366581104428969766027378969203594622466923620996832291877660346762537640543711331269642739371482593372463530688903010604593045742667818022142939792465457749916230484276283978999455774627811416316810756688187951783357431885712645339731565073867675608599383750571169359159227101252119597593911737113376379300911143885071396605811671862870612385003192003177195859492251484532087619271636236442106016516728104824425374418463134284975781135636068495479507988536123383477101434312097095416198319401344674324313299051872123644687057172616267180881748454277592006599043928287053711411130701140569102818579045295444817571227953719533859333314881714423693567083597291066575888748481347145109559222156702770471769917449326273043312246015615926169620596171289095341655060734392853892284549692755849387835360478207697735280361979030222148368485664567743636429810095787947888647464128841192712841140139497263364075407686735801926578894767788921481288555467967757288948536788183243326485802479855700554281394932966614791328618293287558750056386628838569401574766331891879001430949830601523850714153069316500498789428515470610206309706182877100882422157398484069886643584155254209717235951235707356786844700390543522952683263544106786082480397855216850203802240652026400576863237860451904962220042509953618120259553336134896686548256561169088657883372882929395236328196783463255286222346298316566942283074963718289075583787462788675019534638126985170901283699845582404800113209673916183414448944993520328098173187908512252174781274809081236560011736343799698975686908095206815242558061468770102763402418019091745664750699148882039786240685822392617552447214531652276906722450781276503829392792256626259040244534799966859334590512833882405225000605703908821334026209297154049095947997580026555203965159903602844686972437531522087411609892755061604438827961994235690589142626477948662173601316237442943033267216112859292571923429707744043176383708760776124567867605085019870062670577324144303435768527828181212386858172159930328582966445041867228412489488458454870724812880871114184579749669555005739214727475473726136144039651583927316768460834624404869198621572777512944801403493520417969690333275666689842972528612709930354940973633415918962420536240080782467066415223377734063026616921944595055208251282510243324494829470680439978662419273500636595325674810646795267791283425526284526828449474432171866870714162470776134365453014813963508324366853724620733395289384959731941404216583282400426839280475746314987487585100915479920858213085953733024268214494346839165212930510100680138897288291708264788794966249102501662850730005698027899342895913343203725660301839582922904985095323641585559566778594054285167300190813873984346348595441853372231470761884691108762496323706719935302518784282326440307286666694585148032193175170030777747238507250361096092351548273162337501440932536627597837286938495481972127818441618698768550182099623177772634150989790264420819588430172477728964790420483270828296627693735612762946591646828599934490720526615938699847919735425407208732309328687980623452749578232970158215264505615723560983779795377121240708013706957018524059034564939181420833404329019425882715499178506947104270020173438336346956592152571267903569254436967144418575478693560856116889475159052407452211779349838746173271672142919561174291638317273694484047237763358020797163415790984720295682706694178080427547834891999257670750151691506855847911580153889231889749477867248111025173515519543821914301225691845868566185906599474473694420610091703685796735137644441196678184739845531114207854878536753922011824118827098698408215867537050552447274456733549157642347543833585369687578012330456284980598379606673759936209923817561244475367109408259659753647840258652131816095502412702375227132870125855944512568893784751607454937854537503751697159788220625301565772438111810067906760021703628599801243635693334827977285894420989734151605350222711617492125514156215471039338622656016984697430427284405494561119003669507344412516074423976180407146813311463066429148800553782173605771755900851160470156233514566769773212856068915843918806095524532515870669721117666410544171162547908050456705955780602180738467374426373064257255093284618439487632108044974518851995742819979709427830983095360676371883797193523207422099692695913419725319575095037400317457294464893640947876931953899450813893817088362949808190872964238387100189054374559602628856751723235405586510736437404176788994639427916070762034040809664547792760616918774138187460016657233281604380520637493384049552872092685549946237044939340132041332241793449027274120023839241041746898255640411796583342992980009464098314997212772998892514764361397962022918267962669749521493821007357096886356158035918709281681854258748850372356458413589440849765220362677104306042785315984669322196876176757418613675452785598635872754010544171098709550926315196636833902805412353968002590211726325273136886100855969216313172997099753188272786907159686745202929908805921963215235372655760409702120574129657809045126123804335154205896661268718979106501337358356364398106775439649519469002326089223722538445417451690332745671231134576153648422929818531701226158839163864198833832227997945268082165415423597572968506421374218954565526657598570482821997865251499672017115646728801104435505822447319930782684606567999995781754934134525259830164828732317386190163255408137095908244010420204343992396634781385769720444306352126359666749179574322898876074925068887556318199967364535676776457256840343011531326945225608625317585452020139963016278062357712844395808470784839685449326113341298257548665190759755052891003441308340849540863022859709729807553739590262290804603478561933867202172047324000876707761849385966517788246873430747906638566951875291753630537917354593906716424075911039132902703313321798280992902476806045838761633818920542128290555490652459651666068065222932834796867198480914937430310669088382545117061172835473804483900670800001682683644580265551753792060318014937260359712689293867649518520887615618139070790785128814994375499622613956503717433079579135726063124516017169373115431929886677568746600145754366340363969083419685219348471951352142717173583007050900391179977220863671724699607133541797979865970316048921196855905215735964139252682367118543924429434605799494514074479606243567301539159537209419656045071571132487060125329516471302142728333421529431436943702812704942297926374292009006162765022658522818845295598027195390248593249494519234830090962320028523294643282138366867571699515550429294140618818195092523483745720369398188844319486685442117535275258653517396186058034846428281157328984083850671107834070516972530428914828826183505115294035200821047932462567544602816016981301235267442690607290022146898452775927849438619469152146290506186095588748111975604872312256634686349499797104609937040470024980349133777160649353173640330980889632747902759283642777422702522151540201081828908760510390095299184241496286775758612804043254771212896119471656857087567732697284581701583655273424855963830760101229492146882599495302664669146924240335019072383034358668344233873121517892718774262229785590693869748232396868893730515799782144927895471402898804560683224370952835770934443053901625651496681409557170894016384768054382480463487115757754384238598134678462529407550323483521741889682381578988280319040656640985630928359669530093458958351122604719729971566489815091366946924189757028569592411817896103106860287151252921704728082089089813455529632459677959617000394489491943600664722207854473022783444264343596746818316152020955406741408254496709087398698021545942107963536098415001629343022735879111497521328506933928797015152900475635204053647311175271138709885592005524910971157386939967981087076456252171826188656823671794691503415801398727110352199872915831900168207667476391101094289321448451790402201245355294305578513349374530741375451842492393173507029811889393579637891240755415398555204879289565937237486359996454720708222639197658889989270793047447644090451482592398968712508593125790523434186394899844422359487487741538717169219253703283088684613937874684747506297280469002590755463411999634359956138921766582764194959974336050337090268435807955399853322321386765663849015665332740596791485290200201456957603957660813618207617522347429734581054509711310988445472741201882560327781588901932846427041511161830356470180962851498645357106199391459526862385881405663537493569160325332919575983366129521737551260306117671106163131596164059999911045531641318012062988662485249409707397876753188516197462177039279130307430923105623709730463760421655080155523126031419593389200906602090866074755685122260500870073130524673255736738852666317958828017662029992916154545019398308543893571798877389560307696935053019897677517164677973445197777251981458861065189435397582266836826221878507504094035775707985599119373927006247770586534362199565573909756917612376183535951195448139172583754937388460296655500613672209363401857609265856359700357269155359784617718294790434248263123544998968043792075715488313047894369099283967025280140143933468309802385118566178034917355566116884166409974703160437021052814768107255274539842042692868325512981981467001847652884533048778870690970998280659556438476478082175591455037179798015882062970232878900006887800092939762217289897738596591356732035848922246885262703986075667727350937151840162211622670599576693569073270889816843561268197874098906088530463750804806227274278459723750219604847468478083972752904182371587093367789308209177176012490138072527938563365613959281745075326957338454424261795493905691154768487076838165185200340410665308418404671216629164285117163309524153609249447229547707939103337704296827151657662402768726934768872800787272299361491574214487739932175573091262401008386941804465472726806780106230295340779437827012424295627898407968568139907376305430916093589854823239044973965375080412386140887974477060370790093852268751970779307034707957555854005033228899226920596303477778351426247775622982312689744621994754552526088326573706409077063261670825649545597879961493074209925564355255876264510451813960778262366214376987416854299501028435206664729617327769890508482694617554311844180411192928422244543701103572799360845505383646088590770839923757573794638988945380288514596967364941441149874981667555569961876594174754520304049609694762724100714339939924278457389560597141090186355644828257375615774671731083723555203896325783399929941469910358981918729549570520137167677597774233325423183553508939352277260385107338814825946877282435686505513643140974381603822528973714493533519521648431410103973451283987545453497139431042192685499073028402629407893791350602499359231906938325827172444376654141020818806387135701072198746385951864274352661643750191656551560826114450345083567546060255215410940051762055273962866737366383079600325450605449269152535525065419560664328335286319633630323750844945716642500860595370231069522686915465132148880525710418402513137309903024038319623631256631395651235309791780251899444071144332976783766656370997902842261745387838039258803869546654701245607735740244815155596644254554959287012597606798875979743023097799136336363019286621937426230770300853904235061727215264314170229360314161814194910421516228424546856901208123291100733986037191217576217142116594108728582292299615933167078058243674020617894560987075472654484676761961528614480334233588012525463880325402970209820120473130140379367748883086734071719005721704989402067892790530337773038924334708850360257813369945078472431520848113978563984891942103601433458121960929746338465481089835899215044269430664472317617900521844923344758872027790834200983938403030598204638656307719757021203260684347169408997429876904417015278546797232113063298442751562620732616535110937182087479627611515715256113700963750675495230226488427137039609576799500968741189357983940883756068486760256322103972045330137552206832535123836818309912901061227195566213183697984386942309315862202203347381711995526517534766021235346264659534441994206648146612529876283554106495809735938772868627231771948790131100923873460838905974213898993899425010689554223906529980699725840093322643207373909924325977497335317832305657410659594899945609297994906260019484813822213021533863007798935998576798201485354733103079221392395026770058306397087133506625282930401260378074976068845844757726427700611455801571917276212886234974807744115741330743972177016096146670560761247054500304923574688286251727979856165685753849229984089232298743305166089746204549103692768285524448720404104799509096708533075537449445777510221261726206903306114647772483476530892457766398941271388280184860146922213557826529221046313680416352184694859228115262515126586364089199557487804927387692945055940703219973236621914067647464180304136195151321004989008127686458705200456438478894451718489825007221413583052420762004962352394523138067420721081811045838519258711605643714592290441805078172892367565375766135635297567966720740890174534186229925719312018428612698661132374345466028745645343000166273013301648339336484219427006236156456069373560505650592872285227743549839904976876735217046196454549109712604476099167917258259378827343232910409879915913076976739734543979392469889877392473995920491708814241737818215559410780653601347657538138593829820285715124737643638135109618579146825514122809778350654666647544609031456285986813811997301622395917526250062833386542128307859479375143307858436980542654660590566418032142695739467723700100447027266133329810012688733191738719709381930507016198457173598432783273654689324140188960502530641885757995570472439547768303878810073683814625121118250758090248902755083772912052701880635946959132648847888547300233188543251726862415818729040582155104975739536721980857021633056519183299578609526538319953960758403455815020461838487531530012122001195080623000994170307602119651936975191198662220469235320123163996647561730088480924122000571078221384508800579388632754545160232597555551191393862835971891403979879006404298495089635084999625878538969067580779757872709388312299142168551800341390799981467179336582199130089903049908692046191027195849941877372589986580859927923006127297022128182075872645319868966477792249840325844931529846657022645229274244173175018833914528089933142445461755169810719197897174984187322175853463040783001313184351901166433742569407818509145458476629285452368308619492640536552744886531408817196126020943929218910200176654025063699500115693844041872128094417641627328017063509275229116349255085901610480422355538207563234646073882201474232662933356108987044590098973708696486943140381429434477644055405259562750110722407913661630184864076202846135316672871281512141081696236257349528314393247519110295514718499090996576306168107051662712512516762859005855179548407171673391758202372940063196449556011137313343709072772412187697547173123393903612393687683363615041034878118119686314248243838036098318863274793389126183269966836836277400377688618146645026216582705252894603723433148277489073522269522619540824780467909830447635025607109150033310181000731561542539235079361371668862820299120327844685051933299020966871289836661786626359571349918558764330916054380295638921386523400049676475666036081497085235035816353772946499972311712484759721291780161297474289364921671634368496534741840795775543283745988157919288095250558509732690905882976680873868252550110608756789483755472135257537667037590365301288471296420955367315564887895975739645854966440599633691670568114160628037205693722925108580468049433224580842266702377596527759433521174402308227065477066066120483953257876640746134844927000096294158484525199553654043903149270471285488017221170125496438838085600429357536728599088126816378300074698602418954123627548914488466238333294270319292700602409424667458539721090411749415933095427601980379137497529091333053961219088780601264604410126248381742081519047032607112228841560752717233213564868433188073475876612846229902836545560159287169188308974885258733551232715068163796346208438781444699618189936355040857577946149063832131921975463707526580373825888581135312339067898418228146762672036892576853367746098620424436513677535333988297718178228294356518777546452508637777174209095494366987990159037987345775514576850209535501215096757191294786890289946541401248949381825889101223550892038105507764155644750960136194207715672752921042631350080027774588727719074156404510293360676748034526271140000070738890092087540005969008032062995981835814804039410798884151949642190911764629255945465050682177424777463658895864439380673376583055547991057047426153146055208498178975158653359455106449298994186923581658480888792341191407908193739913477340879242091454227886579676976761495122555212271587323528283136114937999219538767714560298605501762626694742036247371790303125340889741545781599439967150011273259747280094832873336851917290527042888977871226707221195882940136511472657126242931648011185794611232985078447216449095632172821219302401060481744112479074695436746872209369130292004034304645374986119391188722057008576060263947783890360655276385896318648068661675276784418840135568158504987435612279590739696501509528321875041112050382702152567348624548086415874548504350563197963049103187616283325089308135998409591575905488802841727090241579002671592675759874550935502822016750382626999440012033590879812137331031035855279274752011251165405723889017944803765061443195264349044422477960183656543598330500505986967582605522999755345442773307029201350763138510403666440613961549118520991689731996486747363553894058197746064172437251716037536010702649302065834151140076607807994068832012664732727368896524135789228982489524447353106682295779589534678214597909456193685187216037841685686224676617742820139974763062896258885155548089757888198726261726796298404788739356737224707416915611627397229564513924468068500522052391544391372288297202556259124164935823131126618470912770394683027924130260687100828796246459002869587889054726081614068115166760804010533857631938367896928086671868362138439139862944401314525151840735132787436108453951087742134551800808934492278819415240894287062176910306515005189823333244209574464279779402853927845236763141719852950395011768855845396305650152793983494282915452113450245948322094593362157869431806837878266618024966587934900221949009207320361388050567703838240098421344408300055448309323835588093266538037291922837597970872172935244436117978461972064104458296931679929514750953187264937487345776233844643284310633227614197932483155293102893128262356942231376470746049092037642763370111666195815601651297807553429141121462849529958465352444133860206490757348291278777341284901020058046361680740632424121822193455242968351834968658772571164131508923139597435207323931316468230163029616845580841610846683305257883938629000686920943947049860275148349072451734580657045842805321443896773443375139303761137382231151617107043042413506479515221217140204727674022031856418950829405345891675593457978108025880224360898658592005270854447059828403916692588944842528214414883338190586423134716679313408099945263000997107992491435235577014510182192993120360588181459031898321453013780587740518539399966634119045342801401294282572057456929850045114046357252428630487303434579536092164880614731252635622495033177851832229172792758140449590187318529877401699493713622733515926470009583815416929293797119732735398463750505800528214795504181096546120518870569905114049485113275064305728455705849564288198199631390413552424926452154940566027158505343085524875400721772548705927245153619848109768164442864492828872219835539262638523182015766614370130420123066115565824765855130747996064951526882282532960517922278736445385155415003521632010970116486285704361269427936890971263945478502099339200571853181796239049256594285343827790089776814384686064887705560299810283531642094533999557453953947004563190782975392408142746135671370424979694743973645016647227243702907969626022266036540975628217795398648924591269445571995240792988139399875351045417767794859168519693791016642174153134882856165608310637046262290355786283832693368234337859378420380752431701944641807684783020253922866459964537163907376815160187357226542941844831132952536084616339747009090407338298938407496046369174406318344918174677678191993861740251732142459082237014356510211514637411507384614987339154026136493730183493467189802896047379205936193991619329120331012002597156405150229702901830498814893909748537583853167350330685529555867288688988781429467774223559153133003295648923689916141086213708722730110354286084243291798879365545634416052679104843248663483715782842445955561236323990752802786710849693469768614746992456272967683245857749558824819855143336421847182359833589924445299514680063123358768525765097238121402748245802032584895985048010011713028524162459314298037921740639305936027783436432564976894642347114985756377517517203436909865127338814392338153956547533834241997252689077981035836797943656171657709032458491595934348841182773569389685429349223404089753809938436966559624457651507140709930076290492401720052867474524812297435993607816962361914605097750121500320333399552616403413298733775002779492659324105576187967692116827150530744816421602669962984823209350608832098306775811688082123758137605607998971679417600278681332728235738413241950751000481433606380605794835086442632995233273719069614113993215068202763183786715877547515081554551926413283728780915082172655272055646117760800746080092800357254205555147354571837976997847663214875283525861326621548111030403618595817194658889902196388894511998835835085250065445466249302235710382897573018560406093821439909001634266674610775223873077486025609519104325035350916244691991356268179378172147385148278157665144765376788965412407939453611879929385773469443372481370535494205528291317045493749466365865144194702226008861473917005472838596623723901088908725380383524832856537813817889414120305946825734162802233432382560055467368878982264126611375055820761370718927110648465322104098756962488294017603735992391688039884277239004374676654040573590349804614123590414019330290310970939248073519952651179585412225604332551346394907636836325892326154826920012134048501658040381588742837703907952087092021116316302077232876207054941330901879588776632670325118961936047726562930754292542887184712672304003494635599702709913199840257286879786027021431595831389367146875920221308065549414862823662717202425010323027532242561584201894637485763271030887753622493740381178295365207363818899446224070764916172329722785919234393159512310611102537080765614430006059114857458334719464612258713216892226963560502679946746213383274734024151581219352159918258362071565134448075956305053832631262991614441265466274608182290371733503838781795396597479814705459469130806754270234134443802573060020082280929405004159318452405564153236693205666584675147171722732909934962900630021212154086683139635071349758306100419512773830157576358998567340439395893325503751504514341494649913344883480713802687350668422419622048608787742141103893055481195613016476803740751430390822807404776656656105044183914355020189213551600255305456263010486371754919411270289639423319560440506335579285717636570868163700128161948677237013478148869420360141257788414905406091559697941384028118171163325384105432312100075443370920752143675943507089241461748107181282673026321097944843909989020480798073934944890302447803092169333229693299684779965778085260494162640273473732157551283683721687258933535056320949381646974211263818967646085985415269767644974103641123884254645395589583259787402293436179780518948037313786233342867637710343880588176510940791786591336202941489664251244778571123028323308697767663825041187766014626561646203609795095047226325662695633927533814489923074475683410300239899966068403003491266542231160914836629876421314086709383607045419846432406096285235359997505205295906660001200721479336366372730387499471640906893338242410833841059242507886226552530177487196190554071287573075106592178027696434264219220883251121669015915920671084897698254213409303389337769708883928708740524277677371005270912468869743897851050937554023759071100101720812969707239778185447960436675420496422950563197385680929779867176205915605594660866231819288179907612992177545326442214243168202811084868938510407674307424941600763974968447646327570002470739263328985656358941617268364587781211764845531702408869551432999049185327687282853671286494686503508009702633198852955727237814956428823166296209868719650951976207880502972511233182084544285057466039549579716828021116396509555753690447399717614442562474685373917204558607995621157743828928080368341381142553612949619537092734887095975023585451326128853520293052154026503820116621929175908910005982277208694226700864004955354004413246180581135773358918759667082062113245261881101377270054589729188834646972005986454422827681112784108704760834010021765031093495626711942407169387783006265783998737858117657158518506398150643500219141870961633817964010265383046520469357247033381437843475741857238467217515689883153398985558605245516618194819915674157545271494402552457977750170181538840793052315544613231466890882579556052302925987343047895583477382146319678848982650603093438363734943010792123765019603692711994935753805548716124786271916120832279530509546443149846761681659399569007574080368903972281399614095071068140124570259227220490301537796849571867751518671002075093196833889069258183623166076460655773256778232509556379118775514611542746910002384654860825242902122330706442853142805164778268829797689169827501691123397259431693571080051316993831103188621407680521096580272425704197512509471834076994344020546028925924464632157404181074487517418524289865567533757221981867058315222319337013324479086553798395915687919475881470459229881764004330965959175960944655432551250671726021846909934805669024395410986314265872838762484812288847184854057259537786322148324520915800895999207295523520451528011358807173276476329903794001226064637986448696690727918548108979880426210658403770086934349585413110236948844549789494364610289000290526215259704015401080344232481515991004535628623229069584388300286756243499169584537414966257034748093172801143769952144742688324766966683628818260100882751360308622861152494179954728923804616572997013478215828691926393403246206594372586021277114855131447428556481994002109496511558987977433352577834522432721492695061225019774415062364170532749144387931553329241358001133227830063954848453987546243797023948862923445080806208132934364925889267374075652522266210251052961724189508354308420601082570677734805987463699470996014429474749339138123420235430008512265398519407887387707771596241668910115607612285414074645338308900231538688832070548791377064685924628001162170724431854141634825335644418586504581423178806830177106336608280238242972246148971239062935139092219172827244420280800875183739515778504755787107416726787658388219631361068380355068854943886588689709844173884257981097356406391311407989993041077623634659995465059576622568678558671379354324905941130456745673316457629133821217906157053534405005195970016658536523557499031144496630801273475208412146553976418274139305092008476259098194979453506269284653295127419894571651750654076668372068277809312810218678553133659994439596611433797847660772569534128154035969976363681330412837412059289562897084219136698815817190328931992022842324720321752739160275402924323879753804725830987093963648151096925212275676191418289391232607430559862932438443806888188263036091509193838927004798791661142565112535909983798263475452009722414614521210464357392062240691204179512443331373235863286766090365841418024616675401298467433406781056939491540799872432099437394325452082591518860535589511302072946143635860483847942989073598427712777179169680584874402231201733576580307352556165333741452738861079687173832494905677030599216122399295248664733511796106280771097373150517176449763324417109764548563691095022849757900130259476229575767158355862296711683485872489103963461968974376419263453679130952838712201087094627299651930534247991492060984564791364751622543843866139266989451384009697177003866432273118569483781204742718758660745440331963256430700993730918155871448255138499430088003961953177501032845742327711221513777538963987361713981132446464852943247605111625970584755181105553064270328046558956339997448462038395994614603849249363727583414627113584814540684690397212757939577076420444889661881224604558525678128921573541960573371743375889774815711890603841968398706495817863860787850929452599170601191766295788482902613631924708948364756464038673517244447090322272472712092019324440386871719067026225480772283861260627686095601114360542465422770154588884693422044054187791813668318041054288210478735988729743116281749327677086449659536884426752804345205402011456510784258383168196777593079127611532621516476384908045199135871197861214833986706472975348932908648815401549469393138011565299150713917307093567029576812344064450806020073141888539797053744921787617937283215636066054000112402152262976260441103115182093226721378487561401828503071941156857087794659893098835926001469930338016739060382884420252158268600853273196799058514742327352965960236981916119071523903806194405276563937724330910646168848309907771712920293450494878281475459200547155046950684900411476498538057823451899734520113608404806725090326467517977162008858239364203165380489349145221746953710800156779442642254366682175791856856022735559828050871516267548670044452639593399245810137656644365786753216358213888649759400431377567617934205611887591922548270360919372276750644374038145513535755591939964968717086513223440468309512951632852819658421978333432316652113374081417371562712582335118074967874579140552624374946178695818765723224908727096787571635726425357289218122562437734769293940628231061270119430645812758392721857056755773931057710726568436467443864901929563947085104713967697608534790153685805892406346568108412079110000687385105753991717611772598007752572898151262306618412313886588171991253416141638245419168849011724152096594420385780759884549801212655472135822964980773581672423306262568327851206720526109474260422529425479927932111227553964904082684996267921556786092389744722437480650056403972595046910216971744750705728575320598839371171474276743943529163185360051129864991535064982320801830536184829074935912909950449391949788501755188079432312059439327582923119311981786190063544216117234363837973411350376441997991981749499394404764205327127738431583602386405660644962989256369988750010165460985345471207978669666297974895021643758480280447704161220467902247899924975613358257134053852225247988646363189317188477617884724419854200017330597432299718791580326703297719526109189158973190024417518980985102867601017238908916767836330082640480799435272233753007647978196703994672278344491377328990766935852862511087071699003997002930979036653050052449833792805213251998917970104459176582540771140719724668198840774591967974856773500471459456133649853415429731577960875001669772752385375595830197012401933989881846996635176952970493099251840477100945155235049821598232109792604319146098969061112438123766263952592744013359294283065543600599136516138124889280747474089378250105556810800101970751132908733586438270501945967843948059030653280094413699306945552837081394244471602929293615775843018014984777684472447629226950156964479064500922782348996466156341314750350943603641423564980835100973018781530200678057998662298112258662726959066554216578969415132666437870382499410464161812675101984770520496771047366943507304306739795615457100148064056392095106565247172043713917881876972119051330509559487202785454187823782968323490815542585994831631113470837804754023131817369123472329347165121826586270324181652031626296960866940313649740865005782981477123962100036110862901729745940175554376334637753889302516887583333035371522211492295741890092281619032048566680289280490585901036611667296551773420377453680080221979711332189463335317770122398554899895325166814916457545580156687165405024301463615417540441113142075549528484653561166427402560620630773149665515764890207855517919545004200690764108902950369432325685683601081982997200770649253148972829524039889330173802150125042262894270010257148167702517987439852602535719616637919577307935092752002884575229665175189414919918033360408436170754539113783673323356160642038352038242203168123301338005670252905460277327249024566958720486857127839839729365248493091724441650927244438119085783969087072952765232580100323269261320229179252165639960958884866923151821051309459080432633291386771648287109835497380968845597142025156061186849581522794823872928768893841172665481060142800623085605451182813916486165617146877421893049075732931045051774634167518807248675099391954356368409040118515852615606697294635956233988337780772326113750486065162872851465054254928057033546364388355008929396688269856017549970463814576700674331663022916925958422942874656438528509955743615882665297222047486183894549086663365657494780924484031337386003523618888893280396743805544175583647821225363943438458664453204577377907503769769405143863284344870543973831521891002750561888679106944503295531748359921304252801416359149502427681748375315642531413328724711809411744422811217313359013948813474304328212864152987180160913051345630024906967928779023991473740985919785790739425166192873613151087151754946549190688112084665189628532342826688671388514884231928939067941784482894644744404135320300704728914009737419267350203830397047204594683890390984150010616582216742949571197874399434754553273949647268495392499112505913358273227060175457994255921427655300620625241146142868986493529386693099186030750100686867269837130387794975324888755592369762004483272465533866540321403731108374339156705806730259945285278493491166414893952595754888895456310536738938213005148472252659804587954710561285465058918920893320952786317278554645928418165992844637193348510508052553654994968407346887184377761275731457266975199068106414020529955243709690890240922713151203446028176026336998246936222486077030455752977280707403337718204465845899469582220036914166574343418661655726089708825858470732394870920535285958002958128719447944967835093757773700912995778398112910550451915375879648671483661860522927848283868743543285964730949685632183713995954574604587911492876518707984563373703584515053710286347595878990672433539224325225116351776390773962301781535894201150704213616345043265756745957339748164991797867389838178765608350901200069437785391142396711933986365707010586496241929232559502529235678591279994216318041864223345503072419777423590100922438152460245010139045707339065817228239240674557383340128303822099339295136433489630407149019800375025391867625750695239375115724900528301344178815375787204633139674586307306839273963401683916654149065097614349715250681321998665626458947189056467016893640488466378523045161815292852374643803889318639623787502433751527045981816991549995586692431243731159971471250547842432236745372517848363559330151394435824949938988174406564191405451737753237363079406436321388920005119710136664170467007748073282094296003383719474732177799132119279021306776554090842991812848697420205364309913045144399634102919485757782872624437828216786820879713650157583033288968298288635029542229999207636222596715889127865563781228941181574642247038573091273006160813525680919767548101937933060254399139771922602452230260937854468507201902937051355807288022179975579766027391658006380017438467805901272826849184409496164687416378795631364396866097632803409581201050902701200925444964173127159091526267647861228855934409304596459360393710550846142511304383120520575437520766130129753016442327936692039703631156084694432292050080309227182911278805193088608540945683841379498753342129690140001196717391897138633769588044177716896780213055712150533482821271027345328730830057985468149871192602322142822836573767132805195648540771969659199940135670899214765870589861037809239342467709730815227460323686388327473752004914953530575745500201155558761088192902846483422911209251078952981325402082024019029762183603905838373956551987597298664503529275574177021227776361446366478181708334241880293074425408390002464651047668837218576139744060142649080235307970999395048535044448494938043026731780130313079855470618736376435410764713668204887754406845136879851915411177425391227867867500138181853653739598414625893539692967713002831264234632385018736393414358696646120875906654792582553930034086910959699365570849464382233339554101126605006070382728034675274032346216543171775618339718642113486732425576656117319408521511190817469540634881590071574179169107834700474184328624040766813676173960313206626860146264416066097327457406943192654313105554129127668115808962307304814184727814870126325437446243819722159972019440070155631834475510752038092264459606083939344292619295725522668801429377657943778255062132238708116926534001745364376176613661000689404454093967859079137051524229963724537725715358711212808228902287413031958789376458000313349994614185299341836531696538423729548413717589734959218072094890970571027985178136552305215571599496453717584790480893307096973045842583019814288899916615865081769508621684250630755698749167185402571796735183796530657125083697467095357971236298531259373607531047958585478874316664780865098252232889194904100890104752873231182503676245742378088415458080141481106478196346317402211131100064042769209651219158463626177614277600008040029189162913249286328977754188805733620090749883482601319269979273824074457633458034060752245054338589126077608301431459348236212983018615788361645294768460534779809788025564876426236824542352498906211362966881203989159775688056069143707488120104714115203691465823042247328851178955923157193450935344786961563391925845469968982623378505415317920153781794328405478163476757320930500329112392252665885453155321631575368830446639981808491658434648647160170899794676626390723107551932160166620166504868574628833262901660729862091548541378617046707217101822525586951418573460981930372307173115618567527066297039063279787815970134632020677721494061461382492593441097473624125715908005010117647112891655470281948374947148491906046581161004218727826308674069292251927225824529209518453025776225000999130808777411749920755401493963406583506056728712601420804950616994470680771574441915436682856646439487829721154305761217150664384402450268404512661947044969046777755970102933201824070133296866433929987680632217417274184197459223147037253294863907147497669736101671281903065116595458235859953008162618289490177698043857608508071637631642892040152187403315731450299562142219842401522221319954176126450652911936236755509193684898960638068975039066130642758882628393926184079419955333823906201046892260473552037017513356534354689072581644738875133619459434274745411488869784319829101374093809022592002720768850305861431927873044429030494215309334325816182712861713667944071387126307108342091809772944858364652046580407233121658952225237814140872538343490438735282280288134708788817395404657383247753451322012665263177258026068390628996804205307769507663032991731051975273500964239133959209426508633785336931625648335165509591560750927041378298414580868698272717454449761296297508357790815758198770538911152220044638430825894135849986075962921583992229060186492241426554330169230524658443187994984460387339498918029762681491147720092220407204299084953211486798007661476152642953133740000069375511942239663416667108326472209896699651155806848472795347773594399759907733716327916486778492041681833568213257374218589510188993417145863333099230873492140315542863693316543709309918595621683507268168826119546929316450997056770130907091006901786996720899279557332089989470073487114946028722048475185991491138950904244862449455983344329083117836902479455784061967277353435594983045858686249354626895058250573061256814722447409058713906260792175051421047211735790190486307899091229236854634594132596742846352272386601249214937361986970253199082329677610946180432371446361540274000549694167270003256596180694245557975127355566545891882682335554160227383632894819833555418183487399072670663523650272847094881671708066334800451884635662576770090674393991911716877715593996674735474652066042297538417032703243027238787150407187365234123565961642798478318872095457188894237511862529211268531187816392226377074609002397375372608721224451738860421129664593921165635131475892039427766397611898538369413356390403898065603792868017086200348834863946946143616443568445130347113696778495658493171328276990437258974297035569012523112972586015282034454667747170950548394759312226845363917608517643115353118415477932393423873276745649836518080593548828901977150432984838162231496010802911451792708426452912866118797372707876236688850631030392429087406234985404434565067518285752376622729554734204576326015579379519038721040320302236839430303150526333125950060621514316459829190565021422986120290003108075375102373538747106412406693268878579817468263524314317327649093305239757457203929431028176441826413660133416590837247318350027324206398236169666701187667126601807494279620866253486758988205503045436961305521631178045076968437804187987659877127870904448437831769754677495645226257133505332359556975042155279050145845153353987608636139443275375334370921389480557392960856941530520983736829841635651907541454543728377821453932620962420770224004998496383295706579218617008972548615570813668172243118631144931013911713204807268251314103595418047676478091858923027204000142571837746787808364892087908673799008076522544537672723537814011725991272417814894750882560101952388592098064666175690117884329052120070568294956974894069022115556458317244254146580579447537109069895953927752632784716027557303479108887365361585649561196396935594179615114250179307816290578758397211671599531168305415998829636236117398551748957816812813693037358200903917867303379443541327321255182440235434440558872828027303378443803338134117956285080720852582736572983428385452436798115648215502496785111447815354281071741913280189703985579184923737888533291565425285150738327641178540706376224284337761446954314263281956560224178935729954366199168556949841499718756633821146514785725837020603883095627565048910160102728119204202296499660782659507523020786265515695817819016963311889531781976151284670445895818537246140082392762518141926506056452221170273621267319084083519441667053717266864244612095639715425203177354927580884944539500915566900853211491094839665843469004453494357356852974735897487744894563249166590786064135128389682248932178011106366944518945550796074965254155275080390134376954452262858101574404051225502579633545536674444267696749409559769457088866051503702281563549077681817876634777377475821957445368959326770864685797667047007819817461741318909477884221184506618108806313699600418609500674149129484829884152291164296747011047911431031062387628377138753455428076854152475232440427342939041213570885335673265102721337156020997333374280419291856042347659991289821738609413567802146205682701859285814088330300902343501792582378603530181677259733042074966465060393403641746309124623926830026404098179174607482020256232569919719311997852325560668926954790266567237666379108852974298458822184492481795087686872422250699328354087853853682370245641431814951616948669067846894441249225396650649608834989329309996663122589650892174928973545294642205491162409630241493906992246532889389654557733355814606148632791835040709088641793461469905914086182512966339815302060248875659654894910820884469846345393529406696145323807463554182055347797405140171956926869141012772343653949664075029867985319945091540527259966865544836939493317563611480583505394445363875445138493236354216397022209514641773615707131174130886165013002391805573428819521291378118983375662773292449797162790281049143012087070844042290090377663322029686984276950987801917109696566124917688229762653454415621773535317868534527158981338029388303296688161387730008057319416173260075443908733154889125264240682245209482141794741124235424669956617942719079316026123797282248624113842257790653450153890849566088732223383215156148365941272532162019537377669171543067871671946881366035476645563409365961125541469291756843263416095791515236502822967492084581776806961092232956652790396079908171249890852644308086030129509043413557230935699838547864367720688034884967288153389381538270079234442920507609938331839411477693792243603282493890054025425663677525601074857967373264491215332715083633240162210362082545451003753542194410106753668288424943111677081603059320703480240340812492247081009717713641042166010333810686529790908086356245935549271208218596689729719123029836789547975376482222187505636401191429397491206973159515879458916803516675836260789750572543904698185667683493802365830436737197901492433527578473856482506342231735943580229674459418557736231298652622623120765861659776478869675266447486084737894296633113604687912266267529310253193507317479388404546073765768796977891226724006030152909192124343524673251536184526681269628466836642465995102555010423201040781269763985351033367812727770441721729489017360306233491718191024699970778152815847674963117401616654521463690011958003684439572704867935388080375847734937984309719550780934973606131417017275976977992174884699542505750836821461451441316265699860447011633238151444994206871878546999763453947735538924035486063165907031269830910583544849661854758428188317261335420195369465403708379518872341753023392466856162082912277396848437438719974079009354551426446583558296407792838059827910961388560082189224094666376492099893675363198762631150287208441234001723282304322011099247067768614429080152078104422277080121171118674741472320285182177921290697956282497014884801743320027543473033224145259079093997731999520575950061337213949180447496967740122840456611882408625164602520164442575347139947254422134251809051892791248137135948833452894969107346204199475877228331356068389440047274211664571095062995259803306824607644512633845998792210621052883653484603332953421600125017835207023406518181364164296375149314783619285956176369697399885813844900473875439117222883693859839729615397650980874086749624079378600463594533530354825254881038332407760162463467922169428267912408464576486872202324313626631153152232146155266418013268359479587433478009069054982431162002067784905697449512816668919367136769069728970230532736295459216582902402067694966596183691917871839776375495668162534018985273210895996450308784674831881402540877165353467790936346673910541234741800565905121981412151459120539911003597116810876481624540216176312204008862716378564357763900080601446171698995935612641219225479425438419302242023782350256623830636161368324775265064909986221151347766886645152896682199377249898508562639519275494038396376574778127524816741997878499031235197219665953139977287278862998717183347586012656981019399661092851256963220194621783632415132839171307722045606833472190518381598023838063367559532584310353533350489248167721999971586137076052868497495356716695423388507129333058156953609408109114376303838410663891385635397301281764829462241907083225490715795868524661416344500792368677731290788003131531446757255485525549998070703033808365823484894733705390130497880280903513107355925507129255654614635562754613156142564608596351224617118779850948142003891941687168595652474077367581283399602378706481025900632202624517473591735652421120672193227779191730406191598768168771177581141574338385297012435481270236250484865249939620229316391711644779394635733038503099213972054175099638504260800918797603622749596363006261328528433372292136647719033334610754106811498456424192262541487101211893556087966627376805084132201443630518986891263286858656374260809031867174963228855236577448118980641387077324990149844329216944097746578451582777414221182032304182687822327274185935784521551178611107595676268391102269212212091650683905836219937345044054871657659851924929148368196156219472581953203599269080668469836201901760552299320561010785441551079429457304016218263762834925707587913949092780858609603124822409165755461971623694843707233351425949422393985363403489078093243372411323641829425135150112655626904581365586446051530068519685053668685778407721031331701167082156766012946153639833703487209499806842063869809119396325840516994874860841877157924133784736639263465970331827777261129411855721884492383423642708415001372921028726069907724507009557375889088710140710198002147973731182062598727492131966395638725519481294977327133858645759380332622730495818198836850961836331546193546584544144719234244905434837589999585459042452278115039043858288844174060012985540745330092625067402251139556667277045955084979597260533889043427719693436828734707768225905048050502791620179976486933436529564706589749620686128445379898553477125513114990454968815028057243670842134424256926486626579098494062197708240036847706177917213174226155726233189226885767065171675163473161708315358358671021841906167594373834030529398969829627190303363580705683641429758145106012920635050684623333635427871202069989623741248126237625303538025778278887548136275654748500666629041049679788652853155440596907525648070570121834664317409198352068745459489606442673940355599854639422074673567663912325784862990848934438323968201084826861604073834540571814068930614486165053270433166518719826365468208506605129215718894752104126188648363615516234997084935026821837234515283963005196202034823918219451116582550841364992900413206916694797719901071348982859871248895445970133312639691192305581946303606081903448413832611529014033042078110092546280395712592753754420175282572758369136082956565898381269551227429813690945188698085962581767862023430630074111503689612056813434970802921593717130609010515095876121234725091942667498415927593792763524700493686098230608018342854702215637726519348872678776696704558033598567254906563853625362212036028559046161808585177399622550306720475158380618626751696951352838079199317203924234344436283488929977859547051178959822254967820175463750583252276042885145103545901971938941273696328234992300873904383592002188022650963659160600177901766269373885277098391314363714950960953009414179655932910020786001774678490892147312852395403645037794628792509215267528904871796100412822729430958741869026085001458866414388983601969850632163554216752558139466500724509634087889617341902455538838664099992732639993101772145741424703451358623550972515075141372541829813966479756619250038854423321696111754045827625100845373712466840581712181416958896396731331379497123768339124814819940886069444548772376716509891091332195741807189696404880840338041358945904707917814947958243809690811802593286607899491795755675439772085780774514398487836573707937424602603944293894555703590282163219869330175480402082302886819102560252336539833586143986080736873623365198869075969074006694564212800657339670226518033201523350994167175856760562399810753569054176208646033196352185328265844870636680552466391842055950009954161366869349207360219186253519852667589216277075678577688732373626057437808277240731691301496960662049348593685418974824594968227495119088964289935462419455672229367867589072914889059513749055268494514832214537462576250063545128113477710751393411268031622049774322217661593306930362549874737862468177901544667717626104427130238646499059095898416209869030377624772554353422340849035803767726576174062630791896079827082807013167315573929853181790680311459702010757571576850270465121978140953730996686040749071641163443664563362072185923533680187238968748866305732712958305636472863182017391068594149171231886726777241558993505640009273767298204941094201115302008654501596992614189324508223575700115598690031711477543556767330353436642787160921904186687650303672241949034424638567157731297199565087415961070799776331821179726275865083744752909326282214514106619388824595763716911651971460281394367410030138562513128249661238683088171686192472533422298505265284835180158123036138845564160395690495835587516766942400619214648198637161085948336716144063077882149157415734672236923355160643373182964530080886586073062875344563237617546922913488150024837463953175114730577647441687973300991861063474973442692704380267279229365539855555933207343961255221216659450095337655197385616522794965224222992353317749005288704415505824958049127445204533589900068857842685644468902593747798516603846635971138307959429483053581352997429815306144001315866483868859210712225419675134911983673578873851091289512903302186946864995346879527056302760628894413301993670550490362423000828188556407101745677330109881479990923297909106367705838884946566404373673510359417005408522300060625718251157929160270026812993264711959627680102590425529278054180850347588204535722649362148888388346909422871913174526690367372626024732010740559925308263525243080329617535293077489048508048239606752208917600938491308841461616751822211513491747045100070766303867254006480463134114390126874634953391213295598275159451515818384351596392829759371690923356081492803053783684786657086230782621036166000405579035604341495201424139180594213432436488661093802166150197576385706610324284972362487147413117780760654652674431291228416340723342820641508767783826362558315453366675636404995581552525893702485738090172245000788148943396349713761454945970057420728454251611710511814120454917225408350380742352132930445236878475997144105685948615905862658003600272721776072776008701179972450713935512015882321665586453987609085757859629732561295812318339167686477124662005746500381211846546680544143303488710519573491372858185371951690146678482911372671994106980344133036222685399281936856542350124149052289962432796656397754764006016710399125050113558533296557581934364347594833734695802302153502866082910544814971126980631759761427742339387634044087093653316180115056291449571836417216030630951201075246097468979198152539440020554565178074462330288205801317961424970621087684243539287492198877430065232073604479262116662377562354105538341883548046201854474945304625765390008252981370269930137758849165105296491772748440911670967069783395988053014741778830146485666715473432028823228557551345122590475704130328536104459557044825376194592589972663076496771809393418100359353085242575731736631376902072284727140837628824485485538827786116964811940349309010803643791830481715012057314616703459928084226427845624504737159601726256046419040338506473493228496694560654205089677291846916457009456580762895671587196352999049895952767334542009234065050859534609551177838395983845867013379578781124573006580615184382420397251303635278079805755794681915778260580151267768166392595116965110276232540794054993079090787506609860626466703694814910771507427218255173762807582108697307826755794700794317709626993106411293525438873802021922478825617798215135941865042029606056644269941076923809611326255930458930320480655517584566649529369603791201815095214604525083803136979205242591080958720002389801493509458509666777608256268793288223065756719111368436332019087411055736923245362596421876104543358405694912636470703240622521358677225153001922140251544499944418037068829449853076497697956207591231453837584344256982309214979384195090813859426930028228775971634360090784166404730495348983696436533031755256749946024128321993786653078566090549656994251599829649869349388243891260428951233840016309440517296638055154136030032621614636136183785216632926245889828342223073238478365181556743479245106088385273171521936459159139221248915483252401990821053865503379689304435734328707892613784715232997859114566839924925204804733232593235013146305992220464735296261561101877372376530617105776400821772153865155387777017931476637409383681578777192680231039433452935715461766809838950766223079942891939582034716781249110073023592098700556625953729579737726798020229809966499347155114740317871943061191632899560347292192775780361711908605614105241916392120492091552979261801477693295505949198761805895163289119982485637159258779600580361730743062133083172896260577057869321268927283426023106183639152920074127856579648183168490603738792048241317749481482264514717138255614186807706373379371794950757351621233914440518915409601986900300850079053417514486098709925339773251809996673164054480465167136612967698742699533962196337569455583891585334433008008751668346310743862387246223566900773961624345742278657083149253501581086937909214377950665712675548801957496513021759498424503691335670978025851848333966588023438961434288495100949291823824087350999706285091160641106302331489724828788647718820221451976696669225357438771604162359154313155014938121931003487983431022076860821455914914064513003512209838533196851352662806558768635007781193375682419422660909488524650754070142699273710990610472427013766817777090686142100912824367521006962114215935902586241635815324233078223519032836417147323945859531200594307887601737661203678082330735353642176560349150149781929760023435709271761814147106599070607348820120238950853912253497405301462602329837456203754620550333941012063013270511347044601854738092176919644711962715051889891660034026481174919143652914059775122554333620640606737275544173494988632997807295000357177461951652906494105152073807498202194755584370773668272147388962769427247571895884846825366646545535675561444972996807085198534903720491274132489326652524136650893169871208774672529534274053741992514796545522029887772800328168963801146552626819984174106761875793738658673865342279946558881518350479036650896498900675471516134231706837115829564685646624446304679537230012494010083526745402061141199943592031826487230825402939524793808730955421885042952342930248910716073810418400958348534355879759710002294859185437209394994492207222756541501512303869382937430965114327798461548701801327378947136834779507081048704850690692068672047264856358168367517408712102338068826231936309782970632165951124479316916168663617924712583366288120872437275066234123892133425515909772796014632715007721890568309294720884568780433171774227464646013855471665124949060167423589518373233645875333805642187448208795190938439130656116914848635605189902148332269177009879418291815134085571444475709656459608407649741245001011889581764928066474333887769378949046162040602920263783590663407009429312036795348343606205232447496881161421230254852980315448917632972836296511552123320899034421817992031398706645248512086179467238553229463993347714782182530810468176980827005042922487512080185715284680187697402754695518159330607115341256649819598325016033370194790035528248300253969183365402845332402913888927143550259351585543431501441434399236044259518101688634320247831507873882284515543217496605577163009589729447572296235561408909075072503727043840910439734104940901875626745834131228145207247521870386117699602925464691278073756273747951053060629766033191969843299437590633089340601182864467843566777425292705363751770244229481332916254829785903903759999577229462150077117502531821587468471724547811064859734064150821430007538836030582780862406488140887329175946519596478620884977285837860908473265363705226926089789697064374265990761126270680399701354739956943986957004306501006760204374462334942894762356290152312947287003148094288690400163966300066082838209918248005440207267038509732973168325755534718894526078241921523818519952834491866301019732814827494168014739423509973924231155748190022819654162450474937103330036365986137749341970035267105755370538623169605255195258114979998214745974577022609933642251778799426774905475691686866813635426963687259048134450594115879505637609118292127198860652957325506072798947105119291937712053336231942479528958011497288246330047503442221821437830347283914224070094331571595532550916752657201444375552570799330490657575598881049740055767096899228690252089564021063173667099506985612487417411603330134537324026813179609821020531784622544502528429992090735634247039593879043115713122811075710994357664863078088366493218351906864724590607656556101208348643428103829074103816542376028895967405937027756575109841397853152525921730590454245378580843670845933516033798332047138478531846663745958664698749844855082868649065775327838637464034213065470607028427797531774146799366454993473951617596114762269040442752105989885717990699024896322383542475018422594830734630433128281582129048687763693354132357474465895807802429677180563599757076363668328490296262683065052952837973647740659708611002310672031566168806264894869540371354836557042399269681331401980077447246044428573780107182879782661042406648931384461386338056993426792248033058167870024662046122041757979192521998620793576883051139546850599426645166910373033260605398382929339846622410245759775251280922061618900345512546023222459883381100318100405932091256489517917431722103884375116429295556022872558805291728499334848140205985583426994480404308083939465293931250335396042714320070876603799947918193356607144310524738788743606885409872916284999670992149945669193997452796617110447237172850195928328517121618447285095807205578688811885011229368176244686787063400132258819624890324237199987925875339310169526331021341959641948515237113260089499430950364671842421795409073784336859945174997813849904942401601150960475539192790104085944832771377280368327785215773884630975329590087314519019573335801557124222997234476241685077420149057051173472784346740769981097398654895315515412875710386431592157895900681113033428176846608516393690094474466217101854625610149450171960615559036906446287768024478815862279544703269618245186356235636536878784120312693108889498167877541590973872267844523585583001598543664050374654981930518349036688016691386335114178932109176671370112132717191605754985318767890444740870289949848163604068748172473855964961098963918446654430768625892738071792912268653309681604791089219369860197414304251834305736704586823202264522720969272394210320782372169499034770506789691222266550019695419913998558569569125651930388316830155333511264539086974587174175504084279951792087562975492225476833640427701290184595070622421947041301011492218046926097134530355263579964912598435686445189677591505736462861904972313679931456720455831092085986453062117650445388501836837644689521139433479616056977311301451508132100777296653691937530421471366414581862328074568420574454596626440780896081100972256427966957447552612014975634213121445827972278860032479600505000522517982537306315308875055855981234731132036570546834695094859627734400176668206337303837303481225684031717496975514556720504294727842476018311125194745433592393147691657996399564512205455598071827121055883516142345122568496852333502846550222903478129326215719781213689640930155706507511429946615869550017609396788138670852897555856699781469385571058954800369220635582129486693681380477127504676516288645467355895818850222479479801899740687610425853223443953947421056065751211032333737317837455434032068674936508191316909694365754939322653512239853282508795623111005852705639872385119070240033173478821985178790982655853402878491489677297173722487264676835365764546499587711585682517242681694053457206858843180124027107409068028501632147911545591131138025847007016074615178110544555498311513794152536728736814153299316255584659520753928687717384744462075787478405658134533166913156329243387789359373656895834547022109788969646967221964199898863960489362507322607740493078345199391424239353115177531126133577038083748932843739357217818375381531403194924725051345677901562221197037264364297627950920145652999114865661373031664410196844976746872736912149833316371417680809252611569146658879629573149050910993712928896266842166858444383700708606102000013940985272567317584216939990214392378206626490494806097955390340095121736287588843921036009526978436455226296203861221811242604750149086864004027264532475548174359167468674620133998521815699459426751920559757757409469401685983763411907436929503004954144979538522770671226048430724458722630604253621939853482152855620376680870567588768977397972445064685309420347082381952932099621367583083273295225861550397667729572418548258715621416391925317029312184088032222967584016444249175282852115166896285936210360319079610981591882545911076519840931400920454092957969229415310323523231129039637321353640005713557483089838316239698105658731445050475051645552784130451779229810554618050186326195489221213619179163913669115959625969397900194437303235427390651180135795330245672101570716609387970804249105474522122917790547416311154808089024831414034454273985370543192978805231477317813620622888736259311920674228863677908598719603016975063327633253857766053915950697812921135055841779078538719269220764744852802692796658403323105009446982290586698560803701203467752472851923758847818942625349688170351638123325451558703893478098204860159296519119674787728116816119816664082172318185462240584100520311290145519039617624216167980098916500450100599514196966845311048044432664776769696457935905125671402944236412405020304443412808723388464212649305814688477583022255269895739859100277574438331383204892632132161180735978547834257518236484759878972068017135239843117088536407019380826368822838308051976425703107485643650003599476941430659007545834248554752015571794532607324810074005698370255770610245579539055913487936323429707404272832400385530361118611712643062585014620516023278024392095943080472682238639191326026270223547370942495478877697383847756628244912966249362228742495623803145466098730540579241105948086238397926373049899896820032510518385448132338855340995386744076287062378045892440013647380237395443937724026339062761819152333792873619436193146211820455902526727299883110497106028393136297697941726404285962702289730829519165368262602682860385919713966355782962175391809668149689406984990291081836381583026854391320783894705725682579338518388063211521789264451797269039717660783899555154817951857412331965209350442047889313874217520668733545267842380127508954081292972158001609985527502886607685735835792486634832465581704043953656176068597234090491443221438526892439707054477153273553699662157897863382877786883466417278786318847079605248943922679408676408515886861556832018774671831066593988164295027059913654386964979802253476778969281227403480496583028830943203440840360018639074122528809345026114017081517689171073376988820323468026986539745079116023137400374038271970993980530161853515031971738694700706872779326175334252518395985702346353039256768356549710720775650922871329122395064114034180169606342560377139730212401834444539283123810808811023650500563228421871918922372479966045416560782524114618025317300209671104630457365611466986897612108501444614353063401455887263288413194523343768364194807555100124443515778949278987331377921268730772900979398797673234182304425169575213979319110786740650905089826319069459874585367535189599684174892531677830596723607704168009804861989561754062558722874485060134153430320818893958071889532301934613136912580815580965918109636166882853310227537512284452241933646956501568269198756730831455797633071745127405844249744603526600503912742807396228667413344697558249909649825760014069213730262140709257987420381252040545023391388752017257929168459423937628059615708727609767733357047987872440281532066462588206409357826325669273193968687425025010036187311048772911011243722005972959752181196987399234294630751908685617672608989107689479715048875660187260395382081241424333307426887740284348425791759699633973946038271698400585510567978545711589916274778530579901265626513805844110895449053180892887296058568469625176756116282604186239237047480583466991722744952838489517728747307855615988052437090508548358699329609921120524546550459260154918315755716581530358794756445811649837819409325802230893575600831942487372211680528125168855177626991157859252609415524787704726909799768010010102431893466541222798189876160677377341233110481827061007263966110333777914910429568995606513225522183631497738283495546305134747046652038470607335578181394986075739477130174560110782126994098894836460922984334558292206077125741847489348312401242798042987668299964994347388369873932287177349155516761176054199273044212887361387563437189614920845125492170509494755359599774362425986312552009782794087089034315896024549716627688124922287558785166872836852747747762830133192401754410503007128315961774464364167132786979305385039646760880271917252062485922296252078964768904877457111369172004535616728875478352642021090981869351818030906982135824278893820398155800077034833593772230077750080374019421233762852748100352667692208638371900267363699761498205578002029836432322565906041238290957034286734383490134627957408878894918310020107084376686923815577813315062687688951666911925441457667135493135338771281681598544235537214339594544187691948358286002056632322375475410074561681011967721952445862911097063509974214969600442740670736224182913849148381650971090407145472314240403841312308833377645115982570366592657800044583308198925050155105948873424290447957162328915817497641762538078431471422294629925560678752331071937999633381363663840089300751636279349246047276171195753680610411434037246373288509110833459170488579522774858053986561171392860164309857585403354246030097122235560344131896882695002646678771741841572573120691113926954508149488268177005162646709161605694415155335096722695136119643079997588385630164793794553650868304968120826505565350671435322574815186836608749592384944061558769042395850845340142209816164417379147648067403652026828542007905683853798445319597001354396391623438304385571870060007587175072501036543521396232403873697486790655003322415178172481986211554134241483882372378413364845313211186609280546462173798804084612064810272488214019811519124392070077168909187040765432256989782151828942250623826988876430184778570843936292137028156918903777594407896825998209224350631094644500917824585095679346366898114624608924182498272789985227451636632545731972144237048094001837884833963628903070737742071004590275047824360218932346904428114487443685645926411035996378316481606835820989020943014171302495051548774806324824931942281816386909781178662666140593609626538577874329415784435504294364844058538932066610232893565843947983201444889036563684711382127541970338409010084726531456256462583268007725598502725206854630902191787538732578188308121822110962876314314759864483789224537987498439512804201043366637242070745850238116280114763387620395160728840962463249360774164985470948192665016495442327618114288272333498317453410262836193949594137032840271758819608082691360556886671760298272610918029445192562293522495720851940165397676758919538916547709372310855882230550727725913470726818673092646666157087993872891248098475092520122716179330101656741767434358578643602431892767592113058973647693563756562843063043648821194781847825260604993784901129005425669538024921582132350932990350715355502570183225651584927853208381812989202460155349118362999200002875528796193513177305774466969195324743922907062229037539014427669985742468436967660866102317856152684303679558591672968161381189068086233007237445637693837269045676303230001070913479735498503181601313643860022280785724051794332555360880051903080852617781944142298229655556754470219512052588625493726758439243313730757356354362103001859584467518756958033166888314750117470366697573625732892848420899200370790425073287706597599163726348870193603939317970542819342994324783116190232791698235829080153305488199277541541579673154952428973845086520890823507315325646937904296053624226700305447526887343805582989657109535650596996025790198558192310269295185298711732798408916906575082062371413260335366636355106067043195475266080669560275499420363799857786107452178967924612046503481117271729121397343055374281699046631281252915086434061059438934293307198352476467124566272665744285383321142545887772815218025520244839410433864267435875500397914429306257744208809567109075717370432225341918086627123244950445826199031463044255387024021803410996637842616337315886699729185678293025443547598559451662507653126638250270251233069788200214348290745368397214444655033295541488898855728974778561407299075700777383805789646138362725043875612217760504850675147142544196724472938044865269731512058916622571694798401255938748971916689297413738645605776789540183920848499486315530040398113256901107448556020951178948986205127604070079996922505136022526668957719893813930017136978839657112747946849340201981334855786536808720948236076171882729932303127755922611673395773470469943022881873161806554740571871546129251354145458393790554899068262906400945264311976835426192455506436382930604771850191672048654702463446567301417204796262806187062949418960927985030735513710374312699837238401131270675734121653321155228074811078555335474889967716094977861247107182051140583924464832353665442561550879313115238346531543743086556834106167338146870527322727222829622365901721010597002927926348854241107505799586485077950671525756965798198384006515235372383313426181285506328247929291374758136474290098158588539283815743985217484424124456339308771678386495230029685471515149202785938536284653769992828436055542744490356422241412371510294753033257908595344869029036277445739490280651547878905635453262303196345940501779547460171368372558234712094603705343734854681835420939821993914253498813945697639974702496393978340652751083817294753453911552563706666203616446167212867228096807865335971500239867854419026071614952001335571779772724921677895653357402889193374674077367298786912267785174039033908894667268705908837361369607337733676092084701590749039309710903112802346748978913761187655884280445681054074748645986472280566877361564350267957792972285217063080477357976840579524205630332712677819844312108395658062933794407275686430980481106804279324767814198027951678100456796181569122132813038828844628923645745529453272942454225145098996061203407109106207264160645724311964059116748378642518445106080645136364916687764699914880431293111862770715911662017077266489033842016893460145628238446517413307915552514152739271619573587256251273790645795804150018455810741517149934301664038412614554820997291055833528287545663655396386029391102681446280603277101478461433283188062963029130380927275656076469063211403209355837471708060958005731141605317964395774894299093401386845480421566528718529884579885344708008924176857837187227759719912998014624331178351519120321506041708514853773796553813138740254514238001988721495653133949902332735692566008615912936637202826218971528027465993434885228008325340394989236058734609784193638388276288503997986497020740809468065006888523088103981757517859884193958734529865916960202200649844692402950664791975275724618859514393878821447311252106076869880924315030619280014234009658871859804772615144817403084321687520050824311317405239777204015078700338690331677916533018353045577167040364690944116946413168282077866112176973553860628646308123638083004872507762067193544364040146831310219645077883311873931363063931369633612326012757542476483389558442312335012898067845672619391113676955890241985423482798291101795717554209626385591359145104278080417259183136296580682100740144881153830150542611626726370490069377527262356283611408255058808210378972566203073202065478140362611075533122268356886581216132658612637430959581839225707528756322844050872569562999213154133026346366328984241818467547008267243205411214468903838709274643151845748867566540947811071700138373176528083616469402878414212299136910650042344861183841055735772133030067860205736021741680171513526557696019272926987480318277254441414848198343038890422714329074475029303961629837371901329296584821358956725817882194951459863054385914709336215906802132275922208961252771663589451463803807916754021638269193991387137516173024002591304984840473797430311933694771830660736269691905083301998309874032446537117711604931856893643120761667444892420704047969652013692586652970149903221477490310668701144506778060959358334222781540115194383533108948721624977448486063969749737011301825405572777208778884919345902140670960920379608762238648652956751043949434653023485813190222758001397588714542204266377416712334022578500455031075288980634750729950772017465471031265686392617274833656019169830971832468118644785347952047296080221780369256879033310275657479953794729658940992412874827384693156132436954846236238178753974026138383158887899538258433589568137066663529565530651371674851053979377255011813609129161482552226545102886801369886409312411102996761759487425876078730186640789739490095769200655888799505973809258191591936492195182442276877767613415630886152650669383017410000081363222198488289442867860772598378110734922965306587370836056127412411895751839264133955362667171415080577504396726227797536508615335992001454229171765647696080158487923243353171354676742384402198065529372862683538501860163347628932104514600352860442067454191662034184271978013026266026794829037028662904658120443667071565303759338187739143450438791779683064065536770449481889416272856861576572613231933100949903116092353043736669498345450320858702517212102028849934647431288167564609269142243878652305247542181666015147744493150219421960962592242027667015738184952477094775733675670732820039677921921006979495054917467297377587856887756931700992239544144522363106051671529151299754704812053247298881660399859874334956878424473907603103011922181522163614761570014469160294457417914705708939236201338077993942881211416588724169176869255673901643974990498763432924215931346012452540539854143616750349736591245773655978763273823477526039659640948326020022160708736507205015635787914713978715514432522136146924034268498720346666962862629615817908843033776878237225138604480166068808237350452487805101064036592256484660322248067350462202538637532413657383150313956191232070078830742267576608129136960579554939655302021428168465032565331803953873831152028121981962894197998169306035997950626615085750089894135048528629056203833621308484079998468124533278086462793482032700995547180276338697878497075627045519091241695675523502899695025754291557685091688195356156352798472142548630732884623666057983702374485599491579450209575067026230158654184886523293716392910188272604550566711194222695431217452240028928688422649947609362485457769839432977837092038953139581487817334791625505354216756284897477053825338350430002849555312692464651659507674858487030555223411610248120944782112730046604770557814688612652248882392711261287060842188032070934652897107389213211859998292299251779996346741276912399530715934909265487076690396472524208023339543100415148164254291281012469273825623374552219639121246234308394984555504901324290549259040616041459460824422912266050799965676111927215069796668749997587418698377990943304039231919356145203960763114184564850623109178417291718352737636584799206079779000335753640547736358290924303032893275830147503711749568184237524841261469384039498803480407327757167664317325066380074427733664445085585044345951775196338789374015250303641316764984869948921944218371609474095988441327543907607784968875163610019817675723633955272019514051512187792706359158828262714382953556273824452837689198675422514092008794028174727087134838702458143332421297883759611774978778825559538648010468132907406499237388736538557707517394027347690722675479845096180656754909809677156047103947390859018811539573540906879713987047826194852564794752479482471184333855488426781915296422177681884230409420280121554958466919990882981080510813449026383019108876021863972351378556562531378477110851123352228046599833616475730496331206955516921773678460593591650968348381885446857636964256608081991991274183899240270915143383088461759775586833289923671965574463755024932341778136409863445200932715756458991370570075110784230574441388107106005317067395849098620596202967949381217929972749475476842421557273561679739678226841354079311356468619941857312700399893432728273716301933463230791384118109049227440369706901186791921568291228748399110601693631891567899111031221671693493519212000376838781992871182385157898177544167240138820494707961268146611639834085658526790611763144692697863321135950929403048522712358099768743517158115052325452895397820316784775167992148208959686297832250303478419698045124638318375750413510175386537242111863314077964130322427870232315885097949823956954784469670863464759573071607557029217786551355874827933269965948760023714428914306187630280298332182418813562031098126697961635786086791659502241710922743488290468346778123535838228499116428287980643243957852830964547451948437829576364950353421052308125754914943351062608308868718213459042225318376009081568302754294889932222141666960802005596946376113884225139194328515850493285158141342262532860830168465605722956184331299222744809085813471322097382468635021884627374556054515902411923552088946681485992168576318301019298114118685114221669003694841130781758545504850272161559027612272981140655935133740660429511331160662345454172976848858290788839677741751259989149653940441201215551049309484304224604760191752321987041449266249096635128371643574739513430895705419134768646068335798987353738597316692876643056454507533728068789127779291015046785110858921169188222078132562875184515965326002466205991780760504733823457894571844268981619932376995406296730413334012365970229653215108066468394714029011172257763796916716315428733227083387755529883938004482241825179392892450972359394564019869148925716001840714565558974084631358268314363975797831277155930541109568570210315281029690243089567559763293548330340163991774032136404242445004460454989151905128133122427233886864745110208303650273637403883073923675552168493179709618495907131331240858444589069152807106071595873851570679156593410711253364813222409367663874386847633586072772071798642430562190968706719430870713841364573531704102655801635847815139254126555746321504087019910145410625357885658295779779787866285244972911905131914402905596405799394449533148850623985330805695321615133285025212654536405058610529085735033490001809741710613191674516495963188709203249479583186620451144214628032912973229433684453295264445180724111955048609942522016961717420957784930238532716297601704905865620869187302311768581441045474859634528387407972097962087403621836158133937656374368944938859060701715736151793948998533113043323439340481458462969886430922205847011196515184334251295213611234427760656677155222622568775802714925392063399460363116985058344235049323896902726470220017650521949944217385763609023552217501448375862997752438628355374629483885724007926882339837871000285072458012064145358942468394597405456028197045948895249298828631783104856194301751326274818796385871861855497592239033069776399644029801774746528519108863307465557666365601327485721454672598685687096281285682778170341808213793667640575220521771019672347910558900409696772930681565964758190650210820444166238180474504391724017542410656688161721526686257185674839861258991111971093552997829352021794333599417350949897759679373090242060758143460349877049403462367868006710446310225145358798776729855217859819109291294826916689898855889277395580099887302485600849181955107717601768725927804554184523678298898896802773085339129284895478886635057395498964799730785088142298424239795223738160332274252704211804915736343324075014242969907356779559913637104449108081154633255132512205080831511110678990574330265843445166589559867366649047735252129114735674612639681762555324172292860931246964139838283941952726162660060662995197362372194799090113911829534224178556853132603295952091823347997779757296828670503304527871955380383939306725905937016112389899523141537037378513920215174136455460333897594081159385347516789759011576173938896645749307226328982570785325279482105646291969905876130896736341286758262527854789656257962825667161992086246215436508764667330601420843261561768811662086209090072067347560110341999899993706564531624293381379305495365834198028251842718092868588758224025393781872804968251205041703717035335519289774843581238110304818621430107624980599787442117537370382555417837826119036215649507385635334456519854394856953339422549568728303200258448880008348722534608435279105014418314444358219167566930509576114391922038975907306793611880366829091051527672587098447844891818866308211508101939043878147350630363521108066675644362696483494940419989324172529300055986626684063720166163956747444856683718118945632315821925868419630384092932248487336903233394178644414479187856129869640977268855504932094145253182486418240406405007170018493113100479742796743494818184808516609353884918879434125842082949206590163168887795328617878886666702484608534609076980451461227983692924005899485093538511019148728206703350835419291701882137031854694493197015564995061554422797651006901683641740706422242543288889541037950702889887153002568356898044442661270068840737887586480665843829386135667490988718938192707894776177001080236429433965055254529973756927961485361436259227977733835413765021251907771217578651327978456861590516632642002605116183457044264164714611249665368655545186672477105717756699715827828919480710621158258229315725350752571968353736543224098615380409416461663259689251279305102903830899411158001210571172470814630937892712951876600341624279560656054100486004055360497470629781554499528361138429145383865383342801056359048308106149825428472625144647361794177452998982679019125936483881934273703025726850512520811664651277256428607733492714846017944644294287873327998383210057149699446906140444740854559424585462337795225336550001938147612016066466611807887188790219700223823509797436288332571489965272376720448688518122401315351275281026642488808292934570505043556885480119846811588198880644426353182337837335850469654948840872142312490718203010392201009356545461960819780381816543448112570074933542680781914063358639177502493511559074979223106151618877226372137468437717271044296129238274459784512163385801290096207586264019131287078427914264742496605791988435359972224898209448395874313700516751432648207460740997887502079399813397763402265703532496449399354238921862454780672675047129975227327931432211530648608683584018089370070509152529044586370679790024951227604058763030380029014308841667366468441176762445838312433833545799472528103572691307144396325240975749282716545507027360970830754109510920137887244115589186933137760100658249628914303869854139224369999628852500188782839010174029501639170156523392075718567981499778047013735415070814101999198844924690712964500503096392454477067611977145828591234132247420859267407154730303039282804929286468479814468480155285023947368734676522111133917254353576144762982142894454912656125062206283234234093527885332716848985161105409925715664905224494267867873362763814352282449046263629937723671819023711431284854458249891377267018103422443947159591474728762780764594096750339717471900446549271586466230142042315002728920461019954930041913900959252359816881346787579130535480938679372578592148218611620527948033197589087518165309194575730374611236672052067836151874639849230437743031439744333116911231172440523892088738445608197520557318997732874187634033922802892701375990512828433339720782277313804749866206415600466729109113858268688210393997554761622812947127197707453780593110648582205281984550909745479432296434703831858640898189156878408932925039460218484866890713930830231335911697670725429890767479880495464163236372849960955747461784579408222446532670756839502552207802763331222517681961162987382399563540678241050783483343927283956701756803553139160232469371475825119286252300798239071580422428988747091505667960709609230257886866031157669654777287658842054950821112066875505555714701049774679669756104822685043760788619232009364272224048113103459530424933918864749589567132710193173249482334952301047872227527199015725102976969310740086509323810887361871954522163230517177039036277190589825877154825242623295455401308169413590654791600531458115891321037233687679970078533045318177868301691823654752498687038414590186211899293667163972011082790393538154331674104288617480006829412360380937028606329848818009196212831367974272137363519858987189839344946214914525361739739862006003427017945720397530718787147750423247559488437104165675389448714415284401909914120174957239022813925851143231148499700756588043184129504334599037475144654679758841497873761788813846420046227987425701477471536703388554731387830184097863830610445751444874303947704023324428149573005700947095851334677826064323259726165603038324116292458595370334702451256856511150602513499618825224059615299399613539182870854265954826834568199143939382750100119769976528677214925108699496191161706897067754780368833411914129298799722695827817556745422518712519491107533470853283095192383030108808143658239898751666850160896076776820515473045676835552750254273144415264466588603612887330964363457105303358549528468484333127849430216033066730702804953665379830096522861927851387088434331824706268316027164767738459741552871538942030352673922270372156315952470948957781369860587769055019303562554893750109563345171923690963160338635696478831150200999326602606794763034139932723022890874835400758289831252711459063993414011922956784893491915141600824934687912587220702542154344630890040636265954949940005296919690500850847854792002638905375824994807206413935662050743732641694284465422080870185039668705227103953799678185693071916015373341174316142958523362723867162303098284324422969094780254855991202744165738941518894149603214265169606585337316484899213850982001748021266443858268663270192591238833588038336188754903220986741331651013066396904260558800516798128577417915232492452469702981109124239392292879413779770482665194398933779845155453388034986720108848812032959288278741475720044816297304996091094559006899909673194289494091670926028559510671162695684011202829015936157047636169869182976325386655811821321979809869286982674105127205095760498098935432231235900201006965375793256401052410891678597825626335943477835939637161021823338008635990203999944938861744624048772423146685540688074452380160392755778043953879780453934780810122039592507880138950770333332468696403405239937612136478039148886018043718112476000178148094865380684129437418648600500214985094940456933264843205002001147064946930450559161267696105875944608310700268546740335954592142356090596944799478841641678659090599458572127252753319262022006289468953911450620491629249288175126090276549755573795948246436834189598716060609567260907885605060499602665948124750128313564982516423725613186695852572045719885521800816002199207775801670935769906465286344019915922699158201125938787433074109713471616414649093284623891563003441868340033847111451025596544826255658967755127749399637920298850674490105637477045269694469608079483991371929726936001021574191888067185217436865535764719407202658630038632167535209665194911400347308332440730466417750255645997321344675991543234681843078760888761661348813160892303858583274118620655793094360092893318288856578175315163524936663782356663239483495425757358638459635323212209090713122682586917645197308316163933758102398607046019116595929557040699286058207814405710481922057340093048506580242863319410266405471417420464842805469032838442522123855923765112483712130807216432154690057943821970868761300412023197377164154602138812482997476176984248827173480145146965896267123587949203076676212999593790621311749510760351025405722098079074853437410208504809632233920241756907028437929938417670945542017067997825548299091150332728829094038954820826321005006376267231469380826685017603870734692562227030794298395575917610557682692697558629263863195997799524720901372680358912553673722576453519009395683670660970454998151608582349562827188334767985988582153200569290260835721108938287657810794182727683881072291476263530555096617245678091077678499441380044788164698439190596665631614666173118817355256618026719300581916099097208475454733626195812291404329126510836308701251848262899045090004236534971213867250900724721693313545836680596311049357828100335359303241672317643076660439652072707922022707857313115464263568791238442552723464264331510016237669288147441711987927353166062662125166847608458320352504529304882998480951611767690486635137653529364307443591439601048592802214815503437598854586681711172245237784807300878907723238068892071077261532235579524322664531297437662038879560232939988322053905023108154996884862441082984927242422172734801310756495919291703885214444034535735173251453734932797054058770133632633681939766858852602224366056716269961583739605160841225545162761838418397943805954079365645689553552713081363112690760250834662784408157083650961589500691307681405427083398782071552489540528088266497757531703646048229130958113598031108499885575371116543975528863281093922435694625001953967260762509721310651195038092059958442456236932329474693039878123719627863557307278120946529467898321888547104231886511194590933620628220720514998985107284625431844827763544087696264803157756564080943637646256219068603513413086585032831453692824910944582063994880947755502326353250763145037510486523822664446058555496019689547938555617822472625399762372389098274653005931227552542184069110376431819265915674129911993325013684466470926992269892868306345273537966873718001796729127101721886931926418863621935245494751259878517521103586815829777211473990588828465638657857795000190407780454067940752730362166710296652814344619156298069044934193332357522120298329620020008857626462169052013360530693329033175900305357348629309268598729863117159892128038431753880392856336778972575796895189561222835306136729805571378244135487108008636839085390180207607347930167328004416287516931416276360105022855850794762158375704769612074466826635319963563086409083934648910530050892417798520493177732672160260656590713855408144721032344259145764249943450994413975664306594731315490400835897210608940823272722364036171545963429052173032532006414236768241882411102897670940392629626653974862570048539580969808879929200682327975174728896955521611642257752550427942482214436947312469805421064729978777375421849413935207236260420495099704953794332730087851106435131058895349658634668822053702935824061179584034445069514298866775625324812014187969663367416804394231998550905270432303830651053654682426324371955751889195725661348458819446553245127028565584678846128682315225862301763293383487190178446900906932919761537876551691550212813155668219569740230021443482115929692620460649194406738853104744132106955835291191992585219350279703363026219367952107360522860492090427798145804199115804625957015469428102137911071488803084591781726854406886743083796957205932163480912830082697000606866353525804810828630587386742392739334070778021227956667576274830600492314551050289050008805172945589310553578799664257354762443611896627704181268487444513583511479793823116310119084537234046680050824971965598926351289226446347282809529564106216400741349404845687405977891330981153429343144784788962769363473815167401204563223552825136696878442129110270379570415899782475263194361105027769164151253145727710044672261629436048424294183525805308414319682602297876528349430310677590762544769057837417988824705617147115327875583507589548046977235034454858547266911694188631382903805435741702072011952758444370992048284678090162593322961158205372035612762551024505727517275017682126702178259942745731239334433561215093389810501824725685395732726206864606589074444700347432201835705817273511209805146361702510675764765643910494353179842068320855764322808193164855260334353800530608964065195595755519388547008498231186144445880256635035639715526590511599249779829879305943686356070749889713739095821185970297586504560847568274037444926261552780451645710125063393745614609474901069321002307252373698962382490475959117263092056401469848016652307244356323524232599437091513927558060564497978751662699228023186901459332127579866625648965550887664180410291608521906083166959717107145562571868517848494151407075727731857734809354722764888826785572105123533524287075673802616011059684756959922697117604643130158643350506971788846418372377621894623109444336367338029946710094713338239789652905143789719133910373831851947711488176027345209102450929683741107667163197026287006611055014419732464709364527823457506140832268217071997537677575551626560067825256024542029896773805964917056327441694384811156854686383449052243012031519983452659517077435566423528419476453882160593789355833943983323031695480105783920206058597412894772561677743857012227751890999347355480755406769539763570687641917552041608132891835402699775598650264777243647691196562093242587043968003202699501713025705011383532742130625937232727053904129090224206835019104075631757646440144396767159984572447453023170923812674392459788873808783699294112813073316812668916294997541145084953849621357467431008126602279648972684273336571234307470144882266066939317321754602502831479762783707306015216264757301360031566950282924245439594950851281726323456838205873545256078520121268673357075284090576293548574038351400718603272225615303118207826380522526320198163814732164498488086060245806943750044283150488959817157747906062980118886105413829201153260491975622524134840475950541091619592136821648580361119147339915869736100339735216376895207857071205418655069962033461852305620797734826067999991398959860461774334644635150796341143340443024260463169557979465253467566012781213897810719829167652486943215322328826374651981968804147863814841996701325360055391995831733652464284218825884399515263413458581416685786932024034628766231530049477478041648701324140503814356287552831500613252747781978487926754663466197548771422992674017206969592226609490823179740632274825897362145612305985113076029451144069462868339480480980308431754652466193752417815680150442468901895384373169787672930133072100256588488677811100654777789366388169097034000325105251372778047913212603727398834631316211766699525630706160903937553404670350859026080565569576786943504362228460530842045529247609031431907718664997941035708450067668530172316588642319300222095805633830011359298838668931709456513902844067620739774385448004578694984906541413770584170242072609127980266161201425411226921028521391118290205817589244939062864905547129237674874821000861363586741323859435966708866138168500013023369461497709614186347703379458898938995858007981486639426804462171327159073132915799585116638259574873696806803644224191444319283887968777345899478799522368487694954988849888658786978258599522702318289126920814293759499631340312051851063971662773623323852958465447081243012620491945259012642636940129175498282938541905412369914263188184606623580510548698988722680317571104036475395036123601932407148057840398230509300519545657293203554102462025502410731599225828728118410188151077978514856680757601187462663073432926188206634441418414711267283908699240066461200840874344051197400283331307713943427827668607308499878360856493675856614755198150951917614441529163086706979200619963956123207010269209405120095128777546471309132250110729789356203654042604226054249193172908649254714579201986839198179402735983728848801010909228157045110008454826143307965629475306241419693177415172496230864004723957172374946165250933917306807360342558084057821187436958861584447478268770306971191222690450980955884762350880298837228807415183838027801541568127405650968392349457927149435374266288917125033785802463216342147693073064239279847204684068503406376090378176743733482850420843797239393553170312176530794221608962230607495722405613741868466518305084045456348213870102034616604625321733792481297981421801148551542709956645174859473525604205632705277276195644608028118057591863501299046639819090471985730767209175931911278381295010182446448704973696862667449069408399151254271369248570944907074053914594310991876379335025454435414221619654018087356793314769142067286593385444458889239613882689578406424536711770318300348805605323158325812944770514208567408949027237719572356607786549512067550004557552044078823100420872777968022860177731566204134849051913141457323455166429440105184332191156436792984391260250989495346303781249155440931758445907645764626704986336454137485511995465354025226859177981649555859799207768813752549369160132876024839395822025825201208588750389207084779317286096632522828912995681310605529067656619963001479881328252562832198110118320259798271259516172058824901708306766443641465897156392379605570618982209069466122882085780565207428416807730955989981310202431788745565627192902942384122724012152003795329527226319810177474963005639700009072579909219697011121424438995779252200346780610711678575895445013981313037919205760702338630241488926460997677670089453534107271921294682697579207168665248825621245968888864442789597416114235210858421709878449592618639397267719676774637177304369947121641436260966751967479157606004424982960506442287497237521820456969200711632323609415557992370518001828267981365432296795218728911390315959281356981163615928402637588433113572533396980778040417184003710204694533932107117301176191129110051084822241374984576364095750895597135921590989798750827463877539562665179026573804338645297260456844463410618699639080185556303028069802547595807675454902727746498686011191591005735085921737261305795164525793501994795636513426413703449319047467997148201959116699724240347048853915728475364740755765674964115478649113599724115972538379197034633246863483710113533090307134778157688284402561239970267893444694064061081491921318572813210920556137861513582181545798835154234509495251935708339178753720117787830940930033123745084587450068773180150218089619442715265026046453339438112685417596406765841203531642870690148427122622548486977234573361124487226898146499354146963600288747722623171143975891725589292617555977267598586512155973771376599047229525414932496575599281292431453802212462378261759276703366869401894753120209803527541265834132126134214431523952594982950231944330906643179439735451722784028710415529601788261354346866949377433625674694865386553515967695832324490213287172167416450580761522011897695412726231026822846231127563545516154158322718314762314771346188076106113751804979318468247076222872067123564394570514492529518596904318723527832909605508768913954702491447117023040432045155775059725823367104246390615629519195977794758970983775392722415223931847420974050766200385335243708111284876937025428112609941076671060974412384980848591971838290853078918915985502327284997547102665387030841558776081228362657676780143285650687746673954386900984372788475044174470291206364372043385857408919360810595360597208251042975308261927122642691778375084030198740542567548305889329219350282239565495912748194150692121618498981022356438882331901596171293552391850370153816330212535282345453924382830621330327511670341927660431535423170927640841823364472364206233033248153159935990465044956636856627348511362966150509364494595193083165390506525173237021967500815542538981579792524531381254422669214352887165853234614624134368826508137159251380710645686397889882973327297974805959598484340985126680724908127139469286979376800983746972482352719400853886426243576770302990876610922303132927471627199316538844644117133533448342828021714737605145832866677682394494165821244913839327512600447656723557149148547344427425996512081968674031756607335282258548096150219700493098373385356722587415371958643640246356090838946139585986807583914177076360372360007580519278273392236855131316170014025836321945241339098822642863675185310760033902056135594987881535931790349403193238503529887902711446931405638625397033197765778804982314151716401999818937923947340642654758222553801802906009418244076260386699365578866549764559674827340147863150714695360043468068566296460692744314172283802297307755550274388442965678917575586153323577851677972345138829257367236527795045482779976950514056522994947175907760158856547760893455485479178192628397512002806644693510099333136766675510686208715141323322498785727462301510257125959193961231510357852935450052913193152700745559849249326031093526966468949987446732006603647206817637261035491591400175503118881658628558610046705102749157959571879260340253606260905496682649499519478523804493301292449811826273949672536003581389927518268775228811855091733221797063974255030627543447912599422920999507006908014218521210485132417384890419295790276760352430238123561167204001628345312516076817808469351104268300892984023482519244488811432167850437504875598812266238481291407747377440796968856740708221712138444905104359699834510825838641699348500542185705094680130186286783770055183215936186034500991922518054409031118294744187624084977091769731909042468328964297813605720204468476976960792271855386412522536965053817056806710393815466049333448263437935912358848115573312727968667737912413702989182224963384848830549450582322930443747189493914505742387926417092182100905158929288726643258431919018067108644124592524757381210110430842587975943594421690745444637931150617128436794541401060284217367674344700577229962116694577210036067322272107424906578215272958336003684320680091056295508896897519179276335330781802580296040142143565087312883117898861387650276161736919040796208881887593067931859168453898060202864658913161826569004367940611584980240206202079841476291457349626996804277806823395936494532253888384680711701409478724933642014564458307054212666985298388959087196211240494378611525694375411047305397998615810856127906459764137785708869441651249490109869917017706493631590756448494069321260013560666950112786599951813661585580840460359479240871330334941206674359747506184810899238144193595034124119392838540254645006917213120807073068723887310075660124696445073848673351361907929437132916680362240864716468007958339152431024801045761286099095548616404285031376260108533433133170671714608890547344128493197858888807369529363798392837122282928549431002304609894350001525747018670601968827414161636894740049424764235853662930528158431957483406736947956257290200246495021507498289897425693948486364004445540433839994554639349727525032080470100929415376770032293224368120029261600834458917809767620298473870196211515565040665769077492998913520714496554641116308815772842520415971792383762789276434858133682562622057221070380107745537007848174892601631712127574674467850328795021064804371215684016915827627305218349122124789436330704706691712343877174456765036627949692149663979841722744570273686158164454008916035692587869445280824018816517152754056725646041408853017625444080884185732522591654595087038490018273988703234140805077495172648970671091520019366423676949639705835330756602045459950501805575449179643656743849785040445483426490553010688227059258020152073506686957778886828591158710094770738674893079740720730712902565401005449364593193064578063030255242666448224918971431351567977223471430410563231786003588753591859805222227254626809286212250391173477856198401810928996292891340108012067712009456064550212265972831865543846031184255244319082886167619496862872419287703564287837392006534173553184781339215282329424094124250378897108593039122614533780768724392015544664240446650576353788682239515386245287262134331615892070642708409918151424375647132426871201115498623809718886653707848150624198453692441485231890840796727385770284854325858513830860467713899709626420446045248035430923479932803646918011828406619487723771348862620610202459167700389346980316098426672476476828941708726901841800079120074859486863440382756489659134679641560455031953985196960977498903091330853625393097759598645905322413958388732956096089734022671244725890344175956163048342296794922612096166515476714511100458647989153344902615763336595856716107323582006514500127369803583896686626009859926678384133347274607708118864642554957870481408143454882738550020645110742320676289407823425674411410866614287167368061343358074096287058245737672679492831300977511923776382135581037119135725506803632219509695040109755310572095606554855545896338305853716205565843563031599036466877583458813994467041657396888162420234534487542013993754134173488023391337144974247719897965471558087006925040179714796123418191871777626109898894895046239618612283446523033440825657396605370053143004024203239776343196004775646940195964651787144450379037815892698657269085828863142754072235884459153925937351806868637302265314616677442980781094500759258332968377980168400107710146973637906144475410311799239333918001629055260719233780016272002662204889338080835639022406411522709360500199511975973450484265242876686243380259729281263593225241505548583110514562743781016332715526458438103468307708489120805913369924626781075630892165658056512297939038282872756526550188243275661237316356315824833601508599169447522901981597395059917032874717820116262023131156167747201199586508983323328525275721678452730872445748154165966076796052712072471544356799160621769561692208154234360123442572846599292162624793201483932136494211644475294242475577477520848040621939189116978675047407266568719995114326302796788651228520002871586660443528588198463580550211947345540747223593572159205753592148601838076607893329396208288350000688549634785555879547325842796705336458210278188425293667677372244588356118686912371732584161527033790519562729466713685736799240621006049896498831282044050678704468603413890222627257671271303139749238602461838375401060549231125791111823903621261817862305426703412361193626601787825985600185627111988931943731074174659082145002026177226780229645721205650312459285002154191810944959889553127965943016553651846944187582494105923212377516472513233374312096940134197220482063604724136804874017174372908030240967032528397558799382923372379433657649871144397595801399691606998413143321809654133477498689604460808482001311494918296556025074913739281053223995720815118264698452643204418105687212730983199445652717001689919355911628958412619290183613600728202137439270529303340686010774366981133537388096145288482788633669480779271992485179385915600365215217385374637982783227044873054189283605592097875803212894798489248331370082397900080919051656193414127963177137189823421541819637652872821427205154717174596693290909380026178948545120894504294971356388516461753230519992992321963757105452031844208473781641465250931313782768885810103377484958291863076273854129676493453249011814069080463870646414058199359689019990795335730412814169515145508942596532539511293663242479791909176291922238272803690162311920842436660484510687297713247235787008810343524678493669994672054974609831564251705673168874618211994946044112712881583658772531251598330764089258093435843908910827126222318328448845141633787404631058739957362033954176723650316120758693037965066087753387672459288333573987466673059520957793765150353730906906961801901277587472017454700131812778557948389443612335160857622034807046561984626565929574213847851644549685133481941253664847637999102483674436022526152838626550674652237581046978620275992293690893054909612521957956208064670649290791172711765342547337398645381994511629276492231362597208202844195597515188751894859527416489929457538763848391308400032972967074563929460761375243785444446430595326034021500717013725489030618735477541163760966612194125388201968498626953547252954164237411587529924773078290639980854862373114763267560843537474757614493483862265876874352000456870169662584198910540983768240057918115911552688612098433948931721735870787463140280144134749052589088398382475042108072745231593423005290326665460752606254661882275079932933928496124885801009437042883385046141402659612186122460084524208718034567090591555910204121249025782238172866720106281049938037554191104171371058425979060647364787718627386753451350571539375205477582625676709102089484690560046067125984766281525999504672508907450115036412095760826161588695454986860250782883762175044374896655093816529902337526805915648957441318523084429881295144614114077092888961810930727065553971709626655507136838232624470309324798016280017440744139309560346556607878297891575219677025527487344238018400651650999699470472536545380079811055564788177659338049312286249561061613404604459556236016738277167353922993535360913211325014402373463700031674505297019941862296039928465572346108800444629503876842558826013413719310864140683511893803587229416370835528151305946752719185360975055713515449273901594509093052484262383005339611085252846379980747204913688135775083867439799942304816341580283175493709286190730622137003074023946239605827999733137473067282800992853201754940974093904031562394420244993104385861743591153170420083245751550223870703863688650669222146481885627748781154438568013633283267149829142139414915719300346690024143841860246716991412924739961974124963898812800293157767199834446743025341561826109818690468027602899937983288433348169825738572502809245429888751371112709017605299823512140500898176481179755205251365698070380053983765254996964496076351787451894269601575989217087950065623971647978729073652430681207575583466210010180181226065260488313563414454040147714586452649191614513459832128014672468205964385772259941484384918240996181025960012358639266283624285903727587735546035482993768559386834711205182701216159784978353459901137186416700891570810741057214135958294940823492051786679977657144296898320620948600102704599012929803031866649667512124896651806228227543842510497718870201321780811828070786540482134312868061233122595685333492396932144759544011630334666313364589905713964637290496145282425983962630389741470589049477636530399134878312634626488895569720151141933756338969591215040888343759898462640318998093601346215090674408176086025694749065006310215136232445496579121162269188157235020017224410801443726491115587171185419511621180760550258210328878516376936989061880482444736255132610044957175104424406782474740786108474132887805863717272892139368297609364513874117966967696836670322628730223026730888267794087977888723029783667968215996931825209147480837585668023656462106864996138551719967002716308985602033051113649562120345235472560891546012146257112936494458637229061918606218390196763928825786108982155218970689344484362229697948867158833077934777565012207160278256523035590247503611067812015210173305542518620698293781732014285854000328241103567492867238856349058361287633426751999008439429015259966460147959881740204511162755915619969614331857858918772521490237354043438511364501194789313323294953637596758244762762480175036897727091474780282961969533154510601011581495835604129830120648296023043578472508105009457440123137481465411046536541484158420323032654449165457719043403099181650516443066310291603823254537100676340000185421755948650636432398685741947793539952934163511307127163985719794432051457625310139705424774410071432015647794134923371295096688584827026280517326810339733770380833038274696806351614116099108841203548523614384671593268146565153671938094208057102757002071605061563624100027536003464658700695195335197841971021555735318828760933465153846240886315411342690898910804030392497085837290175898014504652254389561021547943493835512133879874651626068190668468248097571093820407064248060257436116576586257380536348163752498593286663162724255907330711866559642959191435862590379907724899525067447032288515023607950255491694046911130756926701535135524165037218268518363978375817622052305327909633393599070150576224894596769658857687609249140638397962785076742677826806186121796985078453701977271865386033971529482886639975633710906418137376856839727404209322087992181391949139497173846655624410851244652502711562198341354574123251836010083421341994661048207962367234632366185807968543974847274823313071652310751889333879775767231173295909396796609572609508772356465747761476401409856483072218822699591325383245563750903947923882899108093998746931370194735770030631900346568631579003431945399258900803581417783378733461470578148051389241118037932691046543701681405307073559137605186120003903505515402363514871513390323818031647145751210817972947526602591309736716346487123648275805628653284742661724128549049163494756432282305981834324678195186093095283500004198229046496097205022082378048307341882015602071554124309139299789726792251579086386493432926257809147476670742475714887208055796388000741338454850282391668097810830056728391670150199362319697315913842019092441886863488037049167492400949974957352593358228315804111596983817584486530058972143428740524603954707133331164670415321846498920382132352639957473394958951709072290559929610084250257573100633468462748642720448334722622991687815935069501416605881075698107302041616497425003845848074953622950203386115385089410618499410161323942687338557184106351497153564282549380696649907872227314929885060023592684672176647667968277637585540474467876781076670587319015867451481045254220702529506678333812282265336102125966488368795912696177133904994191756318853288855920404241397400019918322549823802382806413011685579369010042698582534547669594257874499846556442939052776784898967028546699409346878136673504537138632882888085148716705214818804794963891645985195592997828383990887292142832657292382331561490189735543095591104128494121182994529892332963842190877086427417616376302683152070655473253218125758330512818216948079004846832302672110960017386852493124997699152082158418597195485801810783609766988540461869554294732341371503164838179742737448952698671108683705621811906063018884068974006170923598714172226003531499385999150466326258992372622560847860521209021115388304838026975049202287188636759413424820473640077399281294351818181351460154340731865637412214638543700531352934176390280701696475826780403859608673525550147838879795247827993205598142300986501040677041798637332652131421508423772491817226604038113064612460110404609585353372900102088452357657264464999809248773857354684397413728324573986036622978606262758497854839980772231764520424690566218849298419685636122356201458918730739189349566535908970504233155267124638980015291319364294152906561881833576290833931250993664033963086257876591891917338376176915168721004874830966913254677202253293333031897936428943341989543506087472746963692392810549202680088489164677281076148184331003397949629575940078391037799634388399354882147886479818100468617918673224748629994271516563411749786690211009574474893885909467508176312274916779359898762318344782506987940366290360485964518980498100433515910954848559681217812127961392083676865709876829365197460709360824270086855106437643926409218562738847820439682677703577694099933920293620927583806693769308467669485230362588539465054278370220595888415022344447714518215580050840560891637743434599705953488633012188688321199756539642116827006291163544709994845866264936724127671756800187034185124888811824387343736507381948517826537026467232251444258816790336256430834786075838685839400342781018144666298182016712524317566977959541800742953147512237024563496977534134120640903168219468735268286903921311016497183249670395250805973560887951218209995163933517011361746058491146439017662459554769688769433012236657092747911488179993540253865040331735551087193561026271348800848978184171448472989525735672007449711317133158102888439055070903935184800207184626866824996837532175426131810623838961420821453545369828836321008553264506435177324717931935479506827783552412049220015049605127439969443490623378732316501394321074287827814164172249135979832038144081063710286752095308484875379574626575710624006066877154028222699735688137074616597552646428368740315874258476465713888731757725286429914373221409939156266917844483891685998181932921746164576823857245648644684283478553814791445528892218069983166462564206297461758604784100724081586329859603428156082662781839130743555834518492822989310856271962221061390363634417183087017462472797697214506113894428999782510342755870372712096320507698990753290694394753040637526642774354575642132557375027243967230559692535949029788115524855119032569871820610311748212030526857460572807436436517189184771483701075288476419514484558807510340588561439753659912211370062887619991616876696606835669314252603250988019196149218636479049174948309180573544123714461563562814629835375020124242917122545409125106387958551242109978199100065656501317863174698626759738449596092200300834669903709209479354623124349886791514805037108542281511706195720390197741801882893212535901039699873800207299263638060208909410257527109094146336389427274490454472966700172100459822260458628385531961564175103326524181138210086289312134806094662441106102196773908132519356879431759648711886343151416739791140021415283837066091675740104028029684101960580619954460926958672907886972814863990187612038211549859582908350231381802028179454653489018457142007900514316350743167235785898788287656801131028783015841409844513112720188313222830530387625762395484900193085330334420521022602343091690555412325479867245980054483349907158237262281378998395120893885168463455778629933826042153039810346157098595484966725311770292491937616360289392989397540787793967096147160554838360108788524515491276731798138940249152266515169314957055113293399569949576715137435687234812351074489687775515413924225675616856401824685236643767077092277672696596325751861726895023180674094932582523010248225392453214465562429614508588355225935154927425718219623863136605185520768066409704939278682217159620873589077543835712640497852397255819305104762601048884283513030715629733303108753897989835732063951571700896224131630616697879253754479777723010953411108680580596621287108803523280279126948947655681018542270009268429097722952094535233700027393307963100109939449862406227934128805157390016296265477990567376468652524355571874642825795817175678787800006622544706460917455115125343746684290793494351559400016910059445219669293655404057105420538662074543847123458351276088798236500441518188150066761517730102221558605662408819930632906057100210015820262042621172907263430662731209010132727306640116676487674351107266429796239208338363142108848727016613518141154303239288235741247200045528740715892407218269207320579911145485186057218352295702263028092849694180072798619879188875824551152100497129653414473027974805381422794542407637182064643345003039078831922437163993119711759217988925738110761772501968420462918808799026685140313283373421657907295072836258974177019916761345225889285067689196548509819392889022462728029685416436033952606944238325725186863209089221020073844889776091111499411819881859958282034751964786933349671123322612450993877589021796981794171515776115291137403804622121066508589455418650082615005797601917581796168937887509419554458972614581036469109624628306243194552701937196918860765507077584737682698141156418934047177930632398418774887000927517733566398111364095343465975169970199771789560185801545850708021555666943235437636019616026621965560445825403861164370928560793789754584728432011304707050890844172036025312418276989887891320687307041722463955633673986286163016791412976072219467921912675090060671028148163744458382363179616832801295235189701711944566908687595157190597573637072392681665583444959822256558727343974153277120642948288970960939635636081634414695084487637769389729576172707055804334508011041502276990958757226389621911232265712164362784319833926756880891034135876495575264763652066428222452511949866615585572213091409054158894956712482331848547751061412675699222039436010178130678365666393008416741645100056496054937925584187499752170959992369867425502623177494046379720404812672996034937400774491358526553532242372623009881246906952024868945725411436977450277939597291316769304512637197672875634732904937275718960054354530470927958765769305161412023865293805596377446476391577859370135895055324128010054283924359080599641709208810833591247536030612652457988941365948549757945169893179483515098732907707907643678143571983957358322310183255176496766711790858389330544404785953145539201139830820060458817353059324322325214901819250292166906676117624000385343272700764288250052239023667844335533428867205590950715867679867751011128317604613344209981045003585188676451914083915264268791728410184150650119878035518847935554600385002210962512833809239639540916748997123507586256870403010554171448644528912144171416226988887611217869011140455708947619409527241701260208090511017473045147000031566913963660906617765041022144766538951713519881994416167084673367231754400166291503729210224979792739321062304348336403344731328969048116333984344523455566799565453304008675431694218550890124373705716064507401564562046835703642133134328850675067618401357694182834807235985339799447351957583980096732957085933136995524900529837543057819291965502328543452768385988959558225198658255240592757500728483937564254855895465540285663684880362618831011548522291862165430812166811853946807332488470129380086070333805540413213824357681105278380260123386359780239517425669088130644847562614085818432154832902748938784944030951000777980724659707907675238904953761216276397801777585509180388810555314792603989855676651141953734654202694968765275792289826419512701152147894964677622390889763842819493311669114552294943732300735169005490279027226031295225969889310532631421018717924250490880620060710000006149966600508416092703947265004811714578466458866875520712713339343484027225320519403871120308624217937039199035561147961779820568196987391058116991234785386020705103098731213135710741798898170085100171412515896307446045189194223015981371855065719843804271783514569756684396386968972204617443097709286937030643472641910697010810988571231042313516662058818595627438365081288610688626512716310069477379388566753201429184624311110803436451895878049346196439084477814144238665370827926754818581469943287914454245209588269237938810092621388551259377457787058726924676335023543112495976834043186079119974568113663196257371429454230434067250990814088342634797373277826321116139306702968075149849601689184044566038243241189097237442543314823851866418030769583417261063176505948767129931400082856862640313414081271267906447879220521809648940456425115672886684794741875087272685019300217515187772409186907529387766523163659706377567682571572709919720696067935137673186068272286532457034319303071800100649204049721314242687102274620013694340856282442796991620867266373582189091131848005599447860838369744074183214228565902209111645767009852789307273030541354565101174232141509032141147994322244602587180942420715265087010710043782277410376975474282404227698508097909975081139557542020151852024084408431229552636118508563646153032651908792412721148732822160131447238767063521644238543029549647642851065331148821265969601480120433704863449286520203919704565696157796167975367285989936007077556579087621516148637159377476795797544384838422368684470424319078819093048639860648572366976186970097023390561742373947628802242449798324110397311836419908996228456355212218451960517103022057207343707879619646456133965653169334906462091861273257884119616286119226266647276895361515211507474442951833898801959711097474122142321218315815732148110994129897270362232865192298561858649189777255709976209426509482127037021545271920079424888331249797463564264987349962271043201529433713826392562431118180430240047084304960932695444167792803254492311160927694358766506239603329881900932584344384899822354866386359787929023111167405639809008265665309950557865911650471591385840942040356659489280248361405895896816453149117406024851443348324947422596481053669953732027896605646051173887379662751265851417463833266038766219630244172669574481906883400546861012583633073960255060963094746481315230557486707201198081788843590280988267809572737129959942823097981933926078692786500880858983839035176798335149845184254121592666460391833730918358464141303240915247459759200745320773478765026747245964140849067321149598801743674414989532788671786656045297932207749123722861160066389775297092170814638045149600411539185794078399308872940143141615506012835496044034463828817680907467316200008193501935515964513256935295160566562763548527487758966814758248116787743465982832372085886237510798660492836454463822273468265571072936102289560036338922651184152724750856489433364747565297436811179775534657051614534807715918057301510237949932750538379954312008722105389970921853646409113894862888294291775083188398672887347864640221238093097340151208046907523925295156297109930986683976717913079676778826723137620570277295010743367522097994908433553937664785246654798452435375518645575239825991471483064881438909172750735754605027062779825566973485047437450642550012260819843256668138949366765212135241070563303299810151180562472450963466162780411663652998028560494040537092445567132708974287593355138092122727756562464174189467541333665647829478808408034662389921738846570402997586729994191677509966571021727291595394584357602173945590428688037304409538850868281187343639863135087925489452450857529649572288925769233602849344076225836327730326077652713224153878416588097981321659293977694800147081530607539171716791593298757518877186214360415833189066151481520125645500563506729909141723642189859939595830616157581783765220490970306965771215593413325897633487513176062397409576029661380140779943141579553242637445349108956585578819768629102170667527468824399607544070397992952681111971771913160197888880414000493566038135959232951403476699461585857950678491221141169738094810562475839480058017526974887619696747214906713355116674659794146192152662081293975781861117536223926344358761415463615949274231658835833793999679212089163643159005596275946464639355397377596176516892522108489223401513666156367433538079055022744695693009107297265224426586169578202840257692057107665862512465103722651984132150811003599807590098500252656545560605754914406980862128979560330337864271963062723322344085239313279350403446063511743683006029800451317425386398028698247271505953071489344720179394112086469644111454424624215372804602779480037779211709531418831390123381149357301844153216187940055721412277809725763138590707218576235178582153195333835128146295820619817992526226557672322664446494965848592572581105489855288323811040692576543055924127993083078645996742143960810467752559500516529807571098854188946210237131917868644518259851989434899801911626420228263225057957073721696714299753908871417555205392360266608207535220696458514324470918514656865960594061669993225655347036102760403871209231249532336085199107316296939761805856415773405756665137814569184212697691067397434579965690888692862576291394317397245121087981414525295422503774263423017740907299866262873165313505093290371843838437999259259716691661423295188992147275687994642369537520378371809981575903855937695646619233223659943291023092657254847547500598358474965915488106857229720055875412850866943177317118470823601854583747248301458073903734382980919029534728640104357234227405193945470314689832585211763313324537648134678278420881750889332312933500206986751355362261925263358565755040233252195609709131283639520347988809574404929693427792900969957979607151663593916371405495738135149390640819579363228268599370270737813460492193114233716494040719684712870691610606511334903207924560992921915898758068108195979002407538007750975745597841112200875022559041466321166081383150478883753423483953568035514265326136052329881907587665484305561519622304714251116068250282760287513540870422436847191199338853155838322966864292229672764359733809202447632783706581649324775239544090895559304561284003793030346317664092290796750444589094944548622996085641192351684174247756182993558036888012981464285578353244505079171245119567595417339577904108855133075503678070695763007202154819128238640394912714639088396160614937289507382870581030944991965509667970920042250399076174312319612800719122318859731227229049393497174857533553973793935769485196907917555381666900747687569359140529297807496700462904458417851546591839576183473608447112388172057226594659848942719116313813399367067746141584951952466195028016304702327468062315237455562554197736904130236936485266123025171958126054310493596277484303083929395625205636771828916601284841029123916485427705940482075439006826661222866852247121639631898593021644064469300260196743785639900272786383896667510082039401316146491854169509825290684285179632838371241417422832584454050596608982981398369822480113919701542110637776411349565202291301232001366190139121632111704386019355600133934692654585166537301805327106559043784121487962894811003045711857388652083333428133003338814761614651651584856799611124407534669667417542023182424676359196238882131599311248893382077403590199803903022416891895531378795372183846793490448394587331159678499006495139712520135792483671364516283732597929022182249523646804634372060294383118387829983009138468763331007311986841016700231998518541002250466981159272118888406873929301121706351240687715515657303593134340070481972902643605153752138094499311673264365242949453921916696839038348178508298204323141638052393060462206159654513408611656908385880869340486706257659777221462061354574072502277820609410716013836340724347785881415936759014299033252683897063045347914784172210628456272755631289056556624238016322035808929855080925557213209869258897119917253125937236426837080280039873228922579411602410717132717944314501523918439430558695970757113842096438503523636894436801204454251840330113341655064964146633630937609409305797091216502051899332607294789335765103350455448506283375208022932098485011786387635436071509356337534314818014141162787419479777340859657913169916567191550328028484886114435800789783702525602471562001513102617407547743958547033544637674168758242955395440991946303983315186395093460573684996841166879785134973694961391381856236703491726443817909169350521367967386533661173147326861203047450384534777527588099119745453218471598207299782208191611192561907902163677602366819158942714057536744519654945430311323991550618567796625440871782545387278264596645652583705071598667389839852698640641347952175014076350384145090474227196342905985195146245709990410541814370250077597482185945725562748095603132154922750015603232380322822766595869741192052141910150649225459082006791438166066205713090068389970645950904278464499045855037570357966399504223752271547437015328998437034443101724426787763204310004503064202107387340850011711979252958441937508841116647308294818451728212200776790987393357185912184975512516391594384144537228386669392978464237788951537078566394201603377832166053461007195539005785838373937374274276831996628824429803658912308780902639858193840419618037057069387433213090022728469869375148455725038715919861522631994450019003284227471680983815498712243282240889817935653453441607944259655262200302873322978419433469504523991653517984031122933297041844647309641377580814282858112367066009580091479864608063793821322452520793249738480902213252216008101501523310125344461236523351861609665343983369960862062259923919128743704906326227977881602243475517493597730284915634598032956457237636011202058351960824695481926348904583460999651422724901994024382690605605889469679290808579845862863770801241497848506106196260755001765477936924218597905108439167324803983032893567358664801361457990313343611904263144756767281979493753887320107308974361869030538778894491223591097781643822265010888804982226448448949464807845581508029163475930075503214986268247998273225987575819461486713895839424855113255430434553144838971634324276339038251774888537485778476484950636747753666699489363520985617492961997402250278567412264426749696063341322744125978223801517782132935966919085414457110951164336890169424156050394324418902729364172476783368135679708135409903634384454147092737550129275405754108857766053420605448871621603769074281967309459574168853756625602800252772975610170604966010186797800851687062275627572169887947440454110156960814992786108442023735099153067453111701360997385404739750810757258975180848198349717194127406759646919865618170865285860693659218093364221857318502725965845118760182020773354227508061511694423089405804859103717060436607448599168328280640369399054535196098789888298786516934643121346412033541364337071296156921279204798408159918920650017916061699007488381333684918976839081955153703306399364348124584712221828423103578508511469188233238530624183400819948235984912187890829017718332884502370676357005255176397327116287286668613443857792891292607672300661099717951304144321593853010505171562616570173826399476886078206516171202327800178186297740980375395808426343414040580597554726151361357640492102989607457335829728450100749222074900614659434412180954492494427100541921260627622535031187262945738817312248612193257034086138079727099778307347274215570048073714960792554161348324620888629169335989344918177674492277456917884914788850013023108469984534216524146445075055528441010124837773491614476814629811004820838190498998582337762786161465999346818988736433033364638331989368022867098943536461149154605434952618500131379046468386187463372368753269838988642058600337277355786905574295278652710568682638455055304170424720244834537182801492875706540513235004861834664614117608568022329597288891006443893903107189086889868032991105175908253837111234109511076332236588505011677852764086563046907518380711316070795491463079560955363131599781348361804907315833458812113817933703892558942539421241889860617380565293359128072329354855305491807814105308622990235968469777065582911032862802591719455071511963186642371093169578705312059156947947404824379552397774175899415169395632602324792279873908617344316502649604364755742097905780615240929643468589219734725366972387558149817615765053634933756552143055913821791691809684098381614627335627810679792010254464814088357711170555588590058772417330661902077164053476164416717329015836518614729083598441864455574120493376648662245227342369828746483065535841653983227293351022723531076092112512563070558443378276150234698952285584825806347615785563323022058367775163428330358388232935652342736078878109656438306173285140082790172209045883347406287207358679053533572947611456356064511356041937417553724282745231142644152207843083957674086169731882802415914240118898677704725356021883529287587152691697420273573428481547302047785588639022581001215705252815964833411815132402838710657484793171111038266686497420494493825157851796675973008869494111161681199136816292812940963865457848001699020686134870675697012761149068065696370627631790422050026128091160974563922988714720863278728110692062094046902552707458464400163639058283999101093065715443020601545495747149065001515298817799282851152907432529956104099561519802415704754805054912179873739276981019497217445091990063331973224778953540312969168762751580929269824963280778573733666328916801333384342340384026716569604743514458007601739986681401357674670669276277747331216774228343724426854061256771344873621570522592168734097992595182518850288705222956658577203705607733894836678377815846586114213777428344366328245414348619071350084204548761522494656094475372380560568524563304911243329158097031296727124074838345216914562512922632880685173492535143640012925206887997963583365583838114817428861670954553148678506672350791853576837110050078309632446612800202109384044549651233845299208504802374508008898423867845312867086864728274077299486808346892820114339510045650193745030485793757146548017794646208087588393775535208295951126391084326973458952656037469040517595398148709759866154102422099343970869876639682433508615662571132048848173922605372830918944653175269052351511437256720160145812396188420987087017190547394946898429467816898347852865391401028305446272265896289032656827589311582817970954532712263740767516608369535798075938102026178038905495333633778668912698797939267544158459097804148834390524502579336418062766534608267393732941540957317563451843936255132544159866222638566078772182086065947539626062342098431003394583787549739269268532233438366550865842640983143929037221460329780644417287429376351622397607749280186458157757236463931564800527200898679604944214669883071739197926263827902854490775244317414184680144529602051238454732568152119095256991763692033441783720692078788761277209130420342202436151451030725955981322524192643478239607709843016604581275521879994326268645781929699418594665312905110942682809071732031010230851938333577096677326874788876031084608238998420132088258131149501692391298435929333220564045561332818535996482755948721922138199208803160660893347018802891970630075306616383150645610075465277069427077767148436051070441503626011197671855133720072625461542351496179581783991344487243375936623337228747889266234167797171626527758482810177651083055600193666680471163713793082630039478288851343514272906605135562078863779631816681809439509808571297361851257230725899396245580332970836105076022016046022837489123480969275422469254832748992366418817780762229273817499526006852742818331234499736488423582766649526372054565252143746429641560869871977304919460116954562879356213543995809404503017931215652353768372921904987167679247708729708295503665852986047973593388603142903131863792397222777567449679002321466493114178060538671452661548088237770916666185990518657547448052138877352806504048144486177907643807969800878169381494601281273602562629738801828703559299214063693550193377780743190762078481479263475931377040977483974635363040318531692467778044874697775023987188270707817148406823598124720615678038866731834649431790253523634231400947685841519096129591471710279917563872706544229779391378580341547739170256483484318105353702200208079204036580811773531055357288628390874820221126867301402244119357008885194892422357674143883327455141125299232694975235684655602846210148093412916973128314017065459986249439250003383861935987307540428686679155393646233345225802773036205169450407891755650159126517048251508277348399913580365739441380589336637187632286087744065228464992020884115699392957813476638396325463642863913529116901532260088882216098277525204258865207193812377090991192640930310036177981313625361577259994516277873711990767067860017910346078354220794572143651194203533007133673341828246140115547241896918470546218140918650366684178935698213942778780030770877387765318231356514706574645101649317836319002961318281917981256572294717714367852417936361116574208563983506645948725274308367926450064967376061131494208132497817183513121134594524584175798393503816074824179317112738928647905915049224230569406230014399235460721349571040850756017752829467215402503477282699607353119700461297495365692889089487388696738805284720462198587191081182579466505901302534965932224619970496144452648509916373648112186980445564203088772928283829445446845672517966745103729900312822523310442407836397067175582871152744095393195925778581745972470496252763612352593609786173869883075888182135647231976315785332873775388663010670676340772916405095778087836403130828371607540684936319959175622607287710744617177486987756724233955321248072326944459891188349064296223887558629466031656099477943065274634747798438463449195737360250009821368196830980351008414962519806674379723293865360584538648345828971469724512032517891747280863186423605411665543406643523924142477632533777450443099210853395719943087855180426204148234523168496966945784235354755344477278846913452159415470483975159589687543405596478961299962432357527396609096626441726576196102723654092449325247087620623431537800060597763728341351746615892324658559580354522572472189053797893518597614367154629384903118968908538320731399439913773717039066798700518136657907602270187747764642101340753297182473724432886811888775068021295203013054958859811261315555410387475404048979409934693649131534796645168252715127027639496034370900477123490133334399516592700254368762144217213506881754003140036694347689423521331227349826077375755348951122550492567901091787364734744340073285390588389225020899377996401267502982810296910069987997346769978308244544864246319030150349225429678657911455254059064613011877450859211160718845306271058997507021571369563620740833069053456672225564050062238929414138110123602022222609994762460403166342905167677457666839952896330880353085853223557796460884623761936872617416581341213834941406051765224519831677877509342389634710259506989364976935362625401691477193768997573784978022630591280699143206334637778371152039856350047203186495748767862712278058841058294244174964365036172305885566273507403960965475952742537684154826795721047793053433756086743947693838988918404409158373843865599020135731214896809619915660938088437711686414343973179721746050792257141345759035616475434160323117518795110582515580463724951855816430842783690956768502808027563862287841572870129203784448477337218727557624631091227583742545915856866027098183261317644770373650408121315059577053786318340648191526652452647337876371612454067902096676029692192473214055134723569009646218942491444677788083504061680192398999036646157079653324840004233104092916011211453572697674875362383780916580889641179581584057294604629430945305764571254985775083258561262427051742498691875068078402592292628664334935841244995819285129302325204185058675312458607344940229118271628379661154378256404267709009771120592700508702823681162332009523012537053033915613593138710744934971336115064607391949257330879174274807872570132103330185606489196055762554038825373730220891336907779949567457584541150550954504101222643649404817204696184590479265322571788874276064576477524892693406757558856380635184449967939777876949014265469770646089899769269005062459703757812181373991474356161641456118380017515602659113199076456624399851414271089360143324667657297719013699349727499176035194589455974923740179391891605169152020351676809552635999224771517542181116700335286044074916717154971872980691283209662117365131792722021020724648286380344744687885742310971265955109595592327052950571138111484143000651785576563959486805197427825552489618117615869342717456499363817045094738549592800049741600750203943907167114218245638208097207372408866430947409073767752945779460485160414572409212925980073433431874962275634230917911275225285676168324601205094319304799483618928321769797802147326543612506329116201976801359314501617328063216240219433650120622708166173817763471857149415222515151820533277171291316712127467576809540514802380224345445019258291764217426342226658477894894001468553457331177808789203112103222190569970714123810272903086679335160359625662009197366389365324993129841593171728646585252084671763861954814157655321828656512803081428115140875135585479220197413702234469562442342875119671136094747277703884449441724186225292465762437105486150389644542545266664952912185085803019881456994161902581762985181261232967655375763710018827599781770720260226694489126200938079689630190539730336157232474296352925505374357218255198913977681991876336279843513955122072349863651379473568434961377222820877887610744615177872872805497917563672098769603805624581497079554920660691327703302283261893952896904736821223647274722406186014535922583526237514456293772265477791182976234459719281722940887319077895822872494741330318391909403434374503961863523960635972874078039380996687482250153885416747584042210703385754584801030391948375753997152943629296089594650723538615367644173456277343008104728871422393040854237217350791509756231708227493949435705390788430499918061912915754317572641513361480461713837138908533152061951898138749987334502065793119171532086716909021742124515166898911169102786120373986380807727420228945066303656068775053465784818562897980658784456605367610141017696479227883231778581795635637410204709027103579194829596012628384060186783115009729526561885070092795686352366311058071169428671516877208101257551981589814276278056188852172125733468777085930062047193506698679542843755478644275828084044375063294982748452616055703689677388657974175303627160211085699776641098098904655570763178674271005866263112218966548983395861442807826489535136024451784658390596316540980752310837737424550973383969466311934658069522090151981590085511497218113280383043038456837053114004519847021786030413702213966971518667842715697632416739661515851798409929377081829572278689944523493455493905142305748900010385070773904257134051597989645015178190224872747588122630189957746201772406106569266389286692307519768816099295579125351027881817242807301918307794527311698435225863171380394383536429525596801672623321428662272946015261538688816347125275873737730479983066051292820481413660449743979810145900128295185630240273980804581908459033621986215465675372795201097752464145091922999167777544722310376974899346337979774367993263534132452264425828638316694838696554322250214688753100121795959714712786871444455722659212607632531868365967426823417062581774448780107127468390382780143975758982669992613063431171484836547582418537530493480013708531218730074365869593589411700820963942464749079065673870879338890111944410216401720302021463777639623321795660884368780497152460272839689468390304225811819699079562364995928977625531353628983159157677749104131563439096116817592909831089171025207012851205670963846401334993507633549676954179690183938142484721219941987387260220903272207661141248561560047192173494085749089517050352109415385249712262565653003588078497816468920576242222959903551582132705365898704769220757980742799353138457104125089181838424851340990872311401573680214686915189415308226755651145169106199604680002027555365164562706420990475056328150309108847762783772740878269964290823269916078833711268055711860705818051253447415524911672555204159160727914693369252294968126325407634451337199102466823868146111886609498793109257794862746933231215597842930652263634673368527587354603828475404299869641217652481665352126324939491564708678000568544310002311853620104986534820081350597413993710463957204293092230432558271712333638087776143979981939918416447059431107100069038151120483528328558686944910562564010490967255398441066636853470598997286576866337108753286007378573056465096488641995473445981170844791427037150316948756639611396307687684311640139221089741684912650956930844602655154995292505348770578733957869268075653221377091583162587468690677206104921364978728308906372348092578078421266602611708620474648636874763453706060435654475670059786318762448385755299957867427532805126303274445306588488456197634542568527452755070889923066431632440673948517182414877770710758451695234278700162985091935225163226387962308818222538785099570672046916801992979324995462634641745695423304388841688690829676382337633653473939309003872158416776226184584355160297217780678247953057525375069749302540624565615690142710973655305043312600066930342442120725840738469242498741090655474756159597522772961134928805251932996034532103226153766038649119757806147867305489771004084036866665576743299561729210392409115895054118722099729949205627225358316945081889148268596487598696994064278678709772207551584629211738198776985390927282931168697715499403213121528356673005181248443627157462815702843354186202298923832836889918504057805243056308464474578328076017239981997657815632606654585894418994170845039915172467637293268043240266477935947508805846154307227676039314150054613312021679811807063646942810574723576633139018014863737925038025160354322054806471885902733837415505165685241076400934232651390604897892399598579311816568098616084446461983745019418439422342965382668722499501398235292284364769151410186535485491185402294192589301523886842425886690466612561916565593367074135008746620768478396950019628156214041033510643052133909724758277252983961927655887886568340839219638600752964769333285549687015870040053571299758092078995410451039197337025883031229438233823593503348796860015514001836232923601330588676134109506484419481983305218906226882254914725273064354381751214729907576442889792980450745291438716152084557387724902300918469796690115756986454665828820182582296597039190630051864634555113467667133415547768309736171772601641381691728683080013790552834520033864971406825444040397869038621763825274568568596832857957235744010083771155927379562701042566246267250514970712380310368051073584150461773769301842475009998341716216631223180261630272450627895186708712852641183683194961769294450024492826689407556518352990707825226152522546426010628559170571820324269278073217934528920459941010010790137036014765325117370991824286876192355988812464710095839274709768814398919694295383748088326154658908709234988593184253080036670605107396335362928421415774425297415890698930295777605564132388745600669525921109982027614581882691407677806963443996395755071197629318546742568295840157459949403704099152258646130046184653342007875151343885982050758725187912288561966600327981231099470347460323386787218621720257348503346685783210455592420908214279499603828576128490908505211660602303006162124547321242156690406303022502237396040708107756897401162909907205643731683776411540039153087800105603472048478045488444454930804694678416262730396453729858547770796212946213063476959314155146790807081223134865767573291653809772596405790960664867938343204838090966555347168737253359538750240268766806772069269820113912141735439011775444185382949909670179575778548207777181331971818729703543205212075932438199916865096687650568255009070493893170561651141192763409160198511434385325506963956062070766732861385388792738181577905579583210981638622276581324307789068855218789474222564685596503272273305487252436849852563690863138487159519181300585387826174123417069539123681313972215337735228115361251022169025082918315928177587392818143396069960268866356082897176203746614495446156742883967706671171645864659688550615516529754576476260962620840091639478553423709081643912066243367130827557789160368911979542671283597568491366064960748751157793957771465347810705977325366896776202041465474309094230218499357838879514291007859228310449305693006709466254254074138957429083087132932782288767626437918235183213508881146637782597447729812223151627175254271734441076095274485742757668674435502699053679678805947157300473879646372059212139737319175624800386202984853180676802177608519215623710488275741585366105556494735377756028958556877503327865191970628602844806006354986439048960986804616578846359968299295994735976970523566278976916870540294842255679496528026762148458755495817928741562253169216517140255635048275567192965810833107405435830453509456544129674663515174938762537626900449658822249227028029183003420062843382642631058457909894693501640169146943235211530282875483965308226954831540480752633255314034609038584016413051243834730994438611490768942958758262644441089057432810412461370520838734349392911034428951432899053579512258692290559011169207660533902697038461842335399863903787000244387113105022660435536517937124789231334610383906437336937681443213343032870822487103952466482305311384133384879741157396856236663044263123535809769204387042391134713513472975470127565884786211839326188976172250036391133957707382984816364083558596056940143250760218474577940734657163543595208732949389304123412898385199673235179320658781119384550826829701788966125201767918592476023751579849361378258559400474972393492850283678685150722455580159018269635326711676127991632802357920211410066345462917058474612324636493738136279763504383445859416086230181322478905163521813736175130473308930409069514507369080358663754851905701828807612828563097353752502890702161358958136057441490724156227538945389068409001505657865116235760529664514443705465652909932767066504068511178310555353968611592454621469651102539467059943683895566982689761969955456304821108706819233179146925006496921450840104736073116105352691099975056175399721044166012195799824794194131083105761315478235555232406966131026106721835340636193593237793479475180494065631873671759985739850558396624960771196036722484703549271294700967076665160058757392526582286457963489879554542739911943310892880445513980266511880777040214541594696188003432760458385747376109581171014037903669300325171348537051831388758395231373146297007058680249930422533521935632839690994762978364146803589403206876419624937957313255604750943241899521551046327196720301959791329180447780645774772208611992049963777938340243099469208262744483625529938162051684759375104041384293001172303738470010991916206145758485809478226533312811119123745553646260823913326552602875048134305925219426988770990440899030932783265151052603914899910608524178227029546556872133517665404582621362086349769679672329421116552094131541657304623072598833034106747054660289616885622599257692963822068632958647455695076006820065016386524078457144030971330417423759741060233662784095533181325412509805206947404705265912762283361306885546792799239432805380609367119991579190094804342928725136700336670368970567737691188608577796454161493467414047476601816989584686708014420745902122555897882019327501046730935747763683778396481370800542294810620367964463319866381939741871839465060989586204745581459934070076518357897052042209631371244439223864768100079965096959146012024928992563901762429926755989898100327788572812375403745046055902404789773371491704561750243873166340233817480613886534166503818740013705726033690370540495076366513969366837289852386220064816506035070985078179677072494793831047803688779655602143228326397495050752075221520077069620746478692777751205982098240407102830370926863162137680698313051378140369675592538805493774146267625667850699650895120810268975858141805716396283276084381567534258998360838246358811855845235850721495289174356698872590735945847949854763769121464020878193117906972938386205735736067814732919456074587807470731509245759607654082164154385048768800197305202964949848480225563313705606307844591893853816738263179555485156990744070753468471530371954092206415221350747842813722250344894265235850160879815189178967174442135836693732173387822849293117982344677738680180224119577427770449109060252694983735998246149005932602771082650456730847347453062943115768721613264812908625274427918086264815448723487804090855942677661730791770594183935808723419742338803266619493285961718810496616684663734144557347972831524316683533184261687236513002276272088165811172998903010315392388179277889747999034100970215273741718003533513549048945080388635378869674702771226630786067563413321907783748694568629790821818581583941144817981596752523680204772715339672937352269343128063120590670161706046181909200619313014400183746723208233633116553441557649433967432043828340208284400568692148237684524795074793420056386734107007052843764131756624520615612542915562429943139015805740363126281996951203737373645725756840290335081250037856101771496921119133466383125280856430047702533170868939325971505795422145066173311811724386996860229262729708274029535878474659970645070958406650155384794401493291930486113033747320567892176036991538236559928642236564929706004246176815451938461458450026864211009746507934447429902204029543894226909999918069350511094050887750154946387218914923883351141311183594567776746078377548323116179586661753701654122008071083854140067603975185570085222762855723065943216091431602182420182764616223010112471459102812681427023715933560456567491049270702587315272879274239900149631631002363505882285929177061376354424484621627291587295245968177794292208955994102231823138309030161811087326136914238530245020608657430341711372547413668055998968826052323966860357454987691338428134974921039037338453973121417322485873172241395798964730048831169378371724365443678928518238153125721429025145399463985219030957264332238201787540661218984773840092904209069834149425002152692805132042814925987354951892947727086579821259337167185315118209494563225990658466799424374745521153439243144761368562419228702146235915207521345715130424479011338507893715043191828815834897635785538182469210633922123132125902667422047134231364498534329499163218566608685192637962990626336098039733103783769759636354614233169613834213793107554811019158765272740155257410087913843868357234553557416196635441411190555437585785379034699975677192494501906527637823310959244570000793867175355849245343644910617032067234190451315709761099379518772115070857717189299781250394221243926749278741589587152555885265898816022975718622398446415319851779589025839695313984060371661971326084633379184327476591771367230732176483535066705848091152616012050465938549849626933197857031740746211655124048563718794507988265133613786255453537319446054541833571447599684999860962810515183822403249446263454450666690263183744815078862520651072130294251562781202734954579375023993241758223982171885435759868438486533972248115500175597934449949434910127091630874914526963632394822926075836658270230934311868702667519046105805688575380995142286222105095432320335147630712023613051961381920116324678607446992363305747531409204272225478170101188220062487501373540766528410946314403776917958375608401312381267846487434432874462170656158815194457696742953751557279456795159428114046848631698516093419251103819621314125625615318911052798876204025995721140117708741780687053174371814811610780457998648611958780239818461127499728584585431657901520915489407898604818869298693858791026224244021964463556216155424303619248767548197469587161990504461315922849145326970079748393644623340480522596356843087753797539951495015305546837295392610972596763063916516166336722875973886618019431640142983309640037911002205202962354693603623722383630784001650770207061900298484359821977719046886085339567369927304405155290132916011423795937491210790095161530111119220067294045504967509929912916636860315759137314260884567580304940866473120281700478719896559093483900917476993788012351541310003885272391295731561405440296541853618397281239874797538114323684999916743931038924535029160839624277650328705709760126292651252741972243072495524874649828657177713168413943943790389336537959913444341992853518260391548369405241848889372337793153535151444821563753746709286251715574633703539770756069281064615362846583401124897225644150761274654004385814803470861814771598372298598171139292128490765059212622574975547369132155213957633717465900942665842368459473958904430916727165261187367958814460882352411369446250434240687654731573998724553157453213231455599373630646075800338700709821233943984781421527772697781196861920190649642413367905995010669790363432097754071987316910206503661768566056206066953003150755014602677100594945884269434276691476929604556104068410259903497253690315462653367739025005802012003498352457948811999652244568886903652580972609325580708135277524103024185258479565008300107044007570811668301548368504036073453386311777898011784604056263026216410325532034460300081157231239926584239284104361056193570372411749795081211947447497483804553967000934902613316212991521217950537613034485562234907651174911297420289787552963139351772437869009144464145383742359402713672555320953277218452215172539693665088876376356781712043779880032736377270456598873467615033975097712817469779937978013879530446372927717471113310821245946964661229410870668302259941020726737760414743089142944700999158525295295405752238815976543323844285131205177808871594600019747313343237203621796673011423352953469989373273524125702286004425693123788279042371249847405228948704485100470566282212820707441667848356454653214067181584358685814991913124414281627571859407132231532155713928185327336856645394177126377690244311985260769988876592744898919078854480592085303529209792684155620980714673040870320313245691801164492880638649377064500739893552829009233959831825769821879584704345891037419734803226590710743449792019559438990531790742828992113433546589232807890431051660145656041612779683513997368917167158356471181667348996118065865639279726565141082669644110593104474248991414179345824593907656079897789629440179251621994611137677676848232165234398487709122167233262900485923039668700426380203060580525319035725498217133788772500335769721895675962482984959574082139983590489261274369561021318950905947190302496343987415813183641968737880106182251481663597589376398658896286257663886461674176712037925837184074146370167666438536406523662936064936955425156793045180409568509603982804979930915293097256264890675850226757841784306547863233834737378051540259422272515313385523117063031391105287570944816236494004265661672787863443735445647585709014421186018830410207446251564069439000672605599974288054151163274270209921547037138789357359173664853661551667876648058285336260764260146600664731938782761948070632432242430421489852464830617470689700291099928498197164301831688725394555019511660099699934857107609923819917756038263696595630978380269225445771669021988870599048520206546023844190952466501012899499349023687106740710310060027771751562594702486888097496615031127357701684494152536225485134912351012717515223707486193994031814447094721789993993098193579170091405247277192030255386680624082381666825856270736318187446817178857278516801645264513170532275555957245353676014199160168896610958675495063640887757454865751514049348758688323546311437235088691439942935820426363746772627911532183100552353008925925688963538903022596573420101879169421023970451478827133776058865403664136969086201040445309573540824308194728646472642624632960429703580639413650047188756822994245563586547908298884507938994808973846519116342872308390098749486193543776296596566191335316029834464008473703946030111820465770950318047634649963269907434676617592732656941834570590071064666048016112142202756355657583180903728709987734220502076411851243465927974278067884084767359619024660753421180994926519006214408567955798450974597428679145379306120115297220281944591208464850331166519258567632026402130255779699604802611348680908106952130681514398248809778588724615524060655985948710782721770684936862910847426933303213962116873335217818662380872357155038988985019466766979485442227459779109356388969391912497935209039629668762484470006435996963289956924993524683177603134010826403457611532674668919701102299740167994398772500656084717880677971907627128988477553420187360165903510345315825645662415391555643165974006127158331448303954234331359357762172978923009010264822084999284994700308864679766861964594081636198499401475408213161121373572729422307518835784522171249406914672508918243656739960882893328785547703753089834712410575311068590551708985101626617828799114899450147921840206127485938039898496410015068426472179397700503274300237312953972241104090709451332682507029361078184064021458382682537181800308768569910588505791926403935780675378028461130004804295639051945999787769753363468540764703619497089332345928874295945488451218677133957711717209344513548686644709027312133945689117258090063635550854374354502902963063439178175176741809955244571459667302610956387906925563636175627225517948884333664918200640826278607493399866296654334731763730769633134575160773513561074737683520621449150784030134680264303736182644597581694988923364619996234637006876640538336469455272700227316989620455965467265722645162911613392944162397218778598660567643929308647787663072780220023747085922935901627103934042063643511732110367593033741417303814356865300169073214504391476882463680568460942580839659585610703912350721019918669443296922335131929704032087604621483474624304076299510841147630905259278827510923166065621449383065492408748996798878876534999234052815398017084861358588389378720768905769508603408453799323694027558754002703782277546782660916257546646888931493886915693293900422206392123227504406055922709854098087611938020662548172942392379062372127340207817205673282227688522808236170136674631929979468068106264938567990861953416221385044765800669284268792063297405174342359039604631711127414599308313133572288802288365690060887614238072306455653792465849801552356375714488863626180481856353685728759389459081577051876509963601315381843776784296610674051149831177929060243566564116932677333288986618242095553574683419871299179270607714899824875970260274975750737638061586353827296551423710000205100082794442052059902814749468285524903588186801479852999380528817558861357245080555910631255571129246953257236968380734171553035387772176089611586477183316879984380508026202294851561606809341623201534243245110707104887585973594537886251754494025319900761879315555121507789314212629786626766468940542974492555197912234197308031269119779488219459219151457370116818576360213996505515331501897043945827985921686897539281297160577748348850957944088491004390927203448763869844443049219952429180324939801473672607781545682008710908160281336144659496626535401093128290004676290180484870011946402393100281333424872767782940842556102200509986711443485536536338567763931985400199425772523525938883748328941194168092351307936744978310471202873882524816677606236061167416454353697597412952684794554107629307294716641365011307492106335007157628467345243182056273331641748319598693874510295751966311055474287992167189478609355328859065131332026571105619984276768987485344218974734319393632590951097636128980394588465117988228403941596145165561457534434530443609164271339019523078441624583114594370405160412412809180548374885697803048212585030834457838609381223476678733019246025299232705481536617959453406706668482877491408497256663250174401092905086931276030421491334097281812991894593096164159588118648841733025222179949858410449525977422919179298611922421858534325223775966302045038463500037347777964717116628111389079478261934315771986110812852514174225807707268650091606781272869595109064619691351135871618327875014651260695210363737855693903687910448302614889705408863762918116227354348320444138583075078080537608337322822944030696631750037863360903648157085313060457915196325205803490906649470994767995978824592407261617345194357684819316896435650943660030250696072560551557184391175565613473148923476114603073654933570985425348202190799066343911734904257534126094061096504347293181889152333210109243134412421342867965388277415061501611064352080345321722512810056021828163568727253747873466732750403499681022302939887622932285213315779382480921358385385677953999463342133593283878181969072274912571043162728973985963210883070943937768573682838905113180782777632433477564318649275862531691447755601030811803658592422690255854852907697921634334606815813160953036242126082575942716413744140070382985918891735879517103775282152394234020140184754349148391494744905208732566851674368767705719485787164938257111248238297153315666175690481515575718524773309339752048858376999294420484540580696302521666905283451756688508353838937545221662725124362980375529214954288618720339668936533755570051094548289464677887011612036421895598803499345259561161054738182121411715284352086327271452595427032299598243388006687818632491353321278673248804112673885205631435257696302171446577632827225069923898321075360475238839619150481603655042205724631996287570181863205436071356129318499419341902943394618309199622802172724386143892048906256516251688274990676346515178072251778240783833532734944328390204513771421710853106043752815425432520681653789454826974028183240111938189969791146717374486295004157489328038225127957041604134909458414323406814392580842022475541893066080161588195066137625771507850976291754714684357078105456961641568201840251201698786748518801547088911976750765809971530900259152284550803124692584049555778771411577174662251841907175164873763844282973839486673160989296506927385061173690540486189450817701985087636547668305441228070398238739965767193781281958474868088567764715809852292590712593920631981474314363337031284658061591122265515030180639621469329445165504073653795202210071569161061002386838035495644106104740267279649369538669501095002982102332833614225863729965118614624979031002021261590248366453054835808846034353288883035226992763570136582052940539648954024911464701279448758255412311376401989658250732246550053650292197300120337010154227401154674348682923853280145636047413936808358985248895203559008334879362511880861985566502102282964766571373388359605985458443988527959894929975405303029166245482706702481046140096456115279813655105736058703947893346288047895573466889717681479907784822732540060709950145237361042189529540425739784389595291651933118943182883772886748748414251040445151761205020748586035765467597278023263386542960017143749481937341569911971346380090682982328620019815381881402976766866064188302378017941917716095482514211006656115045809263250148999104310061104312122949921891104806222497131541389087807448811352821317951801240168288434518834651870812618237024811835307571859899795081633251829496759666700932161235566255520557748234477895191651931706703757380162332925082568801311476706992874449717545417041385772218360033370201308507083779941607828337691012361455703799307062862970571618475566999159079678569441747518539425214631905582059603649363843733078287076310794612664618588176567733694902418800089798882581213050384769074695498051929008391970486854990944308252793672966160966231852344985098747709694104911658456575033417995189794390534408216053352896828869790318807925182590036570447479132782688662379992417010648780358905668115577230905740695704136981591652824889410225666331724267297638835921638706342645923573105217709820870100883824629883515032126958982625305308156704622043050596558999460266296844911464537035541384767394082031935249066993641356146000287703384548066759827118209773438380319471271366673281566012574702029535187268317164537217722749523574130946413367881578834327196963042248239225832544629326194164200799283855954573945013079575480397543088357804816361206971398417297887849288377367495078331662996896622691751018930538422972552580566337381541596940513093498804887374451067677360141913088532345147467780774772052870809388704520090771944461061563778957512040958183261757234889489798795699629644300059605204970766536970232774889434649393156848997478517091847864706801230302542376342774481502706028461907763746054039592929891807883278526957363159547588622286088939879267900138068902353215223194424789145833632240298341755750970536088176232170154160702502538745129591718189792798112433214300836378457863912456719594486183411635968572373623225212380256488204890932574174907357006109208891109087907491471106990591112660950455417089742753781781313353746886490254968398112028725845283432418881298132081043493833450138495422830109497941892157533589513779261200079107908827983902956607182158055537356903369396976737938466414620153890792849322342827925684715052644627499232175135619986099858780833142280146589263441914058274647869841191765791869306663295336559919674261647959153660357319322937602209257310520497541388220346913385738689953187212424739694679942891286677621945830850250545749017394152487697421005567525013022182054087161247266190028409130891800844292635328256780479868244723532657011846062963139372599521589751562011285655947336468361569979698315095441868935509907457309398526548677919287978130993090353645952648654078238306491863703594986129864047257973813937305711857861776991167535098570965401028921553356361839367019110467456672195509065859983611381445223501580992049590598515397610405290067200905838475890609343317079955611099532660809641683940307423845667013811972235088957811093108596250611846482298382973301484642015477706431910867264181947428722212669012495023780772499033891795903836851565462357767759777642342429173799264062406098464760576124387268250836924439986489711431417708752926374106127971953565040620951418721537330486645650493184638966510884135931368032343525001493898143568322011261233749255839797217988906916805228687605507916920986355213329312059734033932701794802265585493773999898693270889216699396436823699198196240966674480527260063059931039158414069876264985508848236188597825432403835058751179998191082237820697229496379019774778704019989289251041842103826456813681495987063331487768065120226212530521903173483328063975254985154475148233595157235948126739230277792383287115718276243255760619210462729822748022844728208975181917740372245365138697866038396768129510717798507090633923478739865209968453215516681923445011894229796613622391614780270438174496024099452631136518779269368882671941752640857197567826286042438047356832741263711617052096442954657426585673267476522766595209261408341076968780901717836121458927991848345480909373861942765910706638107234518452486889453094912790442342278981506666579389834289376850122175513546909988044290124842583097030433963126025336719664646991681970629014132499567851512316834664190072042869956359796959997304971707749004993211122844818484682597664212100774330644488069558897906327375110753010288187030450281913380504012357419512863792118534446283183844723802644509617464453382430007387060772951039307780856099752145699229453897308359541745375160876854412834208157164123672895875713140303637168854452660250302069411680999656872046432936592366211287486154699734603240714032698389081691502170404488611532522740828837711661230617147792670189981691364258854894369035144622445736341937359827446392861115328266771522366226558530135750314181304063888840143843198663946891488911962515365142035547105040648567757764410528953830117057987055316171901940972253828258088518829224557189093659005344450460950924441750217432197550429524195130603381995845423033014391493699001787466133786535426048277648404742847981827982232894102816238492155369975183506893788017832445898421179999711267950080192405405198141112608702437254195933942163358378234254302743342043302614651640506125206560649930247957912345325132242479642106252870334519361246085283403689438334830103321480994319706514734452722193909589285746147951895389129287966120486241137543931013967367331586630474481043273610821705180389255374293162571313711307824778587552942242274264537691849164018212259262296964276992541991991463315318322910307908650681070070111913678969244707734969598619761629690982322914649884796926796109467301582893623921534671151703611469612809194178473779036495591300502254287488026419818110355043208114312088682808049464990796679432216922938412897613800800419364018566816150519164052632895409573547184655203905685589539044708400409981960961645888059537300314383382723732236173750943419197904562726939205574419340828430037896640939263656427967268949958489627487734230677224637447868380406548668379893350850064831501490901730984519227444313686543284799266592670195669569558856763588069617506722643232745610661776878248872043343974255516776877637523382703914448977688873323995494008613657522491809037137372558258155208306947720653774872321112575475847267748253812002840679715757660045115101616768068852756141059864628554377540396725744265506957959705953328215228081104629282037056220841041143868426786809034906853274704056342885052176133130458978088492086219641130677267410634211248308869980632567234363604540639360178671196148480976688940936063233079369865009679198848840754467197153606600884639604948963260614316745504458726467105241100469024048211136004901332499464999623469155065836708049374413057869394971307408325839315401822332098247957002409680639573175914027814776790590185472991410768037794452796890195628916338325198972959978090748057633030546520536859137377724546216921387225195059208624396806544105005704800629297291068538052199400463791159950977557097886626806576914416288561571068541363265073563953723266511415935308271267703546633478661842739547236934777611311237167540851491689238159779154267299503607173899288508482144341024671031696993107367111539231881661387302180629701647000195555018876263200970229102745097226208840573804714079998972313206398153951113137710782118179944356145698910667528276165317152610770421199576651468842449160099271548814559018563064665737287725730827485096254858932524234819517848958409755529098129676747887300273629009284975990263502598698299878219753875275074601735611697506222207705836180749130457599879593018983974536218254335362528366008553316586052593698754623733750783244828966075021979806491648423386295272048487333547217683139632043289360530331551855964435069752948701318913917850136746545691044138999374694527418489606162862272111825821158531069761476297223037009300944832614256978782945835616913870969388942594422689617058715221188491951219613778934552331641142495781850345463963535083881557096140213901855220372195421817700565511559457386522901795518368722611179901788655077437807103551764210616803702289720851016608393276532847228780195040507297060973901852016526534065676148648900250699419882946247526256586947892518346530349480660308133668667054408521014098443190859950832699100192761344961378195214921665626193456818189309272174719586800505687411843034499785541276960302121585499392534572349069713961952572779922941836910497378856086759629579971641778299339305331419925346021990801531764032997340724273009390927362091368639117201098488593162032655659348770226600042704885211410678833559745881826562053354981930821931999346574167378657737234939156751373983168709177170240996496742859702538557164450276637434798131955840851841079914909291800597297534945629203319712149454072201821496060386419487344099984497977374467920985829616690787537306632560213193459426193923457871888738174445285054862482086637951275113506288257477351734291862509459470365212648446398136888222216031835878563928197063491566521061772886653612044551964183745595376817869143040069441770241193681514161514991334509304075511647713244294778464639648297086017396711804760963845327946692166144309067068910770225356521521320840934502465335948780634217605879123605941884268496201701112701455627221920499542605976139858072371796806578166949038843002180518803089210580558548602916682988351131288265549350266998220336508292894284415356962367440924564740945854787731849175086089518739610375915540902342915779797776043196745775316118686044394087889692082070176677045080811229069658100986742608264730801018084660021245355520010184616793045888573596932804680051341052223276705345399678651618225257833669761205505954928672851998914275674166094292784027111532319016969587363342936764569600648722899996380782162949556279719831272911127996057210292723361197297261548654684509601480173300802648866461501410621662686053925435328211606339187229592716946685322180256995147284065599991158524807825090751621579890448091501721032305526951843675125954788069933200033923229657793242762880799306279002345251429927951275608609059805879818856507561445457888409718782102284864004208678297879677133232504737503316132878457031275297875378519740327728230649872556862876186822766101259950308513066695242063844552569364778333242712359998246918513745077670977618242834091406791141661012046203830401954528066890262985245123894148513850499224990303675240477722688413904688054353937404938727123926877138822707708715474827626448644155393963522039949534377509434265305434125447950173400539070758996633259651711273333520180802089053247045952330573345148704240620072761197946647263609709416788693703946089114111529045216545255641584285953897365995039324554877122806052701303417318176218211415009830741944631583831481916995149969463870378215518935804503650826940825922393895659798879760148659868118059737139380295295738988902046425932843241346558203282273694738127856720519426537183227768587308148612835014203205334910835869788239632736923685015319159901980625724685712120261008125041559128743029310135884921691276661113169611038091158422416867882846502935218573651767246932873634330354346313039401410939408135625491520023682754366364244995521587376007334643113349306222455224414988414245767650984800940243147216608503373228348920011199692184434380955759421525114960016479109496606099320130144667254695180110130322232970296697167930079913090039490133122676258643803355409572938037195967839269526494252578878858526353498240483042260260365110604177687924496189212248569368659460345968911724213677852743685708526951196899937937466057748677741960977795971968441415319522764450406775965648512757089824329855190748236283525267644738431769352637500713001748568720861576154922632226558165872541239003627376222821034973647786539365842739827135453333292781773905820352610024747547623921850818889800841781038785048822321086514225403869474815360586154835604414224426918953475365015086560185345318956933135491981452471007830079336483763775921284356523413771663147026841174033799657424829770686285448914806402637814453487529308228405630095165511845209359117746373712777949395818180356276556070863781899195681211523679874845965113279645451965087736461851090647355895225188772092506957630193532969874228853158839926978563047072976879914975322587749805830113243359215244609194671295977820665047559890388916779950912684985166924454173015397806565342644045323515426645410355644104437316761037268899463772547043307970484845385331691209819350259188283798702015648350486838017615100155732022252684105419764277594203337282656887218838974448035848948867893591605631754337827185131804129081083390918226247209723793996659289376723802139955214360120917064822948633952885782973325419349658584505552648218682539103268030869314605667903614770773338521756340485165330829574051569674996198601712336432186851127405899927119720721921542147716018255622976137222368925838629100205791321094028727408979795831073794176886672452874348784712152061904906921527876800435627756941253823578018892817764516522215352939629747802733591381849483893135059956287282236395841760060087593100188156606381454498841623310258300843173145520822507051145806138141783043781604895855744508877516542105994097377018597214505051837779749990529524844300621545587715275573142072902457879368886877395971506757737495157689343842268863827025306805526526982493012987411496787843040967491556562409063517544349855589919582443011922540263873455406187884713039554482196511759927024946561440728320189736791723230064251323127407333234701336204863303041396730089840688236473888301762262918257344958516013078914885420361227967684803329178340157303116379489495477884146451059805429826950667568439141929336655227396008579767533140138761518577970398425307087887692282970888789382308501095498249921562064322003206667007179704152252321409505398515149926360969069796825209412559674945804297497534621744620412780423283642447210614699019462177603301619235710624049947229671650863122309735694654899414635455361450035326164870176027993713046331438678753842230298151965523337153773902325523412855557740887479814868505406908113700605652963525158784978687589063781605260515467703622829619329997500413661440505454354615239900625868314025072801420586289978877006876855662080646881123889463464221990037614997383925446527582132166831369630660977473092614276274576172038763909478542641602553348142167085080481499914316305770747599867130447588346369100801835477131625515483952690458632769388007017921673546852284826122981483010036899527618294509942071521665037644380080040050198465573901615673124998953668148906611200120990981559578683067984573902194947575196873887969552580122421534785568970173987974954692724192877771597734621523708930543633708651447090533864126729985187125456413601904032133556047298220730244012935190848126910299131465265274438510780073122399451686552248358810370719125503481319922554068475156293325644389395181940563280265600662260808458413746475453538207506405603636015512013735674190794720300926848743890988536787280616045215258180552188177865934316008644972356083644149322418550499411596246399783611392235955228064704980983296936055685600657711975048667776536933935219957469306037187228825000362196061678787388040769393190566109766470267007604213770364729336449539723467453332005397093978244272668186901873086779358370354107150596338826708896296415254239291528990080513211460450428681498752190295534739254023806583209771095950500987888523710164826769974468681166897570238634171978486218103375627243252076878005564716134175558848434142618011296282089047425883904515021549342204884853911104829971339590944648980395407942639854596707263556911978831600265418679262034340818847735193926661900488135385970598452144460762409363226266361767291900251355719018773071096240172452882215686388548836383239394014819314955817110471253938343266561612192700163318603897060157587426352945080341778840849747739373274876085440703759507881495197891265535255309148054400192992715780596897757006700558321947227311485733214865599518427064832364552902838420982294065550481364324849062827687067543305374494841342632091382580200686057024057094714936481608305739036399786790919956079573870716058465589569091783325518587681489011613663350171439644551335181279072445044875111916683466728816038704381240662295312165310732316991011063715993114967234356748545275878552074756609836620888184093109800949591439353683978009326238008623695725884396966579905998204473736556701214302287459166947682102494840269652758312706207753106162467282218741291293482128829312895118145702470036116602089837329323557829103603476334983446274302117337704388962720050796924812268045795859736437678215798050265090990109549428371877367954866200764467546350677991400591869809307538469404758930747124690656377072813903383831249314252962574476171994585922156894369659946856354872348055743622342810274723201140280198254422014932389277717849506649236455680197413596485301351348805170300288877977804153103536352981023646209090906321084378066195456809723109068070161944249192244019327045789278300579175816763578118066551445807776641448803568896904827455181687770304223386668996452105692905147819147943328463263583109719888728164808403288437372131529897881607665571221411741186033391461032912497245642933162741074707670086987475031859463812093821149630513943875837702768762643034968901220175324133055389206134818012789339535515411512579135129361479209712974673377176101250328855385743888532807558170347363267582055459498877187051343497666400226299961469368619991063227529689606557921552986517394417379138247534777143975462288897788843234564957160003123531570973784490789856180325868187260724829593814681296001295314288484117998835853129319829110037734906009839354624669366798225009005060499147618050415845174104316363761865021250155903696921197492140876820904130157295758070640317157273624945929135292551944347754980437160314710664561711597512157547824823022350306777507186027914845940900914704091907339449288659557073813436952768890529458070663779883863747666109883762179612323649853879946858835747209285497623799801389221655967398839685938809762576062055346861007614416140477075900267435995840443851715827205381411223234748250966224984571289973688601054401556821214292970897579886179139199102992240740888967036909405908896304198256328854936859954692845171184877909178898197357381030744907256391281828997853950237307713947066601381720790610888160980404041678213712395751365099028342562959003932335233304549053429371115003933050778282753789491217995265507366418164428285769923624947826868540325054030771519151421816240165656358733502476803134001431650886196003673498900895566199453620556394561660457298054270709667719899475622777212458276541892288238745769793943877788866058583689948421107492014391428858518116532910214694700998091483913878617575715725026623541766003627370073558081571428941756100371248041567896996449091303541075860708538222998947850387324366562928963161700001488263942520797301605222841856188726790146835732881117545073095176431250479927947454654475191782130971723107343861198214290129530638639904432991647425389922880557773699715521402331266069661816845540539868442933409037310278508715482776053873473162280654015790332377552700797752106893497342636774571682946887940514099206561810190076650510692381330176628915762330932779660958907595348608705296132063275201419417360560658022429831766742409283605434772476193461642104995847838931305684348865959786039898615461367207613322243153655855172617993160574854939018195272504253056047765857882997306814028063865586314171017438909097300956262409647290509580706025166467629554872197125581197110864577707699120216142692865438559192588759226418680344060193639166546567671771017124910886119747184456810916369509063748332763643513169755942058977365488657288518477032216853032790664576403587643964948459829365986988968410475078264295521254618339156379416065882063257499638134938528602623963592632315999373576665420497038767260846933055232387977434329998870381262231233228046200261433059631632629376578545566241472962768930420070590241044542651115894069954775061110899424978608045843604970423210710569145516777964883744265291020960671884418831989223370871646637803025830094974423602556428231975896372569633396023861728961259110250596349750922733739894049783097681394237830826930066498248794133670925953103274308002209461614428303249742163901770381722367964774090100783828573847685114673190824689307066671106185763209318381072690500918403228476421795730320995783307640561695623084850100649819132468869744943368088940005759877946370830680320795167746342418863074898242103764107768727068876451107612283929402959952571268381094026503120178726013765021568938898792672291892433424556227650790779619336589135121966893712202909994797064994658920473413635981894331721566713383413358309415458319198740251954883811826580083810698486317408157027411489708465629824185184890068622944772731840395689863548766969358697187527537958860797419760177147084702440148064056738850654024849808364781546846919510911483952847585993209660504599150161882041492722127973731424571359185365924562985989371409896518499590532948150229876767964488364887247393659799184355300952207735550585132306166089752122681320541745826926770873799659453674243446353436127374801033468077521438577005255172793270449346168028930245047544433739622010572080051977460413208049802316819364532841396383507779751912809312512381628309471270264241676579298869295191095379826650404948455068749642323634855170794757690526395849070896389507244506472248961082196674710218923571633452280165730657837576069928353373517578818728230493263925373259578376305281276094423076972949184002520497884117894516422118786046655172515322274432065505019085336600296684633581437195377708759033055981035766227811871195876802086567919946614828006714626353261698613266171202521143391475179270394956438777123710664375645714928222101546322927194809176178681994493316075534925285594638709722161185505364740186379774873244575490757747357216416275999187040108172129059700972520695158095887331489749443791393257972244995070890107058116330335434233756129029022934334976088276181322624196931346816693280599534770469394316211441400181154764026985874626088414209174138354305872706467562713962965809112400382325796003147598164068698790662150862975529650992275369408575532865529911630177301320268034901027352157071192541207860829657851381521981042165693537630595093103145521659577641094556698078216302601620043378082538720460667886084898182298574403114509689749057302755913656807136608414733921201547383942252913996070999468282348202096598127661393776070594345505075262387811652062070051124514620517858615327587204184643958457773032243811555049008915074648918716462123750513024921853630255083334963612547898577945571409364469863637912798218028116675060999820655752480993369092401105783791900371940701259588035145833045504974301731773056815066406046636175364835038198924498579976912732452203499779596098385650007898593614484733762685482591138410033743106012765316630935188652863217453782335296758371612816441876389859554803867932989705110631295529112179865177317163778156902981313407192070512442261801110515055818595365152376568172292083218283687837756539922818031287146214070291451242949625545553553506816634925772134422915924781090474208324600000762191267573271841135038278963566021756793863463049142113994435687971300596741131010109820096615111518462678967077344770644133478075581558061368827486442481038716164692704034795992927854621852042146307628053965648452175316365687847641964040329456736048762282498849384671737596935971032404952208631601903361322916791083945941822694288977358062807599242893701999733403986604566373300576923434697602741823444688486334315636361435543488621472089592554378980026442050255402351051585191408945126465831436271353176377451721352922467079858756993639955288113851286074474121707875477391265889575990262865227951995017666837334120682719204161389157365942284775875766851044075855799399638781646599201450783182865116229793900112454134173481596989767253385597528101231433856238719472678529543803750200250353388950126298758525443622687526888294814048098885011526845802200031539566759490744828333640210930262623141926874883982397898162463501892451899973973867656773033927777065087089277063814289748573135050982489711581042127329085877052652028656420071237081502103250864084154811188888688850031125175043579400129596223796348147901405846432958175339771932236005899502579409191681029900475829252314294914435114751597277835040108690992030583354957516746045381547185605156575000304725335155664581666822756618592629622646061977199061182569936433176583630615553922383005582117322467045529266491486250216758883661457332473733470762054462868084328398179268758713352679282562740755350037126695743257637229875520170679191174128817258141783709197084249230544498121225137405429931157990952903089027976967721738825019607494240832577188014917287999018028402574648791469452038190855185608759552556428428052874242653820933054057704756813734731519532433842331118078965899561600843059418908836867149708643504121290692888410345935784802375137116057986795956517133746327495764190518323868714403380352420259023039442342447977518654668485025125151809456609851282219532755568093678560877925216531707650652644704765043087921227831404760844258272897963752129426373231463288833885866510890571966354906776190039814573749455348656339335312171891178332462951082055207619047887521430018860793972142530373251749508568631979837047798564393192942832315781683326031101039261826427432975815404223280477265909568142643394467720154772451506300885822817409314616188884506025525015407863160017589683318971054393548254863001357126591009308661185300037234998244388175383787558270642034386297712829191441585366221009532826300879988758277812070262323159190249945030140559574611344563168496682496408950903659641275582128390943078764410718139563009977461947060735665401869928371807734625327186543477544435874140434251759715674958837407655175220137279124072537763081185790418634113217825264378457771504277851476537392780529153550023182323896226757532596750335119143415223830893431485128110405551798000085382575118311049177042446108453796837237728099303602317936027500196201971141977482748510533609714303076669111277366090747934542853242749291509132066301446924234513885088380248187962968250904264892846934726422622168492092580883005162945955071502718203664898271821353369175126556285471867840739862128075486797166081573934940188238287661748383327444516683100884113965575182853810193870172199184577718792126152337259671341770965939454791979078483354712268250843902396003894632465064468341192657109791050290037831781009969522520436613200737316562923355741270323632412191903478032124594576610123461265775626402217482090770522822981948549502236199724336514978591633836651902544326866692089750768528391305048372650715144125909587347018871156109043517630315063407607746471341214671359526827779688817808539604340931870278561214952139667420949809624283447955405723071823875847519002193162471182953317373473471216438874325376923688730147051011022236477849108083390261849174421731057653972459916413159457061360764817405854986377887790659568239482582425475274839200107260885624553725997875363982007338954611299281140582205552263763877547726816756636425672063771492787437887313035937221514337997569407870505867014291729401362868171649639375632601168623675796596203578955431974640828457942407577848833755885771183872036918522614999093920544316175821347566004548289155534368168168622935922224837395056962546817589420542988242447924445520194447812735022149137803831606382136726212963670890269698215940766002020174948405167281964610318908446372678080768137794402917471527697269499076313765742339364240495167594554617032146708894937172596448444118481575659354779837832073424268690771859751296755576031163801636222695653745690459542195250332847571625465760889166352871234758964680393443941578436250233864855843049417338336154069164143555026557115545208849694089534640888494437732942662359921491432449426079543020891215542292720083948364614121862605746280249593245654066423984387724091197851163352181304081606018492794483969178926934742200452672739263598333736909460833231970090021818751857096806517938114804999527596873261940995106148100339939020613419315145527750543349794381940863336365214659180672641728399256023647695573640834262894466927690821881180810753049928394535422843256483267242863840833013423043453691707997384747331974864477988548578070436680814003395115531660882473044724236778380802463800057587883907015122297124448393446292479890731819063708744678762773663090865374159066203425477721826660174101117101435079946215069028578367476752517455578871483699079507617025291316360116037672888068972033541365077446721549032106035594133478124480060888067332351808520894814874615194742639121404617980374120307055919630784795858245541880929338351783622891036303415072030357357895103327064370532134182969756981804952772910607166960158784025898344583420455974890974818251485262540395878575103861380855271132084707992922953611201179731160182951027342062919473938322751238674792403491214536046135363203522466094329920377035233550971834010819908967531273561635611817696961298079614934556196256973954164645943151430811286244270797290207654345755155669882826758762104403300162726478271798555424350147280935620751621840807586985806044907696938601316221546407799412101528334202304672183278813049787473976685450473474587510723082062706307025065175969987899494492654904893825229164886382971110571667199043831197548549618060696189218413427929598982728768757521280346385131241366484776432440669733700839811475582941887349266249516931200368226390830664895481220746822832713768021006132519976680656857353229093176074348221381660200052022024005376068838452950777161775324995088869357589163875609325851254996542515425762821647008730006522289937177187767320593252158891659877719688765098610605620905344679827407335598833222596003369844806092019854772186262348790116181674833380906833961217423054872258306608272825970201747154916113850397784863809300237135922246428450424801301591656572788068951418192320997302127041918316550543280421286278892978588079716636820355520667106399715263773759092387501763729145989275521857582804029417070641123775449942319461047883990943558347442879662887261395128061295827917994732525223344602745984876007579397988980365553717849975428986497616371616796198784689355915979418874760407334958388133451359784294060428057474188396710667824870924498418219404774746590373481124944756059564459886580756379054002142999264546817758209041244666190325059648112649682580973925730964524628712854468084350874440597869267275782631637267626337513112842354688092881016454982495745642805805297791717800735513262756972207998987388997719466020864967796817029978477757143913178971678546082611284900304135445429079746233308884681206940964173270102751331087618055888658050547330016708207609080163224436477449327893915066187919311527507699568309646183424400482991520563449116844050355891496132500204022403815801766966420752882878448341379879154929313198022448705655427903432810392019090989246996968907739211799719882861178586258618115156864731643485852910939208121924816494264322284748129081454796083694952701710798316523972297552191125972759973738073664717835157392946279521779623042380458585294481662721740269556203763411763391607003422615055885671166766036593802849552518200154691885152333895827710171658182608506562689982815876230440230605279966766503507802517819296283143254202026529908607741497420589068088179684885971549684126617399052299953099877152800387749669620854250105474858088211099804251542396889408661452960062331556312957598401820888507103365725753259698778213355156079153530535260473175363439256270725163186294315295804146621691178808556357350424967762996856093995825041908288364017342662209701690987279551573482390436148999760886295140996804294278977038331516424814040856511243897615191117475506072248447613223153099121640189324088963249323674779422242930409821920281532961588784445885646456655772968733099205223180222668294426280488454770835064787664399074425308044672824053387134430606855706282093738982302314372995667765935646905819390798597812427101820611723344096117334777890508267912160980303252273504418106488599781394085038341515892368498187813798829531366397383795104464607408132149759453657889234456754947064002382131693984521027630948482613112569757454023021982304082865006824385075765012743468411840733199837921160847332734203756004701991988959937154862940568250403743685261550340737542030734671511989211926468233065994751774069518668053065706345902831529027201722621189118709924155871982966611711143132159756893510201879426718023928906960391892564092583549282849071750973725291693600120207963586197586901750248662379726964363803172630515894391722027105697433251676924746296236690119786126422360842839121229358639419520465464892433866323734281384315839825282274974501359168066654175672032266607760168607194258983497963001519680197023854786819882044919079879131998685613187156670330421064440730367128758803729177801870827320847109086625900732716829837661812498032225188584656525322025234050241056829505754211784463096296745970970170268834746211485217096734821762265793012551424486595701926873346517653289687732245927561371658327325169267225260170865517788735838995932382011792091992241126931074986025124473683290759520490524660650877450306314878977981858109616571010456540074913793849824297306810046399132434322318893579170341764721275054349113660862278880083436968084191151667069346264487824800494034716294443065456392259654931149907033534536588911436630568383186812077341385905986892357020442523901601341042051288903440757009479328996236621744007652403741020266891465600738324127498385949570769120747656507437741675343344119077816966195921456422969999366108658161655784680302707114480121767683761033507556595325975135848683765807875541570189073572446298893786872275899125658812788276014302250978822381330173821199557755118399455139873364366926682599771700675543686700320134632056259561961852447572093601202137201450201596115302251426985337179723151513327163442392505683076767620058459726609237399179476000991843703453289217593199469354702515966820597258142688979611884359117740522855334346384613455184843466368477110613669246681151244545414058695748581844252616533277618853846420487573564628482129996271619372678433366484084594489554612132300214803776292235634213111077186675250943791207568953124351740351343513316227153546862679633358253831929241468795198124661575180823201515328340478103103116341122758550958110374228771175051317778264737752355062422974982356160186397155546828525819916408548021000983111001583284479478947027682095275796961353547111388554308973622992144707495946143983379008144141480551936056475423108544204960027658395525036450949841765662056623714985813276404396804101464758578092705652694065465044372778921084129157866271160727740938595513353245249761305442731786900794002371181406674110257303060507278590515147069760737573036775619832152405416030526426406584889420245557314769035452083367102998443259031201474955471840015737121994908906962586266654906034066802908981117940171172800813845946055140239500633998766055138155287315459543364751745804239091517408774407956694030088862661440569358742169854457444883592887601454699745692597366250081034619286534307674905804751887464534197692274239486259826416066810983481953545421316283638627676217316899038065541513830525988535159641445214612547669073579492788497548163150663106458040539437537375276619787609770447939786488030226612657604120191131564637891045930723597550490415150853507039884949797172327938025203103938918811981964760949064956601791758987708416116423029814306380312662261006125395181116668999490598227127656276009348752391419038992465182064975377621371579486071728808738806200652747045424995887200195252400780482395358194662818743917480550530763474223603845449330911703415862348249637949452732152362847889281674301793287051537788664125409715542564017058474623724438798745891402286087657353673989600645384160313213387934675821127541426330906005255372506115725067978456987592815018462859171219373877480671968832742309184300930053560703388740177012722897723525266818332866129760051344005886847420123019158015164431863434562871809355316815109064388291580495037921609042707682317126390687835258109332951621620182033851870413281934422173764440340513555137846263016545837519784457400147038540216394449262561038121549847342975304814071408804351002412057054623243353228932161316254594580767785653030140284058522353220726764208987115478221661498501471663342030419888980364973154378424309548703872058334619534771252023706092282279570422356533681516551529115722196134149674944373229572411077959799727553035787059481665659091089077275988798328980335483565130612265921998835227259786351689103924302766955336944422879139939147647987086972270734195749208549023601724761649785192698715075157014246414207167971094935893398468478603277815226015905942190473965383565557872699159914897087165174872445998402076296600002281066020475157290238036501589755100745119800068193981993241387614237727459407843884117724430779491807586304756092778697606461452479304384411210849537289381568526470341547207090835234167175073125647071779876058101354963890768379253621802788358910238267056153750698646980816523753136662191280411610454113656375375799252083348127486080267730160690505207256121735789148686644331306938816788122982831787870644620034045828435587464825337701006310718842125743190821923006646043678197032279325302635487882796630772840547597789403434379316455076563750443010619950526018879178013063700973704007159891466374608223791301180614647991098897287535688755125306401446183148741862782919819248687310319303078163406411207399169576742469936507242741484381162478484118257909172213727611197500449938480470109722610252847970283022299774240713063465209525548590589979380378246183279475487592915746594204437688228618629718011853448226922986064463047416893082757038845590559126228054817354501179642046931577444468962382599156640259369243146891522442583469105045555950097309226780330090344526080688806307982673524870244150549857282263346397254810328691412537805570303198757167383047509234910692835866512171905066523870907286122248776029465407038943812485301113906371058026211382701339307999536199675449417608457818269198085706169845193662636217925971059339988345218652055268536073936603630102506313181196215369376319267310749095665671276505743022758019899762369643071838478440275916693292337891348736599266530066063155225870890783543450849722398183886078218230674423067898584535754577283034480928679500611348978911244968062787346631980853575761124793327120981773146338132147445216940934016709811943971166669725745650670360445397649195586611856275408330222905490160185522370234069578933943544434577917980627485581504835506379318763358254165270540504606734517417308582245028353976417880276623461479085491018711834333005572184088440478955143111867632681965048631972357087744626481577984487437020530619776365795439491369955836998211027160729065153069638126358320559955165260481811259637742057593658363740479227653259681619483378780483343548158957485285884170287093633839690424054488780251929272765886772136941760338299956308838495789106746333328160125614829506385185554810379462421143012373038620849995603816383409932257979678693697489082764756269541075523328640065535886901432757966584376894532749377608994168110229402622419176612908272907436362723392454154532862826847943585358015309353296189110164168186692000415465742312289263423636140430764368053967405523659320209093118536204953419470917473849829317664500033871500195357240338921081708818294551896787710266617846752684363870455755769687648807214222097838593293334011859431015696014068567472358907805652198802761228636588335812502970524262721619007572415522943078725622377997577766891058837617200281387938732179500392869879189323825606141763636359222845588801575066912302498131288423834140809216863209626601562894874590974137459589658861575442584538980042547074612598859706947900637025319234508294532449342974731807548237495200624276789182110831558323703427802238515028763844040935632098638099095292797882132594720686536838119447335113074948518462043708446615992570603321340442899159569753512212291040782727629735078884518813992238123531572225966863304109805610807397165627013513610135224419194274057115875078071832654565892550935827681758203402549063675504244233562967832680184047448563322240510173772297314567604257480427454417453122192561999271602856078840486232064260789458438361438054450785262425486982754077844820842057259617807738890298086125056637337507891158344398407913415577771706191879536217746777112655824547193452813962564382200599400082754807414026691124789993408526874789661663164758970033126449754330907046222630758543664979107502307796286757061314195717408685256934793451478001691788633628436268959602009454216857035515575220237641640662296336861033112386979604284013580629585452303409366964660222656590222325648392297319166492934444731980812552670832324604045518878013604961259622057928393048052601931503011037266161271767047244765679214967561318446483247153496995707200008172041907625226190500114879650032336100981244300958371051121197327929122532828757785952071777264020244087238429631742041589208566140594000011773532585496264121204208591838295398900164788105549902063921373981766049437012911465893448231813688158555014871905357439898982742037038473540905945355733899910573378979574378341797093104924679512412886146580777406288683463886450211761721117004240437367938441420480059409928016518815207768643256611519149490010531153069216179781132839489342693339040264060026476990368690136614959065407226900123671791316305398056772528828130433350029768962175790947815745957752898577759236213121412347532492764755119202720400915515466805570368371518112939139234890583546473072796978770578940058572105251297068814792384270217670812977143052132196938944197762479374111547864139875187597802700996034587220229931361402924684617843244111455093720470456673065822060910676085697186367858641466974916213910058080222826236773863741490833427312098064395139193883494742791803937413594481958663469254943132836642465570982001443854221817049056599233382724054904524313256198722461539839256599204528780076276227836867810726867937158004468904932604491774825134764561869698927171091026499751744944233334013598298363759702473178483017710485230555104759942228702703756979668593283195220281108066435099036362479760247303767891749534896666961550290063093864695099248007980887903558833221156672340960281419608301077965252850374660687460540514798956531537197717870605252368211585780730333354603841767533469998610081526420466943196821213416943027371083175915761786135331845776406278694683635687348357527791253096314341016529071985951939320153160246842753667037270151388379169578070247310360892397452449094523298431670823938824812326394999975683997592259484713905338980997063676385874188794132368393832698583437636505866805947658095475255355991865637501422347223616685859682578153186164669593003109579779362712644799714997710024462197829210309037540201949732815367019968239277894344327248563469319367608320889582810015920568710834090369467518874970444521157436642863691080977223672602261330815967104900514408467429277918807448430853673395525083697212568373872973029782290250447834891685155268630952166542484798631870148632424573831135605461327047240709063076799790302838651958280591657384414550381062138357660998293712515436350686303641686383169976550311277308672339251591613391640012665776624797098575401102283107646940260229604797788314119146299410189105264793419862449172506314402074046417367681494163246660405421625571987784454894038976012052852133534480273905182485439345906728716233956339795757633323677882973613542707432315797119525068010338236713590485901319253192629946509584659675633296652777686492248631241887989884673375545073564021174661187850815306653293574383427885787787417077975549191461674694371549786844494873431920643129049950113439427273502085790409770502816441032201966106240857416359964330889546103595493238095261726428101819526890438844457795898900837784269002543750658606065541592210377841169307577132061582356533876735458075559817050483511507640367853892171212357838759941695965194782052949765582909186317147533381609089795005975284685116867687702000476354873143637075277842057034296541068845429196182115668102069113074244739300275889483632652937568537808912318416487825825795170364407594981603708686746451666747347569351471913146794523783329331638193085355225519071637886237401477736583431104257822948653253656650649983101349709028824416524011289002239078735183444415873740187409896565912082949060211585738370750062168474901751110333723002882042524960464259149056122304918078995155947158697895978767174795902259329826678407489946614139116634022730778157015928382467896931916199268790284424480381994922549282046233183233367063859919494978180434323141539812671447144931508283583269448788285121926155365142244419737426455912612481191704317299401166293317370620794688662549731723459558923464618251399321184022236975267133405101019202151751299454471748079572121811169661514983688867932637391858230349997306922912132254766016158202757422884211232922371004357192718962582251788931453868171237831932291455011625964287219244780824333807593922907335000945167984820539536236954610124528667263404724102366843072450983958443172723959940073783294833428522447826278041097684759298529249749331298130664358466304046939347651777212302129376776051817205795472881829824791204196882490929000557529337054130053049249131726972842382120004715837770267115332395621529726528506836015576310223877414207973606139836145010272812988112466179192542090199109112009518310028603874944798070177526841747029150810290916439715690623933133360279537988568033311197346198650664853309364430000735981946481187735689127293170285927864545389926241080004697848129933369082658972827412634689998104504853669695388344910829846561350613210513087079160085910786775557364979578353135916315227469335456261513069565609863319419095213757220116285872747581813123180220041507715757122352481534859972330450090043533255877649207787411671788432694544942069860098035080941437334473616208104672228515265441287602207080938696190577765214940167927596112345244804565704631038214943064715552841218336030362294896869974834567897395577667449652042278853878609879257389552490575859641590103146101401681036132274663830164856521963245237622136191752090784060190920510130717076487794275730933656201105029256067580452874226915698440279359161231407527863269047146302957086799485295854089761557118558313372630373063478430829955042860182719531182938408034435451262260849344457973255014074254868897915916847757060477861466103313506095472474967362075875801451012666271061499594223361258249520471578642885510613686281588808228744710047091594710659924086178185141355357382170119873369690776485257807177336355977682164526457308019667060870047633064876044149774646213676885914622787903889174735203238327650465673117107997615668545997025398344939647428205891514289391246373470147153216961564356274321766271588382928295019787033733312712508395651714827160801499986997410276189079361203465844073000294715774463884829280158511400781339948384444122351635324749120962767147251788743816859407930043169803238471033187698257260524980630051494451110138739522673383738911635483553552170042692322686870863546684591941185252512967367875163989767862080528317085156620245153122116972192162396341096371645390761831302452773305874703424525686934910104938989250069267393407475696067658185392589845605941812116291453523501115855369535419564504744357913013828175391615540054543821593986733942855773417329229256298324761935373480278016910142982730203614771656943016233973276513195086650852425557772651275702139584950511039170591502455288308063707942244341511223847231445819780538544533819602012306041177842718917358272832303049946186775647035683736569876731745135013409237236968179295867575669130806570181610827973856668654476505592349187181439930279988064104538447933485498393595723337903494380715401987602716294822904910281441771924667524245831701517170495661828282243039450905859460852742908021643126807561280707166199618852169187100831651195610552869235384713134548683635903368911136844005339298939755276854871321385783964055908232946490215597178262277050810794762445314320423025410883449172154782240759942182482668228979871413113359502468103963947976094940161346954334663282788563252608427111198559282855361542755390257007561758659984004179803020741781915812763986805185683710342581480510977363700763340489026037248602878718736954171283530206121039205083456407602487922341295152694600575604537920412358219846786443280435916931605720747894415257562873600852405050782729393266159400917996934595590133209119493034015773511687784094230741082544022365879158517722451358279333903425659264528442178414173172330675650462052242543123979120521191864411117512219077433783458112152866103595761160321560764828827109202174931546985316265535378090599284442173910622369336472173681564684416080920920769150395273366689338509226682677084045155894519300921258937880603266121030560762021230681055490525819948311008101329707123984361771554498607881014342180845374714670509491695510864701489429025571476749904463810713921956373921285286356681341432473555236765978282640971706694309921164783788849970197998670706613161668416371361799433861044089229424480319320957161443088640627052607436928438963523797670593300548574494719659103700270429527570839006533080984961521682569827030993686233229342331328692451968824120383249027436144076396267070677959084889714618593456264202710892050893772884566600173987823777660252722485090621886996411830005871059903195357695269263398897164412634026034409038800583133466962558393389741067900480808057666026780853018862877050736437842345211856136649667473955156867883568235774142965596437572687124831531989006933716304791709940883402646793135521122355600725672098839443774752794245925327342573169778205850290990356356696099546925482594556129591685650834045297154103731763419005970452901345776963292837952498127008435801520462151653594891561730540172294951099658206871427763567896042873129895395877427100317097687902384041128566381528287140956940979085424877564412211106811473740561273968328839842580138285217842648490222925405555454824724918540638310317574100886197150180220371684923452717578433239030314973852922972872980824766048761350409294679728254298252413885223140871520807737373688880017394785775682908710118721059405439491891547227242387103140042532000558256621866088003552027612605131642200270555814198469571663339815950633088994901509165516043231859140412418575685518646389900121696249710833163868261897341644034909418737631655215614719946516626737162946678685188923099283376719292060511856375649837287420267387682767996840289189421002028421667141081512104103459226222533552631161388038713502026569761926620252946753767290811576080886307962699055575771900759772600660883663312649860164819059539530518951716527703051459888064625296896508262691643004177526050588236660891797743363394842599777178522606003100999359042092534239027147165624812534462002879001759610349901402643778677583741031379422591393645761391084828282553386236290395187399180828726559908179903437407888865391034875907936639721855618718871576054358047189649503699025563566363371114200731280999203912668048722174164180703034348808286265347294713888448241825286629993969191415469162991451555091716629887660877164545969936852719585233009132196904266826415027568092578717360326607769197112190092686467822288902254704636887094163961243804668047548550508402979701421059770219197546248956334372794104817297486326006191399367176346169504123285438164077078894030442740383665789005830914710372503104645749338136229885310825789393840752353799791321102912133023517139135468508375564446709427036376867095180299228880561847340004460753352789078981560990038657341650568164960894537102539265681204392647082196685048854935254109713412066553271242246157933912280435932997774496968329014119803810303101566210762677694577343916751358557744738993069325129436703696618586684406605117143405472802820814027232187880866607902810409897413564268143485075062158114905218222101578916681099421869894509561640519864650031087397087596885957633002335841660996470557206913296025527814628725386407613531403567248680469723827274807815913525766444938299978790260729266690456969886662002351628799605204863119678912036446015578437706969358661051851652456175151897740737894057475785549884197453469603753592704316100081504033371323992040708139435402294677388853302535730530556609244866509344798351909414892300984316436009754340669422340169959561995882938410871192564040055273326055290440666471597036670217818486372893539751232040941506587264462733364074209878862613273740850375005315111276981699666770535074592659481584961839179437501958660752833915326384458467882389310819480340761615827046851123498524665945296005444618635898925467897864447246688437146952360473958921378122289250465829267373530678655037232587004928343615310644318523787538344372610385859882718044488391301368056791595907066921885044303436697996463123207564830952416577752055517309921371101249875842911450991550361820760653089129310746328478356119611378275939752769888708796502143920950641294016341357564841658186440260677283013191729174387413425611172650480064073149479041235264069969156811642743687819099888256081045670252529324037816546402169464762073910434655152839589640683330645450976897407427164152604710517335635045307033828053324285691586834968440450364152810401453806826685172656877079131212916038976312239433534840459979798308565942208170686040020663092899205325376037129958550398835919764428780903087199203346146613940554984606742195158119901492625594303578886912257918215771424325049362441934773985434129705137796611562126548057829094080003960924872572508191982129263553092542789208653451643304888200676081319768013154513421812491706803241754395859093759354559509446931215888380136247455251413013760273283219230383422969732573431001110743432584196049633714443978277979045700971069394601475493794464779583774753381848166849508394706923352975494114182004789706437675672591613549984487280048023108049767742171606218168030761031921930860703945927022526463089106077967000870137920696759255279208502676620799127234305657509550526797175551986486036059709487266680196122999694621279216811665527337188800916460806395969029924332447014431187785386382008498184697092621034682785501081473161049163963367979074224354618846146969040050213010281969830793577465387878071561061007462443884309280228937941767770034195653501796457431451350335831682022866745802644356951254226841577042722375765715189876726506376912480260235129747273248785499665181223392121482602946176678790116303890380067056396987321935380130424365001846248963033876497107776208924662623402929440933555150981907354712157068027349301951091605707552182731991317747153971222788149790063249502311048282090446857396079125776245882415128978102632099825894161671122514276362810599749728064533025661178866662381995561153121306062305596317971867945604587237548062761282238588642147750357923366393574607392748649679348883388904574988906953263334430692379703056884150910938816547449638324933769297423432428541860115813361942767138548426246658347101465015796496963451245947110565908067640307222380642974641740367729803870150728739802342332044692206424989043278313070639118581263402219255542950576183610008864044177789448759494075169865240575522012463862924612638295340464244691112133817833663263571098902120519700103098585694999832241200193247101723486675522462231027170742682247812121597989720482820321182237393902659398837207008190019150493110063625860460791871071668307248361928826714348803040781204077075010378870486004616784671309719183378065587256058530725048532006811309967273513280782994291916671976263943121108655726994145792924474922719203361017914234660804391286448758076093410522159198530252693187526639230747611405553658133073474083571343461253220064700943127211800158505493732270562605172061677064594622158078550857412794066403888437600840906543480609431710060652419774079340671613426328675626578459543559932236995366858423481648035800371562683469521033221113005497536951030715093850909588693786137121622732503292052556777281233159435678277756621666415906067269424139787718518700744290658458264703342797404907365815458144289810823684545927174858322956334911926182852644176714685881560832196419388289915314671070444447596170797446055061433493513908583437155648520727480568786447904104770341603918222086852695402302921532199152242435264316139178050703673091678704443454131901501336099813114245776028906155344240020800598892728847849523470883867683705836661823343542878683436074204168946949812464979169052574956114603691211977886447997836829514813280682827355517223649362072946502847507684008077829552143234546280255645034635718805387892931389674224120011190551810441827941421801860663844431591272701250952315983587999379810390964496263731441508718523245009624860945541438342875155914681880983899391714724229976935773438996739855513353491780880288533524824952170304501329488946766668945287551727662394924430968442151017732928633105777277683371695189448494946099863431168571594735378344341772256507463968230817379990714550518663589676287821261953631307625576917981253020032154741727454139161168684743152504047275758840635580268690332994006861409379165355389312826599096165556520239592081512685712216051011739372593990057446441335979938344767347182343777970833995152079168412998178606484466990036060156009487033987781755306659028444102590103740919512401739457629502748385718666794877088948608622140637419914946546271124862466935015474447209033580807784414587728945107708921341980842398011851685785720300834920566838392379629808845932299641500850071805877213421066118136780337610969590059425380019629321755633192099476810152885336116795277992418664586727785691675590591548084468517955590384586101065426408049275108329688687641073464198653263220925964331993666190651448120139526091003929605141507050178213245846879478093867003507819719665631511979989116151945019436070949948432270299279959119138594356257620761533926880823066230654887088951697397906085720400724626032754923715161927932092707764792521838723085835474790007761445970266104335122832622694627115825293380146820203516971410706525917994649507334529315227903275201714665594601030495399655686737177315745140486344342835469511117416211092189073777253795584766101903161424417019215741176992452150996333554805678574071200712247037181565383988929669936087681208665966390563335049516118095283395380381803231627050122841665195270679940637004470348403236742022523405420007833042425632605792421153981376775062305487752241788051420217103767446288435125386922780196596377565785552290367898663795053741758845365492657834009527083995910346701339330302300085948243835798136885881390813531063620336383824139377980989954465797976776458222010461679126153949364704199554929507578703332550471576399752427060119796864466306303547865691169871331720920413501405804580476227626788455706818989106873845384928928413739585450142880175079592321499209574904201453470282425723367586236221337901203109219806886591150170904626277972065953635093920135159364180146312224797404577254213843625565947543324605310612058870870990623587309042725059944324357233628520835875691472479907252942447872573085222393700153848442678004401903880987996656540575015416704438039300961576233643443956235556580988590278059293741854938725431024660164617677381159053416262706826401644099168813097416205720251252375582451290277312990275218890800121114134887649504861962709384520177904007849780275533460371258693389174473910666562982538561606811634764422888816735252660214997161951048060794481803535024956688542910384426278081075718121338781849002295094273790620295314880478938025829482023960943428999963189513856696133286337683407262906341898048343263385779148187674691389317644370184029257658838093016891382588392174096310791583548347215157665097107297108502787339655835948103794330888382500081029532822547855651464980700557351934433981754418402464078142897192198133592113157332192251470781942165074476679523114078642081861864688306227665034471583187665170751655264490333192938343031532316357447857290121935111377697272468906223210280129117261016275046861875939244925869060630630940106187239375569304315583662155257780425230596851951067213818940119511245271294829451220473849222987125720855558345089450121550734641045003188793059407271139606180478026512383576978433721695331449954969359469455807005489672504261465969395412041473976177407867358802190348415707726860928534494715196169766491336397864536219263830422554476752024081689357243870118763244167305443146454009943715001919722719848822524970102546886163257948064640617603333616381412066329346913085362919261805209256713464915373632810442935955668184636636718331058548037941638402905790594124710879999151750708604966857366949582279777236729437309141313758996345493999970315098586691676734881570383140915585472290333648625762938344667233856164211854003022936962959613054921714475591125826901909392393644107335584362565371072890320222258370858355911075247522081611181741399757976505029558206094581949390266556385588319477493281039156846004774040914286012375058919088193116210026250672223343938884740976920228137942806408194577270602315036706642409651845747728734399970210485836619590287995147710199720171471394790417284272872227738336365707935067189550787643323591840323711087134182870841340295834481746093070296898910937499260858637673397273929447739741145566991409229203406744662967497507598684969891141058776538913557518509440947203984503823012195888842779501265943446250804913616435494930669294941987817940085059575652010263168141549826829972960422566878206649867024465902202442346701187725342234645005750019106886231409105665407630935394928711608228903559183361319728267005847976757914256939125219640359616821344180223173336067387373440049553778953652458984825691487216903949397000207696504383148777035028360995972095975977623571512797615840334788463472841154195381849914650482628659512884366824071995117152412876874963468186322229458760447874633230903073504254961616287664245987726382914491025172766908349948379897296354837446732775259676516793187719578754555249037624537140575405886157925069282457920870959579831491598467312833731718975867396332162922899111052078670904013089063471386230537315057693466922745436889606556664631865979959794555087823654597309389516848853721992663894168010183871090010369714508926379323675344789469872214886042386068556601032677034879869234202426218613397620248858657626354562832812147704199749106981699368307478167071921062594780465438895676537739325844460521824911295294128175345503829912096816174580004204567972905720433993703776465289180302765779186136756448992635985543021719499849530822043436034195285914290809467019718729924327998756328319694852403327595987309699476746029668931358624873535481846021717363813825833970961245200214196974449308226982251798230060419633248021941832509682223782669897341331810105321144187317902026973580242579421466128563780387282415608814273759232106072740265864429892002786065196797112474172674835926047466741575157532563392106734041736564973935805183821235238343940760829305445035169361382145149323433318866700793593322220280833725452584809432617045019329266945588738098439437706255089722944614143671473131880756106047268848423218203457124801676022074648376772189967139574688689933859728317981512740857213863454048367096754228240285901039081832192037264810751968986755840505655762088616951976657350693749132029417667592885532309504447005356398617662972732738589594865900906479416446726725332008822649728933869066471190913680293676375823864794309809194834325829876209642267005437109232612652708340849730510448289737966365798623263156084170921754489420873195367277120264224448989273261140992047071109070677823633317833787259813708601357516588331047801788170147024143742391361740696143068906894577053768335973206347588211672674635763410434274026803279344566330548706321659538842274140959817815294046684518142096491038341533731759096653470892370340543315914414433694763224037789357062023766764108631619812271381457913178748568388429136110914564774152738143330664842759989167305267147849153414857018014395011300561640625446895681044438825248761177830830397243451839127484637044278460039046671208138398427382035904342514781951935330268770889675142972602805707901440153525477256843262113540688972351001446813271029710097300898291960463772962981582344461789323927752185410750056761886501575535473541863893343242210463602563600183677860798143234256101178371127960816398504365860640272543855019945143377376575883342330414201684060916368983704527588248917618576619252133534741218323920298991851707712669844293600572275078106234573588573251745914417099490818880434504526631792136941168628971234421753551597330090620413541755344751236461301122762588377762621934612876001767088824315189663565576906607449094816303304906087934226007171416183522726815841691560734794978446817232445964400814097026985474856956775095517982440931312796611099655800459947682102373517303657640562255173355411056632472802447793842774991480238074424199677247322982597390644961354794616857285223556245160299356999603709530933469683014996961963018808864310526200904328835916769429022673021006165238750986016821775385354407549515285942951110225368955383916284589341619920076392686236338882409311269985114031055483697465907459206551930864631136702214081627350672107668943320939655933435910148811068744309748564752853849731087595106906798475475828951157386289593049605095525345396045386764533325601693100849329051434187524935584222436617382246596456787429149792550404157953591939599087732602689822114958315010564024605412521921285327573222100518259663216841626868791707191034949835048777671798964581091417314944565151313940261960447139474589440726624542194461314884483447872426184355871111014255752325829952379650390028618629999638837142829736089032314836345722946259285721210293055959125140913493667702281847771467164083904659011187554002906862529437603140282405318005087990256390956115006701796656978114827394328684994397267464158149278946006235131620727875498742250069328230564701797176069393590262479803295251619279316903292396814243100860522206943183768350152076364361439295998065406118698152388901885352447757007577140886642127066845331211092509822574711638901826416370816826118257036737837081643957676694344636340077302922852194058807500230688451942073117416852175863042310630572156074738002562628308712829873324643419659673978134548130677273017161733016005520360790391186651384291080422243525660624570700421867069709632028275208848693593398609341590429240338058266804577525328938034627773823095453774882585532692792436207341539938145796350416125262876959272243530078510902512237823909104385881819501436910988278195032376301570406654456870321186679374052396519628720126047287365713171963091801410119021920700855056847843436671339717612228919207384101906087936913483558934940572631308684202258421574438266216953127863402680328090807284618718909616541562607969535743674380732613206734144248402881367527850452973161825296188258161846266283007388983512347835454160413394267823779998974296693982283985479271544939385897930177853451136168198782861170498463537441591980677037322313137503911558586341912390501034251916124858499505902723636811266105652555359697185077801472959146150376414376127710652714903678419406971098954244499843819528413170474084642102566223040272821014131591451999022542887770848933218586023162245440114859892111191135498298963489981788847457334845340627801243965482243219773468928744598429382502580650169551986971926607840532294572709575027033813391852399280810385011258371327515098549103526103636061711496115660898333957424673515170984786661625030938580309216811685624359836438566853599403604618473907577522251089473397843927091729233517957235211562841353253151857054819791287932821882759734223968501072509592915079964240544995497348409240702893120213650826108532119721418045959237288548012841869306992026942868673710413353154596406347375718517666527069660834115211091560920985971360973926498234585346154170510529704720980267757777105152602546607447781873344879456454086690147274648831493197576321738881945758630512332957610819558382946840687406823242717571047102074411094590047842589221957439271192641140617784386277827606844595590139375025707062216221153849745848451988111453322844601348446052236345511970848559997801701241594968118018014316500838343990400990395067054387639983710922263995386806379862001999035794465191951786696238683326982499790231030485149052178316379912230993177214140136648645675884360573729331267890943150483299714923150059203346627330983605151660598597057454340843816190157349144499839547327212874069538960882283658086337584030037665888138450925248479258216198557498532416174626562885438641058150661233001928625097869793367780114202732151439198644031184807213636008283136693338881702271767230368939644163719915062161479771773376663840931899793527245322134083566549204764213537332470786539981011003912244778924389946945881247431086262462138838328832980787861561352275307862953445492111997017205952147642159655190483836261307211725385548833958593918002841181328012731578633177004860174088626183547404087163457286283978785244671518003719592491304605952313989457337174734787845811809108651054002484095024424098028126953224697740034514116056759792343196622688327464671118687534381785229104430965854824381709838770571154102249235066124758874074906249456904827509422624785523214065706052100683598173218738010628858036952818676633505253876224100408358079691491656549174597918089416558158284381237599716608691284491001654344428419935541233798661090896948192537586394060932041653828392611425744192696542642863967084403084216210136643828259126166661128301823909737361485921536682685359945022297740076263889052427022547560700550623949437986752717424141513740108109280365801077210629306119481195621043410271539071934997931734738369336053565143081711775256808027572422373451283294880104617625580500541378266978340631580615011751145975287236815752837510059343555440521206263543134567035960855483802191527164150621550917212098506947664870791808278097539801008018318535883997682540297466958133185387819928006273133218824652068904770747114881532095189904889822973183716832386036746982740481818035954635565848042837948437503202599746979469978937792517454545955679621184673493742995332359467256039014135283206894702393335425445761757726889476578229819706038441667220618078707576247269860004459325640807737393425149036159737259732094917717616358558459739751105501351978625269099866704808008161028551537547859536888038668204843573160578880083068523365594680516644114128306710754149764489327151710758799985114313531785379196083046919893182367963971944041880880227422940693814265455221563687996640927294961877655763406124468893750584329011132233568373887814263035515582904710636778033876018025427061153965950572792693853342715274443169782665775738727358926840389211339062311066837598287511418776227083680779006348469402912250337801316578645683749923583203305897745974533977313127661288897282413135657408455023686145109497591646792752343792268584912122650600460933537985746239812474597268195335124879909097855831540478892964036663451567628324589444628577251588025621566795795253923582118289255938194287747052628293906669137442062594414507501883199511168461588409243072909588511290591383813303368911015441673352281939529513576506650199750993489998338928728551016197685952379772077873774135535196635582615928623998420019492564785942239305336035509871456574258662587180735156529768015453287793244657371728305425871413330774289025919487690316565029578399130251943517604168422822624104588856700010889647752083789339864274451308411744097959296615490228148297808055792518239314579166607223922083972659692784558946583891195583345061396393910666801875277673891665490443182546135169911216334214359991538268956754083300911204550765777985725295881475347966203620955478224115271193788006711207313268881715346221009382954919319607473159978196021949713818956245288360215383486588957393505965790017667836025722690181700684760057010110502077984319918471775894647148898413888594036125693286644621977390580731251739774174292720177734285239079566708355051655209272114583442266406480715095235118198159380834871637425387333868291903140651124586726833672674379618248013531238649176093714658589100019817519592874641643158137382699626639917934169417985934266804482178091208836960535967754493963450409932256842670395964408581129130874737415548370970810858159616920288382916284740849653021235613816295240128865235394161891547957476216298530226531346927639608333246487932975042279707299021865061291898444393006217938986075573772110034685549878182123923293374712311457245796603562886078063883980895058350374322371820444640035664670550038074516796865071465542939410589283911948401535965881802785555401363344137209128329096743913035845666838391148803085103653223065192650008658230757813881646136374386665809224336975084827197830883163022242773892180812303143979397745450818906252559515212097281515404288330930693327240809577646704839493791542118394777238501801842456064365166342110318889417358071876418961866889619906723256343060589326842014801074973861302885797981342601260296521282969290540172856722146157130900551191255998434605172184300332193496508862442681609619767044001926582579931795505000281238012972011989747772422182841580000905434832521122494068536983907154818472907402895048819942451007522884687854460735373795858196363502387394665974725650708767208752621540072280272934194831214133311423511392039748558106822125551952944689433472660585905694110776121513957416726363964887481061435451362474144344815323629329795222515187790607655507297385471743061544312993407821132563675281369958849225652575489330452626986021007075555686473116599841943983992178413264299718257243352005258469005556533117069704717370946815323572399569552027665816097118882444096893329365400649803712951342068314988038586472810421301491252992078069674681844992773669156137619285931578572955662128390606228909520421077393549866041028235703917550275553072299160103856037348347997911480113549844626992832061754392892565491726850171988454495232452268760341935703599814910433694585993169000270390863653129762257890593894277157579649227533090468935761503870095214862555582048289124350970909618154799804864690979794667931826152543208918746992736814362798713926834019556565684048664677056050573509374085387608642960316347801551003513021684873299164625626849278506348106484836721073469501074778380795976973164629501960774200862817787666537419156192771235764002767252799511003775256647959677833266367806516916023237047889507404965443678573209282444203400377545538383417871774203677997993438658092658860099688869125111391729276621407763554553639154249076787452260943551054113295296127279242596455745120411753772225950395736795040643554154558090224078882703410123579884283571203583057101680632186515561286277546409436965238519948707244789908207508045302592996839566210383735514787429485958327696960046860785135708119228246568690046174977688230223059824777914498857586600183181199225580347654493373535459740594514686099955519253662895598174662694037973060516788186270707624766410935496079827040243109534853869178779414244393845717521824514696733064233594852613146392413952391216372957154901159623834036637660918901629844317075917672795511167235055768846050870899884532695056547642202329790044829916338317310353990723395253198797772762759577271129220421801923006894891650227517854372006112843738126510973478680367902683095603266626238374516989979083560024914763891512009795447790786256508986657413046964133145917877173019798533685171636193512617042360260160426457118568981063321023961104712369175575514456090943262867641460798146023827954699902540587716972053082048613487629251960343002368933954877773796470803649327399974384616849104530044130741739803487853073624129520918439262586442432462704975298431316198057883326957370982992879129970764158352942059860303087575815856528117629859002894785254847531019623580525428427157267208261646144003412927669228073732400380189979778778016151687878600006924340374679811012719752157663357455796906064666358662508239880063268805519763338573358390604381978729999556185541972713654864553306668221632665227064973610268042353095670281284344196558422872621753999426025496502294232295627585981163076503770336692731905269785292141051158592388496713111452253810051916667857225334278832381247655593600641306226582050558676246395529185021109084603039578808711472158397509160753728781441182959881993869450055643553842760352817119739058940098881602561739468147784690249235518189023041360871077485332832159029411366871976360290712663498408523122669996128972879118904651005848619567551274577767021426541561100957606436760844781238817362642780772484225100207142938567410694391467286235732682612874918510454308125643550439096643830743567332622405572207394166730118784375050678510676190918011249017643363705136601846197869764279851373543090043688143832886072670956743386207577634225431317352294606287473960672807915843413492761348127537951518691819108858154286215349720686516727459471213740346445122134649264193317044911948609996299033084861905159149516900390932580398434191684242436256062940814295009983075191350254716499600399815889908945112095677399510709542426233150045029683899675748290968502836326054528130271567694513153887869293536875127092037298371324304699416743141473606257089082948045183506246538024309998434826170087614781834213133162820860718670736842957511025350130211044577013809639641520363032228673825435168043430844973503307119437462556826547909652026397728999934612230627157770510588988349267034669169673485352780899597599948211825018951593215048001076305451155601886621504874337225780468054666244728701835561594902345820655099334742530690403929000922851784042889429315353181959391408891647414867481681525793911089179026552132795029757987076197221599748869573282622675997264982717890880841995674609854716920009275792865145659620837008013457745317688977200204850634104251341671312442777812505222553430070127973148011563966333455941956895337190287704459971212188781479767312034220393227149368975219973041813782550780049908934413479801384678305771052054112055667074358430005679911615588002780380122356548660368644562324998935497878634264827700357749211712493342154257936034808015513863805657128412004912705980659690607979263812973057580806618048653344545703708732075501220833528424696152794898137201095755256967556809376116782628649769188227287780767008871480255022164687666305433326548844249872754030360990724285676011006875117542011445998656833375782600651587195639869715714010903970514318884492770618053670511864872859818383995095473437260738362499737597360829683881332300237780835312368222574618471602543738259884080141079491128391300799065337435754713588025892045864412988133474228605238248229549833847624643374098758106417599273205275008046646032102251784450204547366872862164822915556073643913912064357199924168503931662887909261073428550053651626238170379701993710543327909875934455849704260399283399570431873120960836146429685128826005511604453271430571307173642509719643370598306467681477068142092071221634534388330474651816783498204025256141020761890367770825340766183561131372935285247273402112193603294850984844398934013577429336326990938865511885788796141267826434816002817167376679098855748950677230051842581889029313405044427290893226567702042954666089003718488419514709115513903727072882236296506178160196035530927384063898767461299851471475011497252780780263531783909473895097384134933924800571026010096739264727518406759546263043330212261705003680727507394547814989267726041797155486950149559580598982553450150694017050060425784677018278599874518662287350762584522415404304380223017011345033864577456972194764942450056742335416652659382940624146397021548709666010829354658403174111018681613016236072709825890811401990255099405168341070890250347035514808578791314978041377582962772427151869621066146173210782808483616860555207269433756426639581376238956981876055434070088473338471220763223760724543489260304663345327304683674996917795466868103042561905724165014089287041377545510801988903469045522262724287666358717249840953579250885964915969592185769370555811865179666671510433775663497252686322191510717283342420942053074731412761342591514813256361816067539225663126712938722272870623647178589122660887996789474673375163367408544330614559342376984275895326171145625697524619488929810251958607683987353481741767149983419266525091566850411533874485891981756149809240013201060342428777511140336406520077743065625145783594047053096530139752974466985790671011605059609017217857712079312612645018572998612390170727419878617500969247630380211398719500534167488828935565299338151285213564392902942709934036413764227398801580974039422462563025186192979031105250180511905771267243031620451907998022479100383623152031474839032918983517684791890870621836872118466836972082182726627517767472461259693033289335013145983691601179881958970099898215869614049288257905281401041193783866625895425827179488288830650123600436212370844154596069847811400011500598558677057555827848640700188805733270630946671287589125573581524193047178278234476195843323359055824498902211178537712448370694860143370535769375911946459037518275737949594647129622775183556732385335348692436079164761417356038523619923513083878361951498385030921023016378078749332533299340643044524084418405397229756190636003998906851180458868067342336906919138650231326285880779464038313619142142501566367810920345582625190545593019543527893207697326770095837996577413040679963895446062872257826571255275170712399906929343632065437454134615938788948793585786478158697473032750144374243068296962151269919123569649011190658329284642756174989088904702309749942999561504820618446280690937565962277997640141267631527907860015294731681097192153648645112698307581142712005452982098007843505317166927646975604342585078620718802410101130816202786990273465897670403738511371601297605192324335079253825009135057131111895674426773892090664572602904634650733823239531984644129343955753358952960607150186356616142562627101003250333949859396721777767502252486717270046713464198419327738075801711227279592274880099338410416208767667447700590873659574578329956865326013182122397488370075397569392237813272507148291677242869542187748617220853552208830232793333998166048516253798503830590741304824898495122678432224844311555827267790592611877656437104782222707611519515889520465257424037454795967265933587408843359658785466369034296998156962812947408264942825233809903411483023164890100744705793718091987254562404188136279811231530385653144236897888580611654006532688074772949221043576069131354493534483487654678752792922295173023579396901615997593091325597049962692112897142541185905236185423490753429458170308727800865251753604429718933247326930729259111189858510889486022755758132348177813390543456777990112505237738443281633357717387921817603634668319117610536347663365255253453893230069301377132611997782031664918253319267816290445461573101893773003048237908477810028504385677471750760874640829114747600877708410324713701511127744031806044369362655670048120451143539092546328608142970360947804481566734966586563489061730782530923329463739830978344183008857252036163277807783679551458927868741372111390630815114079282462847935040246560971917896511137110942209154431513693494522211095994158192406157301960523384703645262733539511729243256318131594696186934454588607057237595054651583083559832626623900373107562451838664152883560414568367010309263914958473654242088818190183731988624935927920721484884167682462718148235333819466958589829217115575774310411986921257759590906393043993290382568600058435299502113032843809011240021311417602405418389384268215366258069720334401704940595048274436772396417316003426061124434932053002715267419467834226105920832287079465414434756086287282921669416275704899257552987088935530728146477728598080675023788773958622297194929329865293097886167033458797722813074012637413904452269683214689584521046269202100024679949468403442696414057566404920897538405036421383356498426904323418115526955127010433761981151893152974317227834984888441762417092615712675716102002500093413452248340855127207787086543896186136506346598144346070804088519528455345510205774531147222710857880097865696632405850760467490827454794569281144947647333923744153544302207245306237110163689250652176049966382995974747698349213545321281986144558668885486855666212844898296743237258674595988844488664906515755815774088806353494360823839939116139073829879594353879578424485555921255014289164136217138155972448015297789921909850072301296790661416609982993444826631544558520232523671362512977112566251479058425216824320197609996217191807590468236930036431635516380897449089722651078521389788960712098604143211770620972946944129299718088210294044065813742051358145363848472174511075821555013799317530043675562959970417004842457807280371193474471278330891838831743115818162192893464756328580240574647339707146111302845183619367552012510445509847172788590653761128733478303882690565230613501618534197478402403347800456770720024062679614105019140073369326079245644883340247734696737077153322051994447389722956543889781619098310095141947575073714665062968001157236935504413146885536574672331513940937586285540251863900517467841813484438743834004344457424766497182993143885108928200533822892869845893816836544135103761449835004124124277003395234934991221490338731531664320456144803348192856778022731562476670283565512011808070756588132036850671670884397579898913387517315352408718300449026169695288064498139496722835669635623978316545999154147177109064205690153391680579199054154619056015463573387493026181726007485356725465093302484911807605522166637049058783947683412429749748370194827190034438354361585595823698812047701159804965291684606061417910435379410915078914011644827634775035942461257970623314915860163231485559320314498172145868012773052870694766505956542018053132278298217897953754416708159401550689951846500175529912573011814212865679436528285119520026243180313381640026362127450049224326463036864184705069111562571837582434198415348872577504809644188894046433787779584329351128012441710260934854209112005403975310452181685389178153936166240512387773444180999774807879020718791690926956037594307772883697051189876147937693838656913930092400801518377320982673716005184708001417287205231055137464146411623235751075927659991121976141175614753665455708189804024994567843572221438954291388567834268140129651053599266980184500860150250524351163499966681073451454425389442250596294425219683643442755898035417725406046345290955177484817202262453822103609326645402633699082929753637316876049208207600354258604259993163744377681120517906008821660397327793777752819852221983245796915304615974671594828438459379266624631416719479857282402127616980045993322916118950779592572964439233791438443723878216766109634486110027526993943630307586360733288976182670147990921264763046525873901918599669078844293371549156485311076169949304513612948513932470948146815904078820697244122130952602891891663256570844437357723999703179814421510843967502183704099578894091715554341447911848098770385633979035835748661605719820966897212208139812225923606631241321911651456954762545623193540280509672267520593967638739700798980329922987262066398686173811773586808805715153215870997860667417857033845477033947520393198247708115984187541632173526807420783349618365537319832789034495460768359747702872607729907954386935651482497491083817101215044529995574680497389267160772471891162895151020745724872828563427022085165816746792666190393433681618634566322886406615978062034026808160442575442946523752784389486318616524555453635815236993560076025709328352763937460814883482196763086032063422565032364172418400364175951874878704989119146148165086275862281985275628116785834945315932022885364295751340696162750401755787750516479531664647288292316662384145928399585637711324118669002807239948151821197625175853791477193022464090586095210991058429718211295577961126408848578247430149418270515113080367230730556280795273129555765548151965277560204922633230834183438241001280072313733091352567799468230409986554835537611146938327835173193912147850714652016152579096188215640257604670866223271348380854612191699152420034333826902236536474601251789852924479480251492788165004079992334636654547418970443165143367890320189365024767450684008493443754079125834082029486072604731947893716862559320629060127744450358308689196159130725507434740582344188058725942929333385822310572312486950859795586915427362983703858654715664546245411338070969230976078121137028334169180500336042633696626599104912046515444543122916841935471837713448663670023762000988599945908722239168051339184336615150888981907609983965538636282913798534366618553241920856235714569807563892699152289862533867123190707032478179283486322134222529248780053819262232274377576375856962200025300643587640815905627224920106196519416731403164129890785809214315974598589140741565602002652238141501528033598750921403076297150542480138256827947602670810748974915942970384425688833321071248986211998654635311870001536981350028221491606276654243562264455993407672174389950587075852509262365385886904384736013421044748805332383193694555359810082423012594377838256197879271389611331536682678961779478354729511943930510177331494076878131939365370453337783345125692713022110823684821518953440501209650166300105063580331567378470536881704304348107719422729191803340665997435605760252996056778080416250372333273422737559953699151157634499152542020814399294174949940583464743687524811308142027300671699747975946087650041294443749987288311806617240693284500931852768193933840402553743237332925504454529142141596927158757302907158658787182661773248823914280610094200983230966643526564609004967470978895006362256203787637867549985049399982808579160961822038767505290818962750825700391750881033584839069952209534621356160491211330045474038063977135850038433847125623327086455175034497125689471853396418468718712061388606492357696629020355738355079593612392468596774004971708197489856331096153465934966513373099135190054250906734834430348996441436781626750938924810112140643578147252352760007577053128426147391101256083987663171653445070904844393573786831975779896842218233448687590981603236384703811658412897487156405955180229401598189226080836456325031989633455365830505544252169243250931730595327606707187176535221863889326212510908508427067254191733553087022433399554394164121722632405479126755354980944550059025984821222098674318673906079042124724967491744721722375318124239746330265275299892012286734922710682179708546352657920945376302311245363020837017986515368597782308725590398844251088935304979287601304171406667489071188605658667821669157564435818883050923724719841201433513620329283095052203737326023279806980896854178388814742219658065277191719625630499201357914333640673285460876106051854929805744603171492882623077751246606004823021346676369724002577668447942630426074619602750646585049959404448738661291141616580968167603415306330616970405938242359462215649387129209397677572123838417742563160506140660995809682333730980484106258352949264654465173048550043691528853367787332565523257043485692806749474167373599919234942181859204484810700353788460876159119862629714795741578856915698269606445250451037665373394710952681248370638232061639310725531646888271007547360168974288349901131320042898913314054137489948818420440986372340840402218449484020364933274428088967963503127180181828301236078894261679823159692250710106875873482273913209304040816257202203787682909511164791385718101611640187918563655003644218769713016658943969444987479267443430623872596860537784224679228298743883475451696846806362967769394723886794147372560919073083954434211060639730006671089508961385270163300640391000158821614548834334708526578476576649237277346826821613726533337623179717729265091584680872541074873111898117476817805388500400490186345591477812861238097081846353367253233191436574823515778679038356670754930948228632562114032031839561746693189717487124834317756834532790229629577641979227832199847406274696094193748915122341519234618128299683079462456167066925067939457714458406163320363514177827285328646496124314741927964910346898602053438369451650847196619521239852095621584497519114301061362811609120198100819878875250403625085390492756611147816375864617592132126775723997720297781756519350243020584199046572890161725972544307220694119077698857681332694869495985115558558215042941918253092777082256849772277741335271134221771468996329780540274659772180077850605085035672835947407838202312610840863301732453299086267500307544389873740245559579508423807419581033897590743039246811260855398545260924553795426254594529727571922528245191513791963293869695334969237734193332384345665954243286569772748166944679735087885819267481004442637083429145017493376075726566889194807111207253659118852577212708417528982852730335687221668934857631146425965779379645055240089780109296190967730942066662335590848732273118002715475608969039364235523805742695970188754016469585085336299044647328301701746454622035593918219669003529471682284522581839376890046033388715477392267995576419066395659670571153480343847129312911283811403208297366452394367887883509495387424699174103400197907344761277750220522440358260735574766961272130371976515603342972147220496490994243504260782047908413497707467761683477258659733340962701969174990829036346228139515879501506554704106308770189998520000178044224840257169557796344433300680907596886738530783405538210427168497335725978214038419105672759701592095994733488558408177876223947437525571788452428614862601451780175209696949942363276347932820672617510523333572711711224045982872943859260724580395074532704217521897873859772119613611934910996666805917256378137100218836506860106723657941119324392875815670133282101800229733185012933621977835754098605830545056639827110514225585742630953424102688369671637039531436233175902942188631898022977705099829569505647244886808985670585025224241215821855157919655742356882116119058648003130201083771069589000762905486110038658319009845238058021394770256853412009516181330894102226587692545825592618224688795787435842084008093302899156637653335254786192639402211647781088013978834516959902741427796071210421087770172268149195152412145255520509986748764805852245962967897966280464248440263597504969893629349697324955281348978855807299355369183962637458706874073482704863772363776435887383643680554150565013469801699852381697881971719101899806438186785665055336013542536395143628172415285658831765442307130654459183558776949024478550347289991372760152207673544061744250889019823021873923072986020404770129115837063939636019941164270154604366348757953726138647314916430878047178877130488558028466191476467349666780435814401597598582878284428924585598480111204228608682979675111126816352476945777294664504929894060210556361291046274635749789842085269831605032259596331385475755089599047304043517175101066419939619905782074786865223978783125196815046579274076913914815450647854442716219581838626111142405454678918643718054014752729880592244692998227520682294084345507368330677180503712143076027041025697412781304355929505754111386659501833790899393429364720703017657742249342054708073569531838570463240782343003782596320526458315379729258476219882324980225551938927026823640186565152710157322107581829365575608984360110696046091429252637574100007043770063447682723494232859216398946495394832198234760688700294893520978305104708532967841578407102191783053926696128811832226557845413182925630407019126029249917982229362365084309467168901352267823848343680951630757361800444326140219685824247018001639456448274340144445763552781885113104526634040163754781614770552566278378211626712473788526829522880284887757387929865761763532069990314320949052755127953425639420821788293795543061352160852866698286419525066840984022950736703182730497369535558243476400332918715960275714710701583760437604750577064536237051711886488571433705422320049096164744976124126323624241565993252441199406746215727832910118745240320474996294087660443813957904410963337853764337528541184008549936928947697236310548975939178309458884869005672625775938628654322096992793507109592573778239971441064860733258408688051085807782948180730703730507298677355457473968960459549403033977954438139728967112404427334501369689538843297368943101812743805855804427035978666149091392039284373635490069159973179424472130020915761685564475994974384109242888719467445292057736720812940179282318424368085292877140581064592352040143752515921579116858459747087557032082635167988684368514260319794883078106652458376338951579119695165150642879959247992050254425537124635813368726693643731222472336001932586906241676484851323932752832694652882707537524394167555631360759193944814130943606277878129966285555072923249551462471429062726661267716883242344366309743500063631548038888677061195823735228514940887556186563242663347662103949920411821024753315587057299027380679766040202554291074383278747406904096266010600798564991924470399586725231252166643883549261533879122794667727587520205739925548381751764098383770711966999040851706238916216208198244014289144143991166936148028143778544782235694954704919829845938364279484021622554548895251236830056319157924072107278467475235965668680381954357232233658245161939474361103507735385785738048307326324960418458726869478020118160482296821373456238107236916526306247634267897097926145681051253234912489704900827398349776740395193618182985856731005403514054292144528663126150527029660163224447383067021691434511224810744723372841492875391467652408620999890905688578267459153397665999885208550508063972828057908641050520543150924097704068261312227960107179446529006296898546177194537232902824403674087947781921469031510109971058429179390396963290012731482171778034601829109146075829848341264508060099021482361988911756780533894024597712790779269933765133160018520620491533428423090038630123508508896035586731579671209468539693022946897035739165257815291071396737883251137708634901674674377275893640648142109602454694119352432829108696119113097317787439716196297303374890077350583899604469398092820557133314511836643912735311093502728074063513953114828401877084552143247254730041978478061239729938535054701091206887214374269956442958965907349885808567566355492755080701999298382909836186141124102613614960565860992299867449667042009539785735250992360352254054878577556771060236376750196288418430168553307263318159898211878027364441111793171832277756438636197013965055458541241972398389433905915947287773469748499203814245558100314580598837242431905228073629698299832987401026827284563722333018927592326098231902797862944584225290463336346237595446321674005461939981074493022621778348799265258627135725407201131307452808463356566641994992886443797654055253250665988033966643950692135962835333596289192262520880906069486770522430733172662822936183660456851081196639952258223561470798354592868012663388005544693486709719267453675427033395436924426251156772225783207830908938709823481311731260409481259825543701519566389402282804427975617772116240428500907013649580050032928197073087342327658289046310982124807588355809728542426672457313633674287868787711223195617287510271738083436427425120703012246941419963649282217925810930927990539228337435347933963641185449602286731426723805210868825971396534941150179566855517567933597292744759007044541701691562208103057523533644369689314699354789332113656263574618530443546248945085796427613222789601722108556489702688088340756262724663247191560793238117270837267318608668275180996388149351168423917029917445709576393833980246781250458738403643694414142135581030551632253286002063742670569872048812581554620048422171590554109823662097137755861765218344326968251919421840423332247917708206938973879538307872776457202655378075134434412926543971315596156467331063362064697503461961745170557122519565899748065129751122613052018617421722375959866563794679860942042631920186105438031381209011622860616315101451914563502560143109279791882025792452369370846760179234827938621196902497850785629269780530697348733464232962854625507052312132918061902441447004380470173233862191359445944713294944228096626432149265300334505777858043614866078866025977809407629093445850846986978892771417521790313524699963318628269567412212425603394932151843435815173203889258902765519238635718827619225532093125852423650116406189963785381279990076024023393404604466387608335408130899385782675171670875530954243332769253973070214084047379969868564389071766872939904085294399071734262980259894402847395591442341408035698871035129267979000192778385011451458602372299743040431421218226772022287270431954880099240142705532459020767803063098931887529844662243140043056865791048373142468967828151892923157395544894717920772594230563975388531424492330564218551761827394749729214265427733493645462542425595622154870927075270135352368119746383733484206385536484440330218084618633525280392945940775482266654600694671897490633390892361556433145000445998053380730713493001756148327439538108026477686555706547414434402423369320551864165490461682933796026807168415596524902141829622588867536242350732581271110953778901179132381756423524134859933758373676509884874870987699163116634228905170559204025730165333489252642292272626071356852747050383806005006963218876516349370162684827901120391008469765615011212783231909941081460618242533288896001984460078341977187292641410181489214360890436672015643006002923726379252866216170269394446472414945526584067254354954114197431529252928083265395849574266467225441473970001944421270423230489632983106262203740351836537485431800351470499081328487035917242736651176126107935495446910140688314607851378598997684496192091330042934863711875057347296569156882531863017798590339397385293418253278129424976875977015389514736513687996573452448592974837343705834159241641243205019884915746647783256691822931726685034067066738922852829582523703233384632311045531746005449256358395337208882637218466480295887096693260443521791372151602041233454397137894924867209958283393456692718500808298017500005987859562037998677173428260004238106669162321069374413511177572270063829408805208012137173979761818784374826614737167021124605718592073605502310098052980071455263612293669297958075349235452102770504388003384439783153282981202020400163789343644042918990671015396800611720737266487183289258018097750000506828691378136271712843218150247430998948369670170295529464263647183265932459825895909661177051078714457339364682083012414604423852551831051800180470964796550010950922693472387970038790497444836252830500461282490005339409148574279898414493339004960971354637175274298199183706764189559010838750297504263133775896230080998562135120900820538850589515293336114375364759485098622358972759156291100320819105761455519363862255276651038810550486224989161889879172451983294999333788894991859916839533071172870729014962673713066134373048642941785532701595182443029050717465922707280829414355428916874808886519846057668730512496314597719835470227779369323442461570828768315582662447828246481339775920153228456062682970898930446605642777294354848197019365575920000528029874797983867458473189289123202472678400989234387205705710346294131857492128891143503379671859427818532591745505444392535636358640455601605737779512429540247076584411725550109400888857037809210802962330334636710434641083689091049412087399470951161186142051889743046620861012211026286622723161312165472555945127040192108233266962636070926537155631560489513538736523496543382141080309016808647751338208080226597462693006708793145058635243984179394684167229978100035968833984983896563356741343589761130448698421038729708097093582759222776365410918743837149601150349752964083873258156922708861592250479906592291980603967846498531154612824239276209059430438403290134773144261990231471519607940117180589913056747690692604953856554885740530948806139393666223828653399929966542097428116888754777622776627559497485835906316693481051963040472110805315075370556584863606157118659156624413621557225489736869042207886719111172579203198035407954650213566426993697056667777906043787436101759963732313140219937738617945105304911088376627082807821437508886730022242455369172074810746220202105061743340906479445572366962380673933583895805619666717842026959090699275901675929085304080826254714743648410016679327812448728514599492958741054103692179528661325460501550370153047179417986560217709423810638292071526697763952652926198585966590095510749472178343519287987561191217978991250292416814200197020072810659288797461766277811821666360228526167522992351478485037533512365471451630514230641615369186468532569578234600907945069370189226852596961894899818396655801816353733048707473691606577605561135623359226568128992335179163768203041386443740858478389821601283346808168867709053368526590977259621973864134835085497333942540582162820023666732377255755266914495543501256313696135475291500987601080179135263820094785697341373497441462128928722995464157356318347792605884153629198421014506006783238283442074366936982481006942506705818011996065751960196718848541564230301735422212737738479144365888240781053117861552422669158199569853775602165698049392535315242070978601682105062399305291840616963544789708631189047231184453633125264202807491343389051648307661966989530319722793471015273302006669901316707313265178095326939081457045011999223464597481140619103091581411872292166020744517774259228356916128729494034681351838810011227198933898899002859304838110451003143460629694284481810252382771025932722123541285533256785389770926399800163433247924926246393290658634491098893579384111991998440505556662840834609999763375742439181995391070726692671541090707792371746437243632586243940442441990309374458257803540366063078425141882148971054223403588300103194479376161670864048931265261875275798672725861184142311440603514558906792440707646782417632686669821468425325421789134427459408682252281529976667373402313573736849411635532031574875626337634559027850982647545947189228745882887328710990868838850962386260746702980830633606148702408048522145706423232965930255792987919459193861009548472590613959934137556187080392101643479710128532647608465119457786218377275923673616591105001119707429659406725422089847452853587561338490155609681066605336620755887770742320136926346943488417488724893392807767034778210802545874329323813915558741354518164729469449529864230056000949344851590545058636644246442944794047886602155865948162162564857186607692270253610702855116334396929404581870642361698831575474142441280267981652084639665880022442068953435326039323923268749038502037517964778867461137367100555879584346933111464762542092163925207130398419377997587659879652638952498270818497542968574729493332427728989232865391210768708358474942101885788896037998462859928413842470690533810729838672909764600975833228646741191414188398241891045951076016568695564948797112647492300847821532680248507632152203462358799048118193829914521850168633107669233170182671216569361361824222338390626483006341789857928810245819971097388394733909251346364722947383497643919636648762396989214865483089241854462914984809423184161827061449771233961318567395823862917708786074891805704421662546540031477575185218357637888553117593167917476483229087486716900750087901656789110008581565429340425455270507680788874077063989814823056783186160414689392483031605475542969499937524073319962981298253694600525890733129381432393836578867894951748781091341851985961887813979613427358084786491746398148593784167596952544138541870245946132793913541383255946771197641794451357124768353268121311128207306507059568316231687672488653098321558359360349464203540258771489785502991779199452736746051371017849914816975897159253673959381237065346562765367098148645921700475290841256206228451873074709114938435825591873964910954953750689354904052786862597016837301337416044888661094825799559710419495262592539601978425633398063010612590180080854061698960045972919732030855297316069935823903705616001362042242228549261636314710205006728090205936102354664233743603251638738191622990818149442214374783561161985162094211320136586816823854719315667032490613953952136124090544575368554203694305562543751050818263809854111630285721641941169430757756324928789900574333854302789165704337158418852066722758231212012567433113491336769400669085542474412836460700666353392285643719950421859047104536341814773078684004150055470403672541764428552290587582015427124843249359262553129489383157944834783419766577195252121985688176493342229176069902405174126431259093104243475389268978269690027569351799656077093672858402480007756413776153154998027565309639059231800924495326563609258042240560640548303612338347360689484893881212341608507571698791057916941731660185778173000826704716874744352977705193045912912926434548108967627665611454244450711600422692261168169076764048868480700383092578303933897153640024634799156825134486518211749199996678896586085684830102702401720108936863914544478126132237619767340487248940084980407842202026797527634807722433714524073554383000305557504450124196248015396792074861154134288183412876920956287554547099000447594403327468952841954056692597821076125168627718739576423001878786854985327306506704841736456969564214835292829179171008627000369770511169318297577437602111698004714498957800226624460524309358318916129025628325160935122457946596483594933736886538739916695152270731718350339834196991571874120734500562114726208460087858057594995467731848309589928684426307135050970581551897294938784890651433814647793857946397721004500111304696181407633095044923704058863729103997850294977431690180385133325644211062139259518967275563944254634459428175665851326798599542066848414047430581119528537212096890596060020760858898315912551861246884376841758137614634722159867456939540074047368114270091530709777953983338155880802302781031392519001036994828234869563566108480448429725136017967629299501949038149494795405769432797331167670764537756804348132580916387408423625730768171725497533181374737596843332778009053881536661190846533830130621347480808060809697824651373170647706282017100205936039967869983556828593211683185609607963118686754063127176025732849342374690018777428779705155071515966405921034441952071452890369861847409384196480042296512820089018496166104648889296796952953007700576063574610738860928910053457143737617506144845831578122421179150811741938133348331677791876031186692464050629309872812848941078849712832201887548719037985269117688538616622133208199711659423428744873191241650963462315932514729651996775949077863995684565190854463021005523584848729344612522370024006817132630162659876921594776776839385315644309408600963876427458772445366295216228432065840186052265238568308986295028962574214652095808735059761065671843809151852625509791964323675799062308478859029267292064614650734633287593120742618434795166039408515031822269592475059793377989236349462089222679151966850209398488208112898574636591489029825830935332387153939647552562607948106657365488423321317377572180265432723603793646302958887409977014935279557916079040449723361619991089081062213493075118480131034780055253283704800960925970175449893331839512075372539254499072583161355723080997164016506935982221047189723493520434827395210055833992809675669961129707194154638428377126745200567773863588254104571499691098993783041822168815267995669677202752385959487576516653450137678003226466752758040894027173177209936465728845663097261947339032742362591691852206290855645926165222797063733899281882486466399924081850131205442076790292655539219732681924680862581993088812307879098191578056723692190355142747707245293124838034313586885071706574016197068092635725682409674347336226794225790874125200116282164941440643278805437007747954049533180510791152036204049513455466625915282361839793663335166912793582219100655364716364613423505786923246556870561191416822289180653078259951934622304292479197749905542076278868776231905401248317278052454726465817978637630386054170819461423075649097297117925630299215344021073090197605181732175665448625391358154004321201627469253221794897431758200074469736570918483539162965227330115246116794631351615267054239114300730032739382516482923020135783379793061304225910199422971574525271173907380965315463438189154616741861495041977172473455366683145855264770817384355426346565105649696150535919674155572429912200809365334498418630072153947277229375348000168455102596469880752701249485059799958819048397934523659447022061781216571850476265325433802599004579790391712733423804941168433418803785120367048732224115352917028131332275269302342372897581733182676118100163767645190070650445486840619344725578650870160364729434962193942091681679852505301546230051912161605967317701431343694575963188328409100699963897427305745860028640288599684176684210819608191528947100123867642799443755605428950470304449053793980885587069220743829809480634342065013656549235840980864542799620291879627099452598072273571451735011355099468543034615843174949132421189597109491370122078808225594065003767812108756183926267544363934328628993121589778003244534555555581016099319220019487995565696231153204450788633837839576159665731523697312262493691477795820780803496332906641079604569099895710615092949153574004592714807489630249070270890656083245937460258784243726966285459209411165381096076063896166644656603608659749736559363792684410021350017074774975598596568418408313590192344733202289927062798391097760900544627459958576221368199035654819417262661850800736231009131772796645892873666202082868070153110735314944125793723583085083651856501924044667671058354159474625729853770964457936439173433249585885688405841190121298809770745724698736417188287105034836031746805693319952486768689362588161244237052199372332746187646491356041795775232376171957275612694517241806521090222602270340249835530168174160587164106927159531459489412798902078845043639494000524505666034614361685855034932939525448617050248382080912086670645551012306225696056540774894844061406130678998911405765814834289178643059253242030576705704067173873027575192496573888735639707882534677240717800334005746311168783507522315673506312410277609924176282141250328377678142898186158353500083217218563383234937250727199135982810540745061544036234720645891923505968256940369445494766765843603403751812018894831285913618643696804204017424961201507554628465846902215100822963210852599288867727236055400004484125291359571487617791934577482270841160959062108803750248002140957754015808352460728877827705677064918838231463884485138198743780315612712379250204372618500403128686654784542431374122050657352679064913866772013161896964660884412673068468164440780739681339758617831767790640674120311015959761896487198223528545932119905947080252260643473769346243127335964272921782469736389919851914911608071479065623371128716740310029022775513793768013324423167806436515467983393039846260051232261036854987179290197927311823401894146992597738155383500593493393654800429387905091155921318833255677031778572474224965839838049163010057005847157933911792734858951778497023529425270143956034353382940800384115912353384592506205512836893516211621349663665969201279098267164014320557775282777887566384320511515587799208557104811888991726351786466494478856633095856814478461430247194448866873912006295113764471474203003764837195015197700997204356681054400681369196506568104543624333260437426986859767521068219485334289290605121649942598259711246183951880897047332701284530785821284368483788820519674252095519547078144505164974101508359609047522977866136795308425737102064428101267805670107961704767596818323714391322209544483271635463025140733872181587529208212762070377615427587374854329101759420229861122027871577028088852822776031321738386965754917107572486194036458581211064715165669965324628084679083920019560180317556940564510682315458960821243296207439828675150379217223343484611739613265293262143667002332946094871388570441407807120521750863933349380513370718353583356509737113917916435388901886154648726555117433102160687250308790144472296451863778918371057627384547483650487580767047156800317772063331943760061709160828438232325890147717919535025624341330025582998355651930412468333992714980965445779887978606115318709659002502745444139146208148684401952388051966050228550426223331762343555024683518319667555949691427318787323360154333025080166928079160017957816662991485872179754954580702366626835858872164553293681351773153118540144248159575399337160696005846919808571134993352109166703195673585070247617145176683703762385286525626774759159920110299207476018400230395316657366553450540949972883220802230500598019769475492616181347801137658012845186698965545435894293527621512101227615459626546712525131881951506397282690610812943792894418522169635596672636431049512381123149965687437112917824619308049852487079458329035440406842016778087505871359979512579413995311667589455349519068198306791137131819723852210137856736373392954246876397303991648871903416862090129593595664445738555793725107463958921012855408181908669099895548502298941468730600444773022700505390226378299463270517576607325303251492815362068091523001491343793215561339146455388116517115187068625475410426248259653717576023473699715183276101312077414388105436906368793049792179344429247028620188868834367560068529972359613630706580945235336710469961759642845994025644468312397042580185347566988925510954956849729941306536681879972213705967524292410185147841349753897427295708427127435833179289067286664293390862542597503238813822416758080205658071621974163871945589570559277531260783282434141697237979566224386214887817697438036414334145942277937841429639313880150990402290355848450321646903231189511875823234393841071838886773338216676727965119792523763523412024912658590176044155046987905033038327726016475031035127333100431887465178466222245841461631374668866692957309970224314964065476020709605168922912239740707720965794911882158547502701422911048151769880467603690514371593759366935505704058128141951980716251966126210660621603705501033033887229108625855284802738327010025482629782887490338709584170869827178195338737503032500525132798708036186266520409569003251138917214841803827325581870252094276869322287691273374421952073215699809895295158498508331187193288620746818286309675148877598807334457413924234655989401070975242271163991099354232337533450202199513937476718708914223382655049496794267802791280590456410398543330743968976936919297065146641108000853913870041660794552964121693078260108739173048893756441625424789280652624855324111379322660413692023658935597070764038481692656467901783285418504857776241101153699192573709122160906788062878110698163451094197716415371068400433092597829249716207681731399094913505303676852992521724427347344325782415796371802022203637335164996671273317594154314283756133734187181276470977400924775530084474970828346353836653943869822130371090897382289406160484293605345473377742493872041521362910197963387019623414475704604461543995779148675286953252759701960785443282585551514160473983427338795258848391801858158414289744834208632311420970687255324164071068228237763998358848432665713146290632344923855788613606441507994569100703324122621751227218986312472843655479860559476288645236250780745596335923025810903872217987080293739153941885846830169984276237637358347204934093274600136842289538087757486301916042833660094720113557751898127904347395093834319168291937586615681290600614445122985514031190985876883517718307209245580481984081961368389702469350590403989426807451759121002382465389288832045705193992852540081458803447819770635766864059217797526495880356509119221450700535482396449112351104358241958585322495161706715766346729182909546891152602528698973218320237887621002032494146401881517194784601085809808858016238112885262878480739933419501505192679779156924191250881253300584856839788784537261925497325070682550901052692068965166952743776015553112172774388907564583566253508670164753455626084209283968286686352818368531744121902322897712536754427877600505070213986177410037968978086374145333698306588677456308005799237194684728637734454839494921619000147015696069844463933596255243298182765892030484215809335291927122013313035898719934943479316231723706181860868260517264300999313424420847542172967262734161853228410446774541056854808719931116090005440778926309527804981440562836934579902135193692838542798506489508627789180390084399862190831259943567809343303491712360726323826939482059483357800577765993850552995318859492311063133112111539911035228838144035236464507959663830110561739423765330761239323986606535654496266487298369215072353812057588615763965540951149760739228474790410588415331385371711959813342325516653024061722133096842451722509832520855457260220239372762730385656135798547702444665353791447747118093458822490166127728010214679778632992465955319478740828831222611353799329530154848999259440956372132645599108765386014905272837682535995664031346971571197161135986343414879691420755424885903909576677071285845610730166773203120975643803117658122234540295610277635639158980743957978572456753802609319630637716728115336171568516931038270291916726740003536968920355551723683975505945785101463289533029395015150372270709391852987189084049357774561669917271745412323347259457751393156539856293868555036512799602967814224067344400601280019584838506303726021879939835030134446756564373166276702821799143365667286732242820014551058065993612226356256516123681309941710099397277640967270349246748417151904217590750902691656307336274013904772789817170144935872047204915177974556821202427177760384702849354908514579709160636814386522561725573899424826786091773754664033619567122763903057375484673307654969471221996447934270584301846054072579356712489254761646993588455319709407586912913810165973617772101216032722696658961643375930513826754590446741466596619808031091536741056176712206910397304985417954396454082089315378475064961444600452406759480443898065160830522529994511802593676758278595933294512344963143117895167233664505100181117189180024290842834837842642292018774346344417319042151416651762298020205047974599587155887037464806362545505651816415368913624197392104888276105762593403278200511877574970112784941077103073958637945001571912491969940534753048217109029501618919426180872804016850018470609587749718204296170869400043992157814738410223047806669934125373586187802202020527820860740164591179375577448398160889868521211803250161147243783148918409822957108480858548458111405197694825025900380148943171552112403422427993922895103414271655496072955724494730463742792318423137321689533176799071131877792914533779012327525521402720502311105205127422951931403177749881239133384313360960613678985522805154228033644249307685829934508614500812662849258440320903092349558868576451375397212892315620405576007839070051046482789935297922919210135959565714565172774240821771852712215636047166457214794096694950518230923894149149602336753060437298647158469039500715674287886380158116658499976792782407779702286660093044574753210629719352348027480565495803972853264060182839657824083665796059033638925097501406781356530442206192765656556002473078978203767700125041581419031269893377373230083027235358707997301181618559114945224757276844436536339764753316141104302041625664077574431767573632552626073873786436461750435060864688494717458795266273667697354724230220483134015453265602017331130652572481343991213577668445441895481068551942757901618695414808611196795815700917823103135786842884545499296834284541554948127062225157471216420604731939476089193266886501753069139641949707259555660717668182904313115303010781007270930841558144829486894150847989174569038218507364578774427538345824091993410304042134039584789963139887356744666985387740900067308293290660585077008082588285180655662871781056730384339554436091723559969876292146320597591126313183673479579302616933976789217429234710500513040831400753438983871718487308035172163217380903183062288803882169478408705954747451670616356612151351417700991826858498003733146519407430457203575987529148880091425294914301759907894151167626177608881389460232769743858139875558426874341172225075682710712957854254586469248995848605866462881856531045973648645449629472102349027141804780494822747183453727250565651068091865619016506649331318126354209033489841351110626041269100754854126276267098425924160065103333022823349943413299328616505586541321883556482665034366643996572214194052419868869429846219474419752315615364783862602873246542128745510383620222130900653872773916054819637993418883293467418479106000907594551202008664349004255676630845720464888722997058476108588030012236365289301743051806052165133029142144721596190087465457125432401355188380800593037698737929134164020330139963738074943363879927569687866577152486672875361040415342413623439521994929427433843698888603949456684154052218898436856550724393947621177330365947521527811635998543864487970073106032130103179949371580923793899192904699045812122875534849924830271424567352888197027543390681868489414998062836947178889964915473027985515379401007362749091840642425044330612179782044742232078188109468337912531381057081448492772281862913070442938293060824055848093061504004239922448718361473404888794613375012605214705005178681889312816914085059057286214096916106812684224008437069756614335538644615131184312910648014516177032491518601977045198236386287375082745271428985426184629792240533808816115220224551368657900744403700642190409939967704861942765780541475626324311397339024892036735565062497356297741990165110289265076939121664369823435915292219004668260182006274737751970771785284752021415291739100585419480464284156481772266726567948933774214130658364040758776656529464727506490203383314402666412791211560548056930339461669614772787924489367400146182409487759570078978461222902013583671248556544487178837579378702215519030960852122414526087132530158631241544400820682939921257405137878134853575383144857430237135433738008705367257417641576844875366528183123216400253421365317030930225086923529083915507881752968081252795433011512953597048270323060110676346363214939729725105498736801452186099332299868732880452438419437745002995821684197676152040108650768774211402424952148558324429442211258964286712827454916920970667498095652051169570898555641576856668088824803660465166020660022057308170502288034404612736301750308548760458731433630420062792634751792897065562561355673053348238126826036223875944081659680345677761085085538853262217446651132126740166290176644467436113805801936145535166425936736257516247496242984047180469009119929234553750415682070406354134948602869003679549551397608105650609546794289491163904175384333450941763792271367261195176952112611076480267636326096226053261999366043304136178767226829488735184790204184143880262796213954533463289232999883906084667897836558547873739988522574725588850669481164978706988393733350737540401900249236048279921706514237073441852020991373313859299457731518333588265877980002361520230220961678634264097963263363078324950319056862532852015634893676738928316990014445125172036648717847066781782352640368779875983532312262416769683485640161025435066742381922489010456464712919151420022775345077713809688402231947363198473349472246490717491028371705458630892374892237241261673235049791794394854835462579904809149995728965753331770400870159001904239506981076173343433831640919277423408924138401072689289305376135417497419487187180065299505046274781906405001943124481847927490211854994490041178265138874604893703107262225425103410516101405352068957804520605396601660715235149978201434065044994818724521137076590828420229134471285857284233576093406701843498775114638710137892835788160788710623250678589373402295810612584545885242649806602500711381533753379921482019774041684080150613119553458249885602585772126581992262607087538962297476826091823931782921357513276489568758699219488731119572639671251944117814966063527317664528634439170447065254480315820016447457728419395940819296325248844366440342151330893893253356793662331150419436054207122025430338869478223849459228599447936951903875370722584834464939143276407343400559710260421459084797057424147590235216391929438697825717636204650335472482186292865054203087671268011472302424591180506595555788065831610622671405664103864761507279429884630816359063250740124826478905335669314921742431208277725364419664967580372972594761239647978310392281507305519057219429153789506230068703229722626006036213888722662372888232675748164234170737601910666781681060727261863106245367209998849573888909560876928718439319043200045790984094097860712784949319008023616989904075774228317916487737453475418184580067293853542905348428031786001627300803912826938939520883188374894904262407371691222211029730952208632185513962902880776194887921282213448531164461404241878946643129815022023205934203069881178216410364678619593427559000465265891172986032651509012656686031557178149001954091877826496302097070264157214875750333520825682914015699702543372170542446599887507567055595515803712264719097743261808850622450541859301014911486309424065304257888726953665760237513742283580127050622615677516082028893398951397017829822345617721055244281208525211119244955491635434259776871187562575738385810804324759638282100738964747982961449221330714078697783078821508501010671808271179168596178834612620091266838049482617274714948244845697068605041030978591394558143846350791180037215856646228587798184902873986024995774498981478965426882330344459414019016239569231725187599137760841052167168593035033081099344050695710602732582392951920069547387357668754252382331290052718807084107002268948137479867043521418340153130988398387027932052399252256753448451797580768505400794681228470492385021178877449745854583451164592877674032257995402212960455159128891968508019056615426598808241472993608053082177292080962274337815924141396077668489618435411436961588661807017960301294627186355838034816688899583093124931511064935878391272164182283790828668468852253369983323676057128793330389046984533073704611792406323269426865832336664954069532504016139120324468087255284899053926360455733711673047435436682980755628213792121351391566596275340845793406086034926820345617684139872905924938919677211251944970161497351620610946150111612613625395354800536462657921719178926207078125875759516860239426567004169821421050535261682030911073644859133167376180237697141702086177302388630057916837285154364236022425749702966374423747114890762967192052754656042010043139846924412397522935149172402602314633161173015757313490851103078904738844424116517271550151847365734291013587316674740616085472577821781505265209777597785790276961108686337516877925263529569127351446378416645438702136375792676584482862945170291799052789134600873967302309913939008549378609146350857896216591867504579857076365992396466174843882087211344291500476992417493133960295860209155473032588474449606568502012895361079501492961153579359666323205149554591414472405236165036892149937902927481135807997762832138608194963108638964663048210768998378909801738741837330910325851791478124328624494685716300237773547850098404700056062946219411260174708234698069975781380422510331376038295594756006732806458553931073827705674346875673410617455383467123934888696642210649126479925114860692142300354182250962213269467810487753468408272186546730953602508595684176439519796013332356789389541180995480090671931965559139707459826254115319819383462236731584261036771651167368183978086653989381719517920892468126616249991636419499328229385534315654022185461012699366435462403018982353013974771078896771525404673768052986148050465415535922989847514187309846338931969472400629202607905855154981031747181939559754866465743320558072025911790740477823153726803096443607599002592237701453034016977139973652464226754278046637844987510135093962929144878454948844822899724659307650426165305118824067168818117614975386857370803237938969545039935836165409569616507539231146090518035819612766813449807948888703437492263167031551237070258753877700460603976141611230340359622254496610356961766763315824026753239890987228623493479113212111114029129310036167910541944619858107074579901604071848445805260590911313452495723576299949925170619150339382681316230762463482641513106588599761019496440372775231140107478164602887931176012482052031188249207241468818125746362009525290239891000078364701874430657987590278976596772410082836078605994359559030550852360360717769136876116752960882672879268266072814487201815810473448308420443585578365374629596569893154317330826002201326721554365014951849529686823546265877869894466559134989591972696577662808323404526814973648791496095363969673818059695529534679958531748119349563635907213476374209470056916779753458852838585375224185005530770329653456812220788494305476237373032832822094161967386661107506184374911682604881901563219152094990163937125865173077557569365364772525195969096600648586668095569935574940667411258440756781897897088155387293506958633596774915430560141488619231106985598938169412726898096441512208233737349786864242347906240145038774189142749734233686252873162662314504327736406788868360226892718569736661504797470730801364104386885050683076506111592588282121366110669619182709962356755681935840326685620448252822018889980163493869575209031063090719799996522752101235899947689996876477817549485321424759649216298820691571272829614570794118143001135633562330392271961536260034038306332653262228880758520505671986737151416005165699792211606206712006212788051903846918621549115726660851340758152237890765278343837137490968858058359052711305510874276486889284237496438022464204584561013173552020756765592293567666877950923421921433963670688517885132191408268777811911185780823672787192095110345313614938564027766264072453908219966095308635416055647113851924282282727365629451696332576569274750860244477819428019438395555958344640194437177535287411800383136262202997515325454579031616821468163762766987077216924738427571724618879829885948721515478673567220739447806728890056510361597134778469686299331959633517805967885652111963146713456710045505963421635235034416591848698809841342313574460399782440288616421144362415076373770738758016747470224892333038270773597162737449023842374363552048541358214747631417666859381331330110275108544093064079571945307022303417363115786300928452204020340629742929611397130083894493824267051672202881716210634408808307014498084883758307170185473199616832971165110850411045937699266590585461508628472531567811214456358748804183939728622461309221680392557674739858961281640721259679638110902959968272949103584784789099597242136793861328373932087063765015594089584280185532074076913016405436152347484332652205259143739266945639268758435610106721233511738757773128458873456980334974458461337552099292768700800386552145030149417466579632721818458254942745022135116412293170006703272984468353294042200730076387631936038820128085767243223385241492340073378157712849232817731334977442381143493352600704758867982379973400452874108975257950821686547368108620460072049495759941192211145320132030336563758998970703070094867973138225462580972596381427171530145033807262554224848017231240264405624678357448446095285671257795698528372232125198901374389942955881348986397184471635792731838392289414952261509484419087334058299524673407883290487913793805655525914454637868620075705699179212567231326341270168945792994866785888508733838994126581014295728449664160198023953301021095076953482762880083222091700645663669020530460871062991059175093233514576453778709672458013350819632792010927947974129964705368420289246616716631371474155718813941440431648834003225325760637164283385622625382766480882904411378205022620561488008114427263082837315755597830555388846317545534751452616431950912316950766378752190888596974821798050937753069314607299384355716324689502798572308619909856934320594443932129586668705761767577948766805068819848599308003073331086366920812626378914244216314909079044479510741320547761030877583991080520380276690937989831599827503065238180492770797298826214330557202062962898900478649969375768912954145630969298090351583658531718407879783062778949141238538819334908553853102064863635136434591177273167152498036104738931258538806029795729936191467753821977384463713019365591726649656383798156164304267715409691722223052856823439856913413001785244379190089257940015117810115824367997779880795070208844338889524314348939040263870935843502240737860166996645574087608705217603891831641862984709429951375902370504504094504815620448625088540008758619392954346906407443210300061271376248180979158894009390880659562286220694925883035300288704119784308464559373156739886608545551263338650121196310964506861113553490452621993067298086070001668507014762306228235209936408936390798437418167517286278482388812980548257423909480141024356220058249091167874216177273956188241369821387788664457483966451880598040134529965139918858417101282632833307409223651399467380788420074786614717789026146736255272795820516229636600237974114474408408738019040574778084915694959009052286816837183092236761173969868897906532641715354925919539218938773026592675189153330614488583180513226765587199186897798030728984371926874125686786675724728175194052492363130013340418561727716765018850204456793006985255961371462476955127382131530020978025285033576005103566359780787965927474346590144539168271859162412649914571498135456524568351964629096361297513505751330563541967144433837697249370648067864918151895379990890730329830294999467348727404859652855617177378615957936056363772332792755683764051322844029046362894260311792430933026086994521465636254497848488006485297385314104841290337548019429295117319620650961165608869325639983126556818950185230375102551300031176504768673181155355706360687030870889180981925583226965845017529496535306261656949410455978850415591879744941901468389679899362133218926719568220167869571620458861956963341714953574870485355699118049218978528380143428137659546608622947805947436119373913125913558806638021954628433001010507704679442720038300266275805277986915686025351199670060563432612233521051140965894658831365890026677118683807343243483288817237347908888498156032349278984402061320257246029941047216312275332195597123899719898277456651436099993104586791312807232988173655144933036898990119941260558259626946952622544592423610058951775431580538153838392753893393043130998166764420183833969532967767163927242165115655004432582594100291295500811313152180081792892802122420812035123493608942817370614222140229552774166083338414415547976919318922017209919173630370272648744175313350574474388565114693194723348205136839240856550648914048894128958303448930494427881671905157243934965232579324733493437189045988592338923092548583130470089651061436082483693566607820452046054134898242651801073354469417622929583168819198660441400241036264809918781783975731955641216031528067450239938980885554937803323483826501309917192814132772396427417604004578929554479872947989866608442130881909626734746536836369297627680645245005890824560030540174339085991316478842867257236773174708622886359847435123454697261223479123010558697110200219818739386085495048729518668597645514157790185951530354996172849157393642447092780787171354115384676073058442690367514772603048356729238645916204202278308008169296574314301779339809872445866255716357805693091190375463767249748534213074653616236790387492984575971075643593054452317010616166572118053366694214763239522453639726075815700892858885295476865636868986299626309299010424459752166883140259430979178186545743433457964192319236795955850549457188852243616200155043938086788905051944778148685399844825003579116939633236897478193972747683103728733694063203044962070785972234006898354740032378351484469932678604788238456830730362425159002609416374232560108727669909299800842477900692607100072565412760155662027985834355524339183339369988392813663696550567401943915977684929679528233929430733262243664788988934815408626481581626921787235487839112749409075399121152364032252171067558481287197073098179719565001546132194830524901449113221366760445561780581790830219324132271934031426565950004194442626967635484600038275896539451474578194770533920476017158875591992679639045196682414046739710387611359987401529299384875037179942553847193966211839868260541233009071920892713667156090064808830762374821423181114745769943354749358084466660862665686473843436422679872357385654353310575913351186074341240574248941668961092550654578647769766275227988870277591412166109506733035527056710662373078185956158905847586190416137260519301285656599870479402275218756123561668943785786147956960036885622318777614104894933623006018239463804312232137609063767176544722791855801126697446532000353849864158741164732771756398838738810265493970183501880713480506175300883496299844707666622896534534027101681984621021085126771964811587124719290549538771624900258826722398648083800331578925984714868898213341725333181811256437299883871372082915064024655201624988703509178647644774714756470469256117130364695616517039930217306767719918907027527295933285389807158580592017964333499666755019425949988998354195891401535540791827359354224500408675722779308791643704922470426258596145975688609680317638697687442678380817641227576975173392397950793530421331821842196800365244753645559780963977146599729744582665116186589372088589135314939410898929692202489240268870301541299814491166527326205123395351889342407750286430042562385696837789363958392501979127308809077404480517690347363125740124447165356369891538621981501551650326434949959501754533545735875606669572936111381768666160254130925402530806922287379693422601209942302034157066963515623130518319945215441906861933288446822128498413981523396660783845870570732772265629476751449657855043119438544162880720156440715318528127009759985348808453220590987243585521223641251175271690934555779130709007163651557806302434143043105461866471094284272136644855227882637132838126752477220617620224419397824649410317369670795088700255512792778823363309897301603227427266981129742238742967080148074954788596771491364417249055012893398768848230556044595140914761226375638650195736917660712089872569208366697270846684217752220058182474553522789672643267908001029246158043895396998711169416861179787060719474013447359752706749193240550921652881670134687412334602163428368577754978124236010331453815698500370799885445985977920630692241437678869156690498154508368248483858873841736644276517336821280962735423966951093919410683718643217999344571729584427118320444722233045337867271372282715439656519913584159005104524401798986124267806282604079595498861145689663092269084223325321259711838175759117975884519975289022736129402425726543627138984634121068556231193452978649486999081742943785804381595578289189291507524933912519517852825140804691512229468529806765281071383454392937553506573822205653776480750748281487962340739703655450758208502606863022618458498755869155056311824984418314966780195421580885572708443511874938876559158617160079155428859949755639199610672040113088183116617304737998472527772823598906470815021461768268810328079744097952756108819641941918453340086801257476833623160746327165208562673385272208447655012335027965941741333801567400196866118102687837862481261974888130204257306700079106335349573785255896216814865608629771818933333785388668217600904415722585971346171823181859366483854496196158062249818471953538765505260098413839967458324098644616542503620056830966981093989005542057648695528646135020512636256395261359415400315574331207715298644659958854919517328551427814903679852954397319232914108122766636635057248426788393089108209721864121340174763019292094472030595322208004187901434702870663395499224711805928344444412735445886237837569861824399111609501417415960968422202577848773810997420241036468956019620137331287921832902916874697906749643776970591178010958423022854244634430674852645056392946225524097433579768942063622022927291446214099374406688676644570133367287825160040536187534931393533058554989617110908839082803627984533090570635185071406653047781876283855214440059956498043372404465547540246103081738091900519608682598219685495476977063762291393605445634357529762762589169039135584931258440442243543948741300885163210781257796753433884256346007309398982153222866961324847501386962851559217058404115223964566663672567734144961819976374728908716946786141635221311788887780973488935190181707022776811505865763816435670228042930430596953398277499332992414892882832157725647714168804189596862156315828311178704397979069022483007002381169356218079977464990753198849086387592885871645222858324771318969371079376776096591830190677448392536171400006122473379165560034721466421934989060519458407726258084522822370081823336361435186502649018065689449065899723580280718320385028746369024960515487282201069439340736800319059941312638883656929851567078983938253432421929448030158508518655608526975100882420792284018502477991448903801814789370807311354529456233917055839526668859798087962598525262243566745066824930312461919490298546402465793472207092197023225626603485297181347593171697249320446071030005824828314242022516048965850037718794955864099627116609497659117938072392411280497190938800353074227978258985243633150386318290330012879941930219637164182616089133185861713022589087695817345961864821971959012576149160953153035862579932171136620189897796163966153606344378454329771129125891030625114047929658821915145555855882566633699858201387758892174247582076092635432933419028765174084217354395997954792304744748025332562827064570191538757559478838946641959290745299429009740498052851289927021736487852034173961458036003142102803002851135417495137176302445361538217517323710412216206008947110290117023619515272703779933131873613989393173934977578430788290097274195415303844897882524396297926916571417349893436582104007925657742764811339317946220235519852551254791393577385803793669666321936899943829914630776310309929799699810549486323732885529720401000969694778511067908719388421903957043117167109626762961849617936062416931481914181794384543630630151468036564243352471380319711628008255967706814185881721654298373499787681783303970880951305244211526274074566018586387211086483855500459819415372814232784907670715684109914113299188598417855048107142898227411301596293799535414287006270651185894841967713875190624361702982372668368673315211663623241952544293751575663294428333679754463979234875566667802274787892472325025889892465165140978942613689442753973824663432268774255884210382828816010544803241216060655485506112753263207699353385118924787055490318039353508985351362429614932792676650455330555852250695221327434966298172400784199071018175865037968290963292982206312737364964204252313617640734520835138961628651904906550290349136589219357138480921782574993938869195917902310608247420313819275759833491065640256514817147302684868059620098884684994841480524513453508313831769516193721187147451344484655499923460022326868607747597760146961171016137013541846308619878506980748986110271480596173190133126991807316468241584886999449578229292403772199169457811642492215333177788695326890340525573437033214448059219925188320420783478643892711106778213195994926045093034695914804654968798182993325522520022073248228657294916180886555594746462072338975268101565260499392165441912387691451424341789168654311754839903403056969032632907954084618806635373684087091335970912439740994766567797929695627163995752110822419970737039253625868985536580064090319095172600833794522033954472471476940620413553054275480948546428142019799562817760536639804955562344639968498422214937036316722585658946280920369650311544307704212803663718327600887869199683771371146973158185047495034581864268047760801926069521009820816320045776701397925128017784738705391606007955524925265733539570707325207436122701046045187351414764579282705108983862581482013851731055174133616223316668197157145838853925526583582350858922138123893861363967351738382415175616228212679627888911848385724441611368849896354926903477925034041157187131575628040796244308364089789222759985976498548317560020895188245721328770335459347766461381898889466626881373109594373969139313558917479737938916377717137120083706886534144381272802694600600275752521155684473515276055143389498857673381576957685714879149341594152695655291396264106715092289666686799045928987137139311277981618130128504591208053244859528699672829651192276267882712990671538912727965085104129045739293068509675051946399636872066047798206384203815904490773123721798156933471333821023968784758164554766267871134109095590083960950848067881563594208613255684326797048110067644127547616593532524297688276358064905900146302715223955315673890367193995102008976816686204983995905919844707116574515255806925709988166217396824175262646895361586932739274401081460451318658100502291410962874489140676266945440339432211398996186954495226840988447232976734754796207268660927623356436597993718154721571497706304124576368162119162642969917127500914470673647022299492869706242655012557534571731651390973042752677996792809112873223422894831927356958043263529656301501415191642179765352620942036700637300971357044997251248413490672871711050905936750764334996137552822771214754763814374608463897292387891767647657191571582457229230311817384573555806288687257829719872148464690312654468797271246419978422003512586133322717812796752256884705130494648998115007827864149073002333673569495227218824329141868706330153193618945677844671423322760912986112734337680721405814024300858788586504298436825982807027149523008571794011796115705451418493609272735412150566515597730462824592469076781630841156915595895081485904723774733470813770221701945990101213635736837703256122064848543831640524012645008053699159947804528267035331385334376273663111469364837366032637798241012457328989996992470896028489961842474731086107837878058956210553223540520896518270763780469037548658427694679021282252827800447816387055074693401873388635017198443869804551654787804801772443557701210467729302713752214472452979246881316720504665403682237229500561130503028465343257346138350035787535549382862457322909494674980788674305066634345370788673240204776773598793135383265102928723547991630329294085466106886231490701475255201753759338717354695733335316210576369371815593393368816450767029098657531094326557806363037930852914739547805509232211565322025177996971268083880367016066368880159184325842687638578522341483272167271774107509356021962604367153474880060652740115975656003893256270517932918560326636290716806463568766362109604620184833836963517290071603723459966921138312015388509683155011915732236288881516508348705227558125641074201650272677711502596510125588250993990254206732252802556425140404935827534769408970972491226124883008569053674437922596350606562100124951181061468222797728275136237154504963842059484201740059388219229855818795287400717175613301976148992103957934534439376640892415854775617212912403364838216459117942232074112872663388470015664209402054381942832338149630002983099406901050806311553112331562009510678680162844987735592193597147579993766588076082719108406915735553971561093212728916382205293209082452593199298460786494858118373901298861987434495989800950029476280370303842868359892906854434596980856935593909993398838522774185029221040975112614371843416655704617725067458899027388210905054716254543481666388534780886679149683079805489392432243131735987949340437543168598594996188032269687909509018444635090851891637499010718633004159984670577061640920032312915457052681205381058220605858603651422579352086938921505315500836655710952591413469891839988715605643619126675280894275525376454593337060575028923768328949773104162963803155223105660887434748915996675368046923470110060346461320815858117243013012946920104444927872394046137828236922305011754629576399827804979519469351163763690736263595700764730177660863876300558417674922555281789762851728312218992785842465975622577947026447299082758201528914470107932869355447139711454408363856312721497882970427451932641306763396860602133235721136465386245376123460970896927004584877637466808167194336599203826331136043052445241934497758603198710405903450691770749593773111307764016955130849552158566704591178235889048471278669970657570625528161824127542574827527924803231771423504213123761249973320939768023449244200242921106273294426110999681085284283326837071093964257076496022488996725345641870269996411647867349205927585509850713661562089865915204225230433206037595946265050375258425675400644092556975049212892228212291085197319260504180279050623906037945466271816276142537005596639267858251088374433192576933257367033066031764027352069460140663592967354185376779940677192770920329480964609689871888461181764360490645073387566602401220813568110409176714395574117525566032315683660784070693071126586963269913353201962720298355035880018054158283806817496272838345968201970595256631362487360394950073617018008981771415968146966985136899115148586024747359733346401666975212396128916257132776347242893995866218283194749367788566038837401297625418155171042617939158153865093085919482593783216950744728356564154976275520898363329265033900891507026099054996619518925753659362402414149428245096709558513989268760163966452517928354222088829682149960461127502182020985440970438666444402731068306581258482547447210552244127373902837914477494588561620377368955929294685165113726403003103267708944701544058194904253662041124218737312825537171489049121959297811693928020164631386599402965175242914439621581448121876468462456110010664785120309436397459735203307300377414794760665527671419505802724515148044942084158434734352997550887694633917594535361459506936822979715534401171779243707139960129783736182971677284741059801200526245905949005352269469834338834717653236634709763570667957777139399036505452955348854106879378665827688354354059683984380169526458670284971486424768867530400911032429857334203491193341254259842064002496002586532842732514258571203748548721349125272296916397156362634553881758712793579396461742542310473900007808479932232825569202736421314624415728153941096417407055208983992675104723815642566419309254841268438982257070417053874401977628039249408358265116407700160802655722692143051609879408649748488357151422599854273913211323208770057651476991480756829969878929315131911244669271220456659795048126526424221331631503717677096678403470134279070786653711913101522545604715906524278763470161255947994269470546353676568545536727621958414252767912131884163493631843331361638336029909357865248151558534227007459399572707636385624699890680968703939785348896746069536185433118971060695292348381201997843714213750091950237308793228979543471869726590241671452891900175540100228908230593852965319286970443244522666251759383221048642009738154870105166809581303735051373319977531125974417248508015636257122386215996341128942873066085293915675547558775483167663789965938363288921892631399539672086505953678915261306245589194532124763345428854321261816720103235287229245476096793728534060481656781983851787371956839360451877278068682501073593868823273614254942272471922723471600174714503942400569046968359588883523325495856390759829672452620148305029936422764786288577864341753541585389186597666190592142561446586241823207168841116158766192386698258781603920229347011569947882211404236781844605683441913620160694842006388782946637906736927147943336568744707132047098047449125691696641699689382747819048844671844754847459938003829638856695031576478037286172022653637130588622758944310992356673267367064839731584225891866560228621956602177499955650565963650047874419338525341814298720668902496231027002312524643129243016773536438843280385751969243911448766286125474808087262624107375402207386294663054662469031630418346704785021302013617547159493912396384426602668382047346122547017539765192734237875905886571578106371782441457837856877350196611423413231807227793704265582646777050244942556934358662100878879065965743731889252628538302508194651327146269549137006086975849178171773639050767537877673840728304573520777729176974267855965080452468196968144291569843003504094660510267651153185822592410885168590152168297048493892041812247819257816176605667877232784803881971918774254719809790965666007147699394541469978977312451439850303359232348260928018244382168309932312381404804299944813334742248361576979598139233020505214008844274055744208176408294807520599645264751552790528490648476736458590695277465193523053021520069297635366386905667833084236861370855627532664558835166221372265688625202897856126586281553424751500367311692458265707362586729491197223898909230304886541052969859091709191348933491582586115138444448872049448156864424848109483482015460521224711337909045861467725024980892551782210150004709026929441436902347466056282507656409475802420934525778553798344246936252505997121179855577584220651041923438109443968151191496759503886536517349408930009405474080057248385897529987639394105618538327267667082970872281737709352502405916379836444153419064526833599234573096548536725526701966059631281483996438497235186695572639496951198327505211296630540699689728011325983686245710136575536178984960639930336741631625563194856046635534457410014318134563747370140830793436412918124853140148346472483107264121878779053573987892897451466804552236718887682344777185205333407198038342585169908511582913570293147158838211002410343635013159935033113784250269180942145657976431219340922219480655316626166236167844780725199306309284197181495666536153039232628755956909408302997943008429986325368828629895601730350287537895169611199448106324999755873462502721928891336158423431094578388365293549473168265700070491472526639930586275508290468959383484793640312741398746035539821933672568777538003594845570225365054690567389156555527556423530843565971915788392885333807456448309323542862012815365583318297015600404063881675192686190497512198843724163454663488622349424100045275085970284189720707374045720855589254025534362057845283446842810304522515564826105129479287416580828243797838661342910149922206762529604098499928603753245011183533235121213486877872264107872551194061090950596458111842676947292943201570061057773813798899307235181133948731021415772796714698967806042811193344797509835491957284123381331320982924864734434915789446857604812148909555596192086413496082934472870683567155528437340213450810791377306253039858412011948071934968681297422407179555251482383920439491694539722439714517121276123768817519076467658795424804762189776487177357811287296989961686229896531457286968543478396647580740358695357953774133472750349187327360262384261118915320172395566627065950405588532339785014677436814113176511417825072071335785598105767551082512398766739281258340494263787526203103715344837450474536411244808845448967503112487525016845622487828799586480092879331292196288054723175132249379840983354942756349206508875607372431460024225825467267819639413090758648390640256799186972419799539461200724734900349794178538768643267371653330680364872709384777491470136946704089757279191022840246297360466677851948538681362582510181292128659132679552063416291314423000357417414564512376291014972659311040669522494215263337900834652411558955809791169134311193273211634247318264609908298561912359221474878325277664346628633334333611769484558512323127352460087888646643479217302500690372310776058737556065675778811520919217652122796401602399453276263043108045672049275194489200766391587711950012268351598356808119922592086508843343277342888824945743907198462401936027702765211135293645551744684295101603173276575008775474526920722006369785420388758308273377473904576799670943104653622424545980484072685673308782761580237655683421151389774256082074761880634231603297565700444717326692988711040048765004982757607975641602042552813097831410019600398803806517253443859228205473751808495791875998099708096381830058038671732115578149683049289768608686631710963473070368240369401556327241125007171739552744086935437631030028698375959360635105840693257687519769860736700525601466871438846965081560745877089761728434666684591117846469123819165112032290705729998068877511826791427624902162053904414970565221135805046056227993067615262079477714219389702089309722626272075847336227150804466470111929824406265966018457318849146837045095697183320099896953202505922836911121937776778595936745491874202709268781066194404323033461671765690642719989467283417132625319774632282973070344955540909277466242356615915506071085948526249041184310690675950487135515404478712427259236520177594156592182479683878284303893058180655783055275879036140783816218521676757793870546066167404756484080480018009048838817419284499966008716474641065599184356976965711257297380000628697319532005818628473674678594683655321205910520777937950549689405072410675715369278863128227066777838863521176481923975178480249550374095226982235354909910839686513490976812971002692104015603737373384027967520427358728148192430159198057879019886454821347932736484737265961276178920151247025884182613626376743537297489543077733454948154230865256232515592623602801279285846148717049972723323528311403598077338974312809162184372573511250759539999131368719275291066968415552320574945571922179778771521759695547984405227973078559725314862970983438487845607425744530648668409094046312816398201295425443644444433979343853797075689501480205657388861977614875397533182359856306229069811224375867754060002760512099892340703475612449207716454355552258600491200649501553417925050182012530481738173132973712965092351159715115277409934943814043081524494618743625901697999187207913654094267826771506546980504184641290719401934998355780282757675474252938469534835122171393305252466473753195979988640687628549631336367370794694681168578646224652744706121199373557045955542198413747866911584156646023007745766090117380001075425683432128819158878603319625618542989448613297173288588839228364981523992356274904993131493882570294393283069213713592104787523458692907449239677008816908987925745516661720365830441204050329864993840584252094426262181132222007525054625988233396869596174433283743661649748195078020155732534667224102138930079527816467746786120071305719220376688957034148874619810335316195535938748281563971494268165825872303874777777221747858963069503610607678795795252398295350085098506134515559076993332998561444927741891738226921711221920485380519828006210309434374827282621936565682666028730248986510764229403655154143030994741657669464994621046601382418800713307330461668579134844929781955482559005192203592692894767851927124900096680711161884698356724511695053792664285728074517746482771377901607190021631096652167881127636803437347757842612395573794835731209804171774915208972640772787456176576508451965149175825495111979753076234632703098534101257824101064632496694192774113993574630892513550988908420468423984186366334639182582111742582863408163494852697910712129484304054708933651085557246816975969291151757670038240079184187218044941366720626881100492147714697870424416651178909277233076252942854162527578973468169055625921831608904087306346978752644897405992508410234553857064496944379118434441149725618790472213296969819627045106544399259290171946833536295235727563804976327647409695815554115033221829397119782678138886898899857618453697919402480250001181692938536661744469237156700444106144036103428810194897324407700392259084314767652653022053574421214766297344275653732628168506843780373201231247775175466528752598678933453903478080179660966381013662586415263525988146912286573383865252991542076620060148963219630728265454765928700810094339714491531146857271433888213767555748294788931408799673775312277466230422167690381081640595384229785839617420501180452611504755699075281526512816519512526150936533139902562057211378958001995607480869680602434586618611302356976567026263481416292232577096612179789646127192104793276304614078390254949752267623443406260425966122621626811551688093038529508446152535896125101668423066992046839690503915760553239921751022586120545350320090561311821994039604703230359128487498759585536280490117130340402746216417333062684068332583112836424561822353105932837606975018500718488785205974211857179512086848313225776324645322326881764720570755409662747675282583914208409099618750824728849318807915022486548080961293158249573537216894055194462981154303177835161304758302928047511717390394877213427865479117265897167915856091521342936589392184759281143905234439723262361783501829808052800583192337609362947976463939283157875923035595013637201242846668824016905320608970165988810294484859497993774565047802008445302088290601964060609897354072078323750640288271738888419738071215593889402606780702060051406667691712623688613082227976819632019083820136370757823434583431873231065398244128087928847929433521981041462307995956860764709310095680380690539140284427346430269469752846388127098708244820919574744621838197797468938519966441882903081009654780313810853137788424605812064517206953004957313898754083391460885554177121575868890046661519366029295017233880225265100465384869457141749291599011274318322149992908146204889272695641467748073968389725782666337665432991733539429288546545797862248748696325267657785690032799990415711865314725658350939149831155542155938974998207484447818417836169491260327129239189502644553427564586085641229240113150360027825104358939471008327527343833920758648692936421533778692023748920068738363321541258878299380245980043918146903057174588009882123185415586049968444241484510846774240512827394124181777856695758457795052936274266485648187905785291533727771519800270913710600874052665323871730794697779700337487297930200960853021113632093757452254090962307004032762587431974290629132534113092989731913207382363773419718974934605419791299667958550241608322214031363888525422622385560022146308193498106273657312780879828490946458100288644152245206582604808116892097851198962260876616405525571758704297524472322839357806977544838323575565275155147392160826193100536723645097909710346572309294550581794763161521990365100643182376923506455512986473610526183655165001536287486540320999231788007325182983737591145019766970716500670731343081015368391048089714305303930334773674088752040265314517585753981521317908379153060411412390550817849555418424933166847225313660013275829758998871815939097013589180005572531338243858753620327032394604164606440071319571186358487592614048591731316623486991694676562096712133152922313566352753820003526871393785091111865721271043469048870501075838874405396339765384942784395863461111302752634762408206916990290941303891844553080194903217821721258537923095034330610051832900490260594274506180555095694094127742936588583376456798111906182018860398016925570797654957426142444250433694187478387549129602326829234018305694011339270402803914709537531677606772545096312912503399464319523792434143921082319463052416351338355148759968484002647735095333598921314920858746846722671370428370934326003336535377964565934337844992214068704053298061057358097442625969447875907531042498648851748415037844640651339829371121941518124732936462083225212073524756796827562104758007815895416462420079237130901336070280098854857664943494015535865023645351778967077942440665760605313856568025443915362506952600508344069865791594953662345032348518054099483360758382515684297746558387497635284802406869114531663828796685900321978636351363625740568584782901979566030026005521818508476154176122458753321278202334334241351402633171646056689312281278308532495022785473785632046597786109988875525375380076225412257435407278660631301338101699967346698485799591077145586006744474490902524107934023013139691458048582103108692020624005988755590325142066459033263897399843063618045968844175905677885364596861899150851998098171637869268454557494081549310256444515078022676659831882257995484005782187381228038624188837961006267817105893889282699853784321011337868579622389747464619456283571326617758433204484094622831976829910560338516346232786476400016869898449878443346936692449961935827446690553818395051197042995923368965369254053855431690345636435778973053235467350281865953336883842250762163218735942430665369729107119067935726554999686655552820602662529413159258139850449470070518052383065888236746573732753691912622267510362169066691020280654633471514805095863513620857735634372788069084891845696027871802647039959232098800453076952287114612359368168603592478056344983271209288030654905262787081063341817693663626439157648555767272261208467312168120409616770157822246586881102059013962537766583120755186227166379428444065530981377870499571031124656740320846025858525355591547268095464696618792636833685489605773460992456166321794792357104962566347986337288171381297377661555241182988522755141626383081167451473666333062220005920131039752684338915445781507685941520031422243673599289521077085466524518974059022114279665702411020526306793929102834020826929175146384679841070912080672194638491964446499653391838777094647116849457216016252465724998297305404640155041930047407694219889104473115173733921380760742128052089637907698473405358884741892894054407759390767435664557020341527827690477693554586989617074023911476221817734130085141323063937193477777145171797385319029828423967721274117805676521978845939500784808741880793679707148602399117907346533603603538797696237247611954995673230377031277173038551210711196443371354545274448059503209113445381978820566384611086735605839896341003426185121791226013482987343656943325204394161974016999627444811476579506474451789057592170726114623520263513425117822183062453751130679350501633345264299045993691718453657737715421152359723447470925807698997607869392169383403073275551033466811004380691575773280711036386575666114491679553089222046139208364888599247655633483461661306502877194571981826344995203012526704809382840447615545142667161661593147101742341132483814024333375268859694158073247714592044436936415410121676810715717607578221830085952455440718142274881091153927469372568497246472335426071723500325504995442995882430566262095139765191498628625506948759934929270272562900483616044287391900008279082586218313272356420042391991529504301868968376385020070433211068322450833605329513245712303272225594231929645234634079805469475426976639322361085588789596802520476668620312117237903448118085400703937517893709892194095491000050369907095625448397326414343476880808359322271307890525384884871893171750750317666902137010077709360666166043026659229316924103793784152801910146181518530373713802381633150256792202459128735222906198629108520376679573350930209530866142962764573690015371128228904459652818444080165623764973480250915113449420008338498566888396290434363738427039987927439635742629800249071978094628430914697736958794422621580226023221627745233643266777522908027653661468209886830755369074480375728205252345256937191639059189661557627570620942900282906756008138900910600875957316734135244191255662888431343797263135219715943902166980964610972721452527893845044529052719619388131460390573314581752410545341063600509922199847762391423903730277426272728179652760314671862063512589719264727010888737370360844728247184269784091903059529624834602115138327688786597515033392738645009885570282857967406443150089232109257928734268436707504652896247914640296874497274779666400888015238488728158136103062527738675882956750303259302738094698897472198027442043114704583107376354282121957388887001755371240420891812510625456323473184313639981870304384908329312153071754961442076816087435276365626288087020185072767000135811060411336462447382037447139624811869017173611461370698199401411576790246646148362927663253017188994157837091693601939606508389896618122864354751831559819859209820840924034918232986283613945608415637152810912417669856816405909904662468875793883811730127263608707492707119941988750674885124857452172876708374122713710805258553606711461730062915471999230745321062861599661814064716621436098965536991147672605934972114469680728364677022166406861543929014626504770619796093727685661442483757836032098412899766782660377111257922120808896926888308395655018738705907672029532999124446385932007007695547664050676700119963025080944540114795069088975904033296286757304540039421388746815900406056835126465815055371743311185144679011227287148560087437243343293012621434914961661006808648731601144969073782981986323202281333078823169796346868524681624589556074094954113975830482360957717010913157921133891561983528748145028605251146840668321015511359570136022234334527359762400692832756408403483902931983559384421031961171017595823437021931974274083113249051750267950947484702965177000849446361664624407895214375970717656947541984079742248842192796180335950253729438275770439603973795993020807402947823415845666159944320418916135669590293728414181315517576774265335347121162059925268157388726066269037292392685222558531058935983464894506451675466249108287787173657407815265468677569628051590468978894770045296762051365958690032676355703837068108998221476580718495084934447077680786533612585223901654844388950342662468605867109249526936937648718513069810589206917040748126145883223400695943770525752863926503896518044153689794128205569064659286733002865822188073099780832972534642021162207423894973348207133279007502733313285844855814023247253444480550290668957467938260010398561631291305706446488644714549200848031834161467546255497343616719597684092332957833168941594868921106734876475013208611183889815401302443950887973044404205960407941879642149963889367391835553660300823996516189420281397748337792324757606426248119312185123189201049376078331524322503036197294353466038259560083492610703193590427447569292347955321286025259526364179843006159779348235625667592094629412178966796498595125303081446758236667937796198014132754479139833695429939920527042924780407142599197097885062413410528224082241360567515818071165203459513567560308157861114185670028052016136695484579045526976838477077412825320054867621294855954827307615348594095612928138952032783553159381415993987472069660750201879734386597194946154382604951097057832825527320006114346183493271487962200878730627407770357103032156404381179337189629888628546337656956827122086089010038727401526981225254959077104385988944436361414177402053634302577683053346653515466635794544930965292136197556830231265125486485626547590609996202697889806620670482025947517864124785268026946592301215863792053801850535014676857454004290860807408457447114120332799402369524551562431320631992633400541757035700853523313467110972056618189185870299862696210332200047249528444090124869838876210513077877181246686926057797364385114477734737391367719930468066958855410193379879227501320883780188817546167023535539166551514932207343382840670663359515049137628672012664381853437616740940723549649658953005080862316594464278668602317050703877536560747576509148801980534986690136660525895526067155037702712228039569266384283383247621448098112392644584092914282393334403339013484896966179634906042146152172867384252770819688881384164502627751997543117775181627930299595876469791733796569899456502790259670411543744087409037305351863564932605396771194660638671801838964347722276045356799633750521894907266247296140692333777664554106252130465535860930426267388645776446825204890549579981638294817744457990955516899176245817412358043781517809611579763241926759480246032626652286708800307325733116825085744574814177709515437278477667310182164536567603685506494422034874891909586422740282407033104476033876070314566520262129476445080570648546633610326079970033593421533738213471912853560822071251955534447142758275295778736916817912328208084762833757786904370990400115074001112417206377223116316634210254995139413960543722417698648082537558684232095902941493554598962016405490938561368188248925778182073117351003968298976118336135861100297179810662207999314164663558080640248208575080648926387059027498846906628057351647546871514788273103986452212864472202349028875843697837529210453826547206572163383628399181475772647438911576423039364926200339559557066280324280395129898843709941583449198168397239450336909395575247449926962709221715902087383582016299677921311766743360181470459621008006542695488009524310774084515696458575222310370236095214429549979241552449051694457175250129326301963930809795523454972980543111922547050987599026549311820734556020497875457797009664713221961017757400902637948099261394156045465912560831866926160902883716100981603983823184273882250608172862791929372450919687335406893627783215785592874924172656776645216023975891941315680066960802203048130057944705599748125179128585157729481128867804152977399825955417843100184681991766774000186396178765049825959475678298123043580859391312684005982934678932473428677577299198890039485467341825178845247776756304433211459393966006200344390450326158493575237598417542674827397003912615514924665740347303722780472074682834516856984052693670843937028699283936622755482053269691251282291079242651003324325139971824261488462683643148954374534352102568289913292470863032585433740287225480424128963807221062223015783219106429284747573645590624915788466088914302399319143448075117367194665734008255264176474562205963501305108595439452491089748590671661647584248870063900546548532608561600841304696930672283477646600944492022968251485942326620486769967970598259048404216209209173925479858793021474373752116164593032486029177432756647444704483892324696651842525497787126679269150580645979372304848765053850749174083977415961783933949929494528712558440998194614594769470778347652724590632097094383544206863966297746575194969679191423487164582622434844295504551350159914984771609440916024282502504970365246767021849574439656688671673433411352964217252644355029899987445632250516618603715938126111268398534028166604713919366653920185356810420983963455600050188518783544899671570108785415102578045106834593166282197563638920858116736058264210155643924888904122976463272594680469628914836879636322255866934178526086849769354971152425642793421368562615517049888889197719498575604243445898084141374162608286261420718482804342885521735327593371784197677758955121224449589842971243538153138449769719758579842088245115768714348812176704689068523213914632817657583169716533782262581475812204554381436811696634477765347560201219733766006608798262974538787193481622476980097538291625996361146235742194833078457590731393093210052839352875433137761129068445145945732352418412325442452641834361129484973336427568648385219512251761125690967868481384788674993258501218062232794179675271717880714090143477130322319302731337811257830731109396363727977645033979293771546109502831383333805650958983919196296970468837230694658340106775361136158284133625169364401722188287871952463265479246860888186219012596284121906958340298254284145156677163110089025077803669601441924737390245162854408966140423222716659699121283551564653275494067172829446879990461303719553867013104160678716301057082225384600591842853269496008877818672604278358065618714325491012435196883638569695446341324910958112541559330779095106986532510600304772382495049308486923221563427391961724435862936695058919615650351456704194035981075237396598373694491276005211570929998725139892643421293454621101767480234339545837786827418733525218375821616413465995310305141493146894628372622687531039850745766755300688313004895721757865943541530857226162969367516726529422029705265398032722973071716976217555779809063875520073591472697225015233610555713146921592364961695007188475529502163134155958190366106843254010394062414134093356570184093455760391427533619009296668904330861709093957058238572178862907536368749671626977189241460057856920453940132005491611049029032454138225966341708942680472619377265038232784862063437615686702016266032583288408488577329323362629371188891760968351216857341058914527902194166131604576515913654178580609815229662206199442007730308532551968312337486787641126189342701384476199635474213153880716191079029104776470092450709093327677531011179160121095186762160223323624510889535475654650640854188618009943697773840475172689052781104844126793167335417451989320754394443104698824313085770282455313964656373921576068108281106776307669600324475877448251404959681919161522539587057557915635225354369607481694456196901513271544557835420122759905023389669193119684424110871667816549047607283709536886542620289064157102101764871595803716652832418396141161141679339434757956509081090648002608837688801311217986158628343066939114339796601780726126097357289353307686491391247800322638460235375532013005974000873784640816632638788624107584685250667530751064580586212018149407775444723888289568637346345847662730812908189424521577409868085619472908360121109895845765445871114183693273227639252234454000391974973890701356443132103564686156161797356387440613535438530643259338101673411150009001582096005176690607517432055096417456672778235742932823587781010986737200331975268312605806242584714046010856616218564530021651749551572573277910427191292080142388739222294403613008037467522101797175946924617970746546089694933913990464996649600370813120367127268982496829216775488287350657483907573693168488925264644598045076025428519183501781297776807007233453375605340270719597865413287150455720222790765054791594054641215020848889556017977072026413845919933970174968610292855122925873291210334478001519082329483244748703597052874258707582602997864884463535973143723114361415272214716591515174175927755905107211354644640006635559974893107705881430577364891979696301810402670526628459853935297722911768361400536601647597144751931153735193177619932061642132714330867475417371243541071668926390962544263799595217497147727732781450451687635645753558924022443553683971636512114198409062852474192892954437863430692494900072732342645191060717275623991980147633025431149740087709996528176752313543397475775810345789446822481211767897293018687961307357390762042875430794352407711761754566190000857643030139573002990756216225477170298786842629056190479728731260092464703462303484739308839091654292307689543855246701453677883120951183849533666266851246678704222723232661178410692348430705732947965730429389261043481652418004652356485045007600620246256353396394333418475834316007500271476137975134900848367302076613366233993429218700774704231687605138277594701778563088323532834187725387242866288399071503620192571326230397237055927065394404490708443037445760478686525977120558003114949813464080101512607789506862652325676310629411454739382718252003125217434603514298146217019006128827806105755687138329905280706372072512588273158923329339438436146663780622547962709792496185370243563286996785135683488417526921222415283376357277091088610527524807018183308566123735541319279027688267786906010229931132192267223248105298981841414218620122308896902691840525098216296360216191446852070050871416317995630834540577288002926133506403396767119936873692120954628268403909419384060632849988302277598077285130396013286212579713198214282853826734533761128628795230091380664023276276917714312970517004837660425323609127809503146031667216249352582054015262665980191319108319787439720012202245284927395214936633681780718282511385618315412648360510983894686755777296727181749177987441861028042146320290070669351369683453057055617251119622937896915955136494142964961663974594154055176062926706230459619908001849698747368950551116384904193318503981605014112852833593743271090084206710746053291836899821088837773211545761605343421670598818095275632725608097931753548771470608138999329806831673028229997434889332711087450878805902320711302070699054484842255176066573571881293966790573840618887450688563070295728572049528855925505123435107104776854684647894810770349360836658854406618478651493675485466239185596620500806399262916040920950109166790599021965292394425050104773429824595819878837172564066631878801676680980039874104077813223929993644048096870401364792335217659987279343296521024443732921187915493569767600095457832274345842578238688257647674214917407517191074811449036474282159142038984924500490232339249641904745367472058581143194228000729887664569585966565618452059560477328708673836036506606865035811938318903258228401065091683684944659749132724985381308228192478168413603918711167240783692006750604182888800819180488932342536872896232628280361730042634416636595821932512061229557581384173652083852297622358365011584991486566022011194544091847121181962387027021106306245893791804436395982451792614167924442949268337462565706263263610951190580947905007576591405376244696855147017672800612148584402189393875229265537849662927254032280303806150285973314045125220842242880730042363385957901113252336319925840425759415459874541146808356981448800842892650087611997339955746747606671204031997924944703175779340042713534834644363364382609996039422026434601789256595815587058083806988817568693374198963584426828627128053092220185535846794731152187354870415419038444710750830550138805805961271238262297616227539220923908745034489106842808120096730372885870272856215117811508280968434646669570661761124506908568872495035245920644892587405469742627853630344970298795105395133342530263479425021814601414177688605799357612990209503971932811930623536702145054643637445286650573784801882224197931190908588353375418253360195663796380631360600132853765264236156303422468121519223142075478610391746342485233566286425258242913716077870853866324689609277904962412080870438724535694493343190908766059417855694262163287972351795604485363700246732130997219688509608464394128458341440018271864548227986300039088043870364227646085463674522347853318942222506725113233635476587995582161900087221805936355954954905019293183097302468762962736540184033349093703689380814929646388784895975014945307026433322502496271499949487283911914639923372636383318549743053704341147559071031427578050212435100207965094482563627731766013758465562443632372110892432589261159710206757725890646414305503733795331944450195467166393779435535128576894137121511660643127479600040700829416836662403780468083595971815540386954074261693314721204782546233330903568436035038952750486264864375682624546386539205616354392147159168889484908086451693782678443274341117238123267592398129602591676780761796232617161617352915775520014176960238790631622390517041057586549272515665756286488088785301701526553976816068534587664100256989358662349084828863356445254068979116253947123784431766218004670092887166249946628680025123961148713076811842434973496946777763338963369804762948598555342613513618046930325322281922101281380452407217824171648346362397258534388160618025473143932705258343008723092520886508560422878710040242921292386372515511209715178276943321504654014727054422098261470669930872266163138892358375691822308582570648126664886449251502301785615716033430501405150904524636902552210064892778746655904254721394895597598919743230588692612359444942473850346576057574767106817369245957751250288875992419681012685932360517238575400233206059685236890191536473703110484668970801270805791858758134388414602156790932841005010205512621169184382371431905916138609303966382400699251852129176216223120810609945375550159864757174052021753769701555897511396887831633829741370835189137446499331591608131234703873027742521407369788786677061508576395082888788130477379344362282515143251060012718845775550022604508726614964992921699687175103842475149179107645557783742707956972144980140742946549230986093158115642141541980437455886955032010874313016261715997048323971027196351874006117421244801405599182745463870710012673195009648932035465442730554312981192655396764583116594959816726083456933551935980112138410117954799647050491125832685653020181819731939546236849948956977637673677963559845155155211106166200187533905247303326424925543807643715868938505543180435876154771301055941152601374926951925495247816409762069790949460222488685290487146720973905867869007402194943459124902535653848909066677656499332493701970096219658203417297053694444515960989994876650532230173419256856913143553329922230354998456228252929415998105553356809278729894182788002239021817723336251532232732635877040193180336575448311732046854426324147512327329406477075795232004695056564898102851967160778489864696072035566229794513753019832054396220317696496256484279736160132160253129836251907602666885871534359879735702902272742773032532000326738453049400489260750416871080665468564531748942362792105305328054419160522300431541357747084238318659999818093618460498164347109850692684067098495783050161338780468317906098685404163523538499438045129588338261375688264450848965231643506123514166800384021493231727520923656045454306773689875294242901708328923575045030463270930233179745497372452811351440475312539198997483343886005544832408080451100907208392672590559545364586081902522482228927655548287616380441053396128959698828764108435410354591324053892964447168988362727623627380199915124760537111739032489838872388443062039560386333652281801771152598844742689044597734512269705798700197593719247211222240624542954198793310888625685489232571042952558672788842176839652498500216035885106572688456204322706140468295524906110087553864113357764896988221313503040508126732107637961738411367980308769753455895456134603424633391603288554373874992320910944539375590854152474307883676302994243450490568198186048723171789803362306383287490011029516630708375375641032663630005379899527968222584073284418061665478297712167038834827219174112964365387207904672759608381808308947253488786610914377638518641597101854647086351894724493065649207102043229907771475548238533057484423031429217926809026082460115018820226508822743392179172938665720567466169872931112681388637195635103150587231456642394195285249425395803506543618050367716213957367950760841718303219243158602580609764467467363425941638808626069618342152810682511652048572441825287019925044182932585901413925121792338990549610228730440511786422442375233974843338062984206413343969424856251376779737199090417401431483648479030685945733488125638795612776143573864639368878578181027855331630533301127141160756940957309455867793288836393561466618688937732648960525828376691098511946825393440873002232770923981091229334903284138095280626775502647208664881205437032214433465381129779296528397310961584117168992473704194138492804396318940376920710529103675123332393546701465106787752515947874550458804270417964418691440933341789000957837139003188837046511968525729595323258594020308703519526131606613677087028753037476652084623220504295923265196706760237312397580827768430596934159569947375690253342415423423705471473126704739198409620868647050984275095341855091475293524181443136885715819314159180159836593654377852606741680902582773884603003558003392305660059907212023849438506892393464041572485117305197398189440184114845931657676050070832541920166261180725244940109776964475228564925408915826777655563541294100257915936251418037676650524439205339889663440709150565287442418097711397468679630073615735568449964638908732914831375730695357005442578832703279221132032782828169049240248002261404890171218533601655976196672700113984031088290752068508490633190573034709107432252998378367604106166591435940676850633154838918366196068306219856145586528847712678174365394680149216665149181360023961703062038594762708675220996115184072214278515010336787314522409373013931175211837912229876660279604703358159842699782750290546336944827302364146930580187961570818097241345660006150958969813629318960575569403127562527520199119031875276399254657778450004950311025754066031101618923718906768078885802888354765709659076980421527030447815892468819926512659445516902036079044272839043711639030077299129582414680795937989280672630864175453244417963755033647545260321469175405744896829714205224556857236425653820913225723029370146003408458740675369530942883974483711418092101198617734873431973681666201471352594440594778647405772787089475429445121059672272462279291099031031003559601943669778803706241251290715542198138807488030092176821170505490391500048483124818189296876519338193578434315032799179789085349729124540564469590446381574630302869856480116971219036427623917031409677522749360246571770128566633746040367683932609159224610284846226330474119576739008436524375359551865962420358458585781076885755625432179548315062607006061169536271832912226559522722681768243231880340637546615813016016028772766335663054163546289206874298451285708012332531855142252350198438087696930383425411011430262843724992166319295517064281496742704811044520712786792083198704724351690659776833689935438081813423779037400086692535564256259835122109540969306775027321919407192202105298657530069571031805592389868242418259073758903010737936504161901200516421811022004318223016118091030452807574797615919928091436377197773850262607931403100743452619767438080432233217363684467149639927263587905743858529665718026245937386420431590243474550718158186753568191218617045394799805870867179268828032716745687673937802481407305172592023592804729393519337871210012058213138613906242194825823525840242990014568275315713858703032755066881344025644912277194304789955417852943263403765551748279094867147810603411995510692789377255385462175924489976134867544769843344647714572271635844522799945482176149509733957125218631272778901239277261303588677060010853174527337462646880957571540609548265298194365468786254935348949044204842872293063679675656781018814440930970287964998880793698773871376739506854119891833283478422883074331634722777393236001033061369414821719884060959222413225213106341159565789939784565758684187056848895622219755593630546211871738237560507266257234690724388251136337712919189356800531782754340603906909656707280015628659579749538836025040773426101550183759945352704306669206844484270062265555147518251395590005461588914382070419867444517879318983480446825724303080490218346829037681489057229015988573037198895285908465133572074643743552211066130522386225272601917998282251598736071330722663560941512740553018372622738906092006966920118593988868285229539524939305251459167491249779984370369442724576218405681667630157562917121857322522691444008289739080019319340270165673979000650132414944686573475219915266075588609321887798464888144696641789493686208168710199580583016016443710989098710515853415935748094232228127406536578329276971513991178353687610462674832562499346689443348397156860215857986966722736937596123909994678730325177166608552265097092862009783798344039500846337041535838350552691592630749439684287790190050000263157369590381021333169717048136539854941354324666697566663700611616709867393260608598186161583461014982039391344252547297197290026995632752216341872927311355569363769130737289857249893858033424754251440630868077177906669896471462851713284551676962146397260648039001485704641223867188636285876328840628188582451011882192974595997609154382753860080990065443776541304493535126768571415839132680717140731053389285496128081038936246320557094439497395382678873871962614345566572042971666074051831397475567523166934029902776824814705837815699615461785430823677051362166303255083008769861621233818386259182475133785652240442874765242419078045723034351747295809223803453379182277189167620821273982694788901693774584554365727523810286253867958053424971356965886610236196134830663962408387460022019169114917450482234331481033343722752447018445623540331156242472595082072073641026339095968445555001818178370587855353255904116670247440910516174332904100883046956107411066077290965846606093363253730656975277100851413813239142364971635682854414253384558176803990038992001653334823177229464368927474337348800585778875240707859654418878689596380133884836556001624520657453390072710415365000410037987675597673103153147943158825899069119790370817946154056105756430234353561577253783668006381879615712224133004024659143955624320422121383429982058835780413594557090335583888529650478920423024824408828712428526828666389248214205477332567150341590596390473799636032341100835347962763117777561410792369764146661439732257995298104762149319201351290729227966456748476440116868312623648875233393161721807367789693556970350897934837077907533771571328202438298284344881915783340386138261820596036490179417479613188372672839544328638803744050644780028556460896349863815611022411624612642773577336014582326501296883513750760914659820759227863202179941169891719409187175579076569244318327045386766564540743010496750515972109112600323508951759312524565990543422771875781042586593167418786363877382794304754716985892365124007155784989756037643790287739518686322604067291366607160412218097984839419034813239021038061453106437200244232332159533960195773872463912539187277917013550113262077920956924495798445444855576167738910571980443958142550407290830264420459964530097069531202731443632326330740444365410967082157127507333603927112099351852577445834313418946196738149311351707291701501973129203011227787962415988891111260808890299686335141258875993189096703741461343744919391300402957103751438590218672313558934175529444939067248704142149968301229632482233632227880618342214049098321061812024925782807296180710909624161790744320593702552320551184019404714945755470882383003755803062691133540182975179421139491739907782052597347460857954288590911225272816310383440031344596462371900074406706152073558031959632113045453889988845646621713185071172507508305004352624565216291778138989186529030232969634593504165530019762357313949395490108640896135251877971580830452781340845223636613963008714235206608522378455350860202407504895030218503671488932358508480095658808468453273746424587105912060217180682606035429970194744003739410142738348565672629930602962909416113776623418619356485008375348482991391961918437683135879881699256225781920796299015476809686127375898972996186055241861240883238129036002969262608719594915451010184402773499143230626008766801378421793241632873691529431338769499844995551476159283133858232333761624220034534099600771051917545375733472576631097579791056096356341314642053981614428931614958176243028170462994555133008806222735573106679431388269558783409813548741231543907910863205208010083677331251820738121317607568300153690363982408062735178481521138250799537749281680926363482243798144797050926618273029182736487513245024878601588970900142349111439394786829322331197659335323216247499962934253709431557210874247621184583850616837437098183528314305538261411359562643589441649680320667121256555810876213721825449714417792199719254018107521390754566575930874289131551411371136022072269449514690373261822619540342462880609007984809459289635691743798680159197911673252853347217690497090049064046129947698072420353185067869904828664760814852797731577860151810506965202584710971976011560396950607826866527633458748649412334940791121191884063448190644074019602602329053065423798812327182049027417503991318090479531286921101605172529052253113944385597874152669476925127958521229284739635614639426994959168107191134957950579027525578575061356181121292901162473161512348831499574602048399388141148570912392372058659582849183246914487126346145913912379805823802833392207049985706231981247740265326458081664672418657820116280071212832516240517715555617013402909516556009876902316723407500702915794053720072525004459388857783259373742940172423655269533687709533318335164236140727848621152736479883999128513964768037380178413696441833790978374790648634742112256747586448199583006535213911753002941056557932064561918131449428946641330302325406287274020374323123637494392597843116974165702812350365073860991702960313490803956211186835914376443477697237057382291585417711477665169805396236247017956133730654063775000870840605015769782847958350064022745434330303738378096709353237590952265272894030751474615240938395675425989704818433669426447658908408818463375331664742087440606719941465772700359901276736777794704742013154752752154669555484353331859237686358367987357566416627439622683524712932568005283791336801295581709020441660443711324625004463385090909385237616869574590835525717342721476309702380975633426737198919759905605443160645546367061908092744444560909477327204742770809365046471417452836688165252398916792836367891609821427772216259055917152734628571227206536866933646406367374527437612804628276859538906205887391576125660422743488915785760844094025374534620469560152744947128624905482153439803016761132723818205242462468952144743748101538186451619143278281525950978488992426642153865565981213131800815717051259760389050032349797429591960726597118574443608298465173989309848071758558474935569840334776767603228474948346768950381284223878052482169856743964479933334253317174240586782489597990189592217891538088325130064530280186009612038028684317248790174555188237191613743192391401542290732254910250578177931366962916429335627134085649268133142469746616804219571224207233009768627480876194016447142093221095212784752268633037096017429481989395082254234126409432275825550430593020509215207034263087145959564183233027240810738880814168608707918297435344513868966778293128731805057775683299777696253839519175086971224093939822871507139917319957072530316997381162461779849733570866357086717493219216673958677639566220262054763850305393083293830958623659816542299210853540885522579025068405338054150593436075731727364994884688923332650032141776210373081824183650694873050177453307899025150814978579854702212151655627596025934539581487357061084350705446052448429372857023913734026347365974671783688656558097344680349126387784594037611336977092696420205380506045165036066621304200909773294761055482043255276759680032880052476444988897504823530326943190113107131228572909258743631892004662360848469515791326012627252118695418253801808512975203796162279193204603665926112144464538588925439004100819368435226317074436414736447059034829830427215076962741815093680918420864287563725491257769657439246519511441205290604442447513473893540909823382281455022890218341279692074963093829404200515519541471301626292522750286176565554094490425051778684221025116994451929128682970952320457711867768030693817691781010680047741244190379588589564505815682470593841638482076999199996845980555744239100568728481173637558577675572943832891604880373021517638145823847319577183533390461506944127188196283138529587355342739412987978686984614235114609849092488559748971843588686893095939820343393228950998095905788253989629281547318444571723021924015657071411182316178342617322456540529492708343833335910176265979769917782401511153598782532716393457699268007978935407217558918033619996171980533126445078554861684267165832673786025244235253958806298010229486045473510890023186226130316625813962277918093180977077008722458182743459880671793912884038055454498916468083224633068999307290950582753387066851276226011830424024625833926345627884754028258188424053124501348915258740143881463080692065040959235463490435245549985440807894407867614851602431373154511862050474831814468002680270878982733832981219556634379896245399540667706002340961451395986270491227805303156310524417589343724261631822102092478784027002481441933042147861983462814237584523139970000898102687968448094971199822977412902353157313346793818363157587690791583922085486562990523177070383792784034004039157232116065544257483551435181586424766802298694068637403830388412537238915501916010974950549368011098235128251805480764811559727794569793927928911580883164431400224761527169804265136181879943487332100665084993658064823740227034451838173324190023721581443598098559768481381502591533014623598704827891115995312214595837586262794928371946910157329261112742424950722189423838873808499154024711755125405157410942600039785628769630031785748549210241478666484989999490473543838721876970352828569024552621748761697687345172515542552753142709281071019404010551343137654798923981068425334086200649366208263230960217537878533128735080119612237233657463322945564571353236431168841423200658812122046695421952893910183419176492842745924096386666175240662057726141783338688488918636142708967135701223313576637642558813525539564287806832082581941239457356261341362931401157035802127788510320612908144888611983697665409237292836388285643875484481151062511674437624282773886495651406483724954739132137187934936165670963538013104377409053079030954758886300424587836479063616599712283450161695541496128011817620799492914762363219344579245090845417996946573376662554676013956107747245622277824979229535688466834045773469362730050342463087004771090184084396702621797688635266161156562615595768011269777687532599869583171562750675988461432713713225267587813934439094482900558745157493077736761354747768035565891461898466219617219891378972389243878999928651797462504995324482332902710325737196949083336758534969464703584563619642624491346976237663089087748768495770939703569773440065717748769868940001533984724742041777384645238394289448292967552864773183231418115091489330603064703359400366638416876511454691696196622542005075888255368848396650155484510454644990058652408699979513990727906303793731755709417938356586205005343087821105314800737415174815415127198046399973704018432869216448961348177603418235603833103461562387023168757713439804066148913948117176490104089156613220848168615028650910827201542679860495263260459869745185045791359423786247396092310084361551843072193555628269241810798303317776182858748774212824924856219480322073096990366778874383837357669719377939061405652565587506922313538048873766097170386730920969815838838912874175571197711985392571956089620211692199493389568661355415872293743939962007488956164365007102423842087576951730078039487139688703852798381759326749988974684621510238640831198846467643445362768079454242430396762579794937757658154984274672468893645362241972634087491149943695300175616099435240673547820256738289335545945789591352844256972701643481456284455668098436206320581716388043748888076885200178223194150621840774714963122402170693399906858944053160193367280536573531712472992030422529406950599050809143455663155497026767126042309188776630440850705719095616418269825710682707883027694545366225357503655259235847893723365368513762073989418548659026724971113042944824041939603862659989733587470677024891881970761895438466976234165090745598421782972602713703833378956673584714409272471074270354800952274688332553043629118706663136616467833116075491950697839144895497020904106325386391468463897333658408190592832446985072324361170996785011974732394061549525583680049928348444291221139545410035105795727220696019447059608030363030937482193720851098377618545473064222632579663623725335487733047791623152374546218821241768431250493322654283210675129881162527434414177480035063345793325736178808565805029627754451019250433673604006766877849810564067685251155422918461539076619795696136102501960132364315962205647826222430788807591403774068306361820453048043731402464131801401881161766615110188256186490300412336375109372199133927599025296664814895383687304740316895872409832363226059816385985423593431313829431599473119723118435335085459576333177385534235580717563802876223229455188929705775567370902886447856465873754581690224013101729278546344275491443001505509237265003247668243089010474022894702524708610396407483614335472973943138269044416806996518654596319128161614501567287108395226119000270361488598536130058128680687128757057930590358738436274808595346145441053125524760579166147786632089735125359246603006399404684203398606079433208173935976642672471139690035139162415050500177011002355693819594971910676428658857539630841560621929784165565929425627146049749762957399596002704111821573405685472560485529785678063272534545501711181296254673299843195123989443717104653009325593213420276002388835894004196336018651334658641417142391306894600886646003670066466765354029533523209046709513290320404891368339056013281269672265410440672539852480445293101463387266841825273568555074158538103643931631566025108590523245501382219392237598739428292856611220566407167934929717608411333954092236578441387578667675378859983911919320822448423752211959323545643553189364817944090937601945076761492917967734412106860074278620341452793059583013555890451954165935507320652081905982542609853525306374658671395934021284195644271685709607025689337228200001265553010893794636551530887125323035623312243483467728136632310221321123957698507131729654515962120627890357104974034255194053088063711398714538209547068144096888354388970971486710134331026829797871260683444001603867879559221664109938489363816358094332214191323991871714244112497679940174362285073441675751506743234030384414369044835247587227889138778623581496899656262125368515725044157810809035222124233550364379875346003931649566175948829949917680085110507886179464612079696143037362503497384389343531161510561515552557490757499922353449265896312444821657735735015968847838580679774707672222682646666176081671703515937407924076697187958011489236266808704400140075308844507193855184011139833442521906069617907028239513373499620118474447955331646351696577125597130161859396269353158510205872045971956227306113809103682979125444206974793696298405352449038056207360381232677962651194005664126275051359414258096113990905595333041277087696786796688493797894421542188809560635388205526149897368924559516725116865003733888121731719833034799888436568499142508946360005822454241807884742855488090026694479828453039241853692468243814582194813300355969224082324161329498062766356684763851218592525055075820356427269878510788863070591448700077535483596030702958653965078365911094965562660759646745309969299066089542752105798862987176036760104964205019042954550343516461653997614308770473874033737844105287218905699954654022854772700051787614639835097538503731100801528027411665494412693490147420696187313093336924170762528729557705143589576801872296697435974748187574065296596357126221500867958827458615447667872266323398751678912912961416435157906082823964757640184295412397578937712923771096526003445082507214838915192227943020769385772131119202912344413540332868308843546861224367066635435203109762568252403372223759298492876931063521719763277993708623541590425233498277193612325486131173347592835303374573186163692288892729665919377685339373937644157028417959847072286163045792028515465479100677027357580320632112559684461016117606163692981662855441502072689713720639584530304932490248890983336733870654867937510893199988129773644437144059621808681377506786286819355067916635093669025017277809618639286767570427113168432809469935291807497506107726561277640213095572906672202084618200192396978147201786527849748605899959825919345188272913338356232989581548827350394152869385701332532444214049739470801324871287951707331473149847333652615846884063737461694234784838390970636924808482085530250557336958589440767664131586975894547290809884092649473706057434749424545445842612562968266661622093408444605732688056694823722647943793527977385251430261675616206383847693255197931419972773448809640424234769446379326144712538670234909653069210990456208783992530225103617839800932212562649451870401739727261341853635980996929795244510737844362191199856242736148034450124028078858544059727731377709565557306631977932291854296512880763751648318282240364328416082126707324374280697733377710146958104919786522126242364290949599687768185021597070189488269288593156937031491779973452823802545484270774057774013552433488601001068681615480482224664713349963267995218372504158950669225018266983641747083966415098206036052046201813842924657575694242841120119666142730814332596289606322653652291098722420500483516735741257461885338127640411905564193088051373684698764900047384206396664045408961037098777617209497722895188749427489098565068799073599906859773595207790179850407332063997177844735684489910904595853073934795958916775255759465610803364568931154494094939881922377593552226943256196302779446251082558725825411583225135244439477727307184452859030318918932950910708213827885656037065648882956263579570573355044829810835027328208100719025861525307046097826279596594218116049497553273452942472438892587203248341962043324804892599333999774311269475392389400571559899764201747693177539779574721214487066948075816259896804459009621538949354423107938065166353023701885828477957268294949929164365410677577616997520481941702558153647114856203006145092841500588339009033257383373130012489498182976315802441601937959259956311296600108601602717258557671860885373813308427355438417929951451425017597875069269510189353896055564909610948791845330495605527727052858917908142467016905516595849240861702012976893948636369050629532849431619181947002747713405693064974139974824166941472844596505775538236834583517087622712481297067336478453179086803398196944962599479302182270299689753822787047142994159140626229234201510482498794198840719450769213524114986638859773953986263438014778888975248827931535553400233356389925363644896996871064266312948069492588810328943193344741427540782217253649356579082637434815790174239150775561390484859480187499264815388469098457760388743263262458615703450604125147378173354357073124681844871736113376314277864250771415307477549321220811373394671267245847689685744491953491513864513444190347244865234658448065059501973405214128664558504054245832598944326829451930557681135048476508067707798532398792659928649158977190590025848063731641400603970154115597764145869051961005316564412977608406748999830340917330645102760662974133756206673650793271331354648166652166602430204572113472400904802096761147082902098812785762328382087032380823144156839333962308720943242302595055814101800532805445444912520566724889978967584641310323017763280273042766746212935049414182653684494945976341182436893377531853234749050822330529044757359942198005488365002855207858391409280252285771136437043972218695753396805388647808285589205874336406044193943243187998007985517740270228445251215561149384067508961869980736291981173932207082262403081773677644513621781775001960158940778716973076594399180024139689073295696322544527841938181042280644586911710512066159027438846465654884976364544199482707021467084274287223090155601983447792867907816038868853116932994584224451334399361584463710017637355951698728487172756717039672817724906202383926909300914671736216448587378113408082889276699036575216768519806046016415829722740480189255311135140258666112304433567370589950394377341098657661524055741520989901532682820939045839952498048344108207747138105446726377167210193175590217339583107111340550619464986017494023534419358559543491647162085464585820858867442571589592863942429734325311111404618030446019989838693424609299068990341900843399305566718465126638271364815742747605977970549178802734342659462646502595545485109913715103552240890917132803244899269511195057167839137247307432218670007693186485012188929664524247385629006450647682407336798835189291092147894352627375982411205470385397371371030270831629632638897160726440635062284247746847526686971759392879575311592973489743105824626857939606027138586385965470445464964809380831617432702967807252971738432387144754316414196785243067817399494735428482231467134362204935297214534422093980370034524377865218118450714782706147925594898599110984061203498344039040063122291848873795562892708809999075428196936608187159263796729379093658759424890598341530760296259372592752616161747713308583163535052044959695047637490495440036263311735626867245235465101687418533429551431140658726815434586042330710175506667237059868061292601294155187801281833652220093667769580346082173302517370787884953171446398828185813362065509830318571491752816940571677109118125820461607341634546318773191365592623066310656724891782238890451494690980436878099736690063786318820118061560898768999059868928913124382193255751282126776891331169117110958463266191479261033317392181947110291249387553455402175985076535428971637669144029455200646827254869212234329552696581830762575464449290380366552576555593606749930176749923543399729457536650166319312238613118357072844337450474411331777861103488518467589676241743123299986896321984109973353225396394066436023876507673654439282944027542901728805853214591020467245622723424411587536930706090804868382264452743407256357403129432671129875656585783881469224249496209751128551517125745509452756872819386085264564929393422179475355322243194641194780018316780574000453505122871670642200625779474442594327131281817749678942562118571535707409524751465659784550766787867753565107505617098860733711252120880869745866626322260959695200786538461438416107959429571469865974934959387400281536669392834012534177795214333624987796074977051389272420756578557522834792657661961128181409588349118437457731692535185489474686339991770053867389610036129969207029114082990248365274900990627056284150074096489665086938832402995457674308593407579533718940119137556119312055990888103091749353496858610493433528459518214065355985340886564964726539163408907894661085595008333956870699825519522791198357241778097633306557145463007774772833543619885981132603779919557047608452015326996276235430005506840752695066998176077339772264378541064670765276442012386006082479647296817131135437973694516281901868033820835203609806219571110575234476329372340710570337151473442301250605534517996644353103104651491342848251281970488886548805703924367907837785007674052240803344785492858908225516468798599868462234400834658751512514970293174986219622138243073571372300958136325350158384294217145913220163191934648336983679737056545794547450271824399864068059995963230446155721821283932988395041087694285178594520747662587601065901575802104630576697833581770306603760690196500274906597398917505657762000851600290204889798538389429417824014970986162818921197934164982162684487196748968930533410844048012169397068600901735920154163761966017692840295365445905344407340825858140434079220524846920665498644464081554867892997522291275677472741071316274547527057961641111156206232067877449582920001528879859336208287331064092614588078534930678975365475697058165423608329805347178688672091971728056450057084649055902677680929509685747935479620074591363470769829413952157141167634916125219631133982452071755147862964527935676510430766988340478931886920633553618645783292009181653066020539218482301865543708055447026712339352199183385060552781230438958607424366505840981708369898626431118337541039347038933896326381802220549975468712445522609445096830238884041561689193752045740088512509341340626481759450170631652296308165186950783738497129406018438064254088455753258396302092460279420513767176545835683915348457583439237497183095047712223833042927043847601474432146617347125228884097829827980803478685926912456197018092278350554886600428201256603430735807997026557478363045987166314321994528678055905171561534531456679059201946513080416614398394885280162986519619735190395260176847395579015911940884687920963030990457665373430644063527085546942988422390520056282172645304148462658886993824918092927676813478149582609976850454543107395649033873106908696855242248427522201142836622434244584835823405826781943865302554185219861354806679776267892060836740578228078140142333831010714447203432120049851320264672621971240458571786775897591711207121337726460988536124137578121364216401742297292260187378801671109047890887028261671790025783225476015317909523467959041492142283362042355303975820911595301737116310140650203119648546079033395697265554320243588102318298519558618667580312394097092103139622434739400711667251386310798792547074662390888633863418875875732980291853626028386278782571320697109268933798430833701912516428631237112302278534863636685674955936374308455922001008160319705574472800215077934988518052236945077521845537816624869766231340483102701278148738785648433464889040663059950762328133725492802393111212564229622287025543849445206580569771380495185730736550070627889523761143987392298325379305072867747798515200864696716093326554694212590380882684989680857462114814929263536013663330918593023619152853321826075898460215015602473560213917787669354658916649732192606520426162395384719683794817443049794714810094435294383713897149887723723542769649876671595121934015450369235726796734299512371187016552338345182953777476986282393903588925826750744893461614321527151680949250691750120140198959350222114359656869892637479359243324722942874672460540468971117249764965364034208225875026832885250114654238021791555897515890404084335573955281447582458829831942169120032433269426912822099480899389299177166034571527810164634512288708094898638903472609259734842272852007591136957114124954267923186323648343648492396909701342181531006095996454310399176972053426613792010142576634710471118522300943991597088237148820494179555680144509357078774132016433622542652364726496561310377128724690058730450273583482853668126755647219479523792036984802920560690396582898656166977494880204908860621118988219366365691078477595636229457889853892722467241074684658931766854003653309208077474397552497861607253029971904359441658964845156155624862062222821795532798043183889309972829895935609417995008975909391163397233142259365689519389289325031585759141368538060018881845253241225190226787902984383263545661682661742902373515867343036533937922491484092612154289685926093195635724948870402234936305323831539745678485748377394058584160797782282814718030193971625410047063589683588644785281451223317372440270494638433858900782573084314290539009369767252088693480684849025030126351747643921484491025755098282019523665751210903200033638732750311869356383093089944133174209900086413760494906680862443700531309269658946590010990004219950380032274339217809344172514860527985499130475055545178972967688468995665989594738461722078838765469600993858403609706503547228529305221608797117437809040758648245287674841266626494255250701115723938552145032130322348398454627815232488614133680649577568140515055894102932513374040133132798206088059039425228569657137217184565918347670749910635925645714350031928291335331888141213122235313346697805672517256263786876528029060875845218849634700594316721119377652349857168366561663569852838206950756987573793375551360438804341417237383635607743759829756532641192845950787898324232490202337988451468212563562744441820830365310462060232249387340528146434522014061928186836726901381947291181087920262234733554211523235731562996806276388590109499911882134950457298164733681914210318906549365664321185427083537415507329495052411134456124503948843679709693700737043036514845014295086531262826123838213866097379148697642879595129708465730662075656761836281645493920560584089500994156058705560533205200735357843673559502108668826326996761765305817488906707411412156683505196846171605377773442864801612486360817818122065268730761717268202941074087821884610547602342147030450996823637808963209050904723458754391817744840467119001966479706755685959312013141093890310092054912228162275249817891242081897041657357788818055731736321967771096808807285628146898712054758223621012470605479179040589967741058205082507913791399302353820488319859920918477918948538939173587914172844663523461690149296909712538534247712910205141184157810172063769369536558752656292182177558744850799477924899673677757045944417356775893032889889059827020198281572516443319072299438214738087607373589887173193335423914749772394405775373088325958115325455609522260590288507190047608456189606149354998406952164561620976358629176478056204226459466951134785393827175036537947377956857876843195813616672749682886736460648171813471574497516469795201102525097620939016535257157353758547227063223037978845500732025973751338380156319562811034802095060612186213943951275499645157962601411944025597725292042617497226696984230163123405096089833688807505183537592062532922826944252204545489276494646307814155159748002611156985699895394210261785480740747022677147788104425965135509821515276398719895613411035125532450157663600931712846225224532391229100319075212804007533296219893964824583148125506591386797364323358469742035863096307001364205995721398096495793859158599027524124245611223023314418074311204475087738097190082312015639556242854675418002875991839009575702886856732493136557401940266442627622461663247534884247577329058201361569321493236116332899966681997415478757370795866023495476182388483082767892117792222253967853039152907448179296913897351453479572772405087252551353412990790511502409319449593251366568501835049158080761627063389100126172106983211545377177551362874015101426740540880715116877720769879700333118305947268826389764990135570775320244501788013095414546878696257456838767651886366579400880640615962981140321814730727828601004214329373466937917605846342829088132970922812615204372452480717387065171151548791678608060463080950494141061458199651122412000639412469408830379505199571395734102312458664889227893539233106497501840509881627120610245784236304890243151080193280660845852124417488028789489299728703667485912939579950450113035679788215620617261885854215201641114902417469473060372071579889292750027923694163541434241867758768233450905226835852691932442618051508891658208337750669414648391846525122420727677535441237555140151866699109901410219454815557691663971556905212202260150415138320526696264644284608902695628814341115699150424813292313739462698966847006322717465502355509261153825728396346444285198105728805227375225443053734792454045463229458115966822886377525228413223682877002635879479538850878845843262124288359976672490156457160290673622467543415932935739064765359410238287019189037199060732133885657243537717716012461801773406576177571413850541600795793025407570924582062383400407189528966187083282201220582099828380297977038088040447749206909368219587923316045968792346716545805832662790395196529154551420454534183303080115580739154919805500850589940551525528825427976233755644600179990121675182400706327869903596379750940301993159637707264522899250990482300635747560920888887446454176497742266229869644851668733965412984670497849922416285971650104535054143720884938945985843758637370853450099539932418556592520880602560780209664720339529812186102839063613347350741480599959924760690663565795198931787561352748543818964711072244189933316847531704247692078093183903223661043438353770759914445978126323662266800805051522306502837966673400799242709570596550148910226001289678658547287689081708773251636094553961647188899301527013689973955828561354469362737009074481890313482863215800271073143844244832430407108785015891660827187375478075966847094712925155014190303361083590019374799547306172272469183997744154873128274283202218261241497898945762706896763473234719467554433737883586829314853963824827152651699255993410669968541846795269140499091544458668900167281927602866543243809360592943009924634740890063269282255780664693206879625995867081956980351096092041053610012976046477878462165828376693094430191983978568101623817612320914482492608502868430996426627788648775568492204400715408516547938349349296592040722379654931866633888803137212232429451395550909724628306269404186196401735721975602815818251011373634941274455592966358453304067659209980801058218921942071969745078471008491263972972769648827204761769646146814098950613526687671873708217525039234016195270247297236851237121547108859017692398055988836021368220176942084612674719211472280275938972931934107076796367966375759672466074242632054462134815122465733345123297004017043759389320484395739828817843957038663251546804213449611641828779407866354618010981242249822979846237545840428128762268952597646606793101193820087209273085593798952509595685144855473036776376247107169500575748621851710482073725086463082263217641432151931196958894336845856154769331570951384846832711660875130503388570486081992824095817855124689308818527990133600752048454651920956256252406278747818083071674422470067924868475740034141834664719540394731133477095090169970398665425294005946183716576087893026231315090316418566560377081784489057812983041577876647225932571396527322750857149892479950366925036765641007730373737603228714070929942404385584943309587966879697759188260075370355305071196389005308845832092424593510318556632263011466948690024224986876136612608178415962301978738457902620701692307980704799139222632596299919177193581178855431928361054785437934616628558336719423019338430317209221548365704132691211940791878607007039085040199368621691533807810298634119571624143362717621861194703143534115650067899570276239197795778439768159828820656783967937574150311025958913729967731088911516765629068891031612493925922002895856221258398228464481739630880247954466067683454904915635385239940245920369301228976553454100373285365195003468236584727684169539776546203116526730719307637132110496413517704286545852686994461937427826430200636663277898792270625766456481822358269746250054344222080296495083757597399219489372226040760784725091306587292600420060161369405520802096480463972989028066031900592013644203871529135556427809964546052796633010505856245173026393899754788373983908673767240917883212415975169122929451210440475821714680818476214839388585227299066001386049907935933689922135847079055167460276537803697702189308816684346480896661941732655591874372119438939638317544048159335278786153517569098355184218465592127997959317265277625909838665095644897105007942783634221338537842751397533059798739613654503483257321785107369935171259187142774584010267985524817945856063281545597037948398771126824397914198554435108966801566923087016975684088457410476816793627963500495490036272074202116679004122962812383851335487750903543251321616205040882786465132600743502488990229165486299221809565355971631051482876956805554557154420382716675848020393632190681867205673108977417494795991212812824599406823270809263185804474310827602659035709904161398918764738729846710445436110628299833574978936995476409179467874826819127584310262196824871505197563855046994710141021687138584782572015026478263279868336411319274919883018596912866824266081285050771428989202722235994256432679284037581368633325135237480473006745706579475795511108965921411849928927092566303285938338718684484669070749399201140235494848798960400352119647571695284978077206920667672366436255905560138215003530177250089951153898696308992365367137434345458370465586259744717076711749839909392567610977043579357519463268444992192431645973694918941252348465935238213862447152191096803473417014192358884258525706178068022456265093543013407258135905023511631021954991222642391612924852560846306229946554222281742677029331796888810554363337443438544350981649192892476069557790224440565426903718743427998780362466886981371400456025461633347320107692285453532784349843370899035579545607668068631414467205584574921428233061506919312183575264154053241926251489934753575403188131330820215772511108867997179784850471313007041194635027628852855934721356947614514788872656036097882015782348699226710919126098325909740019956176507347889978703563106766210882314914748134995546149174096131842999953582442101467250709240952292063808664955618155060736686060648592740043621818151675749444467970620200222177671867443807069711910579301026077826063901836620311114222904884665206331115518661218517956329312475510168284074988170535668591369995100784213329695293344753740896292142083477013633461179843210526174696073077285357766214490342673117501279626161444739929742963973957272347606941724831446095556499907206048341845340475195576785230468586164371470584473485436204632954820722646771260101051940819039045472144304432261150341632276731365517414862025323446838625649017055037847209858885189572960708128993791668262558516100410234870461408080296495605336222583644545989635031415914790197219153557377493881007169213411975813250850545652225026922798080735993115146589837768891275364677669050113961089625393415499199594492753638278243866659682211974844640306307767984919386151387243074876188783644129496425305037358433473892249171068632371463410132574236603565558102457612076479841309129879636574401577785226299884005555510429417944482803792392972213570764632286358794623775109360856649000442527501029673097982480108475860510243484389494170922697611070959509010987582297474937644116722074692800289830610444069386990025172932169125905130034972512406910253316516710075170516920545453903314978555543316900891967195487147817783380174915880946688064882773509726591185780229689247577824758305506617988118808699702214078147161100863569560703861873130321844792164028580332303690397300171462949758073446763259523250126836966820475322944340193352031476353573892681006575458526656445072700377919793214282216839553977355885617358035072008916990335631264707373311751039712415284951152623919262320097224072203835446102571260801336172532555019399794788112648129275434536137859313050158516503299408874673523632928703219532581101676431950570183579721407539046883211283232454621628330873365409372640210299356708137593721195486959410664900474085720736148897799807848422472653392340477702481397637528198534352508275707990246003166439549265122478081305016967963936463760877596118188344751506441085300141818959638891292268120580011292132889917818232282968208888467234666789275381069646259831127548427927597780552387970954584002004827853684463934546664757960266156732790255384208962420791470020973483048320453728722512991774436817026539436249168842444315050208291311149596261338765830930533418673671016060024846342813997422461351595529633763842808824229367393019034941264330933216982349209458224852362925380248337180463333944009726362795648479367379017681295888520801661368239834898903743501331174289386751534307014419006934892893534514611242419583792564022314269615952584378455131741347603913890472602640762008497053165048233422609420834401655772664296876937392742687981986226744148735379000400805033704830893806651690662476628546952347441522537148514357425096908900499722994499173327307819527900988096591092968891707274318588217050482800502174026931988562378853090985037076855220984950161776242694452152431107985113383745605131041395858215461678635650274334730048966656879640403434735091770628203832390760186643855092281921065447023085789652337708878740059165674970896356168371022634804992525477900092307929160085193987186148488000834249275316260597437197992821701504341326203851052251973309343400771184743063682828904307167501032065740286760390885131190162667907411140227313984665767595373989399258282363651355786537367284044564007683587958443607412659900833407407313197405418273870731054602012936081949304741828406672822467798972532404034688894185539682135506641945356844074934708971837643567278959816504839104188044227567496275603305049050467696045049614158849091913214216846370307346558800110402410862195619050040128247649622173451698402519632780481512140168431066220645019018044875259127697218166920512037832235778523233857977120863144885350501508625825402188406410260251374905437898299786170880220231949714140599486249804903944256271456955579396524485879015394582428920120350661406540629346866552381637765271341104082057387592550846069342302714513348443450465942051633635581673945924437617975446086915764193766778208310317559487522908443864192169243938314815523015745271292543821183098787562542377173170961612967069533984080321855569785868887623627821042727018539262234478872564516767551817371418440833804040533809557141235375617556302377914208883173227089188512922056574760059866086326753262730549965870355740568111967599135417157714500600795616703135379624868641786682357788293222448742133075788170536528904221595537043743502171767376583761029189879329730537559406549107712676057474540893078349677252286555147522215012082996270594820145798660105448483701922630655784632626004312987955546721867838307787292930056585992899825250243891303535694918293849211194837483893978797630347534397584404690683066793682963897798593769696958707379869535894964890186423438661155566385473255474701098978320139147755438000845826642756468453115952316208630284874127323152938395342235005864776537024633008282445819514389259156791341652319639660862357106534334107520353663382061485803262124261748085318488031687990523155365500768686451449280572298824141561731288572198771225441737658230779039521840288049958239945766515523279985611154785657610332918401767611057222219318917050236253900367530992571279484633650900598279005147557537631503885841972047306849198934556130333613527758239763136547142008464013480546404695340369681863421050579076005053157635669788813599167160510911503033228489772508712239382629848367005293226368561906284106505441878339473108342566914880742153034200095460153725691306079239581854451940160076322382293933296879578520549247395906380585566125232841871450028904983317102558074331005990498979982904241444957483589034651434811347471425174245035873001260665224662072347403381545512674903299733335067597703333844221362641739533184726040431723779995644438221995520816830762075029567453894524325426600306222580059770648224846868642685393926759460675949046053993164139197968939053028307058111552807434731924124946482427596575074926807169747647534455975748373881641342850902688429288104483371551882202381603055571838277132336133943417454606396966362772337265886661634157177028020684842876142465288139020228753287829084462527441262627251217243521173192151205177240952455299724351534512263786555049818784997993352928040635133942012181253976555355297701486508804040909273327381361055664558330372468173422850988760717135449554922324489502138463539304123505582596451588590020176554313790286451774228480442546654025907892938114882863265201324120228582516114371366849726200530257458244683613865224759724597901796465973919706318074473560256566104614342318529274286542501421299893399800999332332855898093868103531349976301007059010381056886004124959948979038160776621310138639211178513430075962443834061943370717006578120120388181216527870759043608302563121174555662226300474608556966400146916786647658705204007553930118997248160644813334907591355263727285995186353065257901980249545965101622226148202840335466728461489246822503256529493363165778471452001232780469516071376887002758708176663821317948213592048612433537298419747718311392223226743963870516037013643239184056471082702246475611140890856919667220140489712636211499284863118302725060374359576114375586557721468465428864367701994807778472523697233868197161405624293264169562707257650273198313130755345551511378871919922939685807184314909337108091516813011557571852817620666758329588351459954652426438067529982297725803409019265922058066242031662913804010364339528738491435949705468985879963436966962559186659585267623039184815390203794334928766375800804968629347456073782034088329690861752232163749929714839013169208273373958849598570195045123465966809311713099122943970825594052205119429783028066061391103490851497099235296518172458068215946264596671809729838617993994008767915097952561796183716885066250903281027103730401002637047920276904249988984603313903338993605825269016879326365659024725454724819142552104207489671964046066717540574464037579067143290743106103481693474455560696510974422798170269915950804075062846901579004338550215606994111793952453485091824596243076795743129659723155784261646004076283144061120831143924742772520708117498163947730746315314512743765743479980438550939764354680482537752671807540477860918150137156873481725304954074515585048061417574691487952534403987465075225059325172058129443508996049239410937682925837610943256089197623318258543230492858340845351395130906755515906306946154020240978045086775991919532961595369043195748888758715647149945158872239784962981657793247102521929625480550419295808696444391556220838573672726507211023141362093655099887380616526426904320648988150704547823235794982788793190670838137640216515363418723153443192394944651647259999155403475177151195982180811976549211521611278454051789969836443227344148561168264148557184643015260290437230939444997946320598711701136341042164730047472436268571618788999925992617221291118643876891630130984506285211923777948585515099727986137070151385596505067917976096538160103043825753530768096802909441620488169931995650146436615284140205193035954437005073778959459502040815395895611457496837855839097831605935200101752269692118028449936255784214158891774506164999411730131101042461994070402141540666919675172594595114041127869179044017897611465760475834541551107905448955300551233216273518598220301099977920269897003317741846167079358636167093969612307230517753473961488992682013457365059436780898138501876568844896421467029944751660673826825065523517892527494502913364033106651141862085744558202792124438868793490597833385790690803592050727151142070938441383808148998695190073471197899896170708485657079602799270611570113879572692639635951168437603106427704271113430955846383140806426695661916948377315888304763792160506943063312424651630693563884870573414690122705257384020357878235688932726103336481734563197280611970987158791828509792879475469527172730524153580029610280542770732857119002886010659723007686763440304186714680996560739270842363283526028131751301173675518289243733441525478810710081433854606819742282761728126614047586439204692791835629233306603835259176331060045830355309319097065453660495409861817523268679806277309714210707907469535564764730920510508689757581446652185144485022689963431170252461113905979233262238521988143617071651451154356213327532486892993459572528167989247070005248617907583559388689948006516991783452323199137819750199677617703408489230689166780832525401350305437989700861369102280937489653345458677139107762289004144441732395971153154202431167844834427339769881216607404950926564032788091998195581713975046045846252685082931654672550473610394277024247866930689386946024657496279589166082677077865532046568766457080654435065925678068562244571920685465570185700628543471691715996398844168424732307646704094016366389892048398159709054855049014532034262966777268720321929682715491265837344722671545107986921029793890617865868234380905589132473498921241178511820684155132813821251222092659579029530674126057815551201459738190982458139974712613839000941921281344989504289420028391822540430396490075792500469828691460544445059582084559758725460952285147621043173533963233438468009573483960432825921831879375445323780931470109521550091991585981362758542244157522533503226574161837231759787690858317613372823531276758431155891012233349902996812122069786169109747182389478293482653004218119297923525021487261269151738183528768561874881174744933998236360664608555293057418378678502565570394669801012850693519436397337265271056925516060162703333147042138742687550540853509701985270719481899874545104262344289455744341204444711651287890567553743473404618804011392092326889206300492648983796457637311161812201396790001939153225449750924896283216413335516985587603374910865374765336020490149449166991862552594395609746449939491759379289305703769557269717564025302869882340643007191416850631178003146711176449788091150537323149178262726085328089267060896366191224998010331985202358046290295081881104867878515057304311238510771432437764095594656263229996816239634637621578442490038269819873075508958375008335932158671122888748426731535850171651510230723259200253342186812050794279390056943731222531428503650796524535421009160416887993973777442508254244627048329399728953924397461423701019544445832616736343752484041776259992907897681542978788678086195027823259653862704555158375338998189823938568818429834312181931451977408500776431393349900364691397667624729396558511310277534128406571192000183267077664061953412395554582746822816464880442622385117787168634298303200060044192196623397425584776597848417065311764305591881893985626264060326350806646222976348716533741033207965388918295630348352695523382116808889544531461010866587333919283601793610337844462801920927272253699724530357086039465642946089088946973776940432547348485013249757699486814402396826806192921573599529832577263424655622188400541571415028481344337905996190540394543347299861448558064075299991760288767834308844063279269139054238382996991651750471755223256059733423098077497418845603441104561645547115046257607189256845661435921021651480171859826632365303328662281927637561867900051330976751988406748398967294039955688510680666891510884793228487756826080475564718684923923421348703770997104016028450903893686610496878528435819117258376594342391316061599773690678309178164479322237504430742926872802527613759231827926377045497435525141016665764571489580856550965255282044272326650771343396448529109505158262282033131802803813229032467320673300489120733918551447398181180685637449634078537599283409064396898865598882559042224299165219729542084376737210454392983584193823905520436807169096572252820758777591082038771690172023332558315585143714669734537523914861253078740842328242596320672070464564741977735382501079915496467919419122041305180599208992256321929987046718243174777807071331268839569880247076497314801460258662315951956492726178732121018631413089157912275342122851187893076234473614104834900567942370472191746360102438815053376497599815258793300513777934235693927732333974698495856682166772263869078000310209635392185443388139216310906083066768687263290327115090631213069422694641927060940108662117252445740335548282613413916635867942328988551155650193200332912466575438908706517567573559782338400472633506018110991789531721119257071665256058319974693704743658379875449052762361493435977668181495640129271162068848059166555477731954537213032456480940650194043067326254519166847023141911639694806783428695361867199951585947856268601832813322645645200941199319738309026755383207804086984529699085716542817272704262597315560604673427750768570405531773485653236533374347751810247020492367413458493672383849008315354343922435343045158532917992878276704457763174141873178138673506152342131562386265074112129713981920554363927143924014339254094128055612421992914002793027266657284738511252570347776620340160159557920537956711189736653181654482369189106518879594378734493091975722165434435200354604970103633813375268230149630759296076952783881046248716787572223508170504045781577019491066627201570120587253877209112341420474981774907506296985846325131830151667227755894178865675202097324213852941022004073580684694025462542570424350056350526557113416325798449626571938896179686562997027837986575966425568370449155599400930958555033960728888649913944722026204882838304563642187652690051416606897068011534879121242204049279980524224184968511125073046572928890276354028609830909463640261000248791050287480868444947736353182376909639713933543446626279990760281654773917048099630785072106082099092562879368745271106125334992611620129145862499662791989657892914751884561525737387404036947218648617008140560395048948960534042211103811420890527585863290441873901063407900246276099089585195834884374823288140657646235222588142053965598675807651561265290602742771454134540446829115049277952302279665211069924963263937513281098053863455089108722076211283598849635652565928991849169707196207812517511757817993104207592892332830769970547006706413633344920202510840624689553598176695026504589891549623778754961638881941300510774956435439430244190032674230855333500360778378515973625648248473005486438810867689965756003052535705381182918456547382338994616285465459583212711919551531892070787588491479180196184803282945229746328008400229720159740304327790680117160269429101137325260845218040233577412852402128947574494737932239226180577297923540280049177256843377411197968046168789365122168958486580889376773090896313501972890161042265341524568752088952642174093552548305883765216597536063222504012850008398521359837931624984706389770624851134228374862932911968374579285978716633831367187734000451710717957616978305461377825824111683802411018518995407706173666999579495878162069629001762757379833272915123035196744496278181694655214895520208755461006434750747102096879690514830814848889952920867537064536617062510571384894128749953190349471915306256092822969732774716951473608991449003058110965783625499357228134344391987869715708245139205666764792967525173425730226229200207133333143551074834222491028878905146721010243929291915517804393248289341032130312816913163102619573674286541586301147300978122395739497397770012520071477759607722586813415314459822172034628275092927100430822978206895881898988866972960219055912398441799437423370922801805710714799471728120015271504305168092175793427183296977617041135576171194151644932514409105117286915052933074489828335732420135033751444518227172027469969924585115119534486889798310496981246376784717833647459475221412731514697439368743133077245138586830885100746939983201074208728535567521743707308559406097693642667096323280809126829743430847168142004421529769636483256195716976652146758928920471806785162767757310339678182824627563407226354316708384495505391815099529362797327153035642752356173817389401346729618717894853976189054448798123259942864518923697426254422550115697784877363409630166272835189507305920444060059779482723891097842001658667226168904039967448160133200366920030175841469754135686417198680465508385579322161595548983627231311534010412437958241404118038154127742991357436194990398176173798090575842081069425200212418149424602789567583627409864492579223660015987210056451158493058728172783378973494728744046455671800013994050592225945248667876355389872000639643954414832304607935640113268447042951129940189328701717174239144667757616417950525280374290591055450580175588718895110032572996703822395413477884287851075096473016407636333646415000798442867781324802228804569616569058626204938063331190254068116803568847531976221118307481692815915255737544914296927857628040256031767178452656622443485004704403120086100768641060061508646237474483432559944832739304129259129915207967524853043818845005979485984556943575274134312476264113658612728518834402036734466511296231127694618094422246576169226665159077173727356630841899401037431631058544656141354186484884083580214792165052072266737357092937594646320264554280683642094373887622079135372314055133769996905663870239628508456106247760573553474280182849069839381624341643783536214704177091471719071796336499110409006594379001885820189695138232460603216479630528718011421211198701423020268825152642590403194096781198082729383357274192488934117465687338494938793942103064447983932453112799663841006054635857664510764448553377320304411503832822930942526113600264858296543798614245842203718980818454599760712146897276352836967797697813331988790522076999400670864215917163840767130242957844220600845432224462352145527771989049575120023410731135199685221004370427866269432080164972941600122791012932507271557569236915835129687189729308834074080719212220758658222974602646567264696304263395095367508609268873081507869810710160491170507146279231745754312851512818910512292506878466040376906661227506966441529467593056627506157610706302764714736560940165938171097477560789690967599763398783915218061148571750469126939818594856594472803510600227008632940657193235006198514274068262455238105668367402508743551496968480177816587182926449793619625200124190795109304335758010282928481332063764931686482927337421571821454878160823725161594422028083902461616522054641581050432440800462691736347551761370693667732447973023813210622431076169946783476662835988488108996125311389965064400474201956122950977512246619736822461534511049427033551070563722142536616972455655346967857749834389653482745206211498876543380786230506262458035368648689146765049784890831956631871669763821556606149621498369360204287526264485425837138228451713185509449029157072915459931532147199343817987998929067399354507188486298056046539326427284184888396378019772788594784546956181956021005548577196276257523932334334406951754620446511262209035203606818402028699156409462378210610024779143983484873252837727307767316687295805970169841834402711208864867635997242734998394021642171995548703755170975370423500841917769241378906693585257596675100515557182283535234399890295702323034489673949951895585142976321152352506824375720430894608398936575946584200353517187155210581588290649449020648172203050451788802658623864776902107796875855096432676803897072017961792395608820573469443725095142400141419411277173884127662317717817776287080476592271677119559136940439247235209126228894797680289983836077603843893793874734710406275389220437607316280933028155863362516199010655182106346001476129675480595471609223921315487925348368788615024307907992029834060020060386667216767897834303540588922576384832411951261337771111870457913326960395845771948924774154379061920109836700293689480102385157972823720827716967378981957627262993717116703675247544794679048582110595705259008643740773832179928422484207526121688464411655079046221495441254756372834282723492713273733397601256450199954030242080033048296166314515436938997374599786219153357433895872500923089793296592408851232173523851193545851598995935055217187886657126552295579949018369165807062689025129417473956388120841207291600816564943908209802319103219538972991947308832286767519246882539826170832458614313814643621261428512119314304279373099211305063472488434295086880222694212343108268314546131017899416564818321120128812031466778503888528263312754078566493524521444955710510634399953618354847653032963425580433129432622683401548587899564487030281087120093619337873581905002061686608969320394390657958250195545324940736894982878132937246858137938964277328342086635636339082306914148491016917432565630185250176621432231960049426555621457181195782959079832046697470542992641008521992584254455549236276350929701165179414136357854200606057629517462461081796061864667517981367263145441995255800273841038249395256936155967138438990244428641742136684710752377023648354060495610334600820540294727712896653033255229792423625292785071626346071300371442473896447160878508927924860786780131754246981170070591549694611522272978095064564086329249029212428107578155827894576976191200444696401103897614804883154838903757755202529614782337702058205589858227901947053778196676733973765367102512057301349732719751944678894878636611535535905064795833055354978106034318405352121637282068449063109642291577791240443267263934812151188866552225402940901026867470265000747589217353194702409467948192339062283208203514522743543076915417299176863193478933867620941443260894073731261295796907581234058288726044651579889648587595414006288095093741771178442499799132241637685394270644101796438667663676284186697522323384732020327467356178403761264889990227417933116769289078074654627408629444459950402499810117845011343801949536083762784514618846346686951178306309882299967276751873954998343395480470643335363537754982625857948388301599629253436415480565860137825399214291663650597689022701518411628362171499965665731501850106006936945021845006419350622463658884889939465127314255795019195334537885840826238899470590922377583820591247373273368191527650594574813129777281287481189815416201259686186587981628071799318542294086078834612605049295676384549182864986921194873210284707623224056992895524080625659699038294922542361845084018511038602693940519056885502873093407792705196558309760517564143155239118248081908728573519750442377578030222253845618964967064406926001599794749574219980289431816165389753626713684231266350056685937279347201709789647846929639403926008811614733368818894091604354768042518556093550454206088466601343616884640129164243305497922785403307789884818830853026052310940020091032327070985374962690089221446964728056640769428823150707666170060170625975929540020004390811707744476235305244805981625292661258629550697543471506885253649669398479807372948545703113731663562482210828604561205488936900530675928370471738952475032092954996564541834457434382017479101817663575343317555259088580447068335302586045571867301818878343693923239216741623722236875483496295483469185912644575548084976107405842980225265175906909529985674893082016226525342636889943828904949175846210982676974083016708111204106720192352726744984407974391545103064674259613405594087125795463846127716389709330061027542288693692143450894420869397174287882086381697205279110639159445875009605767283705916683865632623381114749798348161725030600025001608922679268646514732117478289503108736090571340919336259629851409204984360524547384482113245328830718912651453310171461893600610998994978591728849076518116003667419855883231325264318065701760155124488021996791714164332386493596529755523426234007297977873373313252963044640773178829668953939461621315388022287663344450304269207795651140907993143426293159604127858948146511884419023172052118972208392792278707472061137295991199518070409535268726622104702258142968414465798353394296001197757407145819466667289437953655985209668106891214486533209865892296823330490325514997430674261196820823746359193070681615648300251348715933424107458224847704764732679483165426634374147571448306013107261332101435760085593319593445537912984672622153722595204574429879619470570216607780275448563583429029228857610134564077465575005429659094450562136180187704551890790825241333485658438254773333547188270565486707790427965395795844883367641192034042759514753653396074175765747581885332049908458779204610634833702139725082536974270385539259575884641170922255600139881769357550595447816964327026290897494155879375076968241979742673421356894146118896441440449288185828156287812980277525818599855659026500340840308202510375922729513537312029918049436888499738606248589435362688521299912598677167972530485412560118537815861694085272195425312247179890171863661404119516320583751952741041953328759648749787478812807864227068386076295266235335099613227374224548374297242822666761511368578690772561364245448838209731303810692799004921888970036276720393343703780131447568215850717717612200607288391654501451105285167155441543072707219233737821517997990511535135173205312989221357364161796332674039758604297817353904270044536730116192744680265363472880914844725727858380942230769897527499142142328334767032276194828090236471470025455769303160522884263572007164011423425234520594809492809533698642202644821582272229497980132610507583933301246521018375833270326265896512646490521050923050270425224059243247985786401656689126253774553024848758164778728824143966411738272650412981886887455451899661553667730327419005424112405667714258995508087010418842479128043449140660676763151661475522746737079419530505674122811705464745755492245200684593880555728405585687364842271462185206278826598755957738912994561717694456781264814775933963176330971330432858318244269292028746288995326723074842905236525108928018904264193690137914009018501689654668452701235221198440420550056892142497878823149049453020463486603261541864176347555874332143993080474914640666092038552307125273011543322378738991195356912621593238328870759247023902433668979467977599753954854617853320717197442137003144968019016449003718801727953279027208958577227005329393907980123598034847064768022125622703425518356280975897412778455362358194333136761389433274803473998903599556297467152735518148298620590922847219522676862360051967503050673169568272927205398679723244574419767222618328506207825041971596001689967516942883880201667925073877851722696917699319922916945119356064587712388692170748205407336214074768900464280963758340731448454000214971746960222703294302673330944651017330958729020258059087547554521022377098354224649620512836475296902976060055535548269785281793993787080025148682675599470627309832654437800754915631743667401598860553076323083093386737362760526205197249687702046974588071662148121362487562963065652184844967526046737557908239819125068098872162116337175807717609943821434423049680233373893931926999072744046416366656335331258123230279835579178990619646684650450367112486988130360921922328800864525474581724948583063359709548819996145113505509384978340588755270214040479121937506850254593665267523824091046261566093645512849695682282890625393497099439213295223061474812697044072878634380275503440782164577070318502736561593819347747771120208342770729365101974126641240782014845181889072929692454799908072764502210375823761088357111238962567518525903014890175572940129665262115440682087840969971234135340578392959632260708811738028799567695972444474960868515456417052862134717827594295002715718694347375817403677196294483968065582404321377378999052784259767696829640175055766125125560664393239340137197139974896278902460548847609278894629300307080868543104986763604265977555277223806827625987310832120068460688623296991165822155584257296208163229749968585748889529288801979169415055367092205256852791233243006130282711827716063556780135924982257382671669670328778986505309714882028712000772848689814095755995063373094152989889871758721922852856885646716947716393152429086776079237200652039366567946443265172486116196357957804764470799578934239046387527455876575127227564900846508604880151652625816414176815460302991695422445113876704743020514466758342140856652199004058849928896971191540707239268923807454374884998098721574026243568900923924285964954745655295325044040756282836344667633713232792449876034536283701021275697425263177887013528977705423504616942223640987599860073755831797144838879046154314679521656265099118836570720724149828032146942950161982263716512492189473454487548454614017186363821769781675039688876795226660623921948620332128019989828343255948959913961876138615713901091144896510170496264754814144464784567743800952144391080490450114015339014392639375878800640167246545173043412753289827312425655298920881598214208098341331286546268494800247777624984933508591501577870710623654049467807263792987008799402875743849394315416004057202140640508718517439685870989525141476588248943785030737950601990475957638208479019318599454000234956510282482406865761198389181399887616486141612497886667352337192174893692435583893862932585687680880378598333875937115410626788594323285006511438022098939528420543112543067421748093268476831832821058024916501268027580917269566413164745871687317687585247423911182846983666731740877442494083807458916411679214955193997734492961837222238034479926121155088216002474234758855339806427954393198611114286789039670535533579616026185961003633313368692436231617214352060527009725471200126916413189996222412370635054188640681811704690319427071456297764451324445422584158833642374071623523978259643578152238570466394639485173388837651694316207986975840842230802789255733889199147291819248375378076805054069861556335086232147986098651750848233779877823324966114710748933938067156231212656287508217574284026408481929727285854369667441217486108425087870586306679588513074022120920253499377337973830409083695025982583292130720015699026869521799522753584935011282730227867215160482828738489219561464830589067427419815183477650697357300667313163047459600241295172036429399554579252627680128439454817638168614734771209913174932067502823832697066851538901928771439848212522826725448535321551424009348679489315215812254798661325889391247499196210233446391919762233544998455301495155925949511667260676356730532761667785163303954887775900371765653136631004303263454401253508371197699306314109425817910605094985715884413096721505673444721986432210576405141969019522017534667267663805612722919735366987925554787971779686060508355430085284394179046406177325423046179938901995774684923345435753630567182422029551235065251509198870301707980279457781158345041567423908316201241308702508730430570317736270098470894212184696468124542580716515486804215508955857709769667094898265948632879261029143543313452949435043155725552042312834166522001267212541783846457635678133979706631246670654077045840151871680314205599099869767258315610456624847819347748995094781010574840499579037526523160199290851016385721474637628696248883784952680503701056269100961806109687457193432045328335939513700435088167687824842634060382751535837470031818858385534003264719399056593863371512570356448905094030866115062743262026819059234012833869674050121455165664422541644141634692360984701240800520490501042100032283441886964737387324810189537870814924317880397797616906180195027141614640096125578664036437729138704713914986313023479143256590476950654755792317700056191259927877552245315827660840350503438631129895489986856413787567822549167725250231885912189650762139260091221401018088454425791539227678322516846032339589308585831932520581999845092779609740464697533139076791394047406682070919996209638673410770592762524859054772040491273652624392791083390017252657001111386953704117159105455921767202760004880057313227655479849466833228119946624243131261642788302272648182977933227574015980506356757223599318010198519711856864737563411350674559155275078047656332982880458800571532961622460131754403938815329675316768047124341349672406619575183286524768402826855213500016724300459712541117891742023978411570940252393098137851848463853494239851405982825708439372105766500298033198427125789371861714312112271239141072133771783829154725528535745185630436855036796331968343364458531669342420958146268673770775662400540939041139340461565051985449494321737045364491010066515815727656239545735450487034017223514941280974691217362029524776004835903758752311800110674098527486402071626531244162757553108477377306387218716348967093870909496273684686214564284997940570823576266161527349083543161488377928393313442450051454650185047622625621650410975037029175136130932335615956007864605590080041174928887381480451606049293024591322978347120285264229702871795183331855909903591911569758657949686187689788903006267507375361529367268731002837951338156446966810442911130891515054446431544464440969667147977175236974498672403573346456478614243071507146384741534858348495230716847384778800603379501729028793089991648512236016347225991935031479621742824911751370374263480586636054157800892198287370891371169260217637742757669911770667070736114468375873727031969175784111722189219384558339199674812175445671952082279083863686360395582940270635576650042345522437009867080619511807926932623057849162669354119134292017037961358833038258159029765132682745598049865800949748020125967033119152543680066690859863783095104208285761130489066139829962330530217769841858711099801526451323542397868936380478145295451407751698732313765089101053737662851129428485520987051998351660969417441601791188745305145841957875580394381947858681384785282708823473186216197297679593105696836736092315314327319371853273482908040625362153810315153146754444940204536809648138445349318210016408620655958675006761555869322414797250830164623670490161152208601725669457530936995647201335856571469454677092982632382542739213131428579443573211691785601284902249096149188177477239554370478901613830727466475281732267090191335144854937114163919131328467572120385111394724556325283286445754809901036174150652034548159224342513283156528998261151914311773013649546225312330677366695972532314191895408706636161921393564423631224153352979335724924177254707424591717063851984885505259428840516527213042702825121141766025791460044618640368178913820583212010288815788330059324208939374398290015832149461787715588491025955508019076689739961067994273747715411908906405351143594917339133766196331805526798951942818620557168177708759336510691297669291367775419059250681212197543571287113746836658256755600362874285943979758901888440202042779099598334090102959981124411698915331819406312063261042627267598027851197478420634194283796803949776815107716535617886141538655706735376701801253425698008350412511522878246740362505148632606033519459622975830308386825301007751550673153831955715131280407514708390293816865176699365346632819922987746176556046011247134373678210050902577154613857780699310531498840117701859242514522332178035090554917369843831561583092601123883161360334017964847663559550409961407863813764094956498416988203029158638002366187937854706448703968125131566368980594971800803298633539189884235240233479882535233959424325594652738968848561679045040606751749740332298790205965630534436785360377622411436334747924976002862794492061869741272073655661967546341193900349711818074687324250025612659697213026997763550801569449635232810495065871416626290657047505768467658642635868923358621374457317953460458319296519255876180471488327142455854358692756707134739433006468485788086794227672301606458686347350373785327918773618669111519092456296577611664735935143182412308181012975577434360590705979806615189411550764882779101382679028232961667863490440481526866765124381554991427115425740565445748935471335643223875779754933008449868238633817795177162347057028952399862203288779867786849906258711475543461296930345556003814622306448138158450331552426709055933255495732218064718855990789963442114732077979663973677987763304607176554482975442178786148910560461057322097566288931052140066687478594106371866453949575030445829619309161142457613818583206370026688212469999776807983403433010545999668846425974841568442737942568693353024133236391023244001568249088226927043571337754337763732965740226633845564674825065465584011681615591849690883372837195753852719440353812049149451709382021003117117293356503447345044690918410074004738199627061083944359718548686311107098368636840296425812813157817428103226958746264729078299471340100832167250093981983815796947816191952238699289975293180193866988745279253829090486031036323677706216693754893510828949704240999557468203158388029708713469444009489070109573068171967045031557178474177876983545865520984414641065332245272506117478170467402339805696749687601874368961643823714372519654201991414538136303810433873312243537768221462807553099298122130668822961565265728238147084034335588446429530900073572822662936552100137366061543753984864230236143910375890016542145002151787813534860793597104072746479235262700877478959473139605909022342948799061088574962184328598864825367670050738537497931007751504968586355294919270070428756667873211002018900047645237100780811724818089594045355358781407533742753401042387886330678353379369139629789840765660571977820052776569917220185233490131834149175916573603387193308528250205536690850175015844381441252991513234329978161855621318692884943981203185744758593114620763025914635726551511164827931756737791674019053101182905194010820921629339503552347231672776000742705280206323102734393373625882121025054411126576333050822067296367491621375284516988721780337249027999691745871919246256224216531033096254472217282848069008998829078008931038890304985099891246354309354755821105355418706008329360128667816062280888821292043122949504657031841476830835523814890854381103249177320963117413681709762604758405376680294888387352159100699424503982266734774973514093191545598371463933380491982646620076090311770116556773203929643514304691542336846031837173773940844217013567855035475512328587765920960956291709784296475567235520919082203090027000737020694458711257457824617478942531721332536626621225224020584594863019632875390623318354190417513677408284855883440182880130385646019148691029816212564620538706126112043114972991039836605278054687465038493059135550721004632202448750274589377322926170061389482951159238716577770367467203494822661455313163080013745840995838971130158322719801680861107027279041250120912806194162145648037775685067104759927464659613403964928043925521145716576091600032820878388449218530254621888806096259844844007764681878528932197815890686888189977611169759503401763127533669185359814987641796870001321305244865982892927481798974104194309376776793908484474496963455422366993469848010954337721452981339721881231002175032741640553768157149431490589571889910043693622133667109622358445151256276111883194295154280228799584579246199523367029415147868101573871022952904610945806220979714018147904804849648511653294756721797010593470512465778468955918475489908494116838801602755787106013804421513432056008833888823608528043047532514661546244970061382990955688253778934939879051367425682517978016959079666193805321658328687179900259244359808486266086873544110344719144522009830982688519987719066465460015697218113813386594508044427175281911504522474874994935653866947233282237691045973837415163181647405333806888235115827084542915636314227115375555110563064832032665722398145337755737060422579030230842485233773828339217904301112041543763158718945864830322388066775802695152787553869923484204235358767343582581599396807274531424431144179068624172735443803932403840778503608480710842614038470793632577031370115553409504440722257194427994397066978852522357394834266879314132861359952821312594251515262704487757759675060709541709954585710278565655438020774779271063783871017406136629101634487897826196164480926576660361829509953956828697868546860371601117083749053781852592043291196942634067092589905046133416176792829034302472823419788558564257864063904194962669488642725241308130241191063853774151916745361570250309823673907534324150834923536887103720546090464842298505564097366808939035103171471610277430003860370863731699474499091310165980788834840712434143292589172112197236310286927912350051197137504672816877590415322714533179982429629796083183026915693408317909792480577998403628506667936085301515030997034108454215938657480747717544799418176646565019767027961136864714532787093769283284746202610343488863013064847188139278885645502238458865516375677972713577709050993114322153288270899144777127645229077779405400780237216328987385163602930301559683730726629671129437545301970789742795658772656706904818716239309687171104523904821132062660451111732349719197993359217552870785602973868394110760547194304632954459579807419456126869730529359500090529653028830777869691593103879562083760897041865700217733997884389373112347785570006546555819582007523701772830964445599213866243186980700320523395035234413131844811398691319608794190723527854321171582865324042138646883063093397329194992954885204142607593196959254634834630094770157291177191833703578553599647445354661091715997643724877651253000308473680616853795424734159337308610514743497209782480066022190361218284002799073631372296933380578631852689325693655152203741811519845790294503541682557852476235557525363384523176343418435390701621447753030048624904542627813706391860259490473286177732795945655649956057454654407532007164184515981258758081131251984228843185609107733066541070094689281699765754101086353502233096718053613739260940350942346919324528611943135958503885011360122380811078673704571340211268177492209716293275608251685339412045850256018620890620023843584811995301029354792643422406311537669881927400648992054795232979998393506781792218720141229748560261992378587003704341228921549024539311566233471844219288730490111953302612012956052748285433060452839698530601712940021672118194925839614116724729411020027289228413432376112579466532591606553550891914425272817217250899673413664170548646357239693289457317957940518376826538477528439236361429022161144055692406958145691862597042508536785259533699991564768842616494319687142235848341343890140789292825961228485134399037149782632512820778531292404485916391948805336548008330363092839123092775464308818067089167087238024265666957489615714120626737653640601635785481510995359382080733285345300070511612717098071035041643919551674085239821531763267349159075963019771397399390524725503096131198141389602274579577544071935926733846853743997173687450123966906912341049263269450860613285640249399216407602794591676556455820313305253190643816085115144129150517234598954258907192260154717559598295804306291217732349134978494231480206572271623330861157310777583362229431206843885456383240476962281944067809793496078711362021837302708456430491656681106984685724514200003585408196825830092549708278560813475590837079176732266962126832879781666737555322968633684876387709454974683979375047985044922050325033872558327029138687594112559428467352688725485645822970920261527225658596071231963750816960709689545658185876314271682469666292379282968108667388643971923563730529094044081533505533789060012700944377920057852566495738213072142794467329112842090061474332740146468874211797322528137908137544790934186846468273351264904159194616586131553247675497174395159856039672438375206627965849534370727070327491852363999661674201672313411176251080444853855350132177750741321985788360028298716843144612805207430075513691016196604156439636375093549252398950995683198970384748587121580025210138111650833110873280644086294628099826539154051698560396180345315270583528761199744754756336437549345037225670764209744864737671225098070485516644464100658774718758697866531052566575273154738879632429571017390091506141104622461415018006266791971029800648813313860242199010941104699187185403985627088595758120173913414880063983657082034880776381184760941735701386090020123893253332321369241778926917751322963954717534795102414034451331723638493460353051361800865840169801021926294317575745205253250346418559732804815496077460857495263765384687802626551170382129718483318454573423084713223140291223805494086777269250865564676953714868383571988822751003371222515198720143843175830182237918604204579385996795779463049793771814778351483607127555899612372792203834212957628046469068463422716652505424490067986399182095560557433437324102109639761531588396111722390534143890758141857038441745494882287126575876611573505882642655743372194221548359287448475914084402211016218340883168678316131881248756164857810488462882353203410561994777014759954439133865066271641041973183770809930305222179131016749819860936758989689983653014335786800265073664449456108508158151586819319232036883288714539949705263590739022905559945496454522523352996446176741953883716929459449603179983422623165493923912921552784510273961585219129010891945630987601598595274641086415253545721466430393912549470261889916104610694668022982877468368668051536212076863362043891153387416310796384590244159346846613583474348817375295175084963730797388575409214597358314194680481844098789306933728245209847366254421983656442958948623384413358447916777486835275054261103905020258932573319600892749718109264782437344071425093591067707354217098253309514095589748744557440995537345068706546999765291958266074029309385299064633674992808219369598170570316618829492097739621962966765156802999948135348159758850658837486642183432043643647443941279048154094101374846048607984451665068615259621055220705361566943233577950239281473545281759927042925669869187201658661085308211643456098508582151785244215481064068182255075410594784811127320995179600878048408171898810955397437479516657566860553252104685488280263182743621427739126745453562137949537094321747518233794073220246910565230446206300301545135305260226617794691285782383541412273648923338224061653705534240585974636881404077270599233697677364603155279591455936555218666304606623227169476299404129487962597728504498371754346728808693852438199271163975162369346654863845358352149732729765029459493143323850939548356434314374718801902020018921269411004328533780813087392202179733046265699821145112290428129408956051273507140237316822703570308723796323560863356813731282909586487308621220409547795978278280050151651204513207512371966242707146963761644064903393726738724358833265371169336858903278366709310191995237084304875553504424198596673185414352172723739332472508003756913448274267602581332778735334392517329662869639137894824966909087036207349396589475978173144172851467880237987258738050009551597761058051277303180523070933131974248902792714892528070464487765299117421054118610757490437227529295881257745305161132079116295757201573885223222548695289364947639157565160820047367343898971292818843016650323707324589402673723557808835445575570272260144154530180113000769296557912477976594631883885029834734769798241645425143899792432103485156411586408697550402368934588607418806951122356556071089128391962393445443794361902078593464065354783922885554302446452343464419038563379727344587453524509390540972547756189322586186078469434263543909651745489055279844052519924701180721968293511917630249176737271814811600623744887132283176251190032439148463373396144926237257698011420232556958057450940997207631163081290112615522281286556380730236468020824807176612220333750487588756289144049840504526929867829217886710686593747706074181118731925037737285536617235354007589290183396307979078591078138758481725014071157620285153795871115080340935564584134437414703932548656677106409955388676169893234809893825731701432700115900209295276442443377118371073508979583516521599624489301694528101858842418622242535896862714744771318979118041936958408730790589080477952615690720125064736137858277239372233915516594160221749736795527398095189016453033832411341531379445113512781616045916987650798674737679897072302644511018184117041854081286907971771301167271893150705840143970430220071318920886211713505856312689688185601148983830664264295378889772038930045998248089545500563492323970085372376881273565722648866464856792962013488752731098103359699599862467510739402194509268698948015698438704425981827876598621505148972795615085275417190972175308046341218755830412841397097507373050509971194678153550031832323102775731825687707074834252488837350154201247727968370887356364326046382474579111697941637972354699854611267509638326667177252183212912348699233626765782199289418983363961455239530261698818434165253420981145319517820728235886159830623044674884805368649441726997412617152404462137303854544494688391435387556007245752501054126725218226366454222789393116505011201291135502503616415281419368956148644068096789378711183107659392962980481067275251462587890428454866727732391190210615711636297039301951865155017160931635007991542273019871858270354922403118808620528289943700430630711682230371004090986152421371467805563833312740039687838026115883974250095715988911321366019870677632514405415255887476969578992416040202350851532086801922741953244619217519455212110773336608566908826366853619195393374511509542353278841656953939558590689820965180720175374504469962086537494711751839434755826808060110179236275589851992202752484138131228471261770780608579021225984535286759423730786227159699023010594116782547085118617949299739376562894560307321690140751469656253725236191865244910310461493989369066716348514776445991141608654782094479751526299559696328601487808160420630426196365284459763089385390991025858083730274718140725330320812373752440848671004451436578100534723310984306302045407358875826961807543798367443158914217582149135346110744792211517985323619162084194067494311102064914492590813649581987497627055678777094512089144289097180992018353994144537239803494529383774653660825518610330902936274673137270426779060605634490427394922333409352743723180755837816139383516448856854650972530439885080186882244812327012468172521666050070419107084729349550358734170938862309884168976366965360010633788130454171763618771834072100168486198663027192840922177712517615774555897583390701526027708257219257959897709854018654781975282278941227833797694461008354703994754694641593629267822532578422077166854757544322715710696889728338674411566459878511082351762440681355339137297346006160413468876189460433757219973390099896903204917288459314425009470403426817015604312493608055003814254574104634447098640290500669489102531340994486651365268611215840912523691290911116322254851751150312208990631048507002230002805893061424373670605132267483070544062369955938828136753254286283317158719508017023418959299754155576321013718720482637334837876611478757618738481224842331420610709486018521942650522312614243634700633546455642815800880494789738211825213633643796516343717502440631562744522668714804896956367686321699304537612985604655892860230574732121604224948767068847278348560687770728847836615644278802287876799660948151776457813029998152549450247505279425925854179953258867051685298012186687436516004468149023765273558738655454563103737529426004910349317429264975865386828949787211803410406109641661464323141683079221894741778125118836638286556328658108103798587454413850266872059223964425302897357716981351110163045688512863265432815604943617576941908727497635178831721423785313634792651527934329897771296537172386020437978500718023986402687229616510678113763059737573094935897364179635667200330512242069794667204079736966258758482337866009653001199531552406547683784953868628799971346110156104829592949476385452871866721020386663804027625205772267801098380182698052281996215012421906427011936230382633456891654371249441888653397425981505612884445590849805122921282418336494193171474370557559159106375270058583516878339338117376649761373026551299676523799231106115320839907654722525632995368434963242536469642513022542368585590437227544832936570900341720693966176241377271884876117826535132083065231313435012751287521677628285304205974790471025596784555483753523472040098980191437666171073380629460239746352943627641734411796055840443940330361872024274781046861526658316661423824808006321713023339639386788135912556517245475218813116013196631015031128939959165438409593072604913160825106866094558821982364879774344474246941764122267976251103431275811706477032161982054112341406751951563614181521524334275807096268051101501414132393988187726733013456798972965896197375235331136180707295926054371220475362648101190030979424233901898308926501619941056829322014934136670344631834843964776605055789200347260290308724586498469390498398811279468326132661427942825873328224811520076884163351866749899350058208721881645122949282866411288780895558429537662465559241578459387352697139190412810267185667184677354588011535936656425285616940261885012776437149782921741184501934256603429575059944329242985699684463546775957771237279632033248335420950491872177904833406014729292990729457967490629420652028581648413512344793036649848188329405793047979176553656316585391573053117401177174935461653602182944000080298071226664090828236342613899121194788512284649376145906914441684482583490966861619156584270097330577146506458057405848182792001103980866995019913541332597912317033353289084195158813304511398764713965564224110591945912526276743045978091359091050582586450591805914330762720897850031358434639727236902773379074744433849517597442352749135203041573037332613674484326813116820173093332003378320569730323158420982128223242587669942152435111703035114187307133754420828174648370404779027565628403372406760901516917940050167405909770697374452387502388719483055975090289418643525218769423273356395478071210613415831901176860521758921813401775344036464778713278589253878713067561929107947063352618626574631171457619683124546079406934517395988136484412557668643894406147544406801326594012122899312152013234544562732068104376890042960238516665476954729499991438209855059992059508565093999655847311383124467345449461143750085024477927785200736223514823577473551719085285308557131202379065506789847867664636437358577867593775249083643384046471854289040864247379444541901544751032910201158673552330390110898220881109023845733109962084328100317114965400289088363563575557829543877727272615421596579452275386498674691801857308293743490205120221325185898090104669128654346243116566250968403926739659952025711051257813507384347904282592212825391394977367514400657530586075575964886525058641990327177242994570155332187601047606012691930068595924866651228885331946627672377676170222942983384877395365258545168265836929134105353811372945695377454226736343039819934192367353512451102183715395387347340785327282433623589939228707253417501889110447374803652364426606390680104263076891747651180698430561465026657149402039941412996134364518537455741174122094432438988923343763638004604136963167923303965516293244521624200960258348303191556289918989408089195379695108796391432444629807849165365215437683252147490438791542466482045507745207683840475661918388690949083505622916735613419138912622960334363321655979608692936589895357163905289171861288155342248046749488607852309456743131406066493668065673581611450847508664151052109859791087101440947375150722757248878632515197209935702858773867441555996479426461258923221941386344010772663542883978304574994682162564487331264432337590391592665932902508880902017311197901041876934636025355656920814617954267468214701635613677914683775521803288898559663907671967324715217174032824783164839726130157770263115077394677965649939892982765644634899080711776781004896034490121282167048180001863169936874376216973154576352219168357897844470118794496591599715068957995078076228127873397965646268790427287684134906503770786588896602954883344380842826333729118305851519423067804751913018269544547527371975971737608045328888877598588403695799590730153742762280198140785509972682873320499746251111637212980864951105710392698265596586851803324428848385717614939615419496629653833651828202642857782751212138011915603048077736633337286659717432048775726692471353718106741353356733950552625483465665639255455194259706952484210395648282240549260142974417042863768214535760466552920644999403928538880013200327259614645300440042905316886208375592542807033381629197416388340243791713106770513100744076982164900800850581602654812866160348169477821205965006471716990947070339562383777211250505213071473025260810760066253989192247846983797480577459156779047648342424452995296111467540671341626048489455446828744919387619825353187464746174602926530257907975263099363886784171682949319816408576392777634817677194675228597954473258095933859979229470630423904308045708646436428536116332340133178153064188328885236210840404235297493600584331066233269793748919778055087271833930183076092097054927514720138836174722352742523279713716539642415840300871460152703068433224143380434040380510819579895215049523373916769468204757428412875520036200683791270048462202776082070527934321159171881891826152359153245629993091256857687334460801563499049891704898163452471045695176068301672594385697757864944933657439195961662198488557082994467062335505900258170083532329077960790576682958607504028733257764483659957665035304807524124643545103416336922410414233562377724401570118209606581815563903045286344677010031696962836304150629585817214032680929118623300890408621114682388937303171757706244749925754134860293594032115664242483632134969017611625057261127205207013301114661711749864650401082986750871976273837910054035258546677911709371106713256291922809448318936536866928420705714032623103068301165895119639118133701100238051724013858306784825065672350048995388005712811359881788210587879833839445156916701394896566675038800400794454709723626293647971649320098029096733110690739662802886801362925091599294126480976477586639715580924972764279768013023902687773556894184889306857596540560616426611838615993347063334861327923089106332091969865086206531316010557415247163378780580224969807087621688287345257127555103871966076896753839646405927823314749545310843552455602847588611559421070898484129727907085574333822192706686208347511579327497765661352903768446959931507876381541261626081638076921832397925806840463872544726636673608490724090133249095870841147368878820256960286952156268613942867196429159001210760419412549916980578604033228825063348284285826716114921934045114730882576724163267535589451507455734134153153693551378665669288909623924918071000861755817745265976516816024412127765219694139297147737027826348233306482846929441630642921030909887757744288918263126538058812176281353581573614567601738602236873896159431276472153803144968145361566911469194542727696106142437856102762141761775121244441326953597880459328136166615400975558208536325202813715444556804367994915530333087098775623599366596845682637384954931986009365409905114440037120638077271081293969815214001428230962674210909830522546251452839413111730305539186018819133131951273692663768207951901819363849812811153719756408231733697682741554177262227054527485136403180393153218698453830242831671064632427075604913659465083498290830870899671999204578686727530958827709070603884827406279376235184996937424116963179247200146718459194511463849862562886408737985545499494709154903538277821208351024673216075268641115216956938901812093303689288670377924081170449239229371655468341560104498782223693677584179006379902040355964742887439272685519147030313920839969693402521506165542803905043366573497587928722657327454591774597418912320695342442102185355833846381949365582050949272576532735709355650104374518823867550415760941925031440650306002399007325581977441019914202305583482888805925101168754522569952580732227000598076167283271721430227167691550323842957163176500256342595610470805951343438839802980755024270480611905137317633471815974432833212029242448321918991808976963646346881013267073460691076783553256847190683699257155992030869271087684396195660609393994556817372857563142848173561687940701165114513264932476218310745037355980389022411133432476191992557414089814501617921329692171741075360853107868440273720031385336688593704335434838649176610724475927344435825667486080749127147562241116195553735842554614257202089652162462534200046305158530665367475015821318513255686559472352461060783787916860301389241980675700054683314499300116582946925181412637631212502435145702208680529817759837652797704424718474104691638033905383803047633057972961538065703266783358076238865977929342743972642920525651456011802193339816659266193843744085667558354787513913203316872478956258973005538713829780326229757916251838037358197035906955118480684961006930109245666539256916873434511689270885817041522317299631526634750232407246532256215534651090752236700502003277914943913468206947734363908626857226059906355029559731504064363994045277560946542320542435709690405433522718554797057546381481155657849482099030448601325714507336605818577830492581112779454006345812847867758211092116445515536894629016082028854159504981927064593052689679479493941112723443598144701401180058791291605103268558117953728276394345338207021275251698316700787242727536136284439000981806672959582290359987341472500916133292994936298955498110749163010507134592976323550153305490003475670938181415387787111210684252027601015223145034552980433115254375390201888874662116035928189590900343406906441177983465656104240140227156489117091434848313754330452111129658096573644405488595313891810016268935192017494831859327347235878279254856009616361876299181738936659976460743490327594363125650265793725038058400337409654505072659620860000665219903992341425832032006216325148776641284649884308249965313678626395682397641117844470936908300855683668366200463334749435239372192268894268902092840402026888834796921331734047757686563080197329835010033853771225015110190425210114995620527707589060632702750607272590067647797971073742041302984479551607959000460655020919586773495677440755767860922137309642759262233903579327436500530653140760876972894344566793770780432119931441736797842894311868863085415488436204958790905916243131346939363847340506537745106022002528229391109365837570333816573335493604279776857714307412289781604213900841116394759786026752005546164133582516192652859959917270872301886996826224907605314006202007365834755573481025592106304193747804304359317687103298112000767057928671613871960250385080987925715057412106832684556473814969489074080975985020812294367425267612982765089150305670715511811715751282988246164929254268804053980273917561709864030020712074606790558652854930590360071540101867789839401067748701132323615792810635320584016953113615388135593729003515719251522689319093871130392750210796671478042968431060662935562224624749007917441933283508446157635257077667162641858969881789199158044271269301798175449704748898409076343039724696598380592187770079861947841181516791343937132131309342547373894396414714081430731813918722468331114242802701518019006446169409852912343116623233974991289518882656662837153293061554532757610629740696470895745214284093159380793117658627974954031414011112726441430198825982033018945453906759647541323198276225978697993232077831741450212759099335889753183006586957291541666656753584481022740983645238780815227352362660454698915143763899532675038913609210506739224734395021352251491978006989043574214995863867670007943088464317195447050282926287635747719747896536177572061951341227429257171767828672407426937153590100899187107273466757930230075178107113445589438676595880648229168355161268953432399837277178994420049311334716000635167984838280478212577604532132349579911328368505979851890983537003607764881707862007706718938662962605303651723904162773569828512327659549180083974782699270137061496128254656637177467265658271255933282442729879096820519257901770203300284712966347430133701298923793355308274539704011608303750302536709257230851714946014788383549124866409746900264257170661506933279292216632610906767690373355130308121332322649895648035206396171100179467673075669376805609499500361531428747317005892816295627631307781637407322103600595099967301877269545494166215824781406343594029333346059809896392262886315602262653201451214711977023522714114872166120468201516982784652044705105419804186202126156349431700214758541532683533247474788642749347286690108896191038897587192968427101412654082992366701212835063891136768647018564167311736371386896954094940084539175549584562241468800758098989143513924958610210740543041793240222444547401240196519654928878562533981766533803518235891779932583694327549823056980357824956541954207528422773771266067539071857058300721455689773540116610851682271473801182394174369268595312096263001595540771824659899686969733991237356020685393963693313821681468980626162742134641818202268721780863112668842354900872019788318861308876707076666741666146006444035121905033269794187149052915327601723791830913026376300552712290034645592174493432445626539895272466343103022324539160234773562373048597429544560932105251131587410831460297333620735927638886908477006590602703746755585138322030887208761102729183532670499054318754718021807369487826138226219298158797002816104969173944048065094716126220296293249078075533244021640592850118496192219398936515376342076282883506207984479710826000424045604534507989583033755273689044620591206168188291572931499918225098441365562502962685985054875615383957170802900342488651331458581846851881076420224565110839897734179862484693691481147253091307904949833810453382796178099132651779486160075842785403433560473828369994671563231834461292625063336099409266016834126972545863806093166705563049220346236724676646001985418155667945556767019516486527976896461421715094158441714255793264816612948462072921265968956862672256211276295844257982245011826976739067199415670996716712463142192421127646006856499890372278970773302480255584378671302758649409349185562980860408174964905140206454254646683509730364925331326037217397723143843111941120820277408732139062033662792901882597901246231403701589446970214852753133393679411414750794771102505653115043511518686559621092877217759935206835905368039346832468274605762338872107226928727372549028946644350584840801258363377314220377065514937575991617320332885290901013962390356886740142338030666520636660200524714259299328354142083652891372821030886794485972079921674628290591073341186277164099437869721800853970598061835321609371233531624838329927220292670976333880941843712019805170679875941045149620227733260525929029620271069470972371058123146715883822936366934996264399118068519543682352138425083368929463046665135381207099242802557326260001333407641734272894299559061791150986731151723054213142398089606905907958222228105808426965246942209999189428850520607354671047814971967154232672298799578654817589617490087084019737294025368553456693960411838776643438214517641241658525989971288288132717653558288892090905160413887859030004214193055712618430629514207439301774184203027294898351618520216360057410839366749118634292718735394316067081678775219102130917074651167338230880917129496313420002303913300172279597590430889731701293766710895393217749459615265448497044646567801854290682426530792054010496057679048304702660380466437006004272965889181271606005498520578061415039926348941665606314337621252505864721548709704724663830549422178011425650616293748772362906283127119050997404496720227985484567775689096148807597597703769186549274363817507791341102031101938379458190935903219467570484035647996727133076168719315364447493945026462035262408786135118361623675830342467278970337661829632973281571457614705932346262242611096724296756224986380053445272112725961009689976466519243507963204723544279499638638396932224722100551382422710716849282919114954017606833373232102120491826354434316355026960093733675205470411601457977854612118021006886824486845889837743439672196933693605479481409735692896180440063780269827698687088285923628944371803958495310023776407989626560155686959040424862092245462511348122030435577442343400140708430615610420358789518375815374973208572740516330211660630519366709572706488924886721656306554691719400531892323601145727402672692546551526425622205480566685962424463192785958792569512517255033791163248505601291238194723404387162283881970642491397077185898646137514600787485935696776533718898888075069226284926346798767780417612729540146398111168649903972539976840624181502927839090186645835756426017287789129179793065176437271110899577582127087664124397780734642708067975359003376376012865818338714958303659771832381967597061873520748340225989655376976467811993388957471941592789496850492572480743883791888643069811608877186195427000835415212943230909242424972869388650059767672787894474370302986376918122849496118168012600767957771191179758311555344320320987726491381322363392959823970689588663924596915191066799018406868526967473612967428368653057241756907946382930490644530880829107734612932188267608860641603725081411953561850439724600750732304081438250897606771635329370704996086668453324126223810678897880122454272260598400699733452799396488252761282318624578483014336059343806990849764280003737651437179952549703319905677379179301460251425441053070689472958952399524023477407293249467925954808570352433891979849063454964252507436472879516886410688115017019190927717614381661851370120614798740998852499261999434976535289840794862952049548877293938320575027122159036851727784747310504007099974802765446899038568349014176278962173307059412840951437292170832508488460019334488600177716133917559365514933930223313369764848382404516807150027662420935499150062526193142370391044986913120625952217654254256217937567852793121566623877896754180206543162449722464827506716704016379569947861340145121020637102467803951045601253310512308131486909010421284442249493325754760032747120120454028343258267268623224463185992916489927214758834081079303733377420296750842433042464659610211049025747909578824511434821280530117399876632121951807805755373030030888335964473562466684124642354548777048229325890601318012177536545029286960501707438824374720422061700352728305987648246141514921435997616333843371790372522420033158443644524269286146344338837302762351415811012723227547085635625465937672364808692248347227567556273031765278055632242939945745892066500586630200893228335214307224902321158672891418497327208701655974166641682827695350808863578410708564257493341700295700085792760743365900809969756319377566305920808464141218681049953787428934936276778050382031807862600081490245063854054015695341727379318847900070159124625257251986019430400278556974107843150485237781741497012176498461642513741238994242734795235991351643179617014813975325058779210315098757345658308503842676624738891277563548143165326396600200978323855635997501144473108050315261475051713426604489460095753904271042543345212343229232809889971892628598796578954285637347753028766956804444627208551366976460376180167469916591664129221483821693233184749260637139865263725006607550380482262420931277350436695115199079125587497474447286734739057561848754392753920105524560762731173454031835265895222111135815968290453574911349879089028569837023738640029552474100678826167683765182009443519198651534809062629402654611799788099448914061753801645083194606502071424617828754103921787046846167065953601687570633541999998837357289593712680088722052800484694020437883218676665083022681760936237732121561383466306138866304043446486326769646414936451294271250570979411908613833698243646424455455860718403888294924974184924766104092843059441135117442393604058779009427320893140987288694875984028078001745643739741978410683739075856277014009705956666451530156855649380631779853601271097824546299160730923826871971857842105651505217832736477006348966287166595971373097364243938844656233219516466243641458540843155166540650065656880682813380128516807449616090178919648255760108293965747548146092522232762187666136070189508496442262560829351972608108577223835824741058926538454706470741131815987676432991192217129433023485708347587491528849277950720797434237655951385458039280245725943969455490075945517019928161575955146427586225753615866713433097548716905713582907178594943858736494372583019751008830990774627143919871417649080422903152478253978271093049242639607371905245653101080381859150318934755299716620416937066439505161569430222730718534608843152382994334658110814840668057913919370298855641828255750398227351607238976748196412061697878717109325681901313768870064112942653499450761350852166151686636768076071306645724529835078161631000068858650889528863011296740804754937927726926830937741631311396533821157158425876247146464774696607862197242925855862508553353042155251911115803517547402903237210411320016529971570862250375142724316186280656029268165278455513542449040825448440759154737972774900725896567165151504112363391789000228214416613372755446539796333670302604543534640609923723308882510049529097951972672538141728909573968502317484025712456716447218583194547430046259636869124566532499520475598105015328574036911494919288333593492962179013686408196156699744263223523096997294719189444482536459842615219311704397522203436432516098543600884865889908153104653150978164710771084948807697996614079358968602830708354554771751160297695494109903257036919461725792066860439565066099353440127077380822905473259665871245559808517788754543447571575812125372964312991588192441959847804040668484062832622228987342637579244923174686571823198367523088642397682826970229487763805954803992180459384734506177647583180671267696459965962681777633620370204178713751351188941179435617270364128488700133243684073969886671509951735673947406221908443596220409902639670105813625962876962914262740319745102707985818234254558097931885763201020872713216332265971544928860930005459052780931496525310105216789238773009900411307936897952804140910931111590038057553213184969900434908667369150792646549055277795600225638151997219675751214569043746754942973474153388807376786649641001776066444131409659743377758765639616283977213213166633031306844505103285035525462261922844650057351360773124570444126862335635992496500785172384550856616063997261686780164313355050328930197560863471272509249876058619351840499253032666030349367312118655029652381200744063201828425549210148680316497242596040970484512733231462733983947059225122389677452984428495056154283980655492618095300012681472073430460222971297075449517569823093382360320120236405432522101857897894056328285762424366409515924568017218920001117480500389211667069709975887310270275388076996745319560828110256228781486182685793635152689929541190382552682340549730152752729686589018636333656012955225399863316705242712953036454601776285431818403156077866022738892658006753647400949890643859633292985225524524456635937467843667031539951673452092173201703018982893065927018949044008977971077674556273099973315600387209597196337920600199061328486843337389955635656559988749980086454765355115092365703935885302770704166478907488633579386921195634380348628530820044022864215540377038422885417675566434107608670127092716359190215890305538588713641854379931541996614771306948048983725287308971809831957854166344713795773618829815945609032121150537828584744794426736529478575175739514813451954964729895845897076510836645969160267556593530871484282818840643425778829569601732906364270629842349778446416981847299264571192103071363445418702165405915955533412414958249408599259804970753941222215252101069950892317479730981852727185431610732576083888444314472979099867591372245444679254693039677578366641533813061482164712443383936233150716553888990208907871828180700104273264249207987693278571682688829502718767102614666706236769354912779910104509710738842674895746058559310169386086212662648502422591566344840606500506561355089091276802531403736910213183892434217094689935842275843978780060261078394293637405818837779403041844687149288407289641191069585843396357711856869355072996429394444547421673310601993246717392052443600365631206150400643957957507005493436508360480774725869293147268572644549153752435079382625918565129063053791470138142202270278412803549027845931348578686492648621488599728623306863456379002622490853685762330834508105859754760101408726047836713950586869558393079826479838019948745208666726786245405254578263276665864013818618229484513449936814589646067893959465671778267265057966282188514490745122393583423429722550513967448768048417045788971385673149178054880800344715676031750869201127987464756592700278678352885802934152134595155167995739168322199339974657210788101445352369579782347709015473750104606830592370632247544951074231774134060865262094209851927611381658952545403143788235527904419179776134578700777149486373221386265566951373886881647550728870931762396314895355821620062921089403599721169916299770185479707907943585841649229714067172473511295608306257360692651351816060304546261496033489099166162298260527988120317574812014131105352907664118465458790598190479292724462360856324898077486553100134244589074573566495860275919971573669921901375091304400360280403979246768461438992169487324546250852967329761771864232456927977774168181934860028593124156712701431079927647890747670856870311543238851856959860406317725341904634071932731805544865324511383595430045578782019057308991060646426247648933106817208975450096512072295030284184526351869513251685547006698331437774273999209867874590388151955633628271498225338702195367008333235457142509937405335678725727645285896302568904787152606736064412783268027546361676354197258181867129021855013616996249218473373234133620355746578582027034786053379639792403533828514520919190992649150283928765018470063579794847322721290798157792015114253167566005353897509939123760403525201054889124168366784792017304073592951919447405798708479154066255393967230156950039949930787712713378445637048959526507144801886124310957261525673595497735196870061342016995739794491923971233079303509114073191215187227562189803098901437939079271880715927182066005523903992296104839549626647033689847920360662154309758274002415415120233109620676316299408869252822916673355677740318678039428353195772260894105769458075420716775584517441217954594373967268403577092329125894448090251647574979024162122870287057641564356943631869924742031313369606794508873696734248949111378036950582120723482014562143853286925007464973458216719963618099188159536938899460493586620861824196135369350361324150356571474115961947053828269863615609363129387811318835941001424215081293130232926406024853799020405189111706733432915134225593365991661778437896399247314570268422639745668458333752845721207168585776808857253615376615345431568623186796992101837448537360443128512792376391769860892673848911573359047258327842587717443334427913088359025095668861209324092251773730768050269681697856465338305177060519476621157542888798998333777908932172679734042167690264367677749708948037148441706689650796207042903874248638589275576894947434484285430122873470271343150716634525962049180801773424061844769684957066331564244578054902272940443242630478913894351509837969737801960321820711440220517448293252547092088862115335348682172392091317421223632883304972228882403963093946906428360156301808641071389781930540475543264983521452447647071937800628604151468610885946208501720362595003645735049825197957642696701673558380949998009455983517442656812855690735372960407882841833720039077648030078269827951103680527098672159586078178801818220880230108661236568086254830439788701599080191860062801088246085618584382217221864894551393013436235663388018503127178059645036583828771560423079920873717491465022112526152048175794693476815831952280159413548206341330356487315518999916768145961888478662116169918965091022670775660268927746580312623298988501697723557095372327521973162365847292170683649169276970857931010374879294198540587579299662789775221900660368005184598242517037539938544089509298884225957451474736466375955704758138762227478320343495122135438765138873325213827705545594002974360509486949651775627809397775878530178229500906423175742904930748110797450765188236972102648236318819318895350242608147489753385161537433188034452272364535037413986637553792738527644390243846896554794750851258107215262764672273013770442917548222055047587516492025993753374633621686037995930378020271585952472420035748615985304399150138431444366353283722963912023200385108906823374181763079812988901676505747660918443026584102570683949147704468247788306171755016782268365289823646991557780336316776134272900795815651768465383648290611572756831369730655264107332676896540829574354829151624518948509470889351032438717108949995366962273564590387586188378086992584156359507956543791693811614401779007682970609221378469870781781738892943978274876928948299553386894125517485109695955948211124342026747647724867757849617048209421160135788184216169604982151140873570756107357305075598067160920552651099663736662991661093042882443680695569951252311111517593085849260160348571849057144156728763729312015753713504328899232824743899563675607398362613024022326569039481260125953204735298510120262901331392414439855665875010308310475403651101986076402503930413089202374373544663699213081681347936574412303117629065182103432827679690078238091141570498326035321034858630719924230263923693137598913136209998913516740763970430486542637744961017343444002334923714864680907694280545080275189527217300199861072719321937923768938812299762920159898032319100010915071836198471382829811003347317934157104975658392044990343797751478298898513452043485198526919874316368502052402748520828150694312824514356067985330768850296135653690731579990665570625563386448748912868554881382101111876887467531712988708587709477438055107785607402219273023525427494190185368685744091334929771149266003042772461742791058015858523217918561652986146754390496190236150595904192001069416582464621322694584529604511820140935307631593600979271734611112335869715448719378438482724083684981458635054731115364241456278342914534791042940770825610947090944664627709078044947579992327802724476432853198483235454534276904249683296264698597166687429683985090468366521671069488604550783403239296405725697323865410068500917163220634779171894167335310833436195042805229242345262642727871617884770732903767481626603057320918904365918350080811279128041231366528309150156890330408131246300805196648872634690686231808206795086185398064751872356578032277774422260099307679458018390850392733641245272611599546662504276699876019623426864388714926189659752870813338446764372946800381430371486507381173283181043013592731121374634840141177190447668235031096411975062463122685277034419115075489892621716149693904185179618633375390300546067859135870074358278827252762291768398624720020860022256134557622850670279334921720280896595691916580124274532946268707528170868508886518911202815061633250387079772852133482926389284101986033381099191243022891910211043008147917624895382914403366843291149677770626943849372319898488911548979274018988457424944627194880189163375892957970469990256434428407187331637553473455719326698480429990794108919213336197328309965779661209179109542468247658605458324209353229160567314864890568202809156011667933855101047757564107993506992780990605930001587082045473889741204433793499434484121816205583295212837284296059974201466927539824247612320066413067997356081263318397933992104404742509311673032022078910114768747968178716984345499616621460368686266506856606525139471607473893114045251454340148198425825087774722036535121355664893399827019549625889132549290344713650602410600776458206053243769011503247473187549774817782506017069933137111255227439807847567957573227618862967950186331828476036092280910467497180281662799828511741650089897374598687970413162810777975588776432092583298486616702639382621909426385523640622196335363748591016852873536455427444734086931031234649414289408336704979400495826282456795565315865080719468467867173345842921923735313198542853800970683369208446218120261647775415440681677331829313913247049804400754645933239749045753064955102557485544307604879148506122475521873057944684197601097689996015421554242903054454627206773528139381990986560010931298649148205905888172778218625800968917713546667601098949306881893672269485618503972765881903317940407143787055641549521276355271295410619605247106492667659792712380795696513892265935047406247180410188153808632791128629492446190237544386010719858510017629655208322547559054293491810863184173357386599968060176457895658273635024084930361523780589537611800269539464157342745405761177793278715653912714645682565913871416765478749794890739221622325162258196313271937121761077327271898248694310139952295233341023256099081746485060630336367712923016697167770780856702867671922196231928441796812215066871588769205143657010369693557329063006381496824484231475618878299345575643366582542972146751753901109338317796887269181518956309377749129605718043294565329785290204955453530764373815531437820582558996361468971793733571704358915918072930902756645495913024553538380557867320517562963185932211122033185641593320203651827518285758314838042069221247628571486978657417488128132248447980519810637201715175205115775983096615952462804851938772209347691098779979327997862634150165112741984924909586460690751611231537403073550594417089989788460799343562004288338111811849569904973870700510830186252444453087292591250595409651866936739990870447582915385598577422329333929518341819290674537702337489766817819321776015093828113879101230242039730171222956726296114356261222039463596215642232181565501272374754099219969369089801769082125827711034518541008659019780693408180622571253153831849369166616892953123475010168682381828282954758217003800679493907309547085563661863664993661836359267225064940350123441185670885557307311556835904598701980562517792804829300665286785740721993237033518100617186087154173224404042363786896793420046671256828101705112991239690899620928436396653567929898594482629608901019311103892966339346184797529860292062658009419392779149491688271170738473276276811673922960221298759341302630340411872300560038850104400146704439602596519003441167475573565301748621593808794643688289257183152702770377781984434170344211335957264144434310058471869282310467709574224278364826661863041510535871725479632425589978229271531388138603145879949493974801474888115524291013679967545609932402881927853057481593780838805928938823176623442885308254737717029310769711371524346912504029157223264417183344973216124942015319036317306967413305806607257074819630702265596550382232741623763455691607866255408635750264453083231683328483338278538406462607919868831443193869342339837846782142233446002618994563022968553377990130416406395465614701837881251443795155755535977345043718883599275992173230017517681156463794418428042874414756024684972046043544159034127189836866876160569070510245803115095707516229915253374305466270018457479493312438237353996328093044946264632020761890987998602862022159081152205516816848662013232387049552105441381838762324930002169582527309590559004566300419843162436066054309661167642204766012124971387487094000315873167756557831851789066157965381535388255541000814239422488901893639243133119535347824748745707891709736083795178283811056832366917785899642228143320003559506304243933963412956562265282852476069992301512696667008363444682979653935565945565580429310710184815775112682337688492196414966203022076465991752157446391185427483077944544788056979486732414694525841843299138744805894869869772320051498749207904193114962696299699788912521612264591995851676142994246804587789995025480131432916924944777131263749151288931463174990192635622437503421928125780116339425627595350476201864687069750133034042767540346539381674446869615119197050998482148738796509639876494950949046240491170613686412317519618024391836821279599730417390059969929529119247091969819231543544899120255159761009329608094523961454702323525566362491774083409807077642855882580140103420199127439274115598636696819039177059471632848743562945053189268501971143878364201460857473751555319962611659161633584429431044863774993874226337527795876235016695013094786685247126706474709124777473100659465712358486602035140327990489528422871360427222046325328196309070539869501017042840806497721257221418372319919842642350951496009655370522325762021234830166333467192219685851943955075276332597527102746240127122149058847240147788520473372350763465690355668291551714206419941053264083926270580357878714087531097240682207077218213126131183333604398123142432530353356560038916054340764584162743542673016773267383343559520456182229605885877748483188279577992669294703200596974320758989759092380327105757026188267049090260109365881754211396985492568662952901321808306415791076638951887908846889277246454185503092607073050501995578216153489655122893882932460304319582334001715047287864726306750960196871986878204728305328577079960930882611630574447660280411832139372310517671325329738797484482322493154602034687826414540373845241513366444075555056051029655205193305814227302574480148604746453310750128532352259822031573294630080613886081977219711802009297445108853470968371051359197140341861626517397183764696450387351617613071413895064292532984378062301661798375538946782945743598065077387090154353682688468754681410715085124542785982549377031768276736666606399783652952321958093422465451692464349286318020577717752070251333899814157027157122172809026335523139595154919985011370264689192742794996956516932891367584921886533212930685567614964922896462255911402093080416007949124135928553228943129860379555193484806506330680171646187865364590819705750778599552527873253695314051459893994894262691528228573550919847928539757736231979095980141169136635875470563113290117068634075733221791019909008218878162510583775914667681537099629615057288481570408535564227046216585840764474028315175877252054035876754296959510307877234488218105664538915897443061675448427139134867123664246645251781859004906222006741974359270987251235934186009636263740159366368417419589559961373910152032362797721943649734035367175501727928819600131110464021047830235820561523067993241324338313526547355433777597058527340331853425890148538300515412637421123610246988895950497341331533427258856842400441031046269914890490555131398376105609844835608766090600778358905854911299388518554083597541845162866794351735160272576201257991898567511073921566135967185330391985589918240678622358209369733057923826975971635135851169991750184817761795081460787942554529067556173037268111609253194989721600092126825071885382211761571725893288613041020886905931272218985078356400863937642061953217967677688383036537664298053368004689663870381119570043527430812785632078406722405130450440526169887500691366023578759809774226138478992754336280411365084413593438316169300246813604418093344861054415900147199119789826261586740023086465386496667146565863457327769641643893908650399985576808373181266010335235887235933862036183532007623550416759159563575045724743161933044863412308040650990147075362904939959896521547736462292883823694423284909463093685681952603333744229252543526840898619671415962667548751582031619232497412523436063213415886967694382814005818625066873936510919222813146051479348454775398681220160066498191617848615652342007419345669455190491445008946248751337140880297256842081333159718821494890951745405350693424156130007534655704183715365770601956389463991768628380104176319636877862570797582052218639345265937410935964627438044554867451485739571745735824570281558455107417267590492566949604754939807366447594308160156328231592415851666205131658687258754930851290925789059540189741363359475208222400334446147094076745404368574923949076767259783637074826644325397565341146685657174421732335834645542955426581037053322522965940128218412507725321438888678703716742720855275906249005791443625688039405977676554598368863140005171176300083290019445865818008907056102874732864346696463944903882057115863929233222287520237137012602731057054658703504032095153165148612289693665900599732447383729252725359880504824259003247669303693379388213967004109436293839479003311176905943146808102165521773406315322527769386647417377875097461081535171327260905514209769399708979390948424234477556069675275388474517961430049551340286810752396006292686535953130015133017729731672774365760068370940849746960826915236388240501458163604740357460153619392097464608835486386225575542347346373336525456467182621295602445246162053051463746716780557454249312364068539349121280268762088734893323617213685010959843978122305468746157799736945370083902264259770237394695347242076866473841482589495352672932383969174477178414482780613547734067304692848887631418603932643602322451726267202907485569360350447234810307756872091731417891589538958499753945605094289447691207904878275717881856314473231879756063392873783696976522919823838877133295448150690391960274550661066946297583496747542358275497707962607184481478982084828680477807820506168005599128385204457243999600930907941406908693711766780899164891504383500457639621800543421507266455280555262594780797905063764377235951386762958747217662253204732706815144572553169374823097593160362179614930894362837532572426764647098016305437821620309545102630953881302267705993858570006809185542301803562906708200863258025845263298993580120077080108198251376328341921268642595430505263840533600868481934238189886503918815840276852873117424772642099662437138249752748089990798361834744259980108542583989584349440371936216838483372346444267551402074655090216973079751436257624775538095363255159349344689331765811294777565818422841783080124629179949059105956600609959563259796135047653804923890327586890303932044133046112864936203201123110442316377920922883392420600385548496752461804431476411880404766218567223747643635357326375907168969774418017112787249568367040233872898375403395221806048808429383317564290913038501620320791501502932696154701526100588311899653789816172684755918692553299456758259774316329263957267226119531847080104561503808410387991458639367186705842166636002751385191221492010352565151073425747900925781300293198550238701784640085706629230220819380955470695845691572702329051637778957184815142659891420361231320419604960713493042245747609637741905057035390104742217560019473142295536702967460159739020436527615382277714127717157447075402623710981469077330425666736327075610247890341854279019967750266497465333704711581298052782754440246512654674649582404879099201961348506396706026194473626992601644045017241418148099606399489124106927891706437235887226171283665377336912732340007780336907598310352641331287411182528098618763966678985723897675580445439853167448092959349508591090802257858816218616856922089848815109285662446425284618217756731527545011015647659901944865278071361413009410794940331439677845603042540762656378238012867716351427615411258808170541010341562122824960753668262609248904659995677383172714861451639251849378826442475589215090674459064487160853212658845930272302227468258160703987222713565217843597486255671778028709861974401501146070232218698398474483768704837816622701882496895994672000943385635051551031903188144887096057687969684282634247065806702703536721887841614238105867394957223538360963038951557192418827567110734610956110172567452790361478854807619425041128172368455353358843206483383195746566495628953141978977611636972276317812470222763227918610324112585330668209770174167821160360573259045113588147008470961597777944487908338287715671457998851120516851192775094751299913513125075400218938670616791122593500850746962114008927263486278893609583287059425842093365192350594562586033157894196125339605449896221981872006444044161049733357547949073034329734792111667886906800834816511245624167294863596498780330105876239921561060155702129053758789403560408621011967410188784919473040566585189270958388678967613832404710047361546396435053274964376449406647726374166287338839445225153007909411823703147421465726769571566690659998758999106613506041286522670547285925141538281631015552949790326614067606989967398602453010486670669088601503296756967369244927099057960286610380333603950692851763126033304991106118706030781097985482897374234379323733388135407977266610577956953862155470367015053976751460859456382122491210747188031446684623541117292887920796065030088516897580583809332412611923318937189353574375444860996373243465537291025267623599278251269654763563158904927945253623531650398638345883125360764423556888911059641066141498846822789363915239950284947791598429602323397840353157636978860941150253252935338775206709300306710372099191245439890961758871852254070183333407736909419993435297456971828527106683880637587442797025800180265101875593736313110824765566388283026203060124307876650933974491298515957870048136641667161437329899979383440943585937605368283347467254401661014838492667702514241037379922996214259707934125019007526006312693162442543613038361646588853107452842028495789278517714915380005967000781949333373837629174978885686492797324530759287272684252804563208133042919342571040341583951789025064099300503516827737775818977760534557272378731104800165833941414450068366701841371117758456364865056495904043508428597267620071635829850550842913520598416442931023799203545372954301009140229817269147188264906737677738243037368080804071260355937686766537058696253943501123031026581790058004499765604628823756573348615601391642622440838502449870212976649446985194071165326116371270954919368551886730690298590492482661776231582082245817553936748673936371077657329583491150134046877891383415613321639803730965745026837375671114591610298406630162158338892568956535130690625607103677984011681491167888960265934964659082260566398677249923075659382160305795736908957593413224743114077132703391409816353222892430025906292656344345103286440159229330210006371264576783022278474089847099405151323110405910404352904162443822547713730505772584215526290017742335195419776692590768558786476431099980832804850899995848882774621065448105603322792260180686561636090956946092107221452219992070573361635908399630299299008780195996434241103345411449864534896251631616475274434107449895455023441902198149442748700034439687092894762547693835467827154555991372871069524050715985552320978834521865241215058554172695286038938246214105917284415866218295504821723063631657900635031526243782666946767743583061286314784027964559526685457221965610616617853032121151597728267452859568732110001658885658328979434085760289098772573786247473892544376266473950802359379918937827207262635865034525498778556206555409622962872015598390966103351221725713370793423077931575406876182552018559520791450940220566349872155474550896897119724317032026894773238514921792500422213444376427477425663300497371368557816905352288905560861411729514243499909112571712832222684328662169305763353620571186122159925597770145932362383319686418024423727363175687482840313319432396704937169328822290561483956405114632032114469715421697547912890001825245941264772788436479633030478315626606590059277054075922715973939163200095987978481057369645656818202280903374417688388464987669969299556947785144700490941148231932293675423074337330370626774105696628586697870632433985928146108391982538659589099903878287338561559517283041600289246421092272799222926505392816988029074614602404550295316304764652520322436922215043130444550977192570380058731068400365147988613008190509658680098829808953152097559656135089024965026559580920175909247516385281742474609790210036766328737472042849464456014944405473138640315750013865922398687051303739248816892507677869041690302173263720824969063843525055507165084076892726197089338543269856504762941451616225531913751023080214589762791350905846756357371279005705217335169630316376845887280850599461195040821785264416821369103760739237310550906629545609989250074258373371752671284129683536537802956647784865817841172725312537033235070710118736590231163251912417269017205071406635141160980432756493680076654177110485983132945498704552590788697276012199187532125707269638103213361131028424413026061229659625619073515794586559430997322153756229348297963915537963132137834334619049185852025466436842970497874740630180771503911775052407475670176378183286437387576617181755259873089672865987096390860592686750629165078114491359821192635672240131899659222869826458819132442020387550585304165551800159794865144663850505066843934102721366530669227863124053311113614754958337399763575897495603482859385948987824926477104083401169150924283078090727685308766819684351210271915490731067033018525595861835765502555018413465032516915536355990364681470181241857546965326391270694639522795930002312785100064826917601505560260366689321366080560796833506355052062053431181782668190601186505056206217940529238652441888912066820807274241049222784134297398404613356450635135756573234153692641688857247261607138357640828573823973680165280645912317566896746456619413562098677398391173071231946890691895888479132610885507355820979869621770481823395614649322008881282866394409259698787699922162174380810985653627499627796323029707673854674348803777609627922288086400216917662709218448031000842602651375772544782673838038461391205668790972054157667818082657164725718166737467196307555225002663083259969685940665436316235398257887689955978448184999913432345319725950816596212885702223860487559562382570455484544509704931900029831322428453237279648908982503709672550725901735950184157544577081150756313889988281384099540907223165849323890297875083329552620085356701753052620839962771236489009901750415891074219243341856657508231868459277913695194055919337934981383143528495230625088521039970587293466631932177047220454596388486665441045949548821160848955102870079722002193024277524547967670254442055893623206914633788254041435978214442318964728674723506722439372501419063804179586870630962681647737485884523520245465003460663912771133288935833822732383074602593679010765887637166993306023216715990927497774205144330288097895559257377779481546326846916078547411419256237248203964562116386057283016755950253015901853110696314642299073342199005215880329439772013077477215863519713045339787638390160376635196385549159661571665649663126805659365220271602805949553448845333584363480857016155097408502977312997738651376228192640842039856768109951391573470688504705543764359025861208786464234039153052283311252295061770676690401374193875513570866535615843584756996327752018130871204643493095750121595878683172371532013442240191994956478511846674926376305799851960358724304160626264294279748765191752277206091205294196384717907139552149334707561106867676382694886788399217337482732408227259113674410565866694234053218068648741876739159464550131788363266319128271404181956397734696343727988271358169943333399713463304507925624367103529567675948316155056309804516206606316037957422786999551392883807129557499551073675837862666541159822093525014679116395572801499139452093477159103772873361687179963254403993716516744217795151952397819749621269866027056903292242609010961186206264033296099720017615602016375890224351512472022967197616178119485710554599627087852427610744354224198875259416199890188906796291122831410860199254409626417028274012728127177238236193058857874361120707449319919423880388965123530858664512567071177022950822392959820692633270689007692384745524142071878414786875474918048317432765852789933128015389057448315394043029449648039146033393314099431417937166229044103348199912914316165074001387583577157710850736708736182055950530270769906320534178930476073144659009894137441667232215699824215513187824100668608384451247542120185701530940214268146833527267361058815375484469835820330659438546906109686051318054834840612254227262383819592788231351755777977260586994766574278523889212130152756726653362412017814139779001967664107267349759534849181560355410371044209739137845880485333921553727278099456974367781704005780042442102630397790593370880664521565755300688216247883029004339256355012130995283020814532555299411565631521167413598884844667046088954627838307301177419390365457061092033552321144051148164695842128576708893091598089115499113868473133046698469974300455113871188155213982358223098254308693602399668116739762814734025910520976671266893048776325370429563100828769450629937402742643282728493015841969355655900978750929574645300734515903089737994693494803328803300023785455854549307089346081075124401472262432950080359856606423032901656013113074805067017445592990654208754066024438971761731510623888661852794468766174519977534997488840237711647422153922188508700046006932847096791765734988563298984477290315481463521168040814761373766366488075722034426061551536437334306066322200304188475821742359227309504821780960450811955754612640546908198453512552727226237596222572422133132966968031847239962037132738440210145961993320196134574960158014078654269849275941358660778357281822144236763470579132955797150141129941278026342787494284855948312739602957464351434140354124525339158366756344146151537786189894478087635832466162756221471346634175784524823172094087323907662889779736589972031218405304352670238736790143252741974815283930952812262788978236362146049251631450498462662702995778392515800034959703244101327309110062859191861262477852470704442876833845869560089953011967918848028731183690756591737154680851349781398022417965710687296073400069962061217187049624830307264893696361232832936761567016184009012765264374139880681151625026717738212397855210195138759335803441638964625337226192866702507200945084143856875825172581602550881899489489233938037250528937335784827348655727747598745170941152024903705801736598717498985726670862857470694041926817068229523118763018083219251390786802476342420539621155362360822816544954256208038055529201524984078853072192764927982281659993318068690932305345790999583146213795596501289705857151451011244500687741247028293333182119233642827519490717030356160890830362895923397649110815475963109483591181827693484954555198129658248548185745991418545922529634184410868394144705310141569066321104057889251651267201305144730113654038091139275120324270533900585883900206642098120628825484350902200721516594790516186922853075901134669392568890843261192640853286760438173154195496711453933774004827628229867435202114005534141522770956819516188079714400773737758575996220172843054314919535065140817305732115621477182189642515218055843147253724356084275241491242949396886966805394936463071978551832502622927632636486574523980557123328894598542386524801569143762360834478639729032104346981413904037225335370950545292998826081149466508110616834320250807974851673444918758181355921913750998364586387810881401435129677747171095490241784505852779924441496782857178945649819935035756110464493132758308688467669445876361505730297148590594164048567210611227462153597103689872317705125968878030747701693759885316672840289255570935318321870088552109601244436715493012544845519706661622414194511065467312734998859960554366374311646577344664325738809904038410941670569283203241373262307029820952422610755348034721286891897802929733962617449549625749650128271127802260520449964011015660665715443428865638600151300563615734614421034922205902628847474789014746478407953761693921454615993584773464419840164984597533143633016395678305511287347372260657736434000909911964113437667840321740370513234737145253235486626604812433005751152122800535791938721184834005909988771649830308798634926067789404416616280533274857970757244725039268480307476769706566431382342167291322899190776037996278308327929677725798576182989213428200122088046572469882553182120944072217501035582944145044283150391684489372371475547828894023373956729771330189967959651605707614911308427512391471187927655229084955211820306007124645106678852843414512975649093995069004971406133676189549659169527881557700337959831751213158820897273402809457600726390049933206687081108948516281036674321988358034283757100869690548879357944925052171204347837341441200079855305358463599664304852631063409902803910090858396881671378261304208273655449576522614197064038401341924253820663061138046441768670365708482634000660186475780580148351969524834679655466570746403232865612583979737461844108420700428196222106701961355975456008846574443747099108221022566906760904523392551158798403739935102508244116946193513216333064081735530993752206709370489372754036622919642075104765403640509690933252630562703323471486570918443222814547720133360660335814019921766866576909696542988682853294219303881141727239504020652737664343684455738430546347065843665805328181733876168939727705495618112676585431463815279152004868269808460394696272471481289985570074253442419738902648961309588122649393082428928319645634874555085468059699882470665563862449929558477999174925640771674419429472778655699769786635676919063892966290069147204314528444716946580407917673957612950378095643744068391681615860381768402899943291701255264031031496711049146799666513742571469410112499233307527901967860036369500559546635471550498529574041335243144698920641102950011956354635358393114494807665295515340569238285703514237172394903361344445501603687365699523005887325276279966251938516542665104425099932923988735698614860642583120542137792358901326050725812242145355575978541779883629033757995473579636144681696654618565070213509038924768448572233579766794582827281768462523250495694955931129779063900063878849255858265549361501130515185680260759017307398412534722616224085003100064155218462969574540517703259448157948609032468619565294214658568415789757801457815579644976428390110160383506206347445378030592278997877852149705086210308388653467863296703423866273050387655690202333740009497141737129156915136233478476137530155555253012348272190779325139476521347038762713069326297466331242431066965684885644024882609654634977770315560116286495307231316781112497931325572867589226158406059894473206908424843633405901076360007009527744824944835178691635361871264799640328991965759338493560505253584590730735682435996536296316836711976923970602987971038919579294061395852259743077332119949853635810375421966025314465217894869748700223406609542163201710218948599562174580801695868250667104089920438516288453490285487351868672181774249880145578583053501037931883191575793565050533412942422150258416210676274657475239062461613823845166697293584665646345823231382433546850305626769742849556728532933757931490036052585829213558206827054260356173535861093453645019747253154585861595740812014553235167494628845000993349308157246223314682996592234133376672532930747811299811458411799485414676990318160383070741709948412179809456203451747187409278439854306644688947772434582657790816461842506740031229017267253857603594148516803452194057877590111889252476169637183069560540716678416479883776256431603148945627619083656318929827980584508143422041572455389379366954288963062610136838709143053673280593561774429808393855461683782431510715902257297110201121297599601164719231624011892065612649658899856796288833168528707701594954901112486519777700915370793137711040800479269796354796128862258802605171972081440175151461242108301742787295135992355250874582180569559170807504155956750888499190105491499933820588855944858284523776123868087027862633299563779411379774445140142564879748550702385758960501895746472411560340632144408367154862468085417596581052757171695094617639539861871232885260532269406904784718885072014396293407190229213591590989121812336762668088463008965521788076765344540465355814697563825555924367687932079090693388063165967819280373315899889634097169416449293228929571201056055089103099075821406968642181455095177193529656624261044954600124487499766048760348996075716462370462575902921082709078609594660030045164537973063525114068313781209526161127606064437535798885921014614707966636567625497295287442857687040900648852284412473762241029548645780771092581788613888961074155411057529788687915342241270987202766286973165218166021923022476003373470135048867739719086994038466376570275468876332523434418284295992349671919379719562421488371024827680768765769000880521806391372947424648297969816361934194887390625826352709049379913771675657677651754563145942783662442183657122194437713418034757018548165482933207850029261774048090534376429899096721526649466149836174543773258565434909896876731965974071549398702593053300454807350817745923377337090790739949440638205748296717222254169045517701732146846288918880242854842535809547393083424296322909166301148005358122297575255990275214099738574982287148081662578225651763376205899111196922887288658300551199892805710495004207301181599774853328840137494379592653963847256482700335584152321928083682319572790837089412897114538151210948968432209857341551548483006995808660623858929424990064235360630020601175129498615611152032140861962026305411304603634272645000932381367388225526600348055580349524346762629827471806237420567688573374267344603900409517020338839576551289285195652024542651446429592606909265732715943727653724625463552424035147107395103255830655398910480124611101017652031563601955020428344681786334266530017201299712510697834094802849137902921250986482238280299870260185224845958314064881780002535213838965037614862241843404299024029221253687799484695454454171125239369772031460322453166734796171895729301401980588067656669392825393926242492682281436729012937640701679447622050392023639122453199054648805252745272695400938090356995310576075837434334115477268607076404411289537185865955627922120821316141726475496902672161083089171988461983130771559036620479732076596826200973097178524922370497750265819282574287210288619561026964546353305074270167177350875822266339600408638331045171385185331557037599901403459561123484858715329284423948686021753557271875560647633377460030598476285039366282508091307295209778827724549987278526901413097670182300725136936092635758259248357930675426810829960026973697507441304970618752957733999857653249154720564624981179786780305866800059121909319748094936731800673740684556007642858100384410279534549732355385496220556117343586362252317712711241997203759059843382320656945823182044690060676514435170369343916206887256150911157742286887861541711813957656188362235475456422766388376767606540979768117633680140221188651032402444525052187931536212237409873926807313275850501591822746134078030927655654603310794764163047323277699238939498440303664303756526565219336648632871339571258896517859381481026468326922194605524620578317556509231950777489099451678787967715803754548211919915615070324168279496714138922975692530478223518112543106012159878532762899702624431755837019776685341343582159485629603096043850143780419545539197673717771297284031569937448722097879126750163491758108802592721826699202852398433035776935730085843466890083556711088486724908124409422269459968062173162385773218232117532521978640223480014857859643403751686175133316296758467998494236710584642597016410653377535646453508774852945958807196800781543477860270216098862110106880731446690086491562187924298622770631762947966795269386112128508875889406951602413437563260624158176805172033016356491528151528177582408783881488964231472960768239260825158824406238270536034344529489839259144190042641499697338333182454489865845990322135430358853533330480968923879234415451584508476530763253647661622239091235557223527056451741411452543582471267631101774384202645968070734720458233970864414047093651864490339045847011803289340110711587193465097625018025653680955353136221307375043469485720064931745416306629533229679506236374392137574443334311312936709651203463509603135524537032710158192150693980719818246825133731290713519305458230450125701230840647301195569236583181006266256487707015844981600292618853584398306607447675983514997208830301604284074453575235027511538228128380475120911466646014257351643950738037974800356579471185792027639001901195258951279082532093607338811491982279822143629563436295113354715992162289427492629421940753792041014908666661074279430281955104116489337754389076616803549017087219726847496617067490925749194000829055706289030584073313992405052578028539292732889364600076187694829212370890353960357061862778010870278227377166887565886194526267224176822838705987900283069323047624237396128068690596853473478085143756976691000632866276998264468370401524751210665960114258439859135164555524421037900810640748644101985108928858810024102214393683973327455035956229869045643168864327174966547668754331075195064530612852424147898775943044926504915892373161180295629288625502743940453761453055429946112160368189161782521832461473842873316510850592023015826393865687407248849264394502285477572374103043368347906881165225876525397861422116486039050002515430912173589878688400045411815123756448453566168140365243301716797844896189177814015073313020827285498025711152955265814901629515866836453676464748850846408748977013611479094008734422501809006996459130288173106122360508592088276751041788955553141055871324967075706555759414810112890835479121931528907815923919903896151056398638911279235529857265154877886147823673612979996202341827023621664312869645908904426989879607514305142533906602880866057110698150342751631835392037510185759041578570241279078503708879912451982834297248534500132998188389692516699171357962085489826831001909690518918924289497515633603512744254188395958596373274792572799533119707108478034183245748082019227011165169688955311953125974253232823190353460216540522583578956851633292547509260919221316533522146294102096776097111445407456673345475304269499850733547873795524445973433928368220848106186160202672395288383968570344604186942865075181891403892310933325259641895428298392840084535356866323253822571968480375479583732034711151598169452600758704158662187570755972735292437903117890551532066565787492393325357054756826558271853644074488883574312611125371433273262025296424837679226014535225514328203364015975190590370949036639024404304702161465106456350756981409778092577965748527502697596767542231780009018286270917873996459060848912822348309265767545065272692560720276585421531303481658291196189215388065347730541665139165629524998651758664959141981115976880374462457963752766183580163269350128637931485389560739513807261433180891230697709889517287076104561048192449735864846577279409828809314596628272230331994593377978765894425998252464073735317365396251133874095282869310689475901944030993578121403787571690151542731609647842611588440569450419587958074689938955007750084461820981769633991286953506994474863317604065046435818552825466859994684372716070152964098857036391867017610684881720349205329313858330628915130591398276285335852630762679213133991776027485350227587036305336651220784204521740519793408644934706741756191574080400108490180477870914598878153915025736976571750153348331108258154019534607624303509994178153553062297790389961120562035395283233734439237300374749557206650168063737906102539932035400651827784247582587028201372157983236480877072342125318022217167313714039864618667239782782256504111992632530523253385375643936737129422712208845366994154752806729118708465970036484201821180312566510762798905713094979656581714492372100981626203810322764547987156665219843767748320794232573410595378065999700233804295076394588015492543123770096028178196868136735073758908156773763679321021048818274522370126898034307080836866193298002768141874444651368473230354577682271539417003124982066498226991274323894859040252698277900530909840640784657815195091771457571536759012242649769310424481351102328814396357012161700798729755590217507776602444231422522005232798079311539112263176058655317057297617910504818797074055046582916284698542324685305665581389458944105491954779530508483006136429345841843948555386038978627193259922494637952551636738769183602644453150941399257846795252445633610764410197643972616074140678103531271063454790857034778344907105740014624238570621780739034276059890162292067197364241886539155035813171071030944128531423507835751659087788144387812805815365602235857189915633051262832717008792756145479644838588279288588882020571188608727697756485803183821496477373833900901929677461217717666457557481671171734947357015886785594247152168214091165013624843931941855820075134637235776897357518890691279114577532246322692679362035362786634607251507149486753456994362112286524332022496158659966483013731916409980821422089128335034771465646207406211087043943066286675795657728753840308380162228529013268302165071338254912087061775076688929989045373767090537794039296138186041875288408366930678674403551859059143594695976877063781139218166424634526224235495633054447426699684956438867246789741343374275167696682630855039407878671290111742804816403163191948674284159003952287596858261353763069255369490795056631340540113280572949827267085988222953403170060865896861350304477223508857269982361267681297542304827677333017030316340892604429477663741206697096542469027357030045660921510736093799298733198701212728654586316432281782483844696046343910018571834565767941680819826102153795317463263955020603290950909605608934122559737023664968140462911002567262977221666327027286146210269597814409567711588403348114799275966208251019777808340313924897436040546079905053367079732412270418131586802187920760441144927871141319468491417880622691277719362485929578808269758029710733645958179338667127977721355437569646382956273035862283564840064853084225385579065946467712816015334497204217236057695986349114729933207091494747285404881060479034561679078071359797017234435281236902120971393314794168427294342567974200934275771644648457259684681443702044985427876277044228513916398516205027906864996992767971443912640292244790398735110358200421854677136332596983087166468970416306016956667974746767042527666664154109066688515429262768973773669072547946888225025796036533479896923967142234867403078139614973101249980596248913454442432434552043577875427409477265654078896892664950595915149619453036178342972826631679519138266377443427471571447919570640240551728427899599480206459658520514621643813246384143676905329264479020313034763793896267860896546551006635016507610349786559385817114236818129787947584442157720938777593004070599491462573779645737731790656300011635814190508012708491303370881587435137710665678702847985556767469257158351702534261558320040421183077151144204793414101934737962980629651768211050670126454848399353790893447864109207133625927806643795395111519827338934574181237206263589379348372240681170308133455738765027880990382178271034604182840470546454293707276160058245006106647268663166988636035796961406990834573417729147962032631023760397310678934763196976146720401015493882238245406790415517364049787894419374428024520254328611023350539545061844381646451210626616376916707211430524019760220997843556491507071181403487426839032909935137095703326977754130273180565839180460420374769402878748173741798178859959525567451140067255827208342179848879851462438074929779954664176600719735302667859396504034243139780034020442406283579085859418689008919467626266014476703768708209667269159816716276610976020773563893713508171263305845094830945804508036504138367101096461445523157567558781590455408208686258600490514285126852396364845695292174848401979057324228070903155835224759357580458796626088621121824627041982092234308014921096454623332210903807175230191065678494470812093464931668614234537685259258229889824605328834259513358982853168460358364834814484344478245366553126904744773735780357275266975006053573864367048489279103779213707130513740338956275415229656161261615872618792913717014558015259945404178097645955177571763931540589762481745142478187416690114727419080642134402539086304423577777110873065334772756706082019817097152881080439264141311293116204104404726536047432175181238997231381369420276611422297599571758875496277052267454626201148077779356796462325752587103084333760247226105042379713666017156422464768200768758780419570008339252099963211029270946747839105407418076351293942031655670302907034780296631753262419932536134228867791553792001414140261319373270576574651114862318650386466900590524823910306524168974156128453482013122335358851959708061930501234771957668237268361992988456071153507675901111998622421671905147498119895143170170194782123534800746361503554163129171173879338146796014205818400450108704785810742426735203120522375701574919389593435250107682073016544153547553258150227740620892964911711009942448878182568631091916176327132089660439036128079192407419276969410169932123322009766909402813136114672497747974104845710794743688906547289599219170554367894492628758306738884385012825826999600077959432463790053101387285054774513402595602155217561365532627170025445822021275900397462267173157812673465966554226940807581826784878529258044394068369403454736526963789674934062158904033565835242805688586712017266205359658577922754689405245503724335881282911811874748300151074704056269067083500126105620070422994389641909078554208366651070836777170315254008422308468910632630101777543242938210716392344580522405517760815088104096183848769161872645717001777997062755612487063999044094476163704301579774431453596688349628840835339145171087262708007850180036221156459171249346732155785763864810817747005971274733466989455259413232561224272362968578373291285866706499263225129499680894920822662130311920981896385135671409230837960272996403728373751087931659169362239818791720844265244686229497561846654024508839587584160077315924362463453702867764967397099502553122360628671572111040777360001257909641947496088103507211261876486718437694750769046205023660190364443272789252382959098846678264114676916365864121401911193319137693925052453395374942425011445347824941746491350603643762193752146935744312243022431648909963221837071482935825306785597921394867684030204717557510168225916050741781239299914105924559717600138389997281937757540100282070605961419978134189925379301847949839089101458453112202141445810127530134662570235711810937143010699220112473127736811953598217338984360436705428794440624090065190629773194141869926321857241039469274096726335414169399653308015339335548296829540339465400556006521371710844479480600310400465674775643671638606097548665663157340367110431879522026039552392539212022230245105360854948177478908688312859711944400670809532086513151055238147614523141964848632554249792846715671987298074837552899721706672329494789293742192539010491133154759930114441067640856826924570865707046954271737445779519047262565410333212890254553521726564510694502406252754214997424933782026494562576077198687022042098189243614209054166704266664258059295660733400720540680808064125050406561379810755319545450949112114838660224996455991551648058225487544224721708982433015247576176906931546500534873895428203925275724564243817334115658525689485381884790721050891350136524834821780401269542119772935900453461950802644931540409173881854992319184390098835226342408669874693603385416133616198518124893133703517164332018674484404223323373813686673271927708856862263384987933619931822604755596075801132322078732956528037133973765041466323155724343444993616730565029556738976103210774434889408517220030235861040854262834600195091596634037761809249093185416474633543530583416673058291192161822700638380717965854591404731622530946305385922898270175101095437306889534211730442412805536512049285515010973119907037926547347942185457411341324236745397450379616204898801251064584022712485859514673200768090876931952930025462344613611506358834701703114932050902198205135121266118519159372197562246334055917837275439088952235264262461719513309883501019841101164761765809212084919527105566636670162316996251122744175323112335120545293971902406239357224115452297566151279282876658115507915931011508615106909476264354644122187734288227033967975975263050025805848521186215241838501703304131385696616253563601969088908174774866710734358072097477336949949293651652835446929266558755275890385567203230172123489410724532901668131036369847943193135445422960385498772631829454122094509163484457429000881185301790768298324918695047886631257373054653941747872895519307928336586172282118216663514211523601101382712746940091974309989514279706409837666893182746067803962541596400047715554293140055338176670714684435489038124813133036928985805714523674964153644840370806901582065160615711280087830862520290438165710975592014306222751326441869394392422897431662985270922293435810349835586150354158710351258328697658656307511579690205172268935751913339344437399389864613915805682250493553885148308860360761234995831336262128257306153752255098791149045385413084738672758604329180637296291564272997684420706759011138591864229825131010489149970212321263524163742613880655503060961299261632986913165147338928579163790117944909811600317179852254207874303785006400721527541547107975793312015253124168724862216724819756750318791653612854079958233286933419999024346377876932655436308598758149632497129805166390760112866318796582001787834484737882716281622954819836118367452307139196162577885690777085526502927525765977948624072680342587063762466311810649485205645036299483507296422611080252193714573215802647992282512530953167992005333774097321497496557842579668332635232683584255436770878590097664324238492596812945560857300772934544793521967976060690643578354421393849326318658804400532068673458537226774960622988948486108923876384797155940203809126748201564014764527488683598358133619830868746691426485442977794130215575495501549226425945713810099953446845575424443589515726489684091411024146406864437293075239110357267359368610526340269444261417732577872283597053216667505105421364751018546152181418342916015270842312420034445168608103263409497596599127246405236935403536298559923433434999959858117985134423869135197650145846231227923112645681998270599657117826431415507405086939875934916119684548256311409356165017931683092746374128586694819706992232796764542505984930638655055738445100302618645184531823309987836035252373521214572703483812485089851832801998094808606371063299759214788600334910691641634326096124054598021811164423758124525032228418130532266602895061914187256244505179646193574743177645199080319726405021596205727031792889931053301925250232047676935670838186960197820618984497192374954753666171881203312607521331373229167730490527622878914586889736647123813431242339698243595524102275939683502158366294752261882999039471704822623268436427374658815777628175401978008454685891378290679390249248941403971641468783242202237181836600902300188913759799188633804087780948678154773086789251618964538241502457395851466146233724203763019082732527415746930988426978949302326099945425756920463713797379936771769909227936966038186060445734076369006226655079128777616030480473581226563800155432510442235154763868216739628176518833195567836791147994364221566819196534748612343506562570851090471034761442661882191635039907600688357945020206631048501811879955425425024168168174337698274961202148992611090175495897059637664348319944646086333063743946257662908680059656042081401294453077293407426749181729331163193819487493378259943231653673225345553005054862785016325422025746236994520473353568803200616605843428635822394029315653439353645476623560607135448238617064803382834152731713508803514514165881130699821863644083806969020465305354464860999518303412846598860258269399082690285618175786705783119348794040130008203573121548878160980479822197364219697917375247581403227524321656810344485588119928200616398211366195324443717718927087332099353111370061991862692077862971129470397060838280735921770154663940902571912826959701417696368550216368901922885425265196314720686650161714430972600978280876779732766877614183471675021635022153045527226266494272090743134324026567167248808918122582046579925611324661262396513223055037111001743799225822339465309598824837916477165916412674907946277734343748031816094364166595917791503661254459996620945365865827229742139791198448664135255156782262810823098854011443357443616324613520166139453121576960527574342959484146146289206572438867120902642983580034516484302843805607064945801300734912136817608706316622098761671870621542323453674167229682104258894155044183604059553445032113679100042254707847934836789070640264377698798986733757434852239027212550824788989607474822557610183887871280870725572799701742143087490612799956321575604186371711585114108315647228257440456439356781623053909829238560998344256738705518540666045947285693553291327029215570384898809022159851661078860994249830641576363368213412729297052812120552019832980439913818400608131127780496537149804515431003939391076907779525120799318858850802788310686126527639352471136877975925112371930966832894212146931612269521316109069779829077888350609607470216924239911751749701448346213943574204715286921930131556614749567775139808706594428447376199596851602428239429837992689151845484141914151130925744018317852738873050840463530308159888259241684167092283450059124927519429893638518783911828367517922823375085824947208682182230332798677008862961403712577933383145335791947091204495563263527082641623054101874127239103278682711644052701902952071564355535806345382412789601313348984918718702488399485479290009543805677409731474171368843698795368271525309856513868678264241918998132179095433913617607169318455882769330946954522669055288622087662393386135643861814961180620895698938441252698160860379940361728908547803339523248562872682263418758961853494722143908223644037526281843825501200683358177873867865310606450409221925481108198547231474157526298247127858426409396480090551365853294171600853063301577261131240428403898086146225692437795348218485136293440952528233919979357790261354402281942992126105111594221725773128109010517609732652198008565298245915522161569119684038123731561464056606982019927693651878037714663964115186391040520266863011072313241656600339842409270469528724757218044225860146666753308890831706265084918705670782481484935461106625708885647827012798899540230882639420759009241662005216664295653163801113110106147524808885666022653266994526594149345579636275684419807229648035015703321707843634041165972317772920655284977803194575839511095989318810100991732405876856230273230918627667753772019450821511999738901767435402900398118185657911173621428675313014216005814066253100152857850889324575766576724217661378629667147119413136757978960064049764410459334806932611615724292250919220119306584032118144886792377522877254861538825358649682079119364823338417826335486908063807996433181505974041897820530857318122724127739142588900047897223146717666186618882346426008055584317960607748033681839265633223197947886643539483934406431732993853106221509777849991838405827272936489333641619522885971699745976043473839574240734414896055897497905659558994541392938433975507954859251370351981496414224651914406135291270241373517838948185976863314222720213885673332328963598296181424806587607322204552882171301973219320918280321483466645602406931690462385724982343080011117224655866620898956999367677829828085706067185202234897379669338824520352702497347233819589066469363945424379359791427313094224925080225572161155241500402504320299205880817568818247425957693573449337428953397144362463808560299364091986967993694947426933872756325239309366297684116922687659315020050290743455945821351808325852712371371817858989289091854518862666231296257848082477098562064411457609961985297253732446167998888858280335263611867380603917699618111321883939896431802155195092686391599487245572650410180317906030751368491656860722941133913797548237237829235719583407429204576151072863171957713639517112971377156638387098147315658394971678100732611242027813808438135793147169542057781279211061821112921420861414922718392981215937837465553809149206891467414196347255045714363137513522497530671662671330744471179726471326989425942344481691412456770372403302292041278240015787422051991877661292618583339040809964765877151408209770322864787521958645189929466901103989622640119313303923970913836041421815034031695098455940610610555761226677008054484302264040885825181220396972398843910039807757182414355021128407767111903300146298495737975853984915581516352468898169850158962727571627008194981918656964686144390572908323317597824435181708638254091993780991341892052049742065133735810049328712650361474793785245741616908776860800744789847737508098912014423547531658480018267002985887159135257575350074148970857569640644563514208451434739764348308122997201742970136146844889216184506364081961741083221346517965499589654260488029743788526804032490548472646652949503893686955930983571413017805284469424335311309364015127042948579178609438605312582708303692621238638908143663245729119875589376505001269244940338272872045212272536158219009112066316352887668284017728396725230247157160706173646866031426774481597615063513641701328131795090350835816662945972382930169290638716261644408966093450098724356184535092865593265527267201137812306208540008993684160986408232898971994384932159183141400300007174707721262520144627977146452972418000374632191289209867778343270659156339568131394501676127097541492766890709402494542873464357809723815348057322937932020489845895934005785467441668150591370653945558923562694072308454334755319750912312178591281706364479345462091412934758774029368377586989762380272773006386778752878042890953781058690716756113007065326287600880092130139297668361544505964640155982305047373396585936954930406707597706739098358086524286187753831209160359227408796425965647205951355361670946591469750390710726070051850900125786036772793180184747356435434902604813413140693912792477345090065171486883316266773015872368499294818231470129430041729952652165023435772773732993643472054172614269847217086386872144357710820222395687783666324823908121095145981751150868561396803278852801826672602249811294416224577572992730139560764025813569145896530497694680930365425695861620996157799432047812169294989246369335246868574075692481942105975916872568610298470724027380060523126077198954068311077718328327425148827915433510664535974529154374113882380723640274513818239626020725579250301097906365913090144104414080263141396096173119758574975796579441621581087547839248132616534840264311643120672330411170528637699157031170463128811899034135162548006766251942383482479225064540321718382547195807000276921541994798915147937166453635776823839723034654530639769002343087036887260267274175049345154961581343796790800473994033589825617606488545754969477703851388083796055691294386576978038253925759446398506376082061964988575265204639961591227306966168681057842833161709715952397768761930486237945550740752142029200885988568876902238254683574883389735449047780865370328069860209867036985315138818001820810615616527244044329744282595093184987990461806234789852160252411860669649175997189169911591610351095313630241919434738864417393682452632605732474845251841291821168155669707495749457765477865828282200140793288176524545925671742202813194511582938709624107285528154376860432697888678181505294415619832336208573896551750043369527390222052437024427088287494732293339752995494158256812813002947224389633899038268695637224232993567121802664542474726686133783511070211940405527486816856132448595589181213101098668622738734042603607597071531693296882839735766666765140443308424157967821576576654429249707758571531584228111077676090586067735704772727237471983713092590991837799529410690935113431186621884436949931767807658026531119523011113663868475072694007078974170321681686465714592799117827753702274215463358125488862991136813406683063551496557613997248122736767416232373113536119697359972629096224212926421790098973288516839844610211941926316923754068033048626518570303327365763220567700836169868654614493140178822167742912771536071435087761918313174255749808092540033419446773487795667803334032553711849278610180384213818172565601682657457993998791005457722834354484606644963202636618622393805241723658784736311018199912369916456874381414754461924353985739604848517886725807931549853974931812777045847518977692845025665777900575538553140818857153948241859756497329298428552446518312845115806640674896123024062401966839009465061958589350840427015671298306248588251477718204679201835745768453080994483116066306344639967441949599803959826009167124956272186659542000363442855026726709322760250926080898213755656554007490506873681474848800062016382172156658604011095567269528199579555560301274466711311544797748452784999745038354658038924226965783362672697985401484089925201578052421507715509840250766446412105310019126034076512013319654495774034486467294431860795201985040830937321465121986763795805626795364436229329895201139261938075856819882661746448956470050527505658401542858702182010233844998800012590291814765487001703892661169331862145709330163749600329730934891207634993281530343672440845695196732460525164237422821194152731129516026518732051364730395485617268205053641902601399410912921282211982372336610126244538070030070192927561713739017935947287435185881285177556606070564056788016784553168214372699596393724596761593311549737449521324495530977006995790413582804840108639143274810474780561801216908202190252270434250260560720770940344157799849171939875419748070032446611418733215213415867780959007827471728845378382127116339120012213953953488547696662411207949632023239660202022546215120603799137092957705697332037434752387924660767643732786942025902230054468168785863318372081257367132534869850686949766274885512441956379075927686556219420520337051165187219102355417151177894589606218475468116471363513809034050736065046276369767396551710687366464110590427372232521634694954188545622909489076794961475102659446424187169158921932006766646793788371684078570356960208300101177427098199894451782745170112113465883103080102765438167875997996089366436600535934367121803710030423451283271865514807642836287831298330048334671296036596847251729934258954852921322937339362917224653163155706405437793459338235086881536009593924825518713480492263241729001435704108955742329773622266960330347859854072236619069801527287052375957477555868974780583870013205005819820752804534538132742667358387055011681781709927489548390688222776845851082276292612801293552370405438800903875143988372461296254545022022047956053541700770591294797200541221528476845713670645092260012265950106142497385092815376551895962011260227076931262651264346583418303344343784489858142494014646531208203769067546113661040046496660436670758419064046190612355479898074017750813449942103160649858079773038762390643376163113024127215488877185281634686544552071668731209448212721506395751166370784858963581776904816062128939976896056017621018644707253766148163914949724085283100267060617644301435679122379493069824171406506784471311210492064795057968979755318970009198120334964277312300992653646483992809080483444696664199587295881463885346087420595646850709327842347684586644569400156695548371806840430427670298520106340400014520797213519811901495395122722084096945398740946131036143796320994105169642422946622282453121617233010003016829417893238496341032075877516885533148706122592664448621765166718602707361737256475095370202275575898539620858250438704617040097265278474961600669786618267568717568957366137243273927118407833138802117814718432731136954587772055932425463685618130874942184644582027449739995177296698926072749018147761238599727069657104807257412340511362148446220497155426178540699287025560192908808531969888492790943269180890213026914390001119572284362924135866462952376796589900609931684010976603953851458772129665760334855786649040798163544477481319946054023140478819963035867856012657535403490250690433136333152886572612202701349232278753945928545840962031032679824173846080470993710510293140642217653067916576185371800705866962469347921336045278185913110889166368378297180129314626338646148331756089052957934742387089599505951879604412132940717481414517753245900175595324769955440199988481970415529835304156466194591618107881667132896334408392907739243009596993429668356913512088981937132025471135343930217655481672862493250403913276176342590533718290354607344940945598112821646733449585633462168949286106945883161892240243715729216704337030006345204122455843872528826454505247589746116462431963112412097390938893732972583792805339664419825132398750353573237327027902052373311689903380590374519593687094727560046986720537386586332206144411729726838623801899618931243217519484251715257743359441398945997799534802521678183114171953697268832522525829115768438890039386158370302811698538159936245969028211484858172203589896518620305666287768461688658958999037466347580390616278251507013275081960554876034511219929043241110011755423757121830897074009999263938497903151658071825241424795390961725458207685527082452300020810343016672775264029919357085775161385284969896351965393257838808699062134903838826609503775201803550365639447787209042467051789019008188485466159766884702041213466591605075808665452324624958930516078161577303275165696131721664694544578326369545865636536030229438358822568812117639750320068788819132260378843020089842709865669505905098633380005813127766474377364996468415058752133505354890623257221701172781903975291337930299409017338503267539165568978592094546898111724660308231754466649268653080585678133882342609191742976256793368318243348736654393855268489732299814424278033000317165311132537233352330875122072557772629195326886676602494032776006366136925942126855113744512601043644272142470480647887896249335290833390920754795974632510496643157636940461716977923191518660988867384285408009683051508911171938971492410358597993782976954309331458147677932548923286706685965463250946163924497182762174958091367622285650216783673434294084991060349583402853513817627728989957203236794937680711744114957728250383509481662613752532746000445748540955293395631441001591044807028249975752268521232392137334141619741500042122654309440950442953806420839612673453331087188571316639126288247839399001927795706659222205607413774809299449943899489546536427340917060723324497694022803697178757789162123913176571481315804326620035985654432800871720124712570094034419264665475849937173445769890289686389135964069333302599544935723811338017929630035471401522159416681023549967611539389215607383383702663096996433186414595902782658658439335333047511010041478263492378278586328002476225236087940393289370889145587874896977298434800630758141290363933714069440035430623587172942780801513567070522469989257737194324948671593345136385253456880535751802453106331366075830201111546305368078243318769351457146221023945847790161221939223995522296078402505299211296411164187565164843082062459614065617392423122670758900607034944001738096015908729104197471070875794031457225565959898560185926768967472776538072225177121208480071999945738343175397470890003720104205285884900156845448415833816774504359750059080208939040370766201841059946388714108476777930464268404938686761914508618027246985805212833206777193652610283341205944923047983192171730775833909949150378137937700168667701217958869196514380090032374922922857715562764529441961134615131647094877620361070861779466563732240223914737477437961412108926424303284031805556592400052338899355088864223442013650020580850239300779965454003991888855878699525139126376153955863052296121800366242719689820100215783155972065283218268473156144926765748370236745365053386873924098047036210121283247474358812505767859298188618276728727862648286455766559825937888330608208649689276824231073903469036265540371859179245715184236819776763504930434514848768872889361584704664021574528777833994151361864308324923523762736926828679193125431126652818517961164638311822890511164573904760206481505968839194085502289126613307031440338724864245357564960848313210262620805360106550155887151921483821477039988569662917754158527508745487417830521443619575982149940484736100968563465438502100416677698068954462722479974697007345367260401378251113798360118817882087564387377057780065246134311824407188707966366999447517280141689353562267005700338368851838377900423009017185009278720143898546151911410763557807087501796622904249397062601646187900835623627659014006769531040680464782342923385901853844545263035066015478868745264390901309019246579270483496839892793112086811615069664023064714321928550181774163153315349920582739133017187011889058890825674060249786084265482774014216326590329097348198894400119376203205310017697894964782642078890768333625189649911735319501577109652248370796019697435750824830985950278493450630788012171560168033646955280041431998654077295151026341625420250756247710029710104370448995191523166440815670829945129927904168220186839026385831894561670983471775609697024446601567931418415821900230767117441413748784600069239401164813753843485552314117572790368117502801038094091972397728202085624439821315160321661097200685758861519642816175445276496992878484518782999464555795501193757764618139027848961277108778283511217328412259298594140251168072398708286850330726000878429826474259096195607671700890659351821631355248872566572774832960392960276733036018507420833359902269162213869009805881166545864371186894064500961511587757087360775845864333651238881336913784795025167849379144363857114917469037277876776796241496118928359501739984081431122569975393832227739282653902679560799955382232915140493953148085329962945762500141332032257494839970981332052838807172416946783092720611471237547100235700505433785847281287417617291631228850858548472284351726469095473187170088843377261276288681134436744869850035088159650358447327199182279762330838948414809540199692098610278243781867013075581386370463694638252933318017835854757629736597913710633887464441176322579837173250754313834483224172165516821283013330888211892977987602639656083742244418403666552501879780457382227230600240431293031315720400358801548969771543749548827585171458256791510518961954730628599426416321647331980305888173802635850868163879964413707519123635868883313565956732382004373903549066092873001685317230276274238329804422956556351547138373831140455487179300260853614860607993542063514455995120382602080486933089531293991659843508320262140386750615876445016766971004887396110125705053284250514196006420630489083083052419256985739614132528675872710713630634984902820578268640863746246988681797457019806939002592130609257307766533996353548759962683200348113081421080846524145560002462944049720945348688784829398079208336273716407288257767490259284634501757914917387009248076279497354856270846309489194869300191971462315063569943981281690465311083803590650012849160415937617866519159130149927702328691275071602848386374080702757573082898816261518981558871279391549014855300359795459138796964280763452683093544899735055515027278797795610146621837329130852768134035464443995655623693109267685408104546481545198952507219704143748829699554999923264182620438741837640201908817656098654738520777229632962456454679361089735542832643531400740573676697838526121247073603969672953030040935065298042336683290410006386179324532689861548994587651171158080722623942847681776538802797034542965518184975675100690005942099370708101969402993636912441478625946849767181563537528413208342157120823166435117617641315630642366178075751079986223970814341330431238617898018823071583925356622240840971478194084541700042611198961874169016190740469218953965087741933372110828748703346973968667703433475838320290085447407573955302601485785599167582012371870953513594876207683825490699650859399552163264684109858471738513227153281708113871064149638530664034330173028954046379531636622263113164140406669950195563119805119932301416755069801384454508959336558006260419156497705822446232978545239035032961495801489100166924063536467175532506338719994003548478904877841398903482091903998819230734544823752186791064313385396915565166869882153092275552928857511309236993026111388759459769739249967182220080672612446710010155232175425834586437893058084182737502201126775571495764288526715510750777680998054796110042423871962963307332604508143118962832006420951922200891824328951317223711609341456346619061040657257257874620737724550643511964084333043712679224656222995468849447696024209921937760502445682800476807562336440443384536170487268752953369284258794878816644446963561997730333149614065224510163054465666305579285008721365437831609084966721240366598092915563287138515213140957670938293127491179032195536093062012576944327913083938654637568691278514424249832856721739426827420263246672781260688816891758950318827619289247446450367791260293635605974526521656412344467602809043204011341938014487258851887116219797866707563965007997356726675284538354193515521962835458534246429256122456166637118125834152129943717908282845826710349243588941790776251445182278911087734225787802703000680124542372796547563886348185804500209801485803442102951931226157386298294261979909206200606387182017881220968700998030233187143960684951177987446543525480836390317865465312610121990819288349027303503578734468941419274493344654909381685054363994549040270693217772077428602159765917107918815808439920109544749849711922178232258514209885247577719591284604740652873447475311211752312252247537221854501784966824109612748794583140759318306410100304857959368328468064608781292957173513613840091365243025765445035915725723384418698437570554500768359737618378739701133567969875418914153867261078241603267881712808316555275432828703304442058393490902363018583514253396709658748679680592301706027166340903275623216352806295355123883009984236863287739879948840617232479700209310320720795751183945673523787451425882616756379556438068770656343026507479517593757270174754339993886188468849239668284973718533180460882805017843019616878793595248571328194114632257129776125551622252728419064993375763165724698763457188475075993458714325868142401778187627793558601711266199411202155769844525935837839744331557679619660375780142601002907137832766421122455981488317409058409206007001912035614441910200298105912368300358177375331119034585563056940996372424937114218669065517524175678177115061347375701626197455708670629703206285507093469634806320127893790146674230954396805325784862941506826768583318046405954913306075735430202757537708992397272299957814078032865479523778998512253316501089247091295621552616845852010827094692995743691986401811215863461310764134630830347884345645683548151802288391462489937694044518009062861134927956770132217515044756191583838093901807533883901784738880113024220836669139743674932006636328455041357678248371557637572558382875477853424866306607233971711100172070952974460779925195706818598766549886646443157004300544533379240486550202032422788674471902931693677085360761096519385990782456558259692381552705768283701525939213288561841822880647875109434185638564959644470435276498705546991133983758013797006045967111725501206502901932533920240913378561403819903492649616614933131046422719368915328000288349857472812793063853717633921748945136116851899816770974082520679611617243107063551845020041180379268145925545060357721888946277077136144156870245303007173384650848963598117270557629594662324972197207090495020114798986608775483832392508482921756519497582217586636172946619003607864918164865805831545086669245737215271608251453353689245619976760087049344611808703996874152456394961680104625620907556757816020042852014096629417780246625341764368354150799644780701019413331478025219559610239759002337005379451956747250171891126365967108333151666542115416514166705165085106244826513268589428229336737799916108900166390093770335609889857050782177141375245028684908568282394353282076029989429135348913940063782798963157003574651133988308733361939756264650155252623602311446919543001006193917472264275008551790231365513546986917652624216970312264576452319704516553022513243149222203451677645524680756937825463443985103718701692904022247189930093160035794943246887728359142684721445782911093213588581167423652635929699224206795300451450957587783502034414623110514536960282582058001857857263453440165448089617419882486722658349496634236944286569003015179074592307539735827257446211601443154879750836894157049672492644015775528818627373273227329310158252921379197130805770572869904836367193676508176140813901730783329798033939123650400898300381492446066689845603894377129938014079161724960133542268582657542054521289574335440634819828212097354758981624821546118139940001658020565923064568359381331393585729620366888583212344156110075617837731709111807004840607745396369759740993830819826826633084985840990391800350923379514763157658735973057932258750006951889042575955708968984370890964064708225079787233564390580975087686428111347679151134351836438378229401737461820545923035796533134361895984562339492607976788950022255451955100859862159962288984809792400020947938413851316918323132903140424848097066850005665422221777702885388681164428240329809408930328356329448140180410536713295798774729292856476635826447063399619928991230935707706955913279108744336911037517751376514713949977339328663843283769263102430053174393551855948322657210900249798170004323875518806796708114463260267921688071971191612625112055742844839544159850228565169102030804824442985844939684622351854741029741014918736746154757919357138731797694153902620421873131617226640177870862591194586038449933026314122520440695569925770698005035236913668305322713458878070489322927470361488205977520882927692410213871729320626796019576051474825003720835364701938888243826161292032226236638913663879864475976571785667178733586660286958637722544055559337414448489513548638731520255440199451889010449104302190409051504137470989130634120654185067742706373412473473099919809899068275642933961604467023127500083126558970278958821037959229271635179880050170774093860168577396369739982067547548098762359936891051706556072559457733691220642031533276965332672021214968264208227430359119115821474760139891541205055711879303748586457873199143806664721229278961294843762474639121497772211222925327866878806408743955107779155491526971475711997799021673501585051169659822444494400432564537412398766882287569673920455427318754666330077867051493886320064037455973894435631375934017534847453313352245960434207367887270239075012365193197588112894489778758221398446983608597132936570600834262746085153695169300639510527432570128386123567533504528158866311112376696403048683949513436675713425564345594988401660404186064698899694351901716085695418086960199840463078227096932598958372216895036214043007437667325386275116698120605027508139064391613839106833007605573861520135568501014714766737061618612653897432479141918118655571903455659889743130725222528926174751709331358656935330150053810483170179603059520894327547275995482884482417341542044921510423011695492246202945582702317662877754802680739218576411842655059233779016143005217668002693922533134879580093794777827817812495411958439285899495604230635197042414576606186972659284367022168237530846509716212199802166283298939012635724549966026017394511132056337200334515271713832491547738398901741697381725892225035537886163151430323931682572660071132986609195428482580359708336803560747385995624550102146416387594070715058300721286635388091922678853576986671567703188789415636387421350785244262164781858299116338424044088554989337588819419978312244347270710411508404712866894540960529914321051328150913865937784995613112911444785867330806318543546854194764380625343827261736682715066632916882879208722148257944758548092190708668111662102777152055619087028615839977949505283808040148746946103670896891354037624837618873099336912369520739739849825397585331512418191869949955598896877365435440288952971736889156045792627162919311840764272909107149644877046111579561145650592075954749768638258976060909468418744785504664492874107709090270504747355990326170960758822811199071752989887030581172290496198337128244021260630670244414349895205213818667597353000530994821425653302874332003466318664984246278230265552385714464291877564403709526451604178731012660562917168772074856462056939417122060044607460275901610461005080247545837053804532800815636793411994243653183822040212206503168822938309861284212680420196034598481510845883390398314833426762135330653981769508650174969766451121190445039761834632634697171281633174633200301581124409420351500642407369146423591775726576862020087284830327170757402436156168736420761805201539108460527736337397611107823485679630274528041843844998027257864977215222492197316301569290691135789580480315436544600732156879432597549529372854173222939558504840050754881034492668732587654958177874337656126345521091875103859866385419051283749019675808772532580195685408327494815131778771293819920173693778751884953311907787643624221523821916888473656699379569955319741094040895914237868658322414533396981446261738678306246153854990801656678753615313815197799872022048533631467125943629870974123246139550093188992622810122933386490303224237941182888167812151750282108883691385936855383293467924777716760372599229005859339549857006819557859089704045430805938000393097286989052983447526503184295159203140739083329005704013209152155388288592121379882107053649539030394405326251397955025816404752581059449601152104648863207087059187671237068130205784314165850256249696808881597087871454456849974286719711468560938822613971032722278642995465694784663414291965006716740579239427755603680114633403632877301450892720012882279962471734646741937552061881287096385650674797348520389086657325471937492445857450500524414493543376498813864022836457962661177919799406070868008112338881311606684966584461116901267006855037315793015168719043806914715809500414890449215951749981585756376390225123313413081575480142524364104687154685408848591160318946090622613073566985542336186534860206715972690888978995224752236902521798329744382231447268324341332089797042708944769043297046667586424202245852472596715115855277725615905080440364804436108761583256399285342498681240551295165932345185940273245874650596360964631797440477590916598940014131525161266345552686337614943795433783604461726170321484596054417327323461654605007423556666429545843183358746882685432720784485412363067787721072529417145889540203226579764137675610094219038013606005338372006314264677408130730151048325566738055262342870307231300306561624472191721984410088059979628642061904557469960089068050087559292454997242606524034928007564781005202103771207601323397185900681097065664688122502973288587727252275200826675462670095686467907623722879609640373401920860722776973371945713743008802567653543976597945435343850714559662162574728715200303436839934784680737307645256915722971706346430924611700369859449597982415212301521176220974940889915340077436760589895478813688774943463314451277078565950031774805749738761876231707509683085607387231048772974303742830939940973257269591979805624949617080017626389059450172622759508669777681870460068683195115747216751410144396637630660321393881802305950546972008075847782663488050216897904785702606981750766771767253376585768994254192465377379742398387856358695224309449931125637562415259519940090873069232587958796718797572642372002121416380769911129329695590958738712290665870626324461257625825746658517005216417974114237493703245836831856515868047074206972004329310180708170131143916055991756391869036246119928022069024881041548342683912522889849786314831791041774034222698143190155409201808749419882915426331356712180911802865768403982786870742784108360449915423362346938471175985958979697506040714824653836887907117004745380545583672008147440878686895148940282892582382441348879130870354685332484096110616965223288796213124949117331924357956986872789901622011168706985573815874135118251704572846024379026636340688214761480722566875206332601533710786427870116085807485403963591939048090836407559072346975449143546518225018123369221311360416703135679168950708390860764316008333624894595241190683074019165959198783537667122205220406868456894605715383653699503522443380831365234700901350165629274914542392728902524769064904850489372640092503873822857004304986471046463696173305876417755153706086126346808481825454513908944994077169869726495082863302052581398671356323185494490519719784136265818169170581961895729149589556417129653009412459619675067627757831931153758407607847296764518589146927153618283975726921680596724336538984631763002702872407765308318893651024684288142666075042492279315905855940678708540912656632019018780563592418788160110032930274247034086245811629726792278893774140878196628322792099111089168958740531686087784264920325022286606743886996481736818312739519033138136453531092421733055523079804531683431898667435775576680950177901941019434640255098312888997356670749671317317288743220448393759406288785173298680368208345314464990629065939032029664596769401129470892292456231317350532661172244789932932493941775487856145208305849756009562275684603345647914473751121783999720321676315488416468868619876608635437111092412729688930027864102217309191736716317466729451481374417165298583383413755737318024765722777228386133476111037617400906075898618449439069339936496329459389448752933829395835255609084875895648682849525585734344017193362988674549307703202133474132993712493235134164956889641644438870396402116243761309670039435354529261403364639435773688799357046846228009598772973791050276178762373487972092366647552547037498829742138890151568281018304757533092965292219659962222633701895182170090153762620291046368012026718064309407257798877309975081272012091140945591576278221007409293216108367965028981282362684228875468014231418187700216319009392429066043092692303801794439165546421532041688595199901198948048129506467517840841147043622610169982084669131821869371964889677034242750940868962779430189498285852503108892204493140868549951280730000526189031396551633777664295840844405234228396578256279406415589553970829272156075410120413611022905358443605103112901455482775780295575738387176925424827085080010904803689459671618831048751532341784153344767578587087698930589642868378948427260844056610588107197938842957115539667751037402418783631495762362338768564531153805369548890846210417053875933903689766469249612821019108971154623059854300298526637514550126313220416315178419593779545585982535629705365616819801100503782586107559308492063332032873747113989261100612809615515869431327724482128779645071995821161395359717016157167035610514036329187252992403591254167955020271250111077973481163781284194831054315361043702071715562172470370669685068353040416703207471910044816190682579114885091586815027906469814985738096268654544643894087346392393206430010578336796767538977285288087906272383824314452252988863125709416950687920032454051792205100066793806917168034298807442490455312354407484746412335832291367456702506264144949869072465802493260976560841442459701291403506476834352610610289801128974440539356838543698835429871493486279484765622145423617542682883458477574873959793688035641690502556819907999832303947327644812671627390890424520223480347035794857055501401270678608191191433592481568012574001501928188086828833909569859605208933749081800271365244040121549578759201399608259636522056567006765834139602012441979770072150642091864681992086929403695390785617394519846644436122771965557427158527288229533135648373708365740573783132013049331097570484219337636351902633723151331942738255714473544478920521589258255334573576585952619728244975523494925355764229124592350204159033750148557393823787565458342526149778441297559690179553892175295812483859107259118629973775759727920048008708059049358423242508299560849285289905315089250636134820212498799943835257455421279191667078390873363891923910949305285382483996981943200749770980279613037259658179429710803054165120366578699182201820251993434024454254314726017593358112510615921167666520219460941684360651240175682865377356522340037490582862041378989943765096522335205284965890613486757761357535648115317320859893893212345808907365662357663727190077895742051746561562940819796134894542557662687238742192122664462867021416791326108479832525385338925751483597683047265635250148954158674685688191400708382673272622251356458246245346641208494731113493554169941135835186252289405191965720530587433475045673840702546124183205814816820617683079140900533116588564941210993723491585663710884337625900567546691802458944094864395560077502798196370169793000886832294680741770765178888593081872616264524697062503424917327913415366644178422585861497103095107216693106895773565485681184173532000632099324553447505879517821027777709257678982726776873028881562120106029015575909127234343820680581559409105120387463096098841949138238927396927613176464395678753696827969598582621065337878793778813918452344095301940983649954563297354214716814166841812651529380473344392969098150959422181473762280717447072839233267554097653535237419373840526243055458086250899265021890447889686900610947519286469393311868844358189874905723746250591265210509797263949581062456714437254402429884131615559092413192858434688905680492676161201083669192016230728152001382740025398093414026156657115322909957648431435297670178016675643090972066188874673459276887187010042606520770180406553395782088328799258972783946184486438764005652050456272972685850174892642406783480135577791162979906399876775667370992335323059357708340467798863148284058578681692873136367461947749055045187545334443778690065286388781662564942831733673654001957601943368837868865277049167133246385508512931485813950887433800860174307189848911690799733475220744021325473824645447482099985598038747938311302708867262971649113816937294166969505026087400298975845770505551456599100655463117342009606467935723633270104835318714632560769875319288295945697677472031107516058353391928134794449352265988729603107394661296972130726267031074407010078767972001624258632408729090593057042989215153846457462481085215247383713806870066698568054597496896021460771886512079017382160208010799186000460486182089255361039239018986123803365890580789849224539516885301385400429116087559041613411792238380103996057875732657950059942303764214594526963595704190521424174495302479515086567599926053107030107249056312960636984141515050698645683959932060299685769679309876368139404007054221899698820472253633781594387826770813287924854136209070527142827531210625376122071394518801640004613191100466127306478633091994920869330227030918274527844166789589950970621186924369757356837463871759569300890007940863438277983197223188512467252905579427278726304155341101058759975758447870600906738381716011583623206996040714227683638256500129969551547311427309920818205625804343571886012639109007322550601422535712104993072921581211504899269390788782703115056847056001535694609240284255569639947197932813545305279919263024292584466723685704640816138514419701458597722770701658692705406093531446478515709550463295657840595309428821466743404009016450122389704422156363747189299588656381440357977682987900145946380378151387293293859258801232248885111013982575041468717320566587616830357752629928223485985924679449964000660631942918431557208350930091246963919835350757659975082094844921993705338830288276780186790248282742566696699612284128174891854363993094207997711550828988826098236907041952733287983931397833962527205161586265328402509936325981136671241025329396514409742627051326179031511156502649681990533835064724366462558776251094684899032965851793117043160422460746909848156150065057318674777994309309092187137744800246646629937424251895585170742292318170861320436789786038219701611681223646581636965123676781825745891632167864387453722403046269567864281612369104372558437793656024063767577021975408549282419572118993218520164991958902732123752729819055434513969294947760226699405804390849797059163958382517203198768934090663442621802428174454599558298043065574291009195663587962191475266558083239402192382187313143528316774339864891608509636585007071094835552121641781130225562489488670060009355185821005434932203139947203942362209912610832744563685601554678760508180697464203242923147266874896359178285276563471315605331462630355032529714998890039184443026004692003557142963747119870636092499682383302369368376402298371298315727179534194708602655632213720805467763022674263699160859856155070303633268085474754258513593550953810399502099377582388209239008677331997965185808136015086080939328914291453474481963555169419111547868039002435567607527558529386520354687642752145587221529520053788060435875118724164041811333880896836194951905269192340286861534626282877851546939472677880977498161540288507064906152385345911853962432861720181339591296738073605131190046410489713430680359505436816394611994219439907024251152280295054391342982410582242842930984037668299513071875882875343124182822204601344251419790878399325501980473141293399146207358454818577447110696788547104180088610029563850292837169844941513360213934469204787686018672815664632844364113669203002527061265196072737537773968865758132733320401749909276635816277365323456388187422028381412466607971691572596692118183923504486851486060954506561287810476671046426254369243467160742721674441672741354760382308294015712643414246970471737464391676528578233069267779227641064825560615006784898211488786642754181065658134081159218561711424270770811761562134063786963653872999352714621958213952287029287531926849262326641243769642454705148139880965216426331770966320452290816099442758385957114091825446072771165276784408886432961821568305213179358178341746716658410499182299818162859459079942572907736104021720125677699606281463753672481271549544691584176667539939615225942207300208293759120522842384035898445298467838821231654597236567520627667230515515882487663388106894354816703714483231487263318277636282302562096954946349598639684611014980404332946514817635447032573454643804357081999549548096134568538354867466632228377663670597597194293883705304822431494296997734660446319209257375927627256892360774005722989227028103820945761499663932578139152725828539776071967812214624354479339760708392051348591836133616960540667860677133240155045445807222619636129913984622442867264259634801494769446436858051978596335050765317612691809123851199591828298434377217706330320402967341033671100560423192809834217097046738310057526520454003728476400879456964411873242682053665107624342811228220212536797711079761883111272297614402288366284067723531724683852180599760458921271378127366572913805638235593418174207814183145824096641051518615594978839418977795416544751387813317700464545682114466927644697782372695431498579731015718013970095796070869566105550386032076391500820512953286092674871647499743866277877710992327076762715283830753569454725909947669556752921877604119501435062742945423298057684420947971118379256082138892803759865198117816100121129201513976980030283860311047626250917729340981079802207157075783033518175150830073877672245835842769705367190696157111661147215191567232585063238001253347715846279235714612512434129998686078120818903515157501064020879345945007041926951892048043862193416471569883935668531618346872443630920423786759935560376370600521069214010167419960989372971727613368293121951512220913535261082237644137836197656310157203037969578251297785852310810702990600599317414236736085164879480534928571437397334634233195606677785048842766788410225515526706390052640438576413933225134841598802165903517730994504524148075949760904678449985737805893618798717971846921044303948427073268726080672214955498380021126855893604086531540223401008968089222301436473514291009372157659764944933258605407045646779550345526889505193813282334640540217427184062229889310232547979292940104385416013952360347428741690490305560823809832250788224007418332476430347292248174194334101168888597567151226594458979934292679531993507634335151494341792025538906823709242643008619438255886578289331465314121076247858912463558834481214214007563438604911349479035560355723759459627541805716794836132664008157406864914760899394315167542229123282197301843878932093708428380864835331960618946179880325425546472022057234880111458912685849782547579066124564410173684834778825079091000022807017291719143133453683481380854929162663013781609883132654049122032887846695081207833181224290968663094863452406977114297624531416724554809324997030115420741077185009138240397800130355124226981182591585821901544078112930812675159937416392732531321810261692540681871098418019032448146266933822378640906888117791549364737463189427233207389777788425779672400077989067868051444545831244846028678463220555198829133632844436669172912555085816762328475052094587801673212512689212419427530694439426876349484127301716666230528975775372411970307466136823512529963118944057198450861959072894562108612436927418211331639288055814034617763835697061076467283076516526027991836281849339998449867231195589031691719858522424053348151357222595779965142699627686908168571014170693066375983167998022257366929818223516918007189546367753305644500524696741412395093266619185001167422049166564024056140246577903710960775597607167701697126537304519226725058589817917635236175888492242146824362077260315944056677214551574740287241872563290111188570464926545838210767335692919680753147995805458580780983247769255619975646255666596756098299784721581932672072113797093712062689874196772426927500123395043457314591831446610415729260526584485996752033550491172510963706346104464140394445339306458160877691560826107156527778650198986398559984327883629675996249765625346243084126439640178133421402462591447684620309964557687074931681609758140184376719509775296828202532723740553225351187386684223859308419225333018750092624158533789987194498871726983445966354494582326796962755511249656699534614877447964543722811372991742959555390130590244764812924555399777723273241962146876909734377947936600031749878460159047618225917710192525619605812762589724707889889654811618281597423816597639859722232460021476120960608161877816631644353605255168613975255762259367386765469210195811848046456120288441073358165078993072261986914090145627235326798541630622154099801111326631371375415346069895844187690168634194330993279837437934167526917496079002648789358259886478123117883931177162803586124057308015563986585112187047599013901861828884415491792538483786313787320856010736211971986807226005364026705308852602126691319484453187050474554978804596217554864849518124432834996202781988356400233091387153659020258231508787751360730257175674539233879249112407384427320762863202203343003843628322996808475232352077184006429509811513504861567998014689931267199543417684273176428440828913032958905623924226594992579995381379439388952103999500795887472588152802366429574267622987807459256361367632637579809411896821149805641014970148883228652662016992502111557542918501070311903103281328619895211486732007882335493205469726961895747831735974548920841891650179391119020347772265100830590717893474046172357240201172782272664096307897948388868286110112906354550405140887167902400359095666640857193308534658155652981660593803989087009704920257407926259246004458725941932770850790329546896516283518519853673368745439791204470652119475166289030191036889256168796716512371892067817482292930012222563568237797501732009002315778168995786683455540311127439486233666783810851649667148624929150353491109365339892816114749363907524064745245892446393141770037380660337309700797124782133264846118005956288336944729778055127412075718644423037652447918128405908282594726690753061334516749235533290797152079061792780013291375653825828773873231241976502225239743314655169829966086430701916082148823707422330528048849775701692312291936298405475779877128594720925794435259341320480498002999604428098238561498845757229541391555916831996618432429007507501033647659006983187019961546889868151406572785992411400825896464831953239071659703843618710416587249259685899855875762876031813838894838830279907834140046213390810412816661266316579750486926502155936621012142360061702946747032489725226539170775164915165547049466919784911013448271336689208134456553016641173395031002495012462350075675798068567482171846750582755188351299790747625302987449738412369246155746678316370914985526868205157734367417817830595234259182763830799057663914852898394842128146160990502343885522869162381217250937036857389951374277148810075854853696503830040763810747241263906871583180453163381906544933220007060004029487750213687470546408824043215550264764059622109534716088965231351702146969869108124847244200456410181928342950568542895761066342144155898289699093576743818312698271579340495782638837546242696815032739447129373759659427677068405027428851483676837595184370955352097441300499649095558967936133382167985522089853995544287558987866924662103665320207933050973501585242769271472377545126932978262401750678342455414675589443375026474823836205485322330390537357111555965329243845996446937258249118711133452800860692297163549366663265481764388133635264080223908612501184807656592698364558962069824605280739814947568105010123663418818326161443296250201579994725112809432603182908984747066522474417770033082644574090183394067132185464570803460165163093172616690283254426911611069997625688087877643562756811036878798741392189136692498559225220293707873864314103750502564653610863491370874841233880160223313978680751527882887440127300826311179124593396173881146276291253569254383407073939568629883041095896555748341439816191472960161747798554391891655798135195427736394958048977567223209325439190710683407722028025967844176530888133132538309176876475727938422603574723078879213263304135246194393853397582889108582097358767162947354729986678081483862701508309954027074547650221058559893104345217638794999881658360568812536577750816235576073686865179226578598832887570922084812683970966186315503514231045028531902627304532214875725870652311231409071494273299342734155661615062563292103355506852246973520307343585023129137091018257913957360779789127658955703143108361337862614725600374968106197632055379096603492576787582211754939489044325198274078195975257375649010188703861402631181532940530771941686267345900980188348660327824529251387987292662826583494008344101848738301872140528430781033211096674669807428558693562661342273062333071924137305751873622234823209059448759263823722491835436378651047682684376984146404281643765911544288308715207540735975830527484931698365790648616919238660210878412395828802483885013970159282021669397140683413452534178014137819670181606247399648123422001639668598248664172273787049682258605099198790159523624732000255281770409320576074960386001837465407067151940715867969992069782660927643743044673958007779710942701502527680336095336129748368604585557403393991061571395972421170512401231110221990130042673957678634067672331204144295662061374440153679160115960012907077651525468098436665492753946870414579338456567196298220425835113397426537286345632143877031871339542398059351620508102256366541890245327317997229862238905305499855145994010337894321823110565268429639168306589593163227014607703761336357444191812550041342601467085224439849050236292731401348900294034224833408690879842144076840330560075489457593517375877575812603032110988830531702929331315693464249062321435754935099427028448496211289291706416845627402134827891389027869332846281172034416693837625009223444122636345593515428659319071827346326894103464690723947655105098731864268180777612588881317432172019878830613582008312718396752926466066434232804150248823315786227730318275693548416492787405575030015032093256938974929901099149025060992117137297965981021590778349655498364135596927767033936124459670914498553233018663721510338463766879866212320080978449633947120649291388608892895000065351948549216316118757014693742701964703221654477641073592231155702997313048161135097784699489979433380551829853366398825967885345796572483344966618907872892507456007799369647072167034972231883103647277660734305164663640446836917763420216094850519559902053339697522687926995196331023945136099097059506582501153979777590437787492206039761673586848077244193983602052363025458546441313411375920168635369746918126307486091749881001075649879331412778292240081411124456365198170781011709583102516052533865535553414152314571057071646302227909858058310444524121942419503383732365148588476487148065577520902590100313117475029357578354481205585456204959017952574833526976283244475740038301137115049071725667514198123485617588512653837998629914493721294363652614643487260885097512699538443837113232487052224758541909997494833045203373548147370680556640590228443461956666589074769506624960677496488717638914653078010919776480574609525540296511103965368087876774307962358785013669953133025390949671904167416420694055739962132557707162114445809994505836317305888809824066807144025996960654638343185841287355129419678394235997486220339426710093761953949067651640662503658286564580798332622200670149401807919913516942925499043442165120166641060910264512567733990133751613966339933298088657272343584886090451159441965188507797917377675885784365483780981275918825887285907188621301433773470250450358455324337648324097769287006908199186561347056844229009903894407479302319489819826853943010584114624402107041495116688805666267296848182684763716061846829693133093488321922006357673788607723015829085269534790976675341401382279939401761099146740262823085281358518753676402935980912526048617226578667240929663328339153719701632122034422920882929154432319019482862084409331142233094710533067947807318402718251746857372723833228580277975323583763596087791242057908107615043825572066985349659932079954326916735475969575041912400145748057220930292255004132087809424414366986174599854199762572944573197396849767260207135477069748362105575696932486742210640016642170481276734617569015086359817026120289460120260575764703022197538261157936476001656139886038328908266730339693797634473783806350924665619573204613286087563202982943987945507302044227272410301488088261337088258333745129043876692523905534440542017088730435827022507011251914757745112121853902878224467991882546508167255823213973006620256477009194949763435257757371194682209425295451143303643926331529050018512131614137972982606681580357059108501464746066659088883403334119340065708182524358344069547876100622827072826504665281923384629544070531283188458993174263519637865378726044496189961403691514605945590083325127841182441246306196315912720946616991283258796069101943503870174539127589623419584179136983312440479041173456289956041585576600489721075793498345073419333759490349913049614214465625943971643318737632933480595685293832623230053432642485084000488886856385517421598329854719045707023946362910261623544663244540174281079126133972284278479503125877733378997836756605654008419992789419834962038383185458520528412525830334740793991120321870261550460850357749820736437497109541959799498714261670864846929794535905993897243819708015721599820687330347039243244924591608689726568965543289256880144391909613982062145604566252494481332686792222658976079761684435985001140724894032953361193544249992020257506777714059459429014623946463757725858111879329814746762318664655753723021717031478213959763353690493380489350929232420846302746939401111216268649960564410654361885220220139857333942677971106530921789131376320411124093572106229065290047357463053408494530652959878154977166069539797142410598205671996761619352672494704928967016307431058545888221485496841886669120271152597314226815288290491412383989655665257802448340488284231082395477831810861401897701854603636099710122935858701743423198841475385085710488290542282780385185705462800700002239547595256284396280157766665595559884339617766613703509431880340444553925372633392200687140199530338493682043679566181892611809679293859186319995546580118254231461106909271708965980781367402109628679244273262976171387739717824469455369742781947083836549625792591193609747132813170560073706349501150648810300293243895652120805450681686730197731242693261478406551807152678414477907748430412368982846513527798923275257543383624528448123974342816399555619187958397063400708053309015454795158345304920004598990546569198629288055665839823994824118466746946990802156318269948603665868661570194041147006716374196410113768045339571862574098774597401472425336340058315472281963486555692080743667445165806365255552959770418758886370895243342025141212362623794909784997141950990057330783950504903431501613707392591881872619836877366305212967249537183099893190252029773282168666411157304770674997890928820640924909149184231110297807601912256262444853319630699993876410659422197799920326455153411477517963200093691123407188981432094172329146787398243402361011783495830761333655513609889103144157604435368675772830664164967602007149765674401247451996195940519812736458296755392388251040245332582089864816236843848960204645767798267332507906690149736971194447617777623669188251621818967045137400834065260822850198629072796636151041166276916857174489531391294559733187082859394468331985900224027501436191901435710782236791322334335839702372398338033592033267177002379581002355938957541660909761615650958771201223901274077652790523501757963338455376580409726659258845184544807413503482204631964626118669163297021706405983207707237719633033975963649392349914176932699953872185794094525362650675944226392175259354987915411486464034422044176899879063132288855883857181771472631642061803605586852506781740361603776795172652304503473396977102494034687061740908419643472269159631033540317536154200023474200674477363980801966487459375175302851720608082388687375665741462940934385012574502702975556746636247219890633389559932475889590806171903684214145820010266677464151037336651830186973918347746118680938485207312120377442032704134052806198249947199742105729412592540096521111225515814990720724107868259842477758451415955541793702240591307025457537206389352869418106576633828478528859319440409697554382476155869415059249379062631289096732731853372057243238719515589491061710229840031735776339035807552502336530205415348570513044665657746677185329410685331381136376241381949265691904820593118447238244338237566077190738700165714189904048589183518610089147845149318052472763433166442333982091574400081419420750730430703064956335854545000745591592059115619346919885535913827512551970938216314227632951658970622039444837059873196533283968303673646260541513921227925736892081485694919424664830536308195633635030954610451843911253918684954184562706711206240316546870085702426921994061056972261279340598374202121616732466648516064612915672905620468313091119771750950487865293766548394796127028214921342076963625158124410676533640254282585426435922879784107718189618550011045272558491142760141099375877192596497264077164937112045728552848370879099844187332660752495036052312922681824621597360624354903484094548342323933089725526505799946871843673271304376768529203396343574414211093796333679690819411667870350958200170084321587106622468422803432748684465455155645604941708076334612178671317902233272487537364835521124971174935247012559970928079395663344507106989380994346339224130417394217263783096887465838667635701572927541360361441429834196099912712243335267013505303529368617656545476597178055988888620503169425462227547841583271979941249294066647483695607165575334714689769289991421012893077250933460541534813451329190018563030862377261683697548347788786977435823363322820722561838618470004697914099389924470869705008502484782323564492616365615062698554657679926773284455995883723497722104656373517417735655266117569450767941656115990555126472387498285533733543891725756743444246124710721693758791943712933627762636346301939266032034403075377345323041332522913616012201084553370033983764442890649719366987536547826610638917478578342578877102349957745405658845172289416426230736817946101124022338802180962536671541919767969168488337931148560775919107101199956070255789393156789115316462182012761225638593428219552561508102961315561844771542769313665370130213223296887041576391977262751848483370128196092756914997088697130583493317555229709411343403899993902463539232427845999945305099322924323851179198986034094263139116377084503592093704293774224257299480008225212303230360022091929769672637487261125082364319614341876081518125737841012650790445694421637838980211638749790601330022517940774291036373617817030061261189472688860080908593471652711012347374929036907195457148898040458925139486950889414011736998770610200873350443906137141481880056496206431712334046026271762898717845788185709415124230326229013944866666718618042570257980773514266887752451137256833955552160984047414939451642557076725576682660680268154401159312875945423938651381908603568052106301603837125261259296619550403797773151506532352935547059491971515053873763911428044201138189182283987145086264285323952072150944700084488440897147270171722496710382616620904468679298610365819822986171128404275331225146981726992329822302290912392004483262506983126912002065807808072958372498842350572840219708673718801954713155939815554685795557017140654166257368643541420622794817584797070499627882727828893801798293701987914188928270590896798074193069468612209167166298863221800323094770662075128159126819505670771687051631867266517957366799712594889784151624030922964563145832316272911566266481282702969450362270012623764399841012839240146158023828025466579812400510672427925867667655143677497089664595910345933765043972127077278337939765807798413794991174262617354902783868441610163120347778071070136439937950339611656645333677602792573003104704930272624714978704882477498914974697258888618451463683399656788797900793874993961606318566734176672419312602282762623664761920355061395532974801302664547393088734149858297551014178233176794844187110582004000592849167605869566126891348374841603014205195375575555823323291908854374509970485616502406780601457223555211409791699722003414457877264748595278463256090677461453404833030825091789865908397570396363749731203038264535094707083229747913326932113244432004998771862438919889701312846445184484454485432522123093658098908790483067508274883058373978658486962748180596557838699602073249753760174175575210011125812449202239555451138269414462535103724988729731303252382864475033485998023840742837596726720388195119225572523084206066939579139871000618261420968092112759466289653718141234364104728350825454746124389551043019144137192773896687694127805328435867835731614518555935642307707628136899585644070310240467011052945358216419420969688383449932128779025391739966888892174181073322275883647054478314806560132390453873718165856579463207946586081582483746630924420853437484829982690661236447642489689390910610839261772941373089228430015114627558168456253443279685344032522163545571032130079759544788787034925813617037440784828617889703735333436473849890592656985431516576844512934258046024459280411576827154243646753925093929652960125261430208766191358702830501737957976722116072063776183430497360752285854371369840685256367140547509348987017785629660071307032130065612293597361291294319510274782943353860459540003423285969958792137052322164762142758997626614910759467038568280878301418194730069903269602831199020410222401104845275928176069236170989161615227883741225152524131634968123604634589190321229696192908255252437319379603355240954382704017772300712197798207503791894905112732714592629596326214025116130794182309516171044258626155872875925961059689640321962778955822625025979782609020430838929501195221061411117173226252408218129454868466422549514249897784092609679550524837493961602402188039578126323096160513866134170937161107846261665888750650793354521100014274207948659913486881116754263120586653443620359538466550160823088850313055875307722371078094246745148961347303627116036589732127386907569215205996227237117964543499032615883904494735353804990603417993923941091979621086284014226777072203958945419783990708820298594171870688435425336065913838191990764816151693211365444562176181196600755052369532616401213048037656134380225059331693300252857177185064249345236566254642357633958966049075431022200223822281642559004948878849549888172824314211796139618332457510588366772607670880850212015109658767442457177620061988519968865552830532344057048661664134460684155518910187397754103612197710027638208289947235732698560789520250907955316926769119851409782826219873091792513237020371108070848382073779381543066388521066316637088511989145737689147022137323967646719810978983585632006387845692066321292529882684917863717770014455704501427938799189057841133980139501014543448215761016856089105536570961533277296293337722268361399827190350102065051621541873543636144527415818588359606147669165477709145390189963183645833760595670545046984864913751621118316248575138201446638981869642328192200406749292729636208060220571526993563246890221008867071329522840268269146562993249488159418292006594064453921431466745204320698547684797105273404467592804458117849321235632318619669872264251154181352267660778392671698956838129267948336342056771228877224030053542993096218848633622213388534406958107804700042820962641266447729218558409083917758843760348166649406345279464532956784203041219697106726008710453694590187051876095855386959780058518654837528717412881616460521146840132331825230387917613972436511420808516691473382675081162929759147929369969030767015413020981997380611163151257664230751403809686679614307095403834024999383954832884135591648768423489926259744580587610424946310895795047860388318420386027934064530736011022087428775700702099210062987255764547170008141285911247216540628856180774787010247305189899178759438805411855183877023839233782576696165399152514002033957886097606648406342085750996962710037839735033650650476088204633535708757644842537648299179817653223592678819673687417734146706161152153204925596147219253504885919107028847388363018833415055337585089003018987570531797208279124775769188883410112447659537632812721512360497233491416920070495687541890842033301917417031441264374653749522891081330100081471710661735313035979923406376038465200993114690146927246347892109820359548102663625900292385988199717760741480242252219650116370073338389837413893073945409969159819646983899565328511961834837607699541233147689979314677948513623165591545447669944069241736878088059044239276631767080935135858698291019105089812600397222386540161792798992984441353858901525244681337200398798085489487790179120006030266301256254753269055924788578713849657730102098138176257523138851484939064345277569352156212052411279048363402583942372631389832462645985697503074248200173647939146051431594317220127715494589834702866827957885610140546730361688914025491150809201346666537027036703775739519764087379981352803298488951291255098756052488096406099759823787354477356058931480750542597830151983299742826042114995696591286541521159909791208749668312243681820913550098305635577908255941969720842193087302814310598495564352750213294502258221743965114195391632382790391268575174928111546264097094835928813917570100055951743085448417023578136754246338888416410473967964766599459091101377924081748112596159742996338539118059539410241450585254312389422144841434997367160626328338798386795381788151787762864481560649414758628789299720836780620891673231033968353749743985315898446884512668030304731193109176965998473192832793781608741477255364491578945569253122228704186460749657400984791632757893639042847712761552268833536693282401384209598783372111645458220345080730937543515460225263658707508845875596880546622326187003236319138729446747954727652778470153530025500347235267316424333083917051406734468009540111958949656481133064229934120576583714112605055728566620226689675869955567549671547731443507418992118226261436559804778917746806919198288985583273709472765337556727221353619497078165089214054482742283407007160042722559168043722665976241853648623734134823320563064772811415717810499560662503524641728253699715506379115975464100118554021799067233448303759984284873270636441257262057471440030492074811539841381320219591831804235040618774160586943065369865205932905126256493079060439554662385104474318749256762335144611728307344577228096563531945535625890183712229137052822856066376988992617759388468513708226185299645359339848732640744234677396583226445814943546500443905460338096257637993383468687728032857858646680935152252137547270877737555497483070563220179237607290118720765622793799545651326332605255585322520254790187980056579527502733529384917327274013782791578374908462269581280382749299328998108952256597972838879582666614247752178118450093775416130801105052818572726131401740052294152991058011873518680411175807453771860781956351974985516783879268377469079510725957456536746579331801937271424733455910108487458974224788709841451401309352680392122815351764984944365347503039636752011332671770270963199527956113642710011359188500047250229924388656885125000210638382425461868616191900304694833778031021557462935364536723061846598456885264093280156945977562086434898208937813002331205958374612636191220760205527741785536040344020751394997630210061169355339470175450861035208470598104445297887024048312261703653572711171293044567601084719371630840982070281142565401454196917695532157599389734244837719591462593568002729195026283910077177099654716038833271600353765579109569445206344028278757616069723751048532090207996105549822774515346070493635699452460921616805623127690148276639357381636055348466219957856042767850775067508410829661299310171675604821440928683456974004673867598375183979679402620299485004455706059980420402410053479860230205588065183952176673504459012894358069003705552904414920661844329771946531785568054266444427142050457888491795381874014659672512263599765910635929597456496764958008549395348099549345420133602192004902948737450731914764374922255676115661340543193534065980629674996977008286403520894258280766194184119495059393395065189624648294047968937611734760360101055866269405249320567186920694952281045477553105866485134528393714559501850037705818477202815043344998859291476973366834335492179755186067991048310767835478237041245951752530786341738031665508888339049353482864212581213791216705166707063922099615187693796060174328289992200576116415446823361458219646786495630950758184728314874089112591005982153381612578462979550823545760171204927831437392337094227034671245519279832800417462555648001427438093000635000582725481726959288897553056721416124812537407606699161329220325491242609641452447668161005575940855805896945776687247908200115654696739541066915235235567600443066037707655474722426652972262427524527593736060490600166962756940722836662507811737983721157399767968546372546018824985407134775764782049133504177150497024740091182535093919003912198474724241712613812310934590660645040332878934918022452309045679575551325598392876822692014332693102319778526261222501337326751587289503304661293784551437660607881356670580747522962795790878783486852806007908218399023594220110490773894192830139242011498996922232970752800269718226969397604075702417263834311369511423322807740545839517567423852790850028150933678585546763815960345293772274921178047521183688503198502549590369750785445814510308650979634287045992611330043844230825397445042675889911131991074996180998029322174108116171974503602388738131972484867148379607755111797093171868707747071432264702546215262708576936829331052462947125940147134279944497994343462534032003429970468510516149211040569375635675246430545928315191593428786065515514682495359398890036567803222905885794210860748732898091049814064689837404573274791345243991207503683528796874047978244098301609047081896930530431185390698577325136280918935710658182183537653935199084877280928225317260706058416812118670199205520617084908409920288863266925216508736790216106916794760638940562286488959536761855302792945821114643967210028197661180985362908133578540282478116199120581467156227104249170503386257544541623243538607761035078551886697057075484908262996186102899864193652267403848692783760389819961422428853306359146718024179864410752983460648279285778442795819459766955818076200318855557469501501278883608043923953045587274272611322239112176929235639314653790644011554435778320717718515593845392000611045004026490821428633701624704066800438780421122041923329857574143261739721667226469825055742405762098643316361861359190060707363477741650713302065636600121720242685345167337619434086733572493190703169743109882309036307044845688575884733215884656804089960067276077070860621801861169635900740184901067687464284508037779849784006030171068550112010913351451283882400198533040830627580108552301012621697528584486730596663009090469523817489081442205733508278516191125897515326150710252574601876068982132638967259940902848431479907485998118030064370572805775567875993109029818480111142069803228877529883682966819543228152701955258851398720958168918073825902505186872349874453891955190842086812281937416265642222025450280198186439420695416834463719381234824785680288628764952072041790663620748038909481718464846567708795502901862232510102192295798236361067990328826105737416368147054191252757401996915570108133145066056565993993449500476885053927467008340115092896568586974363857071425288923760673386353378190224349633558828909407726364881310674312699746381652336545038091670296946662001781739449446466385966733458129665898610697394248095693176290022123503399520022707215874921798819265207608282179718309629865478628949816224191907048328868435521086926005524112676999871130485076970058021165892587580732528662260294949478469358541806752672486367336982037264287379050658990874616346133246950979493267081747220455817578709169878421326314474506693120029233366306357283134356111713039333322341270209550577832859465728447385531328128959423877351949570247259445565860211909887542037287559162604309436874009371349316897607146723444761566540756801925115837305199957415498038292694438105735366593359477652733230471294987688397860329216759109807395691009557742820094387224573295818864645035797266905224317972893503994065224003054798607418863221819700627989739911575960862222605992182803804843540702759225313276858962728262636445722534693822688148791357609140152947828610888756741776850499680616954499174153896536437164886673985203354510529882892539169420821827005319974404413822522484194384728240296912034686522802797949185467006604377257132043946071839160720485240281228961844139315138774703578880442045446157348419351092785877599524362618383383604183728640088547390571263263527364037894066019122642049739409854990095388237387376558089915234606836018822467292391971569989241743874963606182011821020878879770915150648621639142231627224958872409938559476408231578975708203912539412028061304407789211498582142377056113873109457664959732627558361571231042391209015089218531458610805194059476608912236611394968383671293391181968135782267250741838831633389999233935116947293318452856500318914696833969411912775451049697344283848264591608170968453374193452127850745388727422915003273950997269789056664647004015320159603238231433782940133030694601538923772966766116302695598518010668265561292749997712138150327930944431875160403107394375978111107282564500654162063535652763911171067656797070096491095968342340547700164528543094148912212645919084790764148218752119564764816873889535774053826456971667731179320918551288091571301395641199779156543109524154019623628545058265640638985451205545942637356291348023223412940143191345172110398159707811707521144223128035500612326007666002234540323072943197341823232679201853815866897016810232773243225376627033006093577090578459646183696923714815517937528484274052923791296873259548221872308295367548776550047993484188156639662633154811535090761050344724812107109166876060559964173898554141747238848348043475625459458647439878301643057009423512862307157803286239978867247017412039926635031122681395894335858172158143809054895971550521980522777592153547194018861940708820589295661074206772332232394171875401805903716527049455774803791025054329464222261629372696348838573573667566978297860255287618207679844230342683906850972353958766318010851933629000996957578382097576117193864778653343747827412338402109788254942696227952313382672112285189849113264416092743217851181788745357922630776787576892054363919721289016242418432728098450732878592653700798260378282956104181561524126854521965473915405217756989610019809763646369298491770889008500535767263186826801695148061692177340557867530254640418200170730849632801599768957861580815658959079116044895978030903889711857969895847379673491660348073613940103385746919650722707821510942009681781085526664066333578890006431688473337660872991123626521593196914172111834926959024238565552971242307177308259840867425494957770193408586755670037928552370014199367897451482381944175555892236823307126220879816120745824935333027703948802926755027684455030514569899798819203060410150327226426365537414034715640305992434353403615528598002318428992360896240856642182286966504123822492327553334120521562993948942207915465355728697711443707936264328090091570958707306367829530873359627638460512583269932968225167238101369417255551328595355969739873035767086645182918567291518113890448735149704890295851595754312713238940714368220996249412585795192520270988442691428086600910107048554522874440072081061722596662359330938329748369446175466547262101100146182222299613556870779578244638005282997658359831907302422729178006473873497977936505417687948210060312707205186214024000921039985375837295478901141557118062488452669217762667326921861801814381144390877278675647538936231112805981470926335412587998350365317729084875351109166758171085063176404513277041518542594112677695037286563849143542449473048680787107606127630384706665141557020909694212367169417427385228981480652606088532363600825326842182408432489497099861791826295366200259704350552599228534418104120808115846343568553888805282633240571961536919788612928218764400558232129766392172075411329762476789374824542294321169010044425319525826330916989760813584991263949964916629263976109238888324067410940481238498663357085375569896231501921298305950713922419451551753785790742706577455501767527675589493454724757104805515563484861651096761188545317355472246013289407269975078665646613328682648031415593202461599236797711241577195107583384217706511117516749224342075002808912430993173066395035266528311279921309871264956900171789516787594265001754556909165822691479457602999666169606865122567243661580465880579960974772758997749072642288388867364552766170324205816401634321007097190838604654809706790849184949163691629240351514687223271588362538588346610003223627479201144765183047272396503184234198412673774027931577666353729505891965807570334595779488733034079529926122937944115648180493784994601171973075330143982713985941904277529578438637851861690030603026630961506405925312545379386753552922506943500011232693347967387319060581994733465576836335367428657503839052282212338528096114423678182700120556663841243459700029506543121234734110855706960410052456544947388246582401912097847446194334861141724329492008823928323130529740817180786534498681886094619937327230190684983151402914437597839046567611352908333416647144145282593720076790223678799708643790124532470872212188894374381165224314453047851847625246436375100484510580256103942859121393467504873085500256133205073515230653451083604152786607370526695639159556971331628621969045959556974096597986213940148212072111180927617073933123051044004401394956133898695795033155809964324697882923746532401174657697356409412720162983225135856149191620673648008986837808941124016067268985397671721807752614860190163837133476384978795171686406888122000827317666936169085770926757506068220112684934548204338268460738399829537446116237181266734585782070451038952804686875634586804238020005169949320388091433351933775937577626784566838173355887287797960006550147065105209849962137614633386313942691823088553457301298015818222811410608149840238352865434879270969375604315589937732939601135013679003324886950033245863288836220971435786926937867060866246126805163668127536189857872558979977517824007918938636178611272674588025048718759086148895597811401964134039277383801571885330780427072058776278215992704207146011937577187808496084994882718203156084238613536521281586991013306718653126928752230405747802939885405428142444859439601195741644404606446949718613204980655568947756223530619557127680640420307165523782287659282048873447181763653869672075369988923614249264418622365571173945292530940412845200316900971937550310636805061959123394330553266074327630303964285820007413158246725950956588866873869554173093731844280092918429764151481263435118538364006476776843720211691654259728659483452324749720218938604767996880332711505132732213613243671193780627319434427592411043244634511653893675031358722441894199382476322886579875004898959217627437988972513518622911050325457848989940177329633749111658252858920072455865121254669961725920523604061387158320839697975918246883415580433178584492079401125041346834969217728794053765734875528160647304478882058984295928790339677270550707122484462959689583636107751882759156363028695796918339965964400210887990411041238436330656148511481208368253925561338525639222977347343120893956757660568206970047752385200814132560140658925037528957389106448450275577458868989329135053317036462985418983268217231498560168667320020126948931046010404534422443811858535083493271398721691178284679156913882408694770355834718288469749209671764010940592090019380950471403889586319911557712930729203503705443407858652050972143313059760532905096122997907984914319775317844259189325091542871376869661905491678441390385198922887277442494696508629066819985270788223053809412028286540525881115186091455435748498717202689074257000177515740783347735600933381522625067635943064333032369806278552209234132313920644437997414825972261478584805324666946029511717078114816706115728421479295759032963140861521677285500708832737243099224405317878801146670694547983037366771566023420847505655883814942929886310919611274786869619078575177612959508160997396651529073421675635404810917104125407120929832945231899950594430358524299646166634878663044164053127966941504309968705106237603954055163703968669279272219795405370589394100593498065016926403127864447235655828928306855375556095180982326224222588914313216310501915860274351652106465567664480762557349061901947744531416942437899590625732557054472438718216133442587211167599899458394912989344600802790159256920776595141063544218595207830840393071424782217719880722905643202391907006571384993467974257960009195845112540069357987731948241955397390350972216228719369098036135584685438909746218958530117277843547673533861045725201324313806330892510744540811670874937358392427558012612334088787132047196643363513754521852623674308892854869820390190145181540081641057022709519667086028979946382521229391275923057679973358042798454660705400143754642997602864614990806064799804632344706028798954985245570356462483546318967204355711056423961242242999911314990192181661465130364606634221977517830282497823464691055451549719063670829946032383971650757935826772419528453506957590073562882284211342948067669156832794021209784957242850591693165763340786238839649616185340823161967538195610360569904058743401010464239392152598896614780515909642105635559705799026554769606777157791878368850420765809287762646422217017632261751639156974402180108134892451595908280780973723764831189594866610242506427866641593298255763828079432641987598476508140639379521337400403053496835347606987653107668411325190044037006291857875478881801526900103992366725810876483844158726680449063028269916397195828074206835184249414898182924375180226544033044297561453462612972158611457775366677746746436977394223023087142085761897137907740074287608794597057845937009278115844203912380149202147743256490646748336992603160182089027320153445136226385674156191458045686611940867054866478782757416848682993109862543579863592143955305837820970805261555586490305982108731173566929529435634460129544556316700651038053427735169556281743482251008962935938028334180217754717140328527049976530782095570213267659491063297098580744705651973874425686998120597361970889267354393426398889541398590833396311272334597285688546463550203718708400911382388304287034000837115759932638365179961652911138520099931975687269329030715583692199392845650652507483116545390569572138734655030925418817125498377657481278037776059194660872906200181074384658416844558510329403342492652235096218705665293841591835164508674655198378644506168410706288674700032829365994320162549133664963180209365015968190031135694093781159438959767616864764138389523875903181993617556317672810127189231885303826285139791033525783436311887259629062949939349609620542167014622725763285095769778426082563063965639725559924941123693360873238952245954757860961719151778075752412013974272240821893827685568964467493754421042657827763870568194053986050924845329181335572218782865435365194553665825830979203818716536229471384617822521749525693877373161979115030249303272792331857563415041676316505680856444436578204802745884451884033030602120516897789118920020991732525347660850311065030009932315873742011883846038946720138747946577821206987678313993577027265227617651806494023957092961561947734593114874398479953044750002676929075739571494736533179544306941647428872187599812604984034664878149304664358891820217179526506860634147105581348327774072309826610802324937880831886085636610789352222615011431415942939061465204222733745221930355424076443982009664081859332313097710283286838287009798829180361243195077850214963061353088515511043018672941122665463040585768887129365692276098436127175774502333065268306172526030927239280111496942298968296195108869394780362093140283323037117872031926235029751206616803821820858132656529473297446974374077902466861850997501023987097787470712074026868685681321784339095262169488334861942665896787371344422982488500542827979887832248508874253513802463259605156856162497805034271559029981964570815286014388489909357116909210867849986770730091762991385665085975778741042161723874285841462692018750376948935013843433054415043084935713390283447257158179338680026173945986910680458833347646908141173134038469871077581966508980457928119118493033815586796068689459776606833963891106251597374552008838376771210890791355370571168091756456962628946054607231532918304151341765499722431528316268890130134496987119496295846702151778549786918537418083487451117439932167945658862498055107576908745976885512038423993921996032350979370822899779942389212372575925120467471064114367474795760743179937323532240290855789322952678783788738837397217883566866994719129156425005494858939471935204061402367302299600375620799608362880074091368958880409958201621481468260679176095762559611537457152237204264734462637912575436695755097970688135758500147794863593622983083046331265891010321477489712087585019310045035430969390806250559472031538360907401018335314491463024526496014084109219624444495572277688790408868532322229156606841208152897573569277714118742366474270625254408877752086667002244261934627196204027819080572570180818051288059641315524639712909193303439252941228529240883126305469568034312281805808856600832125448035228406822546440691412645497697821911206931713555186884632244163086840957204378635528515433695873308621069355928670165099731539334765942504908994071887148898625982956264449885312741739498684114453560738482988841008373054413591702660914761714246812700646268414627308677394958459208013088758600531745935434903827019960466267235355698330253495876195016101151877731744508907259176797326209436728135979379762427992863861605787687585631288492066275466291525921094991332419498743481158053004032720954296209838772307615870637943705412573435590116973089543301133457287228071633454946247462018500761832906731144400759209971635820254774443138340497374412288531983580397497990934601735745656730842260630965023348247528616039352222682006349899872847213319396834145023214368815120539647262071790923057767919396390182957160023897587106589376466790944837554274596197722799690919811262097772421732196702290262970981950451707922453873417131563396955152278763736013245792391590280919237616318088004868565041060355669194703468055830706992267583101369984804488783516791614566345880866192843343374803488397122374027714260415810397626300115688089344278701907358275924371344530295838704086306668562128708377506849569071260703472886375778475897873922493686388016570218285039891542209423332508543953246730019139575897817709732266633167582763432796305161679185513117092848204690504115126800138650235741376141347268573395887813225285507255692140698514812565607916335378776837898131455521949793325140514720857376048892982169884864595018359494717871508769018979603477558897609378357565584731486026286718619997188470299704993945946059775146774531543036974126193802890735167799417057451173931090731654381062554751122679678094473121504145725835059675858507221711312416478081791001311430329248839449882304891339690281070733948138589150902962914449592992545283035516061912972384559410685432396111993562023698815123683509959053332380528716418710662564546853135996515006088852770120234944987226910980713158542140182564658117135078052512453873486961055948366034652167729573265742941561135639295497187542215770251156636914731332968359554032734834668800309479307091792944682993108236001471419981666328365560882309142465265920429159245795993947973989407499451769056048338733702675207817987307202683773183924342914644654344532355343930398549714478844935455636199451005723686709946116092172261244894458178051251043312547911208032964103480627758029039492513947293444636795693057608185671052751614004024219029042788445938271206894856104149819487201550878699930870997855028801272839384513557086865766363119393660135824933068852290893384600663831255451805213383709959186133948460942177696263803944269411738952689488430083749069691665935517535759847827451139812534601037038144545815785338749278961765821879850303267561528399046746538745437432230872419577881844920095472298620206891774592569730926710304495852539338374280720807415820501535651972920238190196833444007127689755098114540935239067017543152356403487273385513954602206844528374788781644973385339587014061891062716701241454780467588086370121639092666689059272952290933905434960800358833112959026334050413688873095423286045826958093727435858603195524160002657206675135455015985523533776884547841447640015525069750415799555233142973686818453270271921574192142685608447485307341104276013566592209765636074520444573159964455193154100058758793803453145514519126130191469806706314007838553224879594837309416167769405735127944376018523315919431445035952452894720842664591303712379054721200765027858324141668361277666504536692745388703894662205553268804824799976041691389550537781534289620369263003832123631991172570362437074700417546454906548671321944667082985412519041646512636992896750470897200763591173472203335142767673433581804488186861233699140580796793443567654089608999410120959868206183949886963998009547280267238255159580026002320325798058369184098462728948758780260618132071050796911066864489227676469117387549509149969168464081246977082958963057628150497598822262852141722438759571951357012932347930682473640731919307192463480958657703460989092843223152347871750932639421173713777914146892859932254419695965130160874750663948987222227664156256370799350635884287392309172634393071348349819293366819510387299534343473266984083423665082067187424051191935261911234937815047077793174018822403362900187163404579290660073438247426284208566455609903060288246430032622407711880744648546120196210270564653439071137091520779066740973221790082016010354614512167938884521557120371098586978924766995941311277471324523583546958938964830405840657228800706657427031524345474408039721349602761527742707978442999046688138634231846809703026738037205099222913565022396909900519563838126989827027197094415326574646001919386112921452921779322864038979020618170417894379818793241479466239238427408644886565768676471495723416739949242695286936262144344898965197742418690302870445419212281979232584604778055519552774885704889096177171106980646474477059734077827740424423778010590710452285305963421960341740597090211566200807726193419265060382539946925672984596106203263868389268728599599260253146208200645587984316116937249186215307135576048053660862624268670019110307615346832360681477721496193688424511058881188718662018970880134918413728484160577637088340928585974582615972664545274576364729212937025603299071111558785046722957539220132019770601982281653799058273759502502967140685251018912189574432161358158106501435426102083321972295196259988249363488517062790947019442113060869028455628090700432484599641354141647452817587384736362096895739705354666379046561351062944181296327723041483259080536778381246220150431733668206569590073600764011488847446267663745394529075517527083279561098270355161863583906880793624271100384099646659742010453539878632936718571189317698865026693120168989011925991552170021553937022702580624083092798233400216298894436900731662952653552671717353964411512414498956620417949659689301011866047332983101921368981438606499059081878302106643376265466465192154871361834496325290987213724597599802305002260318314731377213995536210016126651884849373174857595137163527537042129604958693337021733645446789667398138811815203535849988089076320488325335740609709702641893326469489530998541707661647567528545710066587945231577305971092640948587156460571574527158932587078956175077262768798551014176212511216068070568109196493345976135713863411090462823997978691671926419033329489165280358135304502079174431955677644706933564321822026741171338739181908516903388776087024609811110285696504356448849584996976680737078771522519502268509578851588622598852206885033007542504134004772223876390855339548504901792826052056673772952846438908507030694094710803650783708048646349423672505978086908674284122294262529481116508529035964766811869024890885270637203165783163286173660898607480844726280750105393155299264109884570075015831619556798834532840118414469260617223915276308804251514496600025100948680739221501024449206840322338645530225573744804926621691310983455667994716513519288440785402354953425865214803800526308302290423111674592040791641289918877835209729395597912356470069036343876374188338693031284405738233011756885093097371568437751116295611035763238979245036822449267366171753798597925642962695265075080242467893286922766357119703517652749882223095024097078164773961516196765802464755093382218828087805231056820115210316801991372008964438831099193007062197936467453107027480275476897156444820083133406321589020957973102473823789209058875767551937559688899860620463917392252222896273224096288538656836121606666338704362374398585210274870935312760449159333038686041281854989390995730733838460861189975439271590832901760323759374799683550626510234867597941331847729705314111043575320563655434725465336943729915947762401170572196880646003289200287727886237347555225585339357203991065832397081137364285859565254371871757015068742909209719446604794268756605737797309181474443314714257795573853221032755800654481685586847040985312119372058935280973636796145696075321312745556209179393836425528576150972442851524635241701217211710244718761730581882304662803140074839038115817438452724160645280574985130217682039956222508991663356712700858872844620035804929366240970825065639433377728355478424554673906926165334559830951616222007170668073340149851662434251338427655534439233426542215379810479158234871466532027777506168940114218683237405525944081221407367036724225344455043966966121222919895376854721766719930195479915522772523816735981626281267062605546702111457371745874277244629316453642586770080485154939085887352959869241963700770134479047969881818269815958732522406247753984598125163996713147891974969295537418530136028800491634153658701252472804604907219701412121948715185159412978103966530382433084007568596176360525838912183315085467623813195838863564428827232635669623758393013445334172493711138213886201206435648224563854808420911568630996720571124350682865376996998299508311527710164600594463661491771805706178362387486048194772703619783049281651377573164730404907337348886251205464317410730360280070207098976737705502307073549975516889749407493140940486725046265044124099180929699668144374273646275169332839936786107753692259334675789205394967353495756992188051864726091895478033868153495938023232027783777639546955651448238378269645732788204134511645228021328020267618142364096156474843915328998674971755933770318251909606711801165546477061319389874816169927817279040920539276477289492734311444441289811601685102989187255325196877325212863627583394359392057074597499556822325579853347061485735386505581736733177497609704392041528121413187341637087595379388055105752455517116486287423494458162476925096878203035662788020592146007615222433054103936501155595591553960993921103492591789380969859804844497506175366200300125864334766724416255682909591661542423242538291818419876268321326327223868982630720641860881454300509314788095334017237600028422899877732607421682684990029598562443875152640767725538945470923203014388226010403468985503719747259830474592219089590895863074174382207825897994007497186341537204550354634372016181825870803797989719632866202654509361845765140357191267870029145381543069173224203443976023373495300563941520053212106059777419848540069811412242927965713749627755787589452994543826594448222544070818941166061048392079950608153355591780276744938772796735049171430345485111434226609329286856681864248369437474535530657828174430385893222731157643857729530004492121300805393496838240109787295109193047628927691939061218133318172851252524973948270598369901847420974258530275344801536072232163400923381613910351281402780668988141345465402442030373100729425115095477227529517128916185905456228464967263303036010016751147672598559826422309168240466101207102245506326733905991019201843585009143085820463915512122325022625522483944146144456057527722377439126247989745882306627994202024404027733813137713751000407825615012862653991349835433298946342252008471853765582960433932924311188132775769763757045904158374172853332132481468969748999126077186350729282303801476151642415779852667767342878510255116771198801439615082118929117783140433183236047600826260722821772620369274907138583644594942727367848473762816874207986693758899781093559545681077904286214747142216225498386082127512566807508601370877640145790472530522139850019198556250294923281311778787949694419314139064810316900493537391741940139914701078616106987323331852194559762945379359258538950376217330608286490551141280190077193918892264516451456523471776960483639930459998468763662796283602008025392729554155468870047551526164160223372072406518016306505573160935236666213378563198817494364395347998090489512400163544931679898752465197814557780899965062658960045444089265360780736090099178038917900056283524955233172507092328423028194064478451529373024404170817000859609639066970541826719763955987934106388086602995932697934745141090899562985433374417229435458236351105705990290228395445598943403968295861866856570084544256693821045872228725468225671934671054009975168030537394433156665204004308091691785529931025224329142211826319822124139819167478399017605284456880900241488021915669337871554681285147122201385017508681801069210346563592693930318796331677722456684008952625663745759219340791204778735446074077125167419993875913680038539130665249880928553454331489118992490342763197286848675752723246047007913831415443031024365637170158257194024486911508696237524848656821207396376719918973836557072928047173189024658188567799145841456190147392303571672329116892936034408251095088497120079453713167636934666411826522285127307486631052536788312084836538513224908464837812800168100797211376627229338840664483630212048639528782775456774449065576908651843736501812715072698407221791856684839026368600030681019889691244025166580291434072259425958692454343441004192934811560573777934978003773492216770435255344501452503151131152465810059239367778698221294436380750846727491227458498162848806833780298080693919560403705141118465876052995215396217590882200401948575803103691336239812457925693342152303579598216188475252666661408560781409384765758460536154951670290856877810580935821318272270903253878059687291933030556868147851342878881004108467294034545057326797181787502516667942757111613451035748257997106517252303141429059302270272490074939335992776343023789828849481837625138312572111682220337208077284763420974515554754646062636933504108203109023980754982008197485070207272008155749320076899699087089534392066314844286817959682098326406557433950414200732510865340947904655039647494655798895608904714649396617985920597686717199905702180020062887045020278004112452782468660688335013334642296263472638364430536614736744102788139954831415666009357147096185332155072099663837993871490225190461066734610009359789801925764515148832249509413176731197525178855612739780967131429101148273584812206543025688101814181100706440770465300066083433575280821603461140566983481498601162868677797524037680513074651429988487563993110628824576343504265348292161875683717697533915293734878517994314347141245588388502901225811322692073557894162990144925779907267457887242419533790936906908963957896128934309449486042223342476883954568818484933065891076705211083210038818644899537417269751138412047117034207047211651558171123578611271277848990641375807782790116429822805216922562432612524138022056280456190781779629669009870149037894340593149930614604156144103434847148178231362541967517753383253111808632886538315963634701685494470172113168231020593901296224459000623019220530940266709597680154848071740140934116130709183167583136503857561588596923818623147204108199827226916440090112700935472860516890121810231919666238786281492309008663236299686896197764405480907789571607027654177271695345576758545718281061545579728648605511726060097481410954047477997339849837724927632022112675717150089918062914060878062944200569802460609474469502465643430496796098968289198885098456268790349272402113537504334136475877560280427413061517265255681287561284797693721775953286123362332262096702743319634817468974283411196734604405016559231661145704448395270455273818850657086444942213305041609816919505264326888791767567768243236475259491708163168579369141785055678871462656491978635078333423349970355390227573674926790448983394279108206920243204650215725031844178704040517484065437443349623538047860717563307546966926777217978574639671389916583752762806529517268400004306044260164305072208326958832169185047330849861127028108867341486528414264355136129323242223769948891631246387556459944729347678531392832215219821326071503711997133467157689872003266160360075231394555750022426843129592467584726659193052640793691506430804426474028514786790895249149066862700614468454148977532378445464688604476560267072960136094632055415384428739489178391101747772561250084788213429267644094440178541981905916915652689913997961926944773763479717348504389960487410319698774512749187856291647886696745486431364080665701667679279621341765280313354969603539186494282860334436696644943382987034931619853772587417807045906262476978374027557365701399175990964999597060695682997828781898011456582073552956935145777424528994756662865151438279017726500302868412548642294033800690049145829660454290937229805605518217613218679543806271554650331248297720326164820111523670191670867304332067399131091737600738431702146507720848471405568379568358393838179235401944510035601748297944148258218860734342735686588030418386378332780077294065992332924532218193431401975917338417472367982471839471884770802093562411005918648468819904875065895756052314534758264662476087583705176903626619028686334562097715245580662611585837974200649671734138765695926422302799918824899262235048942101062172466269082464760312532337692051601262911535568522938922756089017527750139262680221731660334720369157220290366245143645884533475378575788724735502656678125433612946531371455610185059924297260023714903211794460458661526645040167202950346024965530821928457019356317906376518855898784830917454496833277548508103422076658454810397635048203772286398838392878828657943194418216718293281864994337830546984081687667420570603139865860211085943667364260660340787139554959061959274759483208758092332144866182024931268361229536370355199465011305145608558885549685025853586505732802161382594601373496937889361597243669358505955535297449172893777050918497996032742849525749455522559495894085629883552052530858189657473297103462627540557055122755309779497308908434429623264903023908111081664991746877955714074290197033492546478854108164613835262880677996626956803309049488138058150944423063624592503745189893604429179714387025050223979072438140552440293020544670367646217362786107320884728395708393443892364205963475263318502950788011209483473562151787336573919357826846140149499111631544363146000899656729612411860578667663919050180485849395064071482878112895994636108559901607593773449217833865124468053661942131652459911662565963330134554754730400090985324805575196403342386576884749376653863227237738152199278692447112909749235913270512458900214451488587119783978254863137516800149492783955616725191559967971488966785598531636165943509003182205424210612603210571795644715027671609471832886059234048625102438514185221868218143202465076734037885359530279879036967073704732944242207337735542269751505046933086285125053223189635555220652797664949640138259216891657367772950755454950454153209312618507376116228867567547206701127491325253633819827796515668704086080699068272420272823740819458484346797422096571623451973296576763806090065218941190682747541542704234009577404600683448394030129496392544174943821006551635148564563633268448870231946080788512362600948438741599890083832415038614400890467662985325507626978901405882692803698252026549433766615693607675305460230190586694655348533386452211952500530979696482093418439596590518500056028675831537885936055126188821895002619873651838203353169256957030184287071651880727768259080144559685834714896154541379874517310042752081687306517394510271078784668785648220804828379534099149646475517072587355374750550535921148366939835989201613603717222394334036045816045710570638087618954080993001490977762816091047659770693844904668961796460868480205075148442633732042807281058162953489637587566398213989174559848991920336547313985327160096150063984427765836844599068072176631865469805053813338566625874933696571985443555641446643506318698210033080346694502316105021610713558377067886157535405540035206297822328327548209131954722596315689345365664298125217364836498729660856827434171737747644394271576739766065332907546293803870086311901489814199196246530978370661347179997239023493049261172013108116834679582763901374624319559517051571810417110302639116251420892137863680479246695133864399011380004211388782838704591220380866598087459549167139564952331517984286137039199484035843865832691662118325738966326953817242345056829673344155078112850295145854159079798228018295670279822943067351754648407268105903212345871242605553892803620438250021853268502848789889206641303344450080482736203416033660892208974082725146582589380849595438438089864928147728579669849084398645022092733943876749236549741376189741789330878827931893433609619468783551214563968886078780717020463373702418677317350668733708058819601335276386236789355516885367167339232855982078949364806116425572112710491953367187775801181721372914681561067621469324814443622315214616316526037420922130506778589898963136045752160164424629667346447638185989417407422548983821718891898929750400498349178855683431594760911257379196105743702645740954279822306066579653477593114574106156382759581180253578332355165999580293733975371341938459523647660250511697233545477560825132660981530165537246851778857761958660637815334916668390360612189121579896860300858725728445511547944786322686674115999962071283751974524871987760058630757960905026110792256996501562144040061951378553530858225147353225422365385375148378276741528659597102026552192661259189460637254116596597710393229143438399534866215251206047749533145900269773820172281796380772283077697735842598296733779832501278668829680789769065203680500575715625692719409869223362137496853943225418408369435252842966474162016592310042198536021858239748420031715032137912262618914969251421934970140783794618674829860882245351409658625389586761790891064420899369597492013834285702351770669503600233300674827259991004011921610329839159367916312856016210038501796874817837238988222475492594419667124961956575032391512998399438181205020671632878260900916083973770157421879216250598377080781157663237265015674742223882632425871389755174981773146142949105976828912896013819392897087743645545634375418436662255403645026550429948614077364069017151492569012823120558321430742968327643217655722834814494841778894659295875509016487987429864901361985590411764792929037863940956022433620665023093668092659632611562623164675882194145483724768340724909422906625818258539745893793284833487957396390203657184251952208766140086027316636981967592687385427161533101268704465883055638239522836316326319796827231503555347243224163870702181019423081096832991891072085827415759228667612013257499181842141076456181584639326248251295256590562041548756969161292884388057785117595440780257777979890264841543833393192757902096889463559538405072717504845072487403165740094773667919006628365114994751860212270427859773647642013576780333518955006615859854831380345212063362395756449527550598856488514628810579436052801642213729626174791550750991275964012397612588664573878703492590930881577126204513302842999175254097363871954502481676264264184822553616253471824082798250038859074611698943145427764224795822976226491453679797985574354877361793308790864130305474411393421967916034055212318729896133260959886257392714563486661400135611890571224587457870144907776060248676056564508082511079742122106741669081635646508334184478567835634165817222949580730302134127712662741735520474220435183383104716514335168573761393515845163131037034364457801476250941177964294234695006433285196261667882992083967689036477033467453512704207652116805538902213526966335324463235487254401268297937383144460128414203870228830042226267005287946854655972223914059015526044699868249697104196173773510893292478795544244060340683318193092156296391347558468166481870559731412147001328072099004360566971676077922403898980716776074582312269055538580943162608839017487556596243248339760494223761257720440750953862442053506507938184830951204101211093702583936272142920810911634248026398118208322399417252866110339762154820346747323503616240928305157593027468328527986275986326097911503215750167267911304509953384856770575221067571964884339784106236532333792605808746945747715098607568872260391657543717474750878426478975718235078730962917700497358603370307814387573162377820558777958361008099516683209268744770412798184220194853862035589005324317195810133191624482787940330108813101413446453799986768456615890424156130842290134601501525907864284039886735403739742963575165558837668774935821255169573059094963467231891339463879439056167068358191285628734707672251467370029550504858929476845862821311584026896777928325599210204307972738322315812274041335117567312203235374233235492762400615010886862294280241302476550606575997844999159073351191121074967283919308789585711470476004513019082744022722892390310697723894774187665629513775216810677154832195889616884561254955725731039830874161276494259267696055975173346019601846535440093302789314985823755231062612313850749386647134576132720777928315619049367901233524230412680172450383220021216157974818832599888571113311588672496111805180942554040077319447378666933847386347138513372141104700571287725058992521208417113199544659340824487978701486954531068770870303565351576504789476170923655108887711033804855256158429048709361198949520923306480213161702631449412858421732986488163404667327982740758150946642079790573750484406357734830327805996192332447514838109854350670337591747786125375619102421267689226877907208977316822238083436324193222099758748539520351638961452499632459323144466041737236072730537989135108832375299350040893811068694002639982937130191945360406128785475706747123099055663076874680829747986464167242037075826438184272265951836837454961854428352659191499864652948801270974522441244390321306645322582098884610680506315386160111619344591090491593804594056932174810609370035740583706793473350864865016996099718377384584287773548767556099857075234535652518650669194685793377538267248840276108835008628137114842284346717365213898944208787732800204933188261195995144265183682685084435646276216817505857016204227657589610154348325132622144122251874278559079899136729275702204711743934315099179498000937390620519071642977133188616283957067735716534885474518017253972504909168402666611355112640702347410699782879063540037856234723416660778258253279041049087252019544348066954469339565919085486206583827477960934192320564584812831119783214165322704288988953879726862020485425889232535475633445846126095523895966277813229317573611631944695839102017491912377627684765065211468775541150456901391956485828492162600233542153532169417773715401954151091456194818230015500943558137281173989676864696196858771551652288506906893291936794028348652258226266064436242345169717780813855937077511537501080763015995172112410832321390904346203788462730231352254144493784379157773149647329227331634563976460242483546432192536313763413257018570284218137194558575633941957532777887808696128615583644919161139392094066936054528789135649599884439607514780594737425649961973568370011065223775431314383741143022498684957839866887467106964224939908701396288171921884709533127373974151806540418130777927000782309472392988751291614124842960331450038465186754850750595947414722469567582848586285379989613748165297157744262137442634963833497729312998381642545184579713923425819362360640514208125409664479624338760510819370989020087286606142005063342488899763173362538677040442748721673912476964775271827546827634974772223093068269266372727593535178530216731468326001083429764840604306172650827382447985289077211017064932491072491926873481950545661869847363125716191319598911915484346914348760757254291515476173804860133891016743707768809032856166920062638251433431227441427805753228865048056560119804967430717886946067549969096622316150458244708751391383299655114074803851203051338664797678818883037759253460289125912286874976296056575460009130003827259025132183838533849059933307253591895949571933657054710209085078501387868168601598765861271237723748109506164655678449586375203786024625772730884670652719134090646878542610560906289416728917868632010856237699419028081190845711602710072725920370265524570069020772519390630925069362002396731010831821512228887339941855352952833153341326642730890667818875984973130353434656823199386166184939069618039028966447167791900877501485144247838987231851575323672423497123850318962367402842418623841827332114579325121133879914320193691370857435790087531886992016559086389427781720946978346262959904320801212704029027680098265711171461022957256665067960209175058586994472396841572202436066821884321017058063062206574338738024852814816751081500417658407718005250392519542190788421654603716798337984403513869181603024425977633356065532914152544263522441776323461528339757455630563034935574351355458123317772283883314244276965193950616613447032172004752118805910449601716610063623613943074524795607422430410092897393893877847746122683919579613760764836588466438725968894274993256315335111872529165591184426232584949686577087395493447366552704447434457477378637028395456689879310143702407206074123848009957943104744174063832039755810511109690524472787631949134485233541199006622927140934644882395184212459538605476665099796702581322781378798198857792355798251459830512841551923420220758847591142603598633536489626056439688757012349428457768276854999777260884573746012165617152398771165715036338468003245536407288596850879440354107959965373357930739139825659071737393958196695896978000870407029287465085746856445961459389913876421120616837362178798367439379125659608554371193898310110207760535331237857397105850008063857205927446161585626427623021171847984679359427497798705181322640570205885382780228951663560555145406025927644410026268899516112168812550481417502963709095355263555936646879442223517527391094999442585630191583964594132489901611640110998386159926333636639419956942575278380131779940311545499227610164796374887487351647831959329084712489842861364959574606194021294521459601611459878695307618637559549660880024569697074844973824563528747958422239695482886434928173310689660845291126583881616371953455877968718556512700936678407241478939307995197407477494829639766352562756959223429989519387280380516173432918990215718703978003586786382345610914509026222868124483901311693724939636350385751686375497438758068617709971625756012350976255382468591241049326606595701304666399148630422554115041744161054887795093691559284133170382233685973822450903882622876776851863889951500977314740992567774963632591171670300960479073140579526235817855152945752139978852672003111534485142664894469283771817096748892201272396377406676165405285117707406862285906430909134067897530302152791623429081799453862024512843072823778416048911558326282972788200206689068745735043891288594453515069115899235679948165547741481301751960863381185138339035286514370679099768636248041332426068268215603234016047983325990225279084683654777350202719432313915932222734617562551377202019973486271802142594317759090445073588523378389665716472672229805035227425348613120733538776943466933156264787582222355120478766408951015758949868253236145193125886299965908217649531931550508983618103740817916127343068705757573113468209364820861018836798058354486061536065032485304012719318574829846124069825912853851750464950335603483606604750644786383754880734824301560634267846454107849241688111370000226477271563865200258812189485184512798841237470578442814368308844497192988538584373696546175418839998499426042243630620790104118571070906310409213524705037705645191353011093401327589692283821802690835884558874763000142071707420426520889994760838116451495436337504232499008273763070706371060395026462146221051551209894995129668531018771254784646417888703762069027421153220474730653093969573869436055850335201802828695586094435557587644471301380888413205765824115068679911786045480060447533410247920155822021047564768112439892203716330357259734325610272935373363934436123340512470633573032164225294748659688326174352710509738578028883915540939664248188241599251198152383057538379064167415153658670090467467540807406133599277132938812345998977976341683578960713393567230782440536187956048750630523614625803025329010516654329895100460736987349289306502163748253965508249417797534748045739717016435744855764555250593127604788570627331806681480528112961830269085189767804306782132275285858749875724788810410550315347082988696668375116440998606559003436722402932522862632273820618601385714048624307187330913339736918656721783488340497150530194093217988896794565001614844110541500789259051088448802740058570021458983183299049239590758832816976890542389425705738307346927031409826449826794803415550978494246543305742962585035022915518723328510788734785947589421119838590224750688818482551943129820982454649964934259827948552290989970131485597047440368489349752799983403927232161131941225780594268081577533054464262104354364535927319852549439302259694165576960089676665869362631216786842245267396439510186298215109425263086875971313386224352012233280887254385888347849406852784963509432885975565308758091092098319567869966437857510542076784647800527111168777669908882935156387581209636147561482089039281379536253372905308442473391870539359140502367765566201736541965838871595284357233236657071658550572754869382723877669986887954754113035961868643297165926571309044146283961047291643324404644682777375494747163556490709614280672981912643841273758399335208702669951507691785652224113308146211818840915193812413199926754649203557512358945336709369942933833140359602957537796244085726312921540306380612357490934813790427669145258464805818774539896073778566672394189619053421134511458979309804071180075726904212183153213505202323064248396840676042108478390440817555147429610999705450188979433343864588001278502571213148089557796828579531172684958145337745288446498241957810386455839234154649198685195895521863298733054690101092074067781904959565315288798272754699478517058315629963601708044561616360046640098386045261055226858217852810743453537063367575427897732034622465725014024834938615930292132952889373861199325915462916428426633735682241193450104920626331186749013444707365120824166737067774262962826873468686685636571564015560778581594894089430697810933315762158115699186889551066282751705384779707999028304615861518600966094137352726560240734709503670404628524461029163136336464720133301781943913778770871656550051164661063820984628530621363583042321513162285271835806331790318425217372575981576178365944807028165032072350717687174029221227120522641093146454441102713149807413458525090547146037669391048385295059001786095420049276238740245444299824546860148815618745558984331869090635991954541030765589622337269126772223930773678457693985940240671623908450643798470712942722096289950068922465357164376313834712046136319027425158430442775661007686577290795939860620150956617966654537880270311259890851205024372192719333321958126482423629845081966856026171771089129728020797267927808375811373664253396857798145630959058127750502082675323655397986598928014871896941700824636000812118281746581533384544517643495729120614238747353332367562520769459033109437215103368944720772608624293702772476577920998084749705052616903166949991122960500576381626103150113599625533986140950311237879842158211034507312127632494455770392140325789059989592344409349222155826603206109797523426731191427642307874534267453820808691930422573245841135980259917214353586418814939160713937102223271777447523639043781376144146853598355784491678400169237915520527068683795481160319001805101223592072239212719618505963967067769430071931004360854683666082627528869138042331157851848445553293995673822455011566002194105150900782037006188889754228481263974124792746033078048214232364411510971116391200448578378378551529911195895335255811207939881149138264126875985220263510252014909562630369448686465072826756372979747932754842839209023712444643000478964088244717765553986558493867141486322553024072856324892379799163806600168124038202953207093845702676908667948315174192901636077665352621856376579432166072961947101961434895509144524923686568360423163864032434766018737553750762337263657197386070754784693300595085086915109118547148891736631485235116075358869216824195213832620621426582484952797501501539183708462599869690640434531331465961458885194497905882604983921563081560256643288840974123704981028880770118657349606358438976189673126536018787922490951087972159238434263638523096403836444879789456961267927049641253669618264584926019383847632824780368499422377980916601144283941634299019916047733322131477424325671266132435515413579415015808927392309368045774840568812308316553935056199823692494907697260841475229174033460402169058593676233854732475338000528650078856128813187715763773996859565626257764731247063798188561469682404087147796843238114690186346166634521926872466562972547569746525518795785382451415162666186167689028212421774342607384863183699418515535009938796919442621568126863791895497821264989490644862038583801727727724313430799470079803858719180267462170008052876368626867036070594067189894539809143870292395274522681459555464207418088500862525538056564937551235414375637545645788546153794651994913840624911135002691310979493535820577496689067723164838349127955482454846559652561264759473588217988859562315113481801113108837863831385307271524333825134753450317692802650089711521596953707104528639226688701369971540329184471460122829738997208356252415599964445505306738658992924967618951645603158502804070012834803054019733251028327886571720749277976427648815304012992195950216100958942624317012706748720823673890450144468413442817599214942572708369388048217177080257108671484351800388614638886460060928977524279798669198853568831734893311028835530207824650133290170093461369175973397895330286398203093034290088774631480935427919679854821007930782395554968342779172350783176497496087540321163024786669857908960000298851122948572253525959781940859365789930107395929550548126633526027063885601782165356566335211232221969988871176819748751469593768707294479268874867883429856196576609501851798514940037468752521855820908480339155552727050154382668484344746559327864681456193657040795702498667557321165363078070209499746036663068603607849237938669486337193772773581758433323884598858146936843769963863440459458241989226329428789004646149975383243247631451779084247118892370069055401574352038945676195169314313666200682869973309981135192422005134432134774197112035421433533457864102643339964519688535776240105132133811479966088982968038964748561868690794416119611143069944455676260573158437558348359085408173702759088306515153753370489727000983041000646715141882349589244779275623465222984540567872335279417142207226020135794086548221066766948363411196888572662978696532876044116216454253165165035981764716667276985846578266986138309471682113021386218806956275322849352311040216957741225014244260312614993686865837534860250212188698172466424769718149915921441572875582929334784218804717255416288145823900275651693453960366026393627675107434768546366153111184442283028774438557000490624931165058656588950328545708824687066402470841987704253993710187938611921912505428376760492332075383695778294094506952246551358018189384797737291401296666580743769785942567336722221548474122597419901397788150238199864568756169291835144805436581736002646604535138324425343218223771228288699369878791592856809518481775505541509398863322917762770464143919233781791425855459380120050222319206815348186747228439163744229554368267305712376121076224136861757486248324360359482216300142568341210886106368045756090855141065021342266629097737723524701483318914618771835373930241259411167000798504972713823613210217354948632624258020452234594834637716658359233598087710663996769763884777555334130032746218619089477644923667505604812941596684467545588231817101261697823600687609895555013486907549743625060266204559927615076114135930549668316375997671146434610321072320124601741087064793015023094049622624179295764747616224241111611569414550862412772930956238776997336385207880205419186176643967613871279330287420000404940794878674117889493618429712324350920064786278996657504614662762383180513186805592723147620981947216708112001008681861284350880520581600775808701198336885530843592167327381465486458768959829613431683686586510332829573812083705619431432636405303773318485818525117646570095712630865241337937546858455460245166027457087522945331701702733021274160667024558802647016461705347626791818389013664924824284573276461574383518690228256291323309916404915986490113534090682720598905835597174171553251354965630038675917418022645030622740807330172127504648899589284770888664497319874259076684075821573079299493150072354872830463320491590278048764967235250919174765091231614938723385791481254382724903310972573279906863305636862959604107199302485460698999860434855717375614649339812460731400300306630247542857727613627415774625561213190091944131683559891341356845355066511967382882837765382344329043023780053251496212699127745312508469478512004439997544270894253739312092419996029099387314069223054096329585723843933601084622127241392350481157121401314887265096979264495476248266213617033001756554141836052745905270697412969067002232119458153006427447179515620460344664401402416672628155352383425674974027177064294267424078867564835830831081855603965842221253723148193970829320783997836305198255087702971083431153700828805489316017132074891486173267976856852769108528206046110289725538908119271492196609736685048189552344055431735427690503639046595166909123529591634126663749717445665716853141681094960017564319543114755966488416989442465679367512513176661196225783624793278467287621822046482591730062314752636117493830392959327502694224896410716345775929178342667586540231668655278261451120352383773743963796235609313604574153570822444998283676294900939086709336895267889866822943240035132315482450341062049977651316060041833807844613308985083033500152387476772585404917964800721938386816377824424481305673764331067620287615436143053768399188450426597966358052747230426320254205688883262904073030437332732465378463048502343680066663874229520571836156455811834120978387152406115920583822117599379362611959029658760139020208731116284129079562031124959124445005992655722236654939093157690387044591518552451925445920049359783284788109157842978195367072411992608446177653438724065695352325141717008992318271048130662397347097283760606163989836212521719805033849526597413610201492616668818575316329132063514593206140526170205904826214906909845272402226901926850314036651387482374429205431148194691980178284987970767058300639833798283222106631783226451433385410205179797614774451186352515412416692936525256258823923285056036414029639561909849285170876528472957271361254979831852458535978723246131778773899040307233981988559121147134125490994629723513707330519525988656286315732725573173232616188362614117863305202941256344038909087168727908867595123782716220743369841615141978420367648308163261314583249232120363924885194853383964874241415876121758495767954320475469275841696632959262824165200624086993407933397317711129577068163754043859210053599103084092800135609719789789248981987472782118694641312037629160280996001863134340412928082989479010951949915466032234762400235936385620298673198514841073698692413471004919377908571377007260307951924714758205320827888335892926973597170981811297231123955944252213468744956485981586402582414094556012961416192298597344686318142233222511992183474004418260944491328743727086513629052376809206705140969164120654267322595834725451827100957025648336184656933001508000861616887515029963704979759765165132605245769246025688962423036643114039536079211811497542135217315497268912935460411124510728802509408184235438259392091836394891152936301351197974400608482660108885005531143776857703799786983026115520162081074902523576578919087832267721382729479995300171032098901556612881865422130183195908149736532033839613962319310837775929214889811552948340609277420807615984823548986192951296968032116921156483699468010241016311249662967626727624996582295404328596422813674184840987963958748361966961359332268865416394987854788750445527085771491915218418472284135672218623721783432812342990307864073879366930382521503451505709080115517752760583529842407788071392763221471320950142510302978292002992941716439905982463318770325272464759512877545482933328316124638434044393974059873183112125304423073595532740893980638555694865656794113272107941057611126442383305029092323095925488908030053330792419185804803558385414290479097830187976390358988885486728265464770940928434894483856314496525816439957492840407592005862091912995482373300446387991280790599841841256155189298232994523028877075975034428598310427993984883747011397117438352167453045640078494850938758520506469010505306314513357979522410256383891888986279735214086451416661487260557152087727992229584426913201128622965260012683761507777718921230490795858846562210825508685346850061590528892715760584718702895208179888729961134448531314422918994303927903850867331192254218376154303243956636171692606830275006516477533192069458779475035897882016322230676215014664572818433130541429194720047322217880579535183801498087875396699595436586284137834759670811548028982908274493230425763290647988264187847312783211647530566678015420961741116452876283279725456543022737080819777269795120155536302327615859690813956745600076842775230152447282860526663979478698681960488841052218672853945757528162028005762438403906045352427982640173469777155953506308010654821151774183222469759552931522506716023506486934720966571474286754905097600361466385761408675440239027192578187861876554810777561169363065391681470086417972518862284079360272930364382783822851967554295876320594607743435145623028037417458457350634821806674258776209235146441448357485787203374380160744472091825543558169169798462068269932623562590779703580280832812018133073375585851021815964413564073840096468946235751529369494699094619244607250527699738445691303392070797982668383401320460437047983930439058697881647685136538017779122592212557192527317320565240415090607132931750931360010511887958989328124154694446610042351713413109815331929016804782705692634336752135952865684060557414371935179117217310273572091654550611540260228491796684189071060954952015264412356911504826368790800706316661117242572470837095236072406877901612296720154454681275231627084925899223019714354368135053387151158720939805275096327944385872591729731048180579055209939162369474356653406538874802792483965294961677504013249606314394823975990064687603157223317000224617080043491556961123912638615496070409260485050919762014625752316126879564108442429558078647066366997521624760721235280828476312912408460210345594853839393293530693040072617057979137037617789681986749351110926858061131865360833834063081535611103926793392811337242994614361495737746117255184830154772428915527738683785564073919296221100554260787457966890121335047621756220041876296720707472497155720247044583270036235061111930557053622582547695079881164535471654159061853740667892323299391523409347866805687085880257013383487661367788089963612505750134800855462570456160366136064689302770293429491590030606915602222604108521967836212708184629169194776086253946186462132168513436917049436616944083911484033450956533066264744499595466181444846429149497872993314968883209620788326470567423204817357441679269949695087457142670991777535033048149099700985619956529023958428923197749555328550395231116837906423737317762980018488328356931124593898019082695275790516896034220625839099755509162014759351408431476164592895688280406848242864422924570677957049236492531996692887990337701218663625947102282320267113315667245437441381222120856362236087372639765885699823171176271813352669091270265823990911838642362251180196726608045978044007579078835167212747035333600715311940374789256437558543689456811611424052782388919898404135705054290536896622668759930308801584142448927664331338624660466702057984206906083294222433940226123576018968070641436937377905097635166570205447591280840153235000384521354385275635631332690950996054078739217680218855589237137998330471049144931779823265037869228722001667773918246383212959918604296662393919945608434020514167701430770628001168064437836752762360854201288043280117297229372575749462943901498675117371225183883677117996015839049531581027908791583424838440618469490617206420386437280125377932508549132652745681200302343767370067308284739134467779261540798810372778365371091580144108060414942819047415774002476160005797535582429545438901178219709430764667203535471825496657494136541095539585074924293865807640303316205544499631296659352469558803946718119999197205440498232132133650946597393539316218528630802127528895832309580554318395537878331498195163465369279409555429212511983444581901793620161731461739326822807579500584509711853936570522800703811569136106301074311240919064789801701894020649713766725422621730889880088450822589814408558794567371457293127966015097747702515739299690297168839056091626823609842248340654019499122167050682823311626211765965568409160377865201820730654130860159303652836990915894780306961770318490369660791528277157862177856345713105719013900947233906296200122285610090632450842771931014247113945401436617876546293174934240632216898923786893305296066369301359557588370358209384489185843594701435603101154758091312361938442172840499479675045851648478419195461007526763575380422870513796912220383326055011620525510358415000340187726318821062933566485356219440030351089411973805988589775334223551691699980990207052610021127137644396768252756930071176716803527673137883042522739625622890699565531820941012483295656710596978828785238716905698376408968067049513749216907999571884555789495719370621151522714516855395979204238365664063447224394890223466652288089601063960744397221349902593116408434399958131795367948405685429817463207516069239468097233769413923755016002725405442753702506062407237773117032499364020608699361283805849081342485627417795878967598874003300490515425376247180239765817244619095828777209014994332452149820079166183248562723647888294087904146045245330382325902787050176150224115997982032846227371084178537590416482771684590150322312690365710995335665190633247414999622952695521429209915505863512474963368189356475670538247681842708359090416483053496386568772057186078352196766289470120772863207084858807638475552810981097170461264637956106825475421750116643974993026753185400876463227722320464222875266688006000494768645780692980991723671467529301635648081242033597002268344257342544183931506028356939143792643224699388375123384157410015237159453441036051568150590423834541847628015235499223930457779717364141930566402912213180588167089040178487282747224420777927521406182669941209327097779140463582041587323768181705568565398553497573723125949921620289775194132788578551154140454768265274353214081483467832733104122758732352092208895690863569527363918639681634192417507074918908563484511296506497265830479432172642970502100298574213534947147529128719369100742710468022624461854272329376323411843070083848982715150893068459176256425684586058507112380043628239991844719652513627269968894051449122249802306101568112102758261726052089662544538281250209245452224544030642935342651250349645055785265399822467649145779192519494874120163736967780216590398464261035396561218017067234068506326127949811947631543010204329639899966882005348837268543266599029460386067436771547741069437558032900732142590411736578282133080526392162081842380894186228935291555992251577772681757872871731757992806432444211219698631900033021181781989287416084465568467555152592940182457743659333901858892179627529478923877887005711506482376857948754915890097562204939656477084251514532679469574469573047780499692814176571417538340181213340425758495631174371981698410442059316740343143937630279757686283944831173662782929850743851095919864561097391846282060267608704239291280272792549948601782806075405255461404698181917983705055291568730138148839521551496889454764672367010168752143214673042993036035774093929729163108207768475802009995361163966846440708291774013125886963569362577800431882552516088135210246543910127904375153466647987548450072112349916845314173074773238640197292367273948589197228525339947341970247230195816682085558092382132070330443079342780497989019811347273760592299232313397105716414112053977463612694715961326013383272973942046170156683278777175280179005010211048013759780262671214843165786761641670150189406084980681786848385287358895710114584373054228142307621131180248474913754510133171483591142763985401242365513830284780328471311831490505864210464934805251150632935280113263028804831568647578323544561288268363164426369716415760174040625318888770002739922096442424810441749209851398280109294499273436950580045806927355235881130331064062961460400078663601017412066217265923463270284973785801385526290303932031114483982022370320073705267869962392830012610116704516916596406220134356696484831746842464186577089911641414484829114168781897456242690651253730188191768120211239587640327277031346465684584088415274467029551149900284885006444312904431568800287599955986318862884716865755443021805294569018647786439031026557478641097322650876101076504515382219318741953826701466478785270336460389933190107364036132816777339976098607196841255113975316053314042723348288000223961144916603089164391546740372680878246228561592495421519940551814664984148199112383867575570285908182613451275406529776263495197182331386272445665367850421501512141698671351156185999346026490082005708132976319933427468248077858741948500985307086835844891473849304422717645328898502405730543359382612872242341160043270987032943982012817883175986412211105147766553674337704343978062458007550925859255624285202292306473825451146803223976161103532054159624857735878188805267712312828768268201912225180967363328085993797125076186863331854588871180620806575876476149039171198331246380714696667438225919731246741752755583070673714759888119166129014633386972429421862972782789308202076005700298414681763586888021493473538840547153707964339343307694414619317470100473108938893434719222596463231762702577316979388056419905787498825357850812745747891745751814456012745776360016536177689875328110216455607967131655018058750729268137987764793278710592389887079651007632157080468998075186040217693915235336410661818288910279301918631817996567405678699470870958556813217826545450759865313688735904701607214499546362253130128322521826349484286731444543562935285177821279630342884754577551919583624502995131975110923171115462654746723149150807330220602255625488995478988774676999839536206718551072609194417368118084113530521836419877713681795986969186794805605655379285086488633358465294007581805556854302497044165655173331192865894039941786867509684270881557084313822332286656871843608701513951861391065232816517128650826116247654979722884872259138839447515594387215090284377942209524881623371590432223183734818536237513332703912521307444958959797371808999519992116439423408807932076301747684320121223796245365064282401786390450266048406718841665665435238662560311932053576253307187882890642766994682441972607065628697389880769017072154668970588897458078256094913492583373769221186106538026862933741424718348707047730083462452198520296605703034981343472335670407470937394012048100782285287174640087498193074229599660353392543188823725407535007546612252316407236375460231225686848369350607599743954583511021074391466442479247747819250012200265536347843021545712445769991218472375970848792561692722429633408123679140949390151966042332085543213535254822291231952096067159354612112413193479038426858713784894029043226617898212491084897063265533847527485589774766702769798310309515601160996333494961428825839413435855654286971289672111663034801382414730616278417602935727651970165595584391858243379284287341894542397194999925407405151481880269633195931707623200720190680247492460827054533212281411214834365674032848540819479991252548442006093851043589119234752699367458783440131225580918404014727008641826621352913138413969875409763686467559539616556284046933209186772495343862388433767239554810713689469655038386953947760970831269103757507221274558156880634071282682434696303770318167052127743854313873565789074654603460605868156818719711503811578934999310492741893570242683837207769630279777164189816585695632568002736356962769516348311343446180871021661715994739108119455612828015086263670446468925819289054208313021635764623464562085917227847314993296574659542087803575950818311479256391799692024685504382166551738855116483991841033199330939845120234056106097385327863617387693288664493815152760508553955442347293485260766487366812647153312323772729677872675921327163858480711042343824487343180907297042595359318386786951315057300311998596875090506260952875282318919651368561802248489149303338065938089066611810458538502770280273678798257996049104092824974475575821822057678821329801918206984685577442033519905248398810073375329096622121975185574598586353734607516241194026330594123560101958721984721039538150404767661215619402556235697300258318146827275632195066409805692687573856356845951128221578939134446543362060869465338760702331787750622149879311893985217849159443106864659206518774124519292269831827278686645797181546150852485602640612043136773119188701025025642539350926238331870257869780797077468819647049888444644765815128370992753392964543034166168293811834876559566077842675082724667859299898369193201036691191261501943800208736411493969824775559222846075029341786761076542616119344726437860755693330193970463072779031838009255813863177573523948494037587126766433780759694330471483924773204469809364045331972195116924676463993666724673731701147922287892656440302319441104128010119231330211069583356326845543979525161600248075074063280774906992013217454201216126699618488186509747637473866517860276685420606019439923559568658304718682976936867873660122876423725399683509759368495266669904867493344106761391410588516421229043831688292249161712850332393526587071918888065043112255641360806502211610950484825163691926964743478324199868652596703366696285616663357511734444930208884380963734982286860721569371098622012022279398314438845839501387150744218632515970191492479070641642026105711180122739985207593432134571672837298164387902962936800723985285699533043685908866553627713307027030388875410958133561705072245894826021043172893222002565743800067437890191486475938377524503824502025714111774791429463117289764550059893621259021410258925202001987864649538309493097873418679977901894113748674777341716005550975624571930445407961018902769448499772092396563827043222941085522202751016707105386665037204663620505909479145411315586130900511469473543968669747798850333035097920199282081914981091007905095168204379209793497202592565899269571753163973979800860445014161744556894500070393735292434731425622949451452956375463547961533874048592797839125246712083268408118261538125855705040468596555834029111100026929621114709538458693551053143363241637016126813255468241525754567155479490459245105836498575487516711367214132939695682685565455834210939487260617548676118848973506370072210702359065773604140916007358593858226112227182081236780549962919086785687683631377424963448417871686655230109669981001619106910158427352851412230009062783436218404641035296825032979488270783310849590915633736233605841724370968707215497362253549086539207297957341969911082137775915734085987348815075581770563444269079497491178138459779773369856631927122903973493230333685193645379553538501642310535659196596227336654506852414875309561525612522583614982504334225592041642324212072788438708131865007372434359162397021034797898097858342955954629486997710199904031096515109215912106159143516412750157921501552416389439791777373989472942921760826734049294538493808945157557340717279307521147340458608614604468830675479883526693609159322228797480971117639698611442536531489675178220864748591122703134188478763177507386789069444439644370761523990213667139611777289739941965117133309847584314464940326080790267491959964336597900915019674661193240306710887313383043684461612276646910971185380299692770296345327231832981839067860057256729862765432656785886327302492785377327357908410084370771451922575616907569609780070375865841775067022794816418626178636945608988177159267226584885141693981451445854459638276728850404462154017283557965091278042730309504118577613002205013960123795355906765486404048166316266034290013144852059762437154086604099357488154341921036658558880612223113564746800983400184455741352786594060176090460784194469310055413122667275513390592244178651784492260979562565773239439912432329965134576931531621466048042770860068084107970350174456035950569969872384857917416617613760075824346649618425419019752682166518481792889267321769174640080054320382700939358006396622646965995349462832959685103629353295433426651803625619327088084180891003754672976056365331042473642614720447508670508283885805940354819200827744216674292853875666390243990964355837141622550276612827544713526567438423480243547141529231271835545445385586280761135833938506889152553653556848276058036988807261648454353365471001848201105896259483872878095809782538812154674660802339724921835175556167744339202717494007920548959850975913604062945585355629828753707454556963228821703570097619890449460081988320998488364439486456783849034155047886301099004571976927138449733565207339352619546513721213791262737036932524682455722073974770326895560500883015733977672045408327645314458077142842895438117625773538685101348097841631286643563567390214945748468127767108374526842700731179362401291957774971249604080741276606434945122102712865033019887933716865350613604725612602015507707178060032223241508090721409844707040695944063954551570933918607431554561249620798446421457130993549747225002714675574303728917743548181091674505032108641566995843337621341218664010642414391175767755237169348480819191062815230565712726521281825269533108743843013793291332050694700569220119627668567121284852209027262057998989759775299728821343304138477704322297108221681311555098354733748136529496816864310061399927793504396499905405802127470099690266538929114493389420043749068122955318816430301645521334352269081354023044643050959587667920739828541040510479547740103971540115806269414748788296029702015998800823250277561546625611989351586316969492274081961376091975194111659906082144408418905804441802781663865728227712360226338632157975876890686224341843142226146224071239334823960198989502747663013378328043082421093576546942760112047268950696721234620850356979756815486561280968899284352522570467431352706938722238283117306113187696629398416452726686854212145082859030754314332921216595734829875183596630894553830826584653403645894570476198701136569784271440477925112623752686580572047336768015588954568932939627826595859298965466233313469532206401876816251837812737829374493801112171781859678190332983524612777359283451509462792974033995147190905637948906998558963346413131251559875953159152116686779386120229612071192557371202941208949649716355508446701964562937265655154641331850427748801573686739133962293568719086998002857694190595708329360582166926252747088599850920516126954921784750906617875642871880694312820627801860424304564254945939460075897858421839230406543676750338330864445886305159569643518143993732600075740732881399497231305189285778558999365948069870589511913121060120707613077789643156473474475195182841035322056294402188464820031745537700048716154304354341280265454750945306581044330493055531655880358909010410461715273935652036617001307209150333486259091811376211782216638221270785983128243117091505435463129139477340518241783905218375435291585539299911930325337565348328907381757544530407794970459206154408814263814086408397388096804699823611513132430805403615059863202364768062331501685662410909573349519314498286315311361957699240247645670094102931892143177710120632700296381294846779580010090215998292481244303244825724287576128679897618478021609871076222655286273711013949594110432306677442265352869875450630115230837038575855022410803092561462250643705060847618637353410390720726215392186881887499499479984464889787880285562911368852352245744465772863673068641558518077037496454484719492824274201160229889562712924267787333510451438222359655815627289779372229008051560406245281032108439500861188622722767907082620511847818783384076964870406222888756042420738181926214322984734166105672105043457678740354878685173961856469364521430430275035111260154797311757091987072531250692962769610014831782572171846666570078172514585202675576115108121306546539785584100598591461477876195546714585229461682242503756615385612212064941641339921139592287073793485042936415284370481063306335758611200185889716125214113776094220817927442597162180260800230243730472308821846298053910172152549160685561146706208529173518222666915035314407522646361449060541339552822346767669534383227873540089800736451495050120426767089570200241649883428384896905798311040711999727927120231940915523220729533051934216152927460348849751361641905461368838288707471710995491721069602976193508871466524359280154187014088230982908348851987580980172158188255831385739685467667441860178638287600376161183505057815401528806549830414533882738592493149322902937965442987192220477906643685247390931757927349976754419680087195035521904852750114909760576842461771891743151800046441019362585425738938092067580132344286903312407217947804105360618045601829876698343468375581359791432070498992483575663131844050289705557923598533878066183758707335895701200746962107977126171164452243923586571428940478090950153502127646379849937886972889546375970045913534514528853283171014297725587258879037819755279905768260646306812845824556900157700958448592260450764494752684421753855224812088733282151479640442303698095386702245587944649032111617572408250564707832692519639361493668573763598017090602010749232540097917596108010975212382670183141204499948954537021780868598049157747713068080943193557919407904531942494410111946466668443278886642164893395778571854327992313367593225971618694022824824556899681889946222760698301684857493991202309460509818431316661232901982521100566013827384675405034448745153781850058063963642007192394454836178792404943990625545124373509792654787139630322586255000974747478708999466930199008683239594673660707101876867028776422195909932380754714360889895841588225147354741882855653087641091136409919298109191120480082381004554837788493322063695339687024333486916698123357591031618486556331732638321689090280060791736941788078541383257233878664918084134954487801479512551309103982038599313329902945373778047686698814643402529347052209195808644146781979330738596645904630933979050529044295716583169734117939510109549158524216803754705893839938576687136371408333616808392230042838188138202939857585921240464480712318322946761116210025574380145699125384574400585488603260603750016679810937310002404712417397852551438555296386223215496252766497560306754225180460921514058297931088180865734726597788350091482101084146270584467443211026018955672360421848362116602552380203846137700674469220023236026887880417909865665129008033746240878470947385280363736923806249863587552208631385704645456339145582449848057455633257858777476040818539045410645000307175666503706202522962516009688356206741868934627883232825135330912345742812777771900936956544880135416995026121026247417506206106324424886580345674627785062571093673090127238666007406650806381605442692323172669952299971362380664310926424939348512226535525978385359046710957255710872233156910468500959420530373078801996428351996824021764394644638812763018196766233044924996452766476427805056702135432214918289277023200300869966703648264544819188753436379536662563617540840943735664147807126028618901733987904401304893767694581706730732555775761718786185195543148374099450462619214720819513240955869283800463256271304348349199837023890903132803163475990799181940642798063892349693273636211971072176981044798051181246221140210862307835328808595173323060833046419871488400596107898128210238421700287581351378527891141483916147538974234482934203072269058529555665587632759328637295015136685311273369280498759654835316902274874304940004949369556733884551425780290038893720129766670051753696321012498042162578457230724180675466402961314831597357510207299406861080712866828780991940662423028111216498901274491460362503307808544869827486103936424035342693288510905056091214029846361778221491388828850690143710880821219074908954420687472316911486583430800726113592404464973495856909134434178195433353192875017492115997077065820232735086048736289588191097908367356574943509986132788034683610355078978404761229735407198907031279254277997113317503338657074768900562056840509631234617157873328279402733745705379763294319327223985304999267312562199984071114275237841341548545753721429633988023767344685788993960762500310780876430313468041142746056037509270907470745704292009333352467613608298072193123483794223522725719740216833661952869117963174448581110651920972713512632240843549461319295766301903793998566832364187784067519620326690741088113708523524707339877891011662222492940889598495639754434531695476433448410471779229805883971084283439737412715430637367354478617075139226616366703911307142930054501562516417817836625959854083862295638157601650286418444374556743447048682025816253299211878273779743874297838501462265952160429911235169376962735249079865691683760967695625113599288206273105311661309580590721643788189130839780438903258250270493722475932919707807213458623093317036352035347135813030672571353791386952192972014799174756770856345350689516850914740940906584283257357885476848204397852352653109974394575574554913248670133223296772719921417515584068854374906540294045012581074364411621550666959857585570918245303231752848821247121729144268770150876641727883383918327909221553184082778471096381535528163288621780245564583128284010917957327754503664005789978017003496037449788636213052137996746361597279061586496615714844515336249552290405790949816228905786314794253751818955036257754081176623960740851257349371785174670173154849069603570895402785417540698742528811673936060998283782945543830987475993011193315112847465782392973413827297846422353303489984657585739151361965806191729909306541845038501806026152228618212597941125891853366925378574392934702924242311340170999190383319802893290035057643935091424490240053653085602641009871974152759426327717884830660601050903505925859395435818262801474860837788976438672301166266901623957765830209801748968394655102802926630597839898132887366335640549337736419581028861748564775091280056020924487931773891123166345478618164092095197697620935280671006264032078558789605443974738322573652093447319864147327346138577888840762251103208591145888658827420093297934470505788742376367286515154972772026937029689687168188684457438959271203506817578618407568310127639991571632692830324483885956555223987597598234421951514887678453481396579521888066588405151464999157783985061535924731473823234628489046512468023367437487692616103485448079584215488523143572473070061269093855590985494340916742803231426368358592420646001992108872738682974705454454066061309161068857498772926858967194077896540900892318864842966118518389152379533846032496671582509960164628251937273812782827638387425193967238960402852808098893577027394971056012021185230636814173874591024662082474747245887901708966338938409137164709282035084096514834500250406165678843844709914350991739134304239812480140361438728027641222076413269259136328131316207199629432360704115968632142436469627152586116201316317398926139948906444523476189940690545243620242022058191167871715865665339840667802705229277459512661887381507592062679419841368552207472399716145569472091180117775205607362843892530736290503100319491339739354846243975354006493846850693040384584484892245510352255184697344115088891184728661876241260467889751858126252215933714748694169993765758937495432478135719546142604034807492447572643600875285341546293133770568476873112062751761656107255610232259247073789539219344266696239476522770409460252689374246031317046028182936385531246592225485477078471614774112012770065729227692856542835790097523017892560774961442114545961502030893118866026595837766618934918822375339928608104452501864465726588254587292466372838024945119499727268010804591062292945045756711999898978446662301524803475052892588284758838255456195592431713827310845657217123164770337261624211070032248103415525728024626597485268634241301574856818178518039035688367862615357768183594494900224668853272990331154503896502393100214613802207951998637999005974347592208366522489940704777574400271852848122062243193628413090626203402847897693242691630180446737578458865422107255774966571954447406809126428397473157404953516498554909274195696273944942718461129430782168936649657515063745248677751281645504584678855758557393810772846496090406407488404213084618731966205301838864144172350252069863994028209573677196881849748666223141156794434362064193671922406829922804118245381293173374451800861941351008872150213627271523504271792557003230564492779864849599050522259907484958149228223268985327008703734600170244688427147441047760165495523714377235796786101122930638351841705910265658258269648083937393848453899054645827455672059931878024046446112462898102785907551819740525973180698121244172453978577046831853774505315187352142239203093562642373887282214810167567835977086954977512552736819519613876102381954814031684096629283422305728492755104593145455138868639917633078857761255512423477962936197737062700550021859514940888821931997694544767676027490620128532849152894490317656259805290719387903695023658701820538835333911008933372909216127749245662089879629328333526118130026332947085296781735002781224956914340035032010417283408495451385174419979112941048044904619107726446942448786650798897590977211506218501966009011276268224983805510374727421736658025376532334800899594152610998356096086586194992690468529075734502302945421750418071504980711547401565020796660307193476102190888173711191522883709125428959197564173382590397467762846803042187569751114325096445619207503467331567386269987369281715869564440270927709832348100908099484622649963144207469887884616281248206860092162687597065119687266787292158697803075668766737782404198216726039461993110301496494829827099739587058265818941148394758648586427866140160323641552793406658880985721462826874356911515241710846966919308334868762728130239581643342446589876596730045906372894079409210116754126189363043138946222383065362998943619174650833882991241456662614969663341949128206834576208249752623400078658795108568843619452447069326778469341039902512596567894010181106863789351783925131945126253156829446395840078870468646233417578458126848056366941959552638201721029652706871230291684229509557439438032914484908363568099921506005425259150274290065405070112573660578983166494331358315394808714943550090543829718645631528517329630975602356038089284708518664582301625424734452699446733243267192569245750234892060127278712783622633366191394528320358506583681955380714147287491131940366437977134294635257269715895363911692345106148029533578979786744801422341420717804488677165311142871686889173657269261389614108946617408276675296098883672871700542757531830319801371454362865313911142233119994989502507124582644317834883394864767480116272590398666231475989797563169643642041486261882987998519271626138972334899962612182287498060580044702975183107395359938686054392283730039316776066131585309138730289614509479408448790877214862829818614913767804486409409075634030338301502076027127595459545196886215623399053922724739553580052602812847619831140784661242185104051629093991400716379880134760367860510643545283260815055833582988405736022809406440957077524807001554125484678028043021075368735223413320411065584279898921152532409524999971196544728177337530473605813803070805186557673210609584127641363621809473247156267512394066384797544720150590228289522116290240760705892576620071343640886287226815715071910850146594298876571100198794477349881115854130767434322965190687110289967339093210615826129395310616914499694295397570025352897696162538712075871044336114913882901550028129522752224035372680012492943755747817327069073143437887475186989268442588259826947209339477921907858571286901415668889047893870074794361710929895801424441484658202036635963373738990289924835548628125011522765730001470304777139887471155393982960436862393333476972682102240290861033141477977354093741754683645132147930620229483452711171216157062270855234678212234409174256611763506140787388618819663252758177384464035326411296861191652130991626440837418818887254869770495458302146598407561670258003680792236277148062586185154129485965923296314685435725978569791335347668646298105964989927716677343586247710596891864816660528649166611034310489166591432770590703009569409944710878655255986474386417811114711478190975280241270305040760262718807747967913329674913333814069488166445629253553159500165650274416551505439889764178153292266631741600795206697963239135278890623614127765372731177111586827312767352561877569647425879833304364381422216133196772557363592668242731483806644918070422756311416579626540070812071128593762289248674983939940601317270845141244796816978216523659604002547159647881002485505367174887193602043131045619448196876186467617697975747521692572897692723907224151811718059280047201862857298624512660677670923811331764907153398086832829400795196361680768844172082412042016599457234507024571129473823918877955151793805340166245229219274127773183850005617142488481018952771422406533471999053729207718730618087950003159179863492561727229450933633966745781611747214531590082234449308674897348562137212451577717586644071175002292937475212823382501016228550389319216555846665657249018216862288791557437686265329599083879582360611488650459780544883781318247024822227344115434801015343083031076246375271615679596887206588573933862998903178380732835519534059431757092633547348614733298141910163638041539064777079557285990294191466446296663765098145457509721279165172042723916901259677480107735794107949970551197007615729531373310084530614735675125601791279948973364302081958262768794388625006495844776471003581572970369893422941901860495713171400914565559160172761718965915814507151072363742021172399155954540507782118282790382211458044592058395117156690429092799790572581376572055912868889706007283747584226346306230126141456078627471773474973645171874477083109333859951049093374585031530954562763068377936465777628511234800777069681019121148333176085162112259417905581716737116054829461995049916170976350770044613902602967265085294005627870689184860437712005838142149872675687405636347044726996264073695290634366491427193416699573053703815270032273443830726867623631426819163216775639869085118012039299461267125363673730162694394577681074517781642278400362460234243282949516031935764484056695946836958261361560050012726063410559149654335872457413205567689595750470261038404815806884876865064043774910457748941347225966280410095106574841869152854279317751780296410214583130936899729661881540798936700186167230297673984534444503822282312313878321130913240360756464658359065366164320391486119293391243328313440843750132623333306314666048180587437112671957637624855856533901095145271823839146920071168656302197631495937668409972023516366285357412584531898052754638602876396459984519614873571628290897118670452107768964094008767013217127984650637680290452270480341652529755502448480698341119371636555136061258060854466497624884246159577131464010156291220790938441972731849004313469302780803880134649473919738203471772092887292486139995966592980875086896814448900165562104685776017601221971800538711256253732205859704507496996082885401960450798242204280664514239665559499259570657228655762009827044442630223309553534817758132196032812270992982124319701574437811438881036229739171582458409511214964076603806236181820721305099829113698787299062774754294673259734941145376707060537443564217787458799262322328798808901282348967863141602730704765025945980201025079812599173232640542691126116210213159616666236280967217082260291322471956888062991775766575947659217473329698493131902221793543972417419204372524511900893669654468777971560174901435377783455813822261791809074048269609358698544309871908791556687490377737015655255898202707525991701688316275304717955735555312695645442522618060619123261832694831661850670009750523427659271537843227266231330324569826174213469714236799907624533491096760146397529573785824369739475013194798188512569628693989140533275468689944901966444382879796405918491159568032722746964495233709707411198166378670448444567890015604777680303280766929468812330937248242881062939059310641437460691727923107828720891749983732340158557945222591927424209823632067974501823910498138877538981748407981748334120170473991473849030796964895191973014416939410865088450131257734422135832679971221740951536940352090191222314104451296208616611885794282440204719495415471719032965684397008445180322232308082144411286623525874669703582918289339766195021201864302951060869966685894896657306057033186336904587082977148116211898900059145992899332323846467167157351907293455485704863531138623802385462565949090673627776411155164896819627159637122441823175859665430090798939682592321589026591502749342874145529835347427521892326350034912112548548961340065928838067215474017325678678846292830150705815717455486834257343134555892757557110105450086013971379537571413506059100857130073505944660823356771409787571549439479403276157502452557539956907281396483614627316003683002640594462998482508555522466977631071285733123247082054351315303351254129339092342985017763018101129280334185968817105684961277341780115953499233510794834233312027582968161168962923900374173754352272426906680022038266628275490199508602454779401338456705264098718101551392523691003041362240195670764326151650651304848987478572616307566845356758962018577168619661370263934654203480171639131363236623265946801984005662124229470577065036167745504008936813617978939712191208395658697775582721603900905023361209530451214689485750408365698220105896966088051244879238973396541018774161045113903084646972823633697895603984091666610930584938929086937297111533592985098302310502313594881764920003287338884186665607041356431890582444154498860167156850637662095384536179775713986940347136977436971098217849960293733028161972527508067236260961443752851826702211489147242010655805196867596546821591543552415975841353733654430268613752090053404734082149271363807034704384674133242049284659962424957550431198677204798601613474979530706797812517228186500334029950385173273599230360500797956620473123098540707226402946781276364114135110117879264912467480728050177223061402579955703559710848220687943650435370501361338529280018884478138485811721922811918479902282692735693534851004623806584307065753221072561458221861763786907939299013238641345380744542145921189372363036134204434332085385867790116432662201804008465651234562818005643483361065579015235508405905871322943715032874011938091291120284342604690003296815052605231099634635590329039884074981043023998392098276675244409137255293815652112890615766056478388685817379008414983274398224981083785605771178725813060324456366141326677622458220524852676403487017338876703413181615285137399583526346351540447768343798290492752286958044515870465620367999262989068998532911104928724751245382151120397987341542413939713685097800549817266431026949962074459577025499683787400974714379834879690980192253985452019394421269704941221711603433024969490753721338056327288716930691403534054489390867358960700029373111061494731299008584735256933746807377161994355599009526496805844820778216908363085056213352622677221718251605213038104317521810250738815723269150587783931392669766395256445448416145738820787818816233319847678745958493124460633028641334076031279322180381331183616450663900350487276741796101782440357313352616344060216694982524439237191945759349466780275484320318507788283238878571318546352953650371353682752044959083170286150166063870580627216729814022985152437255560043296168059337297328612990167580610148549439502091837717797447656288305592980095945505336857722182556072662861841512020081550016676359870389028976218324191858360217823675511576546379099191081693154599544142497641492623065679286663517460805307784205136677434496577070477623316814199775093471898551637906512913754272843583197718963411498152872817787020822899047168047125533012080159506396969785688699092225001506140322935515391027893240768494073684889585961334851773308057804467532013732377624907353804443523404860280726652272379292716122269956511796463568164376426649006632297928817577286681958614483128358961404845185240024382689942103539592649513532897656411845530175777406017765987837392345039258539114668188353725320365101502315125920223446183227742578789357046882510507314885985627998226690657546928716196450581066793799114663587126988052398887255770019939114789695630029041725712935973914897984199236207550671520894930028740563530368286532649366489829881117304408777853782829654163598607812118499460732947860337375000207457795423016916088244680950112940697609500763633629712210280989096981953917875471167969927174871686509108227340593210100294640553593968534619790763574065346531626993369477238403946847512965200565902626797560652975235348987838653560801545409690539534751508143761067334119993212556896764544184670307124785700871483693217515067671516133918044243518643263124054762680900396513082720207955317221367319269940537418275819101554651849447742718250379751782482574729254716975215042991560487727211565151812402850963018506882855654220466167419944840042436505511056298379691865999843911621435312057187526191223290199633346973985039551473225150129075854129168211509108864331422306484547962691769905125913690855849592268313847276296718398141383176630314055057802648980199647628158018903321562150525499782750232067951289882548608865277108298879725056078165479096705368948457130239380125421214766897157632563338438742051058486493374139306812508258332942680648692887034078055196484623930739247498906533049703803486266583705699856800891248397156223503483708607043461224139886563259018311401220245830774149913424811882869595494025071932017395167018018333567858016728823255797337392985573356882550061798315789126569100280661998655138610126689871284699732452601207187188257050134459288871900174893940705046591911973306831662137783246855013072154536861050411189096242371775045881862313892164138883754055406790698302373355160533497957323087322322161145758348431066556531149687228170050999251346173368347324180022548550978316057206640284847312359679550792697745804307838877226943212506940395492066208284727132832224004941860013153763202665036502919645817178158740845271383193101276821989864274959362839063889237568839641189606197218627223174603132031485075318205529236448105234246730513295808854780796079830288416895571137089307163987508988053697890313470070075577868492297538911302103358483752887197982766169662388327953987053798073276372227535479075856885180737493833309411635477917238330847642227973828896041035915207698212064085887420044816242121723360084022398746142993296222122988264771352222852044845587467592393910532974439077898110213990441659748810420997215345106315521012956048930459633482107565138289786738907599126308500099258542808227367530537096413263496087415134979867183710443980107146953975293223643526766571687975372868250813028985805660819828360994579256684637404525421545271569492939111855859873646976089329385993959947060188228121753286494116976770155238920184540411934848807679434430892845573581028558631871247154661827653163364937200687888505449730038243157317651356547927006436687571249703119883258439506263042294310368300038935052481131680320991406825831904989642309100788697103163990022699469617621900766727535467367926427873565109249571797767315073807529191626501324274727706773740597804516271949595067867207648066815120835806374770522061569379155915722831715291693750879777123072676727090848563247108894729662034931908361100472394649153237137759367778633879791634294392124338936603270329777856436725260144295794794394559612873881841616505169105495962916189393981643660048472428082557671195154507753430448933173802482433988898332379389791166715347183511860192663134979107931229637757550632606077759997119448376638600093107847049668354986710915111550582130040993118031205795325535374790734087182158000283994010891627977655755923959166352397239128438355631062939192073782783535009530506938023642835582698740816542827503987437368051802214616123056248987845105794250578610127253001273321219768571134474267805063930890841963093654022866577655971084041240610833065058884597100024469050856877775518558204374214496141420079685022061370900781387708923621192219775372885817496361585051661462364183224747277851979905629245217714114158113028814903924822699978035746908071575642502639694292810539671213334580006250379397791676007518635708590787541551311068754968615186127087540594461455762409992653250449550040228194327182295172117186440911513841380873146853697617397857892543707388216378698997474423556508721386595745780482621955373335081812050006434279517428304332904401862608224237993617715648828692646221830930596442978525781496850215082713827086137662488114689087578097375351768058683477798432954501493571560988879954398679191904738628309056047997804140474365805151205957455946783486876567235073598593593774427832120085408236684498736829907374352596614596714950662131436232644409254417073041002780439793643796492005614937824839482464565522739825230372971846257454649133657885939723793272593147845316438227211916520553478725131805474306472936771069029424648600697506587124604835501580459593703986231337439373878515883294556678127214444205561363149965505035229012319498452587367936782809522347898659409809295366422843181090076689739211728543690538547627595127876724215855651466485202882934457181845207507682279390379505172066480047899187424620163723162857283840928555250481002638103486071447990327486290351884026295080456096534358731759318236718372139683405471014485798496747810145249978634750766133663660905806972879594274807083649593020313951827831030320555131081153967737113601623072078181979661674253366067455210608225389308125278247125077789229313585679347604002794015785825084438533479952132658095832688882733427263358093499902639271451873854032491814384080972644256330118038286007724824568246151743420918296936428834761355727202639689058928697518683443298000704942129488405694067629967789893266658909698266240903233558399045911152396895893034996507601504155961296198821499651463855726188707121994770053822763035517038282237779739255833002346947830280814596390516692752573170968346958087366863473891659653071343935362566925692691699246584634778295558073196259559458381927143045521275007267438913015463143599211354287026598682625852580686288071596878967515861905364385981482171280855116778902343212450251520416923902921558462036034691658740654095442009773643748838592126712636025069534746354379319925038230112816682310212802817899525910026820157949360204783610823871394550275635405389588513487159618024823808372371889880620213269920128617677008820074131460415433195247778168672576216093063965547230745988958001810202549057427342601461337089532843572093025368034940711335124593585085598532413955179405480472350907824901789087082037342394425890960608327078771028696397703362923603464303171397829568857308174834150537366264759877286609333575384248704967574461345794174485633084547481922785763346943021520397272847537076050129737752848873626134859380963965647047206355230131156652701426952697435018207454152773293430916663226879288852832199211427941161922016041866883447548961066497527234944413010188565536940094608673872582966825319198361843782826652768432270596350134102635707027987902020572951994495564967959316039021743716720718996152749066996916424732457447197634303243169609955686392837789250632000110236252559232970264562972360970542000600224920855607787612357380632247391537515625779090269061306785650991332355964370297526059775406967894831004451789818865217311278244963751375541180337338440282992020255342929244917926686605330481021313122652947287271233283598231901521766103180880172264849014816553829854284720624407428652358591826335857142651729533239483245017452021417853694792830560472260565810160485445764454073583889726619311012811264546008405426610484343159991146864627238590913533075519207596881897044622140929963017309680693453787863428377456699402633286121742180295901005299638591291249744796840292649031197287239747461946657526128416379433475328609126731248714016959291608621818300572525529716349720643768624926523830783654632382951867278042032504325898750599209854719564742860154891237487703204050742998893631323877027878166387373046266495089954146795157462542286778689794007194942217880441498574164633178583426572843742626490910548359837691430478981330291542268048142101834883704104538245325686121983936422477880167120266928326091314346428628401388434341939388312551239731242022857854361362869319034122232243001752698265556716720423960683471326424050406126224849063295842725818709284568407241921869537716136036437174798872908882469127106154961621532141231319110530381526650777291442098026116822651028876078268144128924510980015149983232013221961319666054985317788630690962094318286597365294209451197518152904484881849135010847102856007613624759122395414699819954294717462846336843905372777880685639598224732678014139997414067679633971265483578739368793737174897164109003959764583640824397486545019794962984258001683726759264672434763135182483616711518857582491172772643336064296089901791896279763446147454239912446292243928541819799748168859290142572401537201048520710183002818351013069202192865185345809054596107761637659541552883271520626051217710079873010852733721480559945647699562460072239241453106631436625232955895806834353882903666086339399075165254218353411965426057738697100605694624688408283679664124379584789230339447426315471213738217915790749852747617428114944961053035863123107662372129024343669669013074713563756428720883489185213853091690683180909571413507249168260558318402894202054181344786495585728209794173806723452567574526091629735652548325480392940770623062829544648289534965671864174993947717371932698546541282258166001083150538212546617853377263222847794932772819226857833689820957555044376806962787733995836616758533339882032773199176947750783336525576551638070251711036439302380957139463894248303448918358011055224391025210186477511529234074381182418542107543087721075787037845476216449732972725548518387803206654005565788432552008311605421226643955759329290537412255631187449711186154138595829058052377819378784991092769184161244208483277388853482559395185146008771365826578298317925056416222679715289331241398055769532070586594513015222029545579063991741514081103518552135934054601691560009856690776694524914553065602374145209484771107159451313010752470318126900824346214383175528721707583450815754896145248015548944764744265326819626224551570105839254271836066346611799090731857777819698254463030998690493606648944200370941630730720368773114891999257028065479754784435522271024103060000216377268746664728441163514644986295020675363600495077119568055782270310313473862642162101127271855174418538196255419080495311352453892301899795824714782502959100612572384479552352079620868144783325060150929502596601929086464940072001381436443838479091491357468245003674936274515896088984784413963059681505261064610110324408017718151295346500424089620824525214314814962298354996373170718565016841301815285201998997116464248741345078033034587457678043093405696263725894315638941700523946541135620490456390392980993608580554410567157572213075621272803011679459532669495988670412059507670315845968489998342147656466430083976324075540721834331938084879539646476748077068653141268042330035830829497961610826112585510676296330763892672421014397261884366234698458100722156617171677592298614699583541758226583503161511912202284287417009903551644713478498611488885203189266565598383552071691447395979554703367383644925464577786312386458212391082095526383168884601239128885121170730632624177049063270219523142611788451631279205245385486887454663338284415253423093142398779789995419876570377884688226577284337145166644139056845576622016578109692012085784978660020431274954572598802667704922040319070364516050138044972787204274452428133545195754109293142263482921456376029852872309016872340440200152079776614621013712707734790400616769689729115810986953528835081632212350955326595879860439991368928526757937053749335103640565675735329601047711371538993851877369377674888903326472960247355318815734296362939295109252874875993312492258066013972862480970156156796642780666069212447832338613214894834801067212697844966268255833403667623818581162294828310345263076966134193030054430271624502355054206620691198607543727060952332650350798833230536431971478289806871167182082811394296678963783670888713344218583859035085685078870247536417306985293629453824834681439016162683972760997170323558539675157850956995179340606888828939103054114849726559068377228421202549568152178137677420534438569426583988915782058098602779053469848390508074502051572248274407095793540454944539129812529260494363933608018446871819552538751571177494803907555275652420685800200213314813801718676735170911659290043000436740708627192035941168278728101336488054524646343243100234412480937734475727775106198451648211609923967680482092746328764670985630192931480357225449407130567575085546804291940564491388225700730449511942625927992468435943894375288246388955066748127500745421973945664119315911924264809290948888938708876156579611548679155764041839151004196366404781021521602747427544889046403281285205730097259987435090235628106012524056943044820886975784716417324003615144896338359658126554399141413240438455018457675604194359533533689697817862760857377127633688040214180173136696978808534664977945294848474830016352242531937894393569746756211108777320147827186179250960023583590534648917193556579651607304308364854154295221408351263444931429874175582213034785186509254569622737124336746042489083039086782425460711556000502434010960363972220994344832040369660563695004805176303491370643926201612434317949889476046556419129502903755718622092574213022063328068381276400199115835018695250369404945396624205688436037735833815426711387920743905864291669166237729391932484316101978500976345156072204653749158331136998583420445910149623063937115766473837820214965909114343148114117104328058157736591102099220835989475072803703335362118953128301591471515572612026566951749886040761633037011995087119775647389303866858293186999095046243465129213100298417808887860820530428807563381287635800444434514008125893166257581047831239074028447632744813566804167782843032176150853083213514302087313958375523106571201016438408597362389653705596707124066656174969293836973086067529555899392967005695605732315642107429768005869986861765047264234154379213630251222798065744536641777412372425179434832040089996827308330495252410335173046010332910345226558825240028508905642189612451830033212456054960955010271117407939110878421384386792177893832240403859480933132915461794571660140685206198438103032138900319041713794453863906539458044127200236241597681094653405035315369267066126423676968839443913025987484989045474283150526711296770687691727888894712667340035103613101127685503950685188603022314391337818488137969963693412603871798775503812148481628102189057479834440747401242827613327300860401828807709050737864337882034045574224811245758439292276758476988180746046546434334372814051022234222518233208768540345254229689262002669450125829163659669018329334648791379455741298634858650735041353371665645100779057369065653916440739593477090500622799697065446012664319612703960078514918262564406956675284571002748184677852155821168399355900875611111203652390239735288374653552790654778649159839990542455271637575442755177901577518169269328296940556740823323094458023554398705028449871409923409539443811309478397730692132705515781218546183783474372529924440265668780288108722321303487044030511488054082649821352593931836839445718812690798214149943279999398409885097442162941839307944973716529142672489656478295603780954958435615206534670757681437459500717507721636942029024943278964971742520455729997744509831947605136791513694219740060318248314246587521394970663161252859981116380150107289997226154910001517847433420025428853081541200126788497055485268227630098004760261494225528475441709037394896333922749071852916573751750533047089464605014910196691311771119851727332714021489806146370800301753325171933851831911616458804019262278193872810828192017469454914287768368214019438569085338827387877223877519195833053146032869620104949900814814651815252922575338586442588464787623815593699756843273236896464855889035179099005150948703641437243002524829914656165973932446457150514935343901960541818426927433551093169132554224965601948219824346181310748356674299942445035092883595276915962665553607108907922989672794992564743892621878488623017275201003406997920354322717609501944815880775513990959067810540366198613713300876309316435088225513514823117175415255061190071124679540249426260529396366238408541754255131680805295736059655764756820709311073362630490875112536173763019356024337130261439509588929267132171790341257807238717754148366455992115150452572186701618419254297693007126735391309539751560256527446768736954555254407166287756492247247268369451655551526018729886469607248794272103195396911432324321700135135771651292822077579293980302113130027071123743354272159015041937828105147580115529956979515836478264516804632013625066447237584043782221756282953519886128917798322903660417868557496188162855373469624444305372814557048776130902628724335492492322473973012051088438147046857248433136730260153024557367158270352008132329058346046290971412043154059156649743279706865530047472792251279899386743591631642768817557398785750754503517543172452960651220606638296016892651300217493917741104161705388470013569046721755448363658932706487139288753559554257651700775678863844307370354463696891559816945169865592045784621467657481368086284170238375968478619075162420316836263696684445751908639576984846212169277609771571511630672583469732306625615420048071309268694270151938185738288795413237445889737866621113649847789354424973111546966696822288562551896139424949224583603605002556104412276766083544436871194097105316829137540003396010610434197391422587236039264850331054735405884217729800322110357150122969589528865110389301894950243693431011722213117193608682168186404389821239943303941409710949195845012819654007546192063613210310679680220589103814582696568259760019805198223661136649794350244123716952892077030630873837098037633301912477585506940851948383045378254395546167859166105911337353464169945094128413233102207171734670824858185436152898968241790086395547050613034506631132292641430102823373392189747709074936938091191256431512806012706272163137969234242834271985871411574626813627908329494771988514126707945649056696716376610934528853397919419699737383495167325873309728858371437933528045518533539165951500326425871067185503278675156135999118737062847116409963586071489596595018223495477621916594438281793753949046141133055284688799414228434974300466554135346853498577427637999130530316117873243157009083274459634432610909900057057104923520338317300249651736815353481814233708987776369628705714203096930041621979664916379423694729789383355317889663181703900442880729802523263878778046065788693184520427421523416510217207683636502987329740080036796203476060582700112321821408559579183215271866850965048261338057972082452473650189548683141565552313466423281348291462598360098681198785675674588907059198806563666772705391798703941746535034862339675394709944743787042762032961838095152488109732045168456264794354069187312493042267385801205896363160466454096682702903601683544148006892977102856366788197099988581952794205155243061182441537835959650948430043217934758002019609054739404137262492877449487120308591577005115931758793500585816684357513032776814787117089794959506801229496632956373932190400224009786955945627971837345721557489293646106886497903471049303089252585131865453170460366917993857208403386925915596417397816779782637611889519447449787703898946470543966206448668864169284343877578676262636164684612008381088072586810120999396228465097424280308030916208254497515014345499548280226259933882388798979151128694573839045809270939570830968778567729997585858913061523056198474333684490019734188649229117801433387660668554196747057302978060986039892876037164099499275096023211669259681452668854450111823571846974234528948658884622118916031603727188248901740755790409833665283223290609832936482648449369475051933031212911717606629069904858189220518591061191828655832240499336840194119426859532680169462048840559734940151120850999251204511103540402981880014063433434637258194446667450884641412103968992192869826283225112489478474469930542019979378818933767440758767611266774646252555554673210924962606489293784632586786139440860104200309509586352061300545385156753514192484396453847396913465573369363434057142347619231903996003665177584100930119156608491089096381018606324786035724583362848413710455516350069884594131938346122521050862692001634875420455011080921398958710922771988453012331149369490963434948839279578752483797179623935013118107870834444498847502758071397114047772370126155410256318276325250553754256744096605872793306990245787592701670301771892695938955355596072750995572000099090329729473355382147781238847266258384932816503682842128622183050460104902170161259780579240762525287682468679665438244905787820054306030797110996921965738660949450623985572979812094734198421981145054098082256891204310002622390992018007013113208686640348812454032594304269705271401636242477391091886348718916546454072442203181833695168696646684769637430714228429155738267967856438317660597022098797392985124809495142964782343344263635984778058868031613294245553235250750046437562670354034858133842728961695851269966981951768791878159479867870964043232893914970501657944546458648078759061009558414094355496206893863318444965433767172850738498225751983809692583336119501428456607110955926573252115884771183778711168811624252964795823636444820360519593568849394320794668580126463164368878671962568435587035119829656503304468965763864450042728651040379891482707077764530294543959444784098960703124677228697611133739355102965682457403390057826668158205907127705089445606572043176642655051532400884982716989324159020796538583836825841195970084297782888047170963889868968663594204263161112915987805469752676166516885601245044166266330058483898175247681807045155689412274318159715027159772664658813878889368621400495497637076264049860072821878755197603050187198677065817631870507499558212853737860486450058787268899881507343237407387592516556581113003841192265967446872927981991795774040069469191645228281629445931920972421914614279942446719305105760033087800179178000298389443219180985541926648222479461321074339571881245203471297041944090780022047534812435532813189497651775616202158100335687454857483959320764713404096125411137807403502153072883503232237204305292211869293529566869652057766134926904007106855742267786903539817687605200569637167185838884332091694040860977795577129080315741289269704632594198797912589900177054270961665445433465105248126200411777010135585283511557750387981160554878201442026006092885712159049971594641616109019386031254709972027603422527088227818703491465838043792914449112788456877230560009036264013770166199769339776794966552364796460519014596185657833042842726544626142540344311021544103027380763272393351140344476203098897562509963460252033395661098323247189736187135874616844248436658886657075846302003476732571285816461863877974745719342244046261521570577237933657247508533772545822565094345662055770734866692497094301952708895026837528908434831149610765198834959138937770281302867502524876152449536231897923421639958208823783198939947752322576030547583536829447109253997159507630450548938588052749213193606394470573796354563444512250347011459621698727194163395060961743376221726355069943113444610834923500513925233192107423712588482275381099484720721333629873266155645217273102499198196469369874507942452713130033079137660663126722573241262742626387139020918716073130151254176577453991513071379587368504736057415475342436698884836498521820913633008201794214097123249097816821768295870859836458905307295793462090117474729747257115279331864113869924427002142115058324336400542590741315251773979356923892513394623801653612388710916834493283175925940445081733864739167652152220041121297070567549789072777522383784616246143705832210904088554131698200870412142581067119383689976402789208521931362591449349364950893603846725873425125079541106554210847060688592273203624062035453024800630544069688788964398016838743292564444330690957593041239795456540020646572997253105520126823005849398852096467844221768808876945969046144798855473458592020713554587341059083451803056729436527463569046847458182878523358988361607861049295257400344507850959178113722876994066550267597141541815206566417035373536688792596621279510961892643043432326722584645914164689386379977658306816867885439137424313134730471572131618052832180576885052113537670850474394441190328274272620954257336925985882246207948209736615826931124078494362608405617596058290213219161912379416168607235850844083726142556362352296954922095643963418888972393725426460257955532426460068876813512447472629711309922743606889679869657041109300072286637605701344271074740246808585088223223233019034051613347485436304510698905901195769243243279174914025275119350356545475608686344953752578695952063889428640366917731443263777937361019139329443131319865552173605990968425813050018221292041612467127327413996520455655515050721360942944235248033859002300112819645084065575945651046360521530033723393140811289802878050522060186593735645770328873333489691700147819783558823135042687554196673061901012108441878204518087642845441989899777909468446150185840979419087376279155063992481638618292280044512397369986042422639005457785392789107538016029808398688867174230920584032882074388868221389170149037850896719108976923666023855354594693815882691657211809961832647124730371273026973412593314732219081078944417185406910018531953767310113519461291871880419754911978154304417239190840638531201605835715530763234721200468013832058611740162253686529012191463054114608715063813720761879436774937092919504170602122410196330869018260853943535854282577981506558332184636631711043230502204489792819597709433903662448854622223822489564103240113010155646332219786874823293433661424311396329848778493698229374412124047882531750483850027422017387377628906974025062343938198187816124506351764515630662200075340671501968191864353196312995382653891146623701138494091519224198545047118493171759448065411576793794342618727084751726588457937971746222496009983318054797652872395182635117019069474597976501540191153969793153494261753893363577522032213944158943272404209041277214448178391284651904422119117867922588901202063442476865753904331272691284527841776386316242400714277189203641850374310106541290978725177085971861042514091057899964605876202798826581454966897352113901128511335655088771882248668249476531811534120593668641263605467816230712620437909808391465381903909029354420643476872867501438387374178543627139906315967135195145646782345159675801592816197502194439311922521295483207454888043994432571418240486943084357778031495942684762171484096070900514877675679289864515596273823178004089013669024197035122484869591718062255315143689506697742939997627298444986759926767997326578613272082568220227006440196727610451265672003738917835201376279046281880199613287422032721257466718539767055837462846103105158560292608711314798476244073353123379862946102554441390639345978509357427297593407628049703578245881685662354944567865661467074534809684195919980935955617793719676895366437839869384429781189401915842017739224628991352225086056385750137415867945621766545834157904325543096271191397551763232151685345509228505571723117400251161577328752037581068976464827877183308943758161914732931232503726756928698303817157451252375205029769889877678425434685619364437404110535436189644531503360645037344065690743409458763700109261453102924372979979866504398952672301201499373675884372728322767670671107703018638046094686727396530870152160929645884411663569016370169614436257258616249730555487536149515546624382009793853872700812832815992470253504341396393360310491353027937110791710181344844797421783875783638608378331033178026970223274384511640406445287718690009875305954415116965681102408282578118364359875665298603016434561379756696128961355919719382282399553616304029375819724784576198343057317952747108967662154251571190534571080278578103838528951018668903575009233272145963199385801376040458786820666062101703386714316149547954504704867247305745176909231496050592970328575426133586790483199795659024399210510065867530472301881139134357096800958071185417207014819449681165162389582213648459115923956047463046376361477947368764319698292119697511175530543242638003186663290479857253152212810816887691859065178077629376883682542280073953668536052515605029128499014254189816013482391620418833682003315173294776863208334864445442146165437300047589238739910234297160385841154832106174239028820998689323410389921184009454096290379725608295466336464900894813905187412792722920849218718616200293333521456253566589690725748825764491415958059181358474505975261289411645351208785261646667939710462538670261725562148835710814954558902284725943640567874520283285502642852005450168994271637788969720795278262284307344602270699504704887173742991842486587515434802348375093045887863785025744748530942333259258965741005877491966600077714587093830514913231166614155835835865465875539240818304155052508286822050491635350180006189612845299123703170416953912687049113269114593113705616258138465058069249709088346213974736011100716170813104625951255247186836908552944925759026051481645177048345495401044643243017040884834851073992814473952469709859035378391433955464947912016862338302476792263680264368014368148013428376397189327252273931420087985645902163552870946332010494588977576869171269922635000327109367702649722626713121440789797420639422311204720920173390994571350829808755163929604196700601737416387511943218128112600852591622505588728698295621170117361783135740633513674416327988768278436404596478054976344398021672477979737596476998559358535647638641057304877002135685496395604974484623763098516358689056570162415048787801823903377029461644412992831229787046449917247964578645513649302472981501171869246897431103674605652425571221856708333688578379509247550389866679796735666621430689382260091520721096819965917005827295117756788016593683098918017906224850100635204445289665675781971501743808578887859211236910222663314227146922952669505186354420786420560295301530088507662358635570051276324433303043462972877064756488405058739497483936790041899142777662194041444547052490472607015809423199037723845334928970492419572191056216234167055861796581769631815398284195174976309599735383216246245093739115127801579968142921843103891958781603977377229257388004078793492095832910312952441891286209014671680406348787175079227897723879511754745841493800264028414250173186236663839805404859268545635735486189190503423052817406466312701051072842776941914852112707175372658800683759891275569441674517777666738383167660670895086627704421770707005562492888127766247478747827162450430266474005750377122314923813951371503126018516514963178961644444061301838056347335613414967924490653088293514267012211177463123987962700839094482015448167799345543265883021229771792257047507757955748269702960290520471304698732706895372491731143527661234984426468046558864490240818580447745734242425961677327588111358963022839694460441292775631014828899979419920766201167922059434005712547270234449725947945964590064802989217110545525029776209847998044248417083364137340073106761584325345318933645376893882949128077563034243952576229642243861125220125916647826254855195856619030237401756451475812274995562448688801278909755624320005984454442418407147360551586838981763419230241999905559008799555309282082135303017647156744485653585093209186949162486558195529227529060399490885405848505275229732416811211601178453165516093351049254849086288638586230054787953729633958111791099593100262841488202695660259128269360440388761503357755627291490091601782182161527593733582636138006702289519498808104958134814257902159925286969455997080851911982376156223749553629769025241908785770165159324901026529782500702358987211972453833278006011994214303377301410522439552273030059413001307680335473421647935542690402677312263438672041848383108970767554017490837633357377830513150326252087392467464556599269506956696242794750324139986094071360369432184356412807745779928810177629089535355393867807244201582847980979078588981995802475912377973592070606713512403644194363531720231257254800734533525392216236280282560860360898530377577150848851237939351885121097829349489852646595947261448353188862960617796871585814427818332699672955990397436252442887581641116791371709719386688304117314628294538427682701994771719251065331451139408476848536396414334564771166029097980197961442439655588284102623635196865636276658996585710481251674609953106369382852010169457871988937239519223324967661890949898693852501226374826251869152362365682387345244338990004942473938872030365268862867602508876859248701010090970041157570448393996106627623324077205930153904427905042931301789764400783012848030413193827895625427671969459020762138761179937095621007401446930831092957434861228109488966796095996523318596466127215803760008723294342154939149608687221322253420764725303157490529002907876401317955274601392586191090768348944761462367769298388445300687760522850057189523462216556422936702815836135040971645865277319365545111988925579205631835413210275123762192172212593329416075189389624840449699498076328121536139048660672873695502691347015951383452672279136449458632125936417766964093786130383273875529146553063172297231563940536516021878194953085721725327164050716847727601079300276409529931864839450643468317154847826934156422597783671356289175582300492539197154594525952472655136583620760513767867159809016161899916194651714976309965196449411040221661274805254219857712074147882376297041440585020086461773295107180850581538745998572933102406949882569663662353609467641730308690086649835762282951185116753879325152380108371460948825201551294905062507653045064974901401089756552649072962293359708382680117163766362666600255844303052071533119222304811203921380877711606147181561581439440959950016902144608172099218114019168657520364645240159544084241365953874390471659758205110976031000347669037850100401984927294096131900689329775494432152810374131424765832014850363143995255111400720640340471036091793273019508820269857957803424439226568880380118947462963992221048417787775505992775702683594620909614243198182915474197817939827887603966744187036033601460421496548680102783821378038501527952801215788144442091921773781141205643562358073944486031452964393138667456794523099058748634095103710293087785018742406305872876848911566142021859556359075047012273917725047511382758165749675016550530766358213801327446637426866018065593711525094755820942024402516503814057047652392027847640214192826078404626815745204871823193955642093467678987820541101381681349881903806620957255248830597615812307247677967542927042404790693639421645295528610293081517026831256851244578829207733120770220207900727701734093635678444352662893741381193805250074561343941443276524261271128975755892335430770412531037254322257141550237833603918622733737315094263905411642302157817573734059667307458336073144364386486228957993302819221751538004780863845808329287400424486416098651382250907516780047980668628924211914683157396479801353453706161137091287244681118748237563534177920059984816789364097947459695558924473870121395344470933893953325887364960020340652361099809547716961176385106026293316198669750376278526808473128296714738513305887480143305225779024189053946847146383986228620332979578376103017008018362050099942941203986244866571725282159046367963973034102100776882070426745569710065779053257233781035881430634770718905995885444974931468947144215098027632772667894630448181451099361791248165985606666590775367337057497315080813637869391070445286288826636119473205912523114857672251782824088798496049629829557920783291927591789314721857632153057750582574805816874250553367450850375784164705965526759165836714468141272049599498406904629960090859509294954003515341761075690917211749966159929506393159935187121775621655350045288718798772737385542324464023855806567373745633336868575554722191845367438863636989750928785064504079440391204666616592070631813461219353485260874084544055181369710297833330739516084401552956080592074759416976793302248277137945382036187757956247413443598540866436241846052743289293395745658968513253202234643687688336074866536308757587043695750398443533118113581125729229543706080582330742616906206916331423717320500284999772907561944312445006195411570728297331511618081081388946256063072016651286478292099204553484132012777161616239114825106408079208008417143291961576818677764071459356571715592240186061647154342658490098219291050593491525500966616661549795183969189761185045657026004452737301550144144121223303339754098207754284707832466422704687186246845022532691945431290826694522324370180588504056842615888016035276010714086269751507280156602229859082381517548940299511806571046562949641069734787594810244870460537616009345538157291540198817022413333648481364108502064941799357117642006422267511045776028324719699267322314003255055930020300014555021184522809537355083429116027183987872017748904020996169203770249181581250089615661198078343519255848219440318376751106796650233000879161430665363864962485582162977837446554181360871119590464658273599848371732647897126242033052526208592122321809646685314405519930892184826017438281940664595596515367900175570275256911162267650488853118276326762812637498208543361583207987797565652626752592155818319825779495552812936689005580724243415673352056003852823795500847037763850000001452038206737386079457549533604235357789722758468802900897563523061743004811170535846964613244016254402767849249577812565695206602215913537959704557042844349195539289849311840503310743654849201192336212866508193148202348070198290868929392351032517184362761981635473784815087948572130279746438093478267155675856552048448921406179825098193879365839799510495577121672229879683259469681529660866660787212148554310998886037115667964760985798487193220606164688108077682394442279539537091415929292466422305624866686784671587344167740423677373944419480807944977399024554350881885669443245391784066890335866955860068029297752004370419188786002993217400814822527498656840619595902456198828680663664689316389943958540906092507114032475051048601265079620265925749981259661245317563284119482855414893300974793972953096838559874394540385032213091750991497545685224511895392201968103447905453304763022927547067763943138254067115139495625494246603314877788438222761108694387828057344072247646909293808157827548325094941940617465816885713389907860161071950871692224613639287499866677775471423497652744708593560352512195035344476791748240969719502985896232027184985147980794847502421995781819572988453217971807273364499784214332301793582827899927072768207318734683448627137978885411415786662555765361097769301507623607597488285536797235200464050437010544424981125493032850974099217771931285728874928180950678272002604380746255561879517663816765709259186898882686290310539066392385662470480720141262464781142993807527065967240252285460951623123131726699975732197363474707124470508525176701726868777318750878522337621458516275996457299901942659175851188404309340951927115432323333207583213331604884505510001424043624186129204019050244743503902716483038639524886216473724595134427857359908863736021121549430042604455833537828192512853425321226022692693495758360102072074150948570033678032875447419456124567716714468691482356492937594510008109560769893531361517112871569736995068581517093151263480491079593497160489763520895086626109668468140395052032288947301643407908100783407864517019274036238443880771513661375471422170481079202175132979665474082458806847013381378571155840686329845534848668700278555845524771664221968182611171409217555684962652254632620548116264798762125561217320654217663844169176336717813507504641290629843801848615772701902315834410148665662598724545230750964758405689480301850999825554817856853436582916605320494524884196835602134388871482758202321940765872262936441066357148647849828291879982982103819219813061106437561638328819604056216831319438811336690826605642776951379393531643982283086025791930980398787402611277541205029387097625226351843971242299136954573381738894297289439988032131083350242191129348842931838683806954481656115964455601345211264115940513948901718642520430409930053620841005086362591725431430368081857197864806323200309638206144067941385643059650604588940730556756284591100107004753066259966294009289055297034113931866897357043818602188459589887110409313443764440653275075132498583478332114931526040838927582676485813927624340202725911185495030307533014259745001704673988216768497262389767712984049903648722246262317111976350700954437693813374912641433299694633305742733660760627162127429533353489943456990049176567021901075161443543294245346674476511505103961786997406703895577680692003328003374973462720904073471619706923739275205957807859678115036615304483188397951492315972811583269094922727179622950715099054600419302666231253397886622646705999193348282818341562114157011838168752348849186135764519703302462862607539910957643335018849243786784299794341203968530398163025446396707084557601456601851150924268083622214676210691093042829123576044514570328831605211911647956734358055523212277476484608612698445586630935121425842800937396663286356147260676915759580879167501128746721095314661455451096248490345033926422680729718290829230605103780992851653409424647583899899992574956494153228882520883486610920827965864489073103534224634786475925386530806507791775832926208256466054188324217013210111882478206217947156177828848566875389150004889778945956434019374120295867794984486553953561188840976922985976529744031935964656833489826888113593716736757939101680023817205141346346611550578565899811052176710308202099935756908671970731106954675664342407775608076622156598146354735007013109112589633012078679907714693929958522059107879336901091542060976524146152715675665796950400422718703020667057893827606129612749414783690402981719891301352930527686498532867681350646044004381436840163329699023045383739636972203998044449401442504081613023080802089802008493622047556648907700153180408967017015601988880141158136025416373214254404364755897947092497735595787468378335680575897497698143147715987746017106899174203210763420520191971747397895009676388625352441127113998119067220002670709520053246171969624443757546603393204500630479428295053332811556075568063154269128718517450103394766679066661371385725058921616037647198082917273906670678669317476015833015254370228506051097020627045983298759305032674462724643155457893118918851962230888087863305025844409924669053174533467146944860084332461663622774065847244663503153670709873276246548320160617427767486045318345079240425285103923729453522456282629672606161466323099501928496185772686855943172539110550941216066567987274998325498343913855002705947739752362377427981781530698323767840583123671029201300178483879831105551433446950871086904640217944345450203019126253388388291577111715355778412509088561153635900151879474986020240211703921456589359084568772802552390211784604639982041041913675906417827774837250457755897569379683089790844304900081510092804150275937547227369220841266045559248562332320298249001116851482863515651408017330789601266441648521160466443998276775632711563695016318225976228559730795410907706322110986824945291096795072534829417344486745534147746394504321492732479547045920109890686855817143115955227258866308278319586482962922898376736549277199801950653101992480317777036990960923968718058035762684301252342656715552866466959956117348805351842512470024265059018517791892364024603043083312084998653955439726737734865520235489870802061587808076974589240426900704158726790479515059504971936233742154710821320151746270592101404956739977929404075933903778180655978658851395197740683734208677509284216754659816845601877243884036827424606652512131851641709300394664655003624900573852125546019785958000516495842801295122661408618863993982313667754286397354988185165769449040660318525774762530066214022750092195372339008535765759230829120529437150210800790055321124780798816707521659898479469762592570284019167622885040069160846772578891132118897446851550334236226720719341806735957430449148278372632304294936547653453273952399784837766330490580995650657164110153082294568590716553613524063737987011904014403813529570835631407774752094729129514652775510024687742910195745039949725947177246388209535841931108733805592557483408164113066634547985842717669129240479483467380321699969397581442671339872476353385145201942866524556988822870884359867682903758080178470888198737030482725895836570159884716503234845387292867324579776966002685736432897538474186742415730895947152936289808771628820237787046161585811197407383209573940902759047774661060504303975741953826862316927435078404793185420827520747825862863396355552655077391874570823776810766618360249011637404443115313984793088661035926593297414530397215384189719855325457752742826825175190753528023434718261564957776869165181859036844031884981068968305696687779148788364954948142574722530107289094733854367635091886857628388624795985646093718598050172867503461969692308926929463377139676073108237583110606833816625530482782050686600580140356883663472762304887122405608477322079738363470091313552098493361971779704117941950752003806784557382757102207897882130650149938301274285193526618560746455697426577321815171239826908401978417914801518160955174863323929061614955911410143975476137876806455552327688618608674408937589906471676447288450429687543155579416452045361775760671258880745902057149168857116641043131426825539175252155985783332240882351213978023368157898439875876844610704538707479182360055355674426639333133406401074065403275694451537544338522741054856543061580506620586664261973312680448363963570502085102018196526913899659956401071606315344215180730798527969766259772881429896900228100228168882306656644211217674390089722378164799835496070931397969191148174165712285849705607528750974031226811075514171371165072772075984488947261022107499016087787719908141782104686006443932770909656836732464822215464447039199977003015424655335289396766675901841174181992367810881971839183860278335490007112410237707648726758716954217894664594225679096120410900326191219530601972750235982979812324533000763864140655745665483899377220939227285307136958736398626397112236256010122570910873617079741337380453600702916133436954471109339937563786433647105447267161334846751777393364122371894082113148094966319078023141375624815352208271975978665172341612203446302668106583706456570481580607507257111438333333484765399563456175531960100196154858996543699927528882783411558995664903482534074798370689388918223005958830019450568697901872838610526419784799097584856843113998512744160829150131257896404922361621701425398070739459263190812628673419822387353988282818257207964459882439838891349309256366253774885759804935368526555132736980171362355541768445364214152341607172847705230452923206029370634629111617525259723042775419367893325852221937819553462985590191128236910597441989808769114207748951863879009753985184489172667920853487861309328349520813705701760477719844447386723321148653817759463395996592222019210304699019646881614749399341952803365419554995645685009092877035574173498422694543455765304359359595470345557497320965059275839503366486687078403761292246239080172165823723221951611845417680285937047649179794515043934050055223174693553031556240107028834245656820764943088742949839190078810186236371493042290885839592247606242998085008625615160739963105072715993129260167096321731847408932449574414650349110866348616170911633458168290942807321750717342259470583772437978920905971055630710771071257172152579844141512365526414942005150379370804730023322106610924099956786033215885570013259359519803752426323700647263172398722233325348183306621345450233979286047052641503304396899788240362675472239121287383329785324613477254982696932753826971115982160408655039001058318231326704127777683237249394106629658251327364419394644726969104991683830876932174370515328017460441494175390766624414140912595426022969158389592000349264520717789134938091540927511173297607723944717582756112054734038667748912226532066165628223099129586167078288641193459560469379157335331771355468287578069966508104400607597629651668964247322854198043087715217863808372829530067119283017549866086171011049458407784769353297739239611733136079705992187294643732358237725624200611402662718298285584054714585100336181305341808531388412309214774377004740798246665309084461277667271514463363709166948697956614049871095731549582793336929964112473960708913700420797194697775353026293174866136970500521999502925147334613457346599771477023975976770246405606198314447130193719043233767736286183367128272817814008800475952517988847989123192398488346303575015653879403700591872540593178443019728534359093531384383122733660396687744889232080165710119284568168045403919179154262615733811431980475552166792337155949790978208553203563804744903621449048543817394187843981408650736186826863890458703116916307633778426402366938221754450608366690191298788728894142128506041710547602642078788713965848809483981585079537139454617849944940126184958417256558666226918774586114118490243288987276500279275598848742290864405457587691802464977564010798565931341550820967585782434587097129350460109339769528668024960730534113373252063621038424070124348127661040087474657459951215795979131981404729652491646808390062130527574096888414025961488672691814907597676639722561651985575504179015368180221393077767309525415860002999397376082081442657442036728861901845653355198429903281906383562491675003375875272298827795571885001385410722321718811468190916423985986684522004308026769835563743054766032632388620524384741888634309484740394296040571604414677965916364820277054205166330431303440804886298372059501456497965237692268681661659392146733841512589601432699549028285725527920083062614660206692035316143685884277590307179512760428734692505697044089398575316291545919705611648572416978522209451763201335851819927808187969112096006863994373314365125712836821428069473741298039885397870065319594967780770437611236225764793141261923348000572963275244045513110506895583351333555351053167161168796975975610455411803895262383915447131648321325063732625676083218317027008351801061110003405027104327580359896389828173858753268780449818864473583869405161286374415230880920273571891189045891600785411795925886329591686418363523113806669210007515914728544320848571926017136011072366041105568622399402374014101087391515253581420911538191479986041332025721979896857273899959777103600189494198968639449767381257468812237731427773543109431632470093658208976481203693801098561841397185138260174752020260006109557721474489828307199543209543406354911340456620083735099430071304228291122148364209287670483934118355795949790691515486126753240953994621538670578103792266262312232240505621874578241577864296980336436909104623526422123422142443338734342106527973357699256351507407405275217790103840986996336785926558817638594497145852241863124706359729804007046864508427162877977954304725153191412938066533033407178961319325198902077877903379328292608000836458920321469647227205339715831696944069237614063541148699615810734676155350363278411058998180297937891744367304048215700301315385946745846133079914638730930298907568313472381570826142554680671912931769776409430198216348936328304654448281708621342710251601327697215183685127567912708087167482109062858253537098655282626676794748298233588772029997679283385631790097893344154913078480470820171593437799775698111261515249761853558508881399945583893566549445247272358263374307198258696846068815049058070822492104624310368825386794127288292899416224727631071746643275839480994198391744404496016680285927892592732621342866668031260445751896465393922709179046990243803440279276921873084723790311452093616549964761668695341403379171794420895346325322303238514936338991662056494783398897795082285047769747786771138655497303709305912688430847620698831651339141561592621752599995779741377738349479561179188700263650694574903266838980932194685261983314548256416166113383921101521734156459364211992199753237239138206413232219830000838957191138719516175945411951166101111426339706073073816488225618492948055010027723723324469514027383284792956871999096520388996010643784169473936816935959113426810163367547111917575282407369092927821096755213706062646772385221969801139161873963488901670514966681903589530320208239076231307032045661123324072014267872131695657833629940238879792199483272111598126710108000431050888408037735166508854031726816762587588867115974838920709461360978378848083703753796634579651210079108851930193763438606080361722919643013006945974938261692716988170085017645657851649657012982185728489200758204140407893771013385618117427623381091273558652027526929750697327367378648494357303623448692528398179326267684552358062700017474198643006452233768631068347588230893092152250308318748230746096301673175765380206793286872611236071545681041715630834700630518184628527557660025102856576447827569912058283670690476849404255738029556327516678078634479740132510236173197322526945088462057110539389430968407307085117625784508187924884905228683830452108745032395093544117496577860623928178937428619101469952814900136926859529863997061292018303828233041070692115274254187099833672331322413057236378608384231889516137704379155931358671593559716606544534713648045668806219304262306591768616596690717191660605975826261465459194422709271445766952999097780225713300975591559393286483152844653690139625573407114182448316326157375967543768115365771887633536096457806500373025507780298080511964740882107712489301420185087116720683402091602486861755498612306887085952646947286084059022021141136051636093671346513210228445966165933788162108866082583989982043503013549093640069803349817827268702967546940477258834063365763780243999931565905039494603416211521681835081705336207446731009721862268684469931737607956168441520545627666912155169541079682778513761481855762365626727991904221267813358783533587697694628080462991866604889798500691628628690787750213446410433906628311714728837363815499025372811344255579322080048777332722861966716261865299984947312586436470312025044122191920294337608448416924885339213910452193383235729276157878555280272014896760290274040646622912872083044678245102185686221273618617685302130360043389002491727629695963631212205380318578721469103736927042059339854297126491483414512383502896842737007877017866426484855005578238554867974253132690162474723038870740161725506748236114062369542715966088159507395899069652659731154344356530850396178284368057868638724094792157505505717862353136165490145363032099539251555631756816226306326611075052525251796678703045691451033006340993871687891961418369317932700080686833968133854933705949618953631237450017083829151304160553967295736129173228989403629852221854261385852744971228012540628128211048463091388437405441958672263166948204649996841812472359078857483323057667463661364574508515119739112007557169658148973756681294435087236624634292085046816030409702008418286027032364111915389290273523115388393457510215984885743002763671223832952990229991381907526742972736306337242345547288309702331658856195213664895170636908246005440696747250577611967109795872092165653013251335143580066400167659312578173790971204111906899623348373303294706034692451056465444701977512652724710820154965622552873554487684518919013360870573380798802888913882814493722700076746123662538606188179753611279855933983169592135085929350131668808599016788454684575121249212959087942790276876111838749440224855222734543257295646922513140662676390879772834047751933032551394610355857878913034736092735059796269343392696615802158460600029575376546323418998808507245534351247739273107664815083685352121415294424708314003394035077386187665007223005323142685735721584323894284858663046477312612129408418414150337547595641725927142407324194278952980852350050135353510341463923880159979706311325047136180583991531729691637039887754318678646575453441061138711630862455171407313138899673532572512653580197076840225499376793645095659523626161795531518791252021914594585370819110787536776918334401494059466884398423077548760222730961265918916069021247475069724142898613454133089370533407674690589821399468621871252384101596943618950637232504993995753366366076014764751380470518246006794722418645930894103200270020741534120794525147677735901987560753570233428495881045209024971880206191131230920967721757363551183440550956730836650118001181234437635189837610635176031875042529495738821742750712019801963803129168438268688643363780927858162331659142346044132248227995493057480807122019690473337947452617255275807734309618244168616617766728477305146487987033684838829902147461290197071568516111349871098918975685904699748372947600528747972800670153230329076348266125873439263480802759196581346904592120375053075095976858220712552080516301552507671068350607193181547199460850631370852885726410840591054307755472069727818604811489229639000006867624314589342757952912100901150965264739017496757171843465467967893186978053300420869882015281371822140732886490224155566863596247765279951637775997794165945789193104605757866963985622215789485384733457493354846951006004410895218555373204258768263217633717816469477340562979558231035111800093768324699954690432139021438801671434406599302207783942202059296611297930763348098655170808232435011264803705396540620188141912789724282593114252638708906300070464470091878466770545936021050988278405989993743197826857848470847425127202804207435096138620217213350657754576483207621286769487609655711961209464038594217942443809463778757248818830164679853453321637513296096464280170948846888274012817587560423703945497199784029098990483364756156795615257376759422626655033052026039752954190671702159888185369636386154305451052123244838149595202528280703286487642344982158953153674275112285390017977652047997385011244394920864726470104760395892014126416052779026090255987898262802266580437173608789055444926640035067578356829117504149972620984472606212097914026405960470498226187256751730363601072843547544671893569737988086517240854364073908600922392359845707709961535355549167215643143104679357091359518366105751844032021061790787538012213672796979439275852515664509012365280164473008715224673905312593386303642401804674938792900561481497626352565928695958354800322090901671366233002324184052038136692189240188549851935393862216813851402650931949358438613680786493119791954034191249308560866416440400297558027108871258238812548469665596767640197106701744874424501802144613817396957674104008174030393913683143426395615226280999289101989686223178295977263685785737399683232635610286397433601301111082317105309471029377458594017115580208641605975047876547013326111913375601463543234955077361648450154062542832351328425494380456216055307352174510290078913094014471495201740305984797629533379672758740659892737194684836915579341567635047324197740975119531770362464950099567219460033425284035978837444269750917807952857842505993425230128888093821578041368940827595307267821848962572699285506020170966268417913107298611423690154614489300166985835345593457700875561873545704812881138759541893156299342569470214019856204052550014350956300728148112980860822288332260363105574746947730837211771707574824995778409123671121769765045810772916980236493117685245594422345636196267757588967210849972295197657788053626376590870623268278138539898136792429347672661444620782784684301885108658536352353554370653954764087422629734859341556489696631548852481307251542918928114486201892527182159825531157666791550106653643127392868311174929656019801528080630800393691347301155145863480950627621374919236093425501263564247724632689611993996698525865255466658645936926490781614649948875563590355587018102393533493459652708789624959900443481436938476252653898514354759911676667893384225079654263765471809237203181080161163934675965067226351320014182733373158787100032375973198491035957621321645160972773160661628788322954802725160125088188535052969733765113832550205340511802535654295833652933661529893770555360080936057651500577854291687432027522780675585852248359243700854850604267777961851887069062579360963810381929416543830158713455631271178224452448350911819119088625409010936015042367628777891814519250507262373697428277849820837167347070512183548308301749877298251579976309872498879300150532239924398261046213420466772144270297671906270611478167402187526848311369662897014058150480065295481497191509934469992090298283845845065094026214217123142929138062412293593365474242497468194780479940791549304056145085335537895924861015619305391001376751682475492894822403858077188815030956061898621498155929621082932661479190148542907856312758908861718619762328335610713044017626205060896260344917642818035386852148490383110065173168495841867081318066953769863841637693183966275811820817958336757207254783743046217163202019650672296952175606102023231647020022029439987308619908338409260009988528951314754848024511352275510134653629390681946173657185032328827997547678207617525487762428998252010365072107747043019764735471664871743687728135213960075365504048242041881597254343347450416090861724759392758557002915603394473516626957034301796818291336292569741161479108160902487701832124177661713979386907432106269937303440597132262230600634468536066943182923233919242389589239633106303590744380389835724057413685123339751097498222285101739948631845341732881322431663880903370526646599004242631787434538460004783680820449766846719024015303696073573061656101881356626894378136612992393566578823470624896425024654683031053360480593005701047769160600312047528040787696705210536393959327542150998354469990918517264418315425420728164576843672440468228019248451024613436488225734859235980769231976430547633892890480118030058761148717204398360897883266065623754773673295582128794965852669999066117604524745537723061832332978292581126687199520608170373572057140482822771753625014097417254481390667237697923751752300110796698119608011488143933797228256193082442935190046799123042354470105603567696470531101220315494970452896479256385995951281890298577949520422283431355650304837889218908348210297363580720971257699267747221873543728600971008682703219071770056636812081314417277110266665445107785107088384279420276469929762203466677847554556212216346011352320105461396915789957742860224084609339486387361604703516014606759696961642622425701446809959237911660219881122918755990463449207822728840543220017085817913163637374579420190549233079738775721983953119691643552227424770654709682299043064542686807117841510929016721252679639514384221269757544009924501813885662556258336218213308946919201114930700153563324270612284830496004504913908794923397119165828732861170108256460687151831981143502347017027666162487865148184670999284452502696014280568381733855532463072849865425394367647543349898041812867994457292418769661632673708979257897848766997809001088237889419242624789208327294861480852335874584136553585604838037702991787932901547794104306091670876738850824575156242022458697452184144843066127236581210772589490635108221234659849798646393781937188400079864427714131617253408588653829917668835195530195748406819019490969079292093116430645212891966420402266153494157354136966630754147611077568545035321975512958669365735340173613211261872281407189682710072494041217418160676414468097074956071193806557467501632915338375756725495998947886996534357821623468336918278314870709776445307801886610859570048056249345456838456233863899532538456177672447745684486114983609152582041258171452893387237193560619767695948301898065955654727810639114865236360781651944235010110478690309065818673426443068649875327463015922601505013841264469548272808880170968076179420110901051555384191600980951646932669532099680574110736956934574632578876518601839867572838665542986685853317125697972683139490904232132911716077658957506974728142844180516065424198959163343293701408370421292338222081402983905485588240911181143932868227012284635042758264119739032248541186208474900560858835777589161294699741937976359555174280594596263811694305133898230668660689567232021349832848968149147301708215342546132594312636531560768930192966807214313871645939660190366472476501062013548141402295693040855649100015187790211389670854727757387967107956595521907080897684995842222627634414089460771474705559566218694623740380478786857386317084445070787269082723674321071032261503265858452838932764081535528181451830413317974291044359876700612124757792005349877693702513589109872066344812870216105758638703062036517470116449717939174481658172792063229218964031558493413611404882003209348566347139225817681584425664200050329748788387592587029690545932035445768636019707572834422917725926102872147141778440660411026191162891439552448281248049128431289265981249128128165654405738582231697729813164374896221602038119617238252983665327278153894378995868049184997310145508600453056932750726314162643656169730753463570998857584679271474138481457442655599863275004745388299859543812262444724891834624720239159850104178001765029655309185791731297570302334429375102844356972938883061201182341309431076313754902973669951007070568828449067053447361233370297707108663374838153046202405051793692562418084845502223090324355905631790140499007860600426367926511421345907715551924435077601784618506830136050378220379613784283771064414724742103592222068467041492331375223150243496750986687415787675540889208034360472445548378307957304431557522110826802442410586698800587989719391184422187788397513966365981926062284031884169371809708245679425802698584899609862214245753624260502217519322390516887495513444052902898082167068144961430916837585710546559678909128393041865426596809703729424465811469345124193476932507041474675404026562074048787614217878449890789267164303549611908309153810295638927737077265753163195107546839870836108521075142222442090740963246377560677915878320788096892874288939554257728003152785516745823926835379321512816710451723214872300811577618141618589248235982819173676624348702648545414415583838181725012867894143307636729801344765186545957947646511276564158071711603603541398122060122370293029027286879532689505413413329099334834309010168668722196205924977800020619494685070771433629642359510896568444367338067226445359296059014077606525248756876732174753126030037310466665111764134741264146705917009060541986230127452356731375906731444578938349240785561347561414269309752755713320155733910354449140182844991429909389975576679434270941013500214790232121915266324046076901069494160730307736144849884331646464270768012394063611706076350439337230654658722636632562716903364631820285960297557891581255829333814866495676805211964608950127415912692559556566229839149749864271273110647069233982167509827158865244547784327148070904158822444986249572626278707061201962417537753178644588712577928259846455377064222150464195365345868585485922788307618952374949207797182264097195008763717521837073506290797398612561081602495165018648732606676226618650978652426467596708975081296987093863473773678073925127975148006403514296394930874119499274611502940505880828972706160320392889425163898227745150863725991079076500669200884284794778015339360443760409606157557259425772538137135757296208456434745767576018938566083453545826827059324645967188163945607032607583153640551430670660338912274711029959475894545976311596583646624142940598557550617039377817995200068612440352948332299029656207455771604638470529546252782477791526105874418514780015352458459131099464676340178158294043016378964952928436690242594016761155144719674126999620422343065883306960894058946417902055741747716656198397195175164860406960869908626625505326928075352671146512825637770413625903944823275817975454555296865336554371832719498751049140572384860931773014482724252013028172633578342552674300269939775991920583907465942554793558117826418507777574575711216283814622598676029198885161237661476131690574782348419188064697815588122211508776319288736973460434770136053636493347525457538211257229291534827909325949607435425941792794302210423798617233454492444023093608135092095877606943140165941513979220308822859628825296534791671331375063455820246927222206505907407174763393401005179638480603704247189916716909619724800015821683523768469687474955212354867040727438604166190639821769297889063470194401159507137860724825111773230862032350116185369321943333353733596891849205110629348671242218005088813061285725752136930195657026093126939164246794450678387733425951669224508465505946271459799277504189233634200661280047815025084135442157942241743752366642748019991596049750547573270135533957407230312853288299400799711968535336573978692348966283962057747405094985996457288192937108150602654931800029467167817897210754840115796459777449789840157784157158017323647025138722754685612841893155931421255841914939437000760675006756305862235676457355181525008246170286750474374398989894665391877774509011928630168497771084980425868883179400503413606068912831000038651965593715944858237760243761160255436344848705988020199110113891970245049472913793730680011221196008576687998927685910227824295836841942565326278496888598922717176008451203355607266011656944741341516906756109155303431582444205514049270896870236772096697236150041431998098920598659017980085030616632250684444126623473760779099374498234160142237115356737730132582319656670142973383234019683407897428940595040558682564416036438400536937621155310509987303371003410119608796407743447963606061465869334928208334817629110207483991078181466262489145892646550682918749043815841370887488749679483156461829448691439549275354540184583212333841742984134462110529888663735232901395145978800502462436652065396198071013874712876305235072483334792184090451686731049983455269502723856995220785007129173220408754511201119042278067700610257817163245909633636893510011066811097585424190006838863276722173290590016128005786096476784252154724263853835058594689688825431062933204796501810584831148277649374293456410781175080309537110512810854378164401752449732324834688043869866669725911704247399446459839081682094141191108510794688601746674788706292647279224518164577317655007006012239231592325174393270804922512266594348000368535692907717067048959898108594680653533296106211515533632581609404284367858907634649815659140272551582699081361657166448739472078220424711059501611630608337653582778828540348595216837017835241008299174924355969010263299413060444430061201124208235637603126613981871621882168128178473723267291439276450751540602558971446077951167977292379249620953532007426868638533409743692004295766097565228712051848993924374747326198811120193197140877924956316456477454491979580674395306657251495025010715552798614780918101999315201993912341894605989680428176660628128638898025301060819103676858162558742696336195922780446310839678698363847383976964859044402351790236395670551765179703697611249401190383466939299616695685960325087889315395128373242138247461969540354175574012025545783742958080128273173095170732991863589308098201977572908709475164249198461358064593420117066355856706416028314140331648769218469633965903287504121638611419845351212176069865987630299571144692273899419507919215720114886617193653493245098749003115746981181502510137753861258410272161127671536093411741591639290944286505195805292951550408861885902051238006246671896101503105552554476979973232561582179167234751003834310696725402972065664490449315285766279239240825460903164226354920795163036733935719115116305173635320767875107771388355826835926113172973106522245746980312273136022751308889773847556521922146209325751058012671196859484641953209266840934066649495014484844371605430486574266326471847094812416381300100169611073133617128608086332739518267011633688278681161545372432285013744365266183822641548467560943021540513787309337018093815748820055017916684712757070912430031349751122660733079019125226565333272325571852994800440758134856670432196353564155238837636626927086178451486366317199435439051231673519825511299968907243426528249288869142212619750536557483730853114927044112656905352008406532452738272633414344894634929231976908941701290959887592565644161686960054772365003537028688437455461001754709011498103532253038211989182732743158990951921137046469824206267754609687830591451560253162251593309433398616499650780847918028298809060076195861215633359892291015970304797698702839892723706119009921390439644670273073219510837275751183538579306917870370658812404355127699116319254302187527716797118651266069197120460437563152101674001790763525542946620255082808719251485209166566602757867301198319515518446172649326122412047480786583869842182892199148176463715943094893566745313143099031217863373454105599200162075109801998611000500223523403345361531578707486894024655475556406524748405787200564186038180774929100767328887419714835593156426856449003278300377330198079474852523494990709843026224108648054089828038061748288710030653993600514488566163406072063029693162773484690623411380303656829971911637256523600081295028872191759731214796463398198178243901096531306376969360506141247349749952661147450090131477614607858924460721656962279659370747890320164311200473894394138956873897060488971325344378229221173528566922909946301905926543029823156557774592598446152438729913410256710687161748667075749704499769433385563797619573074559710561057100488950770230008636866720500487857306553870797262692291848896081957248069975120013199558241727086298072892805302420346203364018371936691522433281946395612518728289753825983009796820023389904477533891201917857030107224803816912621365494192056086137315988228945669085724341383694627582467955925000963866916723307505535700916481345802773586157488775743495694733252516267633845739497646987285203709096820146069078472834755691461878493482277803064088333507494270426189724162962050334569435849963884443323738268049941575758725928218680453783968928941560328550176495611350819267386077313498461242112182084850425885000561767534738631130045785910996605973594221528190282937468022709685764992460516164805266307039213546561572935027847646179839767187760979806848907289845552345638330913585150073776914647445303256731870089603191060512337225898044750076910202179016919847350006653603909350149672154940827672808174584195885885179663063787066097614223485499568657293331163725705787131380684605793641342285414019806164377544636431816139105390344909894815437860392828268140125318411336215473673263708948699215895369739964939796261108261120696620727555900695247067236308015034635710565030301192665975128557928365055375392886935591069835084453914445968048363082974980678778365888857012802967484894907986311238593052183308584650120690515615715626803467102996153320153938263024349474116120711455377908701219866348293156754337730133856613062366752202009047970128667111905104395438368719623713205378086409219776704848893791173941731965532271006313480414862844048803605105927215349270687912796098800896524594454523207663149659274540779101382401843378147462484738113907161458959142845167674825309387681192621165300202221275776958667530547540940969766403508710793824653685373070880927276487814930839103510462117130003420538624502785312674805710152880543778136457349449332531476203797496688815519555409867574864250752095228279311361642034846272348030966219377724517304622527987414760765974291759059084456529627756084702668907951787820477920642820682608150748661962158852477925298871097316098958947007641716254195609098401494816533238333064510737203528589312365130143585170192461831780879887262176515584936954088220825402527000852612446161274152289935150562797341505995982472965412011635486758227951720321574813224052396995149141075772078844136285560548633855478012924508304730570419821702816784525956034870024044831640018433315633854263401674094604634049609928758548378916319389562662927291516316296932024378865035823764273568834297280373937480623208405193683820712088389082803704663641673772377046796618999692999034911359423582533268486008427903701179941742321579526962903693358297862946119985915122290485728409312913246996082799775059633221755479784096915830922820121807885699798887705216982160555208711996030918884716577005336265414658149416410712534969642390360236411617922504609384107546874331400974507552083787615020808728475109999909115282908486107444008775192623805616319764169704649147016949128415409595731728663510473609523291658807848295575071270368316685136134264722403275135690327237451140083072843127946640006077599895284546212879832058579922746831284744977483362443479522239413206677434758672907670311397318631188291525797250675173574196313189425100068792894560191174968373088330278367960957531669395975115165826471475618283013829139281774768435460368373354978888200011099340130886492578702452525104654969360055431646612284456071783907754187425855215477622077742490179541725753327851671629838428299030164276039047377208113906891001186332980995788328715651406918126151931204675839460067363696351318963338832216507989711697312145634083948100793575694646264602914400137825280121229695341700199342090345723999592809263508098594613202596558268602271607838688289027813718186773933371576384504728357633514077968004492471492317417691547562139156491506823428412346303905525618682699428903227795237734020643755809688631330049277444637898771955002880922184177551192832958895462414358813246222201170557996659164139450596508993583978519997784584226749818964750323819276833388515381861707709797256707829737622690736803443168695551935066011886244554565707982161397781965526919723628724135424146456189965730550335374101603496153291360469562704328578766992618388681100263359907795880928246726528608854295729252270049929016791815738424332492363717573093147718802858587955181768689038638037178475644842820114284493056533739494639303932686703649533160911649418227329178560228747662176947386982923119085894337261347756699841914580937500220564748401300109484781288263946302680727136589314014940007716360663526821727675233065180150297607043240746024308084602403576823209713405905209123491909558014887046434627435238412850224112746541016998496694517253650698460835369771414819984193229512518534092696353304856534259725149413944781379699301491022374804224355837119377913946220200882609526103512217824870631010051422012084231198436075352030359913876209781850586672335173126778955985834194166295581074921052856414308236074593551597842288236919368427555680745551443436752464882229292567736961066902887153435735738927328521340564131182948730006312664174541607078339441145010686677160873865406707881167741661878018623644266828149836454373950814160775807717344939341077896394335094352213507305266038299664397270939415654016108726426544566418697007246591177603655593032593405597974915015137620895535630683950401777691484850575056954525691050275016613426758125292716857705259801795173471163614474983604766143363557953774616547590431264888942760018630154981837242630656838272056672521117524368445623125302814873070795334189755294940552611503338095878188446494829767280513416128022456567012173395851356944670936198222183020365633934081647500282701139741770936823576099889775741614117555030573277289739139526500791396815031150007454670464242772553937860044580676565787127067684293335359698143123831187809084420265751359310642657480398682149953520008485476808251193716891211024844897285271837469505479439951630270395326525093919782479713160864667216478484025251015394176437262083898690480712498306190851646094645262374299960380619383681115258818930093333259705745200647110913224485367013197748266568922047050247087630214093966852749884277392456317462069968909386209619569640440991016547016700268583282211390803072058052069403728625892599650134785109773397702918313299749398498365153555607227551826689872009089513751512951814878371032485052421924430409418947806995155121883886586202723194365512045714619873848230344891052543263835406986171020825135857593392851461813729635563743142342671797558059713769661261828837827891140999891468659998023799160615063089609663701282496332948466570246944681929343563913093168237832900602191515406924142729709635314287314169983737210974893688496973632471755652814473261632545208885140851741149493187880807219505756539937874601113536699459056387317218923256490247416948865138340853551314500842032742200469431152409535824911507702077893142122324342195065497778644018406498717903787799235770602843955456338443873512933438275427194380703793462801733831998449574003566071308473787808882331152086780267450330505277883750634123988652032992528699893656863493879114626739398647587087852691332791688194098892601661979391129978785367238473835085144260016089623346075636953787682097900882267618970417471044596618354913211020106639847860473933396978942716293755923256864129472725186637129075951258001493844834550551647101371780764434568641314690185909564756424753420163042080880572008593939083192567342501695758714413306366231281924444851743013321821690215344993909479693107322532028206968144845313760139332982194627743909598472487664940938870188539170214812738010354857504809550422831584406733627505632005131026355063095340106219702183017731523357273479354776255874903061365254214139175498545574601108253065456852312419199617071532682078674864724688393991627629433107039703741014417775528386630772883942302069326021670086161487852764904660183765924238902565282836615825225216543754262106102084648896966889168007324967310495026327314394083871123155295773731441122890414228395120826580988796812940954414271406588746572670801174512850443120242343340242265158779980105489009841218542945340095061673344272497916707735813073139923554829180121814362902079094580694134196609774586789679638757448750342524750624119387938194485751390581720365001827973938009130401960989118346319783530181956203361957602181034243511776339762588144448205566211610201829433987587327554388551694948396150717881320212725416362283465448160169989418426164425832345229233193188889203376512362494959463127003879197737406692250649497636589208414215997127205118034934896671452586063342637804708853917167448284052518085596614716047975707792723966462805270785976838183069873767260761616806050685773577454355102920016338373986773511038173232526108556127799122408837470045389866681756548391486058544480818913062753515227762265383844774445053660136970034881439186386749571228133537632496312272663225810912992008545033269221117551099785042580543584265931760840836471581038205692557127088843082601909171766439690666871047494400497988243093566662056853304806855956521703801644494929889626172002899348597794785725567804039090439417087560991626932163878655387686159040707502544907875596533511757372368449815125855355971667308848306801987431170932929076836207487459903091906752836779872028473870450662857925501243362462593028688219439467522162052278111844072920104633183812872508632263502595770955462507124388454463936956310287386266234430050065262160305718101746157738914870530139309822081779615301120089363842108206621656550801348206415962396449103088578749703318198667082634580147340966619396145429467375637999425292633458852515921754708031277207283945516663823429961533826353532578811161639003701385551464487562780693346754207051388744756665030048238824573147026378544106817955674986964225564442301743078647441036271003990051691712162351585948548337285155045266090596650227262796765136999568429317961182149745122981229748972834331081663336669453222294093554826542608303840848486679233566507855592764402422464272686685100578550936747878817856559860519083990902827918386213956542798847671805098697059824325763531092140243842427499446070658351744250905155008790593035373744562694333196256723904368773131475683034040178194554664997359515651763900891526305313938623349383422885289869378748230094751598984610933708590408741799133879237983738674129585521574283152824156911053377650534087395029264842197749131561367404643450054667265569121910491807787426257750310032979506130210126842912297572335533896273145901974456287623469741352811132492080599687353769555152195011425213101658359758292767608502068716585696018147831689892645186762955133084036558888291994071286298352740579209811193517480482373896033949958368069560533899932832297390036492161694518719686076673075648624031631004686703405311902734801631625137916152222580411600075173951216014906752206208822962514990995688662233365172894259557018021699232502112929329167118358835050621247029200022180923045642064067542729834752498715748894200651193864748032687308234151196695341861557646541540181144571245377643002438737287905138722607751357830645491185697305061319583227172678598075789979431777769750643480874922526384930735092040858930743251034860780150496419213661431577595125146485200918125950887955791200106606096122242407294685481526459690067622464856820691862281172162564895001405126396487306149655259479798690183117008851493205151577345031263047313125478634139257715889495632257880276300529735020950727375875415438100922841976714573079852905068665642340588182428240061232034847694281706237575208162780522693618208615644710785691778251874632254285551829520677960397315322756810144919511089566685118939559992391856514360750261738365932807480427346499842607543071143277426219559663251431113792789144027151178930968325603492357027243349733037920209218836899749321497735616893784772712957368254699753006743282223730706785750760244575894272176041646738539834569807837308890815871672153057514400612536037138864062374531477752909276983504036325829720851466811639721376134437350874555267417861825907715689536499458060663554047785738479629613964876917313875617003474137532473516197950963603194982122542949772472157664451728764673184268049842601899258718385540945715960410225892285378574495375060511901579311328001146140364121376404297428348453143497684523864722609671193297842588052796452849102518277290233522922193137099519608728894799931138306556185294200660925207289879275018918633627280966999599613916214721041617173066128366283096308346762623950121937684921052485584166345612415945129840525309735933976236270485326952605884665091347906727463423571575460716518422175551411750690678088146730349995231117034376503406226023873105926387632765791044906204124610764140480502581892941514342371762909070041181146943311276182883665922130184928960092655705465589107871095078221253815527406853296091398474227194102539141167094199563257012742364367121706530801140489216193461507502428138790154713419625172176543862166039666247712188857164722716825525442023522534704508706762686361786980196322026281720912158445609661861001631404557416993662972228352370983263295107747210171209962835484203871069420674103887205914545071826008788810935675732712421652250432848232065848979616777497014963730959299250472618698713588753397290515302073282877539352946170920299037129277222335746141928114439594304420892189126609221279635213487725027873718159705920795159885000503370382582231275752465374703069667051695668012214691219977328912879513359331611461935140610538276679339511573703473081320034919152128350823568757985217724224805999852302401746176584787161046398695837543358342589039562392835891228352231937817967029899741408601091854082507262154561389798576565676987067254192961802833218259833734596712624199902490820478641102065678277681481301319706997925633736244955602347143541334168294811706480888408666244416154356932418522815667057020565008762791180395033845726683450757908722194043651651051179953964705538413664628875069937669709070481260454630703500261040470326492522428500128113313332763366986922543027041780938665697682452272358352530525968672724072874860879909125944925679875390857956748936561534712216670940597011925198045773556155820734230878127383077494899556868774842791538031345407344127009925117585758376601138741521978884354102654331419090162554971780802878656847905181276131535715577082088600066527544631044431827795332260343818244714539975214744483069843076453768765161437608729103035960983602849918415094675120595386700515673997131353956370169795894501210751960308305056265140914759319891255691386796895706789608689352320710475173080157427692098501500263158414049594851860214430857450993903876471343498183982247065249788081986238941348851860296855490877301901501792211697338285408801317397682943902784974371493803590833152258275841735959388150256186041260896350227210047308074426003124618727783694901500852456731342525392695256882325085406131596237413437316868066768487282430495209913548098923559131471757851848402459866696974372099439288974858072103026396438797645435875075301992184839785191628386299148185787515845222929153098348659243082840180097724417675744337908374977641310708973047188660539607067260319322113977844046399986722558616219033996508241666299961720239282244383674839613345734637388118416601288740217022673388317282053352157815661006764408012777807446390754857760091471247122162699273536179001362662553490006261277184619735415008051524227138389704561282003101275679165239378473724309533422362654174970146844326246885469678846180757581430691052886883641691187864934477780525951231251933599147997882775191782753393694380649572837907736963195807021994693565574512658402418816581701945741753793699966185897558380828882941429979793308606980740079784533973118170853342677378028323553378472370416388649983029088440002348060803450054518172804716455887119489243442731040330060903971849171947205705967718593011146072103199518022343031581113495510822285070889167042294558115837785806620538277627911718394680579180351847568236030492324204582631362845134922511754329528526128200840354242591504275298657772266325861033946307382686084187542956700693707633310374164102536165534862557527636379448141036210701674884175181322372770261470912896143329012243124901449425368037390199621905623111462139340560103160162177392527827481490173163302284243508908980594281252604285302384965569192776077206201104944545814565460223858765335271693508559460049944280690845115578893574784690056030948193188562462063432266121026975144018063437151669204876590327812466055409438154415719653209391611026357910308759225267967746254591612594938310546054037345600211867720983584707166045442357424584417158791194244156361980522107880512282047247363182885542082736407296755222021591555506920796235604630402259696955391094944768670613129653414989554008154829776548302315704451722691589578293841782483561143282794433930916386306682345311787489258139697673392341200555492163121662437063500737946836559514219040795750267079459067567190184404228147574120228713923724144397022057568661503676839272252069962686171905647254708427102210862517494215564407601100002613441538484040670895083981883448726352899595442804241476856083704257719781197049378432294311585854436601393167089704950459758468705630843024069591432174344942576155017500819462243506363284076093209738927644553730803483304932634730151405180184863036060374234074268019088780151608257809600436071499484147990566487421831602299413157300524327933620064345937346038961743100837112945981260317682395436448671744604167836700315022877927834665053614130950822217231069542478111908550197948352550341093202734920852576292029024855459522377449460243814170198863460861886816427955582013720165779776288363127524456020914820241353304232195710669424091584279504890518044992254411978254675722966358192193513362083761754376093190927354451641055059112694044160740861250312299274761723164517623303377070983123416919901171246044320366246213032498453671846772600876290596028170725245224372117680498318130877534838775868022656207902461520544029741005067040516940867993922576183095694112490307779380962935653674772597244034462755801897649117835486428752749214800941798860035159004025635736953057218010324796256916854681205554732399408857196843614565887864826305440949554012995056042930877511685285515201062111265731414192197243542777337534407589472022660913766529290013369589059993748872390146804046665323634210892136571079397097752569093541911648336577212251023171814958503930054823050233846116218957158910944575833002504592817470440035327911290637658163092871817898654965544488524053453839235637099796489869886609811847460017728992411330574529950879223280115518646151489377002513797519759481878147118741721855972398349023316728007046585087497762300971559443483624911364529257808222386565804042531479376731851439970551777290308725027786167849638488441605288586443937683905483783675728926877266091537259065501875177959987430445045290198445299394712436599311820583636372047985391416806898634688104801128310103741774882708065364242417467843425072011410210315725274136427394055830298044067568475274366587123354755683325431696357938228462482435040429223674371427187779006281917461442027388999748904355131992735524693536209421765294115705283602344396915837483748912470554060096858093845334393581694694369471084220697522793776901465711409970581135998252702267218284175857294902766925811906314108981975474362152688434811761018126196602738088901663878901013864339372618344789889914260049471731787107709395559860066803368716884480105121308846439626364327076364315194495907265337940264545183681221301836302271463760121230635570085219696850726505452783362982967612937878903883777260815234102241445767986225485498532974358217097910155625074624782744348440687713932167184324256558324215959167419217142731037231818433304422164960765815986471984155191311948732360441820681373977154319486039878833526894317580772747906228818341939433235610608400565326984726806700720475596830425840028674540689548757297244637491274403481555188540994003943975222690268887225498294320127916836040120154359654014217061657914410001767387946571190083480437052175751766097671383958872817404395427627827087411517709320307245780613828606027542550156228602232758153654336180730018408187906479686359415916035004668713547099718746132484049940108786937374218427086558867572602932152148654593471016061418240692864933792922558391187163058400907861246992561290042210734780358590529253637756324237006332964700911664756678882950220622086410449146222876686516603993783573449394945556888031239834172187833471538618823656770401427683986216929029736251883379747702461792916336528057149675786821039594317782853820841677418189595557774791824040152712721145749516531314052310972836608583889459660197004139772594675635027623947140781521562971134496666100455297750872305731207267272958298493482135971978588300051511985286303389548302151147523882542157959816712403572678944199230046490830735994692686976253565125370625485034983298782524338024197860242093791541814241001923571745244422580612077171527573756371200234369230636494505012746780647672657459234726970603074895831605408270799069687990286758616616157164869838524733469666604552046686308073910312200437350931280991016677459222366999322258327773265280833277118045290688865192922174736778174545607214990155084424362781037361274967692753374159295554425484800791299314998808744230252450183142797578304645758352236810431174521044125873598348934360570468186883408384965078032736107700714968295161376328695938487646872883304376931399898934594807015473754243275746377589641183572441106283049634587818152711969915588031249887878278700295065783812207437191403931343182204344949826132947263496556367680070805779750112363495849261444970878133133221664187130583429286535768440522823444125332722335279616345358844515547301658778633917455993916897719360333807707860674765466836259976920763698957957003192424027571481629405635127233865616074234279076765332625352413849567004524670694657858167150753930613131635943547747176092613457485930951407868783436312880341506669318716809525134186016904226249378247354590254403397295670301167393983909652502114382508151278949635937060643645470079462146311995714519888214177935457989603290117145753679404328230499043153518334114157561682028040237964431473924419919326610027324892069708596898530061803006756806492346725241422799697730103801987177248275080119877313462221988261470898668929440957462622392580274110295378011719842287670095162927434175505085982232334690033538928619161620401774396736196047386443370892130517584328095882552590230781715861385891049828289629571325631389076133640090210468851502660252040674115713897983459891154933905747693224460377132588038871382589487828616942192091180103815315005250265189127479163959267163451849683756276538160192413599892127736942807287862709787255992265823133755416747570629227819347334563246360174919590497486444917401761915541560568473030441250767312140857053126767946748954976279868661253234566834879856015314340266002187903125297021295934009740883406533165839342017103217503931977275744069267560154387648350695127691248161150828842605826067036179903865183532292028064777425695059948284239832021796782865369559687527431030721992608322480422894995387487400941106712096648205657178740588092108740589979894805228588111904174728619963436220899129357224043923140833536950816789035360742919741071967190257472464827374902039474254203472577243289131771794770808960479054569672693739877631549478760650159719558139822962874818912884268864191081362277076269834133973673914639121353153723058423534920241595513771935453289949568144039140672798393918428623710237157041339554475781154825311397022616507250080278152453060816411251256950467772125822179539222234275907979899163783272727668790104090733133949563320694663589953936997814110465241161898485711176477599534912607775609594231656280111182609146105798290016960747847822584061298255863402543226880057453742726078985103275109596589375123990300861178152939459946165342431994084630295757398503200625930176642470504554587152943409237043484780393519074215420455732099465932904613762934851036985593311451674358883347677657672762375140650184509706998995327604921299352633169271583721967852184866290332208908210370919760191127085685838388894263658142721755955884893679272448067365455578831894988959567982024505356146628146547072610490705613849546266081549956149831550932861407627691227392189707176909077565321684708005873392329236571372436091413097292364891928998072600852405144411450568548537017049987713487866231564831837785102931879802178713000567521981900848009791953523139436990936336440511987993878410593753218774924681819866865015454218183483635923873443593962473939944831174852591562525364846744127980680144053789031896241251575568756436305972715492938037264807828704173565000316055459423941158290265661781972152174935029003480688167872473313128657782112167537451894167314550500901454319721846078689772245622554516572450774136371166251526009322180252023814014397661702167938395775508199413564898428058606320617884247216101555355713628647497739658877305687643684421737224239931546882956051582523243615003757370739309577012715075745078889232385127798650617718014606875044213674848702069002555621802832623011508806872927887654270286613275601359716187032975343221430955452399047640511026885663385772085544187825880006760925717968550659685283822057873738747525915968391244319589379836647915504478209581053179679431221758307650542262778020098231809176376494170947300514437723146339412546868113936573150629200219929430451493854135010661898913964404436404626377178156340398789535206244538372013038972487390605441569784019291884504275895388612325342203578310917791563895066541892245310615358556370626389953496412738425141809288244849439407611008530425591619718285992849923336300639459250630783163778034054792504466274092017663158935872607271183435105128730488499361430734026840018504613091073661927488914408175901384124351535260145038216535918329055074951539596150728097316142615251338256870335234012245341181824918310305761825333419306690129811256124505935730632282439464601453830380432045743293838292580477699414530910820082679817572952328275606588366906940355091684502511503520656426537208921898904964266937058860615059107362000227011397836584942325044213779370037197031858158861328920153504449715327870548571788895321625136723040812682205779818276159639171098729954698827260930693096688660303407195210094031460778807062376718679586167477353767112109850094790155258865469940653142541392940500275409443084631246795574163341319340596519326323667348069011338088292148982384482546847428463321795077873532875536162142899048993282474992552987996925610147915864197609420353027514616651158960651700201745634859341035093289572444870039524115481325238318794691834307782388930125820340410689412834139746446141446973920116947164431435814507790446222757141728069816310737301565708373425438634324219395618921589639107030642796041915533172837429892324064987398428436852602522550737439282685345223541213248891733645604820487991798396977262320503714308748733352187103931690819301530120729055316662407424195059093248844847129271035271676043251204002520208827146063093804685960050626351012501070137788943454561444481279243138656435918265530622505847198351806814269080472890287276120940124220685419587473179437153101332952222202784988530903062307862014340151810269963633363904703419089180553109484977645852694335577412514940636411110632355172771690990737610016983805102679106151253139046932335084665934838380250072663681393109084535395249735279563091579985631786939113734954341014030348860602829432112070329628574735806582207510500448186900326612244302168858812339704914089014358767211508732798066888986912108669023722666874799975435609252598167890787924441761559775223410016161087282666262601127404708328043594861584366428422702681664333680845635644250617160842360699960915280585304435417491437392525462239902939352936279996242097807515354328495049959357443748790015768157538967198101371320457213160009902640037727903159000022095257804989919741862684203847925833118307475979877977691040524163270248262272978406760705496871253891781892383025071678817570958537774972867165715553821146491738006045252204311612204602584424570151925513174532413339684910045303681059083665178968763754786635774568788444024183819514790486536742722434934298421816440312826293048705488231364265657808153181240305378014335242573373364461516617491988274241696986143403756628327854552860568373188589619675593801578733158581030085781737292829880377024041411954162825170520551567330191952829410915649165526896274783928854406376625918741640175414093837271308257110683626815537600208536048756915974539381677480639736752298407065104557308431261245099936595962282076840362597562078293723959048385121536557695012352396507234796381619644974243514054681773868311594814361599070908317773050464623161425129820963843044742209063518338427048627181265537416234619203302301825588972871891810576488925817517191736760880478669777962195035324394003970374963568196208401754552721342521254064974936075523587627114192857534391587159607241796498503788942734588828675113326438025875024760197169367867739397843954175668465481177424164581982156027146303198799067433944536386225034362017586306702812481125307174110454489323222370591574306343002869452352184633441962749930684952898992516810449863481328627663697533503772239424791441153289347517159282411726351787783002205225640924412034639733833032341812319124801439458854869379368019383196831000128906474013666591616083725502261093883953989109760787814785118962307313119264621883286107494661818605173734824416630038003166753355347722107616730296814630047531069983758924396428685310116799297844825701188118448374630667178975240398588955706004672772078410018222202818323426455214387903348829606582880290212979051532239945433466404908547845409960556937855096063985601697655533476099556229723363227729902240809318453767961710989567705979179412965559896617082778398576091796788553291600985499517462690234833948585249035588380936309019197402212114641857238937888798303625574393607955700152675869395275918256491442701047078446228089306261155259417343218190973270948524688231242128300701809150256071844818618321135427537781090419884931703271204367344205353420861810711643516843174495029664215067129970919700887009944173419503046848195004705360419612942105768952623980892664110493993667443019084594713487830825907567083723260628146434709075609299565365871648903627930033770630028263426139725165123586904055757630895879975344449853642810721760917609313058134044031035107071699319170039981762718206948636375681890288133349077983565424333403308308280452140014601219706917231349047226639451086050544789719906443053178146045628123874040499683166694161186214360037288855604099846895964271146042228962105783595066457917091875238725963527720703581929928215910361657480549828495663647099362047434276573386707057803038225010880036729507520356024806203655903367881910831295352390882919958527366685623784120674639887736346866030098439468331428239854975862008156489338793902867704672432816891451782175206052145974510345075687582682089065178836794253002718098672048368136961123050664184479253126317339637169068524260104286579838861538036942677602852340812310485530903913284858349315282759961846407957733336871281339958498524815987264470960665653296742038632989505918015373234560080790768855105584336670582396492201561401781321310343759128318029186243233290822150971367930116883142079770681264855540148651339813055953067721203622879839131511245604722379361309550419191292749988841743970158560915222531107955872719969948693623693951926357640644200743306342566168431379052158042570897969294667949088852584086938940712942940083231508795133081712899031178602606186553761514294678786192606715011637597884486475424490263426011183747614614064347927033909827233239570297762526357806849642399177268836580971504745963455068191598808775020525728459295914115114347293584241326902202205146419267872910373243290825856822243549747119104871108538051333751872063116601710010878881972706844183886465627594879771128292550097933614982252408590506077346840917144991070424943225062247705623347554137360589138150698281690580731628548033491511503719108482126526429650865198787821774260743274690799723869617192987413171029077150756609743592608246877295913839963566740898295333659188669197744429773501857296945841527826571469540450342847065219854998768880397932836594357270721499591268736769387820729684469375894203182266814170232508235176495024362149291768067472777531671291088299809072416767148187634149538227109024706838556451424924419834654064486630803626647540179966087934255255671487425739489309817827121586258349650774543786845287916973163553419247001019578976335482393252608358552715814717578831011056385999442774659854417522758401226878139522333145660568471997529944835277793368411578961556428640608704730454591093266276084131001170614361562357418666848899542929362519717670890291868569913122821111746442484437247628378893408089129104124217664731546220845063478628235926971598238652239381383958678393901159604861953672256428556184601051730571698024687908903096785371294819629154723495546046353099581013736243374745163411985262404083588190174061832417263214658966776943584139297520715807714171825692852052437746625041299628099586368769473198620738286165205628969841476403242166235775577522421101564852884953817069298294519370756258906957798039038461132454851285689044868837348346628658236708979726887718789026795147614769748805487771363724874875670105222597892676336687119045749839131628571469342267625339384453320210983007539418443463869251831118414226090462289589880635743021191196574174442499560673806917823456479968038426066306802473592021447719912242241094770428116264878957017957846028232382298322185351937076325268309112003067837261999409952736716883995441200392044734621635201868035234326168080242622709015730362539389879813693749564509680739999896454631933768978842435488273001257483769728310384401050277992209968144734244286814558839152933295415528450657750125064842338177911526567842108476617353617572667676187615511279039476973661381463334405747876772502777767964475049762481238663877343354144375580948571491636276491920153401324782379399842564826888707549177639056615184645627366350895386801919759767998616854171556607968875980592856584347143451515508623098912807326068858675638278671925814874573316987821011936070441212056004217535380020876730748218666481766427499647405070428726442003412329625981883337541429773940553624168230458617217090796329629971416780341860743768620380786338494918390133629296144670921147285955821183334146903891946608611261213299328734264831805505934899433651596029489656129899201170353706323609942591375938465007778163864548609733578973208917797441286385286236261953734825433138294776364821670525072437869234865308668236278957803635084450189982825297264941507289672808971278935771586097069805952382919431738983300786754583810642384640058091126016456472479764598054983361638841438631707198871694614149855953098798954111158604331260851134551073901994946957899371593871604934637272351543238216807200274943374811571715327142388469349285949190272815221135211115385079533904629723191783356532243540238162389716968953250983231282365937468960425611651853686484636208876702173131529670071887699651192870783409015230410043082685447327596109734592927092370324074307037961253509026727811916068686458674399902547640582698236667251274485468667402514069627706565409975385148755057415267648105469615815160817193565728752809066146775185818920332059344926744835858543485894180413626702763647148714273328425642655903095540698481060622279988844295708405471096171503660790437627348138004566289039129078539415291631463676452628149538225787590828275901639509003287160228534790855930365798997419992279486840319910701298848597642102312630403267181309067576517280403929061001795196791339435677701773160222721192183633703708572892511384545869636387964057155977132807981840253774272239338801173439785496327100254435892956478802097165883214446551770296926402221506151638387457388142680301438514888247799128474526008260608444814082536716676149101017304562431922531072620655883193978753775665858926425354067301032632626818005163458228148451163046722266643157130567654975677919889302511169763570110861200582334563681002717693602159546334001224333266808562935352090394129243202830801665279213802425786130904240697344890661567508397886789689289985868487580451217797154960616055249079945633120891200673195526363070427239615101333643770207127227739545786471849484130319410683766045330596132381256005443384630578010096788525219241729899634186663925288976533843451338643070975389495767418140845635321022565712462308569104725487566465613178926285118406173399299237393101826772897509175748626632706027218652020809123003900099328544560938427066158123097712601204290432230507329999477365564869565050817008151354393779538829003562182118917544341143337990989081284169911211766409402293271406820670536816528180235834479909198111892507603518205420018105839036308761572473801740010886918217468493686982878194083487768799600753117405448752405362369933890788121936428717891813188435739396832512947747219658657760586898967717376187018666092941989139823382838312048382035880949529761251731620454040820054008232838588450075349698496414942376492692926054606413645797092048464650108372250616223268472403347558231329950222010471760239128490728744148438631304305695917215193466266577728315637751832228244143985773033194812113027466322605315368861167630565426978025117920822050531036041836328838944121825016279155684578407258456612695629206904845210232799730127512696865329751376381332071397141834024919107298788523906053981116054354910344030436142013475210450379741041611993145288126791694066708712988586845372727731247648284090271210634005904230376623457360597370291172619981299205285393839205279962338939204153978063060499777677160849500028603489598260857817301851233393353869575628271696027914688886385958684074134473823181314479052911425397623856663509567110523743768389831538075732803404566196835687508924448876896809528556723791255902180253485315729291469707204603329595605758150740108484439640340941575424503113114780741502616953902384128750927832190753035165420604269053238715186121153651584568906114713356240383227620748459904179082889558642215057570088398172678977466615365472904009789086427477833455732105657738634694445056584855917511123246345165163402746759454547103324005101825729827172303895303346723437222748010228711932825356185308188040606085146039538019096997355293016245720407827661287604651140583112496482231175968673465559236982570660358754180025395828394203007363198926123834469397262130742720285140443696600259992093575059724694984228752933115956993781828281275015107993279976656931091084619864845631606948885629866527279730005952722870805663328138692583547594333941407262955022239007159016602120694089255515591503090823114238506055200391556353786081653529655053827706343620288937316440134673884165418919470233030494280697786355540748328653511308446797907415070960135793642107849517571194059360141408234827307339834278316518363023537510206244635519797507482141128009629340167065765446348947609720973589506296271202804432021141542328739133464265754716308448657710278714394912978352212301001674104689735051217820829469086951875648540699574558449732951473281334057450292798327347386490290244716123054431462924918326953565735237150798366214066666485385479020415049232968242303259444585549989641111397198406201356088906137541062948405019375835660719015256265196841052559809782550605186235089956271614006728545954081526224774007998708365452815961640104225113057802329040360616600498576229603927567320321685179403630602535269955870321944330466814612841773339369241502496271478655872732592687986689878695687134574837959024629201467136090800095733314329802790032267536411362256454982149722979948067525088480828356004598048734288643380799899818880428094326966075215731066759102896775844788765507734265605959098468090202289677901532394376585787923819922821555020236954237864829912688166422178023867774335428029677916513791699748458167403152913298462767046757065715140228713478046636309087316791766333658650136221861390627552446047695237971075431821736735095616138114887430811824213977626400964193314393728990188995074330422023190153272251162774426438371597993837511001594722809792987503520976848723251836898592094605780556661949321963776072558866582156679852484215157192050269840897790937019976532408046758549720477567193200892008256230823901196075668073218632948570060289288663565049625460976239321304520317413256947889763604544835990296808199581753760373811964955167262158989047084739642902385258173755673646393967039438377769257881576889976434134862794508529256945396398990076324634310040742957581360856857875474945555829639342526215838919342135206581957004209963980919249414820132979802589641659974282278484062173522125121351905268342934978227052429404871212345273703668265822510255798306342303598250538263905575403588009054623696699113454219402324810413900156001057903677410656625095722452878095338588421607880445448277626753987457158790338909028985022265782607588131563746647321640276509191240748571184559761791590230441091934871321217595038650913731992582029876348130014816569573207503083285283985937118224675121680578177235213123251281178794017890307208835229670849774351765844549009093738498438947129524942999778682344914895146350046881121820963103408435305802192335440109073324007136912477129388432348110047127480787026625917409106472560497374546207257494521403210600329438407728299759426129005209678424151636941171632981581921387489069697862696742661847603802120354968339560397954829978465698321638231193671371374446070983532975897462512181262530839868078723373474606490932386520919831458862851274089951154299662798181446908363351106011201066622286271845084990467378475800198178863844474804157181754073289451730195512729461067897364825871636277115954375158423190178289257766626513713341011758085242081088121457931287621469247153685035381756053793282204779922316033497312706490319352920537864579360956500882159833655271595687988727990766320691697303648278088088272865865373875148890982950824578576293100804893695457435216685102475784679610904294918392265838693760037969641991168246454822026867099541266619513704135060131218589698737794215340673875775519697115671988788670933074445293195589254407534211322060412945612586624731552480149613776357897412861864713305916418168498359117223178328294488586965628308270573569799834736842426729712309725429346306842451276089875272323632523687340120516635516501481495869312997264155923435164016277487050960136140346117360717984920887013834087626650446760848465205911860675182340792364287524875673454036817900444071224014579121306091467963311975959341138171088561756419467189313068431598362421908949029042066969956614760978200721455284656471719352881596555143104410515978117629169190827797543087095124045475629995439698530364535565250155751238192167902212136736246054029892723033769401811569933959528628454545354992550123646478297658396347631389353909979202960203882570097618090510892205599647721607244706809666780548583009490715735060159500591480260709123812560497528091910928522769758182834613642382601775485241376568411164996090324482290471992511505872372832024894255330334548987409543140120611926343840099696234506873396101921331529983435490885922493347529403405923655387871258372567132537113640550896237703017878697888746028469664886415520559921747103877998574177715822101518307891763233302342054653214832602579548682131683319326810383047034148370731284611640470775108990214680480683467831433901678811696904568614443316125795729234950661930945691031717920500061208187065747141425772158716712574096523622015762342751246769217383367256824714397077910535217645356103047525177193058294575380157328703494846813379686457556596106526549320575283943308046269760217593846520543793197108798732260623781068224428744969724204840962099679525498411745098940980689032176332420070818992512818402265355252873634224563087923491781281527369174666000381604169787743018053258957967872417639801379773629269313621170562663673634803292181548266532595431371112092745811003610375051497375887285152326951413336256421482778212729150830472957536525005439172689300373631612175356850072898521119439418827322690411932015712867036388864620524164774567052892766280944169846967837307877554860402612822568750290599229888970111285732786854878584336282727278985065388858084655790216279193638365543334314065511154178611553311666319162301189367105886973038078753283393922835779074148233724136922254243715284108658118285365690805376184456860328196039797866742515202686833362841961985139082757960661734833580151834712391052386477366482714024535928841201630290169867497977692697938729128858513530017449191965865569662143352134167647880390429826002286727400726699415338155067132231015976898786098912426454080556833158461275677164338642049980047887310037286935627115498030234263977595525068352208824094261832572040268650052932771047894725536060593363630692420873114719825348491517388839534091087544739387331420247550721408654486396907348711045678544471819530021653230650337288297676104664531656252309077124652993772581355631691097908983532308141939182852985097184776435955413720957604818757866000557450285269070332158976745300364834378961784236155293799006492069948257805767224110341504800084986824246723649998995353112303539473794881622460786547527105995168532053860660926220222725737439683256834840459369259337051982336634277837689017342515613132891620690923930775468801995132948773998419626223403588862243268983199928185217094546338972478116739254752315523926286883111114793738128240632596134111925524251663462044911072147120581764134241283656733822458547957273055550221986190307257114290096666239336193212835307151864208533947919333762387700161647904646169200421896206230019452537085718228535110389393481983847535292296963901478535709532192003827273748891388742344551725544684155085329883825334923977162941080514936144896012319176683885538545041134970999789770559230073235577105724182653702051882532960510132561825271598260983684343779020584593433804268899906142911630622280681592405096049320929677501202033441652536893069283127503445858407978505202933019946090709671573008427367408818279800024958423995196895226938746044898531561489355817477568629124991411130242124651687319529421116076735536584091335027912080534783744079643382517300143103129719118658173587000066903843186652702454287448144169221159771812053061613845126136737241102570852464118697914430477966103840965296916223514586346464319777244824884077206915615677367129010181370045717714817510238506814755505335542174110224277545734479196357094719704715376858333895106890902116426209487139989488334399063081176594365233636848877603295256811036522313689760414631573450687714223472653768695878424347358154237218420081113928668192933945280480555184140998660114188810437169867757930443478054855266050333423271628946424430702727398874196360190382969872806323449277031637478257343658928592793554976249421068285891806173508628530900457640923078371202147435162152473111990043544435987211394587341600912827589106933982028119263470702185659599172699685546200793683790230846982730095533317035002632189982204703191613204244493958300134281641073627129247646087541875701442418638314095922270278844038294413622947348067595441267506299768374498541943358677812306421792460396968694356200822519645653792950351515528354061768196679712307972756613729230175148414530874929626164870125755117819211141676111976061481429059278426088988122329043320805958998647226203893041830143883320180201114498078247443133368770284000172840900675778597892800074463432032735133510082263498188775208829428017570395837618455494189699274018315674139861418010006793781771421875438063821194985118577596282455088241778736378620093090377799410581180779107659826248385176557218288109164867403464623375357521736873829937317892247343314506046557089041486350923006822296627611289640881217066483159577240924225883879023944605710358214184555066557031364629836304889191353249612628410578054350392592283857883478212501935214528439571707874498959423426610488952349957341710035410596345861780788663703053362470573661831469807865858165878033717119113519745756090263363460497392959536288727301546803802823897408038436898771289125441958462431794103265595405918257878839049987114417908098533419272641776479647045450404338305375606843294043956045812097372695586326493407652373791815482967439041102283207382661142822036386217265718616825393006917788177305526763054897525999187882546888660271873586550776285776117962526258965122111615942247641829132197680786982954912485932063786797625051242288098352150960190940158098258298354490335040457472888145272244122168992484787044777594460532050193391388817191483518910352201443697376144652878903113291757765612757970839073812840714424047309712057141528008605998024628943619387413679895387139600803706735292351826488173030675928702669523054422773668115765184195049984230920466354830404962135609558247441855345242005448810890731223371811766704628168322748574461867572558321513794264215525193026190591247185897909132392916745318376929824341403270521940764216239045905575165195893395716462771736698020115181869980942337112286359745968936360854729562093221567475541329213808723191508975345801103586462795748438725387493545251651422542076089918103742904814205881540237883676364388861308558657249282142265212115772427064636984633467166032462254981972789967335259902055368717862367820900176478669183164797067456911967116625739233284584627485441395340691813536685851568848618518773815812158386014995899258694641492219969488931563512966967724689771111798586975602239653045122577933787119587535234034572539981485106008638548237824265811473544088237232805674287869944062407490347848944119530231870191535840242698793492277519588857648574884570649726560289188078175159926570960139185513880335016323419602560337727085767116639385420966277781201377237481417231436074141924939245397639471159146265330633827701035868170967334935718737062937026651384158164009542776118728798845677445501912408028873991162733595726319623802056853778404890018328217718326248777875328331903955993975253392507175890327219991957145156603212884764700978374295197576573528719313492567654634189416085453655733141211509305051529724252655307444540134318010136689078378259500184558053744223318541451124234152497248280422806578382779635548054325837731286970763266793759926465110667554756365502400088912342947211535742546630685843879549816242399939289845667627444522609649191906684295842222010938883322128402930263878586004428617852160687667566971087390212402778628637377321341821780340994340622509330795358906929872610441404855629208663232754532029318283031980387112404313638514079474039818206084896100482846730409026909100544418144531709626090372555508228373431382433393345899534388910136769082554796476004182663087811212058506992280862674383140434649654937236434769941516777146633967423465351824903442039102622661671718224528077834916332044701183313612272903338395993276922110730891981944462065908167419409816900397553384544632786262230419339478617170601742777145136778004683877682172586285726541186070968960321829216196846641540583026005361563323895952396018672258762977905532576444879022595313885402067042844675112354145481679038556360528804809928446854010335237243729743624674360922068605455521204955650022579675078148472175468103884166743457165154894342672928629607986992031922770287142573555028460183945117827503279883387749356499860295691706066084213254866016157511437383373548557962429258889328141520983890433691926109048120524500313253075316491067448490876103647395325889084381302537905399031519136072304542975271201681979061327949420675432074686765753453295638407262748610963429357380235502409493232273361335062444206558226544032645161688211113547248997980084359912146207088881375586069337113402746806462649419664327701466051889782883769266251996852094239586208349836350205051732943083707284774271525954862510988685758610891246854257561890794915125789656254161107841412294783429808360004636534102496995020584585175447674149107977371156561010977897843394750627551769686496113570975894699192400237552239647428059338629902033236974299515405490859672957617092284074157901114990410155269120937565354716004121981505790992258831235991693009397205729498288808862865233622179253420021277361597672139024694250761336430219459122559676575437415014927859299316561050552029408166363094663574826444527977270940490560938457547217996557367472116570010123472663346041826540795289658229352451221175998217713958241249873819393698697437953781536217405809188536278256425375360096053562641401926701851464558499525570244115394828543866669512547512487609643380774556685937165167385435945455824909581714330268407330076846251358096479440401452627860844035394638168294433450038901198126771293417144929208080613642406826555878468999505995426235315887550708414928923154274026553895834161622230960593124380963696824131338713014657489691708125538382273639806107107055420317489290430252184359555243710210569842996542821862920944119770572795911622010657791587105639338732140285416890009031428511342435006371315582149247429810965826456815707447791943597236215532499505082625257475458113856002692729726635006295898909763531896421239739397039560011200767608450733434266501603891299653712371429066534305325575458920577121529322394372799813346443331139626027752316510509911431498170122508909066656594395084519618968889157129015558056361557089870217941285662664377402628334542517472755816931803440234108744288868962745156637166452611874491718366165474785877113874374834811691753505148216101199076617978544819190332960493494231171139814408148301094830819326840305705363316132525628192510446183454201738681647463639421242710589070634083612474090480556228655957317420490588514671108634298513322956585117555518013178438556410571650809876210672125600414958895009192246734794749222325240114694247063761445799258249032440110225001209285407741279699037778749118292566549399985911496864636757048816081732105846617120344104430523408395983404134018960850336853906060668603332374455431462076390715671486336359619426787820380561564956353217282488430561745253612394698408484557544362836187301231395127257660026779644363484124108505594530692346928541629687592924204255921773333608280925004797260043099558898674843391712415729117801495248911687020335001399017903323348353097070508107817898199134570018753312971456678205881181739535708059821574701474000380598316559191853140817110679727221410419913858460724293062031643913974307440120920499717713422970147276765011074162941640072806232326867687731477578691893732502920500579451281847770696440401481278941512597437869433473176838236258997909320490871754479187284890215233071488277189410049781502716308640100139664366948433871619577001559660919685200725978820023155499730096205951403521748086101251778775354790033218641422601121111910798447946496485046153064222637195558608668919172762389798097239019359399062782889499702819683441949813481764101108531734847870056915238266625930852338947526974445646715949658211557105923621724309908804173467029941468305684889512637691163604460080622780101274107173145241155885431872519095281441864768798166551418342694395277778439328005690889302073614344436567106776453784531126100813150552504879566126909692127013780893893383191867403470627933785494547993956748437072794577089628160010017941942044577368977427673375369052603716565240830883935022798355137030678115909604760078184801080258170162160132092410922892335970338673876226324630890156820626481521009014927214885698778342242940953277460085998066752955149026423508154092539894613096505225885310098580409488205983114468723969448876962700673564068406290615049498111322803853671140865250199693487751220648396389433532713697649994196176649228856877486929371232548619818650813748841608613909568235437529068382371068573692069670705292393528006226995208254866193888437955118797322395445014610282155260255050693396316322253076576301264491717055876095730781209710843230124274979939057614944126647930683006632022299037640831801735164544526760243653779921461250660311149945969136394537851861208378799387874982694193388095433491153456494385383847244148208537144888206918665994266955797435406270176419502549046334862405242464311463297764075114837717383216816647880398739756494261865562301309530323042261854572443043896771092589368499695656490245089849885831198633394687235030129444840384570970639967493908890192826061916060002947080107383068611060014246218935931245215194994606867402663003233474733609961250717884069643207295425892744386200870191856164664995603119959774585365488054464496698347365142100880189671364979483526837194996187643091282765016720468246002756930262803682586885661699209372259722188434295306541534887252976836985243944793585195527394369993480329201921014325428762510263564617619867468879163780885053119372635612226224955370964781756763696176700697252098279051419325982526053738469229550866864637692764016234360601398144221074921700303753185844614964189917342232350052520257769852376131294032478890670979415995327272130377171742432185291003928130197733668316028939517532125346532718873735446567252198847979241649486957968468804037230603044974638233061885837393382102872246374742204602236367133260725991883948364264371195117787176172658895396885127125628937625848930490757109909426668327702027327023493802912579601501419768426937058019649372823161140912771991045542610770737819715106244989288284702264065107245835033655237215961103145020638788398432445444049302677864820196689495761561938809777017690568825683011023097968270927454794654487536143309941655512132352225330017810772640771555348109123610084092907156691196131404023269795729532790445124028247841008218163106737245707881401086726576551116316710623303158535016575277179445272309509820226521751081337785418944777094056827942120221816555838675983053361615015988697792676294198924953401428490935412184805281210162563363632852279336712728321749186112732956701384805108205615156240935313855699904104172130961841099996574050739110676729237472512491531864688726502294687584068557725832710663221113995150095630428391704664641197676674601150867078136766300934575610326357865214698389600309984141251627098668402801388221632263069402714267680536471476803620225073578276616750433994818961375461431595530886075492002447118577577344136161138263620043542377613006774814784371671991735192291739590493228930358323304486179823008559889072081171492312502876489673922626956584589703007976952236439384154020972316420697611629703784503539499782061845353296965120638702498150882211147066094855372880590987553748927484265225390933472149118092271799538102592019617319465723818415266168361744065668373122096932601558817088808954285326568317876653624816907375741388598693516992269777333392357173035860746090183986530874326080017077950787713752779595058876739342410591054451644885758269688357293496905957466180413727606643521805951014829664489063536834987778803749684564482372945620393305178584245394349533345488222320883555326947506333817423424894111497333641974703033125244289331866186158069292474851016253799751103766433946224418085790804076836594152813440692905321337740961141635977737187494324661171344236915927983901122459420024228651178112669396797366232483660198162549541894751879564975029739001467977360356759866696319213982767768464886916666013210861398428608817489467029876377089258851584362634479450816046867955466984553385430010358047731490635419253642541993940851475082167002511302945628193512953875630557790000829388004395950855299470829655552723873788327923585371772626922173320170013760961047683480336406418262321204031567408286946671602731863514248273849702778800476079538388904879071860272037863872026964774928715409921840130494324937966981203812795809065681811353251604004021546378058753806315062616461109436415555719564425038899564874061153361346173240625887509629214021246596236603649608920606836026715340303892141709044646917339322966598701099166191969964355536174002400217607663481406784009785469169298059643832797584228579219000770983939544693143443422544697585425688767765080646745098244627229494839747009878829040072938212375937318765040697107959350582548620937589337715487043158828436176954336512667096618245304612947845413456356378648014152837051696545527128412932547605965373160074469354377168445967731471108106359222236645252978156905604679433720454662832658375611784219100264677216908822707952437578141652468068849799502740832819520641786453624629898332734416905740424495136173560487311329348107329728201143597627968681414612174606032164273270184140652119238603873627290511651387410457806564135630044590984890167154136553607471636907187895249608960196091706913593350857362903114055296525759757858103616011299689946587722781060624015393342673115829509682716800287779993017638400999218970018331505224916833566715539425020092517594038436171455488472505521474629751709761530580793939496940933077075043575269694087280760424749814892102815062911132422828626485935040117055978314838694150869125614191795761117276369623981157853150731920716897095650320622332578223192394199665682837989418084966858260153432747735416678403577525136409810559209595185341706740223062333663589554803148476326861929837421856446755074493863548243643973986853539411547998739855786990691133415346520337621623721104132446487047460566678275570545071419021949124239905281948492088176773691901637724387849336403533905418054734050962894964749610874878928052260480373802284041270787030430273410633644134753332102401840677126185007696579349754548534891066736393261021393701919693841973690502440887604861589747779747118539052832321417401601136564192804627913148683549811834952265493511652512257836227381917855941345131359781919691225938987027007124761363287665538780516262410189046210021059818568371080098625199288613988804204994275451498516056624999073418293402588169379176768278487643143928638664427543342289139089055000496762626597599612133599807192107617178019771083882694055152739501742182723293400332793128816680131385138958824025300415335597454130990124210667717079666511157990649591056725129086000625276493687020295500547070710287973500915865487924673679247090909777069860606706274081809459443650944665946983683104019521617397411208262484752184096496270201600831210946454435274106315899460486716264202934774631670633128572132985369831583423171832213867070251061363849169740009324765247235054435390688705404093398043143849657141119408308112624362726830487736618330879107143337476279225427580777310440506213649972704065540884072540386155935901309483471414524034112259971298854602416790621505975522652168878942642390723846314865639397217943423477234755974159998526771095039329235271124747154459876759211029355062975437232379468651226745845017662283093805961929198793402129041324872472127335203617378724995160869140793314868710430258489480156236243590398238562506863832935778714326657689727318956920824068471115661400554299981921020764240333884417273332015319509992288263808423712918224456305065750887148883552431271572404269772897359441447549171575699661552987540006295897276739693810059987227372225249560720630193549547023772508728547520657169788841695646682339959645523993592142525839503461550897126463236418715330550161319187908667065967676688977525131610588313357812909416191357361669945280508460397489437218950609459612148186608911097841021971889551051652080284398525973531048670126832789412192140278142944564968685261864330865883311634097646182849107343084544766755129456948979692415030291649620248780811673919938252673465442902040842266566851883244671143510850842990424576353829416515485533930691143316712391331247704958276228328591966371672530595648122208687519508705229771101237962122228380599952137894484864927714139440609833975797577069480797011792814609873562822664264772062360661090989461413850523225236936659714873527135797583932320258833805826140386487206139094988324594028660485861743326890589379037181394153199721275906760486473227007066281516690433767281526799917010755514242927153872797988556331053720589206292803391057871847665322308589789189886418979950949477386637339474214410443524989259167966125742525042425576614764889369463213899109446887706943825844403413051079929600380979702033495702693731210183944116638224806149921588898706440964026403267691285230682229350853783489586732627079741922423360707363287293344649650715543975351071382646675903293098348933265306670862040073221199157506532952122376535735959297931244506233459960908989452780325572193259082544944619386209282836127619510586857681605688751582362918527699558225753565996749715728374984208080986827262314196532661285371401223804805742614441874661552266685187915205688595686646673828987943514162463381132945632687639968397701252249329417752664629349288071738767756763231144971794827050069125232117798088851372156354183653662558210200518576545703282335922131685575534745061229110040957803582481174924775833954309472476304155086851371410758355944419929542902048160865135261369816684829617862285437841203126490346639716651670758176608359402794799865489726399633423256756772469891031455487140220673005243606555397642817279151828145240147803887876689120409751385171079229742037737429610645838894575785213724242234367360152782465301647376370475126383180557607778882263225402698686107803166960055995003101805443118955093547488222037112656970285986054295279820153824005890666132450594960225095489337282169186112797228136702290574588581681529159216757340434202752368355376610347429831386750119410017841973519166229491261900527065714968143735660227799908836718123734739106020131186035781001786805208370996199952507536002980426802040702150915716557294666336844613841108281847684727984152975460438091074401113906386892568432633864611414295691803491537691417245723218722302956978970543164745142293448857947322361993324056342523825605877870620158363764084479105526537553306202261887002018117885991135190073927172850274364949855673499712417535797718373631527144686819322296287202721483775707961919072653362031994908660668750433915852027953218289966374480784432155645845052400010603862279757881673716429254428559265942247411531133298739923016614656417107675933356073443495055766873129996749979828711170068378954820678020592910819394500447627549565671565628007031530622847899737422831767328052416837514401366159061921262632358413035775457787173558636809381052018591913128322926795230436136550812508561169506745438594851751778572953212352256865108692085171710624024259828782469743171896170001551409129911849844067665548084720471238461103534878206952724657299121855507237072018348802674457531024291218827510967645149048001089632168916273989173050151427257539566009525871915138023285029037437446635998116067327569924601539343432398020865551113902574028192661401423146037531430301303599064305770481628194023977626063451433001778642669358168768599576317998696928410880827050552328877711118146143826540236649125467786744157830342613599562564545251408227629214961278880257056658744585806818113755161577915972995969508158541573260448057964052353308163828322965591856040408220616561427593694959366454432683642290125907763903467710429483477474183473152590023193081482782666512534936576952497145029175417488156732072133255053591422157671110162525962767753299264334499008949182986172456035557777153965475534749365119634751920102409215422889749830113809001852172736374090594912629180951215273699727272280087659308462362071566331753571533628808544354419061646358520520321763058478888853753125987756244594853810154003058526831898436087200538811153999227058940883547737106336060282422035429773142902540913878278664003039486946092997838800903103514892806095801134329685537422529520626314504716139844912796594322197422211009278858150253003265770914110875402626004353609592513942042739853069831305777375712236376905628863954381391832284482259690273107266390603154267542832041399937278807214808480956094256353605448548853589266248422608980600440604225573274219402035471469104065218806441743442724149086765712374201644423785967701276521986048560248429740120565263957245644070310492193692838238886844705036739230354150760128811962094532893866611915043158380274318588515594777142628588153969090025877990719605100226219409062180653255607756316692395969200655089348828802703671664620829008458587414217518148140712437894450802862707231946135173318388597350517709910950083940464403292488837766398699501879419670713740123167190381535423677762551100387631912016473297059914646274081763744670229198992418489458165756141923647127628893878499632636919064540387259586442583308582974850964307050158723649065639765974016403337831237625829707241992794069493471114417812000466608816032009497100824422629979944980745974829936978081912336317701988255315891478448883778309116468898286778244493205264800199716730201434255124202041784313416154305146330487159611077872500953617031760343638899988454510202762389444948725793517916762972810818277658339900385342115700251098835310193484362171446414283232081999331245491822636297091458864326891419821849028286413854918572698516470389107389672679543079990536815979712526056897249337446620659452586540109189700737223357282819596358297762926914255731603276975094238615990811193876492655149284633623811043466619565867063433344772251775142643784504330862029380995230626666954804705537797297605887496254479383130550192483193526325597179386188186565666763568052097100773934223918264980562105024265293517046517594935116799116676977180936700982731857694493308119306016357138160303312529635812318867338569213139647062969465117520600251276349993986682459024831624035047290993406231809493426422749688224960728328348248987451688247017024148014976625027410549901328520693919239139794720040663528537116928412320744076582672252352833122482495598618780986377982893912146624401781300039993914037257450618743172564788066374631471237005793303032015991057845277376263605067469239420683890354373745663654895429556245985140301653268139858654171464398096431672539785449321031164609129875386421693047549593457977098302646698992619230015426290813927412651333735474089505849020160720098259499311786043198659125451776907523180765779509035317287911487865535277506262013513534488369686643491799947307573485355262325301379442495618111673587775607724055844947058017916597875365424388754620802878138767480612263217059965915939247372001730803172006008023398699977959479795484189712188852326336378360936312764960702830603467575303054934698775040418148676336270116045113335051578414302037570806462776010761445643727553578154900343061271704362327839775717668454796014939484605807290613991502491914813979109242059578714405774305639119653784149861071599201657095356109190218402614655060452113257924790602157071733203307344495791919770280509273936785609085502072149036518716105233579237656606278331548075779055380332335570464943555790323561248432888412892239405873674094931474271722897229969750551057382681331083183080235384503904438885972860654869247322726046615785006613074228619145504859099917572345022752866141704621825863067439929928554149318700258500186427936098100215318335762578876266952120302610708551136310735316798147621032300376579172957745982565334152000444302585009173928434563541570249822054123627487564536917291577944339819935177181927171802403924245281991290402969971072401181896682043552144578180474900048623889268226846495364384673741905194798400169001733938902043400007141964344979073783003405873351159202312714858987780368049509214828233671861491895811040467970836307559769802611663353944537616194740837322150784781358292918153844105915571032727232156506491860681182018940353461203468208488050661802155263789030406249681802312689679474936896810317104578598544329756394381087387311510433109303583480274249903512207346511333229266111096056403129971250008552037093119716954604798538365496317363888648143863042599669802971293653940232621666722933923952151104348677611339554596591835157443513245815221342190202624300814326821553247408234167857862736524887455285084021278050399820696199162790657550210312098268454172484348682954975713615070837111329158919627595953144564329016154929691082343740983287505763774209213191993571173912547341843683545344514218615919258691014061796147541294427376427092013318052601937320409114057475481250487637236391252025245893608552204111104722030461456137392520341872324689450050092851931269825207049122011276212814228377740106807186410991595083878975751808484806936293016893621365240420797935835737492556743818073415376390685925733876952066975343352423482862256777161193165162549442327190117468002806222446018312408205552258690094609838494594609457128557022155276878275089745546919411698872588751473790770144332069616708065756116299826765779676583907992672091202036469674485486911077290953860946718732144646342943797739063869063514953257966646461507132571906196912273500383713339249565943889860990609112259937221396504909264479499541515864078882489266215291915833342244716934943125144873567619846535048548845822777609805231934369955310443697769642149020167603293685228659931979490334831933522163765383183544170835853139580453434619028652701738799087506181255777847855105617528014944821145135968205045203054273356421603573865829247206485813546115383958623476054308982853335107281935571510889080152790953200983274071500705004541219709516485807381759401692874583845775740151347862767165530589201162062883876891219290072873256450891662405996732206073501738126831567154075240387598215937628312078489696739061887706112677419152411792798062715129681317069676823556809027255595878319606991124550570119179855652791565695850818520046211787032202642955057798468823822395620416314297745165516788179936179707606905883293277512404082693053016849000098272369789949943716137385856664229398382942478306026304578600429985125222770758858948383546941789926562096400511755095287246547840338480103820733531865018105073393479217978610879252063115077569447794891827823091905669490063479403847692725819602430835805983662288783566868353797624286370807402307776520939834671918793184240634707190337811393116178346514847171665168176577426430140100485233989961327586294099491068681347104238248473860565683452249693271557572694876675696006871516889034870230519821144081829093620968883861634686510885430642619233574081460587124135032991980043322022129028116295040484136080202531302145332145133672341957851668473852542232765905415928461055497990558053623322507105470759171500675675560958005722325078294596132537922626081056629239408413123967912886085685003035290824705870233515499284166640699841035282691837974899343539956705094819816674252789747295795064442349911682554814202714972080736972566827891664476650003902784302106125912084096914815053937184445065130691274565576573750839674360223874221592859817780243500559454558714157016990245743951713552091829654218081564970301335996280293947629074628228185233893624923503850389016727055731228594813546270311224538580710458525273044723149808538830947111920953074877852358852906387804651209383838955867398586161502129458931596923247876178014465883503364181949159400139812400548543767704328432706118961859432589829047852460497621488170536325405888445785841697738905949519312175535442393564241948584956194308520561643633256817166486496338637800525013655399059770713141475496244034066519669070209835649459114516395496624140596544391920902214123156183581475422575421045780645498109611105923590107982788043558059276837695887406698460384712713858679526084030764432744401747624154440466916582393818500371982375808501958898465769456452680787665068597780874449376544215941731458657988572209677368325280687796070181923144574770736757335909910029125742728188897033319055743636436227016052884461430227684760867553237633419102535385827882537638857949236292972528219361486500622855325302063924087951154607916674546286733043878004938696393996089982043874742580341498985009582801673236849035715554801190287450012582657935496018993947282435755006708411054632981221789053703425304591935467754094493848714407245912159649899487430667305858318996303997698427046202309170349503322432785045265367240036221333804651575508700879998122548787406265043688119393019084667469571123932181590060895482807848028072582576091225953977190744943113965877735663396718817148618906540782434770732764546670478327624476323439427488424274933612831166366756897112270318125767955937527845503620608101882204685526708060724263763438330143007810289747239606555166009664383139623380151845323238084529712876230633045647391342054955362080086918798878673490378725684468772095507252283193096119926454107034257992937514488907824276688120859345655657394242055362360170465089250405507281168682344109288542542083087465785043429493312717958411321926656867483222335962073867901413052458069549034861936250471593056663582927477050041185909552040970329514166991122858732420444620287130431788050092938912460767015425680005948900103003998762146940879079796658551472512669689493385522259150033069480045140410120380960678117729330945892607686935335655835947384486698665487865927704805663064975953523698571712955721401949055797589362242176352732966624366094413455177244240752782958767671300368604365641738857599069031894262260251849119922351693395312440551697457027002384917145263738115567958513881546225060401613589341557745820522740104785928705641759828551392858480584663930146692488546509337350249263174223139368201019755429654454064159244141554664886311570936347009487435198642483688673489740995191821954743840119675857442139373634332917253673787910869396092480912012409398226653643053248780731854820147820106600799385204435121990602160413244605961953944393259726462731399016926637040058331217003691219853362537202781090739936504862088793796025871047064758360569930187959782977953348432413629130988538133162004262615481586226010679034686226695448375128709657497501974014173962931949734734148031459046214084001931944576989564943001973810459274140826734043965512209259063595510057539096387998748078919970580153612162196621415045797676790368626714052634269892750629002948966191101136544189630942267079591160735665815610784570203148243537161388077407907335874060279723934401996050534739468284471846092151749587977215408721035538521732216329878554707577203998651133549420779741511024644278926248677310313137066689913676273978679997804178265958352885824677285421856844128882367357766604922304805214435498313510801181415930514580637329409017283169227291020629645958743529237958002957528768892394097165340643236658361248528633298155777168054730300380143393884917418904278802496750472889698328645153548633385821725848473126710932744648549311580140170780894258101529526501377112047163591857667564424630336172106696366776407108764111010843272717240156852122465953064634982298715231820407797024011859628997660323316136692116924313267583339854271595681420607376577261063254414793632557947980065520981772743051492610795511382301727604037094208590575477906810288472920868523833751084275618604795449153583403489802852022400570712484040616176318457436128693102902121267721016920278684373314716853202718961288214638672065317489114523032843119742455076106010347934625743373638174061905314492449284214760374274289429854886188406897102755267644555703918332160724550890394971864262087577648667092354524697142720909896297740998104776687005991431084072446684273087251043402219818931292282576041894858670585658018506108283621610889191771311226111758276917072160284517572142273443733873201018484952430300870895640382188615492840044365580376648596239122225324342864119444314357903183847530199553312910042780701825624169111076592230472645726208751555855135122791291017893659966256302038452698990025144870416336754487464864712932219148123393696221546950968722489913425875336021642631241330000633350544196622679625499084114914519679352690798700922958598797218874285511894081656276948915841730327700099404070163878131111155800628204711849882694387780576422651640678721156212078623335458551799558534716962467047366014050198368317818737876277887950916282878296198926731724239082071193271890531705311689424393284010015946986029931353333436041466246874873869024633031414280992243198741899818312608212830278958784542399343493917363104200051332225971966518005952750589999414454499389690041900165221600117731442007205061260830305544294282592739560452170924783966457769187171578231177096472224123415249066980395686488515237777518669488199647120027151630229291729372687077237569814031119516245611728836798761091043842463906401954983118969067392373523562025626748524339874396346765262169172211932407949110589051535374385303275366528402746261352463882667547028000912610037134696902618513135855015493663749381118349246126849515476892930132793580777346269970696721392097133094287908818933394536187234195103137584555640024156563062131531639986698651237647763055948470934054672957854306942314579965450524486454138622605295477757302303989223613585772948539674182662353038924798768753066633982516179621916408679804071768280113941312115000313065245050756640426263641067533969887139287596438697112924151088763544964613311860364864724775166956287553322813635022589236052841919575428083662771628756032504238405347988911152436425845397382584917954656222366553101562832915874175734324141382543814417320596922977866770810660110324524505851825860795696908642986932661837280720894444701419347876166610862004343973200040512016804087936028357639397735404984062451902188832243486169617635307080854088726523916300001063158563260998112703622655628727296338527850545997169692962601518247530993701290672197928500962864473086986913947637117617311554931923008940980146043818896870875971597963025211123099701214739322804208311133902501029116219360551705609588640116849586238445469969819291379030874120282650680934287691303393485080793802612913114602974329918968916287190834248370182487037095712289774411056156825729167836085518238837053921018481184872370963083455806323279128019371198449036344867820748794548635581404063875670602871025792618813076309215810165570030438818014532994378494821219207053009547178567423602620797077093882516230827136533070535237789550207759628198184114121956273762206197630957996952247010017980473277416054963874608901536016261918220720354418823161131172626025519727888453436061652731626475586520656493678487178878928928558657665308331383080356702679163783584603412330747362063003363573414940339762482187709132321926443816205170276248810833564248102884908864354887715140075867445101711550371535206102043857806556370114346494564722871365378106528929963501903216264303047915028340011215901701702799643524385330828203155271081693833914877062238381532979048304806949536560109014976103652906119503580673702180562902064118704620950646136803370694131739465955070334119614252641247989080673110111653701189840608708612043842862572814597357221942411617095457096891098766825969258316659395983570537720994799855856437548745293450554120396170371913845652460404715462058707263476326625709553478196776851096200908746823874997940785569308598819630769206705338393131167073165026995028104127320607252180122352695021010235884952398878180812539624959702990324078602979000137859635378832538907657196326011867547563110469007229818819547026692700722141713048371867387431258430978191438193192456253689956195326897531530735530101181105463882991873354780124805468179281033816745105830406607607524710657413101406551224817601640984678070748654466783853311066387949720080990729601916046883240458916931559091759705632640885516481714084131931025671209212695719781104905634719637768664274159905633993800061869518275339396746604753883610562888650496383293216566540210892245875632781459254519829021226224178582143682561576103638374240457996738685795324868108996665561883708131328525878445166919796587367481089071951946707011513553754325510336790807800035895182889398794693895069408619479426509903650485144702499943085893429009828894823229927464607354915537313499657026581088545459648738141050703099797247548066419496980892215704047053196493400423289771205189147858711674743188692866997204017516756014018468957251904334142579021460254012236362462455389065260195762287337916076989864620887218320328689642038342365384126386812946595659560015429169250034131847647688361030881906804632345650090927560286483203520677681835816451146805576749980529013190751753729480214521318602176302499951801976393159420392303083645662268093201188059803777875408025808907815020781038434010102217398339129309334836657552494147740615014531283836000525658497096264594779698056086258323652199512961824815029269058447960463929914128225313874853237910581108586413053344048984945891923565938888624021401344513356715197309370045797165127837562839667423446273345452557071556872969044661660997193050020653605377245290081047248301381556830758534517661724374582957098021508763380795022096360631317344885728687602042542712131336695056982089399423316826105678990510533148903415867881540129094667416092237777981232246630971008411808383713647819285595228735211104211630649047262211628025902320682021485556235792676401912777534679043760483259511720420690822305623234050971460513102673573204691468830902136076773918717047776387401405101523532128179191778734620340370242485348713311576438795845358926505319776567440719276701733781307094748302751960669308587642235813997543766847418396149288410176105510203817748144821565573653404556722650861654251682306720179270032614049727376371900456267601269405836105991575957382845063243293120028955784883034418013331723049029218178613829767768044100531836532343658096560435545939686976415513818340307606846320526750346151935971746208199512453264359309606224157379920327354378025128565956744967496011644176061554476728345996208798752591911038998107334938631566717339655731779771751493919297394368687888701704982390559036332082173061008837693685823872299439261630904673951887175563965639538663320477663652960264179749182699224798809036885935428771038788677345791115387907936535975851434146213947744792458184511873122516853853795258314183262271669622155344863938678773963882975245244950213409648546010637719173667412058632154657256865615633589837365395660004688817998507639993693760412903405446829521151823018021403548952677957461142811961697795195073934900817039919682726614275368242937953183699772672987406300470398646912388356181198109206845545095046795034669136282875326334202056216338146854583749053393057501131852866879144046776154342571166516723233245722642283435583475665624254504882378267560741766413626811843052160808669977659693464628458484599609521962274528939905908591496150619009836296972723936296320545243756111844102427570034225009256552755531107884284403281414635862890281865125331383887994521179450498409658578209796141626409545026761624085199777709760797118007459583110789637761734498695766109759485415917147738675984375574921749654382128886713733992979101692894224012455086260562404573507807116730029875960551740773785273901910507470537970877606401651194488270720814295110860779105778617441875560454699870587375488959927590433127811828759423755926194885989880350796834182519129488380002374309452052521745764712010008956689025930424778590266259896185446851968917744157826864763077353743505605886375532265997773269813811839295199863781582299720161418318335527893880329214875366646655880971327002467031714705906982758111803702263135621927546956817251369464366632965089995631492354018341778004165750227497414356090149135739023173715949027046721284794351923563719568828665689918781107961896140761062864565227500829921289904790611470773531017252231941308339526760605231336886766720138340378208768775336157560608235839674055225670083177880008982576712340392578643442038133243850631191207284666794649951340234930756971565264717779103470644864488903043953177760002676325687881015549804500041563219983943853951366429222791129027418261939457767688248286246141753272587950347747351514221175373231860100798393792612064241495345378534689905627907643114829049695818378384192588735082419023736328351210261563149041512598013657649487542327812889294352890084238749886463441841514357413652773069000867861679237309462955324148709209248968473225728922646441996417611328520859551861496859683470629703485000660748808879329326615726816849017235304417158340116888817302312886212753437000333599720092718416751335949119092438764107165970258058373307422484413535441770297294363074174923941108241584487461909488043496866108551917574579530374653395085548129899512263749232122512674746578727799688824791682496037104078102984975293826516976879638278525851079707135301688667599383993179223725570014390956471074816979333094500558031393146996646636632955467635548003466839550043624856631807763765064018917620387796151155025243708131698395838609090729743327504701757255776946115460393372234930653031825766407332615989738531360859710733837746173482666996678079295234454701770296088289559292493289758782475405862518215017448216689144166385393981759182446632165310247575444017773186077677959818960809870023645862197659309557927818005907779403877175490711824577460613668397677648094681207181560658481939414424221718582984933143418671927516115841711921230564804978233052731125336618105543071748638713706301453265978332456910952483745463596613018771880702144282342108755541000519001771365541950650689424520833586921843984846403088793071925069881346384693729332598826098137933284172823527435941425728208206248998110540786924494893781898952151601066162002130574517462163734720382097047143751484692607611345630547038727775425981876342715672597287131019507583227623758266203989345586794316472912067579449455852022178782472339737517179126158296559008483779158480919887680579395605753162935650607124239128270423931954071779925074795510835216542856634849453610006086740368196446409077097773451627198688730410272387263126704842432413341407788350191604143796090211222629154200871421497646848068964326679835600077958516928651188947379425271884769746582779287517144882550950326744314695390739797218334524314078317815786875902990609955209365203135368426325901690655675496725887405592050751795760464386270751554118861471134093871756064524307409052198786341304494604089719719168876272495481744197728666872259581833927771751794108566815308141361758243328601251163780447793134383009258796934326933140292615841044011549826666231344667179341522225664344661393223862291014509119285683258344106328946516576383111515567681347434108265926300155257685030595959595418803759859725786769190047237977596135821881266233289795449552958943040244083092778879041592778449600447544716313720968996310904776172968515073849859032243292340030515934559257172480509567625710566471886851158530814615465068978927109536796161852801020266544479284283050733392604802988403358924279117845040995476103235914697980944975545482816198887687122170411153315256552875072472097492554182573301580987480036359680535112028650552261127877449427241918700340272513855605667953894339423462263875538982713724027904949721491043845334142296875059808888363792465273149588227047986509168800500310854004166522127038714899928451428530955094316676844437980782201517723518158613907306255110017702533451360787995004541408610293690425720396418245504462780559914988083327662465176237719489594040200708037324090597739389284264647349152276298593928541944067273918823516671504554210713636887127565024685972322241413557880696896498491491116728066604984590405990938685603810625270622422854740712408822299015866414025458764994914577705842966331124610144443193411782791870956112524009748840029183255757806148669316142167529085439473907948922933825529919523252521154778390440409519960122703092785590330882999720643058551624149370728074590469505033179587601739867181748743604158521988336343489746189073379130056490466791970633573680179275799058727796676116627721265504055049011455549959813594847914738244815173940710493732147912233728057763063041576797203562671499107351196194923383304211037762025153285228223231472991149036437395907371858236465391938306762345970899100829326618408134844982633299304219152672601884093802307808782384312240111978166648747515661346134434296573187889258795954547961488495906788714531575724744527869769155176588044125232959911883664989810802965108077210036422760141022115449153847422435710243620714338083819385595228520403086220554366450642398645069387901332379971151748011207616765712085588722330834868830012472182251655728786700613753670734142949289793641812643383692428165102583358179068966684974975615557444844979513320055235665756146959974255145939162855112729276490335599915340711909980599732106840510350210382707716104030220334216700003611195768678828757970721051918660036898691523010556152252130241317630936794982659387211277444773792085568376721170281494249646903151279012794744784314184522594840314093676926641028988816517960724876835726654088418661028928279213315018076184304603739806136121941339614117781555007886287173167001793857268220596259796802286079512153707373504697361772121372770524930902793704600348393099128530792078837280950564383648368107898444306486070143289557769068319897941719418976265197479425862152328180959296862143068659867274170128898597422661460280997208379315701320366100646602140560660048652965210028118512617311577339523856785833228891470425536369633790019320893027990046663377347025065220058555240430592825972376184189781054676572257423991981294075821350818344786629733274412192671989327840324549798465555883080421319503528214679253648384913696289533732276782665805668664649174549643579475006599895940055944736366530140541866903040254908272666836856041664508687057214028751008966503645717117783872766952898107057273939926759444685368535781649992859340883376783598264632618859207000239686770758932417098070165180366967640234463257648491295791685926449327956127021749104005711417869936776802048563891552618349746853122226807075745542569491959278694467616665056527497968221181414271094300453809024542746008019544134367153990885691604838001074464906533149081227457725169786772322517427461476787300090496949761451316836098408390952020643195546962673733252359165035453160742224171673582867637415730568562481378004754052174587693188666972243291810044282424266781196330620840667376919731515161349963057211227466294398841141604435208827126082643675492131265935091072300279780160487125870402816832969938017063621555271178348798908296231247018366730556062389859938861404977784471947855124396138072858958364492613833458711365138605468668291443074519858537977901394202181385422113751578144513847064250302148333790890101315608154392473214327237637377567431301797383464793607310911988076040615024350269111744302983635127977274472739103753278209636070197367840383111028993571053631641962113877675698991071715538653161115012196883977475464878917298604230933322503144242301652382293545874161953414616710521840194440566064815244553385556615662128679729565317266136281266219156489880913747857693523641388770804933716216631291585046021904178989011369360159583440466028407205558782726095604790825153354194534434522319864085702335992792158246059541943798713219139854292980221139969535675511039843023517233537238332630442985259273668822157528468078249840165251098825563011067474180681401448163066642036413786810741829958278937775234338933924552686394765073496380556493966188718331047817616312220987615442524037404623802476139518151324921429954890694927680782658334377188926265286645682012715378907029822934727803781867304103193585315338916045923537582068664404692535437514542852856759199965668803005818545532501214030700155961799547161562027989992700675011714497708769955831517396078506298507200212280632618534644063392283844655162685918241712938830710519415110493314688262007049700147367854938791268530432337840388474601687187757020362295248713474984642779062071162507096566363125106485328397104251667429199644560811284762052135900828285666969075640911009347223609884775311910500239637136760002831233100862588554163077061850375942488812198247818719171437547806004281867875823584054529654221297235202444505197579915947498754282405583065192713798911727834179726206942722845891232208509967498507730745510861534064068709668727663680268416938099650980233021277279206280793391297782850003987777393259913887428018693482094402529781093730519259048001952549664072312458827857043155244569000993462628055069057628123969571386542911213819262228636895319780491033616264487655354946704442186891713134965165301385897158422440592174818219219654662226797986630556848740188594906819778632836589937387194281270524296684880910400773947666979508595587730541337834095206215073256024022666997282484887610343864101061825417319207510965029197849994335670664870963523987066974265387308319984463874917900585624510002352387693535955195301371790025808744757534946014789517226457820656334842139912469666576377667727435138890391208436884852819986349260633654262942432136119390264260173720801001189672388880235808208001371937311193265588353108024342242468789217513616023737419605488849270967082283777774682715206082742302729833394437627009072174068294590600427680193274316464169939598058774923131408363639984330170291794773015083644294920855864789057655630411838876641793595842635579215301791724977163415600895422468716262717017147429352890736989841829688943673491321899152345112897610705394503610398205823909104836186348797193765919260159268280137324842853368889345081467260619390810521785388703713601937529159112342206472867880951847842773827867624534268380184316883596737786114872760394630752456266482552110562994815708217934108348536637871829719583649138390388169665505552804320547095659390182404964761429325673079552196246275247454397075946878080691729970141874084880699335398554232596579156263773652322559250353433813669844231450282545751917611435258409195928375948329785191595647827746740106709361246446564303264621340285024337134757041858623925537166484617714738556008352016151444739328367525398271685966928751712404298483039098745923391699764963536856465067004061776080142770519161084973223152810181683435386578673768532416779389346790254320178200602033610525933303704072358511388418474973136472437738526950566516635957406099989071213247962288374703356459836353382055549051654892482014064867383663837200485613756078223042585313949407892037173470892291928716377841227643162591696464978910562753290886459815357124860835216059818583738135382616409113556554100987864619206738141656888686937156498625013815628826969304082328080260769031149441191609973463263757708003196591379355924590772393599356228383460001676817897035579317649878047519868811561723413743309229147405428892735066866723769229861803816638267407963324910940137543906657040931773133383380951636892697314215825274735880470587490830778812900662161482728924126896517801907783187513863277873916450318926628985999286434951760012103651873848228306532591220163310987030300886983486401395652982858621355627815000260999171145604967070432890900354010045716422804070848479230422639720583900476898364508383796599003021358355733647585057981867517677965663525119152269335344135242459291735295900287364044173252406865184786875675104160295633192838986807006804766466410046906418915974889372599961563431240906016823117429601329240488243821709925909050621743548512190057685278119033810287879660727914727628778753716332363625095403856786535888820766510823520335099241177491770308091928361314958159880229077897546566616413133750769855796042416893818778274980902587118938905243613141349071668052630619224054707307276554078853714252894965793801244145771837137515599217874871409576260558902456537774341094199482716901898037546132934026020089744655257432984362915962139177294798066564707776083157666478167611619171615572546638807900472553131155405228601725511456417188306484918403077815745621962506133386424556940401563244031718334094547165956841812439461947746608863347361524333072157516225192878109021521259570415692551438288300107604101120905478583184192979640024035432599285334520337511106665684399534296928693212428894530152595230554764415055749505702411432905753872480401642881137710761599397302665587046634576389176113587386079691351541937231908043982152901469004253384824922111602749741581625530787531232222376916919744593392162864470109937237677904409014862088490131587023128634462269624201426391827352242718100008910735061306542604735617737348620301781742189024228123175091321133063876203768933433743098077609955597392997209131499377037357306170697868065015833773501800953026655452925845278022658100113084196910354195268603229463722986299433490475841228359545778428817372941150950831202585628701062835402059908304332843621910569359849539275148576647692205911239870423995639367153259083027808403625147840745109169787714877173439284524495954758017219607578305869114830853462004228928555512117596859735751970182041053975294907269983416184669114663876555257770224311531926535501173355757536721307700144050300422820811467493125184030329358566232986091372103423741300891497589749740537205581775171636349928612453715354234972698732324676077652904010698357297778376021846883610392799203689131848687327418982062814249586014509462897020749811472578685156316031553353788525164344784681299986591754146593391735861759701259408183755955217384271066906765736412119251443755708311527789242163953530039595247182182185911669949306374573672119544061181834112955403050796636644289540688380989350304930407148124701220475923908422277624534440590322202486507494318085647691465657374680041275329648007903568579321796355352600772276540019565156947187346281558055219328028726721358999245010325495765597886657799577424335554555848632471335680955646492553707098567281817873212361818614600732381526433206600589355362014982872891041746692352189261323650393655886207259573394317714617865617477575439681133456513567059895477612783327668616242943856909113354824746677643355211153985638491764769993231603884664591183947920598629882700084366276656014934983873664505588928179027150140170851015666421961123110169167366193555399225769975210426585299623067683883746398038630875609391514485249600217581133370468873323219989217881092791979738109049367898462809733817102014250732057953648273078802950596286612486489392324667660991014729384615182252551168170475715895022071914188184417379904744998663156604199711980008013740367787097021497411167128727973980837375448966259746581391439019501255985610055682653276741315666267329613313785561930413985618001694874150430155439299006958040401956251302112687745034375771501522032100398848855713744281792259506565480856160192278951005788444239527753343500870612592254098680811536176977995672021754277299774978794261260092554586604710536481678852591040635478144143581351024479902134108538762945914480255513896479605008924308007522708121431794179850818906446693480655203267541016869389765857600775086078440631463986757574240331055358249847480862978399299738739759476983222695122705345296568834014421424692559069488594228618392195755796686532509937614118252290624417330361266831590955462438875070812240367878663207526000425966116817666355787892755153843182157791036074086731648153132356136354257437842107518420500921498917668119926139776225888377861905127195327373130069149187964061753139765016221243231797403763936395688598401478569279424516033234779180563136055938337695448581969054282297473283047391053734176620018802517841368675866126805890937441392162238769892374219381854650345594555193232676143681723890572892139472266186521404212183974837376630620216539897565572220299542466053791730601451619098431963881649163292597655033423738202148729958585153052320475790096441041718087694468645447385845159916199855734545101472709546145344968185867045658148201954152950455670626035016423418401686927976256700879690018594390256234258429855507927013521351047043561483660880687716838236620483112949924336761481667264119964634913130979734311914122286977072952019516629609526636077266222664831113810670642782706165746384296554722565042896546187137362161412614208738429622974584796931049400127647699717911543010840233258966635596594275607936530512978638072812018418405825585645946060673451170295080982883136798684377288503088326852989231646006857009771831400261360955502290865017918033234461867588940556200842877535257335340842710193670448516767347515838423324832711113342888421246923397960095964181299563826521949735879130231764556301651599712377944331413513496568228448307119054701462337716282638335877347630608224848997042222616510950586611230897331305138625502391001602496994478736578135463083986080865911329475581115942500338455439096401620040177205613918527503212098589071450300732556757302205634372259959058688714475037263103127764380235120562986413718870740854576260019316829100883751573552744254001309305414226490043249179694684370113414607838168145116702516369328565650450470683313589451125219403879809774892812282368550135216322211428866477883725299696216575630428395003208417765347398918837974890044386705416380770927388742840562271905925400341820896536789390085470090381015212273584544233523178422552453617212463564013777589232671496330230652633121086179328296672630825280248631484731649322953340293658380664246749656921923361637695015326304963834336359163453833598433820289476641413069295384635059200004371905627774874753603619656694615700149145775004211191684438959099970992963486154660212186830958500355935628370986235566997483848371125161862372259106542487993468557030431211083145061244596378780135337949570215882672762284375002537424302072318320203406556933277422302859503278639301101485581527280486234884603017671034685126572600994847913301453127309563308516314272350936970814576387987259723551381880623785721239049516180844825568759720079712772841304237272259602564732888553651091424915587897909179302683443838697621027904841464164239800629439177889069899010221002009350977387829261351721329559088794364828966451840061565607923049230066036957546130326171194222789778325463645509412037522864536042016695483058191440132995597454369105611394684189830273564360513449396011515991005726173872167190667387092449924514695233301869614893585702015266513486981197707328868435256507375386131296449936961323196566744975618981865873249170933349195039481471438118998848819604121093316417809723254655447580266252410060653092213033039494402149458535712181485982746882482729894940168243025702757281353824264890320385425037105432449305455528004187485081042457958280840470408311823063074327899946226024865551925662349150882874709294447607778355288188944397889114557516095339665910471261023687015327978310361758848395008884807096417522607506465019068508528371208286098574820312688951357139202225857594392419470360072069685325167856045432909307078151306535394699907351888804166904911970627721906735161775009650330507339127557351515369371660721527977420944730753159708303045108443731393848032716154404359073646773058970070693600222287567419337140833110220956332809908729893393475501212429726611203028312019537561628157325184245977350475996647088303710357973281009401432398511130040691868109481661087847814101042052515686376790414920933250604832869320796002966532788105888185064195072856235421363626121951013145230945123697940501804747208377889582029158607179862094533240567017201870916113807002180482803320190815564178135362589061648482794878034197271260619877519183435851193140687101645929570627964469264530486503276711570199826163390702359958200671947182569163913704336263411779686495017461949948048946817540287313532901048097530396722835253777044769091198797615830020548251701463575631030076477585724356025785994731966370161017129851943610852173945099910256972419372342057674094066655925006907935550658880116788508926609598029740266375085128738502013180866937881539304300252856603193629955110798314646476489731234477193304042416765913420471618575583038105549808483551376813790925182137251696090541911190044593000999875952690536307429458838806790011593326485524849149941580157481923436960272360671535946539424677593199396026192104102357037158856775201286756950400092807316488226923597663086989450919950337824763602881282429106625266120641984291383173673364107825394973069397986631486222522637674737590555856933752754957706624314355871237067892899796430287398413578224021307857633332192855934733062875897497785583759373145322448381881544401479545360863043536828258720299188655397572723277341410182018631582656288153728042512040271493100543487452596348676281946717692383266179978404453229212112654370161424102932385233233154046756766063011557526053370237842123236331356746976964574765081441427656983632212141714239173106154870086833603428924792404802136932465336048503394095143658086864126554439356857613646860130413254735121555410671566431676190860747870345495287030332760205149515977934965980076217389435787894722688967102257454491660122697755736387840900476217318297009005766563371089048049119978026162924154027390474735445663876091952518300161795368998022642850024556708625370235968802193809907959117050339431122169523370716326587432767806747713975228323722246806345818786138287736660829567558556403031742566874717863626654194249201927104979522791980695504517412671680912026998906546054679892842395972461504883648040633253925288756355702798886145843566425963135131874670006644119746156672694131673051260342468564381698082788494413724201539808471406302022126290794600010852133946715987763912596736828298104681575935525572583545391039718138955038078725549456550877577052118782578587898929846886859534842920254467087670570760796407334487379785932740161707227552887637727045095521443485548880913830023870083572725990864567453092096525317947042869297738226689255736386169967440264927480641275665508474710571936069693982199779795777989375844495216544834126181585510389758241795328363324165047804321780402547757143511898331611660222359961184948529414669126634127768299619371769286982882257594697721743948722904906264104920298709948958494498186264914503394195975626737008687057863122747014616381065649172442051940104399866198640374867136234765363215894287390905994563600783399803765598784066198512560561382441315389134584658843573493304260664161493187968805921624608847926750426175925913067869846598133658383737307415827238771979740622672981260397442714298883771337803522255830105266583346468767778713054697314930390995817880463890088368798587595730921050835574856042540282373285396104668161024255609952535547664768977470617450287951664508668438261640796826847498537429574035250028322716685014633012229971021312716273962966986796148725306531883915604449592209465795222150377811068131077409135356658395634440374702504234207699999897186446030691699382688818040869913376069125024394283040268306768404293872988118415065023833979491132732104198102946674031228463225551770614513858548193128440615557428276159310874848691479593847354173940256038464080015594437357144472598035519669023461163804161407115163760597187399406955951182786210607934888230730595117192916372457355430383008338654930671248523245332590529605894299606248182166571259042108467662575434517410656466481006134037667141802355977499954082325379566641763893884519228510780978129990642426558757031079932146855986428943802431359368286262338211041459213275823488015458001095754931939581301217514028673227144048246817525420348133742610671947415909788018108690717709461549983599595197151944390942439686426629534811901970063312168085485071887951948132245375426275781280538441262849087251315848031062781648263863549437181033178434806855957451535918483549276207651156795405125786303886406732091969940480223654559010759845910894432556865666528988886629973662566823470653687078339777691924312660238039592911217261067029561661719788989868568572826598717757643165255804612269984701482409163614093872023089711615904404443648011565809309177574440083710257120793050683525624413375320109032658149736925300324394914991611646182820163489188850761195520556147262566846127256264306144272305156654588441752551108290348605428789493559698054338130809082617153191159980914254371261214236141999602060087413775934062265548325087190388401012171567007321895692519324395280875757160789265733105699920459517190505034897674894288977716512509169518171471822106186092951085817748714429644898465903863019090990195504647861017062360942214025648444005655741214006488497007856512303877936601594876735460143767456894261559650636725833847511458074765970003754107588158957749790757687936493193528461931697525631476496333083929379824891943018514125883208386847812468082711995674665461281708572625862184091932814707238459607224319268091903792149104942933385215023605353020803455505726490029111162288586339787508409657086551722709240955568335360828890074996840479886935079855231787477200275862929208016314338498386787227849188035883666099540019624858024925902250173462425454698329018675637500084737855387887242133703009565426812317685410477352707043848420606817779097238956722417469830067993830709402474127589618498224954727590483501501962207737521206192806555757467302272164450089085980565829509908634703745693496604868295708387818063375043162444367002652768361972272813824913858155780514971673381626327237121640933383102673004960889403049684797557027832195539660348925708873826661308134222993179995690818873671636325622333587681411350203779093574080227637103837228839203709387444285686045626196760492962547301204108406419245167016742028815386734483198027675952379455528438358026018290652474050597768751810351359802527911610023181487564368561375236162933084704476660675700137491320517069014190535935024117685720343376342187114193317480759041435638770924302274983689075695275217508334785507686402167046930691582764453611385566579860565004292322056067179955765107629025691136959135919664696443111676742478271373099073524602893179602790129914773828414767845980272360056167134659436000428449903602718836942503613576762661707989174430473755590208165989738811136312403492907291606275573842654417878511513803883756950833306676704495235421885678283737547131432672238466548452254418105222263757082579659018445291610775796127119196412030142853295026240497923730193987555957497329944124722498519419867529084365857902471628281600470170781880643236248635616739678535665957073728423259050643746889320319020759970346223424230064241458459210975681514456864825767972362131734379305817260535102189180155137311253129829818882924644577711972088896074780068000084470021253444392268687006278744893604770219349631137544707078129091612528245670189380429583167464335078814637411528145865451736271266245793345892612394719872056641645384857596991014419604335634609716027792145724091197394397191093171864195442904042144665778406763858367533331159908805850228284455998030256560469423554742637699903360595963037456051638179182370703899557143052594709986661889627164786652601366695724797819203653750876320356272156127526606952658873319532047137837802578000998884491342913176271498309406944181495783781225651480939377476047186696411928289596774253748866426537841949491230027862480237927406902933457586044349264336462724639285018846023464845500423598320059813721868735346465624588675899235030405527797495364072541071520052319156494367829441217900541113721246084244567807853517674826284329870385516704712229336679973411024083953853215453924420606442987971702816470214254037836884749322473792673305046491915554925044498916873602849083265244226190829935257150573325866649325886696191811918002377087305002058026619564048932728183724337856641053558413760608299728123791043160361462095032581295962424694729033990378137690633773570235496615581769251078485602317265301326659491430083288490295893204293261906377700138976152261335182948461042137161560954264298370062811885145405647976545674366264003976042142675123944847534263388399913965359368206456458409923425056345384758437692852514776816281269279160909347144854261722145241868663427654004196070418728564760217380482747910034622057483033506458955462134931681826714917858991928012880787747211957872773928328622072211999555096412718105038248328511841482803868006119526844817397597299568543662021073887517019909113627938873016324668234943410953362960618197324114458194271281982295977701108323319295164679393473665547860355305919560977648780345508511264545473591760445889687800907565391760384781688504502552525220396444747457123347866303676246866885622650922238133011029976262289944574877850354497868530015557045300449603466381797728273060490314710091287665126939766480014787434951352556984981794743596441390638349518223090360495656179293571813069702830370304829201766325420913123122893452533852261992660875784540871453335796999355743252408298928002135750605364203278108086479011466377296374117680686462001761653608770258726926412629509655756485732232899148890336544627726550623558914784388929385592206502193574736138331195232111114247304777077920551631696143069451054916985478943407525625811932770516494287102236668169224108779699668975988136583388308539019010082423906160229684906508081091950034159026461132771852847855228665180817081844012533350061225827858964821879278994155413520534513090793972883209658655043428019056293928297199932140780937237435416329380047935115578777961833905462363938945923857753474326894638421807314355100355910282050268194820491856312864671170615745466586516514933026876614753070802995222965749973200796063073070158141534824399490019888336415080779179674381854130332273522597274690513105594217459635763306120360333697862364894953633635262437406252578326514732025216289201572802430646491688878008537856573514841122096582032988957833280428301611562383208853403347080814036684157922127591041606172661140087627063241864628808473726206010864504342806779490458837650999606138298321220009279523302607497584139458013180081182921050809926101944406159972185785129142963325881829290560307376020406422344355043625010357623572566530564416309304096843643221770291768676510179079514655296949052551423779076056414963764547144179349309925800021191255137689524833569742143324187254256796275240929738308308937857319481000372663720807834565940362174768678095680010586168461832952593496833375409937812732063511973669269159024942955669837854873565833274468045141839286187053700356243830057000989458255081215987051791122904585831991904426654094242224205889456017821671716493793927106327411810080637163845797471227311431449451844081165129918814802183628677476062224030118499656339097206675317915084063774020830888855015999353531941988286513517820812897339403271591676495483629646047760698956382025390140997764727904286883670621385311224236918102986032566608766288996266286345781018287572226243136755503857320412632537224321750742751478471353831743705222744307881598519526461434738466299861067719498410441981460058312164694962456822951681248655563678509977425514844088534012732243590227980444665055557561002913915381338003511649523499602084256196546112410231322070110177885936338110960944352588257275023029490797130173226827830428567975861007403492154687478475147497044490644399650165052238673996124652792229141925348268894118988109860146177375534436545932816438855161839202373234560721655564830169684323490561754533188733438625495786302811093211327272141700594406995202581257449673755117736217952646110556438836103378806961950771395781075834072025213699389396976732724153124468956202312356743064459252207561305690037372785433166479079393706849418858050760536985593054913240676098260974389483376161002438122579877367928226410244376011576176029588148507864662350010031514803731658609993515457816502022971700570378567462514156770586684081430397028158449620462101882813670331371592393860620189964025130227911636935015253314032056297010917431943737749538710683487693153721033021228633593228052690967843390167028221721163556616489324959530333629210102012600290877838794177362880694738807479178557023792438160469020207863278504137531780932799029150082454954424880454543429783116597173455468233143192132676025549991453026810839795480619105499385367639704804178723048698648916462747108429880437769937244506948952346153577980607828705203064271818450510146511533107178475241078247673812055540942702984010588816342616692214132791083060750372543306677204849351397103123367871094825631840877735557842146959459161952446809850180746699690591059144182112053896771502245610928838835939603911614698593478027717771277148047979340042689782474989790786554617175377685988592424217648873393561124072083498357932962543101906337723648490288937428533652963485044443593361222900114902291871088636403852562319908149704702186715267088138028401678874450817470386975759857543199252914621269290317258898279326841249300524115169742642630176545224013962331792694193500778742191868090815213874807850618013971207210375185308675078774722085403468792762666462117131181297195894427791963894455744693364230238426616635898032052961898987275950693776587860612590822820238384533685151856148967244769717892490605872269178528911899886900723597186700246990350549965445377903260965082291087932732513693006295195063478634346686368701367469541110904270942358111363654533819910650321402762362868130492520835592317263897839969016247948990429007044300886672859050356670688438158988830669010628453126523499101947302529231639677094367081951755975005707957501808722815645731064211275883992959139389385222047526041130603805365205593639278239650777565996202889423181400762610902898966121985368343129738979650091907010931451666205575889214082368845253519426442130577486247535182775262433326975757776559477512893971377238311367288369409608480259030014426317714142201185077012060299618884457759242914956535906564870381404857505637308401890772425852808706699247987499253789841967728277403054323662458992308333778360355167149212303981414577403823675581657465941911714359702352121128606406082447503633173883541692720346905094158658806536332064076880436435561045298710279497225225391903915905989812551714541958928658870756275461598848464752218324060994745862521700686969314240028281033556781521301784978692988828273775779806533863070904092636830876827785088435108703151636785450986829172834254779364406105124839867282088198280982566310359485055918066975594772727849085398994105787134087644595765620037215611703966011180159589690939012179873853651687539891206136297972493755271614335589371257588041773777364380397266320257417718210868333586193077324134014204198848585667470636223530730872585499610847669326291077710737585312248173068553997138459533523315760751572107042604437114742817886170912643230505629906320411603346512215298528116131134990631800454502710887747003207674173260409585923376241333521834042064610530561223638089083841236222335441860265921324173136449677389895171570233347269493022898612202239929276744624207628084629154653600863932393878261355208456622452585919907958297606292550792903697665937657884075321495023645099701349405216979836606599333682671228765524102041521909664230345598756237046613171745644223426113672388875974646576329921105606107285110416968732943975700571240983592352972363891123113282706128787273107003112227704424478925524320084002121344064002506046662446089359486379201638095614636450934763390102740833043136081977049521969418033394847759502396012659779516272903604241422294129874240333531750879901271066190759991622279287280214012578431040786420581979056272618834862947280652820009952214321902701820033644140412208753641079046862444900164787913733371652694405375265447715511157827493383143237873732858030324247847987658816524335165372887691936035734160682023367302176821519518751306469845241579251447755564372189144999505610058287696001603878692761407704877001731372874104624453470181488306066965533191305602811602549397471834450907800521998839978496672489834405083503223733597676705329562168267644476361830896086020103463768467440990753055398834617421437847734225406724974660380351968151347491970379753586319956024933695296243365002149227932191153325465204315813645507889312212122177857881420338354203382292372488007579782317917089170664536702370384131247248534971369928189061585728097839625799380042523939969216332163540543497091458099695510594859862578151918667428162978073510962874094337788073544498359489293818902418387670102295713691120749401298276219497288367653824400552571679129551353311779747203891743538444148305709722660922805906988345639906776822993084210864857074679109130079869787446069829281352724694302222728631667431574346349735878006349778987904785414939499517888536168741607263363691353175471670334640394481035037977771207980042638061044878038983095991223195745678764748338239076181563464349026818495297858613711191238771495487381708771129212171318271523399123738534165196291562078645743592690387477624075546379585605654148756598463464947998922496953305423587647817813047366774346646910983032487790568080159579242170209589457627220615484112388321493544486858384227507265301520307626426020374344335158967018976389674218643533369550224727061838712706234999149621313121401553928009001810236066337097519278051356457132319149667762540289642579621775390665941946864384883961663299638653820173998752679331161291719703584732489762083282133777916789491032085137406544072710094543802664821539442167554269133536411337986402196173571623937773533165971301357978350372984547830189131442914830504968399556531270201704559968435600305985830468974517878650847391834994805934122838382117606999823205216391644125612258456326764119468676544601653968631870497404675397604539068637036368808560337034438808876082953821627214419843459980564026684419467172339145502438752879248545599475271811643545542265334666506457420217111547648455154681820505034015982517369763943368817422509660112118784027585128857782853926263904313392807363135608911346761351062233608605797189665158559994426891084472542384506059801968323159808317813846122273789711905541409262225006715359054549255026398833562677528750428917933129923460099110405116481583193894831419230058225227955868924078500445088810598403679138027995161290500527270037086549430842228911954957899821650684755700415572117641689833494924545260632797761705719810027609415413597953736358469524777921439255347644983155908519726657598914214808225536723997174129589097954576265208360161437501312158466443424733526411353258350148189309866233155837398060275354770765917421723753379224062122752058652519943973788605764654273363991373027511519081864375493842409792270300488769740605515971218424509846421208852400077628357068474373672031564295524618881904123566784387467373585497239430127892779771852534142676463009132283181235836743031987019011475111517494612386263936286502533292451886677471663497068172706678400492458353987504950350349720635824885002204426968010355639937758007620076492256726595765990711284347585061818619577020001932410748517399571272021061805289256695027329312749748697039058922989584324468132240921968707476646463314605436261980476602747014147108497750921930810987485310015162116680174784632070278565870333721927321990443029280016645097904855283602073038551012156382474892163312545714460846054297078334362691841152018964209784407063331170317917977862479909662650996488825136043400029431501576906985575902059760778459280221294867144802337214755633429476299541230936874965593325202549494217088668307230696488670306627180500235796972759169436005576207135349157553606012016586493391770826996789118152030668304330594876347768551849515175761313597287073919924599883026871064090062116985121442165770083405904134425102350527978166874029504155712297336413343289039381231507213515409038922356120296782123401189170132243522241456919186871863490754303492414138423752433575627378743109138046116351996202063772439232255657834637422352725803413645937541889077984192528016511567522614778146368576451173946182464800886411853452985289294650944349487449141650541786428757267231656636446709553323660973809391761641563162618279113253079518109084219939248188475492226270422787698351186257624942639668819494081180101310005558452403688626267275653059240394909274140281749397725008476894116447407250938277947846727978897836893245431120870461338599568645002671076923168145878306195843150956930120205484661587482473661340034650422698962593591035322062520042410853507670283418310962244770529169249849193402969722027494926093690040038844507366920373751253656012802126488552317522742915176305671012023781300339395847820888171943032545509135019486423438683417230424497577429754766924251261540497680236613357166884048006635930657738041076697979374098856085510693914214570645513293798552773840309698417113410004482411635907165723654014609103521628986612426469600242542340425735527435160506516790247153098986867379078357685678219855123724307875405266564607412541725128034209709160792945130212200056977171561282726813879930155590074082843897828222381523228434811834021575930515103611525103201391448286407659966898385354455121101848314733764482513910455213354912057726072883537111903487564913378584832896977760185129928783644282398047827555401715133146252114973651538932558510280587797421083241692376739692316199043103727206198355562976229787746831584688052769999685454920142572952550695917597148066343406738237877266570794602403839502641183401030958521588678669382323062077105259582248420751475277896570109730877592815787890890511537364437923615225264700395291119378917724221848998017090513282742537986112545759114283189058854142118056566858023861581391272413442867099546392667513463964518509333261556474114563559482206506397179265170445937587145883757729590383494363559444221277655966725303958121489549744131263313201525475766881016925433046588500011626450470883179178774247781213281263226478084469689035736328964028092925157265456657710497206825065614463875944790817142810417300690116232581893164372787414519071069226386643469590185259751121257242391822330299405336861826178013049835934602261820673196483492025716793113600118162586947599611639662999892317037652693842046576379507087314153788660419982857303976932490268181458002832551987793514422357077401951919411876768005490524710720574741604578788960052788066655257068611772889515827623840944055115384702411062852911909118762921134737761280405678580831695215757071937985176967618693590259729175743096395506067745192710002667812234967718256822362377350585067644225464054365232970812395016889575680173586982142734156746771039030131961030884115977670396966842436902909838920024501981352982851134914286385417004291509316933823591955783308598483004741412041773964175013002529479292783396937884566415241495921293077803447521294055659380179292844469074056012528466426526928138063875798440024579405618265207597863415554459994263746888363309848454765241100434258084345775054504359561816707607037673376499489479411654863770380987725723948678242775519083936960224713422251291547400520735707945798958464801241694063768025642012322236557526172606787568272908262923720358639105714757988572943330419211712004935498753919728735217074523984619482207652423626796487736510581950236052914473137290747510379215689488536861172874498633682979148580094395614012915557550747503605302437241705952194638364561700853907623394139743727788788610366821103006418225561633385408335928480961926152471505287742056114551793197180016358687226286867669068962404595064639572824538010607609751864781328939395323680174320566474566494065820247753990623531652547292630638131641309815716945158929326643335288680604065655544835280718464054773070499178016199837895209540143439895585215136442805080378654325072721197684072918897689268737525497860833636483512059095591500844426059426854237855459809218112134774431261080351508716950643454772370281188151329291814215661202258550953588637800678903497213351567367430105282658733750113451131276285268139093819442149314223267645743016008050263167878434486416209643093387882591841666507330306017175601323725637933212839864994759520543475037144018494758268120548844806944982873287976404417425132669825410544964336233460134089623661819658627347863166093596110736831836464320805323634832189893740549601841591798572524200083070397686742788517834423584702430754833226449310644811184893803709200330598813468339229201569407239851107592815160745030414853783061436615040659223835277112928296756157823087013989195499447776956002139568486637726557463988101055332699284022725699195459168501109379422013839854450630832193794160745541815014974436842448266247154756190385926502571912253284928978287664960178803690212268008915758099313311974731913784958220840295011363139870118024844750392211370770963286800158808283582094581232379778951975323311887926966545347804635462298306429347876221271857120100512320611919175032512144974631591026110554572243830108544995238607230100056777690917236386809411910183490160597405815110937893784341257186556951297022585583834881959823894645666081901221687794560668455516470078913652192937398653042430732230801377849442111216936947585969888928395754818526667641000696358465029181590440444977229905347765738852085521937571356256545678844384673375740896921359064221214867246098645289452911450616554551201375816488176347370563532171418079476050911263470319220510779827176849839631498684771065828570988346959376912561896372906690304882270756584747402658175441884448393638367649788918247967333726648326780219383081900525468437940069542878880482160681215091835194426222327980664277705438054783545153371994321469138474099190149445235880240208882237457350202150160200690009760987392574808282058065166367383113819269195597915600333802901637206147544092185562750187675064920884162691790382757099060747799635208496454158945935083611590399427977928421882146762866914231786588561895624836274816846773012109736543742903202279082496250850070138583040924014693066099122395608816093713527149997544695972920200891155098696562348142772385913421892980988620818598348890668555928560980162176014603278179951761229765503858819799446020318694564018849405145491986019869368515986540306641434167875719208456622702576585029015884211691615783042697670860291000537093682712600009094544091129326095041521948821138207106772512328081482435438086678684011654574544442286311413518082025184071845521928122300879840091999975635626144062659101134071506118234360304652733666677404610494667214712224440377748782593751876910316735059903960493293474234857695673948528415418851640245174762364914603054462748397166319456725721334561115772640748852865491853306082804578157441303301729265630936772562829757933877862917440580732937291674236787115291603232536067983502118956318625568306383041886484861246014133520437212051674503254215850349054553307727309163178916014018071946894750711448819841657979223079336613696921668167801253547506083904904414284401468094627381254991389932603849687784481046620518444426583953259931952404685233924423512003974727659113571916501959157034334175817466143593766732821335747923843768881298769977400751432215743160460629778708654966305142838788670829614973234671983918647089578607619188542907893292778738084832388901286530150587432241814202581140784455548368434273467351097043536301152407139134062128535736072262196072819238814061924036092436617770012751414576160356162935134863881044222922889892896765331179448968734525051545107434063220660813061801227770576297815398674042452119673076919484086958240164760079626606910017849966583488437385609818981154691346650316504690108297236168845641538544790207717331948283045914398001517981102122432299258688639068350276046086599482082114604903461140798537185204915538521416317176675977287992564096427229534368360101949084162677695643948181665551016713996766762131192802865137278283466158961316357051981988051454223654998827023388049659138307688944580788777195883659095200905991852386484275426112323055497144407206116918192836352348175394891847007484961201693044323402348983400016734536095917467733823714047556543493636885767316618988937586689357274658109350615552334942604333550052235722488880830283084551911109408791939719926688764479698759668050050672430957555272265490203718258075550870638396281061969152103361939246850221128870758070764570607194578016623471489145092647906018148766986741531719409696481813229506939231558641576663153183694579426649035381545195818848429874951877365639801788306457130405098752404765738450567040088212741658142172676940996277867283446382010035508877970817454513764636952850311970422837338047307413992616072452448901255041071951367440719617309983136793049554647984611080505345520100827625992388545623765325023398733851168361371388267785379807641091096297488979944708222270489467020049081644420208587409311626364353163261055646520910745152274110672545897041389560436843429806000988628334880237062320824549468880654703261066141469685268304238372700273754009916178770414871587725437908696776815487392499277587083215662725387322404060788409189919291539025739008736614200446498531791113593024210285711689980058988596360169472808321556781963658778737729415936103056612442796574361368222019331842916452252580494665503915768486002662877913699007075833993461087145539290354762115198085058251337945228903633647451970765939221615690171624871595127215867393978514515547981867985038639717842029620992962220620755065485435400141694673522226173747744631281180121622104657338236891772023717631658321511869077748583139799930008367683440438168702722151550130074105165395105909628654415339887688240705951301187578246985770412400283254678112771288212363965628901679844480100803611527619500572594295859005552505421735138316144895255075301022383269527150830849029172073945545820848886598331457624384145093020798707350699084479375800271831038432979829573692476109593177309934203920997782406767533775074209361373411363758541255436754971964576035529672281986450344500828570986341680306270974733123804209318316116480369492714937843205739087977282413598868072086939038964244990787518211105140685795474101224810314046059788465543004199655851901711435482793183814992731474770805609291305369869166507834194213290636058668116830930086109720085499224453895583415400130237643307341665378287243872378654306838887366061293062741763390349811244721835573430093287652658204622877590868063101016475344131046432139085178599719835131715141827856074417779138595080026390185135216875029831519070821739810357014992816879274060115404764418230337874675574253640883844367729955445502529513591944464763906193854636577327654054878999788632410437310893595090064337028182218325106269040587834681962023054685370657069927535760334676053110126302676887215825362820836935771934504169694929660338013322470394411300433234198858646403181084188185156876643067623010467801315987475212292528449974258916501152589645777356688242957113005463247186447783019641361725212371898076350214028233729561019025729065304307316400444290202001184599454448488562067254217024762005186821084129850741929902448167869512611717614282966747599234523586218118441267262306094997557649239591719941559993389139832082741730600069720928665316879074308872273399340297135552220913240144357455899990576527810958790047307032166195542101103984190051195532283111345954426764835727882454190039256429996069358082936767463520585122094249843381078069195108136652911851104174578559744126068063221175127711557495975011002830907271960751959677872001666853115882003948189149864605435987511899900392235265862568034048888900724471842763881525406526759636880146370996457152952494646211347613990300900085346681983549851084108223414420153513682855138689302162564408111005773463493897435186613519133534838379177080065599320980938523118873368247896906383656436700377039350890592250377884696908135379697542974076807079086501911951089621392629513598866739928781540740207736600058388755777341415139974605757022068126047552257779028125166039271629256306263639641754370346740875455772919269476606453506120339052470490822251183663910761573798064621846306336593115233683622306388374722984670291585752768921344118596730017051898347131072972174404390513265462841682076042527726525173707631540460338890221180291109066712147359115121017321142754260848946010574005048964143314909694388274829574057926628228011772404212889909249880091877086216344272450149001488398277007431931995517580592168764917271238831326194796842054857850786978564745721698534619843892556675233475730722052606405441298190993956211217016972947588230395907797266525190802754420097335696936157752548290665043351461529759274535100932492117121980719621282928516780669295311008961578106640941054307453689480552458451976175468056757001359700637574356322564860251764714628508720673768208218130610151129493012696239292636109021759292901307859830525215046548261771723738269951543809764504809869020354267175875479770880617019294717764563669023269799153096242262018076286691280210962138114094941995050245062856086869467029011382232387357981768390870310811636999938684886019387836583072244917937051211663145180392171780489667468013909299504647943046729242240189921819168346562203366762440135109441268156790270789162281821838471790280194039905776266627619710471816463797902983836403288391225333607677559513174979140877241505128632004263718174567308125693250601066135067297076828122292577281580204970168776396505538299260553516056904431981724963219965170903362939516226041395524352944573552654369876513987371799450224839446164244093285422454629015034712922444870426899989627391332303356147162704363020791442001725040520187830329120436205951169128487529049530452077155379093127128488260952366825982459922619091888808234789561960960565811700601776575793975632753163424856887142144929679429072467045141709875177061150084099326103281454979077780955854426253391036301302720675100816853576520365773567390890395998006597095537894644565026022690270930148678863698085612405026671221194512438949595117716613382088739746564318430324497181284819697722944934076770905890990315787739613713309044496292844298437677337478100125387927927779611808807157971789049826632122307159294530628433951616359248378986802787392901990590719311026104574110101124258719956488045247232179553513180763041225196809076166432832848503951450128569990100941055900590062504572724479667554280828227838327245332478984759363278942502947825267574208349339818343364437140692409740824929839229656653873937933545968254893340832137287476050422725739227492866687361345361886683158501237137002929379924153096049184504215416313570571983341783467533968486844186178786827142759948465032142866563385256634522261486469440385580992773454351546658298127560669958660754550683827194848041042786687536147098392429143469906235374259231893378713171250652694877612597313002306393604344326213569988654614530888016248304377801632644099248385702227947031359009733276812467899504838554478531444060479956877317788123318783927287033466201713217853006404659204629624505532228300631676448237349739785288029356797661590294151419662580379666490802060935953787519020726890022369725606118396338949409666401518997095635643197373765767376487297912274702986303119982304079064108007497833907991790927921644305907332095948948541374176303850979594283833762129601128698945442240837101084267059297713958974518765065958868680449834178133083718524739697923076369012701314924564368838631642651844107210407030554412044598163407857822443870393042626154469521940105481788888442861352659283183696954797892269073415241002062760827040469304770449151954756252371188844912366085710797486692616563995733990225411574366754534815728204996683499264502365448548965507810520662068888818519618264941949085151254069939962660981766629226766855362427750619563180004211520259464978293176453609050417411681005501274265143981419684987404785705567009768960462156633684478121276303680262369065949309514704941446333639634709852609133110155735873594076172194521870374482141809739715353271897984600689746327930210583443328061954627607890356682348497432832736862329943808390987493112704394620476710156792622841583899858382891377875975379120547188804161542278498096763208075301717686797374093127557391951252797016730436836031878314990627129309345017853651469328063170107697060942886700792147869512099537608813460005392435938827484626179861579338283800726379223032324615899614041593772255660950499473541842384799397501196334677556717799445175786492669193379877496693485664259124602453893608122421457900166809146041066548611043399867662005930531689250955415707709209754967264838848979630317276595557691549056823886467297734266863609175745959598148294283428567728568869149631290201358354673537400375522766282205114239084672425989167722997479558076389184433444537287690269954978270420182628803042823649335491307352439776511964714531809329822567587929720856994153743415996416585545047433169293674865878998267673053399703103299917143247636471646033799281417655442293784656715550471462401584999239241822089714908139715817015277499859056875232018887686443792253294988321722963581018210257581083134582934285562117485615620910406529036484888004059046534451166914082821132574629157390354193245466864758124828428867519262904088874570467973886609684888129230278686103117873775774344105571514821566564894654760053226173696448467360732898148433187909725984677132970273129517921581704893844927640256610032945685611154151933864429525476782992495284783736644791641583252833436597429127657314944505303409278842370175412049370571694742653197934824122042653529882596390422113449856078918358928468649547795002239660223802392474323102655175544744885735874805851453318392686258393529715751950423184630807841918374080257344026060601076947786228373820776630149054702023116444827149889445570882704359640890490715445639029501278350125633748633126345009710793829321596795204162364795056383603862116566227029444372954399685694981274411473121353269405692378048293821170338148187276671077607627729333197308201101563730637969912671302917548887224485466950108781292408102347128213512395503020031481018876935733995274283038393384696506320996557225266434875770374888917668667891449255410181433893633809896519664851619440640782682332516545926926556504157546283561660634298507913040998712921374366650261366215214051804947504896175055808433484844030952194724449387098417585674133757615683295105165403122184929004335921222538830589914809288948161413574544228842546630649081125639729861857001066757186543268193673071489261997755674137490760079461634746173663593246260393890055463734785825557236947049916318782774574093852536579613701278148514304672938951132757974571243768470291719496804380427749053204708882110440838822232921829109505467387035610193398100165901494841814233395494900165512548512711318916374723852184784953198960761204808468969911572405363601620995012467341340224344059799075579369447083807870998291921595606634783140748786430221815961671384237701162696432290989518927502875296106625023204970281163921141698787582658454547270000195939744604677880763144443169371589570458076726472233644584480800262863219628534763790089783994611084198313341547508236581750220198337476053231041151852591732422260910250454663692982356255462727738894319154171074981712444861121105339898937829061080812928216732495023298335144166861647348362646187728383671291227854859086832412322191046990292719727106455550988382319660157788129303832689361774473271692580414063162779431124455579334480765249360477801113757420656152731770779851889434510542206113267980231763568146831575840818025919130552507544930897069717275826250172975768486163819751989159648317669544423936526400884956991304983096625240260760496579036767874191307832045989256311836034966263643198507817522288982213130018062318641933137331456482198820497107484667825374915177722169177569200309075212864865569917475579404329539075209750681524828001537141653981568493261274448939384085136937563729475563285193220715189743200325724764324501884615438970755043853585880404376545101551738782658514428342143413505776739569117197823791695475515435804814509640734388437797650460701972313260619810953351548064651418160739446702407348201059729598416445525714799176215615414003137311449200190888605703194016239644789870835599485256046165366811407911948916293399763215191718292592491016029604024022921880380838739790651643632326486808577124212251715773513915526493535103796820678567073815220600934987920264759967746567294434755541770864942131227310572150382952007243126520624624308185142764814118781345514774870652895601694280284724102886604049906821165760083156224907860698928132469127637080173366433330592024352941052821269940433926581432673866654339481937748147854131661336951439236553127935740841472081667123052405100590646183842318266946909743563847439797094896143118943210708165069283744695314355347450477730876326836591807646942269291108957901741169102926379484840611761093813869742728077846742916402351691359174187311193496703423319462927296746657354593677617529562851008666709874009260268683536582925975352098365106291504507929307627861039474068573576187755416079328070621526462832209141664898222352209221434812919562974755213373282247969257102211102210256685703240682314719296726394744158684279621154124138523871159906909158678083316078473313061229772905569785044922869208681743892399271281106080038327643114220880369804517371228161022048206474617883539917765240358711016620924127098022856643511536299053296121520377997767595902863778371700028056421741479624645168837841936307401201468454528632605776806723173862518435712053940848370568548808383359927933378288786070977385019206227719480756553449919981562966754510205278043955245236822022363679339364104611107701179630106469752027707898699427794164220762146959089490176312187456928455841154512427916239751335992162294614399413928073142764274339399233153398994494125196476774474470238924940891932272994459554164339306518325734586893103891097516034178467012133057185251678089866716808555164303514168149489300672581614311280233887851320995767599778980762564063946167703643283370323433445387618888890108299044356028874382277823763635744179349703861330157564182667260967876512172697959185725094432442288265518972278108396242714203298904812720773466032372127138473348143966230510800866344209690803104173563138949099048699892092690606274427434114137091469514925369111972760743874738148657513890165229788839395683782406711736628684998762864906050676743407283224931194835146810649947963919132079706191763178599339030680381538239324372925011396493192638204034953114291613032936926036673858887374529568882482007511667058522983080884723262287042157452232520185527688023750948097606461618712455478154835249433480778036105899461781148184658370255686540335275563157343598020386777835153568613748651875048081340388856162815732788210240746727431989868661577599559334656171053817391067723847096519810084453994293566085999486776378161725424530076386804946803928924349215635193080167512102241703904585329336656492277476252377829759231648000308031100851149981349132899915499628719117073855953271494899466847157344347151308311993154018536597335834398665003613099456206782019157613547929146896396677306406521857800664113979878184085660728175080334231882622248875751485297879368572923971561403406489580525118259434377957357829981049785787385499061170317027728429345222413905929796941169749441481133134155758928504888845044466650273586075481310023367268518016692461021557726499919084950287512540778409165099314534224398992515914266810239047551292850754291119517545016888193602764388727047893738312353000525616075215480189637396924173122269422103994231576579343981671333524392695609050892170357374601844581483489965551364848953221265874446719079411357190380636639967191876002954054725988584523273428984611352011812771885096010252174548345959081533397119066667328949506167191855787835692691240000749500834616002400139516808608252624963271218305285072449647006378485925266221743791833548135607013098873401872996074137689533681409473103832745980107721142738323031590611423054206562711123159845004876606537966364037324323607917103410067056341040119381676180995868001454549821168963624091235840401461654902098037621294987347811395338194560070588778200943822773603301682569042547024029771911429623833355962076597631309936483586284792574250537588558361142319565250051105812674506948415237752996386241545419351236609773750348259755427404917918812426778507914857725862268271023347926098593340156461485450910222457041958974607937953143841578763065225357098651303491982897468139057244407084012880142237440410359596055663303434466388186897556282504672358239648934686249074409697429310663353620180673267963424946373961571992063169633010423299763962618020149259239430939136377383215721797696476569962820086039907787009139837397509496726779775861646375968472925371426945898171818646372536141974080455477762188679460588452556606304304038208664295589447118750224276557051500603909647451728524091529000083651333037520294001548076792371181261889809307802633275895938041379954768811834678809949275708089593774491446842315750812796752934886740866660007216196923212465647370263193511176894053876852538896368974209923121227021402478710838730984194810522873646548509120923141480708832231519879556266683166515802293267354904577965730977509313070431742250640740865384496539975081834829854050710134224744959901576345144939534828782499528798363662443201808241919412121363780228340050376523649738116218930252260179911503017721220314714761199352512326177864857379550381838262958232392113098802712632329384427899551719117116219700743440475985198233503503056519772453034788613347964916565374978734155110901620661983408864373193246367722063115524295677070422216479516715778357354146040172806590319842950189841035069750495764211070313799836487176134387936145651916824955812685152645593283622917029202328375213798265160616551809513573277118502348523077463906001532609219430929794725671072681253489406606992968178377366571589080774651399421528918987292962667991347464118976968905140309772653853524563303453917031512571843529216282569655292071734205486222368125863204220535858109510921741718789093902469957121367678840210637085930852454119375708153951480510586162841936855376373146632434410616865167036028252604714174336122323762065555496829507304914745761448357800830522322528424567001091056889879489760134306419026766245311440586859834183926757088554390678889807857969944570511956820673226285736630226974316034908545732532331768158887173529241663700913132178164983060514397486970638526146147440809616132396991783790697262406942008420229082310177540354529121937876776346650306828175640965756800850091679159354879911055178748088395322960206977201719553572036240283044214869002543678180835754109055325336173693063442618160639518561747304226080135338394339003913493601487482434385875760248535462240128183776623497532840482063616014077496874387523650246435740510996721254419516609939395317554650884044988324452979657843999073850284351448169378291347540505159777734646422991014598831026667306751566680773022413539425801521615684780188086283976169140222185075105922387138963074492637207839905751959850047578892662838419631164518898257488526544770755043781952360092340240925837029796127719009603229940624684402089322932238408000921863330293668909908425094066130202821394163475718950289521202129150743366802427078986256779831644908292352575452644890035416123897403065654126526526647961372421615613962558406210896381177663934365096467941937085314845729711643000121820444484947398118696579058438924525242883775832669405906542679513504179750643064037246793136513354172002041652149468193355903007757855533112028370420140837050712129081313356743376248216948596643217177727688147910885868498631218739361703392508847130833515714505128166586157726860153012223550320249444690501630746053387291218807303187640818141982224595415420605959376763236947076053290192619087651106478451623602769943134167290346614899404848518005083589936755749849021735303382828992700671578026646324923426247407540604803860389905006591406796681310905143539189585069479772990537726258215548211409655424637711988982209950742436707351968423681167956994920348995856560665409675874765087290678451272679909200972710705087328599563411142880002422175961324166047520496808125542900484677827774474996939233913355149360679075660934436599512767199691949452772671572325776606904221731772042918069415741902269434238109629780421326192514288624824466909021045684902136364906907764488789123684447954330486569845485825407800195952885492695313445540335232149911640547723049520422156070333939934752782828749255586267918435083843518488481022777835788171122964181270872858796666831505414290175916949048188752799981182105784408913234634443592113596234974993704689240533395825587325821312470414023318976039063747030396780166951193943232270311476372071558194734806594481278908715360595819255126844735852932247227501879442139297856853016535968708918371338340632852722018693074876594084017659634302286115292311926407936715048522831514383368432266125872357973547402833666348188042947515470029654784754326701178174181458421656600923727978562489160491740077476457297938500798247665038679483331469108119990026169495634616275250703492139548876283077202247985663671297184172657568827373988512232254669907832519856222871401926222331315225580215951087218186566878778045016023947243322644364206135044522404013308749762689882105811963815965031404097228801945372626559594512871239444834246952292193936591723421684925845315517670771122379469348317746830357328366929034412790290197691332045726806883027994942588703200769437145699482678202321933522026881621862647442444559701849199866435188480530864781644603213626409057578507964156591888183766129001982682475182416581342303253054495054879563642594843288337169706748306011892279903354524615135233965260241739510292245361037337095188397452960857708529152325141385017230358755946471120700059106069589946458329409828784623553063640238571976976022097427276677176316422449197216809008435989661562102687988810459678334980631167047372469954708957152024831030740693573344382105362261460068316953719358280629779765840792319782083316261672053547405949274794880711396110532896635689500046618064735524086301048930864330663145287220781977911081241692274688389832095796630089236097869914714627388897579737565966651692345858408059651449058595039177341584384686802020799500500333893188886310113445999274445150981709280288401177241091581488365450030291563884797271463265733000648694572558295197231053426650072709472983219695452600116779155902005377981774010018374972955605727333207611239276059317774863684361972317670660815453955992058401353387922559606903969533535345883575890693841968604046370038373174324884827932814270568907030912252466118677909097438598233354222579050210597499944552250557140285401601152349963114216756518821749735176191567415109480210770233691242660790928029164073253919372085642603647633775836086712557413322160497844975100112089807668388723701789461915261851804664560627438525639448294829395660797179382524664922832768789274014197026396071059469213433834980616142029217914811129974904264621231955489084239324608414483422922895824726735925156258713943644564752270621838301467137833882534012525208904591777010002376217578698752362716946871069382282957327289882222943858244461817408706590491471960320650668821849219331605013854210159740456499528878112423607437134251481853938691366101374868825754435196877980432651568048858506151848815432907688582875393535514514925795049220491599454039213051138507150124049195964493636542899289510234563763704297245005044873017283972883203143508232810225985354266058708766117926494792360363503488728640006674172957269322714999731282275649211706064183287162084129414961924176823467688236315483148247144174091746200442737497465401343835787714579311909587779900686135110135387229891909283385324678816291854705474422050109000803353721204753316330765783686321681302316484853553826755996024613161240891445257881963942260440252541689535552564426198757863797027577624494991121932038698638249305503204453724634300181721371373456282867992891492131898284077893917723771060819693011363181996186303569423740652614262621102461690727207768913378716905998667515149884029131051186080814506646548424180081841455473023013934483805664339818344064048870632406667055146659311005959382830264963048322597106673000838370363255633715533737075219352182710606070812620017627184826417600340256371268536123079673534531267215197312429029177809133862215478171068913887119247221162988354473884448411411794117132349441092734187405419747553492420661924211953338772504967268556141128421472666073751464521088556337500628514560143135903236532194285042291170194050373574279095134778817484277502663409547804168550325301080631874220564605814330853984470849004855195167430733929301403228333875820638005300472835128460627514513483686022163380602977667814993399043198513666599999739388351688809159174439368125102000289174386261884706005367406135220244924144618513780912902953142709163893761074714315475383521100343670531461755934443227532637509937089149449396701638221975188801097991934804349570281079122331097418436837315349698902236797287788454557924868625671102245455852930570227141873249234913876125085888275620201332721227424352517610803314994148228461668165838975551927297617076143364349173508651383990818451307825869571578747462795735537278242596272984076161553609222755923981956472988199725105435358542883110614453812962559399687737940030289933413050002397015848662998942535625164590904581800395581258268780345354120901789861992533612181392981363166810983208057073267215212830634365716271095707679954382301303674199050754079772822125252854060254732554577749184676070201859915603657028962422358345932844594135416187008749401555280245856651563725204508808584719030131562943212375440879100596198580678698608842387760540310508376873765260135285874823019200510493510065430609387381946378197443538153512791084449709755024906995855743519341271966134574538759058866238210736387538686716987568652383113714601156568104568617719193269515100509402383718899391759699455524927141852600714918151547999780169240472964144030145159193055985194753402443255536762382362582375550824556387125622740570734676926287066827384512920726806773776228294895389464047713404513327153103136281244468516289944956047257396753856637092436933805916883484856854973474455464348828506913701442745540304143232396405753814473010455831908493565877549405125085462548462903373989642147239129640012039750293045073718256159653337796684736365136146327128214774180220933820466352754075811994421862333738326811208660348127769775219615189511931968043382658840701778922274430184041696157614706089448423815150092571232982731849173669542769996985069127788460188286454842348424022478026361376253206303537567940697115602007528435685028119701646013666170442242096583073675579795856088211533699700508589399481602309489833370511036978849907587652519129654639187442517855247267833683738264133374442140019410964945339893451831668304344233999503293999298553262231965328453394895963351184741227433056392360011991429189049543051011827878936510827508324847175448193922743024545866896873010197059701505768448927385975274694879345146181178805391095750894531185257995768090497957454409813746661002635826686621295837345376194733300784679338751878358807260927816525475869685766824288720784638903357299788622493745556531906723916610609880417594033687168537113025290202849618118862295474479257839323408788053415312483761446837851713863529771913306201850608205940548069859715727433046181790108489114041166788330756383359877768883835135378966240265988148911708660492672583163211924710468735341288977901810796984312297750600693283005894505182982758621432260989687415630256777687833731260662456569667525574819979579821919265568352559458904977716146971598669129199283406922201509803099705363508703202931174531021749000845087146426635589975176054784869383602918699637840968538345225708119193137881633820907959312061998908304538381505249173725583156188503609265637190628402436875037362425269165126991540734621772741949577164469912362358719586087763034109233085655741272128230622099785945738353482484699368617520001306712515951853164345495614841837133789116400855040402845707472128848503414491596543927503830937947412404039697982436176432575722218514586331557721823710145220127939414924465589703927303331681412595546517326845297258905218047644883995097710429563826373769392756444315940651134649263047445403440742556558805514317642859561078699161005228768460049598732371931071456324346979238184594884025028489373031863606907840210511909332659111354997591931297594735920152498208954058616885520655631733518229979537729103594464677795094875618167595806819584623371522455821974331944638681163690831115514571872750844722139513359188055087272978369581433218857402381552374786728795701656218097399046095689054330072835521410046475049606508652345545412792137277366714271626142024151443212726930322522814298860686513449957455613561195282438702882792586335758270690059041413606426011277774339554850994797221286836427314462345493663144947702749759871622358694176694091488915689403799291175248908440116165631136528245113651929911118132954307296222575558611539350908274683125728486641998983950717789240357731706961640665195101393650599903468199612404071145121093916806684747535326371067979668889859906019782260759063102010197192750431866103233739183639810953819123221249825588930901067784233111939754471414777858691218009894175491018413640317798677142899849642036158589637698234381675710832353979611641481495752769262345730427879354860755709250123665117243799300085054276181986950604038826922067824750970559673205146603352692574472173679993958467465309346583937758623604875792147315728447358796227661587770024237103280980624873469940860898057458603162219812729993389650518018427140501012297474568817764775062687245624812442639914708233639073729914364710378207888845984324298052350194642302198757654340259929919522941588059283547066657814011370640782199443529929325580634241736648723273648070882770828236038882888305249605417380142894850882530191244052319564112947160672298200884864589510881009983556935328339731870874030355178868428946933541511975821242025787169215873346549275435237114912127441428216118262961778475777646978240094440002235671317627650864287635204965220928435708204069129055305073940499202937733320172703545402360425003974536713532496201637570039342321957502582764763642427400967289553709082834349184393160759664846034819693199707371093476081978014126739829826844466586635829548080307838435244786899993209504974177732020822883058496760467849391920932897571098886492410165387591496066223058331985704264257153702217690880713036227223880597024826000734541416270922958379098915992849939110713643933238339062069649294192315526153481692123482406737800033875709002026055277944722115509108026526685834861451032800556474312986539715844799068957372106473648385369622420709020928886645203185469196492044674855009390556768969294765168582955964271378354903902161073098109041495438409484328421843473575924065712926162890515331618271926343556248899844946460756697866483047719967910822165720683290575089083424690139400706205957791839488803070136876855626589154884562984500478016662541483918592106669839997533092860540848602197800146039708775194404463632507545769815133151203065015517696875221779430772863584221332343198114008390715060714030275377058693767610720126280494714311913642844857532616142603877172281037231931598650324700311486990397111861492317428433086166146399631722682762287440784455099859730191915861426876070033636309137956714269852043645865167096086170402806308670338631901517628951469055759490194050220375232676079655122785576909220504570007228050053776160025250479628011015960043438435713574115851070536466715744233261893259441710967815023707038018203650455617747355855230905519017111610148026139527508887790650544784968916419888685577919779048527123235353636783506285871718646014212168434694616083434565256234210512250337120154833793354246480744783412527706516603907428339789438130249766464335817773926939694890423573507161028430280831613628884124973756418376866377257409456744128433956051837061363057832179732569641983902282317799591274211761053758771188300712032312010529554684945975219345514111336172200630949456813922301512838254666672947587451266323108872183346117820309419583845655350868215329862782597842596138487399496189687326276363400444202422134051678369533063391544358696533098638221184139694552781351380706514492968420899972228310250022468578426350605288944385722979074494306979246459067908318633042552192687956214407818251023891829660981495589412455168025519499159051529425304872029498099938728237359669096159160431177710199979633598738015686222207293924964865168675665469581596702149647072615484853928099305003617830864982025657377926083983341436507317630280342377900310778680183744341458529313739383800508967412315032538025535688606984298182372121661194353182915641434492168829401967152318165905980964716314728176459810728295334781746129638841333027092877574789006435581662397504865372309870342026093548347765163949142116594647068230125934638950570097612599425858066376241763907120499738368146922983522154777292101202925361127239300387866267417559336534688342470229326824775310181386004707241547228720867779409158037399942264903329425388694704565403742315961001043548122849103651021914914219326397311771724067052224097480732530702827581753252078847782740500780817117610951609059832610100886469204305007433929950922350917876760021781199180991755064127480890063849389455571068858351982209193274677566936533236101897222966460091075942628386833021354604691267701551371032586087404465304423780320991665611766268737214328901963291628127802535510408293688973632364247588395615601768950937747136276739920236875718468739846026935648016100083597184956115224510742814921559000837242021620381132553497942733293008850184919268506621567039369484924950914279069085466987478288265859621611697092783386412355412800626118685038224261945246476931044036211814488668806652471630348665036822218361276178994001312423617207175217390250562337154770086282042891496087624556115021812115947622631284275774545855498104280899644837637473268794305648153626471332219816448906597268938987024950005156174338186010114777778474850219100941695519950256072813678169919376176251978234776423179234109867652255966226520454083419992848109484582551462161817509897823741111399219073655302775747518711070103658312539826460104005004623264262024909748481940338094025833516973414367628684184247165058927370572917217801588643306840539339935766643929434815577536511921568078604635625422964490737292757598784544948205609687692208049828390959733330377639249086588179911880422870773034429818982936153688986286102937197253230007223944216997325206343424734737125839309095642055409246329806648988022984398898542796380400089793757168045528703434147189916912555154816905425737949694360423482613219444589292181541433554832327823003590232428382041393374930475355917307553459113752225373864750920816390405636220363337500787707429040975154518092193145554180524062590064537029548450390371234931056391989119530700743995535616295357352888663041849403051747124111061808181743092970696563331365987264537146567678054049513282615165970006351535225927333888278104951961193664657602784027505915928606992025157581686845339968917690946193466734843117714313688117700735839536568475927351355165608282214285039761913581889870772939839734826162711863118022147461799824111508187998130326576685400366076185983770619396114025515026927976693152507177649549588954022718749655865725238144285775082029598820750876628751682896849181086071771916766890998849555426617626492448184086640001874185501020062842850723256747994251158150213547482767829519447532923901606644870450740113540937169291309075917586813960308896250761496118395649150030159610279146891551175249221329511746030852987739052987966620375809732695781826296652400992861781980492275729959401283185552189933307005058136593057081906727222421886792108002107595439677481063886066900960621085298417545960661969482019132151236851061203059374669485066054958966353425045602228992242815403118002888543396136057211500354299742145643388175510660858550965503063538455561444796786543899217821003788747507409672266422896392851962292007031219083085053486535185537248860683219817882529180982670441185477166370196540213168018838571299854905880076008321525909434332560196967436211746889060234942091313335075346423868587319093699843087737835287918478283405344469502183385684882814329622816521621065893749161717111117691720317972604977669565884116514738469809916274813337685544738669169953520478880355178699131321948221365558237833332107714004021414963882493428504698167802248251034016004223768264970455159038771466349957943753473449504574800526318502776433680280899495547048185520989196355666794245704702078849284550390120714630719728159774467880531504137313390511348166920048601404802522477229884819192859539695439260818346129940086509688385727300828283536031070360430218401308622748694458940323783765542679245034407310734715441509724216245124990312268152414539573052301302131794411219384096012812869265309241278457800495325622908143027971378970705729042738022292785394253243502648512626030155419179888179651726578821760801512447740509021809552370267979300106056538154206462178103987409907283381813990708695754682698526227177067049542352723661014698994307776878488236918003921731574665288929936993126622289495255784187968386283116904350559697538368682438942228720926287109056172350712006884379386475608230914244608368464296240968295292119303447258277566142050116007561310020520204397761980376782469699644596527797581092198507515122908190250175183966565612728184842066045215814476291195520537607236853869057029575165796186941795765134201887641202601963961415928075613165879685625909645178316823838504722096255912855281842530994944221107394938150723105647972611043408043979224068051693240234955841765186147322631258382299106718716985308056456917323694161329946706682799881304620348421551804313994924781077596319417615224438927507134025513642793759738749423996415635383884823433246421788533295731491707405466608999552327450017204220855789472330599866683965445112076236067794543641725584302687614199956415242257815444302060873304726155520673993282150663311105102169686911173233715035397784371773805114395661761511298157527771321884682614686106862497149141668795264321947730268473879383347886505086523259243981484816161816024179838151341281453514432841006656473842384711936123127924852402185078972138652048550764656406072696102991996215288579296861416818587184444081962030870107145376507654476788873566729061066501521314226679608298186252750326559443053685104202420063784143163212030843591066603316112669500426834489194517667505156594057205795642437882672505185955304507378568114203126769338870892194544449842942725244600721555571652990845962195481990106369621261695774855907632450335372613978920122526993026080169996771245302582376533708585520845875007861230132127933404897197503313597915815714253581090601970125356171981687706797710960468591210265836743936721635936190998082447458419291314948736495583472402013279580160710993340587155265127922676218894768037783979288931843984911400798680732783332629577336602640736066194141281860292527232212380351918270758742780821347043408902159700348269352211410633585679334827804642561153044217222159951297911831359274657133929833997711442627937504111855058450112292577775730018975820160338651228311455561031902552127761048688206267828075851982307602854088138794882522757357112200049291496351805779420839669791108884017377038850759330185726850221941420238107222075544338956857251505222333841632029455600644566898948715493696634851511702187084333899423068984958896403020417702891584314617572666674963144087725599967258759156213801894199677292077442055740376834573324560334768759619177076552005055667289517442038817422276703449523061585916274757658064992139914674680591132149973244492774023504221157287877967545828397472563345737152297479412233884991649135374262082158728534068752209525147558956523915830423010947028851350503811444295230820223598812909369768571883621327093677018442691618015441238243078262358516538538885069310275764871059489434632141884231996860042800934496115488862399415972394736360468623601678125201380403891774254370534917256179146971536189904019901748351709521911685139890377099869424931942112271749039552753949052403295255930744301228446546998103746587096344328809922611772621107987817823601472034822365106361093291393413104052985688174219673379114075248876085824977366058704384052786899163436678464755171775087348834679121330136080278139084356266865548876555288820043777799674941932756416653016008229316013321989350317289067620959892432595184163603753379006000347637109625546674171306107323494847533757594788896014640194165439787927794837978920212635586163675930127490606246633503562188043713230820018145743076810151492394015867248947783602605348644288907780044632707235989447236471736349549714839153299756201993717242818562431763176757714025116824950828604630931973762221515960898191667869649741086083621574823874122350199936957111534159521937945612582517899253203136827672100389862034971776463427868774291622956321786383043274754326361076757057031947110043239721462625711424511004865612920692039659334063396626466091352389923473270657309504160257938464893268211299381633180377334816163696478486265239768937186815207630889324157399505385819223668234580151241654751892978190515399117809070792490834318853826893456808059965847850689419245546133070207295262571027369858670796172921096894447863953374507845385088459798933704069883806295051496466543477578904269083815555633094387800361253514942898959787681669861554447576310947912332112449100692839171991737876095232070285649437389970891903708407777527728792823493927012837256571234370222985139379339093870544424571820371449004804613037899331056866298976932553143618161897081869756850486016630568539809885227306547682733806317377566465016458804119308273447859149783318833474108002190432974984899888747705227545113466177152895189382877154759615652287406607743435192914220570621888210307025614236615549083639812557908699880207421422972077463933869403617360129672058430092458761184806379569596237475022053504161538887029288163365003399925758644097940725809054557106957411257238329870065637359494691187164076949996472944125181610137122859678633059653198927231915267573939036779321259298223037008273512760707085270060161244364619320234608154914636807206065325079781614775374589492760130519971227074594815497673201130592748740570445603680467932607079792955405814946147080582112812016536982415605966135681755502351801899330841350173203096633163771400243017775523066530024514878492110294951030519056515096470795588812136928566995840155756988176702462029005064742111770887937933891898168024285733212996361531044386291744425697404722180384987826529232001184157799162632536188340635729775353387527817988881630636852087820117313285756186527799186898812357864179202750292507064783552279207165939744534770224324249624045235887195744855847192975471815620726661620289641661222013529433605302757613451543919096880364610255749920455603511520596879489720419468431611131742627407969084076367960807637139993955344201552947936237633201867883854761090718533417271961021854168980207904140349974241501011944370189721905060424581720442666731796723073427554646592299078233572261220977049580671006037508680505083356178165157321752175738996444400984503908880177173890459160090180429784218441805849964421601612279696377644116510942198034796656299890097686027516647437986492361118764721494372890324993062337016104309576007996233456562449690199655863213641786939551837029597380386889734496156441681950835456155210897410864983204279483487961952904340966692684958782276285461426134837235166992836181509124861732244871643288069939426474319534826728340044375060958504318123950595949916876867162586869841968706902778319931774749773776539173844629080350495771473415062938900190812918789985561906523066855382018817794951395620516292736764992889078062131667050067166991051216551264134932247896061049447504666323072106481917557020202370690181848997114165332279692836796593726438338124774786963554549064796148318026669695148205378811737936077873893589218809343782633249297914298945405807721888017130850349545968351302087780056429410263211652952362606376370990893549809618351936028135434395751608918332951243039378329542736863350124164178568286446495382629286811139479482940088722379423728311609980090816613546776307759473325676634968268928623895897276761657211550911395042708131778219724686762691802499392323486593613985670277217207409465749604329103703395203503997020763917979799036899363154386418898469901215631533546981495639698301161112513727700049640128872720553755901685027867434454586587996124622625027229971989373062110773085194605021577185265301568631727716416446661377236485600858010697134242488061178900334672459417767882404216911977871180557573246864337622735249832112967772151082879842195027863733124878751055524584346654324454030855678047184134308528936403445854216146229619959518362436442320556055932533868262489619316429370213613483553866999099323237626838355293571353111780161860716427569168418876050153608627450728681061834329461205931822085365043165170361153784466144894891386792181807864380036569246162232874983661717355906421285945464229303398427669555882696620179217645611871710446091932583959476889490668072999198584709679063326968649706237241677425516638478780827407471530669964453026713998317010309619003802666384564151172136459667856322297329340566551775627554653320442327364557986229585055137756265767620593255550808201272512848760365196552900718450827600375576607297425493709711350749380487572698412067632172442926847709687872726367864600913928336729839675849047685391438583946647232364201384223134223736330423468704482063684117939861228693369984781711079754945825321985587920102329116663379521412334747509736617735739008114607022198987582434624713766837220283708714947509455805371551865717902828888657808071919925669488876278044797204612723666196678126347163126826574564430418970205932713638415552921799917340145009759446901549166884492285495428996440986670336962653231038557560352473185542229881324925626261137729694878569346237214057731254677166670621266277596725955728691746128911534565336508757773786405388427514725592457558769339915441464682399614145658389761277429491370535870883538216129120694158378882163694088365910416884375839090249911108975339173137385523973450577793031657980859524613354846807650979112571747081038391054336169177353886949285898551183662457283412123421577369969230729244706476289330425910787862928374071501417038202263139618542812015924545448938406318954914036871159519808406676416990308520308301700055511766782632402349454625255131729500640697175889064035738237857361506129780420368271937794849173196950367184016483001987858676271716999428205513439741954221216881187847320053740413724930904260898165455582081546810272736694414169338468237370657042020542395467670046825430220971128208626803238827586413285996478851471217262664991697691807785232426406231668427721436162664072763118776136984705308332880991177131804630418953220457414389285920093491087961662321696724674072496983378972516058957461649054140284149720116768373648339722134812954979234285627885465946529787997650002800989806498026939839574805301144159097021338525044956636464780004132980192069857463647430990528956308211959749410987985578977600682709238720239957631686841912670651526831017592718607910643165793710005525260010910564837577577115962920453581587913404998647516623736411530886537858512187317110028630562179912676317119668415386887347148966988037266678225340568197539490776042984291664363979529455905948838546744459218269908231525239903309655820283250316388619312345796292537307013029395974905687662302837817576494506763084512782357495500207312693691518493331800040578980967920545317780997553225353546754189298328938605707112320537305430477941225756198988553172989214052832860518113011481632409593258266311351557953459688090706102094088808222105343900253374387291536017583138379753899698061383009561203297753602031402951281035762445774516369447038473472041978821181426943726033248440822844308560951043567592748554867433692865210542721209118759450959280471440974996093798020067318867370115377729604780790783508379787388787566516848065204330141155583581224011367978900035881021851831255233995105320493793028601445570781675626848305051504713455696694407705388756253360642294991693977611504495777957659330629776256822368464767140014719815111589664654672167618460311344238808471886826713901845547132977464834682511049688884684067830716177464597643237842427484318744646617800086647911457035103929518105035118723298553132640646240944610480355038096715621106863909777842051983452228928687926223924180919462943973608957172836772662191667005464914606649038395360116342744791507048292908579551113114626174644404949508863819511807226947220902076594508052161769926883090592895238245469389923249906684106553646472170801267737594633467795906575312146725873454790715463735152406299313975331108044252229853218858301148870786480345535789085472658456233931075055263743975881541295854213158891829469962485880355806480419423963293636962959733281418394193175336083329440241004990959593991720695695269144014178164832655826945845432519508672130784125106454822910530974635171918600409224571829591919404900895616719896381792243218942373426887516344968612145955370412503835270433050549259231560421812669463114484818839380093274705162463675174718718552521375941693271883113666072939305215847277793625909106087902364956028562371376985972881510409587231876491568504907088634563735135136484785827948367188881601040316088762767753942614099686879959330519728286251168020424591099520694037275455804863594213014037530303163370264611628508499943096742091104609968528741273937707576588195946729259276644399643070645951561915105626672268302292179739031156235210513869924170578057916448121108278660291526021121588149789368699628852056688704903618511850740604122686564985273540107307012017207206454888265608922966176373960662915241623660246850098004715953298161883757925239264061633949314474226852232815928068868922615748251447392704489794999116208574109801102811298286803706535649038624286309186668056457507392712822618989911642402387189891092481058367071469311346942394219471461427405826167467683975030768454764400162213799952529982144174818640639434751381991578794718927108682758539562965446589015101650856000751747789653521200514542476816608070401735352032561547023724202271709373478676678585878317460982226308472267896020625387371197404662106334312968002700927052809665030153922004093632119075186433071838322743288454454898431588538967437210121123795664289243437155610744446455004422258420546643401494074159721839938269013344401453562065119597897858862187216785320879704185372055969789515032985111278646457602365290885129863859441222793333216196808729394322231744357178349404912470990041118996304666572568234990475681396032975064179032339942993859014874770327923628401598890883343828867467949148601098882579553959438125565170392174069991409161709181737737692018417619033416423572503402605299871537355650533499034181878866534352870876397354331343297818374205218583569502409514440664659057553120405921083441684021988503745452804725933674176714871346404864223097593586496396189890963503538036261707264616207009632653503687317961208553144500150666287718201294719791235010653409598770599268357469491490688993105252608597660934067983394777856457803146144977117559716931562648646156643722717376941097248169255121214579748504347445446732215641788213751511667137351948257714365036730119304561948616166183476701607986919122678663119961179747584316917356521919161304561584598911178997200204830933260438581314056106499432691199172606187408699521348230455495788381533651360398697240936196452486880995172808881237645744972650213051702416585886963888672698782431185570028583634463355201585021947145057995569949383244421506838714218067632029233498688351075097264631299928425758483528316983757158809320263027202687071969922508910546045714861882008454622299243589659764665249052675731510132249428927242260784765808133615371595146738965762278098024325404128028001395604368427673021727435407187165015887520038556439980961180358740776665511323041040831753903521084866765801689736162636616311593316374560552830513230029612946189745194676895281773829047356929905700573668719826910289248311143009429359647456316297473326094372553588398273831327954393699247617715329699310560228143001811032137505407054201565877091684991646355679638903766558420680430186815044178941866939385403415313889337013578695650886200320015119454069845653274044989139576962495118205726633011522291901502868383876742206547018899979555180670088764044084655611095974043558604221721087959537938445150500030954918256885217905849449756258505617789632841173395336607119591158498626474282608662560297870455968310441668565223345470932242180747905867662213463559625437705398781328495590333752938699778177915012105385938808661697111874589429904778975442361940778455325894526892868098556023474219427475346902028055848969438641152739851513836409917038885925250076203076862928392475328890323079121046825711935189241118626140527370791425379429008428211611115420795325220424974498077662296509114239114722009904608015600052931317999830035962089530247260700969429500540891563853004425665873460952138342960812581151837960663595979647056419800247884296390634521602275822153738002598686993070760122208144556316116549532365425612711770618022380069375309545384884048389094647494395980915644942423022819697903756695455098536941136879630271783214452845352659328635265065421246052857624012978516285530325739792473190696633329329064379677829780219439986639792297752566835629061937595040919522823337340771384232948832396779703507594625985180214952374547486083316557531640323188011394330938337861328191799354590020222717910297208535690559699347364003263763546805888271892694910694572437531312121359249643541010567464479954014219934132905028401380826791674976376253670209750074808004167230825448806202643273432658508369884801698286472297118946768986674047367652639885367921158792395961544341201476604609774709032259690663419856375511437683985025463024581707389563259562575743979831705366207011097618143892337956114867061918558708108118874588752348874480178386507770686806974580456977560578416263108378160148335266042874122771707424457357425746317937022841995896077505599858582379465924531386761436615218566481504586728453025615006424148952289223933263836121243444773945449505625231087148284579309662677728336307757875956888861488261218902790173485780328235103905729182466869163206608741213648835945777045737336935514562327569814854481136154005670590768385371243275237512776825960550617728363379074303660848365273743131360033479896645309778991490111166297665208798003252839699118985223160903307867982578916989919664720774429447670974731207134968943106724090630601777712903369987294918077318501454698161227715669356368952754712766052917336652186599727041994741500445561664314714806485968548306620926368686433707959360190941354438822507078899962152555509359547873360327331821628240190227662826913620664166011697891309259622757814067588614014966191955835782406694946809008841693863139359495807944143301448797398223750088195954598421991528034287764903213992735179610059741294942229579681057262676491653789845805601056702194777670935902626012050647359307984525128401092858339163387028803810072116117292881888673761694764380044006570788221738262302152550082392200637955879245338788690843810531199488867665249843405864973838350230339980494029835048798613234979990049776838003423384664340275066434150836562421792292749611981572061197044085911058815267599987113142007891570997624065992380019426699697455755026528590239318696355668933108124608759307009947039726400293627007669919464700952354239304529671847740525512701934617222945311142346857930138353738908643053260579200651350005995075448165591837372689909486111924580360790733990074952255298358172099742062174953853019799477835763237473018981761684709012471729505018624618198232865718711848629060481597916704558409364707205642062749157670390674583616093583035321414816029281200566554088278414087455205617222178108735383409315307928890122044065766005591268925591801392582575843012327978997016279043935848635786049246979975632518140545127642941160028737121806196490029825987001643864182892276057411064828641593748472890925934085852569155101653632254405796347685304338570831239639517491301349544576429117073842206552398490452503359606242475520364769669634591542100381551174037968762353148725799440979434623773296664967217127246980572013827091359514964915684815151624457996241829779179002288267082423127818058567535597861955579525587990106945361189865481641060827134372432697897007533111313829187467391735212415021741660713093739217982578172615428706824252335490473120087242671605912342877871722993072811848099125308263858059216554674270580733943508143761577077265097804888393104337092464160802158561893217550997235897181290072384440897227798674362671266339440922992678667254078030887837509529294949510766958289332570127998724677904875010914272541926673410534422914527496110717467901999160818719350985011278055164112062259519596380722443906026551050060003458864859387910571874574445885406983245540034353877972119696409943795849532910564823150455301118139653525441842156646820546777340409785818948396915067062915015984108648039769631300225593124853018025730574967730852565765858378098037185093899994571642070908401550202801518838811476439598586850285639266332360115257620094908362458612151851864307964307182834810297337372447392074320206950217606461437306924021235167777164520881732110041275258313334638121579197179864984782130920768924865894721208373552455223440186106268510526359769090011798721934471139728291274189875764302712400635411968333725680837258228633153374188895244331921078335601387521970442800049417624249165040406913683018058080312773405371879537798042216594035368291349221000626473620939988378783223962241332018670197730415052400830795603049386619981308363874413944809933579646045682777853478196723414882665729824395546327709571228582223352246348865576095615143723623515712498126666072625331088443182275111356270881433707639043533705311717959468570885090702239544271023310022979170239912405854684096117999570336156031180858663668133340643935710444128215440023515433168581575523812481066659145631837313288110866236944501709945598449860926075643220479195104376202573154824361200105878299591705261987236264807133571837427175141909163743092107891991225572186518254961706415854640906095455014847608193674069300214026546310565009705963361090955435731768481457065039943448227946775532889623297784606061634329844704620576119288683169991328510168102215547699514084689516485361169862539021303845713991163527511488084711019446001234816719388960424292353538039228126939635096293891537209465835764004010525609680245140945148475887853938233727408556503278376779908118278393223510719945436453739604541433763049850736314382897841811678562001728746810348012762849664229818657232429909831534891043455143357422032948282713314650595452002751460944486477152556278551287172928110903196009970317859342676805444983557135530344729471533125248982103488345074812411857161994417610709895661324584987768504109061813479549076166379556432063643480644522775863337940082422245480862721784067955053787231430825013322992570378768062845605865421671511942389158640483475847634751534451944588685565142168499639759637015943018494466796261968866675520397707132525007443181835383303542856820550642023217133694899392075193478947878643509112047236444328966133404105160153186475766376721856680347823871627522808696866949538242346178963253484651131324349408786148566191823121414921782468285874417956983199983981093450758038061555770219292473450956648587534772815833799348297737893835465581125787180134760932727388178233785440921858347815267539284527191557381620374619843885306725698429489958006105378828655054681456387421789501040521365872442918763266210883807906317682447884880604038025420107195416004551148532627479496314613671639637370926859709904654081491622509506827834162466191008782006441657207469110529637718554766762965800153894930679718971752313598362246455307823928200273202906510591386532656936385092017673933794638043100695256594931578089112590802329782690463780702765706198717633029421912760746488479612667682204734155443828619041001890787807571586020801909958728666907098077918200607266825804517560490213601580823751782207689370607583753801873823438381006861243708252527964160077460167472378524380443980268497110768427400923881409891508300511518571108867503432780334563735450159708476938837330319582253999955643929917084897674161674180742206761576206100846822735923663405737590689604511377116439657225016805215714038869842231627932679908249667313639339935785509926369765581566123501000932998793216766561427083218893604541939859627839274774410595325641295936498311667608095313890312933346476822694312338934232937346003345331392493854878500462034569624258736540656174931163112317444029655322826346427816336991238287660402680027623403061747798817620541191930454374088981264067746861540325238911235375336618378230557012197569097063683220914161149741207562474537467428084995809147366848910721608914849613847857968138136377483406699239492596288444777026917124259316146086504860912032018121675372456267044059613837892577756747895921493449136778418504350640608009794830511634752260048946557352035290078359889107572919055883295889713293597245499274044090069783221441262674303341935718934794121644273211850003475726400931665348991633365788634072047789406766647212108190012112619983811013136695475863917952806083684541631675939502520559872320415333508491781787788628255102286716888763221428146510674897140146308999074801037734023299146792536849752852337272901331702644988718075391063161864941326131589096456739493801626547818147838926460873951785317037890224581291080499830671194177855220495842432417820132071540553253746458902631513385681150103267037589952161529110820686598895926799852365887711379600921202154275839663797053437839472681815230190567034764564572023858604584375222526664098576897420886034302865587095231150551249222544234917672197926535498100486776058384524541081976562728771734674271240818239050171404531920342538511720473753964288937163066892520372718747472559735172358791535730014423075403803478969857050211236860240156249824935095980404385886159091830800723222837839081288421552546034812296027837402047284692021284013670862942461727417181998141507027759354553551709760675523002984162888464638419745129424538602220310311956794779625320369536920319992537001345646670363000030284131101781836528042025037380089995796921126226202882065473075411727289024572534601501887589800704643891844080308222376333255273754219106179917792401174637808483251513703813523848409564420105874926464219587892955248427702849306651563437423903414877644754835816018956837057468222939950126891993331853809272436899739327906472317702401926755772249001304756509723512625579249435531861989811204082078694113628795907042892057538198873909315184675186501832099172933263871360486690121155836252546280595585001272578022454056099304822242942636369907493289873486036563449680104755252959500640677421882234980002224420667094032289485203998980471351231434145738435596008440562179853567867597215588249826473356147116656928845445189733885188475569176772385397881669215612015217734558428627932991221381323404535194526407532489823948311567164197119347211848244524556276841602886407387688191928595570498116939531688391246630968783290177530690918073607249150527738159772429611630193490751127708454954085863746985982919657546186845967222944322676412187880622700030612766507116161897393002384081008846064321720415142074009616731693845864714357124740149340199841803793909978182302380516673376509353903499074817935094907348964839343365432360629638622904791779574502678063582572146226256184543936651926211574731723243751907685893465564897073350679584926094500151669376925462491769741316124734951861520823042426601531681643551041317155208424562637926487909189429911107057359318485778991120251679287851670103694897669714481952033410610012238518503608046270205279923692749957922980746062686956266620092927004980361680655786446045563345461569117729568787204948774272365250998999741760104514466206480702625529259768277826277288075573065664209875788646530020431043782698251329354459808202129535713491522090547142506850456960154943184824821965398682421922289064541179941470919132473509154506404150376015559048457808494895166235743139365798240747232540283495829200221416045734575559388299655721343718760938060177155450272479308083088703675556706787529899780853662868491682420051410569928951118837985151015421797428476290019307989531049902514991820222092533330196098177516194767476477361813613337631731516907113951468500502427657728699433432014851071256040121340111892023817153753582408042833257357135998948323868498053949266694291700661155191318094733026507821498433703945742330406442732228927090570514511444464547264803424985273530926157998865437862593164309475646053617470758862666086017851615938933278574372554347800655851950851071695833740813984779285920226689351004867808055175315413980530783105275828503633810581730656652596455632449848060544931182145508508138314591802037818071422238087512318545175888876155975854942105772527749151545442229619554800079921929623166207192513957932082478371695807515256356624283970862113416522714948485500523917854745384165008860044167087084226383032042856022742287917522893828497737434236665573074632805682221831836806066770366597450932781778755748007535392087121552882280417578858561732553595142398578711270486495892940078843952348148426648316921922776447971062197159846655577804945914439039734709319484289933411236601058958850613377824716303488606348346347148949039208799660961280085451081635216801869212463055239924142606564198403677923459272704852964100089623769882730941158966228513550624807360527554917568137681065676222680100324114923370435378919841531651967507005814031291170665354984044151181976401318214287996794069992411968712936850302192199524916063773775922718865565276577926187714413724437744866166788504261844629975154266971920622617340609901090485313069147162716175665899849583951800012299605846624989941388951627976883789582628242084491348694853508885239881447988573441207427434725371415127844046056802022604744757626147977169019309501350494201057596022923285784680843002545735637478253959137143428057397406330286122553254782151272155944355711386793874668601317979997808533454707906420484522984954105995628298702863849349673238121907207042520535578919692545063062043108776431269625294089057932913342737390770461065024984300129358657079659450810966628617737829379569805469562548150619287988617166871910432697985704752141835938499298685567650181020856220755063505201472369563542765109310807439755485812213910483471256593470959858436508121512344257351784601771664720236164052350320584619747591083030054881822936217428792235720215730134877111845791764704621838307700111977036611933981439154885848392978190171510988154155428907027677812320602079482285834242680308403471562207264850163693645958012348577728893401409431860987551070272172038394191542047731188181093412772897201538913704987876554898088437941208464990434784742138445836981168427213510527607513667612270274187820787076755163079909856622174834787834743473660380782473677419565379366999957346463635453666517396705567691822934922997071543128580473249501814284541593638508344423715692438193953804103476115514448174400852175006161481896858769593596183591067352476577389178599636160182864561744739855664792280432230442294031773928108967808692363193264442945230584787662220877713061136157848895000009246501488040468499328775598145904493022250348863893234310780428618139057465533157591238200999658949855359068653406894247561339313612715424575577463380938060499038399671136515558249962018893097253963964137381983625348267600067221433495847789337044302730282279437517656835249802265455080508060110388590229524189222604659271988448208076715951469990807946366259739044199083140506393155406636794329547220764460607443888636298585714301380472286997516358341844010842691742697627107226814213767004042774880776408963044834045978778806517045392453253682050121121388027865824433274107503993858249975283096723095786069102267264787975420465495916892252000224740395236454663022158386352270359615363617298965892944958362870988590893127656393589431876444439153305979076961721683687724482397900011991603237427587509889491704530082694649615059305804229306471285091005878659779989305958789193193450206772029883723017846400243334513143372243775114829156756593637004549148283494444317908740000055774797350632098532227284959826653426331624699190952966672034683057584451772646268099554451062782270134233573834337137981811592070811451550020321844043292187564491446591253581717782931917793175416829413769334343468570725283635358524543280434388650422913768413215822178933516269033560088865955609778381358124380867567164580836955235840399362366944418506688175419393480546848376754949953936175190362998145655183061454684368407326044134387772809922664317361991120854649699728627880173041769673702088356772486905954209073634371848578177185818303764932008813023811116382549678020500813142611006566195269612484442210381378288852255454323108403007772103703506738985291770544363022700681968941015152726783309598163131056363504846052167927028181635109748391327171700447677964254151094089292521638187789647905323807476986996688631477454809884569750473512206340646156444770285003089653951338597580008138570919276977808055582478701906103608114042489975830597025161001477017674328163521380365054683303832427510691740665972245975768857393132115066414784009803632710787847548410784814632576895036359146927951012187774120963712478088395865381986657617056456132440356497652269979454577960449618669646865031125639079439152882764172267791237034329532618409005038354756990985699384049478902254331732597364791876692639925146386935414471939884163736105311644338095911352556873663658766420470225745895215366352520060469904561499860848116554760390213638651762250868938179069421791733575610216049290630058991128364873882223862784531354764170011012021363870772336823441431709380945701011757020527894061095784260954234806386343782186766690319519121552162826309278402232784341323771084388941617039669354976874808454935564613286647372134671894960830480895232822664302681942928750009097669099758726295206575764273147516697612730610237204521276320466430146936211086532196972166971650453971788806644220838642920881529189857371188493395966657194441397142036041498869068191729306309785861323409882355921182709076490523939766753073140205131537468914087966133329451346322644408486593490343893101389174598045692133956380782108608550507338749282039278491400246361062882708620503137743670699273274841137473789766948311000865990487546677016064616501053365095597475765207616330337534001071691904712650063129335663551813597810644491748673707880109140324784552361265088390463589085517276872572907240914980298572959513488413908264586769483050331761716147686921006732887034884541491476363133848926732119326642170767975569050610405599176810484889573954886743035835507506363793457300057545720632601345581660645462465692272040630747903929251475037088240701817053318816124095369058120513351066087838138957838602095427647815207757598944698696129465417932124075888067223585855442312034952779185618344189831758796133269884633237656581481542002337477556264958285890361676134776169110913459296500581977823845951289910389690916375121622379670808269474166467218928815032243706090869927462494144989728159561336815991267580802849717105014201373013705296055241932929235413787775828068548747822284065309651286561333188262009420475716382293180895640826363537333506653020871194123769253700407849359519207694745860458273213324634686548101625991134242759068135560003889759484263593015539836100215888797179921552962983581393765326206342267364476037793516463070351187606114226487736469331659020817569313853459367413594460563455760670411258951794825909862269873589949451752842846271470251657717331672001988039420158823090399049756525674395576420556544052842172992346972630158460057547428087866255022630335198768262994636985360361775080398713377152282420862788772922538797000839621908760965106618618826308820470044579923933115619117569734758732210839960493209603034800275957142968060548542026180558364652489831749154337042064030782106389188383464671615941197111569066269638170720781565256191037517464832870676063784125796958757020901303906721646197756144303029489211458668504226851265880280061394923067643660930260662903518435542969119571623918838845123247301839521748427213197388937366991183111977125667098909663353469422262811446266096048776669540385750281419893457275926091172586970581480706371776515023582765066653071306067806247234694973744079130382581935335027587468930400183376956389306259312769981867127228137327382752112303220722690151990803580172616321774884359548566475561719569173008756509745689516331363440542762533442189559575172146077216976189609696501737058844248875365269049271066424522947857122312772430307878033180056589161516566939222734763769425707290426622502273196820966130020808480661867471137191763767507291155744663973998312560604539460719244543464343754790863185703564754423753472870871212331123261562111645119862530975684603033669200467268602414284145378518568153258443584155476466443897286355358993742870088034622284786083167567527026860110197787051920308985955818288986360987903419657440035706359494379342797484301086766440927496590164441611599448437753052747667123710415452304317621021690103740133822417860598338953619826222675812016347564846226205807854509692867283341798558907848154624600488796912346999180124777895291471367629253380227526971421644514632102930676807768155020320235894627727020741249775933259766532946279564757805713362302770157898194821954611710014889587889505395354379463651230560860699277600102601339542306727694654859139279658396081574287380792814535934062954284158704843761950980551221209523814535000295386404443402579110779757378066618255234864980719738918116303954773636916019861877771165801190409594259614762178564073844616566650687845789853249663052546963374702401675084148005949061719641132867538731722745225323992928799573193458123987522927287225118898095552875206207361371590565810261794280644378179672073331469345257924985253950858887014623048501561477859334622186714635069402348573846113631376987905618938767641128693379317436765360981954030546162898939539791235874292773208068774879035465866724914458359569160848862909105816856644763067915837409979145662345207559339474498944001417287129330006879952025781979063328185827703215668950774619561060898339702258238071205554016616905895172143432102295779655891838409034077439227965663868318479953432779836232505264888734412289238996454812509612774928649905699443082163958110352032390774002851858464936822948141576418233308332203195780265655379113892048974424339397860932158340297264376637072955745063690208612068589523827926713152795616626036453451164558600174694600161844163304388250778325374918968627643423133386421735473779558449164204969368587901728567237134136103183906244853181245151181364005257157819079014796018261346846720342298728565952051014818058416009520325724660829481408520891612950426365763070437528763516613862114779468616425046951899265262225440139586464481568877975090553986746356121528379475046362107360851106429197940440383019248663320153616911423516530706959244333259286936396372505146417080240338225550450528641715931714315258281283898101128565808636518328698974643256851789410831043164680809728987022418151366494991788019680921241922247850621232352175782635947560595888783585719083237795935233477794397813308169494531126497915388023423448031543539847885318820717850828737859063947008633887547604537902906595779527773351829060414749257754631898370873777959122391345014704921273857297469320998732238672701217633388288453006251612127720932734728668245606355964171898194453851026332688255261757680143715377769136983776756278610339900863625718610219858319817258319954873505350682595655304911934828242328038489696618703955785796983234834176361155534001708250500209049388716282909078724393511745921002088055933469237911729944542949386459348404937767481191015564491332559691659103312458791389531926551165809210207093113482303432465327967868761238239550808699681403787221433856355086464377984807658260538496699747695911631154981041136427928017549877875067002346589667415109485753843713573278913924408912657548933489784997799772282612839924573206364604550689370208239429937911580314883514741345569022979717258769931589167676433293373745431809872287806616160694375365413047469281452757297380812321065825394988511858754856653119490173826373322417886618305649175837822307641036943037639383851301504392124071720883030765283553378062127978671559471976032634474502085113675543066571494027677913347741083144960622737908326594964591697675114836911283292073595831915128909244864231612960232128024439788334281059505163812982194572189331832656319846657393322763080028811665701023188411012944992719278299237242614829780121587349629105798891826630143500893807470985117941118989175620933786209608906650918580152242964666877553594556786400733083789925056482292437933912886699774275140952986510735331425667574019643199311494580777718187822329335405591749802623664164703606316475442209622930248785051668889212982607484904267247880603880183105301898452703120336508529308491726389791401551431697050844879871126353558476127965761789513921819487860094743622019088722909901772584274176292816766977755639349747201636347908036004233646875582957091671067971728615829572153935065385523428339498014552038890844388527281587263275245433521975595724823419520257639920998558328853549716648127243016123554956797926145391840146371108726058894300446537172313749942422182980068485895117306108626766345949953806555035949167751781644977342189230399668937612191566076208932036582524175492967603662575100464095049326847382601732434849160876861605563969269486824251397462340881394984265525878581720475841114499398398062801419414388364951604544434803393361779660095241925748541387639683914857059842485352104797660626773527007722591686985793959087533050471405019554923647625794980356393444768739752650792189633127490487011756679981023922389727450017319170361810581381989133538550605373951967377393850896196031025072908632751377627732069829651034882549172791584712053148499773736489559584988870951822544908949392460884080507406567093521625509178390674727986922631988600241612402237915238875353795045581928822263741015263630559116951235256544071816494110126425749901533613224360520886544151705491826400918511331056645928489843867547863339959339471433551959104950088429264763544020190606028871614404477751268073565469813146901047694029805377448468730914732919543826714313770292516721894311502512943429741372489535402504200282119973742274940769664430241686924970506109364852778160752274364391856361365593246981246369212845838379529778165804324005612347020878611258043243578167065093595884667857683787549933616281606086278231278292021185185699045548771750039500052257968918259254051197107261268697089487573128608121221482690595136482103990807595003244757373288685347804891860426409408555477145228154208588693200283671546687739752653724688818685300291933038098810934587052805093517589580384100084787219024752096351699729138344088089838699911485228069371438452291001930342181889348308423314554882210886386504087513587417566154886491358105365847119042642592843503379424563674006174536619773458656998683377660720599985586400102873683931772985237438443966013670351201246879477942922758366678812753218610577830111367980833307049148692003169910968891308725809791494781568821839537390880443403597126718923667735285098835173066081657181292246290862215430025287651953411481140726982350522424490695382498391516646337561657358291702959612526254325188885963276418233347531596656505150724367721236867371286495190048100452657187661949587787421715550668613019408450147156583656873286123558661082931634014414863376210056222802858274325710557284930687748480497349059236511479999146143887750633300795664094786776620774715015047760316894429391996544463435249997312481943868769054643845120000856484847883635443124349047612498041012556247649092777194374339931065676535053369456908288703568840304033346201537861173975999257807308793471253936312358007284329358685627655478320952624217441934835404779610863563905885565582933261138575840231393417269383168819597457754795173029089126153277583678419816862230982668925268170220040551929703411495159480634441195814418495337208772434057620970064909446434130512040579812510076207949479832912199267493530574969318741041889772469457329698745567271267912059623257490654062547390345516289753306466319954068196461517970873023678266499837525472547549285959217092921192624306487751669733346323205417083158434159721165544428083216625185364493918071909829853832502416674905451998047747949132874014296585720948370689711991393682999655997007493784179546498103221980694886945474121992325422555947014178101506483729903903901400340244613325106077169762337370315219396093543470673288201062324577752603355533558287028477232932717434828652091938630426080921422016820799954666081027180856845522953511825594044441439099499803440936622167372397191759639812554411275162662119359294392904941674518607185232872423700725964998822816920781187246952541515967485269045061446944254043858423578904627314012620351167575399731363618797337524373801336471916614191728582392886738923554119958467878136131390123501810142229693431156675230140519868979484413054761022780878743381701654228490111091443744354339188588988069843093169296997466189800906474489500529948592602117882708839665660288226568561612086042224987170060967996136545363683311333410806435135579594967378967009090270192508380820348203695739470713008431571128555372446988971579936190230806214738428419428077902387222897977433820405680115688935647771812366130921335497198010047435284170018710979997283396396029945332908192986990409501522882416269074524339021462787025396603491619840722858156481163332072752147223677148064715958303544201446569230019827095640703776830603937052167561896463417678978042285068115301222667461530501785269021713754655996296144254954717292479532445230628335637397626313201781888096320514605376103132152092573672546918800629226723253952871513221602733941502267149972069913538091216102273812851253902089345532404760073523618785825249785157639093757061610694314731673022981806589442360576354884561547104405872653327250459557283716100699791682240245055559841473742499303139452370722258777589291514684725024724980747668260791426156033090103434876334496949001454283596401510800355569971126336406553645138432226702690857126100502585424488543877260254815661900260981760499601915827629925553694385830061336439905544676807957457852867309984593912103271175484694988829892585654291735346208709629961450479374348495139282456555642040031088248216155312598414797936310543690664019946676588668441138086244797792298472750796617386843355107181816125476138241361283850601150077302362515321957182313468190886258166257297610212706746077557199768953636986810006562410687611737362913705690706112741238389907727012933341242814987055915855116686168974118746233336575920089336471914828285892655363357035137562372133364063912680579759130595261440660239796309221210476088542752605870751715588314354497597451014600610059642585887985336239380471375316924305899228952431414387600288145191227414676101208155480876260567310766486160950600997292498458247494154314645158991467494544247564862410268649495051408918964848971042099924714453028631530239959170274355221003331586086276998348104104209344464835161706011876227318938206763786162564003620411957684473757979190300208864410687765397045553680442654360779166982033782262741057430147503235390254467670323397115205060871070320203123412195727033444965246552751466434039526250732719485641022026842206854258414076784649626799422754805083312915208267312945993545873199351494421132406778632640511738639174905834923303638610797467695821341770953144584336583711836264705328046298268107562985514779716440093844279986204388067395718963186693196268800057018454397505902435805037308717648775128187533244820555596833337016143820684742386484983541035101760048156284136607827720676197255326040939254276360974835275739307895213696297853380283747082641587939326420779240917194373917971341597908088081609985414315404690331286311443780334196172126701648886585095246092506710797900006985825940085856425448733379987794816281142456293989347731765071649769707344252421957909814888037882482653178690489232160164633203982376849197503826582637942585575041864132864405722822477982191350280453069385333145161404492941991597769416975749063411632468492415312603621389585301732625654320807438392732552796714850365989001995202582135028282075917206934254702121020712778784331095610923175016100594040680478426367409529944777670405168963734356684911878463179050923559778303166564469730358187991307049898552528922971874112612895688776162707673146606034749314018685769520334266354257920899807284590464032485369863380990295359670269539287790831637846703157336346709122274412203091321144494006847334050442494085375381335237134619166498724768828868519864017800903584023795440992807262928238552970573142038585925730901489832707023095368517382651598229994276232330258573542467064736916494073222496947634139511837809033962246270929182929271348029263333351107393368647440292515433900451073091831048843828317044075034739101530779525366188784213165899908815961651880222243904812923322893790811144314093883705212918716812788294273280542504587386954615779051367461904231416832188707464982877377647838892388748385751566648161783051491838079861141689193559061998262545893517440282253009000544072763390388544830642183800395937981981855431288004797571907681777425105824573213282328946142549610542883065334866419607559743191180712020282154660134089038467271463963109582997412448859147250781034282289282232817952254470109326940637297499144151992901662301949785475648511324467932944225375648821993614182530856517203707034774499374597994751174903027357230509154165987387449008155103292048500139896584866567073035288121339073654861748864853641300647970530958181988773111119855845381133029433494273856580273827198462146087172423709851546994628591253393729939420088064495951512060239765767828634368888829509744899153377374668386735103530373775773915380460392785256511527560524894621662256922166217655144893025720101010858531374730568101205886397487646925703147045721998470055277174945368966711662301473514384801082633659459993713428025753243362811411079138661906968447166110455785490338067252828665477551876892733451194320881310409099929118497940401376089705053197563809861961267367214544041642476149991829797830415578844542187226975022032261832523439733298377831863639730521741753449083894755916216336067590921141405751494596091467244740566261133777319265653297239305322637852916108696778327358699818311469985902433155593338287352512073312119656052194465079451688693383594128918330197140459715818909340290783200077076397163314928706948706654311758817491715475704596851092745793671931174480975339896491471929223290527764122126038876127921346117675680867720493736463323758612310318677474202064020593581557591784355073657250245772579717910119277520148186048495931886216613183082760251779138329668343143008365010592861979456224910340538416691412411723972236537013228772596014951426433456212104365370282056095065634786637921336525998345258956600448347995756552619839052958907727249362320974774105534323307300201203629589447596886013470079727834332752857447980171544062479827457200462757889057474583400864912527469907754649066276214286907215993512645937251728412050947308789592400359502521019805848337866432033679731652613873407558918504806089870464401573238001244867485968827217617676207639293082153185168921445983152522856839706463933839669705661568975161813731955213879611037765836443425511862949889872209118935888664600402237152641462699869384129480719945722010800559361825954120793553154637832263211580083293346793478038078335276329384060484885910495247878916324866965732244094230203215154198117748126438016600786929371277087614992860273552301673544126211779604243491125848339039511259493452921866187045756924470939946275908475638672760557508897258199437692152980670597514758493977762065838073906591887091889300307677025707235818326490356477811182318580436170991608999003203800590808128970151986911368276509430615746716246904830485635387977717643881123561143241058933940397994271080831080817006737328338836860184243725435684525648450842451157786677373721404656314959679414325747378846752390862853620013401371773785714264213624071250536431969218369280490416032528389740913450033119323950536415460933684592259876317644520236113748201862640883171130210930182201888109066193110030054032866473125827572286764562021618878082245984682207458540460994883196447824640005114115363932786286348222298106968382972354205667086920457472438925137907247925923464175043602303341014100420412539139479270311384525715831103509428762426182054834926341459293214979431845273526446532473669034186454805222374371327306046959460222112642548042291700511378421352094287046620150514573331719112282806539483991656025633994815292327672092387221563922045312727688401008688302471326549362931992675300972456500625541975189447656758030575837507451612160507552932099098327984237548639051060923520582779974110555037904277984744008449324974960068150053149496439034092761986733755616484500943035114775823446428522177482130818357285259969571838454593213982686380509486560345828322993476192153812978541847774804729586729403741710408335393386765692928236308916669319844588794987142270585221377110731194053716939674496619510439686966808912520694392317005308336431072655359091621930912808686304603650386346976543044842657549127367584208870617107626241886512049874134844193155687678016204761437709116928686714078832198339418263193204666699235499341035716383004903806901459580698020269472292661861001212677689492121570795171466436477999129040416693326891545701148003732413933787220269716378163918266607445566622924828197985464899174467921663315747693920261671891910151130960742202466107071137022352175618143738339841701581974424560617337385657668947352685219338684553517334194417413009235046144003682376538871037571982098245444722118042039772816130350750041506389589742588435876292098860993375302535645012927378362199441281858972260485884812428357997368728319144897813318734111788540640021143482645057546403965246980038537029385126805423474996668492176614948461781237774912645587068107331641508576027897922529643852260336538531301294648331729323662916293917712765197946045365533307432823964277513788015966701399988300764845088448150716498538598788584261890623323656285338275277081356034824806141726623568208003113793945170587532705472661646164731497644548833099752375034243922833279855638857765742452973841926399344957483497764975640591239228641981627266702370758260823060149490340967550832869745232513264620107762698509178672951639405314960612800069203778818142403533944284275407103382570427882361452777216785584917418102476956143147208403016875524407622701713385262847744130974861819422888706750967124278739040416755523193199770220835876642739057588896046787707900239286256041833589694589241390899772918235391937966771818867985014395826059198693560854682977130872613940851412771702825360585893379049353493626376061561488954503652651791092853687605894016750340490163554487682692890793446108945799447164261372978239678033884916173010095230512743123990947236762672817334884615784081556196431048016697995296682393306373469903860779397802064997418882072152445241465782858377754216123828037621559951882062203511869975989205429203121722898316999061797971898048222473119659619729138047467365698256115144328009453411019588443915114261563698363891706524356490553140485263151059172851349797985346116643090727700352346616841514767497750637005640229720536485152047989622529747486550039230031619871529122329372839460432439291801191824205743286558000347282559224787031800883425236235464180828263692527819529193074101133772689063867706010807091039923086366187925052140661839279683698827655994262122974051263562144271516514233230290182522885224669425658991342994747523703069327469033697464883334203213207594676386830854678774047216777871302158707316811804327040427041952191390392984553873355725621176227934442703965350448328399447589292983468615576538673661815200834612948850864089932029682454903465974256595933228881568352031068030767866305335291723308634868037446718248023554522737124078763151263108414382825586935443735501758095402461202630469829020201068216535846695631068460017763986069962310016212776968826087154974434935588320094761474001573563056456173308298591117296197123297299794383117895947640276545893737851305145084287191421900293239757726476977089059363619539003507054900788866787580888138836937140067472707232222467370237319773842981464965059459393128147547142479872391098816435416264047912528458875683307545640156503153153239787593194772004821540532211247673914185978557541059519584198720469537600524913486061486724544704172683517268247660153703317322990059164706604283109754524486097459648180768167676347370398059307675799558285586471337874205199673542617143317706067622924902687304052719983363719450656646541699721173008542393937178515538251131471449997148540851026423525190593881954935646199791720438238590135612162600151122622374579979944142144511150489074850044119261637276145072434035491372607316077169410679644852592310659655135649971781673840722761780800045440825053496823083459058134521670164236754563322529988406633490041581483060651934103615915375996569463012138534184172221298358208180081026983895831652523128682445961437116202519206702134964288666859844070510473577230436594177343323141013907546431801836186330642129617004842014665523605833595848845524770833138542378793792644610658925719973503181578863944668568020250101920040989918390216077296683624554271668921438833164397482145351329936220657565947450362310616238389984219139180186252214168887864611577621626488409261277448124696662485565643070792596149876229108601417385708224898648954468739456370018625173396139477784088257019852897124404504967838899398527205679076664225250567108852118298808494521584630638597700523776058432033393836603605869508714524196322291543632115888689903568563150481911671288852174829986855761656773604823323840854884859598955448281717764062777178738560911789922479774087857346715201793022848387472527232530904967050316327406346460465398529036192300086749479728540438389719985239605323118685769273843435392871955689218416409326125829719567944543027803922360119464152154016179601973501790115313743375529725975279903748824737330546637415577426232389479622487566361879580597822243138360789411414073513210071718892268924483928644726580996780293203372315376292318782031219384302631898400053116202951046076110942342876356083631629329693779939610938714682710057057659794093579590759772578155610638096587195901907492482836116812287923200397428036631668740791579207245661684064160610319773302263704049514233272318668664018835189690669755948969426088685386108202828732411360902707114570612743284797571530313970208558566815271483751652402802130712090727478376718313130696804511963151705446960970570248713859225465716785843466776545321089938949121673658261369378433989038503330782059087032001096180526617910964787014338818567234536242956932355881833579290668721112607443737509282766792390485177366780673043158504112554793618864213204920151703893608470939291244875317532656803018500363268316584565625253969901013579989662183368276274745439597284475869683359957457345693595036726053934956574900397941603686300983766844910825094618045338147582207433071121207737563892213022919313609782159505016489175675689701461454787038403714180519982053783580331346606574242078014097777567313583645216710123820940848019518312065048341036292534583783395582160203917469172190686486737583699631969340913759382177159748916971957086417555200724553922440496435974066974020690155848651954873984311626414024741405380960252473383875603646936537282930415302742223047767361277883979581207290392195124782768506856715529666065829696188934458132155966965703724992249897142866562475169335744178856929839639802553304174293419457616090392189389429114063220740276818092661429740358872708327773818029730106341773738601864211684468134834372182403837968962311584111406203020272457880761869883192465051945617890419829766047228899458403532638652441839474072044978341558207286338291170700650545137258886774580522445640935456028422970886332297873501017714124713256383753635082419851522279632676130720285619182507842238041688278327479566651328576775393837795470612652485109899301211292324206918456938298773704429471026325686164135964190857052111541396937306121115053226985005546654798414854579627965977123963100790783233760474471917984039317484985043977063032123245095568154680470498686843075795778697957025328637625456875071041981648796128860229120206436590968460458937989909564861921408220932359373804473129981412352703290490858248657469732321128326906010504961149396239413763409012879554094990492997424294686978689690668513310633195719722968366140404260797302797703923251795646756812239194890710828921545623552135149606757188986651870381255863302563496226975059680100109885158015400727808894219829310003523823493655526398385451905972650277726615330523858734537253492112279735277322271552807368333510754763777078062072599299222946256647916219197357790654066440385837239896244661388075677296315177807117212068103650937841349214325211649232296723348986304362031833498765566966006873571919076166256142910369305595067711019943396157571644585495513970979200002053832916800948652516172602340688881739249423141090082869732608586210416742272478288690920032588695605246712519823281655795185583409871003600554672480051305574426453413685425409159396307762301912384885658838003202510847887914261444414489627253220841707674114296784310976999660265382418897945747158511911200302436939809300764041125409328949166001882850316911341895751555483002228494556646859142419524984661327898028241682524616982475962106181179417976290474337369439352422011043957952470816589984864317054073076090266880120200548967354732818682782041100240336919181645251345800091960627240143637228943422165082930615606179957397534755439266077164692238208380910380114724484792861738336550385289621420761407131958012861470620718770322772345702973162408019660875090958887922884590807834906504700363192195785934216152411177243324576272571892359679183994610412926439091363758632253905789614216499900702717351094001588852087132676823985386482943268749408944955506462133314502822933743102752047621802373912931443284827172332119697810718914257994389895013186360674811197524561174434319479911146793028769281960963549613333360556185495476105879168317420671470840449978736368272877037349508027510663366636790508580520385143091073993672716431537173772802925297395689952576345309396856598735197325337609093135904786905411439233946584559765111724409257104841733104963230586480392649818774237162321881852441694077406434765475324108167989202015778810481457005124852294333654882038553588858377978521571733428269204491451717077938385437246020454692114220886385253496403672970470767216728534359933671542488152193448520965753393437292777987861898542948937883435252886215738788551820582289825934863429955579689681283977707365936882917608113261571580317435476298239002000810667324098102858180694736699191622697950586311270102910864642971289355414575043528482590645448818948700912636914764030208990837548592201097056068685550875535244734717548312870126145923884207480530588290063027695206410143582514101469185775944253195678480793581340529227389087903034563224260331713306860258890246837597183452651659653579545930090865992069918357337676648194453320101049722686424607347733825410772353374254605070789122074671957778365654762521710433576066219324664823878607896483852023085275316240294163988985748660873490499084321303874422299399207355797330389837749458014636950593812030471301632262968765939997806598431141295780310678501005988536136246175756534305033700252834991756090130261201855243659533040589401172776561773241124237897416088218572597580774213997441092186762599000074250309717374365985474617261423243053738857604382896469956305662206683307606286124026009604087126708774503069417341753851610416284022963956580482847772400231251758121741728341697229943676901462952678061310138314017901085902447721049616450519623634422239301829291462643057318409756322145871057390069520200463120963625765510842517106021503732310921378271836290917174463901965821955433299801339447284935982802017945256400424069489681849323697550760243285605289067186381385124335646434087347411387272402763840868691016714407188805568168703402808533152488946151737089473767068192150513206298915573134479672561295693092714288563921698701376127436393329170744779548617922174693969043029560909289557221737709746818878908239003856640489004713824528901863379064041434090718702601701126186214475661177231064414083414982901172496430394538006461100759729910420555411716879933073016003695454838135672488034363415831906494556024151992859388626042672837429970826870187233377001509061115879339654351699209228419474604407607443646553062145620165865274135161957380587052444799320001529523045318415280869157426140263090489061300237984380821165045119447229423104134010861172224887119122903998106941938696515205263495530439946319896461243120546861186230976731481920693109975823271538720781004795375917139661251004340566159669647275326333977660188619429716318724324266126399455798645448383270382646592277434463344464715898919166581504179343570708104574703773801582783089473796698311642962422256415635463529895381099934127409145807180705658433496487996691419855153905441795045136187996176726459628453644384342422978286705542599204686772701510079004345899181474055185517032005153433187873376172983929666443712091607776575484440208421823940612375744364194438626021075093660172605559047941753139126615631021176575223826396820146453538641774489858682617162379796214310679044059611868118749131926435535677996598339855859692644351837172514204648220441672173585492774198385824237789767852790496706573750773721934222458901649998798090594497344268556633759655324349237015221464043646874630627474883083521859215724694904601943064016208366206386964853465918554833546414899480599078843867202713171137369414807869929889383715699588823654507107901195397186624073467759448297034951930123925087251970265208499057710114337688206528666943230775036942754671448827591838253617592869068356798661151107187285755950887305774505761416311656771813087200047483088674823817408738236510074844490797412737548387537133103953033153279718163118997546572630206821722791619595910877754961386323354879015204933439914561656906959394853733180940486660501513635089676003684793201684597506793936989197409788199684245231679777763797474111792813851931608805444780299303737559309677084590159316472268098770493438553327796675282367319801377885968212344447152019398531621714832148735949894824042024065000032733492250112407623938920476774914849766397083314955231402257329220605256240793789360872859289755450719941021793148491105054139550029178349566637931069959992882452458679003242363180928356259336399904179411542719403065944187828404004276292725998592617740429237638181180431625396965373488329409540944598774159303577736847694537312856654811771469998172067268853743755824715034146088252747407337526331600297627533898520426177181660482708036997401505276707202694404771908295646449412683628564566194736237143504049251803220643482986378937888037590383015221805876963540782928181088351733505217200396327657842830899004867060576425321603664446364839758181095389684518685670674556179655313994280660130079087686608688304219337205216684805912573171475667327113316940655483803805619774592994933870517127035904949939068420746504085635935172918132093858618824627234678244952095880881279008320024933433859080189655552575201974168290790400964264224348498788728738913731093113476026225070029205255295449745484762259249618224952219302817985232172647130767887105172146766171690351579513675317519228970857290316172477562417006814034290653885124341597517182602824539627076576933858035025341694020601810209425471460445754959758956073805982552691047028228260594067411954238988902005926240682350832329773595384543994633535540202610926778499078710257893536675114636880480601344133425540843926018847385589727864860892489998034770946978427874843513321155093793873156758717018525825705715621973862673441929173812700078230528954913930768806980026239789010776750230551569400845027966770987230634277027650396008111045258237860176464753181069714295835742791422774356131059566388726625913238990402206146347769115324071284139794570664292494495711869056755949083053352250893486862161740960562119975307821521162605861891626452123695834689923986952406049043019165504530076324186215909255008007889738196564509626934849221406200301883636473097641868304992341740153630490330785022600938236097617813418979845674471158067535500912479918553973849937643963322685318327653741839776892902192234833709042897292585268111459442568904986150968719731252518155824043322843870277735467751444568634485145953945474685433345584243571193228276804790172170799172058800311767592292915681734526702326963483168842173415808660922376663126800739680824325490553230777229139874365037031734007388985118379829838411444576842855324119352565699948843935964046507811715937469969741127795016520113511945072382632009464993490365653773765763766593961185556053146943006056931788808479967669022693486480817346895462314865424797086873009170474892315371983969056319640700654162706725307741071614706912539317052298109186236122787602741160840458908520763897557395721420334003658230606652920323678041344110630439428596391623021165243293700649443073702620208389907464821471937443967635890155333797846358557254990136886374319902725918326376925401868921095873653231091163485811097706011409928233132051019389070878062897502146793514952735117530755441898985239558068749306688134702750522571057129066355333630371510838238186783352279864503824364312413798302584885718409863435963800492602043552770075688711773395456045442240351911607788703640976401955815671362193222754079593639280651441158810829700573864366144874144251119094709409711007678170370462246960835087322362557890997526990967540217590507393499847294792277888451173834791525893242488073038109801114246022359735785777466902451117948949917943215033731682749725645597726564907710577830563754960075452576422328393410764716245505621696352278855741306089066457690009437380980880374940913221169804990097451630819160322948302942433862935129195426041453400417244269707387348538068433552849833332095527279975349247302147557499256546331475331855828996355465557716374776241937713875545046258286532654830824951197082165656197976611883067642343434126921050293348217557946478223701865673874904640369046722155152863558621553693043087853063052863546361245925331781834934295372064928710849570733252870459770094727501437871641986097251524016309097262475581117510149394019441662601986674336238427551476878211932906876096892753118165714653099022792284306326646944825872139609664439503568781356236959127659461907360016839033807132983608637001490398720103494209739709879120708330430483786787050752570028178105050027257413534727772878515272744041577184713403528332556627280183858400235125221432759341621301555738979056841378653078236734791594842892406960851799476635010513253486213523245115100151566199867155846028457075317691338565872458291636211033214027282397699236056896626789024453055620702485063914404433205416526077864386423955317562203257649215181041335732710882962293209113763894595661003090378441322459113711163700688078867112478999462083977017734755506556587412838231165958992934822745543498677268257627580899547312842495340342203651144522463793028789945796663342013174176831775684569199231522125392890012341645032399505806355493851461055345197379475149118372898728223157816900784140578473793408776856149871097445751633717133675280154078022457462091812267527010197015356813270205000871137232887296810283479368162461476280245753714024350339700344640261532149880934081345667114213846311031600100626428500218408864688926777202978518272318528417450202550062108520189969399557412316670542802747961912552090232091018360739721466153157139153840517506589679621141337087040043126336930538035104848138102316976511438813185738992181870936507228014317648075612035526046079128143393941026825519786577623362568673289388952280431587632077205762802472077933170081325962477747841148454453207121108748199699477437131576750795391188657751219930525503129685875461348338628698989639182534407580455558358093211348842933850920840521290785277430926409528855796735555246785070190977417985062268508778895732583136097707514161637230738140104011428877061487641968785224221505528655087193376466447605527610657526377064772869259303207144290123677222877855563476594433225965479291028938449478492109881415635430845257173562908996400189450351069732184573943268426852013501824973450956458396051018871692199138034954719917200734044331996492199728847844027414454634583271598526193166543179282949418391500977070812688036197532899823311582274624502906316518176550392491288601932584364256283720145467755909548616545261860662788006888980105499372115636207270284108171017764119320684192092196418646601212082244279754217996145970553572116022695749050115987383165761602662057544714097371363292470888007404167740861521399637538806530852179210418945325808595269988326013599565057435355344935852404305259203888516053247230493571987542370279923048145620746710350683533184476440048616572328394172506037683300949293432680840874823298117213858435728705342849631727362844883129672818019816330239039614909052143349137800848739999599312845899833089757392481852719705753328901059898766231445475680056815577043568142053384372112796883650367990075078103448326678865108747917925567306785389870727601463088376312959265410447336534055477864679085369803690716965032321700979167247850674365456410161315399958806105187924175296169019555693171462162112331985044440040736278889113560677227479421912511716947270813926914458961029611760670314913783871556931731672806061854121943403843986765207070802393073047245095688029004625261285302170931161168456260633107169902080213012171020363553222517279208801865141238438184145950583058746277611080922922111187797050927881967626990547615021573318336685568952103413435884507744355367845462839549747639396344090862366657812998933066250270268340878393367213730974662042725713027072321024099520163767277792992734828504162904416166323284655663076179220683984205343506103409631470599147886280746682011151963553369285479187215627171672464759244414613054708886793610308060760973622550608456189461854010956171418282837399430216553222966194662971090512299332721819560395653496644541518645679964176565031292695774659711924611804326736012127911762449269234567455718521913543776547052761663525326370506058616890713013238245670646306244634361967479594755285027642499664757385600787643996606951097308355479641604071870107951133611286997743891636619214836541519542035927709154005692340399099534006576063889302097713050075208740687274424824714280922411377553438865466802564615838048350699295736278158908053934854728472954073231976216447541799928947981212688230838744660418706776085719219000722856644869460226473338260136757387111178533447120906559229746328831849089161026053338070472281887955244802074543619537286349863693807322673182184879456760430489306916830703187385898333262384560685506379934507561461197184936422450912750957968382264653170859412205119165326049205478586165892308898644889206443417980788936338515782679280908084330451208937877147851339205356701648378377582060091641971089930178281276149449510823603007745163803562358494485483199904845949520011518420034969823905066194127190588532705053647714995493591227490387306673402534292260323201600678123011290337400964819557106049811331867797325190860726225854995606474045105006877960475987288407446421844558595637124787316993173153755454030233444207684136260227501469358558951726878026814248918728086969855580514261753920909427890243251477952637197945687731423250716417530359752097488433717060246930743996517610037027948290832760529695537290175436298848311329214191517576820769302729034433225216814351097178823905747547666921202010031722923320504555439077974034916022272128705755956351446026913854571191583033655866903955019836834024395839557690130224504737581206788322165358176506786884755211274221258383159945046961219009767363012590991842646103833349645651086812800291808215393338612788161622198857325042100090057595163798279718188269203697448912431545660169045523566938011965761986605069264639419703586496039561767619397655711892722063570533020170687762995913852596139146036933569753468154820827345808992160282092163967921215212744914996512100957875482883819802497752210854281522776337990219696410902855701711098062649061882866214152928512042863257933059037723327151549726563508732712177276309185784492476206238162110629277080560842570061130216964184272137049825534583834166697415060645478365699747645236344471288041196947765842068037486243995816848080093711312940497864868429864515979299377327327219681314303737229395189510345882096867557340831890828284658804829582109791104982104709681612767679070477750926480007938810019069080330399358334443731217522821753304888512210128988467593394250855887204733933216464337822283975194817905484427248034720396254846591088626165918108682227418865633835192462348626440830807691123926912076559300261188679100513439793527826877359709556958112684598938043259966474474985064974733006261171165949274711812565147210461126597929148086321457109352759571656353687083053894602739789029920975058597585461152575590415216176496903008920721022585247355541063012296507241722248167761488495743216204869385562293855949375016212197056942523462845467412346626046319535629910097090435807599700840742829401844993968748064481775706625225480093088424303506998013792071673967090188206428709344172857001111013090163607446862087360035556788893374029293556986673994998200405550763170176379170939193100320010977193481103924889198291602165679166098534415789366950163486255481053465607412380842931915774494770419883808067512610600874414076605428357956756630290550855515188816734702895074490446919515015657676612044370431380010286455647802749536705844563048692067447657139609596658412144742823281248940627049371853439545351942256455834077215281917675209962894539344607940383354370807623288723924978696767547313144540508703816679168236244791488402449591697251454729335379050148820556143403169328910618385873849967303722489364485210515455688044581729438760272324225621374784799521122328776326105782409513887507223337301072967220889734674273410707963988163575607407881276609716492002044515143233000504201460548718563648797240321722591735554789170322494075018926579636316443121604295163776916536187146037689839991050238733902286646806999745281532459150021609698675034423941976885324731690080876423783069021943042812579977045398063362474091984061321978110067240486101072366501295391839673454366392515551468115278288970927060928464042447027754190999951604599888101369476605514107534882292618150722919016112590182847635320492962581085661671200266421230132850260844900729598385725566494194003339768702556743733234825542248782695973652290047222810157959842581611444325690652704180483212723557321590369733976682834334818481353920337898576234476649788502032550632305093459073379827834491181993630363769163275002208701278308373011020019919396999511009751495412584352496865349278309056501819719581626184716754521734118234231928422622382632143529085379233702159294736904163655447886849951059619301578885455952528779256186479905655088652642870775786432008242653797712911908110705516190046404313948642419283563464016843778961200068734306047043615711596152752211776351083595382692199554320322934638513845632703586019117223690762506673597598652787167871099583987640728299853878324566205811881495977370696776608264268327177591636381396375469512279760181945080382250558504726138225027129410674301550240569900457802676417825644800947288184520061883936451299130291529274719801520532043809197151222983615974698015229500708732269612262017383287719216578235052189111978073300677751484223677352658994687152501253466727077007821655683064613558569035399387695358713378262365851641301177336385317605372225334169821232393902724783897819374761341988763099883795072983627847051831133900188460072231200414243700392932037925734915687134638920137537090007282455804049195012317256597854349551362466837333563065898405540668424820110109547709962793301782087787768677491825618049071108015313098525258610555938096474544526644898712249582747066764701676547998375777398719439270659373443741717842886110283948293385922942743113782773025630491942592959596440777546711905824633439251222931110633387423142380928195632462805783190884796943260313345998971566130869365061001997501114655964613866521452916882293199996502836109908037521691106046294847671866356251056273771663289740548597471684894045741506901182637051956532715611783214364685636213672879504897402038456363727712068841412659190553779119353041083889560250089370574145910531795270299485428502208597667969616502545244715922412895951134697204642670630507058384356397588106198310619549875827607613636579313464720719432112331349925883382530262192594346390121344485054283874375379672796032800035697782831700497636246719282547507370659940952726809738072189277942837177638724218894414456320686646049977485694838909841317286572025872764878369492804256734943346149702220006288667383059782675392507116030890682103211811933981281450715704823316186772622441508494834852182801469256999935383801791305840315660409223228536846681336044096527785011005438587724692240954023600880342978685153334647769304642609779403399476923135470927405928857501974457569200333389810446360051529108801519849243320869916178432475945460125540880140611861305140124091400417396835910083071148625792479758813974648064026967448847763687546366774460008429447769473027561045205759687388889120458422717586287155727601408934658729622853398636493385056434607935958796774514399317453158884938686772014228368967754223362601412729850515128478660654513948787130450430928858896405798875997706640574252285156392035104234001278299753320285308844160119611783174691169180300137180898365057784860216000923531458465318762627052044377981994361358124655953053397899262513064877374910490614092313121491774543673067048606636541373971178903877540451048051105397770391262219901574669414060991931266047705487204584167122193601519928886577474271902128026134528070854533329838545224923052664908404230599431875519909918324183227394705343646523469297452316418098956798027658818816701309912401776808047005038953901427615299516006794955854017176387199085261519106314639052009861144318076616862934961121772069752917852916783186128703658335257889130947017081486571996764230630068358038353618187744486139992984401886117485046872909861803370246270717610592443522353548588939865053397563936166882467708194796141438988073410153122384384936912924254792530900178453454433802963902975417105210074265929097146544934357512102866323218413093113605521565049851280719637944855536731785973142208965302105606979429562989227386183141106384094633963803799703914174675251532937829027141616600061552237639696409028133311237692570113377985779904734301753786733261930766187607703138787132286365973190162751177457792956631861619100244158478742031852229066517362576752858073051230951530838489065585452642150215199692316282423275825493755491185084834054590969302586871199624321343516383660786504365743648382925180091934572337154745664417886475300755424783345744984174452886652959309733666307442081533334960918077857242272101378329689310877164495100524029326528942925174990716146504077749603494829712929022066318392426133475149928606603745575697026524597888789398781042720358507961372664459613977485840935247144220007208292295652188755714141424387977943191820280410931112068290236120072433626287386539058295336520877158855223013017950709037992795705019795506362253496311542171144367473678704071255699647978028932841946345156149477486549639586348949617185526238354798427208248898035333066372214567483239304521092459530187395233568429254777742800453587409295289732853707405250021465035223341426773811126298837120770930672050228829119784271185289257608862904990821553079983343408011140980846066109780253782904977360182925878780933402877124736833802156817837841948018681892602079091836460171864858356948302579645870804813078093539561374681804435146770029157841100134179732847952626689015831348206468596139166831522424498259054218132510763258250629803364080577813439537348585484830921076518492250685188941820426647135523105298822133592356734427997223613683504911752833059338587427257268049373845525214132645197886130371838812970989042739373438969227098777242835640000148358558360686849004595051016290134785934149355093313033384659317301601850272030176366412792837896690065162173786732009372288489243294612708489634977118209833149887551706181340960092382013329829035653854555777973515414441876978495407587753131776327946210958176568252375056685037368064263133891800797763269937080755845177875707925521812888593191041441959944452660232522805969853264277585362724508844101386391269942139526403372385393484427997380440911600048904218121920685700126968719085426511648784926865999282150884097862926689112468359804675812494020265901020835510926684254876239583180487318004970279892413252549176620171945863773046638361474429590018525486258605347438389299068404122302252199628489206712497852560429830332126300311620027900520187703572469174111670151096435043790743586568482252053157005603912611646828670331240930455114703589042632831503156344665761615854344825728097093517616762107593602458326398049381772595208108050987896347064251897172083786481714733391537338770033454943874342708601439630007589908637882736269929262199489187292369198044267458101477456898012046880508448282081785320045172033291260642385445630561097284322039848918958085175087371100447413300860800109236555544140690669262141974952902921831090052911840253108479080746350316786676584334134280395077490675979087069099111268442518613411648241463984244121456836620057669208746618693826387670325088020338157778393932621693743891776320506239705019936627081835860075161980927188963846842920370467883711124616650866494997158375191569734341445980536808681755436187054299287346318890875090294189562619752434940720800369446424744535167213498437790474398504203287904162342640927483689762376208366222310192267408803044796645624347076770816505510218773054345938768857169075187830844208878455202735440528162051707091939014226124052200383531218961733654293594379111037798845249873709379136281889838604716570325200624373860457474295938928323035822566525473197204577604924428423931277463194491653936644399032750432555426214108839094046585100045470696851637908109924881361705121904281084429776420203738557573262483073429686584342032895910435974115496437090239439988071017193706609582518244200056828725599881194428727111470584587742088135918143903449643937217594937012227502050779472210205619206597372834191909199723620570060692588544651504686272013375139891409227832406275149772261000836265970852937757432669783487579059601399183823721446576430299049202929033703811121311578341931069538073702737944319716720894260978675066027963225299056163077974717552160688428462448545598087478801708647816113366900272899714783130569192188136864348963558866446613664864628140597219277365994247033165094422740252330122606671797929954908774237831163542599026385408720320836523019750138195955630414648115677820391535248273777742568001001834852705014326164905609102200559931004251029890703084534806324860707621007066575309080485790317528039628577406338628070069448390027069783916438591267927904811289762807232867154133891389791835841418201002748524126402062309669900649488983758322572120350989560040402340916847903478247185694208381541234591954892988459668977365017119275605786892991853982977014978565499591084322285337047442296203865171303629606877166139738020475209918088858698033920180756538943317948538892787755099928361222000035088002131572107356739214460988234394174178391858280089010390391133884393621570996883981814449212262298312493544377077783866115276868426929725568240023236999729206136276138280711935900994553370519414826000397203708921974015583966361251488371203633281352201659196005632416413647712919610683044783400536460059241747333176522034575737422083092495196483088478809816460177933495231888347678159648738845346459938395090539016064246165827727658927242062624825594059927736544519599377753111626405067923596434842820140222283013917061345739769121409285237593583814051637328208847428947950360806072177225955184817284432063464942282079801630909787321914109155178370883695967349629019585109681252117888947851188232245696850105946376921303655175093903264710981612817358886552168957120481278989195690451256664667813174188111220425331732901244977181614552782864337736818880471537725819731558799962410081784214166902475095591760136048406293030503211140301902669756443729477547913132959850425926777733303016683712473906972777751471316555733091119391901690523135068090114146777876425970270033319450919204124077462122720130869788762622746061648931756506107324791703949932470355334897413996800018278581357746182818148113612247423151991540742110518551414796673706978662913609055278905066266936813903264777675405810840868581999990198759712160622228613753306952750659859246946986936342777683608960690626641433393355149344588375426867299969175487133421669138213813264832034526293965124329498270802235039718243790511319690107338346745759835744815027480340750560140818666494702804170924314489440640669515723071475373445036486618947561298171231892959464388967957276895511414957311864996086870743257426507675005605661338152116614766434793602461658572617624048608025728815909294865513717151728044471230962575191948722231540062927933511888983973335939744004493933178432289681237724679454429047071595942293807241324932524444558074962603458314322520050919439180775468828312218793910067940421506820700716167577011762007158811128433905056608467851838737524650195455158750625908922185298014070308822368893149107436972778681984535332120447040671424089205785813799763176309246590850687882047706949710552137727574138199846569590948877937217426781226631250377602826054201008513933902602624569447137694424494185106250200918607959861476930874239523314534406599457840757342104552174259054117876525216519475529914394416161187126647065974546374284681600508131915801164511705351201389494974411735816990549864741887416161139578395921606477950857581761761616270023218251238625540591959227797347795716697297281295807114156925136389749895402451188871178049539879338801367826212544206762043715504298959177444686801096908519435529834388755550415028664324260667794718580218730557303621096923633249573445404819310600164925540367072376003761175016702565870049927891999127587193702252170953659139881955959857864339592750298848242352832094668405661956274192276462325339503260378850893284520927048857354790986030074502231674084833570190836690703853234396296281090148370134666049178169484120033724482181470525362670877730232675094305280315833295847079599476070547639070178147661003425182462575905430943989195497820250778777723552685145230223886131316291339477614355513689531619863224291886791328567195035958131229030562937151935405174142570622005250123072191635032500396987921191507379727735310444778080423719310001540524126078765814084943401943407446358738617797866371940514856416744067311727095343098275960747264259733979384913414074643242136167982578669531222482142678333325041993262277399490503158936549234031912585455676539912536524755210887832451051235017654075980410603367494908620794401847954874881023857770542086034060618868082107798857562590012489795987891258847006889479071262938306149119455239556770813732245926191954706107821927607947255924717761540194017613378334047056318045462893209060074527490606201124633220561104219440116840297000785542487761411208029861230009950979690250041680927107354653493915908509266701666531531549460169273467516276184611330794914724558375779571008099446213288055605199698470467131515439085425409533761206364245605094623293709356299753922274623209032357382143617898551947029352380473213926523569195205214569235642435649045770189130058139823458458600995924893438570068960554038961817631319914927474828203573662473232874217081868487004320391797129376766524114242664167952651476797857258845857168967969992630412377279352593678898656084990046820866957345209437966286986882494234863641836692093759012129848534144122670225144645269750509182014445897245543092813484155099089756486990767517664092002468143638450219729047699020831552019855111076994862758480315076580399503330036741879633098246580046542558899966823941204322754053266710385797271511634583550165647477838914140672403242910863170876867741432998593608676470057575478325273690487405030068762257317291420830543066870038445166313545453503079517184944887773201726343717530798313555335479327673119460828097661936462475779295781716679211181216338602305214008148619147721370540439385754843349724326725611405732742510052114702712273824701473813323697552911082800776949269632886670231972625901322244363118596768844537347212186844052176288032509198428158596244845104199332347402383977604179795675857335683055491265695603090707450347640967152809056080284042253673855150460217077806869380230598776208938779518343869396251906002999538509668548827950915227348160166539440780167703797677626439037317593768420592638284899704295931716427062301516081608969143385370649910420635585366689892668324832967613934181586618661622582443248610911055837477537320681593780448969340401544040794153401710279919112401267105086343981223106688779865548786601033813721354194036788163640140837355187432024139448000810536678661900870846795742897545604869788395753829385480134535891428394465630309529699897134268384938300869772579232664360107756983075478847039170615974354460912356395636165773926488776920715359134479121461637348039024748328189480072378370668668124926402936830057703726083564248550812911797783533988398435790666263475098462241076215762247991548420158707811136880458750395441015022387578428809029834900749045620653724259853610370048034995669205470549009922858505038322865720233680914653214263725707700425089979600937129837577008482330703744525944461657533029491589322064811263494925479030001052826941194390335911453751259210915147752568127617261977453598012375857487386186031258494349275616289959199521444268203968053081089333046544404493893920504899084267932911199809947205924156720006376741664384743981947858785396606767799933943051948235948887612285796691289671646887310327878243947172276155185560181678037020416873291553509591034564679794649571781081094687361304274572112829622963593662550122948196221223521299577695864150346715177960908786014167669214733240037607073717495278952733992346005695936552156985457106430757528188332281326961372386402999392391062965529309619698485561738300379518479758082727060561502458398764388633484566005050551220757632253103743506893511539485989186519648738967877717974451482717627563630509001768761018553996959067945065506573606584901582929175861918927486401921324065152330513487290618663381822506130665818049162660479493048156400675816394039897945034737326864286365036993072971873538134141557839595416241594346167980400732430548977469805651455956672111813591908143492563695267472351840054872567345275357280112781026737084838836690154032062250009078582825088449547876033573878180341317816810549877775904244842526470591099944648360814614753320572875825640290166589164256376649277088845389207621016515056727714950898028342968666236625279825794919216792867364662827964372717964895549994949465847553209946252687319193563961416122165186337057936352710083468570402366119995737157027845356574906240507081034046333479192148983490884491649629061699448053380405049828897820719575718672779436271518314432772097993792445795206014726559995046680535256710816332521461435237187274498330409422165016991308332731732290424652229528562525675131379505713135619639830245427350216791001976140660123269581612351391857637153699929252978544173342490797968658880060340108901345657556936101815802702177927479006373794572850072368187924819123263105563263157220098838702460204629058944764149773504655735179768026903162782516860330306531122733969806629927553461922636278242500591723572372661267758766649145268751280791557998584298347625565565518443694445558137074825573536206788997719666990249152085208769702243771780946808946289030453503061252698136834987995845318734965705305446000691386124395052644443054549754939257755554374960785867007646375911572760167111029937839453768863028082193158787172198533063317946269885005364841856122793930637588990356966571147719305258941547069301732140906475977135752359242765133100375308341976790762107916863091392144971212384733465377307909128107233297105559262696394026692663483786916649071381515897301367040065876352483335310760096889904223230036812033025659942522591843961275996553344197015918752039655224853031824496065097190325763485563957656861171886857755831074133422599265431403015174997045323075997015592929203145216394107909120052434525671438297392349872540385590584065765394336285045989563731712176713320973908341153813457614995793558103685570810979560946497541810592096990657704198780323272081187886104544009590346448732792741114480100236236791887027374195469358612292172627675919894106942385240157996922487759792650306210544066292837832658781468082768720216078982079446476345928292450620361894407693579812510752921256477100993552345305865160463312088089103215121948133775366482927401198660536311553543262629247109189311519940636372751746251669214701901449166618558549333282683748320373883396189514424511819807361507781265665066771200809637618723945581515449103551957132331563992067931561843297208013537632602276790841994309834792337079886976791633158803997673207882523117950668613415429012856962634294758161822948323786348954569007275616251869534581705789327338362673569813540438772135556753318725837923782882071429060348636891049713342625208382034785278865963273111774976839839645689921300129357243390491663566662526317066846704431159574400341451868794195964798828911335381114422108674467079024088246493634666524518438037456912059360834201026950751852054667324082390685288450039336140701062026459045451682479339691521509323697282729820031072842198200014581953097231198625672633072972511706375953991941517058455299433077416429426790125488028739241536082635631282184520756758648376561110383271896821886272128200528869095759331293139370927081397273242620157569925446486877628097149489167810807464993474330135512389610175883232497510187224894622028942125721842556038156217176256898377640673596498982115705046008798165782759306162082533690045657628113825804663036798292080876023043193935151185174312442381788362526275144184082246403096607069430727045166240667520557218663770641338465933320926664087736900987012544781803142579008615574406386023730883803528378651552901384979103153415433322764355451005243170173568476154037981472370200073538827622033469266998861427332718406352198936939319603487441422013734579621377761416875666294491530201297590364583657387277585974769436484167721682373673816811145761077756344506723827279116919371451658327904704238960125431077790414076654340433734869153688071546801238349440226269592711830133365605209319597666918439888697479560761716540109163744817390865096827531700141960283190071107088157221108836264006948458326384585547614378548180658448264695620901712742430516577029702885828422486947509466762580349381405541080437758125592932858734549870517066937305075315816294398878644763446739786640799607419659073048815786037580789989680666851032998453994897879854190195224428228427257357491124591982483686735713467353632247539079808895533536981169244997671527755195920832966201629555132589307926920154805492580846778267252356131621625481936676662306575686334278857797060809767960935932794601594161080875698374585047723799522705687973043824965223566987709840200524715163518832669980493859109759132458098301786807387728794073573953169056443774118747239559403055437788149916408171201306808145469068990921732824441954924735188021730599032102962348479386962286257686799063909509473598107108974435354260931754909698332239329127244629872712411361958732252435880601589971120718546910578724076656158654775236897374445295348145417774342104195035355741795030306686928684180039849719453803829130071358015099853547496167498855360826199441674024019361601361634478876909097785552809451401723601152954519459168522274531456966845011631820220128055267661128476238494224942581639760663372705204785359672746604004961434022599067424720985004611717541393907706050422522851872291037322431955178531124582488406703732184807690582590098363765735957201317936670549589767055265955598334526598517735020260450941331841267212103135522750375084200818117236700234568791850779503362859582246471662436500554818431503658928645958433905595054012668304976783457697214839082227095251772099537273487820435596900941222005819185493265931549781986101374144816386328868783885190723641514481408423704362470380867004871913410359013197748761698917562615793808167938000090227039488186231660628825483640859466618687654868856075176621676794183955754038553704714824940729282872449093887642454761898464648008048949958462572326859748615586820934171432735464096259234317261735399787597938051282108792220113503350048470729834919075650104389606108340048915191841162849013038490724318564099818224550174144117003229984407816564926367327171384781748564336410543528278291609653492462491947089020574958812309078203125621798061853705748998853719696361824622682630127237848691530658503638469955430984867124517425030459294523168962904787178225200611453200122067156559324550040059621230463751107427478413414534972106896685105125021186283771768157856370047640251596196773743865122975781129057302845655757682481457264303672465429874897153768640585488739464903300466698768536763991681616501896489610823339635210680964746784110157308004230074429715391937487210775059231060169223058144205190784073940762044766177843634836494256097424266099353158751206134726977534879983138910764030414272981633658538683487746364420812862108302827453961719086519314082953978627653778857491546132102938959717675525410779850726733439855483700919685503265011290468872503266679638268646861611677386537349196428262530397837902561656782573073689174569496620685300559612234871252136337944811493339656673713180981118549570361147029226976598109429393273918179817285084182595229207065039134792591446253352756793624220608080978299704844943620009848249949767050939502851949926993573321420094289251224568881140033571757881719118790694184618443940153418015437765593286805016268642528483036732873159684729499665328603433057386302364477854788492230747818821354238151769142874507708857928914361408759170943801762813129884741709256798796485239641272009401706280521221116948111310066180679879424413944895828093029082870504618395183311269403474906999043767215932224614461953660225381192996693002409005320113577448350847893728194116921687234368712523775694321529535091332063070928151490797647756510580605235802469823540423585652038515416624360866840182955683856225385004291037601966433981262617824411390103573192563631704012361557964818450843349221430432652092245895268166967445078051998063441081090184849906483621843042093133494433037686445248800381331285982272262455535099209582170655758209457978105040584159456875181081132698161748922649497013010209337217304754750587591380104504450127800389831070510272672011224278444172075589695091002405657829458849047436132525178042427624662935616449558532715535806634322353310520117038131202176856496098508019132280436715757087650645099641341983991665960939059381558584461842021699016690700843886032620070997490845554696939941222828316778544650791022775255780768723491667864660583045843918852514504011211120265248679238485212244548672273802578958653646082902664406758039805539341976320442042271585398806782140112179103606627486919585684447652856277296163003391977368087343060826734361824980102029177802831242138156513376882883471059738305758692785236786893483528906731001056194134043478301156433394890511147970492892492667152090830910396942152196723498204047382862274638468347743223618185615349817341447343979704182833292883991358991343489957765455333790888602261018651473531472959261366394754145520281716612700564352592255689868301921971258772151992051271360423823284259115311971989472115110569842252659073900484372098188840790993841216494925438639977881261775228997987126270210805126421539449263960401005425502212312838423424843756905337691964773624251979117741002057958683302697226811019115686321823865059706450663861506404401959884639909321342403007230944047858095473237612481175439181100005790000653542450260047322948747917829075264724618948859017796621990469530380131067154158068296163817233506144185791040562379139315279420164895050753170200688333982969046089914426182759414437533971520957532803239734536645327773068481566988201511044091431277343122169778972443109174575252356502473661475239048934087667079519447319412496410140430844343178048953580958793259305686421666173686459394335556009433577069416208654311696549396236100592079740067635300382667128572389426641844773675552328892357819597515080478041053530024161587853083832695611831883546141963063176002645078506140417385311499969483804194833930142689342711972064713445763739706170239435186432003239396203072367905763412985669723785216703551208746951717620366080587656365243464389429266534149875150107413225461365431315697301860416208699149452318498033891320256305149056738474822287808513291114514480809989325352709365365241906004673883822632591882261611541571925549656479741460260794112947986594609265365805521032026096735426390542805820064490448479905343520986957299322931800601540655605119459974524199029365992693970198289656299143466874155850055756619860988136931354579617944155374209092262801031741333911381798131184912688887557833781343514966355813224021721356020416865562251382545409947187794118589579391918358792211328172659552765321535993125111510710428108333039248806103517817723339133309161280513657092267059363049759499734658274803816676488535247212567948693860912141169418926883833939245900888782629205661144938119784314973789846150506626593683902017594108162333685743653876961184499547581093928289078477774874168966213118811437087618709589022536817773027759390423363954549020625186917566565198791516182386998739049009866094497650909778880516323422119381433474168419787358326361495412835678953793162693796468184787552196502020317474764647613275306730130924869357133723362637510060748504774214918181423237618202247088751746104918201567607126072723809709526657162385000161419741911843818470455546712341640046026853973813749070462422882657310731683660174882425898649624511886313860828408229009204105648164534093396067929565733909062658157447074906817584885172197080322245658547744368776149076708599429961005747964974000661769371069933580926724279626967218144134392533067752951372253363996950549298504806435441180125617493704269964939854902788101692745234890428112329697848974414177973019842049599614295606850348800790994285710236195805371916760292477198427223323629816272377288491856182984889542076089700524495945602205876255949109790582194732234061648655403129205532429307664903425678109062291921233724855156128540965982473810239421681831745366982574747727014381477050781248691055616501901679399177438584471665630617575858938916490285416802512196516468011302131462137192693386613129323808146513654068396690485957207938157857507045017267231518170233171950319888786727968855731210199396800381512325563956473114410134104775959353816675652510959354460682974743179623949361094351807001571273169075003591329539393509912447215249659469304480192865684046427883381466367294760888321435528827426211755896528002228713827345487028909948416554858983529684160166553231731369910715332442736445061559682189800332031106890018207060019080156710217524038053399587202900287889091555638947558532156116199980646235615582951677562288676220998929848068151211040763402713908397317682572746377838399948074812443586982259269314197942323610304085991683576343362223690503126851517315661339718290329313428830562975001790952560389662808222200964422958072930211268623905969633823632544756791618144335575076387336107446174614214501392859464466852231401400741116314338938638751198401442152560180018021594247356207598352733229860575384091221331390375767195120084548980883045269444516518958576748431927682825024084641568233560763959626936575917551069706254348568931630069675473665832161877389419402400087944272175435130121260994283893210048084862893943097587667914535204801478933799989265725051754251731509304834529613190819892701957438964931710133669673280209322343769295193582726668387832921531583892311866409218341284961435559423502362009924457660007619008243446290264147921140414842572634497672473439824451515819729405908649518051462817179239378983374384075696024212264898038891643581370852089170376959820246585833847344406119914782492992666464063056474938241335488690932714286852422795242432191991974870374882648093111306616638800331063767571466387816570360901790296012889973905966870114221054370729098240493480294909161363584811898429988871920522720521937410481887108470049220613160639460591224540150319383740112739451941699357475945758758593236157543389896468391294665557524107795071777957507059080537385525412654828626663408484677096807992662445169594950474432457302819099451136885323223160135723066439135709293876279984731623752893744859398656216976733063816663385482857105606524704460351132333030974450150527244587792603849723298592353299832563160915228685910817655482011251283528247661495350353510930833869981985940955081536340234224813006030088183113330543533801403855822558528258003805696983160135346502211604976815083789519037320488343636455497975522539579596056474433238924343667772075281598090784863630364047803518247358938340156250290928937809490146861389824944284145238725530614332283714104386572205746576886189895313235875244161742701433018651081148074886288938937509490936320203548240769403659639269034996710141912564523512997139551453233146232236873873771917390387916069382132904792515512109603451108351782935109202158549475234005973862332893446650413609555355589269131805534400122365593919683938543711520030168592887878693318993986527033055403373457694630855118510968723710726185481378091868224930978019189557690318083454826721294308467499804070991225331985474203846986873806680434253476582610552722299215054062390196143509294832351561148428420315637542338175834975284036252862439703747486293394484948677069101633920184906155352627041023844980134524203040550625185890669668440555649737499124755530234488002784134495065367316758766869210001859348623905364865626070565055808095090187346456957868687602512425639386771051823406674815452186490876513104389159363539449060750435891977628654508215873562615657721707415009730171945616665885017791994844640714909698004118186840203709602267840945166823441982156357385982907710634258007772437579591609920933095451640323049502863538870210041800445254707304500620058587066162768578460092350417934522915527433431600376435950459507160595304133057441843182467144688816011257306698796262661649905943626195437943544831682805399385680243202587604592416321119503010600471814232796244378234432071126217221692762190024393804915003912668029765418854307967836774870247930094090725521662102531413749323439185072169054562268576008571446576137172440637325239221907799516537644007589583650062081793729162628428296521643793360075290242185082486953515625076399095102208281605406184402603913832408988165737533094932816325947861829588743134623389951175052007287982069651753485389278311894935414476892904153290091513340879217721512735576233714159418920601465002138725653592863944835827413017486998179414270143245408195305899370157809180690639848560486887617551359390123000692502574203488961549663109137874359252927840671998828299118517665132629705500027406158916238672488127017668972334088900860074128966972012519678435966849695727704826025416341345371134000600899864328139361383536040908575747692553177683619777866130479310770243750009774138580457480832018608928543278445287894151378738391193394868283138113254988152216258851503355204522155012104728994618234254497405416082430349396171072657353372229222911260609009999995449016161016728763584228075345137840189605936846331718397262312380102037516241183743244479980854124017736586339943901141441919417174729161363066568705841515294824123941798563193261048747368101250433517299876526729254792363579712996007936559740159865321547472186382234115443581875508245972570144484211032191428362260161061935123535913591459190780767466762784550287113418377608148312756231250107136812059410685637449214556921988693310340060839144399217203209262469707001506668619415953556350009104390460559298772528471257228256737195366405709007690925923918736938675893898548530701340690948027666445883413018238999981249223276553615788386401173386704662665265538645066104104323839153656332827169178543857992779404658536312462791508412112874138016194561597405969420830335038378062329619318800668325876475669605967570932634868087055971523506055460862871594139843394691846726450166992782012755009034612590031072841337679795903582400378641886418892927815623781124696961085399775947341239675225415632664485301091047868897015974390156952347995215161680550045762808210691801786625198328257127787271879964344636861666196381427931327785946418535750365613229552400856789151104180695820448472392362702533289864910843885928150854049740129740656309182248052848984632261405218448702669145429577585155045763072703570110392542563921899051739142079434432091561148322178987164154967476618685983722253339930657815903522065211204230308242510721097641158497050272053901182905078150047090118732734655422334079749298300016788071583530261571446329125887987336501274978350793973554928554609432223303634381905425886091610792783680602314637698342768677059814910585722570848662363805196707827784171118858431006054314305406347028819810533900225458532743837930329444327276317537046630359832676079987642356553890634134506152535615548734565362607168480932965920992674644950599301346640167104315589313416868376344133189484323033350002179978874452982976533168939010459453666630936366286655688905364515231292557064319866825301526792096900547545622080588976491275637490629229254339287358105684033770120019012417227303545976811221062807519857312541131057500913265216448119799202925312455560439427227055541674824094371832292697942461656596103268661476427915134941020805129104749220513568364482442743446303574697945222084005972322447733786693132822001739134540253651657706818119696466360872410387247308421663244397510951324667410045769139290303674448674533891035206369132111840887837609217547033994983761668024742948035572178122876134450377349704170237821995327971605325575211502873640444638320945778085288754870025888701379637500910670874576242228386178021175763108295910907986190543379449777157983163598150579392983081316235446498003417999231850872641944008449122023389388809693246975297399362629149755656698078737942068892782928503404864856910309344829402500620287368091259583269588638430763826344688796462538936784854760013612209391138765676874076588172280676717431752356354941350309302085925284140108988888758158855013834181106282620874792625282647996858638572791387909751294314583624698328157624170928098999972977311648438314647735678266962845240167301749370495941411993254976152916061919574233529588695831714994534027235737338050289791403869878885305468064603667147930710862030656655564790674411998222362107437879221547668004017001430022769393342085219912742223814093322309281883421045425340025934279189483606995150666623349761149904330229505708983945564951362946813154254041798715796057435679903210186993143701243849097895641905044550290361887355726802861783001533508990287974335908916872646766214521132158801553223136624206255304482391604479942376680350164911478736754501399008704400022263232545846222156718171306361532192863599002861960983258827291675942439890018982493724559814387140405403008792653154384176817618287277736522908065775224180944914313883768141337867155826257034394925474223575191002309138997887544666063920121489378137217509385944011123871756661213475707309130943143678702049408044786994086178937009003377437867836680053065772430382729631021786375781396352666623450470122092969268005418528810217517563204367000611258807943245672182606433451723824534855772878604137334139294486844576525117611760352222730570231622415258958835278940428673982887293702303191785027459091792338465628437111217069156357095643327520440819514965360113553580193868218351711059319708831613718757230796298443205133785581964510004344877377961300093242683066029639189959346697754479555326091764589350893096930157567661713270973535816503637452789488201019039004534282750452697132671735431137124574286041238874535548639322840977001129260089024853719339966229710379628332467770740751234578974308870392140458499489531558140791487416734198221987431415455516988758934325042842589876248190302002688837743737649691398253164132616529403623512153315392869492528612974092530188037769790650983517067874503769662116643161647785972578054433119782749532561801918626937323563594750681805204007143432219169685215128227978355418658295594410148908474964072340404724990729584170317288633994926113769628797861745015863295006471433456081056986078657563602055667031730951733447724045636527046658799124409375116508707899246837906535101373889296862637787053728567811749954183752662615013122825599950353262051540932366577703011063379488509545718647514385675648903861599081743851023130228296004081659290567673424367772560435988647738667329762695539131993524740730554878062288540716014654959336529519235049523258118522259209302599463205499557512091149614416280936188360686376049376051515131342552235372171117868692955890398462188719116651697970562208600451907660344956315128623911452553458176225902216427139588460326240809474102995432756810370684038054597083051099034972163924544635222966614413847866426338862163371460959052941878574625831269201095350203902707550828648208862887796861139093553202686912671127049865550758623300566468440425431505046803085514395431903635427902652553994489856651976352092520420463938836822190570133419471507653359931239903923511045995664090053571246772390163998765843158507014627057162816238479444201454106345693936338825873447092028218473038696878237832447178947812512311428885594097066117470077022461726525891344457075044463947724459941709732180930097084307855269500235246049598142947173465061030937478405476868190664369748607966952131572472123422846791510145915860465269901646664097027867286870083804660930241946517300464934865468087569832479626490995936177755867103498180717641663956970508655111058381069244886480508000987081661902997958460878117462128261171830043379416883972835851150689775432801641757142141510527987847814820760393178214543938053560655072006925877725328819692072943208618509767091308455873965295894981008172103380452289282809858911205513897803366611638449069744445048029245564483764556416133931373977821292942912294049543163294184163233062541710674364681945001035178045142955796250627334734845842784767682564130248439898325849002732305934489162075731989592937049721629876782272867886936179722483668066043395202135436520443216964575706967705193453249695864147095131470403315605643943485096682846277379092168341337006094301139763613377865950996829374521155232788676487402169674988886504019904056824141657971644405940515879017135888273494894139117004378560727485637510405707039792519331495319287766564789236065045027957891717815794096862755905482549551095853975060974602428689400936988745796653523577646251627858107052040370224830160356520243542550868253221397875639946148585600552304926157720515453047121404051232535805697346398193109975974319892714405550913642524921679207373752596995186335839483536535852409575503650654181607194788367435165219959528449184859529749978687753553038373711973878406185091501293197751141685193292402596812405405284982253962702254890028189884932795597331597498765449060887666788024345414726545892556119308845941620350599230187837623156843677928429113636177282881301436916565746887250132969418224783194384788596412051155111649385034627937711398366666481919099317645036644110194151956996500485978009556150734533352686062309525926404050002861072118891243025238586007646575331821408433708924109520199450320201405022814832656722767518407592312506891342915278465755201634349543119217232218464302241377979489884851283599479378308978687402296872776225892670045164269606721693194765408069895202644049110427316570714770491220038241250857718064317036482399185458609275648123106003462559965767841119307718264052564214105282249205531479454817346659966615245680319709200973805750680027852174018284452734162488743514480964241682571777945044003026176889383056387261822993769055933010450911656204584708084149125732111461086154952846936724294770059077627849871767719478650661614068111767113340263892221286906345100852600324370847451217977999144008436441709033926789600992169890299814389826945980675488954206335927007532430495073422787996840904253089268710851608157975793938887837679200401003258110323619791934243268766677657623614679229602478484015518554985202877946490412618654355034539489777189917276286498354143162961257331439372277067799569891818720788650467307373633023707823165405585764761718254386765416802346679074149536224138008745428689046264320542629104669157105929614429141255340659429484496088556716691053870081682923350633101387421268494791407797005261783018342448181433679574143823338973891414116006663500340851379873705533399222277366033298482275858280644347422418206314164253725044207074891245751723500755025132985582074546138895921429911127819761885687804342547091618661337021401624621070320018308035207471083191862064885116289952722962875961202978996119084013333715058971860630639103502084718067149249051388332715239391137693530843135996123169784021168488684428742406027754814083433738763771151441889085242762454852321218365682344173418395885431726676225107542978226368589560425946193689383815448250556965955114262408992230141646796933371608916013247466923743137094189820473932105592967912896315155819722987440913451548142900594363482244036702268873601957474097948934929202955765273994591302185384301544045511867422333779313275293408584797093083584791793202738384700624026431201192682271431776919867068662146933589655240035151847125285158734062444083153395588121290309168047675480521467501140367495993771763101397015902358853104596175109247259791023833402649447425837071736552147951927625004603105034950625261365111469435803830871222824919331953967937453763442425062093311177553414071613947674155639471686419127529054942144514816224877380346489082097909398869162522077199622907725425184592268308176819568683698551739003220068095856787824876393704413001241515504024247569026855436217681515920512775437466294950972721124839478018252127072776424954427422595585593515353683908452597075844080068651615228286064196442929812338177358693857837748872907075662158270739956003224790452792108670961364329478048575777392248071287390814348419975212005905975686063798936877344389445475647688342326461008810576553721283410887503970175013363305510280425885435368468077671709152602503890716740658221261976407205061223288260399778554095587574610320051398666518876583722670857056617872079568936422007206594057948901619904338112847014940108490647352604003719245019357526259436393099885376666711908393780818194782871798765359652932007356126785413733263853059673413523879981087662179651893338478739232536885749446040612898592343996244231348351996296526164642183624738335701001505991136443848022886655919113544823064236212425097517993328068345020364658146835107110356323505394890093146405196704251370468968693771801658498876024792729930514803454279824547800032751310913452744289403864897047844880129337762237600442004425033206949624069560620915239146644400632829430364992518998371372670893990231893106842832271408685325595248260593519808078693857715005193343559749742282754597694027369679062432322167040420853247410025778696466289324118440814458768090363117905539400870279177444964191704985847864068059811950023901624808417405240366883300247161678661296828972717414904268286802224775914924963179895727054334576620131397700644445199567618895218873548402513172431792551084662488562356987486984828106547456299328967603363240694562329008156683304533133002623521877141053400643573456835891406429151174455040254333209023594507196726113594483371819197532177737461424084628502869541096597354052896789602593775599731260733289640579568217609054570292796617208758411283026169689261272796124822175389275593924121683256622633722522220011332263052040814506637140787830600855313022164443603103092298392526342285902886784822409791068357726952304193701871396593673218148792269990316102826002539256604012849989193284727468763100561578361642650118301640643752824017062778565583756857089588818624195372989708989191525442433117810910826404285336732141351025422480674092837745271229906769470370768196190679541055182748387342041564670093310802528956141497886597900311144698444283539298735043273844941538410628303125027892160524376045117111197824299377939307558734152785669096641806198656381318602057507068477239776438981512788709683022259682703114292529643016529228274852710361048588186743498335956922904737618664782709860738442849862489012834714250309054564252314799401982656142343658146000394149561770220715464723596258930187037406361194891710072991718620054770549003019737956093641809415455343690328800908980465817091914753278324958811524595159303347010513319820825458697268527795893335505619743243711890809063726498372071763822758229353230412977917735604695832370329814269714286092066890716018966068735246733361601262519897948510320853968141179406625743782168397683723115155618011523846288197224471116226624204037477182032971604555232119865397568364696005265189507639613370919688924022407262780031705269680529430877370706711970253140850135836232595938131429146931322299840881891111944916071238452792700163557563816027801013665675474450996936011532906740446287665793627297809649352940263435715706657053083046763607881985633758405061082513436429018168826680111503498016868530501001380471922753405282113102479923353863794589820032643818084775091998511694797865137436102300423454364308798284339140757268886416821884755870542135129531162487939898841414606238483607189061715909403040249716160924505948815784957843820624043526337881849527275205310390977307067443493622861883725199705701321491515766495165954034916550746201778712956587839685818806445576919309469809449464746765446863719184484313647761533984940913474623622324990162278973406357883214705210420500439959979403094049460008267605188640605371203037924694736043311317066054729619310316616456049799788575473807353167755869120863415394420255579556486729405499967212321720912488123369213864158116749487581793402354120681750821529636611031763803552094744992553434299849694169404091007025513576411815475779805083389112052017829580733989162630326068524342853159937643176130624085361610576251027451152779374932647342187279551836213443212683472277392348248019631623632242996859421795672601127486755827670027446922013078519331595570629452794622926466609133195934246061548391836639734189279284330270236247584738973734275155243076834594047964319087373634093113323259231507477781416381545407052756496778931844509468469904797941291791836668207808422249845785027732469522856561882284932609901082519641200816897105087636156055992359752703376145113372821965785901960579105715549808263888665798521467326378782788969563407974024567623422863219278619127069335799685196671793097632639791821346610316580988943804358742493539589816717146570667814575050376585588304039535127179509351178244812928895690514660446872799998582586010307286985852729344095993775614374387828329165670448990775966128614537102937481928011815835514563344335142625513505634567613145874805119943421986932579830621053240712544731392016726844276170313105274303178771751910800662282177699826003442195169377567191459882547383584447923373368183340162924152474616779511896063181924371435789941245031815897961305656953850167035735219786987424249241952834027752731042111021775005940805831486381112221370606480672069794683728366787428578390447346626432669572041853841143356706659316730341679196472622045117975881612457764701300067385837782286885207339301661711285376765259187695994474177966312666730573275666379484303263974839621655695681193072488419235428685903442422106379447454813386772367928580134330409042526084381175741938222026277263868719506846763816948051304131720733491699412711241610755632811806187992526534695308500693609413274011917259337670203480072875893474290545884045949296331859525214954092047462130978878435644560100579822994710179284331086647208866022529200482345285753536029882999793240495992923430179811653050448156767743707122881784588963234975079479440076502850517094633439170687651627255894764612734121006133517122690761689089290593703227727813580343510154787292118056106194147456755091947595885365322751488185388912905422758795775152929572094058755908562692623117618385355217015664924594367556467011867699266458255944797523109829487192664977549753440733643659776707003896904320801827898648340309453839624843479425456490436508986197838453761282072601276839279809142223122028443117820723776187755193942794975598212059681177453249522000858713538259132155078280086274984218631119951462324205279092256381911266607196418788851591467322529161302074786468018802273756134135601511208653583744805317635338563592045831412827308288536369119675077353956362051316427558356593367135117468694648706422700664944852721047902357343144291424028969535417862776923961981729526720682010092243615394432129553398133911816022921802428634376609731018684979356356561344700006160754623764154684675033363333268807847674510386673104810793271788802185273346923012494746932440255360330098235010018873939456120247860767982095165746376794908590366470792769522344369667770036349882863086509046756749527428033627607751329991656039087924752079179344940841663763228419446995995258800811091139731517138385066150405452434406345920701477184279174766029785603601920972840000866416423840882156307621615052461177614851999818180623727971189141994038327752363866272035488014481642099038948745549661561793392171953707421037307959325859633310690210896436855662166873866844568874465049578871330890349060687085352746896059657989443407375413581205915109774886630115616107014087793958377278369095933616263908049842501586278610597534785173043447426404731685126242621576250140638302895392286862079429276464190852063692893756024022385698188136042558908740829517856941331913234772697465281809962289523047192275334024126516579466483458708821952047870910240490620702792085649968205121473666948555357669225686162186484825785099954677414229331415466757673940801032007572682691412386704049872573810160274464385617090998151211909174768896655223373853018074334634088974588639742612398759630528286982237977651029828047449152962529396255966677953673080910627844971127605293270422364820571334344481983197988764053771457810765397262460828491897731988585997964474535332982913931476149799017611070517949899013651614091720507965840701429852202032431510493521379497637735732737203565484669334164628980751938954912408694653339000250919334785282198978110442150730978028936592979577950352109867028216667407526502768485796308835820790601279403295163476615636768521021309063136171321615253849000486649802870054519034536771392222099629961006959099848557641417898826122275335998072007746741820128390396020813078027222343502734637627352060868348721204200637762682360414934070275257771977186377685382243243055962923937428661343473691355170840271305270698614682415263825211625327846043695645342491655225183254339478847724879517599261427598862604699844225376969304376633523184554647617243342424370295229680786433896263093812089229663552325346348942225412697765886851830741140693178160271874507664316810173579065968073821971004596526320144008473519124540283877658433653485088971300470414653992908064885741517672957117647114823358816377585520391100274573609059430922261677871357219601989887693672211815963009666660575201812592342427882717557898710327561664335431608119652061221976540535980378763224825509228274002223469840174293062437719570673632109540334091034771861598219308771737960192237480184298542815997355146460255724030499864288751679005549928856525824870537091878496732009332775266507661456193075691100729197358904270295001278879862641788212983245152307871644894483615419331499369344439833500644344743277485182421568989704119818060410862356783686901532249842851569455566875095008199327517057019162741360266605082531347046580047345253797720736365754770361536397335653599186849988972994079495058975384244310827053014897597332817801871247633574621762890731391769654890865104826957582293309992342613141024971245053347003710053789140068720584795860507219732549814410551073560683047776913430613987394245746968050038304637954785899571642500123093545099338222753348724816384810490546014756854388655643608342988707893006718009311558992393852286286168590158298313424492555866416856799254084545280722508821534679218521715427945007099686198089239356768620110176244974049688853480963206524683426387524937650947612644270526594452708189821755687097344318664550918049182299644414095287766464806107116568089118173784659915683537374636540125037596083137365148082485649702564813124290149621428400626728323636838866436900206955581030280249184096614475190396721161869567634752849102343532260090446066093341714281109427600044191060937169830311335845200681025477367230099462881389777404664522593524938049438100411394365448581528620032773176293325909131291257460712356249626487912398268636513624555423593065209616207214083717623894472104665091188421333009024625906303646005286540432167464803964970178672533498863586859872974704995361748996708546522981609529604551642646754712477076065817577271044759477329671477429251559221811948591918167661177671394184913562571347893455891167988050591356724718552707778815300885810499744936465268678087014533279453165052817972535167062748434456531066630090096893772434707561584694387645321594860203614105999654957981017923344308340954930247848183984960557102285579118007190861900084969120791575527006224651633371779316681706426122900996278980386124652273117237964282227519684676627459135890846562006851096498688872771057679785122841289484415066096753107374436042754180222025819459108947667317845253363962686500376404420376803862338079502432170702232032939935610641664377919630947547997414894920128481707208575056667337256657254887210602561170260388678555474191589213554504859330760494262328016339107148178733128960312296963733064174873126647157418168113038377225091123361174949385796174521365561746133360956116974994742000338044183112296537804733714049018141529887783807424726701265585011201927690840955618607430215733856281374813448447278614763932052971024597667809829729698579028483305237111969040644201504635650770054006279921368807727220736908599382923958273466276297607808269021803948265995327696254117598662009501004743589823208174948616842272769284308313236941271192933084050760746203631192399445866833576909183963555988451899086126292722076215535326454987245675425128480362610266289550804909678833925937502681978406112342854845418714209354636972063102424461364993044391728476411034529447562759396643365924587510415396363424549204971684610766281035207605446883650717238103137573283785212703300302308082651794764491363425286466068178079971708283674205455026629694779588042429526022455644190089550826136648176950094483788747932816473947890651322705179700498272185486877185264780549017320744642596332811117173546260423695258621690208351017657251689491416213738984907912667502557952265210549168111639875810366778453352443962772476845664685860931631500135449547731195319911536237835417590962902768722412120089743403703730260164670095145899457089170547703835235785402634130943920632822380493336654658138914267919161897026402608522041020333663508604567288697580688584318458998373599984337635588226506758038268994970554046350738015096890763303210224814560865789698309824301597955534927270725384101724755321862511105780696771191760481098816093685693085547175509514448865462255303518436248664590918903550839679533283716911703634794760127642907090961669520703024134439177067402780037054613814608045663327077482714257090265493966627022949503763902259168775320252562087997438398753198505158429943674829265586183628911127365691219291078601180910960153436542301020410992628298147851837224148694000084125036982001570740087290492753655690191772517402746500907490173298801729769647588400474842468250521851169326780678824287944946605640610019073714532943228861367143437751814093174582300996222168700005906036482366304749285675365082408682975930026488242308746440132471972788618291646762792953287460857905204677099990366921580445062146223522151356597691667696748571686619537114215509349654253401381874762393614045554091061372624799899101591413902683107508545586462378790352762852407631970913538042990991940707105513070042262675742605487957005089183332423979131508998054607020070760706334633696482955574486066309581340334871832011476499523331659529185043673596990129614557782934704510885172555812770334561664101892852985840287971046757855751940926362582296670289442177177726361935323811449586778518738355453901865089602089151976790169935017941525523176939168790527525210095920098726658031363345150618359722343840951900288658177452111884774528196147092874833852383670471481305752909012119632027224247175674191866546381151335407654121421556672548879044336694928538953912774247393642027353131928199484891339691285551015416083038424900359491645268105160822683436219983761576913779456202361606734196117358652721582570653858582105357832756884780921710315293786166599755255648608706700248533773892369093437529529356385507976367213607065775594816893959141048333703374556404598644178030781842497680654464394883018580593344970751741249417883030360359487235618194134935862573393031907247243876239122197809579266158007865133105896802746904055976753538886622375524339252615351488607122377230994810847502730954986307069307162754328253482193699544802859675870487034384351175062742179113427973340947059993384782253512074037479245870134118748500984537929404908906849824983826094997863788256555744617868772049007576226037002525013245022456834715941078589635910818846950587449953601310599590148418981396332705148333039035911988651158500708156485217375982937786846387082572285724336767147724498472804099919206364488434759111680133996248766965283963347266343300885339309505527550971668542902325599052403026469930501924336097233754989075213833822745070613846436898877205355990034645564384604837189782350157748510315981319912720498464146711973385165635409806059481663488466078553356478820263236146061980934110700859362632021935913939807293867197873673708101649206426444357035729914913773452601679003727647112967665295040647970570879806688254493173600378264808536714224644619914962900669211025982455541030265014892001202710801535413013947189226805588958549840575209515243151771600476600211250452046818386071234174637826484281114785325151244092154450327833640214376663257589991986734621727590583396776685812218359297507911846643247445621258125149512182250087438107986685867357363959741983314299428311732786569836959778889237824966747908151454892181216918340832959789904779744532528930858697390667206362420039138560677110120595265893821198950615953478524732581736785907321045731899915634229984223636158813192646117128970535815242021689855581128243246061317475080995518864240676403144387547111372030999043661746545995259743771267919333357481065231425644290987837843431047916077192028305221974196532338876481758936326058308063371434752805511700656665080206701012537797858302283477664432197146938912273644917246242777112416790751127912473519637228641873799314791200084141364057710980288686011269596742607859069884802577999055974350387867017290634688333973994295193860597248057514436432625819183298830407438497712735977515299677205591624248027654723812268083126468048344585848933903314551342334798099780116954371230479577816258685263751883451746293005492412714066111925076337091542913217217807446831984009904605100987458257657697470652472376651192051757656893016180833891004144082314132859319497624516293507425495971215240181763147183971912145178382983210725419445068838462010222647010456771303923003697189004148719479209673435982550103566205302376571943652974316350950234224186969901708528036071093457438951077090999472358774539289826951300880274442523055605835481223792172698851611515177867614556332369999930043435123683105486269810481662025021783050242923446760632964028640218760955076351288820898002403725115585236734103879195607987855299223175253986235703070768960461541357075272232375021572106779868551905158323516047690990793370575083586376072256622309646425017591350975618457674140135601606205550935050526430125195922834839431951632049672731958904924922079238945243628073091897761083063578081655688822962056348682891743746311020858886620157128832664679264909735631949277645138762141145654720043508862941902183997910429892521282271133324661386165605182457239328783086742956180747256433777195630070662309213271505143454863877435699220095796859089347822600756178121064752842236212366902326006933439382747774470534944790853833291304041919783510202706058229401874851977730490302569223160275388565627927661723573322189083533431592124410409951950771367025326215890469916639976593437824017418479193580947188777015273088754992772072320777880437170105704824213640890435354562430601962681809239889639962903383592646422031598042140529038599692793909142473298797369549546834584878207581413451365717293993013245138336953644970818733993656342690882922282367990227065543013744416457347121956065131594768529972902665523312101171305760188867878686977277326958471296826884195322145894281228635290074690203253745902865250182146910920270268329382258176133751515957095138735123064216921434250645507829973900554121605557088444954428267104726658673984992241642079680746439200963039236204021121193873182608542945702834052201948742051963533854752044871425538806608301562685808952298680239984192191837547043327909708859780868480470488565965496440671822758662593521565858096712755685696623301067731336395126512703541713333190542316150762620674171023511871882399924729170608866799432452899923418232608007098999264205647811720846677555109698254191117524417001179077206030266344065198573540956498631112074303073038838452936428339500219745387541181993443369934851057411045660061715915796283769903979572867648130316261973279114588591622444345741609190154148012479513207648444211421645272819965859769952707587536336797094848360005119891067588253748343041599176293065159963368471552961165731909591880802979455995464566461327178987635623605424686094447886874386697915465748872637961505748922044267040189207080752209691247005032695917801284817331504450871563531938463698060278261425295575825911590263331428174050034199346349219071323176497979755200577565458797145618193792654894700671123443668181260270938101332047081118792608995788870822557135448701023753945663760753931224338201730721003218529364861083186071987790334795030088386890132794634210973159514688189224429919587579041600645211533618406016300427800017223671995287901413067173160458299620890570547034286844570475270789996343169853976955017724303278357786615803038788646034602616832895310255758413620858729974219681246745831317281894573450722136736528675795980144701255474882753728680745129700251252126809361506184632792648350048641999663590739150301201233501139359738636166209252040365493993881015954388464905732480061060233448741200000262663639675382349985653318931608072269020023063292262428781872030195099293399435162532955837422772439241466128529156749571624922409700180281940553047292919947856049761946145365459155181378299203857914234771583517239679794852704605763449774928515391588764765212206465721203459860697524616985537392394272196208331877894287982044608885093679469828241890844951161011278020340702585466933830532258120628813514507653300421259027173415396256128418646936544585261830303142860364020693140658385182442553054994666841146171562548360709236077990103483293148450799310499805879527026861302599389414929644934633130249701732259717368162338016727755365453369319189606061110634523557870203191602001441223609203968150159764200255504336788326417088648846060090070665705356457476900486081548980498636490785018340522485767912671195165903692240359534484230197133927806237245271422645934832250329336428299854070049941760903494298800672251107993463300778468971834792280916484560004170097376972749474934237725529305979380983560513529101266304650440436021063342962546815134647533963467310093845671586423567355569460277992402905466756493011384380395970672313677334152854026902028786920855104573239925266717768930143699312544006294352811544799556516075524284259940742434171820058420770185592525630081882536563201917696277245025340666199921881761307772055951018591306615261732663726712795969919901450327401346677184231914250839144960981580356515770632902977909503062586008376457861508729306790365234791720716365648190878159867372295551799433341610715909604724832710227838983328143915741000863533265707500786027127485438046919172702734167420492753190181185947044170594555255093188357643487444103447590124938120028771855036303600942283518957987888508967879682890617645661674696480908137299220682847423649251649007446137765220020177504143645698570609675059027313123367687371242416126245126503168490962470009626833000109631765324915569299073237088346237138892790061994304315900795584976289833624136354593905863931283208546246026513255222777537092428728933305801063244461914120202481954480386822993400694944429222549296982588133003523812878012350591867151724311631846198335974159253342746566169774112695464986219304650764558520029871431462109085890130701305015577951154798872485265953351651836857995776039310302375109504802476842279060142811173768037185056210902167783968908695772612712398208723728234199310878320656457631463957684567596853490449172102606148791467418225651962449280705621561867417922306924012969699441913224404675390440732252615257301060350672042488615551498766300529355735113125330122817006318657592209286573930584061089950773685055340956190865159163214925518573007278364679399881769042366168888469845197084839499747538665292675332946311312296515582556886492998436437885851363252654253079050011126947021999473840521675009920749815570650781978240858220374487475282326083094238163078993274371389364748590420776665591365268158726051045667615711852840082740738367857662211419364249900790984599204146489013953616677469765490501368156807242377092781420906087198856135676501126515843784201079669048790926182107681390318453368522442958714599246502984831627343372430612032494835884340338659027664255107024275567809630251407184606057599415173537088704606722624868021225942379713119039577960530654949976581427740415564241174939236351629049993995654928758747216342475825972928162031882282902541520219607487528986602285586573628824007248892060362303246508682687020158611144412869707339191280516097494608624593339352142340509311869680394742317787023721699731581280696877398491566832772217012179749494478087308895004025385064637073159635510120091135343095994351339553034732890364933832178632183652178844825172962762995339337427286450536795010793621528590812129564536579459412257631187217045167361836049126234930825581142768561637394706522133937069723997761431472278497032557259940679140538746719294874959905268534070937956389562486512638232089081277357680506805826931331774801021837837209744881066013885006087434460902557098792246290332533415499509306116950506864168481658334863583879334359010641329112816337591989473360080609129006946316935595493282488048447813544169602569009769196510316425679367453269253624515941036917485441532817819263073778102543491560355832292605069896191108394898516446722920274973543704133429000511139138092783469791779834462159968846448341890025899465654099420136603844742282052378604310142845953582424438286965981656043722408589960121330723135681857341853071691099249148516035678686364166947539941341457297071289107505391284101721805167828606617025906310065784813878368978008180007147344898728557610762431877668640227104386440014511662642361301377456862982615434354350264715617101247831627167023071295224977663586550100826322045282984166656955479507497739762833029329811285366393501580660370122183301302242207174751596990847109977079488775392881646860975579738714782320676993439696543917375792699512764934909482998960172327294287832984663193120510555853273590346803132825591052806854114214239483450520347008120361143081100013653283463824303733951478453791339591276876578438941989280817170013528914789369452775820373262265906587528622692523519675497625969501463070391008896344975735171464353866524636014730697467250593026720211095317322598623409538535205585034028374098600230481625568007713873700749628557329772579340358606110663737571761126049274883477841113311850286573291605572845798785001521150708638798845658426758338238303157349602033107136677133222903936764893197166832996181892986010437216674929191035864804062225409322588478731125628531244334130289222987003159681163611455948647602973364341931184718786846184287840471053427372998244358094296972303301046091121928543972312131105354890170519774158107962176275449908535914710996324234679346934704629494509515356597215673977203151100573064425400332263382468193819560403749883498431101025287980923708746039216957909827514522530589094624316986689244460214483075507128011854444818003162281229724693720916897453049833996585465457345297495351078726910167432494715258465680125514508406423710544548435224423656229217410990706558116695698288083214110016862880865997508371027554596268735707879904472490786127130514003287109548064668839490053639075257811819218940384428068918075121518109966789907267974291309256933858394688983019457633689111678416703320480038066438883356121058505829295691092555387553288429879649796626168340300341658893958146655105750941989099918069286024500977914618927956585928891623551855704490693807189762248800893509652033576383146513270939999293580995643981512552917102814750742898057279117213046948827444654123494218196970677387124194415655674722618571885263031999567248785796497149739100195992709974728644851985772537177196297616980000111798661437224815412029771258123612078968753067719188994091785256715260706400884876360296395411602141297695417199921784587572445140982331649974704638627792880805761697855404197539599096823282766210461460140915761014420627748371779507483739170820110199101103216991358863981210893380789122181814052612451924453216144372636736635092148045249813818900024018349568133290569248182039292918379163462388792120452298044094694578225739041049719809758770382922817818820461681539937422626917353331781872073407507124850613517347300078677215503313803964510450256103535298861898624432034647310503934788894141503758785192411497643973665165707153306406703985349592500822703488984499486809622431329837226468614156594691398863988467765694045851019223801531000918109905283956984446665294131256987914282024351132016662733966464710575365180570437143419930605134293254634770380863363830428354763889841847119666159166488502879775596448030727873703533952417966343102993433469810574803583419854967567903091701320558532510106403567678726718742254103881112830128815548189199912328120639523711164568944564969334911591946017031890257223152782996714671826860063978125976098302263102073305454594388061374198383957811931680214557919929306606949345881200569314103803645414563007867607155324030913138698522635277756492363243613106428640629733664202882360818460899556571845430827701818250208285251300312619922287603329330768146731520331709613403456423996721834940628920544364613720078937335365369866244952374780177381439770024752367005148288100100821806455010274041740499003417406852497187241712673269205997114002075960864160723735623125816857518693851119679325152312170614491177816316898098647599910444054401070077079043068940574557711406383774283412966333891749749185220888162015243148479835465625063564490524900942682257246804549465249577926933859426300615294103822769484953441830639439896958960403354695507042433616993436476693649517555345261061215667401723000914732641311214354002866369409343643875196632529905143892006422430778990717119313463699994947144770071769927761942880485321768974232872608187340759455223157230218589244613291867887696780139572982668759648545430339646802597630688044107208728159593658655172232844271745199983293054979018646747493858062203091051007577462598667366941806806106241458648869063118640471283516610644323597274334665134193016232391422737788648651598674228449040623807025402970608150231362165950010593315692315275174660499095252119878642678196995787126053933054441586382459710455599557364100431055972702720716414480850771851432847728168116420946694132208038285771572005018442093594699617808510144409672641580446782829282188818692905366015233823017337580502628611656890644325711353581717684710849786416477875941730227141237921930062621006577725045759552128362185600707687590609482673726452281976574130955024826620001988808755416579094746962572447049168790419390306141412740181362845041913458965612205804116256030358744802090770323734506800196216820001670499975542629929696012097915291588725724516446140940093188338723839435958822642824600118713077482969544312872420407975515276564532756776058880298246603685890222166276876024144175031137344522442991619101565440970925511606488711477580215649554205521386876460774412034137346942167362710989190594589955129657229296181937775696750180190689969098492921574103383192833707079409942345929196557044323745778915399833386590738708929651631800803746604388786416813299094936229465409629406679124226894211745500445974097955303916690667544971874872437164789843196094110893734335857179633405085291526098547428425988334051067973030090406679541064891091130004756733033154068484427865756700198452920883918476090559683697372142583558675894708954569440260010034225843517296957974158528459396612913596842012859080488448169113387051495563742258276258040357142162818384786841124708585781480512962277899321388698159114445260624267691800778858222235561968136565685263027619589517295165904639014558904689171151970789577772812289098017676677503475920006997072834465276136666355837809430351636398677739500753073255408518203187072186462430747926028696523637846457867996726810317296016038753233989189230756972775658456449335034456447612078539347725241891032060937930775478263170259190894607132160009145860042875792855908907693141166438674327064185544967452662187105282631378210966176766367180074255776483642742391926140972731471568270794305188867717716885080256521749533362141540757818577150752976002392523011229425685420730854994217869185687246787352128676587809928287454104873845071554653554345780538297648607875910407962192177803830669648101592216012046608986980343556954528779049791896197332996639469022715669540228576250289557129717458134195912987480850837360071394584779815769252505333041311249835349396317824105726842010573415021178017864615299310134349737238944723234911151767381297365240031607906356661216817150199473751983684109611709195912674194363601101873689637174837767488244532091789238108477314324828599624145995073522672532031316791196525590252096719982978349651564163360930580308319517704562903990263230391601791976514076327804003207905877149623375083213913256037991951934756786930756295428929113267458210628128636326900377364298793128954829233806140180677226677212678498612991299316500908636439587250146654290875086469659955982191011143066999276757781469809289894647830046481713111395291606015812814968504088884834204650306128772070197585406023936674532744508049334242105004061792617458901464184691320522033325021828683213060030825122396474457476970162479288678812269655695197943908550870035502486437268689969926930272439451486581548490132534883995410209406703227716098743156332491836340416235600848068155402406502002456787393430071680128672454781544226952016783504944032705500717508368931256134779153341054636126728767647176926758304807586122514662819588526147673509093517720675646544653296676252242176263672270903510194225864440408318482531312441601023422503475825024358187769294383947931142454573896100597196019688833833779571554759715914908913432911237645568416121407689780791830044091078269743782465286481569545304312003296331593960786347977234312941988389116890171309933911077069640186393035909982215956847655275924308663145729504229961672327529262128357174960252120970369091923179814502071424053798086250324113756392052683910177060643725125340151976687567233522764312737638378268765020424412728557162542876806104840858316223187116891043202027508024788606172733321660792135749114039032941569090753206569557401752392845147631884355076105888461934936635038166412900268549314800059263380416878127783531779776111189891213781279322855709939850140865270379124449021778114685295364380651516577506605773740843269118707192005015822379684218034149472086655408987679484157281730798228850312874833869604646583121360855646180992095885637051193669913508858332899259236075199272313408626242974682829349807847663591807494422271225678184365886225682743279190363472638863673580934955842830373264879572124050468532597590725100711965449560605083445847030437409420018379816288929468963343797444412544889193100178157127315057293780375908042372149164140853726160322070635685239880904437646820617597790318752120103736817223030765173334358786909518707855429644766595473910702992224735698559229930044985026319844699442829544487239710824563371569006771903187828478610891580790397314532953632919666106757702840334382661588049751643781185185422630954466332253025244515308270132531459737377979301996494035825368495604507911536446385743604695093299623644499444808935960369634086914271896069507172805701506487127182457051391560589709346423312619725370301237211512669707900797015661021182504791195305989365331370030896607427263863763928685457510754383443144169519626756708613136994736382953813991620749566697375120188370955596384622918886922794754784764476448707649597579823139725890674999336917458100641622223644686896270042881629041254533864178254477032683378956381149179791803616027012174120123119060639727817964958816369916112943127665043617073718422335448625929702330100677987103964999041945735450835920886914906064651582056505373407702119945747132304107251690407740831327625156550532558809833214561158598007234332853717164409297502919436899182650868136812455006068944470763705983778491523325868194296964924875523904307647225058621711583719937959283229558463991069782495717706010786703027879673887518445079079240495669335335394106346822213296452996974262024224045672113385534057866596390960677646139891279916903583326129359170978383160041990854841591583510216012544413351627054708072232669358534547572124740975629687165354722383810282905862510487667116850082071898890716804448803416617649685318850316156989125692936610905179269784137368948497499856318887662024531350593206778863312997121210546552603951588990948607733083442867549847613215694360089283447509879515305689511342780678066314453636992143068179122827388112575029325858358209390164805962523082939208713243211745494883604705584734380914573151254691661547094878595845578450509663923208379653207314493337712881578473525192436598967825754007244985032641417374495916416905847921218689723728678592289507344213473622133474696622027598385804199582123458186243429423312075647723600210049368955786188429435680442165895314675507830028869130717743053731692598971563094532868026855170716296241870119725735915941011688928682406535540529960556058716684903417538602542814361180810871450966045573387938785080693346383511559244667398636257870714016961973310303360605399039262381908496799085744933269478139007467843184815731872430439125570331446420605496630440898135342141314785972044571424566944483083756174262872074170251578167812583911523216643547434156219910091473431739359123919618050577261402577776853359482186945417927261095379126630932401595788664465717647526762546718832222425654230353444560376518774203960666499497677677151917332438977944382047583132715548770426043103038343123301913102362489553279634411771223619347644804125005453680192974100658365529475467046565356790847867628360800042761311876499471136198596928604525208815068309864406131753541475293865878677032522593337457787803051859453693439319381196168293411135665332172667188132994143689054713326037563328838719144151990030602956597218605437659298677910143679116325961286054637194454937119714020615830132943896720504164163836837795152151257517672410408421534125571339580447155232537729973024447066824491132105476798421815279818702039092941160979989344818436383857960732933359242451438354270480106601656359554013077447595652933882882393157952837450224745701705939675781378091820978674100268720088080881481746657097095829067968138411233945030160743367716090166830412371700371534159461388538030761083644408425579910022822547851154340466915908135407592969852862173104975482295562326676632420946229037842180358454624330342312335302662595904417289321982810496968115966565624398758855106133304784629062182022303602290285641262303261403223920492018725598583995217898861136969582697594796325919213777094489761502481293840547966279482053143515136449507873763263527897656672470015488809760315704232417750010386857042015665658503863146035890483302959168876181499507403436296762761597900683462775646004162597663798622437819132130809724539380322445279425714335247743255479534723831963663041203150605095999206259338050887129307064316919379109417416847118631503255455027714621078912642378064744592917728551714818785949142203034624419346154124753884276294886722539917139825618853048410574707771895686168067088913815481794589788439310654693217887112482298985344903583384881604627700364118993231341683566882056194378040099218487443611306950330713114501184375613643360032996119939219457340264178031090981718848533921699831521812219889228474826125205585641096713045701200698686710531748015069589201439736972264479225672826964357793879300717530980009438257019808397024332782384535218154400430262043489970099834290484093847770391167892253887933388235854413792499801484919041953841832973484738781034486616802362430616299515316310525116006425363153315740533211541590534277167341396539757922377341681298790456870600394581035033943318271056975154782636098055001514452895127983362773574295988158255078799678996990893614564318864134492868949798832718165609790696641317383356730184794818390616840533873159468129695710442291981278041755019944325703898253400909038019900225662405444381029676600780147541778929664480443125604776195395538504440162831251826302570879019260706006793242553484111548256950337324775645171966170913049817707134388558731229813482093354543359308909469046443845849771455698489789648537556621095969887650281280606167926548753299336618399795100228310304274650928970459408093488504605491956795581357269143375005332046480446432627725902191897078780714638908136187078118684748767981207840386181608219010007004631780257879732666398351532737919923803778851827382449186670370139399494892342728643699414168357756759045336107771070991096884132159043204032572153464284214399807201401428796103703821121004932476173683866289854065503987705735180411224572426934791033686115692817054234487689637697486505256394832338910309542701893359822070941864586440282427210027540772355133091298477010658625864044357342850377864630822252957792715987547063595529051848621274401306604049927538957348488797281032022283628149435422410713113793108494951071816123082042493464191631784391184042944897656241451139257249398552492676008403504229124892400974710879156601350792271482613643282822242602494258234310842308730119226442622828176936554535707443208232290857425257364588585564630068315113005891979901533903221372928366346613837622483502429381782671969063128992180006553440437898052844851128701322044139625707856938811320550223538550376455023947591130754642974256651564110221031861513443821410135565229397829626045333755124511614008511608478108366224476361210231095278526283693952038443162474862646700009516425956447668458023536427957483929772458021671304655613639850180328391226954833935749649527614192023561185522977994028623184041668209734333109270172101872732956742115343645541206226206898152019436145004610955129231108317378072005029469605985346143838506197860022171315036358070694721236501974770857452464471722033708792549896066508737866394523295612633957716354120075713183494738472447212036504006075576092854190313555523021790621560133334292502030094031957468320590637497377949518776736071139383350583536297680807127345224429380854906369546262445770984351006452205877334477319731997970274435240138482028790707954439522574314028863071010659223582878303769395754830232275046535072073325839153494073213249188701510084149716863339682695883605573169010326448998684174525230955049307891595812339335051171497912346562298751212189059474225559555331778753057284703365396014494085204337779268380341592582845688826702233812976104937432174541000268393798813054950196341422487476085865160289951472472009692735862362697935586269540725446906406954513830185609186531119794040667659109561219290681988969706005369061586752579454020003787257135181274789149027057199883680943935121538785315550964903513753537189600568173682196541604748610354082119863187948981404474210914172276050821822384377663359704648232830909467022165018083791533507554055913968160465927570721245894638615885148227594557286174169815468038846434935819751140656669363460978936612334761328585465224466289158906030512082478555358326183725770417690697342078331005298532243777827359237473989647448044168151817660937545542920978793971551853764565497129281951887068840933733789515085574751757411119817174253255739089157837983970309250676294367543528504970535350578233146526025769689381113497527133961075051955721652711586980705886506003922563693607657308119609467354386314413041291911859975432259445440459349599724886009054703314032938075074876286965498479172914117142695958593246023497279256538818276277999462930828725080127026445817165424937788170539059349850628037234860666714359290785719526462365603456937933291930708964722237737238502119443947901835705663062981428712415725776534542434845000658141808955069174648664657339617277688001798883822576089505460220231888199038991992986956780788089520113626912263799485329626100693447448971677372367490483119475819886937213314407986721187884630177682415443879493342900316806057531974348008454375918087675896379352900869086023579826455915787943919412784723920953663169693860350893676810149738598036916410598673324394964658938832032818895649799340333704679730398138382696503918434012489590982388462928109797359409349924226998645131544758408969611370548565328186422126714545732015027761184169737044134450371570648202697529109930686570041409597249239326861142169258465422494993973684611283683148142006660536892174577331561986230851381425556422912198798829478059223345080992210533927837538415623875514911009607884436138780744504421413371704532510035123976056442613389454853601155454830584823719462810600896955658259099310001255154594845603670961077262414519743869720271585748632591956538741334998272996871658917229242232518597900986522182156683500069414620835804650850648829923176216992583682460380527587664259639316413834858355145639499403892473931552022372713844199581834186407850323224855968207741683577628946420987210381583765552431978575894103043423216302418695948690268742207757562416472247447517170758420977360089456365400409527725175405019111780278953659933289271185429757970352187373196516930602342880683260240798297504149322991489212467025011147495503880568538278251693845876801127539215988925143685217254118337009556169893926431738643013653513525427801082479010175991579163781036469118075314888286993410897328402113981447316059654750917700094471713837217074740815299306472549394172534571746230728518982334699978875301210917674756441924933484344237209407774983683071568234418999749136251081225825170477816639795186521413855275696079725591173075542594042282657978039527719531880927740018573305858059234790218691738354979296733012184641869956294811784216251394947356093108719359748496807949073899661023176806814755235314403267606185398301057783527414805166097099934396679036694242354444794038936205034942295985512268989046734102415340951177882013225484404206882456918566165608867766900864937207607023139451408550834561554758964288438569719087236883069621423965053380588776985254635963852744122913285331617655756876665899014407505118537399035689262809253210277086524804149334239102063333628534167041682189337304058383287630650410072338878027432763856091698284311947471205653414825011101039034474750385539581541243756061496844209241528995808764176750648672877458429719609002097935182619453101202305458836233231912733336243869554908017339215503887690909979183334055024233683153140335135973119929805774315757344285203316073063816438222177095544719179326928605710897897436011987988828139904719190583910239305790213135798708174765246101802374763834345920242880826577239553855440154665270223052494315982950397449610920061901897377654079373981394615314809227968445484670536353938521263526764002178497176301221613470412348196326684874483460236786124888620887376944638610255113573958507379662644755330747839270725402795495515883120000127980192007373485076921834146533480978066261072673482779313731588908034539694525669795725718237449702706233157847159185771588836888579454637545376687281440587344986079073292195494181933304257110699754937246268190473299963679279070458284260487531059943981039735239483342583878427445789765829444716114142603915602001997880240831579340581392299048882527427083757171412838706074392377441949879118895661486019440626418419977203576418045918097776421495106911540690056947309971794181886095505521162581640894803782930602368031958181573731642966862062373207781683282259552365875246427825571305452197345213475880568841116829216589841434219191719782062768813515062637481002235736789201932617931366855153430473568321349583971978337547912047513555373813794728358169390143614361314334086350751035855680105279573337057265969783827978554019403619778159898582558348142647309859161556961029913813654582893256173802370682194438236595063893394676845953533064625955948762567747816436044239757616819078711950062914643747690332254487826428536373759161937057934747944530012770740013065329023733395870765526430335502737530095399291978384542832111420752865264511612156460793916277312282262581140914658254835159411475555332444652222547513022967107933241117567958590341932029672974041917105747283408525647590081789446472817459250134800855481172739768158606226210318430761427245823740476814082068497822673030079512960443799398022265038464740323437198584550073347441991973660726438289723812491898040291561468179510010821964709350201300518926999241184769816368711545549313529373175775587468623352180302246462709496111117191714189153409086183474925827588001855089179020890165219851258223562101676528351636696663000760649344277861688943190347134020140001711697161241482048529682076668585504340360549504599888827679343578065340794904751330828458407613145109897467097250137493607280580844536389624916603863851309702272832206834890699323332102307502588566804780000805983398034776731380802061064272274288014245480261701005722404707587605306889359251645169216346007428859525146973928062354021288053467414644719770494424455430854095288268956079008599353822112366700117636629620883831031908891588472770335809451722362287279544708767326021416647264769389391316135030593825086619182931579610192628245539430098500566099918662763045054344550860290637850324412613432172422113400505709487865346613707694758807396205730010496759459237838839349965684425004214678033651312774944751014321441843331148698686378068973119612908340497463137317236090973378528314956050284649979838436811610141112782612203853646653419667755245278769046815781365591863539514445316622962669933005640943033453816446418846070994551181899694349981000633545794883114858736568931066343047639864083726403314651578605012863538133488566183712122036022466691925018435563249882595348894654953626684816964680772420198533776570158331421265185492306098163299719551085084839913528059089622932664510967770620308940106616174603678582460853837541602497100155995343981003549895131498181547206250283343799702998314303920401525557529100817719099343782265047049067826007524270788042491965982433506874325219407386076868246689081857310648541308800861666803794235348356054800707457864093827497120535783332477384612840850342114980674428829787980222326584482981422228729771743670148283839660175762008451470636092698151637932124154093497912784397812151629525732044004985470702144546534477138121761543492452873130480849854867367546238751487177236709054228935759859167093380710702735757059893537599958363615241892802651863456049672817075031121287250227433263772735154959571097281820736986909243779495429724614780753226866278795149830170731223790475157413330142976333415858097229606521780418821192498569947810000568354795036381984930593904812986857503751542983492802831769484698712471179360020333309673139614669402588560722909737802367522830516145216204486071962813511405422309385342376792845795573284252126178834637550924185328501911414752264560168551535625154492047336401249669463308391115321117799215391226343637899230003805501698140208827109255448984351711184530093822192932319124139819017495596419801365887918433613003786588093250797914737986107241649287345507962585701132193353574010081930457597940416705337631517084895135362205644128887006849034809665542438988350666696363413861148427927163816254625408859338719422919206589515516610405977798468642830048659509875340824702893469626018717911654599460065251913637889492349535090176367019234166581046748773902382474571894905790409727087804081079641418257856245839416444470374151163333498930572482002159405870246145552255013267033397335963166141618715508170876576642573492008365524133086235591319978397189413893558715161702684324628528659402060866455396223918246012687255398983748175725731058751700707206767720268327363241057513280589249804091756269174721086707356772116007043952315634404584210625048808728195439946458277917926055135981598198367561916602157929408898939702479345765521208493830823670609574396792022562831511468660039507494800728490965355123932160376542875614058994116240251879415138782273667003100304417211268260611511908267847311240117172194303626017956575967235612675891996168610814665972281387355616337868436130598867395051176444538841798849209728902041834473177719127979790735179088056369920133731708566427461378968555368766638192343318666412814247244434664808267719860121892144975788576155407768116073412894211398075106028367344478693837933513269865595580130370658257044603866550028361474400234252721439228169128326055652419606021488858239141267736225204240105013570525861410747932120677953940699257839944106110064963925442199222813725421700568846742388501792165467287461248499657364057605445790956409212571552800928818393331369564940448140380803452880758448628047611538043467465407279509315351029513729096167851846163585639043482866135234011590313083068464643354587783415091613040618593357006041126298907974952519581508962170200233901764498615125406139467250022485007706219614031010075022152258619403102641657673034271319050729336752213851955664256916291243386793290288166841370021462612596523514013514557125316861446404180336030699557912110174292172281266469965961474185815585562021751769300733354001105206456530331019266411654933864061668946872832019087907243104317532029209625399791666109204561729130919206252242540111148866283349556473730149553014177667493801806605644837690901997873749502979519190183979051058269190861875066362023755754962063181030467741440712185924674634554237749411250016775619572456729817418237988275521269398154712119700697612233169313952953872430139808841119951695856504055709593322959444077229389590832765159336516779490947090608612204998276299552334114779223862765418451111578417912390748717881267485345943531944674211698450766079422565562920998335177276265745268078888344955765750687908778124658108200374645833946193624464171026370495692846988163925826198249584265823884623685246077786416368421923021795330683414227988180591852371179106887708408281373991329393680150458123813005638746063918845772852490481679280572148555628857099405754154888556529903614115890349551053958354150621239044094049264620892728351286599561203011474790186130950531827438954650752692316976805110758168143725806472941698075942587219907710739898791630172891825302148004172291232532793054747244399269207591918171231184224206403421325419051130221495743383024274619396981802673486314584229087116341514967813816821487765982859628831894210891677828164808362711309968396530484606661269282109936599086308879335136723996903529425633209074237785499683563875036947791544431596974661795784734860731302430801863075573416379878035899692556015343356464305685599582637021005085491348737283643170225024489278753045582496930236318393080062790946570416504605453338424572162437810515405495246760403253045905062974595740024891796712151600412930949772755833526327933295984211679380508057824644073639985765375894564464875641612133969572652768566630975715272600876623722305170813098112205375040637405006845076079524636419644690633410091091428139055121579318214016133149079068230148668356589408985778155179078283708942273867993873343665389020281561765197704469043679987174879468933433146446092648608238234972048501344930631867148319741250678300630800753669392345759390523819742000332544620442633701268657696539275721923235893658729586938446370567914360611116685830254623376258614399236994419713422883799519030936955710672297071149078450989264509795467461130329820966035023997234342332435415011376008235985327999921127559872512208259915115468105412339479432117790864528361905642988284413378318477372642959251901776753494810328550124305901173424371225112102996412612769432406806877148911603834440536460381556560793314786308934443199593381697942613898435437636715887756236795486753083714863935785966918203673980281706225064422646792166822730233735987864936087115836342459250842207532010058732719010878870249523834747284693711961319747158524451882432289134063435486384826903789557073645353599683013985186952042168512925223818386532562922323973281864119829340409085113674691968401694045392824398342195683622604279463354578256711915896932606350505044537686069879848872216509750101017569084517369991366949424493166836833264342386086104620821970768792316935894545929109098954515657617566124138580696830133427745555828458083252505650083884875019536073884691627782244837041732486535031800285280415340328933408301478721148993513497902383727481872413811242806385944716517097605632051359442404125869991560514834027553429911375530840161002049041592699569748650214378726347062409747250272896972175473955243263087624561959831564086102227034369431813684217541797231718972827280703816969930049322264229050944146933262387463328368817022921319802142933880504368501639948177937683464160259703670239879353578779656864370507655544955199173873477818403157751166617167899107077039974351766254254786015443072145937343419978469578008125987264548090321904997007288280812496690817911330674544677278225580301111159791640243849715769425080916307453822223863831470673070172147221876269725109213981823481974300555934607821882101611607958593705444129726047325471277515428520013754557551434386940917999311524919214795667707048815796894157539983799697543237837748271779654200763107103902061683779600639768720761932407029643809508775104158285500109421661664176121409375333930398295971794350005542011227290566700401167532982205983684365848019126394193157074100287843835227591754385193084690158255738773178752732152868609741554018735827405749597519879357712015985829052272437606770501100540987678377683716625589178373387619947198679424120989863576304293616769789165703855908559061038088684576845515805871728728510793802037557479080414117497026560538525818080462722055398474177208264483817168456546346083460391641065317114417258588609621766770131598151234107517771190739387552165753466082165638322193968654594396020781158843947684910874397161260963431079274935858771627700400770159926284341495720066765176090978087349993667363499810576071359577788985258420705353984272948847586799578715108205387699229043679565639709260670394242740051848372537920686614734855979284899002200416869263364914880655501515389965286385978940211368288995035382572541507887142790193707338198108569234605967305384431300361627774663657149382956927848494235476253222443661992623477177690345551061058549792029699871945040316247491075115410852058946341345386657043308411539753182669391721835430113564489923988014221741450724576713958597925504708094305687305609247233505559579904608848879976844755012796054086776477305862628597610207865869320501959431310438332749346104313155546039158470059490020110828410817077658258760455292673169641623249899890006540593520894676470891086064835894691790759085508093988077491226663128918417647320302380482621890568325363268247299318171515982978681671372381867998380327226092437393896182591401571738949005843096063167842186122949011414765106394999221199402786660583285228624659933106337298864861430897890083039978843032199906011728685520135043519255083318131250104646394957898083686808955053594614809058617149202150519111076007936228765152776516054567648202677939722812285419824305782171226418156689286591581407648598507270596844166014313722387204802417462525508644361911510708792043158831291967945911105857370196243562768035937363130593574547046813622412321254911481134656609788305392649346277300173352357664389234067108422216100608957162689142011597032359381720452763076983495743370481376615583916167076890660724918368510023224082856918839383691839492132294139019523833845851414157905804035911889930155411493884860303348795583531272844056206624454625073830283981260197863640940900505468914476607342463716316595148060710109038409715725835500765631545533003865059954321306545539192697240488425675611099027123357384347843004431369785628731555521285569750915036531277802605600673737753673486837737029214590780810923300746342811320185625518000523841518391608071198311323577492622981367679860730074517196855995180052504594666324014660649506550044936561478188686261654859283040929272521132647844050389726029765288106432704192877913103087751954782569562578230837702404192761735081946389937336524796578848335657359035283896687884427660059172277589679936555073499847471423272623798676486552732980314999801398504403889453308793631119257138761052096972062048251463188475056901394973882823797603926249753863432249881632038013196195379819010501805451743011468231528040174537679034281499651284167452881710482786374350210759752022046017125363436209797564090273347533465401931318986193867105707153415815843716817439708125046295568709079703812934332759043604415996624660406909817460078907432371969591831195095746773069441842695180585083610958660170710424516488689518568227871623528062557920776042254427888163749174008904132628292496893162329080651288992722966558898429195064483469327989158013079426065843042101374146373967827260210273097723957173469164291833406045748451095675896571007865740395700944501703324725754693682745842587839589361106257028252873544142581120695485461393906384824236547452012826132658485279663626071812257695092264677922621021257569528133182954846422709638528645092281020887284035949358337571117601038802918499708258706626731776235508654691730897056373965516338074487094900154619874400752200849288055000645743618026110265313415123111262001558897067313635219912935823696927116234791530634446740137373985882174872174230650888704562509107760798356516891358700940418129889810234491750890063889409819462910083288528307268130105530788833281018635870960640623988067764829910722021926387723851119593792127618641898942184325190276834868700959387591489301665665393895755187849358008428483868097237088612700380852634166767559859484965954838100538635778386561279909395386916692118017139360157308663461052899773829303336140448707768029813712535339695572056003526515291929501711262561008939988535994418436072430799406172131496159973687368915933973706507604198180118738487484839179508074547901613227086694122922649909639994102501151932957564622842044884243978593914118444401091676247540977244081218329374761798100736142955985940386165110367194961197285053546125863734687960221961170610404809984056096397148153874465163695378672505470012512626769735338456857722295454782970706974157192004729000297990337070619558567406451459440744855220112403534798849042892061176540847561713352047744738783553078495551972031620389997216249139108900610141656299828462267481267163305065345300577494745023847311712145232553412190302115801374510419162129906067331917947527003454820996456105085937578656250393841282635784224547913746297088666435478772066199099752407267521396742840603975750531465202835961650519757427133918141298364670121737475524684291827594139622836426027001509351805317067376226130852756667505355860237270752785729202471011758832662947383146262463041825696620662220091502469665543424195060775230610858542821047931426768977371149583087541924597595445601659722281234264669441064312210208440668730234592730027468459731574182940503963723888175982805800531736190475770233427411381819381865068191178325900435223653848386786596831978140336841429629143033772683185470391283143682519726481642914060181186560512204105552431878642531615699378664763154885762511445386716716405575234736290530695620040799011049411714783086557688700035998457777952106714676947564540453669088590943281596752553223421778415454496696413962223265717839257279566880614286027701838803938226986111050807574721997075409304710976824725922234014988092602704461235886307949711787638925260238750882486805458435439007316647943761240280653375851412973493054027875520516237411070992180361193383102077259872701441877321501158237380111615675087364785965253408139255392174501019870875781377354772430923046497528798386917195211603191466781859116013785864512798676064761552979849525521000463011272281992295945210726272980477775751069881362729835633692165020685818831049459193213185111589503846292696922041565126960473526577976904389182792224989498183365226523609469197192324124760081397853979571766565439934356907994117535865205550464615167012441076103611176506538217889556104627210750593777964393069945754574625067383579785969362099266695227551873579064109858771134742594317931653922362321107471093224326153309291190377837287427763572347941874422587147773782440678899735758779588568393885218660559258159227216469286216055946996773206373282136229592902644527607444158200639102658550401202274361234192051815811284968098381030807928076127426046713250036010486682919842115551287284578826209622027316168835193545685408845942059789940392984516761011694906337746301463845631561026279329115880115889790119057546472772669518180143485745339647951355087298194550089516092967018461115809856201285130652718733730281040866045819054017687283987094186408137421009441596998879187561485669792955137159550417528526052221779664670255378106282568140143453685065660143503236952008611652530976414005493367229335847660694000484992168679383751130412695402012940985611462583946648710542334951553316653703644922191901391032995149002591266122978068214809997602532065077896007535123907909823310109685204494993070817416540884140301669355083596162413068813844264657087967367372718321751315528060707933838607090195351431186462920691096306140452545068428172866408134555133902145165157466843367935030380678102713284587754704818190366688155774470699765893999024856775853532590855484677813585172043800279311657181454324878556804479397118178623419839921612063493502366032796966471222217376986841119923340942939292187489228928803240202811227480430637922997228604913813759724777307824408422177567826398352465284102856361501104534998652212759390918655779304222136109565465403982999371744756427187675118536336467861522639542467224663229811811233946408528337542594482274294146862029315498694497590036658968947103369617563851266490016992830432090416866530103326143316618667422088549536213912545307836579249526917818709753970780766192223224298746715338513808354415199442634493418101989965410865847595792656604044507632133307217227399650089642380921439183501127107298200286776863310827716774240625145044353733554330878584672838126575379607198254311082915493524000198035617784630236014332044261272067350544046873072566194325125074986561910393554740491024144290441823183991434735198953500564201898808927337121652721579499300230090691982630067326433021825042265145874107978428631329462824432237585436358332595803394378632950564774495706463505308278819038774495936888188023492265968166325125292597469501213031771155189774416942254512775735243970730531296670318133363320004432405375729462056294219191390809997176146013161072471106903481178574315059992785390515809069197956480103500457837362658708082083813396082330105116721137778894020905626428733452845819892620171624808343794374632751478821551140881351140004436334890696199158833064132673374969361826454172286292329975841560580423686694213409732709966290144953094447441595282010082282134836847392476202862178094063661567332210214852650656411395950962856810502900596467085868517040042850183015418431286148145077669766796554208481373742906962550598517154318997721271264975438838631643974634249699915204493359889036615649871919945653019070880384757742158682585327669836209165103515127485598372753085829774038376410956481831792624000291755360111076723333292382784733648077126069587761364568369825819421892688263997266290005243859868431247787029489101782752575020762141559724071702003143480541198490382907635011168086313606467067670772427302304259321787462851140521754678997102625329509817824329198351179207245904695642896756030775970081918013798745296595557866315493551860120175847460202820880424207236226683908744571055929483545800345465810335039563372753497330265339392308252800097603083378768598207297470163606716015418273491648396774528500817896385134808603068276472080105759566319280543104188285038676775600810537547301606273361435664232932295329427899343723238698236008086609433427304263906144141350886429824106217107155749916981938594831822928377910918751411131171550760100828199480909719786907708235171058694291022049074928866904490374174138567971442468077412312507727053238031914578087731081965548019349216279876304816079831345237285352529763032766001083619408226260796253738061635301411737342980105545872035808002164912380277758593637832091203577893282046447756854258514802691264632262153799664643258524957014306262186289831218902063789431767572002535467662839882303796140272110188386359805337639272094536093760805528950505803484801605497502128560865028527812329231174210870488397341652478087523705155770463093389756461666011712603153845283387184967144641231310474446209501164603525217380671835997727015526179492804262134265917297002306558712141021097753276500836098268240747730099263369959773757183708573446322003513109630040100969870262255108765142894917203463104478352983419985669611622721902893827004183959412136303723985343682921513274854082632152405150737964696826083586740162633804101681392238433080883314681948515244044010492956379855268746345442889814255135096679028995653442969951891389121143852971141680744550919453133533103873846855624854702404779114674193069492606259791863645916195477795406889636680226655211214300810977873229654388464001497196955037741393820857755842047716223816707903723455313314876856278374821922410153828328386998446654394552985097336258033283023718704989138602894673307644278815817917108994936835341234456161478590425307189077076252006385155380819672888498893169235342121437080035657911832198994326382362282933219772880997908525851195772713818718347961231171371917425437510826127340213333990496101169428927705355502244881210019702206991405320437607150590687265749440822780367023706378987240008088795713074373874875823101157187354678534094541773589363834773959606026653349822491741546550052664776068548904220968703081697528303367862252862227401640612115248385189580442411406846923460585960749965570555264908525059563708534932659867003055519673051459213975858679168550584295247906874103869652166568650294015232978808338886763846380146214764846443181124512044282122212124841284352451405453275993855693949672066975058748387789207143902961871493428723913316229022180763171004628177447544125572744230607968175428577895240311996988039007431302676840014846354778121328155252791137227970384666953355986167767810546580387550808021587839876909987186436610322623047072694857267543890166449875309875388173904233606881706766439473832234208683519601331128460095087439776298933789510552059053820045200669492393012482646420719841426242603155201095865420812172433354743215572374107205619911126866107076940104008534297783087360888078826822403250165231378234980733124830875751066345942565445418580114243518014093948969985681957267552570471329531190649446011139633213769780711631628408568139598488204649015092149782893835930031150536917085426190657330089947811871367716714784065976830972729364546499935418411882352255179657209396217421986033572933720625659533839036012234078470977634216183370493610564533006723395313481349031984049714166137537877827488582455475021102685988745218954292227802968172462847957376853792317649191900434070202434302639871748912887191688891437255721448470452329180787490145831018964708545454739736940873193276812079140104348525558998069101841834173965504861630867606017278647541642013309392015416829487909583102702626125682404776022201605626924002863289202890686357626564496851256421622718491559050120045174605154636488475237184920435961894135720404639561833726567935147660121754653300705071264066052213232079461715789680883699625956527700613547005001461195671824242952934609507140621581731635105262892287425296443999893777381690078765863074185168176149640065774631108502239568778342579225793622650413773192902637200201321955210942437444278195054605815085444665624104894880091573676288747887053602733515855537095697686558210744280681526205541209175716286064985843893116528972867271683847930397703789071176416112840354411856988264133896107722791578468329525393310827204649254140391023772884057349554829911620425073971514450464170688957569173867638631717660346784935170851538245868313473049233427003876199181757138404958025548038971192813627055194039806501579182306886122761563587948552380906830563662479827985019696441103847931997955128191128104386291475892665957318920691900384771113780744335393348395439317786499604766010510760546786258562176963263322627979212868807385647815655253763628567619395544193140344147805733440662653820681904898208632583881403246585163176157698703405556747501633733614757255555662043062926510048608746773586872103113355661323897305987361408561484695003135126327380767630881729986400477596248352598786741291279293610251241205714517108697168200581008804402989015964279653925940321611024599748748583769180784841990295641559156565412396610466968154214520291043240168428365173789583019997194783066827819028554659210954818704322522905132855811368275488216864910760351016165946193059878652524738266762782806671959070812004997701094554735325780398390233718158855595683137846758451415789874912585345994222469570954918123414660349161057147756808759169545052699831070009719052746052033310928568733827010811306861457650198310672562390918328633448952026945847716985286104482712503576233324419258040782781655336589289119195993600134293354949520016653127698011867620501614326616069764269799200227430642958036423862819173034444202373638962485304767441909314564629947844001276683112170961626372273891889582636292333756126898410047257970762164861499653881154208001669691085591702478188539841148070933225935496304762815514991279929041001412900087505433163955733363478199568692064506641959963447213617701746919584493075580859019152533822177959526491301832158006719308334639004618550853381955885039771641374070909631145188257739074578853718352330752346905003677740928393722223157837276275115409731317563149119087648248659486326715119770015397676060056147463701487681902595638653146059006676615049994421981623915572010425412188724256532301833497149914982834728895678778043937891474984792009125010541424110482851778783275404180667554787231418148096870254094374263558896654525729487402574984464181407590141368981205279829041885945074750195793200596463875810906182624265263417044093901534766481711743579258258881223095411146820596081327016635312707693415297989204314964362351112166424251787735984514778041312515834625665129533496627559355004488221142758702218124282993056136680585628215899898663032555263865273554873261076923723697995561454368335335328980921357283977010937200539212233619626173193392400684719613365564173235994214348577827602715778630075402553115956677942782165194169688081511294043166633015159666204009826295150274256127602183890745286336498439805397670199282017018273766956358641910800920390068156129170757812648409460238591598116973401993110717146909126448648978336169210950179564707007238217437589329890083744040573831692596568777083963335479645653468200292063503860324160729049787973635443220761412246256327899584676759822519300514284509323115325416062016231245065767795141288372905231915995709053641433366130835076125914874913716695114178572800479315206105530755286934529896490270288868491195260924264052084596336751597492127198489927221325078122781361221302445604723725197117284433437596580009700092441760541816827367193739074092609357190978009979103084641015815131011884027793984208814220451413726802202858392767942864731528901852635360417332582893078935345202974454098347445752773151310824665748314340264184867431388264289482740480282202666848123282952875517604238263542865352230127330280275686316765178115346587868672026915456255766827101534210844187544346989195906919585469862488659822501191195379843838940373349536690794220077830868352923481814092841385832595858236592803778962983046150103399403094772569384694681922157659033548400627835937586436213274579364721525247556741303302230736492005737818774774632366462684744971015087777803806967503949789945237254469224099832494145280744511604896697431086240553761490288985752802968838220646617482485556356295574287906177894555168848174649421731903946853675293351417814354931585666589450010896093960061006264790080819624032208917066806653286233497788180582024697026166528689617725881878561139182665710194320842475286415321280726065482581011677029997549754324905406242355493201237847436031151939581290384879551975718591011896389970176145312519514687720529766825208035073063675315035622357024323177843871435167121096773350726134983856304390460009459967104111970585269118424822604113880790259510709950765868719206107551265940793066184971051335433859296884072401692530343898562580277608840833945324938270309494868399768328525290983828266012523908271094226674824387938025258177607843563549275139283492352102851573685340450307497056408938557126405703910673311308186117972534832107847528470286730050660715686496475525743872988399010597665329304696971618223114178904155567739864171724831362000502053206863707624841635617892138375380175742610305010567600877014053000041296373307756884429324156891289235786214918224166399369359741165562432645235831677387451923551818615744448579388717047999441493647881734994885725343417638497302523728988280260175115920882140285990918338841669709457097760356103901866403061611688374050574332774691502730283960469287521379132178550874186741407480145640521633106217445244623043417949998907217376652093015054896477422255561792843736055109598865265255685446734819965814266827270844342126516559341151997220874728018641655704896468838655131144879653713102437531466802398796557308573804782635517173944268558523331901841698998224835069835731655350967227255960105607974880804116883094689018610174668631128385649192878673953152152498763888476882606001619771501133707895379435042143415876133958348919388742236308497651910747349004991460060302982153937150215299288486928715800044403148521307847475134143686261759359023186732189915835262775730275125227861858452122614984978857322545492925919376312355233730325898332248173283107244044901895016798534808460376843651990695245614381493586336645234296578184294117391548600584641263403423592206894231047690892534701056171696948297148059251484597526290111833935708252160437052028793803134991483852572691185420646119279212138979668189215923455163255616954824134778970216708885833335242565147394688304347870241882862111899700709842015892501846232102516885656632617237203528643201520144547908901105972814164305536704078898706181842579865765724318399014824230457188045258862148525885656593355446744647368443802479931616405486593459050463963382123707256486441281327021615490534076204222880880337558583930242057613963542463304094923923042084230416761092188361690630431829545275212151659920548970822627388085340278152817595225484460719642876750303876616736925871103233679118528251499417145144271061181944717110946435124786738224887628977914094730558120529539511603941643868226748561788232142375156701229050934424191003550243121490744276626349839852228826696644398570997635994134045460522158250825691980233666553966465981994878539677207248367128267211058598891972551463395814797805593296730451576249789786753862138843922711024724703123404698419163964329222503688755450974936544643827327971760137312953589611249990571195218131711401288938040111740161815024849337528062178205697881659153493306753278006250592547031373283426357729062099366090004833515541684690438942431155406165986080387673396375944583893685746326109788243658176133817339662126402724327102104331913833421540912185279886599032432661365627542319916764522854875528123979864050536791975801305057892928662919057382463888700724914223855943003596352222146381140579475568753545068155833493958545105677525892044399160713640483046023372436436222706372129867914032406755997451268124359838775347210226594206458768853641524695958326164645400085178148446091649508149808763737409597677677306349093238160751511720186115515675577770436690596335533226138644961862813433379258623394253987337157480657415171950993546955522744664738903128579587326808583400275738926001024585498364773863600241882732458039090994733651950364519498374570750228516234483354851276098087926176549190241620883493391092619320714870714284801372688246257501675571831538505859557418884029925928079578192627203853001866574813296052848066287606405575396145675879545117898816270922409005693705614590980884859132609552069031960947898922521624595975448865490344503509495259032937858173603598163501645818036676092148526976687260268334606956607264983638683680019620351126589270145362011416414993207555624027237091155915666315509311430820869401651918639043680973036686218723252339905422604002896402983259354548734145812750046428638807198860077816852130670203571593856582902298380089757335948266145885841787574466028210107588655328152563190700714496585956317084746925042906019370562449332281648301471465994939810138300750919198057335336575840924936044675574059881889135749739152637825170004820380583642853455528617303760743921303599304351971213992796167811663113837016841805964203913577981608603269983386616018729589688919283567548536276350947145471148558120949838705382896542978728817082236036703658396225330895461032898133476035529838640782891464467476039982937222608474590861221575085117811526759584474911468039807053730652560168427543218774713432832261343060520529283274111778168850875737476358116458196786251288431058338433027450856754153882245438377790561591173842629704283480605780317808833205776457210073147265241610262040873227200701338834287085965767006300348319733307279251177731881786582696110121572975153808429825763319995049075855629135528239173845880119988869017280013162850405963516079609658647406406791455378350571216386718774490988146976491499996277047596324132190280820314580823965866343476641069557759661611648879063603212840621576043403733095249319862544702219458790957517260531999911631252363095189577540435920046581049002780295975517219120125732857710189715889368812565242525567260467510241152118054801322669533301896136828572688068409144669441979762043345086341501279633351237341067922174291002360704495723040406055265762271004178865809877802285073119393710299937062918185566330129399935670836802669867279854728902149067226987121082113486706791598512049442743107672426632284422566749242175665203456696641477379071101663048013825341940436861728502211397518849716041830015150594997188145031438401318054818382918509069866443655241380556096881947546166815157220736671887011461764393885210762950398764102552241840916849097707465638765621726734441380528788564744461048357906029177638389256992638304947556011648898434145381301328373529718153790784545345460997261443169194347357822043843590508808291872484343724005166407843040668692487164199886593441429713435106127468563488964496814017629944254388671993123032153485620360540822448122011163753417973907220876462780300868342841544248239532550497031502559133500711317332138220773790329627550753822279277361342753215600083862647362222005572404510881888873274622681693759844603010870758792883413239627396022897100274771586461288859764819547308715283497872574181005080495542403183548065968672436340768996782738206915268220761628479463323853029625110382270221497527862033321541736787426721359827901016418916095957698098313743185910190676717982547558753760493886062474080448565977807749498012517751330370366679087490757451935362049718903907010102396002367301524841554586398405513765468275867632129400536745585982529429212546436459290055724381705897342205905391630198897556033471621657336983004314007759434836495181116762770029319728579918998548456469153991460853553545799492367791340696045381813388863349225808461699025355405804464698756927393697148496674764964662290441955137827356022254612653281435937309331838205562149486192677077062694085906672726200543421030857682430824457885581939104828044491876311384288449101140032320411632885540863840658814358933803015468499733038818480532464147572170628438288716184810297637038630510669607712192355147145888509024321597409110516680236947162989945991384832117939951874005319688574073792017921565314038748184539013553622319572098420215636135391827523898568957623036188635239045768580779860201393485371733565032449805690787323965722689748789815175993395189180603054776547707667427272172016757524405902093271624837628218123109099756880511755614963778989607618670059216643577136229133128859630401984499131806305125422973875555196891071053657276390261349904027596427070774979889971627871581497036406241138939026676545068375066023766989817835162026225364279232757005644762463263040030431213873853208758133178157512451210737447696697676517598939650563591230731869178694916647903927850643914516280725163879891728383790817561155631966069685896011149846614667604093704005591128275845541503254438682171377575260680684734638244062944110538695351001592844084269838139934529186447841462006858282472555134887258461122750660648854092475179146436777458068379367202819140973906315684722023562056964109116623702807427230342041467574058460436713229581199423292920960915318303767282326128242345180855714012870794595656040177745765714918200998991653040762874732118181935363178059001148967176134200549323448377011193535238514200000233964045428885566943269447350034842531809190346826593127045014909860636637584673512541838195333523081884506003059796605207799408166358057801296756945049163389579421749032547259334494876334247791984978519087495655993536205060441210398491282731486237564737637260950825778091315053858337120935116448827398320517103530708772124359771284086126672135521881572103634297969757102253335325905857381499962154421573680595563827298772525901175212873401963499361447189133273236931561250133576908307816763939791888409956097263726898821916982464603308056818066655998989518551943518589857653757740864693215214134079744013309347291933106997522950168865117793000208939312208538034834340123223696713234017823135020772209718679042007144965902690444941586059955532898754897253536271419866799076359311499220340641979483188003779009718484200422609967065241233148549762084089489159793518144089444355089934227664792578500439462593252173040718396709064876957592952620012826029979276266386976614010758521796288192604106436978339922483337228305787904546497901097803888159716502366728975479786017461700493639007222567819542240332683299342599007524795325531653061186896722306609465277438313138171670901497201804479501893634205255525467360090114219243124504522101894319618377066333679204578650149804885709562345953908733776817876872667351840587544630076150531570179277419223585818652508264127448218357174332437271958718645727833534821510244158463838380420528780860077551949401408985698688689321007879868522824311166148148678536727084863090636875472026980323799523899901845812110774431775631158730735077052423674928639895635129364069302138295949822268101033949863302162348844781050647583273758270774866716350432532642138346296960216220172512883457264812611215398291514494785508159863238706358677639614893586958753354191154990874957009926384817238880347242487440687928048888063248342161950353128856452839835146391046443157168029186262549135424841892383661716099025344805147391083274422014255270673298228681923650502342830152458984992682398035423391043027487233278709844025640928216170478335860007638082744113294704007993136670277189352065716879254621226189256785440740422416017103590202513934010538104831428311380051435637193316156989971404484380163097108984359076499743759408427838094643453282420161606600601139017326116976689143926570161478410359978492613321638835704554617502016187658329005761860013809476640060224438537078081846439249617777932149854990239039220949779596214437260803370702356147788243891090350248721616251761720591151013645425587058187075372912357493830613534868547474629273257258128863186828142888354156914119921835966611431376294323844284119011091277762259499662149194332912611581307623271045499327148535612084149683657558602473571735991428062865443992325125238493036307417194029614861111395352731075164588439197627717386069022033245810887593016144721787360363946534298725919923362599374493592472858842190085353097705026968480126087552915555073621122589145283620865354588565446024989299566392487172592927468091131103885056268596850077282529976443481440701211128859465790162999535650551817259540839890335886012784434263728473460114274011519166627129126336388314005626147045444117031503754058298266174711026667702523239639271628475780788313137364102826392618324738345555717563339167748951630736014180970615424360644835377956199137296928008330569401281222880686983836593623867874498075964244616249692920547371945735653829916094013967078022154053361478514169421300237981745434701464432846008717774835410456467156598393964562975328148000934980215934030251628840601225989199425883531798894731707682400982562095149771369910600296328523519857834301128064247463504001013064192582963765099577570639072624291670905443388519980642978690727566148143596256523277579193905469277563472702475212235389846135285894247112345133213962342951253946458313768438633217122294279521553434191600109678229954731442750604553928225522438108207979111797200811249274171514570490292577571148584189375934252077095889175323290016770930441959017619081431768863080169402146752496305033570290268319783334813735757264616418226690329295425720184681426790099400557586389612947620117758333118572211826611457266628313947117881614320860824003711343360485286972413194060990977395781539878103340156119548110903727984867958333507517294843424212447864887288549590419317498540497065340368338420855714392419525368210056380147287775863073285015918764713302419225109116678269243847849826066984789202259101382037629472763009875712232671048853193871391883691167546966020464744930024574415305176879153306836600546311523004960420530627808540385121223579023024689306442050166804165231583228261972719917399078961426835418512228566508485597884675133118384772270395113191781016733819258050316453197341030813031633748039403500881937539643769252490541232379195596764706718017319659290053435146174436595310324211731106708989265063822886438772746178371921547777816426426672603343450189104608444211315231715633345714886248238251121147489554691989038939509841866217117777804835341395725798148152083683527215781439803424045032860108896194793626676070461107963980097143189687852573356554939142342827185839537505694291503309311724826656984927585888741079938506724418055784291981566994630383191900200009715594230553833173369518815253884276665226756903838547469586766820609937404878590584563100295669271529888921789669491170099298620545555316382617515737504417692179534127152256420841101992098337052587979041872024240257033677808409134232764475592264224816804555800549586379215957340059760501057013256216743186910430708475618431731452937147996486995821801264687159002752527196223123871812786166188362363449565838606665124788625637796940492903589682047732773391346356269751091839711544260458640047557247914002577153764936073474952167984521055795473581322076532860185554380546291130908934140620977020201938723967108488545492136825274524550535317806904302281202815486486496102146189043407863816688914282594396223271633290184941873318728751342623375577403867641753866447298429011806273837176365904852962517597977264948124308267622423350272773951026508422617626981077094077931670478332063519031813538134476269767987661627442934041578971048402687640279906941099207241425422336814047959661113276195823021087205184840037606698143499737174368281060887701181310340578548146759742456643163717426933618256084699965470521157399993186865343219562960067286254463773866094896381199665405867034955439782267077619823600089273899965782162430449730215726766991490721462704616044588993443074412331020983643759569810145791090822584627866355298055897593187908872015588460080397364693190874306354614873679103186303999764032309411759154201405112129508420431880096271408430835164001507696699632792149909696799496970135283034881100542279843070804227988471021137399771331017517396512849842182523847853386895013904002319466697175227585079029518049354678965964537359087728362939891700327621767383845755371087345027365693557234640794343970187014098799863657585863639334450936280148071435226811602299720229350907244357105077093276281355351112806706820270175256491566659169359656669385217786921065409950609723518560266454935349365682264108544870491329762421385132387294297925027494957948177892815943601204345004697911447619040649476997405367602915032382614192725249207937746448124209579916715034491110940447502496470241519556184915393799397484735497575937982256005311350521713958593470931899697688955592077070317987186460151436811351586881265383977112090054752111317801123603536185794692998770514102743767378773549254404938113071712568893060026804387095598845376062355793794889852428896804007111970815931114698451345865269513511906998914550419931531063834452206491970989198327154149439623661870577885689382336384517772401805231226056739954549077049471630215122747994716146491544025214937045207707112376508219367558737394162066399803102303618102379271759648382915272328425697174102172258726625517892779414898344549875378369672244196011086512546613249474467313611566959455186923346490912992144127428200777602960717593904456687757001104837997076939441730695805401970701404183526652101476204881300438820338062742639189690321170266705994884229753638771426042791889343495965264549073188801626594304922563053769454594374419991368325643078085041401293549949252916596053796788164954964659143044949954922215825741335352738922911955512300402360132247467313952307148206689330159726252827319572220250221211677688826660893135870979024035778203331781402826221600626702544954157553523924724295466113066338870595587981271910629269128297017332671297363881342451157251193336038480317561005367602472960110365830575515110986903357074862337967816496229072722605372034408627331619035444845003197402286098818866830721442934869258303450178746716957491484071743601954639813956849502079264597388385321935109774215335899917575194267517946446519665019895928977217106999649161159169680406698971245751478815639346116996968241960788288410490230939060485010665196154781244871745315643759735298761512554629355737859198167548583741737567656800256386684418484872282057233763512616708186933048420908819573274565349171919722643155136352869664898694518266313408920962893065583026222868899840915862433017778018350869882540624531058537799415536870309739879606825606405694009530027433805595197061500058230237297713787078441343983135847940357133777800205633747902376034903342168604717291122667139203779542858376320118477813158488790224883226221098064068689527244609374876222304961773410515852482965278220537253428307282985974511268924783596136438116814325353052776310607313301097108216819112768729098565299855990161337763606957612277944708648741793727549867447542894955401074950017355799335958627178352327264612048322158999520953093665289467443956231796204246049700025202204286982360584051019798575478293623505130931865213379849672580692465923249399471317800914878248361332766631949779606069181715812257177508232142917224580711766698559590164770064859300081412873337089346565340263182533437140354503969508122163582930088445323334253578336868771161841780226876065262859768762784557984235229155658957291079899577431394705793216599557670771011208584763382236919681713565952259762096944309480386266247381148873427488740051767619625047454511979683711739366630766764961856317255304544639495461765565989063705744008902433721128223206683617356861982758826863132100448998556139681187041855722739783916323629147831843484580853027962609013839907426128586161138775150938646903200519781877171042438946888463659571518320471146513198399689752511940157799117161442231175685565897763700161065826255361818842549350332409546991405096640050839819961145924481326813556841099880647110022878436883107552648968471694512109543825266960542358774855401047216860241699632487691935731842365324567716474524256394311103678441788303963381748961610841007424352507230505293672889864459423944617391283663488689822063629786092787937942386316310759190659718598969926959123796979298041792408133467207813565452633022071699843830281542062084929669565394495327355802881046239414192723269098695674818299042074974296949498738156665477140643881612167611181540939595729848785381005442943273144233043383489431537474710581412011706931285325405677539632580130204991858898294894731964513625790686719989819169678784335535986387846381120527047031400826896309919542237555573746234976670364451285564214215997998627267816238162544315870815607728905444613231528038925324683092816029252538238514216711947837127589485670238178805104956972771891789563622930187998558951609453323261318629536940371211103328983407721206091377612188508125383858603119141030653549421652910808186226418612816564536719157140514584233424954163859392213796963040646993340725053795200700922882971560126427736324321274417693611862074411177168383079288078490925055270859293412152352676043209544366165124074881572859526495977096051604898929351082895316803793588331966242163800079104599703448005817649944505658953619070187793391766832945039873488617818497836247662145571086293119060045741108426290935375683321618381995368530504008946860808648766032439111939494456434596577488619424086901632462133696717500615608408935722046118371879253200380627652872865581266024209215699920530825239298923654441663113064629829508730273701354172162260332773277175611717421147462406204721282819454372411632834829630459755772396547087961706597246020338041616303148156665992543391486602527528096273216595040194340706392033002313937821512695637493797052925463418427383869907798781618853058390806503833727018858617085884276294139437375261065030835151947763799513625330571721742267653274215748010733802165018228273843051668793581108813163109996686425582964255517058378784190127907205385417843688097698970742101623339635722378266412642016662283735959866267780782520491423838971142652873536709297151600308263434985774142519637874922550963648442203190279192616287684899555092797004214906134863839409302406712081928187673473274144193066340413748590371457846753025145956745704535399923078679556632065890109077042046745861409818626006652227872141802405832120424518967530403882917727287535464568368840396362474221480100228955166704090031710794169064718051721162026632835373960055541154210179102649567779017876258607251489202082830854905519734014967133023193225999187884302711182162886264745690547418711460321253311434399075407984391933125007099429968924053326064161882896745611376142105386675602836946769839551335526489104843457413521979911601959064284537452918914860346610428570466499146192893240802838902591577193605943956100880776654055163548527773743835852694415044591680023540722745317131175166407126478059165390032542996850322334762079349738075780534413680437590964323586343475278654143810925223764099670086223019797203085326656242061407169954552690740052146305521601331739293577303526891519347037379380816947968216037783781933290591484294340022647880996102857766555391077838377923219615913887946572613754403326468953617930900483030552448073514837224370013322092457708392393831897719022078876500066737949989264120210717885766803319555404125357223271142939758338979935405761954491573259979527487788643272300551186315649934478444094834001794314594732901295379720689337598097013563087975962429094319973449478507704413765712640010370036437852051270266042673865016386368782866176767355691161812911271598120901401296176479085148585836548151550194668853349878518883877093204405951480287285698942381582232174966329906686160618655798401208652993685658546498627087291633592787688346075864430476291039478016227523976128560206539039645323670841683093010205980260701683934834731762747056410599509136621097728288790147543077381171904125842062930953280399912354964920606963271622093936909623737624121880535210203506213954270182855705161481447363780263233365510101633218350507401238767395096879029536557489172001921586657967957333714422863346912430584580306908571977261935183214332421231919086050573036760848104412060137427415563175723823058995361644231218206187640697608322102645529787828848367246766890140646710992929074924239528270177765196015575879228691244545347394862862775860936225921134570236403067222643265492886796131379370185649134580731969961180706223676698564844209220551655840131672895647061178051349205274171433666885433302212871612735499630974172245666263589555260546592719813268110265200624572910580880613962303225866528007397001337929806210555150020350459271253152861135176516976984905809801191593289987485563135282853122047118524650621533825903958385315565293995865679080668646921106533002756557135205291394818701704834825203549435049437897712762041619308925217975295040603710632432355466041943970428707381145097869903922742857806454677905875954725835902144867764769142273740520869987914452209997070038011535440346539595862516651102293560048100336490085490819995469926692055819567861567827806729904269329487851860739115775692718761797112407152986627105637356795462132899397297824198073534865247464965289024046827439871441184588217752285198587661860122032384146088991230000004609595477080969722133405075541696322383242696428852189271319954438415561123082065047009391522984667619710588021194969821838444865470456092504101511910330097999988268692185252725459640177893536935376049167703477109467311694106377560353768635759813827092846543471479762142715367378876160605295402097541310910831518023431582398097098475973682961317131352770902689772898486338337099152548836846021672317011670764152768468607525778557362163220250332845400143231261236694882479505208566517624473050036742884331104620469115627690854437960437170579446428606310812677624271013165039829630115934448578793620537826565473737966009995094507413427719452345069821189439031776826346718591364507925567591997187488440038157520908369226003086779547408556638663817215132221104524096615162012020072927090855874387064721763845565521382408468707804285763248441622096351669398725646840229655898772126524380731941469779645289219749393374634832718212897894020622461712375894627682818144717348626454156186637972934822313313001002824669005845660872568066641554590299449667655656882322133524494844584101368286854471205810590801750253055495434224345399666417684063927993857231304298180540293600475191060875195859262872240970167617270591087154681182977826004442715749941472950749814086358461840513674668252528573121338051708205509451232432107362148779158444202848821483239599000425929311843830443339677031330227218321703271135083522378125739885877228566588061121461853482872102473199764772208838897567464949047699655577460240877768486017863029406365495273422514610881300844358293770529498304182334357950462569887275021643239620321512787990173642649485606925758496183059746526454466745085159537911027171144028623571348928408294779215531064599072402471632032760018240002918963279466746050205766126036991531814688347880933875874305803075591923871005191528653151034178718600681768930899845565020913442476453099181067468083870570850817489358607517039999868149318847649707462110127454844552621026168105788633393856491910856739024128479527454658515222593537453519114945043602823436249996905128576461581639586573037297915475910896609606680443780139846528088907218410627086741494888822612332497458176131488934382807833793078601671507679520402120381388606975001501854773395207995784672759928058631661363862844720437464384283061762629447865683810822488094889485982669561589859465900364457302506090593288974170247255180060195849531506072638172614052463943158700304068063204246578875792339944270079500987138342662831198179423296810918495454393345675371732473250931419434792380673021637944755060062286459442449105692224417813800718111695908134754179927117849543690521368132034900859255435583723369764169641587289681653620150282032161343403344744050859906807582584014915849584139775638202366241297687274139470797997751394410410317171079979514090492219829927481055755226249375801406864513657559423875268919074415095327110368916335461154878854600167003255443056022679211179075860210469288513335484748368064796806521514843339489327773501140254688286051410098035281106651479989842805762582058514945515137643328122726209598951607890690145416572491974210193038220042213074235959677329416432409725709562642585324903067000261851312042882673535000307647526330713415844086645261079288991766761649966861316701892262549497710398784643885931928126477967286451087298559134598240427478137324512234531124774649365147095764712661628413464797659037572990381428734995053268690553225305738502695044203549368075438368025735772591338640552112156366432339004589030857178582068511250298502915737946323455348995105614921115770612028954028116630617418016868434007072568119613251019689436731953932288807738876831239429610343506108695457951975070735520444841553648168664357066825397004388485468514741930240197203553552395963738407984932701210239112098953721474822602749999720535484839869444485967985282710956238245412647319087297707868680779077102204231302502715487251685062010848274524109577123750299233298898771967711968206445581060698985384642924193524250577877137729532068791907958338742951173778788639111660885186638901853520280125775436518322196854656311967307335064880386547518897136498521885788751972481684064208349348574696684256098497054490961978838049694433388806462671601317365166034374484105844195814006651916684662657375944796663352236008818416697827152450758555185566397985227278839430624142438733245562826945037700691354002524304594477856494573767794184886328300588620616542888487920721101922044821789100609140910025335530702909500057714341838555006501423617684396230374620368134578785509555841438771246276596326652583209050134516150120015376810065949853513511289506911055390379779472800968984082905865330843528348146186886131349178099915670345841744386569752287815675741773576094995986401998215421430492766418919761700558450126454457245872917696189971291152745036021448200160488909489799601116783931805135822543594810525855048427470544915216504626555873169742478585637586271849821567404182168563320631999621551652851426616332011869462540264851009349554729885600037891461936725077437096507697265137866782064405187106378497183060551283497693540377088343983297166647890171137027022962740271930686364541176297097255479316017998534355651969040940050023590945064153044023611698419036381590491071821104657823660948718162256364971222895918119487985353844336627877101361870039973401669505227034739788728887245122691105339362513080659135909848559137177150927836254936245942347580287986795720002015153106775352029251698250190225668482783118568113587193954456358251121481080893843347590995685276137893998955340714629535555025860323634582583119507108595145897778679376046846872462718698637457759356434662879617558482710764200915965023559989354269131353287597899297373015439322126815282114520096306086664719389467275650000889507265358188229230566116207055342925480098784488356739578710578463933360217840549351917309060190109212146944212899605290451966186824631310390722496560487608778975820466343556986137467147304914337220590286380294596609659782175544816889781426408603363368470926806425391145555845064715606831328184615568769157033711621204246788004032065073706780873940612153617747609299674828458153220543273164112610596457847655956861555026092187551736089895799916212121873570213600322828975407064235639879661435666233782741789757984644451954142349681489479321978251935546007614977476733118388916655957365109523246525458446238521493694518207654915336328741589778351638126421328975640764856892565089569713330703229647735197910662937329204266570882575765836396868363509932807129289253670046796493669156715059280338014709706379425633775458482160400577178597901845670649199016302397224672233971444583872837452040993090666859624417906207991740738482297642295934936696383948934526608751456087952768046980692455398582630506681043632045842670662209980760450731711868063878794600671219203476530540728285330769457236752630716710435781361352057130626078737227229800284301381842029169137086889899543980337265125794641159225241281162583792538737229448156197266400814743220571108836566390098017743515278211109606070953154409954355035212754862774253378509349208517545244093121785699802923606948989411005442257386452428558396778227044866387673986306998929754543442860995714527529422957841553359903026606223583351599326624027522948287074364604281582988322009477172321347791343789111054600684742727175543002732699701828170164369889966609713986467860074441882032476435264845913308034595317644904963227316415904563475288892574743967833231417968321163101235276301741632924635715323664776923979509925922996952879320662837933587269302913413775959937669049490948043199837608578003264338556545968792391800308919184740077270064244707106900811179076527573923361650036868307581532086658376644244598387474197083609991364457813881992699518966452958941136075324946744384264013511111674375075733552827319044484721152675190441435121712731959890923531577880831211118769132003149295360845660522105663021906366134213900363119647592276823935862038734148435967885273949584377129007293175032862101672594849592525226711941632691063322663689695064856290382937561308696620943760309540331609468728178232127093422875562178180092082910353694816508221203882626830825894373355519186739980737465964660388088823079947888894697704054011579028312495280857656053889126208716875098310380953103166315780005792280548659250837772872954056282063800024806963368692828723925978956948225202277540969662623842720387598788654597191002551307658923935134012040225535722403116317000824983802668904545423275349940806292614270629949884576952519988399841784560105273791272889044063599341449213884596852995704347044719761563405227640186031254205346930958603703172334934581543646721224818815237710152858634208665363121788453134045520131527287249774798855534686134730528921576802302595287881781102389072391629109322799804224471172498265181171952024950063778196510103184355274337407673302605824254543802927703897538444784987303934313979593585618930832803109746774218301871651512502762608020399574271084247165496600352647324650510023932970805763995364117876611586278615420695051753025788577989799648470346909874311493114997470272469470491579919473182707924554472147722427707523154147600019051855565669837499647031723853098985875742777070903493759218964312584720416926687413292338807855890601360691388339938166346416621910196378916587762707552052075897206161875579445800906914669116838532279801796351564582709315651723847290975663302210304850976248865760462016836354794744181532437162089734473103938932873638010131229044308153660943618551238837048698227013589012511096361504759673982893325851717191862258961194555187739920820983907647109915500878321643424535165279626498845223019861858125566518314513671447404073463163619223667135058623803492443400490237239581044955003836448226187766872592036244902046318409252190168688782158148257741164712546000914447627564171638900344082434402803529585635425870903071799681286527965760742731721512325223235281176910546270067276670895875325164733923145308623443843303313484909273485580396522483230379043889540065301316460132902331035708496098522350504494510519004019955353783591417939483635419565589484503992573971138858886742289589783167072109067452998336103412787674369856569282416128718450766862419930297390354791645915772446273708847036238115513813389098485126952483243986266130585284162109843880623635021225633873448967061732880760945322373348709764786097651431154166661151930060454477725646198865337072385566379728657517737613275122189032748137822409393572625395636794401000773156235656719623122900030721107065123854832889047836946594187182374857119833524284796640133158953404161455427457209821639211123704660654424077180771123539387603939322791349927141976022413272266245937584998585420769660953426923600744536329576771760022683173612919681671686071086158538120113010371689100753597013970033411634220093162676811260543599307334032529927757687064903844812116143389891306305389095044776039919484273161550041424622975053963765273288148743796744783758448663051899118489733119625421575290219085369879165308096385979308653126762033541216538682007204461262540826226077461385716360278603119942577517258177927541061896129966125974992238705562329447601451841357919529719398961866488681151940041038334466096346860051912138988285507006151563294513066064042988276013648843759467926397801823236107102524448717747542235166103360927664743471812387481002982887473787937728321093196400674753584532232278564033606876167444366112419269694798169167870897841858588816924184714802648796990612184919488484294187113391917665227920740306500607340864099747235994957405034410279113987725604165749947176854464541812514207808018611171309018933605893977448617707000725678855284209781545795071929981552655041324688202183134254240519447829990703832052430978400679399346321091774431057351638764789337037205303365645464011726564424649907028215404650794031899326249339328068339058279636966094987254427709799845436649117896068026457766108186233334502161627851123095376984507580110135854880749540035772151573554858805486784359647820819994875835606479506259383260340078243158310072742109222583959173495195531782168889576787230609869965338730755849745982410345804099274588845810305438700624746550926610202483964080930896958666072378600910230976319767954074237016633098690692598055358760618751585566645439190102180333667307132089607357104775190677258898850807899893261950688163620313198525300952123618241974598165273362584266922001775071735829365994907486058407879810402700212166997049838896707876056770203490741432460832468834857398737257327685279053718812075126615429407764756440235433616366880150943674012633013707251320307149134879638856959920176420299051287771767314541201270404483088466599401732273413543846370261804751802107969870009423564645673119023272239826072588205760637840588705434538580113698050327926474623194111327258941293137979340423670765278303085964178343460579431962605281218568052725691678991742809243521140062893154512333134366645352210425085967482161105901582824525824199675116570541190843346367387951974831959845430296472620617636424078281185509212082094425242480930864473211058495720675766850038541264565037061396748016434847389601496271047043801763114947226527541973913702530166453657160166519866070199227204392392871155341864191541855462670035287276803887103356596826625839863318670919994845042867852126837674801908509715503905200774243253952034016357174732338842917075918715203704355396055489758866394542427821904791856820487334550318034449451285382988078230779236379926943177510613683371998452875581673116731593706263583456979660607421093516361983888318024685911900606085826812517145993399632943959325539080194243325672912502485410407482187919679371530689189838570469271769649181645117966003372158945198567029170386144296968161739132248101421883768307102928314849421740043907389343812236777307850618939754423067709618874103973403028600881647589120772974972199625590644981283481509604306754941407694152949841649219526114751931776972098327122155439414394060928111142821293713938337699971880578254790227829043528329716809354168674527845758215305272137054286180115573860381751601379150858776031178893437367506741583222795013596083844577501687234431428220385314549212974579246667615666468334426217532375686004217837934459104559073131620695397743068075548109134628047188374657434630519647089929739187539791126485495851131102393934313729286159678120979126140950229831772542624778925718735370357491499105845221129154970504732903526916119966515779983841825114190418848647297667016526874829596736346701940136907074169456915336441094301486044698062253198025740642405629897618093762122798007831424398734270523874139834075026107475014621949040854627138097008654735715404279939012038744626194816052408249478917523078714715024329834945389823364310342169157440269506650636013129665225042825000684431486302199655940653789764913595906533124144231046466356156627961016071280649398414931758169296556611631475753736836495176617013849995055549701020727784262274223542588403635026005187466147367058804511710313302927192444957231910329345414466796456338379992392065912397499840393974084462402204735924418419852353204210112317704063083494004407773446766973461448446133481433352969449748679413195548631911298435795621771898961304264102983689441260037865139100075833835446234972513058311858431560316306225998009959984359171444612114808346747507306979283598614219794691927070678548570562617788133247963601740794796468344249253604609738406312044597961443777084410722279771716598071890939882984471944973321735168430243326922091577881142769131004295744403107225805364196465430976887194446306640999087743902994949206963142657084495616684089583715179384427515813785899174837428727212759086228366094205927426543247753249966301268466286590184946737323686510152001079561077358879590930587924760217652195110653913172218248869106680996877559934219788234407955645000950249656881566884474239414955920180012921170236896935594227113289728694850673030908100541890949609718130186728114424550958457949965851516877192814826924322729207753739647227127665880085049349813822653335247200371488901744611915716528296897117414147405424469825015475139418622411894063225965111078164463366033320767661714874305442728429605107109420548214134932654454446440375564491181648499477108630650160928036044227462564730738790005554304326895210851053264809585819962196486905922118691990179766148461402531086146261158427782198929254099727495388309508078552841107146695570768369676842196034523799028586860096402014385644974944043471642541751639492503218302335278171191438109193675468689494793239837282756428337620711396870046333389763040632906878158798369615194376595407988196120781471823434803994948185653208713351686570573537272355333426724970932575397593672056431644800207923641034217546242457428594717206078784353331701282237073021285490946443870552281798395169849212492131520540225622159655619437694113039456537169458741108160828970197994118181313067071817334882089721854939314502814780926274386269147635838082223311752844236187180131385856965685801795673714017811567148596287416511990055616731963192824088604682695351291303712879466207096487233151371727650391253083462423253185572790410440880049822169949118451990311353074962483393613525470945545560908984984362953781220450265128761451325909379451655399500846920980151129087994962071001642153327954155560288109030681116414743375582253461220919404975142892579148739851893839792047338720894960229252507830936970464858676346386081018362271879558223883491135643580149682486791495887583818985378277959763047375140313426920245352152052545788806334670206404032684452118298933933857597922870904450825547123573457375997832729870977305898383514824551741297518400880460174497411741581379195078274673261666962419926427529484214301832889174894209725547470804237330147764651039145287591891359515535353935681599434565164471561779152348112699415729360084545976963185339644877376974305866187435167707567655070582461384522871738149679056182523509870442436236002810651439289584440766201047338804966682851324700938951201892083317193044879533952246065339946547994220815241616258575017030979905225912037218363466117361734717647494214988354671686298579310649655118994406727539478409416800246971103094431117753430154283900343308448479193480115352566336751239560334849095728354096779508362271370932470763898445119372251735475490060145421374016389547095858975205768872757879208318539190744812799857264182833879207566357631756862731833685835078746621529301577435920090607744317629048339872952157219842225288375307573577181509333523776223277064199781081571573107508962552355685941770446864958393990373865306417237787312076429123447177716149437052872460589364978807020821510317014643189070054328414371305822002847136057797587785830882907066950277962510574745608525019751288190003256516994341119691569088890696821543365810775043056030083815221663967407075600706148411420054951573113689340480855868631147658751993187520496103611273913544963613703763256618300157104103311300454113948378058600891989092337148486042090187410821893473048100628714796944766911818637499116912292953774574929525785487864199774103398047779058739349960394089017830786808763785818810208188868094348222086748411658724302556345630255362498770967586336350946496947327611122612639831753812251877692278030513294429346989126241476174971776604769835470080504377388006890812275901702124932741560349241424937028499365260857985971455041677742629785542592064458806248132974094735884576577137439232538432639891995148606607862658085688957120882905945567682125826107825060341213262166014366537152403169681541576032573296859934095628089100643174718439401892815142514421192091322237292773447414096239942148881239859358832457283567581683156971773303060365035593518906952486400539826847544089573720208282573465462249850426786700796995665181613454018719157997519046377492661104927401848631651989267362629854327542902874583895757211930547099968460721102933867960122627081846066767086173940949147158427725130833427869962159533208070641176151190311709749962278461165723846691486046833093111965598882038980756996425206987675015383645978777700192378127944687226169797478796591061889930866694306922652312226222509832920124072230684970407818761327696087663094851108704153603330857439185005951613073465672336257879930105002765775281373039490255332175537033285382344476123262863114890942821327522360830531262380215273044056474637367227729086382020235085336028936170285943397057267331423877445188422143337011725256034242799686029402768650091174221504924321722391416902475047875108378267716927571556379564480313222520274122552854851526154868583585102575430431866355563983758230222890815562104975819329811706319575509681022685258896235415593021632149097646102296651965831871916744234711386990944600485947081167386724510960443734752823224952848504519757087977648779414861440117476224897995227270172937812036731390257828913437372993626759657150193299530750218251860020577245524784325478559504769179995504007069522740202715279982117717204988893146277402154062804281015638554502457602304020132399001714346522958464566546236575850051606881953847147642714540421090297406119043067661537547290373753000937657470107399135074466886593059452334001506920618427980781303243528608976230200251613686897370827549407280730944056255975642190948225541420150586999860011472839880223856265173880230650092885747781708446539940485303701889265601437450684684410813890139331864624482309224634311141828665149619053415260904064050813641365629266857972927081434416027649362066409942516973581105293173194072662915348958304186261474182083101024508378664602609993892115035242210091227941510023511156371055799905289045957827129028459943242058371522573579724482523660264469486843515204564909945209117147578677471026969904835701457300731423821912062118431715143447391053566454813681898320627395044680342179658672424857276016286052114068229637850176684685067718870538066209543682760188790801261127118853538580202600720442502931187737290466405832846365737485137493778085882310857673673856361253225850681732176647417904904690276661337056981023184934022495952286628278660700350010038116718612600482126211671453921561044111796404157517147524798220202463760887753164020045806468806775618529760377954807795301285668647466396204697608665161378183121851411199828556794225805144700449657234656742062672337647425123005588988645917606889407471046013260095189351297589115422788799210905241102750303896121379232397438651914171951743600853775050874582016210768846793880876756496071685792532479969633638792516377537503506555338765214970020427018471253289443378064184465148781744452263738485346055276243392716846205346901149886559850235073759299634723222672096709412981191556133818360857914514261337911523710758884072673283127082631348906095456343794047039356045497842676210175010436127922751774054787980536032714293779387559148668771543800182500679124439976878532219247528033553402576446639041441040613319606239856396650189617972885532268349292553975383131074145587769944735258406930438151570682272327053320163015179635490092320600256525419084221384315394859794162352358820822255443896915015125828233026776060044871041131706361545908731941722519391906217012042207752340660408329932655169616059538465963509022452232307975126915938719060735056481574360049556544122257942800013043418345333203373096091724914344956420624503609281008315821140735249087250653790790684640163271474478839527550852180330288311973525943450634329718074476365516277360620039761900681176232269216242722368101614850768607546958693870856595040564857954256706475171195400016556142471626956378261561648665910433857400455400484615972699877216003154293280692051995485185827279572992263259554544165416562835933864717575872074203604208638101062075796305552803534338740985969343711579284058695410855274229238563686094719933292311661015055123933413906219924330271007045665453291139873110769064794234130709806171366636977235775356845262276604343551928191635211633765081806047960322786542153580759996464031607845512825502387325305688464374270604610105277188531500769097013212170685990740722740826674731474386172372072070156349511574199684624398959728950296236383547624640983870310741004961937502966028902273313929200005942809819312214190567285199728963552579202005243209581688056074646988752795600425473991475699648672933798948802628069998370463886586546681183607129911090154583587844642964061985256573389579232853604760613770110373854424522808209125005018334825488163178920935390487219696299144013814392607046186054198473440304023463988878891563736107953500357222970858081436469028458679044133492159524311650984722372571734695166829857446206876769270513532570990181430455725707424204375408459817564609127147160870710244683053673404898772929590962247854386923671396814348995753772114215020441093894462838558825959282920199348905341105446537494920297498147590992714267395539561295682248322027381794079795018666583032774665228994353366858617815894796957578332996793170269303151833295582550003680547132449960609798668389970306405639619927371740104170117843851199453045758331804237916603143384192484880009744646136232685362245330565019711268096681665235211707845129180697153494049076696672148981037893245318717614916164836009354434361365713919303789271660176563813086353164448668406353084486841729667167989675459616484620434554012708278144640188076030175779681806047942603425816730983850696681907966776964175394386781622424843115428732160850513356670161262418482577631364748758051452347958354227717345763951996066998124823947873066178578334657792956807670614148830007250894087293818569668438299528992209184549306240426573829427247928970259300313615746547438566692618858358144008654380795697358929004869068011072690856848762189827976349835026323039971956132315158132460974837363615907792661390816106931646079362669668984696961780928126335034269172799687110151982927615259077667976759676714347261786896884975169142784925454698485029252517446084295144508409077427476242068724140408515096898242526863310153450777088574563500391902136993745488354225906719031691346620975833167212884315394158686731853629206661749791591048894946105524716810432889587930998350089001677959583389164633314106885867340477815475230155825008720483707105814389425493457441080275811047298329073600702119345440912247380643620477086469540676519731722122565326543932059079966148982091123736963511245711538321069559579679319113380560451440957256582311250113834223038807101939343427749878938637884579860588183217159270416099263708221404116182682624065554766875551697188597702434537821295250432358234820892531151829787077994225223627593479210466522214755574210092203050347612599044612033339202327564027655243054882107247044714755074630350826196751051896528942540524066733265233181182640184705500849441896550867370048263178239975413144292445401505391513136678958626685338441324666693560646836238105683578256996676102727890408426155015759329571070566770328632653382631101058440706241271036581861220980236410511417712252326199141791798417684298318337857506540487429747503219779356743160556419672147343965308284547206550820172747972495152010706669354187879625008174080801238510723151562765650539482066078098158561448527075264860818162224535262681172033465078520056204481646975669212557598692769580465565714994187300334848832287328608351074140796518130973312344558362292678299735254239865368024145694267824837385764007220797721573730341475442815794232352124204130965618448195147072999186227924537969227120553957005427024583041940325263067125618704800584642082297097893876469210803609493654098870398607874656866771599871654453009455709002011386626718235692932906757601481536560294356407064741113332179501475231532479019574760858122644064656266766520824512469861822176731938698368753339282694599721675786633539866076909584219510311620271497824184788665229488854024180476164395126271744169756853835011251003957243038699263201041723163062290354484621815593902093271316650247251741005302728623604495931293370856047076264682415813173205604406922290675555345302473110783944869089077579228601478843975303752432325598539945399770064522499314796664414302069794073339656451549678346713025263087937221986066309895087947937078613218309845835363620087219522641448048943584852145339664828201921305806488401423350003637429086945195978897276443946704334140210719841536243016359650476960493135517314947765509962450823408434348802082071176588282520850701231703050803714538242807642284433790005235786493983089447848220523743067725800952678725027190549646250585350313912904624360124758745689207105541401670859212568668334671596614088011172312562822300792074740858641649376753865282130465104066762021877836101509276133668555412663243232510229808224658134672316521058434856912427008373820480621747104569141526038365136634594700204618457225196144995085336512689578770795141675021951632861507602936213068157054510344757558243039434149908784387593293933486069175383160386356242434059864475022089405341408646023667028216123175119373352717296721577390813598284820917916011534427119147529240378152700518032351419128792539814130814523270702236349187950988857826460960438191096910465216815777265271065713779819471892248289929527002927428350901167997631278008367299186207831531222022990554611211649926734371578530688761647206966206794242288675658653397309968401494822349700526547406292827679671534837552734689610226597074029831735022684010412171652438808720728152798071367488275416719986467393469711669639914627192596653406085187247716038734781630695194129820091708650087130618229609042391636962400231754237274960072239441168936208444251364328339930321435644491888296287239230952704883648009845875806045442267883108269373409005429458052480195000083860325930774724387870504968543865486812996552002749506965183708278980153541677677346284500992145729878889807369219672519292127005844822831122950970975473529865177355947439271176819674587712748453197428557431717627406396475941830322516095411911490479327322298613892291820468787441191901588321962647226375018309424788945441603330438173726509999773966116764275084503826252539255765438636378470304832118308953333472128649339973091593611706052737109323453439637364300658036184588109296127923246299511870364680107281439456585922562124816444856104409054815064606639584515065592854555822650993341331024757390410355267489357856186393344826445880789503943358671846546408836615551649532360105755610744188274771056156121044659747181266042058373446133565074713609774829004020172961091157041431804698159577117303228021606576852384423278258078445407757152737738467811136825787213014905925098936214030653212173409174330275789572622709589796021353094288149296359950369675848567822390802005398899161161629409621098552260914137798332331393775318446308734602293428655584601357933376777585204117400099884564288353500237145563998468865256394434013498336667122770119951668481489508821651126845709557811137674106623536678233619935963353372312667302057775632188712896150211979328084492436495963622025807276732558023992134615961044947178865033281525546562005144351042853694374682815595878949095692846978466522975255978194386844312415079334116750651407557480579545419337937393133784287453058014895547206230492780508112593223785245400916597482029037323386218208992718949775993936508058461991256445635728238611793175466715281020255379417167893259538419822445430797723063105262375983495831323274031181121576192686517696898148061251602092881821982539125658495669545083502302729395963606422558034134146507549840273823919253485129188919878811568481267273568628600724869133933733621956192589927181926275830866239345732279093747907619366126063837441515252785573542834630568572885885112681746773900773102301148789746930039077214962891268196245101972170459731183541949934258853614496502305254955280153708234411230190649420110715856981833807177042542429296096868662068839472403887735396982403535093932308142846523154158753301139999667833847117705022218594142366881853849888785963785413226068611194243263811698402065949350184464362488718189603300000456080966111616820032089575937546302490161290723076813408895893660416479303394804368593396465534032444181572360211770642888342358400535627621056678532097094175729475015783686638364100375018587337778815208487247352973649858429886681912436232379831142271319312926696285910950954701350886832055471970398884963017233033720698122676130985459314381025089659058128214750757406647882611752849868178090460793697096725589353850177557062533706039789499857820715813885481575788650875109700065690655524254213725686229532411757131326590668902756180519583461831315398677039821909677687656572647223573296478702338615560328337064887362531625342495695335339163563433733435767938280392475291790402651230508037839618302749447160704618976915231860437026897522455278072072537161591387955119638789271860899824512092194126488323360344778747496385001200030354750409929844447807840650445278309918940347814310338699416399621753636180502556691736465921102181538805513597313649090465760624823430641970787087545967549092194449681273143575828102861941955692232846743176672106568759689643470787215424531141811960923011561643167888990916684797354936345204591774794800297600699490925554407740587539913417871861108821244325725075639838327118279885364994934185946139194466090153860509648473300968815029168921191557378093361660465408768117370991664212254912357454368409976473802514694742581826373210661319445238054679842467848865276217897947941336176044646607932057328883076956414006465243735649614753986803156037652015567558407233301958624115056252118527124641871078224979667902956365495780823269790227756163500994788792865820102634821962861047580640571966689293434726746276058002822770603186290968837000712121414379719480731723790645727297363857978427836590972221842401928365200526769307241661971605506457907007386519255843738777444368259596022108711615816435406112027869794423209147878535609584644280049891131282568123695698819709562273140951851746151323690907813937686087080908808370550682174069168550535502645101272886089079006549500930310854394470211044306542112304727025318143169898302075560953725964207577417022655587596285855038341326753995942383870972689009491494014630362111040375814680857565928586982958737335246277595761695076700881783163884545173509148639904707349765155666353504855866372003822792723962743101048767199887564069897831213910645393620700451541555594211336630408166899346900471087400930324640261673208593928281938580762480202467869650093090103901802450145730723888639980277463390336174616435467447173497215770213785276097764746901530001904369611560593317237658358322074546424228242595000454379131687229677222754351399492713388681717988507447471994164117166359399436365257591009633421821538622470860525129224542629759195120340873876667557351478521334672350062869967967921746564587855884692772813308621679542000185267116318738175332473108826757337241918628026797206943702120457947271161400497218029875457737714822745845856333753200893686079811753691069670140070934263002580321818883839735880351830076960422239434548209260964660896908622705187766015832242656722206274994429456855843286241838675442025690784207543530907259912784827733755375239543259172322087316804491559178534022901961882756253363036525449997396142322591311371020081174079952619806382590147845209449142831492804011606233363202736404798971174465994163695354844778039101561199475147253396579448936770327960008586968196224423004360520981252323104452659339444668839110699174520662025898862531103530163040923984925662174842593927754909621029441568277099518093023443459409254680758003541046196189448243507109611652014831861756256948571375865947117439855530692128740521991541115015946005686358956071322703322243147081340704403974563236616628940901514005963767405517028747803324707931572368362002533479567803298285006804666769168217449461056596668777145737728979465176815085413229730903132142867542925693678943468771639715655297924655020735637224873663693594831890379142166274944441981640127121349302859581183833638769611437768224213134196308090514605185975254045774468462013664188125165902528944746453401907935683024510097144001250799587405394578646447729332246743458649728441538714274510650786057276739765567065811940510034518695058748477511810884265515849524250347124158821064711709390735424279983734995549000420903471104478161563854930370741362136565065844625021363143300776076247147175876592775704617127626472566416780011294455091460884552910961621314773968945009788332638072101365595061529459463022600409362182959749152894129871348066617157218237667920767437840741198274746589192706483609571487970075424837899963654689844793564679443739610722333712838130387168791320186160952096674766818182549651843728613968159405973674322920991827929476250942001600654843501962073671361604100800707763811447664903734440377211776675058304509808470954611657633938355970559962511858167078416530493801205120620741068859774338230466350031380483357986966980110730229527460051511530987667348347992369590011035634655252510006421568022996924908896922794400459060114175033450281170780141498227744913515198903219092525245945681308323359926438886946057662423786522253756479754639912906762810290736530515639760674254693394165103376655808741804973625836039325426455089288561238960644967585889891545139651739418009690910511353882307603052317580808636026712074825169735883826413318348562092790154199432014133486055015045178888498284919987938012382053440341945452332116466756717728741548563742175411224001383345601466871471326343503757360339100341586863840570582464653740069823850856260073040912755563565114037657352553954512753283902793381494635493646199562044948109455948665229686813126986189104314184343482403869775993762271793183709129219321514556641713575415665470087070708978192121375431394891995466939197238739331766188087155580744152536672874182110187336071637122778972088852397206414450983984993595746993615672239179882207080724218750060203689893878752810596953611192968360944290209350617845564255833910466549961615048972760002210200073821192514670483207915118650364900751152800274986342400006473058912114037271281863396080927174472736696789211774364685351159033495170328340129383301555192111312923995824126901351904062374755688855544573894739738212191713816103320706361917814062757451751805512452532830447615959140220290064666941004754814787560319523332377044696199132738763686507330728526847099168628696985026501067274359165407338992110424543404932823300926896180230237672941162664499823951784328406884252420320036885926912264277442203844366583684439479642542434779081719301955544129453695956550658050489798653827165952688952615931588449319839928231262659600941166193526887608518957033408063195310636002217089773031739952305113628546219219248971891977074943334432951927839879036809943647479396652509473240171615843239720744089576038794709258419806016839485549022513099727110345948663968297469391776451274113838778110693842496466550908753372142604822775626084289454359025959364446432395490532926246721832634118656339293707265144935528411150915448023069555107650177180080967161890688132473185552162510726816893641964343870598433177723934210314298687348908541775110283753604453715842863003929500340946086752087100228546688272190991691671735760232298900090715991656793123940072090616981956642862650794918035318903438985445548779666155439441278753976663704900579986888937165328007849753222032465044122311563012998340101003433520054640534666418673990368947172387117987447356428974295228381926363306791156334406026136682467214582886069872445923783265313383625147067368777944879027366594277164268035305852991909057483229776791871375781319460106818172637508781538950958590308229556761217276283094632843065443252588585309572218899988290915873880573357637269859160099029466181590734345530134234087982111632145341215670019076496154273746272438014377390739716465279844416326300065136334076777862771090932427571931604295094222920567695359017050778444962212026701228185329162899181053853391263576989293154244466262106041002076287106329302376531241273268928381657719351534614307011015767037653062653038394560301601073624976335226321608501562130365985407953349040156902075231738040397483976050871260075438035461805274735657163326622045356380673130621426679575010458367627296543615496711137148155163543691717367535163309897391504474484837450007630851261406090691085621704218830955225789365796203125728365086283671238850653425971022268018382960343476315741731384995146602307793438420154001573944633707177976608937840728794293150217992424244852447849835265233262642959857677112463473926798304427133235236841107782406967266927558966389259775347243797929253245244297631419640255689908679236148615779316790533731828685802356697544990851607202260552812442187917609421042508465552728209562515590953585100356845820039772893141321477234754476073116833049408450816336435390007116046471798875199402461020206763312022691737626548297236906134674822673496430512670432226085181969393165853507266172726829525969468358872064395524923274251545889458049616336972944591900226671812246028388304377918102358073253756067861042139666925400060523606364420671176679158054370382528958805634465056830286088406053091697815486062672587599643062113163880455023133286712288619080062592748107474230441900005434318724870340322244474883625922968055513460687914334064722659876387187596806218085054528701939713066100509166156565912671303933777333177443135778270283884348707060414246956071125093205054644151150063429209436601901537950101068727378145561913108826392881334467429919868939986947803661943306649488885245286793676391444610603239366958505213319690396923196707049253129743806560183820524648270455865511524853456408601095818869305236307212804495172577522576530341747939815672971489811512349025223391167563677373614635150576671273854981282766621448958575076278456784848104341947173180241974306846694526931763014406558299108876504366745133849699089340179779119002281671932002916815686518731246623206907672871828478725784569562604020280128165517816432527188010771235694664281658748874952562105192590805133372808279454096231149265634868041772650784475862129017882699283112231053814302616309328690385928337706684429724441565949507318863022572655091323896430576574736458939016208987555095906086620979925109926412618172191859128469872504101629087732816131148603382635217534813481224669386535154948100193623718669021024104475222491763275388154578532595447448355279952224798614439621010119320225848229044358982133242245321171301977907658450508273280165169739535295752561809325865211004814250215914445739876708967782644635488871766447614047828909055633701871876312617090781238399962743358084575078320266875200465964955425854212610670746341220357991643349592118521786773533607423044121958923525509236671710541711882883291988623699728042921423472119805073223526475362447590769400223789560977965641443908116154609768415537349807813697807236461398651739202190654243416194943882882164130226033361059262875519982817885516116321166777069420397468140434150089568007724156539647410564861458922714619359600500949603518851488739687021190075806305605075289434747065094794265918643378315937693479068192045506618895818392524955730781065106737212375455713071418537179881972212645022413494777401908257317059383486237751210170161808272799130812936656246370184260338624599650623188117109008121235702320380670165165628403422261550302381704772978815610979211486542733906342579311345231557950092960788606544165666663945110705063691419195777862319855759625196323681555690229491325219594546344216896185706500196245253153254654914274656751464847110212161249030860929347771798941652765933046766300334158113177162418984712677006714167576772572726555753035058842584981459959034846342937948314030623084755366839537217458955138221844043871213368048880836847404977030275954276599064492281883857221954636624146531354851531753961339797770870065325055895558678711847367989634072290964635460486838639501957319007606178418147670243244241509352808309321308995877005111759661447892235602406946546013954051561895823342844537371834004491314752879146510852784315500800948905913212051322799266758857256002339092326785104515749085731078425876906830040241191845252719067717949863878268411164929326717215045704957198566340101453434070330881855919104991280816962828385362289886247500878147688348512797225404002269705006960479180178553890159197728471610359057206790077353042882557974530194467239097223359819546749102246286321886012368180887362664656191970415174665255232588305893486560784312548088009917864012443430791781477427092440203741907702682746960595837631756477302127090999522303321889296996941508376693745997014758973878968202725530516550445686323541590753000325146549652942933865569751964735744899410438895032084074391133842009414221145629145832423062148625096742583772016334411922789088537554078691609375249489110368866457694294291148824330094845535667763021885771806295822664007523723362601148734389014945284713780440259450707577665868875370300551768320538629404827730831325955582883123530446459709213867089499551434635627660497770850725505958004078016107461740009895427300083901702330719783781604759167623165600001993346165317185328463592679300387299209405208916075427713471126034229255541289715972308239012122089923214419314422991030242133268511205130577566618075552531483761361649080149652150087471473635995033786857292131166071504355833786738116859907468387510857559344546819839081097525495421017689525811766604875490516892526290458881087504679168689462417825469724006893830904682288486411573665251377793817075739768013113073205440247656628256859920212112605091111678775156010478767727458655641561889488801450522239301238073758205856468164585846614946466184580894390802957261258144293442161534707861945425215368113727235325974814585060252496369294870501735084686507470695869973310015074062932258707375384689806415921870469372079850244372491666925923716728544610269244410592434563211138357308225328375033196975691744703644237344556129516675898762623871516602019932652766691453513027634728277248463536633793048877619826399349404424136961670464386377428492010879187469741284036856816871919944232848490459532007098181809917648962326451200436471280251206542771377432556650344596086721349629804892214851126085420965440051175648777917844455948241383796757880497228184893774309163328859935243000207888154240710875131494167025010680349086838177436488610269883500042859171121859167773879599109786700907011909501442150569098758264676317535665158950711640727060974017504252855576738542109538672650780825159258081607262641801815782701121917919888807090050300916190831256702797182126792401073594025767554351270943016847319926466460908086974885243952137250271534821140875092445762160883079153433500180055055229767161213364968571101229516652535695039856496198832639991892522517972973824822390148469850545054271817181075613680278603263123060560486570944223511640051264436691653224407254932051045659000240035335212442797371472436763414975437235149972597460921662404010636701764751707030144172025707291898124452530499797078057521106951913784164365828560987586539517771883127904300883441383722018623609881954963560569355627107338408001960645998864878432898489054745954013028422521691743285781652401357917607053154588673932304959940800760416081073435902233884137842321929137208322861137582873921658561944113150488141207527387917463991205306471410123413890432589593225172436165656971726290908091580766025455409438746127758874472843994707234289112362505932204693298896248329274307805091717291802226067798918277524200790648590758489643941164215088391362463920940212325066363824958839769084636051989494034533960777860490673285329907293174746012203888341221346308348348915053571657691915940230775098381663086879949653390989949513736346461783587624501690391949216137293625620831574920605144997592908854446398239451932284743796087708118345212640451026606792177980287495819371171867858358916455696932314429378721858674372583806433612623500478552094170649399062993014439111450125026099738194249050514936990444579463232552426124973754050977035537731106427942574426681158123257832039925389451398923981568539189597267889270583531063821331106880874246175029149625718245321753464075373989325901254708930668173263768393440892211245011777104555876646220101553126503229462622457916497183691459068942880349787086258480956935898192420911828000537310345969147165608959849786492542670435498828706218192693051715603967960078110767522103183613784098832052403857771939095443667351300911832871985063806763304265974835673561508300784777887575241149496993147580027197382870788917450949100506725785430632358814867728138966478453517882576941399529408889226106396874839392235894769757016156096416374879023625112536986199586173030222538814746298511380391504299377557178701244361390315395600897748960819867416249046293352317964306364941063931307410713328803311113084394495008664498232999675524089642942166401635495992881900107728937852656507814921497335274823145670659032545685869052743604443247695942784091293487147286632530441828736769556947473255294736156930942823777513567923314560968684747409681752650794882778708576849705049257637726660975837121913390081893631693276736615152078623117223023794876211830870484142481957367072296212500603224699660308300459298623424570111520562895348713719835676457412559265607190196792999516144737394394743132915883685157259675119747645973942676938365356645244829650042775377536323427888881982333533122150097256004583447102667075820795977090861378339268502485624406570693925528932132523372287838783986751952226616389822794166528037338019028392397178844734707035335140323307920502360003988978005167988641820736133760815359504383040777537671899400549844428966034574566177674325703771330040967716266069135373584183990845067163670576279756116671437066852984420782844528833289919027718260707015099033425177280921353543857358689779491725885606704227845787299059060275822813969705655383671902708624652482649454405422183375590441313618958632263101673377409012798323309699063489586331409610414387110508524111699281009775830740757356776019114676567617093087434186623150665459414704955976084083117373952494646310087289229813485004669137982647655709118334091559328641417484533228179323690397431560612417769190030556608890775144661355223532964748862517967246460918507683399376114555975594328324852885800859003928566003900765283175353482646341813170133213735832038286360592021545179529835037130327952516747795876714473647681274279382910533457351159772919264315900655179982415373523302815798785862511778459459431721521223566774523804038448809930361582075421836248789047997256390959521703875005633172329033958402053992679508722048337824915257591712908865051121714425493328496829196740117902920008745363713477571900704713806759754469034041925404507762642218273769105730427249315120947767145656925165465498483744224146321257148744366542515100477127553024312657086263360944749590596686696360643845679125555402937901811237819842621074419493005374325823537513330854232613307038657986802400370207757560516372722780989692206912588955606400108043782078905772089554602800302382690273701801232071236979549936425999538748343697954996072169776312302416682954070494750505420734051316422848532600686562820242479197957073412164716422026649570189569357410720040701057294610211080611273259119158483179578970033069062359319299639725001947069160694971815233281513389881674571718533963542759493743280917188099826614194684970788543125888359743379052145284469121750253032645916169177750011634691653538342600074439382241354296685845479914651918778133257368877197229369219151865236557548784165205605073112401887622045905007300289296394858978973796768709002146103959646800851025842548193524697971678352833126328216831377111116409763324670987330084502600766531609719525186100663615035457593680694131053076661630460477210784826230159176528327594191606481271314932288059502860105757724330185293138451835170734889337078416690989304476459257591394504376785403528766830875336045640177997537176214504074171115217088169039294623072812098912120851168284036776538337646644175312431146253914349952722702539174628241991905498993101996693361643802427071195676420717862588038534665336704698497073481690241987801473611890734738991580978163213863455010492056067807884443454860461658615234821095069952019510428893803198566004283958419818377540847150834273556576374699418637871941977773579053651904133944851528781268714960100477344302094818575042788276117550921941831966269876633786980385547626634031655447555738539476403698190734037709192826915332514952702083494329643826925006772314739820123206078593704996795123062091417675969142022071181751356407666468354434395320405657466357764456228616086911613720233550869713296359408012558632814183998316349914429311053831018208217469122696261531653943428904001994899326511951929053854013482599115618756406979886262701189812170849585343523393111131100137364170960360132941171411865596059782958391511444768064699468033984215784359227629205716820477132872364757063490959446287283800240585994406340825637956801314386114093088778168022734185038116274579028948570444246942392716623690843293287566142541641840143579013147102552262212844353298701503046174679572082549006113088344098949369348504916714443839036105209819783850342795598665529650647344244529511649233336213594165922834374578046086379717735879789874629036925085351202534080332567003071753937083966288149572180339225117069213527664455744739163686864835550816695906156058488655991722312876842347033633008972777785728890060850946090463867898718157132402447969421975714144295448086963353448807057007654735291782314304272080696629883507487409806220920158504950158349369146258191461423101591084711185210626831865966724023720811499123490015018247933328970891908282336011552651490197387489233041623941072287621862009848321101497095085437898561954681675535246854216030790702133787832758712585263263438440975269147573186786347710826042467328735451433561889031108068730176049326753363507957306878134407380392079880136934505717011922122350950939933646128358523121954494583048339318075764134606848165169062015460176646241099591106883073109840256884251121434466336009189524239163247570826201167179482328330520153460071197495263856088400119493841934697378609951346909746279948490437616409038381948915472204697070960517092107959941307087505536254328232392677920960093928925225324592555990703279921542767312579091920636462628362649297010276662777628752424119829211572682661232886295331995678707334010468892182589828408442397894610466030037948686300396804361173454815525202651702349397599165930219546397963461913505431823756503974597588061398110569451707235881534053969480461253300061606452351249414472015441257863062128518770175261681772096353046547143409267295564535807927486936490318383211744793466190705430028857223410632245417146666262241463629970207115501081351733750527989850834196392430621840907721046642252953635226019002745161414687694869451430087143900063227351718176919448253701647881857709808684730406380275997848253703565455171766378355672248266831407682620647447887259510650658418009504140760271824178616497255453151495765040232126415438330746153791527181429630967785644902766363947900724488760263009804971567415635104743035483893449290891604560299229236505662341620288342494569440363324835612510375658348029945988321978408547450729945241696063705695691995218346250683014007644457833931962010908620283116052679108541589783084446234132716753885316351858173175459135433772804697634166963798929534746196896852470378517070882361473628692744406449241252818135776717968065781757911456534349900061705042976418023670274561411975318417269205634706269616010363059000371540638092378917726035970097498753779115508971366153139878436308212436315710356486076397747006262468552387750712145909178708130453000631258574814366258835795580728822217330832485162465963697215214860389668798174592564294183582005002672426309732138190080855578721380080915766916436509165213565155021062743369427693490832177000205731795867431129043310726209241772538761132929389931815782379096103676677322009888746400282920332575401975404635477260068149618184861750521430846084664967310630005483773592659579670420497307153186903922216785442157459127462389320681505354617526381452241993236349222715370733234443952293188937020974110854814813404907100853292625101586675596978378359236157260793408791704584036512121000732045257877398464382640572323047874447326131946764580231709497892915771017112743822079779729892936366855341673919054030841800184987722176215958720029972076361317082148071523939051429100308474750740082646380236526177904041445565058247406292901038080449173808891722413141542750607838644317265864317100952399976764294303983536976870695507250584973820701875388889035832504281714086788381363570065176595266660988150133318891269003747903366151573636562400526107554382370624043410106325933236064386088119442481068150259817206927798207860215899299799374484889798473052221125181554300286133803553869499552376878534158985210913774767963344480860940524664642268526065373741193814153049763467652643778506347958564985721458163486604257564871817576372022021946509027273647578737834251818884609342127521288260564645063779854518861234658911087605645256561189719051198029963244261731419383769255351392377191408136627227820632113258111995877103528595138839726005684842005107923335544689336275111633377402283625957277442980546452338956518111065895132943868037271667803627017698184160912683786777507346737137208908270900046104661382407645211133200053358464640282666069931046660802527834633574446199340871998583588404486404516736541334585898365656858274040389948401288980279444932957327546275776667997111660583447260697114490367116732220075182763535568972360468360380625325021138257856880423611006215068380210191079001906732121052597870145191280064946522961893280276872232680786624324418616021175060154401477378432689329680030966902699613342020184720773934908209338677051628844903956602087269500115820504415606374973478610373990613578326602798784837689631651228990437920055465662840777164440110997302069731888022178188003695089652201946623099374047657232144483130296436424075891670124164115946464600445074301075001705196021523321920474299140939513530654730942963014843360647087889862986920427212422222075082742599073229607415961067083957965927833759069588161174271105322425146195010366285383733592863244602860519138235456071046710612741613334180318541091156085875104467846108658774322778075169098390593777100389745998843403024239322714317141780239869665913870035759653430603316157986315556523999125220968807718915176406254952211166075417341087960419388919636490698713734120394529469977192462027437170805289970129178545761359066746633596925455587938883814755298387749221713273482545305888305958493990489395650596387111011978875009199197210745142011714038709390782747454426498642742701166730555450157049748128891117223188054493870336778104410683866005459886044964480666262340651865238155296928846095092859731861490019774997654908108399965781872683586152785614897069673360727624586616288413432595477996364835296975929449434958606933044494489439104267359351832450854763648824096746351275392302112135341058211720384021774933345195783720552381936904011110992743846274232021774603928650880877291197841821378002703271263572942862457125489151127066941757609137039527861576478927467893150662571775585193131356645812224061288376554548021120656914065957893573652777637643336565765505643216211156193889160701032251558254324743626394043132178642045001619804267525422356174212324077145578258906780094328523948005025581145976008532650073577453754265304323805645140629893539831564290650091130767013833300789596022319721672802976911526503967213446292233379978169112414224396998368166051641040536304918142413506856983075072318338747066358535557812952036112847889574553721513799784369605573340102956358653504027144384051041284716650302539795899818988553804651943516765660330735957062464234625891573581834165395942524400953520115931783046792631727282499483491008473210559771462589801808523282340457913358551488519244726205977672014817512486205211010653952829223511313358188943290519110297203982172062541889351675930837690075010775984253611990975632912761991246038696404742216725431544042129245950404759191266568039407622991576696707065608146291667300951814658675663690250399685382400447680005381187035699673150839944643430622582502996233164058609580195147463222193348257180332492843302981252380068060527622164120558350780792431596464744594800141495514507483875008689857258777548173536289109309940068617241261995010384115527451186417126056978378903088605822774543627854332868246362288087766983133451628648952513434471934861951065916547144575722236636100941526976563135116428408301908176661852556490389843872528874582038394486362562977112096401694280289324560584688697921610361896724847950149219850519884795766114108430646258413399453322500289656238767466352703970020631688893683916546567754161495513431687480266941893906158891031840178667226167233721279079614640260539583836060439149600937414345148719784177047576553215558673323817188223757610421772241760926607880017597484327836699974311805075405359059640926648711990822735519140618102479158456190076187498355293578607116491390280398841049220118838070423745055202167713625802454661335775954112974506401118205138618695627864034808392672447545030581058042577571708993731298677367280613219308356720149501962525357367181223397733144575230841478331143163644194841106118513186425679963993900510395433703793027924562427454133499680593865493179348831111745221277221567304169111622566510264371757876717833130009763882923941248415828470558644671291150859301468423341195005622985872443098586076808759647762632255670049827808885042301414056994370425356517495798524071862801933297271064241649597128325369604587710295583850742636695443064189286376760314382172037239981042954281446653626545873151420550194433160610657980174485197526325438998081183151711238840366029089463107425451492149636404587452553388674558168945777001154957270192448792591442973780569935492293336350766685057848527217670020136757991726787570048717045026028407944872010569787623102767159430668281056707465342617708528460115833527052270418569297190201031413601551458235139475328378840939766768154602157504637093714642034820418240417887148219127387369636360153163438212630870104840252193197707085286690291354314536067390862449794748304238549436192137066193661316997579446431856318889508952150988673262576634211996429181550953477258806691950211741480744428008692496767793265516473299448776429560574338974159500774929358041997196262458586497849081753746816971262256786417714012669107618819441446439487061279212033130794923211594606480026863493159445170221461388432440879298447381303412306267770207277133078260520097340561823043538471151404949095607307551673994353915715950359742516202499496102005517260671285565378726954225708949178505729066689320815308282896452886587964718370374106185952450153354248533517169536573068179391212378851171630377904881927558094277808926616224659612737769823474896846983788359189241696072017884777584641228452890521500131503744492473969387991279658671446846940112755271983530753202620867601465642732625660038551128579931755361738405123741776604402008504929788386625733933638340122614924115089235967886045772909512016134462325792396506260024460709181830611876792564486084869444175710831439278240684864485840303668459718420330815908281892676583889785577997142816953971093953136225142143327622788073965106459858677285822772015089893895281129660407563174332218330730809372972281552083938208562953581592236378908494663696895876159155945034961757460616754229235115777552423962045638017067150253941898450006134216281152823203376318848278058411241939071561564066591599414851339231656752071305321493356687563523060156554394480284652341187691352339133085374565728761806522993826955507759200742958708634657914942732572874299989822298317006356111538603454044348117009906385175072435377480206730168763217560586431913307954015320788937845171097283926854656155430046266378493094894556775883504463094137094559517477935376835226915022912721740324574391352912442270415441195963539813105696926603320072019090297957987478570326837750442074531466028487608078380095418494974092526198602367313974110278429907423020601979022065146300574859738685467649031447453298940078906504708904719358224998800226792771189207305772339469245127488567638530113043639417175680100946540864900745948609635225948136334213312882002049686583909501919302730252320315592647103116326217650817110950002096406298908086364699350632133897516209714622843909829822686266965912578499017652223208644281504874117699264213281160121406807688667626013684300772217294872737682971335821391584174815949302021304339295440657805022487872855198009207761438843628750338142262322390714733637106766224718439615601963045844104103497644285601821334159095773000088814304369940075230884287794861817369245664381366010117509439767578832709729622819613965350842980006003754334559643278205058085550774657925975430007894632231794764371709881954654689563597381226695419696223294621081260972525132353464244824247049300589826553036041926510563698215615973674586639841436044034344825414396500503891884731487787656862918178906736993565080565193747626286627675779319408272745448368476898831614958880739260657323802959224947287328878758091869611398732381258698448275125601312992950750370594988914727213132978304010579013512703373208293301986888890679712452501985936636787144817129695959106535986911768699517236239861960241566721552637154836163348508315270291782552897317094047030367861722666908033062819080881936778381806718451262476257634603843281330175161992406931379444489942552495256953532327661630421161686434424068639790605475236673437026488113265817196098301170911577583979646389271226888768432097198296094459810600565514080669707225561559134897915859064802765134317325065166714521807598275257286245862139872900223444113279775597430950183016223805025407964542744458405163884020309839127292857606276418412234684726914081901741131320776957592607033916211266592956415342902594930338316561947932506000546835540076485599338550131655929506041704328732811520626192881470917392454383327291271770700540239331345850911157588501637440609702197755809081543692730052434720053177682074620496577675294202201210984221089463533834158185379639383065152650592153078082277109027978850441114480870357432281450388537762426581958951895385436626386355517093872542510867394357906400206507696353957676359150724100138745195683562526255497970208616541826711783596419417194486061782815410128010425969551909595384489371067281576471722843969954565559679497242575532779659223916442257579915734613826061105801566724621453272594655173358750891801596582572356900882422102263350542155456541132795240787359220200323235903233889205724682664840716536110641536241300952338460013475311080184488969493034346093199433460768563738456936148149568039026287416543429199539579961884082895207372601461379839178339490089610707622623132317521977292715388073028785569759226678832813110389682256505992550449120888045910279307807988980909772986767192264544126449389976617004276755072037575258165150681326905701843133084696686476219157125177197910498192744263537217352539202409205241887082076407258962018315289448976030082338879293476835623455127066961345377208088631724111828574900759531286821495122508325476286705999019175058791026769554679731638406931928216180235381762287664161576951873701398771029919251565012930704850859669216694649748992849561761589398042369901833317720411476488278821900356337829640570687974982535052702989482934873588030638512063787189350258696516452309988051128506795372249966420147100386143666597082927438857607904595627024631331216717375165703183249067956931120563956744379453591719305647749280571156907906425318868602188606641900323912540030736581430379482503684375779859367601252246093231426375445328208875517194163679755199670474153871136132752934377041676313719007765936505771101434995334916399026048569526646197027557829410091350032747482974935480556176745197288692819548820628595399988105258264459776197238006484913150540997906727317120239308192885320297520420072812583280599873985710211692664018669600365163838747898481047272028679453204091378917545360233994168985689198780272000137897145580091077625291618987839452170224532959449434870799496570735753648365672698484418079341036510466756658559834555481174205326878288172543691525381810225759385314551795013969184744991949003471072369268014107555843960479987907070820871195943323957933469726155567800192335086925165677317442957966519165891273748443399809866900160494572971170106969529883771860876053752771135945134385020920250651569095537904038387313851450882923001237629523455844888170358346388029484042116255042527565932634539835093355774403430182567311806735419711300697571104906941932636562200714556619156678779146877177651446902958109854668660931399450161458716643253997948480528862161566066036503175822283087485630753951155233502052208645656344640496346273898865554075341541188997968958559841345272642398855695020400498345703235056473799537374093328388981581294862583920807990710469161893095587240283295562220071563691911580473788253274745827135643267854452150454943362486263334798890541308631124658283457481405778054520137880094009692898873362110190660876307378810331490883940782030914885629741856286324171041021765724466937950250378210410129764650597245123388532467846484853675230370492646717539035757711094537413875153588416708183301892234588380713839957549124024683901381771285998870254644073695389574411517989029697097563446025568503931262112216787525418280936206959262156431624380531720798426961855614974743491808634400654338161996959998138427475389456988407362897604687304562770922811705382656173694122288463155389126788028962027274478618748261207013755930834359661338834465624291508034561239163180355313792945793457666470230439654802929802136722530531881492197476553680208149836915906155959780795746676149584127425550255250107560311059404268278832069675736064076716255857090120356628973661714407398392521886793775126067084157417748203730909515256486099358101008787105367234004137943286913587731105045356731354672655159575486434064592149984787415294313182243643235979204810456690952766513099617125872625967980053354300730079926200966416117822359903662034430814924090809682820053626600813869088564053123669143507513629310814747309259608233870972472806840698354560546691087873509085876687903282236558127182541494229865617954232513831508745530646596885254057073047450342559139490110146801061708251988317368481248087805024870182378141587623507004151368275826243751162505880066823993535911886209340623142027005052228477704961302993577482025535978440831696492412569902112963551679852937482655157571388236033994046869918464492620485842309214381963771632645654879838654753332902050681667808231879458595035097104489386612010915234542620034625283487192080687397671104960724833338342167760843175566184134793086216481776913982389313494218298477160261388077402932703044688692135966875292488326738138996560013240607050939930438798629813009659781820258756482736268738647312744594934214013556198061575290188942042638552913951021399900864942316618497704216034041782506244925030069080345582494036332689423309253708440435893104545831547141555070714110860204423613319384695753445504829747722008020885186142126158621203219531234231361948325962594499907299117801265348314962472604453677729574297569055494427388551086257992041977595231720889127107773742194449610514954904858751400856248726041596445672250443684506295566997210866160651511582008961852429576499209616208665985765534216956103425426808241820549307951610977519871043280227544682889462022775755498510177453184233701213087933974860905204315533316852858856949578683898875703681441456244973677843273953809788168299168713260997159031090173970396192371713415453455916735501618702207992190207348805649769786048045573394572647052454797411649124925957209699855677290586400775333855852974715947822641074116398263522222928510678431965290245612743774497084409053807963231234939056807775691077459657854153691684360329438337327335749758090982795045672646410268726762935952789625270938029090006978513639270179543644161636955801664209398702522585832095108658850110076602949183118552397717242261597450193929320065669189842668349810420402656084223874056991768312572360163247515130033647623468738607885123874366776796799378052464430095560223532786785144684763609013700434532812180327025757544809692677804037837032767319804208885444863604069617377172722281022484079465300474986150646833475953281308326065118149554334980942107668727102227898465320766005813641499119259758026096462031275173423148461174134105275481216564573417392483713756655823439487652184307926813716411632376873053904698578374718805760161087443661301289972928574418752642989505738319592130838138292648661589909137637079100130116604411539355559442021606608321411797503042347598545388211384069420875909065098796004792573266941228919900687041605581407100505614978331307316479445585251004905613410667797174029134476590817549698619546765994915401970038084376654842170874780395068672385023570429071100091367177685804043841187707295624509434738535685695986356650898022436869254139021809710684057372560053093659557477602924774531767696010421707493724600188082836583645843529828803575221803698591347608595623310169207902908108763175608629722365206195069757390315478831789690823262686485625418579376313693248773126364849535653527371878873195837638186311821295432701863395732818823581545265459358765172077283088463392557690800125375249269121691107004851318413933518519726426120306306843937888766626286557043648454228878200061348343857210434677759199821491826479180139888417553704558439912519445792409720207415232576096098021026177435265563202213393227003986303625205166624761107830641694579173780711471190575079966700219707211117251785803899080612752523912356170590791835351068352876466842196540186798461117255077515808065635183625952427621298736197164213843305940409264985775354801330802784192451124972732493969561149400921174493772411233984189765344879628859582066079409165990691431309451356991317343118287221645362639944288908956311111404212794976444375069749966304817159083482394490403656179003970878072281900405503166367631595276207984480054190916057567894944902506543250538630767346780294918714182684711217573947710273757885027099034070183314556443836184922211808279271368993534616552281655003744415812998131504906789264658034277444844821894796439936436145196725650545867795310667064102925713067859397178470172961699194099581585571927105381238996486874694716666873495568570436791711239620872780046415736203329655620406093432141566737912545135928534272137400713606960140572276270739468668921035912081443261259763161081045391199993811820031267235836121101000227201419900667587530777897445112541714224378542386447274650017643721715032171317190077327821580404628142940763823263272842833110071433825679957032060640967554809010215798690713647482732463957504467734137768820494105137722754790195009684549466392972821348277407463169523052198603702359890115102619890420930061796103489976688721843323681560596221176258892831447378232300506366463465809646729938968781718931477551576923860663518645464412419562683780962780318231000597988663091254104181907331838360445341169937742898537536408310962065292524360704138896195268059844013191223168463026933853939705402122332222940716285098237973572636837378556248073989220471641629316528997172882348881602251907186237180086456541190321587046184108120595530314216349571415054539347124946203334261070137755545417418719529475475809575513951157128625919424616417481912814528028789759893606163501701120305377788329733802883652563318403811847572678394572848689068445264822506073807069957346112095807994570025162930946018990127981225138708276919114428804577809730280640166800431040883715039150818000336563121173639742937769616312088966656024523073285543998993300328278638008246716046579263527713150258446490558143251921979537173129840927034036564080482721020526270153766786511489429934257221261287027229140066030750710903562954575874543107087528925101690695164651763412071559129104659631050298456506908885103634859865864666602753285336478681462742498567847143479795134738074181362363137520819748248129574445572578142548956217829514157639885198825073384025791819193968380693643833934526090526202790194157349558903006918451774136000219184962345491008211854738837754219994545453644461293800642575650190422519683529560356817877304223167812403227062128739788899565042772948955252442658056886697875905704238891058909122379579197561311015494703716556783538903281555040062371808492471256172178273352750526229018176203275640920541513391419496002333792869721188249275425218672917065812072005953705974691868080323769567400495887527177077440947284457179888329270027633688301218497121370057869917481836983669674030392510141033738933764047607435592834232363714746227668244275057261181914834860251424700708045817918951072995026793694315815698926067779813046717800452650566163438390301693766100813838925027473471836138000549654917628238332607122402223675598607215096548723181313849145845811103219482876480039127780600460128845474257222823118683613679920631007884217712035141354776701923199216880594239356476952762278219588331481542958888572718307747443029866587442310632611060013729246012556714123351044110852677983291329565067236823649766123556571918747633762529722766497713641186690241440544725777961473613722704488564111557662644694897456501641895467956060761826333646527533469175586692358149716826747215911508163395112798845558266398673736583134618364624267231963329093831137612786425796776654160291245604395306492368291701621931484695314049942308842817083054859417925343851892140470813449383818725279970629224202656058184747143195163417889539675914253815271405417742696880108918609689882787552619525410519964395831906472327232958716728421711917986247118118278014460863096548975494312385088237963514809384088020578478230141407479196491084364441541384086245735380561626053604549150270042544130200266672283401918273964067691609165782402685883304563379412154866985943795512708088271658334278290426080964024351984586164406087798047348831967060431512821719463992056093840499925360843934960136455040148950464483523933507869866322237074084961278012010932554955069713279498767726190172962018465498097267119243012172575086743457581686461399205937768670028646436006348558529116495851215334786973316874739512531378635201532310049294215529480881411116196258055018049271542874782822252950818667034054957609890657549929487704937029492235532122460240170726173782675133930410794854067866722411187163049711098586418667272037213587513388185312047334263857458589274040232646601268046078585445593369413684169739554905840925286610957108294746019702895547401835796382086911474195192887862362739009432531983106163579009145745064851346390804370015940117204907937529067165365813185638806876471211234499040464029639380850622762538989192411727842262746706786351510517154640387642006145606648434454248173641449867927394795034243445229653030198883198630446734155255600537046959566688687560233633025801087983733228409135497631112474890886291089296339543673332612863370602445846393029293848556510336681554784652094579145349418345073899200272593617381552429541113707686239648955557543111413152434088754651829070847013721341174234568722273660592036556993826560475794419599955399718157896457006322501295966667290170511261312237567449500401715426057961839861926216513286776920388004267553026316955425709248178297592917015379657215153007204387945587946970117924680469826124435862298204114882326773749435204709153097646092158686797805160890633820323732376073227695757159132625502681986248522149188237825825709097425868904861736043622576283752416521495545278343450145566206943068644439772657146369163351523951434256107783854474125736995049782782469088792160723005307928651839882152377021816113963807322431527363956893967581394314511943069644444672199093746452918094112909595122835414559374534908819906284661725905781443701656774357747923940731290612498227166090954508581642430415660853769691821997584586849730210887438725096782852560422192932910366305320519512221086148077253551778976765361673982428506992176832930903821026975838984271877494080375844616375053958733010855752844647492581132487282623795546991480504834327772866866998734051490654318449086059414590637120895434900118706146413746171926182085836517061946627435462599633702799243931460912310839495669268453242653778936947464715435203921515568147157079963728952217043576809107527818305029111023566145477756309852724468745138961739391687746427293945865568518213642525523615832101861125838207616385442646461643349852706081236582330029209043635747141719008801268069538764819475506814698598981530229684918205859815682928363359368013423544333056188212846993861584156564152467121701697670232538065998824598584121508495145996348758231983959324245865844184457871599020664081019928873298418267017450756567798782388567765247640995086954507198917482599627836344501072813176961306574651026861396490773223986188218436773136764525465176795779555570614085738089225222630743916257743509763652710357312712033326842594801295859324887075590302146497617460153286504458364388488822912557542518199610592171041686387977401553863254154610631358467052187283858537962057238298278844724880406785070940009236287352757716836029976830397452434651737468050904202376979877942872303875703972413003701140917982559438772492943107712334816140040681738355771399897110765877619461932081794878148246842323007867154947203552439090341317014391650293884260301109734455685515611320957421242759174781131826675105292603485985757220037009065007854040650355401336385688843390960534180358963006070157263155959027341437655469322480258707172835182363524149509895883494707410305219406918417091081993781859113917742389685204409254899093057996017621550840240320066628255851447669415417884409963124788918564651687824742871829214579582914444265072243203762434591560136154853610988087877743476647037633247661847003468262103827129160805112110452562514548585846589947579558361044001180251174218978480486069857354982331299124131673215362155506659372092953446173726697985198674095017784217390048002245362825511887361545770919902482603110873046559391287070353219730249540008437018566757225794722516769199526854760635241315646697444717406769139154741465265782694242635834606405231402262432391057036629636940392399556014743583347265185723715501331432252994344620683276075424821442013376742520022659087472757313639253462369928122191575957602485769581808181523702768232063817252388910905024030122247463426663897998734117434901564332985044694338878206174892395452244994184752196254636460327479810949528699209860951062799646309440841125582767871679501219778010168251643599033888962988196074378550783671942208747493732837426000963341251020707422233560258334488704709570913369234209977295607003739119564372899900483667048108675527249481896391600419516457329974771291186656377428147609509133856718805866234724477216512843903206915297515994880332391844613982059054896991327749951840007215737074451122575629076938274980166819083087485069468569344862976991937261271077887068518421417676182228280704104696817735875236262656703070600906987330615552341960560716203451357685101015327479169132863756789046836450463451277724481665667766909900600805218703162932611977957393035222633433771926300238331550119689701814018292638816696430418498709158401610442896623201330892944102689292516234306490299072356123146202000934885932272833169722377229134407677646491598573519336729566664981785297584717701999853570783742257310216704471668050387686961399595081316523785633481045177077921754295856063520775823954643652758769416429441455274662499121166615851113980909222407698759779993367679940808400234323214620105763042327531083079149151672141375825311902428887138997723527367539902702224124353290863329692315790758625016016799387447592756501172846068509568813612004314479801288895884943932513358499901137359726150108714289811973092487980262165851178421577609947136281796222752641360701118825972296803008737092754541307659878941499487269642196418805071549690995867496477475256301263280084841743900882482792136117388606292709146305927873395201854300889963193560607426845643629292504644746806508940491293323493822490917254868373362888374814285216777009023477086037663558010797387612164051688465773881861980985025657529663067264604482395381533946402268106891364977676040543595897254596743860554083970698627304637462078815762223057825591853579423430995527194981162833547053234630572243863880141934175488115587458680727375874411988954731785742474773710131390361971523626988840246603786324063273087418775027223772673712279932628520800705744209220016746071640100316746919719674815473864108964363775465870596384506004198922875120351808993271808514834442942174734610166754970978838077562500157446100136215044868671218900195563863702397423347114886807419370098835023411942545052501068071934494819267313774795522241251976152733243714632638573110539861585361352687521303349009068404254636817221727896462876820051597768315489493576942027148882599652158547766938745260314894306334943142355321625580927680725707387827998791345927996717596175265365246125245608759020174418366782915116114035895873509615695757753942654404152970069236396949224268853733184958559952149664426109632357902187102344921878757406058485117978832882674377093003652015211962386349811469032718798096880655814567989483575637904864979650449902849175861144955862746010219558711494714945125127942147887939048500516014328531998769464578148936186320416042764437002364070041870802687499750570227438457073191868740266678482512374793010094520411333061279627498849922209578263143990563836339176662091585191108909433047612290496421029148041376539520598289487960824694790464805615201876728034971567867220235417610329233526229981540465211514644098014683967672362664216481162332138110974787228011076786716586161614171111019015743482633646899856826544935058134371886939719506420296597517882342081166171609793926243855442727172176257578391023071332805969303214344922412267428094577915968524435595778159429479232956546676456147647161904599892596418445726363493190492399634476326117875961909981799726940045777991316441112768092359829361366512712309976534385681159459666595943613563911314877730279857221751011967897332833758660300296905484528945928714602966547380071135654466637641829861341371129914738559572966942099249416935270782772759792091629544720937088930434284979926594826777164702893623968562722148825845101489740782874089153189443048311222252658346171552118222701930688792351735017024083997368053078385542525100031774796309191547752638688803337369162153762927030415778721112121089003816073012732432869189232726279402685701435548137891583428535790866959243528417951787973336307936813474450315677122595546172579981345424928004422131067311963344889374641623132647207952932730211214339554390645173282315255571159838187959490225081730748490943364834805611354948531541683335035340819290613318931017650632317040487178163462429383013454686079887669430558626695997517687220349421847440526450866482188022253714288611274461348716710065038474725199537505348485399511884965952335359477307747606101616425106325168134367739947294420786470172379089963206904138988870278870565038266410864532858121671979116828043485363470472811031293391783048955024601283808707433396102931199392892803658281345756718573834191845173881644644629283428444646737051484209416209637819435609726467557788159874363107311423594290224629236470166013466046192995347258926723926608496088567352925972918159695793756999529814433433924079622705679628093090739201922059227330711037281686483031840144248068669424549471910817917953341007774176321016058647246860452319880113582412603476016514923949662570638204421794686860557199483737778842033497520679000834246477676381488560859230037924179951816428382944219709295493368043211890004044449145701745678446619988537854388318038693034519008207127528647352943239279585028497089743252018049766711814112327415731238977889285836093966877376248731613969763861780452686660511132013435416320175567382195001828650421630328779779897676179375903355076535968849372888618730789187216461812265880458276414131448390205875336743447824501500753135846709547910322173219786261041177547075318474791085411799788308222889715079908254565639689285535355426226218734915436318893753037351701304088474962464735982203725751483023175119850834505220581313874454914429205652277728383626492686932107779935261527826881047695509411995879622828549091918652377598095746900244341169650032385486921469091663299672956464364534683335624104362713541454952176492427346427768409820916231523074957751656009215844592843748603009330931005695389515466956235997446396258123507146580081838702077316885001011102270771497134807203507794020510867507712488254539518239396248353629706543813497961312237142517423455253873363855037639807367158269344132718953451522557858666989988661585630020648842996623262398072671300967902441119344008054784818725198859367783337966488287126200741338580586802143202771367734264717939075821811239160439866074609396419008622079715244928543562220725277146444698234275252583552042877335051012444387717756170262816007293065007182530479561826518297392437395123953914465349189018403964467035360374165215587857838230135514302172571961712051133186924970445845310351141577210794664174049385516219308210327296960317482504761314801348744209711098833480833717397917400274285525694131618395675264621070466818825605493697363004288068435458002350215403576135864630886345997378621499995735800919591552852219773382420889224045965160851645721118851816787491898546025378380174897092658640236260608542205849315549120266134727721213869125424396749986742275883906919210176271217607322156656402077937529653612955706378538672213850241203492312410502588355840432434102183980991944591102618210141781022439520776236649664174290009412923404512398452994506328808482613804662004353197835511229220971041272521972344344787424309173541684423594475371889391911530023266184014048530489963693112091199011155616869285995447633836168850519911192390376578747978902015441296805081463759487000239918195003621736687594876336707359727346752144312324294998567814560435129480699264931903718919752832229243170001155958338316450135112851339798745409751150938910810632395854842409377029184452398626844842572908458474920644625556383425717258193519564785196726623520061577700811277634597388400846682661105646834465983476489880590745217923310482596209581493319388239316411775933719888840469476892885275489438588717851095242271398408311169057474876965514600306517829183316409204119926452873133983808089946995559093255885568161633456473165399703712438432780735555776175170188080329375044656066485891720925554656204849225579552598735277148464550429116960265133250086951613432937091795278037937703873663856280554746043536075190120738920453055553083876964502892998115072137240920864308001759465555635889980922474604609683069727109308737141948532190937605856688874744500880883905008516181318062403362584056722747414146946203316382035351712109913401966038606746951631074145785708722558842750936233008083972767207023344868687533195952679642436098616577451981098736351303001818766581143499355799884728908701202053681537616630003676109172027437979944299579549047854074311278993666128056090363101932766333653950875861462797043969676563162545138098791223065496087858802077500739210909860422375509641508614244536959119628982873174918260415772432898099453812121258197364490417146610128972770749338746703592637283721565983773254803570328016094322254118999407341759135127807937411807762583318179620060233121052514077192588045251921333654174086104713025123858960347544295863048202435666832562476874780736700269852077833718855941836125479359057365835102108242914565675681991714479590642056982409402594360210555489944754330751561524106210931409932749512862085810605902776755919163637443937400998565212939554416634698028631568644759265193994650488276738355607291850746667042898801179892184501835010269505498191599402140072353489575945659594881324519364323576457714822485777768512006225515166600566110012125039036349923074000600009103720017488893521286295485254661017029284059285549329092597982165928676009525945073837834641808096845321180289004175797693828088978518683274906941503127364354729392571833215715525903349379820640457613726361003514413161184006125056622380323256166874060241558497651120154636780309852464500210880407314540963246977566089874356904013654501361107465238972535120766680743606379643767427463350410386379910908560112852010453849622770602480324057214949196505546541825803118786708168171249478099035182479675280741024665558395428820396976725748511409857276698886127670610896954234487368437210688811810903626468180266306787946333026862452681096540950037880804864721109595894184567001307529146700683433925233568407515109531572795618055118718910131177353470888368386379960323554800780403439164105139447092112297278624416279616110879268614324318650381325847644447896945299685506115919935677079104185580019263104643850335417227055379612295102972414407856172382081252622962562056637752743438836944897189753447398786728021313517751045592238490311288480492036656321091118580630987798626689071949242944898008346003879328843028884008969908162875182072849023118232361295859770378563032307284092534648367347459065614678152797896950464984285800259575820388680468844259566268851249369735316529678931271528236454553865319877508894167032296254034322649921411974710396093344137937005282503657055367570428597898235460658079970903596092593595484869027795269866108238937113929243985464483869963842843751787125235079890792079009953652292707761446357600478676119530405615060540241615990409271579571690772267906872686099455003660525895235009162190518946455713727252655205220588439742073735500434616471938486964408115876042914278294805066382943319734645682813344259043456871690450580181383543446970348457927868523136768321096382480339798927906166642406125663063663734366012838649242309036185492453581966282846902996303277050299720466832264197357427582740842254066096104092894395776118715298450436927095615301542439156974073351937309382000224487495514481891835102509187069434100416124917338673926426185117182112293230927849070547722668877240783699385616113084516813400643436301295328594452622710019301349174402518384210685198385983967887847346937589258367594875951878872887752327615276376275001967531252790800572497438902483213471338389534944731811409302675536062426779211075959721145332486883658045758153661583086821797806390124707568002299222115171622804383647766231902251009151420613227824795228553850044666103181635435744789778615149580891544126249229255984424450294329722092639660294303372695282980754381189354450279446550714205422695110207206899051817253618497193871389506940354310812741537312880774449150267292036166405490053489290448009313593639216895159095283574347816201250831907383336451138673873482371364529848062342752457375746193663554766102925076171845511372855152306612347960316011332153528925982986074868019043459114932574631849759435994988821975459069274584194850289683522872500679961268185234583913391044885143909154615216524612075844465135694717248369034022561835653942707439011231907227350873062559531125239351596913392218327359889800375363883117615022967836077820147850144769351532097040411512892444903669597709067066449599579994484838355632500957538398651503721276479395902751296407147072426714192532031550536342416725768586786175220957375488886785420045167361477119406320463356298709785388161347966961630709528403853410236900926495251317635507907867675930080401379027680252523169848821299582877560821992228031621056104675917460056386512786782506264449131043274782676978513384410131741055210514865930084909611799992622775919610423152598488819114817064816708411626997886732415748105788339493705813009212660621024585174329634218310257834107966418705160266106403043958645612073978592430427237226011392241801888666552432695370615397769482240679455911427729706792821527361100174927110197900465065646743800865286282917447301187950979260871721719726931840224080303178101291310507219129565010753052225525715894578235371063436604859923029304145541564222970763992105290046195756259544232564297442184458561937754305864022560066979825475311633977385560339716852367038237635299101257421993984739422187914617004664222898682139317833453481130399594339283045226273291580327546217528943866402688970054180608603546211045088137822400519834036049910644458240677231973377065917613032794077442189860962403119414797379424481027414326341731373500639320607190211611671205824056516211257500681778498828878428117232489983598374009761866746249269000657247986321996209292351467445947979025410791081010867794595750672050842032850407540047739145697354793466138708511857512954973543707232118112329007038074287892106075274098085783242168758537700880186357622386371937318228186499918674966478641388242990311223305514409802337796912101285260048657555703685390164879882325231628664605026822163082131375212694600314597638073009313851955781165987962831456753445526507797805046572018562291036071332048440054482596423650146395844154653796996141919014649218870494130026115904963739039689455160811357413196579153179198923978923550282073853497518834088153610411563441998300241618860897178101032861131756134399016202492790718166894548835730217636552324779903399071658346675672676933490659621133258211557675979610590169748496312376913587393768693752619485867156594077509306406784637858751114287724900176198095244124722537158231438926470588658044048187914274198639225448586398288788951136957764010820759095405726594211918619727364208953877689704431046247180167786152850665701177870344264999557865324854183221467993766915723725782580158090447368114837965116262595598563491330905008218168814202259281918988141999645739885263330644169556383831859118518200746063995835444508430717630800875836543156907023078780116592172286348899015524187565865373675854922793237682292370038738260141206135977548808627673534110508114395482399081562622044317423036441691414914493366152419725440361559924600927770486863729865374194662643669480582988096804885873850169543008948704637480731798067503770032568950428059213434217997038762208022510531936256226670371028711171891188119252320635631742404590179446155408414450157129762150456716686750682483534066621521468924904564647679171455017943469237281829585668156983295965546030889570007614076463760035962911599044880136990149101065546879312207040140360869954605592741422848937998387697266998450555744800591309927470961289506602820874166294648737252513712271130014818766217424266266647398959970188758041272642309757662404305316083909820645350071402484456446524043891098592270896050306269695708443729930801265924663963668551109436528387046384587901102960166234867996299803619484532305653616504119489822782145768271645356894109655328511847778850882117884725211138482673644307218280461969323630334421472080275968661296599424911002697605365886421159010184528376190849765695576461721224045269176652493516573600288971004651015979055248160766881462767977405895054236909487823185271494525821269071156675649284058857609715347981559434136253763940888690033813996374510842707712675912943965322726209494828488916766276030193814159194124044745123891680168840367614741644163573732682154580984458592067654515969457048817696561110210236208966420158170526839483611030266222728315666237600242620842682318762114742769936859984819778903716780476562090443429789418859806422550627543936335285296939448379946895980226430724468399520870123006593725652529769166478751676913242197675495796349006940390496904508371551593822705054511386138369772034596213910601093946213040011162616568023629424071742040489775842926000497357396443079527722717434089908128393578503298675972206707348827337023558808648315752916237843008777715888533109040156724882351772579102088298371740514223265684311112617703754443577257469659823649511893976086678616930635502076103661814431091884699342545319534715208689770536557200869563770942144946852407533809032589721929876792450048666586517310365097904632145349138187125718555772115862367217445449795881420365619496578730930016295523504312550690635123054204893275608506738610517291343575990267885365964060643137408515482323671035814088922690301816333072032428442095044136920267100188242664618003605300620109598916434347286245760258828915984814815411372268418381527512684511443832471797363014909115712641201540695691816492582413194689620675588699316630050814015785888994902909362851388052830916424728045580867888839012661586084550933338739170594185041169588025841890724569520475507529980041213946009949594796360301326051015673408692280932967761721048619640519535344185748234903373054772674952345587462118219186444394742246547763879340565440999857554496412842487056468630086763627936426655539990719424918602817416600927893263303920304974112275459360345903554656884757191001442283312781699553704060147722235816725260379574812365859487366287744233558960985219726838358087437255291149606883647395235402808865073270022192522289007633715721652185345170500401631737974406598738144218687216253229184708268483868055245349141673356431528326679707768013039715550539910315429757371615822088069142591490438484337653237604833591767792037211642336751499243728820327908868941695091793905452790720713494240388857555804490124988772492363323143227747818774297365407249866906966543950021109747915707291279859963985303103603767276382627634391433056846377456391012202122917193048289389172900411940175082163041693939999972012531349121372615237879244293225203231502168840875631554717723656103338204049176572619171218222684264709392359977828576701537278143210401820347167802282030691685336816688146991466110417083988880252790989252487598649442443619741989902864474549203012826113385959205019326172450640373569032657657097026293844003571645833061703599814012941682938595028928776583512085948198559473393351190312141044636056732325131787600259942842179009668199770799890324189269720543928368158498609694857706077939268861034119310419695539143069684958520342554146192893442172314136876038764678701000475107257934629632468045402039297015032452744211420162630549908024467594632899100482364268731169597344860589159734708007243615502442328395911766780365583091893076724814053844619743731200473130616554660227508641945396102076645025867455101482166994523870784206001720902395812291023785348085036730209147408973271855839404820996675127356781965050338909136789546482899188799888560855019632411990730521034469424754471411265314512216020435100996147576511420108151255448051938397766219038124119617477747814539897998290357046030118797286347536804250067417146597504933559003162481443169484307103163216750647721257213589214106866859374712884778819469647103236682973641454357952419391788384957465081351988186110098172982316488061507712510961074398591998657424171367364402932868598156718406790619490747183850681555311536111076127123242189858466461790621568853698871287064542097738563873442787932497850423982801558325283621450614873721748974430929875442924245743633990396525278409851344780758190215192459129026447335767356250599489972976456290939346171462352885972821617506985951753102683399384017430483041984713459307703235864581508492581888438764844619000348773966348205633992810414945751917803869391199047424827269678740656807840182215382000224650211046170297313306694618418008393078297415675073990376263624316990869013126832566859920585520359444208556739981979312676190866855549115849017143181591990519820843246805428273582704341010585828068995092501484482896014460836355960797654667942050447902427471243353641183139228283541563161604050065815364199125359905898640100272021075455416767954534456562081062672168846550855303247143924517558710334500950646977190861155067409365247156013522109413353320268822798779333865024363997687452058260203613185283319683752168720522651175669839611648869187437506221644203672071702687880913113115706879522943590968793480318431158128395077382391091443189987741335761420423827211571996856304510381992118906120131066628209607923108801659730211684062289305125535469396450626095179793676027369881935338724565046776824359298122977917282685308988451821073406936957941596510519894339716883692267309720622021301850698210966038489580530163908789296835025565518701648442975646740251769590263969158965908942721279366486157146510436957158585212775351787132793859970190699550846571769273856987656261185524069399105056438691592568103540019792192994345346667339913545746097776659691151227212253365524638616487386543149551814867064144799494822745643622523391240525616506312483729114274178398941994923083368209785995408398031540918524351241762394371897575181026187478184707579768953688027346630711608519792968621182026235293982095960575741428975517610462997546034135607434054891870847472828392429044508522776426645095898166143848609520877224942786890082316806439812356430100529626882825860771868782468743437254909790928769884507910027699260478577322017623126314694630979174285676983217440772526152447808731569398527415198045106788815973121368896051114229037321554302054025018285220150994870795002550314186511996782146448950607268815103846339648544733633477453231811145344637904008044494530571750215942850009690663736906060474321489246750641488128108376499929945664327466008149157882223854734478055849007699084634659065034998986730990168238552501913037625433273182365337501868315809897910973893756450934474348222395201990441698866277876237148296937257609365472332729683633017871193049591583767683164006196013345716446533635593918268538354546347092012171215240170384550151621864707182779391129610035173297851534898960475619103336877507964789382429523144244483984106843466063183456426438365532316995879084289361540419786040986941752195769239781907155056760034589972024771005847144434274439475982924954469025755516036616427867556690490662904749758711056167775968489898979574700549462969886141789661444628156967784493934142844846726882759079607930081528323242087183541337488532152797586169104951278758669591728490026825734986992981990795855826851510337821936265542797098567818695645902528811122569094445714758053157362024578509920770019044473225099027966991887243281085937894522433231560733065979643250213272273361603773218775011648156314706577759648825180570110059844905908211608156640659327256426779714421268496247452926174682206482541549692875083929077009406980090098536282839390695805689849785184125482528369913006993545979759181990606291643957380323687985766945808998560088291879486953563247832834859290713218544546010316770683999784069282177025893641770233571794951556180392289165318332355602893466175161579246520699822635785531673978160175909628692649617521162773200430762787036678797096715163596678778146190627562194900289747144738766717740255531402733257831335031966463313760488780200421738651927870887826268448377115936561562774682972759737960206558684305943179838439095244637315119655863305634727283938626704281924087846297652460481927040848822421114524304484820849876601315758069425928996523597840261631458859403604747740521392615359350236009456204093808525805299487181801957567725063323550642438449365992125624761063044992763214717202735640324070817504121198454069637683060325825718385899282314422130447170183266728185147926336753276727304294119045541714208049200743160240048121239644633443535474216783683587086659773629383737585734073823134264495044826193580198943145281058528851681779015995624400438494466670439404135658394028221641961001421178370652724683812372916770911650234589017039902236111972474767189600317108573724291919509356548825252719713880692036301708461385905217806653468871495328617397326874924206225056690685419194162264275041111490568232343628083667987631639336876409795254734267097521384229791426566333681228594976322260071241610289581299123303601475948475236036685873893804188993086170337386186305284039552145082821807110700403241703142280479441820447492444951608043189005065860257904462577410498925899088090732740893575752882916822820347574905627359385848686652601402597986958059058940689489713550112898727445265724206483325183238087352422675432177446014041490822970227336098425710223106052740868108219681008690955353789206237400263686389417886195951955013198987870872236364271058660831903379267347265523532287054452926958232271811561743006262839374660209278779691190457782293018832828004003438029663996506261994118611830255680106427772505904913760424477681054964709623377557545079073841714220012399525941463551709613327331649785906909451097140829045614348828824659035500635230813847033273756591192672037026794626990705423656537410853129464174114200789068180699143172684310769238616191451768675651560610165461445423820397582529971324246549479066234665241707400794092489307668970112971456389017772568578494706282585013654232575842561737768837969097355127839700766837125908022052847625442846379914777865286794717722028792784812490305779498268411434853680846636405041933424900466283798590064524635651360671237439828481817704621441723168972610224116892413942449358266422704075099688914538358225537298790389374046265794082415262640646491584903401059228545314447301836017915464197585128967601653237841200009664233176060786437821052336672877807922789659899041311238219889849944971873376900958145734772813330967192830410837081293665921416241877011503832290055267180161206464583145913296620906019342149256398119950692715327446152418402618975028025128567313805939773081919221261308381990191912837490144050896162640211036375561971528808018428000172973614261106071158851611906869065072507618831951103143680493533199929003258412571628383990970371616506951079185222585795661736975910378096375867366775136075779345042567459007116348125000119325953435558847757340322346774442857661179359094208761437096749958381469250104998935171910443360876482470505353352384718165667973250762701972384134221369676506726599482338416659509894060789560626771065002101156908431482223955304791038615924503178812483896442942027369043598560769724494574442934558845066128542406904091809931886804942703818482966633482755527870291625544682650073606442128240167772401510026833236387837364457466845990543320743087913657185306756697977248171463149353982464099161523927231938174957156350498787912986728511851033617401006592958576340221302788163920440884521595682919181783743929974394790714722976584833940450848874894092541333829086592625077276707035473532099377535784263772892370348865410368649757035728381657476421490062910782713721231039420740451873915018184017117640926236934497792667913278149702053851605852539528311090276856894778502232189031054081571574037111734426987590297132825234144727734495355570119845499915655471445987043305288256608916555171500015962560445482416869107798804785108495886740090740540025279415603873805961201685865331851211972143506936517317501087720840139291753895028662528803365917693324347567050215234388149844521464003469125735272159641309270821485396155663877722784572381082372701329718242087538213011361833194289771862208031284149552289718997859744395842599535535095866876075484960022450227978365961154464066392310671483485242665496820228984131234745658687360727505422159178776311326015350237024524400183914808166209680908821078937171985753940342914063805274321445302494494183337232295505128717756004466103811998708111348527528890339712257431937442248300723833683873577838651369380898172952734796070958722006398336795435265932367633376142328110199099447900811319778058643935021795840050334386202364727455043499826211397616850383424563498260175846664256945718044226666782365396007703997880297666869109090394329840028719949745093064312168650464522786273818889038894819961564921063451048189963724760887066971918003810991405760840461543122447759668210702999005563993540146143588090745674640381024540247473618202581141598571674543043224150197946076604783155032904253260032110984131662567896594449732582303114978398315278840753406031884757777117050596550244777608729284982464279539239217052421364276527478653327384623124492618658137361476567652448181873844816892340558087493602265145544275809983669699252473896847173050703145144734199024688746218011997148692183717611124742539428742442953550460217882822693155980522942548951229666521047643512979138651588257863475853242547621661868860540921643551190255640441487875352656680081531063112596069620791740430898304091651361680209874032950024244728194519121682728432980405560059896035065614814723902632777232996755701497642313290024522054589853954572479087517105333173294172840735008171265659690706432460700292881607612043451209624733774517710913431207262212637241902715543388790902558193792840545975427925193374317131410043924215220005855286681562334206458408698170446803870187750361981365062974840861339728479883586367101292963136364384110983394972006943981941710806925522423450236066071087862982613602376380289943845416073026435658702877763458587739956589406653211793336606474104770814034772469082315609146657347236859220022773383225660759632279699657514089385543960377829769498660871945848567067914224520297125104984373128123669950193184181677295339842974061532105120814950328916916783997260938581699976402245809699517661491073941797946091724331602034890265797475421205104415380672823155842364704753740000831204502275398215552572932995960803974536804023911782913674036307062021015084213598387497871213723871957351623029947306345659652224051811006765209240371798888208634794636348620967969246812741503033487831949475134704564933634086597420227249441756106941910486845253243268532507032417158938447222591990170177874145121771848460895785108463496193987598752566920755348185803263440305265559930493004553940519268024352913377898811511497471250203929758544156759848932540783157702668084412009445818798251640226183895225856547782729010227046044806648294597572034683187560006029375429375023160347197659304065764938123139799863917694578403408479205904720660726455427804528514206919913219320370434805995673572181537413860217812981710766763654258452395130722741542153208642643344865360312468238437123061698468205490589028729765640686678260838584586421413933376502578887017151546036092002604393261916853431568104172435265431321772256227430492482327439389284770653365818175274353376546131740588291029812075779180837233953202251564607675026712467475533791574341725582129458451913306375492351249444336022980475739999697107364067668674484552678458691931366784285821588597021630678826156969183300055587852160080493015666036811748866606705054732695042511953941829554132900098559764737787536847800649424319205883646788147462929403063671602750140702254980708612204786814810062619783971660486578690082314485690641883643167208465168090311866560259604988681978565986639941807274877827836150103828146643513651884055055834493142765080605554483498356443804084902696499426415480350141397033756168071952078576202159215741406115635226850128051100778164676739291217246274752089012360827707493599021258084382389145296757857263438467834069176638753298770955116361915392735018482789225833722772128841761119929891289457755791077837275822330768947916078117608665577173532383484095087360079682136357681144813699198620017589780454691838870714120937830734311653664865206977127588092740455326240244836070810702718699938917052928960522166687539622649706081602689998621535313847918286700453777530850730173751359891701354529704027888752367302784919999547177007303208114772256704545276959778661379392178067718071461634216306426593774759615306816543417191694749782529267291119878918963245613091313638311771158414613169916196788565680765602575679269061040819680107856217732626513551417501927475807541548896038375886511100275279445571267600554660276770085351263662062516981221211431429922093607283828897465247049782025498817922347251301776277576252219661991783810310731536306137672285042464539417709583626085876444746055983076180694833591380920121982200377552709913600655138263377158770325742816273626582053803379740727517275852093995297398105707530307258332490057177942029795640606278631246304911078935017805040471430585569423343287254205694463069174832798806836013660332271969745022134212584231696286160176285884969150275008031714076183011170941428064758348843836373991701365340844930377527247922057957347700207474725209815065616536143687378725855379795655595306788600529749735145473734340651752566748708442356523339388782146522482753385656168951098054151636105787805175827725671587702514186886417424752037438643513113315945310000389410172849742052611165786674973896131073798621747195553740882312529687042472443462663897733544737945657320021823116884307966892433950560199843103249074379025947827379533085010950092433350093214618832079266093179510651213098945322464945434086001798841840043716631197326112153476727147873925960456760374204188490944083706464047971075405258795462203380686767071828190203451795183684329640291681672149522181729832972795620797527782806412119576546702941357209942777001663767596883258063994964590514668643857848000917621179240138953327368624586420370055980498568367952908540848982488014671659993502189783502506207781207173023901258578971159716581288621055410015794166025973132952756676620954012941419535841700817474656316604424901959351365823111076752564726325717240388071601239015943514307288570353426000567071339744984612701786438948493117440920806237018955523752999619937770457503123586029716809067458404321089650648857470417526612426233931762306118165123917618126730302866757941156801845651092666833819388748201417783032483788378669545544572875586454348561579368712601212422218985587465439525254937325464255310899851586357933070217787171134298168367574103465541662080138129526252510161719724082330218898465488450516629795760126563406463110721865078571550759754822336804640245110699863707489618616425802030044339431705874850714069850905070763145287028689665125124298813631568729771702034222148306021304414030935509650954291351170576436520201725103139265161985804179940248608080837598653163870921053247994134704644588269459950724860850193202632529374646986531428501433270801686122576992781332715515547712140065682877669119844740440059353052274020999497358942538089874592670352667861337720330260437542577658589998124525337827063314190661324537891112822156314777210920771195388658617033058826359600922608587285839441830729454791320498921726136267735707994828639367340525591218277098733168487701286754340586127620657523197583455115901564686079672605313292715010412335693604012897307725444574580106206052392305273512852209325477773610841344974635357201058814526665513949079853638378264124715903282835673797332561787660199160452538551711120348878394346150635725545125960020603205391617964537176801593467715094725566676720230565040047971628457884595802974453516901645100295734447540986553328279784234015727886487282419045903825499634165078079562444320048019717507345741194108703926862601317696976367909284594338041737823172241456111288019025330356351542577145738984855122539651311603046418511503853345314814873697781023414829387658986891046334298107008467853394910495392999830135561919448017274025841087003977597706254057930888442997045954462142728650413110462444122470832805770957011531330219999927440043114083309307838477727380450746171481873320004599904033635467038694099914615810217147202233330644436273679901360476937826922985527133903106302259954978516548765075767909087007091248377640421353294143931109424960926868664844161663198146313996857482396183942640401913210865080441799734090063524050671126475090307427799438759801852259979506974205018207267671989811346915287324249400433262816752246071434075321300093250929081194501969779321157562972333977132172689265178208178228481784962264017688128400962332121538253553274233463467562363797519635885869898679887287248266710618372772009509550710624662470859664911907106968650694172838462196590714751133606018215270655663035261007188355984239688945182284155533047658917924550602783462291223914586754714025745709866958699185476278691654224898674116882206358757365062873350140037367171230924802733039504796129141352771787716107212265018339618671825673992384164690776125163233344393808620492772917815962064236003294531986743727122459662490751055393680036893982088183402939866864067278677120030987696188170050754336243608226681872229496390259837329703092283638836107101473682231288695865427364071198531974954535297478482229836855155899536138088017327015786715159847040485281616100727288652942025938009736980505120352702774919125995173725796922013725638639092368573987683334577928109035431311242935343065481004647507000098573326495053018941734025846942258630011983913911517222255107909581082221469182959514789664035101172803373157682528996615160456322645929552784182102493301197299899311828191254624308896534803349051340176968041717359164105920162323089900542564043200436769778311205450043569346207988926115259657896836396039053994674473887941152444124440346823882242202735105927750337150960530923743612321464005637174158225235987758775749075361024812914592429647627343973028823240550082779698703100376456731848316985295135333760041359521848122576996046808558016421546726443438245318885514917691622344802352212278304574534993372849387358886023086244883528577202652452625514530089830437510267792356077109744209175792220574053635570908971624702328438602378996261538939542506901003422782863595473118027431219443882407743198337024081231571054450647093118553421527871414843245027198518955645532668500894796060232481873895676129786147703016607832994535218059130731748896465287160975065534005060446121074681280263506518908264779831683305600610423924823183026570533326682045757768018416352839254476125837042331755006565631821524389328681276124864143754552192281624725298625845840944518068725171060748278875433507197825617109454166347022187960216494966011078485175160020741601779853066845819423925765913227142132583611835442808211220707991385155632334826006244789502435111943804284612918175903792321665021191030820768270503454748755352917065606718786663276300288159849310391358900511346742794340929669142772732615989790556108101081536745159987637323725136998341864544379656365222550615842166166967691095393543649643452123690294800596458413863773042842086812831558072485530799996168614794650086279852328456056127636974402611573296076215014656773464409213912716744587021774827865515583770733811168509952335876385405042335471996489808609386363144549187928316132790596767635243314090619133241243013869347872695338152636217989987222708301289874852814435475600694851026203561756663335045204200496364584840602127090214290816385867996654679585275162489626284668744072877184024247343742961411847017324125990330280123334666973916277042671915169103527840586610991281432659994351741898294283173288604264460024728700765593953979639560888455262809171259628440001977496889907991397570053000225368799323844660226249640069668772144557861333440482032831589185514576098152386188355724358576213441110969724462609294129389170782338304280036084312510057031986254144912345778362476584913429824137578033028054892682556657164658537328926644778648227433624875801140375936252025046956825767055668446838081310815199641800937713621890747056894582517943990898338833982442778966814624151514161949303256021368870143705586274427638189172746295824239471967428715029519865562844304359813002470925483656182214603362509927111692423118559555775802456378142023270914552607103272585615432277834801471723446341558694163978388781590679278705660296018896049338818132798719275141488004011897145177607637359053602157134799270349707540683450407932313888269333010434114248666078704254060486513059877763573706207492038957650955782290580795956451031144945251399405733517532425698794692015560643440729343673691714622967405876546575138388259175364023112055246873787827089802090887801047998254326998089147579281339817391568418221637655745606111959949561434525838110840213893967229370333238701677721883590518050930311329917580429091211980636095092587752591548301840020973659825025631481186341108034476288762279799349234797063471691235062009568272417353328342140327762401219751915909083539486285170680203598588546558352638741762874692855165235524516403627024027596100583910218908388815192406793059745126599314604395292379256095186230463787795398146441125727226155582002129111908213654372432329050267475784328414304868409395252849040225500571166642587055990861460219542229186907458078655879328678077958960879639265455730709842668077340247992050715380924899510498240338530352373184250324547921071645081547895024031418519492978971081525394577856492453574983488079809798586880702866350109151324484836925692296612447461138354921590939932019145634061639142500752863632353204357437131367463637420551296826665300951091103340775244125642071305392839105872241715080885906824103579552137809053785484555738806360348335159401763969467114068592576668576213579040852477869962396909142749572057031957947147572564899086051146332039738088968213705644338291027116005233321638836540574389998907289623215507116771572784304253850144256080140105036786146416188886691108730663883447939570718493160620287501652244635898361040658640506899995536763770397265420250413011903794985605782567656367296104499842647170801344831909660074791393158028230286321240774662517255530106229120726978073606110508638735072359285454899820873167050151850549467743687046428993413058372888448864740008570781945098067142915534075658010323550129408464130522995097252649854975505436240655950284383135973374267378545697635511628173202052832619674439776607748906899705592510668056205186765922503815561489626282141991601677058215121496783628812831137157969904269314045392810727812333428400636034504763063002318744955232733200634232484460227819010094680211110352952456940156661904958041459597666659986632126601293328394633998876927277980067924104396513705120050731042005831615942075866953383601733002290735728502974802430579536740116769188166206464607972313581509859253500745589692428712958612332775958868286774096451830744412842511426855413995574138861943098524226312824155736281664939403183873838901530957460421753283061218942592323688417521537377960374276783798275413285628626194813534220067176387421041578631260991155959363384555204849448388260340692698669863452087791152530458653505736919390517143088755051817718635482318590507887796511467767869176740064924121654986505578372833369651906573382028848400555766315202930174342847589332428763901006714295524067605417312669154683355020566897814908542344685753166234011707549783342685560101307901841580520409769778709346202772078328212567089540786583614917279438368446717623421552534820617690625152998988667432634535011138834096350190162862818317564587417549270809250516951853481530830218656511645430836275137354346400840486747214258838555434982341130770813260341702242069770963558930737495408115809409428066733663319113888779790174727744577234171772257281087837073821925662887977626387929816732740867412745838247765191041078538648604856572480322250266479815147191275809886774127335468811920008903522099694325643341507435816478173192670465431882564192278926617937355989022908043012743685698958161545209150738663119289371667094363211863917764992388008797297837246112669365598609179869517590635169631124306984655047587150828562035234752908332140969425944761559852501226452464804262575171163914263256806019296043328042475516398299854215263784040459110075107692049302515594833032229762980773187269738627053442405890785269970909731937459373816862451577025005769229250838216064838588563341517838270213586076430074596311696566244155883737996398277904485323300740246663009073202483952376781510705466764868611753726852506172026618704606828655235497953204184175672379869616729716957441540105963817137448446327899313178202826011521097253609491847362370528264032671691333673274400876940165940713188694248936789251062177885674292658338242169681319329688996385002839254416574303037541458064342203349856640056633032349529063763516999282324551633019793994160402674417597712967043051417673989771561972215842208568332651565444784437364492664192434974748111775916781776021629131427388116913150698152543359210203385589836775373398790456968642599013749555870311113365938766318116390385078122123917784752477807103867951006445302003295820247146747344411287291632788252108405132188415090384659007509669544844873650697140678462195872007042580749761395936894263807612733660877697193834904993199236110617085666999000660674173173731313368525122996753701684988586108558423053129887406519309102889414313691713993856992641954521107401069032532187622467628202946691902608725495716693338188743034134326399202678407307850922972957656333444395736292658870258798077299084094852193506210576486161010519035870555070166251280714279942675930077451680180953393432741371449341451701440937192676932347348350284809199839119645232300213837293383358935092343269680472086745004358337368228088260191845034711763237583507518723504307099758319056998671099239583409431656452427180961115212161591528278917183827876765107417179274188623497951344859508129248831653401883112666980039575500892944549938312663975158123301514266234113426302816598007399678701065349341214297272369230798075972048907594543428676327307673415251074086213271192979361036187110340296599583773005195584000025324013175622333395953079091762323222097730252684440334377098748040498177944209676642501516869922532676552225505562063609063488605116356070768088207065620231911270932431253365775673549942298564137803978361498613369759083683924431341968214270672806029067235566373484540434389872266655961341628562647205585264651146594147373036154951459093477732302213699673458531636131542101540456425034625358924718342456085377326815200801640232488625643398660918471081656134286788524625180244516128637128128378395968105788838546200370834863392481724000532525744860994279706432222590499104556863097452595416824214519963714514512297802572052019732341078061821235262534143137238645685009405260121200855152463821511945122282176258339092345675611811448328385512865902966433111409954531260839442177326486843599571002769701268511147683191079865573647598037156111257144148466363188094113290346328554810808175592061773598054863739027828102867313401251484395577554015773603653904612398532236651696588254105222171925591251381454925841319698949086917302146183129138145625672661947258354636262711378831760620686186544907976870180144181161145166304619292977313510535426170412856928166322068018018298803566935722781309584245302549954816278093132684794948381818793486370928049627733355116689109976307011489089428657614970501074505952376399724710000536886155266226794071262057675241852170783570850152606663026470001574109906716987272170025457457922723803709868061713429474345247216100925012553188233635787944202277917820538070402061636578985054942144687378047788386828393635587034830213070841368491315489120971588772794798485906479999513601300409714863224472766116763314132174911827899946135460315474093024208794667720260274417237016035800285502154290061748310732225780210490317029974501316018386683864957191980967444955317989272126497511998122374825991283846323867928265657838821987175136885244249214630607648906183049180741344009605825135725359878394104275331507905308734700054513093515686534269514034186537368250598077691103111910216276981816370251559980743950056989371449064968990229629455798043484883801385264314821348433702808145013577602416667758289655464119931557559814850338960763145784426677134028738175604937103287813966156832440951435098967680776493211645538642746347606036344387388203158023605578884013407627544518099496191382030731489590442453148707180109523418689943123547667922368376819822252659393302581781906243856048724899954130651564694346236779463940574675580679364225951480194110802402023453127543552549441091068383722360847594845186230477927171373059734191836715894619599713520899615321654926918700447936361389030131045234112247842764153909509770788042808132736811026467477099404035664457634782737104139821931790137675676621472211084245128459044279850341689464752739672404976087025427194417871485312558957712182790572694225049158071714871379440294232409613634700150730965190533525072842452373462770261215347126564833884418821497969459007176751347953819590841617694799863638249408273008166141599149044974424165099093734536957305664759150382541732259321106156444329367441497539747712066908807336373351348821909556467885141512503482430333558118551367240419273214381801290806203679502796316325845398074005070897030875839968987917827863479601010186065009597913069346877112417092999108826239927554341141228086327960242965285918667290930128872264796044910794876699251820665948802179245343008762711312836130471824330592779098458552687369324839892628868131627760492230804493198609167830427889908907032922666231258973617196115551935194894579614563022156988612258161530795422201572738074359230265973259136031428365145567233191163475570510967798484076705381805200437940618327340560838634393496143067825512103426647093969712387664783500139002796090234294115136804208641711616717640103998886579470744099876949723838448974121509475420575003927251243007512218609599118012227458422629641677307317826320070417836532404397093941948897613575019774714779679169301426255175793057072734398970994598744578906857761012784102287606010845865607148447506127258622386204944299041836403877552587785835799360520326191731690251751228812447407861227431202586306992499065016860046255901576347124490877287515989330531864884587733110773851022069150435578378533435200146575497980819114122726815130476155440880315113797770544579280396625525058654588768913362649889116591500154253546005439415786819743376407177082138816758619655195703835718622847539948811611540507976639086346137599726327460683243198294600452553650755668668608991160226670932758759503764726355231092938161590853019080803431643382154803881095480602302939064236934031429203276781532537966089003853901476005270877607215119575105416354418991883730131627194703018543827185719350916652835704759630539718885389459881323603077337034001242191416978294288809428164828249107676399339311939515761996023395600901911666632373360488379276161205959117703940086987652775145772209358291752394692113229044800815052997637733485081080035114597861041202846236333954751499030229706626736160642029845550504082672373850964149610816635610201114801372848678141733204860419235104129152514341731528901178956747204603055389750008791666644639858374118876209415785008406732317770238569321972784588033356642950040420881872328800382831992852655585644158962724998060132066028682090505825499463969083781987645312991393950882055803599857584001957173265760628324604705250197806637809983631563450409716716701749603723714122544751346418710600694732467949415226416535310519240518721956188898354297293424188032757291350579141853154512662614453741786711086299183148138716524804262825829917882472060616872470276279367814369765893775216025337307030034178875343544259767049759760384265543472828105573685564419020702426357059397509865700295406146017242433167258527047659076943071141559559312484995223650073516039777055580073856912991643428297284893250206027677795123220262105671595603781603921368063224543609464833339271211127571595428185804948154798685677395506826478790171188324552829034313282011601350021034506655101797174962726168307255773764618465426719389321570322650772998607730429341672609725158746165126399328855865567359794404110386640911979569681768828358578224516267357269189775090492411952671228248424719130438443994190084668447775241433103786979064091191132360714316811161980283787977423277372183799401000735273185638026670614030866450329710681095946617817991366725286953963734259667862344919942555978163249223114612915864367146860131289916163366045480076508520993110395288755933837015239728899584082577524662810015610790444347616082999012554131700399520099661575752865772386501701648884297371319128710762050413648261936628735239276802797511725762192286153356049491777247051759139449837072423412751692573820667029989833872934628392769526975628360449705069379310188056449387574921653096237072953605875936337699184203805804215716628228403618296636794802339346893999046761792901421572681320613231635373103890780941152962523510137843905260926109426260837303299694644493441646033142234103639569159870556511340344058457762598908447061244623101870422608253525443862799936638290022616610746438493891784738640315876973351488256552388146038076395324387859337224101991323949580428427207219145156239948497185719679893286208766340318230005205983350293499427919521227918187885809766579237570422778009206161469212242085127985469454049947362415901542247053532792075716389265068380340515934942469908266390488039103047968460531350706353789943169891555054078435323201235193657394574248294638258329324956142537591822569778995544482606671055918168818793028920982432668438906542815579914012277647742742012506003551131444771989529183605209357722529441236413057317378587153266990710570304896738195022593101708186248928894585055541242012454709108385422707456704612587657851884077852442079046155871550991298647297167233356666829082850114583579712032513161050557546013901544213435477294185991589896413275004846241369069361904931006865161020457060360191267059855661240629115002436257755318335716971202449785564532952460297743712945878281152769755208496383170222769714279007203022605811025150597979167590371418938603755223654256442951372872607927362753945277655559167343138772278219740013629991502132875869160523069165484228986242112683365838254645834812593875462249007058929296682464798284449512163555752847876016915092968214369797732213004953324936147431193723379517923132981407044958046083060978604214561939729345097313543696490377790005934350592487248687182766269945880811626880258006506932820828693819199324744179189284530045134845219503725957171108697978316553523855785519427559070904239650727366956696717574944410579051189355660936283645141847963009669681236580207518841391948202698079601795289661879041691155536683145351872431952937541538926501112641802872855322681461688660756964545186718627693376906445454574730987274096037671899621823792187148751308229219867746736557798640244799789898240626214378527719548289041925003463771298637876288386084682423338667162454890055364538850300978304227175351962512694341676896963536808493445256539226397180361955429771564296954946640144825130409899469588928095553274996037079651281531203385332427174817507907981280381621543553255564179060526932716472166309011689855210268796582018432863716904824452098147216901510016576906446527560048668251202232843451284868916639966036923147286552120154123920210083566887096459030722277890259684110956889067087228941263215680113381449967000959589267387890105564283884414641858063161754635589473419754521775510700335099346190767709082106514340680601894726714811548678434262013752999526068257453505159704213555651942572786526834644501059792332085662723731904726314651378314690959580587574998522655875635235171239312618507116576459420245556927707286089845304554118778733613654751867052879326009119014139847458309151361950246716719966420428362139520265468140855421004668990051328893008401628498746056690871233423158464036689199017077122936759081800261596665386761336401326273664891367689423286334185348806978351375119788648839625848223403764681792275104100774095262622835850756981399803087927077434172353771620428541016741706919044418708429283077355097678811815929783529872490920979791154953039971256720177512552278400138288242665379393389268567620675150418669410279281873668714255696784407375604503671807137682572493365164688677533365683062221253834183871269003042759006174417248610789325844297148821031640961167099411529617246204515287806988821885170296724950561000476540057514591919723665635216309152986881985512171152461839601434822694384347055743876557325867112585781264736118534002149017648515515500561410048412421693332674265070529287250886032653448594343241446246808594051211594828812393896970565534179812565378337552984996408978511796326466258878648842030466247716314243177937335260666979569107277837184286390246578019441752535479432113296713368623180655100346262716222323165689940919737728806857564435292836069151786980176289696766177008186850861457272309230456000555218542036422059074661639512763694635710447787674002343710776931132725799405660364344232402993202140310393135408837657692749997187971063598471909130033400728021965750791819404374191828508320264987873187362101182643260619656562541654814772925420487528783508819727859659540330954130454410452307449491289213202929666600981313084865248252262296629572818973308830494762299956629961376888495070158910456821858510455344770256800213339879858640578137475463900192776361437869644553598614382181314766484367386329004367052416104837220630783026468564108517144583165431752660546748788573421959704091925780243869983906155568989933296336055274216679742901599780988205503097324075539482123842660749327068755405753194474992362994219256969099577740331164717138167991884289872292704512825512998375827920890917349435006623919848667920687809251003057913925536356774859194609793333083074604961636918319764798396604488990687499505304058354877439849289735177021322543672581352885968404205621938379185496174230761650846206365570401274074072955630329866805244520762011179869120686058605597219171313220453328881484081679793061682704047717623799682404011320857236105268698304347557065441215701364349318122053659470981072585982978377644859365688527269411449475019842722302291364717864832245174842067978669808189288970959377480364341726498071672930073903244718260369243584309913692050405526545802662362865005408274837636677330963509028932650199102785894810031092044155685449892321130049802405501713377549027283177860486376435215845384088446861933618911164981652026447696042359200723542920856193441547002908113036089741957048786051688175974829624978647392101296508861467452739118301197268173466945572365962609903424399547643904952267779011750444259556609833328053805638668220559580767017830968768378910605389110956763418499162137976575248863720361983564236180062488133094876872576765099350846990503161240242454123774686105948088376820659618152909342436337546809997916973793235980505915646288246754145079398664381529930826776183941710224472410969057679469854884972328508130392989567642330351137025777044552992519792940092941537181707156783602649776613974483814256674313198734293175577286373333326821790608814092057171515977664399164429995463392717849151100237626990053252627127203195267978337701333989622764209654204006390682030718861408487263310960843707832449416230511447753856097290793200630499315962037571516926603411076398468485164589225379166258478048624134487879237027229273983607619172813329121154694505436842850870651531623872528457083613786733687222430726656111053931593068662423524894282892956293953032009684626204816065738729755595522528270346230752980905905182338488587667741612472369925350869485629453203404601913840633461693408318934956337815174033478524390118177825950848665790274825042505711678059845354164844941920803735656120977350950974980729279372609271670246105162675429775213006307570550064526344924317352430541390793472469125070781362036828870912185675933052241652228899502569343283647511773038283119611612826599804745236393636886741421701348064910515305779646640766933372864259843645947510723386939981325245652550371678802210166188209766382327904503777551979622970015903420764707578536182940113115364197492387895405666209747552583956021245740047933433306490300916014129276827007452760963704483750103008917790585704457772765098477975799540196412571028124966385547594025345234363293481172445507571496106885058096813591912119037192590775567477162185076033218761321881192966638510525925872155693282026452386371240399084392992134589666387715202521183494196731085597148179293934844849098164242802209730131227630848842582599865238436683854869145814896537883032332749378447602430577253829146963766605940190034412853180681801017746026547398687305824524805650749610706173524277254885571233132108669963816127756541307279638210749297846552553452507919068935712911320689211812227603297134619990982542022837892357094765086987289435384373372828836784686774167207274378620961677247058379299555998485344017858931865774463407213184642804314809360676109839052795841744811872049881248614192888716831091141584678492390108940101087939213865992258034525691779327151195363794025789195561734557266808069579910645392922383105314364391508713777296197890920782053956248003224482622119148270093326041799174209388213209167132911583839816623157523304828369309141038673035781611359143610064148207285922683479614665496045511061765267101717226793114034019696017575032918109104943986658193311508792207366247177201065325380132608093303919826666879053902379586710512085289947319564104267007825732523882994832535817063885604080880828834407659029955751700871925927607791585447367353816864568474518161499215626171860954533027852930640678752425171010383034237403333134355783221577898027885328963226021674629550930311073675429760931047749736711777022568347798628529141140030660135908507057303353595010953401687084436750252192101131710001430748307899672478967631739018981035532041992591167606775957512185807291480263926388694657321549600500968672422230770229240516511972641359028686653578419703091530926536188252119140067120410550272727042985629302325570873859959460739514875074178538205547156118558628829595885845736716002780208574131666338850587828881562609946116500829817731607379046216423399193108505941617522128409515676682148339773553460119118686518673819582520406095723699315528766289584339848707830030922207211359392420581149710207207565295507743809200713095828210518738171089038728964289474989445273381304002423708330923529555609950024156126206810451568484661216016038849194935900459670431213938854992007756841926257913081633341651327691937374223412990398868256326264626703613839342213925622277733028019709487469827755068138583822871250159932892981933450046084397001749919902391394409739916882901576771071436582648045301656188828361542934936477185876164349677231420375161335975140228551043165349657258363641816841427065805205426157851652901765744689165836851530846667054302888744257235420969986667561931843137359630672808900193157306236893661559085133984142378964833820477715676194839557792629033340382369836164874478167577898885499704072703884287957664170470337371313982412793534523709350981284910356671598386415569390072671138296799300123805228741794578899529573051374136324097197695723089010645190477012377124396772655138134411712589106393591229648161218526540675207612112617923578003336050742942366036291381781266047971107298362387370929414588369331035639069182689994402353061001358600223282176188542130623836302848067352016445187504621131589402821276993310099293571667778563221137088861101267944680383071192656987073577272076366171938650598072550336008012571307368374178490959895917614685344737468652206483498497264931641270062582673790472846409837943234685177115245964881528231354815474571663388884500763460654679136295621734772928276351253534272853242989487925937859600864036000484979128910176934498220883247266967254267584969628483231146922817673554577212434786134346855391474706319518653516279937261706455925813348603675850526298058911465982497014668924465442144274369604686079936645552063767124418552529918960884705444178890339270474535540252813944867941588538332189142602211269600675479557259106475661849016613208743471896471237236698566608612414783695898718732963217436473587276420999178476460063092066349313092572123711595662875532696708543681210141791236944482439284494711018841972619121623621219604894600034415568892718094270609579936516186275622297568328188904099134558107998483708488712834999704264351732938343381413812957457979622133366170430248661085488022462981665851879280761027749338206871156726935847278398032227487320046980547911797365997745862570218778584127207882438882409366179358257035774620017417158164778688653966798109642010943657391801118098280187817803530971783191176108748476046907560576021124549132295775193425643842611461393956683925384808368794769416186141840085650568462588290403313789027306153719167449443327235607997675368305297532167654239067140644675806548052634623924555620058560300836639904831544845849337595797871514857407274287393056760769693346551808993949103733862115239042603829151858251502221450181725249123697098546896779198531639157753098897948881788114313535369623797740844143916679804535192329812285383939543595711384967186115497755544957743327386334534852269993960232924578022147648078042061041780187753683783751716781122876775593212545864021385224917611743045577564611116325057175492680910865844155896093776153771340419853267968495929116768377087957305050817171375288127450099884827373892297035918634499680714439676252898289546591422736701394396877235638361652604106860831901033764344551732097624157964017291516835801229519447061810493083433021799181305545109147376399919898474742062713168928165762244055373130391597150160183037721567818426545761854829395144600883058538883718327169548876403554430004867513395196937834290442244818443780118439738051744438116933612579952010885478975290630472725684538505100505590615064145816658947236806412283062800346599626362916772711144446467850660150854640668021644746688396953624295861770779578076421496694984038625428049814033074152363339239947187075125396880284193135281895247416113236015422342691810714996414099857000013186595849188388003890865576815762056342382214699909964207576417778091278545509896332350545094944062536442777415539015260400110225731038808206931751019527028431652701411273520176262634943075713119657096412432982704236837616312563833909343234341008007898618031549202225568597009301737364403108116571341337436594627795657199395577067058311734746772338415906953873832198797578116124095000923510703667970591487618589352610752962178592886271039465309932769352500883229572928767416944905567115760369394329142241440546556868661552421255819197447446611877216000992323768646016032768700838104935358172778118212331034250758616428056558033216500884931849615817919837558164724133309120499666199222128079867917779346637406177821652020772831662100259586312440233050580924120452697288977015134174208579817040484165145155442254790742932401704131809954559260531302476429548961853507461836398449512461836889994313088786851283422932431410616438647830899637328193358565602195436854721920543779222028476552902392270664965023150484484498667143821276452751662968366760468105574287470956125925835163869615144090452247488864101563657313070995668092476960079020565184174528944322364229773131431912230239629008631295516458046441811795618807043470700315102085756198140521148005337692501989939127689662331884028626794257213139240550750571384527794449167698777861825444805369935827679827216306754581431811720733249696465442023091623379467493268779901191097232272260655439901847799049326078718061302456225107909170148585001248053347123114410294607442502469179369723495810318443967638241706020189445170468956784248833892516257486045804904030472822801741784387698731922945243205369530561383841952052998508977360521292473842809334116423272122184168794419269667935003006443130440622250941932171283941751116577490848693263028704209073351497352814720117594646064556147805654002951863545570762903267856226652937657671377795713292653988838666809822760892713757310233937309377327444243073125121961325199149689129255262498883988613957957500429231951545155228118007085620821499868273280550980221238080081143141290452245213322041909104205483328359056446526269317286785706533587162845933558738583654819559374011018458140136402484014317927590482388731252390872372329104643220151713907695534079867806640939779293264074687128071723691351932108929024241655202977002579035294686668843340738009310481123070475896627627834329077372444343923740076885605668190048633534674542904140473358353276251204830868411484515241455419374693496896030021789432378951212042777108908761063198715647039685459056234013615971165573490767615309583531770563016986340206318532252564195991880592991375501600971943416164495468871625122863200930849092610652354461778420214339082988245470626288478910995900556669918699509366762217729727397524835787043745159496243750587637233178379669382257652456343224152160066934768538604131060171389545391931997739079294222010624593795745919151502131474920306892927019344464945438369848462135956853413824876433361035506304873361089611909755787553976324234842402858012000892516582653673894577797411763666925974819263584376818215659469482540328805032285486707160879877185778902605864552720850618910119622369406354438147925317077505864836660903605220593260102445056290825253029788789611163604497335936161853932291996743735871874247553668449032511012712821988231232606234382667511506992504693984845881801452971799107692475484189721533762953664245261698427854692943841015138200503342444954156329320888015379174503497200319713756052154558205169742541975702437134714135458210683171757279362340672215805980697103051329973468448450998268663939082831860967977499732455961620212505591033530830170779023228146203899475253214301080283658399327143454961997102393174154281913422504143350727909033725717420334770841577254592271936313968971470903418707965605629073516133071817334004219388011433118336098129527124954135757920000807690440522047970157673202716307939083718481092415558304384300739124371391900709868775740792978288401284823206633539292584662696294900291792754457326649142156081619205765690574818813849532918672286298116645794637508999731400494664959754023642897846522426260232865130325490132996195952284878213192763790793726335932765580979051907944985395556666007959689757951930449145905052060469528615031546025592424275358018882256332392511492954073262269568128734818283290384498485439586603196457658170394972978307728281094617108887540737583059232054153679808701338319388022027893895517723325737305450565515528595186147026715388359282359907078234327296392687877540202483897528292853736552001047584378750591464231769470990018240697661419213351538420306709704540405465034533194366351931002623708969426904750431122499366286818054569299127372518518044975470474848534062061693636490007123033337878004264174117891694878433359418137585238617012325147026895190370188628111673321029760367304043538316137827034726215114458846327975154452821675473519639969761777041100707650142313240022048424604709831303391118272604897488972276273264485817662402858147937175529787891655823883184961121315146351720596943006054617667926224911968079281573155926876045834187537080156044888093032852313979977370161423464811228544415073554384476459090488942067307401218578837906242841999789172866856037317848034416939216515105235250508985117899403438878875653162164434586817611061313999850006027013728783573295819041493369085484981557438364703927120072767122659026152392341615533257140708325583989649872598963437969783879059581791687640356073822579606489274023982841192762747230528813991976225515004969566350173110573508081671378487136846711571777401678537506952536662732114536550826114762621320349491945080615091306762673855577714773012258017998300342053855097531574723845359408362571015328093622302876848395304781159786636159063609155162856788729266400728091182543189385363914194655309150196896980348240246671575059373253501564950875278977881729625299297803596161882702192679854078809995416798654312778195753827878876357514030468285160850126749927461517556298568845386864539897391765270702830446136499885191070036539711438292197834056156416628952323793870435907714125613239604367558178094584200074865746236179890253965932638669625189396647838334010325594720309159877334073533966692759677147274751914295258877210831974568606025107906516437812808186150586445958083821067467716683811860008701576475122227960189747752806061994535866649871142130232450456604684985829732915411150772676461951514480145787146188280552250985379095097289635756516913611517692415999723940437424703343120496064159519697116698961949532938184267701416048313815514888169945326221831846215125947429628434203272650464597761945890691881373380006476246090965394039748311143272296796346430937970462954759582621327422553507102437928105792111264474082418713241309298386641197644882175604342471231931832525320170107262423513289322857680873880996055489540738553879768861014787220807467101694737062645849084286619034098588540445712529768604456562826512080919839952956647084446857535997822625342983603820213244219189702927915849183262223361728655599600300126963627913173449709537535798521600811041869910235456046586997564441732955955613780473156590343019844686517727676376757569729487740395574086129664138702906655321582735202757008919509733445502832142252275278014988241416946653397902521975833584635351676684597132054103448908589634338858223360393749870490447849865707813912681302977876150197427261165700644156644083559757705151594174911933847767549141513591321637487725966246349508470452473050898166904651703163091284698212773690161804182821718258014127104369345993948752843319921049288019629897679157195365754987197537881247243276591994131049152698397794701053333034069147555905175345929828176893782641509857964020824696128908065174181147002867145559639496934064993787730665916081361433363978727550965269916893374572985855951611573909310005148414199054459611536707723978746952786517984258371120462030245036004747543042645862354109441729532212836499126917985022487730165957361282370483606520888564498804874786948874688042184885595169184816113656289754848799191517190281255324838851494613755015845088517244403481675157770104530107300505198610032181069364156483442208239582535758187732598667029245654119604871574526134460558397923856469282975329163439938308346343905454015831142922920833924014620937878633812086402798770697275759011505552845678059170126215755561840701843732351064460795782339014757703689105016160661900680824641234656084681906393243026942158224579813904358517243895488437423709528127274056420324274018846400320480855636492668684515777649697108769220187755394233184913388018667625514935772122550607458590566527774197198572335419099601549336390609297179338999684687999128210983813028383699194656275155968317130882553616887894336584500853688241464276414855231788399888948427627206289371683818482464065133159005761418012418627331081095002727985891826937761210922487085675648110509499291239938877019017126611093250870520538301259902926347252046297240762882024909100043408203666705882820047326679226338101793456463027425713978985012670776217759667603365625411144617077625324956940652528424022999105719743215541952273866310598192630573470473643825153631571956623608769864912475551738800408782364106427235511367850359729807199969992420068593427417331114255605539627586714490261317098550777563282615033150895792281059449995098806487497375399964031002886367982810641191092488761962109619323196724979880129638668058309032328709654708564271433036463275377961017645187445270872472542047080512043204581358442810927422418299434103528765594136071855406125775380274796439658158989340003424900709072290241068241124457323955998541154573780596246926972077648193347222473428562745258980538928214885927687070653695373615190965802157380401533473993775491531585805268478177189376599539215165172227717287149120049972305555038658508069821241650910643619395246711241412499102548602328189693097643896606951139129362761946977158097088915884178899495888330469880697472605176661217424197870717292753766554771852744022309422212468964493678839216100076778558463808390110524279495733333125535407546251622962683212872278376092082437853342014068164629300310798256832516422720840842140258402230364429231067617425607246971058326360314388052327354031667317989809804679568873448017385299187760732975020361594782125630900352756971132888221620380082698290497758495864884838585196099406153004506524777426547152291164408316124289639669535972666639622467837374688512497854571699594490350267506640140917873513039075032532999177658189975999029774730158381359923878914940584935678085484452868593572074639800859968385245429790761926452716996129705755485879202360158466383320997279701611846867507509429740300369688622319010188180516386509720476770808830228797152973067408416558249215818809950560669691898890351678048766368533479543159077320190527740073664791327746471432915413301924285153243625059487051332872498088439399685004938243757186242223699082858632616716703485360182629854733258091083483817438823007849864527655796328427264401908714286007109001860734018221060602074545543744481265333555291535859660146969952363525086116210910802016248090977175701376415762873430754675002838425678883977631054518756686412903637839275821744298842623876242434858655133150585917144539310794058561855579784747061901081960198270521650347670795957660715225657819724994932906787297136596994513325534069942480496951082753901866769021211475113261824587290048281163168627251149015085807009954005004350473873418349850084275729096134484825876230583710245432691229669552486505887895991406994401096351408947972945652248189910211641917711533553501960435025612929104275789918519922018134730466359810002273694430217631787337107249474875865580268075011613165199793700102761722640638466953721172142520035233890554018081575849340175005872628186593959876468876138626553687346501402318961930373956884157468285995240345970621641624060903167608514478142929842706828479021450961727424730889148669505610186060795556237514596238121775333299617941454830180202816838352363987374529274559328836583981182142846284587169318809695158044151697509133273493161992639627710709528265065608314770558713460082854755336801745859661491654533011373899231987198098222196955500252402384683612407648875632463351674395811806172137730117130854432448229833083335647489627565438121576426830926627841827955437964789644432378204185541938564997171590053513113551411679260433808643961022546753122984657978927811827471333322203445057067833074541938783428989772292142726671071342082983637069629602619822054763904442260466602153076358723745274788684335540954816040404770126871824158459458991946979712014663897981105981308630153421194983608375825982096275810823076586582560306617709381039806434504159278584019916087980399049946648956925924197002901796022074553233043580755975732166137544868070622405764662593806350178999694979207056341417709178347675548701363601144524548142497733208065428347021297100697055743463565673973027723730003366938288259825995854813392029491916322813009080138831809656185448843827530904825567458567678240055779495257314231817932062532062195026580701899283589329030365554857623212627025803322154393199720843496637337645105418242165198430114950935874159438703200751136348835357529439898679072741466152327719790751335563585864900837351793371288743720612964980711707231490437036716763461567920153256075411319087353650972902319304871313452135089833417834474429601714939789507031219146220420982499950799754956733363449228765694270309734652717150113122997661629561879108075570889934280775378597375185667845586033667961506602978694944337293412569849431205772645800804469247508766761719000301959122607554974834422099160674010131953522853207026097572553112894595067386072197652957694536525280662584524483237177163497184878453986803245369202944134819299749675760500113823783984418325573383940521771245130419709416068637472952872322727257154642655401398229748600724280139498972844333329023844091930920950850831992000853080305223581922292813010411840327077387674455083564626674599858515358668772189190827383641241836436573911185903456401148349946260378279344786140670914701198015291433080371290714743504828856982413274515902374648857460374738694091264333068774055797627117444353438055297202367210249194080156910295669707703719690501632161529888486265729006656012458305932243871877908542967754395567804932743071737000544043863704117678460873649316819594595658451279171014535029256968071467387845064476933763969060590867044265331848987267391675531597181634153080505438888060680619175809055751305282576807777582927202623729263893241531170404164774520298820508725706163221277278076723280143456949361965069589133038974841368324096340788675256789749728551796861818276565082113035890552124675715787233879983248165105403676939777042300837616476506129898812951108801290562189065606286101619769900895665826026020868745294450377246317392402691068488471986022205985871585513790691336662339103745202056962945770299784463475303791784787306718753604025450900436712514267603341506309673988739848194148990979350001914644291990862715036596919738925598415879414350200279195148147456277311425634214571674671935780840885784821305129117742917728013979227966860454063807276159471650976560416018674646661037325731990654636431469587739198193273875415714097051460909310298431796494771762549195548102780439805575860562392149709994826561486552572245990413546890315616916068276204558010648908956208613555029918423155181427424727684500487732304809829801586474268830705230289738123883670150782018188074745291468297111617442540840772184918490061106320262702914843851681307870342827426275270291537070545715656821088503184184475427345449080896735785542499773970514361813655521234895800761280149857661933318362244442880906297533071131155490368612057079667089958116768908834145640934043219300609999210895943880796435566498671679291794840775077979356455100044578742179088353069883668719848323696776983843898731271905433019416000668836124671693510076675845469494812438329313972469888292441463679368005217696333057946403765745919007671087217416945701729663854375359593460767032173339521992206384678736329109579810868793585829206968810214906473322833563754838988349795303086835984741418983416840730729806055121649679877806101820812675642002632872001028887893696861871166078842321109198387879973073246940716640201644876681154517612871933772000485097272650476186222610125589757836518318581559812904024198932945425071376525412162732124016918766723547543400270049391493591066711292826389959058565989267418055479686509327116886469116947805627558380797907622559418273195215894883326241537371081295868068101396240523459523767752800897290354597117234544173218038994386580330402050515196930838218548872860664741542309755844516334736105023001441734473324969967002979070060931713650039982994349579357127625918306471818589782805851355147942497710378171983285422662950964264758992130456957755211773939151811430199484546312126819392116087231288585372536771316567995595245691757474309650491964816619631969078734442639908273440701601988548967294567652579333849306866726825110216805754013540821073120603391317648550721109298959987809276299405708863154431954161556944645774265878710082489270990213253034595214487407865904326342754906151919015844304969221774596862632057310451699272259135496424366706060993252889739125113419647993091299821254522843118244380205106935885989796398546160154284375269683034681515302726898435880788339913899522608029675884374068108252198418494190206297598095650402210291731080107219821027499626289903369826011813513814522556836485714419511918950272175970859887449697262965316343746662384503350408862298873333559789021406532850565453886301378963242263309930591944305816303911171963502344404782569232110336081227156730736694192084913917842865291520242813591033105929864314203982369289104546058117387779578997597874412270669326637224787635489632800770408872260208771930660042589376473696104977886172339000973627333265438309439931832409283344675314858876678898586135595674374457906931668151991527964805049065437685914063549972634301528349945309839455211118474119926314788880703618072163454785588826335874993879952270696586986118581371172679574810267803693667099932709001203062439851148998352607501596693332779618538125918092686495266019737654663066008213720857211614040304806004572358091588279429476884509848572498791519750353454403092499853334425455167175115397001703900660869117135301233623911961012715201728549337697058588997416300302407804339704130511421812883962024169375987868976272436655897063646618148342916621012889810898584302099253529313345841112304461707185432353852361177296080888706191448661746340517587093620673725647551195065268213050361293228347203336368566280274669863805411916053951711806888742776801039026973915259886092248427305413048550863948577330445847694783943582008323544035715578539696070736851441405142127931502045600486239418270872708772111253080493157925185022113738133577959602023910154931737863170582898803739229520460791616421975527121606459083480733097056730320534336239893085364073955459643659308174812520701514726620606044589178104055284616766400741482222357401170052773961211142339790130489333402970283982732325783241077038854213063209282181648650396960305322877690214306024924467319447640667673785549286519379780006272774602433310436978711344875154652627183178965937510880158349165073221835033596205693782466740737982514669302382139077960841225631508724226833722137593029192271290552343921490798062293819009132547209698423900581692959535520843174959814986286126509347067077900625209041125550672542802617618689833417375314621985937801037324814689957741089300014222383475574369184222008822605001634203037505568868013086552441167666784471403414722056200977817423980670132061805426519716065428069494835794488734948072616631800155579288193160278880272553510103599193126380587964993133149111451285313276802159405140069881822416486445692962653985781934681680245881908260839731555973498422343619151101696247036758976429486194202156409136910615237657851450999237313106209560831412284227477837780774880813643757080718154057753837265292850195875414755407714022569818257803629375496158913969781175652742676810939225486726768174106938390603284945169168166381334824216101202773268287484907588205795548037514870887843907807204050888924957668869202357626767917881155792839501735513057653441397863859506259965752070133474661606627438032872296189082113878027907608838403797809480486751495093378659443676366587530517128599448220502092465898079274008041661725425414945160970958495208413408386470869941323850736335182841023186611587925875141592279103181422452836304655729161509049216726052210893000719223678226908505774746835221120976412825066992782620418917286119754479639595304218988287766393076830643190042160230236668493483551727627528187402779650023903262449334778729417853297176080743725235933539224007966200542587545568636766733494082809777228544476213244232891791758846503925847227005842328900343684599363492419367259991295442039023391651841874427263915151058958003569672427332071897936921389511039980359716481824193756266426789685371584273211589878023470256943093170901542723823150663857542395098755729873168908724305057322557317376658646440757279105348460519550739921388175674148309449928805820640489860893611226628623243832416681872429575982718338918196438793613141290122027953854755689280416640745043969399987911279981612901939318129437826443464385195187088596645671389651640678635482707462426756941677620339419729544673252965038614055522524816031613600683870469431322440345940669899037266423262675042932090861510934088207452238792114718733083776496805978680045226881037647522257310885797552466875621644933598286445954143568851730785502864274782630064409456822540648866756737395405463131953786102197980951734149955404405312497841614277973267582383872586099823541676065334865765310729336401471992539461706421978010638846789278447364729864578701977980019314570854233438910550911832097027656510548995093012307423750903731787245214564076264669770304018772562023026294272129749814115519562138659046928343749037315499126557461871062454880494442089796220172798157272607814111173573506025233919032620815821270518893228906219658019990870812513764802942425289109534863169337673213393927136962959585858592892557584493003400047189496124562122898618847354587649072680881227418564089608742785756960879322785271760893321084537777079717918690432369678208906618185861629892949116781033477782203103898142935638067484601112720225922071217322110993154924354078007106331807679285167272104436355705969963222814097658465974292743880704238311635155804352485061809736026563816715973734343765875907363677576033479539254109242620788262410101832328931934586008250986798961446722479486035651342906000952384952688792515219418684612763173433135170444680373900185665784945556054608642652789530163934450749214819319021361448675945677438578382147253300439134690816003330841059629889538702772523656498427514405850332611433300178854122059648334591640565317417148227905405488281299763531301838336571727030368042106789680732833066828972275483784822402714234367872930297270753822394887099968077035928080079412320302620963733779051612266433256769176620422828784840718490560082063140113377654757420111416129039210010333103431994184723414336660279400560768635925990831895370343620242832088269607975714286057409204169651546337695511233122868850535249777157911484037366246325487389445008213259520245931194396032498493174598900016910239625015541625483132394299094739599052297087471733829339294667908462630384530986941766476226995746515174840035379081345032501514261137330423401835835174150913584815233016162193725064471745488425901036017166398653690227346218353060405637588726276301751299006399543827635255686514316916307292978996031494283790700519462313037932482303926690053189711791884671980525778313410816267664610070468068211280361610989083392398292930139718400261489819494338487858587697908023744088589927020265822948632251205839911483319200417963980307690081010061098923572158955804973824045747203549791740578431896522114864826419444034087779207375831327031715178442310790162517139551522865383735309611343622378803419709124252583551307148643502211877355256371754277468845737135800070252402889436906218046476394451519485613549633133666012776943412943851416059966636294021849828554080231843940480976120155656975794902568469653610768718798027398020467828588016167905458698003941802808841609967508108444424813586554257933443766530998324464906105914835402222285781458412526406002639331244244172689406047257925134286600884044481918374349560628555094661641026103817956830687099811380508658672297056462486037927871268897214054294223582537594533983653798977796754783863219851158585609847280198237165003286178142821719707320265842123163802324495357050780252301556512273612176039541915389464403837567050564362962162960552050426552027568987622530775192538233424864829264438159968051079766678707742458917812391462125506747733962749973989192032089248456703288905082893436911277206616064939042801796553926499267134518780194439261777800784527948147298099905634396438076478206327090464801219834411710935263512661495800519705452219667572977041820378006883552501244218731653041186159975780966309538528258167204162756822415227895131619867110654947297375123692660552571542093048151275838368987187095119127975188567784551487192016916931275406980961697575373445207761781753465604627842064726706386797243356212528688240308041195796246846290920586391637724325532762195833001663930825081114250854571819260851337499977250749624622646306120900055939993070738240242593477540680005366500168826225899989378849304496822392486902314555629199453235491090928845273984938419848934731193248455975934941584687048434590636652303589941892666159636255407570598617114742221613989972791482756677930543992612882875490413140179971470166810157096613327779959912730402652695206746899786118335483318334978437442360990405698860751266510493018669390732708912447827027894946409269506921855080024155951663188930087075585844519832191688275201656372756711556106671519438421717709333619212834995794666694788116670838216795723095723821958864996626420463641610035987188318028659619683682851880003671999223416493194517255972788831533005172523225202511299894297618657166308151368414152862496842687315056845806327875481807003244840296754192301182172489591144626348761219720235381106418924525717837027337545973174732586412812081956460062130570274225352844130418308194574222975575561352521856126812186633961598064383566540096005632778442792239889445729945225148933027378928908292029290548829417536040459679691794543295467253032182286453519521362779455332345346258917690626059157646680762761232197503766031653162665934863805963182979419948730832741043754246897728775969812796675645546534393124054140630095023512281499954767889245606272952081502780163123904402265384626162861742689893726800360893035417458898468903844247911462613562527849524893161986114073201556743407376445637436501540093940291242943372187383674578042745008542302952069725502384500381374087349605653886975543715591770902836953503787527852215152527478217896762126533568641379793294442548862471188477755468011292218808296789995943630842487715767603025281384407938984131872224432485541566064865101276085933961640280337037623051993621184019264182016150957914208464234989344299946825171825453602753502893764767688968966047373759556458913976460595473745706499447004900170309990753047050826169143458976392246208454122722002587252464953053530388851488699119210081753769279566723789712082092091277682599925313411422256993422856449822282838899825298560921841556288490300190986854519727083501301385872602641208447578707509762758195791874882435477576356688894044917743468963014495449340988758313902574956298801047638042292912611661941388203657015854212334401249691978410484745314016067106585451861336484979818088908895833189943907141512571697018527098499738714676139928317132833790803966003672243699620728938576770931061303964626585835751489369111207285834436875614122008089562091492364455777780226056985720016866029029649213362121434200597569343649896834392197029907789179594831740499969293666994475391986678197218156787405103285461928148726936730056154395458034921185968265637548958068600553295725693948835024822228353557595003317772818832427555218448176621875702595922969462241304285095796020975691761134720389272539632653170855732196632795685517229344909858560838343103314040435764977844185930639571397396934353515016883739455144811525407344961943591772629178165156744305260903305407130047756561495517880247032610982678108943166481775784334181562869369364596627993302756826181953825766698069417728196487294951000489272789044218816697779688090165050221703232596284980534471146615885239676361091008030229375964799713513738194749953460363961609983380135907400437579601473757073802872316704849194130608327755261952347734523954348619160357507670546429022984163219612906237129366525813604449245716053509625524822082818532816372228250744770894975230494470812569306260435013319978570584303592993468149702760731759256202471688553533255990654878461121224901502676681504645300826506736647870781822530566995460404263013341350380600782760533502244174248379362725982404129120398813506081133374679858726408964456109064495058245265205876253286472132244581197547149331087527151131707014269398254760884484049935006991606115273875140614130846603166556257980876975516472216219021183269268443175807778873160228784248827649140658597760072553463972173594937233760749942754812617763377865748553658964160864773494373904760447393740755855821897522886348621559140158655676195172492575100943567218131124729345061571322834525127976582044927402832656477914924623804920320460171327841825306169173235508918438502497020840921224388008499165533071108618117498181257638785349818450066459680396135553558968771539631723014267750735009085007020782274552139933929362478259077148522835481796277718865812121503896954644895437684734620693546875612998189142132762297791958058483876081958667880951014633958713563621897315287011348074504438809445602366927467886847808397992852093427806745962968263891454469503896484797886218128469160272220758318555088792052410964901743940056457191999802364043561210585640568662734120545231367123373907453987898102664698129533148951424760327033190012548720498607812165734138418698082649701797040343478707980562146984121431365623521129693979123462807617377543860930793725776609474339804249726299668149723310159392382316828620558693191035343259266761706095919688595868953786442766936148651064111924991744044415699686543188917394802462412185852825761545208283743964505389563597881064478805148363115585758480567581004884871391429525848164913592163158356556390935935295578728716314835138198016356534279577982375240362138558410744140710476734917832540931271775768750553072640057016723763858012319487226167448294816577410739204593921823293845893784116724818991678984426457716727678563117969436734866205308231408594717463353786064823028532253133778096161998990735585449517277258951264606159825806423321416542781384703384986864395875818797669936972690984248990745262774524896884748748954674539968326521504699269300156759822093231939013893552175443008416275225689385082303117009022745285790975233857013474679889886437407463156718291909436037769956228409409545137734046790789588994864158700302517480380538011994655508522090704685660221353151020511243773172042766034058656241974279310293748183195726704784930176373646286488676486650131502038603507239000569986990409687148874410875761710692901224471321137383744834172732518910356182420742132441969599635806427765674716827663873725777700002256065481488737768846113953040470668251548260619561980617673404518731222383760686981900824720611702837313012941602656553753436530240704411628113323957101526537499500325158514283180849047121058581089279319443282550863591451758111870299657157048470172185579923020576803790273167252287765117191575946638620573816472028070583240585338419193489161836874878629933367267993390467360636144460382676155622571655796972030471533147731075153989428199211863052014651334886167230025365725746907588935045506567691865802956630482795785134135876881317328059734205394333698901292170947580629688813455874166877222639650644386247055546472088228691231359122425011411013730934160458250012559804660248016041092898979580774712108130666304010335664474339856857671927775944655070308797429586486547044659229768806160365539288966648544554541937967585114667146749096140623368077998711019313478213613461014658880208797353606175044964288843715647229963392172035537214387435048961099303970232739264886627854222672644424052284920891625577178204105163110776732722772090462398855266210885514327415767115218783985282415909598454717346797940287777402151637605625806111120963251312399719078166730981576970282469198970265777373106451073667471418998799453274402074850029371218267359343376947108332426903548327330112879438224915126764371233320748338020738321209402742548833745927558239118898886048479587146229321253453911085358973582448322281856550261221631562105289449324005790149760197866536717471788704452917093615373762936327068569741301537524142110067061514587940669826497630354536881294613905932866292879207791107754996840949478530097590620382627292785342109898911459661772113701709191060943238251281647822034338065798800612552567461578300157628902444444079881596282651318375254220334896227531864062281988191120765191527803060959100946909221332644636482251348103536988995442548183801005010469743187323889105124462007083205287084339035257406353830562630109120079449011048439020497487122732944798991824748954370795534648925032341049923879684698864017797414772993862820946567390110924789012813833744482269654790613394871311404888089654642927965240567624871343371297661365949771357840135294292752010418906604024466607140530480347456859015961450863162882988107667252376615112942239706164230982453886903496240072707130341210232581879519172494419057481481722756118950780046118821823170483942729001170285601397514077238888845322087098894170653355934571444022972505579844404679339751685268548216977871563702470646730163686190605755749077967305138940265776899479940408725875747946423294016114768392555184639241984160697823376515123253800292416901687447050517562621190362811036558705228765676347954111330395708701900791342432583063942136804535440356287188023005734938773968165862535654058626839064135132609400581942652490823357377306622568186004114024610250188595802776044018521763200261514238093734106770967605856491641783675132517485563479755064817211027392935332182527190187662177550849691942221514279348871968092384331531043584176214963179490262986930128038033577913896992028666289691784913320822692764038239885281220568698121521578542788866242420594226815764815776149811762026951216248960304915834267735418626447800922530225196492044570873205337324185397443088603375802445781322626026474598232762313801341420455030187018490546543636494015573918958499761776573487244470293012018723133329098014929935900964522324234786600877006031722302595421123071366095405846818532591961939943607494753381968793587293946470629785971584298005204113558660704442235983861629966271005504824910860778950433146547984658025502740401292138972456174835927504387401577863406130946819846508552390297175210770941794716717130408926122079205133003714331819776386119933681025613175682686840659053303073698870678647757626750236092424665366237368927421025906769345215132791865871741793248693612380728881888405466196875045637474930228634527059830441072827086802959540068017510768043484166760438068742399946347795728691736616878242643740303265125915314461140160624900611528801824632333811056453696302107712729740883237230702814790383209666247044517697595372479815312294298216624263261082456375652391745099724901816133891994005593664737002454851837320054396533200857847902997710526022409713909457119290529457171035117633448500124876922684015777188293204019308982052100270834059758242440757312001305848886262408162836631546208014478385451746308933461177266526873081983024413576979459947102108641130824165525963737225234059475999929650206753390859532580690709108957253783435670967993636382364207048089059555022148193925500130747783264466526145051444146976480987192843702904574354436833467514802902764819352667110873963387781917447532834626968342970338794120669000735569532763235538825749306721638947840263135858118021168326260595805764715344931249963423529828062004466128163373982225510321539257675078442874368817537345062914280793006684356483672038211644832088695512672854615072453275535636025938481892878852293645426894674732572871978249643970125148149532184108706557635805552939563059709127076545032565789302326907117077944468918094346731223532513818437665767755393640347721324498055198228267833858496074480018131247586138269044480278905662272807845275525854749785822868798641024384946529044979212524441801274596087342174459692674025157642085440402914176058718060525800950511692857915525735405589368179746099864734215924353199124071833135086780085206926550097123764461426974414202770717374453264978661001839857110056238214669130690159405530959091978379664751369130745739793969734951123285653416523000323858943999570613865281375774977537705222957841647436207230519906347665975298292260305904806449717658157976219185334581272718552929211655099362251127622552620363758811397969194802570154957313308631780360138154398839855303169247332708909190678549746386602472664476005463425799031914718253810214289533133034496716734205688711323785773159346380933018655332532979711888734541356293588290723034586164772361340941250269199564569346532672807274825228720868878155407215692003403430971386107975319749782248450014066016664169311882440287799124029630621835089333046089622715237213275760447047543016182235433549401800597583699339524735720900391909124376608806389168722035450860214113382145377200709060583208460125566993127460324333605068581752808309905439199561643234078043761626485406374546249595540711477293763153977424475451090681547436711036251633568337871639276646060409290729291758757425674692929995874799180238387256771896507347639754066006142599313520347611707249307584925939937548383707905444176148025011252353153847648289302586147522656979654443693325086264556258170783245076425539000855616384648170516957124131627808252539716137424094956956608890360237737922005518527890707382749970091751044370086244832679807804741510310462693883753987211227981202901592843293651183942463538636912783326815139854110857765943692766167110153781972973945111099491246729115631904171495783317293338519462438109369584526731855067304242892981108866192067625946591773796782469190086863162708156145793179540129071891564799813544517565418583026903835960148049680931496802933274949565094729112182838421238690742130682201737036249702633045009819334078966662668186365696281139193085782959723925046349640433534156708398738312985112029858175063807097475735305239568868804552925865391790249862688815024197933267576227471668063752699133472369647319342875587728079255053893866889252652596191649985588718937244051424851750982310995937549600305986009683521457303460432471528774359255667219413808328752209875323921788217352382913931665861855694135883003498649590424605391264753254974702523529715132069665465207990543175334011779078171981647333441013172164496037108842072357928299663820184373901064327817150026024122947818816293672788051838230411578821919008946842751661607636869262449630366116060937849885295343918224067722960799528086958906411422481189842036025072812080840624056163542959253145148584330688766250548676084676893286817952376526871567463161467536282917354802834441476762594108300126119062620213623671069213304598761461136498681952577022687796465831789446445655067466106632706955077379199688224125097746014445390032090193608718970851242591870869223351287578947480866198673579780486327511933341611012707407291810529906873403209002160045154921316895039054073855755614358508989637658928951416247547967610038033857653080820901597786183109937919907877529639293371295403522837433120358095934052326215907462782866365199330844724017716238449455951392053064322316606002886684860551623146685548292908826839975031625620687690639188405419599909622668548373071125293794245792133483733718541420126952184095608820563419801191920101313067180978600305561437313165889042156382729548234837176781438227747663707039164678898733583553810273552947533605183200781545682768647395190341166546233544060421131268400676889736981843081726622988044642259060659369636003251684229943798701961538598184263456852310736929284078172473290086538126278026821429984674654527127891307190326051544651411946797776028252835898980659956723682242086534009629377525240293047865247913128399558175997952092183129893354307324646083800342686519596914783771472841491906432644052097943633412436084022394883083093666825058816886465535850913322395588216805909689188986240113277619071426467776283655419471433011883381078621947111368233728937707344532831434545593997378819719175536732636246732892640988435942098934843042475852681423383478878094426996489597319079537756856183409946749421870970639189218134930431280595692175320592749271582769012516929711298879109729131147073503937467243982384042955052260333835918184183494824964918489358561229943632790332694756044351059017901538640267552485500681057216073995548224632419053286042747936737506250248069163569284874014780729572449547949866535984739950170675289126138122916135412245431002737385832375734937304568879428008710320349408829602327459173421809894529409570101390000152203794391632750764583140072780583942585552571971625516576031265076175390841863181256055426186700654306015212443879069816379232767507937035956014802782567636866790159143216812917844779298162807955944329518497507050292666847384670067072214891902020684462626448442219545422971604027713897991252041770968901700618222834920974363926889209983017562960615886749835637950571042113671947833853998273691317630400690806127620159180101710545712165329149932623395904395688436466949633002209520619937825551996237659026763255781199651504969667424543288628482349506300226126873362182864846103561555574319749877431188238612055511491529015697999961259488101627020991852322466055486174929979542752314663574263558890769557295440002396186054376649231287054458591239759717997875062187519451184000696728604729989374129622172308303331009264218683217514670675541364199775426206914672448507238255990044279776594779456672830979411015499098845406336130997479966690538081979687763907193944607108719714553951012209234164388898161126548118307857541823744144107693407702637103780965418433860732531404742962606402478220800592854316778748101376769678884698561075194752204419534939608943991294258854011570449506739145888515911542212384860427290500158378177831863062517035096881963041083200703421221983513264088552789787037350923336227693992302095565984291205584109392720256840477382439904778275074732590127787715671325374410831804779800053839169992589668905959944380849050600307641662224631009226448902195785273063837580119961008119842605985621106990204458595420143107978048538682039206106500471090440139707697364114074124141932148223508839754559654979341368182419352633050267916261928200042804848263183747503158922462516699808185895185076431212477478289225151188080365648713522498274016057279180318884750011338180192751425852736707072521243010269614905086203257681995866535594696659369070844680556537372661712264934220989859581220359049904096267056901754769928258148857023989566029141147597993183207924054809286938339015858336465138484710203128490541487675865899520477493785813829501837660780813776856907203552407727989411036970862846830818805180378215981633172856480876718762973297384267615764761350275928129741552957610986839336696212011003125697179681305379824961779410722436203031402839623919742121636162444357180004876160666044432867212913365077702988599598592635089181813659538502974264596469080360362944335093980502808243636687896079081852133242421580479054622827261042909071643530290548996521461853540535846911069688840357643899467559060509902959314034146242639464347961963872170635613019214496348843816136606553840246355113113180551113053209704255447421863328736214505840035417103341698512263258030868548015499776290586212080808620178663693780078717142392076245667286279300616956872815126744592167038574378732655619304295016581251336586464083959599588949546329626963936715460310693906791554201472452183085211667553268104614004348225446998402581064741344185770516179243169121549069695349201902996823342603021522352735648129457860344632985033932618927463481994391859609766366234538108532915874300878428133808964705005646569091941060179344844028992584027918689327922311657314850815140924443443292508446166862305377860097887475445210422959120734306505325863347591903804407356946722366201957009924542016545612518324431389893857208084273159193036720702224992317847744796749698934687512978206576893989084426869300170485726215321715095044610762535137462969124132487160179368540767378794566534020970127757909604866120137882739435274162992400648681669225792970245428714995362744026676237791864592140855671381580560462167044632169019961781244470337296633552443129904463354356697010238553591644238333118374153588596317369316470971590224862695111275507013093737218700230085450150819257977333014766962205379150814630657559729582811835675159117949436677484211761659648137960244853050942518791293311175112631524636599594285921207405512174384502626843997607697471884142794122097394805422302888456064542823206591634310935088684553526800671507801813575795413047393043252948151547546516607762361579595547472078691117563389272153334706326782259747176371645672058932461607558029382450579699239473067185912936849285232423547307586706601943508919070295831573782292455289294322169213315252617837023221164905298525369241070061687616940640775541383725054418648029325114365950893800133954109084192487730679587642488353718452314444368175730479946091472844013148507131999448745475239638586370771232449676475946416210150846383190579690512267411129089422244331795866011857226037598652472788362444797898963237817472035206867897055318667873594976825453266531104828219012688157773587620278925636762450920151800105935766361422220427658661837979078392383969668629838075815487501551308016709785783085209218766830037332644821342289165072662339852731182854021824738276685630851455862814369967298577115936032140608531098597579477510613892024504913368498731039431950912587732538033528794003211380453210558804084078058198085531806039184576947765162541997783807292811279477972505300174813888073089153953355565871724788198340428741951471005650286237547812551468836833556435748607868872798561994309141652841876912794154348038105077741822774600514922532882432180484401028264857341562649514354561572147158041310596049296923831345914943976398750012103103555017983887750025894261470796228202146970266687879296859449900207206964617614344991468886799671410941513385085505535351441027320354007937151005556838961745037853504445976038673468539337216923354078404791728949160927317898957259197137244239174244156489717682189790394030634771499417721511198102155109957193020973202284339071891132232175118902545158941593228395426198841577636781891339818252122901877855644135387007432589104567339767596972920718378814250150567472651683196587189161028351762713177480301658737222341443994061074102372052534214219783702803045195630181913066601737600929327011329204983369117032226206506154258517562263906929213522065903595328842488489629972689801931885706009442591463154184825400104419744741100384539309663031837777242355303340913377316911252531354261042128900335265629327391723526414756819484018962869564337776096607390169603886099613846399365049588950253802068373090438047116386256949462149996806255999568720439915801530122873239962059442768118786285996187898250642354050480313513046696275280843838806349708998818102123945998167088602734169185319195438997951356869722049972019179946318816611226674114770418870800787474582369518181081824880565706596885175932988262927805540777602402929430633707996539313945385875727284360693654919322900590983647239211958645518056210848085881916960663474386019657070243060636150257320551089274276001164251753720514565020688670925282828068268363483331069604768780947459736611560256773408411576060127281428225302644383616072727845857786898429264153606623509098985921726586440783443867432382764941821291184150455059167218151833179275558549747802585776225064416360723497348072147790465363967383509347760876281070513117048242870220478694197024762336926923125685764271835979256294683021492233186306654271765288161123396045541599108039287577869892391977639317710181018335430055071223602358338856365763427705110606998713850089381485856253990345542310318027462193669014742300508717793185799841017692005614707077400466251921492847483379909533836680177191499818861833780090758294524742180858831028967713118613922135604226445467303197186803868880081775691743505936328618677326706691120786708316103296631194453654482719607276919694908871798690585892442872409845612898828297123400988308534781557191191994074132052397125001868426838612439909467534172017400170923468117161791097786301875884396631756925927951276272038569671049499582799143939472513901035375719763413229288369346423723144603479741100906950486900953528549359056087869362084884147578399631081080733850494921224968204664244887129345696247888951320599768832337430095068199803971560775558293334566564225939835503236779843825338057552228426435896813224049756684784520116457261127349996952003967096730628829048002265204344075257745911771059719332432599801258150648968855480602815382064960542436575220852810304109971925319149425268790620450238505542242468669184206121909442574792754235982958687350503845205361726154354833802563976968218622327441161212445143408247002514685204360126861758888686578209271143828839844154159181925739647284880704615563484346687326084524973130541258708892419517652910509645514159469104739762490193713008883938262307778898117222667328487103933096774951043791603224192735721196032644144187658041375861414049723025260695567992819031430776056489018418733431168335375452622126224863725747325410464398380211653757419440347565171492351164229310994326960468204850028178778267259026801103487011067957365639011948738519306362394484266238708615784112990017720868975922396573385355924749163838360305281034691878492935968702739149542691508439454610493055215833738493773267549245517265814980331484863377443294108442372416044705453789587394786292328801340718305182465688315334362925120714524697540948175152753026947475437495739445344894679257242353105962907304047595722361111670041202331817186540004419172573513402447728338452487436256385400463399550304287379340460863214289017553986071509361464570176267961099524290024700746021813785875509050552861670496684223083777653946849966988392722390199059755472679946408434343733778500674785647514481773523360236576914856437127270983684687280695650820769431171210580372614652873031667008924316342585990260516513089443954139814903987945708213866998839529695543274315759349914234351994727904882465445780542562759337207473409006680712636731404290119304009049043289291834112405644833055272871926331942925962492887463595293757889339362175703994225456002436358972379018314863504171550791556401197544016403756644360086553173211495981650636878296013976531377990728765077147358261835728954677355853903320201530054665120046853741928183501966801287411404534782243469036701573666514224732412217120632042353783709634733024502373351022258830718571858504713786483200124768342152387737781084871111680633754571076208276499808517066818611650601340472085600881780082513768170240278651177633868208676097905405812565762103656811302939004157321272435089270749546960533568859843992260163618961315910132555235721289703816193262914064501430327271886496714387962686126788487788537860434278664584175358655963123421336313069493928308697039860453065111934454361762787057661762753480007065500113055477558662127811735015848266963965110796278725271910788492804070773881528962026343195354324358173438449118209060767486000931168605095803946712920529691786665862586370616912614343838638944672550605905073230182701062553599851156029296362737711775821303106004624559221233125916485710739823700821659769715187147187347692215176197536745175971168576683381706686160756869321551505614639130170102223149738821131371546293361042760366837642162537458857304034060483628530350793212738711383930662478104319941949086188059106328823285165317069358895902198404574773857129505752241623062076293846750725627798618365690386204046149041479851854600917074171832748001786235394836653850245618175274435339905511345619588041732132742591038554051750962418283492859325654265454152112655790298754185411171980389539019747797906865254590558206423030178304736761753466920563423388201735694596492108909656539404187455583996724688016285322759644707889564171400118637946116906533410347314332876450990336364137925516533951068477007866487257902557351916227704267890387867931223450320980593915843318733649490578495032194836437156274936926117979901014029881592787130546306579403566190667620793403503870612019232783604916074287861498861356020469915841763187296822481781056691858662081946718599622043361732148065453001169434133290481919326036551073088932050799261405290585423459265991847022563239495566104294479409828440662189175960099042361346174269070669138419819121693085365747609967774585438547193810476851461972114964540301656992352073651960998415122305188121278183690797604451603928830804438252839837344874946716932016169590956309487142331064474409516432023938319364144661570816837377058919896488208826616882331788905635267300747775911563627020197471731443004891650375812626250279353491318255466646193504413990174269970970839549377275843670355997277987049822883442374246312014450137084047417892568074359485543538852921614630257225994897598367415224324623061578933624493660861900191346405020279348156435729259438359390051901777648759707219904873743159195306569415637050456925201737405056999438429005959625701030136370377350324836471505429988290629032308330305178709196724134969148256180783188680054579628448912283021075941880741173318077226297990642808797869078919758948931973616980893015461613549332775944667571814382736010593874461203985524281896448715861380400989790977505002566182948568267973766506381286327011321683259181699013251909939731708429214283428112791427471114607438216493624776469857878342710828235639107735431554420678301684378478305425086911568956301038282232977282405503013068600885828738167993542318940240617557531173498749423595346091646437423619141880072566330265361086879908887416297791351867743986157557174846276097270938451583680285037054201428104755556101798425249272903383946283550199232801166528393024331451155201459061518138257480688680743764593103776323578904177512136635524559884512080222664806341888061785042845085424305438390645952451996644395617279030698332875851941317275593934726443748176357100886802602460339801368338158882339104136064063800980883246146273283684379049000489598104049719946722137154384991647262782631213037952006338383652680220329051941894846298204073480713087055964782560025893085046692433808441146442848929334958358159546190036126683743302976289217861128377099151277771454550822732380378808160673374384502365862114084146788927530753722233153020055153203120394924767766229227800196220092491137830763912256832622600332245206936066238207109078178121703196183205051822264516029382691153241721808558697075156337265349583812861878913906283921761563433296991736284837432676408697770357868306337973180139407263474843421620048805054197703944264010172571378145608087295728701419281974257383002389143270240996259037857303459179346744500989462994114142667922001498319834826146131651074244686259880611043201804558760382532641889830231677266307948264304459804091822586679135721567003736616192329033756767177209326023547764881341106685307591646912322740285849685260550807733830127092682458159896617153461982706216550027373913761269645511608068559122603665665758298540318058136608228077202061711183289428844649645311055297688985860691925857311012750813635489436402914966027754580368425854975666680632129395948696086949385595608184361344761414724755272476836822471968648510692660273865520863703389686549001097786753051719144555015772880595600252260815071585550176958836885847216524005474486945866296603659553997902713331758720877718452663604729093860277723443650198116292596291233382176475223822005586768270279554210917835092492546704431892671684466268563321395503147421118190765658791796211445843208972259346661926074534146571918899096640818076071482784476756796313786071787584420985919004955027858638289939198482157220171030029890423744494517397678517304733226226700963212208805935322079240656413680983459215265424132787995513001962309636805900369923974760590115974115140990474449529378375414555915298863588442382573830491361671634328971888924881411825842622555939068611307989325099901821256669123236749508788928202848642412765619310425952066407548240878299571367124406424050279035939185698967869083709189506752915820578836249622348180984421281096824549196948472905198213808235328937184019743735339930775515419335370531723646821299002394013187068349771753772032350486119158989981026530343274770873060531206426824661825948258698816297202198559356914925490981663963533394626323548968688291996086559241824679653067611649202167211098228791537599729522855169734726352933433377375985870737048027798480419269808708126094808324585034224868767558527483890326397547934273218481540530947703359681191033166733838631754221060143627532876038983111056495368049424365205351492216930234511402155333737205889005460428509608544244906468887095443221091256380203301939333128263010438405688989347275349666852651439612008792758015140047032919056177985307110999979487169668379491205232046074744135074037194602390750759949600510943812327426263151014377734427536337023996193020704081071045388961725183283983711023209550094722684835482988000386841479827103259884171505314537459413678538785225420846497443822824164818851367410819056129614726275717661503954090757841375997927147946850464322983134234547705089953592658619959307888793303767783619984924569683456230059168563429947230553400364120689251879701996700788395002070287681187695080016052952399888632707410555377865815926704743649788297189550899762800378470906024595853650373965472506284053512252620866156154700414983427582017015002249829382957470787134568232067801796568419138424067646462743618913611568629871232710540317834176310497337087643156410489108745147926525039989819083742387685290432687382729670957404732717125707183278689186030183334016162598997589905043067380640030461305083535319515970873859390799783542395602205460410130565140206535025684452156391851336062290004912887369428608213195475593675254218828189030277296597184410503804038903045581897706075624901062783532522310663035382146796560015519211937666648181463547039919128611745055506899338763795428873807572806496760676363521567761703014192364127839223812141959178326705676236127381379780075510335497191603253587806074353699288528375264085275400880351648560520871332168489013605469006700005125170289053907472029902638928595140075958017410772166400719463057750912625053894556926753915499741246630891292052926682543746289129115210382367151182002380545748853827601097686391722960828013057273330485141933833383988046579884007410010292730314911471871001525012805635025059930498646763663092637660242900387217478857278733458856091163450910119162652663902358810178237367818558854175924014219945505141866941818580394555672832453851841356339095966269033873915161993159691371485514535783823221078669179236410872400354190064947935127225165530735682331834687476426356001801209597601832648877424996740064204196402749017720791366303088254323806989965460708261530149305454152677477255598730037765387906631942809292885241695858543393334209757637151848883625650786109767930454701452454332967545305057761830323960838686153575602807472577602798357008711176762631166814006098875921537949424773878493888032373142760557318160711351560314640099280327013571877358462200664317529776245218991275726623877257849146311558684421309482862750973537262329410051828086842234789173077751567200527917685717840425686202619136308258482082888454887497412440682005149919245265361344997977375984759879848244324110570128415539641297913821278715097192774198628435444611295133809596586306041913076071673329954629624952053791632839654859374341178092385845568349863573723520076893333171307748944813737851716141982582742128397018865239568312532287300186719399742823777875648758035493632555780225189720424450271818354912071190869406028591168986137674477372523248175514029032537819559508153110006910698755101728850254857488582018552440144084894420002732081368251579938598585020360876783961667240224544244015097192651430538677858604892376071196006892886581723898030351187093431286275837036444219035262260840966736028843844809444417732971818008960999447134756498159696960992824160323823917530574198684624545168119890325958776482371017330208250757937799350094014951898359353341753823297135433506755910629984973657738130022617461272992937507032313494732318671390652292566896410061292082007987517686742429358134728876646488141465124969767409678515264696374336049828754948568107328311530097664193592544597678505922979819165925457407317668731820264302826976068019488781499379045929774364278391129609616045929149392523543869912681388640929701961672008506341760038765164952506652888807248667509663286066254048263351836373549376718446694015962317470371377147918424741799760460099011659322550931071232936273326058309619606405444434592074008341845701934268288231408202525763531471460355920781665006353659312637720191333170038480102457440636684460917335113346603200963815964632831807201026231808024558651778580672982330560849566783346344068291150494558665954098425342144940757425977641013044721454717845527982795198310211387568607160469220631294987442880580125983744293641864137840402226727355023854561055275719887234898011308911438870797226344436778754234234494600926692553938881179845894133150404364531123876402045381134222016142442361720426454094272236523806424790771481214947435960776872462276528264099069358473678226895918601531571942311119181492019971916629023903752137188787628616296210770563293358396170204371351206012869796250701545505866827323417529773516049951390220456819735208699236892615223944512136410712852817868111800197087699785511744568518955699798907212162464832426294225039954223859731302158796113852747692854996299269487939217271584225660557261084410503792764915463305809709660909959135323175679312357309297115397519592219463475662034309074589361702168465172220382878018950609951175170527688507947790484513794167708364507217871892943173486351764982408534307204640333594175702810289486302598960096493634470256861482481117500607945646052873099758929022910766040220177075781888566221890497531005036690886543023632101670805210174928783070108286807076563766598640599793435619205989785236598294768763148604909560309630181116541133687760858946936883426166924204040126015826954957956196756616851955820780211776445253521178429335280217039304856729833268412273541679361517013630912575226477367026524670526776657384788094926964047407094962740004244202475092691156391415491122260662500425377767641536704578041042060572361443109329498276453907819030769258266492319052083276188068685557949072705773525842935286321299157927578939671416985037295257622011194520825994428708238183290621389917731731221003874792058361773608013070069044816520770730523067341741347414883942646195539371505168350041997116146504301247085651981007931041887080303308058573759007472488005516060540150893700436281098584875460754474713305744877843347845906444358877812999924096671623184113038572892524969779906486917317645553792559740451366261354599625173889458336723422899206253887638192398754305581286161151268898301139446870020933469044640758415529763094869457984580918034128399606892136738704134412659776815684589507872510042602548403132772756036647339257253494785987992446898726614955846483874824420436887599527540632813472449805048522019476951186014148966080966125598508832673917147613346014920861176485709584753485812665940804367521458309416916632671508161595221421735069909651177717122336911065269473896824058362837609851252120396390678261614695854458321100044318734182723992524679692928375691982787217539502684283112506220218154667383465553046684640261318477693555287024872133321686357399098469091548819386831863744904642562179578003103394631681982253510816433258288821363689624637751051059960326987841103413658103686913037246533239499307235843725368442502338174552079777212504610003256754518953302337524954722526100604973514708625733771882316333394932438884544905331848893642742777781444590542597382873979127517754329545849857845731938692979296118289091764332092797804514266028279179862916826250621973098967474024391611968251317985587680752981940327965607568761535762685245530501879669872608120580615955088206359299630747867424767890490545179153940640312598211746569747916612040823074124061722484152157277480976752987685218332250376552770607090131647289323443526063142185392212171525961910625768361574292951228317621229204295909216203732710808050894779738142270696876728229575179447668520764920442703921034656013063369686800261005295995749309500284857799351224195440036298805429942645805799875288541647249669695837417296607016400114541624684876837946610822125395734833272731518918809242276572135671842739465472556535670281264809159179040919518728523495531894867058374460290851279845392545574973339357709691703386683836590884934550612954052302112929262355494569147035676859373409722284788468460467291869307622252206531290069862653522230446037926926152495085583777750848842816404026061435607829503152826876285344352830528803555508135757132692325449418162148196454444463673743447025212230903685963342637559046006282072615253062687630352917130123909859785887474006361305816359277485590584783563168124904093790050041968215948428735278009252140724585440527400172965391485526922831864657048080062957575841124810592989203165717072695563819062039308588926072790055733582914755231757559705475022050958806280607248011567596849134418697173465250146201934975546460580492533812951914789928361258294411616749976837496380950217792726684308391831452100245081338986320542502632675158462594288965617196653079021517394013715236307264611163229415121857424146720471757604109510737980546811051329623518709669165104433265809111494467035738676125984046380072809328342695844860442038220115422158059892136425434007802496708491340312421361592709316270231549099471971666479463799337815108409106397256768093313002129849134903109042940190911382127615676204883919149831935644240342840150748408676841452349419627615442583005678317284878423947514324044698113352476436609062301686649465790217125078056564238121112114026838642585000793937521417383916949911730171457851906146651556386011434410052446963233138139773917306992499221125161750072155838412431985707981581691218656224852469140108467779275143429627024868530581895428924544141034728192192164976637897203849868880322153063760521224654361829389829333502109841320204458290424308112287720179531648030151933421221727500170792271925268047109700642859562094578598147378989607699171991825534883435219213782534886436271783603178249684777126146886884370500538419713140692420146221860497874926129814219919699999183247692120064522848147327482360716590354926328856612318400984706763790365468364782159784833601326686822355973744608310380158881392105578517440576279552238584989390454136340073496468485179828458851868421001834354842577603698726168763858085856090088723590671167604288215275202197343080267878362188809749517771345407297568869454051857306421407071849571944302024668515661124584192084786087955070883876526916810928037834830278394007204042029900458612627038125821111900437074110990316017269980950670470160624051392538825371477391419228614837681358645751721774802829408324278005225666462220922663108007207404964932168379558471732099493994926320363000732197944763270583862580042042176381444766300015152249459326926305531995869164002248608143486272169157042374449876208555041689831390115001537836491524454407157280807344888362910420368911678642945197934011584422731829035466528138693154655452778539714781080134536552900784731699177374020331628953492606257087914518635395799121551860036625864522041524349253930029628285089518043329365015190548692602633956445562138552396472721100203860661570387876773159628471415562322839888939757082028301546262033129269489413345775826059486854281912619851035709644254512907790815945389110852650201291759966764148527425566432413654908637117129008620262426283368298776667339437670721297490050565567648176339953863475138211750153102272135215093774606188695338118728985691159814827525941078381193845297287901849407485454230096300519785344794299719082775324761578122528438300922066888100766846883150446844694742251162922287598346795328224824120369587966182572947972570365920164110514541598825519026128374565003798249057302369089519663605955700672551217484498079968939661950873851340978194986375494078919815453453519728071153105022477559478316415410649923175732367374937272740431429882317169000920591488586157010560631839139222235973893952802906655760459511927286387553637744952357594832531992383898442908143971689619564571118162772465705073499474777043593326313740373587915352252661771005246318621177389649590991361724537274133017929230396575676382312977396970027006397223997803666736561564633274438926113358472725314686823519045504626807061020297412275888302484623060214984896928299920890458650351408966657208021611542701448647312524743250960022528356401390430378148246953163667363679305795299324492088762182513364234231684701858204073909161754638738245224154493488622162693179853111485129945623705966435741465789160473418556701699558084602832588089619336728668033821692318160444356069203970862523242482529465875582460396951854031655457361799327303607062753566634700442949776952440445047230891642132507947239453555170156734947846626465064438672551555257509248756073669336824982365333488420659308881584302771214381574490820248778127776213971304366947916961651754802340548666587683107538145601113207551117779396166010779935792318463857938326098168222272504814364374390657246359304197777977548814478896613987271424408736746469232904453523568404020793434365044618858822807355785472183732226131677574950866895787206111438283875856925382031858932390472175328246114966054515218750333956700554717482536070068385366970082848380507878844505853296175005465652302898532012680642174982894594720429376847348807216617890855624098972626101391048354618081430705351177976095281792488094645924786100417812740428131507462094807031799068598195778352053803537849522454687073036519034672833856553477557437284831456984212978915848633671162427936975359590166128153055062354889992502435468247203259020056369822517393315221278984312565866028920715592165061186831700032391920132282338127936587856961165213706533565218203872863268219996285723655449570606011254732012923612760176276920470120335616066839188307502281316481954208859714247478647897144061111986150979678193012865846702571909416304826521445734561375731313171557534474341004094633661939978386543663816589201631263749746732992328902761250537809158991154215688269318985306862429789721589475506772836466060494066126752203953504178696333820004028520643532611655553613406660321997021117231533450675885202907196134610189323280306430822172235865748657412724586722330637008159003066612374543788076539574381680768336961815148734875079064421999783316076662935429340058613939612680437851900142928423835562794123979743998082983617620845965802504546268618966000103684266934245400870556884182870307931125106356396240520101083512509672792231550967262730108243781967520300794994623525278036241167695624382409960538303151362168279888501687857588919278761326011443968885192846544383865693667098325033585488411369125427447635139800203152647874547134908090440516854467450099999366704593711266352945038621278278324532370251778633280468675670890273370712783216510407542735379947153873633547836246669747263174997228187279886571461019967019239284596517359138091203473805871736047911373203669327988350180631153477634746024852407297581024245161764200607096565723031773812382781813630594628552887205355669728850150328958755175501875746333950905698412225493672804561609743642877798120053152955274769565774942364753003331317190692592690909580611904909567914582891594894621910772367105935842428187453140982519074573063141248886103347258546471649360168080942409532741610321101837749867600801546804775439866107313020777894272338643717214277003316892051312600405040812379842790138053993528542066840857002215004207875795213575838785139205584723744433681922974700144042115709405288754752284115733300497405503162804194910914004693826606633225200175208485038635992633786596962606089194708238298254360265683958633421905156830609410940810494695062128779264302737367070296556101088213227610342356846905546996326367317673733497394314913916485716213229466197495548034103979871805839237742806239715994991384742717137238627173108393383292141515975637754511175754430077656411606446404876669122238093423577766555021520775110053748831201869815360268159905155533433844179478486044413564004120870980455731890981831299028036158550130708188018854782211008473980920112787767340637390367796789174651930924469620147743730849038770132499128905902510105989282682316359456946548942710488502885020951790178870419058156300632418281980034627688483808143038628274438419705365142473184339399212022439272976827202958733388978550445348035198196940985482581180491811123414208761850948571673860319428514572370592810386853778159223164678929622553610176097131703931874397282083121155518757961249851969509681232634026455676370107524095066560756304834399380934196247408960863107396727746876605866721704723142715054324367063238566917807838000986249965528872506850925489360194637559981359179571417988197811705153115317551431246845723066059042644389855560145999616891325357082419938379816653605182307276825369603132808686139987696631226175827850617508674502225688237464249418414515947897500923374965112254464503728702277012780662384097797975965820090568000034577603824968212807650053918979929132234637529055128441943083519297803512237515495776877775886918056931611023480764146442648245468488857349852123378940311478486879772986742276024452088539304396113785306878365227425019986703168017384422332286292324348994405472693889011323033652512996151709988640545667348224687365610165445402710796418960195635286379754832704678951527161388202125446727353695368122232917087612431498663573352405490073165992155282390202848412601566984184234136877887007525479459556282864841960806354046245492390286039712974615378701425029052785147867217817901275602278020557597964251498881247790775172196308153444844974791016670444076302861527745008898952372248894123106441346537119963520807511129194447139110377511572087060153289100980486975537165289709198588383119585959830215442992042472966631259326547256890271708322113575282726253603857726911319307824332190944267983088235719792935391298472199312385506167891124986107689383323256740997095392453138014030731941718910153705465405655445420596541021368199032585027028595705261208728305242886536604922728035216536457313739997928944983949585674969648694744595948266707547184948264971853073853566065785639540453245755030986452899486501136504380532350410451974732942343615517988085502197160972120370804140819891986674800038949828294552427930866739084896288404648825171947978452911448195218665026775970599782778210774691414744665442747169187413935211078126058511858304371910833568722725540797533678417658102448706677016144980889688466617612192311618792437873175289397252945925949898197826426752954522680973814155576888888254325369719239363244894922491041223955476313072902883371659696247569622650173710706668124315608666832699745302063634329310178444842020549871624891288663171368659087694273963508775053486585977876735784293865015384348625149561336021310289623012623520267796220309057529552914336047739948337462180636312353201407755096842831004808080800194039816912215823883510085871902293137257138898033027198233276580210894105641505782360467848694841541835336394416495042699703213672201191398000179518721104660804085088890907657714604799475363068098300617617737486323779177379734812376440096387235218132288643394411008729610328322321456594074245264802417794950637691723114485459634602259102622356504259104714999928442843407000090049860436778220785972945783456311140286858952610665205483804071765548320154484801300130016643448460823674822873041715801366696943899154770440797715068622900909607740859681287612304830688532375456659100151567934806499268610611902207351408712535211983028344914618069867657665454260071595591243333751832338766368497545386483157137435220670746507187487158537415125805588703627721845873909878815872156847386180459159891240248280148360464744135739775761436633890470894664915563341678897575819700786077409426860170029200038805537425679943685958784004511570259761211594957786172423974269099052453421639247444562996409177587869042765169833358597726770408847312283555152353020759223857679928925022938112979498355087618265884277849278453468187885944649372882129182626778637672946227088956063419963017600645131913218590725740501261046502101980951159284347639648705939071591730746641084107668383659978865300952894776837990418520932475939466703631047436736181116963563060969864984967632337152406368092179640639968034197127664590095149215779099395044175020226797544175040339998621416413065325447660968407362477212375825220639180312662361307562330381808737257591555065940403797775574053859178909702435764031099718503088801608475081573545166749727695349878158309166481489364139884526112070533670661090360748312942333146861609046716919863917794567309104343405328479153507359291853236848360332544209315600714369609458700594358393707055219284616124864956958136987592129972698144221991581468974177126993745693423121538440180095976866855895139940112144062217290420064643558292410320313250188526548666500243620999521065513026582480346309033465232286258757843118257513036905389156711915888096239398651433742432626726980767056975679604955126292181209934246472666496673650369141209105597982087509287968553236249015625193718602483217573830153545623053473049218797521018475384445050472615035849575535662257907991764258277939029172905505351455770375600349071755077960652164023339213042167767690000422915545597334317558172755701284471115709197527827569434993791887508272362158057827413668722758929770587258706317895926952934812048861884124253702503137572966260090395095890236666673817517920273094782054490750175261880185474464272898380345275076272186236409649575978244908406201152003305694772147831193204112285386898903871247201392162070804692041381842173674691119356591587606915532563744144835197156604311089166899811735034800160459526005530363298301047840462737885320388423235500412734117800174753760690553807700907207432512134784228545540540718896059128625476177200282296979033914758352415997728046436874606792720964785361155668740906613592730409991225940817128742735355036114685527532897179147436911392362471466666934671891894366264097528346439203422128422969160155638821188356273936577941389409561328571945967149797085170046545120019291577518784901132502084587918846670040906762980320813897978372374998017471749853680126420075245232739962683955393468385993232843398448534309161144590960068018008750689925958493026642950765266171667914088308116464508948426924731029189729577015097705269927016935325350213395386815965571437348522311722887994824718583658834099419112312833496354746625109810179413768920562892110024370609800464993991130605718508905357937726751502001398197351988103696414877051333051507567323614114728835091559556171404290576288323056204441930999200036453211425579518428909448502602545806500399326701554232596285932691958856143394192984242022319564073410208524510743343863548530768673706577972267701175779716223494091348246463748921117201094334569008567097761874791669376998058664905249510254352591118229354761979594965185155838474026855791598952856117755183825899077865263582772066578742784760301899806171534342126383237853910553625097897714530398874859643043158417641952161728418291652214436848117034244195119228504773497990753192235075165036453490163684048892293462907045308010482537072981951261994500313833685320193478053464029972427665633515093587310966420802852914204526370499539735887797932031328943943597022493215616368902109928239425773474988571888194254937256118488554114937155145504150895840989773460160447153006865540376071537994640350264980589367347232106497974904667997231891717939479824819578633771798368110489917263715658311928110666808033283314508641455498663161802359371518462184484112759322463400320916203579473623649919210417005484800867075294058798346683180536652838709092066790622748959883212659307761320581149757652724736681627396611429629729622300392760510941078010800853204037174724709025165478298883679187552630554250462388940919921245466971246080764226177776825257707630151354008303281172038568913531849133648994859907547535275649893102606690875416742353310629605513287651642171675528265076632626251012692028624828878094703326060750598889185712599125364641899437783748690947687715471388239994795514101178814959208056597011476082320075981991553219101585747673974855761109589092708112310486790284630362024998404054240449894650839178816252466437007514008556814045948820146831983769578713209261106388908830484742474536624733142941047287858591365985616143592322226896104846981436000170387581481558016498015572823069915750016470720506018921390619171459319475452942523777487600728230482621392995290571246485333766838322230802088269043572411102971446695061411349620978351872687826854750553263186009630588062504338372990481333411621687963682437014590411010523837679011309519290604084239599233676776407166040941535420907164885203390068793151425684332251006129491033680730069490452089700765188433692939848561945073441110936032399382220511675716099395282190322099669377361059617160198622114682212657936626420421053745950215475167339405369536463297726966406500560943692942380652421307206112433502387694949872310112376108118493907560361073031229347911240265987161342853179601764809640562337221035073089954499923287017462684443890340178506858945095239485051873687783645471785961571564015979493695254883457564119140062576869374516717208149294677446570634962162960034377846200145054603273433345298435937105416738660143993142409697310765923900172716900190977418742063659891068669271600631179696470221478078195704414550294377888771264040135328756945868953406009351685657789370661334212351163449446664357539028626148658710859582025056339218323719964545376918825364098671662578063823812068495613300132307887634491814948761545327529005029006741217955390547245627304858170703196887181370669090401625306502110940933879723077228050834598989152529551560722907357111150691522005052329351636092363062157858705463565348710294302048237947945758510943709084787748159514810322502099112604965704739405947176018536761521129945386440949688687893224587007363795444934420833980104367619312799290072158566675746420156871483776097010090235993217955741113684116109874293973103325289791414635643624474547943832970619706542880339835793707947786635779126575467923994679502577184811745378086344072707333526934500233653574804404741722375314123816012114606998103448430731639512447607909066428475627745118632115474684800540958679305752622363134080026571230151000791792267746886236223265361663235230449115172575820411994988655807075804447530096163871195706390941314156858546315181518392249355771836175509442782457719816668796981716301310858987689919069886469885362934220207666241820626132852427585372766036638252274408749161231717177111626671602039982461085621336767766467672671932910331332916331466562447971395379775330516875517647889411962634739797554505102684907394518329354809342348337241482462844709180160798001322390171001025001137665834841845267548804127354230993126814974498019193259932419471569858025914528778140539399071895119904018493874161131950846264705979516919087668886685639532662278422411180996589206950661189911022382495215610999789138996598956863021177621432276634633059940611024010744690396929381628330020438626966282945694838299529944577932759241427985117266934252618549558617998187399055983608249639799722105610899977495903815707367408507676858541630383678613489540928320300419851903632301426737674680172878076846585422788969124713209919986479527913437341206500177517752159699412958221013854739857406887962220466816425127498023932388857523066592618589421994737681764807789255912804092044813883172013665560305003113052593564331939370873122426025756741463725865482077618102460596829515776560661863986803471943595727963325123968443570354330099879577585215389752133295546522611278185658780061782948801257390402651282018252132027843054115438929820793716207144644176989764835031943909787744763011177943148273023481981988541689396599592036851813736731875354993964381113280582942134840546492614979850796397637748886102431305764188148783133420413018683585770848879728524456741356442806272889175399868986004418696398141327813050756159518222199291479016399697291045573473659840403229677604378208955633445269936488081278729391175619266200600804761145091079414223935632947690347738935505515483894000841607076555653152952905355233744496502433908930933132397317396079458490193581707191954795173100966569582706112535226525832870243802512441285719653657381523153134870085615736911717903237116467721587154021435093237698299089904641511176121806037722604627685226514632167906071394155930301650836741021761619747779351152247222942874279140724958419482808222062798073090158598716567651966841791795484131945867963684621146684305625524962957633427402027337851717858019232391347592754821125919333164354265022808553535255006232267857501298105418648163373492207007637246645138057019234313000820010891865455849040706048993870786854621089483294118084105956822932504169306575779128069530495076136290499984431359678190123264925045552286336240071663567191245777688237759766667039470223202041791788326590014307437845265411834878518993279689273862680141701171893774074632890566246446401291268537424018023719882532270658217073086496252503475803669569395872088078502770360242230039036047772652351799073093716039488098710480457839795436180187699082511088857654386352349013066730241365614778618212070355670161037880773192223592644973642851085653014231636177622461715317057133158353666436741193892025751430520954922576802822604332977604055020151536353380184793694942481529491760502061232938849184020415065057662590545753504415681865390026131686969643464498070208933027914385080066718988892140289912906709408490081300436002312896450866212213723297891176875437536061362387404904060964819218034438870999605002870603895822974674877516837219990083121086889324619239633850847733622178921970635245312253538381275953932619922364593393205099705007267063656016392198015319027237732306294762437397308457556960194163328942947459240010373479169518514162667761726426966280919362523120347713629398545990871085830446583893749915799899552882532973549765821128715277335855968684940427888909880552810938991595867542365739310154300000864281500100819802647213701203368484899674669884481852951103324723232039660911797707541970882621553965352737867815496574601521635551394506436022118997512105343575349697732282254505197322514316551925349738588347239528795253166665278737565263129756244325867306938829011677183121908377276079415831608377889575397401087410854507873362097432269057909610829237989832776332991571506097934120668238589898033372183977349759271756687462737311827454909221662391197624933815248927272905141097754015983910409003940649973936565642074717856673572510897667854892288430886488050225816445910768856486407562831923990762472644652957298888555470837336508700909427049649112815309289748346183112426101137219324834083868977985115260427828475015910490246782005072728312751134940026314181554125843584723976360856065310901127558929469557146649459307432183143696971461544053274373901668240187719378374511364512753226022308818664897774550240219851906242264107696484364310955455723448771169417560662817463870035522343395234976060373119858875886420865228050119615880493564674523423593758566707245386352607745937576933599931524025058833493994355594312235560085221828585627257547411852453238514475084668061610268742838031655162485059669459445978592115234623836073987803305766523687308221026243318214334487533903100638102599266370650151924948086810158754680010870098198470357340661254147637081057522033741050505534095140371753715186822647139202488563942459380696535478243586621538752484570141683879693415382034077802613230499020870337798003949191733732574945572360327595697015299425077599214640394628439634183276975238254652714289001034539443276843298605301114163684271369217136043681365735664802283844281520656391018197163668650334773943784302957957547968143160863737344655722534813558379991339188299545544652627096748045684350810061274512099998155717217054752428372622773542366196684395929461401208929373240500926025979183138748376543554230463919116118690148495298061515674763486755161932047875775503950813679524262885621144132114414842293754572191350707100227472986303424699658976717331577925815550365166953609984384873689008752802132692934213538317928690340516630902532986097915348928915237695530630455627710419488575611202475783047624889330934337243945767304655466035138959101729425637497188071935936779145793112766671125112892488191858971417977289553439304018332857245435116417947248040809158755322239173870963387760276350541034982753337951521545188605424107235629757107025336287705859692736828758414646873939509037192384663094755419747035977483621823293671749763804046353242181128449525039446553388598091992699999374036692868278721822211815940090098824025587927552207040431161154062956398099044629809036118864184670945094536373535169511229788722142056527157248732484664553891063645096786314129448743152043445520716756088512691977420579817701533701651771991844263200705341218156246530855178154606925427857290330729553180059364444061858214855252946416750564621740581038003308048890480188649869596804088047571792530169886427667424705077169006445884778522323049946580236466880813639882880028335574443078457277833458559055900975064097598039744493761421066473095705477724909827677212640905713231811629082966090044552719274860252808006430783881537188814099602374480288418436041276614445950570602661195526863151125268467980314608067606078621948555774253518686240622995654352961299907146190394524146404352051794354311157509995975869881823862608045071657366631012484838083567332698059225818420745149843805825004861582615756436473692021617041731283198550260398874478356620677221174572572195552323049908893852186286882668387001814395451846285268472552361711843371213936871590893520337653626037054469392869403341691051283248365152367492486762428275428773422761321101521971706366897803461748890919111968765824449461345647619932997297199661767586424992942630732478122332535299763551465078905041451501926892885070396000370961213528028689975999293894738338820824304858675256412062648270329220480093202537759808664664012313118999339507272222264336339121102171726447178091956536842184265683505727887126442923475300805913744409239641252417043338118566007571005751921656074059193148250854877449954451294574079518612143681144047051048401220484496959739046779129659153845720128779358206194527629108668595651843572154250103153513824345495412775275566920266444839073995564442776316483154316601294559948512377356836504291889435497651349500476270512827287750332860889863122321030566093623287277617704910891167523389226581998788175483263338668871489111034658739605117046158821004108455421341511288586081149126218307566280634686941740847852996392379768682128594010391180727123317138630174050390819515784816505348584576092754468833213012786129263556283610799848509927474264606486510546379227091429234329618257517421312927223844262096530546215647149837601459884778069381956003617265904659635065038412953143282832221209230633608126286319624018207157639277646507322522908713180335840044782719207295282617482591771657346578182970617205745077382459829224718292848002205400771726013569907936641144661139078214721404322466395297413680390776223781577787369774926933138381434384755684862832067965966147232339922609554366575822146459078316825120108185835133872568509530926437165034049952150214989903677245210185511479860293209113281891296230923301270902404562226396273811138287088080449376302430190122196035425121111870307129254317620123924979311217644090804188893843555700887656334881983686684845260982491378404627283658730794771280870954352294364416465644530079584080310749100529576860950811769053487199176599188067687042534682074225225221573398935398584595211651030505254570710100300368748052061012506633268183602424521578654736986898895978234320828819772176929661984717484038286981162005146559520679983568132407775894265990881365751507063296470976527301253528617706459881985359873226256339172474985647154083143840884956758578311841906316850931367655949886945172986841815229926763644672429165458547720875738258321999964655946682007475719715266355256445013213652449403016062739470119705402663206411878678736239188615886705698038449394635223787955678180730617345592854087997630287291181845819447870745079299235755662088256713244293839145366381706827624362262538043520541311599277114439943853574909346233510558888138324158144317916284860152220034236527807418826969563036229849538647652551315720867336878532151882426258524973408813866470292158055219830417800724562001429433452917429282986579471716906094205877112103903000015511315429489411443200940333923882440683443284676647195563711831824468555518539780087574258901930226385472354211298995140022060590670222553939282344791740128918138727652236283912835986902026773385525476306254853749914421780019065685849496926289590719828898888332832339836916597996611658612798394305243336042486474116748407055760635715722492557949991562996712195878646200606846165766436331237036543128323801691760117056160326735174665608221144680386725549450170543758454788893337614486519848518797483176527473418693729162594810702229161333531221195075773815696502048661151380145778038059078556173584085225154696505946692466257864903179750589367577407599650466078979154062603109126415792833538376075027987917068407057014560181083520207717188113633601847419134587288375528612323481423033655561144443716835938587504356697295858692471996764077164205870802738863857497485174449517765008764138014568760515546350293094044452693851651450286954704529639285668046543594957776713108000704443682813657667484024162434204491858485823126083281949678900345309262372705193961130632843399755088202058165308147841360345332353610426268741140718613299095431624232208207114139288052846092074787737456496771340247855894633798519941600116285675248783111118954579260810337400285180500759291211156889454200022830914918093995886941413170435483681744678509270589549994232467759288573605720294009574854492409795102557871658569822302409728987502427595652871873775563016883848376484135382624501719983482475788426415964054754578273997513039174352514743426259451345512263855476584826538218537013865789615990989723445410085770884470310720348431067776065785675702946142311233123428553353607968676580180826476314323897988876522427134376847200515377388299362184197542822955853249375537715073460368374170666380497221313132812672447132284075748960833101530939352593906481860718993078736061925498526494952585456273691956714574139469933664449698165110317263162925701755801755488325132370334743495918062468025686703081820023931082236053234397836738165203238153315394068528420732910598101529650358111451324863951782653484517017573744174520216821326170282935280181496269144925236963902406110344794737003595597382180408999105511597415594157959891606351902400075169422301329225166477880794770157992103704246445491395787353274467850052846925306352754787183043207407372380736136703751495315223612467713441641352018828212827567260276730209659494282001068881824559526407111519190442806280289333997826553854747149866679698911675273285952980940678374278165024142631833159212429081972988194636935029124675267143366575540736307668285107967843903063169259120579655351563271016544032048399856106213217879498486292984407781455037518495580291215192823619637915828675652158089897372826570217446338714564201240803003728378364261615543811244016056903066237199445246635721107864255676098490427897666445090708878947299734109078748016275576683639949009808365855177443905294911855070494524845288253900730380863771751479034638954285479432865801997240571545929968689437875577624296627922348033004115290053916927665418530463527056215466666293807347533920664112412820271921046345682192190031099852553953840003405558206182071004728703327190173986598836251543148761513462289119420843306480875906513078519428902881492676645907833558402463652190489395669887183967689164346605279626942225663567017719731332078207502466602098362340439490825992715988199505957458698636219088454275747260260794999723040661548925436603385374636383802476137415648385304217099714668369961886756375629370880341122754138183756806716729820234259877688505045871206637747392497140656006543977712580575773760754232401400922360098006106926787186274263554835525162869421338861412388272058669564029714137299857353245342372941298224244149621637592479957742546579586134106219402306136835958777159202988236380781710985862879274620533531688353269642412647583169545256517484016105499140586996328971095735129059217075054653087759092725778338600474155670853339813239021691203765381048878160686874739122456034694285159528250483720672390713740838679783341148603163537386581773119550885944550874612453133592874425043108356578552005781768667091598439008925358223904449970766394244336906105270736831218801520549009686613470661660963190006980955485879494051983452580941294496320052830189163306493585435454541281908817958881339963550249618205242896741511045452467220870641156501611775160383111837789999299251491214020970796321455307538979551131442084193561052414235666949286804962715506398111470018298823905982470566566890073186176592362481519822775271948486683835200946908049022251793693397625989610537469445350520986674257515806671335593069280960255225500996425912068640104914434674708218449064732537853917412586511042705689605627570530288755498823452958101883650479260054167606991641688593163247060241303755878545492597999725997347869939698318369078552248368986597484438452916939646247032992492308279537710964390210088405257338045798763811273757130450710151881363331129188066408960093753717993941982729633876616957736476442232353584171681212473046738107690100047448159447482068633779391727911793185766608550440050073933507250508401026676297769707510693036807645883871023680120534560062022375730692298203946822251525264668618124806576825286851400620322497733419804341972764049236631894753957834435430402940203120600245426605261858612925371125225278732984990720689489560292504329890505551882978995357499251408427725097527745452847328323334500388713520158820987171146955681247953098222629821097614051963620256596106162777286117667126885156115770167142422753796527856163846217831333078551155102938709993507992725859442085416613233514958363445217023213695963438242966676359191187507472177958377826944550264760992397561265394012866063795443163754455114927571431324647639780404093962579114944300190635777414954134320836749166385995356446581980454240786979804994599780751010540954152112383823210410010080838734385252101078056896719653361163395991211555778287266388797479336118148248887826604019320657344625228503784360865779267733285638506905094883378876955563106021668379892504524723436334583476110415011655681559877332113851900665647374017544877030356539410727396305877579721672505787059956762446929379366547291624520055519722619175996882922527806894925427481333300797939434971817714594425216237931658391798420384974967563867752611184862544517442335210793070826876695858766298807770884553049579771450932664407655343079538929594692603764125516766230247253685445624761190247321035963136082267415032350412754648213012998909725675298797165643037518186496485407084042854652943469872712253724159959919138854904881025772358138015672982014034358835303794083208692346336684512182777965542518740294686191741096151196770625696184803516013755839843664385230336174694700901168181787187690057027782526778152117516875773701162756997032651798144347113730481663622211051893226799932969405128221210862986718282763196032830486500844950387916972031929179553395275815050159981540993559283825740864149040087447231559255638535148033360276509526075987622610100015270429242155382227191121093003317083646598381457681125129732882770286463428902604127798551335249225611205203510645830132525092487671813410681119655240337630780575995082861023704505575111634903300534621519474022209623049154804299453245145139998204526997287297160461521731672900626712112196523523042370210836345290874603871915363150617780500400079933251299706332371861587016923621735188990585091249087245131458222494696440507837194585629605494301298414714120195089008192817825293405831252407028051105539523189959937404805339333805555396582613381321843135977656358174310021923814029619636152436829582552075563173021582964019105080678963989113006480244590610156453562020789144616163454865600365834711405214242475525279336481124605736440353921254688506940685739652839141749594888345992323668384512427380497147644654341380578362623203292370542350451892035862384559260226987748847292109531835157236531509660827131704464112261776045904459608367033317233111844932573253484196645507058556623480763650720982308397347828553169021456545382173734705327299350531575245847298919930177279496569265657185208164617089608518735218206748195824316582573170021725486073845198146964867654024580150157226819403122233269299660877253774142390439489179212936531438798038117175845068627905262390632994607705811981957197586830566765698265649710462346938207117127428173654215017396283844692333285741311520360581742519324780026770647391163353097729369968187699785252518192812365280531702690220525937411515934700072951990205190885217064728598174676131700744358036316173630789014076440789043485177031591575981068018546978217697547138617422809779371207659097364316980948224371487399945131103351928545254114126850793116429057324488483880104140289717589596491308346101827221455200176858991179907719230434875622436447472240202621569328950886605940467524197881799936809112925602136339861585920294885601030540122267405221441813186388936626092938626801360332465163665861847605000055305359032169585256682156436973773438659829172123238462311641614541177576121139273007308640649268161760548283829655299433237333504359860569606583679429715105820572239429327829780936975706009533111006777345307731112281782298802780682669144247725839388334180962516386364465011429118736607759681818279323869855738689367412023979550364537286541154081879823481443323801752962515322019272020585190221022233903808258669503883933893703287639488709596360322466133225758324003081075669798191302878025953896079359497061571199174752448194049850300272593785943752908943801553471644306729036225694130019296274107506442288848038561387274437185403857397105417063720738827506146867350842207703342936794942566592582884640410425061241468197555569118064653868665786541256244742058951821487288283190167763278691774785333914529043195185878669365416116054667667985599176748340517014880180020626076976350977807074783527734462129261740418348560648372451327204612420544236963799418602687611832231573435647902778655650963541072420903578811382493655329260684578570929656600801339520100051250972734750189853640017212037034475780962331107396949829226837097958371110459884094358161901634574908261575740227396245881996848062851093500182970849351149809538259735286973837483125490420982932792083698092685155247713358391464277947961037138325153069507667134874543755346446004132427278712144662383175301305124200485188052080199984837864334187155730249338850229171720733541890040926858701333167478704215941575490924440024703116336013053829135818810851463792504982295706969920929659426250103305336220453897583996792306712661143095386273742820329029771573096755933956971732045664185848076574318499962555713986799544552200145594104653577449579274767470576055139342659910856651524708905059847890384357401908385441067165063373392977041297666722942489910857299685177710178933303878668317239502505734220065185364587664383347794317480471491872335898558441769653390492803561971890490021721717009289099347960968873664527976342055589763877231910367704122891051547722916118343684150231043947700408906397982379996384261926691584931427229361013175726822749895661148766597039405748166400019501266785779702661093509475595530205260197368587085725871361563650457707290332064968671125610285947209910448229128870794879858495566471995671976764582782865348309249947223166493703497325782464936169234494275234890284050014740856773184219895206650715589936441963129691930886553555403763270902465232366114133642730465565547663687886245970150512407697082683757551787486200845056573136173605493321253113469398103618940594029656322427018481628673497679070305934927176706745589050612011941703424529496762069934271047889012467359032463209394283995620533823269309933796925882986361048845416476063257055365640148745531630393951029567070209438765634639917877898703181732309870163934131651352160841477000369355419738396118695367451541655763259924598745549753173658843162927965898876306256848934034463049792898023642725551286983395887886260913376332036030462930668602648902489491719757046531409282959923578128259856224307988612602199263688903666143517281988356101493842214294796783560082811381335298392004317846785129367211887330731923108827578006464654550799444150982436365178663624271526964308083798747354248755125963358783747381047511344212495134745463674314557834226423230333888437305156982586928119177952323195713287200404811315865651465320606015363854717138408079569775624485200029874816629917038737006879657127620409488992072803671792906900775159679237887347354310798807411247280367745244018015038288436363055374308295764970608162474383161106896889007298191562661754572893605937120438889885926172843049405533514975852337285551664376782889067246246760867667979197379779733638593354617913310175210844333881447117857937439648200067484279826633734726022079956294781017643282068791576128749673878825397117554287339440004816297834658586884052019827529643680252066220886483140701343733394372909869509397220936780292790261660548970098697936773987965155969375495956058761227381723766364434897040831150896154023880919576876128773881570618082134722438764723683192359636842460784438584069570761452275024780422713530902771191993133906142909749296861398148542327209624739583350316469827565494766445631620841140508235149656569981143148576179271660056083675241914975665010885817402205654147991156611206687890685313268912275212516521640413950561367231565837326979980365019023995673333556542015881056730514941019546243180108701528435427081326152204173517287789966526612018945302464935050402522110736435975410006345804497106989675587140149894630497984178314473982016562648477081402792287466471926485061820591927399650040799311504282105081478397188275381786591565192209367368846134352065909497555436644104614871364701199072371111681326711411015958709349388752886166726992405065488106902913386521586199929236107376971884707614795933173394857123320419189933913322226228666923702777619313868801639370024629276409327768013386675585500859646968466371610347251529178936148170752218846503808478951037762308858199928921174961035982416228214485054524653318513195486633734979899129162482194004858023274082404223884379163595334803145111978803141937336287076278095792552008839538682005228087949438750661469702929438184175926149928326364616923300812834661142377422722008185421687127346124091459128412840408989850990461049691027633789203677162941155046827667959695113414552655140395653704783117886111332041104076735921265776054345364407074721614210981335412364745163464024906422225998044018147505047866559880722624820794799822090969886987977132142761669274443443916226070977569214714820646367521535322059445689175057285380314321640945852602691596692063553064928524635305073372517845454027159581977297687984615939867388314663471016588847339952195864961787546623560885240073092269081464848162093489554568726187848767639889200529037794536108282134028670783924284669221584951622297577127022026128826214903925604911514308331434631843619269238188744393955360433388038784342338336596858851449224225184508276849884321528670439896810812467854792930781633939369916755679385801439424536739120975891045641476359104535274771825717608056926510283547321606809140728235311627587782701411231727184971823003565000679070033532313719341141448843984877636552518111055965588049185826248770359971160516225774845566287110071445146254587035723497105370528128306246156489131098535844596948973836037868890350076204319223906980573000022326034028232865181309947878464784892929563466814338103618053817052440702940394787341240506254814995480478468096064643591990830219497945627248650496564283168225184579734973419855782602523108895278261936059126277001351670407966357799076457994547657715046905394803451152510437895541240410736836604366026775194880359540465102067244677871314318291224777611592706077800406076643291107395192090747220011987260783588590026077353135396174352612461222498056642910942735731639790331751013302878872415086756452703320418945786976295803652748008266889961661254431892877509108337743164653795520793104020799580258757176149404442543649186417782527208080179878456563928306004960847457854948458064968399827784763233734152493011105986143538346776944164851462508756313397020236477080989885561698772536409875986933693778719767517552040792372749640459932597715460831174959986126228759337488346622585389680659218038769073112816974004689896713161377213431543444834365862693660615649165841070177481338403785640786702787111977156401796500700816928490699928471488563296351691781833129781493413922517820089444501068095455626773887691894546363881179182600605000693812807965504364652838736263677359475566807880507063254602313151723372021908044896225415791366823538101532468949590824056239649520920724153818115587303524521548849908240942608657070376193212351473079687743778726776987333406949197141813967330558681470389775734082596936356239615393465483463719594203440209931414992310300747749703015111960346694193833894446540167318328377408645406960473487879457168873478351384554177728585599042339003771601225762570522243775553760671803077355649631373806042960489889682081265487277296182087366887373622051979485494624957760013866964372372840173753274252536992508765022134023930533922685055293919209058961894249214342643405743679855732534639520936049190569681962920569829432695533186565368134249734260593729662187574459797847863743308939354053904459194354382701651764750597321901223992542550938355540380981170275909471034930083569531556083552123203671152723571414348815149256410443684671913331237735053296248179951108429418671921212717753054700798288567752242752555719040885661796505583999497701560874146276772277957358304000868096804744067551080187118138252090336989938948044851654389662583866071410364388581575844270461539887849728862379136303991820506913222884459160884433501247653666818084666195049449748145958099455840878494719025727722408702017775585829528738985967846914460144964828734517132846100827904626013170153510635427655942450082176843664862866070969793566655963729710113969198446480288040214202762858025812614375353171588519775776632818579419019336388831866813880543042477214147038887484868583266353044582683557812051613841388437588347294849851877285452315602163257130643266884690338709084293756946260107639216674236654216612538080963142418823133501656089313490855833388843206823145783662472607510188085235041421744303358855467886241830639370728902681942336465874087955046822598830176276490616950225278470527190245380404544070148161390113293683698483112125027925344033545842316758629786853659914191206710927467927133642429125444191431440898366602432426122376003985625727601761922713761394130992518875906128640454957443620962795691460114820915649758762072087322446549543363000365670729029928203891935826136504720193497752905742374217222160294206297838234216812142823725353235303826739263940260539315410155006766647020040715650104013790250641459322958605056091284529297766933668377380931429112924603957462043102589859251272179676028279017442217152369255601332526015238766818819497565217528591219528608109398464483119073048337963019067127306039913064013949978171675730076335048506663580205410547250836590368385967783947068853714130168841809892189584770193550207178195288405175623730203910652994208528740279753540857110262007755148794849166828467063768091553532031589193908305568116457763552749051762046592831244168631848357333314737842760207545121749645622508702350516491484083177638945712851987969681500222525437458122489969023009624505158071109944561967919551085273065054026926133056921662020162597856431716130427536610495539765794590244819819221380194741556483772877185335968754057781867632446083581136578721155616305956630650606164278418881642912058958046684550251680060609799104489601904234351061255432145513886063807917139707349762186156383470200141677530698423289957956231445663880144582952726007994198381306732026276433457108193364609112637382034031661314986827151969914876073588753180969677488533366394528897026562492530518409669139093249638284741911622265412445182488653745680429798774049631736592542694943160337602402457719920112991155503022012015204968118664631427942651223270072308400843695790787396276926597298708520510590157677431325751433696473664991639099975182080587695840427983006218646032618821026324847646429489922222962335341732821333761596730795165015251186100150286495020582628191733717916524298669146021951121602281710746105505829650127852946798888195901709125799601889938458655322493468456532949665211765762558656690776271715941380158862549431869244687923903544049281408524960319642692961494230081732194129540105207531861925971172511600427294405633494147445519865780493594673757716533962345698479828416905445420389100482275827289293280596780533081238263510510974255724791901904346498628104632982258275587898031820820783740669712371904001257060433523971971276698401772876270666014648073470664397664973380615848873115336392567318689753425658056905776142981151794353654723363047531644244047962157700186424859191251057158806270438107970294309847357128493722465963508785402926802065005262981337811397918398938009021866446796789106182944103719216695821636544524701829259843022171457651547135709560664914534021594003259497687715812594496285673965545482138142286985444364896546184794914443998236337899744828309128806138832191569824723281921870028471957521358638826646049872235114802360472974562442365045566077060115899118499722853492983235650794635444354700560664819837297593287293338787608816581429499512108935380313290884707505790496490596974027332548288818239637865084268322337712795710731889833123768634396904601166359008685234397412257690293010831725594692994454296735840458978367086827692548107352844012138073756528472126717904090272716054517679738390216877486307669864925609706371957746432756284143102680621188137005041388881783749128437840837791281914321115112271237333085722555933428358732308468782025806745778167854876600306103588555813345834910558617877775583973151862544686983753819473297310157197448671637794157590772495880728558992177434191552072898002400379410835429836753430072521574053831870132684122832924424710841140051607544940175577072704871863500581963915971046398411101310830706566242114061749805821471174148141844173287460062660789110866149654925988108561906058545678159356737220770572405374051606896871489476043087513436799395975411780293756924030420541550578777733452279221763939798114912484434421658181832821635993314486424365389958555354593235941736652208157740099733488626931871767697608867938026532378355867531012353998722820393241024621289846623315875277917121023682099483498465153188145794801249529159795350498997338713650203963689158827369109418992682731277579280410265102999428846358537858902560794685873595801289868271856600007490133486594274590008031298482593165733816053448305157303531707351918575324313447983260307202125370400222179971901988492389298507887072179326707787643181094033072293548054819900980088735651962777611466580752997695005181562312310417715375497083857707012396154593319867492304259197004151774099977100206571746504669680212984139120592576223725352399293540166503545346904010153165490829437445541258522516714085179635975591403086377345243963481665192975349644682291341585436155189756305789306201675630306590390406053844537175185268292815630156705159724718466234322753401467937341342839654303900929233966297105821825276942982288384969690621922536226180655222146258646321894142933545094698247027644636535012129274700040868284736673789604336070575276129413876697610289249148138480036716834752117919698501573096600624645343408733740549137466998831331702091256362405626057563181616897495183857259106443207969222925200848385371028311176746992427548240182655501460125492690748623757121640133981895416312154339301096933074542420182108396550204310828463804559587275529011472794754050416437547933235235951377267874312592309907754330987340073470116239019612638761921750504577427804884537060152365002978306943065149539233074969999186661914724519627397748620832881781640381208039346976952617211145291000869048996829967684597465207735724618639188401834940833687058082550798924160215769294107397234418999450487258960830999912672214272829093194837923293721882759781529594548261493310635832659948371953929249925829941861421900491119662625895728067370226074523826419513461423545111623218096466780779163613150348160804548815266996709413082484346394840566945478407706537472333129152283217743294521619897353842106927719925559249604675225594536743275142633407478454568104568971528113158224883613780831390828651258443697275221966236118727585415400196794227226760793472814296441338868145390450163883202579596807992872920795809780234661790777612741650101987863170484138427378721493831870032831542507359742503911569496558943706875955086533762648292989130044446323511555890508888732057493504298550625593192893389074721145706273224276252495771412803100838116891890353617366835616335382097405275628801900252597052261651043595196175058122815925145184036679749796390360749635251170587977705369194104428142226191882125602568197533131591987258005676336613086055551739460854174396890677478460050465115379808614336876377577333609075092616715995788619782278364744365861779681761894769041574372958283222621887394159774210474657478879261469892397830628767992125469078283052503635478347737760940866855428959969396642589441625798092647534270933498644601838416224996738473660167707996429081151838484459942392821477801431401688448892818932347542599104109091057502929281441869918512142230457261212306905952844311341964841362876591485726011240814073135302308268475382042477712162325504223625015118299494396990222330021437318553216661934318499692307026621393540349367265103442226651024881349966670252816026286309559645679662919065660318539455815195800939328705007922020666495244029181978935192852397186531499969103546903906910567735461411572560291901972683849256892461511012170924837115887464603165163575744260520289639714612304911130257105326943166336934603658061346215934282123033373326409339106371340973527554306762186044481348988393664080914651577207118577727792095618077716112657644239389811947653905851542557965481045266092887477742380544278379286886042134031613147351641198017348279369710843439688267052980727134243159864907607833042838231128453349668145989380786051237582676951010802534931375225451918293054545481582856977388498921440077235081309680666396211567132171488406979933149010655698183792069159399294002886203532246528036544686635064457785196035463685797956770613971560687226794625617504425009715200632235240014820691065553095199573945290464980190824810076950486794511609787675112738657593247746050370703395048289454772823069774224441099598306991003065365783091278543880052565828108357243204013928893971847185237210873247686500809383951692367326958940898368137878491061453774615021488833071678032886357836198971314349225985494058570536029089172929406296468696211212121086154236244952414845961602461774950204778743246034345972361872945279401409893720922796585089842116396740798638789497775074098181018695097928747592432732537222138171927593084540166546994709100413284480082828130542921842401445902323810533794290864030922722201546146923339770259133354199022059592837961993054313625597038346669912718005399453659835038547532230624568634425329537594340893969712877533950465647847796049451325584466906347915469612634714164977585126066213114540324190471997807865090766220793434973642401181868019221550565937435009136216384986522376945468838069564365755665009263827792600790841990107262262497043308169021624954775757819500583868469693675114919306686291059513600444599488703477021844198824391433836813349626212134858672732602437111391712814171810758171659424180488187637063453522309946218731304364968521527720771719842734767993929881276816388264646595587967900994357891189136421994558026069695162487397520848947097767293025880431515599866721905301147844514239135478656027950192401746812409613084688908125479362280236644480079426755805141585801242122316092265291927048358451547032130878015009490356821600124263420260834557803414120258823612314209711731103191368484492643832974199025883142982056432750030702796602970090141459543063035414922701306485644888765060187822795435889974632521515751280644910507157302850536217636702401447644251515891210857573166884278729307491463459236691080449854879271373367272768583573453990022176149988685249551393614744853425693571470175441872489472331705883853321208853921710826248276268534256634123700450109031342897991168897534421218181501308821994851216779922457697114394566012737943587037031880291958846746698812694228804570123887190318541265819597162499469657771453076842045951406965279203058213834946580105659715695634874881320773282724454523671576760536152049268052096436968497518288219395328817072517401660932840938308108355192759412448045465714636455208807565190684465037731484305760934437675293191766597305263978662056903695576124232814264690842587674286619816797050978559003435683799370867330385866217107903954262221418916289305633698963586825449684549745122315341146558395150425506777277881829665415252158810897527731202678905328640905446303970217835399945415633825929521328147661689067124192287651407702585773157735261171059895303437057644431356149679946539817947381210242771104702913912700637591976513247450469206169985184625867465525841550605670401060349176377915972660773077168347337534943184665232106712138432246300456976674879232642726622461956685279065296047572114220199405793106913834693846780781266354604583424118501537255215089147942545395820810434461824813658122378809556695096945635449202487038847244788588195620525128936406598996658210389129575885209837763954077246805479092611663842526122709274782371243240546394621454538279693821024131166122488957956600338719200289515733174851567947109050043902632527530200161251826974118265441226236077585153229048838513331007711435475787238611976772536498932988084092699908826634761190277126010556279895487731249416972661002374995206648093756752499171776770672617009315153437473099985260593293227331240747411452082376587804287962944445949918446347531858619711926793433196930745921470267138158377119146211336946208826305034612541329453554993232148000953368037814595218816321606945329920349645281465479023078158234760050988454627685142188175447919624432443894772768080640963082968873647699071385033923098357381380753666625348662274946472329373984074225075539880223512576889402430009076530575577847639678198429800676844633033717874592027864455303091343552991033728810912583274482104364291065722513100650450263510089233261544890858571402654734037590334298334735748958884530594630086659953210200744046911628919718674342242136415706287769465370030907620692168733390603433232346877468983845739221935832064652280787849554722759174372384375563643623655300351043595450803971986528393808904743337064390756356348717892853466581616080268608644689793818505735068892542088702994004893584279826753884845787385341752207525707748498637990373140199608814367748868958685668964935366451365948852721673503707727826837574560700349176775629386196882334241249555118612500642584228631147061244380215406729178639393514873630325856003268226964838281852231859432820611209751458717937859770376402851829747263653327917647672165345196229345200811732213449388716944220278870051231304177568967780888693098182438813671932835847209680315563335928821007057030241026025611611060435884255697928380363009557767514540838302204062286251545515888735302891607286895573586157723696119884649214056438764184731830782247865120540897205256113555239799408301729475930159443171565450277904344221477108791466714544568785668603379537226145028458091150350201948010005845434276170371435687270851504551927858255563455267933069747805522530361777318765137649002606891115724830376875499552166277230610410172255693569485384143346994477190119118763203066993080988162393938098338659726435975865404809844107866447712740261624232875563519655390877445164730644856488739986574912417694461855596438303665635792579791647004327316360689099833504819460084500276566738523866832701431372954530382924518763796587107198660670586729468056233598243550034746976458504484664586389536379263900934358116127486409769159758761375394353243666447565689951664754368529867930266784028674452549916157515437096713501149157159641060330749144492095066656369821296944172601266812497445120410336290782974120036310606269481681919966399771307969418896912799837675867497100294116168925191587108744281414051730146180041701921275668551889855057971122024229524507922125446050186292976379528389216412520279735684180132753734481712023112948657052548554301445275194694354318554554096709448426255972699426622518379565126979252266580403385220667468318958802012969012018938174086839131860355665074925486097935784905034654820781701436966103444354593586248543589135799320922448474535125192614118902642259177658323856277965778063052070610072492555452018701947097866605806557283494759896902479640562103102902573245715490607475538153445710762472787691586771810793949926704199689104685921746304858271841776804743398804949879526242762146340251273965244795234336926913361720073964752010973773936110194299229492468942317967764307659867358636910069682951782646821432845915943802538801921026917455286662181393963890303348764188632267004044344274323681895020823246320049281801382474702860532738117564644540464114383043655148433061679017023400799389476006013762409203292076809030037478921107688884592739808717556549589743381301535747650556467424328162509289690949725121718164765748936026813127438066777334088076473546807161676576275473863479540711846276333106700201823899450949567854134409891174021763101698117264741101387128017590078635909462158065314396077521955474660602240329441222247477206294261450998622419479747489114965588509291743864387958641648929289222066390667520349381517549061520038129209750047442807135280518097221089747915372808173267512687097333800460385155725663835211734713873198392829133835840137117455540139418426693993432862072546242532984959958588469512888717066659403244389295991336728838125818161358944652820493896725939237643061651381865976415040231897344010434224141499652942110039568544263584233127754371797136501419185752927227408362125956169324262263596338149982895671336720774271095994123164758483852920143789728746982680257050513373102490441700053317953553536078424181325463085441230124507919620931998409445417106252115697914024753584883881686234447571321196214294123262122975541779495686894712493089131850313550559234875033659775353098376561005353426148584610011141196259531164365231414763191655799703076494678045733189471359177789499617990938716900539766632934540082189896798752038159334903444643658171650903983038141048493604346688410093714723754380182955511968574497548812098051198234446917078154070440011348722770812211872402728024114410142195371378921999294557130775406815561625543593136835491448278092142094274181446950315713761868334918229236204101456997311637075217170422619835248163624945835108714332032833191158149360197931326944952252035754472471454051022629067453601508741228489210275096320089422897415199276198913739046555450194871156617668704063050664061024457010975284063937826257183699054295491508512346996539378732823287820692729038481776139564454136868378775797654254325269601199019156596804823146594655128806672936594787117950042710250820764220479001503823992350662183692338937182683876850343371667001940479982578072129672730069932265533352528322637682703770449683787451911578759322080129246522608742764155878326106063131320599328972658511052479658499840819016877590571318762045444471394119607379594096615997431483712297743630702481515692762961295552029095463960748584147079383248938669330231999634468378313176574110442989810086802234308061001120172567114194109137462402067140221372548264401483233516540224008223475736062353287802425693030286151252012406053365194746975237505828675872225562234015791227985938589993294151745276131546458415154689122762031417724632946624848070936613010464099870202577219735102601160796019751952382525120523904059769648152235239363416181124765316293881506350863264325138990188976728984452764463301968477342687467373300309902279486841534909063316342505570687313790357741433816563876739369884672516761197509133395568362786945605777895612357897249355859615762883896682159372053617720978496546936681700678846651190570701135257445819475693427043575305499378949114210997103180531523342607853172971992372727277999107016696102636153593868759144101890883610222095142731598918036927786646815326604518243261454669042056655598167241256816681373617408288853733627311013620532582055943177117200339155749623505959741591162624316846976987527035125288956930099246562745366140076056007334470693856778277219563310616156828250341875521729503063405644325223915511132701963352540404392494877193890623559654042082477031390795245389108136257692734009455032931363187991994507000446299142847527122588737404076232862540203932326671499939456065447582380675517248241699823988242066506023473732858332618762987888612555301289598259185345382125607698373405010997083777442113939235809614090215102762669194454984603637793018394567309357143697842355272376311860620443125860205952499836244807452157530815295774823273063329893218448055831666016550632704420824471207169432427587046211368910612376066318823645003428377633385436139728092548778683882580535550908650237635192325241114232982385125074174230654059569383053271031617156771202958097162594929940656546642631536366412525898266760841691668809976923104343125031734025458153486733610473250119640501053318644140631227582810704757204606495663463515033821037548091474573840376090642217104729936069703740245697706567666134591248269734938708631828188877417570395794216673282211481484308218888852941317804622250566510095478661931623729361454796166587861583770316215642900662801740454151128148559865132835101311730655607891569735536205508719714628246149871294550243945212260155432216825898808545151135673215074131444135453288290278174995247596525568288889065502445076731626659702361746358237390732688320596977988800032405943876160815909194198671681770697586535148748049538973163361461178193941611220409910552539195701370136791395202692619940839087334898275621537494744619362738184638651619623328490512143801055365612522965550348455611651385709263083257769559055834003872338335327851865980118715113661933084309018435211780309964228449832116901215204639153584877599488502871169633260556891550883490645610888911580880514008657084771835839258620346222980778076865471137783173049417193843179158354061904044845046190377824845981970254044147565926075971563718298259756121212506889048257559903676603511350195664898735465669935378007532143568568566065722042565683922698092463731166546732020908433675411454350154734202294261414717953315104510755994093207290658560884489385200969398925139689520832395808601628300942741047449138103543794778520863157301945922283640135653028854634266946565743915448515913409509344425420655591653872800280487895197592281438670033449295720176237906825329710581083958322588483299752093137529164648607572107739947610196331256303268124593394843345736654347797058506198058781866600980216922069404816673844399187013837402691376481131637746391756083022072199948703003301459555476376337098442410396513116203811580874424498094274852725087363615371491632267483103092492815644657780695177874303588231342599863832341145953657112966574408856023680137074567857212646593276615604413798812254063888577375670099136789722094643255886095499087784527342969712558195039479458042563520244763295728317674842831705690863869015598580045304254475352426182277999940048990844016656052280647344298053859449345222427332978648779145780467171636143029273542327002969903685116473735552953086449256420581045523428415450708186784552264606229586370267694509993651722416076016644132831397335931381628820507447463825892440671622987292712250756350740758918905825317590806820906149962978636775741114623113908767196894036370954563166816051776237228039296038395437720540665577319903863759926290253883455949573003458497530723040409643771670823500616230104161208681907445783285972090871594623425534639320959215875543611244741150469743064381834545672407783881673200672122857593085533189235537031526996879690801620941156467812235173109132714732046351521035901801152803474379425497619963255328287075997801323914295658735369808124326726057480307797164492838310093842821663392100728455675104321944493017855724206094017137319740251835310474430774787642707653691298501716685609977704867243187933733239838872857112917394105428706893995225239556607402196894071331963038660144512905103242953221338609803432939565566059318607565764903651183905478116858073343328310320397762613415723302562347956729561422933576215205065218669070612604217019685201949727199815551662101818937479218877856419431240997175524383923175777265306544379570645767054490257099553681240488751979095285160896289707517959401103470718531141927979799680255398836956229831222824636703455501260844582409208335001853428815630940754940659228977934723360807238895936889754833213893910103702527917440872413287389443462933748112168156189756622350687361567350601588726522973333130719193640010127640650628172576682002813767899567573230974378258570633804201239575455062051790807957311270268324069223288440697075513908065583830426870317290303659874695837923326138109658588313423070506873213778144150196237341709617649258278219876748552159962392127290024428276145098011732582392210315432773892692131472663484408991664588668678154562503336456951271270408812092899970656756683753437843639654660867245812101415960907143884350550403010275606903349780770773267925153027354023746778900973594973159741297479578252745914062001003637758245909122264454076400616759772799141564158469320555606391754019995570459907445191653380899105155381765149179686659755661918823265073910638151829124413456478052168334497679222039824733370688090169226158091613085976389756370688386957452114402094183967737378049914056453469101761932055675927651935182468665324162043059508475418420484914087398083782260988364800778525109366018942308700015169781592457508537879235354715718669738066032136195871053877425620971888960573385191819681502092413067975074267609504120581631719582152173331265119311856518889464728208450793910427701199348346268851383895451918558589103475063555868176685693446608768178781553657690860904582205454762950118274945155960477847236921846325345953510523674338234215557333830734923315470973496485747208445189899260971954217929247753536033644717905257894638926587372318623563299015856487085846507472023535923087697758905841091789206839497467432969670901663853478099411790154230458300534595007019324614117808618281964334678203619033324525012373687624841967237434182249408553610054646279036192134345920270645672517120714968567238387475636592398834759342757414787321332910750536071049438737590918091982596983497730696432875139228363120918960274690463337484488764617677175420627861842794443111376362855676336559481808132971472405330355078009321255473971886302239342128057403519171071371004568259156341762121226100525043235336812240424596139188586206134637698774253812812960491511451110522104472652125381928097253646293530998423759658945156904002719492504818984560834264082134101479540826191238954299486389568969807584137129673478951338123255345544256098482637365132145177493667234142879398002875264227783039198497184915729699134050142938928104702310323185144529586073393511859047079332246557508249955269116769793125449185564226972290213894890055694366062206066760103057509796179971508461084457849308955610380351193893502087300873054651776620590118529074631069707815322390074383511140839638182572008431852837636645408133561751060709900769397574539527059622015523826995872222984993724034656620854658813758487362520562981864776241532215496138962916420993854350009064892289008424339645144593715790358972978865129326032046673055711738886759010856255884454732486652403671152737204640256217964527617043326791493237319098226024430076921753054860716119090014706172566073101241655519402535233961108693990444763183819114233305684151024945026565002871622911349231059160128576032092318573960707109415511913744006389891740619437984502278819579412329852572558842579475780126412734070690802200484406378140392509622662327428422682967961492318163662855458172468032594825440024877896354824154594455655775093667519650630747497686632905657429395344694527056810336815538056962790957116276656376586652710530614592675239913533751588181833554437631712996793555911718292347748115856988997954831477459052363924137116833492186551150104484111560711760725798414596928185321442398722253543093208261087393562919870909937826812197626404857041983875401411386058800681128000568439021492607592338040182319554441784164230196481926948869761979440918843882561194654280844217317693212176959445210358916432002131419525281438191863115130138160307446239037253270049785020823640775287985552454977799785354411243291810529195388697159385088555577417744091247512113914842821654058192769007459002553963145830718797947041583650717049563221334101296052745341640348091812409030625388024135835392101564084472854985915423399048513830657085919910527844025339827664920659288834739493191434302777385885844057968625699768827301525846636733403328090657568262677530378605781444226401844709501392158550104541325148982365748091684813356025186913192479964232631859476307079711160802038066557971254799324020858829657210843959630444093147525137464983142762288092409843424201908916592017867588916871844364205387126972195700442542061224034394315002091715977879575041157440467880932738504060712942358035491309567294971140397227380357311660770616578604226102733887637059154670263511124565697722910880021181791275031374512233382925488962367927995883930662563234672719512360866520869418273800333713899062743139532912807273746867054730541753953157624148488168170219288997873180228102544330226435319856046442712632239377040366574687252578589176682767402494585362702472089433374815727094693541731670054162739640380515510016518480678465211652829303333005542404841759196387279363915898366800556275697667887621890762815111332648884927819586193265782257152831557813941875215125789251559615082039632330892811735692418570813516223182450378809758058518820811628211313206706105587240266481377655652737303806708058263876787834303596610822624405473163992169370145540802774530343990619945951581367342605930918565932707163053893189660199712481190680088232333196058221695794699344889703742708674804797568657669519087579598420865395140971195340865549353551630065752708635779015941812433961562586851544463497946988766893529664630459064060363503968662348014382699074913321945287213399142917931268596073721964438661631304869113341186515469675988780923634281438879974602105810037821880052863716384768945953575378072733579705005307146851198864393266079737175107678168691256774767473902886686953021662650640869355266351732551436734139635269555000236888349335659831543507554040513340582818365201579631535205687608686168484268835571190895085693156120643122753818395086532246090058015819121510100405842073767883415361510998064936430594856501218392953192681960061592039340049278997914005855192824996540505495051355149276088523245728794706281615202623602627584100234779836732840335743319519157385545257775281465601995983460000807771606515353054788412901766973266005351900729782313987876565706663326363070657272202158609872596101739824135949451036615528984146945663441126188406087438286744236082757152332300608721870840394312910741842175999441811843312345366415184505253083753220679495580609391583773513777445341541305864628931867626249371336243972971348834087248292456259612839524859377801791320399435166123707931202071652677576280966752561958522317826280891946340127758128423124887600518497406244335955496134283626899153425576410568734574513896803122219721690377513547527563657044480246555378439482651572316320031476637514659699669092049378495405991203259747292465859736322429582269441338994202677333609149974600125439372851962379908829091259417350442627267563889241759221844277199645989036174633083662947784865646149913599476841039397572495146844996950167828056555533552231724001764518374562219815457815789067289924721271511160041690170730669404033639907131326060423148218599644099940576611347784544872711044734674017458648797380358762029906474949290807480654991718898316452632582494486309532612408144683410446593136636843187721162682251943250513258221586586447218037078590390479990994215599039059431422580103117928150151057836769785894351451553042392100578787004036136624178235997926603520934249033539863199094457243751055995961321877244674808189762891255193072074012509160949490474243031266606852824493810211348332183677584846348132754013766449507486219907265941790805095034246079964656560134721347952259828239898588701010199546519009516179956337510424782495725651113663670661224519281528536545658671633660529811673396722747231556193184613547521563079386068792484992798795029270228737094325434332125352198043338247519733910265141840867639068150166381018331261932862320353016475019256877266304009766949459783514789940861266267845099491326787795181769855290710759566183722008444980652383174486236103461363354996534205452173935298711767496094088091265677711300393464625932129462393612635042053541157345440019710889000370511736496277770621291791155835789482095083511815839250669180301723929320247632809380176190336167309812841849765060155811342077069217920283573214718842230261850655165194741011105800250054553167266104748676803555584434945456738775740310581726265216659517654585325705615447624032900652299847904414738753337013093306420076160369090000659932673361235366012767049209662112284669094041084423180010690019938080987858831154825540036016045386911309310783707673973301149197545601625048818614560948957475443912008146278301451533847119047614153313504744914616579017151856939459704856774432792736608459495359190174054490741685533834495780156336038818633018794410131687591300946869502764787553157678363344983401062887290688423874528524002945803683106090189113375873704519466825060893109581216378377713012795784921294231860069162797337550202975621405887381587349412582104751870648722867441741100073241007832022078422120352139685405782421601867505107295176730274405086586098515844734079427690854717117534252066309349320854762547889155812900745312011936146567860916872880219314777983923525112652498645928861686620350893420013532535164367630281872242868188196806039841280611025608910896866422902216212559872543006652220457770033013891552403056885932555821012212957430566540373427307241852113007345987091393253379377811995961627879652789746431640102521013880101659300933279374274878519354511280059756676322242077392428207920908086110066209956174000205548667857794153484439976270690121502080756258544969873917671371125186682270356393015942008952405119237510871685496818428251405826195280192830955604431864140552608130826214617053403576079694926360078448515474802090902987565813037528202054904880237397347313336928832333014110750376350683434026584659307788850156328002361631274542753211094604552157554807977524713183751854462843076093818183233581127871894679861154674164861360741259988051737910383749593081964953187004532983073152300867306711169434254639687689289237977943932550416311316854544852686628727999025519305937894776885973143886110294902822187757565491539722538703237456155561130774040372797101757744870344617501580723498009450684473907121313319714573470435129546756026809949300017399296448048365363665331196080391345120237941829008053699840162801624051048564874867947084984972295043032304552978532257849534500713927664309755324070154508646761763999034313401576326311397154498579825700364138502396373012134517878925015513582632215175677512981398988857277600709156861598380103481978346731309538823737682627843429130841063194308886199162178048366030591253144533623040073130429165654522613328300723354545128497420799691167000479798225374082532859888213635852327640731303892447495858191803503502123328953312690716971292595283488515567385465062109462862786097470501345273612274838236166463379491742863557887787454891462462015775438086808414048267249244031633001923225088906244394128669070640427747356614884898180904875705631164719765045060593358979372885740223465304433198353471191883418156787988144918974924755816841721762293333173582413001979195278823153063730287754862064658147900811339017035886478272689145336413523152038018701024223213231866014867649540030358691816422036540840519260820644829887216598146762031680790134439776634658595073476044029371265654518041507900965030042669828526340640944170365216265649575918870192790164186387452481610833369101006933991269988863619792200992827322194412903214003382349608687734777773871615367107292449087506871610556971913621749454845483642691894728080988932302106862716436090665358481619469454402183319540244236667428180386309845626628389062290554818568614650955823590063079520475538981101585404501022852535026737050820941473785605038029584320453198997192090909922540045193073270571860241241848182718885746235057409848500577385971959555673124465525219250759254230732787020698252929154835517076186398255196370102868569338328296412596714464384286655600550927626995883920173159102977119281831412252860445918871349487686995910910526164136928043140985919283053360321387168859806295193463917865876900038897129554366315048876485066939480335363521879972906111312748484161252489038792566551769227397260208705834199815634151832473675499536660461984338024886521451394615007770356966581462888100162542126608393259181217511617273402349810564605087414739703553865048647847414904767887771055602612783543018233202702503161296288402564350637095352013758334388211579971862610594920868636314547576275517193024700992138743203144460189405097041697833769958667345642672001246604374596534760496737215587536879744657444702484334535434436401483594012962984804415834452498782247439650741577482123760446073257381102137469578059673048485596738735843807317685793962142601131516588640367311881785481392396085984370796946853995449421434300797548731220099712401646795319326009845940070215947221982427783742081778416609831691317939535314517806894408867448050329178836258525263161334424271227321358589536999930743239585222142462801380979948370643478316738899588427134600294682007453763414620900634166916328113787238534300815019187597531038420110928020763959440520812525955208098726320326360439504812473201830497661817041577641741655595101897240738364902725692680037980953237222703575283455569452975956049865468605039551568794280338502499019741110634461770322930560782678552530114535592903305439414216970230049879601776740990361191787129080628732600475231544057068412572196231661876441357818594378630272640556742494274602847511336871727844100527116260490377515565969504571105605945081602853026321996854044826123809412186705037303176310525631537347695051455468731177565314702979821540374392345176129327811209696340368982298640767993320190962690975776761538801365990979308142204923657089193351276642930726716412581486483611091436790457877518334523940351834600622487353921838965182082196501140351220281669155211762922478082806365703911566104386453934179886937240323523506703396750052811947721691885745140833978253314567040866308052809589290696734214838385121448041270870026181466239112550317539680797669595977109710691843971546016622949012042067597227225381285132545241826446063110632262336808852360211133017672153235604606981187410854724252653958110974823694345862566585183166195399651008762176386669305222912577591479339260163520036274685200462122618594859683871832495946445926846790206463557945084626825637980490835373996162222397513408402240434555450494891184733132686799698769302398676546663103263592886012496783044752205686950467226127649327324322044848548468103708945735385895633639858551476551402356950510437100188042220722098329392315990802183489864153574856674548680796248181674909905208361195266477480546202297353682180676786420257428576663038443786230989425530560012424422670036420224189201874428137174521168962863340849330581986859223192305201798761353360603117776703835398999434438316494332361380388140144134171265639778292379927154277941775073765323874256183787701109644339734932582660298966609921649670040020101664089790719867718662055221434338109260720717557814489057953610628632925693512905128575202111251634230273441810933195948741446744364392942940326279586008607535362975767713737691320731264030873560289109139324131714441769444689251090532940140153292423299780110720850199113471819906671860135750629314768167721602441953513570221321202482821673774808869049362017071973680860435083820619858951775266756126121455858706012047471453284856724455779995395573505936093886958998044783137477256610851947849851422324561814970900334176735070118649351524915292691963718570681136987431473674012288403850456961023611225886652320626878296011485854390290541564571049555471154351841395447843708058043301427067681135309007757759211414297592077472644761368128618667583972796296357530932632482146171989581622122753813214967267270887578328614734267040652521514807187824330182651619470218862075297724872538898734131376595112704918641009853735994038389472493300341621141007307991605526397202115364381170181756342654736068119552003062446625975267876154742332510308263541227876152449879835412163266010835712511063237391439641098200372240314595100438132022674021444114495164211500223129449461654729558829459642660290417635691725746738112563263599662871378115239366273294801106177252607840391851991437432234025900067171902261907729624430873563645477738698307635483803529493022028053636169316474648081330719067499583385699884324331050339958490894158860261795491449941679362959959579284796309588837241420851238445743784688911451721204422812062609068044655701055840958801048056200376187829774494086079615635153714710960874857747769803473248833700980674891524153799299674349050416099464996062259724082132909384771683223161537900895606774219612993760786764210007602578837498160610568294535397362036231483113622008272559015624518189369144183482842113344758429743660905391996500776632446921609089831183301787659863176174134545687424132186867352929306275588316576780255595988687959162302155500196659951023892710950361832434299420722203554814404948643071608360896373657860613440656258289537736322088672837992252069813323764996653020039552336761007835597315499350060535062959955733149912524739079957847924012871667389239822182924761326433524377937936666742423055639426534496321896738848883416275937939923934641625038813874811944565600416277323186981164689360235147408373912406695979216808543286323406247681863852512171696361626573216075798584848429885044364128113892728633586830582700115364859388361707485852426059828923416993438234729242543661625699245338007697346363471283620678468596334433156997269913690718970190031333422763598734633977891679979339011697996337336921251420956857560529790383208515651662317702268815295939481684774184091096569828733307583593414641717846899357263000939036668960511541230573694200738104959718881711342487486523447661373943304444103678621030221229412122077487089849404319018843140979821197657966206852955692645895284804980586937729832828584756411030739073287241865495763995622347365626493708466868455304659796974837607716959885395853421057038619514452562337956110618562324346317235030691970884356825353627493625470295549775973842068045866075338752187248671750349404190324998174515040959694845782408337970368651861792454666881220526492608259793219048182612745225736013234368811769303026301591838625733575708024488484765023067041367166120647098794948581266966082221925168365679998157394235072611795947860816036351970470294533153737207780818431525661658742148785421291106202127913813114763045156312451640397204507623081622608125035823985788974951640221656459012470664055197786722999970416415972541654079235783008749016467375413490585819228411528037980035140154077026261310950588655364231484506555194029158137107035407099017637551893846379200444841959416380945259120739666515998433568787923347965718732991740815936635888518840725275264192553422292638771039013864538559180111697304247320812103648702818247367347165504226493167569078841456753977514952972578834148721665587393225270646250712501972412782694944108908484033690656379375729881283517095151843876620594678780623102583821360065522519883578799484219291957709265113848520483512449912312452184655476869347867021409350086799840022666002801889443564653282474738004929526875108807671435736288406886894152944317835887136954191521764039133962130392313245143945688446517994800067216763511758742051973569376860796863513988950313822967543567145957376965386067940365533232425209717542169904177762686547577414130266520128400005542300424098381238352917019394216436095776015652354784806782106786839242712295846105931605049419436933677779098785314165641294595089117197463855093253887861835414176267364725146400728572595730857382550786016884116266786429847700422221077019501046488490220470087638445808036156950938228896151029145953256877680430556026959749917506884308953898994052397138433782805662519793662786207715617997292385773546148210347316234273479628010846675242422440117489676721303362026646643186204302567879658663199887781874002628422940273543453450363565905570178623299373618658235162057441963265184306514069335155777131313539339343254840686255796432046033391849698334252615554954504328683752360641595923688080648581118497611272074393535625036484743571282603607475804978798816279331224786652700513742793374709938658459091174274897603589132758244934564976439687444981981045252287880411414473379740973821919307132036254764701263278246606470562420368942010652009787472653603170297015548583531284388753937807887264160534166308295112640978179646718230460279852067967233660187190617487888151453894546779822010167650715333868782017479536383831744683469563755390875488354471024561996218534446344566346288060174688305744896583714706184442776006021611075375246846218364235431170453718074619907425844784788411207474687096981226420276414245523058709501479907625428943317906266928425449364643067790490580416379567252563209060879009982218091896534246944331559863107157817012310666722449310667905840092574320435061079672624574684628277693568394491005199349886991824663300639919860864759814881111729375963106181976729439509084140650494183887143430169882731158590383201989919735530144041252025291147758382449015042331941864087369237737589987950500674075152955768537642715907498259538077051574275544024793861558820124826887240549676035925205259877401559302957101381534482124768400532764489250419749409865339657034062894521813428115111823948927234531322611345234565536443206902504952833705138512659778742724981867797094022816319638932126713625353938582243521496182911762901153052726616283234726986944133862284665903609556985143617203700834037514984287935332250640840216658304450386692666347197225811069672825630110234146304813823560754577014122559683459991808818630153181920333979654805399683887088948687748904786243395329855575532469589551057289924593491654208543762419201785749568081033855692223669772973248476305133640955697970836759173045361348658740778724108264916566450523642152199725882390790934968767345000603499458875118787470342739044461932377356695394360695425545963006957517172809085626539289946202987354974555701859673448941963843014720526213186591513823299103748928661649758950666746768279281321552504856984718829840591278130275727016546425049068287174426184327651896526953686338682597547105758749202669775886414866266366650748938175794486150613011708559588119915923118122371776039223855805765153780037254778932661015794615713734296236363423944837835040564073361422407284897619489077855998368944466790963822367462366762582139702304784915461204783995747355360542786438720332258491914068847667846125925026445899742045222161312695822521419399337880543100698962384203286581623014855297330499893491854429940674699099596357841025245875319213860659491351330991872792920383764269913023981114228350718852977530971496916418555029580486490880651867493049653308773549238149833241924916146528453489629643169590282720590251101745363083769210904099851898615590301066396446692174296874683297435879513517327365970645407692051302051738829954194058447777195570561918304915171480336365662110322663401564117572200796694186867451004738638820583520100632290301851768864157197048519516405489963945088145638930841924029983356309933112026107357782325554078425832132794379847507210693113073549697039443558692467066711523027876503423220069417584016714530734347335128637103225932853353850335479566554770188157577434866299705921969688565948791616849458783645312135125298358319687903537843986537811092518481256909529859634618698254780157631166025678448290899786894116767784696572707172603752641194002928568241476531187966607281611007112947528934192397114344029389793790975286155417509268983862064841002735457745650150769030229259873900252897051983659702375617400666784826991055996182175693586235489499417982131231608123611982816874556728375209182930304994433092326548788838946807258331641510969830079747621907872244684963584416292748010770300517651139229382613405175127291576544715718181737122116220538148614836434406066208377783217361024441436953031022750135633225610877455292181433589242217907603443637409799185840630100108943657010093587914185543864578881681065918034183670764526716594554421890873058797581939792004573954531365833908084766887721201869988599191137684558450747369735042625422804122402533525681220208205514826395641989372437620974070789793915898351510918343660198296915697668790761432457294705032195288350631320680860821719240089248555084172082512060158048909057917270140314604575448732141205801748397880753814480114240136842233606560638641162875937821760752896999364331212108041689033394731451800224557121612982154849348070720085684648089532113398824632294431477392386261415599514213632236385902982822715270161966203606386817833568577195030061504312657377600214713127944064330131177261357453054575241276090433197731230415400845708460260221581271827783425104153349348715107649273217317996716792212188678323391640465080636611319265459308755323125132311408674613752499962846886574889911505341397813447780957152755639356312780485327903148230136323646380579339954641241851323517103659556864415287819450880231629690439299109185410327919021645719786391242343159796154963942890886034344980562524714309443248251604083907823329182879099794158529554542824126978925595124389426930422170349288328687081122476891556191711820900374182904621428405186740726493915356455735160281879482248258891867446833056197446012899689304551589829473979390974865257741607354787555161952572754367429355213639632061646123479043001536883586580665636692935536544457813516981890457660601665856382165555561301622181376160736728246482436255281559890733899667814716293517596956213228083861388678777055815878538965498421418381883951051484267309847654067710163091352439266831900467261767285309477113112108236499516423212581404014801905605491746436397109935270432800504856448791393308332798741500263022882956005265228591720965945351816540012151086287525659096433556046947029341442995304296879778720332158373130584414374009089694850121955014013559158685369915091677401125860814934107382979977716113615115068688998736392533879125089807573987643233708214637565811286134393029647209367604420470370866209066010294031931993026360935448102383747635377752484745296748926784931022492946774126344303367602561163844219404968741071656674132807404855588827152727017599506688077618981117930144411083201102357789455403172881955899106433782726235514228779853608316360883242754782503685767578556870801468769566093945711989657745583728214175161000873927146675101160716011636513802659185813000318593079086162274134189524988468596302096415775396946063989867151683211727079842752263843127911616530926835412472200747854491199147126330235969245457546112739409064238702280881361027171506013409729676201097678605642616311207822650677255712924955547993851934057764191604004380134430186712078057089133179101059320667670478672054495164763392342096037306349660189296733136187620727985275531488997585436786355949427488271131754563714794510523846468079398189400894347224340744471388550640535049505023548380337226915997253545039728503888797865206220350765279912499146666448701536212034377437323954363001295001603193856461825743630761144594517503894797628712600707846869468454762855410422865003175201722531488857532562643897117999905212004238182919135168177454310506592619869590162636833968438515199393434563521712894897352466831225308517073843295614800790721488877586236859319373279846606192980113713554867556808698438950562858309413128918014722512510831454908240127272325944789910336908883802499307680785961872689718825695215980797828701915491524234268934287557457474699774102847692517730932444387860480064914771886456357553254782488149527516581695058533302860801183206129363748066643088929581152222387911336682366488433845409293347824881592391077737344830254094646273788756717001277432005511024059658351045709360738908226058456407949205579196930563133223196559246729135297290485482942449029547977561844728514216131996754929255985193189490107292923569449121148442260787083099424629733583879087083231793491545524567902315292214720659381502949391491694587578998245820943113230907026503601150299074329590320362520292200025019344036775254425933262569955293706653481315401018062520633043619230716115286572912660715897762049349453219543251554222587834611374451645508352228269320120772511181481010111581642218348527595555867316699367126643711290780294884575065313931291527562565624688257827845949054073993223278269244777969577661668528968947869067862634224557960607361329175653039507804818565822845885794457793798952611614424234480358606276346822590843277629226198641911649463168413000598438432308508460040117188972757125772508022216360293173767222729123820974562238472765053357564666854027356840556073363305824705197777391330075805564867204551113966641477927115788623518782991333878455652663208020509021849770645283158356783260505383994285909252702407371999114111245138796843622372035966187245555681039576643012988485200559503110606487788716989284495855898150703908537384331013501395277562183559169772749392004932227110892889734646168964408339449641278969938430511522603672848319595934941607452558669126929841617990679671206066140852724545077932576353300618691144530649156757835060921354999726261209571334710285275353730786673604448370659497176571265244887406089303813860533637623711126794434591546697029182873344008298468836865525858183124555010512591375789655794808683481112498997407662848954390547736349754830781199210244196982506488291059233528668414510908050872780620116272583557437868046261050440635957448356167312966042008860095820777880550640031130316940030884639220032752925045570026008688294935982977065313944531230513499097142489392961446603668825852372904073619549007876863047926088545372612653689480981564192004683973752953116493914511812269035420776764627745462412706158419388807192329785177320376863324213937459280952691120527971745194795147219988469098317644400778457992573694723517911109807187798042752128938658186289013291184314247137582557769549334029697860137599253889459926079289142768020861765127397965550210784829947757912824455869121441707131736440638111911584529389280737548186067028055246743504863720546059585696631076030896875075160948056172310231661996202784325726219549764649117326209884002109452174579256528159548878492775794284364153239747458505619336313496397871920764369469706540195007685941785405808488878884657010383319503700892552224414355358694013510750198429987982470750276892484421778802215665575945833628368440529990875314844886422883545953636608681417802552778984570853808772472691817362062512181155026541399159439219720528322294633980239565030317601469993662860517366802609627156045751829586440652060709609458413895022679989804293223536429437010641304169596657289153627515795142585973403721494674617048581581003672600862047251863059982773216080107946724982819826368890622198497580533084566011970008116028744128904561706179342200154607434788126774459269227386152297599138786308960454584469266448752664933484544886133514797505500015615131322026314219880748090805150383668645692865077994123945027810593931575208591805069476811126913253701690307537726961601554894577567170629890903397135947804514755515109735581726461609243760486258835179794763276792650552719345363551740774526920945134380140810183956959703692290104025436484979579894673348180047154026713411078227687350165684851406594039688261823509108610203778737230276709879677566194927749218154043830897287637831351157484449488940909934410918415809322365989630103406026113683837967139280206272847237272733383188341405122621076580671137835356223203416993109760303208197940193702137023328912473795994125949779713879151226810720010740586093815973259681313431583591188306032830329733539078600800077995693470544020132383817333016764360974032312561599450104122866793597265842789200155431857263010667085674107731743279584146223103715527989982851164559640668687641812023619727322611432374437782279291595932039445559182597854706211420860270019309924225719055201053962164869362614150561727169730722519463282274675578875940677143303438900485877738126462761287114215658979648572227962954061480651380826908587126411369327929002321854909673299246323659118570413661123189474246631345236216830643172194390032139184588591084343950531290974445518508759387729756639658044173610860862691108344348207157688992698901730450488198102571812698179388293000486842921252935354652950496227105944626983877089844632546820673498298907350895266249815224460806643540682732270119045448672779917004552952300723824185047228405823736825346248260345377159973930267278730668407030720409551286038145422213243186537030354818108055079032312119760572797937608389931854138989765115766402395076503436152724805841535517489778546538219830638672257392875413190982639238611459569561945281138960748494337484016936831331185868416013305514784851376673802777189014152564842659769926235312551167156823360581405347195379750698462195107572737295600252015704559205511694230202776305769664609998347470795163822499546097357337126683437603034825596288316645222102134571578544991349151555846038836637136716072181358971940925790027029983642584455571837972357340193991406067236942098242821873226545311269493462273282664199441400000566658135452090278657227673451448500312841579452075699121533111719427071567516556234877665151800006117596290850934032077344029293772168134679717746025683509152822156936978241877775355851495060830903671652363865723033748984400860604019022473328524097537364423698755145770833677592027879526854482436769730804635560656587409751388276743581653771726374860599102410033335661160593832092103581908024041378713803939336220010917916521760789604400278065483551990189671074575652361282944720779449972776760126072589290045455313776441652935978058055636551418043080666640524392406843112446237017652005318239245981999832880276999155378764661647466053808293612162745397929324854237702384306513778786235392707760399445964559039830004687568313903588097413612936914692265779785525689434320849851498481512727771857997078764247949935692304793354927512830024419948505343527458390587461608602960606838267096985044282891567129292724834784828598544567202815667227076144317634391367412588911954506747972391450464767124773426251193522817707599516624110921889010136392566923012306043918807241091999736337487717873182691241812392667140306921056666647268202951288872341395272518444235297878245391640079646519394773161591068634534040569282225666602801682527823884088253909572727667710374741227695108012341433027849723556867636087079120428621170472320146126810780115603528234193230261787561167882510179289582797961025057716135131999200639670751970940412724076187827252311368804932467218787713985791331099869382485979069189813669586248956814225901869035668470575869079574567272589532576989198004809273121636762146912075150450836690724935691225372424855748256954167388034598390124203166497453725679350272744994053742943145972900599585671306681455607884849345182691787855892578256129203620771082900693748119325413646392400128560221550908480211371683544247586419646682281910598387965810527695568932529447565365096003021988013899795345591597847554919825937217001793222558117453014591519537401030324869322802669045272903848167931373461670986831750358977359188554785894749951282729363587428793236188378904355590985948799603442789959549099529260326717571626606952947242233964713257852672819428787436342619119359112012859597400349765505056212246740834135596895805219738422580706823789000467926783852656129300844829696351251297174260608100463206869955017279014765352000604089018112646396360510490845248724115737079350670493582878219112613769822435719256471430043994377067255841491713950066981331833319714515060715879164193549300846496856341196181885528216091878086425318308768771008586219449610096502475746589845467024986482996788729843441860576157806303974661765354485135181602089777706856678416956390491341142093977354215704911971033260789631060333734964197493686097725874164988380391474374057567818912937089353105832333531939963547677476587882010972826250728517223742624629764881182264481954902277253530810194768407227869625306823478429891602697128304620785144078933259473033750014287999650901648020344273520563363002486294232535926451574589560079425336654308195219684327040625319177535078191102465433608310087511122000930905814114943132394950473527676578531743004549370207063717248509017857172487207720330357503957447699559087874266978940960318567262754890214259479348587560454032541463862041951174372305554437725006996223032909974808126390981262532050742200107907784051746549431881897394227810057316008324707500764126097021141432981002770490115457303277537045065302201456851133226363475604975617561857293987963236676992522466032252575005281332598992936167150740273561866457645400570385554566215996087345908990178633953570148145402439952122460316202388740239938979829243082678908027596098789263902738897523896431193202731568635343127406286072090389244400334064792445167631512151978765365972183994460484223074328224427359735771798353869623249932174234090079915834920033552693306727011473462380632235285185319456958352741969890919829859464207601457570778226421911017291626523345469276921011565136361376653952384832188087157859281541436625984269566288928718244308710513914573521092697993203612513326065206895475511954785032514058150682066483861645337189121324397239431424451465323220768201605958392074836284129210541602929313234278324772489402962721749993500393930312837772844485734782220106324001829564016277168028945038011953340304101530715882508113705756169110990806046405914379957559825610851094538104760943790050314433944707266446925594489688054837471859392471214690842263887791077706164724702748364248490505181067255189804901132661804602052569295786681906522721692833791115526341452170070491614352241850580198521346292284532592609203526263578498353647459326361767510180771811931328366876580980802351038043869533473358171478521156271593574054371631669483537953273282438604009361873906054262483643194229752580559337860407320475358305471461005799069206879675344178332392866749071903112395372331284776704106829667953961302206007700723037735377009942418900197573308909250928292514296129137196110797894466310898242252388110852552851483994451922844650699969502287501483814222957509757857697784653933649066639916733922062019425544952321621698141771509325916955476530778090859754409953374815396391825442739476977482259557396165761895750623474347999968230245366764606053925747295945848847175313737710551067209549010238034339456002579851034346182257921856864084223109280570979565048225331986502702689527457523429623567629609463793679976232292734124787993100650427207174140217196253787454791917950377741169504427851638069956118483191225315265834725129485598711865966060965720585127674729784278998923975058702177376173563876969278103536286227745678821066147674938640407524414113656900579447467761928836898689860372338200334375215382480402462655178673595669486024038632698330460297920472261680070923296331700889417300520575762687005658137947788781879303472833350176903019973189611360643819831585845231181129020874738936801105398325615263475949420339470877540149526836368149311932233884661849717085089222928878530125382679685799345830183156203407340269031319561797667168205567010043529767801098628201513165506983035497178844444542100422466359142796434900996336072105559924335579798554101560738336375522836345850310540672233430529763306672326755927128673050159804115382630395296500586369950085783956587704223604802828812968240037322440429427687289882588104465365528179922145670815954325834962213002766416475952577350648791139682790828048184203094383411515332038033269279022507214471209428456313962538104947603791443671396244164689920791044083942270374097017468488306651514578390124981951303430209703201198505739893248458214939534529940367802108901091195057191038525621155472766080209142313470446487772534746408501928920879914964720753345337262714054044322708851222575770152945297186025819631340742666007337772578109889105768147298875674241836231490280630038007815899847603078536018405147433873432689420850096779059726010237708292774150891740650896548792718389299914227282067863478477001074458274510749827165187658172888207884698337953318446606746021069737085698812956691370905952175284242603944991646466316365538664259807893496325879228354970806903056406945158188456616319531830510039519584193793409145617870179013663820755625751967397462648510087878557642088700161512759203479712051754738893308597198869409865339418182267219901680509572022530609743235795694322638320999885879576648384301274982498889259015158473786605815037223786566541967531882137688272653665918165604768446998079761729369110325239291109428540044439952659098888195665523125235919467536177631747959254368468935916909666573971346763916500912166609444179485151363780997404613572450435908258559692057499159330472650063916447343208765008887244064218234701514290451901659719787761953868491249365241706466446589548612265155084653306060591193563179587008074188017524351101310629859338291911285468594239105840941752177815199050501547652655134938062734986206176759767146173877828691300796466999093551988756701076774485874146317432446566845833660956223778117998593978617087864572307981975321543103487420247010519390636909140894565318029497959457965086171648067723024537378047285482745525657106861009997417645472294218099373263832234990444095998420633027185929436629453636724991989280240756702103953694737284669450327254417542825761091738644199548803088917987481701086414797333235732402838232294565577399832429008993013653044176698227543525066122890320347798190690822632094038541802023482068996807694220200720997750258906992190371988804294786227412962356572949884866957484655408431957439131804182926726272225259718802397226555669765119405621562997293548060013051207012799335299876198729567295886397361233268623498181395476045787858411625764217628891911230384145325252777042263235280664281918381374438687382663769582441836800284139609515933062724993815429085965017393818444194149729536284688922847268433113723185724980332634624130197990243976198448516312421527798837238387163075268818126608891780076254571439693052212843728830020115795746948740148338633630981173123441575931986738768187091999141774588013654644627166879031414297484165989366633263122388440999323283299256046666014710607183831325361586902788046251569700742578100818488364327156846167553257019924002390281564393207173616710528895097971793264184182215879825407583044798753622210694606155305099894070501149251622940877913691634399582164260893980655865911968665215342997531164166686143795139816720860509322569104283661478224151449148873568813647025451622881669109743699546429234839560528351698135833798358728163101591454105135487883602867283333730288212914276941803010244372308520991778379478964194996325193771127885997045939539041230555738079038033734473308227199932634902183188071302108002700579464636853691302569943782765298752986951266490796108763827406682919777208999730900385602118801589163597692382191864482801493329702892478069064255110617501114123877269205452566922796101896033844087993539926160498660497137176061235563950557925143892299447097494984777228560758739265800459980969942427852745666196196832464013786506838715915191488587552690763091700623631387343167484867101486922290224211852371914440344056181295982436122954202843710360152138888736864002880329533475982219224393547753935862553993160723828330108894362656426034650620710857704449460196081936473544418675191560066105651527997206827667073662457712733599464432910269152745891861200478887309913613725225175485758732149513734062543268182190693467812115299159491518076653875006704223969149815597019360015840209722629669575547253905136448645652930082250878767134767262662394090516903052976717008814955926001108380551712701136516824902762615020735884432060597219053051681061306316927042758696698178193935265993753706033104623061145510835169519768356615372107004963375795139694553987910748283124065468541086654017938389999575520961670977595195138438573901773397800980581378318962854181472994106642761852180804078842007628820232927060272660529674391297808380433920002835006891998281151707657348309753888121683782882696710206283756400408753402667393091796197223947561755212500346653670042793243607841731346608657093575977626282605267914373912681153280396676006421690012002479571834885988581586854287242299626900503511823176856134356095203043917650004766865436488874812411914786921736930522808192057777751315722490642993074758053326502687816984431188534988832655406532955032877773747993444385525436257118567367289616974903491157581853503916540672373151132097453859043211293747584461279029156267548728279701007631549800731721273016765571005377937037194952102667006999478178070538727232154433168681313532392408896287511706749443494732794173437197901741700123879825584908956368975790179063643282914559919192178345422678575407074899997419948331059922028384859786839433755096974112725270846676462476734305538608810345677287478737069465861586993873856518598416536618144683294411656913616004496602241997908727907307228849206765356517137793056286020106009045896607733221166897467742078276312472090214227661859214217208670961717881380117441759312782875741410363475166743275159644038487599804777184811097620911954333439225481685182333952308567019482394298985459646883362193393991814763653387351152241998017547007890785973324458402352156818567404474728980496867000225878238148322395090918478780012002876611246263957495348547401743521611780993512538230052620980565472070412669423275598059519828270066731431147177541598941027643328216762425797371036064273688532745912538468938550797753531282591247806205761362925631088815902558180148558708741247507591063708891511049175873489442580148301042235557060199503262932970904137732783117548890144635529639580200976421727261070791339504627688260676997163104895196789201852098561033728358886570012399247647643393621282112031916048980299903985205413925946826231841167379573559643912560227527809433821568384004824064339838952454971862672736716968347565387856708960777350878976856803181133314463847966797663460894323119842239939757527944658503425484276008521363137374608562645913211178047038885641368250891288094873899404670976295303363090853598932887308003922710300931947828470397037385257858401266612760372316661208479282187577205973496801839797974565031121034392431945348166158315193234860999347667172462297606792637480702261016202867543371541344181669758840007889249153786230816296835993337465933344756434455471079108383010925882168697295111757010365256832406872226953313065990121825085726911752877910270510772617268790191000952073348355379825743501786694926431891249921145642150765053616745104109716532341537276217872581688297103403939564753284210321697647295145902888821665972918641161900024284528288395170084814597918631869113253378538724953947925952429721560880048555901075309423518048212495094790408705051242532269746774438083063787395461473946184617140063371149961795629907006433665355076533613160767560306165245910629444371357397164232504396855691084814763432889946256071972119009105550962610200045125651901657689023304192594566199036466016164757110674654954678444519761396441492448360578925092149091962551095854717637501495917826094092328269056050626909056715761298728865965321921356321104455084088401736770024506378967229088964930489911873035047964694193054675077865469791441721266523614103870228667868773329637832673933456047548624380905373373757575022467884822848972595802869085678715787187674066093626620010511410238503522095410542133522968456051513580917605673830344814070485872450810211827323616216972567429436436275348352610636443325906306447264087834074804290180322678073897005337377332322353797217931007582666238855818832735774591134664422015047638273849967893726532792527345857630371430340397170424972975579080630878828584052446346745627552007881327393615810197463288092692352449035735984329076675426148131781412394376809566233447446226932608408898449937648602339005378587654703308144177715526371610059180796349834454543253191007478816435613601971768481394782798603585327432028744484048225608972339023825625742361638366760330808318304076920261486682787978810463434332251338526098430198163810021682019519469011793498023954339273192449547008092164491451745005235954424301709212499426482384148935937746358138868513135852164287095049364787230632968357444165254887592727898874462403105545689026832882342090072237706107518826344595793145463295490626841663003284152950340517392334008532701309436159771730178603612939526356551599764052067265733982791986467669943780175787686898475636883467263499724149211600643238315436241363385310258259480870579649987313796060326802290518994153015526144675661787630748652998248375352401816242934357112680174468093593624001333383233287113700544777457161290944751382939164027103072547625802897656182689444083631224092792740860561352156891643061262782024687835741825760646779272087869684201311947260545504222664131050202452837669046140133698645922055523567179086441166534072719441272628955219035672804921796733845102633094064790659341278763487618877641791088949931441352543041615152583384869028326964817643439279937648063071295426054098460600508583676503639989164332717014685368441887999091362147997351723262524613617596722089534927177212084616577940585370855591113491920750445236751770458688476924753604635757327026357863340036259419142753639366856414019380763539148118865023173265876261926364550470858775770187707731109164643038156758485837285623754259491096284820085432001054482242257297761171151578666945167469755142449596569002361710841675064901588527278506125138010297151127529626354539941760299179648480081122569422545948905384173023298546953883651103369402154836506865142353214515378481893823961767783087234609709071921229498791246755808257444661770593393135870532511957667164127164308315210138678797524198995876995344113452197718607394240711390900840148384694938079168319803734149415897339585398200289135045511014810979784028789641268942270298226058624355050363612196206412727799756714954713578240541914736796239299676354451084864644587437130807260568529414734498107665228625612505443632154751402156008869886240802365411731676823534821156787285139479057442534772992402560624438222041776393479170982618639151242426622400775264522989531986889491271076951548312480650596994378792235724831400053941373327095950157512283351680225073487692751919502635366715348913568366138594617031268681949483514859507687009245610369567246353458672043797546518328463428714224387209698296599807991184000343695247154789857752113401632288913657776537475141978302073474374618754031720725257351048755943495314656508035140052109818992110223855648486466401391097355141217435478023741336272946445602408732481837810813102548597804977599316245214017148243143024393654318732541852326392519984373482788284768413293438954124331128319946856600720726896751917831388749186175498023721088215324406883129374928708480667048236570921068978864408795400491152566530771721101988807616846551598444822260209961399333598000647373858358408058374085012926685936116945062335024406350247930557108906893749973437441812212815518884623580904401627371363991055113912513348093407837218828599292141246569577514408148816321684268037655471423536196089631507730817585835590064422065456135985109626039642918101771531075895706113140169307312559628224892164111775148930398613020837863379430046039609165343379088336995422694733032280222960623295677577919926439643110357557973697289187447035660874259231748041300821085618403322774608465625253185077791590941037636642207970375316427240750511512224083897684813189758752043312236263258173165361477720727901310490086607394640335333701865499780770056773565523327704437465075726937494300274975572190315420094935915566891495562617774575260220072466577078593281554460412120981136675457616380523498974969793505638406256535345392805167798507558565842262786372317689465572962971495474682368902753193538556646654640572368922465865041457705907300944251316180518121008819093698271595965454100202207970525576989728974564296797910096588170884985979421035661517483343690826358724161679999699500896601404576785633808186828741544406484354307397535594031964262280609744111145990827247789541862105064473427427274792738556401778893769930780330580834286717287813164355644650430000625514659005994487142228300612760529044788679267189037278305375228207994873782683739808744808945345034129776538738105917010040776229916466268781985669563624721527397897371718349648927985239916857132371699522451693342005840503072183232700299515639001802710918062509448132424216769890761921920751498698817064529550976165562064706453447190328725439781455502100006158969463334089210489984751724007461307863903296377374473468440102893506428487372350913358620435304163457498359800966228951927133171136515811829127212137907110652172199280490777725588856810364508042864300647750234814185151160545849497690215487947440347918176083692757642338580821804632924009243362359221596527454104284864518991614716896967672149327041813693896241553789767309881861989585013322141235138605377988245371359651876945385656414265736934184403409378438564306189849676165365828806894547782759041644272197625530920222104874091575608331496688027815381654663993105447446611609195397227455220877101842556074734095110838872951711829786394892907417152598974424166103798895307461671372028916976586463119102266019228047306250832598235837437735552218805323282402868066409305171789444465148493176801356481396742262880619402115490031297630170563058442421205487559971792572962721404533687970726898521135338445421620309181502077418336578654257230704227073231335297209359278310693417683125384606426232943604959124359098235617231781846409484219290720945551509972914080332142234272299676366758610405193282104871367644512595308979570494284326169217132268555746659152646679189394135608357769954987999775202477240036964416462008769964767791194524650764469134426884487586766994612171981207325065552505617290738921700941423571060010276428702955453755936578937298976464339907535240227231325012265593843226733225220598819569874767038578388888039017263339203000571654271330321910371682412144524848233170771509601800279416471664087896173808431520249585947463061568948314124839177126608927642520886723608139975689664841165586395361047434303610220464196755140238350632448416486539125792157032985529070588354538494244554165644287619017246458990721731047171762775314319728675123525132805048073257210434453727392481467657253909424856936086826862765489130215965101658074128535383512156347840315540723602772800718423614770171157159229894132849809434427236663198154019533003168856435290423299450442351010727423715926452667738059760939967393856062111933426744720671317795005410635668634267160371505507617863697137382870610548840529573393956100484907334398031269247162069050311597833119340927587064939198799910022897447175835070698834246780608545991199257279091212228147979645700933820516787244263872564270539494140214238099488954341728144365590087518255018677671516834826300678290028150092580196592198264915037584267109203143212450893356280466381184557891119491005115322597723952405863968035281850701351029380453258277171990945590872722170851954284666027090335674394407771174719040408455250873744121214030296037280366211218149597922930382095253211607952607546316572147814572569363059244472687883810628928583158139395993922848581176238549680125915699508617631751975083185417431873506734267009193368339362547788657155491688419829451043987042319110814060171872873267591943480854749523869071945846469820278149343071500020814136469876565715568607453410849549676892161963507917918984939351182609594375558906797751948486637745434953412692237204848034286175378527017339569189408715450598762435041967187785158399879898940457417086046220477865303018087420800964416704130356816385844983504023361856965543781855879752124353861763491350478291274268057610684383818012603015929844878103929382743435223685786963491595672884428316865484947827567228489039895402455739550343611313448057518492388036168932092500081376515194797977689671720216248871563669488392115670687745943803758625494928833186921634812888858626260393353392277597564013694501269791031359908381302625547716874748079536741829859638600394927370044450612063003885310905579232527592466034227124517560122551127677577772739038898659231956833028624447928856677876370079580387353864739718464385186558115806543725958496974512285671634859571720049786081081069241786347505523644354046480737291119559678571058204207819344663765456623095154018645558993402809403275696831203288897847845556479389390608821032516005472088126032064455396401549409132340179532872280345171709840472652466151359718885752566532558402319900743420423398931153576594327726206013228675105645788466005945717799942828271621416342121266660262904432037609671563781147960739156537690064419299499091614097284257908084497406224722130851156915872143537339045090254228690156948103242480702223980076449240778755587250465923235346468122706013227724145510259134689030379694275001210708788466843909393003470386675042518251179405112824935845071559830906000199427184522106969644948171314603941892955731733997727336540277636669382569741842897629663359164506602620881311348277234019929845947035424387199049321365902197133296580950391533892775226202763205958585960607106378577191232221684081619014637906733246312856203691175295040103623833166668329058701496305052228938031562854102896577187747556958486903962802794989872553007116182282540287359093838057325678570385637328840401117303308357665920935676600741090184589313113610397798983162954071654466730165967653389016166946172131234376855218224173465144565460423639035196391429527547889354870587196230637436421748351990790411153769904419278759170343559011983317734165880286218286863581838076582417258290716640232728623483874851049037011854584578151053969693158708405492727248383643362964299002689327617623579551238996038417223193587438106060245587566606151710055119263038907515068959793124825645382142047486271090786565164498474617394172533144268971815630336303243451128675707280142897103832083867237501499963783374614894999779071766484107119835119343434331190100360057873189061790945478260521645528023062806672005870217226975198115110242940868820742841582279111856208374144406151682899969400002917856661790652790553114432986726822582564741662356556485941005639848131914363453585040734297347178134257794370132497779209416904168915336215096483857547527623547537888452116003327172739873960185685407688461595910267707170670641295812783350164599689577657107143183779502155592646401043603463391901724096825790817651384933868590744372816586714029081965859093621294448953185994281271247394068474140436854918142663350078312323184581218127203567724161610289159802049492471781045825135304026587629098321468682832154617930064606729477271713250062893688900013114609014989142152928801063140539834626776718309440434984657751114541837321969885988218969287306728412975989476596770735301288010728536026434491674843188011197398723305612264975842093385178580070834804934521953912548500289579090006146488670636405636838159067619489201880578632466441876738828062276597996824645340633763179334598382483000906056101326306283143249079448782883286205137935938705350642910727092449385132795294185048476741629317136895750540989853168385053139588795761659427446783899742516402455459512690326493209679345876099856452572486015850674438524337626994837691801456777481887550705408818117567340237470606869283876116729554103155122809115896241609557478802853821593689768031936593954359209547675628733908098274000657864085371831603607773463034963233964471596031646490785245962878805413903756622049609173650440222652777764611428327800634842210694562901150029895504769244956074747961853319031687360765615757278420711828411010515508197085834962561029946974954159758850333540979229593029088277421687055303231087547097252396100307851283346226552904242725798221788543884318037107167690588298314335732618644434671559980730877266386887865907542789005938400684585112701066167651731720086733763223237527589203540490970410624278206764338744267176635919271638050054276303765273132033108222602122175957995823276426654016840543919369241264235169972188438776469934651576023079499157503279504986773471109639314962388256273131380578008159710232559679097089155001592702367600391803457145918012639081699989515017586978406430505844801374579016139850559810188607447920153947824882155658584318230440053092926693732599209844065349494577405594188417256855455254349610743778938439583213940719729704183128229741511851685526609360684631611915117762632214446490919232679277900934078061032405444441639243839085145462005031337124565394274529171232708141285464249853646918433949479426932359707086299640747951975878421149867861357944430369877967701975037175665404932106099404890596314003977036897829359541560206426429473382361498936360921153223627198716466649647254500264205265116090124918403951798946444114311348253999063212074834647307874721443110014547506013027117314828024181926433434391104256658569480207329144218523805590057680936653144114615937847276660517698447774186691764079902963727689396855079352776311196721571395784798078800950868690135588239941014891262013613605730780805236164070663473712525918620922316859989488451992052849756688181667291523112338609068196207289168125456297143958167986203572268573553878596684615244413291366766838984263762003882438221173492559189579182386462754144474545870283882408619450782226460104662565577583720509013046941288443967906673657667991018904618176527417919333000992016457357393817977575106818022806812409474767844142198057712106664417742064527356584201288131357187235836515244372396590581444652424872963752125810063036658439097121210166375664933336758274431707411523106513446395325775324754044445224590793646437906931339110602876143933855650203199499809058060517252098190690415305131555887129998165302688582513103378046156232884854225100969845010061723917844107021973003446709922327244213986788779887017040135782304430099195656552485502042485398403028741598120261984282746659539526893984759896858995533612655697319860638913253907297712462459418067179771834130348359214890433726272901581839030395856693024995401162367955680590457481484626724266868790874048586040711849416280923484735211932889903867202061694152800651099877719818610644428338431474313562642089509007041971245099584933250329177963528946688052683904616237257374224552518858097994784422471190354688684997731867259014230136749968758497227048967949569972146884588397617910434791289389858708054685023156578652823259428968328994865080345795595509810664593478088674223912471902906191792002181133516054641391279938631126539229473525329138519100272148289561522951507372840400288130913073692057126426104137491980013752524283122902658422482158483292015736519380220975808221397577311140478181935314272789583260010231650424798586035610770764150011190199116053544291068405989077493081217034632151499656167123052540589948450729826381880726792274383603585914814288341266236488143855271249747731698480963708220136578743730258986249461476187753717723656116708536093174842923090535120404087319944460581684497536045584309570113215995876535191623370695085564745662007394417415601877874857315525209541328200355969393306696577711392796340042094589801676609195715955292949371356346338576721155057495782026077587094892560552461707457161660871998695606331381678092197547273585458337564246855017534147450217173637628242483439308516138656107285980503498478938941020147356829673828720622165988823829827130353557938226849225388839959770793668912635833788152922993430006348203396680305140693156391818590132572553052901048619124255739262707560586113598303936371074395914346051665893435302503736718327961858605996970362819925508068393966435581933478928573671014229768491947047192388754449239380459395540748446798065652583047222715529685053132872936238361573469974216300741598857314154092647091849263341419300148527702322931502556249340751787261527229203278713212917445679073232760277867028024564221065441897207335136575336970977852799320209746081261453348853424318656130916821683868478795348686084392992993725771967289179430906552735235457723302057684271997907184331328154753757747076888444921842131688476644052500021569915554741882181656138316164254881671693248021107352775038453193711625840263724777685482532972771983768845847836831934741080232717220488487581357030164882959480753747347177326677538883485779867650083567306793140145642883890145655964181654902309908366881486936356796386118376706830744755455623369821952665522325073546518695358853002724770282143409398494882956682673737654003403720486097128758079047769170076699010887049654591701099401851872041899742131854512172322346582919367222944155755435574621790148643237702773693017595261600738023760755031714387168788097611574146278449372451086119390678918271318960907945560041120539683847880968001329773745702688263617201672475348255239027068887758907746162435109848916510193178208177446802254270746208455994190573753277658769807334285846642424431472358130078701968437356012658757639138826737682641965549456982812319062483493791083377084340009433891646399265277857905529989652067062928824454299331431235899843852003507259689405019591125262960681755058649863564130150478832067024748029225661790866950830706357989095059408931014215372873390324981967178412700479181775209165332693877063113788050113433308645640564589751513810793801717553415780640117940393353358913695880428902452926615747108203903704599340187039646523826694431779176813979114886443851731088196295396420249282279764243042101497922572452178349646971382345735822545455915791698049909073967531450551203267683024601441285425947906987979071005025654525016522642245101871987345704082156214426017634244434210278932038017803840565107678176972765558387226629379495808784753581651610587635912649929638494446320985422065544913561275009198250105130195667856714682494442298396524000322438084911591864525713053245716372601474568704181108319636179134489297109905717377934742592321672953990615760165636491512082581492550185638868497645193867929725894850808497095460919583093169884127602375657668154013592330532491529279613696988630575086564212301573222307128038388392090991880239546996532531481338718863445463496624722554342554601395368440557260281131387873608337524700210560486479259152742295113410136032473930070753086104840865283319001415034884407014797332603039160611907188110705748095311032169019339229581783496383798180721803254303318037071331064530425243363025369641166669960479958127112358279394604305947656774928040458854851048636125307397387666808428582194916020421441714356333953437675534267323272386538509669010312657684115510381452418783602368498885047023479662489702021624034891636337893672699700601324167078590156339950263317353492956588592983159533125840397319467568028691051239785333020240343010315342815001576792827520870435764712033278630409892341788255714847612828521361571415907032531052686051919806079487703579357944173434281743762093592664802681047606392652607877233156099490362305333855482607216528094081262273682357936241504826885902324936486850747973861938412554733293294997180379823586226836879977663188873520973077196137308657149382753629988778506869791971792701352390434299371306068122615740040181931960667927995029920776170390830596228768571112039065648917110299370389734494151824900927312279161179742637092301380585580408238866353047085487797101138823493330793357228525248263749220807285972517287602973512218808686900325726499008604897558305934255620997837038282543455700932179725539644232524087789693598541840722435980616067853181081057045706294017518271905570456802212961864215732313702410968988113151878161864615473803206973595660593780270062796558581540671436009074820429270066815094542599305201676392522912763530916920178232727676235318554012616477504053324341854699897415813519605850593341219683055157036813363580195440864730597234555691357313547935881606896410289342172202124055304694914396496358413089326281085441440202979445628339505540032000038261286033865748897971237160957071151191963674866071511217966087069574412919342247427484119027927032783021343652097100620794982508441858685808144406986250118936474770840030404328226922973907153059811617004503350278065398643853700420070437986453430255249730435875706454285303067954862909924373408425042999381246529879329408313751347987060759006915485133528911529735860963679305012405173081311417400170906691518518917507253428276301769610665550118302622145396883646225468236406760080347569349337360559634901672099803316844663448444682694669640967082688366027755807280630243330484630529253012425664044970318891701864194630664692707336329792230778335038265430273184988303734598830908893152411691265532720335673569691841991906305378254656528725065015350215710614585705186372531322847259441084523358848114097598906594537441829230569327587721208313538458099289633001600905354719184288292907364078865476234764791593083445762168559605254572582449707832099192640628804413680906081062919772071180304740199066868035722377727902013014509888649759137196617257642157679209376719797508713492991790122361755651441568193365596065714792706415551903889587070812499102327504997841783696454861278834399736209961778212959820021172322572062385529804692270591557713546160664070005707608512531199445034012447665239290646654876683689452747986899663790663411983245144828111276417588476991113282701482311818589987965040273437774114963855056432754226378513588040605986546258169264029692593375022955079478842813954534451030235959422808668614373375777884795846110566777932933705016624899125046229095975183535125723699319535292443211686109529596867666488820292714069010487545413209207254446543485084626171502205210464807689766551601353074607050468290795312583704949704403415954215647187200935307509756713312509528704038871205864716154691110434224952520999034806112850320510905033858669957267118960229904164844023628540092785518274780334890212476887978977733420434702431518756753342361011310522099753404154732927811294170098336550531954531696440349817864335074428747927950936053148324807434451491910072921574786937861623647311572347163805529248993701710808472466492921099807797293992728915067740727168673004697426861014312294121243508491686706832053443962634550166764416359872001646104111306291612881324261629386639996666833011302820766833075738309599062120662417977127337247195283440190649707132621238387785106362543156702636275998643743312971711175480313834377496470134067158878125378338703598740998336534457462479416277126190999205983549004513367999810698362556335593145939226855213854895313847845340743045302852560801322409187705567889614838234866541605113303282943968148059190466204276913383400786967311630972048229409069017421628414444271650329471408687371072237297769254519972675240202323762447744473703541744028867610128051557928839765211630126155668837229432992506812998665441191203212353556717292979315092872981463277044338791246251377363927955028633938293937864479659046250781746943871127121337331216574977380400774665929720645468328986438343707494242744785078620127870459703286057725326033800167518551645344489208426171260533686100282703008239885595164617466393931748926860533004680587047015564095640077421486945220342656049822863578397683525123432788287278226021097275799721277058804039915837230546107069135591528744789407172945591810257229913587460576403599552131433028809897853008030417142949767761160090674172131343441531961470389373818551818134548155371809815211815182794491557572028920413939164649522345858616217695987157603675225707384056389746949482524821957905675071452395003162621951158826389114886066966649872623556875278527845616159357486796031386698866453627819219025689127733436233345621062445122515634663890475113354477813542117294176445775601016341110512356384237815075012231446830123563762593418784259677405136746362275008141163769192609880649952261542146879204862378262143110505105927101122537499794872815000176255605852837704041247337452961633384999151298419051095760613257436395723929010282104670472142918095295217664596012312169758126064352201193765973668728960855711352999072885946488809040386476721697583295623416729229227883477160906383883625995350435812107270365346963174639537384976970815268856396303145840615753156671370339937908852960806691841963804009563542072820384227921595200408884764929531333702029444208946301481872627219056577493710035674219892569287791769591444404555727945634651004323453550575788629537494447050196429377757382447846294318578699241179573760669954844215288249229852736358009737179923750329535154156925781845845296630259801980144419600641624119128749040465987243396724665617888874181609585624129727192100400418092205974708151473230928995132802229799209794022775401725778118772790210515441927419106483512776002223513286964367727621879987973867132459428725532776793601494880510920874865603766692108559622010690196967180962187194833993305101344059608544623078639429624311656091985570691005218431496757621905707149429473433229871607857268946004919616704280164725300202948250898251522468177752682056485025577238817770514277697904593978943657650431771601711661621652730239569381906349745550140833521486785635186243232255602135330427297078302692469171877418017053373395039652417022425916537141895376071640647421704102992008997969567942275608693068145100214380190487757799945154450953993800220774357530545780587709914550558689142807102544412410314628334435486969096508302434528201090421963878742852401292693155263275875303557732762687127201371941076478255100038257453493450296131711922638462158697287202406306974106498907412436719149159398682189972058146847631423904098698604063950655229115044932607039589369861539172208740119406810664301381788658604290054253070726793714597674811617481567569086540841281754947589639331132181763789679804543545081799678338671378450665647737888344228842445657546060969233680203230479290730491455781087877774831151862742345774446538712008515640304655958270731098113891212391471978384386088171751996431883282478834835990237329709910128573074433130879764164395620191976797957941108178292513713497954914988103400044003932740876332830863218255847885112867346054309992987027151301443972242680424520323233167813685141461439097350563083343968719110232051027192973157800084307775600683096602017630107076217791777582225026651029976293900826149291446782676855750641402427735757736511137151100611476506475933075323095054043415784775615418824971565631215111560990951727516085931344164556418653257940468818219214073914833491636685371953152799269033406380236002790725413031295972770542935208321022318384315945962519845780465508763594844867193493918180147169910994969941795900056062992017828942666693147046070459274438189420277921113029152837393643316325869697305716661056378973113002136838965442316071271198759548326192143349054419321098897068061145761682226413564338577887892820373681197648589792116079275702035040048625411270777953009355568268898939347268212357935012800911851767325966306331808501113871611384011825526957235988445338558755885384837731688717678895862959158911140663070666868204722947410226680226994548096098703441443308908979832517303369438750776970806562320027448986179766462756886022215193608260654553948616227536493168300295200935425005252171484445671281742378556809769339476729805905507422368428164946455929816009790944608785632486493606117096496103573496862597364865869910891150174134038121049595079199526649286792878277122742002672062950266981686693293161072874666665163582285608237820329780155418215021464721027939418759781637040823195303100984347419855621663694385520153318295048176194633201207975203167681993002945540688590706246433762430257960784748489686144058981824944882858972579807464527641811841222289877629302932997338788045147803181406811950048526999004772613782053711955832502991378182513808812995638979067065130682565752181086404564345613628977678393245204231444511804971946178267920658563971866445182829947797669954996231755050226054236674340887740521135892242742483051863232588848338115431011183798178795594431595376661164600516706686621026538354419793001116226053950691146040498997950120068389396103604869421495967309349862807730010301891395113913202744018742839061265464954588499669176021202921555981949873791131463767951256502273438661773643064262943583047273649328594231086445953490756595810117984484391727125812620557175726638950137496982558260689437066771108751793356220232668955391612416250494350802838835738091623948659473202176224502180103523896454285602807637888973379992942170467072916488673157061062956846232658820485064661039773243318759454088568696525333215671814997892404055989319526173449630791648419630294047782539738788592114979557659565288044607481956240403209718835947503024435020065966653447027576915073674302793431199649441923368886267072084593064330555632910856104880360288407336863984475618554389149624360940141124000582864746753940900232319458589888985385032747435579995662838857224991569786324757792473664893630717697326835188345334216811578490153499445956003051851522736390362634489593639740932668230998150486392856399870800917762691196370120285725055337171835827147488010663085606844480571198212042106263188752457718241206639728151109376551438599570017903208932536615976120720972985714146228163667297046385769590876468661906069911584002788688007829792938166620539646199684435204812662819760141099991963799511052689901690259695164695568189874447353963225607580414194285012046259471126856799713330058142954095965386040863018958374090136184159710487216801298953975530710341151757988477907752529906537538062337513086115001618088479844528637484038427468126335960419798066663526750559932426324096804043852734593284456681196809242832448844159067381656476933592243692729168942310367150551595794161419255210580151056629800513884372452804483590066687517829147713437120664506968848740721816879282299220087848555106474473462057460361024140458411876628916886840081711222516301937387307373580602386775958319608492768354527138326900542622284385730962290582835630309247675369589567441717632258071709141645007241437020828479331791590826975889044453736504933117716485097321806993194388388554964025023872449320150826048442762915866726494009155275307212883939885752091703710801110825971663405191222856769413257997317854739689696932115369953957205620176772445649946162756593870831166637051213682015737738671429239902839838971959240549494814017400811682168534891846700813513085638370714120343270346066691622107341680223401596504156814138893495601482705302177995701043435641709538571558365282324930147209084137697750429809019568382829824851440478573844805956358394004990794989816551062026041244795517399209931368633087127248159098037639914498611926690391404426145866852999350028964342345486088723261615129180805566785996030524397214702849971084262109362865384597044468345339525893453033687149337508751770865376168685193778147087691058577963232296580309126631036275516018847940415604140927734976318931309486350961235557700218651552630417922174851344750239081417926993002401785177511969763583590707361957287234742807144419401878495130843282880799453702803180159233474319717837428340642740164835589054694317048383894776334637409634803849111475259378059731220923037225313050166056904363829146534445587848727548721270127267450708134711388519636708200157801370126316951042862847887855766388265131644204190669679972448378202546078965549847288522922384944554981225805621924309731597911616917875404163982866502322056679712212192116022691157422467713229762982207847929358718307865342941147247372236874654607288778039234756368796975188046038807078811755926139575085632922450869734649193796023887278208952820693669611261566894556846706700076690278446676552791071108855893013336713096078407246977902134234445048427723634547659968091972230178514095716680966666550661133891500041890533885475109419881834157913674698034736208091473279984550172105805853752584090705908556238499084664487129786511426031724054908534581421866706163144944480177496243614471469333256840433144139647748632228584696790602627467047822819030912954217072719418525675422502703599057816387532209007980210934163478671279387068561267196459852681371235260116560878689945258418320690060272944247847550589455965643495929483687777635030878089956759289327184695894561999629717536956972644107679204313031906556259317154717042222129895906741103556100440018805509596956483938903727217897867064114296706551146133545959007824974494667642169207131543693734726526520263927969393328634536735970500485292263778225058050546991197194892042240816390706385934075943060617709055557836050985259967310236386580298512509833462336858655602844855509575909419744907825913231830634670755626498843915443576438862407759202070913905654681914920155428627094721174095870143301477271722326549866265045357631272375302022801956182115682372589435699657191337407865710487907841518548662882877828675780410063876583364986921063535903825187937007115896400335372928015074149845310064256794421947809419891030679948114613101383021737579959898221782619840428053537659651389711945001669484218097744164367188351059271331059908145662498164090113190455846715123693686721841770498770729495371916483165960789856401193895859763751463670639037334547360562895608504090824398405653478366285960065549988936675807840501377194228618614578298367503779124111305090047380015243867206449010218246401276573659437892974015418415470119623856469909364181836568131365501989817710498884291312620360676428212306496344331101561833821617982987519450470979750912281693329875593013257224247686403631390002422272376343751944844865888715031427498314591640098807546729799569630078584658419778175922226582123547862786442002719918842958770078552144003156307479714207333059527335347950745155522119709405058864326901398905756940373075284447920063383662649389391723334985750636394069120749906099766292333060291613428565898221602975338591777646193261833345616807127110471903111916710914995342615906635008271700902153005038437336786753731821980039306241410355899347679333493126519535669069392020898144190671625068995843307568406768418120807007512357146080336326147392571707262483079010426400902704572464112202364176744716253767632990864119792887911193923553478500329921149566561137617140663745350196678076301770511206860751925222215577167924869636872613531867173543338682585049472396762598214897794348945756303238591736685082904276360634741509159544701850632508306601229303232184743202008469060169786125032410519953394987630194570547441527135540865623017375369388206057896621305748928472675716003162209942514844812276251928017931119909127618917667933994466095258865474849724630263570538225942706819668607737848649368580160537415761656830025021773010279069086826811440740548818582979190909533410794714533569344892498002373239593162315401043719311530204019933983266514597323523807883088538265628191738718590942523354901310546666061731362880377789839489583662239030892139929999768332557699820692543755116908049738547404902957369331376172617072662772232521319252837395352320073293170014330594779723740918948630732180555857401804128169651541028263094595075703503674996032599861695223262081982560133347074490327170481049426899939663051499236160232568248130732547521917132641541758418768134029854855616409826729721507499058975420344498751788531702390717784333170033136847611295938238649844320169193368981704699801838849134067831141240863198184045372146284096762469626843327109684760345228905578397529450584329823698783261565758475478572561985564799715236427691861243061174907313946292062798555373571981516598758002880126980323508346453297409080641230564103575608410159949842149731769703135101213528096304283284976609845766713850157774146944326051760168285459543112826689141655704530103992045335026642370669136336149441556925792591363735892900846916012436976638505181273871668936392872054060629219453371008565266917681950505673823853877231067540601959874986294955157753701855520098621078169292799290334323120560728838542997684965685674212962027787778382205690551103397277469120109980010393450330914003059374345763106189259725519294688819980373020132776002827549232295975889623085657949292345264823203118088220040221539131176808745842558824434939850222282807114791575661207538784183731069205448041227779884889826046369703314154164034404446155298852497180140288828564960434800666358852714390779143497029089466710449708983836212524826980917027963173257851679041438486498335749087304068284845137148552665561074151205514008516653360902092094998576191772788476523133016635319117498292939613313750894943547648594983527680922009331425086218207162899679320335426843735487335150421574306007397071746258520655797858787860921506746605395058238988105351949537001309493407448489583898650869063680948966022484805899731971685939370738653960775791571322160344667031681808982837778680521377094683677934580019331291134982210564008628300447740755338676686820722344580638677194643764738556180958391179900297921724291219055914597010916233760062285290460229321787655840075858165330268524867712116893366765226995820633980091715788906853479711617126658713572316977341542249684458742038289645774802068341263415298543247721026302538595414730406517104296403234831753092512418090615703569560516902383342150645823790194116593352881450814467271442349134155159777508706427617455734499512242163057445886219665714882771435381595911629984062360957800313943761496509764848917753822483292975099558376879381728410413039657775307550902556165152407008103823896657024815125244477780625040716856025344876624396306212412583002372068799357251281903249392491231653411511018211461404902693831325317103054892699668436891781369011466753003723710341287610515286161473396340792383918671391803039391340012116135375164589378351009827167569942706867433093827563822919922488731781193059502942548891335902490295461187590170684436627431051589595876218275140264846087022015667793436185457301101894399369575996060674053193539290177410315091377006944255215223312440842818884298815976558853757075448608989859157696468308454056464130676104914770332394561569801777437251560929547752005457958896895154397420681322963072862146203420497202482307975365332613497865096616046965267884555912472533806337040276359564604223474837264211220776805645126903539534651820129431830939788101548234557932857905242247558826523968840586713686982379336249914296788079337809136413690159487267885626774397726914626104527057451918865757529128391250660411583558861356640526258607593628310473520858651483443843103122052003841575782057730026217269886743352171535331590267435437036772116787247853871559886508360343134914133631136789711668291922222091537874367935439783426869550384507572712647497760776813948128456430512312222486227777675862765581245288024810243183263812503071384115079357475795623165801256263727008149299568692599017796007616977859972945316844998287494099810717693723040516597393405573469450010581723469750373185940373912305993086181226794273781423382871398824353683539480438107885652316892109847413433224096646480668175749865415095613628775564132993777954161163750567756558332013165277572403927790528626046943800694442519417716808311251249481482018300901663350980950343586167374295812240532800743714015561092455132074219228605301394444217747781217895635619199277484804889308064466614850561676939906130315385481979052446700385192061881211366881268616152079513872745428739601184306527033497768803165056901473301947749256409360360866749659558162891133237803705837146555062427173337415590912216224324084464539752840722764422616997696209588328414794011022037307517440891189023893368679968164692812021464192988897529205895037786217495439503704096481799716465615018061538618709795230491607589678935046936998830480331360685921724972020160459969782293483318195376514805534821048393743523509202189373173235620147977387871046343646036147578798184436950371377291352848612822838759270370352247064834776221074542580321387310873944761982720411181054229182537605819864861051278976919267731816475400614741041486462793406791805390831356691746713152104588405061988866279185163526020934859903214595583831004883025273695263691529482746168480259158248228987600028950531990950619856165269948937345221481893499516306747269024617815871937168513781886854146665587654322324580106763631785797438853098538777764731250861443143793242967769859541418720548560005371532768965411059225497512384133625389490718378909592197687868104568401481898200159638275049579653390728680656013365829392520797766755006785217098868797373703095744423862422857633804101245488389285048773180560740434877917223763787061455212194875942026561198152276219828315285120296194178444301708216029525917091626135375323814532403097884332309372835665941207331546768479537145090723706284496308525314886787067321113173098768409698355119895897467644575918466120529650691145626561656578925269249592464117327825043045644043750996880958680073754609326004093337680674223045632026842922568232934877241265785086899866198661090360805435866928065862282334633347954514597721367282801289484692206609869988789238582213177550114464644727420391768846181596954735653069587984483677439314786085750947011717695685800588385436753506948328283808094465138380882915366348476380591790413371221250218287592397401494127971709475654069229944758057080293921313839603490194089718467910795061844492209522437713402658102269283364462824774664008104361365972560181244634460060718956227174448797832056272528983562410654550666884102233772209361151673774539509479869783927614529264625926182858179207612638287851171281566926387743200058360019638607787729264752333165013618669694076304258808416902560528828630267409888825422556366768247620216161920146003573566091635206732418999108970137904593910874872534312070346815488828120187495284316620677671682285230210439502590254571786128545985113545566860279997608290706457504928992570268593650792881343868698548741477367130723555472024704486699620990397105082724516917995146021217815756272651845906631843494620842647829595131463402871106746083725101940807315014375527421437695499141941606979095360160126463891484882646251056455684368637187087597439346786432482108101327833940104376774411604080009020784562469756161216601534417706144972653650065838182224938262807592871254756923746604979636853785950387427810927442426070500219096667214159798098895473081675354302392903282009239109540324734344026626726314893423318843108002038067043746112292235460890135794625490239988757604217243621704715475350272399659652512494621196643974401404496435968402553485774044687996540182479917207963913205662373169219457306861957194690323215644411260764303836551956390180172246065946061453850230452777820125479751490684408939022225006961535476047731928037648305554416646937593686563894852482509187616217313057712209219850910586754044898257001779611908133087653127263308681412153165940681146521345053875086131206646991766548690399717089404645991503590305028687494073368711087751423409847487093598547693662104204213290779177266377370308239665224865969514749759689179417441291498009370862292611021671950262243365770050168813223198867809321140723839560213203291311657329990118906872724594147520761483038578367990110551800569736281942584995102470941503158384042248589067468277976675149855112599813082383695526614037725686054203674324310716496556412296520762964630051910313681982693700054666046477288185127533561917986659242099715921282245521033069706895847537984862167320209849065901615084395850791848932036257547267462146226897733444039613602670907442715127766813777868715069224501051196692794281360399607180286274446564874411363550943577846562489964291186468888576900716373773096447832950948989532372423298719165710716599912254723844384720547426862066468099557531104849172220427328356704035227926992033712357913194715708285722348961845919343325764043834397156972785985533360936831898235448528783559515020099336040626874961950104127406355149605746859247023873186411483099773962051851506174498672991954835443834578314305771756765049672798206035001582210336453569243238144084482347419710049861023261045145772432794757743982910029436361742860311707577539754188989444507694437077495369345504931448847520303587102265516679710082969953949465041912015572996117574759072829383693744970112665315102652194473530107343484779278759091178570862934277216935745449948763477819267658774689474250690121604565999331463484537597820863521836481720087307419773787125077810642874355485430036014592838067243608846626379913813745007483988664074824033586421383629351983702515843541717237602005454891799501023760873384305358536545170861550941697147223768087029711087428978180796684925476707616882942675073708935980238081422075226858989439415418419373274513840111582659552171434724880965620066488628977816745810717691587712950461605619920720851266013213386364817419787834074397933875223471646054652795770430803504819231087217580233158335781202936505447502488930162142702221045110737731143951229669342835976068093996220509250593347749154701707378161976733799430311066190306282917486845728189353234292385037951121403509778957714040819544839639050368449578487933611273551593370912115665723537627389065215012281603059526400158128210947401316678480531195678816851585610982872195505302258915756601330840223808442700941337404954066119520693630271063092047924099292709153238915070617711125605756406506269215738735128882824156398116156454146046314211782619535493974842375833739753386729099730059609037882942379046353968059958220689132677054767126494349827264289090470990915820069053220296704224897850596438741743159262732661811958112311584637894151122975525237116854244553944683556287099446501705979689201370175768275150957600726969861463400640608117381866781597856193194913677289874381214841994947417196973323052728383273608261902773858528332194065541214681091690375776098792205601669160803289299904714805963848235373912235365703730384807798082716427448687197643767980071438437110006884976804632067189004721151800266354636232194661425674817349690665388265011230178742252960325866104219038298274639884251959902815310157710982455037154957700455744380672378924322324434215073669462412578674319008959590841979128766553369028461384256762197316886007902553983379782447387738940270842976307565075290457466552963638527329786557341823425435550867657245798356952766589896555951330248300267998553810333433392333567945386571837246610561138457867189508127056841549036981387922871475235894346752463907480107044098134673385663618296107107442140372473572411760223323175138632691699814925114976864202861171343696031503408157757878745009287358882349433137758819391226510549922568179827538062907861685197965457598411176602150023391914166652383057172814997516024209798512344039256557378281905305171414998764466499598832118134406983776353440113847511305426533748886590426645408252347261531640233280547644186006984644472653729077410672032564478447263628416797548819082896033230210815084431062858525598245010766505725787142536333575214709795002033151835088900620286057755894110356535601978974586432964382002388059993361908040118583826803506224403374436122912941055785181706609141366045336372345534005618970334524328802342940210477887867933741003347720373644220186418190994087973768098973866345568170444581204956786946261590119728927307334770248870145900527659721835141061083474201270196354862415557354482113783497161412739379784659019408460238182173887503441492018047533509002785179644392201258697546576472015676445536682431511538417162911315026832109703075663051138000273944490500326857600977472647245176747763975419108596026500976014312624561859299679715320346974454228829410488636480242201115975731400105410385163121430255758309994022557123040007027480022346170105058531309433446044036901959716017968009359072867970475195971102078387375799868405788339825002882112091194113481449053281041960168430428743316605214402318084508057843465087210676228332061181090528632056540807877165064689523814306903049753196276474112197642442368896138586181311294225428159762491312556826612982159700956659857874850035844049793949492648420901957473090102910230302764813272990223152013814246439970260762461645242627067270948608218599277093592902645701781171143462633209976477800806558929406590367020112051875123622338202180343434691786827415585491657000245134164075542743147157647940609971606978974801050928287727574140734241006093213319925457675443803867725143252088459053444904610166081807488081962047787562153355207753904056197592749899613309754327139049479937435191007600286598351366928112305225247757816323507950371642007263527554506789664092194067305013657761315913219265014390367423292477369181637112862600840803122122067640903114247105513823537518079751227070290817691509621207501506381252293588033428747824680425590435216799057500184080650102182753355348658886827174267009916443689215418642836699681254383662554803301664988757200767103181579266095051241958461981460911205442555411408322039474930412208267519546076048541856988396178471288537966307487773162905724471820307796768743992957183358188880304508872042408653441400921486321512758082350310261392971498011084424530905223561359014730918770209501854379561010731129295351685047347311930082075535398381498904933541678558717013134159103875373916127665323728099342878745104140410981991867012419184052950926434644634406329006836380987000066313402413271550906642852844255431173298325467696469699039638014499522252038109615240120483988580823074488829437029933415250032289242817308213563931991205930487392651732527950436883831606448840910676555101605923352388645875760641258695047364565057257187152007995040158354811008232191368045112544006716457668485942285566483776719253084952360862601808550238601405637922570660919735146898386177320184423411970580546921919762736494217124984164638812716973527529542713111257815304720863041837061018513907664476637023462063844723838167900026362252906426213146402753784514122386332211815234359155569680624266793017709931447084912528310931418437195372294803268602134493417578591669759174284902896247722028437787989360161880673139926918501254322263081920494150582948523498992859172952009636210141622534077645931780137172919697609137512120988126634227840230902901757894355317381209981284488530505763327317261867251028200909449553693506472609120629836481714478096257443748922083116318249108951356282946890119464450603708120794148611274913587191381122347118916968305517391308890861537121649466040432768003503164110580410382838471707333950219103062245416428142629678304612444669717263339719611269148938062091377818469094128385010142702827700694451031997452660302141268575453314247505906563615150095130418046184583000258383252230621256431731745109090928171760945514537296137921048686580134471319915592821462897956431908433921563066934043257051936814008193918945327274627700684499645187926491025062922483412231212940782223829363450355510697007324808826570562561245228190982413234454675471920705815007037920656355945401273606524111161631988764165093316670213340334983550613173687354112365421211135955511708055347859747203183542430253302701036394900621934554687990414762015248817338185839755738330028419587151242741106511000978507448728628819123356097938872809859379440325699258650058857995763417722819890306108148730446386028387282456268636021728693402001930449455731231783729481841061036728199684666980138421847389290840400713618891224383675180874399548600162000690114065619905527084848137427698562385732535727221638903573952272680998023581304063284030482579624728250693284886672212854576818622446718605475212947527319623662485632088144021360894179000010368119723551726040323086048550365157166664154974340852636633985410528406312786316205882323632893861132350463771342412873104489378143596965538620511867525318606474704363850603025106239928908708787604725049959139548120234193358478469155038937810849068299527339112332979429575398709738965610183165693606962586923449915285356688972264458993703758474573451936252183358565216624410400343944545084942925552399628164411860575144261060104089152784116810672194622004578605839725309605673054207023785984530654125910669041447037638209079466168638220132875361998859704067440153712633634507314363878327783895954370977243890962727931252722706506219317502237541196392124384681029677916386198225434566290156823625451944055981927118415645084682336732450996873080795394692158108323110327934037887383313091669628547582818282077586347967639957633783840832623055847150070805837202393990034881427856454745913172427243606361923740093484708475420152952212545289666453944241053281903511743177855650540388570046121612737834702432609707729124958116419549509400305417534292362546116260612710137292743589198763856102722889383873063735433862844758248393690774364155912285993468274526685462137382612456629522438541324522835306770182571091512529567790222659776821647168952311146687476639454129863310729695562554324700721557270867605831457366703369077676128644072403519909974016145783639359839658966763845363200949632149393540202345573725996956399409464426554282269571433535905824929405506071427806773650133952910397875854039376468852003080835296693939488618712024255821822683052002655864459978140997212825845282272075498077992968505144155089414427564186514611400290049089253278984776565920009789601799424764560807269765103926351111863129758742099868042189502241979738505672311874233571498764493418367779577516092528973536311380388633167093356457136197773026431289807372738314532160961078532384810488565145268348911462025946151964001928615001134658546541163826446982398575691392745822077180656636200170593071709487807375675237270875095563222935855973827578160455216994994767541061624592544316876938302567825132782003097917843747243418224864316646965313188783155332951655972926994368840887567740843604466058834384740711147065862247795813497406349574662250655844309144926448033700005157408737168533480016123350095785200345991777718493549619037962365322434733062041644002666003809151381346513085797304397925459181885909042005310201427926874918495204488282836334357289011759213987491709020874839187650889322702112656909943728794716560600076783579003166359845931604012098497128798757391888961315583191765737966679163807940456884712468278208819305887075029029065826459453791365041453778847712213409301358122078356052456260059304453167107214002356895811216680766818367058203478817468302723702410144459439560932457270042877229560406420931123670298769826692153081084765541037325703740337851519503743045519525438287393160677845169011509310480668907834388696700363546505108750736276377832534640229288302233893070090310373855901347121595263381159503337310497702238018453074997784906304955091986988091275508378814714612447262952756680353255974092792371550872435071710403038939988091422385929692406844682170506277918803193216259895719027693299420256998744896279861035881801384882744064642775622712899347528771042851540388583014749114989682468984211371562209115198209985828923580464871925196127309884400171232951318508941505296630847308170321744219816025343817592589228385691503279831465538129962708647273300293663805478118652769476196021051257707793334748330134144334694617778110923709070635404678439887298939795871895810826680023959848296933287592922995819983493893108029096390002973518289359515371443807789997300278830642360220841036733401849456185089146645163746924611317212094542318590671833016101815891757449321690947242134385280210767157876062829745138739114210723380303746470333346202301999650515177543399998894100890574719124734870661443054319212533243964664721084302240672849743080448714274548688365105716686759870969262391314082541042842840102516695149713344293181541332045843380931786113822445272687120669960820971050226822592058835025624806076664749580154926392509539780025387680470498025514196197817700026120040625430734541395276399909910893163914570181362146215865242686384762605212169329437644227296926295444110470507623727510916803341457088204214260931890818816284164336431914278929401270026994308846042292135363354739733057334652056623608185989398688025060275960512085054961883114263120551255425399594279130083920928305914562720125522096008591545602956466459179474678709939587046695194974239325376553188085186685116463754786845548727427141990385646339985198637056823409009792542687628523999610733963573486483709497401298206106653694613045540484587527643554144286636336156824351660212695781531709970440481101535849380834682420927011122614321686374680636032089015806489882879936573547341265353378549906187595200576966553216173212168164162451095742557090944444472073221600445931966600284419015567586762876239270699697324518838536150583772904626115025410471227001820980020653161217707586333292962000357501468819726999414835558924208856567654549210550738472226213297694476666264767160108852288097573669907445649756952304699217144638306765025677294065929705311532653710681690152030628186470042873383764055573378693606662720883200405721274699073699061170656288915564512783742157476398735915355933993778883785342089624225007694078686180622154788035845819614109705060269016831242524290180677330820950237283152697734624200899842073846501474113269058474754512158872999314891822853560890576750638257198916137732182361327941024085172069622446960323574996208390386601308238856893172689664234447121368821268918810334381282228095997886184720286425255384958552015106391589458487326777110523817389997260536016318243150332219986620557884179779752452445891134782621198515541504962735099538338072499034285235098555818533672838695618758618261462647861000059627619319438379878185872392436448452077266456403471547563700813879996896692658037512675715879556033930107819959265788164388991875586727866249365117349511246250890608110416330866602364935908316391533464904077630909594031212477943824216759541058816812261534867857908572675932586832145638857763263370618145655303956973013446937114084030419933119002365201671242384060207406646160385463183546782269584234792533826794091836258993226430815664684675820055130276569868562018985626756093217596056436445865254667125022094620857506474442523319829262783585343345747775288254036537168017980005288948771488428799972639050862144601687046840135471251715741748796005843927058319661263808780592532175926847909510977037653258759621999038869048561154214014611151413427609298177415489563136112051920683093991606188252468193319609304926387309232778173937876953842169653113370789223524514271789441596714795111656814507194138033721945307874434415302858339658825668568217277001826279675368083147613778425521760922509895174177921658855999492490235250374540703742077657910022538955071129760574429719237366255438128383448927873650211273900801181511256952921205137355535757414828482520488216300179266498528843377154416313916787078225281890553598935844169008622839799400626658405952858067685322395101692962994769169393498254589302834030352958244897306158264350931146213537715978359175734446629290602328903823092044692227619781540984966831462905002800538272058819134942805631017154659413004406802416727806654899749796839243680227106126871401218155384755582493668197032536121841222223371800582438143027405288751669299118437763378080177387830306419820395609827416994031478763985054471246736383912137680891675938137134806458714836713784735742922002759441335452483108804110080114887712351145311915289229074349857159453830333205086538574179926612250460515551797930215416746281505847287347035729251960078055726441882617396541530183942915651865396170605451887795853527212203989658835381080986216877476364234241502919084924712737861820990383551655895365735497449064692799001160259997526089299636714624955520535165005980947965664562256140404402534735206130991993963659343892848895237834867259469981287321062079626315003663531977516446796111549798546763952846718429637106571028093774828598884833199045135001252365786560527722098647104647647699573957337151568028991228235201823522898782200916511593302977707565159768076256487638845401632528433266939322108614760135524559976338465622116087973288241591161864950317977177693843800449013780087082673211325622222851487930293112008706984204651077743303683669770314282562246600812487052813574383671259614412828892920306332597407585177769559492607810313997958335237848192412385491598707016404420865375246681436077678994795688979343629045328822597545298842991377247964926997860117255190441038142957522873259356517136373171942369034120952169027221697191538387286534402242798814673674906079567138205372505306633057690981155087279310202313536894873690327197702327289678576090139299944161337638337703754118867470919196679232422901324332954479905479531494061128342888332860124881131969239030531748867311800108575401582158764435255445191755474172788131337549772193910264375587640001477675567741148790978848232823088394009732550527141753908345887101984596636708895502312305625824999357791129131705795430777164814717667069595699750868681702847037518497348056448082405218894917003581944082902950629184413313883229283551182191694783366846857598448146687512870711749455053081706543845001871949584474482062492401024847724984192460580690961126569842676716006610111542583576675233344819371053586408572333355631707406775966395730474278197566773357402995827510473643322172750851787635213922586726495391829101537529647087300226374996759392377630173496455452008186331915099922301317433291999839042395892891894735623450318370118676769458941029434451589768625437758149124087217614333086455398341113543360090709781870008879016231206980014286194835960593935678017102521979694341703211852589822292815646215069142838748526228024567344114284959807817712058802125700570907112755640021025599234443501253569421136452759614405035018908704988702185178684486221643384189148311009571945786111719702417801284429487916471952608401385510984854214098557220111219939447021069362477476363992886458630709447049198084265769616782325439784272803888677075738684634049402573883033936490847764860847389315778140360514374807947595692035853538375544664554948898477151422166250465674207757526352413744826235160134449266361988021066880322449922583026725756343212349055196813303640256032879800866386202027248092368713834416462336323863658506595449369198955571741683623962355299433782831416788743016055936966556843388468329707282017379193042792269549338899334951564702011129926901248784453919681157735143474251409206456662524298094460314278711587479953669596152221068342382105671956160168255878852363557165521987860877119025638828266727520261657858017482887423037499337456740132847332939331820574305714327414475186913792572712523120343673000777442430796400410387364521176866575052585515244823807728511713754334148816482855969169777882994119208833666111220394531282767352347537306301138852258818569304335545269942962084643663040389531583716135619815551890344478042301964117692714375753431097382861462990304246869830774861544252567433720746784218405836049229762622478417304303811794636083977449364636977799780718256851415477407205439871249673004274257352147709776631855896909592045769769153699891235010874861205576771082285736227022062416810304206881088102383910646989549889067157567601802111653634005619163227043853629910387410788119289755314259508618192820667158373401337298252032284111141470498135484914494271479720030537929048523833389277965480909045601923616142116475414902421531634349094726006552149524237966886404537400391212490692248974909173959754764201126812464615454920432200161916671712509471650685104491081601945102773524663593653057786269289954034228284784894301321895201087654041015988677983951529803013447323969540204740589509911094498561731023497303619457346079532448913127418173630586657880939422044498039022997687695885143089595560119649411617828294333878282042248103748346356666358406764749291429798024343048041121187972058070974360669494740872185658260547826008116049749110907659208320820600784781609980110523762514361293708075082342198352692153917127868540518297247831143786386676563437668336522662411563752596229099867901235659777612449524657797754762589610777652157466949908122372014254168039834510657232547919179653418916572992640250695033896098946153940740582603675772822180427444167505590492504631232648414727202231577029244065587214400375311713069288388260959871399521826343181059940031262934013828533934123700838624147866508965189979853820806698272907363274305486410687884280678565710461043472803867680155175292173561251756931053538480112291498938539347220501904937507573541021468506254834606330362635264418070740479960219504679207002448877828200858337269640580740753612395398178499356552883527083254603814508930039923573972982649940536674620867119145396617687505746057735220357820105153212020637008404661750847007992855569872978744239932652972132366259217894510980026085893516358556290934991895489366710541641190629255926259852517552893990294605643294825391074170612489381860799429326114532089350619405937876039847130684666871466787860622693171072288620511814150939709950321734031855136310521513229963586782623382177385556328293471753728580630039265396002992677711888635757472234504153800295010917052612497730478123467480420568912430959923411212921574695262886301403292043723842113917276180462759261386831118132439693959056371808614161430219592034970784446887997133636072494609594489172541747116546983292287749273144152872854366069944402003092751880912619248312918803938736190473656791323932792001052694102374459730914268862506056705987015768151400765616269746146298361540447780947708094403928014205010225829428825695127535314674135374266525323708578717596367188418671940024716759439839889264344001344609007695698406314807593521110749800637444764052731549209796863932559590853747892529497578145386337715201018469709334923217017807920275955916148670715962205596442532713206829976935180588915806725310223374355798543864156879132337100314053431973560536489360245744836742963785751795614690175714670707397949349904371389759353005156630341750236386701904377362352355431805977201788038391303343850783465514924418089710510625008377153111458690231253814993785537213252189832275661453427263795422731315566816590582379166951799606480696556114898050058176113499225837811782032128954343538330685692083347630264334988078936011179101721436541302957148706200518527134375884096014568525958852783187543549276785655846139162519827771687771217513486444837939138125208516994569357677122770484427854840008834094247384961232974700188384486734371320365905794882865137001336144122297931000415825344376011576775512658117512118101419297470376738656029771975540710551570314931599741877231007113907642118774094238555529512314690432416685784127510743701355478110523166335726540240218768756393194531151368406066662884201385128273873599019416841203568101063563236176251481392167368381118218510076771272085225684509229181569685769673570143283208568195948988033791321395355539127139534984159153530555454514278930494116650630461100518030493686439659210649021246724502193650372020732895662924447453856993703347723853611404084407323259429448975788234062649760204292516341284472711206232303966062288986963182371375846584974381249210454738922090093132658783102105158037126232355755101118386159173823683064966170110101485365852763460846576220604127623607180622511496032653197864155478635986410983704665774851306330858570954206072451768323903701371698439668427314948446581667231683757164912743653982112458345404137668683063386523114159994720145380898503961190250898833847721109868103658911759812550524009912112710780883924094322898027867457376620998686220451508335915799112118047753351175038401884654500818720539560774256929435350811524990038978808009084855895464656648408906874711973228712901571347615712362344844601637332746895594484350383664477674183717645695156689960681387809597051000406031462037292443384758880852567743100954497116225333175397474743393663960882105496760773275061751155258929418577279297584154807619607397073206828186633943847238257723419003027764796027351619033402978084047363746899520135825715953997512170278590054524864441195272867319301323012514482979858736797468585049327989273330805918000025469083815322041911736575093465722881231420462096091414978334561632167463432349771539274963537492078066499676989437887721688196071226331309926511321235685284867542536185523507533605567688167485901415512553698473432940248563046662586263945865342678711449278565930237688705965058267325925472739665391784767710895846828523239149178730040338006248389753659497076694700138363555014785900199760542508093043025293285956241854414173575332269531364344824024753314228520533855456493197394314167187817446869145180478874907653079917336616847712339788835575725277529499934152774971148481453299396110956827641743793547448918286764426129948353241240907083124515857960826801567719941572360525338736984144128928709660360430826288415041546413731155053276610299030797648631776208141300167050164194955980443838631145008690061967845900433539980980029049964230504316446829463825255142284628635840135101981325180250558898501477836956707103837637306324035338026496410909829213689512894980863966424424067523139569999708676297434502915649054030674298440534883163795271028915083454112051639149023635172120653605057466524668560509710452733619870525107822705044334397784033441469407300192981363706188373480539677622343786823489311143665670723744866043054921048899485484072617528320899492409494933632310656061413084535674586042193046291687056358858314097096562411394079837104641034570032581800199377597284423111670962441484159057331398817712732752882799410734949639396019234816597261505087413877149580738499078901908940273633360758734660420678921058354479929160991020802177620323728249723250248430818780059147383522688001694045758606232425015400426351884949667979181147967332173419086164661637177641579708021428808717168506027686314883385801912867914025794029947999485576097464239136524117183489595819271316928075267714451876022336194962315383517425671900750433397033472338086444772685781650618427321062837267255551227596959401843520324668801278541427180837975529230341596418657006236331723348245044317380616437515845834396026639351482915371825554956625034430392595191747612235518103139990126671790663567539532098298877027607827324091322231879535292087497157716289300459082439094092542802271718306806356531958940727564777460263325332299733718406514830877729619488257884850040600846813834652689830678849088438177446528912742103460402345929513524206290205625307306813258511036650987965926031530914213954098002561025883834757729235150093345003567099840703062733708680684340972107323611746743738906902367945510789372043614234283079039026501406347059188232370501869471834556539872940574846460668739338474611141830184820483350118540341385894858644202232557448314359077423143083489869055251394072541320184053272617182744157168954875042514744694463859818578876673679508871621048866685216717343953060403622839595016596632237612330938735911282285477022551985138031205104418635896628427333472123986680487158665035594505129055051368807076649376853673072298144369833838948847307507032407835202184789519365834331806740710316147800094071939674653913965428503970888277570879942561782319364858064156491730479896951348867905481739219280067631362160331373133460405960312314172532878947523586772006774873780638780411421917258723129802347625570104430014606350457279159512517510280652814355320886887432886545338470264793050866154304431540846180655081516132291268657280586523427763369742909168837148678302527109025929156813978285367646350664708538676235544576536760686089522843455435534062419099401194822893249878164143192574112117461473496158305732184234910592618267944884245329089842658715764239685877359097557940918427827771383045631864336935683775584756077804209622324629126651169241023009079869425507464772507373999332843538166998474059901512438217116271719759154409026096870158598661628653508065511019913477811092058969888272007226187095466751648335800725832299523393349802903549565574008275504969254339208824136111175412432990667759922030865564204776609837545787068778728492605635832878986244354968880937556152464613153533773546391026122120889758360096531776066122862315980014192075213812896620987360190528548396476731135151622057853192480948612520920224968740880628661725148887419910164450592297442818108965670362966690921577191890788556454790371008604174471322690131291965831382216773846649448273171015341338065920544780190376563325284051124821711194404932345242903232182616917780460986961224383203840196629563626109525925878308575197264506591684303599269298423950083518767323113640403692897951204184667353547357844673906706353237708945347833227266485477829496665671307485457972938774892037079766714751707955542099802114155009562214676939436992033235378963061697548962897987591083580102272392065023651279501925106293571701326255642125515001908764484769500493823950051960114882557755511882716203309660879472935513262237132349506418415787766611788835039017688903040685977078373784340612048531105425073049637083491579829592026867314144506719946715909995241195824533660350213101186515990903851238978497361802316141203677916097039722885743181305986034181709681376405425501508576865509678324858686285802546136885914500725688327280769847230607627477758726946829983796560871901619816106426818863717129272602274688936846530241405868602384700999055091273905762346347352234470782751902657136423232613967065849488914099250457666241741094075649099981673778955938919801163463480840797008920146893847707015441062655320986660326718974476257543550538289362108233352517250141883071752771893935106634778088472116492147202217863849633244565443840803836877379461499186600677109519284530092304130715523288324875236164741060961792318509143833143308860983382546976506856699091643029458737876353804846833006189386644014595426181191296183333115047609578747810606292455293094039031569246237044219779152681019047197940869743844975410577574868866855762760418933386049716672217990924794328897703759362325664378277399158424081441178843528622931982770508528233583783612548760004027818113401346364757396987767575472050838336903627512667045214969459251691864393315444300323387401117903346286023976872154476827629677549352422828675051734095177200175816935953091103281373208612713282797394360297384469104259320171996921556863234568641782573353698159580969741594878579382732504864603878019475043425729034578788183740342024552582741372657737186268960712793467092259763864285817926091507096343190517755531721953075167550429992339574468294342067842193477871985939996978577483349585160572582468414650787893887072690865049151177377471569713958447407686169938473640644233648298051381741805946194079740924037117764007490305547950154040421752632670655814109680793567696323348608030673921594442234126257747286705592963717052107919531527621319939932031754694424397164445817458170060352795773217315583041718414967074549280756129346748141836174760185570854514811401044972736519140283877921477196177004850177479057416776438326154746102253822673617262072670818654279614468547137799636115017251143304789785214013114920770697359689202881268853468821093657239883142584679795836649009121274877569926169129181967109814815198687260052285040470302450035246874342562438305662241787651828964015240839979284015184740485138982213417893446777506687099847529145277174628472435354491716938762239076135284292360427170131960991264494573887465283044244791276101131418498223901099386432375791266332968322213900645534676909495385284289663798666646451129661127533804109935968124097866827644149085176362205348865496203873492557283866301384212878507872010335228683155402487452051282237788652996972727756381636024552738126367470199069760087702909189755835206516254495022901687847885961644871008433204949004560989948547525637872392887958511919077364509658673284657585373692414025588449071245974346289990224674830205904461057400541557465040023987602506480694690210051878629133712147301980620560174375477362240607989418851223851182173560730234396742481443580631030527267264592905313983627447726274256888164150248834358701912283795098498145706764566794644870151369240313522824352543763877825464536269172805284764180770863210436863837525116489155379254759322995409433186417024319878526693422259143524051903295397487967383239855641224565910917692053683161193218317978297630845713902929564870138683807875093284691428303336141922171484534227418374299659842038055651586544626358077141808954647097895251117257431435526444689848401085749073548102438573770237693963697676118996201092639330428139411410710821905938912429737225423197958757899202960948318613886948155915103071517843221170284189390644410338343328961617477877715259774010215413635753363010276631923819077065912054263010519816767848507921676496176075270346127583762384357443081276143974302254892182007044055715395764001389094867079252177880831899879060123989079308180590020570127260140568644837491055444417846502309536578503913960787923920928340283933059467432213319379138476544809190912050202154591545278679614648023654618121362858752589387059483574967001299857774789115764391756824068506622067234362028243598591844873752059892077752040805691422574245784969661471849805264424024348681507253290360154597701366672761605899892297985928481733114566115800241699717550972346769890498308888354067195059477453457916469392042690141205390108708129644793154126915130254186191849240273983933510008531956299774264204705778322800968877165536468500057332864007099604077067169544082490003743149630971817082189791253042188646688126619235188308406243118170850809020790723195263773990487730395563396920677651088340662828719475492288333429943694156727687647942858510053013894376988405583668218838299563485546872878494297657097387694770693034564293825779238593399923483281599564696329695190055333002521496329529035073331507424411260361075671049178766112962805947410762939272269588202191373395749211542895359568114200668063991011102103810737028890034456465775411611664724963047096065281197225930482748968265542031418266502831109868047702395343722439390190115384939202409007409992696387905190831856449913480679098006717992680729640339407693748112495891143892312139091527504912185730971148001696491522506007734577099507986362980500783881268493664669323688304113866815755593671094752781053594391109947112847893018864772717985243900929231060106757452631145469646022644632938394618629674376040003627265875848307592540231228346974581858762023283921498573632887779406789112190797870764306429384987964249859198580639111981663072172403854432876546052670239789558103370801359939424195877061632578387521832800423514886695949817338754384983597039862938351571753563681373149993276004367178814458716061137513908664009299256619172755291248838926729165449013229642648598843985563743098984254666966412317842593823623005173654167023876379132181086304523713185889005129121921750969865797827831484060216358113228664128010644070122979684992943518693530710342245723405756257109855869941268557080152677225631180158038083817149747965437557997305701171019748367654628567475722533160582819239850410651615316686255757530957644790386194944193667758864682501247768441102256109874349547807300986113486075029400192626790231579566336285072852461456120969790415427596256052667997128296758533355898390508902122131934627431766833412660458619049127336957135499752157461538014726330167145816224976812971239909319113696495528524956066408306709383471988079518252846943356851579915010698673909799174005220265803135573921889186270476185806900263058717009973000018855649476564235079987867741559248394933864284058903757638241783476123335975854611069530545319124455312479674178236398087413398595014291570947138273992531998601767101484680536510314242837495135268295991420974860625007588956684897454191832749332963509362673622394532365465009778193868167246970623676768939504815149882745336809556113084692398175511654430794835822708142293106911365036901797395912275135162554259211233456260966107059924658363558563932831896107543650524283050231463575459240899319535964792639689407914186054167881237821361450370668565998229905689823562332746991530417167248533398416121707636250862709871490505312289602971421362062867753332381893608836186438144071540059245332480200043843202285228889791226836414060431454931245292758193286709212561064971888868403969788327240468049899827990877738900549396632465877785495051551029658896396905621426405661466207959895002782561217209235739316273040650040819803778809472952730832023822480329989631953752588420754049318936860482667234655407871406594495362194478976808314503135676983411380520727663486352336970576775948048983279833612268345617743034087074961091721024362426828489018067307769940133592302302448708274897053112729622110165740199389045934803413541057699808148535477921339285228024982177928531912668259044285292757242391001486525169489480348422288217784719882022182425252189879378471388606293886013426276065549996371342524658887857506771228652562614257280593562306992077348066728162250736292085811621412016320241421391839304199739859290427851851844273693263815863432703432652860258833171859705962625737989650966641121670503578767297808084639644202115474482212501768335582010507830712107893900227241902238919600997950178047283790139892979493991381574150203761060112633768777654787086823073869000129827646144884646932196890730162762190000315363422102226386233667823629567554609135980396084838540663468969035297152908003007679665927404164158202930064884042588988133090287844480916418360378610764772023079396563896452396153166651910676326156051967505201227121040281201159303582287478269465287070413214084438105226637994498233728222368401633355252970738515918076361543649742301531955898526314457545121697064220026551657787812948433774771782167785033242555297665139238728709314190075112091533983968690051722692472780513297222076115417350565260881756008887552792126045877976054956582421203419295003964636352250811486480049410929769304153052876861882711770336790734649232835114724740066889550022193497821273478313859933868232304984448565556562237574729884636818095724433490388359322057131629786897568575532129063560842061343669422929307123572933661576706059659063857364637227141916691778981493775605258473312193141850891568786882661404462809374143003928273244162144194442052899437794802387630773915184178104556719720762058924766123008672556708377089972062271875934049618489113139312638537784111366645709429593581791478778774739183133546502886485675163358884149766854949141809930215266368261559552819361865608161506205150966685516246806695960975550020012628331120289076629345386985678086380825049595915918311093735119527472104367778651178856761769006656149513410266559394511716500326136299124576291602112281908558746430306976498583594273741924134846521867410980763545219076868799238139102183059329811617680593362986817524305253675578651479698115786575725970790222610408475953114676982664177309472150129585755111734552096290244509992044931240958497866466925540042456423639770608803075773860672990266015827443169257064122365162747400967016660994622977951416001583612689789199552087225094636392543587949436500624183321411323899346869158051504715498928451748151365801120198051992275581028589819666147964434776725545279211767165537294953049720785484439897684331359455350523509964183819894561584348351320031362590533686283574971203903497490322324519887537004266450671611586162851457157239901246137784055019945293751698631478311115654392545128546190288300764062303734063669399590739361994911618120062247966627546468055110056539181859498464351376061957699097059374495144285715848510355854592331113940203841121185241151592234599724952341850100754283701433019044852259022851785173118131106669669395001378647068485263039236587682160674791045168889700186943965822763892258823923500147675689414239289632505572071197260785151697922707810419705247814386368829879331817633433055086778769837558578893284223259397116360471602367318713571115819574379340693490354611514196442281798895063623267065560830909978973712814314782783595334928418627804416425419983111269690036602693400959178429365926703837524205734338113157066680674948488454179525983506497808732266949006385623433920608325613139892587067726634313522340559918337870431728463529996225994899031921125639029481655190343050954399903683867200609724124581344514241398088084720229609529692706557936418112686571857464443473729804665875410305805862585416837796309273463315021158352338567822853924046302472394172665945433489529855869699654017621823755275877516507514108276905407023784496658808729576949253932520687604897481823920769080004747797683161080798626934083307160377905702064336181184558884773113967342487952772321476497090863077475893590158036594175117954326728926655979367044527743069860659934638539560089747864853205053774621946245350507802552813420525381021851176499359513539089698829966381357354281020753532671166849448700579904446716418402145068866877822559308576702422206017458732678381608624503716488455937735896770407586743589943901403010188663763634383883142342238490064942243640729651738578926109270347135804108551474889266347608665041953913238403605333944480274237112055081459932582546517430336882800073979468466796749466515773709079858071521425017798577163445623873677209286552747014213698438975788684963357426808783588762569863175168950305340809436470098991378674022883280901447669114560789875252426451975122850195749336769594389421165751048405220855271946328702239600093089388501420828356092030792877537017048653147294798214645378245928305165458137539194702919802277627462982984113425497170463966270723295267828862563724953116141905909563489817866555881763469750936436758670103649315183991223577590531985885625441766376483509522497028098848041419637253258812794219775507430950995979709148907539495550072392177064974984532718481009548924561247360322021501272443042517494143868554793016744680372233068664200519409603271515053109336080971576389436299984668422439193978738632166784103624592995602255282004517416457619915764821935272665342427030298080028907810791404625453882751758316362802585139041536132899905196783955819086613192207329168840211166811120386715845361178226929548404286734729377829707880269444540609148119957919833827479827302862514076807193160618944081166472509316920973962406876979578142932462951532839562852978567461925197002750380665271011266873893157809050989447156976557946104382643119027634873432675897824582548832537550592076854731769757719328065880808031688491404812870544983589261494588485599141893554613433081643661641127228773767676638285389395617439203980609873081948875280997931872788796239828778764521651448750184024917179418354431606575808393586950167598957962723510882738386144994823577401192495545115632969969516284614941740538041171310768087073899834633348447304814678456927119219833866518889471932199543187705378180823157192929062985837869298649594767303132885194319640429136037685418218002123098973878062483388463754860090485420860518353388698098039156742281602898270213710201017149261903251038097053392651895248111906200821825012819812471971377039391185535118949384913065967357120553478826527931628637784564934054386880893311557330423869596671777649880533477298918612018916504392325846284839559532035184890698468853353695630316646436462128433075185742930325472900252659815430577395440511815941902668029151472981385182675588701242375306131210121306633607925206092133253216801834720493779624450106798332256375705662929622525435818937733506483024050580146683618584653171141009750420155506728799982889564481842164553695807308484785251330156636738803902114424960378751863863829941950532000949908773438865872781716353376854870658075317623986091132419718516888561290283926575316288063718047528402924021827270228779370529313563452397890553270485577160891799413271457428574822281244242008848723204002233886749716533961931639242373507555959666408324990807713108702839293104578777625426758362658973978144787267775155890447263880304293792128030619292017410853372749082513784273812119566964061959516540980590331097095147471344265584266244175933845488007727031591698096641350985843269211387606750587758140913952003872825018618180385779114479198984648083120409860859695496531489372459693626691840312687485727014403010987250861141774359155025484585964435874877844357020057889708392719369713041460234492844142684013976952454216913341654782354990658713628446479848746870584179816158811084483166451673699813797366692459913080022648998558405934580755933998083364496384924799559919636264262527767772287236014171284890406267640691003156904348609261524757438736391425431664832027470239662681634000803196795342173339348065605511540633300579076245906820468691143966966270364855544994598541610226836942389245665617591032931723447424604839273257666962640647578525206605956312277674148655389478279303225865608580907495344591043936281569745022531233860301119919668126545431529240890907801784692317241915155987750757660727771743066687871669053127951833426890792373163677955883525209699728695362204126488734015105068233777132680650170202529782651271358557921118589840141239714814171697509009443287406507491007632620329277698814773678142545637208589235253731855544770965315636501910070931851542250514871963947948558853447128728732499198780579761686443731583207697474904161688664352123830096699492198329699326997778808246395035970131602583839253396259343763402913079831426190727765875972438614950393041498345009972072328127389363261925617117830538633011630286407666213150905961515448662283733954442724102705746512130631085642566724064579462888976609546688212871106819027390412158630946757595267704819267905232696705397288700241714520268947592456121638412994253125338434635725226757907003805755381179729141504524654435977403055067828768370605797303082110706878459406692959043727947102134423051086710812902861270864352974349032497598899120534074222422331913317124449661222212572607008700954576880221150581416774120931418660877978649287638704826740945112838111864641997493211130142514268005847593738251540458804464846961465977766258761816611723378193433426759794062323071708075027741439434907702826260100898131100161773662780571209239558320140115593945523690330068424645106094852099926517943538296893635690379705586146251981860201939480224120554811178045336220210562752747395652299112330725115738943905362028094330635479865568201871077811937970864886266740156554707811095979060431318205632813558784568962704631176835317108397648291640794017644604958312360255541239539305203223057575270854377616063858628810303619930849619894402334633636765338796320678658266750956975545338013034688031236456025713003744731963000368865020665950952721136555544757400916311395776625395107562564710655135078994374753837476929519902338854308241730959008374642671112818601727511676497019963942674906040996500670808596778591980287583019636696583902014355312582178341158561636401025961903701614358137711889634761902674385398744621943525805984503351582995265681347439953896977130315152870083992376809036665588416106346133418403049240167885690861855000281764941701154969506178016344285018984501705811497867121764817816595520766872261652778205740395091296567584783681156862780237405007272462559178309447665133758135860920250065604257954310107473839637858152142893931053155650816810973957160976769784902689124689446966125303545378163644846576053345620185723925570923861674516964455087887932154358387462535716295769213136926871214479602491063467044835689697718931810340422572100853818106915104827429816735021990083817013808066147819956941689992867993935434811718745140960324816503296585193764532122842476737808594650785389167548499806403892234027535379582524400151899867476008573464753111124108020781893273570860472305576298503980509375132001006327317088756349917768857097778108871741222061832225031010288487683951837147599165094882429458118307821468142667705367708225177864094546612870366266433703226026165075438882781578811551928207404662890913956787523104970714325243000240365157730000468198882590697355381912768988318561862723903576986979352267373887825815754264275751389208502032645963660033333220449444947207065965012028372663573816846786933873198071602502204312174509947943269541061217441577048816930057563271214606679521078885701621165270846711902285352312032731289428925755478088472763527405783159760262238998819825683930177567676473980528585777109221627393562375527250635744695254270462166151564833618990904235095580694722764090188577062942818963517418580676567268226485586760244865818462727054646313570560253130178812564056392739331405318729914388967760733647410441609549436831076379522411962991064058182357049885931807662235218758922985731630052766748695809757722595877487924706656278523017444072498282801217794075974057318740374963204789551332810358643483745593161735577533243784227626045844590460959605525873862236773733635634943881318462371049013920628192896833034352599628122188305093760579780855835413449947606384942392752696498823260183276958597701210457371805634458928450794465977235049274276338351304194343774321591476513893481251196491369025898175237270454574427712045185455450935042660083716676978619367350919713206291131363664171194861221150596447991821873979432636629289057869286402761131829410774657841211848723288580055367217528522317326663988761664485729370222903049169554675014700773768434045285364843791515498986340425900118600013807537569015610523763955064418971250892361881042762980989769081819810893925926046569418954412297143025677025242143888701705230967645548950330802316461153449815926643310461891232936788014660897503764848674234595844038860345062526268402361950222647151948613767277602801622281769501299081654140179667639549904674486080565421120563681036569686753511205042019915995773848669438119623320600901023778687955785024288520120698956913511123668381308748986598058464276917060255531845733732590199964513326910409772864524675369760321006474250468069003135060511604109122191564312462370967198505968964090721960734375479492964175018110022313340258920980943369464165315104629630438150048045276214029443259162763632328090905909742378742826979397813911564330685600038841500707004901766368991028260880938045553107801167110808979258943850083477997279987335469467690163586476808586859915838395278319591296440186279876233489009889018924367063268448590495972500361209692005324532824743851930361767486008952661978193156212369310961688719996877343408355368385261973893657130902383223771379903785696480355917876593864174060186887262464313577388731586038998271205129875561012705919350139310952967483049546363755025522067684337673601160462737242966155067146892512517845158604222301207964098077028022768007450545770788190570089499480446032749990295566731763987519157175627771935460918085445687729304449246815559077788976131693234609957590725399211200337454120449804051290202148327840054410636333414724918243806773552618271600842339839570816917759972343636898970336768693020184497977247660764992589600118283323428532603706519072117837750612325592878419128314076868301837852850391647825364223869555642288952546995994295923929130839654139124544237596433538689959031192786972553547988346941933724656438530938960548225359149128479464087902123971176358448884610206718219735474531776649314663159860782035481833509131078794908585750528098221042130930283558957540216057256860323563957640829943321513084229980478190173245038533930087377926149745973659684947449947254523275859143965950870153172631179169495768471984131387568680369282130170368526882098228280261965202994528012889172481741830854151663447085644914641278132615546747944192834720821035106858572967014551189262474431251342950732043465377282265968657448825730073559198138921040693743333125466042750695208206003857744249538701676676226454070655648895165165138272689810784488271633402371067272311975430831977169624580382637639510219366039454064746215529072134049884107330235589785849137536285706393228023459429473089339046236599524356549921366265513479330668356685234419464349008983332456518864022674517806349397702200449804171774616456170244793786807288800822873298191767283111254021567542267922753864325761422951093799994088826596827140366577573538681379916225001898208949880149847207888967964372938254718536766746571805161961161196250737395697272083920031934999586106510361546805733931744934405387896639978475592431893922500686029324767019019286611197143798687001219971647857792983680571851217178857635847069194212637301188699148682723733175961188907076071788515885078211477255752857435126612973699153989108615137519647423881759304889371531240142216013194455675135255531964610971470712595472699673365424195081906862319287875983732627113345987317859571538432245465744884518546951347447656071397822797242674420855726837226141146054462215120784117062980892377750738091024244812057265405325491732471313306152046282467492306394330638286279857664178239380392801626910992498684903241044769254393944636466122562051570303601661542817159364753376836774672620660309136721281277886811887007413124667224706760520900581506715271860574524159226002818232826522339678479130109726764490852624058598865692701995709812518191026114288791026328766324997496692468236706871662064544827797247228004608523594269403893858000229928453928876198921252655357346228820471663856640762181246643049504954602891567568737992748591766912307947678508362349581840466903414488631237173183840704799001392376129336014861611884412674172624962371019309987760277527263517136843381674925971953942257952862603660899107011017708171099657408061533547094214391780774365540974819973026051578594008502689273510870611238330628156071333392198731059296755669478220260313031750694085004842683328312149517116938682826894416078786383110706358796849002166846441430332149710882598395205836915300911625427918953362817832738473896050794602448104351935659311169857575165733587966028903625230053292699809733648676443302091511485480720805023774080973215545819942301735165870735939212027691089575755107109126901213887086919969004567748912074257248837770431817144341214048950180939059571826465507192984734656362766150603451208541127886476277028588853279098098015412856882559583797098667497767708907336022227143749597204730285948505613293525221286746497801770381236862676220968547824977138378526604207084214778415967348873740010106569974649939248250342050025117596554504660872796851718932583954481793570431429946140985809849042745086696224177494472820085567153686313033373198215473534268188984430825966402504690390054746212779250508518203509964967921525058409771245178760848729601947502884950253835032136393971594732402508259723763340552593836422495973484569660659874856379417309837316105204654653139486460862089816542968184946804531685728100793802441975595214462803646198951470194258186923056769695961289332734663917101386762105722022132321345278560191103564373477839265008900423921066141770804177146802640792158097225319484173717317898739494603154557972481424783273388713304139113911171176100386628296065555246983329963890060023727455676172228449537102052785820929139624548584650129112581418508342216689258470334431062022198907138774603324875840237899621675734106297969293598266716482223491612087859342734271128200033406665227474497446198199034926386821913047169413706317610099289759086545794234883973868014310501876336611768784776334927660880961741279456455302103179986945928755008468815122189157725505865970978408786505581077456755735598753919385101001949541427392233328363417243245367051959355547201945428454113088666107629939813802979153181996284049194553127554042413789111245094096590213401288194668338709810206882056046816716866374445417222222739227732934882316960300664004814795166405147949723256430195010888270518320653020107901481585968055870545208137640667857920252404221488247907095162257951366401121857921446793495993757974937326235960632271611874353358076169365406896412632221861586562211254297740217388522807483530855608815223786247599461752346087833896282945496213302410498788166740360724429339717963009403595684337331513910868054298740918781764440203842139110797307166762299669240367778734291146395424116097223259098193085911873381626463104161611647716629486476653953104936705141806931521927702823149334927030990711258794870597311579283910014718501548385333998579258396691325431349833076901747559733889506430952575265506611427469488971940315617639587770618711467204366406583830783798435603173427652988210484404378990702497012495748139951939051354704908124583319930031130741980485234415231209245741696641115229556510528922144416943783786394495006219604755475630327351330353042231542852526369307194913934150632533215200984246627906860582989005732570286351246911205711745109374995822437603748377655068183268053031462988737568611283669756640754133582496511573813126967822970250168125484973230339595071017663359507532914192666791799655300476835116436668616878127209271683010030962468638093960205126793764488646856266066519297833863396477029861313494745457706756829349028740087417612116926746389100178942965156553179220458302014400246343961803101376335179700684440978140804037247075698343198416589350168951549837109215336774556043420968799231876180833513486023990538379116034555341709699388950920362340294854115996085157512816288700831481949065684208356945594252611053497650932501661243408020502096971550170865834053912905014599525598277554828941657863140160717786188073396040422058001284501791350758190394209675796041001595110124273054738270399141338267230366083417998405108784812296463036238012764893725720299280326590145721929132557458295377294462559877098688977190886849624008213273403363793727898057782398274896459021782951314540815886798368189354999640425627385183877347137868409168144170136794826292077538522903190755362481966610810927110843744330155769875174225445892499126559704607661838381818100131494725536248438386952954271539913266615770755143800487991817217929313536286689579268031823592046050685061122943208645619516502711071836093089765213348772073036381821204671207170604690744836687733942044130573348472237861817184473671084357960921827175363136282850002374567638805880200389919759782568321330705588575218539915100775200919135203719272275457828071677844787084715787214367275146132095087386341346812604500863896847888608254803034340678198618743140866787345935169694460747461674431705917118724866917035811695191805971922492722010411565418631241372460195498297010091253181289571584581833492410589488093538805554834418604878339959893736689407383666541855842575551880102011815080478519842577780338042327728155790855944831556209845228745774418840467862329715069014484604305620337927650025507395800325075673945858758647471164028107580375488988400362057778287658022997516849507429045250199947373727273518067316242140309736761569906963085208995974294397399440207124611893785824507714466626936445448394304762100073417139146615418115808376462526826807041117862705119194347792904135146624429639057210511805040750451374506719144981414387136275195615994601780282804522937807017821299094459481167144247289736576672195088534839224167658991732745187403017592549423462848840959698156089124522532318743455092408950298783395149424346879973464414635438182560915159664810650052281434637315996907256263185404341329787974787691796200493153551060966645094813979594516961720834796821217027203424493486551598242019650457612095296119428829238193358708104483538119228516364925621369595866779995866433351654399590428528585895204873720665662579238505894879088232940920990863437771549996647248296241525237650288017684877129273628021377706797755497093310044525308224790327543320764650629741702846025620943534111102068025674535902049929188908861539939677795073297882919475714702927924221641886658064550689009213678379736062572132320309361135712510986323438039365850465261757921190028958303288173440902019305948584160501774278337128329888610779486096378577280746204106803949143775006631870200687987213261147204236583370400468746102290830859458012325741582352309308862340018409305774512934474787458946129131616980658685016956250467008842033319854921361550695775102002812842201527207206950283012008457658274350172234366315235668802570685382292074174593008605316428844567396826475476602958051212794741295805124890065173183793158895460966493656066004506916946377461333372596598067791805146026966200028873952786316055284545689504684463417141554005926712537763603131609189555673507621985113657632504293142771558741160507216262896144904863539057030803447957608662202403517980099116498501911462992145564423432292313894218502773278261985281651716843853780515934876063463921504845342828529869597525927255402558155253925398732825963212366822259391197931521618525501561535662141490415239380313090771747494604590397449327952070410558169405541111900948063657543101258728838029043331447805241962396477603161980758370263474910723422344663204681032201239773527839875906169321501232847346117785257339621593558480398807833365300114471783374316424109159638074308745509223093520906855554646354303796903017326447315256913737605289471731050028901435626597407329673428931569052461748077542436358676505090926215231175099326834308664358378706218648601739537209782747654734900069726245337474732230805333732978126739332091613996292620315930446081296882186780098609506727229009259732370691037342518672487630797621153563359608788399211511589118450267023310878427614872691530262964193844742034120651440248340795662527522494611213851303677113474956572111405987798059616161395978861755808601369299302999360367231709191325019975904876426932189910317363273918306008748599577674442405397632565774524296842914387711917634260839956761000639644550478788370938324361243322111162747352360854816009562993093166825594591487035470093577947976388643997850152798714694611786163553356508985200180336995367418955496889932614354943936848411577229295423772034752549809145554336407873156572067814983763348010145240921494764609400906677185139631903351748161590969543475923337816196836795315180234176620188355141198347560656593120173548348654463509155795190861293966465677096949666303394192198066559757066566694798946329655686078282440456016014503270149410744135505004297052238955996862243115093838140021519531779128727794002429240202411611900657109644488201755418094207204601530389956845170070833450416058307977426525960303726139983397832102320269515516049842325074679529038922703660444301105956858415657128190799355977556099414332048521643835835244503639560554919860683165727102832449883379621355800398812418692788302298473281490096975224582342594990846833321915935350167369343961562266064275748783337289048506423099753884741576341051279001126880893027100384639439491487600774362484912637158599952375584041340755731738935073808722132578371295760614410704076721943173538439933874220586964810962416371343592963467920053200134605626444985498590619303715938710937339179808027869270838637511371347890522280946859221990900701505328357768418651800607646214370748304141101546620951702552833927559544922191993603264145951126874085012218373957587212006478086489388279564060330031260434867504538567163024457960002798827421782053394692236907241815298224105777620479853685609270792874442791800153785355155066342133186762634762414163272928637630627471095111044233080937254408226104860904900355591658664552758736290011605933114072214989470209295194563109874447808651791893876147300468351670219469852978787051753986080594705847199116043016354221897043188713207399379102377595850642432887026511306420202289377136622413955326785185968783466877398418300896847127062520763844628614527922913223896163686747551199431694869281356224669364893722239709486157696496392997723859160795981786067848377058998376483001679435774335033624504312528786975768594214487689049810596210809394648156793868296399566008518148796136489881403180719108496970232305012318101918696681501427397647449232842370880404764739663979095788854068286906633793216250809285221140211700650202199010672844935853607695696093323746334568284516999809157711817471986587492553459187224066938769024201480227608306236848683975218178160346216033569889375065607361788748116512152667383541602795889024439184002760643310919676307664341549756274791589650661095039811698589633208796898840987986435003130234666120151048191094226928732840397745030016311917551263836195659773622378446198381516492358453117713814276263901850429544009325838166666010608605769590446804426509230887901811490423458741550279017445923356955408375292005787026984975492770057222660146928619272306831177396687834837158344986847938510001580618400920099261473965352264993704013492764530574469639809585227893188945881222925122544270626345361888703295489632518359354847497392502744115844742319682604875750043129714216918395997624097068927210331869198964870503368173525755455769499552592048883351933587866262366825802067953164398330208668656377145008546182276197235720647306171325651679528665110077159010112006376325235995006448217209943750725618073869618475720040432951037458766217541602603885511795307530493554848229398073798175185070188912946026537382927230310810960914232464010818891168857055634850902466553133870900005888783484762377586943154245162744351860226386758397122661483552493283504724656022252041054141420330388610580232656432378085219297391060056017198714172138473904354540455896925207268926822155041445269543718185551102642933337443119227956228983194622465253003536013063269183965703952492446283636301872880900400253006919206369717074534044853000106708096920821941610287169113429761904814584082787693625120444942252889250060778086528516163191993094178384837989567061250221038415775931896188431076030730738704073334853600585420498519622765729386400682389816169579273446734477221437073623286989958908689011911051316379396445062873257751380955969702663684295772724103257718253733056643871913539921023033770337499001776959765053788276086075477285279306195204077808194210072663471132566695936666522356419247211881626272686996984179400418841215469061179876055857663695296800579094127371590775016518550167518514212278482739171019982046652685975242192329296586320854735869098481701097326798899903117051451967938184988171034090192740864472620982804684758701801189157431612409030165716859029000465524591148145626043822203266606015863646142219945388273131074967442385848037301897469833430665552697190353086054508612991130320587577887082208172899342611276366401038480613022660751178371619090756703366429827897521045299226781701730467221768906543183110374267719658068044128401350808420289530249424832233864670064289782419899926220498642266454449141233120512816030176303985429679358548512927681814530126574572978112975083229937288497044590912165616974712893118373806820786325750223328379340290218772160685665017740217540127542323776816249479986896631233013470607947245312774022599804237156402318430137253224232244780738389877574275982679684969253332243178945343474804963166659439026061635325771144459314355749304260546085705709091969235263008403168718224643480422797415845774716983091007840408267396006765308992413035031085121770969916597252402019459071128073424415870611088489895940046357691008794045350274214937597514929353943671804602762856576188580020792438473551887864450892566188156298816855362243938864021672062090392880362891536071973897813956917506456150317652006344408197553974435632071121697524323048011750593121978803471975624169664710686404591430794955429847885482872681283887684381837751621452706480330703331175030110221786343429724641262128704298980591350709552280744663771980897425968785313809861299271165721406231764516973189391310315033612033123227623211420085160301568569744213652640796236376315712261910924142825604860798356176502818026983765783740375426539456543324193678953693441741440003148820295828459504292050884093145496445397148134673635540597257502611345227953045074204563448346055824451639326572231016150282342004358784812872735616509444425124756202554647357370901856548451093482260265823859527788065496619956321219927854294050755647513342392685390472791417215311846167247294225413811450037381390459068514115417058930445520556127966746414197062007984493175137553799989913193356398319282017396958241027840081369287868948548732784463283692450728289799815108946456627593880896518984650897121245428465908087377001461724079582735551895087456756132925774926404380133201384840736460068388094519935112988265601573620678466765963454621411057248340127979387348684600409959062961087884073090753399824560534847280618449805238199356248841964392892100250317256634602555322052548378686503054927530450031541988613563751282079115333840480946419895234737679121901222360211151479714467032090053133322401713690859071199479191212873005804353198579252597065568262814510762168213205980754731562692481321739466205522462413679979930346123808583832605267282550988852937883030783255085887044050681931492204174590423395089547241557877962391149212021276045958619681065756146563305363171914098262998900713088238044158922124021939715377946827212560579236875050487376116510013813251469330022559521159677398510236310112029591358693277592345856187281009703889499119987087710768543868082919295335851715065082876893704577721939463009756138914392553156672353394505643383506671944939872663043647112099196020026582306246582107127343312441433553190460324683031749558713812236870222357604099933763590191053962434331049593406918515872840697293055052960452489832875797624286335649131526663148358415944513318431160751110622137203940445035925262689010800132867265572493584930193770982571310818095134877992433966095130000988815306080120038052480124754873215730642097241033704059731857751509410957288703236232655517635682172726921823884756441739048635903789849582987247886860076574011109497279688902296054054093778700277765712127162051843279654292705021377351134592538865802576262360452857031004179160891352320943028590881786609982212872903101794234127664284049207913374934601288643814233830697433748118374405891106749712719200270375481531922538586853579244352116489108265369453803680680676269474084858709959554914494738250892110896344042517812160201838059622268766279094679347594855653029730701284185555166240428706183805828354027228674694348360075008533707817485586518293656364806689597226997230069318026512512370371700133592189039646473334912921809659931244038200164485234158379652525476725417372926177158233149698915691569568589297693702165269084169153570836661844993061423743038590436179642404947692180843303567033419979802856673567080338230430181571788338278413807614720341907899962898800681698348724818223534159762573875555170543164196130022582169165495375546506413308971307478443337589235867020736538183490279222625345775011114546523898770121916182616563462349025011372879037299839746377074391591173051572796142429524209866151235426767557686386041778238261033455871861715326371690715214282958575269489499976421036116074568180103955635628514071914297734992907592068768559979635165186299509677361952249341687099760104736389428290880001432121443316386411348090324454729371995353990744505099860741470442303946705261280880736204759478221397113636440335404361411608778701008335036058196834657119387152158499855795412715329556366503474889168648218491394224775683861573926333167356573109093373297551139453850001473293971050703467878269999295741793458014183512979772652754545403897717284649405055900061366674204747749699525195621124235205894487187327377604915156003991362492998047708059384539562995077207243925331797725221825022341762608299181362494528670808506408526502339049134636711053034004484256914428542271352253299366110046720635507671546270717957410929967079436814061776175447718615010161518906413186959715607392624565720678885552044663471467023160189173996317277743945603955066258586358197579689064934762725886793384152944688022893457829913776722108718451528385936427898412963819882603079608140781369377615407777156511543811266989865506905406695464748810890442819435188063359563771350640208948692584482326842877946733265701331895365983583412992856400283646794499488025287189369552863767548432674345927388753051397267100586882382936390405965287437015908093263097297227652001869407456769406646911533793858123035817892251188350651836982883246874077387154135330452645794034406358089885894783154753067444175033178769481669001162183276650937259714013216952528433744776885691624661550243779561103718281514473659321051512350385343498202883856736269459122788281761083781052969884407156261775633008316110087147797004968893006382723647239145421366312433407997419964619048444029615688569995702220473654973721427038198284091726394062220084717736692975430118240426429693206664699368546000035048881185599604636141621112693456738854945436601119809346053475633810063540327042804753655930925112571727764369677417363246623356426504433821418124780448549208303966181686466935863314305542250778531208352132807682393318672685005440657501109061616066947532407236248233622171386142045000448384834150506749016887995918008802524897332188617607045481206216221418250747979706009162240789267536265431859889075718623671658957822289298045358026930749425885634146620251220992735682417787447913921571369171160591569062269190816929282279860454583645587458408362083898228986460962538062523592360819995580370436523700101279033610280297758362845707381262828881465268607994729475181032152611282498190103898050771351983430156210867073008630239458517808519058493534273690898463348767878369739465169938373068429316229157884070101775149220703752887062802456139178903232304652409082592640699765359431865625026512645733259327195722009837792397645851741696210816324628906289078851291839164748968157860091981817559819140394845771904539766720483108580308752789932405694946710380997414597181682174493378529146555306716988979911572029040659504427262503606743197055882156437831770968829033436354439947111888976407994230843164578531942847288323740374718650151688009932548519434674632845105420732655382597876314329675196572258798866788581203847564413638486071884816071792890734823986678992580779162740644360463218002261247783036332309625959020225093516909339536628108425518837078872325084868621052764614020066306476226719853654752656633351643595080942348190424284132596204366566422616824132815761621897197070127782047790084720014329175110850905601038848921609077719624932868292776985574029277760355594926190413822827154076504967335393816594161958242646536690151457990588174199821948608511409714385108003889182925677013387196673984448621969397635580369734777408115604607585368447839576176791894719053672784414606978584277377557055218493872702012577913019843160050234552576833730507346350545241144340341091799609540929103381179493307690344180722086759305258207666149133180850067695129429877519744304217775478726735123592378718052834137680518397254763293663907865539892426130693802432046522345809248328705208545712244422855127494066276311378932282691705763726001760977599517758366545587918724628758749067765539964024647581255481429002256510381832068405075917299091088580176450256495601435898921205391582789621127980134147756686828058855425734553312617466792519326308809039691825447218391371455263470936486151789208268704631812833938889407276963904059783697871206114067502257893389995458944601148364818859584181092394630152167441789683732105197581625014623609301256250424729043961739618136319111748165366005384862614946987337038371494906769507621206886971805885827729523422945591522174061086059362891177032392965117285586572334098774487559998601327633716778448509653690186954599554166081225548065355815740625276151814601981128322572505816450689724823864488151895251684647680749935694873864609103851581744979159127021805325963268375580423198652744980180572362332695679102836849952109850019205603447420148705194224373412004310213017217849929808057139005330859762680012318640494590397601864111668407065825549274201850744034132053869022055769232773566358660881410606639419319738541279318653214478664922545431238886612914619665579742713081780742231342360812722757290070574187188549624528275323040119210664263701358208013310555561564038173439078381659768409815398829092162442862175015773870965384844930642648269642947042783382627653617414232259758704709459042182362676969750200473574816957616516541370204190636726326037890309734828859422633000580283988376536751626866213134570550013878752480179012367895808432558304129848372929803825186916946291917655352862580834068565591397220794161145007675006044982788551061803634688281600971887818818187805943454498285431859524397996715135818428302333524699649340823097127104761613047720467665397384604402027404384169294619616130685811959220806982269512866020954124029052013341392727661167687592504914624770543204863688524110333872549374785316773056497615235141337052607074894424918410055962907856054016603411472045217222508876704565737890501692337053795612152514971632712030953160122642615497808163212619141115035311325490639063479667559242040175076415808135642346172856074696647829146089666584632898677139622228651308730459165813465912676851223285497915088775439339426428359923626277776138243557133939548557449627127112523810359666070744161399326501477643936266876885639454355560850146212860166906848592461233149264524134581655473559313351443555407281934663193676298965944761963553677327774453794153492009075285435326758634488784186511042412501208814694091244565148724516407354357552235643971245296399944200174343462689622576888236334584401963031564808505114297113272661926437948199677793475147239363737486761846583865974378322465690234263451731548749130101243265081016532771646716686206264969198163195870772242874521175793366421904054541549607043879256151795050659966963114748065740282802238865697182146450725694012439426389509078728202151196898732385316734467363132561050909832283935918053870527960368573330938798555344004881498710844989502754947429472128855155847928261045074905691815071650500981730782962813488847503240307821911640094447175216658739122693494479148150176179086560951921638742560184400492289498685479134016161216410410432854280408715397794610768532275155115923463613753505392023825643119737208146359612391129757667335762037339846360428134600624883823002452660403963210500374403675306089375950312416165996172098254586399802293544501946216821656228352259186841509253998749337920799922373378028663217986280538935025510717346173587080940495643904485839648370126871358318214413675896994602706561015115957619987918961120306688522692845306522443391687059996524695166521166795729562668178560810193965836276815910312783082343442637798859795500741218040777048599677255595959691813395207141652013463018261947407600070954339188591979581956178260235149845410907339748012592769038085544983266681421782887215437810803057832269861322856207890079281439626097431587770015426590617977240106372855685585908035819905101433044211182315191114679693097893339905460905882930717133051843218529371135387208989104780450207594690309050958085652691901568624903908977185648114916484998471395320741994016823596322534749821965039572628728129389865303090174533565296943050118280314059059358949333321312727436198611701660824834558198568566414786269654389742976561660277652769632944791093847194190143566633099590082029187781221094813308013089039756499260177993335144920330618112713362957349004825948443181250623595738273472923117414410206969844436775271331275170642427091702125695361793009125463763347674333126811991138271369980574862122808594755588198102528686474954764021864891082973956661964571949443534769657951314840369619634016621242941397885034129705847601625027343786567594581210135233465874799452099873660542140874413180097196160469351600042566640923854094486242684828077657952058445667637793636453387206716896998991788028649275329317937849289956740794237430120466732572673011818741149029826950849185057241569381293444836952553002306844568223509128468428155468791365781631412115747092092097397303949370967075725122665240573781078732901867442515773217024210711725719770024253430432359006087074391111894883070012715184763623286701247646596524375437406543596563902906081603914378459987536616608282991111817263294090216330631991018807982376157784093214181580670266454829880654296879217042329526027478477100148131794091494522025817051252582998340640263986340094937550581195023064414417547204065087255053339938056692268281144086980751363268669455611343738088859747127405918756645137623712747498420692454150487404998773837646843031723935950860314701603301523496549577645466444217829669691664731837580102706804641497880622850781684716736461142085750329747955651323726387692624803600767829135285828868978711475456896633548419991665612682834497294864240917929807760889500985690929159676250974015383242188774098393087171037728680121513333141544402472282800773325425416057280279670809056727560655833422552187891524639172370398401393958052519002394718400158644917149652949624264525714895946208934047787624168432443981161357706435180601448712871941539906599678728567156544724991978253227878654329983136627411872739098049895715443859246703300801330379406056440570448410664910321549050033158098207107336751678144146888244074024634847003165942496534338193361960518409000140302432927930558080449639990741503197038164893713134545942700547896200646834320358061675767119886218811359547932479786863248409284757407465281438402697336064757777723505629586504170274999896998180432498491671210343276028076151502198166007045038208986443122559883217751103997772496192614505630803731348363723849489372479339746477220173088253585404103028114922064230906189840810466782257368402007772112746703489603277518730398711593220460747768033089132157034832539919353331962967759200980701922189972508962883744526375228097396303374039062054247509710106448884399808529640830917956580198670358634776704225676293265971119584159410755013634235049923413022502443789016897235722850625415475281598023166609951005916575815130885372531910412923256127662438539786578065903843798709694741069567306785661187744869348925678424356965879983049357776598489192220370713152161707554694623121988312874835580943946152503200800292666929871891174820077596932969655286712191985799251133005223480745512060333994298146327827951075191696759839775353752025607285929979864750529040108382073020701940901629595888441427211045188994881345146203724276159987912391487855622810732392226197098186480411431479091908503471678194085434927071948860105256233676140784891702601366339307777271690406050189737370997943111453348951701537679336428325626276501645010092695501890693899002378744133902212779564673328466572766653995269926561583169554231530740097877521823558523387799713467246212719343992909590060622560900932125039569254696525976379382983198404489204258289925187216584983298552092396281743567644229937339888447455311646726437276634593834087829786754082670469089145652852386912935544889097353689786930552401344097203584826491287241040980807690414176553201658332108694306118328454369982578711262577601607182679831154860261499087415714127224303931933181249151872444312147055094038012221394581830230354570531939618706851457567098473179002424141610180429452752611676519074613198298452925841460121125877519225606695085949008330068916575920782298446408236960904719210402336012060949239970245201814406754310158862309979930895818771795108039130214963403863713129097587511317084316284259998940264888530754580546558372887806260182544496845109720459815796825140327051158647218293920723465496400964805462636404319313513640287402810350737720904014795524187855023795872677708521708741157485716111733125126119731462014106016643063660367098838593851320348695071759784315824590155873238045127893206122910346942824327643218393496132845894866973839831090233759037574509379323694694458408244790446411516577392345803636563982951207041468796781360347362553593979281711670880894527062595991433489750579139663538808789378176975725122509150652860367186456255420895531208643457799963027067455658532778023531788018073511682636862433634849347406344029116300172567353932425018127466836742935537997576811819162985534067801238949031713645251003501488791935184131653183021717888681907005819370451823941653918027273252686759816675272335619083136698275063785012215677672625758684541045202969237441414110560358862652045882766937287420060075151120382740750427441321271764409789211808375285850138328105548044181364897554591038338771492396753444725351050361473955749188119615461139835462774750820903726082695370065162132991654610696821569320470819547984473506056606208742403957124347456792595318087812066623338357750602072940161381698179907614839309726909313165674636429882598558421541993364921219365975931106531613332573595913982937780614307797721383303410296701022814146164234102867624746951235077050414618896297636619955584029977304980652404974113773297485084362018647481180426320165875055542708528447232602139665748385399959404497335213160877813900219105349684734235072780630404372043398940703148371935471158369880311036750571715418209213248257094166832267365735116128968463457510178111446288187962022523383225730123754621820784284239516858304447768153553828507070231385610903729428915339859908811081013033668750007110524110675274230961274614795528474463848303977236426599597328259861521676783100158095492735629975696476202972155799883913285391473668722483925148536350434409798489132117210899335242479948681897829846309050695872854038778110452748104914448324333190947107406950061891594660074135655599608800125561927489739182687763385500092961875126578897407701129630315335523342363509483340236763047837783205655087455594252607010768833650765775414112072969391676506516908122052873828827591447801577855203992326382625481356870018331989300911895458649636608579734344050586723422695478380075605311703116266098456677349140593720121833028466750906421169626692713727790476438521812822044195426626249679137664434198246685585422790966183080955327703721527651870128623221036780659664263375292292946846599768708601192701798972594448110336833300103512402657696038045919129533508460372097188896064327599521424137659878775134618301872624927852228198920101266771267428352269614169776214932465693138130130648510020064446975609353392382068106190594246115194038395345321916822806014822714814747286545293118932197138765627070963161196812886876153380110778547487518541923594344544191309926349800731981088605840330225868796745584911682853633711106984362820429490132950185580523854526461481454073127262851082873182394734242564279056279812428150644822213258268996333983278726496541025183565528708124920155147227333067289619267241649759561445692770568052483218905770683812095729732904349176834162532912866389147524235867049885433438315288569427996539711844272674859908245702447380217194973387852597765904457786954155089551405038312863036622712371562192507153135365221894973111096173476248972276682364173539576257130299363871234924617378075348106543537049270205788332006071773819701150976163894751731753894161368992540812089865316470410964409641229255367406169187052012943480073937976840112733879276183896909837734194615801718307160527096698341159293201864977968721654981226385712057529740001288299414441413588699697521927503366729127976432900058782662740265971916611267193574169103992311358308245465332402496064600042213557824803106785143280186035853974787776953021519121914936850762854972053783521045702433961226774994781008928662377384690086620850858453038398362009930466962927191708472360159545693917060459175230473650212346735750245075982530511111172957890716587907100148520844311005259820168564297442428310298595244140716885514232403246384687673861830504291130051488929535375508348558471222127125106998141989402784149314453588284045502091482637027606261963040044589150531497621287568740302356995633892409479743870092917285394656819640558380496076602254534882785436836412158926315534353409950171240692828175785395630372336266251618978674429025200453569907512620130363538362844203957798663997027612832806577887176966685630029792018927081388950610723979549257868308552254404150228042560688428258062408198068962739185436332836807693364562080442993066192388826879474834261976440945939106556091391497679949447295138748574411202204426693603293869484369997759577486146992085439747097494717496557548569428350214662344996002200994531387099184101414921530913021541540270542793234653410396252322001495030844507083631041658606495522776449477559002096870293895751363311827902169417396647578598608098330812728157205451756993525565812316028093688741763226465696882617367567634124584553702015691067667959271953617512822825398121403151606133545372905590936026408685600964342162308170365989706749186918862909849918624480522114443059078976892457565118920594847459755114837475334454255991193876951115615817404110242854205036495469195066368695757305735961367375066587844595751262217188050737781408158142882302944316489643070948456819501646935125566582824708183576077396246701129188088292904312242444632665650443354600299216516207198472424460786470260330421484932235430185058807547147265870507717661487820175618621113833269800860728546570484039077071655631171882591319549315164871797482043086649287771436525350572877142631266511721515485367277945206881725458096084162415494906316480826611676165835343746076909366083122803761807269958753022140203754599239069098656872100108799616094826869995191288149880008136074735488403175715654631131505960185839663120536035745689789169329074405707622446836568103284250090288609658870614178864437344968302753773701604251981861523083351893465459190195315415865098537250925893675947108332338263007887939367564360944136478721059577713947031497949550003525791918075102565431306219524862339304054083643877507661395990741331074311203340399574428342249766467590934850910136276278414263041622638986487971418496456318195480767210830505997801695334622810877439425092247239148295401623537307528911932224633654541663689316199489211797377449714941803065522899542107310271238457965984428401148380181881250811696118116682356190661471902703951583472241284716114777395876525037695873401285280871614600926826339544805056296672683492784583665798272342607915994277429226794810173191944177219828192471159240238924901296812696916119155169202391005544440159773952674164480229656996609991007052963189577815685613440022122361675642465895639503876563809364708351540919117658341482102576120104904015894260655635198494693873664145814822333555467506853811835132781778536509195237357087841015306594057558284971758173763419464324419672309804495485530810539008922700460752575914085894141087329700493336701446147472700845555362801476610244225698180050563891437868002848604956613870406244813289968458566889424741321116136228841466189065009638710697304972035373957045847520715209011660383508029729287936570434948819038590864285044649238577945629500389545189866774375163552133251126793337921695277681105117978971337285904627320047224908302336681623006840816199544302458888476722579284031783231905654755987106541758957107329368818166925425292068236399334358173128483984044730267019417886248279726764919589880691870933520861335154418256967644047524380342316507154803229452346899339638756915919907684021200867412270020138985146265479034667723995546556172275074723935782335297244401799986966519922900573918504262381114924780350008860237055513876959150096752586236856774710820528401917982328189733702925566706479512238926156948085424039315176819850137802861636208609812863811468648072932112672742835462270098616197461514354523037334893692867926705431552576931768568194700071104965352835290978341684573875730231217360757304299560679665095618448689126345206979362635205839222249017931560893024556840624655424614457201683087544148855754455129820027400912683552664675787302637762969929378698939545460351802507171389620893999783456210272127481530118587859086021442868225065343341707380895811599902237213850934124639723527819775833899478688608893387319087007023302045562435598731537083612668111033641070992006710245781129021621665125205868814183450627366842693268036692043697582840760521758612915971199719430908105457578158339351947728334929563988255514999920652215846064514494202209798728544528970889026548629755665877448689124949387286846278234523748512914309960020380695041913468539869074829727186237372542514814521717387758711522415723676409146880533975571516236687153690923883180901005810557060035324474138613686540546344178121215565469749412240454474960585793589029890714861892598572651105384661286639717803468661717635034469661648184265450058962389929924342606186936344984136145565423518694758244863946195704490234008705211152732713052679223941973771546978492518855891065996773150865265143866936742361916223734819484321629896648936371614578929613313999370810498108591078679382943711222049284723290181900996448719075672215272825002254944209936014608290004396647235080804956333853592675479664181496957562037701527607208839689465170988256635175154066374322438141322161913780260078380414003420136946521996003278347779314888524858487250204909712661729095364638921141143440324561366257495891248569520487105325898032680758878007186957301709220307004108026467387761891726283772275595698406586356826767866362581078547698310489955279369111102646308592674607215876193619289237431718012188604419468946299665268768489323893105763285440925461130847574493437286247830663935915656085132889123271115079463636024124361588139533432140955764441791992287482652129501134334705840727133428722647078112875932813060079116149036623147572865070821949017220632550965650760599662125816952076761017632027229590172301740627749105427464441760891852213370860056017817402062515217169758285867689012953305550213185971147259691096373176501538150373891483824756724034118541769561726255703117285988700442634743919326206014053082977265289791233917735206307384574302097770988324601654994887654608186746638617402718336550009647889517313044322019159692963465567994690139030985824524176390281195507044986715845305646522454822048103863797285120085090992467789220768999916410852408177446557602902008207525788224461025475352051807195224798331447339002108689281408333668345462395068406561038321431212496201007061808230932868837086107593921108109350894062078242101742463174627360623526235488704710982811540412906271170950995658413518713374838775228526458351263448861506332314921284970904142370900070279938473220525383733988323779241600667428264943607400064475256335177174013604375675162127873588927780268749611293161780135114570248770603697005010458308560751264286557003427962059298284940503505551756732881855471006401418757042615184534285668126458960639775893262376920698177844908931667060456108739010468964754745845441922216314130499902230855653339169855130727207147419807964420794651655571424087984317183451816247462867947769733449162307514152944417857931032500855769643564375972225667264161589146760189197349252513443100369590563003606400669073544952634835078425148676267212239415329324281181336229718438499652958609175856479389435833817475097818522537424429137431914761977087518703338665857100127395850666520390110218261804813482116395000812268814995146719170339475470070500576381388812992851790005124181060934740886287883976652744907689099075227812505512867246906911839259195580995282354426207193474679523827288306057106934997028854456420154404392981536836039406412636202498214313631929365261740399833611838063133131174182198386277479712259145787688376840564258367179423160066381789675464740814781461221970815674953135375546285011209151820899421664023746536117726977849132031061590906362803433282663454714315911501439037915285981390078174502914152705138506905795979546565293112924801131773801927525416531920077161512463701071926159681265947652770085532164317190645296947320741270103526066569795497750180538824497853613461487052768437479414039416241463799832400892436252000237377024280682816229787123962319833533986272720735917144819546074144267970371058618694093525683432416356637013199532340315031410122405097111587102245850241502065261167652282783853931287582522073365026283898428288181035788521610043647810552124748194845736892405088340672799367217161141616801295699619740541113667343765014034876747159550337261384450138947161106485582571700908246256968455879149093613039998343358199572969425774919245951660633609219211226693596908277757518325439498103270538968458106484686203116615271688690728729800248597592485846470942841261287537600734955095937888906235205274461951537417555628132863319530758759189351484118473585728880995738883288967486931005009269792649702016234015165220054293129042649871747179201678829027758176106666847685970391745810772944168525841551488695064739333894374194798290575971267721616535477612774770669202186886907744721922896006818150802676582215020026845170790159640015041156082477394853656028369924266503674498969823786324133680111346981562888814794493377264557516581759193428386369606169510090786890589283721819173386078227798121300160520002863843796279428444676003940192108131603404518021833025584480776788110978943530577352109460168008011212246933711322931014529220166180579602452917913118697750354640757569615371515007516745160365578982890999320878068921396922562450798709629979013964785479259713685259720974393268602702219579143494506281683296203962090500309283144855228830194876910706419500200506992380515977125804080395561220915874867221028481632509586328394991304004921446964572299496903509963522854856269490413942522177431273869536620350107974750783848816381882778874060307868289773010670377900361083857208575553015271518424817300647082159310758741292439349033154732794612879314961700618051971304596908237267563563819216805859826554804076541194831451037649514075765483140640848483241868955374143969704424315355551186479661703777343612095247409120810809907913849574996012527305801990634728179643467826658835339234239045632954018227387403807920262113040532340225468466084320485650409580671096113062101333834534355213484047452875354659201054098592053674517832099492840879119009047491310571287151827566518658074594380280806979531777449228119457050520021514294827079715236676429189045479549711771268784295477962524004260873292543385842350252617266953336339383607818791951557674885960925360438747566933672024533971771710333991019227641524714227752823965373635697076090822613559252597667314259954369752311640961746956901905417751086864920833909332807237764081109137234787040397646908807127875382141021745982481692726841593908212012928533548325422296504770990307972958670278046741378884788321751814092653377878027536452833787135721644146116159069221211246428022419513278714173387760508912886178594851750417290893348596518877742683927136494659898591319067021350640046520015304139528315493930066030232230733581679197848002151509476270644520592497214672118554075069008000196008109359655105039853920325551442874173461659074549187462159759866304591495256277330919419121818096188073214724994207576023574140185362704362107540494095615230993291667232460898183163767610614222154171008717849747697946388761773844703863376831487742193418399804315019539669165785895250961298649135635987801551042798604282066556480622969198079723307708642892278141421160675330459425353749640647406478482813567869204840882601368118616936191525264602044792636121860305525304010768156676345635408870559160091393025971826307874401930095583605883889452189806232011468046807866604397984212762068827152232066468000490570655633265680827504877423114302009062739751804226631060722595990066599003082396418693078529816044067056330615960233891158947310218645008979084680007196398845087081954030322804882052118811014252434122316513318504258522429849822345431513544871376305688309263012201828063128430965730688721121656559177968193852673542458699424013068799038449566593153013778022686918951529710354108004717563700353924332865236925790415493045424753944966925650660093521998069347585012398982678995677176624917745662249984652361196076709474020711152790890437678106493064411720086870511906935341985806748980365138150171565362793837895025780258367033676199003071982516349409634751366495173189023178420671251422707466597326836706050561291467857644065068104065506756579787709095230119522114032715288334115641326512364705322473155519692772855824988606406559302880208108644493454125310342961148997833394975509836418034929350635453714084438795554268790529597501871442014920010733964327813938424778899435436483512973211696033975841699424554089504292363913127374530014375113540201416001691441623520343328633748449654406692353129865719487504252512941604883100024190148132276338902446441549856501258729281220037136905505105743200362851892625980224380710295710713144262377061663109072437432414677431400665963537976129267024713453454415021445711291479789860122345921952601376127947215217134884732193795383288396721411628507423828022024381227132072905943036711851477979551173806761804483915938203766454820566706213139784921821097339553171653775905524971473709078711773110469243196347839422186333378348545736347023365924201401807863515613339593019412081242662280562913679800381658133839069085490926332862636316258843923083252246472900451716060033418995353476512270681141401105075065465315004071256494461922346806085022946367560462671203120839538191748991008675820996148758475360532941738176103300546637414380386358394628390486582902077462876256913592780583536083199208492624161443110452832872378193394916498432053552958352101909990793703396439129846635671839988359697911524058328081116813913950694124524050204464488961428067704273579908225617219800382042090311835896319667066718114833867225110671390060185449483325769013032635888514123556925262497956236660191056016345214439563694116502351225497675720440523257066379948398125049885849901057733426552955661828088526443618268844653418199047066889064617069146116067455751091915837920862802188484972210259353972805784443518042757184339558057034368329915721346996504484212216501360612697478389107409641533892187786971140096397675070988544470509526650820878503156570856901749232087316605050062339853293799449588767285023473684465221419158889578304632779926930340212448435963160148727507443347153347397455129095334888823291965522794922248865874352254400856408275796598167527976183144301355922091197020473102361907219358081743590810222411594437846720043860597214740273581702336812964390650432198885483277099122878448506364898602179874876842568593761919624063256213301522157069801908200499801572141493415892268542594874107875243920043941746787726524262574013070439844794816038467247761820738312316154758868889991918600152461092935419337449981676100159301494446534566425839641111905393399681713119100604713850728872158903956348437679197653588232850260555135762985752872882229407120057922008228748469395685517346967575156271915244442843109910340619131030993035467216280220501153397418083588847009003415452209842623552718730942709769530949292307155472232649061002468454662505424591220354210466175363276653863919247084175517434220077951309289108695675499583188342845637764478863032105193385390661515366626619358589920981093028613687307819366230773369846392614525604001292979300521447824274290843618735568383004501391042814082476991517616489610835491293112361518020689268396924455656613832841498985204283189129239519410118710825494121997730702487101737768861984125693402281813756868436922129615931824485568511335010072899324172325015101084286897049968820165767142576548535940197725889313587161009187477662730967817871085540123221368131886788778523911668276622373469294775356769679961948402145792286868532627557277136444075515713092046782961170396120004954821684062751252865743848565413897610803471541654264330379735724340319817564804304144217145738600903143097416965385626717783047355965031070965862966577413533054179257003026190260552234305430249992760926413935872055561403600118565952228693996101625999626039646324478194505376562544566749417181779363295746931024512652289843846620861648156243194657248090714031490538813263063731139241411015698709935311200095275888758288496832929028193536834635693964669305537516297507057668887818556290288323599080851413477972993055534661852615480788361860002986990330496932321373594225781965504892742646856759801109887916080132470421344641213365874293027977693183819023985039291368012526709085367516786212282826858090922889197906786544233600165504494357907127946040226576694837018379169134372880260661099081770110874269660344096749899600460515155891273661295920608049369393932933753054822899775985495938062228282149848310826356770315439513823715484004298439419827022613464895403703007201651218941770940015479721564282131753965994432799479031560274033392762945653252015671986755665534659143461289213649208643273297556709319038411450720930150132615698489622540717889106925459993026538729888228252573987708613131394223962030544005312381103271013916768803797462649345656023538448018975416855705652172751746314490348347172453356401948063376739666941209734933541536472202726748014874894310711778019840415308537304700043782187145443212731590526371681469971877330742275191858313982035631752629128897744601913656765988535005493520414783655720831092994305541274371686882602947263391636653312662901501559939379436489444648979315306241244206210666332147117330157446730690492261518166734229429015147283737310320411634909135281426501179041058662372029157650191748032307963804248645160998306174762047898616297947068178286657906382413368273147825316370606597441212440920051737230470014520281990489003354695329891818090651327365969944507280724048356705136447522856950816303044213853943574344088836398832383529041050840191044456747860233385806271742668967045443700502734570930625354030246779296483447905477540058915700963233533143112211341177488969435363263754556790578591959895647244854881709203621241319185226395788977038030659184561416286380971499591913306275881538163379359941506717930221875814687663839923987730777711768185173304404852425955859484560456076748017163048418887807145299067049138695155289868456016503832103112305425881343818257356177451898389348228247343812698198367983797938777450893667173091413220988889385125188522732674876356598148102005880020271729868538444157057850646409198908772052578191779918947210952702473490490428039206202993880212220458563141113549118817028145664648720384973250667633505925647251473544517223063502563859200338608619720254954965374101043952166602592028124967047220807830471087928365382675473883527180442001376573622880846487987823847968866294640303774398775601680473214399453442742006587077689909159921621950717828252883699779043686838324804546254012328720758810899376860576782192201781910548904878079909072460815356352845791480298484848437864636851300316005531970029736038242553330048455440513345642733052567024124364508338294323671477157583316413845585754370106866468722940745587422337498298208297221904959196075415615231646709518753739933899102046245118419665143771595756004201305203442422288091696308101869052018524453536275539626175435800098054398682164563007075404351475587925842152498692975129437637158873899036525281765308640996266935289979360800538665230368233288970074750754398249996642771891643237863167875974283277307420907684418118787082420601372068841578947272817430627554088502546705981675765971422057174324358023232048093883334466097325080877818538949881187100663618699399835317335716407093237935506100811912114877338555019023968925533384103788171666828994912886867809152031575310929686307644285275696740892811134974907263754620326348805697293059986109529191159272804617205141797320187337810650428759440215740966530788740685104759029239627388888859062329032703349805520101930634157203294871165180184838545014531040117733770232354680325928358240866707124937783107804278732722428644557818395443500010822519149264284331194108595377017791211983670299850952309015154958669493358514687920448196377323605611244486830510342173543904320684732335010868567607186515772516398372540110871497697876834273337662545815200479939251499966921451610733519735178261620891025880195779691173029201390494519975441670956499954391548012534050656720151661518330847351265798171794408503020215810535772098093359329762602280532173392254877880950937169790057421965001484828769175394462683186402740999109597956328313882213841022832307039268696234020346258030440419703872343405224746019514666097741733755422428023519937492649783464041021352221325301138714028667460983292108908253152801668509343383839064925246264249934821660162138917572889698654564347414804347453173596084476421891293605696021023698459284787015552123106236054532477027010354673429993821996999800690289963878251341852748728010709757755865163014205606969974618597858736221747984075201206013429776089585228911408516685142161179744045452101225623964627401441451480571729952566507372034765845044207628085998824402754287149982969609454924616629802097909848427823750691840308146737523651315644596933599365706244065903343900199417492793757861894519503802931224722776570893558894142612545778292159496987289423728731083033378604061064572554072027634865429876898268523482012031047853879695951696321192721943254083535573211451994870759415918706679384938748906235496746891150582110180167451782421872462346951279739224418825861294071928932854117557148021255806814495500207599756003650681811377007953345967300000612008318477727653231964806346659490266416931263265467565781685785066945682412666398076615269512692815902370748667617715220424075551145328914441975495896796790545892039847326432603507387284255742668132149974946610023704344723481097134659585030649439809278403262640391132330339645594938887965377264673240020225211949015579310890348865861914722728703288517188920256619463140819574552116623780233968411944664728854954887195030920533406111632463390383935584961743855754532376966962018866783172439398851665494081669713253633122113816115661770313576449834376226177447097216475319147774948108094980178023724101738570214788031014968664105271686802095372037732440375013106069662337690394887662854553747304151149439023239806998519155446639181290790941922359649532695980476528517273909495748700018546689241677376048251988198752017130563062844226585090893706227256889037376996059910759354942631175553453764823047540016059936364518908420202307422863176613406881799740457634197388041724934414432712071672269163228486759751434277722791405382215200187081173079294113860169588409135408519572497796404338693046502284070647260610533295456943405824083642762929793919865266897224559952202440833586413748357585170068931770178210126800777126993009045462557969900307640804627358178549123269560290703800134219825822394262237442459731012028735716082191816233897380111233189400079390725837632061732624516121558369717869872205224880162525239177143290014572016113727082414821450242084954989346849297838750604449039803191959396074498918631798062909697390790351806567108176552601895640498310011742661442675433322494263063807346826043222951890614981985731526886161266668317024452757485296677511998762287390456447516788045825100419683810232088402402688443640855339519596285761426572410903402845890851663622868023831118864449978794412704131495739878385565293882915837276080002861141871643732132547020878306518162518600993571432308075470860948344107268930158448166802538541291271542083150909159460348604679592663643746775912831355386257884537888704432191332955260325988317363734698687124038813741905519356664749615134054870831830687873284820534513755653331346002677616367731690574425038573112059238643016815907585494132063464701585149051322867962448541272087684943945262599198133686423570299349467832981186769740947149525867249797999495415711649740305691844988024338094656123910907799123472438615665114140313314782884666702124910166127040334556769988319179610597411931627289875534442441636280727371583908589874367301390184751768346569410188773050170935884157242846296834973967188050794175437692766791810521561366172982388815724070561055549342131500082518071231794130916685928115272070315118905996999493073637680435153007244552630076670849850585990525022167962124939225287017946477082299953725942152051372976521062267299895230448184799142788918140873512502470228851784169425922669838237507506039093607578814830090023473101085599644027738190870816871400868324159087215375107621092640147048565954251567588646972149766270726623679337566120472530559061232370236491787395389034123652595190756199913081256161430483482076125838585876971426126789713015017791698243022968590755364303148476553388983107759494590386634250773152781471425167175824603209860649693156462596364841568219949814669689860830196994296307511392658277322965488929230332158873017869354954202524325231911313090926902645313535287651678980306634167587970169828790653758014182831377999391265546854984716348374440443734013296178518788987809513419735862037550396737613907362890883288672549387424153103774198522610321025719956155893518875423339726287328486914664652233775494854190696544151275519827944015538302863194314179393263333557457605587063143889692502256056484123721330060536472921643788931722650135767447046520674481661469281568512700331387214740024842922847832628987526723124816856251388914855747038775395364065453346024485276165602140101156627575156355604233064940209147458755110697358931780540090298979649812470565316806113733572706587749647076138559455734372079593417211581282910036725359664915744494693960608092857218790088536921213960626362348518265458777262132220196502369252854803097108856056535974289549978919300360294965553425101782640014258599944706603406482676170761234218499450648738223500816028512698479186781807989160489451629274631375031573203169659561272168624221247109829399765029519224266809008515762043164106494038768692858113523089433698113915727116847854663235619228979431804706526347185978235276710504995884226756888735429624110872056511129033304006767852848369186417531034546218644398293103535747407022781040674106551815754150827162625067926051091367853407822415908443249466761273145942237829286636995169489931368134450093676338075044605240487289244623718696324819692982777582512665505301558636688163917390081713132235116232419527495487068596441548350907522540510448531829082498600567893938918180636603161115046953750099067589220863536595495271122058752417628619263204963271527837502732165710687019298085099053952100482406321311307805936100828579277474292519730283035374238639951131942832801617358386586145317010968393866441427570943694292161464255770231641763343139393573580412614215392919642064248173793348482630768847311384249574675937875528395114559915642051541300787278705888564465832581211075766045862045690345965725708420286376936702144284578853502788116013984302539256365538630979838169903215473551901624683910680365316619495559636963189263459315202595478089669511260731653490195992459525179543545658061702438808172795136813861013768636888750527856708602426397578039573170713703078572897846221206398054363733836367789668217922918533922805402038087138281175131924655022944125092089583791241887469440341560150385732199942121674679808269721697415513321431560395789588010595292238875848111327481096689015387501370496375390840923958938049172057663610135702380061917594020288376603905910038310586534139182120643490483540209520287150769377584756533129516537801920208893492111423945101197662119601485171566873570733230229680193228305400573796279300266622722221136092841806727082620057677581721970342971592578008797050549622910810281715684062469886648400172756733293929395801371377369370290508823367187902121487605976289352100022680855126793640689938768222378104375329072858833635249450628337374923070912034087770302544512184213237719665053430989351007800749171150774407259874815358192614997883918226360496676396889018642404528488826417781602229290879299382939745640483034366534794578698303846106445548456036409206759877259727475909326292603632907020355263907631307835751816867423002731637027577447159024633678418651673888400870966126499162727737105161584055278996727137472342166888473687468362867120028558565963645204885749342375867598247986163039199770343317405629171997529095564430254091823000362834058722930700293435596165557649142450133819582343251177204111000192633404610754266976601277399351467183841653733744538198727910120155190309582085680617998573946711244143992737674409700832093949846769898759298312056195416482465297342543385032467188835622297354303066974486509980133591425678597020346310225185117704259725517683637737060457756577040742933115139437124092463629958988970293071709739164196466449696352474500017054411989412087821705510721819770694668114285803347108905353007625377309579411238912067167436820556555389092052211764197452230899894983472120702040690637164729541965804835022690251217725738560419899530937885683390647910711764195620978966865249382511714457829734664671673394627672789455097341105580121108433701557874304680150711915893979270335961144829942578686584159765614991765252969080194645859093788663215896433652757661705270047587039931975524740080960469589779857714856422336683957749321296882415022511726122936481790338161745403527149054971995104626724069312402234133293331807254914733427606365804839825549586581893833188419297870098204805518177983127205717435401280840377789027876649062591263886273915648831914988091399458698890321666078310162525757244409509655130304515860889870352025622216011675691945870550325271906091202586704161903893091479715841067152263328677467591953392901892636901127073568963053955603363701615275775004912196884321299483890283392407836285513615172991308831977167930535842203353054914504090870960462473104334411807967592368334532129587829722578214439193875412549644649077340947960849789251984417845475994884202872447666956312747021016107258708126303643934582171605577320415016966566391127814543607970256516733215898001753253828719285600260708472606043167745827877294318057318600089920607991061357899121066593230302317580132254236589937004795765088023749719787582340513555019742462961907836968508153192444672124547958914764478526564113021096257372522013746692355303700381086753073964426026394407806434503470568434709704354325780925398002743990513047175223435815291189801638457477602608780720144794473702107098197134975918311790863189379903588620930682841510276764896043370346389574243732082791942197695522751123770541356860337439119822323944397059410236251465428487587286098643838490906952633468538972016448192544168079139969654496651448194324459846149054943135860590310270854573771979331282431174812896312524606496527892702727537318645009829646803790862321532645823903401196135429526805166447588077677438565416157062017294911576768095707444587011425323153163541449460906036137534461424498422840414314082446833746596188277620935805451763160287020850132752018981959421532627355332708297566795205117259985959762024645332108127799878495078457919255145395448477640381972241044284835147259187865848939535246819833425449354367625485773359150280806454616926504053147990094433637399355919533587974662347137447200153657909471561226834073857005465653173357689369148883447271235492240708379891808500715085691488730917360899494182799812061473815858791139903891725909550009660263152479742040213855265560837461835954630968102600974588584182416074971455899354039849316898692346368930427444546355706588339144838333586202649903448655980698556148964638426565877651975267296863191338058556784854504951286341477138191124802541422660827460630008940508629182594987806469420266957192038648421775983142357175711254135308947490941854815326437860946372834668575179069132849089751636157383506585334504594518313606043098984800418030229061335390589592279713837936718722276594056416390857946204843532330274930448819534761940422123844503068018703351830930513522274330435562583663222186625214936013145066798060049916410207431207273052869330160734656178862332037948792261943218556419736975871500279896646532620674466981430237308668527890389105129607799214745868152704267148205120473062026552795182960072195767891514209992306456844071873868023506509227527731334846500512210118520475332565313491356933872865854300932239450472287488950881014031015259006713639158810981013837046594290794483294325851052243447760232085056459863060126126419576965119388608086466688848768709029678509841739915896708926527393392130219748155831882315328492536068501724885809469145591078503438839458896249349042556445711381646848100224542487619711283066175270463541454325690295989787662948800760336130053791952658625372778849408461099286650098313916885395926068088372911723413121141304781702100811859998204650145088457242287196769238714210724949564413043503748538863696427131345005922677784477323468516331283388984264854598567452376871301140741032871466814664556211892347309855208270571677061288237147265124695182255590306678990442552821208920275143022097186545002835697729839134261921206832792458450876619466168708013427311462459106985320101455926192068741962338331997484902280359319979608850025676766929783868642649647406650979742360677223105422729454012620609139580800814034888764592366783826886491910989607513921190523031049418345308153393477969364069098465711875612345684814140165475302111783211850812369644497236562759543602779144062344575041670490283338731801818633514035524490384314518621125152169895353709749076068776025549399056558725243145842024036726460616610161305880545353821913395532576451090425438011942965206908036244631076739720877081049641847534830355394679387140859200157706439910325516759006597369229164385043363297149738252148827414236259431386248278399670762838121871351282498360976438271958886654744801167017950805347491198558297494177721434684392504275827521264466595227624769699721270360012102845386050247193660277433655025973907337196254674683144886925608530822001628112223375310512703288020073514671365455117784388548161935269355609828760767985718521530001096364569254683072598327364524432322315436703659274573900757125635454549029855414442328786090679076923253277654350702861089601278847621159012072826493015013957156276894140326870940649656438242833275040967400161358801383393106885041879550906461436150317954370937286737922518169437666209992508676211784155788263843010730462985770470777296662840207884084166976975268325720262664485902356629221153718688748767993850474198430472508694641418168050146528379840090966881098661832956071360816546255688251714913639527198945774598327552946069105876709443584277181978960651003332881977410505001995605751531999334821416541724466522730618884455008409814724394404525081628836868543254290552574371025796947303239692098566782555112019430141446088146467141138688946043853981471531044959799632384602092711338356527926831549345283697914528899922033118258873686921218623128767492635581195763614706076218611507315748027384577092728378957993558125054320232423606418289500507647497610233715964240086431397008937189742751379548916872118512792285708347470594531360147765979841824754620111590852664068407639090320524895265863868754647675381030231291344771308728761282998882436665168283907700041493377175706628279772824245191168241300926989504161381121153062081010139747195933650304981371832346382929206974417150442047734199773161337515335474882746140321121119522722811296266665683302475579645656254746664120585381979041065540048981441736484049208204855197247871593723244605350890058702394468176687062106905211353358432521310459539390839108542870343603753098702620037209371861455394848120932190666591661745107773337155586034752890671553127054562472592819188284951540642077416735072050438461424516271834553492976832918721763908716668813567137936943401498121604909557490132490804950382838815006618748204579344536591765516917834768764824813243631999048820425650339294894640936813824663254257632464946089676438321941821760718550611406347339165638364421305539381730242818221003008698217325825412940837035901690206698735339630553659983124510946059642073448397078991191454932922690659217025767009194691789597845098265711116604423103501516119241437396688188938495168285958424863406220125627371999760726049904729337336210147117351783256292673197581429416843368825045610245471384314879408748083514480760400679073030875617007865155423596995907091164763788130443565291525094608329715951489058106315203015825469200384877514390448843997375011129979193100115373035820445458454674384912934099230597936740774896293370505296659135336761011895348972438261924041872975388009619124534303835783252985838402696543184966266488958340084360386159292877433697803682712384288248500801229261367998813390413610012884093568288851828095068487522323764818905195362275851834981416436606438732102201326847653662131021627447971587567549899022627790855718170112167392274915939366782400538925595879043150993688573885799398546962418338628205301499382975693655736058452184914898980920780623711756924349652399870416415065196806255952897454834177533865645398031116230904890784817514663366733229298818997009313917678946067312153033458272548684973535101744184447607376789588331701374801420683425025925795854925838885031989099564754760237143410557040670942998129661403141709393279361688453793685839856191200710120757425695562911480841622976936860415449340370543876915270250577882980323840433703544710120645798996372505891405672775778137571283125629344799521016671005659792885130458481618927285930197710402182223810852572206543555750637946376047659695106238927268205529116323715415897605376636466840039145702979067997131253603349101623190173910638652495645998309671646148731462658231116608388065895799718115920803956943332499766778259896309923273882229456742545036325379080323270424000837868329358117549310306618899475495027470844841293605404342605964590807194411101418398253600040202174317410168886231314270449209562045192970974820245437895285987546297202640460567672833662131353781175932003226508558585584106597797813452750186433098234997710925526559259162660571980341103404663758110891869698056686394787169321971809273667376545659269450474949428291295726944795694873546355554204838452887482485412080630773560500935080303493214304805812431588409051756708286661272111216720736727402098502169525078089649825531141322114176561061641256338592698279039692857449900922790973180203530815201686849287325833379003662065394828145804709080430128858915817143414022817153082000144894422200681074657130356119414132560140474572571972794654122766591325830925376106528141998080534032323424929719396380086030985319130754056327732130127414065619283539432680734563432779244367078477028161736120784475167626975080961074649742206428221617344321872934164803279477181526543227468370220270059703301436664721540586732160479305287789501584958045055562844561641149196131092031172122149565073297608913118143358687678844799090155858453897313678337527777502517292253366014133024658281079349230686184345933000046610777509084493778194872240396779325737152612387157313439065787464708142723178382242982604538797102432903934780075383210102345287333781069463074721627754333732726301498976576351766215673604611306928598211595157485383240226030693764914560708474251399487963508692041800721180046219568908212116365436369177282738937659733848965352758018620789823622918573375342828324157267740438248297560260075763010296668039345597409381112797764409335795183070949984626123703787638361928230407481539460859079557840903326709133941305600459502588295944305866536899242192620539578643537776634778680900597303075792556334889055133453165738820783919908886077955528182868001134259003238374278784965801308197518993701653990734130522512757695006967995061405204090365202103530728113376754304160299317705532666943195386978556122400710178168161051779116355381372682247892089407209509637514148286539130172259138168023158366200851070574093651733913327497434917284914437257803786224485915045920959971993718808192994897635768508048980315181068499570093583229306583686704095700854052867026612498546141430234510870925933519133554040421937605375312418530865466071633292744010525325070371892659059645521049789464904214316879353856445367428469140453195932139084927465320161289831744803375879803062455700437023050439104419489623032386008488578697850657213257915512106085152945230993196915071577558837019336701918363667625476045223367443902852465762514662063007609566901071699077640315811978887167741706258557647501224812560687349043086913988858824710375305240099596925718719863319179355262099136915139200780666066768361736645863253987144652789987720932083908324854066118513705990642994947681223840787852870868335672358587237342827911312794841637576112763561540618295148269753750936371619871627191116903457844810528094920821696686059754455488191881802418581950194115380766636977281315192844724128273473205611868133898409059810864906752424205254274113050897197153539331712683409505336712478189137344795244740950416314147157330686905550228554323428841069093452975227246454722230165370109231047808915849648743030070548981018946068048234180815695723329996706140227305084243607103943361951758964422023050479785973671789143889199898864975267366484062774808304430972757501120098908090006194209806841404382205428052691878349268817602442831696022730026082778716830206204567933302193482642912312664729422829294325085227276304402089411566053992922825757107661918732846131086115674830344039607178944346585369054800100149235225931730729527710506443629663616657695685722411394404636071937498791280543476591105826695451791448256642739027159755746218501688403963796697085721990478960128987239380891972213998576103411647199347902625584683400121936418480387452701373266938381013982521554456530702207862745379377771924688955528211922166225956095251907360318569636205532779082201145847831332175722937236231424760699486022132570688756027569986421021531596673055986907650266756287073556920499172581389650343453926350079022922529018163039899146172741970057919446155495860299940032536293170685977502220407228067881383889448136453390284961080684605857902447656048834648250375462879218397727376034221670044116165441575407496749326840354218376245374249297933105291346623292158387921768337304955790785316140933556740755785262200446282633542520009819700983244091590369874207109980595837705398159679571124203860471614676712751687281937926593795340470080782061382525378461072421014529005683855651146249049603973903964605664791340178757432693078069318943485578710514454331680774332060570744443562643045985602782674824766908874659184326138512448601695836901509333443695619809892532960154665781010297964058070502481254735844712475937355189839959227508744278549297069117599434128252949720489248535413809736636626599437788526293231772404161476935365496506936126267061411396677323495244974393274786011199098031836880253455828198569847145154944692899358616243751789324640359527023092749195773384484979637286367697946119278777432532202747886232474576262081936111640939516839703889735545640345045963222675372530251976572643320304100885951497706519368605159318633826577692365409346546919039605917031604813339214604624595573556400818389413839805221973918718486640596573048316364614662577130570154844394609359683325483025294976206187350946046429378292076292001506574032391205420621423559371359497827599986675860332014086219995518073005252968243740441783423689964115717056491722267709419169457901788229439961191005447190125283436424851856172084046438642647758253983582503940330110578643647707180956821945514392466150255316842916290388593269274897847145129593191393014305304102595590536787287407546577968722119918012761132965099229682509206919941787730371414547487034453879947302540008235617478594227024039690895829323051486946540514009794674823017185711144181404321815292394740544042691458582428820562848363865550781236961657725743502964931753385464484373440588159598679522991320110338346764121338165301619074070537036609218958602277658127402045683743656180883891239393711098661888016193081985173125579857972953714062810909743091070850137693462821267120600600116906758520310061909148787910768823919727660475714166003663892917145352534770931406205860714550616274423406087734006578168080069501864528661324693716958819321640322056484539899033513805711488601237289180459094681497757466138254905588307435373788944161278550229951090645481609265587380677722323181620132365958167176916478732355999976421448762448051499387941326805929242809869227585480632608178543266601098969048564655229355836405408662554126892284624934999954984340999933681053735638744493966442465036339942003402178001489394213593207103002246277004731904543799554783744591818825585530477799793499759797139618925289802098277117289920508656297744740931986108865752408972912017478405191295301257699938325570926338546103138136817464741739116380345473170060420951327903030709727884606794746367855918792468275359021651233612754608151294565363573131843906381981130242362361920964027278278751109788382574576899908244384346768328293949877183811600182483351092215163087260853786600155885606392875134835354623511466440516955740269371645066512474432774372167509440121489283929502962108225753088805827491695549366300588113079068052230026437434516045547469644349867930101155663649676011388616924872038361757176755551073390185106674195988777539145857943883589548968927630743266721602555018097351485855702275159464054980273257997140199607614103484358446895483857460895890768383657432834541660011358176401094644139060025838734598816775755214471695489592972937775778935534152594256630025358942594543438532528819002746350362250931564157659199438943894696635282900818996844068457908756264388359391962445627243408950787874629415792903594818767605895804390717738929232802344303117994476113215602669280398600633092790283800529840058261095616505985078451098498414760447172306717057884174443934024516408848405373745496580210573032682211132573512349650172377541816060896807315990285164360088629965801759437756074722115769142365570866387273422002700156796121756077232193227518521204659027906815402875545487352020441986348641242415211711360383754398951773149146058628713075701438013530785993087024929448812797670049140425168292329087731239200715675678091180330902526842775287959807407689210119151743146117940239988761284577917603132462180469433193270957451646082053928753705208869365355084616398654015679417633904289976273088295168220376156563238570388410031171536682682673590569755198242372767121798313748541557196260427667872843464826977151878899450297563592796010250495917931523289174085589809701755841867553188680415682397308143512028467624817353334557713091347716854343241613078916323385128262021754872874325747037560149642402277847534065086988658617849708079585413258726271427876619436173932112594650158143051928334017496495747557157612232271687121115442615600496185395111749992388865936536782739844386549867531494351703862884082190351897208402262712267820659930020753463637095132874731867448027871758894963964795693406555014540954247136933076097271239330858219790293133518364001555085814049864881881387693684991416240115899258215729164348094614958043792934913435746648618543608460765655741758427274118034334237141044657689603378332110113314803415653449958226360378558962762095204683202017963864561236304989381888062244028012238338351058410537735114179003651130696094163258073647449044763595493547376030081719912121290789630221211547482968170058649700256817506064958679349007988615618465039043823050229816281209509202740107682204512170557823577319927325923307282759482640076586038801053816597653616468701254118356985583112564395587493008624336567977778266730277436642656974107081005447009291251234282025557910975023415674464782942811779840037750103564047043819746601819358696074460896150507402607842304349705718813207017123489483701398260611857292699054665932437845120818252322193441953983395275678740897164115054487303130870527072868516178835337583635718149647091418863045019189147890434330778300202492418119640461574707491346653511615175833004271521519974424184983937153886093800431206812690174513070391828919624386553818656620307606690067992799191734087584456010602839222496900665197340236851327532455607316776399135319140757023015562807487288484791792300486796224050230800928025022535351993846650399712357917983416198915636594510843841870317359302622339777721804672240413975190441805008849934225028446974153149215555837983593285178118008615088775087945100753809125461126366442090782076758154115307375928438628194269322342736216717288041795417599140282399093699227126455721645508797735600008677666256465782587927010569811822241682973549031634236928796994066138693003788820750935398280668179134892009008012143085765653883530665970362134359671289882681856159797680766578724396592877831140618668571262892470594245526799903281620375499667524487408769777490131232442854390916783811613883980438940656152521796998270472532969007562167987065987539057377524931762904342808059695692321894033077921977038128338043282314395597851405355864056159764506537487139935298837913768004061717083275202254505561168140148626803497755338386799499358355568428304367654076768684810613498090047617308838857706680960404546464511509398253573331952511577312335733723543412215628931319126089885287655734425883618150151542292159327917849873657096588429563482757743146618276379247805069886235836755513228223747133713266752202987249722771597024133112419055695386089607632109254635103240197908242664059032928039450127543439074487513445515933628983763819201521126831717294783396787711781454761398019624369408476861960898148739064962554939736166538056261602716069649947747195774819800184984383456565930449290126619738679216816634330122125468862997239569271063420565153847379955885095292799364460840643123812493845898054180812249188801000079864173309672629521863924138207859401358465531736212083648867093804073738183933029049698821126636626811677156444353334346050176856303197766493905512048833436825623495042009785557723379610325240679676288140145756650758123583107421713964164264244743470287431191859126982615317646590126442376499740911563628205470984086530613968773739221182029301078102497702320833409459497964004418698865131007181615558424785730277935830850564506518777711115343917917615934812271997298429670265858490524008317883598228300098997220522724453874246917217220964905349750723001679191070186068671562319237078491239434534179637998358463518942739970670178151327748428213101067003579771174918795603347854502814475205690491657468144627032679995494482134553307713986399962107723971802951634301227744086966971887274912012344739761347940713881328106685084948307797281202911249583681914897967813471865692783301307118354402327373990005483955755177831397905526675793144603275982554744623692564571586715565725304973089934921943624529558012872801460747947443925229607830683700649100085454734963478232250140064736734496899944544552464290324798933171426565322914586409513847447559168320147706653767118811655765501777699818160768267192211232745520245754071391977698459188567871562376493387936315229495334867241319067058082942435881432168121683223842082890978006660065708418221960366871908180725672156201148873771658005797308804803544974604325495563768246215690679773428595764333548406622081203341039178842588533069360817575516038858769932625548137907895783613753082458056005039387208658853465839019509210191742504421467904955445456828309597267226957647041771803369862638111425666469486777561108717040078321446150358019535677720544961248993304458544174983370249848484415407131312705665030149311164010582474303626630769901346649546327226507648868557992610587862794023303634389232768920154005850673804221082320916501738276117931374670932510910555663774813906403405153765321534462198399619781793897034233005487835965045311719786377636167861538994685258963535426087186668399639225920126022525308720237461495128284814933528327896249076785412387401536877484452267206688003317086198422874395357973665428522041909587667245407790064441614472867459734890939788368357759655602954852651020676107167854465685810503851572602419589816128691296765873461807304467702721853152207077415135351392163953647551278920458722229437546672275764134532983024552417969755559367831520096143800348895821594553000092223993794771604675093388097151212920918802410647174245022921869053250318972841312997836502980443874084690495689773355726685268668588460297695698949821025894711093898258596351637611042773908218396773220057780131611392825208081528954699954113313778314471305196711329901625891939458441151797053148751542292924181290817774919317304534908554593943825560539998695443699188887857337599383357192659737387855429857108868985119189747164523197058241124527947356198914583066319145087988855301764519447129151562218083952199706587866927746788247152487180584947721658781000122174615902902856955856618418864970549442239135303487204614927486550508478046250806009152546663446942967660522813420455675800842529930528414485547454819172093441359538893256047893654922097367854839175154566168389794846317942019390251139661238753678001706041960384016846911418613947544912305019287909405760341434548377540584452194011957731507144652154740197584541927054282023782928363391273548961608540449065974160251175652677905844187313329966483524750592316312099596009219533782325167782802013952506335454665474953216790474546311156075847568339539839272967614179937507145314526545537320722465387363712193178101039113114666309703554209571472889715505252796712329716294505474133772608672420119355230032173274912761343697224997752523477619258730994099917601027391475996133564498002242221805467399178219245517010477515970987496194569833868262807791031437725726196739653527780007643060241077050716520278668609231923403673692011841973129758987815914614498140451166031463590386217453415821966713708797883443900942866457349776691370168785779570913390572701811542077719873401719145142442417636026892881470790374467799550164531529429684098409641457834066537525779901209316928501858601574432933937226542709137664406428515332315321554934162641315081734637071022933872028057981901815292151938835746789223592268569148748578132967267642858609553422072665894548793167348133086091537761088480288941703436913721954062040077086602326293021122932165369480744190071555430474598350181843715440039633256944034045082542157693685467717996998962600375577942793101742643264233162637963200071261802032754681846699516731611801483491104197269399340011663203899879383495266784834355030313300361953710909524065821175537903616051078228820342357750699917656615196478814633627082822053500068261713582961974054254615670565820708905251574577786656464197916188678503634789394137286281306630034591527554516070153329209647360244463258297139979692035914659849774057287276840987270475659352568768980486774824846951661775444707955282410223503167882250960732313042802250416635344228070278883632865907470765603673687177385697884726256422469967773225188773180069291110722885027788385797266694408653373640053063228100638957379550055143873400759667121757905680635343680505250717120017836354090193530091370038148040420263678301411406841970429565738603107536011172334446844928875322360138536274974489865174775855111453776884360053769141111030547166580377926494210592292865511179862487489786122319894969173625715304149074943735162934451933365203349621076225981105469573052818521749214018422785388565427010252704865997896210158874041342851807114216234848194357966673489651827162331336945435387053424766413797348923968990203334013527884223296615127998005723489085447783447555171228409250959932191822077382807168381226715414867367770030964460039018868755418137272686747749449592777767382742677956455529153309111057736840467559776092120577913669801265100376520019155711101194591522350167066042223058262206830436541130994778702291114065291380498759986857380539710189473108847121376793041624032431177908929493770045101934231430948581069752033935491374487431082352323732432085822765861449164375763540903887967026392896132095038428798476350179760687397160482246438460125070709967569526650482113394825647303423029144341950822904799176571318174264517058250266588847495006183760661691460556326733360600378452139553433441839595532679659386629398303954173742071761941008265010286474391380159966639826504481189547376885977229812991048561401359590528163185490381016911056599210679834158240432436825088643981223222072280584387180770843039153975932038789805616293380312497425494546130099612826016450968618871133862839290324326734433620490071945995724595465944369228245003982150903516676110499427485643908955726398025517216407665136237119134397477496884780444795263894475149901214709940924815630060024544737313530552314850195319224827813739894757071435202996995263146268371947098271696287864592070841643307148820898931858943229073041572076734743271149166462536917787798961537189710491832393020905665835934705266179293294991725493964749179226561813193672333870401563496843544309052544557233434443980330495660718787582966238459651971889343426101602450518758048909003510892154946245351398510862687154010180747963382348531200365622533301250818781230175313788173591151518605384939731905561553874120082115307576682926002262582155238938903895656124326989654848841898678672790354966153494408825967451813365365430983806538681948530467856977177833949309493242788562052719782267523071921708981928316540452402976534205464413247557353240721902288789520913687672638750021195489580318744362546776216798853854608118111242917215176401427647000582921124792949749300414358573637168294799810262746724106603536617278888567580347312524260622906090342283315485975251147214031728707120526344513177715684303254000720068747257702537066305478611298501435083327469047607993666967564845006133639566889001991949647004875238779505121773471108668837939998499398161599387980058422308516381748919706734665256218170863395786017476155516251830382899591489182442964283850665796304128463571989099721174806866981018450870397119604947615851851044239847304420241232435136250638992575026577662017922775249604175951990314650135728340122121307107164018569643474289041230019460378752701236483087992992929584626467297776381553882706834900346237339162582018644308510995926105511758662712607908280280856779570085124288907919821510408345007094483824169056942235986502437408260275371137622098815095035272947986327850195661069304103246744726155746740050502086063539264884399299144658958575101860452090960630605401470934271701174363608769752210532160841288507548139688320882107800708964099470685262154520568113288694276577178732627657038537360193549878604380516095419904650056461858368869618703026701377975267225967061096530897193771135495510846834121577511661037694276143004261735951253385684179317973099495903702419788623901591265953486869363079438800037892764468491822291891413546291419684908049884629080665792895810078087988044509656240043663551800881548729785094705885409506319967671886196405507248862696685198674603877934588796624245231989707626459274382930375309016869453366139729170429395339664801632783089047162331221890569823812932615016675171696456082528439593953219168450475371683120374394883151728271099495683381954390231124527392284735726676350556941141533018538203482627943409380952530945324089380478741834695042083755276476326872059996097159399965077039752587320110579142291382371212648599724892311931300352037244142998516303664097984828742153631063117329634823550805147932124638017782326355808296575489590616915091289659698038372979234757319034936290896703418082388091786169860348195027989596457131879980432802942979446450230368274434006282017177271348811183956154872262278132694143867291500744649539925327628110812196576510092643106825636273951784084949810047244692315828073670261823794915031111788558608591466037097553680326054751752705083866755734772840209509022832584323370396121685755614889848795985159774628658609835258306516157421628810217925267036356579462171036300432133398668693739771782997474500785018619570993380979886540472009680617717158996534327468185645569712352187432436808895170925845049170709039851468192583516849372473012258078445787238710872839735231110685272768686971024381961820029900277248576841865815025750726377725273609013753896554063712771425475404948548009388770296358164357798757592771202911897224912181833291014726302987272406441176902942440680937338078918511105365845314624768419590920864316429913958280023123603565233686774211903616951351083252426579699220029736126339866824774491678258112004887586341561190324951220952867607442763826954116540849835502864397685493273953331557584964316242320478465251556578966680226886363476223407589974001827483286182498449045627877424969405496958801921052026685841732691827338400022014021681817001628877367281086944413731616002640497945361848776342458949487276459359751942709271815039581969167982976783462017880851968231589575667305556338958191254398693383161514700380665002674606588725525426207117878835480955795389459198793035258361885623316350987736862519917699315857248166701856326026892521389420912993626437214055694335941526368130547003669537970585015446879710012810928822578949259429648530909797219081157086747723788492412699575134087980839346132799485222315831724518089342816084718487187729368624236981845565575701684093552231819436076701853552114812595804563898667575055365526925854022715533551921897707738544651803834645650962525616780043442955146601684207182486747670382578741463953422281182852209328760477753882242777970203024535793162897257962602259377012686697363780676769835958052194256288205442891652517681923599218019160797731205372128737486475104444229894361152131666024607366790824789898717219155045668203416249375021876604316634334674197279833974122763568821621155479339215842396656091779900917165054339520468009951283076425538012548770485609838991825875615008091041207626543333585581319552339656268544884713573449925859398751178218260750219914659692500793297578648265423044577500338575824622681953159981820587446748440556998893113934226218409985385993089638849843909636641372627971063704909456196012581671830364595386382004279875322644287898218277893189907048653191840256867413990747901050357266423911399789135852216321696551799469566613428158891261571987364345029969737307710101108102546943690951513685685373938640521579438362908790361753140399232457196672828717830212747269950636948418991827347604486265334078691306898429512830929905421655492685228621473600375813591200317790779323160158358334036634595188309913203326866353507158152860809640477749741209867753112343962847897010607126017489776758587642456326262365609540772570482406435492611996363148288623961686772421945187752825397064266973852528453617015124265346541367694278214205029271037064760203877760844098076834716109174050425245144889469545813896018916906335002714644267221447760379672017666703707141794158790315503984330881229602813908471451767347722989849615345520024485832297736809360808413014836790070609540314096586112468912215076155949825965871603469860849317441892773035935176598760148940893001129590805545504606417669371300156558590445918001046943887313009943658542300217780134544648805498630024571158522819227407126701763144725966739767075130625098095050533388658978891521376594450543948486472881745445970425049367567592263218669433394909630485573648060214577982962224608200527802336302096821537447945951500359602819815071469468917623214832859128950251283720317279673079513634381830793138649147894606369512540180392335075182434031128570663473200715093829151566492178165162447733171771825301675359456084936197815570235113102264738111691720044724996637284913914141327728943598716024701232832341661125372978263704883918073330325778239854438747205662383186199395005527612566804163352898121693402601326427764993021035705287845146471071756930456777114299134419347410392426645745698395762935372151669141087884282320555838323624367681768684055693721450226396181108216926977213096419993532384756678274684870151635078499983918708894503547815639898103103037188881211973239166823907082344797233067274196339960516219008284971650314677088719059492390859364661242356359032542212432994413904461166457624035658284247139107478300868803012475975023806788463770673744712109875830456153659639332291388132123384462276791687340893462689392678094253249399575563981188195406515631859710817074288528503489139737891695788855911756204148734916085814725446882196966310182829276578143744915072974155764694200659613775321770561834615678700882216657667163778354747411658221077374615424814616640853310715783411636994962838663663402674303452289237072531652076212082541100791577855931602034220289396731528867887063084602360837447859342605178418322530487964281445411393672142520518482774642175153030462022977579582276757725965711390524172093314217068382494796292063118569680775679449988909354817920033895486740524035592065455836123671307352682471070057946646822249542660976791811795666846482984940572582316717295883917049768655911026350782167042473963676038947974742214082517977965854743426372552850308348868970060818960701082965340358023078802822808876885108049772663229793821927721554009189628372737679571376554759932766898952755395369833899822801621192061030065881138146389659088194346045117491116914635058271088760428170507412842431602569978898899253482155566694373725371937026918411472782872070471874048220600357480709750271490127111101432853428651902920254663836782737115300860017536589581593655413806528789736553134203844203851149701749380212360589594075040250492087390993620272278157603723485756181314961989271962701990431233064849655493712121323658099574548503477302304084935394931026388433262129869253136529605784517605363376582867247218005193966228681704807331119382304670050339448234469301438385581874336455608531775899096884870340962093486121615752507478639664432594023322994559597243685363765216318919604023141266729026623615762044830778998304247604430180521133280088052256478369933743751140680262398254774769305928638581247628903591708812083232577289704094621266028507005650270762069718370335982952301457683170510019133063280696358417772069783082097920103441116546895149422734538527091025656392637974202283842651909943717294279646239200802785592299457938109688414533488954674597734014073512098776777911567918786255069692620089973636911344424710077122753337928854147297129020612454495213076519362956867355800934575778418623402509054899618811290328336078982935385952251636788979175322358538557803102414560381920462124685226024306723093899900006154246874173728001524281863534313270823406183325121643376090922050453705569809376301227152191644304577209254114560633631697943691598052190260531398477005042670273946344591445865960964760227301294539260916145916862648478169373358335213546038568092994622913505791893516483760159507787036749964526948092945164068704341213256932005878460302746580102277129418259755738038622962404969318956056928911318455008402624457245255893835587309911473853809193372947328137488483574615652826693981085780461242015397825839164249265577455680944988379195178717386989357791061709258474598157164132452993276800196790676382156642291602300636778974461780463195635487770553423009801538645345279167859052993560219729513028941764080404403805498709106107469698612557611297202695181325303938573779983790330787077066541493561335049010514097266575527961296096633426858793323734100574141817399997003729862211965259002720416404133853581493808466890378613623984787874321751064248788564732956575919365076674284187760103460779609809297740963101712801989353566314494200235709363014233948181369354862707621614593468593461595519954736852675745908409693780571540419183356724649687034017155253464078998822145274876834013851639204580177366702009989308457436012331571578928249137364755577121664349093614880447483336239443595462895425972129118000571013820074989094069854119924975947399013371007945126871367751218270498565890792622235156808169207358644936845149892606577151036899589781333257597545632676012991714668379595429815806678638425807122773116161331794649202094838155026598236683059914013936914626524909507582257316686080554848655671574242178417352556286041288373228752703850925435707846936325669121174924246735028037580477143656921823224592702161468327356473548892412592664232853814478587638485780573481756270926039536100151424984393271543392809393275337232472530060342291010124614974377692259525130460756399883909322082559174947474268168649205453231178348343688560766737941648182976067477488431641188618231941007315540113926345872358163843475131273335883659134745336623888543589560297525434360277625273910752608778651495635169656512186435947336346295587723779500262539582788440563689186521500665034935090672871559646950212741310128765389507308429735003281836593810427651997431872207352216970907763753652337877523545318453291392458320986041330827373744686653881185978739276512900119138709454991412650171846141131930434056329915671323401923641833251029068411356815043827787946213683240327298705941701946228764147106879126073987413438023970346301115900225493585511046087511572829541624221533993748343590803619139542424041927489744147217146078406448382894551059597946088604318722640397710299260165929461016540403691475703941617077689229822473782888934744062839191727261178535838535576600693298125357851008783497323145324252163971620605618728812534792096944342351993858554264877751751723119985413024505066549780563700627780513827897643210533147620981696317826262849700169505452919445583430560661457538465178293917097926570286849660735720494302366477982606358508404728787476029074860117652446108664544603010442076193181008171075975487232708699428441663242689422723035783516436323454785330993454322548683126734053840885895803645876299116344567915600177424611466927455035249539532557828380201972877059422450637020424510315331252558122204136986553748253488003624741833230660641862551325298435995881003172474323429947721804765489560525966915899566540601144417118467737195055402604792543284282710925546189471532897985928799045268168228179333793746455388959926526188690438027022227165682916664141388063020759929322724463254003098143484967044960669370694311136269607558212042839182547688161899161153519897233423040440630229461631316555020522748783903947211767858312985128811290554438513169289085861811787143393177816789361916766911985181213004937950232997984198881351654283102721136058895809096205325089588582624506728810821065751929831103712799786394538024213327080818293968768158695971209684887283617778077649921418098384750366830525005503485703026510047801943322220815367269674365186403265593853915065974354373387062170533181809424188671319781402002338147006726115935667832690210671949457950361423779033106265616906677574257437211793148620543005110921260170091972901430615873859926852206187004856458904165310080630600478278311145705105363428332326037141412700919827131788412140729957013881244049792526035433851471778721075254410466641456483787659612986110025635552616701744933013725252441528867530923548690161288737425485183414035661809010702286097791481754219759576043451172640810228844626712062493359463755586892347831371172492260223456459280247222818233865510178240618508346413685415303429997698051754325931496081578305281222796220257474037268614122695181540863398614585543836047940853458234294518751735164516096862345817486109958930398591313138500663818509146597401386510466196968804475141051867137242034430324874243154911916969070083350867175825125425189784016291235699320198144662404314157491114597914363769725948259311827206569451722176560552503413210824794798869400880737078155235277847435908675619485835825598295061681101114808542448904923541835754551548684948060118300380505969893240502574053296485192116842892349019187919004037179037280846707335095329968500788143986458096904702183465435713153952120999602636532126845109428031595539782961594039813070345221737917212470785965617801226934027681057291847284366442100289584758853379080545552534693539175815007728911584710956272654652927576494970337926729004327251021392069480259639064568073162813495780777688673953635522893235218311873065050091245845560948659859653773330047769838840653515074785507711935236529779574130653568857721676369942141586486471155614476828475264679759443755600219006416527135397246623990542943553205468874390778900796729382687725245096061925088667991170396523291258234471312676106591494304418812054426356261771215602843217850071616387290720098563168310800248426148151703155550341709508703318619506434706361829262162132286550370312598235328884279358774208936474017896505958364032174896112500279198776711882702156483066753285617769081302471316975004223808231719381781191368111296273428066708806721562054348240750989366461722159249480660606298983860602781492811888037975401899527009462361379508228805166499532512154632224559063445109643638418732741754967932303946751118295329370496488081487297363162140001723175811407520707568118793023991378741224562557120002896238302116308341855079150480920961203466152211591572621167837056033123304317879781911801630023497813605821316969786243383963433934775710964296125228577591373609725963133981401759409136799651924688273030681346072519726457712756956170006132359260762237139114593316645438998567462181356182083366030883833334782068325631731385338233801060390408578818545802483803748342123404886398564520745198362395888458885730895753401667572011691630386144300662772584923741840590024832204218591384334318593472252826381203932839169636579701422648936945500326541474643060212620143949575339622038093757254633217540813727228219876143880116753264709395275261889409487844197089378376395200543282886962183662221033356969124666166022164833992567900810803068076520277225701619297733376648009657140334582443010549689086497943725536662691684877741910173672205493335997146639067320430627007006469219499875080800804363748139701667766586715412753723843796902733591185888027274396576237824162110020419243116840089066571638210871037375831250277114713601593350012997354459848050405783301896377588281816629505081466086877973393182761969719695725565319308070948646860859420633792810796324928250417227955620687319098531566581078982016653819107683170130450572586999332280551311427492523248141160147826430536298894383358189364697568285846765222556111937054130080808339767809982288470714086181873908460845556186499796942185909114451273562105830297091965060593269300184738537459773500006874501220434222388215766178955093730303680112614494847946153517467785078882306258855101343680498905539333135405869960612459808398638938027597510610426346928968119010809355388246081929198005519573095358650492513906843797881385354558439216287203211745169532067536087786293497446801978950572858891734281577237405717034657016545006585986586462339407608772790461294817834738953709344172433538322159377616114567792246349516147905409017089089873264448852983888396677058854053716951122633285745529450472242227780517136407331415791535475863924553815340614677723760537620762804426266503985639601197408889928812847333526799123840617714371238939241913142071808756413221933050717942534162134965313165091662351184553031196576747597094040423012400772493349738544354477542632481398977388967587505911544102710269220092250900883996191530347786859208700371160013951669358270064236652474254859757102215329470168968309895462919665776281192984079519931163666775468368943285597343892800595525854712034764131527755529147314932523779565837159647974009649337072608988540583095694184826583229039410012929416277230013182699846159976533671650665675349861635325028181374727380864844723119085152725077972116159165526173324456039946492949401971373259009235042926409355613122375412865478820061148427257141231313033956146914875359677239383639575316400993733513717182015778753103582191978108959023327572881386915913171506920005422622494751834050906002038855762798813627219505568769398413015482949462344813816748292138189019129582441939249928262932439648756124586841138838378329949549573479565647636960541660123306235196642947676625483828559387567982910836799989476117361633623038235083804553186514036850720715404400836623416442025126998163633160547826920021041910644602434928307940207388675325615216230228808222237848577570375679464625521009036162722236681022394446329324296802621199174053073111662467756385617575995220802886301004013410951203728556570033912727094776624546020087934718075822376434539840972635929790810010843416703156498433676840707163235070708537604628702730992278575701006283833608764760825343388567023136958481858196778729541477335452237346971715057830789843139236644706478959568924341849349116786292253559331645113174852305767630522487473085198618670282990144793954642840382448041704111388687261257307321903158936307175433605465241740342012493729772987403482807438981582167435350000461523267022105641227737700906360362574242127107221269489248465035425433859153829315542032968985043433047077649763045918800846724489930652855114357671294428117384946781511114851526872659861443649795084106097286567324711329890184232875803094271777854744675542017849120353140804124750230779324063668011341087630260783431829229650770228866288386758835824733514235764488694905869745122818095889029615912627900311535825329292361319968156541564309813675977356076330258351699976784433909877232116706301641318092196683440369533456162946482021216178119071121239310692145982532483072902507441559409063260484474214098379729093873019231211271340169620002515194196523127363751487962687055288204446763107624458616674675286167041787507026839006398403489857141931779096542005830294783320182951139058024987014760248525667266647396364391942466519075784193539787250315092547925429596518692345307328839830034579362328156775889771009947845168309427591846851990272331312875447912725721241297395103934168639109001353351874068966563807667870963680290825124634249611565216058705222170533216324026458928876153852659830558731768548429241645083383381959576066563721209085775702145047559944750059297057668867574435714551873648116628115891416246629783963630661195858126334061860976156831939482742068296420308850035210099633704404222096258146145563399694483053502283528204015027479477653686569141231742194049278165926027639217654922071653647365739542433389861646584031530668734167532726463134638319357645503942033217580716333694842628614208033787499508494757031064482352327176018788921997897045687875156166048237768387083175007462736447552638120668641502223575623830874405492186476123941747431803582067783838886850945199046650241249402230217151021357173673773870330414657409169385067628597998679467505073131305825439501595009931578418473131560545295687842454039136264137087705260768433525945849395290553477927768306162933588537450209427735175788397803670317950036527669000159190856038360384902753284464447241056839488178263365225845640680282622303775544305839940973103987086000063334573158520843921422536983927445320722164727505693389100382325951696128276198715620658587737897972378031779072495843471668597086893907881583885605093190598818582582433341229637438776593428052319106967653910988762796090917575655379593685381884033587755367176099285623713765568331925882462696966227805026656574408742174260036106346969571737850753199658261250424009439394748521419752651764690235913599956706356253023878958422097907237351096895563269211151248520354710418373309615854441467623525424669704212896460337610772084974496037678864133919763305946565422535044014993056870131653130992919947085434897892148614096889374087267727528686154311870874339791128247757870678934148459227720989024955444192131333183421240525586047062405513403323285376350273564874806559328760044659113399654192792429144796435629477969527118979288005109261911399291120950682049482201646662114123456490349777077107149358558876066317896910850116341140256785094116173076092117737999503250812657993741426368716468293235149913499994950932060769203394566575992886712204898931086465203718268444157532957408732369595356087600241766203599026460851960746568711918846100772965283986712255588167569840326220425757015351066012822811439984786432606466116600946801610948091552237459367108909860151275667546471756869098905939953068944459769501490764142933549746561156476639668405480273953659411609687546092812687334139227423715869343380888726065644748284402017421242317575113883649301688124930742366329032105299711322347320708549921146482809279380569563823896582070277090108845779983118604206267778579644661250093223338823119703837898847846554345311933715627242846873767900267826811270112992383057991512006392311290043729301938334881962996414641313794701513177581681188799126042137924571483268048929879388590970467513536551063339687344609983770618479748252691564043523133076923770733134191123375364056717700960784706157380977937203753464589662871976252157043211610849292692330250962634613505619205123474790931462016499929389107452592054122661915252993177185747636403186068785728654774314219276367185020459235962467835793811605879922189793273957180055894930604824697156882086828410919926095196661751474536028422136892123630156059652328188664969364636650048015189480439819011150761181499590122490777846399735357522788900865947539497993826211523377274770676102974526410762373951064630768557024713192422288902528054321214971955975845675301430725430209898552025844737116556342378808237974542912578246413490532843761551661608964896096255643328018982356820249308454295378092638460794614845669193068680898918168329528893974601866608987521061990003237466644338756651242967856983708509941821236400276084948514204398290837513406476192406638482540132867244031648292792708735291896279063852982202423459910734291515468191538111843795588353264085514696530717282263957826077588703026339142728033622104608972935441660704381112820781225218849404837737323459722430450264017754134754410631006590096987203228611131999643499555928529130584827475854301996737284552473577142916639679101912278281442613703311959090518770615837566545073153072396624082671841138321456673079034217391858130940481513291805700749389220780676544172449087133983569646464097134217779345593147300274272703076790708934486962792836088810918097560820640790392155660073880620930918870728612607233835158841112663469395142036446203466666290440653112896386481893876465503549635879252315055341113292695934945750961502929955343472167859466557334323348992012608871624465640487183125831718922170532766185707454854155700348961669129701685663389811211662189794344285877769011800565478328587172253517578354726577064450168502633193353951714730689535325013090309803364666107051836202065013166996839965985586908089500820592256078919810247346280199968430253692639589508554237742132642811597413663832471848759298404863167051964260381186484153547946282580515646516180272948861238792681506443765876158936548405811341119937681296283331429449963571533434947625538361400824824387397589071264960770152170975324880258658805125003742563062010427322315539779958718597682726441696201185269110493425602075334693019800754773086540118417367869837990309174947895549730503930520572892512923345768966250217083199813980544673016916915025299477584761787730408415236530705347655140823419048037109135870331757406458528673663183014696560445303224627003352300884401241405748368769036333356858364871477853833821766416050862660706955806858843702137012937477399605073893762790240945709627215056735400445447398635993821253127484297367248800385975312726692511383531459529954537892838122203511017928439543479515527642672517719113041859696676231096389964894778078066638244743862568785698501371712712182187977079784603395904538869300070778727834189656489170651226171994021268906680204309866237582639573387957625748163169886815723281775805354852995884373324993820038884752939152678532098944964805823537524457911770837263557067654435343266310587502511740599812891737301852315357345329628599346165520751881039964057813346852860584137049693718279736743871606417808107880753633442585381388182697385493168869681845316568040234030413132768652134825358611640053732068785606499096210498314992275097552924946823302180878939918541000349482591756660928342125612449440495296237032403303812170381778756203128045307696188270459253430560638203207767217173244071374655186258514668305186467143851529227813883109240078452779882170405318737634163402857922048670007746528145765838591009869357496390304260990497030631790808036777787774242090105333652117773576272931301592451694147207732405046281628513655283287665326806868786543484299796931604619334114181111846357673243410308316730175821979015323530422203108229706472789044856437358009788327951648106028902498616776324538353963474704616487116368393336110418250147985621323475312384613610212799231240946224756783175514807661377979687579136068231496604062270930125855214600674773743005390504042284263292438815983156120030040193875748409889017444036031185712472727195479739783439170280840471755853873806591752659610453786484911848672604261596316493756957850086829495354427425965236069143289965572854371393874202580675502660624575691977371369098123089031118088371883982676082898678795379448649953386359884358475431666026321575998189760363494256719780159604871835335531633034180148390239103108088289380157253660514334671021752285566314187613649520417043023463966666852257704338673009148410428792858088512918006426556137874834653738058989238415483887611926300497709931240538351630220033338286188134141295054598423861973855005036162970995915682406672722399038879763547912960171909300034273525375863725797724643861420025054286092865489460857946549190640559397677054192305082563161395283304087174345212591511452935639066849700331649327085962924366473076279753167164567509993080943146190464452497818985659613065011419894567628654347099647021642908398660569948486533871938832630501450889761507149972315526034961787907391561646420324907716223994074851014119495707416806379896448663146471840201915836460758083700093417633700547813178029607963705854108120214733208281461523401840824351882398279534909988742968925317352808341862238143622850686961284401668020357216796713124084859051435510514460058679056224554343441161640806937381679750780018994964981101584300948968267829871659002347557026979780919065357975921364946487358864280909189909673485694443326663184164930015112467209767852685403606206921442829441414377115295125104133971529370201427506813005947296232129781282125358718744023933177238609165604179197877086221559704415128586449012371117953756176393185562798589994300884269818014069425483508518609754052602073517903745250045905824572215963327830193193464416959614199041908968040474799720175517780264118567015771949017283209709971677973572846601504594131737410379797752382214618084441648276715901566339999119215139667770836691868900301852314538940313705307096971474443091310915866473880232499951549281986344696893392216592880868353438028524380478725922676830417378746465525807812870293975420775173137712633017151588663265895576579390117327057982184963586149652985396872314200868895040764294931298613120459555693407611522839805683539413423011967458951276377313572252065876538158506460762258837917953372238646822356232358993725591970066423487783504623824416973590067882236697867502391649661335225703137671603518213654603863175547404786187183630863428622776221252414575495773120435838661743316978078626075264621752896799650436673222828667956580742670453666440417408203555811906214425651458526088512783856215436779341494630629487446828236454749314365192208285565191880535757579940047010497336570421388467004179276279444540331531680101685081945412145378170804889541155622134529206878053774249773374363191744776124111951260924432172239367905069230440516531766881672899848154518248006076669551468775648939201846975340743985780516172552057426536471851367033606684730305549007674612870974146719233612920585119916267216536580872358931704393815770427746351785396421479675697257336624157951444121392557887627464530948396664930240137474466291583789385351551224847639324442198422107609494700796968408369012811627982474684715511638532648230533446887024859252153755031193064756260069195150571433767941570740187701447432542459710401154644890550738219567965002684151067129250703406416249663229083034284478812201025332708382501809674808674212921586880219387433090044700806575996705556699066365831286737825985092586502027792737944150446318187451316600671841453400506192487351729124329254888799526736992933668812380705163684227333579494763559797297345949330100462214372431030264017902873873446741043402493984691625148379075902677570791342134570464095015334644406288557508726661508158517237832601723086988407316263065525466239890783586579334684568559917425317504450872272979734315421217533517071209403118422351466871604941095094221790449286577091714344863343303437951362305010725205206273553360003667622733717584774012955594842146452888336280299716940073985142143380204154913474949231016477637683252420761454199665793968366174009371882155561784779716610889271891687997864861873187052677957812971946649100363933872871257110381681692860183698320462287114023384696480229047323456586681665975461693640165728107349267125440480939600146966932300912308465384246626965373711322090189403748982121868112441034638238986538411576479741494176723830950626624841126575898026425618683896377774000445561691864986800185772834248023549726982543062182819139652859132867381447895859173659611624509267563995909748852237207985343141200365354883116419507070720421649228055251666072138249125976805263665676038107659060324910988203914790444072508897881909219341962468073201444624239707021629560158966172582877104950634296081270331728780853360833786389825802288666624720691282608367665122049795972679736700944638452860232879718268245689693310081379757528037748393433649450248648006361870143024386973404683978730613234856381685134466800412995456055776474172495718646380443729092111263235168893725644458315551487205967545247681775984206323236127447454111341815262855653903605857827862957367300859804410656623966111249704598289975438555030760162181292920075361501315547815875192785478566259384657225629636694545907280526858753484460168605855387280628498201641808370397451410450584740005227709279237177629382502440048885110117132714518031159562613004847336287899736379585638516509796419538878940865999676323544076297137429080483494044166332001100377502699046231040711119422754496286377770094833734252727702883070394185266952155102928774012657599945216152409053003771651999676800854005595573821278375446827361288553450007911607254381589844629951650047984232709894938875731422219993564375423780792193448185188355095909110613468416297820962700862204179595950704171055092578331227232785263735067548365797932337771985605255700323092256192276115473854375161644950845624823168968037157824713621133910525722684420590622865148464978940556075544233079103478059044002671751080094465993676366348134872328326396276643085638161069695644545459531704557350028569575561021255864219347148703737811139038541436618609015188880011000354929935506852319889224315445004941698376138000750176376048170488164318482675228034606661442105265051022631193811908026758381439846007326876786288980876501166903223445869767811370905030333618689815193814944983146839179157221827348870427476681703791327534754382989892611206880241299751437265357972459902362668544850257389910012460814370457362193861378996110256386761520776195621357865739352090691304210484700506745052223800386485052447026125986351956611106951130705394188291462895540111260698340634788913272367171957448588907464515854622913200860835336829659629158612957867003183209506571225384195954644081100947165064621114097054683654463235034601288936593671125627259692729758156933729988917111790625338056308293077188034295807445976174878374370208267429494790944633707404886734437315840567779960807399549503008415315033806990031881435154474122241396924434828800447498460347335782574871099843803663950235237506508388519012112699468184041526556051779591849403059769961973163235182734025864990105733334955235063185667401368188406680713398072704580343876325434719572931942587148642883863229278386518435638887998911322660452650354808330524797335492951572739560161375655974560401990806721973986960773166540959312759374121167420735387433375140849142121130767495309873845119488462184824779574818778568245274038621824676736015746744098682430164654666462303004200543862966854781019187138616349822475412325851987441658403864560264736928944356863488402053576071996462901487085280860381641530806020429710521924055757600078433178514266684855169159689430453834566592185147585233686290873205900413495547698693415774438790008240267503444078240472462808148339669797953956177237618752854829207813491446865596846054811084696885340853023670309637473963510393277039022960129633438953775654457979356217440813942562307395194793897507774550019634554786823163883808390096368190079918212722751348927369860862258499309976648198105810337479433254264911899287923586281000035613352697875623599283281533807272181070777596772542624729444431610005467588890748910800269926987816486663486918753394417932036493045342950702754153784377216823572082261286813596578186356983577180927428877336502604275249272918398967524566044096049288008681993701361658000468031380469569901468250884358109584208169717993319547176616398886764843170823709268914219930223997617639965084097452953288270031217955160498835682024586684263451276008288177316519217478416388804672841914298300842794529713892238579842481363755113729412905829451261480472696848688130592239567959678180751944348073138126668123824373947251991645953070239409105887933660217057584561137772244549353707913969163246269755065355071552394113354462255156325234886808905116058521618625716201961539187010049831649393360250826754885793231647018613601119725301308074517253593159162976468730479992731878283541718347570008651200414986721582548112025842551265106370113979149575473201912400883433832965632642406720427181117938622438310311108167576348911752949458278118189334881899928978425608334467359361332278010662569733557237578949042288438541947313684246482764170256561615617139739912199293512425675462071736379573542484785551667055317625554665662270329825108925496972132592192363477666563828079010435650512731621382613265341022183112233773574402287595806337362599208264482647602585434272833886058399695316201952501171562132955807074937848965875298095168149957936220970897998985095614778580732599987848080048575723750750612908507871245391678665387984909478025199256758895639825832874830786473046906718323770235048351338867255674175029146904738538590747752781368224072161990984203384286644021697770367157419761922970825323511677272052340825004853231925913979969965288913197709541289767626213443224747095293092146412161628702769579990414334790617273036196235346295596255922463877393976669604346808817830739595348055100119180082178192649610576331676692228506809728321804760344761971079160859218791918330148323299003619152167748079525473586860978331513374333082451043057789862080899876004335716906579844613471281142599621293088609607917665695914060880657873722491231068661951775488221957830159766737565077439424012193241955551183480756680601636003042011323511351489298141664595948226404984270710025244502412778279072316626854826637003059738592250244575769984698959535768057336246914497865593865966406773492815873247608624604774410251185860680211896278528194734038826435577770354470760458564277968012206118380305070359523354545315190766403482255421736675166491899703705476664860883162459526335695567754472046808266268172715577019020668390970337417104292334796399547372454597891354790509265555672753205861962785091260309788617256574207982541447912078834994575109728170869635672365489568676479285762821659817184931295369179979842583371718222779889381339178001715928029805754813312442395330215612584953225026567083710662546640755816179609402171205653961995374091865451935063380578381725323958724508750440660233698296345649758788809358359658462003393339120628505203440341598837667493815214219253679814757201951598105715551426319339643676731939130119748711378074889764344856427848299788024203733679071177813942188788814658881565078149861543801786723201410460680948378515686968625642971460886446080732871938736136499560327031513918027524115622278662405311490110273405022429839833285207005541534012474936750119839244150030819438117620489977163197785320036515236992940588198303696222643133652396628439925721469206619901399149042516136201990230439143480707124187350450908947807798951314450800342795873769804559800969146104576602561075758050227014992086590625268157399758375562184625558225017743224398372101777692383912402176608343817967265990617884437401341665529873894321925019646723359910761402549014545790525363928135483048017970169196558922039933941330369680315454742506015794581163842861733892897089491340957259059489475867446821243957147975058430067994253030028944814391328225899366730367813884410486788204456711393498963016286686210561032518374816737771749630451847409371986748278052772788104390710514146131441774499353142334483374118803382955918995221216043735689432747381944516411800316926320036345385797358673375060544464574380221362353572876249441999003510348443423062098932926967294286826514120192019664158374469409798356773519765084432790027743780159297353569463627716268237954766249267629931211596877325123529888429301969177431359980949419507619169238777687264301687269183994974135742866682129374302603566923321511711485926209314947071964589829370041314428614066484294342127000531483818076648002179626910201397899331163804564218230133646906784040074861501534583676947230080218201475136800196107345248441152461367315790974670615988049980087618629415133120759565751558866753889193143782565851747310275412996003886789569864552860805594391757587729429358433524500869826358973852113371913455047129319176027557942303905700265793112777272639362165017392356565677933036570442163959531534493195932414801522681980451448457346946635510038546136112649607051015937116287823989059075154781112293933790232071693693008998545820417946998568550465568179839795238735305637709835717838764493488211202110322986273397267536535733326054210925138097487440054833704198376757076690861753226119330531855355444699437573783685448283659546738880196371356975613329946871946884261221709120358507118987132349280325832304520795618478673390388524769843914578712163841067098606234139218474891708524996601431452780623115325083258423862089642402056498135249951879976543526098260216549828066123094705508756147147199914792491115178239520691967966682786699596182211742275098538832306128627054965791783886825852684437669558395968546137745997781515410030510896875153253480909388157857673661821504893974568868630554041359168010477847191716634993351754330302139822190556947976314993945262362349702626713500566026428644957184343303683344955745261996709271100468865817407900746582596673132124274902785844452660671381526539744329138108354739763332562030920225779081118840874824571209990136443218256624844114315302077501667435085955977725972820876482670940227337924082739773164465128383226878392148098911857726776649390622343043870120957974252699185162464718452333511030490924382205787496947113130193862976939157683154180999976930198836463918070693295887077996864410062116662796580006922499104301046187481330490040454157356411424012068903055589997259430185339807690838057196579928948973065362770526295978825624572871052296165967104769369372343578828877699057224923286775380438013136719336974577948194075720737985454598911437224953721754682230331948853828961333479031665900878805854837391597838362224732722819052813102956189047224393951747074351268110037403400329178386546222225402805222515114231628061720847498457614004167835198248623804938739190145912167309202119127537375690238174164380178428904396334481725544075604210517198723106063557316496082487373982067495483114866257943069732659417940554342170345599841556394103365453118098009944889892156170911240981697318441204656660022442931801231721318077422700961757428321660199654227105811235806517845569666291581402000913065052386400881378769952553828490445776617865100296689096376714023580041681142390887715883729139546309498851243545392724985288912110031162909365567583695534816228161498135523831235397474124665842024680055626537521379513176367054308747185788840890145117859551189333863488338459023266246640389691197232833007855923288472602911196500791353268203362284666512613735385818251777210123463290372261637254193781304284300834673859714360103697212349169249749041810981703485270090966525927337317887744116159142698342181609094898919121333389892058344917326821075825054956150021008825532536047595324677480176088464628230233119951984562930862883050986901355002457515111844377548224118069743825954318819034811268669926246236557025384695839869266961162801458878261072894756793300090011641924450276292995736552102478129698791174882942676238986324791295970351022889900371518590508686437609917176111264447794620385455144091405370528607136325902301847223299968004320783376464408642226422091047764045739551584456152764975848684895757218454987313786957451137355258555817477174449207445885919929517065314411586812456393148564042855833270865479013960321077126074270813209820600277235169585295611154185045908523098738764334202975598708837000953080456117419910099310341533565948046544536677797149912497330937112575269835939686826408313311480090059132727138480549849928955425974358091967616232592556891829317747901974888050990571267398370069006288927586044641100497628991919900762360801443422324450744395055377379524825281345904540435788190257875707629985737241161833231828710607976042170630682864900356904727628743133026101635838739376302297384545129396894431709203923473794680515679418445684146706515297494120606447243566934801525558124999843614564507370240515030635385114835572792588569169040081238390325189729657429932408193381512326023913436647714758521601012266993219667481950289666773875090796750104861127185178159076711134053957373859766968364357696964515303196796211053815529141996321781232242754785316553786807677317289464428280281340919961476090765928374693864241425870997523260635360533606824608968932399462723873398620256863026642237135206713896998211997350154997504323244869661658681052421195742961272921837943468419158489171042574036352347071282161328852533286516233652489152519844165322075796903291785132567119137639488566944665160412332391937360454478437592318357133749033851844376940573639866535466546619310835248921632172185223389628231578758319919909610734757425453904334038398800715592466220274416427343722873617626446764813222002335447608974222899382004814208904413274559807655883524340381100000941900819070390844566561602778591666841952097426780535765516396367314260919564545566960189453618606937860439515195605513345115307147911392481785290844698735280337703291163550656587132551146609945706160559100318430380004719455308087963501521425231966099632876963895237362384254562329037554482242760176784786760386013025450262954343841880493306941992107456971836179731682897554430177621993772094180988922224691988099315643476289249937699019612818937483792054887021636210509679548996612130093292953891439168389792217182275072711778407988832847433042999324973150462569196761439755196016579363923822829565769733230098698286535040982520797033756019084610627417836398939501974946672048895057869760840538487363590739157844275160993462787963450812301917914920351560917053428089073528431557418163045397692486782576532427936206042118751241291138677123241611406877560422572168378463533383662911643671440628515849096059176304602537161778621997778969869910741344079213078199251283262014459135586358985361711128262562591839247966797438066634021826124923620066851867086018105790626450912789559920824404001008682565907956063116694080380504096117938262500916991864438433999265833111926512473171457145658104519534273744156772865080016048825039219008957207406860045227683231756390453723401422301650061308122243855684512426227205429812405442036821110982900128174799990223777815318277759228249200425437322521779999626530493678815434133809907447980301710616247052755467726947759989786959894222635349753895726577904174160529299531133163036041753939101376111691526343092542468823120204280660570913877051059312715312642478064628478724322922287027264949489385571282053715901148736464547296706208616305716621774826634673969044022643178637961173604014393358165586376083222458553120872246705101940612655405415214812370835668227477808093354383745312080619154398842814518434660295801365719867678392306602067140706863063847988991098630618345162938886896761932007088481564428608763136586268738097945864203980841449217824800828094350283295689792857523390120549557487719653397462385172252464961717389449893380384523428609071709686950403731400453750808656366026977195333351789309731815487483310833337879118215625321359984916112736825082144109988145724725203599151426053017825065697607490318387187518396013681494343987579260739919874525937301813686860928825486675364203021849672812624650127047477070568521125257303047013492866616758940716248245842458483882861270017482680174270146971578720311183798051956900857741030990090278024417600482269196527066504831694994659084681776633054712575828073559492883525647387532241515923277782873458079267730129196241065414131855874958675641287794524526403426717723319379931720015129244410869038630517878852482149892807456780081648390386645269027969085049916515634768948063377281491007388303689798060615856206677234671212499881572477770638146972338698213394795583620358869829883390131925069885837360444033792851829432210981909099991911869940961382341125417680878278873855431250149103349709868044120128436310045261096835768955000830185430801114756633117423800680256991886299869037463704869042596870850606930061207093692485762619210060688860671819307689886749136209302944650440060938280952241127432222609063014199885626458694874448867119462219651323299929627305715285455985481717188922630006282246980252706394643479887310937043877679614238203543916624288485811500036189408331127536428682095189996036104188840964434422760344949365550135223859196834175440731501812075148495902781635209612584937072598726535926635448635170134046704662129545963714156994539669364418059820376329595207868734643987154039740274314481462149595114998982655037189925346857812532250374393273225967860219300402727383366525285988614746275546090158518531749033639267517580382778995216239572912292138180605382524248926036903743342777785551060743376533858245915666911022407705246175016562617455007067164787871422563146324178309728985022461028175224691200928890814669338771863608289340128573665489421947533509140551009732112237664018939092638399931688317772437225289631882635915881639756921481193218784123645421546911103994531450041414755253595369021369373672076323816514018690976392530804767136612301250503819480019705199025174035665708821378597595834668370013598218328353020347396060793131495598392806859552596790861166716004724197762171354043414125029299353402313817161339121309608089135428546668800646424120439724759322963904872786007600418108294976241236739466052942933424037227907731141896519067750975659163531829374680887923257135633600213773763070678703871787431181004521436092458026578482498226858761861653596840712861319107834729731595233493283779469493472279072992765886036144662014107566017616198095476237676627639164948959091699427512176277029239431582191769824999528855116581694321438701716573748250687674897913316158042898552218539045384152019529808291808562237162851431024426710551840742204845800977904219534995294738332249009154382589082451692182206085802154374593976214534917464089805710533766798560124245364862960681467365767695922383197720767796002588761376748976710869882775252827754837058863022425071609218131346925846992939668255726380419703552087628300142610689037685638315478472921126357964600429109279446747698760591112146627809817873450468280247271311694316211886871033809156807977540817097367153704787136531258018881013893297934824848644496313158086449768151313398125300577878781497583250025619946165480913773014477541756311810517508835481116558498162645452367482516995913832444238993786899434200052721901944718928186439817635172359839413229913216723476814091753242317279439289425605103701366125542114168856027395525669894261310603584174468018051727318635047701969743717466613603575292075003837408188542686601541216278393718449396982100014164927543312950577650775155635968446848120439411775767301999610583237472876567808228874799105346608982584863508657797480224716610218572344980885319658207707604996850086306054985238305198014155156620497398882985740218580745834202544210236434494383182956860940789244884442328684001211460427907695694829468070113068703502870077665487029162148400556440913262670734210012361568795990254716551343887750359848434140650526430049961468319965673895039599473997251935333578729867446917525963216740417232829487292046919820546732560507344133171863963530159190294658475069814623798164875679398272428361030134010397706313504312137486148861397200731990193366301072712101170696335101855745725830290374838577567842236407424121647648631617797444815615804535042815774657195510021528335107534765573553018620639569216644207458336290569294597410803061828439107328981017278636119250327674928300099956090514341153796945297539171179137238283536691168378289713643568327316248120844439189306144905016475007310560772615773754530428353198094299622424503112233193920596345405783703056243819212393300479731313079440595291914533128486976201422013067717215974393872902814232489043828503845503116222950340275456514928291979366319984962788161196325127498082351423537197865705770107654939663179994357066264010333313449513575629578696321063998248634455560458031989584261434545781903099633336788306367845558450219377480921224919092489589240050609388163398615694066738553780480357341787098332749050618038876308586660400300287948843376101753129847605292902307239214462244326390399199128596941246982707319858413354062315591377457782043979409079091175946773367787566677991853325798921655764522942883911435667435694991167764107463187277624617889496370792267372058319504256021517753460605011965004323749596403554519905114281271185117408385575162507124544933269980898478402323012502077813360009626553018769806339792803928097198461573111530352446080708473568330944890312462595421500095599878058446737606776615349706551016981831081776690448123950095052981685742129347940864559071265909586284226173360999421536758789000733813256889611400651401552076515298153856443960326840352646944691667608751729851694639658970565133587414757264421964169495271159743428988805442121373173478096510414798829486112658491815110542238856443622909451732918888991995645698789374492548821964612219308236561878772676623396062050694845225882493984346988750838258005065509103118262227187024252595154975316587538343150276599226872576285111688482179171676266499616443346367657892059798954615713134823912418733904442912768670678031137418359566491536065224572667918405444344298549605944628239588782585970237135459919972672749763329899252507563110802944663177439230634020234763841768204950361238071512842628808690889693078655615555381546653636681595480086033028413733499029640174197144273043566527859970259981908745385878139633760072493904077227384232953968253863535769060517598010140894746255228684163128189730517982840546754044146074341691719931944919328765927867364046748059669099890051038980944714247462137908591931679191264529946489450434043081546029168274650099443893611407571552090470562229789069026990764377490551777212190382783435306229947035517583256348420523314546053605833127464999071729797659637640720448654553481508060962592747586892954581413195424332610350060754061265949267899715416628247434778081693865415887213008466889294409147643761525045842095233198895067695740190284542522079759281818596268505141716418288279562586171597748307665859495343290312790983044155574197904073379089850463530375262076178701713972706481816827973345593665451326172514856362780705054269432415125704793147725599477427385445091476439004295425764494992880032478036106252162908354821747774383448437335135042253054657540009309866769337838865141619489525030277585330277865553951594250809282736439655164812397190070338562797911361624991309758649592019569184009455369712209385469195788333402996116764388703847712305197576716954325371916047722690133512860850832816652512698769772111866427391864990670119092685943001482270172868356292781366042847334735524238596005183233383998253097911471652875012535122668079876867317557026419588321765521339588428379772265968960851058902374997828955260288273699663247454039407968097785361865799613833990349127276254706466450854179987696503182956236411005264627799156882798285332815143831188376635276745242842044776820802150416667088609738661753016149069713800523133955190166835673439425831849023137874184803004948855079701861045542982283128093082870191863188821746909332967895466989616869563583645226663485793825087244293123172963190475737186046332604288423608836148309313599124979780565546981510173248764288165363208464031312411291701937257088106390996096777080112066722772366106960722862976927875347221245664354208462338077865083299981516386655372394144710972926943382713938770736889514314063431211587383634491870603747999860294813831485637813854586606634819348564267555976361329587684565260595665405329883321763836868213687388662932853203435880978885639338704884544570825274234479309087638901157514223859992287830231885163079950401746010076133918988283547593758621415742138845832443486174335908003053104302949889854579191535294395814289460699956683492363180389803133630641964752863895504398960931048759493170104064277447399793570722018839797333349075370142657970059419378073994409574214823160483632772857044889968219469617478249390236033317061424713381122498400628191612895631211903386087607148159123136639078470204647392528054402893892308737971887383782025780923178344945741526677764930049222087842899615796682206181897833791457847011608617375593081943953854560757758583151072902638260328247877166308633431391516193493358278676110223559304151833681536591039979276421271652767233648551570953020298419856360944230389326423904312056544777743862363520884593051993544080508733187917914906591124260230737624716455596189310531797699004054832889148227062822652451016014743300469735613952024495961812174674579727416293398251980667553686584342184157531652687901536208316231061837275741957665424346109179105293918356747656965772094543472465147341179391696380569129378766209032094339539270775340596269929410510087724632703793397715732066913625691503143217208295937015581192582175549779648661319526212627262231227132210240962882079009127217930504994695161535849547697527005004741783359403290820358663044002318336814177364279450612462314860779419531266689683009328017126121965702652507978377494689719097581928737819135275034998069689649305682699239382082036889627080463697605585701314359270485451537560981737698744199503718910740615977813925914578649085114571463467451745394798623501047617444291109398619627355137484607415101630568676960009683871913619047487326215089577856207004687061558223259363379723158875764413332451686597800904828470020896435653593199311054390360704334054002333365625978452181083897595025568248951992387393235500083083997042313148746293107733860981857066315294440006187460812065945016893613488450170364176551210269061695469786608754093062274985466893709103234072590565726923213512042245181706452218026436952249658034863980593855317859821181046702882267529734907670400559428296971207599054295642945587779168945946274757783426234005516660391836965176476966663693602731522493640282230747183143812123411362158529369756821831970619192504832714192911463401075516851819151406933838707102301240829322342740463651269645653738541134908938722969263912933814430382515849199613363656610352512144741697259523029234820624207516120927831658761363715254261196369541590598607702749328160486825338664957866770634298303614099032029798091516531119037767217373513579228984079534230633378354856739039451041874359459146524918895750518692350433836385013098620334424715058579199770181602330692056515301356916024477589789362798498657142836247716562454395233881480963158402622648271354992942779472187283968149944487733121502603856128906821069074970390080495540761139582438524959640620891436940545654998596178894185464296652190346083628927564950189008153809835835622634484393893731125051553795337200889133900661956943637238245658346807243138110733984949555018332836965329876632643671545830258060630161221897761020150245489643627979367818212144408777685647011918543295769345827078619835127743291650275203180387208879130878674293610239357488472057009681338087276859438580267399709343006020262879009657454463285924769738198259905324576116818177456719409485729104856124896043901581298073950918098659683085341363418377695050824714226318766707993986859704911227396740398621548158622186876398653523474301009552950839109283227850780208402403863593625511303333948528710056970313988792794002516099238187103216388082381623074972560733024387797177159249892005987170584163771248857797067940060658279285612929810781109852888895975697080791810444390269629231871666630739912749740983457397325339720657764220064424314597559072927881773996997596911487942517616843782660508879501012989618381976940144092100781414404849582132101237577574745555066646716577251889515223012514835100757794618470618776817117619638576359689192109450150790662542618547654574933722540790972374355402104840422930397781421556740873405015346326584184623352271481278326333145572361376507301942144343949188550464505122184381284761133097742320819346236895247055073978934272204083174187922152652983064004011815771739045203864328984391608070385316221262083031393905861993494495436971262880748943660370328650185397617299871906743417563637611249674165092323805530690927404552473125176156028079672038252214887746219102057084266757386675933412013441596575085316234785432247440551864333571355360600330594653145740041661311339220000169088411269545450450975202921472842828966501846089615162604945062351559375042493455539358530569550937385213643204257814584416024057602021699418414122102341664983077168976685792499248747630996017186857454072809846272807141492102511611007381602625616340527977885373756015978162430466593880844280437600469283259741481400537412050355458954667204954016434707420985817181556159028835604227355883255806956291393402695625836132399466954288650774947838752498394479440328136211164789926587984518388279678195038774941057598467978381854949280140523152647604034183381093838898958367936257342196561467420258183678557474522936169756554933897403648508531243065278527772814785010864072654148556458282050578311921678167957255107059934718598029162456003816114302681332180803030517366128256165731397917177018493430790175055041015795435903957726293351918634142105112252047095241777879517732248427095550790133191871960285428626921676112975266874042047056313351181138439420699650643187780278351267378735203707611535788151393251049286310227808136959822363273151956649185071999346863490971054597435461673912951208152520266330645306063584475701701003886826182986041326150216905642669469498521273572134289739111516467325986173806275321271865124475688858972625902666727456362616609310331180589910765104397936572592184373806130088415909624035163294900722391125021918761338385143728290810134028852674512493542555372804284336631128087387727538119612682913201088766490314033399866840288069617813634666822811153310840304270359901096086689279687740298222632984299072523967546963427797193071489398388507594286941691241831878367953519329940191818198210699822363022927446484750412081234916210284597814345604620202780004302282585710105844080312836519522322936004794502684781837942501915905707885733103577033869233145581583212654316293798527809062061768064959088238258439813990833759020976663687830588509338976915837043285909763869285543991928691575588460739865116062821143937680952767293255168590892969225675544290072850535714584892026219141810787898561502247310281973461968132060005295368799376651064668023470559275837311814129205935461943983839500598905091155672732266479687520034328705157002646751405610116675402105611280852424385415529032357834449973054752691469915116419189853081866926427960692628049686476101889510648245032302165178631168694181611946911037148269019768079646852084612360734285615362150703535342423031552725285403458076081057752893466793388387108279260270985045547276135150393739717348421102518084313090315901768231445586320900734784214530145784278058720172361716775318421463541919618223550901772755980284723358364024897386240886975392799759389792534353125978792761414807248237449636148206234113036559764166077441753245125174660742576447754303660929235952222258427121526647541483069150211959700314071511849424661170511490124864706300963897730426691399479007797216809872611678850207413271011139136958928732865767283368978089239288784201060471657860290907364009660253417065193445244043211529299954127628187260559924924633687394894137664312949883131701643243287029930293490434100833409911072128391028603136679400502854287024291252814729584109068368638634597254320482141784003263656867670917012751443589107617957935170090487924766373606277926263719092454931566006200824683999831452035772807609331443389259819615362778412667283734828326757757258096783411215996365985540680023966796721456401041424249484295880578021785884669376357640052549432643585317257865082186839889565784072789530075953195216664058593701414951933375537973568162343510897837136890645033337892996793127070009230036854416377446191657145549995985812621048642891909851171959370592865720708244635061986527903272085943482778192829461602245321424862366697261062131496633925058901732993621453853290816095093551237950910576037423934915388582168793282966335261905852103116800484967976990792211989098493093949704744884449324091441833458556760263260591340963726862976798361320617735789469522646416204938569133244603640800282133738478942698830297702278413529519578495069087559240541363383986173780551397029877902078472661306280075215191243217395550323412034208457367193148000207796658470830868281209491910935018630427077346938993231701045815167726568527716127625984687678506914356701540687135363492104329549556024131090561406496119074683168196666553595295206365604323080457297149370816133045247285126390471249779113130277481698902684315816851706576176874254654534450812177139315247990709387268367298721927817819694818430678528340507703797599821216467570342629644330780347172434140598921106693379941036944475667755165525827198005155338549769521273352484561328046310725783223410406230629859128521757703872741716177668193597708635793495515185729518449790348458944811907736774145194481281328663601446599556134419568902428871327047477386520301702139084662363555246109548931741152179941138201716133834878841842245736064797471030003958511375204060003419499278438313084357172055993377798448944619929691628281465231754910081230953641299409126238132763095435980304902165086942258292126917605928077901008097404706556429449666582984800253013175018803458541187702405640630943973201806508388699619307716809859453974446692490007001231686029864515709669901188425376020498328570124804685734735283428453199805434737854118952871895654750138513233192366783447908143433431008330949059876158132365774715193173213973539774694961205646750153916607191295015379526065301092036338665364858060776255577480784419224676278423883073067572723117287590291537001693807332300635412080237375961345226007881932111094197188668089995298751264834904642123858350126533909139784818335114329173206908180935207951424765934492386031575185301878084432054520780938549471967710199147047422427518247093763041274424359457945043363144176504597170288702828045264847581914631938834596973505962215358709234715306761420834880964423123402687578194345831976553023156586972172571479966950403646980572974575279616666188247911421284219751518731272484694081785010695521002982414824740845691055622167359344108701522925347611344875680804949328659395177286291544077669410561787566080723303253943222315756120931695530385441724730891375520475533340268820258677121346663082791863900936379603069511556321754246965342894935070744339110428586046608818437691715589014519067073735412330446387511787372071642684397149734161763984432251611355525793356036847045769283590647442171344432425289101188504167314012699569621704205953113484959681167407827535200254094409493978510145322244395378244601761832829995314699570630430348340095743781979972963739323121484325393550786606116853572808143520422851909642655375075571855726875520275452181254017527891632362643298480120115979838713548375357219384315077079069183321183937499259995778050968684873893664694052309750882365138957061301312696064838686176123197044374709031439486829823076235739124609917280781507112577573214065182457080779521424172633140892341786143550206777007298060695269811153585071257463592140378876769043711472005660521054665597846192865227793056709599468002301593656471449174823351522128808312982513212148775155699431345381013700313551680080404115832113075842050022232432904274052050537265736811489538580445074599698398970128006465475256646181018558161504389230985331676851922042827902049748077809373006318876034072752316167733828466772613722280380776988578056291856293433112122587578079292183044198947848205383471020606336563512342116895020277084251766149593507506761423147869721695504609762142968098967831387718631972980718971896109935580696401217922650629986024476727865848504825046471407433518298320900721575856724704745941915041376370196079949439822409539631704860590445393617764193778944928399276778731064615458204909424027445909518173732794819247734134410492921825423267961708341344786130609799760474912483400831782403732029860619313708235509317172675364042510577298907474065954269970526083673010249099322696724099796039763675214134121754905058499768014300803366908466863456629196726989966239688744018842754368824862618606801042221152698574542819689124847105829329329461387199728598615979371503047329136850765935007786072394023407523425146059357833573461168108663004169372448632940240455698728696995215007523096718793074431213913020992549158134357685490747507556705324359210964033498177917101717640425063426417755490006987252260814652698480595573071023720377109927104400405304437997056955485255165052259667132085040552120840541732811026812868465852169026456052535942022177446264755729717834160225927836415349299599455082267714530310928809614978598652272711790508723980039787608289573371842857506835935570158215625818360042441640907776653572717975440570712795405827711975728060703967558773733123233957000108118819838799174817852953643983451418251685046341452297615485949040741477682426003578594812848829565801787279558716210641249473758405611837373770590287676820130257893689488821467658319793225726607473982828006057766416943190659904046873869558476081156562836222880731589549142551335489362324640375469987302660339545713702531417980294917581698109882470803245254285631311927457178196539869816237345368530756541635975609623434369590558612892362827736604083518463037098840685130537231882363659997900225686100318783898637988688788079249724582779733195749305476186578297836296829824005215831119315895894163623106910660361177130195345865128048987838981898200857407943077685129758424310071897721202976779885428172238880429881087194263485824013144589464744362351942736552267592507415931583780881366196887628843090007163635432746959513911116225118078889992342610286905226185306907616536667549342119473922999759054847293305767037430728237554697362677408849531307997584392889253434353416459038906919745763890494393485277654205309746589581660892261541549775917801297317944325135198412940389123969302619198937846012303376456252214700701658362558678836195037433316325750641083441311447797976024677342753788130015761256335570122035994797043541769067842153274011567210898093325393618694961389014213026826138024471059175630979966476740007028009110607066944091527179427864074410132632917771286471852325051962964314705076919817100842392708148862381138792482497207457329917287417513480042653306888254795039800769134843123110605022710204929100173329026288525778076339781741455976579584184725309962622953272177321456331240653260768946524831347903510701800760891931857080620462034445600193751751035913721666522845479251735620843959426965096458741734999775363603770526501439386886575737291586781597884174709524828300192202082371874618865994538300020225969908854003723809593610379733322513573504401516148868378180055576013551605715374468184842825192240911712191283817719019857995547587383076615595664333622918503690342625995053142818370415797228677490241091379072177417623428259173942715461524713071677730047829984602143036253336964614535268942081223514001060710877862270277023837299247236587571822114380377922381887055303549069757478327317585422871113285515142773111575906698975646347525606038890711365494201234526256031632030204721622822771887921888019099123724167810459069401263894971694192160008108664408595238073457810823606136898992312170723754886937462230759294685683011872987835201988511102737631416221193039884798341840517602310658262945074565889250083989453624006196377935329763937202486325287658515956844221936635449443020995379465253235688907067281773506903578347017222612801736710987118339112590780009053173807806597833395858665611452927682928720562166013910278128020185136552933308063714570476497903370158732167233861674341870622970882637928559649607418684142821412257283269836475399569515423868534152540967795590003954790465391116344195395417261331522506489950799409066310116859895910261719441712286276932676564532947911631083073078568246644454602998027303990252947048150770876809455954720523663332614653192223409905151078723516313162062122928803754897517247316142677970104933732985099119894850372658766697916138554081793040467566880065191256349764707096930520144977960698904933872870901704036026609230670702443919652535934574018392688395164564913987958058034045403265643876216193778478454879374882898254670416880556114108472285664260934506704503720239094948742905759303435498403058981285358144987868784598971816291581081095775685485183261575689373682568064537343065668106996146153396415216275652995343235443554139983166679628415445628079998275800443852390424248860553282604392760044967131497963054791680443911677613686964841197073843588797150905596945541349194175625362300938016374574317776421654585800393265664293889024386708543243068586836566129596493641615935294737532163355296544858205703381502190768261639749549815475515921108431358668265945078072707210538389447085690100325544722796900821379021529469041707321855862484330776366573298510004348516247821276416300240305593933683972344387155539885099607932296169710753815133090274504326783968659831246771039999319003334737058708852850030395950990590805729242130804738836590572303475608720189552215730028603646004456899783838349011628645012392323260463013375085195984245096456042892146531852736467150422537211121202164628885822123900215747895424933672521957656946999995212994661199702377893104639340692505311866585757147402682548921997076100334238295097702114179431165993037970315436098931543605899300790239485953438130018876837445626596009580100901594290279993692354735114406872688679770257766369214361655031560882648520449224982853369436726433713652996236015505138559842412554329025452014518781539534615938135973706613724921320864937719248016795221251555036777099868319988063759288079501156237996430838421072958683380596470422104268422423573771686589653880239757536665877449402452143676942409549248410833879430900858305912521240977419700203965430409520163734020315532373313115376541466088201037445996558617461569217472820348154077931203568269949236859020381208797515933443786128529381009687800856388031265765977211698416460851475295855662464571156023862476269430454857269773430035815277888036627195863759617791128612310389399762288607714188814704626175702330819056993699159070199635731708110172106923384930714668506859471527680408279509662408875421013276724717834525539774883276033399879414391210302807325870673865185128160069718166438271355256224743861189622643538599557302742412266890813658178190906223619456431244874146590957713772562323759375580100755344837618356193305973069932707740226340478069437919149701423753270043877659636674502825639823213749195779098112597393074905371822990104739107540716684990256621100489313627520565020813133713628075588607640450433076608327503730745353908420639007837078601538500580420478142596278256213419453839371943919478977980834116425895850712895488204715703065161712786209971407284121480654702426093953573421822295715268767533547375139257133139594173316159797482998887818434885613653095162952031903028021129702544478891365818285215005237811315120666448364693930778879468448154342894947712020209860360772743074297732726082278803931013951236677297014447881016339990994392039167187545052119686239720361943054098350815518002029947922750695992408476157943561279939745546623147402324307821495542149539041880116636081711713546084692771691746422132350350009488497264111894279395713510978851358992337392825742516846051258197636218805891077378031306588208078876166303881030441489064717612763814221971888331480660800308856017447407620536952821371209746546504654421898490928827098171389294499696253873322208455378051485429295874444578627014148395879690801304963377926794678379218851030327873908751436189412001602901361571089704288943673431542719841243276430854562079625391312602239101729514841801128968276277566805101574149292556019329262059719948309956087904646501466226223314225266228941826965773398860239623963027116605388954789964390516394734843143469834083378229160766530031101707024778530670121151318643955499515565208912903903710435852919785986498971574685455466303401034959606417539352040925468552517641029834418784601995535347499047978988046818135357344913957051083040955550939636632181919320090704034368390565067237689149338314334851835976689047451861838860066430573106846414573956703747958126221456347024767590916046328043073286646285583850498552253167359649802812162999786117420280117683266596392918081743857008312713896855434227126528110407618028580177263982419481495602830600710666843116979607067477515518146170288239156391439743015429910895608744532220556704407705059079708380473336690979135559592091050870173985593828193177390789279968384324054356563811387883440895196774339214304030464409541878892163789349428673847862577315189055818823704573199563070487905351001390715285453245836623362526410586527450142050352237802748481880327726908077142069923951218942359820009321941689531942365487710578936358712373764199552901891534194321210920446271619385160378695949821226605244250659430942331529245664775902639506634183985793536073646368991442661077667804807370009673142348249872885826899058295902412111355712188549292874968919109405658153577238001970596594529040685315136897573042755880300919405939822387374836189430127048012753949767554502212780892232044450242979649577726873145806471075643122526879223391882349772086428620818806323028409534553666735199966023596501703154225974147145679867342971071910492008230507094200526134723094226142521077330944130929191383091240134274935298827004152629050893659546412757078970949771474223451528771291418107943409358683492497478253977495138102768941796536308878256795795717250924702858803750169563094038356469726816750961027080142612639148160074316863060212001896098192111262018175208407984968195781372710757608184937987203075053503692142289376031191183450365780932972011641389253358793041402663313339875885646417929431541764351378343415723558792745514904159734391751038375312642709710407821194691720328818846141290473975826674612550858290568611936223596709984551244578643024997839950210445690779570532641409417815729991836802973541085895162136440276282557138302395276205767569209161399674423426435610911558187399257712159782688549026055954086257203944896584390221690075082404271825566519745429884565503335562093085305045309698230113837373046949163981780205650281390966664636500991485997957891700443557243018732749704883241222423821104541763619108922785157376810172506960323470185399065668893297204204961660401934857507498260657588248945825889193582188937161528808723119280108555952794668955444944535827921558546566314380915064460638999523560087462642044066598431835077264613398893446158826929778422620643258736879688182637929929926864356105913372170750252607717199537839178216454080481296933560768445247311810214266718622807391653743252134111960073058779126574355669115135969495473878495832385826641196557789272497901245544573060541526565403976290648563443466822320518447320769280004117916480016445508027206021415087988307868985178262844701498128138163141720376024726023861112275011109805660177888861138690072625468196041792162903418789928382368606305742997597877610334085118670819698108036458193388449921635262490895743905965807200661178077749925968893511997185469448366143096585548669157785877742678011177837282302756953206607131712173924275777221906754876037658309094593628167194854380925586617029465401961714850778615727251681823951959599877574158409369001807497583421200862264300648151032049037942333424661328272588332383963870978457965381710881607138531846639551885373216359682571248569293927166895105667910413756085111266201388760607989609635147984777444344865775032777038098533140475923724821195136732749884637038653314004174227168619500797024422040089889054700235257871389985689519543867943757167408312320445753851135176691586227869356487893274831123747001818368748030779399172131261133787962919988892557105509259462349723486478966692373066180437245296015807674916115461958202420629007614668799971598576548160116310881095644912150215612404162518599239252283356367020694680961000288100856810050435933113108194063406718715594704662679888566180878695986167560918807693074629918191209450784914719602706173541277318482100692158486536086093120191414935105996198333620912717658332837694532607214959364988880769335389355019341267378355689941647882490199996158868868543667878703308017453242414054042396401424934733473567971125119394950350290625124925053162332614578303162985991125718051015963033702892953002780976091283244312215419096870990793107404770469209318102362806773467188607758497838470348583230643049070992422330719490383028248836919812866396019043556079956490487994674649559859571905822624750712480283605806120620383328713213324614746655582015667720828713892186238383300686893350230459500109043573775828474689232368752533133398202662570562591597967854903056705296538140581758390117413288709704967989441648322243050242984851769830033435530553128675390672330921326649484774849568995176015358726404368792968524992105169091783448823933302000382669623791140282472191111676423332256305610467337645436332570523271111583329324948930034299113302186424889088283574237894456290543641660109161573252525002701566351271579620056897296349761690660374924482622908326869551949342186656489984752845683226671850165124210185583886858011301208974505681540588948654834054898874174935026866030423803659839468142135941265709362170047539587175469605411032914436608121064074137791742701657178217544471788653725570495822976560904768759012567273376597812606294337595122772883583612762696592606076779288388882703056839969676671638810686842914156185346461778385212727122791094000419778179679256214334722682574674004909747541371912487807608617150941997845609467710721521584639939036056498869324052466792597777756689245531575473456312629702268838067222107420748607444429261280327165972275828797427673040658576232052923902087504000226076728200864240968178668989385160581725694849864429711889380265386065697867194108674900809590035731000846252486396904008901230057295441556814892151297847129515474226592072339724884983384958951247936848121487281311953841698224481463765007900961634009122099594770140530338732362057342760694633534787755166607067214935433097875711728687495889616182136722883118190923607632189447913642914946213952436304956270338644203657622713235902427505398718678245586738216545511244073184886459772714338020375689520118903300449081758552893864434198877260378806433040246632082551540882353532606854452442431081303514903127329011033423408283969776833894252153435247496436405499859725830374699633251255003264240124663905812200269711498712349626094273286068215825910766343434222728144788496948251393409263910576444741844651476019169887618067730695027663335912647230054610662191883982381005297817555179575269752388171747047445010500043671743193826351898694506268439961548006471912674780794386808399671687249739997687152971429628139608322403744990653745329425588053091483007937981893397546217931442903680473968817713423270490262289791116534527162011664199879598742777595673215251489598811787929058292883073511047743457653533620295462531003218360478251939893448930337017050311672025361555576503775177040163100325659182812604742111826114658657341133060198549144580714833566691115976284905711396541788692568739407803563076343335605597082912620355873453406862509850156960163822780240393966827954854418464772765309582436976535041190379843221158762062248170183273641781059712313899641245197719201741393819890874988638910207520248469013639193569546159984166964504465964487319396333140647355227637824573545372197015959992095839312336947953700350306946410133358442423583647733646954035441905922369000206194879495454437838021679845838850826938459339564248814054250998105582442517824504201267599991617929577473408693856091575381659892341257732289978042133795951696592252941907816941287006337067238831513685361832690868543687565045446420245346712824039993035259003939842047025471534132995484054374039344554173785177522410260814990868944834579768003966104332608712154384826430790388524469201391090285281452139291759463545435460153197992031677213660383275535675348243980393258976233850810442014758198387656966565266748207224009359774933323947294165784702948919146019847011917336655464915482434336156511887605612929633600991972979256640110620138811769175142873097297436130593514547113722293358594759576552464540651070689303600930427070978337368819509857838012449293206397678169995610664059217031501284457805175033796154027011667150523681402950889462699562107183767002320397704702841758130176931234152504779746300026228773832259537420857817038121328363165558879767773226778181326222802583991378273400082853770109187154643520339361698023721829653014261504516095309300726274590505858031622943402976529929959180600964608879230022008008984608141338492027812231462587407426298224942054683344410745336123891846780594745267149809088995937018486580314395150246052813544807430998325977032962428392896239609288118355438659049744654373440974797599515398775548879305945169114916619770275387286730292280047425789332383282462017355879835753861458054787396042709444491632938654486351209263846224532194629823881584496131801164033012489670680894033953518542226505496959305174971626167246680856778721513329698370261230916942446714124476178019744841212476454844474207569661207055671984604202508019357311912883674866939421967294209024457737730202047871390509685757565143554761822336409319871109855709490875080114979783471882392798563404589800199398794949096517187799323419058938204261601385596760509805388298174526546566269736301117059050865926832227887119521330562867148041229502409827439584203742972861166125742874053482965239069575214394127275827048374393738921283720667647884274096574933763143356916790333462976903990468435479674585010781882183327026384065220516819455710854360866155596787375188795490517345710056974683252271945907113840737701642131602376877405051214754508436000377038759994716582831183736497419147045915367092820173607772147183047791192693613256252030667677787077278175960490868990640925527093923367175948979153768102759984634397846963724543044650974926355265218633512679442520602191745470220325075185005509249336436777467962345354892875425339069046394814208684386956443531528550415402568584844969054944243980749723099090688347669685411489134396252260035564307460237954399465452788735672148652282976268125912511533121046998393525136268168270968734665875045698712916003300524854955154997593823573674902985512473854107622715803582745092305859309214832500239601257482291161480491000679253151999221071669845866322279481848888554878704870456693936831254791862079641121465959969089548494958358304688375772399663507859305948834133362689309478082171783725314097801867050820056845813794119975760693599071195861682362688553269056212982078138348175445732235825928821233545603354540382789595689219583174196777051455666443638842382080706425727409938536701512332069110825405456493377695737213482524619125419450644208544246784899306347584067442172568621772386786190565610831666546336076924097357138089673015872263266455040761229033168366577906033472897866024980563963010159723874666119510042151713003472745045540843285475384455337445682216363608723727045617982188625675831554338051719392262686491357336720215043491079059386741583934617709271526483012918279815498610371769435437663287204044260695803823158475874902064978985201380303633950566106414981333348764001995683803814824904064863740218314515691926969267250574201880617618144810120163136537528407942635541424116616936958018520199091923270937267170743872877273250282870133118513874324483872091002660855066283456194428750423173777938095496700832794105646977994905571133219352781245341032545268620799029419676248399518707054473296930988846770867913962138438490508207531327454851267001039940498144719802376511549772107614954384768655560781097435659303223447898090091661839089009990483491543122813738208540796830345395447411946291487168249268543528825386557170659920174829397769289124409527609560934089826697538275374110421980501947417744794925474418201088177493241063091015953805453468718771999076969183136036610384337749870455166501248520691580236545409685363429415264708235025452817830093801161158614326465405586260596580250208822276418268247933763719603985135253943322725241111416481166058389684300718480748268700642089196018554423819620050186147122328407845272819871878450440950366956226519681965596989927730493086106213492995425308424550910191361500931710990845839312155741670655637413980206075227785462816545251923547623056098760313602811765608725640389922280552287047334311562283716474501766709277063381020251577495036759355152991699754190943271339094807648268516270635453995208402527464148689142841663835855934797515826064059905480556258249183818015781261683534888014682753071051253621678751672278375187028941511247453351901997069294026243915438000318930378391860120150438380601750899585116719771252514181964634100675529370915120236065307088751156196510100789758080873672675489244726247118121567701210341407102390727263555048220688385525056784303522156823014189147632354638640706005102813603088955515145670586558723934709102733917750744830451792003144537549260643619078982093880148867818099435883968732425685061188684966091917649828344346423393322450501277266501267821458637631571302827565720824305346890577993393265553104473257998200474434268655363229615583078166794634905127705820483938960798856838124801372266718554093358677132250663865616780379820630032956728365965592697456933324015428177424384776466232178097884016314474817213135368347583146774614154625018577182678671505330022767187397562235327550207241521439388560393334196171106917625687751266042085517401191894804788960530872617613223600544768132783859157664356416911482417926803733881683940939671856610145316335841860140065279772596167961237567996953024356276324602532251986847902916368273348421324975703648231216378284166660865795543309715040866468908292545614752556001608629926061862231958194440917129773516383384115832736436161054077341285758491402927035644168101763377982303226233633564851783136437909828911845915865957794996062087674770471349220668994996827019551143140823914863258421510406797180751054007236967799756833412403978213578709438640986562043371065576742404004155546551470654952780269029152178366727312965840319705892756585874128880317440785484555621296920969117837910894910904753871019807645407688366653808259775390298311372066768841285169771828107559787819746612633812283172055026213707523005974914265219505270206635956018902747124863209019091719166559086061174057452653342465479841810463069778063203339552591741235474150300924726734279898193902767700459060226773808564213520783192592842058631669382949853536323462970629878809949694833063656148796075439368340768189254087730028582074494579631960427299828122701295629234273986744090188044254028569811762785719348488410029066709409788977349301826959838960350783332103820295004477044543012982452520541718407098947766036085788751839132706333500952033652159768528828616360443577562041598365793645657262860273283740897133032849449159405641397228787760024084435338261086194982283061173180896681257217567611613792717560570887073208200504633099454209151661602776295893752634667314088082277426793363514945633490267714928336614036941351860627527691630180902737757361743794251513179233489502633545724486254677806542998623794215718563991817178199076159174088918459000123326609126494199636227151175260937504348023849726175697749857160472909423094393265692258226721407566374025107375613818154242438760044031658140401627447826534162198903098657155803590844334457694698135874869971260269196685898840378058231187747617404280115772789112433571373893632221319305897292491067559090308053670608058914683165875029584485767871703561095303870500558749846941093235052056128059944243856302817912150011216091967347605553219518414645364789081712772535734796318354576949542344662394102356929075882915038571200972258900017382818521192562552384451366364011105629376582054659823115527309165859920659605090494632199155884720431203943815152363359005980646359252259516862076931615756464389958976512983866747529278041250263583507124052631984694190433383137303947457945015733538246928090416256038544882237919928294365564783993501278705150742424383372886925339214188635451798654303702034477964341117387845898508714913354018361854565565055777308256095469275463740412619740178519516359088544085757176957895911096498533398953501586595783593445065330548281063674965060348481549004205510703183657564405862630787566489824653600848685979250654822985728104295329129560232059787199931815529002397505042803812125251215447404438328123608751125500231950650450401552251074841832208729047056858649301131234908579110500761049638705463180459415906850390699101748990887388561338205909508998299980163697209820189310611690764299429859705651920464410772550438235846852458671834659995765564232937231075480323121633839732088960133000274110250079757680148794153583687788603327968350294028812260428015820141979476604043958936957064309578758792168818355299588957422437388314353123818798038188042279134563205992337691938013496720086303556539681184377889638455648761570875402508797615811662775774089470142195257913167956979756981652356434868665016842676134321792261260376798555372846726768505898878625430015410418898847989221218946234525329207366089512129026650885104715970151833485106699222935771504087146314727956422634215485209957329318563128955707695658835298930382548950495739892471885915321632152793666749903524328082836946275325671353016859932291895592987778584235830153473427756381182032637697810805810935290218822990085321300031984986208453777539972898792732323328846391029079591825858835449534905076810525658543861195045779073229506875896064311433245376754480212661233470628560033839463533083656737952704566858443926087837432361340274775381232959556134643825393542410035476468170471276382339155595579787987129697461870621336987420628583135208206702877636021225713789547928496870280659969856137574757889803504330418834501385964925363563541021320686196306901217973255564647354653037286808748532976842709428319167544662318366469219934859725074477750435032666177965564230894431968656846605018716403660241191641151836815516838541664270012400127415243011124142260007029013630822287030712800491070147365042307705219635294322363148764176911294994693330957475927319274475042365154795366400081970189957881407262708106291553180834410061879324218792112637449387768500164516550543927218255010758089333445954827411555920859719361926899064125917140672530044663317890126041129677744863512507174005641111088666945975034696803225229829799097500307070207968574729219490875267230973476407667054057427455424352424200073791990444114054115866882282691271895904440186988284109472185897856056532125537033942838094363739515014506649952573141890655799181515034029316658780369823275026196258448159242729775090410991971123060099845810801156785085966656535024572193967961982371143479736267577133718568186172305534456012314968146522937899894141176339946932370765129362420316051383444471532581564506322660750739054984002118905842455748601754467313661992750768432980109850390209306709473723560740271365749582885599658686836670180991378950069582398418729515681207223468352328986166721203727217555522441944961562283421282898753007716372660608403706566565400659009603330745267907441271287547617779150739393874452865833192558042022484326686692086349078568231201775408856346363970674704550813837729921257448905470296129445228458525647563367187661753676232140500892167678662944733145095392485545748473397600361255351146337127936423066316523786639373684558269992818115378169625170815672323925958787120279287357398381240643871995376011454488627089951082712418231875943029659670978938248845398376615411245162546388882238835389765178014792649800752353359205898628115931578326912909845798770711262893531588634553925152637675809139894130031436507067621627932799707267758404103726270573770252683814000768782373203509099792516489515324108233463228174477820303364575838242475229467719332535108691214421801473479113732219412497197396517441258605430828164275569148758024873837717432097513212242119734287814660087301969093868439890593297944479814724435172501935032429008551673751259920779433226485456481501903096829942622199141867181574255176618944902570092129736964688749710284425810102897491590413850752615784341679361283487668713206226242942462959061914514368851446975078234597357505048773369201845752481225609204473928394119431254648858087410761966035573874406228608954186365600918887482409789679090457114236885189527178878702666873039063696563865556954386329560308951209785962454514460096783304155938417626225086822046160011564668453059754593553284427411822740560195906747516585538599110914161491186516650874689869088414616928789814829778405790722077148146221362363090066350550052129161344869558106458319891574694588929789018554349505162221931739534031337790374623852295457348363621309095709002180515584059355399181836159701997251732380838555917892688917452614994317928027108945129211670517376973162202985664844591256457227606766163760629546153899363812924658616019828001803160143289013397968387701124039914084404281250477380713409576858356910920037363145692705768384313186708626612401015939489522783548686900002201832303275729975896360723374982166599374690083507889133104628633163567817488927345654418997430329228639143084604022390973099982584694220405913202846022629977272435142288900805508661617270457967217722887571842379091707123873272036103776034509623404548417798495383981894812835664012019174458155413066326354238358203076352722925797267419977142375883811719600966906412605405811144501618850858401697326159007511016813808614391883403636509516809438815139730379286839086561839775821937664148003147148264775614638318938125849296298894912250746145501260971490506947048645397504264109697391451306254557124284517892492197663703367742443679790262325495783299345958001089071606920627372613278040518664222383203918600123218966340896799941172409120921013699206593389247726751713333534216033825358197357304780749479910221765069284702966135718732622524052797186782037365416921702265172396362877386627193775227660434149940252755324580360688929857409895035825452106169338600148409429269046202051652521951829020348593938111828245761185221967614282859538803878427976018779939012313570502362895217956785731367722908083533448081329207037690696825400117326575678581214712090063116011486273578408183257856808593610362274096277662293949998045166410059602765947681791989467042131724302693926989368013799519332109718170025775628790020509719215713586017853311728509015606912058134290968231251166683488114858952332215065040382017442046713686546788706199420706651394356833992962421447724839250942839908888557537016903428837495247930779002201928754797537484074988801517179437987294708503317176416192290449285578396245559124489360482123384119292604863010702666180547591275502576712318602272547431314833704773649364380247008572301637375872324932477241154790826521508554601501603750546731787153656294783685130812405604039232037311344395236428455288557002722721763789324306673270028378861626503173266052821324151609708610838396618175844348390521951583045934231803933992297325454088617501050669826671321006662540354185169623238772113809096976497326455763900412097733680459061560765368880105121267867854205305751912542579196959593761434753544576885289412361145327072371143267948092012914431423583673533228048523525468870122268537751484764363336975516682224623643651753238695351140490378151008820608048778675650531076043491940018501079833580475165997621279208998948914196783076162984094707164913955189221035874537248398922272104225099673232324441770893093176574916004267810406325061259199833464520080087210355604128407734202777634037958028391756657543012143238773181379873665829012143553861854359654899002133305162144054680417529626418118905510116982642001247024177993000551905021291780757203061015649185541399522204760270557100127611336659231787713585477469593409488606791401452799073153308469534352074624916015561202898176836748047899712458645891222635933381725833319657282327132005618827723748511952493186501172136712840037600946507614921855755878664568751115953626922400810433181326605870884200402475724107118156423759770137536175726506115653231103007897723796825702752088885538444930929721481245189928030873239187357429401003887993372230447675827248026827911483317293711090785158866721893718553328996853349827514230165449784550418846276120287913944172389445140542943824043512028598619709166587672833443011023565527389800078765551669502150647015617202876345050530648479802160525857567281317737608596902310983839723840891092912643416591096640372217476567754963524060259155601271116751588050468660670924804759534277250726174009729683646262000881726130478652641147944456819050044082567665778689443460494156798438181947621449352926401938541481950360227728540847063412101308841277314563101002208591884805640263838759042855510799384078079808288226972838479268282723104530432996642714340886592579243452486049701510585059707237909622918859547061733863023124233168055295273103220401135624320195123401010242279143463316558227094150993502646018769217189186332214285202783963338260812685818922961581253213609340798883149889219889485791263419153511232380944197907071002250616221085063285325618088406162662914697278214808220881208162751431419693179863109294728132784017985657345640426162920577019476770750205864416844469153830509283018159715982304676314541114394333545731959896450419023563003950306719130030079083861623283296275412809344989401945322793930207008334505138329726016671711036806018998267373415677607889375367895866899517005011813749101388359952387689229192500206334817970130289474326751203964240598940735038774523138656419409017477974744806393751448351992158865283722761851436031141556138587260882207492553732627013666798732429244391506165130023989667786805583503230268905118910684674174927112569634678235959601702016186016130266599996091399830618994190492229377189005819950360848551537339096333353611629146271397528419692380432665857114257801403375750371478267904698611179102680173500380042139852372058867314049319870747145259226707437539648651312429524992226753423153440798954320262476642375308348945292357772806092569345085347516337772894791570782800941805042129726353310094518166082995947643544100830274297207154543069705288768154358168690566675574589857145857346478818967064215019961170605871761610393528144313288083546876687211353869181775688526865162524301054648242780767382933028931769809984627508527461932631973127432373305375542149009525533840549287196445517049219686589824294645600482234743900032092738988406567878531148432429785320899871895039219326702168073132575458929473312117812870393910250027513728347190513208202322311002130332376712116972366332900272182106891008759656774733511982008893961689581825110560921672685423746206804904704096043925964131862944649341590378162805912079695569128387540504325445528295974753752598609479215290560225085763302339660201801638080634397981996318766298673657855229204896624404787168858803770984375033597063621855227205462828957086133038234091534534003432505863936751876832132807049651330729409711856985809652008105612827825678089058578677038858220126367814230768735627712071912533374055076933546242372039786970096348494777110912914174821406873905896752766483249615541080602280060133381370085392764347724064281195959032060162093745317715988660150334585698659948219322626852657773811665850704572064513594486528472817519645773496866135532224503818459966465130270080847369655717373983605325904934839183788257309803183869736727715325222901170990157927683781395069315142350740413416053613432789730167167941591166231539556956390631659470093535955261922045011242755826976351839383573527742063561076163960999758129851145943345635686965371481920728107475513735630430569890791615078006925858481427705092827803434028750854991841737036621628091429338714935964368844495525534930047843590213148595075544882697793507246211123816635524361213779529039603077738488953665658153268543599891651245026667991945572284864562547775462342554795223332499802665065047812197215228450006454796367232061954298710798363264260097664850085447204266781105789058567893551135169883247996843210325682798816409175765519957094324303888863602390753465344082683284401471266370286376934336954787035938738452127446207146678939103939789105768690349166064608998797178073648280852240424584803015399767420506084557725590805235747167315948071224175967218780540897500688380289322949188516078547228520704103898431846806763336108262016647412774466316363296954376410414488727142753900118999126690703195664593275686861201535464319703914397620075773658022591655274813385236448741849191057322742031197569945900787030592736430247570313849666262068019456890643540215776621463807291703708529938369977807536297307209287947966232899499674462026607689349470576672437367707841275679994308022255677953921995807232301299495981552611381045391226766578075854454352214910572458615498008523949629162713056517642237588293444325635278446241943988378000610230104395895909510126053729546979618853655461884281162646912139141825482487246495691641309759641936122126173153621983044864298367444022587986958687825113494340630215237833498313172510683084424555028212836224450843363826894949646953253792088489736249558547683545017809389006625329750286713628411042990787819751380235345936023148412660328799704080751265416955784287907255405070149224232545009471354917301959758588330041594849563538415579741370779528925288976025765468901475654733299973555097724716423292247118135218134376331778066030632205692868370492140863605372873811735360470688787513724454138474058944546220529750359481461007878076522145371489123588651025016267221781523381204649992443762605760361492053500219404362548703544575106711419248769180265889374172968961803101338983233545619445101045396551924744883370302511426843379913518858337207518476735842053574057424971258727677364027230092300726285609939988503108614084067610377257092134835759643866645198530119102733902282364514078359591152637018501559891210249871841546797133377269239893101139417250334672504243449864680975015531716470136684673668200625850718431325458837784706668074955157671954011352425463130651257083180728390639133730078671393486940222528055901923780288708455134518893444757641906474273840856638688195956069836620703639917896719068102253635970289334654568627540935182727817936080175569674324983366278082832729211909661841667027436522408852668430461570715384072003891285209415308939232874429450913061547933995793511582882540383615706424184667385240412196410261941920620513871004439010644023513901063125970898257164240248968283943666547014971704703745011995052694840364434952764246053814288839655663821069414242301041714311051972773302474872493228994009621076057254434885533309516297220501969738988873391230359530674812697500841595635835677062997204326168464087776067715491394989605761942073539218321141618822945344674665335516639247177292468202902428114625726027692974177307560066130215982510369911959982276225955613811965157978483259446145496132377647772420232950614631624145078303825749170534431563954404857724202809011949037911708286121610793486428244992578043947262722358202606484381934499041218767816622886031483760616073525588658076998522206112061037549083961093952585791551087598230747169001412907535019905603182549233992736061242593910392062375496027864561154673763320365821440449685010424115643863657533558446230261990836059588833999792948792870518601288519264561362132412016799480174155426983827617498604125372040396081574598470193243844295672968286982714243788273562563198477770065592386517721715693172570421461081660563469773757157878095402566432351480565206954951662758566738564075003169472318005654379606751268544296782130858913600625021084257329550038940031436714864309049881018232039566519351447901625983565055734245487771307016778870174480366139833569467580998421791166997061342183098244648421225606667819654777796258197033696752235599543370824191969733294736013378430906622632119602910045930224395206193744113487634682250014304906933913581370002275470323775970560767188984936475649590180980991512830672275477368885457444982996257444018522566628585286938173620640095415344459721867318351592027704435063788964595501966279304213702476506273634418020623477241669472205186574071921840346474148510284809428419134391600597063686042293876446788778160190377333261443860817100366480102518033389540072318526675715560877123743850202271313631052404372906018293325956969840266992970991312681942978369600331926519374181141905812629802417879635465554458255832194315023798676512441560370371705399750570315789391964032794517899739863062294387668973984581105139222682593321785953500736893126297065752126007503134995954793261475916379378868198791918981884550913113256501111438207572860710381797902782162981616232295450848756007508440074768818097936593663850483983978395840377630239699087130685302718594923220490673784674774576364722141419238877300174830947790825107200865693680272385795913320786447669230086996597911624857376214395079934089889021504713296182067767592987152442046317319309594446609338367070132096011581965144605095749959378602293340555785095463522341928403455812701267684147298165394688350260374717105535111395801062456209316494139898910684590056468908501443663572319246118763338685731448084541252540610771226397995842640535915404207930611940610342351039516498380127633600982992359681490986004866572923345357563763696509276898522710087945360088471373428306226853868001858971275477468449772984252280986095120664551950145816441774186836090725817962439850326772380446587852511178952606908348300328427651700091579855560639361424819517095903125000752423196524573045279677458134492936105897072581455686230651607912405677043464843361268987937980841443336373732369536599336089724451852540604074543817060666094770256494596036858665273917666512560059822627876883227052951943134920240646519573750343290428876402654105394729926163630927159769321841117165845442949331018893810774281924892807384984252263618683508889489388788125041976154071282427397370814051993578880835169247493173137376446386497352869073772593593838864494678387371215568026167532334942074646094558859560943489022398076586904726539877514136186463376405697654765080493970863964807408215287956875684192996070887174320528016435848055507049745110049166872116220717856955747495343906354971917902291589709157235349787859823710091801803734813792021860697276542538975823718808161668065044574614341731596330706884360297335997541572085947201059503487290935459887479792208717453158296609957533275217107886931190156169982853588731495117080693796377281629238313803962315110867631590084130169508800670775581148857042789332939349067522787950914608761938411605598140506920079047335445902256493734848332746801051666812460255501724045465555412834825707904844870708040310917272089633294223854613131522311436254046089656094220969743277219828745071287469239483793701658782898420396233922115422908462106034705476087932735874239902986562215005157581053437271934540524391173647378545212380388703722255545920150374920880447976648826995008861065029699810258358657064210837901610134316414109271101465626412274194731165786261918833379512036397319572205166047521449187588212684279816425490705747199002704487902820458427175039127034238933883213974402717390329532815400159619537977228203882025487364027871865051935090546141636509818062561393136855780592337584394040287927916455425154844922954324952572234594094232401173951542613270115366130548495931294723759837320710820272782634480534233661502131516234483216786085878134393461349969852536472082062187803323000074423421662559237575630513138425679210384082822758995156239381801395190720355464557372562204613078104066233285114475909219632633229151266743787827188733620043479250696378870605193453232498654868684185996672511497531578182824041898632801390923764556484598618575175534628787617256446091270977635658458359305878946715002303402608152724516603123373279550587908731982519213271167892668644406470092010179993235014296516171676293158861933410286109666536860442958614274431002672075704015422898471310514220315287128929913180666617459236617808880638403557796611517338815282997309026675678568442266889096754833867285013057674126641568653246197717314843186613877208836678881741199620560315120866566599504380980588681919682706210835467581522817900237485937458099939358798263346292858538401524915014341530410363708388650385585493365026888367074716834308643121069467669539926390176858326462518401820637585305381741026773460699314954805896329733979591506917645683440098173232338681804152842851788003715678006789031057305651316364063846193299858943434270034366792561400344190021022698297859206876194617852054898544466055669202443673026702470397141938439482798512566731326074537649539295638000797224630573097036911268717062868963049848715132210086453845953860986122518331384684234076189965968272665435113454693915117986676819077819893588127869099386026226767085775939949588768057552859030172908601386619334531739288397102205767872050268104600840510361527960938466625312875217616280608131332978401272175629572297753010657550312088104250235866698392981070237228914606161391771623906545965003234528239814393446482474045466876206246551675716569259802158551691641785670177868309426162221088914460403498104397615021516477210450204694978177115758836046704756799747210484547954234187817122478727270185260495719231470332697122581316394826400597637641960141586962493580733425685953236432979428451101612486896079133915699749370066846718472323418215559212271777294696375364127634211206628421669995881989689118106096285900406295590593154310573995028435991797547968789912354841348300779220083467027369977993492283042342721424455680244802766819527158303170664598567522690124926865744464530940395798643037772447382507406427933805093756800520994948683415574030561414314913816941675133134279095261319276627750306670514057997844176610026051227014584984020819200379575380274631441989427048175489297876536321564077076330724738908070179567181785731602591596633743767697506720376854542370295892208426307886586233577010657909319416918325589288587166097030273581307039053061773502923481080270056147698601947212273689899667219695960600985747326562979338066244003368139657569798511289889989946172119601244423193065631126255049039072852506681920266990618458277447039482125884414820261147270327665096562273254294515668679470148062034923462686785140912789168191570043582190496762988900205531094633024503821207985297122114671801336922130251574178025064668129373386259079259373845419915294211260278360739336267246716565664480953640102463129446673999282511406917402614588023205401801073560532716156750922062073603402974708903257557753766408795477442539462189638539636095697117549103503807261180720161225606856252910589649694485132571416080449781661843331311530690962439496636336926365902986727615804339045952211253312012899819091023550424302472425136945956671606192198559498850274485757241553849955134683899950009099130594953955492248400233020368922993971698339588479864602020027018369481333964551942382210220782901379812543595135295081010679278894824822488719688864692231824566838655064008718746870426160243519205754172638788305476509354744703961604269292184839681461100769397324526901203566318884669753647346313425420803825852248572919595934774215935613788125071402818665720214653490645964247332092846636576083970316328108517914174339288594035958093890254250651603707961283173743155993067494996232856209727424735702410049306124572977899922967622556219769795641736414969381684876882519343188582467650060787932746339558680923750035806483779580854300285599725602783407404322466579232362964872365225921376480140667853319582148400366917890886429733989232581841065933201722193376742781448535425079803833150956708747915860018019918464535904063926087577154558788677450290899341014051784793500571620265293811373934607385828348820116691129080310170700551611027841107977248191788856214180018858876769141225487902653492539352543917412017773012405012310824708270108935221741783404475495470252588949616319199081608763413278432275979061353401093159134664108806807015529216554223657012512402590711311947309973527504405265838658358654252974444167725262475179182301866507883760445507653449942718269967411519318028825434655493488090210513219133211116004016247825996182993016893950212265216581679309666968211413415127523349114659993339303468694464336303084164902320957455616412725316397813714206755552026868004723940455460039396426674178449486258770659754345453829774079832626636963940586559485140157681508172248045671455418016604416638156569073603255720060302933589067680266384110286400017216880660641074894969821417256408461130653661596344940581109421213062826331638536368690902639190805320541561114513009502705111505022290849081739856697687571488777007886234323035972090355403454872987715037740037188178794070713780481186215210283883221936986194052941920582292942243567385735442654830633658703391975439986629439658188819686280634735725244775647857539451612004888033684873688811572512306424522612691025357327693479211521785971745316064333549355466443931540716754827993923960303598379230344318268481582898610302595248873606150944756192431170867479818534786558198414581404169205075065534672754274251571919831891693561862353623767977336498807547889725727532482839226869092750523271100151738692577450824277038099156464807688083694245056392917658202170269346871490516152894981222384444381287971341399919594427483021616748339735918885521859802979485580395048176254236895045953714609309741362760621421662918149576256928976912282956821700096805847542035495418588369690511635265788290990164266799906578493017636033115607744170073288086030083459076666024153168648152396029940312593967740392512074049756019686599161466483729442225347451798675083532750592090681462919148410556052387711745168291271272999892673177435735832638898173067482332789508465222013625017019353678002684941645205202737128414921250863095211947013845524962584449208424614386900589468658347758332584621800919975515992726409989005630588144433184623499809118314478592475722555337241278538233516327154113025428477844282900969660885186762372812304684621280661839777488819043113636462165035116316399224524466437044079501267319932196383594408540991307419319400158630053003120931219977860857536811716539964069248265670781591806793315074597411934953264207540638554030355596895189989631006676651161827619976511830041017266112110685288114754196688837141251343378709533126434164815438532654406943774648967488084603443772053750371187597671722871196059880101958333674087839044278651805528197368533526029419837941471869350056776400730188024093596645446590116240304768531989099591226508737861188916938278648766209055419078437498753022944948003372353996382904446370001343700456199441629564891262352244185244859793296108742096782944763894378399685037244370697435115510694199819136602115923279531976286494029267765831924230375295084041435842432560247087881859941236226553618052882206732693068262982630108173111604396871729254799657674610637052881376458358782284005874643460323368486518002863347804777373029799641260620003788569116993180088891312713873345363332050420886669546921534913862353147260704110988515241967854185207997733112539595026773549260489724579462750795592229192328601020014157185444933960145794938586770814172604731338943278074141040007558952313633345597128794061558694426106567408821911110233030742957345550210294738421800310269739566076887581999792434308105461811178743545617851604272138164889469165343670762565871126988159255762193107339412043958243933196514713124522805695741866286792969206986506701262200986588064457125785686406919511404419313608578251209266060956694551317240046055621296521492344005475660902234578709420712095972177004999511865665416190902567327551204619538765230556383126783064988697594879692696561150119818313091920582498178015484727528175612492737305008266780374301344257078415841238949557146945159626415291058863114399736200817480160033706607177023257528399725711093022574139072236810910850626429656395483178082826900038288278282113516710738842342185387635804173910870063732362687457536649038639658347549015670477249440543220311283097809822056926454763461224365741344654116892246209644081441804523678393077369553795601662510283924241268769497171751329845182655183631226600508255943319822665339185478123293742316592021074107223176283207637146059086825545833996120721351506332431414788458332324220148166439121252524571845665863019932075707893805820426346228920314011757759479388016578266318322905702063725181635985652368429155323335928581762541241002454730011896307558809556081493871580435994232524486632607231929132502009049399053895176777746211233119322085009801062983419530044207114571531960894512917784586769634278462142413019543246650410639944195540611774496179127928186832801189178533209845690763278399931939275074066642648319811835301659116721046558617177416424373461984442086110323048168174404060908516084259060881977727444841534822711921938556684845230510975184925238085837513061446373732364324774686323844152405254922224149874692615899585048004930844964125367095397490359559875000024101565868593196560966348919702862636883417951715627696844213962635218658738892993548086272040213298970618250120472186139069418462004618357132401021789704386277823910629137166316874240438697694579783969557202765272494325978420582677458907124947326237819178834333505005934173052926690739749860538386839633245398869216420090422977619351219922905315859190932067482977861283623415682186437877600531030601617705513897027313050631620275671435529366985673950831867446535629659287967919569754151988181426430591293830853038322915212006047329091873882556992559177436264508498230500698490839632865264156927227827233552205747714227652357964213538756916761459375991317796859395430634303139909622744836380816308139605908701578208698227021333901312675792940692058783878482176301500588169367166846134966808686332364336859832039204284173173555784450312251525295299043364657547019230624333400367530983222029438589459960206182072303867747258424623562785947106513110198845743054132077046879432115647480713419755169726818876191860018168184327138846964019124357013235422711546856906130903699409966764931007962679250815162824048890236961495090242833031437302976382375112219431682519571586393461994887695421370432465960398151051751033045600279432005312014889815238073843068453514394815357570482910619775548976962614440692297079956740689587383594640457501532678591596172977330706014188117922811706224243265364161360538703877309686842124482475400356006971144090627953177039506386702690840775743684661564930273930731755588594164932725601164000994080300810904495617442780129350545152664468100888703095050569479149024951888095693732066771794962902490082497420813776730809958220747574243163845201597862331027741395215309784866825420225997823516332429749362065359765249088034145838792411260125417253500077489287319911676948903182637745929615454491463291925306814458546426594341762407002731940606266537230263224124254006897320931443976295296014237594870255128754939152420307534468035475926843027304003500492657537311052544661412950353536982747341347771646316548910903818859950105200211603284244374210178227022900744145769816542173348168679232698171477885609998416136436408201341221725156377338911750149179825097148766671847887364780612173261412027296506975005909948593496812627287764936545470478776384850145665266986635733125335491159384844469226371158516470018177203108647020644034781162116752194661094140692330812214087553901129327747787870942817681392292753952343943425634118237236637874293769009811646215365099827045777495366154929419718499166243610894852835689382423751083655154810914894209055415940956329038393447650936135992872431760986720338315191633879842344781832232980332200044289235750763751467579455058739041087772922392064404820423188879333705788963570423714368916667709577815603924057235231561823832969420169191152307707512076228592763444096474376215350263582632506462905460869723210941502967423578166797504497992459732686871048999026342098329719124329227147902914542818397426275473616071809453878376495406272613075489836847996483673696187335117909305164714588893009449164195618472504182736199463166053177766062946307835998399997542319857436371183239796010094993013768080792783015632533457784021344252445114935104580027862582303951827047619912171561558413169915883409030305779315545080856008110011377278549709257782841272438141836263615979013147063594458242624663793571309704296234442509086118135924389545891656161093653248389844017478468076103070633226748230311164313009567544493157390728501321492982827711337939798831444246722527056408189080066909293420755305219495687828482639638590822905263970681825213980213862274642519519990416008915595085861830267466109972692956778505469819726416156688784700152871494802763842754197246114028722732762319469268593600617877158177018675676996940086907628055533166987656375685208856945141921356853745272837149841029625974791158202466931662052546888736055533553789930112402513106337955037333128902937329783163521574366216665060752089998920105302986972232738073834102907345612872776686309710340582958168026647729625461440589814578037756689026494842806385871751729212320051810551613220454277759322986557728986659224625039483221720895472493542044836543524536889288385947919502953183306413463836681067312543849647070064352272745071484156170151502563457620829150076379855300159118583355395638137399511116326728039212241544389914443534964707757760707061541178570865679730032864605064407654103596587197614642225326862682558751601048642019424786327990388526152441299709093756196487656985635085512937619239800082452553897711913434571848675249052110230758906236818783636965131806059019953917925370355386996531524961470576357882285416293147031808588584715250040739757175487048581378919244223078480156785893013901574208464590552816587522335163109881802387437490947988727877975299863636598034699414060261586334376258987527836224726330901441372370721977868965842824419504014556192203257796173853870073452232204445185166876394925234620986336671630070023950208392541953569636153903488479916136400036711611050159519379116832251325980627975051793158878333943588238366139916174757140847973231901678946109724482668118135951564853413231373676075379112941635653752328583284622932144559281233036427091994657503955186802176484227305099488077217951424208887211856849592029494954609137859903997411252999592298262531740529696550131780777621961854148988205096819376465502526310059417660603353014525659691211661673314271959702303497158751944207894866161708428290291029353452773480608988575464492417160015211815110999333378769920285961373192676092198009332180809655833851131110176824356059265142245873339281464222269560582056915868649866814992543068694320039609283973335652340074759301121016537161137753279107493670610192604031209000955666142868716857606881050262862633693735974945988243090883166474641782381370062637510723447911384612996504061280843665184250415851968509199446153923987853260693362952452068554078339927177370833280443491259443322360587146117456596022258094276829819200727717986099038927658425175621722829792605285269682289648372395259667336074128163606368914058454107751959764920453064361294958206915664239495160967763448730893114236469499322334846818901345673874134561559089281402072351341674357811767658520591431797232509033597926506839940082988756805779139888720938500056489337453197031939826033731021857692034946961179543841129272994714184453877422258248252740764602847875780875289547725157292539822170864226549653130630658650490283035770985918386135750375079340145462517649922714328946966734171816471583007703478348892997042299374014471031842340502866689291772415627541994555119460429318419581425022529053636276079658923375105856683753936273147133919827608447349495548616394213992951295660849494694072767098573605863801891674650232603263547684007979174631694048471014539884309794988902528807721378967457514745417344299040418493953097199807273234457243567570169151483772399058746921305702987107699226531025436438423135847731002055532871829337007984616333142534066193936651045207420022594341385174541616595272386724675124114857139648666695490456769104716198251409006102628283020320899913230673663452083948642702808953896169984488389434923709344136204010336533261270990933577753408332009614923325679249873048503944585140847552666382711190375567097567837508552168725634516412238291629819167865013260869341130181087643333456290862945421036723628826194925159184791755395122381234717294984477617617420993727173056095765869132686754760432586626453448840119398826285651615625137499563618211103891030606835686666065964834149717875333288687274910320738837675818327032408816603317824468532820112235235018893557452261136300896754958772839612967856725027389930395180317493931529307856152062867733307087013976045618825143522097851602739049077790952912202626218168962405040930776235329474376973291780432472450673323488548755524810138895238879948316062580406107680041679219816685506282671119010708516393289329442329396700061764580399842658772545242710716270960757532949844138252134594293881558574602959142085482214180560184258609438414889011655716722859556557296497157809329527026736364757271359771242404675033369218126153698758215713034204577692360005670288188765776029256813024684420368524697841157670107551202984226255969336070877069882078547701666698981044289290392202916659568828843187083979779639564573493371405811760198639225197418953814774358639704233773425225754495832635063256229928073799114654300072380935291537568744466520767174412736360198174596154006010881512353366992097303812224882836333927473375055826587783411773386385782189581021009014059635406261748950766442471508027759875050087939306754612374979017108480138033266763839999084214558296296701115090722313955483097232701337897510327366680428122814918410313943384977562487692084466407113829167531690647351102872612929202150505264734424886789755015846734849744526907541753556967036607631824942285014954749108517377763941168534523974346975590912312752146152288697488096518335965671803999115595122875235318249074862354480260362748547349789838444257501059403696465519392382717116745778172307874415582707888575649946198211968251183462950224387839302299488819563770974296356515574919452179997733582320230450145636562292878351145236817531610588141102070400662031340337872298539500855664348599214301447228804508096071741217069038172422221014518584632865117135570909332035676421277953431848365010315317009928105710546799854352611801868122267411414755102725648015549794904528296934211659275658833206887278377822330853106760197908984986154490903422451114492802523004652115109123909814903542909312317026054684532855806363239406311628993354488566829991777042592220456390681548818641907713750443295344435817835293449919736743545301103423406045987283917132648085843328175228126429714210057564154362801400727505842640736365739167724928119042494703027627706680311061896807781539034869911364057765934048177839408834093292329389381241531630147688903101089174520947632906556860720179461638427804191566181378326685785411912045311470338995568803320089330455991660898639238166513022237312669253303113916573324020974373933059636730623716118769760499863402450928318835360039051333178041175714136678732412251449821821361166899732301836593137928275675744249431033422042298599583362395333671482471435722526634234843304424074736534225410674660631985728441474955697065446222988183025093066730861490205852001228034669980678616599658902215339590465829242329113688733640125643391173146539220983366006590935468125861659635928909226720122458742619928680211330387309576973621086658240195557158544138490676071924781688591005479155762967277122520874958726942718328232675701338976480675968700539891888333733777552105597527895146781111848199558025375556400901671872619155431728197072747342808792705278430046749510591309985612676164452907438942359951768345126291788886326293658004800273379670128478418808985190261817920056132480347289268923856111608384287378228618984506404155813161019971673195933218284511063988458485452064638504946451864921752252315917902474117820826039580600860979338797541265926648592369746453696774807165449490803161689627244238806361558801775179526760006406774822803319516401473068714777755214548742065162501863061038849053518405039157144584806078113468971442015408802803701209386177391232506548972976144550076628745690795399975937059284995460939375481032285420684804524900511459142569752865188968392485278391922329710494718002640014622983917563341691006391810523589624440743756817084984542651899151796363288650305545480986313027327577956854503312291963367865615708447806702769252879463571452556714196619492673534126436462301807591874564935920560906968759126603129864336296257074437562740539456998016998898982622373215164401845789364111973774261622521015096183854127491026349048140583344515654812679752658641432551567694663635431792911796945065957168425461918912555256782764115375817998213194402365190453543719883320086799828561427571019807647709362502730805661741064316011937974598970615952755332108443994542458266013845465159434197984167776948153149485781789768771208609467644335100131114471598152551749613341630064028375803926767139355088696770274274240607124395660153873549956307233630621859768437604032799687149359460642283323923593626991086294789676646503623130382597959924481739355193520933534893304022299171204803379538320406228102563100932593350101028586449150219257231758012390274025462493627539594013673650799222420110535166778036390036397288042967063664610450510570260904000967005307809849302838781232717232381988485382392559199343713498894747049898385623806883386269582060542436242294019407406799556175743119319970056790302775730383088485617610101188306261258551802668107143174034081478637321110716854343872590475634557360271731248894219483921175578220514839061414344075407424758738699699811232880848908877340150366170792969720121975638995277971747131784031424697222926122244250837506198065236571535630058387438341099336205602585571999358732121060119605692598823152094714036400018724453229448788128284857991703898453367128283303618846701637867328852847056066572464743684710509840049215750730767051860785725244466985589103922452169932793144203648031255385930495493543774018465273056815490590926721196914710800408446783488402937628173290619770545000064028337160897209753852537068754926172503459203666555699381872831457770211627661020966175503022785374811397466481795579524633483949697452860952747138973888388043614239739715412287166529223478396461839816395648801071754293254463899460048906791026968437248133476065929198929985226002748685815662894842833025223475480459514908985000050252440266435902098739425785883928742903293614521882121742447729205765189713560288735789774622712809986400483606524326265302163931231888083138971010050299860586953608112977672217930317709865262810057794122446775237054641535325525394013478583525534226740228806252917616465669459178903694675137723570243926828817052345425544868962956732108915204435048528222341722844567849388975590354041237978209034378480068469322762899888452558909891915287187796055607835594573692104120094159836813880405847233210802569885471472593525017971700597104587861118082514866539153444331070476589743120459191849810222493376442568011991844599537628815143942701442649766828057836181142497845594854087999756272185070212413983747683774890923150855145562128657701247791205027819346068742047415568669919478602038652775918879984666119464176824188184196108183911573866582642336994804794533337498637618357154257199241064022912941023128253740741701409793486012549449421519827172336369292291221315995617347682565123801300181848104908554699343448203756388517800741275242557586777698130079290922235935078394105859220131817160426834415277990180354604239665449610145403348125345589206084281365646323262227765352417486091493981397716934233590032685269396390434187871867602006651351590805698536318955062641682165648130943440804495001895880327589232088447786500206307366503795294123128296453334548536175827196434936028633564663777669526825546048835059531576941306010088272839894938007006136921640567146788245537151263098830921134995494673185363662186357021343639748760655551473999237003262124234479403736342356286712755646325929916843465155631572021510523245683116212331144317426479063804678416549006302665804001142740613538991898509916391039357534186577318605294861463651927051356006111494440632984349208008809536416949887491783257865937046292153352647337122121671507110938091612253751395000215858132040079202038200337333105361034604608813178509461713968571779505448823430148093305764036755919367835919249951186422793248014910971237566985911449545197647814902940763200179209271659444438117439703492375998856305065265160915013219037901065277483609163070827624972308340621071724626267815311037847825812219258332456972986727028908787424363588549746875815095557635490834188953703167523753561208500250519566021933609912867993922858365796735161811345719441075355272987636844205152618544251162372787325504323416598540608029054018740909390002256011632591988729813168965630680790907128992368787314002524424522291126886279374100930226319503024034347664500234107059293291306196345564483905473789933669079529611605367827145073996833219832031802007602256847001716720869595572396684771933182619325077480394575610362075819106123730103773855634587260963206964156942804137704749581361926804019428974370611263576616715368970663814320154637334542040659830609866461746134268526021767946326132546154705453148889191824870785964954461487326648556131153890923027173934307584782514829104509821442354041289219577517958831215556556203909228160231399595028015458063530551911661457301268088977998894041340216967243026396486422195562265485209514782069947565466760927554089469662944505622777323306750779069545867231427358071575455017704409619296162399722311554145449748864705090789634975078627375283302873469472022438074091573847513355608213005188312634432433604182415703910154647286301943773974245866584757155858245872654171339385028993229159419316185312372369512086892202514151635061750841956054653348513155039692521118603119224804411481752151827077828614563628852491830643807772384665731026887132121736111415316906621578625112663017649689538762115231276074368615157210405020040345480395903844057364422221022083496385845088515241484160919022908371812302225130887824330117423196452465842064514003435302535121932289068884476898578797630583183461124577637352895874792765279755112315245613608893207007661806692145750443583594631528154078224104287372994409307698074769636535667281242343863471530717546303985935309256267183874664479147934101288753845571315362555749576061589021800463873984758557794268380816213507677717852545965204006281682948276283140750455607658977349334555660504558688263885434816843726005733151213230734178576658714449764893372857677682231894732290201757246803218901711484866986289059686947768379953827655504057476300444685613943028481336437260529050500647243007958105205761899221222881560776340004706530406014999454736966146854102371776370883248006500301010777524436804647725986241337562230243724120052796812130337183270974166870233455123825042160465930490971289948896980172224353903076045649333215885663707149801442653161066595408993561283722452113482100537636806259528030091944254442143384064384833088256443942302881171174299345071291194739254379961544981858553066442559445169379994553410022613212603612269627727313750181967254895908669765020943045861079503457772125625294768772529911938711328558740500232846282044563214546459776966507957088300487081734158147924366694581885139080869464622562432390150240062178351237679600238355791302111348989653188126253501976256092410292754541874380483423193052348995647204759149567909520855163350913760695180021714098588887981752143659497931155896700542551365111733588619360799846213397747268356823318429280242272635325577464061096847355491175524575826800453173172609273306300207364788227798373724169316754440474020616388434544587694641249425582997738475709350212336961347552183590229069945229855644344426936070177926430764467010095252980484002832268941868490345590536958016070674048825053580636504334879781547259024074625496036806833684135101646512649425322116452338095592813117288075568996500880898033520411574229562945305815178154601715514514773676982198531197094668553486513788310265183702768787929795487409312348227775117916633993574394720394402196425719573881144603354160966902611268299679473668448102153212332597233651587737826810046330554679009533661642681426260599325804426593067211202561462421826936508425607878560287653072665181783683630864428530840574721748554556595142243497842299467513337478434687765951629449135220202869193255047017526957218386399388356495741122761226542475976694386482429392712771358804609025982383743801423855453357978327921228690132835616598706357855834224324397296775882669890789880434234545017521861488793309595779387351556991447183523928435727470281686115300213050364705913745594023177127850010890501027378950790590801764980248276835280409189191430536869750499082434622321762797540509583896193961749837083835489300749317821444035623544996553714749164096281883875502952480192226899916688280043801769121142375726825532910846353354322670711016383703921939928809491474054663790438086843291214675481541905719310518153926306806212146266254025736141928969336961164217969733346042004783748022127666863558551137805829798394389120559444067271440973415066504374936539808555361277589580278638199219732102847679282678763601338930506806779616432368345393451553758841633832379304742059704885187802379867215073426665030262970537630062928204492343041484626962156709775001157908673408746843881447768033391028555433093988880893834802341375842633435862842265719717831627271035555943206201293889037955721116325169460660022062823382544788342658934476009393934142318936012832282831434915660814086921326563757590729978510949112965179284992994658445646231042487045726431406778057717065182784567690711848682798624874447984766774013034887246663969550862726815844099976378013765824914059779158511794456861564727195840250171122308145646346623341546657384896036403249282651810083662284508292489001257804444493921222002062745331996683834683233944517835248104338219977409756761143644106552241152704312699278919664416040828613263005403514599429131805134589248492860514390305742569852526686039922395108342282117331037504731443670724400343192090766564915642517418472668697372643507934210218701028782252608608785866516209658011162828721610394882714872268255863451416981799664873642424822668283427698044824384941629111115519733287969064640069046065446552004796202021501715975854441327390582188531963349879014119481634876330034315298546970102009898901372297576678651691653647309065495742863245724648364827131161843576627090296339355590699015189923615466681180658515089401175109641671809654718345525916537806154249809660080524338189336541103369817390472163097627365146337864827115857488398327247522106134372837016496742518774073031776351235850376420886048046623233860707746687135210940394630798461877864066031252719188916941845154588883313444799406417434293317160429205082570969634802625529870286393470460222382692204031636057439491551487634390341139690970647026546533305502392800704836928138472679667053761257082237809913545790660415216377417823689319138060933348149212437392219003822938348788016570951711988645673930195704179576163958555040528101672521525571154684907810205260711066869052429602265329877550339679515362331249251821074328743985829338490492210928267039870972442053092642255727348793833010544606102430479264401879934359045468228474842198557946619277087010304912613994972058946119666036793583549464295727637671887469497587561149305262518594963552749077571555770719532498179577255480829625648829620905655206223395750988723830228755962603223865438216506199392143914638752660626384027049158482776578771771395940722940818822845139772707354448586471595807104417621923879751044300667549720614147370541548305033572140791334744975141530826598710928629070493291914170152754142655780284389495518908544577720102889812300589684771676996086647661251624162401892292763791307703100682208138957443307220773659274704383493589919743677888075613861601094573484421132277338523266310559937899545151159512556996440048054297639999825218734916265651508088836899325789092307111841421301154368633337475645764383643148907763006420332261518515111613289863999206019698886089499495047487269589242813092994792838438505097952985674928133197809506284886695626112686185746498448913829721718757068594474913543757276991422183789302407521055097523624722102919915292592898374582577504424435423849937254605270258840883895624562809022679416197605593998802611865646922570696554684573324070166184183861020212166230104965851494503403558488130026854732724209578603315278593075925308749369603520680147614825298640297719889681307919752853497569126462248915475497122164180872783793696104794028366133176096571707347351439648616664350563826071782030577488804292136726092783394904778340737132612035817414606847607944278003632848450975593565984209468300537682831952249832648411736077023686734841385292314416486107390394563545544157802079847822144397747245274534802761933795122003545396928299638656858941949862192314787036757093924182378435529135280661613230729205968303646720086862041526665702461909911883402469062219522580425261317120545430983894155096230622143352641912172033890455273328932038367122330578140510991519550350914412569784857326544533078184704317243894415461356821467988315953448250113751666478028533154516211704572076650619871858662987189222637335239883806365693561249309587181488229649460668676571114053912728651809729821033559676504308774536705194907368710796738812439373493202283221163688566151218689191021525610483439863419539270424828669826501650926421393060022305491711356043494386004266511511830525233005377629579271251667876212651744198678284092333143435100922002256544709297840498162052724797785802197625783636172360580943667276809958255272700447290522976282713070164045649007699687823893003479176219791667993931791347553221712790537492767895456275088589418772918594570485513425037351810013347575016370332578991162193190373273462404142872610214921115167160957184033816052453208962064929170718170530795070953915513590144833049398353694141010740245260068213818150084854853070859940947956935866863350477305914415921391779841056733138046305610710808755941206719865269322488851205886956303939913928789169451771546196625805111093471066857005759537009053402952227869852248170040742194005975782559464220775489496766446316496422567955354173347047603925930606497075881098476314040113043613709253423348448602022488871807823899266214978205832883954835117590486183289250694536312203325289279427031989445739407337131882867126943312330873854921357028819103239108294070693128130379408746349536357524982225643407574696525306887693504603271066452717464225860472725495371388329497652311023667742173207252692644147982860071233574180747787170622982315019333713704230960397827422199716652153925553669933544320339405590026897806688303378740559896612475619556614954197767241324350495489432633345841808637176253460311776230973120415871858396012209382864406440655000318828011552364839788024833382190407606359297907865531990684851035517252729893658829945334120679293004696268298917744818790131864360172526583160489002865529946086558687382982581851018790339712759592610874611474482549923237522026913643003163379101465534038645514058667609727673415413689696837332294814651352651170871105867174033736710593430016415878433528443234407516150256997417051342105214460749451044256605011172226409242110284026334416377964866238984712807689679995825757316628519514341120731698562812564875283033670723222973618894443140406595345096219905898148716922713355205464092589137419424256440418674752387219354733058521682959601717105628315461841592329590381444369855038297305564081304467332119967927245680495008306229569537219345822753739723063272790442152920651703883551875758633536177200570021430324438353414922082992479968450438405863157152955129076838165054924066275346667827549082549988701796013665117650449819783687536220330828126419230048802938841871710257512512237694057495594373651339531449015498505061265093060557637425872253880968430755891946313074618516955628027021857918732881440129991670115355236896050987147353289564557259500847680634298265506605112996702491742212576951445019698615788950211065977322518233234053477046536089139698339841906527186290100502392685403414943497250856342017269761818413728068021437693192171817258634794191029229062576930555172634418223414137019575425957500699919310272441309920761004878141738510369179225107673151824261742315130128377117886577388431636602714140462218239481028280247311984534390863062029589180166330207317098612331630893845457769827234235639528650155515444981991440061637026976992137234071215273351572481648315588534918233590990117794009788679821297662843847310388558369921171897436832989039984082171690286842770819371456212981265392195123032025529052178988827512115508893246152660554952354051540165399306180337513831385361958237885074574945591243120684442905989388802236410158486769075232945428680184884261568984720948477556037858246277399241034206462122915192324740550563491271705992319524290506033125292359760544934193335926187579867386870112020948172518837644493191061841135442903304638452091933432161410120874317784582891448340642740874539727399550027525512426600736120223849462566850726171122655091779858778467322552296178268958472203459260018404992079818817661633368638175175833965741814616561118087775384204865812015488457507523633681780659067898974785277728733720300824643026649949223096982775504379734549325104751086101732060727052970551601475149926008615335815734406038229323967887163888291746774947893964929672602792295152434225426983556742648520625376627637791503943246430671946781185856859433436686341304503204974240784739918460713096635004501398079135893929521721546077592008253179517750101093405135899194847906281543572987817029953067783912219284777714826980188449260114202316710998193536163622598161030015566177933347801785910988196262633495465349508941442031688795035821483600316461630817189205688662416888691659701641125760270441788203093068481606377562820331197115247605057609294640913027905628249226241088598553364225566945938294681475365342091133735726433893077212792398876332237596218432720554036601446175848493242493002428379823951701216109133897719074346842296347426169345034632981838439878332751144989202895357625951349210011921636113313490147386076937032195592026123361921434645527531598369216467094044280031330909885705059111698204113146625094980990191885491606942727937959018652605180775825643787932211660095206127346134516253804916545436444815867294702627546813646258258355078017695641533424855773244095143151142613703403897144409128727106148693666212152935574189009685017045467496628792578766381723608650364771524360797473483884439658732231143393494144583011809836087019217592645470740512768648851650965290240002328915180038430934393437851422608904365736742118740620537069049215755760697476318070196945917608970336097636661765921897530181146515464486186820523888945232936500539051462629847840022702866729854573374232562735597073535401322661932641739936680015235362549057381224625918546973968289034526218588836183999473389298207723883215975901158695202846802207594316276500162875657385116554878273252403927907974552825060486635302696198939178209633559857542870182588857593963429748904022028383614911183476353367365516272223063714428699447131404215101485987573989983731400490076832693255730289508340224756528493396303682108881163550226990181660606760236365150193016868339890639025439004282468417945810673416551567762107042880885206693934463364085547271606942238582686677219431448023920345093718801229817100050275124041761084523691947564506806420463805087796929459217559756326984691861986897059173830583007451128521401404717131785900177663579563861664872909089549550315060775744826080824787185840746853671416825330493881081655979520439597165785035524122213793113152052523652997261222398111322089152491104312585453622949960529570427274319758941049749444714142385809790834387470498300250290426306791671182810268093547102114165862618827816674618517926494621864937267773730103712595652052097447539113249376123244348809356197067334510190553119372148574831429107842557618727206618986994109376712000322208992932999063828445494077582566067552567096603880334823890280266801228980730293184106502557931338544671442205995098598129197855597524314761821518961753860271046605303023284987553465408708406809289432348381806763309211896529089414350818105404342967328457527637596153244056044412705071689584853870143510580267455831605878364248504344259535748036419814634804014799588208499100938369105204554270721673152838911675612027097359084931147017605735301630069387787838559121099269324527565246376725221124209755282344651317281650931560447158019818985029712843738704526383530756740220942621863240198340384283181632588503327193984109564012295536588688845778374575278520421286680252051509386748955535433080316109310701071752751650446028035705815203159346015371471890694677453309763346407077801629785047967454221401544145870490714426952642470244079391327565416033099839869757593434358787196537038508031691974125325720809115424045823768963036441164893755885930256087327386049720516069739690826505666216562449764442895264795025697995562472327027106735348933301662761711017236733691958116430692414508268392494651614338480106826933806102258895988619909970736531899152516932369076308719117807541412108340247109877216896160169447743694486431560045879266880042762072926134416766222172636760607269697253812049848592524580008312649460121748926703828241114494962009934921643284349368040558631566306937913516575257375191144486708435101506104415496948968579193139036624796704256676033453470068199873221703800710628634564889418378126823038966692629764027570776704939694210066166501786144665752796198608014768799809455074779102802583048981077358530552884064882929337682932381285436454304748230240891703062886695570844124757415220756493818309898667472330892160096177585830275685345806671949718532492477875838477176359660570783597439624667997783026009417410820530343456144705550371354152463521960599416259914209807197433361828679373192601182568815503413964926806111175176908364773828014825889824282516675405973096690605781912299091493750729915039525659439700904669131251887568942325531441475957027711479947252668157001924082894516796595391419835188568597073344738241690212391250095231808034058802828472305618300278499489022523330627727194548881648268868792318784062231938540012140288344022559135680225220487044373697252311630268212576547988085576724444413578948382719916564628068561545149208280439278081848498138421204169260624867937827768728435157928158710859568051418873678300808972095451810447412790456062830013714701745806374177172756213397614894673250009815830098707693135530993306426563771913983650901749319495261569416839851767175981637571642534718786446098043102256978454570957188928415249160178552576324757117211728461746268188620843348142503085753951297499822137042970960683002569661237309045583767001811991669586239531472098365236310877091628457629152417866818586695643593114674224710556101621605540041854969034074825088051374568040576340152402684139032951250755868232035609187435484109777225276905109386704342244804616626301506733955941198293118880259696451218100656318879982502097595707765528271669318958609119485659455587589932706233449669136968875390380136148955175418915144010957092356229239189426924129976914184131688038411843158614445743031788273771405149013750081037338511135494021915009439416110523796537273914523375783867894934218651050704513124145968152200963481252868128044170752664506482101368027298989751773888689101780738879626581436966239225362029077883101789612311203803622594000843945853210540184963829200842312229411007514761595361643776864033048429532864944317258221507960336528297226074513829173161636788664116357368312964113764713740162825002047419387072523310610143551212423232434735155687552250934930730501107567089406016690397244189611017373292178909825886341654884784553488539898116411074549639459451141820403657057882214660495878223697155668129976356250879233125392930237345456852296103327966007117441734789247180789915849589611705602657365918204660485596082264704300626310987754568111448722345640789757880091822382196082313765430787265748811538688723022930097244716210180723156665125908073883962268962981239540270057699307769827308702748080903947545828890819049779096685773754844820800709322952740629883656942182358581131959519481284378325780802603150021889645771399735051510273252004514426092521181882873232835024517305040763961363445558406108839032174095991029028601913048216415383874789921215919284932688391588904576793290446500436862686238901653905889296418486611409509312689440003804964507481607789564456651415464868372779140162628298093313725832227462070848856612414242031972568106561511001541030774244769590364687587975934852165182739806183459753152178202705635571737334556899517639746474632955088095935320129836505986489847371264568463721376565988765406330888708773491945229040851468222160561782946624987838256771974911993605968882306227648337881052038687617233359996818927376222605209170886746949649999890641110274239192136074729438878065325266057558708842789803758026179248080144316682352896369869157895822749880406438675502032074489475099386246832958902872764161822227266564244861944510193833449192943174076659356147176871446141507049757843712185526790771846135989229105975389977978546674977095754406917848962735921396881570287020990951758511364194802683240833909765938878803453274161407244600477050056352020544071597227159583887044677142740758732256464504270530169198721496952389293844099264254640129478489944614412808972757508605358257098059161633690961838230338213559403095603532882472806983555850986185945944245164946197639459978345118835079052254964632243418483783222128112228296387554668242971900129865063449543028161474869610246366265746681241600531714688385120287016089404140336802029433090320552493684947449783130947991966724920927235247328241476441391462943136805570364660670053438187175825465807520405098104793109274415660023877278940570124421500909262688806625675346927047824948764638661895732849190848494856301333226869180587850145430645687865901781494157204466260349068198749396872544327896808535173068973932838892391486710450187275689461147447056419474997587336182562954933728757554094864085770771981606064972802976657562727253794256294452686040122774344087321160148685949732914782980650864891645146887269407492303726390040420691534051809243806030211225479753363829423906051365155219205646357148385407135022581295018981595804891958723172454370378511507952117123719181834267427970463714375340733231958792533764720832976316926343253190703555542903431821331939080820706609175253659913152915599592510198667699251050183174256621575906464702881329283648929148228764644898789258705014709415205180151228824830672012925853941242747120912644845988073657547312109232831737467465086600623858071619709523550338717150604184895446735076508471744061878115907756594697550427781792483311212081863977163083959584002954992455357434905845882286712348896552348060899270845762545942445130460820351737361503175881823704956720247693623813095524668265502722910021298905360235103883896899596672380708532038933692386518307218161188900515191492620470116758856600889898737604783748106952132547857725517344713019786428629793478232159877921837039568133124671278114919841040211806549411453545662332364368066283677334221319435847189440641004734659689527189958656481851047165222856900625548704878292720874009348919999518398982043456274591655984232485526601873807213614798457002636173998116632146826383175490763340292419526692388891326631452880948305910697386740092337520924239392447474907557913388643352560694577576186243969971669810681367729673662856475371763297131874585596840936166733320356733540093089739884358244398052182889811821602403160587177021066853972509787942381102796869676302622176294680860664065767644028177120634051697228703077467459204291675037645349813868767293397858691009657967680804610008889899039829712160688896703861991795638979916867104237245833854977078964670121314919686407562740628867392848156406738509322923832678302419396927875041600217440268766935574858411992268078508703485588732540765244182344426940912550647473614447423852889100903331539229636309007238432274567940355483812022042498470349010545581880318819600251896739111800988617313080734122329435428272480631319912056586727908080665777008387956677809637283735088755353570924111542336743149672150323852418437428283348435829776662278033073549067441031887686419038869392523225362201076147395164522608062241391698773380665041419836374415108269244147044074247171115436467074829531415506694396791739526284189755212066391214390535903722526279027148135202868408411729718998204386805928752504555293009130013467405674200430824085109218703365255276086006627843916132828139934689358501695949429220803147530964288171194653128277387623538041199473982034044426802909815025326695556646554165269348013280955945203871946714565068242701030593559294079500110032816822251760195525176271836311429278156712780603060544203131977656538447779094843414450491309927887391431680748786425374269117421719212567848629511326119974335108865262796654966659335401517254698338178679819527414168127075326660411184484161921598960156577057861443704021557811847266848228166497271995424214092802038958672839895336942432153233811841213302654009880473445541732474363474621557065229107780242705639721256103592986886555701798400369997852205436022906560490339063300328432559053303432545593171515196846907457212881919880485723506519868787459803973845439721023122626943202834543002701345109795823511474048442668796281971516257336330129287283206927051028412742002398852007732696696339593762081626032871186511504826888852303939390730761975871658532058370620677076317857501389588870717578597959902658978844788950957204031687381899992711084137423001303665540400709406250541084216003285385059969271837238926384045628642888770601688074583126467602607708592066823862134206989769286474832502749906726339025494575480355047303028469067423419025183263075933490605633469584341417193699034884007060189420611423172911868393043170881653451136452515145301771912474962653927614161536796242224846237985768728163538697954399528592323016417856740485954422026986320967671465482490080273134831385967235191336752123889968500949830751134744219144404562521976169342396017276102196804058681059246259070181193713542176787078510370716189097916136650943437488572632064276782334735907275743070534435531174996942143345696608510265929051171949268583845459298748801171791957251301425869229767243975996541576567620181255660729904243365686754166288076633013063320797204676800402696443296243316588589679381075288079015005459339452535578384304651860574901126844595988383474363140601058919881693827363975064960779012166306059447582406219918554371342413941790083166726919884682820388796334441656286879971849561995618933152121497274133597069561720189858754149609611987807951671743562206645378915081880504705667002797434200017046165842345054473834453904964295143640084094055250443488138849909125617873274367194781637012245011017560078732453759624073059962939552781049736106805639152675852859242123468495350923208196163763093137675847895914782766220169765525443712206411723272759281416446618127231671426913637112777470867936442407565801326921924727365598014769241023172039750422401678317408112873183901250723182319892192545304470933354296572079890931851585355785431619626485656141740208578725714848875940483814810393960109834897704539050621258520576720457103513096146887081556061722647310013563246756686730617103078406773206470652563699665652868241417148526476586120869961193721840914410419836448875100600322810480022307864337434231869165734898297383671905503336810047386322169376274436235824790817779057873488516913703943944618577271844019259007123200161313717770558714743348725831414667644526381334430575072515791822764130309715626603327913369608026498625689986289048459344718378676491152742961467574661578209135198887662535953316362301183925928897452753892307314489735355256544151217209898382865049003404946584996887343190488333314599137929990154220112945069468683424594228815113641546762268742288234154476546312077617263161755176474286067534015240783171758437422656193134633914930932937220999965856542535268012340987401104698407621748725067048257818015718376103383722541451600743914829367212169948003516352003664231503909253405976452343020264147370833134160872865884776435739840573761058921944748686808397171051096191746479568419654322534088476631970835706579093494827475543233322332437937376049937684244762144763582804095101479117795325124008396129132578639923718137844068178182023714210623365429575485534316954855544423195557844609742388021993118022723802868740383334532805346434897746903755763820212452587251264710840792965509237821245537493205225589929887845462481483326152887337416814377168189271562543231174143142946118582190040503395315658626326026774063325497242497413948804593663401668587192281185384374780859176425904209261118717820677440736942864326120839432641228085529401646753254031650559948628022402717448254392718201513016508943967668651865534551117773703347560854108700656729062922325977425501814199453666908176414053735125771546033897467698228553017747708680360866156180370451465096217625429745307932173365400781342966290804913117998274208441817531792823558734037412983846757403618171986910430782695244308693454699957711577694852171971324643061087835742793870723656757933029403223142378070838486940678500178922253743264850075852861438880293403283983279712158980239413336043757209867204054458880499893273056506687736215294317505355252044046702151805704539679896478595182976053406484813968647345715127268629594754026799593052481639449933036398761483729567394169527115493146034978831177403038600488726259782700487112620234662629611182463686197445282101483039949200796366404646976580574487857008399169957952995862426811168010979774110660290911659395786189143933895291801663548816976933572333295918344186927450678191847396653364120456624518285180340488140598137389285181343764403307997307867921560220369419463458676910639707496105034137066691913807878823398366681471714752679260294468322132208348644172174592522411400259456050324297492501079420024227822335930778815980478343143780159835416365580887169442020597414451363344675418815983627498445098753376622469789759824984764991492087824007185362364242047006919876524436563668009728277215207560199091021845694653822814573028315299679906906342620690660544274893137197087785243918434543900108800172677413868806379915587305874091036835970723834797407934487694510087189492782528967670300536254516833449398362070965571610301239143286766323917592409381523400996419910511929113667947024634786931518904350148444827014900374558387568157554089325294587871781746526914295509756373174886132880862868266959797745296678840302976607813057684737517575108480744620603824163145626311495679692650859485456387822442695599780656390145022197376721171117331309213329552587192464628964353684783726140843210683482335586874500581622615763275053938040879674755576142073425514489900060653885874839381052068944352092025035007021417596188102735183211123635717810206618884386870779947116452586663145490118795396048236515122632731859560863118902658482682371019373832645347470043700947257372284453924017011838180899507689097283131080453575907509248762585162430867538200134035091785356322990975433382281783825886636848202618568391048221441163177990033869710983794520159221375405643366446561901433720838490135210572838431957015153276752933194225872692197670194222731367293380854639250272704359954187906830882432583166701038527984105772728758505748949084458410266220729766368110274597367536438651947633593165335714582831191492368935264698334234754863332655172851095057830614832816069026213560647432132538266609600769453063090240729129928703812297318751162547809208910542375646794833691523181576611694074648396142709803522541913281265733496514542891234354278175715866220877966276992674225692185118808786427038938831623372528620928154915892391628101775603270839477881312765794868716192003204317420873023709067760298635855380555333929542422353810717803580643292566804247033410732836243616995697279381100641112327121453476678080251959000881002384863419496512121575761298014584813455269007279310228484200869482048271007390032868693993734900805459621534429636572634355490440877279186873000212940821748164129511776406558737247804875901997045063800399942198891570263508020936651809201930521580053971885481243501278090309690735354021586233216037916384684137172863118839022427050087242927636802240542723995728109849451225284478799526741420781944631942455073339294929744731003560307168744766846180263701136089625206732536532538973922685039020537068255046392100541192065131805603396414120531269229010148200492572971754644171830411604253001478274689116218820591909916903873934887851505187859920728807995963869485008497358740086147996350421425696027072344160638814808311760836659814067884572402550795136307927645633660781839690522506086408181661546948119801583896903322190396436069566857851920714662413381990558432716955791088955253550864513180310648374904687563043092329818423425471926986942730231874003603691997789250518770090218296825114362994308721362569654394293940954958100611976476876099889907627329358644082362208688268118670026287461297469969372782415005382583116357478030517043048521272154126895476452530490593919078035300752719729764448681743499827579305611629759336501961749118741152088706424222485391157810381412346526507402522018391213116046513832243381434784917590688858258656505982597253350509833621820902517528036444174131912473767787080481475183523339570079227674409034816904515968026551056174073923897197269317458204074388372832023570815632499213492162823672436285357945634903264272558791073404658578829748282043043876558087643608855085949144513543277205095307523717907049808027884771723564080830104055474627376293177681056698658583074109357616268098680001026199102692049294976041144830603889155626773550869041995602050365730598520615676249604801377473560677733685304304589570855070418643217097935420713478552060450991783323799469129904012379568922473790033821843757087710789609872612295707616218770823473069200096387410788138589898846884606554127821756146576522984348374580592813757686073451860747617901190978277376309955823373778084299325094826283098802737174450036504581047452306645742163194227605300684130147808312733750169669823986263123595383499948072444604781090884058292959655614991360873349773148540528835779122142835011418378598205495015876790175806658548895417827817108239810869436135616912037086179084758304463969644378746087816425465698682554466664158419049843297658520220440339134464399112204864994445619288066270142098247510526802525013372585977159856288922430882898758560364090653540608787375833498557211170629895699626031757541367870359504218795082276008055467938979641346085712794601188376940590921148606172996111819444414793426449776889150670674840079167497667548627189022432221096611631845997260946393427577078651912015681560312919621202502211379808656256906620599030755600650511000690908775632049778755900153992315887339982400056708944342715907414935533175265977352173252790327813610435478077073005753739907315402420854577717458573048792179180816172820138169992372931801447792080878964934680833964749166165921062264352281050553707660483404071187576870677105835413928573791574498816438904008051039409484147794817604493900540263073690488168913281824065864936972363155590210783053407519344681905979624547004761922212200067862294335826366140733849868633965721790700641238391307855083709553254035860667814451624854343973697023520552691399867777435272148170432770182831058925947448084814358304399162438468873410148642690425653939818493105344583189711222958893915795489777541689820230767970966315603918891647981731796655465507745590225271976106360355109566054787186176718080003682257236228016237169494900356300087738084779891570218772697072838458901683715309758218776396292010101687842482293334271184624069627830849003886539605985600502572285010410389307086039027403370108066436639165550580028852649821190497088496259069881181166907576918007864169500178376292326331131346807589325314110079022236474629834965232617936086875140624773968350001211146169326437925472410191422418171953165226396887695524540956438689985190086649462201220585495438149958320337781678552885846960026660144527602295890994677517492582993545332721259512167683733499263278230427336197155309392455570470900446965840559170566095715337944456826601482620279427897842083134883408817682805480428953616788137551140101413629100761701116864984031525897910138820350435967334060302803456452779773862693117550136635306512244826311766198808159176970071423706108545140908241954652537983304415127186099132799794971389521190049926657370438213421643247876906686051378841554128087321422952668122793834435296027857450133874596858143650844668542994551613799206699301935072704202305273262477270439209976016587443736330868934476962658852422156511500724117783835387653806411581499465218062615008204382850142175057223808638314552322174685025523197439518671714925821532357243766204971608148864006490192722579036882337948994500142533749688397153090066920594444546207199641868447643144233868883074280128077870326387830922960810692079730728831271195922611086454139591633622910656588261143420922318454340112784625459766165062188240648200494539747414154074796181807816810838566849447689992267581921154015889935304075761379289644082480700341871791913774358698244443843429566216043989489753163252134361891741576132822075105869225423142093137945759039715603796634186784115225112146474959946406707103457011733902324694203967511960921030988884770846678405977830769833259500898469859753547330194898219073892296497482376967852267367814796666547503960107521947749145280335858540119088343217542885816690147829937878041192380062972208562052304273487858845948627284298957893069015571597203229507037386780385531648418691356245036364367593823688306867728159091738450302295749794998315678100208859247409299298869778118572874368177827337330565508645446530787947439494358755239133219628977985131857035489658906879154892102461031952454835172426106232209020595758830551397837887084652185309395901182954160154873978831875302505711673404002138611954557426093233721043600958771718302670640949156047485207552158144032794099382546746032895693951845602819850166466574370831048937139414196151477375213702580813600187467581575560379324852242586592579398138877147077016116025251725471990641224471653546428418282153402227837335732285884581256667970664836996803865781457049782644617609396040708904300076157571798902899474472087300052554830120497970505629874925902176801388034347685721147882796703654100427504745196782812366622808783875600939495944342097031063510449944679623093339163632830972069356524966350516545890485552024578299989990104567179007239161398690626937619481611344381405199357566370911586195179418869948017124348158154269787992199708736564504456611295560173407590043439611196715427640160257481483229186945455335366040518663581210625455995195557847838575451187355973455903376931292400066827276684337438788647495001527382053856188203386558829815936689011110659602374732654178870600417985644120765407918005185837795672996206912038303440159531759789532584385390893654538256416147254106599227108148315193894914238076653700679256834724275631642798980182551910471722437751542580635241867620229547058986051721270477090063554554065791658836315187682427662891775398699828205180979265283871378277162791284973851895256957318951523120400825705664269174543375047017025750538492042853953300151831069802522719615533754726905730587998405681181302331520234682619418998830362839453778672965589812278224863147277109627846600870777248409852337228168250193428583700066964654075811325330223543321890252923927686533539939679425290957456901353290926833735673066061047591494023124412596475373974488258669592734778408634821353850472501517235484174140688769881361306826373397365436493867971429898519914741544485582106848801205379831570769424561655581780879329579715856759276765059779123551071681265017257135788374946625739860450446496924459079037669251526860234183036897935054334978369305562792987844529580511711181343198083989893850379689004000696415354702830894816961698590471100641729628675028928074740412191181190408918335970218317198458928205438567522833582191261563814606279390273268032272670542698878530710164209099113204886206854742084242628087252691839140675758640431441233674209556105781465997456184590162985096190176118966816590827170253582753089775933579110083325120335581085139574084547735117802484153639952883374803638922269328979903541804808057867485028470275543356194184786703381912159526915858758127442119851812315172405553808731681195317713241626259199582453442661517179132121836067289421495178380610631021771624061220250511085064164524686910290741561517400846564912559970458396558453720229092670224519443195937704749070586980168491778963325259503809088375545086890473827568237316885269275548670813833569773235472906155006820030330688041925669977693858574915195464189206752285057905695204592621331178139120752763092602556329266516931579624640127409566337061925147598564064971529355434569479331828601526332619927004352488403655837584892530131664256017084862502709071632833750993594036237066612759628978349257427631416046081158668205236114062361747641027361549407639095580964574116080863630878766336554087624902432265070320999587284584341092195071982578810251645437252070285106387238957712963508093473005272749472914952776275327707184779547308754450213243033640431105068931862304056439160561287866562000167750868422394754648591716567047360760049586225328608974749182704373013655174163823746620043816521219237836183601566775715038875063057632118542409638477108431868673242584497924108610504976297146596075959432244638448509037577905096320014316578225958449299085166747844672291199309326376619889059624398660090471007311175051254191969034996041218760748034017965116798095744421660269686513513376030663026426464011903645203952474688311878692240266101148102028512264025984742331773186311590333278821108955336024778491705979154258206556816405883866773805154635717424456610788983360650079023973388539308805037194658840082256540793951521797386959317319387543146012107127699720252225221957492625793429505953838824453734723713206908312102274572290927013316479347061619693168250782918501027615262499498607207261220024750690600145362934740628822802036236534279394728462836536102556969385826653805138330739523145443634449635433964569947903112616766557227058592179444234694636652451745107550104828426733326317096025782680365058877752509796816486292410800646374994030751131827582873395462529059730637013250141819800280552295368304554679177604799537406937659728860231157682924848855689329533634191422955872934186152212592908069821409487259010243697858603046211865109251172297879717951872145707196834905991550464031020283172542182689316160556965327163974722505375980560193295270702598691348430670136225672410140332793607030897091056459436528487425533987148455562180852560352188500863413506734487243529284119895121795566488918367396185622148897454011874592629358778309733342081348216529898501938646451996166460904320997951050750643478028944991142742532273828789605979319405624150500211602549963615106638873648199909680139454010849180403490212824020763840151100429844962951369380067556398141199689076794935460270421425319219093168219504333548735321686642225517143557927915176662204264755018367516799455581911682500832368313860494677646158302138387268395123442084968952223710795566939843843327591043942111002943750716473209148814754197754458909875317071957154775382780600504270874361866723888527867994095500081376129580758718727153638904134869870469192248032440144964261816131871394992005907517362104452528645040974502164280283938278950142523858602405509530136027209175853314617977421563998414095275815018310593702463614622141103656616069654998325467407269021771560002235013309629839663061749743674593239359128049121900214659300394873372651180673192162525499101724347752361094281126975961049058614633661236653978017780627546745622267676278168749372662023371328298061806945582797699976418747401865396035586091515539981626862131002324900440047828630028070926090665406101586560986180134999361010620227712180748188404193428198395724768502449614859431701325215598158128433176710868557085161408431883384338076298249944723707862784964625175548248398108616426988947654148800935497340700602525388081349964125303966758543024916736918160744045696650749533292423112477724404469922052893223304651068319344705171326705668103875186495576574911937523113169684413759621173239406629960989036301025902409527038165520238674101989032169076940550676043216977736929967994122345971416023493928926919306934027051170909950597029718739638166697788087086687961975183422204681297195579926985521184496112340517951357152116893743511581039453987663949875607188780732097233436874354639343128168963368483966528088947190961009188016321269757014732622847919173919438358067678120625236050251474515258947429436624952635528974292288226887482320191050261834144534959416388065701151153698269289366846631869315516828199659442385516691693132438374732108680905955083242040820189297324628798738275233342403426684632167560903530254434431712244358529553106742884166031834674638913431679128230037885827765441259602731217059070790182940893149487747303223661966928097851773271364012330107677093899924831893118685764333941226671754097536173222795670668319572539716222255870634182203882933878203672674319104015407039883910601991327621983155541088957224832718321516553950059101982449738150379977314337531686666893500202962497827855091641099794272718117717720147549720190362528055251409014631479186336851884817746203711075873970366286433941413824063195066683963532443981081876401753324328255336339075827456906903489751189566302085151306160594406767139478499342821378064365167944833422857131439459925613305500524461633731940967846616397820713567848446388409916880207061045085343548688728129846402281149167057486919387355676369111380367089273353404719303385450585659982100605577698880231985909009118252189735563867468024059159638771046484317869267019553419766172898766193335538861596776419955336005453996577883621139243105722455273565168948878227382169508276799274470644069209256688817192386590466201449358347195087429028198612804446783037190488210085761841536173239267904001142052740752434364629085027377638121671702981635872436055004050157723049176427193714344496478265165547227118005770081685310279643411979844042556643743112969530594727623025590185511252497835121265619467609918963383635081936982620033653118107019619416716806860805303484204036647051458310155430003213864607077988622158173796199867461751553365255900945662219971210344955866437718463063305721051983512846080780079804769414580065199058124354010212597444159866368379924987058452547946716609463617975787334173210629576341935611379871200143268016189905272763880611279719797358299147497936573192678966430136881834775892012284988930112945779031756205058604263112644977021418671266007095348047046103361884354401980936168873138484970826224619292030625802419252227840568168042134122146390767969122674727185523425167548952983516260473686769556462691201535548992449552419711474938982212682566825460078103829340538555794396261535346659871080615825406774605709168978923952876103468746508920838632222564787786922843509093353829776519275300317310013874142719339639019954538313842385934347633097059058852397505614269748386304485369444286297485759179600486981883816710759104928101051972552116825617221354689432022545966739321233596338063023696391696354846544273739132156029719259169328754302885214373483309686553794471270410182257151428424862549766263833040375319254572039325294670932571645262920673376543613718818203124613206512999697211205523833874705832416867780162593668778155638121374815156301505319004074086056676204452140229437098936154475505053631825928336930308929942398339461872920333563397697099341578511265242488821569696958872508309929615188155467931825517049601868808260766823249071232426518599080380194602026838621989573551229636469814986630571458294229831631474156737439550171189882484439977074301633948293155821321512143147417679586179923904412426562626837484916685308238867247012523171618009296021793633796540096144981833793166899225321234841037123940703493505274531552510328442589757455771847714338919739075666662685363339658148798125030753587322516884212136095414728047005927066853140811603791291290789438305046947970450728141167628689379669037145383572226180176950827670696141311769184493293780510521898776191920104382116601881724403040201365844061217897915447659850123029088412192342784023268759118181617092018736377888482778051741658620356230374886711256772721571067421418252523255575171059880080150766401616585574573904943413501805051473188450934920786625965086912205047247100332739131817143601646256312372408371222165290539763729045763706721210058603455931419237426382631980001114390140729836321280293310417618800825090381962661573572384346148593475957577113245190692216557126935076138804968530266975777764287896626509455378209015437909362563069783306698840844023250798639434090621789765277136477013908875071087895492978413804327675490637562640488497795382375965775470874420199923096227008154185414854926622078072431020696211851462939938085268289867057935983484419009142330260827591690775613376974463522514701124046777571014991351891458170756226116744483473511173771534845727207194337073638771315803952894705005294615628364447166274299202481361984543800745044660228804708951067994076899803752614062711015696147735515444935841086567754158862693896778056847486657924514234281614528833288659240997480938646431205540118076388795270755803793608569778987122742090590161414176097805367456115392118483708073221642530768246505295182631044707195628434899157573906671787158751958905899352090330213890687829934311486597185686947468465529991101546950272213704100736724565376965017750769819820674575230040625091969061691546747961570107373414814310085984689870971477187225651236340209599504524521230389839508634161430069101124648935252367134762992609165793994541355075692417162181647704765469776104887582013421203993484388765455619138417568281017092218966959774526426396917869315485663227896532242758052803293896841257559742647224270107819416496669615256422577002829929701442189248469812212425662803964520483538818485740693719722071821706009232531457173265320890098668921861931741912560098689197301776747708990631086192330554232169415978316277082121728881805117862993796032497021421892283256126660188192642741475064595322508478660742655275463868043668157869561302156896939726102007758563458644029666549323990748528449769360600159445446766585527521407713547620765443017534600622869712865213567687956209487056247044202597667819350256658408515718650036282894074079720800792154635403043301708062757452811333995054566399685931924146211604019423688289265596628835052906304285271918172118986875696135660614229388348138707084033816992339293470232691294731345266870019171585965621233450812682769201291848335709945606631539572714511165381848109447680893872214542436086994018246801848414805828139887159538274360037588156462125931536775273769621361365419012734105504624400828585159182035861901857699783240864111047081336479468398326480169051378273883752227246377254013200188546750673950763182093006229336630786930986959012485087882327718217086936359754167644310228439001368252271409208145899362423523701257269297993561110093107182583344512417704034613348936236207670162694124152956751518929734750282457518094666610607011347090887224171389240095090690712508327410159689352245212338005757322525624693127978068422125116261813452643352391211395835343710184839875211046497133827465863764420659776779546801311171220745309033526256224993228765711071364443719289690649626891096051889836849485530698001500014613653747161175199779184186025281541922658501197896604026746120793348011408361604590008159586089570179361427251212167146644512173199634788116218166845544357483662183647312220517875439091925917130618390201336103216133926801606634070871033002212069389318201986526788804407588834844193452933938177277491969160856477899128409328047468185344040294820758527591600168669807027936391828865906483538059461915121878318337696756416621255974658360466307430253050875598166462346807338251149783279177289991093265590315062400286444696198382790495333606463826454104198461179456863909572223257770330895095259583722036204720119998125161140804720338732330391605545120182899292669247398064107369818695906878416822891405194365150596533348503412407129897642228566142021266959384473747898837009904171693232540715420447036567908589079186571543024338018636840169091825576553169562927567731193949292063364322590452360816726687591733608451974529359797385833817723147154792886201670416120736866250516960240346693896145791512574883594960125925353070860065597508531673576188477568299648839983076557033943766504605986576652216366232814671222077801987468619045479059051660309647836794504897967382240242059017722389681963574435773192534220768101868606912138369401993542772800120852185306974738904021170408753705976701520011136430519919773914875761362657617835666720741748405283923586724310384543801003004674683936275784085687808364644768643541727310133462266174653887597952118204585621596065525691598327268393999727891495197434444821393641346358139650650474701610650403162548052087644550268588535649457024833868209395143544250183641582778932021769072191497828651380308191248899643933427088876139224115497365304194773307566544828970585795754083134575789611347891322044790920348298451679614573668311005813928565102902969677690835844222872061864128334728284687223640300281961428882023967213558382209158088892815495545096909289601908819283455180305374186631571427168598050438491234702383165307931853154709155195961911150301882309101983146756229851420496797869343893115876277204495799136846261352747327128867251475950090670620382567281523390233658684000718112071478355067785351652417700122922271359998798425531522064566403146063105883374248828935735533092977241209862421721166469282906980290846151594040993283004512510293128540311732552992710805020524371187770037054939601453980229175120115026196291699361846374626453426587200303704059543593357841899015756878797167039627900557435728700217749282705110010028762284840190859964847839975679037231660561643362196695932802203220018706454916165609163017601605012414766004800888317455008953055222251444627536888762174125050209323566934119408497953560467041432791916789212981309954939833777457367484941998353776465539897946955299613017582171497392033452172154797290167126814684979588983052631638677118254025339859998518049171977584177472290758089749064061536912870233728920690294473415912449845136146185359039736517693003132402509857479541758249314085684240912103962213458571683481107228417496663888792166801015674399091655811454811003124257281753605912805565452473387430717814279379370513582210402963046509963646779624064190730766878981178663629775481938005307927259614335619001018427592454316075986066538846176703744000803406417324116089501689567900053715922819584937899458687730147807915286367148725777968492546705132394639867329262274116691558069952159904103978259640524239567380400725361310723200845283668748650751161470137603789034642837995192489565305529931736204910599802879117095343475006690009024469058418993103182566522289655391433192039899170322313131453968137145796512754932732185431022390375128114884824869126333457736433892050440329331817809832990675134644589618619904294750633020254496107960091272038986148558033906669485124822230001335408405953672321731296311805093952406853915044870188732559174361575861447780534829170515457677215167637237338409940849922415625754661446396902864589970290694011332199518076888239477513393940614972736745445743619086357710839426578972809826674959744648672224329031128783203551910363100442934489254465680064824707227706459913203023351321818520124972798203402780395095718587540385429582106028029615593774627991551320251344827677346331467650275091164708306535378260270355575669109928523772980060173279833990715876770690768952317106640102774589864759917802824921917480719801766292778386617923421696302852627702398286518631196721523467948717502423854425507254547198815074191513617888927428383283051030274534730547478230097843610841080905152769922202565056616841028819441132941410751098435460851069156478046093896626044702388976418043632424418713129423845787673533881132622084942871762504301361532249307577709008076658161825986771873812771903973158093575171786985205985190475871914465063199573127994812830435584628465281132721051636414774854554162567339341583143747670628946740746158715501082496175249539504607794691476214577845929648072487452333694790249858093354035988319139627492353725589073629748300598996104708667427166642845002484735610564970526300006711726498770603614321833818291716408153374769865814814997052534709700619696588969117201205364847154178727402140232040993117778077719904526337884815731830239725912952449448835616277092469532812225265248819701300253372732349689983860201946873075566480537458743796359854501689055047401585854080779734138466576776834982141926028355434233314760856779565847610392021368728566613083822644464151793314692825311881720351256330960044088453810627359300446188468258113130641727785161325037659095371478919252313651601904987370325910854691563389972021927708734141179620391814461853533401434448099107699456686572863277677422735796699456273058296103614767668804573236443675207942489672755349243372016987033925191925233786332259137993270421645463543553315990164785593796815356536657033305519212858505702837674501496775590569178251760134162989710511376897138304253997799808767101087027627534471962973634945297173751270860279285233153831759061890423086854589779391822961716490776533832281079678313747013915116466187943487147203134179202643012177266550021677809385098015345802148662904757251088716842072001456229136355577759407432169340121530086268609839848486606412776755530659967066045857436453265476731953363745986413060979928265238352073660164118435717782854927001828522559570773958886337471703543057972888202620525613337928865780237468818661271680957022554027708823368936869242785933891933475216450952798176317856559773389663846328783367472967885293804144594981993607428737231001775459735726127854505638662641365265362353643740885995775679032076064127811286777078699806303170286167562493624810002952807382386541774189294052596829765879715152195907521300389500246045688212635271164342182179051472996407392821449443891171088819468596031322540879133989204789279699361077777099089793373940755232214491971239042132828338180189638783243765680091607696021709658019746141673813100870531376861505866236291572069024043382276155066953665704450833633330280124219580268336772027335771348554595948279286758972692445326194609758346023137033584121341987720961565500745879568119717929604135503683723043878043854330369840024180954828196711598611461557000957942376010180288016592502517203048739972283951652005596480960767009326677317183225055524806265711927472426002159073958700159779588016297596882566469160720937655044144099703922285253977413078251780659021995698594852950677559734354874316633362564565180230052367930288733642202847825279490846074172980297442742006705751272629870572686355642477502062267061395607986404112741310679891385532521446824370494757150987888390075677862530914351357391664033065900699245917919873737073691362353514099595945905078328469551339278204878832514599866797488271470901479629729980392573715434198547046691149214230396749470008178686471936306523043247603663194575684610150275644426872099123930596611220868041423873374236845706081408742002224015292956628125022574225167102957466617419173154660112333671958230718174920202023259689278288869119265549281671326546637845128874799642732752676338304771549717219217196149353660800590106568391731334142953701289767430998018256280029991987829655726847255633597114665177747536870396192517831084793251163947275315982260577312368101458767039202518505344533983233953380290145090828549291608991567145489648156570572583349946701822269996393661075094362590529207869649917306552368665777939719831690979774871147546304102161046234611445273045968263245464278719819852590967092127115645445444022510461574922970080885115694337027139217112415496621454230877963470312979484421721815788916846534374889504041747995214224953056807017214911398709663704369660817011865129879885118821186578780581453897281536707067390573693554339539333041699048856332491288816380179658103587748773793675725609732075532497423614421437616021083180010230315535035753904229364049485171664687717464984701092923568829342697279624572933506821670201114313925472971508200615462886187443000692080178150788403850732509303966743871510452829692521359315380126488421850133824338138829404556854344817060670531712853836307156753983684005999496391097426873752005288765919553728751565340090587921097402019688272425370150813223075377611733842646803376420593112835078528776249838410975416042767933955253421113410734853417329135527343228069178986752441153244239641385765972238607061910507558866631435595406166769306585421710751547314770457490455230695818766966625418280550469536786998191069045143619241075988752404154752529817498244150069390383321781540848830019524373560983304959636920554811307501938260737972649750043706990410559724044759306074265384172937644477825348705054707746439968988131708940358444723680533759340261468371262305011582245011151542904639113161811422816428399935557169818468318570599772942849914116206144036899602032214107339252649751267874453142141040412707175838031607629755916980383970124875227253258684427881004152634264528454421206939479874111842152841255760032257852802252752855204894836409666359914956572156437133144591531947902522519319493926760939500899893371373047737074464652814052718910512507669656439787030685415908493498601431864183795659195003512958114816442008550310709863641785631827300165685609281944112665084868874079714802098008872509516787778938238110645312903495539085573990280065368492967466802236609054826494086999507172550826062350515651059060085462463563356236671570211547576535512516150365853819588895916494178788356700925594802187323657063393015944568908995716304926233748854701874216284544270274589806675742052913296776540603929572246916654041319180297044936452492649467828115109967375249757837195085396497881347130037443483040160176644593164522390743572468957672932625744277572348999264395947400003392634629213769760275273161452603230648281947209504409898868617594200054346381287991157193447782782539841382515838198636694919565879105753033748093546545170430158136437558769175080315648159064912841233095352657005314410707157403516847111130626744115855019492399292871048514149553269581637071354450190268765183841859275361151686787885332503647607284235978404710590153768241580544313631404872707060924758693954716606216041481488352984242158659757951714703093102294164707924717798339625410277508570680559625236220893026581643064760753198723099709356563943566276837121884181053822766866949623193433764160507015106299694481443532566052995233603956773325028310565515985740931976319966701625828216093479259498592747674872279463621545081394350533760294170267342017928987252479570604109204451937935097656970490724192371571205112167273395591014726591699754790098625728878665703888346068074184788298819643938364093846663302883857982491158921672032565341911592374380118611841739726500011346036431546095113426442599478738578811784308926540767058160513556555674945651023956055526601524116221684075613386449055269819270193752892415347836849036664409519405428249626185020575773373044992858090336604783356988687130860511356510138211030960852218448073384522189408601114694095012967989046904476133726260994643685324364122348325579008550266750433317667162241906257374925474296216175882100635365571234554601213098438974644234825016528986011425903575497547449235101555186756397768095273025526626718643420609580424846696220961678875970934508032922161987074467319352804524766118116452942444251803204790610818897152242351341104930794510134128142287708356558896027849800287068928755127788530928463403588631875417916346534078929507173424693254623572540689470132746799995912493867080498890871178345121968907432228689740157102307120308677811220835325783644104676891007573224151019709838451460658495016889555264967332822366181636620432830165536725125458658764903093883075672858793022111418437868178214698072865257102477804029917608899351389451744643390026290994453541920494035112529628608508627286996604262955599449926126768438393047485310086152176625904352366107190124020672266882096285288538207450901424745349826716034060249973849635248427751204515299199115657189473828158850725922508107618416326137514782535498117881100728066699699654323636242706277117173416967146435324036338225178604665014574885211001723967257591444293159541655992871077646525325928139815334209788747472770469892164745702192554074877350183101817504082555404351373978360231024426043354478103004029732084619513536280289350006030319156579879498099398359288076695974852659580864358876675961055783726456717097364519713285949001804530079941136292139094669473565919638280878970431792582853783428176460148133184889301788612763356016657942366578643313838265775826935570920775049348783106037443609631345867729586886168115853379054936547279101917561441701374434871514291346327692140330408577275396487713594411842541410318931493351472779645233007955013539507949842318025423548973421016317761896132484074383026544695044985718275600383739965265996033279181775160284762546547204649381249674942829195278724629784707924508957871276185822893555093825670114346166249633798478979342973885393151413302596035333314680486735315574301047438570376638828626247653610867192691072822255978507642169805561451537757233180560520982783957356098334336927645231924586162544551532186289721964750400241065084518890584522485875648378126116963328728358398860985326760842342488658099883201223841299364172335676798147026794566555635593836750716225666829211514402494075167909878186709118141357294434107934882252559629526997304767024909999941271469092685627976052287429805291185677975591563960471931005193751820394866981209777934632963141316627813754138302552006491118420143192621756578510011745373075409003449502627476047707264618019379886195443966453473724799139795629384253107183932759604863852169446969303354722527294435399613957072856723276503928697102815791178934962382221222518346189996249974805715312367066889540001997356317714370316988300382629048104116417556279688997775717094916269551919820694788464250956360944412523100444727566556823050267818542827574507291178712061350703166016472954419689983322898755434343470256511679058570114766321561629363447192928798832921470905233090035050849484496404965911136588235211835293333570107778408472998777553356569410490441299723842070258742495633574105998641385454891859930056297389716373888882729189453506383721082737227179764178832199999808115330624188932058876749468684842833012819435141543556569709444041317782650743953145494603049460491850269361376555798077464904436468975072997831447790793296845897365661842095733701592901260629507987991624225064602052155893214681888474221776455579636650803858397878926505379770814643888829037633085870722716101224832328480549319607291816451313052557851775652796344954975893779370834607765738070684224213084763485383270548338272885849007634896777760140000887453085181780061450654518957717023307864503130835035946927322012123043415473677099022953953975914154937143086955907599801833594684194384600804055331927242928381455965472462431146450722790000146605445353053820984966273433719482775198119913840461683031095694521705946343889606398807607315239279907263970469852623950647743677851939294793377725277967584534628161137104259213195455326061347376401903660862280702619279336975736845377594515461117445894194463885867040233743383748830224357166931788049045075357333337511503857038100933251813555908180119931963548189352717369131122503983062905118937875560375241994623668489688164731577225706502798570532069751841993235621107343269975175500967012776512768637958345454135842882968299253089167357132086682597161997385360675015104454297992869178194551498540244928547719291123743860168030576803791657969963642572536737587824891049936783153513287663694460891133694161383595153306016532973295966342893130545253304798611556450626961240231951531618191174878601337594995649630491564714021264095247191149404114353512896301465360110214105050567329077751508546310914259536366693039047508101316577324447310071847733506181482205184049645558385382251544850770720626053251758014347283404179367328411433812840765111965963197808452189587691889287047212314307994386137878042142077194297233396369679647125214862743922488343323037407549028313638651458101527257523036536713780469309272494957950950384636059093316477360497070740057292540330808262169206650596722069752453442704429708114668857337892999869124671005406707725377462582279891872131649437621414702097994846096720083834638951316904932894983620936717924044462983352050964637205249227494672599238052911300377398503235195368325941101746792571153483302275819657509466222004042196065508679449900715025512963909697841926579945321729767182484769293232756382813076119470332381274514694011834065374037515053649262241059605644094608385781406701788701451449705604528115295878480802790104598772017674800193489397816585425183020761582705484027901038832013606891021031762871615379695583626699152303605598028110157772366420235639932054071896134778275311082771666022096502905784829962170190943153474387158625851289294324450473559594206294113757198137271030187574063981584481223970936147464151621227050043429525013785949543585448353702280639545113189927352143681565925857533192559643269625139632511293788565133291887917043253385955271199676298693949287647059426129027037701603412840469326620432677627134784156595305433948991536319147342913665715692064945519351005850093005354194225787304764268934010965210944691358398729321200629810135592948747756302013187017393032231867951798354694249430483536190596060346191290581044644626725944752773310698734809431323693755564004793276451900053027511387313407324704639143221839518836600378432667877300860875472905905901286277390697263028725940571631123385072588548788539580014339366519819307559915424046138477355928096451456884028973147535790649004753727901213806432187026631076344423774198073160039843744580015712668531374341563082937589981772652976409254653999865481413314642431719510135937426175347878391199113121486063407003155245941903047051510248686879709739924469236590211691964571979381513286643169995858153787764436372567025362670309749364215348716335091087537991356862992502964513942722567466461473571000908009688691016705560740520912191625576071555678298254201256845655404055694725983441742934030945042632070387682673816895523948909935437456562902986677039729249134383153683929744522029436270236343306986287626696779804982596091604960896402581952909530726661940813120927928994995805459931845627835136347527364249052869463758236338155414659478988477772413349034626275319003205360744135847864323502481299467067735737909672368539824207555634917632071017787796828363143374966327096210113476846108568103441432370670754547867271287951790268269510831969893645370712021434064364284787957314374012619866492628285266389890117876801660368638069318912490900272479028396864985034525019013072197070604318215404807836004136383096769388132310475950325009309682385536689079538798557322038801930210212451425127718766380089875254408016078255823282709275473456217717240554630392110710742807916377044957524316894033927310126723640439218271046196988164500522025056865108191938149229625978631220217710574448943242757200311404419197318655925837273010040662734905457921102328603003503220118045954881675199748262537455690267524319317749746877066801953151472290796336141603936856887333341369005555744436869673812524016944496987368382112623778358518308444319816114859416083441629604178309461872947695881196457925360024570103916421957950020037027743235329288260958970109331566347808079328576462596765794331558747807603455157104727543568928802843268093145976073529819577711542069815465840532714492791402813091823292590685942567105147113919022183339715182221387345629150960868742513644942087775112588065472308677826121988389081946734946249043370252319107477544731283169887860900882004665151797604959558346764861073701744402711513336247589285762219233337584443284665747489618747165923817883153470292543551882763504481758088381302418622723875650362521183297502467186891945238169907263471511593383794266417064111039795838748006384615713066251296622761596039690999742625724687736293103406059927988042710231385469202414222334132230651432491357445315160496333329297285056267343225639876714419583814867505874779728909270896762989906001182761232780304518043864075233784087865300983463050381562005486385647822727651338414459608903862088392936239192623559928488562651283645481589795480262271086784203918558446698254257881716165054056363171747946187718901884374444795070443867202471990250327905509988987295495610980138197836065319448145674438516138861081053953110338459947734679028832725222468965741954922210522631023602808035995035075783817888454192937164200180207988860878666884599068977883893939405955878061438535925302826451291209172101448334631397472952771178423420470826553441029644998839979513616925341750720133011178470377106268089182892856569397970436674067204888758056112663780444627116425160020928809254670478677228605688888813355226215090374882417303479871606865336803088159086618746379223906755855688117317591193599084046118375881448778026240028344884883513643563755736536243705911543369519207977291745762975721058939228191784380817973306560354433817288906386041056200785532264599040601952061665052685572639297301418311643002871410221235534946465437365498212727889999300491944777483634344915590918890065695754417538145395494125940012546146075588862810902545564291979368217213664276303543094057825539680215784197402296432061067878897670668794852922864231551160760224929425948487819105289437577410870607989122311996707965617717066483607577205478278818049201582548546454365083549315240156178679732929953506521504210135587653536248872015592942636352191949285408405798425506203007554894942740318773252695758451140886458481984073843043507413207401693929396965500513729491838144264044850859153435320447719581263360778000144834265880463037564643391180468759153782907338178841645769908400994298453737581752468348837910430029516825925437384388366662924663128421587925261834613426511049179878951784667696508966886945655394880420882422661702261440764530876324057745893509413032371578968438616101956574923708367603235928342968464299263058263933463120326618281661635862426045513200926610801884918624187895145925126954215592769926558645868156989172076133877945257728150769927253835389964198294863300451642262920929246680313694141140697759293582056156315809409236982351945206435619465303379491278493574113145472188137100869072105214615684412543913725347036539791910851573781096546678242611557395513158061117792466752101327417489899051953000302154800971701233454093928923664909088501523987722492978625991641144903954463366753396871373763246109909861800903288813142369014618131010807701774299837209569896823855043198804550792150985447940479532062697854124228822582988842707527657042950985928361940263840385123342306487617638996555441100010614799105298261326152757285968064309112909085383219817751681533427359405931761893152741668655130954795133622127979484536565548195695342699421870005548071452658516414474768026607126445956346803025043656960096607919839030127267668661699133797478788791099815352113184807449787132483475351624924957789474952721526241855547412081097759205847258227494912212832489446320453714983871006677526298588070207505998269345446570788034805246388952796030741341423095195127357879284297336037230818839381387954859740115744237257259824455557899344978551778465516733528425757659334765555775327874395978407792939771853840550592260756625716105460706531376531797584319613128767341675650775842498615273373900889291243435335499018234229285382895167083195915588754900164431858689456744843554459754039571851251441312969388948014328067134388710217382038255005559907998079408877447968917768233606809896679857493175758250962291485146763671695705217914576017170306656397060420294843501614036489780084883798324307256920115889734749592640808915668556690255228517658307436992023540422841333915214374276224383080735600566591143912736030085646821775417739813942462725999248984757688086938353373538408320506034163973644358193051923605911580117092149107831251664908394044369156016067568343337627179830301165702339211138971949184782457437469602804509713534253450888138295691159088147459106911145206643352632527518051143941725058519514312526775493753643350052518434544109607750331414242612343557349083638816030293775873679158333259203130438977090419116065865262361777254236005357886560396999153613407230889362873645590155954058839600901609301241320380163282530108491311815375880732658638204025405778307943847145170613332770454614060856731612762825398391478351103326153858629849282516789554097953140816291506691432460617525116486477721378788820409202919175724889227906661638419574483433646655652871806567259655798787653051659716957413803903947657182153122403036141962962859689776445440481896899157841732313245520930286695701404466943348480985260553180785212802694284905736444987488308831942290709994758058269405779843855270912286805892348059154747923855039442658514700025865243383320982085164537201207109738056165143555655840320547495108046484359644710321892813308510439572466525928999216292198538579754550117078411847560646733921240391289127185648522227314593922609182271489278726724048329902701645092356851335860135775892735041538305349800555202751761988030182981170215734205662165628236089123882827126574556668275559821918314940697204238228470094035841008533445057740362119532364757989802183998734984872536021353910231246377130568831656819278752075971376045501574809373170871569276726198150728885297505178638846308016533061131407516230983645752582567424817527025627337575753587983792803496232505693145137284239332875316859543131219378624878078146312041279123419490846126333814050456003313982487921401579429549015326455434716010653767501583574039294055440002285158118420605758082189848188622449327173655597148757342582377714826558374470126856207332467410600157384502627431065580994051423662826461258690270549490592508624155660674746927651525359443281050218115705770300452433159628449728645278641997901704255765235227809264820225864575291050490759338686620515601579663396516330642681921166060377751191377511381034289737032075704734976663491311501203511227973221183265582279729410680684929544737969014409708073274275857863571187896895793971020496622898522456102731296102985116811936350560113029083962706174029813148173833162511932795884533611003268668400904987307722180551692295342645503093656675931668651786817709588868924776046040881280561843088695781377749628388644765994649949752460628803575712884892659723189661199541285162695598368800249521422441184243557625330286896438670829275929604027866634113692030850247564384651367884352500839075241293827054755322150523634903747631127379921076492913464483484935359184538690624362962348356341044622006040846753647780821938250683148047630671131290974877164235555238010833827014567111582513201304271565485130594315631742166001138849970644842602412686654955730304569086917183951415244811873954404965017703064586129718419642389161144074026227860378741650643437468578548001209007085572496786871535733222715100317571533267308982876602214315256574237833299800831961978188073208544041805401652835501192805024395000266033209150557936372949838085413282778205481223973341477863687272184441261292920445333414107147895624080235607955376682306528892712709988282350565126729046775021982510661707316738886626411391541028839632801644176162060756259246914444727425248532379988839560435473032512154409590478379367606979740206011050162452585524451549497022341069722216148619316521062442968990186279761671355711617448360225695434032514943202730830397680974830967358938949660669497011077143159035577223936384213050046848825560293529719917172261153743812737302611862169791278022730546072688090876704852313426323675477316525604039948403139881936318043209980934394221764667640425962471723072193956036515691966495900543843947382869854144872344833954314466554854393952376896980972762190936999422093082751244801091291927248414287377227134791820216771630611010719236976558821109199821612463808717839451521814932176240494932117955345534663663297222062710182788352615570721347678846214337558664891313332563084542834654013586458415213816296305387608602783148479396945100546417556354428066120402091823270265794470832097210942282833097037222921542588926216136781304931848562398774293163616112874091693150433551382859099635099614232680121849238917118679966955859298613182397278073159262221002366037582866620344281940229436415900017154290223620245413053267879230124867500977246457166159083914198299012511118768282774549391142827886766324698192533708287135377099418440574084164518354179654491733114761611025699785897899186674753442174884327421909710530066778456157005142317900528780332631137532975114292370958985355592842309533217429874725867611635586389178192903398106028143119607955571131355253370248003484458697667433126272215429936556910825673934570831120261323979884338304952581922622036036322438275900902054591023306667846989418113864180333687231579259132579687522444433139847949651526615097028089240836473168954558947262415705953836093639324868321409970047315958678110338105047009888091390360711708682030529685980763904606173797193969720476935678755106646887224377148876668586287416815629126149270486518030106904554351999232310971449807807743798534433572507865289226496394414574226012934372309258889911854021065107005931296831202917571114384852523032936086838057519726491405495593513074038057948882380743318253702909282171640652484225229398601884854821894208555654241591312340805470054506235280313504554279754583556508094545785004586242650449003444336704066157241854087424563820458016109724942597636428615523805869432299220461103708801682184036443360351468575691363348852951559760454764093588278538744370131459145965388528752975182031919345625464059465400412035262208097868024752173902070858502420059574601793745108916285407166675625175414901396713957191336282586298410612020464268801949511898050572475948782107434542465248472859880867223804688069826057971877247765249079808800520922639945716107985329447813284321332835340442319655523992924708434627130971990384144738154856842811367233193479436906287584927172122928914748503040425716878668300394181640681506390940025326751399926071572220348497806029691236489016145917462546551007570041730793239381949781015868848485875005977331703889232756210224827306471035069722548799182195858674464124485394812657361911441146237536669925512444888150299441250786073076790989008899741294439021193096057492959602422364757354898775440942238544764846934250453461742829892012890441145030648885188341882209136425969235704065829918821845171786349588744954416434006154711169592060359860222644183013774866871364710192890765503270075241276586756761036880460591445989838091535840379401881917033946726087591073546152325925601918557736219120768424638171024983531853261576267296068312379175358879473638130642354534053254367333548325646766451868777976585873674474643074334710402900575222516114526739977317688719095205150699526097367355497657318404173076425633941274327892583845616351105082297883685237651303303617572938390390961002220858572378879431245099418579000343588669334177871676874138931371458801984812922649529023408024336066569359982296516501991954316891058978085033332552364096920830430733050325794900414845846652129550653053869940045132634218911257613451932045760646269948884074411485342925102818725427058511345123555561812731271299737377201652189518463456193200797984333429601069650826767804084397149862856758467681007985881888772416174841395616788830721269971108486663672617423217420700507147791602999130201116164685442258297367050177165287033208932678472128572236882535975842605314688838508013525385420160165552588833605306486617518077813311557077572519352791557270937476440750789257988407299166997744790706442444006313463075422337325391864711365645423943305652266443260369928660759810079495812014097685296585338669653518396251568209822595724474075182223511517623745797508639659662741101264207404883483832723287086661316554902897486434223772684500877845915056407730174318330480210584829978481087665901420562529699824042999498303127187212054776819300893895259764505834906294193549005115238386688231320930709083431194506086992371960189748022099073367697765583186840837040389275986970567305538233239534230933182568186777891695928222807018108215298200823969101033124592694412317557695410287085758967603635631239301722827345259642500006140754963489338633104083495784858934526982685533275667228044577604330299494459136044556350679098126134906764615328397782430306985799890045412329932940245870505917715932498331920175143559090485438471335806643432228956772000661946763408912919735311624229735946855204827813056101491807171574250092011008024658428384865341164652526528014569684650505122817152905454885440869505694143799914414528769398681195126025099418537920149793354251933452507313918215567361111925654788687607157733442171791242826347128536622234105255531543340630611061574544133061684021958650119639125131628571521111934069287875910280096164240383529182522620792498713449409331830942227046522267492911653584603077953458876571454973075221993222385098398051535689850331784576641359343032646503531042166598626297022652992297869935107591939804149595240001123405907179804397601593313465070810541015224597742152980334606524725796088083865991754208443867329880100886662721710259719039489517392828200649797820783879861467836086926542377595986369295202723675497710144851501425777064777539171178947774741263869798065132525712892865306821736245381175629543703231066500795915806348561691332503958126259593237097630620442898534756443669687233520893652980619960223293725714663279649533908785986999671230804435144761258826673204694293468010379286673872054610185585704925879398532914389855819403867048532946019871704492858714206895310950729816239079474716982072558398529579707958574389734426012412828115791376942637660466274368446101763011240321291930682821384112987925284188040017582402905338368284177556686845379571502691735196184917972413376965770507548787254547137884867466208918701568706212907636285958512875826412166153058231734100983943490724268449684781823040915020859195365656791596163843550631317758311173179798520846556273228781485875148480850189180787560229365482861403051507553609044786330688650044353327214164030046656898739508296695691336105572636656246534073606079139404295625427248206878373141769499460482003306059794249079500815094149995979779731005570115473826441594475761681929227720767619829151273782503602396294479860580486250766404595043077001693035633999980072537334386607466772744005960963233258087112469080135183037707875152530683200766386690944776264777220239625080451377976690885437634585965049867538509574884672782721122523488277014849786322014917075681652069306554990795268193929481688031149768049012984299640495271363769996390183122862761849782940804737234500232646816612226136340607899750291175379619647453721166929923008886625980489625108289565937731008500810226253999899123394674027092316202449117802061868709319430641470610978216901110776500374063074681847674532432791620771188279191595439727795729187752481979193624783512106858573208594258560605548180413263894067637763002784223010071943696485874031986985699879079526292171403355601714544379820301856840575629822204355279533159569770669402327651278350525524398450999608750660284553643727110299034534868637134726381042641727368678019315708164844043626141132276344032290641284414587747926124772598123779525558715298392030290447807760219445643763146475288960459848199568959789259823488309385615513705880386578599335726141531600514859107305491670246077101884309135507868277900136181288850269831815791859386396380627543124354522017082435240356347908710686216931221009082583754481183351595200886236906817994407153721814276522657422243663397197892282077130413047888216474849102714503981246790984857996010994169044833173361232977356998963847292104953672359114974559807564998711998344924023295644177870920377618484707985400959539272246742219041549925301668002320357267314328591479605751651797601774759564937761546873384131323304812914469873379570862095260920817082300963832447444537950992311514952190552605638646439121934751542089401776580056346013020891634250263584892196447937974006576762588093387242337241188585525079257173372460461206563100425543144543257404167254068572862332825169739123730926477202908233068101081818724011274651073884659491128916253101215759845160615030776023049121071483458798843193434642611056928367087689955885524482676491493473548552409632632613188915242616084208453377438326280016676560348679340019724192958415830079128211909946714895649450806276016704151936819112207607118195740612951543442291928939645737760452265187135468017666912007253570074324803636400894987160580253647232376570950318786207553112982294284931897514939543022443885702435388872171605221079971679011903164262627802256287832905099944857130085929233795643030712337846183529080569633005300855729401901491521545828840796959851713812387668461989393468517353717007748134948484374965103821386123823057101344842704672768269978606440919362327989942623321698781736432160694746392693394800637208655231983081211292752579428260141539259123719585070833184425208726334696923144508791641280783970675941626443028608492770990675849622302653452851658825171665735822471567330356996798818524973159341059534604502042093339602682182066306576519754361754520763540168523953248947653001181223386314001470099129668926896141367506092269134339889039054544464821923932559962160313253675851294054430092665381016878770670175042779496281666681176249886953790246364438848105419085858852548467416127428507532845572493153281686537619217474193123757285161872021410275441690076771108542819951420033475129576724253555054754490670138372856337099300170825668573051120302669368383578083031572741783062738136537006398110925447923255337460915867590592683075714227402765848433177931870398183560408203977254470820485564359544198366762478946599952754070440101662131373233946026083964167272415229259131485366337381823811850054570368449233840042405137214287380658417248157991794053964227214837436696056906324353240443108882925813645889289134006232394141891001084863922395880083324571543153886156957915872669952658796760725950754925074952641473797503832390253586061224148757626336062041982199220444733583336172042138784148707220737456508657970691354487095113003380983566559408394920544518007698169892173535524575093558017263319764853962878979389676294593325922599615308403336127929712815457444194858446829285690031172111686388296311804177706912828794925202398830765665310780437365791187261792422233152478098758899434503224313788169915762680401437753374634094359021279653464491081604043874308947105972621084094560034685501810255504462210883875531726481071209497453309200925462611644164280276677602160269755650828129883963489901425802695286712562451526849720669025027458120074072237305428476452109056004769037116819738136387410604873193220080168519679438056790987180141235915756159481366584031700530416676376978986726461585882875757870536765670350181802842290357040761343865406348587389318800606009635287203194694437076519617259472903752784896985297580559926399469335514044314492831997213025389646828623686379970881798514924763531929006267812544592619434515351248638232718996374689049884851940680161163663075045668828095731974119112655867241897968451788076156555614891877210657146283421414000699431988547917469818357220567296115676025410055099323400720766990282723526498741368285590853258389447860344429594046722912714577141265725653830346010620825613853126219837638864672908659162500271575064825575079865822488841190581138535618608763408646509697113060262979709994422464887770645072554794996739117580472648939798827946895021448493887412396371484094195345009072648350828684674941233561977734133870616284894651284542633400332494254487419767798256860700033403396368371369164317705743356069414711420097687581294350588681060634362256906022407515903777860047458054669672513163363021736653702574423746282596401644895848602309022882816822285412546013156077238965618014493944935515292898133542075517377431557962409076115649764071766347193131620733954416536050523055292857367423628217436452499641789991120155314153525788063354868546138065179379322603927313922486450203434505962854574048872580010792505973811070073153253685770919046740313732695943152457746595622452578755553519629982671860625413682272594550225536606675919927988439243656970259305354362666792038205863222935082591402397931079237075123670125551279677076816267984434469874007427358800601452197603890575892339694091014843925024884103149920825811455183402846285727760663946303201761677280729739244345984862298400927022767808517011320537950368034868920205184141676389410022813025867062259442484561577426781471441769519648090719041271114494585677444868761471476932168305941305243655108436618848437999621056304958138939425089297320223556645337920326516098822523383133906562232637954936067945682426636225105901168873320433797810703380658094177322025716236002964966940215441436877202316600974253602340876669756005850451861531662726970776169569991710899175009838858452977157248693075597056018699091738445138059323598937082385695326300167485690126262035277485265856885624907712812153358074423738169631754823301616704206156137799652810758504616165332104286900704504062440889218352687837349086970926154560657103590963381691911098082208896811977833697398983715265519807235990525447042641594289218336939083256661661665341214206020373303632375703584264787111657291567814610968486778625089169957356001711567783430433914382688333422211107702537143211852472480388651432663615776559117457897078080273977677191031481054340065345322881967774599123736753253332810519461587875436953323828666183452344130775610665942787268040635176441532586644761066080745410603127736153564855541016524950510582686523801591517207750646236446901632263543277510964401361614913427180273189910609551481217440017499748713314524389901485098994705850387020202418213410499000351629307577643617646189774247332511185559678055791552575313132200699947412324976179135002573853294716750943557935067142280162361489286448007496495517215149249599434583060257909907686098591620386833246161870104856215374933326158718351056198130751418413567030918146298301032066342396773739428137101432125861760379650742580950444430438867340239902986008257908309969469057431275534203243882598992846821806750469137867204380216472929708342027014458028794624700164889142450860919387619895587172854473513619396342560107976207211361454008483481299712951937628898055654569745691788525527928687947829257096391166226814599232946486318702603481960031845366775800604474599298947536137947457498978988329967607459337805835426452524095663346563314757717464226985189930945383130359023631526257343875176510880401999891106991668238070434279873906410081322248310733617856390395787255835633029226173558621179861315507167701946720517419386709879994027063996512787250214401666945142100354390452090355631310825104594041303932561976961193150996571649472477311354509754527069232962626872830013219888871693584396424011608444625049031750176507440053876667028904961224369993034921408609021293448944300938209768708179235432983155032035879335210120195707198949808071387684387915437801410705833369043625676561279443278402688599753864978040387444121727737942113907008437108122853764550369210075285858713873846091871756919926122637047705351098922926466139663687389871892140970767301083710560290074555022892903585453624981524689478521547910081429204975703475938973696524201365910303232230263317577900425691592697780747832034540521676940321615118776852213314377132539065894190015808924235858244407142915831107688271622286141001276877550584676929669869120680130460461232223362525282575497156937984396635510760679966598837645817769236529010657119602028155446514830005495261392773708629492836356613222512770859576571415562250161215081235772373955901153293759500896725827781273762214452065804333778381123100203684668162638247148922275393591357104101420016011168923062898929584297043647453145990598037618460369564600099061741983929814047763796711875074908361964709505261735669553369126278939757706342633005268284589660395348438032985992413909126990275867047500630803360462053147460225948619024442565466025110180620635523276576065953301270863080136318730150825124911411541656681341541154607921297457265225239429889794339774566704295121268244013597566567118153517627180932226391713826797862090983820023868379306003451081857204245769644522935158181595655136488123005240691336990723300574891155547404434241814642985409018285757605523635402951019766669748770789169884002330058709796585397905973335983457861154475482684019403279099612754598344524864866849890044361918596345725630420225859299267689315233455096665438857960303471821177519066707802381190264542698096784094869991189873373303420029973235145921439266797630391178334850101230140452314210723736854184378454059763537740314815127102849977869330179673943669864869021237245448724558372394900631470513986597661153530222661581554681580429738931152403344495469761371876426536677580421207482047231235087130428965990107388485414468929563457796312851222780413773725946330047433700932070485274786692663212661960766412856334825513449808847666799364857434938607794448637339763180717578155945869018775066620127817003916026752625231004387120675835886641966933259925434064910730458906310242764480583793558167257595605995153455731027899960299982085306134448646775346050220848616429510357827839542005891736786154934297389292267185998180163125155503639601686133754768984515308325265001895195430374869619784911844542092762474852230872780108350372985898657973426460532251269911974777157650879265658942245187447448113351833581978610809533873978420508598647087075262067053980609259271821482244738226643710138233493040287360231276965659219592263513649982763379849561595364951573506701127035693924550359172944836231121383863800775020418803694296031225148697579072474765968666760401494619697704656916346281673441053647068819899034157063994191515527274264845576435431208976399992549617375953305738866985214798402699297748012487112798152721707007970466849924227150555552058013238017864818896872423186149574533934185335085851883142508849550391935710237862146077901254738003617195953649201643233056382786904127702998808029551257075460777428541499996236441938535324715962668118631038699585715713044284598240612368135433002443651023187655224689909798484938870086495038586727186270857081364390081633898115914685289326601611432592549075399343759540508208767894726458747486338028129660579753154949175787167450542143704738526892036356889236848747620805308335781664685149459610202288417011019446651620769415816584351344901546663247321884248752056456602841202102876881057739029487864664219014177609396478208509215904717161805152361122656109637750314119102471567645615764820914360182723653964398324909619885129551870399076814137615684322092769262971238167649586957210553262486750181255752685224956917358807216260482948397604897562424270537570466185583425961725868514151687158689311845943800562762735313580260246645483301564436544107348141374306479720792725265454257298362740864671095757882710364227104987538808983184145325819808796341452567387247344193992259441097592265652511805512736665470020318433195474181241992734571492193325087045830215029115354829707572773469340542720123306567211550129610557761290463802911301059357514673911010889842436358014832085492877869501587660739502933344893931733930030466606585510330832057897263174978668196625917490645798975556687934975226536990525096085763151024718016985981614893357010440407873008379850363361201219671699241753934389334330648237346687576040102788184853523911597489876626150535262900802695730328688677490804447026632179593828312025606113567239035321048624176326550680689096755552524977845913237315845746036877818182374978475691730233318727103457457028075461811972734285547852471515570289605155532540047668864842304344324286320219892755206224838763944558149961542115782646570203586401980811738404274840554680964160117082496992606867531340297400592924935299780926584803266111897180467225986104986913040603812399514349386974993938631594860143250271107055515961318032490083277206314235785095426661340077578821488221827884813661076429893729363576217570196636426650980804121743031985818298357149236489744831514112379546631982285447355332691950424856386296501855468931482391081174750626435283052330988001808159847412877523322730285566659634631995848686307018812936250106624127698236127789214526580827432237039982050240130886874396208439454613495904508348425348691781258355488917970031173506769564633768114987582164493716112814566701349823048760462393087579586266424781976712571993247142083376091250132321418228244952052194847902688357917806641845320805426347117731525015179365175821527693691919688700939960191473661142123005592015809561535462041580583169223049332951036380759399030070233138765508091953031324220986645572709415681969135283633790862832272761817005085347549372286009164415374774459775567770845026830653879223926520623604753481970255785064391894529160550418039550767178373791963220304436557620761628382664378058036094367717590895111590648024672738211673670602687372369817230156224361004545040504021248189509637152753369920523622703766954270800965005648783102129533083435502205207827457798741945045396916550180286638293563677454808993554600134699693719444894231107572684369475178498983499586863127791401225610301342883843200133617392608391321555840431466090070850366396557246014014782239716784299844471407595460846178901561457874836278767231511017652043591893474540828083439313880790549943882893788800520684307663857801024853159942032335831314229994943057174106157585160635061251251723435486010250763929784350033074904159917415808251152366200220702826790989214296915458568914084339385308209171640748735610016954690224987490755246496487833658916732279698833318521808511734063617256240684401031528622248773428891598052320544379866917722119552523491794911708181067657316322886201223832851923756866360132615099239760919147781566157679490660867762199617833635575742329904107355266543605822036025708722088657094237468454554477813301165539650049157302229272460853009066448587533095326122697085318761590528997873429446469385615174099169779619642425605425667691376417623290765559893111303871909922079579403248641535990099902703639658745790711221542991057941373364267026255543872629897142896533206602885153948819341742085822150823228476549739389813032236751191364915207493322231604951265902392593658197712902054437541126934517646962734706461615704109429929341029150540523785806668258394600268508872462330344399913126859446034401270748263679692352103055490318615891155950896762877704792676452429677967284903868777264695950844382529346352649029271198976943675504039373959357521137653576459042114859044286486666159070470668410166321932917381977848701613904230838322452145566682043578787113993287401178500942012297500007388371128190421423166743578607880410120252858869876592108002397764984631740806327381715422342684434182683959279896020168925472473519576389801608160180946828574962377160656792298760670342482807971210397612334203664358991687498031932369447515616616348784266731138165975623264755150788484215300083529368508595219008322507002316046498148920179816503980948594164482711787301026240823896324579335280987585028129583053186767849166266876850667463617083909291004669654383560869126725333681025450497421831570221277953784242439073584289541970844550817774853840704949070220762878568307405127614796066109124395841764628397590356182025637852169543634647767993579789966993965616134579233377282328547100547640315554847743900823946868522115074833187583594977414250758243072703367062137713507472389373996511483389744142010171520572659198791849074196874682562908556020694572092203344548450483611308990153753447875192546763560435667802341289648183372389201661662383725220630323869656347424039670469786122434860310791728048842673549790287819206055485124494967629117704504540875531578323356366814473946503671105423693014756284729111932108786492145728263667344614200716924934733220517209493182258456766756066281430915970233578444766296139965986856156106370682428049295749836650443339885439718777203007613277848741941001579161533570062488027749540495759014050734433425039137867320882713867787085798483483251491167887475754832433655498978617874028206978966646308896264744725360373170691607054494437508032940677390915268245687237386052034702604716160637837189410680706745839832736129505939761166192476039801164908763943387298294529359594157072140166620028777262583832123800750278270701705251573787248256373836489824598891148852763414423274835879533097768872298329310572519931239698479246514541541902536591193752976907260383462395849014651964408132191456461898438730472729937578810468613199166365708434729274688797733827845294842785910062835114260039828885801300858069049031961551528050183269194296533016752542942816895438658188020526006230255815724650569887193509773403290976362310509303127408637404006798074637460451886420774389373907830553439269264598939941591674858622694184449960119896516470277549606374536644197913485553125952353816793197656458244247111130353016034995853957855504725052369528297441466829771537536719919251194898956848732341305996438334211951707306920809673674844255235152347578641807271986790407081120411039170123160887116183376375562745314183437940516624845735428354422317802099012796788978721458556914670110703004417507831800871208377086776252571450114617066847039175585072545034403889135928861356696846135384900162195274192964092361388566827241816513170991522826558582043295218552826852570473333259068291952615970571715336726710086224930186201751346292424607891184964468738333380512463159297336625530582184447095728934788763243868512859746118555907634062593211228329616105729502253530806384884919293062945833453362604184171335749144481751228332758698879094859748851595948964984136648540929793649348227083763497438652950964030241805929395241323276521238737498003073833399701684284742860152502922801546046128383573890272569207386040075026609384644742593084316479297530287480159392383416403807742527235262645413656259346383177883392116694925449506254359096189949941936193535000908880583871060121886897168954558483687389337095415855173953176639351061671371632494818316193022514789862281440580316122433930842381093588787908294264601664478954961080078820194878612043448035277042698183790347017347544041997564676863682961928535386314909964282596195122731840646040078841359891723674118399610509292541514955805119563553838905052099200293215564467412280671345152135822295352477864834809963052003353369614511735743549327585176451017112253648636632577873490564988842234983558258741131901038705584429076152537672421537004813636121061669160930827732696247001610339921259128501875455796222048966484038054429286832650297244662400093915390562987230695225649006252322338478798854643179271177774958182052072834866783490983138363032308717784867999990829191815573304663002656530396496887958598299244871084828358488151358654024438598261804825422711702338838440593146383081421458370576072666594234491814097210821644546831197687552608865248067388343884607276796501728581036244387269045414539804172489000165011439405549738312385086333263028949728787295758518605806461735807733168703671756662629796183570370285469064007177816259701320353207620465475410912452657348262293357790509235277598883087506134976737117621419014151555961981665216620179975836812646798771032326872583936621225068761042625401681913943183381847140154366273858053194965722995977591244063697102166339609245013647531775776727683795073012020772841501986382535035234811980510548796776711821368966936281039470362444318665741782143488107350057200661158748788531398181225252000712549581503177077080260497443986186103098630557487975152186918827000304140429791070598753068092994689338469609857219112965866752816271402381863055094700905926828012120203247173189318667190550217137391341533013022003097685615399832040625425314449514493632878930321534271663733653895138074235843213590075598368377107806507498835190126133682904706023966676075501360695331535306862328643848937248406905248067252133288551292744655476964920293514404605730807396134451492394874936938283587885293745515052187051150776771456108162956953766470702727164652203426105521853072360763688138298765241605780482531221104823972909170762575235586733903715935397025997693797831224651132504761294914716750934671248500202165298432575656750208840080083735449969939960969832623133969186329148993450927904936092386187298317427543791897864494687191682076047381993766710506505323246537987944102376714359288552647432157427721904094316181511430886049692392610534550369202046471490079917658750615384553469878401242185595868694162463327862789164621781311365141105858168895811860464193795573728690140274471158509254731795863685015923341757574482212065871114970056583825798085427538496118183487340506366464557281636147825664404572485555923662451883489668963758372681445528800851306854512991173455557451171804159402987064837580913654976500094111450517974790883230878198501238381031049024729158348938831099963127213500669945719971873547090458632794652446219291727459429169800622943502146798295394180881029926771493645586300382859898447342392155353706003533240174205091326462362324379196796114399248937686655422691505483956498078821544559705920937421565830434633652441574681627345652026990713524391198547922394417536564202497313204167502764152059963995283933730047296055704188150620014162253095957011002787673029996529919994093941317887896816946735923763771399461362251940784562281605274011439042392387002718163620983964746163677778257480523034325848132662291762959993092562058952218331391806725905501886305673095070733949544827225280474163144937651522989562505989335081853459594350758885604471948144991900094533904810499981252705301328907069156812185211731847960402592487982760659226297892973554317221586456706198557869960957277787545920839743149341117646357612029366684840909195142352619376802691316700000224326715141397849740386493278141033025764598098442226340447451413922540023541529902930209307093545936518391009754320502681981270745722273759547251045218293034562904141427345681757635487371015336151557736684887739589567989835746765474416760843852304257201773027949924873281641259430073141663533388199352428726832414381212064714422236300505516730601449400403164483051331063478905766884193264612718885907286937374513058353583788636353652712933261306855656471283964414890078137312572093195683005554700459908308740864919728576294070615131806603689509088086129318768995704997516382429521227615101574422828350483233836376793751541070139134056334566025051077669341312129662492253187156041409540494294185797603229983314844558194711780087781760346545709819520803514263046811642378392806402499459335957746838947314065326015240963380209421540554906369235312053229901792869300508641257515343317592362584298532549766287796658565202097692585915030189170869982881793652002447394055159199356899911788805972336162892495494256077109087239623427041089836588699052422329020347938589400536742752545023298931184775533619812190337613818361448156930467385950608540507808154772250738541510529061148452055290565912312715929361306531848861184345450756542043649685142985408407928205691767127097141482520233063775102576836117117806690396277504606480745966065956332094901831071202490877610759146927524990718470344503991738371917792916866001975836620471774839596628027390088432383876606134148963633942141814938422064778339469514766265614928809861396184451831084309424109079808609469161703381781099723676055818742599346527645194555259104784592323751925895503551831949522035494717387054452554557084840915908629688978599480805233546155124024229709507338467049133278444753042139828391225116081164831326872892276190873698205639627933960267239507398902369414047355516905707170850150226297955420520355294585067569949479994592308267978190959525414129912650925600319522656852517079795798298719598779246315066506914656163420772063665437965549984717762157295561591794649934655419956444458787760544536471100200720487051352657929040836895789183389336874805880546722689711473348057098585458009750821716751581823381829587420982189285474067994461017235931575755811762542792756892951491353538873822697919233755637022136548093076015626635655262798479045559923080687276649955785552935457386637671824611047995408072077588642146243219985008100950574920726112788465497937072764221401401587322657050325487447570683531925791572882569611575334576451896491287065667410650457090541312602392658365056556438223001924082909835637186841934990798212778266859102346091222606798504173959438333369945746396560739766507476437456048554325608104176036786453167217911113060763659787565038090737825247698542574974627728013205877930484052376187806788427278019248387461313791864325295031779462812809334817404881338880764777026934969449844942865053278656541177741189023573025343762608253535747844704537726735885419217448710018791517440106395741972888230593441319045662715474700079636562631500700632374762971535225970439652708768443690380078454171986637437956376675157262898875702464232206939525139893018394792275651587326965110066185754906863116871026941910342967475518563909646586415958095363990679106110863793328111039932735245062164601849651847628503630162989507541391558254643677648477751604898169219658314040258902215867983881889315408486619526995103194589208763180437830803833805537188937888019203097964009114774002648813752415531858346434505248138632132768208615484113830577553277891411372286725042545563678777970686274817666752728487145890340944118726638155632068412814101542245536692856153605456531670175411057289456594472003548882429041751090314625055220216337875434554093454756346409563949338072867941676548567894253661630383639486512070953784611127132061933747126905368707045398236088694440851194474504707884469670684975482569450779524434696224391840671274622531530533252581572168290643976927161856923191693817415562502001537711190900900391396644533869144656084435263802807496325686976388996968753941230163779059903061350142622335465498833764836845601863717479566740751144707526029963571625354171838381142001766816206914360813181845693287135651955635788441355774622378234753679534940447266445396410973126312408678177486333849424240363940723862814086995328006701393813034763716686494628714010674017377836318233907788390622640240643927874988063195854342808934909298237619844370208064473871891663551061414091397660357132117618207462298633951201732066787270294464523814948789809431006015588290022933310379855015020650914364581367135511031204135878786962757714507936003715350497746906048388988587968549410041753085052583945502834342095914304813545469284489197172745488325743345761645212501816562003279382147043851047225033445391285351066531009419839224145514177319658148632493633221157341719797345664519418940055726503690925415112511108062940430928758918171489374474738663384322852027289694459429185275794547118831710629858039971590656366240649701657369802578819529669313068218159221684403571960342775041277977478260817301391421660012770081971119265519416460349637268555145103926791454857851789834087223683005122263167788613764557768575737868849189729002910565657100418026166785322121946564997231565711972410986114498511516157910007211705121260592575446791770443811664427772433834097788327177994104144959014627377939361732500501607254466247258291521132086051960702120213533805739242734287117305625134626491386577060744829550382836594868322419061801295538685782607466520671148054697636759708721243070157411228019516110065822459316316916377834398987230696767109007098778197336053730771068422565404834640065146075718204429993761618550681759843803942378068797842427983271757046585365474064245265387256782326653001012217383714705252755017785943193628999364033805077607280214456608049545517282485857735827226559704132560062236740432917947438966530873387730318892887311166008735111396818715234472330554999444193083219021532257393330139004305625544985422536307632368968416120806586184582973515812305472211940188289530165905397021928502515967587870858772961581813513188727006697009530574336994629306666117676950973899601095034156837053008103068872295252769859211982377083123154541342670674372460787120347242078078153628699334836765705180462280922547246559886337189749156805312027390315459878963944506267433972053211917756315585580000593899162835684958330593413074585750124342975781405736387423445312125176870561104587584481653027600248682885013782853781366359745417480182662744348072372475818687259513197302936458178268627339165600974346503610044712231924488747805734665404053126776529031608731120972844692219100951361268535955650269919221947955378568116813337494431619325927305981652372591006518074553331249468612918902906422538972270668906413344325916440153848221648574294881837682089203776151133416701731987655265873016396359451143528509017236667073522849328779038992296345134514784740545344141259477703759729309903528033780723243950875863273963550367336576215738981036341820951634215949075032710646898667794998767774459446301901033784979685924516634476768689747491390553970478151451736297028626258986858105146685386788408371534207757193000230324835775101539522770935038373913127950776568450977169786244934097683232358328677004893735648652756095650350869576424308290920629528501260159349452849247596515682997261270819219181105174858131882470089830142161245545160520835303626962501733851805929783633112316693124084393129936332754428139626180281973724730732781854791125737062467834465591548153417682503216947931416700907239270698557622761585673370482456479743939058321024410531022401786266496475374036008333290407654866176809659097036317597270483869440314793251377907247056346989697851238416277373064313228896477203865921260448547627017381295750978516750236369962702448259587879800555460888103805104693130770777129192148672626711903897798693032366048532134668334973405114335147763259053520358982198413983010638957109318984542072288576960715523422316012033588907052999163579999535652328471033600953196821752126849587767325790854311680482118083257590589801956718838771577103236205082061150374436095031036067224179799293707059212894986085899884735421871256321158134535388339667680160462439006970726624525020522679481446160530490950367824423870251382961264655440278322057888741626964456869235955511396193701595776119030678504799178046221242437520623393610731443087306674015443337967882819100383948746273380890308834288367799785136225682750600592883711957531378882649844425304104374053642326274041085614497587250506447901906721490791064310747415108815497600187125536798244649770182979092024685700504568710763220507083651831408507817226735443997816324853568652375280262207088777579848076299103946072620941707426063240028774880766543869532327260039955111547538886520420028716643126008970374608383119690572565239540245651721958966848271601516195633720279745094730613954568857919633848014373398458253220197373167548445992466561038683840009960233264953195784207050187214008871800434046974293670670887270768361702081698732570367438774207890772643863925296381855146093678715639209779542482064164480811332989893244100322483933582655308479015807283810406775964666158568764546612320726415920068497297778779360242843294481436267997582652409567778082977520987262312898728574185685419220240597927749669039030213930223865082520265126101286329879625289996211318517890312260531050016064059181926826091089614643374371755838712709123065890399975235461555757566282193608447653981133711848996329196953750214099888553177589817451110660595159283135786715308028635003075494970604687762639124092338024799084290455066726279716675067101956724818370420592511779503156829588777266593581382902496823117603017089002452028128481995947918824338579636919910132389315813160681601077143611892308559175521817654492670680686000535722158762751663073718170536780450371181522309675323729121422023284570511776406919845044762076326987921139927721681408078488306041002555161619258930343135464048451821247042709177940800219471300769598371236719074702331349796574863912698624461149392351304930230480412450824281934706845473985041151850147018245331565865702435163328543509474632547057865116044064463161584167303569413726766096608035092901964800720355652872653194458368066549045928173692192368520831316584446164586464616189518388852014829843338753100893534089447410014293750403265702166081870087318252464546484282786577921160721863101414275614603222037460302755966280300240766085297477496394752551179591593355181927220285766754653207185300766079309386188843486806401759925557905779319003022601700918637986245654044106673215389743536513888175721792298844536797036214262134738447994566476829478809208084712374994596719812035748402160863150318216721029642439662407027392644394561965269406681796898373414869621709777378517036349978800461481063180626252040628032696698814563025273785775094684589503925788306872389742071699568456329951020149256818885670869523906136866029663055887467289758318364830669388507123305082990772174551119611418486423107435958057327336994147629968789760937071174553446045114826135591179347467302426566252911860982993743786111409397941398636738405556556759113626637878922547760426678374466619025190026522900055212837031660854316485024890961841861796304083711687649096891298449578328651287497409313022435773339874415304043532829538814419446973443608854557808361931351021623771055644085511164602799728145312205086029585712016659212404633993008357721192910274662980595411833935125400977794411484047973617470399684631757812954307706129717879816365159980028757162412276869066794254194069185056209823716258123380882421736819787433756184241975187070009019565644690201054945138795023240024459504076218785311589819764543957059563678619477545265457717102400467694709068099761173220915069903552224453059407983587027694166176164648940372202648587860622693547879682771653097146434028658424192521724053032303037959601277275987107092576080981578714328801870914284500571839247645201829224213911716802932387532026192648130863391195313171504672291874582940069219195929311903866970891605867201519602918976524357118664035625849799117846582018362710052553021746266215798463531930448607271926640802856776495780706502223038797199501971459429569593545359031685568873791575353462342684162537737996423002916130860945631622103215633620474392144805616847418004532086584458521710894095731742853043312123668083901569207344757696647820737442999243738569584498883679323460714868147273061297456323480816623796806649120072653592636726613853529929459139195164025816030257792268685124065835792891343878011259396057212155403509725662503222340759853359791306459429944941544416573674640986895872822729437307739388490091025318821626769090947473992612159221796012714732958961789414210830657584149737445727373001034293926064054870914416997277749326305422257605913448889902652003427406758509051320736673377684345207310716266411733726774443895562367805455549677454075797945065691367092708681968314635846765434676123063535373871183348839192842569303180954098550831229498866178184981604081336534644687652020644197764766055505322930502213293108636261114752862730076232263876942175965608109466852155119712759675069277417861569053380132616182327637916822699862256414302946000410976601831410640386583145917729617669353190898343399329754270280641964284891109638905328880671361317882638008945021449417295497434280655527774275776803781129990254497507428233919934390616674915884366832861916738808725826550143710997639148483152056648402938740143081429549547875079502959831690365551039530931052957982874450410776240271109347467855413924677542327028428255897791067403922439316495828448797540449787682527927482233690976663507693199181204792726777253110579369917640586134927173427900358796448339000029348947968438389809995552576570384577577760287041043304588818013288291060577432015418730602614387603691422678212306202862601124779474310050798623874873445384221674432918448149336959858758698052839547239621799446871189980037573763564770185323062464895542013247402822356372979583271533150217903904961042849345078580919418950719245494820573696096194032329955196335843697618793672005434376771845587771691746212846364995332605733352234675753776886588231454571510365487014725957544420443768777556033015244179843633049273375907726366192618827283211575250238443794537485269167917027373574108683044994775373841055648061711848845717492443730651951628096104774301540023852385647875626672241279673163558116354941927193159420218557999017995504522791823081175903491670123212629564800871623675095129731084508709974002148986240877981304754733103299990843637627166895967919622160488958104509523649516275938504633277369858519322298353445808808336552328885558550619355182573910430194027563049922105847331357164824293999833512883311417977795065040103353299961054221637631939001987120408954133596730369636197244520181719401809871100781835989548716875289225892892956482865985494254290716439290413903486400865595946741441528385050598122649629352341178495783144222637135568854456750334258942229470032794301597207666748746586631074687293490743151539981215686549648227481316474630978013137136551521753475897718617352898447725953020250959318401502086669072032715815856027424162971617698016898341339034594923913294366381895865476480046294411363371347061553739817901273450753286387474628066984599103528663332008269313297719682973457556284262119932768193107833112638740625570841349018967484084540934656352210522635530045727961015058446678470936149333786877980860817804868180378453749431135103705336484997952492231638338907238154468359739067877869550210205265329268559279060408101520126021941592366528806770578760930138811493125246515308009660357530794645586427789412987911297298068354066061153442736615706544576226101531311965391550892785766125972138857652468808134277903125577738317897361381916200525734129201937023754886918836943593036627358679879984522007319117844056881134647560889461532528186452287309200145313550391835945958280305717660211530576025654011269991078161803125578025548427523924727226638714942479615523093849255682401467156805757240023891706090924399066270334981500633836324909293753576381657526306580478205035684022684080534377625641414914514416749462161145324940502823463609652331729780230144164980455972308550336387524987438649563848086293203191154502632022111525544237493356035367493683576785746055493707719525465580318201768473440748210968860775457468915109758699546292174756003899222195632505240700975231688404481851628138153199920284707859343554915047051329295013790234833225958528370983658265126739026394689248322120133569750497922331821203112521665260430305921651135058450506626390218952389841493276268663327230877566937701128306118791578565422565526072589278406728433305386587982983540671618948633828583273265462313367722985041573057680231857065837245880443235798280201333793805927131826410685269507965020120424241735610204033731748821915465847853722102359242485621044347357822573070156418326299671362267540089798615461075734266623011169422741573144550878495751538021643647546974504341086535956397503519032798464132734385296334193807012271932900670777722805316919011319222177084716370049072386319866258223000694280339969873008643184001479677853331411140855127968468650883884762178542526864438520365510783958981204263197527851422563755373600802447672972695401793269226390954734297446682961528912143096645705287251994515402979328018555004635951690671591794004870416612468094701788174655608343603038559754919014483543246348546219589661787621694232865503176186596506153358981117058998743319450172364482256500248689438438833178734418668216745668735274126639690306241247779640839858272002288186689310550794551812897161682305046731150417201462852482038517149766264413626045092644474007150703267213212938032642481412122518795302168233161698759546568967370329177447927651776059023563708162448355494201259035694123277169153015785142639431388403929541813553224269084514788541377435089106755721120415215637054587424000586020165549963638984188732452002273038761038458080819237173177930357822922911746806537143716705649934644721092285386666965040416967219999167256631335646552643723353440052767001035265905934299085864778791836499710331074996894949424488809318087342521153336335074826654747574977050862558809576559591012471524128218018216319211158502551998644247489181987347188647221664603270417923829269229728808216644523211487166094756132627569091449845171351358176550006835690845035572005313477941429557000713917402212601341000345090293750307497862318609466472973154363753224848841903725322647254167365623745682902124855966278551140653995553005452639284064582055690083278940890476088806700797516865134190882054679876656394309369438991410751651826335101483140275244720789352471742656967273547655663356564063304034846477252352791323391246930839357394757638082410846379795971782608020753719578637966834008151436440781070613969077105257228690196186344622038932170653090890546369614124856052854877139598973835081088726332538795593659144056043903099969753055072468779741160028929909941181373593213276386004266776961896403544609391648127485515296987492750394978354216965168869351599049909476158151804228995399061747674236084887161889953194467710804793874296713300027418271099868659639645363165768875768399544889846271759092526348438736531772674030147741100392533914253785187835410941366445101125888545059052731212953958399354009362639117320773453943700669531404916781549607155369240831463149173085883370077989305409143073029695310319190877756066369626884744216453981960993335905228919206769104686702898525152000278302290459768864219213647801772161429644845946942145421423844265355369386490898204647311148710056968087131580943709019628806678703974616181971346223946507539889772334091549005508477272524455216096889181763836467149969668673822461904871106152418067647375132847066409786046685337967540592099655921043163562670741836531630328528952625978443565315448510799826559498821280200663470067508748249638915444769769302000187823865397333781515466888037044210822445940966101576220223215906999956944433081835942218094286938605210833775182798761226783153987499985035582945973383230013022814550597315003772714241964516740657386027293492388679601840034033410363845262275603996444722453339720491733440269284419736405667710977740557725602825693779473515664968379371907535472632665224042510574332535602097439396845691385455903707215316991713569385215109774384771715265935699923978522235770449754219102747855322283588805802672640526861728330671104500548063593387058950635989671545088604452302002682308497190114775460520057489668771144912300594645321703410768685100941911004142875998598828024937358749105819649613845188251117113774081530254815751201169922829824341681082541681877482801588790940294667878559182040554292334691078348524732170377264236810707722306315331053741069177938642249100117353631228405706650383665609256961396826163530746432654033025647721582342183726065299532014950319202092032399016637382980716010377187462154887276152370841095568425390563539983116090079478223385155982086128391511713921669249284840529830329632939506285704059940078948340858175747691491341203988588417292163994158605596298710144036742742257801308657690891730654377864591794068050479887788237709671223433669503948715842439800138979335196819951821441669043270478371820897063775921588298332579577844970714575041774165017815464349402746836205104442299151287066313180468555427754342321365835674063760858211678350090989412237564467625366424818836639426094230508985247068919381678338854581975383636988905999675744772041026165019847377018289896530304778412023341465490161136113948304027748322660353524230324158862465040952978513197701009706724285000919313144422906970645707806146898246351164136343597541690810508854364021085481032774210578846949452537862597876860219513547350668429648779825020089567618341044981905765814843437630540345262701598716700798252208510821491155345778612179558971973850649985632000017325424513352060620460506936554416518999498032931889396524002654260053652875033230106030192700403681073747758304626616942112890602834326206434969699162836057138176827963225589930907137085124767406943369527340305510593628213838045209061822452333004704743577126056103568717017781467176788470950830044824094544851122028656852327333154161903358326449419531850645740395865585181157531875385622657988657717014735234575987438158134936042470052002039152140678133634689755877950465775286092548543846809429700588098422554460140834187491431461521444806554217991509943208608159696581878843586354283430224172273471708673502003419171448251761722316897504098812749369717987865939518780616526801480543333869344655391810624364448217966017176193621698630396801311420670307185528100218016356359653354279211932300505461783931374721371928221908189993349792633569598118551157880252026239468418206874423682580411571664558193336164362338519889386804367436987675009298481508267543266061707446656327986251939852504933073007551309465134814576654760360459543929078621661141615027801753164763758887527399156059224303886954837192127799524420736290385518016593810420905752101731858530576329655435231905705998390816862492349339900465371628855607747837106034682626385430814645033013416330469616361030622185956461769908256043912861878196343370368929135321131432913618538667386737680925688644002041525980909250952240223538761005616070506347494641935239156814256316966943751784398743554687655616053612968635328142333226690333538899326061041756419494613098731229035570216535801180379965202518872727790176623233824656155856514852427254652502345224443110102367447601258193599740934944495964890462562340422029493875396715987576305106665050150518092443129387345469781612279248758918720776571476836471705551207377878572481385166624296784023126512303602406964703275861727629691783807660799878184516221281457482516519852544692423214719519618678416867479377050179451724669574611476922704051141359050252147194402266202010526987063503954279068806842072734503341692954717921938792072449779189563444828971913636449939404463172826484694558975098784608002841996799923880478607364037591210609788563609813260733796081029410016490633106663742194827941430881521671876938079047536377472350140171593830850269957257430728894152104814822889755004656824313942368197387717751536771027492921892773922675915385703222404078934578566307784498480322860127021869414322188025111929605913078044407169222095025107924641820748759774725973391780517795090625570324086311840893148200868804897051894892528228263714666637288237028746127200722266896515964138339220301013753620589966399139333641412961496122873548558299586092698698288038159271820420424470689762244060994153713981676302437455762093110622485538203466688976641501099744786863613311514861282797861922945727490757298798534975063428088935761849129752620653199198296634799880774090228544719930157853320130141550566370056236501472027571048105895577390156235718430126843718171309256190277662118578105604133751045930832037833921543773264755214524174860676417216803525943882940058144937696200066735640453789335471972185132495648019018524996080154903326199135192941717253552363746880634207354145714486264450556288517533403449300905571256383312100546253506719581265397236544401146671283307480109321698737602624030589044327480635060786473953075791252871000280032406217470546665534601318904990083380403807362774202663815689208045518214203227474916166855862003691104901666526023347225297292540992980356128662415122572652967235273437260925345875166256987796812389465131308899175188312812784572931074195656434015831720759867234170046608457054507700309560289599542015101595333433118277293597565720035629268296473866570302339768317800295299571226270278940991222447572313109339654771178910468772963662141971357712785435185453323661347167411984144749581932217830063944926498769722794103101749442736771891016552331559826342259120523203771438383195764772371217531077233516035178911886659767175416131877320143725013835362286791455250687091757672534115487120196059642513381722350518730427788488650642344170444416387848132378502711433100766781539886412432230779199743024932195365801826307957192891502677835721978916014636167203464359312291172069552821176029690812975446397523736804818682902530862264556056758061629888052179793453183413185620042599029783343754227228050393326440607721154888711704346677802615295538763460236196323715151406601167319643050890829205323143719901973209493998705668921440163706831728530229306340573877739598729658131288298530424221150212780919483725964777060115179695428374844439728634658469946904489905749677704682400412135476693795421431047834069334362054818763170548225181776943333017566412757964276600083308069379887250176072726559681939567464904944252258750963803968170540081369823231341154774608165310326047393405392679237732265541682815089965270592345542701710254974628891940749632582339440526262164273943989325431704615911541307175052131980775455661122840016512990942798172135962220761737496676689061397647603769005388093967823102822786504551411641209638765133075219714806116039480820402669423914289142153525576591223852659941204637527866269653053960821142345991920111207572738835037825974048622425581171869540530449533592211195294600193515911783934025534750469701983297543362467387527745545277430174838702710983433426510018476391273140889787441494622027071922391261744194209606028140316049264416502898049996408060232294774405923181496594752644480007566650738137318720428354859418718203987407805473262082422786011136651408932392097965378190739014273759705012327860385641053548633242698910643944864423697905411570224032783478807246512510866564137813961973539287492545379839233490577935408255887028237495174559048845392532252289628746108102410621584714143445635129657904562347888949558803689134605133025130851634439451299973079361655980372162869835604578494445931558842140327860885513125744163184651429753372648965832448781299668214577420027898504287338625488090588639864170058058483450354300419657185470055148560337305777292183588320866212541957407113296692731405985999079556154744794553441018272418963676525962937626052697171288176339065331208533616729859691557911664931939071633565240819774611952744118653739578303261218047470873082197848720354043216484710241360521338214053476978135466671727978055882511175295111821288971099821472432547589583880154592898768961633856094747293217547327408669680116631069090823630328008407058758999311595057643294627131863291650176505807190312887454515465562311836778872587196281685062513386891132924057724592459983222015953367415517092577033052760579544499340032231339357030816778735622865057380804159914667127803748118236610117869550608189137261074885842495868137357739454574096258423644279606528292684257962120858994392799496050269143370699294737272091678511709637560359357320434292790389665668442819721124271817426134636151746928767440725254732454001747449165530463731608653196777879303651831324378830544014745359082759650224636781677914346668826627968554958671688734273437108354122922712743871866124029722793792974607392079511975942640927905180391682498728097983368725886261232746744873413110391252382623342515247168499034612959862374471895281751656520583723263905652424530147595289070744317842424756555601126367684932263149616638572873343296052283120357304868633559088877907094032194841081563084570883943160703049802553835448209858544816969259297724111010523507668156290968168869331279965736189133134304555158450879254346247868900759772674426432039718316691441871086366396747361050966566083937110919134149702754343086057702514493362753657418724043434123815224658847336606939326375773768469017365151431848894021187974729843626608941196911689593837194950849047525474591554756742981268364549260464343195767356642245183427312313012619742041947675350647234088264860066448810537729885328810440547016748918533416326196101813689253660472669864700728290058672269698754456796366914732608604028319620113395131459503522834270048432883985766815715493387137681828026159612689926468730314014116821888959377456786172631545367535520472184308440513859002753287850366032844519171397311946398425236093422015733952743755329263607186338427947568214948889773696142968065759765799773887975944352466732106460452054738674733894269159053295296077959345517277289756415964310474540633849444736870680766141502695335235958780246871345090713551293968333704266961441347243377935086324285999722563356408893428933277200409794239788392090792427769327494805473185174704605512800768599306495024470071869326623421036864990061868590622262128859529687546686759355253433062605497666064728514412663805476503805274533687916458204266635516212624049668102491147358962188550877046844685089905127117184073626534414974792968814038484587442614632416165276191012289351499642408299343742253525507123777501740409515733339592785786082808323611377536441016126402677331091058971139336481133518277148784529155540706698144445950845387549954316360936417916376194374275321153749707703028601377593833775407939176515369634498021064258537881748493029182073390654705113906331192880765465340299820654040752333561255084965478475308831117184214913446749955875210042775725267838545196152051202678221575045054304810225986126445660881182597497218175292276014031991193624376825145426709940038021151699921284299561057356516620361790998800895632368708920906408308917780017417019704611542198234317704966836338850484287496604533145337371936077038199232801859319201808487463116375004387847149880973333707239576962982718843146136900433293541094053899258251700524929761440261611447669077778171836212261962831226404040704201840937102033439730398921497766318470073918045156329048524182932310542576375420254764137811744706181306455794682901017559716921823809245920070419198623804143832362798530808748469446352541668183275513577133636012194771917385253343312517578745221915743766907908004659807743804609348905845094203951396797540719442705121368457496564219290559223840258648236427265537622094965203300984288776154034946615849118737896546520831234651887907019211779067911964592082298272510077467901898497418453892073726704582144092380189590074595872495118795550730149060508847050286763292638995541903894298592224337445980626330994961288693454941658651147680905132205187848348343932664404070856976754978601278497715379029638360531806687855959115290570757500266068932184229144053005280629804787189503554256649621213512339284530694839621299544919057278409977926689356638440497342662178394792131002100316371575164336113752421752027228000912644414037893713360327517238804799211673162918445651880428896592581140384374341219226312388472067525287973708742598567719872465960491602769888375501227694008112542659310775866469046613675868756095949350149374559599631324811088642384862854233653442226939324734419361806469944082500854690352201325010629872843915333995389714102150019026828796755224133386357895348301429694173221036741474930286257527857706091781183302570799376140851945919179163429090155981494045403919718962797136409283555011889285896533276762530504823002334180554262890067342445381912525498785299108107597075319264633938402211541937728004147743372636944900220396367381684873584939352647712388235994028124823221803528544801113398525191207752512946479398945686039324171077263028674094050917624097640684341567372857711524963567454241535772112245312601827225979386319623346905359236295794541074589686790151150523278065698121063986368666154402746668190422880237153729264639356452722421691771273250664840284128270318916126275357308646978940134723289164348768738375804051677455229422881140430213821400580868898551841349277419149981372084955443098249727467133903811499276116488921389997202507584283784686275694196885712472604366237181465308653239307471269714265239601194979123858830389510846094212830000756913148875474493049566130623525745569291580235733073143291608486014887373598329601796475016991450992626773435980580221547099893411733747134480742211552174504539666112134838303504829055016542504759373945620532054359110755845048775665440975651093916129168764691894180055590982619772684719149925647862604839354747050525459397989759428034096845285998550422134655369009972117379776689927269776171634156029817010201754366629430631631100534904712287948929681882911161811750652146680561385068476556079300619730625241420373135493828197958248177443476492566604279106358686172205497942734475083684471827782701214123001931104334322493667131314093659448871013274883902484542288967066518525910012368916329022018214909028105040129121450190727837373364978284768020230508825997852666534061916575721062766951531118036197554511837466692312815940232561072660568582345482623834747360775669709360317534686632788845415181108056483525516191059126393333644783484237431553585697199022373494728620736736554708461357978958287425301720456692062717431833318404392354994828634219642990947620859692914708416185179293158843243165852921907688687916755815001173243530083063182880701375698108351301518221452787012782197762424329772355063558464452631179467190391349071922790859095074277270088752285089490989805457398184743871905650815052933387008834765414108200101623674443707166440530725953107526822880996992537377923096126261530807074777930993949959457628358449965424207760646693473185504099712190789153382344273866361052433734101759851937740396360177654399280159484148839310859639938801055693092958625767588901550162132838151673675903992335329084036310742106020591194069323370008057907044121207107655639400081712967677555249769170149502169774110248993073899277497970383014565300701385384871938749768395223912150669678456723954000989886170502341087907975771979909663652248549729593926295215529762299284964090266922108595898552642963101493489786834626949855321972353480674895855379637387635079167601540315726895115769504153705343644344859005683119470220335079553440233195521783520600204919662605867808551251487313912107132902035333500009955258965819412821545069457204313363104753596895920782195216550686032965181985144047451359433323689771417182689877540985055998484738288709961877103980329912402089391976063456013046260705259623122183217226509555243468853403193521907152175565634912313059200295824072623481979024234042692084207797818705445624267586494681040912855003610598809312199010085525415982216109101231096376097052354909131688091734256652309922852140056773882398427035271729120714669469694946307504184754142672197673608837571770140871980202599133413346310518367698294147935616131607605950002071784373503949770052631691374339419195942691603269843464711271366767831590322797927198614007776914698049450845268143598670591657500036159244375723875663743904930064167948987338358702117650752627961631375378680087201941388943418796987816446191660998763632411550325727521051087070208237333987145651575679040446497650000057171209916683293729523842327897063828533042331454867265906033463784430265390362755762370136429721537373765587603548553094911693474990027728626912619403202708319630025976611254900843402554267420883902183619518259536271151079098733322796735519706573925667059665830093486821663049118353153851051792387323444233514522559730050612467523484463646345950285757302399078733845237213574737597595113940260997293361626354107881758363264139637907335261007304501614245070240959429691781610026447944812872981383724388118984691075330878428334159598114586314914309545779376931136622394763051355742895248361741383483445742009846797499821654622527213036227459953514161820892759349531042556195836798946261791360142880569130697858695433486115862284007524945952269836110966447785223244668447564479472032859462102196209364154236092929322684002890576357848721513549916664842059709656835708589971072033856113975719550218842054646160711387872344765691261015671231291402202009489475774970983994182512859107446518296830009009800321484919480573888337376514486702811470152017739479082172058648918306749218034641300992533471914484810078882991237656895891907599306157398329606572760838450734518070351198875434603361967687772334856422587639588237593371251797493948260494490578250341949586238018092531637664617907175444024893838971896461816423513719827804056164157030804349123060155524194000012890017770379109881806579705118697294780411406718793617603046515705397803813524219994339090170150648085296820042131455048697527566243979624864891978612414020947335141787313452828295048908249897346601035479524286518527444106193240246564112285818175411056048182281654749104584572365566515237023160729555637903128209504564434786592154628881940999391573047708545085094987301773404880912865347708024533846796595657726031306720483924647945769128207374945663623944022322280385049274875927107501395762525898086611035855479725609757836983942277095315778226815977299358331281697823219122387175007598543379829508267447850557459524356823748592876254755100400601557489664938784152096186244850589900192024998869770574368791036191057012426004574368300155144992873438093331503203160271960492103374227844946989288719668852249918263829260600191841090791197804008774882777960592777379996549169770146579236378352811236661973515186747253683681113182609911279267732437242580946904073749857222211148033328738764392824090197322808024030898874708163795444710901609536997721768498795520042529331203726681389991970253341990047102179606729937986238042274124336366506373125937704154979975696768247182033987791680769825077436187385944899161052950137197575146886636871587326193125254605688174584631559144548034044426902288600923907241812045658891272227570584533395729037638706886622124911274582902057711684156498631213518281553978201444090055375569333861546957252203687643106177365712302354240242314285683774311519896420848837808175574786840066575541195676861750349422158981319501068809289416874333269739582941323647127887433508527823945631529991712766935782826024213505889640046452390011619116109491945205447842330818096332595573535771226567616709103146100777818639009759678790324438314243640707435273608684239999899299482901162087501649629015167299273901571701080153539725161979484336624295154932009942710692004170892114423270906566663859687341393607390015651950074280408882870560018565296966920647468522752477177808157286931220077345147098389102238126277619580514504673962989229387396879512544379319890905231054711721130488337215192757947707434491459681288413567345286296941220518258858415937567912035180352843621406174796098065710371198787970491186968064025378950325728196789324738238287996213249424810134463141597152322808261243506645417566213176635458645414252022529985476607847512102604964234843537400125832038680266715273022878392901569462264028325096083676955095998588491763680504451572216994287927940874704968000846670732417440037416213226023686637163642276534271178350301215460277667264140725033481643488929299774630191545857899494421345055124143459970943286129177366078184317935098840325112392614861558667637951195036846734420244245254032866605183788599556763084462160360942610353109250557920184430935248102582833262764123847182458991039165036773672096394361677426521879447038374236633825349554883456561599729115968976220465631095180185399882738037239670115490910335203032966729504780385158298340830855025584298957631579285458032932143866193643420503270184453317946850396520175963966652098417985857920161931283647190092195004789886931062548829882768378099614558769409686175974415461610956306281190945443587840715009635524176439031563741674110617755472363823901902373277131297535855327478026254591081817974698708752471244304541912356170377140344774841723094273969232006369718659721120442830116619034272405577176174181689295347655517662277871243411784197772102904047415026152204452808857009638926770857913445942471961537327626439856631114473916158453147087221633718042333028976550635646509678984847694153809364071388102904901076204002489279591221249741399907111445502447783923259938838544513986317002460189913658751988608303301092798202606221252248998447641519824204299921814525237892214399379853781587590828569860017928046269846787530529873597512413594621068903748194324766597105203052989703920576651383859973576070510389146437494862217083940091145689765624396065692048008420886699257981299743683422375749328956383454668774488626096948685465548328874424136023557463137692173421452843050460928542141042204835985727542885499292569715375679581302048851333111127802487039355045509833774937442464074998456355358981206255824213611766216096100472559375687696922116775232497591333239805872233724194684060001514014936230127156356168973527422344694729267537176449942482633606790590584518757432832193794962263867701920160982658825578682155525257895366614829658312845261803090658359555344079762940148700469820935447196918817538844740793854806042229448656375580143942794905307208700304501084365809670426220585399040460650618621012572540888179198858572983643005823711719317600770427689847988213883316080421242506235173308104875028963519683331889385521902469007937557384251470961369791735094050657546770877625935803424286106112707054454046619871501084368455899870056576550032826431535177030555337887421375235611228262647079308171789684207431319147516668573205724938049206494218424779030945857145543545828954258039010482928798201522049352504352325127257212462905322389789855566764097325959125385143916886145075242893930077076563186607066810942223106973134834155403450787417111769050430147418362276442767604656774209431355419722267382109827587927916155275779675990775273717473636642198712934445054841266860795027346015620340964969377877052636869280496873984690753910897204572838888034299968483876832237584746230280724461317132760346261864444195013142703097393525270511410059271285430948809687947450284877838854709806419252656934003170616259337850693001447637612144502055030255726230024418094046666580822439757981852771953138878540240450296557835726100249354943418054926248366873687825640239229620643726424085559467083656846897750910478665694054171464841015121919603164811878288236915891172400303164943792212681453900726917169542306241336649881999054244707698808733761320948503691672437925528358551714823321423499256402207411986188405086335876538297253878113535648171854099303784105034878092934084382270991500386020151625115186317891674113818946863701899338413935956205353378460828484927575291634181708746264296329063432401798134693977218819694546257430107842543680467799001328744535675251333367144240435628464277335861847382196875855893532931142754124155582408740397937539055142691827421482243265180042365478392653305089181773564725558773087890172067504723499359057095590917963984436383974536983201070997402502543221794982180756823985533034739304867196055792467134444389079608661555534040529324112250791644207269272300582140234337265717057943662045073153117521757425624086173189631813345283550084781210644923953412725062286059075593181805286999169263477120782537545357824801008536460112602231548881417380881052633783652435853059770438458988622991904349779008669199704950982841087095017139396729864471688951685741729658553491953686833845009518514769336644961536024358006121184270481319977785097830780831148041331056160326518555265497786213287662492787195598396236928224141008559378108623802932311516182175369974764149672704365188762455975852582213537441815039864424612917591423965494225906230244344956681801032145641299170851071262627922647673919079220749427813340069381273240895740695497705925997057607891160628838339604387864725024821662996350350919634199397293106845320484479191804293146952039477633090179113161726367513188136460270344141487081601616366211133465462138030891864750461421847156590158032619358325365323258734464713680701893282962941427756235322006666846284075794133842310084977925911683758337689936318309923236890152040241186509006563830698074203259169715251609362128859196395923658567922262659368529771915597130549570885084841694181281195641977158469043811118353699152940704935107512636760068611214999612700256543950378457312538082300021091731617730558667218780240169570847715320489568662804462450967239129601755925570638483318813114424342089399343762445690504632092214334550116712530281699601699028953978130819903743325822757222491267380978839674956795385023697624354040096420387305525570148524924905418593879090734276723866379682505962498670950854363323689398806431614028022127287717900862896459495860221777718855050488744433868723107705035045243224982716141276540095761509434525032504757494919585769780420599322851621686201102484007164353199438814505737167130781978784066433335891197995503083302715191349397301254193167368926359229211399966139257446870586032040514895938461465462133917013883400480123790226068708077015990312492293227533697165944167621625547419185688274847768345510487026755600565068336662563728567692729800378056353816675454944183506947905732376046817236166583564639652713333010041111627715320550696719318024317728207107088976337435263438673290594163558698951493744301395145320884381489530693221246404660628348228412673004819509205144809414000366816119702070601504403896289627594539050453446160036645246275301743663603534051017046512851297080032079362803927094928964646286856684844802251593834369986032699537587947516899670490959506306116145507536383032643919531807741698308458494577882761943543275397056925000583705914072711863156484416259546884633655591946335929599342573422363062811925482575167084713021477229645336014567337363766840489595688169034658682619661953007955827462332207196811545933562252654409194667318038695247686362959725201013209682756349529153697502505896226982624219115968666568721841660973753326118008840795582553392628952464414467920711916540547658409757016735744745924425395113624502230774694466071442214987668707061860775281588191076116097686294154599920208313169481436925295321898977611746454804955535918975748118810982832276214395742623284975081266748641910224317123862090333331312804550464552454182461306498434817061493072058652273439668234735446458683778433080236473187309755148265519870326845436142787578459591591560098832198471233475347853263863859580041186237378673726503852812636949714544624513117900513138414130108392379218337194750857419265759417950255183382666415329998711661283326113818371590388599183638116298679229116439152735983336856934690979586067046068348354394196788452585193566762837712883250025977078629365846511711597939722444477633865096705240655029743517509284135622578059809231047717052914837237924852241936411821167628395267273306719263516532518198928808186575573208555528652687293599367018355101935812403306541694840276533746772783001162856926070944742478927108849697249527135394810019558736799000123446250608469013095970646155534902445894889652415206342704348403072747809337539602315291371171372507157534464205163407261499216462094262424142837903103215525152727617624337577108983660316994378927631737407000151232031357891707619457344324492486114658987373935383605669688255980172568319856649832927152789029913076520885120180233573447074481721278262050787215043094045396799633490544134610473219577143252203447276239285831058016140837321425711360305372586798072183043463723186754083512013872161691989503710149987169357643245044691916967111281186202805548173901637674342607402254945593322998079000001354108042302518287531617872084496542287360946380337412128169442307924326134132759785667740012211179608735440435520246575587441679005338749760706166330809185884356582896274790718192275319918748858730621180858824293758943415570347167555380843284168738088355978874125702803639027718832112588591022319585202623602283418454808078955103009634979818458421530047290545443763827963540196190099103945156318315170109809611884727545108887317465163246294514521143613564231098831352655509971801368367574772085327826860350810312575823118790082577375012872628892538576870048511755020458905292304932911400676159689944852652207142221743762449961744688993195516269052739800208845332072377944715703462355995091450479043450746411675419145303293413693471794625813575332510869053948928573219624399794368213291831035780708451624249954331858482603043466535363959495365415028736197432592980431048970043565812887696476258885973387808661143852525450865230423947132959449957547467194117460280627352082421920125181508789374922915537518756219837829524832429919605435334570135410933332581301105383307684668211356342402132575442658829366313057496921317596872065171775416742342028507170886998663455235361308364815620656923067521085254795047098317878332155592653922332078578447768050109336896173094372502384454814709395411371644242399420571622728441251921313283383602284706565941780819194635571375449573920575322262613608872383191328072979625260690154233927058071921514690121239706220263411749157599172395400660330896056533152357733650486641175871545127927649357492032092837115600930549113743727181098260479907977351971020656007280272915629011549858050395190323420338222355530435439511506796295304309884625606375868695668761743062334471017742588386399775620999037970779254785001497091974711151149978007020540543186001075412477442361067991757055948465254856257477293677448139087801778962043161360397946970031775610722103662694634542364563488397065350251222751247836184600997178705345942438515977372501682830947835449206356822106662116257904737382530603814902972270822578106550071878003561011148872388335432131276753254477924590191466554269940927801313624789015492440527693998595234104129718726320729090832928173576390881704375243422587678266683214402657942456890033752119057828203928879006592304154761074410888989438427898951219821160576454224463460013067583321497692969731126351287839107507612055798550872193257986421687559729008131168467630590726196380400680831166824134401263530180377737880908240551045011659431787859347455732439214841202476599629906196357624859688254167147418279838648551625016069092774167031378507016303275675577870534281366245721897496769688716335624617517151159317456403718028449983714539056042911160694137907025658154565417167726831028088496268348517173672824048500153037513493785196113923485108439871086673193787561478390332440831282736662718957639228058909996207990978141878099468725732666399310285889032708162161373970120901334029999096495306159495553532178511272068117200885075162741335360529978323119726350261576116945386267946558125818599627514155790334467512455997117886312240928765957820168702995533172458478528250898773665588803179718432054655414910460944463604286722763133598147036718031905579048647825138574972901424650176208093099474014920680314754462413974538234426094613970644362190639984603138141683328880690309824283772015311994942884649809840673993268808922520889627871904404766506896861572494896687120556368717588787383776608488027641370826852881988981026533601053358468309265660496797935002951994182833010196429181261765756709367957169516308916973074978116062336941341674260393242654202850923948161564964067675274900856988949445259126160687902757161026972131721201960255581369122737087545143873341417713646003691560948131305685413818205304311983570476022203919293748378446785162142683629727982863512411522507325771953744141331696569905756052499258174854626086437733883070751925724366661903745271825953360431967147960053430235833869034130040832630590813726048747121745757976426060228046548456414620335117382129679912978923375657633004690434589065478616347041821253106350874236009548998387772913523411419017208364237600682349992849477518886873895193038789837802100752609368207047386340648048636049840786150340632259337231928381784765505970753522923198235065123783562548480656249430876805308591492124840650026357303933588251150247921809082372545730061230522030697339530720435990701137261290838533545090972412913654178925100992249103651592367033785329554415143551657932514372540962563154444759246547792987815719119999131387990557345880766706829298134041438664401707719532806062192755105320188632156106223296417311981402404874061600241026943984109385194914189320375536787827069556113918327697311780187849658842128530169778083805435247790457497158605764161763748244873387690785019728964030491364367371793848068418962390301919578380457158410247841188047205247035387644179017796977636083411075998159450510839085731919482632113953805666607840316302412525970004110330939571190549461229144860657791031388716572587228312927380726696696844736905166563764240306950483880494391980962116803707661432063079282854296667517378953987443328724007665498641760153162593501787351498915884966877875952947968564217546286644115628553416290617367499197281522195357027176329057065271093436061184720926085124706186244774363250557449525253100637186304493816680216273395814553668006393378386310720664986833048390998368187612408165984835160640266218622378169602224261861110069397568763063197652205889431560661623113776064649873305651584277814489270275225177957804250080188077272866225036603221547843435028537819086911456283960586043994516427623180815263345052308956547300698780076421750433198924579675309765299290699970139286610894120931941578602417850909907409581252201373394698841934654381726746791183032797641905384604159713893275233873369228024827994282417123916532594322362390368352315716450268605024633616242387900677072724838890361010791953056699408798650972171073966719391796996292450799660174548627076941321121612043265248217764794108191035090228399694602092788501945766211258720786350003753748070453811746156157319855562718951608391028425285976096889701710245992296960116668836566833936536855632084283464850916629961787385343475261529151697732422221781370685452414457750088387888795274686401626715195008271967129371677185893950690682449593999650419096462461086899297665210691956990890075905616084370131025899654756049424255776297228802306870062133969824352040383153505164419904844755653171284639308699435877502132666787825826989005292605041854396866345139526029957023565935773464555300152904383619954988172814293499844645425098858802829512446762880696735954996502133303179323579496070301429793843628181315974003070286103389738135955193946938395867983968461003149884034234034426454298031599188533806069041154988501811799680775704796200597451420223157305547199496799214719669890084347264812482670376581265052026859101336589705070910950677120280592995794026637046267059573399009866963726234698344766958565681947450810107472109964914906449325999270624466672546356340711061100906520004755951775862215447254552400548610693656475778413051442798084449369414499447534966619423765314996618961621872020178820257073872123540811572427430527033269323562722484634289857065144886390631523276010163910332324009824696162603981904196382612012221502900488043280879343338058181446614663667605888650376921523336684722430219699849884857268588923685352125516090089702779793026332090891549903501173117673011880095663757673043447434454123396370972160630098303507063671742608514789200138649265705475206967092302201642921396079953792786340890547717567301273962334328192068265850348773569865612667661690221871331905988596399247008423429394647866970573205134489261642877088857203416290380472697714033255665972014789697881065009110783864982982891786003632769515010924724984754009678318438806666669309990221249080371529799236628853252695008535484282496257187064344757185257225870487271880902167938482785424749386569712668283848026540295777817091462371689443697780273566309292470945059114594277636432563843883813719194572315772679902034884737443388503712084979817093655426881879385726733215058045508285788559243917122982711538959753063900878748202016368007307517111637496903644216936441104974494990729680180570852148037395653724694099679355215215338669369949292053839443973826034855312765989845707107310274644518816141309237297281552524487297211964492353723746838492614656137981879434494310189659675078547449705998581357810042528441672622094748062158212716715705945494032663635916691594396726334155217364519601728224906269549195672650786164820587890547427016718177358885796943579618493392108623127377279803081607452688377373029931605487751955722452041201353741018670682382714652343842406604299472281284724937570993539067496859098259094357268795923638790546503501591261297119139019046892525250288364541962873289687937525675471418890858920681278475633673193024949671025548699941706526569316166649017984514155633240233042999017800121173819066566177681623304903259272189972557870803222280604834636197577272323668548965239660519779983671316922947264991148598005484606725764850571096015826280121595334396071496777743395967121617207583038980055981698004407141469393691248299938058981059053807958130485271193043269319852225554092332839047034734004410326275119236772955056860512193064613773511272702631057326353760276878547271619678824962068521477339929115073545847326950766983841499979669938417570102443511023363427198169915644209598788420642783312168569777998441583224954105160142923646318034296658085081701865198748370418724640298911956898219434807293464166818057438160885074349101362813047735589631881273940946050141453399249008082704257059835442000570451308509616784311137150028511894621860896375300841738453459712419609682055359862096979228025890532521178412722781925738768324250396684826838624459637652869761572471476429276644092371386499834270810333919119641411346449624702095012550191637960459114759483100579331330856067564454379738237667695915216515164148751466362342280196037598823029230586062740125671395833610166845468811739786327503327465292559539059801129167584315958164786914552163833490592960596910385549494424912259994168397062965627335869803445626346575183885887034907973756328206472829244577662822532482869465464732903907768408871098245476558272803451679189231642234297764133060751166178960473690876155878883232483872953250160690325981316150715632078779889236092467806033202487660090480618590792347083590345441174475316292261676236611698672947044500499316780765816910646292461104189681187861359858770319966284606477048175721471043212724469480544531278781047200111022026657196731912291901799878417571008119115060978908195091729693607414906170563239655443858159824863234614697044879825665602270491978307316161147980125426631138995590258125105099955040781041400511626981699775385878825257566515212281030320227652688744439516925839458073475865742938213897240761731106198944259329367083112928977640698650548223354063892082103541465954343147090358743765494688370988208110171117481703858417559338173381740224243648434769131631628401116626837849509484559467054118068019601928002729071372518586530270596236345983433866221376373527535507558200086232044717642383596395986912897685368508551147743864595326012953398215720044913453968965978658446896242937381486552674625078610659527090524887147047993998481132087502413254117441141118006221343406554336492949385805246802329925381484824498487586287318337995103546252020573677820280207130656741223275129430885438490509687501541830792297950997321287179013149423162493173897159042083212672130872989127668566928068216471386915658011628511784396013878943106066880353664064618812132634103026836732049940112169456811919755216986283072881138689978979512028772943550797525402197929138645057962221063798431608033897324014681011252331972457412557349694150575793442404275326149441150986675523982619899786286310877283592659598266542519472328290679206014425084115540841362969258740817857581624600907295598210714611998096481170343066793058403275868348059451002630365813118122363756936613230601052110121616577576070109653551396552674481209656100474955033329058980865792810464245167294442096999499468642303783459923757736283822165445168800322252228301439536198860610835512695599781190613055506885804210933422899618758589910271402431600882644213433484117312109333010152353041479294019085271636052480981802958865421845218101949840617144386052697912897145551177985194647106791619556138943807984160829001007879877443290967931943249116133787356385526069605925583285651325374562208868040189173281415570374761769235902323007865217988300266267908417279229611239672236366908129765831965408111797622129538742428759690209261751047828129270847108306064461450700835246524230816557557029805310436589770371864277670576864158988312330464567054087244542283796855108105869648944556887996676324600295072281613903602140595253057057077615276688956726243845661154470531857893929269529188598697120287666540758781068941344836040402718920237226829458353441504737260367837385519395510961983760396155625294288842525461414503025562081170412751854630542965465521015616880828664431627946981525883089100334120669833600601035138241131892262911106924622290198437802590180116129238186152778580773804677516079478058898635933349373823067194584413650074806019798545895136997951812308860963270123388025081851703277726059018408972262656123764360964235138318337160330530067456001109142940650753305272473443484723287118564243920667946476802115088520092553977372057975287231436750156471231925651982297963266691115545782147906293462857960810006681085706675794433278873048074982849165916652996121783888731621669489142817018846133128073836817641539476347639558368579485338302964546842134729154076790774748801994694505013259229745684138734425652857082318722342014414699899264032738232410189968332577196572818344699140099887320707716973871501522338199972654469923520078538704852252473098756512325065338506789383665320696353815551555580530780607003786716671489578362201199324204065209546276266352457056638989151863665230494882935813842566113988233131951119963800327639653787903939689016990788790653108987805977105039993445978716570651087043093540022594826772798562238199817678607552324690200512055112869219414838746747419615143223560122121854973488294806861968213347028559223733719082161718843945051282547442585203291344605832001528994996904752252498318694247771805581136804137875850961010130250594683573948636884533790695059680954989149193204329823311730727689810333431202411033013152381257661076421700690785100044548797906154730833120730466587478698627022991761055621649790704257267476407897984923996914310233173186730337775236293534643813590889124536137834344775263343787623444477796354682306726332196892508302480839681923182347941286085377750912404478135252146522627342947806778201967347006516353088083898215954333104743628999114650274657255342173465536442466975736048776177406826393791054428835649712267636580213605601115821349885759204870911635454921560669303554769815953810736251297741644565369251181443283468219913751825042399406422132102070478110268281763775244795496683863312543353138191591006862820944573245224087688258887564226324153074081181910126620684198633667380595232418506896756152404447913691579283667155543101287052975229907977419568179016570020244489360487146737802365244998927397500387841520497386826360220443828026896465757153320257958142337699636952842621988878603586920534431643820034446410823583515692970935557753167917916516144216957964988614131197843175465191532781002385863678283404934912438476320625027902532572629225779856571769331206691409265337551875073255409129368465486802887664797179569968759267057276152255672108237293092243894400150468744610508060529921564877347765092534020643606717650800951663395981320197629384064156777491652970003937712848685443310240173261291698721260483690600896187772567943646394821627163104779386461030627192006353427095106239399368107128469313651819426878856287693693131792367188091374686545815221482858920958683820057221926757012341158944782053485273265172852545894273114973286995407285452335663043123165770659594764949639519141710271966144298019033962812490686052830734846525836114767504272739726013883356444283191416400256521805298996571892399169095119490916967722625167774944945541261310184353327133317542673917835660539894473413819953101209438062480102375266043378259873188003641575614895892151640842809931137381141903293406399571849496927880508344579669271676054654778946358265289547216433966196442415345103194886924997101659550361251114465191639336867725380878632999895312515901750686590015740197009062495080127561415271288369965645857530273824770515933115632299615647589981600610198893640797411246953739847647314277543208115584122872857426984411098329698708754211401245236923859832604707602853053079714847376509199199946949772394609163663723311074311318406884268850001478560765487524985780555193345634254847754086774049278733987914686777826736697789157269427653312579746608239154144689168510672198185628731347554869708268187509052855329997400946427280470096757241210681964097057726619437174267474358976848728667981771901055472060302765636615622158793119150867827091075214280597194272907827344869336741865844083384659070626563305678742848235083984971649084465161993816666588570849951428547332640955880030966788628780467715486638761664520159590275960645204206355727082559099614920440162474882984541134483340542093074141408896257961893973312011503352120255252583842339195569280342433237606243663996795277500487558310407225436422950394994588982955359524871933503075439673603994984487510442183457791505382351100346944632907783312611901560079590523870986493376123211721241849883071432611413718259684270231273063616402677662750256326086106292663262820310571840473626618258044180960585733521820387390902819851367975336927657485797887213203154821410163844422496424568658731102348843311945530061371646474193359943650315799797726192752131858263049061766215765152645971423225934119023119493547792727387465090956558402934601674242524896254027005855085044176956876715907036954064994149947207388218219726677624268961898266359516342378445534832102367641854193898476255935093466083153346452207971251717612992511188831115984425786996737156786082080199928747645339896850366680818350237512551499833510076370200225677695861816682033942484407758263517324490773113982038553292204309663017040775329298099469901327455171277877960130847293096844613933207245931751942782308806763587765137772076076089988984706564901023100513226014727324601167527953523237552705121283225062037343401840660393288804407880439787283778767293165645305747723172229535159148090653254097676217012773222619582274334359135564169259733763989564290037883113463034670527787598858936229178729174512697391091494788945903124580874560737438872816447067177238248490496066485747521683062971482090522341725242718472859794441869632007933006879405941367000008092741238183531195851871334746680468412824246428020547467892135688129568039498410785832738108962612146491076921408910332812440972104717277543576272686764271080457529613620036843835250188072438919816120938572658456902003990970098640585075536810153109514408799453060649241338314956034456531513241326400163919043789915040476820195076108497695429649082923757130322381574243274476108473048354368034706410918468889724875565341939834516821314005013393039793523704189144102066990985350911135294320566752336830691188796027590204213944263069285633267648496874017112793130892220133720919645326556744943214030642813969517937561399271767509661604690066813710649437436036232867518666745422154269291815470464166000205553549708763721807829136776079936684198454708969424241044270206148583488211557470732880720072868864269349108882529045742710448218904997713110297160168051640518391090160748546429914865802941533447029217038373291294065234063314327694734760061793588191956693662506497254291201178575785447798831387733488478672192799704190833095548793263816623419616192898205720092020873741934041205940549070410347749197706844784815184372109783126417281887011379597944693919825831763077890410220536056672357611431483234696428369268692787168541016602556179448203513480093485327447515396431153072809457154664067138128330967583002214442647593812762390711787127475776003870749028367503507025452734516548718764781997044311569700449053977982682709881131124983140788481082263669082300761943343717669140655268930987008168252607423200008201294592875710277620213256418895556243121570961034993784423235947297815857023733603116025151016681171187528278900962524248577461237952687072821236742698846889320446530921732097623094851614844792741554471920855521268890521123171168723231523414072310801329039555420864417612785051008126704073308635639391419367748438430859089216147543654942428170923295840780595690759788450061006966523107259951748658499827413671632632843907691385838094043596055333456333471943922154918698846486765397246178736955423629127816410316072139528707296237107968948860468134776221804357791752031098151016182864130365434332435986395790121901497038237348678517226022969299974887015154004829414349102997575884975285846875913836909389331745077169554518620477645774303058813430660972456597950894246577424064856589100023675432918949497119880188079100875565353806804884129136323607057823413770843167541412847437568937259576602926066845272113033194027104103722585456170137070824966285995873564994133364706054093283850427502707683192824299405173684846484624322224151088123280801822395900659421657047353030058075409500759098709892877936959897681595674514284193564208757939006283250597272824899337229741441662733381165428813289064343341555667982071539034230874984100233211470496924790500832911595107729641118792981464450988567766186382745410478034742680361989387379119292433536025294871693723571399523694562682558093279121178513119724045736614502687127066554502021281930717211620512120656956708845410381943847729473382293642128995155872421925522102043129362493011956149277431874358314809006613337732834748606710339645243200436774991201408371597455639313586855828023526030506550201702282931527748244582342707119180694154474300741033304563746294487116000072494147291482425616422006006219392691893612606866281070939016910789048969562173221220833765950397732345854599245090371770038209571400335345815242136511375833988103401086154039297015793717866439717270204385999576464403627961837488217459696138416230295901032241400525321598168478688199822447639398740747395645782921177253859657314227806801867936069159272628740795977004865707911907300811780411315185893707575088050357741534752347006432195916399630770860465039243687028571958351052474489778809854684026984466482473257656617150245386159382196783105973321906225626866107538920943910706351617404432612025754723013702585283869224785738537248432251203894521709506487478575758808666426256711550873576536152581504248302135362386180143562756051632526457868679441207062946734516387515853726071732072067567316637602308455387154165845243226697954702407587764909563879344387252806874017428736153044409759813972326988621607441180522044854998166324157598732349873579190257921256208093514035844331425283931090240298640950086040840009900687124137858088427211700719574599413891160261629683602618005816103401966001015404561948730801706247660116882507694801046950915119323790029718906732660378289663232218708940507246491836017556033480074323684877064923458643393887997790933692401524725137142134282650340368153178552477991155721714217367580560432553990940678120098193271335544431003521930715031085508284515288550951060108404586140455784005561530002741055871474155432973852646096900708610498122021412052888479702045459688897770499193222341773001258155414178850725704092722399714324133483532010908104368818367912963376148458931437507072318378194154452793607145908197391420162203536577377517237053941244495965878946045508761620253214665448322344786306749140582591867917160050550215609497962315357025547666938237251544466370575314148938821902508697053385856052505216186373494158733172241935732269937653247443545352619362910504074444017653815512656698445744858510112992456890125195700109382095223723927669237361253942119872914551386940522512599622623314368222639911942487111260180147318244706777994610941603601416399171593841554057536364455878296377837192893241373184131529456179937405823290831782174037414750978032490734558974456519043676032390043275854846473313575169728162838586248446711544401330877644101921310217010722759852632069061746549222182978335134169577973199182565950921547765710275695331726574989824790649812510949987452872673309157333150766242178760728882124068574296535802890780972417012901428056867011396869848433161021760712527555157424041835488065426528596114369834962080394007642248343871204794083877629089133588967408022135479330792422243648881262712964881486378168038309053325386592770355825247279437369089782632955107277591770421279934944897866126377385975701425694352857644148476165121733649894078275422557147586546266869412273058136531767279920195257565367413464352087172450683949853358105464290606372953413299048289368656582622052801478207713940850284556956659851486419591883638247976069329284175471506385494721853558705559394922073234037566306315256109513439461760758500572883131678685623330635394249881269049476893326402098252251874240160939868498161392316698740588442557772044858384284044600275291613605408671807441802807406811972141000216364030072167312189521051518688477053804967978571943566108508755711390375488569865518924953728002856503942376408656157915673373628454284585973887073673125446883227876931768837637502535776732837152733058034459942043036985594960204319577497075081737947268840519433245702980006226182259928097406501419614882903281944363259711874770301881023556199557860530800384380458794164321685379718844025749050202166646838376153940359921366562546739885369161599212372878609708281231792119647559934730480331025713858557026029937155639327803280916061329424467241110057252738733742902947459840487867705626791656702969733232502766884605628767653353788570084266442417834166018164560560298698947205837859421461259657245966345116025171049305291968379649473111702199220920769593528949185795043171664970826410032317209694855880064760372190333381760785457546083751032891464782151594736021721292067695028586496238471068491988910760620371967879022385622821417029024498810966882174592222132554861185735044215470739426455954108522626706521707941778672029286405407216367017325699695583707303880841441795014544324423974689610047419919311301551275632884206705340830989934371512686683830159833873143646730925034094178138567657570012558162183907345324213937150679343955119528945218609425101722843764741785942073954200916851317457371836201064919666503896697809560025424699059290983892209418372334502680407172471553834938343477173935530901125785870572049243789300735027561116770451618053583078224912867135052004651840405231432460091233330291949118745770234536964561962675889418734395674000327218767471355307965448905017914043523321586108848911295765684731541511293344023125368117202218520440130682083794445947752677032263708342116382385475934431415683923756690265594390511706043532594750646446323280583740787893420424041596726503443587105538431810599660326245340387072499601983227126033102421786583661846641838666017089667540375740649994518795644595086847466789979199085273831714392290151292619721105989773941955404881584171174155516187265737227961982097505831561015037220458814953155508671663131968460563796116339906617330389437555566127514788882616913373753862452220996494802443394337498149393128257638329146966660480902038214621388665666323050527661536200000988059470271835632682708787463301432451678202843648128556200219871703898861437486751543575018237341961497214749187840091284452519660007944434223553680337662986551185087562228515717966549085323682810804793408534476392269242990532592907534621611215294712356151244779337560290659530041445511130994854087477775132226857155241255050418607786736211772647469579607877287082774619989558309018277442293191151907469872134857539334203223262991418528312835385659151787726494188666910473337124854294077115173959683537121292926641946184981005050040919797159321278844643714962779082779782591291375545549602379890700392903783624502534233215226950074048535744457998404602976052233695452039466217988757065714768856341580274995096718041626852197463640101586001526727824352092529617085545914169119417186239313257708369883660068901059877344824037241429720582431271597474940528054810995216445460431157959926060996768442403134070874406813471695120584943362042224210183295523429669639768534394749905386627924030561042694412547508410504475004362623499268266580120330145199763860186164795991462267747280018243477988633181256625117067531832305656989468292869501371520138429649652796372998490833113263228401271367195707850964124697531623715172363409808827020875105418390969155093463651414422045694971329066579178193842774174163247425888130712150016884693009468184472448938329059286930387867263750592960699999633054457016222151687217517729156359865647711420413577194519976948674660065642667891073503529457565837808185135705554850232695647644161482355700602884721962876096761553340158968890603552100316090005304196667002791694076397190492869054450391610543971090749290092713605276236728966384971336513774792478747144828293875304072620429078423248318917918646426745191386173638986999736987307832742989833620564397001861968296901948797460184567406281549898729175918549629041253265490381364767790457674280335647769195224535754069911933003672337586056324601005947468793848940922421504930171061943169863709070710486998228741144569384096383864189122111382176877418048203771195398104484599305818501500302768315090822313021922173401138866854212763775924271683487847135049536523775816749642302468111192501834917044201701813227949433625605168860219802362108954957996060928284996235717699093637693744796540283715151881310760321863641137361904264600381003095276877912814883277868146709109015589192133513667003544352494666623734032553747562361294143212262278234717740378598213463287240556185469133267796503646481437195045533587529299295477536425335036873210431778248431437302484265900251841835519604103879657042650115226618287698966939919768865754745461741384878025405083283194568582390322868282994393182725799787321074576124216473280531937791812369269483068622004986078692959196471211151705099665192712579802661887237827145010735983603831579231931731011892497655800057163716595963272269193817497995395054480560787567733337356993712028668555503952804574418499730764137960531881106939421661237965783240695950620530212061375633310019677516203330241550729344600233268875849873003339518106120768462801955556657788916946597777163474124465648744009319614090622891618484787539147957972310508246028737384516990235487190963142712156655756794519866969814439224672680010455108364436079193327764453861328222784990087638480681348650937362718663699892220851871118666072811466829011228868133665298389661439188754647446263063795988747503584864107388744474429099752610442332685662510728125006308686568169407476177374799045573417767025214019279489077364939520728557379596416385182891028156993161496827579798679081762829151469840535777995461373798554617879330477093962362763456165566998650994892842538501125011149084365784200974168805136233879593420783423428124171711233014504198805060100697101999434926673907106216626463550726997531722642793686546772541435674823354904795624275653972400895367963154379874367694807359334649057965991951772569861048527004441099123918916495107206484560225723757252942222935750519527153842267066083754057138432638843780038193185375902545890031187100287041635210971770251929434849385484975230179207227796920662880105460669261927778350918098840273063788312019569101375012407922793234346757107051219901762941159459942707689111996594103413504442289545793428466270465770886373955185115331719389761831615472623911597042606115174144921074773500274411336738628359728950158286699781840838079409188980655236439473824084048388075405402549637510555841488226995556193425152741657298741758183478052737242198420322870537573342211661651842654686989392078613258704517943186033616602369444333886428567809016508268651776720516479156589139709547238755660542804495279606008014924542124228077009894512721753918249972190096460437827267075287622233001866079487475972721857052722792275229264102681148641375061638250733546607410344262079318186668225365830819936437957526128989327299493623416976931787782262458708531568570225560933194791443366083512185849780098690501996414332914674358107833813667294932743508457683247792396593439070301273623667846014039802991353195280444426836520950560097982225869309659686178149462950143827802425554852216407735328274062742993442178876221476078403840920897306714291996469907604070378938776007990858076986219702173057792738050627226641275540683865759217621071519982540000982535244227137810473566747392426920045442894325370930912321458153184746770099543860044912539504287923154582875391321929912748348709670092152905067070864509192439062587519551921160940413474177669800268615680654863152708425205393379385556022186102707303140190164217763472757439978717971856887280441643924287882472688532539805674109876149442812413364877572791839293450506324759083606416792086845194046510644393290427281785637624820955534042327539911961298182319525891864058750172412895991650348624247904809542319387836248986868827943579912016970513217654902546282287577361607031979113863883955032353547299728624511039370302785222587277281312800534358676982375697939249917600086776667328605019055001384782755994177758064586065837409434022189641803677424711269250933999437024670019240235710480185636454175540689938691151562405015246553263909237944793512143705690546422125730112426244496406602718156566648895390355980386528202265764277948260709386408943160868281812561187274063333660678529930490541546836517589566959513586528042663110048952577864134363713914461872591869100567206823426221925572001560675143595239784614061857219171711937793263182624666675540166435237532155977793094205750324835102770327051469234101796570059633569492860124420825230138845589674286778916844152265469789470747829446887928305471470548872613882684369592191902071305954950622835104142091960323294291151376224340383000860403431793000781401056949445639245518638497076912521796758555914263927770011653685254488291954738653593460076959403528352292491896017836683873980514217941704470819925743005469410759445715328449968088149868912102038423178200301615509907471487129652897008971588697817286004800723726677264973459340457437178006031113589304213594724022025910889136856027027319858177151143701672402368146498914083890442191308801976274799714545937077577611866246288024181295125773436650197913893809454150379718525566378388195449263229767121300668968442834879189713868784182936837701684711326770174588485671717133355045606533274045511474759453165602282728168446328058943308137888938052151571813381104553619376971510904567388974912575510380041670178633344862880942142497915647871541725812026742370638598825271845011317894385782907199421864770570554590481426904005200022158843921057732601254874754279669553561587046446573610469150463719546034417097189618269838646406644934226136121940273895150395629531042620757283325244979113004631648012702975465454915649737322280149103013618354671455061564091716615294424508748400450959509870587401689471691300833222947668863464511678103055288307152059862878016968583130734499637030809405142988504912085974871987823660465455007335026085675042145789832187815570438786712639396007963066323425409474950884318731028524982311241521895005900525496145125889032501829873542116296895118572164331223266130917835660495216752684245371114236525568868683364049129856867576463535043239174001602924404524435344668508208510436654763684238680888292696449354754505228078748208594174411931075231772581798689043363082424886689708635419757953856389090346605151626059677681944770156112422488283879854368382759024925024049105334761733646445768797214706088445964468311323665428379780760283046907412286570807003907289988570795300728853344397310965256820087822132289564970870257708923681609302687903833676938258472185580801134428734961659330432749736366879772610472422045337329958411078222626010021070516258429611533382490405665495873899691667440010013396938730096972096352470671329647525004535154302574411455822483014954046267988620076836484309016008890006338676953953034427545363573459125639228632106759303817986646411709753936243649636740707100749454847235167915067380407668416470099980906416426025359670383873551020016919314494652864156934278880170729050686099267386698957887310136912772815583907809334390001022628473940769485463213219273794533588116751575880317443278927264770194131900164065480170873838754193732172901004103353829820640809106405511175017204735778461136174797301401359496828903207846552501521256852247920922111392114554049967038677645954340604129128200677099385476211775625121775043757558268547265084804313858434313077148900977797364602175344474433244881947856227028919838647615466862165477645758268397533508768131831306730543525157258882326939641794897842934687867501117456659228268064145222124153652854151235449975959255238208580018573538709916677756887590641862266059122731772683760155647619593415204661195987280958953385447759762807911376686588165631606270205606009536232892913163945833477529075380913983690051370176451264290408251919575848840825540813710890474234400047814781745676762194404253416485626599420316478359103566250748348918981619374935748833915039763144305788992735157978973216150598416408541837155772829751308603030292194855156923338624557771231887699707225609172284098158409190333706620584114742310863993931801007650780995196120488391884114287672030658235905162199366535733776842788466366107056882526474822444392763216527099009043415108795244078574596929159360834227073404469025977325524114578970910860142482649663836354646374615186098699788886059475488522015495597175591177456406814468176797667735923749829713973057460421209379679689504818671663600006365142964398140293889929766205669070671148789470102383757843032832784850366182339914827552007902938755438818654165747177728130214054452753773730708976447266519192056840676262624521972266390329914653263911790659458118094002130990760480757909073843726298525843463114585149326682157167617592256358276033870921138616550700708171286419884828685347118360630534337761506380609263235285079173186437336344974598405601547235319631795086925996747192999894932381714375884689506976263533435975285297572221545817228687227858976902590228599574736977986842323669111859131202106200249823374505721446883302648352151339669835067291198187730850896338231569201730664133950676230095958360462589285398073945849366602869068222007633057288283179669669479479776617260369486504337006657017538890092636655829401295686674516494792451051252759362018720754281165775156507286468165148535836899584419419940020833781575406074160220637291390622504523031310691435647665233531695486088598405368853554601619186562886387976500581265457812877151059880114191538779812079737837755629119183355787952997769129120469208087791138859582460414008230158308570292766219824502655394245356655648553514686144817237213903644321108022516357417428020919314866766569200358251877047068603120199051623577797070155470223771337402594032284895290207298786177554180503388859699500728591792833887682584799509543924590659164657304107882238973036088786559186858636780318995176816318751323491844545527779445357633429364010297452048967396459368839501977960055952939325880696595340121431100450410385658200734742103878223303620181389394923012823728008567334072518997520157870307369364021599795024950648090367748869428234868630500237262958166262775879637651062682587755163684424122812467676310050136369266994048742351806859918515712565493805202035250241435014310093890812659723117583582415677017846607226931375137920634614130752235126142135757886691628725808620848849045451193188493062136031034004951948716149838407622761622490396378599317985344117208970665715257308474842719669055600498612397298822453629785751054793519603276377323032713971395027354907210105637400480658398312675110607863381537138826422844659417622465042443232987218197267444052620177976050593053786925080325692239823289673812341601106677166629383944844030738771810063848872261474483561056331997708346999107199895597601404688599041003864477357273658825433543356965002832886817681772888021406387170204297668769237089648956416579596815990667931471729967423439428308833655919882566108605967238178776289740281856665482702698209248516347522776859525601339949903177959108143274736922385445319371006433851157285621905822212986061743176336610838754875104013521517444113857737258086246514508398559553347108930276643804930102178386005780356613743672300834072437127646778416947880960532636632854427203655394417255172903505386144884925242193043009189236229101250105739498198536997225669383420539984316819920336165857762997633292607242239271675220346046105924317421936176346593573946203166145207737512405106725966315225692655378151164172917584166782748301716210543618031670584577108012576580258060997926924689165530289207865366739428867922077086957374546018008896290155643879000911367416001842148459075447202487587663290673840204193368859782798567847501203720683437490742161376844163668353004367919323706556586471251947437734054702419931023116923820867532827644097026841484387465965352838937810525629414641223334953479128682545294037530766134524629279260415442791554891436011391576290962130305796559203737964311931725416532604191193837382333848773590714759746579204541712105420309576029592938105631021924749846187013968657494274278537941168304285728363468093411898340142070300333900733589869473869097299949449440155901604261594962302840410165176930553775208838602687049123097802494561385656944401725054607382885024385885353430899996372076617643396324891907732198407017676054765135000590430429209859483428304201962953138976878074068981569002310486317873370268587165666681177333563255891208771127311813727136027713885249865685051674819216587345898316372595052312884155594320665953735186906828540705649198016852600357208939344752187248198346688642468980252288058503540770202161862102773207803231061416300020222863644997174297098345456869517541079914146454845595877930992301900982535052567642637808382595115126431822421404135475261348714833174753491292095682736358306462545384950024321025015455859768222298721481694837842716623087026936935334465741342563230304697270587140472265815202455237727167942929946112677235037443353274112865739592866741684864268885209353749060237908653922783839716010979575645078925366652512591340249950348252719763134980042672844154250591405698790864117801264352121875838053990639200353015474730120916865807162363094366419745101250551644262053360273719216496529769032525071281845331148121943615102688401135766582370061039473420149643548532783027084648644670120360627347298552805319592283688090227646601136799455880855170648002109984037181634696910426183463323082040103323194060876154016208657218286128493008364917470524279971448872034209245088407352236752367007209919583458962169571814037431385230945969673004421669532669156982530797948265742960932223289371081615511145152392914461771499101834923027297546110041230407048867114480785530573617474167815128997453268855299155737967704877535404364786797316751704116722722504411245205594017218906109872952657386547516851692386527553709019116264068224270196350341493299764369992139404627720543474806804432371738656344317581891333950748916894371516532753681931814112012762267295220466941111222133898528630452648355247170860197055779555702520028378809858326836577313255972040762032709897455073869315602099646615280055950562932138603757221325758732986647531527831946847537390285047048821186927860105790301311001383664800851812580551706762740439328633344631565077346526516304358460273530572273919148451036778589850424757834638717696249220515392308544568682611336327114725844522727919954992969092106036942278966188661960520742383683179967520832655533419178348119836556360312056402921319554111052432375635088939506588177173837469152950118045765384032416031285587251323349053452360688727282223181093083392237976880068271027118608773241901255791250957930760594005426352318088112123510962384992427331021314275683928119462007284271942374663992684536070173542564662896916253149458266919598021582177091956642836251687943345455339012626175972967908460670132749909833784156882376714156205895451022403534710769631802751439224799303438786375161165717543360713766088559037763080772003569530669570038137356757033290910856425500413999480985048451194662515374395863058343098454116301276944668757640908827667866293604197887327873672061210887623429428114450867553191505846939642109695882463074433876850097509489348181611048991395029734010259391447723343231472645784011953530804147142377974659006668552646450617579248640538419798402263046172802905328678344742876635480444711887484186061446163409407140549152835597615512517228817737451642385437620424431374863273137397079568138057913054331282140140685173002000834397700020103575344966690167474149842012446399253410328258018495629027338357475029960386219044984871414209956975429959854846705958174494886636195373196533834736693459675328885017269295679786482407015110254017114102911528517724801389433285293197584318263280543390324145871830247767074024299861628625332502048479524383567718089511538625911461756717712640716827893139514908339236111076928737932844894531647349080045405329282640887122029867455944356568891980938831301746732955634906259033405662001914935063459350527617090839102442596093580494297899959492405757326240799125632980615262382912307689139843672345779923451858611709598888709505303338059295230218586332959607400456258881007946188542099593995322710838368602136957529918028375701923945414308947800172726352931969639657539737260112484579699142282099101957303930104464040530016675987739699514655604148299311648761974843201865136007493106872580990382526336590122175707732635496001451052958789270898371662708073853865447240374593872917140654885044264714886428871037500162842770456538187841793756628909747473238878783633328211008895822501824704552234980961370040585545885423604293452449089510005920551503447017095682588474198810706544431422290860012830044193304630903384375032349819397837124387988003157772827440212490160069949759449673758191774346823399127714467875897659922414040774382739296788110115858789901588122659331875364787878377142977342883061796285678370397955291311150479946778970570229900350753925939974901909647089529505153604953963594107722881522787569624274938791911714109228253004947348756174803008483325874478164776526856952543958827045258510080940488653479439403519867635282177784026339071214237910140407949784353034156802028821582734720907621997272287123370071586921174017784269413636379429445090343252483544263934188658271111902144996870377598092308109055372491045538775027495454522461127334939960735280141101946428273646035961722940707537711097401626442364818087327251658847871606048970535590089963536219116356110045283137655618059379875424403356917670483936849434517878613406403697611981356593062158941906899692469241335635800900584424888112255282777236169435979762095209570367123899657992691024808734651886791666217193098919968125559211831671458117639953299913618492066287958465012935444144039310539927899865427535335818945905272260149676456260569553366800175716001632036542077444355626737837865570126760177914936193611403310257224226813027322501633901412934535468610354967099828840863088016706942878173190619101748356554420510285630919701476478869299252850786733066948801608825396468896119974462954863450209678308048269375186919508779170260849910730153983595941289565305381908806465194709443118884300342550655244151210128273203634244241859847116999638394774660461127421286491462719506776439879487085366848359312212985216891550158390896802104498942693504117167635382757914331350641096717298746482045849200474880026255018688484881802567408517237471672871548475547203673421185520547804812255470441686455444078345298128355631353982513060973713025933766742077465810588695710532242561355336465232027484032844375207762643253719486060557986774540306852375453693555151586003346726044407360557170466551216547017420341160945573290916989528599913396795286723674718944863990901989460992845060926481686396428329468167615028901144896540337423724882701272627412934598660914961915250291827813362539929663475475880906734300445991225551953588969216074499675699002865782475201265538579517078562627387579755804520668842036283164285664033641760309401729573662153407321085061648368160124195024720936203466392412588079372114199052572642816587249088640324128054312536497166656803190847959935756185670744824186148244732728170408528358838147333720796619152385982391155817453675111874495702900619873131087999237658661708429379116728765909185303464607109769422738461185165961185946747412141118410517273761886453018501613407848081132365198290278672320279363066615362686026372170633281348787713601536243851940016061988099530359772672974083724377180045269489973638390863438702694905267529306572124835506350263850106909121802006102748827432622641509875013192752955105035127984516010277965610216310659774921634153214854320631938176516527898755003702287260798229918112848841507467124675584646173944358199546124752812619959218959738435955838044957352865864168121975568036665686764501774045070174060841281556056208039473646033311260312677901852183756311667220700585734750822341875512516792995878192656779947603714474113369197971735590469692551762969302078563103569764503445770216745170837584475574817981327819270593008083089498976657666316179156988637624850423779545631137665233441632783625795815099793638283767690047719155815875509489916388477293239769735678482405029263367974403345058467922396540050326630991710945389568915666682296584390484766257644361984730837747668929621371358006589867284894365963116233801623968455322845854604601824168311741008658615774339005194766836117265642225197186468788687515977922541674369168809099632629719751060393138039032216153913621163816943408767564647176759976283956389677592083553373571700611400239316070829925808891037617458758853658597578493986845464538614993734630384360391482656340704568401434632684995483883177359423559989585358638700881368704569697109862658311924622362722555274644253628507378723982730108461266179022597978750297104132695698006582234678701070149675127313268125974574155668982147608506015169396487227699865469093781863738331576539803775246539795139145219769835722629047885916079455298741785122849345523685059947738159144317426811907520462097986861381199911734617577828144568316833527716259317614223596895537018498534014148070415547557510316749707220847051836618470908346035297312661808002883482699540341921101346468016241465531271539486879606791798093287305814410045775703766695674375484748944429479849731820686616729691573367188622377750985142854673366441571577355527468369806875034959327072839993801563824149127582081268845323425444752238868081947160047032546296640964186147114424698562530147853970061385285830367337116918466514713704688278878654875279820564671631409344532326292096947500737438205613184325453515958529963503500923876161134549121790067278904760046177330967559293758048861966524412642574691711534841258296493974127803290040233986834506599530402246768124118867254191192234460959830240092733737548685317391072913136248500856367973022459037079076899921722162858645375105307645995085253314821796896784853021551029849110525089484533076144075658573503409826278045692846916876620923598362246566278925412210267893383022684226359930887812216885117159739696742173049617080538853549669605124559197219137502835035792604043735512836434733275045070396489591599125524757017166002604725228611745487832629789504563944986470163871333173828250303740378264174791785930660109024589826836643558765045547904092479151588098189503648274915308506320677690167520597650579776247804401299460220762786218740054888771838969117744018585066723472791426042146712975887623764365760658305018100442417750414662509588680663161217892322655728855091036275687152899821911730859417311285540137139670230224978774326753623612817609331938959085315048783787913605166350281604072224579732606941467687702923142844627344061689755643342828166530471860830312994377514545453777171835608686632177655936271441554011413256264099976374198967305082101788989493958713451549962696504523142806768740652769240420953058269893072235570765363860383390638212371099976020873498064457649466722701159164888401326697890746407125738660606214991700540129037155407377616721129910788684684688402458126885447957896980405113275978163884678380424142608906053239495735867281435136470635126868315586867988626768040626283294613066161383804824999952753796841306483049344511830932853556728315444960513155483102078122293698088680309207681312545305959348371235929706528730331069442066597655814204311165524918972881609413227489404228293725727168468110652977688602822660701470344430826919171707995185106343657416333331338234772370775765192923560586594944158008646052204830710733826317103114431410273203241804369816272796329151944303915182920931904889436593575771647243778010759279583170091727273086544459532897031369848650492525834850569622634709205208017823661740963818994633847801474934707883964528483951455506319277357450289194226461553818270005903575495562444241081988858587196710033623242499531359799459978670591367752653165785242446380234283076223866799365315235487707453224018078266857927851094203050561014790395116293584880304782969584670833588202008326916482425047578828743971206802520009701290548154880624527004110494139130656356280631219986030211317730919824738480130439025402739357148771300104642778812206071718550213149829994988502305504716912338792939683467394764669485311978385821276482536857997306713659701504036246137610900287723117280943924061723073453346914632895444736045096938688609748282878336688361898256570854797852317752320052896349357096946644089094743697837796981662335771617286947527103799683951673818399691621120253939974217474555965193952108802153119101647588629208169650469020346781978525439163072141807193449726792167044746290499670419843939553526634955273363738040061652675535643510115826091652469824826834255153158168227678089609166373931929670902564815936825335294475225321088282970211214372797754520983331308249805719092806451865633607472473844680795057171604517880650348914736483521884221450650218581515561211253107032488414494525125240076250485769400207716423580551395135288192198945902013016378272300061447290176864014750061364864372632276544536422221907927477091334062981402955534333122275814387679197557396598483900867067599583987408087329175521712259783288194384174039538605364372810895026126636121725285571625162880698983587576164763742630990733505369007964877369099967433835700471773422448093316334798931593284308638521407910517157031870268231790770455740765552171557213564432845952613928416307604086976717584454363053699110939814351653091756058778397745893292267749097108592378270902529799661052769408597667932498875166756559527797430605916711486011213854911163922781244416848943231771989158815201496220134461967781703762768672715908001342577640214518037352295831476343926404614708963538180198028407221914908603461793829521851752229876215409362468306716065621654387340944205053134912539422918378136749735466037359829334646120472383854371429210145873400087720921396759762760064025194149202539108668588263569010257546544178154807149450002202022884579701527173215004518319704101375540021360177800722120882616240261937750267235730501388260106422825591113522725189241184184676347557693408552303546702352418095501408754146542686669739449654352097847463322278153383137549267891104612262737889947546162528937748485729351196570731817245408185301688040412204934668593354122815335592797803430382810403772615392679770913575693824311453088101230821392756532527817617114863361367174831392006259595483910551080549971036878274453609709634580048234115555681780978402836187608567682361423148943380444764102737603710641927379618605773639045607014143021159097595440552786748479529160899219677966939923249865797541664778840235031296893409998953702443794911196862653245815913470866232163839966366532835955121542714205074837073615206768829756194721677311909876675016500614608512940535192095969993622860880571675958419039165914666251284096599489189792936909496695567117765975277025575772127072734301890748597630366267757312254962478237386676724068089830153530478532874203127967926082653483702985775252205237431139839032736809156922280002476324099240546193607376422256245565201866527153094592448684343930451568800762131231242906267040607324295747217693534436058176148381283452003691433173786316751537128874396787856723977117054657456523830378033534290758889012550979134346671704204563290269935600612729115834476097674672801375872377863759011651204448892592679247382774311291505410938766466090699296791054352321056586081253425992194421781179244887456577329147687541510211959837945509228121078227622558443049721516285424047755662258538060419088286374038790176822797573348578173228383698674609935137900140772064291323711347148807731233275576379527099555806711421130096264842167066254012370990055279747756447842763719615302934620243358847988638043517226855788978160306232984626223170632400722330214579239447488928014561361483083193870244162742985337328132549883041316620463889255823548239428522021170500834872773190419247270209356362405723219638443551553576540167845009556206893271151498976208583934780511272435409054718690148839992457265288288439275175376949589259926929794541985750264450289690690419988021326205594262709073398834855363127998526610175589446750995966202792564802909242057086270795355813370457807585878639497749422706784438658942906576266487019537504382102785201663788570840842801652438346247982516222268865959490272938746027562538421955841931025989680120206300211671608701681451673766511282867291219728536776521071028496024267171121505321055927039214730430639440007496794352843220668997344584567945266563327262607055000655973279531482594146286782590325363177854455183051707658634571711248115965327889411349989116581595309392475044222968111307434468112171161421878124909758829351149310857304624191519705987382916368422163742013836295403578704216131765960841948345562770664520842978423454518927870560250903402826975541771654175796733751690996405133558376609186431766903402363498610455212343806022335584746560882633890342864472391677274576911552996142026963292242882445840744788674197299557837615032261713563947551406586550587365118080714906434666244507826215685139894366040902862444759158368852872167906377221196619607588026512898177644317922195657117998547891390549947753178020777984097780542050839002027605543744382100771006461029005248138556151091015217815320342929428499933576562907496267556908347936473602343710433454955689037776900467892166266755811540008547924405219745375355972788032066614091920481271786983458572467386356941228183356646941445750049774715055484441575573130379605614202552405743980346694598537977176738633772700497605019176722416718453106595318778690952652512232820720716708639363479884594640984401651339489586097505990212982482119862479224300279113623092329559391541210492688408264085464206458730802878821199700812143642094405727700257514023330915658467295153419490883346700383642943668294349227139524625944246348348967488261345009454447975995038744463768855066124308937714166777076594812210192256612929917010039578736464787026202911274037067302040749424583247756248053048716522821023865419452236856242180430560315476014008436611603008416297934508063328870437049043298913026479845428976747470372704119444985703963210278993709388546112590041788985768820375219540312078321798103797680197669112989947893960317766118284685468780744177252240626255166762485572916193471836115953448228784053807045301855853114452717319278154872466075564435267282430739168774028378751869128668714964403665998883580889605326593242513489828919713123376591136979598606654024296686556944337921437736119213347889465775167542416957114844459381047327402024186959124876625645262240807171810196421059173639391069394798881081699453187523822513353114639519336197083038062053057979830057538727635772827215871635329979187754676852640438987478993292006765382479052147776453051473261174761528049075121699532108919937329342325831284655332413172141774530842735053537357280886906836225643385216721366284956290093521197267773406977836724507183335274747709852843437594045536445579981317607692700388170291672609106036324573549092019696835368348467617123832485588083297729877957359777042929819317260231685471359373184792308356919290399913485950680087604881490487831111876437292924238209365834742584960255730469609324252539282053134389986831790730109165196461468143806134145586631983001992708002565811357398235648474112126744360032366339577895822577455927963291024866641017119561608720734556640042077305125422199641772443194223561565452636278886306558079760723240840279124820071305862940701773274521091658847402706612794012522240167979813746193360288715287185255349277163740679156441259205013640204151529648633784399326767420591755919145089239541342708659914602794095834324265196802106542012056458539672502904390325626813163291195534347952272871635798153614985214928341009645741875851777442938032194823379915218540823481488260788676073334978839618448893825590808683244959260272698241998448479232431204074559536899586877217485283077731576050945436403735134442911556425795821886818961151516636024691274504467021291853541501424057005034892364026105933465898893907337318005247597913140468636047406084548496384908222369577993541766662082380995552489031029640763516614823814522082539683495422311972414533199580046912988723226199609655751886860302458741478836764893920822387986173317020421883706253498038922462532651487402808387949883391959567308487777228905633629730504431115698190121491422954897191610085350813518060041265525556264548377744986598342290974369957451981725626108678269537831054363952380483487435778066637645442685795228539735710356453062992454962962337061604502437143474570634253243210152934044258737384579274549459844533810250094037368043078181357783216838601940527975209475526684726631466656145549111666812537474431927124086798801183445375272991993132556907434318416508234116487147968273015397450413402455918966225864488044018490869352054607201115945172859166744079719819885416492398813545124640073044133787732706614434942525441894792579271882826461977022747420682146387843298244740898719039372120137769379835057899449397642026197476872840582245205971577158367744320835162337187072940440089995821279725610835742083209327634114830722095359656791640206905047724019844333358410144032795652596965905184710676055017026131329189820036364474982615190878108725720547188105828805791688438387208186317772694802915572957383828903039295535447532714757023436768718062245428301854355726797892702517103975452634276434319583049943223612427216053605343491632958000008058024827800785419436503791690880593480936187324946201253587832830573934174838451491068106336954816840173764430518277651090748520562321336429916810084673718212323763005306602654131009632151143341681635956779447617876748355397759738850834714474900911363083909724217699676675101757167325752132903000405993061938251975761028367560262303388418333537860445979463074765330961092981930750541378094333826490393769166708316089377906719097935154575141166728120111041725891140189501313933787440019320989161600202206931383152772794180221678675202090171923857889334585819364262499868344744042439646689058378013017797772657539232632764315618963758021608705396311879017688697389121166541837307957079782864139189600527931952121180676470740044590871185156758234624019541018569387439294044713769986703001199077610690553965706768257341056531640884200604921999020685237816742482929822837130843344555153294751866654587312759683460048698340077376440089069342445420580336955018778664703080027212815579430780921856301728833244999092311119725946844093574689224145427531964690637448267763242625446878046917724765774807737491756051141739519013657566095115895501394304032055630791818037963847128085071554670636269004707696558274272362548920559228540170604156707327891869208052896322854262223719558644923458983156104351850033844253652956173996836083534354229060020774437792763853332197861528374001774423030895868868083268424789411270530248384579509681947427170501591494790470159414835484556219026176228593793539276898505574366220340342602844082900824659115139864118125007475342507894727380604283616457486013209847356379632633684221101587574479618293734039784421107461941160022099932508787919014620790466215786706890799930143932286877419981430668814281967514433803188884844910700296327213190469747894570905392105959762484336860834504177754812446746353102298223595365361479349511586204126399369624850953814534639087183212003818192334606906708451915621488705644696972001480487638218815655780413707714468950154010811915705269933218667157470520554521347373178554676674773365576803913461872253256080427392842359767953988698060203699939556004899151097654514338155188973409762857538008037738380956012839893166872473845039304858573415014593260289373408582788803934725654494439578325280790641551678162664853807838338444488522789293834030617889751684434089373907727197546137930362424091802476026926446073853080960678022133561933442081203500523505438629995220938357409052159881451664181463828413942413305482485707071441853779653697010352119538717435106734681754103381472299774832096883352633617539421246505315517578256551300817631650077048505054972695202594754159466582919228952757657999249860061652823930068906786251236113533078167505019840682609761808567046334049200407383402497487950555599480606229047856100748060318688181722494252425605657325139063229484345083838451208958199342871992943377359368093142906783908423284438346595776227403857923419740912870653274707570331950588987308237285892311660798852493255590348424533199205050212772804695313714543843314021214227128667383138097280739899765846242805740010978812466636846104100164000535995963748988568686955154727331535123524926838747335889988102270395487802859407089352897073979976276787247563807781836210946820243114192340114056077750458384148192125060883781180783451019750773599032235088498113222958605091995603291220788747358565043434166032944701204713335700038867964529917252852055973572302206652787226571369919462664805433214136459128440846497328442179503452354272470729302085456218929100275486110458906264061907867895187436200203869750271815133767291279146323171529819597013572721027385432738543652109308442998431754739883306030017326657272480891232401589634869943316990217019808300973186780989093479504984031967802033189324206454812088843138315284915358284752339486551135782465439947031145937877986707145807168044041135831813997482010131063183846513807470953418106193064130102946041860658997191169426091992815218419797005753320265841470866450953696806729292677439543947305452401501819696285029990885995331519988668772471898234457289203262867687195187291822029777989728981660303530756208422590997421971028324472347457832235156665133290044157998752378066889448029954439121975959279372456361780509000595963096573055780939135005563480381691709153736741318898975459871088896791346728488995640305180168713463225768626580064171802639285347439848431154263305563443088970267884317622769354451967608805666107366041579682391464089000748540999745832383132166724517603222707422042736957808409819345126736405673329581258055224015061949567464425261933937653891462823040286043939557766529285353582496941439605687739910178813308319768957243336792555638004558664867420437556644063934227585989430363143804916041161813507586731938147352925133337216832377916597269724432856470100915773715752657533732489292947905401408882204880334034425795155504847644435715086652597481250464731202877444601537300697861584125514088877916745175705365567116397444949133350922993686231575539724943896022559829156371194898153011549929402081719936876876979094730758552422970515149932134195638437202762906089377092589710503370558768205619509761142962693709329089470543370414647203700364826439567582781158110831218530731194794314609588694555716666524185364721383120546302817039499983569539018543698184574517707018230905860641032133073905555251142905035312763153002355692732136509975094640808198257605879197942359475784126322384399009148642969990979781700623646312738233815958871840663865520741488054029445592280936003603964869699372361809621683257339223577903919463235666035431466463541546476904783447723767121376330681534030669642843139594464517244906469195251676195425097789884084793559460828970231235747405499629410082266925433878422157809497343997108653606643081225662345020852957878126980849925525111778969535346779749353831963520623102816594957856978818498287222773788232375769867626122710364424586804818815931339736345002449822453949274432805249851314681954627861768025454420482718050673247470426646046526602037909458709934153520767567270377166495746867835561489362441106013711728969175779829754815957641713729268579486261011241969141401715368466921800885617279367085679421477102075791688764696925149667925805023707667973215823570279606473688663161072297462385706228161771700066486281867111906162848744150555242507899180954494835453553316265474073787604072256518599100831638048465046855382299983105107253023460437632904038509529591603018044481145727562204656957537431845579028016176813978762907857079788391898816955294752235628110848422577440570069340053383416771794707677455549432928648835570583067559788806598661352503237157564631140845606708013124654935477326864166971628148622243305172433115253034399791432872001033632889573296575991377693132919143497420644262927122579228747946348070801743340842824102829021947777556367755606320633406076681051094017160232407129992560717886704465218834324842826321763734022657549625356235984669434918524613850595983887556143896233776082929813072266720264670335261028257346145619321610394269085454606605804527071454264634176911042345747222724259572711723674670024932959396895670121857456597630015688117701781668150325957858396233842619931523361168357290158360327792676901675296305734848562993581887039205097006411169478951756122970210140942648109215485719382362509597768508914765217980225179679830878155675870739291586273589403425863916254521449322128933752731368228090089308752417075761021720936254467103908558210919077465107948150918711446113287819450003132607016172866453517932416263093574038368054358945932354629438127029142375246255789113640907418989052469542282963734536103304780734829210510654996436273304296956307169248245096603818644116332768312746552059473220212988223134143406224262619263705442285212971054503666559718286786552556375864842993214048567977081848353198834951958662454874265275946468181012362410278700165355849313824992583897401424871197563719308531697073832966949200066098790710496678087688655110411230717769311237279218654009929913818750477975264435507494877360815287240452763583151456707640836402433751604781020249156028157545360966146264905836802249969490736190942204126247541578449279218995744504008407957359193999366610527206269512553533076641683633335325268855009660504077051485692522272831382992866603788294979937592688304075627779320802785805250422139861016244893418804440726424825280197347836053738669944243921897829732819822196932064615486364926543662603303835957773749037117950064581149935870230749481499581422982310186729351547421691861219024319553749797982563043974810330497347061433249338098895211359923007800414377706130243576698006730016810074459240897339262168887908457423397132878711412517274690364507783595858796003456927255656971106963497003921517827767462431536634191543429273185058815454941513081300502668693977389072906016469583856373462587027820961021736013872310317217161048854284065488571145583156144334891288460039358631013110967509337514129362632940799634944685429042530561478666187664794068027462002152027277525672731254907120385230806431026023802306428197997899851636747225525005768340447892821639079080055869496931021333970472747489593690911597974655396195125243513111409468128181503450920497544700130476154057032074033177159941333111653144315171752314941591110742039048178059086306871579791257205162014822421825002235155728101406460629534672148093274419305798129371009983781011340660467412038002582590893336146340772414964963746611116518661788574679611883736129822480688286217056822413290317122556179561566508169972000398618999986236502900392977304438003519764006784712729234016152925264301105444196853879139490131301966427805068928048533752655998890249794428785708408437427197205596564929738447043144486549609792502992649496175082997861541625067136582797618067840053814167258168749330698635342657481948235305821645839953301467392032291700000363930204846381276340217618143517468394958780098197384667170995244790544538753439530248707397271521168175941078579230936266256999297382516951059771357481918993819611728537509942177859392333503721759085299050228389413891306960772729815953026687316580656530674558684073409891213296190037030234142451039216796921353614138709841399831894610691539618207837425050310152097759415132700052284221658753802410580546798026095562341845168494802381400014139975467899737603735750962480882064238897840263631037483227859266680589435652992210335246357196779318667831720025499593852498819623765502936109661320831254606048797763815239535055606315262063728380961807259577439939903411780106983038240803101263445999930940735399882472545348428787507697472321472726611821933023065977541503245466912762951471544865041854168712085845125094060368391712983737581069484951939719747839616241637281905736847518049393657950258127679666702755469127923224962989275504951599069684523102540672684326959590670646946813133252839708682276265021585513047022415930591574715159614640267024467619602445818193056787325648988397480200586492042121148095827535811251376445337024184964300839770616451270955670110094840218322581201948584102081071999465610982795667780414708102978263166626629301194464443221915266682719767899837459320275992225946947359347577484565564003113324089051819457347462647461154691203807083530162564694864880533579080109396935042091129438358549011956583583399782245533570752942612204417913982692548993672612072647410715284480516533530553430272199435382286441925276003050194711106112354321911493351457777362158557657257798402408875263481601046603929233180866783774039316159997214144850515394623007607353565213132739708587728199374912896537677766569366370236978499696758389812250449280949249276096078764547459399293039095671983407317893763922411819991795240458491281439647916826259437259334909633787630296503628557759938771245410170232912371394335321333046639647636208695889386179955005172153839754442272473982871087369601982202989555085039651848256229758976607284644826012237454134730683113092503455381231820877760192168147751900852522907229880106342486124615660125261315602519204407745395522518773806349668320875937571252375830027241078788639362599274326450748190925264493327459356669351610333052932687959896353895444284975767891470357042621788456531220100893574254573436395983884745349707685842862503277673172358209934596922811928470267033003389723762792683951372130988096369535532447185781954958037870094535350488266600567102289071413744041043887296534447780207298280769372857582761784888157632441560175436718082850546848619913972620192426757198663009603545418853926436967200384077649905177838948557432405320319201699708374567167600411603154924977629511505947837835560559422705638157398879007066707580144808430939999627181556810455615628515491513169580938981353086579250412920178470723841796902771987696902084604303588601923374671730099615769971553353145511294173024752346891775775219506991950432040100957597285260285728366829986027801878121027796933374226306706761245110647451581248493033766517550849211666753979209067451861496304362859920706797990489845400458921235935220560703405688991877073189118067113053766508088056541417123249337073249535934319859423951105763736404902559725725803595074423189550662711329155008547076121725138694080539131116410900817928814869084995821484783787428721965532552874281522902289480442879838953596296084787384315178897506809864174614910322013659315033250397099410612476074429379096245617000848217730278810771064448199906081230947999406422836206974548983889522921471417236587705350215112701683867111280331820124933652548247871651974090377553564550098035310318688191702647412737204368099174516553213855477454182548707825900401949122067629610400105617537113932815791680545068148706834388610455261698836358133368316145952346927503221712470303449625279482349741000572186067384509568259707223456126647071231056486512687181637176801519548780503249757279385216751252784387206398446495304683996376392162415469364649579711593392475507209343342082123722620608436747078810194494484264006486726320815603817772719081420918059831772750056936028329021536351748989902786288030341167529518186596806942764718124491015848831122954424755071771216033796967472281953420379670809698743700619725859949699359023173885346296436795711863184104889064792154028359762208291406668027408740948285571048113146998609395345197152438712380593406631571983283120169452016123008575103432929945018674495468040612794589690312436673746604672356424023992054695310317381129303796626305630545409502678457630084437302636361753736933393186851779214199158792801056367303189514198479837057319835336957779209553567556908250774515370946034174320185546883113519702068393479197998770855831872821622334647295340841107913651487503558353254508900698697751749255206663492673173029571667701987598791959841554137971458384636923131609979309442629035510473992352814607618338882169508524997047303753500116804233333902742622360536830148686087365311964654968344132476268927569561485107347779814739044011519612663251575748898761100969491739130655107752720336729889133456982934436108501470930557514780004586519581866905407001923697512673475722624784939694346076995546537481937641400729590135864719931244465328985118624604736569562826795433438787875255009338745691583810686772450447287893975141031922347724305693107038091799457638384572322176746856742535060542134622225051719455487792296728085535175569352312270110226849269144405936720930673536132676210178338407131025614354486855605867183470413656666746835253817853604214415083598423690973186923940245596745649783606204108313422650430002633013995896455039919319254558536191474157327771077569013400193397080623305018556857908476558096905269395517941879179817512240155388685522069438980237076925229067970827228796675184168126745766875724230222900043423583471702343059062866440221159000060591295726463040384981303223966747369136171234219724268360663906331697407774254304749746970328715797207069241523206676517652559840597889410060006269798493703617279160679984987046249405809276643813054080466229721923276955688500991377123856423101024330895502981524290855125635925605869359657570820505848032572488037951083345867295814740568774889219767622845624306125346338634214351516858280484114464113724926138277923500410385536726986490063049586815436726554023947886717422748277480888351645582057994453441823316352248989980472149422231697774467359879406147173967205887904257115639192459431725321770082212522529567998418912568606436935378212661334783069226745986197549612940993496584581089206019728434856277621917921159220349948619545269013935063886734075653263225714767986179049981447962192166687199331574485990148590482804966814202981831810333076223183881646165671713671018529747261800967298076438165228695247195309032420436385140848942285324194099843903272095771353984456312107587391872319833969455869474556440775936273208799152231877196456601839281475816974982018653229369494327969990162976054026171830237277616847194471044355759884036512985198040217628201501351994470441069878843097597226365716023160268759132326672392868343224518756104187020177273827859329431705164927343298650638853836908428315948775073898755870727927954836222672468780573590118335541252140894317652492119764916774853512074043452003275593886921264981357224077691833756827650286225010566815326659170638458330601472026604533899758567020442462827122304326265222189130866102417904564751109868492523227835622511072901757482481123824585602031404032629572896914636996978432434279025960900691165391510246472221468944078372681597019915567796148887147549673195902906703180673434287011350041547652496505048328417219514458952520679818737518913478306605517015404398139301414516668481482475186655955919470271516085067089840971791776171545430827190248429166352930598837662908692407575829037619650109440726370007406134286432698396255217573992526235121236592506577906874359804947534055773645450747600525315202510871475056178932195294640805381007111721152567485982738378805737914244059985765322586295888961665950931481299822504119840383577738044905397298365099885637660016124089891169808540935402638182446638063381791226438197594527488501652732764498708405505107053153284867379427301851008923259797253252198750908343492224872210537058791871240331812320511928117124664728915515008885222491444899763869548606204530286610777616652829106385374564745880341936544574824299224746800857713220667621660753522236573845807403776380593551365994059944460605220301692796496352110985776347521741041455155215274982372744385396278046481361187540573081224359252169105229746581305524937944744124084561711274639893790851944778392154707766349578065520524607698269197764088329893910161594309807865795615778147366524136413391702564416490503113282359360231194409271430996017828282697730258676513629214281698905501040774607858662612029968335533808230903450726069593531411399205397278843649170392680509241459178661730932961663899190084682705620366533344645801188344431188424935001182027355432049096944850771636024941335336566309890744458490549680152993418700345783924591899824273536296684449320164102687270865188399020786152141362073690271895737540797340961724139143943831058722422156727265584515913660154306563113038053130225756037228821422040651072135664263352970576758429535357679217426140118695445996491086277912876018952882085756995096590534956010423522614018384049683918769702710827376136943011725595323844136040418994948806127052013373716773720380751699043942219172161677584960474926158254422124387656601448526770063582216399181390046903593984345622451379760554363524633734910592191580533360366763865710505769033528868835518367458703919965028910621549859484592184778414560631191914160912426488365296622389134582114514979447096796227603220077498770368494125302055895145190736794093037358791682365407329315323327822644468533584970841343805909659026606175940115093250469565254512404595466551773151201493940442892350565188681392549491135872351846835589065766469041954234791039488041885637876870067229204055919775382773739134993565195911438490885874878429176825143598414485324329073403740556729839226559756045925395046162298122889497814068417188627238282369634214208902652857421090927096840359127845026941101990531683295210995166449903615974037277255287787561255921051761310477990041485712564186007573378710322098352467513605243030970649174862910067641895664439526734895844035085673164853853358434069394545299321975193284899875965787624373092845654288630365427441888174544421584382834920263335347409847416950142217169338678537038690375009583845344561809715522883097291982091873485931410705186307501681712727718152651570121549079659635609002240383885476398348949915847283738617230524759867246068109845741314841555479499437234419799764283726197085271849912643907904973384497287249626426208322970473439161832607253614295019160782721917942535791819598502526217108687829089752572315482918793790648896399525485867875873328196890049923750912415303578209362810654380536370501826368546764856388888196569080154082467044796531924228756030734696682338723804580687618673909743560271027019255845922506939544835658759125103504036549002354267779786854208592789948701367510206107826951707105643508704679098534726761992400449121118308085285489023245908947108063958735028429140003740389771781321785962552116761605252147052502693608315288470711385262212670413587788642349885916630173719972315418948826635980158541555008456887833261026722866277088218020338401922038830691168940179286398644610011394220300382939434145983615180362797712087376303492910280905675768243092916669459042037530877145693461756108082889545633995035226098261672686646057651142551050105066984278797741499066650137078822733454178502921234996773252311960210361176888843015111817610501756783512972773536486249677245310960857248743385544771200795307176181409835887566070438898880937022951394210034161144045744027892305367625648304788325828289166688504814267191418367689342995722987149741867490088450025374433896485081931138555166831380161200665162694172714739988716910022912991791803026321764426902940770863353650975219118714420121815212211519556458543591196741214663277062522078296636012692178050784930638476533054982950996646658021725556053668772555675930996693404875879629656299216420986111397344759263705481563374165293375374259638879181173317609064694700445592506565748412409070118482778429814836266532550928546142537085239977558947556993506462754331890608090176143452130626327119926269314253674315618507626052575267958267675396567569378357510164861048749682293264736945431113829468512991399651886491464712734986116142013250877993861141325861681308152072262973355743103774162566558180436798096719203823046098519345066266544567411164559723068948079643932176085359240985010148175260172398308164115040054979912959515263697368311294114167031404916577935488222858279690734278477777799775575164516442425981347204646318211518526930544644118274430393242323059631278298884964554180357768723586106197600307342748716902751636789219014458225517787842565648719111873893802961064780392241341857762059258559485284605694162181099255697023602324324799633496417116943238110745102385866227525570060475374247992112608976362436068433283283487196273486546121957090801885634807996873215736976163917456869257472649814802067240602749125078618786719304610621746771099484830379672791096681781238686127713489844314234517641033308478387308342089829109286734822555684769982685901458135915558829578081274935825050761174152731379262184597482456390794868527439296669226321672576379629836288889800220790583145473282851775989029758050468743775607930434049856691117340503919083493071573464885500970274554728876918504980970732979976313248810848407235987409070522260077643925029627398753501888696631641013737926921749026103139365207390427949673202916504365985857991739088191764925248358692330841811665489968021151449650251914066820808244386629346798738446629725397659719988584148614891969401758545917905860253145900213485677222584726624607787143771232070087323915943549183175301264757428379631280828657395367718103810650495587729598786481833120435319563467968489762332461274558283223369643930459769383177482300154499086100275787275920535036774556134251516972963253039933819734418996600499286470386449114252996054729394207494278496250074070613405013576372120258809892838530436034949518340847868602840788976490461452358867533934189885456982960156612577386739612928706975918029366040959908095828296792351027231466810093302577091980131653941661394584329757283799836909048728142866906908145647137595464683182473413696372707960572223780180012351331794986748829501681661309115867304274731754203412013603019508396320409302580635542008194570842671251915423914053247104607584224741304337956851212379753928457640592776565531353441885039000854698386831490188916852630959982905300407867393216122574417925678318457440608679607366799753030730168857582603587943541776807651956362423862495543555928538050231958272037439159023741758273808625207811937088051779785185705120949704495082483247222217554686955442656072792414589204392251504824549245391271765414173941968647022609548252194564350906447251217606905686128788447759638113159151985058367426610739093297213058794590677694390900409965685119856300335655478387411113048849285435985263790135535653528286643620842024432146785986377091502349591438455103599797485215036480353415855917769603530939675360513358606010298377963666621456539879490073746274237628855343837485057540630626683315157712867366457615676822174496631210570042809377592005349309495085189217669858749298229871234839017844872455338031040298233209602636186632770277923386495998105050734033026917157380082317051728646545798373927954628392997371527994010218021309907231873162853340797729512702873032317638653955268314768419063634536236829677810818929641506303606661500889679128739369706468313866174557500942930589160305510869839850927040340330126043240838403283714814745505217969101472756932029476777400691645625563107689599489493832742432036935649212488696935589061278374845088015727997039102826596386413816676726199079419660144666107450484174504968974857782545749156670064753468949439937813768772585220504483870825354249125557866062468450771674056131629454902441829786405720644812583944549494090185516002717104463096248697932961904620721905934811066063837160060120600587477092213830903076479992563549457954252416943145041820711435635055586465574974896797826945270837691705205997690853647480566682909844618932811688329696021251476199352776505305970522044165914194757363704498655888175709580446642132783715417360935050461099986702314456390983132746338637110880914714120110977632644602936748128648016073029269538051928631318703424833406941198586563702623664604161644695403903976808940106820706414479491854414662280530115258105023491359132500663111661640615296420273900593876406227034267671741461623658829063032516133516959407084500334912166136821869543112076057608014429011523830451073083610237380634650091352198778881226171336523363349231978496252809564222122925293999969404435964331622057398859384085026764132468928053771800085045009869948574209870147289760747917867802624662160696586512162039769524717741475129720901663451726189272780896009334904978670114392604234724778561891778398901087942500800668767098308556636775189100047298312454960083141280155975754988856298393281987442756425863510484279111497287611758525722272880132200306818843367260923185104058538028310381108330518868965082039240446581268790881499241272129859352297231508861611523313192672176558758175463731809854420421104530887594688929907364076907370521561279135414954635186823086202692431514905133097291429089133465036800263989497558388368439071411985940561883534371152131339375010053413072358112016370191387010279507579919592084825567631933859360912241380308742298625465897485936825498657385478773104088927066311249679088623800260951532316798713020961140283742822260971734497998731574104914867354047863200823777802890971945843740973418774491964604833960831094506050437266759145135550736609224892873795724556475730553187532402418032173476078919667163046077572016032733415110617291573232683301274236281116462332264615508749389972551563782952710875754075070169400868115898288035218632227176661330020379542004102581025415779328048291396355152265384350040037320934940294284785141525167791306220246759729037688920419675246310062929421824157065770745949153843985209398268375031238595609800766747040797764264743648066113087019326679346388446020420767181313714786389792306803443046556717008944074959634901107518099348555028063140720469226322138860485684363196705859139773133086388502071426441868539023353140510148723733631719848815333061615705524740360882012032352201809915738006751408343111657001250160719435323373317867866133640330501563508811306698856441845248493830081361230735375989100661572173164330212567117569549636516308842531998081057260007426624715088608883795862399777729507643478814516246408328486019760675106980177090908829643356685004026587720627712540303273866149719169146751788466984427552730694402778918714933463313930679767010751203353111450373902865100968930461417891989108367266282072044151299489260196486087161144048007704737421944789598790695089880439754769794638364862945810749645833939331158785576567824071767720417001977288946763982392284297875026219034446420724390039950107008092605235074438533560791580297218727077259546113081450886820963795940704411601615990502627101827260806876595804433002068437649162211977352083499123176623180745124136504688409626427374446284187822343186953987209987753906356010486313468945495281630141513342291438351192438525978419043398762073207422795467782413496729650991479380008587118115934665163598462538500691471650212430174154711418955825305699177748818743992563735429677544544129235066131777425336811279659735692057144776114324198731495722012383213827757450667285535147507307851049808435994054402681251915120622359794620278494526729686959151604519443798553880230851413793838709968870502757251241997348745224192568984740952199087630803392100786064778140088146209203923114477913851861917834307478885008766838748658667149246744293188836611014574787363138957171979849966166725724412810094675210356588620299009908382876364547526040782743397846953282982394182990335492681951411226605539238405230511270963809690683683634859871730030633464039374052987305061857406252860309071506062241725327774718108310561416296855139461303252815459071572391455353329162716825726898442715683318516347665724197293222501172681237381077222345915742508682394754366900734434741935251979727015476993370719770023456912178009541139196564589933473663829352063954614071609563627740120201039009738926814816722931395462873757671078805383416253654843926591150707060594454117196304040539386017856937964431236981586216934166468408946952987908264435316903238791407026508902856456178656553478893146594834134274854188893565006150893520087040840527330337762527463958717189556924247680595415442507206666867935935829459026827394038830704250774303452904090460819132879566246691204728144179302839806618754333672485459539185407142274361247733633025150375512033373117795585864068435844999125651422164582216450233321345692704983432854775313333505437250057973424960258806746234717028212877571906429196733892608086235622766842574442104349184620985630729377638853585726928692565866955944110088406825095880180920303921274431205622127171310131954426778223835463443766337513691213086215654323817640740817114236705879896093943133079345633732755531093877703052728515531977192962329277990416232471788498335550051590324614982388459998290472095245674929111727566413972846695314698534861818763041426229354746886355384956791064145937244938971943584156917333626479179828885577167472358715834062432788251188072397623044663264825221348581568291970217740237556844606141735421165028297111114010895644766930780828369333007258697021008110676800486687718237977975372920268569681599258895346425492197122592488298381979777524123633354464076917512965103123755206922832784112588223164135012034631982510234638130935089339736658698654290334774611385649865551741101882876092981395542534497971572701270412563415790126098775697938025235106057523700004495013750773099828921140993153916958064782958016485638195471697954569237363510741897455914271605916220757381764365198313938611602280975952783261472901668425948266234932179353594529858552126919087409951812034293951584577652368688779659167072746485569318961074033943916835124660669355942399273584297376395550968849700620845427492670585719099857040534677981801612640340331771900125683821460256012349334615511075635231010699367990932988180732104017880046534387332675748198676276635541817608881961261350768278539234833257496169378709383512996582581992751433232686356924315909108373551809478754475874422464948995335174494333688044242804095152348503240894291989767987722259623469753675881295020107461972100686181006006800921737897720762994178060049240680905877868023811250269210628745171147491080267644247803619105118243924319022841910414630799478869163643265779427398310792202546387822842606240679508608810135191316146196619965686238195100250376095792499561274408753247584874184119922160218404263496573619387572027244936314970980363162505506393685823456681382277677127521787415333165699285065614216188612332740800789260607976539004825228420524875155328230608074307845277483434879310018429022750833081016728971391493097247874847856525630570981945422017856137397936973054554622630317440058211568516003925534176772065905125300460740409043917020889878422864244860532043575920473962131876944842498830381987968980408840761185367453112174882246595339924862597107181641994554692671256161793293370515407239806998212686880415257312282298620456732229090809971399959055614561360806291764716512622145032494949179634739471444632683914093380012579816066680313323947129881451717974725981504942934237343183340298292284353213756980996264656935783237617717874465611455788056783062514365725325553243021799307236119228198309771271988517273797757212030012010064819213645240069999815463614649662970939537309494957621129094022473968477835569699014251776553954231551123898770754866754786171809111621883054506692431072407574774299243126541916962353722326520893003592463387935631498977580451016520316028862650106013741035829841433799294330130069305057010146568617747563239377047142071211504303654850258908970063913973489022295100804290466041758328897308016906778033342673394432044917464820902371762397283995020086699572463498040420055187489862862497563976676330800834769435812820082534715060618375856487542426594506064326395153679609823283328890559165808133995507502975540359100995921847372227323750165026793899658129686154645581252318114826914696256088979569245015852001016630825401059789904861654230827534251279543299029503632214828319335709460736964019091911428707161503296040535826298449867859504284435023528155893730986394324945828466760325024153106599492616799336934007612034294929952613784023280922181641559010258917037177717638643172240387179960088081809820443722419416412469252285190891424662552018032234539499780320427074188303400240230156925098720815430508792824979934705143430054981862957716017922266468352764208173401590335668498587571415785156245151135438096560977430858847133946372529741217186484876081233547287713132317326005105331303051739713742979418329305354251924028308607340023990105195108818221918654325529108996744448214378368828482970533827700226563843104225501011226817801133937135554741877070201174744988729940043634956891528928118563708592368237634013072045592345971442269176951922356409177940133657622791677699425638750696197676205799521305150323384400810357125615238057227206052882990162276830989747988042522573070948993818057197431646274300548512790673606763587712620640622054572445195137476936901553934744890732106956591445081717895062846403399096664964405573253038716377035170068810452524244181740800819452508114860290133821947090405184232648538120724587442327393958599551303303631176527353654805734241736931196969195990648236122027008373858230116438085863710215386252049927035997123619049841060766424043738121862558870413021667119130519747871102651678728314356669884186633684658512242827569997281995572811735854763344972018239803925059291423872769675001125471461965717145970106411246654504710640373801274650649947977853453837207243913373313510652846254949018289201943132586468039549417071364959573714624692176810795661564396809769486902188332402745830530730743226972893323624398402260833329541795421220405091979723501145899332052475491909954177184216486411183553514805093944140692933968495948141179955235216392536274290003032522161801628227140817745865987005347611094443059442604543745785864106730404219725749753993674982762067384602713130115917332959863159177397423630310430953112242182230769004919161975761262804913916906624034194824733932586225615349381092700154060247514741811881198923091259718431025719844663054660755215891482593341751610022156591367459768067521284285463892589768984234720032774424412019283509642796697770531783925775338229672860479542100956176137877109437458379730408679910113541741755541611212768618408819749336840286270234378796273526323058362014146924787594696521610121014033255636250495407877477848390328631330603585782622868846761611891630338357423229484894512368880467665429869303222745345560722379715097010071653012406936146693809846106492822532826262025335842647748255582135953983340377823176204367394306248773563390126483530219417866540646888105088661525921873554932672016921188557455259361614626980990355963460116548606591738930535404658161720519672187026399486144822804148401566039509739449734291427265813797387092392976693669570303784866507021093404215523528535875106910956191759622315115304701647982559353023855015900840524926467259714825671951145457754643025022102781000423775928475485512050937966181404848288774809443373606731986734675242561362727968338623921043957821093599212657559350080525963225996897358435261651592832252251282361330303558811372923574828897143036107494783035921955271938911953700895029429226945907372195954244730652812014965901152982817233743970813425042574247336172843391534549903726517009046159203112632800260204675320071887171138008197965751322860201198165205117613894821055102519201847620035623687827898235159241829297019366311052530044507412229478513235445153566094394974590242712977400974677219045316099624999860583673887034659979511695843142605160226644994281869250436335072366262868309368409634356351519947580133579500298055318264733127728156787567705753299887703645761719732900974479419951884724947589118542444297892859507063286359792572823966934572542816998849936713625268272929919758145049045584987980617118957101376861923046936678947140624782060082787108234066447345119421315566069058876284026278961435441198158797990331342109424494936977956608039196468360006954909227445354774717284626966267472288086266371011805554257083803836478395884517935153660001874364341374013197714882373454685327964839758064998591790872915376405585975095166461876178299385485641279559309231593627486109824784824150313426463774910429966959119733228949566295159185223188648291193273300403218677644320354481328125927725494431448069822410464505917140622822195513422053947377201177764920804329504484066044942599033429245377298741042559676503938162024140278444114936786735570821197342560737172116367346055925852542885937067076047356727322269938122273204907263148748107729987370412591690925946778447610804196887952332800054121532073844546488493734366913422377363968855424961801078981100861188953974274884009847599641889399089019496541755881381519464859881783693813693999133918191965468151110145124707195440682426644020211177830432542454547161739425454923976903287594075347731545015540409444481507129962236762419199489306075706481125076106721752068002095358034943705191486096524660443901948462710362700367736100350564355945507562366655545277848416683262884498523815395562185996482350197988288853290794348967204547477956364639461674837327163942847672077811504555274001280378912811840363143736357317166904412037466191923403630311130748688400831104214298684829340027557447337228599839589820866227495911540667444496625496219673298855255411695895307339323068035764644168335575412220523630873513302019485912993006620419313088748598194215965653679168471981885054847488630215772737812899043308361150967636348977779803280196528929506263629062909602913149575893133206774437294173747742294566506122042541531417721639077927945303437230108199963265603514401021372275337193922285644822007056364202762284143114796477774916287054445550709616958966804363806349793969956184403476851082283326703581090475445510653730115483793297834381342086075153805283706191930190962339159889755528950470102588027837852603494584482936905168884249976976378209769967759794290633510123871422029330937545901708461754825060435913960798792275988178669666805762380055919342470730576778827177717678809134797949036379525066014623056618281348050664385486459674946081153318389513465434751132155674249118998662618413803190767721983169109841178638553040948129655250348611003810967862381443075417295419415731875309596318028539937580379797279573210337092856788277916209163559027230085147940674818578290647285451863813115600536659479802237939689203370737616871254949650126463609190535559787637160343678555304967380792005438845934388568422940086491352671679391363433949414965054465095350520970421501545621282963323434135370996508786643598099511181123904188745061615230976798297380660090486994792662783244795488340522139866175440575026455576109871155228413962061867631530002440985898991265032468283810625964179512572662859695465738191440507675234313833131981579326005006219960173509292304647403654241894378858369665387053949822614118214805827016292665038797818214734829563487704884208361700472727807175668232144650584326579684360997328891148428795421626396769065702959264884244883589205623655711003725523527348543292303894708302208952279713469943291271771877598358942770432361576659508561866965021142526796289030804406510842941749620320788587917035312231159055070669569110913029341867781145812389124082367762882111178380916201554093169161399217032527650971002256486348861274722873541159798642835934965769551815693145196427982182733162006604396735387842270282589103320796558227228426533470682400391783786914680516353131083234829374874348996864755829232222276395704437750451256682211976884229029810767482380131835706365887914688518817607354434839186597060364084820696031731759420032860084816646915269401152603816033753470838122453337870400769028784367103608700037535859229505753841351057568744202151202180489949218023156762716136389560368049034123055093035921084637893569553905157757189235069339278895163538765200824925033259526299941293676508346817304122560896038696591241802342320611986145482255257445108772063295168126036587890135807224842072636595922478020864697257456261532428921622273124980260497001801107110731471134481521380534422731753258585514496058107293426540431626682894767121215882793414392502763386368324347900630008163236271753313024538029397384683378990621300288622797824741945885914221290464865015509711510363432474127739673210198243520556330375485754713457986546201238533963967241467916417856565981629336496539457525121572087336036892253398408238154391055089894739843550277765348982695082148000982776712118621458391214536061777235319763076297350232956116007445972366453016570711386825871652767532131094443613938935333521351644472084093714049215700337986014461922148941590813148622069787867930753179896396124621892626935296291816588302478182466188646789288110876174948043757371635713080423444412807158309453379524193707214751596684213290467595061242768327318695230296104826847562182751544222600727655606400588629602183928813393520935425157800624117724314249963153852751990726697940913737598723628122264819467336472175066271198049358592478386898855096671664178065352844821249683377557163613970291729924487689056230597256716455750671598322594440898817934408454265456543230792623113802328897561825877654014252200450081137444161786287105753381550109856655014497570745198129299723022254250511030626002652357196213975247686796021942687861280401441794343934010169528836224266040374276545244419260750615844488256775350072873050614121519682069178051206578422193429485307494432515181715660620671671242113757425914490383739789684179765230920039784017418470081902059058317920037303469957852668739281565815130092373365288681347956810203381942206970722524462765533363033816618378056257040597380754621028858206957358078514910230807816281224695765320380083645189744870409221780298623198564671493065029345557737907485708990710925831104985804100458403625478400710424702665865674532255350924348766563460337785262983096834134325340616624113551044843378989208742050705430369133980823850386092832929304584332193405091355303455629972728927049871654497806245881564911954131383624815518494698286882553999063459054946980261581626370628187346002745270008368282372835143670037038297573889344969635349964476342202381991905891501510786126970621663314719182212699567535788872992012706033526591587703424162251291282536154235588441362779798526297505870605756998337950661138944685573726985989047986399117485637098999662103573963687138420472553221243874335349269631111401596603293213325480019342988867602577269905627851714852092431535842717474180827421418477736867486236627021367068950511556378457767983267792705251079887513462200568907954297239027199950525860762058559559616645257775853235549956483658043810160589750425913774862602819182783634284185281229359431766923943224584866986883517605111399290587717800737535348758813848878730769716796473166932246631472992000034489728042633257335322587992155577659806951509150141539296945647896512002504717318877721598317908782111261227155781665683460277488898976546166330631142879658409728518886965994752306208078020078536797535411239012996683238416164584111810434390893703269214063078622918453612274928673811753398752687986045219190071992764508134474589977331652572570959024274089644538914993107472188961497425757507508359475883241166123580231334421424557685093165642405613530097123620800027326518399069343109737159662630914097150318693189586952065202604510633168182155859656130836493217533751683362837965226512518105292931615745635907175565077195752793131805300199134335862353349816231252321272138729565822436236686421549664874950301893226858117681302512750221135850246905075990508080901572858026013469260863802616641639015512449445579986455071387462423313759632131701740504310533690607030703774221015984026043251667285992448782997573954551912043308431733337623749862619199840494472471254391356428887105350099016248017275890388750613354271576313654808468507723967447344248338022150582279780351609876618669228161112826503663587719003948903055682484382286928171605835432293647658510661986473280161470978182269572648551791876325840870893653889388791072977473848755435036957839137288049786050851610756224706942257938574642658911465002979431194175207109090276786225987616257148145744038368824009203465250302283311162091491725190715463891892327248276621297803818056683095825169192175220181686570439258560167164414566764882487831210700075236724105139265938859154857328913550314431276285992458898407671914552747705929156941071968903478963316087421719634593531313166196563027252923453843600294920949986148192017930952636431279824733905073733454088516254926913327584305264713073465802907845026307870945349314013963693694102608738421518053319595560471573800466931010152888455254707823907192815448281985862735527334400506247284809161082813567804912117385701623044890219502468843589312189124065810491823225356512915358384736936495084725465256537831647092033446399927285575364210631467434978449203893861085236810727291531368914108658922042539004674542727124999543305872045230111489218380937624707344689286181991626189424799359105317039946191156035913907000907698555409503993016165123965509841770964067875836784225435678260638690579336845058191956392639815907295739750923898169284117701854553321460657730778925938284819803451161183630732039811030998554789176079137174727150054570874285699240715461388716885284984111840690226585997003315955091412068754106429387247870828949540081227957881680340820175207870917937452273811230890300370511850344757282701237002677669412055142918999856782011976362353890929367181586282372785875421397295382255822207579794159754174026930704270547776291919268881561741407583378884015051332959104988560020742350793876559388163276422992244132549132930876986700442972491352363845838270840236272472632176222977915302179584340406839293988568972656357553778877955574989476694533268154889746637476670856752087945102082110732294598752595372668395694096174861353887313695184633237626406353387577701799562338310555619050829115131815679531474395494536517025842035215003724271672004396006580391194533776812300659686128340928909158870697059139461228302205767531039922629664037446631202218172952193645191406418499591310354931803781741662280910510909874269160478850204939338565430794942900096288859569383586159250515123290145678925113582556033083323792896863314674545301711073174784072734016196984596433039758639150131984613464030782442027054669617446438923651787454055610136552755839011435365891180273552188573051871303636285274962743903330539730134021487432235624143107544606791114472944074595512359813986585773537447597410403827629207389537073162941822939350355166936248696112621063452398117638938035464081359558338977172341387195413847587637644621732977064513453385589069168589598708251420370866083289530093774282555985903040940040764908787484539355617882810700504584307457648944507924561278950490160607198216474405942401703473483754223168183285639048147107920851825453238417371555170111692995990943041984322687650229463800441816420503655131334745207573011775836258737296043718086298162404629409025016739237891416486788102186310965147002271096663908360507658531114035138405332927649151592543098631857152596222936781729199489960052722249928500160006714693962478048361478225820133537059146307685861623875486807262998123560928228733857134481741415160130198130720083152523065195376808130114678188769767790969514451043687071401516268496982064252964173028830198306604993889018809140036393753121151440286876374838671418927807904691478765907249523208633528185504853688064276167386365996787832338240877274199836065211776274179682016374071221603363959743002033376039328810574093869775408063381898773033545762904168273267047012926649616212626187558448269213876561266741670989245824584698643527882955309379779558067035990323381800852350143666276378090284061466222634262044532416766718418392266963001863598765103792408734367803237202106743840627557103398883666982978333283559421731776544547183394026249014407777178067441772314111075383251155334908410112887202118221348031886056691554961223583466277468910906104307644151694330785085293003509007467424879936376902615191694940322751841760261028168330269877915467918865465762623294129370883298807801555481316001471782502191842930414154672731131000640565268224714682333258070903761768809446913812190314890199503602444409521088020421812865364374107928081862509266245485706108931339677029885728864667965765764164466342835468436735128067258585862863843544845539338185394701930438302586412194259410172368475168056583536128711188468463214260584922699214510525737287923717583336093156073073960169876488768786816586583695025952582736061946525481704329983962869835690920117097117060021906007534313470806643046942349965389003489638882610112116452983833905776945161424816763050285384779110686201427240864354179866932893461707735424279621950234607512403150774126774589261599780347458044626349429167097234953885330890560185267217458706078725981798824042303740360952365758746529332513558013096205566965066351471548607725081278029645081629947591708281059690451532251790500402342843602228742271867445354789426695199187004711034069456786546976182830161160765475943873805207178895568960304770043265668215358157091980298913722886277041729312058347357309063614928480121884697578792483903020206509377613208889642197655646868314485424716880162157687519292247570126454392866829399509945033410654800271310633391887062778989167894214685492815468904822447585037437138308934071900534654526663513629560737527808073644006006466381451995780214658557202124990995500511289218908326838624869276027908330622624670003281698391133838059070754027575879407914516976600579590801618366830587550206106673084076787927952746203481882396455130652369964522669102883549559701852458578449727065408530033072413044953219483573832893746665415435561455875374461275881046412199006730804883835247096596433558256423293906363078051969417397481012409665637946507409310265877055833955352948233756451819002244185034839138634764409297640728150235371687550327088269466119413744499664543802992109401417823856322516405952657736681462155853914788240646200328910648981586565543579742381279117992110892611228976284905955629607306920877780243662347631211627281273988937224404701128283050041685103245314507161680694569159663191987248108024680013302278670508322094584246201950379749898145661157770575004734347466319098758022896739817168216888268539860326504419999029298268877761479379477807176143846768087054020007766546220938623476119909602749347896077892746284767655669441212867354200597693719483578739370860376264261499051172986918229782476413193262362022038695749397768825837234062617893467629371272782113080903865572072298175710310600143294596405143261795017823779586458565750792648556069223619415700901086694069817603141112925276026324540882045944724564193522428424865322139071461104233203909836854345026578031494482446633649180038107885889669887846303943968196386929534750109627089275593942993233470410507551364925930683894535333943070192610072728111261734149209688712311006821757586410323166486133622029698273730677841159129923337350759420233384550121453461832173483417781955395525945414957355649118161789756829419579294110771472544220733142401494152519091894439051773859723812138916908103126436251852836373530710726869258292353243799540871654924918822077635767793976557830199106997160997832709429323133539652587631875225713894358459180386764932107998820263478444536030514332916972792093977621314685208731408048533474052939560364480275311343866349441789809590399177102869278348880522410074653332784570319557522810053468710011165861458815146133947504636353347264248388627191686513258634277290761170301054594458655599224852149522967750204526201680849976209452901638096732343305231371963568133913829924832909812765976911094774760317018911171160616613413899929226336125933825655918308463315865034275632020681537375703244206314411415802050898657334603776085029877652920546255148233365908858163100975996941936836076615689479393660630637786127107785121475284408431473612592999504155136661586028114964473727986838363164264369350398768862663192753748529290211916651684940785702707391097806587968054356722326954935974414153448377394668959557740441954967890781903049747923892880484007627320890120783450681116040069904825292374486743867507154408578999421307524237810398244941319210416571532027346094595748177906634414473528461566831704094214245819605684804335364698150492471174603777665558204200161073890069770477949932284723236973398002261806325418359863712044040302308722354944903301162465531704843612420941807497746043797270995065299261271312009791822084016218218053966817082944196276605321919517219091133983180108740756050420884641010602290106734462544931839850224388121775418190977600792854457552292786693258579497847993400876981899409589620619317086920180522139346718163506219086770824418977962852014277540402458097657087588056330739798512821901485065732182746407530107702232541682238863810905632955723638162382465462236764309833310080628358179931354658042369762010363713408135620109279670878317151992549539362598708654777925659920735385121073068911782857009654343766861352475741657688767254153434387456008546041943356507274153619734302676790557739510075062040164427463331759929211594252458865963880487642623802382495180912499612454053947374029800939171433278323984516510230700689417556490763430629130143379238774748769867569884388187834003773719842795884067659858755703643059793445879147415532749566219280420686099238543307038733709968212153979573385233822871884444426420190879328684546239769349501171117688439432873027010139135766221901566078316927726185354750950432542867217022958530283135298305470246857692131050465400443714423438869786830726457954325580980040579958953702568981521902652368426317952821156673346565247620194109737174071210451968376157297318554933817445387728869514747676181377399296416552627868594523082630052276868832385221222545936044508031576599695998484204395724818593630018761560287295324771841869563515774590545573039924524392615777303261791042517473767414538924753256565124327723771803361030317988837202360913499040337634852659587534824854347855315860310620322492070681939109089626197285091057224236208602592529348986971612292392501954770739707822264060089644818954478948667787556224978245471826288080829942911694990645507268365585850385894215100703213034711839874360725647732245573968883173891803467954050152553957179241511848951621801488155769285848480948486401989425576742383460231498042288870991868096080454576854312799996891784765813877061927691541099467017477708120387200449756413536043961526596834829819532097797649300469125755312681595044499519238364061303177483795918748476952686320463457179548361983746628899528648231454535095327573235257107495761877587681227621913420995749352334315229264630975622925633874202544528741447719573188848411587365178576265070903395527215241737178314377609230387357587380776365598543476205878031402834397793811416759155206431314689867283740941545078618943561079821302314599356492143230538222953110719951258421247169668490523493411738932254246988349566942810331425614242331295813845271778499849752808736088266538920570562677866795290081220927021470068566014384991176404190166764471664720646182266200418632689156414474706169706309407555015922785283369711175848570647836205502760741551260301276542095278340387071115615131781048365839837685439470865934147282931393942535839859850242042208662281498037606774350412193120515629621634996297718976317386046510851341840729022129213892549949111872468641803778630220392315444944064695545581344637464809054524266057638861605831656807141419388107325695578897087631599500947293935940152778577566657188453817269470091816546979583536170848285280811078962033400059137251896415586391235617645752288737159893513402178071733244206545590192894064782474067021652065930860403856425159807372068271742470685193764121453403843451892219523344548617719922344009539148785738648456541297301046786816734887496370591455153848409030467476808518517419460209534839410074743782258387183927954495507136504717451398428115862754174515781912376662892034916442504369609682134259048336149350433764548249752803831985229217111656417600932848147367533711777504257212998179456803403328770004965295600015365678569982958250111351580566487822947628811413283167333194586943707303307712067756980197188123143341093417295661257846523944407922760465850965127207995933195029751710050279020523959244853164304090534028094919341726179167529206764610444779043037108308706761887025770168612920550696677152847144672337569777322191690331058328759191600061151555280550460125941278109628517402587425424374669658706465792587512981427866547995134299528297855449109189889618022461668079235695130255583970614406656567887326637560789881674362077784536529014197636182975435352550676309813807117632579989461056190254868876906974485839485715486900687826669818394964599104692841240150951359329154905420353211844110643838701783777082187209542786852754122322167046892881773219454766295378329982737309031474087113388415227046596306343272335648755959249268573711240639415692336096332220569837372867106497537690827338138380455820712586122875126658269086328501851167888572113947800564921141847379892980830565800736939948976344856272635013085304731327672245452770693156652480738367906483204740207050428379571854516992314909087753841354315233329428708513681171832246601168920655689927256549981088963049146509985339010671756106573851071044710188831031823630681928715398243043170743634525893902712944925033290865502159488112470405170069994244532865829225416410028034992004872326991575193894627817118825767595244259341812240246063913602776668417887758952699974764249230937567293302435242127448940312082661927463349375415172589815285849562181613322163508331405015749993536164551927116992054091118187658481848203875338221878582211168040112417350313280937095209874857001689267477426323396457557138716925138858423133398637093718732128185117482087857863839418053764357629937851239672259718848067866484277191758136978053369666093293559870528925049765840352447905414487071504445849449855408061748072769441770943737118614996988194768952709470597300000012458582637516496419948422949082652853467465272380516452627705861655918354386294147003448746738665329799968999596285460360289420601154714432679624209106692244320352449846093044757570979298988801256122004220183920984229144465905980946320358298237676691220946082638485599514587933233518016555979805569493495664896365277784803206916541109974184115339152878108512197192322042369287242508572132090055227292030182090241550070431880701670420191190861653065916409191665945743261402609933115516051692665645594511009306592166253704756148861844311212582559385977262292039997989894327335784547050028870993475089079611083860157908293607253068202325835774760537241335843774657203113965308381337079302057240270360279211592673545282826015371809917017303791656083589892798892959233691688949695478698121947817131737525936632889456838672103023540010733781373176263198790606298159825470419944903691812511313552694181133125873041357869514052436285301215404718204573943310856480673155930678845478875869184816096178741830648128334128379292619363060186591798509887567787141124349756112611672695113585875273622496275084404492622649758579229579865664831926098673199176729864334230094873770169534432042087523655216944077414743682889970107133153999865357430008682389826585491513845031792428255620103784009840774029831753350212701155598587213631804253873752649459546776293344941809135113184374142020972093846691358902288209177006400629997274313798932873855078495935761445015227438725179234619260908329982218989957544360315753089106466740174697586531382444194714920976111436129005119053798193864441277910774701792147456904047790131124942241557012430104277363488152053682324074160822656063741292155582422781124539743546169534505490715467497585188083805434786008372218432735334858004177603224516148635613129152288924622623922727260967335329309606734706443595542692558987557698517711067235734447568252111686970736669597617277125788285494634752687218238993934989033010999236157632269575651115104148250416724030877516345192147161018641605851576255165439259339079640705900172016196137863575802315913412855978860538816413515697836650767286432259627372356841533624104575165572120775482276111667715742676398801934840414633095647696777964804289105369003434862173937610671281850641637825252669976592555430905383943325188358209882031303932901027714426111585224111571996291299103423971839482956281439161024710543607894633308103883678670940368419404824781067376090277748365641137741634398501366756281677028154922412361755873046911002189635867548606455224523849582677130880094302446989625401283033259175699185155469697302865931197648288081339947256715549518912565929781600127868000117078319530741466389620384912101603350563004672630222962069181909200628302705744476472821526284793336935358884935511804524674965479395173964178899041766024406993644151534440371575223342932160681893129331088996846691969026184395425584911641561379922258592985067712554212819914146092976027163115684080009426860979274716619694954434003224048514422256327793034064212003276695479915254243160203279153977026557113340551919815134067365012362069105990945822671902746342794442702005483748326638850287727544456208557806887560974549455191777402651366505666215840447712232082820696646332910896956393760270966825129980277147107305187171819728063189343590584554030493026696348089967071929387311984212460242741483662504584869462507027749810143144291585011850656555340538360951107961369838433221185892829218018249902908324882376948621063889665615401568243682287483000283354496054463654611515163080782341304476985711841577801284917332654145650041269318326607347846129102099754931278880965532305152901800627134707628956230137033203272516152584744721367058143116238862735309225892158444246510920688919992342313941720753424198302400555118522102545430669968108652704210719048639481138030639535322349947926039468139553300184894349570081253804221109424368592574376816997672127660849823632867093983722241441578341032377305101625852306892874424493189602321686564372283956520531785875590559254993750738814899228582646754246926454210806551929203639799505615472067847093424515636803989206566612917680856036087958462380457675095339427437354866656653648037007594374990118137219835382028389249459450530212308965959491138603342911732060903174136382677046973204505867275231183627067767408922138421196973774305925565503891989834263548520085919286678189537799054301483208961806938535154894933800921926604140620482350212827536542596093028134117291700613231767416396607025634251145038686142984315283119695078130375234314355704700258932115733923248308516452541800842736865417005084062099397129740468899281925251772887856338882113586521207865075388934456077224465985494296713942295237002969071960117357830912453430859271920519615760142696679852175923763443445497538160905571757993312479949682082857565368701175155122412545314013324430208495971824799876193312729743048288854490421728002681994726133526027990874346613352595525193850172340156089505272893396455490999421469816570157658984206235864946841505251912780405855663317970246319877511160501472093175322888831147958126802660557223410887183277584703978225137573420371796608318297493550085479432267150365343842227312397547609390797247291511751480272205054743213933931272480848960667040572774548050094414892779807324460227619254874082352666020225322586158318332791440363625585417745831798667057004651990161037992750816646522399102557410986005709882703169432764219911582874040443856095173762279393339552895589590793203060461216623382220247844687638425142884680611551010469543137389595365444790305012990930611890842585365110344492540798871625678322487604033751887905421071154299217467340659947745833158820456291628783140997133961229988348215341332640205890839648046200772541197764247831836084992886845089284513406565090671508880595662490930789225795278400694689340513894700114935386607552163649406557783183099771641497032594657073567773548814358845154428468595926810804644304188628039827220830296370910831854645274917421190495693579117132234338936715272202660791393974998408714842689156563810412207135414641118796909419581957631413995287001621550476868982313798810196993133999561001094131976833026010494009386743676519971871611471354687380649859897207442020414112778143735757619311446429806536413369588777924595506428613542902846054157441993016209098461121017876797456048175771140746297959149690996041599749128487920537407207751392489707286159317540239291768223060732874924420879663349149437433700119708927851644291679523691726982610402170576437689546332651465124045845894290081824787555839608988154095229544447789917264837428249930622925664224399561933726115443582572316069188091784790475264698567670329611156901202075404477311231111139515262404347431827156665436861405537019470678884224362544192763931138467063952088760248694313541441495025794069771146573539856997892788649010021692831031817445464983503888842164135067096430831993892819160243928234527667809913095806446308991082339101339929852954269723662689806784313731447057847362154524188694640269047170386098026616530997687169870128914729072232041980460378675810445091956729759932859971503959386394784962564167836554229315450225903725959953495386729531562568103352094582012626561402585356805855885419306501890707551206977827406289403185842219826475784328869102084826188127658952810378021527689847827517195503662434177821854144678536578247088504061667105349343487322076968568652213862944386233263961481599494727364656191791574730507804433428220097874077567067854448190845022643184091619945785796690842572537394082392455367047107573137647859086317296274747985280505591454085247981792889015855307281864824747028329913940797489940220369506054545144809196557520149836086394160897367448146641782856819252609750899370415624752856674273450944694958406573356606974917399236409117764137001193623069938947359514236685692589573343646747507190170915428196749068911904625118453605121440905498138647242345553610936228428839969800101607224597667506640199314795065178698521472363148983942084289831393495058897489945754477264818481387343632868744030291346673259152197656884856737429202517395861766572967668582921499920258619202407790514374533446312436394925285591927236083792191975440474833748226493825528734959311544410153424770630449163273500979929758906388795119022108359714177237403872155661807431554333712856440014619826853547290180203617922326995608862943353089068214645450468685895796210814752307711682142116468816226664953873915442133724462593817548608545128449513556961649160560151016418870939751713001394347151056983816312697921530351733444495559156935777839787266856745280270192698600171403646050018689019207228577416927543082927001767205110800534139116855133601909221564723736145348107742176946232976183843453538460674939467248759985003552789600995350832357732867687882016669528754158017985314541268830068357173775490490393841770195497324525439463762661077110080166704727042902962751090493272567216024418700172899493171615657498387587359335071009058636507244693827631202863804301391729228264383784173555268188405316724002114805588980874253366081039463807006022027791433718445194433541123487057870484514905815886250657646882698291445159858396027479184048547060353315164555015323826136854058494660033575994776677994346158073745987185925115678235727197062599425692601231755146814724288679669882418234150628693487304892310011119042098024581687948012477201889950294135890613574374088586250482181841465328164531863105432942725706757805119340254706629912568004891265157845374766987417207457370690807835829745854931824649712995038684163114923259453008683539077488834444660665712291124993414230790554639725333658395668708917224136918016921141289272391506081225773874483471391350078964316066116156294530726250302636884695129951165636399949203766805359521021104042290698071897657583246141386687425767904376958825539535152401434985167959009984235053074709419398898553586915530772397697393439502666757112314787442595498776955826624081589788280889215116629104306144129402031016436261944835409441221549549459190828884043950349296051602345875475820631122481349107185878771041541236020442679227410725053449610959641227687490683656833772150960269349633200651088510731392423393391609131148687867683302968063983368608643778465027343715671129200537113761113972914379130635396609400992466004555364243509685098328583626369087181548747162604682003039028805291556366912463764153640546451687954336245494453210118024284215483866735280768581666063990650219280629839464460777498231606168049745225080366228145782124983457167451935768497638136009184917730760468739015686703577467812914030212739938305631766744155857440920677803334830720305809801864699650895130146040173245714524512926313401571909509891562215813758928191397582035837163130753862537195604794633919999158172795252244673811054824649752770800185168001102351394838746990116051856443488315083280153011673023683982049601966821019306861038325677494178383420037677975854143023948103359642339239337852112407059974731597242129424465422031165757586817247583015359750476860562184500354605727602890472772517271529366030053021506807009177754250077557219504799623528350501409059399404774451272113934625146854405522971250789735109240939320349720161061098061274266675107149769627361188420153287724028505090832847982744896865896552191227744907405576848207113628527384414813473176409110010710611853894448450270609395608606557041974495217230744260839590376224596365369032046312326219012380482508314123651390929226379994975263282385378245029189854026987153232388577424469742972676047821753775616460872851638064441213818574032175711231643629649288516352843771415872936123870546684370903322837842620568776073399929333170045675417641561397910232016257764817978904038494360340588720276938916868382188002049061484026175051823122354775365745538226559955051611567815857884586681569481369228904823242356456251063505914193098097489234457408328910131149192852875172534872215397007799952054471714792699400854602797616646966261638769913840224748336079814132795174780770556485181196675204374861313174110710055896976516308922024163417227296385351320032529276221007916328709172603431785509592463437987627710116650502691375584402104062108602220501323869746008559795387285310632759061712435771666577627943758958271913497194955690107214501406067794418731315679565573218768806530511020925271009136472485374734240933699727362029116206674745468403422660290864197094195375218143543410997069319891480950332013432633129776665459049902069799454304358747010317145478007036587969547145678054503115998075370407298806117320588005471070600051889952440306034107916922020144121999553666221573276118479760861111574090033662327707466594263403049005318847906995534402571484587545878916477647429613166858432802048498505094260035334085926192392187120812514411900945893109617493288740105336942441932442402924863152540263769018479241852882171123578174735398476054372765972012219775149753471414810417993673575811643224341462911991357896623709133962642497392483459386999725950477374958052037342227584947274655049663988187773990093161867099391410166717608708011922481166533080947370510270289486776599528035224829205590839547505853196226117445915450707405145558195646337400311187651856512960622796861873025580413681709534268456671661005409653256983929737252306306420298202963422458294231831684775958543064136039192696096720878111457713365487592471056184294461743755520489780013054000875787400559372978029517224373365096487055529959261004987436161025372294756777288405655231150122656517777798125162941648945920045014351113247633093398960310182632858744705321774251011318056840149983660053830995496213679277197757978862110146266266380009131482832079107703655351138211077135155276253308090762235279103604281980650665775262833320121818683030124712245454328057200931610460905516460271944050517352673458232508956660784207012894800725907908202316562111154592349046431580367930509067411708346964745107274449080059239299077773379439519774950909141619885463838980911695529482806810395802464721687735342202702186046893718826420077830893767049988539567443828460850474649932432415834879963197092663078160580809291671089107588680142541932570528531506428156948464634236934319963262703085363862829633464697355324967296115763746787777306099419751441939823709933404257930886042046119739786995871397127543728032996214352190013779527657400246128229320147014631081509557184387810551009134384340798622451990589627652783185124070475369949429213442330535997339901870799078197833469849079665547275647365715125059030185655832424402418400714999149793465009906743113472362666288925714932262863548409312031654561328092331730864135527780421801595218087692612575343028962294480423519362959654206558102100147840603052584125302200798279009515809966054944009387920289509987964152616026418823398378870232877815100545921760056072841007252661415220162892871410982596866112789981149727260792533026827312334066533004898040000108750381472321323556206011144245171872302571666687668433495950839809458716024492214571958104422986917403341404946802711867713506949193253864396092031416917624883134538228861038532298320794002176904419764865093914735324033708308240402725429561408823592258906908437749483543922573023754763489893820925642295547540970063907270949908015159222871365844853061644717211988041372614706957851924127056622485574764006338875246193689151075830309504447342173170486108574736320818265192601049811020811008062363777721250821909536924894155128476600252305835493845747755771816933925378869620936077944909505736416279763341634496573670808951734593911777347060115326028921130576852826817041477278008866998542750445570848998177884905393048397277603472994978658484424698245524482806140917492593677807256865911872885533678187689738642635611255821034375460072232404104182641042334933289733694443156179451117771083681494333530846006914545178327046263028031205907770646129078447691563511665854135661708874909875501626107631505743666999061228108452836161080353172533833678475154890275301205594460123265941551077420116120189701386449588931799774772290179488631139579626359530651817628202012126978676057893494056060240420791497870225210666157146470339874738419138875801633609764552438696040921107703583430964854745694125740836247010392911133911488672882180957253451982350397360827863959031089632872715350047076556843951340618222189622002123684619905083086069771399504117592818166301875660134881831520194663655217705017810083280967874006151810756534718487177791870452613807082667305990892547124716084296377918729576396465896952077148937424473177777324626717884303946180259322283079566034984936058417525122038614946243589930074142713267176411555602682961437985188721741050836181476029034216444130868229075994159259905354209168154193854150882333328089824782180377911456445153885749680330515009347347983340593050359374636775162356679830403253665925676063629360960617327768749514539445213065417130846713629293154103086261611571530606834326685057959553026511754105634284432722916118999152824679395021021453626264014022293271887356478535231778041632318206201114968298428501668635888615989394580491651117838267879105503920347246218967795592366223971654512679397923675028767218960278313348817888829669770671636809437607124833653183449536532627881682783795144578548164080935872297163562560926337250190695936332480311401280156084730699902848252020171745659285221346969899373187587427220848321257725736661504419261811087268438858049580333136155400816014986336954183391723848155559655231882687817951914678044289759439788656091243765943806955332857872489920490493517019038304095232197552449149211015568814040080132366517917756862816731084557220833402364418092882534859846062310005320153139381017007313916337205186331806222155321462544470599891268732797002105823158720064218831110957643460065539954672975601362684623352628085997013718245333805775013281534623018025619676197182654663759918553500966168419047559399229072512009050706337245961024806406386378139181314092496641616107747988156718933446398476819186551626800723156354410988415434915868964333450925449222425526476654518465681869622196390388101833573791655898926222689214724841910473461197219774928829979728102616647524962375397700348439774258435760511294244768388957891712062228488554334041081343204886420330097246238108315826675351862462725880172790652841005708912967651204762222719644004063513546461738549112285035823720312613476245265872860024740598775150952007021797733320558316297538209710547287582108333652821764568190408272068220135231423593140284961442715524795548210237000498389248139774045856114607715599274230364771249271396915993796792412190155465297680008678955848589826594830880418100067453258235311433515448818214739763100335646669624950268272147827585428673927916937271765731048432469117486883927866160321387693660157434952025945433479225494896300758725612841944108921206191594988117320381953722034045039897865101892847925483340613957776349996845482174665383772938182614950381440151290752515341697043970496719496748951027979925823214103235338338021854740008941774249238475256838017714610458516700672854119998628113901994116837515154738014092349143289143420011510002309418932289688868647574274588551238572634657446390002824672427102707565382018528687373961780011429188923351047102408328428335453749966744995652840074162154623000402313681403223877506832922649644195001626926698973756943040275412882302612494176120374795786297093415420333175783152844666813417408471929477955032923305852142223201568812479745055984196339805172104803460950591532653918562534298780768151453140021461246387439696324738623324196554070973186496383866000343879286268455028837340328595253982813285934983636031687070127090603096265141062320702723673203863474146256496118930942996404962294114415933407610256983989885167576393683346979433008049422052594674531693394770244414485143280479870062832964291363828659677238398928347595365278275226845221433492480341177985716519719749712293659320134506265332912998427175493516200176156467108459589629532076783947080580630673282297129092948852727236693728185929085748816584915131133070987798242575326398496246065127397398729444156160808242463066250528597058860544313807557396210109093050442941820197696139196176629574575500288843873398383166537780331192938952646116973503071651932918651488155534956268090987210440994217891370820588123597770068890625131235202468165528803892446188402109161828185414171009658001655527049280745266003930696900894195868259292113070943804237459052439531871927802247255423763168832872151954391827660430705873249377356615399572125694380576548939959775828996851567829930499169393755312115504401070662292883239424599311646398667325792871773080928244523649008762218757740285119361763631105527831644630745548077878092923999721111180424875511280928960155085486478461015548458771894520062798267840583371708337760120402503075229016441644926710271071336502494955462266588597927077342411809117100385314997365457594020129034402939185555703694111609703113402000591054776059444607909568730718963323097569376684980289417542477480896381266382713823936191948840520246364261991500503002785484054169447457412313268875551959610137427196182512344578274609293725212038802227288106442575575364003117122371751174391181849780597292292152721245842739531196487813456060451420990859653499668825976900152528379916492736428753396894852758626628365373779907087978190317022183542316563358019868735103769820459418472611314824702500078016681297429091569763863704546748024354429420862924928182637869691365139596369859775439905108636076591004594936156687362777869969591832366619843128099612374876368765071056911877957853611796748406374332393790794100331497196629680556794253298290546620490375282218315918643719296667337659349220982698287115542843924155975821034284235016493899100838269099868607271702672157638072650192859706543076021621394829461421763072538929597064510439053252651591943277881643492548174932194673580363365115904977782170944424221700502105402672643544021915200285779561069893169072330937108025230131574122479171234433075451984674030241676778071401186300489513585550274096828574107346647037352226624506284243624519045167898647422044860230288860233096529354110806732713000623995208323258125016103719022211114939126733807471903533706696412255283323784362582289150549782017971609627596080087844625886395268645359038517199235252376059862600222347544236894161718674621471683520850227884484050521993617456105515175466651589025624758517189088754594069661707905526088945893290614931893077143970308732815672071555552175004776128517377972034303485015578734934332249307050110157954044494046742395350006210830434931134940558960994293084330672485421923057295074359763855077078314356843394525385420360454876215885532104736002060432673436484049674324811344089623855024631072992785186068820050933996022570081627692383643191314771892657346439116819910266072587570345606236093560516220420001150917844987159111370944008500223449410829594856022837603007155399646238747027065948499830510938396625932439848709422967886282480006706005020788790362860391140800524356812413874730448622992660612899246087939279367731337714916875624297206230979921256645143684953805193334436881111771083711208296014569727802779207415887519242960761115002122331168942332502566888150179684702604154393044201551665457173544522649494689941970507364534215128796013379819211989103582205034658077405847142243985315733754862685337214830923809474364854295631582154056189084171921909437562117207293916092702583743221969877003564635887251246700034568869322610186941785463216559363248087922637684775790644361720399255136427469548440406052320993650938583101853446559755961895563612023222702090663832925737815041043690135013093683056419996041062228541478518870966612271728885781331887269186091122236476496139056320710859858827280308192060973835361273565914708836761664950675122553427063604692344916225664967147480425560818379992690843570053034105524470131953291181971592381757254240224197549387250107389102513587853850002716184662207214068615528069647953742149757358669863429818427954375499861593229873946960265603913757934135701537582560327212305275731766252093966696050055410374472517991994081369094066376443659726288057359401366594910582811214037042229988759313764781205797460731752204677782102143905112406194500809339398001574471805163264213008589997002615367732472533111794492311127569435867051501229890197559872067878972402079885117697648807582182948014375477184459299250443341063416074596091384774965105516844850366045857626459006256962825020526770037250776196438799043486097748688944807564376675348895879172770009017190978391657993131813966757511635670682260115556911827490915792780699475874127754368028023713461315840750349152143853129710948766718100650091987654105219159563026065613591450758072113809736467499069656344978495759999802128553996472462132464072082501334021571354108352064833690344929498052596159259924881170705084635423487750466398173369473279218257096343870742744186309095427397655521117282052710843885571985291252130530651972678496758788844243910462522170410420947927760909248748634671741448986441019843498398122332095026516850848697331398708923349334498997231780581414890688048306041483227285839051039103610224400966484032367117558871848837170929291511147607872657354304226935163520913556494276566110741779462540828080963293450514165213272991147473335326867870039841774289576431744758981493671680760892371174307546903465991653557141534401127306034661987443699136405820561117113489676321928075728764318985947563531473711297558031972441146681879116094072817373559825049211885657048623147066619324540080500400404363867291917621747353622216414211864113234712390240734802307191649746542235823620232148642826154285460917260139580190674166744644397971549962854807499845235889798842565078775473156440440334691274263637456495829478563686256190495762339620075085902126183177736978985957911937759608325802457954012662502554719792360152796087177165855311451900526689658790957286860413720180182110400138075477763723341998193025488885532136932459239167501601145865868883693414072395137355074628273180603349396163481542098671089032315239453023395775414133539484428968834443601707425320466388257659479484802408684905658659546082745243860099387813576838036411143384821738729088118376011212176883813508432836769762747543660180459910122634658375862806871718456630232982612675617331486278188943291402538960509763341108090267493945492538826745560860870577274653704373889974744000938900563898025765190771290970597322166836637365950878689301861195376087815638563738470441485034852826496554558383916778871133350837896068151867684862636705952809245256261612586557299347742795769439187029429999602499881519856998110322013570849072775132431688435496505542452555016653687934071235766772600963274859239207042718633072331984297911360983561808618770087338619455010008936175310201750560479621386416901312247429657613325047897659301468292546818051434932915957708274390943927496163014398250868854703407960839825155685899782928520452448011865556565188584658455150863868965571815205688660113870724273064325783452472136282690898574848819873319125125869360808014164426163273907777205041101177121756018229249797468209948224959368003456335461755843419871547435281264759528288415352127696992499890876381003785663288311612127056519117645603517837830076197002853075205387760661835970716509068355481459986431088304933493867064911600561063094867514371890558897113216492283207665131529774739501152446558823217254875722379237067726109747223548513639140994931545635579385827567854051094744124543669583953600275852085477931084594703071387826999035056912445037626846039362752215538775949807090665721139757946771577034365383604423994129704825344958610949675218963306650171196410513297613598378091380744747201557167381675672091832593990551257466667095990850673347301121685308659999630527655830348022726267116435448350402965131618117333384393997070638984216719827181799947358581566787907305950929705851001040529292833059339574990470470436013581549811424460892044889467548253828609450505128058517553070317045264511114555157557894791987622124123092781287238255029570170192879254506956788300019261486121387380721061779050030820243374479979213054920907280221287385461618768521687189409296251345797742763207881720899876858046130080857035885397773348437613240509328922891708376574364741973685243568048208312915649187861203816817073647989313554444072012669249502634594046396193816563714938864672835510474162976057141067914140008593923260918043385535403867421041449331004517556592592318616531779201101770194576303046882781448562268890726646261027258970225897212947200137700439358979317576640389642692672393563632709674853068939661701140080564629077115781937231648794603768372179354450793138198739060053909011833624408401164449383784269022195313627785573602650640929239680685583319508793536960643763148584267180922959362301020782870784724521813953398087769191939187214584362823250624126195339691389748728436992959660337859114057311362497881627533857122622583334491712218711227584902774482372368730967181690420143192827790162904360626480531323288210920632618177782563617724599953584728042628945416943490761960068533885186267123759130072900589377665118721072202882962179019991440041623421238167420628465491773297976723007768251284478730088428183858729913591639818087004783335563841861947399766744167309820011427771568907347192873724319579872988920426708093571005370863101686505543184562067760111354882232894705223729141313783800793688950567751327243292745281852018824599045538137819472154745743089846016990689111956892114740362093825116836708414232500544237254903679957526389942955965138580631034234748302566472169538325329643955681437837885825835248599221139776456777584685671959802691372387376888564856997908968520230829269050396956519404364646042055533376342856987746179035510464999349981255851472403622464362431099106001939348316235376098403456599947225551200673101935456093343322854175431282117413718174341871475555909633745418077208358188942323381282024747828180356148356338234861059925254817970562981297026463723314218196221465163339332343857849842305107117513183043853837792257517870788643951724376917386432214988474190145230902105375684123767032786656900681332767935372045106312043720394406216888675816242861402354207620779935404414072522135461485670385039494143325804646095572016715261336750589603822893989770727607493172236498497556269471345603802545906817783923171791498825741909488200528922381716203043609317875004648339031361751267163570005784316441551536951790373202648166423553707826338369920961236806057932119582507691260835323381559378214563790112710981709310500857449587243134207793533368860149619593265378228769638185838438523886222878226469445686135639347186791208062711459800112718606045654195262253466577651716161230855030310828536014780750043841999644521802590285957568303249474623027082759157193116643191468466538995116458732341337037085908966015224690467301003968590794761732046856117850495243052426078689499591033787714461340111770300668486394120188213270541091100607225760453002096970248278248657702963141073792918705687481876318588921822538619502347335782535855458916404650816013497052386897599101166210956355210750727653647861241408867957032107073379626221907391418851345819429268301200769526462148406664792471144679065539165326770717184361285965867891909597214569644869594061890797934283728390326511401921329189469063728289582349489527151433682779261220673217581446675218258686991131287934810401792980236703323049451335129265122703843253366000046865937029414096880068874019860630094208961886637700346533487011836672309404579979367035721211599205709377291270788251106219802508523778615982621710699362188724316466067492252826027897655826006508280885573755869290153636274730910023059337309019484088745873124779641744489499524394501712907302394509742177935242528072939053018308925712016596763086361541413881901659405048285110002679891011486891325319354196128447181817142464511818746595500626588198618415327842527660729340168050397161438797504840979401684635133300058566465011633333317911973675517531865187526420746493432763183116460096734856204984700746942077311072427344776964518612692459645765806206008412925358969906350041333850108422941161019676901499650018033707711025414888309749444444532800736901454238527178248960630716971200923971749453727799968421849408340652022089454856639413105762780812373431141435542582712516691030679938469384524500485426899628401103680938178804195543664009934236879175690113265802836753846459402399243922769042220757081360926998059378840054401885080309322709251984312100363003817056098592414467195511622626163482927774822136639951765227106282619552009911930736659303760725958514370684857671354345866294543009437099701560592191437015015870098983066826618921609137178361267024871656209533235637004222560593270384147469576322746349566474265406213421815801951874887713360710150119451958068729142851879913084499619303256952549554060904611555321005720373153700978397861887138212573065034272438126663073759520492782387898696958295452409095942029841586267979355949333445265383879490169128990034075107547974047664982042056861473707248977664383352043414723181879705120509780643497734048939075573208891756220676571050335269588453953638105007968531775223744883508751258611245188311058452650473765438025040444223831290140251944796163894266920486452283747435859810237285412873890676048072513264293302102275175309844342373997154976471995513916561980693185960397917243263338091447093716913415714354037735379683459162868961335127493152900673366646124965342337513882429512525942940397312614187235553629469606104925765862489444525266707253586078462832266400367200640472588291657275246548456598574911690742437819942486401179380595085445281122117877423273928052722799693198262588486882280307852487240370798359298080543398387355755211101838682759527294422165237769892007388654753836543035689153265570509786255652929676303645669744445030572366392092322093062620022817648428531746997789202379038617973756789507854909256516005633613930356256140428963839388888890038877672156470124675585331910436288103034014487518120776541798512599741977119106036011215042847756574121147684486838091008781727981145940822137716353660572876342016166032217180593452282728872003175988155992395997304688870550644234486022966068350155395859094671191598246366649243150867871491411431408960590711174154644222145179994187172271821759178027706516580969601951552600103354714331016367560985937794403592713601715847063619749843991824609757576360554361177983709578803560160705597817267642447732103821671409107754576817125271403233704602154497439370173266150087131316358998957655562972790343805018283631973350719114562223419664755194890109503925515722977752462170746902484243422425114664746987780390032326563908360040075422963744609730819324433821117020517785990337712349309676078532419490655361238284432638153832134219099719642197330517795141422305040874575485501758489302731812962921610070716038399656567012798032549808039838695164161722739753180355938538213195951357083518268538238653285126954710137313811684290141203457566758550892500116235823784042285322081254336173492708479841875616723949405932294972570945396624404524546630772540847211394875853397573595348845339149021675927368915900306966269888500369250905037855431135604178992195084223192595092764237313575273343802321738912619228957135853030292518340289137118893201646843760499839801733655601883026377878785767013261019636593126746226432803624763178741157762984256073018442845193395139089768376772984200630883926440956019705357104494499032616190415080779968691567250418532485673810792895277853287817796617904463185466823942474712643676375903215694589733267249573883480721211160404678607395017941229245667803310309237567825326250781183240860555029273168819785635986735362839181917224287099899890501405631588589583551619025355399078628721114572507446141468757620014743923460883171260225324482121833189976754393231444214443128868745694586562448185877733262509608235770770333941086432546845535223405107003896466969161094087256501164093677947896100474487864365486514885245556227399127377630831927383548590688470428995817192725788332241946099459229980910461387168763509835946967010618810706975385666329018270221066680384527905818161843549449218492201363918323293714202104258338617587331130952837495165550389988700909632827624852597203192334929487061236403929403012327894484554930129439135262719456214570893420202545501895178554083650942994574174010962161635658123080044217036551518102820466353544783374479941249044776840164872828723595355521791428838332847882123070538134704843511220614188763458119408000172137726806273084274458704047097144398843874433991827482172070494738280403852590662378153042068652298427741570547795258220660486018255071474497696846660279356278751994704567072064221027969175150427816044381630023701379617290447351384598556301054124164051278376859209937436287406172303194958249826061010329985856866202220800105101201725371902310606732915328715041765368135255148275433622152709062261911224741561859008671397877163948731052904113289215698935038701560995904631837196641776137379794118879482861812576506653948584682461601489008547230037975220431400263248505049393911420345425824228579578582458760957568069275307823432598144288835757066829989079983537247392540037387701203531947921095016587528001235110625977109821538692022988687773521286592458452127606405472148267759667388200462333542364153252072550297238236134027262962374497105651372369424239556139484083287599398941228126335965054941425918128644741189292359425492050429037461480458347952432543966631907767725308153443530383196817320360817478877697739408391562839095665575786650087211334304600533908727756920809554080322158618162691464571385770534450209784449165181668047202833255308446772609303870138784489522927094264913566101174347702424445301521993069530448389041771546381866061994859978853583526454031549876682152307469554365261612704796057916028173165380332673912338945887066399902472252091231243131182207222913334331651858385550882062016239504605255130331576361858632381730856696654321496722362234376444100484642752965201711176009159453242659782500637999560684217691947114582440349316335692781623115844101441972063901601922164539829186197030528694603329879150429357444226731114520520985753243558883886455920150014822218885413884531681830882202257073013293797007264723135709741550202846214900555089881449699210184056772844839909545079215494213691626202080814420342081299728649346395255796907532086536003368269061626480286751060998288644790363659902005832246757380049029485312673344452021715172306808145316233859007837644882045202354857132172644385300503587274802987932065852884699665332465220881049363669025966354503051450263936270313324217227136835976395002868822523023218084967361333105247638821017693695999326653321044809990417895555650781901563563947938659512179503694701240155169201086386894284442207540380587385961599078600004775667649732681845653444842857834997760471969692597698838992628510562471476679255185494540034057468962211057231437389441274829219646606108200458909160526079343309701955043090761765160650646231029869111686718963217451276252560637964192240307303303174092048369166139209405068136577691362726835616479195197790955074065678266247956525449481743617655035633718814337802274263065747435291018347894666135950994914095159977930238727460122070417057181185241513720009567386645247327109860922020240964163817589954880032520351342809753003721485558565251850914253740170011204657859611593260430380156703792077799401970726740956096878237854252238870438230451308487184841438037555890417885896109157687264305277086653076478454172356867163812099457261632392525881261495741530167587643989062765109127717901098763304759906932889121397098368763755998562244363694699789208614257910302633895773451284269754939262224270974456868882866828285568087997741431743262014869732387013370652542765452896951379622385519141002718139441672440565385478624795005458470715064953110824838811872409741969709648441369837459669313236334536834175871654221327839279223929301665815175041330312126536383459082006316622081353563585501067353843137382054947925580705561086524626304343356902099935005110007459293953655206106961568714814227962535845140244837661513412118005234933443471760596457293163435995435764226100924377442575033175026630481848088287073393465078099911570251717301353119360620771065179843875561814300402558011427698065322023759007226000386600659858071921320479971059724330635013759043847241935624798050372227713415677530042232118788246452338693357907206119552028418595530297313735044640741591260261740921808282286127384699787562092285675685089757660423929483169696676565197800734394478296414305311743815034751446057936349600856740759167213389978987660263427932487272103494536941675514059346599110832009784374926017336041664694047559674216719918324138310541947767530022165230323119940431245303406334118610744663225890399637837616212797829489845067886480362951169256566900401767688428981230275059348769679753017695500602571424221047509078142028000007954623826706247504178870723157111293754851219081057060952201884586132121163760732207161269969226435821489839393888445189214889716364939715136824304709579662477587640437107555157893998210144361554701486637298689813303333420844646190927480811391793930151285871386516392828033749159955522566115344951170026203824271235187685815784992198243932012688899286685147955928336034903166219354569562246033559969366041981387711968219539063441934232338717876640025396656419143836919095940839310716337402826019707239303639516930540951456321728057025278648426431543249852421755873834989555822363538404186763233840282601770583273833727439383160491513982061470788897695170461882584343549277510872287626102387564845233553095572339207096881195960918858251580339888087565176704322475725638653786106511911571752282243160367194067504887025047643301765908890266296354597525125436705577701257235122219647901927738524579538060481104187225565239794497530395126299298795458372960339972050614288383925214569390478469438144971586699564129004235579019219741366918099875947448665613466323040721742042273155057525616398861105523362715215236648650882731021896991969611889578419624993010924294676196071710685371647804210993593979236302615701175082415599332034782774072511807840963895620860141144416426976102007988369476897158418567981970197145188913082995308956040125401934206702715672289721998953886705795217833241457435277896581669771100199203575741048868507941364693984157712256195562844077322578083861241258062594239329205610422728218344261716055820409364405275136557684135223604936683521512167491983411520979661417322224979869693998806225369748383406587801752331864288549592814223740549802662849310106386127823672718552358234167209334858672185560374423611728289478088984024889231063227780249614351922996821561412308588737852497140962435449715711980556138503705157949808890354277572053991096097590798319297554729019884366490076877415265570062700803269877539751564096664476762493223868697666966935479216268289833708841402514908483198952076807389061276856421378949089789328962140207750232594685098992694819211553598580957744549061263449225716243443192385842600909937398105858799809799534188561461326731444735462245551402237862374254511515425687258183705250504152130293864370897399053021439555158563338348638078141233342418420716304776169769631749669960565995795184243956826784127405251363839302661212425368731627847388705993653288015297987014097956557223506322501871199031120623813002342564505266646190037987595923377738478380400395748896054676999941824165503277901385427610569436474655046827043709967480363768188008066544816714481970665868267562818585401525367374694312068935062791656936604406514803242348625454979564385150018008163806012700880963860995495816563933834347451139771175138468498611307394737560638802489897734824418559893835220642514026736934959081817156128390948538674381882534379378673976669864223269922474528926186276919411330652347262085388856390513086756643392727649131206173231543550610549621819267267687734431616255444989522729028207142942562368324147049278232169809350641814557570825772652985930209428878405126038041547695547990854730804558076945645960881296296935928695756090568209358043157450880888335679664133414959403232178157199881405840301262547772341938746912626863890213531988895990324694968156727009222681225442963649458849689918832578145570566259987555776794199453362202031723833141882222395958690935158154728742980518193864157397742070707717658833494646814304871195034444933964245020366705551131235880089981039628859542389926905476194692029402292860916162249513584444813291752106742901738904410964927174637148291750834168842006975273423438874145265903182954988550097624882312789366695974944070830990978656138414495423737622581805850480486591843805542751043208134716091022097373240544523437764957272041606431240222878735976101851792118748528184931836319048810159356070539206407918867817530502804291138866482435035699282126570991355111577648175451257162942558768435138182922225700603887083566271626904376525569429029878178807686115419224313046286980573140370692625553115939778126890315149086414212400661774291018115571045497941486061759455802592040464407295179489265573540521972171835854849954373816280058946967497855330629362792353858446485122456190892088400574405555646397744982279774664863992931418195185257227519368031232161237524751505122859053009033304196000781628692355588482118156991056604051535197352233356134081609521885702938058659718785483166360308313159399514985179962825170080149494940612141280033893131197680612475559826744993890640520922819419990444964490109768802210511657082039023743135772044861829773280966149224207651416476297928519571290686118503245186916927286889124914516357777774908287209003623957395510143071636248333003350333394238577499327003205085846394814751970129034305064534067489535386856199943556656786575599297612155093242769249257560789516601627265740117514930391666717135753554567238203635643004976017510813276792816419151800217899345067589684527511340066079006011721129971357950509580197790853465022322768261298896105501483090561599234205872064203143011862188768876941704672358674701196301380551838201069188855908971735222659439621038529826082138752905211621233492004614588514960526002239715294020048744258983894552631124775746525222350863928528004971444779298461026527930325527198502973127653511112199002326819738704490067342371875162402499762066590491844881958685218536738708419137680123868510732264095847801929780287634377360115499406385052407049405091066695737635637044168043372308576974712855268529873166220168328387693913901989469766881954329227504000703439175647297438174574385822430499234368621425453903661995896973212460790121527036564507776224316307663711633731992465930747875673928693611118420825388948482835808051286714693598844592603329023556487082723373616957114469219554894141579852133545780009340743296676421102665067124078338110476040413439142628178278623974360022440256108644019644975483382762241780317113280704145376638834437129922071707258143025785459409904959349320685524288113758561321176467261344380402756977282394484175889549131318053964527833522674907271803906071214763758563246589240348164903897504389730915179274341517084779412215068987607109445423360406482552774044357648638544608052022573388431904453904289165814492830738822869138413100785035335036885284089895076249210647969309481234245154193201300142210564667879303854136250226332254075786637373888841070084469604975266367285021562899901768543424358547745607044526357334315922547440784830446863085160745389827843755438873692943455124780326424997617584872785386228139577077074944213091700478994748002783226825736927702457596366494603318730690260213509092104362493553537783101147556285450970176643176647339753060096255678430107813210324021783956356244408125438328391588545667916326995189733582844000881966342053930040457009689781601294862518522817737650900642038885079600662751604710126527587997558039993500684416957440850180526748471529966935856017860650596667545029021777177690899953491754803864062451133229359733968235108044560471667201617541617358938922839276358536459454545125583978069060704418092313695481480297754993494366269791649531779256861656655254846117030851628253944129125120706597454442520860454944761929671245493577293599410417181379149870342175190552858873588448302232210460001031463004081942874240132184143753629603954886565041135385980929308489836502665706733952857067019086843573130439331333601575645650670516511304740295063904707791138556582638403179766963484327937540529778629959742552546425160158141600836862625392090798795963373322797880062655906854921670390296014133285281649412801094561993726637122520722112862224311749513923925814356021826691987503179960068917738867633879732087899627028588570337099985845092489321170312040272241316686463397883592109096653470748541918215384639610720961589043739791065980770584153490868484763517707695889683249671266037174757494480633759931192783120147779944819326026759721541612938018813965384473364390490650227002160541116236405011424085359923065270998790931092500644811425705873125627660793906258373622118768805689642468718194933134029820687467979854067499738457041911102710500681975270536407106834489271511869672277481666839512372482412692565101002380604670517946585009236201597212896155203642727406269754471055273734106893681053017090885056019780285007921898636785793256995829655745409131050356789775871947887822423649132752914897218304112359854498625696241069162128970617164783874785718854934420009791046770680497340481853025554532012336858118687649636719614501782670740886366827687988011494439871862488540793638086260580671971324471843592067406830228566290006444416130477465518831226258757044225864265729278088164774577109204559947688349161168227795583559629173701427592111282772701647564671760458085860709208045000294153901886024306859611766902965421385729141266140507753943974930539730328957046235581379359332057185226905883257621966588362549127000609494786625921259599350209114298797158193733788056701251837339321446998103789618370359103906443943812825803135720584421713927590842262743865318258626034093198363460148420794955485558751429327842633748295549802864781526499892155301001998567672125741156738566466433253353834155793423190921846555150749050848476116163266854373035521450563297719287661770074136977094348979953622821316067497888913439849913283411262574678523845841288678723535818543317703813976422443353520574165220198890422547324489016225530350498054593895576056302914389560468708385117938144485838293984137084219352929833753784183416679588303072073265819643387492970827360897811169500866577848776034539853143481984579305606662903652519253951850910676653065097634506767222987169864516263209752809509134446810170800590695183094360592825249342356679801504996903913620618212671758755354059386393166550007282831832682789694096312562453474851346592134198771454490543749434253413665283888734202966138909376798431484020827090505605832382064630754260969891617869834353989274466353402980200637570751151978725989203044039083857954469039352417339930581118001048036792207637798365861470005722790225569502193426092750119157055628640266150341649963878495129926935683517351544542777947138741420696637456330330253375519098744056836236703102793052512304880491044101210761579702289331947866049607878184463359730464016053620722994677842184647316609043054995557964622498292043312244775677641909403976271925874968106502108068107116591708182605448049934827672709815736470990627674242950005050508308892931075763084187565519184887934494169329545160604217181700456758300703401610711660514481227918354282783232448972805587257315930624575035750822257680871647916255036256544425019726093235461131314769567430297951327721077680426527215610335482382053019114114892618653217604096897762085743092980975626896629221185610034986176113648228780861939931716463184137429608354156153241002858084971105518183332418455245857000952391224437011641481562713683845458175083392788674783297003340446125565587812083964744031136229490221121207722855299982915558180611373080098478830613109338953289289036051184460843190912910452767130311145809476851463261585486820584646739231551413641541976659646877534048629747078374556869765077040878541904761170513328214891251103109569811030126115401054293158112653599883770366151343235700395604207120506643092647741195926879095603114041815223837720886929206711518869924313358666028915428990538837894542711470847969604121585600441041056204267266217931664695022150431930490465412356461141845374228906663154275256416857775472746681187298922366316117863500804638928844924105181167722023955451457403290930935367939010508216039587234270746607106076166321114893361662993232976865378084257131895523325391076880345385994708490728551909821449343240581042142290296671074556459453654983148328174619361181467916070520903853336729194828469299675533840857039874002299536843051604235056873161929232858458298725109876033241073389490489993009520794784478403496886148113916205799023111712882396074959688393771528293695131951785216777882772193773806091286145079801998181144481393990995167238608196538546721020083268886372690820465302560318402806646235104098336924173921785814972807731154646721811449926981047286128440190003612574345079467224450525805125067327408115225536791978016124382822093304526489565572734059610204508024484156364976517706347970938635530141240995479689908215432626573700664377765907598747475314737018759055822154284913212381842124117097314396899459871536281842883407905188273036065309390622105963011055509757911784717470636851605883805143235085298642864458095636713716270505329503582529074919631783713896455426372431876053841528733450096754739792850275289060336591720475015069761281249983490280617630167417894056220013294549734351972149015500805959087473781563056859558341925459408345800532468640254321785465032693971338249589043252354348208019376104263597523991999852585127500350654306504420092653624138767913072582103884300278312383283833877022616897843032334426106078460120819910457703409806553013638431078472024022714145368202113851143624828253288660774161779480252160833458396467793091001422900245879012793566415582844660401865331341514743640024503217394207918814752225549014272209635117026451457514027180192978874469144083591720993056135682693330174105795757809638177895351716895378182358664253353505409536895767923760969008094678443856023110052554457224822042360708038952415932072030604344096007501846398979454364012800596638253699237722066012780582423453167920511058441431522831961646275090863217910157634942591338384007497804802647895349546453484661384723244822457662134632378845676700757540401329644408152071852800800329966520582466299274776182493569495107522820793830952644762751663003231426382339831352397286584058908757156732342101311072198614033916678296043631956836273009380289382301307822496564987714077178373171724232437790673066994005073313011947978323138413857351162669892455143209614060917804893568591032531127820324581993747828845787075122224792980865177570330317130961184136290336701472704975048731223821336809415668035668615944052405809875883834770023532029941897342770592782752342384138379537703469154948954822088159869379061590059667379119420106170381357197747330755335780029844291651025000589230377438514817740754939261672902880208055510316420612646368200732797407443961162553898695625949066594770174834695991830637466352444528056520608149421160358846858369015756886093571196799653863208579491210445203949279838890209094461743472616130897912719939256820260106285576532287758949486438949716555206562927049416218286444723969106604879105214986468429595916268836931049268415676965772882537363784822829751386333859073867994153297101118180140570351871304879171232831422099927874849954640245887864083225528022858802598763376091855019460447566293803580564283820701264332361882848889834690020171307323476169240060238511831639948646845344800347135614666855796272430739904406583670969433920392910869498621222443878724095274148805260826926628030440905324423364838264045323253850327174848231586622575626941185898499910255988751468669417843024152731381768632495236316486468640788311686876173462835262791540495149490761975978792429753882023291972257443193596096655852077443239962417345358375631520370504774746280745364482351785611119818634374180535793244532919964747330360041841072717044962895305051814270068559895879789811714030558673673871818441876456454386354145645160333904535609323312428373304263037335815114331991750033802839536518777712648390218353319272907325301420003868795442738475187105997373000447715379096948651862082928937072050053077133622801170074968326388366684587342914534380359640641931611612501949427509509568970876616602652660333226007669970261457397173188067317820818825738363308325556430357009998767063111130004762857740708479026261510787937775966324853744527242104052747276950873112256941560722624235565849708979195543438363103915637558996055129071021844368639440651867190119200895229849293754083004081148902527251661898851384631736361732366987681827956341526425766377688165790192321742836820247925207033614661203624083217467535565785841613872197783123831380649744388818635829602930497434729939799686530941470820870725206141444344007783095103805780385695251340741688583439748629570382376433603325555146295564052764091872954593293473424928456949605548385030299844975963643468492137194431447860154177981683225003346093326504098587602586208020724061622776863203133101684775556787062701649076438600084464082393733014111182031044056242236642430251778108044767963239441190392304994335864435609243533488161365122634001896360641310356996778041175403141637560033081839319717687180195531170763626038968486725681813756300128797592432744377798228880690317629295494184441808405143194002377413955859189016039183486847084769741088809827366456602451791387540121113985344431848470297266521469301649257936040016838193489893584243398032531067006371665341896426503793988449909250207648146758878618497049247250795136253290271314452158070404100591190778257290578966580684655803428995714373889447265950872439482277616021815817678201412642775227966859220607491747515928014246217494999454981290788391388265745929512134853170112888969116365749155345930797438006668084197509297653585455136742201805887086474378438601309574494371158183754364962320608906147157295318588603841977611575756948159017517639996097694512759559251033655157394667420435050251238327761485958857660471993786708982630801265237902004290173446695815900843221346516898878291735368765606428067750012728138900564607245632477980618178402051169658945892380147583632789823158125138322618183946438936457907870671182677571740566766769071013519157419189083041308272653660152925973352629611267331963901022179106003342796048415288449017352491012349453491439286165902550526576452897617360385289488599794322562897699728986906040653328617024982170572101279605725098755248231786611175062788804693460298017186090780854360463263825670262679344834442637646771873091025163166313121082825814742618318783861794329280200931028969168271737018786436107188697321963750188592610221395169477039048920624315750317051154464804965909650667657179395871484287774029825790151377565031595108567516184451696107796222578628061308655804675288512258303043329861313775882353520781675784605995860765153207047387852869940532155843890492406214030340387012081550296382016714334378501949979269244003063800299431051158666395069128277351422194445838583753170221998994130257435565639993424040657149841137293579789921389008255222477039015126197455598642474734297981669177772077799606411989816505334820561150903058043538021764662559343418777162549855309596007070093133373159002809106128719357310433890274017805158146340139958019712348470840374292716588636724371885582275523805426801041690088949602967132293148543785131011400053836936404570322093022205376400638075878526593559953081341405667406720395828990407122708143217912386281533436996612223635564760753611816897874768221897487495751611062037844548228066470305424166213221589672047594887848770944473740862973255279073896223407790936496185149494381157916159248625121583726283738256809457745360939571127515515552776359718745485007234365850781977713002224830562951583639296676309373653434599470136230919359508294179129154230939906704410482255349913212427836507251345156529593649994187531418706845948051074156571343670890972336564798556147012220055313425683487493971956856449510837009040630454915365790903904905126376816318873231001368905038357772539789757242496335030380780818559340301369825511079283893861651257571125913959055917634802856836834214070759017951249487852605128931346512330356823805651775079488220235281887637331164619621957150538420777728571068900220150606759689740798910562875720983805431675087956924818545647673674613103648329559414673821327530186127497849249096746561448744719994102798637992345362010493107288645027341110792787139832778689790980769098761027238453852459506204084233697335263617055767648123338324231147064941227960810969934112362089875161448033673932641871615555864539007420957575323282661440152763182145152151285940425318856276987044833102469716122192235342286797411508395416171401347504297705585289070542658212907402591741497501975149739611454143815255340011081415204579017592187577216186497466042909099165396871045157946167273473308563316990479702734493165691427989029816956312641147182689077793137735525235307908298182589682120821569869655802572222634472134880080143088366547571137804324586784645328955406096610353596658328885068788583641552007202800816327583444082626981433616358221590111020687109856752350758953217464178788767582229814225203325386114918272187497861200946380027388520411134062584947461509886218150602710774354045666871608336520858971871239807781973383861404551591774853045879881162504289603639435975931233977520902976605861219906681423598012713217991781991982346411622667804334531782815193185103932342145671460902860551644286193879562808366622078383424828876092674341382946202492881690416337595830113501251253009943650490685889515233844462230438803948256726646862476056053493464320892506301131448763532173082156290489367165776378926115923419134257850721221367922166221761877793017659149505583362909427820994081568230890411182923692155573694193854438032818490096739612807763324450202014663726121988490991718518590343680079676133506218301805217292282487408645764774497105270317018402465348917085791987135279883125366715524838978255367323912514590234771039752744162711734504197985123166404918812950205183392513320383821926918101404866920886854669289420321404472053428179092834096330650117618937604296622864866809062051497418541840271866937866525529933198655114218805610815662073736926979940613747349423772486024428687016920174477073418252747499713056035408580959934617492621830598520120117765812650857202382870858171031033944274125569972495172305734094042321160310908765981392439774527949287488818076893998831791700686157355476996562073651858141579723252680697199048809404665116105335522353521003682780348878056769235332260575823989183677869164292460333203179444047069476789771650224509977861626130350259646299249813681076665252008923249304802017945900776899734081717731980067618677229343754619650598149174327192154724441343613219550295219605902880269702605612743224579525928954127992756278395906708918622849565945911052131719160705300079789222137857111126860751578865542210098930202535643492516729495695645559852453093178098723232209092332006268694551010617805336305853799848326063682526302835422251802711058629086441324627035773391381542917162509894024478809386041864068344986760044429517803834104835319049663365768026206407661799987709184237053819884095950404325822811401277315736093960716888658004197374706865725612360392562685132708649142845147411820928618293818184614129115974575742741004177246335875624044487379509301763890899150581110731120208935608117794800877258594384076635763572732571440536283766879981699010099464775148210808926021904158025926994187960859410770879566007921056912992388262691309728784689011537163734752285898262870959467155819060404327813283937482882313144492364043162235684908438882600705012844239721005941507485761666493173254618865030385579272927070232338309109717004830791975744417004191878165789909396841298363642152699638926156722877040283697154596840666390687004856209037114625616315400256828884560163246611717432440789990109454023853382805877948415141892816573859041037736328701989641517618832977216461323233643100908793128834187113242349286585664211386858043127095381521562159210001155073877552018281927416173794171180266020554688576219989653260876609116151871722327414685174816447725210361172911904995845978788649369523475906045809390902394322776624472713798529824252892306640451498925561364182780060723738429073179396800238846709302846950380323764414016389168787661289837796275235086713259059008772466262585813253387990208107874640344297859344533974012580504791383732631895715035952934059163695125625552904644369122393637998172622695648353570587131060011787612727676970774768582324703200742854951414824499846126271428060594312110306762577531237107825969311560240489410440894087303704980493619954529076951058125300537452797963657078724003256560419109454927856253104712526803434142849261590298334589350027620424621746189591960684334710092110890847126440295079269643330526996577445920656442019655881710882357708608297711193247543255662093532754822777301339181707089703383009381956301895579734952997791749296531280628404124691080126034880517307957401610256234618365400191868822186050315572301920362515437989811082062201309811514843604302286584448430897796488651157591913489188007864958752274207669178088834444153500683377164931610898497945640804238214474057087019943180640030412105943073509052753255595282478061979710290428451926094936694138068184713586486532626623582318064743265359600898388704181460778137761192294981703653392176989154798904221932961246842998569490566226220277919883465667919874683944881987118355247374255949559781740467817842271140018622344690458290257093922347378266058470108615923284714403738058925936325511864791134272193142723115361745901855457543194278562024722507751544747128918038027292339865420679685273838670298998484053879763171249002229689167842311714061771283588058017147962723949639758002563483698829545257280273917958639564818572196289690012265600304334991274238685603053998205723949884522309429574299031587862149085006392403156578936954833924213259200848052238600159192120041869528994123656558484297678387658805369977196921728739406905340697726189296817291691966901134394716294744996457480880924362506516308152873719780944648630869888517477606098019604104740487927539622186352691919033767268972311876500424504980489503170408013702131633126228749787539645002088305066831880271008855835966288253893992087555679647532429816246790731350497576086182589038936668051124319296868850320970153989306004088804885739524593697969144975628690438176020597791783544650939014090639691337313303503178736222005460277482922278853166371848879000433625208113985879520694039808832865414928362557753104400270641026927065841579208805682974718576943419258109592491406940925576742845893605081781720131180943209182273488111002971669937598523973484352622741206094419037254415219447125615844634953843368669868142190818742096642334960019071201282941746223004716535143092578465389207771420251650140665086662134305256402105822797369941877857028427065460562684708849729584807741995562171459187866521373257196032195952311752945349201307623100401639587065863667768807785650014454109038286597317579546973716320996195119037507201107486331765909062635870679483793649538010911861954167608827554460869883411248188783431791548793044393284028478898470821767069967302181282040885359695104689932603092850348040856280818002442746478659533203486335471304842670491495793570694659003570301703745308734086370119978765385664828974702684339219353859429809799591121315655283912483202114414672657121755480903532409850282489314566391117187318683939928189194652273977633650288196940870105892020816087862567773499757961771166815575188233993561396396623731262463038986773952733880385307419335257601613391109922409833606153744719278513477270676057652070091754853385574049262128005172531607455223270538250558015982402882618139839739474021980317360773409455627968208179297269558395723639997784799151486573534177455724535515255850516720547566416262206930300354559713786250705465585153502207260614672550423823208471386789635344728621568013373892581879401301710329752862057299422215978904720563237650610651548040302811346569884273479091599489298655245877084753484550784897598103353876942417764854759343517798543236777119886522115509942230855830551413332418613845075981270021821220761525710709749203508334563353656000324165647675051237829857033547498648706294322658545984443305822963055934290942702498714683264044237449629008639126345406669037200889720182375023528509109137086909734245967812021206524165125223606802623676065971365948374100694602133092057820328698406696519149531022581067930667858221500249484071330907405057451132900320659260750198977487437747211652654658546943331728894015548580637949520495487557511443261791555386405705561316217374968240258450374799161895959248187561844985779925810785012452063613298298881764564647266691377895158095085662697148678986971036828416907274862251059094459220405166157160932508377247641784488672172655281535934279018525530017391062617294788906830522915024453444674874246662167310739363450206223143604630096702448024040530253698437860764253464412048613334581230219458949432313099245129264771952342765278025213930659197248358451459339786977709110743388865186068269008880570006475696965337699668638998897127765516901845109698836736900779495653250480646918717655813079264104877677881416502497469100761186781984989071727112851765820807321122733020397236162366553436679000105023282395300649419587877044332422502302220123088940918215962157894389016054723284626600080685276788938971141269505510866298157334491040947833329806548480359743197675993336969645503950573258287187240887408588364695991781887554596092894409558445543787141874103100454958687677218586482003364300813219910931935234683786706847780650571730131793444727762186956572554063501045276698871120578724833070854556638771190044860721807039378066384713613174062803469993652307010151922833129247091598948081903241908953187539435813895596529245611283941475741446046532420864017387278935175877651613648255271513573879104700015888787453786047425163132590754862578882977007047662885611282482942694100767066928517017333219839189398510457040822455721777046604660793716930228598326650171350091176568701379928952208616718744573946094919404453877421953323941318897673931917491786643958427369802803379784251407105010064018694832178423517178835782208323935172506041296996196407698853023692255097177541822540261488219677210680020282297971471389659267315806644838178288038256516032224967205800371860160095050611276567749770467810557902245412518041550993057628200603719654459815447726159087284150836688538817779663766374147252864589152569421189034365727177682082185418883085419502962361466493949636520948424157582888047220234686686774219040886469493930619554167807202926731886484437404868310270610507787734674694324250668141745678063616229113191105351395131808455645494575769410169042050309617494175336187741943162671682513776026355062753952311706194109247780580368673107514872140522251518739956176201661457218918707728848764318839286503643575726196488854917977017854956549010651280522480029415293226385185937009119544918343576383077728056571799314970391079048836387125557445744098110751174946262370160941734645903049088069960559079936493411015047968247225571173809070369031508762747762500186332690593342744211683308860789104969259493783858516698012755231284039476976462676689152813900682811403179355927850982499626168577465186045286760090508553537444134702681795429152628107042498625621850699103414599428657620163972815730000750205374802670258193074139379361387728064358468444205510577600778605411377732649391362289553900971425132640790069753306790431292169981896371935416584140314415071113653160222206306625232785625590929410767351021812097934165655225696777497605209399568045137653650003986407948361884907189511070508137286330341201952343514058297143633864261095961993896812276075512497504713783328827057195701141318822639777664877839440446282929778465686447147235399985765823012502543736662488188444625940856203938983894052425313586159212037747838814416382916552729263734135631970229804606936672536522556258381648080944046039539877384797628921906386682289935702589525827659322586130131042738984450970203559995469029208859794989251800709117335543638290277306987685929105945491456518176551062405031601472850723462504793847966421882714281058924618103594697765333757777990920878992425930109946828526100254838733400218117337695582650545359694681113725083343930829605911225259732549840866132274446448010202961730183883756746101241093344909490283601923967880676517828220722327705370781722715114343046402488138946991792679871883855156361047326991998480921033231678057255192897708983251845833940977045913530955371363057471073119108785953339094737595050904055756193674657771180962993291783418770134498521903721058114481720295230263939135619897599578697789934564567517135464920196253472558508561292829064165873568002720992929098947064819067971083089907642187731290465018084636101529485948481399287882889595672308795174086931079158640570012591457374775406155181061545408049522754484960493793736746086117380842924353136237113198672027498772733996361812916720578393432170250277257772802398319603787209170346986474793789562474539709986482675459935742834758112342040065090546330396427511979826915794455944027699014008378345119432047410575291992674732269931284775718351996601319466822803648423451883218238728977805136764368773296408116499286328325212415239023975085516428005257053263087647439311605257101605158713434260354338288479710699263219677485424357434212825194893605633738750999406751156206891799851991611138106270816789548795055948323025578107256476064452572170629064953921983708111739813015634768610341619745280492335395317147268487902111931631637027682834608814426615521610881146273704668145721575749265971071098567151252555885268102746928454980083989002317346495533121230118170465378852523200565937867433078175777240056149611889310508870202990746360018859289847118743353731628803017724374981402355138514575384361863869514218034806209552374091885908828331170591341426250341092094561241164442634980053773149672832284007266399990958978049289524406229678495664867360969335415865496283833997148498161104499919418498493312045786537914167743548740115091109612472037458900745720637974748730938423805296035855541903948332554909448999893270502268956754726823455563155922451271997609068761221799721132138524236011535296125906751687265851288647209122354050554436879558005915110324219152560942893920741758501258162074316783557135767390509104512818197058520988995246451030140382565876334843019406570624855207638159380344400163411151050873849560600419160236638408697718219813989921690229098643984863405673993629589788710293268144533907695717780068267753834179473818735445875343743396977828830871662788108983353335126441787517983262320705833799656459193400367597581049316076155902803162410811593547577928311600141456863382922790201243521046293703019085626090932711483633701907833247826636904388936091205145178276811158273490317159670523825528192764412424996366599714099065324053314465575408852735444540926630178242668473778097364660134651024572484318422318681508245010531892459949603710768961084786631148523833239724211076360447233138766536672548118764445976727902632564471712218677046912713549381077487792554780028461466192036212905840499685939445062106948830138644747596048871429221522398902457072780730430405209241768636913411089231782231179378923523570015795254761960891616011224275020651074019713560950756561828440142306310764140108432770404948741057911514546673899905289636228626724005586751785294631126622771855060320365083751652596853224445993620131500901589068485808709221013185843195235127376070651159945357913921010154430917180093311849302759742293497748801461789048946944527018220267862219176865004458924714375972648451536805853224179111684707322365845579240891508190575383077668646485965343107967985857152460105915466884027104663164849004628926622969673109336690370985801947007455664207391462280850710700160180306599950582452144528101699563964069608423739326584774360145221983897027919043660265487443967396363621163525533414733134325255416916302624217558368362105256202459524418349321615039872277204006856873443303503980335351989320961146790336323264445206308593021186792411139004406318945495433310286107380442643737250578855864812112936397151391390981232687521373465120157257263338218431614637755940189234342514415167122540938066083401900739353023712128128414945906912168350302752202039167382046562867123923470196063882051620737168425930534474968811468035561953852530834752842694196701160469166016537347893739466369684051962389942493600108660113489862230182168947809739613991726100213948491554233186269179278185289899354123308419590121938303563759981848220426381526867416771659065896945667529540625209639201786009076173713721651277842115805387003155490392914157565794166186364670157841106547582390277847397090462340249156234660638317182655946318360624261094375634186697614090959022191112010395466540684956295972108558221354971559703097628413028917350346445452918550616929205105298418392336168148482554812151441987808175426045689354805432321965484021606083083742968969578367997856378320205125567823027407670588614275680412908745131249064145955888092636878062581277428869671619739364923596868284148305515846591321254056858024121824987247239273716195721186286752514912003158613775362972742323020054075076847368278496836428817608368268729742221488956477116641926631637476784192805183205979679939889708238577219508381989873175516104217088665993150648661573480069514735627593761414863142517142211526337381064071469986538563638164851970237536044816720056106651665462454413981978188498713490648139089735056764432072138851875967065211097128658210540666114646381682915282668293157779497618060204471530774877479055404101249004640742573130853318313538027616265042827347995032507471046606620924796253438702589691735344032655918518160297900459046880701138726629036599562358063717494311345440551515703698975305387586793131515833270452776623339870673031975609319504271097764479841009142065636182259119149382933383787182399732187262397530182562374750791241322847443522693058126045239299550143828330529015689098882184823806978270419941722409603033019178977398951098579745389106474448276975523168210358172426791385973626829574434091825384199540515181579095518912012878685293905898521912408948636951189132594290350306450748949646346227370560067828281616562308517387254664466312382499384199760176195725966171363845316748517945992064297053334218260391359037910456967561772102497084391076656484418931071921507199864409025810166532785375566309160471866050457175828416574464757105803473461061423925413575318078634280144532289503865593983552456480892173854141602848997140120595305668315820192604671334496729579788791823828679394699859875687104717726023900119002128926884746564884070206357924255257451340220253186061630099049830499092669261716190830975136555882335799490305949786304148007192182590197104447652172664249497144578363687205337083467206615120316430738671455317807028880353277626097869416833558848697693132595452496190745426667523278410571054393470563329969837100301487528085925809923320157005730348534806051374467611233724548702694180230691923056616161617069908736575369908380100582756910236790992741315130431256370254299384837597564480895600415515481843163886496923483157132177370859824128467415775522957373943152242064225480757166948421692743909719952359654237328608638026823523573708733316607492406092103997804251671112399839692680174817875294026282907482126380564556847908737985089973758390640454268944316095989317934115395328284488366112506520740607987229162994473551857079204891935846957160415863616420223664302553601154424654836422652555039701379361501909550295334342653134214568741490705318895476528118016058333295317912296719924082185174717298367199564983022454439782968237556443629682993990712739041269628563123340931631471483929394764351187586043315116860412942477589716600511292836348833031192880074952178480080007782369975418305283467934368123544777657272902403782077712295054340435258769206122956361479549773238143525296172845819322197905976175071708916405789400917580811482953442292807227190566668104396646910386036220436822221081130865422498826867762562198324964906624417922841382708589823772596648644063707669731428251903620030252325592855544334193843486431207230849892795285967035095314756037476861992900733103561109976309087726410286368363577363075612261901053677469332170451696727207515068938559073418964669243883024365649031409035659448911627203289172468565844124298191902509535973212943517234482543395710947082011388893058289931403804363671907544913531377597928704163946180980230519607738192340939799658836436494329747507088524051747713061238159688796067582808093992158987601973054562989941671145698100899420707347425821000597386705150326481028993805982960632713278683979715658720586328981037138083606809070671582158730925890179457944569789834745169233830003864422204602562936288207133852736514601520473017424425347348570332773666425981615172721191060533418688276656564111655688944091201438646672844193625643254808684354654057331530698724749682394106715945529816747470654042721491168083005941746350561795737574040862309726368821859565546754183922501762848934955751944040346650590785361271814393252220047418781427733021223454233428525401289668763764285474104398460194324385643270888308594101132804250126749680528905106346773378427015035543418968256346699523443402266695642884182380362561588135721763779101048057675619099280911616645104827166928765948632782733417190117030714657171955066287244042316703275151490327951117057323038669986882994117714834011947513175397417663406178860504751800943328621377805473180311817389797991065217320778905808351688003581634659114319904034647007721514445941975017242371961653385387787246300583181190659079445486133808365288779187123758895448638647453992616367257191617589232747579222343457465137301737272642113553853744496014362110923102164540933206670385931087209708557142930508255609532718880612786913519789756377839436785559046713905947443849942267508812198846838321098486679773394209231908784243688134786953333481953701033127055010776750846087296293266924162488000374415625521494878052564842940308635314113309425473087232664669086468881346376522331132786749378661239651646667513088988904367755086079854053677521451401391435095554761829229740347274610007684453608379448427279239290145727355688559553083646415979914021986489260131578601605735761602331883227832410510872105837156253222296718564479390324870993241307548461214396487583683390324524581614081928339341667242192068048411991266650875616532076273328561426025831028477461153582949699117294183425683359526857365545843595794083253858884737555032126761083839868782921005465016835907066935842318647817579993809293200056702276363355840865890685512949286566360195868538891439054132163002589492745784177642681850467843140536642905845751317398365109736126726109132282664611309068431579041836780726113448303561839394501441250797572453023117547942259910069424152799105793782817126735223350403830965700864326982337895911165347956035315277127717938113105406023305456326515309212549639926507070289694958922385861624435337082341886176095486648023687999709872269691240935575515180635923027686069057334761103738396580847726271208284273073824690669327421603175182006402167600284959607437242207527729891569358689271277962356977727661373844028679118243891980736132147650878114440660620542497457673737665318105498198649531390120955949316472083843072117629176379468754726279278027804200218455789492932192540139040755437309740970579731362155852182706393489559351247155540326332133346566572835561201886009292345559207348148484687893123017583174302153313698302682129715984071346185538298464954081684750085808361431587284255041000408003669362841703949905311224678899252825657143204408802923715549216338979756333175459748592821321191252360455540014698578621907230526030175067951095682442130501496816773931916082210855466507081760393440096238577697264652079296999916215599514466756702498775577414457958910788650062859896044187677929074242533430956060450976605908619564869776091995033018881395899000862967437596416658970493989825826081235582938542811290280036598221542505550314413360929584549798814900398279998343762561417304510760594507999659458753766313136796923504779404561448181129829375151818164534980624982602089046669372656000244183198762275929568919595420598023582290634161534416029456541876154390527651681003014029415966458708180045517656922443687574451682552651636454525401412459518300687993998977653804930673261944643129516660462025069574804065815150063740579103981771017550395976046404429009015107730817263808525070013730231703764241094041399750460173836336561224688438469535964788845092091636331154505854124335800627270909104816134797606374798862058985100317867247206986598451144553713461955218764965844805748730006486813878267421916445005310769101534401219113459006061213633852314776490162073395312962350960115635368618442023056429426738303414416420725798606825654508118597599675391906010609756346175391234551777937855888575830636934471416354412367824627591485334040444587080917082343220860838630018655804218179776421878264627796801450041565306224896443010761627526952952841115323235712599392896790982826615903818712080654258157481277745605810477246398065420687915241824183617217989343975789209662054358195193640035908282264133571588195916270480077614918417675285972114262288230729013190581274243440914156013462000016356785177928600418940209287913055345939514962258974174890346038870833175847554595305099452056842790839626267473323293237887185482163926267712180018210972140526758937544153221147737095954177969927101587985797590797023724047452239615417733511989944914210745773327442313283927785667214978951534249486558295182315099589057223140785665010167953240728804720111088747038162365368511464221141144309254993602329740216462135835493314597128179421723127441777491479095910897961894649671297895192117695624905776677146862602410261780884623393771134414673974365315913698611184873843214720184618169507677572573394326903835975959467315854379805541339936444394439934546277944333965965739427175702561883084088438352572104094694617017929758983087101737606622387019626525342299369185858964056118279344731855159558145229968342893123800078182823854183836847140297352937601632012107973914799737037844438741047144721345083037754205376530934823924985018645054069495265079241980829644891573797436014248558016618380588947583808041987451755591335969582549792568574769159616020213536568428501572685181559135376240864890926699959912589204246780195984854368803973232422195464742315608784013867181624357949787888313337868807768128032410773952136626034616121792407134574633651000233243037523517396171868149662425703398518018580780413840403567105077227223392801545605046909477339573071101868723572035121944087302911710434459240925749532616406503822337048222650915436618093265414465974595703666471354364910381185351102520285472154230839669553142360411213031672135523333174049816912187416752969955959678639512057085532233392551732451789498522670438483260790866752780151077200914358003191844921081764069921142424191156644005792624020534051088602764501290386393672381279604914643513573026394016143187047282696496426604238666660150689021672419744016754007061656999770252140161994747723817710225951735406343036371986589589532644992335911213642287405776646325431415197791580457783264891100504490242867352070626051015188708428775257399050756002504764540655536600437644938254465541155355107591454724853708237791836696039258813124628214714443113892854477833287100360954156485781513415009420075563326440884391512170825587168827451150670797887376159711936042007287565282096115540935872781737414346528679790045724529206719614983836782716681903678753684379462999966497097201274354726066918546357448470926604376877330485047970341172521569299795162063775660397512405895272512091584708551208341957350648087558494468145897700461970293465156955623130425520410533451749728027942532864404105337598550980575304350796105187410434533016595897056022581036019529639178855261715309055409817398744427312870730612712224480072485441907502619027069574516576126941619160483244925995017292615045754448486468377700281769826836810580685448424388998505497164117056274536732037557926935494827758591228539359722616798675351201776720522136661145816621061141373277348093151499955028700638078594623294845710357047200818913323849494891370690362143293399925343143638505284021906443186744047279240940136350624589433987582305861873158233961826379885811901872751055454483471502450560891412108888548390993273104903795126335568311555087581099833845991097562111310457478488990430760507547665219810615368105368887116001186974965525818446592266859473163066815965318813975430821612824122868242788573361450313420496564978096993059490845168657911972404581218447966764260643087866737968294074405752792127008220894643312975929014125807634546116462505213492204643894460501642954797315059231620910836069312873810945438466700239016625341351252129241679814449210490121140044675112036713071901387637808733971603530737590473644836904723173469190705965775322161289656167545531225990635507555425863386960039858779387217370936294746083090058878912399948718212452778449564916677083522352531406410933488360569702541405695124219670673364800188197138327524131004699960156670680190695106136703872089320997909493515602618682452773321013050869883586916134165076398466653546912163759297816881198255443089585547992410578589541753545915449949603226959769861582796864312162882530031538071607932857004729994694264338146111072349726176420423318238235286798484339520382147245823268425212296662757453330130795258092283344032281295711101202753933266351045354732053639719133479691826609626592848661638512276355050465224658716285427190479597103199499390438207408667917854396087441390700725196445879813469787303527858610007823993488560061455712070918300833925508161646667946611713389766716356380258221322063491239861488883775253820070937126170374127377456857367313195791096706762041584870799459282091224389472394430469573539396723806695080175649492266511601254688371236154911643288753342562887251666741862056307169985873021737554272237468599210482731780392188932472390883565016608931944957757872390293097883315159691306812421995453930539882536102107993043993338086784323432198236917852715829775196701777145494395067929611418294304925423942011922489559707109733004357707707943811120571528563771098039839348264765272725612693827936480581576022850576996207794011353228341668856111199200751052843609064138599009387839582500636750871869790438881788579743406652107342154871172723815822370575333409380863559348570566623098691408090222566864404518892028185740336347297698885084190547659968276171325186351451276162245418505517206157736732849816059844245738789914165180397126833763204076159176584846492585161817332629025797924797388944702492353126813169388843434419718116957596439446216472810237959723383272445091545077973775456361606734152021761262111928269755371289867293190392129692054287024513439012148251768194247404436932927752216717633829604056099849769414363133549132660505349497501191075637246396745517873705182408305183301147465076448361830550258259647101536480453576062002514402371781288617886133897298841367163649341601267903201906987021609097710818418072316700747841375134960925496377631207859034577006776465133234030605511193993048620358048422546165049879294856224773607348524916406257988182639870745259446648567850057040511399215486669341766760980774818211093549734451989044449115485304291420946289983227478102930927489772809494941088695502711269658436131118239571741359315579303149804947268313950115693188606850743210367522039741480210457460757545571393160370938300499996998173871991325854685697355328320534789371072910047632956799241125251920645315794028230597411573278217453994589261513208316494715142011439122841714016309572761440164322107709546164106156215192494284539545021308607198746023401425751628275425349146867719675513125746850658845741452710488459209651697379800514277445815245489339573584559638628667123314242630928201110314556586572486562825257915344138206671672388879147569748409497848866570558060206883017667134398036797228336229835317360479860044206732245594709029938099025138568345969380824878103156056864658147141821561417299046326417494690338117658511510612646458150314774904504251513164326822676001379496452442883102192128430924890286140203571200382232848464791535334765033443510279772072278338238913659287430401926414900659292426748520378167147824682833871825962804030494980242299383295463682705984516469906728550488954653546337708415645055341724526799733944165607652482213126998828112391019835914013380993912098376135155371216046703797467299705831426436231354378933934656350873519085912968603888028389017638803815612778695152393221191732016285154974229497465997102660764240007469086184073601016834686943854258995592358568885906819060875438889521807811812146017541912091065032636528331277117184037518003434627316049057902353057315742159022565119823956579996051755891743751139718554464719728654605911980870872152247590292554367309821902379693932418486831330276079857209687774856151119395395918720177498608121684955467866424966824030560440626910512999025139707812761504968257943958504890580889700886832130867068506448267757266847620816338540285347588554372972328998063922949556867855910614605482226888917327386779940381644164233534701682025203252681325840461522496620331603865800594724239962157822414624963771894265665884374816534844652883917108676413364329700020158756090744454142029421849487080939683571916124150583189525508218783978000061553914173739220335539295116193514608169881861561840060714701424345536064552388710664310350861494342120256252095498479750991371023147738315349110260004832738616707008828852987134847875393917335247013178575372953212934966717969726046446750200305960350489538298738649174636790410761634030294489940986270473547639821590994930121131923941082488855530800686022851259920806341858520301586278958180557597902901822170282872474919332496208446865622414100168922169203428034558822467622866541711645866845726830262832127487528198431742626411417545497497881415070734128733046697314842588729181123220580900519892964875486263444076502448733853435411703933356093728751121450755775109522801504358197983680782345336167112912503962337606689577457995257301613647775429290749229939243893109721930885605984106034910832365424455309016491777762345563384397347609251927726940211209738959589726761767501382190713133028178920796090730524195129791328263202846511756809744704486892040427638637863912856054072339836905292683200082580375413884914978876989236776287454610069420440413394001466241020218368981551665251748622622710612039894099099807713479828335253879404788745714611682518129700268921648430586585212111941474979816566939815374206077546873322398613975700497514026083492905397733601015438462433396971182885619356139570470647147555583123057321282925721423449005764906192564137831965476334220365484930385538754553147381817334795885475143799287243249759358802856892419325222678319324881233602802972414837756553044435649398519836304245088164217153429509952358926235931499781237319498837280410080374996355901509664262546187832969946213505707292804484912919744833629800165683038938433995555494754548639975952034162478738162326307329932868059546079867621707206089676439816535917780231327424296181259826191010092239831830830663810563010718023735803956196117738357626740441313593043056598621778996118042361073941786576814121709277435256157443337710101673404506349521837489807664650261646475276205989619220407360875012215393350839254626076117074937473875215167575074397001598285278344666326871296412616319085230159267516319706203383709509343361127122588763977734380630355209758687279162653913345016139213423404134796540297821822672521122418204154896916940585970108718988938843297022825383735488703175300445598241032368023285637514218316284351678894516926048981760685566914367605602086488624290175943979223712745472598111631308967144723750543845242614752706485176904230362629100329827134947011510960005782282868458740226444326521780556490803517091976498765919665777230805823069584338975621325421086702005670131714072166562155687411957554827621465267036321081071220122339968432528279415538852143520284033524193353214991291796568794891023463240602046442437088186103665470303028477350986300871289570673137660996467006808459698816091492171423718566166678933959864036221565624995218493524234943053088754517065277051799520567406324169241226856335088204057862839487378427943518229360210889353308887646031013250745157517099077405004538753930143874778643526954156349263979634672010905180217209708199724353889468707592499573073863444100753890710804947689053285197142455759031292445284875357099658337100794444589139272858720203230200858188564531607638669250712174547416977514243621580894506344243701370086621774636178898499923869887706890155881112022520152675463052060792769216663670405717986344769584058413222945461790077563889493238712354371557297210709588062172328975283510277393491489397567911858147695188160026109728125283995355974626491014225942642052783459041925793847927474351433074474357734152529107935181952447487821289300913224199245373891036071152755097274885479700534023403128968882468408425290763907668768273014492581679047204650067617733610169075956808896473310767186667298476101637526279327938042570123319109482372144036852090194644524057652723323259048662065893758151687723121458099045128604749827815051022554379175967317306521878240277565796985237110925380034984457792237013540794814446331648770453889881327777132842656769736645617581326714143948611631965276217898267156836350599568480329808996556019598798711500453471424940219647852661457344425642224669175444301600812837136713696457473298605491079147184531999563138509976892387436604023746714600672791313478808609068648573011423301430765742659641669285747224651447399012590084238537291882335673875064515599691748751918798561842958644184509982163776531793664103742142876567968317125509073474094974711623087185893612206308049445103837897378977086832713911681989354970559295974154050512937417732365244504880813138538042259035915231025324581217868381200848579914798855247308933075817584556381209721723151105602493462912204098067087672822534508819180646956053452818560545967004636528289925021913125922809749642367712604429160179630915144831329542963543096491569605118553401830464099149256457401621851238467024774978790156325431070482216950109540095846851039830444977624916246259420610617668063456992273883015209739080185895165079403547671344491342830890096833187099282761346284489946442484340618831051529448490164389214039927402914413753330161104698704153886142175980605588167652307922493410602033393311306898961200905780468915987580109733636224633931977698766646613589353333008030182792519575117608149531515420065482096966710199650632793388661700678837298219097280673837977063249442194168708878521129800183341690080476894576153382284306159637955524482214899985304983351207246957853170703948929270321204474515321878094499811246133035987921217648164536464749272027526632612635097640063513695376852345419058228270174900693799456451993702061884397813599603865191710936954270823387053659573500631938795809144473952475886415318915237196769045550726995136932793580178998217211876705499224862099241852716837554945081454558946144143123956095947465856553465682278374280363201511530626591754337094679809849505058332378142271456027428195800022628482845961883126023295156259536909395142617281019173144570640928624646514565794952551769463603543037803207473681299996057780249490201105854574849174037923711289465121845038750683397807177440194217724028917623668007323811224000457594813205266787778319728197952283105623210702488135174895823034200428727290983178618871080443778312200069098517808110725655746090542805146016159891077591871502779525350172839081895323167355516272495624376877262550682711219431548073263110314973598866468328342997183920123942299465312174679065458414357501328934258007656764566988943540666048009028186711222614070966010242294127630216004890488151796577917915515211062745074454944724423625921217315760329405881801394680765854715587476721933944020564596933393373146535566835521071022382835987038944990641597332820886193939021839492548521065676303197423327836354607330500830692747192378388187713787743699281772138148933426741360035003552345477514418996994011959773343985134795692237671075746992837727864927116423240794753346204609520747564137738177527873202911994182104623372189160358300337013635590416957890495791392422956795170333708334814421406538558463862953729803483895034156879024609292039490277274480593409791741721622602753823810024359171519023501500171053537187816002916236241090078160753649200055623970805928189525890318479286895909668894770687410444919569856104237053916314544478766486851089739163274224631782008558876943281972526314196747605366710761233224441307549287440273956908378998975981416360876963298495734038406938268533251042672857644404121314105277393600054442616282590984265737927896923918872987848051171825174514130943291699794727044607914336540860976935867118971253052963077152600207472280501242881572909044582283147817531991374976143434458722337801254539482112404506231134558264189677863094590831353276341354063894603301459942932547290566378765638617334004064535902435365074129402147398684689278053410557157219899403802958497543820488926934606976099061609536756439008484802886375621126356128041359376021958552210368208443097154642671213550994700889003794430827827394736675805945449990181224825899239771726685909405292650687793374238809557061341006298009930666443621892726457318492488291182085100678348505209327650929708553762769640568261868975422886196781262706670822032489973086611163980344015150821471833145359938346392884369147504175313300393846698566090616688008371195836078572080898224897259089256640020856204022591238747080720955164522857388901265731991874441500634422966546436662268401955526757860294469279886911666391744100338227452663363962993850017547284549346716211840272914396354919967466643212467459430065026298065422000482040011170463932642919838097745480711686407428195920615670608084883179364249373822633728848923362729598156966891265599515661357820483669930189644261155045981763760693925751385437936125422734481318050347931127424687234361571263628756647133667787116831029571040823884862413790560262972816936148275870066752640455805475615407550508082305094777149861236437630547100048708493507143721574208873148007224797225530575085773499149743988019419074873622076688668597399080111444154366676263520297589681285387231351428475609806420433683871539407363283373327910937192152201226160351757504083933429181313848750445569117500690877289822521946567488945600610608943395912998173881992972875814875075407821692996152808035147789996059171993305795344306241421885396861866997877821036216396900440890116140992646801208034585053367109524167762071634888120890453331237759159654601262171304722146816718657249173437511578977083703732234480923240726144338380777353740864919401973420861038167325490718047060878670334434769137181244906648969905524966312214331663453879567721425426685103608924765642042316283901122650297849859840510469391273362405591582672638635575786346846656693553024017619077423949410475136394747689959397424374119200947281634098049892118556358431260698065128178652356874079570834542661429904880197644890513885684377407957559757293056285510494202635332225588338072106561136533923777248586717563406002142918432928305153451116516065587555333542573593374185913919495892955586042959193093535301446269684042105388565322444468770624582735931013046692622833832020686902408449628110720701964230378811227100439592365173346561479748451183184457775016925192924513399813422341403402962844523272569500606067564394395556066851991158265876271089901400001496958089098322510932150653552936208765291203811062782083222401880219463488805317198531585473369073351799001601553695397703936632207048308549794284899505107075982398659564039375859125590610467762787217341178462444808908193287199261761295534969196963951651975378995961306360494347635914297493453351709075030357506261506804751433647712477504584012882299544855611456180965098422440483459335821428924772160146489386288251726576195696813219969463205261700702582265630207110028815295036331571139894841487213867438180493721578998001908121393554633211379868414350826066902083445312702588039027233582367561582478071950253722786316441499060198883903324862160273243485773631296833109949493494018733259176559303885921696297701457746667471271951818693568423631958017811000264593853114278565261612461924362283465315823812960067858155395913739443247756623204685296064977427774118316901116074296683271594880881007425230265068642683769456300528580334351606389334232277957317880351861370850481176060299925825238009598641402690763207905957734892891009169639553618557153814330767022592273290374144922617737387948909002187050830850102968754762047854693523682651575480821043724116626079404657346057540624503565873797731233114297473063706225520934384728870879945922113949379900710835258244612018755702534309474650510431133555089048918784798846321402549635935549326221154394875490607742726395127427182346007726906554017515198893739285050767873258956138246914487294938170925274432697444875859756850443468298327455961748294274566534486774553603121963332992693186270465280311930861908290727196297889549844548901222038776415143235298636134632588487594582205297293252262606579404727440248784215154420274020348272541935915124740938407645940980721092454156178207580185292246503469724502782270082662941691852953759564263083002556778627950906768986199952770390462462645382767999463873035850060205758566438563662521295609798857194702961512422977653884477381984515395807816953126974461658445218421926491999232442090120270295215029793123483740837555782677593443562678415956089772077274234881083706290144126783320728723199577095065074359167679169526269446902848866213458298947743398195230984191033751261268604427176061539077039902776512202836646048883048593937524411778308055379100352045598222115578517026798134742829933753200972828610632143708715884738898905775782176168766630832611703504988907157582728875739108279175976146240903990820277221676833507250287217374477484747850175153360916056405866441555368936536314210355604796609848092854488285849700243923303834137161727127660217461685709302089494297819675480424785179220196754862214879812792204000578177209227369193192908368322455772754878843089152184716544622131805446910880105605206399026551336732703413194123275952883437637581210021820169545259535499571133463243221330355709325947557563356403668857296872643729486308683866383678948456905512130581589036987870350046223908426194136316516136110470599369952644848695340323989225289713597824951172366953503663827947928340077559131920096015129843458502566828871290677557773164019367591836700812703890368728824047843944505659545669508642767877570291906519684266448283945804225923716692869455734012649464006810382476489256733465181218170968160755525256251242893504875345363014660161466316624392812538851078304889474953252134089955375581880039924310860042962330184124042646954851389706714797393483440844774627982146252922084065170934039737772374048552083287408755811154374067919346752991738327450541453976337554922351366583167835152927682644780421962720882983577772224187778783981471448351146935776381607552010643053772906283602448594157931790806691818587143906074898839745337143098270184331634902928520440030287947915868816669882519228645865740246137862627396150368977008710570628462705748228088586857986725461022610943747947061995009582019247570468371291408131101671352364601796957065791420290869112677216778921210202023368859970260353173016806927665059117300936650307701439290774642480888463103503665513812956396930558548557988001298991458143958171375812923945821772322878392824501941609781233589614552000561496523201012019424932552806133743889045868475337530417200271469920450754929914206334698506541504042889468194140394730515840686145134521558467711110269211001160958679750920827368787817032103645712377849684840938084222435382494020939759924545379249487604331077463727247627049598539725806690571170712529320610105036422804400813931961340721309119878847204745896076856123389585012905968279266418615390794885461953198484768012489239351999114286455179826147828630851413815594675993330098538663433612076410862275238708224776034677963305203804879969398591265345377137090794801079871042590909529776216282169873137402312901211016295997484535623075883589553415069449002911116138357540668503971454860784461302179002852874611011576055257765996682006919919981956981612330022532748366789670209656715543666211218884815454773747591118376576649147821259892781910078476792461700057719962322830240193890662501751612792312363690297526293844637910175137548186503587553184672338031670782987681878273814410601013148237177264107175791154062531657755588274569244568329983251035229263940325418861894359015551585885640911751636400000680668008299765024751821496942758774043220724768760965748449693171116933312977933518535494902537406872382241391258919625838254922044393229831061776941265991652064743624327495448908346620089276526206761413543009279928934228948799981677988670309078302995324534608837418389741575646860464515678685077779075355942863007472172275128354962720728603957274525915871093797819072167133798825977469047165522987546181604667351121032522093709154597528731821534566285976380400633142512431024889153012349187422392386261784037114253076221712790823675736844339592134276943041263122950022155942075755079297596965266701455795496258958826606884385030739099831140315322097334809420148643697819225294004646021010723404753181270439779939783710587580997024232071832147026487735414049161754592244911728469314876507010514180447684701093137002302777193868986708638519934386944068414117048828677746658378142168302369405295603812911764444431819071794556597591658737322176655085828926765800830101414597140817375649002105561129478013894598129415036443258545385039186462522072934158715434401244512715809045579583397827280055983541521985393829732853537899117213543029235640958695988805881160090908213449049643033855933799331513278005028476423514830667864064044367228425741404916281805432272104425284891754403865146354331228718022848838911615752533994799561009635820740808533511694368678166180723964416737101637440281645322285506686292461688701246693044674583730721159443699106800134787427004603405548723878283274739421623764194700736596664156813056967148857746643489573728439456858887671594649860114615731771886475909559782153441413883779770245028046756713653788876432725846095150075300787032442793231988566831964965924939971388970991977883700817434566474621055972319181775312563112346369625747956532797278740250619656438397570901483260686113838896473685296490448400370038820779422911886721394753217193856402539457469650339453941363733654575346600239673585858249899893163595638469133995503944256937378530323188680894491023615332783372909526436605286355516007329571433986148030953271435682795142020056373042663239853880717995869441074254096173082618777572339474802092961974845814633531461262835114187088541227304460903209217543304569137405633090107920567209780093920966528298288319023372086837478240232916468757637529191302809049265322803781840944939836035628912015402968980004672719726833639378723302740022847301861410530254964146796097852659002308338922953148162231558254322950761564582952326888387110715591319085232518017216549887206314487670641722359771943711611318177669567890321728363353216398202631180555264820110829916876440911759109030851796479156595976692278349924925135929179291550802961186369326170202345044807499538163937313395139581300067742714952717106123054589772077138882105972997999982571128133060626768036587367608553715738958872096883398040455888348055579263861724001250690492697407484442381545167647255341842541512923655917756141387001335893976729246266031339579566575843196440827351870186659208117691650480072417307262360078253816525925443281876811575926126118819301675884649562818181572559545582599375186446227291617589244604404381934167458202726094912820034362005436778502843262496990558750238606798319911651799884054790450991248789410296030869526979863630837296257748418296659002241501777348401753461754797192907514892359586234005542458281856188591114493174801206452425656431620934372293090328492140347992990621283153471128505082972349512625243910678513348592112726540870758306748988010792114542377473088395711134489497734661383258275433901600799814402775314346896788451221757055787860717245001009154759468856154492042345601172553957398024449324860073948212076137435778244538403430090415954922156780961986987397194890955355969040328360230682513940479994322691616041366704379692297078581690789091275365222546418614481155766086303193662886471515164610040412650485093428340608157278131252162127500030410128677576221623259577255595216101732053687247649637988658807197410957530506981255700873927721461241384188711354477055805247068480278736370815244532740235401753386060127253752248539322357258311977083307839334443042981208268131567123287102151849760687493669922734768890779314583163434255152744927023504230200413206170792774167258545600075664235856991953436262599414273284131389261415938684370255993182255234085546613044858084269529462647558967638466684898129675079687021101889154155256506661421862377883188445204669436483150026215125540329695535475109617086804611816728006673073981426513421856928456158224644449754248703698127484428263043094960955768595351739085293084530435017035968515632013890411930392437256209624690125005856386191317653471928397518197092361155998155447977211247107366118830849392524385677680474241076589159816405922223878794104297866097007653672987173484553152262592912963542151176099002313492862150171557318442062428794305069688832056516142789988054213305758772147881264782155492372790149917397961868783704554923070368446155822647786709773184746186917455269946923335253692068862292914484851638260331036812162070444532594158131801526545818920685222829417253215631317223592668412981455837351724055095067793820159335408006142929354636632990349323724252280857379260104157714119880639860019622438336906322343235535515653252274908553095299380382167099015620974771575239521416492491437735945193748636309801005850171633683834848384797529449699549410387309981781329749681999000256134248568239736653579856041495997902325439369268619138781434050187429926170723335361187276762219499038684742845029172875310014607491000566178442130479094283367077071583966001481392669761048359755297335903264716452097783472872645726565444340059168193275973864400852169103419436475450037371865837175907541593820976016402525786353214698686125443680728391484194964084238211287098007099525901379093103397686280926488612021195270867543044538262115221993520394679317748266046595631910096071452054817489824229610477248266011905409611637391497066175884111381958751503752175716996257303036525398680612597685894501944582788981218652554821577551082730352459656497733944289893644619363867488511228273303378525639169081628772048463855771411004437455026686111582034202766625873388575617381039953315718667618162156596795756199499115857164143127587931059431761059429881972566273344676602950015306257517351487360925568258086138106688789389799623284592643396837173049880489211744747140635296656770263065298185325256027842163768394597363727555377523213397119145176844863287775557739793114210043501924042011041309596453427151894102901306827676317734266757048488109857594489306653920281956253488333278754080393930841444195423644778265657976999175907604586741167202712533852647188402055436120476236735353973787244115545179609049131485593121525005515442954213333094126652866141121366343598652686664724328434011619641005289626859928393079162726491375449236078268997033275740316271919137712076269425503937612285201003670445458822984771728059960750639951523718354609365452188307928257804893079118167930559981686568800194005085972249540978313247072593113126476829555504555192604835804986983134888108713662272835794887107855631362783995248631003281256826908968258499218957157475589283526249201482745311949701107337484157208227120016130329086011262490571723165287428823267566774727500984312856479926360134804542555782672202814611270447792850205002597484305536874895980108148464857280802967690903990249327550571401657383858306663803088852186520198872305423931367201599997510108026950433640284076749253711356091792680068136127200825652134086165159152065817548737929979169281846104636566292305010698012772107079990814822508839382390973393872348385515742791757257730741657640875287115245042463669913208501308518488866876945062000448220907062093306126005847312349979414706128508945736824468748588685157403391489225718568667610246887441404219475807317312715741827665160750309367671316717735570802685052147497498103789957621727771104283928794079148760800386358475562353494960836197049992668488248162449522017607433777052548115898410640986195439019600719659911958878880964613369924963284643978701099427294496673414764664455002356623779487799024412518061787659330160522709437061809972885270956211728649280030904452845062691208558494942653679765536036857188837957007502411301694498823878812822439220196447577630400823892933518867504283997017317243217170954561606323662242868492618845873168602005016550232458556360609194245599077594727683636768165269179737433672393314939326607065544950408571389314468081253024016478401972604742490561893331771690112683596171606945786794218374065617108645622985324770079807879498965753662006000384858805752007263267870892983813527079454223848870074301454635171813249121927584401496473441539833891491939635587702032318370386173002376786020709151677811269940893847398636755208209116604188480893585101430354210984533791425004267575446549570819415694650968663007436057568625346342863769120811511221166046985250008862530820881753736035441391976989995184148630284644009362327301041790915690192279053350601257721551271520257579457644887418078129858738174080162212108456298301948503484812338152878385158371323231548166383035120302915451248028656138234654654194996850242306334979787713904641070948707453247561167287209443168306152787095908610598854239043923450800985575294644276897526637908070770618999568602054879461260853678518250231699214958758507126997556117189397806589619681067771587295387238934000755206036638489685733616713656323777506202761078953652460267813978135882321398004278520024196855931939836770905442145807735544937613220090143335246003906427239139175938095229287504442871292839408170147776535446259459237638647370375641810932552333585344113114831727709761631781171965376794218330133233217763640409941732757904417715828001377453474110413868208003796425827061300753417701389212019978631667501110109610091519486962410737946055655259779590680846654204504306492603878004946120740800153466984116685871090518619100523254456081399166787145969835090945892798210651196223367667114814665782724180224837219631339129745211582353795717432130728429343810412309714588622157694267378310141569243325549782973239765035180207948224433523129146010711002017119116070132434238033402258471559300256777411394004210825651189751537387162897476258407915338151982233721392301361609810344778367143328759816419263564653746138027362130060195825089775967357888096024033157071820746785072822134581201337160919619900084665948650278173232646149460398830363265471154127309834677754446809126313275552694599453822146827733679435024415737288339392553645450030253469559800896609851922438179669319961512737852913692864372800350605270380399721193407348142225171610801930498818250465652800362042038694370356270939105774214993632329093663998670747922575312774958855153246284112301167355956809124582284767141456577083865889177098953980354437169829498060206456298383063421324188507453341440646515357881455409582224992838934362868444511110578697698726909522345368274094483787741914582880682783962609408376334400025586595382222417566309280772018873003722883561120010491981754399432544286268013003921508008634570011306271478676476373712101045407948593650944170702463525748837119345537071824706133166354690158401159827562395010533993446864362591469110654437678115528150054110597313041216525752364697149009091103071142766629292522812416715514752659328941496247159955382598853307275315715089999853145278199953774441921812496904226730707581026014148697074230264028094946696334086256593268473363676151486525440968361562790222342994034734817098776524382947385826653793177205508464762189375822815724830392606156692850287337013380630370073974653110746287872121489664253776857948904834364107511528642569325337870957795187816596215351692399602152915074359760073852085524881584030137506452987894545553280633509948334307198005263337837086685864984992272652078995532756028926943893501452179803122239212120782755817047962945149544027991804498583066007513358805098415910354938957934063274668086430309930799378187949357796870262436502829238331261363649456845209045582238592098259905358412651836324453541297153279927713782295708079961448024451397928369619473254789877103131053918155877451551041711080688288893610490212156045832479868201551777981365797742545472864765708793535650672109899257531247803347860823847729282844450211908843812792012591828162991050290973746760309268746789335506973377730520677558454291823414347417225749321931075857235816358746553781885405440331518474849453684344505525084300427357998274450661997234479156736982559200549433541785368392327580567375078312873994318947070683808961995358808007169269587483954413383799408510967292171634433878459972744498475057063973245741844880780273877277754320604692625330764930315056860504140897819504701772015114849899461611037745685106470076467113667713508812849570685637587623768896362335298700212961290347899271741880549317687287248452654750492932475536651827250284506772667209101229379705751409351930406682906678965369020927341793295538658853348538348077669021575230774713862146656899243202402699026588436114995314004388760772778865015478339151409077066295186593886707092811046516667582233264184650135634228995312741770277582991080546234022343535419154187085105429075919709973380949892754043899539775786076520079698467729826109150532962463026435343896401285288662979360567898492354133053546641842578746988638166937284206157762006314908544338620166696374714129635860304835392864342875641388573658456685584667621444225937694010765756627900854716783272022543575510625112183883334658806851766039119856593419383956482230232538752443298445264065973106639795367729596152091045015258325620316196217188635808945393286670006693306691848143483947244085832735736997910538680068177988851783015807723727642692607996841714524400621761700931413630173017052164380795602951400517386355581236212239802107604571240387545207424580285239338292240141105960874520704032609177459077808337118436462111765209317987971467855855778954765490462311274308308817451760252874788383106067922735797773260823327180916122997060363535604674698190458311414824785660976152758943954976038764503374654355128197982663109886238900384066838139477799855109082876364028713051356903472991758096550693560388102460442410029449428445658652285578135560233769592012067406468932534832409176042447990686289648049375686545787160523110602869470901554834921223699210031244344839428529448425737683842226447214309724965355044568669761938753591504065473232653170017136628334790820374395928344492183055622839974616179505378518955515192947405353549326666161899312889522061406878727086428404579320481642579463529855018317515123919704534995933036750262453047865442659629023541573202369896914075534764035965197134244120120019163188149870112323127131643904748724444218590853635344660557108022576748047139454409294143044735405718613834943989366083425728777100259474710501745500050197333778245416022627119012090999895957712411407980730959960973732461752079823737801557305203247603497398271059384916177382679994359113104787969731670127591056142710423643892588508260710471609176465306108408478294538506378043632405803565340337658473252652304042026899814488560452052603860512211049346262282348349562511232239047620519913568390460169422180671285924340149347946544194017974707942057579512761368689219332405502993604198637271389896287035576956903178194499891104981556627755765071096555411736030563051223236537249220857887867931811970315843139929700507582092859038786080263663514432908991771916337384391364352281135626226236978116551744132383955957443888797741573953333333244321117378112357652816413404202850593371929932858527633243489586593201315386589828540098886267704341450368791758734302927806666208592765211437185359029631458856362040014092673879691714087518956247097331741815476075814474129304691538979739645461549490555270378564889812595004231881933850638303457627538282785018842837872959167179482005866856595558466894110946351611567908872950767408658139929923515812755355503616946690748212172332755325188244546403514868346037575447151591557377438463310333587740237940304179056450699277552878092912188204782932803038938433291823598196550283576832728201610239192064669320768461087553627881842436781048552192610699871119507113430172091255569017681040192040353772253384929508716700450369218521991906270694568161380731831249508615457532070332889430442295448098804224768935265028738307273353496171227950186959232277614535290788042024677560883132586152944736347355788367955406604673002411795711955274003027222681806450518458507746313163789824979064144235752482532040731891994931127862328941877984987177991023404766098433771707790040866897310878473911199084274562395755832603574315492930007155762121097726575043472484478031433908216559464478455240984652066541093960122633572068289002778856482537832381458791223065951122835025509088301330042035596417937137419046019624337302872500419044989173359445578717537955652854326794824390751042696504018296597475061484385223555148409221178953927064645364664840836967496296539105505195683248059130590810848473460523527899552244951945304229273051142920953694899804425374877345929279210085544367390792298398024864950056004712580928323815714807352384126521093555112431588282324980820999877926663116010320399639927900283121392529431651132776383091250425365891590040581104843916204402469596308206349297596345700145786242189372832575626511001296592129582043297379182194021790799435922387318199622331673565114913222734484527291743462025497573242630887291484361477571638900622329481882562317979419144542625388940443199284191875989313072878047033753306706233323600581278749311584039340381125055014786393292551628686781027197775925569658160709410167627929654600405091296805868294506004667853960012283205266845383310296445047373756540693372358093353170677939871377049865111139103160718174555204526569101017971851119603926646631439980079821700807191554766391697146172017566272924955747807402928923578100444009258237830844298754474966079006618208011842369659856637020741336066043463189891089272725709650037637548575028132367929526827014663226342062068058056588951594087376286706025418305572687088176494905315294141758039865733765218122749629215961779833554264929350290963551547980092171916836954081410219834992022095119592748174233241825345528931655409256939291758354917110100907459201180028983450905107788670541949613092894329716630583504097763272888270160727944059427447119364279689416046039673425967597299664963271823338633937907796892063351455349559713105322123024286323766469881957780358836323062373390291390459878436821050242660666952683041484202685529643537429815115284036054878052726617121392203489019053309583899014483060887760448273221518434311275573205886396157639798637170419651558578090554855908898057074960670500411929474649469304323161009262828045320637010767728677979057605172301480525128172691976921556131278100581880823075487692253681715758081634030983129978271379070011245612636912153540194827729959846484209323660345047300423296499443107725538570200457516662979179352412666122992359800860123697862285709657393675115039037109127109622277183317821446550593027630611494874623236429958698097768702854183985825337089027843459757530661349751406647121168184555610870015914247076742663440174248655219573532328593962403680784126029140195712852260012104056736395757486595115061543599685771092236059082087312201817547857431796692558345790445172557982524121532052820487999964934271479638722676859025239171933181649901045689786271368742093932024873611533769016305596364070775533329572181995771650102252632077246995739240238073223474285346665876916172675671866043836306384679540167232266749974369227296180244926914888856417668106584176332173565587966275064830534234500663583103377225242956595548057295152649194903052426716169154370655795884004925860858311387210981106049649597762640868955555473885513039339384710551162824074559298135798625119284555164218046532991361427979458548708936441734673922398783503400950442552591293773693766846242369501683529005548259075555003325513436120854445523058605082982697128100161084137972269469093054988126111175879234830275330949854903210123191544694630500417320184673440283758644569661610569595930958576844829491747602013295429394099828808208301469325278570772874101021155968415509125217007947844846568059666950499121820059273703651835677445994842086078568518403136433735602109311596294467531481330852863532056686231743467466712005164799125247868578869298898069196523465840565534090069533415304466337678833902449901329073821092591504783449384812331456524581239607953225320008353675722185056173568545478537005083669542172776054569440440388976591297592729730637174095001397573629968975611831519545358754540592760814012977039749440257002362589932455340069574827792880808337838131100260736376285108130491412970667071916600960122838507655948300924371410350022961020613569612396459372713263568151089147771665852173472260576027709763466675271584684449317268533729190559787938907532818398563392550480267199540072432466893614100092182803990231692635952569648265938067876364242078814571577665325296173507413337919178334895124583078038486359161907990987177048639359567283871308537393693392252827181982734526718730576719300498418305228726138030058017309414561873258646625737392835447439128436933476246175996278037791649870397436207632048729984511946933580476987319574530850316473713832455120996439351342281932107197966828976916986189256393036597328774021954309885933192817652423405031967506648228559229196635043005153607102065085002147673274257436907868773639362335645589918715539620867408529579310217208705434312708628318924782758602629030901850280026769674066571893227583153410763617633995400046356045250751493865531893564552630549754113708827842265593403358395138232612893908564117154687061365956621906005312244894465054566985894744590583761706270468847466305200341390393162715544159629872922239702336131340214606783601900034279928282781408214974488438826105974383098967489198258183270110177980636001644956884206216268552380616196371294223328640537842646522482764294347844162035809500700927138274954345382105532049668383407074063243729888096248044124865260484995378207801362617064059836791823689993053629623403771117730033277083944105052715898878714457469391455136658627163808775752821272267668303215046760287030545953874648630863838708395556304551422009635926452183688325995897406349921130850358119872745614168473376980849184256229213081608112966424384858118256775942998523832882217665005637855689970216616054025933449964673609452588063936992244567986096923982094306123151929233771639027398778738254070510836777522012160339327260935849767053475959173997260163617179828177482016290926821251843676906002618219604850908632498776802259357692368148980863846990993915675238505241584728729584365289764873911834449133254120409275968520803571394262185320245747322080615943474213581056928239676963575554452206459584787631974408456674426618057796556994416276722204520770176873344515555645574204157455850438820155417239202719955274563844045547598041866203541435428440214440882911135416491782906410995843257806830939450452445843279010497371649806393576943634749662566996434888730835854504947039742397119940402368164044179729293862612613774342781933084978476313168480316317641083786250536879087296097664183300093763794998980767433494869820053371755379589950735781228913744370576174413426685114191158098898365484537464184110129470919646646615295716173029187713917915762378426550833002472281586083858627993548687710345516297860460968227317100044583550728960036015618983791259107531510732708214533154829644741318663948855860278197168584441938536226936745848098271371536602131838689027906278855122020534178707068359387926331449227931914184082827446688744330223960411191961406468827801143040641957447605780666825537239010639490699412028501784452002396667911659476908996591936401536780114444381324035050955869946901829096099879301495906584980422277563151485208785525982140061398657122317331096094216192334234612619361645412776640840594939372854037560214719140593120481061018175967005123168888914165704700405232097149993811796548554735004548317447476651604792466098807631008222119021991134982554353570818403763086144529204747158350262127464651777579316351300827061035153241044601041593566520673292670777749122080455120863020663312517794219805507146863940007956112684483711257886584704626104923227135615606408069499344871785324979092879725722521480356158886617361138484021523829053927423310868669098653628809871475852509612168057373618594091203202950024012622463738360029493980393301588995990981968747600457175397136433445097825956390991791853382039671862657551297451814508697771377832858930701155601836975719077239651093496599889923412711147690988553453571837892577007909699915584439316842064507566678286088707372851596105682689577349099599239130318298104924852297022516725249579381399586324455963144381044426267892217489275282692362094836315385234783980253310228488737449187851236443518413383140117577704193217356416984639428854949490934243439815057652619646076165879780248613181589512981040720130162092180462978947422307902184801571773202996512946201690915778520965965548472190571979387432572416562005623407566952068173210075625608935500136091406841103184393844239902121820295108045372489132711151455782120850766269907625685288123994182606584254613511137766032771294283260309311192013394103604767023106255887837136798312361953762092678975016870020165815494191108436545470947990798806008908009260596562329821588564118569242534294091543588576805944434578906178488137826838048639896162247495455128449359908797125416078132763214093833741971450842191985643162135086536850071464226990648901885070220160917410649343975684205769171902082059920409577094378540834266192965922318478928584023890849476349231518503896581525999434698865000024205482175423663744789066863370978972587828045540991630998083608112109195874332624088838211909555805645806954922223827335097905866341399681923183491043658979100103358755300776010753306477500727720134857655757917388862168057147381272685790515495231186860742608874385853314232820820311588888033179681332928152165276527156249865294813533660406119385747892421274977629874291346890004010006636756613709980686917563219277857731695114422242418436519720539118030235136666172416641158040009084714443117345181140654043170394158711875638872426755905036937823118064629110691514511764980121321772497345216034594378939432911883251808071621971342341136147779946690774996008688194120879574672465549547810237790375807191487379993562762904186828494668006925927632552694921063150588312025085450845057284782890706511706186048663804885386136620492937308834881672133978486753011548430208695763963723079465992454618070011992447259464394737729063275001666015081137909397649738696363511054928465242443603901665343076544845167682970397969939985692062285799428412423304014774458031321108611200867265360797866541429878963961331444987795230672282374850368380822734776569112278196290371319488404403582926667817864745232662585483852145325415824772440134955869768251344046639580874818710255972844692403854639804679227231420273608582905157111916288776389757371366129881695224614933941359751580361863299204922967155173565602916512042872294086515500627133349887348454817323807110473857019115894796719595560642139496910790921423088230484670840792094010655875207753649100016094402215714988454395849036511819635159616156354918306291773667965339011796220565643045460707049152531464199705776939224260013742578177216281351170531056389556727127102256161257139140463511601189636968981005318508644746804413178774164242333331735595543860625659572055726717018217483048192349074684347614943651819719224822771485035750592702877353887171603546000869691549564650570530749338852678831199124163986304651897796353080329829820727704045419777165310572415553054077269647139233862203535698736202803766681349044276263363922132109002659908218907223027709150064776743035392953874928981810341677756922548795006397686128467535128994209806003113739895749143073260842335782492239058151278199514286663440436277563058854392004636285198635599186899138448996998040734087669594143338578747688635326812011035891676367940037417773878207957872166974987927720202617548806591063680309816932652182802382104036869480475124088458499276246491995055593864789994755344567176816752622649906383181341200426391473585752096595847383722407737717277821336809098571072205197337033077937938187085691791732512686725143420065221480955598642770828109005871839159432895880361904369899607742016647109353874623407449823948539049858948339598108134663165781869377346758042075191674078100142957777724292919404108633058397374632544502679024386296074447675465190310249003151347672806580169501510858042171142796164418425381800485575686200091954375393026509787350257102497546859828170727276579262290582105777082137725789761847178389231859533926965303810166435047229243069423817586389358915557698784404950524552245207736943228740258791578655814984672858708324918526210467677848384703213061214713416656639334082607221075529277885500941278366452945672373958691208697355689940586246400178611211505355831840660791763499736318507673287857645028377676862467245868481847416848599729250268370648036027425239035432115098493803054562564767719435129646811118178074801810819432370579063837719742936319935260430101693444005709728612138687661075402569609192119447414385161406032012015390201561271381184980767010929870447035603772143555928403436591751018806480692000220298086919414423703656322977905312724674046919005737986272921350120030375883548651099669545176035765037104004683304897363631311681921678235822270524323285200040902721778290095482383808620502211893632986652236021196805081693532076030755896498917483338161504421090139514818829774648419943547439145859149355009658631393198560488993209309664806991429927068173797638698127729170497353369904899056565396770471627367449741326020276394925097238820381935716129353688450851010186809604598471665768412649597344534859126534178672168888847938299496200508122117736152984530417683822190643239966650654071755552628314930439290224216139800698402745529823410856434306251595052203761339589418358439424125831594275059379657301437507246217167091231708475070750855468121252486177354646820453927076196073715506856034920388083392435462993489920762397334667688962225764159779123456363984188144470458130683199798508836557992594694754179570172951230584084449002484026296990721233801515498315214729165768595843767481850959866769261555976494839896680320679963970813814433170358591904703789669441474664477811319153811876077520385109696111097175593780041801815340648276796508290278836774326149782525309179325285080517854630107730487915978947679926264562813772432112524180166130181166231868930395790751938003089048468927607421059533569878311333530097482033325510480446528402515859871531895307847679552707561157908829821635601046596690930618181515358771292268794823544778107532161673266307011439685341983419233948654530320542158338046958770497764109165338107606891729261755932876453321725445082246722318008252316669208574216934337623166244406510237024795392958927824220295874894187751677100091126274980293786567591618858608318901356284980092634243563389722248763881624718616495741836546443197568722043866527081299053152142892351372999253257572759263836638174789076073784338771072152404111638294156426430553480860154134130146839404467584131779853650178049477476209316641517994568263046124596035115218597593750356846816757911716317597463454062699783985449075931712217253895834427368427269612512258217213188119637529918870738348768440803283821163770491238281904898441639436114140788046748235657025217950956112020657955965979172507029738095844351105743470432487454881317243787784090195568772906792491216926724383059651405444126984299588208750543370940414505504219007400178130265245742858769118309056834454123485578208850554855100711651863002139895320064525963288022707324775876707837469319826277844471612241997380574797465357821045190856099224564582793304521712229474526815430798864288680022225125456495044976489765093859425226068147807397121001486254892667717228617560987802782294608019793932974594456276046992037494775122150771608347146594779299466541216474558172861803001485046021630148871327700057767523388678648706917955441880390898737327075597113333059460372792617116263828232969163401416459815230415367403138769469102230339400438315406863262076090660960114905464327867471247869314130797222081326150075809190082053823108328953449127034281655182291944790297477022110014611188441431807136951494890983321371991830267793895444034464505788060375576570065759330712630454368342053687878072630344189316724861830533935021850931041109184843364667685160466350007500449848620615952980209422551297883061378998145252613003722161300450223177090590939289072110728999194758362695766925717609942513674243376262434082399959068507758087616725224848096240173042709530241150751022275243211614492942026060611909077612179990910495364892867318170316867523982460786139679185401850623201576636447914798503829913638219342030799488577896286928564164355912704510101457968283587541894004375889108681789818834843869532513470405223399803209048846415346941309348745541721841843633162277947468492462243553167350407114675931546224301236094071445595599461826438115265786229800562151076173051989316010348008430709863429519916506610091253594595844710081048576780203872676184666712237699369553527292879750246774633386101864937401384412441331967870218715335191682675027711163722880193577143772177540438637380735208007164621706326908193745935174478410437593592811323737217008142978395349575434229559200468339948283799593769102562587495216469017091559026033772126579808283725007918365433752311321596027026447389388110700806492220474656543670468693829023575348144846319618191003859257941620839200932597910518557445698562111629505048170241022257238139502699385841771271394632424194900847952330896012299490769082760471942719831506108937588266042054525625458524053921018154506269799955447477791019028245297854545982461841737669269872092692713020993228496960802957658478002853842449034186351512782107141958292974645912260196659475913119217982190888708405552653330490459657699647635497713668071640735084880253192674902616838095523122747515015614015197731938621014651839099852343619291560570967170804888552949601444095636540888332334197547656997600578298920080151183578326773412474902813588244062459624454291552854872359414127410349678618313069643984288742482230176982471343734948567097995742278435234558976281212194064339411615678811333907452792306454415933098556490403651708868024345923154817308424646044180394532930885258997647124437716554919712516911242759388813350693017957034697358505035755020318715831762167989145487491323702002414754581547412497429110293710532584797311539775927339822739160215254917899417519102415754145324899091580824815179322707546361142468918639810654227154510191095916972109174329766819705622619814642800401939377967339197022672759647040211184353926572526244384321395223185143429964224014178907013436267925938148928626602610679083152566217158055132559627411947329069071079335364204100704312788140523487241873601774330083018218635179257277964031308350903893104161016609825666074462873276344297043879079326943372651367139210400783034832644359179000457700989574581117204446075164221930782065784082881056288467573134117250393929067098786545720000879742069657369334596218258568812034242495799808011564398326142631235834236643517528209464360211530750237078088826157006710495000092308467468312200348916267799892469976608092637111722508834918771578903493783559755166769732593142130568203204929215778177179385158410812173258934121570008059982942273558505146940456993112057361758943708745420592169694616406078683590330160800703008639846072651009691763578291624669120206550990239496279777870092838089928891949765339072096485895403610468030022796996751562408604986391797266696288998520439872495176838224753723856632402312794412704410297544721518180284095836043411567956089829243285926765396372739834787728698499608327662786180018817024597047944798161933841930545366096783457215017007046175008898731460254179632739202075629808544935932231161955796704770078471831559761409844243044574155355284590558508788795411119690358186572037892656405751086512056746755617962882950080673023411016341137838342243091423565240796332963966046348044191973079229943954151240422064232378874714109814341066344376586182446819765436179560660312930208297904820129883020964735557184741309834641851447806931218548401805446134358488219843694683664535402681414372516230823423812036438583273578185079148537304644184323767525211525915341232878985304312841949221875004319949640653713822031273339174963986514778832457719572490278667106807551408925503256678165275338475357676285782506642660205522160088330590269222250541104784177777479479053409818704963269129270735946776882748573130643716925187249797813079660082047742825887862439795967835048463595239312752050478232735284898942048648461522381458166092019017078818365861348389132450915597302797081832681222747935470640023417632164920625072083179458832301938086111968996794590084204564829727983002005723528189790572827704350514930760510448964917450267491475382012794710853717424898942350897003857227459289987205455577641338154839361097039632173025783440352628404127340192102081070256104892754713054725407282618090971759057587921532817765598567612069774571715419524637976375684354351870523582028734815042249295110507301502627024202444255870742132673511567394401049835115536609374722809276548431843421050237952572971590181481447409912119936539831347738318173895550960374647184042793418745500439231339406741067694578703138969215852750095216103892557542555232766356865749674488310405323664932226301165837358104349663407424471523311248965546518778125154731148839934314908742821505341623262220913869826180119536392506479449303326384489706288305590034119265682517951661839241399525061935982722373184096312125423427253795551668288437304545643767343020444961548454377622318275741083540806885957637537224245291776622116247708990472522148149669090586522956080266887113057714846440551320608327870080876420453325449130944564678247012417327658388736021372886477621082470876409938129740597852501879748721694764545621279482426664740556428406020828776638483228379168225986533364006679749897584612345331206401913516129926151939176371733424014378685127108446840398942386229773172014032873849152236802486237559060542827997147718370491021606735979866107083890602278623207732631198533961344167799965429691435121204140547183243535011845258330497679654786659421072499799021786087847584822064968449861840651047695526490090844316118021614939948125001763353999174769423660865211870698170634275125183206274273016773025061472110641540890768606130515274849238758015493733805850056693702055146810656118149473666612978830844952459340791571853072334780702775120826350503536973818709631954056483488410079109389342605273123541626725133356504554461682346576452345976235429534032903600567716883492669636804507026464807277042847122482031862302401858394695732081038495030481332658087146099050872622283584740575344274340781162879782425743376970780206677023297076311058328179809073122726032521120502376018405652832287102124058201427986318665254799979494918130440958391563868480312642873041371981866444498982752875647415744075648924221551052967795042876326716649440745419624374009378601062265639667971941417685906590574550699901355503337066638716107482752287593916060958419359674701706765107764708226456774621674723906650102892275906069576726350270325523837337477348680962540971382131274958616018928239741185712425675612925929325805397119872308763260589298364991845444321177444622179264956394485957416211573318449890543145807715564199914348853817394556213480918008619278325346962494451663229449972589488796593694669725692480570261371719488946297107904473131853309622014487240024029209975032687967155952950467009427827667243942095503491208193425228493758189900330979473308059279598047237201224282394741700135407897544837836082017298812536877350547922517353418982937225860895061731132476951577821793934050103314146715332164282555206926502660251367271428402661620743662487634882527523693168791422242917925064500908561094411785369330588883216128203282420607316314400962187442342398577304154497342184667248402702549612775245243991334934413304309861303948679453726211036586465672372587482822990543955071126760189559018442930486313562135832585977057441182292589037713260263415934280917784724544965430680996452335828899981096372995565262499882096528266431150144628382818580886206127023641634117688497193078192212445439792087311290567155783618923730254515068580581260223541194934054588629261129849800499092875687544746179669194910063359181189019054685237453253057455572156433992233240560596925953712752130506734512813857667406559563890537490711433325158664106462585951068718809485894009789682872808737667346106020197200646904816130815645017570367281195959930672998129869202032817896517718062030643233956186574812204422254441512115290863311759616167381524062971054871844897651829731885361716284634983842141734675781984496051430693860449078660899408078207541569495206611879095278477754042363643207007096414598511396236881318731674084007909225642819318673210352170811690004477828522324201791919379648178417289623476661269726568650979011471019987244187824913839862274381949205744365927089286782028285613101173504063103243885860946783166429945522223289951349274718250120832018092304474762702400557761818776240997365479754627041071950532811049155711669992728954655258719781950925561349542433769980727602424613098306199536984667625457268378920153022510152027357873216625864182864121392922605903364233309356740448992362163337534546496694610301161990660050019310375389714279511224874585998868948297038212875890247314676891557560266584042623775067219026837724320549453982113659378137714276377212796076345660280596214729316052253184724263432173394728416470162622548285051251472356538603004289448630428845027464309775377288870833897823817478329144720123315356586733437709160747709733608872201733785902875588093817556066583522944999952978986143264846860733157815165731731385801725756168125015853187198380017212218107451260423989420566123209840507584407708596335255856922598243107059509393252699669056799866490243377209895652561838042938976657254372421347493796600621665067974136435024732882905905569790204969079547658379854106015888934641694115378978846586269738640540154510778401210292466621025527753109175875129069585757197706168651487182608589445193519327444925660957889876182967312687467190881361501549675741518321982052248817320115455874497973097104132193038849312371448630116479824333027151369870224735039398079151063510669290234457987276507932688868550248972710534805995799645267408084158737402395120312397232231182018706676643139083142072558933102737405629943559966908214304755303709708922342170119733415784591572852732675204808488457603788625567042755559280872715469521927378645140084970846552373471776852957414479696986788221461110018288706920424033060929705922417145305538868946527935409362783077429322805771343806259156947693248542748033980469878645864972286258374565273217450906729038155903063133040103677398306287334606754986264638575096641203732119244555343695749118328624185186977288568886717400856815808473507531827439596762056096976358483760739085333751001364926351331947293430579126660708599857460893020105457984550266816713670660815912256213218090953687730070730483494763415875836835814690499836196134554134902871077991508192066300189828010942518796957024316783592965519099361725960557916965883994516361066621640003373239136911234632111370552626023401383362222598781566767983989964557184215167973245225510327465793094795452985517387028420698736487402666847894280645292155207808418963714558487521522022959939144288633803218883451746467417386081021916648389283865307271943548853866136648166133976688666071795964478555869948131334804207875255294313166632520819912135666621195055061953114210857202220996491133151112863462029051927691530483544611262304101544319262620873660113861895548757239725448439226615234444131553489334348871013792046396938057468541041534169245669501563553613862779522422614744982426952707480230624311107910537388955889235856383154178068977173957387686105417136905393707348482912234130714721631569826547510055509217192486537793052537960872008683572767583543886033879295700906477061861892147024519812796353290878953215059785703435242058897839340631685397373050825511516434889916379815069919577967022617190352684137667939629264360129474598383359769675129062484714153638424123479129750982999740512592854248662906315891611835260285550836565965941553219150776002769528510736651707365338961786013896640987340496191098587497854437969327850939359459043376746015407027924659239842639589369874933167522812425513526734355027869110485480649246818891339021556666727693113110745006853241186837767424327765462238112387565845211194225680799841321621837211903698112592156919540442906165972971604289242093796814948024374862940394339354765594515241383078878099053346459844054818717746790729330758788590552126541854429083555320376415615932809157884486257316973583556071703897020061617004505901627604681582783577225491730767899165907092701474627118913936971660577321502930159239032926760155391521640451014034760464696382890785561916453708237444258772861826820959904571256436709626929208513025709738796874636785618361906256188725498557826819940374600661882527652870840104302766291284732881098654779806422346346209293256847329511663755706822477339351807285961472538427916830564421434640081702419591260250254466060768312523195664397325299562962321515312485508239693813679253355764121512630946345041953280315548026803797045868900984543260715948749786718561187167651723660758730441647654920194145327939293222884724133250514051220830706547058397286932663512570605879471923092599370596631507241304262767817134412511796231138481388588722114742588036147513567924292785763689231370965435883184812268378523833982588981049095225627451877316913367502604726618494809879303589301218908528135357081205387107075596782777302036191993727272836669672571118712474650355076603570894329425139387176598319949122308495251064928370227266773884219106879414489652061170460813141742556983711557599909283302167117781640549574162600871972676880026960027830789918390175920168177974760894510218378783489703718086202695455944948572439137054330635575919382007840364643475440041460147619651046401464431816236366330007536748862527435837933687221568084745245229480331964872260634062306731919736204086633536110024829510359267595429774327701298264713955523346275899742989809795498949457114326485024831598776775707684208154136087139908226332980786675337355669941026493830665766185182020152043931264845266256406560285890171807419024114726798642136440644245781600476446073397316914304435369626361143409261645656772227490168658082757110831613068207109680037125354265002509351152409458267665266242616860185169244692681773970863914169424308003210419418410805473917663473453159581863219977471063754047087343353305848142880233279966978580001510879123252475140547593049671590540561034888056597449547036582375587526118427028769407492825525997571345094914481352265662456097315819276212611845291165211272828845621929304103176010117562357525803777106513429229659747858760508814275662378653502706977352728512779134151617071319940326784430639478722305322202796388927932588114633698293942815074180009884169059502680489435421350286164655228142981361178466577049785841524790418292515671165037565671632347187460530862304081084200730876126205393083304045768106060732643267400883040530363117565316023924691247934560071383540842913595595989102174319924727158045164521927744751236521975124586748564365745691953367144967955583632948510749221136416891000878828936686028051259417413917471799274702327148662966210927967462561627998463432755089163215563417090754646828005331394525643538546132486069732373861336432017984855226372201322601703533621047017188329054541404644532904398711958996828978487166011886556117618267270538864051732719059600698502281123523587450638922963002462027751164516970022934294652555494686868980070434494151045049729071644381723297411931364407084798634672996311610238347979769853987503256117878873823330128847511699407484552402303321333792990435245852134943914353513803977613763272365932073035032747436428294185782938602975413639554519110673264796396631092578873931443258252560150776240304222648984198295258755952671555265816062235167072592405120095490247312152051094309343706324822696967970785345981358610395184031397301650963165045690587410867357575809445477268461479051576698617480173947070006890000983207746020874733769179242808297508120735398030209699038371130480215171855308204365445172852758789117232564628437096142828038286964757449916699755242701957639274991042931807499017729414751296902032052996762392852641414744244540742454834362918507769906652473420114296334587067376867856542868000586565863332839491566859544072506549063796874549630843752663688770681489807366036638718650221005354972440353089600706797516058972470201733430036441231590689217708192227089975065893659401587399806649831700860836873632667353191625058946781472567844271882273702061313122732843306801309867341338861689589006564466602316316336374717228452317173498394973732580753403489717250018731689355271016202336894935726715154819581237868946237152314917358233923949825951714653003470395827385925078658493035231877673932019326638147042834622149679691891341108013620271449452200689379013299662903944387207892853560348442555412704661115841915860921050275062041992254076654774803920903178940943326240379882954859501320020687379764489348750435983447631179654529867946740548803531446321666467380884903763141307248204332666455095475888509516296767682977592130320491815201911799662115299261379439785674704169166087084068941924039533660444591132780509469424584260079229106344863719649429449875330506993168440653206920385526373036907293865745433973828529433915776636077522756516588916383125444726306875089226300939524454742635048631369481003121706367743123270485206318281929763871597000480959530610985378868313918914820589303408824406692088502744414510662359476659785863460748979989030219049091445842051554624193467056206774820724351568440999597458100410509779280046913602670332582504531602489794594283047270578346587839531851495004430561941568100827522050219247604788581794622367010901983943038779136347495429815929337499809572313070632685953265608614147901266348178236570687726702707822552712618475726569010381082307849164176679583762593624962647025443585790296319183397127838003663638665216028338665685717954705328582025483416406646430318470780294978027853737697293268426661260647045622403430813417337061351729838410223572965604023541602352755282198436596228291466469400220865497520827269578056258216510065363111068456607093204478639834084474320904420035650662928226466082743892340544017428323172667297218610752781271958487377396633913400075951885283245820497002383269701095930387373955411382814042065514272140719340020309985849929987002544889315999872253113477573155926244842420691582528066612587742399317335056340408382067746311459232169163364891536941410832714570518706503242630743178487734624373762777088930390053491379579706770898039231700975657819684357765873139701332858029405388439120367716761526454304684672831553183255092209898935697496514935930835802455575982704428908265593109099670268266924171507599300778271113896292389375575085968092861493478755292855308849831461425653195169700342952114200396493258103332795468239490130961363952777966862357599555959108494958392166120986005450696673920125938722450991917988129637723058774510638244963958638180315805736446983950430107337579623312258878361205434594566482311726159766094688957444844497599148355945074252490040890338104787237575771683817739435047743137426855071317295432643360914904625053494606450715058015554099518678501340540119293064599223892797846153238981404759284884255784934742090856967874238115136110567409604454604095538060611007930375326520687018998877569783369806536690833860594380371532712835549586770222780001484251351554276959326672072147178470056104814823821306874120236509117157410424607173279774054761084079859841529394464274895287799068689734197805779179392796422173405682672934919069389398101930710558238657830909849486786436993598070899855917041637738635707687159506563656841176060431264934420110069078378029720249508381281782288717901241511465032835898566116812926560586925000616310407120497893015369351500944353856368814241573135730885292816536583426451741694131421246325941517045446425291666519947744941840300214609441271944792478100870634938233509983586932347928916501917908991475678182278600831363295293165062271771629560570017021931279447220244760813304872586152008414585339605497690511328295761103768193352213918411899502499191396185900156565185267758642756213331304436522953205541917640295544452468167365597002319766438019698491714842913502490065230427421228720662374542996868841243101653173021018308537265470075250711803605728497439793512201379091992846845629701077186802610012929198165866974660169142370210192742168868114064253395945735824268303750190023099293536016616450197351931261663464739800004237873615135862854570237498674380888799421256431027156348676510043826159451072752640211502691823203546397240381299011508970081508183639622908376392786266560929384579115171472757487255837076761873174156369485290707281751518211023592040042424718045590305599347898168215723963675902833442830770336221728460479639097607383204425596563144929249130170919619338951251737558988186717311174520892615713651519962931707122763641124431620981064190206031396071334155216558793624603538645053333756740012967646625624475261221648501415929966311416116798120844289335537987930078667774001975555642163769701210498516425329022459404116386031872082537591888341213073888754442018370863092282832487992288109712093669796656022474946973238916938900275437954228571285539383300917030844050346751055438371882373809702451698202129626760690499160246504437317703578592040236067452719129513217535318507948773353848885262557205673962701580081726431467907550758844610608087667801610474939128946508065284945550692724362198148710664609939403895204735286432829678632792057677230396519023814766700578703296005557451652745869998079622561392618469496473071319675194556890729499824471118831607718231306711663244793958509111078945916128222963101904142564054984139247497375140470464654164438163990952814666365252332487599534194362913965700149611750109975361910560503235536255843505193798614354091999858353040376205051805837880403555291765242919178223592707589700215315969565130367150987315943158435574550926740541307004141227558387409309840673283905115718070426649476931793529608247488852896093389208523200100413108520574729224390750544673403758135988602887324396267337195935876320899739559936108576254851108031501656083300338675235421250267111879935162519675494197698083603211444592309586595166967100632102788889508159257046846165668042488254396394223254568957271057961803660061961828959160179148218300391697260632101269737540207075966540247450220017764477967516351146374652113394087084094282327717183533048555711452611001767848789116033092051821522843083444659298570950414473931520684986696759434117455104118488686852199743950562695166418032589733864053454409368932304764979120840583259811217861181331492274909988052512330224810874726826137716981564679442788748459268139021463810171416807256910093576016205864922604478843245691733989662023652867633012488627851134756602304031534537510048535337829494562385490735637504485174087914872404173426072051268375151859156018935489766696094249813805676353346877818553355017560552597704286426993388075726290508564741554161968531616841356256365807714705913245433982266514911953201944269522347303397098412412602372065265600720176102999837194272292045773685314208224119390985096939778390242993829082963735262623750060922154672403527886032989245459322429992172958924754229690720482861324934570534213645991525128349820432157330626176405342323598044432747592594445414575019609546451132027629252929560922601154603215772665892911230713531341881525300131002874723836424309359769764592080048243889110696857083985845436091027476246512415986847202362696956149506493544332307479402164153075698935043114398028276206328307897503835970659401714519257534227834953175639665349243602130953325129430324289246788212865034974026286892768466147268812813661317115101924085286838191183225279708470429594043735691626059139615447196939682092709197624726222432287340994986452844103689866733771175918418194874823599192643234297162312065230308027675771426658536529959412454284781852320794418436595335358654016138985745506602390008097053689345588054133965038118757721873253510974378413382477857828134855648236963072272189649301103501481979157108351034135236228287967208436773375923593612861153681508436857277348139138106368824251954164630689753762956881914675344062839531469854675304784715536439545458102632965872513000324747396556918704766314228535074334022036809991088516944929215514924668411108738656226881051851377254540500426833912384559708793532702031554285956008538934004368350727055228604448973040947182253673909427964624507632564764809539526043948712319693037379673391586199710204092761185990950183352463913146301551288113706260354648751796788083861129191969058204889327347778769213759934636783333416754735941207711541547873744817573785157222009228719801292340741512474173561194991531397626754738878630951918883775490974879228703775091411579037542000542477415679937222583110477064678772215715951020482611102194353606223696079664043757797077935321354777697631820582715409794283087029335842809323677887550322588250897332915987120829168431751614090193322591289673682484162697174918866525720427168980055521335764664039621348780284678783779987972970920064248626639451154537207760376632438636872513851823256675016558702453100466799342589604975601211599106686610210323165199768341013584447466237471971072114378330125538390355443497826460815674525957283067282770362229288490067042790506523859846240640159902691655329255909172072094120070049422797995964317726680517780083708256414586861011942695449609375020087407285634867566711213754774507353236292041229975191839901004889811973009851723574310724584978101833224877526712529614440222592793626551935061380454153346377615134729750070517794806130437357884513825687638751252228459223962388515841684247847669847130375832792106917500351498070460404249842270496507918379955268978030409665532984715311974723077574999416148506062166780770138367814825014506335744310594700450529384911198317377432363325521983314495300035112581466320897685325019947489901728664659426340237497476724565892296792005546885370898143033468985392733831642248258128278988803200897294191217255330255008670351837641043341792607567065566760076772254965882342902984114605212543079141640489193020931772911748702630177401337745049908950562254252155800965546737985104122935157525908997200113083751771677041071863867414700026318517992480253739462220099395029728792549528467573259959285338776648706080047683875895577575040573617258272478322458329076312495078024989966552995740899590609154175532159850451597805390538888099247755315894202410515243075776604505883311012213969618715351462810714791885911473158427142523027489071105484067913526648173658629782232018554241732892838491092308324544599065557211333751670926056013377449705330583131719687180520868149545846296903198129125534970657735624569938965873530604436423364976458620722029000990503565481614999310487178802388544113696913632349726664955858407421989429830334577133042925319594478414819025055893955166919805887097522029644707236678155338614524845015489049281883425026542781758587213422071568460604519773730851942887372975471739507407248758441808870253251562349645313871517528864301575014771115770685715778004709003701501080295468956428251228396401714486748833045744629075527736148201113985729005701497051335865855606455460634886019592597084226721986808768684268839587833273414949229302890246467020220209252231865031366562852733934692867766348795635272684747738884269169505810368088020240611740367721281270346402743885126610176996106567047825170203480631912505057802017994216794664041101989614816126867716575538151434869053811974606584467651384746283229033736182333246456368159085875535422180810404817377006295015514317563101123611635566044212156511687268712544702179723580325286244267650471910348655977901770577642226911585874661776789978961432678286406541869092348035407526391735405795704544963945893211540882349770183790751039222691156417804083902713268960815688471320919150476629690582663619864323696973208797158165623705146860524869143286500134721395992746148681577152011590754196043838512258975866162889326053083163606387426390599095682003017565856799365588083375860515109931814874051379753726339980549447226771976408297749680317556724525463402161616627479605984663262300528741256876498585021406471326390978455956235632260051704977805734238275070913715443284861918167872419208831967387345406241637805904117088334626103189151704387377060888271234003078843351022679243225060143998614590717506102131783865385138188657812429178756710941773221034599855961959852820345610015367015245285151054482323151186153326920622304038982555327071615572221147349393906428447617990811372298112951207222151773711982574828334117293964749709052991731676276427769094842678594172075059649756440328148862050145340380653951811286295339197249662959818867483502751426440310542928016208162725281226912248409110772490000636257802761566483836784593504031854677189776797543806055289074569241330843139503885074504280709862239863574660273320154326336839422589944976662825546058198981051672446195219608066920631163942505640045785698789904818359506905140209897325798803799747401837430072729151660316484413097859509672460879906157780754889549589579051309703753202245604185006576643293175529399894197282689023385627992131286251145760170743096500609133432171619507586056856088151491217955149435163189122443908535305953910066768532597607969923724387955549516499452624000948009847976736221843388717721780126228432349495773554621797989502369273572990112272075350907981106404241268745988358480683037105295062791827895122669810640455290665701902790275350605843319385536916222660543005654240355821743747647270717712164876333168631214073610850665018749027339443125203400461799760729112548409117844275154709199363859355623594150189183733390052541109838801595100626555886687843455395046068516911743341502142094557241667231734920779563414928085396016349556869028354116452703663570872338927443983841510544013237337106245427031758301462877204271385728843078822706916166694166498182745657708036376062517279512638280612811638798920166050925633663575769672521307184479079968443053011462788141551500296274017805291996258091872900010660369216673108286472159244284209898698248181716325395880909769302496265794880343815993042775320640789121560904251265611294648584833884496776919502397014050061005409995221587886450430166127364842836757747085397896064138647962672897164316259021794555325807910054115258092295532123389205611646317715763114427324482834663775530708559107817615270576073776963852485792215164959625848971904233403289535576004034128209612421771622060420181405191701186924930928468479688970221092528862990461761633327334526348984956188626968728489768480143710553284513171667013321409812240254803785479280097122869476657598480080970985611866054910367232976988166248961200474876998119474804751906250629653936009634140403473994465003589636439347573982247945332596619981285310930183221059827895338833370505604081356525790688246082049609957109479680661674084160282191808096916170298415573584651437017916072246748071284935559215957126816934120002202123013834454339793621382091778329349725637235657243165821688940723650367168609832594723143294043166038573812063580004117401725307171154561257651003051417744523202859310283385090783223702882778752404466420010551290369446911948061391031385038067160751940725696002253206258926738119869189609659292767380868679759195035286540845475582639647553567154859586619677067900573371574821045801481850424414981993548294132160064031227768421199223880023087480116873281263885323637797630133794358290182667653475426381844643475786708463146075291227502027611651459175956809595914853165491126518338430264639927942684539643854186129556639130369263447350815776528839504091071454927833466805282217271239728730342172668799721838180007981772901112461122873220012393567152710847406999659907818399649217965911572934509347435648450180556002955978246520820055172955621207827757661752361857649558489756264409402305336617556983616718312456356729055460395692029283527014604336490831762471457426114404529537703082345126839702774934261328473020288773597474203280210494921459293890019309781534812501634930611826782657341108755401841002062282917197623874561566653950451468577947372829898649041803522138861178324471591571524895769467811023357233124532528497630484420203833101565371985052418047742010272185621765007587399571182652284795992731541416472151014212576185706939845580846637592847575143479282390541891294047854127887145143601605276502460575646364186228170039711043949091041037890587612995030977673406019550544814856305336527910116606175696372323369343562578800494891337050498039915761639546189355326544915669569347912248938141365323632799185048255319057566992566031499585713292593034346186883624079880878197331638063375756631030693946382213252388062147209790303573979188749584113355749414394357311329851055347530732403324367818740046367309813906520260357162178318194125304206985333878973147174314930420687834660526332828319364517436422472666727156170995152974888869700455708412786457045321011398569444449249701910056754923128036805963802720672512906649006673817309890970238677744562073933249799470665465674919571779806519656536169000123798600435117352157642999370872988193123489617254758464024953482891999503199394533100073767582572387274861838330665866930831682910946954300248117274545932311303513071713051380061432786763865093917475283857406006340941986439512224883061649522013102710122443046374584004406447708600530615114536406723844492091833107779471475813064909414374041906213952930982726350848757930967763256675360926863409155005664654917550877442405898218359434076586603258579423190144249433030499832880921651382027278451125931104165471584218061484446446063474947165999807431633096816094792557036251480446878839624388431475007832661153698054482614269454808062161991364360714300035148593489330291981554456394533334697349826666962429828523707006011820861437275767550493245371531635856913018882027675350769785826751439451647304518859779072579722166477896973981735956548527150614756777707106051452970692282256877749356689205881688081673317738618928312248395447251415400275233456700976488126949186794347198580613354930725566866102145895414742719673281891713220993596821946524127041076091355731628194078173496001800525115130236762716796836800408786588376777405391201486771691131344762128201615090301573689437600164529300930808112113590933212118360556773332199111426948799556294993463203257299245064440540515804571770671340981549432135004788138693210524269221056573688758901741631327049478758715365242916787481218228742298868361380675659065414968093259637743740353863023940955983108319971232799061845233526659957583884902555888959713054076384476729523013582019203768695365666331384796696670516305565046740566171327251097657422762867974462522021277721406419779017483110191959014394794521273760439732134435095399705456500749142593599701709908491267499876038666004899168227542305811992879695741021805643489635054392021837153151301516499897228216115158373105694171093633868588064978182435765495467385448403482122278764460362546838589792289057387291783165516062694026640397235701168664222516568404344932043645483184357602413246335076031288358134235406925964013437691387342428184837903023071524136686732920611739472131284081856346884152246546457191963920707079749966460820321140462282599824758185096320187952276263659718096583136132474053734188790911225450797245439108938759065614951943187721215301537977167678987188845662852628440965890341265532188498285820482847625109733668280145162785957698863143449724196764131974815566672457248900916035807115635401037429614453585744378017672656550596881065656574240513115255530241124484330988269563779133521056424932208110345384583189185348139310600337924047830151137077748076022735875401088686288627006815786507631754005683968123402766563717784918513935835877184399178953562151953161397456490631806490554907440756923194993121478001629344901018468771963202910418534019077813613056201384099725884407603032098655177134790131892870632939738585835241441853165284758392061630976438179333866546783634783587702623495720652696573940824120827712386474284192011293280200316669436066801875889948498954166286415639432451051020243185295132343324391829209141785764388850913340670459775601676012174079069115231727168733497686025102192572468428218950103008671810701734357571709262246347060014964008459787047900531571740854103094524312154698340233439615092119275322839917199225021881866671903319532262539977817396512851849134233355955241821517586019285487390365196717219008550166411623962271528669194356628544075667066391455527332023908416856165846453228148599024328674007112800392322762642698733781945523853348136712566567532822931124969523309779681925048268295237890711756558265558455863151617173816198009832167118178236823471692600419867306677459546312288309680968535802546052789222133612250472025082732342357458007703268343481991827426159007252486662975511583620070758336253421870076004986595609190848388464089627978544506747541815861210182728115081407672663320690289498530547960004939910583132197400182125317745155302405404611443703176904290275105974011365035448080894294666616379981268935679498274327420331721653311930466728031571139618760927298148354008342176698955533745264434945615901735259323582937378935862995957089061965139776815329010610618714454104011507439680068168415898818970905352405183063424918783422032608979366121300013287825289272909075740532187197400812082403371075039433089515544994125278196788428587943069891561952713922475790463077180921816587436601360972081362485569724516936520013320483753105747688672062106981212093570590987522726105935783673497618763500800110044991612556209868635554993629476184644209450487333544073815618549804424951202287260767155922218989469717239881488020356005842670764285726790053771922813787541319887671579083306974608725953486218347084717837031710099605064747168242157817742013209181693114653352998739122754059718078957710216616612571931796128736170759306820425643059156956261611704884421175120641182993220936136614032562223061688482551527550121249263966114022269461520301173355004600901623229563466731582976885325591148192675907511075800338290037706192420805338606924883363388066260986453863817166678445857145246395350531366138375787665150980147619826996052422315819417732135776912407049788897624244931740824081990441932894758732334132887235215900816745566565256323666328105813353139618852280876516175133310245912270707975423965466989274301025530075697068418608733928910918805018413298842005932654663091763631171771202467210906559077428721560859227705782147083004177881594573093234199657018526948249325387728856303874797358844408948533196265065849083436008240737080778574449434891221352475040039411109917919034562821387319319870181300344867574715007265458449455641228632976323510816242800027375851820057810456949571757137313484299722288165099995546904615458611810995001558395246884807782818219677932713013211277726244037565665829988349363223855795978347441014691734370935375375783730431228117331485275751620986072661873465589955032787719473488038117308987018215371874184630071434575728831833093226264603348783153844717219164953036925037630142958316207519583204789124556706441725261754713144709537441303478526479940272852546917433116759778637516879945555527086049095937401539426199609352521407275959407620957053642063202076427733802194682957270569375777550537403961273945000658697908125297715547895721540861597829050240438349401292615108444350687071225335300698411811184351864350076236125227474039593603507131250418374180781842370244452463351424736233715315424442170145449134635021540203108799894317162684733471875265456249624495341520339965638483217007212640566240941981431822945511352507977374995746037844899676813967982479407007786044804586935115391846601150929735057798361772507660577486716321773480966971311770290148786621858574755572374341436292295247428745548478195581732573724413651128038372366728051793032256759311035378898235996276652623073021970031919255097557549572955509770034634651813931201752582671562887471373117676198167416796686020049707683346330859873167663710983072796786527401366740500545532986925205467451681977816545414942242256926858346588720851281314908470320344881616759307230262075231452970527644564626545125240222197842880330862651251270289165809268730009510788797762137805285621403528042897743626009273819234126460640455170644098998036507019551812382205434304835340979463556713400153882574115744778412526606191001017312727117043868352406416874453810359931876572282753537352024338078773647468720554304448764847538571114706540230839189423492486385263607723219960997938667881091696368068503000868246825179977109852870623347238650261384583365767239236161964659402136921933850396157149913376357093005652536728606304012350439348291907177245557613263968446875772700795376465432736066006371538406244675420053085845065719304719923849478958529570328671109089049065068734766147272875382899364804943547860835342686423092544218314842053361808873515487599588271378974546685573727335452980240521352454684580250031726651825567761907192955772979134289232992880322168419583338322900221161150405944256332085697101313042838548586550262909329755310780350944189010733452126777768918999644262814874928702047474157294239261464018428158502296007543567391591828212937319651762108940191007504570598601506745172190591031123665516382397517958381751802572237574071077515512851620262714576251815424427610063409837984148262955424131041188777340166773000298782322311081317034612769113951191705964637031216584388331735969426140015890333939402652341575971329787767413675509649114336969980408619007881633783217688882161321597720088422956337617991520147304772666775548738467857726155702774341347961500607720089217420145137963999698503703376255098809163347834001664840511312582547108925540546819847914970357424964185495673995073253908882187737773841461403693222679575649084014907603720281483500600183346433103511283317207500210640260128255695946133836735154461958853537800937986223962614832913503944133311545555723820773801717343159919172658807835155185976338373428077131145371638833381800857251767619120448331467026613557321014750829416801358296240131095408641380030627304960787791870142821508849383762308788088987224306867186289036406687887477373432391082889510851511754487306891871814637115333188559462176000848448564511296088062881104193894267077743954491036425080733334787868224367849646616836385779652820435308614866633087710651646386711267858891018323011083790249300001127601269784212551021429702540258322749522162585253856362844417090304319529896779719677530401337017384974564818659118175799731775358946845509670174804422085078355753777191854203577066846973604552346251898793329427914315909135245769044980161167567235700185515170292650162056252907375399526268680063761563219474820510122297856892360814471832448181048878461253060858170072814096921694310076562121709564929452985971182563758828355230538827040431244464791685949152384212477778098431205247568834559026488656535705155512439998979917221504694207162469348746564771319730802068705356741419451694597768225972057050129276725510931019966483146396200010481481478270455208032179972492008057192943676876505533730429775248963115927130539556541222670244511958590289551890883833388216548209727958715416772854169286437965547372966288265477123197989601294549526413708136911280476669759661784684023552062108348012504821854810397749080346517219289928632151661810291325885224320546359993242944090921357045489037581260011336817028917381482164185633147017857875678986436071658276120620601197468772206183575330696935060669946795713824427937742711776458670212548679863372418342770012233806850419087952741414686683613813230404932398507481702553405363925634192027681804378556066939628818154680756136533594720456639124233482828697835250067867596349891946721819609895308356479472298320559557759652519675747325167867876412330821749627966400748132019238347673170031858814524132714525650122102251570470070423852248904980202024021761494785675154705388820276077243629528640908880498233340774980446368764481024610001608058586872355307960251520780836218870794435966879245320161726600842720156862121495103474280812817593320335625185076823810667048272831098778799681314413911974925866153397669931281470320809799402914883660165606758146898651968546641444737917973691467907438060591801170971003709752421957944729592416691695389874589246003892496141655733795553022507960316000511470104992178689243860382970394170544440840702165708821143879706583654536721181363089622155519467767301490654346441343973722762204218779111127009401369018155640840101221951573909470686588858136608336020912194084806604816578320323338530187571233059496334308261830785487055944433617194983440053412008178718913377516293950059716167991806600823975460615049500606307689457307601862822651500943166157611116267948552344217991630808902105906792527529445235360001227360010978895611257884794498978822233689428283663555712647874751693648569200003857828237670687379308309617211004397201356652625160842757326424180167458474931499449653587485605788414003918959020301640365352330334664586961040228854701678334808448189617996579566079573602079637170005688597974061109683942538176600567193664903603834641707630941549787301315031035894617931680857746382888400028119078449273915306101872819783218180853763070097349015615743756386976524020849355788258080343393670131386314093528094309514707293322806507840676642454166246161369766182090208263815460876179224027031175246718855195159515751248660572085261513303231851879297584572792786952551502830003967675103276751046114637408093713056462325125182444298297175310859777242172603231925284548868927845886387673399120438537660552538836077880676481023484270075516643811212506036485781472892679581956565767430353282560971250351960996857480085766049996639638603047466301333751346841034581848835120462381957577418163091473032218318095019387755880094334067514982285981141912860793574908311045691427280295706482193591330015215652611677946377301891912995519552826202302844965516832216037109990102855375654817803411392100748440194410662232016731691377983980956023061928969942718563760564368316903382799936865127543559148854877729457816831658065909028271522001877825573231802126276764580184754015567509930251135931404277995689617256058969729140168204008373957756206922770281180047066703300835721344026678750798774636828294902785624323906896031415461215603993310765884201186340312710493913248182011766989474193917784034501526872981487241707077470621687357938390752510931515297586414498613240826189567322113450950734515129552705742077717862366084130542499372723314268954354880897970349548322700385008195482082260775145024814993818307993176013727577096301608027888315968618380458665502597648656823661218231224565248258125080009828166896328230600325791364372255917178743547336449746532970488545763100432871772412194261156442001625416212906739800549685986660667552607398799764314804262802011788435313316583585482979905890752847896176207137725033281648049079909427820204718705659332600652133936627838847790467741373185658904456452941311843573910547950282663223574246023091421854132186191340510515731054751472995707356962124126440986638580415594001582492413841978961473324526830719181195794234522786024946106482279905892504812403575427077250671916696740045273657736707253300782648705009839135786681231391303628580113696728723876043504710610504929839627834853409048343620428282479571346611060665541487607575275843302653252237046054430718102944252444351199338713197572970703435075666951634578083888117530592495379822438333978098004222705789578699455744664234626497585620970348076921666126592854917549523720356249313642837963994507335351286462339080670219124874546673470453115091529891679332150026890005013993958641439545078554319659496349367308789048448364927062316785174377168071712089806305131687908308404965096799530669691152899901538571536431587440699334759373952865465471968016299388820007622458539341672352669807081560530859473485720860962262661417786762618434283781744957034606452408223656118214114697580618508964460671952948163969767576748723296281997207893246238489853536325274457189977840721918624683812600283116991115577766538495106985119797033696895507972998059796021310614795172614228655189281214259146584830632255961106285709436970498456607797318206773580409636716276136066814448768589372284609712971270624955409388879566652611743388766282861789882365669561686645716237242976210165140400066187567363308469095449416085848909430565755765074098838423638692505713076744067095998848982705076685210107524497201115802814478866834740960978974249283823042815614378333933869465039659810656492316725186787634770501311547700202061556337696006119093199037421009342132030436654438634115708541356838067487373019447039997658560031239099365551047146448885418131931172796924765635402776798398304942151935793367855061457951686295871778035586337486333152273768481149325735133911712532849011791062944640292863118308437816854014593351178747985181239840562677588909041201619497672129475500823554333988245756010083136824490641722407502366915323186145376090864703695179553270625962236624123471965070634006139090554442678911684697092455416981120678896652304409172769273524292263733224055856550567439575992652812889665782828917897716759515309576471568931849712691836306000566001406276694384532652408666184331060724069658381163894612887417793897763200743752385359936858552948641652120707758168433575559848609179390487659256274844599402681825048433282148252199672466386367755709260342361611815723396386870159305689476153435368634656787322843181247792974385638191080359398525732976866122846033988706106577386344782542937153671328122019771663595222755075560304555151091521002835523975066819021425581194030263572909487819540512067694811888534037763331665015520772608313784809288870962883848372107858554631910972489206736658436089535357603999969185645523742757332779908673910415284811818706643936926438028441693670415583458951128016196388739276648670079911837319540018401210943803414645715166220196526907945728082578861718243951062795279165313608098187788728069248324065072316390265055667407141205867720441493544022238711132295281518739996031440034375862043728593281122514197679453405472868531726188115793305830950080943260956477493626403375137195990300813002138831495558680058296423919426240273321286499657333692396524534961545686742707644465660281084379372419010179959322069197075645970154674147860823659892920245719352469038462354098495510988437452908531120998014135758670134659909427574407227724604152471742787882071281839107912027568148917078599473230319418860244865579843827793073118973091763447923802890957561537978552193400688806290785274572677863223917306602704222894519711458745492215200607364127293481321339845419720344588934438471344586886883530316089053250595250453352224950799869033326274368017491522576841735103314548701097564658037647967400629761735737531910718001422701113408805200884738895645663067086845230317294988106573310100216534696857780497979525752264541436728956050888780881790506627879573545560244977219055790598257845373773288757227520147155185933484259781810054547728958234932943351605905864931353867365719856812948496829961064550817650018213655612858121554429303859504433674372018779542248028430491105282163603972675431821061761446924437658029348893749380108843495352626385033138074373181426541070699954512528687809626523286356052687471799740885657475206699288263282103471869848285939740651860947828189863791165621769651119233981971192472186276856724540291664061930122726128917724339941454765830736622292999096453561848040901811955099408411361924693860015192765878710575665406794872301975308681658552605571518254869988054697543273404816672154801640989388148936840455358717862537114082733573131018037290440901205683243974726926799697770964524023120980617792038131375461281567694168912969145996516463541822416108525763598601096837808118062722110383469345001104894051039037382279493925785341574745525192975190511631502329031775957342688971364178477214534245167763267220974007681694651840057291932082707069729491025193019287760036392956504691900182369262185103310203157505692280208276086807167268032582810656236496854624573751050772509039239749243190414624770892844991448857723501147698683786933579224379442788433096469973133546728312092409183986837956558905131617267395823685630752359901655182663689325238493920501538774766692825355643930814783836013042051435186168239742523410877656527547765295691441322177681100574769502737588954518835394107712668554725048405052949308669295059913730432677062369689546666385919398565188170197741186377699600871821420524901160222395907379545604049666270081872954400699216284576338037607173743308409946966823804705803397427946870151317026312931477809753352788690742416031531890748838687245661502262670596102591050221392056050225367198991424032798275556576043741632360124879279035342914773314750160390016881751265953379092220125486481398191008933459006698614246678981827391662595446559279256738053355397114158667789326967141237697791650411348129202782527954395109502479677913492391767817855401733088050143150438328346710200041473238626965461474836825985658699600757672698083649075923239710203972814359157143403626600612439917731574846158020510543398103935858568259033821569338121079184498503030062033526345604473934319929194926965304150079924563433595814804649420664286072496595554434521480061160721545049001916411565161201162075899711765528767873480641949926766648812059355923716651877600698388996967322725867739010975776020661497300312571424142894549485448210034193782804974594460087816556971766773579433095040911419850641684462939767800239308619407715889338980270860345200400734848763741784143188340574823338048076309780616492985807652970540375870298267434242933654477052295684108057066681397409151499870950327480670386463482921445341367516798773307619234178350018846828827791724996323447947143318440073945907638628533359746893186431490549688667422861258472486921531094489732726890237679486397046865145081104724840609754561705043469258479279896541887930578160105206267105606740329141717986014970728973610850885678186819335097444337634339879149938671640247919427778485485502227863714889600296453735848677097729134967267876498746373685307303956933576774584143308729490333085592479491310946358069699799383714653583829486382097542535599631683651478969584258769459653347191441848643702498635769235589570043686315121374227171018607430936915118411672691118397374181357959628316861621764849910960879894721317417608936195213144877365380525481592390177860011147681817387571044554977936930867589382333314589080694585386470032903579680467123211676109416976183833861530493980131508893314910054900097802373600693873589846348487077073399646340734563428228214909700461864960733584167299635620837536046338965452627663860211261719585974467429918995877929845715185895904796409800725405514844322545151656003029316084087961936113084011317926254328095958027757833110179141915339627555563343896754255726675816069243739928390560656389295318268456697846510834881813282034834728958459281409773064102187498006142530079066573939957980935692275739542399009707152643588668991016979223694847888551126040662826996107968864399408156514835378941803869909916616622563041970250991194639410006874728166581306306300132144916261136205743492140753949745253062301470867602538347714761258418974979368079651578733454989796657050936026852736283877156810691357430055729707482717305358872957047715245743653439571536267890421255310285713834461463947122574327633877922878745148276631275616282576039953001653175705014516402249189796091743464918074337294936100770741786162137291060189549981331295953089578818488713430918442568910197281432244669125157756933345279634678670032636189722190696401469888860920548123417361566478915366569746437059051783814138576387929916340774571765154985003384589244325637239637707671562863676872903669442295795617924271822677035976076990738337452875634898594982539765738935022236120092550190782395003618335112476683800078298808834694674370235938471356255558930969635890552685247142121816024179677677749226370140215756705469344699395472416034597151919476199496626025847582690801735078033334339968940038773120763292268816834364956771039161868673303907454932686315983213903764591514853703823481190042170734285384870914255639086425035289000637144224373279984884486599036273800709134635630667950128828603803102160358431917295762544953761421505688081935850928491243424200412683904923237521290777363435721840481880018702591000287033542462480775865707023002695019344797706656332868622973554707282716492166389061593581394648838425603339509203822914065372004499662084505908994580062015100302690828331237355234263005442512980151250935018539873048282740890377373361720247636390408876811036364803597636068095784155418771171831138822463956272425511913983024827888722176927197566048138877071970722341677038800204513784966512939165516023041737105345421454651134603796075257045719660071333132216426249894934653821781716539320559625023147812394123102208634515598758576972459231401672159803653472332731819971052906404804240175236812025649849539508468415164460385158463252993933251445422665616021469295420619386069012975916459037127527341338913603639807403710189860307347483404894001402164884223646591641173689414443027939908141843127850331478784967196557214591049089359343793484797020806144581090888165922263674433087476367367632266872246891517675953980389457921078992900771271087298924369062670550865434403472390194373240287254320919913843887697448041408159575989232827933543825117937162019803133321472312988039503996438093212203233334621595392510935195817748826525242885093403383174279874141296113827692288030956613117246853036476469128758899722982025562004504332474126689665696994801174818155666877741605314860537163259335241950437521545851176835039473058170972458302229726672914222814485834575105837639671562617648968088135058453327667265462031218902695931907097139656346228832989148822863983726471916214238650668964339062244995767460158626462078523439866554636636134510238712841522875813506465461180462968357931738376488772168216465811671735934223725516692511806160507885303717494927544952132942327863103769582718518023314240492654203096050877701092363482349525913352214491174379915086619464556060732830600574426091605910990521588438918566055315035398509421448785645265612421989220800771835506497607600105923814602325924284292330070444546171278950944232654735943620135852917109524614908276101877422470399592217635296307833117205136050303897206301026142868320834750182725881239461311251688843857878704927314274836127742682166555445444131684724924922558996114025795976055446840334071230208159443740598823604540088011460069159537765397412249882186265879184481613160630658715992636356975182266455286616944843860787499177571393735991787967645134557967027542451560006407734471426481277983376682501111967817490350582046339768436213925919898699811257991075068038857598264587013514825053896340467104028235459133023815143508359910200674721723525544253490232571629327540550379771274327941913441496454543804032726406787335493233248375310078193492396273200158595629715124751135452402648318530780571931523973911573202564855383768113965007755661568367106048309272323269414556953704307394523321204203987060855000549940538743583697003053836098120952270784911883679580404911819048171010297782405296683823655398742781898048272940359294030223157499270601707207913811309778360283090137178334810846789629791672848648162766698697932233692813994911202436426176646328762650748637105004698905291181677268638868159897030276756019551793134975617804588422943442934900503490794194666916485973395372872462926686232180522152289497594950173744023911094018919751788703506532964259739742390857321705274215489808825365166884465449248155866897404886213261845657509129818555126708154400366666971646425683463449231221836778676042873363732125540684667034976761644663624951669720567586700647494947444672320328680485546115461596741554406397242880148415483307117990084947056136077734354819247612360085045198282777747825753597899578619271412037534523531913503158591251184720348438235621072177059797814771341612250071048523556615948211541854431452193656730031824532805591221088263128205707353478302413236924169787041651224172317153036960930426300244507524418467171156616876959196416263776431726025935536595875852915997598643810243265508108427285793067804941705836950148376966988125608721946405045952007068596151153066704493470992105930325308108816645323597492602519344661782881255704813676027253839770362474289011596267689242402822503320779250438433863711781814493521373105972219512314039722024240925800260905116310475379327466482218793256946185407178320120891184661081078694854045958965182879064178240787247150468408396700817897019005204210967524017484874735579924131084951736891412662770424183448674302620418491102702006991761184306426518443150433473973592813607385477682265356037643483468802739075121021026943198075006087947619110052146204438997120093955360569890501036762492061815173837225123317643700871504700083904192450396862805893231084183357270502062531572366372380580451244819279410765989937655943341916461377446746914755281593501625228817950688152341626947023745772411452898935785518153286618904809809493702980734339817427227924502101383831916344264134189359818135531786239728899858436111086522412636563932814036602188561653257634544328834002548319033999948307600490965066202460596754178046451290887040718948658955101027020795970593832360480407067359637807727777165872422967996946812188686324888659201257566691137541815099886284410831492213267471443852282583362869472385576265851028917346267891681471696325472337914604679175509427397253521128298328730421828427007807666764708632524896469237211068656798403537319835842335595980608940358404508134358771327079230924449949413952956933165310406689887577232283335205892537651326325583638086760703958477446882937455108020633143976347973585313820270467248652217408675108356154184949695592785692296025358519171111889926968560045380305526082966660332076468605694842550335948443749790958939165900071251170293813555543770155322527623664857764831973178481838113260741896891967566139786683832354838015027836081014724601292400395060806373679438753092777879829430189543483777780567114323465395873558874873964957060957785073071248797282945389897505404455354723599784367138822046125380024408540214532770453204896486039939225063097763262769687360098474467880911610255562566543306670529019902079346423775363632295493241440783401370292913215859334978571832998555953586031427431791489934780354330746766305462467598051841670400746519072144697524883873924305597555323446872223614657484750967918846860391650394607182533440792230281200237248839367626237394128985524396912879483173010699763114867019140664761073917010048776237786185379693144265843031300366024591368703728778717924699328371612578706824872185844080922845365151174275602197838231965838222165907105798044480018017327470646976642306153796054084649055283248437607158975934436947510261303120550542263318722433920006173251296081599037516957056337292446720834813085567046938103197006395232998016750800468456758966770188346754985341220338212788760842610695613652348278898663013541963648274152790235469566860583073718823460620390429400197637848297434941821017895409869587662766477929997359183881969913333712123107427831827081336203244003522262558971085020496134441319986642801619604981837171057133887052608677671682008119587113974870105743663172711222466820024055335000727308793568754042718697478484477953019603690749789471849885150451592245512227933852353233393814325266638459495601440613742768366621444800885957775547922262315257870612189881486261662260063331936955373900021734765311269291649025794859915033926269188920034560856428918427974684315749289914157529838726584693245851559148488055745926763757608902339998093466557319451146555360357414005368546200672174897645492888578166033133267476541812172514996636703703487051946989674961829598171588823367389402308237646217422607660785297829021429376534105031532773524322594009347714130601405470181249855453256234287787260692294787765258404699588814676618153254848672045874617425055953247632467997374612532748190683369852773394447422811826436568115906443845246014133241958167832980532053268160767915491248145057633123710694352536585847793869751612375241811582247399874671968956055064850407598211777524039287088063790640750626651686721679592250385140826939013794634962472851201884975299824876275263926829895365015799827887977116412120327628153007312217719757724048378312491668708653564401838663631404008058996852200385201002676451158909009856783325883854194662807936704830089690536036748657219664237130672343326503580795366679924400343846404323007087826367318107726536946449596684445837238023293991992852899607520225150922277415238729962546478230707977801418465783625571080719731427043943342488766922057416962784868670856846708361834501871212766843942941519390511171118192711408459494641410832244546125334757469888411903650290843742846729359401273529266418051207782168643863768209864288455560430873208401520201958511176495268714090528135930114387227643278845059689282112246358956986907406483001518069602962749488240697740910762027638364207448924763252704515525043877304088239845387161546912216864471823042289870544635536709122247769971543359854404757585714212769164437180016408732809268030764364558059828164988716452668346644546819006365166970532968097010464786036560339729354853636764163588366030228213029783823893730383412648810402582834123412204431519719431549758599070670958870014857952615719410569160244648782386384401054397755664582789573618110820910031308547481592975439181872529087591712493846188394362415766844335325904632907908459668814820397141268834031755486319118927170997301529724267640083723733630188042677531527756277361530109379502661960933799435909328491311562012170818207313406744086013901407934382968730939256579035131494961086124855356086615798016328546045048715340551655355171720243018281860767719226499411300891423245156210277010845684369793376566801698241322958185816580405076360381631337829353859747662111361594995623140482711508562601527865213615419946598245573092555494001000093124092583922831794049199345222432951682633102523689580730869062027448659098395842559772716475795881951388182815311793296323179410078034003137337382100411386597565472218756410358237738672599979885076319479787222870525390475344766645015494894687185701239844386245375438788576585987972093474744862321925777665809120087537451317043435486475408920339884655290988577262460958292762427412813265567325255660396286550001777699978361979926502952943851523187071995839423370241799813741037556480696103593193118735242583314084559950069010340759340199251335664534180444792768197459645569368356788792830956353841825097737100310227226792747941535105925015972229261927628398764065791683852760366298387016362335231584797727596559927591805744037645768449255606977252828919124330406015214165299061863245006341783847514279902964224156981044692228725513490247716376574047605731313232936156590692621750568789390360822227818356031649477202161019234030630024093451700606305614576561113131361629301276660787657191639602930518124429820882917052234935494709342081045624692866287151366652983709853554494488368765528135008944317754269583528978165820420081428018412439752806377461285123744523923966283050204354428764251236623326086847732307148815569255064428693532632884709690604301542185775090485957862572126873127293404348453447342378185197373632571057745058875110546466633811228065815551321900831115533665411941120180349581722070181552622381704462017727089623103661672878874494155393489355030896005332011548202319511271637163483259155578602057205157167709125657425045484814541975983933318431083616987842775590317051695637534331868547944057923949367364683423217043371880801209370110744114918236011802026747210546442937478029703143579346537809933812377295026626319100384324258745972362893783085883446799348381672901061076364287888648765386389235353351022453498769137326309253551667579796319238914497665551863722678621284373824419074980686386395022471132907053412920057695288299099803028484088780432447295289739547205192849039785267649501651088129442368582721526188617099016149104131696582561698655309572991237605121943008332926077973851595381006067572935279691408561539968672232452836349683617725486632683372345237088935776762307236871542434507029727278273851509707490314769027306831229199079135264724052784875668835920654523418754028489338417125444350545540981017280887634799644657464719990071033297373373428242918166597848641300591005865435991446964195314442651780727176577354539298242340149174576469251918469715913767277762746826635620106096467216024500307189909903451597900436265657754399262779599594511852793361086133672065591577812426653582423309913981006216325053465602905700307819243251591467579041841447807740231516201191222938529142188250755096474092258735296277311508247635062792879885102188103698628709677602987559692874257887404525145103596226024345915080559268381435413835204086573212630777482351072475890911037667773969831997854310409191798775082568017876457185373915325383942385598076792048484804443585174750370853673273308285103367704490244325289545905530365423294916579240628982633868808421619417309199722338418646370074107139849948179994306534898257035366920154074263688201330563904860068656381263854395299185595847557926819992080828311740554067872014462130616208709570286301202274955993384607426487368579923264116206992138707675977241441030335328269495216604034292601272977045682727034228031050137624023930774097440483858503521914103165399646016156180796170055118849126728043342723698453161085613597541050969910775995836251419406256707559934249444889610428104522071593354646134055088149692317677446391079890138955210315291450722449990566130391436279159116552428347781680306924672179130951193754348245746889471470317599272250823836589739694901989228267687874530579126389753521356401287990301688038458048051063890889635553531165654700533639879812023170769818894040958177221263513631346861383131270128769157881766754494858572503205456437716922778319496132961582502747253664346288757494110963001013335659488676113437179494995854922814597167099893531169577027563868007584946223578655041683237958261816776405018797303934564639706788938211959353911792968000583110720383939155548636481182858255124342513041198907695261722532241331793112716872782371600426161822928729926408735698419762933978577583182346301393165504106753011395695839656983483447333894333423768608453594192966283176374632126315920248100477737504120900244526488171459630563194418234382404359968736822764028890899815268589255871684882801760167904599627759924869969432337548303183230996295257284769967403518937115012002796802255834516820242075632696156477342604818749846142114552719496581667582683596195980863157946086949648616081765983648169182782834765900080928782274631448412271524590790982225533958363354764146579721913574573144494064680976017691486770114603817695720075088569442320619031418534487769491776416911085818435083373476862244578195169401161375583351896173336680541638019599421165834241717350150612855132992111237263626346829409108327133319904640578579196408635282409111477484160767139614853291511270669897380438543463782397512048631769540127831446271882850113408201840552033507464387904379439344922668476819094432987213518212836508667062871393042269731856249757680485430192750348394815909758251344356870686724663847139070674068107269367930219151136326763829161993417721963918821470995719768212097041491845720606411262738239436958768334265094022438446949830656143449747820209012860528483614253764682791622311132114330554282717014083444393707114291856454536089867482937732550916140137828368925323950585259093699078708579690159592959994046859477203454850740374694759917666122530387239969630345026197191976051361797587022334455497027777429389946285108264765873714030035236676000501654318973149491243679119102867501559174783023272519428016788778432522032741476725159738046024763954240624308299378685816794398863127673895267900544439385251772493986860205334930233977064492404849531206641688753011724286022274257634419448237280613554963605805927962932954951965164918671281734935987612763190172019922719350655514625168476739168981290232146805299291072306397171551590041695712238749659404970960606295907792053894397544385245477884168162910352926671276110942037461303205423400269892734841439209559661251404799809852823859398533093709237438669586692338522346945671856371998535992604761016402859290159723068663541825192713740647741853547896240696298083742339357589649916726217191827896362315631424063046093846353828838347959605587693411134874858748110138000265451407247314565012359935230861202301548239526966876789686304441424594164400433223821881926380986432670313503980142077911625984338526580746041528444015487234456732679353108437252144464396924636092386796486381855107554904171278882451078477351990677569075324810901602681592951968571764058256398641022043983783436642477466000561965341735057510829245272554313512612923553071650421978448242672348276236495555817182991694003376376178234843018919615746913385394321601275952270157534130788609605383162929909463147583198236302517213285797647362453716981234084631350763296001520448512580977236546246752059404262961789330717867275086677903118723988299810891587477706031930189921060877421562240540441725242109347448615286481477606847900746307946350287243983249477536937272276691631915963279531392660179016834981704756998093532161774145349358808341619021532130930998957862651250755039312003798657302435869952678698547826994816272866650222544510378955741553167508619014869813807974433983399421449140997245879900985438913318001559663985709834846318285224038643775456452738133136764715907858415104218587976707310745919504156984352151808434988009027727705050259883704665562938181047057724605707601925485584580112590398245179165701933460854195345489502237015098149836419337045341905442717634446174606939818864682389517120344630692243677070095385602530962452591919855858478539970944002288478797776840188162020112923707552879406733036953233316963777484095971992869272458276069905818312899520420465098309035106068041331632608816936837373362727119800768186737644837949061395288885435352141062419784263986915792127668467550154033035975702069299340297857528715802133372689548171750959076249830811684566261730553571792511833520154982046312374455870360358329820353941070565795770653213680850184944968304943926886499168355521044737705837829577098520864552122221002056488041378975636223799550079545537625023013765628198624933598198022766438406001785632296070825263921447325293500067752470407394825984388926440749813209077119288601449812469104007828672584918420841375795641261367604633600526314298054079290725183537338592426791157396126899546971420713355817508492405604785031568121336971894024017066463294141188919195628444168267152939321626046028334123449540712770647587834734457013610034610266468979262722896033371677377206625012763321262356210897747222904242207391835113753734184312424999966782111353952415793184817485367705696097927235514846315366369176488273101491689364515729114146151360677878478399855628781620713570279668099901594103630199119834919068814615178513790331254929624376627182740828606066772717641031976166577423166333459870025727187873525519763060612824808898304719899250714537144747774993985972475433894820098476155573643624079554959968540695239662864873765985440459138672818280750016170586186484228605367019847091574749111736167187343507365524905240967012586588022817196648382746081216144559609606401289023000205996220009426239561169918106875854490509130924204686628451729075541690929287065357294400287160934004026780733331646444907728100440464828861373856339237997449392138888771445268607316884217831302068733270731515540195505674116263716943798599633211635864108588621788276433038842715784372937092863755437429615906794377976082368938942792618339443926691389735702169198572888766853178751554574697899169421235322986665754519786969143952223377753852720441619508530485685808688666531341810335832459637314686954030667255324921939039452067096122705853404395497738889566849255263808274408877019747645552248298363556475158128853274492363938313249124962230734309063514358637019914901429655531922832112657119463789852210674404054584642436377649980592457806808308196674234667587495725449375415484264952831995881519970202262335082654504133294352673831631379887536770521405601725456936857453324764081152044384178980704330133824443283383923832306404635097701695699653801376678040061390009186449151749942047581068023601439329921067691489064793991142522986677314192350732091699670628129320787389335214496626642699785306633521772249643612162571850220055638357076508286265029647110864261230076690814680572574143744044815068860739970142369305054421115295604399317801037041174173631485771771576284022152472508464612815894088944682454136670555028915321068670558799351922729586178839977046402921004843449794530835812330937521976993562868125010935954563437590568839117601652610100368853452615840230966833381487614592640820797001332025228522774724237361064368347762897980359982787408139959413170109358512492155445066864945326701910354180093516450572550908130958146888078290823543617272221014337108783683359999365415823176424029659363063144622262706271996104577133926281014677020291716474024044849056724797049672023162037288658970207394196647061431248224591485874091251484984522111982871374621060364845419118207195281249717046193166667427000646846270477504946995126587175940020291798789024871625029774474915751476503571582107812462336594028131932096928364321804899879445693118292519872203422492080214781725386643419996141502090674556973540056714778419847144233947540296480914409966267197717531715804100965291088864883583939217331564616541185665239056509140970837441027558185514541987034387988778768090715780824248617146076097615605619717217475423860113349405947651199927654447214837159667803930089323242315490686953647764534454616709343421856542052655639585356965793544911220617843193442343548609376228179655237512240023797150541618838471332639920916441858212069472200025421833495212145255693647804777469846621982096929799125377031206424289412942762648784953997727309398401219992278781652077791098569564020160977500767884348826827019662432462180456166466648554789320782079662015856207335403399675986002004380732085754376786787570050291739272349781717380834665648589364886116838784177285038143880478434606421672753644674024584941370344635386413267442731061877977922187916087589171380003430868197780571089928942617817955290677950170111735468397678722336501893781225600106898450013051837387693070870533834325950036247227396140888543445483499758357293503060647877471661676466286408547595080026995979664293959199963031999996864011630110118571355442854593233100081618441793686625972704361578771433055175479102236418719039287440599855346423211327787105712165535339511361324974721368907341025182107654713773397736814109217961701053037763776692051531601177276752581768333039579595057396950921273162876679881791100521115864627722009407014008816996422785651512859132364397236218812654468712919784490876465007657979565472607944942756267113705211843053691287845532879496850876280124205575278634618139721082928576602232614444270073423451721957935024181348017093315843747169131339857328702719016904101108238400887243126113725773513763919055940785438882134345804619220867580301771693029213217358381606290958324954183778526296861182241668384049820081283818977984671159712349662301956335768142052719553354375736877992174991441331661933999701926330280242241477408131721064462375962592324996905673514056189984797082625733159047187427228434221448166057778673553397934894050694061317986321752681846440917654796899215507147992503354721984434954631688410815435191170686370331862011603200510725550841874465497858911268897553314974228406047462035715312268597739850548939765688517228763716952090221609466848015237000599949622814781405748450375940682845037892167155729230386913013088678958082713398854797141777120782945304996381522330528262482173465337511210817214485659526737799219292709905925067656183488779705904788080279958707596485781237923623765761992026702753876762490278420287627825787375607950829802280671182820797560118208987261049567933999676639219845837767910652923342753744217322907382915950108898238439301869952813988668287908172979841397969976103746339819058406440317610637072032830176879341457236355075138231932951514778080182124314914925377192642801202062942779701895595400372312481780903338055346993423330283978795708643768363776798046798333156646160348981151523309397868097832164741698654489919935908701953656595303958857126858589009511734524691097155885596627564586785885589986708211399140405293365467232239610207351380496192438525522691230547241461183515565290048528928599111502176925356227272201798646088661172504542193633228524091442990975212098036699415895216061728263428612301599546920049687499853192614479829552711111001459580140600584540430566185123079500020112223970833971225703963265068447472142136757395900264239895030979871542300658323003803130799352827603680339277982605782996292808157394850582002288979245099398345578854607131519165285940135439085571961877568333226749923767465433005534842263335324579682322891118770345144034550992861230400214735014276297574782137197770090371376260322870219306341047315838530158263477599999064378889667051988104151861719279143481782370092662089838191338614906346690344826540809331207522996592407304637789226628684217051465560096383587337481822749463689945548263817976926603594897398128235554373483281123285662937593777918920961059709432562915498070742203150529791877751019789924028896985790327517769021465452643451727740607733959225012045304643408358922683468570442283165104147210813274620933552252960375765324588104457622645213595162521086444544533571085378123380029738034318809164532016750245836162577551121139394526802315956868557979076078758581360312985353365122845680376940911384858157983020550295864865057961302395059538133081564324221643144478426282718348345712800955228280093841848227963290130715245995333149091764790980095475795898284124321375706475857131832837095479557665873007034484617459207786757583346391303767198352756509110331556087578333845930142798801293813000014319110434694018496903047904382342727295624771936363374068250533287862442002097798816483673962568461976226361826266618558476104785445509746877127646173255568003387237791024692066949943628368748650298418808962999998839188804316919180331303507843606219876374269493273413102280756014319981891766634864895803951977347749028185926957892392487414303564061702778166369853694658608303637951588047137663794704617511091429522995973476917139485558334690756135799585580314419446739943327735917337732451815780202047544707417622977023855034008973594945933501271909117255724806975810051376728240023892360990543788731056205202822800404472559851857468994463533668022193563010688640816183174745343804552711740358854210354599433816758547561422008117008616914266589558588378658245624157067572067848913341337126760771152328531868309560261309111197560830035775941907665975190223912115735618674724198858971659731178686197161883769783489964555587256301633557798445081680641006756005712216887113385903550911895459024554474226089233900581000950330319942445905672586175201924332300300438662646601356187049905392648977429055161137734538136224534639210551586408495703148191889707493043916372640467870453365231769579417952347500744479088050953796684757462985286767712181707613004260853849349694998614358762504566581142724863448141941731530684589205497574803483534574419719663477260402698687229445622707435644601838049742651092467300421393576642718440794692040454929228861695885344098614243684988497230184049695446309692761552954693668471956687966918424546496869301314262278187540388335363160918650272705309640539378869024261636701032819962997304891112855028672496212640191610510395486947385730312436012608501842988590431792962524502362448701832640696748007623459252622355742871372645360346089824853286830025970570455662368563854931059337810356762719834760373517819430999875725936079961000215585857248647491929126181480651404004603316345837918453493920763369254144173692753520786588931497688889057141302353064720335553348193151359424869803898509169187928442005379053767247172594867279955065514628343314135406054056718435139765805921207278924819374138116751535850267744033270938341680631593269574959791352211099809357169448654796166486338030781401231171859716551767378018759593413594205415772220940141316031886597332374630307054004078769090561405352759334193046471729645881192272998615916571628300107820663662438062057889172462067197011977169563942507071096228225795052709909473836224947080080766395810654115181708358651475651661252543896129052237556168939795806852679426992650673568876168547927343465498469406599743674179192590935305814425158137267097126291773095461320502360299032267089767926629299812190239332566586999253341842030427237879474245860565371952570417437571332891806843598133702433441675418612488463297345692113487900545638793565560937986525230395711747273746525508833841933712130721507501026742501828775003161107974975473188112727637836758717828833152639036925652212629547594446823542964293139336635703210181237452721476999304867265261015309189363538246732366776924716674964710826954098452914378857187927150484982287879569825718421291540703650916475893740831877903156828908689898654677536631201405915275955091972899198900512190673324392645304090631661147782877404242035199515149229341456550841195467747278886294711147448221346521688446358707649359772615195464553947520314725172899818232676427317262425176673588965963977162243836935600421002093734407655752816854103895294308114629449288570740281763686614136702740778538999313493309767024724213525179352217850565223565790769669587628125494775296877477697089661065711097205372255874066766643409562318156128284392643223060222468275104046914352890379387897122965527680238663592260583153106217016976616872808711778567998094233373508488875351538111733795086481203937336234346299020979388075184234811574980734083843779842510235726267837238093705988703765978434386292427521752092268413164807423641970935018087379729820752736039056431083201462427662753321755285595338749379205375309460541255381403673577947055705073586527782324864764196943468922425862690780269589768460781251059723284067608191095924050439243120602310744463904123140598749289111081302485651231276292164101535232971986902637112945783614334373423205113258432732243201277293547375993030847186845944899137730536845747397061894977890323259910602062703881028648914436082815167247768070502272644571529206573425049575045770415201244691797464591781681109032934323426846622598934489536782853419545200434975589601331188624950680491646385587217130072217113465191576720059968743153382825433326794837708827359677921298239812431904648286824384634367596194779112217726731248610728182532693376910508961430790228308230396707367836586835112794743531507615112895829340263398808366958490714100301192306041173666627693103602127654621944262898563310211909808393378801852137204752747313774664638544814860573384841988173510611942392756391959544190706645350068352640113785602225913201061669254740300111797530061813941117506625198487222189525577560974244277400586927843741168073777721562606249542681675935818335174878601984402377299943755829384077573644573603794323531853289466834303212324493948658458701155785609227862700682151874283570349520415246074812519051701469145413354231390250547912003675809525762571139864573487168851835439264233118138759641184819299803996694285623136783716089039972715257423543335075327020288470859351754346186095836243488984396925560738306196489561120008050224502673689621936859043939116456548405870517862634480145261064100460251409982723541384807175828435353789668239476841573495113884222724682887140516907780308155060474877192736746192075891988250529743776534689101045030690739106016561688746598062616662468921792264566196898197616400431800410065976813843644993777513644349162991181101205336724744157910993435055491444529265693194489244969217775439269989008941249424726586299968090137036720702918484829411978831543985001345756231893543424454827824816514161606061044483027878084789541299869095013972973331078804396421109929004772302047477934634840927088686649214914859170106405564941785287869123269893646823912532533379231524822137066472911588994617742359646061324976585876406286475812675166423713886162576758083247332055520042904922726632944811176872836518875170477512808483412240660573563823159646684490876570418599152168855745168162889059130082072831715413985781991731479326462618565097015550896165228713289952567722802389521167867998584466336472387232141649741328947896133975477226315551632538677112991644573691340741459115657986472630861589652204676011265749602381217584199046654885013561815708638222006094692596466699966415338732611009543235914944580133494537880258317844241731659696299698627188311753642839197347121123634980275207282700959088055094927698291781723734856737902276371796720177575237991032485216512674713348462272397747122080140433568279062683218055941095024599417654984163703267404933725153086102614094664594104443589753878644401793294525283314541370596397631020003663650327077085839528175037452328504906165461877525666729966667990636057772778633720565154686267487085778287486983870129739303294977794851133523699241904611869927434320878030951213287010474914929954648822651591179930231136292571769329598440906996484640358279068337711510419134191418314431903753388600103495054618785282634042451870720005623745031929743995503074970323769057085491732071495134689154799633621575359746907222641645558037018617855214145937918717587226521355689769664285271653965409720011010171626532814876780745570424280250650763076802842135079397523564126487155223492629925457896442472707903889690992400356844359097672026863705545675136199809422702013436123074487186224094863392153620804228776496511921451513262162444854461597678105018271975220187462477546144338692615134256969645533959737279247940887040575360269805544288018053353997846345315371686089501909441334236023670228810429863655573752332648665539897441416351675277354994931302461790889896336094252841944222101815978130208864008797996572943341260769866259570655071922399699539878447886411952130805749517311907803978851736792795818555445740701848851555231727734080928375794286889872903552537656318678330469096795168392261114883528874437311164519286002042623371137869085654041573711895473903907391304117494380622737587024862707110284275286256930892517154551009620099935177089184026300679623121918744576698708466241911121772655509359683555835728697423953310892561302844977922010781326525930452089949832074490887600162999732458054745318540188609480918263982289638823586277331479196506575765356180028633888396439068829501362334321108858392821527152602778250594060756031862118694375874971153508348209463654262867129221285025799704374645608126828332942515366669273258159004191404153843432864603287476378971555000090889177151687863654401713504072418505999699236464661291138209649390873771297596169661366493999317292301556587045187931152590242502769744004069167239334206322522521442663783949284766011568281274429177123813833031436011475309493947626395384928290368318422711056395125144524276081404540058516601962874278923790419904105026356197035407673062664292445164193164242297310235943947643658079586830921225666444027570059624113013497495963471694725479530057577211427958385030259186614251130933505560969635724702741612379994393116800036618032843978331289802409557005095919136428816088668762357769249713656578448769828025798032333391136325752679090659357770638826931786081630910637812754036517593288841876480418803229527092827126368765876386556777455735515404963628757333892819130761633238729829632187067439117181834944161545013389269144755874238806537538927451170573965447366666051033951669025648469625255615327850192087361752302110486002483295497001759665479256422945216048185458624868465064546053464757863862165675945956845606091035363418504866960549795363275245303796509334390651838766676753104750404485806529033805303622500320680648246518882244134935381356887064396308134993566847828572896730716092024484427351841270578159241436623413957964716520228429236351935012226753424537707597355709234519487108002132137126523192201301217526110735163759856823189328556732626210883119567829528388233934685138988517366715488289924611095057382882344464350436351082812177240305932728793497832855139820978415540552163427965062611558558519235055332059517514604176574319200456941536951491289433766255992927540816605674355109741674058774149909674425210831079466493575829653763451986579360715497177859570858039782843523123552715738233350339447143796664295072692875403085418768418505389526587079540479938957934608711200285734246759563028422154023953265197661130951427475443906550515388575690474672722016623745501723214642917158183721316529260109143269346585343031877449752242142500855372471279523966174539755781251781472025696705931634071465042904230611542564131949125616515689649365790600763912838965920174287507496980176166408208170749948233074694042759095594129681784175245513936898192393373400572852535624936433355264186785253058729939035620787078585803674858867373325386810492097482955600126961319389497944312061305270232608235720899544618762448568505556903639792212426239158939441713699225468793227274349408601591441902740605784398892028324430846103585305301753139306550375838517599141717104981839639436685561207510939791391576563623349523181910664040132807054790383483579981176779425177747727061063380457641215168018204176953783057381642573044120832553764771233635715124276494034795203672339490974477456618650155253795411403576609943302778021667317129456700083427142964815415042420212430191558663039497225824033510211416853780033267436695108960643849238550871313805727935683893027392110867676950314477112295370330709109711905584860345743093928503233510491989476667267248767524266849873958749532369396901906485484284343085647387535180959770248879989495526434595459796163423987174812591968631273135074394171935818640140904483139206767588498720493988467220867633265670986876130252475135760890066248904078195378038610477381178130169736152839281063214645762231717336265349253617273080509142459398536291609876682407469310735271423874710536630926994110601543906165113499682882872609536871393716813695252095575791047349282959301407364458374544134938136412161386064412291544537334290435069403478250113958426189407809593263709856317068633258975309813237403045015239361427669935541439618078206224011245487210244791152987868193459721654412045705245145212661170268463018125253170064458974343713081880689437132564555517808641756940894120191544239169880607697356916933956500629968340458547387305200130585383438123016539293900690058514675897452224131025414750882080126139946417724261857108991650690811352025989773515060776061201523473988841026797797720426567412012765804850278810558664744278345228942618717973786308656812867089096709685571084730071898634376612180244187092919563682395547866532490498556113126148738244959075634349823195557465042915550787978712538802173483021130914463199969984652768668612663661978413513161154677514435691912451001978109355263345162200910886241187585527752330288001838730316412672830800948638998938685068597494977560678386862669793594140466195777233133172761197904314510669361464246291773729401608884468426499091960736484861862160876587773430694667969048468137566013738172566582890206636878087320743477421722500995859837326042883255616282056416560348711855700638650399545813224253240159378910647980235401569629370246886565950270653641900350684706550328091316580060685934510823335218278464299946845832101097162875372237879866849146344591898643499872246756198485756788407103397847427313888939740212500796022187284849105424037616976310603086914981687857323899123258744995909834672496525624369849181214121478840857291981985058680069554203934769217382813312496888269202663868674177148288852642662167858746102646883880587138298536912634526232889811446473233138038079450644678670913422511039329195819548805597179855340812616958524510825236905050037289248389949570456867059327239444214037533847150776603404651129401500094971828144560009085768879879710064339968493443297681950841504616314693347913202427757650681943973879258947822936185831260243545319118854438266530772287136938542598969029037290644631739601791248898163031744846714670368976863537234450545333050558742381857391601687995454455573289372257144608958177935180231328272551616250373874004424352063955056594315661361033968860666512728689922965822416254662527793578042541183126087844053121583016843026902220727238333435599421595573373228709709044158345776605751487992838276589150317227329010367951275149483980360560614904386837141565571726203472851506261912110381804121326410044544448695341014080248254628851267470210794155319341181950041165322679788203963025342577670396242834868069930916820244335877322978528338608623961504059909779825994419567955260146089066894542577805104579244203401767862270527970422727611347279132146125583595650690010934315314120845834497233713312573304990055097947367153798366999646443514308211933658996353744165840516137112700734417376430335704351065221470098513250620241457519763365157034821384483398791274891977246842768231378827984535586478235695973006800614361505856105655708198426829127627960492366306859177277835018990864358457301013082219725283456190733554502328467464840176698849878063438537231768069809290706572845525597074027972673863243456763356013492392514185436514043491806870110522395940136994498371622901290661869095732190266825879746501388574859612926731292871406506060944887040309893153699049785970371793807274777725304533826909232778784514653789415400640516903855001776491784060043533414276315459117732206940176452674824737463265468836588072080339389263167577839479616074225193567433395190559489399057497324407018131361585074235764132085476466529240029636582163760735241993806048679169749059069460635785912221493265777038172162521734415331843591096309103423712993259237744295217920396042565518448071246898896065038416110097071986610303111562261449511044216925447735350089608435898454504722451771801073715045542952169266683478188704757064101038840702001354781010897435465963116967537916159641064759319758618751664520314958714529848000545311673487750451312205197165629426345476841354091498333804622817666909981401427140320444219471687989825415254232704191998586671128750656653489679795484707343932166692461268946771689637070760972053843870058853050262263907281911872924906028485207609067923911570462470651599863402934714731178958956232670477504511113390340597473589446540996313923207788592831813049208744329749258306884096426987753150658035696547522347104491937737805100369135613955329092752220348109046198443520832143631977575701200357010293834644660643148333772039566617926958336828783000586983524089732848626694944221897796757893300107429806839252956303800546692792889728773862208642578620842508204530852186576193741567829877918309461153048822042096809441742198914063479110919185188436465536368058478100078720282202235815340666899215176714986648955228085780484052954093913770683653153825821093167974318181302964292619079797739404070108097256084435947241331854802426203131940071468402813833015843141428877568201248348915344929439387304681716176653360796346821996750956616672117587511071527647188041163397873973067473736937942256668256417966269921712104968832602904215147740000147796734616276501505256720085601918985246020581996497132368769075822818763781130652556871677941840100376164449255919568700321853032925765458831147432415663904999525447938086325199949851539453621543935341408232640978098101859907004127479919821544245487115215959935332456495834864414891648714205490405495678809028540081054290056613130407009296516584934624667160479215281920646207994422849109321263197545022665348573558700365939490623373827693181671918156475573838579207916942857183834371105187547035608794737662280367154316202059672011672838656991995441523141837062601900764853602595436599970128341520471480798409198501863531773168961501982313961544169669415880251108397533901219652556136792088220425045915079563973508007189049521071357593617751254666504450421368020424042261116239633393982891416823115129251007149295554597103131789501086500931244011020379156150647606492477240562070893398568133822626133014274187603219919938982147095823386644542027577852309035898101134330653791738419615073386489277292337687017254620318678646550463491002390497097593817182392520212769653945793652602573445756549673816016315355166651955066380265719654371789368698136103907259589422527530902029926658629473446055717098736513896469612126470202540401522817686904588764599025453859214416146321231151004687436347622283037052014581793837585558451345135786560494947517306935498174441553235344948025866492194696045101683825715528600077237398996272986143275073392166994554791042336483577272910932631902705799677657623481382795574626265006411687124769862599030081897613965818956124843671825251627574051945188105204680842614445882038076280532626967722280903288870512070197910552971643593692105105695923188292651881275653252380420570458651935224261579730041723162747878397717134378772904112376672699879652841773556012721172274871360404178107313322693467814823793174381515976857629694533612100302334033036296465902102326255899765980906526558681565757570711165585701393574454830991409500324544088891821876105676537077026236410838475549070518271902270089119545077292003053273664011115762616569166741443155691550577515846290931405834422970600357062127140371271330101639195289031375070392635367690598640812739190803920564796891904347709903773181982693519730960081246885882763610937827499495614248366989219084053554707818092680949732975130736426173531526630465192003269783140887170240890917779042999444497134544643395224986795788560896987829241115339124104636818700880158237232224522335516525640100240023043257765334167939730790305534655671700890850628889730758913933826844013200897140818852741707346677551149719671116618308563859066090661319216311205615273164185456507483618549332183049508086648406990862519902045336559308286485614789115013492993799979273140046106655970816471245624627061961056856201282819420446511158713139989195046336940603776641851370915029006936857592960679270858349918828415659311022190995519085782681675752510757631906014367178213612308618310088489800121915319474611298237713982763409234522850365900359993458634917491803766641714492734838160389275797588170808369698462256056577851663046951366830404651048382060467360234825014776589663708237615786691439950760518535150899216215348258205047535272808755101037946165895911693011778302516266815764084130208694606601269664499329091443266762263261306822613259858960410005817188372946949154527335548090116279473023766828324915737174241284401814232441464614749066952239600832845202821352176371411434227364832844082280360059889364443081921129493496822314876518731037424062825357992343338190032565683227233637483089909652307687437085378179072842453659208729738109633376096837219284854088033289886650274677297780916270032091588253426206751910192190724038481382073399286998257346212428997563594100687585492508714975362136194499403670345689919881379264236748765035829641635831344111352967824049010441642031832629787116036576558170664309569339097159581886815432235685617927894359087220343220713584938412323083588024523254636860244569499292041764808807156038436435659508921384957156723817284659948876183379769977268616097118336798077831665309841354471175547587219443654487214750189901214412446993231365650951277415327280142704805031326386150348823297508964148676292308736490905814410987826879587685629179784959938112886159530971093329756679034041328037920499970500936140913216060333490360408979664946845542237261028854615789016421973162234726806863128300801047442328743035613944962559623262781448530891260555456919592009852411708900307398658629160270276464037992158978627969315476829902841543514480382319394489410053206998905049993641931766762074737326737985886757372072203348020931754383766822544791820389769485185530083873300227736335506935536646578704426937868509383218291233440720011330217998068089882449917012466032105049357507724518218867853226587235710396584676259467838349613626073988067612427407649978029545150598372911756170572851129250744296749945024821521356409193967552693376124267468115998917027258261046573206335216131524707157742339122542369634945662963106714815019038677425837153793953712195932650419636670092944638740909704070281260325589608168545980454880053593444202466326809950119690569043610016761149510213846279487116249906652962616662770172808617707225416781957089106234273379359483211672508319157901423982569855564239371901281815645349974541220568805246795540783541147537784989444166025104620558809425630476833725891799146447572472239987670876430325014089714862637293623821107429805589195431628068099047467433519641727121521883781547744304631332932536048046372968239064117331186847487001506965267268910717556028164503821421794520522494207781319990902584471388026647434526619469651511328454963310683515711866194956371054998117891003738219309790973987296651615030786504311877914488665331296884063336657585677085572653963143935393716130802300889611094339022886389052803947504834150481078366078089065400258090181646659022124389910996387983282443777574139666905985727193033383483470009828067232219502647836567550769085900377089878817613091454021905098599572701658272849788503495088227730957079418377292260462536959251252166661729148062878732226686198089957284964704733619685375589617058108759856141614361314510740299538973167946681318699464370133130139612062406836345833940332739069366687683277073823219904502683232117209077603573694248622001094652876955724443202696621135507074062779793585711861909194938185293919010016145889163238445534435528968028432412337937912943556954536658253530756751202194819473443449690567923460336748956623450503200043414314246961181758598757829378936657847193740365334864957756004197073408094824061124279386575896379549235208695573361511264626339919758384253137051696833720260219016895131472432224520346195327356390874399677796285016176005980343077000851459276672777408093817394455196983324336545344840304816190128166076870136319742636284978203440690602046706320201763080421401672404543890731075552854421237740150643678176029465023927806649877373552468283975769603411726053364626027523438965886561148393298411264773790561687925087443986287691802436118075571558276073552822525072502161607462230748815813152293112068579295476029118420622786371315247826248606379240183443271823870490468178898482864192843682545416803837958896106030823791555245537950220631132761238256119013147976919461238925501210883508667986007137853190859188981364566691410878306586540722361927810808279159097994513639798086370510216759174061526694469811315540817462974642296134098053588970098490661308946644319477887653597182608854891155737805736367965934485738982069621142779861997268321194503733671538078882702987307270830820021102716635640054019563271577797886915290995945447230067143932413857709998016490386920705454990255513323764630549143183458492309692017401655147854089723674425888708973050115153374785596149269131625993523301815908373596747452901218195945528846346289091915479883502757144777992884441999464831538240895460095088097882619944927410292424317267940405598861493891304234818432263937435711518193289835329128943894340159414117649991200491438519126856762284627625070725400223531147275629877662749221461662062742866274684446706441774320178168800123705354991111938372821212199877904784793409679960430990555898709653931941821577440245977636031800885443712493560806037831781570874967835422811126751820893331045628193864217323625438365603805064831268002881525244877800584305118099552751294724354900152662839879266926271471503013424940350553777875613822378310069722732448743107038198907229518112449589749767836573659329061986141095497125768474641541183771239615914633082246856263062184002017548546934615007596379836018026167414206720870637047252218645502719570911946990918686830704050455767253838301383549863998612924952886917431627057031105112913499273127842178639156879263146273355064634383322314471355974859589899428046089540406447413163426544136301125369259194532733496320637627184816091490609653244693734972201642044297259983834136736243176103968890107194047399340816684141584361865914667825866751369759750537153510082807126878823881222384196045354467785137493572711404555348671464464210469756219016502371650648529619071714585548456986854456950012842038294403805523743795661145058889188225601231039783029579868323421378783240153866733335834271840930066922043330148996721376263788279435354362275965010077699661738412397773883533871931293184612883807137805668409995625445197390884497420918900908803197550376901177473943379590191399763971219062160191109501498803301453215059034215084935496282915792469467534822129713925312876337651064845258370185870019186241347770189432208071517580107696882406620241147018948990848968470968212709578580219495083902360562814684943964046621712673154295585932900253164822348165930231650923235323325249884975388261810866072234307735791525139890317109603675992338202188542574231671990786692713512570423232810525343328909293217429728538962390304481268488254476078482566798214395407990826321544149657839869028611659706294479691172174460639262118381768498907538659556515273194181134195391635655969879928231290992231765150655094648138735889962354823697928850139341477355654438117183088284147234329924096187664237557720978745477417702898212251040809538093028466713175856990371703661079473806700401605203954506253658051296314417423173413489718056712069020564247452144612532871860485813263941623636545980062608289047514909133736869845831496093498681284006938488025989895849199862374008909697339069732094329103436392537858961192669085007440582177347116596814374329021316467409098363430217975101203963654156071846707311933318494270125788553688698047941158608701119844753115515451794241454575046106719787543712526019830332515514104827411375941218639016569153897108038377524305836997169089796586177046416478739542262790182159589378285420968318864180855310231783816465804528030166179637333297893826315428811248700261757201078293884872263099057368568060711394458858175690952011413388482031920696968430457778325833406530114084130044962348311920172939945603505672436286928049010161287566958892015609729832276635133080909952711113589451096067966804869766360521751269298005020446435271992558318004435228943275474732952714748318066883464061966904052679711513060311296960589960019077990246497751501441604681267340967674784154671601118556503149305472400230030104188074002415023724935301631223352925393670791403235594062196787705400661948085874818832202792033375963591502989027097037594170921420614742178559329909298504592890057274291467656725755306644136845424216404306213683515142629343263431768232824020187345781176586026452994839236563048083171578541800323054684185831615948099647101318851569378063826419947651131877925071777826960698278475717265238305430266046071043084832587801548203682060423962535320041011202751595714208168476956232862737106526963899368697071564659776818758340331628250093542934923445543081331365181892850207154451668364670860761549508048684307197089026544617861210544387760570440544381584614377318480563318980851727064512544449114058729433658345314774888716827702990802695312783842324681057486793515216595291911663252811224777753965801120235425060124328028089014143030839563549707827003076687371421061888106791791316272634713695367673418025041243478672545150846378657920749442356542934311763195535978286046544423176242155966343973693002988338217946255964162214208119791147010600296456476662659456071646195598445150264952338576987636996496501237925784013709237557801442783202975568105619545020076553497327050250198202657488618433105581919461743674234320174126356829789266513968562654659560681284756068576861455522990867385311639681699037434386286068825222710961796003911939397037283318631242497608249983504633766963988662433712140941484477715731613644023355200141057441795901282055616645393931014249605968610422874226156581872428797186742927519768758178543988215953704770302532639961837916324702863409604618608250164340767680453491900424073666482082850273822962670194267122006542548227882149167637905945907938969174656377349587223450033845404951137841150207028772282946191431035425494507240456209777462894478473657968671999866515397350647215186031170348425680979508006042524696942865242535788555531447587319218559201364390818315735235164135786724135310861187364969888886135050346856766231539286384222883281371701180049273520415007288241748046889568450453045822837513564055048282075488932066945670822856986768149303210877852367918206135763041391588146436214910590379150702406569033978817390492240615934884187278030836557796350726159076547706201713460486665445580665527115943332050555914997708352896695728152716720533739957937690928692697143571529709971991511816592089331898645962316533020703331774911721565196558316581443936161505866143779126768908409446559842685022427339464644170106528437831583156905110057703521233546903062523527821263691693960545722943071260018783165566097837513100295104871790166929053364195119132020296884844495445464373298293325062595621180850429482151824832367880407152921471705408836170792437677993839602868894849661038040008924768827295780026189560458643726702341215776281171425288496447719412706020908566063815372004033887217132479010820327731730002746304755755766346731786449124864266980574526883131574647622791983135918465229137148729282881898966888551290893409899840426621759825309641247449063522107373618355835463074574366770255227270160783363534424041704331628142456357783362071652981147740602627062671497325494685405578042190571202205273391582044433569296603911894311015060611900693407566475844395552681223735235429963524193185562334738247007740145129356680692366635862814446222335412785431911297625041316894122692317402069955456214184573059626287621361008316134626590357155742669406613689970092928935209031136326587919414920820602662486530477391252031823313349078872308318530711313473877720037335050177618786654625159733026996714017898845585569790786403404186807434412663141578736283872934085070274335849937168341367444344879967726880466775899347977301727701511506184645027446187883010168687514114426598684558592443211393182914769991055456021396457238004706800385508717044337054657282651629817093164265742889191102385190671980149733990782936740615077187577321932298579946432183552383436598610784593314882599231870974669241299311212996277312891008279091184494641757928018061316538059267814608968484644594084129998887000621339378870931483191053717436123313436716934442796089707502703619532778948781094467089388119279288521867732149099290953998152766542772232625882684316773480559506949757144471616456757446638723320928097555938816442080203090769579192627216946805194627022395942307496848708619959177146993122597428163650153579711550441963755974142880882908393105000058078806812631400651591193118344105115014835105178887064798149800640144387492022591748186374385895884373204028339983422689159934578769257215389510372628163737540033215866509438315864545001642463636766364557411507774551212826676872731185221558207983453993662337125457285364520192315307518719201210323775768009427448178652712374381434601652568697694995542767257166548863862027843452264018094012471693291301621545171802931298457036530212933105173348095582806557134873803981964402608844383607818456386285979550451472427753667420868538083847914253521129462726685938707734180504129376025401844787821642662980776419500053057663963282772489557516672059021486481863126358450560002149472439025425105097668735736482032257897252996583529107795959064474012889177777215045219080536666653952945910444711005868507713242253526481597775297609544617842445821672498973574214836589142377502816529230055868505223699867143284212116151893208277317254351713610388979007477597757140032845810546455608643034375125840892084382198282552227206417506459579934999667722077436511833178007248251270192774474331843157023344415021520894624801438016131227128416586929690770353713666627275968985331211274144280291925988885396927653254004827408016078672372121498854965739530276353930271317586177821540053784503275625949530324950656341080960469426522139628456629034674142628949052542892309801587964954273856950609589207106341540264288601400832654267045330720224814216184955563979013087059440308011164284854552021441283211955744379371494765864868775046317916768446857484780057939466791572667484721355242410882307075057903333717271944727652594137905721278623929342211762337039570365861829315062321721610881754493770197984886475849660911443156574969627227320367562984356023134967120179363155279744727674712779952944084235485967493880314835983049536348980188974582867794214796929323302357054250925240055969613093000319600327933607466551418549607366861742988292943025587784717727537545691617072658133286210507263091064932305776061907080149257131886376969954063163401881654932498501186601893820982728450721879907158552297666510188420712036269024495510420464315203457740183466798035511636272268086936135029852033050968484165365952345203631085024962290808267734824351704079398667626505118641493324745977753340093469680256188383258510728662911411986107299708578666544291998369255737723745277623321645904188888305679699701553429939258408629410068113701674513962428128599611024866875409460173197307174750497246819562887642837467619245729880270567819498849449159303168627273661812095609370823451212799722172226936194372999464852683751053443994160028731438369476009068111789754157600947670958642432704841830731752738157104286532273745703660107947710692776930186171463221999070086951238844078633920172030796908678340059513703808122701154304417994049550572816160860645431859314543757518949465227981053695788882052882140000046835156942615912442547699101614355576112972069369806260383152013037986515587776689928967073766018092774208408709159454587614591628926962742228010639430291448463399032907378622635847778838799334780475987789406315010103839786973750222156178873170904885894757570452347978857170620407350718927047069483521956988575723834540551006897978318745516024862895717987029415148027617614244846729879065798354312030342923858446295782211980171452694309574095070145254261948000434499487965147664808870669494503971426033342226212705174163014141004608989488357021592478070487153487376653903607285804838721355727676454859231257962616600509947962617968572086216942835202924857272326792417185540009758858351263928803210837999446385039442420959167734981502928518055794508728464888403804201674503865070772801593886047007813251273390961503901218881662393602212375651019956412449395007967585692514547069735573675712838614531723444937311422585402577361433368315844039463217740606471611895474064189173367061037313081714034270990463498694155679064517191268157247895669610181961588497529838170908513231950336877698211407113004014678947776681793305388287872481153746137483184231952915617435544169730201946251971948031371791379315831649490521735856346851861862474739514575550860862414081642296211725348523169443391078576421176946400730805299198092325443178568734062646272880081196003558610301922225439556522260196145712331635644463328092939654636067810096004543155142964182137749330810793929161854028861852616894581386193354678976257968668498990234623491523499436140615520664011286628193742531967594733598601897047816821971257909610931228615920046142564449846279910146690484918020856874125430304213320540891804457914985518522102272506411065733121547989432602607706860024477257270298036709673515224442536768758235886486765200125757887894082425992652648340333298422983188515197261307711399316378903012343450167641624564873466200909612283269308443038789207321450891343653295602201663941382367173379313974733857695963373971140622679455700305762349050913086869387099574385466607674253332153544352346687908865536111717380703809665146516566820650401463356291907847738291255316191636703583742027824358644546480106976427988352137693947430086162837850088085274036420328666724689594741941661892428775614052314247349255638440191461612428281503423092093092942749854313306575952220428554166651998310153034400206135065908213570980421411886716726928244877104618163056420228141076559774548555070086930842490301637030430103144508525111490354067091863458847691119138947491161959790588842438555590002938265261686345993349218176089545868472941872462771684007469687694597054072362980953688042978658157687081737767101896810867978013490022484396221589946885919083750211607752124456321079957973264667985913206951890762715806597872050001440446068082777373980539878125889070249607864976738166382365170318127897399137147920210570239036802909197816877638796835636881170466586014817312462436918503021673605606237898459439794823801374863079829091033633088852333635666763147348681469832567503071938623842941833263674071351231349419672753499568132040602753235486234389242416021980878700536032697950026641281039751826534185447493088326123769775323913064692818465654512983832658019981745886034973810182991120116389884771855735053775985457680070582951565191488416173644593055819360839423624635748939159429523495948149119951994222292963853991874912753597053578889426414297890978698272009946202616331766201668966009156325551577556222923120251572207603749910099586034429214267251242717793586042032523586389352096201977842151052821900489929460733521172231210377000464678511709229196836369816020231698602746154656544367856390547052776931662788284478240250828782070700588163827759005254689573238160303434121066586585566009690231082736554174404070501030933510062211600035102341172649630796519470488342562342724864213099412705071706073958818133074033181976210558046512456180511627502483754439983298288513181678641218037734599008038972175778885309773109658918137901194622940769957334956125000154166242934880548596632656986503738649901191001958778306684308851305451713985822422818469161678173821064974913848187885575764289279155259249912700600814626763460283762208570704397270273446972902552917733769362769092449313142900866720420357151567614211816249016542621209169347420993380258576508632391081050030802308654910242035112229586624955797141407982472361736801699442401322881633415791899800158303227189242874854839815722981629628296028916094140669747443888627209075136620134423388797656284807065832267127363103837104506937664692495014852594886822130852513656554709200435474391467597187784635405326463326439799291714371041550056507629138865646035728728457026427743327497914985821523339868214017209633633300511637680765851102364374296575682081312358293295516915846269328051640878882348040203990951743002324793242888437781567546470701439107939382640532711374593927293015142128976117508890920687401240009341110145834314003542406081830859628084084337725578353282785237714838805933233531589574937830999221922518288935124179099553090654174637764135598161369012649009443340687766763984843908961261949126706622801208011425060660606783688299131528256314916806096564820086784524857859891479731003714960186951611146699230153479124253913395517614036346107903618159295985457122102093004017273302799736107725388455585358587449318400436597337128248275037721950881277319965008947289157532504234132334522141929665489711904670441213647002363092344243684646319243124092931184660470510932390705855289069601903532555987578711203167854161672225316789160480454577162265466644219142365559289318531894994472946752982133713854688335350874561472769340231863926534211376142144133570550882517953555314697067586459057239832919146529989864855857139424570911448341426892633167505069815527770083283819055934197803452010939276104994657303290804961139329928826338075467951585042476352029831203280213254290270774898604733905042810123930431971123371722570335959848956085631590024201651165238583097920412438846337301223510457155286794834019461376642448517654717776769744572500514837557393210708609037766619151075974669393192902320764834968676402630136982621556711953829200534383353917236032367998058307132170030822768951388467622524343502390953093522809508210353295096425734153959295523056787207266674151245234475289319652061653657475724990636840128599009605272424372845782453931705893663982620797577386281401147988898050450537789914521535023320854788663534360757400758819608354665489552759411497982524745134075680903773242711203729862431523400190880540984737668763894646345125688038750118480894806460250837650988952200335528810589656862888003947571028490964990826821111492399546564763941514817677967038354634774657085574218176635342982136540164828586154122425160653638275705065448539527775252967800741253055325011437788431362123987414549664347922099675755759010929463427532607956182553506274953504491718620528186167577041437471285076111827915045920208530216277571384461252873579133567953311105850958545009150774294281176536208574993477374406092198145818735321209844113896593138360735043908280971667278219751103044909530995681491461723629698637171862874133415566417156430594338952664401107525930700039011667749012064641756589776475461024561232080513130479620839437618069728825353213583658180266091870412286871271086208631696893225842546141629754466605385034019323222890424935385848768616890651774291095802901153289418750281582835303507914479051824685491536870466719285612264820698245230036244072441477203120685889514999611044781616869123907579063967667302314037174464035353460788938140454897693798205565191562944370494384912918703694164995039216888208212386798860608029582053040131639696196326946626354730842695820184555959324158122705856870576455867156986284939557084260444653420766368294497114401219332944730464611332981378586624711096468429981415334865964618961971033203280479964229015332336248390250377391151323552812687020244997589980049934416780481402922300853432353254272980619483514075469931938711102355140817995292428023843111311375761010677849479896021476368789713447224267749810478069993132205429652157969637943324460825317778529446591046531066014037803276178949589225473837587620772939314755254782249836813272027283790449847137972902081137044985294143262509667410220261895618700833895201925290073155953828257239325678144166306319643423327053419558873574433654635567846424622394316682488713047015071878080834367220039481843276527314581512927018823037468019886131250699223394178499100531853654526474741013067540059283690841179690986923592878837027529867834171670429477566520026031867241606540111098753253713766913313119019808698797160351948796712813816559298618010491987293600343783888357697445334447168247544927470575399191236156982990518494247245798788329356694102756342968423191065840531271343135958037262524878095781323798581960134542349365441524874432352890760343404791897938844932490439235404542889707693702618907962309573279264939611375649004756205805322336309709147733135205977769707391160885624438419733277795342402318680310631921138159588535563224619056354901700842012621013995196031832120264121340538247037149474554226096074430139019752955393617056460525308805283419372198726431801299526247804904946446269605427263479196731576530082089856321998580240354516745494812911592318514026854474022364729339963133361160952432729762619592356071231052639641310391372833399405744354873091208928534051502217687607723531291096810151559891865204095857228542661351392439541694916552527214836373708980648793801776977725129604375825137858282315696294254983856147543688422519428567926228341824674659613900863761298606404330059550742937990022457584731796742893875346450256006487096397065444976231168938190205152998152416151464831623824994367594757666004419923193561436713831946646289531694328992503511580309147894828664394486899263562797440930615735986557628240625271607427312477027805440710178546029671514065503628661817428055256323812652490937993907694992315936720186949965374541401945605116648278318084997871005086200469764427024976021853114052581809494078535106808741752532752843332738064783637739884592584130305992189055639807299785083961175942210184494303832331536786485323171741632323767135061803743212171172641266907213503611867106291025341951112429118437185315234667247514778822249771226710282456580089601942747025582515603144738718389708262665953541443525821766759384097761732186013450514294083529988635403915272522735196315229281690389657868614049896776579124321854287623774592240949807350037943211898835713148803150482388555397639873806256182549010048362728617245393831489116752354444994557884552458470064972371229414916140592971296565075694630726609952890764267035877975103689027309348557949139353240484137491279025935796469644474730858026274001364210269272845736358279257390438852512024925420348992270701618831133929911627548919829434941703802888886915021397549040899650896966233100774109311810294588825481465438496335626353337627952956120007338934983555197341735627506146947875812326503402835652469110095256186831322168631230933540518418175713960905326330874740731279445222463056374892451204214920180597134192432041526876182549721161179853137200302299773380708507968523980659417103468183140619751314583579041604349762238753672880217677175847348980103785888478901508310238672363612462668727151943922945932806046045993918689300074879333447364035579287516805723316135574709169215891956297292214807804765444833620946685889749130114064272487735613246402220451425896623076198434109478759023655075548877761285799148629978450109485468251668210707623175999720808524051442397738940517532327393155677150646172338035144990982106723837246425348237421238765685755802755188067303170033691288553829531697517409781344899148393758153021208940223256510204674994786467839104801652615951968198414248065465822966351461155938456358908656961766513169993655258885411870959588798154369093175586735916025515101654842383304159055657500083992175039814054225373059196198427654757553937955219716251351449807400060510544093120428013001032117448849115534038301033690786755198525957991768799173757252739124202128470566583974422173821421598160558290373285585469109584058695171325854471791963982744501807341714463711349561829155442713839600248604159132796004614853204501258625488702346533559696594619945457746588851068928812454315032326331684066395518313408024988929076295490691543156641685289294270901219008397280977593054402482001987456829574130324700736522535076176655504247691433229375636275445429546248574583977551593571711468266334766592135942212461668311425439599387565966458873261375497884562293686167132134944350178127261593133934090056182374491879141588951506666329414217935240867920385247003568546088057704339797076265279588576375015708709789102571781559205854296388129586884233839507974227736597457433070568850850717518417431189839257004428897009550100888040911457461386842847136674716619650821134733452359892804923837872065055599803155240785670865028566166875066564186241669887411417316881209610654993305536006915218636487248938321291301034135012116944961957459273611487542116091817762702284124860182511655650665858293595010875862137220134518136031145519179169671002516962180216873059278474823004534764589086420546214116448795120120611100928922031324236863875704465208155790236095494800744380499107206282403597761833696823567887097115920906771305521769319729011049560274228359068102553873015017741257054326166337851823083872397279644826422685850026389808349728815285327340354203787086303322145974353157141670661478277318193887722709243014964039613089515591440094549511854792848208406279119942046227974127907839235533543969013406125769774941508687399264378505187736076827024660638466316697123276529683350348494980248799628733851033728249208047438223706046221485139747294772859581921688346729505829954959206525723948450314784027030005258789523311463245766931363023589412361985029051905614638574888770731037923858176526462395524011009985581272445275170846002239239889629257823202822566807064094281168819908996067899789912081041989350609917290977718094260814501573960599867404900660241436928495919427377711384331700665554957740721943112603312656972013446672816450410058640510810725255895566497505147848442036792719453463921854687279915279107960974971928707140982268648604405160122870141997265567113110209857721984794602381848852082219894740137246676198631983548771340553396583310905126917005111459464851676211038237083212145444010186525828718787372104045780549478180456697129778495416060465402075290930483934598956034008486111429239894334856978003995802609710631146045484810096601086526359230899656411425392087338617463834363916509969146802800608033214372897119331587930583560082574765775463690855690890363476548351939047219178916198845474347894634764790360701085203269017782453835569760159663043184057792551068913278182203818961674616152509837008346448985139837918038628516005068030839010895773400610647892080174710132253040208219933773660289760217845786583756971313592294495796791097735263518012569724426604233085658424805966917093150392041549556718910576714915140031453839785216181165407022707453989436310057810192659063500766710985549191913238666458516069932172303503129313536958062621788253651075473221823344500887774271144833881252872324144065585678631976205841429125164818127357184128306798429014426951730809930715275078541881023035676519748155772854034823520680288180791368290065482746519146146205697131030312023386802854562981827738259048478350847536942557093246087581938340235977681053474393868081491461413341332354494432376626125583310214347145855636648661004835600912629394483994942759983867913495246691867616387142345740723616782344247825447893083020505455791963817211797018602059941309463270120925104139676925754787484430380689485205918834484468743178796238661053702949381989256681516522014820513912517694691399937733918165592044087794319229488337042569786354576260499261162203544522796325833165635834030976551485312398752740690962579795128444918333548284499697119246558220281762219850640054032658802495052759873464771180095004654196511000531316338153737922162638658331629956495439508472402068775492803798774448559806145408306253559041232221116997696421777558913930418939387060568912863265787284216921223927951981322021675485459175904167393078954471686251436737158489205870196857527958190875530795128891549795204736772198054313640494912601711199868925450181809830444154242319228311018837174681765486709907067875907853450939533224425308731436654302692186496900033576478243006888133845244308635527685905023626805214610414998467317594440428652642684884848905216170929606256726887262101899136412642344953826303011870120556538189966649538310594106357789324165640994615138557353945190803932663727585078471777962296292826752844547401281805186042361868957482971061842659033203308125686854363843067105626792156579155505379638060765179509698848591353146922334789886772876416009031979954957799043331107434012132323362270204584662153871058507445469036623448253450626493816846423669368974504756167173454930205517427620960277049006963408627346520622932897316759773371414694380438786508894274289530157275829107095494368061736132473825541095832324545688750632402867555835147260420762346510513061782916667347793319750369954946510997826300235687098465542403123700591627916861901096587483890163328107549738842901500970263973144953984553049171541801020136948549477210097026894039954939662539691327686940502479354559214912115487680908076586721800078604675004151139414023333314468260022820165059477884606501582549004015183497742539204058294555630333135911299508804946865854772325015292878766942996369146323545027656530240917739166262982229832740549559014118875518991575454344327663416752779375599261067384849798628952001294937281963840135217909157190040291263690084546498602674226258263164147171382699136644208006082758550663626054534951620140895961264757870599480870013249782939185982192845701904716777060512835867039175677200087233794421145980404578962490634791533495111987222491668277240872004176065005092825149247764942529804647943277470671420080409513165732666919551377136953487926636104089099072989332680766857158499258296196050532502030088848937830134355058054174167414572157011896954309415551700955004794631791563017836162813276737948767274559790168982020057938375360507306413833051380491717296719771112329274210815939294143078201593782452661881885182896432440707667291808449257042014541130863269492540056798116130190225506564197942684690507723237817060258413552106352742859631883666483997249265019774649747480105118530749359455865951838051575626527648571119024814369553305689820683323919365476259627721795545204007418274543652394010335096975534195541892044303113877791536774942006926577184949313681427045431660641752301315411382881354971965557700922513886289556660183478890332228490432168435737262588702949242822596649691984208503714911605615414751122798056029078642496709768921656633409766742078936539562542667136147182609937800723149781429084965661138453256431859294128477551152524815695268132327757840527539904523136629391255384852435985725274679650728140823109964068410041474774386687266785181157552997661890115754135042806156629334784771585530891145171727711339643845813116807923391545518633465303532141144444719974428061525052884308698371653826158310120994982652874942719583578441943966567274013441044977413649838244670441384809643270476894257096994903128118998337229970302409859781568078899824649886868610048468966196677447807982644686335004951266968512850773156732662611432862580236381373270306007796301363663992058605838559823189341472016770544738516279334844000541586369690540719180566924183170792651393712670147388311380352297979772316022318469908753165796647496165382913543012080571536942909933111731261028230818812805900067134414781794598176544053084103597929261589230387959192403020387442259705750292909276904487938561489144637377284136714043127489030142540585556248562239681145254729666094560385388141005515299861099956756146973358774967958500179571457388422565231307611108561227591611629784584884948591995759015051427341600474475280218826620172540770376231203382421584322108884037287513140515968252721789408209511274284205589414088415196373637757100786017828863106473644348898281157837864040391887730133073775845115273113701550038625080721844437173016187668688207786182337889429234045906594892923336492124547539556504426492547373264303013617671352110062041722981200200872044691613326552543654983167832420615079717179619550372774262787684479289845096221818677573233630502455503740278381938652790805669916326865316280604463760577009583938547498380420448676671528825673653232917968154124008921990258918574379819097711340337698184313416465857931481999677836165747265539485661301525374972397896841471229832604999077624279809849993001617395477041363643696058682034207931344631736025933472948545812915355320362760897443278381485460623305934176996715099978123249771287317424121791352554403778879892450078011079101332643429631667069532742222192970242638869518908608664985710745960968302034334847833855727436536008494776968409617523720722714500577515894368576352059022443714560370008437406439565413467108104522313546178849048066244642123574289485918284930716595317229394138416260900211995722923477209789547604062442882476235190062449718016680645994659893273219785595038487802611625926357456278954051139763642006563424083732848098732161371613406271712224884835870153513487625595123818087925186482772151327397009480133254946513885282732805050201773086443583747456264727122524496248016007901392668701955905090052660609954011807121048810489497254436985758989840964708398249795108961981089247199099454740792187253007001246985252911092725563220739691869441995961827328120910041787635655290501569985198867172086853411982757640440125869972086827335267532060022632977154688284106507283816486980118327922868566538496735762953745422436947842385071536212112326385092345247745145460871703241415428101286206091157084682305335300018878708737189290173342244890890329042325872414299604228263651134619543311111272363848792471206365324132908505263971545182598212942754006998572727292065842159326860498024157830194178364776418519399176322322956509671545040311125261817627605695487321765829019724976795090808893655383888213040382970807282053686654084371519412654137547133453661459744193109559619952769304630298525593552265301997743657717116507481949306234462168917473074406443510844826887818365210102795812426641983546787134377141220071878626960937364071076066667256567465459419548093288158630370347914768260715877977154773908297415386507446539904738957521680460752505116868594910467090656978421360987755111101634786264604801117323954797034833498725449288973518458898685686588999142427792829683616735991851053444890622971901098715913972613597362655508767599023576707140921617693766164498887486964333234094929778457603323959663273062244558250526966854740370894199976487234240760820094418809740858571630468232045968398946585004663095394786696405472150296169309238539637481502670601022492830201399650896296718847145678036009684250474615169015473318346491182303425130233704085346058987250081937957816581388187353816173018066201171743772454534938085984665004711745538858231070548076675472559900763748445177386741617766555328256865864632268166879695318541092108147658190363340971404922836777458881450450787245722746019515791823236853454519108868633502185939851496865636553432926462354776560375648976847809020497276464953350242573193318372314913438263524539385256041884252411784185950438450023876694527216392979318662218640348524555372198405913460358991023422999853085493300314677547219004525342762351379214239715923853689020677405839579456432317031881795813229860782390033441571669758048917082370106446260432436296770861982057932299286941384156632909418424106534318267634284585579467270513112077914768687202467319434796814205547181988897931151605799356937568980258985234732866604924682927112616189090736396517133317776419883056608818015210376309402044777033872974005738094940481914263200084567620523707047261373475373310474638141621256483974033047130363266321526065735738498799569961510559772089182462403220338947137169285549992984078534801341182995996468584624260407889473467325337477206480743145444644910539889245793277682517582484954657428353575168412112373357559564176269349631131486310820393858445262221361537840701969333998144964634663260289079848187642304357114259258053699193016609829447405349637789821733148113324303052845902398720133835141631962383586770718359331871974522728063299546980407278536896653297701745207786818470814353129244941685369666762081177408532616958060214440573723097982461709061404147063245889455974589233087923658277498183020450578473772639460135847309811877022060493780014615428259542967980019615683279322262195703442358631544049420667508102316192721902283780448939069972945087802922160376899209477449447282021499458696347751676761901858082973941560677915111193515254163994346490570093270585346687253780310878668779334340772841377446079303118718464235320450051266747441631586623570424703647696323404467451056228894158709438602506986609460143803072199678889429948174687077857031098239652731304188221832046576166500979882348876176372574808890396624685566095517053630376634420737670344106129852039475761335848539867137893788554775977892307268703124365419129665723620209878824207525163454109060154473948374634478617614963953901964482073949384057888418215935372314316164088583566756892728288690912925184309612057126117859361805218239935418388045820661687607409487159417029314302551923022640917306161343515462749842202987941372683259607964367985262834089820273759935039412048849523627188213270275139188367563007247777769363951317478265572640979188155606386460756026771221518025921240417668424907990875637143276819190170896952789583640185642421625064495558030852947238534023813841032613252495888341134664115377095920457482706586502295609573647931097460573672976484073293002459498679147895638037914039035159175548357477003943344564164754259032765466566934703362451652992629723037687464515095522157000599393830243537978537242841308450579144195612815552887890646083428257083961458074736351751463965441732409842808603712149278295717688765149308151827044369025095288621546433123134855861703625568992044201787340385659066437910226693042567847496995729236611151614101755028075092161134419086173415315989611235355099893807156535361798664306850935261630452721667254516210059984571744633400883971543418255867897666264271046266936528931684311035114580479912581749646229775720437633197722904103639771122132982041620514488789116379668628475410910639941512875430298676115119507713814780832810825235543140510555875210485805446579325856137728486918856558390007985623340799920332885913114693839760988073320434222947804972406256858228270544606893709301960897911589847821838490897034955569302311049698210047502711835929902444853211961207071610242414108509701357936198923581484188571520501156783319729423399353833514962412056744217333174202522622225962947536909757007764604674771363142555547872795347754250761214635973992456295027498889151205235269796159393775005313864779637514052859086160625185433588996103522691330384487655124252573100459232660861869748587213823536911685871561779548807999780231529296685288354130250790539858476053464013872910169857366546636633149018818391613213107044241213098254046309148228619946405854051228474559618112243256477239689552447759545621497461663266063183721661469772185051764103908492272542023807690366416952355810014606425245168072327391042886416596523494387622706733142793060425311312554935963329800032965693655419771791322211405116895512969015857374739278831484130196079948044398795643952014261345983958943875839945327048401047859374409573326165748884309742982674921921280266584710431117067600778968254111247000871162123321720218853924620867049205221480537920242514390341197349552291775529888978740527061935952613425445709363583100761944641826470517221505087821372785346066531057973112708376600414104189580731950578033808244079428645836074504599461480000408379519503747603924479193866173792096833854262227366631318956567019931290586577078270712892422500114732276408773886995174743141491583246013531213820110957540284488308415151812411881102887622632015912598575569605933560247510168396268867813369292983875054843258525713311599369683120725494635647515796008835281938742329043366088780959591128553778616009099020338272084542811635145871513321212017213674009910574292410935657451105042528538912262192985673782147803836428280819359165617680465927563415113374595483669609798967597282203973161662192130639502208478510466129291652757605371830896921359890136371372074321964643521729417629407279481814386783520145634035798595698831240565526275237218611115966714221746656404859743829202027362582573470134999531734208523559408944310955642439708100299626737427101803020797830947921321566286402209422548641845894356501547537986925272276188657820709250705228337097325353009657309570597091797896566032745418445393807150173069140259809969222483709499727335810944645949215587166814027911584714848932630219708007425513159232312094309418845715436158107870264990360303228028275925119336654394795300002411661016826996887190098597283033508937555884230089406987328212507142551074093340542248440000871715374783905232850972885057118024680566603616616083536062309836376302820428115818024521187312449328565923788583219819281199689578620454101734636599388501954627238617494559691557525406944897783510765343726895366092538058286718226228600751296825805413655046200886842638218478007812081608998151536049243046616983922701706834392357449831210876588704507416176820674771585818477691310751684560120873386201562810181648593970595608902723635762479328733493637880767182248361818057040308356683411325467708696495813572850369650086798989328723300384578964795053200657264247692683757384753642920483202369369498629179548399600752476142232841893092549369839943008375765736078650796539618178602199565302419989826582077353775123855198758674396419024854817125485713059890381258312937591611013001907116173077116737136068151294190383523679693491205600088812530343288552950419436361188807220791976322433797455867259729613590912061820547071254711707349966145749258932088896652565661206593298797467499432982021073698284631828947379221917930590548281081305326428519900214941694818519886648294194928929586066603784012575389199923837479132350940030304645902603621946162463144338579007015609017883875557882567257235119039691090474603675688392131821324304556251517791987806412946712184331748617304730440980603735608122535262179273157834186575577354851902998131887970606184351365692089125830535656431547408782653615797160725663579008752103169359106723039589416480094767688655014888465405537401703298860933315451006417519741542383520404466673459038942913847456722327324065917060918154024125090371668469211660108122858590337357085360683347300458584353525713268716973149325677653103504287523802552443310236115467467428224021737743629268653296932504461212333683130765582432760443911123707545733535142179603553323803097564123109776208973768135927157919780424547990670208337991474056511894812756037121099883430069895369223084360069238422917262879635206773357230155097590961515785077267197932942700651979385605735905883150600720013939819764579764682502385579320832983405872593138839382491388606198774871465008746105019789820371457497778834480826277221669038886342471822171404306480593973175828409541589035118527267825148227229592456609747336916270898236666648036772274253567033529824465083043409076735716794876390917172341636620233484250561346003566394108993296783312669806471655169563872844529949656518955691168347902064812296144373127614353382401055963067311618631925392075361959226529497335133771870020769311020165783463619317249469416259249048399795726089822081454687128874771241141982600814771575748881849220402466400762007355983678633242630822461758795657088757785223293162010610809159946448325986197584905855929083381646265712562787159401945401780646144304595235102112701992581056698202363522962514441532520344693364535127712101540179708910258131697351267798010465099996613635392193753553698599237528934043164362746034297318205305203316085863150189460617078857170409790542349155255465383996554712488501129679820140287076635391996840601045802848757641766113608049222608381559249382621707572982683608896360092553877264545412967045961692579482168000127163249532319012789492296800978050236648497558734113529412306070508484270247756777244071312664668007029559023289058384589372554881141223467965131790341525793670706753152264357433398876742375479379671994435053261139371168975800699496773655472013673091773822361382402774030108482141100419113900923421077194520909590455733055659605963412136169306493240060862610700067769531805903216399054066988670241780395885116831618486765230225848277866871396645104634253731798895827382227973936564481162186381196285546440956877320076124408238184802247103614972903595621641896402453190831379127411004998216950575995851545500989230245485740423276480380071131731839443858308939483848152649103420036638074353323524115912736356786542284157771375968950373695173898263883249612046742200869133631668254690859075126185898879497585846212812351873666953079372862047721481222809267247421008182664215943683611010670873340638377196783859582604124077180859251981625170055119152581839224571039471895704595430241265178571869174897351224965703439375018559252686612013999198636162126881334582010798286665955976595099927862074982327334333680551173934946954532746903191474814105027364781244892293713299602444182556600252526920947545112497718834453570004031041868856686428385362820479753011241576381087625820652651972000105266009712268131280931032278589805350586424104104037045335439675551161464911787014597865543113227053933396859005021340206330479622209943099409183818058154731478432545041547969886415435335639603457428008313180181063578771044823171892476694017044742088787330469979966687563819535980491241984160474288613669766849753773380409589942357174298939665302094728608753261166872491312799094268161160137600667283656341888264393244336978266222160901667043718177358535280111521714504103721657603744907395175989342374523155960565313197513821247838928807864942114461252698827546639264098219111025100927272325912083591924160252145559926249430177497066077129305762666762606346283319390454469257232721752924687429464372454622674066547406864356934808817467697652063495492166196627402528342420419506478970271481447538328618631206571825690601744622155325169225301134965977504592250406558963587587244513382410062750188462010759566267425582741242861931816092990021102960597864801911345604109598219157809395270624148189475540101743751817026979382535947175339762223164413690683310998844815925847465692626312849317626570388611467810102553026088384117402077319597887533572532666528908450092408069984318136180425505437880640015723148413118443432935416796761243257986811552170350367941690175971365482194738207268621337742208964102953836760720040183318363404982983480759446988441788152949038806414462432055666351369702397259207579172471999209633136976441390651815082812212751673476942270144234947834299258451796567230923467102774498324209503152008238739801499721187179172679545309432188269857046114514134435514808521825132057784863131957284492212771476196768461076750203582138595012769132284100998404926803677479923403844625492898905744117344095918140897295226164040482374209757763973446975352430131883589112688623902089411841184275405693858666821172869211186141092087466612011757109625509501649096931622311406350501101571622974242089949645364153663242463492396696519284641588595691721964293601277880962712218081352997719741884654724311272282882378555998693764757098291768956697807276975803321108118710586403810070464086649229337151344913841618064847295716014418004242888791499025407681704881441001743813374501315316905603901264491943361614569769033346801391975866819733187446125491055162942993249758961922788647235774653311056463001926572983830314509721502506151038536096937727682449259634565076760416768928732327988174871712536040335438226664646939859281415155581045957666784324830654675799408855434133942144538944208753216106609024281600265630750370592562526765592584216464607448103700789134676979673129004087265793795152034664949990449117534949238169572443780330461249558860979599469274047764283132960328217292944787388040040472029958005209340166142411039066159709477500066644457386858629610561394958818894736549471612682756460429120756347142345715891973104493508994176189765810281845649806346281940097882575061474462858183984257124441333928562526517414668406492694147915845214924243749497448834175832639006180210941801311865600026686416058970523351151723774357567004809965204649256242236270707979909782442835143990635712433834761521935354706185547906650622410774128724974839190741398930238285226464350401151578627499162587137613508518209429283403741895949878192287663822422460318342255678890694817762281298616102829402741493059923948767823138953700326360798858079715402314103991915060999956436797936260419847805546000023315239642667731780965661585593931413223718719040259151800755407094038721520837475179250493281577125906657780562330964553801711986830602073923317733932994174832325216063902913072417536900562277579038517813484845434609345557588907498173785159321210938007556757542371511646022597338191096071291654881563597421734952009696471936588069715816631096876115195544986576525427718257561917579654651845327372811163386154904266255823134280879565853140047642217775034564780791986965755833103827564580523065855811129933409527078286140239519503069324827629705414169673961189384137799075406067683169059488022556656990892559785770486820865531488137680540361834463811908212995746572591405261124835769501580292449063347440625957127527875802717768662203382850575985202423465104535506262668724003332615871174862791111379709386103843481341600219212459021773743911151378065711839892817399331793651469823983850309612269830047044212914184268393422754165193511171702398167692501611624943989961747574339896445757684747267345585123088003131628282261696184259222527466471313670705719089730579062656692631451396364781653917522838952321525264714732348025642845506772464051360565598730078307091363745703562507298757202433582224941859367682292121742737424988759027082399999896371378075647154720737866765891812317551295745303814625946466429947999166755336443915804866632832274014074927844833998094505255617410095486383119690878093099896267864591349616994304859899804608498739514283847435190680440969693406288409830573047471867635457360873856084300726008968806058184281303633937652762055069917871859376844646123050810027556843881405374696540871955179622427105002549431366550338470347485723008821895792841233897552257341034783228687216498181907116951744773614205121401002690538405729837800268351044591425299906567121972855816180425114642659836203924450997827327191894534641460731167059919949197784468023204527967975238855552926534426781785145587422363630983152124434108263784813590205512607261219709704425410532092067629616841307972701367988505355405871010123372249815755053155834110590402228943480521122517971153882273168087294236985594294523353418437030479535048094616723931932870302391019928552453148837088134704856433645005145569252929160840221265075017824970863762438633071619011217136480119078058719068896520666718532749305630773052780602565799242021078234238164688827263571621070295414768086298443596106924714865494704035580259138954890053971519369360691308071518709346851952861011828247264430778610250660321819404815974144079459585992802496680055315659017418140419241498612300670033870503791573307708169713649207880154523406721229454180166569071385211808715008815909670196487026874199077788797422376940365900058697051975758833142993371802145002121399387046105417326737484258143126008304348372937232623574148383378434581653130725378790929723708474031717347868968336296259572758135430261726284859003256702350571334718104493567111815288096271556753954823373277708183308751729122667129235185592812145763844740879125248453000388881333485665272292974703939996524797447250148763688865878140815227656338919777799561161055433362178174721384397960785340587754752227836827134267913344750698615506559457971051837023008361001289831940378366694776310502672094394250570859443273250390023929699157296420730920509977080270631173587887286634244935561439000946640303890801636901695355358555133929225414450835208764363578772439090665418050866085624100474181276422748496264372709716931748995987653220134417081593964027548155909786154629416053419112993689182753372368012987478187324593146482200547071356521058397883713182030787781429023446188917111667254111879655191993900466677674355543278546353588302356504560343724467816118776410303335043036927000132891882663271794472173580507562866653314820202624630225828951527438968981956521341230126558881500207168926850408118869708026261534241004847119361831809347933241758526718450077275356773960862554700753652425362184452033908359234336033242873924746027532594411330523778238635868083198759962744387586690703675891580692010169289362302354169230335348915364905868372116548000227362372185233753548279275170638032400118742742366171261008435685207692269141639436968626719667012390453651825419751100861960497388159868037581101657641944815354967316768486798535474526994343778046934468658962448373263290455046800848792523786217172462075308896102613478216465519126383188410959654504217836815383856020243311531812062644723893559185777403100584751827875075059187003736985152578317226047075882702010383793357670845282740810383337965043144490444336953870297103226302215584375693459511055177542209140042730640469158284002072449221595998938021498235019844325207166546227522757315599771470487270994305700307461706376654386700539478783756417989010254047243904002891380472499173456587492253117429662322465354030783195157118909088012018982310525550414189501080360088368817326414020004235971429656383831233484540963592778485335035309773846641540406300163627691654772500538139147178117454374846330670418666436669067986321876942892054477326597439738135278048550661256738237537038975180998684245060139297772536638727752433604557293323692163219773643472558553402295209333299790344288309514857246642177550643843408875068091262665649531089880680574720741591720808785095746856812744530585590131809596612338900110851053524077274798196211769068902550982218805331222852446890694115686849833297510663023952574857302509516516594442342833402234921379135273110389947425879558778258441739133296232077639370366207145745384427996806579556100007745517461622080012624794098825273984084154596368882796574993211373380025353366126147215455483420465633749110640226690438178327436851771354680989162666535983057320894823585904447204677177323427282154265554824960999388889210386212942077846742394548986086831780740191367344556483124869339809911828351921930426744783682111847471936623798850848702070898113536394377925790987020436232448175788394630283868420700840133673332105341482339899729221185500938068825988673776433524268508948330956979739988148103950716075998085742674895588575602375614378000031436738430313440297202856678780846118994411162089606613307842834275282645627586886504808301993249471067488854559468160875612722852057684684195844222903487751429559532460295065203118695293168034723733391022415790707839733722211923095439288263923031491206385420764369254152743478861652678235227804627105143848237661399830808193004632286992418811072734871500276801757372804985626004908150356970684048447634854932518707001954616240720245641013201444539390304684333906871201476722786267432608898762634612098032133216764395046978247820741349389326907554700011083615074635767527551238200967696834164791821185292291662190721369266405991326529934520853710679896100071957614384250255477236439762242309451101166662596107501688550156139648515416973324323922571178030498266973437862106307606394362023014852216807989483096616506784645176240319666570788785605818791608033021218927299165559311275754453553120630091354063031460202356588591623868492316988341260115632158685133239905455279459132674353527498718465942811983305650834176474415069713908192029284928353926665258536369909012593170266812747679380382090337271731420907572753075093164342754116446521906909731103991141246474597624657309580156410123553822523241256814352369307255929248852291017548506933531054206419976241428941196270037922041630410338680737314169402077353439413797704966849499943797573965914340859768410220922528990060606518399358176911186054166074878902487381225998071933458492523625033102199881232533408753843491490938242766598920454183806612268028058025213301050997728627235628894395352183847525016543584641674721174174076578255362469571905063412852449899157986617385758705151430207278702913585247526867645766849429796972624059937937670763493314245914285427427272796370733322812177947598951714136168711908368885760555035193911342305244770183605408618116135483171013476351798505213514646557616815711407994387019343337715220766922678213499689356094895116025241556702037024795015331812985504926934889716116440160369594602752233819125882664725297716406943163968256128449044981968450287152891894269627519849974134182336777648871169204098171821581371457506299633294843161391405434649814518881538697461255389753080011988227304362056962989627109611245272571391084020863679679969998617417175974536589420449770416778445259012457868993971493032686691367859555434819406285671648488215787007661927655132469065149844690638346288875602903725001972721860060541621958401559706208137781092508680012996030519186709102242881586038241033417494418890704779251051068291582873225353912539935775956769178054893363559917340324781485981483918205800930979816144285813344944974408444930246356038479167684177621432160297409501667180720605616131740740492743439355317914723788748936445806895179381908174146173382195141126601917522365369347774156719191046037770972902425026268697435956182401675395936495811453438627399179787242037057373046505444141324366056041865636614361364907444145312287975534133704786312241910642617896207972026144340250052265076428360803506786081280624703214689566088934880841991109833436606820155990166680407392158289714994211779959512533747212498771912436946261352008683366234101789030157993707923629267079621815732657017933977840201745919166711753443119752948868254558103810105871433753035107648498782445126348082330875971079176108702507045565072437588161220021299060059990842272323268204028257036715181166375405980536283202718485746165250718605120708938061246504376493112505490418898797558633195464584255649499877459335861597517859121951244109006558551651093820232359874503931819814720304824499406388093793097486093026071181527882809361850488054820141726977756136072024093375241580181096765146589307594478761853596501676195409298471098712796739023271215930809814624222462596984045751726361069887456953943255049245160420548683226073928847251415851169767678842195341687557116644531685149180504927908209508416873297382187259397614986065601825185775731558905256940633990080542685678856296241184407668602203146882645493368134584362144122516150764992015701002378700226585468486063029969859500653814446245728052993515810618160123552869566872138861163003401486380746259111635251521670751743791911077753588190519695489389112707033401751006663398307977485196563339132901262784618615427975746573607309072528178643426841505425197974030714846362056959244889062191222001231926548195885033128510359288552617889150303613266062975882640941596727353178460545372696138696131248453060834071338497374997239307224048817511142849868899410845509746839092286101604164403934917501777192352064105776298679085140969697404054786179228326323754220350771625961272490545690253130947651831556849638761474461570200733531449480613055113496061760074119241460845995749221523863192740253338420385471970911725613501572721847725883442900296853097538770409453782140475885447701180967943689252215212450381483240575050417182364452186672256162846843566544356163874975866286616733224261185835590623207473893933249275040225860301330937275905826174664950515997676116621450940241771979684253870115356532898628024889543730241001617642128419314354582342524333261838717553258972830177590450008804389689543575284171312831053357327611494354838380514324874638941349839834894966752365562977914238318272285538914329605451437674002512935296965311880367966324127867493438555501325986262238781476034333296323335768248385101252227275161537048683723176943464796964546694747166263623922291933786674804437014214383763617252248479339135339601875570934034140549078401414455334866419519677502300295571307003358025260615851443294774492888102995108997322397778621678880975144341406804060446336941905356461527949951643406526484366441587329688909523106069174979281403354280636720059038858249689647234616593964751903451331295459028022849047040201416651369046829296842440035226666741817483606626455081524160832846295090167360397111330774421012568662136143332904063014915683998767351261111557987633354523295634295434733514752239832285934193014557943204606765552570299346104026728332055488648691480801750422415566145437921008992221188850320641037450383834078978858548588938063992898287317557864329469843218637038789596541345805517128849362431362119082466030157416831912618621123093902332552467008144828232180415243147549532959416851545163855505312088063531835456571702407117561595314014347506688386661775605655593693718049671557383701437763210781985297756286070387658034697975279166979502508249801449548078909929735344300225885205544888667257958397173224575889504177068132263900024374893758555859178043435449424892346159709701171955449352766819795063808175517361877253168895712214174942087725340960079150639062418493857293551488574980521053800892861954938237278736212189284006219865113148438611435206043491711815029993843986194017795647083788717358043469658224507833347605393969357117351727145431596687393811078714966859580570002444704455525786232006382964153620519343023406109404176884719483064601797574314035600660748940190713990799132861487059658921136171001338729756792558522181176894372281637063954294099334984300769458867763672501875874761132964258607812379331926496524323051215759107586696244644997731391474618395789994717127569319569867403127784919086126539050975249621734665687590890732101104145039533947742221007428672452956336545073080209765969412161248093575554437265158153018032185919099638465897554711632015312049317943182622284467965515344297981446454814806090909865882614002298414546538969766038898293845324639737749811120935993009404969543125672494992923410659992912890252865246701576214181709725732730790939547856403903591145044245365428725526720496573467865557394247004097589727151043694627904599017751158376068335870653631120574777961983693169920522887628538952105469079983805690397649437786122191473083220774103443995534789363067993930148066550213386077360317688564640787973446432359800569125900281474456540799816365148633794432602317622645904516924997388731043215217732725565555838982428066336441460082564351263602935561886090457316488206978677407139529057159384868639989315661236776498532769419528660465215507814957304786437415487140113934824890805107959034739176229690119067523324675349108328149681409081745559387322986586512657566782726130184745353580230078324436820961513014389279620986777539321892120550303158711948568366146534142651650203061197253384212576555058154281633552071070915794122784555566124813884087586919598403497858889238437176618185815981649397542671488543022748153906901542288177020258901572386855137511055542955475416986362950412556112091237280741352784659790814077735067206675081769864315174339814536824638131730372718260841424630451652209255955573366871660209726950540948891607989585032461991943850994690657067074392229101674813796427968137033330037915355704674924835374620418893613745945177462916461962664138215967047600392019374710421635153933411251836637866575256869773968170842590248598210456160994294097276231737145435493632744674239448694427177766853144682547729046003266718766891158592024729262364055586821788096265706937832786782112069782665001612984024037843220943516572387069066617446906911763413333130586222444275668004430492021461412738678793961321945345404812283386506587474494830267163584969560274880773660379733222476797384911181594480305863303900310701934708678609860000893737063640489540226730949632498459778572355660662764387144400340021557358364272925983813547516821954571001010080460559915395335060917915738708809490456589221628743763215091511799440101779601847232941904251777157483836493486885746297135938873846187456628703654437165183012983833546941082422113593003102050919557263106291684155963750530681738285268138687813423616079913168929979020952519169505686406778721241341158982446969773858349467918508784089415553313692604399776664728364635864162965168244412576961248235359691433436037550995279710491760837452406153992526469470194756905482154695204485111413289515979557910895255723577466866767592367543351104441708206633991707059719120401439851228419757692971370690981466890012616923185916702257542847919600515055738952288897864203075542290145063122915822297025021595287200471455033966348771839707935266298918023471862877025195520149321963828123357061973662457963712723608806828024905858853070925709327319609471130952347108442146107097241246953865236075035081370912194949096786292444779599794338256051348325034991810280335454445203688401707410578664745184700220431111352172179684015917480916114622410146164692774780288485890740490707758510795798861126813326281395138981051920651379707081707057674270389322133796006481018522804658985217478278820562415620436374628822975188864789103599848922671533363168524204631906781357850922601768380627030559711269612948912936366805078766873124893752952845353116952354761146283540757672815587755155751877106736925547437520564150713922651350881524566951891658771107256644932240374005543279349857592347754499003296555136886872274662240420179487636501427661999986326189816940510898784322003041576903425629943288110277427993050359186778255344369148586494257819746833745016870732853166939319211903515639619458889003280779424722557748455945991255512970107388975797938987877508456598494741813478744898471425289527629638068908183118667712353929902097670332419100516586134758168049954845549715927078194616210264178375852374308617944977012257226032976025568101527077041982372710509784800023825828061274993095381541747096116695669340156714755846796343831117397640048622520345938030073890063150613104693730949659001463139483792313800946144859155063838278242362430009286732592128286261854149124480764666526644391386991443545960152080014730886032020232782877323031200042599288254702616670986847844870403517390730647613142454641199724350186117581251801792601368711646472637574384324225147406185637411762097628897262061227553795405241521010884318755088197816542564844078382407288240155143069562102663787088425133878568553507615550147309312401783546488730199425936559425838772332583461590460779955763971112770718523302907467694671568978835598910332017029613410815188449731668578002578248865657994611691877880228155859090002610425734550060531665290879265174715860228986893168512350352937667626918727800272489540882226562615651508055417901434831815670966936715800912914161327077189231422218307886189642808696265648860547923965684245709610450893287746431076138688931348377365530234927157064338039632966068523357903724997664741588660810973710296383311849387690862577396664248549214382106208968685738942243904185050709430373211811450687758715362316748780544719493838465604106267320327830524036578495871271533140772646415860586448319762060828442860002498386990879690788953741778814034770347865218134300303762247016272070230467921995426037289988699244335804428487847847149628217124342018844803249434537941241252111629818401271969370133705564740460872679956732078708207874143382100353924348289516773274730912129095529001299851530474149075893612027931300810938890225791146153738246483314234854086380836682728253679952506310374281563282697865588854678559111003869128497013350845268497786173073488604188903015868841370974657459975479009845689875170107862813243866667677093355147060780079768226134754317356167768825479283279224760370552246718888470992385772567986735025501633265565595640090329606679962930951742257340289206140734302008951881909545894965291897982972541420606192909278732574655840645261611568479172287344501757420180074751935237374321091544237092822611251583100411074470388253957758036086032888253183154332138766512737576631891277870206927147165068286941457511903401958262665224823263452939383238542073069285514896429894930795424052300801277897729527380617725379996171368643984126796679503086519850368208684006668062190080718773297043016165074080524625332051803859905783231672104865170220663852444330837399133499932264816000156951672907934459339463054499644957195816055741251420246697928190694150234773293773939113880458418398822815429153894122520019893754382919168559688121536860539156566703688419355308885567638355086943143918690265483683989634179103302798082960013163921305334031879090394482262461719105229447904603903328353530086039212720371115916200703047939323830800138159132861338425882825518091804900365933393997744474434843852358440618232616211658742177952654605319298587477645118221875096677500606345081355933730378294479932026586840609939236997746124224545185420996021397719651814740928030562106854043294803126407555824451517080581694372337973012021239061201669459936206031376145529393282823419655779611298572598943971303798229946011320729763061419150992440161837327488080395237619831998841794764222066761040999610189426251449741662822834014945492541814444774189480944505217866570418346575960890368456014989412491922355309569570302369595234799505647436828959136042384674871291215989502830940623131141061510086258607966570615356488350410045486412572663973938330451700707405272924466335311001087265405904056651330688665186482349748150960102698862371400389285612930111867091564230698999831297583902273514619962365886113909860168918196403843508970628107298130008325752897622389612874694743158156645575409619086167793478790861426206877384652309283515145346468282095844874421993805558900502372126816505026995157039907209851821977060601580715518919631395018217918921860979411739448498026289572586265334816163590100134184898203512745299449308328155555572796051051349803308659828770936458041340802857474362461052847613179064147973836153999959958485594517410367054386348455230614574824967684693677945711103593669962935427224238759712053169433410856016804826323727982054771557719465896231112192961956644607563751425472774622052450528055420366722157369099030968397812694219324593530911976968363723169027293371095167041101437530143274834945610974510646782385342360672491266163326477550063619972975136486253766122083939746815021416913165097194746396700587080000920920404501743897995839031327394578661493921678935703935802655559204052068211249238078976475901548003464535608688462027460205718426647395499234234252417993193612641119549909168602509883049940751701293082685644741386571357690028363564340448001330925670319358728552537574802215982723291380137499952532341013521123194288493522733689549076156146337657877473285625452127487362468698400981541960218747377418598642029514764821536919493054247915524496078708888210211210656383244627486827138457202179524886192116288206085105819815693227954150389620815434352014457689817229626537347232588702203099039154216102722525970979998847210594271865748988291828943672730745073688481164752859187591981685447965008957878857849808411546271452382784857956116515586397523844484096487850212827748693844295428455291655616048786665279797584925735311453925365393804851302160074456975358248159274185525901904244619548999337413691248484429282321334169843850291818661916993449088307562515678853808758473747696082102737395897544224362594636694261436533506151375244106308801631903369794686806457558445327011369942252461012713788180974476754011692997426577892639233168376514615857752087174721336555397671281832288470989313995732927454151036598646039009312439067498666378840546812644655575573572406629822753349435085861547336903819108879826141925515298080296105160913524219439698083426506589394175232730224606674114084068111347597993499233617235764457285368545378468039994877789755991664671851740973593496919928317851451728752665708539137373211959374162161422027868199215277897350493203425797994813649247878764706479561771939091734066216373650625362185722765827061621147926548308779118336916729777185183265549105818885616426456394046398251439109712755363406567411846665968090932347623368396602631296528515537813889540887728946724928674338559794231135121890461713423206551253392598339818374855685613645705420872518514371376620199121844560347699161973677585726766147162342761856311163469273933310010542924815957381682725890233470450962413133207882068451609081949371793255435440482013659853977284982993031380802670139545914907983982856276943683283956705046927220244085688920026453933234900612687287578755872273105790241095610001762009082044244374437525699010824146391150960633742626775649862034921895983836635487198230843480351178663176497048187982371464058556602671736725417217776278472284751829786505039930156873161955777904422256811688063812767484332656563205514784466862567417085085886673355431559758491863098587224287283332000646541353378380443605543388035532701894667557207546874432146197203189402553551928187518242885909850693195708685981052566987111861299052730944119413149282138190879904706783948210400616170984216360566325616529506493617407807993027691461442058766002676958574160430976632115828185590544034287212634676358229526358499572386780245339653799123239040109760555514404543750121721056831884124565115644042483683899050121759851714915471840790141647908769213416935944784944872474780025708800695106651693397649453912581763770598641632442802537214824693931457330074894664881900510413308648329648388777059976458205785927714492931098657232451185960460187609137643438816189526171896740117188889760090895936928738036686675902832165102773192591028809157630635674684249478628011234035762044053534230266476925339757873558999191488728260078402468264201086087976747941279295425289321683634506377348885798392482571624436018787734605952868144738843089395177468120777207353076691196878473872116611068345130314768518797124888228405620649360220116421234214892667497738587937705442434790842144908555844014582771712644900320543658564489583820220104161531689916762988993492642940417741141484376432338893815291351581279868403440688912802322249073843911820396331620136709167440569288086340207288917170949190154437082550706276008311429065921862224234656063066499834485743813465754047902497822560437191981988384752598868258348239360811100727071247695004611627550783678680778645314195618646504793831865472595877345860155231963931392254839415153155145226445642407603707592718803370620070087328211671183414373892125207706397517815005946907181300715448062768131440315039851758268482723712492911643922514631908262587889573008438026249854569257053687203821331127429219772681685052774912499907571108881963862988356590949740469533228093314840708337553699370010386910243020469909705543564182340906896032745024863996110706150530919772804204292206241299524170253928971756256801762800179461405595268373185512174255981887032844223559369942744333787698579318953793002046892517331526193215541121598995029508289614967013430857008808469592307007938932467136951535637633263730307104309722439865703291068485360326682657756240099747035319519206739001956430304926036100859110625420544330115916086681695005905073377676606922036804169136249905239828626895835107355819612860897224443230679370682661351185413357110315500969501164647078313087561603629592805969336159598342958165431226818348808873686161494613198259161498035013681682191586752928892267237621447429530892784368185340758054013450410385911357008190353414730492639261830968297468369571124651508298109644183147200720468872288091633550600255272440839896452607190283538597769756904671817857051866341244436414565205871115594138466756829150255061040599599422877692269253800453611753446729525281962885492918034983507920970863566294057761631236123320761318170223019732333591383738937574769364396722247667929350315700443082344138585757063205976890530946919208596278948720493481152080610722508350257073623476581083215417008232581949913895263208505138782970087734898488406472972407110302307759847815271297662606656355223063432888651157731277004401207176268337976637729402707399148946714312860743352192832256834648841937203837382954559052382373126127709487057128985886745729246529934617019954451292223938256690137509404281483123720745156893446252290394668063149892111566071761093042063255765597974128573979851624251231574039459315300427677800305377851468769231466834893610175586607427074227106529672373016756164136444372775899383501849482687897286428240457455842241688406617418069515391492229836189992010193631998953423382222234260255861513133223155304146397571140746589966726705507323517663105505026102242698630816048763390874655787248284217726467821636053277068367536716058076807870322230730561254439393586513908623888246977558318557635579814566793042879597920113098838966507859317658446389029623454393975453962617622418197740909838887843226385406197295778209132284967687428785128533749825262840850041266787145906942445418708081503661712110147502251408673977278527226585804900978869293306062561693340953762286059053514918340073390708474817728354311756307223331438298658480729127895377233818845722841615897391545689575702413966621667385825757850166832525649221206569265873226760767410944692101366907453470097587238143129545011098183456602211655283626167383745695213985556542533451115469374282723776225764214960341766335991039204475436403210589929122273191249777280558873169671981705116271395202413293943559490396868441806040202902227050365497558754280162430954712650551437477745448034895559992672175033221352606195387276291151290771078015900491311855814590637097749791501825304826119527182827970677755653086702381363416996382303244888477271259567945333215979843129543493068992981444044667949180678150928757135517611566601822619582445398239125398810491081544761676382375460867921025657947006511274193558500861461917625656092095862105309338928851981435782211039799754756329314672704272711737057043447658508556669303027108094049179948993840662435903674794934244656851613778552120661071585896435266553120024243497401378870501415591984759215620251284595124473878762103626220593891608491515378110361111264446483520246955308540894986145142039193753471987856654832009651789796456641457649553741692412095829060125418163109748727366521926096458429428595682620589325974775426159033643407314666085979645519663892644818767405275811159893238969066052447449709796400510468241072701709659128171940465853420506469740232108859622671689356150197864921577271654031657090931186139512850930832137100408360125242933188045895271728614733948851855036696283931286884727233482771231380402256701514279086983812730552676025248064954458600379702801620840009035090101306534477176768746621380751080520960517179701953684822361427955800025654187545079493499544112066040730549750998243625159476802972301450851079986761520351408797253134428460756872923023237574569036908088638571766659517789678339418633198221449530374168057504042675420026120325970852729204209451373421599417085385017343011630717232485830149190470112467728304309938362957389101272506865628135987872985270992576820334260785875164611736991990033249893700302102609493940668222511105355046692351655440904497976925523093576799517413875861438180552524873649291462180220029585505528282878063931818442084269967068347955584246427736197089256580146757023568501322342374941817358507872529498498098055653715517706317788234506398840950432025059834375729482187860259655074880429094961159240070738865984770473556749426755672810667582508892537928504982648694277841410238597124641112607840835030364950884725018005629101704981810778183991024966917836966236521735188703430071261628546880971045081055086899568397634774324926976551358150352135854646206660811200023658627130580160787510900930471905540546267346259420513333539871313705068203428585614589903236586687054604253637198689780439569103255860125121103678341132333952619657308601423769951767918467353876382433448065556006135815429575062044873853625564235777686208110531966702776199632149392518366654780485507232247192391376453025682986715457681062097011030132338079419969045382599626619369048491245256537604079321606892452780961730115096199183931131231569352433907277771170966868851759282748473238157192972942560448568767478630339133284453102936453693825120196246148131043331989815711732527382585410372967540402098312462404369470514789288131767324071158508659664013535857985531896110926309578892569856165421727564318150529420971394236287504032615258914194538185432063054347856090595523630358240774462740463318335320515502377322958681804073167239286658624817612342114117838169569753907879930550898588526416855226562709125131690628247255857172062888855904059398491673395260191684017024770235309742895671781800266837039861309666577350648658779751795150286502501657492583689738245492468099576340001738093799829311114799021484706092964068169569117055642559696260767846136192466976853607206592800984060418637335950883104142319560584984840831074070366557175105879998572053483475963610451276152322078611594795463243084456409713973563651067800698491769208777437936975330450379514521157812149619243377003016932805352695545320541532164852471449366770115305707290918694991312438469658540994190270588639354685073334647196256628486591226385901715402530712999674073942127883290679507806206358850697051584116691216326228406521762750585719087000261826212931004575421895864324474018845676440499858371111603245009168981440853461825179578645053412477787186410212512674721880098738714045269670635783775696019120037203050474606096548125773963407359748149458689547630029782789252073662904662700910304205639827425318603251285591905924021783745549266173158312359725653911770301081110026250321451151517065463997949324190690056542883713949393413278175217264816591429222009858609231792743278556401867605722609499095383378104776216472630128197448014437685933665607436391268651100495571309572117971969389958442569188727289127018059066088928237740874818686618313441530552591931231565525817164991930090366519586131253387736191494718238423536079601177865200986034066208044295813027139659076294904510563625966216736454248118745053676053904503117860123322240052794727574948827077550434165258263802518912913414169815438458246338393180024486728606204624875262134609398147186476119970231625763962738950158141069893082224556347707728793024416002762695337197320906992133948736678034001006811466211415879166608072360760343713530739453328763319156768441753826000497817731095500578362032123330715497748589274966303281595042619225187768486668417857012008927997352252997022815022500504333654179009451457184028414891317125089243544931350753721135026352495562501388370222398374961438004382116330635478337264096757475789745273235300229068124143465121577319744967582014494309941081095922713873531999116298817047535062922396684274114940687001493920866208929357838411492626926915324835464303411902272822757049527177523282604732693242697697694530983324754660198406876352504272439828423048522125673238647841353878829322943190035889715580118216769640704102800574775420133743513108747272374555803397320115325561846403956608868383046902757697438979177367576506474370740481461483717360590604063340118933784574910554138546079289557393520044103819758210228549109422792397305638103015917590931852726164447388499405808713834930607290570907732909296581384723393606923310910464901951165155776478273423443656389807250528600653130002443991269251033523655061771699457833736753379697222861112105014121019191539819504142584966803117976967096544976092266925481643621258457551285878233111823758164683381306306469168697831737892998646410735961263924811000637217983263180079279009089142427309803529241015394137059994166577699599998960923134410919496661755447404244997860866312374027773098324777590209862916443662167790068943826643583562671403974257904145104158481439216247486203323803823858117931784186423179687186861473679722093033802147004245687698456682390049603728043765434053751319498627824301256730785432140503394613085024649175501275383981344066216748181545566034549897777213357148560180631345164429201233074082695959234259374926891628981544202964425560958551668102731816381516253157161271987060166641741788158336105924574587373324444566271838633573462935577608891139789736677670611157454920161805551222831888212973556628809160853995802897196956609536572071654944894287104447568904778810486515650969472003658035314033465083680137841892847109273672806539000364398929436389759705869368287100124839450631285010478869226819128044366068682239707936278038488817397051666911972732628962008988957154548834382241374537318928539929827911095723989137603377748850340528384668587202885314665476571013672654054693667920837630275638360124064312710949500045627378878086036152806433748073900030419880946013587186688747139253443072486261182016622350023091888371995817492399573616087784042055330023169484765255114896622221148764993306498942979967823819978964280777080730585856150236216277690367317071452702843738557156250899472097923636354933919359301593001324957417360906207148925205784061064063855020591943986638841555749010076294920117401777924185426290994522151484618556573105887014991916395262402311428002096868319396664025499659262691764207388151415518557716390180808877118582219516559892652969602536711351878669427856540406121608562886167797113032769194229651904660146535568557083718123735553631276470686965194929692189362181185796412481380639672479016389066655473243242430992263103230449386080665045913639323961785810449512528727320560639566710731423437326249988770293959198683292602283576519995104164542337461726496700123233056735934150980335850046058049317632712139410008026662786369106094854548279666890517066715698357046549221361034936248358957446683495654914803537550449979810440747963303341765848078098731492019232905244132246135169742424088737043774616721589720839709210742909529169630664842081457120215841681118339465269104924457881667071167254666080367451123151448943267616757087973248705832023532606884184355658941554786189161526524919598207839173405821867018683706770389748309357009262662778367067199798158606323653615506860586467712725165422474007904180826953729147355516621651659993312524446474552702439529786982561644096019742904179225899032670679074955580688675754056011166633183200066890049267507614552861404834999902088121240702150818422701669771020517304427117065484939500425965573790671115170037238549693674087366587242814387723405732003386123881591993897712649790469013859938003772740351470269017376163356062209152523037003451491254118655824978086042244498353111968234511336255492856060589942357134404163339630682600900985558520338371159947259029240400747569546139691669735625465524932268132775921276955133370674161448784769515088383019021797218940286039198166059951506686434634513070884379864074661290449936623402578003267885938454660042932175898929729256234837242135677113259592274694864636791249126774277482074089198456596729298596006530657705367616365034871922000033135303115405597363688131600472453989104008690101131887354961491343423650653758724167475003428668081291337544639674204635584989816685419127453441252837213232107978063360087992963877448607942791739541898509324984618528899271621033380674085544595810071698149441311694218871323583784419247677010759195653026974816437876525022952410157925499357192461542436650285266923614280950900038621637629531678283520768509758976632507336686169597255749991212710396575931283123320597323656770837557059953402320483792271348109364056642599472870229955467063355746913092570371927752210371738153083670614810601874647181209345386689467599530099823638198251960622732900121597711366808813421358362647374630573758463353577084890415061466357533542805896496907301572528938829336645090526772477783019945179091802013091915606088965696389702413548560513438240754329009576474635735536527610869117709687927101477969658837672611265016644187304533474320274990950785795911947892309510986341529533556470087151915420959825442001147386077716750433728355555715606820313297300917255328124467466446506501336515634030929941715003531214942190228770360546626345680320506418743027464464067499270181346973706188287111240164995832156674190996926142401823927363977641960540037401695518494870820924930017566052332723841659814081499613982566620514517480304381567503215357539652292625683165462950367946461906412219187378131030692572198476653815598370283898276346579463549046028275929287386886768436965083217527837358333608318560716588867673141798245942607664222793727877822800787410976871301503029486878793050529052154828841712674174212633057310672885776387756880128886762298770548273421919017322292123722845296403615383052561289639452646205570282380725622949070615721882109911398039371061594414440303167352128857123885896290663441964170856168603237911936530542314197488854999820301460892083047007715812418701997178716893577929907942560576605195171708908084257042946332791823751052850434772677431709184730871498656684006862513334208966080803838901257960281669127819743932904265827071946368045362083855298740616144793761630719785568093195544427667792698077659625520635936193201221387564726167964554872292674175827697654744991473310324305978563177107584291897758569961809401092446729513757179352936210160023638393495548359003070292390898259052935003349307968194168292110909157150373350056355140036191594133347424232070832134886039989564800985284235237864035808778375196975089798397920021151349436007358143565110528733981539317736768249291473870172451099315703256183348782360922584262831727998560868866615608865307107103774178350099341822934373477324147722497715933841067398003101516056026718739084688875868617096855054988112438743925938390137516220953324147636983875502154832929399212548009484974038768892280549632975185878823174027484321519606140347286503502315440720621454022376534632406350333126656664706393202912621354600118167711710311336504572551508289362010362624437103995655556553656931266720635143824796762423114914888726206453021961169127339402610392672466986738866642230911189703098308914831594839385274043142637664952173986853685056926184213594736727148050509457571426790402382030842585918021813830651590945583089091988521520508210498226935190789552361973899328671497017131004880389633171642712450316455187060471281493589973268112574593053809284759105033387622243806128020806449323267587631707603735715534119403953492360343939304402301118126682289911998162309873828265860046492895810518809250931272885680768782946576870453682968230498057579914913373845890588851363674971344818144052020157088846673261858750807495534969392218934634438218878340137219613659518577831428873115245330931419988469624883378506792728510598403810676610987446351955311098012753779181500283301893018653547861816755733566891154660282121101050601592642972202461305355865717508516741852250471139575258869088063651873644397966299524267172091965285492736570169731081326225496108715939041225135848156574723939651500556611150572940924610336960438096585239632511942290251569744806564104598058241791184807107280535911029635741350389619479717711883661079476641300600669318768315594864559897091237111983223028796379849827743857040068757414157766632545494802828186821630400350670484507558978689725784126196706457586067409732614347389535432018910379212388876884782103332379503336753505473086122141355767338295736411730793651896679986738998790802197445397229231815342598611423664663701998657108354121162365237827732107693015012920149984040229293397070686172103518700437533052364888785675369886581205989071144413545276436761964024052368233474603608270429982061988840566892434259205332544791851511657988491956011918239547918511815203048178243883207276809415637051697551663346294037766157854983232413032448755132928802827073606056818322512702221357462150184336610847963203759554918221169396124249422311875865378193774244097592515251518184025341593408899973388017198537519677790314872339180379112325031321021904435922240425370360216776943115235060259513721910136198387578306215088426079955976263241654474571277029989029746586451343628982333573404788416140972552099957932707839871684096115705892947979099581030199655381770557875657432203760254035290686229573723076186327479513539179365127085152069038867281299889431327904828015738080881518126160118751749544637078810714378807616391824215019162761862085834439576637924270451793488575488251716717525580090751389731392925483146241796481787828717747971161839474161755919717705066527300093897331682013932273979316025396694442358602729871339175127183671743767767776624857794551351761821063734224998175257932078831437935450572375702642453579470758702843918973974844617375876224749119950155280912642058641400048415598096649157692538491139040584240448599855008614756166120751317480394891959930608665979242520556439937047735490772973519031619610681938815394407567532920558553788548200410784728512459461839995153555999612544486578394908654713513162576039442432150815807304041675818404728463331764216539862768933356195875958539673250234455024438950849162219960427391912893398580705529003428608321342058308894162114679595455438693558791100807557484452282950949828857788506568527752892242149793233269794245149573067344927045391007310046399195935641025075371459070781005242529884697319630655205568555049553800616802425901634876266954175168447743827983594372690955778758085056846019129453033088354707476036135502047221903135777324217120891945467875505545250330240893653509764513838416849956738387758058280366181803860540867994918737667402525445765120453390156967639740673622103781103992524658089007498924733776041986134636602826401694183232690815054987470034481431198430702437598848250234085325948838398963873911147117773603218265357944320842122808639356000513069392875123638356749866877022809917718545906377272388505207020238436238192278471447991087695666895605657821858804815740738830706528185977494698023714916485808096906772622045519070661465982514894710369373522802429536302624542279379259390953130513905969254918426817654199783366580001425874502702809749858657564699084240450131596057292423927351225389698558938502684173862380043944640799094560185888989501313972839976984874049258025561352199339803514182148152989710552219719865783609009113756188545755564350459710361278574035613419355934830033125574934954327743186646072117199736240799843561808642039907449987203572609767812542394199512035889388703010558008550596423253686714912206955658056456771780619533713189740329070130677075087964426062910868951687688881676494339225797919465034315685099926254591514182676315350536371073950383726652046646518865252753203288551344810150699002910625250558376930243248475336650091754841039046023651105867874887247372826842218390957623984100175514791388774895828961253013613652857153149448408282374997901523581691497401889176839774857259629195040975415808266116084663514440989880503711959368176337766267818679066325239475808910160421018473490746238663695941295172169982239204117768263246690839970324014030857846844054595060399828955661898612856832962387603318614636348635015972351944353065760380849618305625038395106029636897205226251872593663094478361297151079570309147089845943142446496211081890177698901454019249345452286030770160694105481540703241523666808112680402667445542987108518317698521085880777435672760518358169047034675518499085706519861472031010236243475320400699891164314380148613007845862894499045949487508412093311898726127133032865579755511724980676934142397309316307712283239927191427015369465672330128145460385820811962466781768202752898036212064018508406693477699277221981624237406566503764930214035738451764901765183304951906277928553555555173709441501802423391429496742117946178299940182591710881644292391014534432402975218077785989708533359409575141331785157270166116043134114757972142768734343585174833399332337243793444153566281736338163713406082462759023479254075731968242574995369624295054863919705149354514341662904796468914130187208347730257419189553661661350096799240315081067134765517418679323743559311218661145172427262720191891462585333632065786631235400133562102384722269848161874994044511432740592045615186107713730660527016048456550701426942348682766920467838928702656228896536566613432017865607351300986323680642228509507507587288207941046880804610396620321635561254056273694858669272296662870164347917076289417894600678808247594358294815852771875571519297251895083549779502475264199926447687375770354607383308731655442793598037812492101288497111510617006131923902354274620079671654106068172602791503249041863408555050919264071746028738659071778353186784766751401102353309783253674480842366425020225084490476349330673241293094817497603542618975855144889149547652623122319048304846543316620177783347206852182048336931891971334929760172681037130189175481676946369329033366462916857583547515441956484827741125258515210082413400379359281290694971791672771580911386273474755263622183000470266245923508797622182145793683895151045848397620125826690856110289507786876687174009680936459486457671022454320731473974678813620007443935111665822129460041575309743344523459541216948620877388074702389886369807966578737880037710019841378681355937088649486625890845204735813947986283393289745318033146621840914425483655346092483954669441450232987305049120062553777210396639986220507461190251893137175837797880218285598243831268902891993172461830815450067159549728067863030853407281509571385225279021895570579914950651124857638466646753423395398451489192460670942596537869601324314586648537721944251237907025539024554971987754077203030952021777522489272150641762268693542168912249302350419033204763659686217738881901743981435997204467579756934911169633232863920747692756410437362726155565471603119441088541732003879294691093515716521575104479863036615813858454376900861689498814740046666130250757440227283516791002866696973119661490198055061820650642731651687375084981968957072959998277740322267937366200628392018446138412105235426995260778282843010589261541615468490657149710635172383632738481288914605866340441351011250552580883734120870056658498833342094636685802297723438513967969749114744348216251678167134144322622235744039888606563159165272198685065821549929202971875351599811286127652948959687982901336007187290084356315076803428270900396576657380635381694899738130224485388126309694270557973800775882272683752572347650477140200791381820206285057797890556811340629724184953022273368848039993542820551763556763419821209575073337923073496435181013912030218329768515651033360388407778846486182865921296672696979635056411947375489753109628228754349333617462606349385486692416126342265141344584571060979281972921481491545907414784569954200691485009252499961372794413192179694348025625176144517527294394138978960701135457577711043335149639684410471104812126641367654535466124026922533934539583103924051254983945891356593837693234540720151474932205926353391179503569057599870581687776256492337215916531727328496806962966074483310600057145972310888361843280655932658486986359615771688540626995870211277571322616038680674116140213964319173779642546808181469782917204393480307715388605376752378314669063165676988746595254516829813429872307129645301917773524487849954590304475185130340944272348111076202288703328305815583412519128857553772555324380150315406602934742809661788836262914673127434370478882083932945102529800711760523732967329850545892730058247707711018056858025026045178380501407908245090880100574551158585894163713588012447464998150270023825763157114352363295057610996481336661650628764485464082915455879628370147456700506452886181524385696778531436935248285073519841869497774395966233866545213822753888848150036526969585304022791770842379088080245935856363030340164265666743962741866695568898701585785220799744946352821219810728163359828870622965848609888736521407186820871784611947473435892865364024738738321999982488148645647169212202838129420172287753087231127959741580255439225719946331780830349945754286366987325366281710334403257733364619613509245515584886485608912525799835206668627925384585008123213205579702178696713513295297946044535229128910232578272038674620304792575763811520339803931511447145560998992534229364173128165042769518016214570582282044645658227170898880152669716452819593304477533175562687415370364128228204748665322119845449631355434136882739834104536301612247438644662339622334385325566592391553536339526327478738603936996498740945377664822101886495846078103444649417263390007119797604520050919499069618819323735727152988897064218590035298353476368039619394912358324571024952875617862981167730385993566264595772226818465860232180734303480712279680222291374652993557840173463716531232437497427573748520035233840508240256744940489687168045883811021655136479832702500692333248885239786193031746843891613970319980571962048821525956110622989003647875794259230423441798414456549830515535347033247386921900100292161608388747755601370411053541189570147755539637851787944044483927292174736199885984983630632084930174013280280129607040982622866978886732049896404477647513562678890879012003957903172151694216104919560547034665699592979930982013522463645830449798970785773112188063004780421220960739826347750222192285355099311939506195454520128846023779977990379521172966516127705494002094752281146504555191781296593278464720830085119908672477242910881869631825914704162594764729725376421410843332701410033790901700306233842172681617672493977729422846925442195830570545824605789618170159070042949659152608022350148067841557963120248852317460563330733854789751738737369655768555535445668734546516805750704744174790031439846142691018052111083483373644767759565699005166387907281882289425964783581993162108378117738479489866956321163424919133473557625864220731835455021128278905378152390953783272841320825860373316626662917761088033600375220319107815393722929983502542550516178422174759463824106617184569335935051193585533957839791843158510450149735428571429534345196702879682549127823826173136857638304158008655157425536475683396657259675427233547439226389733691313979815760578675285331641592899188255436439158668740182168687839253376553739603514761920776526063068664224494703773625899289110549372584694333161242395256460564312681412326895884728958246012394291245544903640181093903898092580761047698652984835512889875735580254760707677131145866459526378395336509933483910264164648032620053416647390555022746471573773406278626092446311887759338982052886484983634308647100244002022237478282342480772274543487809964759178065687766252073281935701704330358858526774971503319627216972518792706969308779378736736990419690567802775278223927242264426959769968956900114547070039160712558809370596409518562566685499840850708800695502069554060131678732787754502302017272030312287868766038947985060046946671651310478186025088581543621531903811520772237364241821261637699306111336346265034102787018739273366112833504494433889203553400945492613264364772809440599468981961283486043281567563569661924272297746219454705135218418109735929578252296322287330026325272886175788401164394792754605471813089987393465715868260666806022487195415331469616772598270070543379154900038858825140638207130035525947117856642854534615996875986184114261234534605810036239906440052800572135210262158832689553885825251987385255495368174954111431787176437358213782474684999148354469060208737394116613536224159163099340305436528844061643524408842209874667169661286929481152573498802423154605514733472041662027478564828934108821447374321089882886222361435915672933642242113490225538733912015680019005571280003459364302492014787190053058640527368741119706945535504307329839489195570507084150281690086278384917923276786604765738172253245210402955743204039948081655048909694803248308991529445049740596409502604268279815493743049921550586273446995082693607932774519598131247695067840276638830779879895211790780674688891924051106225556903206692798153221105987507119817240532653290133630563106215792998266372232103989033967402190496474865377133133972559856863322648045546378491075854031410371783270843123345247351516385143386728496122633233614415054012390746956848644556204926573236380566669600510687437299756045163023285997833768206294121730953108467128278489741625569970310113202793437868155797240995635623822369483418153712997945795957496030014709997191744048219350232989171504610444521886278090756750507084132453364536289043937370718776551727014148451886813240352850035589515462220747897072567023487384427716726556261425184514306944365856511815817564726236984218537464424886988335990989859363727852787680512308480912517235045293338883522605528816068558027907461276455781221585470735264415313039243908139929519057483779413731457487877418545413939945637878895808373420504633318737554103746697221865527120499602392085702000230443297794709623799810304348432152504746853633624070090774214273527746373405853048063373599967373532865440523108595194078241473643432797645576447214269013152193979196306857832581314530404646715447186083160454485762717523568200845539205651221852234234194467627048866670760053865746632637310173140465942091028287826314456190743230285702885653994124154628928935658693244286970096615480155195104143122111925191044282667859306733174859363660739276200894158303994010773985815548018755606517553314044193250609712174714249672492349554967772850787588808392200312825867592900976393128761238857947215342981632663285293274018958127849757386785661699215428719387688735916625113912275908651061437751134477521952996238666340193536465428149419823528140570511364421182989420257269963386304113363564717610109672498694641827620601753863898127646307060612591097775736666318305666240899872550005569964195742007544796776519005694191956607034084499957293589908223944965620759269151724725376753043038591078807533704144802620435887714924663383349172042546154618842914366572689407216517938411092309566674457544322314611638173459596954199528205229383671611891433279652798192397378110849080437390901923431613197395982453433093694787231593827587280308770265222115780969262625851774596139237192148604257378862957148471453682732353383430337780890991798190220913428028822951109971705999791923736473024678808908673776132990329243638105045617195361625987206895979646475575560109593770773442039497064395593675905165415753781766473208587022223468437312736071227844040413605432979162661717787286903580091199370157506959030645815705665958416948876391029079757040005849635599585490284132130727499820061904075307496626375599132823210638542208357797485190465781524994084852566333671122190325998364395801226460079646844792618790196940273081404637272688490971569052774539836696113910497881056510829441218800463713077050462073061082613299683515275058792994604110024623245909030249333218814633230540398020884886383149082839047134321272505872494644722106941744569443262721973346580953160140070645479400449976132954385479159334597535522939024772110718000856388243568632829721111085130320485023987625881570648492307835373365829328293126133851436560370117973253884334879948125617893629027011143683547846650158462120745996419299753301395566101415130204115807708472027164978546913590311042320081682262553909655607040378536978132679609527865600470716038353298400145644030805080845088867440344033916930276570327330794128543790694072001387945867342674821800150477990944246542579698946659280369871306225122942019024286216654517065060136163840798661263823368925284366755471858945996641462791223965466175359855568402675879351799940145781139742190168709146538279676569441178699277778392517630072062114402159090934433139058958891536821541665499256309281602915250481947582524867449077822542587627539982558473016027065958199110678158032203787524916044856421108356847037008689277554821539679261303797473026456802741804751628139473068616689440974160457358340429333690121379074464503586011501409628094965028822063351742561898026635181947386109561458238552571580274890466818454898253078306822375413692975073791859692441113297469960146448710445250028752230644700744417366164201334939938664451847787652023128992269630152745289903918117365870799378349757709557565856449217532439471960547326260893415090993209230764640269081855506534954616700562810898792935057392699717211485883358339526471629830925113975216550575470981674130550658486507399424211540939481908888913643835558221962998370408874314303160949721910230297335162486625047405688927398795343452562029911295857740133312295235408643008655271227436263148952225258575437545189898140037382736336481855113956084722311571076082907980102608870955845851949641076685076308447232625140165474611600528795164942556379749598347826613643031022954162010864970067033500069932004936037665246371076434666179986323018889956969582274250799784935929445782326080326578385201193689070385332849034817724858807314796511244016080245323932835285014699955923310800304511240081702308766204490332988942423606065545554076047748250731750063406853554523030956630029311096156258903347753027018842813234111947815754983324067136313725084079582393855760283193626609358880681385319281279391186670327490745032737955103948122448784983611547790173004896613185049656810759330867325127623973819159593065521450158916092288303724791294228148060626694101391149848277881994635641582574716928365242762295590547704014365467375907924913169909728699904184808580354704020380950157559272561211600585788317339260029890090403729106063627990242373173644893160148665764049151247096579976723510942573869723940312804507865262697619881456935359309126819414728794529763175503732510129434101754252674576640018185145289079061672042770886590738958231297814766313777640675704866462043695925099411735894615300168752683429140771433436538763754924839853012148756298197721807141349372987576491938364557788890238938318180026894867702064761789926160326845515214180432686903165558974984268455387208572667613081340258223421306832823982251043930102866522568697508961625273366281682745504226002425892990856165074825822891893305847022241853088615685321985684827032055260462323239542120847121464766024837972502953836712320033017980427622693559069132251109327902387323907068550619965314721933175362000446706068654473144986988281778720583550374084652673208929667369620173109143645115102479230255419314472457792876478581194206998142098768151499051830708936816377848420933270047067222423616787355173161670469388622927143250647565402508953703353007818164777069990602702414567128866370199852579647883100314213730848356925158603537616894505206432948092111364480061096858193082329572633356700725660172844303943569696299969389201469711281613689299372687771350444176408741099003897772924102927157454987839066704860226332786207021360911904732951416017300968226479619442489912125300736864493791176020105421125806954080172716693883333840404575838137331630651478511705497159431426967128778882663883989172711281632457424183763391775697473395633699378266820160869681649144643398238952044129691591974044725172656516861949986384861947607283920650676663623714921552926422918145965592386212552181233270834400611148299077084401809765480487261958238984698796024379737379225392656984224036534588895599097971013549544426350466747566002737008505161551168029602172505964305789874164725401538593104614983074734639113251766270211267744820232478435135789557389005107368477240472647142191520874468567940887303540879090210356129176250476331147161936113806463827962223105131048687335218695414214951301819052902869090962127248910811689687387138656399988235635725137531687451447392035501421851038892894270624017771990030534363239282688030995393561227722598453522227050800066668826121797687329978610247147097216826944481095101481306489865682404958065487063946760393940648462659783083311989654828301520187011171831433564850521302880400763400067782550220902424723832171552798897551148164342840801044262171633478974990078999264473668858347815988142287655951872311144425733973241126449820496749368294297009293333841770874664771671462144443318186875513239957628688092777697710256399613141535564057508371270915122014307773108156252315905282014583424426935932044970589536546164321306552672702304849781890716582016623430154069517101198709266036823275735639519003646279100438270354838805717883250710268602768542810207859822891757588264913835593517098444942498299962227452313780378142152263968621523399580091442132223418236356244974962602689751088960717301886003400636319117294528197868254616095194787025446323767454851828029630190651467926747693095198167772096808574857224887215829201843078683922598451035290462628848420660765041205717741579855976850231464314914466265214464504218886415159604289248027296057453975443700393262518359469442356452148983273865630809504770932591779686159318003046723547779344798790088472282278122002859925396231513051779573228276888227235389856016113207492586879672103271756391016838767119340680950029028712986840126252701125275070099198125384642962551014367993818405401727775649322992582967895515378452009318200269443009655591457390149633316450758982866975556286489076600667947502941701274561664987975572892560073857421736326113379103754642849730209603397630387271480480500223287354950471341430131040090955488983651897739209756214916144160903320483300871954511209209625259697854014842967232764375877101042192099189612024027875543922366063539487780572264290303777934048853441618895120807006963955614518634295838146249456265623094817626070464485114028917870759299698405806075094065388849335216347554843062729200868487024559818299452197588335722408936502343682049176238040083515253553570257540702026857518946645019199887977785383124827887415756901968907103763425698966372621764861716606873570391326930616109556068967746926891101489977022660241224141563945794706121827634401575862576843705763890296190669553470433604870050676955918659442544528758691425502228152217832870391187174445432455341006820271302651243473348795766716031050319392420249552145519053496429126434293875489709085814225537657647414547422271686556292464602724412134485747473339569923713292045865637312595263894638506555084504948506772759720463668921416610044198529494006422581016579516359194334745326097684533391362310888557972618736770912741640898496362048006496253857599247731751203650297279539482333187483525644339088579206529004698070885938860390310205485039400680806333743544063449208499687758816015814382735283456055217898285914201626446652473877389491069349673136155929936291676751541047949501723654492787239926456924877695561586531798871513307205061461277808693526120706403427797720437380929746493168031616360325371698823990687569642779769162261934667672048629531408533032482678394745494867748588720599866952352366319604964084562203332239104243233008555317273397313382156819079193430869708078340945696172536954427860749028869809845651983620049558584680596040871446056944726827569528501666357370636557822093693669789890821851448890771636316818067665698162440598293838778617055414324981964854178310000919528696225795727654417584267423620156997301138319774496524601585043649411875410077624923663607535327378466719964690639199938181562286665027288023668635110294636889083115132212114570692794925322873461901750086218566483835993147494816886863931409666968453314404700337064806019827200171463334192797121976842578814759368179658214150065475731164430583736412300412659619112109335112226806496072392460377641243201418936983520209665340643546972813732310730060616407679111330864222492667906083846350479608875999321962080251756875554991473537051605578064713433527576175493130483616156586811895556840537227914131091157718165526227248522398628326354394824525473020231233739030103209697856854945589948555727880283391094805624945473427974843785081185800517151391245463895433269618081014125020898069548995971693570770880741432076515096232424395030863344453866208920611845768071821283849428039779824220650135040912094924522971158544418651141327014404913589590297393534853083167336331921415344015516908216991298305077046930861982783885685397610266970309204026892625950951762711108412317758845169547004775329813547462361219118351419200827838501950251294307808371998833631577760214609543081315342892626846948797176157695204229542844369260189630705075371625216987308836167023637499998192449849701571452717238586652645653444247615828154146638030107481296918218442931750945611458232443432572269884469750101557537946424395909048211809525120532920145217710407966376431806462957565583772814071446997624647817864649993819137476792504284562818267552139764667003904979532098935388739824590506041490882581620347166339326107920024355216069994125087738116467500086340205242806228582621203746089683226885500387415295250298773271256956796445481167353569170259816403428852112202002316184308012598643092374597721242638943474757652943258208343072343137643047753988127686148785759898787136031465224502282418984276555874643670228337875797272454515006446836491100126461293278170597496065675963611306275602465233473934060402279102851194554744871772957070171729784403855570356947328863738202571321465323049420627944719350897678739663374370053025958163584768745720002075087351526743963116937272653475749883992028420139303892033297815158416865205755046055726433525812974269231519224818041977515703895562430456533204203159504878254473210740391959564066894479701504955302463837749530298776279598255739980481264500637823209928226976098695243618185528798318399166060854985655696415888439764209109305293558935288319996727084185330864117714117429809916966702145468243543903337196162493334688276722220753365816763345887239825510073763747787661093907286206648565631958962980707614963941616242114767489395160996369842523633946169670966667695991687312810991475544834384849842368676935146944518245733074754873847099042370702083715019122051518655330633204438454652773024340644237033222526256485616397841176385792069403725750970844351256644261554569533813076212008416380172842788096837321283917328938972136365890992310202663871436240556909830207529393504358642378299971202741303522225059408409030021114464859639579479626883960706219742215619408483835207055714996213086023055571219429324974207871001036413476754999453385519612598857235664506585717611046293649157756144384169560420200034877942864693621162717979743941218381453075646910009394001819125664215396051637937853008391476827091064057664044905333976407595120316723174847093295017248824309058305245266416315733706200438287903770051565741188951199055897574670802906733390152188740263018782614412139590360465261508716556105961467347704744800535094063132847580300874019020369527586254495402555794634831561988848444085219497318752110356320984022288415542959926791503633490797297177606871211302853077065752652404459100781313649833710795445782990503456669227667342310323596281409463344892387968346586552541806666485384044915889785967468199293005280813115894690915965341318240746474266173293507070709559022543452566383539233090324756293154653605527388778267938243138484559187218429453673118925170466321353908063368687036577037335549917850242642835059637688076464977445057544946453502698580172260263923312108824645095479626900722321556906829790759178652874628493137792202996468456693765541642188913625283084631887151948937789641439980931932713494853742575989323111584021271108881953521967797928558119784099411311623876384599587600073050056631870128405067451009320268444459818666922503232302768956031160220100708420956553369021620268966057063281167298157632684354019986699984335808628341970612759862413252380606256397716072837738798774284398360236549011159924877568726719058650776215591724078784259844614836961046664810247194972657140933314415949698090740103190986509951384755076445343043290750733220183151201675913035914848985031938384219633495221849273988383608414548151821241585646073750455602599724364165868677395474035269501720394928480471653119991422113955546497565340493959398003288751067154267894555543783373808485062869084051126604988666651748469994811947234674525300598360607296559492847534938458159196236575938277369266037523317041377651814975382116240209243617713817284120263266283106305635454185027403615166843136244844904852820171962009750789261536091394287985417587794691732071385307142994755477103719443790709919022989973366926198664453798366375245409361022031337890686899871520514081241291703897792757183954886217126705481932106058211490952769939521939657179860818874790432322676023625920701441421635544502388807975072193082201837832879341862021513207374679246203849713157697828926701491552623373505090086342251250205706610494172955039085039968326350922568843668841723675723813926998855885469846907877151770950486389572244484691865092055098247814475401402483195355604788030385144729223699204638283572974458116550439066991279478924347628838230704145777898848368795106186020987353549671677928741468635299954372749155358323125058465655078330012241711984840661089698323433146656934708377358945204118316327212466649680928842827300102363132065457531437849198745994758716469778551446416813718153684101269008591498491383000932506720864120292981238881125233542693755331183712260563078213781984877133333249782294368233034922015227274570372232553829623568336555190767325502860588895308892433863963164729433416299287564357737211124935858254267108625746308533421798782445399760696746487942704437649709427743655297486393725813441601251670322193952975300959388535159253160996710748604152920093365198423411667243113270025298060739897432548133247753500974587117750468447139577918835002248208728901836621363438389247604403719402702755653766357023920204414075378259461053752422168439388325239945748630746113416811005617413581780622758715442833238438369975480628477738593555399492206515444935105768206734298083428707827213363628324082131046570203688839908202898518056200327252486256667517960286277662805277906242507780553136924160929074875589962218983076998766464021698834630016195433310295402351149290615164354414025449894342485027206401964741623543003064325801931659604284521766786774140500606285750590141356463446326330111125033334901765736038846525933400531116898326849429598462699382621196985276598825676150604013172620071979780181703448983095696873681290943021656554856974022497331067423350588109157157983629972390204001146549771901562822653976793549669534230747179521703011798314427750885224297921932611648048351643442931662753200730670608219564295590889213122145238828416674369909361712590496843134208858828415752172812933927633316434101046102150553532526819455591933458705064594147301120618118286213939457873681771401379221695262055512200524375927605738593946246213256089493094555509451554295966108987700873754237667471511445562259739734883812590854513107611045664310120484708070504357963823128565120840908637837267902830020406754953274640805558721209257287946641384969383493284414554912644279780858431709035728764022296679482012849485407412366922119523272838769055949343816652098466925475459473177049201762607222524627380317365139759372592937917506926042275694753550007526455935237926743616487533701236912579396273483424112816776239661642239466906001759784688982569850600236115122474854000143325415265823838765312085187385464838117424777759196803421112530364465305522385602707991969515317226897807969703977385887529225428895703299771259987252470226690072736785886399641665332496166447307104630076063852393490711451445969028059990505153499899023526715078335802851303314894787195644936535269165660099521312549648921019179614011977102619553662953088319804784960652625960474808224274850729495028946238124950309491407772344568639765117284021839198430925703346459268945062285518374019442719110645449814114799199306695106779265311854092061617928733658550831888365878736404686538284779304965165856211029614663393511653264745500854146024064271130404150379555898197314339723351662060187904083675358915613245074920187211167713635206194787858392036104533833709149172166711923542248288145432167595322807525345006879571211519237882194246214447647542231060475543129911705679906834795768422903996667644613597292026765881300245078329585348213100217291648877233885248275368273712566128009947360069987235695398082788462102546450984517901308417950504279536757674728854674951913585917132061606428646416671773814641261153693475579495338593624433360288068765417229753718887710688266378482777123186379533389458281743951719140965039665513517115855179713915920574380736895787348622283063565390722055617383724142609622320296514950773426041000281739024540580866487775376719287806208265919011940819638832696232598666088471051364769176930848734241497304172204225484159770496858858456246390448938765317002119093934273566759045631443676559506877746217264662195420314563728396045881049681168528720772767338197462601756754002871802464593018900764745433799623662975164821453332758086521947865160836648687065309339018089199540283038720115895376464076741217739313157021308643621993790041573021703847598391628934776562181992982691211972215098020746896833724266445233709777163108790088695859351171439023822864178711775042581490372681521662284924183474644243535568437696372011710975051553486207785034800237275554737830798368788280601460119621168439800154471106217499507415128480714131946548511613262885253716501453121721787079875256898488163974875095867218144453361485986719112046506362644635930948092609824737752056161299902128616000832748196924482975583601110128869239563937612505067616192736151986686827985323426733737254931634145265426822017941547685151985280903495584159482557101359038546657919493996086723773895738579347006073386158275562798030036264368602693246904531525536290049064456427025716988268853616581270714989467898852393275038615890436629994433007030725840006623566754679833559166103704643672115361244641272332124051688309621159736465234632169083467238586049942575418768272556830299363066661694021616634429999701315443613363118094902087205064334042679312595252297631624770349405835642038363534753149377283528965113798617367409804070275961356894107908093673670154263610829470600065412986389000916186149492191123375009815310893865723574319082635352263734853246325182924470951226418074612183618787955248067646334345086286970264019393303296491746251994560259736049242065910361304025975798416357144450725209330932231042217388788393891625839192257698524110513957542680199349693054879209459787060403851987738282243230934961250776277179699437568956296412661918762886960369072724386515394207857696095172942318511076116976468936019438096396094129919769168175719896637461481668389039042147444234258248557428096623671192264408449701245325072053855787632884031443830406054556725426574305287433089366140102939706012182524613779681638024278342550582871020590655760428180761526880426721965293659459587091240401851574587316617884604480436280392596419434435852537829446514219883290086577552896324646914723984506641382011345470950495402432977065376226540772831779002217734805891256912864887951504598899553507275384607724364335926958425868016635073803859310225288410262794066576552224056654597666657718076489006648414426973831312789157118270015310486351589531355234074787366123783123273572220188371890985987356039636571515723407827563038508028877261817971566862695818515007910019768840687889669744933313271600052992271387679965336586213770211797661795300213500512098621007749985812648596082297831461679680218213126251947437254734451967233665576943148002582393993770837322663938847016453620349462569806213769859600601273255067740378590469715212658726234587898982964726019654752601380220480097315660508787304992282824197426955960103199328755549097208742449080885144249729828275334930975648595862181338505639197630827921123295923253343527305773365718356089810422876199810069458573522292645238418568686555413277330079567290383357610556411146860335561711234832401016177661979938442198240079080565467977133094774915068510729014939462411396786220215223360267022417816360050791075730570983735475963102745547826744569250243129253441455815509579283105133543346029398019159507646940536481572154818149812341786202430523180311445330128928137632825869874747691113935410072909416589440793369545256179126450352135026003165211013193862542802029627362676263348553725992379186806371162450938410922350538743342293845409609992913162174872753400401156884608399525262497535250909033313721733998727569070923383666416607387089663403256764167368685505356633084794106718127376957883352519098977919212673174533219673315439842166211350388276156228232117797309848667911424280179011041586016304236710120527759448580985360451427558620053322014355328789118112667601948202024783128835545394686773731387403895987525643906807919942606574873720327823379156772438298994484296494907098306806358894563075156237532286873161711673636107796920244338603684010833225863817761231310518606667741502974131211743417676767685838657537036976860487525418145417306329138921261789858379564156534405093877635674747469491612042797495563094113659135627195752891993368751626967101176222266562886054086926097009307831364272551020155182292945492960793189533775674638885517645627602683706385532207813463382853474347748493517501828778940366764309933667613276455894449048582175896372328907584891201294043113398876203280681271196268620524905032045260792703340037855100805995812927286192948360104605970006447560507263037112844370243267595625143123939964479397688994767876861795178723931988601793646015811275444288129219879384417054146154108252712965992022508963240624066024151063773028348121598450358502005660401893722577725131314471850253876455428461157630378967008589520856952193125427394439251104304386003165958208847660092634455599161832783069247921883878281829718608760394286486198293785796329138220547366837914966670818356346326251559965668789326954626180877461415841121337114252590121028904600224401851405803509646315260041493176818314472959917939494746583148458339557291270752923093404598212296264611214407978825823360967203523038886970211270749572326970446031974068337173284586858040730287688081474182026901778988486120657668169048902056066113096095812248878908857628652448342011246456759471066889684390631148054650133843698387336588700608835869817969786979161414874088624679276451008952625034341686238011751640936497575592281767125557249022095679218093987229288041168528879104739480474424831729930764785957157725743933868974007956421271643891467765420750499506933735616335957009480185121091938782237258277386772882797336454112270165159682616742297273694445462333081923795169116950239785491959706229109815823287830945395578418491557305124607159098984326822884181717557004159972059161877487251364710076547815280037717838777640040892092404984956376844589936604132381963900429162700820755269967053942573204345915038889806789542517413464933839040141001971661234519126923817319306471966651450945100524767269729098369079644862013308855193793197156596178765577996888224073120316016408429257306991417324266087441284669261933254463388695085016148466162690564198908142712537179048358464086309284123794578115956537232408469512880744052864905129463209912258255651858261230692221759908942043579811889848124903299760230906852187949597465611920391745994482541276603097026376768003626277463855535208430441822691910964358130589142060949700666675320399178361956199912494711147450227199569717924579166947141696711798121329624165234089942428376279250636156808804916230532544317185368431869395123710775323786285412881448504912380281606616615488030659067061630268701745875762612905423780587613931316198580424771670457166197356482103296792690902725476195742132098417099240965891453244438495488731663405792150936856026639164512485560238067890260272592027826807515175127174161217498109313522333932677050758999822348713541831564972362829409586154482517541454235692189834278963061671927890794188959290960984071445235882557745277835750149980883185287323408565068303995783980441962863958820041790420540540186694946502834677717628926684595553453029849752563639923955373706979042742666772420813459818833642436634798210377685888351262427837870908229451618226330828370431659787757486268717222151998293936813086385160950392811377195419793332460137442033422600422995519417226890295503262335067567567911895515502088939451824500571567049253730497370235064571458318244236218806954072406897703425297075041671111159109797976903007098040048012068908178899211583629979318150571699499927636011769181578993088562910949716858422320796761011134631942740565959293292930062843728411009404254075610143889758481176286598132732266963319277160975433211005421043636146863001689133430780147518683524129244971571689391025348896138996737882235042583337546289285697351282257834907497704230442857999552290378479290328895985144555684789008142679796061154011223307476343461744775130755968631410047046247001895233849051969768285215463317803882834126583877555959184378328852198406474323704711834603879159408936607923018744720068475368995483929764468230285287858530222545294022776362567165843138797714828987851816599402056264621977047146550828941409433756647402184568334436979956016356868525407495887676473367683417233505652288526035529667501029127312207253719479176501365287866924913499729072639292619593905879384874435265158930054323180275342241613714342401812268063546154616531796841138405449921088417260278414452166913779249198855301105485837050817570056405604807543551149226797601648388524928937369997287920669328400953726380376959675478782662125446654843517787365817146435784351990292297231580097502003264639230352129908414095450535213872339100265814942470806481409334003907505377401176648938950375215047380345491025638971108949086213909985761175880450095400539372690252315599414667336116432405033121463840151958744679313579991361006467333301049660120076072087012835199093891915167829879409271097955805982471794746266768974346300230882625467843974830042243652677578915476102182909545906557591582797749650222617454385304255703430190514708392285373637467049506110467161034440419401353329858622741049748918885830322470657732130471353682313083100491514350257198914149256180474116652477381275247623760398070102105589207244789265670109399576665782269960143105423816127837308255362076630137202622439654416592353223978908844660815781868917041510830694203773006495831022085309554494682599190524191576839094764248379767808928055884052139553909443595438750145337540226408217932801928704907296478473714628437408511914426619357288332956838778704008843246586551129572031615550026374954792733087846456702748560504686461385348020699393312058514850585357259256622471277521231785314553216749477204770517414812371316711893193349562666177031170497256025980334186098307935859814566942077028137894323767766462010119661490459553635879016851470304039656564592652758908573488757442549730712102386262698139698219941447663116801064899031300335553377552609731270756223046488756345856528959068603739075634498510911447536791728715202928934116102433623782856240979031389670548079708776915403037123315834623976786271398560520240570487087938758281463172887010320817974767827516146143495511956076722469754932967550126893159402301956727599218072505185586735117555390342915077548122837775459178365730566121136992416699251750042776431236713431731497407290713408116326262753532800784820927874755971018089763185849377785498408342814192619846856194939256430191926291542761602928961670412460217626230678961103411148225183724694285845375058610046274079439688960005872949988450660751114468989995687293444665402815024091173881386041190796903520588553010768795075135009763058900490486836149378678469374619496197886661916893628670621227884028009014015930874221221767927370736668698459342383581183179562445504804080267821414802929670513290574380848944417251444449069458637837950400823180756277333883388211154218391822723517814819889052332088782455090447846178343435247293317369507653672826524577363711155399877533613537205816141978636795977660492138683455075363016500268803491220579584287532586869628533182632232233623633449545059285653779802869348724334794002370088592875652773338242593706129668623366981069630274927730387520518164111670137004566729397252458428429750260854977478021712320184344079335223508349712951823719909606150054372498939906607838884969541667495538060889658903293721581239445875409644127599597920716055151326327184158878504704736679105544321633374143046502221157015651856413552527648650361286929810923486687096404979614881064153513065864655914466196149485186794517643622618111132315298312696096916453731376364844932037592986019496482026559369031059051721159332378178910352506397102065100812215449267166404880345460880423250562030440146885940893984755222770041218699063280487131106715197293554027417277244419077841761335596781253952447124570575116608368425703754656240119786431952629646543169736942318829524688871789260302109913739070446218748393972401366965627342688697014791938675276547632321758723496915463164872386780987405026433073389878444822774173010157134091178141352127986013196429455901504855161883743534333975925822356548004272960078222211437015798514169279007497050701853803446440046096240133027898386437072573942791235706142191953052696294312640125853810851185406196334307091259315327264581939681917092381489619531462599925181430752829577748219554542813837590482267730950513526311406537588346042273354504865353768706722703524139087646241169458736158538961092523217384257221529927750216987281982564793445008168818721582971765721999452177081553761891957608511242219567179636485603604476038115845737536483785123800082217200122000954304935565467292645428319280433101793634633686335578145554421273610577066603672148692872648409101528902443636564294253074538333027019850018170425830857319652272097684135343566398731622625129685905627197213292049159353336925345610570761101340985088611359140141747431947254126784669773895395553269588199850144005143977879052412651932096061708969958367568123510908801867389131567728432444662227930473077889669256634969944903887332100277087390243569014126174349802980748251175721815503544075447477779393851600545968651341784653098631774820336873217922722902874563838093999871648269730294782871915848183740505144901823258078669827193652550725719300447308587124048120764982895464307492916393271566996497114855400601320860724145254126614485717366292411821396328627767958476609239044771182672929843925020780469702102614822817997945123817979549886948100599520398361749729119524523909058549815647229756705002484185174732300274120794393253665710884662180533378726182496118446730700631002777029046737501460475400674547854045669026972522215707340252718885616041900810359695603537093309658197211346473736806733305428977826700282633991797063102823955256305230181450247466941423125207842151419374725423674720242323286460462558831403429280232729008193869276273241418255903747043493091506673939908378703010814904313919334958100671466041494447372324557624237865017261791970955176296726345306730564964563822556387897177542010148484235961732980198010420474697448921021698941676199017807763676135991300783556824943826391247927446172804916314961522750501582766656904921850070567849621103277519823489502214173887200365588896000667557797443885443698045334763842908683551628333255344128409768888267041332132100517103613712961356533376468658323168027714403922639385118943928233000217214891378915057752269489936518293000668254410699695982504798088716477920371426712056589569287731760618205477701388106769452218596688341488839441804076582711842626624037724433296169707980566485037550242960203125357703278172109442315155891257459851340579613227313234611274210974851313603738834313940117639447061456950760084438519158248823592433947580042996643583940360105059430896932470428609011931090166709637098917944064880108327267450633541533007106669107358490025244415989195584074180871088455572071302381735394590794676708765240269643094657859433478700996677909449950579757067652144178937778020698422092297502417871074767456726498649746189060356339361787973869884795827141908549962877255364681647637951694330223875356502035671388802939265373503290695369378427190962215052352164034285528611248323303192976204895462122869794539068402146105513396261562292006612012029051828409810791163891006960252607595451531487407364293929513085598707190433788455243963487888515216997215934820645593112652119129338793024117380941445331470064084904852922868143498811152596748215255738430071742986879100625703087005452782117461149188195521948145716532565293274535340775689276130761958038023355567677982594654395970897379624454870163167947831706276057020562655696115825657945192296894640434643414006816917206542706419996158088796248743424819946578899381653937785360382019227312271452446165551226924958880035556759647702488713755900118254403947980644345092352203197879317254383019943428616375532776763829062417361748194974757824548566574048236064314794578500286919268527419115699109545366790613986984536124408705760569994738019605012580860166532336616301155737211104628101666354891801350335483519730869763697418260603210687307738272354657949374897446833171414928201561501470400298664304604323629560189238219563663310336980294003556721235591284207543821289411130067819518436547054514274320618405677240863277386167287608855523940471615610114497820743097931681804959423726655233442404867758864939814060184700993124158667591610673548380695949883415587686201666293045965731208559835466182190764571520131904600092722950412582108140371997995648481530781851606642315085889107965993118214448301000330773505871636161271260869486943977212354641140538346677725069523225558107271343905515053914763743891326671441450753507474332870584756352248369848995832306598429769926028014163448835519182780926136969541795330787550063653404392133436623075168439505342200258968479588684766399161117927298810113787085757514076748183065545995049257148205889590384557308137680517526150168344437496884132245166390074235247739634528127783261388657714792224915245374199195687580955910124905230527309942799502192599898573549532298446790523145116180312441724807144887465463543957503673927453717846461481992144949596184088582155513222093990128479307745577655467789053717728461123221125993888141043949467920380282845559020951167679000455611309146238003637605746332346218860711867456427499814404962434776363805887625380769858403620294103580100290364567396887977412019595657477391055607409818417848376945058401123433441903947907505454179603104683043548855002859818525861215838207212489005526040745867442759117699952914062389631087504116910460631659914636128928353690193099291432660919883216671351060397274195484643806042314742940200423329923677695773219766235419028335183051707100204046212006811689232411115985856566240607083457320223532662493720421961412894618340661253852878195678415781656027552692061753757098182160414428243730679529489498274865844259795158031096834061939282848307039510325856207571544001410326519625642053875580686630970097613684714046622339964140610851900709528831247021318656561908831952800083727986699991033380627126968322969264234518571052008713304504779424824113318181898344654138577529476243874063278873553846328722566649432727063315857818772385596332078376314003450531672954196661193806213089766588335548337827519965190412663268322473436238803468585949383083779823138200364604508528016860775442397006989267823666095349939051908825268697887031147295345962066258625426655107622552251822476664903745346756623705161816395461949700635836334655318134659064196291076425535012359047885960430079690173267840600480943927072540278689020592429164823086488202405271653720874674297011918600035031297185367978406146837616080829041677835753265029785266087916507376171821496527927639947896718631149071379948204625230635591995488521898437069834773366105337067638540152549707147617372256103973030647318891403824577271507673383227571747511255442606317162132178665477928260297508329638127241889361538850410992828787917755721950135237830166518690525261033953862284078734403704030608840299898783734085342442281875018153845340708529669708773359189611046260756193633712119650739018319747375766905364691755316410058542151845607716860887839353939238473879266765735332386954877228452229802901759003671775674116401907741172539496908442182520687578211601545023386762820673072115656382569925957383276032941632576261166092073616620243044903694693751021601340973412235481069208517715366146261299743432293856572304048860653217277487312492311026374123133861025361240770832340643282623116662177327528279097850395737483979739796501065565513092810440709340259268885859969610455716873654669135080737029335963627529059016547039643265303373734847859354559454048822509371085254170748738372811406202731118204878436367795621740617255172748055826775767331718607555771755929421676427427949608208787289903846338837410925319631574197714254314578409470043562210968128274096904461794966093946721400611155096704149332295590860574785767860608635440083163032153220598393009610251776777243029070613170719638903813506246462720090381951704656314286492553511303639470490164144085836067143473538943715767427147866786449227508181082185627126621932605248866743683992158628649920595479096617433250059055103951612386618487187008039179343266221249606274683372292395999322118069488829148330433628106449243716443554465190344158425235797821200401918317676339321042415747239500562675189278362682095922478147045755035304282791715046191753196423830713001542064918403159395522529893701461976716267879890275392513728860048875574220639295707449586825319438325175718870214487453811231998371964512404486484237851183397052605396744148677636435137604852084675761095987681643606813192685537240975471672973424605281790328916922968702161543340624111682600629653038235927211961096950065127539132203920615757541229977707010585648861521357811802191609276387834808798165507326552549940526478927520131114781428817536598530473998492707563745818437842251004581293285910011457806720091928910400521865697027145764833871339049829378134886557440755999115730118162535435550985836855168158693867555941670623856648506084435986308037332336041273389742320621622539278827298654146011127987987572288785380409672510733498226608972120404001946308148660586985375844120066605677163408181614102944355602318698953135253247889268773826805421478176779991852447369787039039107206105460258938677500555026721675980974517428643757723189140386941942942243755721298022116525212773160982358929886755963980550504749756936729076287700089360314641721512925748841227900578446126546252821495508872879761316516578725581948353691644051792082026880443753305029127197636315105727639113239130957053031941015102862537287041120903276233033168016111553115638640461748977606827091402924804239426656772156048675033517966517323040817782226596342571951633829474971435781778837890300690436928480165553772320562896457304465226273858106097159486775654061528108553980934842002029949165117265341558317406635394479485483646628901182044771673890014929836072891424560730640698929377911022356879231332301788263930193025094137135379418794294380768113793553537776495578397313849731643198729043893192635779154557423375846629900170147607422055665209927143176639974172050931480871061303468565786940060688584287480258766713614155441782338797407530309007224863565099148608906885801947140196646958249356498206302006390407643455057212676225353325379639018757180863850141302749871417909635890715178602248421495125279998053937088166147963237275783100394634378066282275389933235681657670330435642041070124995428543745822324435102377036042566047078474376711151044055519960322414779173503310265365504435979454932509141426058807870977889544810571892423048052381347146511829635285767055753337579902819367229241229636734337492700936937828483182365795100809411118153445396359417160253474088394327928865911953799674886610134613943780144374809388322748947751970112296895740893165511152919968942945155322661907229409237138099297031952232232434925119686732616532295285349945393386791109815600475756397986461286413218832929282705251752739098971368585298597477729906152756323041766379559934741478316453653122792458769999981761471544977242413855033972987067301540556004797403703302982591440841244286577980099434553091420380327492575239708324113681251696057464594581334473662866999667274757506383813871758437172241911282521088667998143274601213824031936991785559888799212446533101773393053751195344415452665080841763278283949710262384245574217491292446875876898691611304207464827997592160716248436731868596714493909931884592246362073427340117285533399118504912877642062485160166213062825541173351854361787029946408577695057636966805714673554202396379828012529061038409920315426525596663637288094735174253400715127321915830437960902834214494509748858472222007715039903662349764768441444493683340466304837280457699268557322855852747779866414877552865181731673974683373829284160915906298339826505994232457055347060041195787125086944928733760094829274069981565981997143615259908906988066276913056465301742109046830313194681279867545462176346492500131525156929526420539762779445033121298305799133526756217195851168593336332573732542629271284770119223024628151132432251397280473769034100420087034309769218038075054443237826340382263342303537557574545215229878028778717888213493826526067094556450822027598375737606336182976061961124681113410671825688713718221366399175800269530760785728423549760643836607639769884430388282890023904062610991039633088864034150308179506615910884863383360814287060114061445270304593675180265120854329421918627175964897420438819229869781473404245599306104303978679089771769217578966774432511231651744741359806110438820066891231403814309447715069309557735543395124665499814351167396123218001292731985697661061892657053293485167740004837164462765202464008771127439190263372838993411154235781946255182262320555054805171158225541479739202282164664929620916223058822372466671728116209876332940194150992268192257864003203185621909804814604141152928304091691663179877585951028453328926603578238208469011421609999068813946386438199439563812360708076599271413185826923093919338129925386474153064878858723965257360684968977680265632156334565991800400100164726247016589211003680519935099899007366844116908453150377365905363368223316917145991899531967010753604202938062008627516989577155062532371560009589198442440792657795767755333845193720563608404278677035430627324660886636845409679947630387555217136890158992708636838663826207746862662423388296926830913987126248500306746789820907638907106521244931177800001618130367895300110832854808535822936518811788338146554192014068785153226997058141368817260534818150266327407672725320930236410601500184868566401054186418282709724369915632991464352879551760130710128173952382608269795152119984092575278890607226711270638066232540046757123368929665492168266341852838340677694510833324749595371566569714184937329993411319975467216300702191895271401827904252023359836525433094623032571135202071901835659742023179084580013677217883686299568829460722841017893096065212032971361113202376587227223513470684733184064952884057045069059449088064696645373362529420782610070256241226894067528945104087831204763227545679514106878396143900652508818884058281643010042384736477841295374368615856177076106612348827220621509256924492973090258733730805531108672151729369428438308511876110326059128534433746895537923031381646711659625388482393430363890188990540918345300323365591430793683119558009583631454843807991483807935063019258983695580222626824568137997199738001289894001802585680229347524265381713754929149408223869465344881301343276526439326670022395425653728544516685332817870009608181280066197008354048106780497630793804495033836486036627103028276416547209720594161728749390001080287548461482067301618806751624495422418254330906245111981132199943098053433920009031646149417086133495811167306921682877731560732634438792357600075424024267791508046013883832218568618483315925585733812343320376998749093650342245551070515108063138553133483129267817524039968049118529261719757563679938480591256165007779079010709275292323527138198425255548143047598443862002771591319820108196151364008960475168913919193834120532479390982909736174694481536535753105260896310731109526429028487324998958166617509072906154586548465084549836948538313441087701228163956531530326508946648661632448124021160131491778821960978731723710601360117026359546433821756013403725354594786030443201111795902847687421039077529908138145908848407097808635351060472108953355405930666301410056379040468219198653277089134056431163414409290098456898997384976005492786333362928304524165204213523219281430202424409971149875305544967189111933439277150840909597105769269721973981914182329956516614653304282989823001153626250389503787752591020553997174126824646293320504269561995381247143423679029369825418646615549340962073302253029355224224195478204697746179512051200223564128117985148286008484882919349538224649171555121982219043840810897577523239533319719371253904874039183823416733782738409564026162648036173354558925545371401791711590935241863799814139475915870812479438955939750315059123058512790472412336618883594272507187324957334207186952284931146187161694846745686712741082918569267593848553325161805726978036544345750310279855105808982705784740250117166961223752772392935815193469378841218149170927590020194151482018620114675751021102606322730344720748598501957811723445999469277063353330509327170590582124912355495457970987728230472362437422296204450323635255916379373865260333873229086805072209404013797789530002346637899179379187431773636432413950532309784517472714327899623264589390158064777246057147661303834000442422777128680643813266227609495928671385220768518529632533450672682490781705329548952203230881361246133592852943276943146112503506370317629516743714393690249059322863969962420329929473507566598104417885121699739320016987351355883198082658369537317681365326237794252929736739060676037120856848621532875945989706605851761746123034905027554213149903293177508068520029106569889707544265757849256709092047736161195706556274173784712176379666238868922432687140018227058515772133003109205251913879917168414946199849183985291429867881317964824266296049276088613309458536845371398058716414187034793888002892982368600963347195414645923153083063830017548093359778519643217020835056018408850440556612531736211697331832936015345119915614016108918172606204333872142930724888659357960228069699157627083611343053824239214302409774208530770491450597931930359435688316444687904420742708946139145019274125077882040789607913650060780495407692442552714024280428804668010976802069528356920609142028001471547864098731674045254009522545271728688219764769526219386412116291934980199811313105275322736998303513846604784831136258221933116153046686488746759223357314439176879459165595691894889408203342650931851022654799214219641164267242735782208107350295419380015445580895336390812500006422187857887047080623302815164154419766950527527697482146098595026767691339651570604591236351813874803292236153170379504841344222497021353535534996687750633196072143085402778799351728514359326063483309019543741832944117795997438812974972132942307060585645383017635552775562928466003541697121208574478528786273501584728575518719888985606998060554762773002604410891119419752951603380439775298738769421015025980821969219776299275541037327955213864620804293560940225688039491913871785312124238590796326745927315282221151393644232092161812245731966153108501462841231055656823196012471152101552473311314147349770358153565947826483844652786702272701676798983328645417778383277086987764970365785031273225342447662855211482279854130422039838256671860606642537178531000440405130241026463507577299352639841272369180199883593281319840710058296830506706713406558709017811716013417032765514766875511539177474472211885596491376635871849227993592681294904875705663357786176736819359734062324444573387955426689125178990709560268886064779847886685387070813277734400149934476444729282130377935869848478105620969181999120182609443941555437166767670972301978298531749355864701744254423669197469463390537654849201399346938709446913372448919799611227034369544500502402858009149062749662142154295787473217406006348308819881984996016584040564550550278465537273951416279516311408799814813319106434723065015463296317863457492474181748448844786388997641327675109640917143489860154422257127144182730140614567726457822232446915869266501433893453825037820615966569146463012586011477064858009125681616768821109885606048876334821095323492462272568829017511269583414497758157144478697961780798688569678674891019875895176972623407741463532506920514086014717133486159727591164438415098986845090356883677904339327611826458963684698678322992279240232666602178219639109233031348213201443164982003197296534330499686606865724227165653643703504332422633653510635452283475909867669014843409842978854462796297076727882571852709761375375337331757342658812587541528915483354049849038336849400922503121406276036918271066793138375770950567468582805405346765838836255798772997299921424632942539449055455918183621276726524196326208187535098834174107931805690876576323758688281206652707115173985885635950161297712343255102803176430560534795692352560587925750169226506292055400192077854371906189139117174751983201541399066621154000109552610984352317851899525512149711026725433768780708382873758088279961750421711856197751446685193514976282903483235136433232768211624531838173049387726221641666600451307098238507359887688630033390636349184589665779936207177256622010250145846655707173428695908933822366419696069962329164246168018320586917054126954613927962740854306269200744670543958857555410327822186537310194888864109140257156928428272909837472451236572367819611559470078629541394299370847698388989805902485021051795182975543061105283835832408239367377061945591898527368801644714670059654969619589354431255112905711890911021090240916271566629809319332480591373268282704892909412639512100898602621451306754200722329478539780181940576784843099570265420739831050422130655518300276075584630669397101613778316789683528751144330986847832011306232590599838630561259983475086357706020428202553116528100721970960936628999383306493553034213398015295241182369947690732543899314162510281335355286274658853578539975559343196107446048156566324442457905470302657859910262085576854480032186913654828037109824639997970326213692461300228825055894045626857004079341948306022381912386428159901568116940498570858177847650396146379775164178867918553898355807864603425871749420331401389346161985768165144022354908427272312609757974753479645669721841580493423504488149629259683397119719032628155149699107752356639046156622208843993799102956125790496957226873674862215104507182126121680399986992245122330214615472973095552127353129174235095803268935717999405594758376550732737827111741060195781689868813529248034856212259429168660645080933125545942748058965842944151832213705439206800322543105982158694647922758309322402450570304774539362279157847883488180102166565572854098227643746269531251452059209480200117421567335159290938488892243962272294277052475750894881972841051775659071209835410700893252451498971996221084603779668855360271694152485879744269875772862165776108088945261521603452209939870796836417992754576850291346269778854684938886726687219547840743841293044748129314005955657469128134068790667111044689814005515626137832174774378778727598100449591159074196846653709179676521731650627510065380665124307102165176163343655190897077982748607922675137361222939542363981140699419134350434373682666855665344663774860129217698750429257794530550998688493824716977614386572097272090645852310665267595764217710049885699040521203721580792157653929425407132584541588946713859084596125636491323652380734718261594144083216639471208356719513842760020066262834417321094086017179328896068517013544541710398044455555221203105505935033776119415431629715294862077212234106366410952931898817042292914058328972608528045612979656563710628054995331687149915544553961553709543836648398978885259331606374655544447929344490568560370595627075981334569389060500937450550717474778539138992353693183137200467585466642984020568100680001387367174140858075763838622849951597325187301631742290702737208427207011209414913416144827417543323955353485118915474237833028081498065251576886505140286447876711982371448926652158346572590743243737318110397291975566399004061779354391408326264081873952372282973537272613936153962624084206099794884843268177144376450157577652028499371961484062106761779517917862677537503225754542646404422289553481036552047294408477551235654231439045599707646483853829832211158561533361175581749915233609268480974248200321880097523731455642835755618480482788619897042614740149205753043505722487384950728185562023384975281732242884680438243919430456575603613316334391938231177415867371201962490938035493454223630231280551153362423983599269317269630858349282818084082737313965698153725201237211635316091546208491614423730075477486095195785427157657372123027983072182234900888075211520082837098384605195991601385181957448484868642123918712764081999036166428378356529413840044892396802533508695213023133952036171670144259349830068898994984027014495976700748383290988920693677238346259792319498136996172369777808482091334884604658712513935466710978637611839794892466660594409853596139664363194795683318493519433177558860603789243953515368022063774326035531035743066782653132192331025773164018988546857275141878952866619309590763818354732370807006035694328941204854167944676783711117273401875841481413640189798118763467318241887660665121779855731219761176550664742960480056908477451852632448373700326132133881660346868968811641406950808159983137160323971456600158097083177431346299159409948278189539234365716207303435046226385253803540643594186833813116889784850766332590726398634853463406948707233710696720221813571712244058606862346150461256642430421966199943042920082967470746348712286128194706232566004533014190701799442671161059693694844526947089360735894154847609060280173988841486554409397317400389465396022628807884267285497853763994134908490414271334734252001281542803382904036830496190716280850042500701189777104481038928433743316613162667464522965355333987068672706279704857432060164533443418377055096223318768188342308855978942638322813787394967922503223678915973551814096556584664364315311420047242887324446362157173359573725016437415421597781349377808685093314046503241023475965177334227745181180700417941505217321518266544781662314032720360122613462854229198145609708733476647873039832898655633713411349053492119331101944475096271511046586926388969709600085662189966238867258016367649777076028952993490119110912594690010128070916359486828327248566030818848005232057601024780407035878775884295782183904789556824572481780219757181051876134746179870801033877378050780756825425050562492392456194392568125004233204659668399915296109868680338526277700262880726040742046593945555874330580202803521425622686913523576484106929817604686602155009399504835146921567946084437173225147235051352688999991346000152447857953336560187896803733502554149086287948246793218125028612755680986350052963879905631295964641236320635793311829764639583564705511185684187984256083902449004663121144269821103766203184982614648456475911421470863411192347865729116336394509634229853329974378190226176896786803174948106440207686604575861288720439103682562657139181030397812413862627614084082606662833614024831245352862540925961156975522967623506860072308733072223127263886942357022130381313713830233981565070296367521304016054863782071763154760631543287666286688995128228652671024098996178531820038699459470578357788519695324644581771770148550442641633637510609248734670211441543349244794098669772133436512625886660165837344433124085138032980034867380146714545620327140878114217937973372180053030791884966665892107306753721758811050517635374734712348256827146798521052745956941815565232945196007329022653394418137364925730622694037834378569700499461691551108064170430251360929297252438018059219246101044404889959813636680251103068841755368863224004719598549901254648849401290465735079484910528985615689715319478371911231715500678675349539619203822673919270848107017085341848009919546284541292856205885704562373227148162184444618116435960970091538965375632386760431387494163582787918543376245255497315372860104189867094399007840784936302766340168370607035183929717079358090700008209697974421261850564794382321315144441462051288729470764772400380537365963320562468116799289817038456318582445674188484867253712327571846496149949093027266464228211260946051323394647318036995059471568743220867746977479460615152173921939996111917064085415954534844988686783214543793425419542394412216513496259485275068902491299513456311454467190052363136164400883989768603141398498253097675130578514473880539320777840801914508728774622041821060644134203093716218126421613629533594453477046633977065910058544719707397434604029742496640904629935752168481106686623312649487605219436747381356217631765811495936208143167835262610752115724118688396492783793080067068121041064967310859940455545561136402087981608880542692035872025582846561225205951264672328520162973560773212221817791335456732747446411500764407911795704142527436716314978190184737364877714590149026927036459648121818249500942597087420413843226999162897646637681385039118625525294423646497102895450306942419899642362855462909247427405211484723151654931502605269606832364596912458787767737614598934077172271944874892583840739907033796983164594196413711087550473937351658915947935534828670447502959669350849709347059588144323910883607694816380844530606048899624636586694854846999517903254924801968234933905135908325947665494726608365715053402953631501976357803029195131668935637166181276392390719191758039067260056617390474595102976858965618581382021101322438544477424737941112550527012431517608810638329206773095341198535485573134826413412981075537641651554028596649945367358591499119434427192005359575794245938817675940742460700344595069696015822687556412868337734225430983288779732053187834832907768933756156923902877791815625440998473510165172336433828288193411516952103992310923828089892478871158465073293786500935889172474932147916598139150684900299240126209746403897461620521118649183146700558142191981053448392223457383675351635385644240896157952339995864131308638467447872459254487547458708330798667260584871511677336527362226511274589249321714684889668402997357393866140328815984869526304937461330762776789875768857592633299481253009772245845840438223124883599008329850989227032808975874309326013396568147781244884862676668829828954541775895567561025410406943980691596962743493284357127826913579468715498616535423568496626981367786310707211919042913194187709301337442404026490262242066106078036707831637948290594111516383110022675518066465236222172004928775773683226636134102755939121886914144468872633125996905933393502243675402157434698855264390466546366977575618306920682635491970698869353267075537739091308014191321519591052890982377367095365355465023826600341134495537033941957243476979078831791803124695101166311367081627985491183407217307643034391138810058286040296443655682953846144725924442008754156588502679571301351719481042625541188669488617478168744750367638446062800176049215173302587299895947651777858421390959272637639040134328634977232317447157911546618718983762342252898066963563857541929442820142467594777389113918282134373323987202618063521171203648201604283691925086038481025067268293967025696460369452344082479399526033892366689864646249295544337492449839265619308052202939165796237714864696952382374280279229831981593680574091287776129648753882385880527020317744801949618167344543351007577434240048876043023814346113547049604957449134742202044229132072445012548370072452723750657413556843825081379847734087195478447409368456055331832955904767419360024740431601306321748453809901598634380917638973361342727686817342600177809657894414436433724179251700706507197802220019312851246225001701170537540370898408309010851094804687212222969037061187704672708136163303603289310245514441560212136082791251400489563940868514367339740978870411391993613809764365392524024423502901739865708687822875523657032779514247932173087005289504715751280201150795011250558373986997454364078333703101685519946435140629985878016960054195938199277765630313302070497452591715094792970007403228491376748887928751468274000883188425496303026097622637545417802686230276517617832877887118758044626424557770040244898118155618756341312798379424407526291100157877567737162052826576971668724429773573205023951380877823376520116327800548195876878561304787282880376654172113453492602045037632630938761051139719012769655685802167141754096742865559454786643266389818663930695403140876915201311543505240903432996413796763729255184361317606445736895809747057675125167790058670841723521824666436423014197019874705923405576723765922146258534036517333680201868358291583369294360750783819825131861845610680491836564315207774440334144205254181387633236176541280764320951933912891765654231992680996787692529630355187182603399792945773500437745175489971630770774478138437824907161019077786528200075651367689316652693207250568768629624163799160968284049267628797781352852246555229182902684136676041199571307962251127663274682368184931218602551588487335760244331882579610009169597152561067800939534546167978317948018639417178173637926473614154636469092118900237600511205585887854424542556093546347339016367582841965635867711234042552384094978343946854382953038109926597089989943827716875169338361296931147575213721453881324155376423335611868645888468236725281179032842121965413952920725616828092245575969883565821792545764854408146229957357702556322371425963882536667369840626398082507509795465730850491065062967828864241724860720509629046897277869351934615654189705567070273334835067283325980370027031382141655362293125380695309232618504433427076935006864750176096827037215119150443530380754141677649265432532264358955520376448585039445778014778833493555894749603132746822955145339922266291774533641066034912177151967416964845448068131624734113740419355538958575128033667458041269775452664097811514092973636702290469852495242508317902243372336271308563596690974565199010682111815961517985892037097961605213873957277533643550488016531118525592028226748680773856287808574998037996549199047005210106990569855165317784523748590499584765386842656489539985003198813898248927794722751183509125299976831926844192110259540724363578065310756991903975821605998562516384183923306374907399754586832312265904145180574309976122463639257325634132506383743889598825786782144272100228489776733557378060994220308532372068283681247751924853047586222909808436155869007104646480304841122176207636005678693291944506701945465616311560552515973720381407176550701984020849323881876560558963822963310857625023879574118598693543325995414719736287512022639319564210360085388947151571088126485216216928136421689809523197526747543781034191040492885384574701061627311864259865141109038663987146519595124254085433045232778131286303072316926733051696997374332020362031382695961322098311506350966285772405883458984239614047919892529923535534919067910836500012571268616590195357734741197967243462236774157430173936015100986838877643179007560683843867399206822808464136126474050877723396601403005051686706248035253047826937883616296541504182726896932920184593061314208532095578983165077090563237364136535291369528116484535661737583637890704923842877951473844115621603520970501283796725080568355651006598835370679356009904174505014431270676846397646927991114230755384486449703840699142536073588400574636638677442836420629301705085739884581103239381439679454732320138749996264343262256065683046105364183137803945645362875227806091964830622146272984991326730961958131741265684460672959752213522321960203645650111239117624764242000645480979450685877217677593925151509654612308806676711712868315444787557440944666503998921241892698116695046437158254758891569918214456743192796584417579032989359970329134265214322622466568825462956719324671023684706677887741816928343640237954943125758902933074979436484820919105748987394824283460396406842239033885825944323036040160333312560292153416216648326296033318613056474722339623197008925108634655136514736055758830052964825488063246657692196290635948937409658693151177316605750094276485097245620973183006593336953413207894937787596154903695459125492624141042885270784522970153944032341014777072440907624763420080381973555310933722181638548730910428278753993164649229834375418336160668002970783500272681456198326516055555962602867622838885228903825779025266204657232628250388746595428191583207483489184770310301510274627076120224470118511481445060385682846310478936481327917649764609461368615974155870817287977393135487391682539742449892856949880806887651445644693022301551330304361448279751110162482078627452915623521317689653660740612788363261153652158359161983499303749894838947417416850743718740007426519600977168378564062523463514524767108270145784568681001580881097467544471447895235861326210341620738858393617324080444215235992811048610661865538242844779834016354954170419494072437196561884569050793568557736343842313831053897821832955919321886686478336632480646356714563264302140429332416223888425339042929414551975705409325630293292767405174743365600184182486527426803695299713451979591678717492643667042047111997106046470205966632798632346415508312467631437239617112513160732029133562153706814881393486557121056809285913324023941141990332441152043064996511050321022108476856719188820529502319042324743122020367024098286248517889331939785052687281184740778079228819244084583606317718014948049702422411188848397939336479423743215218222588714238508300968857890162646868402159101720457959011315329820847630625382583651658380884686051576919992944986715975495227982946417500014651832105349171715731352843363436807692624630637595127307623055105186683400568680632507802736546877524452627293358735015705915212696905023672216767395011426775010831821916076390146443356647300608295469728972714055211263997659890067665186312913381699906969937966983886810937131998096117501998725425486037990210606515206673231718365103417839113535990151654009169919314519888985250061479194064324962550905201549256882288223848804426293043383712837884980576644929731445901974881465365149768326888740961391953167916181618562542239970963291500905488016341997173410137852892790477534293275351357256916623187505933227634158308590401082506971749005714002909501314657331103478185116591958026854374013279661457615950687200940824711913572844049850077211553345354059555942842598831442706132814957449164928776936978770336848367324484770289344796387435948124513224332717094138937950531627144008792629426338123044846570576515404159984304426891054910186793252575613752683653543623372785725498393708834082632847071711885147082834093773307346041808608802663878416461928984809839972108734446968289110447552143811724704764110607252006705200749666066102527962248442190085010959228743200909823895804986624498800059704456635768030656337006578403177547301390837742769774217246338604531155929417007285553662647466523209421361258849125976844493208772055707422692414101912553136492385313150675921844182308628862005622844664953609906201318960386838463509355313253123677561952519192063001747828789240749296931067098853443956998907718403208610984427763249508674392706268045124039201154816417394318852843799382802193475163183168233039714557726565756525319445246309820402916906080579636548469623077290057346372107585038840205333275305464477904806079145610878896526319569858570847404161258753593639331025229636517614688490458665387660325688778924366104902436386098163368357291385835534264820202163584514572959182116040355370493258421202832593160881377319740400609882886553252315437037116401495509689523607944060791198525465334670533828178177982665051741307059811052108049283232155930197107588218686987966964022576466792612129506960289898642446227306935875106271545204955007793092466348174912464238159895076594414706328652839236615982993538495027144042310681113569842167003270179495696428529434165428893118827232122284787087493046544159840424140392835041930856575154863729127249553838785479214764192891570966203484503725644573119201439192168006675702080153990272821048579966002845021591177463617574104788114458021427664056983373041568078588165205483113301979706030960630559018247475351077785162971237510516660075176435892896677246947969406935320480309381117596961102274121750330499274065726409282365054284883919894502009774400100627673504075512096124273847578907101848881426276041345984979142858105879904017006382952023194202520753444652735416086841059831247259431402003426876328094358131995172320139227454641013036980834612689405679210657041574799929108024078215843780788639011580563269608197946989319516090789567308140769378774702237459266403034365233697782602990435206267666421211198479686971731841907439233015521360181541518777072784100010323131742674121309855598945298424969556335752329774777715212645332732371541126408556876057065015818093704502433660908786234364095995181772457354031745821621021860849656796449125054425654422573373984386801774299670416685864414798139112691226963125186879022894611231681153943617023950762419822584041771672287410251875483929412299744143932344512237129132633905089597871270142022724243774270135516382845876466120882443171282417851625839293813614242132951082233845073617114353759866585268791156962914482960933788463670724298048340428739149826713280799563304331015274737212171824950078079535026153343195453484590643004564117500238514653059187073450064413637563183656332238900539952486717110011177052036177274099584001159900830637993803311994887151322954740749358411303292495005298180266353338124371203442504537669659960877702803911243098629621894213689620213507281199334427653010736389609435902842814680048591904395447718835652571229480531816050727383384855700186205890973528952446758402390602333087826599193019961604882953343972363768510601051685990704520173116666549650912014619791559526869851013404566771097242352174527564841191082993428829333248832363008131258459530651198989327059216272233691739060337067675229599394939116017290879574630697709385814511491259954930152045043541388195380744642637519357052382675201240247285596189938677725291920938272114438999892478179813047066436495655873090167721595472106834209476012811984250366009314143344117041832843125082168657020254275048853470601702688222271390539761529617329270296805629604397748968880497037352099315708971005937954576941884332642804847274089394048679579675116014188020510937991410479775359132310915905839889465426334919481921809395370122071200158558891039768709664949803713742182251735114447885845599744409012457574967901517495552825208882959615133766994468114661597836792757233630050615249558975380433219174134306522688645757962892591309544190240655041564945804014839723917067477194342493447467080269983261837983671491655999452085535493285497648038577606836918315938857929622127568078452314338386939921592670794466306937834886523172963645664065240200250804535157377476441066042637858089626135899620415331544945958301113770936976564503453727822182590035827750175724641573387495316637598571343100942467369319983564192496130691111801851934014456306391704274379983624645947671145152812531066664957625357441599896068473615401532606904146092468368379646287377900906499195711125419203944567605727851611188101161229292294278049954139632138606448511407189105794341096419830988619032085320225837898080408066021085077429813964118447020924041954612221489162986581624725497370118077247914693976377217326097124458202935828130213984708317730001748354213008346365347976977519582636769084281340104653294482363385908969830906458248788535144750291336179193854120598968304215574646125286099410809599819316743626176885233213384568390362504727523867686480507889366771705315049054925399259765263241212805495310413982540785441330241173561840908401627643804992702362556430343124782156424657785828239591851261330397303191553469376799816097073986876789342943194985408403473940945844914197925762654465583765664353744159059420810767508370039312450866284844146885049257352032039117309293247999406212766372459265185006933279871760317764531310626834667619746053926770128391427427509546519161278767416147205917737170842626128037242625391634215390530248799301566322226201635812672901684891488287387100017074252777080716176312018126141801849613058579844557689201365584338738774591748353558709788566045243351224562780690255747563872428464422465346062511874188255636654285170228235543288467844931592501289424064449426228654078106844442657371972512139514898697655300129807511434210324507130797467220903281453963761718259607065591292920089598520628045730248100704395427973717477299350791845391324428108669009811145717112474714284689495788165923130397270611006803452943286301212024595147856477783734764810694665426492775085199617180157488792368691974468762348010975338669102169443490038770621780469748910110691722911525138767581467687261930168536368057604069758805619829463513245035249659838235598365682754635254090876881260558955461487042704540187222649961935343974482341223810893732592236101569744568256010825470477701605967736351498276697193816228292527246184533809241199259305055390454040114396814119048950797327577048996761307394844225062215862987291670908948804685515828790953234418104801107104086191977124462695857835954203408574527844053885062441841172259494255157439286353221567909043367991505245395061421663077035849042976705173969064988265140905376492952655447172653049555298953586625898597851477738481164981639832111749239682120831266029565863937413154439234826088699586133434569622659320159435911099047692681918207672562090117153431887918852929704900099322135809755412761140571448989298811500599083654694354888670179790993210477741685668558426995452271314096204984600512744497864807329622683822431090230210634059019286444190136045258835127700123801808004580558600506740490818883425653064530067219563625744535811221008927789306260381860277347577088722164026242982459144228628416549339738823512698974567176760597497281043297432541309515708364671599784496971462963240724767408464903298025937456290946480276170474017440009496252432090386263862808094093270433726273838240383048246189659845133588672423755336583096782345226433227753464281207902139458794454244079847552980281867042888276678980842767645500380148943395991190630714912518947346383975436061868413152817711142958804613183919026495687149720724203351352158801485775726737484512682026731349344886900484026744463932594997503559715522056469529299861648068707332424223833704554770414924945970094982439769202646122126038304885726060462038506192294797369898333383457813383631320041493756965798308539656489288303557370913077589662679484205769598086889769307620182961321989609322818395184328239994714328544287290280170029371212752950313460835287410489507189766676552322532371989990502907857965899175531403896081566012224102100097506075348134199567375852405461550467525384125431971986793802427263604080316048518420088510395812882867337081184644342727611869099544013236895436879555236351844137081960369526452190384352712989921090886642838927292270619925614149840119408992483149075843755505249404831331402420528284537289366531000194107226254422544829281413710019419730445288332058746475975915105763393626377565299866656911907698849784036001024532368818084541109407425442895417386889998998434492999621880794245810879882235692505194641854868414519873247023743670709972329209768430546838457247302295570204022547606652435959138601714538215330501042138657647196589425287744213928205040166628604778245672503770260348003839923786210400390407923190603849875862451928607619499580377666134870647526435614459659392168539936771038069084114486186351643383858969121031145393577442637065204424636380812113110324566343257742061300165219110174751847997348866341962379676622118047598759573584218558426029577120423256507979139632453965406773137851558849528554950740700396464074654539895997338474403717438877362808684707624888956946952600166816626741407276402046930154933031915836108574252529170300789636331864379637154123240152906028977294022763931927373181519259895491009268993818966305687357129723733808422630550790787289652286922342257914408211238596588279619701231326295148472769354469548659527363925752996117746010655907397145313047976036591350196460593135784840264857905263148040331791041888570131015409758250495944023466011449537109593692016288535054327446852481195720708835662829651168126281889327354263306179959831960309991786202140878540978928173801404024113638248852451856985423155407220766131978420356152420036042100781708970540708544860643167443366297944132551571580069596963485267667221228289624185548820574833196959791686539354710586986931359622142833822777843665063183326896936835081594126811778827366959222360794384908736992473789956069488168214216067373159302269135304410810150874511395721463365379591110662696529765707737484029849935386145562806167696807369868046803683380583160665609640604659618318152209831017234779191085053473317297387134997117404672243758407137101954322653691087852642237038290800137307419968902848397972725014221026675567938270256220929881473847238407428822886630437699967166108354602909789166070208751947543335354035205034186171855460528727333417497563385550908339595617621600515016107733315438901567912392215395410264738242470725578355043923996565238298602599075724749932937236040952480332385924193400390932289509312420511278532347096057631753937444076477185439759312025553522489286058224492514217693257203046749429914330439035816947945858524120616111170852781865288263769768148693357929402608821858522253769149764983126219398319457711157744337163455641873271800707650904569847963669331380641945371585930002136315370456010766088302410245141509231490610366678856485329505986728046260567811203851739465056830600333450574061255664736198960379913876501485998359410954776335659209999702478370274594619421003749705348147229023929274264312276678997944657239875478815641892386797167313502688112506019336397189375168780092874990325858717733431349150964338124716475496330850670734507316102632199433255560645040761002340708213985811920367665752272850552570364001320624248175817525110115195394443001496651478327617124601210239595039507880411839810291421289752812353057000349629567983266648529285835673943075418710461786907853288866987892666321425400800993676590055634153028670376256853236842647168330285333193264590608391990777119106747854489555423361942169458563157961286541100774674408262613546331934100673064870542760028030510153056125086771308066409639284071107593228363019490600974256129718000008968327669268372222452163952127279582667712764049739225768684512210953965698464351264191421930888652632829617389731245738915337258712510015448920134870238901131789355056749308842537911103765782649730554539350966334876486590936999926479975898319232473754470936727939343002487241124608680338914486638114021208769554828019276021521583525275702877600648250933073232967283933987614581570122335877188778364968440135559065902646323108002131992313775111523282701572310897103466609162189382354038881159098206103947603985004057599952574398877062856454924396576645989497642417424917228416318725022351007037529540246308803742051428438818544473968240918207448206463074386079328144549689956743101869403390761501993166153115294742460144250854655190490177680528961969300630971113202498990018835464105796537748752277399911678842077281618414320680477466558709045707260453384376127728655571002841659803012540364246795802643105045648846298228577554943897141481192675504372330808310932066394793281107730758461550046379785526763052928158216676028987189383608151393057154800553331442100663221956994245023445302854543862477971540223406662736464863007705915435527369952590166757764042156992613977325708226946403989287768204658238737231597883556143895895253590774992142671132799457575506563695397701348521707801971357852484961976305033521380116518714169230400099799134520252148364487307451727521271404694498645418580822009530619448726580031615411241028012669566576789869610947733548833894741099319902830360934523337925540088309169542319720556821785083847248764158031132074745808220402036624400490172789511663712404553464968297971642697230277312476137048390313347786120494846279829195847634690324569356656259815651406567905343735727809304356154782749284220357268674254858937517873161598970806110764456119105913038246896273890211791754580962266751520772771532764395385930151063458127752918835243226771563663591168818651651179987812522396982852924280228894060608632461094908951039867633811777374104883787477851269021752455711355494794131027249819898597225027926514933889691269088092878266140911321769276354342179877807274043522164947321794714747096415433840856240735203530596279568822819134457708875009571534656534979909555071776907695295900841008612606225716173773755257261555894779642390472112478882092123420892778797171084410059569712420560348512491524392410850850234300980678158577560893657309207324228992995908411870034971920347680793843100371156825553055285762711797641847358730747777833964035282171276703952687937815205686868030788683757435712595009458138401010629151783056445149735922799641897581619172383847015993031953804911828917665052791179571115315045922481626267770702822876978131485333365059539251860883309856636325319105501630940384719061352165809947609182975125450433215240841168012870575404231087677665346919228459143236224008890142105557436746215848617452704354704087583152020818037620921678754753621164167737823170527267260997749300765717116462465001141793161426467538209392158679266691183513512930375054779912923659254124995189650005787641128755379430368077672195112135391991347106234159730561774597831929509695266813683261201327121877601953285757740886896203561948380280379385269602785531713314278917874992523466726035114792604986080937874851269437509748385279783503904337401757772900070289671808927265389907188024258560748376781325209179933491050077896988942852657257289819874121459131427261149947475848770127052422593796523758898319013644189682435670735521557735220748906589896886333416677885780015311678288404838948303080522521217294339330675262639304315740220664427064288071389369671574606385848284094258424270229181713134822628818654839056888880314094279326856161749895425888942433824468598812597002484305872287345356542006769301108877528216115282625197086014080604400597069329820404174956686124371804910159095122082553807630519556977349063934932385980656151933550063812380295655475064740863441631742766450042805701233231893466369547098633080272054074341134881880914224614807362420934399500974331219231607614614039681947455117332987563341568192915282570830258030389563347051426729897494415409945729247562008898711530371380737723625505149570515075266359235781780816147329863991580899395984346844603949419820887899579458468653573140108234437515415744048518091033532135755763939131777244217497272387128298105397618305661689753600146328869792090121490632406385670194219246762900674701878493209776974500915433926767122056004188479191650709433328972912361193536289458657265251661507366182858398869176496981407803105737550654049906745806260097041299129857188846065211977339444995055152376290158229615058825411643613075328502122148241258673404857986633426181162075191463586313413357563247138090968130416536767631431355666360140726296151441543097107602115029305865281370134400491359821947634306512172684517552842750516648067999129762404419699023892426397334606203730013581422259305526901385864810772474728871945186290700571055191248346209482008281809737028416130907854881944287725182663052099960249201520958285461240249706215958973021285121278931221440120089758630387066326235031479620915270632850665130145265883135287771347486409507174796113846497248461907730947620723498788146814445195213577857846038891901812777207198722869489875843475063266032605286097664453823592616543107536100668065446897923306599847354344048442817804891641863766684050662391357381239590291991249945737113368092101333378985316464693996307760824895071176603480645448280523783789127626298946833638294649258602550224076520747508544153327263521453398225656944148554469039672465590059384611315415589202656424084513524253243063273511521149673181782154763307244125917049561889015483525255433310226514868739282685787268850318540849407823505828759143503408626799618773194757553045279315634199860480101347052675783695803771225728745323013904111555561596419252996846527465494905573959290087783079951694173378303953232276399002790424066118941146000145441422063028855924433550580958098537009843233293085792090895086930703926741744273912784807680297725632989469791486696151328542621200353394224835068199279292924862474351070535781149954567356721919175199511750672156552874988490423629282562847386862143316159401710933823046780480806488170819681836568193622677499173145291840077380357199952832823034819444196292626957538106986417959516535239745872159416403640295992106704516574279106146269562371698912550770038852734579072611064869293619615460982459633690003527043067314182265691303995302939045521448434884173835671794892543538637968955328047297261541427389040632969492127250237933323491475517300569308254271342908564993829036443977298882105109808154478842321928143687433266969115649388939429144550783406686166912398296016264910543984511959117102714444566292156366183856032860206477809284552068283946175000646391287716973414175871545522421058954323362201099796250919944926158352757042150601767036606941608205400796777677481584995630857755440979219195107912600807200675978623180088271821436505608017425830188034254641449637490163394414925112053612925883457678323789048124815804313251707775895012333410158428330997754925105680470871885890623080745726553532854833235775715540628346941843196796202132911787012474314093211894595337215520827823310604225668090705478701290503870551162903048416124677988008573645768617878916924864807755584325026132570810671839541515248846414771475996804740166907050520287931559599110909480025835074032397439398089527300146407040077300484754818293159393490665963464456658613153778060500888346612118324905214347595291967550291565785239291533948946364851330604260974257351703029153914838038861246940080775715230263617864103662917128869244344625631843654434565656880542836180937994897443824887990016654567767418472373858525505789561202975975106370232083100980262793739398272353851680777842341980443979285651419777125776408985818187141534805745414255397918729711708568761669727931484720143523591244622660168834601061004234009816022285846014266551979556447198979441752235996989920131301726777115662422997693397624409291754404711034932447283215545449295104826697886558327632249919971750506181834637857192594923207636003535976001110614364843618278788543437482668833748762996545907304926714383640869699424301763205426701554320231192142450932040232364806589754418106136148563526148526821205329350968363231809795617254405351475616901529885171746350434773152913470315588933708910813034663305167026582752188102640269488843714184653723596721726381618041867900023618136399496786839032857555381408671703387041483650664199443981769063378821275524838477396793376248728972400508131891114648997929216512280912415607978100635090022848146783852528770245604774399625904630049880495742943556388348371814215880672939594087613244732687223082653829667126348335079147781192768362446072032136396578412162397012938896011722704497119875767710490166583568251251421592693730543705409065199395462527260036657940811368442284038712540016381497919978234680466296828326242669413545753339259933877546255309839857434434692376624921312038320445478046630349015496766661438202261997824096053312948241440155735723484794344389394013101884762557247534241716747109833535323916624839128225587891057984299697531199948703517472467419295767641492747386997877661172821894315383383322468542081132625921191470607330428692502868256090078688140518960860105807461545204546655559279750516417832330807318988464071930278650554774421702542016870890049239232579836713477001382427263855254431221174359553381559903895824746232383150031605702847587794874752894208097332391525349321194112001642129416746298686835281775849092662395284298241748577498565015957179580187508912898347123780223014682838106961004374747055276747844176262083292573504221379490798644152141682571262610943811277265386212570704871452049974091303291803772327979807594991151054140512450864025879010095217237430693793069163046113510617032595109549819559731656102001756396586168759934111664009882163152938474265177864930466537222279624017963129453821715913810067450253370415595484928301159080356259202310669067693045332142237180549305086389305273566203114061911718666678224765212679659616149303438779607403261851875396626534717402683728423232138992387488095953966850555772779384050941189915196749601878100798578164931357259813875535848157732681762697242919759147982329744894734368846542843459962637938784743406286719999960298487581190301972628671399188496791624073159641730400205479911853328608955398842958633870604082448783143345445672284195511091903675065763083172497368317802534226680719537128313102998772468145252727930515711582005493042071405736948241025147981675581307956128420590478626243602518266667769816378755363766280489908314712215006843166867799463351588446846051746665897681485882122080569492889770820478289111783779764298669759367171619578538441450668565789849529478332788003454842612943557604312700333706649600851501659756293382236201917657444933533790495685595207160832320262820694860820824484664859976887707768330639737624648777000947435163148847687206538606155023487373299844687679926270883456273806566022905367457272030442338163845634851010674817610353994596763033568523819682248742404512656996306397860110306402061910909336279718183730470715949886154606802186226782608808720553539048113890582161562707262547671747500339401485627819595174680259780763344041193011844690422813846362634448576623367162879721632749963976582492392957964996252399377602715754235615897389566464985946923170352896896938716175617022723199659410566351490809844592317437407887160800906745570922782289181856876240946158725626323379347630903124592726663704515390368241747668655485795926231433698473111927663802692477168104830326356214571633663419878436380749033666237178066849404396509718711449702169091660982463556760439339442639017154642085854242164519237302938497040325423426893438619124889936074966584498296537447911738335468015444214838223137241455118428468136138596171744052287704798405118122970960107727770368078784879765088732589033140880786240065771428040807901373011005088121288167924390233737417118398441951984128810870639094102767844423127325221640685511469047112399409400969958992000330985465349367211258710750904243232783924608736471042247768288443400243171203463575167753252186080500423610871567138413008636004113969652640398552252520030723413813306546950082022448886094248457103435655549923790258346017939943476678401014331048948202080944902722641420805468991618954215057532054632501686499015378074430911775067050595833515513087485702679271076950204138652042603601354214803964043190943689951248019376683621542873272878295482303111034817855432400984530261962666271288307202635003318553923835491838088874986815040230449803025765690333728207751642756723190313200938392097682750195793682565869691940352363993138649382086778806254018719969083470974921937327943685568171987562484171917757317784227973806310576321156979365901672919690137236223942245201277679040122876499518598153070227426546564426954607821542671250788725819835872910864498958684583067251039061094651143666766740620832104458547919009156601774709767703693871604381224707611180380323542615471861925823271601711636655424908714080348107473725305688720924312012776806738866167046129374520803923265761354020976720092430986591096618414903437798916147418985810769620285136720260677066737976716266066778235986424112907662173556297565488558156241994357609476242579715197590326774833458640963000462224945963781015801805130640674728934434475054723863383798050858006821817617762823406677063166494231782514865041926276023638865606702708326351309675982991370792485056030966649588426877005889056488468845036495615296993394632870056243695690295359038211727639457081708996826419911967411261158257463969930833895719872149929101396805133873069380528771066171407866228175832684482356272660862052596371523328935641551928693927874055532596550410806345887195339085954728614500742517810258829332310195704000900067329857872400564849175574968491960722333555362240918535833136037626403098066728180898495041914577981572279428082043633015529492627026538862100396486778888669186076081123447698157818843367234916439230676711829669014401640297401503749989582249512609217570593929184722530852855330535518182413593895808507888285914093551937154291738418123123721398168627555773325448889114790821641248618616298263187510617499853324430072754332897763230393768232972282167573687051910087304153790308404556013337157345990286309734538737711304399528260085996028442292614324424975374333498126287698353449906150896699174831744273063140614368836616840333609674588954448582642971902276110095044842607225701436596331962457104088547678600768691364300103709918016266425131117109375570863341186545832237459766620041973155963678106104118149684491257598366347070946184077589589186369330671547656608345344199373847078769430685289914860062986001233421807151855266240240649272378572601547283304934907122919954215845849793904461259158634681933562784867348850104464582300174992419574610507077710028112625116667793477774278648181925179235300281312480356720205899626800632317346933297083686354388557767501787305612901135467549998851174255773901677248288292819645879980774471964637630878212004109337538926067913540465155274700004535530705663272267455242626712310607979673247133892813192229019255366369398874696380922545307579774496000735535647690077936527649108155344998993196786829793778795900701974157200442405181013455475110815241423378816105569907506546206073883769342020908689470764427669947888256073568859937565585673135882838778285585561616534165842865298728054927492963212355190744967872570063847694713231839798495603059172385811701231510933530074680780629465694981966879899066040817619384241668205881189651357572516060732806440681962250866664768102131867094704659291818132233361038401180102133506938456623655769068494370112050359922827708047375294839539789594027374102498302944887002023196647665598931809126954143164890269822641353349395142254355119614974222367775577338400161767048719052065434554900609142922498330073582244486908558990625850221642699088095678934557196845713827359877621571733233515973387220358220221545166005075224259067734193188664033969576365470881081062599597840649294896001795437941365590326819973172251430186106665006541515432395379226618225932850959216796508045317592784775872348185627545555009782438383989205796311008530721515080290654698286285759085739375865458096723976959027447296255673419234305254177896567454005569600787120806159671910371499879200585731146482349667500135699553564839453507266450528360114513544616218881421236813253865694630477250969358868371439394728594792907232033944289809066400492566570685982100681731550941027058410103344015673248202099830896627037087043098041286980690751858584957867088052529692747158332508635155452264281462284862553578808598974045380256244014444051312321556732741430259634517660167847253098055121786681395981243056132014738223064170999771370639591365034106241832527989662374943787227604959651956616768191721034958809023662476020247737643416493760398505583880871087018293859315709805801146429552234583642050983748065637312209805174977420645602429387622617105636038263681243129686519160244446550977038255204063209688245697565490464682843174756732169707913304551592918265730703272534803506800682462371171614521742740372985798875502629500768894406486775845575587047359814071881679083269141637689618243140934445897143873593494265659434995575801241037804085939805394254540615988868121117006679856851382459487680025975907062756556265460494649970780001705831402339037542541107702420755575576878276658405458311013085901632082895113471915726624414440469954110432900688460689898359664937043182968422747891073973736250863608793447278077678234510088305907117510249868483810269914396549293645291540801089797525373846429709943530489616677514470676553303467566409821176301895180552100295820887794146837548991886961697958258756049539585896373785187906609802547837849760537651088920010150787468628643716403545043035870548543339379849050806539828662423526963867606686850115025530338287566815250010885339142389678073904548384313264275320826605691821950490901861693140172934171671829692138084483026359323911769389170606527924556220152723713392727016501326126182180507242400752563441102767641525401638835351244383483824634323607833493067924168790592948141685319837660524884054740525768712400891938937056360444960628691684525090333476937732543314384404484068521884323712411346165254978815299466379682514930626875286796387537989949680049183198914628802902273440575149395549539846849747724943247873078055236500054273333934346230709052710578812717981923822539556486811380750984113126566159240729296730181512329295202506056055649361949799143864592492617809025552544856608070686889126222405059325217503248108282406779546928725983885494636848052681967087961781664497650676000956285475502507429896122893974939804908869357297736769043711723903370393316012523812406165676719754389097748282144942572812089991413361145970948916432732800980450536983850186589619488794047154333600486657109675640976078785173643216284346062888774138477372220474987170441297069591800583921034329431386182081417316094239846366385449990909960426006042360545439461729576933799789395219684838912801026666662608340015889115233609587679522664392834121786452410880178900651954741985981386510460089203222364694134983051983002874727705880182090674949349811026434353112449467634942605745962087496777533996330227208556928395112602633962395633011290552710701972326684489288277768069856983710488937767579806214829374224353877652231483034631757506738075178521551262247861070869931031230361239903401223943211962115357690202189908643653090986691999927211346187335331016475732886385552119431967097532557746530657650417006117589103236973592724889752310656299307065039596255817847358765045665261581909783014950326321717050970160051995048467695715917696746535223065183449647974718265230140229403315884104279500017681393141392214643469523047684415493309079532489848346228051051695059839573203726038381924518163619265612183628438644421406153250107689501787672947828262512934690351606003925096867582855829323454395550955123173072956400036793613589458515294190972651746867296417544443260484185185971851808913090075852564806890769353461004020059327450042176861016286119581680399039484769967257506831431106658308078538389597328144778341638331592984760971239487718440837565790424121605862482681534830604866097542945199461049874909295345797528781637171730119869855355635471633648200016914545576122034332959038471231006826204978101283099985242452257373691318905475254158290829101457706337705325938798113887133716370990331910122058606865351611497239036011351057490412328155467168872917726064695064407609397235386843218283177021716579723037551078854736545942242401167827897732374831621430369874818016768661762438824069324974221864474483403738181547311931130697186606655062207529197553449293261602055253212086518635073063989605997817966700983016003425531706932595377814502312424190266650502995754140124679038575851523059606747585242364863597508164854400856295287278463617069176841142045977616730779544271157758374066975767154116071116289624652116167016778814033389849012714762888574049309458500736662191573957460084868898699577524859604793770952423067483458362592043756339397756838673228209759565532268883570635480802127795781699763385391887138015863311626586963111082114848478931886376110460031429629878285829972497037982442057558271280531900198707919744905562039560646510576855874080750374284843383641235059943149015488130342230117207387663707916619601805587402964734620311034224323559300854605293292499717318319611215289398409490630136525909628508900794756682628814618439328351389176480193930728489409566752150325974142025719469668740538096570177147779478703249251083009374039833003370320394850422949498153844385921082292049459274570366725485592431355506412142536181112977883037759450617790220545652921405404242824670426004515828090214337992008297087609831249778317659664176441624759443829470840275219629247792171191855714068607181112603720811277306564024959787344494727661505946379873478391555583426133322284590261192852232367788791889944174392584740444223227101603302782478460336862255296436109518447613852760027820327923189721051932830720601264148672976367787936621720944466127596979907350387913790262734775699597606091794465244259826459687462159954395660774347730033848656560796083247281301350747754628429887571969797882995299606609568183429375824669745670515621319989080340487708484721620436889902297075659440832912808961831085443230453771607334865683669964266285282247613199014342031647999682913073711393062296714409062057550438527185157840201940181209318700998373373452218095512667912923883425164467841473534220381857161317937484677119431026988749474732172115668709480819752363955220605057598525519278638963055817590613134564451437873635651567889737806696589307279776744542325998171055348257454860452795425905005786735616219293136618321801897095150780427810669368282340559372516518448896833919689684746430918314988949250187998805481700196265616200693770880709944675804420246111095176338790260041091609340179982197260103665356503126270876254506974523188121326460480648653606418232072962040926349279177073936827291116477688428476086008016376542968404936949747445777653229932413679680562344896821441685734746115922976231025478995776844221365024696838333944846089318819919014899877997067143593140204892998431874049571721887801810912437730263614197267247810715341336033755227416879013820756585066587790886810188651205005626525972268580914143106004141896236827747556374645084162284965239406841282550679388787505181175172045795023077682994639551125951411267458560720159418273601153743307086168382473195547631040426251006934712441580032927826483017616844992141157048708046952415699569609116679661171906743321237556910339763375107651157141867517310688353849699252145979599491550384140412057615976601116924151534428076901012337772825462707915745370012293568706624395154198329285631703347180105537150363865224743815332003122708027795268120050950858199327403023998422298474427628336500498242426820182454267620007728770060444646648079106836559904305206057693992412666342919224892385799464443095070933887827594471615711280271661114411206070573950605870143871279584013965037550011242843521280702939968142341451601846489230243183574802172671692339427472204038125707640742970862547779727774449797126110204045209141989278925342803479926029110153124850013548870658203267923211570738812600430439689750435778899236503450658987649918862044920060998093115902719044728587928579912481414122696082972687666517897292034909040882729330811004813262707952466769294504108783427146051675253928363129488729388765701394777644582404814297725516656784095040817881892854033388181853234290957076816811692975381470377385266401062653176938766344891194877490907762699847516313802197605212599969723943073591877193900834687604646834213767939927462443061153654075151013809756626827585008829105651527937103728675635840374385662002790263052781113308713438713579365838482380636420028287612437603175747062472521243743273089132609629498528000535237532616168407762931356764238151403232507600148761153925770731433901271608127528197689739546247454526343877469817789092732486321841362998676379379989429833249722417797749437239176392746466108849919877199585246716450302594142623160402363261702349342836215712705993377045220915106582161616183945701447009170588842263299490826355068141866481572123233812239486608560901646360148808272765737711929304128187095700562080145532384624583744583404804150591120188395891524811307812323660884199298646344303278790050854433493998466367287001698441160604359212109200411887294725714886463021019129543916199158875252776813938063038487609116212661974019417367226673384023963503778974709300317621518914787383625694719451797462563239742379245837128850997857193660495850744801648823677670736482323625537830431170128144224229371441472101755034609193560612697967939633547830902481314737323263303340631376232277124142603042537888505999697824513968550773898535487188093664309565053070049938142965933928334017089978944330475133009702846402403893135835294150773793744168222755038826168313355837395927681193948015831390675195602690116577267759798153784577804450126123039654409438254482850774316377356931796821198411842686242233394616438747558680513719244782113443439045613833578934003058640325052979105095388162724622146149302171140605853380378251293316330843604880771323119905688675033686311363780614469134111031743301540855520887138332794652743272519259082989921218726054032196249177390360452374308236326453704574785547134168866087631944036879559975614908677094065961163305456191988593279419089680995002175256097876191426574336399253805381642349289174790689701559991345121595859587547213779456385117823027003430098357966980625675250883763117869247921878042021209633591720295495080552322421613664479664327313817127109307808007954175905605151231403919855974194787464868206251022264313546368285369615657618650401373416930054943342947195857540428385541722441611202125561764377282620606658567479400612041431664295571049223647505809667992936016748384740982547450331563597065816052582844629915158488941208526734028313781091364958776460674796058822344851295405725470217031690724355074752531161168364266395999825184875320717726700679716554613606602115924774035204815364566290543538064704584304261848670905510145097242149013309831144297479332644222704839647875385384626359489238277900687293464569815890004941789467554223535269231822622056928379614446556919421823971294773190591477184391274129808159620123879055327742374333134023485435645564555918369410498112013389325199513559790637842769909166650098261609316763315466864572510882966194486881186600733639535314722979573934701175474509462834595685472505734415660494362721273306736512188190735234197976388214333154559494514976431115524100419530956177755309050230180476521147482594510307485257628341907601173971327038265387576631668018589716074569257749196653014343841303392540246491694519582533672955265660261039882989741239284172631692111347652453443267784147295588429554956214206969929282203502093511489463981746565245450708577140648828718103784151740693685397290028683995038962061630702503190765239846490282569405087659852901821794678356197474396038474642169219099361925741769745356636436306888872330585415712665201214868481600159030100362642246992129527141597553587507034917209246207548363568944618720025098083120991877039977410358760672875605510640737212574753740300709446287915313632478173090779918526591731259914565278593120111646970046431646386114778336169186494686350671171598515934100323208873718605154376449964270261686922220738953299938951842525325325892113886846500494102644269056368398106321252892610699437105520060086461664614162024723622219781476931695832645218119496987233863887699271748295452645250762741494888958123139966543231485276769387609686165411167198464070717015119928331553088727886133167817287638941044550299703111004023758479511901404918961119882724673734437982133396535308464738808359662248347971166753685439160782855378192046104222316976250426936798889601260054675902934472580680396883850930547478861048889926871982001880489133804389759833627822212403471346155975528920869723743095164832465696500141220354574409386721572765176806043259414251017678898335119407764900336095638670768081165498780243659633551163711785685298354266576622097384525797372734426090482796944566806912554245828577281399555600941625408439516237260209943497340571142457971932063743297543169759562070327148382820863585549724320276402374761015472868345443950178744973729686954536599517324842222657785520131780022023441616857313293577268845696809023158492287034336188054172285883688100639194739798932981358892638608749846749817952943290584823803273966027368992450782277412289332839024232093254766760457261387295373722354020246876420738729095479487570954543532932128941516694073880693451019295458382721561245565671655392703056982843670581218715065657107088590772230508006419949591665243723332800582480101648563051016050320957692577598293107044433911178925306856498143976420225297918741320734536664153480132356502033755003689652350184926823255936890878852857558600890978219547766302140704962492202915713171315893562395452097660328261140342444722989606035262082469242115195900833644206914447581068690395902152881756871374388944241730985431870509686808331344757889595604888316865523369929499784940801056445278723212996099552628988338336183562274837164640394038404889045304875502685846108293166208673323395554669707232607681745159770636369454372649819057185413985208224347555820433806665133326814507399366185202387369568732177011991960850377551272651156204569142045749526583371567759169938520169164477550617921205106144922777305836150502406291548255945940916164961603987594917114905684513164473276081827894879544649544248580648576905651046461526690263032107933465463244143418587962102644014082603575181468323081418354102232768449635537877448496484372938398779904126006798884913748651394738898606534929077671048503469921234250134420339612170212797926630489092807207394537252054146598973600478092868766622812153158867975320828082548628786284160195590714490725168056345275792239534824441444110249735560324970554631604373759266458010491859711099445487011784704555268465439927187625982737166760630913083659153294084462472922698354381587545727120827883224617479754010366281734452993552705167507021648491059192118407644259563005639629667575642944979709094768928219343324254492285853717399495670078643252356062112445044669839461803074857098065952350969934657166055265353395188585303373062274569971804214710619702554426915374730089975374248066140949068869308853192600399824931228786978429974445179322410075550773074869899735890446958158057146212641801762941026420521690238154432520814251535005603596618754997734810478983525776096982882249249656982060303034109524121633124886513488694390912920253111359988551495658571970561277635819530684522380287269073010218046784331415019721123814277801593328173205392009108679405344256283881392148294456312525304929938022020860545882285795314608805785065690520680612513469609228036611386184721188321017572525904016617581515189703055397211664411868261182259673389529667437980921762412492146645411867640298545403391487690985580212303600604631760691830832893763830260941652848705300855799173256055164066593465812930144356322960305000769662149173109025710952438360180234450441072644521106758809504114814526400927554398383171109218324805250151430764950941117349042937605940617056106315237760243416698260566587875151985236666453053409189137677177381636250916879600914358287099292596336091783912120485285186873409662692564938628355168629801708016521020013221938950933734204336212319549953555887779198581747227513150602977779906431480908151490016951860718765501106210106956681274203581270595991439571745635269660529859224778196570665648860900899066524386739593819161436911596762609525196965459913467526942982233185699049587844097353025656036338845419031324148959474310861515591213169880629310014931177342326357088739801040550702384167168288158365945035373230425809508791644233517037632882821620583321109945616445352804230954819051301225923593797086940838571643687363566732577578822027829794729091663643824354068967397417367808895227307057604325885290640919943610535993600904599198275302755590778487941541503378905480547671901260046676169968805263319307525863922230930487527528955945117513139805094594347393225754631863799091545539815971026591756852770339116152590813494262278731035366415224913633604062207720533868766937036723774869201411226146927825703093380135563622320857946460171713708594144966131821169049112978858695243121145133724189238199789575615765484380317966172373474757046040122938733998852901366912979204232380734003956420856457031025100188582792768712023501924070906271831001272451194633730768937507271033592104752016795143848099513886663202146457931031818150090231678965056853430564173362744089237896634465321698168922057206360685095039703069280200745012652632648528360021394516284655799898996740982735547864459344448580351020629347104487711022265223820691910740866822390812851518733727766500401179148692614323738971913935697097463714861651788062816465637960284238472042593591744684430415063905301574955425734606866731405549770614690897015973582138617215034015272615912580764502151782688131793683446189730557558701193212213456357813737740936985796762437255576695597565791059155900815633370260741367590839437690490932013572329337992801569914470360379325870161291684568668740889369355909745663718353108766482209038633040096327668269676911544938272765187995814704108933144589589146581325196161768103008701016317922430878202453179356331165843036590156821910316536072762833450097762788936938967184218717576613668118181095354167349985021625349509581275372802368280148252003002644549316522257480659139842823906571892087852912914032704714396093825316801481639069197370675592338358138221509819959802250663107823308713786328071771161139808860014075376607630831697241101983438503863990363321062658030384267738814979882124476544557438697896328842470174415396250974440917110035955200658659330564648227170267683702412680096821398757346046167965988085970680945318140108715705225761178146513195442461425408782702593021062582206978339310477776556986774894965501975970858857819320995597503745840847814069577813850848728486596544234975888493474614423890103963377969873132837190994866434530054958546221066324608640373103745158761226563181873929499769442223460668319214035200364505521353622656250073561059316067796909183745191249734288231332639580068930947137192063417215083629908667575770200485826080652069469000122784148642251440981663489151297520535328700475896934147110762446050795600477969096705233102787253633074232544085434848551643745951597409936843813749216794732267075785621407817303533414765678100490793681050339217663841681165857759421781619380997410602827002531240093105526924112310973649208610102353087706289342231245951865831709219053995641873996014899603769501041417250147152331691289004899022932183637204645344204391605689716757712893622291016917883163569357227652039209327181986799054518017355893224716870202064226849832497814298029547711656462552019906780508900661105263841969494609951444843857650236140590322678090457062576838805462849970225938939679568067286095008951562816763808007000179765490989550582005337759728314514471198255852601693545049464833596227719110727436613212589769912276051334957055436049484188416426554356280487003724212016935273076671392223551356408041685438974100038868600775826548044138480188509023325573023357893232743917976518314950661583218867538089526218327546502099494211226787492844365023754082643220722511423538470275922034033121514618951266644464425423300670707334405890644872455441345716463745050241354448229952763419344131675850875835831228929270006803871495419425065333904888865976980076852145240919608804278065365631145972880934909480362929356569234487954252126829844618124816882654814690857765106604391986918864934184864158893488565706803707250470039578826448445456739021499024157449280856730712007247378174051480512173851031413300665763576177889831155662310437705832090871528212912440405559715125971389907799986191023968823376661071912681585741859194252397166507274550737523749561914869120797321778985474614537672061009849555592844547699113028310073892521012226163794463519155735724602659480718686972815734662851674883292497915393324532923448361455101082219112222512496136867884854731403738282311260255161923547811952342636572796613091966500606514408860023840403831107798686779568119274790018922922807267082948816273282233109633518501273991866248672547412359132374300542972802248198774828694823330603961169195607380928285217630831664083669278456092048167563045765016738461107918423233549850983959748837328386789081672226140990831537162671551240227807444735059970668728997171217555958803440074104866079765298060219431800116672088141178497576280840716775730399473574924410493411797585882818149933937712614090154235102572095467173477986543693313228898066355551069399312601973213531263031779504038247841289014226308715138327402161193641716769287206866602710296916356893913243622108466613066601436898157602387024560683211585962363551068001826813029271446403158853695242159623401308363203597193982347038169160989102209205823005932435938856473102736990288416901013690246626448468551351948258867827517435801972267872330350777598329483602947895830585105153203492125755600297429825830662744272652850855610853008528008859418731272420881137783972202833104897144406488069639047506416651064192197979698177616625184726536735168467397377817794318440383265082385407828011577093655706831091123430023185746273052234675354946981610042514600892818721649326097262378305342917329437090789338341350936614199570878430109085139968427196303727392301401222885600648811857213837680757270778619383842993568867348307651615002763760719931146965672653708848919608815662630682139733576385843842422514332000908788021303135489909707502286929938725883776840925058886588221864747892774087000343563451738314544815735467226178761585226654254164973775275710708499172571163305530909955319543345594888107188066384470324858052002319395541541253670589089399041115437594259943545957139533852263945564579217143678664763291720678578120993774011694119442710722799086631044583026246127188575200098462870742175453017459628129387368187560366102622256614141155969494245863442481026819996804888125461870677138589942968787191937608987606908004681946561219271126969345682977839408182696135061192500932279600580263708383164141440787191255031531725986714897600314997542493900277254677865332976604284110082979812009518491362066271609663124239184019581833503358480876763493701895317303107308680333889882506658398781353614798296252117457376893983670790869550730061955018300985954989300515018179826051435109111212373033273506120407215800387579297825280558797174690048748929373465544792010510031302467696886317527289414199769583523675193924556355692188849100973633211448771867797566203872257173971735193764451453166145240791910308551504302306997195042288199591747937034999345078147325665400857809746457312736189924260427020251823452305558599218715258242826575383551671364181474048043123591743487803060930051303116387373653575228285202855763912275285058751798635504318581195983199638707091721918724830234670461546215769564776915856399980422991914989494807861546604343662325840299541205877459121562739848415174227424304583880357970928087589289538933166022735898042301582490217560574474400349891463315882190442056547147906748630231276441946018841237733968594739968034734203024384091414516538280874056532717387946989150567652018018418487323640756479038136807128996007734578449648590368545687704811170351114355641197427914304945497888609057002806392892953385195627563531650831109187276395513632109641171406266483690036413243424878408910773704295257774043956530696437223571406344995649850178418103425342647659896202354346875000646772177729728352225588517417966536950518915981868842892957965326595968615665284226069560722820113673948336700348626594063566299074481876398850220173987138621771097199716282511443403084048789456265983170244964955227974548800753340741361227150611474811194018227817973940756022141511221194805858261257456226256569376483685226851680425107333244888622809467806539641721190430450594040004911421258414205554381165768813798185541839543436083025399318734239669461230763459013799799509097299310838213865452788414987343407514058259099471099281439650377473062794720712765636042640200268029789912729272748355492752852858905375060369297365964512519832967265103728512904555111807647478498343407129217008914151607056939891779231762961686030279713869926859596502492710391340960179567871359620945839006904317754523266310915554326799601363012645644064154051363447573710917370901229095573912799388919589692880609533654499020973343353397492505060409972192883577115488764636614610618782800116832977312343871258434482725891735036474745699781291549745521072256840834016932089654378215319573316465105086443644545597297067644584414067470801889466842112827159175616323585283449712734116876068182717789305469958124794808853735716727923352936618246015575543874182252043465456819610691884479435504386806728690833343460302870691102466803284222377113323542437559269977845799365121327662762422368811005713964579150099054436246671918722635329261951837607985183439457434486154189398049035336625838802611803662540730111489803812971410261721230454113683443740458142819975930280025020583262114098551142656397925776067555458862007466209473179685634158212618696479200141210786160644224146765922842286139214639037487495416807572250333016559581497387994569008405088862974360039790269075401732895204916684855847922417790006682895986741046363629211527014098789449594405771168717338038007964421315368710972127592298506277478854909799482183892600732553989658058018770519794830832815679381952520408369108958272990011243349033158285948523106276353906875324778749354944675266845030374000650840961014168579880073758155267759831087560026872171095002857361268349791712324757502867485048407084776939156287480742875281714433191466635253959252948109968851178564530571941415236946040598171914955847365072539255338190389201309554012199270113484308281728523664742887382697635228091221553352117875077815839601584648546051176596782464037615281482538019505476574704416239697712524978257289458756497277522255191860976409138600232904084725489786040796936484090661184717855637946406737872656024358069207764116017992586768300797111650986750808901892314801121233601663754030700187617139026366113138450408371646697549065234892647903385465088636177229408813457210337239208801042970971204082376533035934747790669492866582226855225208205178791565728227918229928760002523792310832877685369649396886466532890881774172738687797458672126959853155761835819284487816141184083919508571045035026347507586729752956832012860379979320143340878119685417007736869038038868810260058165072468421217267160812070591768974464293370607084233375462798230643133315619940754995004295446250701467796830868532611443535049598511921689441660118294124237526181402263001830504587242408144303541332038039637361115469094166134575074767224737366437548237033335926893676913578952663022934362889924459102087476477999478675436721205471255801792444052977391268886345324206625633520859324824575886312316008184265603741693082880262281997029293253996104360054541576616311079581647213070179828871667265006169303261971038196453880228768602175499666689926186385019292575551136638075737816651896247698916538748102725383810278229284907382440131667123400622376286974922938305294881526482732272499224568009399536171956680690325397009257623961244695815067566632030241053789904544255328980209546251470398005768754265447919712888727917606377179425291760100638846607693326431320579017383409162951378465760878375043424849800513145025380407461292793709526375305479787929059241574423838201977562939522958310403073689551129484188215682512475824890794558644314077945389305312160933363009265456519157319455961023193366208906058500670135439441194862329590184636937098272717855465267773446767382636155833685746000010923530602637870385810840395145870981108233747338930407175052980340064296921926328814080072347101829452940060191375738446259881681395747454850714238149393451193907030474173292797331349424395058244160957296068335942862828350014751323941327029740383401296160324795266123335478562712761600944307510362763252046404671636075891341961098861846720969108209244234657727653805916236784394781459162213329763102077151339612798213765774215679506523091182348235095839049971052303843362248669273039913179241999910435643536183035553987647467964456132913763807376731344288727566484668892897181073232754706932481010859833114097893510299104783907873312604198956816687263333934701924868453445132641468680420096255999155008969872255290187362733023627780793113036307529156762201694931477990871565620145384581861843183929643196763966473922012750849226589593581418055392089796849420612852886337867974848272991307088768699147172218584385209870316451472887415527742034000461343200966271534992953588133426207328350042226003826063662203288484213349029981815637055690484150297175672545728343895242815527890681113722494212850308248042890618941872808901985736549852282785222666818860650617629726329750547061508689468203733262506589375409879134652249290641091445606342203690280938591114740321204113438255696408545307086069804708077580656866747181491620748548682927622785366016289906012262440721470061790400205415851533583660141904931032623379641847866617299227187150298913884197704370476522741013377196886588049282674000894014865648758913117955409398489782016828326024391216913922845711078923902742530637995889665942574876195125192264194117286838315841130632691677631049879858488941170074311340565149801705448796257842789874137194456727252888227335722228593374313887699874384490377669064476012652477913946362895098338642331982016852051512301684198595724883648384299198974425513572912138357260279804880491574942682969697115226943018231836889994521488070046960220276111725792697371065915799789352238817253883592737498359986334933413025816303679841262141353197037587972553818312901402751010874846691371711873017877020224914653333596986414949340155841639247935263814990168813684847296261730242538228628563921851597325144636467983257276525952012350528212657708902597233001622654045366175767941272620105082944837789681325461238667594998634586310197138018312353654354559988800146695947647238120064175679914320473229836266011976548100614929425547077180255804338073096417326540893869679677693982977479223576369323605451799697038169322866931709711231297409118552761776808715673585429310350030427490154288350550730968323844751469548826583680136573607236566305388614188033930307407767978093474418611819478532610276301643930597240853034487353463227794869133641588215273518172039287403623463202476684803941151607602350549731221508650261946309312075559290836567565057763242106614037553257757367741474959755867146322389130960027149999458338859074573863982187478950264929461608547769694789594521418434681572795840963395229544297241581010017324387855333693806441876719160315382818576303910666839323563604878043240470984780334836647166046057742033755625243578218767109756825541796745927193804493307309469974339167056390314799463168965779200917954848515759719963121060336812471329328351866575548226959119002505125706114183550783553456677842722806731441461024385366780231321230811632764287388801261116893969548992204805755985025577330549558892263563120907568479661005661992481941637024201709717119961403251950599781456879632682937242723828702946939731047125257452547866181115442618804305938140856302486585594805924510218562341851433966494852528964544748546118352723389233195539292403336652846753645539109651613460145641317731089049835232582698343448124962873302154406566224532514094516204086882892760333794344969916120527653316117234889498935078843232935480701540018295575256182965008807724340952513464908191754112982657246612972123445064263678841963677531892288174770158931171007066994819539552846740743751203448464251450321365175888670455050740159091134977391648918280778741092637658700456047535830616554881511698489697378852896817062488682328070659506024160434888845565913880366031774917525881890651197340576094835160761879714118009227980897271229912606553752127797942927976808433787824646288431070694490052207777094584616554348428911119713626730187091856421389640301010914748809714942206599238323636155564959953352281929528405992722640964862047573123109239681704673016816443435129499009097582308256760126897304247345620067594284628266003944306498993783315093002341741873176077885214345452680534488882775706198549429018639872439539934201194380439646211236292816438249940421983480607586947585181075952720385443573642794035228856866952632547185364850763929280999455029825805654124924468240785418848099581410438548985412926221208261350691512663888050214568419504668816830434927398776868520521602276314885675311048530994452223104465438704770472440992462122136241277600262559037500770822038016817957607980837762913311786789068777202039578686691224268764964583944416445237489184417439851612418550356128405137859352216235072457781015393597745211212465050692908962561087269715158306530219218865981320881876081497813132872078573428636894922992042034696293650102848923628032207942918192600676196590713995800362125485850693694139548022872470008242764963632050618386181846896933999278504446703716725382333757941293983614607011652012472823280264544213142455410831941938800724635566045282696243049054925345415666953724183429895004968190405156308588029903656366776634412888940637211376099309316372687373036731794875099822852013684778515769729771879720850725202707092266197762653324761525503321275546259435978169518471383197056609593484802049869137848106016913582591314589651562390054868018485785272332602527809235376288170224900544402804903293835696740133382904237378073976391834683740215934367466120168740395292328832273410095392462729714973669935590079564288182565178767831355915880335240714220471095867849676103157654082112723417369487466182039742276663987491779949607838650477531518831323573314882901389230695981842556526691937977528488811524542817678818896131440139570036804125141126879445353734759106652429742324835624328065519284915674594396380631656595277914216047084268331742109903851318686168980794704410858732933591522233107959686036430969468988303402434739791754719833803984885857654951110952363318559828363992385784039536146061933591130563889942663831906461656696796835289132927377797405742974311848453514727743474103193613247253341306794516577754487387199739985160879586421389581724115026275795300046552590490481548282863427254126102079423684925584717528999663729479882710692346026223909114850594692165341034009825091847030529764409488751799393465794132982239981197929876408198396483294570405816626345934490673007660474576735721479008182285251285272420106610113025756980060832532249210942671247273771540712312399732134395938477798120684480253631083717988107654983527816429261990839469953144691570180966268924036973012247111486071310646313560896551569949576874224641512869087254147225312540786600348968023308789463030796586943629726444062020964490537576991357094544466233653277218429284408767215493879659892380515356556151844132002319393982263367193039273979644156053584670821851981372536624158306942662064170694751556843008851798893848236154358457768381050163491877573343463391138677528004023908485437380392454506143013607724129232838573780551381587168556523046566150182919633074928485704497579806356636536004171034150449420212737176613243189956153204822914301909715403530246848680262703270677521573141981823226289519675368008441582220675218926743414977391631511819435792634807780617450898611558268350381041254219959412486684203133262018075194697855232760303139336553207806940187491317383950779362463495286334695825128902023847585370389991034751905950273800499156784292693062541154009337470906116237698705390415616780474306295069213591297473309196910729089375718675451834604563511320302788546570040083542093599025525819749265962772375293699273948930537609907437822753942345660792167175994688710347982946730180738183037639675180841073701203403774716048444058318126201573075883529773948018033708960223106290056778313015902450100967538879173886125488363848895361087819157438937380218202004978493960607093522343175283903230525145797172013131397197452682482085166887665769444969525849777822373919185968485908278110951741224712974801048866803636600601589545414588314199425352207829985213036194357602024433525489403672562037031093382053142947298930725716974817556522803061850708191105043470058345694776669448083048182611567549770541842963178075437879129959023094727870566424196093373102775164096292529628334219461456690753182413869825446191055229424751115932155884976348256457012046005704428336585463527523941541190834267557382326731120261967488779336645781805349418459605015665895970599729144286303231889424689586617514144156985691554582406713479344897092755065413290601391026728699578215052578310892444884921896359344997480709931887898326524502393442756154448450414193281713824289331707509565929387573863222573564044233324476531830824822605515892458541955059467435010887236012247392889387660424935618810257875804648999260512492485278227418599816166550078256528171118554623613093201955144593241883851854071994188533061503434238537661790199970324825930988844554056419374825578409607881367985618315353161768599330908330641773638311102561622508706493544881267482267165295565617373412502733039657248209118507694618029864057585418619728917165232593385915610962757213983283037246973950176021508650515804759730398338384638938927857806332837216153087347662050600660332290227286584665789323127972367857509103169493282880359289470983408570459311706438064896065171503939365500613873378187745826002921876795365488927686654306460479720732169485070577356889648004164529404921868663734494673802327457204912148711046857737715252923904650937404353583366846953912597821366908665167726756053219569797777572905243298191334896552100334463177364079148046430405266589110862395950566473208207565332187531843348189389952354091765713501008935737862973742010328335501207200690312915426260449609454011837156318332280889253698830889536702450822156342588222214037590279303492063673002094633573892611484747076597309667017613324989170093635365221468115035365559993474374185262304556236336398272327388583864552584466337340526084804729613541044673109314992899935836320886456399461464438401850547699698478577782136520190443629240110693349457715159429323671447956310136510341241573146882538856008476981306122587430057014285868435034335243766952402487693505511186914773959716296899964786812934221867068077650720224523998725203272626226751857453685918783079907040994202313817915555810207907978368741177342100113617824009734876742461384100748578352331901216649274463720229633264256271569120513527303458652861324568035852932549735177749298166704192214151243515345963041696743810984714157938948997875133858523915994893655481576827998177427878418131228278595374124576313717487310152552059466639869563438090937185586491278032030312821827650669758110176570893436679663681333998346878840303909134576552916611255343326636641328623363526867789914651210253273160114340969951337518502553523374290365620868985168530731608595128742027471473067494296714495736537635039954190474867346253904674204973945833662254500399159674449527379291555769791534340892483050521231766446738469238194227619498831400868110206756884609317539901934089576645927333866318912708718511551252535552068593324154387591654249147635057877897817301925123302314410151388528502642959815930342148655443071594885447036532518154613939719974052864658810313189688105213019895949870458379913441869714699774458053400323911289771726578354730455409933238764964369157008405781808421376125883904252465237487435545505280318390986092678954309565508569196649717045452977313773838218475322323156373798443144622636745572187823889566220779694022359407830327407376196171927245354646690123448356406339310737617049565589055542763793909546155993034833930580484061903684226125885608193287104913177015873288432660901895215773501813513889629195623279510912251208572944286630508348553687041636189638882466851209957072036719447894885446724415998981622589752224469393868519087686370357984229374870186176554621287583961708693808178746365307314706423356821433445324231332287526916879933582253705192536536229132648796247701081650472344135748143572572906459085392994936682093668821259210465195654722942676580447819583297316161093785030433228653922684040577783239622622173518231897088861058148629756402041428393470072912357508907142898370128269226062213999685026087902733446753666253202580750165435604869622933365561093076617587516008639657179564866066429487198450806721427965169781527260157644896011234896201327740702584695321306548863055665822370713972818572524839530906497389970628420853706376866797075995313055151122794505812058966081788215270958230600375568976979629121391673189039218472433091291518072836221054612832713369994872013329011426455858796554759376039880638926443920546477273913428999864004750685891814262796074733015845079667237731616089550914739300404057767651896483099624548516682699222442044676973470901034837448181122885294943429882467134688075535057384872210045354672385102343450365897579156435375526262125484669225614906447919280769974508119724825111350721992473107397592514969648044376179135578374290786002785773119939758673422391727446994109897554710102107636013305710035006932443859850921349390253875532335930052711017951474769016004506248134274920749892630428787766406474848505233421361710999872576220528022543682375987101624996741112066512977382438501647479700899598076197841983697939110525153078929008077840633850295106821366200257512512489334194500177127720468308058201460142768936624347729616844482138262153238680403735942117301693050647951656457072226309535365651925728908729159304258785188497480448218934326123716227618565393915809517209740757356681263680181538769567328346704284790061031417151939867431678289789625937386690616369481881302835736021424931998806030869192425849144297417982240252346030966711724872483168181155525563666912403404616826552278686514095625649059682780382343123294737225966501377797577244701815840383466111504058572198356820492566808021710010582378308920578634526182314419456239285421690072425554717705003032372808712925863518470956440972087137102278561602079986602066142825175458329725205726757237200566496310574082817409065735953088592764395051361671008175061285052513120590668559107715902238445488478215309208293932598860898285271054387909494337893157322388285984627365133641296900843988946898505355569194806298997487018168499526701148568457438298773115599963567296549790194620786441707022998015662243299396879150836397416374346510099959317938221780871585891858894807213579542571532671936808675653397568378094581451066661529421725208638367169280821287224385273566149736519258205867041464979137391301546076392340367805398973869235762048548286001960512694625000307798155344177707777287992374042772539826369812200189320364663190648892355059503968896629162823738289697331739418738979948417874818567801038641791879359212892463043926278738577956220732086540374560554087615318191376867609503526860109286987729805404020615451391695642779090835473290076512374812459589675314726895489080702249558472522471273418496187875414574836708538336327518510608832693740282369956800670556772281308789261222159416669682795739592238844884548401564623838197120260853388418225264672229094422869844495011985714891638547920241895593190838934464077485742119853417865492131174701600281078760585241047699407712910322440791055636285479266918385379085858727282002845391820872889107366320769492243805492861377229345943873912863997563404056853221989416128657197377805571468317227123253720754438237689286539716344724458855037581342723265225482868038197364824135936945985171965200469874384944988961875429204940982356259656805146877521473421545427313208990773748722652982431430845914255481809887566843426061179406293308759187585173297768137841306415990637173280950572124319976718251842618589870364086937660346403258237910990449928224232123989579972473507553314672930038251786855571434165435597567690426506845466170911833164909602273345609672571166303460814934438661105702764234184264386629174420269247803564803862084270488414359125064936146935132753327482139714988833489989683292504142815106245411048995942754467301289620076065696283654438424105338997791670870690443331410261761995303452398781667320507632826693617689464065676447789021397736058915458248123899173953797484689188001957701719131497528344155111902935678217978227945669004335222705180797704557433630088789662419558022715438178564166016627711649692202880471459637126478170238739535595311385912521822710623011182742525852261487165286985005132517676661547087763029967760982321265674143428883525559356939193392007101652391713868970002218612800506553590917328700314058657793268355382793575994698063874621494626560201327778703002115714290560253667280034584142610076953633454501465351715502389860561231394236884623130696967644371655884529184998254278464684015600302080838873542482912168198071286788796726848817370230834554122586833671087107018095191409614808492787721094645951868725070006797105920582934626954897885245000544316680649584027060467719909141194636410853901075516567430493519596397283188762536556442144391390772257863386996231825662378490647964780488629559407435840717056771315330862282568336834922300557819598048078444715417608004250564464712115384644752046282796481003722185739051516812693924723579460016861601486760354980383836957630101138837616717090357137526052477178459818834773180568448714507844662594621225860218986452828025667233524082804557114427842495769168358315277112271289577147519772147155212656890774571043903694955653067155366129179848070351080376358709982778220606073821512824928378617861273037018606071295811268323971431295728558041767968696018887301252319572824166661801225425882299180972539183300072002294212125951598476174488381050508439380023788726912239703688470176059424551217801143700685352075697175622458753406010527370177386974283488463312289707020356772727931010601345512917777949570402261445478654185111237579765848040896461561075515688444762422859630073435626122949986301755532736993624689947171299995120566074894636764831129573120926207446086676560490884609692249722362499235590167027483038846681732484086630444275317059786404937201235539102598886479729227104000910572741539993314868797859634535781954681787721663639441654995482268170261426251389103515636730831402418202149996412431025502772868351063150370372748838274194312921651108458376436811433828170450950833917968103159036471982925121545265852134654748431356215669267385104491517830431497246019744962587756525860008258260497358144126401059453462386248220920988257862473756752167439253086616949379359067279121986478708728744657267693564531312769928595611040431494420333098159094165109496463137945919314196364375072838686251002174008651172074510252947685297726917336760591436420687964161352992764185784502732367852766640332158012020189042113124874033152782237079246312872883566349509494676618554482369135413241912923813221690651272899534902140161095656360437110265965341934754725489353492594911084990717986671812275238882983801993030310119432939527083745239007798638283956469688407036822683783116390605279095341095101416742980209724230138629163372276144548973726435196524241334320394119210323323382731678750662655441615448535623657976428479803784784723912184102788492958015793559289976550035785750955650218981063009953886917373605782274904760754334409804396366549613464177963615261283525160538508787293759636242405355578387654174384690764007684008407403758466397455297789877697039358249688922124696345133274036479736237428575183901842065143820816627869692378614502905111423738478364468002495218616538950254126683059470062491330304235876359075447344927444402129364322012636734077393373809554504048743569409017835376234822836622795642390932630560404360988364243288416287820690772028322280654356007041582022769131624235986168902667224423473004390144561114298534659907554450016347604285987417699457773364600974582377950567898428299428931670075300660293307871920733200988426886310087412563740658045595292829620614967462000134223267433990183808323753624616277466323693076830264691521693422853125717203541428138086445417575471062837851465897618896537080488176810501580794490029504744958720680361826601040827576341255526113862306996995389070682555401638350953331054328872498407279817695699811538538616674264167189069119450544099865485202107426079788605586372076425666517999131532018857732598472557652302357697838626633109741550177579526401028080307331614411249394271618514558820212716324447807844892873758096757226147721465610324724501071421016134471001996775347121747633821066939491286584028535758606960795324361963788185504228174580049541205812177665133335886064942203573193527665135593869711790508349971507793022372144805643204928192515362827202060132970450962058790163088399317535599932990650517985633849871409264949121961733743143827902758235578658301387276136020070587471998886802359668923034664469003291535236953783125419459666611038023671057526760147935782518793224066408271671022765977588522976163662451971795605442222020600861342590580471024623416269184670032338502669074001442730986781512607914438548202787608474234336888950999962919066154759538713746199956088120682662223618802648466871672053498956319655438421053429670168366746009992954749891399997860611445958497712734994480882638629280087701157686263890546891108029628761771381957084792236170540744687066904094773404694668276876863680050614643053002194823358178910660344171352265267454664011362568233759348222802502422899387648833102356619322838648090490518816256158888642200805624500079786944332158907934287587513955734655696942539992277442440217612138049607029844200327806606500301783099553924275925607088426281392723116979052810721544452381256975682400744879714663749090792773239188895161398284922176331613420341625259198297768449752485871832598666041986872508932880564340906952068971919680984566380335646124685727748241323180107932375926350513941834804488929642852171175268157249224458380865981053452153478205240863987628703352901561309276251363619600391845733394702022817482633557446566906539878774520142731830330664468208423582626745855521971430766363508401584421754062046379738397214303385267205521266696526255133895593164220480941660404222018181769355368954373184974450720088742310485805160779242260273415598462842719283755718996223433649703035451304079539831050714637446284679147112715766444817371116196843033254406350318662507836620016915423276172392721308087660282753012018409169917203043097698538561201097653171741189805015953967559292100461283544065611777176585185042006580448170948107999980253787864940383845286791588664423588619687939919810978349355705068072241225140488230051135735164802204734865683636700922199917905064409005525792011461197387118495685862593354039877522148825255613134088805645375291411380217290772787996324599039220723783116779137961643664271216667863124440629881638801674330408736700379539146730359575847189660804624046285595599140141613108176018816106482787790933729280556028639980034725955603015437014147614077872017919376195419143243220797886447346520675727466754603648688116722586960127761049791640365649504998005484780736545968811123372681335961947744940798174344933751187673877331229031307229105057867162067140594271080519385718634092100432064985038073102763801402191969136752351677947543810244758742981191862802373632010414090709940212273959724740856609563396297797417369749512674479452510731759762536538905235931270890033423060362084843725674703184238877506726632527876060428086322838521868885587228107351869546385977398887987525139285033484471742724339531793329040175527000699530859340525855231537687615523772755448108217187143755506219050465216282147002206799142599455037038482924561378415649068853712403619038168150627446881036717249823595470909447954389226582806718106367442349979128654681519685850269933983715561172014713156791804388135823956831015960799859244170819691918516925034011470518898956043854480918369870697490381256372103214763350419338983722823188740276031865520285698348875326928760549476404467949673009228665873780651619266433063285640591323871170710524099028114746924554665127716418962297387420033219755797804975430613669759071042446481666169626374781168107981971957485056534978944366913144897151429241875537021945446485655646907339108056327110990099254284665380397202475738911451441374011608430848255460789668555069714802116551834530963693732731212174664744252579977434366436985554725932088246301171665475235008131956972312134634678219008586285105121472345967117941108056054730122779017706063727501296602410289396214757386348335688406526248845990501776256921246392868755494509452990496208401537214670243050577289008414888625037376149931464191876399137161610293092780812026190750533826401986206163465811349875709727522842928979268246810494745987571500683763246711923741839320944353344456964820998472102697620262710842195862353611983871723524406838564259851965864782395368789398771002244816254404816538437371812260281554903644777471563213220432023303216790565021281447336806492876485447086826220557796804532340905242981795736241535415863374894906942743931102573106127179978364951978541458330939324427951659082456129171296408981143886474991752070572820484975091278215824690907706669263296637629634243192441417063057091652032607292471231107687337965373004131510494578966344611459516194465327395935557171017116059412244463067124369562360716939974595889233409330206772031976500918733153544837196672884425702105872697801856149314827438081461414004918911630046972057158290025993576569743659948747880802407206171267059880786621391016705563239383345297110667495316244906850734073103474429683128407897532649651084261226723175143666962648833128280350642153626826001137255871446796880070438867323431550681687577965676529856170535908800228863140753429355741981523683440319377341705097208707911163162754218845058066726046238718298904863895661500380259209695069911708502305240977812333347936444019096441766563269459926474604077376134134857637100102298166455697886632091568465759584268876838372216751519522277160378413165000195940249493586804311625074229978343074125319376405474551057555976965871893353067907819348382486320027286416794466623801751904060818688092511627071820459059916913153545214923885833131602164010639849253769460170685707484272493734809071487705451096948422210899633134996707013618085111332492167658749389139870514007296040552978319025843203352893849760802845479274131572533374635498842153859639607293983504449560230513147684727997284140082615733996722334448836359337120969460355800579218816429978193203736201817959003367664620080259098131315555088630003405226897313576587316607810809911597314194509748913933013452607545496827035365415837119955812414877841128568362335245410142943998847928555693696619216222356307190627695624530343783828357954626203536509616927492029771151018537356408352060410293413381110787146757512552616349614462472934005115535978916115015975111190875462425243480424390857089923798923407240399003359895855213527763100057255843772511514168584824585670507010785539905284167216261529287489917187765375827675470229212504314630524142656275973439404473485701604243951582709100885370222459326506784134773201916912364052235544005727511487380916140650548598308925752256828773292891866940143406993485123639703837345313650590255372284291434011242873946887968203843972387062520601713759570440965652803453510568999336371383512615154246922008519884308347981032764710335034331762123912431252916225860341363224211591773913181487223652814205406453875338149128438395701320560288850617592179571276900399057701168904888116845754402455613363313345806835609323290951444469883463192874170375463272775686457133654086341505764787533629873839581650468409858668248208407598243054459015183986483295510260975889857769911295511801455712803873166119903304661797221981599324388689012129803381066426332215235591184691002684189675845822949001730888905435900311978372091806910578015081579715704791896950193919716815649579886905599990288115467694998398963607982622943602742590691456396943343853845204316906520383318279328741426598730813452036694034692135206894720516285260043752850202733765471788919327449060130236555959610017039158155500160368949170444739553671218373382208925885170369276241564653431952393818715471928233560021722901288199345412794232001942437599705201725092008995437110223466790516574734644156947995427949825714745514597113025377690772056102646554876638028407297056353044326703755621418603408136756999481739328458163941876589554387784705305847142601789663431197880069738452236819145665562281907889026361297700232706301549022527633820639718911846115726633077811575652331714368725049138536144357971227514628083651721826900223676632004980851695778042464774434472259052308057696124864946348454672357994749777281070450385527651591403823381210904784495954976393255239866704852564267481166897943148594162832530291211055705531550469382225916720876008072326050258797709998649779968261790158262475044161993723794547930239293793952749969008025514014068608439497096414163504432135442742390286481961154877652593719314267129861982291032336437605114917763977142302353474296427247690162118729330080436710228327055442972095476091100354108268179594352978225133306152928135566173456823306612025600302770142453225150081561360033037209537772142114601857344698599333689835713943352613432215411006041765366263639072578810842947529175056110895468300979517801509563789775094564416648667185399852963097608482249587845307872398044709297955948459639882518641122998786189743906556460304117016661176461255411149951498805747582576588674478879082626533418564244887112954847562168559767311710211745841479045418049880676793177836076763453159526828016460869805641123914517654527080976163512988116503027948108710679857010382334931732716364703410129682235258238815032305208602052480438648001481126534512209508444885408494722675480568333176312289948571341568895608214754935045774461541439148036911509086292998503700160770550140844607810797945093633313605032753398133841913019789696262569122297064935042805359149832743580809696590905080187678163091194891414402274968019981520437602310260436437922187136566075294775461121907935245114479052125189882110894840828882101357850594701276027877254198628483214868587077487512902503846212531947201640059365839811249257370849765252207032134176534317831514825718368936225488582457604904485434685512125403547721911687121297586166910818056887687620960585613667075004712894024176882052887069331800704750331464673491212305051960314683359557195315934715993282923460811650051942935509026043258062633919034053841066433444398430870277044546682085245538082942422539852644054224437210215359939687608403344226647498501868749764450332643307952318556323600056400263187263316890030413250145867231243650643479564470776792085266774574852190761040707163063695077779012255403651687139965169103470576112516342635463939495119391160111483981364690542561236085847237908459812274578464520691353452900486926276801053312715749764062280659509618992982263657481924062020670845364587398218235869182644495383654628702178720346727016500266009029742093467042588835374111247996828853878898949980424397764387412397395336146646372773683901682799576544580212854775323534723467958592659976456912052838522368282365996856851308865360137965927575908336854843295251273432208097286761905480435429359912689915917677150273633344218829397618990893240849427277923047199903768392725584386471655012753661888511093961814344770036201107850839453224459403505526412392448351830997018798460857336609884772422555490071346260371782198202277098193409837963754648105105879620336881033625534661694220778857168634194526646035586959877761747206835850494898187943139129789945604979536632292137850137655204130212445130312308851269128871452313713368327232449087866061042322399238889822456359355893515778482407059966344643687285021712873971978093308623468346383825726925331354680131326320827014078320955271672195143714441766871355427506515455235118873947273155170067119669061465796195392085907921736906001685487596563963236340056207977483750208565834325164760642570074916038459380621197697061286859063457170389636607429575068586882861708231012201758351765091220229515190705115683733310644084231880293486603508392527623499357242420278589531718122197907864704607608156650382335475125929020834567834939092423255729561735439377949284055039179063036761443368395909404835922703038995370437399853491657898427695985709037157335796858260453581798363422702417537611903550359509255726302272448465958627284089769602012635669221996537535276277910442311180594527873170057074217861694173857365676780839352095697288262321565942973846293926580655824541875837726047951298733179034454681613535013333477900217962037704491699579739633227259780058682727632299511862358993609781796499417910957955313424353434693492066228138171941539994933326056143219325508064635535383344421871879193113186117921155484349405553363480038386617763052974148722363764275108952551774660977811267806008058898353699180002739193863948220000292735573473897238973042320588896510770168413184302403348031071898816609166432532692770625458033755689861383126687711903602022841109009954837695911120293232656764536843815546258405269191875383325275725995962618342433516443058486206185621667987526035684162797645501553432399616909464206298554569300678698857661134619296855974430739280257340784244789981959911999382997746747060563987547233479608918016516419667206815932242603575459864544950722879373536549486713379362490667837928228758162492530205776866951640572981956146734551590481415633492525752266003876690558042421795497331144284322331370215259950751241587306616947957582989673363794735737504386730259563688116365914076050925340763629621107140336182499503304413973632507439478010353571570446834462607631225795664751892028666536283106673557554298681050968490301826206250169400994563323318823937550577636105385477334324870843906045409111311016975757785716399828599240410648047427840668177902599636844944233803460379893017632772529064415977291665239374668708465973882384918820624674593573381691657338429967513611784674582638646889211572774909814664888116409330212867212963708097702552976670307881709028514571366270214183024424259409619936866651116450224639329540500803170454437768190943151046120048999504047649696696973777767698988921031393879285068865491703279775702665029219114217155847184094406397898346190630808351458277670289291081443687611442430718724886776299779492279308706792338334271697529610633172489382547760237262206473689190498998028297341131229309621260320542686518483402815026294695524782133868508263237534961508653659088030991492199663132897397141226900080315214315705130807824863739621669260136486079332747472418609445440236370443097224568465179313020423117579512397606626462882603041801196542580525512909440670451327528736683534658681771161849473547852339149570470969651328752131979564421239639286363089528029580544477917292713216586349756379645235830361007695237748916082946322976177840067324457295809183691696503446130129268063209074883918663883402347887011307622537438289483382243869215242172471624633138724803875733677086525150576250892560623419359108466962814930676510787387947904264110363929384342173430712584817875122383929193289398815198025399136988192307868412322217282827648683673451065644284934543173550438938742015844296500248457471198810051715542826433950975148482961436413865172290411812086747779431523814488958775624242091876033580126760893004123857356121095234584397634461812110807961355623630374717129492526427196891533820184805800485454483971832201908826187078701680469608380307636283753257197920522738608844499153901030278706303578046106960101351553299935842479906944462180200060148081526652858897038384591949427947683533643932145294806895787108619281163705899008110971908338516895463811273595421852254321647655056131009119217881018956701207258459470311184177346955337195506159541305373463575942706139507245380923776667935993024920435041836028259407589069213098070179957831432191746268512891692648038506409561761787593097918882884468749990289908512150302528416213867899991734208281111584785329391988089468487468986894172287546962553761437542184782860454277333728946286536482736387351463185301506427764074542750806374631888876353850772725204798248889381926649722292937397302178470654993417753659600777512440297956791008052280638455308466292785946115678881023443128249129137007036413663336968297799251716432415140421906504157556913321480867157146686503818497433466777235681541436257452171236434287582930789727494831653675671911497102245884003051420619541010735628240731242085602487345051247095582824990113015707353931517392731272874612293586634046436836678355574284402315436485913158156527056146851382939576447321371170101182676489315045455749561078900225533294483239688985082122706497379175369591510288888304206167291046577969303367654383335675459254149616789189837950210432470270630301525722887587054212186490535303877887337213380762930117715759821279922854994253114961255059605794408324152437588480285435227112405641287990055249292738316832001810675072765035656579006914366025669301744350606393989084848034369917787885509498669837062248890054861285551256944745438865188721706746149480810543161028022696981600772147846475298866369498686479390815635594798198777013761356668426339750241350451280797662765510265701645619850320964146982036447757965518765769429134872350452058050209256750744467160950640124627283117013037255751975752105053381855327081052840777781119638325186510107198543422348033571693394286212435234589112493012141579479551522215617647473596048563018966252962047499202458140814569376718565511439903080314030728967375997036800772485628312787776052056757261018080963184445131625379415512668266280805112145774103488463861038928765939684072854234788097831412954845445333603920837885981361880387082812165244892327252115479877927519253481195690620145859468684006219821004871696301873400162820776782296539100756879448424225455621440444626699440070492762260876069698965052765679288319310471404544191718878341576063722672538887471988860300905174817083655355098171991199048468148332394355681602471578770920934157795506537964135938530730860799759491584210961913988648756797192415843755038780467281246397069026965917728561148380372714407076803061894396475980687890064770859910734407306260651233502760358068706316249715184613032578793918485800602694823118104113607734174013963218079584315856604114823048183184877472066608147139878949536379777812295530319071312221525556232185072872774512333807952586121639549005711552661446508341583040556635051994253268461545570641558474728625424215166155523647617056354388466674203952423443070636193668492833907995040241569171635602691871448138744306284828768441144123154955840830192108286806743305352703717688799643859438866160446903023511353407180416308287561572065458820152703947421791128438185086333565927854442302492193806450179180134164755178377481891879569315928119735178508060032814674031669970644717985155158265641710136341524399568730949875017169166760546060555011988185885974916912064122175581976311634095424747892910147147998500434609404400987435117296057822302473014185873831640169438513003929424204972407595801976857277612498723820977069828023427475522410186400429566189991779790719404607438664486900029832655379491736402358092390224768943979573775653077271263173453187151715748434708826108952821152124500365954040136867872493261389156172969359666121214193680624660233230276128135718698456333844450187655522808013894494328225135775394641599606816517278130736926978219027388126307845703971031413376741657422287440765255890881696084368424092625659813080646032945615918249003961522234158476643563840349976186980926647491398610427724018554895088564774660383260521522003733013678346639255052414108544033219080228248524603787405243312180097532338313866416501987020290950287203571339147720292326579333243792825563992133462913159360131389384579197952367967205234907420779813938152419957664753732728082550201917791172634882478648635466966761287862789733567121966781990932666685597588346156520532621010333358309641215890239003955910087054221320970719373180030683552182191323219601045213357350825852882037983499361472166360138106014805199737973157148526875301234501133831253695704771651510260276574216053371920770243392701116557723885044730604869078991661648321676459441578069846284784940580371464416801082386917605719140259885379886018379291063186912700991711178276934831973848543641082440530619054195217513520531819711932170219831221794629648823415755014292096518542813656618998751226888092275547808410355729806818014741023822463572878901444702496539143468904642961645259820511768433920003538941437334596358895574218123391565933806700327969766678540649031669091038118882051594783785071684746734320528642073553154329913301005068179128917529405566291378861258415844302983248029549788946134265078829582660948371725445800383760915490035966733647380573322244160912992764079326964070262527798795658417170249183655261893134093020608748712385667845314877250662964619602789980667758143853155569701461388443125295684091201944934743398102327903474523485292008909498541301547786545771602060342188773421175582197878300898753826066110707497325690639227892639231489401776409421593849943593412211215078069548868494553199424532059204784401054690883502238814365973190575323351359800358815907729323856808295582415664168935866742237968317029759358468595802468859166439836240410515428525982256331074067265988211010582950926577449755548574669834294522786844275830145248980903573205676829622623416037259706034492223309514792050883712096687346921702994768194662259038801936227720871140027171646868645089766260115134681757204647039607076018713075211983884941768745544710193534241948448283326619367909038437232894814641543564902840475177230928344555229754878781003997169242032914937923378962094021178630140889417550669213099234130138995430202908607372372877513954790608054751284898108748726529439233702692229053828599869877460579431031666823792800865801620012133526432540635158026808260871084306380726478517743768337618832123651327718357337070629410990143551618855436499103179604135919481736487515138932543976728996961432564377058550817518649497442660285994831050273456643597226354511881840548027325288212718181909096416699894425035864898616936700803855310945019525502671537000245592790440271296276961261483304448132182054245790313977000759044126482176800537529999507662677686110796806898499226313516377928217760165955391785306462266171455422948938077349389064008963650394062569232372524863273543259514656888925162363474424148814418113868549018688834333031915387443760557647582039326240297837218467748467273558317697094923106552943161764983344780205561612209037982330271443223664882019205349917289443644383754810995071002475608974417438964687394177895262025185675431571691366942204047777979759035336210527833712275049512340715265281593450700351789861695948689636938876967622867323936637616643112331447876223643340275594545185505076401780923296414126578693543605932508708184596050761902001971945476996923408543528641140334952469879854907816367565086939514674004312210540568652418607496379419249524755184744960931030628372691063260639258913421644242103112469071115020114067529203199302080177151253896894553871925327652961815205262632585429842439826142860853995932113444865667553604314805974246348673316416879535533525828755573366592782928210164697273757444143975021398993549641050111723183612094470489963695487001962694467239469749862030275968345545255799098253872566022311249135296263572472657952697403114029244308761877024659054151464505113587461317387301126775411837265537508976252306399964185104393627863958857316535836012218081026874077083325164644974774659271243597233397814247795735238059724796464893103233511496280212735818799069965287319400699172865321126654096181178824662919986299064807499043990997782134000083228826926518424904878494092894825279317822291043471825158564925283905880771089004966504817468733714403538507661505838837817859173420996551255021710332223772742617197162764026612510523429613179825733641114502736214120853026851641104204610338051279307022717585979134406115896909728250696399517526334885512091366101318235277717163694001834584368343880804757137416323470566430407659388386444405145829299065240264152205800479592632319675872865779928239822778077202303450427338746096165317832560561941643607141638436999555909241678505644375526116079436250551369079907127742408455794971692397827185335206120451813976438235485487806311091389009355067335037116304210464254688953193278241248457894764050151172060992848391765322462288766814489265552307063954908875296549373088140432713565574611593860189232592174722136568576613896330453392172660169374611889997621409441946019515472672039683465591813152458642048035832366543723908150104744193005965749158075876742833581326440692986961652795465731938283149444334373369034376719662591098410272257185127477399217968705268903934278369128544065358963284854081559109375681723622358738950685344871176900648204717931118307545056317189557020323593036287992633767895264697658939246028184348933704913190713385084584783601448683498363624404920943910266835158332177574654201035470999069671413319472161862454160744137228193807693420195750494731159612701637287752407753665373974366275542163950019461010340331590638502700038624850121333658948268182837613331428033933432307043082821082038375872851620722813049404228824593608719079914732495694772998348442792997585676228399539107858631399086172247055696635961969786126027174094686032528193220284228516268446185700850099495970388427680645382088801043173421735224989517558703515417636260070166738424523534864672198294625810980337093740482134462758142181012578528415468459785338734231943259992971057736419130617834446555602388762705858280876395130431344406592280370627647092238673727047167705382166882723022124529069832567034883918794226027144013585547301387196782433713211344644119156533273689798015833483886759789541781218422788643747444419124083379141754093056019193039433030047005650753226699325525696352173588017023643593532070339829649933834421817237135621953791754772976942331047978176574442434276379065394664259910840725011187922295556864306248264660923106112796778236482651575728898415633705950102924721514680391174102315231413508265142043542462750711409512855264595083122322221367341975791883520892304966154162035122538335945265698064763029707075708773423276864802289261470852049664275012043764665073423409108987602112201875683068856251072087296575164871338977552474195065051579347705412160142199652452920557728581329364445932620345563840326856293591764278052882312188989760391236514772790135633724841868649777049316403597472381562525242595133210189124016805421377558734906695237767847418265724499117674784020758608207664595353455205487539458860693628955932188897610928146975936766244910877465051414299706646119919201568323662696485051147049792091112163349540503384799743999293316582339046915428095647940225008340130088589091885087821510549829612018016764825678144048817744733589353472621897903990461640885233253703936174657151037062636261056663887577627112451228251323382523739733356820611807729646116543240805066293974448554567467875350465973319496175961615186848290950940768540953299274297362549796542956470536807284788098313422737783167181499195016534614807958639697440392043169829943091716213255336939459520068166958997818774784354781682877733175507028299354764556747995033415401458062868809172176688384996471308858016556001975291824902636071832006902922932862200825133597629542768529868172903527741957512566122868511292740692661009400689427430385339293498854138286075826133971224150324305865311358865021107380652486033757192080271520020425283144626585935908877654780498135567362630713301213438023209736366954250277696773201027000414197227084606279716286463687524370633510716755723760186014741308741415135129399887939115740909170295394350230868831122486195417830163315437446722596495861968185241779071160826677740242472072323954338751143340340254464576691687567248127871490983839933515800866107077724542789631924183181911805217900565958839438099055774170653940994722315574053991098709719182253704753067072181835212879740129263118658069315160317624959221671185283334633358502434661027548296691114741552547656854285546881633399942195945175235526647500712469319128322920185719494168481392775404727134657709976730969494763849467290451347211061673846560800722907005320007968386961898261261449564522467450085744387243472937347709110263651767675421614490514068834236600598933396863723202600523989267113294016945156614767349835195494083078469227158957240303319676909797965006096488280346126478987283496306185920821625411389169228741505704802181876087899855025784748516200118089688900129908767062101433440156736455830495862921982022563683985115140675192592463001266611632081449269657797445873854233592069907453888575194788388503863118512471690803988089266582639959699945248511093999248683890523425539554565987438703298719303191709500476500977883318668534932924109685199658665061285697323766129187123445337021802492852609708320025263717042113650205651215401899849586316467866310368833649995507507659302577263075830655403645644456816326269178309653736066046141511855973311734871823687460639595707780099796440744734751040874991641908199723293188855948096677169210488152750347267622600806937909939133941364990625368108748944450583211880000042113964205916932082972722050017067773963101150377056100096109485077856782022741317830922875570185212037504746018489678767988702664412613050556982546647524694137909899141760423003019531460710724518798031743953614138192817526775148276877911473908759586292543655269902824233489323381511163087918843916617677911686254552515354173912768477471465679495111788710573504835584597756697810375797611695269478814410392406663402688260463343284869397929757827204594791456112974294296841319150525773215566248685561264406277138010516557684099713703265017013950027482137781455099510884794004915662875167283762276860680237051540975053807009257581098241501917410136542999503754106821325291433905131866466952726791467560498894058625414687631974667810075595737859546389978683889999519292816010680591201435793696543187841579270826132454219894279853675999363071097681350740108732326074776555721502451535650230412101915589605116231784388855067952342744170653416773532209185528500293839977579623275331931170760795831293963481838778147838434661280803537335187610941660798533258541968920807033788015277627072614168775144818025791671339141486331324172629878076114733204186522828812684307079748683101034753261037355243807190182519251537959856622513231214756525521894755775423419273021023841916539164459578464334610711885353617279299124232531404459065810311117488121007158772229366247449680501786425326814631795701741812790166381858283555266066341033311280484128692092534198697701784787734632685943901452651506596087116845322488085836396154622838650960451232883031245720526263785604264752479394193280458614074756738876931131746745665519628931631076773896597023110328761857642455925340035732569259998230122583581762015015110588091153078673532925275873934290934911653478919906465323004490335869863440583428183575581320041523410474943091687996778235133002946177451449499563214741616958228339222688810947944558981093707589159581629954893418168053949876719093079101167049730118858135911123542886009188040929815433619397567840028723945299198327130854564582264584517535325979753325160143219339427434238111606271326068178742715361586589140643542863502306857759052091001335011046468044829543436948645191333588518671044369319831086432095544171152504599462060729643192818893347492466094640262942541417753013608734742503333825767911587746820429289958393155835616069649927939320896940102580802881435114909549924087542224868309895212194163989951092667405572908186730232254189131950696484422350807646693459310693019077243840040550478377402591617197764986577404039648161283616946861265124495193399246770649085255332763627845511033572182202087431627163192689255354455163806800736138715507586513815179332374974884315097789556870950346128495668140500572887168367128963646515340046023565276009596629195439376330933933472290784056560582885872173178629934405496781465936527133687256567007823801722792637541239491283466620954686494929670700780629489733584726575529892885756190833047664336807152601161606367574384156716890684363887211402830703129249347563007553028190215633693304568593583707270046050612875208880662472514165892395037027846126457580863916957955528865155158014864097193475877212813818037343188787604241275902078300582442255740407611569608868048422724238565668691325238813914681797121791765979416963484780004180116655095054777000241060208053518346057059265675259881781619038579494990718224546618766892179592147988462775488813797735269068813156975107646996270050477373939589944529458188360678758717493893826361795093104713507950393469514529592539334746982181528024963704524748824394719043326256482618834162203531503568752791022802637516339879757707208200302459902306433105244099516184704534897887102340564642795499305918956622094630860628354247897838335341667780654002250930326555242980672635071944358669244808163622536110191632252441805026133868356077565746086838800785862191228922652633302517901299851482250177435852009237218617958269179324874325213525762924801620361117403148414104547512314216439873894605295582769577622853308243652451269072645681830321985840908686828778789251485237065389034323193159066335386343595940109441204516525961991519428518031998871802699317461817556445847456784594879466264708245165537771784206527542111788840447797993903652174277022158653278307484282820652489162087599737441448948006394217948353449811238766201676845987159283272045540296872340999734906805939571812704605674713241749810363431350749098609502439240312611529004898143286548787910795369529520693402974754503860487940451682013017571653557121163147655112936320185281992390417959695388741701778650282013503951754454264188985384403908674731911061625175265557645077183060782007035910784945312718355641823937953125070205842689138803189788742803870704070058484558473807974942646624805236847368792520056621846629024594486622023715366230484733308754164382061967656978856984212339265276019794271323122245812971480429554047432140305589658938912710159898917806162133158650893388862603443673160731521167178808568950751395641563506470977423716623836153927964522791761704349522328650858572246263014008602578542885182247581177548069396206280723466254902416333733512726751768367510115393721126875817173779170832287018324641040033003864283927494975461111669144557005754363814404231910819232071489129147653130676597720856604239979888773615436641660753721905255306088479658235180680378535615455991249968433252239301599206546223894014540522346989152817759523200173482909895541663632040408330699177013554023543585226218950140283263819771330095975834997768980736656930126692890954162400754679280578755125280319574594205342439724522562112334218425736148188228652378305812622862766167926680111067317186967255137891203861136511983306423311987461533261569439232737071348481889184403879380169575404257382724316908096715852136286731549214352971783901316779083703761456505597589939933026109374719592581354357735700479733465896507400261405793592495589540804142294843879657675485279018332193465555438411211463947278985552392617789842955047755464413232393335035930014807284443160507853814393857306545752617184193646956353694603796029563871565366714606384484373040557167769627984617974729974155492467113954292903987766062035275483428913156979979822519380504240874926118991962331930753256447499444503242615110382788918428816443120048519071149050893297415625460698141932266166209161604403866231541427674410856801616259284085438370363817859208996219447901643394152002454723976226859706884656903674606161452445344713284823306412095372270976085795743800251682517679328785924422636921513964280895079379391282598436257278291143719184863635335379416902577376241096350378521371103840260367026474984073962674867567543355509542392492913931586407771376362379730744892279975510991803697580606199312667518445714107898677819092912275911544706011681827646528929876588154208555215381684304422633155440854426336741186639093087818929718543330302745756949384049122375212996274015840766961926682139250989910227841330715455994867974585720527546314493587216943140429595837813038605752044593020551332657470115731882137565729092171823236618547113635360394963037210895287157685162775633078713983578303645116216127196324378984186413442097927668049431338018199663097932951452750761031254408296208654606166243763781842200308818781457662609015680671682872708308772332054776912156887732167165415322345290461812071996074474548276376234071778625070607072798099819456457864815847366871032434650820076923124119429928498566454348126309294637666708947679566852690889903453156177983234905341603109717059900151891117253976021695879822717354382624237523383418135989524665664392832998383810004924382879826513731991448798933723435874836807364007462957563314707467986832223050301347209669045975998502123033054703721990370849179980891296877251884117320491352331565921456158500555721582855153922100565851513758137944942617981231267692104110587202246422946268722940009643322185141273906765295632235387897127197152571130071549319436344290298176561208407949434947032350170025879309937316147120154747401807536784277107909197056167388757730494378398510073095591371246752492360571955730189278160054191198659979620960552001071029401932123113710056273766313758085644616897774806479777895976264371848593531191982065194666021384679795719426359256038045368075026770851055976700947443131440769824856591640795457908695670561077024898273940632305019901442726102547838510926055361981701107046414466157856170848622617123908964866670127444982039019699285154878596703908982387137553313715680303585490795608774748839047979921722784910088557633150456854198306161951676724836993037659466019357251575515616656511058103719204506819610779713477905751550629449004467960973522456970790914062242336799950312050026240246330173747369969574657329165814968306137414558918990228830526234754943124796345941714306575115813261470271760647421654793304728826099423126479558169884470070846946638231962269641966393142302484339809972388098425015732055578627689608506869263881891617681576238298156603234629142204998979632483340050871964328819418427352123377742038796322883165706764707771559226040945284088481467221779979955393911132067708259154076402658874251765854517205237780097625321486879331593985729937043358285644523570458868028588639308899559466608966669470359003628170107974555341875801536544887894002428942486270099837998289773915866252036250617908445867195990162456795260364675585456202207228677513576387412443869387257477198949921208436906013622637363744056316831927431320585464796746222690826698173137356689168384257636411525385737030750326952915454195078024469169169434463777295633692613816591344403773857825206687855472241764590645523818904987983870553506223436615534088945399613872399304192096251096543571670004523111360971297884231730521315898570446819476779076994210796748388169089776601012571831200364319631797138735727055849526217069462844227987242419542114699696260806530552377909389745609845675935828103977391854578724973131509080928254667129486847214015081837760637917779063759329150257343585918020053269109175986530198576869644741198590741764150941086559793033203733178960850447657934950485361746521757074006833870101354172561720447366260361381631528975924277177399467999200340868832381045051158936372747952891720003196241964201503312511571358942576852193116282702721686351283610035297015526601150071169138030406322031556102260435878542673640110995480614773131104996137972161964642537643790920025348361160960263321879107566171423400457391425159528882216525178497373893415762030898847509763044912890483985348752223839433263631168187175063047626232684705709725950354226369750308320699454451085422263769708800977078247253248394622222205285520255841125132792671294120186676704767180784415318345672187217136792618305386687608420938358802541079099337163282616243311562689916906879586299396161623139665134989658811985316989894216007725776472830100125201219640609301819073835613821348887619363987838021650839367039676136237058267975508147257152575367983000884985285662011798392590353864282780127917346162655968034172771100769226307759820929766976320633006058121863307181202702596406989206112017036990665616549274448638136851530570034477949454161842665761829251881042599925889330344022172348973507546587629007064923738770661448265181971892991334660029034061991734789092559407269429659947287904704896946424983359390822229208599636024426929959859815735916382398171992372913461586739587232072363179017272534484132969662427715456105868691601659661951878894627416388629915662191127848719476241402773266019804997635799943541637925286195631959159303981845819443044631074354342329689381368799178714752033143377706253104628753051089296692066771339552024411484891269286340189766151009315892296989359917476549217555714584530665620053628428549409213129958090117947197916043353200200887451088830940040794665322574889006480754820024126437056124814635719872542113740302646772689396041606030076626821343307146930042985142014198215242744297733568933018819222806923980674094561982866051291130839934741729966991395800248494616917925154803596628006096571029005635924388731952606292977918577671021577595472331066226626437400787592672153938165247791754205364788027224460699084815648261256225088368732084080824092386505121223910467900836033075979014887593420418243249868858268991970260506938881950283009156239635612410252843919235707159698393230345027456093989427058530424449002536115421459661648962191809090441086078620441349513892822297282201493024245400225059386928229463397349850676623097878706133376304647952013306052777265573987977367483692054966162993810411893879603784167787617898832318403714738165193676150076936011015746098258207945946917338200415028680296201809073616041282935197408464690059429809085502602474981393801027840531364472054538835731995668400597615916460999442871276931068115003945384388280969543657853487508993167550159404854029342677810565563538090538499212630693554096229364821071472278215630340770781776912584490811581616471725736284037518368933613783166763068714798904781348823736115246717448147080313010111700062799653233014505959120216863045605950703576548996134801603344726954964619596303984578553121197598353422019146503458975133780550153616756002248677220177392614852552536107772427950097079974545032846398951404225459634578659074736651730709994729162781419333343235392287476179629823113905575762825238866541741124428240372886027899422946338812047083478362094158932316611586493914666733000194610465883697934587636432721728975360831970752923727136865581825878626269929715540420431477673551545972705545794222692630744781274963358202910887286123945398727194408606529207104934353831289302218399932833933168111768078485733324433827457432933727481146936903231205725559213831928551428642370731579077279118773637166448749721052355727270477987187603171525971601661835026642874704488440112086672127612552655445782943221573697932570118191667927423657144593157578075680364588840589793149479122738774426122238471071419746469240540582441936735748622154523390398535609257880994889828711786784740997971226638258363869804891284842717425097308321392562765069562827279310871982739742032784444089994335894027352815879653191406443028683566998431460576557809091937005191432433498015311619122576453507390002129698654412336476731705448425890419847174920413766354812987163600984547110263539561373213204274976100634683863445622444409683826223416324422547982076811125468226651812076664088456740742248682417250094044817754683905421267715939273979999862131365802370159213294577441959422962534733691242998353053423795591968055273860745946091039055500873596271488970337438597176260595183040804774936911176045783091790425924251768526316834661146670168766210927269668689608377612517884625775433541399236110337789346762334518187313512874275594818799446105386166749978989146280154038889212782068250644770297801862745244013489969348147024716201407054476839548538581769246589129184964834637276950005773497253572407172743248603003180047202388333250417042240975704625061324567015390684106633567774180952071746430932804212421098280981907413704532910089818022927679367729209252754802917014798712054994227582831462728454857095848754645338285020605363394771050473532563432453318143039763020040205638218298069098100947857225029848158929647211498054961958478397182843385423729753513784140367641437203960681209988359994599749683944199463889717738079360825197460666510471432330917107084166274549540588608674722855531600277182991068274794118942760688351077972729501997043002563091751336500869486602912355225119052228646985384084233149269691021582743905912991755627649108376003112891747307087738536702584849824547823085854355040991926415509379838719337532032124242342702590818685460860698827261860412781723476377894439440934357673836099730714486354839581805332889441188202865314713988533116689999723406527717457026538019099071752090592840202548312630179298556289234303420042601091292485938323000199965360555844007504893762333468370382143521290486127329850860264732914481820388283755357802821164490281724295996870132253247465947898387087309062095653742720809811493446874522583860699292935163443054290807054014118379193155548857532302341875309106692714507715086738147419675116248233382792746448656852566297640965453894191912639548150782283832173760709999138418082638329580757190822294069669491340274123476816068961774505269967575614677204235597227661466701369788947618809876820524128865256799812456911314130311803570871490967043328480996147330384088643976520268279724667310479691514192792839262021288261707093910380381984458898367032128213270441756254928243665816628454033673231771572614434827648495166703475609576554201107568021122933429041206468060336446403377511931376070317842944163071399071427067302872777602607911265811205224143699567479957379564562412110183212647378660581748311257260993484694928727544196580766006879719041498870361068583260520626764692770312393543845814913194813249558165218629913000856007241702223807865209280814595566406835223053780178135893764340197455435827781720024559702658693258020942074823701195780691742356159863377862409272635104876258049786289341356588028960566114743866954531958727975770414220757689058369007793795327112048832046951112335539902081939099063995873736014538541470785111611718153828087359401873807660151421797700959938589637622464223015319484586537279866439327468111814697514242148285547165762798650757080254003852072666823966782134757980131347228612464416706576416194978954425919980924080930675835009010339799595107743462716721887375659915815907864232937271484174988335398502830047576733278308718151264921312379905554176206180028131035406882872869512716363546122826387928629711473811635465239297967403493137458389309566826245959357397337876581074229106011161613850497217712695702992612103677827787202136509581924782828161209584819064149325627614294204140908510272563650074224347952670336217525010708829675386310994150082428477192935701630170942613820099691164213394571150536059698763176651682171278858517109235966241593026973652172871790746244520579729072264506679126877363144458052515213753577216298617551070898579126108502781146718035359046320016886154771845390480339162568889677619271042406031523470116834122566315881487412768022331405073897673604011801493156102945086830165652764090436702448529455266630280460623146780852148824167718680903478738248101132846065989427615810626343402974282995901543855595881780619162128410139170499559841549990337696295395523951770002342007909103714149989448896785266651439956001364480087395390463288372821843010915530609658679757328466836080722287756638288563047389391327572949915522384763235580079719654486344800771015989470541377635647915079730027619878811577260818343751067222665925117976831483251600793342611866830852389678920982176338555861719209521476735770956579178365143909776242928672048972783755673472168296542203911098942364023566594242327098916728220633018240715427529216011901993945448097089110628805368209244312654393528861404730042248500450080845584016187709938608384493581249673523498984465268764454114187509136210874313875123074360215818694045676635785747563951640952586090667902966172021638822682292703894702622052919633996192547955525272391797544004736202328071079950717358306551323733676814895982712118950294500703828502012246632085957792732660208269255781706797789233666273406543976186197455603276804088537343328573120435185938865217332410177807244308388188036734603100561618595504906355871034806627870310016944118784202114648127344634797908022910278139619305050819452629714227955614217156753351404072343866439328967202608281509227578212871613195600048237313007423127798883226222656897466803236080419940788857276988643241082769914482010097069042209461570078360656359130967529514443223920222379322224840580203161777493748882857148180921185533232415664513228485231974718900906195522620116487981204935113113855591081164487434097900627764270449997353804154424515221085176520897393773878963146773739007146558682349030169274346204116053340828341889733769867497306452151402610974004061230623134624940524408082725347373722077365301239014826512315311987158443906146622495649939603270154586288822577332012900324133713929218671709133697868515990793801108519210652696053172725609557195626256103098295837669635413098506972123907117375538668790896330008969884669253337295840959096562861921411244489069108270034367774408684731353681101221126629110802627350191285641045730271877328285870984964088181515996585723497611010904542509775607594535942370137736721143081064122355586399009344603215344530646546200088110902527449943407912333359926386452628972682309331426694881912688743290098279781594955958627090865780285931177699437359592082677862190653480411156618934715268217844063212430020489298995061102497592182591778913666974422710992774438305396108031618394087205068912055293121215351438954797863284768368228311637395758314329641188259272093196777770676071694828814441067443112057974652215809800429371096242111944502548641050682402469265346327715322171910467012965647288545424410047205232103474497480265388109130292636840253098679651786916524230869292193521667633309600804590762525430340813670338979129530812834572435011339303904405145119421792320258916916401743536234490491712959502935452743097882688628660839038684494327103511414076803772576195017714076077677910678469120512716223945431239390423090133336211759492922588170498801999136906862954049504717929326887883047714160216350011378572612563319215308357000519093571658168629235359359083899351498149725791267846451877274596877737796186872231382265066749151785727733532072349082012965125087485334311197835582840574287235161586958555906936236258002280269364251707726740354653356859342557619004560051530496667997358197199311163210879759358917155603095859840041375821621590356993593271542790571977594732102938484174097783981665552395457436255383685119659346639567393357759834701498072973808785151526117919963440982379619445373269051452494857621218306364215498184199218692504037246062324757901901879815023375494898713151226078593736729584989522454230387207289281932520863396175232640246078563495783225436632269168599572468314236173568447214224752676234216293449562523721054004550782706358566604831569388018576258123068243189434665690851804298562372494775545473472168973815944986380638770789452146984254938042833543912208831431164127352403969417343070121140937378605307878613921974206595666330971278605471864026150770057149852582857861431866104688058800093875464218281987307270546552822723410930287575992029181801194324885058449271660528749622843652177665807066933740283839951577165271899949554156082860818493014454709485548253590418101089004546868260372423624105674302600125229753151115534043308032333161795653967927685553180292739247204417718247760600642441854807864021730683494176700632225700365819580956337780739803107170323408067324299043184863201842433178765226888462273065453184695617109803582052160340199219637086927409104690032042642442559255663197368089185872227557587024816436015677750413446833175232682415749087084675903306990890309693881344255670175809258188872134827952204921448481594924043652555269503444034376725872283396783466997993479995072280973518795712423654822000226007791877581898417589831251453994155537905779224402300444588526611739195042039634215618012291054193517841611548263806403990507924248405474799759936386103951925318198843291797663929246495392428351863437420051821572859558132459277343262861105990797523358509796163862658534388164694241085977493301929286754839766683545377467959729229942660955940178164448887421582181128127306358513444155017747558721553109838880398026652816089511763128978906916436498908832324795218283159415832513052212281365473509364111639585619318810334475538525849513087039565683898638238445813057151459867676259191415995229422504013494078168208504890835944138813920679960881069330183727869498120906275435999081207779158880816803165593497640824010676737446123130595752407188437328554542443599789648682792811755161216615070542413734017936231853445257315406014030028922486582843949481927522736044274013188818870784712335313687653388746388007451879335293348872111696083285580694145080704719777634623528236815517268694556586884987841491716509964354846600160767216130379527789955115695742758022130560072146113920585269758989658683937422809232975365493287439968812283250499297655931932444537395695182353771318678718570571865229856963104449398734302353544567073211768190605799867494298319788758561498288983204045563362043739130954860277666887043928413530707506190933417393722685248409221034157561488105338297134660635606770968325674459816904937457149767156053736317724262711714659306217561130000444422961519115040758303090399281350841418511603812959838745741291978764743894205114812275876022326914253691208364863115897421233707288100441853090959659304230807199305420332494309262864078225791231089875739340320287655215673562156365158818229585078952620476537742979110657421216744205215037278962115475545373628301157032900362116527710493828243167547912717598283812226498655438106931104992573091927621997508117857252085928255200405578462374040646393017935454218992458541922302547444334884498942218310215780773022233429110444188694757157662586752955536364817525873353687793141754856256739494890261776807712958406006069462042839846806539615454670985512609267129119694510622934392002109196091433902493932300044988507801111433982624120777055911782788054046206053188561831615420734002020040898071190523337931495723097003739054849371424453481526344152566050048089795284177255491870970772029061504056972791196921769534510328227300967649823530634064174388439431547346251466831187314878796470070146413196462258513118559914924285532531562042874192138912682321550454200966754503086009958353144510210895900674145289090583091759651838031994819308090081522067207603241237036620814623500896084270619292049845109083109203130570569568344105402353199877040514397018400816932650488368802147824525014221830791857301469906187780920755800021396169189973958273176191085167313392567205872111230835820263906026668254339346586723989841143558946856832518887259120551863472257289510554323221679008950050505212637921387237863346881840497543069423602762472589394218743286052643097066232646947038777050359692814956573846084516993229418919563456426016133270288059620744606418681114155135826935277975893270642244056354799386695195272828663757084869743597763501017018634221777587130667923447542531197346784372623684861617495615537519102671049979103779426155663344806549964819673008391606436298029638574405580921708798070035347300439936914216332372071834462861924815748912587070197615370046902544133911248484448275613865793630863755187694432701442434760921924589359709296549013296979836415053489422715057598741096453775917532380141368480922914825884590434042520705032142439786767695389884996327861302509175260222304044040374062198830446512033614880326991899153287700329328316266727628270270236625126482539409810750527702000652476465633238297512538608925972030316872158823130260906659465981934729198306252469472424535914076726747845797517748089272831633597631132952313620090903904268370441017226219172285709023572638383890447884280760649082273493913320649035727982003162751063145706848842676326722465966732319299595562163043053005169041981869355049653158376886049731366127892037768811841470659861295166220217453193043180946464783245126497265050743607255261211853135521865641120010866367664909358527691497321476306402652456000121865859890246536285005073719858498703360126126042077331594659458245535650588616805738693126031424379198358654760815481536296635521112309786695400747545281508000858791722304774390260037131394182096074425752127270884294092898786298983161622737726703054008670941927073073862016942148121857654493024786760823385609981800907175675031443444319457254456055364606839531548349407478864929679754410427167099162151479727000526048978400427129353349243608541439451633221010974781324202260094318367573853099907633242683805545877107230153456839106597495105519388884021944665308689808650406876047019251289939144162199310249998848805203364313868180835898156396679297635469476816773543617200088495186711394831729244130035659900476845726011862642027206406098006098573134621686249113363753782709315549557398395563742353928543271540706166448731791076937896433968109145693881597655462181816998056110051239925635729980713266664701902965515418611941480684205664960984978547538899010525834543088492512267321765525734423177493640276925774035871639565282271154908652396548024766675622933030680411118733032691907255004654101406422324605973578926515386742772289349048657497215970946101591331221932647184562414070980975179026531181016750222036685445452372146411047333601701442412628098916800890038465799684717520974869554710980902803528448897072307568572841495648855021990758193066590318387498508938217940534765341884109280917506101263243011333704404051770138722971502926626087349055096234024500930376909443370024299454191241683785529235089121581937784897855093734667332077494168722384305116343009739200847904173243831454433411848888233414090591960287102040095479115035631738683758236559732552616724506178980218266019703566613333712356376395325339108750990621873809767841955009084291995522400247286157581837551502872834419410241717219303102842009384115341446285861780260228998829671942962532090343719145387869218544744301661598925321534910006296097051689224983020279555937573475805101315327581819336511862663706879302045556793009215070201510709028019486880790383263011411346378298766741977197846605290787004863297207504808081883812995123441466637970588272975381183811784723984964374239417720927377375005644605087972504959751874538244351405644952949358224700332885198241781072648892478765152986082056973254591628985921256294342406917216856240348775456163273299858064416901682797506210455827058572430837062864081091943077426769967647979912965486520857568514211805096081512101010338874207819007403866164210102152171551471827170860301036532154085350948796573223968789180777341358488975409239439226241216825873861232282985431654389710172072712640332156384894920089958997794347050655629507445838164929948998680714962086646551157575986573132355460865867490341352951016255482692258131754141444633974791033880765775640796984339202101120991682236561775625470175668192715851710354960953948135144197272393002423565614101421272690044547431586576917595148019719309123817441775813321698519336070209093278793914179122129208600229404687076470927816668306652335243998003284566635918871691006784893459856395371385572366475354005718042643630514633245494287655096972574465516501084071215758617528246601266888673081072732350996032749876827799350740333572756893214825568320102992577666750653359297058965074781957682735438886697428394842348430836739481863087446334718801479307894015008762732435076373400782433502536770606314900106262764793808031741117177142722688110038845384255729087184765001908591494662692066753988549742363609854014670454502707608206682210251861916071914928716791401060343827969747267643713797918278389801833619056090432946231750657376764402203928507700899439761639230417340599044828224147841119717465633300612405812755158948697347361210857581741846738599691801572697938018797189256028742156138008325683956637866001139593101656717124415369606433952778699937777905899131952265058166812577152888140981670143290480581672686095199486471798982641470590306592328844911958673627461789889403792796054642373477718741342279879107351269189085911739640329979824857685891141674412843849228556055263037957445784143035635214161505286035638234757333279268087308203456656995881600942661207211547119789853072898077966167484842020793700956666828182630272533361961525411660997773696150002364794380004684443360013964144658722885152713028631455509379240155584737288673157129447161109351337901984897432319048545702379951479433461587000564314298802690385080029661116721740519711940999418249637484999445154247306681557774236738737707107167438695555379708135119814124148212859693261014561924926180686571614488996229351651798335225362302763903303613419982745851190600614747203582784741001301594083784205413845407806392688991620553380538394818951258377994761459066578750933328610795160684705131975043197823351038357499785394969711003837973250308614590939631817963202550582288001481920562436807741187880231122252811795501044326253631353250616517848448147310128546837327828059863880899418601665990532801098099934350379083729550443327907009711776222604704584666488033237790081284780170442733209175344965878231301926604757454341664544776245491220106670238903603064900388227504379388944225060152067467647630135756325295923418484274698120975286632258298022790740391211506804306106081750248416749953206270491835717429822379110531289178686747009365942433350959833367274530697489630158744656524993487948292611468785311893869551788485414177792706859118145947346984778947973100929678481629403513074941202574063642943923026225656157785083908541082643634694399236207693805475085430711075778393128465852120601040192843028085017758812184897280776649109531476891954048461066241676363093706781804284817539264990683479320814945155291427988740142962301685429543558038565117851510835504093805661132700488988763911429222601758340750486146074110885222561104955900110875355372158954140990664519802933920527099512419200398312642339123296543884235852006740390463900753105254372405345278286009957411585749535013097156942770851880862514352823112883697767147603703694880900136590543183216004431252768159404643669606887509696266308045124045616638605538167991635451394515935477568949190539899615829795452438476366653386421991302315975852296801963941001482961699768370038879495181462063703223652083790567678536431547605758830452575642201253664055955164512928672530169340052715736698515329543227330184400686331379717670745329600807976015958094246011715431038987004801957650515437073849762390398501332793030212468871107523323556844847472492824975355896247624001486035234837149457416426562057272182467080992726488801435944894095218927865659374909714687203641274648996315623019662420003778960824033539801794385853263380533992291387695570369642944618488008129004498892946999496733661672846871127682267608996658268261897121063411898620870525461230995227810513450850838767562116357791883246709430303006648131993009839139161272446458580877250633110971622684988144201569287659008117253479146498074335141929504978782276701498579855541595870397347960489458922797153339320672428129056755632977884141917757120730437357380454748299825353392442019598813625203398101091442114809889519970852489127767524108556933737806730275041927377700714667620074822166496294434828088398537238272097933822687614638230761568496055385925514646135904335887021436198780716309379367420505302582195564189972721777671567260608086238967137242150523605107713990936541757919630826989894598423014694866685597141058317794228947406251993023942056072664942446251053435129118560872421222266211414008783556162294935786693663652975802267739765457320905517372574641162252865556518918093167215971508485690715565472646023017167025836136927792317605978783187492807555545955233024955852981491726728440001240213853426661994454089427816204254057849205636017864207462201294724228488906565151621776898228993543393694658446659537956405455817576384445652902213593043052704826249115874010452650990585079530115965330344915839527942311669746891263632009087416286528890734009048409055035753700429110093055314573843864420906089905196398729727271131151783321698500682354467240049695243054365261638559490411200176916186449796719211557468672100032923509228379929129366933944459284848252952722302784887290146687772536251215172396853305133605629788347971290391311315561987027088456762550887267695126145974885260018648748189091804587934499408549573040192655773778519907729000188028485724674658617028165178027997064902297841638400984132235993391461484943359276747411683007944106585685868089049034267813409211934967420222139638045194551001487873111587811202708143658663120654669171893079813253920950192470134216981830124418507668110997336508060171059922340714933896555268569641619966259642990338214968781214328146437963793302508887963299358637220574633981507331786600701323531665170660213810126449706508764335721402235709753247404849124048854241569964606596649441458470940835345129072961547648604645928817965942486793493337530925377387695832358554633569993348390921969093976820525925010205232824798186845136369888686082150289289377964225676066318367125966525516202129742030488098856186908911779530119961996809250319868646315092833559590534166302657825650879241026793607602122698970599061137677082854695071557457733243432582157703854343587545616676851294379221941725624250080395178452400787314893351139381538748743803926960362302021394820535730176314281359124807706153440917761055086424094172327593006113902734853145364741350216419172612589265598043102507456888643258449545977990798333726701349189817229426253289208145369891233544506409710474571934923962999339115636693176382882766129238075339769574431818044321846357986634029983911142797557208267212092267138405531358751640696952843312063141764930461563397902891220505337906490848037135103432172122234480950212333975673862630703194565450177879829358130908145808507695788806369687592036682765374785574790565475114531203415516200034124569211947164141376763889167385723187732559440927423697687414184034257105823847609392181071292101312066918998197171794687612938754667237307283087315351233701137999712208472276818675568188178375899101631538717921157399039068535326158521523388882018831667242316419520230596730750355061915710727924062006581178267097935900161331772732339696314579632801662418735262360098906972726770965504442723955446781647898004116601170693614646883214804670137803640892125154077784290448343716276228699875739363950502757838533617535218603385897957990883894428932932216874825336974896101707967438238334049868172547441203068280751869872859396683024698257371186565855191337569242717009630212643446384186394193961858259089072312899847699784389879067802606336093065125713822701343377135161440105401542920530184561884126580553182701180638709045106140330886427337236011406108184136591895567340484765453414725174091784707556627566734029650608398370119498745437183371790656668164538908217822428205545238867524706855822451318669193914522069443134522155470186937011571638156007544262170699544392096120567022425497332995667744944775988297554719140524631699430925343055467906111873540525890460104488925175234115101451185228527762731086669577273770756233864736714328341156590860537691990969653099698892444073822705448046054541795877104996813973801230085115422418424070932670204479604228313162518924560926987096078893385030281882420391695608397652215297850285883174132450403157752801311805535779266242127949711831722901370981243046681086275117363147016142493786107568160764198019805816779869650797150984351648957357911334416214223699285320289903142752508070407155015733996987378243039758710837782268503006148882173941690256595900565100487510191585578585673046327813854041441386077793647401465070550425272143298405131408066227190793082304802834442488214170734018286893608788249915655885749170742333389213291072558537017964478110404110986117042731146087063050759918315301142565664498454925642974021992444054027172796298434089258209527271203598444231459965838102182016993012194243294870274559267796031855236998734022745709359566364949949041886169318142941080864971960438030075705147410408291403226673908114313636184094642687744420684519403307373009902043252409152748258604154638096547048662311161020025922666604359409974806077162470732259572179010577057421113650238607962228612339270662600403479834946610008964292080752563530916187203114865752093114494834687445941139645632449249973173359299839526051926834416833567920415294684200747226940821151563555051905920726063449695482122476694251947949857620400272431901287679027540329205092105818289815826258656159715803536343439950271095472127430683460533788040148885727611524469846053216760517463580505411740282945114056531713026763874588083246725919975295496630704237264467661586773953565199577583046593140748662335288312505357059429720267477173933388782316246693587174679338107388322418021686650985796982656340170945816178803847044514737007249913693980436892908752510718373386347448043870670097775122174917923813529661003265522585366756397769731519788629702507845296076426284761524000511721184892607815500166304719821261369826971489022727274226464478808800284538168028560916484906564486637296073488700796721929601009672499922653940163768169682071993598020202126412255570335213849944999519529557831772008682432347287128392434005816848236579847573875762036316024854359603483838086681005107526397652814548069003016383546771054724242962690792946855880209060801274707076232479178094067479117513546524393455691728947182691684288291587313551284737016213104781966658543106840973329427186426678560838340757764641408259598002797097550136857660926790796033513216885248807677005882959430275826488070160413566824077233858229102671138554789314619138435622125784076458060177991472254497821739126844132100815875548941008841502469066701410301473063294497011120493204180263921399209030572575000695509893591492918813582947590393640030852413841318523912691445312417061151590077762831869708045923072587812638184472508008008342804590130249743495132717681545620245803903601763712368035650285917614113509758892178494621303245305188594075227591650517321690017903105174775243859498807747908586481267048971656094236550585309304307255532335888402427206652214940941226550904037107084377382719588598137568224364620218758573522845851484033524190625117984762987061825339484612837703711319499690933253266322103651022515972432563548868665499966555236171994260673708699622696198046414583704466317598068063014401809142605861909024134899748113555743848554649312733042655039837872498707975576194889062360611986119558641098758029077643450061647943697811661307672726287259413577315818213308833929276666288529307180325565341253571154486329475283355420449905566614816682266208485554630536147536900289341549375250525178445442930623700981706010804661230654426763303638274794022490686040364482721919721247611170191375306566674657067162662872998011658048941003485428974192004242072810568336417643694178320106263695101400770897522538492274096536774335965421176145903187174262140674983349102611598488268534158556202367024700968300934395970189283733664991593985775289431068186451590144937733737996145446041791876390792142110281975147839874652032487607600045723154116360508942498227374619279904489882462359061857681228528501830584378744264709662222096314319835253359474518300584980628901053204552813620785992307176544606887653058024207279956146885115899688312979468496937579939532269744992491973283374773586147159327810904244268804978102537995265255728899898338838405609364489537802294501372993179921361158954846729903526823546406218347970043059114725954618556374027030390754328331712705082313530228246495727846986012403156955001238580863897547581322405199452747427318139768490916097381674939796390320479217103477035455262570216258677633198481760300480240741367297960145098369632341572870135740892431920356558615197066730241971885650673034533281454070383366278098052677600576358193411399586553190654443069003917587689294375919531446884642320960553003015274084410252640789625768647540407724865151309074392473117596335080171120790654477708649598667124747012239020600573931534843148276424766994635799624761561238438949048356994011538591760847800258445838330977605443922088043307267633982400924814449838905868871979971990531020296179923167127729409325670122661079654654433229859839657901240382692943585375508823634449652754340456985048332329819273202975724543217780656308262124140688696662472506800503233667062732073842681676749834759576495439350548792990581781128255760920443402607154193208725428713357663581414123207583031360131894070140470150828544297520237262795296751125870846124152276453797124533244689153862352481319783987169679159428320719874604478205473275584717882241778003697727442883864871327779550016072697680668086488520932455750004824131259851688034323615888706254976629090218028551509970126594049551028776075740537681832832039816618058833874286764709662473603736541097286330733010197334659128441480257554442297561689897630431608023136122012358364620140440308164991277440162954806339645123265198517781869334149713059500563228151753778047130818946736634857077321620587054793216888271400074180690757087829757288921895980762036451605987411598385624771655175981046905946181094677718843413504955745099890979681702203246501332066295241933875131308156091923291608688347754725171161021746452965820962839882316862829363608733507801367654347012823997934234220721710203777066072276382196879490618386969970456010953532952559230095670543284061659332817864470181512845372175341791440148380460274237070139493455597115294886875161585392907274679725688021674913831980631972711837548637247309391297327754051074096457158089814890835186400130670846814418295464096028719104809510821885581578284111892938990973248379396830785408103474171168706164325519840605092863453219127526799535848540317763931899827337397304867170500266826052601663225695833884063355741273243679613245245474894476470153070238855999367378085106578568029887739460385818130935097057303357446489517728297355888891922900749021623168421170862573490517735980886400372885599452785822632837338749660434077153486733324010322516091871038747584146831410661047790682344305807079954918720597469922982966895807910736942524965808405135785616084316910427993420324252011945898338767645422402867830806803143321862216248809185003644076459357015303770387223376794043111683200353348851203451293980743018424975772645718738610326742589652375704095534521654284711372739208235306810369078923186714307765059583996214384312262037016668795291355798697414299509256432724160006886659255827741219529752863008882884514195848359258150363833995487134527577883476850444539141939597610100128840226807352787408329825587335557463105978706221125827919466430075736423063172724322203808501709286170756158069662619137006015040947713817049420927105056367870603247623133004767017852947254259827657676950330610114233849346425154807127670830872291191637630283909423379079834536869955020411634531782940930481527717619329859873492519409035452760180266430021325823896093980651056425760838225749825173866730656382927654750501313071636190047013178504536676897831834935231460381914632248824894801324529673005475442851601181086483514490067481365723853334371405423161226027395237472897943567553978751101405225668698484562206645442134228869531625745843523706027523940041362716566299321650784787099354585910159703633813255829993428742312577116251594339276714212490456076959489451180705741225383854099733845331408941055200107588821739929975751780362583621038233148569358161766720634762947497462805518294563732175996144571834709112509682978323327765966059374301014844758047323089136851310777644235314806647114436477749575389782421924091697410752839965633972012737362629039168604967199871394733197742586757661967469372076684383932119218053802080445153479521368362723770897924769802356169603560329792210761247864171043001956766357029874055121503595499351632142843496957991426379959972395821107404938019644628007763581405694612738135052091303459672386562354401422228856190163125676265413170217762176078256818969393569854732036754199684757437781420702600165305228475549150919581741949200546070374383866891845694704969377434387203670520237341976625752566934883521709078668744560099282766548470606211363360090886514504736663222223530640951238232698397301672784680587960111035962765466907022933855638016325722630885941878761026248890171548246142482190936792462697759222025799237952525088035047017629062456026477872531564610487964978055964985596288879590453758451604148747055868114683779325014907526487926757131595569120187456713189865435334622646490148654899152881902596278228418945165229633159016609082127271326006430268398673343908180732523239615917598573789903962589336632349528073897641107113568270689754685975349463911976107446933191796356474529189203204787294450763449546813702493542842279949115623494234421256283312008226616702447855883614981498008870131220797907099119736421237531554144254838827319201756319923352978538457491906987037101317996067334411609009183701935286233436237846750910872112674386145820988227353663608561003653366833743073498192093661876743924492259347709738657085181374300387932638849203023086727492334815949378017559568453875890507431764515635916657510224962345116069419330387992899921283602144805743294014164695602650852324937904323653289911532337904787425119592041796133920402789273295606071101398143725813406773251643211381363708781222057402760854839691768784823772350592954374701328697507518531485346392546327114636118857457309022362723171566115280006046903666767757281415020214755436167897678428439708603871503293655323563292456305226385827817361859261977678924647051880223741563511372958347346051792928330319298071666776691901718615160535935612805915154368706955653837152437999648977849851324616988344093338269613418522718085315884943870417392717949488958391227863130333758497680591128827885821453824935113415791105731507453762163681617958131192392789645653337831698258751536172062595075128008872161527936198875427975178758593610963843995211998863126322435995876202835450985842731564606618751779690137492691533149282077401380980635104910105659311581204258010988389363572715698872116407989745311016720081778828943643026351467071954499253973442240693009523798311775047239941461034312996027687846373471467313555774537766306977055695983692995456416329909004241678208446422738241364999074094901839887206913231096259178398946611215918040800820472271185299545242934269076852156593268735013432511369590917077177299811603887420375713768628298141730253943130691875975681396821223010197591567064176722426363858019272721237831133378488454999876365024540833735106864662195362496411234986755540796159828442415459527655258010938500112612623466811230988083028375242305850084285958927693131579171190121316982041100118568059362938539210348407885201831568092266962755074619960335469916387544436019815412472363368371074089683647581131900796995277554444463111985588998137879002271042867092239629199716823830862314758658796338719753824633614373341214805796607504448400472971162469787580673229967246837344073330952232665302071435703821416621995497400460774676685866022297376585155713891601781622778154976006056087987353293020005031113025576272969603875512604582706317488609757138443259288636972670456617480319507712224999819116325326623143377364651374872347004877872034079847560542492071500368363661456665311201051574471980595076142070256690885900851518778955900976512316196797353623097830267139985866730236033304016601849706873143694181376838734847390549385972614770245326339971994764427296642010759587590845911891962554927574359812318240291705615049203257529375140765878429828971783718228506656163201282257407524997077873875591280364589681921864081976716552989195447625599703999737999992019243241489905094531336694976054305628999177513079669195985491373742718035064583522305382781927948965443633908604240985057430697348475280128995706226456832815171118175148923491398681577061728519257490382952611735828396059146758154636393269712027532592154897082798543009476074581190521953369368906610616292489274315753618842512665613017924566355206392373920415226448324189183317827442215657464394377132351677689640715889248699415873858587100783568222742365427186004174065752006977431345377563437536282050571918521731687548436277380919875460101382548894011698673325204593549429474748582947392067425680187072520130333105047007605254317985066403357080564475274910213843762365666888038850045903570754259202897524749096061733104807685871228499014085228464917755950167002042315644355752136115866274623119208981711065118149896504684698988792933191843553750498126358701877245970665525382720170100367109082546763392645141272852145753218692448708216720211566771084017465460378305643612646586760963307952946162812065983894947935465677026216833633407082785235508040308833024683887629273530151948295652336944830277642948243781477891461291637915454325495681891030931564434596525212241586916455283505167344217363935644463607121215873873473657264519792313030148029327279528584347231918360913468613127096395811159762188106474275129845719653259062891008967532492937298406484107995016927200511780173565375447724657777505597695691408436302635034100829785909598860931848741587084309604474423729989234601827884434584304390617491574460040643839488693123868521799302833109680558136104909704594018101597390506383918185961413323500264301826730198303104149003551870831073877325540106833552187430278559489119939851860463542401819815906534542682592231859308326650358916239712801176807214747598264219097949409728081488138757678957637032493219896826980928030031464749421976807898043304271508907427318021220373690388621551604768325463487505380650682179780285248253921887683361175983536283582222962930355786967539786096430151678505003946943166269439419153454715113919082615164486414997907278087875215892482907574455550207132301067014440445987455472048355247552878959820723963667532695173683218299748276196360950256224499328197515084996834282135827606932755940119069730324812847505245796117432755503163611358570689242823881955467324201760583257979779054531159690452328103206354400929987778095973149347057816738385465126870303694670613743860196926579642431363700424047184467800379721949119571670586671303742476248851764372670176538928503341034602253382822600566372752978252834084358823571636948278949773612958734896330634995405338170728406148293326037550929086028772091561994489462959123761160209604229429392959348790055727830497101098292729479880047310841200121619047823384353772830073983321803169430190752662933343253899358952707475603570241133979497234888376644067399882485941337251517276669997705900995418438466716068019141730950532993311055617563864479556796998600173678891598260292269265991022501327578694293303459622589792738464390170324210443437089964323927072276565493618506720925338388337621793599399113905733333277705203490824156072509303198257369108168163872279562552517429727522067215266933004887180989780863145734085006022656584452658317312635221418543732771359553557113444845972784994752138701711978363610961077860905929969870772151568064442496147221173424504371112633715817619361274541570936562474713209646491620865458130965671235336179859904269968173465847099872126216901929587133458860291217765853801763022484903558794113905593644278638737124100364504519691866933122856016646753384865735726691317891900164053020147682503684290658109503566910958707447453170139645861950906010316393880241056350611327569431746399552288274927102226612400685613835806009417838310027901579865708242748358877754680466556708704717948339014600237893451945499987394861718368333427673049383558502099029001527717512445368750308826782827687893732141331083985707163045459558559970598538118242359472493188820557885681389034962994849675516579230080251379439171510989731531102889136504662345995406432850995314571612110895639192088805699274234850164176476628356570154182967518185908864694553738883152082188265456613027471361091521244447856449667903892643397423458007880089277131272249364731900831843326189165571848309021366468853997633573350036924791604400282509583502571133721262180372374740369012269725077081218593947365770443180408694803139270071210701429936205386983361347529286373786263731976429174506331835797360800274556698633902469333699222509215905575151750602838556988572162584398413954113137069834611990248560215715733210959300854940211591823888243201856610545691914871797194643900957995881714780654603736398829829353666481709925234170821111648126586109010388098304031085043242289709047625244246840522451808687847270455611327861968325607608744477740131392033827695427260421723416674649115891002509461645394646472437050751482334385223205937861066773232953178253234767606307751419714867729652848305219107520764582225460219155097387837130912900842739560279789949162634480787190882145698296152900127309399604360989394754744834511085872657766029399946319181667313665437487326601889478353702338175821663595863330327049597540268280696072319194851306728862668192777327234685438356513942099435407943126367930888883698669616489878953280858452225741773001915799568222344270055213084958299292679911376353376388395527098589486073910996378965378334182283845538587356665388257154294838081775425013025180270299849474795806046652963958673985223231655200861672833278802227461140502739783501183385855963539850986933865191819246258701134225626475055325781001978567543617315952431314451245754221555582994330039632317728406189373454359842254982377004272809227670826050446639408963920095629681163278760572043071551330551855072709333498009341923696630579490714497615991112761191518811902181675843435325887112626466920273492143628349700194016232706324685119697301268735617801125898986258793489378514683723743104593735021147879755116340332521504807517984576154792946063078865585672795249082967469067034692519160564023606828817077720768009210162079140208617933239545688166794493957881831088467752793759747337610328867797955597021782155014876749194641278384201229405439425679355243004771808759675994133672604297508930297907360690071528956480995211325094297714601033826158483747650303925567823414656855353856466853932388281122599047194452747857850196194093195827348711798016867095617824388280427273872134143167696514309103575272715530974467674786781265429435733574441019106650663730702858814815710577813254335031626137460925746766509930329965780827992391571991383153617848436120673249109770327563921313743262733830713378584603268032430027875529953710324973047071075666078548461818361387107018153276080653489692082690555366255357412100808020276915563324461749434130398700089742156726288379283087348428443122303611363059162993525627495077305108301290831149637361461423118951588397239419760176518880401059272845279556347955406998101520650670752732610199044966273869342547287071394337278351475193579701661453210000470122635725820204934387657819010974611970030229130094051271231633944585852617243069466907784319606780033099353475809876995046673957331209748406922370772353673924663413541698992049278735878833346770577302372491618632639217219500884694913919016323023555301710515268412569841709542459313604772488867491120406284883590140443201675255699429545645324928249657927201736530214673909148198167256396178461709475654250979930412458607114022998295334686341551970848665621763758254209955706128148319778124649910332084382652534840714300867976266051585091694446773178792261024412479251309092172529794642896723478199144942722562978035454436524560460454152381642429771095034520578623756936263937409110169435291574407952852737403707133715483392749359387939780404692615868412220092166347095893217471206201148284934803008940970759043155846229376178208957082483137125804560626082720706296600236603179133145774079980699844955482074220580900035306279064031374042215447889001426970851108457578653240977914175631517248557500126466427313402492290505622399553154169029036906291344936424032788471724646346955466065661383840724898778126579642384268559743794963798176688164603314703494768120230041917466442846354254731031300428143801599838150719544916384907713597249232123823930374754207465206729733743972394446800142005370427263269408478222172660452087989934911099774589439641593615342099243315058099639163460843578301944891672010356531059868644996489055268832857933293629576337430535697918367640613484865670195741924688601650948043173554709416260750911550791599158231940040760223580552394083700001326634459786143050248535619726562429129370335639304681582415009860981225626405429498540651788153422557618009935266614708770197167736649955833483353014978225171702121476279886961662249440343605893709804249907207536218662886000251197667286751200678453226257310262412636175048036536360120940140953101454778278576310965985015427236343647686103182548778618436255691191307102342071134615614389389819160215383000701019133922634177122155619730205266210576349103250137889461524496225822719520629577578864484930033335408755991227758542289208859522288519963982796926866075877882673948912451272077264981793321279902791805891699179301894694647738022553123648524807934332806484076738948871113668908345760191144489979702454791719805848194574809495096477307215260766634224661696400490671719657282288352120066738006044505664743666533887914572176626692602717787341926022148952342956598708868878437553756264802100709720332238343616209927918991148777800625116224817986823916244902404143157374487651121768674251376404154760072680032612197732393086359632712560290302658696758391578641133682993907784888701226350522642248655407101756746305941961232305315694588343325419698357491999468673278809487144389719097357637203467083077135092166056549425468473195797401325243421484798808114217743597286659370890869134615680186881590362787983674724113235160802607988064848427563264633743773675904266321546381367753520191321494517971175801578905533064228634571735176710042026184547018222193267949892693880970780550384642750816768511625020219512499170788425925234837760042936950880612997756831315194571863195716437341383552658245681553584512823676075535465266324875084738419182385294262912202162908917130478202030049456121925038371246700080197383172567009677241719028728939754865469723825109574302676721364807245477026315460784041695627096843197347573780367941164984785149897797715725675364681618277196244700829221591785593432724047654384752655907784214581577489706893982333721019894407493412883362757580378663654061648708657444515602604948641248466179445468896762759333799397505966473200495418127817260517326155322310761244544383781708107255446538418633972740022004370225891918086128915770915697177404611827552529572058797315528130738163884164824033056578082617258981661713847985776584119823946669362658328848365297700676593696800360972879275874351762259365017535195967589351214593057257443717655296947336019873295404233341671024322135430456863373841043794152694591316382547663631129103725326784711191302282579643346702075473190647869078434173567720486778696303972192172928593392650445232898064986831131466960879546741849201931763457067314408074774327219609331197235553789240956286955164295191448753301253060756585587697897950185258985368146690322503588626045782420286843924706897611029820433600006931465680814721590869370983525434880696913955972640987894503976601456537213721000801822310642682597430346032357138185733161564537701734542642702573437013891034497798538788961110738533325333580789275741285997474493020453009849831392206044008897766916512538632652690755685140545283645865425246223263769513601778454895761297873961578169803792038923107435533167589657259632500711679144788846706314639302721523059817809758280468409644802325043042780335578810078959641910001369614457409026290251435609236325539797309337220991690627539179572484229151749098177210998783835716744880911438966526837393482603508833093797923771274410334904409279805363445601301515035541032137099056864985496298056247164366517177355733987015797708448206956394120132181314189078577282179713531759268112515294340056828111690446804656085717937314746787375869179446746567703549895230228015972372520757768644946912699290836259711964480600913143343287939833476383985418051009834560327439617304821916012630921597860244590959487463940626825497685559749719609100424075577352415743803431177276388948051994116185528840082895799445237415885461857460315274915329756634134088595305217722738180087789859540936172473135169030754508152330571092285527303471897174499771204842953092763113396241685053453406034572617738724100326183298552816737742878154169956596735305157514402847969239215929026497682153855172565256636478846786504210998992285465697265853070026251741461245099315136985451974744830557532172891622081913655961595474892846319229810633444894946454808141042130450671346581851451199273327939981034997012637500194025186325019175531523095056131528356852335821816126520193621108603404253614975530248878544472819040914032039416547555808666775627805419973750218036412246601461474494842294285522717845582953349366588760716379214528785401358464944548237857582864458584954369608530684600930516917773983912467313506241595176655694661534953582496304515785859220626520660885534225971108798841754311260882654372666410474137683607671034131387782776560002906183737840492544080394609469384751510027656917901997755314147574582027584672305545062302742030135674635474980175913409563849275211601780515239401614270260501844046204363845813560468769776067257002157327346576007080878405780163484068618557185203711404979768472577570407232414986766041803450488633207590283895467896380036978327025755580726191519553277175205302940416027861096661263012728617954473244424139994841945829409467731288856486216637814354249095865927945610616217488028719516832559191883749499607376248155415922237349012220230354012555015350337308538615907686665503199629291805253848917430879997076896794212012116048931273780410232080858144953163796781336453461507135939011664393391634321977273760290507173837417448904567107603777204049682271445323316922754470505012637309866180348961116405040699334770469832755126894385903751438102689801072581274898663268837164968744442773017399966230197646584296655722624098684806663879014771434915528792215499866135121141183995393318582581793600679653540416172777555116289169299661901050794717482482829689297674185899917442469878743998394601124321898532580728858401774457143610099227757811543106449785627852635074339706344031653111290578042330557312851609402465704725415859623450408660833677974761937598534628928971680100247709627037074562967783042197620803841792413786600562458238421006212979653330584611957257702179953717069548015287328642198436937230117760947564023292360739224385840537258468066927999476457575233773681756176966669268398162098962014910448375270954556474741376775175494294330239987635490611405727921955869813959116898351804426712346526604547481666320255018540575613102251350817520996816772808415525197845395018341985207784597435079422476225721003073442541057026783923706917668027351508708580928348121247116066727674681725152141858446823437584550171347522571085607225758282554922580784163357050216557449456475960849005575968668423326270426489778260076417113500717540284137202973851749480291082548611114144170722684986392673920500967838763466719948278475282592370502017288985049286450302617311202486971417816823985549850717176973101413907460426057632300824297299607364892483278076832806619125597323216113681175886314138850252852190817395932204305374462698636361358022706210024886291987749576715566040862624196901915483400801621170276887719372353759083636333934387456947911658723742324944284916642852401899378106360632514376668909174140994598858469105883953669004592123372342642745324665921071473454946694684484641974789639244026802945106611942004687841354010319104579154584718225085780632236341169316193917636013445082723946716946200329251222430285865609990773532490697301077828106729562680676895819289915569488611064064856732050368534083416520120800503554873078558831622995572505818361179006478222521051414165027123850359571122071402296317390859202065917961758460097379217626863783046104169628938142021440895201184645778589206059647709953435158192243902044966098636454784753287029721612107178474312507361259591419346019162097548453720287367396885613628214120712265008017051534746146942112834481408554421085860576256670720833420037655849825466459124002491697961261725278266985085778278041555422830937338737849628780750364005706201128507053365716959716733964599072473311079412255649175840174118827896393994528644715483023934642943558525213605056324117313512145127633563624012172435056519235585815463564923802601376476901187729794412149746802139459395158633716095027056150292192135946502480736311638272186123275709507503141784072415759504645450491555152214861202690629903758651661259384186424825503132197136395544130748149025934379286283087807166651378385702142853446786604036583607293470054763185537125028205624441740749555750670170369851718449368868057053012860648404043960926440576519254660104280218469101244897273825130937456246684959853295750131366082491659385833910252487011047197985724926934268177269865170304253039605783115505783042291938980173050719708557704757313108861361753662749752373730036098287815791434601811512585931526768872598645249597181007470450396025306875370049445391169648530564217395470288372776622545225691757782391451894338833391520365456304538382095699392483296964025179284776189818032608819276086624989767502158261840092298894640339107417579945178371732385106818319565570228354006836505109465508755185769492932737639596827336990803783157113862960160278337592317087496093204271053089124221737228090079107263767696946947117684065490565047311699242690708917939856351357606778546309428245729422149046621097936636406520396436331849383826668687171231398244282485112872195224790554557353571011433099786274934738509593561771896850392413163274150420734536912949814529128140162847651166114940856504070584067642908707858217880226730454617506569632104102352022215506027310586301572999120915981992377998403588623599026583738915545155281448393595549445171011943984126534932376157238928055709756020364173665629048857325287744402424038910838809249096823829175417669102112696497555480261888121756140503828648449379525183032489298673372010454022164900712216185498234102329326165130994122949973205382616660290343395228392284700479081291283622779558905314989985145899558882498817837152090345572236994851114122462591790961215690635767227207650179855599176452073865653135832734823386805801490037565947514247439122885314137772732637717694006132570508427479843919312102018580502226714605486560905203505568837879595698633521241545784859232667561018889445896396719970945454916065583177605233730386985339948245807566456403136356661685634908626389263612092579355624432009831229831835909978930114551657776904563312344970399473694381986699276951225952649035275040268662895700723730739000205854695174569437178578951088526745191874501833414715795883621603863578400528715160191339064573610229387633005413679012440913826951145973961309391862368593991094051590834191549627297377735302673774723499256344494827334411166692939748399584610391276207386346266300942554034393172866206841984352882537413529422633543256982995574939937729177204738556324054059700976302142820539126659138154463114073775411181828220512703092098341713585086962580149869963971190677496219651160486882168274061931297903528324040450016277536473687982749014700298884322892036705943224069815544860084695825831345436442285266577860283900448989160577867076709711880712549771484905686330476648537511918575639017948301136140367425989884249578043218232765461390401329350683669231708899235501411029935355367007036145929914801965607997268837905784215666880010036030289040513435137689915402574042238420444184020854134807329832690876113477345294501937808790480380318459672465712054697229147957458188034348304207815772999999179414366480601046899126509429079839496412120880464153403321520392103942380060345647424316184998315237195971481710806145343454392261847770339296424879460062521246511073533976477474245847928822912412654494995849984739707765969976714313853975526210512057810560445125857687394350621621143416198878686663301791877991028213513979142115651956363003235660774298103177681976830794966296491851850808420099902538225387496923339716039117115901261256582606788549323823329706089111821004366402344811359772530634872294589881239465851725812880593803729134395926021009312274189398907789014308127258976700564227797718692612814929994048092623622519243907120428653050300798736537454007341373662658685445528070398284098297446338596673883946713758258118138414219951519310673914184024394807481232627999190522839357932623976347095424275391711187609602326484665469380038526990939175922629608945834192873750137789219167738624297258190855099392232676624994384939676908311833155832299853973599204106153789767792995304569018676947097015769668932991194464096611304497451959024250775315230697227136702861229803154207057515332859777106327392915439107384232124191079819929285884341412591981469494415978811291053787136412915210295469083315435386760420078580869932039723252724236544319566679758232971030497050277263196960726634390200065534713795431935538937827164492685239616045509851322432947727007491670232042790871561992542349760665085040072962562871295850019515764649649838978264361640033586070521914808674538406223743199079614296737788068631200721293098519404309066052809075089600230085573047671962847363919558614157375151951533444799922887377114516072102387410540134842768430452970884054372757947190218780164442716867986528191427242651758390172268793645327056401629006049602805834127487314936821064951871046870060013356308876763440839062835225178069072761362341277993213843721940248593689263911949409418882258492870327402588476757038544834777702089141198432448559193406373963324827068209035151263016143260155952899147987859594070003437638423109839390042279517627452375834759521742973891007200687395167160867405825540682198869745223128129881401559426415689374992612466372417956850534420524256990611405400043835799975283830077545706692301768200795443386493020299870655025610884707446134768284405800217723823858176057103641646848318656014860571971111682401260094270492885404337617084582853789999099655385093509062975585149837694382143990311696855113496568135577410327976155082277211474557219183593157555110962592246225695536953409449327454278488204115534309457692975447183819990214149310853832818523060439295214083173116263113565394781137581628916976973991368894038482752898474000939403526088771957051973186008754864099650135237899572611110895452114425441676570606414601283478230734729164905460372988718214398399725317370556315928240192501118278551542758983142232855213909107014681960027787169404378292698580033890685030689672904537862009384237621943747532203909983713236778064514124251964002813340178347225239532811853256462386508682749447829227769480148320484676388118389235161660203735665449014478401276913791603979703771574083033648646817468555045712937304457057380271429845131052374411886303265560989012000739261827915131641453659097625717625533198509777595460134210554241101839694464135857746264972684259951564424802060465424549930499877364440065090494001007155541890273772498030577768504649018583754655230896425868481691765730455935298966087148610513622067954219440470318899055283603396274615481253953852895307248308083012542846779161869535644143560258763696576560864562111896172019371807651943605866428316662182794312471663701495668473865921602232542362818902731443748594051962704295248079793627132635922796652799057031586008107994754136332035201178974010531518092027626274944041201502238332423591252356450251160074768827725846444993557158516700245788110336013858062974215053196223464136842768438561803751679465157765865040341971956347920331282002169416270757398795869145514650400500706857765150553468971827823468231749701505657050697748081650860849502478397474525955907116665445757286305696415880644471062579668934170132314006446341990573563665434684664835138431708037312860172461970349122105867589003257527088577763876513594539347088045091287350106834617728735614344481654250269123993112904062145699374101523655776616895703798644045867177059165044959963634732032083272173448184910658383078642065050003082743762266317969557618239386034470515566254624001199491294550973651744004093645486902229718800761342939042588117809742808065630670274170960859889633377443710815101909610001062132381094388972780316905097675289001427606284952423103969355569450459445604669800313182428508388913461825228058809484314330404215952665160115016822028196777810220966280184337973273641838573522088913923862763858328400844077406769125782944393113393851019952719028685877684420659789513686324248026327765034618402111952232452234931782225256234587700092190472239757009228950542439124392815204945298557510699372010048060138292527112987964978096588806078213620721058314719072269460902989282915586105029660035350356339586186781985626770208482072069910255373836845553753009866520483641671790284396248821258286715319432227688951532147025022018733850253541928301951757875093461055321960221308898536764173777315356683832757562321526272859876846020198179392971509481714236665713623791186293161356756636240070774396708719315977027615359797224092897387468195392820212428007581081066794423908326995907198837015556612473691698861473513384022663235156358891040463835289235072852266018194277774272434927027517452348701936374778237294374854342003210791224376293006527087959986625720556514186437029113474955136205612187130831266114025104539155260304188642576211773048270278825477097655314502984505605595904015555794818569975180074903966318266019217796012799872847658377390275201778734051751996102340818192670328794470939888372042753167446700376082564597675583588925022074470887248859477462003014154334246917743615446524666468417892614386056898284327269138715423462506195267275455871474799362801269169985782711314856399754704182938305167283027587277361709773549461218036873688664979017718264235853568483560887598346533639798892382874006120118006738638991427576050187208640359114603233301347506443502130698521049446448824391163463829171745465791108805061148732777979621042136037185136136135219268578577624839498986714926521700491675400122509830990636285274576922661450502303384230452023173804016215066675392857820811430424094832282020305141284278552028719471849640769766862134200329090701361124800036937489328407936564991396182379521843136430765693159652355706273330883505954220881890320206588992101136244013831802825868250293799034131884013140426117774475490067065392768920276848687904598179285858890319245035136102436715810215870137031649889087780177294238536934083092503864870917025415397873585321594393309168235551518955653888031767941913698578025522283184540941473325566980731640530402299798854829693442195449651863310628322632497381051555422512982783545308588542281799027587073221445293943777863794177439868565413892498945431450114125424996507063779279119417227321040346945421154032435649590840886536995864140255218017688419650428246074432069879246559513350260530815368018674400294018273204811122141105773506804881637081723966190000297169731379428624020973953804980300866333634933977867865916920641541307274024488666827139740065016282232234439078209452944503456689633226701697221072621367813879271611300228990288092948808051395698345100772189515580070528048465738271194006073163032095761266045340685691809733603030888077914452075630124569930201281018175459666479890778864428321124198787814260501629067163875086371884688464787154376849595381372226506333965230569441630444665872891035780814812221869027125843645706603121140156906207088575113942655126856577690992704242904157958469733902157322819741777734974707827088788638274273383817097999230682790739358140789309182997395377195116141326277680265142023963027257959267509021956074371889569766021810355333408150630141308730705351398255676263825052908869333806732113589927401123490572863658120467876743947525413910437415667512383984465414958507299071155520459157530523731630285607787527619243288887784768914525911212146400050722950682196891075708785116350956207582546203683829360443454910987741063827589240266258956950239355107883606146812224924740793843864674688799531122130331278785637986107761246039361337098970514326610309656171450261680523632222110859165446977025597186782365284384059543338022576001499609362614706113511840405783136730063916711400835513822144673264062323699705698944043806850042006823884114354237839349615100901504920426785552216397618869125023458122107062771703747689923977802496681913635289335484172526873802759404295314001784477100803440746828728432116456355993318871115474875903546687166088543578442354900515895388262678934936328572466479445699896393810167715165452977645952832187794830761713114446449705698162759691360543749095799741152484876201518229143020831813900923352627416816070722285616884446701929997155822853494673724800764362189042612143117592849017134234608432855818773461927897453981135776225608012858947534000106510764512398819812612800178706979808192175288226402189021556603963941092592105929474126572977025655270338035608330737870987983673218284441936110742448540398564572860958936167283769532306834772674264633186141566200369257110923221667981607826834858299563179975270551357109795256419309948313373238826403242334506896826883230762553261192598180120265230128764632092096368095445384441054391857229779361649978840003960634259054690858479142629224958355755143293183352107267895773852384834089924775666052582470665732771849858128377879101825549436874328747174201896539726326318808937830268489516684667243073575172532549799251181958343480519859059769927398030573593039747024854754281576214995932246488302948778350442889557134882435819342353074208389207098000347145664782179092616182589755982574319118800497325932700854347985895379720169023324912922920001093231126654785101511284258551813392602227622015781648840079481895932572848087907808105536221323019033137154916196698774178462990468847784206602253399770149118878832415911737450816492732768724344461138015058538784844732187569471702126979350355406885846225798101370296350119232170702670270312842245220281518793828609688711803983543923440215033217163155533259073391171984903621779757143080171319701013170064261655309852624911344523946684181462066955861476696793363333394124867412990101847600023655721079384889585546306883961612106218623105213430918484939793812707998034713413871961030304357349479148083130385981641371577376430070362260597616462759523604305572616566212665459441473102161605912327875715988290987519336457796810716698309903779157707515810907678250656070428069785428679896226679166614282314180370673525580208078821428270098904780167827283768646518500954287430640650529572119512048852954004449946011948398907471627088866084368368283094923806574556741501871171672446813783856731911862683019462635693123331545792409255616544318987013374619293592127640818349156738151761784649914986181549790004133871321530860566984765346811443362647734292148634595857561294380356598527274251136796176707025231582798105358978541104111472291985129931220964559552514120547931101602152578085467376435777712687984254598809469627162278403402715161474619771051956965324933834445610252554304822706919438027354419614501499125246046364745361380613291798087439451296157926723235876624988915208842302216029882981087244296614750877349726995381584505868924193259981561878183977715252471689851800010754018367700523415927736529185719654255650375439056675714737168378724824961793273711659869921703915130537111033641855491006680752979051451242110732823940946621145847300395552597697447256560229503870656336131329282906919038509381216236647105761379282281804461205128987696278911902099591105825120207878232229525298169405952121621500082748723922965420123983634701299544312602046226923298118540155171027867691663629866415542957219522804180997777735662512484455262261141322831595284824088293088460504844050659649218772742013794912501281369728850534512160668383352618715268838094272361424285048923215842418399664117228372002960435369205205650614303166101493660181366308464590032549350691927565599131387880082570797503390502498641020136922138941622716977748334935811139493431886202473638963119102641869529698583850547899406780430972765932633004067277320201868865680962293187525012599370056485343600879884745025577355950126778178661429505881647530252858562948327008307631199586710454027644395759947856128249775799670425259032923624200057812443276252084777731808562486962621424869802313388752753184749463784957598625589962282896421744394629152169055459219965763272496843860824493427947494760374647204820047290896071854912955408572189744822702200966285950923406783604319178302682890462041236387436204694039471635111881267533470737856069661433996149617225209748014528336567956271566058030652146960134970158223013285944383707767809052681362830328093505644862335180008571857295754425618431752649335617538937030183343163062755846792528276676460162536568907620732182920988185227306899356532832510245414228221358086551926275882758342123464704178792707593144348964935461925117708830578417196022756248105521576480562935486645934010577329290701921233202738912647776660027935106786602076237587840454251077635186547048085868336149627122487881146002203005053053467111974757843806679786832127490907913641159993297478594665065822140459332799046141497677970221075174312507100277476684247699300154502078759052472933309388677973726368512584546296844618301207010262911919527490507055632799118843386856690278990265622328270548946307376057714844698692648253823394422191338190724913234658472976370113042092958139048417955100075417886185135019413480902359958016376223734896141114193211386112188726253839507401274853089657587677376545662703189869055662216727350773394129896549031849822532607863260600770729654823538927031937857960405330768930661218809833756374341970916480836420613316863961279914968667122913538309072735603486440904901355014173220581127716629194613882429399614528471092092519158102503830771693218201517624559371424769730568790931109698643480598170766667710284962989151798707243019255354249970749110587347239769659776715454962166368176976495949352745734469837484593449289943187142747014947697925520574197556636548162905948354152641245696281439983344903015158992812976697523291030493463751395186148733915503353827985642648727166294971869200008741120379889800365174143249138840865184780678680367532866002439735138356966280730550684312430484442789004214037381365766699440382036492895638698167363959392456378577756697994381729637000050513710296352812948835193689238733518022762021797115394516835342170419227615519716597743390286447087152540148815062499373321963223966267911792792372610919260590705860599673953123376063865205353104952706659249863938770285231629162903338630053774255387838431247505152690138307166409658392245016558244901344849568508184088994809804092191373747499147517333599872447266064050708940061179759411862967953571849482008581770309703551200737980037455336834721804876702063969215270951519110448714390593692459404486384247778824755551318808948066438892862964131428150450733320202840888012864970586557464381053435820317698598890161752856165079190730874430854347123663704186873193640738150166118359735195557273809313260784960582808059103439497134740480635010023147270021342345124915695184275601196569351190396910120471462571936627965296321723434854868457211084661250552541860728957910544263067862290642817492254134445099040027715514590314019508308140540209146811294865530996719844136932637585623468877543212829354468989605192249361230713181839637639532583350291384246161872078769941200901680570160420903833225122197477104524272968459659296926568295846928178978093987886032474333860525504608887744811226753161148861738098010294252361153162203746002396076637277712338776277149187329915609058119342900473364958611785789690565269551513402612143594007612931847166913627248711283917126825642900195742360895359418347967714829253182031457524829637682326237577225853544495370616124855420476245789739797018435687486988554449144399032549752856745533847537038429950056871153067733426979409908745369683785456759078757412439369400871200120324102994698896211940882344369185273689225014677761153849632237693801749115260253508314871258642439446036401177203060577137185731197738904775701357103648850446482636912335721773396970954072926587266955855051843309337782116826095532680767036840875513497854972422402144224824000608360949564084306357362592467903357093210899013790095381265934458868613021234182162079497103820188779090150765119652452793944761723807779432343954945349456144437531663721738847389204908108771263181442561421672358510028234362908117460585811925645654589651429049203549481408992556212850360389708151284273786244435703433775631602472880976078667920299519049240788215204885460906461630187559841783012906259474675844524877278515170886328413283647362740798616094114931971580682534870569031134861323294352555820823347003336143375762483689591787146572369322431999274733235526194054942909742582106145716493969578133127016387771442557434080499960816883495356780289817742854552760816832020147482669744232271537601676118289169304463767410024128585025414729756946351856965346055054301882859353303434034727998341907314354554382421484777767108202648148255011271555937142763110624560168133124480546184602784161705619390138946035381288132153843341262442528397586776429154304604613044924035882701347665964588238400356470639742800291102255860313679145262951977471222669803370570474158487308217913559540040011133479279139333137217668460925168069800818712655909231365987515520940819984830733953996748776047918666670220337052498973555780558852790087629074217087835183325654054571629031534603555723833363964188924301322991555503693876018464905641039085480212903321302148201583478802723419258125133396804334153731505666466136154273176727759755002921858492302284805860795088366133748952694211994536015415358495738115612578908107459466564472953226032408233722735834343306102494269132139630657106602738451093977164050765758459342949319153206301585676493320320231939368320787910280924585480735344942984491666834875825977864174056488126438452155681174211420871502017817949213034864534881066686746970010121887435221763643794965552757620726125024604786982397049447536552283597539778132325249624913445413732903349268383289434777821841035280665257358330089196428334474245233477334441304543487320306014673916896723773670681360145529267241139108250270182888949982131079425580702477869980177832762906129945668802178006000874376688993928217120281455537385779268776887297684020746077006807674940477656700120654666096428621914865220365039233452682339800945299270923749249519186884213003062735287849147554873394188943211630562449233321492454456437607465914342382450780393556318723070991198236146414452685776002365240231296830263526591129156273432341423256713870705875867326950257812060840912491008436863076144060156439659100112170387001519397477679037483316192018576283847448878171522259091224912510864975289193694315750414906662496931006295384987317331601944965267350294346957441684314770907635592989680322105480420408597390486472355243982874300445454782637327661226464302134931312331956532149128381994935154709096425645516308268699495756959302644695448639717728640843660936094545889880022408883983209310803906841165565265525782898265287023497280204618392961626569193184091754680266485877989140391428287951566987197558185447404066660676563832754257926165771208864271674999098302181496113633534039549516473687776649183003468396201491718501456465338349783640349766269510242576096236733068146680774375856540665907593704771604352325974417442595618914615476332375364276062692231043328234992657166512365010610557829061387865932870005942806362273855026083122434505432404658977479092427404716327841681566648959040346011949411040895567423676338334074681916481912424531555224255989789643883482125697953681309554944988298366455030644036863101509670465943025157267341116851803145016715119508136774644098525918807625901332348826439299989702256373038615469078574195340952422353318261282701831246940401207772952865792167383436418331569124866234895722517468938817870716962265329193247506915487989221953127275425496135161523451881267350420578785084400011785898117195561641800234073234512997744259849855285199870120656066599521705965048366557360200676565993227674119713790348641093280343062400050515582334400232369449282153245195518418071054685693199911356994430133640380786467411179714647514870506504609438706923322323575971195753432706546689140729635406605354976787849497149198539647529496953829180302810523260196639505682212922794133906257105558414905113162152488230033250074556543723820191665784823795138300028312855123695172126836650977133073972355023815365768363884533642718058413015225282960777125766343531070469236802684295455093355989697135392070189265619278727120086469358821824249497483103678824856464378288275570246151655560220860166221777402206679253858210621363769527271711891623465601665350287490168091882435810318012707979662452072352786843732455769963428193743594313737841280083217736063777095219599776211141927408439562195588718848504529304217309192655392506740937198543828395296852046765347735460022074383316998586451468875750444140192533510530617078899307053462104778428479547090219990490304503877034606865061627489805717371526572356753971204615908840718784352932465320134904284629288585503969439407047392618940471694832579512202876775593724548512408748205772431117630105099802293660605342791065475065567181135008272068863475214625472618769117701487611971741110914851553513864218357537507961346628930396306351496913012136884233300608629376774115072701710888733227284242118803500133257526019899703522004172626524463511354975491685464452358878036027721863083068355989334102245968438151200892630898242128796391384254319987915588940270982020534445661748967700448726255724327569668404933475750840864554794892291717136137126447652520037017433773002083016244856402594334633208535889017861726706657343624154891628653703680949338618265926461057092701933610443665993359050843393687112356396501269859500917078063949049208547229351010376393207771366720145825441290467897407097455925147994669420969259326494593042055132433112424262805702363333152780625896511096582878059120019439380946484949647151377666575734912584547702716110532062958678545407811028922798356760132818794656006421955513353166463223817858679630557851389192391894160065383149733835587674185237312130644553583958690101134843776587735733009224793880838285948093029320445540943621788813512678838202759022868219049589564766085818501415842470163668639357436210669242101653017200999818165811641058937977662421352605098277785338670336584540829858471997016097080197508291084503868866474992267566520640844744456394262668418772925546731318548892967309514381110165367788447605429124919072457048711672568047592074716464075612754400251891801753065263240235218618364950054533864866976105082748785755967948833493424493625760897284214466928144528419936199987492149101757845269315312823305065145610921827897705249819428950819364932397169964546239396194071893334860030901779892871409444131932122799726534197191041062893462941693491885287767531245862770259148020957455372673525184440129400493059179623127938940896409678579127710334626299032967973024231523462808999299126714183388476276239612450634847209509842702326572979704327647626606244013702137298037432666051427177448779178166582916596886488794394477352442157707620115553163091363519729727444238164012059811470499247224434201955723835050500776017584350412281579872744418734796863283525124373654131567170322396357380963577483058136731374956422019538646648239446450046113545317490201469082207819579217009976831921781130420868594954944512547426712147360270102479338587404828742411482394416788170862365962998798923181864111377365160589089772615837749967306221622445744549594359768321148738731667858810391004476421305838233373502055139270065218801055398968701394526922671300468074069549402490264866858440793902427815236055408793190625167774990624920594963618911154634315124998164705398836414660219688910266318907099681308039579900426909837999881313111433968860123004823860152274874339627344771225178306297079177444866430157171287737268583045424193506894772663609749805476454569815493636057102728449178247551575427966998429008558815699865706018227994295700756366768384004170229235505183258841653481213875413650334927287026117180122031214774829585524458175276282471891420123938974440751346607754473599358411163992315241022494917847459521937222403164165710127534279638579881752368643355676209237589244958133683191578284103187826074095341850473076808775829760045558877888185588538055255453556309468968965428781931953494299614856415195472735599520104399042700755436491614801899903428038786097587755516550454348316658715561797305423811945642025595981338829139550748496421779953793141277087104204220956799280475932801039745354788253095417842924275533985156249304068395193929109520700840496395255663692970247744208609969752705068848625803035177577193537297954014515253906065852233058147190141377118968057741718813557367267897114141571401575039959778840750138637511635038472273914930188812742864088724842143293263290370914178803073353855006402434165292078475025942832019581111807624257672993377205055684042668738423460849074386979049174997643661357203283978570610598006888316508862362584651931524262161709688385532724535373136253230852751557255862398684180694197980607734238013454150617599866819783287168014927506474853239866092734455445337118665559384548503957460633402113959319035056286163089926799436095155684284532931729358839139553757939676219248550343623726492201901000724129257242227956007776366674246940430903441335119952415963135290222403127605203640293438708908878465204012994472325523447655375941836084796487087244507351838543183636557713312175411225946146876151190211873698930767832927439988849230661604492724310927876712076887267254619544295055755715286760994522278934341173642200289205143431933104210205529319427199094166194522324863051647245792746482053673504375176082995682623977355268300393569335574337685021624857300509730908634655683803297853322941736940808506086436005510692296055321974262066562176472940167436289888792553119252694619951769411863151053714987419795902448304981208087577397508185500460522741266849758364077758210462417272370280983912016939651913695327818111801628371876391469408847712538874132494886382846035765577065867799021560559933934132950087354892341933121555875971550709688179865030685217809838007823810426080859287130930476372310267422733113131589280926963358624796199054744175180167998151111277138914994248798927723845662599109485004563020551776299805914564821649396445825937414201794344140891499260163591663922765176859233211227648833361603982447577331455198310594831281623214977632025175354384179916472358968559830829693708119625880063321153454245936641410240399265572976103581290094520997542838270688202569409531666559426583001465799806719246966549858437154222588389487082913815862177023296205998029344121344502607572694301043609462427016726739307509972660410469336470254494026607764399891924220778355746669563538844844126577254326722131850680544711176535475949840585230069296256907270760284082807198888620421710739521715623768616511316758159304493981548212954944642482661180929542737875975800496721079997508297048837825770204545130093576654471551402019685416175146913604290469433660640063753428241733663923808483993727376075451909808864958954347705345936024845874611470316779673315471366222828841047557287984033674115067847814804465690850379098806267464024410523099197719238025686288881309223840142577324332051971589746757046901526408338239554158853116867522834461503825423752475667381519034444226104392873149239503054795659242506273914990816428859421548716483502139359044647051791839225304957435035849729349445867329353255388576074971738591584343244200881684413809732375513546320214695618942064619690000954368646826269156977048210889610812201488170233683631495460237314312214001425305485857792969335674299505259637235235535639367423466699175753518834937881633765538576674320745615727357914209336608969828647686028934893538425463872182055155739863744065633701854078191456219894525387343829812705923176413905708006785470109154739758282312855337479808150567828777112014617885247767815443469225939404389458008244932968254426526940202645047438729613967134030095148123442514565045691721748474872238591414660658605178890143022230601573378014996378016835410838758625333944296281241241310188941303509478547503769573967646665984034448306148641683626518880057333546065588285798037208948595943717028909208337762326270886910759645037045060812274640521532490189354183626470386269090628403462431115486051512817315827039249630774932257960688373481902058021636909554053661906382607876080261454140814243540122412693942082227284625219045984524673467961542403950616474104983463255185938748995405788178826029060230585008522017317053001005521787629866105500710618462909439685758524838408850884743177799758314840526300100563987079233050627750387615705933535376617008784983809237308907417588587701308380215609107277218064406724771864560769693112851836531735943830148520801038078484685189604025183296773402914328105185984339497815786661214875369944903352028328755451092392206272977469083267966376936130116009866256391908630953523250454472489828470750740612380439214823319463693755622502828971602894961406139648128043375622481131389842167299591409237316096751558760521402010336254982201645523377422620969607699282644179162381186231758904132799249308605148991142402958429255921350513755483790878112613666834648977536666001305951891943361504704030431225895225017758875804353255731010295581338205132262465791209638762296976412113428656028187814012392352952124788485348150665753436742739775224005402054414178123944628032504679705505719244295174008458836133461243201112331070311811526423040201176036558861385404727236584540792361548342209087963174811677724845870559307638190754262116896820062983538562751413615598915948699952534326972803310586243338677218666188901060072467948808308468344366493491554058151299793012126682195849037566882371055649547188830728628465312748135201371039901807297718368159589203146191476891822903807438428376125997583337229961960816193433825296802671886177486631340581366521438282335296379733333965791858786972041699547977039235028276711469728045680904128747163137538902271171770899359166720653047609746867990986648313889692516741328170635545856594116614079498398387085552481679914486786821406014603373391317993817154971907316566331303821366304439036039281907517179729015371444830039267931030006709046604531956110648671954185500593023739926766654755055780073720170242438939318870467920067393409607369879651749949525913459816211873696631585322650970438338711050135587210927640575060233739036592838090123121451294635570468934188170342695794878492483349838589511483197353833496413104802957039021131970508636656085606151590854235058381411102618535860751576217380837197481425709186940362342722144285674684063823498283690793772339573121596374959585582915675486710811816880855460389043693021730803586446097449658578876175808709759942804213373767890076784733521021553001059610668652588667378682732604561899361059502023209148945833987613254119689523436246847278997718991822425496465098465954510023887494336841750970736022770234894438139752331681560066498788247452058528956655866002979078352571634461820136625386968881359433239579824011562597617539320564801301046058710131569989886678720521501241124122381244609556291083922255214854304060946030288346896826867848184871403754726306839174783127541457959687207191618795563589176524950142538914012870651108237969059002212031827229181323271358440888135471503480433423576244389052672300986806169727923266626804286283214099555431058763973083374048530372583947502782850515920855069573056583232403101685971546844709150326726337921606525938278510143523230443856158494964763499607403697877966136286763260596943032149669933592219109189053938824328091921355525380612785253783715105024457786270017244124744898352744270359079392557489087222016068155361281469268988238348777814497927438405314065317392290608469866428257229632848424185545644847627534395021517294904708794069626697741358894722697932907691919963080540929965543030593008287423327013886781638962744843026783081912011288876857697215739821142372275471311065159463435359906665203179286623379558029164794567088827973714056742427057754758717205430837021598909385797146655434258598829495617126641965541491579433403960557222260416457263195257589987091950690668589183953347138810966869055655489331623031138790963899908456974531005373941760566002193963386092354196853962702049236067277884329481363358016726948582978795284916404491881558407214785167582708517052091405679605730372433676663739363969362807481771568939994337866330479228018270868663049689051856860699117476680969293065230298262860514790698229675159250058260572412916458685434193686116485094303273076159610206954909825901601743783309631268743992882897793221984186791204503043312065501080877951423941359786778986081347039669838292117048766567692667617141609374081383498055058220379504270092065889710665250835337436009082089778131378456810917429463504721883518043471482077463215149022314622504413643940012268022189293144996493243947232517086709305043490533332010308225887645177486998858372355135703542563749713391649985850129588945401111309669550255895545068319452261905641383518381666080590531784590257972752370233387783884110475091613574478709894436232002711863840012955024125038464186769218342784059784795893504493499769715371960410778542790869293909232851672050508710323389217319945159440661911487229967214921463347441510371151932797272548313938405534088087377329641974653586838947506027752887627366009923065993419765121470637624506877620560163212596125772907202960859128146132847453192395637548476161587519358273840747329950480080946059175485821664233391633496341458690243681841772594552288930045328087575984827651799395920267899954901899589069933960251902922745273767436812955739516660212397800094053625253204272977417895305688568145303970465970088722111136914388520513924625632704226683298576114152227488962424614200635180012170328854132574606852016583992424928258490576832515563032766981255328980513685660514540717808165724574370055344093735603603837753595393160695336199827467342497870806854872444587487859659527360065372328292879138464673379858954905114751373481978787871877475983106199283636909139239792743471834084084082165178970306289888957400845813076646163736176172317445901480431303787416989260206525352993746954675553095900447667602926573465284654871178095351586649480041342213301175907024285785583256195496736413586388259929370701769757388593755042659445744327573030616970948611134434728849559334076321202752663004322877199520437924028666729646227957331716729705254642367626965517512293886631897656751299758918096441454330126482173750040669822381597135842685199744028192729010255851445107056245098662478809899562148205134854728933299044952491928104849391438825757941176146680738693397660345768192817893129301030486098605612274225228876970915230572641711152289205793888940080880459493581211906154731454041072199755469097856807370097526670767197151312943068065824101247968775197330760716586434525782142471648082618877990636042555707760736122344152342743056277385149146174758110127300733645169260265505901427716753248371151064045211887275046121146597340698994264628239858029127918930352915334409407443784166660043379595524514284365769409897150746863463112076496194116986562865885761823220118995698416320509860857408310683730302671752723018832492721020766631988942202755777699272837681102758610709771746885427632448245519197959103723852358245537771972652732940501789589276676162609114617255340339233749249538046314220811083739868941098012563377458266622787719676047565978271244859589052379214532186791469442131758586971745997570272588893405176579383271653411371777992355852946116080594460843957672602914797337349067002855711820091258029755293985815027044507542155724316832344396165484657534575708944574967144555402716931888183537726017193579771838084540235831020715326515308426269165653354787251949974594688796492503712133334370615487009822941836078180580763941497124894480275189886552979522080781628758436688997683860574243846894161092368165847131815201063394602669445081336747209748099644458877255969173889253658294850721048460950928411700390351529744654267366159644262953808527856911816970632068262236478677112740784879686266665438273454458853067195653108234471126966968341510961292224562405580601034080570409978381804506687822412357958691402867096356608755666802667835020487048624392418056955416249654196037440488693378862120671923702538775177564307660809458350204479226878494432961682743709284358008003688686636543029418479522013459001780948804523112377699098722790565776573512866648942188265658163960571266286057869613510798790199953337254999664132735441293728503418281189478426237444829775056518687454041122377864682211826332894768135774422513351595300800003892772586017038319095096552710781060038832943870620416391391322434419489353167861651147905400897413150253197875078733391652585276437133364289814522555679317623606504507130496463138599810994964773973802425912281003651032370129565699358890001824056064668355841464821886906484891238487444608197786867631335972715239764177642206469563588115990504392625280957544629926379968214660842076755222357826450933196055057555367172345012693192299005673181816441211724647148767919245397573056039145954161255358677511029564424122823652019679503517692958464123415055324510520591066202256085992400725335287658713127644594981570186500942386984177658823829700023175285989158406806893068556384019416974157332249735201927853586482592297475573249012362572663598406930236472297106617914009675357398738511652596990023364710272854912645255460998640824467150410539722513211307949561436206414539271967523683344407500114220150660949030312254655279923443218756565337681650550726740542897565752197535214984449675167494768334471352195633806004485683705288091020197780675307815471584120740259454234234457786180010564219731768234601433587638437763192552466659091480155500119897667677041864839131298301152431411282297347601706488521740037604103741693911701413705799189109989841683878724339896378432298663237397644098866665256517959942790472115770637719439380049369000041821887048709851924492564174106883870368328170518129398525268225645480520548949595795376201681391606837615943962494627525160608407732016583059792761245550050730085058979991395750596276791953306996042238709038355940569756464101133233187109076763621456314443182834818469190123721671640484323883175724762942814071292881887582304094315338727562823496044692901178953514607621904114957898410826599998539910227485322986240606760196516103700976034014708815230378727092379897394612078754939660263350706695154735075320317847797220984716709919307465127312534349873020979500028739505129953818600432198426126433828653975357212250026702002621697392187413509743460800023066857741465300291186553531361439575758495606391836047075146200492143808315527754549287809408643293605826794670516820674918620432653343605742541689587310428916238883975059410174924911876413227874184331121442148928069130238976895030227993727294581685157732072707809159535999115523918635498089933418899474673276106208103525539152980113771245932553157459807691630467507610916484046386294424499126883890012722776663961521536129505264788296639439853504877805061018088150425713919792223208650319815571724802120419163094466758119215574498106460889323687880745153574640809475764439849133601821313822227298599966475342580902085470274941534563373611435103285932784595189220928503473309303773022586218139642513135211128384971567383982423605420630420011210507301289097599881035329321844868271866208733199983367754427947733267189609330936225716087474645211183893608022763826626232237224733648042273072012881289482269189400911303849274716092712916823763954228521900088058914086164602249923964295897295626457606897426591575630912321553657756117487608776910616664966658416066315851788091807098736430168602172970574056864243009352556137721558793546918120092981283429192597684805016474016232450922135687831506801777102882689984691110938288759127598243535070228256022141108204627108174821344839925484666376905144456135392501256712568024059682473208262312279227062755122731838079004932051893531781642322346205819362939605091549927260302817223445570690639015688927806865477691540400964871591556023837193279179151787368405747527178098664641120298886912543416514496143726961880160372635139235118623229259961419751248802155242988183759022829071738621978193964194570246350708713473928704922661556528259074435414787706403019159229258786253151022964030839999701187976504466438316216792275051866817025373459065456757265153234885145697583679471526168324048780371985994868928892390589559681908424002562792005698383202471688542223994376791992016473428887699719557626419444939700523179666189357397126254083603256847928116346055746672303072884266582303706097973164270469866812254241041728202966814084758148981767307161913831324028158852392619243273267506382063503736478957234453776017923075927080250682063779874313756116554375431410261885685752084772076912820710961502469882472436714594234453559083024952592470324022816077919718453293161705498393004297335813497219258704226842270960983864464551464043648099544823189130967812301830285469408100155081788755836902279659111333599173144901677466506537273065305211388568379670250236905010205904952883723621169071085238361182960448785807953355041000522761598735327501122236771652471471859497806510150296045907907020688218727168540893004705337853659670797095263819263803603702281913031717745996733670749920971562877115565717008192248601116730095178411187924045707470630904139863081224311545304898294293951459951440533494196305985441337872483695159936032417026762196275307343549358793513406905129627409053040515022436466286100891131001809229338313086797810215206384156279189442610730859086897023447179589575176455038425656729200907773387301253430492135895567555248738988389210497654721646031994048433400613359096491602139492771373762980234107341437114864509779721492774777453217883520374467760084973314146275861641816318126834908364831882811300798179742835775615601080003842207175534815950288958855761085704656975408408790093784929779465605541762273936589239934138715310743098303216737908660198180100592852789081362172227961850801357759276851624215377658538822092106974949198914161278137315092650693796610521335129203677264326829522196023639482070304559039350030964414824028667182977292798349340277197720026829867858881988294138451967513105341458288577577013764963554745179801834216347756250649329932706235040534060390226614515809818212460353600919452758410400026289177238524737919870086989193819058262256898429694324900585719163437175649410214144417674812968444095085697883182146829650777583741683180453293303853439537131537800629339624601703992873920791365518772990340822918370060510473856391507715327627842838834230967199775281774484716683602583872554276305262933731425021775310100331131221875723227925207340112055608208009502540653064228340700231240469368864145228922439408349052162743057460278456082480209013994179065975133783664630459935818523077339364207840982542261781741471549358459740827045318204847296710908097901977357041975101558254658621078809705728272248017220490314826677645484272917262521128124092748270053981792657798814318018763493720523753954113197189864736098916452621621952474730680725097886402415519120766217758932861001531834668063055930477385192185791128857240147692640130436437061249230471802128668680535631336554783308057463667245971159612118258268342996462517359235022359155135466723756377296091355391703767369206901120623222158761515704588456400217178617700608812786855921440729016966239250966910644690436267209954796876655690239041558996163888901941300410692961512444749397064598564609758711519487056417846358548731090536126745890879163726530794366446190997593035688152871510958426907125863531484524956218403860490905718836147011481764597825133085005143808561186957058941667814224629821519924726707953627181078083941009523033877831731307731143745729804161294156823134967695552706967928787649872448175953406925109545210309991832197381078767121026108001445202931113923996688038739110744482800174913102378082258850062567842849303267533849738951790253678304922434485289967726854506673796991935973231640453100299784769608975616245718998539287826114638814288406737447541236031529911367988622434577432859341514599958920826682796737223880328766824384248237980315221094077319733215123572826654470868832070570329782206193291157271538586726156300341085641889813393689625498153927405657571737876856824472989053416133266099659437371202509258362769925859167173163353285798524607736815752160886536234538927542414532345205564262437976754333494715705134983105482781193803975605715687897424870458993109115479372235425842306802492439585826610294077785779399962316885622012822245419198792746985769058315242684857966434356680299845983421414933415447553128636419422763743649491362124807419054808965312535209863754361884173697898197290793852154744659668928634314390713142572006950441471384600903545349101828896687251517468971631781900250787529762339496870136105246746666988173462565253192641756915662472593708692156100087284081624755133174849893928252386081388040270521127092986800676244243626550312563737965458946232322238869522284797885676340584910807711949392375632643187480637160519081517069102071897701191865266276602233744667879264302934047707908442325983717700822276092912087784364573313474487570759454733662723317589957967914339325073142464258514007879931536008074199507865603678918752830468347357397646841388521877304604263259466956371090592957281092234441032930589643257767726327800362015396853995674211560908758284248563758126536079510708058107300445076102870115652413239633097159489799842115152901565083798660717630696904011189997783273989268796505749572769591791880759042234467075847794788988371771684216534271001413218876554378333910774880783855688425553506975025896975694711492079050991824593276284720496280720879348791136881386466795960034012196001883621330828000470819346114632877962996719431681086460399889699598706390061105105431127951428394795029700546056823861387479281103733102313119218478824943987767013260659410144348087134443752913558667523975175542668313735271724291326355948302967146263063661062078885739204944994825120770151125015197110185312563493704174071816017763406991626077140789287697034136785884964441501774656892691415662578890827851736676480363198979249934908311912147982764389497237674722464334522102254397309555030105831993319200298657603830747800190718859264346636150040936108813629069159938329650518538234430772530289435473363169523476316244745419664263119386116009342056573194504382544564944288722393353266344380081865108951033410592837902082344959500082127989307495746955950844871453519511110540305907098367141144121169996113185830838259592084782788776733504308909978972673382364064795204811557049378641637739356550202206465606921258315292543253460234979821213331507613880944102313958288203025143978332712143085912432576321160659852765818488317518065433179896072437055719990419575819082412628604927919805506112802681455754667610243955197346006083065285719371047844216843877127437910119698332679074951403019564734835661924714108153653431445346902467346593250028929437696867004802281787883834773807700334479448089609398934463318965818389590594438682786782180024346764816010083501164587312715017203221004838352260530888975883244550248935409931311355290966274405397924935064344553721559676854930537794961428850282928869827562439851139126117775382582408154304292566576867607199263902929690459825472610781336914618128436462903213185068552440684026598938659426882762806555812734740639677701559324112323934332772732981131536900625134387562086688448248074665801682452462721311881661053092139083820546949808124128230263301048079986827863555887263033499733389977722487559632595252023937946246598958096400604067555077752878945525467976096909672445835760352822227293724116257617760073047955130946136114742105111170121626305618901992542405826424964524921057994922598520874090968159538883859069703893320860151934783818105246456990738178691853575090363034158075359181089435560695773194985675972666083857030306750361289462644698071394015307381916577612184216368053275914236231780482775512877508033068879797187509040695362717874159427670974711470606014332615191404172471097665322888510202085550657871715951383018037399547784658322045139678285584750138208001245584365113639519977795370300949098823562358203640870112265630140730085282009700421411374534604225760704783641871137846012151699793347789048462084803841544365376260526811630232094653646839861004967420806545485567307431243022737657305753216792188281062714533780701210726686632414883040858566480726591312984844138592418553477839743119244419658063335800561762069969256854447860730393804352751021158643687674193173778663143867772852412473033356681031783750044142179890383337049190672151229222792653633704976253513747586225825196667421767185970235038176257450025699227995220714160054167275150382529708086692849806063509260868788656211526904411120816228169635338228607389331582442993557546795264321279124645686438802230324479065332802099435614705209384068568180522245737352181612662970865685459264592929764779738979999237143380429682630400185443903379699965324453225618034285222717222732592505621311307096885976316059591731361915039417122184102984538971271028174175317945928487142878207213579166025641794476567605792199908866140460345876537397484579674950205749567795642327853057653077125583246537057713983107207995780308279246833119132494619689369949814157951070123455539184009619784348267539208399076584727002506896362605074813982075984739724191964671601989305150212269296465418265865677437333730561089013144362211285592756772659167372931602398576358924293408961468566187494639553957849689403362942814365855216953111602435154072457724270874821659793429719555038595701801143853905116406821661008903961192191356438951726595255033266613151712710634078982403985011679876371219226918714034980034987855256652342270719673983963643752603369610692743122002633462351245659120941111068990209329954451254227522852926482216912960435361841044436079173803479821231733293271882500042477769627638283875289151402039207388736179894626434684551815487206064999246226606806732060918202381146848652304475233807849264560525773507170986221379604499458446650667074764194974125279414315003058796153097881846871190574619172492651881852350199915371172061018151902435359815264736293645927959393368909995781601849303959777699451237518226455752573199742971556172309943309531815146403105739310354626864232150897250986946715904487689290275783296724128971999378496488931429858631625743189446022620568304913895037842986484810799392738018210986466738206809660163514086665904946564055394647976964664158479011802162287140278458147219511859546626550136914749708938436348348163786182414181676316453850752446517869192978670326219528517071511979277775049003618936338604133285816543960059105142548415499490442997541474743678920636820117165826250301818980092464089288368386411262421465098746028313338188340203272225239658716374469663302790907448789531899001129153758297148135352384006754568897191509138350519326681393483511614961222447304126976174906208349595556922411170226705833870622532174556003082159921760771380753255823905616633265143029625133014742124491051115827166800998585467765638616352961143830335773173002800433556243430346774501896274426987767074643492324821614993353517644418158816931046534089161000047439867946222062823326888154662966400115299592277115029406192025876171153179733480568222500451160428792872317524366437568393014823171981134122155240143512305109409732724837618130463264855291319829503453950521262553874418071941437121900644781122881950601274287887626381923146674793696993376976668082470452380459271571064968001967154172139692555187129010336618584624462873262760002507205259312253972212840828440097321708265538016184978903261033348049156943316924242112699192915189350119828835304825440093985211986683236541153219714698639771243961862360034458991364912821913789580088940845381491113668286936199912555922198305861182983080909757797717602525303486886540045110704533236121929932052174271348992495192246062599049979021849360515162709357715815465126706713774082306879821102220152312157082929865547019758412108704535282400515432922675487951029332119929063529298157105775898021111284026807593279109646696025147903034565051958878973736123818426199682683992697562782162917444555902617102683390228105744687887395107079034392829531114849746149478205649907218422566592472774011920229183035320637876576730577440261203885783777006267508629948818248482942581118082866351828393064732975601060120635604442183584687087560903955305605852064008334566419114477436320323520062799579533166712549665522198430750404019600453209125350502459659092494342593321307493892167405469979749017911747196441288457319715954124567755541624322782252875600296538462999604674784361555393884162528780755273600855590010242747828103752610470743195181820451423581295488836609690496865295308390845447935180636328759130307402365818239900834261200836480750121039342647926673863196395280927950597755493109871696599399107911363828059231335085938946562331997635980003606814308492533933379514682318037247732856590983264797942145533662750932982216618718576330688223641792445018976176712619202157533425809869651951195504383559445254148172193043995978767033379170739589596720084933102331816044719734856845812054766817738116043757506537685107601850027889388579230133588378361686259439082637499956737043445038315837922822871776429343754272443449754415285574962576714498477691429590454835282199734315870595288877370007252448444208092691957367297215462272384510295255313896211231362387326867634951555671563324256785029647884021828489788079322193846932791243796611774161867909267166940651726665077976076520946534107333489401406730234314472349322773719910383853288589113123075971120421813764531346114459039918859791044292319711977810624266350886646245883440499442813399840838182988949710100354707037226082288361884541475628915438003120185824086235203347660151041566354071455915307290014319509090403804510094555286250342682645999836100126491152257276017436354747850403990734123265529836686142144469854342634003044264755833904618584448456775379515417921008334188143506559620693412532786182003583661530311803508750003399335454517892598872372007471445075790662558687553481808633241231229124439460206984976620077368296755197160657097605690935860559056853213352522966343869756670773938516216094102327164315347624560659885612486200570103049356284793993511510469221010238061385256492231977648587219024503046418986918012447473130631442331115341493452206510450365140904582539377789998058527126362028073158580566196333018777305946043202499995363623319853511641925633932215339743981757943812295521126398484390173167282554456303211955834201619436882368826941888879788633966599924625993519908663451498336985761243496894775473748188264766031075631993020191938595628957310842817131104516018825557724500306470857481883766927704225403341596326708229491822405925447866185082623383054707554266577537949266572166738736844544753150060929184643902261371835127875414477622410821097398882017563099602642914120068149602060862798507118670021293571146918226279378232337822185970370650905946416078976969053063040361342174754909069014101210228762915526218093120480148646680115051897926227599998214551999960134054385409030753784045260205693655919499055541767669462051330991801287685141157668755194442877755409236564249230989998159561715712068151919536409329719836159248221888620394985871928030513976186738381086077825637863865449853351536832924895049948184740079993769556845109821171455623551060016009785610568633040963697625168960689111740147024360828684645541384722678897576457664707166218043447524710626633787183467031281071366288322727351785440246270124209019158433800763081816201014248038159820095790920561509773533913497354427563204491682819137709502014603174411095248750969329846528254825675152279342774297509168514735231346242814614042433925191959388267914891802555003924613486746852789802660349506276584143232191157247925810634204399009536901305153048214361133649635029262920603067968233680845956070006429154277323096138430111995684867824027381576886152568329675006887905442789842802681000996624843482165055805303086064732273796313457751131576704902954119538129409408138237099506031389311997602829122298364878918743870873252704963379245989494696942051536570038530563386487906678518942129886334200482133118312725203217164230804975331814232709067752028015954214875430216030460519752800529451359799620250267586122226323622191266113819833919613305248201800550479846872880798624501783959449083702852939646425755419084737200187196745278756898790016722395135865506621670068609101224407600368186936150630399380392211693100081038904020426719917690546267175890757582897932818004995901848368592882644531720286229789365422360974810300467850257363862505513924080547635712236608054067075624728387696155426805636701653806154276980661946280054123928534060352154704498593989532080439403931985143917643475841794927715437586408510130464207565655528887249460521214712246875313692326065020700939887670520434176446340659669614692045067244420070936802098725657184793325662788035261099310368978571054832929414811273971138446905647278634126398344071814885567820171959803061712171012417713022721818561632978491656503161324599062232879498162577707723751012936378687731942872594975256555848782139291613125375314948385244454647031884961283171031373573628118931288391060059851796701741473704145855400790191547074590794388309186423580577729497857217713310869802056971877342312105166829510986804279929719670472636038239265398499527245123841137936439121039932966064703231051989914867765400285918014867054697273621522215452039785648724946007204904707982867123406426103394105213722326261315736657531658315599736401887300631515246531533005285928715694687512426100252199905357460647136891088882326343601198659564696653759093317246941902354849677321357641400944144675728865990545219877657848796679459532411230855860519040962705300752368623823659529727193274211578884014551398989540463317182246722948297599745780719253720586034387497428124858995822898126988866635286564226822343156211650976802930050390542026386749788244555049767777413665812712063442142972343625187702921248673445579067114467278809114806906141848258676153252803515933838025128642723416550254183791803037035647508413762954595722149208101526845198459709114086976809286692082930556751213491364692603080223365894637214596679948069570890344375616047348707570915782341502349197552124084661291266253341422022380334168728994337844758847121023780087152562985449535540673354331226983926036805427208781816717015838244281805728377541893029929838289255487868560443217499315915537802788972309264414126499006857440405009296693768720512357229949786774925661160754127924304038083318049793316032069865696446739345439818810634057795161542002268477451404234296875525174981518697383985770842692797507232169515717584563934175187442134861229450500384589244635553955342672702341236359290207019036665976180645725849569725713984822250322660577112268162000125646200225006226186023802446587302134348356583394983677321464342371510187184494436890413740238658041742735552186049227665945567147542145186784828461415239186060492518489863119642244953036186108064483582046545944860762217933459150804290880863659815506450185614588535755784577918412450375911504416938957337177622980554158785987746198718273111365727464693686575930549636610225703193216661710168279721395778126990435226241456243158768628805832788553893742827795585406438400918364164579406854071208755001140054449187101024905889865856340572043667210878634511258308615422656339141338917880089592611378065909293849733826177400864387964998123331864134156226077031787147319452930129753052320018452690694977917511702290077838733155176262572375214100640750197011747453092315876994484198717336378007598105000615152784359082215963652206101070384875436040605115534176337014317439487582625603984220026408424629025039670306646504158935480723527334680484632182112433141128456269437059039432598346488029706577704305259827769625021469557366813626278642590902546964211583973721458505547249613866158373606757864445545712335857681661475783142794513503443968896680562040601092807538808465874301877791866761825238448629480067269392942259550467929989588392137186591471355031582014218473265019579933204982847775435667095631087546928312886943863479213293024785894001435775355944449092915269973936783543642169593622139818807379667560137587873258933390407844495143572487517502270745163530033279137145750684479779057662760028681359384432854968790950764898646415690363343873045552432753480005693308429114169120442273859741357898892711158157024240522131839837143830630769353637023494363691458226647373000709029197771543478170872117735797140714880339826833271590051349596917981250360629155109711078979710038787432498605368313886208063390424958096642743975816190468920050210623581822219502052221665186766964873397180721716759599065488278927771979825406450137147105766335324358646899712283138297485956311386824907554566555291063649317454430761933999645027809196883855971740104841399962649163836358378997331090207655074223689043025001437781727856657289505554429086876053386679313783672774130457481577215692324937314214066501206119286806770926835261361390015755679875787983838638630224797507287050456367304828426871754386983337710540193007362724670684506731219418859533800590231981144836222451223233445110223481781463329762640208380175780266941363436028721363932028824453711518612461819501497460166905390604715471645415620922089558745859658797629610026994169836914682784957956830690577709923293692011727130028105944855971394280920420951549385087236168395939727797043528130274516769276983956873274078731421752160891662383271582557291967958729288548497922171843889842328899545899281266697862282297181263951372572874275437233964234969294828597969226386237273238448102304405524301486622772441045344220279177768449295707975533621994337738967878323326792837253594382062033394798126050273693980110429763795481599538744443925788670000937640072124512661496697284726354105511792002621652756606232544426782701280748033144611017693015079273829683000447628218540088008440104739225956745599726696275512839489477381410904348953060354662500451717197612681712220996769045102905651836023161906244167284603637809042716791970667317693314788699317602605361049091078759660925181251109769131927390145463716007930240693301759647776439635252462028149215371776219453625766525429992556898989763664558033787023027762417661650321846243596704790315189112226020357856053526105986083458293386312256030487006513656861560352239149683786958374536731291004029419441128285846087592318307254300005551725407282403108915416881228475946496514888940539821242961105977756706516576115198522764790183448712537039393668357186798787812434227168827179130817239185440188829786536922424331498655258407950680855558183952395591221024824239885402759417024278501086451832231608574411525226943470676434059421341715464605554193793724009164250612813145211038228962216782286416292584689825954071040149226679178377961821526798493461511741546448168860326083591075269039998898888732755291900721586271414200973081898496998433722592307952860535655224982095854341550425431656223020335443275161195539867647965551293836290023997081002400799857066038651281328827573631604336686659838676199832553901377067903893219117901349369833240832405380039007000565067770494291784873366986881486024406343938307609771805645766120476271826546631642540116735707648288047970748596206316597497913691001401987913997708581229393078738387233492069782520603941934376472720703776202848083429899058401041075262239150495961244996969593303395714987246050857435536844928412546147228573497458516690522208152654567616452586289686955863549909729963207064871624605573041955681493608734592773892920346362502283874350243916767222055327700161191426761715061656658332812055538120080562397218272301165960662010798206966584935138520880211768020544234409566691610015311226784302430826679862900333456277558484085375784674835982164851368369938256264737495658565172172495949415251177115383270348174891837324349355760561530131118266170793317465987809676954390714716574261205613285563718053768167076404763913186486082396268124869375780590884571785657875427389884039795661782778651524394145253542026279385439653639070865065599243545712883767392466417259821013857595263497598338199738166948138119303070696967176401883982312569644199687621256778916895919391188746729157717869979757864791291923231000126450990251444964984881823048662561514987931185997559447686903235907307765229105808117196424144322970109016791657482532422288452238977737754519173246780927764151033687959241381276539700486506301546265096174151111414236901151162284470910495505897981714476569850371882188139738098428747530920860723318949861183851823847544582907489887032080986392990794830188987340828874072862703859438360157378442474361703314712045992973079071564315284453394061963396557264057790168222665952458009316601311463773080339462831709761653590964605855045584326909662247244697887077447793622012099154407808773007360044971401371828492461516149513098583536670712672502840718957873359880468752612750227259657482205619888098895378784442185421398822244300911994282046119583762249477289490534051929371194113686870572947263036139683124709448712248295310529419939080129493817031340689689635000264999251120899085889792003852734367289488032641155056914579374305150794641307379482583781167394118079735967084564805371352741063608109965741515489281238443915708041412253304408872837699800401792132364823778437721854928716978295382589987226208185767838390969414279310574409849165412632783993051258576521809085633351747159955823999967094475544270471849483768022424597321161663590833548463161563873619740524094871200547851046527897303260931118815179258619532091899123024446429303859854686322239211995000745110660760929696233437990806183871767476641984655642621955091800788461809933804473800475014306023180961690052595117685296250179635820296334572805850197149345086293046317226146630550742376786299344875773524547219163525852440544146693021159242907360673639261081484317731462909000960226129186310958174580341733398988181473642027044282534682606183754566517082256184461686357095557758347316004869455768855283181573721142134592366304973457505137059366115676753095927086266523689740161455194486476224873100160929729011186965309609843440601727378188041616959781281445038214708373624362782936273294004040426467727182823327398540067285666129173500153431480968910838833800589422428725122693613519582810323259007797068199500825584978723540159265691879783196225592893205497018232361025963170723618487845761727607675305356627225259773366265427369732473023790363164621326886842429156958857256299892286201756373549935974239067595096441267518369894757281772731225305834214665764231488427278520362258705669169483875704319983140287359903716514431827732930675789019290741540099109888766350073717645128559463616430943041310274999061163821423407805503714303473871358913790434896575682298477170493783919829011400239306170950694463676794468508716998214971197567864621184740476681103937600502250953092027600384251951091287886913397881931278824069396864207867137872256462099387379651467278683703480460604253285944080301156287483160363545064636047509655829725629777141508145973570145406667605305375009349591798608526338950861458641801282088456527864246925595031072500768211128533438517685755379065224351905458112334580843946688488618754935628912737275577849651384644873673307242523170214634816869484881516702564481100615846695277458465724630119902991731717320574545166693529464727360913510110414169359173381644039657379782763158761999298752648695015140316495328558814642867840976519014722981530255187991089840381151791624586060172807599868070547338778865933798591592082338981400157947010687368730775346262480139402568029956428026270936644031827162986101635366983724290248819593745009344136697365895081822153992227743675328809490039177875956070449720222141810339898438512477901079613501856319496109381707823471693939647178414383872312368928751434750769939866561133920666986958043425630146208658571848868940047900781289920844621744919920787053738255746082813123901920915339571488414638616520389822797123472603091861233667072804866407778408310810132280863751688473606152220082494524004757251132328397523708367085954749956541163943401049485828792874241159156564106965027594885696621151973222914064508807381211688996154367716320028826880775727605500095941490646505208709547228509687713931493454285606541248861431574891189511206881212964117081401185390416297220778586586575268203376114367640525840707776383187836176865388698143057119140090062435025785061384396435880798852412762492846576432327860809308044795279207578211296884769360362392457717988065723332705269478657998000733593815871804895111797723462595888240629436665557585658379522810766130377058709280332369195658876900062103360392365786554470093289926653461626733675056459613941121532049943510819999613395574373226798569915164567297266846683109276884453788602588752669080710963732944939869941984386423631165241906950309435506395207004397748030954261770745331527975890108016333422319702671598125646344560903224089480918822555319101089109761310495219786507478853768289924463892244216439401494436353419913836704454994642313852956835164100741312145639112386934086605867364544827594292708929730480162824434561530940605987678959225186992377973977473149951330229417181459171774471125641192422072212787506828023035542153281582287413456714903008652438613091955559222610191779307138477391925511820568671208319894063474924117576876958448818591472966667400088821768053204114093160923936451685133886092346010209451082392267233794401635349930165209554131581762432408957820857526314467811509231117823475814137823191147648517962011699791312637209081537447486187017556876387168752550403686194531847714899167239089166193678324947971258407469132953042983853951768852287228093080434031026573988893203726263707383503277568770311136324189496277334372056592206544646188458729986573350334271482398823906408169851681272238659099562061502240027717891425319628264012622664160919970298793709965034134231728285930704919120398851964191427062107636309171114088353968186182568362020703371711428703623717619899955817720324460322415068024384926848132348175164278857330804383415734723686227546883238622099249841218425326665452283076087341659090584289542062940978033253071584300763101476310340060173292194053144037715662622762633079241049969380739142195322867266126014747622245443178482331244128892599376615877051365189688857172331770572614138454249236248494429923179533024518151629423870027881612945082874723906054251204760188346028402663737366857224495954909007014346925625920471297286237895969984016357517701638724229840329776163895999655643466233457369075201483099235511670503186389028524353793694688762268796544539550769079012819545815928993885219767928497200355889525760570810125587247637897791981098215505886277784715281856829218272275948685957529366444776602876335555684523158477306670599643009345639896402847439833808417076673219239269030685458957816115832717282811283899423185591576228121155728984361520967436247630029093093743673716957890450644804134863241354659394470899101905078240801341184149198519872712270673320771665135026064163959055968119220080679239852968986143381798403879400629702596145579889996095899985308603576403845782977331702224183987033761366737397112044112016688613554371248869087651522040137412855753609328567442652264162755465825719531065560482608097559661422035796885860401624245580015788319244035641225269431220008720189891036350341328451339725118873754167956500645959949069341162621061810589919216827851072010345873199585428128910290764829437200363125081907156929783287902889886355734045911642869011747510285270338689667029042168983002634650619708774816981429985870770777326849772441206573032926048521432787070400109034845003069208479274205729633987534719598922029719921040247504408523210936699929717237224922180355559601276114340681190307668279123608373233905797217874499292065799156636142718734640400468903957209869677735816989796030401824851463634756458612731556980462408600772660394423542141969201242936245748920641069931493646904974146593592041487626196644823673695480418465777689414834771759897006399361563444736800389946087273737743581544775215226323676871027548847096205726935454096771707747489766216472636283565615584225668977695930618488796093971611406622805829250707860321549306920233241838284460518488548804330910971980047500966600935819959237744705190113101951929182333251521409596849951613919989157554770814186973077737290642136778269692360539603050124826172328429609564384118253720335082714054209129225629554146981164843344559280620094343129572360313604762377780580949096648387118501482152883798829595825738111266402187465983287308163485419736740996820229796676879486159812726417701541424335645936612766321723495958776821127022433745120042662075538152500218584030725029591459429345460011068202455495790202207858008689452177474951939736296502986318384347193818378971908548915485255451158982289438067942603695705210602093864416664441457476960442899153418109069087611894395216585441820656246967856908699254565079893163083787477516141945817739192748280413523562818100416418839087851779927654183602373372280395662594870259597243452961087406016090031757148962408577263652586101397511665247050984670393429277660447764129592878563518129541366076644026295821490582174705299477093518031474104495513184426821262487320479505395375536375611538939228884343192586581914765245126683598049840989844945580854415036030166189609036155166436969938494615899308257469272728617558772283597634499186491245779705790455179394153104859594889335425277444435891581324311608766035763821233959802009741983725018790627679369014621043705364891732098615044520969132352061173854573127882684683048171201953842575896889003214481411687130741697048587716777993785268215562661872595288614029496742762085247452647004386323315363644585340519563283159819009185720921217674692363898438812918220806787028575634498726292568101583380763186690480545717057771290338803692554534802212390263662474121678974923390516889743892989699796271326332519608239599365072845122715847649728615798700028012465389156255093328006494451798214098674405808742826902415867414239760633983701695385454657635817306892883237620695327862018576002039293942222133858792809203796822888193328454470357454569424843053365750227644442073042420828406882968277717502472909826276626878791412035474388577867725814210051183732559485827776510894056991594222890841892590006044029393043971078920354709870353543278276847466663739367481949919282852043907748913690767853493244699477253286509113308347252998949534334766975723770495719072191939036371989145868803362581018672127485652950170157987130627189055644999796945848268729980721009331968937554369068801479977522925581706284950049024878498934201627828713359540777926334273798983546205639505474224278957745422899154559408992751777068531244653389770607525905183688434787219341502876045974203367201144181440592957195965203730676685784329532734282261618747695838235027401651731456870845000278456135219234191457498300461733771208978938907408230505718550447715789855271576964807915820326466280006048522294292816266879305967896726914168659599769023185662417268789003516379556408565286297570759781972456191976763063671767829285160666997140853777019923828372696592950794294311778571791748408882654681019186070741367310354758580185204678569370701616373139949759892893813076097180042017678379713426402330135906560477797287267618334746400489228457347976128285985001601965489261121893716410958519051265772280970802352306780081316824980779826638687083531786804754340431665038652903800987575241858103447392636497690546365839516161261388702013957703940588129957163189617453582838390070290455764162261452014366375444226725628088110378616971681614965162442169494364405172182654123893921305365710801344643467604681645184097678909401876790850103130006013980195680119102270452707634695846292048852734113266388900768175016859645622143680093361392606481057071636761564840477310960381382891390529547568611329294135816710044675174894610563293216602151529470660245782887234968903101876667237417551028053253682261733506105176385520740860571983887032527199325744563367844989094348427463463261384721568370054951152091454477648064613864319040522540836260862409762033926403139193997061319056258380968698600071324425809606755949654038214600099254709891222079006823778326560386864428011510333231877842236289169716346763554133146748055251376383957040968840524588396282158836187716614104613780706617120816473685789162154022928800347745747700296027907447871120324754440310875757257227246663881444541679623273265194653556861169786966528178283969440273087699460882525311499872813294583622479079021089636808238596372269138411259403566728381030876736792070005697151090154974305228983379791817015769370258060956660466022594550202954002465802156645532038622751104822571662231895630813082818597460152294103132696454078418530906142328561853767307878301748275358821641277297907217475586981889274803467004770985384493849674223047488295818965325966110640866023347011508703080664694315333361940115591664155016610528689484746687530653033071468039337794880531963027603864624114739807685567770592820931183739335983519014740886942468278141043827503806195184123809433506481004586709759853948610574893730664240971192606917217089132923265628901424424925170762465254759396556575818534672826209917613164747685244417761251203835315393265947980759466944710407805421669499304268537511435712747179605372124369676072735149110527478162668781044160925285728328058894808366501075944741042613789364774746117961551847649140798160258251709181474708669466347283548399380140331472483126748198088954725493048610067129786506617716188409859951244976384378556739151213922034987111663061643889357505080248323434429956195571033079513662320608665686868869875619830020301824453360150884388609129048918482572729700048422450959241099456854420043267301496175478080001519815365077965516315975301192409033495167082304732869258470764651687259478100777711141159301262216803838637429054018858512610623410877545280367490757188364730680180515835082038538214095389526312382795394539778454281550389377234611029448328700511991440377515939909057880647034635664274301417678921796539250567203805656572416494448112360202146778538497568618480131120107551726048849122726462094336499768202356079380765857583888199934372383085484026192340689321325791732919588413906258378729791779345145033163413485437592910173729277601996457165413566914231660220548913480474571271062349980815262133459828299020451319508367700552328625160045686696888394709756627262849664964640427849757454838224290094982240216289277437369582802155056011873569573330172695540146226134883269130066312543635231765205915592389006787818574615716627499507459172104918120058656667961802458816089268516749026016490100461216983356461430340727525937017757854190024425159988974205800745220389204147165601943332058895465133976048813973291519392523319865145558989880063680533191109162050736805918041242438445520691284901820323897031008858446477574593924442551492767639829140891310631628886846802381404969883842221468320909045812749953066938608144981611622795950469836066908641869850683777835441451484717282475767485775499795038963275931761469952207230322449453371075559006833145102343280606716439759918747694864978513546168403761723554888697546026291070268034264363593178133030686653728066594682831072111082110635472633345624837205594201131439555792167787316053142198834880061370907735181112483195139274890464083497855183693399821566973022823439970089658785529245206607072535803470329331043972493967759908702043381864732657522131637150593720933908881189212470713467910601827229571097434202108333565095909487805766261782233340680140293157813096449099275784331802132547000008597110596617675919390725475310969573142026534247958539947648454638454951134440319362352220848999158987054519924078735201358281074611869506904693210285355321451907649106360761329285443046184781739176891403512344001091315320395434139333766050806126413986621899834508089136503003000479541226460196189956432529071683811383996227320696401305758829741494480156330458760153668738675655958295357347163160765196937113914488821906691212702011893945417788635923861255110041212370245954121777292141977045772229993436845837181565886400716305083940589865288564489003770207154843032653010593236384484721718956441512811184796074669372453509524146900781299694921837851616931141599817980963380766067845038679323158875691879408646050933125736517168199647200010409809320932595786103488523677052830220029151767045918446515635640468638775371715836228629929949885862767148884950144177267950121743830795256283709854891152748551742238213484622039967093632302877987758670497444007144629342011774908494725533727493559465767959343702649508614804170645046998361849304744646153418985012353265270484574031490287400900727757025759639346589376918843001368087856532832570818463447103364688245169732201747199313832279249414688429271369837843694354496822530932619900303936532501341348512594768794190672310038526852895951446153094700143138186998414461473910809104852720397778336296298003834431608695395686901976844065008892380309344392538052286414440085331469952058742023192054300409005991097217113820857069797361267564151862008272876883883622136585704757616719358691221250206554330713494224484267366623299246230304766669566371157078061435893087464653126549366462364508197381775893143939344801031862302040945631608964016191378670155469969529018447252951538300782699057386725641576122581658694522793684392386658635946443982446874499965618872111414749555288983438477118937846063623422874884399749485910166110059652698285968473012971329238764454026419939734529234465329130746519003784453664343753773516446473028397176189701907912684435070662563438401026868789239005863455862002371661285847696708508136231315966993270151591825441051158017930806873065268123982539576866003090893113685252611558077375066062756281766477498213368585289913221299874482976785088786305356455871949386762646530546015595975117552827777061691089110793414771968677018326160625143213328931543033542069101888296044368788517972220937892841830565760059706798105114019824162290603510274528844547047463911296614192220261082573366504027627904642864213549219201215252357204582818237921158958143475395186588375340723895386363429395784686693908449446787272209129403009008610474019920773836343338948814660116072106762997043155177224436253265182409418029179504780840512694724506309132538235329479559838530299018307842450785581912151869728407657255643049809871282923922472377110407129404734782340385375743932981438005734473343953946571377676305045904053618178742064047037986059636660947504907845154927449569682573075886664835743745048038252306272737587664630049125318175571136421308482165967351811453313168759006541351821623233336656348910366261198547182245188793901445882483259410362963124434541293385937497938100403497459218465525512237139341887628134417064998810663189964440717054552508820867198137103498414757559128671324921224477697450525801473147924041654246392958162994199181627758100721083257598227837696657405693767712368765798555125110971715107283963751652381941348548610742837987825439542103863410716689453345259903546067657623161025001003050286804347930371038247403432835651616216704025189090292709042858947145783086066435739950970187489840433871828757988109368465700338865101733664916553257094681259262348522022661241068629864121062812430294410997424376022383526376747991116743318543805598638272489497969770142724734676894146010779289018196122891239167634491547959480814946776996368226828280265278026014770815740837522707915144871507603805275434307458262955766143099948371243377958940190179137824794469485351183723236470315803223569153976637909010844517858942340206314736739996718100792614284032299764668383557400178409313258481302437085277300602007860194415977376910780725597107935787181713090770951188989799879160708393841074680204029616631572483044597321836344706636587555111252042772021862534506534152082812197484592028629083908152271584433102421254144174635267372104666091542452390717002542327438240295819256947163782844092651005631682606872799681294401150952508676440273411138491450488150653857517050983450936146503525370651039198970551288713022813196301452004231056581241758617525438287079490180607118486110107588070137957576372038876166007784909696885707127790858915761505915946025801513712336704443683490146628890009095168715070341867054010641065880547292777531998422054403711091859545416529180972378587724470583139543924745307431852004421950026264631515490265548808213514692687415567662751431376868224971558800105241328625327209614406764188685795644952126613431603117102539871534114921831638248998964215911213551178319592539157864469594896817992035698907860424353988598002673820052695560437818790188045018326143436048423448336545362500770152745911144950235551037957494441426523295264083958114877196882697317688403674591026352773121064753079995004746324260289823927732891435397911035867792693136327815901527428302556897566067400514461287422807984207744195203543435813371071389309475121628049491504499823777162379908312809455395087200748402959545273437247421267036188978369001281211530531641747480429522647422488892030411956277533114127590951943251705089209047315145355841622505679175671844398319941111640547860091112464585471224217218692509950276205553237955533438431690822634451172748978539102564816474717236448707587692764132404913251709164327294957052128415890285576780756625914239453141604869954460574331555895198648815241629872543853161551290485174943097910757922173791000364912733722990978159756729659105535671535100357881505260925123135227967492117532675719305689672039315985156506266762904132719405457128152054640950532062509629587614847883930683884127413732447436031514297951531300329809893520323879362487213536617117124256844588417682672769964723956382570946348156880702794293974205913977752342310386835476534986146865503856186858061973227280308602312012271350782459217699883724148849252794351940285525274029304022670242769427123585552791744901426351291824531404620433062895374382097868842729088718571815479846795281085765598366282444189045663988231761164171474677733307488057871111228912673580905380864745453858149201476946160858162392330511565016435701228116393742942022888196544016380550614465439043466522322994235523379539840560087073889754680278135260795010555224580378689656758083304126409727454703216607832749259841021247740864460720426390749373681920389799969712282198541124177941187925353955253980782452351953870071371601873796322370287771887883043624695188259138104341820162436126179604843567023515869837617154318830308780334192587394338029408394235394734890853418311957346065448127685690505088192895012339445467853594336598676282717866906720745499086685647847086008005138756395539372767426382520429698207971612568557755717650843638498567329491029907114455395594302900011054025936256741258782448551843200772039185033836414197154709795777325538494785376413642321025295249026435311934579778213717949779119826711072918434456610357392245378470164810487989058624610047528948018268021703085961766724189515797981580743446265253344483925321882512075311001092672022028416050089206541321811728825053218334642425991775598254832426160646114752126096642925767066204604762201677375398877851756928430628515866973161711085985802350780081389592420923308143585817027759274303726370077235373787365368567734815066262804519895580976144117224756586412683720669004900994927302304772933547311636927566454525067209026056078189835321567153496345595408250718461813744933018428694097685287830928950479757601404372126485620471274561664797024401765173366969268348934092561612755738824456915186502040304018924087773943538711202094879659047940970627013133934712478539196866547354469014142985155786703044600542460018389213282037153193675622572988101016412924972674124341585898727361520928266621398131518502151030665188580017676149553603004284252772225692613533887264430955354782804132164414387629539159739676570845952574541306718613663084170469704477495290966787530936475525823330034289397937629800430367200294214896610180754052881165423837298652295019651707471700996261168412074755745640916409373870402010252307078824965312410712099517175461747960696202940213637448520203140083242453064565548293585804505094397005454117212445019552442562166716822861871763788365577944477235980068957636768243739558208955877782952931053874414033170030230845746744734129018882911684764266640951611085656006873137748208415835317692194438473093430697549576388017769483530816734205383741918791452232243045313746084895275992187206144904964625430076584679641369298100027975945096734875189124350405918160193803401098231207586803740823834653359632378707982726357051444096811046942339472882343974013632806306478845789354100901077478146271341845861283611189577404283143152402291104045175129185545386188563074837112647923257219821867080609489528890238810499257082027165801814534274095831049636906542611865274801993490328931101430328606974760921370517767766387991602589516519126550008278908865069726041103863368852916855695672210389029715461111463763447907199032955462769355209609499274046736685403518542263362806566561722521831863261260073389566522647859863786406248513128276669552513489528709165317638827447502379956687159389349726091903391715015265890294580582101833346715348430565415184288693852773470447298372627989741675629450865623254800414901125191838740639675798915450676730924188960405711940247880839773036827631281203294437301172904531344242211829627623963012868824175001020632992238498948187307871644061501630291830961596593075386639044807021095990010519160569983592234511955382711095998490478212132379712845206580426834335303021134049346893215513450620565272013845153638834655354994859589644195369973641440200066615363616533904104954197005449836453522950304081390160802929457916586782421921467801972857166402291320095178120651786204186541614177217813570294421847163557644596704811148287290187537978686563988984523041528988161411879354469920488894165212749146749237226246530252557496815047737109334913895335288935829117931254001350976992436747054295313482650442093078658448774393193550840400724723554337296916269131107908433572286521249939368220818337560543866247410513791339608962747096581064938041179659367401014304571580867964546370438757265996037257642921240522174942141178642159917881563628454310851682577250313596701700452204286902957049916847040181705716070298418609090423546744977850125204863235201786206804547173842680696810220132884154729930482690177434268624963938431060536263069149895467325562680809691106718503549179142106958140396324895915056117283703391211270091689045880077410138399908813825355052006215848660813546921415366980471384912430392941611285236497386815520076714492927584753242887768810511448711719391232768862560313462528058420836118786683749349448459255216970570883557544056105423736627387405551966067054837780344375999879755605453302947256317355448760214735361516688349996637163375435760986216264591234800999268535129158476350349787585909833901658785821672671330011455631401248715667491341481586240902108392806149518681625837299315071157370499843255902217385281015002366407705853644287214583816182053111988436102256614961981879277023228103991419785977588451672842405407533572965021791374441760938784482906933159447545423278670227083592024261556050917579842737547462964490989725957572936313579861852304276230994031455357161283260172477941526341507340181098416713258475666570784934285939544169786276624296764215527845479285562506795877287412033963821334480821947396172052889387705506807910627968301396230971353108105103688475244395717839871934931325377850913176494742268730785427414795084234552479069696744854374550752261567050429578370404631413813250012506277481262943733023770298680871002696556757697788372293526171775708380564715252491878630952103365683880096164630184752283568293779400704683133445924544325840770392212718847162212358103164120405181837524251656955768860483779759475603546725668349264332241811298347945719693107677328151869878205873535219124413792288261015801779116863287810581958637346250811708395477907739310647543421849558315117482438681684184888197515454216029605776597473268188545659536625928295613380264363314803815325180935149560608963821930882422155834115454320036932818320687312662533881606080694470105192607061745658248169733728407872506966132639932893217283182528802527144884065732297445451048631616087992525535906799894701325525693923310021134493142367202479473805560466265074038722298599392527694244621834583632824858432467719276481476657001183844544027018069885440880154565620516638441545345201870079392326889955844667790049869494675419888133970687645160514464782218508433869415778309997660706247944384397326026807469436385380947247454847695956523410038261703603581892939941299961198412354450896481512287186868569454227513383537928647925833682597244511417026794644386340012286790979394754527762495416256195467448096449212949472434315009676162332081796964427663668003995160850565333891041556459633565908611699402857967304108845274533770420089401818718265621234471594244356371926986646509130293064029605672167612608303851845896146350105588882350138206582779139049105330158868451696496765574847799625546720198357180242105242874725563068136423817079914434951440517024132417425255547543562842656689563636716903215812606913323147615102050985300595872502055659674571914916234301404892925007016395312499122027570885124858930451325604406465350876665513348699800479220636502410569863314099370954952241130889068931962658961959807376608895400344454449867183356073460669382695377041202613680050308953973884553619723990905964569733125974987386111064979254844390821766400841869823062342407303622738874793639835255416198501760405928940317920761749427599181343124127917312438280226644623840949902290078605694998319130527728149276706201578552862446515687768466824526818905921527135245906183803137484476891680706695620396360548585928490366628916447662190917541631133245645866495920151733463963181799714386113501034981299405973631289877705707514153578765080627107138391912370643847714973360739961083648993286994486965583132556648815962754339986511565521870852677811854876983576741377098419592036647999256335455133483185443449384268194140981915240550668224848664106742205825435780778073945759817508517560318122819330113511115065995309425829025718504428921102154075604498043072673789194775831466020333691728534242111897088980026257728289987257132488262262359145073036955947935554792632726986528553717901738362625298310765321407349066658307215664285447068453957676654998930499993917192070471851971976275815796005947494297453447369153068209362946888059383205987224598352877815907962956608666227555771530543980045502898593314706727867253291097339314336063286712175950386334634937078347221066727693290674640582849451902562945486161173430322754080179245467472564003249849017164876027801979665595316344438467320104047087097110116960845236805149946496847952876869313470830698681067823427426767764360179741088592108049449342731685648852600260493161767827707096345132112084364543035490090674684551570738895133719154333620957650851813759422577401068705891323817943125729801167171820400115478482941094763449880524538933827296499480810985972194474332082399206442607790749311658198087797951978417465855151833803524875059622909868275778106227166608385778071125363998731915054092502943261897784337609400666797304639417426614075672327185609596542405199030103470089679625504429148816466770911570489409831269501162633045081141995563274654624923297135451407207269525963035094851865965266832577034485187262503595851589178573067261329309818645299009887454680219289354182317544570986341455723606009836043079050440214974340460801758312630949893917382699518437323088045376853047203110485293492787488427209777962008220880535425632267451585849859823207734205481656798197278543252967665577814745729657106981678528490515151946234561921419698643476799862809331791277754104358091850637376626724759386004123314495385164796108185807812579760126211365770661230293008106530554592345464475300521208374768606653575624409287045153407751096896012149459819003427130551834423751040390436317232400519074475549163816080961244004647414777070248144282134868017226768710614285444878582793867173114870779904044714057206899854473644300733921925682616147767678695717903490339932350502716848721572292355742793238197846090740397651090890993331157903523698763752746211892024585371223756223340440903106660094967241962529317845339688177272027799983273960021206777071189449512340243135428227637265376542785463995883137321363022141653568686588531299897739038546929166804315334836962987951217470970630407634597242766765424795346629743249171747148341802819679323163507782875811050039745194074378031936570165547962727870737757089599432589324619094713404891830394274688285351799162776523552608908469529977609678269872385128023847052870694043535549230080143228736308003402571052137241384744316319512485394090965015728552630640666070394555213051292572360013812180810377385623957503295517098439200143354207465529665852111764836150944931746829091758975832163336207653057345182091003738266867193813952083341627801144175617630409647967128821338826010539639427274599420204426208594442259857271996297911206112659210016591742530503442104451222228268744220331975528802150980468942845385949931333171650219522443609354436595353693547116723053059357426749617656105202131218216963032152374743291287862985008660196792854555449316081232251858554451082466582792834905942297392537506400879566760719231356529713824475710029045303100760471541480679007095575713542779104557062596895929830301415656121433253727165405422894656338764680602068175285496103787443858376209560243668816608788948673680147148882010292556827849330526500248810860119038832118984752289386567112087838625374944088229209917720815303535656463895061216425913649014111334268522482336123541192055339649838700705070068820407946916027449245852930886998261990625574336885486907344067491016239998289285859521141580143053474528835914829191996839129055576731378364161018293653265881634349040387089572850097985204441955569988927357258367887095095019218146389256331134424283650237199093360525780547762064637249572985317955672384037816758092216603138095388584302428786916848732841530337055366255492690046050835331674957888365067255069256612735603391893390529447009301999431904822369991745114583089763631652128177947076008687757717406611512538134563108878394818956983451790083606378387881021141998166509063147042989843906377970709373577150818758199407772876109436706238378003099260120532588361948368429576535075589343375355260385074282029724950879162177173343758821412638882691556111521663757373700650258966138858446650040632155003505807449047695619493441386553934759697744201418437024813451949883356091050625044885069779096984210777576583164799798873614409223470865770417604179892992865874874009535087767353135073794982619928266430297538595025826403200700905239610461071420252754841873053945895493689186831949303389873285585325054593608238084339141726768993462623900760550931346067116766176179638691907382334794136591834306352881281271318781462690883804480786401487701359062051413126163183216811937059619304997769753292894118989102862218609879302263097924735881471871862059506938308329957620071481134435879531191608847261445658763476960647345394446399751301345309542964674513251471283666459571326608057423999044777009240496857758900332731988303796163283979972497840010749110781895932997926535051678129754601565280707210084731512913087158129587649704112972561663403387202272872810918358606101793638170436805559838658396074350098506947664856098637004951268238635337547495842284352088789245862262197456742870801556109169103330666988245451750945109607848307984713078349031574564633754158365185863961331909532407772640619350925715662472608319429293268391545317995985674620093677350175766306646858498911466694663444111801799349959048365147928218962560454593045410378353427738718825650875938562320583140552203112730269086549605763755124480670562307638361945926586825069044183064943987648018883746661754730585895060531666831181673126178874538297165837130553720327153544281164706360655590461824827372067730777999039373458290593366771222256314337876766378836732960670687487138308471718558503938236898620432694966773993004326408709968866842102598781667814081184099689805073908732982289751005157069584298977451915596095552601605316220913912688857709258077337974224524357830399894206097539462318588307736285826069656526772047904327530045857846283974110969225536687872886130425131857575628906947138267940570868132603810183366480346667282080751891804038892499606961740244485073350802579242357121523554407022888086545562486522791333490695064105483035965991582975578839687393601155693205373530636890995573002841271060424280259537117487231453198197743497097228272211993309163446444681069011109022794304094048838385841387612863676415346939258880487229559253871564219507315866034323530461264269122674020260177447583651668575607740737458217378118614168997872471735544327820005531204576036983813235230903141016260317693178150231501597437010850993166944939717676964993683248683637302969520223479946278715072576455003766658917765319866625945896560305274766947741319262504518492598344464716168222650316386200363171759439278119305994075925739092643075086021702496316443008754851453499708758011754608059057787418201478795937894112793779067406937822739686620466606754384684167078743296213035621361723547183348226312308841344823272236009358524857004725554109843118697277601719418963236222854456669286929492772029194361216009450318664207498542393587005615162010625261155362407235363110784755799482139896158293290470521341919062947048065126127566978397303814823796466096985388749802340046542521453979047514325801339535273363644741437923768920885493582386859155354814415050428324348924849214998363469632935116813736269491659528013280866005191881476010340974546691958304903078725874142313358452780484629247632595123482843202853113871839831473114362127746983097697056138945890982256989109979261668977701340889908087163358589264907906003326809141275318687703686334635544150953887224741955616973851165567737126346580409408747930557108132672477615191086937955114041400576638861682743791402417655448918523113001446667070100133577405391888332569193110082541013071370342673059864502803487716597189295983548168841838656607998714110733699907931264996301243598141655071832023673820515156776788073569603809654519793890747882410305682422034678989638492479704229620112603312944734134481207030798824259830444056337246491868399458041814669806376557864228125273583592751916132895625563866399810768309549581453312258568330966383110092733979543065778911217583801897193132957524523763508525015337871564291583585876365782101574879240740471848431093871313789901674307604949611035587865882816458644551691960335426253444299301258614213177332031271744499738731866602527391202944400362089276345535555731373691738600464353555276588916818033409249879253875219023528133641736464035613251239780198367385095283326366229521448520029581148017670146244852767430347435383290284003719873117998661987629489035761077366143153760580071384105642856064676651261538375392855372739260995648440007984669246261263593340990107999392347585142967666766342681878879074334955274473558629695900313815675197810898648411989143349919913742682601101915435912813710978068955769725208276556950798156656283858524098269249291045465814418577706146601652825236663409230589198898893328716081935648598748075231252855861319903186792781417823078602320561985503412032051265799102697883304284333012287764920030569874248849695065146459913458637569516927811254947762752555772817493496236516351193803156116024551848011349716013428736476128510216676967870692092012683392822026436922139077225249453924246761573162812674383664761420733842995111784120005368936731502678090270055642075405872662564457507203514860006224329075399527579942916345555710507266850677728183858921630604983716586977751610194517894708218626709811867806966417059491667119860600878694156451247149742078751847087022123364728731650547139674549670954792176700892286116884310345298012502263501717815180676163023434925261733461756948674058239181546628330806322180156616384333496825225449041069637615500152351408332970379263892619792052809071556776769237119393434094104729142313275160689224139902238542480495562841808554836609425604695961898258368298999870451444147905794498504963306052874561519828137600245677467670421576521382284851552073025735947772409251797989833596214287452275210263239801319629390790927629535657302571133027330662618132291480972581246875335525273213994180674291680227334070595690381738506866638218238403985271429146944239058224880954042135731884187767642621372199603647110502209101537754688324357513676058859192957191917984862647102672171655343470485985123264518871809918732165374924865236273367942957225343755637129394398963315145114765783538165281344721830248996440137101146553120847676961963033480297688936215346640840681375403389578670258550776166405897732014744335389464340054145190726685932465237120862685905520315685600235041974843692740019200403306855127817402543016352003094532379125956486571651012412247902848567487684851384669711491778840741483220368515385613472889216522840594289776469747456982764505121593333988127464143560010836942296929289810946652072173747155133451186842195754277559186574266544023421399840630866062627736043447461828800032528304920368951222039346205287509044389389418409663219497868430131635546982190158740658680464386052959972814322178351375159014593516539109344042577257446474859925316218543346632104818869213423297637230128037903665455732971089583266636858846151805472375375092055530060004443264856843096400981867888065023609029907737816087215902996859304586348741500342739575240066132014109423649112467157547053189373447088592101286396933155425532281017590864286767194734048532930718330872934669959817517830442751542176830211029967343329399012817471942478792647735349296477992532119423555313597095341419289835687645034840386120443687165749353696379109526353798629302679962738167258476604190453340062841369625055383334804826579914574946147782011541746455119272929567200936599257973104135779165273168676488070617826702872300799632410722863700488050502166540168928417761225618085427158697178683253006114799019034989771726449105172139907725463782806638519834788261745824660692923142256868402516541159283457391183345131569018942731784533306712431991652056372020572586100647437485715142775112629831383029112888396081209590175500750378392543186738994752742949516844492429476166346986607238151140575143203880655110297341106251487607696729189151969523010610812200915611542664802682530421084782618384713627255143797753726000320943968886273631635999910668430012738372708629578796552103080913034042873212532189712837723484921504796269856141174748916555619705857484035107371396087121132333316721007401858068789688971190851444141322501322709212932585036903833177549557629737578781791024992994805701211601570999991395196778337719246766225286703791817903962266212145957905702706635127252405148534282081530249293543141419652679925169091782956405591704467947212758279725791099097208635592613103550090823657805142521520301740530925883827108947922911464791255292151674788817095793560212084914559990987821011544768255936234521926574588645645456443309298952736795419357081360045536558650362020101094475663445544837976109573149060332908748187193849447395924007499588587806414053426624145234940866980944009891682555421888651741782709488157349591051088381781119224191183521995477195831052133004910745149240948479817761746634043965050709530387914652953949821421608356586398293223546426698316281081592024348799567412572582846294503604160060227043592049223398112032284455455618925326086511728189373769094992958995386194462729842882318955951261825163172413072410480729689144317955676032314602991492606378367206449242840197328220673059446591492043544047462297912826657406752974288174696197278711276361087428409271060489077049746201986514125566099422179625252086168284275775699015555439781574795610437076345521083911788557640313028960650193039470635468522191524102967234620311967345693561449630179311719307411495124888668368046026151031707338907287863546955327020259972284825142828805401327584309566100115292281670866317087471175638284089748719911547354286776418426784776155144229052014997661564699537986023554873881987699506337077506714950283822011681721855064765267211299448125045012160618053745090646710959775563189210968142529374398895119950490791635013947160113936236074894129143066468651456960404571207023318899229744513393213510725519283602503293065782034282864261815971759608902105363829166798394472063859556394375835437098096354380040644977184545746611497912879166773255181658566278842320194331559500103997792235810766471202205098263093998394899262964121514145884184453388029028560951149023729107213939801661483025278074105771522809627879097706484378369927270883267726731156176655783117181935751168121813377735502069834176835229649179071730005719039314335799389885306102652106331543980900370612897935606894735634949452274978443255303796089173317394216568866845419916553881633241418999412378006920361058102540655809427103174201958840556258087370390914288300343318650209064784038401138480934669443431984914917001905948028960033147894102099589717153031912772097344939788831755600610277470522214981624390827410469424160139972972835986290645216999875276364296637071146150177498013068099704172276425086180459901609970579707628175009354343388904378604561474763994897528847637220186578238404031208203611832353078137610353590768503248845130563534681969724634000346319721406130141518501870980366947846615521974663596094942670902575834923780937415903670178487173101283970132648813398922927404213306898233622598090085102828622933105650494956556527759631303519105154499030065319755710895734878208734781275414156667293989589541792161163495094756155929005721072360822095359916183165019745840014406170120287343601284211655148930273434548531652908912876065948050540968176460750900345594705756272858253959176897182556779738245853338074318277794167270538814518095042482577571745254220908349350417462722226942262466691580096289674348723306115975854878625663479267511765764833863637138189352311636604105660303977584426080878890913043814582984261298888361527260598834529382313462967067236329130757965859199110967822902618815980150578590085993624999123453285208361355988244510632332389978252694402525801196018132813285682844335132050026757868370765370489481347668478934812065405510994873120609310732949426338707590464186967520178070464479149446803757892022003104707494700795530313014662706020600865778244820334915905348966798814991357932632784474096984305242499356788543726387706789504922163869207282708018064800808924646718866931844219861044229955077129150999723750542531260021145023293381373822702537631937545048192473292378128860254127594010681105777942785668157482086342076138455708258688134413778108504416624022470127613349533221148098694209526408926238733052310496899301682135756471139500951583794024721105423289876378044391875638259849298869632538888469453639110745515782009693805625413817715301965579555991154249919766578909408920548718945688461992315596125469667754162790543265452274471795977957349269767212585643787940562194912042722119916371511263466296767153135732883397164300741601442805073622356638226646858018775769655422728306732562038156769569165966392800514294388652544813848930357811998514630615921798541574057784616629559474582564143654967582052756180605027426147989596356771168301513113936317940396827179998335618142477263783774869725470822773595785245127163197006234681596069555165006970730404786841156299723948186732433427686160645699087319027616393967964637311842087386759336343556859690682797431895070730412922670538877341249707011334478227360116897132723009581960597084369702378959552626736674303768429270844612909376077758659040481393936359202716008490867968095737778289905872580425596204825915797774117127380286707146484840614343029325230849522352630013700202213518140016612358620972111498670823546981133545904347623121995706089467637779698851814744139729756658061849901215516214156895934626272088468334018625041057078077860593022836142433916324164990759998680081886327309205403755141740406011544032464786063748803677513844683946829540694262192750627623278771776721968580818784678801742705782909386499421060274210875404338873693763120855157990091392912174604597159859423557679641210217365439188706276719312526023938458101096015876167362731060199644420013635445070044965334959913155451956557428098770141826419903895934485717553970657859434521188465890279049777398709615789832837699964927641966960661723097718482292288710389254004487923558015688718497072137140855669020935423542305894318799445196560040213649748356913599168302311592621007142064277812984395891449363034391188889531607877286236343361640836752420261564577529537040185572741583421472244081398824779810610587296440954151874422109155737557836162559554692402086104829840305593296432635775968821179152043866965972584009629901160420144897402565027548379816545403960062677265380458638710511715318994972925396225044168427323857554456299258371265133042515811880126146393575553753291335354843607829328402443470513931659076823483337229053307034301638241042553781483569576301217038388166399623464980911073211288940573615499560127074258899363289531394962399865833237453595596244100503719349384385807295039191973100596615815497665624513727412377255483114609194299636646361202853254195685238821851162704166268841608625381078182870683228256913027496298915566954925578878994637523503533544107665503615264336525928584989694238600694519106470509494956190951385642380037103476361777962895308821253902824396450753756122196478225593154438595606621002924352811558018997767578763914217260733748496578132417566117477999230547135096966942767143339801020546671611882937544781193109316279339889346484682882002087288878803100244414037710893635363918799487742414661630388745790638543746180455876925516138763844198615128867329740978942519763755831350267072391648596125649265229733562507303571397715576195457455315111392391331807359276406620698126015562322893064773684473989581683980825183100193197550453313160918715242687622529738486108803091240857130250077482821228333535378858890711026590248559966388336362735714633570672151294504696202742967346179856795463969550414980022195846298508818029491128866030164761052053310398678251394375090830100365443224827277155490907496652343803503465320622417417610170998945870873930464264770121373659880069163639573532948007816821377799650249806301685552938429977315837739268356506359515953356892906894644442507501819521479989913507470129821167021178070830411524203344432870092188168914197781893834129150387350329703729330032553306443499953116011125961911679873441832535476815508377289028016390679649671586370047136308911877862258974488565582528540070708395257243728583871118623470126345844085708660327569786292736905545719511423445650623183116438799762777759159944478603930437697102085316812349857542280629546127410271197806252792448374076517831990537643471015440906508918757181682587106078430810296314549043166048181281225411743009181637332919273812880433992954697216949643387274234420155856771871066324778140267524482378746038522550961690376290400523701220957084574571291304941968323324851775657306766006914674502610564642345104394066242791556332197197104622810147347594477233842215743350353120248967959747883831920518148768488131654088813755083146981018218496317280779248345610205854005533448998380347381054573168034529040936278984992119222930638842979200131603578313282871473331732977961406272586414108965245842993608010191128630853833063257027723657023814079605758104574241389226239303246195079352491894480255038512598874626842102759076921212147852977833746307375358263561971483536407010194299156958844743803633709448590158898289537467755203733767977933585369195672571035075617985865800681428946818848616939707591255599920333745947555554676228322187963544748257527918342461416752719712575973663701457761842321386806011971277121782787813402171922469065093996160820929150314984565423883515518204111273871621699620967696167571702472039790413136066691624175938909256547248146563811817382523600268746292225482009460399841064281224043345023972110595549361906048370871593673252682248895213954177832196099193963256777059719890168330053664531340533401098439477914593345044145952642905135342678204259974699574687165692121037739043970685679217417107516727648583419239697105558121227542034647741110724578343771260769443500380948101043174043092239739496541009075915975683700952401152543953027385200230040418740357358857443023373108324462722114023289555473706678837614842510087078462932745549446169055454296723593645047490959912544806525718581113636108992752863447704327504529010835137338743488933640554500602167251534800691576775102367736616341227588558580497514344279773819873622465366069102136398333249806603359876740670813904221174401316783024831735946024681050055896965898196866139934458253789322782373162231511120509009249736372976200150485831612627610193073743433776262837040634663746301663424967392281039436968577288664400157687709522506185234494447798105618637769608476824101387736409878376013704398213280308190148048644149691188421496789538375858724320578002062704959238728612317146222819935126691072768296542646455150744201806236731805444239951003655187499782249516060585134780152436109824068846922308500715942965860031618332668711432539277445667349175906100988436268775517111971690247680381769605781664776953673363585417572499295906918609383933842475579540740036773006359258668311858949286964719207713638910307530864439035880548448910422879794520934363389851742356105014269494989867656265159508801948877805744585163141572236131721313257264735302180179806425634847444454749865937426078049273388175533675995253201584046833594804254180511338783165149318005553659342016629664648704413295151265089885916637784935552556620733151081287053039995896400509636477340009006554476906044923891454806399892990345515958383486974289680701654854910265288765015420141873415756186064899891162277726817010639293997279536805290852413799729052621888432538824050517752814300733968498778846309438371535022338223543207774058912301579758041919804029596317447865917520583848924372412077638541536338480504933730067888827768194886840139021588717843564076593754918408494666777925111029149814500656823607214484670155355126060601859051112644008828689772218275637338419548003565817825724138870401243877201103277268045039811449187074320445201874343429889799144265559900890201469247547985953572241068970176425645292455103842591304015036858184665045156105713534710098007876509979278998153298713653842012025127448017063752991656880931273922571603318452700007508980209892531122478281837756098394540539383956771048956985203257574037715710801360151836375986419852177365244091996860835600495334508141671186162459499922879484803979038727646514489561795059970313516921677132248047696514274575565881787675277624376406439391162404732039244713410118447053515682219426395950678998845961971919482311531988759541467774244502466853900700136132640122087887256413919518783265087385698446224889173073309523761557718499484846291177517112373126304729799058387053017414801185467058231913385391714876830354135325250551986787270402468307434424603448212495668423295795264492228079399483140748891262806493704893114273244448140789291375941369685624933054122917749206062558761519809108141651295549515970522998958192801290408336898117836681431403125907329763932340584447529828119903221401138313184369949502295071804230792618586015362644874818714644805247239679457075480302234882558034762512539899840797616502783927864075692186274083267543590957993149639381981059331066119906534398030519192754484883463650839998486349410328944396377301555751691654089105301855719719555524034553409810113281560736076649283968319342641867876047864000132937333327020147526212215790259682558385122282748817828535569893092701544767693605055389551092683721245984370262973561135622993194603943142809390160261752831006609152640332422314089652636476881814340136249016960763959185711010674071583665029158351613351346706641533548705792364546540271028453505466226810097779233261129990142823391076715404558703444030124896487871043370867237091225233949061941448549306280074198679080363632681767978079245267502686168993935242399238269310792360903116923980682601996152671184163269985975028822787209103162830753927258813630465998549621190234728864443915455063963709184273899358119635467382304305449810888225280754894516415282107706490208800850305846932149607438405590623698683180916445851113524928961508122713154973019154980639776269057790455339194049603540427812024101145504979008863881440302869211143141793232151954413864605399834250701075017177369559516352071537757985049131574381591597588028488879793755687339437411009247195473818851135937900476837679464688668731402458007725598396879020644060116227034681522951199316234187061529083547801045863145296895204969160190396568781977492235483368937716828979735154727386498936622294890244900186894196829735707153187172119338046776278484966923357646542928912833227615802333842949544234615883300673578919081793246134137849311270468922486203779521316546031119661310507185796524057912378747674181767181854916120681774153830860451618357309673709175798552350416744199777094332452607227310534181833917940896997538933741707584113036534011568866401728103232990647605245371026536427864187419394337516604211435473610167067567823669651057298530888262246587792546049908452985039177226892044547727053640153496667008615703512019267839512629946518651579593499909919813914879283212825959109421172707100093244731765121614040592381486662069791732894709200732184381658114217994048019899159832672463911049757757083326270361261052722883572071071038605462222754875858525279409569114325215685078907090781513246290272588210851365315593200635687371199187816590299050648340706356922530244504443159082592737056532570854069257658161164530831901306246561658884702273611300586968741186969048223874525766990131327725953574790770726995990572169102262842051039735705988249180167406063840043941292073317359904687532609785995939369317509737002462325543997998184303315554364376172129783561039642205868200998205228380762441943016502453304865721907025301248455766295756501887756938694006597479789060388452730193392804431282504928345658799295008430331660111968866640571769743727010859129931724620018203558613807318934968447760970297707742978474656825511167246337435567737545264078079802642263081603597451547473084512022802981079797985358889250823325539466213026047381753973519085707382792070303374121354150142660197489744764341414907290673308465175751101362867995882466695882253270405768127722048150806254248024823913895581560865420168795907165539230431855967850819513718083132589053799627156055525271687985356546299936459782526108614848843513245882737648517327949328141516914144052332047769682595234236508151720903844031373176550661376152680965958815570742286151305524827066460341836392678694410681189041475063859974803096526746155641820806796413624779425092345616097909099919176854151381393676091836972262543185997596497284605996390078490662492253884657646129523484028678208217587358513329318084793830391180448004052211482640611477433267042449188165587745728057738032038842794543363838503894311339994581040434530130688528660065879864642351885918771287537538257308847790392611995586942019586250758246395828649474559749718092384472315260568169346179056590411785680228519122988711193299699087362402987755644036200256342743363989447502356377345188721714265680048886866698662369547440233320231838788570723741816161260382962336570792700804743837306296608172420115410124397637252012667101118368941931692116729643200638214284685172480975055591495214060223561685197048412987752264590938003569507626504938691567457463341455273788752784032281367154090985518797730755739460684445115489058868777940899990913951225598126202786450362763459904960589841441774308121111528519440245808035806059482511704100134263854653245634009401945463184631196003566658148823785835738981208368096715267123633428948139897661368930331210407872079074795548037231072341020094673667873200752049451644341729186653808544561217610051359366919190642624733589122236655786658028710727807301976436925007066071499527720709291539000801712411065455327749110261362488986065343697563762763990731120417360132521212125169367200117818978853031439246414506933752253625618772838072308076364383489775842429825225585952131250285194981919921147353118401556784519604498438481319808068443307818726446819495966883674823318996363783370226474886143887571706701152108493427738032627517352773013759824060284819951318541720089000540183963658712176276234812925832485934145842845671935217652335618635688774352833748448309716111402049902538527429190791831772324089870504932737244979566747981172355242084457995015495755901327419808581730078176878786826057927554516201814508278615068438885566557259414887771663219732448511390507663280628890365490944036986311139011758386627265740841783866513474419425217332297600746390717881943161600953464114533096196948437195356745520602530631209024928677453570512402063766385750308662459068261714534434534942773345217096183180300162540232258678443341723457749984354846333614396102894581684478383198703129869219083558411742474053023316881691418437591971877549318700651490746440641732184083241842055484518108252639602027148151292482428265804078470998215129989643308918617555165558016185244951961761966352101469851965455026680208976429315804577371509514579366280274423488741830853473175012357740601253861899701265509990942414196571392057999879196996863082315047333558299749233818262725879580109806866060065503599476899692117146664212560211367029373212272222069910524052705495356168040827679196533877650443020975189058025721683249698709904095348410492126766777732168711260743180654269562455566285270940207612535925609827481923938090429857665788887819661228136480861252580034397000095399865589660962414026039082936443621548312280304476168608244334097388066516610223431944334638356124041261082818025918208278470724144597035100679596826146609200540293973385467293257728720995108104876335729261654330339246364677150039099577872605903819664951748162140203934516348105735743871385318904959973262703358143583898443012020465943013705375422710366709357709595713625222403134725861442695780766999549421756118841997090459246396684708614605403726799428727742436868712681797937741453713344087051695805748155031241305341132187578726466663717829275551221117691197431150512276776923217173058667084770331799530882039715653163796485586787666796981876011162975585558302642251032271321415501163044169932900307836336202555890100517601384295770393046896244779901910272901174302398318597187193831742860100665940059197717260472014331820670444857700593326979296030167169017584971581457405869524451948799701507507067328468665943070699803501587068153833711723323403408138931638079892378916634643629900073882441283668211426337693721014575499900314012460482941066818192778472239138340487760425573466095036853487958021513321630630655837336219368717495106162866968468386570806186925880670166808278046182395006321929805129011121678260107122164563321394901590820658306684494912303091548734891912605890948428335323979890620855594374712875892147568265350141373082243911116452961284181953335330608141215163767137732919324696758809012625485368142661666095869490078435518853709463283893970312244201054834284667180384713481765747830096746859884869869968955004550911931934888446181422962281332288853160544365367738915938282822760897386127176369661940645970489176066835341361109215200161511512305460400482567784080880714251848766674539362926872884007426126200212551809271980396258328855438263925663909351364826153382232778765453599053560895959323011073917179207082615675835556480398006380597690847380694700912992674415290050172416006459050925259172794353349689309839281904642961845588643049983518926411440550523416684905958120413728806603350432511703221627258488729409157272643382508651492519931693479390364293336021961376456358394909682380061197229358315052855394786491072705785416881878646233459322223576242459247441069354994441420418117073903586532057567384302380813250042013688758511445073369107470760927770226338704064132231890013309995655015931667104309004785340758456938488360351922064957587446980908230133533969012016062634232389233872165700371358349202331576057623806340636353386661171826102138567008354450337840618619324520412384833170405653798505547614824311358537676820573240241121710515162493829648924576046615832277174391352627870700996259984025975043731357040697120113938525581992858172390526584551836842581939101893623402025337096499282976319185177476667532252176630599640072178539406462637573693743132365499619455543112487033166601516837988131492354340382732325754438659509912092565887116664510961531743991820912975200654960539085987379107131303708238264589412265304844397425968031718562548516534750909748588316831419649204238151922849664589464725919384158150497919265588725329194812141364452708184402167114137900689708027244802874521592590496184639387732140411903362827213221173399931019950370910039626691509364491728094876111412546116785244838418918677688619023019755536307958684310210804121292105089372038905343283559085466807215571605550009249594044938517831890370204191382821932228120721801388378919831326408682502474630897149904545445938225768512603811025083211482961644194445178584384166945014674271530461049657915305795093996601831215919094872328471029999737914878976232379205651002104283994770466755320754855186976974179701457148862338668600738788626576159823034383024590239031213178174997217073327518509649844113676099005268632421910404145090427595329218825126492010329710615440412294927115136813131772862115728396037728611617003326435041095664645992636550588194621548950774968511265989784523195792410645805759509718544131136708331552783230506329441053001074908820978642244824734744545047275505803418128714089860401411665775938726613526226097856381517917873799773455551495561353368783920259768201664224753740891090217399189901118979117320269374249641080066586992403541094805986715966790616963656306774018562956480065388359267802532231751309216611761687769116610461490353632693131846458467559230019122341078320782492469842093027534357878401680787138457303411679866329673903384225399039224098941031649683518913710574098782524655745345835241887507276888336435802890391380409426609971888496476951006741125330411296257432306291450850460108065772451927872538512905378408878134064509049381243936881707711543353867354609181576725213041840690461316992529519448370599118443779057044326119781280896381262950086658832614237124253469365910437243820604348894041600981573048011407015961240328376662592395188569500798354357509132643667683221259668200738238586441160360834446582364792366773249182055937369295302121688622182933195772926515172070990648773634837146898182876153207187207542810048751994289206905840690149226496127679835105283189801065812418826892519901576382424612801380327555556604414787612494833723675605586087398200688968673729683117496831271369298236066553773358571068370242704458165351469879929987680531531736065406341286541051771469956829832204369666303018755378888347086455778812328216046956404144436085537915018062301819499904443389819879820802035995351274674011702754515415001561309574958851220178531199651743685200725867061335335286032060379379072733025073353944623999626613341393368068471360760236259187298043534765576615592947819674044295666291411494223015122788994441498832460607286284224351652584868427197484918329586206682192029662837556230612014103833460161416549868712501408284773942495294825565013126006798494867645482830490322478214865821721486578062929275148539311068570632318145603017835866540446594925691718305876969726941572735764209627782993397919521552226092695767809240507205460826292562644285029680736547425364683396823676703456533423820033805405812539743980510186083889458691487989247554649855172317750089601925531611612819506107162641281856653028089018471746250204482732694595996448072935748515283676012309925252290449696905236373440601305227598484377972103371636262004664208567866208012342304371227079584043793345010733852195842407666180071667053974242736752278340642524542818775275541353760750473335050832241995954176664088061917835474266301971429105707292733078938448732291666843518617305505871044555685312869009752151070877377115641461897453640463706469701723580460293786804100148856041324525744563802344446401006873936144777385600177195033405377536201345292271611405593624511153936844838981951323557795956054538437924192423646341715004648127947748330512777665216066397720683005475869621344442027094109147793230634396311266147343626568252780119679429094044729828710751911874533605907845452586864185822086896598196588350052479192222882421295017118292790670026378776855080342373886876049961685572033482883965513842596348377210114502836798150702268493602253632201693647540538520595672053311741356521927440158367286830592251541798890146999891201019328364265127980806031797717229976783302398504179697837415334616347340905316738281743808733504908064147772855007929760342636576144636406385758406734309607857171746866031738056293652643807860544858833210221546471832734911405498876558097166152743731178986280639267381887888149599174257397263641858165508271509594227933233803007081943701524225449893800245915027652901550754658679354079550785913613669644485031391882520458270615335365047216391334672117419449495761560641819318063556823403037924602963439102538293953693533538082783652445722403778815736956913397573163088882413960300718507051302085149020324492274299042956930873350616901751759271052994741205124930460722122639178982758950860923416029651215465632483621633548942002000506013575513739216625644542678199781443759914353332273514508076953987186065175318348017043291553173673505688753842851055408254316433205502849240992574764689873408502939318820566590791438419696832535129209547746974199283699871453530425733401232924411773638809951444322374367991781098110754681393998674317943532614211114134789856075071004458735998018662363955023526712827882447341730513463387278849047057265029980133928005568670891397335421106900230737210638422608336092837986751528578456459662586423110543276130603583559075102950571341341795507229221929089042004442125523554826896537000560010105754751027776389710420586524056580015145382539616359699148605597406775259449526725180418029095351125543404481022775811754659915988736656495938285007457706491935600824845513881551466138348882306958305851343023619418983232545334200549693292426503910222898245273701127131608754855017111302960223619955748280485553547420349514995056001578536852625254698634875816308942679913943568977324576236203851681756896650621358164894070435684381023687305530371926819745055733542450725326899179683955258233624185775708198533396353508517522639907776965539149566463762662979288509290879255252625118601714092131846127947245281065556289659243813862118420123859185823928540546006098947656517576982078186702862051200180219383881978237939814425953136463222699208923522789828182202530067762393641438914511474673393329681462558825820553275357691779465203836217564073523688982196206232608023814585573687705851165567720438446675506334930074831735978064427136056427971142975148295577442498041965295527029502226598450505360389775090459510090472844026112714601755104761718809055769598409560283749473751171114090126708852669459628671012743754803070240028463189318531637283116924888833624136766841112253788325738350970368904414346631956107843097009494870636834716316765465827715500144773670568597063215568943246704680399546692719877702970213396376392099506239680214006801779485618051988240104650323699042055204035620389885537015192058506953202531151964293685387861198838821151157941628473487735262900441863017411468879930629280330550832603957849476401650175622150565586594759878789055892485072681118570823802935370068338227349824618162585109464234588463387868113203043070134404085859773467249271284336767728667584726348014131626453194192736325738831665328503106795719916170921830667097967700229369046956152639113144395721139652411140358026517277853198320406330532619827768041319972365636925307879725575971121593578179692186017598736608949454261886313721793327045277653979043261184415191183765446530015060002922742003789473854425156173452756977385499662942939578915179612725986284712929880740142197743582504025928962173353906628118569041394346492855339487184807454900293730070218534315629860732717794802657488234723121308659966025705536959055772123992120696737670867290571212847879985900134810529105737462832230831468984568429748579752949338079395221000604086261323304046728949008694542294761645572978100904513654560769861383505485846608910255542667237478154985474866231622749186452282472147847247009542831882575646619302380404343256820758421216064717404176453940364563281740365144459057705068530139695971610068128703590441779899677871861075949496927500104649453811497791612305419305043453812485438327845489665154279974341093682301807087751149128878080540151868513161515816522524893877463662919470789232694098932801072279927232179339374259736480463587427113218781479117291505197422350930406668742358520813830825742280223629936268777952463386309235541582225642474040897365031019941351922713939094841996855713823215676508687526645717556544625370170948092173315886818633442963279745728152691711726120416355343062217077623641103777290766100161868325157790646243964288270058620319595077906502753943436978322098543984898916445919416994493642603821023646517546108973104906252719514781381482231753207117211394555181561258339611620344011174421845497966516413729293278101059000462042171215101275176529577804196744796086461412175102151382130698214694377380854146263125048947677480242394191388121734449685727686037785448787057203155044754224279003084458698487657255798849600818435550243713072792540930163938655147860833818818083844152453879711105021411135056279742043448653190736286411652588457720992053864575812913991971225953176512271153405521230326188163012007133634131824188824527500875528357476622655949804459660260829206308438941868411380329583970612693852404557039350637878705403476608537679870682222465931638719273953711211278425404892399269303826198699271031738524045714455430917000986381177786607310411583014174029268550376016294891371869495210392479621718271971868376160937117148287565981685536763217585364480590799435327734534715702886639474058649554308057488562564788744854898724353742190900195675559451537680762499285426342038875729424044197894881842723570244487855081911545391210776867488370042229286143730910641435403327589981534894532822793613376161326849340412652500790568827071557265612266544465490051786863415407330956974953173403193217088414931401099372359305376568054780021588815447936822994722644212635691792309830007225022691457529887858446057596841505638551492764839206861133462584512614522872493257900859890128012141047479838840367254589477209364689517636657265768704233027327208284218694157887402522715542220925758324105520935376396736512641283498068981733076497635754553986129970174170572524613019751409988310265239047629775801181555331106658333541520777896443630186320937497508311894041024000082915165202328258278543240352348417282350331765038861823065572636411793032178283504005329717395794548907121965606805626394361613251216603928876961294002482463446227431462974495444715533234566552726423106187394278699429955355727062180365554884025396057597981004219041100194380481098325164018022704366010851832465435595210407349654328478716697089045696855438210334049351190975278806701618365421955221189162252218963325216752059677358427174449966927751978779631827988653632018947657282023377483802737567628912773366034021390878008563429847160243622851454754296096286795290790923915340666358751687567640685148508670563170205521815322871449310445142041410126667590207831911276282745788160115256216891346125708736933161549506300742381463415357424946500493413976892538982924536593692857538405648253587598619023828922025460388905098449904144807693895053079045538384708111441330597794143288172309545790122105750931588083672192446975660861865499909313577803429203924183239684388843842297774812854910734025735976010586781904905683491797968750071129740924262670758595638243074629469485467766601793582102850044912020947660568953154772594942766563576491587148804683636687926205961134719982037381253978737406634746838285801076088371774176434305626180325135350479257175981703586878159941249242754755713376434759000001975246050678421180305318545856190905215095240470286983659356419719178613797279744516223890213055561574628347046136605879217529632495086578487394779764019179454630707770338789498563535054980756506240070876936165993316979230399219917508387166411755286104582446698555507773454334200312838823696840377288763846955538025513579376130157880995670075291679254615333585734789705766234810868842827956393881076561870141199156240973752058503228092712391492456414120109499067575337923547835858349663066523260337401284349981269862436544164545545517870662850468740424722070216465381828578254913385450709993367961666911580114816380318572898546466314836898029417694970614135875890025346216711022158134740952428132482631372374540835588296875441514123544318128773864464004484796900186772217407744758140074161178430093677621687339157453663821113193401740153742722882537878923586892194971890526263591696261406721075544657258050956783735664890192526035604687048755238093344082200717629820108557535551106219979932771499277565227452498257762552495278278039722947323530192006939021662508016860067267445152718530309774223636737046155752814694172097506544342776365653077054043238713875093256444346954899799428812881596665095959936866993165831863948392186392703767276678242354047193694677803941825013840839003928551604575812759753328381244973576367784696590961325000996383861631467915764576479065462363287768673396154967772975048599588406062044043186135448581250180061780523380669453280246129059274806382912038266171638482292429160256394396781623219050637594446769004823740874582721234907590756646847264482076047244864130818669061000506391437667403926967079447429135276666449947751098468227053256535351091458046834698520137738465513884779473121069944926922953921559240505210891515860441058479636330120717864223842341321397236305456712985692387645132301154691415833980677767187033167851225864120857933329865069967593369428323271857598708387624279671684328285606525572364270020914963528960540318847780909489129524569347978766506713097803931412979798189343669305524925836016668025693608177852810839470787455352974817049451891551171678420050148281899245257411349444547017599459436452784093655833549332578853223579563139996786666233603085080774437250579197054383155293872305808121784290676898717706696170910889751420113730305681384289990136106443623618372327112050071212950842351786117230650168586262430076306271644462332650283473317781637544759537605188160582532624855314623734792345798847942798281049803906019399214257533904075159605394648438509677470859611907146183471966662262769502676677551373606038894527869761207270250722841845122362712881653506491904514220128542913830900470333654144322994676644750049829763149344252962380770269958320847848051338046943535075161271300857505599883902121710137571208155293878527577954427285136374942878736875518678011673598292827745628164200497151927376716310327760585508619371098376993455506654609230691464828866489427878899606913488605257937427340707072908036416155950604322944605575605195791809797255753307025169287098644538804917746800385730739612889614070695368226021902436155913904185377630738178655075310596220076305094882077340479102876737567265592860025523535247080162269333681408060439713097686855552876774335830828016389791954348967685417478320767641413608113320325848259546249521025581506245442816026893008096187433412346489916246136763279368109383885727488178112003757701790133228145555550243371871290875400681385534628526591072553153924221006181187094168050377445770996666628216734665786319186508484334956809162314544706998079566381195109810611945450877015768233631589916954866616848481889627114055821120033759362851789962451326734754518358363107634065485938170496012817990602506491077570374675173810764484398885788641323519115135502563430402468162914705288402915357950389917989716652218913086106987735506754966432196400528636903458480916592959958826761227026490321409965527299849195641354927695138559265788143372009715097970961353209613983088551578701985210387043871997268413836317204622879782511062608648460636252929752456526307651694382282709260473135034134757548929368310839330219638483410638328534162375882445882252942003417070235392910686314367831611415086312960566373946299293056952077225566137700018892330821376788960796925601601049996598978864500382253039555950977929504945714160124705139761415415345938583433898022505330751403197700195835033108388310987496570460606212996281189821576949477713252974506158098183192966800893919557103005156324608210671648509037865207708916855914748107342928952337955998292957098455371923344065924601832041468741672180994181663016816999298966606683966171995542868085757441421929041628006461635874775054048078033016937974253014951466557437297990785501663826806111601709241710316545175643766414707092214081262904085297050799082077100102510125898302762845583373357465017642689379352767891498154659478312160173082999859458411259674049510839898391676979486425200416281975806416088320010248944846071187427454268429462134621984451186126188147918835140230203871272550134927123135200180195881475152798250313791782671237850382159664949604718722475642919498222232516004397163263945348015351631718260544505212752802987863534382494967614025429519771433628549034543690515050573455826397904621057598858044453626870691407600498850166051323452759234819342397340590495461596729156424409815897490018117746020585318483958868177919500864146790144096107273828423033683061869820362662299262396628457722979141837763383943740420442040345191921724481541955872939253942959291720310222450403994459397246233758136041684624724692892595727201376632933963385044353153438061740080763665390413468218360514356869096666945201385807423415633647827647626581532965815579671699989862060119767048252876854547443628337453833635618772708050904902761603416475729415967821949884741407289561629510618040827753269002499046838216931478558492474903675062594067276320997682691232154836002961519833980419879029636976080437401315215419083302008363052538082944402699716424806901533946310294732969802323173393651376167239646057208372281200756957480578536204935166093766612902756460272545916981005065660923770942220124159595645672929264609996753485966694972679351507004828553888545771977095225500715843368962407640314442746532913343698884231890685257586880192300757809432414345210512370333322532949752969614127003919708325684630868522820082139515157216087245779871403564499703423611398450156917562689491988396804343097678444911589183433648160780807303583302838115192486190828868463636921288614867043040647065015108574960350483456549677887255936977649137216083575185032434449521649756095364991079407840939228106288045585243232578748419562214315268124591072051256814490089255213643322059226944034864365215473180337616316477050367492514790447736178832265191482892215877829817511742809571577276695122938980880922473037212211489951280619596393739419326663198797820105284202030070753556645770294541410945731488718994748740141475736438154951534098101774499449000851471379177203213083408624464842323453650098601074810823248213078968225125680592732139995801574235427121895634715894262079640059626310680273446437961494577369249289762276640095522118770266022008257220637276407786828670027683839571123851183088545346264649076691022800017972379314154154007824780568219598701703539889607342354679941194794075708405445369587356425770655361625899062629177843016698492780887752355874729118055540692754763640502893892163237246569057948726648598593535311393562264081324410107841065963586756201271170513921530147398810589455017244974817480070919968905208292702670063398226420994295008695588636424006086126974287242896757556696789034784853906362807378350174566766233872983029296629119909374574279263594069944966234872065379418860376140921215252942322839812257722980882334667068814017996306903908458605944260542345540860169703543726541935441600532453824546708353426854916641216206082809194035974098334537578419220746513596505594308670145862622762661415101006762768867501614838598141970656453721400629453191172974929571881304656013640804049179923244955639176167306339089063977774879198794368872855915777738749017263319999262465480573238429203425912582706718665816752058694592717063878947955397081811583502156192296903380583162009146629269242419463847959949593015828643070318376154973721004043178789466502043892235524151364703233239718252437057013395419259164615696004083338826487129836779650938450945310904069954921910324350672432200981313174125676065031680986180202925823783203177138040127770776822289792389524426952571190850172934344949465398564847051374665394235359617028125972119427027424088921489878727414261811362464641886454709991818042256114329920312392480048074775485814774606716190185914352327871045699825840400006690868179723162528614891291085379024667340907741971064384106049809658136812751449319878225927936552716194180106974532828410841986554178060289330143293880470112706641554205366792356987843239671102131345830502464827917086612225299573222451480736155501112909503956327283936730480911901915965122724445762329809412391243151848538759143733910683779168585238105997818814943858207002289515475838007326074485768524148057724657186091623566549296181410000987371815000886919670635280517575227714066440773420710643549763146654457668044020827635628636392699358593722440773997799478361351233328762281493603760897994416016621122088646266486825379698563503607037394567193293145759880618865742276093464427976779080524186927571625396322764537570913635048859434274859674828343751821553915558351620793975738523354607861559463821436252088988321285850577423240949096215758548191110725822047394906480276241472967784431159590614858547472621109196335347482675061421856430957765131047144831439491603211913924519019451666539296441549539537723406341920137292381220102256640038197988456825557034528113447735505774820405842553936503099193857251120316983615319880919983173612663900334202387682856906314672906763607213837434833457415921825461788556408484657705171200215719261505796541338257977260789243732248075036232767500820926366397773336039862259822846190586169074229147578872223324382597750289592298171121915215439575586633116339516100011908413441410977164165207441727972861019508870463182019439872021694694638717249259121476857482472299427395820337153865442280236011594313858779118256715243381496045740007495616902276838065105888913818156644039686377180346816242434171727118894052526760312744915124330396744097178894645100163489996857517457354426763427491155492063441577006325818021546005607871177037734344458711420139017795507270157500891607900890550775357553436477699762854945085453861225100729673998854067828216378573228949497413275513597136046360070054663637416494897208195604728373233792245424336452148964687100896314241741244742231543563424634019477565853938351891299044591554608435832121146148730338640769367929651086177940296314547024594124341346663777144047196697408889064088913390905291181538195336298028008708010760536257741741773954421099453148098885376726987410826203919642213531704342651147424860239239655357949716767500248735632900337724445871098913606654679324072433883373680815721322161107775835412184598752094150574227620667620068770552631793940183285288732266313153581775358169541832241425997517934692977149921163963626493517128397545641436657536922635044987940864489988019532908573020452972625782057726416654485540120019511582078958468225507189576264472797844561378093494716779576806823479373440164821030529910076824053596316840706359976222464225848352625701604067430133333995552647810761785947200945165387854827550641631732632560747411234885326670857224909529857046155286466949556071731788728646041688449027527320939538164418671198345845883419966585988955160870422895201407365746934512412020276400946079636441281255705607102235986552164747548595727529320282564047125801302443728039002403294164285602024949588541499186989593309344502242898171404577194153563320284409585450767805021198646002013835915245823232339373761344029450523477121609710332743694422779265385018067238767357961097217636113305742847257514376742576755088754860967838801957339102843531534646821724870564493992782419187762687721709858495457559592142876802035011518188420315236918956413847648318813704417303923088144255034166665777277425252293248164994478464985275892427982580886713463331654765837161017751981583403564315487400778097465367349987044448224288470267376996147776472116570551951725148511341668960109397987103174252115121002931646664912298678378579483145873200551058286850957843820249946399778324909729171909902741583606491756477958640774701748300001366946650601903626435202686689921651435335714634320880491426349037475833274534177313315072866480111689020317663774287902808440201763533525820436397392989292877493440857536004900031520601456979732069210214568753795012138267199584736894608177006688589139932255940870623632464854205841370938057723152685223839300062807567531254821781330844830998793414509901931665780632543254201902511797619380184430141077438508983471699674881506142567745695040778081861008978811510501256949694109014329552506000091109044319730054777350864415206602199525155433530249341401524918691613263604475053295235489060153360541150541516637629252018926983357099751079167842694678756511554476481435532911067408795147829686012321629648842817062715998460355544023459117727319873265201786130107317956954250730252659289993982927358181769877587031045650404172548265582360928503250600749083411075705651277775302018966065645373476146162829051793322204807867392653383610046098649695882423368596073448834598994104335353211128682360426253856469577138946046596709352015141096327163645719148952991778181099873612513524297348243958784511190587410163541580572556006197021459320795610852091025858686585436580048106209476918738978285910808378250693765689035741249782517636431927563588235778627635711926125038990702600003185528936500117446618339582678876024168575919168319173908521789147812708921221509324758290207226812027015212120903342330510773019176040815404544748542592976435903036612404795052141715324947710446356361122266950013018741688515335222327264119846440075625583217854555586447019956829436650694871279030049853245167256775066849378764895637118315923905071525197343627754737969176582436349832746769735485180781196265095726092915514372686766638785781004104298820141172149545054894890530969306099042531875491445300924153205232006502871333959824206204778195589236592369386534504882457254483919829281411347200032951288393567633796302310957078486720109061281764826559667002067720204669489861424149757025137785550310173084470535065980409281193061945865596429293698061396244096930642123728886957717333885989707048528363556982756536468367179840951564666156144341810374978178134963946593285946537106766943703321392906918559579412771094721111486243449606883776995689087614650236640925796625091099026920609195617687909500841399091961352624399473052711763101773777278575709089219916311114214818731139222811873844243664437802525127082970148674419416237553235839911909710109029487845951815068203761735739130763065355237244334473272302152690597060243447809690135725738038694881940471654793170640949281400961283654958491690024769106085869654728413598571434148326638073604998997608790881503547777796514744069533387046189059633250787061806213497467503497209885020696682109502368627583305767195320020989521757210895932829326216163822279994764011095517544448242167764161003435177737485585480298904262507072109472052846533492118222487962669316599921416547430927050205402187654499525250949555383514945641478153131079349483070273795407407904345043144357108502445763427538594810273072594429801074222908082005467348947405278063917025509325445451484224440650531230698338499916452875008603104050274421967748188615616196111457615313158609240171994996455428879077641347571224739912742968364385144446624541112677835003248378252705516460350087069707048614700227335232660235352126808559004840495516441953495602338025056129994241404566330680613515892979255797368340335209484381028283882182826079696247642171578613549383141976600438114096874776784726547974925296929602218642823449050269190772633439259626984566290856853742422329944019081824842725836434904863047318446964228950140576861773657385109261490346538928957088644293281205526736765506561674015389217624192602290633331693946672555503271825774756635376675285807961711681560187511994189959765706334416292703178526459247179009873826871627208370990661185598433627666270926030675144091800828045687237974354388193136092254375005691358705760471026676427781271343718036091982820443653291344531904104761166408428705424020706709052173983386461484684570254214965939035334492560142782579325553165299741576203161321770688266343346848661854860036943019763879710890516290437264507399628366691409760692132451642389438426927874393692982817152697568914844381347878831181151020955227912915743375720811317424194078386495129280073514406207390804391423979995606725481928326732164243960556229721425469956804600394255504507690875415606094102730704741517588462274985416941194954050813856897400167807074488026460917389856920076382357519957726623787252106700773538169995970403809699494776629105358795274500424845677006409850890924254449150773390874446098690597300583003658478177534710544796633629006230494781935870719334995961889796045236918401990326005633712664294021876884505675312273828439366160849264197326439692878491314152017031311792050591042213453668270621657261113461833921237090778332187127153389876645464628360547384957865466725066478427735384029173188233959470066664373328730970009827376046198938484993103850482020120314995617765784607855985638421493895838146955549254495269894836338134875584895455151219821244938079254570697276218326845714777132727839138731237613829698749878862079454873384544501455417829968049116334062624181094046678023150498122561361701118420700136333238658847126369249329968108857263606633685559680311532242193669492427826610376004444630365417328519142833674400424710443110962861199793135144602893754083605403135753340045019604581818760207164279749845845962461233713789257778733844984760912512917809172475398900428456719460392319947609110951911345221603381204305040624168160868303275448110430983172199012363384360684686044817735840698455275654722583273464061997663272695594813614808140323053356189996281093918394925674478136649519559445296142214893844526937622530010207792045309458005762092113176855636659365132452733353984945616829893686329117698694321509997587157581204557919739005395635331604676167675684951006504328159769449294162910084515930666931758133127017119436082368674819988357656431109223415799792372547824894389111916970966158619184480941043506285471392426434255877572693277316324943821852415659940741455643037644539614598827714922234380343577373100370512131112927945376908540887369648125693502844656129161354512157132178806632494463003276208045325535628808425413860709734803661110124979022398319059386555544520201152881992360616261115799762577553222474802674298923936008776681219808905320960543981938465377294416723274494320394151399635244531345538691851917775606353300512371884552265059361039576862466656832726695949525364673241569755366011518834800096652087232700466004797387689843642287049499364698670718600792982080257966395785152433864802075332014614469508211845717123383276287288459437291458036246544537821166075223797060090029744036065445877007869241822722652402663053896343294543326668425178793980923868937389381231272684951684933284188298942723968571254968049983862933902840657538029263152309398751741501139875381091864597710627176121894360316432299203369718937905049763507764473272429729251959735608378229691439216610208363576859672711038713989949848752581418617328732654050536382613247507386553197689836937762410171893880345142101009824500777638445789209449945512743313755651932493938774598334036768318307036678993337417827769106585182959054419316232488938563814585077158966744691786865750542639674613488567393356079352527011538932361120540702927102417724852059805459386477501455816867804105677930335159147438437014036033626739571532787895277775510209871731291233547294573492651365556668287151309655526119843694590449675736310290354286644808586689957671978784870573967954327027681332886769929920013470980097784675756550957804155433774585524946704879523276211608163131994316901174194571084107628881436092605817412506230070495525640854140983921788481635937067242904056922142806647503097362383658638193088190360296680869968119448899870733430333662646610340045264138529193585183931405501172263058099068056916560154952708697013131124965004200896465056576917590180054776814294416951014700961893568810616768308985985390670706006935850699580982973296190972969332379628487315584297451598886559452426006251113712982938069909492785052991210709808590227871815035952266966517511690130546622489721243632598340104165862030245442585036885984066230055249819718373695052319779666498289245629881946740112896536985012344751253359587621259232602602894313598200281450403121676433135482484983451840973131872383584727056923850436996792683595018186451357805270357604244398615269857518428262720363909976421676984219713178061950453675944482116320030450664393625143941206966972539117249772705052611063921660990271649539548636799925151439288010810459907650288592600440673003916538127519566281040127685638607676205968143954758663073941503823876357783151243546433260816779826851686812170433127785985119925595095517050691603758979843638838822062035334759331241521280429062020707618892154108632058646051152406409562575171576796920340657417229846504129872659537568180351487314901157553506584257149856691696176698940685410844947119352121618079740833760943135831420245170319237089477514544519318855162364241842508016729600647020732868981535883029955390912429869099303900697034406632445286187598869361017371309300383592679957385429720363320866751575791000926627815273937322852223298812384384351074046239062369828128598435308131065759216536252637945025783752707849473557964974439699568150883400365153629878575244709135041572890216177144226359510874140063961495439974902937060151813629643129566944546921147123540818233974413500518864729957293866043308424291064583626966284164580104375817737560437490449120106777281789041037200588740827115016955771229099253308135921417003704832175293488072766544580272777697282582634009069234512363103649606834290729218931796558799714576234570741272017646149704275123215774942622694699648830980282973642899050101229807471766514539390006163804465693139260653573654438197259813019556016085032476407236188464882711758729888246591459490676431069300288450548901191195351781594982991371727023650024041678209832023726916482469766650743921348093739589253732218707064198146750279094885432382885330278036340729848113007110162182294239293629692324935787174512563654510178099398598341914817829535812584053873694018641545786208618597672194933074477658194382730842001089009500927976390192385414389448531170532158180642915380625810204516191113712592442466661395010696355317203486865246311260756576090321017294117196754028712654039274431092342469214437701178392265935130047254285450184983174380326533013686271581713270550022263884038647706031116314110084149039476571039765732052558778203555094621479265249376002498307767119010229911917313659684705080907775396516340209720957958328961052964600997523284123730116618087541734828179407321336763654053020752626172584856288370541036219382398785605697926527057803475055082488771062386713508891883824904732447782875297658180314523540295723129699465321902095329296439796199262795956743695849714768561102941426981762744947362142205051439869510972458835342934527470499800676364351789827706952962527241200643176272077274782697327931723849410808925546999381300844934459762003052408039635787889884431560996779987699408264814772843158201254807304672626913569358175874900589267928045706954584232176644887290077701502515159697831688706185950915203033123511998817127251367019939374544430810899573422643321642904983190970301991583245863727720314593978498867816961260647108150592799957678797736110660816555490670927174360922777676912645844905474616449062053468046106135239286184461622941246854350460622422530494092363814778595621711708918954634857633039084308893538463966466866710056848166444027828963909098163359453715244278913411169608967949639203859545525947236007971636284754903941669954118815059328942161842474831236323118865363413843693199680459280369499058899414517266508659150854975608444326394417918925310391550770098360379122641381714790387204098595436308630873484939072335942130054380584194760792699746204333668603565189505163290581060565105504957954576823877511030179340876837401064741533183589840315568851608043298780836858814899249914321961808238677623736037619988965089916253505567188561879804171815644761266066741225126769218756792222691505221690197962842984453589606780727335780881584482830164360648769478958038191830113981413308278444521683443563448829423219290138085955870135475767125446756586245048185490905237346386748777513270969297404135033752496144479141675567616199090517821025368763582134175427918271594807476734686741392383903067815112629618506095790513946198207661693382614567869340994694682763240870914196407097904168842636670562452079302311135210947676595852213652034168060287741473011133302961167632962833679210476317802940497965244411227186750067004452799441576429669269350084066526761386449681074994649363881648079507867535748099887713740658648881717911040645825989775728946689625793467326087990900163301600549612789632328466807042770648709482310131002392633574293712930579353166991800094591388803874896347284175642250898764840103972033040755913684840231837879681156679168245927186086068928326451908823523034467051050470900010936029658712149931245373264125635559945644745855498743427880398708555202717697304912408559699045901350799663206708289580970086533892585957259635517048976194841899003400375412814624607646692205582032532653189864302945263397992617293623594254834349924382962424708669045147959846190427301671743476830699128633653739790817745350777800879871697956636077716735103008916582509042596477140755196382335697733517714052147946030419449761276485041633375924260282551681629937602512628528807011217498862858113256569480917209233033227240352469681460080475540760897791154760569026601645170772965577605473718112009054106382932149548039034277046569877707993029511744998821890305112408169606270614929750350211079186986077320379868913211982007341927465485895054630282148231104666082958628027900408170616686611582376746937517983773816714341762301162484660459382072599598271151953296360316463915211152620947300299102158268681081360512941656476299883760917976672589107532308515673439145798802745378125784153678266539043995562967309189953248798799365781941512054390735852344993691633087615843156484959336071972807487399665526454889278873252271957472306618172616703814145712569198043488366912274365382576814567929050457761510614943319699662868812624847584542165935567392504417505359591606544077367322631648611040977621228886398290877419044146496724102901103860624385237988815248815376533894630437304533732198432419471608382837976894937766520225558009250079096347360939141256877979324028404521859173134507478921168770641309333890308312407630974889052046621380089217956659821493271023121814675632901658399147793965676192959824564800312430466867800617094366681966195620065528026038020562375479869841832366451125511402885490206399674624099608043679318060987108832540274073935181194971768713155570843364434461172604074686490256495930374509407439441697969425348380513363859317601740996892172507753811940415955437708175659372376136478986937898953426140554464062883271922940067513710246106282476182883903505944904575123576431017669863201434122408524959557200791589219081745753996774067667238465657586431018178829285192683595239740099724934880368687867306377757755251177782208520977158858125075614479657960505810248838432198571198248178272829955781308475684831044831107989774711924599872132028269417931388435844874127428631204968557078206813195957511062863522953559733349019698310383905484621295938702585277134758010847286627667802464826667463639302046575501932515836098167091037308460308916231962652090361150984884137367196405495635698759018143309101718893346639641300242521341484419655788440832228042596887322562664367382986327640729358245096967687237613296720759351472538884378603277959469950640051488945333629834925832406988539747293490824668603526053715360820418910803495485715870083271245033343073090264665473513277011744521502852301481525585689627297617738927012307546003144663138415922831949889413176038156164805455720946337675551193365937236069788213216588164586064118737960360944804363162830040925454716346012572216110178413332289001885583962865016406009776095192325587678401322511125983439962733990370419092450872836222161365110252931023049919649053531359601688017624350679651851348495727765967577886372517122284377720564657118497225120512033999791363008776011965902959326489810677608850490969671023094886368638242004339103160999937352250755421824494985873274256933863289982936399813462536005816192203957679137329022061420223163370601161527855263648571997617673133828852364606912980061491323940330610092225756404080956301341902710003260963052414923358952509208527094293825792446933895563156256545982848336851919080577041174027113132067767040023308560899909962695435037555847025824767012468405105956435978239691218996111133909576187144128117570930504502452151300730030939600831708081727531047735892328469619333973444910434827130478495769161765295076470284952436015021731268311451559121097324575640727444970178006326938187846700083611067259998009650430558384514122236834637433572843738488540125299320624654004494053580967700198836888058012239190870457047426524816279368026259766292872425275999245825335717188586113371642020911768341571345053332237901463376563341825962851018192895355301331749201858265515790736581441700755042677806573384093470992575854072106504488193739163904168702163257043246072489008762349345944937807067666298204554323849989386729274111878340468332673833418730141538965097011312429153018941210014260495263788334022659378723684400208951299719105949790866989193912440303384763409526760974463199175136412676376191677010695763265238207306387899460066445219748736296643391626672978527089013066471519841655077871991886915977114547403715164395239769516242840235832785814625639482935770051863064917030200441459894381773941795807410575457107526602189691924681658283142558862711348430187189702545943388496319040970592219723700729427178460214468530818436089717909115750610346796722458872451017485187747128932725441629471192996617553041319825304319897805814998770232193871346054710959166645848444138043368909149646358066709044067570506710364086996589099346237049321088165233055863624514674967108210753403115195062221260330054405842098427231941256681816933078326573227678887207447702624274248535714102045275611071268280108402411015213623057603609280124908836722816755403612207151022613693951012706641136027076129288109027700206436246295365844130173130838275315182006803586158234303656368469728826248370558089536881905721801082358408349197330116821494530938492381733360254332886383523041944305107560516166284454475979186289339224478328041121541767732592058758534071684644477761238983487634349247960604511025016312624134510742055604257216471076823250555454161621973042871453985320817529768420044306647511683165873398947345561699861939346055828359040228044671056559003173972602751903290001173211403742292896609341364117770913079827453578103217446587238078009754048867197323449513326684001387920095666579171221587342252387375199424454795666289984995659671765712836246547986250861072299663836368900350954333571579862340502592475394210475336465770241730015133959209420248604435555852151627933711804357952780586684881705092897677967125554799878601061261145643482064007381063128429389924430725379584061752369142147192449647233022551560326700307057781062717956929989615838401128973757037272494375363946485571345556297404182963461300067863121469951925994241212906356555052583471773329224060216937319133736199958240085229569023871244513457929539537732609674895685193751648717102862124841238346059667172081243379808231394100085530675065500288649998429799781929496893152152250265021039571387742001147859402112418155785089745571369355997400342764595707952180221669504457482165362165648703304671426206058088253691971934454282313187177551302826392440694510630910822256886238395154211031721845734176750556301281715003002407849761514428411457702277748593590603286210001549503372356793961263457669705231450405455084077644779800046599701856494071736041980803221988073836962724184560478074507974199174587843747654237481195769847249495153339447262110113335376103298480704372060260255448913098297046324266993974733144214711010481780100297190413547622384339680035271228426376632354634995356694568289022692814774608579694256191969529039182627566535323119265727054842391787230686648520333204763428053030624335901168663889905688287077389548255851299248058460940720170365898955209593263675127523768505521837677886081713095521926850674876760071098693839113588972230879714584572596874044250923368710675160768202623765336560375932902467565683692044216658393777745165000344962197412080114300149464161909366405492510339020056400232338533946314794598964693937837498589545235307829563063479716136593944275203620841993752295037817456735164546648501462934844787285006922606193252478945535337374231925984550873629968323384271451753969500952801780733623294805618290982206522671721576083647198681301621341731607092083289012419767076080057103362651452738570572284353169192081593976497861934603208993914948439078654903811044728154833825785226518337556725921513136467097874926096999083711233242651427211789632373772148741406469460479985950513030879892924131125117207096308160101431251891036951593907844554626354915551422586035245498583005400352049826107166310953074892468072152437251029305100966622533223486430237121089525965090471753698198735143116282382803156917213972274236540231803366270198644888237234940400556240446782530663362509250340401909515269663282122970141771902320137127856128668750013602120688408044622317279244190761268047241720721084539448455535670203199386367113276138648301259805859071816492874305807360409512005132064530725769227856019203952665960084684870257249788019103659655399031202627623488354363286781529276168295260420105339139236754171209197803154631614327481553004312506901247057074878966189483517417244689713287073332930444493017175466039636442602226185633378569807724213469757711371569896274897437275587041300754414423107872628855353382675803567859859137315519811100772546965826751567574171134950946462892336796354563879250889186441215166757660534292621019696453593141453489477761069729512531349742266617411514210022305059251151354830237972276527370947230639220424857842715774269022193645368889759627348771742598275049907589933720041290644735767625417390460581304597433957641194412400825437275544953554337321406673454998917207471285256435267467781415979312403352463732547049113785899955191435739980350785225350723893735467855330535517235535158398602740881229135372844187312944420886056210273791423113612225927322124301502742974955362002499530272975541050691760753997072353925398577790148080600721511205024859733594344301091117743299204700410227869956987948545094374112324709895952953855901657190130759320327196328697931001107889469402433044032691418488878001950197877752795958137937452959808197252740815566356834752921954157686996542169054983332908987341598307480528188027293659939504031614188839811269708716795995133438833705437016045376076066142041269150065020199135384714011212099127235281735275680425024779259127757763884779915168991635341199643048593486243672192378191439425655329546388115400114375232696496920460285185376046819791462076018013782978006387270322372461672551984698653499066114273201034107633337362333331350066011167659742731305564541514902303260993009790959466440891938368517636546180965435949025655139807572399720193374437478321174789542950830796961756016201915242597518212970305683189072870729032403512581188608569633329610329833806293000659330985670533001227611398987091667012612591901517763092310306623588148977596357345385527067175759249965779761881746051359197333726534180848079153498288120475092178410803218692616785330566616997453536249271217589709150568816013586223387350553108940127295242269003427062044828087581169900006973129791856420663271506444090147012987221817240996304990760335033871887984747025092576165810512376414757382553419946336926984451928455146964105012390190064436813349005533613664727927939692399855965817528873152844095481138383393343198101639835851237773943605905106592887105766677929546077591434828807877239051617435149793150057464958517463612949162561413967595503927449463013583926786449659453844173614177934902233899277034682948726339442162552517128555154374807892036553210889538909769556877727123685003723535132638832533009693704716806116817554783019118161480514815782136699044244712069263737638379397599975714847480078655958069542599659365451891518416773719090352982761221554313747059696629649046670027086292643488314457439370894028517710959383276361704898572778987372202511805657394861418001726464631347626625977977676371491936653557673182977682206110718928266512696661853289987654994002234127631042356107777999204533175273182641342956914236447751714565103293843142935942671267600242868634162764546692432281004731783633745980610456877036415365989182265899187071569985010688955546224065850963075524373584000557872066109410396593409100238784103455204723945186530700939893700364770309709652038080219291225286189151610479177044523788800377689744747703203758874733752348133465690607773462927957464482489163624461771189673811265320845815844248699954188558529792216108144695295473487298509007629081087010565617121782611955483221842633999931453669155122662515823130576878909984977976088860267993559672933057968820063595234787166721108140555994114606262510159828512229439670944730367751635508125346288501907824296158161165643154125640433620141778236691373914967761859311279074890920920282290804360228730736527933450586062253817376628257912265034288088784321366429298358989292719940482391233438007957881141974817006346636363087960075768977555521671388921088825326880953879560003109718449277645278243171230488701722702982252443506841624170305737877287404584645213976731049329187801448962174015393729063225887551785931324528720078943480664220068245244990733440610145171674672077457929542199160180003820689168845506821611029339258894619235718283366049118738579852655237967111407548215852554422242422687313961479121953154273510182313177132498934149977792544307802281884847704743553615738853741000092026689653509669231350537084143773352929835750610726831783897360758566338995950419336694133835636635770729661057512176855853884202741048233451890471147361123527513661880195488487502848414317787806980939620837073927548322843070898587959684711944188238114194171195575219781774786004807666772158369068823885794618636033927200529395145622123631685661666586623758108651374753817134302041880950799198743683454887066324250006725437662905048700611311357344039701685927263492504036444860831800537025243919677434345885815577547826965306959391307512043784407816523776713936908224331263704871910350535077081109842108224699794699221426480717472105369559056868711602367766292189236111107780965242165676872293600055352398358228135492111213569733421512414888461125338930136892015032167836678881265767417547129837571557079710741972680669708933436652697428797587727417977610631498681715020381831964646998098094822293013223255782420580784737593618492575577762775236931523631236478792268584520691885719161939512648131621729244144067249806808891950013961007010556157278119951116910386426156656187247153806179156758334829409534610141156585424860648299492142020155622603196149955280189940776799722500953578349395275394292367724448692431703736775353058824772793472061760741369974616047370597512440020244341364325821219902265553571421258731445760504865070985317755749283609092613705001885289597306014352467675233558071380128709028054915162075014393376727314508161171038951922871481846393805447958541768427798363414404746230968661260588594222741791701103431949139470430928192447403161233376144712736557304529864711499570038228920507927824445647122882978270619400140080474495079048588384129489527844391344449477831037118905795163515328221617904773143610177207089048701882894993910884548038506090763444293252299085624580240084605896202484838722606050079476819352445059829579557995041407997149031383710844177460472020579662728069866604662332176449035983691090109047506382889479723890696722425448571907620228669404929185349443130648276210039396713657654667635577450291783307649757216363107296569959363039705470798486833602974043670662650273113961932665870257715720195468640088959691730605374260192834774188895532664088420050714514203382183922244595953787976193834485698335360292086416022749825089032474189643436166318914350960299694478750311911370245017784167431798493103058274804767302134338321932058450086768165127830212729706613045362629163484874660178397417798545658572316348959337639597456947833089317637226045889585755402184966320797729487042480319890543575307906802718365381875018205270903355633660148851540517897892088610521058957290968121830321735550462741631001310012876512452316266098283925972205609609047140667091824962459359977406280310444303126391997553492019057271822735539631078610416678473523493477303517155547356969816094011316503189130355558426001324715939382590675859555073684443295635615632144631078704724432274598632276554907143654660661071137239995475305689901359699261518521251177004926550723407098782019001199459588491534430777931671609276360684925631675576243056108208038380100539788739558408990484411626809264918049295677530357215097324778242360295221197485221303096330753439849546068261049237680492574937272423235751533858266399345043433005324693087645708905531574334915194393712034637330858016969149251158785816652943815315641718861090650667317040543172483727113322936100634312101220907815573850188183571190533561388170584301331637909177036289479153575746254256955706041479753591187330336029342136871168804817048490269246170294829065772501389733859190345816762259769256448508186873794389081668928648578859615493923207124216259836699013827375282258332337538084576148810163178775238849184498333660215440495394221399196953335885099085122883627267341195057395106745798524874050600480727971253624916983944869481761366934259411803781597708356987423852082841411108696801448454960130473621660204371014646655118328305704372857960606686682943417532367975054863550210840249496678468215731376037841998453728524606073578360451109983468219138165045528262596966733464068760075986928971881793344758778589168350701023382785419611067845391437170607574640547551476773060110101200146176073651714026916956044124450950502945173181680500625831059662116110934809043270189905531434277892304970798256826025343407115509838595372303895564971191187290795944005641912826256826677085305141822164160308341550120536490794118928638573108301911371703843577692808910233629084769512319504956510502151790087243261407329412285250747435183698291448537192534539130058168619968966942482944995772689661235526923036217013506235261008444281470487614709537949558847039764830869113078494739579964687955440109616781074323555166880005434268222690541618281098537129220703079807122812139029427053244884846186902006649041405080445521033549990938305710483194796959955986837319693752271983397993997919090518150421840289699824277234549693124352133197157581164191325122704942498367642537088582858253028702038253572176038739176501879720170027704407928726617145886991793407085553842301876854934499625123536282789075407458244738115810698042008000281188999393224429375731137076384316598402746986347760082297205104116225495179636967005025203257443236155641223948934999199230981994591801231274330767552184952519601991043529407315551976321697727267302770867045967047519706043669579153369021203788720630909191393118551011683204177236848250337495026550690727526387996518043662187406924858804647983206084658424811704838829301717501818722030323581888343803941054756893524627018351967591390319016983040138075948444419967338917425167231945564132484992020653968813503178356678678374301221913052466954808991995506245373955246823648023504543441544340507052541239334705607121887511047820518468852180174295254715795685016454123917315543013515092432718708226810342402671207483746153915289086722147735275290722808705431240514299900701625624415167452239005097433660281391869574608571469290813088582155027022811880465342799097909454408388649795312511929868972664247930661845694456798484171914630135859015153184253259383819139611749226456346586336213115315509726627860544389949946673523473726841192484483996724111103265935717511856877320499389423176758105892096788997703429158511253234239956198696744254952162384391065184000579637486013841186340791270014061589396161447468184349491223023019465315311296833589165508442265462839885963031457841779713063720243392623979077344346982247893323817630655137009061593954204442538932537875978153357738972379619139677670044819853171813518346712358654977071368240472347405675935321492536259402905088487144025180320036205181296566254982536577624018137140585379728482660737931609410394376485980719384354323137434381331451660940196400166681538734570207038955220725904462260864706658800260591724314350705956522387784047320550184490775752970955020335619977168058483079588207050880803489038096187479849222054638845753640749099884078599774768271140405226413061085655424926241155524886064348873027080434411022799166077489059510660094296018287140146650353682405066925845613033421335471738087015568510652893294121014262652216153710752006402361930830828891731480973724375310847619788485928701492688701409671621261986704675458525640103905038425126551767359901923910564233500975247715396511695959948431973108900331725211418016900404242094346754045906702159439317929222994245163515505581396345123503530097997221467802447694310604067874540739906763196099125441305889152813644474487895166725095063567105521111319926142489481352484166580004755048432815497669289013969799506897487124973581577543708923030058941243715438037256986814868050159354782876231536929034963038576420725732918495393697373791017499248473648678202148001916989607677249440548899555769487829543872445834560991884033814604790344228811998930760818074556534151765380377548873525355425011688677897198637890682442557896257323976999289175968963730578875878064645013982472599037416111031262599589703116544113487191509389869329439601116532523286401386210280077135941652128525866286821137353004240035413294517350922492645582074687451568369296178396394670878632206783364518484715228766473660749891118175498905643273152550735042589167307968490165524486947588688732645076539504569858404766966363593192130226082232472799293787556732572202740791664912450918710872260967607706092143435352301890273056120774419187349247914984750426699202224465971279232424091645616255473244211900292268051937629444475686862226579655080972981979037927501973983934194003235399726112600918483859499416760490161708848655947183574179791557526484307879634503110989081415460506832692034589724683579064354537116158539200672130153021004012880607607404388405194934527368854126914124984449638477638474832382644822441349715190047850694615621923558691196062506971204788664351829002228444209038371213080063830844456528762632359879077697920186036167643716885250438031257817239185582043660388794054634818134874050842892978500063200537829342917588073547657624109411559319834333882203587558714058608156675719544459038795957017746692982311026398485090935702502219462935593535218945059052075640362623895149949779383001112020910105510472453562458345999948286656391574591311112409310829842467668764500336825055780230890647365160416269826782731109462475755174353037095863102195291186746912134819700429206770438702655303968809201785322723129190791884447967463933807754667125562743823219758223331295375605433562195561795167851153405358191853416961246695738870239240430722427931727995044260625728494204536291847843453711185055841310190063314251654507106409117806490398073363831661452204020258092146532172276992554644980909124445672729309295471594454307113392241244965192760534194928888246290024301863699623230611530963468548680599571869121033435126131043075987156743176698832480531408599043031647947401733038618478828863114515775837093270896229174090626042336478688534911250478322623566830538856710122771858767160883139390384918326020726470630732134202738224200639572555563707107715812499211845477757193933005935405545733636804584145641498465135325832646661462334532577666287881950880791735206944389666360267773786837950721694596174754914336250204713955150913471343451972675474711262604713035631770828406551640605997007888263455318343691743695931241198017103286029458026919464552849222278557580403981436651729430366527897287995415082375537856339745609330222176958549866034564759349866304196061890273402251476764806974071460188229762471640622454371160170335017935930902653361603454957111072668547791248160507980158028186455251867201072000945588074940456566874906366772768605868642975075239850808716014244785205624700147239685200502882547532465880193395316839118906461147286814344817261374594272081849620885089603210718764250171359298017463283071880829390321211690659666268420884597975058514009921569195510742243368218142487146033659775481516320900624528979855017471715680717177021114928099340868083295934933497184093178479142676723396545009540658204532669607334753237671599413443690007506202914545300613513440465501467194566809411852816225274453995081202895066898389759538135071067796699945035360071292911661974522714496325954599645730241714279543063598818648934044659719927808613498490302409627297383078964246013246094394341438778953911608233237580155154263062580851370443622612452079367624660611883424933027378124173718644894503711972278946199253080689666876227333456346530194590277983321923235737289992401283934105436257699291951549046521587509556226269571682400666041851105837326818259155207020421025937548897421784877161795375066283764722027892108773300396323342048512954448516290477874639296149386032797929287484344082965245604901595391368852772343848762767642638431693788869697880350133789288534966289071905016590804373702545503503670299927013590512182920518108358302856830340177729596042851648823886721052491511280293645261959401691484930463312621538650706779140011518488279122023301075652945071013206151984272742291375773912679178918474793900762892097481673106444740087071307388064178498521542131082576938597275149981407451245049492448125443589703556264989905916152254682241659877493700872896272291684887442333523283302141646262459264560877310180657592574637941807947194905770944043867467068509825963288346655710378985060815423905704979053105072159088736357552292527303800919783856594627768437668171881120119273838159933775439966085980976380484160657326478232245353429307794398132472338793992928275948614706061981110293381364455943014568654723624746988641494812983867028209630257263163036636510594973807566964949675635432917453498639093819497110360654094730944488045092929305850505840418264349232175026991063975948225059744037171527705671557629427707829971355912375438198068760331616108080219834512709453577387019878560709527258903795150864002279729269911825667041900890503302072171651903516456923685446595007614460834108448007115381134996541804514101349111126081236818444322398315224889357444618732667371583951603275151650094359831426393111568368991777634073751652322981054379553790816138028481598493544440197186231368928999138159331726865464783564010650703450839240845060286021692374692999163736686924634672333845611352526365633620892145837133623991116409422756836947369137045448140242624967688927216825699849816039519421289560386034532474752064904423271467437768390961087373504955952984742532277048285664629842840245823266048976196872282149797848915940806575380923500458112464516955057912998637271026618071093388620321979681714578164217911783518127436178958402795253648654098517366151424744920344464911600304585854435066567273425328814502353227046783888236607407352732617845338997974578971680571375136628284673799814165889440634480402087372828953828742353982656450467494361231722000977264396272948343302947329824689259402991372379745890816513524077540318802275319526036184210202812706634793842493560207781795120907957790191377458346459851876900791445584524776377995163923720273395452406877092820898011182743921745514433043255890917059787330384429095605301049043041077378774143737428794012601666071079737329193070642676282700282554087935412681200067110350618236441861786661136615997392853399813672238705566460022244926992410059370205250025826680662177380142052535709686228529061788740800853080247077752108277103632615018358964637917083192654118686471502531636039224989481761035989133869518999690172438771495846078506245850738141475256676688813888405769157305742685250848957299631962092718346666115713011178928238473419329791919504057637617340992204919692274205323729787407094500510922131243307570754779781405702934542131974583355279136861710817862286784095621666516694597990922652933458893356405045037163631456150432737071166336518159200721706379423780283476387493863312535375737083884927095780916257947119270902583658202424726477120059331994995955863544602578725592338573907232886002765415025994917152405377477167679169254554923705516566367911448703314913830629857302464731965095627942161239028028985339273476637971398927188080030376225869607588041310803813873598509876331374198083131359951154330461655348943276112006676731418092111440335984429150118008715236465195953870881031353291012391290121669242921527933726530086016589859122776872924773186172932196494215209490188486218528838285796086910147595480479405568603089762804488454025160638556773364603475133491174397315209003499198693131539116517135912324664572420944079989365203556865909539851319581243574896257060178990222706141481250232286512049856864540878791032172765252231882676786727442324108055651289870137595087802754118076268520824171056149012853458248361788407491373129181660572832257853296145393030080801518574750045337371653502925610509177905802368876584847144468001168319378205287136044236947616756439870762361156032688964788489024814857344050957283577569033058537631801322722776029427736867512807991134220122493066564248317616907739162650061116490448665099427446310761202271971322943447505653552845851893402833876205501667046752313850507122790595404741676899640190239455687157761517156356259934967976821525495249431498600318836883442371950038372905247552342994581943308369860742990455248560899885055789053639576216006062183298576493035711129721404486979170505237661966588970888472412720401580106989049044659717573573339125771353596272560041421466537512284876069538604351714319201025248190779720342594992673886904851673580532383010836062673971117221967604100259476709340511290530283879346925012887073289673980501882569068864979001285123168970798122335347122962754913099185320621879552465742633838960138201876433963834722482891924800103236246366533000520545477073328030033485240707962070355197884658274970893727832684749609926658294080243180992770753566657737658935550947381986693050778014541571800541258160446849108817236518289029615165544186572150151132471718556247564348268198469800601992453473675258403143384470471019300143694369927993212178864495248454609354830063751003530386801427746881392007459890761268930474459734422517909715095290410311774408198617520233489085224196010756367659093497133498992643479543257539752209951877898496932765761737915773753024911406957339266670214491988414179890655071564649793548799749249410655595616038666480867917913603638613802797501913321216747307946060858228334160214520199933253038099187862723683671733601334263996340797963578751806741964267709465692982474554284866073986975243507889172891779102654956180956366531522138732277891365448339524298483263002887295856073322266373282850111539470862586699366517097649127761192267092832677009184090265505438784658500541137216870344470299533370584571728130250525219787106976775595743543711228371665237066987910293013236361345804682556264157735592501184448168257981035771582062419418795934906193023642618561155433034484055881835437943465229705293053626256229269200136434576768767391490453951573923543939479254995639291801518534209700959550812566496567477188567350007745548454495945030702394693278923903254673758929361411429772491716751329223193598429194556232239295185229154148528879436631875827619328488918673977695334705588306381548411500292727741255841256154893454319835456574380342049028113456523015788064896242869192045537157796590841020530165347949143939517064206964581927165208086973413360615710853095506865994861242047819189952227057323287885096727848944028224585707302192764629984657084082538024368830108969588524032671322496501539236816921389040922424342792210552035973211883282321357895533998123390401205788771143721343622117268119719551748358623945489379332473997693450249942155209740353756563259748179113511590793783223555138281353900797013802038031033608450231064305875815414707235222589767537699758055812149188894050282956926816622593767683661091554225037512845737852014533209248845265596548757996610943510111570231989876829879882934462269524319269590544578689535612965330210686050599256061922489859108942019935831535739097178218026384714249179681606340226434674588555673490035580007510582946846023166520695361217883947004128559394704753449836932109301949099401290366581395423550734371913549901871966854849192863593628951711023264881291156313636038250359732793733187402975433217259744490723329154756435537082542868913242615631069596210214277819995964415167815403775114152824796921006570405561997315548989323357849755392002579921093307834032584986956658366675346748416820899842482906417762913364907638317393698148160904774366572793463125816773592361613259684525831108561436737928892677071151554158251699401778251815014516627958691382966479023343120323424411436040184597016852970225912414638960034143123340341876320426393098320667569859993929747238168518873795762132595954982531968629035682166266587556243859561107202547878386962293793414544701684390467707034055068600345588945853856240675173013617693688106067609681475144815850226969581752305260264590369837072919436306638268780213763010409058607414300090301585925554979277344866832422621394084495103762327554049541043635080890907806108873043913527283303804587214238411180584030540897410013057374079038223141497473757487703941581444679270427800919859016811640881859547448520582820670528176500221588321040429442829704616957805818152506973653115456298641382364030071474610736933894513092735219938747357586654572042499347281588987071836329584591444249262372738632658795019124559982048843305968197167014462697187141358791226750740487618896534160769236988762218225926740024788443819394171442818310083467829816196780400050421567785151731362565250249466190499676436864018613752224490413252232955195921434185728891274708257984332812564972931482414503420391176323437512644284593669297127554888818115011191593186742377405502388589280493974896298228856903154322243669068793078594133767744954154065379634304108317881661547643274863753269601560772054037040508637022115484889550569722771309619533861580752752894476359013315816266975989511956869515009639277633170291396985034334599349104645221817063931763731278919807300963130728888030592070082272629273968489836583519837331055047429948071632721746793884436840632883211739024960369281031228958444700764067356100602179140989528454491571597371293709521277151521639891922700606769737004842402127800838629749505978547652394721217357276272609267100728901464143913352600883565291835660249891000059046018768758037416461081322894974922520427419137506440443129713833615076348618836649751660266647756012021911957809663825202034211673389846198138779520016167748682859408689790767835300456077368575924085820181095411323101406304633290061844241263473827450283706302716347412687764734696726236117560688259549842239446379329846284843646288727094113642903179231729463609469819335454680816544865369157897688341581554551245171147634171591282689145295100281141488171850955776978184304001237148965091426154966251860819676660602565076598126750025235071156118551314608875145139351208035053357723619420115283414112386867099418442913179505074372340932694074140832070581968720845491013634123055062880323746243405369472522749987176046835751765095084335838135584655697534634018525467133056995689694513155065476462913636089863773476814477476866082306908582225844756559082189041827845542119476716229688180037028968287874944141964009445940413279638182831408527007232625946710972289900356577584408303418184517144524619074890697781242809585613352562360692779986747734442485227894480583831386479563907815911366367478511980030725273837310455789957967143938395340285169116421683297670745891713234991272254702031452202513768597803815372570227829827220265946264737197038367692123002746191458523563116146023498750336828829040990129793458568022528619124753755609812112446738129443778370390630141848374303150747182512560675345632649109005569308565113754393429782583799649092600215115419135163474474540727678167655471065201141581500969185313338402946174931265558198199043848634514609332478199791441671840437468155509257223984836791984738341503853440629056572852974759254518547459663316110162692126134101639477190837651316592502676801893914117825398109081663465458389242115183963924174069849842947109450881415769510293797169018063853773687694817995996973522377827784689166199737113144262306355453593385455143928891546916599605707847739645456186156367337003066947715727728814280026248091125613701495535196785874134081627047689449776075945573116379369632180394792252545518751445325061743630918296436563609019433685945879585941945729836243443387382076871585224562408956598382490086480215233420387766324865631382216902077171495698769077447968005568600429631891454117068087264486657042551054626314471009051779301425649742787038605735422641112132353852128030289722965303135852852347012994149136372913435870358893180075545783237763034002815294661649621957521630135148021324831140435785505817182135472631559877170382018515067028886872755752587825420221881681933490632623292819418571682097603106485315710187859971165481967818400588792709454955988948346056756600860334256617603816721934814137048626682594156265634420113439301832040193635286251319709993069286692485362141360193234849567260478518597133609195998116164056796080029301107056209108045146018358278687180535853828606228036383575251978822802870490691104167483125988199519694651559280545304543414615701821411540795409425953682561472649950260817375583146066176575411903700749384935064270557238662400116394520750558850081917775798856539430672586026976799302469320262530518369984583625949198290394825406722190617407107614197582798646250197412336662316728194137573346983564880578418036915344363647373109644140699070725023492338478104756751105819232070475953362866338283116846087667522279803536887867300269662666347026765869626502820082704386805422791048372740660203437557848458372352410584956304772449978569910202672673519371339126458826643067941202449807760021645129722754039359252218740287103476780379740635554657617715324553970081098878462938731381036874079503991859760618589528382398689715016392512640823173879821828458314896110684000748400913248566686644749179883777663166247461368808755497528199905249887931016108221279520197080340253140186006466623848582808105486857101250214361019600976907786706900271914341120526045562295204263349630401084652662340236722273639141933181531838698003454555585425766788580989420978707454104794096251599730832922795401572668891623085115061768559160571255395812698461885879076436902340970052292996065133809111761368640615284435706598791750677805328470210404773706817738359116680255328743503531253045708303620124026369237527454389555545257667343594998608324120291388404139770006663668738401117223990075568760141557031751244839669514624847095946563629435606062880519093892969551048873338945421487705274886081281207254893451967558113791532980306461813008879413327887659469923586241412133581528250816613611173686884805272931062244637202543842549972550239836536081309678849560092392380882065791343708226509198341684802679890917097930615551494581629462851813322255474213717955795077176859861558651850161683364625742654535203448737053124179983338168708134427074963364559303356831687050196220634949781401228626795661238551588216094072596944876912105614752393963592386694071898571203825719341586595112524408330253654649263169558848345993582426250024615464520702903492971100246637624227806034845979986013614312585131255099801409302086874662148853227818783760660147472542816603226959462749373496770108529145346449879298605638120877584565684848029848006271207938344649816274627663540240074899696582496041166691949498992909302327115997790531969871360094398538819844501173187007172157691634930860009063214390524456105965201944667059515334364859510336767875117006389003167584494662767188510595104029712498886580267925527288223638216517882979869873186914954446967534552846716755991639610220077923242238130194773859899767345094648394566318654034822213484122234274835931154363074472814504697298599700637747221870255912701563725213312659008692993266492546605853698223356007055715621345956948038976170857845010176645473217872329462297711130957566023963470382786608063462867315371670182264467618901004419274138815491482127602247785669591470436270709071288575585799640836092617885010122017983864910641188147364068541028634688979189533335691948454234633084051387436304903123892352841888900376573211314683079523924099048277035534956063136501887343331574335305805914951869193184215243788085751648503470632827066532243290443662413855518312927938925840219635627139815882814294581164259918751521940723699599963408757855566015378157622665955046443573704581798871542738539815473793936230892393508012075582377321473438278426367957866567371197602444242391370293508707689716916583459729452286610628269871071678548401149277033984789086726933038457223176014480741227561929755340333439586021778441704240320659690191138898089745044482878438812639143560354724820498926492836116538463833543690488811792629744802058821538052630904439456364865976063167227465605399569643964367440241924922869574542354639242562401033645677892888423001928100349457736950317002034714863580494238270703723468042598434301836926035412188019888793631017652853175772497360567295828854349722543771283158021900944918770690291604724024249539949500857737236765849380892992067290604965665374965442460805866143197777893760618950430918480527914662695722553622675875565751761560351135338438064882162724722548163503384027217776357232109039871044338765082367929895118444558468261008658578038609201201097786226258206546269403668543815009473437662775242915442816382070195417971856625122971606708886180161078131539786992503136534269070608626105826010777358472613722262228023920022844484099315278226452026875933119786714982068201530128104463418666843773873587591982255791114910977205204999287755384446017427559755428919537173572495688292955153600635569633504573784085051610635391212839576829661001575052938854721811748951640321079579398836460102000528276883586521934727385430252258974447237931986421950065542972660597580983600627141946181132995053432839109357059213307779399554340190947647941242697613863295599178084654227512483756413764794398213940948174717217745521365500214315242584427781889872383878469497633368479079093717216708925202989766485158723128836479991455006044032994823782053584593544076715332590744405846020806384359177312780487918091986746804410222829833030147869401457042710806484094928280709744206259193697529909115296821508405970402188510809182482231805505619882288804667831781129734169048515358396667366030240308961681499197290633439315046163107849411611155123882822631566339730075380088641518106950184519849206909125014810189751245235238286709626042987836246551827060496081476168012733693940720983362619251644938073726191668511296131020503943253600926553746884696880271266615187714116000013594875582956475835494277818461404560623718985669028010496215140938611071442626206121280820058611281349772354957371407993256883169481539653859727472967368423009874545831816794892600023744217806997942284297344635087324628135102492476531424939580061526451932768936408493935542291584288301765413470230127130348005265562769514898938128256822078217116524207331807942976781922560265208490854038502419541996593660553510788437501261740678380951228472481941434362708663993326310846259472981857071151886230082718926707206081873844696993294723487909414472571556875711195498002990512157614078285353880479926517431435045940449700279095542594612596353074070926551507716495368991638581709537258326942393974878744718024950752627914012546081811989146156252018044219732346743681855411641872360612150154973404386732592104021270343772195160125277657551385524639624548736822465994374808386184660660556155481013938343079241720615053050976900285010120843674753847664737127756413472478185487826283107270163316458534221703691464167537230645211544766352020488796089611266722778189859941959160988030377094199431784126119377266083135993381066301650342088400283891283137730510475418886093508423403552109757202477411607895472335510401723598963967857610108035238285738790871539258004220899087819984836905501912643719613104789653228337689628970261437450022642282531172938928632099429685325676718610645400552829264958657264074130683333588801965191242859450093699020679838543486187520355298768860739631696022603100440581611325302450577771807266825875350132750146236629529513670692203807528009435210870965345047376444152712750189107982297306108099243110872563559587676110617053994877253173358132373541562372184005182457916141702430994551019712429403834117912205901415709309123066610589208790346727780678149631688738822526047758542878634955595929632403772024096567219635692451853562803514142727937656455495695923950633278328163755856162085487734419246864103214566287204624960827290416979148648024405898911579920000595040566595940947505284563694580863438769809140959700205430417540766592204447853164477376386892470808729030502879684724228907502352923502908197866660193586824678509769825271277157831099470242466134161145412311811430168885025441750970120063477149423502500020935526149936607869068933801722978244249595009888529558296591569994035478481895493391033163280202079266480574761819606036814869540034939828105620899966248650814947998527016082433455074870569390667904341459410729679347622026909384322155927362013519362704786884020849324315819050134468385577230112894676329563982415512783948605981432616481381262350919919781804176980670151540803574704405110780339621828241918369664251316733035465499275825466571743057143128554391877275982469058169948612467667821916397611608672700250484827685496006010176594032310521013720873781756716468412507249072987009364613465649167813537449458531928090103700842793838699405938037944662738353234560967729378450846682202598021257650490219289448496286212131740701291774679542711135401904522007246066300209163517229614406478650138853333827393837955418518682868770659124282554048127544771358913666588553453556212390891886625844366164188312677519475790047238173559618095348969715529499747447909462987549995929951860682140357756530956288162812792601490892041132854508647957541330788408497410182143740467973103157372543498519488197358582112590802273494306130657564087590973881693003982286774502999399720416237959662722063104254042986223864873721954755135571633938613768735654921109362049182350446444561992326544437124832336598726958969787550091346621052733467590267962288535956372262640508126682998662748295738568752803640872439755966553155379789264892361577722800325927774213682219290773568727602374838054024627176617494560541252958302741015045988622146704264783132796935867478037253429189141630266361754389061731279607257005389191224638531393816382815673552591206688109459920452408383521959698970053927561887796588757362669020965521876899518486448039415077042176585718011690353687364250550985591286157992589045358721084689598222229765981963887994664478111508305464841350031234946715046273509319085831321265708431709807025034340974148069544572764179199870560595309347531077178588866980830883000382535664988179999132470767376993902548434624860439568166303884639031316308290110783866582758731304663631904841955072748937866910945750524227448136036683086206172148813458599653826008327233818543939156906225319241743094021515632395269096073966184861791902859012935660824760064613061183801937122820585807108013076024054604733712126366036542712215971439792271177309532312587310089798897476244612228706608133023569056472795949409271995568865734077914909314149160283895486664522952963757565101586795678374808766611126446673810289014057598901757027059916674865352134869315022589719097940019227655363804672972955907936331200705203920240055648923013326949298610473088788291690202630917318895995701013078675083467224488193330755115566441184979809059519477563963431073983988345823672465151528129050218741218984633762206673141672767871620833176125231584426234951777105415331961626615115354002561580448487370659829624591179227960401248064495693324241064726456524240791866187223500117019776590299040837238027236413202882155600019747733999203305028514964688934385186843913437011392152332877506492327299547856237335512520711525838046439950170723265612193078634129397722375715484238869900137160584925996192671842138805011810558390049600165229915148508657114782069473752352978297632347279207243223138635687665252009862367080745914524729408218799683225598144904308624007512238940319550776748983758480806186936763857400769604530196187860223569169209035070384575174603205327921120047731767248703657911951941335738896114600206044166773505972699358592482330234951997902237235972292647995405980199912343172067746702756346721678927230653430980088219708019377089374174016882069536578741305156578308489452402845640626832844203182470684541152326178154246709296908044542561095243203771415922950092799436428668561541847120665510806195106057030033836363862027705450216958868109374550335542472184766967189315200709130600529708662536944498219150096180107401447160883831937611604773768742583155360528334342760839920346650053967418172468938202221900523994507430435648367761024433081131435362082720459259714566326634673660418002243308960415565325970395482898367343247740036249004442280042017967185703592168783030220780107532861844655353422237427465976304823530185876968135954715539141845851829744674098024194292030077648331560406817802975153186615023461039463426176857993589272606877151227894232645579207115728930792082830927034509372005693746433995599006958959459878776778974680427768554912285227499303284870471439375242071514850311956056124654947005324044971691745634273618381418502639756015534258857341674007277570246145290270847760767620104653318178965882717197843086350703856546893934716384177490337665202181870355879165842879957934773769452274173172657079351112188812641792696747749504634125566377996086104562841289560048175017349598332137313666607870455539621879596328997119554882578700748630349680694415870628812831510625469771258183293115665833379994021826640616139546271656301022901137494147010449470385456309506744597883363463400825576259880689633862898006717059086954366198286477641173912063446534053223939922143916148296532204651396174886000812600303423958644118432665183157921881785974123105371181312853438970800998180311670817360864283949901274559726187709659695288456137411169944062307591781380712073453501571971747074808798371133019459454640542237394793516031529901724706595935403204596098326733348510985924338289384242709352371121433220575726357757629218673946266980200324153008414592411461969889716297567521643353656494072001885649876662153555992845334277550419019832883271931006932225433571460250210530717255675712984558754798520731992145245738859107953736685155142470153770580320610646883253724199613990507420158496877251146947910064385214831829874033309293255355416003175078203996678110941268441360012803139298111530968392542422492580995151480442779322702457092198771340546276208696537080442897870008421703732249737379732777279164913335474951563951870552319913853426710211952362670177595349540838752808771804525432098795163727553768277223781191445924191771060713776776868523502344502664828787611998138609233758824823677419564640760031127942550550099839691834746236610452068067920810218887993283975713516355492176094075983717865982897718689320027599015936975176774157793208551150088519071923272736372420267581109108755196986013565914510014662321835652792944827462835516224337028723444022074708826617589399128657779376167135764554205602494642080304668081207011268611326430333672241268762053784309098917913332415792412670073272580352767245944873251607299548525043472012413927939422349518378463134188055872700301955024374673030479113855769049281653239808923935781570597808762325478192990506154959372888874833960652922160381030966054731934520073731013827910463668472904181817724042831170825812200596012189507970067779071764760586279302201824813694054470261093548406867106861352488205914320088348272954525124446108917383330912882899722905072158565895063175365226900699688479849364553009442090221048430112954547008260258373604267935702724967433344304079557673871733212643612212600395351415166955185876073941480181829841593582562000026048802820112438050011310651772158195684177956768531559165344404966582625091226097679665101901171707585775046211054572816116177078688134401313204866610231730980664432328674140758176875231511128651488857360275351596217537372682238608469870487126729261266520181384150706398772497712908751762541134472625226164800331686143166677039044830588115672275571510739934896457469388675362242791965354061006066644396515455324042644298408130328033559834924074662503819478631764391444046431459248957034182207759210117812665222307806775095888322548120561094646704949322502697298657466746919670934874194416113101424669579338961367920671083157133759755048544819124614696037001392965868799136297090592746292831270470800155504940443248250888047258389761628527777751919366283208873396570086232084494887179912513976926348060714277947383500423660372831602742034930881120117146383581529284373438364300352316516159408847421456165612099011256798065794379662641448731587654158845225568091642488881681777272741061782419609824482005286064278711627488292269376722300387493754998917805937107080484236023447686699743687253583664155952076127093269362723343452364246448426718081352705114149527481734720675146161263246696292339710739255772782515410075961789967797350498561021672402276494417078473978877448918336677838862187534403629370357325750630649300671890845443841492769108851903797789036370781910457076463787267728837011551983799097558846030039287068049978668277400022006088158668921000846691370284816172634741454495115693854409525755353939818931893920858271867341811791651875734163029507677427866922147951217034842132816074751362565834663555381706503739331128481204695896921054828905305891004474389613629090922158182709572896713353415607561683142373894997719745654291265902014266321826902588585249043036526619080379484314043745877313458817943242998300422950891701276096818421606550801890348316408807966908918309362657281309169763969962808675502049849593001746174741385630676749760194772637626480075490401542936589345889902696049042895159569111382245193276843582441498096880848988458976837730347375037247753305809226028675393743836315720472664273851219893285531832021508797064697731064693126089877475822471569892213026095901379716114411932599929461585246429735502153861106804336690480600865665445801920248659223902417544931444656617841503174807990160040696611857044769026105781955026720449811260923880617122116734644585912186445699501189248064519242125168502973753890874748382332789097971719271763552090210245333500398991603556717213543665353188883128747743578417727136213595067222913632883415922203184532911429167315518776828139342841225422062693311290075201796771769567085523534569347629597123740722542981147748174236016517984400968639573976100775227252660149074134196675496310279474957565814975325052253123235467152957659648726066054314096709500016589518982727085937966059853300691623269774592322250016148602529185841527996375078270678053671283938485930305520647827535627286690460242994794013443988461724097900738447293693057952916638224840307675823121667529618646775903969509963272665179228204951946779135392962014425466728926107766389167856417693549916782029060455295249521034582305269985988129081085315366418645557587313544089642613369571055683373746710850754178566625872720745472112431747503838668686570849617077668340876634729820936234584724310357556085538017721087570831828680569271540548115718337525193356436252772289943424334687008935124010625963986292690011562253438298577096656913496778905708668171143074926630957788034188554651198280611704889208413935873002611935020070083473452091269812116688539758665090157185715127457136602505359037119210391084808037831061108456543604839814822983497938406140471626251515350406082203425129177729355344115765727825235722487931775712123645866551967660253905478300173223732178460549025973190957671405254272082560792000009913801204150741626628090755885664992188196304961853142364372104659087856904727459776469737926427752452750132505733521036665627814228215402080847558577696336506087025229620337130402807311786224851502408572956535903945356220541301091818031996360733436596864200403020533709340838037409000082869409420697488888944333998619928874531857372558813153503464323019657258324885320668754304091128709977509101118667448450701695299583204768223437234175812112977348329348901677704017016962397045262703235193284179845146700238724942601490267528241950391136138299066928090819150545364427564512343781864702418122057439722235301140667747172204734274854645613499741822664927131275756870212548974430460153824120185555088758564219811970752043566648423583963523256937503737703275475243585470980415232013986738965187867225170060380979993173412707316617632698844998886558284528353485680070559974454554852825530980567570974242123781149218840426647705778235050097593604808469955098226993373619879686390071378999194335712532536322571757093288812095457024501355125127216462265037278929051036585515360908170381083131946981920651150204437827329679514000907887885654164065184276735842882496149087596857608267045317432368819350358059921736783020912577836971884183508522769389022868228882199392278865640883422939221740216986930303353602514970006083893629004654363793443980557635571438497379796870504615453648972752469286133836041252856439450490449716154349700752887663327383620361394234839377238426542535029261927979064950601370459367189233833955590687639142727799632326037467129513023030563698223100353362726678752153167103455780294908949907620786605534272148704925485381184412726029543601594949187940238121853799267187956621598771131359108662198049723931413040128627598198160641209822029937061883219808731314161802531134686154933973661791098783310817831054194712878375811573839410207209642581083862855171172409810335637888007171957992329396669489448218104781192633197593564888835303034307974220685048880767678738243304002962149848440304500641834454054946320964910412750447398804456236707031945288544125484742122737852250682471013610883019930422714720895568518135055045182429174094987406370006056517216152873288747492924076051134247269342991964869184715782433035784001510796670494593429709574772436514908240176628385347153403193329944949569780124842846578122374422819570712296777025298308838734569401438542943569980204974059247391685437457217175848691802627692538113897782488096290654878540808200544066524940507638455008674677545713679620517122306613001766064739933902039323374657417321500639159225867181806701699180633447277822612470370183344888229304737671541894979348415718505227173531798429360936494032497769536687498366512665073582743011523961013095647176819760771210004134395725721738477978153672400551995928929231892319290070766848404697703020536344059081082294678545284516628208100693203636307149771746879129312551412798378029740128891338750655106826695692599104905522835779490593616910482614358797767266920289534722164803106579138731823933847588680640153971379585654298952037342422060761961635907256181914351012434150662714658888984933190373596876174148869712585460858883803367516198908089197094420369544617439062754290231478180681590521147418715410432430199813932350693346168748321135191122026212547991848053173495724588056472219436393964567233609806080201654801295552250798354849028865411412217481026781424889467652993798334394583038008174927947126208374129126139285587830480923456166295210998603922414244462982771054821368453531662283133977072636387429361921933971098928448027094634986588091767809238173048568924668361550572056108554037846366162226725337246690799223696900060113456914331309955270619963525093561792004172996583393920383827786385376026417642936968803993846467344796820067814412686885387677243722157637679376033846533411675140229468609785753183762978141775356970572449643280403262735713856067942643706412729474244700117357179357126216729895368359286877452420649623095702938700236772896849654444262900944334038025223621535389709284749917532711852300736755390702384804943855901137406902148993134900957280227718460493615370450136064279411977490823481941781309290922123759105823827793831779817701798443118200963316118039206561463167997978326673475972286341169630597783904546271939036098474740070817277274614533376619350269535066525996104323811279424349537215850968187353994565526166015451802634230539713886513316734988517740293598170742534385562277103488716078134755774890524908711171982443044383217702739102070138540042115511163210611629902062893750732347703951452539247509604883787504682846413528694189730774102867180776589200917665902655973174696856926986586838680574609335709751662397651432439866389951421322109201955015770732474016495115732994893440287695894084069605242597473266579293805281335869731068755503536211266802720874276620908260637142248538000364948532300816193314253725658640364677532347619019086827747872825336772243515649135680092089777181876819792327038821066773781149852587513612455661281436153718180648125579360174091831051421525016331117023771918739677275886381447114891537977407803039458280017048033320178914869049587197949974938773295008738959542343210177099049738358182130219934686491851586697387402356140868207161435568261985070397927091655366845558269287524258514387774541878033971965326198153673502886164466172616195463920442354983522998009371841431873820869944904730755238256293687115144940544212965331882324845790406052349463877762955627227747118354920340098201961571702220687061041893465250417727329867690909521520422887636507751898485575609107074419171569650480317456717997099955819154232837272522239833608478400607768956738331328755622296850028287158884383723623500449049068235962295416501660416179878581409209226967884960763169191103292568181647601595084498895557534748894595479454274780017898910079417531745674431472513673396603602426985237730655637437523959806578505762230542109556298028605131525756199877261768344136236098379129500890819752498905940910166740696423204399813693543535607629971134317161180036968042833174492915657286645942621573939226962525030886389189206362273338103742909042211014112974895700322562130823673232988275774180897368111647151187440029548303855290884152429693738078033614746085965499333753201503193703502352167587003036948480904018306541308574626311124494029835633152601885334913629257705058472830091378802959836923816490824558727420294018005097969792489413405458823950960066951135555139127076223017494858669978027966361437629362371653898027672468027668408064405549335835453224092439151787175958212719471803686621663734680298297775398566211860645307975202676228300204823545497634001073379680661988467055313095909604817051755828676829862733125771860507787990766055995391705576603702189946598561231029136916187503132260227100307793766149868566191364586325528096093184996718427471347676545517044433412733417169034856408389140029126652294033726700648865377775321871985386424494633279215138066957566233731732794994053950379368890837496944444357134660155397066825019676069150140803246152727754454389490626289400635296647420979050976542907597504356950328208001441522929586663765736101937550084451827268244127149251001804963091668601929333900954953276153503483114245328607070061276855776904680802390177472863168649556416330495174497248812862529921428018603403843875846880110730886004783579457999981168548325812139685492641143665691162746259760785001292459450076380220557855051566455385261176056686466944270645067540695534760210841503896816639765867188457604359259361910956033147139457345923816682063493227634704175730374345481306024044596006177613908792195424347907762667936057788103523824077627655140474830643153939886283050770991831202484870710007054634041512901893086583662963746023820865555671352711416527632801764689192465057975700699072856305462283369655345725579084558529394073727236991099610975673510396956185435062961898182531894689201902825727459525168109032685587732053822305053871885155716836214185128688501940746608667382463483807315583977207434041620900886102583970452288895769650672174966445896055706973483803325245169623647173935154207733395876882255789540905516131373569483844560387605134567587981739895300737664087636589692342185887631623745946366891405129184130150019006206241075365909637304739744230832976358760340657552908323879636623997656991062503083062610161035593561489757962743395865172437592599289073096143892490684859212688983190478405368771333839682129591917279453402445129306150478577517717726589632847233959115971562151846186901032923406049854200516509841318715066715535605652121425875263466758214299671973303233712948876383356789721462988114199869958284279251279138030459101180057870167728052489484484689547454980341901997115211589649596838288070837955963505918629031301468804601015604273162930033309697064335249757599654819710560956977412910920011901392488290037328508660690588452449319188253104028282030106093811188806557426563770062363951896752410944229123585370529454460987946888133406760598196725637879626311447204111955927035327643732251901576790338042685524759040840176848611083690084045809531628357284926560241436800351787111206180370375491055723535908395588945711215236500059747098913052527620750838351103441225405028570019435551773614076735989345877036453281233561809666544351175192071888272814585100824395823812114254208749701708882100701971892879390014569672593387128810733531916142137676336502475967420918558480452896902271450043075890870929713936711726797284376359717196217239206066586556605314024565614668863331291299808568464687549769842300438825295449642508087900804260276883431476037521437353673748036118846788634357719271960178483698127062250512623072730349762618403946647684677369230428530231776916120301450826322655724655340343969291989802724852670500354298034440003231062385552438726345893487438638694575897964201608987901671697674820909215313523816605381975801346034854110977052563300985423778519925983318902228251155241942479528912456011383944937611826439326004309342621866689407859100604833093288363315818347451522902350247131577801222319708433390062550694031729335430008668566156530239033617330915002700093230102700415692111347252063651247001784157470732322308053860053881890933657126410974510607486617985029595530078946590328752249351573414246246785764248780534563099814849072005474934084634058733981282387008155955402274029925273468832380702370393713434192618436280323370948458161075229503967839298119960215568229941893003734772712926381862138873139722581604779674501180760939582012652899944610272396089754635428550754249216130875010065329073319095966703606210702574325795426641570981864018774644592058827123551574633402733187210982194947680932296766931184459615187534628379999409156918058985099692336284497746026296388187054224652216439152739696543496594323806821874195581653482679066455487680983059423455338229270765162191910574201608918693194663570348804691857464416277741628967222360573451399545771899771673139693131783971615902871138370838769346827335854830668427190709184074662643755525495646051396437923697000895258413632155593472640008399458253505995778188863762845191417462813649646419995312781309941780517751882519276027794835936796493517786473177099362283628198914041771485130394881444294041101160322098389369847765516157152450000770757700593433961565037879342865418299255396972833861566653761240044059031059611884848473471760148650399686546530228561493761717138704707088642882883151442607256889860117387065545044454841756739033980894030407234393401909061908054173804721868670515874444632250291874723617381615826481829568734778496196125604387160105905838738010189149227442281207636834681335822707280081961626190043423466655660854394707310948638234740842180365890699209880841871897822283019049535657001953956594272124405966453178641772293753670725041229430222471263344218236811737940461427728360516462200819115909493955973840205978485748576502650921797042907181135135950580278608932552576558931990588929789949460185766376964178053873752022904914099841101004937154580520088851963934242160376734985819184887633173816662945421900097787635557491403093328146259465154400307172359595897649408644050424240542070523204715328917583644203913410521560861555120678349717076913582148889766715346654152826257057850172673088464896413322576455207573805153326946866319821652999571929169932816410146263417048206771545615532673493450254662201589450734337134425502864482041824796383663439296739994389084209944353175349329333083907711996503434181036137477492173558348557874898556901651630886682950456072221039067253979251010929959424475014309030133291476733016399451873117394201398242355504178163683478311970085422116476075584489445198615652308996620477025447192404030367462970760131864094659396390302749988575971252209014914047540261842711386516464605666127917211820337149029720113622084839690078058766510162540725213767485937461869707426599389151793347274321238508237172719696563185966967323455601939508019712165585656730450384692398670135647165201715587865044425596840080212150297303450516991495546070823729336627379264789202058137082840026772911746431657324170015193529035788148542289629292410424398321543760602303184534900421265849314157032845594790612761257083115527107365063848642504398849163582146266544048955254722428635188387850322838310138642694341549123415953481626114401960191820909459817668667409548447951789675533825805610322698773888198619644478644814291103206953954435518922942319086631100032615714114496309047454772905022514644372570891314002130935909249888143050600480363579336905099280574200600093531958191438167812513744648536150730304569442003383844073013575405390126168177215874846627113971823609345869081847280314277741442794927843559810257471850681584526440592809105077836043617725552935332704920349400814753190839508006167391820685477909309115264867272965600835668811024968969095891917943117025715061806882341988484873840446167683305691464202035970573212206290242248064739271003672424382477694108989817281348259141525663156468002186279249246916723512528706976002197741710249139790648817768884047035350914736061583514882784486340257822670705416246495299531036455404069919043965851296496418298983517433972732329562368969925365795841755324514379590657042628379525042517700146914916376961961955396213213981319821647673228393581087761696697715745601704686303005764301193278490455723212113457421729505429267689561682239529597827262009614526005722218930683940603481970843329642191126335499051701301131645955887618131856727204037063932360528770446515778221196558943967145068002527970268012173080327456554752609244828607568316790540923059365955366060049849623477302313812930180512233268544932574400110446414801129990994626604865456375187060419053613941553447050020547165114584002198868626482672106558253763461993504555518694270419526276719627138766771834518823452919068581080515477968552813762552084317381563834911412798766235563212933763520224723549157529583769431686716093999333579430347701151314589667823999597631138156327580451739244009262778717242012248238601225636002275294849447655661203740321085967758746247747950941006728615090805097919112106169764259434524407200693551453075587284965871975800760478226668741925118608062178534724874194371395136356441546878896858462142910655462366637670059960853221693477275612517631247323221375635588518242938224619900747898313796283633175715681388732197930929230182618329989708216707775215186494116249592602372638315207978777265307481088379298948056744938694780072355789833645219667272219348976748289304812644013586287156913485550426545089677727179270726123776908495270069700002359099639151951520221755136230095858525846928076944503057257160550258674022188382772613188419976876427318244100914791537442342712642270804578138744573310824260654762638913987629453320581295463331417100409602122496539546303334850242774043316897935226319418139045970068673375783072781074047838485950284412775646762099646033454181945088476358710256333898820402329106862859094971703732666347918812450081054409346710622080061748939716216388819540304952879643243021011741523111571997212289291054994600551937719217222615363775974209104242806997951535494851909695132198849546059667447935860315766603063025363110112466113830867439044820942944461834667805767184608094581321252247673606160750917560214247287846325123572242107487451971489614929432600671549855976245338669932397639925248126652643144523610865439973932411638290908123464486892320714344204910621769591515338806273688993532286918158290624613652031899979472847952817924385950554894557002370081819152588374302323263137399720082860120280416777360124862236384548282994341252333987536281531618067871653175785011570225406186564281455629732880446518783921498283032207615037141516908967975459073865105272154289280810026273069638507140112808810935198055576862224446740456603731513932463487870425517068031949590348838687385042598483921753256146498316238873110820620659654874721869012050474910677499114339967455061911699303177435015853836002086882234224657945049360831586660728255758958950812828688756646524279951465821062101042257012698759291196551844118269224132605129600344501989283683071493516185616025539180442736448001764256267059640934756019112762297253771702918359953466344640970712323717129821114823339124029255800210242252009452188656660115022053395020541251931922580733446344287137157887990285492792159407450896864879393522989927733527583574131945719254935145671416202900922769980494865439974908760269339854851599465225522692858932481707123861450713206090313634236407554872019001030586371165199008500077341960463826153665938450524522709275935741363485710020494746918849193420982085455616304286862382856378032470807889597835233854646090574480828934237461596971052261025856162171890237317603994003717668343035735549546996965477229210734752027583999277742013696386034869040765876929482971149417286513767608625750400903760482072701576176819023198897960263891227060818400548540460562349603613322068662066298461358478948145806145974136312364259543165635519094897926731261462914691379213384637987988316246235035624200728703922118077278689745959872889730399306171621972072109102259893344231868824473092657355258535802740388771845067057595573000747251827964695813279034656178957515440025685372425962947921867491939689303575300873972361793764764675676976449097385429113648715486430385464629667967883389315074202383334565441263769317056000925817283755796784560258760789476206389900700001570620448271635444108564520590642973576739477518960136863550130768627397895525732365762591810380632976172469150391249165762256191601924911045168876229474387209298480951073552649644229812942511189027767700498802451054854835260053212705946733811540926945955186503521822816350549833275902922410474179763367349371813309179872021544265935957594045707673562209413158720536537586867390983892630513447249588204948721821048966421088470371337955924910048828308848751865631803450317772576801877072896179806260368700276760088656706286463990016780915035283642859718091902183202939862546593225375273259329401257407018418413043183610483800080943507524786862388309408151587647072627149395313415954262369479598304865893392915751834860896547899749296020222788753359249243537985519816059788852542733034025986736133196893066051649442194656217103626471267308240384897736852094784499239806425523178302479868712518657721738217056503139985607100405544708545707203983236640699594331898251300462530544377751207664877358048917321469887494326427710969553389533177646315422260727939564127335163693484113056956363101956224140136370555577064487912251947241537204996511442580597359291124784166837824841157583202248919036503299107611496981796678531983681818364203571480410493854620751190188936430477699453938342952984037234516518453117571487921330707057033318247420209458910332095049027359555629437710646914328745275605677258639224977296980397152927866443462051946604631845651756072295496341036840618136435451695828768222722223441267042980090844012921764502852675489912918919460704037596714193515551311500811437167756717287981127406275139684891463852733348685404089184744969597248875601116484177104632566588808293547640775757918501700917140525595955278720967072926482097101767501424958477348350083414996360638231043395933235704724058218109487272329283060792022334090595377174268650044733941611408471851167854114344875497235007589986329166471571912450402746024793345994633949781344687214564847755510859591552021952319139085591121088616352749956375466869213907233239499716084989779518637376455109812438439021962906235118652757212707820765545846948729149602852369754008678134367577304754727524284003536156047778712219940020953760874024340127012160597638810002963069739955275351583228783530071182819780104388784226904493901497737883455250224819393020517485925303572650150354229886000555427507296527370046630838223767447113286868740433597912561271058663034668722312196290346025261063204171608087988508620906089076919698247418080367795561087960298622700221863493714376865148411541264739248270733405162095081252031314778756050581030561805565148045356346233338969273520631129291760084784832979764130935486243575894510166536397836520521231830457290951601301276728145419146559894083545010443300350993364250691989957412298142280778952035082115874538705943150759203395639346105893718256128128658767878402710835828820960758357842225603527044758217187577366849425393404639218887444258725485607304356008804837408528707663657192056505960312318435636692768535440526864607552039902329581160975457327123987732816931163376447975126948757292367208360448910307825878081270477751486259501166991544975511700647065033569846586734304547876518522929225423150543996495949421286871544005782874185608058471739767058787071805330840525832492044930875216642398963225746954530724483491123033244393979396150666326170160303140272763170878571441482047919628540951022420134269314142403032789217004818569983777419777630175759794534461646819832150813791154687905627293718997238838516856556091872314178320583672465074755202619267508919282948802821654602133895918889100460185782121708929837201762109318286801524483226573356542921620579283640587516213068599244537199112550002933110820993539959067282055523525412114186685158889065501749146002612217536566887477290471783058265207611085543480074957840900869115614409891702635340479992723855872994089431538802395200140729359327775175439548351269963931300488523147290462301641129831654602431500394650900143997678860705087496327866171072799069432100572635458939811799804274960559372003310189791143893498140852372877754805926502391840711075688456763056599846484761237316238191219286454992434812924901100861935368786478130087775731773478556302772529631331230023784672057137508111531599652326224328204297122157977953173757090292133962216132051781949953352721800589751419278936860691222742426057297557575474126489138422535722026862616404366279079107256611247133897269747312629838399323371961002967780631092550839371832614788067856203199412861906297220177831793457635159685901885846469486724001873486952583127960800672583768910551246898499973168929722842803080415336125730340486441758741055731864550330594616668333466702581163234255343451236368992620965538625492607218988542773319250318467837278673442469051562478152227673591797265221683059097095958475661951839448649574007251108344344533308385727171495533848605411341629199171244812967974419782057713621462332683288648714252089068737661647129240238406452856001736085040652485723964665987637726706689294726516178086356836691866747500249451422219867974229164073493247121671511713733415534903030578508376593062926901546105992986787874459349249679468076105982479386937242775785708693234105515742371819315945286517990865720772557011763080741209496967539753115936699300753256011600949956644693201577766759346089889430670608417148526915733846532104763227797257385907165488373871932115046213855270831345485589544810694929546297547592327257375206271227140551900780619801594720262327799145292376898449819573461376744546476567954785930668843063719767294527326981314885679782135692534462171029602792240809577526156013647900442406101521439546047216985155141250960382446096244854482324682078385946992845680337140103137104511179590829444316505861237632442341917516412844860052714981976257641422957700829266489545488598781132349841247404226612832880157451230313612711517430935757481539544459609201993290717491506979463370266911950648596888506306562254576901248466663594651924622542665563237290089289533343865659536058932253725786571568619856400567496351851006828188269725668191166113940991912006857601230878955479998951611643607826362833007420802998969045705264576383161020412343001947949152724050172896380201375023814407277839934766670518674592806613241152149425558924726561133422695135597583630087329755290503174624176918601150559141771951559921981204357265383923818382108379794508086190140279059598932877265799656759284465140539800676371499763431461425821475046062327092564635990390495826746379485885448855982935795354108184377008312616112662338320778830629454755714050809922144405907749352334807372341831339331922694055743552023918750518313153291396242427021186240744111019632970863576194035721201601135338949968720965478429356263191822989354484440107146872457496006093257729459071075815231470538657683061157268792070674149068138740163203848965731033775235923981783911321788215832396157175655042044000819613363704345097761874719858290903997805586132927472662302943706306561339595468515469040743639165800988978465448408591795498482012393210034723138483040424307587835427901161337624465317893739678027231208262118189794397542317821787113435680390824037615676760080351138791710153917286945094817092524303323376289803735100817690314986055172317331019015786928901089836695723239421728133265581580400667702638998240099461474794041907803395528818496201359202764827516452777977842509867470478318869799277984416096698128380137957580120096857553628486436822275460105992724499593857496468860873487274581265945330624439510764918841605863971027027694298715772648590494487461388666731098342140322581033077761713057055737722005211629842353960343841037625182763856566116516608185633945626974534374037755163774664976930812802979334088219617194857768222844022509863903655588608664436223120104153774826884795647725198689003092922724001497566829233701687984707590466856809387374271342573092398395379597404255071129340217975873646390766174862226311869879905554074292702517669307539911981239331612855122665277921404789731402441361971393831022084094264699672601504616009228011721523293422856911746685736810361836732100007207854884387420649887043409126515082962462895769884570269406698304808222308743070677603865773758822143821815955804575645360271039141839989793016216534119191785813474520563750536678995265241218170731249051276179669383784347016859593756087784019427356158593810433892584208486320226994952693302220795740269108592286948647434954737684016996137492083665297788139504260813581357164745686514873320028925113470480437002739754909047519989325710966528566442884416540237311555647821574628973182867294764021974286856331570167994368847035821228706166555881056735348463683945986037758801777232451119191399625615392016988255403196886290531627208062550360843403824111671632262636194347861815148422633546405183873886494797945144456889804288247075272879980573419638008597193471755766871478371158688198565503496262930497787503662351818933372186338841535175560972222823779118796100955482475981072005873808177238224792373127720449467395956200879191645304145918795413974250321756589157606732110164690153061120393242195534788495306450293936669740467827414186133249697567349516158603901425576859830356875572535912755133088611435811708679449929943034289931942605886894493047743927454264513233454055413690504116699552210936366847233769080167244340440617730243786537058510955901952641502636898895046802305660709244036279205352930526794901677299095853949349659376934953020526571268202015607983569277879887558919269352488288646983694745771768098904938332995836289850722627633266628652143573330289327773339201287724738812623939336500635236645670303600686238894031920574852103053257157282900238906251659721598784482645457110924611107143815980473782554336584991639263557802027441076800022603281991816958944201543491924048781028923864884062810287410482821252507813930930851842633688913839066701701951151912554836777311369671656488814139338072825988622924511984565096661197992775540428328968093112120587296511851337506422820165423097568201586535043103617005548573477674391889970540215338453816205092404806104088436461429671703547961776795101577342278834834919284437571839233906692522974593565956025253630446654397255169509763757559280450340743672974589075461750784135706511200750454881192468429688560630327493515533717578034930916966044062494088245672213618796443788661190676552055536517009794241129518971645289505108333742708204749965102600848448594374059894692018733732904175726976499621533540765976451112287625950745813042380781371273821233104282772192751086398968513220672057839616321573072160477405780434318579798410698135747003685230983012816874321680794584458603632784700066610490400759463866813843271034687598035072673557268766084307638600740925593697123326438315368662003648385914096208545812142795656747570971470193253372140429373123305056868076386764734546525207115181696265026827813495494474380220667538018945781279341117631165656468379052455856515656943313079103814144910959851876565497446056366733642593604957754250031948623492091854255508937157138151307057668544698611157049878413541065397640564234159006816281217060711665910293604404742441348391913647864932844818856758054678753260240077335487560094006454900122805532364876319737775394595113735276006086165260814796309395191002397309365481466154821216906616961892565817035372253464136085169769592314236065777301630064825215832062564705979884442308355461113196457997507831681534200438868087768412853463840534299058773029245824162193741981407486281240995928034660901059509902489447123533326257419539095906222254491993562320347443768740906930430485612885564839573303070742024106291706063025937435505934071655922322303789254845503784488819678927359012287770304912336231516968963226736222774489327893988940089950293146068303338123217650746907650498880324602284901251115286030912028872143064155711367111794277659218522794746514755023645213022045838277403871987985332549331602091384466086217519269227751564146311384258541149669222334051019140599816181764575087496007037214778248006230750679720958399999337528023734601482906048548757401280478952903947512554832706741264304311454885941815256899503798047976680768476506673704322080658558906897284196104061520136638832275695425139550132403822529200622338228290358861179229571928773867138705581935685959317458741891136790412197691752572554717897078184161539249644137119807843537963038050525759438713601716926673488285724564414575448023220836468701173817013319905198055014626569140030308792883798725943875001038895685601328865323334113149981005631842606544202115054035533162106019267398195861342909405273277621875207168897573262226049119460614571580753744942203158585893412331779511816280158913758763629440765420984440703772700362143536378566680866235945496517344125864164189844611292638824470158585681542045878991085852581775221707355017362399481008675651902611946554749750035210481559279212770124625927957851311815873859649364667677434278760698713095556071594325097370680149981855820188841024598370002786304077442537958032444324369098796714874914246775668453150505921093848949343399929593370062537866363294586387971572459727936377303796363811901685071623144205544990396634301524703196211818364838815641774928954390648738570740158169058327134660420968538163785734886786311325104451878182229347238646233171952809553598306209945499889092907365233941495007757245679601612497753896790225122043105555612598230915305080285889734748358718279403993740483794166513732927664994526244774474956107770395264087916912498305343993052956037992292513342259131447691555952071761905494826269661351257657450240181217545102252808527724911999576904849321488783957683808019548232970325501897813557489466907207619087073636907893073984501252294984778418765590906660831464407496829027873799692016568351763896187091671014573459023317523518234958562030409762246296982234180019278741850756891781540781421638712994634953510520938262967729776155236225440616523764541967601450462832435501124014230563473071761712056167929440367369444417072394913338862565359111075609689423435451509538748431658479778531674448171510740855677467002313403482849596629887500284510476513885643367115951482657011097502066621416510350265580986789912482424947748173338371631023367756821737845406304831574661729102231341159845851050633096683711575753203404866711663877983966649583924872033521798151145993958738051881066637499551977426169230464092242085777318908488474017396208693480888356557674827414953476582395050748537623236630325755160945364365327933599376770262008144675958406512726724108020491698985394341716858589341340014544013902800766781439944453710893615452079213976994252942975914505733013530280419411989569156867660702906593260214759457731696456588069717898329191705534168749856693662827790390940265424938597964474485420861154227672607010540063763936725459795677190554393217879370523834420760069726971233720325090559805662875752069404277165156144671717980781504558240668336301099255266962902055760350975018632262768696508227388721149947623349801685820630433780030046600125425584125842597165546736403667742087069047116004736598355083878739798415099752034774294481030404507273092263648913010285290776907407443232078985288660026948200204656474271682155929964054085943409742553841999641748492731443098893896296378759629026019503105443592513755546117016471637916027293925648168640971571746113637877258930447924266876196790154654816578052587452441930856841643448329732281116440147783990801615317179549202581283503953459261049858433061280784493249800634481369348651227987197811854853035551088337686955021404198334208978721786385715430448038374164593659964734712651453816463538860637901001648580352764488615285238663590285127028717895579953661391183726566057106824200397922031593551704930412634193892107763595172982310487440045249178660802030049610686029177827098726578502634716666529988620662160748312897225340549581217651428898727065385342703631182748000453653443432703027221095554261083628565047034749986549285871570494473188360808838836778433814400837848205632826066171992919368826032776063837493360672622828981022871315863342743122851172184952737292002541309148256290737030285852408545060531324655482295479870860899855678375261561307968777202342266953601490502439078161928115351984990482044419097478266003754694423041339179902306664525328333126271003041092419437887960827108522166998253175294175311654269872189538245605964232981905243965180056325686277263658910081263770070255113174486346800627225915230685580848123061925775628716534854070593403951003839133012535445483662862774415537016716139351634984593435104468283784743103438615845986995991789918547387410668842396036874299295458034501241650867411792499830739669101369966480793278053756700658242208208896423009257714011169046932263089314108860375509743613101760403643678755115804645478343690602630746667379955165558409098374822414618477972455616701442502649757679647155507397608065499450377745810449281487757767237198570735035755877790944778688850898746803270886380261979962830006028615770005031374971329288442877322342986104008180015555459067212731556543096684101907811976582616592775917103818275005201337016077969694939583794485430693484974419090051130366685355671949393466827727607502936523728782184299956261930701754186182643596824182982719856734246721901969732331913871384025859002719584427285356239399458659209592651543902482646147325051852915611685567909325170836444332692649577451160027388802860192812310106461552432307924100310274309021900554181767363787882156095012114430556395271944031059132591057245003939759865052464907819262142436691602112311129401486843416132385126100384447650242351815279185099366066775079824908733497045240807407362538220761634383218202262282290050606990962654302413317067187634913157726554797157558170886989468618440830266045320467229710879250456270977620170111950250665156383182644353306941754859556677341403912975305821570110130688031848374302917882688760293160992831838952857039212906519180171370228175606500457292703950031296395601642483764362948866389662850623760725376854782968095896605291223119112741596281424887601824542294392454372718435560832195861826148503065048147656151499623602051449069251937487856638117233464284212099943840946117472195081375584965018483336883109708094822345302712834277129577494999466559551044092471642460625166029011157325283894012543430721648376849149094844915720938448195919291965592762105007181734945760620044706305233215586687598599946505040531184364595273079650496876864943382969219890711138095614473939448426415402167373050660415489309133755144394082776023662318485530390116186102495803655054844508706131500443832609922080083455651310450276028264947057669349187001322244492205534011885445379907531046378285451888815856453382234476825708147186616613291422787334512556763765989221147928401486676358690579067061051578569900579317955746571579570842916900865407711167325675479139920179068768811595099565071928008529987485920283168956133199304878760822357951809169167339210937388023363416076750533432677100218223499015250698839803998211243122559870539270413524017936278333653835830971778124845995130155098009327751124868475588440274319020682231272171148221108837771990809517817209127321616616165085622308829138666348950609182655663133967335475655694604432994970889469875150535093202604926566860072635906163469816978542448843919702545782845778859556374930453355681660811230378757142791950220867101714386547013535402198516662204732708486065520827528361555278050906436974229477562586036323850907923552450620678295661814738049320558310396709511091236322594518036721460771040558760403939874559289910044206602057511146188794291327239967439687851657669312470094538912186737911998879009866720539106687345906115228355943687327686315014080925562119084016708677062234787718566869725524780899099183549646742260478740796543905031610265812104627231060389977448966878150824099080729385574590877485832280344653630038898934783965221348288634370687088359417186749740300773769372173981814705913060704481989621901005777649744430708963056524866916333041868014523358830078930379212965983849562352014019485709660095335276439651799497231997988472589777235845451293638525455037496175641319311212739073311417153354662770416134687402708040484594318324888615867149027280541946372999680651478529741750806797566409761006499811116448682012559758858754840889933943475643898501777438987839914810114325352292996974734512689820638315642181958096932030883255918472378381813724980039566444519200541040828232942645109689429097099502664652556851002120261960322123724403559527119441266073043302794106732345851609059493388335605038989742403341723267730189495143243254206665725134574440819018415852811960300390143402440478529772058304094856738435625845002055681439022441107071921130951953950812265906616115645090575083460818773464240914352654652627832946479501513780311408315687664916112640913656018674491009104765137032508841309853988660365307307872946274221613755159816885769160303660622813784261283494768947974334484727547946670921836077738468842944115962165368337155900295269134517367505071369297788136445253069393638613645845176988782664241370740342224290673048087376650046853182973862984246007357310707912968965898372809600726860147660433705091262635467295262827117250118711582945939386980877125917402139566216970989408405411978802894858250652509833609161704744464633722041167067583178181556700958848459383375709879236700227268373111884106049797554796660164960482408456182961416854285706864994787117173428628664898106500439430170192160309087247842375571284209959093655139383709514812466771406049433479922922333079812440629027685208461771223225316100928252324461845406228623478728666972450658959325724090967009497628488468434844802772597949673577789469490617513649508919706161045024378652589733092216947757614946476629420441666502957885581704945023608974222087215485688743087758697491025781402578655951242648955966370588690742076013324830308786051724767959416718443423723146550984888788888176095542279942667579199331878424561804945558445093762313527628006322360340996112934041683944340838216499393747072601277794425073046185367403902462058957883280987982342366940781059458452399626915956301139114146682767615973644757771153400097291322682119023329720694690068328169842983923088757255639350436749036572496316723115115001058083495398389340679176260038357277768236348958407534559633462893844614591734972973004319930698766458615228068262736633904970480547163154404257290972023856553689193000012338943407857347483823563345929507335449597879030574605162776211452701576129991991167982564191850892803100025137627605811613177165146678952540045957391680201553010986933835868945795232258828256235380045087397765738583386108797864645519169481245628865520442860727198653528257583996929003570560292734078769225246016193893808049325632583341744110135726920125960211079764313655004225826879616873611861071348054854126465807926004172936474464352728290395204247482277899530334426760490564730400199167601315336545347046940229645869177560993977113589986377523154002150347882715963033056252648110578990078113319535619020523147642986191798419556537253188978448403392683335605674263633397408755746638739455187970563345624159990118988806792429713307161973151995229636733292496609285184444481032360092223313579542692605065023186817942316219353624702840043511905858276080960733814641584036130048664304322275206193037683784369076611463910249282618776836459096983691853139435395093730494023653112049672784636693400668897770975124551447389208086637498265747384604098448183732690975032626611564636582827015951063292047265309485703118981464154445432759819798850988830490462644037048513857709187813318828600204364134806131893612964097976115481330305684378862613494489168684477511086709666720237162632232066909043416775822346200469052493079757874526151471224771963402890667108245822080736260234744221557916607010676385530029188462409297152289935237561116290744771924322214018873013063356879423177960530868222222022053032710250690810103028182830072919613483024163996954063478719192124715484133447551717476565020699691630987808804902848526782405061583198266315260717868377133063599665052117630013552689778841560250549392244815281410388993959870079477342966745080040311532402909601093436610485377994397349867812597078529218977317294664428556366984502492596805758706215708950242958648466229363577486796689905820938408314075913773900512043952908656603741393998452000159648977023742772346000251735539550550379450084898488007099668047444106284428032756615156476602592125839900414661266814151392354774632300951533729210737159139868429964676469553086357539364028033442333465153338072412373004117052550764210323916381631884910433305053355996846979318487208770345219766120094051825389932293484484504158476239766051500912118385192893118651474974375687063279018204456783628911013879155312297999461308962429676558869032285759921309489330719723942020820828991031118607396777745327728113623520058608388890712082853490042069181013732277342846651811855532804147699931082478709800634920663269082203038667817075332834437707331067643856857844833888717125315841920736518880771775771312319205744643610025118980707851190183773562745801281843336533015084543031604163813336478829456075963478420937475084147996177112513856020708717715914109229735246402449534515380182348407488925406699961084083036685943292163290074261581585304069178319481759971902273583236027099151917460587615463986260927704148641693800356889132755447948628315529437168871046488571087594246339626016855301154322132772840104662171469232316195243958754793699529724566563953506169981370426860832482929649939115031539319565188230532787577969237316226916274377128152426293032794388306219094304178591847766337020425948903105313188831090566975474660165346921482567076217417947766249437673921888695894410500082591574089267583870141384016576155648652449698830121914707892712357371683740387766515229217198677870340451351198494216134301583917167259986998797404971259191126634762566810828338042582639255476048983957986139260862736824369116189529694100451864004584672449825672061436733920730282397462512430803392968223568514688480778023555314900327439428057450544100317851014555847427178976965423946463268626877649232821765045378839561858089171243875597894030991851767688888068889744870857427022009554662793015572613586712946695714544470150728875821191376809679103288158764512066416771591550193441266707715709559820515275128507528050673729453946366846559551178055267689693193001480038286427260582651260406632329891711969941713813738902876858563909777595622547787508137883285708872214433576790382803051940748923080596824801290032990573399190049731000474487513455428742800159924437723878698237076663593217211630764912985591405231253841211387806804040822985775720277555943890404898861566689566039296352952709438790655325439932209169288477510181317347661945935099412808462183672291270137070538298322436608263191911488747088261367980051384963378359453922495812411370408093359582868579916589818356941384996889814207133260024694483027123576833482316168552298112966083992963490578654587293093695762561572910913411889385854625243478614391246030025855355990866855430988892935105484354442953529039943635233795134595574387877991022058909369657793106601120577002858095749490610830157650783551147828155813756041292932044422896954510098999968842591121588745603215071314880018902778892444814281932282124844148532492641172157161320493035332210758104747587448691153284364081339718722150473711209664751737813881617488185770302003166875342176810966823425211054461373074167765889859167516961738601786698724124139275727041920979714924015643179359964233614297998262748096325502552571599685141381813810378962579278185130056413533701328704643178808717348451205469896128778259515687062921122534499632940015576923387767989838883661397435228267205673716068490223405446931749740594884940301652539873346080511368255313142236892365481278427769877847722444612090851747463913408586235857423415424544128377416010135122375255113897262360755168545169612097506461961842145598557845411592530453335655566096152960057331965161531521930337606637331719628564306310561522209819533120378756917865426399684230551288416362935780378709665175254375657141042828368361746247533191062260880438273522216226715828674033158883837932498299111599487201310270795753343364592266153114037670294985469805955908122857910448909520920595873102960307589080767027042473732941993990709340099295008075601035087751110387238517315992308965422153979307010914631971474650249427260466847484132889426019250108821469663629713960509253287169601020047035445423451721874408869406999860819728056527548620497749238443674027320212087310775342557693628768507571568410151398646093787358946088834300614564147775813314522762030421570365867345893695145405704234855176577118498469430426077655449933079436577995909937576633403679193402316276991921400170793911401305361023329930310711644968078976858552396722069761867308902772483958444847041616491938843693864998849442632172678857383952309318428039424878961978343077127859865830678636825143503081687504993162101498394807868031684761816056902881209628823430154286088454986668847974937239833199751019246959953512507951404379957203173023347968262985923414443834300465520170262141462737666245415712425691780874583985595678591207286585529503001496181017611717631499513591839889068002300056189059339864349716691132133439673320850390648019525601187252933920813133877512192261083357006376136431467687981512169292733507048796925525056023470738466036343487636104771553314372465706003170742250639706903762703997238247071165946250498893512425999888125658179422477963420324179859857858414438682606698105446937911630418385779219983903000556826195034443448763489734205671526976135827565964707720803331815289449603499704295513175224362198555287606913570511867232215848745085123020180509374848037600008713711135174114664234271408019580609289458766267713525117013207720937452713435378820534274513596513665312274322825656972931787691430006214460817040246945952344131057918408182908943802977148980718035190869840407142421429832658739567199872440224585939449332953150299524774027294201229063909815121402192964120058002841442865213662605175337952307156419594687908716931425605744761523245265887459069360340735421507395666248150289575226809967470207162779735677470701144113924098130598068048872326185089713050787783891769050825432681880684634830493599763153696147334545001260730454112408952400817978950623516414438941899634942153360748840128471598852293990588130252168246484388877805214811646232719088900689707709420892688422689842933056863597595578631890098710198044492553464955317288276544445452759758082556479291399295229820707983205565704344757733434363768262939865576430838021503651095596712307837758071661262314452340801464711733014365049363523679677387660334362051615952478148524032147032774793799708956970443176806466259306821794685353994026276154167834956343440998170230646036953111018994516744955529667778378005392261954541687563301233257744038105799343732116862129470730523288534536744618619556497004188905278913118800202954414619567498055528337206334766023466053993918380601867420593417973046263877674952252423453728050599300003342143898765141239243049387309937624441243488562041791586520656478576543995574788178177153007220402493447880493113711252923598132927587430572314165975059507031620494181839938500391590417005583443841669670155531878562212074184880910228248865357067065171730621655705047827303613753715060526467358156886573857914055340076743995916091239073773274038068407679658511904896819763440531805856550298700392479585970670607966051556155991572535426391205394732343664942043608810444199534734895934858330279169816662085552996438730358432435762403463074437360718912382778000637425754104717046142735557058742125918546335757648178205678300245713959837942431049978721082473183674827464151801486893129301661100256361737204084603896866321798568393075907344564934404372346155874324173393313896053399365861700496345813507335617920360677638835186724680188510864122869609955279519136938350767218879453089517773684268263863569377493865131160733948976914850132081495263498900091294268155656413456410095845914162871405016505635048478360389228082480392236912188819948300779917154762340488724058498895365561148256156902164292329846782927295170598531434055629786508498001610476023931654347774215770346616489877761356639129594370544651414155178389601089731675746666524449705711462656630119732452645977452817113928570256309792060241800926246907056332345167627347910452784512346428102704981359760979660519513336580018871788070471078180964733104698892966122906895402282667237270709196924873715905342803912376071293340652438173135432202283007809444763817072412481278915449461005705044055602125403026493246601639187283873302461867411732098168692467072419597877701719570433425947624648735863093567800306765455948281711871598421276199552534567928014080089467272180064582890862514702977191081771294395773838458365136657714796757962870050072585310356242814078144412215024852326497404206700131547583597593713504149501834515148662349780376233061770076372634248058703147743472486767945837199941470070135342368082077430863269498301520300030948501691388914326651488563033905258685081777353675548216834228114095133977336319082179229379107947466961350272033447677000755777896312220725196499502992794087642604756922331513635511295977241070250860620995924628629281686661316158660573135791348184663342565762844424114029897564111567251183533647107402730305043873786049488752804537282852429429358637511764684826779860556642145710372639484026926582059392613780633740741772392956658422606366634252901319097755278892116694454850765250242495170698370232695798576279493599060839989181078987013305413829721220948811568362628156358789274520420490484354308840492038470258728664155542946630131512380609324958336042775196788575167320591577188461188601603671725258005818239537001695769558330251492723739223891839020141458122305226541261653619264718199233462221982989717582739471057228237859082484808899743321666472921747047376660883108495569951475667864694375645559195149580666690427238563571594993877532842340007898263155286241914023104400548398255651098563399732187608329810105785651382253717217590514782809455835493322234587048353066316270392254205037953609681941289283679116180525119513807973313607171890373534541896108621226240592392645064318758555156130464057115005910045254226768780991650380769960628712416273838671169348717175648392149135011347164249096242565043412367693160722275863076802164359737970191098385447190499458697886597377087528521176996918351706066887031347538912631620531224632865761497704441711365228719429856911188798025001216377228533178604826373748860964407908258506115479155243707858822269448215875657191849808367838707711262336495015978200579837582091588093935977873853415692521833200347492922640763716980310672088457877157924764652831193176407517251684604977216246521820393176365950638615466692846326849857022947350130868552263130876575777920343447036680048793062152085503786684675342924742955853120749550952430284044378574087897001278778213844234523069899365159780852790794750248524019651493356542841459655853111386065754545954581400468409596038859807487208402533978548622891721976886119662022245123658920683693434425981187315850802827261163571991946245317974387232888007764944192322683306373319399308742867959029536341797305167721096284301643354840365772675782880733555393754173971877773319429255226721382800745101346189335111831638292601191419845818547931768285274592707716866619553406758815716606155767210231553265552600509534302066832513602596850569257528697597464404967357092925300753443962426946651425684112273750353617065516622704981444417737222172438637009285541292022842384273465777806108679836616392905916310163144065799020351652460739304314368582985898623737485072111907332728380382768246154488606898194357428844939522019221383495493459723347277044770382567351045678841816742427255243346184394137544522765636741803063348947464510162113835773339926006162201135237556500796737189284290292189104287451074077496934132729537866184748790934994406500037927685402415586220398312755557497930530400251270154443392741811035766244698660134001470005084114249003336688779429844420933043497962102436274675196159068741837354890477721500399340108129812644025155275909407056860236443326136915474185458094263126306721099224567126717051886006435546235839665632865039536580345578310012457435784890709753335684461657037287612680319269842265340780154617332468148746497838565720122916809099495329446074547402140182568420298534028373535371377759156362613993808822337577100886951148256658523134317112332330038455120022548364281312317039266813806920740900205585564822522391633296098858778291165981390003241783777304785380440513662477673241380825505330393337583327842312621271690712030452683437705428395255294152894911550659746288318095001634701362621714249256957426854435322676633694601981163822759166026815142688079592588860395699261254414232863172633145378565212073919014850000224767547356003320580876241449348102916463054702834662583429799192154294384840036511297880400991196881045701294459303294157563375019360731484349395494912855969438254199253750587933776404561465285770086268003230257800039675444658392743059136666042692474021955941458816910896080245437591860056811852869403741641673927496293376193157576599516899060080031683662566362183602278579118776072826970016442862771838690569797348796547634863051298807177313392905288889193436134891168821735704521687015806212785785359134997213449349156558180877976744667783496647842355411772796311910612111149870322992715861172715625196785121627841219296701788917435333935101912181235813248090537479989355256292677888854357519791909463534532500928446030982756106966848518093589837468922592934045761970236995445471372804329687543413195843169053672621709335106793626042706737657612481370779158048276538781417793639188031868234343868596931938463865229843130505433169490967762305636593174044726127890127899985176640738737101865556519337536526942409162124818390462855131844319960176438825815913300013158895009049778409229778282349393117308451480310662127139304207362906196219272738511266222241736787005855520906935761339339408107033923491998592421386482677051242921720677164133471212289260674358965579138501086967998553167852064450453031206238576728847505192907387579063363660085790346892014673661017787923962188259497800767861879344187083729746777737268251942838460644986935089073513438012525199536045724278564887745656115616015319812168234435832757383680184140566118251660084598031350228148437653966466028303049573255957007014966405815282117880620311660462542875549061337313225773556291134764407761702945715910980463240590051004771681514418720672385281409507229352109940091669825044887218057523324989535994268011017161107342853745777969305984448594123767577177087658178070493918780436865580229329278689367895902452020961422937134392673163671434897697753384238822828904174129552624587228761603458644330405966922256264015818823946063828635790978909656844835885168751324708160061271662322648452807153985958015119891236336783182830067313652660003496309317724297989926554927439737446995782932803538707097721809867739639788331097463733336373617912201064591015503244632193022384488034137594095023369681953570514303657253823527780849788284468791630047157582152949143360028486922274909127566070853708546017033397376760909927497439097295879591585235190252409037118604713131048811852328825445941173586141627053072845825038770669499110455597894572166342801018841608216316584948653884876548879685767218740507405444889967151136491015317892175978197000138582524076549768352503996547929809858432215102020798667542189374210173982602943174432467308890825024463959909176077178319048438110407727545642728229757686581228196944293267874217582729805544713389383400872881466931111885902128445607012511208457795403314989927467871716986414049215090552984514951747001448746144922176839277338367728918993708631758243987304170294862540669272180983124780308735601655480126175879367816949842324222910375067795288567103685472130423884389914708018373364075516124563622800457244345234097621938543311379279280273327760336857385722602873751400210174556159931769759361856524492529531856492722238092241330610585455482578779246535501491151497861328557005639601324487800678783627228439360540785852673730342789779657736384158656767919742523208154328340499520162405593238968410563630523361636883047145542088369431586139476330394456416383458623429250527379922672263899269928042019676434415976330543181376923035462291300870638607116129374208132099883706087601127090362906734625786585054745953393647221475183249156212027371128221772140778090243745852310175981970475031206637696882983371161277193073537877693883814334636488690449654199950880272967259571289230251577775832681165127962436557440839261702104972982144374463410211287661192820488519754328053062736022839368214697303264980455479733333225599234754196492699079582901595350493994240434558293694645979708304031122386703768648234305962985921183775032711233030425722285317695799834001591933150642738987098913999911451018793005385796963979939647585237482668135287008594225931135524676330897922279703199618015139863955073956530290152097933982383352125003157623810633844749074603768569266592861968637849794395608629548968834689568787247963094613788461624817154784610472677428747546036084792783312674596448232934809796180470552123254979127315604215069432502530913027343584101220461889281222678983582929332835581729076122122283344860536958528405635301205418814783819283694596397762216155930515681444418638539643129860811185396666186609389585321434335386698273445326292333208284248384211020444947454012605118213154934664703367432923687476056914940583015136023036983305406199047743503760368661789730136450892699045737058109811973292106620775554943679108752921588951386731677633141078928910281298931001509852489297649179853459091342044430900154752239977055447321960010105253331249412599009613423670227277086631814239291997368338587391094727478643556736602717783397489088581126737568616592655714985169872987877177889729809276260633922205058503619127177305980742288329480057030466864429237934889100159874315614471176532961432255566365077574373557439998631882277496528897452917049668687299259982156158517795425121706155844057014219690005491540963027330545288793685076383985441201031404484763641794029997188009444158748904360739323508207217072837075871821724787664727703179546471159932524543465962843597252667340904190574277670522377712875443560134764984736450075982029826077590956179430813897385918116189406652222045136395532125158107523102633571369820927606317824063281210196782937509961817532086419598554993591397732862993315027282171422325801510454117963184884420649237555522589642929778792308159478807650511098621827351329236723354792510944525592189735360988904028496377984487724204307701630364724248934936536190195521215486557229491361613552565041949504755884376390900461498752652847758836652243039891286656877692487099610955313023227748248081905672567045319908609557647524737055423934002707620372568281338816155263640541536868275255643169668710286790419786689563921266467231266535940328577037567076699817527540550171062557947518688361326856431233237454142792412458700166752301679036461444781757362677036607250402099986889263369872966423710533745151696197144223142065148750915599458760925049914884142095528156319638382746670315159189285353763056976463530881608067856393754161896610543781651941672749476635482845719421429613824251282704044144403603986882169631652844838364401064138564118294674073029520169422446582997370328527089779808896047945794426822396481384119228277749145574682743890629374307820582438928192073133790048683474787525205121059225216326776076159467093872741339101514836440070421461471329993786965251267940039447322688386778170343388227570930329302799666248431798015146542372592137214434972049388944893275134555453469703935798938397809911385458706214356877699844046349218238638345442967105798753882267024086455386120131954792320028851727605512399975098685682144530086268947652914063716005177322332184292530457562491688903237862907865560384256443529521443911082387994417777153134779328261603423238515796625852524836359511159388206608898904111142295090418090849037386129296361575236495244916790644163966662638718964649505122625228989605987519130287467333954627417404075883445417535214430932984919012923777274932113901385589946492104484767462518129167383160510779104160677373183179178645261952415581857076199741204921500514624241561016381181715636439277438096078673652007312477776764303157766547525341029822700854013093511025043093126779280582865013052638275194054225712285079569935675828389990487575738920498517086474110137837313060892530173027878361554594937512662136875854760879650617886056911475408094722737027244639895127187219596516936416820028897502552846961358499428776304361597083559224130596889465963675190195760938134958970039717018898419846902032478016633795144254012952582858469351806589734911333289084475711340803015889825838852110199558154947616691737568950954768737197875786962436479644801714010343301458932201863356231194987204999059062032861409997951259958596160551330114860688499014187705520409972558005008367742660384774990933961886479445305706384070713682378542946543949133836064312467793644882191650004761350128071720476533235480299482016209964083745218210046352269239220506303395413514703498673358264439893704739054357103289942039914521289768331714899957467187241773073365965774692823257619167388422413356145050170420740529221019485756055611506593959114412901800346059262013527522827149440908012356726673428442112164794841947194357667925413567252583694790901462615024081177599830628299399226310766935146766357768634507868206588978925485405736216424630215793524019447048851079718371063805489797658434216185918472547274650582117225825597804284347011266236326904475928618229067802976168573465015016909000358477141365143390110563224606399789669793341194412381262121665963609705637712599200683252988110020963747372673721463262531959386041066352873795809191479482295157826835331577130979520266448541017395888183668906590553910526469582181603540487079558870533423246694890935456146716632578434999848747286412986784619984167678319651126444027908843294066462057898888718919275861861687575080693333332355133938535299353476086121926880299345281506085271357161912716031878534829321581193961710292955153234936647727347352857720736053500656744560050505106212008000517201574808870944689250971610676468484545753160415391299992288843677116306468430817458719175239874971159528984833568389050542734612604322891335521836469286561690949571560981760637587317924022898112719463181407732740812566796024307473061868205813669962308902838064158656587657054025371526453344129385558018303731419257195909414329026887623400409663510745777894272777372333317343290138135442152884631007532193788851283129503179678060450405586060844244967141642740224104507826874684822393905087336087879547117118344105337365660581425231950125622674771838205307146216905026303817670214272889167284314060006211003548632978157086343753172325309460822203074027882267158612126073666349945479930701159071954463280976354184617437677543347359238302945743429810192144443190018391826722777353586853283190577427650792592233819446277006727417785474046553388226908097346038172146891627396054244153949194606541178426109089100592777359237105664572159165633425501207410872499970952156285630905098206077488918475476536156878819446635201087577036013661449261670252734949692481643244016306401562728378743960993114943425720797692817129344446564298215256207283596870513308374623670044292782773877781450656228055776246647678392769956869973305268040037203910482017039730929062036710207834116103581848726705332115331281350550310747866698719663175634606121807731793595046542477385852496167432851111179801686244816062534183546473351111977351177150431638496380704399722457727997391144712858737089676392329687544486082884004574596137054014269469255274926682255887962692154618511388707783745061212501478523380897677241651011129598218004674259044454384485568054672796704813593149848639071868000193728791826177105541190366744949506343983878208116118884234634684709481209108186709672499062781326404662143148378366142792255512098502597161653053720420763497176178977678906927668864375805306808322612816026686752096794792982085404209946773780752132443794741486358480121534542260353269190142057081662829584974898458318001803411006794776060608843428721460555935216642246609583226778475300920301306815158655309347355598644480011118188814928157014134289194005417534619147879110874103988689178532873800158370616314051716177111593729025134228961847087344380189537021677071099301147092322299828615409466267304252696377246605815253145121334695708687431747419408558978415027823317590545083948181195234938557887703482930047692717073019020911722644707532370016264281322235569295843379316787202313628169362466756531962052118733144201555470830957261545534979266679421833934330194914246057696704910454061102390075661052050170600909361762157064978001566530479700148512577104618809686943951650972910533613657502924078262155304027150565704348323966064503015804983898953810226913375301736647753977590781873095669502686281360408810823652399403211973339740468669245282330182578469324469606550833254273892264899928832721477440264645546659141745448334062321924602085351506620539767920750138563210080483064507236831896275118279522749979059583981184529781069286744576935383998427386836199025141173037086758349764012301758126723367044197397529086327511403330948488668993544491871801103356307354885196243599431738126719472380836029748770329799225265342053267594527675031031128798887704037644456131957277213858144147659037736056673281112332024472849862764316252548439836778614986671069116511262168706908251973658594489865262016191097530243413437574077276403623824017885902182805497276807888762070386708403979252182453281159340372550457530037427569321593483588447420413702604496326629008607145256444658775123396503967589674674862455367774950888047268670742440455031448040290365883535011549649424070668366081790485734018552417842600314379698207079800487615433402675906367953239542396662505195982381162116077996177502652529384638507234766036143160207222391748028900477680383310241673145410474325189951716282926947109544829843077452054274454945826952056888505001210770543526527603055892468573997095038840522388433120431626265425080043621044584281807636278373837900019019617947503356124822797422638427592019799624410887087160756394987229288973579665229521701701376854756683640841823940306795748003544536735556123667159404808578103089616379139693837480832934247143695401617083689674698778392350602834371593909845376754134394761064036418445187811564772063439460617877606733687896061659274935731633750438343464533559840866348771609536958864770280579597465642726976194181097627858013118325325115496712467236819802720607975655084965681558450446265468485006473976375578696238563196540957166039095187270531921780765266223268733597313331668066977150246941713726886199697651772130538252263030718891094273507624622246984589115684292170536699781668741990174572074858457686026046281330109318007092180614896371978316041413717850951539794614009235415707039898191011513563737255525806525493431556896723705849334535404482224269487586917595244391712540538945359893966556440381802893173573712721800218368056267261389752250673217959949308735282468031279102949040860984498872384862344221826757698686171509404313069475868804123973089211733433994161957717664942526620841592610116940456565529486722265294706320909443481258275046687810693000699507117377553947537718746132033041729679685571212220558117189209838512989461664139107228874999691257732415670496499508169123130878902482201578636906858439486827222614911053626600818497512237680316436806754510907225081903546362918663877101706361295873816964423899288867859872607036823121333362332635119843975618119332018239547463213093492427958825126379887815054063316426757412513564085974823119532696341742260259661615804796701182217372658019007552192021029967853963061872028871319804259113208540140590642563981203742856020413009602801852404138285852495936656634270320110120680914435007408821564895794619215703595843320931186803061532536104868331927702002082342421237090369366582751869734386930985833752851693710963808432478170188475700199076105753041785886643929275216225297379594252049793241893550421793820687083393127803356661548427981785859595971079917871307113658676744908447217002116800264552915665991656760151011286307294522160674483210736667172873715894134961269095672456668637428378867619164582364496455944432860652014433147847187364463160769839006289927833684668550026070145940245413800398939696168255751256492711301589372699333793028804221906248286775838472770631644124147107006032972603046593407319942194366971210841052895613205948694670956514597177683890578990887832658381432494387249179143321201782971994382363075526179288245167452402839525122437246296510333892412783396547607323940067783030223171436783302398818287154274426443586846257521961468352736104802539335231629458354636225773636791490920139208450770133149470871071295978901662094141995073269394527639641549857103927914394483217485142197357857566595543224982913190692390983275790879433201252979257203259700418384268036777005592517044312714755553117072649565260483681033282376204526265333979553432271477996897379529291950938189447816240409646669360699013302788108147625322249700520010047607496654032487417337481354817574407116256717523838055309005670389072505262601535363226011167518448665704376427227602139024023202397380791589881823264298288865942268106649462898723022512634717112354903752948853800433578789819685706192710165376602439466103056982971470934795010188101215140857792408345153379435375295756034190450624884638759205837935329776894002678566737892524124017980665130740535926815162643422853530153253704596496438117009521912351847122364655603911248160641439416017221425827735246196138148942868908912589853840235903165659015978493139942594062891383470687435577452201782988088401025777264699405125048709336180271137587521803870092212906384081751539930174259228174585706132169710495587998279247707230990635337373419446148859798062126398373852043524501815997314884613412888828053367671170003144260942187433551697023628789215183456720171714730256432192753085426309328298375506672288574268013191177900585111740568401395950875121445418572959678851009712677904318303369027411436135337115729787977478505383551461296971511934536356755517308428941301740446758279365395722501110616552512425457095506113434680497874598971434136879300773893098580368067655470823218781468944947361944834646236978825124495627035906153494431725904445892891842843317450143113153537472261995025915228181785706203324636404031687677607243226113855798237326422725033194185287108765852123759951107443360010530962018331391427707962893711408567603082909050776361814887048894488201097779579295075532184821302242605231738640069459404289634891110042922723274156319663712299059642716747615183106566134842830226977864311076218163544808056562839888284503709750894357213642583636486065012483404484445963180497750058537759406490259868902340252009455452221090260586425649593542620832817536483903266657581613583374840187557248440186765092445725650740134019755901967113298348986134193486095192073904047051923178224717660225105018677583043893042394866058893460859376206237641112491802088765498785054106469941193260700940986257688382029695408828094707091306365103768650902124657691233465550039351053454426456524994660563183777267955849381494958764382519884263756157443629060830441771544036932302174427272215574760837630736177603782766682976567032622902043059990037587980968070283677153927055485152016448996868062537699207418084002677232234817644828261827537459811179890320378456778483321725431409174898776219707313629054975030660178508400746224479883215557280703279950866005863422994480256774309966539545120169897531927257460730004344071047718714848458063154698897264493623273452613850372128787612844859011467733084629613831096262104000077324707857063683668171691110157725083369008002046738460092666814493238589367220044201827676465311465135442060948633627985513350961911654700082391204528200275768519121780114144226876124915066782948511745876761843968520863181817620419252114494514113214136715194399582992009796518356741894119948281906518630173657783596571137648876798035819360507884486026945539034348095484222058011489803633873423853028052388153054062435044763559399820594318679642812542684836641851393308280326536616173254716722312641866438744664594279448589356265114683397636917171221795939841416946048577852160705210386333529175406486083946727155407574350943670386404681566465262558500179375839614924875854173999982557347040376719402958794632481093556440785837701032976068899092139598043491566698345144248785972568315810125977707790023847385173329241957869354830227694314021480536276261245374747292846471606602027477837494616430925894336128456875550662185908749100648784931878346403684247722760738782372004928770697233518312204401896520930207083705341540513722645199469497735635584313841620106561363769441205722232891604593485234764684794647809883369750792760479926670940717449953854813873345001569500142217274692072469621253150529727736385463190935692522753174844465110634771125817251219891700426327628054227526232978150776640379397804904803924871716761306867742942291404134858038503101769659115688101032052173610395734441000045401361065779418737951598995558553689813143256371586689503924205297095118656595815978161700908326005680259562488959891712506501717930893084971338414616097841538850077923480542874567117387408347537215624893677071682960398041059463057464809496443549658109955920891917864404956572042296644258632771893604378788187901502059236851541014478480681712714553147556052945547082021890071239539281370104950994195916919645819323529140750427636932220527114065151459641144164381777448877827010614755241567895093184290298315748840078248168057722652729437658375328829538214871263143686158956215622075826893874178295716661529732517116906654053434553542207528002548765642759775320443814227845875225034682697042422426683484683495483580122307056594587299298404853996104861093100975292191067838148864677493639408094690496601690836977019620630834775391398931244441210243546955628919286026227916244440632665456617080365660919913318991589244926703928621057887983438039393868656887568936177230608170069467941146843396950503897119457443296448048452866632357687603164936607917215018622400020425212734490918175256208279962251637750561022874236453191171249823275433105210608717932911375873841030553732643948641261327291785683169774165117817314264075003480668402168810610645772746826761042608691038701108311685056135188316177650589359440759944116715366587560432123911113460297420033247016000743379302947193382203557730348375440018458858774149163734390119279777636636700091385996422321275009570354267466504855613360213424054088229788655721983787148147216581085214386486539077136428649016457886335056839537110369443723365776878706448150360268726988601033618517296369806427601953587698988566764497041538259461890647696228143589036166116157042598807798223951464565821005496398526284695474334576019407450417446631396995633147741448490804713602532855994573890753273291663342213348127047009806789120319288533239139167005782620048573245125186941045580732025131077684074080855302269124766773350994092276311703415194597476612471653188795614935616884788169761108403535433836937327777651688514870593986446844574449998738533818739297505236665127298363574555471924932594184896759730006185972211474563953402303078750508389671777023270551935153869096193023350827883914362418454210712760550468959338350786196686702751278959555124100193165197604238431514870379176969416094945654097607798150671580644955001647987965473345409171937987675341810865063815821214512506647323180364247804642986526300282307204487948969798346156986283752454822134402556129006051798188238007768048134335170058468069446746934712075524734806369424711681260008356124040206984778527376433032507159281299891911970536801150804342300545141294397796105801785598960237611798893443458942053285999468232593728469820489120832940457229404382210816461903689100980849660155695655948205588667119495327635074413839692834944411969812983868401129906352044256895007167288344840421795340813022913740128029493905709107626000953576131955264816844317887050747689354554959004990893350812790594202028049815282917701588806039987220667478487358668236136633740934786489977845063289432274261182698451100479422383869653868739758021764883285877957219507863152068967406807043904408968690726710722793464774824359709161816442507370094754991614902627004655701399741996601599516884340949127316890005484786134912558811802655174482202786438062040574991661524312209373228095469041596559675976855130582930471203193381611694079246412781291698519937941770377526498371441710272870256406926447951558445499334258599737439978134031467346285556331492630578394824857436346392180688164557842525304972959409750903395828124879274496379028186884122009578355742938486422195719314449510986310901440440289930948642587455523652696691126700793244087758181658830230578350600539392466261424563527925830823949592508675125889452714291609776484475853082685132785190358690095230282541467661288780001731539734333517156917416271399839721572357303962493684934532474033592871556521163220186136498434766854790093770641487725307463989087626385073417797586376390613848955488547329989823241161033524694323114469242888582298131272151224032535724608739870341999330136755700442829957987460835384357321058364866265072923253136087655843355353584940762642397992374128564476113199376735742302997781662965789416836706104943492490429837371535223846556081850829471339714327792030155289667795968962057761096046593243290217692788545049714105070804390475887164997054118255665018898020147687958730951017296605166116092237953329400816415076038220731810730949595732786638871134534061932758614431275276743320908178410627794301271520043491996584368169576151142911806138162213835881344961455948496624361702293081907841530930197244868111072304677215809861962993164958341830173812741778096007496684538594547424206607903354183698055950871756484802042891383083499757813211831801682405974314157605212727856073074427128303817704921075540099090892416265896670561614168814630841228827938942856887790250183210720275733693953247684389968638876845221062774644341984818086835661431831522101291504601422145441415708250927846098451956266599634307026998737292227829733530119762043072186090822481061670333469224055682302783287328994557175823041619928138707593718104838489391300725825659977189255367580903633743125435450190571770798718151435544319231380968439469251543442496879889189867955501592819440863587477187617181599185024064944476091037017893739570801330702505678592965316919498048730643708236872992459805710688536831367588576710250280117850186260378395043711029367278122197620206648432130118384766201713617839010056880091923681450703112111348212608356274349514509975479408037939189480993635362940031192706820001755810551118249575515355374960221457098172110434456383899052896836569329973198499029566346266206963448183547221706219363623826920421442532298692171786196515192103250090364356438020331695102110263566047845369766758682813642552690277782325464604038995640745110760021242165169071472432025879514649754855619247665850896876508552037601864000357071968520851413705590765445895069217545426010729404206670469234269403235723836851818228380124581982089941688223504815977838121022833333363023910608938208883928709564067868432399616123559663327325071522669172388798668922999011643125444317070475747541736019459560417279491384563362844746896278723386729459971827415172820343603554537674939395216245211321552723630292827148528404077961062530455973370259733416318995133165620229038544920402844955983979636187803116403245309441874051466599942486050343210063638095806907634981728920224891072882327562095438619158831149754161597440280211708475158279716808397815117385844439797862094801887512694811900734166789557505613688502876233110450217807204528486695494682132788375545949451807518253902959264259600836077862263191674340443357749006552671334586720846096025717668547902871539939029146789828894709236176852482511253581956817640269667501440975696234321272144175459639199025621328147342952480704695579192902788622879350956476953848982683861663746969307921433156642360151708230666565529955699799169002349125656935978078968656286552342655191388404731389022302780732370547044306154330601033444914853355055011342973102835426301747473477492327429411008089631180385815525823598911126297970408428408248232052037097269205906761474617301365778429413349476096769891901832596884842272618906550553134450534284895409019088299852780871699015942219111111696064647099230898437868414750048197338859314286403089833945887907415858781015251969876842755152743323939447693368515478460896387305471509168462862029836601416542344541604078691969531300930731705020206614821882076329401483268644871533163250315909319236809424312446085379826879717648875300786831472865148644058203478239179716911606028589141772173143942771260644984237229776743376628317958793360836119704839345435503275488130294779708757630212410238788088296004607939873722487421115147632657556737217267273511828456098478030104884983608320373310939989214400066693333256540209344367652170490570968189820697258185291483255981210894474766810923783453923217463681475914794520240450742090031725733082082325448942986927705451956714501917691632055007687007349838629890318670394322852248920332955136335839188866751523246702713360097533101148075568828925332443553045908164794070689048673182405959173255518439353675648769768558719741659844281984206577253344415889679164282408547358171561763489348343450905959047675325435320728986883344319272608937003991799354950707454006379121620521078897309970668253080475320868179778129398475299101297372206216913594323619171812060346554560190906478722986424933986622424241941589890878126673365480975604746415640010395489575743153378120567498241844489746373537995990691529511919362370108535020646008563345377305929905697688942189085858069585296157574534227331977766409079383690520678202452786786620435843760090828085352487843821034374304392804484055240213388909776379846237886311890816156778893082201886462929375130184982230470792914068506512358472796864452899696250003097101590536408403409478057908135038910369913514726349618745516645773654688074835209861896015132417137580061306610175270286222944179802402770518175231794155066754931185022203204948218558631080387981505655427779233834560533205962309578856869199223068108331290748779740418782630752023244542222410645541406420464193585999954579783259990277911042450801479200558294433217969113743214320142425087039198933033959764972734031820481769895575305692290270067076662058685289699649052615616652043683280703249533084913439577181192972211085944886400520458237328636491705228830228738852564371597701078135144481711950770968150228811398838750860330481852107937702435669557848878274099187391615686260028793849834888480315382058954991008212971301564683314021230609374995699578891641854353751622066938135131360534106212350982167763775449146894366462233320592966841826159217771927223141130734367687170122703589628443743800453565609375862279134891553758518603283235116312595253438382089400633785359423134142554972395262823565658579417594332434164412383183258880464223969190094279055786100946163516093289173391581044200986384085229233062216563187680354410036304712396022597052438959890140221841170987240938725482504256064919306271853581148456235379414278101202155507364503840796014768610001274275183693464929386768897771553363930571705793721552555405055144067489828571991963400297480738722554028402764006064084613789313566989103180040077133681846464558141232859913055289522106424247832343472794015452173104421442692833556716724640655253003934409330000711781919338740780231052836287395836082183988274797250313550534119484614296426576691533954493925049994233388640208976380949586285162751818872214448379768513379308949339821940213799694979385304730179228374635536976260164743030333238045867697735377893815848530935264553935374208845547249513279557243660165007022994702752095080604429297904546625298678869135746394689261954939942063638030167263290611107208284893103869904861860283118196067150049370537948687133192444898027540912786448907876900660390503687355915869849431746128046490184106597567397355681118518483732406531912347374904525740053631475643052911345130340413809773262550760968152804508160057015195457591682873531827514429901659013378682031393210822098081643005029522991974804474259599493540087815286371215329190709622838695659245675196836902365018078010503115809587740427500225228943416558108611774309275436128361164657931605749806678217865764257355124204257737257380137995502156638634889715494153371054539895564423086109780632671844164257674940439321089131163299781679450873429368609338664240218711550903235370627375221624885328993778275963887691818455711570591164246277300028073161769850902339602421491351474592963786308518710768578643493094556550118666378314546572471423513990296188336184641010049606783088148896441165856270649320931029236190307896672611375558537600832136898269160897939890416607933015454567217696580200894348390588339852919661691586068777194475041045592062754246078873058859799379516035532167321480138325154840909123847264985495725115377894298284369483215365386467155740098839663355204458564952764285996226648327572743453623951208799156332495483865308096073086423203300483187953049225060346168314030546594660160712246187032564056738354220318874341197817976231183816303100024160320432273542065485553549373223092719542400235224765940090481671857546327282440160732678421808981890273096151325582652782382536670928625956222931900985352977978438288047454181760669926765120385726250051777574413071096711951452841696698730155773169271080316158448272045372818078632643238758977997387978655319309401060368127666721616003201312152404016648085635563722604532965283530218794757099137873260927176995134423540207344387916714399428296377383520366702296299371346577398253814397298533111946735705529536724827886269060271768612908857001073736936790488107801921495468820631925515825218031872859071450575517894441219780666813301665500061103205203927530542333638662913494492655682412899273013932113481762173104731623854630472316065904451071040852965105664383667151465827957981265410916104167611611092496267191121809310948080731375751106094135702230814897014020378345561799495887207472193430717419560804731080638769591479333640070268495718593856638443742448062467772353488187148910841995279250422056423596161570175999400804709683996716789037395011540937077978807152512527510428632207285981234349125545985167476371999534696370642944820908253720132489084393061210918846843738686071896755120683298122586001683665108738036117835749258685211708146820695982010880127324609118109545639010074211462338407598952422429997379607290543459054616832831732108704410858003877107808623651109059577464748842408637452840405967414817500595475578223769877564447627360700554146564940398093167830426599743311450147933442106875722333806484810873805842641332003510793193556823222762983906141608018174533548089649965481524773171031210807746788899257756078947801548152907277650729594631024875278438831497942256515952304545372878919175283244121079181311111128891678495280729441884170455205535305197950738089907900297392075553659335401219777486835799644000031339163099845379410007051887938814719100938982300606751010022375972353372156073004782302264218791808059685780583450133669604974205069460871595078604528432747235057905162782376322653062306055054111703327031936878260919426847809105278439767704506211978369098628516008263095269586960190334878984977601117606893247813266759753705675107976028899188383276040499822798773595098984325612616963599937335329159379944224958673821294935994804055614809861624511366428900823138792109006391447456707989900588026081776587489587841221232838496229855991818440333165416239110519137629949638582928283056775511346507686697654585025966042665264747534687449094269873686247732408636614236334486262253564530844845050011456968255452110723522299499610936124257474642015822201841192792882524192731621289126181619026763875606239227274315061347941599797740337917369091785187684168616188644877925942903997347285113218920572029542860452675963772944276819521882005273487713894933016669084560362201147786622615707949191900933432998453227654545213912005376859695363716959921769932891971437177979582985528197533318335012625868822633401367990238910481094886339990256052927630747077464926812590333911389977280349793147235171230960222191668499896621593893816062612486391858393611489189396603862094291869021984979110366552128486803904571124783061590160563023058786204998479506487491303277405918723616216185516893301221186437059957322205381755493762627809172275874997602280317436442334665758007431601535961409850182190413859511657783959402449342684547579729237602196165102377378650512061054693268795040946949849219398210803140013449322982591743562217437889085008625915139923170800740991591089334432855303907583715476253844048239810363751487009727207642090936696035855075862513804621788156738870972001423152510003169324947632387488734204068277325597531712372139377729284206761687411755007834983983283060975004754256689781986912426982162836933364371279679544769435657510802494242673141784160735793323957890643319047428739444880370026691181415792497521717549319763643274569863037953115623353833966015580692055183101750357068703581597352545192902753327084889173959315937743033167660262450934085228031797955272711248502760808150394555551307631610408289429401789920810181436286160880845298305431373355911747462092469173192929799066416913258434888034893303815157459160393970976933913772812658636823031646311320933463561221839486197764701112493912917766227655080678933433413351203664752433409644727521521379460219156456270651761690548966444085993727742572860566735639374404405416767641243049805605094253329068526448850753514298355183845285919264905485191937462659434431178475223876035155083000504503536686531877824090142883396023513119634425374816526086698401272717191223126979695717043106375375314755996522737728403800902302651156714286468817198937848760583429004545087481873960634686659775314782330373140568638963441262166742490249777883682809041324108568873887763522263086821442124544559381469430897802203504942168580745631364720960772047274580273721853432263605454049451821927964540267147026511940069687370196802923778321985148650082084786017272189713122181369971271532196826485517007291326431493105237905584561839463183163323429808623800975756390804659151434761244508746627494264743879888104688213684483406031738183231018507425237160051088412714820211798852259598259767920047641615111407614072271109228858631639255885934537867136368744241311768403883320324099547216685051493105974270418687201308248824812613366709664070297995225843120382267693119506969383091549057397632401584392741334760891470679906137291641792368833356247160577113953619385982267638189346242120503526485592207416137539964599364588804075684258661031277616869179674849094207370106796370373466813085056036544730979865987779781392892986271098375352091842356449659040811213726123183865097194917744708646344935157986908450927028214986809878652269431299731902476935136465006674549156931431227371113157814064492776171569096635440055637118778284858364550751327868638286380943121610463443487908800805405075412404872710031188386624273483754512214439273555328200651394257197390155887616302185256344223538037537178196862404542257561693254863155480245248012750255820976000362590682233103351312737832266095627853490000825725554164948473244198522828136641622963913568906261361716313286684654540722354361145506722349988744032873944507034197720410743239848885489089683676966772290364211287851620305642012119870971867094820233389573078993570982433964439408335719613806026429762307704896729189681512868227613689928900943193520287624577503232146433135179542690422381296082108807184007022254796576248943180288797680018393639854011468371792676629795741327369096210434052567494742982133790983241309543294713480935819597054082820032893695383844089020636248801166270725868030465169960681418848018802861886901239922674304571237189459352412018754300052942599082088063291064185162601154271380825960037905766924016769397921680364055127340411882170398366561865022522475501284389093102089000329444044669229564826413251744449999588884449719577768877341108124390447970677412730401374323898858502216558508158457455480724894734630742128358748432131922647130395031097691781641618696084218482382223232304391566818906802541538604834604561991882345941646261222153624796614056643614486276618069504188585222571773803765104936725484595807936612464205126755098613441019479205429800103252768266870316496421770127837589328322033667790361558263079408565034110057169070654276978569817612204576666979736294066110023100780886018666209953929122853524515536337549831261252012077342601410630912002261648189273781418498432154070561166468623632755915605855036537902234255539560518407109720448135783666425843979681338983997226247668437923657061436771623432258703443668389356794630104897248145784768249310191164356380517911739919442436928933722597837987921591532666012204815632383486097227775601672129684809167721011385975420916486098927916355814277088046904819863309657167935508483249238462162586037105243732654345150605776460075262869780911873598762131614485935360054833977564938033416076195910657419857618118367241187173571485009605492087722835011365320199536364897899664450556161218271398357743249943991783900428890605149768858334222461776102786916171221948030898404234181114376456228769359674590384690817403105014369561059060795114798242622947067624607820480902198351150834076840939480956819868206893479323651217428107496506259960917842908440834648446393512131789979737441077792497252220417090320755697695447809146051800560784976701348038253001007957850734742247324154846378848584724332830806954073820243120521144093844288471427863288637736385767644734190405689330531006092648709782152839930088298681669032807578539864483408995577440809298342169426589861315684943862190097294087704514820113600594962714932731001964014589508808705246026679402705068682788437750412574717540191219006951492366058639996031975415844955056718956725122905376239650325166746485682616086646015795016226218246657216086872878864792749771807459220777799197850915396593724932190675928947970491437779764947449288418483930279951249583649995804875015922547482705307048972770794028980802611403808698279051938362842591837013260496558099185119771714705995792649481499809846938243242045203970434532412774339492908426636247770840019462420565685853630229368735429748184951019132826060438937462041041728368775465198226790461085805654800471785361857323324094064845547313407322053583569438051639476438278698968248165448877690447468487633943677764225323101043229233837085053438259766976451929161170859902093522406910305963870183661750287538002415896112590354562122517549364396874830001159315587913449898767684032656347299995686940091818075747662989772546505544864832987306311383440562083143891860030477460683277707893757395968014395466372728719821454164383669697712765994658986316604253618563878942839274838444124474300455571896230990855840294525503624956620900120356197175879720946612044208251387347505269309649574331159257609420943744150609935715236269162598308819529602600447436819872005979091879723292089963237462598126049737672448754991221867514758498225510584130402777115463755095782584846409850844294702702082907576789739756872741693311966053215347363513697340055220436645180829324534580853427732775930737664797525087723938835995590837517777660701631694294079465872104995502657723418555690351807390526937615290020741420931952510166575282110530705179365330398509523916353672046276374789266353803563972487073032534220836791821079621597575619708286719614773471879338586657265286740264473754507156248664821350437373345204547844584043135146573838420385315573649125271428540997422587727010382206075972364799127722235357929938175311391184445027375762463540659834618705043026296375730194470920036865397578324025291731123254271496353952176127239117895470866823592090023290941823066318399356903274498275253542075515180767878594286519617779553968985339814845140464877439130454859242220943209911989817201652291318218000998353822170485740211847084450666367359757789221793595011822302076884653269939083220678000041876274247535315634122446616057716229103990070845257741040493587008900057903228414576818392416597106346916282582082311911881150169420019558802727383578602163176420157266541317125473323343389686132549192140666867500759601036566462980798435363052534568247877680423865750014260886514125928384321300148998433681650649339889241529739886678825063537852299366126726629948107292764738297733239238778087519187802807473739489384284813115115463687197304513960156086810911138489475254952764416870813676621978666067620529811066849718353520861134360851467620779854772736075498886619769059040664141328952873750105954674863174321388153297896772758412167377373308818092358036662974840899879679945957604794418360923534945078836102174643814755937903536176996787002059246678372305644778271734740456512689169052721877217382033882963521882106937434230387777535407787044007064317779965799522477808718898906371305231598112041918111602409116839690822864675331895788509288203777386102440573746129108741612109264265014242988484962746522706006977063950942169710038836752207699760142337411641342267522338817247807889987193497884430199232458081148667437133259948169544612738448514385464858312294921804410029457460483489369605434770948005975243253560600380192091498648886315843144927401750600433381399865376291671806441848120019620725802024876343194591408827641613110670272194213915375957278332855212313121743841876873060226264950261231526916988996677787778256976003519281357274196145608426800847286746737330102420325924274693056691085078823934052982234199686335777649861675758091836048630893004057299143310012457904733697802174297248371933080118454146570390259774021188978444929900930957908537923807117392343449274148423576962242277330944058521051520047733486859576194126866693716079720141361036375640742494658397730899375108802201895901202334470927769336647653834982296000775539533559195949412571106977847955446448496830430201291433811708863503849602315718472244313664449464867936387767798063167150830408514214303498565703617602347072605060336648923882478280551890792108518603964541697558694499138044310161172716418319483384643097157003510073202252329741183838558264731678990470447020784348872006900780063950161069807005415929278262861521583893286322643935409857593965118169212944167833661054734920909214666257183319108163953075126384059628675360879410620487077694391305410957638671909310991091475296810685029501071133765856524468932803673431250269407668051103572729771337257489670283628938602254895700837521369048862875933713874383498342940374592393020120963103080205937234348360237786064984130464404555108895417919088272954501865268431098122813092876646959801499173081802975901322149470215517834611057676068392893092924736637387832843724612655406013865960543803404044031070825669651288339118847631870929748331944529230785995887801247572425360532200019871408122964751662510306529660777473481507100924034798953800118845988941653998248370189024512830353675760826483700415292147009563256380917055692121012666564276270711913839745042936848146824067741619522822262842272179438925914280419078259552581364394790637037538219124459512799825704791703311092959410367736110961976171190351663181170784408080753059934369281313615075798168031554286921214096139827645562459124863247084019133897491665508994225294498822978950807926908546726812267058596562221540142597051676291119623732589661609806509781620110539114712529540250300443378464336191485173993149407846406913853954736314846930518244889411658911243385778267799690906287692326682708094954387520097084333780872057282603448753668354701130348092682122764596987000327129239675692341409379316841649246351323695263017043354655888303563734090707691633052041083585205805663854160182996299393179355101531865195088076002596226214268405231080027136841404748050924530895636887689444150357800169076534096152895056328260693744514548299506992347183913048439306106628143195183292137710983554206248912792536576522478416219892103845970527192722131182711080950992053417218388511442183410571387825723448653576199441307994880926186822041643374271563287420586244701574132191041481974164577328579934188442404317863932476748310493045439429406955509723798033538159787351434333887384330743688078611470795526422487528207573174053658265194704908524284538300314629037320138749668217996288878871844234051420022367022812911632987565751764632146820902761963664140818952742741058693964789105764013421480407769200851016192472922211943429807312927349258650478222524955888882875942270642010322934531431724437373729628444647525118315932138699978065697118030323083157383997724422386281541932076734398488207301651097865698748014134566678482045189209829001451961600115713560761365059822665681242957717683968880051356553826024831453083871936390240745545924333218844911843815494075522318903352054794218745230950415294197581982957778199839588540394811210939928142346937850869710050589212316718816747998490427339612597611843064412658570051887775863887281430927215884988106652306789514312268430924420688617672885495862363872612216458211005956893079195520025204045269288066900267701481556215971137323148045411695384142945566738844697310579669962698053525650358355668614842881587153299357458578300890189522170030505595433179120272690116177473450664796050715507049260826666624769003921203090090600953930132668963512807295153342411289662131339862278751155779561674791264078632595986673970677397226646671758859271015877977357840891679620707398143101354682434277875347061538875357531416376736954489307346130477089326958548077616757294768655149261262297230119828425579115947170779036807626292154525196341269614276642033516746482218964581454966902044969854710916363920883998502823915119891181116221893902735599790013114010963847533141951044941591690587944872820662308160510401217471513919514761200127117735782381595566447728748263769590049321667833694036108645894093410907181506460610773428674602062504920772817719618387757293779132323017306226171545067424391567490389727742063043077041575866146129142782474604252197786766639915782841736462808647439275364752362603394396453374215935662167976963557510116116067572383715079465626414844957262824416268534406371536402322643812252700259853974904445321251804253483313902923019615895871188889985068755075156069924402656120339068235404427465659674878916604798291664521444936506453775470357451514852757378351591762134418500101203007855143542679995084285806076240414671686238685004841915694285391474836871530657259790521651284267702771987861568845901404847826255303467179130148619127509683735257895204770630592677903385942106082838612736587673948836424101171700291217942798332044446028656103578366289203109584710607691688944799614722697751030638568999231789128215166964686547502194756779937622030963953760218587364709828050416381068209896602914097794570217878564767158117841429123230010706083480140141787990547450101926984428902976752008377991363382401684033589866197034296860333328309529793425197626105447724775699755773798353309471431068426228235510325380212509122479375051624113845988061073250111380815778420087468429671123135492018384185093223007460378672824541696661450861124067201560619757429652831389705611664372875045471189662773242437958028996989583866897770657470140510528847384434372018264413117832323528061072335540948872392208887901534313455704524472877319387177919303577884236398410772783889172163706770614158315266509643125925620188127342229900525429235237095011805999444096150179069440956100019783418173424263295001367619465961980028621118617606061494412126651018456916298007771734230807389449960492208275083508005100329810477165110110575889257516551674314384675944123374204660133162496401062960402707807561828384672420134178384284217972485729596297045527129394795029766019857514278805943805944004051185277684641790115389648019049947430016772431073041434976095883053963389419438662050197309139652758958554930114940438556027032418823059167995587593494962829092107503575241493365919170888546062606004270553947961848251164905422792736543517699755652405837499974229510840722345536974944403581152298667377874904148428175504886336724659579541076545251645909009899952553831542269042585419360526787412618504086172243758850162772609078506899166705390349347177592248234980427910767291093088933985166033623774613780085541452052940763095441680735399443734489230840478535583618721866349225011994728819290307679667104817748472425653227582756894277904103401755682875504848642610136967637255442435232018995322176108243389470064406773335379644327172637275401905445324037253372895406228990363639413870603513999266820077131285252487476679861907195152949406682627788717925501474145953507058149617058898874324095823561823684673781581021311127003218309199243894202788345106896669532516471519325018314459504623696697342837636577010975079756861473484477953031245915930965326387114760135560577360677616294348160800778327108527354137634461156657236210173477897198189712404574445358782175228716810605744319933917785324330324641976139942241966213579149763266830442265514365672625180265453192122168222014039695463849574776126635425946115651803124882915337578666803473541770841796721272263339961267369513244752945919199577179011978248427709910066049731014512078967852933923948879100891504087321777124788304979341575806285187070191950646247194428465596988054633928793761602894135264474381987316136794607300405887812406635920062019744875748250064430160060801437845828798810644576025843011578094649565362648944477323058013688852330096986349398419007194358848908888715481365646185439276983078380029910099171204333811417259842607621341082244972966909515264140000368677072185657892130113166674689195115118288810894237733298366490768085285957179762871753987733444461210716719457027564283548094755787168088210958432536449196911850926315080319354016258466470760569014886020308782252017980573241364915424319371419156412477789451549523708014197646987176234072884890175737391692185143487691301169280743797590389032914927917119413900206032517041717051632136688591074862555345525701834872144289386643490932590464086632791013249145944536158483640974913646241841250240247117077737262149546967964100674841971301813346068703627507781763674917333253988792267403801394256753622917301977672602335392241776458810174871326827664046741276772268110171652973197980249791164843768837895425395333701385538313156670923927902335140683382071918931699794306046657552800984425412593434414673701286318317335138050557882314400674106933097411531260220069812342703497272214541757835414910417967965815938944929788190060790588931779018828014506166308323988042551802356775014565386088950466199263950069694262504688939090222305691395907896234359068067650827277710444705403086042450631202567987954682203761435603661885740038426548286973201679508804661399480388133760309219841939207287477288210582034320454125141580261048469245297067886756989814368482931043121713824380131456698528110781368434528521425615911134415213912141082677688720835164566613313379192551365237440960241815596987389291250222658128765292915865797392273659025662142220883278709835108854000530509143202173004493288035970032685562494593686459524486675807917787271389908404793121959225579586504478503721432206526337089720461781323428995266127552691003180509209318849678436733217217231074992787614287952371057387305758747975896736170489554943411383875196013571990574543747597674906918378763215576872933844905925094634783683356446578858990508744791233105049906483654495190213635755267266537453942718464899480037697075415221940634343279047653311225351495895776389692777813276803789121354187168189869404093189956729521892677570970992640090437922100910642937568887928301441592068722279138377297360303616182404045789268074011656727316563804586709068972914919672293647987489319536300654214663098297394471308700192161728903948605042089488895422908402447013978398533039633633412306546348223615708366557663476072443661877180930182048374565786216313075138060391943022763075279085725870091715463872843510338139754237931854651213649021467158309351449641595591710840061792000885026738097169233774279986130436202779368340255559399339204853660875944554790814206975999363687057414620643198855894791554821252298290252206053187236790568422502875886561000333933490085872429819951833325712518647262651151538275608871261030032158825667078895449543836220868037196830824996367014655091020648655132597908973906921840040821930901429168447950371164118229098524418408006659082600033720131501264725067049149144179149737993797958412745156557551335250330040535506031780504243397797938573897510404451951398366160696879288256443772005408772468991539051222617921930945454440830491310575200924132677233974243416140381748389243564423340775373116369657504159981526203808771004339474162242919365016924522246559282688347162242318690607851879238704292600543380651679672645222475332440254205800782021780423593336826426045250032781794098795260899145050327553763473906594388698715707880902508519425668891266710064060611049611429262552542297982998040311317746859597438690696295364256661587013961305971383142762103032093193400424249994723927083587275149072435899415493690090349727477810047496662010391908558432565811116653461489734480137116928234948786905615188479310117046750657826492941781578453153679901379880872392052896643127225800552259234512284381449936929146183280250311305726627653845204564996328209827673965904352780008785056579859070292429774874241835536443278514049160727811827979625066029560593145721126957371549970893860872236877369883487450116070523660950673867760625882677160117777706960835889159868480514559569640270820089186762183646281079196006442164000809112627576867497146271075415676728454866524012135448282000148219027279968855329857798344625497692822791352612487876240160871682166946134362546668605710875015981072839359170872917069685272643307119497837274169915551840120560327490164784905912724355092576546725910449903383028114612069438963917173920007788950688874255928264717929262536190559155590576108143124472154285221755228852156636871831016004745856033850561164668030794198186040246705700808316133641886020489916237427276706095245369304896846570957622018016168093338525764326989628969738541705076498543456939651704924709003508140143388112662278849451957505171336599123333585726538656503409070014699962200849730402071495991826993681092095167175086870599018655474559329060523609897133837063833662909383578176723069264860662098231326691196258958056529795738237711872835055834597015801037531490743320391477107420893656735394281008905128088148710176699661322068522099458540398156645655348044673037619479509470937489918657810845704965657539033972954887409313036631751315471329144235292285770002845254066499273387625150248703804927807739588676869763611369240391435326102823819297608427789019982531006526134705970485230157256997533566064504096177574550361734530558674561608933947514336671689280361799720031769483954045767698387479449869496618993133566851305468417349842963572421425247399042130722308065692796470768708874502585405350163093603608161119283511465159161600252086225874862806958773605144428302433143261629449726491324282544703317842167400677685957060330499863656211371668554093114030977159614087537590943957894234261096865605459020118010841738059205564386331015611393378861589582114956126928615447545811162304331286377125538144156093764378630313147366419949115556765729016075542574222825239231794413205203612007199315046514499235928205805321422271751646104677867611265495182306056271443653782144743364968046068448085291756467454773946875181197382184683663898320104625729246292795534578848933700131957693203796194268977083802370455756450996034556467483966230566423385886730179677327290090675406100836986139609712728153641246096448787611349820222187628396325142183435063254969989713314780858993819314545034577244538739384269869651054174095521344038934324168656425503434132161402561643730291009645389266362420405741056359642509455245808971834446976945338173573833686273928588120946250819000555161040583794492423803135636092005510351135367636129127715385620815325186677698859830223981444735252915339606066443212545701790199542802939426288501384457616918997685291305224832936804821070718482860511332758554232443800351793286250266821798077346688229070315133308462600455115210782952807023946121521782714945226037138798895600580652705304895602501315030985890090965834243093113534387429363421183478427762852824558499027352956950823882904011190889807794529235899713202781203427153684679756639878639293939208716821997279793640230239851605988755935564519337582944664128315837174561560896058477386202841581421219471571656911994189766642243198574032769044404221282940897885818802737090786752496128555398610066964550055752480875280607183110851477434185955476259238050400418305746636052410782641298948199324212396752449740052566872171146068110088650290372561985828252666595851383485183177906901871297238942342242326815296353856328671763746521869446802144636131174003740537051823465326437803047652121326940795164836170353268520339504644212498029459271460194430484257314946794286662322441970122588602022854612610333838516972903344565908815753118054074136726957215682967386093333671493891322293201627411989383286057809952025192400500317378694468416483684624610228504280204931726507219031138458927872790668894745367644250604873945035515096393741112920932849007171311228167342668929757574783046433806883456920901936666949450011722318832793788592538542236664298974850623669300944886035767432655815658443233122922697609047973472644094340943366803205940774376026106060620022123021376241794623550831222784770638376707688366664825292809913591894988185745627573336103948642297626027600495124491076630872552188324117889348660414700846402295189656603185123265218402125077508288278101800876093292555420999878105961389402084339537163606347992626680603567182460703302763993245248647279259784914303308221940155097589388613790279907463204441773644431562062343993498118638723426790573096204009427905190749277807214247657502422675736917200572155286444053640576456415478745858568641108119028331211378566702857971930354431789954580549476439518087074361690141571863607932067927481081615649936318138150529735039760439255335563591900314962737499221059929223108151970341261858965499848239358396284506172293503207569463330451416989914951190734295408896641393458449718646097513651172344292689335000505588039831770260957727163773698940964757358273474484062780709612154576620346731202270100727351927932824822498531850269751544680203556378908959474458910941863403062848887894347511116810047276097544731159721764927339404636859788303080716595009511546626482991369716984706768233810318109681053960606674073820917856014376435187838948159383046376244368917870252607111795262169056235949234419980739864784771563458912220714916892076822784673239585260634513894716192351126915358450635444068271584227729025026024201756287051068937767751650556845033586185418877554373873940875809489178873931205537867651644939735048404092666096101653349752009172475107229228952556267119060882728689592961537606428883547879256701671771036810813594055676659152719321050719053083566736944168827374686700456326449702915859496272707703917029999666000330275677572019989525736586461132328532217356240117169439918269858038179751315605081228798277446458073392426130532942071994390080769556268940467245233101447504134314449629317981408618168598342877902316249238290880981666261424551097452078350631414351712453018573900863336293505357933617543607099849971955811967640911267217762402995022618529041984318031184447917132056549290281742368538939439106828147126436113069062869671100950155132640791170352100242085977625951930455961520369362621474994863176302833499074389585991884148399068578994719041764671067296485184706981968131887867071215346156128455201850483702008540345640301439833375870699375978341782415369189676991163643778101324009628488189118759867574093824264877116177819208971797595434774100363387935127061764565737085464247089970081437699535941048574335014867930521239821501564978848450232632154365888703967394102262418491887364001334800639326172507700689470535440809799865762455514486457311058102733205771300161436094823588452697022918625642634776806943430029126304886541694728026376201631524759406812110785639239312040621202205085627866820564872360094325079484517801470616847424985626502434469081556797388333785990768922817037582519209444639312363350246739605061547615209184921377937209345645470866585447811152563836000846992203186326545924181416403472924989622604462803655689354305585946250665945850166448909317893874070684888330662031471738423361914120041833852798326183143540864586245804985955883189284618034900871191438862751929104277509275411396131820421366761790471718257163294707629156531799525416936709605424319445302658912687220310456418692588497538059949190003770936959399487570514734758261768885247352286153259667306799772735128946559164926610452655951473161328160591398622076580854446920407648621773966828167994900712157925341607950281917975625320703941945305339152040222495603406418726280430898596870969426760446899319562217525680231211232130799729948973285325999905169015897239751927653272180885036643679245462450774356728176439064455776757874471344340524016166573407115153142768921395951746984899122222684924285085608881599686325513717884788127769780715226623470457957441917834066509201052138617511147254368768959512211057302979797253508919161754197637143553840651292426418718947803597715961598868801065144665472013024921070401690615059251358648763047910143091576375518543147363570863922692095153950518142136448192091416658412768112107649998282197950347845403555440935774671429156105143532941114927732362577350355409659080662955989285813861893897562166436890578462778776940004515899865276979630506362264913314764432156311218362537728609413933614030002414413803548662230724525348269243172242607769629315449507319499183428905696482406396411827103747794459194339198652838077651957324769544832485776113589113650470888290098548129340257494273533328110994887848238274269513891115477308316967441788445621031130729992869609281244354557345915443265387240233024194646026798175376810252652991780333505749628840099223030707027947584013455741896018047597438183060580770949534272682445063316563458371072189184081474449582084235132401438373157766378780682895092628693705160311496430713472026512264012991912400102459543022904598983608067554474537990600575430799996013410472180124305242701769079317229142374102463791473386113861175008884893236382186402538700007175729978559510268923885843534206492048507866491138998364866131610611719070716855654515161151534068192840848563144149818032314788425679913395885378462913776417212521944595017575469624223835816068588305109757231305104387038551599151979176749049769925513015773141656831138114869884008023795033851653792766663961765007554752529566698368348238835116327474834831893721848884257403835628699840535962400434858163432874580740074377353886048554916350520612038388882865158624421650866784008596810157605464588385198742271542940976131061710424899123717531576097577111223522172025356024823879509222785038919649959020269999566111528922626918801234827501571321496833490856202442150070468507130417776429070057004836314614050071708437825271858548465674451273949966365677916311912900492465001982060207870815847405503957360164848989346436356703311780064044003897341178403641367304765885911458901238040480699500099968369714964928018559242622072986861196070228566716540046245390488325957958102683914479501829632122378479462933046536063853620975483909008777393851763757999514771394332558161122277509074254662718663177853468747937110394288946049552277349101554758733475167249031145971558995319038427725815295310628305271475830904832342055371452472687282098995874072841279870803525153192209467890420689177824148895772609114565550629323954059721204722289115717839662345541585879040395558840015278885262372841090016222808889333288233323940007124314241862090883716808463830634032118684544774861211638120100817383862285811723204626496251689466261108413815986282614478856686740999132773666367981218448380070074279931800182933989607927818025280908945525380336130770631820293415008635382584293426087002967123336907403428058599921585500916168124555934034151711907689811426135096925620692449042557966649643422633462174090090355737317862285630343744325808748873418788651305004331317966758843195380695129580672724568869366485952269615188398648799140891527912912628530682603819491857619541873247184636748337132057248644385863287221629612148536728681921366317478879285654039808849121059960429015326725993867054807915471995107450160504784934969810379751649749668849337341040948952991380761959697764863124338134959937608782707951364450765581331337254028121779088934366687081365028846966340312295117569298105275030720177434316790486913624391623540747594643775562808798857327131505798320191796740739382416294959432609372719892809688410188747519215255164178081267509086109863686872155790798431312864044782817295882082324586681675096010092941961965927501202106917561554005928457689842267103390915989495248104274172572715361084497318437898072318755775880883168837959716902455736558160158430982370598723409502646917664567373060972001515433823637824182549977754823494794274009821605549408906087840139072020030915287131706038434559646746993075279724532348495951858309789614802860888865935953886780062227058047306858357310224086929582500925553312396219630029743944770494827170390854977797770342294743461078358020745411394081826183901970224504332157220795017767459354117408414645126002471114966400607809120487142962286226837121892386387766418277880439129809828364248942500986404674560182399006244828818679837382511331774638912892867654678487219631632692045552479040901720893042965228678469607912547041501088368800348972397820251495872264118080200218018425980136153269544722416508628139561196903751918371646805221447742611860572539483956140482335264849503731623857911653277832103375483403282488744442422362530946674906360510249154805349235855540829014808611869831149738677366090761335911683658030532661584603157122574093998277804991207656428885379849692697974180785178744210192726519589406111582099298471238827269636264721021025797308925611646506387460300991311405887938994573821796300019533792393994973108992878589180612748983341880204500827143865801678149476947015455541193615126398390904652418566834412900636870423746012464687827236451826566310959021674157032301044732563251415743343336286838524403939097982022985322758258109843697252288323572036883522165605021432433746320217511709252189194637339099904665868176418194651358497643516139357756033108158975102544453934611258948259410483828834976651506807494342768871011745020051037717471024840558659671513645262620333212755116121387709382620784004490120374315294617282189837560486345403916226989804092853288241612951844922884929893722728288664633552868167293991179416032192880196671286647390341439615400799444348200314805156807026201030744834432028175741718689373861331474242581058568793050462298396405932409195604463240382362264675692973790898235770411755556139155242829302400614689207313964183453502017253319582183282660095807489755807012737998632391373794768567947500378495794571011186995605774953798072010369127491442351899776810190756473128117821350726291057754142532641269301045118433068856175655232266175101559554085949023553015262960167945614308677125157930459374778927911059970043920778686992308657350195101361958478844460984060672291127567126268399095282963919732928847237632818559027832191200348377368256338567997279319258796129308249637293994693149412848092859775648522550237696465040304802784313683386922504621122612875324309012015760468758048619230832353283881561741993761359711276177894443293427630415531766965399081439763290270016436920668819002471735941886945095130043436533868735328133743228545435391115343318201396194188921475209803766705837868319007525246823056390659915572893923780302131708442047625560338526791486597024997676861985689862523738637298986130189678603210209522337266131357469170398565363596412858690455956625852282064847656829919004786558368245620122935052606279670709326873487446845460182740917764704126286744934860993625799523296881690793873330143040748042695588972457430825093040151342992393110476997164867207051441915707427066894618968881410070709829692775585927526274017287778093366617173957284735460640797964185039132509081219659286893278883141707132402112351910665930174548504368773425381857163648018138959408558374289261172301663666492991423394279204052740718021059452185220864066877076813523828693996220848865314121273360994738711562997479202540129156798542785897083872003832275943125664078469316535738939850542579839763749255151230201469978538896976448788942156932137637296016751599642844858371307437214074127332639078359755898779017882486479789378028189027592273462818932600042647568159155184080432471955842359555576410541175730305806551403076656529492536358190361798121036086617571445763340959132563770653570031052990551675064796320593776412469213146463679138972832333841068788944010221465771634790714422556910788991029347642994193688787491503397468252749334071249745053811241242962177204828100476476420955593976606665137749538095433759741013255076949767480657309770743852969635093517262296782967670073740340902208096795003056124614653913480564446480050814267696560011556807012255963943756375648697126261951429099543182876596239174094864635537836921835143415799831959630918339019947213406203144054489377754060711004011776138231575440690168720357816596880625804131707799637391507008137453830707428839782215901565470518165939303272229505032387167103720861545564995119937287861778607867108041362669111854898296623961547088719566209611481496364432835693202195055745260445125745194287954143434736464171118111164214977957104292389550493959147505168774508211805971048868858849961644673838263714847063631824756330973040006336129882510513600879580020962531058661787012069081956059897235471450140623624470110631971739544931764225454220732136391409236731904025223602710703340683247976468763915988301205212482266266325789646007662336285412308295535176978666098958577796417195880581058882274429101131672876210285529393549369220108312050826037379898395528960793876906778900761745039113053064715166063621968503933313244208145084579789933547198348336505705955240759778934481620765645235689714955110300957491054434395204844409738980649705889039664210947341914792225275577627131025583737072831324129410710639310676033750303754533333655355998172556639072891692645401194518306560406944611204159493124149925421932326223108263918427665114297065821768347480059407074340538837676089331003479096840925291405314300600116271443959431818228717580835984168377852520746505276931630196978579492997702005345027590313735699098329081200041849106152520419163257950751896679130905310972352661082074563858771705663780037235890891687863461189457109832704802138571877584314462512715377768468720940274687532008824687670449845374267156397499499659193500503412536540640929147657689976772564000737463816350368447257669760092806770275775461940288925922156766528026673528034659446732178266885106197979813938396942927567034791598437906396215164879634981865243693230521007272735931252636724454434537245524042380332397153979316701396285241086300295976829407060980826222313597984038832338193570172255491999931352245431688503391808178542292048409509250329705310455663913025902103414897382435191632040111007108795332913758081136259148096047688714228384547514245899171050568269816647001163231575108663940356868170243485132288384655861499365795275120965307061455145358903043608020182076355307550073963430742103828830991651209413537994082766441148607452437225494123742282289681354492610788800503600818187542649943001037624770279971599565691581453145781883621600828687432356062003138182065389677306163287302584698758507042119039732739882480120097163968786287453720439500178090058443835928588607906486682375332018286755335393757582974401416640401390113392897844232234279651227511374874658779391582894947720984561510386319105862961509660350873122861488605858717732961107994582621442165101549581940441880088815820290223793078693904286654717302147798757197797527073432723950885435498945583645494967373121335435348888855656355559364136280042358560568126852836148673260223911007558334370803457498828266578370545598534825601010416963054065547966884485758533296619019209354469536989885996350313455961949169182314231752312340191860682218373625450806829727896200637330176672379309832604239067486957436570492088694053897685673059224536812138948375754142505082974799950245745452762942139743875544811983714057691963008244997382614401695479457420089137866717485603838021357727186126907449414331768145843853040511235908216200038286175830309155030636527817332436870463515536371204448750665428277926814481828627803167453862377146663071772837858519440823310326169873356459414745027780713391704347000483672326460751678752436908592433260118086956467644828655136990783902469309170554980764162213255363801129700356861906741740570164354982288065880977815938383279735289792360946823875920813240826837877849073745453234938199185469488767443536494596542477256936478906975860342574308035745092781466791084933948398079172488710415218457347938826517320580894336707155604197882038178937702368177107881313348138969906577521290982756537669359358942137308742498542020325595131332565969809551120276557592300700831508804389610611529202993472619209862012956575908093930444315255282539465124049642947514392129303894953044827000500484957698267502645922441928090897274072498302226674647827368831074710882536796878961555675581956615354488316104286162458608720173489154887815198049697645410200175251719550939868035101819976895417433326924210679025041803630582908153555450570614116034086912338236657382385161631159828280757435595280658152070548010048971971946755135149338996815462691639987775490009040649278696193643379494467289006862756834767534532725298156067818960101970341357331547392513920739249767923612764700929258822897029187437327671500296883426339423993134231085021215000643907277004303908162392757337941935853269864400405258335136846701214466446399580108575757770338945102168418761554279691962348519598565323234025325108965280232750411782256343980064772966129255503753791578059379133611034585292204921243591504926525922412695810841565824842741464908543675273494899642622634993924817496074716170589460366388087718005699717787320679871325708463176278240450664988432946003260206944283602627854284444724318997585104929361537227827077455037325571079408105982925914037225823930727047410879527469794837007099451345164405303998716337438658529589433919251647561809835498235032129182488135167963025521837539950466241522292851178266571993923473243840825015163223156906827514611114180439187897865637780630114606093775830207528455014372927125679657337223319387273648840984291690777121324107498980347612274507658462200087633669188218863528770643561013262770590229178220851587637071207528560762305403666394468223298599862389538859946006742711073494953757931063446464167994381294216845553110836717091222314229353542256587353094809010792169587139206025353682031971650681024066670743536076223343201965108865874799507392753069438379581838181875407336629242292179529398249878394483189307110944426944202512660129534590792351196677811132501106369455234694999777025686448360943046755242014800689426668766635199721798900592253303622239440913078946841629368666894668084049050856798689768332288035368416959183210956311599628438991719436781741054223716803153798494096143935147658508431993006049472116432600394519378864891782733204164472755409393686118639542619502290078766466402342149217261550289659040039362603601220344068493549256619605881092546491098588516969336236055913806355613985666706297471915989284572103527344805606229023230743359630587589652742641376425889977524650297493311072087673070252618231470297913626655320392339725812654791362858597251326775345334326442521010249938282262055978347936013337178654048683615618612581041980263368684086199391871471006440337945484046604749200923187581790200339394368133347096726819603428593326808312744501708334311483578392938145448500156271119169424441324443280513245872529783519508165024471775797051053901357816738986653369622767807897114230225735507450327795962222888588978850910918219921154533169932954540796777680566460822981094011347962129008323958857248770639013465271047226502638374576678657473132198800399851203395529487732946404046287411625482130545378826594899407914046476021554211387820647609669164974201474055071633982348092120023759601181786204512059510276642593728435476993344126054624412630294465934420382322943008229852409141027024561067112993762788236138563743737857532075027369249576988868008672532786497121429576332862816123623433412209309754736710207365465416741870456091966516736863633915131762560965169958906831886521045762275282306637065110426382686724144841235830383246052097823928235463809575022786343721301089781538589226650197335620468227535341058353315432847922443103002123507219852202220267359774919441449436379346934745671373518902034266305977831929804151990872331924326684325722824776774993301155354526287569754778767414708867328694298020878321409522788784546455438900435376538617927197541699502168551212593681272235232258526007306292733457010091010133456162266651825223611349711941555124782316572905777044327267017064144308596223784347755827383689239631801061282890905536214900779140933697135131338934047988463572704806504494088910682176968173107769783134292540173225450088513580132544792319367806967726677685811143585768025140481986094271342919377510427216306375965496067812072268729890646073122823649446742496467624760250254676752213735869686902235069638614379242801706436170795789445502436116653736885187181165764148883444646420667622430535524720205086623577638487175436195247848220891422319108479990542348778348957417023510283147623470447524764429288126818136288780969991294399256925398546606998297263242414540577229440066024026820417800021550807241280006084714576693463315254884455517173277809572926321050503949935407934146602302823609385213543090340305119789268346402298801033334337219579827217208198746331587547935298748175205528219525442442747615976629854577888183904295624513200606643107005878420364580415059848542613350936722508399273057447796726012833873247717646359964642583910855369595984308167741470263711967267548905735655292213837432211273435264005640084104301547784001955381147899918782887317949902253189624441601690775294512145620574355861263929527773948404269090356342858477235429509883001345518039369549626258176331897681807612870593573882322866616924616846453632728719676887436509989820624918474925907737651701777952128845478024415819647829695772559319328723479021086022617117868548593036317255324792699628388855023609433067429832626583508934291360378106324302634649617169755394266162538357230477961815573835771102996051377717821604356701949651102097659192896878749706233187113528490295039723865655183824108630510924602206310962455062294149764856137634313421905373320064776989018917870448659573968950710848764563565141150157952456091327563873737745943947473293045696255397176383143032856855246405888077367496919393907583437210267274073386305964546652743127780181488144704303966249524822580116117281430466814513932528425981887586055939711866452853549265423559032563631012509524982299295772518095109546927333601263515702056135422357251651374703058438148719082094085797895685057504226258363825870673894814388527564593057773642870474630158952666063854582235135518988078418002680684495744275659765988294038542924529269817772791187972176050899940881644127200564445166186875166541816202858450355629673224918122516611227893465685583379939260723922267519784953323282098535418589224210789941193954247099153336841746143304483496409468361526178837282968294656492369679108950955558114569853563342334041890826501630774870160812991055299246373283594176198198367037603374513654067649884493641761790517767674605321947636877712146182784493298304013700812481770097330509350833117775673454451660856051117818077133204884773492872807069874770135546275927987601146291409135792353230969712428472216005878668087552737566754922087792127318814990347998278759353002889632909705359210316424979846357238462132063078608288346839947219322726515624932189304658851555413975922615906737259032977891730989399225892416292785246239922743992470848193798306674152025402378124465811286355441263268856959427035581311961735878074140721159170953858986482036673062282405388614688033359961160645313946797978855406327779715259860352572318437475816574738107469336045145461806630695230856261053683342533530110482923395438145865725804299846538865223986764900614831514843479825458447779261249917593574931596713710243362297557058125820156827391268408031689719758574228041752710291232318729703241994664356061124686400350563093579729158467298423294887368306204999263436955407075065105972119459891196380107185246599447934590258710964165509399972107899585507113742740726157004805056807584192431068456603239576427854665628492871497968422335465633160762874784002944750845162046082703909831037482419161104824799783546816357078672102285817344825827607245453615123594514641455570996853324930952270981871116123738301040146225049691099036339196015678224132033908344294691753890719455787948643779528407778631624924688978831127743996673064521817889057029943282053661255905647865993923383015359595249610250972919413432253730796450000633702086134349668630595736133698882960931167421684102298247840238183167262604240003841820503215600771625604914238555230721177259544393974659992360621795594565319330423517699805857026841835438716644028720717996343360542028541831656231249276746205361024214103112520507336689173223967000770299295455177638491004747279138583390927351551502329304419241068271095745691614465635057159692413905226017821043325635215497234513200033687800487622933333002863388240899460283809206635220052547879686425250074292417235636202269549504292115535393006480443946959154687349420630566167695684007466163351135271858515974700374988835432568651105509749312948375592283120281217782471913945893711200986913365554058390420851269262051671301052967797963625185830308225902788899786261384277927174506835504237628906314936234582924187868501482168488395323913935898897477682733630838411474438176731331715436715805129548180179902159730265665567698643008015736063177968518095992035378460529996988622761217018020666069610738993680511116049189545515731649961073066201363706775412203515997985934806897164830180771138425118242718656870996089587214694958218348661678140496316411456238712480104055499610299236524445923237101230180398169805903015950887161943349147403315300951138127020733443022368057754095393937817758749542052794694386268767723181114194025861209800439694031026003899440423580864688465103279575002917518258017356091857581091575218770536850943739519325557386713017569290895071220951458795531282478760533687180761724346810677439459127745615149820852536138873719762172267135246927684048305603740517784832249648861887284340818214925408549417299322575930445024623733956322224776369001492250679338555339394508514722683496794078812386734866091550864150248103903498140936203094043069273374064054176287692639109993282348553343992859266891063044988829602825017241202414110984735405482984640793974982955606301240387414946451620623902364169620362090267843927886205789001243944562427792329031334220524815853385867374271448124116309460206896401360902329176398422012752905415545873450996132768945192006458654712447134634604760938373429070989916036736388712037072495035094114803623690294440747425408146621073882514442740735449481984287538198487570324848289284613953112392052213951461787386606480363344342545661095330124759152317314074322609275212208167756120756293272019687467082351122162915309417681225703558678407362862745581184704236587985139463242040408766781148621692236840958348767114573088994016219305820536708923715926408362384622667980001305362343535899760553111495503336324015183275311118312665476245368643629110284935108510412527408328499941875962885688140496490101333699287510126525769318415522685933452392167316780073726587472275137062180308487525449752434345260041895609503738270643710949887919035550248242725212715765564659158833831930120295868488386477993471472481823476975581343702036927965811677097006910349559077949612383222223985572279879987170191394223497833287383914353109324080863198536017348018272881702813780839436415749304386650364554377867580856666174351370875168143172620959312330727938334738243434437736576715558661332320171575033998601655466041913811044410234347556939358987726876547004842295234621400678776393725637611235116614231382362550538890939007613629559453442850095341905544430124784104972322713011404159611145863101119626260078125770309888352522648375459559180237797251460386654601888616756693399645569107251940093493882277114638002906817424276383479121297279807315577057621836149827327869796941656164029372406342832352550514566555119350242401868919468125962777327828187436699426329501903653906324805655351657816926987162037797961625729687404902553432161720939037441630353099542862130928050804129962241935129935266348256383027195016461069604614815640568015570391340701227548464335610026535753402280548862425625638727563180505765172334272268564356685869663752415545157011437472281744431794063171721077359101075705539293648148330324055709979566291852196092746560385978546603793021655965931214573594989901918422053661743231954849495494176742919151891747835026755795214936041067948544409681231081256800276515668122442321458225658366318547543839547972004124327265641042564202105602227389265399390100256055842232894820484769172281139527185935018773849426841272748093443239364672428408031042215415097656961980771116531191992666428701007119105663614701461926655351000000042046713554750186562105728432020298483491283283835184570586189086242253655447863661882848096774430780994415091096593614690882661841232582207933558944334536283399894896049612992068292218373614839041599503219639024991110969679559816851129879409067142003413694437878815137210430306286884760660752329487462959888632238533075898507759850977525112910743316298195023239763334678799461072434898170722721503946905552098060518626496005111451614239488148480691957960005383319755568983864667674654536371428869856069132817882717353516080180402274988545605698022159107170361152939789714841529766471592080575503835497434186132576825386129047974311718791116642498521572827984005839986422905199552333690522434097806628266995305172656232508693711910045283219417237289950324518154076304067126399707625657154826636898359808517902210734339919207136310540355529834834605647114355048262064837190482442128537961582129983590736996914813464637255125238986702206030463125292921856774424236015374700953910387746301334730202087489420403810659593747553559100079826223108737061971042694422437561253492664583111699673737149436562914540812140920402613235622309673588471731875685826597037210261016751780650359409909287031681768566098376972085022564877661851306756635638025080347820804028922699446391698775779672962920957623154844528610170981713405071959763075277342540368535719638656033320694580685154159850298183953467583859461388669147068935256463696630439988912693822502862698643055363977868070374787488470156032081947585713104083596189452092502204141055076037194912775226386899621627271152543274363688128083903496295634713133259236612983954794100056687712976452773600446288927820781217493239921161424982054367947886628309260333034453591801963220717897027170672377220660218623261306971565505811389189384766303195137914477503239714888442369688316733011199660503832662755944390153732017384763817504680919658506318541547460037916355151148610617884449562989826504968803189568120848930035418008416929778285244248225445626475371612046500357462690721250270295047305224388889077299519783066522942896345817751233653175438948717724346805803626348696033533069911026483825377326833182154945272565906187276582568656194045663108944771704874031708950673415094882458929575941174630207506926051076885162592347912089086910433319699189452301339808691274430408952545726468214512189417908104575642410701983831840824467639913261766875345243300780473658358863597986781077742357957684188215165751721936193458649805700825641431276461883370023745416144321181314138849972142449923894557816071066690940180850184320219320322744063607875299802363264708004676032383416044515779096320889785591554087360516338723710867444262342721862091925216875645600572582039221056694346546483562085671927210576489942852699825955169113624601799921062897515503030494190625118512868185967736895611235853515627830908296425655884718782069085210071690660480104021496214815584715406041141002245373678880839394371568239575478166350235718468894077804247578432718053275238048732640222252495563493631048406787051261484704625406418930633714647926059563498190814718051821863981834557516639600314401097889889881274211100619358157361162920074730297681051891592847896689390778217807299071750398318515826852916630169626336997368789789874170382187131341867738618087383208700623142439086733988689095693102776070958469009337381219531792082651254875650686394244588929433092927673430159811078727696230646604878462066091170667111987723926300566681239371695838437934695151336335147035992955278147948038284834104487618117444962817526820798801917398833092149413243395055931986944049027642652170549389195214224657402660933209757062011875050443693362902159020339908833350247909565594184829242958938635625696201689430619213195278521130701738948820052900421821859950841110087408538295687566503415729591469908864495608866631816426169378838616139143112408533246440528813209250011959789563962102175339723541274639368106328132838354765130532170160618340759072479034493561631209992015027049646958960782237314313879510552367863234734011801454718018664648120930761761230405384722020225879214665325063262396891188678184004659829274959927240907857698904665390374885602758530456911664426148411646293081406774699970184945039088385759957243914234662877931297077976939974063731149689885308905021161512548518592709697330602127389951454732646234801121494687489246545644416966222952931932408211462280238266658061862573220354604610745002178265939269294439132005196516347394541333581420974209887836066824890505951050268035324809841699639606378699623030163213996977156644853983101296853300380487263443645680397373979256136603551305745426143527027299894584142373429012846060780068035934040484405380880978538896816277313985833039652881524002914032809444418033877999522439965217319377551301081612874014440758150220332092884094994114592503675050185615758754140638147838622338241831783754309016898049673864372982058541625868143177630381228581281445645215810076399510273066025098747309720328823317963714930547774278065709880143404984287301127153487532210925867021166877370887118711329149848248725115403113011901527756169030613082720604896147354643736340242973072259495953169995462731751328461286829750748483286098920975632442056818430531156647914024850348962353158521734514701410009491111798876718849330074700299538620711969868705427221264596881303461705336612761901766561623890718808596893345937154087122177048199415434985294940037592229814354676528937322883262471183209247207732887285562376406896351903453956191490032675318482115729851710195690315834616043253282215784156284325210345969501544610901633208750394673735708106464782145702298905763170507443577355629018394149564067572834850471044180268981036994561500038228781814626861556299242937292385126862126389743917656848977557232025902696066195926624868971845179618180246232287282788257530510521155737697715617703995581001259610472116589091298563497319986182170377103963335021477994280761173232975480050170154567238544679046071402297009341657398102356601513337989703915803614568644417707370532366625011112937052495353010907247011393031486261356582205420180863378190375772372344899057697771118353651409446704422865763601125079294288831954988417834629252993177524479651064858673726979491435021435035463543608780033611377468597904128372550012270397675872676188363702967325646375374992797348094199614400605538112307545582635939940849248294514318776272180509138112642301944143900745423570864803406405177535771753724386273582679038500330277576772344477623405069151161155117823769856984122744378371635972269898263955664364119753346649353099838245886371218721744745730431579445477430623060628959144112271108009635668190387981025102410900312193783009115884936714314486905112680878414213539726980870251956566545231865289346929060439957456280465876477059264225689462068279970871448445101557602272779694221168694391709558149611730698866340425318797047101662722028271668011424883932062764216536781468665693361531715563049434005779811942602546196037729870152715561071891104646445353963130369699812493964704135139374651638586550483591999388379714591994284381811973912821939229700003324494338808667931247695139847080481813860989423261520741202947305991531920530846443232451277602558464050833649271985126010746675134765693488388467456218986388814085221547344161236944151496961786533501449046765448909747308038660016386716213148779253100860490710701492928762286339209203255413384130458658026289109459159345364502489708526818167267502473656851888602367687730172412308496341527138807249263552516383871894304608275404187155948880792377134010747519283720301434049786786063453582667868754826105702571023417354988749797311029258657344049650500646079239679402939095934815780575386319318636726842774792060025067783381725505563644945528732553252116592577209041386084146204123324589758674573425437091092556486131781790535055300316946997533434874569180424151411227571794737439106917518404713667980071268454174291091786348656434444221180361291215852047512055081928410847149584521539952806330057729747666254499935599113161583964864521330166261664759480242473775540738054545863268254460367654595763811260336818013428701068200439450984223924805347559771676216290459145783971966526161722057438321180392267101271477336585903313670083437855189826073124675827899756911145724694730064962204892676793461630078250231078599419359430023723486973429126091092162746944572439847440673600439287754904495700243576393872723168594717112616719688890613669835280648934274812959875912599685111209250454558292247913093046819446093549657614007017671433459490716134640928125649014370826109379038922139822155180916893644035485160044029441568091428674301840733847688620066926827908113035277921973045167485776526547006027757803304597551754844240516487282579489762807972460058286981862318378583271621158062282297392929047307201384205735836664783663042056304597067935456931161756691811009148151001114379586584139640540332765768198208892232635358218725565092477790595816657082648791474398947090064751511879145921183075683919841828242710721373113439203314355642810851559503841273686109015314774103106913665633022336994151727413408084205964574742712979388790183516927690530638682473464432592459419881001955954430910384149102695048493426467648973720942500152350692193292098199917201082425430424379384995164561462386705506341169716755337071631838189775703829770608084113608256384190773570847634764536159428481520162642830631162411115191005588212428828822703032770792091614877769024268969182441049514750205262160446457699546402658266893313872371808511891443771444787727420418489476948980493495721843511923457014663335549430703140045876618588645364361679019417378633274394380120348036280384185386058113780547835017748942276921460830119216076936981350028683241253277884051768549670227533086549412173519821259106840534791593373482905224232589398449849328760906488624047156498013150391900359232183622588770864220602695401405076923289487482659594811591747544374042873950697366953548495002537006796530141135129691452145090578673165082022928569076552770715158533632385069448188948103499179403249627836973846148724363380073296876664182807046689922335287997229995153399895284029131151630527130790026368416385654876216104427933886629254118109901687403498149199994720779116038537412841612143164033412541310923022820075126349669672631997778146091508983935808868521854009858525844513836585017585812221926115602622281027101227415376584240949320174864592493831461746455603073455945139524735105887767742835587432792305096227651346382222058278068934817601033939520991439298921299815402360791432799649757154681826556515157667285074073015633748633772723040018741289049580916592846072913788198060278346048690516902442896695689400598381131359155832776752635759844137184578259544380181078495237897289202725345208030550035590741167003475651342570301828392699792446269313344676576483853778609954417997412844228075965402710837165305189467544788683656079127247744944165579032563773645039360364064028417025910022191474179685607076705020183780997491396461897773807428794789477066855613057760878126815226675790222710816117091639271666379239257495260494736795940738851209536658962628914546471811640272757449100872776373344339106644341031133963258061692286567660565481377915633705883561903905322216848021339406586204228075050419766230156864770238303764103790379626795726260672537889464754383509189412560754251276833767350417267675142969298861161268221464256533939151471541382159376670964929879062728718735260114549480810934960722290156282516507287463087865599643366444830430222735857940290551773064944761701391855991562188789405897498055195919612765759972466578660749519701736527649064394776253405127268657319192495162887060268041863851539936160545471620360088822744835730595253485984187435287695821345982544058667887086268898480185826872647034769789144681767997017627443297244444210110154370462820686222916430058118956303719762369963709465360562436346489566639671686431639551088354607381061135283431726435238792918808833196525848567513923090270439805348763709572948504966477181007890876025007234918804282720654130759344813853960098052813863861245908534279182470434889886093901036908738244432473049676124169772504229012918026050131008966081553278500379384316198245884222191697312401427277719006400282977778825577994097408285236743556125204261151111726518420346513946772770233413950055510580022392598640939884463820595859026202543042471170222207094738471276196246401314997158450885577107988309879709102183022632025791598335264042665770983145434077542855809840708314235989800623271862278501122773488231105079132497081360296837066433527017197894314069555152074061708293215861669017625512819733126259451176638618650833567455859586261981583602653593711520077877448745187000736509203147953995242490698486346404373287383522587980852373560028501220749821801779905720588369990282033801984048502703362013933563549289325010651700716017608947240815261729696816449147717182919338527432122494320801643604235174637618741731989285278330961287957581319577222863006053251560598852784141163599082395786859112926070350039003860296719497038306173162488775792392154954385515575835802526488120289170779417024584732752980236157285905578420197695604900931820688121016904517117424082935846315369415096401618116195470477576340733648110989652841712249522848868025095039519559144311439119577707559476416808229339436600235191563113005995285329315751191597045869347437403726492321116085406175350778448361450532623292371172336814771646084366185620529268607864359106899127479103649529549757905680398401113490920160136992085697909434415350153481959734244170918093180889884438908438295778491802293782697706236202586427224520306236862302128218890411417616228782602856368775537142267808307670236151581676028347273720549327323829246546782380147813069644925651714845053410310823471091409566669316789180016400821023701835241906738641030627229758607982080214801659208679664550668435744103061852020824588613037392231025897199675853468031768968976874268019738744573066879061631549980444993915481417668202766083289628460670669609913616962027439416026721008538901487436120106537493208582850354400166381863040876565144904619018921201829496934584632082552433319491850149335603057608164923522120559654094403901421183266571925424216770686809448222714130160712450458490485415551955641489631735849341679064131212835576151489691123079453970472333702901991433350272903386216337890446065448813097212674170953196857312819865070844142368863862361787205298643416703821712041703320779785941784642513207936387002029983161484091376468005430900121213767504542706340524615121912462668933094591359253573486447720787898994274140828922293777002079576171232000866521337353146168073189291823637104206448810821973836644262347000103749728655188991524340615094931738915446175115637877286844161963995733124529131528726173215200108961514361030774326369322221016340985365236262896812006881633584325628786759442279658806053611255996215141790748194779640372097802302254573788400285505805959524791007652315363771304815407365908211719577039808535733070867183540192913264187077532845778323147608596261128980636689567913150901329013894962042708386204834698947545115714142182142722615570538479007922686407075395531277917212971644915470315253932146152040705057142451865264024748666971861417461648913260803666051158362425522688565096339008799767525318598359178381500347798606414844084167718032296073477679817224150051779602923886732385676352096221719470625811280455858249347618994550323211632787404403555402176374346085461128641810560328106286536734031950764727072218520497833200150953631423550296987884052396737536448942682179842879159244604865705279045314135734634655377246958723596754605539408474200282872159147633017792271929086616284163353536794393145677657151464337717008938163730036015953280492362513526013161642235987432665041080574842689669687341969456596567687308826211617981505853444937663304605024143771625131514373040252909451715257424305816981646362584929422754615233669861645254608288535564838500173784231278596871836371777212918783689792391290965628487108075625122637368905766717583211179398244594849671108463087565607990964184407830403948071908390488997354387203137006799374772556302619909217802125431466449787078935299503953371148957140290784960908841750809598197514703087985484252410830559519615460531795537590077797482394030433350848128436392052484573650268299343867478444501027614974468384357183521649533907986909079779823582622432964872588682714814155365451074075644775104872889616692628141503318542062152728363900275335278417852297758190288895633445600461465085807866662857755046358401350291028890153086688936713455031214081868885134836055534507234655546040130275821576733485754431035648915970979106360620221753133549146347545133111666936351110463652677393117085702890590460112559510033602518243575023603832475231842013223657274449106712631792235596602423395870859072231865896589045219522004284899718220766414655238239176877441598827456303407509937192216900270154599771594252667140525574496502134045390448413006304167980341457952198280085268415546218979147280186329212113860938755240506522812212662892963437132751710984683913306613592627635839454238450223759494352588791320941805694608144010273584122581852545781582095802660136441389749774088853466948636946719526215998294401818788471744958606660595077198004355565077870340297638627143436777988072830536328023587913032836454164879101594186639292791333931155771862707317113028602008309154098463318816664137398054962855953460584888654384790918438679443710314217471803958651210123617131696854512920220244411614511135252580783223296777394447999504586513266649262661868360378584306057680436424894418726411378742298418990726122924296455532691215846312897228335656324373634837998445842100815127794184825918382512803942388547964740075403139503351418907928935556156941571543617005917038735320905510034085466178780184807630635480694142389140233468603975611302616716203208934348565742214912662834281474229957996701632527561057388197619262171056921910212333018157220457581658212160900689482302587568630335337634738631424243195113829966525764876204256550413007412729976293080938668600435976507288822230322485532954215195562419027257879684609175276803910285190100531843595662757705936097525885695861004332957189512413042608035002390721418259834188250124628858959673121437929663600370190413792281887694193511481096956607363774021353090374655548752264512945438648794401271136688455830030146031292516928980396816489871975796280649061839645233511480404442501446800553200278303541111968472390814357633353802680662223967649348072509651848321118090468805622096377653973940695888148227755627830935952785839705145535295287213061383358126118313769392584094555636626094922653567980433093558035196761316872454346620697346896040987083120238554342234420739718192361077467971852383953507247168863473650589318318217579844273210497407231598327721564721378408652528132924104545431626512362654888265912890222734270120100885523944008223627238019958806476156980937463659557212945369256542568020225473619999078153506735569121055572150211953707958858914828060343361876601945303473511400721148793032739318484306632559261959765584676941943209292287342130379334430915267024838515260469361134585235062416741445503629310428264071763508901819799335676987772197580276625234837266962615879967850013859287599026504657921292218734151286523089965181051167585563732873815797991121433497258319869976064371942006945185089797933079941280846365503143719985465419671135578744156498517765325495087742582997348555057675490427471583729127625719437113173824330784543202273454248105286804146523467228265978084381190242359373965932101983639803652328994553701728714316621816872596933620519676334514891185784785072998415792592340547425125068298575545274632828024450985068027213811875107862311602592789635415796564387790096360407727619772148915153678356945095154204319748855715186772310025392095474537090219986882239492435937796577395563094610430240932079228318610940983784722870164875928597670453929962070788600975249082903288077750390713074934378561742561763217012542851178714430000571105813305370518594424101057067382325349714011805280050741773767183097039341494826035201901573725341757983450644529310486754669729520268725294478999550861683002135505259253024505775752958485862169859021934344126946003028902392786678142188400944290439140823282100783472277785619483281422644302420538453980200882314183244062321316555289833137693278054145180801757936021893446421167320752964363356356923947126677712124516247950197002600551540875781541323568759895010951251930196133274939993443987656410020488118879085792189121250488625274148511011244154497753476430956559693793488300445623329096297358125415566662631011926297482594355871737184754391485871606345841771416926553318009317655845762643561142519262911468757310761391729033164182477540239468791907842543802946701933558070590354553499432875788812603981604955849211715263450315336649032391883687608876472848089227616211209949199830704408652889581868833949433952866818761498782716629679828520252793382249797991148592300124318308744999119946510917253618271075999253060746445356073122870786899509691353533751816712304273429475357268030678521451989610991485664764318701447467190654568198411446108646493464717730049386745925831817030825703160103590467565021153377287165073831383762881591391126807507572242275829566700161153776797600626841908211688390167803335360516453609157772267145639255768898600534046372931548833662367145080433688025083676051560432040847457505461190439044724768529242449693374543932194855456276709035870223484272328182895174865860626719385332635974432627884240081049015814884350579553475185279453499059793218220019976043774432015719131372826627015323074269740669658611527674574953141868658010402636058282738744552023660637131635981827680774947864659383234548476945885062189111930008579955311814520235717489760599233838277066554131016267471282790281313008237492500902711544763772523944779722051794804887624383664958150912928368021938319542125327992617912623105954224328273494744232261744276786911461226934459390136771545253853577970432846518310664833492903589137099284028154686103851768003826133943203238102803937806950862142020566174421802286411741242577501903808286454694646624735922770846050179200704112971351497973032433348546421170091315747651717407665525333683856661739381335417173997446303164915161309082989434859716042044646747059365201790040440805334756349028570948174986648708962150769849177482544609537577683831170076238383142712016691978889468847320688285228461975253303175753950926000558760381977826172583006138059015219971230721534681343395277356738792333033796620219367847877064499772001239183277992477786587952832555916137506923632005009039956071290852160528001631408374262668231727177669116959693738556754917704749602369223015200325958449335621274829771623601237297724386943802937347246837256006068998806383817754645282990194852200095059625658977085068205345542239745100732671151089405948340500020104644786256983199547397787341869232722889320306675344184682887823216369764636221376139798806806103937498881423565699501160264840628542984675886045614855825037429946607353935892899445762888397492842982704095567117621791226995950024441656717326850361357032521219926649788022611341269753134141606788341867432315675650083345443287886465113102753518031334313591535313016717074152578430844129353937027872984169729541723683248965741571722780252200391505214326435002428217459215782424548991892573616702537485622029508846720272661855002295187557066457605400773959749652238237246440047833074407376186359187306297987926491510379148133049665103608763248313473251775984277449283163171042271398353984859826006080559917209416437970068159659161099019532459174138200821750896553094808326281858955755985165240519079988924681150065977770047298295199440585637716958492759751058626309113480218339136949840817117224982412344964330687497665603204849313650759555808486100346066680744250762527590414526448061589058685598699562095675971418376625806266007954969476488550627053812691941707581663185581116010324570476698555671130594715242204004956354564519637983275787051694072211748142850387006579906301527592071646144595749771646913361330089947979591371988901907506037073312128138500216554542588189763220857771919971572335645765783637385518079105405631263345954441164281009150510529125667085607568495211676184958900977903666411453829070938441382461714657390323012305700002917770641687750127970816564758194450338120039124620881190841368533720590489112447048935062546768512261253330558925064193120493244422854383817212918914044670304156187332556046414169495343091731461575595332613678876300769733427896856316656800993938961002651144489637652552808554330503484143224374609790100511912749588804767770879790990874072161376928469501155570164730713827578236221921442692582456707403437893129065026533491456226153519278418710152144868936843406489451169516820719879499695816384837027737050769900604523986054285527098247629103568878703599501855360500280842930145473267977800641789060207037247164482461969187579453201386909899435748868584210981154306782584504243640576940416263224248460805015062472192748693628358558263001921546549050571389988349005038896687996255653375095260668787096592342059955890377273695484917441081944261724194827925100078362088788539766633681251085683449264576135242855953378631468065597997959469907855529457173557896166526891620981446604845982546737428119899984595772501766905675873551460737085911539553778753826441391612738486292184790738483143577031526377695310542349582432024130877328286692048917930715186968860399439497131060955996262392432329935144456519719642604388320032824173017592169869661504003135341844138800336440152913321220050247743958018578388232342931058237970034616805311747023207804756381046005880708572859133689282705517140175656776175658015787023099886760530293531317294375049716211438346724715429374722550048454663390538305961645579472981032895872180135415191103311149966650399821312545140020954055234171335973286572065431063889922014190871081091185981778896742462390834733267216424237122419568059956846254205132104990159554032359206544542532084139340514039506989463907750328237942710158536291141351083783981542341013224412641674909814489568039278902060635250032593277741890323660138922545773998101538928899177377399875986636843946240016759760149120952150682867308671646741462507328046236960999958074052612112144292801413963237647703427652808949581869666712746924085470983562287392528919948461722764753636582051301142761197611072446852533558227157187590346115413996641267722237648627789964060786152444813830409548684171465627802957945107539129773897798798270371406083457287343956484587544722956976800918390577420465991584090752421356871532970996641485857240048793806590624463496832110018874326682996486505930345397687740112958207013592143405664382847880626206056378895269277665775360198367254478650480619166916344735190444020778684954384457607289060586578369355591975467844011336089916982577127231827258676740407398618229836610858001041294178302418670508746302645711532951599907042039783225758248324493107030046770445328120858334580058015223686695895772171622319215424017374766932883855526902826040920300488217371843096061516652030763129865313916844792297188939362183094521226426040942060905932873013654562829065536001598390682005525933486900859486374962035259011104612884819461456714299169358466094789988193242082322423957061076214727919675252252840703117348020448340140072677766021612252691688853837223041965290569260956904311533139181807289745917250934626781772735838899030961701341856362682354805077695905962063230717121229945523610280007164725923553401975398706728914601049161503112072511410663436831379471060354170679139905130610151192197501782253635097647903593001983235354224441411371301350290443031407829361750345737528262546269249051034634997309507448648992518366514973235537047764228203975890360406217928481173389531432846003079830341391477454792554822427860160056746831303947832132870010329097710979713939371988124443652755342139587577443977332601228791777475464573855601274746605971095718759467268533076784908517875767460663791716938629329752064243435791318326150468972100481935343790810116455696056852555181391067691516535990071330661156617543818579197179933755420249356393582882554900825974289507992907436432190052851772322476789047232879389292012722170460607403714769003497205251033834044803306308636848356491703874544511251033221822661915114453560188308561653695722075227743480411171885833210398236663595665058596064358048809541924120935351915984600465842278097758324658261332186110892732026897368203414092402702160004894552596834528456479064391293277389164423518946425936165072477778833128838239354965938834815847896237905873093019440775033684384663446739503823616673344676309611433373903634905410150658699917945607316381950710972361364747362092483532226433836362904142145559057867005023850980374151431368654975701329819065749099281458282867612075029513289420561831873082534575173102694072478709668486357202868762493809406358223428956247524254916703974610049797703068315337523673324376576059108984534026320278030337716047241005200651326388592429019648225242189516938057186475669053292491876472001400851670598364605013254944811986846350907087558834597386402023394278461067370296886685237545589984295447979484723918964150844201623304197901325932429507305245588537754288162087830627196724067707163179242965390828850270808523406197202031112247007835068222098374120759515219101855419782820650864854445845274063102644969782649067291870593025780167236692516479364873225629470421232397531620434032830556692984646095027126726519879254809283239151482229715506127540053024093826733783818851766128951295437749520353268760227846022408882206645780856801070498351830714020329309824553844100536957765584388160186912805317557505130214973918061632825975899409082687305035181758872009887245592888630608244915760111247922679579817548116205392660994247422755718731016431762833257813315376383658991464321268244922846096058944319950103228969902265120192010701738254264836624669251400251816146258806158260227665676579159229212154013239014891835661748226445651536201148077075922434282655010259045464321311358058458877669588148582867450828205275174161930396085702402709269618359820876720783105622769555153567620405066986606460078283312415885266163370653369390239989125135659833212689476167488676007033504955507926850186446976500265879362518259988787416847714031792309478076390327811937015449134715202438194418958117786423259119196332175339554739545599545372057272218107056013056280037628901501510868487443334856145517423672784739344683354423206559392362381224855059183949925694236684719630823154466279855843453295768840966827291827304130326090922551003216253575360989593946369705306937001009013366639901707899937513831503591270324564998382839899497000386567290765871187377166878214688807934998977173305443495015692937177745628209062473822851806665190308907946337592159387990427343263716235198363023326671738946505119063795760646681622150407118664867376227610543472474908922034938668555477384620818261565616021624610127378297496125491670425031840466781507188182363102885990335140133014556659761973754678458151663589884962416752996604371184132644131336462873881932953522091113893787059315449807868367567917306189975862455264013475870392885540575208863424266328849385604231226611313852567528714820146194111352336538433018912822781245993669711265998597146213754218628995976765508039236003877490875130303490503445589263420601623111790744620968379959289744336625650418603405057104076528408121824541635205395399007513456702154345081000884243862043340747337420292064986454278399295850244447457478523860977698598413641126201001142053967902185205189361683098647382136539583764587383899421423802039977463580992911372150554369613456953724464308419306075316317570782378010977677072253372668148555415013422243708418184420226321825087794473456006326223124333973575636270861013514595774128411524011250910404748258468578219698421700948956025848730995893654390497147648326621294386239601895539253482519558922634852147857128738253457729688326304651619213783949005425638932323936833361684752701035278858632791774014664883851217503331394568254491915630997209867328174575591918410807368455152385831147713591723326627779790480535202763890890586136434003167378115604361777019392304637682513432082141906372989848570389754559829567968194943732626400626438090433916101033178127353619469603390532570086507968302611523846180384042461105612152815413882255829478331423334651563071444892033028965911311637088065400642074474078005452009194096676012678832203877351230636855205577742579988564520739932507821865834441490885351759641095740704745341678361319462657069010151779719119101225753029889087000720695550728312633942346861253711433437504179948552536932717227554530806532383550979341651234949652295237724268794389455159320730070628532696885824634097059414949765739264211885798095881244981266425472919355607738608497121026202767237471129482094362066213301122703398071603029978238728870593203813512540742661502982032189669038830693898719520408176440376589527205169341147794366537696653544007167664310036047150104791130979190927839792880180567967940074044403146557154755044178838969461660549282519048833527317285774788058643476478213809642669229122917152429319013325590290268077018191671192615436268517347630401610638240633787903604505991651226331481976015017376377082218851908334001466642057444095050842778067907385147853712425434371173396056981239161374311109495143103849402035066335017706587583615695534095139280370096449464071978776168932473201051092257591810173247775693390791959671004298073032113684953614890086067572730352302084559154812507423873706820465311062383067585879459202831732898901148410587137799285697862529465890516582744191106147308539512668724787193221364447017096606963723625203032835881880318982773220547861093333523287946370381818611567888544544640935063018394251489880799649283748559314549829948779822897705454104572318845498820647840675335424527513613034443333834766350344224071416225539521046659490203983832191920763019495074195077807196968242101871630954170540517073761995846512270962344145691464670727515036457436588772620213886695661325069020570059934544659357492421726959288040397326501948508010664579087120096636428315583918139840681918473263991465502950501909506402181244870071883373622614847618683759597631392531904136652556213306566466241455132182853602648384086505573395089736982632619941994201561661877795379225902757819202527900260614387626929720938837431902481707404836940702954544954983437072694325125164246010218240315198069190137135658011925001955294017568978559439115120081198030032289694352841488328282712802386235312018651562290728220943536512270850241500076824571920024386079481775271885143935718287842599048156333861965648456127035668853317139159649120385881242024076505519058686362673190826724803641886564092028335694721594158250478586618590357303426311499262063304223992075319661366264795598785096820852185932301189811154034068876891183768541242763621105673433579176960400835008244209872181781991859238760945949666078057726978545760751238451416329805575757618262779958825160947631920419944536024788486912105404875104960271673724897200657046497392408420990391357922872266522793206920996217415292723806715404137008005312480906912513492479224844483873257912101838482811911494641397324914312594179155498823372320555471439854107556926718857639801433814067409022612319655357203558055753706963481709448256347341351657880931810604421858702987211680255437735746412515487645861738032323135135457810590169469615690900568862661294192247957769821399403478722340082444003355711567257422087880429906372283660019246966924722922304088776702324285147468429787018292522643853250465421126822865667544331994454374743775231406689083058206208967506170816889750405349360458295284367046114104732526234908380314328599358077444857840157596737811186139997201783521601785860055428250058253911201538392267768391061607869343916096301503602822710493799937812968949340480808308466489570785131267800061317128104075981292007743734174028681921117301113536328486625082138946559128356379124424882126096618930052156645130231572304231792521737369462915810673834993458900733458025708393089540090562000186638180428363243645980077503956115016843295645535240169796552228877027864912408544921078138512020229241346558998909596728751313769139285694785261550301408857559422754342274080888119093949911394616027594113410574112474694387096894908833861751092693220184429939063461450871625935435050985117886264117992539572240585289695182852489084818277624256740906062501333207601725117401078636045651508873203160794495336315123737718451212249255564120487146507465279595256240301753794154610788016517968688034216238486718085416284763572849627406521702733115336958221885944906259684919648495222990313656791368945137530689656300986251746129439473776178883559515621701428124010107484438771606508363494539527697937449201637154137151636028305303280334964775029747160603426679469898524192353572599279188807516753991880404634390087439631601897832800990588524964876986264276637430957435574965162629396106429288764014728707371694969090725857482699531345838345471804876426702515288194483085519094265568058733341041398522799807173506759024140968585261595300028116675406284157685461636266728404062098032769453438468504231983747614726976568999999223946774761787030152648307634303328033123794102763867062556104107491470439377575551923606562987154228409098436149656470717006345791040219779769174007688649612026395077218734746828163122249320903390273823372901955488782551012225622039178778863628865104984468878211011467827600674973557723392824329354794137626304646977209285957509759330389987438440627408013997533506738244681492693605321887548312731231643451636856582366900823869143002655272994433070630360784198042676186268743614798013132326403312061264454468272092768794662829201656855689687772276691618252596997977697763473798896999548763825014599750679251736958431395911398166508985698181428121957395824376931262104599978113238474196521069108855151725061935849012521301844626122133747747329376014807205501927132289916195140476831091119834435343912859415784448901110581284726346888710542682568740637461652738028293520614041833418772587585146454622026684267363618119039881002664675164380026121692246929659414242999571618431049086738198936485678674909011360932252215388723697781699602382011616059747653520515499385257412006676152828120797496750187698701354658139605338877335575014417735986653929844892739118024632022944246556243902217999541736371357981729310548861514541515586631989935001317352300446161361787626055048161210018139430618066322681078508577685234605513449359125418584135705969834496896486944114979718792295334689613031516113982404139597860547391074830601228679561045335421576455446843132252940188199806514558676087348739132088709662063822341864743512921255446337025568036778525662923573076143579134517728186938913013567814715839267802371494364792805822221126275942188887098014198210378525196369181011302833041443356910103527067017188137338909637566156315381539975613582475228685806279272941422699624683234353723793535564802890877325306116512928865036514961022795539827403969326964849594211083694452434366572001036665958235832964681790472892725070774588840535817643236295977019429461503601147984378279637919460484259680807506471497698297881571072787531971385044590964609662006433101248570647501573832999892814996811499386312867553835099339655693714181490327380609716946839134997911171812535712345044915156735946608044670918218590084792545368307871142811982696040439525485989206872858417079206195774036972970220935761706900459059540130827796658764364507841761035071800683511039829736015163657728999319761170350402888980081973522371806418969410080239793720487467682116726084924759869560292007136033789094043342605710206138666514456183181118547787650486483131123090323185378221109832833203219432318948880959139867966424736076452775442832876293144140695480915125902166886956368581724158823144490822883860808242813033871034641297036338743958394641008416014907678878861773282088080650909781055223943049941598138541744647074349444572262943155842989158757475621827746496325857727552448856138635410976597357431132063022014427810544262416284292358425529994113608540245097748358597750614559929439565898469809088319009093729037552302130249632535262367160316846282118409725580232369592586273032789790087647730522763585451229779577182456506971718103437028827464464333713890608536346182992818028955837741420680495623465475547357898337517575874633823661700595942231781411335394005973882350722325501013078791424933375978432633205591970174510766537837378198711959637672399787874819499635387290256303224810355111181426343181699698462307357040038427605705271997747382291795442396820846749417453423101201065248525387066224386762289440581282806542439620468471056651094129612586876774558320775469467024942120638078188719765718671578610719457312276120375872625154361686912060976154609900238945172916164800470593955009699216983267933252453629312282279684962626474489170682078498073842496091182477475446899420200314440272728043741532787867825963453187775456695588374965320251753378033638831244222187315034329159252445163128921751841296897021862394655825235666762958800706732263540975140459969221494429407878240327854365834816581057023703574354439397318652466538224512714797866545258269546616015771222698239384741018693242761962609198429644193913911943492267758537787318576147345212431919883539591726821946670273452669378594274728834574119198138367097610363539803500495272380195796865880220345768826981156151789453487840392786898673201607919067549519615259639214239949519512769063258483086388361426586512931771702098378058739030285407234208610009829597530158311893951386353842221285993984387187001505082254159628873964874351004839943718824390647724857567233090565473787146497552318757738511417617594330761939590446171540845773579385195129969143174852340951796123670689316091396310530497021507210851183238646617034183304496596543435937361532857220010924852392640421902753665477099196965437169728317917414820153868646879077400967060857342758990360040290072057426544167699931781393250628122279744792757381016218060922546856936136026741214713748519377945129190282146014388302517460280105066017525020431919415623313615575004301716225057616209533531237989998012930547592023506581960717495407358264960976800669445837239679750110865229205389574616891294835591233880990558507719188768869199385873490284875935454437395194728055971935286269856280347679004005260690654514906854229146360710490375867483821625863698882350716188550672780676551762525852349058401145359364457472828901562356572260042981208704298567461295639459744871056161497509786680157448932203461722819172925588687950370921741790921088910520915254331038689244384262898298161555181063128457428254793912131904681751803300631718901218004882616265442663048618646967771508649497979230550758895245921429653644762645835683603137979749421536915020183019906424927700561938452367745450704604840203612130530406741836451040559812504266331705118388201077027075384839815277412924391646791976798051855998780186745091457778876616611418397432819229582060648615968602028704244527180151547852627818955966798929512803428133831054199021867168942430544792827860390668068454499401696791417572890002834016915927816939121193866018566073011981495035066253267485685277631440954092652006782880057150207195596479695184879248236999972471895282884809208002402793978202818286689637107145914136820567132583179541939246469955735347934669546446627287687938517922563971984184075385183254873542003127068588672188569257182055620530219729924954834331430291205103034783246802446083230616581528446912340013357093792895881024576315524529086877249576990885946194698160119475298895842221215629481656648490742274761039963422387797871249337719544473864637510907378393826866877241702782002606628731040151616994469608638978872979462511712214538132110503515755229497912823338814327661903511334823799528862353254712287367327606228010741765144128604830464051928804399418529894890332607031612457162116320516362224519251189837075051056429960741292329103250528734834196830075601966183641756506102720896886201940051997960604335990620156912780760209877128910503696122122831612660994911334065870135490891926302462726770832273603403143997667251202023449720740458888475969049109620636070848159478732864743666763441588798377583541657947223485589372674533470756700439689256047561941979840064228633007514444721338162720314072128555217168694499676479487731973656141003073986954353094623109849621956951058631039948963842133480595459416594685737582156331361298460603174102642003302296252355601619813301499935798102672253724173269405860510833875559617229759392048347133878956669762807494163830188582138059197734054491337948033528508095271515599788410144756273905494392230744701521157773911054474423601549963648414119989543562129326062915437478392877599638920078818499232962292026107207493363803891470157362109910307188915807640044927770101357101529975463280936660356629260999558410025728260022438885431204570321445751509855145141558709227541216722345253846216231667102118022379716583228492830432505007448598944649694223831465570225620000383378754538755780024564186767483216319812676868227967199429984498356521140732434778904372507466362777519586234418118902582648102005237292819635108557843493547035520537024241562623582918933248994208092291758429172295036904911382245966922227939966093459603981406675932158438632381773626416985284911476837579041808704810194312203356094569402054381694985130988193923644509249362104194760306034487325776366398256372396239600437925803688885258643074744616117543919432038796433408298565359402787727345277834556261548882921068486064630982287370524705113225814605435664797413300495683534632103436403758773376372450542846145702715104278201992407585725655202991087204192034148255173543929249034519923183408663012127547954545629566305094972294798962582612561463078588647989159724768916604888269696220099367842787559633246138895325117472436955811010336032764032724132697799953679814276233810716008489320022970716226572795657604066246957788094845094101572147581703034622956303356580770322121573990301488949471843519106167982428123686965102825539357918591142356433654149105403606912222991437981626845592090062099707210633792400828433361478646692304196530481402839862036737927827308321763173267032057806874845749176998902703382482060700362599046044167981034714198400938074447863457998729626470254896269031482557891521677627484575367187764493694695361024441336842314624539431253218097697664324938781510514004217431081600335352344974433431525386355289339209576389050196322344255192026633868214630565417531599442783460608045601689377158139640673938235113866983352957480947540042342580639529527403405634673378843225860755404864329696432556138760933894143574331527046835690146711243121267059418206490185940732596912569893025455011137257734137552701913335455634949491730414772273003292966850673439698251117639270954531044221602388439550725118466867200113331809187044283122480561224477509561763438868278882343664375196602613619401880572853663225001250330540342292482674418668319415709533856797199312381763208178808099998356072388274117054632936027047362936202487753577957925730161086711350501179291972841624146570604239663830178688817495710130052753127003524285719930341686376155340962752946184002151881387528231229946703036055709856106435513951818550014691003755489276958536740235919190052640253499873654291154297636919502023966997560897533755549369904590017809981326490482655158505341769542010308261276763140147211100540527435825249994805266657037656053372831314623248651717372361224889450979885064994406655075464600538218325244469079309538287978764732906980514432354776040662047299075160515872913754127799698061255923196548814785260656505599206184290494412200124036548860532989735249691004866711650964623109935205747237514738693620809616725247968337384573612459219908554248647144708601187571126301429256346484464414982403475807589791748486625711118308113673740950780849436225390796250189866497770411666615854123610249545692854820637044360748514680058108688678894769597472712454990250439744957479050532896615072655445635511320765755424306640405507950212451721984468485795426885349921199016792556320245175580290542430832397690197945705323886143661723199819520662346798053949011645711203058604800568455225498289015024530544041793894970975982948449161413813607651548868249035209013089834930301958448203570993887110302611252362963355791187050266992866174935648888185011859426598949901977546749713064259797207552489681832673278533803929317410298180525932658305920941669915785317432957149512448158930568568450324297183530580014091679115253063653351220204340732371691990896835338822453197372991865052388349243299835071360023052700789475543233596552606938304776435159998571208929427949175452333528237625592170319687662703144173281438872288479790501440202714317887724751390563626146017291080452925547434765047592372542302617960926547459041904501560521992478805475480006008668616081446763574324762418949830885517845634422184951203618463365219211064229005859457615655653654042731224194637192990705213796169776107811720383217351702012099929122870975414689045525702815430066499038924700355241021442899872784266330499585393619432251361702519549392703495757793957833201351548841036787792282324170811864821152093336768983348636145335347653119553751552525718657643984335417739131366226162753808354015972787121712656651281247176567789601145141925928600356181750391862868204108212974496500862470290288956093886799190153430779452679545787796887886946703728830477476626613612203176383452837685794056105935074730088159661903818177132196390785301702516631285278750266025748244738006788688397723581755256297280344999436109518716587232271119855372691341658157720830883114111487203678869332755196601181721024197978757661254079350718088470034073106312846374187325318963085813136421284217123109597283756139291151274521456812326415713280429076644504626664414921608681872088622569649456083864776203257724494750327644678651833644628474060758088346159618418240376867924479396155762122437109376869368540680832455890452006689905444815766595089317162314652784749933067153646569124310404314206962225678136042750247352655826641052390040677139531645239623891702775450296527192076993758995182417169610588086571331786533613322173654910618388257259771540157006902983864666210456315462926034413904404677406181255440091657335847921303928182377760808794112238164571101770270678396551693324729826186517326892412339172297764884576218017266359012288085719358597912759092895415602000735200722193182686272394150198008838248299159338232504325211889792404765986477167220220366345756967582504432971180301376188773228611899587257025966914308811310032461620852213054449263085954820939049405705496154245622789401496539694856680629735635708504993113020523894331381631806270294128716223461678786515659523274440556239100949686996371073307628110749649083531976042100766702136276435993581570767551803170955237845477557106730490509238137139908872987473811541035401517702361436639263604766868262160460779163602507912558458886736122396947011361312008906251579781471587308683645449140489217082785752494569586795992197146668069730466951320391218874077240884763333265787945137048532462603873666454824026896138408017916128558188660735054082292933223941651724819994591379183698795928002763721570016706270700654380505266707021965408022034136961762784453164574133342201737859667522840811237721343601375821581027853231439940683281114156373277105787522314883376670615651325117453432964118812649115883633521771939868817179323359968584248251309510454567702398176431017961337276492533547862760768289786088464604179472542688853005616572831970235566545088354152521816822971450566520677495689633761759212382089279707929455109093857389172259631672357488266261460023966040384586920343163303267212507724662418533348138184533190384577223223133701170065326493459167308968520131772172134052532129303612789440630111296197980619983876175411614364554159902472559606111062564850516117968484019548833857802440082515341786223670128923779138652545177348869258988889662278748267394463497919429314050730299989917635796227461581260221746212561621799604796047880112328939877589798774658682852207259244662456328318748340130106364755925492397653392775288226859953186559476933492830572668639587219820892041406171430387905613358319104216048895651948611119894117814841236943282336637006163194218834708125355853184229135842256131320311210164035253093255720421862659944307924583098229516635246681309228869821128769900211157137160004876155028642452055424663906186353993285786979652272916596651724190534157849391290225609320882005219083272292102738886335709684069479762685979218444135158553359107950878973491064678730291367145437113258543041219203075657260125849845544794450251556473600683841241429044264171895053398895889438599940120861906857261494297834519984064231344923816365508456735035114279494036666225391358577907708424634775863212351677665920885405950960858977883978315682311378134156078498652645272207469048956586310160352047757124270070548478477606330672472615417764711487388759405251294160577911054298071036779573807694824512835390032808590115675573275701859953837824708044297554703525661492793376464594598147109821144848859254479638579040037218240760278121777180188763471777579692574716728254826342852688381566690147186135029542747694028898684797375679384164395468009199718913640991486913781588347198347337698539491856276784776904410597595539910374999602141927266609926661960523391101556262642131842510187148103593897001709648635507438477271657099712916700188683816746018256984525564973334473076552297848070826767159737697236755805790170173779574512220301133125694445832666668537370301626278052484841539361449892275031879501223184344639172750276427435023630181444725675010489405395214022203586581593291448237325023258607064474750502281426062352221535503873916872639042684964357023487695058148816318102534070758652758626929959833087999260881871994247407253633385452822861515820136728569322913483388212239222274905074466550651890791722813607313767692427841473244504210367758223888596793184397386610469438118092574372331190561728537139665249016187580329518960241429616570581105775665841357529144603497499413859696788618159499803661330012593619738572531750984114091080363520552094472174913129114488353074457755736859549980847175587716785535941167357914212003006264547885623870756733188729076855769647007234938044206783617017136319472698149721746638475658073567753380538984086167646192029830510925814619957246583473893220860092295572267930478947346931230818607862587087413768413968604660387638109950887489130168324826871390781167684120603619219546633228879741135137261836612950004252978723252833376029440141440027971786216158971452409169700410801506607592711388998770063007897998977835124254693143047983467065427599021967513585123060925089523414817763660651596021601694119625044702247864536069324636395186173046344893542702695121101008636194718548251602046268281354245541663208757267923269628618320682392791237825793546160258549847950698082003620574544824865545251319054024879440047053065360271937852217356906607817168721451005368795394689499423518384266481894887458982308204518675700176411667155880999211870189032996681073787764788571586239182724968424058496387213005274701420612207536279663543929066572022469244262765908820299987764878342930891165151192433112493832013599358165010821103140688049289450165372551126763128139576903140563176035471524403369281698739984868278699259163989035509094532548665680750461005610695257215771328469359044458175815615972907898078284384418998568250681481069657911361627901138537372274996044366926689060987872737542756825040703450041486914250362867743164287005595046352140200132325624547160340770041515541251752174966932373495467988694238533490125761026809761955942456182601098245105770006819666103919661770533904625961602342789383415100975864748197677881650410420692348854779988338269222693956770308882340746338981796099113491208712301244848010126034877035114943156793169499401782479318631075961963707113872787475265662753239415197287157349168308117696071051574412136384243120971567228269741780283743395179273642755833760655759573898367025328475182537602227285187524558235826679498277473476843490343889162686177153095808997347928189017137092048866401259079524907104218034569996326597046071878513997228190621930156597358121526386899616261535177969602624698499318633363728851929593455838568900220372368565711668747921018824346360534626347397905527434381980618970119550485881080831977338687750436361886043951512055173393530950582293565874662996947882227390503838321189396376929383996117930378850189213746760365238092786504994255936488579751649962829835782130407337569412425566057049099177510919118251042988757626379493486110817097969189106694617996985287781086873348353832446204691504359229472330362438679674260429073931461961365050136602094652758790071192527252258982761740351724733018913334542001863069027387646253386073773519478851873902217702236314252070433827235789823921029941846028900396792444093102718604360029657805749203129811226476608320265614054641359596717901612628278729602529191409532755526493486112459636453767162271519634066242501702051556050770702193827519111462319377865131146135446103325543043148650383315596665301225247896133277515984226766968035217567504356469852790006285854945714876091919055824732736211192320229064952147297926263261222768237716938655398789508757745224993206562169670249612026254181284757219710621907943616260626453689549958692728464875158874807103326349643907369832617188692780439946197990957504029935281625962485779679613369003367639742012612225599999107691508877711932670483356359882167237631068168402920219497353615394656790344539907714240965245351889781083791146059962234321488439612651801822922682900556497431813968215579020487986951562456744319605951948966004923938543674959691795572307410758955907064363652876645009669413472216448774654393691902183587905403542108572187135785749391930323543228482920811732949028830952618141136722353578975808531784659798132015542812543265684508783810616937971254033720393351700341142684220354280653478919392887460645390179650427141196576624978917027474768726336615942703852536427911622795426908407580385514958654007762822372921331402372048847255753742413164256806809637273291804303029592841987617901738707107611794471915257053141699869326827200746032590546481566696130059735237241923664206999135771237733270670557463718628967086226806609283799097682226711235430954302221600992753230918992777943354174470307947145303041572287254889016500208787973628254115312295512719741076147665505932020406315578449141467745282706325351784002390497359914566854929683383366909472925022646873608342723258805662430372134325542259982714490587726113452158312117427120167039062678850735754353995072284875342235824006426610813752334334842078864242535582136950417951883777049559874726764612129241840323432058541039115521248209604872166652224928051769162331790819902737885929264312772272014332982361311315252124929317365635517446979015701306335019783035547359147061580926872224043963706608634063396325905290757156555539287280724277329430732635779381615338642211038794535250737340601702660489447984065549396358120476522204449403605264040862283764102901246806076249031509645798352636598114864928721198558878898588897919790603530506232115565146341093625732581196653738985810249286638131168510010002422569709216463261814563406545672970089301001107406213248759845647068426737885660356304202814481838810156534202609919491868807932048608518884393219173862898336890355082891233034983806522297745268254086085259587363657322640078025588001286161456870246873668300359951803215615621827124119257182560452950898799426610032439141315938369841343791738507349584659350887526315420026214866718169063051461672860760644027915988871024403899598305701206034901165033783208896720843928480167923395159147912691610873147832392335179761182587105035746952422315296711968158756986635257321842918063032625416379581559442731624940739356540560562557072668693815148578192398572529088436642290582475635391518147834915328625302426220467784155273880141413082401511403498682004221697685214602169855943741372109568047873481460602090704031400529673325774743094157541393854547071493133773878827285919746992106807357952008337702780864364010306335445202306736479432280940359154466524179219713888852961101219379559102198964465542243081217398585032945066656009364140968135776747918434812487386647394986120837635373746135746894249140728994021880444951378689480244227343940049725789922222260629877449813774664760119926856059999513315646265717212022676098511063616145085085792325218817905818211037607618820538617363023076031439958446608548490954773896179452123281048298649811627557136761748322742445556112582950799835833883802135444218296824435307181079861512170522914132991627108874011726155836931138265859659250818114905609527739872427168136953051197614946290748768532451976732534078267910129964933560937028416947663740266551711655170531060412831476209503828042269224402488703804793804245179389139939115320544706913960175293763575690109092882221364928611732788546172492035486428418447516265800814872025231945159157593419000524649521938932901174728087963682488219207800068167029069449727397010434763441362080978429428492587209333116490209818353996606145054018558883950055804520005063651335877188664194743564245445382525718060959404559715765463991722857192051592163736038428802869560165141858009093204007637256719611744549098052406705108540101098527427828812394244182354447219486765715948108144655706319755703435991476807528428894565069265760694662252034755069949767109989137927003611729282093027358139650525771771971968374420368452613173151023039537063715960607199933693598892968890948223100996095637210345923815771474959837383796276431522881399487562190270511424768462947101629979698652678498064418415358133436512442709767533036285888273997180938999022820933601013642538174138690972184098476035808105389626187723082781737799862849876032349691712779883702674855906432473990400680263025251029649169540293220536477843049078303215695576235476764299378921641485574245353164066908658739164105502717640189845761160473521578714764288066578917150311209373520008884242495267397987461768084895349895257139423846628705969231743067512809766378498714928846090624567734975255664188917966132341481290309407212670733408247771475030223388690214462990923762735943749335245300324229761539447179736232668498467630784167917438431204894944615615261446160395473567546360311944793457486851165381303186675630547754758716156650123812790858654727355905688580743896858281625635217672440415816029298940685061442620265334581044057693183880161276044936997743928611156890219017302251196776218722079765895256103357136778442381493909468201095451116326495305086118424942009575698593117594038476912360102493616559913869468254885081798987004758925451961530263277280492930667940620063883612745365054129000796816022058954244048777907833100713487775807668328616399483346972233110967931973626182268991538698575048057984861882882008748924390384238609966141504820024372251485553130983178608177639057696291978734302617017520312609349404182695012572547364449295022862273387458051214675034443805461127439597640695617707744033732626546721518261609356973238922294357756158272982231435502458698128337369546238349406639484603413024632616069792147354358336265715794196879016969387558905772197474849399306977367508196430485248101419638207949907840286254564413737796554716971265463477560201879272421328580284783544498654275039197885394134076417414305946916653380047892594319914295688295220935352933989671080138415210977788998348346703423067116459744423219100553660572002782205959367690746467279121739533866603185557311879988874115322733707534162009972551747637867139918493218864281091362290258330414005693751284733957754996595813181721705936917811131952385871085220016823523240732810768246668112053941091197489177405603800242378569309476142214549824599531291209266336233226986341247237671742113777189057696905102967229204780336814670607511947301586692308907042804077666904941222645958678738581428795803645896808782868166938031377983885487369195471747582841678710994994052053007856110342738834576940335403376253254178632511849360772898913794757101743268283292946591090292552644252055048504835531003915760911328051688776222624486136431685866474759766619261946659855489429835839976145947960516512762127073715084925119945434977239630360575409585670218542826687694606428750088786664402820775137988962730389638053768809489598738427539816079567657687235433481303357196786093690686487504354864341362593357593433326730060446749032208401760772305707661959807482189746937302049356003640742977090306192794944680688529932280733711673391960738720307638284227226954230692610027676614180605220781680206809177730762764994030841667632555070471202465459759356098720396469765936684094733071321414930509619273419814345093227441317017164009939076626998994927063473282633056170840585013938877127700090404598334869419311661532025095965354801658140196860940463327131122575538771002249979418190250688395632243306086887558281526931238888708756999456716279238772090883837612870872353162285061270236554319442704109986888356822429300757300286516813190265109063942838930362398879515941005219874652134261586035171312382135943131366050850899443590579122342853079789410966660558154932140087627058096560263664846871210694867310960354461283623809661900419332876769469081569263085937718598277920930219990281803633665950813123317987580574324888724442072073337052942918638584370595953276109390700990186171321089084814745149041596756714632923598414337328631799797388572857446200284298216456918023185849901429209140329924402529597934017459508767256552849391872201125487179100914323358661771139446360538584031044373894430114227415952367056190511754801464379043274055023764167364049287350140297152928394345343240985685803865894873781968868560978061404118897624656346761539222893342557246468358007738891951269618609690049926190586396371977640575636729671400754002677864212505263089619556214543513160045947270160552570655114409838405768356933001734919928419811280653611959501539797106183532151134706331723435668115521646369644174019532260301577514278496767773236377876998184286271039083281271108644740472451344474496996046647708120253067931529714012466518486967867657047998989538063138388958221940475425147583685043674134085747150522628958212092534544926795468719223638426523358017718029459263237376178045137930994796421650639426205006102011733443588534705182011369735839113517691677812221986605326423002940403894868483169957331203825245069471371332789227553423548953459216383284708166339503672806751904767336300671212863285693631329140799523602097572395552317568751627197408278413521305472561759765936296219168145744602410519083342278120506689326272802705222827031883904777743629003926096971789639204067029245021049356711438388397087098282937334134227699006103749149534144133604148774419189961631576906487212786601144461134574074565677877980531032366874930601062065544505653677345113467195591628147309003903119819667406218331801103494595801972740773677831843821702517097711578737117736558474646076261199026568577923420577020822136606013743210705482455574404138652289363975536679839319441435134286771169463277434182449389168958404157766778646232758157630001901500721060901602046216503514753888689312224790956562711307091699071608710752172159683280056340859026388107017159559242725493840044125016071152430161436064759072933376812367515866212563475083093020094173424888736745011931826019470884690861843992856340929031207032238901533258506595794351211369739430183990044445514921348021966846981786281575364432252512128762694097217812949407956864411631764356648043434406722356323097574789884508866530326954052451813421072091208334307891415717000214583809264020137011500839881383740622824583216641511153488641433852289944668549239509108727732729178666327637681952718497977939636497035714942599005913867462413417852902224814440229990956172068628998687534341038074078757730298962049326848853367906236899406910692143852687823011156836282991577835295058838576002322318501492040294537374716081350048848540500400443678872719965929030109859791069489758626758489578095566184775268194973558769920653241579807173976371632515038287424725444319479631556965969156773795413463067713574562173582464229883396112645518369070029782964359843898401861611332507893148390051999267393864990092013820867068031529483986398787862350747667294742002794525507101725021027453654015612437577445399482938255887429779080772024401464131063901643074986447441922420923859640366113326916191732260770920681476419705731661974588330938419897022152919251812590316294479178242147893949274068944040688120316045968978618408450609342968279133453054147979077473514770233730948526317692245261922301158993969476634531563331176416985162603596265796967859234387599790795632178966996078009788347879477067896585085035024813846055918936544180504711170628075706744523160403279905748479057440631940288640079336733751504782781376997361853093666858972772527457971608282673128102862441526522776113555616551670838211370601080980856729103706877569087825669287493482033662651665127325484407012677641551268474558670521393988786141842411341991276993288918535952740614834134840965640310887278198392470473652280264861312207438987461733223130649413370963160311334604871899030157347853649272932734871775703547323137322646642175113499619987085863878045338384877174013357470112484663131509536904483518239742545706700348388048480386577225785091098581495035436048874960948789094275044334829650806675515459045301016791953309479064396308051022033859944201097070087237274416868565087655049906438488145140511432827120927102627136337153666890315766927081823075215447632686254703476653234906136094724799765049743780156671588482596651485673876385251162951770864460832672166699878410047123355088042815506683906189679942038496363335074471363251960510243058118966910234141113882783277673177517829769453830922023518353315692086345923887108332539119138045913694995310035765542643867019943661633632150121939695527371985326779576737889351925708782407557258044236555684635153076110078392177466293111041536649961167759266927179580165453275628073707797418213523623452032593524932086069352532401924637594729819980076313428802254493900298778843749800990975107272305393015522215829464994259712939441016830977322345474951001063114875075014310676334261041584952389453501316324305247876083783377184591598198801139929140943153591595285943877515451607332401498685981249710427110025112315031486277134931260995152949416576688579139644655834594275470020326442809983936004782063422060948463634393870390195344634067535297654788916416553412306718061418276089500834597707857127382488227130944445451835130996315608599007139766404878790081086003393410980547067101754453293349870362115867493497244335703029389083312843620144670340519360163583672011788879518821892870728232235122007918383840729187742570314713530628604733857108307308296924071597098068000323301335572725963711705630642482966329626172981876346785456710850562834247996396734963189767036104108638708849398187921938059603296401347841538391486673811892291950256392258688792946398016698986705318699001978053228647520400180058418502204928156592029525344283753180547215192810624554152968072225002062657059291165649048138012854581680033986215673806713407890046852035427581165392128230164637722112251743850154945483846088637983980657083082792769299346986273435082737255446175301196526693624755096221908557398074460909022586944702965258282999728700549048098380838630734482009761213219780180932439852466060654098939427466727486388218843766618906461191586615415940482887747851510374072619837818185857761836380968442512234982523316632846413816232811364296248583200705204296056094299021043113771313793776471679507576317138578331256027739333189412830537565890495379878207648441858571524471400853206078726222500695736296123998727198929913883283039490656758345931129677246667413602311442274590329000467792691559496614474094448786780207126248398817267359060376873552240208608414873660809949486974149673996944057521038485569998871963597639659662867666087445809568939220593748087085374701734814306623621751210051107249478796562557833239751655948890660411159514001387859779982574354953432687060860391773977091084740760563534053198694139389812086896165463289373741922403129954346047573838008236697411788497669542457165985367930569038453548352294505725731278718435947669933839522975923400192734201668560296025179025262749163339295317355051570403824050560880616571051603194552280032515732022613362301405846396851820244003816123570948055472692885855938271235360619066653572773224994354671377807916343061302494072638187392220298091943931434815357777623393452267281967230969053758940751756074621945088193621104998786165541659591664894191594506930879682302648752230802600991159344687989907926809802804346485203939785760201676795911690199885448576441782840655587721699299894669230617265577530052341859190851423388640254785337877030612578038193514610459773135903058366547994960678054235342426505250995589450010209129990075065764461623339226198830907083602212761723740942865170735035021401114739574119452353831055509596690689219644257952045429049540656693044420306399621046440993851839373914729721717559985758870207537821479672671384168431813886303795382488220237293119880800917948535331542182818293723582803634982596556339277899996737634414212532466863779930301904462527676465003200783748698737951607069405940747158503486719390458321804715043677446682462489412110018393095758249629187952077448718371486030269290335915945636370527903730037128354003087734538566280390528779495961790542264307663930908956212310721026644510640006342694367889411204370336815600772293809559246266415955474499714339033254958884337768860380277386683383525406460966443872599336789164122173075884211907075906132932456857917348085243297335825803140733770358918943181424103752904666808440567919125008289599578107871061513800308918925539512981796102696412732292662017516156946957911148329664876247078662863347730479570694896155602348244420810444209291164644759043993749014023223912312487166656459012889448143506877163664329145665693012544525655114721106307816610745385983278097522483464424145434611157778685778973793196520693190331540210689170917406247927053502494650391105816816786444940981181328253072468664478509201302050605718914393796421858976952789134058787716549092528761615596951382930863479772611040718335301538964505872800596511945795822644710295881470434164880509591640466968474743584243382394457680707335502173711392372314229283056431634523966642027647112572552428934067186936295046948859446483732146661958131036100376884604618136674862844352473599697429209055254565046817880922828361356034316143457270532508563791248342320853156472234925161701971605165788868117005113286189179298978903665236462227682763168801491535995994947706397300432376759411692979709709335641493101630157881361575400825931652613150683322615031705926950784162698131744790226641892011551634545124445306741806902516076430548160507797470786527037008694806885369990293982615244206963571652390336377933183703052200960572731387146837727954918712550728002951349712644389839705317972816900657840258377574107278071710480457044082833189497917086143977191281524019020260665598267877459059627935154556592321599761637303664302518717501011515084376351030617732480629089713212994385769923734887570813847275365901818169087064653032427953199053584233839034054456390733453164797844266010297248425908586201339384185938042671479515047354062320567083624663588753391160508553705830726508504165584074510646310960152415284038278952681525986804455306780954474950722973376253398334251793652856488892371792391894246220310892422038225716329740103150492656529694071812482021203286897107932442266168152575084297794313746660515209258032474720334397066788578314253230785492880376100891086537869139756293520170701056219727889310097425456570073105933247272497700735859528198371343974282699063233710143296082835772903528662219020506443092906048115537336131316580412656007861801677039985701893135994238208044776548540066448712895485279195653884545174295342291131388172356394017899829393177733940585634459595799607126275552938361200931517021525295044850235916045163487364271900241180808781810204222109593034405956261056758840749333187863199578729258195020279411026753605006286853948761465463310741214896812890587502804541772899146169030303855628080692032734572426737534022231650305412462306932912669416605096593310612107971659758045450197545379574377979441288673141898559095662965630064279819940760615809637594632524351055438663386016193122123390619599468055245429227623376837427524317944292001643489538522276646861561575945734134976768479056982037177748859719220163869740620086520479715684692279862997734044054545727214264603817671062779217957935480379237722782787110043275782420101115078851149954668941272445438582462104075448168024473274986323200504112258549508876947155949799947467245373745827937691228255895498186496360548486452373576675548993413267202714006980204357547762630510101079624684206858118216590335975436638983376526804218918435512123298568253730745370169375540560618402056409831083227669058703310444623259089271324349104898046276519362964145565704007324904840553177923249600298023450528834076135990320341045618585609222883449885299609906785763278175972078720955477393254098983562878031974550643730672001762925937477821398411897008663880695951435513866516086693935788137488400569848167306778639697496535572118010570955624850798168578465105431948168412809191336427177199043379601155760475011037421236249616983534967752190435115965643966106569181337277700791265017444315343648180612732737883040471274531759170458917378621624460869017549219407081906779291503701052494568177392503732259098159942348100882853429988485588190141999776453625288158145382165693804742966122956865141333674027787064336516359336985728698644423220937829165509736097675144733105151957434147210118404572860586366728256672988139799389239619172125279079701478631872143594952123133846848604254314383762142741345433349015312727005674675044348569896530550180926379317215216497033584538947413393707004373990420776325329510929996643114715105078475434706372061475724020600201146989970433452117942459881747820133361409068699573906667572306758785182276702228056776156772801238079932851220140192812464030341114761474021946595365585961232324731819471815918160622105060661678669119592475533071123231403584919516871487724327419172587025354119473862027468512377154354599272038000527736450230148257918499351236305505499027703975067428234456020154149594355421519684903538951208745920385639259207512341958429083969588660346705985570688331005891485805406045188349249922950578922728730574468383455170100950527468469717866008656932278482331237040126611084297222650237947393423722027668652369941007118859409936126004385131161472868274675749496094486745210477982736099528104837171294639993666258762982957107878087928281736615693958293052192346244250895202673896088798657729068249911638062468035604173787475824160767761187312156514976993562388205978654446548996309456337005743360346262219263231877177352559291505007002290379913543764002331889585115712276815525738884347844610103612362104329924395666548492687739939204875821981537671737446502990827185227802313013492515509960898274656978692554753797757637302623635299498682257326055272395781929729848025223913506623193866448962150964562698535803355177468193732923161514961660441643664200806948910652157506670645796002762897701784661467629502409774469508827569220147480322217253338619414977555568807250495206672036288380417034106508892830890706344045317340621734089448469516330756832506901509457905161493981131664454911140814233521894985648997614861411245217518525394339726354169318248600725518762999289545432811391054026460839942525955900132001925695257305140175918048980880626055731301609027735823473962499258616460354020603912545329561670046296718077658323706187574290271888821151161557233224803000845529976687212202180092904860847536704883141033879164750083909196469530213194191692579695700142571263057433317703839420732734363322772427229669263128199705025279950494244744728055352558403230063326346637924025466287070082720838194423264506994879518163376114230983621840266362046819174008309239549969042193422293675180976857584483295432071451175954410703860885210151826538497687093029584552446128341388768178051868701660857017557645452847862382333655124725502917579297553822410779175404763015164445640520043189845707055537162407026089518474168029115388644908621592417320864510210053313986529747165533597989584226348930668543773817922909121245686377702420222654702050812000516105456259194055851720439528307903214714818816431738093917099761477764424672839851450225548730395699683896829807256358809209216579607591645051156221538676087496623478582314452224763527137763778409337833247830479682564593015956223300752886606143246776320106082846021019146034024134975035144075910978463399547065424892902410686759661896877551903835499932959360869313229817373443191268433072598866869592885122912454701448480301395100782164491158730839855042972497970832458526376799673657967728085923230754034668606811413393482685231047876058104912356475883085736185656208473947824958488951913547967340910298122467927816481600717947936646385325711883099121705960841093607304522842156781499042747023117411500197590819831126707718769711066498870846132004139749706298321482454353684198329153842779633640798475865393869533705824613336877261622131737940135359733744017812484249744494134991664527808434362009255404946003260312875320597456476646797567602659439925806246878080493359766200767036431239597216605628121839302329079142964575276025936999584179147105362111171928395021822319269369059910648084455260247598981683193286087696099192897983419331966410810139746688620084401404712639374349925954623973443177340798960067321412496470563052866032723282723795690067404006785520581687556764153086543993512917855775982088023742773902695191631397147393635682343024301682680816759957174756716857118377851649513108585764390638569845078255989988048658354635667630165774470385594321099976359270780923247246844310345785802375069296290634735022608416361622115915917972837980153799614933692859923919530707618459242766885306765406864598673207477554038926295084205946544700985518422133950892497955741601992441347748792396163687256574767165504759039570358782253622541293156442494907034714618191427353097489625902857765805921099409307557629410856318323034203344916256214599585066038964525159334121453171842030116022188501725701297432168194572089738559486152045148810692972709398110178155022354923730552262980852382384936427596986725574847217096757781899325857132831477965447847293718865186708247259737558674976666746603162012954588425853709014208931451749274469105286099885691411348919482971770795756896564381854357853840158746842815635812673733989744447046333708068127117288384932463917738608859058408056117644818728088643945904679943897909556057106461934901240339358435996168264930988848745650634583173076939539608954885898582341368420183306696898901429766195803586608560885440002968647914175195812408199043682962993098651374024174546216847393906360979670993214927969582412294783355298765557634386519875572411455317922116832276387589135990028296536402325429109902576968572767053335124016964488315567993189958502227783486357233267268332482556572129174004785296629540573203409540536280644678600826260666457382112385082576745450238136689951424951946928092653708350244522112394523089061146709105585791904117105354689258193436296982392440912525996012001123034205979238076108091987187574474422989450641642520958589470317954861630817479292452579416083965779321148753602110694591888011402133447620731906412918385143775618031815031961688017683181268636322579448930962290471965770993325351418114956978683432386182817377558294034994057725857807987150000465942257933250603891295283375034757478924126944164340255360806801436396020478773240976126117999178832204068144443745902404525061710841398904198730485306766242696350569735204633132403181557191538453602079579989542352104819877757835934260850012529499401652205447645309508395870473260596914117618074509261837347336661305879293801650547613785166941219312797081099176857935980455612249278503955276764219782746641063182117840370922825460403219963753952790830691737608203566121700736243712953121898864526073150215707504735974647215752641225656267955432327401495848895876754867034179512647761171417486768287476905782563046296669093696194268707274413124880793732273473647957516915241252874367874069882620742614373564740967892034180112875390183431493354168514435817319709471032034579752887552432318665069393665834800323413463006121568721222670981936465214871501924777898261283973245550859773954228997684681199407891004503280522441934734921145285512206417221615750193367006440027107163206665258883252604620063078506857386924185391479729475874779876132406317179307428516902499369072044975059673123192974460024214863179108171988935193382405168015446892353151932587845786346230427960260921906092484465244440169151624850694197159789685384641641455333336528196726364125153366525946819514449386816088146239712369833199986346918635744888368198351952407234144192663325273939087749035057758499146215245327074402111055548387023567932455278113501441096847403326834026095889454959281532977709629948436663869754258289092526076759234057534898931226235798647224270476129189033606065001784874687057249774894925893855199607120335375904705394407598214530183242851655992937530840201832537899730781554931355703142941314149501814640907741602803977186278416055725847307271643078348798582941734154323165552071813379987370211571820799004536084877124443719893643675178187390295425535246883870855390442692946920884009987577546178774306203024952509559569169230672453282457711229347846196925171005701541769339408666888629509846226123871985627719254503115964406435062281531491844859857127675859650091271991150417819259334289133808716930803678303833965844379217924339324104761292786467635601582727015244923678344795944486269274054578890236008263879732397001640699540407195326702296419474221495308234993072811480490535033260948310541821891947102682801543406622154984400814313024897141076815611079016195086337379905352729566651536039022002312214067085934128084177851810587500126600611041482286007683329903225090583318987139434032919011800311241107030432915926783813278970890529235426331029194292155812983802545033238556475681480074398933395335593253004936536577965400542048345019995742402165100957152129805407351322513156812547376425887196682856681626842286586267333200284225825488782700298090986463348773868877629744890577113033804653615170465902609809076125023930540466481773802855040151810885291988426536743335611438241279597288888414763034013692009559188860194927273799081766882454882990495648964315816581495266181049842663930443736379082381805077411585251995948212644541754907622153889032635811751853853960031994299767847320633519779145062492012752194586493425227927641857310078799035864497955220927902073108743074718241456283282362387628867828545250796784853735162546278106502550177685405311217315214726291812175163786825727070572522586600498482194410321530730151209404566415620318010025505252019260458750478307563570581276241349715613101204606458742885271480044152990954095722989947338690062559564658451020793278526427561417378971393416144442642947581608062219974636940238996963237516464179386204189391238607598545138414464336293776858915720057141274973684014795518533537534618374087489813891275836953988240774969214805333003612266373989522957258397893659829697561121324892456258812078182936039879476005772820063953999900644346558467841611123226307636926465633741510481505606593781111039744230399193862861697542329983606673134890825732863889960301939907224165521911290107555354618129581051449015660586221707600189818747339574273032904019139815245567992692490819120828526973121388572358938186953099239511296046868683068304584505463420948895001706210890604071423560771986499137868530186588207187990331163977476990180306508876023703447253070092977361941955189666780357116381107810412469333257319083834697901667660055208731739221523922130181695123353206334717000058185212153361685702323767364866723820457368288819203187658303284620263554147422641907987904878059397289482396793259060147681666784010649782345326838964579865419668575044424936457551765271146617029652743284077223575380983390491839287971616313414038247364268769730241336698830718755243564699870534340169911371400338283495613575514341556288175943600000783638167260144526397282263620653884936759602863716514058057570741398005811573884148840879487505760066605407839239886175979080551912072470980037026067993078124627720769845811366845632055129260386770587559898942565332104334974161535859835646719506086925648251291623324511166851557712318277169854393972090453207483937756553800635574677687857726712598754617329443843936584723774248441402643715414444630182648423648249074566119540521563816369347297678027179124623736303835292450265771873777759321066532165797770755008364364978612615595038997099539220992665692871358765549342787284980511473489379866270391302169836968459416254302136619573633346088101112755001950274871586804832597664736593859866238799402338485531264132864585867917717824879273859064888202111576142183757334073866841897659927793774266362379114274178065510070708191649321767470800533934341508116051590428901971538446874462144469573373935606648704097249004993725666739673355388559025868793806455213462250104427100711112804193299487135420355605830672239572732610422135370342990561790760434381092717029839952085785339304401207311872485970405315435742133425167056844211281799880780083120624397363569929871899922404289044051277649676304755511394645587157933275262155219865563220382373817594150272780018715206270170412733772688679012967560395342702040881338221623058066356707839584691635143237286503785665512703222999097117362002407423275973410534113950628098826622345391703389135980709638431436210649764415886405206193525350523021831618384352877532611844701949352584631237481440434273534469743187652124908847937914120036886389899083800738287719514438294318532087863882568926955091030759466424299920251907038448036711879087047271951930206477565197957124429499665299193124019515335645489927586648430874531524924897294181511672350718902319894420018600158317112564555615211288094430479350495151660900828417140629329058055858004112563257598157739467756224327031539369341993653038038717747602529970114521829361784524911632444020386835955916823509316073892652636945809142301165865590904872202589778878980202780946757442618231358759921286967812941731715712725402285921731510367812753866724085261591451931864668529495101696841129190120856594052233037888010467914877750492405315845339823666027148625262658199556186759287165648926193231535654157616610251116678263913209093372461158493566679838866400049202207061173687790744569871675978886393048334606516750443364979287543060727216414915554004364435597644594565446276543165799980118290865277483955824406598092881363736522953027077902312896928408268739455732328553906290905989903677683847877851050783657461835054668428518194111462758580442029427971540843716793861551044677103133227202971300573237368242566015929476955336742962546980844634100585496456666830794533238229216769563268539661303717460337927656316015710810218615750907121527205768041351059274356956840080936499589723823061370508031078317038273316118044090267057393708122575521672111600346118931053389549681269841668477587374103254595938041501920347895538299574594228617997096077041150612970763124227357305554661828117960461440196255135292902673092199143929086495046238758017813508293066243707605991027706283621275741634201705579105928698961976595281503789194402514952782966255403217710274366248153846247629803966969486713582713183682258064465236544507273073501865744739486265737178006468331333772701838699585184561145604576351908270961674224810738054664031319798012531740505483433784183837225120765025685726786094472017636637513293722393492054980295739643792423023908996265226458923697301867549020134435130164640339098924242260841323441250833804871570913241568704930407254618812554058687468887746782494327351675996166188501348285398792669931961645435606123033310179964165057200638743644604576689768051502887595133047272884404877913422821536296433759827210976649920028167189492163560484170340352223620874156697558874579473296534754371212078371223569763526283776260127277729931620322335142535511204212997759160245328718280791856032146241215699998515920118391803080822717904396564326171538094311140801017573700372357951507772222074837789616300399071389291344744186011837765404918456077427254284717088896835621371319636535751127807363232372696648082839165091545828256960734538504428449861429572989807387758428973501829191955770595802188252688308602434865003648445867154776493316353536957826538106026525314995536965729330151084870548275843881765840161817265393159587771754751884992429829847051331044892134781547918978613381481409608714441703175612434822907548765209584508351037510725230320676563120891340897601450363466230533066086394827475270193470228232644190181212971426847732344562788955171810677127735738680385466331290811908013786812434207073491799468871012003035636257162376552610119304846598077947683189543677070248157078422371273399285248418376317667543040522218771937629372930010249129544343587628017358726603129780962758459786235814780157197805727359300528134234656587004617046212836251014737680885823748701514884414614358460305562318422609307464022841523293103506143081218367705330861576020280414503389926211159740925448412147176487779456126331548654705094898833942408893238664421526673841374279683905027974082728247412502099339074522837117465868945688684724273745485151415237285414158741170333608350912701540680045224744896565794389907636585741906959902507932682217949909622869781813868272139178043905457945759598993395557923625953789203309064892966555941772815513214912018849708460688453327611357626066389349386234987039586217535282844491252469055996708679543577408045386418360241448981287526599439752884052919546133917614900864736212185575142545686574184599413488725836183803648889726128357789942149488893315743582320643098328587548352363774354636686168966603515698155755943650886147614900385558225381959245943798396411748309532494877915340436642010660945533868350317480038885662485673105357048807231087187529455441879736015803382231353783211057477488827200758243354192243592256722403127201302619496179848985752887863740860695132423082950166342126193150538645872995358025174494049210082628375400550929298924429406118932645093070242159898536104572868909845980425832089883967497391027468937494114659118443764216745504384324575891329942056596278906946975257000478506622011355969412269003864003077878422744290317809935538670944045023341495102200535525538473519862212034864474838750489483701748458934814711812163987161549540117348146908727960853005795940713733070083341894689164046052070567643279684130048844829050146545788851394182549307929030510783700602398789259408047122182996350152052717250611757371828722405888994730184774907607251997567440641028673628722110010864630255250848593721213891034415431397238201750386301418424043983058314772559480825737751028610643363256562992125934469133946900676646067689074538264486192415480485148497418910005064761563240730244625013526092067178412112546043989944995395212996048192789414642230750880602670669375730999727942229929583611889091856620863554014082690646079083227926677048703882290290640302518810656106917164762648855046885760286755761402992267627302796946277159279308124743553592138350474907246782756803397692690416966413550526349530891052514337469140878485898249524311926170848482540664011253608115442467168752332553833239343163637731251268630367722714841658198807413482893828292204389245013891001329675721121820738474125111681426818879585555643855277839311023979612316437367433087369282444476251598567489921021143088353162049104621093897783760871297352301565330363747970884687995779504990985123185052710670309768091120690896541669749360315084778316606336513038325500206463534649959196840046509979559263450757384260608274550883055787357258563179372220821606500166886905797321233712856695026495154137672320181220969184374820251994597243792109117607477542377572245877324606757239581414516581952650991657061532486507304625051311325544743762971222558886857154014072586201098479060682693719062235660655003856330385264044795292479357061462217109405216822012946374662112211160725335409369250791366301718943868400434689536367806049773519215291936446139630964723114060884844075563787950012204393935276278767051837765434992877939570953078993277970156656195093920598510536298463463303119525638115115941034087904156338992373980912174185383804783187186078290224401470021295571543256845164251093333467441323123752655753841902656767640740872313656277097089284205872480559554232518251393812508374642609899502388182024552827335932051292631816166973397510500398398520607811738681583727217128817788331221835865348516119300484591047454061819264234725264139585228583056809642761728192675148282258114302911946650994015218495874411512125532323585510274511930561506493757400852534479785467875705638692952077478606813911594152695137708510273215803351808536531646927008393703113797260111371585248062011954731764299922587661185085218846889535292967731076491408934318733272634487735747482088937617229384227270439222912266014314202132616479742107929264045032703203248483938786412505232442475304615042611079160760691154434939446886670854932796799939127295918095176542577639708168484916282641738909621769432383344528883100995763223999087838378121896353753341719750688620373699545725969714118667381061989412341159910563128199569220638131861450386169003165309799863995105618698913087791540048000824434252294881573517628566969818056166136597921511731891036372602679372546017229063222431503922113295950584859265421818140514790265295553156299384576348417032996189349988372832859986828599123105773244595167224440182574740028631155784467584129338280147164554841270804332086722890704649701146649134503910681319483705355190955304613814207116858711439126736867916568154730369110306738602047027515067074767805670218028128328876646226709860660187300534915884346906542700590897124267280623259600833860674671893197062586271452934812364002361590134241107610366734937205088228637408513996754506951160853650549525474891942949060327063224777568408834566362061239805768343347160590434073285002327057155062182252048280575312444253175524308118688938138774021197734707497546481162536614550741983356278649843448779291272421804609933648398359681627190187359473563668032831566052752238447520938408379666005645985360575176974560440953968865161184485192259136696386031739058066439636467876029915519001348826523170036095024074844396444705668515463862794100339431468134898474950431202521215994103071566647630221467335082302934752723206113537061031282444914933242170687075315908041160068419723288645994083014458169672951226373924315971269659702942050764712600585359945951409838617390802056568485533579337480830026239166435837900663035004272782642826100266468562234592831513500400677052163082790141747831196776383778653568035488135731670364515482511848173044804015866053435313793908300633287860157786516381113776678648926142575261142796963814367910900363004271583079470089281107834334102126715433633792074896713666575423136251500698928279028878683471572377127383527574530306750646577588566006696772414136195533409366468957882047540002904024619827095453090507773666754784366841530690735444781114623818646242721961082980631246664250034641820332774207431173888579289944771967429837402666761445409659550226728857530974296625911182537018782043549250237730328196494731549357185829078919059375381844171062798980888652355909618644232085844647518569966977206489244918299172451973467207951740383083040482973238208032651496530884553167674054640653412781285693253511997646008079454393073172190584895776957288683957475390611472448968570038768280092436741421086030509676759259947552449367557196177597843454726233679670808262267108224538010301943329741485127350433302511274027584832913706559544783565752847602677481032862784305379511622665450260388447546273655714907034236595436202672952151559675932921596758696900909191249159728060844191675513710326111082726178924206128338967226714119083693365473245958676626155433352535988036281157082167889857000122730319348326031218031635020941684011925698314872690205144965184158714797959860274150322371885589352275306446314122416133777235431919461261213624952613434228524378008689375728948893710944864932771485116538061475665376416571848861253305320934994819446230152483141397690009572510372843722474384494217972768689184181958492913545938514721487232840580065790631766123378737274858208132399693192529954953889019947337619766599550936203180020975508507929802935179670047715069583959429531764398736315704435236517585216507752475254193849305431646513443305694490353182687437705878652697281637721763132469682071650399789949602068117409264759512943480680309189422097084170209271868256224130202271922657881802460115170524408284403892804983285735915901426060406972388489914565377649575005027162789548464933445682536492848647432206189300801510726334624219239047757586711612452511886253047247492451075330648698757556303643722438372762973150482206007772109542271180365304186822039716725403680983268781962222200741032274701439793308132474150943021590820304057020538740114593677408440270797304181841591132093142603306509835639982283964263447296015194175100585795614490664711870915142952765481345686683329898868921467110007154466066521889858675152106063669034679824522672083199441725804256411473013113512824149256021092218375744575422156700826683899686999210709508700603616435665318194559499205061287717369284996988770334246696523157153443319211418724122817856938001115302138485897929378840612606924604377566521967067036286831015259647123194638144456850637881669228858400881898849670548560650386644505969816257064305162129924949582175493508025875387112209201454969729270217117833281087005795329126320191749194893602978844474720245879447005978219606135129108159067514054340533492481363343300374598110307309164545480645117650507725371022965599300748757447237670713097038720482642710651754098801386270915778256386378725209533002110250987566852640023120752494926369372396360654995249707086343043520242573856274675388003009788508965022183768810374038245995421133795024011459521321037401399687778132133523591199154179218683133809364473371252422663256246044278095317810586123167974567107832878671944041060701018542525643966490038406335865433305574509221060179577777170205116846875542344432220830793099713240117849398047701393719294429164442014715291940867080517809665565310256715971345524791326710480651475065105813823712363223002343572126016181890751416322677590726895197378056495399246882380260182923826297771594692005959039532321719049583966803310855830074687469962275372650626889986103180992301622611185128380195277048656691208366082053338961727798803629387982623100794901789795687346748035517781209479989901078296800874652277376327519011180564791997480650515160445431237162382057407496982208560253284149562490052615877117024507981660511864511777067280182064147319717036638215200502611062944616799792528906380785390724511634735863288860602328611919666020410205791099318384337222967079431727402854743516627457272106438475331488900833906055354011819104077477196015729498733645517702818189493628205147434432700674783560745307867345117047021367630502333374168839004712707447712673279920453545255059869616784108073039008737474445787271536060752107945815235755399870076829146866232677452469624929493887096706905053988801251027623244249536647605132133984453395796026537507095478649373759021145487530743037374596764704759411277006560786171854430869422050908213658006869043696506702294176547176279637099972496252609838305096218953328444282840254293391530948281953518898851404968638274789899556159393793175183712950909897258160476031138240987870449639061223432002194871075334788139568352817503358433083686234159733286146234480108762009751433679704275351659595606503383035645587197783465825051683415452181486012175057131846272216489259181505847925099400182897836069557263460259188478868891379992775371107451531692169585674185580754387159910548701264882614851147813655159164268322459691054273710567591570627577238497044904532978586751757908238538087733727843681859144806901240117567408873436374091285156325317576724062594848268634119114962907086125389966092511030740354020737652257331583816562027803252314366491009557026644961602642527960931793313884423251064559226517636147849442679015327617045581828238800917098280872090244195506384794137154146225192774511814549383889954824789445005394160547968235513923909997883576222001615107460202159935577833482746641127023497485998940375824246687513348479681304022291151171415368938845738966480503687415560648240683625527519626020419891517487627219057359363379192930645924607854006267898859961058598794559635398219067090223712490853016551966661218334145257591964021843124918647085409149400251899615823650983123263231014609730021993824156927294722861617465695228323486517747307994799422844014999379580179842367058873514636207945888835742381351366419067333091655584810248714925668609783674738497645710592702254603529564192293888873516486346835461301632668531129986600452033823909570627198038056185972660372646752914017885530863621834507759029129486378470991961081678735372085419758922693025932132510747264343483380454010594685313127188420822641974911580940463598770460130068312513152343046097950082474704582868114131195415714418536053679277689845488095620918701123054028161103848000131617201003924776461734722368956540775429116315953857565884103047318097313813439235887974508066631945599026642375580200749292788879510278494676129026268008318461964952419049258934565850577616661733255140795554538457605912020434540861014146319697434292071932397308210878727707274568178210311214767477838233132301355426082179208743288230804110083700614962917035313086236812302314463930996208167665476807400707288967638943238587869393897638895060816656359678183347983567447720349877141466378574813527131155774095814525758127444461025321163511909381966090901761667242847017779336420668136990168961542874844372412354191138816038598510683272500838748464570503268672449694551754892806513555715762014032716329648148500616234480603033650599504800402592546805857742540753141753631707077085789860184934502925941689471607102950033188556599060852593025056298087305904614559836472053151738376216382754705310654929359001678447318762955266846712168297634980158676642827511156348207459569109122449225783188336426992876213663558478183158711986644896748084211744172897967199075372365129382114097148360461964183829615774814256230020635271305012560525669538055702211551975837776849781390316049759699583021174491260731846055921762991451799315603932099629325449254686608588304773220569924621841043086353928316914905595217219297247552097455395966390344650228786987240826731811130537385529069081125697492192620336995333934406070394027871905731607738340436601704231954067886394827992163294272199426573190109407674999392968627442113919290090840638515773681146691770068414815985615572015214874612103572361892980884857563035615784963678076787062847619744777267028020542861113930049015795480393498516019893714104905701567534830709039703702748975875136950382227983812642717481064006373980824149578388269713670450972898617619713686634514695068580377100529262225163565604154068179011576505715940487579091910381797032944142581504473851648853445047480342068322454548746139045416724937876651685791284255213822586951289314196451064404632333296915910278749868215236381790931938083628143360540039570675316333561311528393647848600941993783168224712544446083502093484142534732658010898209642228577803540517677264095185211026127301407343940410157176783707864019386501737224914877809264078591531528161018850401856101010328604724516772738939095322625437230037624051060964138611878243803417328276009702542658067435508115271934438549826540177195227781229965227406705418376970197672946667837005536770871918787397660818024112787005075690737230987124977798777773403367229932050773875805079718289921750222168658315015367718907905154607986816305512621905980579149921511835569265971939686158711529465542867006753547997232805118570947112566083582573404398754021469785180720873492051018180597307906835069498464800867051211595270182253785571440137092304154616492547701344777039498145405479206576904147988074565304028996242100239054039451676394020473161847786860078304410104139012204096060099509611086392040097359211779396670077344476868772065116838375676532014013511218418493769205571604860038572637909445018795817785985942940690632094752058032618443175235296563775187549297776450612290499788478515511122383272047446571774136135371344263144582722401786710828231267733407033725390174104056327289034457926541806851909323902147357732279244485456932126104352256412266312933735989536906221194633299061736232677832934021811558711708021000932729575212610329325995665498623334470318381384581617442231853435445102000303929747446987530053459084789963906417981402172176339242963724120706940744248832084017754966228897603276425151752784276852034674455011172788904635279623383518110147685923268809729137754423991023544116822931275088732332682521147803011962351622117981284544688899883065222365268919330231933485292856030128945122332370130783752900899725822942482133788207125576237756015052276384689850036220683064576611918541966125653983939265849416196060541564194679820661428226041383420220588548543346997489078519075460368533081010210889684966488167492028569324889660052541153633189214062852163769673552819092387217838655164591539021467651199375257988985283645126081366968915044344753915554780652916809833629633044932189922856400710878768990055229829132030037258688702637984599634155296102464295812667336206242053925590933903059706947274227441396997748145299550424156099602543015642831748616051627767413143728021150712314731948036309619942360659272879343084811556196454295041087351454329349186162858300517266411092070634699909910441992172597344417952168079479939714343972660987141085280561357596006655006791388037759941740375153601511488619825660617365849571443316145798212307743940013308481835410503027033979204801014813695723138938552287141588934330566797754598166875200495629539047540684579733139631101940099845401145089933946728962066002261171100187914007659111960573534041537520721050080328096372655132505033313099716484297647986964964427553828834143446648287346250480747068387523608343655525066855485275034200579232688513214951057203723984280734111690726467986696370802724470970649491621917167451718209662974178119677585006291402902247032731987210156604578690448700063526940742029123339843935817467489443261473299150530084731721615486344888295292188830169032970931163823482904909980294425576825247076778993514171502618005964213466253537450046696964372347359265859361399207916639128299646146856974266962631898051452313694344039379662390416124914724542494706635637875937474570068908769777233967877000906507487414771154656007300626065547863238524059755245632299709439156069010944982396859828546438515438904013876547840036204965117747408042387727388768037085397919252610891264347300613510423123804225164532002402788888036324915705287725274224709802651545404748978336876508239458515530393347453077096533186759515871977938959515741885344883901346923418872639485518066820354208450633613994829925131697170433124910790480237833246285193268028962278530672218009736283248616674529434212945399472050495045406164601178294660199952597624775096836493601516414239687112520390330902428198537455447463001589391309151337136397451884664128751325735671576858952022384012767157148763556040630260025147599538679866933357336214492322081064463030291172712711089071030565218214876208511098030973387539614300637262427708177885006122657141426039257377658609110517117356869576844071485635930062688370732616771838466373088329874870427781109619635492868248194963079803662362856650841666962642471386928094133903968825799168833080511882113293035029110227273511729221823945213329738650219959108759951238142387538601336558589357405334300519520275115399436490427697853712347304985440690148309151596929297074201824032696270238185928586066031254308150050638553414696863272905421183378880768086227266989619549597498547330444075145509853768522457844464054147337299224318493956683648590518783489261889555010323841516692146284502124369763559971168832845600237183810612656328548498467545869057751884416288253217338399244183762824424936866236731690311258053080402942726803017264204598034451920508882998561219152420451083856433564655296552381544286646691776329088809188929808600988222031548787445564217164504588335077038630995974057714834609015892298213583105045127338707709007542528992184387205063534012901963514174574156049235151763146921535825499308289520074787500477526765587805983661799225222009986483061927577573880071132951313217166696576421157102078915226336226548610891919315157931706305139708467958367600835163697316223740066599610059027385006268216108721415475863896501863306986925824537587266945204846247350808137839771853138260060458693220541354354410212775343448693600574846617576530256169227470258338872296896753231360318138697715778863990695219419292658693604371076719665207619015940753536314901563201377102038147773849721849333789021273651798473149959646481553991915784804641022505151365990188251344989428688698645525415060643677105186574262336491014227854083068231694897896546310556653859207151141490225693509367116505399024188487053023029261747081552465671878928405684812501171719154442770296082351169246149271325168810223966733021567180692916613195469153007473067412822046515297673871978843962881640475732885041823398325581881886361911686570423073784764408752143799512189692780374974909765188477862342493301015714108015214833051669853305308956876245343703418604150801011146884079741174782555505007956730046862959294367076263582148679831539181709410498289977876623414356488421639095494822957717002368680183854816852273840996019011383092904614701531620146774258507788132596123188538225076341502195442301169426030645142373791644609895712245911039724427421032791794548905908137570280250805610278717811617683379294671574676061422150650175181683328170607133507080665649404513507400638461993349910910575051878972595642790327501329675527139384000039509742629935020495313751949420256027749611031212857747667194862462014710348797897095364904242909346907047489841904021758723168001434912483509190323482652721179453822121481351165870255851186300862568923888844515032958923588854796886433255172745427610918304251326866213539264545341442647876408994328207714732812722403144979688923130061291019365853387517905724144532103640915414100986874550848657254834545006752229161441337549017297449737160676593430190437854047742417056446487824571418237880480814855298149802583530374529292979684075501474864268328313304235643942834643773614805488462972107271599595943011847528857844240130221870744547562496273281565808310822874139819427644221410264682867848073689559947434860961151979883417372767205942282629318485807972611302187986102051269754710972063041979142390662461865095527084815737841212091772944830397168056317503588236692956072045882368014894525179328884973717045285656891375067962135918487254552274060458389281188081808755798809354676900318782256524600664757204754222502754732254746985448614904280240129204288720632188936188342693710893412132925370699004482956406382850505523158008428753642256075427870814408782737695806995257162029955379793718298954364750799275778955451168846621033594362682150413877889249991062276282340329325983341981330159435556879413940891354402432443298807506071093405948682400518523223637491725459511390326442506675581612066378069555219066773441884557401886235012125840956690329362483202926326302112139467324783360910435251751664852578651011908933672376414334027505500654003310170600449817756366330257434517431166605168619602785446769657909934696362305906513282333122838226175281804352165794288560247558253923202920433726930982689265300062562537904235686713244073446842693639812799824411592504046207299615938655484677124511404658008308604195062499650783304951700674846326349777639285748715974934610059945250358490333424879103640386724874915976389138243445882122322934641448439092250234388777847871832573391903816717381133017877015784905993590743516998152211139184098714215770104236004633829707377922040733985209373633886212809740915727684321494534758225660761500003945286792700416312178898165589243331026939272097478449637014046451007772113521194684574898062814654399227440262813674335204638243983934578106871882575215166568029302695576457837173582206062566911883367167423290146433210632684088719110032323445451507903845637408350481955497665185035638908316633461345343276220827115542128539799980536320674071762364611926263743644455072142084427594966981140143907389278491539471617111565179014406698588178037719045914201091662537281915941030083141798121472541542599161203418059171652865611532059754145506788818290218103200396212026018709392961279526606467113462112955035425639287280169228484585396462924404623353654785710882769987525552733895190714779763830515405539811429505146056095109205791286978051260261721529261407916124774268100893261505203484282617822383751641785625150372648061502996772974954800843560381856287629481983636866957513487689372215309822554158234690299572833179618285047127719776388729727885529549362561548976444925788897380810598045368404820215856782917147750458241716239360205060701003370297753582607375892320803901698841056561360221300499042571738523899438859984296092151312155185560702595310036602000697220250212455900382077029818418462959204402986407380165263713941553933064196885093837940084326492963931744281424729600313985241766138337453770290215390463118420493114614681594376205899945799968697969952773235583076220692035940855230742669653198381887284503336105936742987190117376000232391649222450705715236577503171667002472280068503105989662274094359622762056953058622680031474664417266270422361679350638080173093538017529089013782251074263396952747834306963570919672731738552781896472900789807432588599715616417565894724441430368196025683827769307294901824056630413294089975911241349318177523204876713224231386312236117682183368293864704586129334015216371759529943882815069323648585742322168116506313751888033560952205881395601866597768993383867690699545356718888369602387293360542849113448782557084720692136833427604423526878130256155109904036520488064163923827501885846304651639379170547872314977184018996923049263479730785440930436192433900957774695592533566226853320455186532159344083459522755875341670535616408746407686352954718252482382790801987954793014310823505427261740619546908058657024182474567129827743651901139965054446442690641219464440295552620981183220126663839671499294806100370449713966403148663254483120569619104075391082323577762095392068650885384424137011239295657296085836096211788782871550527896707730993000555671407080675804647975683282098448084770746979256878830771885704122968332119431374686451793192534909117591492280744858833060334085003458686510452580246411905992084364945804505924577463849838288827439379391144279456450062915904755775074265966745635408206052454641970481728469619453131642683584289725514299028445668642761287558051016541477873458767755034120465911005660788932817994364966459474391893732913003383296090926657326068595008666095080980781017428701743960270711803768277117461494395127748866291772320800347232316961440872637004096010815567871036121270297635556313441158940708366290411247644193544373021165275057272129956659472575408738641274997210320270589788219647344008552539372161839365147272941949727504556032243524098328133034981666481183526826828409480012836420314502762465382602361873708456968811669527544798592364750578356541428962739077462911869594054990951573330387802220603414010288749864033168023937464000984888886537506735434915611516695330687447681893119922955713377426274397904228918810990579969251284882692785965552038955118874967174000435792669485482655419267778532397400691772483359257595945662639519905533988773089754927891713119054396950417126787767216493329275014237148168139172741111128332704063026900561861864324833480011227922834979083568773399529129780909148769423722026901444209278449009425679737192669741006456037165121663947490032924749626825084766596161802723204716694591279285877428154449090101213691429317601580621435863587903868526688923203127158498146988793834823817698980992520849481180336503180611106944705228190687957842414912972421966351272804992360472171129980674769558595962408684617388795853984554428715785558706321872264065490966428608164544345062553832134663479864424934477983492781311409567245406617119780318338376822592495385410537924203240075758358505279976322603089406348626997012492148849268705136492832479655842126878641476938814755634277107755322013531415318929741342574174933382500703144132504109171794454692640354658299593150933078611630669887152217655399934456575340800597527441846153422726669553672533366810598644813173036340511198410092820400683390677072555785094580209074420334838480241739737565648595767803174138266012238484387110640842663219222485794133839144132246881486662002016567600986878536892732612137920961128485937429145177462372378894426358029729562687519943315484013371134415153441248819771590922018315064004141552066656026572572137392792720722158963924216773750255259316756231600611150305811738591416470470908009737243014102561159757346111709560441005997649994315764465094723723916736734111573856209571031505126925552863265676900022257710989589127901146272637212804807461532515030933116846320202091347830640563004393395925872114810876375919151118048457931376087526353542571570766241307705057036972318965633940109132962071008239243825295101274740533044250498311201118131722906289318996572779222693779546758836345992362310456034230931428072747905049943768625204881426795997165435610730002138713049044357270895958886916173266785156812963695493800242116032814579658497174357569869972485760243615446423893630647585935933163033480497905570592597155873976828250396124396980570235127310083637677443130904980031180418295763569290302851325585871479568268597315341492065309539165069090177037482920613630357341381291190196162351817594265196229526371219768591881756650861066389595415373926104347751321451518731679894303713460731770854175888545321377390597907946573812194693657282992109450160123690846709338151027354785909486139421018027587743819066789326358727609881614958888217326544246562321919284613210914126169456219612123355495338747876675043335936381569247925696603022708619495838219265327130488909474968849853483220130071303158051845378993502930605938249320095360838877666997953734302082433728430088805842635130977054000431933069761047686459182128111491316063109382213045374585054055396256958400904710049053772502676591111309887960753511998589419471728446172018710341738604563986836112236206840053770394454134229493987355611826638004736869005150584092465610497666179972944805426745394941306125890303794721265394639962830123322445499702863125296106394778954963117119148481485810962210758971705824145484459697347066979388767342696333404380300086525132912186305563139550814943803890284319370779896827249735257258597792926873451940038385868827404595029125132485061573747105590423136505667898969635621451075294030886788999046014009636376482098509524567064405848024576973937966654725244792203504966768957921847734893068762229259243376393349312697874015474656504255166277042292668743563792655223705019874039062983820631916320906797507112135056465607806956999903042718422502475782957823591696398162159179134379034838354037793045458410894271627866858098394181651799478102548926754141890032294154398903093373959234510454851618641238757491123905272263284191850925866357871625718843271765606975339040753682906008530351968535737702344778010071298394078186771185206372896277120173451584832514752924077898500659391737681203258117503391220416928482250878243901803104474006091642237484782929475290147922252253344317390714555729003695083955319077908030803737926777899075912264156582603007882860059339642438517553566390841488935619205822198320776410377249958807888491320025687266084559613802579483796074780961747953557916107071930549088562505223122767584404466035546044137771738254103874125524792001311354688572069517000342426506810871698813610454479791362456225395395960222764288285382438207608166426959885132941437979697419674294339042349368373235617041555089468925400651767197669732419516632233256883112762354378054390267062489576580286428305795233617348935382471883621511469510455305934467053627554127093655751590754777619504642603743594927479200437769383673397354347888924705731232531797449335300368304271649419640102506429320573775421723177852248865296221561730169078634409548836988001675192007073326673768584790572653264725972370447325937992176473953359427251627481965103809264533669602756049062390331643982224238788983733227525058858954892402929251122455859576605390882176993202486602346294667150481619388772592275993264228896940061812298009288724231953495523799645129827290844135822409722541226180515394199477826793051555936436763096306043005168552516859701908034914023565001137720776968248946472198730348723828991872248080247277460811984176384316533271496883153085948761271479326510380074717135304248513264757478539327651235919289625129256739659346729566198157431497962053130199937193150820141536965834355268948960370088401582116292726213319243235249304653151780130922077723749434187254878309113811975398601347252157605972451982604664368522371781318359332133067506521274482264890835558471661673320461072497633393137308530029245929388092461281224155018868298696456991380410416670569981552812126304586318373599498984121144172607163911805468293913608633226587876410480834188127678146300646732164840789105001579270067724920447125878246453653522033967567633568138956542698925224529310748954294941256190669428228479252432308784643446196391747964279939948888289232393496426916554632545927135199148326001087144361008388177106306955958936763129692707064584396839191181369054708775096796889576525778734129316979665444482144545237524904714816722864403092660915458972244131202443206408056057932640807699030700940146768820721604675301572939317966792546307221487401946797794941801902410806782966411881946366464891900416132207685669540652347991217362535776845355348533767260676912255721955324440271744622158666465727664236854433062014180350665381894693303344813990106230697673469149700250784293083632494532267666474546840488500766456485244020136683679373269979989374329725981056995889535630906377216065075330994504455244827361988175882979314539737594201257299166419198336560390639505211041669671787073226238862012449337693455740610355544055567485725716627444458415929603457482746040044036843407181621766909814215323363271928674171587259628913775784381614439912780680612435306506016728055740598656556824212730138682964777571579352525744299783188161046373398185942655867574729601578745848306965097433540982191750750596998827549325798381899310559757024626894410822184414251266628788308193127912724146094427844574047725655566967209436819079468843508633356633480262783502958772597423618293767306792732039500362492425989633017708832563812505955699657519638474849235052930586439162176461565347551709914313603774855461471088724745502673477841514086941594110836158523160144181621174940849075249971512085951731840546536748899932340106455874355752204439871456516531816698788151438954319231756019781034264909135500041069015952055604378172604017839123491442442382443108692513499201615204142354152224644690235202471734980364227065552828428504840743736672561762078273047495560654725144433392617967672194180082112611229239908068422675686453725057012624076022252594009656663716455775707331430593571251222130690302494789931069205916277106240413386614439083155949835664382698743130875391940860523764623596504231072540908569819350044836818872059469313809280207721123750030660164315238677520707959691277930332615734950609877715448616793034063712508582470703317475305991392029794218111144894407905814376122841037435780334334686896975697215215164291978266232097195332425895326273796353702103160245611553207630533473905339462494231130808391526233352205853568318078325831834088008452078134051699967710257419143774658024808419302198003167669079167464376473112011830677365192809373163369454577146704730868238730084440952328582176013807868471631473780997657579191286084090659018911455722837182682956432869739061578626759724690397899759930866664790156128597898646343688275033097343330894662760041959028514324301191261490933974674996362269535352422506658082292768474624215636825295022031520554568138601401037918670895886560918418511114039182389199009082766575025942410149233854084705370056181279542929283847731434182604272902277067334156696062555647708010856115859260882675685604905279542000316542616843280206554345610787480640394999047424629603862841141996124392925537911657425831304929923293986914912094482112404744320313645932527611085653764139529363565571438764256006193032489882891452932478278588988521654878724976421982090163983783325773582527561156776570671266692445591482673729050825963442185594324842160937104052183489496592470519667670584860965654591990187693335360793075298751921364359482826088463481210663357930371246478071994951879924079631492851008126336521512421783061846594809126308158973202193552665607774862440234592827472532561685272451919353570020331883205659212700390082628602627983072023046216612942038054861524819582712911344846041876035324363175119416755585543719196610911808715494390180683237819712747469096685628298809138709630311751936692842657814918895589095351227791501362251107595899938607448452357980527803221780342248796823705231214669340126370008895772763689000203700293949505837387301278891958263937555979364208425344853371292203017236074375879680567134838997270485867810642061117026227001653077094512421501845314743398623841560411370663264425127185765994884213335560896335292795025354949381221865808832246333274592757557092800043124957677600633485918952322055944885705507907587026133529600421029188537981527393756703983031595379402168047722775703115625542483893390088259401490878627093283898415317805203774086970562762836587747532788036210155755690708583549596806509259693773116853460473327227210904071469549194242978544533737104461646851574998003269763403809290840032224911119340868552785152241329117071467024252696334487510084861788400747583723447639925557145631499984598281423001040097221082800526526948998778056847370261137873101650806636637894015074389173835890819363059904114518946430178782094146108258098755856428716838680889049606214839590333872251019042271162159476941146939239703844830582928758044652139596872813308474104834585701910935227806381421585786252878168120391292084791061517215164030736445829729645265010385784573589378800176416767839071406618937376725964675659774818151873847478893543958738735492766871616488723266981624962943336303802664325073253076653595103553471535461605956044963653316307798337271698000284044870978343330197479790833078683015911558701506268240675118115258001086676680580602792217842701578913320534340053832491164750478460286982124976988286945029467150358187664642848830635842662013044790435323513439020866653909374239652976402473600434367306755882538675578975863028204570131634298859325889286545963954281934461772275182773603279280716221522891927794449815958294396208679611408228678699169410626220467093900946253340419097606005729185258583809243321770350475221382693720049098559406013162296235616222464457397229377558820478849759733323610102291226726318898884915159304061882990937131368294769671094205738644756896652088872038898962043944221077756172368137870552710155159824714219436328506987962623866565976800798523782063927427185847203514794914032796935837407672081960743618755714034463609954951228524049964380216002619508747826500337257321094566189600195650274178042262973469064627608404591413288506645658335383036214807710341754308733716294321834964877685336823991160074376903168322166510092778177159518292077616537334702709848471300657098549436705583750781768162613325819326261810867709837308597645288595394637397418897292326388106149416974225641474123270450043140940258187499921533758877369166920385330347919183677744482570761579871844755880501574426881534248154730745734008300840272960210211261284003164464085268920752792410812171423141545770382041590779637280078194981913191697277862360043581275502701137613433051873289754022588575548050173754798212499688208560532790119750382703309614619963080202388379783305411597045915064113875088723459965379217718312162226318611378592692141161944073991894246452982143084346857185947579155717670783256779446791094631414372487312040758863296911429227461388001796898348666461870805300401009361419038572552823146961626783657002950293530313205641245554783896071308826167931946992982622591110584767709853099368301250091725228184912810304762670883832700821887964148519473560012755742092046689839051873373457083627494873443298257201562344153297465410696846655234942336124395847835486387619549040167976585246415888637668729001988490074043697248290054990497001842439463532496161802445184225673059203622678856368968313360746342803339363178834206984617095976770552943215050564196927160755788655396525531069127101751891209509026944376320522274228908143070952146298761721267418953311348620661366405513503562452819961078737925172071565150612378441094886275850994275521102221299323226417504882687517221999961672170013013317265368959428110573673690083187863619321628196899831473508908499483076601040186259447494821950437929242915048915341625219319235674088906215414526111305506847489496093537840057129500608629432627141216061473411432735260856574897920598959587938534097696549380685023835776288517579444219639818668015917578310479828938379370669803109795135438103690277538451881361052745427182187424586196784823617871214173677129932125967564928965990155041608485706023884794500969697861838459337345055207420885470334594673793804403102628927668088698203280838487966343047225380184362802747912672929145790250490502836931550705062361718556761727969457050485630872290360383307403370463852116876800434663096261479097326041358570877323959181464165130534060886169815679787534264138275885934623948631044328621298528184706701859762999315909606395297749113915944579463953110073255733013722071688571234413080286866862473811274702964163278354275906428288070080707761496896428305060288195025530167366366576755350652719645934259986935469900164069270418953047640206002069102486712827042351082105130376603107176614571023635136099177614658376560420520939991038187334030218991736724333092806188209214452347767233776368769846422965488055108572154169860650111126062589294752656983905571067356942199061648955293764578200021963666722796200591214746882114974160287103104997120810314289185874344557741203731579652003714282450689048187746794846152339467586524268802715402298948878638847325616518338750155235165964550206192661036989929798186914720444317409640892490515426280639797421987399659727790401163504418976759635635396910742763783438472347222188226595262305929541382303420326516702903330054011803367224728098555150482810058775459592989835135690533544926531837242200799652320839887134320271459619461868699209778990777639956948733308011134276199122646305398332443812482739550370758763626611149687434744547162561176991598188001092066550047134437471529745897489782024067708687592485680085743728334247171176118600586539509318461188369529478310792798159765428764185320088818976304222974710601265327022076373116478966026874405289431685933018270407074330916147657649165448446744822000371426543755420275515828912958104691909241223301701903809619355005498013545915592641659511115126324387774892917857592945636512846192241351661309083888470893067973900122839475973616763820138435804156044941708619634057138360249957416124827533995814840751432973148400176207715268450410815618741642184973861483069539059878043998922771995266970933553388478508457308605664525787777140484839112970309741267476380207924227885399397762738826959846705381735104446124188260734756452459591098859193149247552044755901604377362216422926267005341542270637145199302024818469068766117300717289838175442010801579978572426177666034122469492877559884465485553425247090869315255560192941863077423410798942608177939896404047184854184395085543078890524389930507762464291105813755370388187255121334530377450022762220852227064842062269405797366776577382042971110300272011082615236177723426499067568553469234095725024754752874164943738117604827422997931849237967353872909417346302752191202510243481711594605081269318859252210220378946124846896772110772410093150111575970222967093125641123971414582801863810899453233164371362777658840129136620680397383507040756989961889370455131381991946057035850471185958013516226990427093866137138680463078003121608115113244536548032642289258717977793910158407145121629744084636521442483264323464473357158622729903727225532162472784738011686287300335734986062101930481010385912951104894930459933805962302483321709345476092585864852875480448414080910796919415056861797213588713036423562679189369197157834653936669871707791567437368104310206304669435996620647959200549812023971575460366827961652737024020740819809647041983201962997282646077860935634880701863022120156873335741297749977976663855081102295872649673013840977054404593961735582746724334438508745653586978483920484443111960849139248116976082305778107368757807079928736689774632732410943747529185462406020047646347140035337072982295867317893633193200831505899778961895443503980734788652430097501564690323039446839318971877220156317761538654385606888567776061016818195595284614445922237300162024011692740028432714362561287679084824380175730049428740177645581922557999476179299409257945547124914806867736040884705535958160142881290230910731213262841117343949251132832570996083656675199266610998646838835725604358219086789437510844383398942954822146084537752563452422618032813423746163346715773252869154995517288053731780901623595118637857349912963247987943935804367399118044695339740380598836328667720705606524736798857263840179625191904582676751376800126514601287832564057659665264603136549939605238651945849528126628865619819352525006635819004317622883661853334548882945915709656722243280474426971066278295936537024779356429828053186894373165647683249478976589506712680534086672159609619562193686785672316245716744171873873400568674112744237343471793371886068742363460464102165959104745121806023312282464362605098910873823973988760833834726485300189987816373307417224961040395704843450792934391816566008873243222283903955505909039197585721915983907697530471769383951532847124447697037928050281323065823047015402275336728478194814516554409777282652169229665874623237996963202315697286445160892166083493358847211991032200527385754923584043057765804024056138097361051246788732721558061228863318074172909464383369570313477078791854301882912223474896145821739411378950133847032557851449600837628002210865724436140740636889133411307637987137623568458134984546507375539180217474503437430155281855859464230050886726770506999786428390762140596809100550096573211218047826583180619656743290429966949414275121344813589562637123470998342367499674914697775209204636628513616024715205234434470882079427168184264117012894413230752286698837279574971202469221611141606211865201392992401078649718324299477092148829256768885798988485842824310640078348158152505867141264803840842000010895128107391905335306154861564654222417506842220533685105470871813041579336628609266135934788343174500423130081798812978855590446088762634341485148743522323282932779646995190959904389888808938559338328659460584435705465909700749793210716316902485889674507502435815286102144450931358170643459866365833148999332238895969231621537003528492078325577503606480160577669905778991859486504962929655094452271844529840129394725069068079767236037604382724510659334399425349453648436906313576382007353947286387422701324889584563942023139056861627656754108468406330843930653002460429383190948081092480851984406112053898899800748059083049375674028846602900782343374717693998604893157808547192919897287174598899972975062625323210939187228755472925282993976415963977777830012593359217409830304013137424486838270855491829644036344329955333636360838071224980854043462617506587925102945445129156509708763132102398871349800359421803627995110801232839543625720262011713452929211795958238374528369908088049523359998925950444181545294535918451768682789397357913351660182007762591924814981175557406239728567793224461652948501797858371053587886741216586994080106143670154668074182853609906029253422679821753208696394107557064680522433982324291254741729313113204740933116300036859634839333693217316670836080318887957267040158546938152492092532148911318375645256793382988120829328260943700074554485143626506620433704960650591795051745027328512069596697713789399514151638898099053719119141457258103506176330085934237363279149792196885026668984487142079775476573814729154365068815812906317197180107489092526970618874510649572707792079416478745156339652852276900280779281143133502075062385410416854015474143551364059372764055545612204419940418968239885157880830319643357645033648736384935855560318924066002972541900040527239434342883464254417554752533790802241403036949172320455243318129551485217291201995624100483748222371380462613374022678922985401075135777434733298648077764986654649264058550508235828118075553548631726811664891678347436004640527577206854525370797154939094498699140638684557264674922271976241004142657191544618542027494882692805486712517209926394713544722004526087734181149439517425417413281536467265355590965078715402323651778622030074577257939965633400593099766777514681716096101918309068794494442339481853515091556744164050240029606921009202377120058651560681546307480252851660982317260907638010713053007332623875675717339818006048533908985938912161172765283901416532862276723730565105352567532646458401059610434160776905181740718932054796214422469755452311850942749192853667226451930372305814119018708253108416260190306017504795921868391586485967146905976062725844440737623912720261961777781779403926023020048465363437090783724912138659138947111674609366910959446187283741801435216250335034785673319269529333533008857878851604804969138055856417211742145240725645087543469277190641770540076088024439173742852082051460226759701472740083239866659753394734244813715136247768870165130030612788663011297834580166755736122115083775025183120552912851504780131789786775288916803900105640479364528957501411467800156073978687992247239697146295965317178242229338539380502228271243053750071107097548572660378799743568650056874766376627030811924328494052312805143487727143866628563470819945079229277080886381146404986288736716070290019211838968310848443249094336594052727224977818552217915764035573074107753229146278424558784997857713155653786577942164696772785526324189231306182447014885782532957007643674871887246813674281972273725749458126963678508924771218257500224605942149697653651145927631793951548635954248208680859837364939670496598052303761837676066418063383169533965901708296734782217981664310913310718784632638972523760648559613061171303481354076893219304862663740431682099432940982020265715115463612485001873088787982072472230584023788509935612036678996597266665071807370310789636617939533022527182406513271556573191855710003154272856274330163542798417801110338139750875283680903185849981640600479220719881703547149682502614308703727856061611961369134059387613462869606252143376045445531522517916760433102259887048357239623837318419603271857669969201118025196241050093617881036435964952198002645071002161001249855401742466297497383416060457169462330286298537625101631365228087959285213799112832412360547037137011379222602306010504750460559606026003162216043457885260216130157253148616215722291944743571713284496758689921356036959641562149867759310995895979999573355496845489666715484038926811183757616431389697849338467722614154824804545408389068453812818109028724774838152935122811272626848818518818497905860155582851204368194362102624051611013336512005468356612964105226781823384300896368071995959289919504866773058049992867430692930701540519682929810553566373641594781277810389390250877999981335574445644418070816139621341833824787774577383136684786559383736437273239297693197486051777433427650702266039672220898588144793193560464214072868008534769597435681640436181258151655459314142786889525369738012991968914998668773560734717211588721609373085716697204917241469324879808150838845555547741378814562856248499973873980835059203159703403147035013858613935329419749725859333329772200382971317598393438823191663458316854253371940503051420026645529834273393932132190640489162172837183138721330386644092985822375396548830089980647050645112509094337519755046781139171180964018345666839438253561546411023586301901694949481942920800900142496592605054190215766454598247466305287746420926520974189707143190144071105245382482314459901107438021486183510287575486139700340995802041843859880012848416143732701851420370102918666948216299629199945456697179970486532676329234407595698014531560556448582381997384045115738889553830625279397143329074430138805712228478743278074036289126229440265702607408010059166416585691263700136311464650535501956900800057710721844312153088424254506278636795447920318547944991180562183387735825474210093976555142053373085749664755543210652309448474187100217499678960669206421634877105128623312177598822005186492542304380018963104772762873129051650492191079736014114271411139209572781145904962614202938917485048507991506646662936911700301464769097270086155365441635470245373846795645975926133924318818766240813721870555134716655940705004524378829445847584460698393904547940719634038794660733662126371524268709543710880491954205241790463480508613624331111497663754409175143643965557463245925989127780091199428432532906502490732378720713869851448844043528984690016903353435356403293847076441949909056046982000758471143498230297428212855993632380400285861659744392825005474795591970436732357906706525337765894461585129163369548132768041514869326335708072861259217625876286182726283531804952593076020906609408735597865130445669474574937830173086514039242691952935446798379692028692763194339834764397195212786901902119529989933975531958690541696270332209051361995020666967906062004064094243060847816427497604497773134965548425473631364699654203497163857960810739494943395165878128276279573767680613383253241964846299082609769602286464212639991751728291737691909577244500537542092567257352000309232094855503704692327262023643676136332157610660075821354764938028125308844993211212653476142462447738496340710635231810239971776488305743316710522432418501126935593533030118711752656930671024008935032182764863269740558251804016793101311201435217447701440800777207732643676111130955188076746134487755684265190016570603755251249669565227319771278169169269747821832808160842562516101459031453203200927490788432006289042783995177801693080002638167326522848658676614355278465952826709856864086962067312336220448892836895944331554019335394380322460797811165505575066189947119759006450416532792119603672412559626602427846419020348021056945731580139894996087775214236467179953009534687426691239745048944287195320126083610009221813570215520398555619300661317274489227998282677517076906606072490799072215403367176769405390610001328112693051187601452937051266562352823617881168200240567646311838739814994701660594618357884003774214286340625344323184316771062450612523677274499163128146867104548425594450703217727577916389458045429288344025048843002426762006561179575407001895712028168974910533060133649006263935839474636195003288304749311723399486269952954663094609613404851212981865472170788470852741254031015981598347267757113793045323460349261698513700535289635433482635737992911502865486163431612536063906102071377825494717358134124183715716164935179709988673606261425826835363620228706807771718469282584054250360591950605441713986371964815429795483211210343932017533621442513146987030628229016430968997521320560240992525650746635845914768919153004285418624919468472038648742758334744627531380380516716268765199515022469757289736951973288910100081551644021152793841531149982486658928171940701202104947789425968096391707133816406643464591485227863873693615863636071192539051853293900335809678425666801516889537055288585068390981134239534310570525875411769884974395574230515653207626624651203480206321363665725825256171050121630057225746706752578833849598736276033752191416024992132745907375577166389289371340332043411413913246154081675333631298497366165312890917746557838508585653596929682719149120833062815333843570740739833728325706979443579911712012653577991841539851394442939808508580530897915031035408082834939285238709958506347230258011697198385567986324634120188655535297690600897353561945379036715034920164850883515345537367299969598153090739373886256341850575433291776520947948405147135008701592793143018264089409484080474829442092796634461248844786615879962933205368361446863312416375292321393515323260347761573480504631231827756046463907718790602265451452910353976944847806955528731201737112349048342780987627585041647265453211819456858102990768968479151796162065831864101650075258425820963803019128610520331797570921593221422881903651889853967158836148902750877636599433684915967992124460693262321058455679690387845292735904930234669907175771649401721535607972160173099266627272736714682609957655364811082610718415690727325665806838039944630508557697146142400520829565299618857640798164235339215747376445023829702847462900956198280122302415832522627944794112908291961644405710106492354786777444857651895228544268801237503361562866869421396875397267298337059259313149235777896082864039594828953466779784541328785125062021116232337645643354983093054699044844002426331380326005594378819105663031597689409488318351975407253771711737607984308558937187033233957137416410517371015443366907550626267682067283786070271685964656282970919374938136699105969198470206148151121198596552178398432730606662846370737032714850462634659235403477977419766890367923811722441717854232241093700917184119898464377300534942651683789116657136115940979158875387309289041800934210350174796651016793885834524122810682977955545668288231347549205410196554730074896386272038344271794424488138975142931684210464231154946706532964358113977436195744725807979741980473001443093559195893593547282988494196301817448561860669229442533664999588171680914953826086438253028340066859372021986995063194035982829810701388291252678588483086745888064409501859520945884605011338805011953884140992813169834961215824608691170326328561346949534129087254272051911972029052783966649664234817167628996729713772020587824945043312275927414427001662354385283322996076467755867189179166707952778039502896508872763071070044572206286516245134330949216371209843305959801406026997868851029240608393577929641531762463281923080036828385908879581712929032109835028191637456972939675213272721504274705550328784249539742449549342236971564320003337698546228222026130271358172512228638837115202338788612720556675511395123213203892264473727565304254602401789538924308232589052401216291451573370479102886523284219942640878364271590174207988460113505332633143252229996041010416015779519446889987171918434634857609970821307208248700181110532088601816088009824630504009336195006648082463007628514426523867506008855859460058618786009625154488850522862311945990620867100523698238476502991950591920078998073173740363702853539007268746254376441129573667916712979161320557649299328449835088066403188558622870985762270506432736792419684644250915577369305267684983533615199295388667216081775930232999935272418116813462044049623296417670094546590134860212437352068870231940434564359076721051112133985405363282278385478464744783810940870195142828022256772069149917689414563492358282148977923614968162866535409146617947525902355641113934718146278139265701709973346279578897421007733604727137171657645900974556677811418605021368106704433103262739136539235730725333240383196186270087427501493826666644565866285347672630154655557169014205184724944176920771561830382480925643848179904476957891692390136209310048990993144271013546117424390587508382290187367803640112465278254695126685096236976936313339306915906253676243855000250421637011470743558891172356787606555438643964576446492819800165222161155238601807070786823339787432518149247665638889789537614421901473521832372585478843087866783643374625887811871172013838483996960275446604767385815444574476735786118766654599896040161486684011729825265295235939742367144911089784019859838174330485300863254445685931139029200819287583628267840472549589984011003465108647067011669880471020905637837959380977649735851722565012016705108976194420185083049390842119880293622625747826818470418882128565573917001096890650532269500644486347077604773313291331743488415491446902854494783935275006763844983692869545472559565480639354779993152405962385404648915233148700943010739793734649721092763511903624817225883118508028843706981957674853390582428528524194275506604356578792603148974615644775178095019648944321186517686206352474829814718516723403765855185683406547292627818763001610272758175545108767035291793158748867294546330926393272955720898072894227578670802501631327619790266402788198728891315438021556551169262990135603535887804565175796682280017365940907618513028983735331997057591512758421591138586149308634872245801320004488799649873663855318514709235523339555153746082195453540144830942066522135446776537077647665270550043882673005485121827646045898019791984230058394969867025691591898634368340822686769083901201308816966270122073614504640754337982163335287439614610955561211040213825049061128430516732764010113080580109042099544608171898007077406669725019437649217027813365841538808186049787242242487259918372143443843531172622612216302369210928071546764106044450713347288960888122697453166820969008855010927032722594529690824875371955850773766129830313294797595898101544015973754761781776251291571001837504863661825044328301487277890732646950667817783110023265310754165789516521741489101705017942714851825519781630646141134956677439868955328998119349124105800065739070692141609918512244052307952200823005432972568568595534983371820756450260217918532965524907258160142413287585638962885204160154153868401408803579231766922165250192226475538261205825623292245420590248151144593372522423517955542976555310240228774474698173269779442373723633155430915285173169717106596506527355679086218904841952682968458022271381808318899226571420041320357518662669057566511568442120738170119306716760839032447467105260476893909305644160396966610524123701975389770475603770654202104365533781078351992705613535304488587477634769994112783414988236468440252380753671649307268957015679015461820611460690357995366389428228325560626608433423721626975529114359806906899672987618519636088299073367909623568028571833492725341625825429412345392837840684448844154394567686555708300746443190229401796357079734779477348804240452170686430834203760510158011432211943585334840417942454709867024226353543581748168196184479112168158338202365281669486915108559634867936949849899934773461434087465552196411296203874349363030205392445900867865957918821627012383858774593135689745897011905806854451494326688675819184091134459366489331916211310018881891769677795142466884247443032672822834589280486578162574607609435737528018170724031772077112997205064592532498041453678602212060764772972088633186011609567671705130260945764810751727744208836347199453878983289029041967458556412776043368516023297490640018148867532600294381039725664189636010582967866076324330272225874315388987517044549258611338348347597563752167013384445097566417301002019542027233051477166723362692556693101174334659229418113540029831582149415632965613573401594652345556220467376762506675437100729430096831036184168024069722258227994804299602260158217160727382918428036841366718161104235310372905008386370427543384405145729875641582606971821663361153505458819617676534367069280118655672261017705889642672685117535554720087511611017152312424322490563148159510090597837626581258217879243269867087967059531156306562281146228710906094097664904607507746002626643546402903873957185159272224871787368957577493835189316485355931002704432262369660814691026070489242744057876977111752091406826862288960112410844018107795817602984278766311880953775593113557527285362530217527265526265346922298091262891471544793741124345037728715862901917177556746329120554062131302464729053520608761771504875647930070020646919478103354461412897168860529936418578226971914829449747910979529037411895179144200159262176558262456611981244347295557523671209523448383458423329416261361479767267555517702457150701231811846818864881446263604919399935135274966019021417765535494304013193262068934262567682557442014290492065929395660514037491464623796859787489380089321322141118001828245604022790539062553771306437389089404494020260004354761903264968187952719548174253885664849384823328387007814139886065783012909871993813533967742815869244059519718419063154211760096845139756905288135254632095192210716665900948075201315428171874307839761364447000671920546790513685403126040791723802292383699696528241899396902643646627549402351806946813087194779542728384217202454252221199866441016029247107873210782479036765681587000877158546750232628812132157226629213696063354712151393795465750312899112010194107545863652339103777901836876631760657919474809459659737362914688763114251163931554833503241715611881490570260506014850858805909584775428644283885543260087688041319138093202380614404128741252981090017332256410275463007233613242526733504602091122506118594214890269764745477700291877937218050134803967610959830432959781923281654187138532843391898908526629590586557366853484630066176289425521917966929964372828496056274550694552564675804796208281336190903127851950610117576282755208739560004962533357173040386690420048361374248924144441217422280542587030904403265352234975241624330283556540616066791315941820964399782788453084804352253375275876516675625221340386054236386453432241120327065941127928577512738080924431552671153635905612460720499925304304966470819056274967771353994945542454284316441043671347729058576916230399950829242099502497421783176274621160158923924282076769706208029899001053251252068596507963288962316536786746334613640182282004054069227530333008911055404517607816190947632268960568777821096125004805650660282345901366951834628581659819468216376645427051263014967253147903967045485402080025380204448261304980367145887336471872001081427479104457424692298745282852616035875748915324669274038265905859921168524373846216853999284014198797343138714132460250787084487086731198320184700546216983655281386204104103711049960595634901126270995955432964270563176993864209102043204684625633318125306831093537614558649260565550027540200522879866916469638383542658659620859421561288433837801325566453329364288214404881486090322747101831416410113357704100382172186980636738566110414893349053768910035704079364697956999992155622104630831087360459752782166650128853877652831023010879875737549687712216082978318312924864570710756140982589108452022304759323498275420893388758586606952363063863360394304197462275305114064564115763420807704280519072862854893865883722207633871822733612454563936949233920221402458463767537982183269792719689632719131210923903869525329837983916288258393335493184138427268038907212618173886435348355232195120013452954283344090392540399200901286990755960933558017558177831518733254741671259313050221557789367052780847904152645346059499041214481034870371075532724721730183883573519396261985712778775237780858003351923025568638848393557002917018484196610405914663935013166608854358526863389541275643033941419491296282393504326305532306912085057779689402398136222670453095952186392431731213938853474395928530276693515672255991412061613396044718295005979572205075205877897614570015765054474979199894346657138577056717183050598767119621071613776737611559466701899979635084599970494890970378139859064739506833453534812634968097611473845693350148307722924851244139996153835910425174156037304179310647505601603234817181589898279689789660731886805997931689270680545299325438288211020715266447680457809420735133349815116382174917454605183413978977569347948519993876690989701715231851454310930067269077237552889804266692092223886503567239714954676933480478765903931452340372188624977934962249676802653853667594213422207959927688882585358585330939218285611194780482732024772784093700670340113778929097693756712908187281912915888738696160599344807989618856056149910464575637714334794413605038594265875644652417159940822857361496495375335727245708302175449011238826817152436934966787537658898177936375837176952753813900785598319621873981133452450196723245619968811821553651873342899406510246075114295508131927072857611456461540423595961529472088618944826058976945332272487469169641545779539360271585823254819413447654440524392069095246379764622573074129194934145960400780639814462352295543102250301351758503173486992791978606070397984626623358444401251036527299804664890204829959401510378030540742755568617148729586693278291409706854989901351523940030524121023545493696357454877504947264487979280676757831915523929277001362435230936267861201116147685512173486819269030968097831173693510588741313304614321079634906621950599038561846980463261336847843136734042141291237916785143527733748808866777371579537147624895056615957135840608575746014422748345041805564100754806287249788313187194810007997197173685979368123768990067133691639954498330314698532112094164897182082406384742367720639377190218523686845400452255907847357804943143368647613121244711133558660461550617456362007544403793781445273151226867000974905040795549833915576098938823176305898947835232589448324338297614996902675402676477256864490632410229432210765086157894924114163389693665037204595740757986421573165692148101415054673465687559992476534251860582026257637240521171078358528387981921688858482086407877331695905746483820105446723353110043801106638848410801615823696067643672674198068232822687667571898899867948787053361894594109750737978446070118840130425803098461049390184342769810794796946902278090900047065151126057870091139513647948983693140078826264508884730951424745878500058256246293251790549528531225481914713848333476449791028942171494900504426445159762603706117804255946330219885604077720808514836150004126078445247863325352931298292321166452361385969948213094445866705329616948227421147045303900884240277544797581329817189602969946680837726680220402461524967162927083854953832580362099946040443589693032582319961140527201778807406855551686318360284232382886482270595796262724847331505091352012892842590894625214474097588628695601293578602174172438398544780330204252131564964856854473498116266888521160230644069381320914809407201508056283390396077006496482248791566304350999040861359117967487181367691649990890693117729141893155623646575100172806017151633025064233628691217956602290619765424834545749090776091905874755224044879867097693672876735551737496389603127427874452303155595639766840199722446138248315036725094235991697562374361947036859989586724833516742351777535418356893561766545127479921251130142792660057047020500725011271240154980288711058422141502215117968832998639027490475327748802428771648995672687350541534599440273982297015322330073995901466509067024307456766255078946571639410559511767832900635832453870145442778407883672224394536314324487123899149315045417606384406692504763088565030061223307779986189293205577118313187869064372742988177806259544228542257737996177354708452035073695895061744304223308334338301612250100482621241825576296220990227754951985403838680299851228526565575658761588961675781218274902039554232794890225541232387639448465177362888536080851534071968495627870630843430771459644456582477476519226336236539599821951448625405808993512126689469884481052702848949513801821615476594463724329724813383046360084101213126907212002993540650759600615981352716981089690284235373391134142265948076977753271296905720871387465731923193157937374457823803104824739050272364783058795385377914829416960955975406487046238247649607121253390094910560053307539069309852613383265066424640740481762583937726055238459537579351642982474756443117350071157697332817830647945091978062643210870554549812552390675486835589996241549372835558296235420082189083756690491266813778425890311950424412792418903063112269831501129996168125194565971128534348403845428335463918084954580933613333139946068567168710900793467050150762407566489667897927122868882971139712794698201326139923421927304484586696464304811018828308889411316776431933828205064940809112734855713996724961681365558141150659026964282427907182330606656517731501384660546827483352953902633709623460102806799637397230658555057286869259495480289558302305038501613474895556250354240625801030926731681959759909760612940790742940615903804687092316450134843119354748975929214178989509938201349642901686233468853349132447851078513576750783291394464368776511763858797332885416004582702391177626738891511920630017295149592776356331139053165925295215978503762299303836474769583250957971967970895979262044122918366695024164195630808557594081658398762868100103355103954814182835964772804453402187171952382724623918986169958079780323985058665492868990997828186465750237417531100248455606692457109281053456987930534104763439941223943722560375363700661415254339570432768982990572816141167384344550599348189408848875437076812078870255964448195290599367874501904852459604607421663089072114556757882264164790841637916907011748283588083577390400379401286724904956675274656134692303981963219358793368412757542945062354545017291488511969015313566106465236225770537283368554635531533502368028331552531491127229443123183601572828824742234344597756731959507878048237526466340893065146572287692104944620327177270834360939841085948019851436555534332881925124241051557093873323176613407577439515474246547503815115256267834666050125798693643526792016004640946871088585109517562940251372784966970188859532576889722299642378491590338833956942116718366256043400274485604631048161116742435554026964788436365546676870640179755070420454773630648602702413841670808904185943424287565391270458480909516392883289456827003465172019257118323989780706087438920513116156209128669208596655808777600480123450173651204262089721915167680440931827950979656651144462342184781018085062338355208489199949578989505095954360069077978970456683878921184107229749873865169963378834212595361684970438223397483229218440458885731790280730629790289442805539974257528393494012623994000012506808346907984208151334632544343618259346413677749086754339361886480723428772968198363271917030645360408172404437863156233138009717545870511139949412162488519074639023146707666608877401479791591357562911763090916879196526341777937860622165412762016699909180044795236988979728072034863491104685700561511746725592760707802019243527354690218883702231937622555092693131717609542619715709243456302251002987758609106701442158206467644492644495704747416294355704965673180941210842106194869156854642878341202408193655154068339753807718742983529137989025991289025569994035840229201919273129906243221792059681438043656424443445986760181458060872441284487752670799702667049038868657464098993666896548186866183933128896761175612381885993808021785775113390791719036378193399814200016445695788415891687769518837311570922219384479698264492180617398233484837548071082728631415096986587096028029460337294727767138214272283771497287470502413584638354622217758443051830636530201612956817138198796065606164785383264302303060701324111168056001922323574068253947242305687475892068167814311748640148960887142976087307193137849888040787216822740497060934205455378050464105500647009858650386596430709510422599452010106306836949156780165954866234556326378924244057104394031035977022334119873044115706853820763642654582966854528179603276903011041803820780734239835655485767257821404975831851372742185525721178993521821322362995072221731815712669977694335023446057294539808346955985837628444759589004445051804684759861411963430723330298855741788215048491038792488341789643475956982360874702499890631441876206152828263005129283473119604962251494867051640945333634464925243582638386863895182660439483393227498077512771760939181061394865407494821154331437617377524607981763152390823995823692030965404543572387620856731759626390381897426097174375309512484662633305962108833634072632075686519962488244182275658356903870608506534129081538433591668033581061939899626342180444142086946874047356413344307991248897558819797463410936806483428063031917173021583170338330636685405575661584980970860134364772566301543047984631096219265107063037914014584618926159606636964144555604102393609484551590221322837934558275626924829199899292859758268470021790411973317517133385224027349769022863870923493806523854652886914260650006902014034273842452182612918272385596389237791847816486761833961481656092306589112282676919958738362250924916372495606411366216216341651059480048642038037556711923382827176408890739550660629328119290504267502007800870563701787821181997032964859848875541325426907237400009335768074696773546536119286939857654317487246817234590516385110078815096781271025365286116985426929532182404901677068619674683932699764074511598842575877474759173459786705593218235253425588138473605478410614743028993115177609182851762905671293542688729535441615862641687021340570950961525283713680015436303895871091065828205216452474229689400135158648739441197937424196272257871152891990622202835849785464780786852237785234285026595999697442614586192158237179848988284490415859294033175084002053290010201553301580068707856000352389217344912690125020929682583800989671066874463659951570730457338300344054237479529696475475532803833310236953834069450335461999497047379432438827503301087537600752977865666845717070365305518692852187954014611925200479475731317197452754776924490820758800161020258066187281347257093402796219457352873582754583183590203210409553431162344451463869730386026916565992340544692681306760488765902862473529084656946509838684603631110159169659621633646136867434458539810068672009262276669639252842250403462040464470233147035840164161809901677806663200627449666625200592058395035500555367408727341958425104872867052434937901419626217284705117923720169041215611906832276894912647043189665286894876166836315450120827424496834770096836165775843496128702322603739591078143042101734835638141836516992036156985260367264603797852608473145576644999060773522340965128212256863042227850271884318364917998861602099551612557215308271848157765976595531577653797531657873382918249889655111601019998361710169734689999753181957868049875335358971379974586048378574568773119029561955551438014438236262207220927533782421818629137044826957305729199159635156784384307544893929228776881954865905390665298608582011479426924854214943666891390315878081013826433376070824275470826111025747130211002692903117778750469978078195251246896808808701702020824477519784121248917191799553627949419865225259767147605913356467115145138999350718581112149268854772702268167074301515848245973484865047526909048528303424157819893099101796186809063370357022061270850964090199300932695928598835932148316320463514752964080439425882069204795717614072318772554876318263300650199551651494800085282726577091837437313292568831038256744494779634857604253712743336713772550789685889270373779280177310285187879045794046388951256845647296583705005668580045719446883281551373693624326682155134981495167873066915088367918224538163462548232925455271603157329791115915508297796338292317452308686475944100548283210710737487900240196994043884654726799509968428585910353645892017100336307799620450222916073455535870452069178287409914272380445554501746521060774925219430170777172813394720535221755697627946548455298718000399782411095595007663758243189491936181262019456054903308750683200696990928713341313782845906471052352591549491803426648601479936944525000950150751545923075566010849419760174334155801482836888776175092198945177979961548799892370143892516866375057134443292407747071481867876095453972759314947069223719107370079564545745140574944709206887982740200574135923514230027768248336936219321802215063482559869833833878284056861694424591972120429508446877778029905956919161323901339333158270439716979349597130718661234254145930997810651863840873051694189100607644231354811844891671128921930142392093713440511118222067334103419245409315356864989192992846717624122870543657398411729177838338850767158704310069873797702012185276895049935657821668564162680917922151923688477403346262965416989244496368987397054145922275206820218205550161012145844863848572915253345312961601951070092443004492238057646592150021596365340567182730711797076903934507104810506765497211368780725241357042396848097107570838286661431243335970914996133488713405868526327258360949405645030062085436057792073699522394259432154103353932447979489952908266055782390178347385342449982641097320885933609640940204929651912869950822393002515411319317571117690784505140169085614293939780695517733301344170337550449350119704195872491331484326376938037371420364218362510519930370902545243427941970340082708246586195762499035267032870943873483786663965608247943627227780951460986742545558127894594620584845881311070758922391054281968354825321977501528776243395824216649930200926695704946649460796573628894113137801751356539422417522514307774778714113307557893638268713684944155129330859501589061176304020692700288389404749455016574817020935610038593745937983862099327382708252239557308498771730499019635707190453774760551417165632353551680379876916329363054267927527624181732475225914748166601819618298854426828863392111923571217006283498305846735518160524112826199681358312484318201754049682973733958921567798615046427844302567083022599657672837609266558797796619498541112586513730695417933096531587619812735295573614775775832458171150621670728002943833613207881102589180440530254912509471404951763600446744953156996903474304260981578010610101161780931285484747937858563052583355535733000912353581251397805642144339150735804030721451552587419608596425139145427691213936751503161280663561836856754088863665259216608296531016783407639468591598363186608531907085929463579569211852734380793742879034435688637337991147858025098203536734601372141377531714700349461864385201823701929496108320404558576622756085222251639903767449990041206094554233485484150541364892089354891477318827159746064303793140907273245074456938880568422674984042091454850620800929697849023687974572939467519046697372783300805180508614572510351391408810115400428342739153774223981352007867919885551990978303145026885160093390316064166474602360892282571943944195101784780849097957534273409440332551760332924844496223151889401217928077482765889774898496683127246679032845981193046869380497916661532615492893910546959575764142624916236895600298317542787068723464012194589746620238014345470598740511878606703541290825381201531066146418441614209396977634509670685751948747800801157229832851416920112622979414220275204716306162502838067793396039531177133218790980744450569176848840794646431582832411145172499245423781179597458240241144394710754839757408330950405004238121245348521172337509940904747705987915729046746946386087161834391218600757656560661690283617920204203798074816064132637070476116289178074726043139986118535185035803662405738713816793416306983816292685120649329051592945968166082273178025312520328418112031047584377137905380869475449300622874533585906503705034225393854744418099151707612443470543628064519810244512923007089968371925644295126973307223656088909525389933144397687747240117998140200175912688131999583992262524099797059425166604741350923499002735964470600252285152189120470046807062741596031560315700655005626943891452628736325358517741281833865218298876418649621480200806115746364352120232238136069239999123732762786504497588542719745647486328454854535497407334489936611573282764552265501539868041800561771907435154898759575153417271003702568463470031192116866869939926291386263748609200039088459290830679528551775786445160890976117519263643958647676897398666810911955359436635444345345979147995298870879427814182939997317128178131337585473492912061788769383200983507742491078377659577905506776702822249518807014711283190163081806552651677371906519432336714505719519040194183829782350201846677084413139643959532878561470151237139922439682944144192001269613729081868370707846670963057112189663630234328650169189610884729489629701755269792410617410807268712343604581779212549035986429613955149561252250485123495564486968289753971020018869983732894617119287066877793496689611568996601341436798630522160816605272357611470977832147967221360869353411275246395352679042273711020917068913465796002961978873539270052171085828934240514147387824378048002972450224791415361766287835726753217113184607157442661334070293137975209700213988507746723865942402007767702449756648439111315120219773433835530915759685228232870920049742933818915385338915159483131695497863096982813046181720893828728566375358360840457494983936288918699655003262481301548876635797511680717621749408024198057382114350433736956799646749780617387207626940199625394858806831272154486472991631668645916273435392569313789242956372471013180628811265938325544410689262223115773139392543240451706740986457392520221804568184673565790345155339172355814716917286003571661428764805227272904402208910764813709553313254705956022059635245195416067057112022702274898502723953564774534482971369159751793825192132993667501260863470338809358195418652398090656082326729667944866100336449356022410408181028455722484498087021840262002180619672369696826916588568790956485370015122158280677025884720012032354506661843173572624500863371293143292667174646309896464396957179101684511427360401293642171628818241228962422434003786039958229197818341176142077756987160388196852057953946510139723903390435254504236562397461445497731568772871746930869281574880440270542544323086120263139953573327971332467714902996260863429681847282872600512552516329955464153066664286575407274885479673247646675799238810573262122778410513604598336396715554693224361007035348256068587314898434634221272796333400468151990560857831792023406682957321781214374571822551198044897592112581910888936624492739335249843416030542853465424165666144054944554283961296168389009250941110863871314267265158313588403725022256656418190521791951983440234466161880637096141549832793955986064190758509223146528610147405790525497580183684752953358272760593133314268899738411977067813267999253236552186676839364703916293095932253336876996806127532465204520222198754131909886996957174943033364298125226685954898472162335238676948373150598656315917694283148325544721397399999002359680865213547721858442878937138372931983908885959466716882268403960895070482613540220065640705130174513948833712239982913822049883595544491934626267517199091291563745033346605985806333572955901566985315382967077549359308410111305040301257097586222885423706655595009604477825261039667798515232199628750435346810188820474965451591507751960313964501999094044582740416648673379330393587241855515045148049801134103276599851261939417321199172289175719287615422722171690533154138151168024377586316546406310228061959295747395749029991431092479391386151647468938499108964833205321796493007620871176877458456562452292674235524457447561907690352592480467681554654865233591098499673443170006314968732776258672698492422362527949215332614085644172486220212335041479153128406323185509066647381186272825071706334259349819450995451802485088611237144140162669925722991898353515752561616736874711103833969443045686250609258320341075531309846626504468736124492966709812539629782036537547608512320847035801555945652878809745904311316609783900510715666975688880526862172048175248049679265429010495093435224381976820832444682602049828400877857498680980656223409657079088865389444716396105684221806697536706935828709066936767746788667219860646944092531048964542316440954231562567497419847464629671590699695754619542371252069813552498855056752039868328092237647289489751439726761845633076589184621002071479054137169856711777529435064427761721121071033066734088997909040805833781558254905818659123946885550906598506458065162710054177252253375087968303619473959237881089292914750165909962469353341220478370507345264014060755793097611793444688349514126943615935822707012748198056558470710076855430110890790216897591835429546614163022320510810751363202088531664205036694783268544739070527842350658856766708821894205221670972630482420834823927383433295821762300906775331328033938081154709401583865099584823683090221063627303894146138273198183299386132481888204234879413115231893977378382602573704690721434644949036222742648778899772909297472796152263641121344869635003714033467278910534975877934152090218571060955324112327759454949325425798266629408329084599314847671069070149942457410206645193142106988704290429081800325688454687021993934799061745621198751749722547481924717461949832884303196853295423538230533177202935305829579257612688886091601846717669585126619340553953178607422162855542827530495231407577083794097879597082749686786952059956428215942062829417670319694089543941536849281065722126100356986837986213216147058462378738576815846383961072884289097838809404887256025543748110196960575446821801897862161117202462250105279340574291043921960386334473028623388739082254832005966952869793360282438970954020350364669557465600530388248424918011202318525303477555166736462758408981425693870113915552332668043402698977600374568540098073188401316411452992212255050399592515780731745112934963858663091944989542624618027304508307218925834347787692290571951643456646741227542577215371741125917893115332327299555860315512275978091803113225177942613970739357236736212319352353796350719409241979190174766083727857129936642570701328578511566722352452029818043783471197849765782608004487379923705030917357107407274448339039116520608793001197223751055877169299281114195196468844310197739610939706427223008717396641779631214318957559167259845162924723060106877647114376642352116427909217470778336559594330009089095940319629319985717760269065322223839617127272409984053110829834125877239566227920878531874338175817147281444877205542508497971011414654356345503898527218832644418272172720799404376113593045659366103440245402174656753129395203745530626695395351846518485413168321801644166626671482093122513721163364631568925478513443860134032401708197044470395252909607185548816354587392614073018256692642622954324392825990528986025240826947209222727670590017200468788926831237983169449714678431970216828620091171618241755120071778667601343107198392180002245166409257591093561087298885834949786143798350221860032686384559175901859204045262814825492126587404466119695466740102989721698651518140329634695646415171840506387973281271027037043373774922130361489119506063296212572155537350191660541517797174997973519598436316628605508893467639379922742158473174011485378203146454547845424361467410451790549994822243672420478370801919928779200810717369387330385301182159300403230974863293374419172001991550382812304032693368133758195589906349517127441860687569685326454068037597134324272327537557557214851229559805824067086072177443070315825416779010572171539888509684448434585098923867239741997976517556856262414775816340161425758402157604951776021374075785926942514959745296606813996873508399831003695633050813918722792619229009450240490414001063500888567088130301912670886354244140806755741653341546204293976741864125922038309052408034326684544666285231106483096036647341959319602068880689412907774485851438969377245840539428760103280831797783055186474415883034464378955769475666485568217893338486362739385949088647210041744162580290733703670193317669443184256057330187315205119324067670955725842930235662834647587567450279175921890808450069023482387399218545101134646196474185001300118708429792004709478199790958483819659603386725019946899605146590231330010917826202430464518291041743336887267371382830121474434101919007233393079295868395273614687327784100923292687285960013083986583948151816551949628634252920576306464205741468754461830239866340244991217727773203799669000210856090335288967172166303107005991335830876095773304134919499051001130734787671633303483582383847018611533091991363105341772804586502419740762330175305590568716322629292986285050844174568549385367528487219277375267110893932040605592720950544308858435214226067480235535931710737904832741964159666800007290095062340003152675182587129071391950383355241073466462210711020161394987255248253682500525753191236176572274048591329424785529570524699764163423831620694396104717539874215698702184042817011796853161231319947140164870418423335664802393895774110468029706009168262521763529408780850491861846603746353451624028007693047132413303454274394795931315183370290768693601801803951761182625040447332694971223538910827981753780582743424195018340302480658984813935158159952844252180757470450843677782541290058362635681217138894327679181289460510630310742759499740284930844479874212828489464309147217395069976258424744253790663274429294880662096016076747895417259000471657837034738163898384116426869535436201420917193002263535010633708555454624864003533444339064436655243471645929214023456455884050617596370812986629456253673170920691128906925582203004857243579292688060088086633508036123879622348679843332194761559169069175371158386099212688904883042646958705693668542420691330972556128499280773988469776311486291831770367194229673971968380736956089574976997151627320941543119718163551185851197750788839050795521565065042828645109777166348908433766021860788258617506877644148246019248053199241525632564118133641178609840807990543222457006035350528266542993033777714754776102470490936265185380004390153743486894158330419734745492731395841569910675927252709953914770078175139347996794549343202711472424811599815553526995231498659369031511056373716304323228804359991508953491288947231700248576602839820437859282911259488336317247546121663170469084449866242622946627679238996878256693863522513553248196929512392094340664380632313654333350435160628898955210208926474964138757811735079444739554229477860970235134061191038710126083603445881258555518153176851916375097630818513906229609614017220708384555925932753506390571102642906958260953486908583794422005083016795069684724523598710739108515977641755931661964860801193821452821490875558797837007345218101630126088207369286630819681970531379469094409103715840341324444968443673621999199741941992707843217851181121862636266898091987808045959726016579637847604685407992100625879935194841673989456712977583788474725139758059230509200962025440243331920764991223712677491286577202974701229311904039303131621693049629637987762658597152424910765069544309845059926442625292898058656490814926752211378979948393774248057616602944064024738780752143873759529879072823139434374872895280122249322840192104865371663878342294108006952942847929097727275813896689763626068959661046316878953381425369270092153030788454403980427329797457426671199202151250465755886065013677536097342014563195138581107652583016390495046350447985053407862682415901904028599133963521559198500867378202699912813972084856868930020271830370865504212662624776175332616360295703435261008577496394693645517869617595669981631159269069303448353499382761712784017160166925389772407991575399207484301368376404848130395075717582330801542101394466634531964132849720145151379347575078942917130407936010083297276939385271116009853595517915941735085650601877048527718467268292948385909269010789757124345361052882620151116165151177252192109087216765920259471271459076277042265020042000976980038154167827759011649688510319217544584661419848907895793759178513752789355496289456121798180536987151264855117684217166492215416934948718724788735299538934685291420444983418136557748063395622778877924645737373040849635417377899496672429528953275431158280210991808279817500641476098434803218944708309013806012138636102154731066442754266308625005263212325321402942983785218013588539089807517058113033427437838571541360980513721945633279000998835412771895559122194979140468191832389936653160582312626745776037688447919305936739366819121047430672501477246473250953680684214362200562623688020697624775265250944131135217164046824473929758473231694704006663146666978968625273060523922538117501593394018843682934404933283837754014688593257004259055461326559498600667638041969320468467251203067250340637576097101072219856304179105192984343748527090034570857097359069337723911559508754151356842416281714821347954913461173315867693009177871512743490549151146370753709988987474075314447074568565479802857830368851679602317446005714111631573671631077859288886639264961744651978186613596409584549861629007516839889301311298223672500983683356654466075112022058498489290821077100017152339829500981967769600209974439294936968121852541708971121706453223008817856787829960876170473567572571537773350707991816331049646516771974702159478861152335578524933418250649601178160790807867428731243163283770776616929310146023500802640391910148677984037087096145523496845239071185216854174992974142360115901263255412387480377551098618464608318794414706307506201863508095756672020040649484978717671710746802892797175767263515228557913192199901462051961885585779563593593035405784272412317704462883659436017056992844509984226190074170338887641301030644094005984681601027151732945359207607757251867859435825705013927308385544621850301521422147410754373582398853316223775036333626945809040599662713979471681425519495343151062142915959268307634264505377911486568974069405704134089287865146022868477603576240293621697700032992808317743603878628454557602518675718990632487261479930335837303379648738821624568859951032079877206249253072136963328458325161000560428938451794612992784675687392787997879175841023262240623573998664616958849930402101962171142687792446650622339306336629784171312890915685851610417477331472988402518463822541714644473094261899737635748553295465181054565328941085161527383474549859815387557581418198798126847854164947249155693649533704876930122067948843720849315953635165066316453697253844024920232934441948545544819668803937748964435868760378963727764642402708380259954733269002463224531684919262966831430814889814226220045351074017548917113179725871060684274859116085852322816900289526862364294708837128208965052798395765871495156671338667844039123663035858991934043871870465369955285774417514820421478188164906099190358368461303974379530184570676836704264288390224876136402754539488241071942914907329887308714643479748249069987942879063943956020797163302007258806406254578400847109497099036855145274513143458523530305974166063851724109384716140222404811203938472142606782992681398844188395748300056629530745671834180450475163845071664927253314509291264329491758075047258566645618628663656150166552199586122374588322534544270024945480445094983005122695205890974199281144549997205804008969215274557004498060265306466201895940723366710732279297502533382623220607417804463647552219416686842542113240464047951553235071932524339147622424978656152903827154817007084712024977842344169014984113627848672254059928591118880790201826063620861426780481683392930282020413942044285004895670684512713154541534746817619129607519702373492239605846359682349356663972642552485346685856762676563376863226194092227838696698973000935485885362473815502985316897304729564155470657421107472270512671378101682153126904489773323366626982151268767195653331032482269858492505711940870503170241831646428956809833615585792841955591068349933153842327149672355160125494281788693166262819396437718505395841709631172617177909618803977680698530367441901570514586068147644619988791438792831851345909612305050291995789416812382657490870607323273123135797787638741070445786367909494951190893134808081985459227990746763197475893531220138361838508674174554840609791195967300865258892354109199486721821468244514966462576022516396129566670832806416320955968143851217262345452855128158236698195212360754899996420256924202285838295729529386068002941580353806194413742070759800461200301822723564018300059307788581428352627613910064574892080330794729120798731394906443431893345729144048539749335327042930119910545835604171457804046558566977097819469408494062105146591100797569719299950462568036587220532136758786382969181327985190088137738370582908201526386346864519478282409253829659695308693284710074190419182219246656446954689496536735024880663061226191920945090603589985705232698298160018864651952660819153594960595709144843864227025733283683885296041644411353872167155267565694047808842270798785698245410858122794707180629926727808775645202083217810579376211178181216123498941256845984164237563301383097639671463661569161644100436998339435449219019797514306671348407381878107952237056808501026460478072359970976681491590732381039744314680028917598134220098980076828021230115662472615143696733582775562517007170461674266347715984284915009877931924620431972674472916587306728956086597893343191090580732559765060189815195430722905437499300995580510822818292046706973361211240966397286093210352079755336231528316923280140140683277238702099886814513594506996786703159785903736735955259543688859819582937041527980355824632531787415042377439770955336970828055441683335690650113018261019698228382697221491999934388966220667456864673636725465108973046783704169969937175981770730319248745496086927544418687383093878629615607012354912288431373494243555107336587483809507379764851944777545004591377530242539886669960219813693589949737391501414172384720306657370524873462364507115371325981883853544179980644640628851208036877922105225631226261233449231348223753779052093452747956600440625868252970756575380828777105144925866904878709172888479250296822576817933947846148368890955412321709877498997167148618747668820988613759041250447656298076239970973327542411029691993814299205930399720219166739144042302213684587283124074625788855212648110119095666638018721922219783240764649590539980613275099281611823806584453638762639748415771561887882039950890714813491506102682214975672283587775437642506157919532505149056948364922153623403374944019548404254615789185471292975026410375758567021562045516300508973089923010308341785469350539441232087684722218888743728057199950135895963635451660376524764166675255475361621405297808892619281223083890166601337254721920411224570916737771309269917454515390494712838167158323851260106360011752817332807041272138322866708882172307028799862390324493214588236935459242107851972885991407868200961548811053331086328023900768317119225605187068093914093666510710739692561373993597493667208554487383264439990391463761233006169260576947689378668726125392070482092177184077473951629287942947880759387913245893175845354953157130928842926365894444291578565725015960138299335712642973464299115245087236450217329200428562803116580180183882048322602648425097238459157096900188018785153494307053999401433675322556787417081117231023924807314406987890076715593111952722025153755033867238596760992640154131441888113976723469689052835572396106330263792065096038516862920817800467247656763521988045540560401945816418405202113407102430035601367159233001776970242470945773413187156535559118823352268922941244731727417722487136131721312017454676670106381964985924504675217195213555619313417916307679724830900536919452268665538280993422127425638615115214285075662536599577319930390696666855150377935371334324017906312684665477233905697181643549656157681151722764523974833314841403385925251863963125666543315339054870541393832384246229775452252388905674981741022263904016092415130832292639864638444917406348958477193512133548469935109123753995364494690069938466607042964321574261253230012441364250271963222012692724195132086298512288642239060686098234527624174209715146182917815674855759916496416869210770526888058649181609096908225343888734401365138857684654439993268260535160305780430842990854225431339626398718289339170294164721200810433486753986749444621096362310124141173923371997783532867495071341371375263146515040861431534492049693378926433303551560247140862141987790167125200699188944360495944772519684809550040933347528501839346421154108388230762215084606081628832673988341042982307809373703206364748309573212127205004037663992049333037101149681774148490602308017352559728180160540492627481019675253801704789400794962743068576703240326450722012125895109246514376859207031862456439067350033884619423634677606546117312297902738459591349870281421445754161519284435463880473082024404425869797389870304539432829059662703996673826025109916083623994539444933161724435375784480897997414432767478797030638691029832871697595921769407213767002369511512681758200515803349219878366019923862530247149237242603537641010122229526381470087508310272783711136337301912826345455156078917501185149431796567113692917726626847098947894553288870130413919592345796264287480441522698554745236938386380421506375221439506041256530643838839125517772056807728988520368965502792012700384605974291096487968032776606393356701189258210451377496925704021572406504933163535295551721209884005216015173055962393780032420794298230283585840811792080354051492671385042990507510455206866141121546599255697448797772666510015038404572901736905225841481058255054203098700374159727505421872132929592885933357319036454794552094018778283655499965554321606715420597460352820377475872098172749353915343838325228520776067469205759260206419759180847900903802784165046245284594731338126407037252770279958392870176651930984998678171840893269474351174630453878879818263616489308229127485679166807509050546918935701736016206519247897055235808963665126610593501687256548833564492325688508161671460650297971672375827138540576383866422661527985045786177202288300862952899788950672568924677114018942490020080972050285672066382623485995879812589274162391924925963734487129750655751174516287163277139217918289078272262680278962934714449329330582514369706233906645054548824078605831346660125453903721780539139631344573496822364884673008694338021363634118807817634230410822317857183715409281031133947546795471321449604674481245705488970414087344504714871777079206642930871076690846692479944127152640273646929802512504895939726288672122525789829425453822492998736823904009862477984815947785280362509295156610404474266600738378162705321633620105036762348334006917119735248662844139371863817289401451295328560062335435647354565499216440841224089243095559079281244655980244015365268536337801881687163786416773336480872179848765452240001598540121084882923820004312021996925457615965333337603873009936833048097293222105746683797861490869443620549665137896645405837570717237679346662810391962281527299127410345554107919768707598602246653751635762705880526662198621553817010365089198569642788342579963197144179682789549380241833307452518823640735420744907543294743296353781590408146277077672792265611226359344979878619554516897487609039074617493371555465282752489767960223650425210307256557117936004388147951470261114614656922854722701331073740224461721039258348535923676710746643240394255708198568490767628517269398584820413470358370067552497389253637331994274727263979286764753804169800489245834786521515871136850797610494706545450202200451705650384441118557529774769423051044393370120471240605640457928303314516848167532493934649101085813290774626470262504711899165792224512210594698361404400774018426937711662323478092456974821711908622267977631871803736208091776622559304150664580292139393175162638085716566043161437422860553297807561789676399659230932307790049684930746129217217243912997784497944034560949196160345992936389476922078774837415714926909508112457152947058099336666867082809728905327797858526162947334371233606265790187197217189040375826061679089910077023229296734288410084184834929980749487314570069870231286937331286383336904411385453409395709436154385923585093625100527840272220776115505213853694223287944811393628875965645814041322780759913968068146469138322260556054038095022604678661323016087432783295977925969175876335913590939503793674266051297412550213668215365255510206766112739537449656096064421703640096679641309568747355972047158123066093110700915448273715909478282874565849825039444975449372481863347655935927260231867960170148192931526296960859976806236263533879958533941432287339412403438954771524592316777405779630827455858644050782519024496612658919792526405973162678059034582614339754430722649285830774391353552214158071966157338567425539778574430802753443143365338382195936688824822984918920915212159124915839577889704959672981169618861752300605390728205243440372211446145878698754786225688676955807444239810322602621022281183299279313150621172724759669551616346749949539872531703025848060686294317527823339293578244083672716172303679495251072306008761320398180547253034844660309354519287987516942282371318781618060810236604944870287252089498681386300442300951487390342807876174309437057437772738046847970911945661549509767707455944463029890282864231415653464470282386093653196388592464331325325041377148510997152654998284711804158318378919186029972588593216234775502212101992606103646357164006723369690793769456280361997984429831213518078521945937028620038618971889711966191885788682085303483742124206818067072265942487892712972068857769169990270569288303323936753137866921889254149222176648034188157534258115501899219607642874924233808812197234577127830787961678835743055728731773392843590530996444229783276790773107694888745521799096839976637874951902457503146590978585069337197769342030764596693429949415439728406521510013096709893625433813006962335485594864682751955128347475549553616803481244800579258552187618286333220861274989064428734921889985176183935830382656007398070704673767893954018076150487752673330525077969705278764018858428350858724351651966562344469446347204938993045775865236105626395138038488650285102611053075369657941936752518031314217000680684316200303833728462052758746380574390762109924261835542603680986544044305460871303583440440537950613180391122743573675167481105186447247674625714498130380086394127937568555008822853512623650709919095561686076762646146628840606913523327242131557979992479881742113451324099210969482868274817494800664772799790852571414770787507607429513699389743091507483479159860382790737566470912312958846113824237885246213773410111720345103589527857595317299983436034559610702481489408602349570161678037126299279302056976606427038977359246729528760246038510649600470686109191560515986714591447301003811301816132397380544378542913830282789603552685154830873424773388821228992603673389111404220453353160266933954881986620113849816257137666163173105300607809634105466452644251369400060384112277361886200923909647680739839301967406421916381707318714051013097745766917481421126920028194847120229209852992668312608471604187675852148954250561438059434984743359554584369193742330790377799983844388596473187093719525203865671357551166471028569286480068488596750457660110876221419671386864940255969315899061457554196641261290450783028806600054879034978900773959542605923487875981169962639428018728957368712040618093394401711155252557766605650746851349207957863648923277449390002847717881071301099250142616446457161852189739628927372516891675488150327486161439129439359330426426319426691692594545413532439187600111232680858293837625114250672710985743790189724095645330437738927985152446286304002861482084317002487733458661801822393991189856156490940200424105690345786923830127301019476620532328583593635673786489022126903130131801919587925553929599716743376615898671089787663745913371588109881437037916705012081485052450610283635616008707645781337578870915498591513760521673102873236950022646219898008100496012947765798229278534295439789071323380143041269786363212723149744384875745342278872534734962634950801562929048697142132182212969627717322522690913870171020853528120048441931940804311856446406809872197391252320541465672519016444926300282839916044427969531775903630465359162343191302109662805174908736978648086222121704821210036620013784418874134112077979312944346106603340648740120963847877324690182339136090735993978630244443032407128070017997528772423620312612003558768190260146642008333905861463301604499454659596645381679604194623192657789906777566188006415232170484059124465692619684068672753545644073104666231503360452852447964998350031604374948492803647456151573754428153497591134579102016590469481089885584081320526811765090729410198985229540519693609979085386729025255189486355612530355308518721719971752174871601356846606940598982280714533728532492220390538835606446329160501116497807918345901800245724129640279990672248606297819721952823785413317587584799450250668858878596584502380673266625551154489545765050459317160455103071090991584909069763429369670065123843696500661004743902945821607932388329285123384323692545158914376342753192967887191568272140384290261041814267252521729749250694481140230138543183792978338061707658146534404973131364359666753034205542773719422797577128603831209478039458718477476560665380956307187640394177818952001204227677089158272867479932198456680116748478761322631257508635817673694899550677387969587406170604290155415945982077804462456266732029805518983283475919231818526751170319352733121313032723760505255590460127968066066599281845794288029927406018866968174268573401850932385535115779659440004579713684358811402044803318849906927740466692408298822770626796023356117674632572631086329313732746530907336601736049819287404509099354989074771673306871273817413930585082569142128058495041372854671232757514175398058296973951101463219722874661289463435611236449901308533463353020335540575895964383794996772691808553509972387684869669539488022091019247642806264852657622327430108399334763977939620317901462034198218684827193889306710890620453106421898256596384841095591261853338241131073268955048212412578706662237857024373911420602845804480718201421701557403266654627030314346426343460441363085433697258921228315258671780751535095254150976735919901026311533169119984500303317338813568625345254240924854777507306491936598867650155906361165201272155342862563321874676057742151260949940961159640770491401728667141464123794524195619429586651868959984289661596450698627599413436268866593348148636388335098418723819998734936803803552418554988868876511980041505348895522476434796612588211374261118655518330815349242823450578622373800095466312299357078468432963847106215075810353295067206977163580330646805395831968187738251937776054205746547184007893271602291033421473966048990280381755546472119504121471120058076127208004305954092483208444913376087108386774282420573555273920248906072470229028192237355309939004010894483327982554322158924489082408760965417623951713240621013974638324346090179158913177333570962767678181999331458090532867400493032081601995366623768705145096016450250588329582723300787091615976679734459378437709120586524349527398310505210489889348818759413613490430692703966888780143607837518254415135878075946583889666691479992072817411216084376987403073647554910683670151547768220814656575711162029517980170979972179413675760967326298724382799268156310378635021166336802829088880699759045297812675631023539011294227704905416648750013410694899583050446644737885531401638165798832999675430117979211169424225876971811530122206651446728144296286893197525659615386195496451056612147161678471894750612219981054412102697132620576651366111084206965000996476547476606070778005565939595298225042781182946384379344031286088007177562788569531424689466700152575152958859527344110691887642498278122166746289077827836920892053582511188167028432487146005447957216193046661071584149554293228139246935698765789416525098912706996734818117925410640685651595907428189083388189230130705434173323729483146440912563705293120682060903557091339472570905007427868850775362882795224883601581315089999360596839758950186015398431780093342411154450390403931825462752253198056180383840243835802886459140654495521428392251135024389352390153787108021513934166115326728281533001609989481253185529601889212775352121744636970502640594351539039532318404641299181198290629529957235646269290207127402640793537772287059501523926876228295784648591191876534234723850028293559348590598790894775713412096489503304007494753080267382337270768421368358576184569165632819584120507692687736104823751646574046788328361026422267954482929959172008414810146769818097201716110103061221033304765253391708580294169242197037951520520750867155334939833795193200332224810206292611681063536190691300015016333550042548837130179349729780322635757092497585437197118918414895209288179580902763441360350333398901984759481825925323368427397753817389606570699492354175794368971208310999423148316870014906190702991419358813740709024641659234432992455108475145400822411441115449783256993706890712988033032247915644050576349878274739692484473378020798560776684083128995075554124040132251919912324986663578739687699432038738808196131696852188774733771589065115291086310225813038826071066377030270134746136276096480632174798633758791854069510378978346389854209100273575438333062493996735225591156202438178229322407847491700757418166066817687127756440657618531038471108155887704836132988511558246882209113586164051072962063888020620091566296132211269262168336208265618697129681049171471161367868225904778609369399418492658131983130074374120404972106312533800048535260330430131911479177285316512362367404521305354571292291675117337223736342296258881366359820298289758216577809468582693319175308994653954193638876324074007242330277879956988601472808201397199210177822212616872856742377971110813879520999713546483701387508505723326425754729923324075532785339891936221067650712163203118369889716651469698823338288792325238207763485622060602797757096996289658375932042216837471996880845122877786634042805272561606382916967260796203799581866425865302123512981787412521931056009448498579594425639845206573384665632392408074711029813482562014557266592534090717377965461635345408350108521078973793370316017821816220236463174758918015335006860763854756753458354992913256767224557291772002589180514144792881604795606776957997075073018392229392995162823983115603633149968650569890205197563230626556729193586408342843043989522660928774716445517863415708776696366635252165396997548114565528083033515507012966980186367840758006015592488488434542313323463085471321389663354132800087959854773834545454407125044038431579489936194772765440574264700559152680186447414184280780093072801445781878033259384842122959769054647117038853790194381949589074622908632501852853436400171439331844672898554140385254698310567347013831062099527703042856751797368287170884469361634433671233281804570383639261123066951030278314611302652812416890806843789626845971747630163055358741434816653516338086243531461846264010392621709261909048427199297227982205848960882912348253268273409665722110480057836129731996626150069761338796637072744430689812352038889292134386603679163088002384098181955541395186093933522050497174972147983330047101192843597296094394679693825059797564524141311091955201761763411514028837193172487502313691063509149200597012847272423635308005767729508366995275451888653217628184185065891452046736196857423010618638454600856251008469624255109761974875260016964733582894828681122124348386876841580899314932700209986084789606445924847526493836669079309551558525333427460542942350795701901317447081397363542113941970965571035593996487923532215479845559952387948899250144501571914438768883678636125744138019893497879335730109932647644714584358748308227926077709934363767992588835826026932839401828293990677644593920505726473615640990507144912562250353970303826721135910668143046135295599075884474784435427414086670179451239798033928077286548425123530478097795991499646109340639415019926464383980761416143483682034120068391381756340109377677123222299401951621460442269618557723224330579580239312560765108483561765776980407523760386298391445199223837015834866794178832439036230896642462576188752531265935636138214770486090358579955019672463334767122909444335219299523249736194708498790211570953782432503725859081366682173125857110711325138951570770629890517691757843861158019933039909228394354518908536114007934168429803963707388128430605172934634966069808841293032727610208021029131060390863694296215570567249189624802148534247000331121683636057827313300109629301739195881257181249871491035238692115347474940310339020579342457023418114564047270942287749413720001697065654850567981244622269512449585452409249031325229585221543227389795160993725642284669715506931148129085895471553623513493515938475469005076244122051243824958617343694945053803295578727233069501390780352278706247234460251997432499503544387477133741325266798599764818407606715173789969640709186291421884190423851326734356116034912513752367296151489356002196027751256898630146156390606881523618191393819048318653682917772684039027149373013816048023328938868562774007493069219048992170151076371568204629084522088817574391801877918819366042409616362222017559891486935690842422626895238985821917912101752644737792001141554580047278096613077351255578562426370698857161952793077365431438825069014491979006553651202473171274979959869761425987380832533544600958609874528312508303077403547535974743345091300316906669734232744032286857672249029585504700638212402437330476405079139111034967401329104289056960281646852736744882265438556627350826612625909717570488182803289938064599469186774377139193306783038280503325181682603669016892641995839079463236557105478367044181299383621121830036495980713319191658350619580071272389762896093233624508361388174856448479422917092466650111174373083602360177601571682528049682518780977881852127738205440300812827465319050154885341552580490794550101901695707529397607413470062134902061785923006197827862509033258083535909083646736980620236837397318539607859696380746375976138976527678678999932328003704543665680835718341391153574142740324961074042094110105689226075712931039340221745922794098884669821374837734207297341731191333519046681815130342017449691919732474497582917282373896707852216774760735422971280565540321555304773492820479143257682914104715050702571192358581058198074044667369637535868185398866973333741025179771438985422854527012381563199050635962289621803220242306486149737621426890425145469105755801608918806110210603779162453271380074222590750329859168918662575211179689414834277905598533832037959891837672369512470629574972374688680293783047443344786715674015627051372047272854685111434537290359969755682479543739130003850027531960362077175968612178208168659268226442123125221898400759320088625170770033184197946645529131779481745981807075585468938703274083988347756381900154970424036311054382576446554118484976250772410073706561737208776231786150509939185849489063690285885610903674733270014133490504693849446151213954188909783163985808455496245393083515715693601773774399294340040746032905294247425964629394156703256209388789981065086898941829964311269432209309537440389726515801030135773923687127441109265229112225440635452585066146435219059891708555825419637778906471987382136152509455775072786727377685456481930243498860685387501328717508584650260741047589482142672928903726040683080919375036224513983715775921589784462222641143244374680283719992639460482441923269728710166817845461399127224641187184038285536917393793957101442866176442194151468461626476035391472405768501645223004363816630295871930960683653910446041179390298404841269913967225995426580789019055383428917347109701037815627672691393202106336227983719122061104485108882745027440129920234838920517058257079416722112763284646476846152391061596490426832816514076506305304097356314949566913092524426988793316269354351754511419238324373934217643592129487938152390568337231732845707873210523684941823920762332766295690694320356495924246913388327802584271846497570075611988515591857546789236455858382282442395014096569366525459597729768451693992607792975242172156465875882060490285685929054329508285455031722102991988123088815307642785299680527214611876362539950659312933028349882221899265721197907326499184683501538335004721363691954769579544557424202183281006337865308131779998361577623665848759147698787949148789765717081146446866098430993654798381782032054980321018570956740834140446043876410758230205111806160197374595125938006371784220560657735821661757683587974744777732361375496213974119750528771243545068436791000189319020077381755903406263256967640358566085607803841845268053915305279576204081279463860545157361485107929476310376680773452327141071190788640583246098125587638846853616229878271722393658780490113028703314548303800050308694403727076964151902492249375415519291429652828667922254772885187598447596628641161376377450816330120187809577022281229525395688585821522473243605015930694458181562478579861771040211121640079203158555380296371478214861288931296304930837806348296110478570919898217053390787913520047654505749395102196843452748444049037261447287555330450488557431465564806769484782687871677613481552516317771107964254809352140139309894103029202623719355028768277835889411207746848013222979344539647547610421223407799346909575778513020157322121956682230579443588083340577740791454711897047788064211779658013023704489413140059637785036347830609054932733649666115045476474289054191359049129808189450512614587778384529941153735488132642100617976905116203603954929711768518270725253386701468017096150141740485196010442643411896784690622943860034226481433618514505256771848788688411536095589565348511836361152453756086409224983473057612591984467367557529952925364513754718796794430247510766642120858108883810554058479257222777982697626042703860619548010513202625097011626607292870825447888609729771112014690658792928869928622113676596243473438298743208346961310274778115157010311052390326646891054635384323012630708521046848998519770472940431351137814220863606006962033935221394551889832560768603569496379878902899534988689790344784373577834105828192612828854766030428048540684488652071151125719841462237596179802899138031048385726136676418429153086137259755604845266045378921287287077276607509159640467292694329089620504513113782538357849881881286114551478922351593923168133946705543392602120841560213843429233308689125941686078764158125894150547222038120107007746820716592175085428405272185969864370893198845052838254809439901940115088238322908786110089894657498441478503327707382847430267045984541632080683751000744853647859616289638713550946597110120201897292716576167959725041567828037432333512383943291207052908039121925742258961671339520787377484614480596550792665651605464215514347897061759507708692363308152992410955085735697027680655102204195728580010789933812755176656784821237624292641262672937045801567032328293858360453232104815317082044018697983768605502605396847257419167920325815660572175626197371403824913666286709795302628884297278076916356554725887190829580445393483219652147706857478600846843377321584578765245379216568083212316343279212621190211979967149265799211877743155162065873658031132213343183964967150621725403940666242209437627630575604174959164286599683536687899831921098218533858932369955727422858914814953454551944454332705549784448369755652886872310620401098992967966388327215303263390192723421547898407890038670212901908032503287358225252490558582790206435664207035156164975057752557665362871028346001311585200947006214664259281541718616048556832967744951280510765766667843425821856727561717577315257977739301860358276533905844619658190349858726516013759352217583254594444142304423622423036306085077352939771858937003835142034921231749874347863811839329543373991617619219186712586109596985559831382318419703853873218412443621547345484367514513483335851545440661535068959052656345948868990725559278513245711519361754668015885060731727402831479717318829467136233713523162537535766191761188747380998180614938879278971761453228553217556266965862077853625472633155876212947241686305661765353380333524349351335960603137695476315382715248426479184040670455475777816307653325081070024244016559982895912651371754517213552866525611852111512142027112137236633794409127711268473060072510548077622996825515574265812096542859123863491896761478345555230329491610778841689964477543964507180022618181536602739700542035197894004904346608729104731206001819047558964035165622772356519621527820809370200368092809504618558204583841294918788531269058313397839667885312205596979192540611300228933411065320135056001871629188294027945918277517670036245619532809142372809965677777106412232205190275033164038643529668121599022154981066270400894057532007169908321093270740226380889624728800983804536110499989818909756587678424132091026220363797019713848930777241492246049598987975949701071410591044565420785259130755958989775392232038494794906950179735991202362761187057943769604276373154394444392179329640607806210371615846921423007213047995140621059315874521504787468109600777997582720237498423388868182332503745299556832702224729637980655412999002531026633288959979414445369645905555434431086413857906788422246278991536535970810417753761579374095142017647913339732020878350709056033553084334987826892825131204646551417903920159303721151967464407262882767234158194297610695654903146552572232222943346833323183267963329060776452500212722572020597176267682143038926538539825027473072192063636024665467290252313616479689270540367988378495225231727374925836850092141506238063678704056088198652070990733224163110386622403590341632484491401979604862392211755012059156776989559438503980183461696928083529133282099747301465664329989579108054343156526315953025198973168870650289328634108508408408584598334784177836091657537961665970536719779240391074604242551952943187912925532354811372031889133486151836242646303319829359375440589108263850448966047548304848307488336166055371596283937681475858710267997477139276179146291495411468715179434342291826164320153164802271735900470970144640270030940757360748479215312187782741014142586946449451798526414072832639755414234439198729059213510747345592522415693084436783909219475511583203997717886212462082329522141277890440581382878814274051062713799172534369152435832161041881736678449165942387226405535066634513604140668648723534534052275355022867287896014952954625618311164430272974886845181047113727202744365102388944892923015956561658080032216980017631108313453312532777158912993369968168940382481851988254750383021235028661007423633088752600268314557530446057873339685305754215601596041331837262805778420525111180328465303114170993422097935910592686459492078784085456988299255967411766782188916804159148145889205100662362257185361199295756522462696933539132544334832593860589120830735402307165961789471068479348566259726485814924163368951998455780683483160638699594943312582275986120149938436920160352533837428275432164068545808765385708886705739538824988779072862613236970044563471430563514738024260529591619250326198157529052016444377888334194627529476489464885521797700604531843775314905638992587109854300312951746888450506368735011646124843287455685484319589820163523879017918640278183171050818460086768161441699668901560197200423072645383446746580973886862155183747049556628896699684692929874469779146727061009529366128041774094078930433967975422134703215628870717265133051381853733110905395730640195931793917361677785823071028614255258283998231883177411022393768197646023157207955791404965799544982080945106082769347970376105767398086295516861120498726657003895810029862526520270824764851676024540755578929094357519437847274910504933887863133906715637334946177832877635113285854030574848030184162279018815499558048492760758363116259252667405528610534888444984744973460170782635774120994358372241776249215757832335926178680117161693504550563138490233362355050459618159409647231698832405183775450347814382790440673333938257224539041751175092424819256802397320364256126516466044351467517497421513442425232197309124851293514135990819484216613974892645833646578894612965698598291112787864413205097031451027733838566407369709149298929176870689574100340903480996029436898060044061788881392696091472903690049789139233218811351862749817359238538864764881326692742931088867853214798679954709227296917214336838292025864913798883356917271454426530187631033325392666419555003532235133892517340249915790089472585154666488444265410287731811818270113157152097169471351831269939936620035392864883915537191532574224778582145849573460397449211476962112137217986780621510252620540708862076625961967959148969389562681464842932184115294776889431830627469334266627043848665487697428265812519519870249783831592686220875836879914159746031428571724320623788105698805395037288255897704042291324760726626869739866915903800583876574010153099609794915941170211194353108989447969616346454314664470457785189662572475885719603911840624418507208328321153789114778481170469840692242788747417356389892683783311789591807217842609245128084463867558334323352073036701136200311468020796132147255236253988306090025360632709292098589988520613707779966688191356004113029576133636716554576834779200681295358537648547604016309947262058034263495479498444070810721050140252987897804728733640312265538982996122070302842090357475710429361115393920587342024166227566786717363503921770652053958282721118104816004146232888187206106920866886280253010276362536198779666943823309877627015478136696724425583714464878007443048931196660320499055426004086522907057465398595902911358942380642196069904047649135287234464094627611901117721800355255949837320310574654150272921274145344815464522812868426879577179597391633941787403408051275085698349511628519963680429716565791374182287686709610499954038960213535159468625389045225723147253013469745844592800546607766191235656656284749620598057762466227190438125164610719247197452816815758382326717236178620922531860027988019549225876181674389067654858598922542142447526181395920107966719324457781129251885954145715933696200396031003106923099716660657294297316979088422966599089709789096101916563039452698685682441964259910454036061163507627580186032879178449103239320600916938091212027215872305153781441674526905389432003885145551637625039987400447559603070318143720373758031748143473237967442831198024618415466995215107385450969062018134372368989832862312514028838247018523029733825986654248297572204634773286660080041728288655521635783352997119290610588740407701408648416347828388728485736234729384109730873327979485127879160787796168043867428323039290223910063837555352388870776322240630386038789646470447410570772158798313432556285555511475628082756415793257862412920063499325678668757352029072782468206683714916713349972737427221533724496220739276033783607379420040533407799543797271896963377518942514759001544783786837307562465143316019457270630597943174059028235000515974774477287578629388128006737389308728197351911007296718850549268139733940706078681910463627005063110485076505791542575318452096784982115431597980948799731216712024867232478986867152343043586158929892452269129810188484824197883802191744342850105772961513236583509959021075051968632020134547090937271980154291072189637862593442747911262100554128861205643608096393033907479869036399262065171998396561783972562604383737693392568144615284327987373078822496232938202362438266494434183482952015902254170252882008740517733022952851683966805970756461816842041889892490336603117842190786347876686977890858208236806703383896017504714028911172276904738460779407556987923156694930119249169117563743044476473890489308543129796309850435670978712883479682783744702913037189850840342534855411027946105512808477278103471912426992752774130412576533952565840374025127232923648947579632410289217321255392905427273106496144422908054960539175358348823244895907651627884792073283482897831416034975963369055856118880786522161546773947788555223099440554580025927609212515526632526658108876440608117245132054401981054199900345508823228933566857801775254120982858563287816491542736706443155803778302353772910229737688128154037715639318832833303208998614514369646448331987965525120121087440172517261447126074216645067306914561043894472304972662282662292665442531662751885400594313696562863584841872526971563709021014089091858916040222897457487199800059336614769851099048920810232201177604687004738157411769332645544672427896625582798258696327120552499827954454419821991075480510928204035287381717453964410087394569285839294059975178750928741334658585916132355388118383877619328995700654751879469781097094047550783135108766651612175047362396144028483933326004148183935062341959805319814463768515195073052130345488698303785697254739111616700953028301826801692179143424050784413899565587988337014012777911828196683055429283291925081943964655637786553011300482884916162688870099598955092152844427713390202322560102015202617867009176678187266416477117873421330143331915473577440704982566009976049518168389324065729077666977141653955655002293972278942672559454327473899955018071417833320649283001863617037682595402953680013118889187204432782092128781392042759317365933366862259889458682441588513104279512681975452096524432652106523363588368324783388146879440353533452988654586130941944622247314524614910512335218643671422755117429985207329083595868548679097920578524044244184382410214193800894744891921510609018303321431666125711108092422600783462270843549996776763144860858585626042986677792773702769261413548999118151284236688305988607043228226599381256332251413226986174302248781665822910115573151778529362924486404262407420214359369276948526615936849473713664837286363290216335256788413687309428637370590124096668990386023765786174250901065081702991513373111994541542122161226662309855758693257432215800409309302830659865082163353527943548706469949512995040592194184551534865242106321228946460316688334428500131315102188097472226940632867558341016484639466177099284022868686850464779875169171704193668417609557393373140206280514220247013870441829903869520781174596353964546002052819057359328566150144406967783990341016441857427062396167533326165461305728115481187589972439929780418478664119508481080198763975705053493486616618429398306034657039924774899469978928997799644393840651775018468638005349084820977755505040837316378638615852347490256949907983133371033667330752494762488359052900430559052318293842169048131644742376595177537600223888543894464459817549550867169394003643559544501618440235973538568977587178958383310083666647321179377348297700456773216556292774273753861256949035050384143213849963552977932830832482670287692453152460219403022222865892919589697484556650926603129917174700406664665012525865529234743665871203383441000194142230269562836464759905838261121581945905284474600229522412440518017687927869337320973063525998563216183346839161140868970861156372550457858973608000027051403855109917925543304438973750946714413597931346588221342332487491187444049537531050017494680915406254447197247881190297189379764318733365191002266736233838504163704895536793936472656148780178356202943384188029672890923026006892930375759806452624983133071410278767782473974124302530419067684036848110363821867699278300045945827901577363879012634976370932317665331307472482855042988393863356214604323919469294866162683975261741417025324945990081391278231004654667571847698561861031675536725609970579988386261871387563557934617653697577422448871009821482015339235732042542893056394622989825200102609268677310149092613035460017496308167477577204783931950315161936161262279334793503486809786752297108025008651482865476656601553632604493803672420518762444214224623752065521377411244226403054436085265513982785067125982155036348373924904485255010825408169639829466792582517523150217921644065198750588928479794745353028761524300404406485864158572249733347044221049452350913986428605012138683067812027320397118536883831583120523196403430289879984293781129468262039810525779810744242272723492855664114305933392767775080872897324388281060101881476106119967895361784301156835600361226032146843228634567656195724556237658463106067508106816038375801251542524938157212443840163991727468360995007767029824067945561283930428564100275306397378229841314506572145626543815538848326235210832954672993622588743697452948400540960449686778061474873361074624714795763072359550989046963831552610500144088548093209979192141460516912355478785977997385140929725774727243765077994101695291690246315387242898795292077240994501595140005757069793394459383809399886723606123997324060031681215151529239959236911386536909932441848377580160188608169105997847858801361956214276989558410801820282612223521577760397596315157835674275272055892244614634812131714932966490329013131224196881041690749717377803058401543572140212987149480095554609897659476267598852411844556987370116607186792959093101507829733031705793263508246739750457914036922503786555065182193384160085954411280872433131810320082288088189615597773723578956218308728710877244394826783968722481429239172648596157440646293590423268653665061570289832414378056359463537001097706959992556238890225253041174126601490903002150114681981578856577584224598097540582192954365449217487454118915964824994739763728642120668545882249395728560583102080543433803460527550876628027981353548274971743178674412469456054127163140074786847059759736590791830102226856226356768626573374993223771783365488826860378749202624415839529132544316591268889868429009185633883471554700969332161204095836620127366788063856703013302858767963840113043310320273886606122639828525116552996433885753132954980484435478847130244382979831770995002626670043230760384899307825642611700092925648583649915003068841645118063227024220192440055358119754923078077134614534765186531937403755995206973988209703457139440507418352687840351779484472836716119341032762025385498396683630677028064883660167011620091489434468291533052774336709291496441882004451174660413398879875442313110304550103672348414295463498794562565149231269457105227001350833283620438565754308147687547597105128217728959417208393705554419275366167858041635559291925973346457296171003670583524025391118731881539947374132129854038371447107841814268520476113213704923370863379888279753196346012097728211408586607353767002837099105888967004470773093764033631321109574962909215012596538102900784290922207554008241008349924372541012578079358741798724961057981247239709401431580087823765797587249864362424951096182163888157916930868905460632198145327607043658627103101392962348808118755885977513957366120214887666348021435169893226673095330303390507942329428942333696421230440858961270340901893088827839089547149424266360735384890354915077452744839188478598873511333091674562908061080887145211939827869921464518868741323897543337942804477051695485700995587027504524933535593583338998831053692595608346744981877280570303462406366200551173719230625162691975797781957084796687095018582977665911324834441663175182869025710337079275209772397709090087729625185414056461053933608129060502387041530778382039074395277285000513891828990635174858211588248076403348194496889469599130149765076328814818975964041631951043503692598473265230210760692836945956108771335698621642338707885436875992451571852983153107330409264407523077092214926962317973813456342775511328840768427954319355619241224648569029094495150542741704313595528000725033106013223857694666355478814541667424585344459916773410937962209389111547847350967257553459003459434570133451552429170580919397367337547805884292108426199136399253376134126870389462050739131056579658177929584645884414850283010778243990135969474802379010007507951059646980382785673047125885492415323776402441242189626656055645220292959087273876413972061587016034634320019513370214887827336016979910280813643111940168954508090569329831746966897340333683636968643475703527098423671397629521194921033198118404777242323693805537707029101188959340775690690250596036695077945614340518517920365034648823113092511255250858278716627226761879210569994929426591785878367995803795297541527578856565056924494466118680894793358099314197661202637539333997221103869029858970260016147056708803373453120912965778110082559889671430028407368680558419372356149929550514535225885846165340332841032490755241343636407633011404358273150324985319282115486311988375801732473873617103983428730045029678572316322521840097104863464392845988670106143923585648703207817769763240198206715914856496859480208604742124863366871413664992727238874391808360373111794805124827718093813766031601752930059387756841378303236032787677646759723759920422270516532259636391133222925900267077268873905160748337554362975733341203641010348997644374579999739331108874911906919953040201704233540702709956525647569390890598262947297973615395601376583677923005119987461163258088961410974180384843841832842952337834470624907982169412104843291345447208934233680077640360602670576051651130343974774338060655929786419462812535127617917097778871756332556098179377996571346099203567349323029281652460082647992218735011110803867254064982382925832492455088953578737651246145866022025743624806264687134050464219287812117936700546035151675910369787454987558522578303789214168091692440702873196427700106613644308752169015264013478266311737251601979103467455599523947447989351202385140176704201712112232490501562259934953420391189019002976819407944022916899924079473480447903674079176159009192108295669635979595982023614648887368909676083887562879095709205036565280875243895613373185669390515871528339867660151752737378852189776752922693734996984608520365449833822464575413853541532135812031267689827253352593078208177879359485386192403515861432263783040964124088271213148466141770009744904436010802397344078024595474443015393905403337182411846486745736313579317306095131803747945811012412271601371924744703997271773916424513673409660864708862716806549317766527592475150019861828315522376151801286175250668490037101463488572011093708233743454761192288611346962970699115983725355585623727811390586948729944840803290609722715882622815326166927107070620655783691382260513831231053064335649756499910338972437092124983484288500167284742985389479867978873218471660846400453424046885753998927463305006093077336158450035768036817546993904923888494607781233076984064379268989358438370956458949223216920655662577610461477990352404620860606481472962916154097946327213734536662503533999402294946587549011134715343720797397718772871214632617183781370460390840378664446095902725812806818059160077960001475522592706236369534944914728685207428822438145337176683337357274932974775677355922025615005432340012604143775336217805998609397921435053870068996892366461446415379042546877188008932885074024258852011687322488211037019309631268311407039851818177507191151531710748775793416013042761419179829928460827697844574063876890251512150195518588063972073100325268445887673797912371067501854249918136289864402363071679656311706850197337585568917812086527185136641910658417671574532063417312253585021270479294132688990114644553686052146022349931573464577835520161160524903699441542881896333232688976046352620008039402889091766393496382708425950397761667470880555883624778929833086215555664092341782671092742583876977316712566426133071417781996109190833116491458675688700872741925884211927320304756509081754860934909187438822089933998493971601312744319914776494361561682954882000956604296969102522770839580486474352691965239719591176853618870319374400714280944503133983432218018634586759959533743300466060039508580035432755833676111400890758087063924270328074292169534468078633589833887400874989728744467719499452006235550302440855166998636167202912483866898497282073391924693022821547514497427137713444877104257002453007374980863169717481757194730306174867915813017865182565536577073816416607544712090494152998268598523161239894984235919979275690565223832865054818385216459277227235385400290675322696766780226720058061095853076806774478506121741308150304856155127364559959129914894864299013002020289778860868440855583107003549155511926149268813925926428036357298191180175781106711470448735032098776325022348775852964064888508741051373032470346463180009278004317720938827290068326679774970614204597613546665974983414776610076373418730810137010294068714721523740539951414298424054313786029679518748321055412488330815364466554552023056765481607017756859530234079898912016866011415106024008013397411243556479017055594053697231260183075423337131750346104175551478242167642097068332580255948696757387251057425278111856326665616466220650542894733565290097216749596903532684206334765754714574661296261755599474118127074712497179905688784220977121498346222268422589157279102605774934464361089022079600874817590118709411214280445473935525386673476483296379920014143459666748651512689457690705974715715151604437192633575723620449938398727528208797866850840067761609561971098312441300737170391278210388231920407652689598241627897986705765434053727161026583222535474440244686932518640273535944371224676463737878734023992262897746425025338478297021040145402766599184722193698033519152408671295342590184022153163443266035446062612644011604857726735699419095128918680658977014313589731727139720272183673576559365174641295791145521411246334279802341498324099849718448977729892794855644133538540047992267703047076845831265246734474576421512606891414381214899162346314164177838428757442572176335284080493815649507878687148415004517576829529123558924194568405739818163061025451851344418080762244951921906704455593314828987020538253768579035375152780503409950101917737315018677881236173398958275368140331083643474323417277898972934441757165557854365273967055782476250331127379564693415055991560769137252089419287554120937187761447142485467826298817703322293822482190918745326804365615132840080771022967840276054302454150830648932219904430564489709815071235440680019604469877890815659252676935087767965539439698205656248475689249809608572276648149821299636576046530718598254809761593171034354564555298349520999828330978707818155622972450926079791665512477337044260562475180068115816692626754727798212757112849011285673652786650996461834750779333365564042488543253910982020906593694377591576900001589673521007114445261769813353185507454175202773763775871792142396164638693670087863981355114467042166381211639317922557382295006889735933032116718002111275918087896342646619359453446423190466962996893495271795373886731265487791307387604595840758344773229027170420641592291172353219888050193425489459120856306508946576004837176693482647768972637639267066060306069031011193402726553051651729007084927797951629756365765111229839479475538728584574748453036680588851660005601642440330782008152958583682421980952548377461645236439398343051226225728658371445844927931252766784266493146293938073889353516293300592196573259960758190727023024478960477623926157010811141692848692465328663528373506702281642532054828377719327688117465382687708384387461715740492738452442508292030803321743671791054960863185668371211970221116051399583264929777189057063181785326113129380141935044125548501416354309857993453372470616825253435553189356651206386518593864310223371274183564671323649823539827206173454742922849500874328113841240617138953172689187668161248803565163467766433130854842351501623349781957250179094289468444204540853693887308845499039563366110371287749125690808094843557956176072709228036539712797745822690866990493548879854238157711011961749855447875474761096854137601390652677438526588501323043449890543969808506335864102934067165552264872761145907450973379061146568156180645283691726010796492689910091366461902600861206118952244262487836337621515514282275571188106426337800856752584493135555895778152949051259276693638008134967601498744187448924726120134547515207828795277541807642126271770109459010567448436647549208692370972422227728339185050135700967868332727816887745929761848407458976879078763148049752350541178830060663059772660179362240356347639123263965418647150818194653893890832394670905680488462994917218767734765397140569299976708619247880884201981996874461429219686604122607641311215782670760463371777523675216928260315208576512672789801629974439048259575500666530514284301212844173617714078821307955603356644438653867692141794968365361951286098235950959942495769817723194325280531053368763136866139864523943227257314792336458008638492590447382734121743810354664620350794273585291316042567578668205974757347473339221134536286957360443562905561317136828579251553796270278341906791558208491504069754660233951611169516972423895963005759915561359186474941839041667970684221399012323869486398656283389274836170850605943757698467277218039630845804012586546133820149276608535775462777100386381585945058904523595229077679930307364526319184144954543237258097655901558246159120345298592681575164123469204764825158277618262722325482452938300298913914557416081732060796534376131826606293443616776034577451431270069258944350360970393486899427047563514128942254787719664059254479321788795628490867494544675573615094663001572166143383614417693211898182718727207743455332116519808663835396102638421634871617797093171861758755051632296376789944346004112169550134360034513571150747831916761260139867057842163158347851992077783934521300485365503740640230614034674374370243905936367742540524396723820210897968871529013686942825689304614766960880878770341246622765437563857788259131829634748305977014727213093662296455602522262751817890271458550544574906731368284491061711899946583023676627038194771796946532094863153741317245683124489516745064921230017343579450264497760833093689425741475965374795080734183443079969017217676468237684429971138389676149308677331564474759711346164197258434016175550358898032536510730700863263496050402986238897785577008490818775459018334671032622313735354581473334990983341483633150777797040260280381231403837624917472591083940621742065680672106722527723834985824662143212495248363798953261253968491514909911029742777251420444550848435224751674308107989606182798142146491230109981624028061902684378947599511522785600936774850597659677826609038228430014056875947286799373020544417368163248354151475799590891047483168643933773287681830693870840600655133737689951324307183142962320941835001135976328353753569800340626697149670718255727314940156482962226897127088087427929537848514335289924962263376635232448732594359121566147027987777686696754015274423715121275926015569826460075895222996234538603045862949701831933215173251435164742950497374486813429249663975514200337843722083337566487177140608094260949087531455903432998498074555549005199495075855700988988181958561586168273030597912657292658451193617784198776576411880744187493382295537484916685083224677576801749228177029528342302442089231738737085418440008438911095028542611892891150717322750747485633095284787605479579939698940503097135018165201254023192559670795269947779639666748787890610802414204153516012377744814400435670666826547533125011975666101124331671652614601880200090017564757297129357407632954018724080820750197678076549779258951862580753954138425944002636454895899706544575290050807357138752290507808056416704885404947201309692730996283487437366351372280534548757630881252081865964674368311881500617447679673706292645201948244074801039451220613292802804686258376880581253330413245618294446899548716922547435083909014366801104148976085313743521351663029527794837222927490962343464497257121855711915721129555821933924870077615217963390439442126728374185214149288605946408335736594455135523184322329096658750306731592653976085582816342253456136529810746160388137720620623853084101087923823047640876604391203652634069235850504399438763143123512444708147703224176623675100874799588648178616909243102521902044316730148130613979556491168686171310260671962323743699164791131187933024432043890151968886602704403690233945649060030586743847118140129468508137295200602094703659276892598692848547905600192101728838098137799198217293813704183245889041141512364818938794914422512876117901678608146003105428716476546970685075140368750787860369231487691681032287630064125654579640959411982496008948162161081604348330213953292574410053998179424274186435870339842058812220499724630825271686070494004637649086542054136959854569374094630065528995262277333167582425578023184980796982199364081068377922688474333053375670498164742179417229202285509785607247271639254304197985293626028924697556507123433138925755987711081150424974937265572950282765527464284158269248093095922571171939736244389168946240420617250152155044388386963429527194759284893106200337578168169835738377248958704552508051926927725091169226491890386153682229217228843213869822602663471213108521398031183741762402832950023600247003705559014021075736861606963364430302665824105785542103564544003123336575525910942834022871742429078142613227629781338578115562132633015298236679804911195197143273761408985508816751467100828599827742871456676060265427329245977280341361233369148624063506338579398974054221556053864501117872561107242575081761062438850793349270413086311108208021259825022342372113620807296887169426110340084005303480057283965431276783032232292919294147754624201115581789982874743877518867066946033189659649537263272821727627169342709147810381412128918123637161783275068464644092324470064977109664374101795373968860943122471808980412224255032229340244015893618661109285155786849616071384534532483796329850559359678998730882046289963413315688999922725026913993213654883743556811419992385036802346507086858713014810927783780985349294473967544133272925123334749863318903236415499061653688582543101267685934077488916275935407991244262904910461113279779010338407014559238786458216448081011755666392829242559169350659322586235181873449231319249917316349057412689558215028661665417576028739396133173169317496424070678029017496332092491065218947906275991514168283371177232205050080588839586766135877069150691941236248425497374801882005766733234882096816425819442628427489478197450920866122964771382140257778965402440469659898779982561478708811650673854460258626535424600972975392726860850482135845338004862725866228961116356507271656213335264201801288397602632685259719509445779741855006975349590548308939022893796814491190840702298261977219364902394480957910543679859102611230682333589445409419944422643151447796708970802896628114306648957953646269865236598987155362784185068139503526325590041831827842324050325006419562383228679090608760166556036976426101624910164229815649889826881686026256055419248827069867413307698208323996079795191010226847912537055019649273246126180135633205247004551805097454299586888969957132466183562007086316230894655497036497616818811990245034902937832006011345593118712475649609468173983728495811973172059847545741599855660987530803715654825685480496365145630199287879401217561997061170501992058212353803023592474343305643708259535420346608620684235698403639652465885900928365241034275494324380214808282063646094041420583282077533535758193502933324456209154851993591474067712023481859262549494656815830863700163138502954188468670917251495005962812760327536422473674186683868498930522456995614081784488621234410224015782833578930492716518892645027850486930627901555369862788258681778409180753272679882940864424792528400387345459416006029931032486814254911087845970356776149885605037224709616347900095918223484017563269008890606428453535447936667395766656377611288286157400808107137022193553323285111726854148276015516329065553856768893677720285846243070565232663690609555701584899418689229046853032477111413895871180798581046560984394650982236270012441065244242591063649646609697388133808395420427806905955723945826310728640717254751354511779395656539167393016789611837594952866822528032248855332267176803627222909013144811458926646506467399902554041980819955494313357420331935975661613919495787011833198934129868871487204653442618303753615171398118094244820385497644520481944795349694826333002795354136695955446443610761696778261587385066975613357333271711515531481052282870723756947076672693351316716137653264101159611901974204131722804127873039511516773361656005107832816386851085438659044776375612443056277887725308346447123691057121548577432390193920994534113213521187210001676081761594631871220686956255256463514578146094723076102002057573565797493988277849020882328923437790540735510454602394653027703843367213983506536466377756927009160491653351043507522761482177661622291798108552486243147988173948717628204759850985258911220765143519509600641842607072796341353690178360507639359788529714607697540935905479472264327522741070753586405836655428362387639676535306558472102067603649707565204999125491597537691545305874005046894451463149887382400123347409768367918345654160457637043961757483491928151136998261461703229280245291963561973213039432961792606850688882297773414408821389517015967838791833340649254456437196445086895757319895547737030612568341829858714458350354715589472721976471609167471717940821757115944926045476832414415125417952206551965378852198253009246321812640139696527509732761870533401148144498382512629043862019852037153358410023990721031170908078402950128681442718740767283277049091167000593153987973475879140353044656030293383357298886591051518338932993307761614828716259653485773543242421170893718660763838417813302477965286586063952609005928069998477424482361817984734462202560024249427371857673412145813901537189126805073350185714599161181416446577169476138245868529910774313573825374222294390875567059194131380481751331209797246851779604235462436980547100798367590976699292529533385192693715743475517855686295092446329636508180183365022093966764964008794300273637484422636593472188203404969056466268140833977988358088489523620692598096113634922426688945938364450596229665383480404456901288165900004812613277734598756462298465911871564762948358386630919314804040147066760747418291292648375220544391295034952576564941873028697209791854143464169239308460282161680054325284767455980714660725805540882833250261883210472770117885124651127590204712811655575076570498253609699726494635881698589776297078614142379392673695758289414595735480096286535633118054392882680037001286042089572671885217906243820810439054326697527146070770994458799304690579742670616855567283308848322102235108292641474645217518523187627499755640692269494160848934499815580918707868290232337741171305850295460924879415344193212858980681391946687258019711037964997889556091405918027438598750784461970678799162205204068767371821377448785666936988935377850408906691684407022393491294782942660849701896938062072259064688905171853865564775720698098469204398669082902815727140152746882850410373059958223083591379752541827804010875025213023073669337317880169026151965328100080837820522106940471147383275661263868122080348148794548216991494962013560643906938446225107628603060215278395259974440140053327497105608023823257475921488232434639833864357480771416019163234961073510718622557049778825616833549779593541276204743672717925203332568567002361017489634141944919966126813004699840041995784291968199083321617194747430950602521396724693302249916154268770681332703392938060648742059702388779169333832530883112869095631251198037199729676836453397011690491971873773250676946148555281894859365690071615928219854707473974617861178237851112397876957589576403779435341545799657107681149926986599183041191148267336896130666100059225194142440496134176248322239140793052600840275479284702352744401749038615271463759981954786506040299989691264889143740898936804067495761855297985899930787477030954511725932153299536210812811674823271083927067303168076781835981774678232518986183704005306648389760341857123399588376561642769372110917897223223525032223608618616063400463929324940005926515255921748494803555439746753666091029212421774796775338013809466773946484875463766307785539178427228429253831784466219345289544714648550445715023430048319733596164913933997000823464378708937246118766105123687883283063786058461464912461948764378947139434829393493203640350689660199197229082865650317221825821543218599244438441017528885882272818499517976558106246223979346521450545186609448769791286719847860694546525696494443099293451355431479580643893664298259226005118355266025887210085851673188425247127545699852673916696549932332590781502860593233896000802558909310569909709145485773697468913401204866582773997969349172426023339740742269671197665976419651581216573925606448711232756883639824469866318343253911148802343790507162578720722711278031340097868991912937838944446701094510261939491895063685569998597663207264776038469854605006740520896599965934116595970341161904562276482946087168612117375329323735457601987978391187508304412190283277884153324717636977845362331762485815980370047196498378626307779652601692818293219937097917948329083288074829541057052378453965184506713406358099278388660225396638357478655373879300413966131530581952253803714046365823788989402524329865265674269449381473456347890113559256557136703552352251493047756955849590290814883481327701730920424647643441491188889133914760571820296693964505068031170764544427754267970665690033135608152311541451047680035509066492855492797816741349942779479713576537815550158060615524158247104664067923339081803762456801125774348053484504399054952884236803585200271731622957177032311537774184051334102190183064248838248515772799028907297452616715108683662283104465117404419188408934661332191058852583360893383660651031102940209276995335396745049555764484217580129941282084468537690778954351183069442565449511382669658897793842214235931147405833524653156089634489976929966191064294915153081107375470068111592848577615869154430908963805892293596349730968867563107293269663752492908055439819748659864789825867771915299859638576041493331196850132879695189302663918353083239065698023347092830336129983735833580602597116506481318702244233365879369737818588343058769289973613075825723582004757539026949530794073206910756713195417460390630817291882367253909611898697326079739117783030184700823121490253211936341365819035852064172665215259547014245237343801660554951624768706473092119480740967002449668558058879601074048724526592366005234528726139905714150854689058056319210384535361277482207294477332678604157209696863362602984192936581686877533371894614235357408481958611115521786815506827198214786252685515631611086504341755756166641094254974525209693744471813768117635868454345029856214044388750817892518826028612044860855704200764096399735804544367189983094307103798830900743319293932272240977300829046390002612653924704924100260085612380259286886573668535011743609414259310264093257142420874821363781603797421954770696215310183528112068920653245474335546539119208424579791916341028834889829443992769952823032097825553896919362525547102065692545808945256367429517871697394705769177220409809746547592905882173003711935168584121834351143006340556741056777593648885676240722482329135446519054624066227002759791730843739527469413786934969239994217858754462213977984010304413680629786918744261053560137496688372115809422620540076559225282235897565798015680861917364339408692895392231609755714385042526158860472664958884472506491977078395884005520063103395857131391384128864523148925140402519096150913563511641026995392444387288793765906396198029682119155364552161625919665428865205569505619305279781458078812398894462899599647943673107670513178504228689236580517793005103726643268716085373904745775627296885045811504715712362985456417321354130330570062515949866033154233822362772447948184159261351010867113751170428863391596491983469710788186736277081701343763406153678159279874360661662578083624259955477068925068587489316692029772031503567295750136864745469910419927346887603913504376870956190561794721233991518481159089834451122314081452836865916050377862609369604481911610218502313173227145901966816601605740298817141381836492780810445867663112751816152449928218623244631669665979045002877657370746064938444932318116093493847887668018810731453613791810865126839553813149710862537877802030138365021588421538993739950839253243335362222527764681100136164771602801659348693275860574401323989144935662326885897612566555560592238417087907689082356676539431750752715603499033251933486368540831273637770646788840735335207172455317870058961636859325630914529546213943920224867919763800492821364283432458828245035138673222497195380693433991245847088618186943972307822126637525189920352908009235731305156960958828587435477419430326410367876599166880196776985396633455279639066205918189787242735352216700587280260797998168592598029132801055662891297522434404632244229415993005369161925804805587658152446384955119500117516713154887711237055906133500048078507890345304229014677443861117055956946776072508056658968507914707371777761511360490530833981476455943830641603033498096313570494888642493801060160336212167139671425955588427425084208750467731379251165874125844995067980886984409127366263243251070699905659469666728358384754988700081163420988542597229470658641934886622456708354769201385421079972021756361723763567648825933869299548605724957957591158347987593059706353474944966890861170556866099160183012128506089121991114380509389940803607464102837018618577331498839295449915895703674081156930974768519264873905772403816236827692603959867128971289877644247439435850610521143778553869830954343399236180141892899042209901425047678795630038647789138091552529398879588479571582534853666925087658484842041674131285916696561172249243743622261368681633746276088510530377661697108871717742032369360445350797419646712275024825800970393398472621571871319689682782445274848186753961948385715297649382419764485924086320002553224082115903510057381042255886424730656139500932358623100908815431185429607914744229511869902302702966865152950315101749637107719737623759580198772671402209137667295772259944651577356667790433424466766868839707102234401265932079364024905716762702410224244571740212128696208811937608340164283861889766173919782496367926018419287501871473706255785221152098575643291085153174718748154243455518972669290490584936264605996432695359076329202498309644679111254738387980067006338539319858269457217979260478567030986502093771033476080566583347744857336920087193415984880788225763482401503535309323626790617627403308298546167634172310818472601179459782662403195659751786367297953873403665893357757290984280746274864982992977633916216709767413599325108027628040206037156430224789874526016719145112815399863477615496185623286214764303948445298243949773868101861278083818014793338202197535526501009607178285806333040321769161660125125033417945875678634156224434971903173679295940631746645325301457095932677394630780129838895630731500788492255767041378862530878608604510036790219856395451107664297440167750931898116557781281151957301287262189651372140036549264169142216625460512787752323614803180039634002873903596803960323792601623567684219655884079896538944451178641843067187877937371067026630711701725980196002540224729005598280230438085089342604584778111594125447481119109864535215782910982319324379164044295997885770403794344187116180008555362592561631143104389568537049652410957002832252021024139897464525033957809406290989181430185772904002101079051168240074100235924498501117565140528200154933748378614548813684257574939697792569943123002773901322527323360896953255297720147625599742114844548894188438268279545668908621965942552072391623960284540342336327389759730823238985776244188568151891847257625553791306848377354535872353919567141536631461040850886200151470889223961601524368818911235711504435247272543668761921589553920784748396029433981473370444777123088662068102608814445315222311985036105821542781320071142142947697776141513557233331167921957175038498255224812168124022985803197914490542652403695815857592720290556533749737515311856446768697111565140100947552514164945107630593614798686934726782396428612104235508681809469726062245172745305162011831920019195185512459967456542004708240332714673306846879147810877879911104735385529258158098852435355031310269667622786385269158621838526657015874218741196507573824790502442980744349464178067814014754574842338316856741428968467983019054038519886317723226182559874837969384474052700755176847898344035086884594817250950738040793758584842445981111683420282300440442968501160153675138511554083797224636747475661116632902864484665428598518183895159114400872724841271343843760679496434685365618724385060044888720908843722903352225533886248264367226854097956498887511789207986820106965789903742504530125972967532424703739456941680089851906962608642335560634079890785392440728693154771503244893317079356433956789904708522644598403809165323013871831679145657607564090531323173738630564331094533912260353396107064471891458402296213575844275139859707604922920661109770372521274186242830679242344204325000010357715377753977027914805557627698786462295858787949697485705974368792060614624764609406204204395115413817305248010328027957203402897013069268513311114298969599206428346114127438918551556079103134512490021970910965122837915759099109287876581785724846613481420142997215669736661389837513171050711679717790685902046785132789658145796948362682137998286753013745723683243685199263894854581773254308037624326333237112003248533540102520018438591664102445653646243728024793553202911763079227181694764884561966290433101108178450140275879271087567620918144524746171142646797983468516746893464377475693704088885475855290393718192587148472028917467907103448205080055457499109504568103259427030354560446310417568972428075417374998506612523161094596866584672850521511194112580877144457200992377840474990035207225923164870897705035691637107664605408962568989963416120560571733216767852628731090496723352028664812799054764226139951213237913707104874893090023112335175876503166218207287826906132669425155076308843564673490716659525811410131135596145595993576725995967486176010315005625895696701987180121427013184891554402471403574803638164270329479897439591046874960060354663793815349206573059357648041160066439428638684821557808126678975559309978976996569520867181485489367529188663804275209974682485866646379186938460993824314725670005953097319155596983872546837553329077128916377687557368551625404991571041793028678365465359573745671765535341471919991994772562888577089048248598601121887168331899455814671106947598451694611218304511700938412285831789324012699820780429964208077862401957078555765314085904344246470300307568059682871342972012063868135820281456230479902172191443875827070023101848096882082846564230128432621737167292180051266001051364024020349714412035822156193078824927513768541052008530660778707750283215960061034953107486173689568909721192620566876470376882801112015126068850967795344519760075633807022399304616891354993309546386799744595065138150838988440193182885492800611371509705135754765554011675701883864467537735764171927468361943676320955097844541878832991550767653157626429380698175016752903622098957653607015514502297850210162488220152404531712436329401770341544080135436219765317273495542744604143978278505422278167397513500555427392788965231376929661757217700097742364938379970463314806993780361008035108971729828416659836446323915240750088884901931368284790530579881573607327613148628439200110766574813580453611869573440193611316347219198629241090281002197628477620532763364433784015635754826515363473671214194628613285428258795083103502597906299223696709440449791958416816783393746741892758379283833364238878714861806326241601688739442218486907269632183126231357292953631578589503528123151703538027588843190073651392133645156205741021781345234933087481516049820056434892031024581780009517755862865033595842411285454884609286120218067330796307922472706952329431317780114682287795579091013067680139515289038573735480170946668068888307967444552652077002870963138150263164416565417342202120653283579893035557895864455620894035064176039513552174742280522518088470104674063070095387994471347486507894940677009907957550431145030195727413486187166261580208874888476192749957557271464330255263560950529376787559837569192038895280850848360636881511135564599297301198100917766281812311725480247247151523403266718214532099369128277840116613371770381401618644601118862315438362109781751582133977236034208401013545303872809029693199508579682796720867381199844039437473886886892521227512258028043419718273339186031681431846177585440185921296900789821631251988987100428591028217807755582479816120401514472636464346887079589440823367068664511915249249521806443023080133098232560970698491382620768209915662658593374562437086956012636034165472135263410961611036780630743563257915011320585642143714731151739710014803684645278435278712289692377731095342988240163323997025485714736685716020939605688568741152521976387723726329976644658607008547380459513742237574201075491714638096546489090567757969319004432996363203491416630625835718167540496123990290071321533671762336556965017822160919173363565970335713283391431343305692238427884042902598305038046827008855498395802592835718412276806416026618539868291528112757637919359144009826938780351435819625218829942933259884037326990704035442092632824890831703054585412707061491625029645331770709148284432259123762878476575660555264416463854887649379056935691906493218930148656353121356855728732431373283588184976446254218209985833240347858816149751698288265393549953382861675509611415945144114625584739141540353640007391915641340123474040119301188435443555591102486233842496257093027631933732025999653972056547303535025118434041424133095205000710767664475942387339313742473805909439910470512585377502466287261745833883136048722682808008525091306922723856460635995316740888512923010622975598483202644288811538046472516271495480715780414694852492529085322543558125436737148537740603903054840852824317064144582256606067502688366687787432444551461590440799586167556571524620150606351773806549350529011428945195852543208137423765130605335316008818581229462632564020199092551170113070040050911767264524858657438177894245721754356714872223806276072604234276528041785086245054017359923113411942959083374610225695659834929644709978592764564990155086237929216381707068917915918510157161085485873109909925859430086292811702876906069344754838747502982778347778793709816537400060306767790582145451501389876351001656687625320158041734806408724015100426518870957584735111543629596750237667881088172923640339094200256603571928958584867661362846832198384661376805148354218465443071945787239988940866965373346232669327624127347111710225420962768461537820958008997706520557642483646479131998655634178698608232117047216194253195247115020072980372355245887233489817870934812025161041378744941223256287101796103755370229224911940920420238267022372086793194050687529859505193051877389993884783809931092835834727459818147430595494676299838552247211023845883156829539513776812753098246005873607350315849256416244916302870076686295253846291872733273095579143929446574826360900554179594686042007986394882987533715723116767428461020355133779791915718546598130239906505110703926353689807466552969425970338911073916814339307591327531428429856198940085507550317065264752440075175010303776917436518653179745120875068196174775830213839801338784533646982308356601160780476779420365316343626634538288577517909933821730010115125209161185656023253597853493640399397877770238431039052472073474113103395440761410775505078051617464714299260770910552327565999308064187566960298231349454334586497092253207574591641126728923745594218691314881436669216733274438757492132827487178544657854771403175931218569322061815993958926992314048572631529374158529885282824013420030557575121213948457760711266856248127290796342124147495115475070879159102337686877529410950670033796794589374342964770746884216804616797868185276280113471176345731860997723517618623198406230472001674339239606755409624549267840456827680713905170791742235523454248275756997561075840311917083072562229745200230751295225174700307886853285423832385532476834295452410456306974822648461930825146177487011140757171207335241740987594661787111814373431503652880723082642540627982313395932677409033010982872492939527947071967888596719962621935631593696719357266664179864983397429569879039909795122956682454762823317573615784547100736242883498508039298420485257305818649710720377573667916887773586323121288290955411516551783835274923095977122085076504357416401647568762456378113510224492506009549582073300062204072584639035847639381129767487392984404527472226378857471128677436705036946780469857726919958105343794539697244101999494898821699926978332066442614959418304285779403060462882801862963392168628221618699567150518357919874870770531936904609553373662985503658106002490264902184312356323590306585889263223773737500955437088637163988147807624302216571045406005988884025702446141516885040368426259645725875003868247779712935394694900369537048626595019661088159032876201823167459376332930011057526202196393768567354717026100536267022578522802408701899351096528548041120969519586533694203809612709424047899605405363872285681556373986327094232757844885795503643700817008076009412951954264485347515948572028096950342388675593506977679151236277368377103406294061484917008897793990203941227248059372230993014614519267126918273963986776470683562216882043806217030625135421470575190596423874781978732131811600580973038416595020392912191284069371759405716358264383298548322243209431117443019629733980915788763276867369694000342767977421973486785180083470381593647434271960023911162324227135293383367293542287466988390751328359113480657709792688619762985191688520218322826429326011351990968472272142597803369590936093619544694211240282812956410452352270205343429356627505490994693537087159305633576052725636790697016513618711835246544175332258938755403674247577742934194108586969176677957213688495518382811799022531934316550402720845379313253876729915626303632111469516031536901091029666442978061054036293338126864614164229802727723256888534828424854533440040900603339111365537326407440494434812916753480416565799927422416388418697770141003387215976872595739032381236782712426846817612647502705697299090578806930053946114021726597805028122571392935826774411106836715514679863392032001227202547404300949149115624307536660800440899123060763633688240903095525973164375980265116151255630388357165736262389421434042493282513790142796221822001913743448430260410998523495384350230300219752392549471384318856591382823459166853799918355265602391010689306747651481409222413753327320779346646025507692517942438834238491789814121728469183655396515920461751178376382120599456848314762162876489039328874736004134456602983901710246401773464408858979027860806124493222352591380745516370444942595329968547090965307960150306079412561251406558355272742789196633001149839766989512855315595246132940206850742562544463926317059757648695100169021059749403945254140141647227270679868779856047643364223155367752710524025207564789235495758745800742664607129053867796262151805234571525184787555119969569311966212053788445301798942352929023759339344074110276457633912813528075282586503495749657852539544381990306253659913411339324680575682871578493736388788148541570525273895407648974245725403409916918311039874003589798603181701776873486864891095490607377601422811264247079581310037400510616044635985545118627963276670330797294822990767851514681714114739016243556173057298318149178891899862057524529348874288916033028775280982536385436346330060908576750156264997613485663524106479929957225566438792542089968706319479223181048311727745148333769972243523723137848628688980849334119508845177288419755786046880805358212931452552504879071156193065914927164186079002302715769240108935196965017663192564776864613683244129064505222923605514304722634741384586524928182014977962819337175252106259286445316305909186298700287896276088356234328321697670923064298572622882797288366435411910533365935761728016840087604136684562461393010974786921695668781271928589306654959469898774999328900032357612753040046940185914278005140753104460947253539120468412038352512777469336688595355987827071404702119466848580387538455102687115784984349192290506014023364392627101325946234547684758546094067097900046052833815316542018780710783041433560211377074595426094770759544614126218274889899446478120583849037978693623624122874854347804919886919356406428515208617540031235243395339424660002308615143376762939808218271427675801527949351103639324309373344491209283259156636184246072902771445283577176751723035874917403410939189296801862527853667496749818925142313170843930906634069425605739912185529645820358250563515300659557736690502627471730716449953325269717798269476799742159127940373166682753895836443276762717436216521969489368396438108360392903837642112706594538416557545659546431113415909131831287942423040197801955447518967881018755662969711016731999886866533575691780295194740294839968483853244954982044216837166266318161404154788711605690237637028056005954667484476687751107684273623971491267965851012067575435714251243064032505340488580333574429893848991043589406344361568191215654875994835353869783501068022996561315080732145541750745896118368864259045303674409568678355715178045218597493212730330731141955468145646686673123601984985220697275490020080375952444754835701786151779133739317856593478663480693996510982605930585908710536203135073616885052428406634825225467387652863289635022556778768167418678496787228001469452898576371041758230334744833998519258612890989702328947913272243763837826990578641503399179555398486339991950831612313134087824939212419320169948562594404791524964740089707783786107018863768038278428705127057620365512096189710386584617682120137055008430366681688860203068735066964291373855788026977743382302023767220067384543536069327161412753879830894882786854330525069191487192797473940538430137852030438554257912501000170333101198370022914496436266624557288686151982730130588631875091891844685191623254593002387485976984733722125095592674254454911262377426467499308546424843568582176120983194683356628951356503941916365990783882250701425195061790047385559787115723471224759094487248742293413988946997991290221259460050472507858765630252305643538034160594193655378883534926603704711302422063596598979302626591319124490393358931766223533148270829303545585547858324834436004494118722052890319772473793749632037895305606025059396989888585887086501335224134579959872668733741660540310816337696354668158114667215798629504753558950491289787490175499936253694247532608870572872706631354400587138971334527434930559549512606741120244580325517995439679062574871731917911152370150361811650595741146521131919645359033744249860674746361686088559830620415110769181537708493877904334283296020648717264939605370784110989796966284959978089082971474422148252787083850099338480356578321772077325756297687923320775717885665193855630352293100889513375490375433913349719690132459546757020578072618079754483451655901098448810732139225261738710354153052741194466862056961655870728660330118560802612320985090613684751046699399667151753109460270171345614643445272954117087034718717360955107065142274975529721047464454139560153971482766199919392128981632522313059547802260327843350846861155544746541793764118075601805052396291247364720259301623108518908685457410461141699369051481412555701277776801203347513974206640641962307826521788996395193964207778118216397026631698850587118647516143944049177513154967784265338306274983307797614966801087614230675207035860066331038606076052275741001968344922045427336636670979427713974615425534302124080836200480232836255956610575122822374081337645345717064975175926256954862172128846731641611034995421273881409201181174633486729421795631699415267592985399197368369514247605763778410261599594416393364960677464817957234381484960333044663636025935830368650729593707591974756790029551429011211905580454941131487007468360530678548930406110031418144823258296860129930969281955744246316065444989587726045036455995812765217869715591024723948850428385688310954779349700846734450960947019091695790029853552743780231574919878733613424324993158587194095250937283660476250826625437777231719974968809692879067724226331573950181426876762074063424972565775817297229886892936320067674268296573016684501020139197817555321510754982466962521589137064008053384105616047264464714514016283738248724919333300714546912908422508277301478039384852612996854557527060812249934830153811580408964953651742897318942590061724935522986897503285858770434528688451434502951810906887707420747281414828397460530520254005156660277823043631565410728864227578627370019069247531913279495596840508311646929217919689412134119811517910489040480244877126614668715665247250208730839924500212023224486230265232251388105671709444888416757093394253816430048140742533274450535656949712224058341011771100247250931844470370975379641581935992835818483366399411654227726614641394035480980526073664602526023845108397029996646621926759172953099677770849816336354479090409041207345899055649065497685906434729560967556935364185583842400369616153749969957075818150687835945725390915582159929645119418888552340942085295793999908665113275509704068940272575735896495425757444661863458086498344066690844913589609461209213531476059583960421638247171686160635198190440479703443362890173064587675703338047892183400617749551035767123624597926943341725459362641411891737094865901642443236986901072355425220418485692688991833348423743147370305226631859572170189022959556434828767008084045068573591228061236087421682697319022772519427006565115777186053002648249350362240569050500775726477735073428222610729843009860679800209987866179115892356205606176440991963027216613634597268515220955177219570814727452286830782994572280684257395077806596240440829678058878650906495602562666910093493372599270621552348566629760636503630826286823917151630602665578440462967500551849504064606747118920217856325319214880564993963004203873116805523751477415448459638653489072842497723494854902846558372871743716166617138666760656044475337703187121168309612449701158072771165230933002330929198084837832984834688779627372905132670428424449582326565996125944793367978486415307270507869362409970245783611174949487638807673068919988685351334073380840539036382597840784594220748737461499083476816358711683326890426625142878786556780631781514813172222143883175223762323795078231242634988161530430793452758271185895457774891635027510090518489299496797270834548753414450326787839514815595274845353969055302592089822011443713098548117502914457437593711139785662897172660077707038462783879247715017404474106162689949625740392369192376525097016773089936657560781110576128186341783807025513529624255275347086417671496536814070397898441129066676010695238292304351273236704602733958688761903874302320489018051693838753872288949346644940884321157778413596710713841850475109921723899188243726124058772146755627022480563785167882499281992765208381965004899373963400363216308452076161668994951258489598357010451363782105711474768037425881478501328692464377048682838421018930944728842220673811436983975760817211087242659075928773002027815773853423196731483974541089313181709979753395225597551523867034995113150412716740806802121385159535799612141952154318526776040966895037145669291965909072620792978873699385464185085438592091584475641453377924369933554613084099074375825636147269659846181391838925986611231863710875832557998216417812058102260401506959014198993050977201059271122041225042493580858915692052254382235714534445165101739435061145956854100894693063328131824728790900249682668146907484515581033575510504183970488077648333273145404855181832323904221829366769705934226105554773256159149451111804311471204117026519411616764773876932954049658503431077532128660962742277770246191182428238221459133248166859157792475299256535394554318539493221535225522919370118799286585576713077136018806221453466806749302084051165295839707478973869997416274844201014530471589862041497221772945888217288063629352341669751838784983566456770892522406986629462754369237764426834711008811791869500194278611356020755726048957056291321080450356733396372440196650638769697887555172294129654413701465748860385160023442988268630448782754262439491286748415415735830353660267938009612489667378919481811690548132378343430263847469911866372106193683797965353187772977978897942149546296937810715392259508380983832661062626972069968924704871980377200480296798400386182500333252111115908018625146742600305918254607179013123308032320803196932414136248417435027214229701546784002955788270208884743345644312003868974516368421117033467160402015437981262426929396243101479041407133304080869136725181672745056035124497231054886780184391288751951103141983285902879391187790794496159160417564959973683943734109889960217403731624805383308072381045603895739394767057841253645554088580828251328320544059759940629771662448691305766435067933453257572519290402813774371840545106595266314929199118062663255374107979856675640333926083613266486401387563724896999818396549116430686262037714096998555326322951632027093412447364523543464774647086939825697532895003809097611912334134048149198043829007017930636562150163806315088973214005161456468049352876616071875927737907425426906374904797575046016588081536123536337614588513697362093235473545663287776048870973321387679336642657995635959991940434839169338367164234289876010260157607442403432536307107312804265004989307971232047300577290240075758684828102910742589148893309412008253703812442115471891482510089372063793736471014153055850786190316858905286094889359760409758213411656447151360697878226013351280427170817500864790474220581263701980797947257879816131145248190102422980125991752095551673737521319729916959200000472584935878983123524495942265405551202258948572025729193185444446840231754274125225152143365389174028550907687679163168689507001244029440524479678760272659586134394466505967417852819251583146174968102916374001444719574971706498053819127908890834501234391763603882683419676358445431074479392466665522376240518940564753190006795772679923817327910858243084194185451604258881541697213529624664133906109021125903386387417733207593024762009605272214313833243746492686067284222864145730586602155524036726333345613073657206247164106132058746791608282308721190398110443191060601172556623458328964237188487007254477688080879823618656501949022881790114149637162716791527574563139202777593729178240422984040585657440432495405791461364273678486046411325959939476710774399381439555418488839358467010535459672483594634426015066365548873682061302833116295555211935125775029935093690495451306899319884217980724370369627967437270304330858585606940891685496516041090745591145089821115387699973896352249691568321529070154422904928112692700119319089939085408906637035303778140919417823316440450593680604289362981799819926143235289786815627420234730087908285661490326840208047658499056377999243035523725512461918129608496168522894527332811313823952507723458391454472328063864603826810469648823792538702154505407399493618136350571961367677865858323187745773844708552174357099658008591319351848455917070244671293929411971798313849140234586043974978919139330456242052198787699724619787829280977703775931519564672953016989694535019704031481004332353972988282696801457438425934823998704336242380747814773944448595010958003725220855867022521274798952689509756356157381902042442209881838645307652259680912340571314423001569720986036588638057879613546267485460095896319411225077779472261106201487519091605785524617620577539445583821695845900384218336370177047521784520161205035207188176102277003103785169825381380330735560841643151931000285923682860370403924900531176895551225341388828545643533251153540084910202895008566421140300262399572165577595804700607805364855402252680475046654382556333696366158942401173848475176924917770304449392510622214189756350729639324888496935288725429846430541518239857418128188955618424140842945912363641073300583773550230716627368239993429744581505065284992415986151875216382236536707613191479624977824435731184766247105846952713742780629535588835207328813296709416350915409451918173917606908695530367727006998952387460852563834232565948939737070433325745995292008375447194310843288183584873742022045454435599292423687785390399250802843953262085571966483562254002672883328802860621684168879185026793977635861754339889908522724686061788599217740016434703316484315244154751212998536753024626983278893223163439580590551495237593471777163804502915140415188929209258393783998343236866471804334449763384373787303005959183239390276248036419071176423121257301810180861046941116655802839573808815195111030899635586067593520684303659330662421282935172007158934411972106237138810790053453953704360106064468265012904921583095113550561738820400840230681356176717179402543898143780874953386046057157071746685944188167723887402225904614974541350651377081535273239605071152361373115582371003299326417059514156952887341783069701008471690425119410580596058327350582011453797005159616450474388931743066406822968483383005511819779176316040345868960732234209235843495595048765134301512383831252448001267962401371848436518914967687949526135910125639197553757857488098169660957797112177317109554613465463476896981404820300543843125334661000749976519319203242199995834113365807300567775063759595290577314386353747532029845059924106982417430239836581149566422705231218816240080850129578011725944921199524893949075664455948791391413959723243900647880724722718493645963788845796095963800601627277320295750530735424238934830584248028642572750279217753372965508608463141324865915211553020623616084294119764260096239599791284076216270021056663919091334908936834184326238578936118461307411765925837713135819902424055604985723053297154170267324514687380820911304623657892263391973504802731287694408755945250764559649952060224501900496500770140846667721472942580390727128736063926012151675019882216674264499778481222072740292537573294274709960503213389735418766061306021962830867673909866964134004173314456424772051389549231980455423812875999340501787611244070701502674793308276888849494042749083233740066498839531010365997700105256505511909261971672212114708484403817771004172396257667700827044508756929626152354337061872514705847669057981929179583701891406032030072138775075012256940703816814423801617395686295685025445520825699449981680374266589442623299844720471708443608864665794737160788657104691199110537472471825249214882451994232840274651442144437016071363724523676316884487187136182528885934281919212376310051539882819070928898477639703359608415905115454236727088762456428736957841211661197463444475218386630850635522584400080246112263931464594550561197387975882399919368480777195058496662189256765033134753050064434109291101554187900815365248947520876802325204363509797252659223118200628409753018115141066199412267270024312385559162765035062777677780454742457577390913331662059263713727225457507813893906970497126858910154875558406196877448882145962252273382202807348305297800706516562856895536757432412113865485309296497380376692422450558349900716627084828868333567957896111619672352606840751498121251789581388784636551091180839992048083130552952746108528615603820946321556371717559246448980258606404910139533270895951577789892156224893665469436594776077317725746909485131353630096371448102702235156169386439744542347094491717522714360854720725298928756550239777260685018159414355061154243106639371841815880425576389107999822365692638618014311135443926446042855691814611428977668869361854036134855409829320072787184280437674894964839822919081930968473434879633428136683141312670475250002205167974671671371743516358250017031583075705232023780052043486208666819154997099054567823816879991158456243515186876568149448700805390944376214630672542086915442906027708139188768123329365348118810968241264558908194476865571599451310424776368569492989804033058118756609572792688044868446671714387680818457814643535767902129396242292057444428095722921581668850355985566278761067292886481285302987686175380993045192975171399312296106234204315560200789855026294706658962163313795155886702675374482578346147490748524664678095770578181990181423496970266088141185772069697574252070965700508184555211033558961048127024164289179037634987697781117728892903775694366203916150045078214198298182250539971942877816618303519090801373217417772209684154980879847155026328445653977144373495857408334557454228994624863194339125190767951256688022858412470954445217271498496664450074183265157860263321473285351061435050864221159968946115236373326854347102591536236868547061963926157246359650567276105236124181108067998239651123171656033691869264819102547086641159445261691236614465313185081035820269774687454446085650573911399004414061958764214919903488716140464494181385258333285504294136910769977343138306498714276255332462017193996177108723941514875972316837775428682882231049142285482924425593873549479432063592651208567000461326069481183068797121525192816853728727807119401276861259508438285247610246784583694831596769525370938249281822878063324237316282951861119381290363202264590361279498637520426254286321764625047886451264135146298960620876760766885311157085569951370445257210152706168962563470886470000748729891765275899070290435923780561442547113929710721370588185843177866002289641744480162299860761974142989161235150719766923472529470763026776829638517511338234281334482954871644902617886335073640168224657055414007064379654236522029109874088060109505936672227549988690358635674246809316022333121669070893940107233209670149244167196883466829329896200495956212154407108664178941411605482635668802245105828503001932329382631565032909630274375261479588732476569602205729594142841070041467894589183112255830496128955252609371473402581109760154558262335543914891697133822112227121618736145921394657606618071774063269180124426337175885030016398202762908123300287063268001970175025286072595840388940892796254923466060803764755149904761342698140326458673555744011651293096282253680616098549989586920909283431042278417288220180047011103471951278783552474742344394142235061452124640682771600710430268616155797050353591414821406015501280706905393779323989262551850922087318304590349412726942992089877648521606146552475065279468509933009671364840729283242777328028763748286092443002142854226028151438950718206400226829227838940381435407131817723679887049488945495642320473380624943836168220377312953546285898695242847325778215061970038859650872403482597611554386895325569928386718098409246520432331704667722435930255417770898296452314762350423521598449339166596473673124067244894989600521894608651470458254523296307661176790334467777809467624826498873595081938442640730048490115434996043772688109241846033864005306980142067845518979399542905078321066336538427392380132239841203262740995971747776231406307641222424369286503645915525724484064208566970453131205869241053232590255650568368129963528838895207991373134168116040094497687261131761937274023012692437982561251540491600985569157724005073792480606634674697307544444341830417768409134108245503599704803100780133240108332312429196239121882066306602115717900205845089366941284980402511013350283933173009750447983142020158117774859154424039273431309576355080917459844853199153159820742355726091047485163506313522614208969736553083007001983604695993628050839942756834056939339109822758715392633247219351970564980174027734523592123465725807985761470942676687409162682278815836574113444695495844787860682425883683350240765489572090316299102489774936749180260623709326174732150967971911093958658847085422179831938405695980314244305289269095397289903218906290746621594393613590539090166100473102784113929004798002027794791022891707331390219999348957089535034646549162311151322100410703436403887161330475912438221581757046373390661409799386188432142712514624132814671329621318307076710263758952353075280215781041724838349580050426848661303057164379091793101661671113937494832065736758368076205350705366452045660151580603596514554519599039177509541798313560467517632929674642984047286520320058814520320920544989314179193116805532758849048498391375329860919455189182971969064362179571297472768632624267977563264821098767729355787839034450331384976473589566609254224877656022178534366169715996469581575935523932958200638709374704892837211780088088785351027857359112301652385894308041071434550157459457589707289930116664880219227142619648275516244066810246988381915775036211946475930865757595821893028382468888992726791315479522030571344750361595504277917504268308148212801054479920783138271263766065424139356348471589355843397658173714258107106587818041107086269531221988314130383284305017318793328400644967884759605540120573043438333487009447743372172913097505296904681295538911624340208685835205751356566055291543166666285573445589337194287184306564489022605949662687484163797548455192982761381457815547282528656539735078327620573085797731346320757891146317861030570254314639848606126646520782126570100772973409426242653280413976866084137394771262702959372492448871393994327293713145491727679753380633996721671474766000333695253286845589145843281877203147643510443650149101984848410528208915586185654735543670297028586342031519656262913991479519942249598736696740487001935834223556716392877891441856362228744581708578838557235831554726504631767308803526335155813826012606982231786189910839400402938684662078629454943613523692905579575916691010858739713407671478214177079691164474136211916811868973122789409578423908617804132660242536746567147932909680387780355481299632635906556285593706912073424666807377996420672805904803499480155657281274520256086753852774119596502933670419333721451046814483358157470207380490878039146954426410621974912269227770086506002321094406814884966262748672981526988501177254103218154144158343057269434527611256134592535776395776343636355060311441844258196113778141496254637412143291930186482142030967851626939659294415982198395952888384612861891374051041542371767107222393248649576787920817807894675226395733885936815156788124152695117449715303459664288017326418509745133707737167791289970727118824155594034111435119405407023132201874221418655353308615332877157308097425424255254801960247526781707165651836964620639375885253341944998113951608170096189188251534857100875429945120947523874728367147614274433853343840673236179572619012988265919973924869263895911186366869791274213768276738506920840982971599800372570508385646025841736336379422984625470282463878032056765022397721697145226616973696662576112048360834738610029539795376666310872639014982398308899206503742253243541408977160972667327361379724734220307027180389238864669999069237720524149561865087183332395950277996658715347240289036736933058549201808493682449785031055258926152855364903382512793760904296786863911616595663262252954805772355550132098614109491178373369059075503785251988800190352976300998159296494055449463550863079687116156902963358268472515693451316152689848119174537387941336620079342962876353174849615653968715114774433372532422297329896003997060166146316499623708424886433067891515568606378163890424981352463156571879111636819337273433246562108989831187560995973087088038613342913237808822077696494019813129775351566258886620297686978207732345262953088208069980826743156841534894763848672361816799560699399287299462684526790259375629552164659211857438237662174641133970593608383906920865064556041095675549445937210153819191468037997057151540176108568628471403983781961407980062261615529958543960482786667501236625691850346231516292384460591541910913209180889598730174315435063368402465204074778490695996383128736978704229038657841375110076563829514506251893579582960400809091779778523362039881991079812253443010384762426962518196398751217190266471317171610652858916598321779553725656924019832254249024552918617944695017007980687011478427647737284303000192381478064398712110139205606949815503824553785225445455952990387146922007623631388925683916137718880843948483673534028387423321616263690974859599567142547880598877186579295690715613659071475327910457000622137857309167327635332000923930574575490208869483577966884761069956600130305290184659023854769085600497877524266599808847919376276325750027817688392127009084242018277551426792154548917822550445841031417786560429662669467614012862308966093384352635113944068445296784871972808034570641737859258880367068905643151687298498251645141339000576908949982747513794388245390366882691254073725706465683116395459862575718944252648014156099766559861370142207842608993588373960519329932966281885233958178718125301856379968702748090061216064859863913824168814539757824321738827374471666988535892593367940781345924187863369033341234380444178625206620427861418579846164534498459529984813630080985108072203716340487047444664102605958255449474022980104871104813707846390655173852786159231979937460485091272367104429922442399012412277255855750396971897279747766743057360859894837274142415109892589766126945574671395750835589570721880868447763270817919049576427995033950737494547368769603822738921269055032062401125030111755673300542623776164746824181466974041193305773634714606539491416953680481017865859027809531892713848762169312668997537611000297827696573474503171320098058526799086893523928820492683239526726517981824694008199776688795338449507451608760291057752782556744367320174658758106734097385051727770959743366034874977510232138944792731218538385446378610497887924472098394629401857781465552167035566859858271925481115390232155816003241462804519179397895115898936939265385303723661422877416584355010305487870341013954296242008993909305207922849456348532043056168494111406054653067589686551671600264328793092244771544420788465619094947236568252328285192797816043000245882201787231207320205200380837169645695179866347420547140508184231956986522710928753876285306455171693246111576439508922048557106163079669603535725244987069811701918363422309447178300636633640906939196571336384033078469444014971170530538962927413783599980027078705621057732200438946285664764060320506235805684672727871909375562457075405186711348698305628405233787163953514971171498894031682031740130264413638493079577452060408591123938088790899128273537921621071234057400128476499253000728561875407316293748182121036274498666073210978030257184711644021408336929433165890267234814587181728447517279649805256178151638124267072538537258904423580662623289991511177660602657667221563354498724581196552430827707857275192612858442142694938314815724301599627978557395334960294951546833658437130820536818583856520888801856588310085441988648719742978596557381291573233379271361872543745868513466435394916592801538533394531233160915348514345757576093495213067541925789051225047179264376257425366736003439346886183787086866235276654468429211338272800018523995488230507328828020506758483974211007388394584394021812199984147145120643006293786794057970251422098275884118857741460482317447342212707634951862670776626582663971813462144732651437115742001250047443797127251644797030700880809118741161793884134109387500261855645923994680322580637980989256784879903453182328813205715733667553061892073487898725094172483573330214442227445601364267566513867482867575713517867935039500002559240507994084803004893759603604024401518297004387511345218879309799998418314656910115076643808197295961502498861803048158995715235998023817750420721061495255980850592066783239959700754865505825150100870498929985334461671245556255396300228852554326459055529276172360274373780649818763243207137635440599107824306230200634943051540137945138233944628712316494615576625152886820926274141735115953494258669656485054504879094910755676851472484150762928848347935078394863361721088775721911121663268123224409415212796704181482138993971828611305497416297613427081890654018519249367911080123742598843317341078337066837940685868457471441477356053520822710811298580109039027772936382645860016431263232244405485688504239643693377164874018572344817219276662668764651051466153072002899588669784709850236491275633021131024025608112860769181118698247612901397371385162696204296752484362367357694473897223715774461521475974726310934978264006724635508721385541105535681111450594079480266450548321734992910028059985078546673529645947968884508064068958013845103840020855178669265383532101328916022906158028534732206103552451040343834953623161623493810281622502872112830852384653593207865506815105386558467620058755938236741946242816562523750126755618213935695453055691058304837956577670628471803614919374169872381056272825381318116188247959409786841672648378658045008903374489047405854111161709548229170864304814463217783807921672728984533998290276757407715078928476361736386696470395168914891169816960205878762086521631439963758047053969018488294024053785268021819879191881844895942322319069870139273727319107254126565760035272437411417840388685699421018420934253571661239713117683827851907591865494240720998570823100107230264848545874607153109493533530621109068132253007909834052458156064041451774387564022167082497837590701082770055785609160656243049953792659845780455616360312549243870171643736272610225168672163470732495606660700294833016077854941262750131526985517827349911336549761514251008211776211312662738523057395887777768183521714106993602871210333403808742584150180574759583181388226894579581799800127517960699912523833749703119239004695180366218863292082366363833010826043381545405790318295704551865136866013986634351039948454554391657628405939813888942718441686886108706347697373548673655898631811294132255748257936095982102450448594686858280535328618680782318637614177925004678706291001253633925755066243963094045887797159355068801483801742973239688640074837969202648815347416745773539478810835617464603305672591547102256875062653974621452326226830514668189276755001427151336144633400050072152358731136945305740438087870610787803329782320548269322650673531858553641686513164876977081006773741764713772511000252757213080029320747425528709505997401409952084616726477963616186311981164382300603510215342157526223100461109499642988357403996994411280287376521606340748893359448975736443106346928590933892443105731895076742937631381415293349556681734966133024663095000155345138421285490584099070712749447806666554774617817589707438808427137981281020944329163241006026224099381403117442151319675553832543926805299140878685848800284428313463623017178399270755207668808941849434172022752802943733480250404321472928802142572527009101060458135304451269295091141547516613525876132771414139981944159063398720250670786411625936685644622220676840268714080201029088644586409329274735623235388313890679117213496966562616096002041976961376485348864115647525847286292471643917545369464569239972553324050446849155770614471848661568093831322034252435849801410297809183158979286643250175758870023108988055442430218009087505742055885261242984792933926434558846374677666998069558074349033935551125985707963045028570836339985892844787487819711859347766247856248972086424421245054949242677393448652373695938562345489006382184835973249566312683166680024582503926277250670264297227530139007035375577954646821787937047179450883592272536591323325668148428052781643785533463323496675923340694995208971931807515107173834145808751631807047959173615112810348548728833473587541730180286156536798597374551589097227185583609229342222955178883629854638308749988607792654780319193037049888627776594180668786304829256419555424733185750742815105454050640610711183986669195787022971465337621614534434448414254149623670970103850540322843243102702979983104016956191884345598694558812879681495751008759537451273674504327481135594790785169251126056163383505796051039993728826422383024543559830665790521702232842614333655247642381865139743502756113320342355759324662310175521709185774817470326710554482913476241060191451728698924268108745304018910380004752751365428263689269632965671916370790033825020172766273664203410833048009212256694834483094875179775112551951496252971114222389715562822393801746419929607139155235588912950062654021329914295460472520973982583462850449009995410605032850377135654467244521381507491155943451127768392845607536063405143275222191954156089058855277179856617725591945722989333441029379651646329692855331967669048228878187528108431033514845831072758847742337767589827462619299519242854828379093197682110222881279119582472104342789800259279063314780233774966486810915343062777657817130989336811840701524585104846126791053198242290362993207386415350455168207821943389089021843516033837153679555287077861210599582112111985408120176478757259010442381544529600553418767952284770765516675949088718317349583449711610334603483570342238142667571226217812345128046527288300632038779410579681296308438988560518327831245899706908122890936420895034287068830953900392258101587680654607657519615815118619758756554468268014630212822378820584204623762523855747878165767870265899215825157584056570572902015427401004034324415671813081158058497175374073489049034416400747713633810729208379542391556455054640495805680087649750258252828576285991191093134958507541773636311634057792949907503495151087076839183785176175351686214674004141493558434971353070119318491315795481345992352682953314159659728567221893237700286866222724717014352543829451425752727366079510576622363534200457876423411006356647172079182446414621658266155277698001568928296430989033123639680567633334524674863858019888792234985135320823050396664717348033642020428700637094313750610031062966298560077673089112632983235222620005076090996256380751698564817726440870183948186925277458453704524739044914129166170600656187083748264086616798837203606616811131477633988840916919504766012582509312320000126244687546651278089273696939024551682896245377260369671528668764139199711110424969054326113123171203988075363429400390293198381771199588039817865252938530860485924322387535226055255945622467248126539916696267472648636051366043879334971391284557389991849590499399981514778770507082138867901180602456598113496534044152854330682584755328170997987972569076731933919892098957302964408212570301142857077878399188194952666985095772319160403386961545586584052185455552426765688947423098109062208579985928742222472628277633130988202138964246965010067173848349116923660053631583641003876905156731453526649383113090529865921387789745302177788944800322634980158189099085057075807417232375155765117763929307389729328034153291522562391512310379502078195417011284009292285436656211965521019403698106586570456251834055467732697639802740965516201124916540215738280350369989249146018835476116616324905277037985605215237929246691303147717403266994743008020166283437601447111531592881386255920147538047496545247225442852931386301964196404703026940049311789556803984710593602790211528932104352432640623292657354834218493902532898049311810716272263225501349534823148096113406101206816414910135717935249399176671806105540365410076056262487968761997893076067989378029514516372810602495191452411967264849218929172986803891678624195861502621787905351334036098882291011039719969483909378262663834366528394900282834013975166816569025747339095869242115701797668268883917724175254266758055783942502394229318379492309704407482102814738831728944784329936767569876937896210898259617658130722429206693336917440226411104048246910544061539319075024084398112477142388128455105091507652101190964392627121755842784880780996255655989350081311802661799874959177169258047824393834727648934230176130139145705295497693724469204500336346086243245671361554230513983904713276015834358652377743683301497455554202172837830993686686660760942396347452349080165303476946621680802788292816031342057835372978349958393780367124392500196884692692046644658556646888518996423059591959795621653114846172035357557868741029420485242533679140928032167461186590250224131453352890579839007678400231509945314502982597806859160925806194948161781238741593930674234666543568987615913678782357093076324465445274916921047570257829871811492214044750447608567779556016858185232137485653866347595811884466841272036094753217163349455138138846096507960429278783317726574373594002959299377960082538767308182504715145875558839498531304184186362696432761981276189537115646982031844771844096839990883621664882367482193371557428235789730000282890013141706118408467246776843711090440176643407293867851441898010622120192192853743755654857628536179041553716736730999146492444792311141659968570103389984975533183650228671731496177455142055175689831708046646716537973734194054898670394263468250686631638808323613170919976452966757249307196977805501188857103007948957931315720360146121907251360364563935213818125240436019718711865840228730438115864207350784983764212244204289726917937429634376043922389200394810475229647328901202039462727435703342280843425254316737053033620963265510260506017700278781989575103142917833612283412834020810411551234680810093418300358242877448794940981550962529770208638198357029903987491401691128650286903698713539341339949936217452006417401297862530309968524710183533030699129315520113008075472002721249404729174748790967534296585105052232950846357974576981160813425724640035994961791360494718598386169910321398259829607342568966376244263335962650405461624844803897759411956669645128501654355886891458680137011577613854100430572519153204326759304097303590828138467744182396961007622120013907375819619617497919419241118994477501084816051986545072127807045543893520045626380617669718623594837242944756454965827435095005036990831065957207625737489758825777137264432447952269149940283604527113787170083111408245954853878545089799927054773761416713406501741888205902514649552325415758879599879172048146334459522295847170021474673234583756968897695246988870995174819356351710285960215429387830421452802041274158589553251033371947752807397868524817966867428595600970698984263210432859791702493375144038485565468506862668686127932450169873305913034270557903584468406022526529109506939259920264319044213949674322182129893888565663255306948535761731515431520829183769237626196790838455288803174362172916467770165471393760768696438546854866885821206554259942721740179293047754090490735110453289508017179386714990849433890009195895373011683108260789922786331750762952265931180994611899595165239159378210679429946516676904362636963918058923098261234205228763672480767684490588044277599498775846108266978550974477479569253770416965559047259581013936982068283156706213581068432199253909333544326951984025971803274991963899070767556955155945231632826974487980449349150313098274481045416965545295914911324722232277549205436270794654712496256364025980878594331773482168300162807903188291289089435062768151726784239113789006143146546925609855634455415059711904123598393115149627207879436264173851178095343651211454868823877433570760876642808668224539574441136589704231518787863624132337489188875293775289962626129427924445330555573533170966632937174267821864067108683109396253042043885577226072817695681298372944238164764107382621624852712290424631835248327598447653923990620642924413813462682079807325305189698803625624807504909247271802592876220261511989663611373034092200915523006644190058486742879775327997203784065059058368031456763878860398758953881496944025919731227830529663548757211609545477578985246170484194311860656303508936944885808879157444654897886656315276880306644055855990159171780616735311382433973644139718264240532322668839156735501892798446866773572871961196905114348393818406650988032412895126560715688060776642268302696403243879784852963503587660457979016225317099955796599691954293672856398341134488313052071902722411892085476608731588651850345253990069816258005754094064336585582993576026128643341036484419525452758944277823535613653597049715058282599234794777127539198193350320755449102207446666303359746669279390245167894987181328168524310755878313581897484153947817484385265503675767718583811884184958147407317889714456896361205054584402002619708907840701577658088661188251863113022789296098270421156010099716546582780120637855160971724915408185450788373423920718724764037132628517230334355752033375735761913917654893925519237353175051318742176135950618615635426425462211009160892426139651947529624793018869365739985928671011798743058998170851027852898341500971541318005632042318703845426240698983762272835147949286366923956045225280550784892870958837029638703217656565344576655129851614246319464019986243093824451303700267985730951544971001401957776713030616829962627405733734001747410646594298813810316168050318910038842605357425690457961121751140291905433243436991098232080943619368583313700248561217859027881179968777232983149888646202490285171790724283250384779215145600770731905663889485967069554366235531020789656556550399130873818180463621260687115675549141277855258500564227062519717134634624227524614461936132697407033517827688631086430842272491935793270429507878825630520387163927424556599773286788977852641494409581584572733590464301541037255717426451564644170800182967450502349366306736947740350668545499199262428973287498720971201036045534287472422007513871435945009344389261438727974727268963577863473980501052506701890903177536013273455259312186921091277986822756776142124616068831893489588363571580185246346819419866654719198734199606832120060933242032243390373654646838924190419000433873584814419276837532333547875278835137615660567557283575656083474745197046251025269769613366114726521181719292833804811850693967679356782604862060992984388631751031494997931115314036900299007982312384090672066357884090596699653741072815492253314434907714207352001477679671935081416931810787313054600183666441649862127928716157681246042925134078580534397654096092670835751666536380880041902403178669647532560434498909712961810545250289906044084000054372971205111608858069496814996729947412507859970414711264327665764838271544948178006085116024871876672572163369356964266705222347472815167630189441271521935506881599656520340150624579158941638072090482358169326714116438821334041576976849098520710687376351191043331238192592165824672058992685322631659719835466701747873144118243482435609521750409186109321594090529006480020079883617716499828145942191359865619259600942682138634565617142187638475916671295116586790596514794152446291809593642492321364465340740102174109840364854743965808451336516277565275501237836620439538838443235514567649654587613692419188080765266763193274893442766071236912277303549045632161103246211884511389104908072551000929941533471436911029635005964835579442596432665765070034676356457666304650412171850484264180952984025107727282096225850550966463027638337500291859206172554886580986727789049560366979066297090122100330701719624315018268252870222567993563403267703373972694730870818980809214820901811707062714635698608668203969749854392463551232169609664441048806806524289244990698559053832049577588515549664042845027511515583924917660482511319357857365028964646031643180262953168197648501501001329245750220084308992792925437981469541812273003944913973387812036650999991701648666989107535447643217011277668214233302284142326258591087317035970438367397921812765647046759659664180172448906212198238536964218746038597290502634347655709390031901345086815228688801941935376604670048243248707711940108461541882005555196095384022563347729583486614945025582166992183397281986510155366183828673473637295915409842514554380683618221949512401033425323398395261614388736338233239942702750876468604586253114160564745397966780771143445544384394090430775218807393819344498337644108234038097603489339990557203709383504890258385002432183440565886985939554242123143577488753991437192908720413492839363765699878319503266742178292922907554126389252382669071629792887185307981520072385869096795208556567485198704504404159472074213468527803492130425370552578044382958335993261959765762505174421292687037354205714900269316600334002459888327669376192782630849233571137309729912018399733217222617515145288001500759082509349859874123268589491799004098361835189114216176501192450684575612988736697175601276874492708593826131859698172989819236565359645690424823227360236558762068610107715342117549336211008923631023370852721149865584130573021749241551341173634582012677384266703887372574250132747507955852499636250349435351252202586731238086479450193252823894434071530015426900308004302273935630329993383179410467969965966329374878129598136565105001785986968954673497548515017279056799849704102697095312059140234439475574770685857665304182698827842486074854282428776905776384772071079510791412304066502743626912323021594374095764705581556664848153673204405170816370505209482459349826021832370526920165945694979667347808258795182620366238974599458603369042758705777741540843615107100000252467111944346703412249951961381414489522819088264568522827307750247470438990459492466310287616022475017901756363702330107567989084317604705768163203669876538069118005837867993393323230492884809382145078971483372959820948001742958218337271392119118849895840948782640905260824314787037980221919992976424627452229239542351163022542209061243046961656751165095621476394168193503030906619650857572565915772381964962221926859340505750187763023534658664023543497606626461570083906441214309123363023112000972266653082778048209098464497279917826162021488815921921207756899499379325601440868685832185409111381259748244043581069475443689372623347884974732153922482712413162833164423298537076885605956781872821198202129585669846045461029959490599161000864632081249418229125707375557045138711905952090595703462610673478187689736545789958919297642773635097985471220267519117957543812128453999899765701289762903594624747302058764996289109107976544783599353181874930776646714134960555081037910891610565662249570659532457916435410400783417189323301550217759997317100353594361076531850311148717166239211808721702308379910305071202589724967966742441128294149032878151946942016094735426758544051935121024602918714034922815156535231358215784944384304057253703044902512115427828109335429155758731029585675366087392990208275752839207711137783899100028071396735139232298525865947566412340080955265786484220152985435508692272851276575045351554786746789895297287621077721707875256328677759458272709574220413235437474765764849475603775732240531525736818068769978174102865652356672494139968734449392889170062585607692726278564348298325602153892877319234096363884758477386454589440942722528957213580516094153612974891754891560874885510314251771181981144672310782375114639293234108426151695191258189061471968610186173878938621893176200945919062555235623915042785650259758073831533383615787780758594827241963687912081655052521720276161157405806873962918904674506995550833951855139583536083618867758727872943435527802833253107590979050817275101524498003545719407069706152748901400449425507617799241969561211703215695850545688095734169845373387842826479336358930011692541013699184388638681265695124327926254388330963205987643455380666226514188893715417381809145404351460373135444788796902038684838273542652533192607200043170841954235269192436029456435526650746150255123172444309253435232569168767848347060269968031781842576905447484869115686229635927479862679134908659245155009129226937088514296224653066581610650249427531711307280645344250562712865289555198685789407067571866974620298503933416822543265345711768381934171428164496042167632338015707705866086467030292905252237045541155510621413362904915529541153070923236568584632615285883955415717487514150108773081272887947736514794945647186768479736724335603084393653678534060729359502843401491099369828885523785194087556576463309815047548760520456436681973512462178603088588329880286085654999428577724265265934176713185816662796613585934057881682099165914769954835727550641434871093847708188100146135980524853581304708539343867115516351787565328398440295805206125892282930195155745377086393579682111011471427186903005118178574544065302397132356432256570366358701253536363994046512138723577381783045517216559856929412352840794820273217664767175276087115496146283420043128160215017647791200308040942473592330642161822595228929375292598204438995364850441582424880058890538630036627125017451742523957444155134824844813316869865371571838770577919221216983400982468598207189071949721635661590570136069609698939091928876035491113064156287540025797797403725812029506995620677049139052249124725584021901048794869451716838222765988815112679295621538785236945276311502301246798621408075671271461515776605602240582955359683733120537902183603175680938331738724123180105582763885970471805727292931053218580787720450377324897203908333836000727931338638439371217458712074142892304938055592635633031458281422166642213705518716366962614852465848933009905068047068866383827817053236875811821620495362844630437931214897834052017320323060969661317041276225378539079728543692537198968364756964067020632272766403940227593170033649707101168930675920359300684500405904841097873127477586704395133304452268240005510488109897668925041373389107831825802434180104145802397544320582862872181921897637572262286685005056330789885798422892249806005588315132026101417198847216393165309329478866125822717640084092952541106409644766925617567451414005262704284343909449551138397955283835559499826643277283001958022420586870551371677063317102819835452652488215966843672686025810705067895567646618771061738933572568104802852936706458161092395188593708088518766841727354562731202359544169117603964453674384224401281151568106067124868752700818471897263895822095173516205692055911778923399753236488902196550910923373034079455919355580239443612922756854327665526342448212815039758883912359674819074933393577995815477748893761429059324766061402046989796954531277621174773312765365967240802209196952889980219334680709093689192142723454496468195611817176264347939036117371809908100436214356663986492134462808546288968605080034632941143939445567777711645436141315403421381128775661451300779251866741155429111607273133100353140234156475422649260359259115296175411348862802814547851532360820862768991948439514620876289153587750368471735146510216418080987624758186759503330447541521147236052409410877508637730416104051612424570792873733071509251374033578043444223439300501120744204905597033961447399707250303831231403530977451295356966312802412392708605011964511460181514212623906674296036457212196840929449861182495518908707148650495641456308965786531905387460121096528849176745948123198447203280176788526921228565002490293280562847267475820670301654850157180984345563150943879730735286586023708183781301647205547444151847200480181600667183295289258257295592103882053331568779679026523586146407940056247886617705751520334023039559039720896624762580324520928656081732583001043059883440806320758345343310464151675340716007233356913458236684829021972989126852697556233930603274837283898236252247922294833255360977782853733168358910453710380909326773702909788952756072399801371044176508931804679489692174987380744928103779469533529476900643498474782990735830572088056327112547747127403655173984607496004568986319870923877101180703659543523437858723304924955486661777479131966678084393204121487715002062840883042473031590958554250611238870754452550077465331247686076864822873746558388780707163151581654582913485727467550888247555593900617741879912747216428471284613409440137279959508449466178068369065939746642859153458599193593757706395706616296835195529748904385051780635593052620449149102739026831046463462753363824095727712711545851375344204024809736901916451825707057133951922911420430406521366435651421201928086021913643643599111836965974398187195371282652874850299266163963486046326170840515319730199940978626218519396078600195658992146004797128167999868293821685895684830610609867937877811652686744618285001246779421282864224896353938524805227368101761404752715953308937082838992006252572802939284594866632948541941611304524615289788140431133186922093941710223834934241133057202666871344512703465457429332831544273620790040518876280874637183671815131279621074454175127436710502725355284791633454999888095697607701379127577318289846974288377162726209698514051228459283688551179029109062126353161650972117905942070633146866771878884553298422211919792570724752761370679651885829245512479562568985470831714117991640111302163564148689689157460771592366911471942996784517315831426608331914588615559223926905142297651648027135686094318051486813262031548390321410050389618571517993320202110970738771674316161972007745703484255103881930706510351075870871506816675494273578116554022787303743369316564706689797250051377604816549664249177572063602289593851771230612210016695611295288648649292619647468550329888322449218178366670725431539438785657028260365751115054549439892678288599076461393942288821468915616515784025077902084251513919071227782755335235014314905776192446541644462270931244427072671027760050830681134911267417384795161549551105690273903882112544710124206858744393651244722380812945584428935737549802980946517676726638782425011352709279470804015320005489967971778087305325143147437474952895489509527599409188353441642992213286604724382949988820538846775515956753111268353528219711398850417702128340148925017335847259060832211771205112448581779540941575151749913186107116069641187737650520792347117024916809514793060202375759083017728373853366439187298845779847171588198641547854289457624285003924108021977715356418752740182738105507474480069680968266736567010880410999696600575152132016771919049516965295586683407095132954529355008244127053092736792550025012958909889758248296920554754546224559159185754731439436134600814445551899992079820561010963635499380812708390030858325378080308487923374096043286334591422378710049490721827837851741831459364152213318268178983079406547332953501431435616084418023479878315112323537644485295747161331974682837395957425935441440980104116600767124934451935614679098315417245694683877015730905235778043613250700191646234951829915365234776638368918742559858191816822998491475240392665540325233577747376823657657799103889496278534229331385880659554256743686535776493596321576903897600443632961495947452620146521676544661152208753592249425798450179791300311522148590559221956625049416645900624076511120428330353497304141484937782524185754891748248047955896304865131281808732289465757745861541705356782044516001680595398671688290732716417742757593295615309552591653270948496223683381758447333902346496900196997883653426663860221322622449272312377969520217408118357557505488268290226231594206243930274891585672541836626095368639498160161213605290379165452506699194173416965829856695849402083828091565077866591662432312454144256936028175728663410255138891988992549392430949067337605812310790835189292340752614062830567103718294049940848260933196375616613131510745831828108956426346354929843081187254661134375250359624020300011298369920514808606246154179088620055882089606384837113920319959265769857406982661859221651921587929609208828995703848378244477042022054002299610533686070883383694831165336888204356117129783308762192573380366834963060878383089670456893863876180462543125771135691432080716795644899332252528002780086473725754476541919489030842478006268477940256863810876912077449303152668880416799444734908939941922893055477030071736648438577023176153295470450665999338431228495461461390554420975931266333705309344656780374819265133471528835818410776844942311597907970196488966836705744533321678966652152568726833697676635951879004521396168959169876112126331148902309424794734889112073985041510815586930321813749390182637801648950059213149279668454413085696898542231688413738945267235593255073833035998815311579808056035382589293266346108558517470231847394742013103327958429466021714604125691973645676699893066219417327526393403247796339520289485210957553430204710589654419354315605005459632237691914457365850139281715145742631768437531961888552869453359029082154076857041519497486459076649870066506435408026183422503753202102302286494262422462353875486508990410433326871205605367001775125515879198910062871762147913617426020695232957819031449090348751927184518006692580503792410390696745940052212983320642557317226190799261997689035582569524353506390256619205028527182159179010905191055253761104983571548694035002452906013824135834482245621257361361500227976124423240444816336217597650159667485209327370510961177943965378617256662643042352705665120945370899938912172641488291570992744705940218776899341277876146204239197605895200353347724427517005499185780398614054710413231825697545544557906296589254504255107883160729073765669894261220545912748094926471489468175377829110820882100791580785640770092413507564659797300761324421235270932322729964112043594879118892548144928224409134601771994676097726559333810289216725528727175439628801881668549186591399401776384823797778133392778765048880438480620586051516106260357876529185595862252118598282512186323835753062995708980632575311175449998048130126908173177597574889546973540412969676785597918904589138493638249838733662028968355903998162812131468008502667190393647742867856017064402539874520647446121210744449222017343276687701118545552964900893123470065584542967848951636193712875717122342774089473910166428251799988589649876292372065045376035965742526411201243423774772552957147336298171413828005571501680778891413844430550932067749246773015505109198569335344981501330962596870108808619659914429255868980601446942565338903889475736103285455929865973461814148632875373620007509807285270784028940187584698342434649928989436319873542677898857759166164314461281612313446255450828330872035108924358172988587669175349772780033027234350089114512232156198115853603936274667283398218500003576935219360546285919057350832171907556639222298237585152025128879355987148732003838628590558583522755150580248480930834395393264694010350381442014976277461881555071762865770149846159808594409810732196804092465164064200666981104091824695547680270162260698329645755757865405326753161049145569752018027708129222481927081571564260184599676783552574516735710782481713344531192522312066724406422562288151294125615349412116623594903831239441794284117572098994620688247953751824788842967032298131504702598292263014967729127139601646994606924102487861433336582084890368922941444676846529772497257458020824169905805132840139041317949523636160882149159104836922023289706694124057590882169572010607043577482502627550934140490821472374401725746451387830071193990450292798780790067185511908505252269271279393576671107880737299802493414912655703030752959657102117532513014629271624440615299707030248904701826729788558423449315427453522047298016654119645781147628357264487908550465078689268779323487032776680689316929685677022683601030587292232757432144550374343063788013695557287206837487854529122838306370896631849074827141491023479033468352841597247601989511175593833170870063385880659186579860053074605816126769676908108946506343102005346356357777441238721358895189882596932943282343299726262836812085356665542593222770822974689329646487874785064883256814603708419815524982370085000971635750279339048554814565428213713774272398001428439549317256031806596101200067143842722233188436440540143205803079259762428418419695457045147898890070646709934383875354553383408022851146874989704085850176286112727945033413459451897163760326476802039094888278340430200748389700072554131674124201131620859494331532529044741860819659091556970790674099652271694337078478832984365029124974992882938624958106405418897353299998288669544590856717396742629560082911162303107591861336360842472471736704358431273640684115151725482286660892091388541813927903537417286367743455638467377566739202360178883080511711088689632532470359691356329610521007422580079263938463267216843845213298576911200528575556496740844227223462286511577948387156763971456583114617168561077694745953141296962624224683392507029270913392855981702002038996180534800219671173471798872548170184649135659208462333699521580738891150849019006906902783092479307749303749818493941642491493782497540239880989199777240574091175534151214987448569882453988048817122133356162143415072807414807807450262672059496458342192112329823676003112976985286504245460482727676264931221766903256116316560210514903525195428866261409235350102684823435498558455509190947336624989150443274511787433109619029012924469705494309361671956130288643310742279303884180376557320089133803503227154928354041407653610991074583436460655827368105982428785728176571173102526675701253334067818957455534505467644482141875320603607415924159599377951994166904203875987344241082713125553292823694857789886498542855592082114609171445207641350823665726977009599699868464230385478627393925355560021735926418960658524556090421430484866092365415501637576656782961360216030272377098635885418427325295965777134650685445659572751046463700001909166452157139550067429810705851952059950773248228627067567756592573708800143509750456472478295112935634732834465100992648564650879851383006975013672327122490785143861691800658818503283450799819762653321745025549640811681202103586510621808900462041473751255094946158529870346393902315193802462069315833868108974142980392917748393283186493117336567128878815888597846735078936171488952763432040329679013040447516046966144605215473686152988064702304383059894925068267736172583146035394884871412251838943652153383183334440816476559644910368012749636417386275619108452610185517272366276183500722934256826296113980734929182692475979001750715036969123822212264623491062902404638048046008032052588992773813065491627130729296215376486511930468294813154622047992592401426919171643070263531293568888103873735218942319768235638923858706964945869103244114935014896480755303337968820494808329284966510910363545827965778971603450249427655678013015049070681141366310165760146086331950836190820344070348385791024384852657480260954037198069956964500022950264022886111245269856419466976867003384145664513610406569371523955409151597841497787144630557429626779946905149278364162983881469686671992168767920170471794576696863110497468334765110554708420709605631749029062486658298359597226857140830588387555438453653084130312772525481493868336276262494507404062305162057037280889228451051431976270393905803160883187575709657292774346392526771939001367393146871073638977581597569159366442855911648266098313570450396629582692281422920369279009987322458697839939861674725894484955841895675351575164278804825622896232073544513261006108061251652356975026041029332644390772691218274414079878433610999243758520965985660769418180054791513820981190249574507512157804133324964605545673219996650096428462361137635799656560389039190496792956549247594788809592988513274986596015294508490407124952603618624719515539173157456713085916002324277410368355462347885648484518819937240976119543127371102197359139772088914702030134209742056068371416562890259351935485277056772476783197550595202327775016180841567040999189527368072077225071742094790090266733931816238944648520174048021330064612330635899527897964280236585001065464890116881430201879414481771114319384288694429534683581618711110436448853734204557173120157083580106178843563246377243878175962863912913845619823510353768651672988099636386615287064201485932762646037958594501824195892175099288970593738150538551037652503886068656437001041628090198453417816539096820814086694731247498787296383693812530421477724816647103059913113826695658677363384415433541575988214548283481842941265670219699096781439710091661367700214609709134353043351958615757930698805291389503815348890930349845476705036241629818073914557327047480235673876909667523441567940832121879331164911896873610433501137378326315701193894454276972569426213962784278215642422405631421429060459426478625553091575634000851472682804175042518619717645290986359703637997848185872888834228225160393976887565124913056253665610706562865519809952661965229206783217964230836924577322837843060485113840250653406347696394268590975117796899495979032890544502355246186210113477385174761207461152120368500687499893883278200804749821768375215250993534938316685146248971905131383828245253613058998098410192118047555930456254614239932740373252285791898815171258344606681786863178632349555534819657877407884485415071987846326232402862480360976909576800414398130818312898304309672929295777647017804422849561538406044831733170909571000878318805109236294943917007478491765638948361872543639765643607184850415402548379146500843001597005455842165642504110076611433145553738810416976755963879670942644495971506320456022278098373532599858362337341579698696373807899315403058938743054746071471152769035177289607873715132739920360244319224098248633484695311273238782379623534862484192118537808816500246491758005047312718734507551550798986016269667361584606402940091139030382060930356473068287772960477184847638205899484517574214468770964048427079451494125318572399050124162443082901693313967633655085178332745502857020993005384280799023955920464479273217304649707482632732013867932917780282087684141990086418374890719586757143176953845245112407699681587796032215510240666043974721402475906928377179814489034983263984342609951756015530471552299537202849339607109093929010543961825993420374054167172821328313859366969276252019009103130406167683667837503071700441494980103450051767734532938959336194105614900066861657421848245927410292154773811620928225056030188877630754484991494383905276298400192652084650852356157354424856135078357036217658536214470312358131746956586772172665290736576815773461441902557507425396018857247820063154359386671646914110441483728236945676509968310453466893201269529202463020531234430937185109190015787940006611756631964908332632393340843569148725134895080832537919923290299544785281320191517237964530043246099492750356961667494767998539748125000894174519513489683185769591207069880656505720459090638708676828696913549917488814727942417143987038635949113278068003805362572098736568794324560629168031549987853444643595662807431909592835711725006661757820265310259017861012512753292637757432533977969098491679523397737775965545933248595877402382145097836113776507831736227359234059797503256927423944366781449614255536852941742673864359477333661226185055978743221884252626714644486060426244134639541147644239119759386737205892725147424541755348670991235620504318603206728967764374437651255466097232835250229222672890920760324620503706974108491007699823352247754320516753090510517204736748973281994798965330397107154860402609630157788980820912288686759246049239791954488340651650055620442819847427138617408975695009202228915653828404082329877998400728939109901352083040509708027411488454927616302885308160042754659060197058366207584858139731616842045146601872909828017579319844718704616986385789393866322447106902071910609074090372552636652972331808458314750145964028482882441508752365825597238243105078509794878480035785749854071149818023391546295154541212503875962773707701299610341286798741249518950738531356337516311028117333464208061718063143987745902962038429449328511495018865841059834797957442717137796892260682486602919689598821844920399034754632229691077758482090110601171613886571957575152681120063085021282622377617291587008184566222197197182593106283820100051888118433518186834980813449319805726650600468806163047679764335038433675543403270298965148437442243596931831617609754137397098670672060601734662721940386427531631187643786351452942954525151037955337402344314242265127327160447952530604660006125758842525746098715481414558099008717044985232546055346511662997492137607529308353327748003452177775565250917065298518847776024618632282088050744358261480553291602599367557757600726588202594015984654552170386163076043678276169195972364662678217514032456015697815542836670979896253719699132516343441392766361299315382628884464905039268126842038978957335912622464561402776266540039468375687608419315028317774362992626134131201785667790114436210967172136922238042816363137632653928150291446442275043537592098018816785990913785551986287305646831255645092120779472556458705244546409070116628778628574706492103015038166992964233802696607435050457126507598791644121090524910811685581893229638212898106520696866662832115280848460486116172605916994517089360017733631411616650266727273162564817100912879435333659921365745227747969208841115088623269672416975681989456713281715988820904657718075770225972145280414429083731457178042692229458313428284685193539676793192287528254607509727222985273972456976799508120633613780531481090635261872531935109067037481378613890982845924936032768923765779500153114469480193731525024069084341446167958056449370280417905500013350979629167088097632606387170737599981801207298722371248507408743230401330102185631003065326281955891936007414511761172840812994609307319389528760805883709023129619241210145533131423044282023727945164801396627838869395919104786598861301159368198337125283125314216586267812607799528714098197684654250587009007799906429349708448991542967251145257995034394056529553068509398749103369028388573676401989051422131207376562820013685431086501936963840871217305942237698202125732757475049698121319339138074958917286658513219473670977315118279779435503658748504755942597679994638206536803541293154953490781807945250409412334144048000871689783578989777655304652524364168928943882969429658856481204600995917650821881330120488145668654666567832027619062140548640925101541862361568413597642659505721596759226436490174505423918970778290607120016746931948024650259071436924215160364516092781623251955511137391526683988010699905215143856670400616188709806391612461538321025262220787805625213975881810129301251368244351562567596124991827447507052716514491333703214030211735884250158426700269666369067943933886891065560689533841544238161690883777150005153698662033465236763623040105021917444747479082630303251184315637550544885376167962718074191797352921680409247004500496115725394265985257590435354880905955152106115703056193431517905494153818477457139323488943829959436543751352091944699954449353863335148552895927011242399060171218861513480151909943221504711935136221327979418770455381038598481880143046180675052892584036982124733430751847101514883726223888136558143927613579654091795390311129902110577325532805566595490130527411505645882836731638384556751981956295774335321938702181698775406921442921475493995936511016052980950629947292952766820898254487549075345659781147766661262477234295499102926870925998403112023999861356192039457721176470186596117934528204309402444334228635200893832373574332433294258579926963679710734755410904989385230719673031653813126695539646617287547198354155804487426005774097947310428778841845464684576059590873955537584343237000969552076468595166239714828290236621620364550209503837867295517356454208438165904918262157920111332184317461881731840570209055119756018159485878684496842003345040386872800394739732987269977206399977140768733839297902351565187554593963339221548131273921503123322866457715298448770439567818219428017407434522601542294119889322328116565841169592728338577688128764126068459341250379409339852795921737192596863916177792121516972717598369815145167845841517342375203507327517243243167529542336657010982988551012592012179726170192118270636047634722642637793290467693630212396874127933718464509437132640589071287969287869931610746739968981320695461439126464523568987296025565349250393523816420706556787541940570948372023598669342984353458578249851650142969019541411340658869744421059303746244919537485367194934705674616410147069240012976364703998218498728235172975571784445672353376297030944829619622282956136923651283730372333125174620513067058249068008487167132503731338642769703058728024185258864777061708299586222802061648121115335400106735932696091146248787139441419169268248124421349625945272932867833988443343604971032962991989443129002758179078161299938385544975826159103039255899810083187367261252142011118428795311565672809747526092916443131121201290599455277188439466892136547044197805345908184282441049671439526658031048317915462386207174866288573447346259546860248980614222096592584909320531550980669359294517361238071676776779155060012478596255135364438840198830937250323691487889626470537061286208597477225327576338577595341574842731136264762654788301616579683231419663868961669161448102164034390648908226806093424536172243525469639739388478735981245544664574961089275543194592164800016662518758549172039825941339590596072486352234291310995537594272757498828979745333996680875075792610449963561792365914288681371470636672312035279993757451360546230417646447134086730994850446068321828060792420544300769255256532219768787096508050296957199542608509500283583157851351433828965320660978212411466747735174636254977122085237114598700461160087160892649283270154900880460435966599766926153162502235054889863074166018168325804175120341864498877753830545060994594924700158386395994885994299059836400713145639898389083951907796862727036777570694255906586032307172334459859524802051953652035085753548531001048681249239664189594230623126813859456993036008798967883006416548754077410217536320281792341110137909567862323916570974913520728901864889055069591533637011258104308908794800767333898835838256875926194478198352370776905175072050478115206674037654328277822508761581637981324448774495630157167838960747144997678812404698014675027633397461473538216603434092089871386148754316051919193721159113254507975694096019320571663619772186645474456771384567363410666163868390404024070657032830844686257795961804413915582750756377278578722692899339263276281249842587026538010550832630075892269418812962757611481077053650498863531930648208302933055349161589551977467087344273796345896713031851123622755493043407196803031572561720642012410596464945558458563872681137956795156059871653298364090462463914334417620394023986550842465113187542657828315706301778661642923870967496409872384893952208470984177250762355569103297588397520874092250364969098364949412984224321289090956512699174486966943597544240611222854726827356093960178211104035924966281100595033755399560008036758374919094542520457714326214617705075555384411890561289935914995268912037496817339416651226208802032504570052026903845493930142213060698122259588333624962997856545762347065593857333515037358893024678079528004288889381862353928613209229943097465287150247699218107622544393596674259657777665117604542825659966322325317283416177317403733063832464123676476740860929894305984722274698541384985512840414810820344325429136226652955015880328320192459483650152223524849467887981623310042688320879087754501903954074067898997588031947772927541475669147589896014685316399354692419630582461973836505008086231189634155819394801125967938084162124426380601491160438227070372041167386296507070807843481577802273184252830236624469543740892950996956016497679245616856905430217220572421366778474955146876933324323404023836333247436822057489157651176684529938624134105982855926357869084474927625872704062321024940226726166421411356127958120104096444814626524636927280875360542521662355228996166290964351207922260641939448642189321737908262038665328516638365322285796573125016223053395219531989713014655927141078238332995439403036202368571598741951553471287826727467079653759814284622980650664870117401836108762106645197372164025933942342803222645140031399651271400457367112891610862611524450473745199224404161525152395272230556392477838224220769952594143688276803231237916196143835344386579623212715781776200538494325822080413381542380348493639575328580213276943955321169632591634583995907151248815620136492616294700788098162031711819778491309548484460217911569220091588233855600239224451234047131647920233487860566510541693712175572910579424723873473945822715079934885622159197462404986232314298908783570944044715091180765207765604721817131285328150282687996974059309021035588070832860159467251820122375030494370208726003637236203209767103268203039616156340663802304367570056593846044914166580986516519395133862016641778042771219482253701352265105442576872157499388791233310234285303518053507522926639875477989130063087273814672364965088442325529310569853468815048623252949259499103631263959009878194895862492985064163087896500128235679003655541068390514169154588605806116014917216440893665920346093185343919996204759078697072791268719268483103636111275133205781243265688083066949763851559229101030906714754950251268624715263256777069065101650498234994058307030463529533134520296441317354377794933136558950997606889404703186831288488799223713624158949301146194235300735644064664914395392950660470864527091091955458358915885943650452767495356916143813159169898913805091064068187636047140491645957774472443636827818510278610344988871619805279989290524196164679774660271494647563421662295160466253849847279310764502316917289230627034545027186150654646416238317942303531628022838094073536924379276110386707854579786157663636484585979984752409010142894467811978106012916984346743702195152025526842647190800134595838714709429747996078855596264531017046292641491751285086077317013615964589233106007892082707526715382264988044034258172470049776963486557639149169833331182551405547919439262245359976153044757313084493200511881789696911188650931876128582586791098891593607090196636786966665201787217828006841908923335499779338953608675713994595444124988812594744970028257405789071566306674479409471377657013279644372517342477624574852551910814541111198934942641240871133152925517836919606247157067196707656326998833869133048897890318590275216685288822128989558781812372819248618800253315186331500185906130791230039008218819505918904477383440397882003296247568939073164158833256755342615362161467986691164733939111544256877007423801432332781527069451270585877079971719737900950466000724486784924871043104859344451669210478011532377518858341043498500184810625734974147191494914601751211082295125685055618084113908057741799187194503206809067332929354529418358802004181589864188696222698112017989505687468032525652419600318328867977889178400792060727612675028886163787963751555161089697627989605738598369352109853266151730899541636319552917953609383951546896483522662162940615618318052532264217943855058547951157191410765802028015904248867044170249571766364233758747494037699791173120732318212418547482585668027288270495001747710477729961721517407298830055365318685657553789819750074930574996135806556244885419650241138213767238371847875468813550815522894850750364622012130711464872708274858432793728097907522323383809721801282379351831977161159614313599227503290841280301685548373838683243344085679059937782280355438992216451807343951423250270667873128825009458374132748354136136777764969000916750424843175975663701380820567225741896557042828306559419719803752347743615438878921181436512913791247356510372838329651993414340512539376035007689935670863834422866704485328460107444516186000311318531451997494878580321929244678645367095663846202456901968472030846330507673397287924713084144016015106116764811497341234366413587259289767193034531637524820475990640476706928511264527565222975430265090689569503272778834577126607843782671605213278994446396114612208370390846940851966558599957402459839173713613220619403986536691169322786227942288285290760050918096076736717181225847062675112788143149776587519215399352126517653702121052517253763535080461839709597289598381775683645661599187951393121383303238593939826301665847277139085137893158992335620372664254951277486986801987603495200619808954326050999850824535217593196882194309140358094543981957013503738363918304345755800718580385396806697329200665760103304927169729490270987622954387781706988062369649238874406799356025526353548894690970014865028148917915381975339070044737333744767616811663203129689855558976564945722028485273741498983146551235693120222000957347909229668682635612902830834733921161789092570974035895885189522853726761655738398283911798299025438709904946943710788853158427699610083349406596967366932312504038721915578028156930534723699144893082372312580083639997718096589883599835060264953821557403536791790959693993521683866998369576271481634220859826601073122928533525667659783738363881907386022287193438009720340126425031844271247259895781677226436156560980366025025934321684838956643625172855700710232453637182482860399152022564596970963380071068038082221943980275280556845729571911385442965588122937706840292259672885240414748301604168942822459468407327788907688954147364427611384685434881409591801189585189557993083981511308959284128887284903206769040086738738012138644981866090875697637562868649792375973903515837037417751257310571567887170765777945021088658459815011582617806855002119489739168670862594981547529747124540549062908820677389515581823661182427460317304728152365097735810955013055579029509952323202031516595776487228964387676116387157134287752632902201414892999642205783808354542372791612028055454117521576341865073532174959384292638482134404041609604398164453403588102079800355387535927945971799541868143455771862599878832958941443139390162651672970459187342243374496996626620255921308423824421475415128083391363991249392159745312178595246200446730515360759313686742253319457349180712863043112185225384254922120635688472510193937535095113724280081002194011355810379663843112235910702716350321722104379850205588440196531790456363090105415734699423409789821012823462293577984528352250923247817103898950526419904850109140423845074955312697856995272571070064339315796397213987887133156522276111550159419508722738609354781711726380391020538864428861934665817874769007024860910374139422334408000186038322458494040345690696492854462790483965076056953501705610909189885570449997176347541829670660022659500022565730198188584860327149103946255652528071801036950653568439941912468913909867851773881609866429334151597649774229201181584986117468979935041987224656959505153857256735522872475384911246819170206379187497891473066828536133360210115722758371955915316863050374696226873254694445590275487137112812530660692630423947047087251515895083064787294733613985588753284192529895784702363389403233948130274986766763882870698566125323492056347933723645509882492005877120436114982593627243336171555390236205988952632432255023717517049668843080210843039879195106809966785347599894679299681189210371763894481762168631289411937844571602144554740806293753832403285248686477844693933304612693885511072109842266177157453295641687561262003447084977805603117251826629112868313797365724629970992570527431318402568559645024995319305319366888372904483360757767700445310559033965588351081971354467110176004117565644243629094687809567236572521052749038995183468204319805854565992589096072885714560892965002386931987422648712081254443534373493464644517981713737208095408007977978119419532915871042039990384346532821329023307708469495609572293234671184682645630755790096840484340586940932364476798371552283768884710236030007592744228792186279134412927836390663354471912579258409166308031970534471758759332614026965515905239506366624000837850879341754206323269408661769991357149948871514039909010020400939823071284996932371195203317532873708845804937528528832812501424139226754687762149796702528101769349499726827508188834525766026326996854710518184713881264457326654433117079710933002784574426218690192820334951613145766009999451766581411475646354763855814200813554115931515789622788524826128173528090263322649393335882676408720846404156144064709425912667589144000491257185780893585283555474632850076336547155070320128051792315763810976377456933661843528242099252935359030835350144870549921710319632146918002203960620442177905114511688904914515542609226017930930413046338583987479154438877579976042337760633499814413049721196159166411984107689302049065617783014140694927554876305798309656236000128002382755134253820458829445947232295257493959825196340708144252879548084845604728047160991326321633773230431476202678122482941690331866272676921856889228749994582786517699711520687252946069317533437449745489351971584517341901003211043947665097431729517483003763352087281375838704741479146190930153415142537913850402167257322909937016732418957780836472670625672135010966312425119009212115076694917949896338122543197781546314050258254000234023417899748785131887064411877778021378788035903642055709111071147346767690075771799261391046941479238888152343105956421103036312132050172801156774746686332891468247692321913047377150078436873911059111900118124639559367932912557708098789115858954944603166733276772629882007106459484236030491388068546119021604977173366082734758024646188174195621795030130084545751215137735545659301037673527785570703997639703667390020672059825021347944496950014428498496998934834755838991600968140433432980224916077801953789791290725912131065969317082314967395167079314199259007670932564731347722071030603464373997838264950052125723432575173567572481434694292484429116778499180969295965870807413084756787182664471804389383049103518229670787546759220258249117046238485397517069587503010438400065541260881238307362396956356793529783380460317087022306154852692929186424132353695776893242872386797269262963261508626288441178504959783722024800750169759284410834527941208243705014771907345360434914656490714873829825286298289206402360252999085843885817636539418220831541810685866954961451263382604368896534761257833602149027045859562475202102260500898606161014813433169697403676759495394115625339708464811820447678824395105550582754442383113952287361191030496565166645390898066782318023403243660880089328500206945567828509211593907191651279715909420786143240176085120396095172564689541390858941261098199764268482750827650347399633417111257113859078529812348209209055531712551487474976621716461123970033420088803004516493084578526752703199583812443042257227457231579297636165002613097923461216238086981775351879145461368138393760154598570829345629871466459463985395737672324151078158805579471623195742180437679647188005462799564277987805197813832592898507054273760304303150417481713055324916706921870961302119859362924288483213437914628469951719355125394209421508007039434492796896418317801823688088803661175847648387578311655999467337906696796901206843740466440292063657976577806353338546495975602089282750114004452814099990210269233600178692455057541693304574790425713025499233771503867552886853185840666132253093354440274248965714875134409829849613017366283645748157630360512932525357534079473767522176044500682406869470456669093526433333221390784206792213629681962947420563286658056438388877013959175194425470654472298241183556864837739670702338909525199355089295253252860252787881872646788599391679735773199163611638812615412329964753362735861217313687132586504978780147499203756375158606649696990673712343842394612033333473103272112795932874016956612504369015905155796088397310441608830953981446173249740314557135178748558039828221188983334015828204134535020795033922175984324688914268842232402871123976386003366131204653878202270357781196749291068834728462357320810736040767488325159065808919901024513010858342635454089010847395417817625170775238562731691691159340286972279571437355106373299832018376654481458976176508899157960323231633025111669503429148366369964142196854716713393840893216423105526046354258068912809944687304761845690629770113314506278725417933070755031732020913994015284804026330458179724264227680615697715449019822637073560439574182520460538075643793503018426635600060324685367172668391670682115032903947577421966269107779294079405370386372740238645789585786158463333125499961383763897259623376767158076943793691028640820634906524113192272627884249680767333408343214355189892436854957881149336217133419571402096244080086900069608260037837878795693194816211944296851139378208564621042863629878312199409127737008204650514242517422024762930470668057907659575618278402231195140856985461034244849198242332314889338772042568425177782268870715327886410124507032542037536851513548175071644995243038361375847449053021863622298638190994913160432407431541447573708631851587211729725162515324992147685966947512888129816005421780194166575090145981648097321723888105215051996665612413114454099939882141776994076241261067672016686280196376128433418619736738312222308134916228295022472645051493867516529754977319259228341129063573880076701701731632086208440595574757532046980605369685008782315447712795417138091832801510785492664928023046052430673377717921178476969750284024528351595472282960868325266220211359872084270684561312984863460676605999430166012731900998473189560432888047432557183040678892318979995792929475095140364507682236309295966135222430485633929339192972598119146325078156888100764653206207624618623107311916342255880670636840069112585894259306790994424296370882786977662467338781602444965061655016189787420419521239151870425312412118451486326738872264951427392834746338539924168957900300387309977898452923968188234161040518516252971597494796988358886722891245803159076368144268951282985724533614543138175291009534551414034969061681386543935510498614510784329254041751530671632047994150224621675458931189339783900708611859340175091790418934688188562039214954297331724074719233039304693150522593661688256040868476305507271172943332487813140291759660492232189745034076166844745427733002112333691854762051969227271144468942828920224408645626743548681302074788009477625144395969756292214875784190303386534126166281790404456737971631935830038140483268480477945390731363432551579188532159958523547406852882277939630169418384044174084280858067231604483759123211633238936144704592324137298481447378558600764045630461693752791230844628050609102210085343101865027652875667871261554042575276256082469075379101909075792244480564530615437445344241377722889547468072770562272707514408229754884597927998552929331986679745985622107980159429525117884863134925222625955212317922257432983428789625275845242640439416415512796450695735564216265111679676605975751126371281379217714148914231980138559607183932514545670355282948556473009116490581250670482181765147241866893161680004056724517679260940938640506748612941599617279926072970489874454787396446177440511381614680180577916213362535424444971026851803223136849224920803286775417154659733831217219526933597882907303249443217282987525570889300326717152557995094798812843337796367225494341508835588257909864979479638363959247556532547556787371532758588009408482715051664554651911857839206281574044335062885841186995486741186886705766894485996240845906597910997903839243583395261339755300027584134728778661624870923845372969228497650965365201167439304313725124789940085895615818013379012064220073918763147015901283421594042491977424803986673801564542301106523416143065813965908029743196228679230636526056232038120232477647080347839764488073119603313309200095241416392899278830269271511154868318056516273577657015493604061703433086228796501877150264440982361430740719541652271139786700435313113182525073281862480807423743762721861014186593846598499620339887124198223115467397194253261798524536606887324231699822399422232611136595200972448642829398541866177009542788896280304327009524705045010761708648354466732907380017099856210445391130315055307932562842466835200633838815535577716959161187403614986296695818557567976715054975782748265788197537884372862749473561271014871454410356846573191708700573212226408820210885907379751741095360163353662404118068595770050012981898134028305450528382517326450954842644405995993168552411311516055890298734017336221572166574851574232192107631607968080057788769476202018933195340598486667475648676180785241766759249691541618459686855847629328156952857328027040692802473320370692301823798380619472260906175242547431696922637752694024588877155968633400314295930592275760049843677132087822208909680493446360737932127772524398965361969058133678940019523647887161042468185131155132028643327652421805777304248578880325800356192576762970672818428143076187716490041383545527314712351445464288851277880234200733920687747283311835962924438309627856277307184364911594959143089695440520821222929282054836932823837148504659095399909379975505232409328281293090752022236150876653048546734963538691900862631416022453349802036724042447204097201088674309527707293001605982302111120603503628111583115413570375457224326559465186848367904196900957595931442146600136805453320814090527147646022936820390777136778649638334568462610490944030542624799328761644518295967100160987515547671200096560088436818751995818123212819029427728106272660033352027098071998783665768627598737854695153062698837606201312671074305548638320622046920335567441449080531288458702701422577810612852542378031156158846247961846781394498743682986731511832172794433549683884396105960388973793337802578744911231667149687959826393200553698686338028754943791688965531006994902128837860704335231333164523873120446977494258114650458619821018503548179611370136017403292298451227286816788683578024743816611757179597583298452149639969313266428869452096782731965157092129750020036020694041693334248133094023292829241942035734396105466027604180782031863772652879360164774551401628839957708237517289586300304815515838863942314038224626610949038275348777214155651530955368934470332268537175320113348487319920553622151829788410076805349788430647915295651891221861741062697477247822131510730943763017355178582040813833159974148238684355362475601483686637204513448546589975401262994405350334750616666377966483947122016348659076265662092079817842713907359065111963212880223946530298136210170647356295940212572745339562043800352081560474771878398746370155438244292052195284775405820433432634604115795872473459499433419213582945645138540584473502289533963455767722613805944566317055492443651398439307833065761849644744448225419507506358400108422694369877521563293316948834113601780107183011238242575003504084865460434456033046200858904199096393346793106440260219463666120524924532149240350614992596644724128633192617344569727190604428306532141891640835702551147505200507986206367994966975851406821206817731173865509903981794507310109147849733853125579721645694821985343079453021206248138929387951716746517912969798732761828106907949701360453924040412255192356728874238485259027945848229978374886112775368647796743469727398390002201656590154181026392419899805368791468498508335979567858538491253800689815312219383103076941212838445734270284847246961317707865360554224733911565107753210205374274747691494445269293059689095527514176323735953554714746565337716803105704482886345047101663463125591549495113111193992515558937249017763242203334944787447733666558700758607874003611794539026352468357498494737583600120602247447310988665519671751460854633762884832096053977011385098787902378123361247114516298626318380989860614258072446042118533154276034292742245870965833877910715326038915405949102196265175921788574820277170071243165256082320997526873325829812278137005891210546571531567670590335467791998110660669239186397625590258491596848292119977910107975932123970537848655580197098151878440917110833718752622902373214413349548778851448853644858762936220269197591331894886104590001405892990878319507155023235692971798643138197465024122888543598150095967588304979167424291412704792757480215250554646975015459424732777888017446401290013694918916180151967080941839553733457700255184714777848320082993502031894512945627055981518187608591155318817950542742220473750985659941123167659100359145893345548458453945791670308126244599160607829406109012659781362180753133170018132718812149779894237693569978490203991133198468193182348429590067423593882950592603270368527882342651639422542242828932578742738739834300387947650686951570724072158134380000354435581930777755082545193446362696462225893743489530354852764226265831898328081173766160206065518617716032925807185948044990285930957362831451356055803740009485803769623799694979259211789885939031272089630596872037100879092083390541937184082594533922726290521083719432397912570143643618243089853049603453446866508698297118627101586122545305548020305194825546262758972722164299754723372317021915126156995897025451932736243750081341616268000384678427419146271668838846173023638116736756845273129837081281957223600612428508227108821765749988014278996762605533725631282376825651966335767172717182524874336149424272566593555226850229102601694917303148662888745970738991141941055966342900751857577492591162777624150671273237550908230753788152720132160262812619419840861517558333607020456252614525250508702355822230577838617422040426297462431160926648757925910754411327709818841061849803262830879313237672042581456365815355346482780117520080786926247207199407280756688544327855104389011662704029563004223019118501173381091207569402367984529828512671762499363661918931880859273177473653316341523378391827911689523865671067665505059502371699300971082231976929780325697935857907265714934382832919568242421160104506670251142753882085766299941550926482867300216195140383980729489536456587501486500062500448893503544148022245898433451353733846269143298916028046963343963507112272415477781427036658098857159578342571061169796798933069971979739741842332443898559553639306922748597115179005092644130910343567611148553133594284825497477324309734295417890348074258306188484990617039849725911535048298763090249746044387021922430975994551004754484067311157486472946672930163022188996454833582881214635591056341564210012156515425107361604454805565385465514553563313073347044073633852413949036661670949243790768327093319735351578575897736565216513077036199504386997891020828709018136917715426635597401319699121727921254824443378640129243444721338788026788563342318295834210992996072668585634821344156736276907940835157856946007215325555192444710173608691690832985585789158271757290717932105916608453099976643067386220583833336519433181167788683324620834322426325226209224088745490217043227859639621936245144395929360488470233362559117171752883680490158527207921015415830699416089433403315873598345768797324549456615459527579962525448101085141417509074653284527160120514142533199732094139899548508384457168004251865137968534770807655382734121965015426084532890470495091146236370048754618824532713159992167408780682512177152244650988312362448739023197448824003691285712764508786767106777291432618399024111440402143536773765315226484220358836401926780977100032177730304158832982214047186620599157216373445492778143111971389506911523392126167210967560993683175222475427876901821425669857296055649150237485032609803813506652564872258307875229289921449379987979929360543543439911684816169105017836294289196236338546790110326805680596928851826098333382611736990876722744912232202700030936094155160995639794730050112522995496434690050240636425282300085103152221347185436312667916171593975990995204806820101626958049992368599322720147966300535746163207204124179503048253166631763754346612247692821004668087026238508962434475263176692124008801380573189416633694910444888891848924249460733056245838873170616300753887806791965814602216765964841298502720356349968566748851794566866423122677601972226807340998716357068418391351580785525399508008193277561555791803639933280674071984778766048588789891640924026927541002767927122979635453441439640818849208583150814383929266529890219498701950362425673037404767928688201503872753203366655346476921181334541528025808261733104212018822741790418116861085083051959625816866896741023058985711333092722389462213225481065586500888070682606855387327398508632946205907158908191354218486280689758396751330152503862841931519745909333617765074136178736507486417428849649297474644730295154960924524089128888858630117738749691518487485023540789431012421235296627305686882893290254488124981104575557386742645609650876818969250100400418176247088439558499926190130546864257522646694080056632712913366806053289724637159216746749559432198541590880542960459154893803496563290018922390393165760523145767854944515277885990313156701249269846417097056950758457343507831780216468385521567877849668895037869077393892611208595595624322369880809719497902586044340990842817704530973131862654887861073924033464827046647977031115684460039019577327735183426521312665518571566772791462320426066378217054973084775253200879031966508122380703867183074076565242146873240479303954698883752788990585989119702256839483222059330200911141228435698553880213741490713187655278944896296175383376938969643965999252878167738881513123934617725161377588505378533415291184071418464017460895704279170758597649083823551002281801866018287905956002910762912257723320203345992830940238824526511140810263202792745162541705404571611068042246342088872764726864996765271509561485564501421992105802116246278975016925737603781278497132590117282754707462026003574035953197493190447776468866315320399624852158020192084162827787450637793045211425208202346798799329176044115884787018240014738453990765877375594906139568436869538161161148269775944869302422615449339786217306847812436774298256702300078477592180418595835781153018330043720386243913487353772355018450123850729925763314389374396889988455181081615132748192079230825702078687346067702258660927290544144419856146523684554186685887819162308312736428499953858542675974569247788956090607780071326046101222872083934841650182038267318346548311485241814519372876474625134576873933075330261507237887892962010734873802047582948089138136007869973425196557054294170550708704047218323264904206313101481137389247249150687631754514174905284320224985536035106319219101441037026210886318709310035559681835818418387263422794649118077709491226718195392374401598932519037805439833382742991466530632524761025116590816516786632787821761100780680123407736536505094670076020704719044810534427962798474329048544831135181549737360795557935568978638275346791769964903685448506838868485235019382082591412127207555860650018230153100088797375283390742813220975870783175048678875376119965171248752431150750040389162619492663897745522672191398455834426613049226514693559330640992962870026596208263881836421366556663223622035574463634809097609732196166635869586895447314313251054182528713111673950145254939319083031039618402916445694193200284450414986147500176112075980477102895480310531632028776817791796687506682161254680346355857358406106000806794213681057926319328095855073544656966825852273707419599506663321756457050610981001120443405714153600990610246968269447440576479770591596454625960191403233087853757843445554967313786718776064775336428790919861198213538091696721706960658682401000427640361137385606592487065612817083648708612135608411266024757086905508432997208240530991391669265736544039766417115124244958474782913752758642191414449674616734444995985327754494165482613054234688913549064032154037642544239067997911292198546740418613200920983406927757409756538380394398090711815961203948520962944614088455006991897408336558501179371247177472006338551667013162239069291801354894285927156781769833503537308515356914031328092276287921004125349212216867132179805585712448222105694787089416054098640563347532178262862430559685384483579683291642952777820828830176837369656208361759259219871423939444818046798313284111220814260852805752250364953577504494767467470180521409748499808026454208480635732705373324968597201056345476165049727150827449311244382888601251887169518633917704633793939810689330080004275016213273530753391683418319491458160094220716746824414534378585186823556410334028554945808914748218960349441454751263563079732427048231976066511618705048842297030002879632234543562672337722761600766803358192217446192093281902897388771191891861611771791945759332080333955916520685252192813220861575795603391368044022174035670795405247467713020645905314568086807403117876374455833967247401657698653250589651203313878625522491181009369157349099454440287863447222591071272902802457781795573365167118394237389057086821266009295713580447802386707250309266447218268402997741629366924784400253473403947740911769728250557913358919598163966132832539998536999169424873016685090403075051536837137669728020782007239398404215527333282150860509382132652977333281085823956993504891992716703209003715639740792399448299102028301618001860005618887610838051718405374726412627727517409215722900563655555188445354583086438624581442972096904162449030882768508210030081237156911573837398096945667449928878067759049460481194580520555363350497204426072898875356390338938939763452606576284029272477087863220106495875667532832990558701304749087662535853059318793025373916393561848526894129450330771665219042257906913126275931238705156663421739070151529673429545887506147278430210286605698326082539119704486982900932334567661715873045769963478230632325779694092811684399564195416419903163883137393886529196835432693236916346268982756391416954494151805849038366784985284993557271811523917133606633290504426250389190314862131662953217923650680419569717054164660209312428384706853497769351795924457901060004727840856260270458648277692401492040715413574395465397932682309823481465060148795411382535173611777666932568021468187392542959444865647245938393808888346219992587135885238270840719270889360681760818649910108106697406394508315683683151620350234440679928679414599859272883545003226110491448735784508054783893493027949959095536937488434567224726748624036353649896558254318427373451191214930734654828554894921012800713970604252047896228677801065786562593816463714112204152114915656834746236521897549226640001416941610448922196923797416446907478990408098905985641525300048614455311728732967357444033416680691948896780114220769694583807318469425444467875052278730134643352699358290985063615225658444774689504954241836961752366451056713430911900016411375103036938676802519854790066263421672969058179557485299505094356677464941018281524758271250721010729854586390269978742073857253159449703692561978717543827351021867495595850257668515542798533239146403817244600488053994147051736702956947448030754153047446083943340153133293669783313453707385116366251532028073876936378069907784040276254430682616115457762451100706822897000022904258619250417386227041642956817069865207654221359953331993856290324857579680027137090866099010185156307534840124827936110663771205625214202165718980694711053218398277572668167198382233278141379806107360573088188308418786512207239452856203546084915025351278525266183896559124042913971359045490577336343668555310378384845398448541884636650015725497428789615718402890666637243739996719949911349838131762437307394046830872295399874367223336113513617892105632399400329419107375380873550687486740454696361149765217199179934894683752914962392158802919911759872756512773130596543755787012471586061488701350439347910709740733755034712970048427937494883974387908879180772056001365972864462578244427355094166877059145451133433009874983411967224222420387467030267273286686813043734485043843860583332706392714526110613206870001605567534226431002912414883573935966622816341163854907128726893936052729737610755933256610421332587035802078137923174756933905992667578290599937132540072999010307000558566364584755832430637181748519799663998047878565085362734990632815234281390738202609314052782519520310627841275167416813050839668798434480922942818878700709946885149557578167789819048055961904309697335751713882238514724479565666851738765592671826832822341793576558280689928802278717980944192885331074471290815371905975711025371887747767852497531460744001631478739468038546800692870657230580128410472212297319543282696753464690875475951038460428703370584588585636997147439635610528327051931988993764140402560601478998161159908805733668952538652104846077099303089916671082151309115831167618653887387224521467158678497966728667385250734137988900133471053623820908528806449758727789880199788756387998393322831433216892321224193110795224293284732130802235432273706521116048602176522923326007903604312500961515904661164159528999255985453094828772721236143064447582028801514497704157264727680569043153183870787770669431172053470935808596906347532223321551261224762607458579694738309514834273214160286311807218709516157054012272546422083704510163540719042359749618270901445019062980359445677542685198050861120375788777626536404846634032204069225242432560880146274261481153554188853967211658044152966980397500169398376699906088132088831436282190914679305700239564924443869325058088976748882038760749262926847350373147311113980189858067073357677162840784586731692936014206813932765842591963848601895888843989634753469298700075161643468148534926167145380505347764638598397147989525376619888462423779791105393370970847464582174173925757825952379635113951919869498317319642143708223806669122265828659832487215206736551688424127786521082672082700923032295637635674487895172708401510557148534949596405947864704129653126557307068676039643833920186567615708623256323176553690729992820107658338046583104947067556758531310014377144209311263760323368910078272630404332090660518120579427102254915576512226724374521068633214150197193126673837378988585043672798040817891913279364575049085002674181338056359482358623513426469210986709762747414913863963931494864718495344927206483741989827773611469625693783588363783368441372821420442032026492426790636863747434239121664000787788246196441837910935364998442587487948220701596415722149693518709572987310876781695396970755250219121450735164407794701608602146561504206651114846788678286804624797447651924478143744247126872652021449824207557978395309381456572788295587984720282000954406025244916408009149197142372108513299549459146602515593405711940504661737463152077102073619544424498247715987055447461398696553042809862592443847878007890970254681368041089540165673642348035906891879405384646205053105945924040082376441014045115379924073698446173664628907700409419519933101585065288845508596881510792041732196635168305451980561546345950973032162383267937585779261268981491913943400760469988851728160521553322092576021142213252917924804488339345855819885375997569499125863901783182059834102730344736130304320501000880525217588735410878781323371094852282865452343382158020059243124250769688807542883374405526779381871011223045976639170127045205438584206007948987562962185440598707113536961132167620124519335922649638496008084287538733132029964043568100724739383013624587200120982054762737936422669838279989167768159172404734610103265715246863049208319108228186380816454395758128240728566757986211346864216169479216939202246991080027990553217427505472010323629772940184264153282223907168745472720643093380276053059367482487210620802064457843523703210176480392546497021118765752984897940892844479346546636755875114364094370484924995584485976062901110481460530848991768086677510924852082890572560198846036623563993439851530582865411564147323756132795457508923319118672512139804111808928896935645342310797522214464360827218215436826464774730711253989228497914892294296706678034505723498021397605885349624335152669575577138136655219896496515930223792709622872588276695762502768194490740589110960711005959874486603644030153762097787688793856606857396208949904635498875701390048092738186662458451129526138127540822432074224238330732697708460841558255220433214406247598616795483489805842101306390916235954488462251710247624337861181566306314248786734520070477193003198463438870717745042136844229201401933895079919099775812497038802657676295231026690078706196930129004388770433574754568624089960194178561568802015071503621864351062905127556137227213637565353034049539397798565923474819356158309602580574346563386310579699901579029802873644458399453058427740490703039389127139210905132227569700193440788881405015569058666292416635594740973849188302120646345213830049820671081550464147610034161529767903906557454072548316544837049670941107505192707202017226660219472130064121664579126389646205721052350713880999044245785538402273058634895861128016489814181874989069320641297615271606921908032484659806163417507243220418918768163055422984494460656148736356657376616195766142979106362517032163274910808560343974695073172277173581759765116551336601799303834616424819786759594359249706614923756677751205238642341048956148766591330289946052423955570973215635577358671892206156905897977319507727789536114456121308453554877870674935800894672553620084136317618252794511360552981207715077597722596944177927118937457358490434584907968282869524319572368620799263693780739111928636616772174190265015047485986760893122475543031402715179498492922956786216348182915431117259244528465370063236923172534483344180360251428531628149371699097713608900569259213594028494843987801191039296733166739691048172136811739390520054055862782283406234406511386266097635874742895200092661104865728419469657615057072089794791398121273874909343957957024343516211512232394486942531561456554365429881203474537709449132306045336353844533069093039523584471861872015570117319758274397026669685374615206329625240353398863566770335063075330760232737712408063434197545377200159176785020120158548944001044273519090867873671260993945387539008702103820799424886310939581516651600718401053284219537512875137130445121533076094927229847445519828199763346851745903332084489961655223727347654239164466944990206301692881933117189245645226290388938789269813909241847195532260921634391606799956798145552279815300453544006915150743665319292640214202163384275725022837454871124698295847009203281570854428362670601654290468828103747225227524090057851205397193553977460415843783437869848299050644298217587528195663427143640836103119705578280897175939685326821203791971557586358394164362745561020765229918197037811624871946867964938873825537438368105853395068751405160999207948015103833220272701633073979631348733595979078503936905440240719964159513912039662633869135341880469366508261249876515577013908598719753799390441596815219946411570278066065131868210941560320002912278012329710937496167499978722960138371948833588310254188663269891741543995144715469107877177073963468326528610340762877227418307448661886542064161445192459821406350029668493018509204913064436490879760120878970103932303727268621878260496646593327274569062867965857047958999205462440174233392087646116115430908920373966130329819582940485447163982739237589857988912432486848681195109397605195981559165817797758405663610047061055107662123948833211453941255299237891789970503427077555976338735640683722752296246599723247542009703553016728038450510549466447181211057707205155645760294402681353713193238936210888767090057073226009699063480569098760857297555240140803305201724044336088830416932041471809052820976390535235741955970847704856897704959006090108056492304107864457173666444490744454385198295777062072971432242055437982244264500667601320111025792408233479578192380531877719122646236614278860721395121454960975251031952400978758198871283962463365755313751942644404308924198578680934517611059149380031968878556207265524153979329159059494473650208365606412023726444369199496779905030444262669885944570092748619474600665197199253658560473040205432758144164086817168955628729895364422308715822864203952862771058505584519777706064449957005766901632678337154405922926288045156023679378153837859607773946583664372685157747892274806930296913267194930590417655627286656666098119976680366759005531940823273420092906538232830388688022579630737117442394827312334314586679597341768531225673030368989758932484013196071972859459300008430794637246084590152842163694725420737515976189150877163088154802747919115549379713112865213999372189855727004026053083119836311806807697425099256019117522111377705231214475003796839383684728686027905978279986273534212664738683295708995338761685529965079630723358405952638521586468370893719583835032238621523528726703559031028681117401474472817657290408553999147298220646516684092426063213354973473548088529860211425766571217027755886933635178688215417365381209124581066965051688924820420800999645202426091169907717345267995910406400514799503285276692230740443099530802285637705145204733521962752554336669770235537320714875667500540305241783228437026130434467360377121673926314183245439047281080748276120072505905538324001629164082293479348308747292183018235835263576263750259164118729772500092761314758840360459613327141336239490452483793663250078825076869513954058439840678835385147516235794281257740182708402635677416659572408921519218769907699338373793890701661422337793955235348689451405569472580979091387656560627150765287114923538829620948735080472785937361046534277682567675503192767250237464159617677675481572334052642486662981934249746133823162103540877355324330286908383940733640226015717408257697850517683329147672463506865932153860683549724658046991310592540293917390084706291522052461258450554746269361072223472997035742706220524804170559677342763884271705626354378530625297765476639961948025509108889378379731142444708220512141453065854461577221015030757519906439067062761301325482550861672346389217107274988772350829819560676983877394359445955804033832320778537318847964977014350633553591288467200810872541213654986060925092129318086736881435727140500095399188903982022234876893337766129741154726176562658508127494298052585260442828596287494906136700942395444579941693668923138172708468906527764841107394985728691790878613537690156625547742780360578989015237941098561269484457213068064153375367293279207242969362520848136881417618256072341083293000646914865826079391581518333894558524741302895278382674857625363535607115287822826368449066010437689472494892922101861232938232690526860066272700182416902072152628642606469750091541142774749731752708046104542726869572286473136197622268679221598299502429015693140300640963249647472130878917168833153772162137433400329226380341215014052321040747590260049878602972371372061657062495381314997466175609914692695520436076713251054786505708070844330886570791477948189411998748162084075769177867335167311438104639550907773374359324571957593363779288627236431169395270954464680291921413872235059377822256320795661454494285600175266251844416494696741423117168362095518910317984072814175318853256264360796314938622684628547186083609065061116499507380324272779251215417202098739316677840397863662225689008263781914413273403706471257192434525354112240488715423866733118139762258722137845188226723059255366859680081742245909345418538748317114812824729661290953931163522882483297052099897533177161517828676191767636334019121636113273588530680319192809090491338163526940414088430565963696578796717187762706632261159467760213301369698088009976456151773916510721608128406916316784268189624549704601030845036952361252703102169774786421872684578882447132921245148202312015805955235472685280155988155245759773682690456106134997719295029651873382475829016813695469675268241309543813824761962385707433711891209043999972830455238070514928352173148854848075565297847684464481245619716677088769061279270134761873201332406762785045274055139975480760032044720951479442888761769911076608585509172001912765205227835106672746852742493405494751248100534092735687083183259122478351999322634623153655703675410359945273058280230112233477864578868661627864232835254506589743240465510373552498924317873609187932277734891678945185986555825461599483686673269133607952836021459426702020307941771690788869989965743162557367788894481803597846759585482508410654478051950652612954307577516388149564288131694393791384601986785860108185122167110546515837328101298836317918084269627626018950234121914167515309753989095889603385416700345708217444408302140906888702562315034347741870512782299430855044196208691753455338875239053557835091994984288067549794454483913038499849353660180860295962613009468683415919377427594981482518983334604286974777968531940478225000462992111885768438385694457099080517290356623307710977698875409623429843205361870653103035708352659271930197781573140563394592942506762592939169784627661557641597336479625297989183650764333705142866720207364784043260838406623042187930142742276649890173776987105193559009767802340976423466508820777222228425130060308650514533078870511204949287174717797637510272277024049360922068769036322175264886115571264579275610082022303070866774012328703915963251113718858075287284924790766090425763015722369386374726796521323045870188873247553243676650728147619370513441389998116495767035307720965008800267511769699851715031227369796570922958187040428855372905922428315778588501963236956630527894251410660607055894764850944476028746855261411164019794808786383066402781177037871041564682176093386865618161857715093712631050672855673481141390271538203725124018187335724477818257541034074225265838848029401893145063670742576907839760822790830679573705593551950431344739164095102515843136631432711478282696153168755430805978544388890610564791749890528141485017217160366377471394657462069864819041618331804753086877720582775066604446969503523122288016926785509682992690479233151583708446737379770850535160306221702705108779097028606765754883139895644410071552557596852445620290551767739822435539839146018924958680646725744481336052099187805763732671084847630178154748696959003073498660711916913797456681630384709597435888295131724514324019099343325279981514821490240094082187866245739724440414744630738584297272899488833440250340598680058040580658672351280897639368613368191279043109818387818961894795206640243405539738617857894789149618631230359601623879027317138309842844441888746958047704580459505623934831535014275049409826119991260911332677415692997786914730025970644786141301458406967354191128741622224212853026938777524721460749122343951298294480853366385491834886290135715599418959928371574541190096111618556952547821483003692855266727650335115676647264109569608611039627719583339289411242686192781812960209491108096441086880158715543606999240374675107479806329544986320417021536799412821272143154311623998604435997508698832471385329067454193562977190542712021611777979381065985395351933143926203523934235718104872686895576182590684249050139770122529458699483463002399755206053079334811863764719635072167184254605193746118356417877406604094740940676403505284073698142717673249053309815015753551366153911853119153982506661828161150844509076785421145013793936909972588364580462774623088891353002679792747357097785703943992100343693934191893584995220899249724300500683674780889218744615814264240111874828457841663690564949614981118551866984341170998507230375922317897586188958881339283457284953932623051447347718667490520032933583645938586245830264275427639319189473543772588545198560845587606005255783981070113962729047880331893559573876650681527202073408490871873812917136926706020639023433578862824375862255804508704500136425599092886634917172512507487369592526141441228737283542263713982843762622394179494781197645328494584051709774423649397921443842121832031417899025943948517086814955572859667459497619921801698322372188871091044186352469897825720311470896985969147715833218598688209800099393954568407809062820521094386115830212922929583598085945893547808160433199621968734257889737848395886521122475983286298804356553397506540151072085971699884253954212000240197085374710496607685269683968596672876039591479761097353777382864134738606159185800880892472357002952637361909700223886674188289757330543550701296973468729698670161760715085528720380607245315656066047100049484609588953997974749280360387496519504390851663115835715652702228961932166771487609046867870461837785351969551600278264626193773434440401810384630996468532275507583085092040952864341900195346241504894827254530401495362837802554732855053363351490708611189717817843444518716665808471044548773979460829958935909271864509922540622839593840152661568435089813147255947183215348359446414298457916657808518592628722773557851918012258152154464060586435185532013627761948497122674287510072336848349683797609612398769056549901476863109605103897542038944935457995438102682266748691098932982776099709761714191340900410427393138736266825408593014904850608310504985928589570033952839810385851377418113171560593494977515129499829840626078960701802106674949498814917778295634075939255018931744695049397695062765880093050043638398936744774917696042202213032225071765426275957194030476699100744776309690656853747894152811446685511601228450364042657027240475340354837692138333328858232654821698739772406906482138095725087890366092619855818658674900163010283083932937835865024362825557892490117412342763337774300038263074090142605267137734184532179105924253176697880004705583118912238518903094364537000772195346717756867808364585265849779653351527191937182090632967280270990922546562191352643483275734608151453081375718059961509309955630415555974557406272795249615074970103818626031706637228275653315836679296067216968704949017755544437338074467473923037631124868928086280625154102519097108914554147629669590143586841046469646112041960502708909480715534617544305504310622281106558359290692743960326800183410149314266074245962621806942080556589589355623558208060762354902258767145134859824546035605622916341959509075283687116859053978041737288603945854331060461599079031370701246066840921589615641990368815682504400423978767530052474548535953386673172988438257468810390415993164624663818491447611325468875476898146877884808529418695999769631492192885023107521096460772113114382721421239291164727784106953425910413988597918797333190864604979496748167519003705685028549412892756577128616295408553273825173850128067734659737221009388870007070468520350268275217664913896006243535558460805623804116263055327794403067173887828300546391327722942943915004940455843074505951147764519507009184500507475051692245689629329388999611168239037936483828245946692543077708291661083209505471381727104270824218670849483284068656333056834059007688670106876871057063243162004286453598215167598441193907569339364092740617654239805731989350565333598473983504843203727049778451574411423016087206632388577185931298754513196663656306116173146248706447570828473146916332918449293721271051545947814531972553311223993709744307728205489797247849271899626131725367852073626197429718923262084717479196731447104394781386817493395794781686726076165281207965544628396775642502715173556111433324657014782651258989945227312529666494864626886333936721214403018552271716621485251765492003329392343580899991253861268916578763402531696962475391558000916704431380209036041424141506309517394573434614331069351202878489470722165207235836700843246833970696729771871908347714255768460942315605178640259520298837402442434210238078324517795937341884835288967430880770929545987240866470043966901688614129499247974957804568787944614972061343020821456300253815218175572204716572584096421385111449958620027760607552636912745885923224810249416576439988031572451578596267672744448350848977305848508863672424521250184210641439752751342313015332866076542054456248914542108690025019858591566554114777709192449729264349293338234846321411714271363356622400016490936655697309732611820728913547097084286932582268115642227833865754043865730239375699530992827688362919033032041924549714520004745526851433218214584763807685184388030110961367623338607819221988192409272020775780738490432385690136780915709505904281377393125858959351982880510619796373314695985617039143355900002427531707087103103694874387764455754174970680311071471256083981098340109317486422586116389222147234830450823577970273062311125601374631496445909527512524953613820468265607061615586766333641888054231137271497664471611995379874756864796330881923976209441791616459612830412418749533767545019528325333506456576749176512893810932146145686461153339600773026169205907763224700846576794123474754427281600809527197410124601120197330313219895519508896833406173390348286751280973419696664039533823893266904183032183530053468883942784959640532676279847714602110484895830895878741004515911330435833808054165928335422373499035419188892647416921746951217615239444895395698694342936495494039261617970568720381830053721279858700124886912578527686098897590735015762171683991977359799376245123007156616262646038571099798358940063843464562807361932855515545524114205311960996811840943052397152645543013344222435826393080405961101675409064310734077405584983124538479010676655402170015144565078641785257141117826163659027449377710900162653981242139377001809638554277410298101585088331599434299220849202767479871654163181137718595270246261861562132735808782264868853613263260809632254028470840994879296301262468513942282445672232542065452577297791597394596865531758843891776704463133357753793770450134837598963891697530152750255733733560376017236229416862054891440328429742859834337152750079465184275183889145921956432993322427135894567858027395917114649804712481082037770973416522621829813541206252471422603026276366906763873084252051957722614323208145325336077930258176346718463794510940542717776584418983498846156658365084543569782169928907854406798742993754843576335462099703762841373360952313069726601694709553746977280286058623078975725815155048055468144648292054816070787961963619743039104389673026220883478366578941464115889823101090239250768843140271880441307643435024924984634154788459536535821742010619253887539029922488779626052664118280265229013265527698163245759826621265884628059435042484505413281904551664494059813474303092294025374101196927105502563434576761105586499790336750676424026757690273622977774164631443319551637672114731580661909487622478579139017941786704743493862241822326181518574810360538019793212562003288776420694711401005400968760093940125621441119784005214613239553003935001894498092394611212661506977458692269443294848881350076828908366616928172739981360700014774927231991032998746591470364516748472728224455948674988199849476736988343615077598108746168659224722475577255566047113518986849966348751238309571555194204521893715695022099453081680669849515440014132263038481447626938764998883014363030273812299396069259004792700173696099962361291562336514733889807105428223159693903559298611341375862918986110331211920674671095654078454359934014304812160402696419914184886617233482149787946221148975279556843869835837758493960303180131104913210306942623705870069428759715503374389160558323872824130934213390103810025372517259325693100277214044211573220299124572478909084496650692345868393177841271857987540842937749857931096258401631306318561171714546343239951587441508037548158921065233465455601536398315368732674977826077726282544063479359204635920116192836271589174158803467213369245156293627663048515551655403370906556293737258148469304461948591879923352624266396465605800152325126119932052593120323222989147946517496639337983112886489008120061941763788650668255120257164536312647141627888645267028419441155107962166701403917164326669036136393336046238359418824771000630561006818111361714672019535871221393461403863867810323199160604274782436504216459476936577325225848900760414274404221231938675109211786208525133738721198361922010551385386105965575302943934115244307939120449534963507867029976376455625197521618296549640156972187997288495305347273767219359121000438986057748319060965669753077007721947708117224443018666943267920000770647807556409997594866188009336673750633457439830600852501231898410847816721878059114403055363504896048658786488309839241520415304300644207978754546811233809206284179312968102855200962334784763028098227492408381110590286010906426641427029747897451440155210589947027990092394967367229459784253118395834519636686670621505800347346183413922877553398276713979775792724469672088773695048426543729404187103000440499597214563199528616108112445374950179942640544962159374136393908542794116936882297138951298402503275993199084577433094338029851491563448584816930316446403872483843149136381663608185824414948129829159463994305181894287420651182024059667868801030161416950328194217640237065594531713302076127951633036364796607629875801570129859425740846562227731053608745403073947585195885976262395487997706051118786130004318474401890625134744291840808386790170074206928975637543647815110834941704517709129976290203526976179270225647129220626660171186966766981187994491257195078256207304850270177176174036139975956843286837166941879785865557916359756721776346488912203775672260765656919414849288994043574382186194657122009406805357760942558925337969895542616390153893049341990798087737020119015809774024464371842425030687065699075393382851252013317767564341754699637996949425475774132301223598650953969890127860908185921566892717804831029384457314352675988213340702695151592542368489166593500760903926917730293856836768360749382098943079124189463401517768679296183774015379595799877332961593212428242827050934396460153888333523711200637266218819951217936731762330767750320135577057931361629458816716650418355207402026257801923786668088429771504584018090844252068482898130794942113993455968347292995729317322107020257384013083947547803523422404710806463692253251455879775262872778857773695762384239296790385298480441610976116692473645853192574004662804366292125676073558466179076834167836698828135265991177511629098589676553698969819172925905281569246524874996216360702070578853686116026104932242367429481808534843831809407804999911041055885043931790278332067757205996016825815389737080572154550028540601687667426935704173556501738820013298294835611070929450160080877143774864185788193039243027376855080242230593303683057086220444469859746174612227410632331126779459676986164177353817743089980561185669181863095967919938330711096631196986941981417980046058553450227103480029274172375226635406730721816452058209017637123541777570229456886615053469888041913893805551861052688997183137973557906118249627112166244563224897125659693283075565982345249788387654582328395106049093348489983527740670738143346208605506365365037943567087675418281575949170576203656791300267509541548372718225585876786409577910138590097820892239271185469237332206374952835602756778349044840347638755732984695048605793645019277009783253989230976736928895941414219598826689466325586699154331228140283125379176263600778011635643216919607367031087032404193716945266183996439143544211275569325771530900058042918900655778484481955299729320515530568492145561120431675959843475790541007377774578300518488807904895430978371343516879643781583137102691231917074228604697811760371351782152648990006636421310430241956349836965880943031029475826792211424538172533393082939503877682377095913725974612851019222240891375153428491245894443745104816465768599672482142802083768999888350386454157181218128571412845977856447955472527462843232309226113283519905334659631820373449403190870708228412779980950180535602390983902647326619025800629778527612570076242498841859990396900396390509184071923082200433514765637520179308948787536749114506735917956053065602964787484891540799472776575782793878283265494679495604033468551009148565843957116712859115495335608251157578350437379817474717381124487060937350336372365134226016662926735542070031780656247810977736474142610003241259143306194944766563052514515408393519772529351562845230397751707570550740732523587833875235297426109011767632424332636788769459054409411207746303640017414936282861622972628414702464384348686227394008019818263863616927039380100803129427752061156093913053053693606381643142563949577163455383517050322110932877040990756082726882755252441601806469273201567802737774573319290240074650492284840925944274124801553218021417574919802115248951912771294108308075370080498265471112515810003658492600570333565819407158002641120556538165516500894769430248068942475508652123539136270487330672626363623548389522194165321606896345913357746585858445235616780694753690251276205358929539034916592657321830678735770821064444040438079288167987033735027978012436710339388141932199741620044626533821954599819185795861949562241745414491410594738263160567874010543530398166163813590350502152612028891206349460883007867297545260989029557951550736218842818770409242119575633886963926885088764366610466651980488080693878666484014693197514139729979328172920470608351148054974894245959143736638671011306015782963804043643907143451847623524069480491101651113451464905483555788123910104896884996726266906491177672072112771031591234616057827696496500761262334868544134678467760405406407411808584377399643147581484153090546058532633336660130440925892122117412705157090372558879564104229321901199933524212113746032584361175742595223931762609183699118026243267462696127854185186825844448415412280822244150897380743015028578087949074061968429071896571719542197787007848869202438908880162553258618754674823831771617660742939108603240324626996384610510683730105101648623126634458242137975442032893190145570036646174586881378957566745937282430063510616953912437328335069739939392699489333569868518863407564379392877293743842311028400478989850837188270458631437816181450489578416673326563932147395007261250730123289926585046773684003196608954727370070984327418876184222228270868052605422184833352739948253371307782860590880204360885179082153567581795100302696450847374266303615659864484651437482553423124990756197193514672462708343357872734704927753690072552594348417298430162451743165379985815127393281157927699208187121798154465017786722938396481211312498776420449219835370169885332333908741702509141681998433757545642121065236737189832657087188151464602737004222190278309204699607149117609184476150670041687819655926671019402542152107623839495673308129212853437981564041847191855147986023341842667493690228874103433000585731975457562008266054452743316839285423236180981474099002296809907929839641643554407668015286992064898801318910852655127144526491366643463630474001338229349475343242795301581383079152828394398249211203819839473068246538251197515923041240013097529581442087969545896119523783644743478989619170960359617914694988058695210063406660848356180515101084628875085259060370124376306509882303538236522543716942198479779331774536766618696642889652172428705044658001846853951387229839394337235865761039272189609427554177245256322682608659334786100902430718674682026144100469016753655226138442319884916242104814365821821649639680761678369992028803045368892473661828410927607113309780270123976714516185696949999231567343787801230163344566617656968465860325554229540696580384674968816522372143919639720888885332043004489409625086774388804143270079288771685263902572090697249684411086976764653100050829107943041055205207370965653672344253907625171899677214087824219875283218319751521667340093183521141486265733678378507432593881249847332692101666474099565105600124936283822530020019806971523687505684478930431401738495691665003823647610704729671520210840191220229687231131270258081345809939133209845492791524271301579289272692528780283168512739384301723581799745389796459957156150916674405852168752550090741113326503036668801497062763357925731138582694602861993203796565495309383163377254123726179343536932342171206498923342297804182841706022770240382996884984525376696079383611166921089564002173148935042254102735491035858375165988147895192430658488169283724907338379134320685085806478828581554900590936830311748508344124252099792321125752128759132742401258056417526670393539286987856202736735890290902865271095725265673661050387516544703193634710935204414508274851571912981236123371425984620812768377105215842718089834958961026656878997316409389268947215636393963008062324456007127572478856678448023867001017589139372264507911722586227825294649304474074784355267657943402677395811491947960652189479639170838037292738074205850742454895463533228754942847639199276766592061359106227856468863029677546079070817534032454599884520168158020213652373454882587548357771279984978417651951675182643352577514835936506538010929656092567237304531414754287163447751158446150022332285104112868838425022957919410120361448952209658921883088875533262664719909539479547888257248416227136076801185255172410272566082790747844444718735099099630014244464468683949135825743270457657250616306963557063734545842368893221090929150760434083287139555379121600227461039127586505523574260454229831746403455609711291536490383287893879576257480580434455138916485968005022723648635078877350183340103627971872708836240620557720835670684388926407699206370575787885632755275713888561496100762403931581362845359923981832679220208258112239762647249337349060359987592539402522062789049590172698486566510980558332866978332825175198912515447051110663579972482904600947893607406028320314559631393095180571663635711987281514148560373434604129449019870769624714046114884274795589173093224640855898646741319311772553006748031590086452536420981276851138129744957396051517798571091757677621907603930931746732345152883075182668559140499936390133471770981290167249525856381296961856751527792555989837963312133343253038581260551502054458693149575120741662363319488259675206453929287107714727661698267377973015864754262558429107073226012426691071382297238496928428402362268047497724083163410163233304006982547703819264647483009492442415977530913629174692197310437272119624450931066912339688476199085201297824889138184818949247534691843384928910245485341136535606397998265674197969427143466007294028969530155590371156265377536905218396365788323481892743869314613012660822164793470844253409348337169715385583869643394068554047531425678626867160231452070473553976838038162090212245184456143410953626571553525447369305523945501750771350360363021017640519014216419301415651514127191782860586403515708371871309481578853090076257537135182754743583584953116503636114211839212917439300368054209515483858700089903381345057370819435877660182558605548086194657038947164029151566445639637023225041736011405568801229530810663545829876868024961154326365784562134963519789238363483361414949535368822772049072154424294107719596066025659935630686313889566437987344850963142923823737677580230668573706070841650286824600360249809721972786026130230353391266286545504399448991659487149619441759045193504237783361769477591625256131052885659095447713766392233659911236560719167250737350961004626806960213513911943350734463428581231804731490694108833393405232557640356956242263625995295368031130835273671745678129523910916522125875651198563057231857029947078615279491967014079263176348954433498050906041170423133794116492191482657749983309983341779826779379413426544228375814538179903339028377105371552557005643513476748437511938607134887493001206995344826996708210042485396903518744467544086842312000541969475228197071875484854216258899327790534418727178368604707215856480447007144267104609554209569502694645961907131463424997818708361547891818702851006386284238546950309584076355162580913486393182209063771257022291885263850035846564490074949511970957795277812569844502535999633333004820455797899830753076631530057777182382001451884893686364870890701870519279631321551661837552132954393688493810614656331140836964050914619104416561770953636769929243520992049403570934734564810790313687413376716674644164024812759217442310057592479896949508507844416901592135703834711020278394263256133363631787296552954018363646799033481885672462461789467413019036692702950272838423197752520896206329114463845327306196389073557905617613216438055369662119240985727773457401815121087598882121838835812049215581538507266857554475983589158362246020505031869781244042848674852202825580044424519692080181519763798015187943206992529759210517053483296055265111792548417037731772572688365569347638326984540812098764769477341873764328814261750966072049088272117037417353754959845089325327944141967200662852950507339019072009518537983016544533022726718273539778375182938606873658753554714171392286982378483224959677303902212033119098347879721266502452604056606858520896136353112301662740079966532732786052940734012035545656334150711794456295913970236345418032676974867867109461136932319356954880622136934727067668808700256913912611011685231425880637184157909139886277986532823193833950933386462104512116990219104939660933168792898959590886934309177382819153824500563988502091814315161096587797818381490245490593213447990234631992638346461691431272068377742419964659772220336590408450934396208905573983582936842859578956085453450957549472435320358863991370438447346492505595044842142888511476122965566684500782210551745205541303616747085669647688275118666406250183868385953414402897019925202840200223853897738739777198585492939827070636095652381816300807179532978453026450639857327887224163859496346422362162834880402688710149801247881264717884025579659133992999405719835909224110228003546541088149531584267561518971780436344666514860504286296995733095352600069118549173669601365322086270739958449404652490068498571572394309093540258642691397702558606466185001310633752818671796647844260375446275669467730531284983921449445494760568331792941858928971997432536604959857179772410508592153990090836203248200845270908413090968532196613046334190917811607607096129859248470391958659018785867143909063376378548728215793150123828163126734958293045946154677904183670373746706949150852888648384837749579906849894354581481536032004876332862388704848051690843992734696474372367307613748236054165384082147005121259730029588195586514784336347928896136135259034587012439772809126344968144869952398935646626585684297363293782301959891431330337034387429483882095636908253661667260998136459504650418268997101813982140439812304527165916663808278932072333275864057926329596381603102051489837782521823212295529341766289816033105070047226732291249106109579547999580046550347013247111548942683805278592707969360401652573783786464700180833051450090236422235440490614140269682908989791877877204500701050786710660290040543465210267429796501467655398121601307033519702096996400711159536940651041798434194462961001522300985651782986891518636946006538777774015939749997064639980466170469386626743647359074654693104493005160385986378625964466320298030628075252888252388398643947491691676354159312285268352228223330988754989253068367734270117585883640913185855637643064788509014957766888265087576065089489154701737703108169463709194207009610338860913586222240316612889059881752150103583050147899978814350546020865943316997071960164475462345065862621268691155097443195124537645166812866360061950221293168268367519308241833803626009368786041028062265245259162805534900659382389442333437122882724261883965813047821513212759911395658179370335218841147001326959952940572995487409381435317428777814922534524847366220776249806934218641745646228739057022872616893010733254055966549149092396895346172244120967319430537848002344087916319921297356538370110680493874563110807288275941406980673863799683147986517704392940185241376066549200678473784613432889909586750470421538707928145011300000592641159326137871167767411062490439038232944698766618256736861725381736777584762674837873369734835363422188528212613144853970130916951028289069484793811822397257939624511985219556440941320816056297801847982115757596848850318826029130121445862547885208171273800821546565913042856583386316732071530667123139161275258145343416613620623858811646881917522331719191769661473166210652009297997594840628164019935718711151328440318406481091982725094921301784478563874654957789137867920486471198798597827380130903500272179790155353823054986081156921947033376218229776486189515367591090908883718533776246305321408960646205386779255921013207154520328564820500834057995078324335039038020641526313159082619593424470916263326517767584993254936779498116478776565021645804478619984060154454268023518822558876758788384590509872001498999443516949692844935466887263175795989425751835298816343815930798914302140643870880795575928464223181047368777669813097258526075696253610986104395966415223730845241512001358429972166649334121097200207031520871138399976906306170717754121742013934776834465441338984390605791646223728579133465758974132718037676436719498442807998404014806737374250941338607558838095960052911618029382900729118094625619702576823548649484984482110831493834792971412694482701288570850883347780106769104611044545859990328122068266804246365818865313658856902190236179940791243351161637343909415329661903566391728651692390239440661028972200202605506898111184351723861606999556070680207596679946365004261878948209869018351008331486608835827460742721953780666913296699268163504035645287947459903091849440729387870409045518341457245358948911138181055369692570088919413258432371680702230039290859372576425743782704383504905630746938342615750036856823867065114947208839439314937266980257499286199135798028433575592396187735933492644794407775023236034448915302669298124481300822802569332315455311873666972521714226201879641749690650011932620676569253122921152680480465263039725371640183824477557396632954801665269546573315322450033413918990635726221430313500803516411394877870143075098698818161213152931541570794530476931054150383072918515424383710272758972628985736272996446804527071582037371383121932855462791279643028815646030043037508158800346814864884197643539060321956245532211358131299011931608168012028958716579019488280776677104158880737538761687640760358080517452221588605009439506088715184439712936544915328808960292646207331044884845278630951331956015610889109675561587358132925895002969909960590822089015357505098789892141460220955515066569286848263725427982643316403368297815766814116538194289747925418596643482186698769942895861948302228399706105270725077113490448353997378431498703341708060900423629444333264236733353556188471336092562347190091614470822660754898838783967719398947262764527084319055819070521352590835061072089529858422824570572188931688023000737868023001076921541973737560105045052618180666392942674613318751454262012914436978868561468565634229390449536098098979403792308324288229764119178504360595179756177875250543804431750240013293159748750450542200184845021366144428835676048582340366645654934484322834636378192552856313466838904063939523301795449593462471362205370595658037354130659739951689636091560026719038784838897921755607453876960775955048235203541613387988880420290401405598765951865907998717147712859245569163382592909513693434195613531859021863824098716016679356180124146049637143728457406316424837008312863151604577767637306539337399170527684709630910559044183565655630861216476930329120504307342964117500121846056471194822777482914218937438090366501303309765194505602328481078874541684381474739360526216434568652612872970246913682903288090014577930282604584307913318921943282066420567263172455960689173557273850944003679388916945622801829075070742182969014616425787196582603738242392963190147672694032950930435181845439383550967546745348952366354160780809601392459268267440532625552247002386536191613272723238101204137592971942945758758383537759695845803084451619747816711050459958621120527135393764589914325930248328159312838926445367641020228475237584848592100601273000784820710371912004764738654302300389223255013183558079805304355689823386788756555918643701349021710586794998321649573872792313096197995053185073825943600289965716802393211495288313552671298402102325255939484624380419056519180807780930985131268458507154487984963919433745435582621380768269209697950590190897818542964941382362302584889288428005803493237744140739553261058553616871229251570672066301342971145784634210462397597965395239107128594025094523082453584240388639901584377557531333282909749467994029995120258462239170096050456200898334396723798152041691067267385112934551552490903817131631513818166358692198773899938860205077688744064187665714918445246827301843849226994583732326291244572780607499889101301267651877578193595388882387116047859776291602716791455462975073680732782871987389671063623689889954966221241327790690407064061621659910264859572300450742883417325613186829177215030825822536232090907897533668551435996518215978791640812272097087585533125975576127883436615746536775040797091878576791779878955772824018114844925668889294834353223460848455140856836343475058832265493512728201761950762808861922292302250779799100939077560665505353532577009819917504900350472345383545435077724403313473155853627021042997388850149448440655623295999125903449543461027086161578755554073796084877705280146363256110449312340213967760610523289683062667675181288065124106592984743579714738420580942782197026466423831896702188507002257246499301087722647697689643881002448523481048630549180553326796447530908578812667841901969782869225335238006814706938379809214714686261820740092866885953537138504767043644314845064175622751725193246773443927980022808162027461822294092320823242345857639072911026569376698963424038076040348664365109421842480714209559850910929774304145373633687925582987304090254894353573869347838927664084331632236240926784545454619352130008845721436215268743975595110333766761536204950523232983624653566020600570647566492483626316163291620269216050843939763276117620001637800909916217241217378769733684002657456176129314612925431207756277761853437500641797562862834284111392361918284900187553225062494413325670946951324658418008770134726089596603041187887622693796837059063202820241606836308205413548477884412424734828949479134268710273667388534680193626596235862749102880641244682769141299664366181831868419814785851845831322579328990771288628795119602180995922264632528072674240229559748474421526687305196459286452134010474935040795067641958214744593775450555426037243754372735701983259985398889827450872485348529924965566335687951102133935318691898478403461719942280083765920890614126044571858105953506210744123103781424450277731555820859528268852529001389762102119730735236080760437398921295883390678162714617595832648584718485501039022564965406131620191682001936515608747490685385887119535394623145170143780111597304689414719916153303491620693598700076497134723585339950640402788512302315859395422556336491020360882435460230389626819196268244767253242696451981059468203757716727683963617530558594594544570725903505582097739909144582077122322807963496384010453808088044158876001978481207401878590991059674922912251883910075192902594984752449270805947557483559842643072448086188701204418796716993527390451247140121925558813916838165358194359761022805025299131950176681426739277571147100068512063616393610268464387366475085735757410652646365817757406275533415048511797834164306007557369713578915284438811454337726334727880586530646558964674738859948185452950472930612933753624843785842158161247566075221463480631027630523963006769773126572813544722765295643357926038231429995610702847630406082778660571228871800146653243922267798410912056737663073484118322535888724536995042277690532783930715682612291772639360756772819151526220314973685522811838488516392884936751850477386149961506330068311305971140677368186554780218005987196057318068049819238957076158280775545866046951160007492016426325200006835693581248404471859263242347659770995821353257638955923450898542038159301078417628107030916125611554364756147398018531237532463281215151041155101946093292238383374236548280267810022201109224596495374064437489503048016767496806508416369636686441778004083120094052202077645945393446340147287974256585279548020538219719094426326368263201348484334494800600722594495503170762538080155259177223492413966750547296830982070152690005476094400791569282045670022300173098254004369737934130211971686747882534852740806270779303625876363840510446985923504613378934475344608329480665829340866876704210765218214181227293036739055122318506999226448435829913314232669501700091634467086427630100068598515856953087529539584258195029164134331601102902452973066473920384021226539426478158484309694312363264311521275533892085631874368582495887555789965622689704355424958769342407500496597222532241286094175893027455802819382129238099214021006547046970886738426552579774737285841176276044092075815975444667877602464194561404381230106169785556827284820493600440094302896809286261288040178560488225328956121377265808766306595676613588127253309975651599937903469120876225679327450659706231260766315234096235772667110546303369879768660637872310177612660237034548727034181600088110790563842518999745615053054343587481847769747988032151022171094112301046117124524114491904527043349111472771187421969568235323273942003122051507006978431784419130714989668973369739867720219038221952236830649868978211389703843504941305923624470503820100672147844831082601454824342751716394699000040771794910391827192110842776688610468415580989610364239060373088959260826572863241826968170467676995302650141486964102553247322490009612730549669935126643168712120291202945134695313663656557515816416436630523130033117793287752427017848192345031956870682822263839271851962179445591318250919492361102759926817045847514339080745274563135773835884998012275125964075158768709919344529325598825620790711703189486561965347037169016474274811946344128493426651729740456454970116910421733866182064176202283741566305647037465626968498510630174462640965353679463246076161936374847056160356031973605282632411186571634883895548518186368448418934316899633373151337111923108283784710274396372568861872390397462436900470055846258528231792104228211986777160041320672613434422421196597405073009047764859639492045491228354190862566093125639865805898730126986058271246836123669550840288607521059605824153412030238809002643555080404470420654366220766700774757745456108755250853475249817239108326522105027485359174971386477671481250312063785906513062919203466011116559259030214819456701373312848154508636274620676115732594870134589610314071321157873048728609356040041245271883140200956625312378016001793297436779931967966734593264688733135767375729742200194508151585633353287633454508649176419113533862518503848129431086724910802627995212247890258442257071348130760442192937478192083579771101647156059869692803185575468023817874406869313962685330111165479189012008051643678388578265213192005711767985229105138052597503399714875060549348772196826139494655810312098290459616175906018870533706891337546131643913297671297261667381532266716613165214383202437725304283049541334263990408766701001203850960321421746588372715070905276109019092970339140635221798726108707771806604040953245533936622375079849432951277584580494590870065609038776527044559074876284515363812344912777866757347961877063267174091327209146756453375602777163744869032762156332636408758545944279422355528285459670524308488234661907151617910504016161985891949537287183043095576395428274770556056790604656351611785820575834692767408915765887344519301573201183240793286203522627261311220440568843422120951476794338151918868801851371364959740536009725074897415961717698284442234958022981718519772782583922211013841782804761289104206860677228113288502155758361564216986132048279689283132342551766292218026659544745167155232514910226623651806910629744193738767086098371690656156953084478672793960275800261648111371117358683845327474537087896258951168123483473401852451564488725736924761497862255963185967827429003985161056090633258169125886492108993418890946928978020171169464490002058800614066108000207166641389289295557897990311371006189321482510381093437341761456462446973296731170591101022944465604505820311342305044395117967864018676257729095825187575111074338616452890058911396442830778313786840886807672917313686795018885483840236435676540589642147708116025292262255891991943001825472537324425643122101924998843068576680693038164706755186016277512808134624267990509848053534067478298502610901590151802970394728671472265878738290566666313214356939116759367246770381389369884494257835595589004494785403981938109391831139035865655845285413481938585744512847273612796959114463411444046225465534211184630478630286059912998322950288144435935530321636915001429731540462661322334048102984641895109509619636549558176696797054209433550931593860983591407847186350792705122993384209827386900499461115100054642489564559480802883318411025194595173297683372019933891136833764273418433459753379744413556279352027006295425943772146777937590757604653059912449348808712490488684489987282569393105964739798656371819272156827827360072601907489483420137462000052429574711504324172565768531672586962847207937869886904162115850488770356503652559801796660770278788641158650949818464978468505074415252650418538974941993977027284672128960506462176017433182754769993305257774806212390936415633176281183013467934074360137297852448796265835463317949821970855172566415801107010889688891112571438042321088082725082980912393338759094962618587962447184888900340255480222154054609504484778026767270073927411297594584850434101017652582282765449652934810796915840629725940286299407863184293855555329028395424791647255891778643362022397828103525755746650821971666537457290930086031935921985166691019212441151614047326648553069629478042586440438635153653564424037463902416485000546209397739360008263716683634249382386554380178967731691426905667378094960691988459544892538746135295582095384068480327977201497442686586275735277859658199184219097059589790361557785454341049960512180681486091918433000790478162575419148269404260034790114371330179466960356404459815164966955775686238998312470543029177670430913157330398481280720082330055024309196024780915587810758997615115739424208915973456339732424574495634125901845416660757177456020065477711230854238889448536582889826801465961370928816128000845524066755461211906735021631924148846801351437190958950798698518377779517130007723165778437894137067805326893879160080980304041474603567508160810726974668739321250676042072792317439204661567156232407456499330642588146261393804155488715117708820665516127909668266450971858948081700585302670376961221246470993173723168221908981880091275194309829716641812051888862211766670283972785267866522023909404283886713392026244701326268845674705163955441391528109135107203390291222420379910258160216283213401463743338356927003412624927228105724926277823103735805711892470567952528382707249215433031007995825764854587875856712732627265554311610529957427172379610107889742763926367339993296168291680383492432038975575893198266728252149851382107787880928005464442143382112617212235207237778822200388382099599709007746391664273622105545433247139094609764369508337992532984271447943824607339830745085022969942352805529327505579055056066661528221035494027045123327437276938338923877939815480384500757923402891052938484682678399574646944060970756730010534990994815148033442162102898936416035842074618325086873062656967351612869484824652512260822386546209953115694377972917453285550250504628112473745610871471262454747594855719286500373875399744511271004022819669982565450381529670908359242986030746905671220388241495637884638648281540595727136500550127783980234952380290038277267838884049252780082284749454365518190166432087265772333497664608763663984117473397831805047767377970089957635966592894001294825982583170366109640684227319676751449532003594849128374871947728874812831734746232002255642937035549753053921457091535319080226827919650278455450277640892438236122253553546657506352619263409755402125263790699449801840957650752408966887939634446005302605683680058946200335659936253931043323635157963816670622476415003577730268674234608691245502277903695878041577998061916450077625487680422846098866377930499378735505014340703632668245239135633882529377750337003311978528104368493017921704701318081493167495204474688499386485073575719806122879175788166218016802753777856849155795934912681139918056782174664416006297881632066897327494545068126095114051150781067722817197041266125802335289993067198865902388794767417664561976898756118017729116072621802680767622203612139688186516718102827920081627179044941211346700794239243742308203970060144900222794844220151061240316782944526531893851413370589184264727381274066140186958228101779444675791232079316809698507115890709534269311580157179149943744935829727545045506572736587316424929052570688544423587917430453502341713310417794488880082307651757100136156169277197812998866804885359904677170172936276829982805780391956588492618158956423288010432023667085491472030316595264173145701972845834004125990042838096807659084074693479907765199037584009114736909896967046638276175948251909621685218293654969613308824753787869422496924822800039489147226480555469812850759284889193022553473724009865141534642460191338027467486307933877811343037318269020500937301837323015868593962264024533818485149718821079831813764864621829944739508032056969793425604298326375506654529708988952941318267393483646958288035015844090471944028204359701062693715057089937137928134826230661838837650467785694742056521846869925728284644138087828246209872690439651620780539469058703414937041470191015991751004164087690782221862221402263462529757194295169774884531993436437725842735791927043446164067749998972248094844910680759169173091091209696797248972577112554248469222690019430343980611901994749474212616193399014979074462891159357595024627811343070590392187569902700276245730185603000182898554380956708189242937454209569590248193925406762884749619179728934354896319029291595642244024073655138681260814865646937268189941572448140283348870871651763684128762182880060221521281132515135281346021668570269534208913071373754715869248164086002376064489607461425148993876036608183107178932743972962801596113389861386277896415400709685285128822941154901841821593749637839761035500300206825636875746299643896980595208892542332024788723267663396390520062884114728776407156287194825671167265957035261890405737000982124216500243033036332666706279334305029401326663780155690326073442265767342963758201910686066705835411089467522347883726532133750443916880116559757779674082342475011053410481466189987864977705482047270712886611714074074229427407272721808236302330560178831157060825167533395099102254569908297447010532194647558550081143487297014709847613432851686333201022320216602104377941647133204660685329011171717368636220554849037572380559497366748461502158628239914161304684996638552851752260557552249449481018179565929671257373071123888210583258199342128666182148241048455889438440324254052956206858991271746579892041644824063304519521209422125939556746678511252863123754250736281520095930977097705333530830212118543665532376710705221344781575325207442822540463607869605661761334840725322937226377326165301604871019349450110813668797822132011479587253173479715332978738815669085279718416247099285252214897775442716661186048663796965805206035100637230299975167332473722806894589559491502522956247792855631936438211970022536659781551317529891625549692637517902603328164416564979391607992431552370138124403706886098548316617544765067877653949194576883471652646703555392214081165996201862415500076700511956148227859674101324680989961298531913136930008184873343756331181429051609578111796868242895224053189114124244981965462517340414982778117417276666766326474956820846948077299187161738104439033236396448345513316925937998926342265836183899341480924469751715864056601385738045141917951896469751363658433119323380861362095354023857730949433579938226499719006379824539791205501324790706928268153173949802971565652912323939058052745415110405986888738466438400739089600098456914868244379510280058304872009480147462899620564966454999779843926877494022638187952558132054340221715448768093826849659458320038063875769448770499020887680201988068713410429800637380098008934201210564047539160900854238263879448112172779328785445311093767431070030644054568392460541960781397218557731785760619195810792257629303744619007094735359784849563048402980476414752794107352573998262070688723516608991150310408718999624631959785257175940736479464416506786573394782799030031408491675997249393538600071612310882785463311340659241472844535083499632128434995275270453905683208254300009949677803712694079177021822004388209561433631564563596411275798473715963353464147249885700556744682579000680026320432937065081201213085905870531455884130615362687001729998518929026451619073679201310278479538184461416420038145964182555646836952383644325289978840520645509293224636287367155092120604130900510405631038703252982122797959005377075148905820674756505029444192146946055671334015391846134583231466993636905790313878369214555871674087704441007573930970803458517693166758696035647875395845898191336518238591604916980725113924798023928351949020826322194202729208084875241060248026302141092435468107088540541904147201943625311312451128825830877479511072942639148371334486533363305628091909459780698807656603681877109427401856206329036237085318849584391486969014760366502089925742789806389862506715024727773843933739600946975129181721936289191349254273828837324013313421672437627997263333492845575141697044293265907407895546816496195023315270044248193883514530143188221021854276005134970686762307943823303153351346072595131713760174656986723147591543554452713032868972580195906429059075046935258546841092955807910631535294464211544395604055344146487570068959458531488509481193163404221928662409346739187624573405769539296815323836150256138004566514682135113373440209350448825819321691319434639760584909581447190074535938570179095103709092237209187356055865350608910583673380941893989387794349815706401560132592312339551930528123271198381443166559858146889640696137710670872107729030420496177948232643364294614451061290492966620105457370365465850694596032651727406725849610029581128581824104449301641750125871969172002812975178346230964674632876981848016762349325117488621335442278688506226995460424664585291113082054150814424585147907609593876951351808201285621541237924536938734063942878274470862786143873466010606468156487848993677548608815230582964435177443328323674764447849965754763019430832502399327558826454700484935207551742056798930170618546055644633748103481938099027713280101339438386894223397040743907931318830007460559778386116497720438465514043229688592700862018851386979689177888300212634775556850115171346436437176917997610341055219903216390686119803377135017642651568126700189057956593081682554564898518624426234112518702445297672000175074459641320347719207401461991606037069050894378065937113831840333976368568636371045472893448935397992558315173164614380947605238968231766017310860799109360736743462743202331126031791326086247957694029808142846463698882976231903803605870858144586834015607520230216658021497865310920856300344563944890006942031293238610888987661861168350994485504323190889048647520568540243059965803042744705896185015625962413161449030831962036908236792794559415257823660249871652304758378406406517802434294265128826382006335895313045134548106828354570542352058274678017379888004284108006462985250813770372770148981685600611620741152995028718757890090752513904123958872464969071527477317224471806893634809158272080703479256908173172125723953036957617947593722513695500030803370662433332180226457854376755921202393077358919944692459623960690711875102342661647959255579884513529800480314373444984877750540144174693180829733865794611219893026481678210973548509185497297240717768268388132280111341638017380773680304542111439693702975641049188459387880216977563539679975665800279834008437027841428810240727507609455189947791305061838549741132999806312617643682066308493322001681340067133390263987235794185105434805212634837217610197151182936570147769654437107738313503433408908011878848036333363042273523373125089476600356131387972789387409865746406190915672854979532914371371869546609927063246413287490440013902588551705399009632763645762107337991864519196823436353412698063861932621177500737895355628150253597558670461761184311953714350424895764141444317686477142280967676992831477332053182007256965362323833920474400586767771026503482933612844754030007747267130967281235002520648995130399728580024857039572157724299867268777065441743778376143277533817944100267882554707961382384468547974727760460360488953420767331437680114272875588040485148175495428244278661777937439020569047702576935585632410569993576436083299435224655348922039348507993847784567822568420694339999196901172077858463134247699991533698542931034559236023449673766749551374078774850443673726635079827465778389604145223585685080913570969136783225726137026247764224163696674381259792114938104168843368628289250056690592177980419495790956862342268045376119474212194643093711414980949879822859483182910337350723361951425330053175741495536752993299610163019532744236263393877409575777265271086575972059826941748170813313386615953736175737221258254653494638563461905246139717934488831245193049841659521044675909072250020059457198979823401445539578951671856509383552781238344890122454817596079972912819872918730061822301405003354447341023828570588301080226949394886785489259698558771176444343802552472390936974615269834991559744394528532655369585862815535051845968401930524968345457434661381771632636148462548908301485215366835141569187595964621618475713385719293743016416234163595518235219204709952564530268558097549836666977929535177177338620278261615526661793699500950844614705496637096176909363646370918102188400293296344657970664141403554659447450610945217665643425801885430443016690981611596790932616662620430654087117319720947365256500550303794551940938639502696175049895020357697114756679547595098799944732073737419893728899209240300128915243314525217623366303389209035454558580147466210556335781983888745078494325807835790691508535211022467480884857713698618187478310169412904158909756425830010888729719565378175979665063445064430893443983143505130624099525243205351057791929334319036075908203999240775360387776716709819411393722084116530092749821747354764116736846276213058892993579317132833396383793306375609187757581237339541018041270689107184581458726615882860260568099324702789414515671202314283971245373136956393338730671600619924329356798520514251091801572637121900272713496204149521344709504053849431921635386350713771822303466480910326626297482432786679632009029049222832593823406201046480436104669153022263132333615918542039442086660288838106812483269680229237106825730244265861759070409930877710609279978698364187898066338328142776220858145436415562489496553400253729953613274316982581595584940298628741390520387734913284098228963605114036009948018232405853253889320152123404719091620330218501562356014520394187072811177232066310538661228374273362052829323313960690578784863075765760043264192010507472967348881441278340032768256176815292026002465856421372998992499378078199402655105286354481983444398964552754103154601739111885981766932890906814157040140774209344724480713497072132806120140247506658581685117068579631104765774112578506069357331695968524393005238650886794649994215051111282766844094654698839530645447861823218738491233222342069495042711947851286715277206297253841461425460950498032590855119739799139350473590866884223519072103168697873477035449528734097641361055052045678159728878085465977334969014447759723434330185886871532532834492186909960590553864516136839731785941869440516256781569579966136759602938266972711557891903448647065635809711263792446751114288248546609483803417281105687252844625382383458099600471176802625016865642532241931997910867674571675796001242090926100117343856173941499090344617780132836157265542186934747648990499618781974536681225078898453002309688865687848957986577269645056913738919075031240536741300475615108124579914621927866281775644002296979465411366032783154545292387702947660653805670969156043132638302158167785914303930033235663138061551822712076137044456477382935274230311622598291883408642975108056453825599301223492956189925604523854991278738210546656329247211067832955183693127736914726004460832128385225922296071169036252122619838914244396596400386399217484397743657636772589409179957991436192864165915854040448794950004840701348431001953075873210981756574265275194554242233016500890053789688202216491095832145702681499831393051129577341208494046563643581445923694437909859510575922196647397878598645783154171495801923243435677477103536432279475243068449114765808759699561588657282854225405698881514533662270383942098089987089986868516184710520723921966932256225521010831899017473963394553637732460175275421408042111616824682720473148701344441796498906982539511002757830296617112734596053573499030951430184898984785764727292205346319146611139263103134529417968674024058842668786458079603826119488492880711677746539186055710357102026102907445990204342444124348170324620473196583914027147504582424805238187403006707163518611847079470730538907912052019592660008526862687258717687641824039498788226990486162914717609883625447194337022782540722070207804710185175329664412597921141734031573192638716979656829194833252167645349545844910926604954463874782876063773433220374956264647769634351395218677439863774598677378989851029245300213259133384446104659334677777714544855787073784175589205605084083679055461553889681512797052556270090988855729503957757694126974178458216740827697459479235552659561552546137418489790023875791524864814118225130435449376138660929492194996014773058858004558318755237493181547396952537903219413441982151309341089142994377362273680157805352213892432867023162920072145511051859182292341169511749900511179593625522351011120025262388787704461831215089060348460116220047238659732841265158292043347474515391655097124208590551094113024241873877246611299685824557165353891380145149898398684499438724935193094219353288290092681773832299042277612219679560547825553375917590078448829131858953267496543363747855806780925059812459287805366077314860899966819323409726559209839044161931087153319882779975885290954390777743331385635432068456710104090293753320276749564038832218918852620204235789820429741595115065715550525383843870039327746405342758620943736220924526412404965736250306985027533004412149824231415112340330863491273873125189578020710560128661784144381105104021512439918427687245506753023567607236404812886574271586091557449779292637134959179675555563048469258558794176002874608762483280335134285542263495256114732842130366839654837475954422694590674658087221984446687812475082688837325771568337644501498714853004222989051726064025872155129345603443112760381370804217782254258852397075464894932041858441171770614127326372962507956260399821087439644792947002701646474211205001397854449793858178938714092381072157399860751099395623824607159517520959438225061103609897756640146407323624801106115388478424003493630020455877012789974862044450990133390506890334191861646565815250447466984290249745498447004240787927064646649140289411362456821801757280065036629845508198347784664733141105927388158140100555871500229649519772205647488855466276022710192359836136920259580887086284473184893668710174070427483600263518515980839068553213876065757339019044892245991615029574968700385990002742640603727766685594172209341663679086509855863670673302922078437734088885436219771243454537302660953636644600787950577560725623567613115812018362471052447686022901923550349972590264850592385069454182930991846156153026302687302562436270045579760671523935008880772644890866154395179775044794034200330559332138661567344957553957111592109557897847107872204146955041399428609046463489979384024984737123283916136430932191772486630026767447931183916248501239928755319876290913763745278220861962173746794091426179850116777941366841710850826284670056901027134207784772880470823019139605641580176537342778956857169578583122978210411725236292652903837510551528807468809525860777301541820532123397296898733041751848912274900494614061903974026747316413616338341612901010287101922202652233132673490119881536700062441642366688801848947250539369967761752610756201369363007035444180281363362508292192417997281710507743129258873709654660527886184802985201147549370496889928200844376907165896160482943823875529158759245541719083617913090221484856571555299240921180037531706894251285507779856217429472997383633640955912502909624174049699307909613394525877148406930988394064511894020339205299450063683476080973304671716263687027779106342042125050738710767730830594181879447298092886485188041439720695275487032369855027058592526541405076949761548436907820668694186995738041042224066758273045293921579982037783549150461336580007460429107855840230684145434072366081140728782506634368406513873288713382941362698308236405234378875360945402903486207859038164577327306794500536781906027964466386171654356571589092863845213193691530729589894700913966853919974319177616728675045727673421089871444460660236665676842017229515882277261486771706149582463043078407426895520709904081289440673268947895798393762775449637098918063771779362074883706555300361688275774096129157822317899414868222336675326582535138716225463361232108953846474826563173417219172158440046067222232379896703845299230851273819878634715805583518861996039662708912864556493583059893105456570605990541527147114854434335382163197048090985133669800707782177153913795687729147920714308881850719656938916050476610807639196364307498557230744478353866352069622132177449710428312730481200097678256717596393630138330277685153446896906518547444792329554251639633758582662935650809604604975846908146680452835085209881816788276646103779211392895032219824609594030788890475226045025793461703892709459166079973765337378156480527685811747778605411611850814331773747000560676718225179634516695163173937539018045495836485925713026324178736795354987380850113993784406942913725595139438510070616541535817613439810143664846862484223380631273543198122476888394449907401291728765094433907231677635706908788144499171415539747424871303744827592320730548855013247212958804490386299759420489531947324409342279113539146661383152056986490383226730945606676240319530204624169288892204393727349415627017002074742682075547617567287501879580144659651999565844794159840830923547668223319240306622621486216079491399393823760386739855745445792895325650109846613150351589382290547477157908400846338782512284662429733349701878334169694445537965800750261543731821917828229713152502052897658518294897273701371406339682876887901529598950424248602646105938828001737472878265477286014551435691486553882190468793624004394074129501626704597337557541828819871683139952314462415744039980844948654552467129801162195316336451419517061665324670260006523920194702417327798766179549339422131770784338162247328258501572471704577672024858826640487472268728460968476005264433120823190629375482547011461137946955727557523995759334059745338295474505022554712139589369681975827712558724226466805223391761116602474893612402075660192991698325469579786384946232968671447460259343050067116211030079364976579047641281514920901217544946044985910782765968260496576651356795576964167126096842909186458006242200791383713212724130557380149881860439923363870301077677957860118318644684947867799806504050768892841423192861558365516154770063377702655950803533129445754231107873197948432661504813626685456602276476019092623102467829825046419019681191393998209280851488148775142320706672125843768894504632702403905607936552031968738814127531259921422493561265984625603126743565337409144421429315543957121999298328755978607022818504854516480984814232224891426449945681684291159060455485225805734766309614585710382551251736190942536705526059492649697289761598734176497701113453192891971915486735749335717691915990017631106658126734095346521382676925286238245358581491250126231030651357757975662323631272434494500817446955801282385919734847896089273805295115331966207757449662423412262693778942222093180357717541312779678432167709009361344678373487991686506957027156245536177537413380717920453541092741992877255176083999011533910350893307566284751346875485901083076308091321745054941947328097904524925574279712444073050061414713440397781173407221284897878447677750759448051253561246578626398399353722818934925079274772123988418101255014130512126518443976014406653978185232823845773194196836227912919455913851039672262808059917096525971211515616254470504750363713808112132588831653673154450280853912006391086392826076657883300734894472029640709885773354598389790499435930322686532762696269483831910880268973386823861438851346018495673944731882220903230959973926132087482261613937818616751766687485777532248852924586032421603759610161757345799530357884921114934299028884949244920984136942600032598570783728722306961355164450428643935117310369986950284920865644519110149687159198960889405959337678840671438003318849857002174474109842166727190628222935405176827091648030876368073192437820487687465495719645064067372382657158484569379525211076193250034883348184365674790538764259883522579631075435004480083483628064590387992248917381384353711791907339928877895182011636837640489511987130622903084334596759287165632006740179613561687588490993359381135913022125852968040858261929482466725578286148647380474041237033164119140866193540608061571684919690633937196405410721884143888167428440820836603579958688804096719031684131121963804947418507292823275178583914864057912584872347636075870156118054018423430238807723932184595293112728419032972557382334213640538232520628866935072013013027940633051499284962513342180558218890508916099166613141156832053942804661413076955293012878481829242030864168573091104163971536610876413664797893688447247800295447993306059154361818319250792145347436892173415592560554371151763928095137967832989120206811118598918866684513703071335777023021920466653379029518331061160495282989973225519269013797815299507774741046348368403397692389346559203869897659909587239587188044955380145967845866941762560774951825308588263685396928357334006173913476479714431703348063355961033684543015735828966466530440081965427700645893950096683051718628862198624699941642932078183296480929919194099822694338840876653702527226082219061466619151267815889445912670671594536268248098777661578998370533546990651500855158684889464510048559889969010993618452799639609149109986968389678729711820069606107394162319248042542817622338577899642389233328107322514213868437408662361494047126377899330666220739288181343036770327267490291776609360695049174961192027016082253114343005766229678094601664237983717877037808971676609046410379295233373336666293068480164770297852900345386189818765390282170185345030322400272066894597915952019610698146923959818697258641611044237413568823841787804943917186690398092731112483736398032792163785139263256308791771341127687825750672925189025583074048431347590583176088961645869147466478407216731503851688567298080455157388593088761478185764008530536076826074863609313047837315918191025797239802228320803722597456562827035682656271049444877662077408687938441082599242488989803432369364615826184449009923636000212628963555521687339656389867263305683681262118221799410843323698575311291189652556405296862904636887398384055825230669515146718344304242703159086962925252864124845883856694309707083126581851211294056895656359217572050452729383658544944267565722130037013522022217620387182585564947227527182952799669546675761266902733237323766648555287564918906789263491569726549857753055476814334425159507589416471351608480894948242772261811711832863471585096533952929452384070701982068046631689516835681296932845572981012591363702289034587942060719203234516354467823577360805339079145849031075390706503106278974067667189017373290726172968832556204148521891429086649093186252771037189338804800445646034499456573877679827155000236035960071873103236933965160462762206872154815233761306658404334065082976214495044886510636079439822319258755721315501576819708098683327008843546990591235520379975287301417259019531816189586541479465605199119816506740847042704235875346563514237290266458258317573396751040917624913388345141381904557915914629839749172982036034542131703649617770184786324266552951381926010589450293117206297426927982032503815271479581304750966241216922236807106201128585533509820117143034263209620015298662725554740134034860341784424242889057203106887548037249113841898920595483342504220174517089887958431573793368202901994609511171510955322407779713546563587026245359600711527155771711162822711624230493356553079627651240098931628741834198496482982898557439073256401637530530038762776998149892184474077619712024896015783954012590444066910260689779486086240913145816315957229745924517153552797347196919047531767288982542397794943560913594798421605401110044618621212551824461077704037725503537806546967316268780213048883174422815236459039022633721221596156913949493918014509397057019720806977737752153149445041898224989268095187604995795380398305315429280936794438413064100417687665554182861911473468425809220108329420595110475476497137448366714366506326061521681350534736170958846724623078463151827831160398394815730020345175614742996278051711590509848979336001581609104790320821256484795277270903746006603598680538690527272409235876450731167560216850879337571807198152665726624100056265171941590466267899336081104424894745394562681658752559891183610894579194485128844392800203448327855070942520112232185904151029514313694362885280879623988360455084676584294601564746507513097584199958873259238684268745349303017487553441105093121528678283731611851358397334002165688039637732917643846316240929957690639385349731907744734964033001593884235641247722772083794582109379716403076454998192010509477053698617761292399297147500776094777737154650722614173854373201814442661187733261869956356884788878782317149664812908048804140332573502941443023995819738782670482378276805807446404957994142847555069898562645878477792386255748039951604257978344374486215771803684198321620920596086293102079541054793057841441670540083042057324863617590804635376219840397303265472115633946647897906487131515302665248763955237530444332149018300917257590864953501748738214869525053908854194536296174613290456312848495286148900775923425992670373153699604121571995456379819130581574618069861618723902060531987698561063796263817939897302231756303794226426655672042852328126505395457688612616255491337946571512241752603227525717658257027678199174618499686681246794977305545842164811505592820537111308440118459482817433982130757893785507430124605191368387721573119151339067153368890517932964100260344485671523557235641351751155164050366269068536815456627540153787513970048984359380150251824604098320620087006569219437061883279529000710208992871468642538099819542964053379113207133847699782761120907244944473509483205260674747483692234342259722889157330659351457442190494878505075156649479158642651165578072483777680639853790747712457273951070376877479724256909331977090310658575935465353353589327988429731238189585006427313044173751436610080074151805266509385247733963952563976649774176443813835980238147984682643435391178261123601835606653776805233895432059542834046441275262098410349269824316753547201942593181109075509272872532487951939843651380814214333766571016190985738959491547230390870197481666024905242975630160661278502784378885282677424425989224667568700714902798902029627567679426003244518931347796563613679340250927596744404563833054975735237566458846226412305590743560465409846861280436071456595682800863902270518213160543331355213437593863280158059150312158388598922980510735883793331586752329857997982066526940392937428896619672871689577576401084265028332588755414676965140575988081836499637428487788995438759858989123981808486550392923652607274449241296603162831432793902611938789831839413735173618775381862849150069763630811593567067412926856200234887936134684020115369604534577505168314590409144815237979510129299454194255936259233319563485463168821656705102648930194489345023149453270464032730971078600928421902178049697978036726758141095265446087041395793905079777056080877156214430528562803421821943574763363826884433080535530814739899630132712034758390829348939414515204627581735857300396765882530239074986485690443905141590392717844263843856726620161670478984182691107238799885933091880613015924316645984954927644006406806531978838320364711293483435904964765995605515214809659050212727550597267532330512858517104720178892950737740824919902960183346457353520540203381744463226485926687098978272866031545233722935755670407698393755226959335527596625960895150663880379089561343258440690598891656678022230695549876386131659953098500904663994304753161285489848348563022475484841167734794167760440010007092788152623727638237035803107833505816836561396020942015888515375034720246502037222606989500776551882528927153593088098838105126613439690004935193635157980326073837977105421154625967175703236922308291576708828980247400189195414580635854983209820206472887643602300486902684128246163137267732664014101336573056347259573187698100228979882940238209648634651462661325487858468060564926409109286765776332002756488808353367046368340282727751166934621420742910992498496292063418705709001233360832109373350035708026548895554425059568880442992657370888485713498152706213885723346912480236325344713004488024801324491072778116394391123575437855342951347098859619880299846347728924226548669662645423296840659463172551824564190152682897402572705903645288894312885374813385509521538341662773973286000498881515397284190627342591238365787399217690060097228675182028576380589319697353883413188527145964185075678033495515270208155265331365969365842728011776276895901583142480924946048827846506542605374446549674827155079116843792428623699867368024649790257261061953818317382758615098008493665649251707371780727384890364986526415824397123050363107992118883645761229275758699697431306907781463611645054972728248812189405388286393806489452687156447622884691229705374471582922122445052181528492217901448245718725764980410398922870514436944036307228450120274062289069437359270257055961515037113888040941324245899006109768096845590916246648262592323749905237569910455003522207927159745935861452201995065086256216573504228226993479785344647926886002128602434829906276566129588632761419718610302413728879001271420563577160518418158918377965400884725740284478855128793856179678564954894120551773158877173215844645390409834684191211606127221469949807600132646583189198201736746652278338219806267916025539530511119181927203182966178694598283125747907223041608975981705737293240640415082970722256964452491477214416363796114353596182272996651592607209284402331608626790351144876560654870963403057816465624888411650850725579121680203239140485972279470241938665473102017859377593693348626880895647381406334609234915191574801669108357345314905663653879448001763808474914974796043603903193439045000809996117656035823540475326497084578569081965968653174468807423473430732805504673208680494383073961650716033448908714785344715867459687285034325632542351945109188191431331973063838307453894900115289581623034885254378013559213798460034772072727059914729244511023212469387616203957107460128263684053126711045516672714284109966671992464289899191313639302687101748137762410057004800269662016156242023562053327824594579715324235522838363932748725654187163438064971335713509860099019361690974228917625745702464438075556231923853880090613639803077311650763490768828333547828190021019650400780079485147165519076241282545564319663235143228400044607106365921158428982739544269538162399337913001591424296679420421137271315876973733307664183836588560110486446025697475191888041248825577728193951476971195172030145606702223313482760118456052587530987586379771999472737518899812112457828821651393350775668715172606116291841277661418868769180861121539427905057114780798938464999963947617922059597360925602678028150992250289992902133351485319407704824787733450841613778116094164733795540071512874298697434051575450058604167792398733910479745376673148929973958255379255412367527889069163155693408820444033609831381382342956337329229304955907973406178357426505067408027460411854731940427938349127902502842393824148854859085554991852476093305735722029771070742394213085568680746947607880503738393875459679561269926471560747852415431638872471705489833629329137323458701140683419347990124845505723942054125995334580781562476770476494444774684142943085716913374490806562910636512485642475868313090377601536494139468248797188665620910277835418871073087858899369078806105219408952085847660429632331502527260659872435306124910240530610018568580999394244439190334699262745216964800607518404611789198460073216370785956789402569517541727028629311263669153813297626219957479313730101708740685576731216946320600817093026723667754290522885896872501642380437939817659215865223608493813927871557785388185481917443263399494385549619405103271297694931114782226714470005898583950361510997902867898795660363551502033398026885562307980826605700552220567153956595295869329958278094912698152251031961242832490327290166335182894422177915565822472060001004117464091042168148231212993257509543111362290962273015150955816972161850853190802747535686289141795477870742383601245154309951398684956390795917246019632371346084479214091511086910747248864369626013591112680611101984918702068968592931651820982088439092420856470094540167539530818245037343572532058347220349487787857918548822683092022675441514282839757524415798279318814657103870110124760600561727932223621368867976869728013579817938759821772247124644453883864423667659525026050987346237237651768317332444765039050510416828651878368331041287734114890138546431847205955803809939866477970053858186033929068163363556217504848594274414274412291050306024718096901923332091596944136300189456196182521563918420582356009009164000205178741480571090701647449603185661259738150597190992109042361309207349286055187583917838451422080628441711303910444078369150420615577917601305628416579452641562553657218245648602630012176090249272869732437072399198707408094843510783738086827935676450365507336561618522508012825762071114914177482111826980202065203738462828535505327230024052203413380375285801722363174495133720838360298150458764701279071683940331700623709922060267577157153253680475122690749396713864110142627524616196564814162324268443473360466912683136594778425158684609473898864658427979208120736133788369152807905180577735369591905947461213575195225815676659675689326989155341159654732420139665926201304223658637984441902262347601385853180387512599600078177958219432623869723508088459665104161571599410505215170291631739724569893551542126240780605392431316529212338264079695920523142755659493664969904192527840461992274287737647888769519556915367845966334094347354399438590494780634880650335270969840126918169769711391468361206860067352484601999546614204019724090093235598290799504138276627695746934073554335069204526314396414648756037903218173103393335918452410672651210400274455300571586680389254178998091087218658013737650924347859087347830770210496471836463227567777416936572624967814551192950275254224960770418821967258503709481506547328517524286627328610595315702241095600685189186027689761885853625948221263006876624639516173743268375189169049972753524401007388264768660708080565992729934484709559847302652117826296681451958291502680895548747465365907384865302478651057540324977435682747588917432559548439315881529883221575648769187657284248866703205914531057349862505684286603004402609086210758935071118997579294034653779289360229561370920156941427676106527088217005330933974757157045399464908931614796174467934154466272651190138590688804060098067031504128227624935421390415754699457489523667887915317066645832491573059023949295093185853994920105964586563470300538918326913825168481399731951697171433153566091518608584512508979573565553911504994076935760365553076508921191404783286854189143643968539835192134878360443838096497985944751051286366182562795216844604622189252921556817848581295620697446978852555377510604401268202652439684988245737188293442244106949024921796453071720062296667394240900542485600660296070299986831751778069816144369380253557152376380923137779879999434874017853115776790593616070926003213708095148484935797854810404452242564365929077697460123430264088377236002920473263580014756203491417443718185900298728238834981868961667095998386824106054234442525889612754978950627223682298030585398047002886205859243339891516309757987639494723121433514107010614242482552510857477668522588765964906131232552279540961904714953207895467200006328178666022850520186109772123913323100619012858874473458576251893483695883429747118691095520511238254971177467946305800782683218778146119664796308687123960647692421530389824021928246114999960149881517996165082495169016667501091560245361734748739747297255478382214328293140908681131219090536770254518103470372526893932646128363269411781591697277723050212963229847698971820413306268420338951038056422319263029548848549604715096808243053469867809132179649665697513224149558560243011265749034697670149062843086283378053188738997997893503024044714770251962095395089919058918731668656173429631323627189459720328231181785908588886343536381344540730563795569239351191502345568313399034893973692620185254744950148185363875811141152757821524505486724250347349857818757039314229632619661775035853289061284384469102528080072079877692239573838244875320884314312095777601940610705035067535641760422406558754019203842005581701209826454696844004882636629937548312286722733153655137026345522373005070640051078032170849129608989208105705588017479817642600701045575142886706441389897769379145470737698006536143551362582011016612554141261430232080720784745499923564570236588177339181026061857320325887291214910473470652114068211885831317248293568962925763792329585594624058266130479948698678842089403305249285385501959509612791015965973166793430444800144225361070736877076648690868954846765320476410544635037985736184554659092194658624859175582361169588904449137148696410592453296764934455714277729240402641122151550063606273415498938669797272514519913754144087515166171247032761741973109261304466174958425266754102666763915480243941766344296351432389052800813227196371559642186427698213757421927602587847499149039254177261838109221650264600872162250319878314221810872794446843870331502284989381093053464014937875416273590764178595274254263285491796478187679806501078480102033370188370146110158085350437935701007286654445640736943160210509675341213995361195316924932688639803831669224716668935050369127999928317440621891238716510880153674164573243936758501450665786116950391357363944330726424581456425289301124638398396588666511214495794875691014867447773522167267514596137867963758170691000714913009932593858117150166722904327561028435940915701937173619291736149399540899234722609999867735308867228001480634790294747026297513979808309810994962839107215738531688071236888511025365253686267858008451764626038495296744011559692743402282031557356534941620203938382925301862538048234438006369497329448433211914454741585137117233918644190348556654106938327684195760217123584390614020346413314486251542342719377295510192454911737566680569092867518007135030268229299996695929810828042568339957864996818660271147359383816558469976119648227612080263235810614399916574581005791659285116947157355548718973273340163212599619272421640367956741461886217277031255391260270154954256938723675898658723852157158690172050742203127534029342149975866117266163747497651293493200652891605388172583790181272439121052937188620877181946625926070285320454299312529620531992857458807647838633661483692004574057777138741346440922907031733302689925555011528367363489641012379496154075271113609288832662439096768721377409054829109188868313771463621359671202124344160800590979805411340767529878397329731208828805246028230635212488979937230852880879186866382500617984286555948524888247530772232692051215097314026776368003521070020959172074875850418532575491218686782486272839869599281395599103309371642569205603868749554487100657986844172582312836428442230881039596867137217176929117396771750894664036525875534722882895788534997319634043677620862635288087079240633679535252797920239875742207043999221532162628820664618576391058361570151898727760781787105203387865468249644354157461365630798856940273789474115960745893760903299937403453078137015312162460073824201939158870758674413163200661469403753291680876441410968798875025200408877958822757041005922558002773421458157189423244638166389630126197889103358100409081612370816508235855789282272653575041435011968860992878336228322489135461984476951345031960452760466645172277279692957917998195539564787587758332612156414665650830604623633098832522606654976446789078543811704317777580894929494838525488972009822074195913534620222673230481339768683407998688139762854706910972462154285771433787626476978117817100411709064569114226240346851168666588352317796225135330506010125696518419090572666221620326991000447149380225820996843926811688538685149710937787936165192982139103618572468167268830459636457846304850217444924168279052853197943866718247819294180967430265920847419819197394868546536092515350429402628699172336451318847127455286402291771903049236688245843630867336543203827510692944504951576775234109298263192229093202850496858735008842659321468126256568776768714322579299210789925545779299278800439997634483179209652544091617457901035604204573437487031654604220932625936606233696497966935920216438949142381346162138178383455697690936951755510602810604857293574165119676492084472261480905068185625293444655627889556767787646709601457268171630178023144870656272998991736265844734291726830303940348381282005165027582633087104751850655510020263225680514250462600157000202597376374620527667851248011759777911825811654886838206137552697805076366418056367752604525263717175680188624084380673031573379862455827951866958894916764885586614067086662783744588534126873315229331334978202276092288634389230802571919866812442511463307523973920636986865375127415980640361443585404248866160038989537666018764578961905286866418910435134501819616612038684183631055484399510275034999138635466519000157595462281606615383723102634272162866567983623280852888033832764489024861662743797779869425834034522292218374268966846792216188051253012958144278764346379830868334340500343639116078295884130600788875518520822281732524853803605957170336316238217624305908368818551502746271908430402197999962648710504264650199874475837829044969898092165481906585609985081184458324526940137589907078937170990417987040379629354311931945949363188536570681537434698900673660435984720545455982620593936796299789370503795131547630594590725114539522818363002107215308718688464531539665254704982863864198478043139730084661407564674577321780167539212427888431205617395939903266577757313324866672959218428674072977245710251790833254631086261883964856222896323843513887783001944103050478019626860160731429675934980931825857001309340578565651989108002267526434505937499461978136007822776247878774710243918849130862896701080252759692471520929012966834292933856446890749097148090775965690516772776068734746032500486724069864897563801186532470970068005159794285051589520416547066384002823236344798305252805272248997736118268770093309378602892772929045458103163825822922633357848557691548921075516054428286453890918102080760253838381319419400178841964020875133126191392027867655144943005554988734293200819797497195216931972267321707880991862826695897685450207027543042519565488734798145367145539872923504837090463512002302461666043539664160539657555016589989602434964550976337307810517124835698807217518281524925232589538209742910848468407528964960159011665470765824721169146171393214412884715814283397905790722648562035571458294151646165198467625546566843376705821003951241611711482990617141549063499670717206616589227882006682050432115312112254417476318050671631711283866898150240912391584783936323174101814170203652639273372321108013075759471764605541837638037281625798501802917372077873948861903586498035074151012082562422542370618032230602461515187738246306367675602727977572475409495623394270894558898713855310448574069416803371105475938033105182267230774029130290519692386611492843655760075137384825594580590396877010153380956654951479653996802699547487679688861403523965829723947374903625644720017067907890603060097622245805530598492827375915494214385609006715519166138054097539199342918088493193099892163949983876695489775189869587507561518284687518286556958321292444894638113780301697959500701139193707833176470910523179499910232933613690322765732363994219432042342402522540508213363575933000178766210047297513892428255110133295221408061440959484852135245511696049319259444442870544120355574340361440163134820355518662770281138148783189475753382165855900710562689411090261984169334698390069044112946035163867779601787339746084082587171596746838641665090756620871767417450240591791794730263897013155866001542841155130955344696923489720942576712786209664893528087802202601380311808257896901183777664500359902232089475894310170316864878757882681154432958770717002652190524538839370315986454163328432420418906851126707461955828539970057626743327432178313123438926575749539741499876855546518079795954916695068086440303044370572288041755848445246194086941874875934535902833125294443207843312035888851806721508671253419082994794471068995289808479019099982608541751139077948419339282440765368832174511433568480828488594259470335974588091893018453722786569913884153929902079998642410619037752424295315386976768900828820010737028957208717314088833347666182755531289800733491818486099838661564263606480335160324287671522598948339575497272246893721846424020780804490673007830267063659823752686284290890585922570950524526783364437393478262730061979133289015725133625835157542089859938081000151710734344975466459326695383871260465652287542838382549960897256032528064503975778463178401536035632957294145964613167952723314533081530868732447578442199228879222985681459421007821241050642943542570893218072014885483101237109732737150343411756864456237176969332879810729644705768374823610494698527302529295759579049385301693476558020516229026535190709282503073051130743100949119111618374608611467599357358761302451346835505693326673034293332748750937015826745494519481285020626403150699730047766802199644540955429098000989677646636060004749339852646591634565109031465771754421479227667949587315314478214408206910305333514775538460479876316205343374226730487916973945266761721038564912843907716473093362725092948040330382207586812508316637157116816734949541691025432029372613303083385862540508112174001729273501439859034256150491461719693225230813701310504598037097632724024469865597083868029659478065167853087521843365970675371324138636100973093716585354262746965988252473483917838024086422128542855366718259689662414247910881588215521367382263180158427317918570154740902014338069409768518024644866990526290691936078536810334056769922289140352802961209038420041366152971050758444129165119672082308439579743427653112644414127703869561808278106045533342124053106307759881448211776423607603868725951524596043507158270059004593951339437030663745868323328653892100395264041064247115600664057972294465332982163936618517473999479890010754110667681896053088039920809250274745166554568887921751423341144539521328006434274208020713841903489725780081540161299488645470838877308415101953287678058619798376077069446009966502629964830804176245459874392031614864759603819073989065156006286622176770212413117499916381918451263073780354860801246500747738331671481669319192793161219441166587401715895488034326533188116481608959447911090315823638379763111809668885049528731500930906845308064280569257932307586724769438528278609097321988686157251983713476241632670967768306765650463618781171424452161218123713860962657489714181270334776338219383640442541607503135864912458318331889701911393398590143251292768838667552444383098323103408614522214905698662467410618404651479791586404005656006876985292169632300475831187729244022808772043440963908456327241489858964230411036178749289684560160958674619084491142066608074870399965559701236078825086217096454977581486185361358259629584059370352704220162520786891018250513355606801789688099842269317796233197945581309444396693203590162522069165642473879178681038218730378308495295918284037083462292215119099936262285915205520096977343220398215065564249980090575667786838750110373558839973166717892211515855868944907214061739627582428618436432100201612210451445349394271117827518481794953044945985331749761805213017649376404983401927132538636149283297751898985728028420470641274909447595358634630391746143486504763742290511485971966390909754139988143697896721288685190340155310674226253373882297084662397367226443038833638115546122552256305420967264975829499053107722395177801358130273738007820385107493561862923816663150571984460002980327922694870226305193721936102464988414719133973497234776052135074672650598447268037628698019007329058177770320363783592127219017172006909013665145412155345698850080311885273619908996036277023396721191139172949625300293110683023039828604449134146969756766308669390375741285409198648644682046201278809725800785563137480794689483749448734157081084079046074798394663354533970310536262323590051683340514298861874917675098520930993228337637057832674221792033602350846988874116387043660820460559560958190615202506942364870976047969794301624152920636536732168863282596646065218608553300106141243387600663446451073394756858330973242996035324469784960634934787323898155887040875027897682943055795309563640936764843404442571098832883708134764873698123173963491900676509936261597906290600644988398158224433342494630360497126825572013129882312058916587188309447809858279047167935163903505515343725360505952403236905054505895623401516370135940669474362613452265428589267621015222255040024956538990662959075305144087023194990484237087796649607369516867647749900737510390579248338532858820505224495882596612469315754587518733864609404582645428592211353484485352205770068020826563702479857596211640113077934161224140931214072825722370015139990531250724418024311628658174449491978377444951713744604501498155073540108554628370994442811793481778376626839996888395929888862556551204576449567775039500682357224081115834899583698723861954600173365311890701754389532126309401850950814493748087441719363447490861275376453136906954980241509921733375114927453663453986079429959003403370661758314637606815560817186327740455712651723903671259309065105587326142439122303112216337965395618816275380905415668422156434613310250438772803537889509050319232984938348365104774149306612374117708544198963709855459426041935374782988006437532057893153270664373112754531654687597824807692784530973445320961803339585740425645818366815762135842166466913866999551699940476095582246036595265096838420219507956120951109753527110500729866916074612046572278185937018827982605254442823410013673402404398686900881447684444587417542748039907670012836921221854418665153240931717129301916030067448543767054087361627755611919620970716599841837679595078470184415491324751004467993937273332679184383915228597167938140193937507498552458591970884680079223334735303439201519626165982867331128826523133650425379883661517768733109890511827890706433342493766178976117469451685652963747253391564325522089920089183586444763762545161657783661395880312668394491617359912735865343694204988377219465176521060980632830772357082795867144060647339274901700987372589873460731741075952117316414150519697025861272704852293913734909991831932726521044422868339535278145698540358336015510291415981951345962030091965911229453794662585459314199957583497696388652043847813716098872639927617600186668921709276103540540668648658171585337385041743210664093056288014797055027926504007525967692695464090732190445798007416610383267122926625770628606957907155922733750487811435335378876049347145098923232438567110299403425307030320601088641730407561303643554616552971424429795456525633936657130470606537041416438485915297510696124880528749642641055555189805169821041783195959343354154921145130528984791054834394912769593349656538238046259587022105262686049827885766169476527067285137299493954975317006455722010458863239455244363812745297570275438566033308420510747262570464036556957302586766888154324580838539434816358324421362813185305096673241677067102498944677564667181693188298254539648054495970050397529636949985492428876544399030764307575620744784496306917148252051211852163454347138696862254309205576298266119038603401774989067760340461923831563135464205432363577110645388400758752637072873495679142177584559127779129636127435920963909253333698475648077586495438911330720003115750334842208059991854464701650484422811409012464954039696335929935486696170226645371236508595887910141492389864386629769891685311138195923100817629045524684051583738099268960582908582588734823148347554626586670100388755101801686962272687423529132353687774309928739595898585542790100403079985726952998232908774356459505098418549234587210319046206752946386734793241312814203279393318601741887946268870631331109271196511149992733767651353547067534484894280310970756676724516989015279723597361600569145033766317220165415601425053983101692574423328461973900000216996370642745083711816920111139937163309792276687919430471104459676147221128172557729163448873987709219639091714440667722898958027918805555637274979891179692493051470195249347769005696619444401290030768701773053536558999367351316488381913907546337284569438126352360821154695562132877534566126042201224488522653730925389038264344855188550450704058811356239116689695967571228221510415095889135926231449210667048913717902665290774606972854130258269289884851829753706232934546479866958301081686981840239393958199950002469672584115444718108228633787295458016655714941959921920319064643764638085059644829391768348912441756709662877031060942466204688519405916006429113238046523378983804903444439429667131313861565800702853339496517298473118192038875644894801715196508370737907160624894534679583153213441386732145522908060079181491530189134360065467267895455587231535574671821024651159406064113899245875071608890348235837056969617721300047384548199385788233775351987635281550440017385000417396848699982643160204601396153369458939240227620890476739968224861801440743382970393816119095594665887864581701387803864479430318351243674883266789264951848883089784459503682438971262223414483309070956693798265786193000388862527723972729076186109526999418298167786828119786390020055322440076654589601688035279835308596529230345441157311797406364559417965828716306784206005035181711016943009142135629844096735313792999542569869587697253667449708418244070857012651694448041788353133158491923299498226681441866100575934913654461847088420885481841768194456735288455107770521398241951403199035828057288680867807210681875868320747734079581160093232929346611072325645508742945227121858609222276389668331600514543207297817338219472330751026687442959795667439871944408937501412595079954159201756556479054169628000075416075572998290738408804645838500808734993094508455828708503098634370376864609162299941885550263277300814753218220916194636719836946234932623926101369594210449880297424628641319553966997725198312171396728090184962816717956642903490690221653166880456819244123905965366915882653818641454798669682111580092581284626861512635099315878668434569904821407507525848308017028239295266647462246834248834841186353076774353271211397353396286459854807645693945884777005728408665153893206370755541446795036351604063952566751703953766854970489347134983263128084879816425224449005507104663974296876921777733812860168324544732808045267173372218176519005860155780296971040745758633304614484409789735667171149293823828621131764765756491564249356360506580116507503427248602472573992241044147295290098309728874842502572884826924057353607507461505911346432238805447155741920394466382767570127747700001851577423402864552013243300216885765714619638924037176768162002103344256151498605738290981917621031883648609044458130121469490788733039851352771748696454679483767056640402126296382280310976764902866730358443772437757257972428166631790235708276048390303732512391247149449597895918846384746581217076883044633916147222004090663422956714865207866843589508191356004518267325017272359195537599744379871517287919235768740527515572515078951880026146408699775359524276814751743083915779683216597095337741443451980437073130872348028905971214827136019632845332874925586604985883502413854073696852775010212105412435195812259224551257547731369952828580081807318091437143783158987693219365960020517581550546833540700547139208114564792420153312128899487732338961831717798433356611871360226768458924562416797174835425712382016824723654771425674207930861541960859260294410845864988401327773535967953700160984757358122939834414675785914297290472691997724972077610168738872731561840189982686676732515097570987840273329002759401198368632021832471975870220617605294173252413899300168988618903336831854678929963010927631118542805960988884398012598329909925744074956272010556553092988721371110009315422466109694215548752441833839037933970055456751220937091596568825409145103185521315271650409450174889132962768641811011279523153457004972052443900157669613515457943995607298261669605317874845230749333234811345500551727025614520912435030712709464149705964500737867447563871523296024870880549500296307557858970935961964420946260389546586849536759318240229031032104195292114806490880399330083463050313866541099344208960760345353122965846275775836889331197234905537632112334000760594013025851053554621076116119849960195286896798540545668657808730448587299306276524489990845052756690650404898925516664811924983283304657510689385039404514871788839425717149203039246444548277087967047070033222569740431423889004593092119590426453317400893133775411552883467179496768061674233196962437502477586820314770319102647602356548341948791934512416807809436978663883148985482974513043606050235064839236237981298227529855597929502791605710202687600179469226694091068384547066693274323068796798336211576358604215257319456059644786542900934770427570750806624533838835893524251780317693399554243608704412605757627696318899331722110732572696303455654499233566428056366229565109859454369729523071749006294234428170614474142625235096191077312835065913852482903896140444802962414027296377820784112620517867596759327027075008683328869811519134727343000796446183394643923435940483996978375923511331595952770085785237204170375222101098714855118791749272585503263228466518911739789014500585267378861821035556284820334176262719777727835145617738238748922255564454035273747731883141625725905267846238178295528239734349607202800963156705226592226251546686208455421867538359991926661122930328909557833026005453959663996387112041347269057185035591176545135904463712761102814178170913396270610292019959609767544961075500341955571421187548040858962991425303274113362259923285090125785365421270788242243085086904868954503292789989095304977816834750716226819043039175451093225389876561078275648031275692344089629199312197809897119905174918329548488062715694407758425941665538100101909972148849450320278666769498544650982485202808486723884417088157699160502592252751778332771566442967809326054711399366815857815388473000580350887668166351280811231861276639548439959545147495123324707340870101659704245245224566093979198447216222012377839077914290817656477400048141559128547219904804791382415800283969338023306950739043438922150065683818893302306591588553998655368180218564771780485573643696684209896205203777979976820283009387445498289188987435278280455587663155221008176662474198387760317769146395162856605270084218258059404729489041221102142826582359571424049005466167601723562850592620430110782485747813880086845696476286290385896093307625716930327921283361575536392849103340907514883517251905951974868227933311751223958332043741419015349964367247651204359211775361923922104247185998043847623026227554339773151382543414198029751526308306443952157677309924445265141153445828097364620016591024781727706666576126252554589955407154286862559595467832311660559531667120217765333457945432688400154632765480003277680911359115310708195328760821698189657647229875990862954464375070051187051827880189514620071081884786973214685575025592555993710884536873205572437759242678644490839842491288050161071875085568503262942656511484444794504195157939634548022495110431941265717920912319025880308617496038700988818022830529943824733588644598882393712746223087602234302106954175880118947571520802484646559099579531780501638033172144526409569467162757514056159272342262042494208962147625588168330137534221869480615807032175261374385111904636912518447249503709909300834872391162155375338994855536239664075606660167119964530083981687459117973750265216125370674396768174855102787483872345201635019339476060726328993899430850945615003304622118348318127698818022531996081378643515073288408809906146578857781360454361726984438122704259095377861376629339648754087502762356336747247920928861041644101368458206853981345957794091897577308623494664064656375686603199686237274871924288319717776119253162270599614548995622881938947843013841542365143822224745047145391023722828511642715170432457002998502847957737735090032123504863120970741267506725042087096588698009792928949355900784602139665778273404844238882079211929274580749538694323041639899013011506861064200468375119840403067780634008502665508681928538792416356323289141045274005196772162990394175559083222839230770102456063769383281245253545227624958244739157466015128463269552806350476141562791417504560748600470764280617512304751463378854662103604582482521296498265191909300836595846998586715749189034753091802031455998708849130845171252967000999376511619906593860991720511329305511103201873523183982113988248165684421614882459312711022704441088654410647639437144816214692391666845270443025449743594276068768206015151358274549922829582257319014915318008845212496046841572083516276171856035610192398026982910403784092034301971272259500309262004964156291504234758678800170723567739466527219708636787973870459546550587660590626694130377747200609712057205991353446521409098143097066882664550002135643956617055828660866469944542178420387216790367989500428792663304090887626517035248237637547131071290829368808596826139926865287059344195012256413133087827613409044360800907288210219228053001561109498091858489511811046504502754822863593124021962237451000472223245097776856237475447845957829674795654627595669006581845922167177005169192007072747142419005602388902931384720800047370573728089375288116435080060402898399941017020655924456956154598999240978072934713810442591841060894733804862576704068702394982728420105028911312477196699406430496836192779641411066519147157839148292132516280627249570332966377659334135772285742277783630110687452599145123960473829707354964361883649901658560615985195005020435060561586620504152085391220985835148938419590635251010230202838636392697704400320415280776840892864318493117603290304279017928419292345210276875105626870536417032387899382930949384241456840944094004884159985295789666215813046028754818631241790979278174482587589119061310490173949175480921391195397658081799663589414353102344572707191435957583211810443844623143932634339427050781248457400504785972528222443858697150989018661551431654943674182803622950959985285380263752990425010190290443964094640665488757572339922235882489527252209137962774936097139729183191770377857954398093706901186135163866101215180167251145643839816650416630504083582376376710446599578805357274376336369764572937407698018254568350775058020181133435082016291799949513093035755024011221603058648482685358890764185170289231016218832865362378001269111578550373283512200362488482671478433613071561337423683515658778930770894214748323753605964576199346486092221726368687318699611027886086585966150217685585416348436093103662055834467367342239665627393794682652756804384651053997000557774720304325114478162100285294008290937109905591221683301989133949482360342807268219730089095368277529362889322600058732286356255230052423777827115934434645087302912848753584633423311024509501140667841380709467261668932152451228255169746084609751103926050069009549395764199859660006763121115073422132785243455339870712150506373238461861154895010146496753273310193772822173630768878524467196544998652317257856103707672492974259587506761165105730380612671618668222042702651535245732104686140289221989875880755660451517082014778466283921537355307712980150258918109528219536080320244224865532100553668394339976135711209102706476784731007121162136388262480489983822365475907692558589251269302277721050800062543771054674247522493571845506073744325263457787672046005086899237292940501800235531050392838002970036225563977147412445103576821803798554122388482211518343439090575351031901865553077540268547655233396615766316011932065240471514329904339560907413508335247926068232095600102105431290379299104136049480205963724985916087658302000186149094434968044584915465918819229134374840133456040592661538402787959203358012729640111491478874640236971846935481439813956968803480500429191801593555939540329923436555838932721373306538639396099647811997527625710734710074603214491014879694622826133799044537719082089149825495689906517126070489732160025378839741692740854552151964745314361119018214016866209973795038145731460525051282226435182388240330541698743349956124911829487026895133894235297772551083080611791599233213956436595804373689901382045901073750898273564007863103923911640760393057115155575067029200697666619944060585976719517236946282997298970582262308175161316040792375736230550862924608476434900810351542821338490198163915939079883396819737829432047969975689988911570613059516898486778656042013973870937319413634778231262646003030269916560461412017789187128443392092036827212940668626762957962460363870712464036493747738109951225964257820831606199877821163461432896190528556930227823653818339458328136359062221885333812990805301627478021075532139161571274350478774861534993371318229321338782377998390325928646681691527599513253672924003296038147339172258578028153493333590554901165798898579667661512606637680594662911675226562478268935279880216056810582311871015985085640428001488387681546919054328828676485053391212122754845781132634160384358744948452322268393752398508598306176507795184449739169403663160619133495872040775827766153752543975022276729973274496166373377207740748240338783347882308899699504377617947628377864404137014007404967528636329802394901482481533532326657564429141115401339705002725155586042871854481620854558630770198173876712276129768278096593294202164112932640267412126347979591800518277645461238273216152398903021717869330743400873289237194508078315048186105151946817606039947643419145217965755268309995832888599807755157824550356469672624604427023480519906582085614626997585180299552781493178253386919621196484638935288426256962186782561187482373175542446170414287399435413431169859361909717834888255686600816730692552168355787506989868729075777681616810419042946957037784136395019294778871738187584567105193118409902527854610207359225399559724280159186603879594982941292492836036923055947966311233213523237543974387169729283753497874889998797960041497044072388994149666551794826572596898588594419103638680516524845726516219224719510998763658246829056109387043691279206380146889294548494625258172873439471850558499420847645442239778842861762408629004281683387686176550579898704755818634140457160680434349339033139350592521501856968244555635831233945160083409213044844304537280379412049164090103729396878449123091189511850237876458462020661364313711937029113473628314982735109343625271801082864683582378322519384900294238128047920152968151585473513377228217219975660464745628638385807140998076252696788675108487377219817331608807836351011493473872373106678241366392171273409547304378125255149943631444894398433100254119138869631685453515804294779890827856340639857999733179914395435880451879967350852981843550744365229749678674378615903424479741124425559204861350788695393166087830308859839175895233343717788578373730767951544063626953064956938270026596013827493269205476099220307473420296605650636607899584626377423328085603784073902371574253465492977037893627125705749105531717512294725342703173583893067568360325578085789995962940350549300025635742286172543851288403439113383810759936478443532578934671332126249893725127700350154417560082988069243384653974173495450286198857358402024874903230952909510842894076871958277305816669215106257484092294634096585566734814142138190861522423582180137478803040811125606053831607846063008984427231611507523475644869523422859106390759564289113682445867982057197878003753167768680362183229432556680946963682401033913262638657927611217972924776034787308870624735709685278799844431387486719961803423605552349987406381173322619180093721703218838587656827837306129626094560243443984515617273490401326268891984086825384792279872147733650134379638981512341292524456203532792101728402776077187171630972474365546149097611928269345530591495796544974304372560459348665331314723335917884111311004290532248419858135843421358007925494859074391563330757638829153003115850331939944107524014116294920039771465379256655464135071101708211811727257632395415895705826335864336136743210471096939083126218042558023611304100808166261134185795828788426359157390406178664929692016677715762164465566399058370651834823555844792733093068551194642960228680518580204870253377227099610077996060245873119647599763943158224951749643713083987243731236752341529877109290731494556817294707752989162513877959534080442519971547116997787881582063978647370207371286972727424296522341438730857770884557999928784218626478013171668310575884847592362816026392515603521663583479974376072921377228468379359118716025309070037875069552696469006802110561615732427015728149655181557689294187817044391588309159679809157827925278900087268075800197465507430590962534675243130738549300227825236176427807172837299571045660125170294197047770392167080171866024967572073786533116151940587909253277455950095570290606753820312108070662806902183937056360013453365385582526119372343191012715876272584791227886873195150886902529048705032673542142282112156783297609634117522837073283538753281330030827611811226494611774836256548949119891846995014770890816307400792474890871385496629259886835600934853002147196048892858192291321803067176616160635134698557194917221754022504649159067756795155144563985168744177657763886135717765490687475309393128537093059360795590349223949506568896364634938366052088662534557298580419041247319824516423579883048738690161965996128825291936179829192977544740512842101097638289772242211256566252751589104443710638081021127067260376797407402033360654296265107605750712429445741147796750719351521700210832482407991115533467239126247054353927114576772825455316728118474501082312287910072269157628975184408375623736790733572919411239344656715335669589756252385874647497735373747570470538260114048598812577981233492765394331063716832647798225564470682659234909184029478799669061356242067202636503962928070322161184885976692344526659964139578991108926192000170173469871795760546973086514969023898101262576083103091050828931011943207081616649306357085296445505707045297219874563533606328053684474331171937067178149544015660625669762724143015880151387340585740179087279212591016603532417023276611357370167065235366417300464909402795923262459744563031648577483473942791685020090550289296900008704820626888554409405136437735776868298330573681108079696637174346571290557097694859062316300570869031303929492153162415570969431276928556467699592666333434206364954072818407601116025811254062860753301973959712018150966892500207268478893758171609469626205746256269916073555771123782378112917415184575791216224732671642643666974372546374391728498155141610875938157185211914461467733224464092976731748609609469710478783926798279650053058886321435398021675136466536844702257597081395446326446890180441459585218828879231793076607745333562279869684565879422490695729123533262167525202820765094379464588085461041836007264515051869065058691223700939001174661827851994209730748468931512794036287430245802515994596974985571082429836026428816691644581569068327094245258842003815996219669910944084597947930623696147312980058854626535530243203051060510992053667940943434515613448601190762223587066763505128584803094535600969463657493150513896307590126926688963882573265970476002447090052992166868638288497893826699698006153296521744469888161796962805988532355336836271508490927152639663801954965576816588631545005840916439408474878024828176493843275419643811969278171219511536334935882009486925500122575486076202600107946344187581713612420496028325712309900492435452625525353326031285840729597029216577790851645483041149211101084860533148517453689770508329663345500684678850274654337927009638704619418808182226211065021801566814971885860657036847600957853552709144687099440191411934963145545510091209546365496507028273322490266598087702560550861511844585656813716199465073261300958367452418705226650852266374461382180938789175092110716315476715794121237741833860853596916193842745033426389249222345472857703229553043072282976350944848460936937460765001724014286437106788153584195059978396735544604449635293627735960769034148469953872275900669427635595944202095357596336687794647796808223175874879961119830212032374957993509905934586189477529875942226283719111716984119187141748728686418504564996750200427190813363110806982708072911507798950425738007023326715660356928649526077871757808092028368581056998578643275725271920851107714817804474263915523393343696209152395695431781217263323017528451262853479599242021867468872646760632683625974316406667912535817268733974687500591185612399713717976655853629299884739327991215498054683657548471034616351333842252451188140311122482169862855598418751369374485976125095018166071229750251665721090166966647395542038019141668021185219296748088791255490522652689894445800865873174085491885947190097363814364490036948425200474263317384380712133179420344476138795978403197658108870169105800537207016292981279983789852645812529929062730433960018683890173906615441016315355112742987922057794148551641793813605735356238100360854200652951594495051254314174964146782228100702101532757566009105812201536884289584628252620546870677557457358711020456225328975986614989832463941100333965144048187479917931177007646676165146465653735561625491085584740216350615498466294821577504825055816497619611479189795951643204693951942515888480290750645650851285597149867100517869302165053639787681926499282226678733956276612674145198642539712562655311625683911494448235361078027595356022057894167453454690735910715010134525027188879170329311109697265899338568873673712241845528066906985745787534531495300546755398930959754428775000857197160948567998796713439862293861832829286635486572315711247771915347167954225396356631662367246751670055793372490255744956172540725750340923964473214533528175985901292922177526745955153975988405277825716869000064804697532735414728007412110901055316820586571394810701664219158952643207084015848756721449655622758943526376256683231232178329427657346802643276410008125618078184878378397545891166655888586994747262366995045772702727261291954761445858384312271416158963525492208307652653907433241594791662268756761033519966212647033431453618459817742488511494721941097113343409960341914094256921884751657017586054255258173934829218902402216649118159553841181559312996782172197672042964725700832596342551975019895013129454141681655489588726108013965361009768802642310053325651105200447649986607577072095286662184731332051797176774253535210429265551746104069388400728178819578427715577954365439560224872794271962343468022454017680748147996980579255808316408024203967508591509192877073596137191812164231052752322266681150616551985070832011258770950972914108823576389484752271777297047453394949102159444628849056374487137363437166638210133125032049875386016212014316977800537827723593857829763919058530262364980079247127426298523943331835202210736420031104245812606118083706798163252281534026973519335590676651240052491820347753634781543205800146625369021583981206053365646339737462877559096067708162106418892801373786668806564102211274001500284581069501938947036808415608928894466857523375981196203712849120559431491245515095434769263802037440445112137897380484741865783732420426166846280364109059495938074846031520890402718132021462018525334621120054354957236544883979585349682044453861619728937375290063114378431631546493818870556241366951745137483142247176096256425783267490445015649916542754006637293359074371083638076616139654401737709825747343499103024602043624928091931683689697435617709127627385056675222974849367527516313567217385324355434365275757222930592574633544128036929263578887278823982498182595017857667864755028084731831675704591609423986340599290649319921031099984499141903339112035504230610275672573975966161269796680646144731917871853102134401307321918661224890703618637963390199799162951570520014898719043770142462908775834270691073155314950841823906315637256309724698816243972496509043198588329324371381667886457748070203733332359539902733198483021726413362886124484016112165916901022529868920517363167013673932001537255469791661405742746609197171503341027676977223623530157520097106602042913908649154579496605852591587578484867711460123303044255147928410522411482849127144716438445523981266133174676859891752935496397110770716069300941928213354294717184914118425265440334715155684446952476654328226159052483189804532672443213762783664373004778693611007942342523283922357519016382668525433548399171458697724149298821594791738707983056310199601851161753909646133979347381407725171574750056177707195132171260515225771947959042432601569044243470588005864944742398608554485253828888812903627896376329174488810016772596509597576551453359678133756635152915160680295524861228824380193043522053124093208027442515006145561888925942014578791165750561581906928932087086586144572836860518269720812971636465282183902263815508055567038821656748573446160208574886320997150688104073404324359480811465454672811944584217071383860109829653778890824258133824683579623230186342942891921655831333943619849116206988487615725357896284167299793442536138420652128095383474200731220892216101017735996199033794689937550589798887403498903051580601485656244737521245732256084910757964380494113242366316837728417240543727251624181074336863731440050934959758430277246757085005879609029610929197084292006956484218678459589628298739680321195076735021757344105939796760002162006975997033897690744737725627314594144157037581269504098272329694708205857473169537361547241370351917234099477017743061953768195538841999325524032070845245825732750189042923514078912153947652924254544011207044593871681596413746476769244879451712334013434901938834239711459228838311783066247503085572119821230771785061057732800218174930502275091729539551449847431382080525572962302818195666364496170291438666317128976427649618672833421958617833277458892989593845784215665948150065428504627990938223317143263556312748722723020149274897102300700275727312265099793927650598966251126778970155440222966838576021813277245146840536927721105618129157447908326656268991181237607522930980136955532386003001015589887991633743375107079293052508355877371922547721240394193320341161492687438708666543256895146035675625099090054551198161404548626762723995774913380201704979650827937933876858663694342488191137463197937833582626851812478344395218577595830950307441824955108768176301547834064031577147749663436185998756122303258301713776889931786750212761015793882673897273795773663666076721288804924382460563154331189041157305918441769358475835992796077688285312663830731159630606403168614472433147900795850335838617789415573670236195815621508855732447636674309449786422059279609399846915148591585291841093988199821184169415537607396926027330089010103963765649891967640533927307746815584612125400488859757612904375026457801487623154844390223370014529789795192668524618254809945556987911423094799136030315572984759324795145423615786114544702170983415160339233191606664687612613359861609435721166587759142186055557778208374374010937099404481832726765332802507201353303468504335863308647014235395839163289109521850458424532632559489392889269837957329982365130998282417014397670175170052348325415770587672049298707171544020020978968748407387507483371634737476734881524720843026325822973309635034772083220898107022711096243771236449296671245210929584250827346937984557764407337901693634414052293269331168873659997117109944772140557992719130263547720491178821451774588570099949250267604000911276938170919060078740807678580722925622860158102432278571922056345996412920123511585979222567603979769179185444675779097817242752047978078797489303098576177936903691785426659215999261666848082506314664969393634874290779835763329987833070449591328121815374802808722449615098187087435254027478275659472617268626100685729891314427466073075455386925367165952333875154001083699590676207118268377693302833811538510035655709173406100253670971918696490082057259265958053556065069345423490633534833788900286009605320774153763696572937572647925216188465160463124600412203181041325618958295618072631275978023368506455552942361976179415687653185013186840704657352970405731625153155041099567159567720919583531191279467685538409137133561043786822632741130961170904721666970844166652238841376887614638138336021833231066901029286120894018847479617866154261819578938029020849070364804360944993558779312042126682615961779451015046551654175618856590011105638172062017847926047108983786468537497448510416901985828267719499207235979161948369013446225619862215057208637890150002457693514224592022659558326094886350514555280934404295057027672884151162634189583411343028855372819576466036979775121537551350369456673336798025766880021532745291539625403242410662817013136389026424587327125489634019711542286672628156130880615644418042901815314410687199498432642441253392435607206987926140679083589579534044048246385372703030766983233511218436041292756805879102946329340162018954866689709962966968257244657728178013404845871495057769171589320473651211312154278528377044394493124176100469701117026573702622462437713836121418542147487035982920603419164379123671696864112127905317027747148333383534802209849933041761663240266868577513608766197070366654742868765293920104280641028154902798571370619669255911819230778573629887624313428325145713396311670385362335515499659089797028292714538278890465515120352883096254475312112344925247158655129481073535905578822321092674701014077898595937313820182995627764377901628166693403931353481243861351969019321444767044592951115940972113729768165352855103716607589718085906967178174640072668322646740634891032628687464171776366279336887844602394481766528979133751542216704287602159454005196287602761987841428333905528246642512312474422505722441488758669433508453742033733774216395366099312353693931195902644043289704190202498846552226788810527252877373533933905210516442229402454376800632281376129056068143567424049637695226343911899763412032904042115424454499882959102268247583389519265832761409226632084076771244052064010375754003111551308594745206288137086836279094122261612132166781166296214715572141214634055627379174272559712324834946683412846348906188553688987522083026425276716283488530727171045837675363431941741934089468918531731383255088321710247189981411292355054262207514641850265890394989988615360454463680494996366710525871257500966214950248076756335875194843331122638506084650979852958216334677158997322552829814763271078905656193518853769258303216572084708872905243591237562353587002016812846352029820610058133676931208723609909373010607459650459190731917170093291570697842219953124564252071799658480877642784138113913464160272444031765446073280654293144213471869773219909831892055168012982285050899151216260474892126302923378011404712472717464393853378472675529071722388860759953369724676903972741372242815164746907149522579291917687789042262069823730657440597528548719402311588371739056058067662511541014300937084613482756620000048153297309993546539267125219110043023645082128098366160804341025282101134337853604706177272292862858375850320483749871711601894293297326942373739947249797421581624410586795983530831539869476025374657616549129042467730032322552715557387068994662881602044368996774797738087427508037423957453877085934437783775865815771817410546872320596774603685914976832011469311204332072838079845485329130040647866112319085734871132699137900564434874893525951435720800801610795163430077409600441710195984128354833429505330710337381601141058318801675862319741094266807021350129967576773644069609654070239346226439075823132621703104743155995480099973301760411226240664699132452000778488461213409220207182040061233487414838580176403451898717385729718076142733138123749323471956922532082258703631086271023611997839281751189788057002079013853726260505306253103058910180981077676954539570525579109592893633946555228070028151976207925730238527100511949161109691783822541340307770399911744013428215227575053418774623602292264689792045641667775127329162195676280246147322671275645001382880619218959573383841968314510903341223432155350437524315310615331847041800659161289000929262484515417441773759792826787478459590468445239458298144325993567769304514595919924974367206208841839206292280595864022978103463220545777512989903479979680794484760021577922727038900603202180429378168707527424062607474967733745414148521027973976044175691135688663815194682184961852966450065403135212901863901946179238395125444461411206974645552178312035871973824665347321254944231114094188600549931345985039909103423020575046038627229211110836371400012473710401247708870662866538131574678677712473747462019401973658789038863815644205857482888512196618840371721235082772384410233604287825082555952713968113981924543740932454108909689729127144579508081718878081275873823628840492617293954207628211346161850080748903100978578595289402669224397101022838725737911063115645579664479467312203689847955823489207169562477684487339996777561074891493057544952336286360292813431202656854528134628812838177468077794983511814937320897799589292828621797312745624704801346729643124188694486697257905770660498487630288364938795719008834681042612260931057228546396357363356485507889596846052682213592337030007745766910383758615725322896886695885452745966618167456632749873794221172692433697086996787204672190617871411852746298686478433113785940516299412988987355655921604055628937753420983729885687280570031315920786765813136821450305149289922615906438951549189542081475466846866717648488429870439858788739398177937062762981476590168343007832464570566903421699868158700673529870031900445669633010207748734977705510287839229803695922009758584136637149449398343927156844262850745908284818832543430462894995066587325571330327896980304985135843167657619209893844322493225972953360284710182476973865733431387484835374677487468735405242300897883719355180703841503073081765755812928134693801255301306363298948846309569170804324831992963491178635877922648540469659696139320050660519575757246024398357720221555645517964121283856927085849909446762539604917711343668831084201477380232768676175128122195031811838908632509097861991296098189317629193497621830989766409711740749139426515012186856366974233606465832970805874216904574886233021682368633760190242832043387104154811012477565890485389310875853922319185064438302647141078621636859229231762910916833058020958825401754953426724367910855126085102137257138506840809680883047212021683210769756867548525277725628454271751825907088854074481586352842312165918726847981878440927703689832097121544938409785168220347928090959847225452187394609358412310301051752607057524462209665464026794358013576103854311152630442140271022791037776460139184884985802003879628895126847769514339706001789904363506217869962759324217503995054283938582871822220042684880695778875584168375873633206047752305744486162788767734117246252855037868100860651742082884835572836809908691055989793248960515341639259099700944551914097217146213177886886516740915757806248620957824553482453149873245580735989439808347852352986380180045405700106263944870794266123452704381801731112749224635256528264722003179947261119052569712018749720922051679949667498176273805339877752784251504915109519172124992123285569095399018029914523559505893266079677679736379386755752857684741357530445638112277065625263573029618623484967274453167124184657063761583861865314374626561653724327434938227741061008974955273701631718592040591059901498021422777792399736313076338971839007780653544328707306314568336253803742557187665005076361023374179993811662893179585730346712388363030363162903404011508994884040081374547322546019018395709975048744586120715282062357856299181810122198478569623703000692498438598178578432820794902839997346842873744879700913681606930062290402023773820995833770918835636739720482061920885154397287262627763109915506101211359901902431419774708252571415887783834949212526815637051908010442187538824752265104282694253553263086253801028594584982328027506498523537531507432651693353900953497111707102158813461427445656223346609657332626161450883479504825409123991702140616466870223649135501633019878367931777002164665976830767706638713641829191407923782599651925265774976497409248631908778588980705863568750503751187384499536168849361396348394938181990137674345680966134146459322604060929621619018329421304936369331521559016815737265329451234913859797514879477891893195480607491408530680525874799040008651487329749591050728381507675319054559252299025777361909119976792901579831047374228759420562494028345927513195986576856082098269032037502155554925946932907337861139501530529449510112439997699071437842023796644562664816590456022438839253214540541246070400132218984846133273460442509301479788989675464525416042816817264039893665945991421532204877360602639791541635315813003835999036923634241916686081957658933735514428704474351298942218947842896118147738332790778208664420363389161574749531896253294512104909049006641025826650088471648869215422024128954853613294232727676446335566667398284629485860017290473130238732151483524078034925273868208375001972940213148945137676133509642368140063815526964039842280001860661936210138381796789499254095737765596945382039596160975514581963130892825698506782302603769361325494389544358829184309739499803269549137280592955522288665703099618345125992316996851905787640932684044286968684670775425270123905773543553208359715916817619101520865702820687847406011378412605866196860286244568549931183812271081876772121346404931433760808626760537884903779108300850817703921874477384476787368161905680467329921095606186557808477158243254479640854846949008275316953305031219025363578906443739987163060982236798034196547340982634088712694660680355046672862330650676353894571917346895652737565469860307156420544566047870858923649142881633929065767672121860944538111910390797706997617603405688054064732005702580744572120545551859251906880370908143284376931739582977118625057913763183254362330806640167828052372389280167528342569193518882778027713186982223532526655792189350878819876026859568718406986240121826425339372282778680241766519915614928671790019083866303962457051625490616790395596210409305862680814558224773173602129591658100398725933030689882407120763600977110415004237007501666481936567610598407289999358835796782604424763835020727518252693810712148171836682220622599053572645422687823878904333494558034174872790976392141453484416554310674108118525287335998421684656323993524985293586092307647431031489060808706234661855256011954899867746233626346161442308930788485105267257189182459589011123258944189110182182853408136836451336574836421687906097736809778086680035260515592055110536289101079060884008263724479781545288484736745994530449080685111633460587290194674991300691966154896139028360758362266525427307632935935679715936361702251415956804700172720783017740210487337272665137101457793417545216992622852998619984071525295879233069850012618245156755726794929909894377098833330000220916385155928545777775203525335414937702158191306487376707900484988569263619612530855427434359312891897559757910881301737717850699262893902119909157053261707152924123137941834655912768189092645925903225952541992641273362444952886016355461627054368508678898761043082569448330434821334889374897420247602787982041220768176258974712459476645467955399962118413092464168750176961815894883946580587238454260523630653168110644321408381982542654409958915428057821448777466430315347495536566581585877653679074951457664932137694701047773545499163279553887833074392831579158075357687196550350742907185850899541617545054256951582252289643009650497637614518878598926806640412613379689307200336293119031970705858423293999295100483771578508641551785381031223210190179761320165174776037304504798237887539209346205569060158129745191076605756143897800122444978700020505244418298698291412679067875101968702109099321228771471668244678323673484072597876881976061805693191251939565959415696409721735733319459330696508253827170512881764154980779149377392468105194213920702488248062177588823991506208286841963824159419862024115152483471782148072234508342978660185429092828149247913949600855989335235467115085079962167989265240482225791424399608894426999851444413624566793718789104047943866686461259013881347901853471611072275277030764625856810972370703739753242588247787740843086480069753018794726264664576562694204920635422704922241744938852226801007592643297791553823910676525235686476800665426092983517556572398152369729890198890826523831529337555908663920032027333555380808869395110318415188261610183591162341020091010337777772221246485448294320076700301470360538231354634204909934233986539327438129231512153992219412211887425965843922681951897545276878622382552247760295129474965537642862995346659424989657451733822859480074214075143297869606431917248026686586724947570759819029677138082976287516830038326706290796260489851280527627270059758237366577503479122009360742459143225045922626799973912272713469193383648660709215400120543174876165588768305149040420935898024601752629983117946969505780396627509894781147337523037416533880578420806444154361803590894957885306376780367395645559329632347019191101882243428834683191372590853664428845108620456856524670332548582072225749246333793029264392148812031397326141189398184452744225329238815757237947592344336370176653306795891020528599071075312472819722242194093978180807688652601491800827428014070718015272930561614131374310216677676546581987214235581814728833091054009341385158356417010233521329650508976509078498448815811948333771554244524028602773619792953719835500587448881076732252739766231288637072202179481842074363625810521102284962095186944476656839263763955514474928586500567247612694204907145769961236416542131329397912287192207605343525739309457765539893282891532527059216833286347517169929710542330677715984593756343920828067391356994901700110485085966985161415406747579767267209011478624320192237417444531883890716009671859917916259173683063822747496949227122822662503251340786996239640157450506543987666899802575599706610637952128999668752875543358384571176444875596593288274220461259937803012746042733018500574813451249646495684233936944035181132150114035940836019226432551725616306323997724497604285526757577936019167484400175066743240669533741994829348676133751926024085822285387842133287096555757423625777924104237702862132888303342386047521511396150606346814620693244259771854378375050055176447655000351681690335861763760040868613726298029911095245586662642545560982850468741678956916687453520128109883378664431415871534004278079090946140971765275578842199482441591439121110541538174911164297997335080601821298634281146488860380412820929803376157865777851241320991677573450998211398056621318169649001038510317148652011202176652872634417328320853077870774738221744851153794907221353071518864188257038585837012761297319922054215450746183070518695455540052273878193043186746580935139447797066049638960123113395582161373610017503177101114657824701560529082270629607132177547135368068858132733626302031837637374251030909680059333804212751209284302904985722714110356284466759336058921589869038856495989516585740090608199307202693028356006906180729918721949106182672997683441799850596851672903385502278068687297013572017376037636127865906972660936702175738332113404022831671286355440440553753237745951989918168314012750858990666049668644486445859436856657856649384836640080582038202691223051427024053300316447202692830429920927467909477711474926488884389785402089088983586772120646108023789532740594831713332407106701567520522072434948795972827475697927742239130314053543888415834831098773736777954914363808146895492225674722061609056712339529395368991747782232940763511981780032851414345924716053543733318324376530164818555219059801848841905859391156643066864509028740479118544502813301406760700689309810115956913794242147148768830774742156398078430006588499635530746257217653781763839187973499669435023312296321871309779727329803879084974491851264443779902989478935403633272549788929538251611036943820996524941723498663351748420847038508331115286277823758367087899272457774555537890045046866493150690182529724982467988975776079548331908450191864766554350442821222673519539535358310231940307122928780799723005476632648850100740325907323865901998571536692153578724082331143162182573354397645746294513158990887634917932410315660612743764346033153925024623585127991507214772388993672111427087499855151586032461138446319967308897345670113416796944009481327427224087300752209172221546092419833127223928540805062575849252216231506179795355506006889793318588581012601866624108158178357515363847602451880074586589352028144122819330612516200801520594776718985965257534806902771118596561192801306380606866534793560533405229985891739917509494838409789973777240695257986932722909962482372723502534773402679554503087203948401145217234446164805069753868570607217736110449765912124303133061592792850391694310968608268773125112432007195702198720365312851832659196897151988173163874305956098329862642355528698834743569502730415367786251085045690601122369003835230820178522406394158296922904982729017696244162477980044665777275677196507230384739208827567275001147245966533099385795260604318120201999037047318229217494148373217377373526341290163286584517651796267666102546639722738408273433292771542213337251987529426852071698985318173873255150536724710887498167723316947218785184095232832696246910238150933310041442242605930094101812643554430472240570656562991713860961738439304893599769405075067109847437281372814837479037421647610505766615633183480266036702166905941616519207548872468137971676172019224946653950328193410018804963195796822393682641819752203012612990355971330974268520055879228715014750192335817622868992215927619252750804013744930952546651935502154822414114470782965040107406017130041290053995821893939088355108392907294113915474915578266465702364034780183980119338201608553006077755154091960747281761290177851938797050189327796722090071107266155595682955592486199784323098736473113612949922951673628197671020657840956559053945319530146545015361073950475339583424471117008533504585206308151600796716658649257550906069399288993432705875988500010131072315999382167953204683997893942104435016228402507316169637310334000277627687626202978625003471713864023923086856766343426480223035833725830179746045516019192442967128940426938424566380535194076653746080478160381695444190567482098033394375168638127718670023462013712356813367861707923404380443290095618557653684118769746570736436803816422156062806021755543893391259949167370319718442951536572185354054430770009008985258464556847837056841406679882734055463769424519152071803812856458456881613238323346760463551339648500786153052400215038083034250453526236633281370026476179465969581179998491041619862712290670245939897560667236135766980308838864859959305708350905207355349209990707986202813387008168854970411606385832997973883209397936603238030656628450269687513682978223763405844118966621048976855623606220200171298383036879913979149224028694943857983135593426916377561463327657473982221594306768171360323450177570905981461740490680924223373382607204873243399074014049736132931744649329716360290731697975633807804109894907537548387824446244858917922464424742974900764264301720272291244018032508915825406761888058802963188237772441092579618709637569203324611380349950716103120356365363208228976637079183471395554346030908575792665775104652135049940606802263305347732285926405956429097603867291709321670782145195476460398179443598155428709874399093699892413731546874038244372936519296780384748011292580577235351155072406832427906371220410650431815077813706250782551587697319768570182089544930384675883401096783188698933762789615171811700368817916210843080801143258206614859223617856629703947294231294433816436609458218718187507689850360462131349729219159551255852549172054539310948820824997909491600275989654109897303441747820159866535674742661751277878244041195360090174194149236123381208040157657611642508583737543893774237737337631261291389204371729796560786472446227281998496785896231208063241565514917562289923564312563777998354088706300480753849644263929316704292700846568690462795576557566029979072153560447681706353380338829581666870601570389290854786501050111877361476204089481166291544339055296845583096208630289204998736310356591841907057639047236188159599431551495411926349914068824809729279086340572909721279523405420353928421513335184080021913143101315905964321847421434598254189825534466666360754268686540625657151148244183497685866940258093452521111160356275086071924264202265324229229904856245627880324943446717728277839038176707263159725906683178508182819700506012410225293815472173307328671571773994469192050132614893443807939399361354657524365015159060147607055021016008371976774203244275794346821459933348822951878729935207927724333322258105523744372755617344400350918607158156353573831393975582443199708003640647349118627417459827223922224848860809465713286109859882286542650825460582451426698288956251944417234319728675330882178152031040820247561971270600816983020230691557605902415478014774924091053804500574168682479467958730632458571137109211524348969292882508374551613589802403514450208234417359471617154778056297474816670031800959187501904023750419362439509465418241475869677562735014415618012473290701477685361071902408495000137877991907096698475597262145361265984807286789612576024947921618445660158352981161788037413873517529733552953583587660410881628702167563335726484060193109295877651600952841575445632022166209932372118984665766246751933211080622000428085155609473597969970910039050647228145715994872677619619542444526684166318026288265925833853530388156972537178896587875207876469216815355248400582690210929677229347995456342547828038190542931493799037232218426102532392258518612604887073853051244200661300727630079234939507458359927174723283133301041576554048868869159478520632247972112100454046868537874190748847466287376105119046416858823665653224342472508296630042017171817395090347708545261966522373759654602599788885286803428300084069670673564739781629237048846104594129326614848090503675689795722032202746525281851373591781704302573633711214287871486758946480358714227906316412470816190313658143120839851508261915443709269287910491841147364035173267689239183915601102728584050650630461210299305005685018758647407382731205724197249756034874046106540395568181330011953887912022465310635365403243650332363884215479538003772030662258362656481337524615989396712881460459996677833944791873940171402184746416055900208773636436004364151584810416379824707670355129223317303075633496129005309889131715572177515898609693262558008239468565734426200730324869976446897791347583879330610548397231501213496936635563591151251937842101007451861220972330139774431241450475357038099115066120551853292963311084886826301290196074356635088564002720170853794826945254167649078200662172283252866479149149146838348979450927097834878788692324494077071721957605496247767857482930026586013022545352686620020831865568537377052077916869947723275757910082910341459220284333629594049320224330780051705229494168802107432045989091074539292746786229916172987006588209385187793418884382710705121745146319855335810239856270002621420507062370166630967909855347973414740607858612014406495020875993881972474452466408818750161123382046159275210954393217164959681921738719517550085967942982847325214023160591165267080183753325300933845955503260053631931869002146537041071608349242452226343386416361614306713229221954891349150534515179636502469074593930458474450283718153896913341694096946550061061658536857625057758958840904609568357337668322392287225635583533707458339199564190888267054706879403677729170185195443538041009132765586156009899812423880449356734171270346499637270296396600060127247716222332527356333943633341467669867219417283987374484809605606608541691455073100887579904988181260589492041886727424132863158527066179274450617168838292422669028110071035802052538740378560411207793548651935386401589203818083893948147542532003895324313038107553846195457547787651775491795669143611024134320268627537334879877404733498307540721404648819467542415347798054215628477079463214311428516213186522813697880897613131631812033700833062018638343470084009087728741366429029220410348129937918136010397712974819568314688933273442573580575214366888079499924619182359220573813739467966849716939942634468220872627255471615873636135545221552790667759726827832636375897229803423746202151312116712873223279853169577487849604365962535303834867490170578519559413169928170689608569169314293245019988660125422616550123978115860477568447059609227524679542547514677139374315476745012885068380068819915913405309507277255880036355330755337318476219971125459536412919691548259054926771051303408544996361633429982485373228173749593383021424801593897538458605121309502890841241185462788813804217378594108569155899467750058128193784726469285841091813387081123967597242892999108955238207237095791245252776183705658107247132353970414508543827792962643921196770688120238693698693171022039530969999640939046741050982057305717008392852882467806149484342458979687795002221016041548941411564975132125851263506071993273315682224629226412129622163130174617666862408558013553184870386571983544763537737210418238472074828538687311356848377461150860327060603447674771995527890545377303668743763553214036689989073312444521058931934751589673012200925699770709003323830721962680999800954669290241617287048979440554856551787730954891869527780890192593872644831043268336402596031658406477981991948969787748426536472739991984215499067540987771741299683188503381197310387287767615768381730462822110678489695853484274743970289678742396375204208673973932786089221545009114910161088153428905646470926011691474569586440123747955827481345559432129061343724864280799000927720644920951028189971168695419783295695210900947881599467352588125521180818820698400086576725121873807828768797831800928816757709679205263252257420671101782994423919254735941837779565388724002974160004107122798798681038013246899713864781387565367074221618490910622224891470542791544988615390782406858270449102715994414433573964956731242076066029075219318673031681672096736240113809069350731644564868837616667484490881291777464596749848582362835154822447824839817265425869721334732456136163451470383848886113213145109549755102894968119150588467496018105537815567113011217451466915208114131446601805601683375008181034887695469808017345236252250659045932307893822310124449026964106669017002128404811291628154935513588447602869120568016344796243691842691909412420466486546982288935974806349899721563550565372722394534069854311477831839531513367854207251971533737189106500936564849023515092472581464538105746633222911998476322524254229090486269923806703494707270524213284331127958717246071438589214247256141585670904636592651720807270821698897781583079658760998161422056294980273049782038218226694085830733899501698110906096288755725129691329236237050244494512093739363325987062103662811361876046714675506658905603283146907526650485623886943772331216288211258366739674813654772878185257959501202742699742216256017294299806340057672938767039946453329340272864733454133981737526673639430958954212386727992045503516449200116891155869797674736575750176196014072770581442132282676801844121016294085981640618476784782295597794589339405456778970748397708432393608456049954404442008817180889652842472418490967922912506630729528510705196067246411989494965047644740131868229155171021785804361552402131799669424156516836404968537252402839683850080390915131466651508548770297661934860975528447790872830094047172050989251288852299027608522263082621562214707951371049441005721985133406360362373400500984227341430562730019911885064480288137480920418900937961516603026612109854278580009606301381668289527842603893375495798150403597490369048102643326917287233451388596619019655908784183883176138455186344520738696350908251147630053067703060949929035461316341552496518710537538285761890824122174727847808525287135442350943400257430686770670700968601744460963386227433219918021789208102123581424960709142507397679465436962517160246719130303676330551782489394917606995532796841914894629818448516125660362256953822245010185763350819829549163188589249660361539976308402263029677911356613626076877021163766015876796680710056174864288715989986977974254516503075318961557292319133320792590698678090424895234248984225981643420016087804869240486163018471753967988508937842212932300756814994192336982861841096838965064656227221638092087597130434283636886369699843816689381911388076332092424111238160013376019939881834137752162190064117014177974815712857003634773554874875348258615166252400432258327805283502361914159319030850110560746383380473261820002822075012517358556387735147660729241119021756763686682606623904670765282514061205718481667017832881201199403921445549154086739753132414515035468069873684486576435727072485376704183552281318086492547013214411685880330748056052470728917647642385698346183129149291517093617037867718952901047691365233564410801799909453416870613483695956431490289929490901623489794480743822896614136891074327447337384847229539716018265833687534885718912359300714153340485876505357583298537723954497486616237333437410647897010705686600797904027367563776684825851771005388978737321330323029261548044175492641207657480688297820803220920360053485761539055578126052504992248678536816621097421288111526480931363971980274090377484185854805112399081902508684627807824833120127022030147261766668216353808226808272467105223395335422246660939215671597974399063532246224699293510990786592497656319228264034201964489320133323234058752175465625594049380716356132098650110621846109191504864471045315583242190314954099570317498947846285730514494450457920604945359859236168928845450480282532520114580849098145411035704845989932589260756838946120583783889445188390451845792303735951107893823825063946541083404570108765371426559099501509709953470948678700824864079310762246586986125095680797823637218586104023688339737761755721160094236330905082303766938209203660310530408264085148839329854295583599908779088139292400325793469477237752005615933795763987708812771460359295004964524797928059414054469967878917011584215862275033839971482170095713972981774865010621258612100141641103074162021014819153969097656940446826739586555641676832354507538304646241315006297046423464369369289066044352885873634369092712758964500257438443845911343804833670479014264240549375096126552049772307722372640299107853568799984854690636411056382066610613629553603038056541245243327357649572850802618141457151541742314215857186771426840039731621593973154664192597379955229327204312102122495700217258172015334755184593399695375013617784673695089324620383657864397841980262512407357511267196479488506486428456402973662543973777506588663790042991252717362971696904758950272049840472996732838855087257317303178455106082056215114496561191781834851987763333198460050568294745280703117466411958964840727946803888510766164890455501011682158287335086694402610393075850860150136574456303355368012504062432645729075699910501160603384155864940303128662605815906242099061583734949182895547285438290293835400109079374397013537820541432837853964154168041458370936060329794260713403044722306539606787965476914465064790868649925925103560372139763643294705869941982502187432187242775859544588749618325398387231581791760997311154363642686355053557193706103602642269177145451529208428751474084063478149360880808232671003049280380417998039108279094839382553171937411157162318981807418332677426788743455251271436608902959176160310093227750711637910427723460933282575155529605909539961609185267346277276824262074489777565024370019686636896600011558068607649161688682282079274200216947059879294748882791282850389710318485456558159746660697452757804772033862835576426850098535139435071172806485291811281463880725984778568668781086021463540314914417174846337902061160074776399123893223430584390415786215121511802919401017363666269877823225599357899147373058555176871657637108155056469488317685443535317276658528573997633195502932323490459216165015943504768819168295586091860909955946302829190170679381920762343676028054431882335820270967575579380627962397210705644812726323549154253799536530559612946913966934434507347863752255300223201148538743936882340588471004443437048928334340179298218461368393182767557970199484475965663989710342606986056817322690624130699656603284093559655950904686569716837650090617914723824515889800281123445193609374450377465095358273145984946996992711622635627748756045451555363315098372122567244189813575469696725776516157430969656108783975678524567316386068595582228613861890606456262674443838424690442060359336040272924417622808609807776041823778955269510719004859888553211637996428465471922672681495211226718342016503002093379535775705027428554905364856937446205115021954667564598912195017532937499328046341689045093349977551123680355549506663136060345544382939781936759197673352661653316593387155546964943281438586425682695265141973080994498365431826390250941963639211902564085081198433514340662919010442181378488173302067821744167231181565410120214594335179515146977505558751592765620867123166083103135691630712542291516496832343014903960817676122362584696923430149197907865312283855265195809473644790017342824543524148317719207922393751407746701534553386427696596768195827079721910792676081336027259896782501212770546653161719209067397542871343981429291043028661854447902482765802548930995996597900757730126257869940660673445899348359193508254577944682771530783525156193659403711014565169822680500613203782617262217490188787570882521869550572874788319577405936784346799244638823931151719672518115697510362236260189634871483411607535013250140080463806411010886428705695703159302120466906389614448710307028458393957751157942779168711884821517630374946236272388705228825391034218613056816634812403516769078281142579407644818363069672331659342474509739902816173305952331810399036076795639320055528699955603912888583933290091009627878550410139509616154855855237263402407861828146214034942862783756027765658954695494899933637929450789606219645649901702850322772919866035076215594780447855726311714508535673554525410147281299957837361050913424312500691700016347933395890255635311993210913514410866712484928947256286763504856867386437848243683626662855346995833845536186463965668912449592513477714114631551844446523887425456585466962835005025299874108599032790819953288253888285261018727124474738323085002186220926758829664850525739156230454079588283909456718635707920308187037462517965291461087610143479587998322315488229897153664750150553918951291752710530831242886449570718152011309260603823059636605363126780102341727944479624807894859532102167383471015840967472514878263606127596851672550912221825725668002980112677784640421894928821686126247876057947466804035067040690830938901995832979142318351920475420808736570674908083579065658291027907304508947991714111609557772312610882282163036988812381210129325397912457665626834094948931668296878707686956112651066353063139978937878260315519105095714273162648727026051016859161904901476720754508613380371781764918315699075710516173366554518659065235085693329371128174193824533565002539094911281942729702267444346418026098700461940046322564961424050065751449951969679033173207099899591822885643127803085993971535977068509415155147856088818446563146341609767438778730081818789726022729016937669478164107702235662429527646212776982941748557477576329413414748840119573042426834316199887693107701336450081071778105006702576869202858995835153708109201485115034383518753889430072194201833797131259596410211188897539124883721442018869403835203816817098132043192249934360228206272163494513026994142023944409732670220742743798116400827857126446709780554117432559551861647365493970724344919712101540163771209157468406595644788102338327672919790599301104191260576308755514296003461608627011350782171258353057911210893099755688382971574951502359136414202510931358041904475525912092096049667410923393275266034376644905356002996443590156378574647900308205438942539666702387793923209052888121372499141412084100967650609973345881055114960970032100645329496993150348108012064056570868421635757441396553769521667154371888488751069772279465646204947348895241719915181545470798242117585260413951248028112393750816398728890094530194140255367900875296106787759431601894290432633431365335953365198923791516347351297265201163332020850337499311407633434904535738349205383086004227514695069621779035189181414445179468413951479140739054334938531474247165166020811738916398736133048125188244406214656904239371679449979859929817336271045805108084105431043766115361448892623744199842783910160520583723231457958861350628622850850336132390366697527648479351115231184824385048436093421668411302473493837861698140999615057328476158084667431702115990806058256106951542826267967089706878144567357944309397171638889809513613885547228274610553884529813754946373395009763338180216488376671934627279014548178853726648471817907650237181182785509896997300406980164431437165869097920305095430376592100091262597328813312373116306967824621082657354363285319798133577358861948450683557545454272602011493192928389830811205719651293991092357813200134012437655817194759683206494107930729990525545555452382929335269892106996494141242626436798884305257338427713686207102451635247057283127255308613334394840517281659381875236560034205218497463723557813246079585933651667605095667458827395339869979511142246711808303376660766410858886716813041473081311860222928300528822166715306583358390916606364975240149833189636235926023296956608539567083171550878123632659487961697788591366449955742990578059714737016300758828414959460840619591556850258032870382543457546946380458528969365663571628472992009122010178635343859897870561109226819257435491116485970861826768641612955277468172992973247158535840722371926002805432852430765123994646879170084507064798646097045689858056374318713042222919771724160028072304141721337249889175774355261307904774831451841151644493124882532714915833458982457876407935864094488283027225883065494066925161785790521861807193937583901798971357714639373868349186814917202544289827886102977078918294907996874899800066471536649096972852267492864910515233763383815970950080288481631840023576800424002103383906409533386419590337690834705178273984910665567447577715911174669184683038847924065233463339586938603808379284809251610570215172225791273629700058874851508062458392179450985979700088498729230339247789880951205135178018635142271684570569335914005175041018141365109328807246977398788965970156200384759616959298578916936264917201476206489157304855467652815707243392537511195703477813297512879848223563203756059182968745409421947987766265986586411623954011708553370489609951615729680659603723197438118997820030247924662945964479746974050628761354362546959491267567499156106231915931391683372109125359965016624850073635920670605479077257103933724355912519999139923746906821506672536427653802598273177357767187604837483323643036613649117665361204768539762553840921917831131529620897749533197657522904505339247863495341016848002932383254819704929753217444990676861003692720411434218235378333381984892628862112647340036234591233214329954162697562865661518654039979260342857294814303092412748519116513826060611289593894445504190974553512259289150766929892994994047601221126094113994357312152568092010255426123735521301341165690836849945812919819495007130416913487325649695604582950723878802212704177089799316631735304024224902492786986410716325721648031947083254267645402198170759938258706766141129428402480401751548014936948785375472036796796901491230336722045169908171414379376154634047566282845269332551174241159794340896870435204780051388489490405519538621251451583631697800925270083210494353076347086101116290159309009520805891406119463802451774809007252025093628679393727754832066558006190907135375992806384807106299811837001229962060561520098728945116877709916784529363076184487101123443410583264282932612276415389267411960380604448933541561907231118115035778729639663315712404512068933785488708463129656903058350598816982378623786031952597573664493527375120542241250837004168758762616840310623179695379643907265529021565955061186330864149870025124549244326705923364578541690883380471107428422404930951633000687137278292480848018415409453949278567806046899793537985909695573768058447923672440479266293654103260595187604076021947835349461342574576472920025183490877329685581972121183625579633850512592824098302740519774726238709401217042746621671410631971236687288180983700101543420068730534352304821038276773161961707780037466112519348872065843780181317515285734982062362984330097507130305139149036280244750881007828478926584121391011389435931521271944557321113079784751503920266552092356612334163045902725239274009013282698121806479454344362440394163273892622312538467516517986524792303117419801920024276902715673336477771777290893655716909581097993420581707404866056083787615147442940776082301194885052297123252549525153234752886695072946573713962010046942571136212254917605773662025806537215874914168065807668121288939415925830394655304360510598555418398659383114191042603542835740802993751268417605710007221883857140857278491127847934721837687067411521106775993107675657109774749099562376669502114879250349659903349728766028510087333989526399148484280887808708253705335946327494228081347806493602790225810277598626616495763283337098093378251383220542398433507406024763426815310439391835752127000420579042212569696197261135332047656656146325680077750102517296673235007898747045944363610630623324502255285259228219505722880018041219021198094582250913975619554426222122932034854493385611924150611592886785433468842066692432544724458030677567045922672080294630631965729567521260329736968708690331381756842091856910743863128982938489073319901465513714662391110398612009946505066776141227105931039490309354601077536418548120334436230386374111770974270295299834424779761515635324391005706316990245620158368671644119719777492344255233314613230482851556941576324331491245335207470917518337820111116258881133142660918020252477947883939876322899047987431882932256159829227163187954116138630281163530357855942509776192169705045031838417528549750169850130593746436342355084901189973431936706208811003261263920248503827441237793833224555927938900535299375082488638849131343860229722426220347235956039302546055978541554234821879419482724598933678675508547591190245299422822115104042846905966436270828834875049315715990213380494703338498197198810771980997768702696829427286136380313312821517477793424574073523603982888739083253447203183959616571838475443876333172879572100903056995395403697797269465158483119272494029117180071053636931923275788976821820387960660486051116817359291609769144415516051163151077731958531702956912493545484144317699999044131107573237085737447834863772172521324789628377957840689407381317012597571082338744630696794879008130021430269931555427222923897898017383966626616703408031382595302727547340444082758281596417577386334996881555432282843417964880234907536773606168631392583282300308033080365000376624517127330599473438908097676213006589530032847444650232017833346255301024729067518419998674934018012109511146820279435551115796160355012676943330971638174812488848350360555220854673334542086219805466665445654970624980964107200430115046659624083432520772496281226991128680764185035606301069373799380157612748969265305584777099618517362670568171588765246475220043328593544074955127648711281604587594372494810478374933446982388906162573504238304787568960419365021982958293883683940333827376994371815242765059553454258607318934486665597210418134257083881475608207977607438384403016969852416680218988285845996310904377012317037235883039930699971707599133558157648211557774098489887224153762047172481351932717565133841026294818610953005087019912450377936592866647060518541361635848786064858580445279625329297305739259185179060239698535647838781252339400670650598486751005198315983705264766651452960472929605160855926053393423494949983033452857254005948340594853374678801695663667943052274274914595637657865426395966505120944801731117461334373855693781888685146263969601420893762061453364195115662313186034822292183839132890813706325043155441520826970994388939226151642924593093294699752892111844191625124144442739566508260260754383347565839080447230901976688020434738440857435750951784499514629595964004495427217864054639211722362584759282932479380141345875499826777286921719665247496113044276224181198215376734867737454707949113279781493886728529633689930555231207432309009944874727223077897796169960503048166231892077649359181278660620918012069455116702132097149152893750688147296170642110660689359435623317692726424830395232548696239609534554993145832119553475645458872947467832402803756001390647441946683591606473650386751017011299006575592154025938845117268847182878466132881975131467291480354567670752624352230904020963840549500204169566656202362984988840939601758560993212369731685994526971697328955068347568613779673336467439832180490559792019228201667651385546199099719057877027084745513973174234606729606819870648017101367502767872847596492261818875932875540020857884836653828956896500020349372153440911164872537110691180036306358976825680535185710988516829605135382488689494264616641800247504911114795170743549083855449813141287594898177722982123571959318610462992334828741190629202495956498635708113743106348323828023295420481640239519479212254944609304425361352080485547832059990067092877972199986708682149617729175198320634033598612512737126759681266200322373285439415904481824114506325704995213902433842804351037586947739026787323970900642570089064591367704527680020327657833200477047023325401930826946826449268423042619810210147438296845394512747974787270952379984768401514862002152488175860713688270709002634626707602494192363712271594895447152245873855268551451772310461839156573088780741163039910049045597871065642166875616497232858086896503417197855782172276812778341474286269242758150555144593388318540699410981630955495717739786648915089971883579246535654816020571858671569635499091277087177982396633710258189922124030924864575003749284423586025997073574952408075971701864429114974631853275081511248032303776874532768565522168715279158769606829161932146280059841908705738546844697940120983578626397516698242317268393009857336864667588281893983571935385693205722828381377098155848032685686583060496366826607621582991218907636304594429512946867008549000827390598521046671385061880618582654716038109614357388204442472071003140715408660669819637296639138911557114268718735017944598829803305385946852898444869818713264881180185710133382147649717513150067109513313720642305632135394047918281352855682022014696397850691445631827855987761197519720246952913203596176669713386744550295738659675048214917968546677309436499092374923979994651858971604553951411023465751088366172512931173342674683836239897450996050292691874605217872797906479523930392166972744293309372371081031908344599081243409048542602237437550934182802400653031572584851113843387216301258131978489255264721034772046167882854360513823248525294314228109090395373369922414672619958703936447527108904690523334916639951751111806985905022002714942347380849321134424638597440475461409986032297904435744106980464602996551629253909532469179036709936414477071439451773553426555668711874031411148713163760040788715663598671693165331438226025951204787040335725148559369688994609284769518721745516889469468913501147959257863926272909057211600938465450435691731876818108213195329656418881144243735581614057455053068200890094289875925923691409698625755542001601027614343898843494034120968265979488990396104713893170837503332905880715349070193411697249321410554660161671506177271966113342449060709940410770043092084191373855541540160306993104621832121537382800984727686623459020950838620556874251958080232577220982931688930355889201459399161275085110929909840702066808224713266077625653213379893665447703826837665381174459152537195546811439616200700721713465374994426380304207924534381236941861801302789197461309595391798281289678070622265226273795168029958597125628669273906867319909999640216048631378171495713090280001898123157186042202863670147937300124329834481385256720557678589677389592170883182851821921441556659184199224752315286988617609407556505681086077196785430910229382680517750810234402245378035431275501711261481929544300828337368349090577483693528955361798016467001333085073773666298411488780174706145512680400061837856734878672101217019678132402579185672230234874088852663354967183658448670656513617407388841481061608532919710172969644027629812046282563640193611719205589389032253882163744383554933582131319001399760404941488714508679553557782928187670738949716091019443089357462721970451733873579930242662335211549538704531414395470691074434582438704480779093948134746329133913182775187736190675679640143820069224264307564127333938115589722655488805376421273991583561742379450403192051314015267070564118566676605844851563791714282923880756683167635803677215167679379182181678463318430474812453027170760728759823884288071774396806885052464491549871437640488459971614426565456492657195326332888390878455410053324961311875788319746046940030779235075314154933125343699513089297886979981434922153386953664535571827005941820011462768498961414728830003506266018072209047813907053499806318163296873078396465551323046557482275517502028069182254384964581153895185456231046326192452287024696988075700599925820405998681375464199318966581836401022136091746526076717981376922940474402389753456738013773028247264519957305727055039883686386564580613034365605416002309078638705549816829629622585167678784364900915636684720019749982044554920879326293139163055409859471078902991775730505364091047797431592725260252005421757948473569826747951692934379102671689751441776281082795741227877120723735779773451110796681119435860965864731851053005503569528747595915960481613761068585384943455805607725035141195062271295128122057792723606953733831234434517220738121739032572122006867478779963670239368102167704174805305539210966442726388100667128227331060023815898171345374678665112057461424788995801621514489223651066035783288332120141132356863157293947952378582350980337679763408302035411109150654034646008334517503428502559573292358322302276830924205130268407837030188695656393063142201014522980872326296735959701451692385774834693863102514790697579198120066177576427137543150172380826695486702037874355753396717467422245884359710028957462431322866110475394797807607418907142139638777376103335921213976053318176336940096703906682073446852304735767128497380413590065825149311940057057243584412994468872733625846177572957311291785870624062270641005481046408429322126807185312045879885854600525851894487614699853944635670952056762564735112099939250776954313809738345218879793888499678071734176172065221886939433132516433415509073016075006586209480035270883387935977536413032165767624718068068792611609803948650069355253485382588462097858283826101405866299642247105040199132456428594766965120337121736648904684495022931730794775000227894368740437189585373071920821680144965618872177749306165152031403460689312932049928927270839300885090955948055695687186487665509595491662868041486231352766891784164412712169794634893864876029719330339796745266919526069100738838305413311305124013704810569508491745278697482928406732890755465708225369697207691949023177134416289129747065085148633796200947276191142494176602949497506235879721860114577399207980620363371407632621000969864650117401674482841161006030205681720053147954849104601162673201067607059788689819133925237872497774978120629957778237877802834414273980292335964582982594368804200514534544725910364193886280854106386835375655038459984036695162719944206784161840071291936841792375117617965458644683456700853795876246027557603140539343073722547832739897094141947565874780211485207948779292859208536609014104227851086024110273034895643988000902706020531672150760975038175412082748634880055156593984356432869716421039755739364771901979337284868533495661934565168504020780807975067678050036772012068223595206796594558976558371001876512019362357210562671534502651934875907414998956929977045847652089379778397615530764137879437849653861591928949186732833466991406853452116092111203633809050597025160742044402921049021417323978891423932327549069940290314430555078874470695628959234123600143811542396915910191687264242382673787957324916956859061281671753173566253633474106449433237829951437293342325707162461656250206978048280643518876912895642998247711942408971104507622964221162383939259442349091135233357861912981074100334347208522433963750079133492530722047775761515822269603264943615204296039910528829480661108185982654011272286483383388462747546814544848994222357701758514830207850134646050041267731981068836748736716663916679799710064533619900704439881847794120705840931495330293796912062753201430265207276023769580788715362222017048136240865098672055089773314019727025803617303014217676336315229579070440683037828651727420160319314327275458215473166533825589628830798515107321290499300989243649784869018666715305629930362300940133504197598107724643146173571088761421496204331114150889308302045969680918487176739661498127278656776086812014627550652181102219792635090352863533038198440608592190637563516948550140591066307473958004253912305034389118628881132216149385622049217006002642273579970655453169282228448529660339910318162072210339351299106390065907082367377943680189734081971935701824532584946195766688208043322654914684411807582713391845087258668365663138217988769553691992283048619248704583187989590017358051263299567968704682372087084981566299369124553329909465243652136369185703933532517104508524724163166469098339180610769561514030766956007982640534956663656509069114197041580804548369871489042672708156416119215536181603551431923117703812553680830749969327580986582358708585546883243914803506234030800522869747386968701162439496726168443382642965396018026346348442732587150818511638859328887437488627231935551590272061960191266138895766332811684495420469468373153570920783385366191379164748634633993924781715497152981111890704262585601347538732695075610802179228280763676406674463396313137742534132775283385287011329386967591147090741092798219287697348985895392614297970743278112455016501947351487100866818386401480328828771863407894703297755196441257032670446420794417000395764682815447356154120343166251247846294615171247870486189437157801682945763180999389257280591360955314922326436785439571112573073190468646582093159861832878442783277025165571196846420836572579484322445381459151540794586951237984899792842629027373973077157912377828022853588949356856593667412153483307872844441373989869057924983023187766393157541559193039465185457438733776918275750820721825535498312646247624986807624520652720867182970870820444087797542222903191631073110627758341903165015654390725797761403340392958649592522240902729885529121081030167053663319884156474887795046306106583077056714994660100967437604084519197340501656100209776099531159430910437573759985069238332416733723049774076554177623534481324194540541637608766917004012253226152795715204988260974212522544317673980116408964550187155056991898738922933706462344441954502914944771220431779533760574503766395845054281504793359718706236803207361942703733172090700644821662898180753733077120701156865614714664151007402844397961756534732017452950193995279408158495198717607954388145427212933856885182811027018422411607056949180899561798902325545183207147303146093876414696267756449317248411284596814033775833893145104463456907821713335100161907089891576128571934641580884958730878632831252467218466850458436802410453527573589227578054812201956152297815793434111767508454473334885292785208883081486749812122823294590749162331778277212537788184608697213021400326734472124494203097231499618177224033582332111816124765828791700379529111321912333528579171360457285116068951958387246937877617929863190182598710872981730903416127220273298056421628075122648349867174741509207261487342272593720713691763123829433533024199908346066710679267283506848117579283339950768170105927868554538752957738214182091825830420860119044314264851143390729766151252952222750525764270403923243007818284172663416519995263621984551352466365702459328943283842454078801853815036966497260091727963350909800557895884239712091390054586450040724181159359535357458597282114577440760347360839102607388613160817753636248523397762394652469552492073062910945133779854079473804391561696504032474114123161394821819331181658577321421095548115103945537773306076033850209043043956758414078545335316435472127256700510104898916131833342085834578863121227208768245957749870647664613696575004634953364590297720305806828249045260547763464970993224770098453445192821979941610992249966288677046995690116925971895781070513041335022898490162078996729827895558739485212456142684770340842986267438013189394575603656393249702254280035979660076941998951733804352567439761167537727387899091455667551120683688601694405501529504015806417856621583812236730752606021974823045064709451857587643923660826764843352849168061269704595132529893803101935178513778767437405519939478641706436119663983030499751036298970684236997781117711327926731184312659445779392112929958536546306780004877757052192231204430445819961010206943031739127603882601418906092906717837547955894510284810556730645138199985243233091726925842658627180958098722019319570555917077831985658535239817316017757682716992911363901203526926717995264910257978846998367301175295690345906620485594940770560114063695366926418491673240215296730900751961668419405454332476026898150590713538948998685859484973851792518466832446249523309568218864918177002621685430056993668207900698584515728263509206324300845716372327947709235438133070748265847682296246456173014394651333250447881689934437210003792271803050573755651050411998783832514408821833490199956655443374601342119978909967110166909545704039787009051413493252864171215409715841578331845923786938521016850660134475973192750869764951144274594574025777159798000104984153121712252672802958509459212337756050121953197253992461087662645423178696548506579066008580738962811602703930404334794377260050623485230282821713904515507920295865365046179821955094968780298426090972945882497888166695062290519670043424064673662749089880949469507974034916647634810385756649192786690322699310008054194474095061873824858740168923542221576637571337774675523758486982191248592852852373842346237229659032905642069788879625327708100258280129027878871105449457728753761719725162027894417024418748141585074704141472217236041245931601928632790138193646039986820406175863910750445465676383279049683830323231417233418165104140500984655235212150829141360072219768154697072295776639021009077818487235013608668403189653011688388191402106655808661029584736069410366519531689835343382464897502007544949966479637056310595906501763142321813455282327098515655235447151075318513804814557726540352140848315286735344465615556930489819170438613799252630915402327504573233661698254920297118902276385987023647447184477300007958277269622559871112797926584420706291007084746048524635817771611939728688633164886005152962283548893383335429521543640896927723812452272378704644817114118989510313800536781071619754585313361499664629430116567699425652575779670866765948218670845977592638228184700484836357177625083477371611352739331991730837640706522536289556874242541899551042334016447127098174970858891330719884218551704185443185237619755153004048512500130550893318373790030163858625559221136677381353502235427130752659394621399112612628238659391486114341637829600327209437856586749987955571205342575393343024655292490045374417309134334193253912856237789406880865475973311708538294305273736803862013747600197643091267656184916259322681920823688794997518602448961096586274182791786668369010502518005666822968695892016691914109964742996680623164757152517907211002324414727910975785491864443410636820236863813444559397774668177761135138313109533461339194036599203746484627028304304043625761934941943324562229565958332452355006895332507638400598865020939532382594333502853778131479377813183561656442195508922059999841813828355524420925250705864194857788357362511095490718464051239900081299964613844948120552581714461240447412316841200344013484868582157944360120097195993388777507851357707558079892876000713994337618254056012988163953024677462883434148048675708813145374443409168558774058548107933698051252756336156328694314875706890574451268329055545580109663337953308306653179627290735322132037529088600227000986835957528896697686167620129410941265890611556332343165909505232247353031464131554113477540345557111795024467540030572903136811031129372471677177841096886281386503073212893076533667374336780777552331600386266836236416264446451452119884798990857497612253199662557597184811961222516874165093079670172343169333561610952586740209420590924067782852014887424321577901500317273285429961579509118985955857737633474677383143681615807687037885114764794900483808455357249011630811059770560883339692169321164902826985251347706303912582241548484163611770900645655079446464108583965820984907805949810485647259707669450428138995450312193512690889413202793882945421414016227822816185433612495610921767714572806745611736120226955114808698107972057127492080942608083343313353516342471847393808001566705349950079337514849192960176987279578012972125732417576295275960738963195564542869992340972772095360980175246916473832048314672468654918902335843904301355210966842359330205272373591669041134260670227246771552008399108018524417082032925310301673108458974412490114049585533269085212919358183978436229185168081146437108457831777396037770887899030614598896996309402077242226155807311711056781209389617998314866117512017346367650876873721005901065707276890583344956491822316549441520224196449710680217035255467756766893837506573220501283566452056594888060295311340531903950332677607557383885777708194050841696855918593482651916488345746813783781211830222563870862909776598228868754149562194606171939403323990467263576214333231676755413138318792585380407963425913271274734314189221182848673334360304763276877752179247117233633703463615256115349481888754875481666708228974133755864374609274506573195698228217618279898166190837619958056160757690351354817344516818106338238742284328402093956245771050675693175097244673279354637285561694234980889876938473447014980430628610678222486151163866524910464511868348242213998481157192774938714824335978917202615783692182637851326997884723766231186407777699661485111804191914888053182664192625376408044801243094833052550183520204741196797394121209965668320264949562988872986687699611613661154074338940248048512448152196055814049076635542266765728635891032629131952661529970022376715626567397122560424996765772542825872031750241321259725498677236741513489658939926258005863177634132703732054358896533343196173751613987379170979731823038698894568807079120129457530781009862769390543503620800529462159787371907583155617986794782084921212612541042692692999720323449932445043136142671284011919327106962095112642879689372297126879804025481682925825162413917321343353417450785548042188625819036809599638658023184900584523519801153635078935552689743240745546992145958429031030139344773972220445216234709498932501319462677991341638488917063639389266802580401818320194290466430311706063357459586752660145062201936314523098485185283032391682413162785210409386907492272191224680165098273614991371094903631323845625383165640701092530949410166117610609067976582196754437195764539006775473701339051124897079538968866152404090837695543249412599004165318894821295828654497317384778322609447375962610493506413293340620197642757464544978759495592215253103505201039431923588106937436228601565059493948987624071463741358963219761601111313285162127672845299414262282994029471910603870528075684078174760352178850868445589178163484389517463874017554119937994778204160376815170389290718307345342392414878198786883691413103271984480399290320588025522891778603845186180340039016903564515383062633411960815089995011601543654657920489750549405858360587682981511947992648787393636595114543931778921604324796254473935183136513910334346362886045306334617833233944874812417945637033739013437881177249164928115781157957123095965043667298886918129384986291701900529393611445055128343785737682993699473538200060813795459122785244288490551299040927008048570865921252672887541144726888523659602485213242838420078291477077651070877507834731867447950635438491467008361811088075413307518991196261069167713647176766996832905684255527065824598051857511809386285617549163535468619411524518355526898740109936560703694878149534013205213730368485262148924529350913920517526504861040370460397217715470620100031041790072193549092872027374020504747459394624493650426608386273987178123625310905769900716677102005839548885348884924399523767551794677287013295955847658782854247416244005060741961052209612401615286597751264847340368237048128788995639544114894678566546686051291504188236590497590899433350767139530161735565843382441414639572478331920315461499345860131565514769207978766706388318899136268633649726488534839975356312359457293018449488621608914913810022180561665642557017549200223030333195667607587113320375397886255329679051640533693408581577855437252566128146997309533485605765408709375474430526683510337830949245173629676683707670419870547736080587705206886266615590985876374913258401749480453681701260303418936133516290416005735838050640200380383709897141389255599598899643599625195163090696326175235460834908124995424577802704293907573865127705799459524370631372020981188949943313571772272069481996457949657764717190250343166555450482882895834124837350340662502692573741151522631006082903052469234076188618149341283614563611411629797681505497070205582944449626502582912139764487406495778487112359032941080827514212111530868110849587329014996007467492149916742235346431338510125155601495952160723913813077688511073873394565572484413944091469801886311638320327647604925661780909451229903013517184130260119742699502412274796703135348881256911516792961774118660125016552418177877026485971240079194589494148443390116834450662917559407142864888376110298869179925320580519005684515274877068565447548161601564829411399528577075807887343977197409061841754699759571781344027889939746930752028810825298791281308171556796141423687357832408785881413278476670556651433490093389346910915585396864192665210935177735159040112633790652733744226069469536018994774700421330112774377329806240351350312594545387446924085916848741147983651383745284726672412723737257696255290227347308878861146085388351645906987561234466373837445841160921101253253434806169267733556492044424579262815504157196687180550324746413753983350760810056782545989146180786639609744419947860538158068430764778868509473347759121328393715438042388117674628936650331179524670469164530545576528005332349344006277492468478934779095203674240750598781156276073684938755395400608440102410403991290888083053768829982656250548287427129760392982220115715346639264057755004044696655547261954696549956990822751180842252924068367459668873231643028266837922335757706689273037032772912944933141675498381553016894069432300331706568413067937338285080025809653958395355488397644086146010309555985316460207270969851303040502662917141611048161853469296394299086822120664993883197956324638120432399780274062255782801244572775486294691544200832036389439477907753920596847136339750040195549860200308679518661563920213622643151601776983357519211951366094479037974345324491150094164341239297482029713537042190379359748053954535559038952594870789039891495518564140104774290127509654527177837422813945980132309444861812855557481066381994471519073693437731907427472124782193192729920767759499653220842012336866030983368222484992999047662782787169398995866928852628351711362812041938100711591550294955160524281867459752262392536543939910344937269207625048587035182600959232022331029661672954599751392315837090238969755913546393402504159026309710300301881097228829062995515772143763641302990054106865941272852959940081299343698468450472145474562805402740693865732661485523954419110023133759245750945838753793578107732066941439580070263035507638667338960666463978507665423971488130025210296924168246028049932955914943860758889122364966592233149273605167463622814937114995408996510798785859115732673120030829410337312020894661086098601632010676759119210478779417914836287751674621069219574520558319583894907196626388277898809381580990798823432700233204684547412785763665813846663319780711718472651169654321810918660916783630399865639357881841043855867132754122355512606137299493118137001954079758953668706931592595254622286102665146483850622196271951693783814605954572736811445269851044787706525491218615816211573463440545651792949792514699510623899792730401153700668233516511451033339494625497853702686866743532823842466659763409738963154109042652317347665627579917941648438612858296601711143664995000612713384551552721620438871165008117950220497537922598778529304606808463079122772762263887853908271773849232828717095665989948012209662084019929750662642249901552808318000346451332106202436854305764299078721289613474081529950259549362254469470612001399995155362416763196776539489469331814962503830366495646792361620011325209465674217553575461144428882162007915166542255442307651901801933955364834302304382885574259972516209538666637243585174918275855385264476470509245133603948566375338516626713158933018114003878212094616823529926829169542580122362830917479192199753553664761575817115601859983569956167818164336687524500272708360338365152716093241970171516932378958067634965410623459829258135828041400297077595519929028645790883337184012218741635304509974423608900016647775179700078568751346827825639398665896110167691237855211066318184673982951625444795331401801794362209628177957113179985522542401994846323346399323946159537951490857502894180519568832509996627580844865045702031951946634106445555062979760853427142236150373836756277186320083787369082224430675353773030757899900470941711351697986811345635261061253858740448571744307881797598415556993841467204395399887499208479298346758289341163968518125590721429656974244490755360591513158163827801906604128837024676599392543236924941931726659306303132523452307709547565137256082699523219135226519413820799009157660758077649583145044128484562078703316115708428941643106169380063206895317231622774662004731841125407374993435178913493698102679207448041146670386877617716560463655105134307384658239392192100691685816869697209901864680108944467657752998205097635242282810461859615912212101196515238425909269838080935384291824303078893361745345130003008152483211559257743121427652194160729886020619239379962529102281000766022173005810762198308781704334103263088917790413897908945757374613721628298600334387030878179451043760586644815222076517720852529764657251532309218025688737570071507777310641878405893123323184808157251419988678965767350866691704797125263540763856609291708624061880248481989253901306846200961801790438117446929266216275104116434649016645749484246765122579490222986023846556479960387039156284762067256304236416632063911907801490497703710541091527008414888620991021403673430724670832457404491181892155801778197429109488205921858744235538403660243936249486503155164178799280032720677659134136041407062689928546708582526010497695702547717654212366808132300564093210235204976709414926221469725226412437448463800508472500956233202526120148779204799249648410660322225510904407090487768827401014627662927312436666426539435833176418232791774388190580501264418942992775425627913354037759574439784113117723031289245820122491607316031223727522136508482312531529646180302720638548435285990901976489567568554065902268338222066846943199442161784537059864562117594760593302299036635905902199104004447631854564196253358889956387690579732028385870623822960199410283556478617737830109399033358310473704310437719790183265462626685485156256093112650102887913401326453963784541632645697983302230598710482244305435063522068114713597788657564529962090578767314758496357690698966747182514331645183568443511273256378409509997719848747748353749278602745389924561957797005665213104366542125807911029611210086209964941578517374305521680105860743096820822863492830919882678278412655547919103374045351566850806743921109891484782793057156273739270774105153922327887788132622281534460318676142904258864243887206664778367473922766194385593010656635164179319753055220526666521927250439999284252363047155539140396453743822323498493714605421013719217688669703962430789261023751354217944003401645849763043504148537301984164766657504968200398513872446857409825615370278319034364506117279756883605207040464762045394883713123346233144100609369080896011639974919096711451638536679414444115742166223718037036300208381267391648325675443975271910606102718420519133314219131786431060710456351117516071271471881471087125933878540583290986610462419044085552989853791110799604497863518153149208485037802493785256521196411432553237938859058476216952863146108033860982234606487876831703681617784185541438269016824959043694700745842205794349172310437434520142924120792189763672588948531791304262926028408074418911296001499339880762859287371950445872513103532230838891758596916923240370545192450049958967715448649541642678956399246282180249025429097501512419722128419356825310594264428737980669114652568595438154575170198844650626752678649014488620232898029836000749295350070665182696617222140868954439835192687028602805902677641199992793385701252309220374881016166977174965508956891105812521185705361877278992282244178664829657721214658806403070237453253284140529994547366818609002564345493528587049612749867498827062283104759403748625926686377009537584518491138318077512149095390688558866925111242138607053120612159685322656563598602615537876510888405075542678071380944336409707737710722403548895569397821597654672363737753292983803354230147034759596152788091246474170540404032475337958125478259285346392189961394055473280084379385982526624742143478119660545462172284771249324624853479358917537297421927218943463248261488855502362806726168898855796670118557366314334963082474866527739961936410963643134991901998660437827278823757168837635596307034745194919496263751878232832502871531442567747506903807705019655088898620606103367526089592989774568457991624166694426601673490162663943566560442537883923824597686618601855393692665314979367999287209456546095443538889031942520258236428959669125784280691893058702218117892349242534724609697502567546827493942462832057054805582200298132027142696134081128650061188071933135830938491439961754856276552062326291628905763734984260033721968061461558525942106299287224873016488347026886781542935072146779557848105063862544975391572726529275589251235743846684443971235875448372206930571351517164388417058496914478952289126950118385219568012852317560984384583231654621117880889924155050309186450114096522640990223498617015256538631519753307094100492550592972367987103513011613513416671282063030653138352128228041828026556128795941433519765129778468496013594109978266753415654864285007761068484190879858210758816951466748119657749809433195161505811944655334644454712274007833219356856738307107627381254101549251448238646286005790129928478881315149539361037787739662667091712804241666386765872166206880823923994053677440034945710429561236121584095418028813504977291017460841000094744648485150015389338087913084172910983110292836157879082600471909569932385532129782856287033252694571212733368570154163461074859910716115242559787363691013731173749280153317517480930953460313449531686127792264156743150952423921900064100275664204045211018250204246724733526873075891793344910130647756768381009016154281509594225789904623150963899861373330085894690750144488992335609891302704984227033556321430027113677102097242151807107437029194812526457658041484429778852506276692276074660375313292386972627023935480872369957587093138238449718097152649371420165069421943565029683487534967163969540714184026915243218543884052786230991358239234193999906898218481198025394823724712569779573029411452085020182745032369354371363317986600136612747684545482207792958235087487711447345904752147000044019570038587853571908098105868692374496499469991605416240049473074974307695506253668210341333058180791457926530868611912658164760533938612631121282229077988211087839869700114224813998573234508384514909508795415836067701145820350435067915758653299852326358215688668458111204314535716686700226594123913061607122602616152799982637721006862355722249787323237120818329519955645883760745498459811315280352522481034048668662354663935663265813364818279205272643121011424643302684008260118777521673924302414356067299459192964183039830117200049870853155867310913435388811535442818491284687068618576379329560038978029127661651794968291919103325685057900842572771952688481857362697920210197936985526652476406144196100255490245978601001505726574713218913653525592868363696498469112708405824865691623146996827435942997265649830464826568115803821256680151297214104493745150155358846150468727045841842514181591839406152278416154444380483801028081762694743140293729132654983294382925290508692330764377935329760383614573932543101083728764229040450777145339416366276521892324703247285053330357355363556012657178581549478071225618042115158549874921176302358111576537929847176795938098192981123194923922244215669544327602040881503023211430619178202558643732753899479785143434333410784511743412123640631419802437067635993809811776135639652590479501417583872451867424144676061515438889108403605773612710763324028112318292881772625122694456000170497379245366292555868106276749372755449974087931233956674436150769367494096308987153918701545263296211912755068226375206185722149844624508917862849217892407013909165364167366302278540709560889066528363493678334690686255574416547276167885075802449470007555696186361572730153242439862268271531937899137315115424640432140123159368638415983072298336986012396281233154556572166094752419144896600348639204319484650767317821944610745343649801771909455906478761856094928656859214806831287177680279050314419391343739149206437543594718246608649347965839636103965252383302910812099034235369874937782854024813387562915477393026274622456204586188755993763767321859607578851631076084857517018424996028107540487449594716217145754434227381570512377531584971631584785990414947774942235839925419580533897099164529887632430152278623288399632378090852635189786366895349292150729327527546713695822434336347726408193438519817164785664168757218453472962175205793668687367662909735800612671952586479189359512644296328800197606397173334789070113788479689553993499925145183472377186144321903782972610820419439779157873165875199285850961596509866258910342953184506430747953945020558185574819670833376113387790859997666572676748905195782893572352778674960966326992372044876019107848350951445386253824404875832587076231750514687834652134215623634159841517415195509315526022964034530872963730795540555318339667982620432326083588259425086712443677578172388196312814634593397890458128972509845185848132251460087948255119888775517663314946973196089695409970199493809936677871251647642951924223413065730318328914254807579097955322211752799148720119214582031962944823313582400341347395469202265106405648448096271922453201988583461211613077019758487334238817512777897781182797457114439546356284642246625740689115801090266290493066308423849398048688674731751257199200188217172469888168780943516674981886378581921007768931803890583454577190360071269215409263406686126518805730816350283841669636204661317178653600093140723659167243144724353328845373130153082179759801944949830718943437496094041859145655965237672958993170762575313524789204272826235205587775056301980883148352630109156837013167752743040469199923360394941192363672370667893594804688331862800135258245751579166106442970182183453315366595483569676309411437927040640953396613632982614103682610405080570188019839687701110870267520059138771442312962161874639268797280286155669430288869131235188591497080639979755258052575174378800225837100927517632760241794687052914488526812303027449079148982767433183922102168867719163149241515526858882024604190236634470945265995809634033491872048269405164740186391209379369913322198683425054335185128353023972398377064697953583236684770138981658436416834995413810402844505280677448941224332908652692725410002647650425857245333030435929647770326824625636507685334757234793723896361175811716314010134633011018960868973867338598144295193257107438909226223901100673145161984862816115100547944295735023378028019021340869684768533567248178426631650843659449342843739142036988826610238283425201826905209737018776511968173843318257093539370273364292676815982236841740820092135820559909074336721906801920260574719552838381786906327247426400231359795563337378577911513560300140841742512635558476799190509492112602273994980157188601060243791835407174101956783457045666114325446521402581527937488768836140579543369224002941265113181014898786128110990025537140804850299506484324130797882510176501724593659090378459505093732731675603101788622956228227880094057217090674598914118860761701789390214819640105419843947682721610527579257707547978979897137552665634815112730745228949531933255067951575470940424896866688232734128167296490002515638080411961937092980110393135727450501875157661319009289744943516671067102994176776219532637658450367475133851197582440528784793334094729070489399841132364732129487727153470748006958537051683855320159062817148641984942213887395476003671261496095895199329532752816766325143884342655432854395122879044304678021735575710870587378932566039841577807692672893994595699479960869283161179451754358865274025068366218193385301109313651801693234015316064618458642795796816781821918177389578090458360218682171669478782774233569066868112872964331306653134877167751136918233675332084983026963725769947578544220934029242446964057455864642626301191924925873364019958450574275914415378671904572974882028612689945189478489185386721453272100851547223143926597380809165589215463436283807988678635008540593308009837715352095063957230092649321633809512639317294055508500643485101687394140519631035941147715483051986529524244657715854163928355144471957668089844752273842847310906625884865806679915385167695562578634201914813805539287585363472081672429069347668442447498420207373257823868514278378574580347104355010570500665398688281413371945639992850664141946361350936090850764975695619363977090321683380389948119596785819941307829859457884249513258748082906923165914820210731911739511132891065251207546380250093827987459041196875647921308345192431492689609766716064255406856769536536297843371537059146135952914214149378027943947642243066343913995811065599877173874511585866819802389873713685476389029952011051580491847611445664059102663702623389027437997124649238405424143290273006384527762303102253113935790900514107325538917118628126030455876233655173563514436054582406511977814767742726407809505138041963252391925035137564167693840239201973864452957446873524661553787967190399574587311056004245833462042389125580812445949715350609191890232614127135101948654265135758476618605754659782344014915933054149109907528022076120326495710630241183078369808429593825319880769103104956207440780274280704434564180312708149915462018026452102221506061732716651181370554556150935727859842368854094679071274043429214334742618853931479662327267482784473547863466987772940065135516980589851028018523534581590836595060572792000330498869392318684147203482660816000073936199227355238414606592516220539294963796113470147269087475381281413604230915579758986501938650896184613510812175213316915392123966522076220100068094846429249345330908558903198544213528619116482573735078449273254790651470791338037653502716341446184510179342558702808316403983710199251823318753932757827390520314222977391937152934762783148644788817785374932879932751080586634711847049895663389339607378840571845431457460611709455125877592001186333753921518482868190507530744134182734676515588654855820769134907588417471777777065609912917287051528947418500597402359305995353366012346747318085849582499470663942605120295331022384634240428009746620332206219561046025409578808894975282424606296159555338951603814240460794113604584421020683314289357016414308790964562356426256514744867518655439380327336396194050631576374235370380198677512896147688075081185037557502253489789692248665007689091342863078852751131355269382553500438648838235349027092605827267271145127878797745312159959757754425976068863489911490838893217507541566072742810550300111240175354482749899813833658461143558200769841122211550232924368829683946559875211436808549959362837466444646415277162682997641089627904140457781892241732370531299511708593048462477920198855458984364857183337221883629565282256029806909387497865762110468861078507218313345002160095259990393116015403059331038405693424148644096745934332266545847761844976534213233644063399161012301886475475245557116686046995137116949291739519034674854969639127744722275054392582131191411925372301549401819018125310158644515115607781730724705160940204943444043014140252411479664633426733856953151468410838939052917788922960809203013632975828888486804849388558113076404818195579014831015499743780957796268444856291086259798229128770829642972848602755548042513979209823763605102140955174238990916077904899881701852163787036800292187146456502598032080728674926766344065108751844762023642305586667807715739547982046709847315907485486047144292407130642167321797865712122563625410191320824679611850552218498250773756130331876962539860686347505505575059653394606707982587231008420810512996062064635462748999231730132370192633976776805678019766040132176841457227638480847054849597031309974001767633338447863885415788989223296232307729021486960728605544036777413231039014964865142266027516970291513695862464063055664927364028921239702218472488342140110562201505961387326889239935846898501403994084494900507091840642661837018487927489229447886471737421252130417099042787093908968916784078723114755270805548830741404846757999742233193599575769044145349145486074702481615660657460482471244143897673650044342408890965487114487715891527319355643231045726663293173000900225568359003668292860023202803864530699701275802702518743700569165902617280003011570376826920509886907704314569009045655134300683923472218780758849310097734238027681806323274127437113034756150965777556763826416736079055710321427138117948037767764615993082272211310381453493921460453095201028345521881851282704710389827630286850715416685971969446101390248980294574808571100119357575418290860175765239345217860517321184972007851036864633105635162796048787841167899049035104755743366308827238050110832620139013932733585048590757664340937600219597884983796058418285270484991673739155023178591930810056395805099580702374584309710336866491821670637115039326506542986958719890794648433864692163836689892039343802874136472598263077660504379725060250325125682170023511502615411718854422707727981549667505285265061167218149031010243690928946986663551265913775172509631007958030946259416025840176012911586590996275887010214302313807646324449037620686863345325780470430765966884619468652137926542380547160582512902616052161233894143103054244496114025141509933499713356828022085743051991813515766127466110814082820375113506920634027009506798719117072700330788027453795460722190347558199633347093580849887233393387558416083242198636099155794156320327908858705766302402491851015543725964642734241107303182243280341069437284003282626843728520321272876046809209253346441327758649257252334777668759667519981712482062092930409375320745197385315181810316405172053348857566123324123626911474877483964046012885763104345263235373523988771051949597154593337595837220556000037575733395017360468225553938875266211303839207523259610636249090886594153798710848130350974017919961009650252158683087633249172594604063438089221113844984530008166799792551744547197939684405142642919923309836459017700982524716925801843711327638836750207030851071698676149210845869248932168555534560281982109780337551905961963223999780687748434070749536279695032671976395521267056537937560740758029482618311622688353250729777329145972248167394575262987414852079923655596489245424763530622785920343906838259303165984948696138110882116421037425779403449898653099947502849287659766647655370210224649348190338923475486363712910948379765752538273221512015286651561044081252900686609108149855277352297077699441368392193865538084111567745202167119734054215449107287923705419623174740281466983729610863816240196440417432203207926796646691133094128506395170210069034822023031857667814022428822368083322560572525260990673140461885510756077052686326590052846535484480722517971458174536080220679304395625260293465146737617069020586336238488774612586710787241997455956265855542124407020807369401913465876149105169371744330273819156611537802095042334492101243819916677963086541032886668610610574708803791708023685978475764088773769453741421901053091977403394324760700655211549344199967186006580393508696123176157483280534345494405926167163776269745665995584947592074474813555927701832280680966345980693441378570079098965201925560349896073960702079077844785237333112818728817638340206579905653928344867944939976868572577780567946874028767151197448882525158556028701339777017447861169725651107236233728115836066981002341014895684979474728845136108116110926440468976039767268326568158974163923330724267870299290431283416866603893393612326548052966746661281660467225985760536868865168555053134109639893499950951377059965455886562324204449716768441059516345506485264197724176993794521162594741834546204013045782647213348390909638376125048211554955158116366731857695170913230771708152949723480787600843607773718092636561317045246135469843207068176207504436608168626658979502928911787306873454627385132761400750468768373541955711874002194219274879069798312797994826761626750808728416392839774071725400869287139630366045729878757149276887098128581069187707886661010178816810935018031720951024510847440568291505650405035265410395950165147825780465241218774510150499825304560697982362599212990692146202578847708992186296213050848923263828783481147325989555633018035165990594923317367411224314603605336662668435613387514129834403666797335571905765478068303467370998509205611159288449698624523952448522652041572846126247152130165218172836454100921550590471324493313278406694955732729855318255675064408349708071322765110282943081427246590718104139597389240124642866921734331447366770098185257621658749559550650625663850062942704092861848253128235338508041606362852021848065959324083413703339308967540589347626684441049875107630806352207215150580462959386864039738542257099662594336305419855892380870794240288438082228599662538557161739328729091284566724770183609264233090236696499237073184016942586742442851608059509032093121331932584861519842770899452941590818379197757166926754562012124262507664402337244080914338140326050937107163869300320683507465177369483099062061561019942745493016649838334279763629097433257477383872419201486024140914161497946110304833937109887804620448366021887519586774138700740750666462283554308377012560216292462154321116168107853251268548961736313116654401750189192419898105459124707642213345911338742869861158821325106713937961362506334892023682712432048410982287127175935747659959345233607453677683871770782709538141506211958132188835986687214633552001807880514113489778201331756315199601967287959612275284641059430438095152789150445995465430684751413506679829835747286837154403586894431470833849882967622024375036832331923633771892247093901134196127036732057523143812727909725265893208220889711853805995041853205312369003237133926378324851945414814154229420167531826041285434085276864907664720002287016039962303940453940281127305977554377857929173395392000197015203080182168363217583974315547978174776367104399751462215918303846174331385014820040874202708222073964608099191731949714385288029069070625742875268805960046950073661021279792176805403716597822638825539075471440766058630330338534770279427391192561083404955659553755186705744415664327372813460544097418867301025148491227167128209169907050664714139097050045073777327733261347898476083823631623417729907038160361499847113707417131712391688804407747127133000641132837539218112152548210777518178622497479517869620725107445743111356761240796011073290184437242403923459421570364640412561879357061863362693665425892429000775920646273882280813251403310012191584242018666312496961951656753519979199430717639308321546115764300524000450484562282492949971878033965192825455831079490795265441416138410370796366214348215135929972073980604036755280629767059098958585039382398522862105906855978466301930273972669440640725481355485228023578808637520156428490740509648484525777021574738958594445288602546911327236230844270836939134207810081420052167980241301946323830799372604361017501245758848041269453851104269589317590790431656916495870882288546973008285503191493089375326193756246149456626903260955961269338187857586894887960008702740855603638777117281101018625438492369348557586327188532141617633735749811058510595085386886020991206459984515619095914376993683496441307376964423622967010694840520964635819500134913040478274731685007744726305585145301303862298952097919126742792232397076870581798911005405779920482281121931626847661867408785380009630728100265702818686903197221963027995033446779488587079610798052554330273510717753717800782742725180940652627459833038434027143370282532543673024893604483533198743032821732651894664332862258248566673747104983931109407613598540081986866058336875694015216542702864374255448851341876474771583609954162830010505398046424289542460365311064326248582041629802891328207284283881294095545847020843969781139214363775567265297490886730824022333341849494591890218757256600276333810647527039300969723395597830395777328982604811146905795428329970169964761595129014407841215187513049121222377835103861736923468314213779947336012923720904262381393847603361499700654896426308356708726814975978434590281634850429767092798073498799725651736776494885171462977647282393595942311879968114809068650854790081673165973739845089698930434219044083702288774228498598169045657642267064455137620334725480730710331486309960530863605389538484898525722260894580900024444126623022929446085081774872653908562903811689637521661695776948884880346303147473914271166042468951778632152346000259421290237269795581756901376688239853786248637532557421658476042691202301644364460057814880120903323245013749748410463346291607011802127349135846972972749115317083171202831604938989280336484174693384230745315919531720009899761085400130793605378845603723990884534773784870135948073833204030114530462798706451234407622758641926057962641973105444853785363922929963789003451818372573134318893297612836668047350060422462152441525364458419982493449327849775040480048379230232133649329571572531179083521627462007338062423897281271159747152519513673820877515989576320199708255198729902809571715818989457024695275038566082195147423022318288340802553334041600633671049915954455857223325327660637022981188842972391578112676137283363573075645503628438105744040027310614512929556356960309729112139575952097615746075931274219581855183526062459960473092957477108875860128831459189666183567241651473393558392604360557140568843509165131796737409402565664131534811832375179425101814512401696994043909072042405475504059927142667297134290023062559698392835666357923359824938031927111832908550990621676864820579955348547325552620272689090301015205834455084082862900133254331339740032110691338812755145212137661946956149560871587825330752982413973304026812161056029821479974987379159434325521777663460984167583367780601550071266217298774165958818510183802815634534046677521692097166861686851507236831923204087010732195921236036336614913117796271469208643133938486284564052602724766764522423983408561835890881756365584756742837474120162899446349419289030041714014887250555284414461818747517070187798223481002419304785901004968267055702972110999328469156366966659027868709887914586116033178910914551886011989413638753242466209463876346782892657927977684176335667985237512247185483515255549516599958375018198525049051613932418895339077504895181673106661136602647390576162662879676702469126065156331381001818236733272678037859877731476326394498406249011710527263460367418065926111160288200424896521292017947753671810060344476821966069158514359151610091771749733518404370426772090685539851565816351122989003058401667083311376845549422252665570335256379217181021431428300685166960974712447572861973376306055875142990736928723096227947133133416989576190700828016878552127811699230756574534427410511056032960970229126436634206284567225255415454290700297897939377363826852666835911433163028045946610220320714860247838163747322747317222086856266380807212529307945037872581508811085652684846570467775879914245865968463073278098411970130676903050620809097060781193935987744004404582451503958719414579946832956337199493713711033718957526169558856367168362344875457739640920308824752623094724340429588232159219333822943800245714632018523459782960531298596991793725351238182084237594096376612070114361936376079321570801722702619833797007879394726259533823375668002748745131717028037438795700472043140838782980729863685305416604084367749358848050286468946131232522775218910001716641725796599471269151047704984324978657848475283734571635518710777383242100334874595565125502353723137577060995776831542981416674989394058568941543893684342859308150429146825713580344542039120878597530352875800718870776954984742626383074015649522885280311116156459520107944982119949871008027697407579908253168722422370398527849408341962591643553223729655659324473677879319469484038403188314100770845327552838869531015995448730995030435313331851561954760458145174313206603608606003721097419510239706992860777368214363111269480347659843584599405287296392815993906622525401391425105446437076768265445215085787644482484634153147446167600282412084578552960412578816214893422508899936207595452315430530406755533959824561290037914830408408774818509556062531004173761220940796737402704752086614694851935184661038019988985243814043386632467385748723519412858672550542349354730292075166232458251453048772118068270783496470496757455936493910276132357571484441999588539727416291809800786805534943245225704370723203508611405038706317501140163224252400539018347037518842065444992717646136602473479858003606034781876836719176930302070367587270064125157518214036035564935707434778107766343569383374836797952392623851802266938748612121668577427678127009792390583231636660125014928308361340610796367857185932890091171147969895863119155723460113258659092242741974327880878345382597398554734039489457256335988642616659212957380120930499745673766813048647534391205043296293405767923683415620862669489920262499710363491853945449147906562210335094857506702741948169878440068184463178277624341990671940394393504728523829350592670898594522088891344675986360089692460936287829321606960058900657493061610831019031184052102310583096243941568316453725892094139344876978602859785333306085350222054111421473005297048856711614511982689203755147053101610311791530132833200628656539848052091136863480933426223754476295391303534493754936915905635991041914176729842587900337388488334062280770132966184753947593925996874019238528556537934781550867529660973841565494796279315258262643981970304045148192386996743280797749274478350552295608718739515310950267386528384791752748615785605917104298846717800448174801670684763971078882642819150896099042578765418638555621154156909145294636754900469044599248614373718020518149945266567731394823874141891500254976604192528265446244638480712202547661914959007865616231328078538960293842996708140283486762489431527627476515619000079546104249488327511846068122514670740407608235863847476359677661921884139324645748424658551459070799354160357423129637088264121698370079329669526542442059064846977337894419256742336649150086597294794918111416310478552514347792550442511422529086604174733767447589031906144647687867409435890217801488740745098837640544316124672871579555025269153295245334999981368045216512492794854914178024203041102180699786212754274054834950166035503119181142885143661662843531714863065105783827921586798635027756869188536642037823979475621441290540894465102735063923064739582194203204218117765143683005877953990940279897594148878810927457166109749495122194076576653559026444611188076316226214655431151904525099680272824488157820613317245541715783528941146478012807427757210756757732459895056650687398604271563136812015882935130661346892713824032620774382823887678793573060524077638279925997707477813263702657283818988396299389462015321470333221778866333945292792496459159728655409261557621594499643812894832222845975471697766130688734356385970977130826749089667737219419650408056628225517517514326119202318362859811910901183036557659028389481283763600375932252924944019886233064491740133809468920513041001220956484436389449852315298938243480849724715603996887108211412068944971015051752663296792943764202326359779587773010286541903236823881487231667244805200228957314556024508707372588365168558082205224159239322772933116471821366683149433997384174039110467076236231661771188093665842190571946163111654687104678927171371345079697532541256331556298478692733436759182823102026296580513279602780938234100945610802128179579934666987907023754007585974014315438090438925069533628458842869280726056507603550070495760827742443413790375954732240445255757899533504181185894478124389264480583130991616972812468388497825444030193095238068417654461632924412718471025294432228783520637508353278071280156755016683966587585094249396751005449212331454319025282437088405397631553988384046860276692940553666445353917092120411465868919498597141262242620305046261000467971840700140352634867157091493432426115969298648240433968522854962169912366092585381515195481433992196634555541306237642518141695978011660349000377708347372102652562823079526521197876749006879003430645900576882748319500983195183232533869390574480097930249756967436411386112075945188439877807465344696868472348193698012508127698333395518908296151734634799750805531296520647231417349748515486318500641281842934946560364572707653408269624581521139356068078527372181311929288065922594595707034254387062193976658223504438339843589725588561102122571238953528028926022847110200434168834227482250291882224902665870746489636332306876006123358064885412883444625466449084793329865358457205633226816461486398819740130096904191392609393448478609898971929810272910348118617207506812097937893686799324008202795795611128433528507498005979217038187592412450935606112622169758233079068889854046527069354756929631482364643814272777580443102878457881842777209313708473179440615533353651249728330731123602173501817032362973525122532011100735066303168191907385162497550466859306614094113873556606312419588925469160106884016703331588343911735834172999653160341119981058057065110823629218275644095925542759877436878831281334578748329767358158549984656293465430575374871235882096155026905638582503810627676252309185367660278271065218303011320452487465418052495932328944025031661482524511236564406945728834125174887472443846046882231191052193890401334195325261432591611827688039900678075407949360261622258940361318866286900968380920846551467282900889659276015263161084599397313991831848220192259514007827355659949735604200736250322516972342594083829761356698061765916687030981461855196866259705596618648461792837221508893707537928291312229859925774275682631601452781724804089415095911952180114473031634426337956533283266194459470822491869012264890585206242916971714785592822261180773421955037480354044670316201383533832634028644167654203374227081577398842784661110014567180176168211129067627725815920308352144721649924130103147421233479832109903435578626445553451646808752442949022298395416422897658452305067425577117271197476238533615216246725488718323311945091511696506178697971188412377384716546093635212455007922859186581807742843788273512538530010111995145913861188649237513293883063600498315367109352419419276623180554097143614948571010229362594580079491658422591493727936221654145020364903347637504690213898401490059332617821298568269211295627260794914120011815535260653556360414669227158815366725695144308293590948637888304609073230168840637221740728809048807111036014442949492133096963167596629552986234709094914027269190399973490324746444693175645911024852806859975883836879136222416815721988277487705427734773553564173718606060313346007872084588249106663849974694106799112758961764986841564685145998157480177103971185019084011621296244945359953797970006320692763860214102958107363229409619674383113005510639898848176936475966495482817075307125336891425928283712485071402708088810898748963383260424028206256559482512042853971612248004525836221034636985286671417063665244148748358724611920341051500879565599509041696325075757690498238029659606619558790448151718085463630731254833290462103039114127140198561519703828401014265411540897121167335513302918739238805061199284302551469183955112193304295730253995344101775558425258153960037856401783195052107978163110615342620214735962198748530454873175008629994799641183494850417921761625160710576908480860933812010619914954698484988843970875791899886133882980429145943781540181819182089414500700056225370528421706571454853709786377473765039813536640733203957084903773840280019448794669157490431316549382560397480702564559415147568115697014308336970857582514318228095150978546611388109883119674409612049356043721237551365472794533942962594797514983580528390503047751175404540087208352513288057028508626479656292595956936135001327564398580456564862620700424004589920974352906643566617082438611693406615520354650117309397261833657221389536971256253665150556799910507750331623905043073001663459461793822436714454203879529874309696506866821922218417935942075658768400679827091872095159763219101633812828566824206110699440317552481108549263660611965356114965842849779093541371541027980086046537065981946476383364100324061784796929553630687437431430690635233240035852813423359642121217878789434339791310977584231889657395577335817046930237747678941637895181837046605655259315484066278092869992231569537469769758491821227216399673247217198590003432673902658760575216661609008854582184742071373409689008336977730992036935312084465384063124246667013519536066029782883645711878950621033605787283568897914143374075993341698160168754380584293145945084518762369611571329973879153413258840240841317395465174999387747153852423147683148549784662371049839459069194382459166996457907719233979975823236332540417960132427463814984425863600964826558894183891383044339809552513790840183317208514628164500374770133084297742728921239139756927624028415861494859841880493606623981652657147408323311091185461596552114124423867899261154076065589632858346911337861248995649739352818195325663370673209851576649577614462384799696547848155352212763219270523923672066457097228077710473006432269845578383799826226755923314548243364976363103903295373841694993674029304568897651893345781794883045405908390166097146351224205207071387074376583160881485208604622136590822082126207781457586780029933727423296097468740346770196031788964434198304449622116546846188607852371803987054137322187422617738024988956711861973981054340543966823316163537210047444443078574677784388188162798756759405322188512437528218894270987608578859991819764464084442143494004106461698224045624209676071652408262977964027879685701118036975415050354037893139351781468485432055938191443757343046245124501072118132915295720254077116479856222397958412925538764514230294995624203180150219151397318734022965891288164335487758623853285347771257822379549140757680374849320432442494835671165331360816772237897142118663101996530232630955537266634162311981364932694815088726109145307360463590279357119592488224582886608925076076717517974567849737111482406829287967021855617793112459214727088505160168405370988524897179566421612507848047948550462458951610873461557029113911306029320858790167971926489510080304936235567082652543597227335479868167061572373485418546598911354510437745059962535498451974818094776357851173019816449280404853542824544544099880285743348940387446990806908690336487089933365171683550649373676697623674021344502587433360886887212043597129698410136305940322264051790835634735655868984771861216806198816576672623606710489889551969766225105974606505384131037175629135084551516419832857702975489411259668274570525000134207738902201592003985803458755100166275224550666151342081636139564162347495852941676929933428899718711063708132526626240639829301816016452637142443059717567360352815225346217758888516890235129215598474458507790833469514730660991946611750596410775088253739510947668975712631337712906647859112083007594134529458115092644066640378186330709910674960672404831610474272379743233822676130791055645694418807742273579459575375069780811778834005403169971773857777112487070798368791327319551149608164676127274440191437197640048835286655025732268670853749689433805752609737875199434140728514783081304875461808803989188994202733283486185994896218235205542891389915247779960570346179702574112943100320289313680820293927067939780803310580497892727949311353368396514603625653942455598878071558706482454150553993617624662618929692023656748651708892766349780155549356754806531204492428535651876609667069126763626661325767437219125367594170329001147468130648378250519468093738477027220459325472313227488209720924987441501409348755146745893504273369790202162208466469877768664567391178160463278801189734922971716072865484041108007014960098502335914256644134356910286751566958771673512353077915081710799218479349684042952617731116601333616198109144993446223218560797477071832323333592374147340513937069581504347400580364580322777404448611866230585328220434394596496503786563661363008434075152949070930722360163540350966842136575972825809004612244654489375392967859122588876769559488609761615399324023946917259127588897968337114295181489636634433769768662510958760255912502688774835427962883198376276769703837633650147946334617193347912275272540603060563397697346769825058017962014880815425968674782701524562897460251433156179635568806881386299218092928113165882037728667939620063359372583882128471622020506452469013358285729111162780469393047275875121655355684849626602068758110497163099164316748799160298495679673028767390331832222405996065520055372036763864202607321158345142534361443075068081756460068009439569436231410007990572531274112412531870090723773330455930143126647561626182490893492373823899909808189828464186378403085995885626585848824821193473783393270703793733900438855681463263510206471213939814603459990071780044442081042813703727222996484905001672504809485540345605377558510878225123708230646471441217174400483911732821399932847321959110873656608782697524850763451088100678879914072058730123219397557809200330385825044429389803378024007570897766593249071182636507549681072432664022198240277554945182891485278410761140630136656892338589834820942860341432785465713575831192317353013011385943398350517260330698679769586234978675399566910096575427056159310664588773736815097155456015324773796809785570265035468051918631768005643598895050041241665617129266568318372742802544264306748406126768644510461818383915314864223102229981342299070700126814421581615390898434707055998502906759752522508397327612154447718741635662033912028063892221294416847535041710251213388928145489191561882474995548490375652881209156757797282435405567331218723984780485432185923281885413802399383161438270769686375189582215885559788877748870021839668469061518820705855273517032671298061259548427150973887402527015985838519370438093192250662036177772075860849742229067895116805665187928477776095928144749291060155461184408240229334523183221079037731451783083496576054502990234941587984535123077907700065905232600049895368761607638825391830990130973906602947066612166435392153089895980981297379206186534478057069694419748143344745777040738170243146008058758574644883561036133383021524583394924970578084707683721842503956414016036953602653501889823231449426979619384214317229006376706475297758199026258808683615933152503044681951887494671517190534805496366295652300308956516693315125572897660461446036807177590525473116819770843280795244501627461599550957480975163040843920643533974269943840068994453208636554538937232322015438231882268743467769874856578631380650933478400968495454752258429686837446752511638054840212504191579235272565685789700821871051796788872483959759156079929505857989224112388813238243714921447437473961763006135916103687922561770812423644956072673844555684315873185943688291966899656292702383363915417573387667571906136163306661801603427403031519939785531795193637089207018123721674031922211623100786557136705909894849010533709888202514388133277518496924321123289217342947742463807225473459476550887898180362007126634778589876768194210375196602227431624633360440803019686907005754083825381139600502405302932716329681672085070877946593805850232095939222566211586807827082700646352442735529513336385152914105897886398185409710298846307561701674054284347330508671752407680132339274048758722981914561117254556193352771149555968953893155443411465833051948463832760018265818891828069933754995664914974683784889065031530892938773025638702468511952667269126450208020505486621931390564413188355975936595342775238601632779486556291798140812789124147208884466907902046049824564152725068653847855131896676018987399343127199629162909666983540863308386195913503198020464645210222381831858732070339484631445176274451760887973189760377846251664926271579004196035626100802260469462561489442112838884585129573047468223023090293334801121092222792428435926069723837932368890715649953253250293088970817877023475904886794592014853103523924670908500366088576787105903144614740972267457495083839347477321686988363486887081158669485958840074664711316461390001052526879599411889898446903625027916832002435152026170444149296767063826144094428855007456083785080454942478660951521028821308977429099493212246157762120892972332243159779206634750395667468299341140543723414065071162181330388904735593708742625050405906698138737152863089875927749345915663423967823457376837073458667747872420885874518626902289289133043602668025423834867382341942452528352105917042333752264910476231395400485363234279363262560076553484449827694445878384166014293328552397562265134580601831810485418151863463856281350066269597138183014217030394886005557958580344411507923586982273453473485041988828585841498060954852383249644569659057853318105334729665305748900819054461230093991984330561941790951287140781429996117998015764477449618900884888917405811195237392761270112816650570724220558473934962008076959033711995577552967962062042330528274495556591995353556347273160812550003947966069093937762240790948057252894512322296493432223874418490249481572949013080257088632413348948070108623946204110874286071649187410457180239649964999085654549825713205192442949797992133692413496680595048913691830605148865590666389646434768186563046911878531610449707875823937820317713021457644223475485949925056474802921066196661377203109099736002929514229121779997169546683186661721683082850984608596964239087034593109137639421595968490604424600660578583990905845860911757001282348801476070184756405560626718907535385395450863452826532602581087558272992610912989143095415968600956570827596636770632399703283020523154480757954973076842309948218287589677283529303205388304427131003189588120639544099205255654877338897612355442184818280703926738995795059824795804994075133415639650234861817148044931938398801767590869187988231761907723294889166529459488837779523217574650615860990514699003168936573825609323194474542457207506096217402368420246514270131044774297993459340422942920156583047775914089516117247928018482333024653246877153643583577458351415271223431782586806327424911289846087977815095249454275614085136193332477608399650902764352816078770182286879207080244840422625975396319820549027577251457412967595922254583223357906415121762472119114941544305042983019780282289231869099178590206890788218985129412353228705006282979776479240092163749483193150687119805047100073875764073723904974657522114039248661642227449102992756194308881079096282301606685448588830132352518432106042339060121827160845933903677619402298520911861125679016018331269925666286081093128973224055184133758653490130217533658852600915796752255905065172154013800226522573980568441236214388206175752649552593404611947493109606085887856321549772513896636983494552543761422868579739413559677893208484153057737185633302883185622483910498053078041209643542976965622477083105835823845726665544073733368707676286924060003082464864306517818932054035573291400172249326596767886824600389207454835246698128932249452514895905321035384534311843384687477020345474080967947863471146822189627442577166998839788226616289034624099934444160000089535554044876998982550479891917472973927969436119928697576560847402757206988808896319072335158606263944234162414948912883848783260319862636498533554696506775350359858793308612509736972289172150964508065928337967571815656773675187430514942135925550092148572808237740599229854185455270153371330423761808320245451217442499528304147199663415408099027065419826534129301707676515746588505765739608991761800257184092158969481080088428973339777090526071655417561310399963613952322815600983255120551393071732302706600190130031858201129262155397822286402019515156144493503639648731329960417463926463434211998287436386813917602078742505823879604774507085988271536328878969658674877495397546667791627741815036999137399785202615717657384810324821020245966351356586871122104800955733469942711072986923643275737891791466432143816956759338846517994471503936144401957698487220382486971863234502670301802343608670121737701730952971282573826261441007352787930173294260579713035147671291343133056137989728609278256164400109779309983466793789471448049621899253987313875537253926756809995621381169837483028638385723529397936763782048969710690026984838892013774016453583156690508809274187092486632501218591939234126427657716577107201580310664353340756702424604716390670885096003273971225855033716796344392510871109955949292388097566738092903610516626640324566775257750967425103424485303459541519432652066057487170101831112131456815956640105917490013997992303656577951070047034024332502365998747392105565461155556170033306108747217439871072857646530783149695535016692454134106047824121196735592848430541516846273639950471780513032469777058827745508314939467738107111421219313570777666218614368844010862797013604836814644898128364137292946842310275738347500880264002524236648335052983968529342275852168707174819236321046563030945853459788097049513991288282532906471420909599131777875983168173988437397427790169678260249896833466043522390727399856307670221787419881902974990343937637885271898330843125144297704852707354489641113851677325848216850897813361041570498326458671224554937177051817279664843961758486594342594034169176705767606045141431585624118345432151754100828647595121158831700233766420414403123777027068915264465203319349082573289775330222729191892565310284610132408619907192531493843517535704383460778332623001582917710777649130630748202310322937404164170195114315294236425874949828572193787167676802644955979451941273063312646141472586607321381144831205041789344511118439492515087321185080671892940052501795957943256199939416926248735336635881720506377454892006126728698899977042987768938526687333092671554531967343282165099680718180177137992699692439843371099783401945245863047879982860184519693260404220784608378521463862240572399044445825326342983809569506778729519420591632937052468196752942707939864171835598367723040171122056929542169272608139026956707630881834586102737663285578081162628808783417346317320355080565753835071538268717119867071180589872643526703283825818461081471013953769933850716904581318265657154157842142482314652427043884917770162093491207823824862349488211368729693018818256487838065906901057579469891564632945419409525731637667213104443516298178531602602031133318427185822877353780440965797537187481938408604412145691510469384965646604498037530950480417186233685880487847064695976254730199228266405986423644946469940849497432889921614197632063380435996368919020573522768696606697497550561961399047922741705575834990702724307165217899373346074954732074099512700817179802373672792796310563870036463991753462025905100329279918632073678867217695528399379414703257437477876530177105581676243523527173148583678359140308695710604943974620723826043159460119097140779153044925830480119720721947264737047996129130941193605123972765560661581407987933365404625757653237210887128578766890572414526049772857569429408367251473568688383718406259079069783033436389100473218876241471941155510359832778607387061093115008851813682414797095639767697287959022352089924838395981936055510818572630094985626194653071037816178591875508299349054194725124026288720539633897168135100739050991036113380502687091594710480398810351354201614000342251197609944246410395587076446174320821909895557231956514211831783996162759681345032120115953963779120705818947996088347754187888576115130685128512725225850448173087268643791879584106730871615125647878153499979835132218754828853115260079436315150175008124158523527391717723879139110323205684517424047963509564400173624568889781320068476617183906853089329447806544253704494563219833642089169541089029714721480703286985016846014308077843537798397547566203192254193252115467578591116410192974759025442791224028205609720649796185358766998922262549629492648361014223262328756609201960332614469484481712084007672000173672781596521423366899229626722179768552260627669259201764735161597688147711695707851607865483036612973237593662962022842748525720190339456199640841534403366132635983088421901683065423881789218695103840098489267330690418101972707110801080764163162385105927008536448679536357599097904433874990016867444332903744228304366531593730689370319665629308349853892703622319044223857367141735768025635014726647313588415552009081578270102181542928445091411503081683530987974519994126300043923231376175423357190996923305273001233655964511820960822373140453946386863527891038684847428167016257245166582966842851372351021431038977280947466382614313827702279542309004562615224094249888727383774249489837294670976265664172315739391782494016272430027947422615690411788759668472735969045689232222896362403860587208050826538912568229199197195602786624968999666997420449842501201122502796921613793799088685817950500388046064009028744557897681851665631736412038875643471878084683799912596143658442091744595433900671728980379087043361489144781785145529779501714997643994499278120294959344817629662123930286306644064403612216473380858733954127432102351573049842688037296758962379599636203219967643566582704659979812153579480900876759560129546617858541166538266078511897668340428909082942161156911171870343496718867805316084920581401364427037691640874851681292961065080092071769305609490445552527156078543507467460988171759902923338735585494570198817758456562986168308576434527303417710769137223095734617582727530760071823274702219932549112816418177558593501410013683510745139445704555789991051626338363265285833485799615487979088384739928823490360858074908694973596764241845960334365125264622272669366110268351108376015692263792848505678626120241034303920093896487991401692505489903938263485995989293296685427762997566960041806456275349505192040621576123027225899446701489724634922302947303039741419726649533165068159659763365851354180556256351727031553418954130828355764031585627827137329932824347210597803049453650299801988040175308784562793755411456557358558362011692777830948100488723032859699913761357072949622847060947458997938274165510348255017001675434719186275082519663885830355791192525110353945890204058598819799565519986955537819183218154843138375254834437693474955838385421083175263683364332176424338146455320029918031946310635774667787921355507563407762333299537109665999960418882239110894646340121062413982357710213853743045924305195056841191073166992020583861238460370688558719239044706447214150023064730082643193906442920300464269074694251120766994210222339006344063753455882177219726383645432707385837513073661479012244591802885384174783614730674164540598810617994588984173084911095871366812280854471371963666755709017982344230676386639070953248482577430734311211731712544678436301882354394399597281927080331704128454704542442129240839268059193813246943807218024706939996507554239124519131877404358090658754154190988776663048523004114594739750710321204992972110196579931531902271299133290546775447006501796821328760501140392458916417891803744147450167053025618957190859960818100067219615042623720288091917788893478417965142626645731321011818740329828327178009445237938369601438726058415023967269825756886552639852695788122932832051759487292779374520710650380183567061550380217826297136458376385281941443483263019291978951364700666432361879160434616087632351867796489454196246720599300666886212902777592521018237066006990480986830145741164990881380431257830723146712959806331717026999400533138790124021059285773624982617561324238222731354219532295478030273500191573364396214884668103450810714352420722589848162310828555301084875537571481275678090415764520267178795274312589029627262219045472602753804161177903245273248928850128806448932691816546827551771783953156691027237556478738451906536504951914512219733466397893476059985388774179083401228729514703212002701117419888961101264215647149882356615082155530106683838103149465571797212694209277025659629438286479785453544338697130383593996280505070627077548710152956444717546718466131823115950686295703906165071129847825041392626230188736291751900440280663869124324111500266648648290452341054404317186523935979062652189641844410784163242885879716545766750425529911529679619517525299449643616921134776875348813805696001454368937251093083672627345970023055875914690690498180106313045030483582558095070126464558734615132462881273153341224813007264257375150824991572249179586195002597476630771023977322329775002529927259146163619426847785160793054544182204533816288969442254364202152681355704189900309825588073862191782086070639380866042031518975952651923946718808297121742792834728406095802063573377361243202261619942090338327188589920319559763104335709980663771294929426952214651720165790056749289330455806767301832632303314161634224305438303748580630760416380822939356443194984553992988874350572737045242678491594719513155008818916726977605024954798059392888885676741029263040387317151454479196770226584317119467650077827560637921963509052872681141504035141651683167065632221077555723375350425686820048519824095206289273331934968968178825200598926431707666983926175073949227501722726113336336601528278483049828300166933502225735126366972397674386367981649556817260541688844030000808653224652450714910224524562461633559082436670015198145929843491957311841816276230256715649794572635818096677604242240420746787666365868712389698983961958985055568311889865725093001201049257649163882992759565297850998096176828146921665794433555415778243890766224373301872835178466877822312552491474565470314670355459966411092026747985052106192897797979897666718668140342526980356161552317338550997660077367991237388642861546248643679066609771951598092818970466072328473413421507302079657207231602781358889487380029715312347038798503293246810273972472950370649288015399024522467905815124855523399161969944817690397764213609358853085171320961233129936512575261039896276669671827068617074699488831622853120501030718777147350989932917100897035575493474181720094999245815973841464735415219748427092199175976857511521726998996901369966688085677534353168943268548238812285073624194741806110391527977487476870074491553073087185597151370726339517678730905021659003687323685322128203170325111104520951075057033908496608264070654959754444491731994807676133026517764568193208166293571259948042162254708551069550581861304247815168249870047601156027593282601695460158975326652385577121117747047742550888145113244102989973196789910402778866480988762967151084770518603803532985937674302984940514713503937741931694261753158925216650019364316987907498282044915637767467432837772096026043630365777116133368952174632682797862601016715290288993731917567808968697942784369792978988711173282904468354176224900237796934391531187553976593104132832435418018365513278567768418524794191410559674702316660252104734310940019344819446863106679117351379156692187303131017464755719057599497044223541841368753161969933841673961989604404717020361939757780378226958693203111585224491808394052522152735240487413404500835933903154467699304855997499330245218183539900464539052701728588365622939046253104280758185008770031833422051425128839147790958492692689159503468775526118091738588878042075227008231879025831779585654471968816426469349716806808865934952128016026110673421788765702087145346704066656176937227778800420895391860463417780103083374672073469962701374468241479718503940665280335411888465090525275998435630381947993711792423980788743162598584069053039069459362944075443788556164911911783080308784976936457468646857004500267747562161528893907085919777655242579090704698536774855214079551828683551906274389337770777028808712921022926244220527764607407523442777552777901229491850299963606538094544821697752240356122635049877007866865423167259265609149205452854445435749832400081901366548069927930037990109618568747191750519077725172020314682928541130290470775336119665215971139382278023985618448245666531375188915669243750189726866655481598464424666920430316237407638016278034126307453938736566195668311356794945627339146754689424755459606915395402353646788488810341909031443898721740626559816080000852443847376094783445191167691155778879957706681690564450525012145733739201044045420558271903171656614274126577887746744305923786116597849195104869516996873744916187313324862047275175170071473489492691625088847936325016487318290184365877594833243880521443390944658531796678683115138925707593143242843010942521272708060757138115197286478178031024963267069025595940321957456185691232859669720266977416357897234976233043457152084011647431843331809233856051956721848451548841281366921609522236840009946059391059655119347342930143803873387944301090172730266144225811085120324315778925380318386211963799601114822377185310068321255409308421093785400860058801598112029928779070698107547939345103953637986123739563686466726081410370848409229878545761444041094344216920482718951883815337742492287963008436586335377999289639115963228116929673224397365438144308315503188833880582265974012714464898529011196375724082041370619518393185065229259106537948639776677901676160868733412839101562673084357045230085704600953648781510543289437545707842952471021337813699420280961214194007543462156614517597591849144685366085675458234243026989225979093533928848623986433468843493669750244275822627661203083977544773950178458800833739751177636177433348218270250906649767139765660631187627043778362040084004195276012783761903375718648095784830618018494902652304461914620466385084765848288585462041582362470447552909729251437862468478816429707211621660469955240166667342084100760386296171735446734383404250901318266965245368913734164862390403523284300864349143898799141688160272340012309227252517645945812371970873392057544748304908978407796955458370178834614794640670820019774685956738201832856043425257347625270145175839422502366122353739417569920494350465207236127661244721475319121820701357255258921096989745526720259641947165994017936967514477393562651091932941971034450560825311070208785445139217924671435924700749592827073070561760562920764071988155700297024278284839895977169803732272651219423949007722067232415335607525300542066054131280944475965512225721879813569232170834701706310614106846598761811309951008661738960477965711072201243252082280673565014615355339401648890641916541197903474023398347346697271968925283450284331886583310571734024999061289290992084325173611878149338038967045904937417055088885107251425226635729971125610874962108693948393887263312453267328929147486911057783016728387845824912290920376993205110030856475120923171957995873175670528484529975476457513664798040350305679657272419021629783793929580907065879099515156606853045903847366246664539180522383711694271104554298076864745513398626987776560317871729879042125630454580747596625096940340983596090776612270186322879703815971289038890893697344501035055632817946300119197962361950419442532890805110360899123442368432835491589984840686224668617572822692102180380111504144654450490694928118130160479907602106486192783158229042146675129595924546124032961863571303114570834510310856727298684825001116673183355499420930328900875540899709304811139961092646422524166015911203321149883606594375151799983557645594570761929962334407225525624626489863598574567989510211366196566492227281114369027802886128808996436267548370771689719977565106908678624643619829076259365318880696757264099966597644395666068804809198678341001770175295169185022617196793919233935413908293820685528222824164303786917771951613680300001480259156276788146213275163906692981820844391209119304127878104594057094420659594160447635519923000416176499099942440549953895027568566328628145858793817119924983010636485502748955455868036849849408300609290435978196498423380268369610111140585022318606935028468479565944827989849586501014720273967057038851549580553959045745218047274669171657576561811287267722067547778271808930809678413994930002113404397112426207167105238129299619038294194785888157007310316927376528109352087429992792821043447486075714754035644375426608430269165580273128122130623512319970790785809510104622847605868616899602196977059202980541790065288611378962338311557266150214622595720172815235381459933660078198024794261088702399332529084283444496889875491874490040168801339245841739586015539326367105229113066325366968842697030622148813034530713172046883708254169929319353658815698772312391725982626813702861225371670799846581833020809000236295696606883171848284993546586199375497444162967613812458832899273328661098257019919626213152579138805748868205884943833287654311624470921455824784133495936541730425193726603977983262141496472109041849078250184996432028547495309665559399781017388144218967258242164542217986679701224700323254475914262522199163264461733317518255797121168245784978769099804146241330645721315237590623367974961330102826405739316699441380377142070912193816405039719623227879604727212844931378538940865943498552755061395816956269711945714509759642387161575945596426604133343100446659281710021559484502016243368049050633998830452920310164147546682167267019274761650020937218593812934154280645382597880089134160594474861324741095984638803851116270848701079777778557768019050849151440101727954330255744763027674452161776323887106270379898822448897754440179492512299851237896960051384492526143769424387872237615427012157624310132228062871599834096669631881602476061071684150380419883722459638882518011782242712082560430352165262662391791365794736429043756825124547498522645368859092169950986602742045138661119962881934920533306392443582278396430384117843725466886228645339435264987080505455358350999479041732540263175122784854810036539691967255333121528199228688807030029658086357081006653182987353294137880565142334724548458975295614383719375705566563315801986696232323856019243968132329108182872929513483143214828243108761735652789249341618492839287400088440977790279990485697694794128180087985478144627095401121040024749466829545553893695554768878819401069905224113119751066081674183632495714796017899007981516568861417168023265392978438253594066853824171835171863365294642040229681642343066556191994214412850466714974525914546649738392064391983625768523035854911827568041514492329104379765370237281388996618906896342229482094625578518917564341159358333306031623940705182066765020283260975961704139866362616818227034319098218721866695385022691717475011805994972156934705726305185891061742013010922148327325650605453857688051233528164071762515816820947045616355641459999168570381628127830856766204065793283324826694840563614345711676248035851644696850721332953676861425856372576326082223571501245043099527867644441816200968329242968490604472846074852941500118388604987242055246338418477825343479008033971322136439515076016533680648013865775164488080321644978548211708208567551080619617153649057995383058041235942674006618843629690838806677237886549701785144008211402830493255596494903332411809338877174538071958089169826086924736106833142448127737450131970613205991679818283582448845161627543366150547042877821916599920207684356461889167904958186820518818117232012769303927074563899929038579736347823142176972411672103381029662799418662616836871445241450029042036392351036159203118238802004834051040874839535616596080945130782763183172077014319078154213060568538468381412188330555829395440470059095874917651938909003994951283157610017612524843399077832842389324288144269237005490000220757196418658432168965224829252342288566255943222738653268917247653532654092567335401677344134192093478445579504434664346914948450914545835360077634245071555474345641121337954350662102387368897674930204197579982495693410703471207185728791907814727818582725160861063018712966908703106064959981574127771893796720890003073052538360988173115908400661659022774253884391503251254316220889688552588744950978283781026190444331324149237183397997030859277090034195287528418969545223645073419970344164279725140594051017597717020748601057440549368140485879274954786940307916939431734631112426510892906881881203501328169504435563615218542233118651517530515577892091545984747935836777053629827164194975500867670069868353766149848181822251785835843256328480532315849125031740288189796609264441387812773508854424135069360457845651351680353699650509988416941934505233539452743934750486510284107152989474469556788515275005067230685023231040582249751262386252535733589616814672596367086083564343467712692814021885201309328001594633271700399752344632315275187018337009286341229998099468314631386307026314027131813296283135264271403497081099778042291301339648954907762669372817838916487542820190295001006681070653173365919920009722208336700404459102009384385445294283964016342749199242685746041959611922301062894118870947488888336623074723534544412491269924396454862639173145295078600580164255682777755834503299913400329365947451479196963761879711522064467884458602235835334596048888800228756626876926182834588802739440699690230891745403707635504152375723172171266837522440137066637148962041058261246612426016413864952754771026145281155051806989588307428031344450041649217798857987273149051417758785707978829618823322839757263005573728611366884632834505168222356782312788468963261523867599628171507685757695194929728817009980860166102730282972268223681732931685100814608427658909936567876852132483691251161934435206359243657762702174806373032225786719332637815638662175348273131734843123800127298010955384439448803996980785323483635855139607126406190986132669303827860356761182868323522541239969576836911346520265293488907353708590657263722093358484836031411410778258609422177862570411879666063113088784607255209637591712864008714070347437726138654729158260342852434372545125069189626466899062195705658512950325225874129084952932502839172113840339156414758455726830011512613397159989348012271210326750137463422052299494300942043520955653987766626497552502128111259514372114772772273079621791203826401837382721942687970070851070134812728290558024660175813140419921753204459554412389628413936729567874548599347665019597295716847927081581808410501043760860676376147044415531172815294085425951677351962402047368443253704253732538628103386183947226158850583362460898861196016370920893934370185064219821804764477554315964568225721158618900297860008476847545300320407639026494101112903953071524389357597724388686084280448774637358217261507535119501180640212841081518365417512267459914189021799276247519053052354573792999981292458435434460901872526955823226654640609235144011187147186219051222543400536385771019603428115242335395860774844770147371287414202052116985425243816609665734185187346572416691218495229437371763161747342968574554378346036737815622820151669309236020457504988229438453442661649528165368243066854108062396488896145761680825602133083319885459089690075881012127848755546923498525206165474612547310748142785550256652097075490677241744934965021043343232149037472935817989753031023395481167450706098107040154911392667307239333824494129769610202837697636124150748227251463493753425383831158333271970164483259426516470398233408110093039895485431150701253165843714186436959632374448885363607993477183769410918129413766841535368901758550055434787809540359509517081136517907290291393667005996130330264328901475726849102363601784247325295137697735273738645312096783729904527636919436970017828273583672764549590860322539807642453861370350736042153375747098008445927397276535599382186002410631953439646044230403732700169891842995247422568364615064252024624514822530647134008678514237439226280612398268822775054761940049289707668601276644150543123374555409957056927279711946189095335022401038450045846988193105507623683479952359853006011333486134378845018530760980359324786737153196328447140809577929916580941650350080622366790309191150119649968294362768211443725862218324537920662485700096885689368157891606625369379510528423706760285491794837266799070812726806674151329754341103180148517513892845679551095545467511710750671084421288522665186827122583887236219334777568547655985550154045016155875854675356783185232533993641856463543857640450336212078358069916282649634790383478756002588440353572338319600248486985135386221380599030625820661637389721774137316816939947168200621879105443611942944724763497596386059003849566749741196227212895392440103674306058214575307992148272486675520383328900715144150001236237678600305705801461668847872366417638672341316740569566972577508786559511418426257106777860361635480038594741462930573126165495576729541072492883862896880424731906809509764101325237718400828473848518459500544821117543341257897903421686586072892105636826077297189552621136945213977927855708131717752696764360139895463381728540080446754145096788097456861385702520289363320023154621166953726278712832002697430714040635862132375839222358075027897130944962900157884953388744339871087051376952860742182946419299023255574766296994104019316651981364469871460060689759424184642531591005595044314246644439456248672868062891000465291749327028799353020637137476065791454754040916046713063743005012852117669629062347269604506544724287844250059174567708734248956025976880797194867833975493250108710362879512731725680571536173666459185421484308726681263018896287383023321385140832501510145377452048352027075029925603237942885431914654237478441820291270874981500838144679850181894993838681368021412078212495497092630291637861672897237752712999739433206139667398068951282231122923699209253097153543481706627106103907751211992383764604375599321070415090340172417781482411706419296074405985640054954139573994230455233760174144362273850367700376580733326738642295604186787179504148747900613045136913882754985749357892355054064017104873532384079224639739092133291358363648963155568287494254934160136379479441789460617919381723847280095758866552056806137767648596547436181212965823956276433332914632296137039854197293498567447960041651362930163139273628559934145047076185241627819782472605601847446026281572606793720928790489681457922118328905451062237192454743478203699830420947188658543128145243285417622376795720601320566271090838948947779889666361582055359787144635119982286755096170919540236247663826507521617954641727005305601118348771178102480639967133121851255010840629509633967439314592886567040098740160512691184507680578126280196061055681557562844474484395322006558387613928440540907377532214388802755335239741402774712034286297587722113431061673305131961540306429379227489085512803552012774707109012846545338786216676977077727922119953448834837665592042846128737762881875771032389958434469903805161932106119089727270301005092865521689660246593734238452515844558069893034043920177511283493093152992133911813571784311104385673732415052880326601159636824266474755155180387030041604327428174892104874292145049134535462843991499890000912181632696887787959944081401362865406216948187851409584276424148352065226553328404313455117533231392012420412794559658262885251749083645740829644130565362799770079171447242503644449680772712176932423092242238033832128902735560982939006015583629330909231733591975204397647568281502076938322921604605315586913191114422503921273363445842747010352179439044087806854005305170853256233573859038783722695072302814722063405264841316725686672000184963644049352718070572769585944304504248201939887826638336942614890327049532205167222448751036776637454139306682608847478121997024838814525000459812987435929539152556443199123619212731928296289255947661251078438571317979705585727557397950032510339004204921727957699898367078154829375773596708030639281829883415290619094920286078122491846494322584776562951777968249487994177342364820770333905431090477831236332636642256666682197680963393133718156489671847608493933621149339630516872924382252144708664082619983825811372113578941321393317525697572291539709955472680435568521358609448519254270722340604563435355762168025574753800249430451456168313630725030595974002431973669666170352687226701333842989669580942452434872771188028235347136150240400031732575573623011208367068567119839505894955689838159575305828314489419326704175397520187750002336937946418607476372880749345309770746418043869545224254050146949036711812820699048295943447128726044957991425775964840864843775316683897529304757511670382955764565419157421912443972477361918779708030701517983669967291088683949916103055004628309989508493307747165460163700213448599145522861022424772381066135977443054985116201916712547878450298455645297201339087553949021715533347440548424680467353067853625202027643593159194844041620158873604669247039912362299979890798757856970095136404367080456019538429035840454667554918520531535260104979193286152128344977647695733340071826555617287651582796849153840364494229138280404079276866732470696696606174507793363330322523178808988908642885337469877234038570155587216423032683969750448254224184897165540154660926371646874552497823549675716881915834467674012189228498866736862063946642663491486843969326155231114610408946979408631279086924874708267719619696319152860347442470284475079743623177172844815565687203175555169352079543206494767216574183893563589879314384074081379008339745588316375075024646556374131219015931286510548587368685114957906454596852274680887611248444869793550284212741507016831960937528775188273299386339141534130011297822794738547205189554041715315233817065059022361324586534782540459309798377484683514152200060678840434789727911165720259195849253826461939871762267961524527241673189759230916723338250396951898140299798930957966553508272016905457435967721520195584492126198608238683474704065920349436323475663040284085785780121423041577868857414407986140891326175456691567679996182351901346182296404375918464130493458776482767311535055541208745439589280820965085519398610152311314306700454890329531547185278924281231291250773689389929825158195751524747118170596830138278620925404747403779291641762575454636632149085653831602634920308340328791452151974952352089950595792194123507997311672344020079557537157683208100587334833356206066970429443353331651931606680624982470827466776438960333171990949906039838380933171743763931275464335577093501027100115262515210808116093453635972644934718015271777989414941339451571110407516490178436437951716187937053317409688454984435878367886660530476267617677174952810007339145968377272886605792262410273079139044139664084416735931050701409469738823767611712784356085902062302474524987318475205490235520255055107944310256905028190635719717780721281787244333820266349734924235393405387555029643400754215922494560964860055630791719438501357494843818595607081154444850731335200573603255824933369005569298089747411550195384937680956608763115638880385346485239724895303965369256993537397862847864901644606182991878211499169057871033139376702137522973226051520244337522921858229317765579270849626344334577220247779537415110618141328014530188742509015946158361717917439997403435808401875320241912495238540078407234867412072798666779090641688056030119785860289877509317460634313736918199855895948096899286451999984543875891703203819136150853892916220204293936472970192694673472442888476815781482080015442977248520333563318716710750508379154393584480324409271599972748925136342514991385556462418412734545719346139469557300046543342631378189932592409262601532287706271235589482496193108698129186243599312651138057763168112221485486109143272764370680881885003725779036128688662897740680718264147606141035701006315920865224602206733047925218609758992550280888008291562011379874336076273007904892623616059536500943754379519092699271792875107426335603712544474787053404795973656992967672402024023860971076925137846632303988532348557152376267330903632007875913095577563379134018885947343199246746001965908116601450145913312722076610343737880504573628511942181737306002090597727458754369428800074613478061846559578355084506190012045891128857800079200056016368480535870421846791802915925275140105301039569417543271952673751197539097185095330935592382176830718862263661961267272174656561191630519519577742774299996388121317303498640690207771238416978978689319501429521414246591883289651643504771666075418236381723150612970900438542380298755516301299359189285970688802701134081037273061352913892083330628837485875728458966969865063605489783274471553364393500936126569989310483634686088395072357257066567983364151053266967684626501772093875562742315919774838250166837349667034664167685300355323147533922665321236235270564684627233003483225172391342530252002027179952365926964376522013339230153518497371915325120874663160798385332280341223599940857567152476811722769998401218239921710925546500157991618574597766787389314948709325338548209607570493674633732838148661112133373150940012935918436387640723106362731203669223931502213609926363157773784889455650725690511413756957170656652339053903347494820792441676992776646728891175926072211370724435824526381009782206717050703316351802029740224450419236597496431407698750566464889992857005921847060947225330768479292929826468498648709864322163474697208817184155037158925012286819971827263993382323615234558052720663493503746912100956591566991470755664217062235354016980355758267895758281210153558827406162957956922392917909730555218550522817754919075991081106614022236759671298006654484948087366545860809654059591398594669735428637225063511774731431758274661078573417447732847719202065813947190431675418523208638070740456116548200431199205337878987714776940834727055623123658506296997176966753087678104235507698431105241772682987755349190610666975685881136903047811298874865452705887613413613311423386975941425522414580091475061442576887038737850585573367071261033107518825224768093542291097320256506676496927427490945571466865245807116433588406180625450429934118229712841143646086234932736480402398787451585522735990807746899446203525532671882544663174578598711317575983668697530152524718000158779433509011310967235479159956647610129916447487697649944952719925404462119669578259601715868222133014896265522188857112495681129245063650450493372381895371564446180823017728495219153510571898039524204411971819427076787850781281340773554026005662322409432195973433014084393714421720797095838288657425089752219030835339233361928893732754330211377639833212925303978199807591876415573440363878020669903068162336351567965929989257140205175513387728785087132327429496092804065186099479522680220482743588882233868162404551330533404542458443880845665258404768330640230183219011098746839666081059762187239338664509767698693148655733779987540840380634333115786511285071905609258132078699039220109528488992423074345426197955627228801132366825471696345068255930944959345622801603192481598723258449336412026322846480048844428327806888393056557553201081058434605348283459388526571605300242877339778550177765357163973347410631125716100101504850288555523988906303684666916455729894919917428520202290731215109035988392794490371800505732164119614501326040734606537022581245523844559438679730961364799350927683514128392898309505311881524125250462227746266010941501046309394493626571334279464073929865589389186924264458839181332195400370211571648880602087155911286571691429156508522808488388828836446306775325951241076505221467311050407415318625080158254604204852240720066297548029953854255606309428432706196906326576883418556565681962272358040410544192912994533116394004150327850256265136266849593671675977383603783797697475184614536104932627925766037390630332951140060312047515964038154621834078943036645694669859241040161980916338358686702455129658264104696862071335872395343793741790675737043535453267714339428736649897129810616248865831222883331458510506656374075379024228127484083869369536241059894731915134907035857189777324329287359732311566870618994532263319067730117278881746649851305035108683507674373184465764322182936381992381464623846708471160872060501170671357495402134342533490355453975427037467640757783375426039082702854681020554931047263797912257881582060751217979829235692133179429549372120726126340921200337131358443018185806309352608677614178931006335096564720593779452498107345782523729260299865310656285010788560256472786712682677283123068577239532771426166357451875345687479009464396008927780600515254598059314741933081992763924174843185571628292799004800203795759328101297872253889418394815595637012944597311825926355553821568988302193502791800495973593638806079860324698191670990688602406824220853792461224828471657206167797142322369976974354372482226691464670211631669758132278680995046831451956045286473204135531543760806661320316127573936120243894665616958389448911428315756745468967430778744322083092003502581821480986515005359387310555616555384597147630179070677954284120400278131263802702305521005945824130773293656755194804446612901300773143410902903834315663593048829486359031504597127344560279159825153542538564036304272789756228619992732904601243543205510531733401539136717455454463234844895381198570380807891872686935190356484873643057733460651267324533666862486917866757983897105671134107280111304596960161221220894033854579078355275034622798729854283004473452805050788713449955715244839934355057636700847358194161327926966210551351265626787770436325765058786028220735232807871693650232589657008430536514478868857524008517176948960262893184920187997367986078669685439612055892457909462881696593118204523338948644640295441506347614854724451016079759077000888671690802553173047598808541092658833599288355354138896808426246132403400664294958974345054956119201505385180467730677425444640491417928592063679060174234363167798128453305497671927143015528826378178278978502872293019110531403586567151255639838710083461469331855326797014403951890983015125289048701206141037982082498458062407056054697947296704268701566774444051010370368546775332418064908220918200449631961051447773748322264262916952293721450317813797891612837124078735372057612610399385961230973215879792498146051955617174936397990684003223730776727593740753043041545869419320932729425413997914753687587058654435265783341097840712051937667246941600448278925346056473254182778955137297800618329044391507328948356405361466576440247382074062143752439821239571833536697584217896369578220924794567432404774432299269102728989423570931444602642124838353301674490202624401728334689119583537728783391162049358540624232334477608529209533140394296391739698983647540868257367918264540653957020361762890789024612902652361145819122921890155830057729817539578918448363359087370317755923572719110234324276663781280512813773620290023982093371299780585094822237765273581330043666707265801817339492921410221956038586782020223582626727490051757873531080455888385809176625570678269340137712767738337413996634280610742466235618022516125067691729970688059192148860178204859945697234177834902377498195300043619238805065490567014235219719942162507622739603871645769565983330467625849829598157100683894074245177734402889101360146021420730580788867680783316294215221272773321495242948677869406877018370548523787889795767878476095671689868046925241396809931510829335633856043537783156129934885319100073538972134424262877408509603503371679129362418696298473809100184854889829637532655643444155884748977161513852097622534015696595035863893609665871355340486933750601207686153939488730104170359129867400258741416435654333005033890901632182919002430325193660979414095564414602994625341492102997647859027561160477870187964727645086827548385291351193235351721400816536849315831568813845061985674307916901247689728923836658426778344417237877348802403328636746533642582119370828025839223537020919599877956657646639111242400994622285971499124491834100795123843908158202878268871883853064023135024591899171359867336914297568534843957086569163883115561905922633595784384931508214273839995757158090415873930192431003250729161464276018112347584588803069945674946483687309197160922661176721557543568366765676293306846099858025465844976700279686676095386333216190234173496538103455019686588037570574288185907642621061190023342964969992540099486303185355805671147253186469415064302582488383206839270295197637865748753913577171040080527790139165505977284008085991741796589833452548662659824765926723033761670363943788591576555603353179730596132580221671564268545225029061635813564486849131964775573916061569125304841632018868359021890174539916879491338674241198911771146323515969145715557121905642704123220536460742283771743309833860667624264947643123299072313384262087848280565276520199222083661419467719851154423074161374180240486259310319881514059660587372577539986391732581809777367180742447789640414913557169939518476453269382448500761831152115970462465632581159733885636302117334253543142733622049037132661986236706371800632063946186063525767805110834750034490890118698052437380174866945008950002356786135195767911461173439449429101241307114543484761100947572931172562453084267817423067771098540414153485254103902094670075821722593729778479786838244948628077392213268502977617670370143612400931356871281471632981009142002169622801184874512981086200099813519319586786712375950482909539997016386048600744288452045758351915664282229321435061468436312269374680534511427161165541900076802823222077967433998404362277204398230875129626369844818182600460915705125920359031237550507787867602345886210615559987546296016641110610736119010315593845464876248492503243894350890823001064286152398268787594118921565550418111240162613012056086640681265960758737837296578918674606479056138819429056744220914890086670335131328926287629933866861082458596622837083569626857434555427411924520517231670815541833692599507056996868747795721101753914606948942131904772770943208092893430487598633310526958802139790904550546772143071767439221005981653944236136554714710489891628705748820735955103258789071424653546244796113474338331638059433857256108065501229916488089851723751164482457560357117881927924880269296871950833326685760325447373671821934911579841147374612183881976706199899707854047626944144577496841662480633015625134202345929853827306301943874393183717115665795540506734858368551620398498005010428515180976052612238815160089751935539572561771107739679217848544736303486671828577354255629746078990120898216475632450696446794101449068287259949083995735410370871895457945247782022064642419439619726361659865425966660199917536729517926063633066153043792145750666337607392089435143376679240302517827316822476742053321121616868775985461114723328625413572357878292602581090972937377393352428972753322032149963784378421461138134859215049309422326916528752184727152840396927255229110382345935416984659868468971365261363613374454677486780877747260392255104524857361080290305601367806514480788833995062353239531272954427682464481880821090170694822247793658170255621013697058624958925536790685930473062445886262742614811342452907995320968357708513755422852201413698787412040748122552977195338832482635911640865990051404352739393574664296580134970822557494395811090101415769838327409442343090217990065929062118948980081145467357619897749416652183453081795967400788507807546036597948573045401515713560997992794642428299865478132153140956730557367576294522874879041951462019752997003803899257998870026820403030455420149953447750621307139321504795891508906195560421549393593748650835342780871090572598439486813988278768476006602263409542191015603322530377467498808205828385621148641158803397368280146111795728660255119946581982756087904180142692732144147507254137252036503987024173089740836220434026065480946431594574615247204610210811414696022663804446939182988741044127001690845947441158923440022333243919051321150558879546988115794569815711745947119476068142539738387434697639691883096236121918950501956803225536220355438494133358586202396783227912175324611857603799693566426604328169305783717661016351255994195127348658235399210807097629385878347762436655352870323295438642098623534311085962242783517781541116090690449243420065930619742001741719696224675642937051192751598595511745261922510350864154031744343135060180072667541518042896385345567146162478076551276998057016013879055029046859980160148036244829142610671415128020838174011427744731472081025860165913198439894201744306000215042129729226029479677127262501676167499115732536868758821571407255211817107363901900384767060917851784012705590706454590832995889222509279471404413601279623365393900992706052849957204213241295570174555661132901713043292353566149975417053538456842940644167142749678736587431860682362472556455503846070044278734427005327380365145034734621022229485214088503350312810544529470943914185395555917250411945364370036025970696261085264121709536570049007528902355472172264078924735304026505978467257489370245325709694886826564889709641469210426130498748938474768473803856658092520320469780339102048875528359145089783694531170829511094012338873597877115790320949346773635507033456350189934734625178281990015508577001752568074591578504919241054483871869127769177495215913359247898034880787311456720751801743117660177979447968740463136798760083299379942053052314805561606501957135832741994782504738006191148189138330808650983889852919080590813497898916863590632178839220368701410533905300598970604542201537270097766470844750654724934263645611688123186647877737847871713984292542095301326670342945980207685007158692556421025946245032229849721908476504742122647566783323504152674197734679516559905029988322906236005690242137136478030469389778749895213072689150057874037365115784143947649581385757436215346314594220203626234823485482590008046158121862818292580645486479484654619344375063244375125182088814233966160286383177029338127101857172604612862002917765608859420649745204589805646138921288656301795913652653599605745815902010744480225832360127811989746491277825853693449533512673516625848822008765065442013394876781482578558439697627886164903554946660678641266533461582227123561131490118894926337781861163603720998929785217880231144071954487148489231365161174700507404498193354209063890518013526279948341511244258278567386666750235248774918661418187661561143438732427058555522631663715242911394556251924350692551237737756220363535540760404171901690395735908649247990300678927934616955388113647158685995165105752580080104662676449355850007932375981548606401263738687367651741972276659067007382247408032700155005028210870382461229208894738754260295641169635534206170356190617461217501779771107228849247327012508053721863579554953250212045339611573362273313314078776193124035746700391921070490388362376411209778425149691683081513335835280717766034384256081644815726650784676107106859348438348401189787193847879880958037535443389513094738142277393637072285846420732103923138753915848244060680078247815799569217084810100449766702831780986437448097438030585813526780228593183429135603206723350852069084734774294089750932575328226999610079160071951564669222328771265610433486979722643966156379619762411747084968838511312290560290878528057278084127407018573191487471483207460203204931742334087101427465038242388840098446164374258067677133951272289350423664057681134313904926888593571763122372718536850366234711659728391540747509624584168313368771610690946630693148589831672268188967428715458675824607074035812553945523483154677902922083300274415784397700953364359306107270022632481482912570021706239446391261837979095965299347203632749612057404740472586258504044230820071260237800599734250239859229327134378443936756289315992646111286856598647582940211956693230692192256875037034678557676775786949430252390906364156365727395544870558835571050408302391555088734970862509998149871194782658370080907417456528157450991211905477566371427180388748025809110714776262025915749601955837473198348325703130810955541170614146384156296303670081404630367706917418828396538949224690193072950014236670817989438733301438168356792098943553882314682776995042455276853955505006415136849030964387472467777694185723153376886299214455163893819837798766590284389052161852941317560952851435794146689157607137455577521584487463030381165190479633505090065917162291106625981297682621876367700470082245187109541540063899891578804214705675953120240012040757589597457105566210663088330938304047571479112789487928235690041635205097256309580897281691415148627985060516388205924197757668012821045759701740802151789947992908146490315478597917205174301409792180174286365794233807835965207818337634133350417192077101089948062292906933650687695159068513847464690734386149802867684898830667694261927281904955946093331467229643969535628123273079001539979044434115676967994893025251099215812730646845541942264754040068799340167435710606146006183429213694407981394213416554207001193679056376610950855479512703656009410843765766760978639106470578685332637277193901737977919331023751613022397466872374127340798846528319241160944245383172303191366735418538194408195873297037424242611174205055726792632537934868656374195025581576431853747765092688064079606598600671034532664757886957333839318253751409793291840693601317375053107383141373553361233969581278719717166785571564650720589561663989698632790179805916721000427359338973423043023128831494918916172500115282409356513211281203798640441476803982568807998389396793948735421562032251476374838753406234997856568668095892925688641679594053470670391941152406954140164021038516593317675252540772278979821805718625127921132531082844775620479087928080093795265560367483456378231028111925131863844624947529048845599295153629540344909053090385899336162132892921493360806045552384803426141853904027638109804739401047966030817846469062717019955732768045572151816714369197974976495210675061193998749395083096725236697023618339349392424707418262598966478228910375445260744660810922469960682083258902888692539565826936239041403166118952693729295849045117729219680564633636092913330068054175802800354413975497668938804122403973309896791371871944974016000784765873566330355549690641239650628210479857061143332754695327277704678523539191446391079995579641223989162243392332582845495663631741416946576330274670969248538013992018010943554143594629182988241952679464683264379115890682027950297367188091073823567023338883139650662907153354967330199511886256750203966531265046203901589250792660363977993388146015516172308633056739830924275198259839583456979386779931219891607387358227358064736842010784041027321883433993522852346056785314367531489976006747835485397085966025106880586156121177355057507440417018454695570934011634765960695149295144362970087394195480450463162184777357178539694357482536024347755246343225132409080391336312935803740574182562061199224533353249202511112721024267553228180276143761524942039167889254205304642650384846816342816017702343040150790013557428883830556421323522063042278725847608470221035763187111358376204068463178140760826510882878866182987617522043727038046146987323801198109524391985639685926666211205022318817864864005709406031396599416542535885346777277436239608823581864095482736390193044740547455107461115758181869766214594765833946334698068400751304145428349778133428890752761545563740766754700384453766294863125600070017518118055572297957664224274700916781577882612740229231330740457971613498588037482094151376069841608535058524505819972900703151848076835940551839982471803644257378295250749777396934489324774934978187901089583546564948451592284906673589653966750767198104945663629631497699300302202521507952665012764389108071270026291387492455802246932400235013649676635535370115620210857445374182277528997274096816601194657718639741202434594702315743900566328046518773520187658175964322474810799483728780619494836317138741802372187295641334374411700409545803028563195242925901669891242346486019619377412208770339292390580624151412814750839214388307111856296443701292959128555360339434488552066236521648914320403344044576654927432660792976566641912294566875979331330436032868588982694209464960636322231279280860982942679309887601610646887806970657034236547033632962106475892013435872329149459720872040677559568650017192257193161494110492226176903459853415984280268283585953949518197381718292839495490925006082307361171722539500353074689820082553832975239070963050739025582135335848269343655152320952509127854604529776428441206535731209296435324617157179358979718877304116411879587962957358702151082732612609708300148172864357009240079283416702066491191994319023182298836840323302894882518937066606033515971155895257265130273966538934207522834239588479942637541012906225984116067662465801086691932475487169954963000866639354256540696993618367720224161788635096388489060911044866981469611876257438382317208455001083248889247794592970565115442188551092418307324851474665659745699239265407000865965969743485814835089558269300692216309559868439239919293007138857170704374750079260455944052058171927779911974781060893813906912512449765953915529918138052811309036362139830314302505442649095871783769798452103348721240823025503375130438278116101555098692621868777464927781394331849569109650834275584907646794776590999015512217163051517845239536347896026485568194019320358345729786604939818544116626558713213942460702397863450880219963167124064132126243006191018302227141507049069203025959989243886476265367373671551299973827805716418909716927606042256904433730524293243121126430239271788622558052722066849657003829608608765050381315173028616251315979082372657780016634801689368360223930102690430389458047711297646451035799878203525031796016043610856637045918202352658040002517518488357998005566416286480475014000941416969536070406229417927864217736848444671180987047693634914438406512181367567720399328936814111260350713805172849029239334849365124421230662359552044291788974153166086310758698131900956987181585714028208214740918926986568105185410506190459671402914508926452097698331361666639337969782810285765112762116593785855281604781580486394209642069440350728416359987017247117185064475570950261244206461872376814308270254816763485253014274174890689146261620089294054741522591350806893261019973788329724976928354469437345060928392203286847331905937147081952518651486800393432018777075800225813540725655309869685801158106201964785552408633623375081544390686947177430613263196827037459765581625539079697618271674153048410105556636234285929824467511144157599391168269817742542602468480639003931404959431085230803979277655680901033789792639694647266706250324652204556997811890748072098193571724127132880239041013122149126446822042304951886933526878458918979554722676756147051697904377179961814427473525841811081300340148859672484051821232982887407749565496976706980169823134501242671441354295670177887730233476476988143490535191475731258468188064281155750206526790056468290962791687831821942249777720827619392875363335746748423551416283714381915802486300283219112890921585522118776084222811768634937545597171050119841817849321844736947139110274243671611015308733931671887478419702082916326791553567257127495319047729618217245792817422666820430767843725905346165152486771930739613607151277312204266566819209677810117861279766572403619618146483661156177948725684497809144636403227270753970250969234829809426563173824039844860317900980977224162197959881228817752314297774863693954260079704063159731648465148513447320021727850714589380638915464691915287670241690005731923546317186802125903871006212339090578365673295453622188373920140110499563760057668843379738558292586373375089075346012160926379269363368181403246604254989957570213962784530068733741842510601126482243252459570554644034047958789574793492584959951678564782678626143619968324641880154007030210375610445185688626350952976775626390863412221572581798577481351945940206330345436122222754529194263713583190746753368672605729517393951772801796051179814544138733659818815312998144346331847524333157415457266967376024019760090165141179289803521092653567497816047066554488776247291040226994251014309025116630588747566244679475032778657059698506646624057976450554658968788532962425731263373085435325856666316832419381956801755852561526319763848046355721432599100416216082071832676124913492121950979307784960365750857744944759923881789314675383607777991254735107582974048545887087530462175475661659129510374948754324375352784719999954349059357860532533103497955017369357948888319003154799718403202058956519298343642904682753892118080790950604632955714564144608519587204835423706036242218476187666772762146556370798289498810371760215594854720066231986654127694972712096753130275980354176190656876182457576786127241956393051588331248539928631452331653530404036731878648482785573152762930561623695220561271409810467035790924534209010863641088302961733427055559296455898948109464379335813314575251333031527496108417461349559235597308932889321634490090482597889785152669767114318246859024686155900003816903737379517885770324969758876457442448388924891728432689508089145958299474911558025454769673159914910592010503833933100363014327572816751992934682634630838497646966231926760783647385468952077204901080695547600054217248307475917177870846298171093563243631092827525856791922819471064171423197402204395827988467771032470097266285003050597840942516269699480449021486335821973082031926789547832663442690811932950420256557939030727375913983074982291680318145039410608513377943471404119924435713981842246130683542147516677692681765669254280593697603264726346168068967079776285247033022447102804108812913909565004904850536907292504908429624551341839738224439607617448634763829578332941705147560700364052618138077720204882455994018540966001656977099570497667498229911243913617392843833324694248505420727713059405104169167037439841188978223404211022053716146508712822666383562254444165541237715773977349160222593858144214809252278316683410986502705010919778298399145959033426890732449931617640230866961305029296743223874772957727640057502198491567546807900331865921347710454926696232020143385234953268371844338685124033433205219701962984550288693277784063490189112406006580093880767962660958312690918543637291642650749573188496733844982279782097296230458380708420306328185006562368803584424873222304283499797248196722819828808427523125772109933090754777468214371049376194083194234286633273619614517986898572849745700684481783581802665888444428663648676793555359230548213880325209459130877984068034911219316825482175971841094816696415256240517354074464315867921195152957560320113685582430988030842715352594400271897497692885321315817425335127730360015085439610289839000523778362177178105883944379914990825578906408320415342841667798072181661219488533471748695338767691985842276652139220028313977198498305527689111488678621225745149301809439937778037351584874742599548549718670738935296229597012277971185188400605135961172946570921041269593784308204903319102203260318036981619774242656996753624401575878446564992015340988490082170603721383919644484192150803366322658322198629559633407696145487675189910062662511932390111009020424546904097588652666739174224526361176005087155971721434324790243778760756943537997018573961197378796122569082614996633272423144951073269854867425183420077499427314225853104448522336417774004628028010403516480039383479649232536431091672169727361219061711844378790150340381909623717867118883578646802069166425611188028416114419645411599348580414736725719714137186301483527539407664020336765664141473855521211564051738058499617220918571490108012907862898225402515693279250169893732078012436864912242832059058644733903937881658765880233934508195438745372875420857060656802543810312701269906002997397393870443791777152205033893294406357102727179821425073918681422971333202902047826272231025961673604027931841897442779026605761810243326475091965441926430348419722052749814219617372472839407389116285812975542990668296945629687382934516361220444572885059840167249831943028959646141563022320884567579690527127983946013742659593503983162515576763180910082531469982958767772214269854142206616712329583501460997081878205872554455759224164664329740009577760319638626329169974546076327121711940216116646777266632366725575543940181909687838365235307740137783795166400191687154598284898120205708070885824559786592752257334000734734207057797041847639942070936462303647512663280165039454713246595965401949225308318482938488570349689322184010983837382857736397673189245521886062437540827400433772083175114492364739135454027910856615955220899708773318050372349359221515197276128988112447926048300424229231908598350791043359953659140437446818405251043853986732889816384922944367623418601927167670349484448994310268775964571633422573432583546526473276502054166737182977031989655492600640284302279847695367450736882985461168644389647400130176344855810000435768823906936629233251510623577296705837935319210512013945274466194892632932438649321111862112796441811599197735059490379960619191615116774852624426507909786241637140000717228501445055249882760342907169792445179390900586889740399402778275186871225288068295999100570297813307914942621980594880997817767207792625754775840879101295210544992505170117453234130667911452304921174661980381429339303329155499973252708466949851179483417954312058688457210169207741273193058307411793202290895444258708263008010305255640763586454352232355203312395141812032438582534709532569511673260038457251544552640505818744404120841771380665076988938003264952249625073160582412232403098686939278874957715329842307725002188439181635960020124016129572393497083289600877086691873242295693248264617849885270625703592374274952162764926455547415951019948815141883362539589227012494619485892594649181983174470546527327915898087727196643738230103821761997294818583126849993460622621571538416926144125106913512683476913928141021288979086780259600215400726866982866216456206612336281897421467684445387379950686772012675523263803133677264254972561818523403169583876011259654516798305980258424635612481900523181600053595881740509773348938161347488219004907209226946784553940576648515207070767328762257744383551158442568521103715632669652281771738413780838543299081772954546974203337290495363427622593663193376753709071173306371221655011258108909032010336229635827390289620066785441046362759844690320445307615047067248263483027495852090421569558689664929652336932466991097452242234196634907634059791626394108755326866843873988833162027112509619607095658802385375790605588972931459781398691000865577330161892984760769527462170200998233098226250622378918430474769626097273900928817127245389611415055033323081856245414581000735114662316526182717688246222170644287278728122494577818892350415304876848253350743137476774741003506443405659097958156711976410313352619724117183499526422877506712018502994011633180910294926820936498872904383150470892130378298825709442930807550031865154279031934066991991255517700436487868912289882082849739723673056547591011616752160939338349648613834929700199203748373292449769847494819286902571045343782502288219666237603582591895998595496009525110189815462370165102856882129622708810185466664321111403652173150616674026603449955404652824166396751231032308164630269490260737482875176696076333006957772754587650910049025997545543523984886661750427237815466989229030891823744576269357317833857199960241288470192384991989291183148098503135304380439469877046299970795514926216926649250927798688028388647186583522382509337396915371270017700733991235050593026579608938621472182150676663536931586203807155261367540268624659911466913840534278172389285843694495951666845276261022771924097550110037988573490628418123410500690867992667600629227977065086996779435835779308190475139272597927526457354736074788947022213917035415138539355876925957311140435225850725288003571021597398609102318503527208789254623511544470080988377594661784022758567106548582459144016168695100321389855524313059710855300987378647996284676179037724147747338884118226270513851707529502394354515923812594627820638110786450515708741680977079011666481377906570394857504875085441809097252085721503783408015924229328638815467577988050047185061387284257178811549346562224530886672116951716918751930374026706997788144539939243654234492094051792603921190858805409212626118386659119216051244247487011598825690195156133145806724400147483301420703232357303546538530278605922160771104824813856059259716732342788297563957069764633175487332358114957143392419822937830982985691866961746428592311663580569161720734031658234456652309320121385097435098255625952066894962921129100101958823900118029220970974770211450947709980173634556412590549280277010194627283836828679292406144731651863756597190348251618342836234610598300942292289187453570468952677508185357977317282702100327580092669563033389887478951559952977634042314769655113611631572230937946154025141573768475122299628941329529296896284325409442351372467305071972933248389848683414960101679330253138575196309608466956303012434985544889506162660446745357585563954283874312282776266954650761340546541754123027524121164791521758453959785615971557198833025759229684929859867862802963019081348724372084811325944249186963409644424911465255197815093727228317271737623511676488853185578705714743018067040563232748330686301088352809783833938901365237388089058429676760590809896339218419510220408180280708873989640587122764809105640543339034579286564732340863346439725988107382203797103070750629628802763937219103925551831351103057851237008728358432609933755320517317971126108014996407705486260894703344519756047659755458436082014830025164084736901066550597674833423654379166068638705683407598489102746509398562908719227434128765198681295692555995878724896989834728870887484893994346273559048930717408864176574959583075673212660414091719829382003604532397802910026936625817572977067953762783927565899459135009849968258295301661956870729489764456701249598934361619703497101157163118806067255935214959428899543163430381707098841604316831659682340950565381340215762581856418441821485911086559390627786158575245339905242346180818182369686815530639346822434387384241965717005557919222130001648959407970061666800724771132788358686070916196495858169364880490173796174784260797174952118775139435379411904563039567207467499101136353855874607140894664408226767868371188886744669806465035020983304348127555179346632468128162564766817155645744365550039423580177811144225751562710220043804965291449031089947078356448235069153751449903524176245352184194741205479174444690911706248283944108169676528388374892728399113605814289208285944840288430416459321023369394755076106956106074541344527626542916479043618927818948277553328066544425715744377015420278132291454673837283076747861160420784281739678821143175017204596488224386438599867014516387371637345909747582117290285662348690914737562938039015472528527651704062039357940280082986292927113741570627693878622491759973376852648890696423365134505744294348385394964757946370427733261031804134669070178599431469321038323708070611104091693038655300725390211576016642266008108760163917856699357821275092531953803729579079871498949459007644086003834570639749818575290928432655649398471192317831523484705215071328855544629458719116612797432713102150027703054795181159194565795831615900476248471129767488686660999547379783224977854069378750081776562835412167517630804148520289340923003611486877682369513503075305742766748465646505911780555300347837744173378604511244700942554385795985241975976442548842338639536247672491997893623989368403357319365484423682235772208848388598800815067854209920042446457147589386654672856751389046960063587592658273015102124524484718306377717563634375826740647911742262592190308948332085888295116946785348935813215298028455390509363061589896426814838894004646862587538540208511298771288235384508723226126199943643888689267069582667097088101857044815490385361350475420326187795061242519901665091240861603293805624136768576635879400841493628991828419007769401112905247902184396511455580033925255389637552387857100368563488884003972354354222419064952065531215823777174713043071121080113786014157520108451657878591749481817875739574744515239537488095377630703273477874181092807075164240309778341783502671897666444279634263660169987570216476855889270309194727163223971986722567213061917763259210656697471456482304574627778178476242593281485847861048551367352859170750135036143128702612492289277493733659615382383532255869886793237094401749284642720749850682029095798999198718732789518442252138724771280325732467611126852062735681311799942560884538372476511078384293632520035489770882772989362902892341165590808814799021970539801866624459785236627413970200742551216991861844002717327585175418362200885823585609901975374760118035294684712254613962045969775654170306776439993013943501877238396247241142571104679924106839005726885217430414013354775875880772992133358574921425363433339376974941401207604575783574660946865009783398630192997311527070213403171948347695825876245486714536009005490980084187772407964065001902781891498607221972475599841412218681522909202475620193529758742343240662517079343762859915806501484199352159847949532207219767044539725216225569979850219384615099576910129356478576400763550950607776618444947813377311016855414834673126735837649603236230446429441928441286375256465910620405084269297559998889962434459689875300923951342044054536229596064531413355153548723532751671746704297599503492965305789896452438083662776683688668392880010251828296966933267580806684743515680100802091845273798180322016702481283207684796519425153371450853181010284666600864778456368398454054839879567988677246971109297730662283042989042582536909807157273561711266754097727755586165405649095476128035512809551046550781718169733946699176570430400037600787789520319746495159298276859376881727348838868064782429951585346600030948723087094691184825437434191321566153690509033254628715489666679331082377965625603239047447230491010321667282833628178359269043574923825277452407543430958935974361207243293994283122070125939152385098991798387899869459426272237236439115106692674635861282153278766229215364247992195885839180287612220945297860777997819642449854675424008204575240824762817186724805700298439025803421745612750358755593152497789349594089734438229236703472171527463751222880223527025387725415621617468512844261506966217235363646236599513969476202707686797540607188146253936320298666736565606697409409274731766280142113124455776672389080935244770241923613815820443274771455475441727378334610647302048195423585430483742815130370351238405628410146313122606821402220581325143954893534909726458073522539971468519428456398302859090825450246526592425179117087208072165773851091062208043788621689459720114014111932859832135480458147183736091551953025054865250606347247703166153856707790104847279837626486778149631567698775650181782599679353505404892995138189230569630436105817189755562523956797926889787761575744993503770546389812931879960827445544717501070828553097309654239057634149668131305093690227638300789087692223130538509908164744145621929328331129323432263654131578877627811143532716445666625416818652345880570056260881011210420532658241561388602408974566211483790915902854699996025358759807908619817432336390069700861981367964796728851054360851436446864721339768394742089365333833524660391359453222564033220677320286987516089384343702317019508400043322366279324047613431638906914928043297256754965376381972823551498312709001848587233866832334420238147906835115312219322801657700615153648537067925740800649322238010331493527744659372552007253272950398228006800147882861051045591841170028250104179842297299532446350209921464527412340622213940966181430257195219976258229768966127738922663755564810373318582218261762386212931755810017294245727344119201642517092422207484299154974979767146173500042544605997791566220007403518212594351731187787159947404473973966723676948537400070425189302993104445339068667497031417144164511052796845139015312350544044136372141662705508958379809685830956047633697512227525572513711739752733011034170211291388359109117680841119918962703980341058246163929548738798345367428459432336760586815480302339302473341734529150449559837936381402093426061353813898506943962709889102415556676035470581058273759702404210591009606858251827979228982912840966393439458097804118133788842272324868439856540091653758057947551788138584487577236160569702540664071809645440216999883971356385047735506260631634707036076901303541217341989599495559841383708827416330314992588223066083354814638426802429947941410121065585292089849552124471392645192237828386270019175101793496587383187109499058550330936921449378437203750910479813747704051206498587197988096758960228897185361652804617902869982493679147298998126163025055885716354578090039121308011934804024172466830908900303193933009913794929573847352818944513073897457214988756559214208113239780586729032634579024093866158199940789328707820991125363543197200868316806186805438496830403594741485240955202039567162651110273492970613622674455308115176146703144250864650920656015206800018197199756979601809218069836866266615419569765095197559512377083264636223258869961526546096194936823126871710689923390449303730989915766309543292374958994011972019828340670889400304387086143995381572574787578807140651538655141914575060231376148034721940046850618842058705847527173458396277643124588485880367847795446559852788878883239389091749012265445621644760812990309424478053799302665325670129154608836492645871683841631552787794292335425015565592408829578670972615513219065126226625174679878590500426886909320340155345988285120271761715197880935791245557457017092576299888068721176431828158001970272427612071608719820223302298396716636165337778849732111567067984054946222734897841593331786145416155125293489461046790754616811455207201370676773707006913971591415351682842409641358821417396886511925212813119380831599344999851939521077535731344088107869774148988533296447140080062770491821366661332930634204175448152935932522840254999271852645761274401032986306751731473392173937365260865213900052860287571569073288338326117000719919739513880195983342792779188243161557200767399528823311934249219073985121489772301377494416348919629034567223672911476824490122919093244014802663230387779875474173541113058330520657000063212423345663407084087589403534224766749832076106265466077146628188326444141334384977041810183826063033038485702933000404125396826697002154651081663986577722254600549841483019090914868581540612548434800937650359143244304316161792128655553930625621907187728726205086708099863465993151002770728090629824482211803387004362113273908903553681072396206385992779052782292769800096235707142062009797001081827028562309389253061691311495049336083594883453763856798292450998587852261318496357207493891080418527051756832214888180218451817537514390805754970681480693376347310236973370280758508998643547703707141856278511254430286382060882613944657520717738051360869983836029749123916384754404341276732097320567280206541081020995005467964197564820288650059394335324616192243350981598772338877206292973814175894206465776902275736922555810365739173516028397444550586286506032824460361523157459415672018002020319803403573732297553202951571112277952456155462363591489398004041169494733148214505447818163961981723639599111954504907728083639903694124634426705264632238796597294201768041763176927772569112086439217820306839180845843970884004646819215811556050388803721417614613309509565033641099896417947650853187413479535605552146137754919192970199883018580306867384365087949768330566377879477556060580769511000093771419966974993734483782515963758617278451343635093718046348898017627302312833516202905862114634131895857558471601504760924735927586228685326322465933442027413815159402479114070639442909562716771911262056537896889187150137139882214537917600588150153602887207802077890332781336865680965087158177864296236717339173639982145883142863067703258868500653204787767314592762211280186913322563879654973654219647945726953495406750414791390131485159118233445667958816703757616465350583518612373344082140804171691816732715677375746230066769689090250909923243950091905116006830969890736308433604132196356031240594680131777269049826829750743065252466458914098368876221314723780470117753901349878516231882716660886550097807786258593342148270345363079503401794700538699077303626906942093448893657299299476845002676255039946905544806255103656752180422497912197384242173481469444820729864765289804678272495008355344463387030283779348171832016448748872817413624070972990977836460178600244821228013730657017335684973954237435604655386842595978593825560576755797280917908458726901224994827921766853042415884043355207917567445296920510900890837929333563272839974453256272135996937523122143313794764913973321929930940492386257426709173279082084175034119975729245677499634284678260030913854971584556929708100063430314829774678394895163002543030904488096922239393983833635958390213288856951982550004400650500733679874534641984846838266109234900907278591241009084645446896756594685384145853781084737630170221528216701577316848642083236130356206526312800098384614278269636990340279100909239965452489777399810714924586705499749787554833555848571589011966510391704208960045649052464825261400218445163420657855749659532876215305540141970869770401452618143330416379830305849433397036590119138855146144054098217238409748780183603286163948612735441533514321040560687560082212644258701988478321178249538117679594874833704267994537612585649091242411008759442916713791495566184178484508624578443352922558673325306415880299649342542769349610621979092801006970720317274505780645205104664032643512509390109149251251943692587067611777215634744818860357639017311240870758592673961428996283006714412495972006438148817744786696482466642129697445050933674534040940143908679659842534159139810300759641022715837223909804392768174954632213481773895064810703716960391848451246561719267506913017252352080368429645759457505314841741537918798052814384297435107340419436132803241948552560485586321176695213837482250505176260917841675689611814913494083524320063766292593020671069692368617756178362200644157495399705737230811753489915447156126721047870356018215517634095229882415791181008813237303053713100822397570630429330692142526171559791405407572711832457345946433379879447900987052635596455298255268610295160004936780139594301990356773661781779780185722944896308367640395336878532891916326892432720415217275340104169604535373735895770343158741561681589148731242024733523865442534925837628763144137409925861329392960376243506261551447715841618644005110461361306632890579273282233708664537849688260950761989260131823890070078017853730671531634241595802699098641593255062049583973426773381900113044242421635850103517964460467925235731033026983914402955426681722134574325416743421539915318161552566910501525722960609810942868265140531453987930022914066330049194253009889529458334663426595689794526164612184342830703085487443109357242601585483143293675233212707494754766261648214095363169730645367382404152300162440628391122559439968753173497329758150068830937542452037256147951973849295627171278463282334890889142700874661262860288884193958998774869967219751992205838657644764681511191302509147208711536805871672427422360997195625340059469707570459812003853265513792482468785127651690490425645563382588845678421004248622538702886258532286840916082542792761414813982995048812950224429407443342601499440745862005994700481574860266705364360731121319522828773002816955840709750554909831657149872711922637970682435505908152620208452510816211824443154139647947613845658690996068119357463977298117993490449730548420600564300047812970995347987855763682755454105212079106498409753965394250615664242777245327903256668505498827755152618753107431545271859945820044582643652260032064240258035361205917130803959670273485904698910047517379713875817668714727933238651991156076037421196847209106942002718969456853709683947596502269339741868576101668665890021642381386571833049467120580900251839374385591241593709823469066214849840088202621976961983649658425299941633705159183985889179921062389215065341927833546710289734469596672068794061678824266205388188808805003387199988331388202667929985519233565383222283912764616737096392006736331536792645792672145401196916465010333903526724185336971457766799371052694166170099965226173570000305999736137829926505128010338561118621274202799798080469400372455059591453623270359508453375447373180627992896245680127391669189136597449604728807944444192838833853765240400719875944451993447416039787820296991644196265711976530266975003384442700891402805296819410956152170606144517953596402537535316330928244187844616637782441076771534813701039697384204284459401793976322978770054043136795735076795987619440339970625270551238631807980046145529185737694581462664103842340483831181781759612773153712913536093203595434975908559626838757607982659483764921474509181628797189881250988919133458667903603092314147381071547990263601757560011591728585238256009923918082067691547104455151553300123069084750315264123671034609347113256546019539107562884399884511522486612187730220779998980463132554264359396158836680936810368144805514071667251245439879791300491993699794318520088754245458274781343136580103397893407874879210077594415140508195469498324050108493503180555753321397160340757235955878366156982896619962599965683672350151923382898437133430172182336784689572851147082676169517929534336467217169589118081344591260510336225543806527742439383114241335908358250425898012573205190278871102702215220445978088144907595775203325353287597401883118076209639891448871640297832204853404117205894781630437284728687955978145793317382349442571919958009533334393000132383026116264731994514243101336198921793994310964198414095146928114773775768752978716996396011032492540115920578255193878893157122808417587431057334039911238918483463665761911981361843188937288053873240649469218126351212736907250273682609164319133078026507592016644402033017076948951603433332472402281581522488399136873534872640125114807469004007477544489521447669982487063361827861535162113403699806459214211982390139202674347289091058020499978979225528499096437622484489274281536342253084623251365448950000837100845573070974200945788778350683219740690006229900940796992071548532053974739696190425102806501104690533231416834864938342632417629880591997534778364247291684766026168810153630596701339023924875908787415136937996661110779191244754432151822254224518390439859222973192292305365281086139563359628755419794297304921157401126602526346226705584095939695956952383810756641449511311807329144166560363668674825759453527836149140810100897022523807240930612533497406937197776804053016475401801130817382181540518659194688681756925395424300900934476856075391265177762027407460738673772172081450551943775820466426912109681893453626617077210419031381617476979154802509212400875203579167292893333312721833027205371519847413798036188113710867316212252510511955959146317522301419458004245458112916200185878926921992464112408074176382337346565570312576699388641734479238598334154763955227190648930317535247628089216253549235409984249914131008448700399799192650322071260929999922041053411718794927661530444203856234356925594883801493976700770651957605137510370619669037681425701408355948188501080780244424206867567116022692862336577946294486655186134351806763230911808108815928415089156310818938091892998717055302322823458899482764696621547487957088804159692573624515758747212016133195464122128114044946387618443904362111174913888754544267978130402437781686251190663486788082056233688902736263588941357538819425007032095320028526471820499726047191146963588466602641662527583229532232132759132789191364919498877026848426884771552702622909124315459941569680246366057595675040969810566544954772804535632730891975530144001189255440896901119726499145464364764393954501632517508250688145765305814752588688542342081373436382137879885557758910042428296590464412906725835994647731148613649733281067849170759907622298933614084951714323504111397483363122003176551600955449962254639614663113829917888708751548100327560248243357867205184972997380142297587158502222344936946537817123266852217826626636326047190278050227067601700201696039264226549628555192699533234118488130259005777265522333863820661894317564604783726752915047569600027231538965248060985068572067898257042086392171663869942956941716658841485581333895280567279775878193315744222789238471436455528201462631122036980116536298373704525655051300005507859384192992369509899841790492857685027375071533769924610650157738060182220494967085695942810310469133352896037738942028682957177165621522318532780885081225739746386325508647429747005481127734701188224419390291462209292303877560788912316434316315022732544727274469907007085431659716537627259145603345434240979998975771661126224404329517422312193309454262541202491292009272587071387208923449931874676280333822214131267429959810186328098644286151554275936575967269845361730779590847437536632542893379419926608242517020440303313112323155470086181164958461116134549513116441163267010627010919160005141624187778141256838207130553448266636970496067862430384007417874340000304006972760964013581502540959192978928670883592918329366720566994292551619646416194812456834459064875698294602474029034836258923424681258502918706453683181789518492721449468756304317256652191088049272483967686029234893772130747316675453511989326764912387019356014205544909543457247240302864378287360189549596599978197323690992689269865582123843787103628822640749176982659724272293192195804249854269252651721456835661253941272783556677750199598179778529977888039685786072519227093257653439643637562394147244222249800227864593696054894663913486516728622539569929321409863371905131951601763242693335266665166098087713918784612776980879479121614126818998258382353459835813071481330797933436595350754157255747001852732004218334986296372396575640307902889031739482094073915950133098673795367189501487594060643182295215885052728020220712107485136539235287626144482098640209536553732445203368664686933451506316075159977241725502438482608712204055991201874670147371530889040657439252426723830758054670087597749167971294247551103035094751408385172700735515326331732160629287571911304622289717115953664917003630605040265631618314471122713477172372512721422621329448949360931815450318336492984905963678826880414548708980229528046884564224126235473155209885948008843128166830789028131912839200426041988243103041800874865374119239792313188823944754435035698942861081262826072703446428764814114775626502606660847098238201959800549216147624212941304412834625376384056364266484340669505125368253398843986351486784934391627059821429685007490186379683319941184241625534809678801208147360432504492304890202885843691863358616047362178251332680872970301266593509948767487318428823638644065840826839725477482764480997608653648995399617538617616742652629347172204539936547430864551864193766537739518901675493564744498443690190611420266803089177709532782332880174636906727256852592333926183948207894646907912722972038953762999196957552412604537488911553399268683586783227213261474594362066843672943097442475345669312010356412105606111482450247800491451522185063905980460518224689285594140669398673194997186399507099718065209693320790060101440649427931480293520369952707756421244382145665393419247198240724666081977796638555492876194698202221348038887597391713288709980353855936259394157597118974964095433170107424008623326155951535857936732070676076621315678765472019050766977959163264821304441944423347453231108926646465838288874693910020537419646630358400180107507510637627422138191275706493761843536908401260223348873182194916394033126218129750094062991267176085635551282433320276645099438317549037612960113258026859532866412561527402455410293603585952608361714333472022430030279366380535973785314879282406022395136574717120228148347854824091136843106757495791493320389608696232022695706509355368187162853192027990986382787893235272818228557712851546265622519894283429645828393112257499239995704145316095531969311600345707972959195714080436240223171188309176668564433983299087741854213823547992502122406532184623235635069584829944363554903566706243867906573055984018613025144054657559081489366066027800585235679641946008910020095236996240261133560948662126607937766180057353711507016999430381166650428442373484917344513530323301330154491264408963079598259489915233599841584016491278050283811449690733968004724322426789907581675671410884406333379313337223542552054084554564516663835688829152351278303296163903673305079906059068258948640508928659715303174898168844222403692966452853862668123253973428530359055742451731825466123911320749623311673451238607946806484553535978591705695345954718162849840364919490774226378579505765052895277572928443261814992601626008327562438164208352815067612789749444430351877416879311942849548424006568139233185608523552197145542784603851737832169884450455594725161629011467099247648764139954944069631680209918824375451849389950575761211854112070960816817465034684824449194489720460814935263300484606048760981895720644277125300330938377552773433915111366542477578496640731465100082560051400385447154116896261851759213218534311385206712147901495192471142151228801812074506815621482532216614801656426077043689717525812384758552835742224695977016440782682161211827044404695330237533803567956617446162934157883297307162488955051513021022598803454554464376729166154996317218618326956903411538915706496888295404094218304114223186218460082873957871246616484755592185237705494081070003095314167526175398172474815090967510386541897258515863876669244135785318649760932219468395387332150508498537610967328193254939570139277141845435115048031456876422427019219251843662238494161224008588437573439688594057328135361005995418775007854223363919141035204480183012411444618946920100300519831074957538761510304732919181870892308011617943760295247848790353378932255950058601885178371958558740252911996887921861148562458212786403756638911965232504951846119905668804406971722049029146986859218514901504445688671680274496290279125558539275376530969191901350880738869861129281450220147475238906761588389804276149809927747815640212039596435273888595085814798396261012733185985058629838319343050489273227460286007723037262707641655790288488173490932175156273849058528036987741136219524225127293716289088833326661045104337870179159843638489241841883752310394917853938352685854847145810005407441034982998386316949562020980912751270069960165114240572346482766907690241699581731609606384923686752751061142638210521634194846603873587821360328983960142612262254588599085716299204426492354362859201446480037926632180437927442202751278706359870913980014243230652151912229486066872895896033074623105902791339964215041458603640138731768642461251969999096890532159612401391705061583026482128750942013226553897662414345317458229465976072883786956560437657851268836452026092073097710017516439916947447069588908614704591523393772314290668232071086855947852373917907350243737133462541906167684658702329248571372215402115205907411848869556713026770408769181644574848370966652388980895337171560805985904914532429547251269528698429880131746517152731547170068601176679676870024973127963025938652719302606033770345516055953707284453778743795858117999139557707391316992673009170054722413105590042166161271567964671166768363042360805361775358518242533105772965296307504001829076673602235966651595730183314476771280770430502709388455125812423025198391359634898377374172143936812619333813734890052637729765152955521375536587316851317990746835138505098889333346619647583374963350031531690663548217067688846182438296442605659433469814868702909730806012495634906773681247756640113093095264340127411437898144372682466134339079264779598392400615336948189852117067317529371885703762547577584725620662280741687413270598604344979353462171500136264332962453341358799578373289519315515961589919028638414607790042046941044546393092366275978699092427109751633222690638347720008814179186885031564525122476731484500381913060122819102247508360566102990299891165839986047290606638621800314682688254097093206238054031243245003896476007321623681145350979283906138916811160820091568175139503010608556457875200127412442057546690929684038734500131450964615914911827401906460153030759647377969378471536437503644246727893193825164583929206609920844460036971737159846556165668480450229099823734442675615397869320848586958331337814368196428918274458078090088538746500017989778503814497952389789993366539990115037584560814681294333613517401916755453449167127259497516775429187726154386682104661393222026200166784899451172913756678540894533537753713955764650803351791455552365790207749638347309205462012170616853961183898510868938722569391343304147475304794354795548235801435404498596185284137302066709595657177050330088388070014572551366888294606006714290770303964337586643897189536432037464509129697024189268498402130926418152568268094383518774461075107557237752999182156604340225874118649466374608754574219131953528909002950201017080062401019904602851645492963400197907119580157569145258437573353089824937888467034641889938410629885667357487821898091184878502639586410219218465954764609131592354614496733657733029778186967095706013720261907235472065546934539295318759338093395334902025572000564870730598741300031265547056224944586371349672729786323089356633574109976148056246787291434781632578495276167064947425747996406546184418209061448527530756658925530510737583641703705993807642553100987006470583491100444782247458902890848097294010241469882297668178652085265296230851185651555433084984125570794091764086802174046305812713236617482095458952054400198759909276640603479190137830661220659376432081872380518580662956269735749666688915605634643556175160669547344526849336257952616167641830734356119259664399638092373272727009937344939609401745198924520557620410051321253479591161329394449842572527412296882848907306241401688266339761056507773577204461951079823610595751690199219968683393602006332753062295943548041657420702429904926712347759261306801323718853471053876799379201299786322500451832992993426048143726659869306671032869156837935923458425329720208270109876643601216047294738586004508144626077501268208771650922186394166917805739534091964745872484398955404123231965487795678502755414917317122860586095639481477858359583186747969077868551507528265839534662963453711694355629084405185760698595755509878226456580386979179040375393280196143650315616481935643444561658168577410688250462970684310527595027963929375056894958301213587505854088819509496798903733929783095910391162598819326043951270770319952253711974282281937397926449674683424181003372738948341746789075637555028015122853264775709516402486117638305435215733661190775215365819602504232143674952558568164897682658247546292094179143615294541870298576081280789057979311018809822492864112981883846500167804301383315503513287127909928680750874274503271856425060758378163114563429534958823955892123325536336106939742672092166706850406012005466776657408540470088315123598643289805246715794956610410974941581295581397003635373685517344291612456269044182023983832477023920186938458703578444591614253377080744247105569681210755351326470563029127131374685630521372842771812139181963627506102159612922715688217246235872555077481888312598306135374965338675088736575470390523471652248069684622038235997247500965562196629537134216991241995912750954280870222306286465008422172697153688421274236739141629516922992609047582932397135268657283108239913110207161255654745786781138954258725564535756924001804338682389921210494520463104123898956834558372064071314721711859031854708033290501358484000258435078863646423698938045672219232522857209058830161209951250344397409697958554250778827756996335584119783948192100393611875162577086553241228026853098816582123382592092047046992135926600314410098003962395364165129074473977006147586164043469026073458029303108883963451697157867826620653324383953256557263287391140718642750773512099210080633244078489947948530648961570468083980148329453057583780606255837655220397727978244064296879428075086258400260530837134582239276141097721162195901499673368768774179653653824728880944194026554935735454851565235649499294267817366345742122947431376350145768601158443840159554897052194426916031022639977738853750138946965613392107977867357267181789458543418352269900003542697509201198008093300952126553896033630275327929691037463253586421361934160497768936351084407906325705328752120879482968035220972437607121183978037142319873390491500402899367119299951272939992653433174092130937200363865390089738491221795407413982802443887949324905107814057573332992587364298383202586512559658779783977297797584986046480536856578770220206292782843096225059269459834731164702797160112011231254220241617532580720310880423934124426115137089110417788137865360295281528327098059147355969227107052185971332584427858824631364081054427717392769623770109268609681059022628592769438517305057249007354212103905425935849691109562702014645025553454359819686784969482614085684377219233101672094178953981818326147593460635229457588436367600325729716981105954498899307479425192179923916672265535963894969117970941858928606810023248392116221068506197779710159498925306186791880516381620948241700072888596317523591775187939404639656032971428109662743389642952796363630430157181768506837578749862061155183970948885350750376615780893871227542308615014656895234668715210413248673248348876595891323924460958729698028524087435295175841034314129688126220392037050301344470692985275691169606965351972431381109314056085829494424442384944299974086587584978286778593073939800401103386573440488055015227557560062669040863152530081837515209572646890616019324132033807745391234873254060622764672119154423335963848475017104542885580362724493011943486946394351061350860745741421080593462556897325148002144597326699903202147912376291882671371790563827210619460601705182210616892946166952418209677761271353581874827038206942006748461589510341759086448432589806804049272953868521964559668010734875410057569515067933363323220440214350229761768928468998681752927713024745521827748665877947068343406379195864003199087269329888926237131129916669147299218810703243276696750315190451099245706813041387621155629037916110690196457932521374547300444894033485431174707193280167125893085851474929960739073291507921002431191121632264593298080069166689017113205980092562182217809151216039238131487239790687117956075030965427840878267323384321250610373480646765428991974678252789457135369734503756364344379828447013119776921501605481440802619877286062778158321767397488243614920489022829484285134123869119962026280351424813371652984345068616377567558349838322933187176095209590200927581768487747769621700001425031090388553499033367752118946328951309526942049129637597405813619509095298806641301507801726337696978740405879126309732296466052969226173514331428952452176826136920312550099812949107057822352167159424479683934604936321797954063129028631171371222877035728487984051654524136922378621965589621256451386284358006611652952088109921067807288242970202010923108476788087625763587370300623882384769882162643522155094771940917738508171977325756898311951365873663414443224883524101551672938800226253028247113032744519348544862766545979774685967850584242415639991481701627746721156789670571921075467414474517244073687030040438905414002928440352828960993130405896184781305566742296922365316021319781069185228114541188513873599805815634432335698608567902253127974585770219906268238784236134109685481108946470252059644070839134212122831718803714258777630411045824687186541204150019416909271923576330001879483168675567441274277470882779968247263668956482461904949316253794837584386090187387224495255509804310811855367502340309785748459695932816390014518812307409266835847834162069991460817218474426372855769573271562808689175106470991302679400687326793870575293085961726380458312857069016788141765976241702558207463266445135115303767939420731411731738277701590210559022412014537086780473399038537184191152146644408715830715788785853516404041618789011943316423018152691300502464988033865626613819822214743688064193079585735977778688950359714815832428515753560251430738182430276599494469860069361751628534395403314989295672346151974039893004712674844962441875948364759026669319883706411504645222379128412118736909249330592001260482998740395105693845334950233353046403613929117115113070318890188639464350207719461839072833178993288057907078926450976704536096131511584463325985209212557858797836232437398747851043588035676012752110792469435487202696349241624172693143240836936988429671132357831385496729645844669176988794986219234663915019935366487852241985209937462437909980697459117437354540458984828577636536026179042832373254982324209338060562889085226956200958812472865884691877478358960903670504602466645733147597443371055902655132007184431181402139517079510203854058908338517298732424281935991599455406846281647522223363851304460200175048217531125314158898745287767323237337669520502241066718381654788521934071369157991960817737417202852327795771009412024308535983680433490632160461321733057275058302460906104495401760766849982395062406412358262829569718554105939448984822036742864158443280627654447684387816584922711128189924094973325414552863363929445806469134915951347563909567373792949230381891853627532345640393987545583613299301751382944902830201587453716763755281710777086325330737622070145824563430008099825624363392207151682720352165874446379702692545709702324103128918374657746852291155350842249745526738068743093493561868444668943030345605326620595901132757224831889518710393075273221253211284031426495251883456985243000424924364784062386870449242990634833896498403298525770710949782339028233666240581762806145235001627035860795939687868124820970741878392485044985062044467795556947471693202136780641799224077364973973366897447232596544888635902730878129249987039320784184449259547268759087337774953758956338432107304820811113650266194280146887455083767396206894551329461413588036311563389110993842762323835586944193934083619009659681829776552791139063800750456030364615261728748913811270518577808657782306453373538705998781778592936911612231066972732348059989945349079303031220435420859214995681178174206013168225414477975993610124219656963163038529641405785919915229844137645779569245966864251832958951549583834934986914888207369831921437716013203116015685066476032085308211321577039076430174663909026433940947469138819097723876273359318366553341950874424833511682073146122188540828207371069382340411964999207942100496403506854983768668272056807441357557926602980744599210624849621746729677999064366047349529990405734006690587433595346996768388416261078906972010440344403744030356463058198816838128930474637201420589224638261821095163126067428143801896859143805024002378800777237288491138026459629987505205051076299407645472306047517450084379371281668340479347304255867791319177289482713801181453001119757183678553659153352983952474944697945146371264786129882161662279250900004425159245824418185061128018319741508083242918283324880463620660416464815875383750027005738654441444513961019529960507696713027129024411357674082584304271707363184796504818066734341450315787283234114974639015326503251171640897050615645713340392943827554882976285927185546374538070935202030248761780831507162839756386443106600848213468586068810664462782602844016508084752182164927265482525851507494745535221515837832924709489232031694497017604718047290907381760718509107700764121813576581068651703777336442504637020267222316939968310277089913196660185969186870948081566716053137932004092885169184495380529371319012275876726596206487773405526465495044194269757433151832139279044204075224703013837289318784766645012243498090171805432526251205023536455005076897762444160300175294308357695889382554493570843938049332216394051883039697245261009810639247640842488265490833640717577754439296800825784028340799291739418494255254272205566650229046180436614470639725536972040904098094209143145471289150591427943920857379258513732300352306451109522303711145837525858605710954982634188749796964836952342063933132778989195072648767894209367322653661960699847732927561920234500872614574256553681820920961032950247967084110013043591160647443756884607416939964243063669484262742576533386446076044152431247302120353817324405939189768846400272488585361867924143352341769964104599113153284107579023459908267217102331460227563317301873047057803556378395946904346997268424079700960733471252479331297436488755115855701858459239710708913827314805632491373646368805427987367445240018582253201960226798518298050559488304516049488424141373541102856446136136908561659118729784174653232481238717210280312601654193800593537783724807080194811433882294229173306903303190969491721259063563252169912750919919235960322779563230328673561355386631183988257754354709785471436165874622049545904667893062218291232972243495799412038019427461130426988559025078083319866933990119698720207183715721043926240822502725261921630926575166367917888500621629563936951642360483256271202057940282801512645915140607523449246141281441639510962361406556502074271050556391292342761329643080730052170460514843673579018838982288075150320388190577067334697541060886857824756093652616581668593208699743292049918317493736179650624307957885652084899812939164899093586187848782006800600540544967526436871870154125456779067161167893762749348820037464697219218126242111989394317783946631911987362989677778659748387457897029651920092097870223737454873261495689916067016695709125037922121080977073759553137132791386979896401036673374534142483783913854401438873144439669233821516660859531625873914710918511886084521544329763144841943793174268712136212259485153720947123435414266426748731146859519329659348459938413744906265135665917339404066566862301356940051055142347430299194284284275852451325013423201659157196990194559754136659980489508796743706007172585002986323667443063925217731848807480932023638510674810088978375289809836400052811726505129966566748994146885090604835511508423068842102553148795259762280795057185651315954306640281040240611961680877747523112564469297501241061141590531133635908346695148801044156323277566553688260971240765698653876167268791619129276531201679353720540121755712671358407219572930350556069412440235615466421374259440881195019853916926010702964624129546927859091476357193492956954740121105919480299804631700689721847435734395341158310399364296926696606151353374565038347424651702137136052680629731318988483100214844905116606987292968916429370577699741441236256242508490983548602309108540736157932333426307183521419439506063563435429214469428130709720041401212157445642793181235798687508737846150390776134433014041467372374555842056366302321137950254719545820668191604929369237127504347801996538874291870797978052988333043510080141374662662441291859236845558702517268236841593661933985677267878196814020334332436903800214427579161976855490540559323405834375597280719640127200137135524311727975731454153700143974487563340115341085296895015800598526133472252784257533086092859271624751339453252075009956807069515160055433417749889149399771793153060728446416208618489934805441907196985516437108507246461240739688693257152226629643451717493413328077143740835245621248004067850769945647649301147446375429421122466643926410161189520739726941305655423164561586174295875081575096634426222521353652658130774235181849561430489842247721868331253059977771838815668887697823949254315213271534996168398621332469159430241028095571625389496161354955804397803091862564714128801394799823126688240831945374843175220581640851119303873589324252058160143056509323629655698783892236368099665089577676425011520433129868463682845466353808331771388144656732777085145556342607333835976481740045397288114483674771479628099660049695493674936456448691459836557659182729663363399420887205124598287333733299627785487193638315365394851928404653089531401353150931633399358253836151346902075138724211238475557716843372975942461175446306255743789497492355857935674758552335538491098342988935498652217337337349459094721112742179976535439204815487868491221601359063366268791244077054054192832437307041640015662760565692481525831352764060619501151256106245968218903887161793541682400035684117799059154807171390370447595426946142182408265026327533747123231534816033447659542618235225100357945994928366323812427335419441738194851506647207230382562893117798530226632688036794925506860171696494973162432646708592599251655729647116592736473402251897988455036473322065048196488074813061710110966576568121878263349371738045550022051562606494417134139073010959563444378374411377400831219086081908696041815226968182547126256296668512372917209080504971085711115900091892460711553684963778689894379389140229897384279345068290293159067924369929651778324041466277487860951152945061461668649694445454063382559371177136356999265506362221529578485454162356566423991928322641151230096181572963242430495611820106530752937886627888097255050520413980968581009545684066278416756942097721809405261605045453302012153628601654121391214103043086915000033228589479096289291380456721716872899547058773474292221604364965146435162058863058295781777828841979276246626384144739345775636155320843028476517845336338882404629343927231696868308590753375804093090616827663956066369676050350742839995127291857833106668394278405032301857314459158022235949620895301499412586722161175206339116331065831910583844441486600673805349751887239551072367948531709666927684790082115926737789677885762424547402928653231874421105851986711417547342375886849101205937424647970978371114659771811204060726783494758506362995309555012570697199303264732169358923101838664263203063534205577000322411703497005589408620676006949838191691781124393973719123299177415714069928636113106412731707242505436997646135954785736120739816915455523184423229444034737021568034018100447576758663670169163148450446366883617998031703216296535584763544919361152986689186658071597377670192793949624883439061653743268757697765775720712814286803474503749917817417609171023214597402988675644270994948377328963861298516064388726083764947552391035921082562058068562416906657605928987290024157850301679527831680702590463708237749906059869029004028381694146412821796996643690013881544237689916253175012729279102290673998266955271109573608461116553229745174627351696809304246957890643198942261873329623989999964809980067477506637784316346600974429187387394730302718483452274177965496444577073459339886007955577265122341482609386442557463253190622861541804926642968359138947499839596927046683339454618133906043779719597303410491170312213096777528113216549570947780972717265024315668533569990846064544851717294875231163400554502251392392362403910968163791191973240153196010529036976835709780818373238462507810509615401509643690491550309327495147384938872917937996405348067183408233434610691197508948664667813174112338482349009009031340712551233990671949230222357023070167372766750801494596189679715169309401439975200831888766909294393283198409008355571215998878999253643610729679763916638345702674550877876226276581437350461219543317956502008451655423414400764802965351799616286801301440424746358587146427139719088481697294002659503220237224815987821776557116507411289674787458610190374245074791609011708995089582066734968679909902088167011414641721570090724539068813028080596638554911174542821125120327837223634328382757678160149438315369356630999155901855542268248422339682344865992499491111816487016778340437525970217672355569322585115968056469319506994123835504571161968815525488293484709941146100460714103760627571004271781072533527416240115975438453283524819389209625417818079956019387001335822731584372584230211619605675597830992518259904480683088826836827806626198232089146708677816167900211065213540947271376087904103078410103057970710026093092324881731328109704559202920829843756191524980260420667692897557104079846081381958981697224090756513425555325785712243819162160883588324356910322244167562152582768667481502043229877592873074079538324851068196557632491552891318317474757145568895837807924088101107289403620582573188433720446719412497570424997124191533026870777679864001505237296313209411220818346695112970711180763444664443610918990276897568239188637696335681817903812982719586908310750313754856499439057339770663998751387859276457527729987572081177904585768589020058007041822313611993310719127541795296413795409405999296091544189325213388194902652998389515898290529014998808961218065206873316958918845755627303013357503487854661265328259664607938289093296651418550949343688890328122913724019693891415304810946161197053940600935069686673676908560076015836955867946997263916300784774967135824456882331712410325530863256941113452255634374059952029175892984396288668618989858401902091039172259175933521994275506595204343235144594971730479620148945153242131951520964079986599530956409221511841324673611100009240413907668855893135804652890728886914443694366401947583933522401888518382524936849677996069082530812299285450573444645715739072356751058815468152223249171082874234699978520641393563097816719156528631446615906066229347244095663967066108780478939185522411303750203119348847326025710132371239161185366077778084308191896591933737709059840007350509146046356299662117024195795490198065428364356062322129140557468905645231650302507029366624037583439361684191055007993681987304710761530182853010979898517006445736492170333766215511499355053025588367812653352112367293042618882317411547742134798751624462468348510676398470157832566968635549521125492950027715584608039569526723822521311357670241260348556256634335373791978296994844958228882085576716025255562058333635327864062366352204382001242253650143517103371176505750827368547896047418579073405752506239117571397867749523110633159678530473750367467210267335214653040518324373195885470759079499157980337019802793995025030481675458494578780856880384565353159416782269876652444846381953247123813481554175498754919327400085333476254813549957022957765908322612162097699651624675781255086247394840674891231829599507817069022567452181337778308388831706386588431693753873505990676165120429467438033067763652036221350573486193876738163007601845709396669378058379137163207784986036722533767032129449660321744257422104388207842581166234922878470266599768359657984168978761623294548762586033325062049671794695176217719699834063235895685205365722847640628867862367411949671509879478226591365019303473705464123262353421283423915954534456201117960318680711873017712651183155181012669141520842487330403552889038192002719997197486946972825632345246870019845420890691242526413090864256376146691582717901289301205567269802012614846212381396409442258551511023013315780188447843089058181697453500411123689361277743992386388617474697767821515756570264058100186489877734103216722856304766316486438952730852321354250283796344887725163873872049571648688572544868008889848708908617698769041294584270979805441293820026061708478068415908199130019280414227737334779454091250641157177176965301779210023484585829265192695181550371385279734828296692703873430185173219058199509052064473401013865159545127980831077730734368540777938493845528721851298389138060995580996250778181699096532038198011173552191405359472633188680772992494715740744554055393946954365548357898070986145218690826787231729390400722517213155508602379823035697978043154750446921495423547267875164098514734463853686334861341185671910053058547386464946231282749972176845785516160897626608687670411930809472882473388401554846803100198178172245151520596837780103707313844783454334314503976949374764584043340367531811578814620686697184640407376962738354568943808882303516352836405375145116580130091127367348592616965390257235189729750756080836729625412500994451608856012714201397341431848331736409992049969662406390809076902653777189534140719391001795906601467244322923753107568320425399395972778751796156124368492070951657325327023177824339690277063715427109056370509113110945139376202431680734138250018389102268832331130617376358746929127085465509963585491559588145287152605345508329341473655574147478235507450785187122403169555756376156088499205365202419747808724211695836893488936271830327833956724391080848690501111727267875416360199472866629978960550899787593424000625383674949952756986119792934639695740914238621363121311230818345881136751024032143774702701885499524649723751307839568061420627425202983353429125572874890723343521461268518074698564738347613762076825504724585150353255403088365780382019616901044009591420978941615265024725230952876583237814144080649310432645243366928948573010066173609608458782821364986340795855551194189175908075010679651192601545883182227903589871064231598465309755615149877111797124928508005454815875139543524131104780583140177071079636843271356139003684788578565670291798139643866141015287519337346262464393947591589383660237927131253667035834972284414780360404718775089351923808305723497438637510631825127982219930130573388218041212936260618155877737393240776111783993021221506379449002798213347217084238863812324432454818641612692123789433341629142456730898490602761603350932379981167047359008877329833047574652108761229252166561510307678019743872936979271040725756444872386287785941984676892743972563860799794515778330452491793539688362345041453100575642051169447339549304029940754201054645929837100776449094214214680536829027074061510173388677833316139474783257880497996151414637098971160310464449637283811641959102799841710397185329986384118445369511824710596898814951325160135613307226172906231553074893086085440017172768171249381333789529941698005113892009773143471677286022872006279060790552413787979974131850187595725756097092481137850260187585332413676833234717148922725207575939715876074033435761061620362024586484895045438336313422899147913250948539499571024486013525454951960831662490748640658871796024112049183884887471605641351490416238761820962545768443981772010115150010689734441004901027918672419144634875232578465691263219823152168908245703156934996145289904035914128867451196175139281215819338231756779830330635028843415842346435066024632626748291871921071508787176491020349261765684429181031328020280488500447369622333314192046088561128561595892665788320124861623492183137358169405766642282716292138085538004858861658134285322891493170723294743681500626751359070859719033731534420687995808816658349052537490531375418073573537268317102719101261305976850004218591177498256114721044678321142961920099839987990763231670991453470239146045068503981404698547875095365347285584192301880416727250354328961962621689789210492759131610064773389903727774914716125216313886188863991220068144821283553248229920866831376491470623715383575949491500991509244307201716260515583301453053645520524471074125326309833695052821256847257721944888531608113885201302259438876357748962437450444821666009761062684971936937169697802050084653139373190175020914312113809621405618810480039885512533457502290106302474562267790621621824251447237310158071115528166343648004783364240631403294610735314921120082517591827747208112882803039906438367246390603063327905918005779363172395187514296317673641748867043283152738591631623989895784121394442894820552714609444729084521381371006299108255971089491291412182124964129316104860060624368122141164343493191362431257668371708857213107049120484059390218595851762467520821350950733617522189330747705214686097255261015092920523022475274361274874669890151509188005626762216265705145983421127279121288990957030687975776561400020078857791972372911218126601595652497919278991989323444836070489434578447616026232298727629141826589951946332480130133230719724682058915365427214247314078319678269200256829431627466332088957897151917846152116636858726799715941988293686398022119027671321871405313811683314620561256722834911774472005876734804891303264772147929770903375251801632733751533216094129062981559139753943571443970019283358813034331102367255311756213754245737968636574322706848621426534996471828676919699125937676092287856661454231630348435692288223537658719794142100532324616908607063011293797229034538339147003363886196726322062232926976523976800546686005530694612679897557083047773418758549807197576903144620058207776189406014083225878475684121501809382415753036331827831409914884140978126347662130919414617728689252894640361432067131664469358428930006754756910632097416949768647548869630477145745670040123924625200369969637326181955764431014811142798310503549219897326757406758774923388669492022104441686479454255289570847899345408491284986326488267778240805065056154097421169863574483967030269240978659070132224570992259367406960782617423380052022321415597155424577358059935690151319874713041511389846113134278023967390457542314065606872962878990569908759515007210232710533910571897838863562471395848793217222173936218087884441294751385469304393643105117113892750238497412503423022151568677696585662456755313346331410382865800718092953702066361350265493031155736118952899329721211401570459026063561087275314722373909114510134291662645332201047487490538701117980593632497908465493931369653943989232455141083222719903487088862398138652545562265207447824094384473166813922494545054459754471967730172536545070944213883707328267617254602982265942279330971413763904159249183362923066965209799050438436248587558615703096746419712908029051355900376392635303020183897720963871454509288031148595667005345338912009642464116559669819607371704293895432324663219224018610318060899382461668032400239434999939211422832115522763957662388367685586453359447377629549788085993833679250966534629890124001806121915303011230437458466371870611881140260456991893193792628112034805492382365495168023775459708720699728238277557023713719266360043746935770735656016274455138109663083725789646728773613907590251632848832085401970459430338909283850771500260834263111255403069312591913072505072694092182207518436124357569713975723393780991185411438805147801520325704534449444465303077538735823322182820319906355645312264121233866851778865838238833007957973713363314212394357160322859171107834477902270566206802732680653162942755143778657919088477185373755823294680472543685434630980857343531544459664800739751068349552542226894803506320690613605560812743371690471124501993195415593520420847781876077755532165918998515250644827067273981762452182842763147371171488779632166368854164313280431902268649012477259090029153971531259420754498561664027116401880513976519392227149395406910834075492078708131080803805792224882761160255619468797028052094054096100310649199463371499964551761361646340366665001291419847401224758198824423666292812606501435529503965603359692030719875489045104890338393707924036866485877943664447484133119766305382978641776934957111238090040830945010757890578866383220926934244743335224976183596353912372549178958576400539912811659387967764799489901305624368888268851695982247492327305615582958305665513518178313027649186220414273708814204590287421084301199941663804144446188627224945493172194842992837883025699126575089168228730478931827452560571677130561574239214421649063378266331750779232874784229235028143582796866879247788779902107352528340024990214416651332843175320824277618655986930089546373317706687904462773530801329258337035771733936781283244921804062971979163995082011610795405391311789130000910983797775190669099729257680444769115492347541218421065457103175563109807560805619026576446103662231556265526523775404267203579616027083739875332257171169919065971534499160110790411637928902865377996375688674691175955417933974490267529540013525399903508005123931171111651989327118608548328496298322418142620585518534345379315639850201624268478750302008837319750604174217706371616629510661551178965132405476327792845892293187255710612101123540655614070332932629353511034152885036440008311603606019002806451452952256587728545234255096016064337575820285003706490745727990809296869873814862117628819464079080206394611414937160961258652530095312541108857411592325002450096061794673709503347638300837290707477493532234383342890097113208746241730241000999758566799154035102905920548843114127208876396234464976970118638474669588191302379276280557407116255075584842792062922327633412845985725408266162733612639904319214866105194628981249381044358461959458262952095422095004314490470587006154463544926805773691377080886964800644893423932795205359745658269747290120070247579522355856312712473519751383668699893680886386095180962176884565743893920141283151411120149123379508756087737685589195397653865708011102010613142553226758511052490445231395589599042340342227551635885867270075017248137128930496249119651762953487505776003413017624626826729738406219513995657497297689520267638671862149912164262616815541588382483605500553685692960843566363737054825635724262751192712988573276811505952989017911359275387131239851472915906650733891435514840011776319317358324641397568986078837531877527209180900210382990144687145139190451198603849758396136073772872302379062333098626693432867233065911288464090553323041363159385701016345168424734120670239223073690432716109431136000956953371679884370832569313565064706033289438706942608095452566613613743547930413119089690797380548101807634983253249412480925255280040961841419340303931382937362805345865782992650298410792282245290792418268026006302079432173018311195282284794526374986791016075204376107421340669101474257911033669435776489041301893771565057561724047465147018037472473226300295197095674160234586853026611159482859208994890971468798564251660774024251161223092978110841809391612860083458049887187572506829337315722880375597730680945947927416946545618537395410257349259372569268974181660896658600521888930940577679576050202102194554593250165977022575753519127482951524272924480867967093153968997728094215237820037201070202412196912397706182673595675945489557545500915228652540340750193154419507283083289372098039719100880157608045628711843367671552297321804128510995925406135290009972892428512322042356348047238205794227914610682949671936307523696287907534114943906393470254020583391878180040302125984033155008694166249680455542622436361780355325529244337834140639693040741638661395818489332658624348817350127319543345026798386187718809930571940217398976761417090041785721624727253145746552958971651240083514043705941018626446863353545230024548774787770983733431329236473423156802604273023690645809295332418076377739048799197048806408888028980571369768774257170192114090385074706122111633048331458268368086002860788193179214987007852707871742994239818459856741557656576311094371656786790532339692498938714021777618305297153335199329460548165051023372373671066152021072807751777361227377576806722153216451511637021966264296676906998747627306388001791336335183375290188230619819875664003384395041669667864307271213167168272076402124098569036447824051163864878457235821270227476455192237159248507989164083214665692592226089643386710669986927854713230635747128794048527629426322705546385870732509650891782817215959771306902109980175670614613040293230784388706530665746860291651337397212421272616611616727758195833943342123101439868082567065915821561976967361276531795554245440003908020445826589862976131179787052586649182842599246599986679041372220659644676020919361088720070185955019438853905250941090948413038020401410214024566367604052781465411431657019140669155045690223479589746250177232249054942398348729208343676551439419492798535194160034618288790867148830110525303032501041600207845513828308060540671170689652723324226390193303939967706373391883266000960697289203080974624674059286747314075038612452037536830464594007656339920957691753043474817781157418284751502868919485302128154682537076668831375153236446880005732067872351769532565162993939857651455499475217947041122590024108567820303947131375332779343024600476291669807177438188576038059185307639927681114675953247381028468495666438629204113938662383520673409085904503283378935277159110918146112981062108792881162495190496864970725145476779798657516264210057093619682757975491723127246480956228528917389556309926899069544303699946732647566020001754145391657371091789582577222905232634748025624475590814874713326148977111430290865319537042909670250607209471888783175733363463838652135777944531623024712558162464309899249244055407975867146263018927177165410913775999032777851960587309658869878524366345376774648155892613619563613234747670871435626529571628433102103284672037150453084004923399751861647977594839621574326698489416767981743680112267811146754613755192196900538003259999017057189074326516734327711284137644598653099299939598666413204208748867238231040722190670555204796825678949731682209905041087446309548900476978103519245583157659618805720833927249042988341967734834496001107965575883942282349424760237437818385535514991098358960237566019953993944319195085382657503580702542501605007162214236215928737855211228339670954304349871668755514068963463021354952534094493579972100073677804382899293416287137773848826291562557353659540996814132774978982038081254799055757040462377789037393896848978522752478753569748651221692666272415392311435237180325384487843327799256421943151988325698263617593586001650066763312717652794551782262562254246874646652227355747321943722088039245173365005844000129262866986180839975593072113887153637620483486106147115821400979243193968395746700597464633821474070351986933467932966193175192907678426065877791101979964036558367444032720011585592255662266689743903096427301894754954096363574471837725608612512069000593260090873902912253819645778428780672164810897375374585884568633249196434679111101686255485735212039922747505085679541777151975427639793666264068550762895095425739240922085165532977696983357959555408467723896509924660192667144935712062111914785340449522325999824519804164037129250805208074423741787762053596506116571388595604632044654260111524526648183985646331501311663704410426939112265488936041495652855922227880081958759482121109711853505362209617254291029777808096954423164791128401056969610448336113297469337958499993243140763838701288411090217127238970401232514591379568491737517602163962136376271841235642753174855953815290069749655021552037203959409885199037099815426914232210279420933471955897872153219872682104546068756495079661955919663118804803030255790933646641203885871454355448595760703051824330005988963347368648094004542303219481261336620619847288931788075520359753728031545062537417763762196548687472007028555355312376552276180312439406099210376454506057870968974671891374944173404911605851944854876666097139331287672312980556697576844552162092414985592141153135920561114436544135865221554475132530827133541110049358952924259471830383470941119306822589415992028132329465511554935053926699821031578424721029138085948647223102587909800870850233076048580771885107383873168547432007042677228753412118417770562610305525476119551019811110684631044923099766814912996815701733396696791868918576228222423981747153322088050006207900238909267706039434111653696445757931112667406672086148377624277853878530023163336397196013732617638136113902315493862499323697620312546354453771518538916839476562674115997819940075269961369774625426718393703707886761642432330827352965156000017224347148084476246653482261214444272873893922577829405292011386860221563299261051807982771849806268090512446845686220106383652274006509561891673077794156045432535099611058257591821341338873656350010044651298909571430652909244989725838322415264560319245671505096365841661706596384359213776180967754338559490447776407410257547459849984616599887922006142770206556703056503010691400423102327457536927920122856841936840367183170978680512998174280688909583811713163510450354753724195955976044619915094274273670685326855926095015028375584292988718818643390677212506086680943935015024980965239150627589519263340950951805208387323830466123165233912925321937316246061225844667022920963031619752959341881779988745596508112606711416882682777474801019554976139394947361971217610669085593472148488627624815706691904535319151829353506938002455893776556939953451376588308511865967046007192106172316228842194669141113888385371497417274592049174061244936812735886397200575869543776202600987060535735561493499495820376043126996096706823850769096412861443757045465235660618150761473465853418792096343943010044537340042015336077337881353929520691111833008114743349948054841080090819072438007096042635954036785487337629453839794908359041540287953687233189373078714649102190589215227891996712658135934589588346656301882749797113104604957603479929801088874223558786743508672458572855171049081683137090921920587477639066114861606486831460880924363282037848167260483311514540646366302648471082698509775485359819585458114452443911132170769260159613490678790712149194593057862244319349282337888040523484065506010485972941113264420255733411953243276817206980700426839642879867505567704871383798185849971385147515727270072857685728045408053952691854459206411785896116671199530935543163666290531710048104744240387603790866225018368996283770183221194488313910341226108555784750835805114287991804700026598352996462253102334976354844828618222954328494312004953840773948183055614292078607599601810796375748980838255481967011890488812602118033364534811825150241361421947856933729841475559999898384398007396748436265318078404377011238023254202662182907130106424101208973333243929110586251473756030078432432794140403972952004486535505587007946232719655783477959158698603727571444451027476052496077386700730310797148120115006153662294493469533510434168992722887199884209927320210968521612023000679480598803938375068459829750200834061165684436337757057690551467974488797218507516298561889245494301195944698878825606551325810620845201433295142466351433807343011656216277063345602920956353972521523215750658991200811432411625969034104355377632910218756885774402142034234502136617809896405666911837611571949247621146808329959636152293227953808814547870698105976354746004702305420525375799662653584072904542226249314714141182801537607085283599483350970024267160661523612694293437380193534814101289234876027889953021514833748459607556063725558908282241910148152644356324743571276566774653280804355213974225546823671844936713415522568467698906935231301819427928911865701173819374254553220756294515104199031164003937370341915872797810863727788942559468354456161325973998610768025896358731418323143469403852008981131327373715518881148997377287777348340955784904690484434467414234557544777203362368787609809849977428839828637078579098586066343793485537149306404994471282712485937863206438904072636373311333038636799824949139801085186889826417767254161345276174794572572126652504473925167365183636005633243643006678347600157086873339932767323099693629670416103415396050934114520016126433511840302886539549923425087073127577674118818601015052364077714870855901844012513554012913093434141850619491366947841376375275543828271573922591339774557964670534023180911286823526166076586852825495649880745368763447627260590173154890623449427781109232907093725368850686264601084571361347280844799983886067110840511446293308246625456177248983866709526506556546412801320125568840854965044794305371885894663237287933755084892430606304981572711309262295491461218512858545521801834161996262166196230833775391359806984983938118028534724401164522733257379300725163044607713735840013671037432457750401541318942013776792627837448476896204679430436794962023859990720584981570917065449136259851459387542439362954787053071466801929197891899693337660138105421157753398491305131575823996421949533624968628793265994514732656799961053568934028126495815944135987415368794952685044624097955997699775382121321519923998693618261582675454955007176502773280649531618294404263578182916200668543972610991546745174116261086369719058030166451566730679596250689931181459214864707150610417704745942747987328000650057903746433685369018631540783695380209907272609929363422567010416420642936847058103951674250735029472690020304837327360671524802347359763743215210391961595796802166522410011094433116930678451918299235455861531110897698432231481036337363173109945077115500963426499075532144044258401593522703446513630795747001178561227985171933458080127225001126655459978656059460174415580764815442408966257145319336239801929256698120147628388891024629296499677254773160364051014710579021465820994309832598895710511939991855128833566927280370146716396984736362172521289421409214420804872249313882930592452692075733314859852220609118311668086392464850309442696038698438317962213691909668716557439983850801794263310014951806606034928388771186219916229344867015546569806984459394167177686987956532963393098050281301443413920741078915304149435015383439011233849541540596439126434697412581333061683484045411424821426440805407024721872092333096184894172758481377435836399634632193190602185972348788133352543702041006703570491362713855401594540249114444748598443565074981129373076527455393553654012399842700063539972542209997495790495872952958149704162365582805434876638674599723370543445076105790389958829551280157450344494196379475844260178191189180319563286272403572113245008997452146005581026602618730588432757491123775380125580641197063618239041056267491534444154386500973452696568394567738985052468642159678887583988332391083927974012428871773414346584475999192972327458005634753025889133656899238289628440009109028827565173816195088312381388666391360721867384887598337319081496289600834335609953030348997537185086856703921162992992121659034262552245428208596954199415465246769757319815445077912656266041964544059493585444585730190539566699474337412820461310335179626557019135381050573735320167714993984522816169719638666958148209858136953563483939125220969930168291939007176408971651434779164366545615376070656212886779730005284627611037484521644997864968252815989904814564120103840039384816187988773413529017668784749780494146668693677877166303155053715090865535828473171853832441239974558104401747090104816607864203960280770872545540105540774620195410713174771425635229299924293342411522364419587915134648646283640101208177981840665519612706427430637897325209140163892531016261342958792715090371674177657379967983374630889281648319381974454426646539908016874741232567475814338907653466384388323721127869327217733114479704381434818655068901597156312420885926589145819766476834003824320990684525692741791663487503704752788612578368382557014359093440286270649852863593549097380686148403128501901543609068237344628658637382281097145527742316932165560900691138863832063258276962001983534212119692813097350688429310385679411558810024724500735862696154760406960152039461277393332610808073985632776948952119284302800092094329658804350830366245059769257047872544479205999106600055823368088474887065345897383239923341701410498801670649861908021386983038465306908244285565991549794820650082130851435100363594526918185798481364186356575292201240893114678206968107374143266055032973764226092423163226039013982562490429162821108691631017906050646080704867725503972314263076803756081413254056141305485984138624688890878694505114536728594063232926639548247514008602757126151066225655861314349411193846365331182664365509031705623489545290879101595439717960514104041322972301964336195264065254072071793264684714888338130337616236291239614578926558520607283435819241713180864622149797227975748735335529820005763746073038571168123541964961143024245268400605358600945852777741889253920109094163801483208228698537166717383169804462983284293527561227456616524445571755401301227534278485241172375389397197968504252423064095066716880274297286137062029478811149280342192270359807079309645769696065340497172741912160537273388036355083406325009993066895605863005133834254773527621988881549035329671217266570242063539648308357598788422376624216221781400546892840982333209261516168551216325480502779877206575780571007526201402772853991449030313260676090991867913892140121265978167813642409592618269357654555317313760664127219927637095907161987172612272373571345880060989357012612403606584243870286794555347385584283769348276751271287170557295215921046158308189173687950251859548686340872224438403598628319463309220580523051973779387216374392666252377148747795909545406982424004281509875322287252321400815696786685499734253315303459590080731409566129482141206415727084953265101355772775479742040460583873675493370241821364261449559641564626557358658068385924783066698625404096301771566694902081668682858826988132700761277617379306289719192885355387102397200317114986248794595510452851771198657764147447475048624154353203774790753388839670751113040090454406497817325527824986499834402873490204368055523131816513070507557028770769796107756703173831348366332645634939698481340231759074674062306645909583438227510938674110785972248244605176432657794044229834595062278025948778963521625333538923207918109496092861444073227716186645338333999906509037131179473718108882363283489726665014234702585378361166490209351049518077047537142920829333493332264801060155332277223559205640994003221922311198048653297012283004034995194442051138332480514806377272417720272677720867601122479768537511860438562168149807311527440283427258849735958596807333929375552597304644845676564309152308735761322709883289795066240356055357582948356106555458758651899357158761747216989291981558776655870797259033796425799518051492482426085071582866438048127078896162959800768465004421108557169695546819715302896826358675019060545804522739189627651922826602518934783927532737274307824805454774471679512869982703486737133935170199160019732321735366744835013982115296662224378801483342941171078094714920223264113995961933749917982062169330546345453625528199147653901266854709248306655321842475205349776250549615079411345734035382825326349113905395616473687495115494410396467467245247040774093750139257905607266448859089355043745022795782406071085565447999954327107584469425547320746080076794260211634107454004753163902257976460662905670295247242815372214169728744264944002586390988850975407361362381404934218127058636688338364932138439885920729401681823323324117205701557319144295692082171840676484949841958852452139720121465786583423349655724648501635990395743355245269202955558605229174664161519384764905455317790683496463766440283957812799265956189525544405693322044646378665110589455531199995133757715411519379028559993628866038128046472833894140254056088989443925470866944478486723696694098484430375375433213225266402307616003309976439843310720356683591788517521399697806033179705733952019841730364378014515748429215379531231115920998522247682456573729123827915631392732808102038356538152596450867481067143815266360139055327049472820996479447423586874530844886341458444792272016953650407711778029537887777245777978685885430148430851396422896160748638380815073895725118448936049886868456426227211271974320590051263892578928138217345658722597010597057010025762964962855426818658125319322123529370560927427566444053465890223321403208996000498765082877452477059936881879836879242046895239924821749761356372851275222306193812749236527777416752838185946663738936911176201749069877746651923098344353616945262831671259029623934620601910310147507840709958161545467458026895067746082236888548554387926481673669540841532051044876622875770298857436920558830442822178353457937479352982908687216907381259616435307955330115552726059777893508506006483311315727993307632581693823797784328268513479999590696361683924781917671175256909347254920264446695532595678093015531697447445182902655030340973447499742804928083077579987433348876300117489105366272864872051627446003172062013215226247369603369259970642215896042446068201153103782562648009192885653914500180855570444468280088984221189746688664079160055415578993278367992486873111049158308208853547534158843418175548544657353582980799127502293292738023087087108678111217602972839581492141428404601182454018892710591311586960511758084063109657292050864145822743189010295454275974575593711054753920646355224075073096089443242745832082837036957972366767318040082889408944335193507555995776939561385212579667101533684991941009724279845949269330476887527606548334333858368090740440531230160850907584837262679903018170124392522660135551409391568440271035986544443768704121267343492427654896392226574041319952045452473259495361363603435993975800516134860573516538853491468217577691158580369978010415931110780958998066886185081653480068578439056464978022424961667136917801018943810436382649872543627443559146904329120344139485050501883438977210001688129090175197371912911645150728176053091740537257810477003578778838550819390621241495601252118248120292775442663273113572418142036157672901842781700152196069324104956807214149103562539417026807109987714807641385181622946745759967507846973003442209717283958605917605098261982645678997064197404292237768630950797529752072276779106776650846483752967495472891898542894587079506750861310898147935962998697217421266904636750930884840172731454379214712856432719195742032754299411794922996989117708316070881105814426522361634146259326386734739921236811073367651510891948277451131844117448625074916520088481104530644587535964820027218432996392747987411710897631873045230914124539684460304634357077291093951914139566392007248985163122206961840758730665227262345443488679115590499383197545342529291431375937981095081449462508861662341052387743936243549531327472253699297537631385014533496104706240175208981107913949336175876559933693671266296491420634645302518511066714076082343982371083260410627622553906786769287618761084333334179525040017704415921424369306433634293867516530401623783926422432853043157631367612357725490785974615330840248461775914768526432774790552971415394908197706511155869851360489720339971185261416717395843020883568968464790435228281061024812532890732733130966315322275494233215995370304646647257363447043994625924856928784800395377087702392813619876676566192435160129398015366394139669528908153536763392554920482324659592886275760482872436259025114097901752307137243809972502070336015946775987115499990830484814446214535058393669721328989642795395314422651746270885281259230318965404272422740407314932871804528019997340499581881726001882762602288701585675746113079205016422771958089362303339212822359066230396584705619623400285935879085266774691087611435601564349301662414070921659702802317969015203940448316885802940239244260162354072204908386539348185246528488955627706503410902273048371428110923479763434196759151648380108477924851510000736870958382864572731235428525888996229707823337978814964588031614809335042138818998542693442763166156665757549063172856600543471598834501681656988318293649906317782919198140974026378710292506175810958403794576207812764125407419622000187178567268779990764241643381456077671629594437473550738673552919051802228677979461563329379849072733432963502462269248513877148680926255992159774555032607611074848472507110648563663367943050108773245705010809416447235522801510686132633003119349815179378756667285893587070969008078710405041253408478322720966527237141107224703110453910003042008243656048539141643316814304748188212013997374567874356146912614731492552295951283555855107516259030515141293235445254211324211527252684037288250214737018574249637856829146206821280879066326358837309983910261483476289174144788978830232624308618066746525240555494825776633659066907549920123945727059357784100906032219574997531290985910010037847039533006394591417666073550435384197677564376134711277132452171525420739085143248722155034649643099934742321182609960293870118650994351712393324621718106353954385783738547677607730618919863019292177830225477111027454206295106276798767925958187561925397342098785503535033717066938661057115138985031152032489981137248128608668404688653136174285091781981537000793358941146191443368942047619779092893634960340302796914292674367618143697581092339048373987839228461005412574501939637453728059628740854959013199424086486805958783388668942665522070177073698055442574494852969758071049041329280426312814015112470547722297692899174492970258236244011480217047068210451654555244353699924299633240311086748816156511968190738786849668646993254139210645160397148005201888452819636117219264795244769367190450392911174990367911029447202759497037700116424123456622693558599450288182287634660045383619890592762943723982793813207097631298689294239875716231491805546638033639297953873171703948573208948982844859308068232927836856127204627370230790730570066545788176340502151873633364604304639899115934860229746006922303190333726620021806458202587051243193830594756128256345762141361990249277928860056305267614521414596963440263985774376046711223658947574912940777730956960854219621599498988788837407527697118250010887324160166899381510417859754777424730919194815532148211966525622406873829628796520759403019664447220390616097394246975116182518957713425571559890646971674973833881056666605974397315588531550403479068170593827808338157665246714243283336049817455727361751219588719654133281807164686920223935670399202509601921715025602493897333030391169551536826859093116937924158309440259999173723832315469348089931260679288817853082716577971047023558713208389184558757308737468444762099902258502159601909277291331856530406410987808843370491717551762140901310851550800648975666003471084488073056589435279056483982230422287192959108785593793658422533599103353640615763623862043695392398139847868773199027374880609338900810344682966239819955401099624589397306073703315059164045923486516035963258321405506389434283129302301974477798618787279229482822914035221584230839293459842796199200617051781171589237687535671355573217513738116549444126142582764918389482765798727447761834973708156711905411374201605382867379569424557680648127159906557718444830773771274621780124694132422936605654100070892284564962603332414763711210132172533479067646433032722553329055654922024745089525429328982394675161197233279756628334031926915860597446859208105920039645416572123239577613520515736395452920720841270144936941380739810388734519385431723833221156774524821070729185207549579207162353733946797042752145271871165095892614304346042376195350496146834296977521755089260768937227799366925252529219047173762468780045401777815959390819346083376515777679292978118695989419875237885314632625097106714617807501135866805322076450148220507087409991705354405352056890317509935252502367621925445503909011449285146528603078923653235404143312900728179292986903600462855874068975875009958053047391140736060344416361574037958132744482660660939339359692661514524655457692376002476979849969061004676906814602536108205254176387732239184240409164410458840171609373685051942599805449369098924752602907320790805567363826247289781874014642591408528165020255532353753846985809743280749907666486345473431990704860644269623314813222058383258825671400976074042081632803103599099063953523754584514254404984673064908648154555795254572641081046303034518827946524600070794469846691494432507745957090557016974897484736555125217041601935579672944540982013955693562813239470741223962035841411077704291179674204384616548426896532496138186671896334573474133837296983294904507149011057323872077867456335527143666621104682024948239250320804390221689403202941735634987251310997924681680269020848394456761291111804255388752213028470998561757925869874925600081184421775206101888696541268829889016112733950007449370454479534239514553814971827666795059140782620527981940698578059487826436770281406500010606806978542361260917908331123191730297866580395733617847178779023577829970867766841047398440245699791353603133466649423105535315200831718360499425694397252013722427797024573267661612679707593749455798229940970559948733625014998931683429237120186674975113469823488017021622009952191979453548021435376515835741715256897071836066836231387762405456528236659889927632023463255939654795863354806142415794377986237787132243728223571696684834767579217151059884031887253573400779997901885365234164488247627208004052175444047140125642955138801696967658718034070735401179531332177064850243405671608001733131513165667078687037729564561358640091752030613525569081010192531214312006244624173325959295449920042566073381579408102738820412572366717221219661865530359833749238723555627185002166067886913020392475182382443652270452924873285803557716768037849964465821302799080817581662212269422433244148843099832389485789109877784169067966872569698267757693429955455825162286356192309599475670475248463193284360343991389811697737345305186217401014565192038951944399933546464088469306667547207071077215885371640030928506898268524072059575257007156126175711075494106138759374502986500944725316400028193115550072953482970330398737533081135785180587521520204134405323774627376036343369301045123994709457617865119099508706921429664799731677922686868948461217148528814677935913922556417953540377222130425068393307611025744267335816209265880905867485080605804299359988102791843711355127456638629949629531932168682643523198131834222244905041127266513733693541600695973084406945557461584125443516540392650712365644423773812595534450515410705205703058720522008121532540046361421546668455007505470929767598634127244057358027682535443876460329425691864918348908088598200988688238444605890680429772393672662374030094582923120690080416083150052287920329260945162631171901955177089217847036175468325241054398989088655248333821550773252809525901590679996980539353607621645504896139622427931508062847588713200180682847420170303081013083406327509461448728476176407636663007396908279158668065954353569452120071103349322356200312603092606378711836086014378706823527217521181725247680953714501742052787313495399436696882519348289640329868283462572420653367128007219707974095487725901253326038643661980112734531772345945636924352639235015844242945034769402567951268482906163542458543559962550925865256363104631325495536427860308520750362798072373905342641171684620051642680422279915185136444155844296587736280199799998781050284639219229793365383337888221558097078203593791741823705590152656207322164929503501651499865189678602373202080891891205992504168583596301235840715762768567040573037567565622875029337771112399643638334061881171059260241715320898631198635826291279439772921885125376664395969606211235802460217416929156869954851260131419309738726151857680840332108978548973502904976961223809858704018808680315565696388604358484658593408963721750090348288526723739828291321045672616385376190506921483174614156203850838318812655678136920666992438205390007815982055758889724953254935659597864279638943853642216969166977063469033236407289568582969376951198061458886069085298084404210294553718095952054739840578768748386374708281122966510839117947008857858212864205967344372071915548874589664439826583439395284629902576052390844382125483580161239643497068131601752460163951547715374866094825805089977869297742277517166280445829486686587687711565362176092798723688732567302306240183367761822946814395748628088323438673397066087385326735866044649133363107913584367144570019894883848119751543349501652697411082066935525044876579397846660341661490754539839452974713588460267590044672478970373130527180512868751954214738524942964167571116280538846267107310837164852054598889125613500014004358616484828664347811426209305415395356354283966191414050756277048454642627868198812717108171972443930609703046597767417685458234760274939203734356351071549773227867074533948476895620112036653996940735369465782200744452230510184699295990448423576240658787807976993963400630452859623079315758202324968246409973536818189877510184574055915236250893896005462148093529887969340570303513404026763154450114254647714945404489895070273443688417095100395367964489643503832062219044757121240496082587225482423615750777488033920962347339923337460199768869742510213747159283252795669780080266272950422203907842731269641020761410108284778152648841782905459691603709786296275596590390103206716523243839731349154401931220061858330604747639366466557076536199080061146858862016596418259471964427586110247029386104334078551004468756457219064733143715764020040278307465347410345180879524651591199583613927304195752728185353368144395707539160216136617914569078038828660375026223437158066879182184609903455602194180788850087898526714494493568399730076348699720026147318302683917994273276347094215367837725832817818774949232580577034337559231617382004152778838053984859482075511619859602117570423116373800591722428881161859262162263548576286531880239029143761905759693713573032584882271800117513647395040964031714828696827048140042090506946226249448071638978900785326580119067851922589959731923163258511235413275259920195815663003361741418901483259659328038086780677056297502555640133138296415500018724946021023408681892326395623318559068040198520259080466419699209809198834131343785869861757707385766531793882077327502383238674140558272567869706228846834799458895120357422939506211352525375657791970660257772427458347309502692450645397971281447635524051047092084469051991854505066419556951840864553700697816372950183302219641026500670219161737347881142980884515345557675782193024864672133870544282730119393158591798952719520488267990421241316661804843863583023065204435338205623169732886959619426689828162429591068967335771802800979155494479088006480922667611720830301744227417739418083812598810550255390943955116007926399272365601316156347802814662998585409416522406364662095115632463086057321305961369107939794744773632092605572759384650891329847990122532516379644361174776816028572865157237657919025401506635074338086254213655719393177846058755388761366941833831394264399710453089968167847241157519188907858145358075089776381528506214722180994254364501274017589902458212821194217641742006112830597225556879048241257015989624599877325112401819505181250196348158550686946414000009792001836038339138492380474980597863704572146247961975862318438298409809317874773359225773859094431785190497080491552322577690892484737361990461362169806543931383997269081828107307230690005443141665839126780904839602788383770500425217364686997229704293224136763557270011240539677472820583699141106717020385093419773603074447667442884724476208852323813162783032068534722593672413988754574476887521868649232517243253226796068352161391016206944092305041719015319982822543301890116647344152391299886532447585824581619622646239345759051574261465261716863162433223594037520547259030224335134478990532286712240402915259453945373332834874889666904775823709268777826445096262639243295096165504485590166661889560165420786814258007196404996323514566255526408016599694248884868206009083319606188354699272452593711537976059130279833241098884359489712579712167235909265175043983208782548162006208184882106298808591770988759441070786869281890809451179450231806484646334860820105824939401874759875139385925173360834729169145164605569077694043281719579598097511017077171923923771884081906123019355068291077505161054281705607730211559342673141066715892879667694008538998958503035052824998626351188675424747533791544013608243846785914583330482062450763552351424488271797102688846648080477376971322660548658122029800643285238690472914477146498116880300067904438662369697503262210966642610269684386071472476668643609579098908587861746702331296662232706562562318462542197820023747573898905153484617429937133961538678955903600634534468279625160362104824922271426500122801342070321143104659088113456059456152931393475402850713806585163459478081245832984010610022596970768580339131057590470502354549759086556754213050267343890141502600255866715754211358772566842682086014486745365463075987550907221503119994807940321990347092335383093957118307347496752960958472900566628040977796535718309290857503688118764083010439267902205485703413840386527120684607299299171286456504401733491617716331329961347447316521504326952037355604535368957209368195315169688387396647880503069569030189280510848602796565673942921117297960015033835253574828662601324157634329402500199320989227756382515033741596961176802104908425978863861217408823678434880829300168338393403883409370595195201155426588449274341505152082590858945186717773188466423115744815942870238146689579536708182617376227468090061635748186920495881875761267386535723360880024646091050062332417484026946156159798477237910987876808410510748626399305166741536059165180271772115686119798060897952493234889385465719741620629847368938482655614442366325243959529896515905157430400495801691840979787446372757456431004186772669976233765129385786194649892206334070697924995375759256022031458309871659204444539066587981848307630586138431586164148800538417501241212021104432956120430853490229377134724630687010882357476140611197503325870989633122805959351306766864695156619244531867201477874950553555810129328555328459555570651673966039110461824519648714815166724307881165264258538128466718427566378193964437041719286848971172717264965208168416626412122532029604349571005171022160965033566375795551500331022849081678616025618292964206743067356044735978118107602898377967954017636492537338801554706506891427444407351241694663051720758787997793514865587717242201672920855485531193343722186435841997996883348873099155728756240214163323039170617087097915226338818050466585933141456783430144700964170591149588226369359692319614331550323069189586300582140087543401735769832689131654599954981653024436426368372703760729893798681005370479091683881169745141814348071262944982068369155460983506959911499343305480788220359086907150800010050336595819619094870039512569539631712864748164180954424245421976802862210360510226234302336837773029731777606416003995584344773142416956521655460251572580928627979209146921235968424027322207216134826957007819198143547585720607278587376223478898973330891942409473112151678051314952071877366461405110770621572169926710467293506981621668274361247918413308168754493156653897347748224748760624848131767542918070376352566650454288128708039978869992583423303804145762820451072787935051045444715132457458207623101942469623864269483343442563771597227769649440500526838589905128050760339180322181723717049347140720122628596093425850404240682041824527628982391042345182508354857170262024305814061695391794168972657326229251434684138632230151410995934267417449296939288596412814216797376897665951407646588690663684893957181246105841211652470707199904026910959298897694227442382175638582022932141989448876669401602812864367710971208351394304034818304693823435324854867455883794877470452327645121000218207150249250243636878834391556258503444627097283561006407969646555274436275299120636665644200054296164607466360238923416152500842653470887360384763049253425489160160622822317905499082084535749019341998437025915991459588876247699907878469966309091633146108445482335680895340637093654681846802420438522973509509192324100194134153799102792259652245275371653261864393350822436591381587368328103087527121752398145428932995970823193399640123935161142300507894915162463010827465518647122775467663364230238326035338782438763713070054783594495132218649828196680660768089352282960775522362420805229979813370169391755312426467769955073357689041109302556525618660053876025041987305267611636928262143833636084205058776402623017833049175279920413911272826828165279177264060174295757935708701829960346065211489050126636410802328870964751178800838873505139476228703475256135791657656232202410233562206048852583278355753948945420269180857924407524177213633647848326753768871959079612577229409302899546086193524500903302315821471435226681456368472271874050725806666908155697170052189541071780973642766335478958171203387866442658057566331187051984848253940125113928401782565549055822369647864832289956492701272764790782046136079064280991368783494312643623649006855808453907395176969110679199171593984524317573881093305176983247441141610938643874957785331390606265180323321383807254117172846440059431159315424290871705727075615772145224940799097394876533469841428306574402622622209075824969487701266350809869333827938574269170815048460453408730231550234034894577185964106712383138752785307105782351784656114176768301446536527863455053687595798150036954867927401554885995943058416974489074062929972044694356792135524401980818105915583192279665858919538810291599123825459345004245625601285849020900336043780306059127145929871158304849613719211193849598236208041435668579559214420065997358150803579108956674592788991191964956123111564670699823091979919669989200532803885988471043751568129523026059866463988030776835690609090969605716745978074510026312343472730949651085609266681809033552744449803818677223509278232486410338364083784634114375891828877824015073424848047575413671547906773192275814514980029018472675773854712888863186673777627106598543017567528875342654345967617185262310130274648165978569549678215606052083186003732504593117683246082483937725463641164946061691107588231733443278887707156388523343642585706989512745997388177585065868082943393951232825661215405940054942244700659425287852883447788297950012380021043909027066966843487819001916650483958421833615283795395621399262798373803690104715517462748853974755159585549166996485961289893293979847843837619105460657390656241203728074845343834288701024797805380925326205482124925062675595610778607551406396097572017695860207397219522314477094874020983217511842745157556239514872937324605366510199122028922397877909808942519377207047571610693937961039216281570123733532061332405668033648601579636222117882323737109406947983165956045859175255512228717275192923360345881618742065582652189954640399976313798174470259034534139021963947859343366561298805224880638363090310273221650526011164080014965857002840857764056367086272752786331861917509610945637834638376034113987273533353876623642285789683814800324230329038898102842789737136584380277256697107947181432873569041989943319980701713999209249763104318900005499653994266168395349470656573137891352551494537050216458343145690721366838791303910817784984021857450205497042824774297160336962454231944783969156289500433471049709951593578158628203327337161662602053989145782385969187132341797153132063576748025996961780045382033718387352567280333708879190218090468868105301118814183372124139976759683034711545385664715506688092933941336480141277100288544060974553625415006853994044014880815853680608896265598614755550534515037937041614687526602351235284744952042751281348789096900466795870031720832852066143351748677508266965839120824439233650888623078665489802512477539778599571806515439590908705644398784071711236590006378898471933216390974844221167818029623591571314498033819087490448104107923670204931966010076012510543393821040616976291120577588411585861086477271252570378054407737492905038571782948325266863098528376004348258919665505190132168913650500106617224274808296110712175252412881361798730781148957990163290423856257561796586650852541304774466680485445485150776599353864669491400742019871367867649530828941877041461746312595461310693996129690382866458988126387267221777943581346633004736783356788115737592624195417628875582661576830126430114647660689430136195500410704901567664276075569859894150765372836555181253202397234066949019683857806762714987737619883950459719469409610243335884663436206804196389990188682316166429320950041277051266088391560706194891796152115787982773506226861324855780954624658264372909438880068374546316804297401455570143080568165375837846753259684341785937941861995244502690669336114459531616292861364671037852683162032145730979774490047984901561311441131396732911910669565687344718994538932523671135343975547940624202602904823776994241315718797735369124246085138061699963032919586488981690182777299917857883442035435634294553946043529843982771460312264515041733962042315231216833534651651141478554403652176664474444155828404226163938466931590251720035610656359041811012087396596500254105185005144752031691234580530546625823040864781604043016518987099229097757173861569557386677875787891310708224037905275799912286390122966054123979690045872636518182233827659082380105289584375610120107303214694975811787350836261352969214843067451268544215038509864498000106257966491607788336735818236053958546445978503784691649867277366537555686191406414290979247940605362837780319572823257736687326508268975336581438192390612170990898022521113296421436242733587421136779892803345085760241692563525470771850087217897221923333941718879281372474811660226231144323156208618808761533391274012553691060806164562590364940732571238910841964654555766534936610941991231327609112111081256803539022590560301353412219974293625834607523752035109183882107704381737634340986423261336316258840599477774417816578698796895614386785743143615560179615041548772180627072639941635387705969353354595353594104228829845546451650554591745465804483493069531381007069075437843952460958524285107868079159828684563326269613308507219735374604104019091809913961475766483589640414354354066815154244485709992088673943652556110120052094168429297167783126455776173637536121709300950614397083809541184989371336125198500137113935604189396379270253371618785791177849442655741062742974934211886552763999003363740964504206361012895067011634046331762052225016951316845669305447634622769461687129767353044892730697111235859486153945439227138810949699539283294106874305506398553672168476645559054803790012980608693994206231337170568394888236837237976846344992325768932054742408795987172123580608779768542768525722854505416571509914748090797602844872336387225716992203281187071472096353559381752708546022649682562329961042878559266890601923112645942423392461680549291749269434961331175692527477215004329410330921097603688394825408969142846305379626455065429586162345574411424899075572423741775967024364239606753750737369701451622098466065564062590424845049513631836802219954439872640293533890856385278636248641184944130772601810042631939099787055885163576614686479196411582840266502243782016437115939506047558450632268884930055744881576871353238299221622315639333748057044853743120060349871424513743052013040356481600741996471174963273851884030590608803523921080245956173643763585583977647909822083013415816377493839118760107811296758504919685773148709427030258039236783366863771524118105436573739382563566409048998897077564154151428608605697463920354655663914097956836689085780609963981896887087268118416045173087104323920134640095758350130892686339636122328323825967577635635838294744040637196541125971317279655153689597858864430124285984184553488077336979229538985943599805797780341164565624184825155285395934446731598490076638470717737868231468647856733756838344816419283370274716533138783180118706683259281879578653971847124272455642338660316189445182322376617269376403414774351704768312910859057283787451880599043363407620833009449678265833789982012352670518545349817994516817571319452784046879016047491887262995897562929464992348975781359680351302394150995124355109666851512167750367003316797826446013208393259978965135038807764140194716111855558866616298457456340703660836025220497308789866610192793916015831933982756109745602435031484953659262652524971787737190757023070655010381710373388826969615652896304151968068522951013852898154232972236054390164147329948746535435295872348550869958511126342972138638220303811131610674313713399876893835974039426138980005386486646777369471306250323307908210053644624369200361369558457381490776486382438765709506238679654259870461612908790688232097609980219557511610316992178166195022704716808513240085917746332683729985312810790431107276312046879174740215207312816050540134266094185919529717590297087002515472846676355805039841782327622656643134645251277265326048400218266288178086828568197398095885667275533475693262131403535339939460370057626003655381330401173420871703898307930501132541144684700153942454579553933778914089522108639323122030273123897283978974031621124546755154864079583814429513003561252353229075704222199954883799008643308322916282423165656823952659750228376687151946676719884623951709826794467024310379035141729084022691503517051509237545150194247417010818122794280327412705357537023247239721695034317847221581706300258942208365073858015317592330468238533498579383575501535800269131106922542858297226781878538844302834144866160617848970557538482799969140207260428996391198977549350563842818416010036811012966644755115552796258240596788284109800816229659201559725999879584891065861890939635584490091700830342650227015242196252629453257977679234662914527628798333016713408161725365020716686355591672917252050981057673148223868023139296078773664960516183749596997872103476478299229752571893826344779258758157050445862873347604234022282078595290730672709420973120184847260340599852923542087440947222457526968449502988464258879798946609940116515524866418234046952487380876309126212788551771893734307171562147347736998847996375934645124766959903082916028705981526340481143448001305203721619173044860730732671976583791050755663477299412729853256401365206395249384799711720101796221809306723154121465423961311814897383479780946211051318637961464628899947387550824599423147964752617408768357006408489160046003582536038722384416167538826893596296207456745700955348911008582697328071194791138630981113674231533027149032897086304355413275290932291858756954085410378309860246200664178040026121875886395522128571562815975045393406761055867066346321311469086326439448226735756320898257996161596134868467558900430804209321507140182736657034149878792803965611255334959697214896958570487663700359580212590502838779748245364943600520580574056227514372237113350052813920114147899767150675216575692262262045839986556591123100567913769027547940657509034446403496391943429329419810715906539991309780050798632623578661274528528333136861120665047197423148762769366668033063644154312439968643830653711668778056206129557598306187591362794562240935750346532551078465201989958255298151002257564682859936209313902059228289415907510824797191533478082197593595059293859317945715764824229630698866298551535441940766727160580217659159181848908751829167882598023093056058752020624361884089778594005157682608722096583845577931748104385231524509401996672647084869707019816797961437479815821244432263115412797598175805494864180738441426193207371419759443847926970036305071821252153948578651811492680891137135474232133877240866809559263855165326471401476313885728945067955997699130618241086533613446361393322767043441163513742190915403739251929128126735365530768985416825971159999749810985395255204315488394078065634733499645293921293135648056391254098355653290331674741839049769371616553628285048638172545042306920621265770784668328847900788083515321449025130664760945474772791903734385978442734317243062392786258969662803697054850886942560849375779707842657007569119101335386931339980901564552371917094640996668875158566993192715903440478112611697052042254593146261224892812877155624352726828800460974631392039354404785062410193468715421605815925550822864886034178942301287799270910200217633847362743976212478692630483543825670321258607737202031834749301000143921382853511937356334069143843091740313477592798073413713355308431160324622179007684377156411366567938360917873420238086977480664598973248054240838889860115377450315490171730789058148443673894549680269193648241454717129480638116784431214672990772850809413489990243564995627112563271983293373036781121191543330728383943298193220380375978087736588575081297072440799101167218584458583960025967174645670450583710549421316392150415954093256315797963959381625030600711409733047442806383449431111125966584379317662340999812710569925423635063330962227782716055520932536313521723040256060808581293957216592270385094251383768786477353715031201842929726878160793812713684018473042472399806139674263231002524854788362473362652751257702306566771874250455582047925256004176820018135166393566215172506151875656664840420393355748807698738874306934503262347223823133721038572806425861589865274379186087007193865691718965136885697385095908675287988135225523018191681276388071263727604009686472300805154384039651989161125673959402301687173011454199528356345135106892449598362204878181933505549527839646264201373287190116686150420376274911922028297077922011456491587894244357106244418000432398829661680393214188206402290803359344075327400849332225776122006136452652259864887828993775185705757708323323663772462696811997543676295313569631827061883007788946410660507554107852755908444545956729768413851266856631449020749072642183886830656246361958517541689267965380909786284499061394620710259997718809830242243433359433377182482886545061791278694680952760385149810246627163444586063800419620221567868414107539680313031362565333004370844519419556522779410859089540350992240376976458866939875049937830313562240656749960746246222304829802395902046402423224931215182257649492111921312006095813880841673732119051856928132715278836869358049140326952603715430350581717576590798481268952622746828727396395758849991425015727424172764313788860318742317693678023467134630516472181762543628377235107353472286892285957837532063046127596619222162364434322531053381031364401565008758734488823815425507258819227374874621994714196475046367920979023280647374938030765155002309963511101736174631406994602441384812710298098410050070227341337456172795155496088256340032297943291691594641340897691973988426785499053267577083798562851143431378855256390377925963960713098610364468788379300599429039518580911581042407982715225370733331887151497792445730078404464904270659677848681219136094357668888657370417837344933457364170273716707634078763768998228177154043201179920433603014174057325817409590199753464774120894085239685683323339242449475534728046831211450445273745658401441429863266388531113677127357792802924457961240996335846750007795459441074781851740752326574961577105559060366539068479067433170159882308493120986448046154333744609803984592627475601805045493569825910148378996446052636022708701004963457313672361554452729746763340059389325912514533261352452063773752538588305080046210180260985985356572732807007933874059601948314807759868102492024646813547612124994542865619028782195148239913361481893486042742289096834326915526771030134755592422082476776160751903726096043659170343702997885906742664242630418887773101892785988975910573529656319989855184880165812638988834359302095501250505924104333572422483866532005850878273017577267118685151461667038046940882663285971734175224495000517043138960045613088397970745563904017161237905897257766061031544814768449163855491626438817133266672783644487119440260175863084127752810408483146587525518845606405319879441704041465134660458017993805794464983851781659504228666802243839147138519780905437991056419416109618650059890981011992344399371450744012340324737171846907300852744501731691313432150363598011938650136728456405948240462167130015439724197181402711211972284421778680360985784810128883630568528968209554939817531747952059755922946190929562044175538414882498034086945060029678026058758819357263440923976318157733298927427380624509801515446819795104391838009330529849954398486290505865433881593495166782129008293134599775114161086091437253325404507107743771483410489984154077126331415129188204948301268351148701953064222904767335206633810476410086627153007378059788846283273411629554259798650468835402492583569260037735867584135740944263716056548137710627047923379135953251727321651705175540437703218994364431264234624521355743059859450474389508866506608186318722802191012808351508731771834565652784512484727777758350379811258942324988364869551007529505703834817736057108059797219040403116971801001682704145810730555804929173843684082146449231394602733398732647726607966793791084500790756522876338734828653573040426398978818005617305272958532511044591858870268052951967098166081026349409663294227612254157692553263343992602769160422466583517976257086701783911112882218321432355303356047789964144981102192920440363359565108590580730172037984318694366206339623915160528368168020276732082751359200332282560858577698175120816250985852223646250447428951751581436443303486867709623178051175511086042495789943235552471281171250564120052265399957182280940304752478431017510254249202994641292125382343621278859832379106473214415961652085850054884328680731322108906717034511697305723288443721290229549969066649780811616308612512524041522558110612900461951976640196729146405914745127279769401968263355511184917938783299230643475247535012531256508101123644823780968797385578204152056755523010059618919870094264064858668435125235399792408667832702207907742886279947626769716090771330698663302693532743754717011307262909704436225364747725768985261663459758067033653358865043026703763640331940873474310778606249739944170149531495904276162134968392856388534334175991810748322053983089899491561443698748360473793516399905609240640755159588686419654162397506740860471208330045761287965066094862984489450000134666879262740525336996844838577637710994322344480297486137477250790535265582898966658591494669248741596114066580304724432827685660144356385644380914616668391034469215880278466330580927433638243440400866375838721077672663491125243233196973441728385443386175218218217834672644223704258744737926614271454931915059689554666680613388220966579909327636553055806616356548857760280727639656106394084090088413526900779855910534774587067995809665398126139168304316458864898137200196047300778784681683851361005944173229031390568073592001849408418126583908741884285226063913379237761237222858363689296231985563804384149104374583186872704740170504571181851262552786515190845405365159215843574303004260873992724687081545888361994532918153762196631825067358248293497036611689953646062258545693070140038729402560589831646199762259992250355952587209029155417526625283200594348383524621174442474349453491040209834071640342492594244496537305510312650621156658517026221697033518795562079317375865653356169871398543480813051273675087625666869514401046872773765099180967346961981663260660048913806559981683285349446239215837979477317456493934802319304083028099152985681621792163843407375247549040290490194732510541447757875357765312355320388198278936858984317060045471974342190888857956040211139806933878419439248720763604658972468215473775307162385076715812496351360326387671836834473797205639618855256888830008583302938614137032977603587447065535642989248118753138533262696939588186779298471781903383103217892284402625935062761964305038644831580018509295650016304505819616757403262610215055967357896493493705959214103611080798313120321914238947226851558675049445230127157728019480274481987042136039422445433375520498742117347901078568284858885142649966513772688263188590114609803732779826292382637424641623283667784063167438232775961587664046670541498887990000183499463256259870342894157530574115520501307586104389681481703896801375882026194452473373092198653082391269819662646585070648265532702625222490806120965456073129290926682852571029075510697781944036955063748649087970916349030525513591324896349504709732167771103520730352065548229481709491809595720071215052373660724450734129834706321105844223111702465112201235373077589247283793094886754626388278958597845642631613572109354473389133966063692522876705521001935867218674648867614405023355102221740541648339531766318383217596759289672173039812399755104022493324626104980385837131221031550915878895308540499615892286411301497342463704345216860618620197730116759157581034167299063134337446751266748454222101435467365272578332660316100126081498162885917757643353016944875888796545780582652929822070580273127317838075925677733932066374241090670090814106624561013064426924975473518668522328634072706783815112607461159870270413475237664717192478203292305851512801119978236938158669881820702782991846520767020826737472492075224922128445605867497953035696372215403823593878848850344205334990418997568264325445283927996270750344814110496559459978192552936990414979927577314713279986895786858001830901035175254513133327265450996492811700902811180857846567354585852580577858182346220099983520743916882027317328334597152444850335052070600993685008626273504372887342307257768662854232108915343499651576191269739931108991442054463249362484447184140245510325286214935719341715330466945252621415965606771086571840637908398967840418840179229907353573402829226850617582352192283245522247578480622054014295014282009244731776478488109844332562506471146966161743118321282265594335281202647800150414880260379773352219886744844043612759285513638754236235122123314471133360997683332610985770402553204918729886267221421404681691454911041859050738964673906585635380851816247783995603728667631117050477189412296668334517458129897581011357977647508485172287813027752639197526485248276521255521955782926462243919500451915725047657193913916845405353608406174696854818274468294638280622292488061531918887079540806343748351879480355355191848332050372189882375298734039815288556316781583241650172019433621626161609554797133223719301078080204778668225751260789820058158282801641533819028569329547564797307721736790272139842372947512313890268662258413364894141376552612371638140670675912386802292822325637841135576577561982090060188714788621941509942350606959243504976568478073078412615034227563466935631508367926838607097180805000190101528324987730758864220618642977158460185467396214737892207416376525998835572191318657531617124787169271495794751862541529159917458631756759030584735162438842508840044186124701357145811000409775335806493029231450079583659414688785034682548069309590800873635286412463876936335671853826245520471228332693407165810460100134197114373679913001003587178549850919393368410084169950253523600894580743401776562975214094108303078010892057611729872556943824491758756285387012729527496436331286974741997470924271599720630885897870104757600987940880764013486934231255817185062316308190422681570412713337832061634535750693126620694349371163455191246803116218411361882511139299459381837291231929330835508309921628512082862431748306727822525369712949192778453128562429363849582085333268133734975500244017382836270167788634847611698605111695680770681053617021570119582913339420065104074966219048439774607631883166046676731935029765904851161509748336831215321170291021087683082606991246879805242242704828875571186687181346870019216265132368409829956377430615155320896033121232522624717617752715825554767125531881321338856829990661608254007144693548463601842366091091272880548554843313778941801304813570281264484773833716179049047598752963852384300132511900366029648213972682303854973879121915803307554907742064466693964095836640486211899941670830938635634356037864552969089788467431491792300883467860563836102977848486179716494185525482434626537402917833447663160108978407098100443107465133975817155637281551809166854790017128444291250533590129292260455701082875617892377204868096022270388538246730529322805694573406082802155880042540109581044512999727455529720124187766249339837117760256127016125502293678094974924589568579411266763106454328380753595829195962994310776901284977235276136774019227773155509121533997155035146370886254194476835633352857570609187951420747971278526424352388575114548941810038283997481814855977398495685052596072499056860876248853963477528174287191568052585698978642285008815994622594519720268772588968587733966837251567139862744194488690099728954304236318178223079797839544069857172719258051462002952411502175763473391524926797956150897139627604691793289199242648114136753216291445329118740697064908528091450703949856971365878799300275718774691319319745666661515534477333621177249143875660093623757961986252032916078123708273671225660027144679752372640075627416787347068171061751108603832876293791888440139713706706339207937183459714932113272444064569807451834312713871515242934178857398182735952989405288304421184408102530971568164024862924988820801647669545357734057739697033758815011865945284802140362923194660435030631833955650688883106953075817927546504474778047262391847843441787276690162759183220646176207073237432131770014233611083747390148455397224122401636858450174434149841218169432756739944177986491165841635876921686797681931699315698072419362742266344561909193939417421116030538890302823156875738615126390998359299987270801469839275490026437355513698411177468367108260542743008054623770912180740188261655986907983529950974148168042420022531436972578639268464935974317313950612072482220824119741826507343376348878206400652481969022956128597182493505848934241347236201982481290321564673096862947573644936460837119493234153021499960708482377299180897435753986137043039213670920456403949409313217834800099020063341847030788559409450404605488762142957955125546263575511004680579265445982859502436186624993141503801619073523744995308612101393849961609417309441760117368541997726078735609214142579498430430811062095043269610332141140164635459832893526598487721128444597785554764128035293086023125981015050739913358009584660825581138747360110838976513457526162297208982250259830420824891937373646141841176533019649336922354416329654717162165413764878570324001737639400717341514825910995822336529428590648668554203497553021966659042990112920667183286284039165814066830075486649032894894598702285959985761636084183932006003529579611971741002955251961752074163844442274155210099753171706494777291764110507044401524097692471281404868982311781343376021476779640751811051229666429048386186617550396160384705377876839138669247435018632944539619777712321589027029443145216833079594330149247779736217948326188337037321333979971739034661484659708653891471247195874136931628210079486519592814568513514574213381289319388387424680810554196221508227238193883598336213371425243237637742144617231417720211818984388195917103177133721226789129343452603890476327164936594347903140035909072037246488834222041636719888713891664183177103899895384351297256482220773032283935026087542440655025424309405148542662713396424251169213856272492525370887737665645953662002197966404883321405617590851060212335171094355155263151009777474201890764812893297639211829183692338670927871499430329655659760001785553428418251479731510575484575489508510252854267176700184216695529905738329509564799285248128754183856507584515633621850264461376106031967826594205394461282164977837186815817450649198539123247744064143524713453033978934730921675471686406846496110435818295675308265980856107430861425293361739398498961941846757045097057613728981717143830965607040770197696998353178905626242481486972188228063145370092295779287088612292450406148108207618125176918370334805828237753883956934424548651999908288114551144782272297790900175447812159131616070646775782921916353368638826400234525131635114938256082372085158014969218600352494312476597740714427495828269167388127339753139840861523922769432603651576589803871845717319416921686514421757916543232058244650282922073023601226088916399711674028581477008801693576491919921250345180377646202785676832859303431007940539648152032108797515855559507075915629837063185595149512132985037237908200010866416760295617578814512588610517555187366743252978344777189604898033788082226350776598652494304963385691012028494819778623208079801964864411811344373049369932483636208802384212533115426348998249583329083744110559193511282899067342286660888618762461444961904210277826647352449605487940935373152335793881658430372815254840325951394044846048695510378564963697113484573896923448755893116283093481583907369638795335205030208870825682941650189390884615935259512341912797344409301630720882037691379120834852130331818466297022066189164361661823657906887649234427738370292899449439108994009324646224717048406206251649156294883592314573788097099785172275179272788484992862151652227624741584667701468216782510001813971496036615084485147440785185998590113936102637618658313728329325123787027616948109327519417499548595430953452183928594031851208679044202539083062262602841910820391654667217429665583905953071342469713036020154740108264544741306182081515635960978692277800725994404554591284824226425267666926966053739179077191136028848384673053200132218941787900312614002016102183092870768977688987894699980500500271974374903564967109284873839706916821952100983014159187546245615775511152498661598940352140580875839368950889918165554148853991101419445640391071386718035960138984727751337681265648343140518440402079449973332154025810588746531064752784525997073791215984306450024844771723202694317832068079630039282889428890729668314739910388559174985750975144175778644735230716235298405316513638906003532507474691455268884333522604345685057978102601408692849963476714805401319683537970395958842894577314181836036382331911744808918725365125929338242464527074153623350275360142735826140570629294151700699931656574785383001870799927818885142481730880764673824833541829794292929562846397222832106735468527623109232230497725122477390550279118442018881462719517522444698962366124048033636513052700709460374706537423654907672613688242628983962516217043719949881377299209259614729287286210634048521303280238737878325861909573392553824845967299797702140991210274961259151226419562090573499100603520387295390559000156786123249099615316221148385117953592923540597734685804699740226310078963392252453486605861363083740246069284492585188561607591569895820400579122056241145199985868163180015831316388949386259603878182271854039054278516618816383716630431001276185255433073624558343280431928626431359885694776052190886372967885933707625681363494438802880296218066469730957513613644092281876176163684326444185359731505906899029556852635146504046948371303228173291687874809414724584103748141482865129175756232136355382012108279965220449725672567797730647003027266802362689754914724614150779623787054847044997087849834212222705074547027640558052460003733154522544819330543632850929857920913371821051872319893827619012901147157415017572711666233184489684764681170104670943160686764858419885185357095402755064079637519274827966457655606627962029799538603212150861832249786830541860987361470678510495121002345191230801868063771305247326204315284828329889164095023325010571818159352492708597734557935392117425548249117986163945581543828897456102058801998595772180485194822564133566269983941333574860977581701038370367802700416032955932151006690645453411974673518368866777332958023452065773628387714239110700412732786913413191367856690445116370350839290217872450523318930639510019581819540270280242052099259084166956839665664103881503648365287379441618122367983753655593511533879445776043801265769047427116594998716902609358921664560295047113773067374720213520474352001099183769094322521314172195890273840311234268638212295669986492333145973513852074423364920026743953482417714939484053187731274503216796630571063624190294695562721970386194611040132703969712336817813193706530255162034217343025648629190923446741700235964875463516650626105695924609356967419718890165684343513448038661977119062436219579872789948008531350540449486222716979603158535603201805272262587138317689575196500554444539449706107298205460183488315835021852280557819318301708449463235949667532647659322252386205048563143647242610670435367540882013172639767403668143252677969544475425769272182462160058932915030898597203321588048866826015899437514902133637261984217843422614825340769346766535516630807674634491966642978642346672597013509707575961709155773672188144246860860094006904409616173403662691171890204809997483217491309928111481766364959527764858728962841322638455135684275018331098564928650881769796432676789438834899077258624672068514973932832640981885369323192986515475882080366017465037221834606629697529204887520649150821655309183736516277636992152472155481091522409284540213842501942330820397957475592540537117035784315880281995712473549344541737788403774535007037372035201943739605909234119328814318140865714303638524023051548847607314777206808072861452919944339218519362608261692638640576103138436973354151676839126111088128242084019521252520334991334973533622709729697570186399717259518104252846107203349346889331441504228444121588777304246007316524628118758664313682097568804155880773562176199483826213797749786935529544049206457342270105466506287906767049847557327920413885976341873494897191347598135072853563620841480728553355459608204286169939091632190063302940335483825795002965931057393246164366760606644448478418393547493177919711379239031234887460157508787998309132476986338683165902391314837923131863009793766340755925847180904561762571635358273123314706690462309431340449073113145949403846903272558811280162449755467457158292093205577998196965435117601111811745592906177265792956812926217149417451023920979106509372227725724465177299120848493950969269386324556824661272309316012059994388589414315237212982842189896569497703288223126032609544170012768166725084536199744567153156377431870980863649713448689778367956928430923266345933375743794918786063369651711199791552001378779969872795304905083003812118022177626646592840253449646892960382339530852864096203629281567952885304613584187452662732644279033227826312217523383149608894329308516728849693528727809946575475227338983916300014591586770569343507589338850475471930878802369567921749360768943406130544341561667028462696833450465987851219216870593659107179829639292571423223550271268125511054556808502436954507480511891172525971533566565580539902761926457217344773823647917096190521940776943047875238650793060572267714803265235045747960346175465447367964474818840293296732585779290388119066008750815057988109624397735117417498880977027488398895037844995941771007715359127453263585374124655084804853272376233658502784362415675323427019412899864066316936564798682823051320909608660104584198779022534584886510943876768266875501361674600716554515687800509294940613206478514199898872178481712440398631689994848803433180698966984603642244791053208714275139704796904360458080220385133804361442560305683462389833383277973314397239625927820090363251970755549205618155322385430802941800343830861789811522685872072308062597794418923430186294496641612537020052973654060240913993878708594472350013986271054184918581032143281192757782127345054973969797982464300266643287672871791611660828727516974499188675265662646861567341104758388935337689112543505010901064415981569844257773652991516323974730016508998901489639133445790223170935241726836062605933551153433024026776258825390952285850657378524010389138545495711198084796528272691353134000910761565031546294016285052449567789497559813066690446617271526259967838557968555593870605645725991738053269421093031592132888554324352986933815952154154215755656411621008377243570541482852988867119380397915126873642422719815986534916873568811581461597437206335676729960219938504306462606523142096021925381385315482229642362465990729674701994655965905941322673041145259406401808862852733215693796582987142762783620699611274378794031263584205701076233673511025280241441815607708686119818281706403205490576191920014643588692692703338499229086238131803619948695403656810001493506457959595795156736422015908149748300753412819797212011068492270080421252927554403077494412220790488810203676716304218418356393812127882555331047424050923055361977642418597897898518901090173021624752223903607780573234742803405313023366189336511874903048857401996322565896457980940225035159610455061226446646685802374736838472918170311748657874375784320293998002809949954799672791299235745732499904191360141648966012622620603006903759907973761720227689135783273029999382908700906469863168553598123606252873009356387602194231487343191256434131784981883650681545892858391401025174753838871960189587969175807682348928515542680286119073886802418851207868295369554244619501350863230247538746519135905678153105321988541584096908002168182339928701907847451835420555610013553695666271587438834934145441077331704187590407163111082455967682815752417110886521856056868339322116234508746824872424351506198990307909210586161766453389045963404572273212706200391049906034926473419762996291255222130345620417570413357840067657531472680094346893159380847236233628637939552679719122772203206115970736418162192864431782610736119006933505687485604467503019016536903868170171653996109750830108187410088457016111308643151248605552416234900014027443579739900940098734045288140447432567605780157829800007106423086834693562481503329014512086811227870990487325354131111317116025849893874548061824613800271571574704593612430564186340359052806758188602044505505277717210652361159290228222689862362916443164200822765780208688531482315808544860014044519256741153907529771885707013389321731262857877052040151137100419172247312845424872273386065634162539128818444085136692208483520597707510967545511026053531447199123513357661131948726339508438924413650954055002097448314138299282964895845433954493368417160254120720140957752768652002680501235480691277287219488262156508858162301785453051984409519273379783774856297462802500459478769808149387570118134806501603797955498363904987207098946663268313629232397546979510188237295200092641229939659398133893899373629842192205369330163192233389185667395922628798276815733667807552077161656851415870088001185598059409258085609565802803776509779222727702560023902251098726406645513528611110691320476286976623009769437095278421753308990091516144027930642021154855494385062906941383345815705902267469795718510894451894414618073215709669900473587399801303618124398587445117066667366498150983603338508757914187052132408524483435663185746041424340168752765302630757250752340549098376182635494433820785600298436540971191147724559737374466179188096103977906906428959169864682425869730582994412444342050914654775993807431216938597213111878903895218877937434250213257488105114716742174859914889163793856966543077700901494143784622950569839799382871969186428033293255850237211067191560898317390369377849421326134056810843816352092473440871577367979344710670144902046179162694605544247010576062251773127649809134840517207470520449456608427554128478937439860289584583961108839822731125280051166443711643359263514015097066242230412622572163872239774490552244574937405193837811340645262117946368374693134040463150197865933023944422212390837195237159439516758594820796401323344711559541711400779751059326617033577587099868898813203657800129018052447863482729312903636011858726601093312942515211591652192941089440341418018600999925355131502720197011347198178553755276609757645960634688572880266081773481644974732700952025841328980685737878587361556397773117259825820066923588260091469070405769093020284754080046296084948271830090261830488457222676874102629667036555379470013379156129502670206053832246600485002947031472949548084177459393913226214574915050156632592446832968012805152088375495747846182658836657788374600687159181659604206745292410059279488599171999042724043625230202837365939424548138039486383041129732159283579064636749017688006687030733315943067327479155864133892152002606264978541244140939567997179361243655552157137225542051812101288028159465586275695554481254038373893176883569341862820560595155871684385015388649374697772990613106360919321755126525578370164418242138248718427530256239350737492780829802522197875180725700225566830169711745479009041651012632677160305255820035135151560202094495769721477653172149472015558617794876541478605784226467603426946993889688132308429897560840651757204882159770549843000542654172826679823923223477231358719132871715415071662554637820623553578942909464104056964834350728036906660899809500647154123608342895843669658347191171125645798563755744390675971229845877903713960306469047318767862929751759375598197973899952982848565305213995517676946452572089597750584148609774563197644532631656367609358874824085925606396897648606454303431098348337669239680061827092090051553923202237791776593149287596223337015990921699842779968342322075313770216819747143392415936361699848092745802311313494737983221544649414144617489399374326261957985641616248495324190403009898480414814243633396768926345000630866399835433458318047196268518222959243040433437542957606206385460615720470443867920318415787534982556864641633918358392776676345080365964342242208890008673289957825434878947563819873472205670133086749701485283689193555501780226733936256416299722683185930148032888944956670442207329361472915300957272418580121004306683163709392884585745511550227261918562080213652417572661189141887479078676270525093557853744042158697836546377631314157608519756994844516328114437915482161739424904136817447673205006882308642342683052777629805060169378097771121021955799488380617156560043510172029637063821599830813903407026436969598482238778628484713020002059556576989881529024354088464785851406894440588472734822818222714179044064558843366548547590015013771714619409272544965933866525112280871727242834232575552758547877939837821906576660120196858606964843129231803850891360354532289476042564326767248182202921435987478899536190826843261680158647584865141217493645627779061334789916166664625714454002439746081016985134430132404507324870995197526525074830348926127830002987601068357269764268107770608568917986930221582052267914171288654096372401104017629893761394318826367325738548644001686783977960046403686544707013858784755470549726772703873839301968316845530593252848836567610294630591507479820037338333880712335845859704230965783574868050840397373564425747649270460409212717801816811645148377847159443852864014528325383339533399251138532170540797425229275675365223016875777096023971151230873819974130212574282434446019901032188929962479529466358530527517791666610445001204388623462372799062900530841722328649142362969675928167655727825124416574112471799334021061588263907409719532552424893245406412334831440975311158393846688505919671219838055992034094425607248997608329521772468110108302459544881620887841831995922161966970548487502327334200099610409940413111054745572578412975508508635137093221103920582566503190127148559239489533012952275445433204829134805113105210729558289674433461299863557705401962262003191518013295708110298704453955589464147554565622158072991836130798779338398357845323118153752385554523204881638815249403533707238738412392857618985986106194553245033941863011664845759506156904339146207098158643526970628174705969918262804632487825997983404112934899025530670020959225708233089742363673705691552850071313251083642239243762081926539815943567831416968569353495655015752748729605813285069250869161629113587698529225055695830081715488157372472631895721887256744141184134444705757373347159800748789687585786076012878041249342988166760508420462826605015615588846074349011616596734640007863273445224980160394155102975267723019485445678983830866401419076900976489047451440052811478252598589202678162285099662512997733069122241822382284759381775834035760668765639003883983590122543169399463958857832459671468255209855747325772597016167175584124294227757714749102303134002850194401589696124480746052286190729253722994521100184615559267545257523908027048203684206776741174678251978551783519753317995539254244637718594833636327063064396146534500030416209599057369800260936748036714868276541573433172494129678553263750457245477262925008878375791397556615216844538186287941955472947944884787578144640539403553921910447829642640865640395095994383261580248854189277714826418715670531838876382984137450743167853502707151954735342949521385308263803858224975428932706333250820378827642602904668517240077052110543095348648263614346687102635104607863881413236730417301532082514631198203297358713120960794684055628160696920127947405496764387349772722030767896690423443854969144877531318958471288279318217538451338014708349402169039391947179119334102245229485361622794798360727388951162902637119567948130754738403543892953503303134791799946919436926005254326347697030420981261325057718979368403282721504563981151898044930889043461454402229791350858585150176125635467012788785201802334103811977500524900553357908978156837279902089633518554815437451073179354912965334978691082757589178483316775113585986188191486919672219374386635445897005407525159249269854645458236379932254971777613946020178160173007911930197478639333582845359474697564219387210366514180404793649220738049844963116985209920472078437216662341392611315924960585648180933862554525455387880339229337756847374207784190784943808913991138040002184535145896256279567421970274350789230033157770772707035765881747366594968755685927562682378027741323553553571124839071366441097786386278841818915121353492990573242745610500437775395280960752974546105391717196583742485631714104804143594046426964718686132940290939422768450124197633289089688863596974431875284924149855195238382105210871755220210874674339182801797982043263449001105893512921131299746037666280288862110885009679920793448887760509491233930012996252576678557351242681142605025251312946766544151245535378514409843769703961079771123532805043999946706876697344719295988764921220531194259779696706500028905720675248994901921075445305061782614975993677713917931914629033299762580404257321590871328900129726139848621864521610884931961430064973448556553583821902567236288375282249271296902028437492768266813352643485487434182073709344283706233880678459698662694953229228756749407167019545035867118138277175617895766203554669878025053343766591914771490710904238153853964833853668696447126542808660272891985168987576124963304679964241205464117145344549171503916902989476296217209541856541709326065921465021657275835449997740072030436932163351436042087794942952997392829473037342563226881435693978092922262862480217739473458149797588475970619201241697980545806353066593911990382496777931028346712434982842108904108235960054569676079026350361917983378256735182885784315213438661662148691002475915269960200592911320393912095755965237822143864459358561557581183165386442445906171538804560736825861918498267300977170310232325394898419622684240802423230132920165415946459570530267443827654341762792439322479710252566559613984096808159887940934352658169689144126253825126526934598523267428029365471371183944551293598418227476405027808178166680045889664285662888350570166215347462355543058587568065191206235643543953637545215107353097814701622187603473946638697120863243750616225344103553088337861884298179392655052181209525441564556006396035477510833381011813218743636466094348850813073869867028605183199820535263623405431058682339576046012546280802359770166285588725047055388933743515044883604466083012006512463093535197854188063342101832993566339696128727479566269580102018710612477035987323257124195702723586304865406064031990484090446237700933998373506383029512970291628956672742566188380072209664766837062359273773592082713062150281407372156667610563461817333857964632399446643384768236567007754040122870012275642480809223406819950395374154439284860678189991955531249734241069407672542726920615860090349355117691762843792548965807355289304910652407646586945152360184786637907959454241791115204144255811973578917011783051103288236406498723523124129672105444889987244972418772233113844644476033433070828801769818531146029958889906619234048196118239678406651771869573585632137004379511381678129846824647850313094652495045555335903840556147541289713040121014173535319837992879222381669771146255186478514785592700721492145878778832767629211873738257605169380111313620888920252746451237872917396317929982628509124802221828734547496133617104717905469898471373838574984657857904017957034334418588714460874047146965837709692251831015600870176420411923128206658209741913707483990355190882712067503514104923090602335519046328059503050681069462835110887499099753083389249614109796637855189901684727834262971251967681947703934740990191916274016430654063672361885527661468871477164059605951395645147962782003009050130281652923788442698722101790714890486793940239402384010025708965387230424420985109248322965482450674414184598922156295476840498598364163200101670650414822502090386915494334185625230183118463725387655691742298980297922616319437313796872085710152271272668581304458673367205975221216967153485879952080661162405355725197995643428395005584757344420283484566506541503021946490181517075695954395572253985386524795349711773185694244836120687152486709096610732201149980638418731093372629240765327593768845296013249279163058186362021039855219256548867745961777676542721070562660673611512745350338661053268399555545043559855264987025530355958756676720985759087817664050361033451596228138428845265089509760691144530651164840239501595783525350517110873696285634168615459777410050534257507558000838405824931123799677589225197239073749436334554962623072648973467274968511424996232683870790522706097901361816011011559999139074067678324507295688843295722599243210082205559043049427688127709380779165309988114738466534877213553961997554972947188648092644585404373141360288596918396749965347272059539129357727860658608838794290737554699219342203317714400875680975673279644855786974869772088452130135435485104504412105062469032321438384711371400678984681704043061234175339651959550770061240126312986794819978092156667131334162248337815906409252902333905385497115525358112665290069527582316885344532357669219203536417058005685434254629639697586356298337763554207895580926508191063894435227361393332431577718318385150288728225980220756657643825035462705883217953822789995162815211677135400745810210860905844314129176872122185085119876075062997895416115416185184116462176134858717419813245599749116269727358092031939643076057114424811753267228865090235606635353049787991182342311207540117018955199276390852450682369884714302923251642158781245262429998475018083918593652825231695345058838806085806987138314518104570834079341270258458479186309172448494012298547766834242739418546746779634565024238567933606456082611124224534042231216962267081504343644721303326241775181350556172650426267314180610044858470535886624121934972014907953707813496343226136976452057645742839252809739382000749636931607319979526402631451667746337988840680199169757175141978673102154135214075631107975500426454919209605116360264922173328001580339547617341196864325912869290789341287773907674641469562187475621221500377498097378020224123395464050079584800178105306130378281737048789717511586936191800494138540711094900538625050174480378023219675511784724648380050053939027350620491583350041524393700390268353342774017234105581266180700652763164287616268414184134922368512327044672008602315175212151456591350679923924376984581132913361416612865923678156900859444318376341673814223820514747783933523476831562596962656706362898183333706272111332481940376093023778314321966978882217187841865526233496301762948001206776380413767831025470167100938973736823433645419355261726981781197307552741475011048059308314085697528204725673876824989816215549609342433330689204323089048776109391496685016776158511328599081486666354729931568256622408363299663184800625352951308154481460250448944090606767785407143378752062211223961242281492140084257913361223901612502649639179062313249212973304573356204309518425442541319323972027441805924980373256407404822317729562631902645018557187565631504381671058032059484634698586169841139715689786100078302155239788335174098674577123417032297018283208438746162302000900557182017344081429880412466208596038661534574418410592786715755145713854410856274178840165557030753688427760933670989584656408742309345579290950745289822898411844199045858417318335006571069603169866623974338675328283682006979582558938688272705618228775731728364455034519214701972455959159636986934488249688753054721950817483877652551250081102701993180696687716805586272356546929202404467982383475268698289088991511520310276821821795498642192746006317983487468504386687973930577746240278117861237258563097253499976659268901747983586710923630136359208387803746749635470444117629738192263032652611594557365765078359759261244522797862148177235344687489944549676992813499994583859250282576350407445917184798086476484720029617056065585890185149061868764406710287313071518522196361724187724985559609052353720555612736561809968200638025264729861488260165944635999587100882262695145847327867592863339722620550779151289685735653808873971273044425873486907586089737809091303370664792065626884672859121546568877405649292423461525954284866095712253692247550895903592721791629082548941089229697707623305510666486199842448258255612789147767356109824480910041949785268785343035706100114532669145294245725111734717579762884866818255335761011149470176947878093146691745397463159888148506890495776861752256929074119876336866680184961736220182597471914615116539033917612979314900716670010404800586849048182134895763070818501248128131309444681750751432909181865324910574612405215637369802414028470850645759617448992319511156515591920665709687642399524435853143590874343506017837175098368407711123442267294492516378044187141098489941069581974582114022633974875754526117004716735977180758679540288493702831561208658744210381315131709352143994739199120372163541172837232955843783700376906099855394775504800424882405297101892822307531128360936748337431684386072301276051310972582350045768188637826474184679309026780668586467399039698326606748882544881366545524420901200874961436672985226147240956698641979524740108312961611150446757222143364493485503724622581435024229106147131436793106286196721467335785320175310256554580211552526576977997871857099271502710235675134435464032750143116492515606349093106643706180048900763058600928663689360295480639742437879925144757640263432909627029059470034280884630190197241614318613475512795725359210362488421159116606664431534909025522027032121819169886416323264843699312402116667849244225832120772854356615069081462435989597883068066429596202652432588936055462975365511448145993723841171913373054317442693700294292229762723591261339414549118859434147747919783457389380995001900478866687733057504265581068848199186713528869361624659689106886221037925877645554778778073258463754329986191469292812443008479515604636183520279771281235224704278697000028304712816595293747722160699537886748273035148597909342904409835397421943454294750233608371822954691562516881941763188567267235449114412509097060511855114550122541506029896983627727131760851178769243291929126316023261933993270605251385593177943169358800396570906753449230168796462755326178840478285754666398717912384978351894226204882993118891612244385412228707650539732630080148902625468127445845581377345647231241340775227250490318295593164948422776815904028815977604032853505841061416440271229824391856687355623438264100650299119540890284064090282670459623359451335209002228194758163748448900384375028091770001249929730727797279887314572158731434646356302140389928692096281703713274901984191731995476706653794778499566205288850581864351307862413400212476451521511279633312273760144457531953772855174955299025541846677530659719997365307135256740716044376302744192507303350407936365421879663405874994490858380844318810400320588362938168704185233306306929666232301131598149542676603683068568823793870800346771848510357447652017433933185308101300558718139392667574685198291172089344293955467846195613831807635572311958784671247476301316273370386583850175798739739517512069526868182887976442352582866290183274214604774586279991108130084127845111481818888667461994159274682993165076614687397990165807624906404715447889235748758177187452214613821803590905766161590429410337626597399384174868708930414679264935767440882449571012032958683407971627276930399535156806896420676260894187206445142493598410856245889306935402786968430094498123504609424740489234033600022448055233180001673097328703135283384232575566485696230107432630423175065677004591911823889220111097475570618342184521674866491880964234669132700151869760483476710083216182783001705144331769638645251798401268154876179316595949756560010572173151888908285499804944987319820616355877655849136438584227482689924173392879281732970569592044892243769338082685152864267474167761956063288398617075602410864360249290189993457602980432851327428431559058730322181380907136862991743259463379259183889812618131440817827882624370549954861137674567258008169922326877145287229283814820039977957226009808542829387888198239546179582240349107838299493487340024583619764781479803743157569549172107641180836539301027968988350724234584300200781309554998309488694114274668785865462999123169711461088982885269981475390078117699445669464025500100896780076727953490141940468011587966047874360325076291993355248996519260382984906312089696471978603054745295337320084521110028378089729451749681066667872728164557413629333335248792643286164351435003905651388061722225818621955118490839206559074031659846115875738690359681392590202069923803211372719946909100148554617254084397069600375257967249410541808548515972261561017645969568480592536541946203438907226319432069717516065993519847707846188396866472515667379563123078989656718940116966322787856573423769535869695562592334987478216424245896030764445909371486065218145272760696071531474799424321282908238164889140940612813320815503198533237544173685583347080878669162553727761597139921134408970164274146485861191766870311556469239573566526180197458669135065811204681339139128024267107953811137596172515210540319482322305103583403363235267854230489713608367069891617011594221232397259166287182172554242317256802160390813426549266849138493622928191530955720859696661300960671074960597975092982332175736591067578711451714059435616672605650454889933396320516537386718040555917734274432604506348959462972555948966299769132546811123330806480304346120939416162661678564210984751816707838500220671788227556307308465893992032021877084088938568375130869777364581527676667446818807158939330493882072776657796979637506489240842610052542553128192288454168845718104276275612477000884994247708935016850548679815722843669525413948426225617295069141660874041118624878540502819664919990286302475599723977470260889572566281119537817248635922416770836807525992640037457241643317745369965461603525282544209053604640489086908737805915446137525840385620853296916981831471604344075794999016128989231139933318478908188549145370716892621812095462435309072647673362340599045004073554677282040250459471396663827629489642299090608420067263403966126023014894803984178449104959480207211427073256945283682566004058701219633540130773260154367215654335910465994347017760790337981111857150249070081275557088443370010962258710331216526575422712627812635165323376754411591969168905010477670833445351566988799564969157276300297634393710676513070976565071820344687493171125275492934584598521526327755819633412462802590179231850882451314908550508679896408895569576508344812259389743099226251435847631226134849900375346655526510583362525155029340391250837453891096227531390200714575790032158559991393981672956748826240621429408421194671806298321231217887474442767160618595597054513145729849532122124439395046017750889099697149413621868632045811961850285110300979036329900048050723938668499882509175229961268457850640982612962548474420678796095010639190587503585760027556701099226459613271940162632087118841092134624320729845221931635311189702152830976127326837716711649297685956610097106104671507644508649638649537776779719229550942554603719641707238966149905665514449992038168042626258422969396511317494485336270588410930632918716461446605969791981920526739101230058466258091375605995694478363920308342873995088976331732044631140613944246989762524005539807845101440166729874968799077509675700239119896452618883022779621241140975695986427357370546484372366525590764384177571213067654239591381663982172059583746581134059956795205864141177911988770673003954061260522780446599480004840262042073710334866573857173805677911265755447513836620836910333073383633327661929792939443660940189695613929997766558850636023518544039942741021967035874719690494929635705020747670508874943853868818021391110421091834413512148676409044784044334202460203759787888175579520018526943943422003063601910915375926366771577549741845827670484298223434253006249008134277200539854115497945666516106616918569788360252162034850522598156678771921533508553159781020710799047297883588796089589396334382892746284590551304806810180300556314769057206188283395537946169529085919968764128626157706846425069525652122115429007757524241597601506280536810869212243213684056124860760434168625837918283248471324848074646122649462076171433240914463240020037145273838492771523810051014287479776052295672601903842500489052380043904925930481671729576481391609565977159627251629538088305439045675987183577341853335428598630521842208107789571838774765346666014176119823180484468335056453119827365677057067792237240656421873707962158547192889522553563211196190283775384524763105635032350161251799358054093910519021052506772073004360828164835334607371623087467322928831727295638301570565012805847171885036877262449185676091526880777857040427989292264929044975854577185842254691829760559948675485421200591612614168683252331539516451801473383779241387051500541421091168914170919325028974604233436471160944171012378756281679873669335979624831261611126988657817445732004783822262167323087260341166176979461072567982989679738791640886771383320063713690192904060980743327522452273982191253388677815317595967087230122075402133552014340958332930968537194617270901804448891561864963605797178389753609397963259835795298211372478573866642946839094445197939667958836842804666616609521355018580862063911523517085248408526500078243093724607748972745217062322320530570160308426447355542532664142813284925382766458860129607548556900964829417497134181963849092390000311764514038982745076651930701289661098392147327594580889320779752984752264242793984075494061427177404248835087410956814580931564387011380874505474545704575811959598474939625197839578020190708281732895835089457732172971486117125423288704320384676082776765987477087393945388802358169447922268656885382016181615702514708847013986222085617675872206017471993178757518506657505461428534386636992259747964971382227364557651670784169403948346145599337885909109045931349962210304716156330173204931488717687287292249198304057078042225775193498912648899365253533836440645057074669615219656970206616884400561655663091138544895156388477052888260795635149456503045484488469379309341213626727779133375900141485689094183584223086309030590013522602765134044731249920580394014587669331022626847850723643802272458348669458270722839950885527234554270873179064739327357345088436652104946426671719031841674763873007025960562980163574935205863718886566596868283820898291019010997880996551835793179142201650945726192029752318748857815035446604248565693906028926519117042556938367794423351391409234890218025564467117250902084960512100693583225780516855458829849264726683207904838218723459009033600433532632834211783338365945898540687609226741979988759009379226992771720149152536501592963080834056834611049495925964267799427295932376796329245799776809064977568379251321066456243629562163802363710332675116982522345223882830258631319103964530038777160605227639143689787114002929671475801560583592741755206585033313189042419217478800770574315807505920063695745590044479474506258938851366688873672290095708490436497013734210874915716466969718876797328929657132780120519341624245373665986632039715185030506046297607693042549261191332232746118736743064715586570240446608130706403537793449987428191426059613044821870029319440168280391610539202556360410007880467623567427332565054562474058799242927082844016747713982392530709976635612023371792761611478838120277260687986258988140118803958724911011029561498091908017953852644450252822376039584599433680039021471991709391204769384298738699741708196105489250346232768876780397270571363096604720392499553185094795134533636078266001477519190497968378158377142063138754281132254815050800771999794205311485693803548534460234037185623117773684811274399858897072562259308079529273338330183009640366797204732587068885012228841358533800919847750209670086326707670693470689325463106595646962938060084868536110950755277791813877198936167076482833002078306543333150309737816327507479232517495737702205447801109420767730815314112926245803503081707352698311345526131684848194032098496187044620815810144350718061396817580090632577135790403297360541304674378871536007092381871759180373861381873168993982783607120357892670430392242208060191754002889268650277692317904790010362437446879455087115573460871616481163504693530900974546290248482694627236143330366640197843169509182264394900495969359854010158209846585112827997449733334449924074606800133136177274540533434578090655055784014931118678321347655634413979038155134244933134380526988115141817504154427513173375313231148528759681222116942204865508546001526849264158827174811660632772397642220414200305080176131777497882983840737534282818372536092865331747236286877031769822558288788496135884863029218689415470584793149767365711979794207236552502795644621051396363213082668153400716052296313549910959732664803221391389620569698554954437763084224187937861819477485539563705642600172553419254324203467396435859913149360649955870471738617924615198317461781440215123630913295185320586994016628817543454540301276230080325391933350318573864472036991286852262187265747558943557374665395529570208667679788218571048525267951907380264044416545907344750589752554592037184193498770070260196040159892405533726401404702910998502407323023444038626259609527569457197766264210625367110533683284052829279596259955709634231660243419452291934393732822486775323976186823429365207240495006156831126255712111581353864794010920235188170819218482126118293749103909965607190780525008408346321800757755590663551769469842694062462445185995488981143480933890080835759770937832191431170019727714100598414516263552777270450197999078340245843417704513301462760448495990776168169576284824718380211030415452085966449379915139814602963421861258117363805714593743937793395668474809084153028276119444740734358934340783913775318426257014330092139146306093606498731686885028412673545952447226762115819545522429404841596986471911699795751725027178255325391526071153792849299531073952469677994850491726610105301206756087176237213494711958304467327272135014125137173895352898615793028177154404309002947119164175841591529151238560615575420438539173848128513231290774946882871567004363011753981083246365463460049950777768530735688037051970566679039134822579408446840426500828488703655312541606879248504350811615586055203757202470762889714802550414816401532101483932769823118174501775297073218419700236320254336519236803163712555119185031671985025843942529119866783350686121498853679746809534345552628643970506542835520537216487609326791557495422537508203903342366629166592032912808606483958842656523651124886857109965875274983185318701133381454488282618501596466083877341541596670869690241616296051605907969302457752606070498018188554464600013982467965883896849896225117591333618044654598449513526247443264621737469390142292090339253062319372724796656510239713408697640567624813004394148210646137814460721501816418195062964393349752151792181394818287658745823426602196876759962810285412144153014265338055177753669257966823346867347243544742319257016974327273869162148992923332202841475938946845915088734965030476237935565274374828296111574393301448965784127118138394561096403938574845025575625045846555802596395975827093882651445366145307129799208245099877857076219787741036277519060056327119894056248637228105661341270091854804835250015121261199095799661934512968435237238607434666987676555368992711360390663373711429384192811154329156973752642165268688839102556878172911168571443851526474528907347637917027386879735922010939798024007355611869116960507801659075788964957679083900639662370912073594711435525431862005383169482661370605144749804214858923597966015900955938094862908099210211463211089257356907821119382124478166068368898756983218459356421023313196348667601987454923332365971311731239068656947443855423780044563804613585477093600896530046185240599330817301341814158519006519887987408450189171769164580894977384006266574840492293596796655612540722230548550172206491283465237599430777840232033584820880545627481378398220629756016306490353385040266820996188679495518895923563215615721673280844637261706304747671648847554225732105032247922482786382616677995971030522462522271384719357696312611335299745053638692064651632253682180209350148242969719498158143996435752984954859103651711110802736566436237794366167067085834075204904798943523235472000072551024545760987490750339507395247212899399131607583244814186839473261139731839362889366367211887656017232197549868846882682388634332016503348660036761158196789700305477039046653724176354819251433599771453155468327803990260961326704193854441087578576847459376762348253859578979477295038941924036827313279940736890517994778192379667470817027620762844472779591378672467610022949761775683460521898080723968213125057646474841334929265201263348846301070592420562275783651533337162286751891970258072736032400319309311053816912867534177714880745670567346981506341667585229127237874234742056869532311381232165461538698480324097033919433384602512157434165809924675920648901027059214808998972482200179316355883115018063671509184015489111792128627467366630684022745805993027300420002229112419481807233555396561968240285726559825243883043508816171019366934609617682899207703173878179392437349113523204249333943846708712131342894030240507852285876318992834997745390203400377703571684678640568800049771283447298977699235135421879620050578856769507279451877469488492569301705768705280600667942899210005971681622781639295304650211969156851311132586754761447695843739216008337148614207282166950930912407789346265700608573522064515113614773906249360130994369288479560717577450470606145212170812819935778486292717350361949621593303122846473597087062698091125104621310231431582506509170948090821649674895281947482982860639703377707725114384491714838401143195447585155899525384006319119435161823227680771076051270754290985201383805863152144286003029859300544125178677227432668322369483937463442858607118155403585829625468417076780124079629376569100947894772049313307845005777416152021779748925743582222093847586906339888192366259098101546731226620970182566386849016426815625178208267494918105607603840912707598630704043563391450654239975664621235073334422736011102589018412721880685162998146930544263538617020940875076666020848845878929994955577126955308007770358605876908569302762052095089153977298716145714850411208032608572019319045773131274004539412439140877167258701451652214651811585483165200333269522731951162341446342675795481351593724398862462807249409327855196839090601978062332169216085878229968896101395064586560298567748841790675381697368346052613389874720850341362833114213702874417625775548827379526223068167396857449336451310812788226029962509424891137021588727768790626909532513670435829046610994820666164744458364795961801156363643932735687257269381606137797313446753390697348130371680061474287655716269218903811238234980526451439086129148944447965398747828309331772579086160355396502520655635444388491720770147530291268387338367115813206854126942143631034996564683424147628159479757751284145024262931314321936801894308010306348969051894931780663715223861192586442741409274279632428411504741951964866112883794274489699773128476569647568142035093362397531187366438984673760296521416063028686500216427758523212210262447323157918237640618428153961668721542567594620720080690744823082449927229200764095701267279461632289315085277424451749981032493868199544567147134284099131991691955681227452824048865546349486280672847749571837292083723417345033990735031845008160714242831030111158792684709731260029852787338876573608605971793024284547435060385212084018081800683653455883125281902629007448492631372603189536645441825553524863414610581399932164349755119022734392844230305978705219649392225666569772181384252902803777929663554720561071585391399841675439068545954923475017972870118627942792686538837724920469537185510610675275292882103468490175378706135307119970157156139640252448318420723600788678119674594097129420648540369912134155759354128862844305888184002982630722697899117031612291611773739291922360838208349306483888037921733306436705684014328387954211652482584047027285595723203401560516359548033197245321039255374763300391897837788432888009444599903225513081220835288382792975590021397121617727606710061847378422332789621547550601079716307551965410306077058689744430823868428673471268586046806752066528852416448645863755968613071850960281773576519982637103962012951980699686593834866091817340455765095676653295840658373452266553661257265491363559442139844629007354076134547505541068512431403174272763362667714828151819846638584654545267242470920618074115348893106988152201829938957206473514152389612614540870825712572316156263611877105469633562105137199656855823038241266488093049183801160108329540845051853550214678624602178433568547209141715147544071636501770317684759291399029017404121713645711316879361754489234181084624400911111055803038600535573387291252856804687047441544294290509190565506188731014014725147885531956699871791261787356043398410651652879705210527263330969814551966367642137720248241833170336200617689780081730125632089367088228847363713514409856199568539488164912395919456826762647733039669156706674998534027112223353251504517999147372790135954938392935855197584375465913242411884091512330336397004170434044586017337146508113020655526098267204413605277245107396287967396107742334179814996681450016338467100469596494875807196317931537918749913208728520974904792937952319926636246770087268228218010387632520653634919122647718638669231864371098606591859018112040983569123493545421965842945373197997126454613210656784252194322506085169411206344450803874553799619639826823429517713270557277264747956812958724304822011771886204456612297376556998368939453614106234001599147860136188610683259666207801221774168175297662907079033462672037682766274633793945991110000781945160005287743881770166459579046352296682870747537171878756697087933834009888163099005508819671647630483506833144702963238783656320423692994567417903775815230160661750743078707412483711436316460588696327159021101611054008166085151504390971514858903681498381789418764183394769968303861555026184350908753533707984789086919968987877842421023556059391128120903897749939142487384623164318219801130101806821452452499139988550510689500737005320630200503717972790366840031538903846582863630560082130615199981378667314257712751731193462583193939711420619586598116068632695029901538456521825453872541046432363595265418839157331104457967950351883208051459284315301143253796725806165042057451923328425058887149184353821124848773493880063298780025077670982430468521399383445149232341628310565791016004792642225623921557662838748740078477360601653390236848842678171201582664411203588287400022288312163124103702682236130595054131022126402046996768500167793268015609418654063572406907179924914469974240627264434553414475001185146522399576376407105902613903299335495516436516230302852007346586969783715591273725293691853557667444304882708747656425449655906023844219611526172363805100371469196111129623306259940038076126117562973166567834529747455471897645229965697490335602566977559407715531330477420011446535621227199251642101148677605318998149887709597140197851218490085256157298612564937944462547096683312049869155873304814090548465407884100107576448620893578441227914993095147506344292568779696241349916063929875136305997870412075552974211694688475952196064947293239843894552532417321675199356075507193787710481709218118716299353715223778927078376365169437987566354985004301555237427044050116023647676800338932422029896319229638139225308818354533262856469652608912964766444881076072707874930636393569338416910336486496061441886769269273906201315132456028457604862193008101794002640729223865132731490538604871281853542548880248218350807191440643056736176139129767590847274496767259480701817651385689077832517434603510661781854168696875367052254862791923998607471397654721081365578656022359585050693721821407290466990018974388092096389770356768644923624333612724899116627919474050690233305633585843905673855772528206256822536364415535648243704900512687279037739885416122374646782669628852239379882951197000672028837931436071974186933508017419220785426234755381794898274125954793999930145790652721580669821362217331411099283384490318107390605778084013121332292064024033083635447219871536276807233414562894113160509935768390403854380296180513550736449332129055792530000283995384699243413405522359606515385255041494235884433725021092147570997972495248538016217172409826676002669157534105057238965386404589862021672388265579925301149194699389598544627909294604592951903853160338350266976790269695465223319164166974936481506117835208953053130151000730404177495778553607490247329577475420986988460880093584078060437668958575154369498821337672136624645676882790407888118135663360092335891963126560694793829006436162519465960761691237911454571609153975575680615838126237201635141032743166588966183260881098147861864538062858034098085680229700182633626217002798772961991599321387590218149157375883053952992523664458595015252234397230627749540811008781392123142451821069703874928623257952458109289998410385761849283042766556389782482113559278519846933252488378200218124376179189004738219164166389331920631239719537019522995797766054339582048892866277728490418539517103669699160052633664577856538148782288495694842492174368253541413179146933925928288164648879062528168372514804837323826955569519962049733832752723348143220202727523183284500768225650201696672175068769964845513000754931233495091905579666345790315182530708674668488365458358824462127506919255249961640220685318410460518130606446942341042094356658881233971326936460821048637958932658232077749831534188274434057726491212050331878457004770434576685957980507466688198515789254447114039958342301143844086496510249619396837469106593950162963623690815536717370087611454743128016006430205634691425412579080999024504847412429140618134010662835926655518140616859921063760303318315044569718123064778552220506335491755242564219322229215874509345338882796117375687509917070321046302429522479553880460170049747769417902828414741281143533824547505963922298415295638111064779083341796797016789231733483561026973980470506758181813531447073109979761757439847639057430477963528502352227765573363371155333222453302717047955032922653349149045882356078210789384884300716627285799828224114157977384778713209743162220677763783252184589788306540578037352159817171281862775495220875962882030878295177315438518591767112026933441127930574675620120468652807337294719088889471776542040581835523857942784536074626136618080934069857431545486204334237587202730848812587322733314011827270937669286286045461585325299335369133727828848177613225605955646315040445215253313579402074978621598771379463438151338724476436440026104872570600472579107297976037939918489067850405079628153310948612740064235489338202301339187711173221833411794345629404088383333643060778308553843527255267030589334217884820674502281311117401883393643859750628407853501377551689272829029584677798168379744425573785594753899178149221935374264749899073496972426713924147890645497219297648177595696058939357808002737221328154828239348528028903231301001147211508138009530292840823353066541494990453491078932927614596900145513633538077187097848857324691479942054919193636671578670875000248630652083665043632170313325835074137660921119589548504912913701339721533981282449302175733476561143401618451026366936011853124868417204545338538609620395882791044063447524648354596561956615030687510810908091783525423511989511879252267864537564686966274046189841153202224424899098020173798889827727719657267655075354554730980631993148548139364339146831501654441853634625488628754472257960035974892631793873890044839392576932467258838118303935912837218199491477499590451478190056795408880927041128974921175113890380021418191581938965185428295365690201535973094980183416882171865017879770216603838794288074619028680639162041818788083365609763711654659354795832630664391258147127238859298968007032718710713877474559569126634155377251776794300066106714600391317563174888451520207347209298951115916876089714448974391011658791206297077734686598469328296541823001471281503407521886323856451551245070334949107330559934335107400972724743568864145458573882268518286155917479044446568633877640538087456277920728355625368835816115001886611728951460068729776404963730178725436789360471090982548425610442460021547742152783563289728382531032576993052422700510385848991162558386997790485657090192308409138001192252641181506255339651607767601251087759160571258952686210742295207282986830000408116058364478225639554228096208564096290812261841469585238377550207710525827055771041067508372692953865175306740219017350452756552865039878139360832936530603731869498749563959854296750501350607434111689669680316419082233936280584689074150932418708358275461657259708539031155367227921464768514432056688440311861268211822254293467500436161642708878042813040107350079602853406761928948516737968771287516551237224525850993110934598897827380385501205543778124603578262763072551923660676140815010633431041023724106826211230655154195164393543525239878857581085431863432960957940194722985488379911452724484120353968576374321062023326110093401085033119123619294164374734139475108652688966924304436165973238454173117471206979755195860773125211342713715206881796205669631028084728384292445308576177614108987823847852765318638566348518828498848829022927782446893904976355298244549848812475812008863805476951275330293730028690816360669290154198512486338263093256921575973114983611920993332594796424917534010714051103959888858767225450507147657089120805334498270270729078519107253536442983487492893040083814837486071072705106733922333983457307163254182734860268676959759753141457578831653544861527539244243343960650600529441813611771043532349576609727076798084157402105594769391437491607939850321374760437003628127617930113517528356532376981723693653182322648064147974366844289849429344156415244896591192563979205170551211042289284326265652936039012828795346761846118074800513651600226163379924053138160993628689573926960089686566087208901161836134931443425782418954815438914799175435593634640038888260200617149678500694478868806650640941306696337853942020602895933508189914475328068408111399507017654890463967110949527897502949839253218831179731100683839161261620030367387560686674154721426431717608097834334710967960024752010447660060703217435392933845793108980553948145015958345907338697628225340230379961078769569517285576258615496743604764445771634451194114657771341743069332277952470573007323639332261533535675199448959176537974181095637162875179009334014958269002985534050987042571257016733838710867594246856696177458249452457342165964795240688347627027149940202808343009267744494068664310865486557057240044436442189120271574081671892448938033760423019599243568795549570640777550326214200547006608769040845522449550944357817263031275097662923245111987122410442652563957072298274499268034251522787901308924491299519388660555401176853726670877291026207656463937360823662201454930565188121849912422771982287855654221893418872885285909298245434675003481614709632212566965839222739933705540324403067591458558891150547423313454824423918018480118347936879719132041911019742008352744600346045857298681460895789073870519497063533470827257856976952007473159614260515615728229680821934723188754265501952332356561037703661523603573388877619086641304545678356646277958211840046128187058479167052876018087962934342123476307851212683084640504598367271247418217252615859462361553170465805818357585178749172903143495907837053867264134903539665051584723962253046805838702035759527945342397217464118331283899580658412604995202297032781734414547092912253983976496275868077866856783609460570151656583210337390131055933522623689140845554726148139306093464049653044027820451822388686940716634730395709609075405232242417684816577385887442491642270831280156784974193546801640446619488664805367857574828586274738099781546578868827434990231382633228734106519649035045996936272051398763651175350421498348115809808199742843909916824341392531192331087210820874556277701326880998993326324410507079089528757139954856565855826013203033021961407026819297861496762230333447975183224600517339012696282868285280806211770670723904249158861760078415252678805695401936259125126431480240001376298351595020192922697841587544212043378209997991945086213683219817792649342498975330062771739523868917202093401967250007307902479174942349662519403491325984743077252072007238509325021751249465279861480464109091751992010268579541434539532268345868251369150129676709919515320479104486450314601982648719469392986203808974057064091624787101919101560957977371024490245787760412366374957999151943092152833101452191344341753227787289366178816147072176928604382035749034885716019352053346550179564328301912150422095039317547390619972964676061351095383752558009337750739632196781187322050170258607740007427237304502829452234992831799629158750588026692258686545639046007184953244344703065224508459657661538338617109538383734236164196639046139462722423440789124206231735497132944364531188849501283826236921252049254261200557450074699027226553477170025363385482860837591201172941434211984961660845698037362621023883792904768574382330172723215570167987975702901971315482001815718030092513366606935034814056612050315441043903199722994313328582834934286590363016902017835978611914533438242361870341275921558430752939381359826693585056125709881731416362343302534992517662506695567345557583867645456827409277627851526486970118531241123804087199234184169217981563597122407423363463457562499125602736349111349345977763390583429554762873609905019592553481312868709798859964868506753361435815697095381236769868517884105498550241175551019582104532517114345039588715828614025006444591320559566389961214704482669479064341061278277463882131016825082125468075959429581108124351122266887560372493797045656695006238810214080366205501948534664975211556340680801573144454810601412071366469145597154253389890630118478815605543653579789156149764339667781523740973852952471629632842085709251217989816264289112999067973647587003388547294317739489929220795065528570271596199320086155845128703075876454845944193608524730757899287012168543083711381162585026285229060196389470405209053899791495817855289388093341776911307820397263552444183396819668297003481916816129584923478100738682557658760282171732423141660067587745037336114855647363061178911479910404148566306382503755636742242136146234092787808944514147412585166763292741744892199900634029903036561373869752816865688487093302349400249098548390005937332441496041056723108633192018482083389436237687660674134086158718865622252575804378804544609699260636419252930870354661211197473514202488670456756605205271915461287877713059219385902300532261064435742012060488600568871861284536157963568797853253282029984264148078201805109111049797461935548226428005730715581096724834784572915942534986787429605774709467117315959779210981265020514132345897301821017562103309951326725467102541387467487337441345588906909132423297787359287553684439275569048736772477243233361440431326413481091300757559811561414162452922476943373377792588036676569881219856940258855853078787710146625705154917358092529922398245722677573954773819086388250756126673711092431493274563857492224852567696839000496234488743205130613477612945158646971811963779653106079806950473829411498687203683314840665215589902167807677514721745104669992166866297254093494031432219821483492199925692360850204337273404905846189974575225799554520448816996858506911858048692677922420786950352470332064396431189184228877332607434250131799717036797123275822400779044984747724419603641389191963378431596594514605106105414829743419922842185116187854207764126388101206089023197751374255339609481236316005777429161363958689409257643701135809785266820658097683211491051843816050199386964957671673590974965194173036145387354190138418876328206647887871990808746473091873703865176636390590474134894550871707739701225024632796835614154674141971145604309357535025455319065747058636446916258131141000969574096366798976830789647101228015127348687092176972745915897826387679236996713468072568186188085415131047041291120060862150116836340370679164321611266882467032394461198325696120735293608755989684524151256990007818483519441584223970200005092993512380770096948249122002092531986543135276456275231241894714659824370706258418768194563609121813517998871660112074956318199276339904385337368643427498640378157890572833975604716022641787873262704127211058705026947146393007558039894934354896916228234799004340212556286002063038690958974294170167050134516438473407819910850783861405940596658926166446665903144010001115074741282799741024918319026553213385105757770717385074952999284347854930357953491591759666239047974315213815523895584525987460112706333693092160493740165691789175521692359600849610475957528346965999642131740407159824517647810012976821032636897918209757768474502905742771375704093292453172215698831153711987613094442727460015778946555484816075062621036102096611582954161664935890380175542560313493471541482836441930387707441836610564819396479114404420029001947833789799225851233263189408851596502324029154259837753689101096980081290977892918773756319689735944025128286433062663053820286005630779518240162440156554945634484731953284999746472130544435820888043129347349827126149598704921634514147668315102557155646930702018927055745271837051669825362203373597071229959755301872718168948861972207715793256892989103335882218060181458733334636530973157589979779577063181635905858887719594152561974002911564711006076878053053161562267204313542602858470130224255700712877840028602163507292272010944575333387642903945481108450988089098936814972259955239417539965885032748689826440607025361471801414182960735515042516218834185226564646634993795332863609887404224331040940304010364221826712708659999128437380626809823171112389045532771813683781152800011008774412639377490815531847401038994667732458069845413286591587207132869768895096198747496968190126078954315905894171157514334459269310731600275174556005431113043863218783980550785843029178380909109484859664706270338781029344608286721724822983043002315787647059690094741194515581908643473474645027712061678522284261012867939497116959765767599682038236774984391391163204569845679178249769971886591385977634187792741049386191800191951144098617935881138224914159097036143265944710741818183379898046988746071329442553293797135154626222701920770137980870484982624435902277390672302272539590569959638041475208615001086071495765091927385825290172452606546311712776423878785356191578225703800479458236818976273929447341835721600646851552358226107933626767654402830420033083744123854826867936595896758037953374050610338961086941956672285625968870623716974939537813064312053770181289583168115609579372851756308757998752350609508772855920240925741646703396398479758758423023280565670202679063159669413663628107207126388010265045015415991678005146262054952418987258551516326924065190860187972886809686830089342922017606178456456229816038932061984895544686103573535309458695466814687000088856085482780093526258307185276781078574124158987699546539566238005364132380168241722522371231629168706160850666484961627178822762582405478678532404033003014420755691498203658552250428236791260792749491729983861142861935270351366910331739559192080787667959522577005167548374965985535736196047344292652373674383698379406029817261134981751154219476062907664939042595741797842071885451043682458840713043558508398174188694797413698198458342874550621462698718046049345498681892477982959659263144807505985031687301012399439556262760896030734219581726805922737236612528953993049419737768133180150529811332678467789031872898917386439551916298142073856262047009712332650730806446764662600544206937047248934051358942433042056741876965570672255253021684323616320173861768939090718789494918075600261261787591345227209981260639277148898618706697014759989523625482086103628070867174853319540519469962697941969624621359010495297714594073789579304649911038529908884558629836456482607890067773775805695998422578173275972217905615992206626100212391515374108552961436775958157132843634578840308958511678464684622943706857182369160212640243794069575675616898041456091545181296597204615565566315935710972889110508715839597516946417266216148492589031138683470780625434995733766487209348553389248043297327454042755042911727182657810839789922439827864552559354714894916497318329928397126285773499698815085781143812686740521484808605180881198249807011027566626781575133760674884677368270122906271806990708810967083385272855055395099516190064905791545092635668515268733931014325417495696566861504863624296658410610089844599273839645634283076007323913725130189447849652057888267266857826740506172425874582570916205807312273820068330830195081427624114222959480707747206425801932306360527762776748905745835901495006812692867745498865102706829406206616497086609256701169362800836356214790394327930260048301507382812336759535659076684885112315591550299021139277236591225769594002062938028188284316790360898444920264483223953892403613964310576205389518194030698813994306572215315096149448001930342945658481443671409433922979733032825830940709166825798285345091465175293131064511004477472258535623538673124658879490433930483963406771227645891704596734982583801585871694421282447435307222362897639126313513410892747521681586499633877367996695828036123731486722778129780755267835101018317410492548164355355790083728167995211041561626891284015184368781523224250927421976960789149352621118406552080914327273914065831706607074353302970985996216228948370536752050337081893927607425125266211299148194118812777911383379458213851028399896892197935589609057325611328530976585213356499129312067018142014554078317965263944635672276508831903730401168947494026234139398404150916903134482107528406555376316278711769672368776316302620579610147070106595679251125013285930406826261914627390091202606799856929358200790664701822413899686292962915903667976142933792027452170551104257410286941694289281590730546002743229780062121803385760739024818148061986723939051815860887952801799343795965438560399639094798019867309665979592020569073201361182735818005249594151973461244063739946672737374497330577019781266711368166398523451197041399464418355355909879271289368726289160741963188161746986573679211190306933964688535211158465126758699369948293547119891114299393534147221373492258490727883684187114136037191440385233082550501814282153372184697510215819671814291948891496999054768545077117158244191380541604550877086304679918455252904381549589696933034390058751144190625009911883893800071739603619489642032269762523467852783116550237321153930616265090661906249957556171237795509131061083255700116843226971757238378609966747416884928622695344837872220542694132442231506543991559767126913481327511808093391093180538951433675399631731377742002222523929837371970961652374912344338367796617203506880059759330235311623085706323734515361855895686852000783987801819906517103610730519112283029563482186766361435880053206850070207871743115036270885309583151709801069093570056584848449452559224654254506743066232615453611964428391054227444136556371236777886911251252998130304384820868378358618601062042329965074610365208758061582085420176102446958096055086156271553611109551416622761760501307031261607835980228615088550900127558486221079028378043880930119726975045235122878661146530201541871803320986401034340623386042907949972788272565212983047484264552330969599099451325340070009571878354383827840732562745014407504079406930478242910660525905709782627542926245098113276871274028784100690880107960479927384527021861706279624918324510083792437013908314920316830886477201752973717182756769296884263499429567321233176072405947112234298106150033018708380160282926968077268658804732431299563914480580684555343230158280350060114349471169253593655613986813079780149421842126538126834860801667944890754412842316136357142200351763518100713484054100367916704864659026026480266363141402257202706704918622844920072994051563013244399869052518562156681185761769000275757442423754718379261353548021709479864489366202485905249401701485780738084801545593900771134797087488746162772034976625474406827197537975575034041735662565010530064587614884037427011571955465798565120962555055160433721706136713106469576115354686733367956695119690391501971667945713720154565087678714298885292017367039527910199785202385289819752859055135236135648197429144274593357275228690361401529890983313267617861584740625756003926983030134562941364900572424815840011461449968075337992211915973204758208937227350298921583919401075452116442587241854490663776310789328947237297895514202501779554364987400252754727534879006474049327782867668358882485147806696602100554283413297261404159921090881119177235080570920587073465806782396687936240213683792206211362249931011854375939014044326624238433829199693137405936787685493109805892310553976850394446398957213717386504118348392438727685076804036011833739053792376009551787706926340945813155898387067403041214999742370911167932998252257149243130471535640957963547984428009498682087732746651092077065211536632975492709042022952910776315010250807258618521479302838329290189575399597362874555963505857599711646596329239896551756919409692089131273670104843231933360712425760057803952745055545448362998668923951039773247891457934106111854410998079243810030511226750863322494245079963925444251421614719757829842174685443218955034657771023275578557666452905209938006479474218743329098130221611800316002173237892553174237949208214550380668886614658212585300573635303579147907077143773720917747102487314145095728030684142801267091682220159514662588542523431476728855698068830846662505362473218364923752055959773677846045287290086824460025657664037275465990852615718959741795243543982050082532228557448404029880568259874043399936357372494464751200790739358160461880502392544775713030485528128502016230341671310229032865016366861181152009967026067589012801277669770421294770569097201609881678578293449310050641739641552322865769999673647173184375297865416432997583767122272964716103748558321898778540295295853305265435301834704910232705081928365333866877139600687032834803485531914807268265007827192339356698895946417871519247175427974943256070573294842793808837286734722721541175500772143577638833457353201536683579833073299647928028211072337965018654073010228388147937137174739864283461056724127623218382370209184955349509261310208648917147652406619429087899082735563333278957777021123210071217339057532190366873559191158969200763474874205047264111663813784731285068987983668619648916617568020629960179370077921081493431695592329478171278670569629501483515788560881741279765400582807588000469176500497159694930702813347601765046592217833704784285634271490679147166101513206690464571380891069944484995898091571432170209275677724559441961498690086029112254572931845505391784425931883093828831269957001541949243859002026705934653461250293773568175957857036359852021029281551537239392564446595834521250247256169604887034050825329509965017880964107806447282381105546267932892298497823392009543552661435804577643473634711730736998483755539287398070079076879685889406941681673748132006679347648800306712694534301037094952322309607019569343633215115528502626117199700006199697458979483514635186471806183757101002962582140392201484212690649133400183240658518574758910253968440840578139437101219470028699902743231303107870017195555204757257914117383738652396889609679625192662847894221372073500314167902507648301754547960959921183728799998731474424651168596819360556322163639870684965724871637684247705352438008707805244582233058208642211661611037193727859215179350633167406753845597896390641427840296194675370262660852767986228890917172108257168726402619031651354978569513213877925304963454204238346238737465991097677386492869659551351843858430784033573784961148184976975098622399187763187387842492235811815549471727732903812103897829980406893174632826726886886349384254485959599439172670558036543284430113134413768250381128528145301589084061436902131533688950496225516582590264699285156329121171961509615375786692100029222788343885022394590563432821427977616644327696135589491786090155512083422287189849629051658353687153676083355872388940038298395267952976941972823992286576043939009543223048789978681816354319986997364421094799552464775691374520680673456987953200531587746466112477847858252286654976053953103909709033197056626337672317609152256433606615662146268528653481572802561539982063805378818040525821992029733024517761143745376641614622113592077066003469764017931756061582841837823603941472577982353584137754772523340594014585283307849896416721018563464311188746991383256725046283637697373740124266183863426752508403097733644093319324656420791435882192412025468621315625290837615208401125650279313787291978740885238485168360509753713228933002930840360642129956028306473819367299668696141963422901592499392144554215523461226881148551139838464477828384278013500064360395494033791897388307444195703868073095469757474579192290202593178375777783795183175786218148166532798890601224797283718900392923497446445209765762747295436634951399553449352981483407142706231536449079783434937771431343036881329968205930537786584564557402775785204682990461173533365435550920204780023083046621062583263351240266640960636769725604856836467421112024901076458149448307275677082928141520708486370297635521225677094725144570626604870969524540576057137935702758934256071567773844654083910651112850913810989443206504831029124422986320988443452354643656115576146662121863723418971728163959647730462740886084975622547665070823343230573149927280149594486935529419010825733825790625808334686016961676391052656838166763417827285960502881729993708902729845222843721531086290333951648145745811609707216657281709071275557409273247549296911331170549848891981915929072174522068565340525790735911430101750922004244311970265238642002803494307023886569365225423679092332251541605499629739394108608828434106081994311774660211289631321005716926991060385795698835103723239265166529140503471951145572508418038059604933078755872420691250299092043112340115013799494234430399550469561562291691007336371262766358518432820546271203999008202657036597313428293887675659567947440487115043694206164348402457851038229943318465003535906454925560392890841233030984191137960985499359558009022466698694647697383686328726796466259210644340727868083716928467008704619057808544461412485011876740029847625276766319083582711778992114534462709502725942110866257312367870348174367585770455267958767198492637019917131456090805113424668547982824600932043725068805325293633033365032948799739548284680564416195602100932934547448489262832189363360829345662360733752552437966900019278312253304999352333198334163489426549639529496190430503756348935566836347475083397370024306100020414321914243193075627777180594249982638966505288800573424360556835439987321656344917084905004001964375155787711430432253771521165247066138008150161089189342254748343892203643467197680669575981300600300424368586031803786989114990113245508745776758557626988846304802188956449733771200738579721763473266429195829329071996201131685075372359620080226848444771106098192514214872951715938995877593757489919161558048375543569818673531903947397485829582389810433266314934104314490761748369769214229034621817306415421340912870692549668372272420283290742047522357633347688153925555031801745803945767964589295044117073095293820185147520621005434357045149476334127325207882592279004512301433146161848053555194702153470909637627061297576058948676102137154171796149102181749589023148577970142227509890637611666413794001927776038655077848165479843090694157271955620945663518159959679955576132911304296591472526460166492004988914507138514072204098699306298363052849393541177948560511438417184904903932816856562624249421221588347777634001464512926332530866563229408722187295327202468963273602125080474111998477480977633784007227819379767303932392763377478817321386619583437952529417580881269951898050902617593139121897020541644121486720112870028605296552854541374763624099248937088243756560576000776332244645051199157752649534430948648051207520238051171902829240029079903352032493348671859556562798926946853421265633886885858139444755799161042644720524480420850562440579581023648969536361264979113905720288170689809704673967339480342344797272231292472409251325274549389060842281008065810369709407617704186743123883399423912120038826512066439708257227136233001715540169381969588556483823018080117808726742455482754767653618159521518063715950560551881831678507115202017388660412629842674137579868256647712878285842491315458835019729547870270639075634574123849433479855726920212222243910610887682346630007049893773465480833967730857008374188729446739955772298270496808771913407231727693290517822929139559464722100965456532296849733529896819918843233919753262638439721061296116152669759940920331559162076475400485697532706843356098764171468350146521984496947967103616194151056496519160677414846640928114476204392243006532154196374092918815746730740343945809592326118065028497107472585044236007581285196225665805862288850958375030679432143463346858078623810176008136764599211381531393418637534515273476125391955396996101651464777926568300041233555613764181736209729470488306808232865456011834877770357606710804727406852868757526630406578884486242015864429886938429822197555314304587916403323158191798726314417478260054800551101955750308711359363712286439213552395276758925214155060061054116292399652219079944283399789677646067811253275256129276833721566105313575457964947470365098497946767192913725804920573682191630175485454002133596223296061447647557196498257474036056304408895419124961110628134002617556302730308605087460262082381068200031496864499613926514559741553987927948667426779823063316974968839794425561395232558319052332186172370385075433618677273253177731725166459271684613978356722839180633697751740613527420490841335593320830124988656224952878317695908288462439657892161873996982183924049061714368958150317148661253299931612427695117463278516095852070963274027002214398005568704858681423139542291613997772499266037862330594456909906061676791981706336378989958338150612287039477556421839979384172467702603106092039727536720027252428776194752117882788915533220723180663541165884796756460604908384116226700583863816991246856524047323949855201980671828602806536508358761949666998452355772874912137629152947803927548510530527892895732589384452087054042243806271468637182001563260464616511830140650757706127580624926127795996282231120200170192515566301233690953070659071418808163040440838407602952892066942439849647169291096976115419583842249212891236857546650149167005396163805281669714578236833635347169744793227876413161546262322335031923092081801578841275453980087655550460005932776583469270784615731532988605337514440176869890906223662259824935047286060646166130431712330078821219853217089062372222261889664964165244432289511102547692894730103439840699840207446053786422112582156848331491188872161801937563853741913546554757577230051101278741617248849872979913522265294014141466331564721660288911720459711119094395427022141086317227440180961206582508565266904351410763359392721467766891603923123176450117562503109796095738568212228719086023737512487486292753273943977544842958558581056043162720198131910248414649574717488568270252121727242108698915176697907359141071190646826916167340325102294010244684939018823935238858650541692848346268397826427504238010641107414596629832775093404400420332810051894929438016431076432929862334769836640942035406155961818393518631232232243259150979629380042164144822357496453272213843826316448233076477098997205961037054218867156788005929846417255181229731698935134483841326120667302008839077768846975895075561537673301057474730927798623715341594448818251089842925088623386096213189590074217441484514867043559253794733036205104939064167403464945922214491117178325659728178473061452525647632400174588727239078949907013337148366997889538980206254074681696246088850168950225665759287947553650588525002380024659624260761312573994683836831007705608970210076654763199645481665853501097700398177822063117130094562726408103799872685202938826835361899213078027215351178364025583325381503087962318908523210751625875158898391785861077777346646923925056951047498504439606059850735756674098082182478798857356821095981059338089166125355447060974320750363943119739805605934878466281794811747531018833989234491187837900531330759338938733524721850555795163292068848685247780359228731588933448083714064379482311242585311416553253883028270150579220660374255026397292508273609038852413851485366970882275284517658041450655509433482510360671574373432184706753258945053139261259717967962653183209489831434133501233160568774941890526685053050096603502102552323448989635890231382337718439774483101003687991331179879110579286087692094737098216892293638356253019602486060313841010471857667237642930687125298115954484655780197138059273290919836016805596441715902552627022922102472662744818087179906822091655970214051803437177325875837192610510637066476597024834585013688270389786047365195288357319268603162951079467132791004052856689239643494698048262397062641184463538222712964572694101717110672752798139449224367387725545585051568689661216219762001132067831406876411242782682363771315436432315468224025472650567192263313690622918923560308027656486160457992870844397393009118761721624481130072136644604748017814245984600160624361766945060639806140579068800319333599116882629600151138781425752044503888841552167149492854233077126734772353523780170164485428468478063474458382732066725141043804305771742200741348850082029653691891284761267144179433938344898312880732841347038768897757544546842565064918619898540604830805722611421772426417695374425672000318311517943402355356757835335372003481340741118539830220278309160760420513801539056570539551554743155124741671498519399051939162859298863350325674019237493477964762659480253566101048671133581911874527941599916145788985451650431008350140073109338371352174023156100532167537598617611446281712185832889002030458730036693502761328547208225423994209685081785791424567265594075398758795677712979618540183905805116241549937030267302766416770100838078616444522793782230989789306049214313013215926192666869242863333953676058796032777555123439755410061859636695146622757474517008709770033489982541322022550677097230902747706095289212676627705065285226143657406785767756092165198384849943836053085713174443128379657141516775776317203629440356425005832249438103681458878948940152855858748643034327693560031792925082952859517543076513905655119922991858692156639188617247750500092842921098653022392991921150057117043195214107865674192171608180212558374926275748102613930204863238208173644836758047477023548654350429595947332000574431527377037190021630272888405571590637442176741771796040293003617248292583750890669289707096119527555568206604749322490752781860680125515363563092119739719888515274968032534848011568888679888419319285891963226921340795926536200438779551982490428591700194233342572613595834164762147071743931158658226473845107802838316366384221362293561798162040053608234655018701659291090431789264931094999570547980696401518262959909470411801423312382869368962733401651840976846958595093612405365480407532376663974960371252450487006327312662735913956382651693523382743104947414648557029625259651852828381714677784390406322215466642028128495285441200234765938796380488974921157027652777148747845176579204075782831356004902362393613873669902828805667498712458364382482912155702191855531029639636604143655742522257888176166998949201282167139405262370527577967675273791812022083879372732009512198098923003049925389885522491552099856193342063942470044262427548366382736540103666249942338337797710101633138022540789093013398935574017602152670403955640457681266245790892134098900059977105803424273355204174754671378024041774864192500671288070413081786586512093377517875844383019078147556209873422970819610941951345282505873841042849099416269820502793284156456586482265629356468026315546094500007470983387117586803654104268009595068346108151094458652609826659268132454344562095044156409346144617223243530765895514903073166260885459076900914670709582873946783965694425158602848301954429798134198831973441195820107830920939773533615872437815395013352445985381590541915451492993086718674577149978170074860636178686296198561808659335892825442267752607638328378466082328090933118752994866774787662339313111595037028226408861968707835120934672819418856084017810294256332394206442202309639191755904758295929372469289482703554113354232340746846522703324555419891292827040750929830199398589652207056362425674335761932904692473523349541178451248094309505118621787665738853362336527794008582797414322687618413939667622287091580031315660010653906310324244596736154598677370250670003504251674066160390767601974068691799540402255528094512768302360086667210036542217493859038122686928815475708648524527759921219269584069980048620728346862116061603904003497717956118023365453328138677819899426615768440642038321517288102138882260487682190561358596121608613571407103458269922519557006262739344387193973237710821936998656823669005414035395501205874008486411612408074755929570533697305952513850261914070996763802080339314921794327853632418645834537695147081505967445805224013314057947411252507294566442927252344069009175145635923751226396048372329856866758662402592247000218536609370037183778153517178289999013890646211661915437066249146053112720391985064025484295845580526999998007758424288247300329157509291628700939504004956440869484941481558847361983378730460917772292181217690843054691668797439393188312192988688612905938715871234707529727733161234998158408474134426000098343138979560626630941448222463476770584877548653558264151508199178680125798810575545611014757292630012025507261784900185289678131996928304828336023682373876612503164868601447938512331993094481977986714484720916872609319570015287679169200228332169611617383638823933353820259554866204654053447349359421205222726608630716259329532983556001341363344199052475712332336601396056461122874722151299231698531227518510333757283959223890873041121981005138451325741447754537540294365808131286087062760994331283755188046200332323048610087807767908176033007914153624938699943896430718086668297520002050303067649266867524309730814047091529378851566118738697141194302411179687794139888369717984769134362405207807980565649873316519910274569887992926379967667613388186913793618833094306999908165634391686034287097371218458757816050645864521218736249234285513879301721644929787681095194920353075601859622574518227628985738351604737329100971158200503944677252364034560392724338654743948084307278136035325368648743401329971271923269857712261696469303007827476663284251457267412475594535580121134075454267816340288600232631635166325482190993967224380973508878482152226932744584606128895592946179865006423072577654963200172769181578909213880274997383754142374788780022942495759377650341311083348681569525186655999784234714510822912188378493255053652038841718370846082977780734182913612578451597412814793716745367261289184967430150028044029777081070922529527639233933130793271736121810086690997082143949105347474963521801680857773565970025806253577213194290694718298654016052416073088409804137993883828132408428670306380926267866394136341153737685608586155367800970409724932118998888981784164522561462974089203110712690111045292612345781038850390902011852503041890251311166352303112117758196450467797038993661370671247240066778722830412656758601560588803518625303603322060386699783775648477266984349017370679036806894653161300785537278872457059426261629539834979231391281576699780184968334483148174047889506336722114552710505115799463513459761322497389918384915337766573649843484556143537925950501852589898458617944229467295380477580873783102763165034071749708311199732659536041275931955064056342656698336147403602475134496800215265882214255627527480834785563314779637767266717338757556991165606511057668832679332094608695813131471753697930154411186967844866106780748492099645388742987948026872626438700949681816871540781520192175828658470294914877299810172397061006534786691081407986158340657581293547887390157821562373716026123958847729643132938242906530710841202268109556616545983110259741563096792998797766480710470492937657932280139710152807051408591956403405368184520223403153454522388188282650120581697743941648929595065478818955557769140752585061512903925258278158267746870933125793334653147014725349693291993039745444307683432629204276932129797435882757878374832359224434196396503026986151621595234883870364644298660002620248296654293178644964035912276599874278866435854854665367862457342174631566378108476792501465723548144895057922507053463334353925390860959567562686510633379181975365040784329081948245233385682197590460755767083093671719019454633189476727162391464784216642954338008569189481421056633827572803886893499346342846846159189747927469177099316542531421404030155602828239472478487191307372482939354873459790985795429369816787583420142527513507925718943523902585406250085447888439676944554932150378791305497800822639428919110380380633926990174397126608056781103372462136167696230454328641522472111155933120219981526097148591431488271241922560164651389783187727070898625797797730882364434990033696850784001112438188341409685022609634118928406617299613435993649894675027075155030877666056647687385747816796224710370371470939821603978207992455605875785691011563096450110483402815572380241721281146884187363105052663315795214054030337681164490345572022241226766944143690109137694706917129864274493732442985032179201413483658704868100227446809029100394044333493911307516587392524462370757786614310218651392773441782939086996353692586061692915474448817225115721599970761658176035792062180483161890639279437669011967213598842692705260999746556065906079497501228233097211313816698561576762476510247617457709565891861355668164026425607910885591669872280497475147954015170581304505088311741292443804696288066424292431351360904763803278555814912546479433662177851323735011067554996611921715564397962306963679741997499156309082421363648223035765362408668613760634848559844598151397174104156401127768638742724187391726118615108064011135744488365196825264121216783504522934855834495601415812592563516960501749804611891000636715650472477730943379671207834948531089156207440733504228836520248287608401322730113594053472094590540707388133840787505720401275113066974787280042458421396269908509086271536634986168269135628410805725269817403684109713499183151237427131617739439025822008725351426909795965831959393198221397142477702694822630268256001648565924993644925458727813916019941082211884793205267672600616721572240843893009183751785175310044774165976809921844709560908843791772382186551159612246991834189669810308329090830608812958820365006916442983140037307845858677271640317459001701003509151524350697001247392734205876318178360907302830088896196777391871695591001074256221599548488088521909593000647849835934707695590328485110878546627059652022249379591964370538430210705915606167045471948987171837135061315611421402964735855389406292211017909029155644578219850942244911815465459393425375394814945860872454863511989097594142885435939036617232778339004154061931910705553639162701198165591682998401479689395187972671388032684183823047491107549938792859901916659526516993237140463526704847902037848394897216857446446876108624838786405800875961623258068287310711835737198026157499507421354970225255073539321264196776256999943242633328369365664986680439287902722712404802695084977238456246106975149149569277109061577007570956064627851419618190904589219590628792016000804441558801844975662815981073475791877979802209768583381751977142847708165923349484245108945881710313517639717172638284507621482923856534632675563227199854311488579547613601473896905144793474874218908345328062301244593283788968267805674904920591734948256515340020553068696055896222924336940096663250437180031028106728668965153114811135036310064186503761811830158429090831460807660876639673466192479863384788621749150801985451587338913675215026957028898553679307204142150948311430588254194167722981952137983763049750328384368283050703028834173018195828582430605635496006074193570201827091881478996463482212131889721526683677474408627948229896506591817625996018010976715080279265994357673340179287485570208319009677767449335254906545751952959009793058763819644161206758816189847185186742020307559845688851203667567140142012278854540930307943526067236923505399804481466664916118356923044507967818305782284343834539334370867629543834605989614020037099108105019713790533735953603741808954620446361843263812192834157477386411804768687989981615543823687568837493868796645960885584544227355995832026675400233355799512633067239104580065650711154294523011022932671887876201156782942736627473539953948338265183409760901677101057820461809051533514300820355361301822368716926545604461262664988586555782038858906125037141336081064200285297153902524669896233303714525731889287413066764687583972290243556841669698966262904038159101434384273358901167418836762790823409804116570763419221936243378039883984503676467714612724868219219435161232680560349643947743549967801726306879223240332142245709647030050572279152260260971134838248557457779952082605153187701477542417340622977862448870912642693897735457761310339869494416963152300298540486532876474472924984506482446690703579088189849279604542820164616118682324909135510480776872052099793677397403895289516094151685483420386218644394626591780561826440599601050631791519982581298019887513710156744186184143629210108899541979971874260043231274866437939833628200543863341296954631849381408487799386253898801709888938864043685599473004860836964051531457822502136544128369123923194138883009737016464296684765517874486472223456128676343125760607426955780015870137071403771193008459611690574424772081106532951932445919557002271689820030524975326708387372103619252225963150308938198253481876006912891245751536488155163011127021267098574169451854666543472371719646944368400097996239892912037465297186623836525870985280618791376874388832025991759228320214180247064732989232739405209392519012153273829963813351364241001613933571583418516929068378659805291633352488389497202422911700953414583257548413405221698064599432359231103406703032524891515497874845850375725115929451779117929676324776436125697353500753713998721402543097590210777516490977556366456301370794511624899500130325933118213168207616329218994620287921495714484718458609912383483901093394284873417189460315746283508198960401554092482442246462358076396138636358248115002121634399420579930303836870900202713906633915929752624866586153745678718934402736808232830218877427778840237250229623938840716299509215677085759585615489265773546816877681636995119144803055250884394972876229401844069719892699381935814641508850559644674563098163623737034482035133981155880954171325238976805957555833686234130598406372451024060469348519041270386880081653256946572866459646000423208946883181851834227914155620893173935815828844788260821189868936047323874595528705639575980861385280479514344851507477588867541559854675523478007105381228051636917017056511584539380679753256102792151281224115721676842146979621338268813852617359875181919022262409269425604365682303800493355572227948650217214354537377356159525734214904931259404612344597978362894739067684654044669425238680728740928782096941286618654628207946448590396937531190999147563459949681882223894049818489264281956236583429669130468856667382048793403294182783172795916711984919433284562758501334093108732565169505424496771263262953792016328805295716447965706498811264118908267494264141397977454977485888098308934594488106220976634240200003249067670677429717918460460031439986521733821008738117481772166776361111184798599786724994063184289321756056233234788192460650202696288576957733452485327329700927929093533644382866341608770360394180812563753284417509553220456269680325157783324461612264340911923417012091606164383554290441985946890274419489644333301108493163455443552593412828198392443436154316582850027749125342287327571847273205013660902773109095764151758015929066885133272725344175494739414896961989829668551153792209866811293915515861737309049461017504916843240403721478241284051818954159756518106812289558538292907957581942065906945711039360272658311331261792120275728256821056971707014673738414609696991420649332853173844978421047353002585430206185985404046544843980206479963935111098356289917682104004479038673457675218514859340093519612762211336888699884299600926378178111288833595208201299949497150730759169295142359316340665638151234582871061577136656054303340487642938475696752882430129403725579292858958299429755936554861228801079155653033313681669338424030669467029754055364737777777068626180472396783030439024626329158363808162243385855903304735320983108737725100610052952001750633413289405845585879417970566935073421335094820667252638386348673546912190791050880100332125981407807710877872127240661211830947546472271600706763369911217250677518144474233209079084523456507302409300310506705401675522878937321006562811713928086732959790874410573294721483243005649794008897202328632012922835737565557092658123983153895550141601798666252597071724450141707415315052908477540111215573315860299872639028035588001776322750381535040035190156265325592386787561064665520496162069482880812259992987174426933808330133958016915725324308785090242703368813548566136896055105831699657143034567099722831729628226626468217126752983673702083525726154397093724136621326731263658943512199753701035736047057104389648356734116276373206388162607002319722823435150648876439539484615268630813684144288377232944228558689870146857544388269456102024570722272867677775598430287271705625878826940630286508033564790283433545309221371984651539106896277181481571973030355156229562116431594165941290782118616344488414133161881430316069838632873371439408471289083517797689560574308389411969441984113780863913476474128025116620501543751877633576077172990995855841431718226072705710501081833395110825912587291858784106088110816563250168369542205885175147457722285576386972608784965280263010768129010166051164925617752692976254518421380310244898745776047979434245520549653101771408052781781671293272990314530093088177449709671544546786484099689331576015076776542091701866382198383947671015820312063205448078558774333293394408647194715986107264309984184349439328312193140547400804736324225402578963370045410412731679463316786385776289304948856540774804083712786368513462342686040702158843360193575089081743221502015992893988350031363001475186073698847053119841904082998175548680306773348873903916567826781861684796065770772893227259295597553423930957378256939967441974153169881474120775637725941971102166150358965675499728418440469724974876320830177451124690464661816312056346040017953307813594739953602906772973914640450347928506679774424303825282740356299135853568469098517906738488621307998752827676517204893164468823519061412804954976635389137511502106789909439439481837982295845810845568720003171457416197225693665794199362282889489634828504135984937277027873711641582493100209997346481322397415245827521555832114058734410730643821629021554336121392358748917981788026874996250442948547715327188709808856045459451993637684317897388128954946578385502217558218971488799204779832911265677641088081283724132960403743882004396095374301950161286162879244467142739872424042332331470092533051186477398315910379639934593215993302212166151206902942256465414645101575401493118637799712254142913288584797127910872928860020243954694466709017107243381913279948091368479267381356114805083215279046630034231472844715954990356277382001882592819498687013185391702874541705221519907521241189717359678917792774692987624801133521344525838323044459089943830013354426993262499650190856481118164885379281677641431762212266039793458936487902979524218868113590885333039773583401163158381153231380080824158025207089088356380808275529713384827485703555563046932332921310173195252495637801146686648294553113300237035736935502023463905213143500889344839407073008660588226880308970343462835591874502578913058896970655899165769688314789009792128382558987243379018790726823898048632061717677292361200939878398099979349073994480445720994931230845698803620951100336613875093529459303714891016023547529829791634290858999679335133194100344840761292922967847059789152520789154955693463805324770648784151428250859089480699319974671675424516307637341103591414911884715091624260847677415218877726951885321465074312380416851789935468123773000442709555393198222368306734705102340563132141096695319137672347724957659859696147707468589338424072220347226929481615657871469028679508259258883118653958543455286051625610464276882378130613051566203533430670562922350078705651484257548223304249828413832964351055497405423971715522744363838935664896548016803627188130806652425353909206817469800188906858262937813347901331293379766518344367562498723685910678822376338590254481814965900848941562861806537920741351237723685633530637134067152698581133881276898081120271413308802436974164689305623457710684833301781748241317309301974256475518718441251976523053476337692024056102554762969896623796632571811649769552499356667646232066933100430322777807710011555221800879731055559749022868389210692480058190513598534302182911799262350934711002387687893411233814836945061929325272398771041482461801408558436634691802675695038209672650815164221627561315738340463335691450079805326139307707304300632484670162760562292414330932317684645016634945498916521613051898770712588774542126402852159722000425119425002701840798949546416863079733321794489505349497459953665660700022115452588602662169272652986142162481303822091421346790580919505438538461101899439146267918514153238436924386407657967424351730901495238675490487120451457247901917329606820698833717901459028966151024409501785403181211548829695183400294062165346096072822632312140227158765909604503080528432813910783861670233260509971653816368903345117991375313016888826494957415520410310828863193033464074937372457820520022633831336662037386874444070201666962866683888351942143213396927846185439187692269123546394552516609819683763752692967563571280616001449747470814838641233693332339236961654842413830551364713235692303830950293102201905831112929145535535610115569373917845420276825867503283759835285317054925842808456466787628802084658785714285955125582753647760759355378460663120110160633599809683509784557716236516302968530719516833748993648731046310271221632493671958404252136502153602832985907425072337376003491712497908260828890846946092342839198035466195257397284113393006269862972966581897983331234966386576303951501826791972755515139483101669309446862627328928010303133270161786040637875516807194496377974074034639596371031545024013209010677530633113173049521422553233134563026935335567877071587020115909957601530303496810836223199633843147358161574089061379315204764246912041605022955205413913169100676030835093941406991443729741670274305305454796721191198647255055977390337511262311247561242790340335383087727584015109693291894911918441588848712168981894017869989135876160195557841360262154430118910096598250306722467091997744449307974770648403125335247713356989775821713366907647430980066831484471164314312865304345552583550689911692948778000634029706360706106348006519562835490215707776682339870725159364233888667627868653586898477731972412425570209063090638580035293790457234378056427495748739572915506662226679353332285360739769252037010883599111449430851431294986254600782401916863625761505662379493523975010600574118142207100599725153616326162606189003020478864711917984654461434677429646222850460203073792504685629353053972424826622590489438687997406262535392837828178998262058198736451288217270156154119049641541499410232411783590297184300782326810992570185926740000007874199630136546795769791924312634543248076825374234150843918049578802990796622142976351338249556640110310018003653506140251907306246582757876513813341225032741448974667387205001885068124415360490243060233821034093193735368657944798755281641792232978864719587521721198129518346751284273949005642137425867621049821657969980480430652529592539034815130829311619485272741402991264867866552869023345122072820091990778745745588172991859528316690613942963043132324494465318189341652286486688232225892166982241260429013297869427512920054020617328759480018871925975748340738877882238257905076143930589967937913382427671292151037526105464657968034718857319131435730403885638181223010431592937741248562012732308363437004820308463094519912767650494190818852854508984678781194012847529167335628893626222090655478881728700120021032537334533099103370043502423591543105645594552740821360217400196161248362838813797548646196549868343601226556620990586689947570782818598879598215138015121609345266508607444568546886372844623110327746389856573636354316487697645282427688953505951080392938387022159119345449507217648863791924915220552374485753338334314225411355354687587397824721706663772191433107217385634597500677162443159300296201595290603759473153178457593960525217789294791393763384967751418204673544548803606340861599528210092700583681083359618322931025351753585585609368647182632172166243169358743003052607844553209167735455268830996583572404690127817352859472926752512657404988159953556996782498527357177829952875537560656009521410997236362459409950223261152568710150125050695320645771845679494787242146624112146508170798974254055180225619863598399207855081740120976926733950948924088189578227574768469089569565773290961150756174937178383964381451424670157070911252070419382990268784865375593685011201700560266086678310261224411989349821784410502927823560604681406268234481689591506502692050588243359709783849597883825294230124306521446620437469310422162165484436761353587469622257077455013736245253885493234618667955190780024986670958115993997619296893615540795598503859824121088135481867208657843351851417062665429559004771174128340158829578796380864147390319940733253934011222641792998635903754073181034908199535332370199207407192878839960183368652587740465480416746971110867884327162196360430816992250744488717098315696229976521207429407457344567725106151044024334657863436932209349869931821128541570164558095168030572681934484624865969854990030299850879331092655200784738867608185038420334423279061241981576278569651150940572389979274911909851310112535603365681357673718412496802604244736502974520511154516944447123350282052703598810714422306024538591419672463541709653693633380362798021045632079673793388641112768359285047610022894962645948499225013909733781753004964687132022014718433841935792930655732569274560514453277321141846369547164895567936843525237714363318740608108253859797193652117295921013899884807832488127941006751292868705877058469719984277863484266254694376381124662154216841619252195012554688035616157894347381737100487641484646985720886342084604604815509373922759174729773203073789396360636371117227642032425059535664384415472209091990952102165084945192554723574216148839951697839665932688519061474458777715709266744461098981197106609052808845427766277402821846880603391812998787374964703819924973502866173963233620010316466332424369042606166077310177507367327697426562367372030626384945733515233456048010111906419023079388067152265513135685222141053506472961451173726572177663372815871535232416644033116776716347059437446107473517726025602627943420132590289810319455809578655763471552813089795974602249416992956989309798371472866421951084431740620452244012785421259034544259819935268877976178044122065703634793893145971559211820896741923585200804439769598736490105722962725804348125440235175214439094158345808014205494076439242189568985748290018190519760951779181449953513932642938226137123553450482726373195336138210773982944337818397603141598094982187882561380855824043184405499479588555454794475408290133466360444337405724531124027631825627201296464888426869456967778658770615640229338601661298267264848140289605834674195409610882154581894596403259148904430274124641626799655992811998845934417659663123429733291129891645866842386936512146866978045323733276309655456568961348732558289503944987019257990405762433575902654122184051435302279184679936585963666039937997615218971458920776542371116354575697676404211026974814544730505747019522536754725798658838110682112707358035890672146347339294026113605643427736436124211957782760494218399166398154268992327998813209509445832873587902281969524749175100171430177523670634050345675353585040897625373518246134269003385616436868693330249041128992656349116833768395549821321923843349005566379675877076172026942046261827264094571199493992087708841706435951004529937664509407215995339452309509104138233636687052870690620394734289704976535732512357323162389083868083824030195797173269179782008360445479511554612403107324823247576762577732824847419337212694378761179968462998297358313811206720353636111849038213338672225880121419947640022186925458659143990877867930699425445552737260984953302762469200301556993518873988945192284147542897823390158955387682901984950140259537983819399963645475383096739255621114180196497200287048016772562275296084388229098716697815168960672074102534445243982449487287895858455664235607227698279923516425884572972188188519339944812885724811517207933455637120819446093411542749360524540122519149484808036766677992136434959961473535824083060206671207921902654258181554371544197775274356656007238593639989860169090152217087616313556898767015344751012970063427367896381038704807010896995560890534461504219229621819620310914867732845032194795477669226654416553878931622182664220367720045501665455246798401833467478539552190986185250833659329971322565553040105458933003859286842254628854743539301022012259585680816514390802797245075745173461384007013138288406425774713220704921343452493611664742742862961263980293219657473407406569572756656602606135748347797532004238628784075406827078270768855190668000686852047251284471458587145820855983884997736343023230883542352427013314132440339122831548201101549426142171948906013761195603759363758653426754618967967631188424668247329196532616667698007379719037897237601062615643454905153235464988376198503688389709732036440744001508045261675625529056263535909874230821959652142001149550685927069988920086641868951477211028022190264336023672010756250649629130331569073588541633213363353541803730180662343957101877034637632162127968733627048268567700337016877109691362063661860239540706955323120354362978480099854492970525552540795951209041323587341857712145812543288443239784717491103696999714239216955525955342100485490263136541477428353122193496774574096576074887647890481398092746653149843937247904224096326120102233680284989684486927671767114578563402771676093630695698889974976745471108129772037696988492715061132601356236596007167072890763754682742997774018395510598423218958203070727081990294484506046999650671154947969793052436265085503795415750918994292593772345766304634634574006347158770629680299316915329517880099951124052369403874737287304267009872872484341592030738465845839471546826484892770434938841850949355973154251651098487446850703280466658869436029749810287533460035773954110152380555584408819618805190622012112000966413535405523008094810201805020668348951906990189460670790800177842621717924938381003077604465476518795850506091910530416665581203614452667898190855132069845739332000793046732477710041676785079507688257847996106811927273121408403812998661109656273440077374181880104364852322925945716261406843999952784487600537053181154310973245911478211585293552269417915914531447527382320733425448229506697029850657543519651016065450199442439719453911960000406463035597206485005834129122961539440212805922788777928651377573172495651516356165303710503074705183033898440857940370130061641162596585164962436388088901281678978379403379847002840178302458281444227877749023674161202337966545952815329332612992642695397439076629118889343718959060414904912818502096818452253189308259257101133078177483978841201612746453085960098930597353054126800686836709187833896360060297367268724743806302319608217508125513561659481457410076059645485808362419351074604732924373082768807164041391171154146307008027822435339707305124765925720449958337757266722125708699016564759965890608561240099003791588815090533789318712255805045439358645703631331433575940914716844589873910688585357985762647208546901776151383128136041336356166503319166943662978450194851715049027130511489650888154615855850423370463499579396828899283855059223746331011230398652468572141169972581012801386494283273133889842319510386653410838284938509424696135651872321919316363920240751127572567410917635544791925429172309383940893844871285961991769680785723083284235109531995714780467431712294461495637762520530778806776603988340681039340087103919477627432854250147580753758729092686360784957150406565967047072906965206659088269526430155744688449774236365772831571701074291508532267114588299175474202067820319412784925163223972506248503931834190099481557185941315199016572124230609439985202026153817954434215122473931040155628281004900510665031428142730468821216190896422367371960203349218359639959620874091769162196639783016266902794033125673247897869726041360827497816247461114557969148804078415438667176806992085731378964797447535464958670327172484334318585416357369649127498355663736732556165889603077005006984207822828217539452855879265617575424085039702606038758082931782351966150391318065436517376893997514219434298878116177157743565603402164035932667991606441238893601161149206390360797266417628205573149832204984645369549888779767769266183436874145132297656890463737645231176641542604370636763609380890112659602737084812547444801710565731270028374931618061888985149960741960725167317597774603989315716789401359596132996409330074885239614740519823665177422640669386064082475756445386883307055171689397115515811015104072846843295177382773526424806146363714046382160443711468806962615147681095489870187964895779348698188061237730605686599060006726179998514621770145812659248083695601021852110123724578056885382327063293905375706909143908088108547913785077974545603556554622163143539535456129437706470040436998265738058485470988450523435911287393750981547864506695362610939850756952653593878653795950463110995982856415910240894809392638818810309176963940067084935919636395464892641954541139728215128864900348330255171425809912471776381235235621485916312562802044077369505451929111845295291267344215716211171057411028918590392970929239396039774034607985083291295941494738976349436241735571891640021311030210786660309270594107684048333800916021431501545951366321086735590519250758480266856890180054946745470664125859537625213054127575571188439431118749835138996177860195090515333151159885961973809952644520598733653343719910702733558615395161014213831889190941033759333115369438657407019606285419020354983490226882408545472446890640883495737717267707592914161589192095313547993321074392370476239616751303426844003798701194550250304871499618336713116215070111664439574333589415669544475929957177834993498607073084701494115614068126157012399257782693789970520892055960638026216374319036203810702545345796943697011749163219792065759132307370458852141714291537028902653326794762675929010900639167418773141103724090356332360025300622651371029548008654333705962546394792030340694648776368579081958316360163048586264926697475754350031236023975301890050597803152054499100002714062364675927053245366048793316945713903593033576463616399636975796667151774654567319523113790932778561213451925835061188863479246992241058032631525898594027327521011651637541375902647024022684225790690019720852435142103850827703042300345108234414516148551223777726331707951206963838195369089473736094318640669544463542256674748354838281983309873566889652101515023159665786168577584199271322018257624448702926950697026073744853330453079934369356275985351460665250962526408316927047670645334765261776600843430260806673471151562377895042623800668431800418642421765070748674757054420490048646221558437048174349622187915089936183464701773308702921072742894186671867675401365287745632519305162038720558096554342144285585975450291113129437326400166679663954912709042315390998800445095822169183316934189822464066269042627890991633568692548979641939897428975321327845448032291129381223673902324004288437025149530670014840177159802055073288413756897910946029875126639875996241981784734819132042544592278994743501343426456600044173776184627875824509637961774544470519773689551958511533899524203864503723134529752832981599004416418748135259998345848644820516630775770332072113622951947916680302122031405385660277685921020347539416877742961580278299454908492801304648678796340572707032686237490772347491103968196037853355497956592974149792840916427393991431114460221167214513458395819388046379327751399866899626266969153576775419477941790688640069788196993360955712963208893798268027139850904990027793217899803476770615210461489952487602609161627222675853633154293251495679346187257697389168412635194461479896306317263075123322091144967744670784874190721617956772763345929293183970125879069224548708343437914692441336201838540845269622037468402240661609835848308463962022691869240182493255324575125990641032721743579954224125981076405004052465354553915793270440904148389768925380485671875304650741248886331256945691560200217327355229956164257606792784976133220944298024883201798389194825961154857358642280287455715829878513693849029307906804559715092018957196555964376240621642029674795652959425548222062763886702390383467023708475790781261038325499906851779890132605721179023808035528988159134370271021039637903442704532366433018751874136622632376637868541217194810453690047748654211067607214837378597330360915190715875296797727578531940871660420194409050119699251057735342249668922560460808040208301795957096199494695016935985702529385846391326527027920078511122846180547708282236906203358201520645554133923458757203070968913908698154153378440000803410208470561505660689979167328541491736028795400507181690882326793014564090244797882331513552782763735835838778353121281994300153151414621850756841665644102384994883926931259954696367215399951014998487688362566980988944267924570158579500414719914984961203324681638748487144629979479147605952388756048936175919815979727196231476228451765167498959062092359589343736640339781059100292915416767233716108260844098486174168736809422359423716731733334037896499226665979004296037344427332267172624176451352536612150335504917572561996663779861735352792430480424226324639587637426912136616349403100969121424084492970028360480902262009239202661743613867259765503203380634975636490055980318181299507224839092828765408846370831111342649033840832097039634025643719193077505612611363814150156774997369716298755777897710355460937777091363701260165592066011785780228822674536284920065730279675315887083139066579203562445014299254864812871151912438744928531680376743376094404197678520426780175333412955004265198221925932916155550517525045775317070725161947873345428649102380090962746404719842623097136139363082576949098622543626199668884897152897647941839182073681780768186872556238327355531170292786092532973184787747777585349518163285652864754389437880583086261203581742761779298899073524817971190582077539107966990595398404804949034605762668539440998528036604654243029908141174540289320536516104292703242026203695845431037912660485185982103371010961227637559203804249510815593512930575754338348755876705355720985261835708490351073639669525095659998954861707544793856166395902688010174301568532906025539909472831748298730668874234307791140876667372462197609859919800439487356712182116121692328500156436026251491609832763459123463028721828194866880392180878000777997524874386946267128000415073362271444713542787889883367073234132346676449855448757960068558377772526984014356679666003440294464259027849311845835852302219276037644021034548802434141665806976072552610715812152498951002846822541513627206779286804132510648185010233086712082269572225765403111990451398521491913299639178395152373537900037923052831237047933655397937627711695453197159682219834954292133340035040668419179192524265678211641738200155649454285187731765016330445529873292668620768387732830210277231958611270378857525894105134351667608540384554813385784938893762545588259701688007050328134235088162459625657786247368959080574533750275531720607551830091805898835433109011011727295483098840762580402107501697579649956351237126493414382497347524793838307704366303414236954939796106207233771154710287769029020289500763516144685040111705779022514150264823123752099877994812620160772874214891684014911191998328059854870385246707040882296882193484688238356814464012898623196380281571401831733196204927780957868669143111248183341859510226222395781862048857947287439339139560440415570876772391039988793727088337654183510888727034361682699346701099890669239647208902595495874044933619411753628389386133322166775657030338046233564681495498365642783467494644531715698042756539295628353470122918360001662743136023117615743750873692525015055000348508929030467424239962447596603367219676218497843924039727247463590574537759404868801418282938656319342856930424017813194097647635328988039836600211307539840493771876747078124353785059875530608087365031670475821340355819177277417524226813051886297211937574968431356838773069402266560859428411190728627385403133908183614586399234914520123915610695271879551917058069563936514638349409821264357430279244830847181676061947171112838623469099993069552074594971043927977702677204819021382830476239401139552084103389482465452559900660527909451480407399911645388389383344338064335268892960272635509818949605873321338843855091732176379429652847553264069923948120669478123199388969142008312536494836250604467358510945426602488845982778716741129890136112669041835001118339969290332620328024884985749718607555092682070952365199555123795459176202742197931294521622043124484589260145269127735045047568118022852250754327636090764839903274880655600453176042051348922344144177848620786949167192407320351065360481363437056502574616231721723383769943322883278762940560888571550320021118015406722422732038905937755378568476414075646798969956343250250976046541184051957031572958572105407459671689602660116313597447098458531403024844602976608654437401808862942271777538636006873291904481734188069719334569771168974971679022666801503026709519563597501116922140231735521086902038092228988363877349463481337952570062259807899142949477526665035234757237166474909028978121418473969244092739464737293844410702457926030466430434292833443437454030139744596113116000175387722863248109417079279023316557299063688915559891596913609492481546265600560777012879661696231297774329878241896873042864005502461363964955711763690114074655725184529533402224519807955364523609165207905178353348298070809371069974657295102916174610663202522520752580553069273308575050411322621004549242518508762552754959066296819455645548693158622436279294140937429325623844215725259171779664059873428240021787187191184507298357015172125118238360316848099367826409955731457701351659161113359063165276328053995456501820387724986530510568453226713350414004902020527601465271028100648341249287496861095616649890988502365493604179638183249843905107415335875271923328235563635053759555101747202172657584262088273616242134527595364342230109848100857010704250548637056367553994454596772167370999958342012492549917671337683221319941868685491505312886275848081567437416280522694060759997991217006377572350908738140187552070783113613826747534997372104314747199935721599776237136329548342405091765968809253641061832089071211654618556042452941671260326949517634180515223044858772488001317241654255400138750019023497255138662485474408171395802695646184209794355816765751502685200304926192906073243880904094146077640412634595817063429501539070686587019701199290239882631586707495533095175426359141260755488647047059370553961034028229752862968779390493847658378286240226371231077031317911672546811699794033588756627076580703755252024414509409012107851208450030975646937601433895661375435275919694074597994802907580830519006722115175322250791883459427998363854113239601997503898313814710013512076002014476794807534190672272132260025326778390076115138216284804547746733919107335281207892899151279212168574985969347104338445303177628580481694255500541795877259419404382785517387070785590104162663274617837523850237998550673627824210429167187662654864897910986257608742813576396250446508046559178977800637715008836315023851995416821472732058869986023973044865257148736604958852363427643772222886717713198555121693728729100452400527996378185344198987148943580627433906972454737489942704591927859899132063886575815088130036135056647836065988875537030806242238135486792351919386094422548381341549604199028421891052722410201075066238230727842920561398592141292904314882739572989694038902872836177267207367955605170924713170744011040724255850554719163101457620984825999237769939433205040618953998000891046743032970114570865571948245741315516786555616335135864261045479776172733014962507942800708264535887821159303550974879118326941817964767458523914420776222676803673872064375487588527896374683544606062034031317666120040501020810733331038703538472918954481172932395319466713492597938097294727001163769395388352893497964886292945672234477461415660052876437133056599590086026634548814105175931012382331823043847583961406846843525928657739557762140988920511663753117275017542434971983091254203997144500384984075595004097462760991302213794130401133646608937195396670980479363302317851582704032283161172007562916671381757385091980042977399117427117046553431045230191252764096319165225314863090580334244505130557949839976050959964544064086886922030988034527082288175031557739020154802281248596473453055349474271948014414482855325567298574796726754758905548766676786764221919997695720620536841188826643739215157516240658001861056134610605311234863731331251925173730830914593872951176544570403711331626188689352480547544607824957331210066933877673662477711772177199565169373747258225638052700049876933534179247473369515621873549556502189070844019467379324998160490767870542166764951047715709685531973529729257736010519373556482379948305267016825398050291774936620686807094978923739217483683224868047970587076268567413602358061431590288146715040847547369582400127788773201643715473434339682945953089777248454084774846725559693937846755708375407862957202079633801280286854225036008914260460052150695879249141371014286584304213086694293777529214558363720517696590613455775911182344818826548932262332535415244631243080988551247087830132728336661312482347830394099384286523764619785622441139506808291771761348284165559033532565086662487880594314646415215952548993073559795749246293239427142411952838939372707436581254110025844543060969358471609840975603566243020421169857762708611575821591997959137736031113646363615562299299507619510273528437047890369378205271886500237096517779361693331652032582821755665920065615620128403256728243760916371099855792469411594065303692831669129206191246996700215760077695061990392056989159570076663058662068745117907582860192151987735911801753959176471750167737220612179068172025225346172444974816701284869261693447797045406232094006500309052253851227644585870195401778312391560683042905170408908681582950093067136336137662480365777799786372363414510768817443818427158697323608647955125250117591989514119229345456540822904698423358965275682284062005881094433314571141087182051587606198860076392356122164047970596803085134949114703241727388022927052269239310207508972644086291218804120247946722025267590042013809207486922616196457156973187393916543000511680082162987991348746298093486493170001477100507354784205108142013994940085677907459793914501040447641086839147278815651783877841421536721159857647706719928260298393328224609618843042088579885214455533180091936629422117087715466124034287684687841523496226409595967485319349310730528988763697309340043775147333629075899163037396150631563221536733255429461750769139937402562129137121807159487640034232893187200292524907246736014322270588630427457361647288613695809307369932048431585763376480851199858146973285400256532533961371746040452638082904027108730055238160995300038030549800014825632613366523633477883125097078056290775862833168799182377229675746177926746441139480037198449834150185020951068314130069045551224678047478805788509037086552460052495735362947525720961484890680852315955199251031588379681049869377130446007441413802106128423131923100932776833304561064027890619180021946818135441030665907937258105431922952076223056453135149873184178299486822285905307076429808460777548805346902822044819271609130259561706739642662795900742412829803924376970686935328955796320054599344654543789304495057603016623659401963477388567570815675341166037030956974581186424979804709617117559220488462448306237998609836751221128070745193354099028722236578585619585428828497631701716058547604082864683212208884940377796491418091612886801275317447361670982126621465466503378803140976972737890913615279167562577709249233096344227120299405216082249782647929208166961416648098864698477802801382077403193441532182012750394281587906735795869986128620352973314282691663398208055077246226656034026095959584132480606928763484948417089658564943898229370604037383597788929842575796081201568935251685262766550134084094444344811984904345838131974921965510552137331784246226611236187587456947303572702852648366476781570922373360417314573738915055938277174201849711677803956764436855086129549990411271754202149624694471658316985558809396820002725728607459835454002539883347189251507711237053700598610729175769997512116771990506893524236339238111840460592012819931153288641217518301746509278278332121137134976518718235355394687219997557065206970149562769869933633072699664722459943706327311125698156916893244266750810157680907090744758317779176650339384286921915380112898089588329573283474051476955125835841942631220437946998654606962190693331159527251906168469615163158421895224529825201923331947045506315431686337105690537193117310789580865813793011190406381225142556069906637079159497006429959402046256418533343764937908054320156776122171831870707403206096474881969357742951717672509558587986722314144920977497753418909339176816027723541236004819000717511477079084789424899354075192964485710668280016804128083271748850106694316973298788737144435805596474734443970454262040156397884962792106463877995162722249590246772684987447283168846747795600959788760000594372441504056224886404486560545365271252902870766269005120176156806269968273095782612798203284770339063984039159416893177662014976378225679057920356814429554197511568525529456810635581816119714574318174653176886762663887524790166795933915457327283744037478288162762584170492916731450654106857637614430521868317139123875395167185978977741122534192190071138591241218517454232881528848285972401409245945486549417226280912667891914892775963123132204963443381600115008963816225885690946016074424590131006469450574973389902419587163567207522848211711722148418748772887850469891466144703064296225673278659654125696893778494036173869227261068818548278731215936830035926483385807464102137279213092853966512979066988442973712173752412354692672445875890308919084921797892029553789182070595633002536092547062177392528849027825493357968819454106195334704903448227440197294050275618335403917536552356703753131335869640269982931444389771943681301551478645561660867987141831907475587251426499225454938229287372004968355470181434097904407380801410841260090819666181362912952142126455662870132985309759751541461582365358858684343832959740707928320534132299544086011535785963402134171157594865682225058516159081085122270967845713929348657786394525188031017899914868528856472950560282679672334039095379243282979001206006145587371952837281710380845220298758319931928419318122902193211310196946139099328575030648576783375703632818947628790762233952263353159049763624137825784429637504271582494174749368330394494635392431193337007278729090832130998148087149845354579281797778956798410977764838539599095803236479480510618801293170257455655888995475787668070537515810639351394728974923601674581363249619429866585356172373977095519870471848661433985212750495284344020098179491308804011730288947769048832278257133284024988198337797906879815421403596687745693437087785545938581180226661792085600300078017894779772939069964037513741487611572027555127567208415554470897334199469695322944726913786420499695394512669445284386447552650947781647063928573668582627937730916937017954748105231361609356466916225391451638344725015032871514002818307016440711287162113284307653912204005609268755868279964815207243232918644460154120349529855079302866847607829951035246499885555340558939991425945912872214446325729570510312348387697561453237628912502846065065684502945354019293265579645847952701195596257463408229089407147068962549034225140803086169466175825890500039223912775570931825207186514182245442628313896588858467968659487252235479979956189884833191628865223535048648945696094220465587487982430755004826995339290023927781728460563635476215383481254999061879142456246739350580703501355801837985566699743894931567355189288419931256690415354471182097370718561800396992300444853316916929193571766558776641322214517523967658582908260843914012575442540412095887964558607199095562004155014749911517998541377517549261033870415216315757692600184429854261566435396131870191904761841134858780009178984713090226726338055861382812166674077906754936874840086384224066789183228756587916374903443238300105914708257385429608379685422928539975259491534745906905344321829392615778428649408450669405510895892314092132509818529389969591476826360684517888798294138737987537097697056504174988476895632510411224971713727896738662682282282484330187875633671183305905379840778618217518391001121002625992203468579112209971541554829968177064442195806311104924318098155034329211532642802109137545677649069092808465860039393497231336213528032138700601023825180335078916047275509660737297529052345360504552242725618111150610513133290045002525218788904210494908738495970939249179627682933837740044730496874702746137009153488402209882592009773763200334227266224406682378995018057891574392943154174641242314173481721188137823445020279905516900002624352406729373926110302756906088018366988684945141135084507269292635767310758044631662519075293474901275059506051178062534779063271207372287195684953446496707877300571848038381182573021035417611980905991406988722935545800370588504545813704736362401050872791503384610139188449820149759582693733589726630601839845062291800036727159869185183925597448481233319732457279964980676847236752002069243884820190930347847506250466636107402966255116516394685022752230704974624947749695825919426900728429284894639481529527693379369659966369991546140325200546300492378813169436607512155679770482012381287922930753204796305080248552513376626262995051421772655124576023021113609541524822301480061287126330759861999668369245573243405448488037279237241489136603112493118626616506873717960018591132876785087410814670390809651694408493735139340862125806715119435658382839633249206891998976672783936627364244353124885593854345884058807261717086770771992168918494384865733173980718758198014530013571909491513727099290097272980197640934098448942030955896977810413796658160078527511867249091749708508905952361511351331066307789339846083207896839291062944201478049026615666998042662225434349600724077057565807243465673267180344347371157005028469605313795217060229711814434162705916406319585392932404266776385620170541920044219859036763503544996640169084721672677641253768784764227881340394765138196933146803588186283387086568828164286096532239989138641028442800029730927140681797386602333450525612445055383608321032827858545849556886041174650774169337405254160558109409311076748083163323846794187725381195614359356809320672122287318250857418998595340565039235894378782997043325890801140676733157080678143192854294584300572373295770700400873658728009137876357778659282395746019190215067554932500804593584685306440769267926836880394922298181826835265285425061325913335094218788551056109949069806129357000810610918863621578105788572368608433528918793201553684244783549453156021906439391737454431903821375262094932748602887049047187442564590181852118673619216786508552216751487025382372586307495826947536839179749977852175556170213472525685078594462192856377683681925013552376084600760490187641642574061560293382095388471163710884612762996145436163899964821796574646713126939375477864747330720286891025317225922362945435882146859128166824838366083463429414350222674824282189684958733137893485704086083472343593263162467995847350628157272183116808583820075604214899710045840967818211003799467993362555885566532980348458447527903728969168538694315173825338723707238503893206881327841501580811193299414946074542409959300236102743257172988675723526115164701157893827036054380238478367828902704406164928005630930700426850849090955980297614344472027886641546428059330925197744551022666445022654742810687349329070535396171231536070856364589593544229202188871274379325332956805770398387837545925599820965572920975995616934978976670363033635714722730052238220064489191922839859668037973486517691602148709065508159274649682624947815275943690242786339182765530782926778998440280043834049478801800371872509732493543422766711463048614220941552157264352451171250026197811757996973414716522614669761722563207162470511571075370710938130739507161539111797676519036318501780198500393912727250441711318680349690200708715774838159107028347744441564607011740859717355482595207324872464469040222527730575466031478053330477679366036245778193741799055391802470448337849542332030684025424896889690524420212731392083169561763293232259457336488571570342442024251411506827353598035808235838298489290979809793576941970104226905401414433127843687244028951861000088579449868864383958901815816057486163766532840716167272855278891284297337415616964173905799213189785670152713865952128224011012009983892203000325658868551907990759346209077169872064553223467279909434164016753555139139509304850127255397806656374398028595770129427711774800341828585626410172325877154402526943624115484943596983217198788681122520656855985698160966662238738015935475678839709088244211757581593643905647516671346486300804615432090121131783488744121431865382161390511824846333071829512602210870849948599052259511815709703051707394707435705477900309784233711280057194527999701959099927671213110842488193954922702595364901530098394836705268999704188746706997132846735085793720328754759911473280968349929014437801525872129378689800311122475557890792648389655541307998210095862221824299734752165413742756350293071227247026147857565932468020980300082543970681983083869710359425370933590597167855511884184756040361004003902756119915569853882824421201002738017490313646677856302765693003775574143745094586135510234122212835291705978441183010771770240121009961431023396039346143668689057215414795650757810639858515939446340735755398066725550983885262709634912697173455830712623558875442038965494331982425218139384111003684658247095247296422710670842699956559165857651976128980320561881995554969455430479255958091565928258195252684334623930750705074673054907581671123161016517801348224826673791242615800896700798903080506781356254911409289175303532757295475486041206784636735634075265160135731351933004049462291565946050234459417006615572441702109303807170936191432647321082579831782832578565228768092388761541997583657926323644495909001369574221905860097320892068789832200926631406969957133857071315806546162397844374392774059771620729380034135820351077235092441135302291435040383898390896131642671351490876722876318871404745620411843305206556723412846048422518270135952340141800130232380261014111269313801680589754806628198472146686130167415307008343506536683336097147861778702678497210867427889599554275238815512489922879602379326590109181401199476164756632963238019768126788009423997704242246314085734004891021617197348630868273271374024389592274459156355083211189019201119473086268588269598591658836217535264639298189892752251778841671671956477496169374403157340330231848438677641625773344492216216371945639853349099504648831800592878062223637218012649258174850917224249729873702174892120003290497839709335487280142585492026904388500804550236326271038635199109240769015428994193994894756323621086090926349227353823626421516126251239717183533762124411684290546706939631048287966422825414652287416247283096552581345753276190394447394969341402442540987581552645171108816950699187633135584197583225734607755553597855247666030858537705715429501790597262526955919094594331525127408396408562609646943854317325026936172992296747314395729370924491526511755927468524097044333905300496231276330013819785437397900767623919626667473790748277651214786005669894728501297552203120503075522302286800504321796868470676020186234081926877451474328235703541066149996389204838708015335692185005345806126900460235860127505514353172348864157837808731450784432377109225097298832657697753915089846575416039774130705292376505687726038248261450062484080917935021549415602326654758410496918759593394428201719457050075437208890730258968486576535330320096867724787658645713527700258757375538762729021503197478426379091237583138986796483291522284099930597843412008533780574991291943062847329287530314402054658425621095080488591482641378952990213034018676303657380237527679290727275821778901247177812688660303002186160249349593240532153613710988448463327781014766390462861282265793111589466028970446914440704449952946159786269788499725438729132286026682933433841313248183339036541814841271776711883655820045499225254584717047053229445562510870737312543281807610109885178782994882781179447424258319062176285134735325358178039477975609895354250574071301972367023100645118965273014685179210479590756813336789954915163139633616454151654914010509555602281040216561233479823348517069975333024105842189480901630856371359635736995411426170576769283068733292755398042234945972726068001831080797429513472802081301898051132361177713014657582522737029091811621548406368295963291132303658380380270468583642403902326008943079839336825198743655935094627339103174635463652462848238443002215292930484896236844756711133715442562431163833841452295780323256514315475318103330867414506559568126843826393764311025852906383234084153974938751391895020409639335782673576386389675060764248699060411861884250198349093549112344820107455763683830737196312814421928460871915309733917916159845348882778852943803408453332925874593508814934137952801477652212287903485655155495873991357538877159642489221337702679997519397774022970452819674045399598401634875921903466869937036901239838752642415901818499272503685127291665735483834176836013380715891643442264873102085721385152188990243109576051163937645930660559261731353581129588429461440243759176705598433474261067039546415176998676452559137134691590822438859353034201731651340643024345111642605966898003149590965096821715733947901163274701637269195512959053624517393059076456185553199055079696193138626465323398187492891667006719536393069942196844569744869097429589199540599289273201285790495296658221976778099213150541189506923875460888698874643513685074968741819258877357579185592216715397198883895127734175151195902466472304515212183301444133872039124264449794349176551193152544620252378288787781556313365007502222419936882998939372812441854026811992182699837374522781319203269515716783785159575270498648043891311543323873175472777604023796723312345908552435535824746570987627565627508905514494728625374956073481917193036339603004834360544340501138493452289439875156593106292177347037263108989513661307593232506088383552367076565473149479245491581977710354695951472257994254319785608525321412658723478109411890429344155312580228415071095440464123467358274762426526112610829007774333515319264466084751073732417771107882894400518834801044562891374036960855431659856009041384958615888478218586692178509947813382509245592185723758430750156888133425044601544424473713430976531313956606347472491213465273994689110512918063293503369886545193558998939410143663528163009317929842132457001539847757667131244675433956700163341270481676378475192211907681048529614945657773031912805892089132349038594936669234565452350586457314461522524367904519298696192602212628062929283500524277157229737113946652029050448063659156853885086374414688347216879547438990734831241657353550902272147652011828813413401033893384710974214579364585035213209651506085348402859304287938377401229555119973858569721818887902855899002483594975373363567751492623659414224985991852663226997150526680932031613721247098893082404153191860005619133819544607968290356281572598661158408577879411336181912747717878852918458285535254368265246169325627719860111192532628446494018530248358324781925760871345987054836142265000725267417761224255855740784583578786581641715878206027641386762859131824801528535521240979278989178911065639935197018647941497927569989304268332114551945699488860061851283563581551702180217324886740131175967921280802572731695602706725537897750190804431410503582151380368460917280358103371392548820281351622839251825702251495161137606832951927449985285956435976951918143378480165429772999269473219191273391666443407728687315999023212307603662521817489268780643985012692202822735362480620161594507487070529410738290800560876333660182973341441744153796245891859863419075946735692244709178828313934130821592617613492031015260752290662631291718953289076794851991565032144159692856418514418504390329957141419073570572185005327124008088029878001410817810537107804211695445590403375213640177842158039788960717305457831772141825841673739148209196105340319126024197049793193325519507123760708667797765657221544946310097002026131484978728611062719155584167707419969860943037035763170345009593117580283241426495998386457846154693405967840439881542468194122117369803747720131973197554954645489627100884540013523674959349764247075359817602392279661005558631392899266554974686877772495850749405014822300551801416979890999988029771150091839522437184162716954357014866439690524898764541659217287723500996817688282230643118134585072407708942977337458266437568498995524020558417441297670083445011660535256163061543014844761618723955124714028961689226048526270892038952267022250236202509714045857848339942337281054611962675932898027431683294175604964777130701705083770114488587806631804028643241540216015505320430131217169116298170211408681074211996373392047772840048995853934628697801878194122065258964355817025828276756230032541118620215811322541983677433857843998097736998216221798653029276754591934323955180571372634763928733874145362143116783040155874118655447061291222610209664198101905149402446266743157896000410135453495482826301105913607044974170674566271651580094002175039299131783347875374830770652732330734376700664141990398278632907273535095165062810378827843117615079910169388456742531642570554531499524088724152293189097403063239579367589110488117666025299845209743410314332464827374037296799026554313900571107927489457207163247839540522283552070401610778085429294959711798427533073437766794361591322967850061319147011154800752470837732740143515059439540363038870484472807701730656308998875597330241837552357663925438074656688316046961010729771588553061206485684346181522445611967371643439176721344342320025580660793949476854908563275837926565196519560136406852172198131784115602149523527228147807453274651779545150431259822354127124692905002311089221516517674069684041911641480422377969864390187253639990269135735736992686897862312794579282847364220675688586014358175588838887306072944635389146976754391402040912702958336045431560511226592016420591659860587550234924413117521333830881889683032233148429037161968821420039726670869067228220576167835082427921715138050039437610852524872734860412932473148783994077068785117412711976005892904692594867148560989597420080896912778242029727361676105162209683993858809899157742223220644103049697775973474067013029714597864833275853489527557676945055194475028195875144429613846952073724257065301671900389057731850836434698677398520122387255470222118742711032088114373337358059403973788406361239003468150128446197293531187668430888090957667000403289041872178165344418566540720664576365310623804804207452842375190460686271452538794716288915050871285936025414854045468957203344730694783428252306623343979785069413041915932999493399768167403426023733629979889098222254252598061079177615382035475269356908937101943180546694635898890918905437115827012170527389676364793523173679199217747314856159946667707151012827275041572891065194964459300300691496874442630234831032606443948706856346965159944146917582413145317669941113132282741250104384774660410041843848575972740118886699398693253635207523290631266473790884668332913311134759351716456958676320003325279677455247606022525324994282957640522500226749688813972831833576257504101662772430326498465612592330355675308435215223564410883367696882539375453120267761502751820142715703487221057970516959974870125261580553608717429338649791838845399738640997087819646507677908731745082981931115099456611586834914113515584199538329317276882354275445578677600140698226365495073967412485469660763147674033117292758017325482912959873757588695813074805690334749668181515320172716147617496819404718936396603323861567687790207978093617712036472769824328185296875253712087959260789997514094309927825835584732330608559824991627728483402673175671041369820450533496117884149020116978094221996428804482578107681175621517789380918437505838680371151974232808507959728814577719199297441583682056351649241987912812766647564361856492196632964776969161563669719584098028883428794990769671795467228329139569730156148223079883508197697783972281343843629546786613272594066431188639457364907303083444887928074610287689344344194444506330169072958764637872822618153870016251154477750808693900799112020480102393864609211905879350406074591297417757492310959690801807062554978400724738774660604568425619414857931833620893346071110651621514423541780482516921084132990646069239924406296167645473407961407327189069150025491795317497730174528315159689125143022361183068760635068150307894934793762198006149928425171528731738182815823463551296271095385648435736611472027929954029628864301351709808877671719181130962176526630651955075051757142247819585388702249379896836382635018306920991557909275898319033618484017836498655716856154840267025545578272410966733639625041367592783885893105623409377108532613367924693607465094206815018568168697848485551618280641468874588817689728456672788718849501609139457027994579776960493210523217320716836583606858834661894754796801255042814660636765308282044488446326424333274828196795474819008108750313609017950087129860872539617934026748785036631198862897207757810019092039672983102441843988129621787064794767174306668543696896335093660878198862630397149432203040532766568668202491273930626329742466276130803061482178158070621444058802799971038816117003191715906654581601351025776363011275328811187655636591100292128416716357462379009471520865228052251773968550276438863864229499785977427751928131931416715382567923793439888532075801755425639756130776017597063950473758593713270725474625930882594884595694238764925869570550196108172961254535101472773099150732096687176885763551240278006752650026145453585906646531678418089045812275051540850637300274429104607712337093378471459197789206332454424492380987363667000805007630158088748635520787325993682800611658342747789172245869899828499378191550294241850850695587644698525508610123022127391062223354559302300220801016151771855725046696270047524145155110972380991552154339976700905556053475080373446538438789206717044957235809498885345569327435495706484547851769603589400487672617756420272598392978492872987916219846878407628259210021660091913527143533330748607931777872090592384528593110639862885099035006054365596220618570483503971984810882844745587939522019530593589026593179179228756206302167479298310658316525765599770093600561932808559830927423252128268476041421871747776154380978490204015762207988315056538023478846512481251512491365377664931580574131462314759932883349236335471899059643489911789441086689188483064860493528871921171043217024119355493925938330290022948990057782420034448728735821601639598059770298087683161827024398396412821862626084182102079215612985312270513647895312631760284338175976048047440224249032317925699072228168326073659221060354311540432322190442008434664328947057585282029631650012878751004425143422731069570906029556984961419690632767040682454762079494187238437587561971093017318037408209091492234901663843299716111033729377819291296517887791500087467239939291235387651381214668746041071143251495186895400210516519492932092221536296148234295132974100992306288068768497128009475769180453165144490007694992969869707305365891639381473609178043781614280570820362587019505301795828066228775621243777511780862589688513370587534722499794178060296082132631244855096719942653653460912124992910165121514897473656552405655142475273724790616340676823501482680197427228415735564693502311885367846119081820328558693596485696535010388589719590460206342657318349730471120570132260968737755537114884755718819422327800972656221611137878275207535196969398488089900096272856621934864893255399027058218127627733905966907107043445094365252146153299726070606295194170476266088885533648130747444000552704076931793699920174933557589819627286551817694614429046064959040813531196698143501953923561758150273875672984727568246269485495644333530856077056652679343910948303515108408962394811881016554300824546332193717460236997132268412199335685747186843079221668615554726038700374854927694216046226724518481600180683247436874399888126314129985716561390578530516293252288712257923526527615398549179261846364383938464934971001195881179633270265115182763457474779314816690538957369244644280546626773774614314475006101530502390116050502738568993285124840265075203827544748572332057781900235786372903535915364133555636014033046961134790960519943400633180347088266866241418707423758140451745591504184937962562922207191218426782099865516683912801792343453706736211474386822396708198462707659390247560377802642699094649875181201204190442664447417116081689427855122276736847522234818820425109162762000172870904670381140628582052907060391424822696177829292357075136419732483179911377400203462277104035457029839822036718805917233006814501648998406323233161191815385618669225155427014007437849121248602358509164110103906409272969289121534598384902597861092335945675890055314688288315026812464846609514171561100566004824330681782790700882122249624025711782720265906165354629208591570901733113370109426488582604524976715581492603223832494873966196215222738199505598824311959151080998192174628928592208208612393433665878001984422581206209386721657244228581486220299477537669800361992634067404814935507292277985558187022840498842248485621786630574451985983526056888633056789482015602061747223584814128659277676738839819857498534980246523780111808451447157903075861603165142204627634868444028531769734282711858733594676768838926890698060076979200384779266511374117816281615157802844291522489868853317685444013674147943995275414162623928373980609548545423704832999445636409542739148867890411893225255358747306835055410596157223232362850377930727102688774563664837646727451244281169562075463630529509106066856894049793300464709188565734722273522401633495001045877818617554608816071607035093224744399114537625651772954319240269969317132292552496245086689081524631726337533208276976660132154548721130892392000997576027843839203243302182290293228906326840466944968682202106629835690277168096085058090161792535373161710951022469557677504241858582462353030761034937476222006923571324191712039459597347118664179396012064326977197339093182246483112262371723327213036633067970609751790631651691142935405910224422018996287523816332277313341405987923424509677365686714385621735513756941123781731067867463651659604374004471275841181655130139727921155607043298717012224759875965501418536370714016597221260604002546877111899965345347590721409308798206783045690133300840876874800946949568404749261019209200186507074250558544680649037654533399429096753001200053445629274392465015403120871823854144403882636967615196888510549254394770586568437853381330823815884355717276088108667377653004761651285806982053770785559841997408708127276302721380180694436655425125008602870471390093389376169070225710671661447070063341264891297926910182274723721489764104015648118757570658059350998961585793446553493490924982213919268899665945492423907374427670995910932511216660534462248994386872116535715059821659415353141866738068258918847461712606626032240451275492669868506369086168963866501305947054536696120635463641025925116425161075619927193376477597373766075041297771412922781136550408076770616806924232390145923300142505486664878292148493071208611900416984060615135830489549467872091007059038305531291098050236054981591339102745149748662814375025614089366396247129575456248238156109506426726775867071294507184603900701823452078491817328469244739926755360733633480028227108915865369840630063375420935883446976864903550419128900557677786728364264530959130858378452932118447583134630267986613987118186932936763106302546595449812573763336953608394670544354527494591618745480214851531169858819152914458921441645219296477435340631737092115591604167490988190110840081741140700671462700295488047442916645041029101571149144379323954251606088316799908321474070337243588933716960839389696045326106153394469474461804001967084496466396360743891013984342563875304109255688737955746193858585575329346554125667801744328991645310103892589582346793813187806264358907668576894062581670928830561874623076062831994446771180320232769385181788236320833307461509486434474249517948458603494635356154886949758806544058480291379333127818022489695401504751424359224393805873455670604455736498493676474762907137257708415586680491124188109326137701370900167329762386838006501723751583477941347133937250095975566261261041301789657171550184233184949791737138854576256299049582143010745502654249750401678807035945274714781813207473934802245564880612334152536092719101318871982793383958065427773945509613770950474107018746736208250424189056964072869172235444316574521377323358471680542002373020279667508753964053925292638107242940751258671562785739286151955162238112886349523551641551623258422249882268448806230368847231823568962339380199698981337551677499098778422522789733696198235432412570846522866753987613808085486607299142109413447202542295769881633564390366030052294836981071587715411057004986370494600985433849625288172950651755261814518119220648005765407986982275993378384186059709460934256000548212781898325887955273433673696781291910598797800112466437154501034366434498549568202873684329426557962379053197342406809059352305654681401442653077190175605177843328665116167906314206500240036345349398210186171910694947390975368379895418287968569903196994917287312516229948267229197898310621987050470693139495949942193907954568182146579661977989728651503332354628834771302110459959879057499530659101950627703180193006397307211301996325403066661379950871591102614510452846369681554739303279386101662805989187553666063045427067346771910233928352721903909120891172779296432001693408964405650975943720605050050114439699392848684680018323673588774433629799245438151684204109336286044923040844460062811125977129460809491461615697569261832900510317367724283068668141818878664934407454957035309210322464627423695248530226834369500429769984171041874390412082877365069382462960416099051722215388994232942963095240520540218441183338208157469949848641503455269848600072377278050110938422142229957997803623721565718346057319930314267112819491185183393195058590693217299244061885744444754124132167971756654783894528839217065426751665826078134101528815409357021195937790200533320708128511545490188599012274275896516888691406429276109813427822560920231452535698423299099991799412292352947632141371818063531774982633587066145181831074767133526630311802546865369516025552057232580284839617978693458035676489767268763975607031216195382689311812182627021293921740152955296632323850516496796165419826038056272537305221223369576450910031929851849280252367091325493016124026487185661117835018480484393433227525360212225440262866706809186801646554909578996627440507779786467149368696959167307120999826980103592860309019871528074145950183520472171409452348040068276957588630988725912263879346545261650339961514082763903617984345290811490144627167339521996000243955001107714423377881792199849388835984379100583735042675675606458448383656083881506606256313793203771764957359931534771987567604116577283767586751582232666301378734480032903733304883823566738643233511005626530147777893604617425660306110136497051151535035105581308729145099188958927986543234977372395097738016183463733307688197309596895842593766286803001363931833072817642485261748425317158583973236980938859550198781818675750663150144344504452863301942347396040836165871345141731204957239388249867944949042367059428792676062360186733381045650020775089589183369762681884994605461836908077116309623694559240142446056023436014720222539902162313364131974208930217123306789099345038263956585416935968353703490324610390980971596304090893150785784202352288041315036136156809412740456285866534931523845223381720117290196450087750048069972389799117258764728993612734333295183113670352857870806269927314856644700562961587615237993383312539632094661692117193230650543940814879423336021590775996630963501720178643952884014705575779441265704136515630704535918581487390339685387450285725300713473930052290951580268470464197462088002814952290178499289282332722077620824224513390072967050402036931070476690695560849158681063697441805553143502817228852300694368028964667075258014518834568997935840546465672774014840143873201945456177649932897418116828766709069573560324944429943052249651524677542509419892607905811648199029025703952778948145536393596879638293752371312431081711868489785744219824619247972220269147975180854628014648292450503448931427939399611193839270273017580154581752586625528039300478225040552889441477006722806855827778074385142627387543577048577478241135258409011847106164501944644635585393960838330082344493073042134377569719044092124727865593909771626145234704130025180162008099807880507118941101470777968605598361401662449672965691890689897613105919783431454659313162599034001542715479962408220807932059815906995931826068431843048839286388492483914210770228167137706550959128025534541224700753578060840900046001721522616024344841176032939502571154205097071380046206911559209039632438682831084877085513709974947331691564991572621723326831073365551074711253758028517349889098537942798293431331238764564109151769585618452047432579288904916028738770698745308179982444837017172705141811933102958740693896206526572090789914238321743874987434730608053349947498225416782462968511748824203891284155763072684714837209892628829539937841412978062400313533060595577256459141692225959539674696900623442588286820507793766165639773192549932740165213326120477901870338639650417194537283556162130298830885369905968422254988575273070434783539637176905892709325254740136836117629202165706738285573544355193200098482755105197398668709462825674131140359853211171710549565463088726169361635216663801134365717794146570800959939500939676087145486611708179821618938114057880567440179485493609689033994666817746770593727599344532666792437973281109596892574626636635607129530848775026233024843749956820381821795794431831066444916960409953027583192734439259032589598059275789217541793721668147500935126672739678266599839328545570299081444311028475797183302299782661273741692793442340672846809965590650891013893049973582203519185899380242320347770721447493176420760674917869372980792326425966731643602690965189571684422696274121585891033124048081878098405582872812262570311805078910037577179568823544636725391522336985336237689072918749144783686602170066775713751417623052271615861021046693894306802638168434620308216629316914319889784860663394589547803948271699250395599026722685430241562990598439830135538355828554414180535521113829893943012102438071167791751716100171350723590484641177153960017972890411692984363437315864455043928981453737666655039252320140888364788240973477718045866897868928667627983676213130131822047526420614636848265235640133635398889144618241797684678305270115383883731909280482874264284922786110765674290279677118543548231312509133659259604685356165690693973926845952030451327882913403212945954309710036603806609445294299475818957656046719202274148189948750385083287801584805222915843411929246214058145490301828920814242731969811435418735388883884192103598737197323464880191141652743379696917089185724309117338748695191548149039212110712178071605337921250052807881591885636090632650807924721604863952354224508821979062046917678589768902538315203365671876106762237831412868588849902566611748962142231871749077916592619922350630835211664629447230906362046313246828757130817687587138851534425159045804337761088661568071749452592164452299457514975871388373924337310177965706385297281968398346347348296802726973126935762551582495811719374689395228698988498307282127812583303822512630416301903949070772892114743837546449727778830282811341256758274028900178861838957796044837791722887335096343612981143613631094705143324772574257387619539437662610599251397083018456805062283929606744089880158936690118387723258774375225198442506032652595857069697629091438623851433998414131096964662749043048092593123642490718012730697035756139413769888521913383222978132267495524256813783787244649825907458557063991889994875063291499928181925142795836686439735505630751435582852676753337080982072970666889080828323373410277591857113139525279751548959775923965263107165919714267265810069158199414809381055731612419365948449912603408184957919655069203809611089817973752358060958454470485296811614568104094572034076472749776764094017344056226089882574827837956964871807693449578643471164749827085523451810576684689005486280950501281972740170487078270511965569040320181399947365151516063954419685201250934221107668516877689956252408368114856785118564418251116876450122513618074761100615068744164871602809247544444467631978193351158276188119409940790549172766321710295094634060657166321005977895054174264915576338119468253712379061000873848397941325963264095240056594448702402026556038822500289102152607069254051348705118561980378119249609396242067659539244275365268522363282398158596810648291056230069219819001486839732713472403422432544005539691963354826416041560132896047900041430002600961188522083596296874561081749616603396454395285970930749234539172611161359464350028419815275254926949797207827491266735148086466965592994608483540909987043801939948739994641000758171804809466921766670673568635538934772974367018006467692663780685804531203661259803518114893624009731023330636022685707583175787273011946551112410713739598142021884840289274902282753390545008098708426595677002780937347614043061372937937166942960849450578037179666450030548059445533456888644693443609686169230705550681338618468013679945201079041836961601238145018930756769606018955101602962772525572517498666925708463358775956729934524362994569667429718649900652518544942385313371493558776739150543120361648354440994033488542238696552630588970515369413292791078885211182915929483541513786136369451645294713326794889598593070793727420914452311239630409257347983956967524997644842290009398426317851589972177494655481270300573855034544060378399006484174759329202788915153416078130611269520428639259651101239308447934718009028234455397580411086573135045236527014012225954040975766894904720623594954770663442989705336336936115750954148384611576030438376485463081038820628605419610034147426151680758006417094132576268363621556606554792601533797017081747371939165808125887893623945755649619872239129672374501696720556134261650047317526128948079920985808368501704174474836376326913222564694828192175081273128419087376612140678104407629244406283214711977652357828089422183414619647969358471370304330445904513231628173493603702987537361664054788524250465593724716370014090240064772775712742086009588978373697703763428204482234878015595256329995370398566362707910077464080916745358150532937735888054442413585450645616149706804886940700320249166216540215486669261526556694838873764527313497198189449494271315877398958139431653224004449810178879497843638449734810703680197432729254128698580924464126871755859772273490966428350654696794556471130592147966491954033466498432529713562373808361360587989762953972892896568933358506812538196854043964111804591162730174657256711519360013178378523299842853540421269231727847096980924795932335427849516261312890466109349284409824588926839561802819524989615516876346943778722549305557950262169552481318750106109206095066833047873315647928154606822388694956351617861731895045957470300383562620457239222933028657498665684456938842802487446541600988609890986810255990629758645574977531875114399314802817869903934707859004145070627900225417334687332529910005799261334113892506344332119696833554126129953378809296238817599596510751882519262437217064694333377087433201661059266216498976139713844544483451108132888438535666251919531241114940173869148458824766649420316673395624163439815447264418267105353086385293893549128017479054918824531844365743191628677287735705080432101837508942617084613334679371487344823079640066897790232593072787996681319101196439121832494464675201928531309373972029990417385902909681373808004800713124545164781838771123976104252577189433382757421229979944770398204303981890179167736590993801139039587527783720985547996680051478190156714944046589242036225806254550110483237834089818663519694009338264243013416628418764803582336608659983912900631216030874152945685875728180567674316736585913885488635949544251594171592295030916802681785003260251679546154092146409636397189417567233481140110215872334842449981557288768863478801091691815550426323030168107055957170088382536079519326117301595274186279121560797832261307909661434396046848554165603035704952636894475244755785116255520528721256006727759801644406701016091408786199782821406265814260810590902281455645514182218865287997366430938910478891019760818414217910238041314772040734229304370553181115652055551059676477345863117926448195142756810299942460827288553829230684605697770739393210348498047235208126792811991341390795324909091896804431812778805450410056289013242816468017627133211287207679851552811584183719032207960792773896511096094184771681259441400342201400873855554477787018368840879788609704281388650847885712211676632363909896790733770065505164389860948316268051969840769231879891711853838521873755863629780520993413470538245602921281921556559292682406780675002457801249998832269039650727140160225588092081342443579313842286634377370435251578309927536262446037783844885634390239309064991570031302458390299406356840290682656878888660905245921693816505491493358025603421610423793637826987323714123831056910408691597506333032388561837789274064352507948355789031603709171483367071002945932681196379432395405160197790938265202363705498021542952907157400982760027577101942977687874283424375739375413001090083266238636179812210738447883112709134247869033817308865512875743486006340597007045057746403124753551173361997772144590559083122620188420930353581387910775492058155558237984992928730369748808673197483182881395652298385723907971360843027452307714162136262078678932524312272573693575487054668359778389371036270064747043271989346698801361169528199016369435679263053490855112414524237615901342276010878350651740460373385606640355803314215273943634857591782459518222976115935338080169419303351586875301854988228117557523937313884649860470810895007717554945306550763272532440710831643743146351744998592262223376514358978104695382577822901463628125288506616597403018659685067353371855927635783881984636326751582442496718758321079779246338027409417206622482500878144199789019626540274175971451239826393318927065111170244416115282348147999861106024479746846481235387250301968556995712514816705416215569194113110035456125764852619608320748630148822323507019720859543825524196053279073738658247631489361013235043896584921217545130075917805341629131001579224685875925944177341488972338554047921339262929768192527846434746124625850281742818616359479056690270232004154584201195713007399931061451417122637040927068498751698396759833301264800221490699793842321795259172463489099296479581747107635495131348412023485397953210218939609987455112191622721278929446462303692144817434419266684540327541548055220303543411069900528207827014694428557009417924404538358529442550422666216267595119178607767052812503998904745719712370776468162849590768092718248807793696308103690828017532309552332044366373426027395762633375445067387416885593648144892105730111422723544172242720651333784078843423187390072778567052619373491125405564436725640499268452697126661484145585627380709065621088484120286322295093889402777351405395830962210572023124398898817275567644194762810221817456129157935463204844551196424465203529748554874913656741380169646377675555598553575252967042865923887123294470912000402304426573299700902537142909495004370888827103427144838523037043602075231121876400510018577620756965583805828958525885884753430821148658302503713546146024332974767794655272647519229777259202748727563783221203019434444558063303200838383624853174589346143442301444314137731492029741553259940251579838703143863595097315853462772680840367722296351690504725957978635203154617277872406131227563070378597662999956073028874186500600643345558040113703448361429745855633830265334259177697041594945809558822429263676429929055127221909663042249595495495043918906079174757358609000384179689676484031650787187640983821600888800818145955810090188694042907923521867452683232300806765890905355082660652589905844346528871246913653120249385287479079458193531997299969300470077350899889485119522550932093697637854310685360645076138196295938065730689766657330832709878790499532839006341739182007205898141516553449727245667214727807397966685168086854786451840578775320738165093224827834747034035176747943822985295985836766008920056023947782927556516961876863606562675483965900828572847768482826491941794287624110815140171901968557374012618284182555800384399559748784753687007286431253214871631078502859221365875235068184203773734838829390211972881098426038327563347709311090337506912820384453156629985974206725525338569147194873692438420037910696357567502601669731469911423389677496023627577694685514587682816065105136329478857866941126998543989163080941778297071374711624084808755062251636190485053008038857992917516388735394836379564876577290909553684703280014778486835994773443591808090013804022774171070844350340584717518580989067029304933702305780590783557699474689985346292374295089586430785492130584694957401762425558235394151677360970966826572259371949166037864679479256012892127542671661786974395035752271997748729164239044479623424382430140764377997057003089902603376282515775692663724309406361098532260263179520314843236404590831399109259961136308425044959002353620022357109997557225739728888162580553244756276765019476399395247467592019891565040236238181349422872308218609416760413157089942338592812407204857568658765037789900034991561266109135109898384508210403336766920476472723068646235746070092027495553398688359625130804158659330378501789392761432777848023096959112364979174962044186455772459549745039917867962664569358937647904196576738658247420376402215977882879739831179541347992595108068340641585493495514972564500090718037726952497786075099171086480210535497451723030879091671212672350986532465169313344603901264647874611427858601389684381129194279225415142189812153288215194346628447041661627413976724212121042104713854905374864794794072377342250679560734634397719650404727075047026906934862115101580641060496290193318573325270931749342014203019657636898127523137725533997540338288196014799098620422021102224024214845171391686191589696800438762832500158739123399864333412077403873295258984315053265343596523867899869500481250582705652964288182914270242135983455039968512909025575251731450007673028893546629195655200920580562705367896222574285561712837058705488916000059735999959160814967762386074543625397775604780699845283036458853518489716801589214651422392370439932276164745378112633026786617493244428636216716227642257924179173023937285180781944783005263934033590618299657562274816746084911459436569384059482132854785120335548050634386306726957343327836926154704039120873267145429939749597625634391639631902577730552018875866574347443892495256458187705434859692048292876801381277334925124291017120991844255638822279659015345700135198745728996333062611885452052040753092647231071396118341517896119308069169968764262427133106072086282038910468622452979616753586753456822293286064049091907500592252979183623646913344540715854929429969339735027115859605642485982042527876033064403635777184970583424666282664908843206256820241239210254489908451362019744707461989337153076329268621087410434408082304517201188185490767827618978025298005319580840812590667668203449824157358890263086013477325898805156605696774269611722845615827325219665937389949106098845197298966755607164446611032889637116731413011412367736782470840609441833994460264880424133822087425041978581056753782815942891285177935531127778229049374507562235903112846265547210772748378878799929242267288780949184690673173503942484761968270760577674456356597945199332979963249135082581055924582939146047386134990101955424941665155020732033076980511574471472700557772983123164776215411482217630336652676493510531954522910886815204115170919192495122106815623206722397437199363985227062520480277556839738206054544719596933008971627563176828397303023189448043909517595887980420600971260924385209093311251919332562533758353330199423901518975656943467137548195369221970991059803799509144313362294015569583500735338920180172625549958840367929839863737860585302469476271089179267356557039892052398018471207285513017197558240852613790036388059673324777105796338976527899244356038849557461835083574846956212294579009364367564682642974020382378070465236884645842332122442347434475806353978069186585685952397147701315865385244758486141993914012503142899694762734882968786431962253530810897171884404975853783076437375341898753472150695962292985801762457801479042228666999046402937338694524219189390375734758494597023477404892083548884407594835647410530437689236537400485508487464454710962762196381469299062358840711089837689698808850392181853888899999800338590266192541144640316827855716016486126568370837717180942618254272151202743298220003857814879059374067527295756235482022701352439441558535291881821911310214419603654077963935053839471218172495928394074947674698380590947801668566904360905516141660892405991445808212388172667125433759251799449838151393390136156792883004810564549191816700203082785238681610339420233681400784471533156304056442357548576212256514440295524503060232707148730889903657516215236642496366550965900242919369038403043307642300255787384420258812333219602707439774690160332938266018303017750597663675076300442172747999390619909519248842501135874191489490643167364872069409968259318053437221923087960099642410209870227023531580119017668063126493898683116023227276771471078000987790067315943842242958079874689477429727252298210862357333961377535481537558656323258811019466482859646515066832004078265064427528222987216376760869110735837501942341316718845309237815681953715385451883081333581672731241160214757964992236426615587347403434785829919538605297494629628140276907576002782935352736562393311962328697774698596771892078914748149370638543388395221839316613717205737994375834370956722292054986502624540715917994346565063807050327247862148760967282058282326636373898197007464089562955058363062936816065277958244152383288910030534300899188231914478406874123641302230385484240439541955929920093719859860387826088610897075982555215896683930122422674378591224253445128068569864793976174326972986134439462060180318744829703378750801963228346628726883540934627171808067183524533297061747734701227320354340194877759257375402287590812353786533033573152889634332498627945949158103271540114114715107653564547959521196809610730420603354903954704512725305461052171027104479870056737818617994618202370540349656293188183566451614577192205216384500170872060439158939890952386367002115319337370705417454704786586718225873125786826153758644664798998274604058857527328403419873040286371337357380986437635133911394639914819466073278772424357913632618655875617359241641951559513241583273589557884779299682897420533238888481867369529366044565840565800264226270607253854434571874235252749767394844325020326186613440380967471001570718112586012003121035093112671901825093422789204493076745182753375176101335252740084852349432110878496350560427681092864593313907979527989289013692642753502933917818020478973573204468875483870657705198278502635241252998208174193163055308292623944947094099533949879475426472464376125650114808870437930197242927840528994002826128071878185843972652959792645441546894700405197699781500873378096088427453521080300373900336292910015858764349679415160404829484787317499156663060880057039149792113955398831343694418615782629183228107614161516139764986977715409038725153896078478206106666973091307474001750490354777388087223562305694220016235259952489260108705276283832138577358300810498317000538192646981425566872423544523889391299576006110464395652703585981088083717549901071477389655986509571863305337673033860530516317165143298685742558017293484398619822478168152025301419478001819279903279574714958463928501032333968933474995260426650833154459494166402432352103385512895675299037571294949839457422250578546473148811125116896263418359614133990590058586597892765210530293671867927950972065938811728137850008713247309261905808943157335866792286084966620406721484547663882752027557659910405829938574022365907326675016477262588741452242535523458242978853800971878311415726037804539666209861400999517224853197239352692844233054236069929555067033480157307631746283952964223597585733005472969209332247616999557655425897134674917961304360041105819640591694243574415388864144123602696284311069904340781110780845022362552545702172880751231831002715527821663291506818820265854526568856972730266289126777012077785354821504952160673186817574619020589870887443506906334361626895456982888711005632090673684981050768120016634157038983454119995883420500769258226140590381384574572997184255448878944592020100412808121169940382478620587240926743549388192672021100930275100754403429305177481790929637402974759545818514872516341776976111699902436538962042463818122734970894318566971186689110199306896310101483243917870532575736124354671178394059275843755073409775442670495690142764232241464307957574915512900629771261310887596203703030492864164934855754189601738814838651164420495605302032680622395306389244315224741406035847102775134394438762018887185907071950382438547902453921875709303178673355668417067641098874304546337301685066270929888736743844963473395266569464458866492457990198709671942739399199764078633025328537171583725072302287319800825074101597609102154072426752727119632507396660031694612568821922613627760077133567601645316480613192078291044651182429820664736349642708819237406476038581968018492581679666265644908930834727897764060831678142900936357987520711320736097739600153130950117822635658699105231577032289507519621542761516158077631531965065297236699478098708318054240150988356890452181274538198801485349298015426930832528052496767003199976006466197931191745182486961836801174749434023852174188695894900620500794826386908800397896696395017495004770368340836381167311998741216581591015709701387126776056765148341299261295076684530162975531679095294753134675641365252743868610540545681515908825898684687169592062734620838058777937621642225506516312094390325771403610648357209057749087604960210926409748712745929992550272543465894976577997408621201726941256658920709431612355871561728950367604693798206991505296937282759130063928986564295180550060607081536606295230243071666609397682811439350975275662563764123277532158064693449077476481334821167864796047317649397410567152308614131462643048977045988875751696355729297677855118638077383796427441888465271983009666644270396952776951135838174798731182379699627561574687323359127411853686667387227269126469340462826012747301681393267280244176944780170197245330888782370395136494984145744856005650263955853269224955447781489781284254008585985033623860619040984123323946680896606248438572270847487209288920632902760085233008091914310818319531934103377015334964850138069574129373393618734656646252403545459857608000892179254028464883553748158410383073415274791866100859366216432165702880415247100272351525031480545203712413314235371399619632144918315130628842023391334871289100859244492735794111752642652401736378493012173837507992222605600419034200768699985299008955435078220466375910981325227869706299238111530179755567243681938241166456541312655932606750403958165181062073187891906592072402547912980001775258717589253487742261288745897696067752143525869380041583558977340088804696199770316284932296413779199099069605580337208694425799415791363844571665916878207232489385922766154189050224246586130882932608926416528363617131708987517023001981034215602677455091099953333450947159206404059469507363416311213558809130591865220446915649351503006142258431737235157390306171068539559310023888425533310026473436326445999258196223104500275856732241604247075268946106460762101604020380668721682697872260858138672031288877441807962763755791675915675596002314358662422549085671037361811147639752709100996610401940675365947080147590283909494354718836833429881594438529675230058265039601156764021150426346300435902676539787611865535478132520516079033778359169964476773913118188472056999615115485583229620197182221109359324192967383472438341544546000666756888543472291882742920459090106161618582327283916025857483543955567972060459051059683245198348889256769870159929078298121519870554633659714530826446638037696537791959747824837089873771973352450456913756894231575106738484553105822319223677811702355761653261760672880319179605390352606296030125139583812514984616609612292886379080677459586078519922498183944961258709573216485355932040866380610570601684321837651298518350119686596571778857031507981787330813767999007458655538357300585782034502350113505474367875987375125850444030591488866564890999843777465081512742471365369947620540614641983903626555594087963586834281094768162785468507398085604096644684406237779060855213575583533640001649935073284421701124807861403690295232875077773444267420342803002185125000050803914548194945315408422143264769962650287641956788840144968902782943676847939247541257497589418848206627754228454560776933336637740815062189958467821900030448311240711638592361137715977611603885860944600442538912309155046792215345280347099259686053062559407400491059464661018134435422162800422466191480163848337476735444942050945043943900707767866379475698571590704007592219635526747256927683667492670811605941973764310790720594517211160847798051362220255562116538449434755892369786307190167101278840105765481076045406333140509651267953714145882699470514800857211262041666663826303605842879646014008184238531180287602000667651653093590721541992441782874958437594672638758798470996103388664767821437285990333263680842631502553656673072493821674615279848922637575592918215624822223570658192943207190396643847520590358315322398853386932087846381580041388673616312491186403725865252626132843276247393151064399975054460217259417845992083368479005287922134771562924420506169439224210204422081217289189414901137821685887194100477710665776739864219229125582432508236196643034807215770316952692966040665698520270831852193217478120972195997785663050057710423600045183744129486683433620420294291295698985472986673023315386934273542896429995577110281746424196398984717424567923223890772666718032661599512108011106812744468509082511695836067010958505534625456766325350812721426867951629699262975648589869516313711654418344188060519557339165855663975500804724946149664113294937979452995098549836990164690940867584101445309729957707754335472934879695499324345151865195748372981017817563493494778910228570265971638096605655916473257878139985533376980708922039765547024867306981281057780025864356873393383120969927550121208618782142919871383282491606107464805821667539401536517176665369015593684357782933223665285277479527291683115062827068112174690254959389493600709916438251670342321772664873325619874792928456566943671963306940060755636567102634463607071057951799593200676289754632431723137953750048170064576352517815362710071356203674667360678201641783455395888322651657095013111582443854727825447729520788392203059942474491068160344415173124872694776439890160447734579698202915317515779953871646028892876634093498218859721082466427821806356713010018618997750976672473400526216632809313876839689138157013746552573049159728148246428802400710277327551000362743433025278273667658483714277694914577457380923315429326121851421676919761430924861450071496852696731407150328545304210372523925505562546920951062476226969204610886193529102908158996461184809438332176068561354377530654927568554173072690523564952479221291200092040669396897581906876382442136730276462663139331866218147004419245447762532128541443898356346977925277358115910086962654473811396812390865165161951373564013158095061610965975771609800349993770077257930200140078786649972308243621218713178168371027504953248330953473700143304145336143362659537504990272241435097000892758522568111935682981114188094104866804649451985373095190885441131040942385940636294451117318056060600548269467387611357999476698389624318093418259937811056825972729941136040950709501554089842392581663229335533402374729687002245100978462598914033518804576440886916020995731235341301869616727802708209643426084700242393052398936859498851277185642504347356723914329299028340314053137531205273262092873845114848912729461788618210978591124871071951063395713377280826550501286614838149021299086202195917589422435058089334019462810713642401754845426375912413793984957959321130980738573674150378789482252470879454356060383572867691268156304619845280798434981017437527784145988920585429281847760800602706276609434326756093244501352090418229075328282369889816660632372729636952285359861419352033828440684477268672367318475858778757426270981173691589346466688126300362054332255631948675303253817063317302001615040714721361444681401030945996355869993675916296061767260360596807323215174770338677394694802782500828029880615413138004297388945747196911692438587175507455485529190378416058804347512907332646991716328573173907635836302448473364174647352668203865306457369552832237367976128217387783442508154226225389413227926914625974839232183222945583964083785907025249906252067066472153448325262231281092503906535559289217327777453811973533660301689068545353625553280856484983129077069290687368261374700326102106208439112705143220609788685386641152179497167160677505661928579661993186256048562360596968191706220199574736191708239098011544184235899262110276922521328024093113245976086446904930653577373101829593697425668836368131515565774954921285638057631180575396515257235083311570133790837390940352353425775009243640141735034282375358664191357595824954008470339844526280409791634124092809427833300594801331914670534710561691624095498653606292339415189120110498591046830878599900408110030775546925882608892448626627441633840919111437554500482143860185698563134062524858872340880507425871187561189993419064768673232699237473733104367546864432628455368249794842288810002762660499532555860449200752948728253789822399141767549675215127590261064237531762855337686362048068199755704876632085651967876494867482124046531775456968219562723973031790799153717365008567362217303188185728854427771534595793022777037605136799036935874599817995143166804852987982762184218041101273571455377374433684954162315109407087321945457355343361189449237109705112487725283241753477460180891530106390955657199759441299611982955015298403512447472706027699707837129795725796510993115569162172432664842572749963352851695843288083558298145408472109706785590052072312198962769411228190983066553247277108920233022515992590814358614304389970428137241086700238085057995918858566751151477363993756862191906859632575785388484528332771879299059376354244260832889075033244516663052461181691495415097065889469712735226532467480636351426701850986124484081587896853783904083586142962494575163487382173073805364286052906930628319773858766587270637487476616850899954545944380537946675327349261364906802408726161066230930743291258654686787956220196085250568369762512941944448099797786015535762778861559736012671832949229264221676373001556624259428737331353707387031890875146580977935711268062719976735376669650325090957538192997807927817983484027022789781453975869950988942739679264622900085180157139627885360881353308880964518219899332668109695244512129187953285694452127372713332143856889462732839553821292341629416690792992323615588171535246162087525609987067640808932044703601532934478781412531255133683504014112897664607626783254926641361569970172496244413907409682792205602233671461123767912589455288083125619878723128064406674290901371296364457722441269003063873323013477466623530186840642996739293768269751112632351386458221169540035903356325522827737587313130496450382863120019195383134004852528591014198879719635229371311464562525451887002589610230435327378899387356189993274111216630832050304189317539817179884913284828305605140656300359246870310498055458026846007911548871597483635771670349065847964324591905730004671881300915568280415647770252184080810358150745310030235792850412523057184846811355546968391384046341084975051083733250037000195823314237411327988180535276344242283051313413858690268106249668144744268656399148667760897870030935643305707754003094119405452671487768876646757734660121791839390548066122688203177707698961069007931898367391323186157284993326479982128889449965202040038396854241126834996482033192321935257845592657840479134444086848674397917747447420884684204479772743993081697230913468449867344563278576288550222537062844085559654864888094018564282629123026642666740966148304205237887607564491732414514798203596253121987931416230782361059775955046599827753832560510460037150388017198902625269666897025240981823686910179848235354394091858091811610653817063020479712054755977333037049503558092058444987236805400747174144665338891576058205533459561089273088679184064342017749345958941217883335059892401316702540072726031824680657843593648837120732170498952583198900604837009781788214522247124060056041237417111408131629787800132254275322446267702544833184842042667362766705015829593586544992664177716406875727630446168163924965860397534751004204873225395782179128549311473055744401815347465503740355989055297876238169173028328317893688421743951427824649318020711802650494494923701832611458906747291080737723343159677506405747236563320322993272713512310826782147475759222589791168317632364975890090177010728968176229363002869181393822078715927621100935448075774776730978988772700587145559505989238560022560479602171220438357244268131595172698404858044083180535793667964036772521750076015935372645206876924083001116644639621598061610269632154796896431579422478532048696449394296809787963028317298831318962750442475458596053464867409078412483675964845525559960443985442577890696303375585960125308518665496432269504168808852621713126109531519782269618232389203577152408825128176422337094755580003569542224825285336653263882989024510837870294762915746002164359791381989969170105352370878488705508437402158403392096894857822206816545248714437831428077744572789608808624516400449934380130280949927200484155221202773900719167584964483539470722272188551588004101027364424159900558642705759737929469568274660825989656941108325273549316576904151953144328254084882317863410885670543761615033661379558347854187238666457665069453777997615689962420792088887373128708088478697011655859953842949255252531844325766215774726616380219656847425618798553617311996854341193050698332728453589654359978742792106896002491754182271211130767346461558374668426079927428603645891346464467265102849864032524127963524155126673329905898332894156686421547214489820766098758168652967122721148507167224313681597728994342477671886919690072670218188886210328612021078671091347380812829297486308693126621600735637182485974954779363752477452273208524162667020285516847365694748366486701805591713466915846119687172078645648634485241918586615317266619502626502000794134081481141124086004820921409228476915124838430598269699947695902426214000340313909613929600054176276076728411255140328474279874742551402897827812623133173660050167052597710939033835573638938754619837987063918994429388149919512431954231074955541414312642627744873459334224341938279200619348796462198468891365207780875191364997078854264508204100512258525236962853039812513920992599590855626867540649109453451060968505350228669547238097505300728989875509106039053098106886576773095012951010228095103147706281371640179238790401052306038608853447199066577122080565024000635104167411030529826395918833140394227253961604891288794292071584456343576843367418939846228992981952919057953578180281709860084642088084716797823514494599699290197805339879057390990892844529268772101114767366522451647356256222095774859621923661699205007337173945274420510472196994117757325174010856683641931238863420982242932006440200128193566101447186614819520902632635144572158635798992839991907168865812784832518820550634889512044489743664913044086573385829877304778397718065146540404760292051524347453047477060554867875524941779267257846922114957903872900351240406837345675629660648413714672077503036592362468827857100512212427791378916413499561169269979199595690051101930303813157674297500655692533515045761245563106519945509725930642821099164745897078285856276638542428565279935091620960144737429629667580978190868858992508211466814825817919903118182159821571054305891016296487405064147811230276920485198318084826467939829957825037938443745430852014183002484314318722928657642249305704801027422753807202867983605823935440030714427230051393902161804149275178300874714152015361565412889197255675914056192934278563279156496709232131802806467416180754538994292125271659915331697866907810798280199358752950818600038852200420394502193254217700738634528313518409482681191252869213500744154259882159296318617789818274196758013758237893619452526721011835598152461016963671222012122697813260399263271216214745535138715387249479317406405756273637782616698455033865860726862849891305018886417114971508454847582267779044955587642861912771596433343491467031110640064758524834774073945283248953321063360849935764015000519432314883553495256590166864546267354253820100079804421177636918769316790775528428016594836448356892079966655328543158871654518401070503979536858590195303171259605321277774074865490697350332108511162732528410864016952570355662402006138592800112544180576543079018205353456663691919913045560674519447350996370656337825392727459659411280957135140042660359500225331707253690992111480035695898308505791584153275317657435380513205193352375241464027572237150206613913490464548808215023906736997003253003286609237152976430906406648118543408165260219751234349496426988173261917973292597166659637511310967266151003787674144126899184283428726055136803906304446095088313279830446478744172734500335646180970718882716789138471434865580852696912751244452294634863755753619901516971587231452940664095700765448262133140365342881446723914188973840460557885637207954556069247028364312929261386264177662864813580319635502240603111784766460540834038540881941457207885394541354252606750235413785951810931337819479376025951040603415830853916938254269961369700986425212502846039736461664181619753422193084772628458019985478825345254581677869537385985804565439174557130295216481855393549212100639697574238642922494481269908584286438957207478781062725753888711154037432136471358225854780018547085902293524347203542259795154366902919726389858240183053778476361826225799548769651814630613841698821178286931104790294536787445778873760449128655657059733817247110991209405064005906718997674465228713033865080686928427794333813090368239820038335643604778538672637190412031022845677917827460504040434199777511068336729530895554985276194823588950426730708990659107173964757092031382755618196453750369851536453275134080473883672765667243514585223599968925240117447631367448690287646336085472999460533922172294255111354737650399407424998555132413826552446895190529704365861776679737965122309931302943204307293271686048163574607602151779751458144105355392835339389371428838058256307554261185211518726353248670767096067531126262286583729005472364453695827041666755540604931667200418002609769402117493859910740608324591789412246927745424133002007986245630495996714325525992713989118350952133031290979633757061725289257108228513871565176892466171967989984742266573250813971313835321835935442000451142485468600985852017984591908399743924629868847814990979895346361382633492940967851237462651943199124958239304304534089305594481254700281478728691677499888914015047342397081349317881308379523524799068018883534380171673670542674348030990962531337137157200204699351466685908621364524223348209499773110756497502437789046730319791848101758942902390400707694271311207203595974349892859758280080780805559916827970940793739631935574543616054368810007738085864072731607737003823700097639524023379549194188997784747517304482736950255655036690764135184920202318252719250218476889246991445253233722526077424731990242804380622678488236052944222071567631279262932319642160924847721901449287709410342641033032184167038441805931057067753233947799972170749146950571598526102313564406433774610106180806053336141430075009327417067988835237515277800278315506000001622101224178649527886600307746110953945130797649618378542952190084126316283915944924092946683076933005932213373862010278848550195686376157331666704687819038671607233805252769704067306191768989760352729367580358423424506936457405007201008345673709385048606027736716757471434995893160165847470216932953782567125055179982266835656428568045450556419603681240623788882395445955926757581336857129739185717509264279470978362007394530585427570268710299421114170561867041896451300880568380307281381519959861921226798445473020131086281384722568414840735101161819905626710474358399375470047896154493099495218128378499329829958839026397484656944699633752899142827193108624322949124703225936466181831805103119599760854638838048199755889764406045403817264923831992268417133810188170702284835975515488308995454844600300747457048022230811328337792206450677876317754392066783171907739448022074546243221018444947232053693666473972838237112110994470617400544584511619618049490544973948281721231918812022653149869917072077089899091371305507432389550015401395389356534189341282895155226842210564193779023373373743334837140745742445037562518383553365599289206573482389523365188551094358913993205833672384571407280328880253234840954488124477523393160252706179686136271236656183936889484017296544305116937286962223938579972546724012656481011093449047312627210874982263281741798391042425977527361922453182692349473513930497630649324996951059516258351353021342433216246541909889472876477494070515557718851161300568822862429047117677195445362392424052730644297165230398016014926520432532655732082140593571977963375751653000511134921646484035443044343009098592311117793659271782704670249934029921889241822670020394743233506253815762288276826397409856331218249725795726494573153684420535961105054719961696101058916740617959363387942960015116499919971118738436595685425517358831472462226410258098728313395960604222385481601219228018552565058741360999547933080986276312624090971183959859038731577141901926254210170059765311797040557726290855787800946709773125095937565833971357712652034245938803484243033085360638346953018976506606608457919424935390600091724162227807184083446541229955941672974810136701282016874881883915263787968787791770337395548752256180829546574968613155609040429437087951123279925493531874185321354386565275265836395872218545507034107996559002645798570882978229188493432523053369049916647875117223653148980613928998775237858175216441109753982026088629806030032520736620564592287593171304899540612375012555010918999687052794668392767949983119381238318352139825648906394939174929767193695335669834657765478954686865419301532396638607721569220340490219219235892123140923554657630823385482474739990637414150561103124803868527769483605459307675593442577435164113645100241207952908905636215017722858598550582353359729898584959050710397680413689517383632860762105675834148009190532685455327176982824433617810430630799083906714382873819456263158310523720919775595066738167022209992574126553067172970159230027756275085788875285993694984651506010287525460369183364898960114642618229797347241586834983593850187829252900441282764204022926074796151766745106692959455661203972206244071383161970155100438258857507442637010294309419741759809223584068708051909140564851414127414096401134447856118005293907802794389813264406292325734494194622369966526756981628504064161347455305544544438519420183268241537778596829192877339628688276586937654583275257061321369231225973182105986162548665348616280701290575262483867516046373616910494939745374349925768604349529622310707465131643514431827440620364957503271751569091346134885570970515836882811073631918661203205757143610359175427073038564507174481370417570133428254157522071495080090373096206065420692867281345225654911343194276582010625514630743941090625842610969714878716274588757284970398678806422837351646545877589209266034517242314194874084578263771137380864083177551374032371944854664898901984366228599143343324605163894061705353058353423040057039278776312333405549723421744964278488904645018760321356433663102213519946630855865955714829515028356823337336487138912640904073119462948486882502430280946200886087463221618627496455285370345522518697200648605089050581730005059432664365756335827349756279459447829292165383295248833138068565661609749195631078777632643540492955013896821153735255950052816759224453835939064717890048990166792996284415362958929753963643292314265058358285438593137973333886479188295838153729288993197636909835448212955956255536243957656135066208531183532211215301208704424535592151008642175651064876498421753611241546357660778173147033431179019219215741205591292859442475295470514008179169804028698730454068620903951210037680438423929692566451474795155775605955535152530005167841435021245064239942106384876627276931233985841613302439635078796275225465356756194110259539711919135308722532374011851023768511900599531131371733638230128720710295636768380058396530728561571446723142056640295618237611138045658596263245628672393700627262256076651591600021201336562978410684667148112819187173578882832642452604859023008773075530415483072191503704285660589561198647276781486394840141221159840993620405133126902105158413776590435583116935663139901470976412508542982540591717463009504519395214116372214317303505837728855447878475472574453014297234593963469897046354082303454800347062466909398752306899887848916839662623000416283396109709208304130370560543799471865047682364085485414319843345051434708597856219674848514456575422698376775221425917869378172894579214562440980369731956662612725618025869355711882814395536514855452217881429634305967029826205781302754288560822116623687242696272139127122730339077627589437584864711077568373685897957459967128303679962322694687710699854873741773236791316092790983149318448313771899076519789527824544656984095997557022768312168921171868639805810340800386265486414726479924388754459112743143040889372080614487643194123224623521881240794006119202946246892950669934409848213334664145747954281944374455556129137469208552260525107112147412783902508944487155211952882077362652322946752253585332639717472976590938318438896739032228474140625692915987719457208301749019663629796091940768834884772065301020111154131430734114230305723856909337965101821947489852957236269423071648908414489130531870956500602956504227749835913050423177800527068269699393822296465203059301834185796184738083408855858964398200448855358204519090517585164597846703919097885367050672094818349353361070855848373985876118292900791559449881178044843667095025833429150020624012895632290528734389741421279702183373180187899526376802781063735176456857075726628074532497558193952741107317473454376556721559421591344250144972257580615077320511110278172742936278045486214201090380815970183168360234158904077826697336585769417826444742456055488669217841601813379362038166914630064180445396763277504111228951329553727294097517297440202413951453745672940570559049066570688158090853564009106086916979661060412568357147696667478488799982077604833081685343979123602141531056243763974475684715520816857593561390434494664282333448556315992821483258082707694283705341318010434609751367437050978388488664358281457760971664610058365799680389782675351014940911411420347322323567713619969843106979249698655360629409655795899664115949047575776638853126552147752375863497129130871377995623616955312071020191393509833102113989171257885445224947244403778929420778451397261131992285730191208886814741021211739463524814217435063004037112277839682296115118275169268455329835925905823187810155469506996941796131114043134525520466553044947544284384428970678981906082478408792697474482129866285128312646907639741627046463424194090603266065566627895907872095924839135972402978534126581747203530880031147608815648909685517514643548781984526798124156074038833633542286781445710428491411718298406386170658976739573411835526059959426821086079480625545039609118084285043425573464142494238340104226196841281752917871467046210137924942757661254208238536433605235825283591587658449629238354440761648002485857673740692576691506146184181450563164915051876586587478420655583975136780893226451950282652409023970171918989400395198264395432070420269041833019704319883516625498761820890502409419161767877571613977113826923141629864118024651256276515651408559338919970718838104789351795944066764296080649859152514549769925720452734165491800505386023210856372715072996590279126002031900476702880107124093493020996818502758544474861322127985027238235091702036405249801644539558294313367886301484196531888793677410574045575924818906898807384274056256832556593842546600678137340205590099194530968350197128451812117832746197547271948233367474604499254988931084777148252967794192520503276821013993615640094573517024730548848420176218106196262848228025833341920149700880766861979551649526385567497318307637287018040462217295483992538418708504134488132041981481385772160343906562471003947545076827897399566191990720841595255989679224889716580271313479362094490404336103949228385372979092942754606907710889197186905411131251327567237492579991567544900551634103039188088718037994181825381395796860796420567168423424726736774698980397605954257917005493564641588375796516274180459422603882204942111343630749399472444072081713288679396771452522237426131619539515123130117915648501703159544993708004755892292454804218687815531641396265037214442123063699774296979677072865192806082078465083303944245760353089743172070985964586912333741135517832726189466208614136266604280839248106525184460351235229788279536776915750738279319703475434996168169888489890255434934944642095273053905998841533831301206033145383658026610401056420105264602738422499573620849728827175199400098013930214801708078020541155784455966574514556089322710935515643119783336277263462289411118932669433245678624536233499811705472836039757027105000436649891562121499617197767456523278016777152801131998318925661257065566228988859838116383676545766902952504631374844989488563036300117810113722560847599537019416710842260974460905688102513888415826723623153968540366825401964134458609752893608209172880018582594570090348039640482258504186372617394617640325660421929431638195164090119155442409954637567524137576324777408258876647957947754397143779615272881950559719349894459536875512594004404848175768996807944929326714171717085957712150023603886766439124547376853962831591732986130859145665703449400621512093983211080705667493389694294405810635870197577809935000735210457134335376612361762645032453749092996825817906655820846467013283024161746552996640502956764814159322481650197531053680484916531407873481741719131601284737259411895842833297347435437595593552673784941831114219469660722984269618237917506349631192776749700541671938273996618591856392048017938679317728568099930143068414056024115998578208945254577240759764462889254262467224957914860090978272600446448756096878857495868637956902089603815638178222431423566811803813033805040859314042414103837755715639786376056538806949388185557499147866668797539266181702237491513751146291521635761802868973909622324600961560561491390840592641429751620044552699656818437513832530039646604402223608260785712128212897140351563401140254187818038583557803790230702748705709236242660031264868954136271769373496269228418173201637750346686840394383285863107898799354045149837477222023441928067784752593673799264659795057668861210080443619017418950324994217649336201433611646973574629524308383145792563066535605160554996641476553322538438963988588604212102648172792499577614080218542913247991132299767207630466929407883761681248703775865023912087885523170041998160767130047390193044091517643547443335635681606439254732223962274834523219847653801429093359996135786504265264740401135552506678676809058586542275549189599627592966247362429314079001802221229827522175973620613900698511230389205761201266011340058759160186642248700373462290231446897851287580659151046462320805505328947166705251151145507935609244364684798506892886794900081939073641587968177641184445161496235686190212716627860871359140903694619861288305443026561411520596170086029687219722978639447798360528274520619118366355975732887906207376338342729586079802049094139203770203329086434295086816393395883095844153751326943772105435906639888082429588693988794976357720621254205737366880347957006437326557479994116879069983666482707344149239779239707154450924886863581130864604955313159444599690894404983532093335059251642048314906652910519359336261499745248953648452533129231681692978320883632573842266370248734272083087311543447991177058643596901503909164881878885727389664881246566836034418824215792887290250830669278290060819373694721571576237994190597519060912399955015722051632169983778055568711491981733128645620329234762299393800240888072435479752747235200226553240753805163767219703898849226678326914530187683133968583939728483092553867114119458389879356329509799781526396642191962333856546986488945846132989562544915296152512937749263542374156157731131173307543307334164657623939448805055880509232368735442778007230775783046474948349792223713425449883645823213752121523967874451142106156547025507731014182458150455400177758598898080385384422486900980158245592276762060809851817071188049641379746733997614989685756783309852954518817998238259899883593893282878103320937915844495243485858291050909228176622514355621570030081759827873381908141854462394638472352273178343803143551459406795962863574407200786570044593827039400977313394495666736940122041035280492801174905967875860721236645057858854034143501813697714417431689865786823189416526055195079457617769470270900713459559292268778993454938667537608911193745052986939393078621048335234069251550931115159640124224049988801746333532965577981454107949784421766222551077694195539768533468126202595567074279661543522568608085137658896694929901054407372601371105461603835732238151411525360836135072428542098299510430752542492352214333298052780328315623949261863631784665101819222689408780280974880986284875659823483491607080101569363087411276971774656811512327524324599379374630374037492683111547645762327493089776473181166702503055251684904867437233928799894133518241893035371589081383105027195784388688868857014024593730030641424185644676510811589886247831094092043573091111591218438588335912118268194062429986612551323594934218175151275823511122741913132523713573157418588224576248422074551898534051688357060537595487191634696517544146686543815335037371176728097220800768969495933362188011409284077302177085959741993103004661213372338335298183404077373589999520340898417617926572452608723960429172565101150532729399812022857549829558679394806841800170263632501217899159704780796639380638199310610411291342906588468065078212059540814250334636678461253118865013724897656688148032882578855586482036689531119450107183203780703959772784545792860980212953740110196363942285700742959707418328944045003505238357722752482091271884591569035775372295991048451328577849023975811941675249404314910663277738243398562725972000160296621433723559971704148908405826098208744820416520314506558234063161068666734256635592332305698859468382487746275749111694204080974254572858826869883908625855131823872429937222744194848524227059193753820159026060128903986314040540688391744541969684512702909629717065889485890803392542548252715429922340268898912972460082302389561984315420777312341674853774494907967682066393223912750286779772194502365829956453893346876804434344915274640043439165633486612397981692390462836373509887573451449143178828259661825086088736494015246585423876434115605231993503513200366855274815585843875416064604314970964497692496949515110858542491283691617519861915920357663298404047637683268301608666436010310785558027991253815196006503091592611879253046457743688942020519362670265802997564637340177587458390072599317293235052813708651594278681521186255527420860661833229322082356026335051101298438964278172253254368884061513231555610237413791056189670735026382283951514149938415860735903199538083605518887368004362626512029188326766704828439053572052241594979608452567450147302987781242821499507905083450997049815251634730679463773061231247157414991235831070692976493272059258921950466999792851235369240910920639601494836282040681059023565135118221327483861840160639194518613107661926570987377859093596845248439043529469790158946062318407490760129507499989402326204603635348616252822313936843424636100359016202539239150915220758049461892284071948490491594550726108269752712777061111841144032041275297759785352467313105399012129276119328842291470541785669790814224099082190038983540011352441339917790586778400697792522768735116226423261518769755670868498056327488155242589124192530564350798658401576968024130399839804053284371738432661041050530830688174242245299455108701940378105590387243075382943281907788361615710368801087876928771554854988122893236458337123462839680390310903167825899168562749925105697079265462194546568984627531744160536320466249862901006437650752923663919423193062747535708985849601673231710507102681812527365143097224145566397074712540505863381138931095974553092992804465642578352141851196819086220308168402689029345454844109349483412257259925514158156355448373865666608861535167094612144939553366943299953056485527194923829818508583841431106717248455925520618916161614728449628270360090766478050454263929833857786747669861258348608476792472292842389881276266642549162126288068525954085618524935055889392209449006496595645764937327217704172433587368491975306516135792686181865498516148346299178744336773786405169419260742341415677016798702807999782857592367449697750775641319199698526294026736579390816990468162035771245635424689761962078371085039814673644060249053810488704122294631756027786109346068452605561008717496387596446260553532215273506915753329931212622366325116967421316656637699497908298311094842474259321487469047797988842983688831886229017147574285620670445882427566448019061362268168049733172582252333274984223093759099596759593459337586809577802386512398356699792743808894931652216175024426108869555618398101805535463216689561068626984104222370196711300213225775366954356463695029220455664945704848607245915031033941449275716216034739400762955038828379798884716888088082958938832015164087888493424302046307384357122412994105067169285353249226501018794435152812367513016918435858131418589705826750868687054088364373094322649650913183418959482877424819176494934948455490588653331118486936549375248164624566284465063704787951520972908642524506074955700230660023681572293097731783673051328697128862247638975340143522174035949068823289718397767897582774800218052048172852219631819159216004764759002585927203723547469813385737747386104482523525402641643713917052578414515643534951870444833387761723457312302686571237445859494509978754506577122318517216938411712050327438076862446969501766801741138249112700878645218669620199024152346075807126069615578597152182750597018685546652851743358883526747666787186635123647669265239718890472310433806060711041942171364460817186272596648082030726522978457400594035730030675004222370438280758276243372224146055082255780859093716954735933004954709928346433287154557229585087656423932280532201193803410572082142115578491001993087150479159659912432685140146891843098118510320266882389571098808009278953474817479020080049649268058497699839266163966076357271421013643350669243226126964532934191514941796020244731469812870946735891249340891090392320934062412331017770457267538418101946950543270415797815741259468814945145602475360004892691282149305441746448166270567625121314419810961552056344056783193293604967396281801203206615720232766340227505681508682261655220493362713706860570502880258315626252089630370928220917878498631260244201078214965105450767303766225242564707090460224539086761772527038410656609209718031227235054631406551351888160079544175456043941692752313276412975800445020509851322286012480283139005449927979389115095890477051509207558175281594881141664271361890741544439623235312735838655044306505165471855415616459145151040565912200381764434668332576667075520817479505936472842472710564680603547862417158669870567304139641221135585745582786566640936905096558685526683083038337843590219198914437748672297342411935405994277737003633614668856947735720625554596427984548072738172391822236029410285404326872652703917974635558342130030903903286515271453974190863665241299263174903243389526154504773720567635510694527138777181048115534841302417365480297219577987050456618681512699070689498088952482158300412305069945221632142262745281286436889688887434584574096475645907010338303351028759886083262734558787779289608243397703665401448570897164699271712881566411721419841487671038110492855739133384089526920760935538525548636029525334119464120753469390481835197559528425346896310181056287414885090402297319080726799987846009598359010779644104592187790460020273827568027324700538194276393401334732424930239402454193890462187967040452831348528480114437575118111271176017408711612629944695590967162271716615347606982383054166362427135067641539245012137631604521287969299029069483790160958166895766511792228183504296956859867538158561715703009415440104381629420624072481045681392666748510435208360174071623574655073392470346610460638211388947791797477235693171948912465252364248291835124860552436076431001375283948663551462937450256668614238272898906480357588026629434175049539873897662766986363262994918082188928186974672816088986450310624070816290557075172110429661208107943114207340276472887911500116079284819550113917183388584278026611081728713537616471708677206321681315164164089509466969116770127573030881626204310439945392533162987051212988311911730036111545656852260330549559355180162457740575688954275195157536462966379061818134990424708198049099229952244554425973949910004055877578472388595468824308693882592873056398700504980228958228879153996416759621848013850297103564785458918083692658840795006835978516518006692709178813060903188281863012257703593114005129819433282897378108078803908992210296876119240714560725452251514688042886590971141777293065366864929435731785865071971205587213363263412930282921555066399206460953091265775514928807403401723423593280198569000091942847735065008023559725019163184059189700533870550711962109265944915038941122709281027563172744549562199318529657052808230091993204045802963602367546091372555355283236139081266220685609021268210081106893325487882457303435326575440315186259984656498057076802668291847497138541431519672235105474308343812968177875812430881959141076253153632147737792055149812805203921741983252091659448116982955964914906350277718279350907345450301327532237203185786370771761167668252938711216285611260929778043493183948510331284702858763063400149521022860160824338226925494089978887748110176674021396129474599029390153904070439043347847934614462092112393881844897131677473509011207068282218102032402563934232447734222087296098587570187474817310195178829470360316381872292070117049732925379299479360764688036801560091990564298499363289719910370677068184969257346310462407214659223417296346844582977496414210925674717396414563691901259660694049572511272304160373005524791940774316381670885694092793735857831821038311854244359850676362758378746820878727715929968986341083435025888337887247439045658333238870549220388422505734106973735295254719901094879810919808172958725772319579547151307666772791803706737562174569612598159502858210708210119887359138766527361536468362846353857423436208512065219460679614398697009268283936223264784734443220561705685428791919841508111192114886756903756714919242627036086866756040941754498760215709855252903469579734430744396023552171480856954276470553321031736276409129847251309111082483872823855424297930689865974427464070120551567896729444933655788398835654085788141166699573303233271977840609916625540385607565861781622544034937461340616794372186411568343502992687863870384536804791768780110767873734509386032188941380490958616139642062004789651284390124758319993953744689763978616443615176913348091622486129823013719934963158535750999536464001772389610124891294635431227835018533223949389801465934222340879802999783118495081218332231687437745874446462853259656278050991489896542130739848337417024796451155224427933149238388483760790995906118086441140159175655729198041632271752272100733646323969759302032869072202931622969382299998215137395129055998014126352362371710528689905316342286686459038009957191805938647882630450766331590534628665669807942962998457986236649171452652829285984707963703407783929724687656294767350096971606555856577879743356397949217224148332845742303442635891801356711050091953712369323328913874654515253411304593548372783817886711983535198771013602524796567949668994338018833315191555823851388985967063676067368685837240701068637363896668345555923324359573233921902607208545213966246766592803742959533934245664806543987656935416328523405597430747834600957613416675706409052007454172561729205183455056299957409374826721646547962096965034735612807910351683025298180802981207635876826395609415689474091071726169394538513668525975287389579553706149218172961571015791454719860667559076031106059161369526905119159957199935021505354205442826754344400559578021332596327115567869837442452769275239063497720252614748464609076824798823205168331977554947020642992081143009908341680606021231829101199748921982122990332453459854961158218961549988390026515624251541798076144563563773968513270926207288954548820699752285188715412107867630950913907820134092899839468886306908207387828009242142579869099651717922251533759850068137458931828547699094510840491866503012298774393915840476803188095468297235533666073970602025516493167807982060328887062229346982507040318980957499704233701473398693335012288534885647341429372683635321350759357078018471447778389985026894185333754426087027971701564470386041358537068346650717753880082156094788700788864063551999367305324057482243162626732940142226079092197998728291804099310201822561442754136506280189456244725047017708913013799292962052067631348534041143332765051097219724091067979209235328964862790903195262852887566749956418106844500985819562420896570814401032264800461304043316597724117455116590556091294093620445092814032811562930680312262671954869339039940265227978548834511554763575665183993865078488658721255139385939903530578319232201671973375996858259939612428658734586396623904429580931741778953670482704569721172268313927133609236871612281491147212092085001785925150449276714418107744168102122206916310176926340802019956963512200053539608522821441332247149285520828441601464676681132124989241651778131296655732027062485921096886472893353106896031813615319432364232021160293869913398800421317689548050114593187438331127209001797262947309475083007305773266832746050447502089208836098049122658010180781760343814724089862045734588494107107253312991843419153793558510510764975416287912373175930798661643630606959290639305547639601998840728049858847909333390345285776995415733408902198412837043519372597589123692758754273876476798871338317465064227876126135314040419323250643310589561277316413331642233564498924949413933117100233447040180549310217805244254189176074210455655762062958233163932776345569544836037640973876914867175693582531432587516384925736268338312130309705310298383697350521165284059837248129042350160827598515288098350482711627033699976140218774763665785547831233330184541847662974274082064304461889319184106957286829517682850028421691361563851118984100938742987748974992939077784977924162106303861644580074870266415298432040505795631059894287269204717253210090601770817188374699420237119988797394491612095052639276001212931024838961070490416745762936735748801349602372352680785217256004371866451834989964078977192550670078599000838437499334967719543739547453499281007350648405863451535806972131960582641270914707513508013168887794078880877716300082258540313219729043076211512841599082359836081140155519378008487121727556310445138217362492075067734451156069824576704169318168711207349796928986241080723091447500365763943694101504385953127395448579572429247101643931214944802056675818798156819454009529101625069215500695446491730799500336855127140494348413290074433146233148028181205015135506700716399693021834448732903170699587037738617173226374158294911247360999016475419292862101579066473546683411377988800546343172942666057078482906425211121837245471876312032305485082091969317664171113487363541119515286137773460477625453907370718989055599989222050369429381430243860905878398612287442444355085266351474423444817122264198002679358907555144780757730683900320907095234830244788136194451499403771314347681277736018550853955479232678709800719617952524661960467950998283981493038382925045833781004080625333246862489446226270496932313024052628208493116128945959251134296050038072580345390038547997285067345779140654536476811858054106088644154199642955649870214859603918603044915890924037605561545531740356915594129967437218449298583919484113280544165844713891961091819935455383831544624840058480260301497191850247673651057326047163695430944795759043707268608943350131431737448949047535646438307138010962987591267622736940436132649696406575950858191196969719594599659726279851142260491204302132418900125415345082666675673480760988760819863840118989044659167742200148575955965175893585758948599493872915486009845531838941129532177855222521076439940512577105473846692878393316781729466052957581938379169210088673505476392076455651784276724168436929939795079135246683656054824822766438967719240960143592494825328391165984552363977276854006271900513466440552868125928587044753600355972188541892269389399717069452875689189480525910302169043328191195229709879231432562403670192923550006171653745792555456590744560309265009331288240064498079561092615176371648577013011570665753588746616814263665365094477649514376346036609857349011258558811106487815577109135955411801005909262563410092106498471219621079087869038081402082348508326466509032374723270751993098382004208768831457319253412363003338324769150237503724244974759596497807406790092493572135717487491567603655148674882801364414744209622059434833213521404340068467529816799330822705462355176301079582788624079716759014305279576465684925036911477816263883894572767525004593834418021375009682276831103185578398391972596349796819921940295275155159774328695090722899055151797458226126422271307107635743488114828961477817344715226213591124312065138817705151983400158733848183799913481561568480754478299170451678835436494220650578646902950714135374084915956123798194624105871439053826242498371573816151607970199841843980071205769609530448546699397815657805187092523950804874198040632261927024511980202898092864891362994254110630975743010500157045161702732132798408652675033786580393884693555646066023769473450877393925023347325941993319037768806168758831258818870392056268560745387485279029419706511485527835013882659696055734079735941325651902857322404570654079584608886912092475846844807120366943743826303921725139560813437385963145760615602182200360064551441725483710959689238964778159518722472481526387018389745794191116277531231922718748434812868834524915641665956937382704819121196337475608449295666589347479357616438338392025500534985280009877758256838938512256333105224435256453776171467895023803197118787353974657972291138699130033171791013557456114593108647649743189213994433420293960799387156358231337130226003184761347732739177006172790144873463349006421174345062102474824118999435794038705069211227387255349237715519603789673882380637582686855668113986623064342894310365584399808381027978830503650184633560378034886626571384423521474324522690949440078538708448494105125479883591368193679174112364570592252942958687891935621225640977138308068379010185028397190860676629247586385003116608799061897461523532861798312316473758502135895978722990018297503864980585390081905460497903627173905118957990918344535484548384907587812895214718778875701130145058368148741726514553843092118644601323869164727964920940951778128654560326565227634140165611356225348726496044040769258745541458769436735718713374453267359324618408820659250420168376219873309755489085347365754060957966176084334792848245747334188416962055951980603904426293456369705489330585986123799205257408060379265923922086783926694799700424509803020766862401488187841842144133365594635468108419906478191763125501289300137961456527226333569827782970662787576703235125177119180091232814975059402469014852726286289655103972639290123706981112744387661027442922605544933222346262976035404093644405609688784354366970276339315675252067355288586508850917477158394500752355230227064775005942380372472493105065701832443345154750533973348360259859742600123697256701754430585180985819517282454372512028278043517002063458944495069451585955198787753517364230369540810382737365872452967178596150475782488486905573133637436301203493394836813657766912339314630401246082997400741960113230520152930884980919313322094862396491237753002741763077741810894908004810470273294375948570955165877675200784802937928212725841099685819435823937149571306355385680472049055617455512350255257864459649731792956342994711765756774377407644348623962232470382057413591438668924117519645409015849040179849007614632139146651041111100655509403839590971389068950517703986326613364086407084082334368313232500923251709850315990487484968237880257451626176634303059716727138100913058575164801901744733366195140260627285198293384023523472066601090706358278424169048470933624265108176904781600108759291082021386697148981407430937077028670111412123244432230909150400697171006309353800841006848692561185141362263274132730143148219192883796073255272102299456447865534388448153448080688688951792329301285070842286269118773836665474325563743759986548266487093003956023871144727612333711581876881207444206092685374989104381157666192562314568060637768647756683608322223505220784566571617702418764301264099766210654823047231065347129019699256305603165408104462787599406634492305942515485043620146700629022021281845788828511140379627366640352463896757142878683151483172593226615583576067084864002531681326041179039379427837728355089999168389708994078343184214743645945053378418492399826518126285745895976898026613138457293289735109208009067414533888690006381307281353519820388685206006602586149238952881921231073397087520478048533230604603269085853168887058701067728338666675145384444567285283569854489436118564269794009062183018380206128012416821375728403749775303590001612816124407922416515914525521794428019016540433958474141314029801449359029874103498643810872586637783131489604171129335671576563378057639427326483104639796224448777433507879051201575465736676721769694587302539131312850512112862205941106060820600030958173270620359903386315245187893426644150985779713713927797264672175069723669698872702956838511409236578539067135477044094419756367776825767773266683427595899485645269474364401467253087423606845014064969975202363134744383952548502205165522095791228733721692407892696114512135476688829522268691954659779113231182309740455275006056290141829180442295900638703297959302864561973670163248192381841907175341519495647932970490215305096837775622770784766532463573525267263108650235946107409347448962429376617501979125906704295198335131794794966587665679268763728093557872875119262211822981376568361179886752693764330706319571193508868737463622448687614319712295668023596993312535923489212206243910014809276775796813612499512896548192552377653533844898286283868228323299257093858713306306518159877255311602819507293628678475759904551064053060017910075214080829476017196685827351878853907725780731049416478814905137682133564512977844407017842804864990459791565019220796034771754379405992998644933025246169236864342544997660184813735331873216374288487636357132720631200020347206902706986576160494393050496819482422805559855213047772103818102947231781077649653490364772067048642806781883807457090495564423385454367852261143897126477950012608774198978620897946905962344918545067012091111854106662706297332447774811615589446794504784909669796651505242571217372313852591173540417953946818573033201216966916847476292240483650080457686280568030212673202515569467809055694719520925147482574771538440552554185389880714965030238432643579893972002768205936949144844836075663302536334765383091288491207523270152500966894666081957667836144762250009110301450450836215701713431637687188876828604108007029321301199524546310088489798785821102290876887528216799275680045196034301222771984766168835040003243371177521927486981279635352121103766472106095410763773492315507373086896499352543450010850777699088389062169131990177654121560816904331856356833523989117663957216272019449765863326445846945145492889333157674215849610175113551667018116687725157009622462524788781874461314858083896713614839094539498988078270395856697750986044627532582154388434000830957307019415606301138450267015560471687971912098034788286561933539766764933167939724737366013781932606877535596881722432510397386477112392336491466071289486019307320040667737975095952535930034739905387515925237303664813626830424609492974041460732233811043116581119471030337913264118368094483176271336977439141624769978153807716578151376022494836068271698772441628781358495961107213636082623427296778718381737022656027495549409768412295842294652260286910605675889559882628052854721376752033372028735584963889791476596174042645407630460197517946038723870664488989993821960257563428953547941489453054215048278861026497631775340839300466233059974807680131521677696073118715046521365976230766749812318639880511856950926898020710384749465570464026128499269972818857368057491589018300882787167874601182469991997467931635924635289532432536043999471824452229899116839171109321100886346086931976087347542086954283995780406881717045857600078652928707432050327770123287897625444635786774794052166985613251686158679117082439931050427447939617276900731893727493654892427144973121287405478206213125279050588481169473910184694360312473982901680893804577819339782657287936498254557616039043589782830528861170591996286592316902220089998460704250161376013271474454623280825170200965983130866246079424192532474119524206132926565844600669068653519510445016624091728388897316802075875464845276170792762393259325403650326874797134554765860394647792779557924164369857217798903575681596052567548142407044610091439452982825596601731038904595077505050025624271222903418368697583253709454523593029041374158468438611331858392536323731231381338748822264362938588679647241710445420675156873126016213003479433603795237402295495207057863656724553902512680823583086653071811725948501923372216410772200332932284331172723952860183514418564223627946997255678334340264718886853142297731230775618078919628019055315432841066150717218732512956110546357741043697885828227990830959746751600927532720371046662028947722018926827009153220628898288416927310915734636105855478044182479287969218177536066855652706268572210172721197894977043850142835759013719131522077310289170787175372293805819016422315073970706284515123119645833897248954792870655784490129400160972077585021274004852505742381057272384667208051814495516640448099734040353030404853947954642457705461956005164704655732403350956541338955964276309163220335408518927244860551428581838012404047119315545772183887899941135665695001709160566796776746609868898754794054434655540621507587272986823910604221396151142827585360131533259654541209276164139656021425008137833620474137227976052876272446542720463657792977732209148221793595208946456768491505604431640020292579291578316007753697573034063255461871083578122349098735349172332692756603387403622332827945599348101711448686458493802787559483059511295402322457382061469384037199557118503822009691289012006173142532861584510106895808395024619749945148011039032145557481681086259922737455599292396684776720037403734017381144975655855385904773214180580131550404324158811011580744968361883648580944915624645820211237098300679895215158880290854445044009979015886475520762225571635923123983909420766684752007632893608553986697306158670072264245447707406748836038204701517782335292999914131779651819447085472730349914905380237526835622600572594986733860552285763740021781773129923105571724758569735438009193783749781080882990107931939396170908144869895008086332701674262674773792470577389271186107134188333428724515950595178200131747802288292297883695945591538619282963435633950760226733998475958938924210419751887170677553237086931189328773126849454957022143643328223460349141673756954602268529568833285439048107830765431267328290410911433882547572265535156783938306803485725480261871626989352286293782830509912358191105690560537022504292455942907085707409490659915363389402717886266675504828871175852230133072466408236907635350593934803402101735442227135195189961265747321059013946792682785017382702755201235348856584047644075176480497460809624231408098044950343889256389006549237841829676123976198095731566596916865068002444726406761977972385700122782070661692940025010484063542757254284243661641079169914405811849012921697110680910109813252717774462157690165259229010293288195883998282415762177939670278639223545641793575623349103251977006171039985985754452779303404091971011703863778180096853848557479624644426848194337044629737527828278256966688108013299771826138425818286905340438172559449255360727671829299015052482287098560439526248427198478456018144563923304940004593229793115794069276053883032474646209858455483397372925465491754745365788616194286414229524414172163159457236570507303882609511463112517764402065702234355316684906156688726383908273869602009916847243680280730054945783549489999939860733575911121796979088827639225022489431382316484135250964354043195044777156643603749734013080446446776259434139140954708777052221051551794926791210523273703659358022697307196851454438739945055012737579746569212166603888374806834527402175922500886892572872797480473060472284349824413210920448548591791211853949168220894547210578141352472116886156638177785681905654714949693041380888140908390668479956101548969055329915615627986087971961665729052813691285838565471508187495993241696346572120777542779296101132499968768165962975474939844328088979630374883871553683057807943486838927378847877111534920538621225683780485443218054586175309701813659646788769204194288073311496384578722453378514849530450484076046341791876866565288844384531812521723790390140297108073308792990561564286352036550653250892444018337955350655545252396109878959367436860259074005175386668835342334132654857430960719329432846334250484786317242471453160848423918675609865248974925478999310663212308251967372949912740450578238112979235887679325351352866115512453803524527856607341353310765918881193773249453792716458308013728249354243732954926307456044817317433281372357628745300066348601859801047381832771179427254297739427588201741913310077558834275248827824608979487007693852944062734763145896006780302795233160139273054617220740768401129888002392430935883375100632280109101056966580248193815371544106198042162639928680619579236353005579511032093551907781822473797793298426098100055235642759455369369729940708486884728596548800972653282326679140728303387102001908407344109811645219998824468189027899063809556718191883449164304486222851084468808245663791465797882922206084346315822084366686438321184125619123829239821481406857779464440595235424954452398247304674291724745874930052709271371435490561492819617475703117733791149615861914039920787720722449692879379712799354360620117337349169851399075112628507287605307583247982185251153785583920679863489424596884570453355983048935872659069560152795413982143097503517628276678413615396071681281064328965781966186232320345195200793281596458336431012234118344839365102641864368135878522433299335531102599189376054312369571550743995898352867250896385821030248967065747760575678739245400382615684700915183315066726029528923440527722921577754282707655980201005044575842592570333467533584614743347526023426549385748924816721041443127351991355671331265403145199506709156523964020022530053075459503960462486746000452103451300887530884373920872577312409850680891695478698942020595481965345507085914601482056306592520303372999123507860790583805408934131682018282626718539497926357313914894907318651239203073829643275797838265114797591597593991751016804528180917004327190754077009959776737196987324109807868229571293083377312616714573671290717678394463402607217914151060840985451876456451583473206044505262881464171973371570627621793282521534960194617489936669357326260936698145753521090454388661151941510985983092862722803232568766278305279789725149183298478486875370085715590743447908367164864614568033477302024974727052270317304035457968919554800493709281517088824097781151545323794603919179728954197120699406767074621139244917647309884643212675771818453197680206843972575245576703119903487699011188906533633356237478758245975315808684326468443891279582647237336462992844731871510095928412506809010695837391800182711309639403012242876071055522008596050429627649188989976439256027438769111898770681299460452856814067712914364423311897392031261184196492127503497376897576846142536553579298903971966108038829241897838058216592372719691198838044326222618391891500031549103958987716156313235412961560578642011712204758179782760814734007166215475113415826497059044423044069219728678865074958306075166622189057256431773481371247864700298485817155725407934149443102103876456729856397250613307506040438567743231865048137204441895582098695032226973373857747801856290242991362660367046985514300183025556608402163087215934078559064131333024056957287907832991180891707594386053373798717545256391144280419345692453883637633886480498090556846705443777005830041738122981861664596406230323806422237072995735358925583458941290304288663777969223667263699747318299143003178899615601640045730435441589299050466030140773452223260713933221130440778977759885316659136691614836589091667820090371360339136673759540758695326333703157437618881809018939632182978301992245001288126135326380514934315224383406995855949105647948122530459447959301513323505464207787889699104451252436942995458364943620103089887010672899429008383496969711435763420926603322918115131225406969794077078656488219300075817043477166802131156397059804977349845070947634108417374072388604027323234664058866956588893230547584463799064298816687788284175990629796386859739361135576133673611147070231115155956174330552875462387636736224665637068369228121121586681112589439059578082180739274632203639595512110561770561308829135761155510792548775221909959570476416698998420875217999642677215846648361098961397066857763528593648846284062512901527818392399722969442818340791532058442577497372055981494530723104297391557574540838129141434015350023387567197202623032051299213960896528874826569931065330190823234284607947160946334566098902144623898162873070979784605713252729661920165987835834556656190946023345568696395618676440856991614758846956759345726570424927158046661954526559948320385085292280897956502303121128366044887251417533532743162627841455510458105245104592657954431742976433772428822470829381119491095049381120152101814240848356004683903427386799812598194565892919236880059855147224856266394882234784110275215993710632024723706032179729312299871027437159096101360796411062665175175095106325375275064869760933799411490928874598314682657271434617481985429439184910213145093933798401004356740556126996133026526107412592447960288656869656514918792130816031849170344786370883691700722444185625799456574510434928343281087165529142842694689149318447397975698821706664595420534750264682906942203035806890156770595962552460264108521709638412254300169101292526515636420719109541891974036036484106437100944330997816119137341122152911993013573030077496479617911169155118721429553540539470340404803452076759970075646881914245253733270091557290371926053800681653382338727038169943948219202942153247012648425182601692175567629991929813835445054610974746674899127613390191857237312042138617878206437288017916686736374384591309654564176876174117083850591535552130057478352389440121331315351874879596631195154283749934172123779488200121958720735968377447505734715304134382372213638796905655322638120068131772136583968046657173102081155631687955879001650609093166666259964832856749508845546161553300755227917234459912133649012840597861236939009647068105542221687214259367170015918545235139766190494404060423767894428041737415181771464908111756634316329010298408330614250519032567954779181644805944534678377635388054256366368044554009667692753548748375225416300338119179037520471111681306654497144748704544174068954984244597003974048608363173987010405404327695676104994313081082657229854863675275554185980517217004453493368586515920978265201836815618137627856412621879286130746081855249233308686668050079231597018870827997394446425523780099154954655177056043076252640659287517520967956730984283376737027294833522331984409081823917112831219453169720787908232933436951392648760086052938177443911917597311353619427068246860754733666183067992997529523729216484082395790029369588723801705904307601007277196451217703062524783820662385625200125388491719749773552496874483116805046402514450768162310294584914978101525458473778298748148583479782371388161893953379349306510569914879021686238078743518715824596201989467140553617393313539337577189915300109318796463930628678986490243434490315243288370772673640404617270896159298035214867328266156893635125008039953884534494406704759913331453998978458263705500252608614365983895548607223004395986656997476704991679248955870002673209787208736033166313801844770076391239341899256580375673922678381594435347689846308589316982003793870854690527063819281218069018049642307029019998959384295893907503124709884548123698250236469634468523005392541936722538572065142707511878122396381046853960121330141240598545852645930691081372525212090607061218587918475509471999573633910243281998793017457175975610777780055189149055723764679695343779307824790305549501452566076716185330415623802488790532331085608905599329309940424183774804228613320548378601307800003380524771457677001567768533317033357062382115079851162540994172383155779634519942635201358589879033189487094134674389644328009813467513008897482780559844243216007772480074598356501076843971860308181602409996607937322192766240557056619310572891901200991333747101659895389934901040242402562936719944198671962475976999999044924460348010071086021557466982470729075020416124370722541625890577535051426979798848767353989925651312160626051244758155126814752337256900202372609331911410419563245974985075675821523109479179241152339908677927279217780101735429592021895265288765069642622599696750630175876342151226736223642485248339892897382826546226859130176410152533655870321013348455717774313171214222927751180270502008648989996787152210150412757527046974631681494982592292754249091898149607516554206672190726725340718450669016090741785131295803547652575381104080426005950276347532137332980467010162337097807289995130649301136893485797227342907720854254318964190097903275252023781128673081527705110656180485030034590431551156889624910417790760904977328271642833881077730776909142456352530285442201928023477356931035955819296341643663543873311747374997065618214149330298516181595527330780812140234664132850621007498410786726818786399965982017339301082387944890175031446510782305341758093868657873244881040063426263302134454536990933792694762536249801616213990403572577745857470472007768835896548224112491472024575968633349571354814815442084819726340743817999767787218830488383443876262916116805867171476010435644226900073047736973146454565127227290468948703017425261227544883955405528797360830879830242370185324332118492432725976943454787234897518070737372890732804303558494851920861583375904896053710351359121703426353176521172129377539378322317160817713271373440898600828315915620894699495674931697581018224104753822539853237600081898599890750250632164349292633455201335683176825257840448359617529077668205026872880264839528515304448224241842215214405639928839789268337529274327674768467546937248181031902429884523835229999151348914254703996344719125473455763464620063522152571312196394895729255806580915940748167585399491710993023132922392569846791489016834345220109724518285037352683800917759064517261435398773792429856346765435081465817248082269691302411155287466814308311851955923367938698706737262271775440586041896562292074769987428062728783972155395580396435447386978578193270195949672240628889228538434473981206785311034191767364346373356922582288833065685104377205951362837342326897655167459665569677145627176300528446661233007573422405875322165684808030515802323099819062195869705607274578913717335746157886035178270376505707815231277294818068378695177916371300151368452599066209383533685148797690039610995015545756806901592952813640413227140483690691635189193025753185667293795010327896743366142854510681220223966655119693450911778659319410935868201905630738603624604817455501112532351273746541587276831212892902587745054447485615338429351845824056748030853116611659116747488127425887645625948282786878275878545623252616852802035722774194659261437349489054775893895668208530670604371906127196409006424298416596923399088580402482279821320577993179313313306586090837626408315716347741177597748337483048229313709078200674516483558743427300189763580092951105429586873829150299112194354869578476552741639505400678773472141189876212872560037371491963805366441646368712311718788570723261979996042957267316524164061777466398485045037584824359480712679918483477423046736333781712394028052544334668460791243119431071281241207573581590217534015168643249021145714628687359702034388394925753822829965480105451976709545330558279001837470526627005536716311642933129456979988505480374637946611207085919750702747371716710938371327082326991632870851341993649996056616461708840964451118937792030704123172286664897087049829608852494613317970352836980408800821110349080432342333551275869366804190968632403392952465456159460449799973150587716022527087719336965218611773035931125026579658037115169092466418815905758449434133815021696896857923508613793015466917806186476056339884040692618707722188119178806102720710041804983955365759251757608683347686287617795783304380286950853900654457632924663018580366121944876167969473608528454956237874982140129847675768128789208691674524643740293917952586708523108220419019852400672566969753441303989854633720281362660391918874503590502696858385279491708821605093054741345161253197291200763122555963940610461267961679085785396819268443602576053234971922659215302089076421677141971887539487897479502839752407795158638288700734955549346046421083525256766546163140344179741943675699918806485956276239211229815218124201533786758042356167627033194040223988586118490685823434558972964340411780556625142811632103018438092593515188528792828288232043203404665454816229800920552951425476307599730568750010221730564911592498755788227255528206842799341367997502266812992061206372591227940810278916003086696924545927537652235206767378784530478446969985678268079493197855152960871254956521224524413694543208062141747067285072789078931849469797459928955751430384964859632171144166067766891371310484209092943645897612709229516949912935761105829751308718977722670561073456906064362120177637675054459873400552533723837381243152172863584388322757935697570392884208925812504891033956581201098613204717342192509311702693565585990263885453611403770751749698422475974695668924333349786438811635727914505517189892640806966076045097390612747809530889391493477645492714753871293673815753141754737007913538685178239594170126130611649749534423048515527833661424236654415852493919598349291156165433434725153423236056146830613015325032327681662038048996474092806526502446407020897712765478169775448853550873803197526327591770800039234553146372730347905872816927616510815013042751385814285483564362036550840091961284525316138543133292304660045847940818901306529051890899055174933782257363310213538276686622478845838562286468173355970846069299428963633234823735864139052058007618506300526518229878336917473519700695977644919071281726101243542459228415783135099468608498081449730130578324756059336573889518273905278828135350849501905112186004553673894803688778403501017505455251046316972309239400986859196214973469228373463138957432405530326125650806305120752408433051136047651366248014843401567658709750524950769904203932647001000410260359521977739589790904888092925990754246647226306773429564720270124707241402732545426322019352466795377513643116779352791936864479494703522194488621220118566842056682143964721068924699264104457780273921046123382842816957375348382744563599034663335264056281398462641559127166933993869622212057836071753764507944376002050750210914202189025803758652394612928806189026228846696848129468807183226780182425174577305749537757882301780724419023969297355227829661347884934385009159468024086481431028224348787318915612234496687535585217925990122407448204972969024133066406743629263947989597690481607492342237541216156561992773626184214250202262914743763620430431451097855342140412604926137828039482869397929251676748573871148522763894065270340683727749640876900319461249431526026837743138923094964436426981765279342028714671073931173382450738149740483134527359874446482909739219904224797719859710080813549727255055154250408345716385454399244233960187380167254083359305825846786824723934830618980915940288691155200224101792862804790108186671588555193990833123237411073251291667915222782394129792760641635385545029268998380710962356285450125581805026528391914097729671890915568627604951152625825379241318163000068101324363766076508872936461985192112360934648386602257226935727598733242345324790103438142033285653349800250596947520386944931629798079525711633196575330158501138430934314447724343246946220301118769424107897422365050857698546935542260040687138920597909614585670770705088527232023911545659404345358344427180415963445638659384204891399776217687195948569300474333474909688230210767682221192156241325293652302295256966941954556685101795861693979357624632676917800485066888939288742503421860304653801279661887333952701657797188749338429328606023920311024371422380038595502531510357199476407632752618737480021809615008903585111096953823146411599235436889280243410259184360120436405082365122760906372824061921117921935583055044834767931984984001647766580475348622318161668191160112851573349692683801201111766767839088402577131132029496314765542355002221079909145775594707454217381082233237651717823729830377194742419066720667313093548607747006302896035349895646680338759476700186480043515192287167070898734333589261801780824112783207369833380029049605612075599627185602512769430237757114076390070417376159054659737940645615545520622937090080953618581917417032926448347972863913236697602386644422561057038269494454834527134363736176000568894788799164143051020295254543805631637652044190430116192190677265591023074523030076987634331750059732388850016173139998972654840957649174132768025834787025459446373200248358277908053761790109223696353404795782208736368541804736028989544992096107171400268704508857397534410147780459902245033850427650424397710837986407311278981945651304291149234687595164279810000105674919018546446685473807670521305063336752953232378230076934592699406722599582376595996540550065870221321624319242275765685563514118380938138894784798593022996797304832661308812662144406897366384608163137915009976099430672144025360524873618618207520524433760400763150237894420824705781001475287113172245940588000304027838668193912715360719081175513678698116169763997729897892436815317245698375487278942342311645359399088779610214424639387311002353198243831090368355160118856074349897956339113528344270314165324523288290941244106807781117114585252907567100522482846363120787571481880676211628715834195135167286551925285631470963612980421200791823301082372366279410775833917969189959428450501302219493640016039627231650715654081817020003901232183531245720762469688886281408579991374511120681954804907172091987172825909061981395244924901396680241972256027454670421579894389136434266689795883234954928095738333603982411814162955235210323871700920525066603740308257559890620998133511593879336496166914941163780869198483426770298012614661128417135971814964310346411722484884083919430074612355218936971969914657958580433612715212454574935625877611352578140731298983855831275113729059799094442238923765822858002058379517167460931601108985430641667397332783546695060169247151257822564896262685330090044340887883459044040926960523144985802091371730086226136733507380406255636028910777183246679065583794833349316218990437040121270246563089556523445348727903880410313495505178105870285615597790750873228286429665653746846043722319085966248187004596050749232790012871022496151696933876600086808288501703821956908242592030759471569821378917579067984570082242780607930660844723616259893386604307847116311300689348625599025342106299261992958102529221833889725357482532516298098767715324602205923049356100601221417710683888060414828513667943485635373310277533354744297159510651017400957504364503346475136285593859014709255814352654477107049468198321434193906631965259458331529330023593699013936947855760811436715398912623316114889458496712255112915304506971902888017776863152287814684902892971803729982401616275528093817384395474000619266460731750171803151814261256528270248036728587898156387433713829803242585645420172101929575631449155221779492731922573337543296644262957304665002202594001175163151045914362797775024094626808958795324164221331472889689169207527576945125861103397076541520304309272075954494226494696349932829380633141891695095980568638975038809931588204020192457279090217429217369182496379730195476492170884609690114083592305838808005518724241927494385400651147173253543467286041590744125241977338066080697244720658617462325241307665760881159129089600611619634675208238146821892533375115259652812217351627258187088019498095409874800670534671621440766449401462897155199565138228563798455235081773089736081341415348384876357891787405857355367747041095818793154166512842590374148413343630804448670185846299938239010001232287303250974053948673323275786106440711335431231824701584210382418296510503389941559024029853574091148770916398736964619547849780927276503576499208732305054038032293504036619621170504777595247035556285469603281699025302995439165107351764863263676452964870797428198820792750995593123313330987885004610315691852572640163949861867044395142784022595347857046551806251518760301318276732449124284966397267732794411703230476806851107964784422435300210453711944371301679657829513648928140241962307265833066856249812125762898524545624916007650027541698656582902638201344638470799573857909396919892482635969861989828916757485960413241847664694165513551326943254770357763829156608532464940368204192129219780886080344970483788121245340984811044281569426438821386250853843312401401727879800744961724222983524267761280648601001974486018898287261964554423568520003712304016346946307590398731566752808372010653973216273281913825359663702086115990696744951983423453987081219581941690010443326550378106362217525486653351306123068263139391181614295681158758106454630389030787040640850184523695546567941504401770662904781335662953570289903352750623453879680419216912503712512939789555185299592032906089120691200018190196058186939065220091835536824392430852966909889351738142662400777128285101414455507829078165469021875126553564617741811490689520383988535654343149841640795675563734616012594845259143244487248964144803878227564773560850778043407900354581854324404555431033413691527198262037169373133598714292963152997544805107487280662533513342945449199752889127291884071282595210436057824000289486906035146512574421297589409737679799927942677805262128887626625652413706226394360422231189414955556823322381733520582748806886303472255806981099485884634587320941709048298638533745691266993636177455447291874110533586415402183240357254422672575627342362064341617920783251016392358852771362001500628570056944257516846000581295496184358085181795827778425179091287134081616840263816967465111442317143072886074011083805110211679787664964161895404305613632846536727229485410770180568607724871796752277319180070257373337168386307909779468852865129934178090962559271534840911479773086377174341272890491599862431295745263517512980327186998921606586838248954248353979860072413532410609194843549067620268272120919424352181920144776434561419662876721498656952124123455531618802232118741337543556308227053164377876984013864415849224955733348205141429479929847706837878216594823003729216137320042947414092639449384849855839148651827541504262109973745824268983070019122406292216844578399230501512403518162818247637005496820778697001404910056653670190565509147902883429651548768567547015074633238634301489829091339871589305968731684588216897261796957582156329333624483908937801699304727957010744369507839991054144876099240615307393975621918311326191533696489507442523798209463183822248898813291562418881884221099430830410530372867174802456075277138543895884905808089304872574892215721759192193814652987484351565027282926031290434251977770751891399709697604554047239624639829371786799944502449807247852804543295278491490954183130617684362781647600158091487157594540986590918774977905391463221098695145654511724990254824272949609948487414540516063353330353609071390444382787778707603355854820525274473577539262714428853732789941589947561034793377773723772634445018334236879305433081323911323550645323315019652246011351396025226806655366828195317029905988084140583669562465860543637934334942548640221323593898855543115495648032579463341826675316975593964197361175763440254289089001056631795363334212865260156857432976402382809183811627501810801715023860366079161044433628936489354811049706476045626582949314139352723484271391394986538877987513130217609657213084559265945250532513531927059141858573684779993576953185948940786071778443264258899501278999132467266501927418370679290487944723400064618313275517863623218414247282639345286470353851144592700190293361663815104870970513319843144757862725718994361027186977119745321020879096927065828594377413929335002375947117081464858614765696385274146505590411293631212499369986616877822136240588305121271576693105255317855053552090707203577968625901511507770043683974022091173150062344346980557531308365674572539700783310750420239919461361588931259149342150140249411647847925183287969850078051786712942506571436231071002080346214955993444147919546755431624891810207590853051656495697488674609513723890355878985367211564104712798613043964217546296161470737822305118330102936332647842740701472864734764966651817062599010508742584139213506594051519256979365499116990231327570706512119732676398061130010731871165397378348598830851527089415396641595846597747608451821328439586090866693720446197570449005670032539111231459069505849680013625643611008139996759321693265981057708570416320003411403624687126977433972358169233241318758092488808434141079693827409072760274916786760853016693136201054811282899683505326574019855191282804655890317599533910001717538561450136681848287745858482378560989556521121690126489316561458842026556375135767251982267554623239728411339073219939800431664536058446218616379170323354884472412274983880540122780675533640049491357296805222920221780166219971742231554733296667294041481723739143719346993312399870695568431242067366283650010210595218419668536218072943332655717182021013035175588199221458815950966562819535037119271845745239061887681923135927511638393340712850778769764564373257729246670656197581831168283696512092565568216895755021899742040804790907255008332482555451122539790509587244806183757760184129635158921272133178420828104962820138793548465076973530735222789719661028059088163395842512384772849929934190567597734096647707549165997402802429684660113742579930056989445731440365023258811561041964550093396038343492405388440482209246894394920661681897773807970791028124724655841579981215202512388944965056626082512423985666373266583873854620903773965375369399860748585488004464187984923198894281877004381573976602997092410327787003375433203226484320195801306007283381081684275742140974497491406616908240988976954293505135916528026033687876031037323731307009536743471672002131584326850147692642872458163711428259745029106429395465339183724279964853529465533406506979656073200721227457130965691927984940063432598932321145139155896759982536216177500038334414904888685638091307498031094483280039226950830734773928370402691412109188666526241377458039508855853472820555080151797048384510522300110617732916627569236234645704338995079135609778455861245614831820556633907577533267286286602144345573322469533956695417365776276172294080670578520290832630855439694640427306517888520045912087698817309397879664395083425540803893154443441327450379168116476744512858234436250104119553448919022254067047994276326576387252390298112509758419174726505546002149221438357199753758042741560655090866951015695176524148496878072855695294619434601848121955359897544827689859255375481039179886711469280271667592139766811278456693826821016700685826742568301072934207321174359288080832197077846978421039800617546534926376527659872729813784979277922375652373878747363245645276417848987572854657999683027545832985042011877189825769265307542432467823327318115214232159217907854238430522864475481842564848978467370817944996439547220931946106301541498945243839788038217966312773221607870004141480355156254537061073970704867805214111228589052908263590354229632099329790860376178407571468478288882162604258629604301084022406486544441093207385320374127912442892722687984001010031694514921729269505324010411177221890597670143222250804943899764985544809427429689479347656654805199805618569474663113370153463186204034517388808301850381037804589323107251285709165888017278045525009996424229977004718912635511865978560142553996766244452659721734821770588422609732044846983151574015611879451540702579250320167624099819446231799359427438106988256076246401879951702016598514199594571000848485092964268903115376140878768590787471007214167291438706224044182804236411695091672187768597816712063980249321012359372478782390449922190554910950227983671039876753233734469357693263091946662185981087990164341184169585493703626967705766674573898864463491193475027589283360299775412925715290973486877960436950575814865341912159194371176618521204327274198604388416352411041626916698668981971828596911798721139244004157317715707181038558533521203314049757618456871280012244454861355225349879406224353305022587615486601662743469153954408856776221369167134614731987442459632792961009683997226282712875091072955422726949499489059689101786718974352898744095076058659951085638248679893638604689369699461931952893833942487354845945366538315868543099798959788362270311358004981274009494672337452965731069469365208681753611355030309523087115633015040249239121447784725263626652047723185455794643741852381880232234603574633512377491344376573690381769255172879803537359610628667441824752100035985534811145007230787055841449304286590758755318240098205185982924824900450099146517935658475859664866956002258531370482260041786452443245070081708457716923871896576866745242596963832698117366894204002956504289595906563824187500556558881721170249421635338536388360142060867685952062499131632876082668715761058350784156591129309652280012163617984787598537772377700905149100179386678129083065374480741052198033007242132582106333052677696151374812808835077774132130354435199432526228380505466828248239617085447826140818864174110043900448841736409169265536374895603055835070558595409924574244065656087796305396500355752239494287264752696508599339993387233606340697493253034834733287580189939574310149258118093008930825848443636528502416960098028423024213528100012669313344766121153238373984991159610084539038053393072211788461564499912515267685405706027132714058142093516126130579038781860838295704201108100753497143252580001774190602509469321922593532528696225082927101401850284439738203680441087627234607993403557321222838126432169532081285083053445871285049392937283159454757238567800950761438510627708568950901704589197099172622789235872096747980860940752812361469196380922944112408796837044554952541353857397145628638557496132033276873183047731768701968463995737008720444910055338738383075472195070145348032849651693372463462270932705484006674700943841199128091487608808763467448846679712759052376752755592996912828515887047101457575101633987655038187849236018311619756570443003190280623993125143527240793230571107413588117952280327035463567990510697108998289607015903053742701261565670645206559162587965486825527773294267965894645354159785026599889326644994978726655400205484100019273450500507584640995188595145081357815944445313444601492618002582903046013538066277235904625452576622955009774705860248335034223511272601204298697622671225271719145961894535564072629765803404030948125838471152758547115325146560755084319844090624471014233473959789300628148068489775207755217286484503335801463340747351514233569790307713819744339698810269484216665889640410599667097157753010096605770479708074590285139647971982885896214359702296158644238713034064610485252452276528627701919283231352609107884679158263625243352385833709802241520987983919206652260851996813101515058480910530822576945397550601927962376177685625194536093782314067583150575035198985549671860714561110118220155853005719194853973447177454625241937034478008895044294829964832625579257953622543891370126762600580242647687699642044882161521998697507535482752158657121052709677243903105505261784395308546260269127238506979338486922808118772960439452879426864067387115490745952624239308711889152932774001231393378104202521849265173719435030934909170536419082675840506970656825880349469217970151570386559861162955065182074199004335939980210067232876877346584648256299671822971571425742301645258354307744219246271838634426046676360241143901329237854817498746658230127908533936936325052979875385156990110319449787074287776852427925448751354618665379495698690968970008696028369677386356654851018492414282315426177935660000734205928270266525850425228370008911131337677733667545352375422904799896004425008825642933612293742949016693926360686445489981603745056408351648413197537225035947133766850825852900152018163423125373009450170186267981824174819373455335481865751949138419057083176145037509721294510661153919413783027049466574833091627422816120542054683232124235229349553979441586196807153106674534672197684950379733473957631819150183063134343202293866385820930799932555265052104265911316865207658078653110493515641729532818893606508756465771224206820034514577948174290371353408596250221600093856387574548594378117649708893088542725033523461341687561409322498065611466308195116110863275939180904105603302931374625967663974051268581805701238279342133619111666466636621570389351407417658696742359048140360341437336452016731080409468047176708618037178855514262500964265949873878063963068997788651616453039473172886596912271563440945020007342727228118502228842789324425207807788226110000737900867950827140173408355755747645449310788558553949539303528462311916590563929889300256436254534961075570107615871146311374440243040168969643963527529736439073009945342292000354770177281712907748110555219878698876489486176190101412106745776336059950675386676877681517918630670247751892923014042052308470151283566471242548095019440726454902051514937153364789003866109721880239754092457545296430259660188114307014321913695469321591910257919007199447772405667385192922426239546357225436966132179235466329582561092124479128789468581765427545633935187880405284864287826222089931514320380165596010205750170337341644594270161810511036058056471789661066388503235190658723012301802785011543883710245540956458267012598738467017741243055457119240753868206765901615238257339716369353711027391125294680285192470621986208197062606286142442653325820471229298275735965816208325479430618901535243130268381377377925409716321993237609388823558423465420198830727334613859265822276985465447213821334164771013014849371813555717289282894588663621618590669309849796225624760528950751568649373258537385083641572506699191609602768870131613208796642233207139332741119832883137577060975743946636936543408925428550762176482233485406923479349473180613615057282407112501451026639158779355958521281664686104448866213555158303216441604126636969153410833567945185315566906937226382962956219365137952145061788140475794377841160677205658781643329648920677353203218054520993014840727801259055260385946971245253987238783279253066439682255762172979198454753251622502407718214145157992021400681558623125985868331308104678880720173926601206892882191961679865501405959732682360645076972375642100603216212233435445740914844097574495552957559216385378655385814372374654184250406102532736045163339329037157855118937497781432535548733108969652138998131278063169851747101093103538684534313825168502855506276850788925810553599982278460543673215582646622133434988553622110592416008919404511699653576920455774665509098908832940282303451241777954282840375984561483443995173330315400510212679266113158604362972881365527754390611880843397382818761920580299756105240635674062119356527257147396012572236153817770640530321431343133973343902818082636946573769501034207464852732962703834332002670896988805880988397044922694540031958776308887233411119793958181480112485630807905643551766679569464004370682998270685935657527141864692845384510154018058270008358173650684373635276452753242064566477149207312784165182605455850574029261511569718318796082003833010344169974294676837116143211900233826288338577007638901818063658125586363399323690019509849046195721144977673135331927690838785484134245680222845094022324866740518465422869696067994005161492466096259714747573314526819771819888769725651224385951157002733230459289924723529862145503238761986163894557027644385608837630415511963799779843388169065263656595989537173821830740758389361433556499405257359661008433604683893332764134434289099298620784839276706443255035205170744825110023413996530420035868051438508551105666322634669170885081492231837227732714449499942522146365246978953563023839466451469028625269178054374235486294729876070985043126949049267387537328282816072202635006005676745280726056623359679807104165347257118943614381346085276394857871851901189494082923353214379076912371165663965181695987435715453761395797700219132426243133737433599787227997038860538476912636658995171033259353038141592708401263791353245420772446169121031073968241210658108971724035890985938309188696263150612399850509389090536836277843142757765148363417924136143929164458683523600636152773251257862469501732385963136920714106441392260733996414784944240162137183277570430100016566789829423880489322069708871382099756575698326128898826112685100412797593695107237389539440971876823430503403943479993155430595785167785200928298088480813941448459828224113585275872475009445562957767618207357357268364161677113082552625260618725615800823255456977061916229502108899472219585162940294691526329327466163298460604555486601812567626289264016836093119407330674400163399340393338913782290631358951894202097255923307443994861833640714497298723798760577802581756008578195564984367744936029356227285465911728841210415406063107058758585690097301236177187620060653187298377997740626841890382722983984514504555006742931585340628637958327025632637663146413741961170050462134542702482287314614622841494278239133521852037089036194289299207713633604670805187476079885720310768754743016620564578371131950724000797048635968859259025948712207527005412486369374668732212168740645589480856016242020251028439695148216349819922420968276567252881195252906545663123442838136955028258008550430682169469063636460193044898197116943202783303414104258817678166299373715320052873843009078624748877506498372619090660960283963750260262179363545221026158643479502618268471980150693149373979406142267269144815794704902541992802178446775582968391386063738064458226058449970239352877495282238514712975024411590801417388512672807216187513704561804332775245218962760646789031590235556779442855523889717714865627923545327084752999987147804524583668092421033056895407994801486644070353107496099904555141469956556646065249304546249787648716900078835766884262289483950414038114835747729021759961327797123880783080622219141950508613876331848978106615608133616985248313256892291886247637223031452180905649154458647918685941200739511283287303268412954805617928000619537932065441749901246855492112879422144316613519776645432750547100752417116990292715236500650039273391057679837571342523804725972537055861617159572092966887635574348325406245441471568361603551311522602684075856264565965836265030001167412303277177314805091505875298699937055945056670823227778538667578739374604409676531821637382679504507819864161480274713970381456315487355606735304719157658324653350164782285923150421254218035246457057983372895685334731446209192319721395639844655413318798285540628344840125642475850771035005011361872912292451315274450562821632394777354227915330756317763409684173844236728551147368582934087596398368121409326873371441643677280055676869293114361431133989414940234166093387490583879825365848952228951911665323647439604120372851172335907192361517242837647113041546178045906587860115221552313183715335478397949232274138880601975418143019235115958874658512552938765552863795878224161490972757687936674619455883219772439748190519193938662500092732542721301604995459728924401615070876103960951164514084498289671191372691722583999060169052330799859852217536767343707288598397643822627729557937529117807487632938499322968312468270089300393739509673900103382412175982315426499151247485553217912225804532205064380531247924796188346098569751745819911121065146684912236660083267395344041316442308287501687983555637402805888172063985061158501512456615181060148706233033265870761276703016873412672164458003125382583090828747881851898167059333974697890287611101832995463921877633573822340514514568491347728782083123854722474630741938846810048736421738849370337409179197964035919524629192296972173806828783538546304660667655885517954297432965154404514276321538357494866593657436837910210067779284449049961048446741547237835031035960324995813015491576208633721045686037304940620025013285234721352323178988205135702844546454509022258440739966290495513315563212739416823400715804841029307734913488999042813408769994719715679867414527590755866903000998091621990579126093123573166183283442543475944335654064318487403620983536070065037771288855218664602590881005246712014282752580584320848404559060343335409723725694591522212578271239534854293079462508579520201436596120812787448790418981653650255018599647147959387188019577473690241430911848212879805402364135866766183512308139383820970310304759380269722800656652232165037275137502965794597160633029329613479240464895310183798398012973771047517702722918036061857552707708553654852591310328430211634601449047052253289093220832582355073694721095012132286639472581010782022275648008687706671438528626994559386079018032646357493137042364741822026362610778483493222415128506028984120240900253906685790340521380566230508795320387580378817002783691900399509376754906073671994145378653387331195830464490922665677276595618042933988110346962289763285207285761292354153728286691188128102906315121302728010069824342950501698821254119002656187100846353439864708900891394307498827032209497896389959665801379126785483055063086995985938580366408224464217959556279360613335601806458590517958714266269161762343610824560492084424477348537104800240293749754520439593207919789998129710441266176868080464763391334119499719322221112264967738177302969432221091662735716884952609902428903442495527470566348917521345150992385460459376933905915765314882425142450725336900733787467457749513393682015728721054780136947622021938425426824431357580539499544451858848260610965656706696190228180784802764970579223515943104692301501748759175035424766005519274656213906392518062361843869895959472361579557217145405956911246629936560005778953548681120648294028050038170652216189723053354587547764089669937987257321519082618909225392790043094303620971428174315799368055695887372937544297513747425823395790157480999696953709221972829284526142681594707298742786098534447883568934778351204041673265246370895309738192886747285610367688129228914907845460868620047485521446081201204168217130680040261946565971146874226927012261011492012011497992240091276718905548231825791467569066088260661315742572109776775672478412443711638442402879551421355234803230612583902337374061757057775870052208296280560319049994897389748892552312563827139825028905557148768814655110763960184737931723964288379175843540017653681367564548062056454733426235907389037645657582410715766961495348992300720474933442150818038158264008155909437802144586942827844402544734635680581420355931948347952326171592645636768197125552033647000486862472503915323866307210373337958527179859434523097184687046152519300177561293930214234188467036585243156485007992461661325708049760868955719862824524423388219727617322052815164129641606353930600674757768975542671850243751508544081144100873008397941151489889112912024545994579225045646731306118273332302063293220647868362092031020860483194918443110176207048012427673357145744922725561469792190827368875079299417471950962088221592338858711031016621171438165478405863479845187723817968799941981373233389735506801581966366577409431260742371918778957434749436890439594104761290586073173937257501686080234941281713344915948028401759466429111099670550331286579114439703052982423027858266415948353784343140426723167758614583181380745922737195917711621317787216090691187513053337369447524228959536895301019169246594892464522641683513997784121664819801379655494822397861078818811629904572981112616846972734951210069625128406214733241084457955356026506577950268806734477803013435615780497152587499358741875936933240070617620180231998893004009400637490837140776180504573957951421658456973726007105943676313093068212034494475556642305931659006652322906720615878245818132862900012994138243978414651349992200225346953478613492838195051523395928624019514984620743754529100042771669627720244863724969393463807110933877052976059849290880903350116948520596578407292330182392015369397753006075069117678726958402565419219424737135730299962024033483620400432026671216571421822830762810385754894067605609030968523580403387374367993833845261757244238372708139886971649547408360076650886152414953188239493841970476166631522799649584137613792654312146425423577703766003029705942773284118279508148421917996792131875934280428078928449964873396187215323740619155122917905697138114079878827672249066243440299306228314618952530844301521845816880732743608653962706735620548882551059085881502315804692737594945503057623771661223148631557135597246848198134856476134499068806660458704828577509355789484235197100549840070705771425259819119978970062852994045455817719913883181490014161559365600868794377186946330615632316293426727852833574786002516845247515526774814750782342889598241473064059064578998097558995124236754377126532362883682976272429858395588170380802081509835411624000271628479227775347465007048531669355215209951045817798609742343526164280014433010393349332992927095861975373596411040178717877047555697566148539242222100682554843967491308714198235777845609572269958659601858363724736542564340018521034401484505266589429702794977358228105480238340216167332378628261627517306558618472808779425695418987641554742345910587571118019522930468010269076704041615652405250801897047867009137202804243520747849133137075515567125583039153818616238794916297048815114320929929330936143429740372962377508611341515579895320843331389297077028132429395190374738271495960502899862632990539246999148734734178219312055725473152693670472031453478469196930667799673292468391492242384024081898717229162623992053952633494123324247680008150453674166651819480568877042409852091539108300171728030691554739134045732597470654035633329668428424898280070706955998147116256470636116903389155479477466008679626347783356732935755605403856383740908761706250943661800141223652802033301692810457384993895004848162512333233628185583617485627316591604091407200322179257831184357679036682026664107293964508893387332455190797068619729984280158659904586907008072010909490690293983156762137395117214055516387725725878133015335290590010650923306703704474919059512437731661922042756494122076403413899189184517644709876601196350561252324008639741392781517777729852043185333330117191596459982603540633511218969655977448412868860699572576364057577224640973482676090775858450766335843539549321493863563474141929964313604286431214421412385221476320727210945395804253282634730336094646845322293012025953337655593252352035793531501368208370608734512104285704349472631856294303772620256844191602123821338924890021193456103475260732677639582364122183400571214088263103789702643291152842803196833588493866842183841324558093185591122379125268546918900335181900658489240200899417988479886951455802654168378333064862440910717796000907702926308290478982545471525838248655191190119263200706417965286299442541601946547543840353383504786399217004777371903384753791410078038250601105152598938047253930738467745834305043553017168031575734130706508537264575021805515744660350104871117998702866334260665147469223406003568846641322808292193470245163496830271141528464767296251510693911517815583267534775556093799560040909123784478713221619022156620549419787043519039184538505686810427838438742806957635741783157059524233748512825698039661675743012656567156052145786619423884003764183462609513256528552345151201103438967904453080770834672178440071128481848903817796077879515122487943763201931607231697772519508496000958502869385256649103176644171276615982696821485721138619243857263171722582365923571368239922310718197554089548752619863219922826890631036969659075169126789382509326685266759749667012771089336262233949155510787784267354577902431367963285235348493616456501588205857067316363398448881293242267763808692832516331669318761098498630675145205117988012775187769725765553437852376451531657142303029523045683649115011520318259744604365662893407490701604126575792985864449544457452764451618455445445729368134340136765328986343378618964706160798617917244748027948027456761225109708652853393150057665763617958714652238537636403654175686070412481628999861958232899216631962859921981119291183633877865742612774073145825231393913536835501236407177995923027605483703527944415578057724578832049026849470361054540508343740478084416157171306240028500975121518050074718322884375432350691094051008567800690566696919363279946944735129829309341605693123693837992787325189881372632638845619216728903375047895472133025413024446654776183496427356133472442446184396224701801882519937952185558399484005055174613738619495596283336510112744020317188048505670376693766089603868066381583480299858017945726651584823479209044142079708585500395332072306668107155478505817227508714670840642235016457153973705357205495946114822650533441792562188407572317216902549769165093154832708761391753509538947700302741427831252477907474346615032173154019433026603813301908741034889697759529960110844699584313122805878785377431021771087822428846393808785082336153115362217843616136916871282500811374183191842924505026102191375677688409513637440060052963409412732466828901234617937745099513757388399074826703692138397798034035181631792294280629188988645305737613928029018255172565951467588810399902444207306617029939934482107836755702132576067081674928085803083906899157763112726965459110342793408436022223938210407024268305812514033087391833440087226645402829622933976854797349894558469857961051851935711757737614877144173903326381383792270897247589892593727066737574851482618690976524655251060273646551222843234795463336633926877911617998115100785124645047027397560390971763896631181755332250259264582410663755325978498592311617342769163750305424244134054206286531122309216889581476495960823267381618576236395611231702221223018647407386195350309743325003341381192796895609061017269633951564756274332622779556152120034716703089092237540687812548389876100611968713514031365642714241373450987546467966983344415625676158324637274690561872436779185315961828947959091894760694490107461348888330788164813969616809692978258920320910667570700705809959137151670575873766499001556774443618009940959265922012588828140293828861022759841979641292047044598130442747234100957760450169766038850275493867624232380129307895143835456833525677301693533337147892287316680117508612546168987076451689084040195821972399386143005119051054044816784583773415778728029262080177458004532412601123633839754538548512876490786939851368045430164649518329239719966734494145766514516040110895016353529654721732842457521632986492122299498451169683613982092559896844732651107611185571519751497237675265265309311297916808982917690672326761976848359952919849977455071630178155025145476981653134721151709205052983092841499716112368076652145923769343649912532049906850158137319706910200580752478306453605133195591868203953943586114374896468831980649358495211656320060907818604161194177413555695865745110276016089209218899528494262489363952084195692299508758825038339134799928734621857540322294774366474649318643433743897042986776183215312185091381011982504831977861316147662927945229634330633117706170993066791051785140828393488302477884074985180924834265883087464053077621743653366715840275038667483064857035689738773402625743767323246424429378535537308154823731666770519431304100396312695273260305391017455875220871372969688624838202610368944733054020904636774300241192721387035530430450847774655004320932457790435884769498844599349419293097271456840436790420818645229494261595493624808645084478947062788122425171240905812999375001262017512991309878232335574848427089998657999593592849391383760864286895753640668801980169205369214134245544715611478920763695512882589971295145015605828674535696973716112794595089744904281890184355052429362309707253793147808611132776897757377891620218142854028053895793481697716159797960650577469141523741440175529438232392143277240295026654077622026562104907207630480184892911630014398360934473755113499452478354014723895782297339222022851023864445891508032183921245014406782539696610638663428144863237969696295068590514003017102307370775014062682086997385643052854509571142159903852013694778584834616158088360715750682271071490473469363378123117700532310769660235023599254896309067367612770387853048981911513032702882143951325569686226316372827314784321309655480964924240435592565254780868566102866115004271624979464651006837507422473158504225501219852326314213623837272955423989144035237888644540232390139413564186974206847039272296632119478857178429509992553038002511603769181631047088105676820092645493540065928236374170258873694278519871692526086514909077875156886018209232056071278480547428646467660821492350794821477162548191364148186317390301532884572904240969423590192919595053584082293790283446742847519734757334810718520360941847626896441177447397482383986297553689304935150947136430836385338215730771739827834036154238364247916168186633379699270490311922822232795833804940412552160291974062820664282442800936164761833125843069697015740063812634781007222940255843297914507930525587820830470114439310663976100076456342770515129282604007527963475203426281712703980345222269895933557403648550478743845948814004489280079091590184535671851266556802724433521192454773414394441403324201507177294807888240940008111170009695155229943570175635217417856372718944481438124245684930056460602528122721174194007055655876329566998418874412285183310749809089718508783835989789684147449259809114772321473060780750704601838878862970031291119426659136855017879557544635407449284679418250764151337859027831685980552141824876172982776553812713163524535370475568876153885855055870015366470844627461718362011920604539500053617953880689195934222559233448505392474814695901196100452545132325358858349373127252573630096500059267567245008237563140646355364362536628032685167340133003826446941307882654610531354067347698193978711281547568010022697821624232450864750077126919101380677883418650904399074664255696774204732975537647190223698514284625570509002192266373172194070809648217648897076716049632018829734507465913198314205766063059531089824650835728145557983138774295837179688891113871048886917960065590990986186592892463558379013105280719440944885089051697236806772717699114735133805927272551657569503054066901988171620927942534401515846576421236222208600176324081776212752481921964961191849241112453066234590410078383668253834597338768754331918742415463203244387681414096942379557124849126361948433945203895468755314995059507324447649284894538695054365029578589819054960026391867215793670294699885531339012952372426025904458885443653192145340757483527595413291387001441670016494319147963335100988015680375727363610139877785597374932777353410142206272873429938561586559912227381826918626875545631756269095985007800093600796337466012873392940742465602703119534401277019409354509357178877484437249837536203603055964278197265021179022202067598482481618215603631845940059826904538944546775853303257216395833607848282908631116106690539196698307364927346809428590857424425389119848163680236579705549621865921850009903202739791251697639488912610105798960888185760806311444010305190893620118925003222675999624829862496543152828124164878639401913930351950190192020808011971536304344383417854977153488165205047193389220572454365120724463797398879060373891460199016034746704038207697447587215751999929337311989304243677261129859438095076272247719927224209786075549149075356827259877448740046744347448777404523894506562002819378402904126091301891775490371413033117363694448178534929406186774555428601123848909164936590965781728493679463454857180118666272040862460612526219340121044229335229876856329856440196707554233479023526189273251050733641562734323298874718919852044118700669025074173610309885595088053998910052493356964136805579960951696122640316732544882455048108834286555861625421219712866404333375519548539622458453073862873322141820026605968829460349236613411910364117352698562093197789775806840956003109759760992060089205787577533375039075055075670633877779229605049038719796166748734806701381302068365024791088057190567064750457790515005761880890546437136011901558479310013511712411628327267410524633038676453896194813484052951200389232935993562099397907932662215978173636551517049542622927068930689727677772063122384935636338589249274751869384286343176396092748866486090315083010578085004315096499378423917929793166947506982078840095421324097941982742293974652122307503210065123328545251709588098830085088210889426234807349078981906300553147394960755958211053950616122183624921146041303591995686726820465352099190774660349486720635381635149727336559941958825078067652625751361299921994176081155401094920662993651271803379131192867683470282571797987771556403103676768172357240402450082048106908535440351926825609634027112878193707125490180341926182484167709425758001070277122090297530005959075638515698849387273913513303510921322413891719380013662408214501739629696882391947127310756985858398528113113406462106327883914671494239933930786120764043419587656287303497881576970761992824834293254083473655354032254807740199427846293177342558125145686725749667816267951623937065080101463904698449531947913345987126073137424149211403668951716549601179105705568551785655679498564160642159342656137409271128461367645228460053292468688126265138941844010308106073323723452518237785085633832121926819106939715231009691656564808136203954568772033135527594792884060307051577880073435528621763094446757420541722888092000418524513036809213865867550352135888491576285219037112485929853205420967682839409239027488294425324895122121175527146777016301232236035652332737442636734150762296558923888537300461535177564539357271536808230779808759093132936367358501487032020257284186852037241777649565159517301821920588786385514423612712299728266432646967428504562571310894437376206124535340549064858102398803632360780486820096314749208624827321986515599213914884949281778139145572488203091263244697789288755737098119435320104146924155070418399009359306762484129770535645406544588426743293809865581817690933389606027373996637654346024238141661053196931479774277615826441863337211389572475181605696869443615177384972510330488656434173346953037039843270275278314925014669255357123592244465774147270730604508894029148963840854633246453746606285991261431807364603422751394209142571534903991327197633307901143328563034091430977669207198369480611107055965299986045575343579723191573996954917468513296341953557634112595810376679234300352606038347951003148147033782916646310874273864738298946443365529752166305907047042462566434670931447251514343425316857167629562651485085506631705277189923025540545360556401509497270347423992706404631809905664836339929209228910764268974954343479855623631875460515363296108919376664153060384843194907640410095030835456862940041899634282211952816768527381763290519302523641098331018800843813842736205485226978342530657707683924409970714188535681156544881184273699993268602484978563684592723072641232428154569760965268461305911742388502586138999888293201544683249076200655224483614625920212692525548057979595060717761573343758039715441929635540350272103884567468425583555059344146654609926077804133370143976318218378960459702580338187517740575601650374860410511099856965798558607396454772273695842407178339985993174203162369555330240359652857988273885354205046633091276563071223258056284832928256319238512238262325146176965154983260880032288003240116691365516932365199470234805292007118114867221592053195343240901162057589190437556253992401128364895545759602627528623559429553112506071526472653687590886893021081738140182950366213923762211773238309787936246676443390662549864254803361090220455045440063291834920494549833544109173329758116707911130758812431767707699252592357315847760304428082808764970718232700977914318019112215802718163813242986654645066147397049321899458971987580935122025676728739731480545658777364707938778230983319849048771668184622798183432205243125242342609134723000640376968228754973520259942604170120913315907568115809094201529107351253150829683758462498133411735338386053950272695987474317619789284309270909278800448878122319515247743896667740037185182737425245222545457204604641914756560123656219876568200792214376877463256753201887033257979919168485144112585768444994048452577257373452124962352178320207331874777940174504391426512604880069728082668517674820788944944040533785945042807306157395732802372074184440191299851640734424289979274546906476542807713126555954404681953968708866744401774521424956508923964976194916468277529241688282332692761257973596658395905762536593040114307007655042872947123670156259039255508359197625424731230285544372970091695233750126348050814581883842602458873072758848714716470496024786251939701298528661034743406122566698252924907053328733052275016129085661360154928386606503912772886905837747005163582036799304263135634003860534046340134054785495269892239266894549863501646530925578237089680197126963614856312191594051806346604079129467514838303449884979633826587553259735256528331519684103623876399922022570251392786513479557548979279224805448654451837519212446881190616060285490806696093631096026312113884372906927331784631646398965831694877906143676846050755495172445526131939168146221179131515848382838263924106224097390548142637381219212997485054886770878520600223747864305535152245757849455157786016980497093530889124062593955838067161495302690368727027750693972765242989511155840955044648552728765566236791196201302825978326676415787654125400445491271795197770914703951997957832532450719548126670821519973534324942289746650032014099089282945458386807317751661579622015635848892711589752417997047233328640331492139726221214990252654918355404027695821555419094908631747433260397689902592515043218823022686719267144287788538455225652815001848823702956945277369102557212918332713645043141589203199491204829617793999866950480973243083563939646979541912427870159127383780553371151251130012713886374096755037534484446535248933164400625787158170487000314133483700852831184854495950369017826781975284726930264600198040693743856243306606527136686426669536573408937942600849628533866337919823681288649727770226581753008177770395315117317230434498008437988552431443352607905678868476772515406950173673458215488655486402846226327276178162735255205750792923137501378252479227990247327574683864457224751547134284184376006586404696117155329213051113156303902211370390198723222035214376031666826301890821324933177851713747561207803862676748140477965272087933478053888835566816345077886951280413962900132066635821329308189927638369393256111709398677428056390899782835884418749479201244780304086744550915416724793315361739905445823007832175704161443776942147269598711631431327034067547054419196361816517991950870991037332023549393112386369101868207650631511499713810215241416308723531649004874320437670391136302485007813909309876972092908538715034378997973472807353885872387739645150291832238124109951679090348063418845414265118688074623199571374669958149082084101751181135295237555227301437652229671635575672237088171857926836191310240247785162993155627723509029992545461392973676134977862830842526229542244476944131880934842123973218634863327903340309974166571395722617775324526652830911228732549315734209134302037641499026773239434503857988093652790953234194264885484490970601984101098830434237725143532017020782645050796768902029250579814377755094830497575918458510538476431650060830621249891632016572197005785891539808233647944279162958907918775843991198904630884899446841139113978550486185288785480344744163620260830108623221490283056948910141434336264944124823285926240291063985893755941060953094739765470561177039556769058895517934724716245174223720933202240250342560237032222153066830612345073564411417079121784502984395451706639436275280547533526587357704878556233405873592861713880592194577266230462755743102294221051383675834102384963700883446768529695356485563517209095073081528339223282293747241941145745295396427640044617687359352523628235386851465132740210578624639962495759665015690597381218416566303273975507752174839383509488044896461404010723462573270766952305834472500697232896392133243384095745404228588208051011317496477142140560613485761966012470902614568161368171063871512194666715724655279992956371332541382328160345511808537161798344639869143604633540074246374072217243503162990719906390421472225224098123884642222521312846976625760324349417865227932662742951751730985100343713678620209807103980077353487628965929780491532755827036583383696104088116738180323250530420909595134470437956632768008117207881255161360252444702348026581225515032244800192323553341610778719082947162624202470218522488322655450573950582227874304945673044372219804947022650858180001563443920539866511906274438691436166639190377074190490034456087649238421533557326052414903716549925585826609421990281073703147140576858005646911745643462844774732819375150905021652203175346872452793818273835721886393101488590692452491703769722081010333835403531608773802512972179851604668309041605594966199685243082038694157811599189749041707867203513678416690243211479766184841763523186672828064052821722940756462434111329286129380816237391086849989006794460262111420982147221124555281999192310377744969960385677940451960899760333397758184832457102565878858376295909040518217549935200667635601366896084543867325196265173980364118966814772612593152168768496947232171505444452861432484710062559035188567800057477777737032835096921441516885280379475533925038262352633208065447153331398240903275822294548873477411498090336435961303989307733396011895828810734137566760844780426973622301182453139925468821869746805907716987341651924345067101338032451686912253494626741815608193464715524809572665824843847531324450917198182326065237223421513854877722522334629048256490287800715165329975729608085531714955669740053727441673311640063951033764152919012934285438815743009935445759174071036682298278096537638500662421091679590783392749039689071729743964898908613654097344398170133810323648040193148913931625500217809759373246822770111846735009481961538568814251373922731539293916100751246207286300609027443478595234889390218040756778410884282036662170199821398799863888357447825863604756011106538950202739307109864150350912908608276323592569203664789450161071146872809848680728513116628826843859340888039969858931341754926975053748710615475630595714467683779600420822917710063931403325524964816825142420326679525871433519410705704989845471845333565245205132161521701574185353498096966445713708426314036446605401122240558329240240185713756214193830555460848260980258018389288361951050676795248762441442885577158252556230282820322463306382882487153668228555845038001520098374533467617379583561414627225721446501855129899051897584516834084434049561887677822983403453871413141481415701596164095188747062420328585268359315396758658364969031190582998246167988412229994672316469321147508823519608450410188229931299465736714928270879077200287207228730242405481713976698932669434086921311754829454974961023532968574823124674569606039330279655943551468612649241472857037879369027945405478274766712576360624091516050036422496144817388524066296445539934645796567332766037997211345577822679018018869099540813698451278108092543584791203883952271652975614030819829278769669307750348526387776273953873179600264683300198686035052310493808821891261384592887868347594239590361904442991634051884433450425625144183629810254842774829642788920566717762269688675745036323984510150268138764048563392097007787322798666786251670179350647847379864656543335785987404241864880921584965708086159873831376727474957598214094857484992663499288998153960741195539918551357035065590981067862872541084546396887524594290208782960214092011548409818330185135983304277086458890438806848712052532826651728550003148300082361814335531597411187289946835595567367968083311395402751515220884752324780513424240993533645393416056849699005271827237811922643439742491895274943251367890208132333990044071877724658663978774730246949591539989366140958879468781085006187051668571768446747614784507483090517325001984802965515842222113668231933275297700890301014932682929980873570044307188831137422183396561118447841698922110928555925976987282881837976808981952595381696375142147248572435071513837758834156270884004628778213410704429051330185330394801071343843237999293045631902212041314646646441362233674186320885762687856832234010230713793675424421285813711191341166216524068538411333355588766024867454624083631837958118940923172829266290668394433167767466485728517413293930911557005446719041559138686037862187494233541866034083494507851067833751706433023182884576280670069831568794966924121610791952851131037174069457009473346656679023778735064825658083551981415188547808439041623387793132569150599239025914616082387766544906644392224329534753889068123018074515646023576387604941350370002318106865408624319765237261500723368811233783837044726996186638051180352194678245994785918531043478801053859968619137418286214207535368946951500309683991783081328447131546794954923937716808684088097638624398009670415065012797425230342603089404749767837534207879121605073273202375862763752207278944146300134889531564042725888097858463697397697876386688744528519959444066604679408691549129422077150909690142315686304193343814623705078051168101074494362291662226015770403012552483655121433511345377215925371618589582119574564597354014654535887135890813154807543616519795037491846709613183963710498451837549347504217975590734977465920285286111191931490182895687958326494523107501106042530198183164249883266262052182032818419327066232195853996788674926211674834066172598713418023909362484061758133193939569217896891697509033969877363324886929972949562737161893688159456208060733304926454284968714712618926928654545318631493216827611038924878351358243016837283082446689613644815442050163116392645619742081107048366357254345271501047619336424156497031122865183219868400026515059348878327648289542939744893510630571904468632517517182814376856976970934004353863191463465168316814034652373072198080193909544678992393585039047021947072491148892891761431933425374047182957879043521990687761755037466100444350597908584558882997235491487215670293447406155932019586246358890026731051299310047028842330208675151178391073251545742998271991835531792904800062496311174898478122915214571977489469530892596283493877961880162550804060710192251956205553276985312744670280530558060151572710567041515133304197422102918060049943574387100527660628262094722784886003700514579274984830587821689295394482477987063743797159136170230208993401887372541993202751055143414477859004094337698016542023761808222504240767415095539954985762909630275247406371265437006205703594515122753019666142697593600414621791264592496062765818727064532278580127952095017903181955294414462744175050294077854190942665113436065567884235125415284800852187541190115199192384209561391363686940586076083110516117709411728423283212546339439705890540148888478192167933556935797976308287696343824659712883756735666622149455967719563213870740134079296703490955798822995328599290357069592731729742394441517837588585640968390886033270525935135632834669387835880706691686150690553820421235330091485637961094887918653237007891234548468782179990002653662641044541780145620850885386821546748004212838629545275709497482994191976138154477540838163512563285617202202094645981529685558773142889144452497934732647070302566999138703998859044068884924179354292935028613644457634810099531954530792003333824279023893135746485143462623263763766756236626751208488285163578583864303227916816663739557955232743777256784492091863831872216643588830305607164937647300434767094514506789679073817964365582998103110732742874044893708797742428530907276918260959990263720865605349949433919284638065192237010378182201751972848550136451999784474991259043443134413133163649501696742426125108718766686368411175670865478915508524284467686587098160367764754210345286061085217703200482490744930146468614861296178488598448774383208180366402598079584438897434809798299071148258353018300823630173335748183971677094511536200740125484075771230332540653281868417073754526241130517073073239568655148390958790814394991007486487632885675551407860495122658378874434394368402641447936036614506885326404232589780345045763562624137900889401286479834174502207537813835402308941851785898701997489532627873704152795310895639985280769816874210386649971093100846586104596151561377517292508850531711929409736470952524266940018289668375857880632639468167663575655818430898758230936084819656176708365970768348078916895002834068254031427478634650428899245707683694916616176417027697197736338662023928083222613661063815801712315438936021838882414005836119506209484274710743081952129168860002506624033415972272073236022231041034881269728129176382167182527752236686951294660158867621487666468656042832055726560800524810984165573509924520909347409645064188098202159161306509548713685363235464057872669174096631390885951594055483660284395906008626810665750761535902379242881509178406854937485503442345887833298759060186492855546681962897079196501663167763129199882167299495096079088187554837764886182682340515013501582934525606203171539902750809228617533451998115019461203442832292093044504170731121091697858312218144793973914983120313515655421069265289507345306696098286233412285305444091769645582133255863689673329038199691674064396109013463340353591375032493271087438534712350428264599445282972787705013989296650236847743984972267260942944797027306771554921601556456926376981859058382340096432384242197085099815621433090783553507647330614058445800048857555439444485555073657403857101588533197131280334672645392784539784193960759867800368687087670092761697915741962647291163438548276945446879264233660305628134870273893295644506161029783345119380292390185840528450058694342602755358116078640139753739333243079050345448225351840811464508953302018220374575912654104554261802784732610555341572397977182531099477689347583463142891672243266761090814474922939056442411661517828720910146296463919232753072209512972266514515343968556537585270002846033452565612225490949733951136278178562365219170229158409522479757704451380245258967632801174540828321373153533888156570207464208685642346320507563995113636233648353579707034109849386295963807830915693673549394374057793501972369115172907544160421560512217116394285968895787775117737852425360200894569050181178297647185271258506504947223060443251084095825824201653167617873907069235531264053604757806568752973229470063121905211848145401405061738764331564479147228203212374179591242644774340097851844948273872933614572879019538261091409054259233014551684428760440700195938946111615539344372832102701150196371986022043695894797019844341745104000148876805769139730676883277755345255331473741156036255823831489297044886936476765698539648898766612423272578762196374048400106719187193868145039033291987586441651140233009458273581908816797771562511059103093818242357775665861921708099601635537539426803404597512994409921458747063100510808041315733944416160473099858088182355883522354847212969608587657151480485501482001685351141864439542428703899635714968632427764037470794207205782623644964489862716199292845808341191625347793839880530188240300792863532364746576525301486467983044052027235525986312800849646501481250032325594157241649282181072880712868803118387790797704702608163388287018545389129523665560026092385426423820956540289825045095130230151078299043559432453279327568345921515167953140479365330098389306968134425992408949681170690376399953721935815864906793240012768649532437024974923691701753022308656524914835391830514344391314765663594750037457657388818181672148201974797989860031515664339567967883395353720186414615711753146329377389090209163961651242278953966744113374951505539034711415780676034168742097417026881043012217382203731795960823505565318469437716933680426519543443133468083843384015775447247454059539523371942558209403375475240987767108018203609892348784556039608510024893706045196393092987510850577557783875847480565053735609195178238450875200011353707403308594052348679175674435838773816579196813081678169316402717374728360877874515799956709861453813427052356274841491980530634318813753898233676968343895330913156008183149672829559871647139034254307781697282643688643206881506333953890625503945036604407261261658881466234583927350709058989260002875218824100938373977737578921972397269353571236615757503178971542640723611937048773189537888144365616210485032501585285928774623895655261367501325633538680290882552062098764609687633384662271883999327345259130151807548226005349956542689803302030563150885213120140378505245982060448053269881344846606962645804679989779853353073887019789422320861116226040889097601867975974338392978756762412129971591186407441048243084691013719657483690374761503080009668644027084675478377253703289361785123918749781129232050690396740706022139191643857466187851646161892523246029988374108947502706162555828409671329523986546018380178750481726834762290039114057929406465538062218036496550356151167524418294434737101577919894827137110409730936314159612853045010836970497102511385715173225044630237732429907620174250373727552039559365978344226916437877332781100193835166121212412201542199069206540884263655962969437742943633492573745904572271983457897155616656871113193964943926959904562525141355455748601638207238837371442436929278922222869676403664128589254619620102257969177273490849586627753102198655621034858559211508135144573227127889773165030911476113846362121110121371114479029288892181628984602192435512622593471093074618969695196820541342010603441998060358174932843160182148182567473643532526457553726448742003991987218375208993515433717545000312780330247846920491256273412700099865658217705381808225337009535777346693477687798324919141672931942326260689682838233873090590845947872405014404194154235581976138743262036203809910706551910242259377876691378851372544142632584448974604847175796824707830338431678732672100850449353893598456245918549079500689531249185896060902684180111092022641400269840935655361712689725091668647549672710665900188447131191518094840448543306601747806729816941502961968079820605326362932835443376464737333825985299695074573229584757002607227786153684143287589619097621471953228334812295507670480940894237549126641022903121972205300134050681549873806955647541257871447619314720246299709894308151698881986649206307532477936595163191019369527515706587722140539244947290288889704446819646722054293069362092009800404635485922414569333942115611695659553544439243285236478966973091877604339666187368113006017355365828943118651086291943054411834607397210630632165002266322536062039924790107216638858107164938095729948918632282448374099795335671997623520420898201848636881413121845483637374964982436932142659369929473284020595009585337973726958187231926817529030428923107303423313938902244456935342003126744511753652763239794097903545991811048901085589001360713358216483479974730935519290261576616651408402820866905052160371575583697050763456185768620669370299173563291504700147887335098224095256529748482788825269848267324437098928489252115906282933228447799946152355598390078488869692130175866344443433187494374074873609597803650454726955739295050615851444360216695135336668250275425348299161877662114494353409585264645740977833335218447621023081569009759431898613425478087520604707141968217633340689010171891613326270914269801886271446409569854381536270856816630630310300438203543451464913812664077271163401244289011904715693320137679155354118838375658752755933944562770688878143069480096300959343131447954814031233788511789729479765081684904293999152737367911833014357878059774391430840555214602454583574710978067031838428563304509501990607028057665201620743405230417884175744458413550302794717408839978288198126657971732026380848391148388121440069356941127746638705093592501348634514269725094117155366360386030545937829741947042971606708607423280561347925827323578512432512102417906401765154087135370322192173698531306306071415232337642767918599205630023834925816158309576202084942541703303170285961161721015722782319330204353260249598129235850912638048948215273314103433894769570434109826539792605993099794681662614110771041320578133408073850068932851477248096057979936395743298083355233067919981468806286450310492594474114216951764924773873303699217817792907358225956539240118894246980852481223348931092179931854668227350189407626969873746268397322618345108019677982375559300168077658265490928194139693500429197356345756529976529716228906636378430228166141491424109610806967820001904144173007059255585765962574776380397533867051426743469342164311059851093163470525827389614524393987141142765657265385291424692176168401223079202064111433113247034949738484071566802580632505431034537632453963247791101369335182565810829963604250654763624813887439580402853716485755287870074677318195704838976140208840655082467831934703196298489426064277947296644745456918648342243850536872802320333415538722607631098185283098827141908010441358397176125024703685010608049103232921631052869312306343609858177344514617326425315123388679972310389564399166693764798212880639264009529663974968511065093020094560996103809871345485562318159597402905721123591119168600124421258615269135663852819378053963101445436693939740563139704420288668626056952334534423578391217094738990549511264659283126570082211609934217713198106246173856808617479620105059864566808074027326581215185807932233317956798487249395409106800353064691748230414191853543794159657540689594648866401796206996729547288081075079571369134370842100493318077843281598680329518228531519573203285232307333193813296042982737249156363717656047985016613188253972252019462097877947965669205877253888727401493099558528515676607721893744170204792202058015935385949782853070375640397207537223666691557386249161442969637382113948856211147470233218916212335714907441736229536246810584449862399568705824598956829184695084922783692522948729907649403149010116276873976517000597981225558143592447625327386290305652439909034046293555934892870860454175651845515519757354912926738107161012463858699748273740422567225660596549800632157296513713091908282154138362222980572794828235298844791880590879312352938744094785469569572031606328726329237450591434689936606901779360895119577024147687018498444857567728670235778822720733340209096169316048116778948885806456727814207110921453036550320161395156962047816286678565834252490462970217766534088043350432980562633220578179825551855623276624452021304338442490786542633968645931918041270728714146801318916137518496133047428811253615442785530015284107179586920818853725692721366181839512609200892574530841083893981618466142988696081129310525530137696067725037569266158926880122253705812586097232404191501268973528122184197188089125185453103411932390649202120701166880285554968656899289111321485769226112241661708270941021194181809070100629790494060187316250866408819728786677055095434933651051638120127906910241082514117527043324027788956038650068995291865258147825569075224766315157265088192138291289076886947132519372288888992009067487107126378083482236430558396132397376147439478113987468341250442472681373991200990100644361850322260119054248675662587851712048279020773215372450511975230392914825277106932373439091136656295459272637235033493619025430080185929916193699992864928436900264660215725348549569479260000561162071925524385819007974895003437083680325057634504868886244173063434992742036732900416406547315173390453492475224673345080518008553166207217031475931339510515534649930060173886902668901722647348997948273940372774099948470546098737279937794573968352968538236109407364069388896329603783953363848155308895972414304638962604372920765764016700406160455030053432775576136386584550534406170372522928454335039215926958789593242519145424551123444458110443132842484461373816875591817852828385080084299164200314508207729857414240963444433451810651118642537363989999630345082492723218949977166116586713566690231213949157255807794551885218544356712028585502237592700003036526256778681505765573664830564409480117111728997032603374075986217715660444744923051531285256155172688866159163737323152689670949966071278825497671547263389447949080792539926170809280346412032381302355295495311553225871354461274566744425454626560471235855705050936699015058639363355584023124482548757344318068662269767967244987424897155835477606501698117794952443445579725886545817670653351322746611966266719391017603814233201569728993643000666161664818336634454717671479615692807824503583633877378143843183182424102349741521527416778661960390613495801487835671314574872439023284676142250743261296453293106019179026868478331639440456579526184598470935234208890203669595363174370004118857750272371630391237993293882346889503792623143553624602232019720426324089860444609592326292554594721816327144588502776178766393368364881432486758180678526700030465981022591137753154332268495880355890158494129520643446240780774215423905451500981703229934199291066299136333327337509641774983552716395445599270832228078871945924137822853356024710048448401646066394849837656665358166680155821786685476341498938793468577588130859040894873419864224719107406187108678073558847796795362020674585219264292648854394342449901267616598367353222779124212232459770248651562462076798166304982659707426991363142098416708969093881023422687408610111596151172066039645914210547697624619007636551020659839730384255769206945397108157408181060656022161220758495209804979577880174538314815823553057904769242305099712284453233377366001857805446737176590786808316406555646548189698948495403507064791733126620614336752166794412811330159626868136938823591388036141446307854802233034862149020855603623731001284735528682039965805304483545157704461849957060529261909912142290029320448219302670352369330557120674156361186238423249614584583585614905817949554685458666834924163139127933433736685201525224268102328063595201883590883577187399367225414672883242324486468997184457576066343342861357605703651137490840926928392206327183927524476272894024718335600717054867007937330140865013940409104972049234247354297922756194122459962201245088386079182224307772317069102345266544638063313888884454315886281560840780872834634555415197759069768311969596591674173870148165220468020228004437906136719246400619593545004968826278802895455505987255804588524024134442286976449393451179239413509263092041926897107274791306533231498582284474254703340620230915250081147180384450708666198300489217410243043813864235552266928253616790951309992392089660178965488647535310753310106879622071586638125546681874704728434321158120460550183156144516884244653808911099379085325626048227504765016685160665579126355347295240234297008271309108070998709044235917296888586718240997338143432995402217673751525204456996317215820203872677808651410307450776965387491391389070712003937619369683737224265382731744300721841331387063818328114693307157287018443569054869627416853981234536089390494194191089033160321272655334782938157061747850199573439483224472613515202543373882187746427667626726952899724420534152170510073360982547415430497234999324336572721031451256262762662534995627733093516251171967191371961309901978050785241372137467030757201911690644628849947480128388858484544766568693619253905351241752757870584675790496939940154459999319021097662704199825202542053346143864487673242584697809832221592330012095831583822518808301612436986413078367162537517235524539049758978539157884069883973504615460686131787457780591307985736502539339239704467696525106202252706423031907037139630721897378551233999196365328790206928487364606342955194296408608961611055983564135172290143454028246571004775557798232268730798608907897392897832041066944951949474596405420103332225189256480107131784693567023974558738818603056418505188713406478133532963242398697235523019133967015952519876126347331471680097268927609160884825070206540220908655454005433989588814018990789621331485917300424286437848691663822941532628818600841970751205323929948497575943957543080883512383500598911899017710040057593471458946787499254172405512768410176915109403005784170990513825325554285480286115555788150088220547922290417846602672857806767067028828301029060672693077724258300430181325081750104603888978097672085639098960169036710084987911854457824863931324353928577383328284718208655741902551455491280943631248513487400431158347992790992936972934366671611463636136280836484933837981238899012387659966135451573415004357662715142593894728650178134588525350305022518922946011537036299720712859265441598425647102843949159546641739213854028115055578820061968360076702879129595216794203475056588821610735444453081357736697002281662115124481343785756762361259196128881157068071218224324875518778868610688624172339658781095126337875030467090733919813544272625412899989173496383283048745577951879606905905826760306404145273444404009342369698530476707871715701512506350783018087229746982305513491954857879621962968030939260893026789079510389819760949846667512498861892720192600100037358769077548164888416572502115894002954798193811032906353424693035619486471234856350583389287002830018100578380861976328446115908217794947073206341809660766580802151927338980779334064878990784477422376126189677920408144205860655379740627257895202013559041279350269249631673098122465520999222651720264268663737986677764299603288050642883823733043960986303858134271321149129730248504275618578926435569236372894603685352507047374086831457622150607503775082483014854166822408896803907208074929193437358603135516622638622242897964505993772023461648342196047308561694905572371737816787296756871673662044541961105058090772362992406840822369442982872395150999200906545338995115835069371181325992733583574330175828477228455179057952894081222317251919898097100772999677892781029428159918294648197236678999783150980628057325190280728423354308764094401014025992168401732029487369945480576066470063888923273066863725367885250197450939438084229484907551537625092939849641627306634640835394176306630691892738495277714683316205448668749693641696808621519201887383143543610477776488884360580944038919993873504269558068654142540326890147371104425767962232738995651267391590983701972200618913655692224042640501072391144932700782517172254175017440803157962804919148338346229453833156604261358992850649897805345698822770591651768633612728445201923054197355693050141443326552279039711318145387637171359392283676714234439721965123891569407262230202193588533679811995664086277288710098162929184935232446697013024993826879460385551610534122463509646971198464936885332913675126837132223765436611749226104779171603022301276569134840766312252799725163921328711966946006605308798573781946297038176698816846942523958162856379380153092359568949678820966494711520944497491612081031171505859308455619496495608652328168300354053764233465057487552428591308905532491128604694320772807679491952683796572012991984005935264740993531148580663382859168341824166561306232645388793573097889891994364799064924381955790599853908700891781048354677708890832622530665367524575798919581764158980995450032676214616347437146501887328700852227718823708900421917149786366356496760681855796226897360882597297945751096657920399952166309847070878415325560897784627646292488408025242372929858677209323242104990237179009572909039216860412479697465954860368528244037723980061735333272210093046936182784494022948123306436543342729822210895430927651767608306895662540109727487836998494332230776358463455413992112816952226060093289810448784700303581979510767205276207613927453089613788684676058613035010008548750966540019280027620854478647922779713802785707359303189591300745085286088855429203553741614012245320315295379642185273804715208090627942926881594740818221864104593208497440506273480106549904416858943287555362104027412879204543309058818677090195890340191657490621349712452592926199264292825281048015147434230350885239414706796038512971802927469343287270984529647589568105057288450597232027299408413509805533255061937108882616400040329027808192262603003953477079925758413999878463131511054245608009668480057893736699172614123570135743965153608245795775357916742878685022500497438179436290183415211393193188577958970566890208463062966607286000523922976788792470900072971020868093662441498293679572200477476307845541934098972965887957665777258686060351795055478879293656222446942341363786301355604496327709664958664172893584453203948094823610162213077921391946496156045331655622011336068164158634518836128578008999409012175186438028601418873615506571810632532241462369858173558901454345657874276699657404982730635477707360793205457886462925939066758505367579005429508262219610334925716708856164664006369205513739586733030989105670263731721924584290925207724058925489807206498477509262308043048807354517568597984392435669025527723741332289390557477420401453962983964599738661913573193133653410084244736324327105287163250798363425488271683050914291467451166501706815782890669116377148682983943400351470612680628083792524654236577617977634054631973348657033399370868855307261261344759359104056610319029452662075594601351375713038478421357884964094185040436057951633903189349064636577303321945809300479422925238591065015760367151570284994416188419279801593498470751501824239556613863542161502969316221792108318717772995474483924730238987937762034359019344757546768612755332063654516982734149694973410933419118925401312869694014481496974535218525618284413985223335148097657962243579993875580256785241190227946771770415794537252248880790054639540201233188399236121817124414670118621247329665158427082273710524535315604835555474642160510033449276853294962314648239773293713285655590891458519358070097177059138612361513230795606953972557726263596075248527808606358669965473913082620062481620601472893258859423365452107150839234606877038608848700712077406988493429210799218176104622781470336069456601491548997854414005174858597604882597510595105850037046518055608974282130393609281858222737756464657591850239982305528359208645850140652977934205867728793119393465013961732705290508201366909524959764448525123755078241188295090979649505723922543334054891266699782306032930654208257843675857734117693582645298012568558717929622320032622075022171188332782546344230045454590059936288567146207789858002662894228128068953290479062341745856930392661244297614250805717942732216439878133121188311201359755705932299797075565736950545277114379770187994058631448491449899629013979558760148340577686765552714494648802629113783096571687436926402785075769621731633831890528648793143458037214449652201148147241620646811669377019436682479729410321338724505446206530179484781862273605632124113053909149010852848724087360870722106342437147606854724325671553807270710323071638998955601887370770665824475154509005736505649566525545970340356403196363940832277205013272494258371810044489174762155380300428737750009099856554945313715766896540533994833707513886760087686510482108269747420642169554538691882961929791123314139002084522381208201432038342146874508790995485287831870955282550896161094167558957702613923290806361072339395090197082005770241798338621261356354066040195512415618581420889841129930832441021339826667991370768349806763594073323710256350031734873139192476833119729809139699098067457103776869269484375143265595904238117959099559929124717415981836862485311321785661827744901784924076143268993615727445118953639365652934967334410343549112496531674477641314684870447704513886412022211945680063302823743096643576893750643375424109335247746365800376912961610389973074362380434518964798928370953246077886444605042550098734666860384530775044282505699121761286237878739991014749155874997471844647382822572710186060740310721636521371422505161598989354389970403217809620852403839436945849840147034996438250161001524430613127758849943718394793790594864802903516029942033756466934637702708726381282926346841205562960910747736109060323551662532842699416038461777982940106517262297167114101329908946800622143574796755255552322900718123032895483617186002591063439604715015880657011163861964638820614598611805998186862600035242145551479671222027595306813106548374688819977118987428916073553361586847509547799046576208430989967653131977434798250052154000844615033298207575523136851787126813324930109938094951082325544924043733403820484039404521448006025449387117560753301096698872812609927882678446249977348801072156599614616051265327095511157174495470707145773875025263464793412306265871741936696575713812943183399111102836938942138448641030872906691587270717617547793913622647309007872821212520901659082422322076043038385081993167836953234171277257741178778507680981824056710145432159676352770709796048345695642665643971813595797080853433488656046353729735476273193251631653733380957816791465920942102216952263023642705881699907396500256289196202027366692776360210079382762831450661694423849088852460191782426636928056838996412315376809109807830464246484990966364046310214564074627779692936393295735003416518509828321644816428643692634927364004965815355301219480400409851303067194125399096797304176344076238295394703529108579169494249061464721249937207105909934246527653675822864055475641450528585769248931956666593621824675284192205972400328125566258554509340992065447275695161942352994082678937759544582805810394684171613198930460607988498098761422703860249888326698747561731300672123950792369993287303953549685220227606909611753815478519989700819069110420657152531845118602639120875525524697988322157430153333994155011410766024475838405556431832161206625758215567786057216011996245585410235730274139080168153037937797383926938504452821455859286415251354822531012194183886471948123027513481289782012313673945892521849358556925710550510858371213904124360994078457813964531476461537368662046768973742014112417008911256740728791177236745801389751107923433289216988384429298564150720696373448803037062328850549859917257760593574416334709278869228975678475591969009616564903552544633134282750368565473462989693515138675097022262226950767513084203047405095546409702878622364776332109881162615441609664812187857794078602807237750501934201630492280151216231824304562902204119464032116607600707943409133132933026210241938140124923508606115986024526650574534215486303629535331547855325535288218845507103865856881278283011033770115558812858076943163418893969979818757106830017778370384052341147398832424063668627903486704920934955672389202730119374965861701565135688733341016376975898183041761844111866892105750076952194049717079597737539016352235351482770948862883914840952527837920855486417506357094778801723966417425765791511918785254130128724338284572964690707698463906111725912470479508865804410954424663428636725361912968723003026723349414833466829261046939522248872654296593294935223623006960885237531223002324248168531863554300207992158206077109336387565565237773378914827860827419812189383363266610031050176554384859337827259434057512481477324222352371095224252192115040329097603897436980336087508606743901690899698332443271947871359916561631522106725672571808240117347075936069346634428718147069789180928179985831949916581703192626726024286682189299503613530158769880470013171791882608716618312251042007994903993618024002641184348761104136532688704901266675807229716455407348985934279357063368325816701451794541918500540053501235002862803706452035176092928339927936870766675313176732671913119609810107993361909956285006394505570110574763511757336482150274682679763989708722331499469690199244937506465717230477978608551672001226481077615570525737452081106467724746140360341206476132025410074180030631592334353109565622598281244768546937694324465033071630883869430139990096862007502908339789175744583201839135072392692524500496661428613786317264881479802262170843673408829076267320404777576128862809947447594701980960494834078398653494405863000212398555976456764125782591248296112959096246237242986618348332930411588355618476595698742046259363450556840794647938311169010445394676650818283870519334056705641347813659358900244237752466248728878361259597677418782417372659519822824847887243329376637705078853102717818744127538525725754981366387082623213176629230202763299725929346983943948386906504657650183867011876269352747325719699496978364285920340345492789272901696707569848685551740452376331727029264532525502349266124527611041626842657901387311606403829727258879617450837474137016727572121835089738575423817880872454850938764775713582489102627420845026495094476244424452191560354642832674689386891688946516943399210627451806837143946489851007384206040024472198826790848346821183439107682641060718787232751958238937054365544399116784165680884619569543224499588911384045704282104884838235152886967839755456533334043075628153660309517881200071973157350849264387645148381022208129364958473574766688993088065860892464248374782035560414263007627689617439570123203999232123820912292169479920763080531728829194544011758506754447050768120041086378494591795596131634552278167172316900269817091012297425711943757768654301024096109030673385621588070671291802032133871448766633609832960319474531170055457136380431017630683551999292134634741646307269350278578374017906939007488401450586488271622338640846568020818724682740911669655724000568157743996592254941617044324640156222053129326224702827324904958688405258256627197208652309705426477247381855725302145186122725621185258354994382567914870171780218159836698860839506418169442173704982392878547686076135995820041822434312732209060937208856787890652245377889948369068515111159237152914960025539673891621271905123784098086137721599476924657144718107733165191304690391716488721399104479410390397963640459336920739658964411696302938273199047814781366529297125123282819272726106128233079949328326425457392588524719406681431059252751167829642861563676363740095205122848140819574766161332543635847194487325237038146386862466889387793625666920721015820076554080901309614851666294585885646869007296808934088719503570002719741098838518026390726125158205320416563370259098382337510318813968953888014296398013433532798095355521263141855188516626807065442957115953666025882915792345111720815828994934892854470641044010460934499281367240530247546878876575409602295319980905313090948297447471852732068081799380699133946143527785933104791508932536990747495384258505764514749199991472552370880288206089901134665546361303913259915640417689298890311009135883574790775184732078866926181124482892051000396581801992001508069902601833454671972355887954757759361905690993494606075928205706760814807354757380099340924961374477541807638476027054203259392029800678404862273984215561143187559525069698819047128235313700740924068054031230393676869381579053296326208308682064093075465167567221697775786161282493269927751244359149088676534680160020621255277925108666006580599076724060517088363649983398788375587331011107546196135966861944298623533008096498105299152309287933135709445428791700383178528493224189475372312336235436261318303755520813133854441510225843094480336287350603656789494925367893892022805411945857919519308381008576957698472598036289118340283178091123524961326052330251929318582801317907629301401805909770179393334054272104928863016676449557877658180611542559717792028603682800060850884210872136469594678987223481543547808288087167989122912182266260562027197421640495794735150367871528070973923584874130270178101542521449638353711672440331410340912555859757644979079691794136256657002717229758804771246280484594375975922598835926382864769385690134273835844549208829494944614383428835726921843829148310829069071745186982823829279599753672632515242836786067143771755293625463986870313345005618364928312601860207515943715681709244190781329683234252869633130597867645002668947058573977600546191340025561766946419689299879387437351876846779159313573582131431233734786398684678587822349623986817507177146866878063776397962636567545563361475056906674832183063740773781615831280651480876091421339432801321293727042826796435470446476256163181930084932193899924318390738255492556425833369361810240381687280582501415855589894352785319373467464697183425063623034517657231919263408360725739589438281719614122515136468691653039402724337813749517220488483397997324813632488539496422145574958513435989397885130041480480993896129657628313082447084245915580961875707732736088524340509008656384364449778132070710786830029384037524875942725647922717431765063293987836261644285137237823347093150792317634341705772892013462189069710349942497715379857520725813256351565569925036837853888204300428540906708370256318644161792878583063604576250372675392713656739688224468460336756475639192310148614324000243049295145683510807451054778177880238098789108728446709106108160478850587986693251534117357646209199189481695553221265680993594858895778588762647266428709607544203027530780001727963881536214573935877429923708319156321859928581454512607183045806304887511438050944408251503800037540107509727388530076940428082028848010975542966278624124221034279724047452439521410289671188143965848073527197653305378617934821026407980034147906542242234787265878660777975976686446373039586619354582885670957573303039234805066146399393123474662055056987884864103641050694420931806027195847377196957599499238958035056178607335148810179880502560058543093840941653455718705435933035200512366584722622574962054610791266344791330872673947558352575460852409490589416735180308279517572744727300751712577885684709093365318985421056908465985832694393564764831525609253127164069406278899110843798123152984723884452336563647767439747585488050616626381234647514937001593215828153326828441754968527752839261587219089395215097449804081536165025113674710602332403296323546834364255323147343154564537710510125079645222216953855998815223596781812124795266161053016553380437637639725987761190955066478073566649616627881272043190778099666666211905367640095543013635165194578256326068688624746377279052191235767464036482332991429594276420768803807698163236647759853788073088762827553234140557560523565933123021318278965200371839506564886870941303310060009939140984659740990571521970367418273276432541904192690602480758896212291337031854392026795977451323704321109305274365814543340961585335129345995820483443786057988337371446323613008177971855308134953935060607472856355454152931718839126873410995840261782760639703637642517926543901695191216606236615277786061865036150970882101503748054691359002116239119820867466209731886263990190562420306933330673284514391891174343174681692331343074725502434391512888614834236997158549119372663092248976424197458210675535428254307293426685272880091376063099190869108882591882757645491223004487490814812285053754341816735155039902894705221159118836708870641904199572788800758026876937126624006344158273821352342236954322179695906255860585607989796315217273630098911658266929860249026513261697678863212491943949423767841205925124656906180017580488791032230609630167012801562421990572718853001359888741365081914267866622548529161708209626779215390363345221930214641024171568606675187884657167908617094396957951683705301973210486096181592641320390107768017466306203527739835473904507728756013028585917410007340506058492758541974504856888218392370401135011651917431948594972308108556228128069322256135072182144346647891479350124576741658127636722428325951486988210474240534161200169922538308785474059207300410206996217934478900125913062179079104046468967971036923942021892190820322797086208816454799434205012923496267361969025131620214672537648137926832981125922464615431237451790923147727380284414713709166017804901795260261432344672203863850829521231646025825190382190205146778788642494490077449573407067810498118418025767809038896538480900615239061569005810664423653065915418929533119677649301240055294907429272083307730512848125920091050302166511279890159388128261178202614591518518200928275881446636789666424953228808666457208735637255343517493453422552525008772697026614759597811909060267492472854629404478757097209967971607578214409326460119516696118815238140212740168393324502692919188828043479663894047623488815167944696428397327506353766607449030306928208167533299008564582050794816327800675385599358738309273204543328765428396715492486108963088573598265894625243834475257026178388353824368639695999356250275439907587758316150583308219130144336923774958150960025810427847412760987617516167078997183008519641468371982456879569037641297548905530408590349586069328384744023228290569846928855925787533835846435615594814950330256711578401819687712526606364446823758526361739677301177422712024759140569225439726372541306766261491595343680397100989367260991764249260487486525186595794546792177160117787982400859445931066613556922536381692449324072790541630615814580093380251582635693284563885619384327534847968649710074984843207833103830557673811527365855083080836578705681689156151263197621317653698255354221284487940933347947472009314790026293828304927629220957162380979245382594477544784837655432771170137916683077062317355945295936882467781955623640129892259747965764821046545714014461397767268080163210224705756422006520489439895687475882272811011945719110530510674587272759645164574355565231702825830033178444766924987480357912497385981726438823231400655247002455934054122439574601986959586508940907299070268363267442923683282465348805189559234512877022960321005216858990316646309532239799008566588903143400015951761632528466048527291596988845553866949595718057053407678899866231664363543554963050829183043027780934847286967433825446887061894695965057183090249170616888420956782296879772309554593683064854124904828641996509233827273761771161718446598175423035971858750715318152622183908731935981201703281286864675539531659797853443348289764528383962845159474188309663284923755072746111325518471792068924638859620004171138568308117727015087926627682190851657998966545765635229339876582763264215459870857637779376564984751338275325840827103008630730112788967908609863795511340414603688649321202072142735144512093535225506110408387106368075563680122810080727943697108653259470205545470511326899831754537075453462907509642412886293320605898525884022029068630767186657875313168998275944913240497348561308814853273372683013375985872686214912681888806375229801140281157632491011726658703442394010085973104981829651197657146857197060161368197893777860276675631086288670567883740373562914015901536178588042598378457134202327299126985464817384453684335363684032122543186794975664633917361954384585554419247432087159458202021798807356353166326345814004607594020718805978694219882144881029288103741324290324282655129754221550962239557835528048941574103890834606183821600519567241696041848236354441698615462495864331236064079657225724556773039900777337836995432941823391870486162609340851324983105647300172080772402894193402178402927578882047808667050478596520471679831676193109489425025449317363725436946905810385240539482322452695393574974967408709698579762701968611511615438985868546565264981937404185127876452482396025546090607507083443679605731142412394783897470330713208622753092902137884385436155929521454811541410293473698420568627070434847398450529350252725004461031007795588657949832452523345782138754282905017470605500058987503145292535410168323128070213708256235505373042046753588924753971552938079368083628225181336553764357660584547049031790248843534930292139943441883086028251512471227858564815728387362948548495101583619275325749655802867552820541103346902550505347735638225351399117955728872085272468900791659685390347920578803236991259085330416845928962619068750302292570077367626725025858091266162062041215607535261668934296460628256876754018926179267593244743264417618514669097319234282912560262449589709568449328737400556387815608267031119527221537230607109770896964383783324577209601492044489461623815925786154631048051528551097108615562738453507215548785096801623403759650230716343413332277881705752996949463210161411447056788501829720740702340468080188872777785874023395771786159536828434326687771039372278834262216488782309954448527313957473445099063036202673350663187558020126515258385266767943061180066888064187965084065993590843665333581103685260202294104096121106499545120116002708173087326304456178654632352566405252517142629194353144190530376625027862642289056998240876603014915837827292128001873286210635994708306277691476745016059451139652660094404045550562143684762422462819536824343742377963681100170773976849022496361575737803300684171142106042281449693301069414281974945861791264097492779137686197016378332987386890202708296714212066895517054783520976503933812967128777864854083034738380552923425474216088530100443542519243502372395106450910863098158646075678787748035426140840287357664584409566730848688303926058702758335109364219175553873371153738916154249482014712534494452250678373423006525511338267272758789181216201421697691378950988477366530010335049924458604393425675555738556197433931434401012946654392988604737402076931662767998837105009940753362434192364547320658094104422919644730459189857408760798741407081542743615629502082684253569591769176410359113635859141048311295209658454213841491649573818514800415556759305278465107393843688145475235673956586560047376564599319381000565223826903406425863734904144533279424281350383830979437131006637545129927084543894372988271380722632274722984743206230114274765652130316277396444777151725865576400304020175073817734546143921323759463050157722212517044619117401418637313199027377583632305473939411239346946465427431033017779645177559680591991635592438465814445538040366543378581390179257729566827934988088700898072765479784485994126433451505545108009670571050674279442399691133063236006624987321289196937634376626911338938949053081732895457345692670626103959395091260187568735503472807020664337679242688088794273886793707779086445141149695564653975486806440506172635737282049866600878328196113673349830274631961936745195160344082289132733938247758804255076821623888379999848700332331485806888369059727925059243609301950567332952932975163112944602747395590150682274550981081768211011500776100852900573939170667710239217342671949757243457358204513199881066855203197393958226338131084857314723728823722894017818874927191806985733884030555285444251192379844092551293652071482972671641251121438312350187564877019865637757245586222723954191044971488291770998725191297776055833923479751503973031786827686554160190622740530152912077494081807917422885827068533397772681455935003033597200308979511593297285878919105740516467803059370990517925891034518120538439075280079602533580031254442814508937583673506002474285446981148459315240037197035315811606080958922336665614544890135717700671450863263983111244585701595904819518709402584638800923257624358544420568251889635025854608292942594806728269623137609156623401428340434086405462044472286158662504924985421724853728011467158373274568610548381375658412201464136235766206105186608841427302377766507540627240150572342983420845535048540681955185263234583590880742621156369722955827162853668079098511068582314370195487321092264790263142532811631816668647899119635610142971815534919215241393244028962592830649472993188503660257622394845370386020658403048608321544454389301187465078031639815122296474118183703444958351462791995575749282852318915396385418932771570552083615566274817028356157146823854206352064066374613102504904883374221858250405169254903980611887011402449124975838161961650131882930487887122974769171215339905351270732863493682556071583023118570660977609468103620594195171769673420019252459308643572717979239318747460863789600806287269865671108665193776158820498741711697723326607683342397537992495430807287000384728057288782477267574863494257406757987606680129054866986903086889932190749081489779525039000327549433330035251242188152510411321196995381067611087709684323755132126072200682631822046244287613826118717901747169104473073603624074412834280129689646409586189869689619608898156070340338095818198961848982091223941312209633927262532501330933625937706682506827296067720282561422346112040409101052709385348918888017494221054591703826203099181051526093516530499378303506736045832405836766085245053669322063552533192823027885025486922909163485565442975807152150352409866063120463869057841540186991217251043975347055929185958676207117660338929742780182976335217076805583613881910885518380166960812209784115926647283049280618606610375216789477345708637708422880450795093346941205447501617572889766138865860692004804953377349360799165429598356616020640309609031583308682950937760998170138804857034463092611894785689538516962714228207037485760835840453260515569987283080256403652202286896624802951165499564347333050361460569809268556108897710909627229947916342985031781355808817428671831442106859230283713069502877834323726775019322636198961842736650622074365081397737237301786329917516821622161798938164119101415854944384637498111586827210508737422094182447272565599674738279711614603124241049307793073536266124106507671734332738544140694673118324203023644914839246832106833675893186931034936790831397701203420806211419382528739735807947032987458817017773500875102750650551419558336674383422859201776288017183544111215028577028790300711253355845624594407329764090770459410510700672499654086632344671905384145227211803347397696406412120225580561753409121548541557684242141582546250315309275285254027450069357407077528692365435948024987936185493061122258469832139780596624542572327611808375286984477221252218516513455846363269888927372510103162566200387550183459874972550881062406663092975431734672740614551686864005160017482358737501735642191855690971298158561359911493242670434046720116936758662596962154763299226602484615408240099087537365964221587204942411983040062396267632795079936131810544160638709283189336433130500678252076044685935847244188026643566547927261508814369189769001518444101413155338095156668153371227395501819804688901246127977927564649899963940549212232165502511730675692915386831566772120855733607671245009468595292951464120683557739634998265980367122049494600851607282668754027428527984333644339825516273023618296913947478449918427756835569229289216817761177912441861638584823732565605437203372705707450826076454716524690657957668981556960868137176903318378750915370133965700709903243882394131723516011759143418366098476345282162452438252950800202319112341765617268270942477809905082369501515615002915296733711341199164523976285765544844491549067212352912501773534629521859094895402077187822653906483928576375016226230982362416422178147193549087396993043595832877674461166477963840686721704990198561380436824241892483809588229574479413334717172232319162359084073674552667875468415816314090027017462796481095970561828442667603072849173064373752741517098983252750764512276963136203223792202063091515412506813500229914867989527635966063176098827913412555007993099696164103422258992852956727826656770051746256718980288831331774719139560181151372929134394500909882442389605542938349020101338400270554477145837999445465230334234664621020687160364230059716398287152180900586616322251353401728193509195125230570921266131642663722922454102526388839578081331508486851454575040860066795630729867669972105690057933132365866385471336005322996391964513965385036847055161161280920501322412564427029156628297255780589185435933326875540412907647085894707268725951048223089470485440785104756134616024551467748793739952497980865702593628981116536168030797710065086647590212940642606399888350550929921761169009863759524005159973294244926339291894403126243357659549247375090477815805303899098854609865382018817281298008862929126447643857188144536604522027221576439329687515679893650067436041841874855749163814485891579750485656678527144147788047092971177674803695006660262560934594407293053618115127570595027856520283780374303092708660439150978458675517931941119826809012510441008206435573008590466820086412919387465002803596829663863602938983221020631340132001741707990748420803716901338069372164806744634516780296921975967782685308925523745327822087055200502096487012443744535830728308572441605883721245184362465783117458011964960349280725390185710024474303784464043036610476984901263240549882154472441702116977535045768783264175884268662003232333245837325192689313222994683271237863918082121442600831476967103251370954043993127153733053666484503660280134552460823980893494995738864126668934891350239973027136459184871847694823562407655679472307914078872499658744618756467259510065730623813687556120808338524613307025171631803709775765454567419603324641599953151100762711494181805999869474200578719922398233327729402853561511490088692164369003097658644526360909609960823015519777838733354325664406934930169296144152714726611832735074348268904393642559652929756514580354976133373418931061252318746417158448347275704846958542190487439873423759044862865572026614514512560880801978898215843291309888437348324091638529073503099523944572417884259615000099261759688309524839567431296342174537942535664496933894331135830006824428538901305739448259079907267215688163604648042974577106765359039993500575074932284019615092934599912912723361476570374963950247865723265781372775701697503040580476684660890271515089170108867656627379073948154421564399274411888681093490535358688146245881048785909831648457924578390567163476615832537165713240118136788191750814917490749355853443060076690376462436257843310257788650227806253710648407173779046906043252652787465374037032373792993322058169307705634040995703562900798572536368011809752103301558925453587956027531665979307594067307519492322090952891682701361305102042583729693899347360754293823823648954187453890274404814939582743927965579612233687105315230239545960103638695171545235221363337449199807263010441773002141632483220378881878027215344449027385937620793040478380632753751914899096080884044839654347285070953499649638502332814857506808837927927479982388414013070408385982987187043314937020944855445216892212187144893910407058852224869711346233390719914317540202398854761726823157476051850227355328890658996785767630592810017889210011556147902157962883899561452047146145010192786769192032512398771274772057761307726830601247943729435556040653450951629506842889111906933002534283160427500150804922412493530378980870159570184284578735041128473901691812611782815079140841998681704450766167335980833145823557916174856214987422136672390915695520186521500866285344588700147283759546243917062291578500943025388751705392127347569136379475668203189702836819056955954180125687928167583111501795949831552573397475530852862871306056769733145584620551116868951429822208969197634148739793176092728966953166457805517377432614921135218684986025513330179410265697750913674966236153279994656235989605269999512164609728578799007259489990039395404556769018421120436183808872186981055508980414180174479314902570592562718828712949425896269625533911382425910824808234345976118504558503636470927990041509171320658925497689880088313732506243376583209877280376970555583159610739237721350618422931854729252125175546510354358714860799440996937569931945787029712696062639230256604913106091504830444776956375847269907243544581855124594368173948158262069324025870565609731618495042083125479661974418408863071961066337138015155444579729225167587154360342771198820806756026933144339187304896960155708121379227418829736826196122890953835148374022545612915074297236376698758759769510063764302826445959156340911004269346773411186302330970008561587382424858459025148462893673289762607841082328515293909644480534186459833576662043678601673660401862380809282792478471426493832799787408099456117465831319835489483681803671063845374904942529860613096876212751039478739589727428472694610012639322140986190075137033393961660347054518408512674930438811833308169327323197700115601863074600110708175800991657161195131229025452870610312910208551457492864631301126396351237287160878803974440431734592929346231846517006443055608270434020114127599876164339730322300578210389962285443839151048753456103369913825128241767858969918220276231630117112638471229775978429803879902975563152703582712286023002357765682642516192893517440052007964772445137661490511435292059857109652321489896530977893737659857361042185038606248491219278841936980538144992000386422007523219951689481151457907016258556380255461023163175336108970499970565693634158442758720859539835080779207712244894879455624447321772277287860979535887840158124975781358245306377823233836558798146851539943011089231756064403816269153247310394183298828208784841523254851742852534299158564308376009240016843629253033218944663245923810089249107370923717770017849244047691487930759763003732549744478479180991471242188373899737407368477796801341638158360872069285675540796024152083431304374391699224236300294593246297468911730038796860799144861937755999622205308367095226696003851988815867246445604541931366402547369357927092671979161572795612316409566523109488328767096445238370930041853008605459938386188927848955031351760496386144845071921591615446542337390631544781654346898509124566707913730053796881301180168840086606620739078742052632678201204723624536796571464603504714683649259103382213448850903609118198446449650614542663385057444289081720256928417042762458677538688720814700958354237361019400577484033005380379122012633348377422133175011281088596055710589595063753209466072435459126193989382547242016386958658482488100996558210238283444696061528720226425316876700239474501045528911206467990884842431147653714861003050235610136495611637473633949357844823403962508241944787313317576904561413411908089551460214572411318840847910816656908418100903247999511298705083739528088049373496106009790645162041579447206836996232955509769072905495223821181301584149593313579241181231124193627665800946130221551408038120117985456655857643332752045960193288529883674374968159385513494273877410014128619516850057850608046436411668851887337889380167210216284898873995958037815922099436797952538437440902707999106020964600116372084345111270146351472451725194437357592911886834219003442018946512693806799176081585126339491818872296856000894995556607889627589682196571989383862534408660389368327359778141595996691312441355118850973935067507248298617505944345071293642387330090845555725479559730852469542196866196331311452194884869816623419564107237389234932698533537124679540138873377956207703055345018935932563671245981985763668768763285382505397759517912838343977872375161739028412939702626509256104517960257435576465210189123190964062208626458554300888744199953424824924754799144675962650421003615547629534255668627134436938389375524134697947897797847800446794687036714217098234846515729641104329422481174610741116778458516180184350325012874473503658960104996149013678630169354950454869308946071927988161532917465952259076432543009613093421243553988774440400263490467567263163860468478762536852869459595351891589059763418761627998525683036468897383303500930633906822696602065264535540476566428313514936213245927863588725078329341700120063854188217329305635169316943894455105619169332259665030489672860141378837161632646248923269340038698846104776163718301430531100746887311267188121880940245776251876858934628087641880547884762187253265539320838061927377049743788075816735276911422964248916254947681254323648160541452480064383346008596655084410090790768104972911642462023559993904736580874117232705117509684768265718333786580091756890844774969136367959650690765500182657471901192308587912176709265683016725500267150655030519259056590303601297305131993156157087851992653064835455646677129522927052824271957301004612114412027400755140414494585494225481548242012866336607204012097060191541507528411596744168167049956169920888626724790730000463293830936654946449326017714957830740847548642318023424149048954045970176609689257556330856535656686598754249532662839704245747236227524661560222447123179418641740240489596432505975765383243380393020913726931514648687673812113225166104335552653030232000924089592217698328866908620847770741583906673314306841380577269370354059976879140502336554035040501954203929845415204689491605699848189751629183524085974291094409577783502556253085439435930146950869543064044229530618149383194710761075649891679570164885706732809049426652561782748986846017539489350016490995556940562656572792321220099873683422316866495006547056969396287571312501523148519471263255681483089863831605299263464151282964314382773510760214573976111353032158235335282470070907369756643253081307269955940946257754840842872135343204278942609437636586771635596779994014063573178982141438529786258162766326789081744920042797869887695891723694365479366087682133453646790257198437554947798173706085996439706478648876769594310429264898479693821063830490064627562440851106733817984115212241507233802235684676401134822999644968628760163685696179986457056954508299662783710205770895719293315280556285702649769997790115175427327415582249704475300086987478537192447961527099079629797676950778984961800506573393545670045465246639930765380569271550526296879314908870073863761286039626612862035612293140019453331341688502776759321714566700213002318097796644880137407426287510370406214384266740676360720316161766107126618625171183416446455393746989017556899090340095271310295529050162289040856349518397140167790887055663296445548876818711507663531397586416422321497569246822068113711094896017259825063540620716141592967901763689937970882937968198146273299450472930673994001807085095651727567673617497061717037590354026414596670149967546164127070807103944431749572310692937491928651099190947737743408069712047030344295546355678540845866988655168591231692777296276803707685885135585550913806222339281011694073534871434207366449030654312830818850307387482083688210139403504167862067814844475083354113335955763555299819931959240257376647674273058221021638152728975755507117800468820226922300939069540890643391273471502479817196031454666960565774104934935713445605436710451150189243447814368198482024471798799543172867082806886469296106554278402834080142960760229037870248579554841305242730054056658802279724580894483854018155064582288244386308825172886948493887189014834243359389991289658977711562725648999953025649765300275508964136196004058362767185397806808026963009441259922863022288261041421932602387591840971176098227832906133585182186046596201870641542883608824050034040604391600165691504060498643679805794216458328530777254346793714658743236167635413259112995619007363213110978939242155101979058433806469892326005440720517183339888764376027883728990853324305968303096986242517866060893293089663738154355702010607192983269625382271960634065380380644487566221444318327608618180471017816817735586608382824198307848961512420443382838130021946291326507854689603720781026705573436121436367447135554422465499763362863993439943695108828820963686102199884271584230589920467697722358154347484293033348866634235514326073973873609143731419235324310819494898301586619213333355309872034705265404705149726571786261348178095108344373755797486938156106112652197540398709676663763198356081146499180368399753213432973453937498709621540196423702805833625423266548423791015411809431025821748022528826071642590604812090388487289163668718678138336778577865443990925832756023390879253486634113158725587849113386424285734197410463935435423675291609936353783218223319184659297649413122102520708587096672578548881238155175669787724858335588816472589725371844139263977257437310620282714899512014941315895843592822773302525209577970547649986614472826702978066697882697865935201256827730621500573803138202699358700626913673369205042568883954663384627352548609236788692541453117163165537279989929394739385790862979863119678847888960343623924915144278025364723532928073422634134608501837892755594470574254822471952041203237524954996434123067665155559331169102587003937886582458638043709024054548402479714458934886748442871023417844209757980494387967792711173349164683044568891846630222353654568981106421413225886131198823745110936625125534287437271501999829245908145097753373056744852646937590382747189483306770207665860789073635877613545055091379945099074600726286609350514682585727926697960107902120744551511266302272342448970080754950086892520508171062190341292185093534915661880058866385617400586412297205810094242645522191523903241644598876793574686865071042411370940608122785566925916691081635202507799361205588970989161828643688412638881695356642157743489270449169158584424656973103743101170898471369232964825254661470209050998894781520709770307100242317676071170600183426276660473300501224689133200057507041189563444514800541667401609604802266077855503892414728712443066356495092373422644447222482120786205491194871166872709391578192536920027953450673210578882299503371908547184840945503424142804023083833603926893263027816102837025186296369669853072106501086236776851182812960570636359106996064118592828662403835967491005618788202769810767604237300940273917828000683429034078352282844880439404944841101591973574041083318531619751615060993418907921525075401832530602073797459682885988014340296952412675086990321523718853707554391535779418139046793390532450998726457422834013784040419628055294285417475713266452273834878250271399454806266520337295540007303010420926425523466661886954700506935743310725256064315214330888283241487663143243854204912249862198550556220629250284910345760986729144388483461629587879087980379376483200375754499739385444610942409265141890478831719882388163915403467817531359823839734554061926172583564412676385698562647251786989764317094730027034079246080251482041101669132820715849556998303471643780214575081334267553201060021243891190081366065253467766095868902276066103208511487955820933349828368525909188616933638915820317161232824733054763720579185694230876081784152004737699279927773197637642826555641729148055883852106548837558747527678460660630739652653695695578512952534715099176085381840920671145977297317785291158930878276128971092940829576747176333150281529451754550790447856968681962048133280111886350490096091929347217784318546997992247695196766626027455024479021425468882486378006174833227102806440503350936402867048120342025209386149481541609104919287600323885122581482176066048866967694218433125269751395403778796682217441649410411439148266135507452181031525609884031966105122090053245620791999345945837752936549143152740792622483893641903972915811450185651865728870205332790184426329815971136503474338747787932790754574037714707453057339343862595539583516576679081411420310547453015380391397804040118792367357425867947108120464665650840080388375115526036816071588037993395374469150023045281427751848581151487781885805022963937529834353110549341858046786800584472909837103097648296299020437423477906387026684464909198048769128106745156559412923544886112985326561667078113564104350442685530756519100051869575249859330921369041651209268044235874799560506155176735663298364970185056281763762787661059379126772179980897797152912271866715018572613907788733777468719077692691270431171205646101758301112697597236868220432394445175256922734131213991160221355314442354055391092400804472211219914122234013282728977199816775944051744693257938378195380064397270913931542150764747590408948947446419788461675965311393494119351405656298989295058829065451067718447662121253458844891861925534857119152740985847553781616738258789081495923526491960713935177099988112671105069747611496080904940492252804303553584681100324696642547486032829461427232954383738413877270660789407545154006633592142789336790708916911179109675763588850224099611604301818209413928197607712643858472382611513410799698332587197410347003069312737902843222391932960381565198256923204424843730738173167155017439822233849180452679380915920714672465208149817790345832442104929242563302740322153773213456530553153502174013413391220024007285166929768986547547034057807424958365457140843158820368216306612023191301545439424450522883422813423027255114528657343939515690711334511308045665553950414037579302288877729068686186272782801314049224877331947946845243974545689560918378992729192422591613683900137182295316798631040031761469987808214342874084493437515750898679452301431042206898652109784998354459637581006311038629008224911423123585839801638902918759179998303592537546649806837024810118914490378110944624937195155560242483569392479705536349799568433341341395939865894194702630460363888206435422423951839134404418930507543413898420886220615759223315169231850128455356963232021220089267321630598644996162492895288514143852551656472694068679135682426124957393538077600874714422947222242175964301006135595448239549590639180958895274675777539549481135456642437671606867586690601961511031367291914467382949368269941277743388665489286310159074777659610458054260771345573430903931016349976669423169466326298901183147894140713006177891321071706598284149327233056003543685630765344706636605141188550068236386331622853702035335443031591540486688001961769352577380179564182039435483535925654249542837264330282196054015817724094378356797524701544898752738296778220627108918453023477691119498726122349009306177679039463266901667981125318141720640650592191630693509882467147214033812139171767782659335077238076378732898171432980634404348986925177858969547820788176820498540405590466056645790134953262645200820321588074670690598493788369438443691664566991333396250636059936144223286047575082054844095204159593643288751291375498102138765193338347373341293648327960034756705297506583537759340205482453460567747640824636757077637587133432314489334100854402311917465925474167799255739875286951156688895397988008858075945329397160726191352938086687138697217616767020200450732940584853739389678043497298745294023879822130747597307547979979641297876550641913377324680822500422185220194870411086456751275338526135214229910898655739539073867548391733690608717132700759880380499190536928618799049252183829206553837350620055810865355909817026406503715153569810707085102386721195450247837248200487747516592086886651592215359990165574385439061772026453947690345661617797448714517676445561041492280208800552841224052481581918578788436566863476576917501224348448264168860519845692576172208483105067172860453455532124283942452291203469837381642645014655721273264712424755267600010550978875566894711487374797987837373459577416374471597507129142752695137488267703346661399833162396990584250021998012254512021398717016362902687129236695201263865073493289339947136335606043667910737850880525879347524656149933661195708869328379374364991289869537091081795679354194711158052670275154134071491038615046950006071729009963542884310309604976640658617930944917727529405410688546094886921635802241701175403689015040346032742982770324882139188807577347278259602893764239057290643127956649165777292502361263504099793707573930460380749188011592042473577602276187361671677088098168473470377063900146494793340184228009734215262018915083991858080939608978949767010708180144207667540412201672485201223238557372489410832451725562533297767379811687742716627891102598655532099619619255137549285967037448323769646972317093287065490689570455566832245587530727109615129883029699459471292349235873162919348024430818707014397097579050168837352826714505729300914382170935899371489955120783356354144428986049196825916840497801948738700237137838996845950231501211616002231940491403177718255275058378219379878306306409861191645545658936363613214610118691254170238103889644501489320790649559520197143077680430828766650532008769281407547585813612359825692205971937534381862663704973392296570808536945445881946027164138300748027619328790851230565312958288993441678275778340398003174155845720934514517816961136221519408989187083356078345074135912142942643946584551348631237781522721390989300068531158182858593730680525460877470075869092352796144691086297909563416159894671566882234869619102185484026683475182509370905722034676469275679105032447645032930914713331181899737556513770057631778721394943550259246519193631549801356169344489745938587138727574903315962626767196669715997382926391983089368740960970957175593913576018240666894837712220957743572732098428067504071334542679151618679284987380557798720087478031296863923356902580901638399651874099986463305888587620010172325172939630070511863504857823724009002114970876433889171282425788093234157536083852808971642999800299029422035911378746316782745872820211252682898249940165072401300921388295430218204705823242464057698550684736202728838141413200350510095138965284722640014266356912685232309837166804265981186739364184811923880010060376763553857573729818222965478417710647877055840438773053393363432290536177984239150532616057507157811943065840028364255249713693087145655372213007539980300388066923162744122145554407091668738753261969412123573358597697059199810315391379502967497267293901318087400192267852612390083956181597163390869851109626261551593277417943804504328256508622908423652097703491536655249283979695806919175700422391044931536299825889102169905928028768548684705328119816582825491313899754462034756207942758156313494829411317477010635394425575266485583555639299155408875012035471150696013171992533130558555909814640683734686940469933868465518357505894108604704488850994754049085403812457968155072055617382275934307791822418092252959277918602350366213077469895213466424471725377453775125319990626560801687973706716888689081446548759830329303398208868361049639990676515746382274195146892669821755465005132603013637785446075518246945316956408897970532959366045733984107000955892114101433237131920431248349361585290531883160207834212066264524580783497354871271006563046017548965414461445413376571912185831022143832978979476961028556317783021662449259456883925905604809666187956070774458101991763989040812375845394166685338263845881136573766444981065182052019156847433923312920855961025089853206021069520510927800979632740628451414015068772135811382419839605931257903151025166325798930294483921407925522735852445774424228101592198722763788940215959792863667414317628534781258901847731251512801986208134303017241681870524683056030635426207064995431542088150024336241688875574274972055396363137804443717236593815092258048301550131191334786037696069296903342591206534317895741051491961494983679874427811304522112077501501527273199537331245771736774007839721630751039866096033929564567757930025543979073802320014371658394244169308026237678033297462008382911208321095105664872195504946389890753716702889243398969171176417644230203831293164110003531790694797746258790894426270759912662878245305548102246780250369161990138673057748132795575466411653056815866880337369180504842785822597106247572106588314246212581234929096797217301680628039497211134436516819180646890461657444993062345409975708816358380989435810210573137917506618034686464433436717062739950812351227909109901371635318116775805173792672099658953741146407994733886543373115144898980191895968778322535722497640053464248793883091955603895840615424898981540200830305617838949370524055314157426509270513400930904800449028878081408428067398369096996330688390721621046310167977740406743249399331126263628122571590595774006625346046437526156178416978130751475212812932198016774507888321531893514820156804279140283847139380012190950192454965451201717241211969239059827866982160399115155904201612957502731059199326956805042674316277528659252496354334710505140029852731400945202291258123220662763014948608457816902053044673959713644619008469154598506372395690900282950735074093822585019419340712755024052648730411020142612068022495088627075327155046384592729068862347919804814354619954956623807439083353974720228648818492347029139343190516187040876645588308218155034165461621746492543291650269981042008995679681980444365465690390679542312018479642483498705491098145301467061682242171017627727270433660047930984258840938654842289806382428105204985330620924868007419732553274644359218035113846521733802440262663276125757271288621377869420021937182936406446783366763596447764712862864701652241815601838363503434757013880991019070398126549577464247934406437903618664372409212323622983541042396350665192334238392248097851068796967205479407360755337161679536763308458813687638337963776789191079829337387056791054883885458817318570596646912768134972561229077366638416722088030965465686542778310644596907637542890529722814057830637052721098153819339979263106229742415563443942500575343935884248848544590566462116989379335111449963991974362613249019252466687049557368503693630342819039342483887632699627797158831667690393686264871861601930936622680814424093639478810188308972198403271281738213954200845774887581749003398181488103521973409701548852988113872767409535122140922553200883290529764746283256675285252568650103212995454856404046036716406786573816110928227253621730609950175935041128860248276147835380275008341022160547132061275361689896130267918509336167248368147996995848330549609989797826356059869786774476085648836331389370690266265279232707991174439003033482481837681770111893300549055727357851093221348316715703248291404450932620324956184187183361215056059421047815401610736345814197226172139299044635142718520419304343686303623637022543699455667634349039584832863702426837027556204960986212425385279329093977410411708264432037826109627616123471708084178537617487973299919124350277076602242871386270206986172652175950715240209494673490953983003408561957054357936165959661300597145437975172703490701076768502775203985132176790896070557901355951517755768076658123289569148697251042228214188299859035199428238001758212442659144514622379605409123827616394811824900730657200654419935642505891504979599526029446111529556698245307514215837274611755269747220172379719734303089968391508948882511496897571939046912072133139896768979332840526528779404563769788339677649813039295001907170807220570823676917712540282594633808510106315148700262953914024776989522835254427183290292520287604643734292797285272293620221505373318479349106311793810311666660895311375099092406010834030616439326151979474476156277991305547595154473694951800397080072217555643564644317725519554497881289116835018526678758752399807503621471349621430571460552549248260662932866762304015164656997847678441182090312458124792403822734960549391907691733201952053090214695708599470149476782327720999130614893258429004935371904400466638791900214325893081184700967266654432107202949511339118799754540890903737008912929250243677883563677702332381549728229062069884114286522864129127983746863075649725303434277175467474656731732570942344787967589575298121611870577744536624842864919732932370404287176426306012143787535110729049410927323995791096622076399730572181060798848866650133591548122021481439473949028133922402619598372359954280671291745515080438372284698924675698930929811287563463364033133964796700013145217819401429813569514861832043191079034691516959111330876096980345215028051050069248621054017027168324559112335508986157684070015549892115891582348209376324607708551152040193931070149150862026043530163124170568551040035471078441776055775398709637295851936934476958367909404947431878122472486487950831240680999825615769379859089318683510778064360253708376081194844270922961868389100813360967290209694366611309098688504964334873813698622243158304749171002306832208349754068513367224098695476845089605756839029274955838791173466670053753412889064495324887011128630090291140800248071643857358544256999900695757572926862314473336480704833826953459896030334647249132505941911568516909169175248275222121452205272896236264487007851936791165093441848835774193600222382789706132809503976376286190538369302161494171355840914657617000671371821316711643246847186516064750227899595827603303476215907777245033988653858775956229427386765753361002148998431159564196198760978299772062388246006414206308930036950178269590941831386366664899600504380638743309348497527345094522188290710504769510658111282928131934174945337323368206415897352710779650498423450097688731513096145046345840430102430049391026376026357607089364924283500616061658212893726281218670858859586387689624021285593641061427279081148895733956526604626699772892965464097731436088545942014558207240283047555777159820811959906879860933130037714615224357762068244727543650229432634696833150415349878693357640807416664261440010372070131509888634991316808661990076237570946128048369556937793100996951776089355305588907307723951466091044882769065579394587558884147286767718802209153587233750103084677542970764014985381114663576261124912777188621782762308637988251071145522697969215350044344776025451702368186054085955862068737004599231992972940458383256874958423233872533182530225615530728271254195334495144527239810504628719251269217697229024050370420437621667998786024889503784093795956579443991679314916752603355303640795664927501201608720996818590341721249757991995596870066518505750119352203244476368096933242940580338919590456815258314378871092172594987577835717772849466315131022439453399234364586145271316792396419494109263550989126419263566074833855385732647872112875408688339449331394255641334323298627042760772193674464075161858009851065883840674084811261762055999488771368799536002006690690533761395382377980368095313867306882261086616787833117928681593403246598230805632641037120231753119512047787223849165060747710303312694662942665751453348143024118036787243579197898406696465346029216702775512394374534377654923741524858996687306331766948520931061109016104556861358553356584751835919106317695123134064496630168576980156950025835556470021433071134058354181709658235884961296178932059867412898433204034525502716435176150255281446199930367472255813626849623935923593299647447110361179243677043172076664255354514145908510779441471753883556881424822811155265026433191197207631154283019411984761952436724187470764007995682504042776367539727634368098432900380283283097028451499236649108425174748865808715856827592739839670070153033248964852287420806193773878135688993608499273841837952896958701539023453572164415446851962037903134558705648487352848392155227506327879795568221349674487860237529996378448752121761779910976765816348958273565709011356580944598702926725569280527844070494768085530962249853566216375372115711739509472446883361981614104274098405687575600823087866236796980219176797934940088986857579346515284414962504711885142453177798503328954681391958923121103334837061928877104076945889506015311803991744944409394989367667454990245984998161365895477198780544720848874154219404442313264091265370640448944804113128388614409189360029343766702406262629918659644451053477563386026604026203099341571441226363275780922488318889045263691263402630608192622675408406532646500332759382532905807952717815878164267447095446935212244691208311825647501780440947236086284508900228411253088328195618434231387752657627123708773910288818874356758592990686768901192903455354117015183536732951009516535991807347894048035502912016708505959772371737813614696285980849033118879750099810195953263074519012683951109246728904354861937716853396461857866682115715561579917129255410507468924617372079048670826817582328352696737864039316697603054860906622741339536112798298452238422692519776334671825248258048864033652152535288105288061344598680882499994151184580790709233182450589615602350915527155978956609766806696348379914538418815289395903072156248130125042653348298623652212393713821573135060479771363874544474123302511215938422310565214118403466371406354217038552569877611177696165001142382164250366843885542408463447344423117138289647275065870181591284616246623278751330042627020554700449012781205066745886437265876532723260854096251547871789867785170862105911544069473396440950605498783364406322994777099232446351598882757888588001648861211121719354699989131632964573132743072475897972776202028547595005100478563869663396586699883563181872165761515458232508172165004269258978934724711252093071839920397572945881555432767396110473755947598819545104165228804676404344503825105921861735658360088645057187297135215556267209057341513953156094341608426693489865472823921248531461873613990853935235696020008454161851348850901887550501775634390585102603214496441372967642755423383194444837438683087344478495729420481425701668046756382755282997669381010592274768908256920770145846454232045111292681674658663863446696913535527361259975557479539631244784559623449607619078410350707151454412030309601617533870157750300510457580166232130623904689195846701923122514277837938063279810728304138311507355257716844553859734055025554565224851372036662278406476467188301077800461749279169773495722607915261769124850252500835410109684302142667414654677491288396574027176370878158473544981184505551723130947073895026808997993937231096552109465997924614353479463378465125883613891059529401005350046262995260014508197092733423848294230175053660160062720030523064097568138651907992139750976781010597197343073482593717141587396271001247538044763509812683384339267420063954959724845438803451138942785713307367041609251563601912945045338804708744202973295974258771476946630149749167507708619792090636806945970874599812674487965607778014960155840284727436050569338851153636274327726799295770862165848970733760584140106054314887669669461091441833617871596883281793220879645870855498612318407957805627590446169485130006583351549160466594954688498701608398089207413552369826804893474074170648224538676496896496791446378333057148029706089133572108915779767178277190881330872136489309980538062454149592175653762518272854181208308753380567088808079175095530006157431230565342661932640862067115494329189858700701496327071800466050735300673509533200959003604340337223499276296677557720040294673783660958447544141466282147812704316660540039784564061780377817704895691739336163318042174206050105602761580747265275348160940889685489111482153449758297222044186448218195908928999370539323440865292742622815522423416109868677353191244510525838068637333326288720505141637140904507489771551971904274926364976506739764662173632759734805139017742424482156599645430126866028517432947234769954000209038511026256484807590545351655290251221978013954426494847669481766615049207460636647911617386249197898946379837553233484306877841558717543619596174782306873865831634484939462159964422313762133059465014877849834266731008802917016311467291054609151546823149047853403825212837879255021323139893906122931623245334692442321156042578880204914361382105120162565145523901864169471286508472659772693982621589413947858672501501082348747721165485685290419433763359995898158720741862263799637029967196098543204689317354930719241666114379801112763112289523560671222319241897693074194448115301455241930159882623942354032511647917272441633995174371842154788648941057646175817678067377990743468083632571005394489416337159212780827265152657754091628960993778782235031374577271294630879851609913726467299798691258148976586287941061886504683133258931091757998906469843687133181342650783188307867919629224092616690034237601438031087595113545276286150982251060002957722672728876324147736346220288490066813514453908513310899973554738513246273017084378089937783960542970095144264133477058240029074285492131721169303718873598664512798339591870283389554508181030955316614774141377862936009990870116694949861756799958948324304144887736536870556604030122739980940077842384480781530102276158164561634614296298697696925470342141721047228878833711255626614426794347133186369189078949154026145867953619988016999408046645125519424586147132552868429602781927987021967053414252194850405870514184664959360509116854880732113292338834526287969533177289243901662992696268361676319749123049977247022583867930504784286894266475296570081936747822495346020605226872874031851599829269117168435898129643665902341370844044020442090791760447748325189930054362096575034797255087115784025763334552255032860982339804424308239347741490916980630060824059456378620228898225040658481132881055362851567785206007406210674205815908098805439833195214610781810827806836542042661049355501405578005417870404455075757265624767754667857226888460203781543480364737042916624705158683590691871581550109770668021758031450007136714194653431172213989554245377211963706965114408899768458881011396113897229111001218958269231903633470925661975685268198861277181784313064629678100700772788440738620326430561851737668516322622898651954320224614315223823451071227705399478538613911859386360502309889921295179456298632536440032275489517891911130986883886179481411205897183154262299769850419979287669755113375630747366526359175775610178979306757610516755947825277684229273606996840185916611149837581526190438452219388675872089446269713609869956752793786429913252856061603303472064279667116477649240551234299242212885906757721573551065133864016011363618338877882523577747343700728727355337493684746763024603773019220432738848346783634351856592088419959588047096893423595501736527366239688320863801545531076858631260001468459852760238568761208309092261857101623074299330382622730971740387956066467901245613102227480403540899046491215558219448016078472844603181275936326474253457853528912181619677230169875242914128696705807452128371778209274740859953655087524252842816327084559182950537824896889347949033047537036352244559252138817770972434916451004324820140059309813964431076712974177062384777522627159144649317013994835643505612192959068347635815156894587635875164688466886951865162395942790526986372559276742643459806762194096838620072328482512158182212835504413049899384785606531345259097433968683191428455781988057675481851624373725064388343683207636789801917861049838118153450314078987834361945177668477821461165680720460638465319749040920274759235932194498168618467395294129098692463674670666182397337854977226743825952309239704609459628178316213404689052861736844698296977586195279191719881787028126343986189090158769058169162361958110493976778676273975541335975440017458006247605608419680253981034166245424682586566375149353179033464805096735392661789756004895803210056958383111404694269768632657326012843900354328447707917397409731545326167186410204252715749929494945400988305382517280827202340239586730521320232470429687492758034041526380562991607127882323065615636307305039996242321900560445208718466671676653871393504183546941287314442402555039259882574587991713709015121188790705149448322212218262806348109123276357310079181880332750329598055710972776673194227026444078884555679957373178152363903949574525635412195924291261770788048432012359190222390930825107358488589816344509076456297788239122541663409973624728052526552603009904170264011286035868258118137875626658912553359728924601434040813232916207465680522008149331671684572356016381481093517138473553697433112227073802747253187957809124729057823703219446389915589023285655389797530722272691347766091933824690667291641507781499855843569338332864208756712063870009086023006036195113193942843157976339429522164205921966897927630090914702311793477429259240156880101513399181715897575203507774406615549373847998627432110297434108152003115724601515776296644797230528003542660311371771384406510817504435262270002139842271174600727221735605847103892668179580497329988096076659258399925827453617631170501142585722998949335249329354626799516835515120335178686513657732358430232288708099158195111807387173822978251652034199254836317377760627266854487503497224998907285757079689255086116916020230481663316110041878519839545300999898768468194479553608457761509384966840497235307952783965553174355395054520933819269084054385991547866129379500005279815437352102012764357077235863829597615995179868844470518299398903412404576955903169314519347164542860344509106443173787915373625817007376807255669265991512023196059227922618280681140074093779319485551776430156900523990524195622090628292840365053755675903606756246037136548320708250899491010153686663500142761163893740529761978337385372096861588131072039969576803321962661620912919027037409385379510438989039117899742285864299740349350049607759649788869742895746792047247054434468737951212781248130105219953818941174281280700642654764575746537353508147047597157403432881299307534948509379813058594098713161022179390213929832260877960825632341529632782421581412715725242481626016701777819644246460204017521272624618473793201909030671845895613883122648597812467542882149658417663642198395547357171395231906855561173658680294727314933844794841620724934719883042354423815891216875623681583922562792926291639824416936137670377219623325359653600397997291190212984793027260889464885012485795455038254294755285460381494196225405304498686767632139776960627742052077203803024116382750702497204017117942091541341384440431002941546880998413211901323589593283617432990302102603599606052108970521862027251221535579947727810725856081526692042399709414002799107910813459423174581401527345430467310950435488812167944613551035293427548198123026146787858780634243061505137068691650428339699777879834362725582900260384172338293070729322183317333449786977518393599969576485981342347540239188355581341418870246146877209098733647969984660922181908776571497295773608016617962057204089935923617469614276256821019374398624913826302747501154687901587265132788949909117711966859750794052717176085069853948768364876246452972107652220355805682862340865605251528659842623554846230650169780108670772922481537848995283297617531128176558935893410748489630026286154732337223890689639871909909634645424427424899701281303743943974366096961370745119618559301149564976817328260463504296755364679760884888261636009071252171210084455991904163789012595519967850610616816426862422330791257816485179683389306725403201817929543795792148809072651052262346310233348313585899277442627293587289607075292324832917941120556265213000924757335422333604682811423037558566041623603092153435538112021674930893043362889351559504917499455919076237178104043216210717573120420223149826309550461220832259268064975241873458999982595224357489743325679429622572995789325913785791910800035366734748452080543918662640323722700106981134416927836371733141921628200388045645248590197039959367643644146741838608405204619472859097991124376565175001129418124628327294652272481816267892497224026365110155893199681803704317431389343394576539236607919861694490107652731366064829729497784545659642898262111661203184804079742577189331668372826288939040136578873561704112116463220550745393771453347749459029259354470285941120264770556317767953628424148163233983671157687529144868979819378345247230199991105900622914617638840153771183272234002435031864218437220705055734184765143207722003777334923662985769315581504284217504807371696786941525011715430669586924357458454558230409373501467857500659637874457928369455076724301534403290340461326008507129414657447508692575317158088035500030109363134252015904226827661368860389081644964310404303627105373357461496939687702275753358176767965307665701691343491439750549092442530110563982695912262581120360559529807995591944629737692652425319761908949546579550777653211975196676918281456226824303080862711706754953320173584539405765994388905117273130416993756177742002221226571039322279600374502817089195411796506618438377689202625297943022113948251862746623617394202446517324332297038191333019117178191971054699056818549259283430453165672975681072877734966121184825842269209788814113304259657828204667141373530812823140796897825536801770367592992850248896816402699696015238953754866132193190126022252633086681750974301544255973053750059028714853073381841062262488057867596047718528506817311444504407779998048141452130646339476974152684470638858986011430990299621319154638064251926679688613112271566148719200460077113421699942273859632183877275850774616496310883933454035546237357526889009435471838412110800446489829469338538654832740213351160159604630812071259767829238844221653897544791449201292883393633285278254140946031780387134441735593627713836527811494338038081029056621245275299122101719232125294344654058970211356585270759137279109015183449471647292092003478171555671714178059939038495385395177862648958340417445775478269745806266110912117616541442730545175660653898837525243023747848872805805457101345294429456755544664663676825583404940035949894984449785140574982031167046204175193638433731989457259213062462559674419480577217979541733473636330340532924736027384704909824309992506349539584803108289229784053401483379527516860939094640486998987956555166527546678940366478930081030016757746757863411611634042487215776007923979969846304088289140402339477154368317248970315583877034097059160280149076437303252982237222541292269060619509688367645694063434888083690979345609713767696699387512687327611103366406888666811034972562388914123628003845103436741814081687858580050270235601595109397191639140880013008468840224988003608910861472586808013282035536502730831684488343435399475815088275718874364754684805882524793384307591167395011083520254467945957521593483369557962526562640841077177801441518297964724481171259795714399848850476133172176269341918963210416647862552551010770057705183081172991474910577386892768202884949826813407244948800953185977577668248181217443819440959389026472884399805884391925575243880653632646468065812991935116098357471092472642016297989014114146168039950559254600666541609897156151998220611823745369031541124160553740997024282888954708514499770818381871378780269360976760383365422700683130429506679881398877003932265657198977864011787665900626629705521711004711468249778292537369762703803524653105736819903654010657745698536939775994640321250507126713613187282687768521114485417951966260292797667680604579258001485086021321497228250744253219089003250805607292510449058300039036250988865855013215548918793592791399638812097422606170462602626582700854916416814926842755326902360350099706742192209031079904594088032496698137977620258768171655748696915459571528985072042630762595097456025938865184797784664805243672454271401207584405955041928019138461120471941060786711094851404684811956306096876824676616479238368005972670851927721530773673745568916474444470537301317040649008695398646153689267424767106693603176772495975941324415077659902715610354311640932349330645840951367015062998800227654387023563480771657696810326669220572400324700859530283194845378118453727323583098921348168844206025936362627187475067456597660531714647944122936480374724690800758955651169101302702336457227014891379218406237975000270346324089708188908940646162610666043194501688151552844146666699890310139245022329506092621697648106986921438793212029998033471976498367357403365233477496117418464731718966230195333508764383070984499873240970806473463283317692720392758115309683868284039924429759436558294770005338547718195958747703489311222597907882572047494578142094232622429347699412143269601833716203087458585179943695253494169184519949626031309366805912995254135033031340301609083111572632126799345903701198355857151978897122187046583500800080939531000235575058536643938337140055452656571123175819432002303016901950258284788866023683762681025059886882658059363589006937290190101417642441331618460526417587099685465094873211782588179774704205646899748768696756086004961191706165426573027107397083684162754855853377545912186010560738096015575660090886624030011515294633819443676322187649820988486468237631799334341153256910965023162603776813495205981098267762292278124166241899770161562024751138221646787758198395545556159272936838203706014497088152792773279118897403231360946318189965204992938536511774084779380102345367434940831740121289114466651727526416570845391988357752013560300026608794896920599910371064489302731563571853715018388518552150187105383256040631103413835778490523508574191363798216787590693410192757667044921513900464209906151762880202885142763955187341221270428619339139857427778572019851376103502649737886540256144758184604093212501264555580065717208539026249839470355122187841748117898970091734419527866137030911372873612277168945381564207415250163827505816580618029604523257878757892744535851976428695203955731069017021386087794172861578156864578955948514477616210159580902541833149675306724869826800384562388310063937086072283028767694349736149937202398493968308877015409806672592745913247711420396576963232265413918789493291765620992368311980621886664793677886497285378584716135290387470265851830094370128160095138251269177865918377653593874999148679750337615524763872951758985881079941214828695359031027997465373482540234717706631914585788535745723322038397149176650291813337664574667942637065570617082457967914909420670643053987049012311755239094154040131601205663388221458976436497064064236950283765564711926881597084619999331916537252205706744147889944323863140052055387217029461155002116874917659892405390428728802204614277733999159033650786951349459386950848189246045742119879483771085082735831698674562623328670235780268783911402739713860392570715823748982668868985136686816365041411294382330020130388510044229334309589352745659720653795598953589822120196405462287168693584312732678513732170147249800832897380228915989900110023071630180298921781315965212466675580673260872594400143684731299595777466002377704103574144040604445554258541465962941735334048846523048059913343515833114353226653694096022366398101195848592414324551309747933122770020361301740753906908739536650656114273684625979742650372072677757380491377000953245959938078148823939069744979881587271469853893519596387739910552920136714009646237048342917065981895196560801977549351552364568980622490418830247512292547698590138345038148154320587453401776953085423354603230418550243013935050636965648986780139743399774531108343607111994994391860625753612207772112745404798796414011822751675690994112467462218213736383688463169870991225015377824588585494058141988329818608915955471934965036881107728026629114024463168084153006963737196588546034332070166609767376590468073685312686157098084573127192322171356724564626747671872703935774762932666672271501142762409987596135631789281291156558158288277400246463262728262232460388312788134838033846371169774932802782265533042510385428154248807477582410104985867688389969673860717768441651570674915980683406846923798959417792223687149000374774250370360847815979019218767849949673795793789690498598175552315432018706186276057182299635529676719233219285093729796965520276501305629232960415121835423513528675690143932525636555924636636995558313161530279802922227616068342424996753184747474406413681032986315016057202896536718561699195902536207094176348311351515680626996795245785385217625685718001127599628308673218377781080009184442575116659498980762390602117163928852959399503085682234265940329480683123996233677986818740452580225406982807063757842796706007511148456867414970277325099159456932444368764422532121337992588222267340425868609856252803870197978491843764000881929700757356642953756440850465330813023203366116128281905539312716009763568745108997149653260596012740691899126751278119612727348642531852678396538334401991317990749269983243088711877336428106640229230481171878093864887086223373787232506690754619853085793781783653033526702591648880846430011049183826442172529836444432646555308598428633971361714889206476694764412971260194684220328228889779767919987208429922350549931418867773091349518467820006482104163626928544009537187566366091565756566192133661897698615876936475471598829846476350597398058350527344332263407069190829839318031566371256454463086145998814503595266156835148225570270595242098890293858406873383600376319938156435738870910402027827211195912623236888018098099018363409408581425964243341301061881480392635188064058150655823644795835115228782093008066878495159046482044241237945209174403705436411381107761366147381769728266460211885632871724940199475024914052666248833545805260146659055780306380791271064512465783970920840832360821928967958823280949096945391725086369543925353798415151574040555592145965048984078285067828283204038336962768835243417275731525060791197921609700280005488446198385057530360897407590440224160222032298414350756569839462359328361449937112527130813636782683029714670737700568514189589513221865872789481547939102568198162887857989560820415616966276435037588054346229779156899076006381080408806028608783939183328196269993811219942555318019566628690815478214348179915198186391396666874313834365185607469514921369050545212113740943127652940834456135187725779849161994618564047875099420831215941764334994745046490784498735513051815762490164783426105448989153186636078608790836248056221563819989879964121794613543131807560316863469145489026286640561724430822745938565465187345892969923659862572842605600065757530249249243770521708526083830337837512425024087765668471761934051554135728199493612176220978399504999194825343031315754522314503345749904430867285656975179164468947443771856729173708156733573214014875700467440667334326673851151572744123126606432731719241738606555666348990065520261398934423711687317957588359255887013003790773999780245730039654159587280870231269750009686026817915487955570783347299615906906889028375177754580176158381607900125260498255209363164970799026358681737625401400912579097542918075369723868299334863703980721284366497557057937898222819631850644551202357258299180611847713833555251227137116521925430734124310191312750620844820856826915993314371942885969295027338692816673414916495962114278719485392291354753470914224230426575324234870312625671387200371750002614630151651929806524664255287389185724429318646515512134253580624708753107553312987386144549288431250463339614183487414409728037202721808480056315027461852088724613458922354807674871534334560680533206671859111339766818385620568171872388343941735131783089730900164834790563226721146480310571583263301217586799458480561552771389534331492649368229729998058702986266883988667663971272579799459584680136590348350479253133742930533304101898876762954273114815524766015621507220201910760936302081876705710627835572688664693209640220932148100453926936275992161242126134773558021959837593106785363257421263261482075838593332266881892145649817222311641522643732187444660634531067192579241565168424758329780325114110472854384736508434477764184162927209046959394740431916525683427660945306849858444923995445572497495685983803348894081665273882628403448991846012814004679889403780688764982234030282106403073775268288929393690026148147388972472910492960043578474864321770688743821587891812178266116192433584889245393962422271827454894208319500833192412197224657642033750072602858343369457912699877177463803546670726140726049863615956539041695700905991567018984947043192077382716077234444721775405165100876873102319902848986422731998814586870475338102120236002118985809635510915307014887981577146161354526787722201643707912968951658626743509319172049370169682174136584766289446083000351626671959861647532457141141859761623608943112309283454310315110153600997582867785655795353705060832433943578565503935213028966939463257177782775630598849333545905037424243632828411909579502535906271295920773349127917538183021545192235359523055275144605205199928338974808386347224729706536506668062033662503419456620742497036871214454795766819542806474929256144000105687888075254974883169929421356987550705690237195433196362977335084620365646972237706747789028740756961451887633055267670803416714550964259298578420191816288752521296766732694539521786757565699348249013449044903837815325409808262146642544965627407051578097655433940329914387356107378264198180643638360818867832932163197770439012288446360200114714434894358983507234421397824185781674682789670372216803147004845271764214867530727828780294171589773321687474679044167638957432602426591344703500851957238660948251408213275526418484549150759347842863660447442488706773256644204369829414883510911772349818567566034319123725102038881199975094426318105908385521773896704182052643988408629254501631942583639923411530481968096325284510701608636582645955198399787196387950065161759888310284039219099684831350061457573996831537802547033049692776113271675002556750002812114683843594975848555790712306244540706695839226054246417564608992887365422206156603677335468746897004066385659233681767352955139863204145587893159246349113944221257950913616718704244048577987006336799125079336655686932142594663346579463913149956395054168220351758798922380684729738956104881805698396389012740091069078781573806172606148059090038185027224200381094260076830415514691815619125549487339611090403262864032762377227563256493607581553245765360707886141667642741049483574254026722286785719595120575588875194458866353421165501530847402690936099322676435577086397903590879528998642294796238868689461956373461182256374967294727065565373381404823722050418205927853103790092843493184785673351749050842077603639915188690202026998879614054440200122649149026846623410221040599465065259204164173938245895551297497676801881675666384793258719809000043143883820820952891915488760550427002449477899478441835686536389238104746911485386583444482797071525626088610992032189825652470731360889258873725763864936609290779876463302157191917861708155682315498124835040317172029361946751733020454914113073218287807637210162108781934486281429267982006937317471594495510116083548647558287354009768351877893481480610828173944198377640497434391084352359081624476827125988207511090811709603293533285851587730296707883133213846430867066109126565353846423209215957454935035217350869368362174240142566747875412743590036399134207795994065445901550852676720852394447413552842569113284261852629680499505262501408706711242428434992342489375471431141173910682161754363620487028296984415559170591302663393240467349417924546636972706698795819943929065755755307652359559920455095535990617303223758384698750714619428407244431036396397472528799607986959628034869787471201698386824154672929485538207704484081028090642184263472127099070721435226144719031980758674652519109900779486834506403454923744037333283371712260559282236548695809315963077616110890939470869591991239570134931132225957695898013187255271471551889547275542185554018635601579875150129873645595570147507847474665662737845791377701833514832888043796366059436085176203952641728511777200948996759021789822508204357414290185376116488412206644482864164246421833073031033361825031735523072325771056412776322208810656590774797343337692911648950888426549624977726892887484910708014735797948000911594593846179712082286838629479463612652013809191028261705130912813786712358415845965580530400046704236749503812338624346209947253131428100236244495643581609687041839941031655378081796494224724843029918190006886737525037867013559421027644220478656856079625893723357106153283088140635684302905788698979191573416968346962862767191494074478124320380796834834814483059994241226297775285510351348211089768916844659165374268072291308403282067233920971770356976538157635544842474018240118592271391368788518198438320450525299834485787203859322768077588598195795232454514884109694211261689020167033304943301603224749900215824235120729821388238974535118426845837407631526797192489417937546354150449352796823619140837262338922381456744946018772285521355471375735390328810047315434611510037957002403166709103854171140536924948327662951252939311820864452249255976222677021454095721073680069052433732554814247110063019994126402208708525106906134684049739220803793265815299930092438999308014916299486763943236047656008839431482450078394506542034581594438417772316218761832070297690141358486446485863228702941468116338704915722915422269692667098783566140946762914513677341502844582595685117316805277448089242862853752172145054182391415959646039203108648944802493032985673852667576004585940359484908561854359965661636368207646329482677917660455886181065172216480010674658064468330255105005233969980935817360664103009922754446943576395386976535938818614106428499926073739478488939045133365459081019390436506890632231244067461631865212198607485932972341701277991381040066259467218178493320498443667860699791328228079533382399848427735302149385828106518448131268244871830307640567522424368254988474598207209436683345634906848739306523400659761669535573935135051343535608736179188041005238272446262180588330558601588996934149683941106311214167109783754420486386785997646531907733501476697502387828931394829035094146574694327339671806062891214969147138095733621205256850640296173070001161692100534764116175735771950422660610660854118612371986498138385496160552096141927409384042801305405468210361302710731698206263825864858590081838300823065966806734204592962279394268626675542246270814739954542628845993023253097914030239767141224821894004634675906194107470581896311172293825102851917177928271441345679753112758607770213855824174583643757240083751072389217996704735985214648745687173500357240049455205932219615362581646854432142821925726368802533491114954514243511106728620404994998746901954935865985208957203951893414729942950949396034688572248143242830084781171931259853711822617907251122497131001536006084105000634583462862823493562037375932494935254846602332910473366758642398158816818080012857233738769972330912496906737307833595013097402296835127209141752254239462706459736596361539810578862858182087439142952961211293137418846008317509814826109383320190970949295675901649074774116785387084675170884575574534810607968776580454393727401310565816198046879971061014427883099203039510742914953082782267118708065210987943934895431642872088634347034947196805406844814722750707542804834936896345010699505585048196368577270246502233814907680926446618685073749163297943876234890740696702118000831479121399041017137939494671834305817756046629127524384852662141553032350416967137032855356830438492575649461549547788238339140069764339056075159517760001683805762718320223776720077261946121017827074428358377662518212766388008317029439699134327299364381266068390285567779579295959382509168626640663936868206411521069098861541905548250832805329219504004166298103249002265656156221275272330663653455165096089227952661029645860514890302432916717188461994916999546730536113035129472584418360318138547624287356722696888161861547510121965129396911082694894614729986195960870095949915521206004705397971668311696387799777037961862614359158093309364295237647056576738996873023043781346642175274679717668193389941805577252600911930967617947809296229146612632178650294590595076867103776862638630169472645220185349257678646729692961299905660334166890206482995672026752866544232588818484188658914015270543538000244219181676452609377848420903261546287205208719563044908944895373525408409301914139774515728366476313031662544192859204838178129540932629518176268267608236995651303186703625604762769664597828204453312725238534507654471494389780658305102012656344103034546413761715896167307157283386507858683343677700461065856306158683606543286724049884765227426392406721004746254780333444095465022085677023695479273628798452627740531027896526417175192514223504468307661182961848250886343597056392440317962419466104588128466016563762017418908277487801927198088713052956241301931239219496710837501580615913330144050526055560843170338251187096687689631095048594844878686998603655039683256382283817321358002347148271977406262495692286583880222835500486699628114626306554636108931525031753127232400708215393620780817414377700245677061796441106705564228579870355718005579942061952415594788354534298931761728164773136460466106725595656614005612495960906110078037752376867004314776414058657077536773405401156103265723054169205015769966051300367519875730769194227867215507357183280078480867531577450950705818471475199915920131096849620706182955965585531162847959682841441659335467437456733898004381751415928578873424967063827700662531985779711974170839331499330311673089081550311041631925810445408423007536287305739369073178171385886994127099021842422475727235862341316723048641303221471308937888593948002438823668008786925149009524236581209173324117100770884173236468186383476694058306067611210893584984220108429991595967303089253700391630010655096000220172112832422377997048886972003984154184952070601474879630903362190500016165454913228193263431709901557829414695745378689561239195280352333335753787655945937124788348178746720256809272048588635589396430874578425055415685295645228177180266885324054145324650142678940777478196723631614927900942146740430856606768736380003554464588919426487710249826716179086488120256413759178658483210009653460028172812010463624115567572563312618218891680145174137357162918904447563241370267431073950816292749627558291270491299856077745416199469451628967425194274907760975985082948021460556484376741262789735511128063488267736980974503561549913672883108787416212526878156973199774756084745343154667712288596330432518548075558586146349421686276481316678908524876941975727868901859035468137604151433851229970946460076181582720212092527223100548822184654161223766460230531751484501209296873275188381819606400922569322449229984233402911697774729729273122369130905898823039916364720295136281612244371098808537031473724373769041805834089296291020490389286299278964014379573403109031679235902165133324958882729753867589876508118014611417165768418398391553994294316250220937017188731396359008615294484583728308406168586302013764189741659186311811633329820927862401822470106699459882688288927323656272276860688548753843583517542286220532597177143427303792488397757743205646398024999707078285802238008064153604205812977672211054292427840229521317128985436681056093696314834349286860847603599840057860013264042684029270751710604784666736243157400631567455194002738698003958012220970550784434705456153332288355777171404516138989752388165852332469043675807343023451331583924263527386849842228797750885861468421434280103181930452059845186529742283988329309726885700410961986693845226420431222631856963538976390188787214312302108241672404168967126277193300798204061779718386413555321548869424813039191737515988194976731285225797244800832716172585313399248175504320266312083623416555331773769089859863433019839629289441125191895369534418767257710548957184045588098883311603045736711928666775239927028959486275335926058157945504465573948628620699583258239357936475260189008833258698541591037244923630475452032051916152000561458805845012308351651361570268403305782117690217674909471968485355360161736501127484514783498790877977753979613922214948115032352550103995939361695730495946527510718859591973703797647441223315295631552168311860647972419430291426426273106226355747725494021980455422495643792397939231623100247024694311502832528896346947692406446359586683862486664452491431188332816692084678654447322322720161013793526850178388262407928361602230221626619928873241986625813394287754260496504383424133262970674824524403896223883032661303761674945931141415201024226513800715965924446001830239550225326957320986538383617613398632466024133257194672324483522935436083489819611153146239527377607014568657271469012932873369617881428995063802397890630558343472748989956713306902027773164599649397424717280430554839645117659289733556978630687402861142789873863059190112638210414001429501646179844685499248740052591861632824031363703309830667634380010795763024617668861681949184255359547958247329281882152896413533871701130810481003374950759853715491318716608691682059020085376642853957760493419139971487871778539366029810381849974420625408880234437749038231556951347339392253738379455160801783820847806028546707796308783392749728974674858852682467340708699858980683054227177436232496983913735539515246803333410368709961780374290940675663015776668427856031203306463285733936891669998692096310353171137770348746765985820186377120708701640254865289117453880947812675398353790991800488316207599139140632624995167944179890808468786380314188512593736219817688214639254495145182167900452361878128856820899113486191863504732417040215343022713954776174980355854246646937742416043740013317438634139942312890376443813038095947515054599050236917489589820026371943163896986581347060751971204332280598578739022218007363446830752582753919138822662410340392444911326936847512267662367577285593933474103199785373708064856630906737084172447573944191808739348326771101770483029832712677302279227447864528417814000116806847054003887319580218220853119255196424005711451833255217467522336248237791898134181488051918889596466594096023695369423786536261095597911252427701395978032841593617938047509263806012122452479796448901678450194673735728947852419353094882731880760685840092024346994184469445752592676476890350309639499525322522792830509907132308608649518474171289299530829655497959281383102621114820772161083377109542021547375397366557118728167298992437389672745764879398213482203139039883749964965743845943451367667855120898299749242928242590044070460746385761936158594213069833390343017926056102936245500161687304319677642261060269757261083636862896324591149798915530856341359746982229359686066807391357019382735025990777766371635568486611076695259478035142123101360200937086276248123741729869078541598862028659039492537602596688429489455772652140680106774642929023570609208479887832357504658353087347433951237609637350534289661522729974458274890197949276524851804923253097235232451863785621431109978903381748549180289265114210270169873592519425138056421789738288751126522094754171540522771780398571066319946729182760200476287473030927090469504698201906306832103250455644295027625822712622206471252702701847975235946082270793689503362543506697581403899036790954816151812625119545845052863451598227260430145827876399813478004765014859256426522142838542399540259198499019544063903922952448954849617025506499634948350758627973779519199745045737302244592416749671580757230721286080305321639560594739248581091282886200072026611248824696443789341698724292019986749894958031007400038681908510447364406631975272072692992788713713586886861413776760842167195209550936439848914913641785196398974859440852798024767872919787795182490974268213460625149390920725155205107583391863601504934389934059812531462300401950676066999655015654173207327657407585691954310523752297484587151388524012252238089496262527211918235430244059799576945544436910189781728712308984519553371723534784722180930367317739524998518394999994335287107512456013419375080096500120588977078566511691840196589682752267820476364181326630060585433427129345741375174655021918880623711407225867746133464225416890750646600749534889342740750264542882640063497106009170883939352148925080998630851795254425745885743342587005171153810442942819467851999582758087737518636146739828206301279549156217172702457311952176393481901571637437079932206409155969603828616460498146987549484440337062098158814210629270633018224278943269263505374109418013244564516687946085036927320598011425598423289018092371103223976777312294167007789518263724026588754002688223762859486131878260377656742308813355001189443410766148637254719145512995143457063832870618402853233449726354616287755663151830705801124403722007016193078991134011052612048526350262483434567130582663286993817248049698967766048616465825752321800550149694637136470815356201919233398486049449237481478678815659737472291063905208498580278528884534936117254945277470954847847693147546928371830111782007783898748574236567595131767705387760344623614570410927119174085089592073859143187174028345131723074079517993318430117155801693924928292368354613749796673845544678066322874565651697861158894527843614229584384096756934336329596622706909551498140667551556720867272525223832962237484614145550521638815806630239889969556776668089968758092616998234656334419638689991768523829852165172474765686549360177740154053473990874694454858857528707399952810909691415433596350124823425550876011258302977454713250719806741886089275667115437710626944656003516036974842743754797453160692280627673653987824051588967999989598274216549698172723755785920992215960554311032024832290564951103081068378300038381915202386786854143803011692728794880495291198283008329289756979261724282214392039956000681790766717289860314663564941692768813803282551716374334730889117898911696258105392695308556405816092548883348343499689666034464963005369051700077869463255868199260371325002513871834863174158849219931839742748397101985402838716248379866297765367978751991635681277325574948390067286955685051881315789344453380433192510180967984220494780423398143327291759978292894550784977271759660888676867371552182399265452163110028519032123478858931267821591474924677775062859449335843465106232863739427596456987051491114305156335752720681801133669866414990973639503107880965524511752985072726978803870822039233999452423612641716955326851569135365601306636097960240506749916402192539465645612790008321571271919089382910426017852558135856233362830684456828253903288355993928695521339172592877846760079478124276978227259996742424484730451033750768011719452614717238251509496126993824708946987649223942666087633902604109317001941929116539924996854556931888486081409229041453554631890732164894979320060657294227920348381539998410426537212012889707671453106535321972367692923149892297981438099993732359703242050076889027420166458079735416529326610962421487005917028089858930208540158504611670622736098442236959971426366670297326939240537068973437976270130498138597924918464973761326133605913538223757701139447828055302680323957747085992696053587209502459206856118768708153710362195936586867370690962484072415886567550077706067920631573471948438424423164617098553223743763024917147208869303185176626828395819905957907930773670438920912192795143350721657254276915833348287280695840721771445233716661657586914201643563274093523989406352345297738707468039361800549788078791564517040507384218861789058342984212946533432892259987682575490016492641691176477246060845504150290178674457423400618883312684527947374628369926837636989470400336263019996683342550408569162628243071451621626285836112004841585014661181839995356694664382437651098257348384224856163399324134523494456398290660464934969395200134688950869706049055375343189619184212422091850007691157978526324477219536384378268455146667568027097968835252185878417663944190835348359283161307606761738915613824755082667565707014744499186715000111420051599994603117907668755808985274953033310857154746458889049988227540626201086070946714440324020958241467618796614510988471776896818901971825618115662048583985863180168774973031447468813843647914503429356281824763252149460195470939686698004225229859028709232347265097664387931725586719277805731475059520538696247323694271730570104594599791380765695901661716124788803251552710877298462414448705837455311004475143648310627699173182989590106250862537287486212825388721509694096336710066764984474086913163781336921465664043573256690239259925287286993382416070497440827731113235348701501750292260324394133915773493216319138738787267633606620463623890325145849441905890561581407998443394815272673695726635538737723966154635147683720965488089134778904665039826693287352481012260439353531964981410088983837408705770428583331559335710194445642630594135241593338014019771113415940208365986995088798990601126803366418843894374938410270406776732663682513769070643808091757314424223760957531692408762376352167209013693914942227134437269149443181692380918930005247331607740232062944400113786415249575627819762481337115213108259719272643203668952932518991997479981000428376414823518868380497573798384707907748236539162729537452411268386619167246100438129992243775507137440277028377879842620893085625656251229736197995801885582914183246311880488180257432744598108190391335507308625900208007472907147128617735012779330396564955144655124991607153505319007774969589416834492457325979141441896905689359135517579982674544207241486325214729559187459658310851107944761736887625330805034082351751619550765087782709761521526655726712299689713308621830702289885436659688953165018383263519850445785588609289409669907146442453824440182564673818373522856216438536767395992256069350735464513226119602190928717885702948718582060147096350432751511326410664818329671909459112851388344222356201021172956362718249101191275178586864704286226919017198786357006147429078716615318518683003430290414782564406113575756422812760136057295781048642301310651534399722717779792188019917991459267039256487523771820674610010107757530903557136034547592967926906889776012698971419864398656464469258060505184793307180899713339578366316239697649674383953354888508753483976965008003622383513432032458379157345219653559440326499981594199535677846100995760481661316962457027456394731718977185468946257678927065905515079718984552711301422168875231095366157202008609043294651173106788052591739127997269100446246034661800235290722438319050525513097181233643608107525144939599386619953824078150456924967540038724925298598981059623211974401770315458707850011832781943342374419784587198272343273290796117835067995649436922959588061020413809595663349190721877414699986362520931895007161396620154714459142570056313855531562752191391205171512128067925244234817760743964099706255316684865606530330552639400300692567529190578905407534356141534240617632248600535316070404170359184934369491517249827845135811459427709091838834593192352305759642475829254314441255698741571442273890174163512083056697477629941922830239938090376108813640063328408497149293396885285943395004868401469732507960691564243632056800910951080762989292217728408588640263674079813036019697168752173550349931401843159841510095513667036070731557928121280473192303157194887873811163103144144315772722456279845738437786027964987533785838011449487510195528115323514388689373332972219937964669290551178754343451578445705132559684279091871611679099171372150429166420923767488267955160028672744525899528854908370537269820089075142758210787522343392497905014239297908679385349276350402411944657987887227421587635051443965180689794316096564304171808401721093423922974610991605729029440734806243486714014085957024603588861168805314414443500426272712071312668702751030054727685923692877069908463295069663520125169351882450754543089513693371326753938482794810178244053062100021454736476487184897485344175209483711963818288088102567811121509013165967913673580640594805593630911269155846077389994744976813192896800910702379156374315705812816721906080091953166627438050662952456711523822660873573384652141687629741251616605746859833675522174260166664793093761852466281615808360700092338217652540307677500762516913155507583601114076153261428964752158618754523804953711065086225948064235748065403597744365490979114411967385115897773380411642747947890937357566674890139577982176478145330512624220669621105900917558817272863699165620285440339477453889401323244433489176042829402217054272408325194837799628189695688931255266965540764063529191602842125600497919747639208738673830817498110649255872099338542402842177722124721110224669269171127902638762691903841940891079649824207056235104706110054845520338878578482218515958358337573438537940132537346174786524886258389838843080537007520434167896006489098979032714455928303874262527329240303375376610414511186057064398202926260354464133256976050070923211668721767292650475408571010875464379167566627887993053410518263988602055306345176094175283576182052449691103119118511320207452288485919131202539412663755575970969047601161713108150560758640187156598100410426362487586561152992511559384506397503467237211873903893740567689044773354259989597386358768748809731540406426195411987833479516791220059216142402230356142647634667154490248227734710133635239543531498550477610989490970576392907401876264589916229449275962310557110260660452061196671819179116669200365102319840845107550684117151161634943410367387304900978383373885346049655755055936086303792628364886971532019612342079451886714115581220299362037809118897164596687439359792483570957043461970143308340368716803395246234415536870061060322289759024356116405022481211490117004876457451791971908356300238957317378851229541999343679014300752673432751852375543865542782776350784566988313172731481586039638021835203256661078593487942813074027184619620022566426496078180966977366330240861703177793081002777396140002929207936442504616691188434417052249017300591231612686985401368685425205880128443656501720782535573868105794193345005148443956118706445126570827027534015618732597597203831340059201736238404680853558022093796593108059423482609909879697915422697296230868383412230656271772586545744530121569203887503745884032699309642319003082087075324424207944227566063181135868267500151938347093624103909946569699950342807334754927777793874848842783592956799506071708556962650292965111920782376495984732566553737870477497752985618414161425173015225516694849580419360929053469589049670010071938775685378179989976728268256588411040796358749500557313888911966525761425711338656636884916468477679951108790645226857508579505183440907177022139670477171774832971875451149278347023311667058976399898556977487091562146283239098665523627725870661171784223255859922793321828452319619019520226607010721336748285702732329476582889300731666712595673458478671698222650404340697868957142468501552094417370989715365022303049346895738232473075743233146443475091565412084261659322819749035496340082040710970559615312909193179438423545584371788847071134891346495164138348077091819164797907160864334805960305016935982136954546021368125843248533532904766134292019348612481350855016762723004827902621890605310319993036390149823660345961071540429928046795760730245155717443252633425453864254846491032648932170999147655630149017548724794968604318431147424488539609943814420741578679104342061068127737539075142154303510256212090120994997976867412061070270625794889841734765436662661508263920256659028033211706148927754212756136137809308000278828014780971063025810279866470592954931365600498720097201053078984106170388776313241483057528971985890799152906769848770566879436732406177550714956689701847009227401412674762145267344380204877748255541131719087624957256186846319905999695476629394322114126394180660792806872734925081271169388348736940406828631959738322761957683845069916802691431226531563183443073915740180859161866704023440257481761467348003387096725299585643881073940980562119021523130049901922210758829987585606130795948500622023623741872797312922261651450141135242309754217957292976005838199141160043139069649429900084570414855153385142383846968132618955490253584892479853376103865693900037139954564499276285704690889000770183965408836359160725100993277015428490966084935657005027504183824405264513963808804530183472381169685570405935296130003153046903522626056795874605221052504734429399593586181365847372063179645286875101558574064607139143149239975187526300013381103620157453944477463874307697977415650756195235600918431451539111230394736410958355765595200865069742089111803964100764303672401070997405384058960429897448641263603940936680478912058040071962090796276875433161736213730242681981719250010043793186370314960519378950521276181541175736460256021345365213683155489054952056548990445796866716668662264459179990035423614152268333739783155380425421061873753512609163858729179495056130742819219017302611548964812684638032348079317344549200633293308349118444062538000518227747950770899561073088366285858407100519129836298778058629377202685568847451688142059963150082720624632153055167822559814614297054702344654528708249217902943187152816009297378476417337915725864167801319429794499840038710229366523896660708325416861636760751676390872973596631469015459187524778877620863335267982215094178847805590778807438170519681665054414598426083739882787655965367206348604482351309213759454640979517932051209444948356918327639304464721842389709841420952169535233069047424726515802198525398981345592727486161536790534519167251237239395790047372343023187940572140801527844525288926831834836536571038805657499985362382851667150237309286901072043219136068354773350021614471567042456305238200681936250493949688673993148259035877046658772481172290604648860384248364658020111379433608007979298087066219899969809357766837470307324547859194086018180551634741160600835487289611188509686671736807919857949818055937279523524778647683994115605779573354197073972164606764769177767093056825471158453911944004726331067368376036629929455742168307719220785410066354208423512075148353250641637295072333605540697337251384096258901189244438790998288466588134897025824688006500943367935742307306663931142198410175930232892707487956457110854451734755577557437599298676670876170895672138263302107546819442309682805264489816834735586722648664021040538821443663386301810278883174479790248049684207609767396492577716834542605540104318824581738756846035224902603549256093221820239965811423167780690319424766201923645756704724633551918616833732842669700327801553813008854954980319233907369967264279545815618797405595273352838646597100111495840718124956858477060305385335756491385250710566319734265178372729615527720202782988666842659668232279127680357281627419309391518468578799057951746933527280411515705921839384516357198379482087331126651822359405419653104135246427553430774400714853755045118493209862554488009457834387552423437798062986708118555193787637138672888662342112430608152534456394731741595011008420822673386018097793012650793075391470092528149860697951583407050652184503149440581224959405915837707946634674224235269343115982441991034764924535654401340481176652963342357349225659357832038205287886063064024343914924812340139559837580260772786732137171365281131967556976625166515006490506087515336533892935171535667131026961593680348139656026265186019687760949687139104038153857611183421312623550653500804824548282347825322418649883528509862835365702639714769264089044159787754185467989873360386778266532270545093258297295764890668580510633794429671383494071211561556490552668743105358364392412793677465191621381035157751108963698553906508640448085211356380392231346724445231205513303540545865870662110960310786475514319950362133812990400899067673008373910007895935849794607948837434571606304621529898289783277936720314704028387202535702475234441771040909380386821411343625255532167707571159864945387936151378804654145814137141755872846569326376005949136831931126268638293189787428725167975204260316507152582300650339988321140825827578085181813520468582521292122260953574338654017241459470988337433735269328263267572265942908136664223281801514747588857087774066950688712071760288398524106034587718694021804335068820803565115005645723882595939491568421390668114738842604835236312396856656528044056121780666102615594029010491292904901416673362040868822941918757662657436098598957633066237864117590438908093018328456942692328806395144779807420783615645372564917304990112638801141097376650931349139508269795659135905670980472742142605011139407643704647847011653525554859677239250262256747946543865782269908649941177727489794828789664088942966548810852101825960525950152554134484388118492022972824411668851116967923358617513013213993535890325773517963099243060487309315803855370727761120163840068915453175071218865266374046352059799754026018647589156500002525739733630962195001630112768069212062383220776308159334952523505967009056604459770963029501826457231166203509192030781449089886812819015805703427142675895380275980709566997481448574265823746536292092432115426948082717369203021682080694769516968498968448592264988780089001849207468289316193776564392700978600200748922763952467928233762216282377661185430400524210622194448401743971882891708079310324628742577909411588292784281633534051981091218646065568172944041774423584922530866692709954436281647509478897197770423108759898845791828182406254559185602654141939728083425146980171099824620687387482547342056368203819512327488870044086814176613426071812037319660108739056572954127097855222224361260441040007118290318487021278951951118880487269145652226818826017868695171991972596000932842701411245869372739474403308699318091226521146486835613539274378624667062379366397236703263454602556566758442538354580310617784462229882589482318648118352081135876682663816091658184492328880372251231950892009864501408656974819038031731004334030892649111046057317162852751034631951162896906778448815995376244724951152910941618332301366768039581600342194096063293480017126177974449924167722528106184732584821715899538592437467819600623897881682531676855046562856251724230333366087968496378847061645803094991525963319613516094243872850099012794673310748062232641382059274280446794847746783459522189876754196984390531494094716912841169797320358029152237564333148327844941366610338400546105575049958812966496970467504681579972763992232919603607816143252147257947034367712833023037127152091493604076250130663592787936634626998161431557957843601279293320158726161048625013600204895771981337664995302952656573774814476575754181877132223901664881763789495885586118923756297215551343080188862106235641239705161174998241234308566427688662056583954862530191409015946733297440960287791642026706128480554372426928705635061697640367042017598479446105545528258727628461205529013285665833689003270074882527951371974326572481673941015295470108696335989551141562893111503825525570820883819790092278295500492991445016564772016355402679778921237871578359266308236988992865627080652105265299514225002497376495182395494881164424128961334796058769030866306836219982291350501296947896881340969690767787425981172904543605163532140073278453327254097783721111468335428500537351697177085655006105772505119571275401816966890055858324364448699788858598942098758247281799166156988847205861413318807287147414680985804974154979429765124259749544360059561062972447580524882114943712059836451607303639417550525373312005746829877249903880441788940342302003885788147654539909952288526661601677611498649986266491789688355196933261633424092122898830948435305992338528105507926346116678074482702148769597492794424883762765594955554682150060347809110190161642455509455666161992574524725170039711362446409896454574560163900639619310019666744545015300367484206626041833796765643612865423095349089173124497920688962807861017811733598046611295470436878526853596900497456857880539784221384053800340803947717046184621629589569937686598948709539773525270444220286825847453600357175483325619101121957507822476512580211732564712168147104038957280375130031137573729606401483281075632203929171069319972042415925494849704920668956123094817155323745155373977743546949180631770496319142498760993916255916285368250373369021287622984342323337232970509800103527935460958348079060830129127399657518440337777091350543904929750311922678462795152453202732455157288806762011908274100613951902967784579698686174581120670634681692073632686391469437813458094794630058531561214748360236897718588718545223511179965957794828880903940096907870410674594102658783319646665228454053442998365642253722377576038722530106060352210160865947654926246943937350610765817017234207679217162612973179751057900816816270579186826417735675381221963402881596510332482592224062815259384896333813738174840780560178973066803440418384173424208439229436691262884786336377599245189044376019606551147501913444599202070626196669187060961996853647158618748337688824250368693510523191600996834112739741930653885403571168438858518102270987555553575913986330268216084402959772983720859521653669596561720359066849316794691043130565127322632502491014583408090475804584276587800960853826748616557861168461770320940332246521302847920643029674782447581576003157257942086790253619305512223802628999350066203388899239451618996261634784255806245544983514286097217292977811613190981698091107331482906989224942902633117020454996335094959380870781484572185996699998895578734131979334270562281541406801814817825997722187743799652425274533792673268145959157386319086231363913585321185008435369536960700660404283429119736300640036965776937694855837187024815287366180894113764712339953757888357848206436988382662729298186197966357855795969922159489921475556735811874837953179670839342616162528054482877145160996761263432195724979456005775754229974265349219681870840584645952042968929780462104716315029094365743145247997538393107767809674025891076996793122814449029107203836692499082039060567029997337068710416879000065015493627419004456466310152049103887631084231216621830326268643990663986974357860906553127632409080596521765827317093645445045051435296202878119481285271231252734496930930383491397190539297625497970414569345015580525630664786598431878167740694034852422296142362156065434733005674175257968521120337565397623465813035195919723539589599935931647279573524612943414145323351793435851862261004116283434701483694528766306499851255397136277964745853438916134260388094655000439648634577921046208510227241081280496706757396735758527505082512958504946841424995703971848018151079264043814725837937901946950416399174625575930543626832628730467983080677659540638239607350412932087002380970811226323906147514754539994144770590208167571515023377830842565948723024353171464203082891655100790988321548539651932591818861395771602636566491223358410140609768618450306610345034435601194207545985301217648612205386734008725154931533880715165220262689995824982294945679636518015466837659813233317005546662507733098747108699427975869137778233692769264262804629178791259882435168601359922878092714930651947078133907137454527917082841845802949253935599850911694854329770336694457222320768727970743752250738711138462536604138864319969961550639566265332059357363551432284286383618686865461824541399195345813320320383080916618486335227554067554321272297586682846295031760030323728835194674493763663866710684321618293906336509418179372095085866188056978092690757993954723024066927629768796762560642446755581095302951344353737171606294221093764419102239150494273791874172993196090290857406676645204287489535709465036409374279862301171585376343563882064108672070323367589926698371327730649963020006858700825540410754784061258211654844373076010566555006081047247101723367951610067818400473830380230578412631470749356634810917941546046572843964011983692392012724949582243059466781715363942182260562686198852180179595776424320875424860721107215145337002696261077283236879785718046510102714106454369268406033488563673891596709144924407864621937579257167288747429864407828994270707297051282348387498674384736599375115107260729099187817589219353630000807165230202089593740112975925164240747986094301752700182632777849001866999999944494733695390739587958040791315375130284049115011924639602792778404842691521004644456872379993753496626063390490390318436864410815375759922217464417202793334207624954140661862867509428396716649263257866177648594864916341201756485513580967890857158519501401517646707634799161303507648206407011476205282697019035060034738611256336168634154645309159770765510611911255659751055957540020352960456949319808149507116020288911766669377642673070903080128037099763671765774574121149345493898556448528519466846672101416572748531439388414750527981386430965635144502023584739700902291458420170396481266082250423163382763619065889736004593679561848032391085587640332151598036779589931194703667474964211075296413103491781481551943399294849985607838677346866238862903936202810093071029595382309109704820599918019291582642095915644016574545225304408163116972217717723853028683444286292549665277956033289287837814718392473188101148601380724762778614140441082928323991040378021402132528258928630792278207977126151484779795100614592709202802541341217782933773475163520715810149629969201463854415784648261427681005328197450376083951912194275739165581221704092239175574569506665803471013595276252064288139192640596961944703530190088422258603577238525414025302686111622706893609616090352124005165272710216233970160115306151147449501099758964435226823415328199963387760275093253503783261398423472643138914737006508907177574130675524383142679998228768944372247453090140067491044130204404029313747888894225649253379135243467634854717565221557976055654602052154631673978977244977159819332922520408034709995538790834644441990873671242970496002378706071572505715040208891921893980917242668940737948193658090848793132011236935439484643735183503550688318862592531095181316580549520311583496868499597948378058970530363071739286114936721844533000972843572946387228648973127893901974927269743899323648584263971449907744633244834770125844957425003295860023609124958440854806504169485162245981113900001818555097839079579767907006196333264203883597943988147093401553648239723927982091847001254499061928190327608009801766390683125339819333387813595459398330434818976166757738223419884706625161019942678797383668044300109451322942199078361895706858380072476431025852839666116570147195766472686744004809550593660204398347868142247607428494147248782823059372914422443861248110825480900572471321274498991373675496234901890000188148053028197280141470318358101312611980498525043020086187052555394918226138226693646659165725377754980957080058711388894171848074199674628556894088309202396786403271583494490249777146733488756103968477175525815669134426118008906282513773307368035973297321734523466793662363022058361145736796509585116560935696660802949300425963736150452538711747266975455844187912347907994484494488649386399975504970571454754960109382514054574135016996396887311135321640067810479826855197066220152794321248413063779961647205560872032665101217350563021872915468850565844991275522266246560327201538888309923648598892948902620708912185037070144473968305519025737949981206723385100654893741954823042625875234502991490270546685101014728593656028100327388049522694889890784909145683176856121541793171859229021535622703731143673696334276883493135280706817137836522583107604213334826185360617897816510111074854927694232586842938022175778453950622871928240871840037018957083629589378314477358974523639145991086158245050773030046785870529477039370041867692318082501137908964353500721323607542996449377146328785882957511367870448937138701071836759726133819889348357269790507862662096281484910897942811341706112281466707001967753946327330140902124768320947673590224947452572078994517486862001653622224283144160518246129911788654154906278293094229924888832573661553221597682117061106848894808287104675949106562066446396731048856879249468779191573586468213040883854156851492836153281950484822318233819779225273144201750741415279131583189036064491196164538945398349369168947650308657615253256199737203254139488248165432198753278463128691076797727527859826618499600092098491695261450688525496178794009328203697953715731221943220251284575733461085678711474174065071961541468780207338097030855612228013042117159792508497636297242106562433296034932569083134659039242576323048606980931191632242946047375514059252288488042422104882030463982302749677850021706880737100435956325525972701768558344767193046586637571829493133890865662715122146214574829187576688525204236811307905054828358557166387886325898621935614930878061558186149583350414562966456912630364031023517696697476657882254451785964361728645654891251063159967572034131255369107708677826632652686643620331319288192274757325392050451674885345120867001518530560071755217055772841133904600427873161716050319101155288467941786189979065039881813337584740802557941302667972480264207128594099397610869845647473918553166909947049588754123517055026179730170222005663859610806258481704054787229339920518042766248485982813202591847742417979549764031315701049018650226406813079518470652895246209128887957235691602932639333781663614459010314009357559449285687795895947081142253888941355858855736611101327663507762695300001380766968707084080636735315033080699041918200272628583592563071125686412959213288632087147253383357070237170567283939234233913910170156180050738630678529881402013483808758597250466639995121186677820696683007173344484430909486769636487390016354749675548821900195944813555906740698204880222736752383250741540158345492617887095976740571727491082753484873988097853737990897594341208173768016146649895735668127412244050424692848293528616645249051034137791116622603889702413679713990412435571948342689168678012897948376492494551734696691901063393867640859636756461659133503881806282766044912358654087869240454008437400810501910320200417494221598435255829749724686758918831231614610102449693090790739017756043715065391390873758347426216027835410461384157038252615962186530705261190897188950078009795833326408805200799585005551624887655109358252388102933726660646187406882598512726548826592608991972479760552524251019868208181227298939965441772933824778745962274809673376744850069536765494543348297180858379919003099481437145404239394201163157986735903509254989267608630568507894769446290380348816840340762290579422636844865130967783770904321573591960089427174784226603396471196453303535239445932411907224736613941010684578682577811215618503913951030409699577842436370670260603668340608818554426332562016776926003886137233008418546187032985057957757542537117516388839144849966309923297021273434819035729439524973431764186470569171559952257925680166548562062288840077930373176337368427418158867366212884989932472715235678179736025052802575043807354933192772888353926959866749001862340935972946923609796317496903230313530585604939577660915459458574634119404106482842979906536091595622012014957661068961631057966598877152591538324617944896610694542382617160944054032166227856380254785759156792319202110213206922917616857471860738444088921541091269623715696119752961610229560962782045507827203788364428837351742378076911658881764530642268939695380294142947412955951887602103811733942028419357324558077115167943572911186684240876700726764113700167655496463185335789234635645923745925071274603048777149884575065313836839019185716635720240646665992549444083715819399077450681395439353774600756296072754706021955948389040622250331910608425082207458528105033446784783843626263641831636291694796468675862671064881529612478561777226672303929202108439672228995047841103686093361829780079809055377471871164015644149458062576106215394434074195888433459404087112473709026448407271300261493469825802887861426235589601687851184402180452844405763710791917369448504601583034727937078159621726531101182297732653391668573777563343150533959110003875787488202972314207133687074622793702377260161240108269089954999466148749615398934393757871131508959981807208944950415564749244424007968379346426474807800923990272592501291218363586756879738562507019465495108495580798638562905080995679520713442909573121571961972514200115133538274139850672656154955934952809904192219443642231531775437704532735192972805586578410515437541263575329026041153789018043197670293111587430066783851401835417382971547965439578240344937585820445349207491202122661298647680572936732829115977186996845622772493028860875660865796707959978376270806416607063701763263603180026806531562458743455298156844918184862084010750082291101785628548965242099407572437949874741021692480332455090118875056971151496836788073039809353300709600841709238311164327561259996157098055257603689528445773558598900622994460517304200026946497305325529147166412464025043639799163227042842408446259803420981362694965918456313782066419207289622588467704547336076505676762896636501378786073865271811285853130853937353528614786198323740773334411624742384950953577205177634763022694728830018670331100328207544370761854319789263565989437783850367209062525582286484594007711997389091371465660705638759389677625940946755794482276843047381946312565068750175127825505809111375091903565168388817411660797855155144253154544184409417673110790016533377162949314675901150034896913265050450293152401417222372571605019067486631144666349236902285172971390478224093655618612329879325250371360943459633863619683212325906600543077869793971798058392972758823725823773514641486855387310620489046543004466223567593370031295883891261449731115808330095446472201791210454183538108309146993606518293933822634446972677063167052605579111041759600941761160906928579589087544700929164749682582554161417072475850411697964041307324499702073124040942977135779589701068447769364898338679027753105870078893072372114886366439430269520835940351616328127177654176912225114216701732052488925937647517728436713565739860543695319771347967670619299803489109083716405022417811051710506139889196226833590782397715691934643539315274935473310729186202115149151058509978632802369631854568417432415983846927557290975447812069949128989684464344515944549319770561702208813854176853275362115722677327066735390427430219018594005408500337273791458667557406571477533059918990833874013475386127765105055617773534983057390997565917990792136012745541528145162925496964879763568128350474606365074016882004281627071575362127915782333548316394053846626842683720331335720540208645990672304080753983908201783055061901469119360053089534759268369009784533706088801777349146012806696079318340016309444342015082159946283512393458290463459039832766070340424224912734923763645144835031674536269403212187509897908205628635215758556179284472776482902048368677446902035231044916719984349136688173303905204648693656600824678428872503389757043910133321107893680671822352331616175135008739827290105694915737125724677304460236569029682767750812413776710811555035982785286936831862431014991803710444521079094393674677024171790444965549591382095313218662886403800450594515035035531905360902718104034674343190647308683671064763167255593544516334941694304099399896576896229600659682362173788431999425086301333914275618094622071198715511717963277341178068901085327354832356916706544641747629033168960738778969364837814704984970830240203176524702759949891353951790902288087008473096957806814687625474163155433277712792460913865568864514898073606742335577621423707646235821465117076675719365863260650873285886778158188617579992383599056871586314686262191175010143219847854917890327740641300721119074084095712066337607048012518201906316477957185869594496882883775837187750412618750703608400790926241622824299452550420094490195170157988869154034819630510361410661772567262092605342640339552048385656805051078441593021345816817506175611167261275386917007426818183447952996110272681594012986577964153075043252634552346788331848449835417271416829994977485189886495410937922620043558607921303549162821459947496257240341359673304870961968704625327726438738154954192668242999806812761923627978573718588297846987906883296642070794063784100462019903295213069226084506058559685476934612391906742453420392850758011219586897614552571158541964712932385983224383036004830897069454729904385752639403082838166971576111878827802170571564028051015184380604282258335456236030407432541965322290406235862610998857200998228988923082469305630727479838457432099414195581370984521468175872572611396098009053317660697458096640529906342664004195141786110114213393033937053548612739448090160969367955059756436556161185628271743961814427833301222756589474752354057468580850494371080299026698679195112479217047146419052592362528007957292068772772744961218431137646804962409622062633226812513514494881755070548194960629189562824888991949892717132076441416379556462382528283936395105178738942742695164877376214597389217950242926634383744334776906291553336420272883694346307601190464826903613069812548636884880052605792570966846101173061561790901017988365943152123959580720910355107589119575705862477673788086529375756596078758111117369206778011879770538328629445663737521205160336307877761375300229915354655223347378604425091591996599501696487169214515933306214236745233223376026792227061834521481561992829271340352329794619275981565358123231532948774917673413661814148915230543574628505832498011543668932529986949967385567026715914223595862832085821305681354109649236786566988779492444980561095890367035383766578895724780452224136546748149466822646122539044312520428161442374631356243109475630748807042239183037653375238340352000493213175118904470327140282226526420581139667152878098328132378410887577119780686466361053575952624008648297495569005446369470592914839331078261310843578488181609706355920692249461055024581335041702703736439507099891048740675455891154772253295550066875975391178444090051891602487675152435047620919289650878868297803855432482980039253050459083739384406130987935364255336467477242585768960704025047822553723770424182048397320995080653972114949453796767694509415422969259986840065705857672942419672719092020711428665043985138647381840791646305143467387868437767271930674751177556418886844827915044393580274442357589208022548899664240197440387581044076659858209273729113706779678560775333362269723850977848199085047421297807480054631285586259186061538854147032516282103870636176225068619703118867065930026258189175716833925073036492756469538653133072457176603959455987131882442015018968160120699287560069588638932714657540027444674363937188239472036340059065733402218893499926624328018124974199249583776690505296218950626794940777517864418491376473849901613527345612759018844911709068747489692545794641722051899490074946490858105381107506214127559048846431269657607432894217312859669672790709202323465185980404881073166745250048578299289285236189163209059027991821536051702905071275621711667000123715886610935426162156973802468734632040462101351386559686980093517523664968862062117669648647217526832727970272234203323120289703593753609008501927921949031918189662426836308052102469690074143450698036344369840364438753582101095252640322786487135277741242236006171850925491637837072004103916555354089451136130861597941301557235095557574475465953453625710688623888632397865884187943469113556671215904653203010173705152247751769929360493814190887834149571050701470326507310025084827161854754985695819414896494754545015041514354958432927046815304451109405448860604298573450582804619658162367862052712857004689994209261834661587695331110175254222059488546939853709432828487167384551326817834233497280104401225816863884949557350400336295488602582398653004999981162149654175341890514741518998411174551298752920133610573173970344994609720101836347075614330647596200179867558331276613110065980743833003347835638720738960028697958197754444796712210819004157217617461586542840253760709071918151109303793047604227115998696583225997562764494757339818442927897439272727515156015150657850471514900724694453574049299849380108288292502099179067090701542006570887294387545106014972299467086583260518286311515031271545099749673326063550020153691328570938434632248547626839015390642684737339251899269590094383183237992192330175262182050140911127327414144487317274712707625415372189494871122582360072363411932070130609837418572309293701204647819705807676698793129981575268522695584956604503243808839025146589882172821602291020692837532952419117381065787330806448412889629679991305514092216329096904090155050687944071247849137716528960524119386104257181132600910910753196580175359246194716879433710044623220426138246788499745659461921260541650629684854423235689808362797378253003391502898080242473112560733907655202171995310062698626590437249121551263171492912315470155843067026066671067543395427110676005844259814232608206254992197904827858881492105411149155472506141270981237817479526858820306851607944800820344131367892048022725603491302952270656281843393289360872620649532340637413533529459285707862631061019578899056761750373688107987866677594837561376933022828110953494344987444474920526801291705841451511032715383761248464117146988117129908685535653841088917587494672668556418613981208950417147356719922215706715391866782821446463271769520105718425820313429995128049962263265632746152727680846856759224890644096560223561879069931656604581313281025528682586469505833091367468944652811706626893643162075736925166457732105300042685350973575643378870430271071374863141894273003364359355592342521507795557424530391881606126432459938049040748028874002539484818543357406826717061160934231844963330045814668506452365917199905680453456698722273793428272642585152775478631020352666907416273098897522844713223887096357960077979692473901779182544260599483414554176417684514880270188380290400920362736939654702713898771206687203495300181186797589906150487389038535994020026963218133558852452051800165698281424732262792475454434655442164555760970078131004703083318589828234122289546316720346479376046976202373518638460401345232111802815515323530040889662748557043042654806261640683700902439519529682186336362071592321378345736627928892690008791502817819252331840189645020541810485834014228680951574349641710745223220589084609974785567227829272841366312150341716475533962447012883764725401567050368534196151297701929430113722484707506372098254833088310046942790180067423756453450836080705965763071632198149850809901556896848106377436484532271343811130552143971303942525960368991053206290602868913337974035724786005199199708031789414367222904050237657501441423328951186266795838795316889713196463542962092076442793320150031963924928187996027879501256019938813665415751346200104047704734001518009528059681372691099308373026145580284209665849797729866319635247933091594221054345571781285928523093868044264455968096391530041584447758521870753812605198799332578813432133370593073414223092238544852843933394458887695073450891507832784789365471985982894035005370805871578216427118951302833996175140888626517227870774639623462634922067729359584562791434009231897743199561390087762830788145578007346013360811781655182266549085558578123319000571391470915879728373710016221043878127872349745957196382810183051196659103110456464092052134159462471127512152104031649483986998605182539243814616139367246468291165642752137547935458215159805141366359608752206098141749132262289735003429971469145725013930285730304338470917818430463285705499578299709809078174588364717691550752454822146185330614040017727964304784863164829011318330803163236520613928428440356348514189576431024248552236370757017457240966104525776144694031160872433579165418848977552679468982231670608398894283149353619673444279825297465042895941455114359141831081954867987076057272257132055490692489702610056414704660421901644405265240628431801824234588523253394589867493684124728031265985823007729884565607299712545931246448649850634799483730977688837215568257137627787925892828957654904095753436352702071537660365614175704489468289157705469005592947584924328779653794622713144885611006127408589123512684528215294792497976903359317848763056407028164740531311844460488140735429240359207083720984717358630938594439637276849498146088043645084043285022632267542394558415186290136604353595339490676698357479244408974705440153349106874155880405875334701762300776110972412806226109866555824966011975279837792475578848460846727431185055558661417232799156297673960945906689850414073622098069762437459053336090765286821741143652736893107902749792789555042750878672152411941364537537768402167125425990909110236498500262751483309889522348398789820841337566315724321883333365721897279543412764939950614422389379811377936618260170150510219033890734145366803400346467367524434558686972768283394020718834989737153928648874702518200794097423727620617434111927741636446503546076372888830097934273085177436129326485937588981604372201342784806685395110596294097496873054228724572594671549000173165061996898402178110954161877781937419027455531476965323234417023121658619141275274958190211412364776138714584629131465754748575791628919357323461966853414167661412303018896862956398308364314770556426034937991887023455741567031319695941980493747846668975591182885660450353052715474508321647628226304110831196425012666759620671696504962224411566500751092962958460346482244499823144897679688566395505317148495938674133400473298801004149224019386601252898747630563358890550541922945481012550476585990738992671779010400342077890879782087736516415337588676476668811585290132149955850073674901373734213416528221017139685608520070967781069969417214242843959153353182037378846879645909592832586956782613695060683867730043471069510158289935061132121555984734678521934885383499344885960436574813884838586303194710097990757109828175240211555737824319331988197604408186877416841802140677839511491239236909212612387172164010607435603202259228747210311785725292192067442389594245313422729660260819039711731392782355308113908684774555209085059675557903967031391769404234412471548784332289380661564283129374577032273426025044740074594738209189441575564210882240636721272881205026601247002979983041652761943928888793060869901634995207363498514343166261336290064072838250150078083864373352742324827955752995314984381634419134713472548597326230741559063935452426055378436505467563271828478387658014091760269828924805457349869719488809896566703154316262863720523500000058275782443714801585349010596497927685864377100202793298173741110515383188250738428705810170025675442386621200694220473134298359952708227950477852343219283566430617352857355279075885335809992370921828077130777585677924443164674969975803568665301327110405859168675920017232268245516933863477192758181457271251282297273524929944438683469753599833492904322282018583909281877615854588521092694425305749442340082642462012244575877233921291983946446502181730276268425597721545062181530087292114689789961079818047707601368639987657398744491389929910508602565155877582291410929497287487755172961295586890145162062661510601990846532052141571001210941498231833780936027614898782690444273732227468973090138016683126238785083868201297619252708286847817930293604899920332102898128443518962604631902043254597502745480498290356380798864289587585828110552841419998745499743482702824707513414395536365504709443762895238648282074704084787387723805763250783577071369926771400885896909528949109795314252196172308722133742099853868944162869773296025756101504963588990648579782492690859304255827181017147296465531021846867786908986360432822828583300262605511511831698699388297662175496831825553244759518318088900588106398024652608869377504154448078356364866950505240670782009724213119962322548679876386692376782565989284107468969725351652603714451122795483417678954476330026966785760191786562554860161665302916685847282349585605850084959510293549204966188581335401520874111227868511764135405941798756510116261745932870080839582206402715334344101597883926563410850178615392117057632573025542421382857608328636535297636236173769639132096831500664816972828578164749368714097583569836731495289722968697934933514511599483331200786681631129547165260811210370298123480767946050883066996799364054651309971922454425664495304250402402547886166818181218996357858286135032990586265053135513134892724069850778261572069858775184736083382362565119128793162890889228070101208994793386090730113294114808711556395543963127047171742219923511610872518783783007240638393729763513643401511710657022722526742562703292612406998393121515353477851690879713793615360664992293485900074059639033766885755713534927431668214681144125639445319538939486006298864218064146454470466410151566697837157999746157464402104096430591628173560180475645125899851813514262135500034426794911075780090077283656391752873445203888526066405628160448214338134990874034611940035082342517503628998981188121935831167814303677012456207349224993164898600906031312034945663625245020096841258199266092245984283304810157422161258888743258306038498481727012728194871552321338871835601193088278248764073146902734069599985880880505121254288160628895696040220738162469843637250888214901060013003899491647800434817703067743716750287370270670957642881580149886288434111201717212636593267800014671403260073111526696388225988717696289033043085289730647204122397240257674924963389292802933521585894706723050757477857801256107367420467754759842027159123527780920339739568692957191485710938857924229187476248574552121553823788745968875105313804667200495072326627047907200623140057806339856904931260909178832392358209173012291071470681415282544333521947985576390198924754548826028764735853725618591333811321997603546783214771093441900562794462448378373440146031671934780859905375126493299841882463743219280220823624320497081122851910968399078201192174642690327586035678143228449783968698848501248636960620769024786196304193433628936968393508349010966920196738090332761390298976922445838564027767366913884314733111566693652147224283258297578625392971891499104831278343728971094119386415858071648933168366110245165441099982139650465367549185451542375110549431536725333633615454767532551258343660759290775887613304816713364962105463001455674308447757856903111060678276001752262114421348106924414659706336903191854296570252573116459260527301189544611009414463605654874093749004331436254255695976368589440301067749812255046117249571471491987193534574124142859572835806233502511993778904121542830889969083834503157966014949349566877733878503293900720680736951308024696222379361962014352286229353214642932710824921062910390731681411829599637441712450452443892357381494604950532213258791720386588750909995954919920572860059002322629267897085800285874711859116724930893626085385874169532805469632792514842017213916650070552257143792385416768572026095574388257252313326568885317405534055893759987156364538112900851603276343523802752291019759622495740213589231386631632275260448176273645704660327152661441977521393995654412206294819449772354453189395331977028787745602432352393527852799918602476192844616548481096921948690442739376651394633799714435448981640593372816610752035875424369067838932686153751964262147416259120216058127626068698175978742852429039109845676346526903469543630569049354660004965616455655830237894789405260136613796250235110098185371416904808348909978381286296713287187744586990127184584771545447405938018024863477543222376139454555928599568425660553374921169838168431427943928951223343015801173236000342272304944235652303500210302035191596125489478020323453945198879153632364892123386503342272598162306449059729359515886584301985480006402712842622269320818203278961905487768992320555651498955907711995632619260709619776804215046984235122732812819142725120595524681713787632534845720687315152520816109339168782103855719297814801013167875194539148877159117664032196052274743889591966710937614032334313787861795194058021134870345901688646019491475722308399088060064028846805600959462822753981113451982707879069694533252791387437563845494245336854892991637943161402101789367908190450237343731166417354656312061741938929010654124096379261880735985257301599249475522154076149300348329934974218795035374125262412827003800872882099859335194397414587131971831190839840293728191895121693383316723599134933452497122508954055431605500225391130934870870435092701682639892933584915507765822538661072371104351383131067906151261228769143183390001475634196473615845471791921620256613189906569015696615157285974245324462193958043040569236977454877269598837802404034870028145302312476347714937800081007883668313847145343417372911581045524991031277192378453568419298259978050395736066440424242512856140338820062297386149975943424062229080018324398176378072449275756695490639474482240360896499492461274932840567283314678487598278553485823272988157766874135715732657794459107418080018169261287100697312320940413990606902785436639041316286282226881978534777131620957068439106170506997526215177568173107255053118968453674916777265269696638674738584347385928987272162941529144385771923731201520460730833946854817023932518828287551097093788422476427866081118373891263666512610821166915985016393028526352445364605913158222192167086655506906539889952383745854681742803023083314887261357399453399867720144917109153134374211791583961373106367159356949460258475341834990731906327043407488885845504365080366584276749933759046884329169741409574992711850708837487035488653856314904665439617474484464345249314469020934211866596125963165278148424323101361485366960231710964865443984697201249908929689944930348238907226322723156187689706432977044067538908548129715436507370438235957538936860276849368119145234659750093958568148860437279268196332967362696957911740654141190038473111564596196670756445079520134971151794833952560972747047158538847383366669932711480754449702739504054493434641820787365750742295945378934556124558722844557021315258587411321299603656123763604982368124932424053830485133470349900854786307622939205366941265409375174868848110690923153457135920806461358832610333344950172605581302153270800000557654776367583405513074637362709140200555441399123531805778771357713861067659684803927374787744490270379724107208143635200634480038602097952836958270402632369176969487466362704920525271627619975233841829632274198795088986495560079276354459580784192799629974719242225959385940995110762302186771064109222573605022816585441720206716182301532482814814002663350205418548640086479763853972548301651074349115401458107566497844575256700974820203159968817377133907903524809434795909485343452658654151224897721831769247993754113749381644571114922929615626573202545780049952652557271283744882592772673788252571283749259955608061509715376020029358211446849133450597473386300845291715099467469281222992548061353684219085982732417895922678217157318706050051650164926065083424244470086266656608810997972997773590521973530899871959217895532888401442522585956203298146344846855879750236244053861624589658352975651461235342078699980801019491162085037679483784255718574047140921284037112676724532701552180155568922447499465856773509775226754886614117390957609370512689687747259273763136914285084688947683643254973456997532823137790120746248779543391826077736469829423677470428792822245225322674301956037563157845476186759636264253915780221966569235291182082974288079228207870217453770024933022843092391041002116227435620435651967139592856984738133588662989118257005611386817605215528955824505376728196218866376567633170282087265149844191905258994084586502715543308459493918199838231959392615156564809189946607023495749682825986993259389168681954053976422538435492770009185971440336153274666184135301416302268987122686145421195716450571075277526599618791542774263810829066029421026534382820095002151963376216285442797663671098604417896442036785077315938564853029139686586242493210249602747519014720948174870124537258555442523427887995032714906203249240614611926434852474493817239136018564611507526580767814050139435926372910940385885694827303383237774377061099760702511220429074515292402181588784075947303086962412094258416609913146575117258680871823860199211466399156371640502871895697953142228810206189554121165621034407214433293365050293756038353385878946306698397582627626782073848507847899235876185251650217742785057715266365042189310359955977596911677164433853895451363209859830499109378675557485279068668433327720253322368171560147827161726016766399936224769469384079852487893415633614853671620391946961650758289638773047095523614074584666863609984035861904488443695307048630016675571654476652159577738767600408937189458391775220488476277226644956804109107284333002533294642335398594253153525640073359107089232829750379004460625431256150253582931974037648769853732516167443832852880756909323133123976537827028980518255885662700404091372927110481104537947785983356070703245537820078286983888470492972340123223036419679736575291424568954997319043213264438525681293520790987538268477301179810252961118024419293385205332748023448852508154888158436389566968342258859287991939898626994419991356077953857000572250395524443587880227470917319853312216916942185079270041710054944984955006810341416151263096547697448170632194702000128681994622191447602528057614732240148452332481368082307653860553145369230512516378396904862648181439447514259383486177863850832767515978523602367881499898821101762183487138231185313412715173953022057907029188133155574933462176515146885373021112876300039576095496158057163785730830124369574982050040904317463359513804516063285885831150467343436693874081986999953981112087713508289718486192448655954813059369258153709488721623063307367210134702602712315208351145218766566441885743430532616138137639030221556246570771719703409899529739659180722522250776990975711003968700920032087656582999168469886323635587706218858643042497575722877787463993741980837692309538657817078914988594985575781333373828649511679954290691284826633121805498822626267996252694154301334283904642534675347272522058567440423927417763991001185844032085023987076167614571303290920198948798393873602821437688719153234951073459559764513671326528324841410053439874127455745460535899328323133504398915248669172969794014633450881225504623905702352233110904954613731845115915172635288735560251831611818385525623832708550936303209349363432244182495214940761118744687169365078296490484996932324022741662868907835973897940344651901274741300903063546410962906775682141997731468105727119348898684103512978833231845983865176866205027938536126040628993155125397384777120526452901359513951829727497774961888665482525873077936826550851250175464624357015510601542959747367557790639982071866603551386785439299257882739236613050536480718813276488839565381683337161531253626939399394779357003786292267164975154779980775461471067368156230320653297650020553058125440031911979982808872768252490926548605549394176807573852054124661710307495431055473950247530943900656539228699904186256598872959528500097697894880126301070730989017859461755528000262278920212465394327897847648204789210072199727892367834090186930143279149688179241475529730443670800667584366770681949616745426628702745296423002726818097243011327085470291543537626417014848526986731070202051942746349574212599429629794606979125330181534142656543890423834616970959581068943402966357611536562193283074199723433745703686642863987963873077035303935292877195857963171371258948029913513860408086771484255625605711245046820731058057815235196820161323388785902557628957812173067218482227911699370625915260471605457576075961495222191549596397592908487940100753428533317573523245684487872203228413132643810159478222121349339994840889343870531962373156144104057733489750925959205650460010192269866523658159601731410488100922717825607960305565477329372124255469656325269630671214835671274285061168186538694032982078484438570897115761429604320921283562304732511535556619506497171101301733903922099829454237697016570629526499358139693815299519264462819886521842800211641946197366355750533594974246992637409816057807470644341815170346020916132453467574997837138758884173479829526532863613358601435539174037209211686678817428632402223480470386135861295074098123075986067000230686285780698207757156112451121434033084429390128806228917329764757180329027067194899234814000438578264282079822250753944409354385810461729318095382394415409403649375855692492787872049065370030272565886010805828860273923403698719391829804225086588060456781063196202978616497976523311457253674792596748482607321664221422225094312631466612722542098595573830797057938271655311168893141150698449888469426559263997047907726792204996394524840572493577779198020272156119663469223212578265294077721823203554162495918022692152720325673055837459844403367010624781043221040674767906268669991189659580354857981250758066624643766674208611620680873218339582554782134387890070999847285772459447442242659128536300182263392774789254235790778082173550195482070939203987621101792279929898592755677296080180635704374594868023587988483353583445452117628200295802304722798856253873528183878480049290570250317083024708741189913011948751845455848354323654265240100635447059327529464080201173364173170911600834865769244863350560945812621970448702706406132431420651150358634109857132732465129563654495252206666626541455414320882558046299730723246544768333637345308087987353130047820231869503520538036626192335136425188184225242735395307275850322905758928080387110651987460345048904308543650943828174887254252401831835505948229337813724274955630279385257646488182982710761544721595063347230712920927057105477403692260905527522588127401221172724074236801889051192158004792723024347479996567714713285418113059551012567237743159760443200442656879222728052323989278849253438378986650605808053117117232340745497383972037960628153078500236474648828691499018162796746534745207572605225822985036932273848327449811659930947566670079081776290857708329392383990995654630597397571448535641908356783415046406601950675594436153562711810560876626120031413992278458554325967872079212923419132260946916151405060984625496803096478586925910191429283208039357248211358697218644639947431995945719937175431225871395877031466666277150748234409695516626894279615695786736472755361722758168438842739552149516603015559155659649272353319641157466600739771944711130549471205584168164088195651094079957681526816017261590885050529714330872569700906332780793182457436500234428148554213089728615529786556383932473375142108209101672072820549702600680114761817018623454218309050080094622599018218575676094384421130430462013155660672571249854450524571628482730607454639777414320425683936739905788624825242885157105656502858076522580369128731384001661817453371381491973643183832970127832274336398563064836212451353186715868056371600227259459758529944456468229076094771544412718106593471032957507983862591018755309042006499209437934698916140223933400664150769343937753542872976592947040467448943586307818413169296715404309503397848180355666639933802315683826699017243097764424970855476320764373740825379588170164859191288556509128759481107063959465355888456377704842341364148222814909046974222246040942730352184286321558487996555556964925986175159615908577067294014966775514823376902883005160546706505353126484245977403754985912181959260914873415156201193723439557767158462562502273884995509443439839880516827563565452803469954088856997850590069000022449038340021531752172540384176136063207948701881479470808139804492827844572058755563990879918120575437633361431972526623247369252470939358493565684524838384061257561521470476124774561061167037192150070090095274374855430283544996540173866250353828893653462261200001194361714815103455770641178943979438995766746373957884410435087888838052645693569768397955046474848662265289040780480834065320872428701061020206773155897066065516857653187721219032477912854178288498576641132588729171884431657619458810271715804993815860151945252608320314198570930510843693261711273613271935898816429152401903178087303252859260203067194240031115679339681675856120894491176156464619528776727701095145046786164199842813758224266149374530651744479391957338220294657131808023679530149393101820766660556328293379903048331732541488745773915602291245907148059423204946785288661032344042882041964769545405101529141132150263808947342263802541641812424600718081705382163102152077662181799972487033844314552403002676947143688693551773075570484845022725938741609288314973414403721909118089524001372841072951127399058652977656073587379310695827060195506382902363800535320205666809760782396061596395037539386575028213069112244750447824786329649273667308263425955263217398469188445705608950927333646622904100260859781478153900795104211259528504335822790632403442101141670577364515173218381977708696261165738532724116897178601322005281210866897038488188411276241885317590868689752279047585438950843753455791058355167721130315307891111917398070418909948616963602004702142187968894143478476328932921117849311367968067693061693923467351080127210289251716233803755610717237616307858750487605094335828866874451120700709957146811064120904247154841243804617718679533119256056667595530948766162815559592010573723562168408758939497901138766389568384390586135385583684698084051616751949171788337053410752139669794021266430840421581763672694754148124718052921221718920023509990748853711518945113288584323456662479424257420191409484766788269237448571559682654298385395684928713302044632491681461173551510888771020979865903941305734411043497298500263193815707668736094622191700659010381319667574775602147039317098623764716731372794269389624791247561110138468883836945369685532310082540128109521747988406774827356361264250273586547507768783143039588594738246412981374198569030691984681766481538180924889995271238856218068943605593832968259384226144822591573141740473327774909115178369943665683244795354363655299425845903251458546328307477776066890090440537009220197468608197522594962930073645381765777395129580252374336288092754113462449830609321383266627429740211140230789401340578543913914113286752021567572225434835578752148705872094952562488088405051485731474738715930382053330444533238016083377294076030428520447268472162938781504146545648160909871845915610137000995775091631548069116785367604636345483249017116512416168573946888509078225410341005945573749000895028533832865428246975911470665661853094910346181684911561432987005991566664442883750978761085742590961312166185493974933555639101280684588661195097207692627458370516812000673100556682590926837954430902661805762807468722211682690669084951123058346003949692045549691866261186258465949745663523116074848081175753368531679092313904397555381615887443850067186253573701513791053923238068800384170495489821045479099108659513559615037745481233776004294640766673743518432954378774235646914557957293803021736318352736575022677632459886820185768046508936593252285060732140458387836071107296973592206817839805052682140880092454303882495542433513206264182768919696758616459274675641554786075836348407459836129350790836311374415417682204193149902814266387917497693209047805776841919005011556226952133141329742496576967353498532823289039075700259429085752423536384702535316869963278840673291299891362893873798240583642644763512552669474046792334374603193178067260143847970224264418705412672163714783201554285199960218396292173124412518840292271903634467054157340279644003838371753576295191048794740690409860315926701108561861423646890351044185747311447674390446534452872626043486423223013530139002240994532447386051322254443799865089185748190921006276241760003166291850248736445614703877171476738952856072592531590525300424252305257836977251188587549236882483138890017180414537110971484037113956055966814992917546858079214771760443813617138327833315201328735087891572766228142538132519247531281538213751103039596646621399646627613786464667842629774513617149928375738047913414334826720468576204002307491663606203332785162145695966819413455744038976932604649332202022433496241479953397089710577812206041949544613783256283623991486938517304404903715061705619244044919301059249612477571036527816634520507116021813085591082650530602125510638610751301103711740584300859315783432563464935132512318416626002604066952165449880145764392952407873447866313179864967610273108872220756844860701959222659467499566044136555948060986248283294544940495912895215021341856018095225682000635270842928335944374086408261939780738612098096622531163722297106114274693261059856915160210575986876066366728096774291834483536010977436165466095348395438721879711302221924505506065036944374426308644092757099414555906465003374522735869102819384822927541925943021694223724153373497977914266272658921508562118497259270382997173353521785908218674239520454874250979587497012987398695791635733140100092231746247071152385804203760348162662435498167703895679804740950532922557687613553973939075687161261221793111976806813115935059839743657767082208655903995548525726036881856170593331193513756913504987410516786200439266157153393471413582862067050900242756133699690712888940586084425686570204119812774761761773887456223677095938823430590092565488184092110546801365575455778336349536846058581251041883550440072643734157404122349978060024541543300844594204726765760221666858943880901129611873915556754178198874756667361304481559681652473187792974468385455675914686595100812023985534205020941772879015097250557875863221950995562133061791620912071401645259366870482405897738247468392767382347449269464291895190551791724176221544459404547081205692441793251003184150626279745611877464430948336920172419666694513068777550085626559932531390643613392096143051110886390494359376008071402643227155200701484371826158619450779796537160657478088812386713438994882378135818072682523081879487019156265515177566250417998662047407188090755230411133791877946573013947063511985326235350907207183551472299199298501288917417624497004746479731395545538239943075513185530695280952167185065847263415224033185481526732866848095630136530673810031100650259028621901436189487018333950540396082683043703417609556305131622489845007278332684593846359655472311371498554144115299108813068167907795701317223302568367597876585318215709024292788388817827513911224624358024366971781057462869761634737157830179870854210602591463382463887885296392664757753338569247634766987691798234191117029068179333487656316098658444311477453511091541852397675047780579996294190183286508124400909221538653028801538147490273128016495756438484754329346160444981072966979814102253742837822533259908760059093112904242522002905531054863997374596359114092150688231307838935838530195794391043986434015595734024580222704885008587957148271528948891024133248078220257488879364117929826540069456593250019381726358075685808654675930839712138514920229539744052640489712338248120193073103750014664415731728763839292643038947706503794597982753587748260911675122611737986412982855230917605111579402095953733440750366786339554506001119761390431484426389415670006157910537402858885665210464596891868261274034974536716660886579269713851283502996750845888623630702480103432999792815029736369602770668204592617232729654234372751872183123228837664100161504404828030329483350110478671142842975817929685031555138005805434253179313882512276698121217731180488622559422068463300455277967226999793271399713360150297331143213228210050196101886682959105233806025856187073303516397068273676989649152510503698051620080621075304009609669445921061909233176999481893855714629177827662558934407140646602172603222786594504555194730562854370343416037785510248135169310660926460217819132815699350368480078669092278549488547839578047373498027981436501610857518335189911818418678285332611548745077435981542084475244437642966403755163478819576988393796168524593194917777818766040426987855840311191412077991565998436910997717830812992218208124149677067247401966803716213238625329119410701150800217439302651435969361508254587483903282747573977484341727813108872619314899436471696806877570434276181243526718123108666765161848843301516434395617182801732331690784947323084821940913519281724400325933500962276551710541797756338709618846722842799825158247982967792977361606830465569095032041851007401144307391696600945206558755099063978376097937925259853848847334956701035334291070110267112622760281820674282004120074515963073428551396049731641630598676681234707340419817798974369099548500528392462167337501667889093646825592349073143758655730291906719399621588167358555148924754303095727946880134914936346891170651240462713757139485431995073904652553844420077946712652833369554240174234089946725816440862788052235818933990451605702219668879319032191000740069495239795742611156502802419937923598597179460722267204538063040383287836261724607025954486461730345245227488702992766017556841722610930878924190703369232007302037460348670501108901529935056219299640316170254970502949689811064304815926852762133390338177217315090541801608819114568327697451443683809415492495325210791638173418987134565219017842861401479730442533028742858985756883591546054192231079315969147045730132960722331437057820618696307021349947649028140590658560481389785052702580249093762594134128869888788292955160679815962561461168706026443642397751578529487628927315123807773536325065981612148186586255621744454131475851745730385629894681876846516157720628349544881426972624069253150128933977028483908054535975642281102568374045987912738893659550319175275726950837401605976558638093568711551671487968203829811525026076403902210849326821086920702546643227374947717403798973966082909691212022883358486581494765046469963230926204859408588772747460867193945337362779722301358394181780928218052434285272826243825348527989850388228727906264948145398861784497098811143385204271837198874804591814139582666027328992872363524877002017150721607390066907151213506261729646030645892284865716149440076240612051492714313255551935457265245810445584302360996977712917017153336418029806581621679557972224859939498633505457425896377199874294272748640585290742768362225204835171436279671543703308422017661284465283433223907847706890082948626745589139715161213078612903691916067290252063861789172349597001370673882466574234664003478002545435969695713054815053993529315568651596681905980783401010463845311833697650152913177057164558987825950512741191907621353277574750160467961039309977055587234798407616262553341739870906942587138232827849780656522215842590145584588575932608977143063961656771021520186392522621933945059791062913495711200439060339561907989733157265793557559723842249371266582990014513958745738422845275374901166570683661745644578813075770457824140592351995720233753171977580416564213561943674612312523004830615559280805917787145471269967047016371440359663660110651474550133307168645305065474605787519603764612509787486044053484675267110080223075476368589579721989509883160108952069218831431110412909060736598539746577493764293398443240454777076959511714800954768608859509126141170726405537499316722729823386176614260994496187328192373653258597342675459160153970505865979770899744435542488297961541565419557014680430140166234064740211637615145819678582363354723921405957733254803468441387963586184502964761265910824140792153351421541943592587667349571888569357053228882399663208560051104466980286084207649455648258190526546795147220088417825285950160410841206308317349402460407085834703521383304141185521406550845314264598981867141447823903983549275174472179282714211488725966917398307128120091904722915066833160033458977037314984037154094590403788275879072025162664596766522704115846487549629290913308675197315425620748187695704146248555949400418572228065832191103652552215042597014230603096385487893848880525103238758121517100503945395798880772114537669004023412523071918255094983981321867813935281580869129724446388426021181964630159207077375324839472388590204775990086061381887687483294131258719000559714625631851940393622206017322798517321590903029156217001571419543348118443662918710547938447338626531319809619056493509607514546929081289102806876788901564271505000141000031459699367370220847186026759258851135127222360947323018045778782145390059089738156882267046165525575149334780078518223811021616002389728602586636678388187583442918946842804972283070429747237334747134000084177347061708094765658782689344386002911158360166060191845845127203387345047092763554283849179751700424989446605512812241354290734788351472970881231735204389539770457760974685892520846335597856787557834822677723132114577684963124811375120089534115488539480174750261572869767984966982737989662398958475670005510456387946201693536181549478873767564689719980310283142383299182307526550535488209556754809280562342938722633773821422887230986034914470893101899476956494494194610624661876174187253352089443216484041026546606918562160425425754536485599133651603429779149366185746397249882292780406659414526394202457879896798036898964860902678869044933953534115765354188851392608963119442812086074690083875763802444084749414180240463613744463851825480270733416939026960155987664682303199532459611091203078287534790073849506278749307449593200921906118462364576210378741863538285460231195753731487594536284692130589264681123111118221449637495844043392042888454555291711880501130789059990932749133272026396369692944986461425978417266288370076477760780869302960734055159294343903601729210591254373642708182399821331242077080157692650199287330691358981759528850122342374672330609673389874164537377716529555766308275194207953526214353858658742463352562153489294415903516628900295452094755349455618089071376208398736263161723774785206772092249351665115157755743895685959555429898270298870316953666666322932901625049080124920734947859224713742031168431046518897765550401354708469636009401660844010962716804780863172513718143637343734035983645230144818448756613589083294242879992055841187892298126935852714687332796164687672063034811021218085639899218147577363939950458434012372423637929627604500880808200312750103542359036218448727214566162014654175179343111567760192911040004899004980394166134601576731128721556391442764789680523415775395769357626973652144282779228197564745662338914797632291522648684185551470366303392082332000300939209035128933241001018611377359217946847004691898709206981706387853288788243752369011021206733576057344094979810893645384539532927714666005083732042488399728101751991407067613847322669553282041842064090984885344299031927054952901598067194258150229014235255417796026302391860878074236567289186274084549306754770705663049596326682296661615809321624579468363325816314863071135703151739548092952959461406992457825031597031887125883705231887582212720602790439677891357070885141196011106076894243238268584502591181886767542372036598987196586724996825914398979753057212152728593559898934053893866692061536650017587882038689953145339530601271508301843294313141115673383541789170545340495556581835240611402896694591557257335838336553159771034826442513171973459340032458510926687169583427827340647824584241416100706515189373363010370936989586682545490617951256354793107111029509029181446459685092968672051531991143792155907849751764234776860058997122041732637347542941503488694660839915387547557342894950761073544129278496408660984751659934357511527768476740045743343029191349456214559561018841137702455409745510310754916251286246974670278397855743003614689674114478769760879323211746919559474105446242527281952475025816635636103418174009624519991826273076209601019410313787250583003972277804897287659532028593266806265482997942082780782381011071565703745499778502362050568574225300710123329646536826497997422312552963146188406798685144322263791727093154439653990246111347716183511010135338639192762855301762592904760308693244134352735571668293791496826415421944949780040142760482240694462199426991801553849659379625547245491482678108578460027134189530150836873242624344215406759729277744196466723020395205106874243438607297056633249023650887520584406475378758187183218217389948197336101688497344732382147509989158436918212062132297064619802439972667794614700166349492805508909937493030322540342204086085311350423511995771331101969182088326031912781918109705255765875619342875229087607182047758812507802027977150484049014197671782864784369695867620196351813645500614792966162754529818409627470807414692144318420438455087140613618618391992461767976026376820443021157005676207802359483107368598791322498170989093049709177067333781071422088125582136912472933895388860929788426432290589406906728026560882333567383783549162679437351527712722020116085101898641300851006374069027281607376907275896338857455969253517603236315892031605433533299538876139341328271486550634491288548737135183849819645079211684547908234378471346501901550232390362926121967660056534152653343616749031038987853969122826757060573669215930940480653006690162284648690520328111326787252812782661846465101673986749542575868703221668129288392206776534118753208057285032965566210709183136171302650935163315377451048236553763193370709721814913622037760993947006402757991863252952858543960556302705773557881099352847580171929830249531232791886081373839585275707711702064627594675625859398397123556282724334065899511786525728303278060705921367600414369784145587390065898521632081254745544360020826843082489058583923572213400884401311375994255134627637797269588664646924255446324416875581742967285770290633567300527014609837779174851781621600035839374700758531697499724020555952182135067449011940954899787099529208856545848787667581809976047550709746374728377601699583529945217745505838598359634280215994837691093687228201088974025210841274633915007053804535522235190943462020529177528465350103197825133429162194892056895129568901106763183525816666412534806693162218713822813373367240199099042136794770669991166382596311456603771496170586989894756412388526495372528292151270301819016151872788836702160887129387698281964300227501245018315336024118984354757467345416486477205627472476617345927930825625569654433417322218114733869739505515812197087978375483107074678317354529750874574879397838468177850322603805718773333215882138197677729292675439674031759650188134757493511121852723027995205187304491792966559938709413154380120823129498980907675236148912702590956651048381978436563363943827945060985610053596002262296925769553916299028019546135351697191874877853081459484040576046940266892747099846597068130102264417680977573346369335959027202208979484804305370132071092439977478176021130468848681179778021023046936247191503373258573110740343287599336690350633855148770283829587383344162776304852201579722685175935110663048785874971323102964612589831486163961514054237370207110867085267540152388554869342453479814883912619088598012443986899602909160540693213583218662177884439661377578635269259087546314195369487031023253799547468681021379760487432392553716376884524264415827750438568630742889769288502225812987644401179290444824489988431331903820495190567397685524137362601031960758629442237985269140803481899449769936482803377562151847718903198115882038484003486988870528865248886874492516385504198798143245232529802053184419422733231012448258253234683513680743149711767039260741267325049410873718173340080936201337342246597941926111574237740249721098359652091508214467980279873424848305890697774268757129049835246516908083230828715297387216869541532501062888380623994057515220069175750676066434176398509515595406257115629105792722686641731263251772377011507669365458811951935569031128733112243139978610718190611005901961056249126695716207666580036753623815219501885623595874890017762294536019163057850138192873160196778229560736757640525134825793138672682483074749034894534614318905509401656684408784838995879729519262789988626730213910359173547281651868857625691025941536053074934004898298843606797651837662870155911200803404193565449723842291067346103974229023432650948202092554933509395149384135998143692557047944932213395057057579296574032927083845123701991506064392615168871212748452711213024836748819838591639059142592783637200480379858342596710721230830557860855822338425082218381290330134173011458389402998844216944061493225333551213215398286645968909097533735762367068267818526935376033580042254201127045826964207945945136172530107385846673826236439104557681118780103536719409570783024217359350483664364071529155873016873271119828661204261006768436763508890637970992918035290207141911255874301886762814571203837163849621833264454745591348701787695741201808807004045047239246666806526317844365802310051299623982665166296756325639628746156798753500267350351060681507661275139127397233805534079926332264732169851051729386638007277939024144357961963788571594435997528891072559907954371393605511993970351348822992724654336945199175029849694515465402471892751520335420623577933922114169789617198997755522831554669853314836436956116915836727678055162269372763031397289994368780447505878097595731971888008047051427878518714011847263746796880923099036690380320657215338690272606751130683658228131548115766464093673724238861592938154766537726636895845878520750101267748558567762893203291210242930955574701314096218128990083082343965140642304396330982075740353375277271617112882298777361927925052074228403980208821310541672272305322057126643688215467794835237735817918405969019932120168466897376022764508669862034305772632979028456601653220824036323742568692381922480772862184730273554509868059731847963076116734459879956977093129748431864202651259774479669014206630559510583513081592379301493431315999631586960722711744228029299551012270322783959811605267514363468772209584784857545691111353864002679407933110177662566735376025446747910487448742459547783055840299563198475998189790263807995157824032429743033118844958573373599858954259578088529342024695830701564907664971385479919609157149027229778860346416674594445767252035682049485530275281259753278589153839558598664986391612463776055375236102647225780753379298126597850180222506653810000197792015372229529553537223416737806181408156222849052112673451808350917816113121387262323587610434203148476454539516915113699556167344735423819491167549673409707020289926298753715956058945216285077004660737251887982143906035296033109138414158544587327971465488086389781043279216129771848446688838752220203411521752160880103848200063200038015846995583680422971986646275962955641020648084735257841061929216982259225903360324259724617776331989248086971195087858754252630914618121725169749373545030390003454340664180831393238603117764494190034400136314907418960696013465893147968253478210626749510398780777075184806712074727327057736101740195769620340899505988564767039606373119601786005261824849939108108545692930567877065891830167418194914268710163389473069391051319281758923003472577965051177627051568932476699551538239874185431920064065538675537729929245097790431971226798329973100572244342633739761482756203879947609097528893152910487786677371614612605477891206941396001200337843620416217935955172815907513646503410938672455999760917717743155216996352021493267402966083547448451241724465015630934107937934783273053586283832579408568153061592553285228609224816108329781410836437565131795909875625176372601834266765966465496744254729674572695061895673688202013787566246180476540844667475387403346592775022160871647399779791413977189503937599604860589646640784843680760424319178022851266912496605421115250591614220344293702431933935288169546272576829922476820407594501432056183121914468550130958404724889666187036488548972573120518114397448387667766951398249263176614030223112302780011691226196965911090307384809531484824153204972044892426963344300926413037092291186419380332112351564616763845895206609862287203380590035161227059223258100862392678770013316743161689379177207464823358968654178904292364055835793341384589537975102896549954214197643446519045692064531076724160965232742706322424839483083153924286596325295685573466861775014197154663226070194194160049877292529877714618257009840317511285282949116179454459002218368673828399413341112370833913110052625903817103244176434473781877334984501527170442380114568792408742368170400752703094947799983040064250904340561965072404903382443867063281737952626589466371885964105662156168223559933375243785517426638810328337253174255850959103697435074057994019211103987879962924204550011236376807754600352041316316937226087602852785132863846408560328382387572286518236106536444431222040889466011544779017174121495219000141448486951242279938625710474854501985928420459304725200465547531358466020828987499090180751079890421641862061471434140792353180309472818141074712985188689228417907502186903099686592247506221153486293544166235927328324639179807901748713995372893098882383468642584533317593826410576771020524498230227899363750864667331712008983809959914354906809598258913161533660018233459055106919991922254460522553194437781012713402913975151074916202648508669115135361301208367232358020426401066478679184966794372593606341321261768034867103712109311032572782891858664523101807772888781796925692873002897810875303160601887261253388212393441979244424379416387533083005597732151715580995721007991347145730324345733423965411206302453489580665241133379414053362701211399299909309865135396171027439804431653564215610335592900236018185618204112105192027588406083223046894139014094812092146208780066566468102488177423269351585358429584143697028090962243769341753849108374895616231766376081853182489340518157611033378454650582857064871587729070611017533964757276153449993010544906499783505362356400805935612437172503344458705096574978207860306487968355986588190044366006892389182642572147695410566231840680372870731227420690089438241262871024463299237887581810088727210502948361109393344228893528493585241525211704159601781946476344051180890599389258122503300405231945730321566803656474226005740014930118906737620614244305223441949180646321358924075549594393703670604479047766132201679762900123329617385345751058926946493511230575124951289773338733375068777200671067007987708757851177163755714593959862151584351001344196091995948427362852617987987728689584830796056948046651359141384839634819023628534296639036809984610906727239236264918820346910789568364219745558101007077595929676545185876425670240918754623080463960046510887373250656546242228867482531836841926480564383367030813874684464636894319705414054404311778412607484674784927622066913623372346349977336945843668240054861181945716339406676365214241037051235371755593557904443099313855269552383436868186272700671899061331082174601849071684494436742744143577932434709042688691041993091424195913848856718202575567464395305493316175183274985410433512099111605492313172095601916985430008799614418928251776336255745539864738875214854832902793441587384892658821191931860115886880331327291852421749229435061205882700940556434880394555432709110826260433654210243622612192899739640293435273212391246785658420877723768554185002316762615528256113299322760921367712919261330996383512563160165164333178206837223152986277353295131674717330098156283123491572990581054505815251299440042374220455363809566572028336638271592181143914891464076956240592773182719980386488438773892195967646670681331686861447592777577584178009322232578259465463061091904638199119343227124057490976708913588828319956624943266771280069437891651790865094144571502328603485938923167698164974519285842596943120846422424189931057156103510573930513844135903932578165776407112439997672255695360013387324247148560205460932909837344771415685976651113591148774145543008887628453115678231974201320997203778145424681373070594146382780472031322744407033967927843758763088910309925315478648702795880084126278760554312996932250700608527482634100464236397327041402209569649697117483949050409835293511306799511386654542347218060750318638145694700460507331451724817864812022667672764343599212461017643086402255089141628951389396202637941711958864441640927594082489202652680125868893771009879385086570945492485831772540491206707909021625932972951312874755882786803942487481472147106578901232085990939879802717904787366516983616366325476411677481623906815572034264156921088718141880098254416760740423828064701695765787510479976749147244066019029227651672636343664126573557858831561889407420935314755251501098636917292975088292543249723370931782019282992467315349823037195474503699349563176502147468818043645305373714881268751265767578927885298601735871875902968940515102010236010817335241295020572813884780966992016017046966436011806599185121938926577086297348416252470275316781377497821635030406621092754278444815394264088053665053599989784930408804853943302669110631628729419340301776407456983314506976712810453119012530239064353499975641026398214584687696455969114510330783722095659756641884695674460149731219878799838608843684938010114596944189147998530740969120636473493394171066514098063752207048924666566701470435833857651724649875226100031731998856916378717366093296812285239147316709588758690570721435999997084255017773858379966514332494472770594886790814412183200996533532050262987085542727240832993924670048157722920279520814522524733716907311548639615335742152398271574656262007432427417992816588126527107848505613472474001025773885901164772945068460135950277270732814735711185334507585615765345713808740585125360644355132183549434830496712726553727443492746547297391268527896809809723640038579658507216174829530382341393313925020226178523946240495171618854696368704145385217443788733875402633818860221318022756554166103419558940017613264242606461893053152549982397109559659522339237525166223339102022754136955102107030900278650273174099915106383478058607321553522604744984056255951930838344782062669182041183091096616000986709681302672940462148115729480311652531545236786397309162631621660233983661927178776219874158268085197454879559516299825376119024923545912516767655216762000945017977007517993923262357574523652520485826040607643682607934893921440120844162595317822820671465079036626046933521564695472583745267715523993856683903420783935831107626104949904620996548126485924107660430366908922533523575994462285081491016092825309607686763883569843012446782998461777515300311854545928443397349599284977214049306160860107741209214226972218524693657935755029917118667828478480361324303917096337606864245470171957818418019351631222450915534300835580252974408268249905800651525687494021521518588790250956964749456198781924156396261469961827872375519524359018497660471232466568475279294880692594979190448314783690865214252589403846374697225906577017048582331645770828094978014349890240070120313653542646351898674909390947372463177029723820313999673310560558584957630708436603360413948088024598646061830485518601197432946380573920443692088496152315574684093177718101521397261960871728415413967155906468287203202915218188285700406656412184760473248687145873551163457751880601619548375765779372886691607264766377061724276777530307881555783267865698501603603013565341593392483206635609573628603316019727874973897999908761437177298654915678021778505007329704817706723652488987178290497776109590995351613014274756728736686866472255981686382769014583243763080298814350248764932659044121226902102542774240428572619455561431196967120838051087725469386888602661104398383675025273915648595987244712940214412927184151735030194461055447368032074473728442206105093521268969708615081048942556544053842801992502771424475785589176579445807120302068026969506906144048186247433448967567064294566662757047196206668929344837850660241653234576463329621888808827561789948338106844611112329693422624180319013759491699342468832546208420479821399899796437703803687178677150448603400598098501225559069631021317258502513129265437036311962266424657533466720029568114149645014293531984838770781304449210359216935651363099083529928622688063959763741411546734240123650712494488117744583756321180562227068633591747629941321764059019962411973457394583053377522016267238876131520471240010809159156601618321922135747834332151271643971707887273955331951800052589682083656181887704357522938208342747624548379248285423982770012095993939477200579205394056053030047877460033209659285454687182551395436614884757975076198319235993863505937114039474157667118713651119413809259666300076126025884491907657731933836612318215542136543657522335051128524088108959599385231440538577502169592799478885066056590398680298110098516012195412662002198029073903532361617425230324396382591459467635445375090954855321292638729161856983781846663794102202897903689454473038811775148231020311060595058940057905937878826490404370298576382798668147655969049566249974261883494698494204032028105995838895080650872856566336751173860959730549716819573537589097701571357137784144786657725587186419038111710441180183073067251844880190985476665971497813951671881636242274076193449431965518994023823545675354211789298534425421981337729513401280029766695578934546881893574452080991984059658366912699216332163209096973833335164367210286028990116392188513048279923901125655793700150528056288343192464716724898043300823385625217996376655421817082580879859823668421103665852954593210203161645886331878023639518203878261206818691339593495214823752398200866549817351316902109100318082890825275298866236533315799637214234305792816605633568079317409541430125774397322949848197240000028759237323846641679490497153971127473420965480464139171368237784922059324242699321820493442571291463256150804417000089097686179037641816140259065849560690912874630963197172804215678000682415608447185896543536162133344859206746324604019848398953067554997213321357964779294836010763811604519640417890176110824304913196866332928593034270702427999006719430685907126145483737077650010365763058377605991439114318734571249185079508382550782594866484864835602297207774345003161034630248080634119202436938213268919969871349090840749714706522500812863300231099086403237033967594613873182000804827568644287622929182939931310779642941547382872383722274483456640448192402856362904657806464140000520048069024065544939580493052177340188384756633449589140053712421254982975396041107405799398892372664319813557952568509166994776025892976109833956952293865568990185932487176901849076028945188963887068895953108389633617391117420406669570625651341455557772764123465950744963876883747132588837958421844437041046439059196562300594947334834406525866227958141415943833740962295032985088156176485440586022912168528360050235925237647119196206053142268461494996659650658744103733562626326620410293685585086008500007580683457157836517465250384979097104323655411180582052785803909040920413696051806535413025863187704406403361299278239752885033236423515657156568014829358834887608085733721797974597329696239400482196494163961511907600711053080502475319973689117179020165846257276614440350885639826404826325782671147983104304438095213660607309877461431672869158578824708532723412417004551354350486812532754824671397594455561905528948849290983156604485545525213198648840379341333184945514016742241219205128027529623960973751273705731868641981968935486308944192871075640864332213330818109866640003628436502780079225323294145267562583276623418033756899052753449357099749383370779295485264807741316772695873864287489703898117770807721444848881360242738514646778491260683375353441984006120940050941889121267261455296487931222667971885549293632946600368401184693693596977778244156936047583085034758317188168838592660147948015217579763109412898484999946023820854518893928767950935250322257395289490197470457462260026869554105157435666777959374557534212746943068582010275181042527667912388663108842456449286832872311989267467323585773267683481419717552251158242473853152417710485943262682767614954603242615495707882384791218751782109529676051578743439913509148093476071712554125670659191509717399650858116854331874891545686532434772693095055814545787264510661324701847780883352062580363901037476658611595817814766307800435876766310858177288569125077795945759425598664926794216631881791133384528312026644206113586473460156525559784252510361838350706174845074586272565735049407663457486866147595024354501280540416619757617558980162034656569126461478562052576691522188547552481033114686673844490341448931752502446280470189227371923719031435389580585298005096471591639764518681790390781312943864011644995130223555242249240810192061770634226525704389419037462242148717600941337697231795776357639645355349127324640118749141094157243078358173920895617562661073859893229076491818863301061011761886580379246932010473579166176074963216119895169882271305235815151479836182078127653182176168859096226747706726684545011972913161086703151677714476103457171193959912249743103966847264664820754972862019243204946688971784997244235722138427192679695448250463125298547772535214916445234107444644559165859303454779858911067746870181356347239951391406407555542426291377115573144075161728838370590001685956852648905127432716887110021870098686832791224634887511917374275601360041475278690463771582836870818977424260246360404952569796084313697801223895849412793866892973314100304869248141486286547066814371008312837386480651781641442805612876915265199023443695141861011890480732657889036271054312382931290325109986703839688287296604686354586075883490597081227325822059064799999938461104537688755296120999506314819068603115308506964383005221850244766399268131364583561119994076050142729705830690687035973269905445916158508246939053410387177006840680531565892045275300267078972654254035972061689256885749082059688765874617974539227435614890546749496250339430758607006299778326258808880489030427725466506685487982069516492132787687806171756449968513999301061058046083413530711295156840475635621260604926931509564702903184751451185027666262748701196778238153082158483559850469065115138699092584119046768936846152069528389471128952705699321664630299290763574608692921812630421619609481156783285672002683477451006648552994346182995054591243483016475508713658777779713579057925780120583734399528385031793045625221089700096562688841008615510104182092898064118403756275558393237872314033958929043850281207844902050973185535219884191383441738851053969623765521244744007676748790339985615829345365683957456051363328916064759410475912054539386789008260391653692324571620590815872531034650280702382024752375724606655336309055962154994873007854295004079454125346755375904454285612889612149099470114910896545210136108458071210432553409360625935714505826530274427018587320149022499383458115713108096987731946939741183998045147768753918275885551485916380375057762593940445985669393364739619427427438799656697104292621740904243278363619749637472112200960932310712015971614081325260054169617807233385757906612986633429519659275928492337812393971751057789170214525280383495457308411146535343146891049455983519141792552784545378592778431946823076735835861029000742702638119214500286865926218911292528651444805566806210088986069803412354251202899878938744057279562542752672076572843877152850473056027924076614016461553899105719650174031305452658949397270455410453417186461586437910946500658928827904985068088255872512308676608599422978635634611420214056428109538713420740861377560196580074003006410148885414816855295064764571672092345419930772888213250019861752119690438789139589266404955875147478627412969599244809012314006344000903786555931337844557507144981190590195004719585013206233345293112677227729744514230482689654642446229637733058174495740666406833567496534723727421269614951420564559128943503469579861926271101710168553235429216850758260170035713982452209763135790646301647092213191086230290651099564580887756321509786013337859033662447999020691319279067252190841129348481302755510269667726631521544915777419446921920754945691796264361404261473064982132754910844685368248830987327607090558372616700662126607165419136405552721086908324055974483507232879753745994001815907355190615555656368637184690584509358913644760543302639522016923788664648180539361685972555658860731874032295155877076966287764068671585235498526955621153019548801903295891375577985526694697022441191026497635429473406238467563029709773120251378988081747237079209608831082256912754045239140195529187587650523535770842146279597807661569724531770027276292764912582047592499848452191557995679282701624998745596314038133747161580429302350033654004194740293710354029327869189846911601564908484324674103558801916185122499141209227795818960777112384183371318966235638673118972322965570702814192140359068890129499845518590811323197637232976249938122318292933869036773292482367995218937022568913816326145994222374833109760004801351500057167355815803824946546584521466128658221607349314378535867227514770462572976783483319505551031275686165499698802024786764139857906886931882420409486446658772629076515254606147217268891373139561372611014904986624169443970773453404569725478900392210541483018680183170324121915083551445537308049012882164178046996619242852549061248580442610602593382157117338873633494460873438437619557608053213120197633339734172969748352885538028752242734872170660391633458907727701193552091785153447945846209030794017890001086381950998704333793255184575414093905999531613616132714636109891715149415069269263161104902684975042500760648250363977217777793549157599023565609778015652536873330062586731323307414585515708984689184311164989841181500452634790807920114629184998469587258564530276526440843176119329201781178534797110180793989714407071161839305776555250947171406403548194875736331293586029945103665381698714743394149191228700168600685816090761704621234876878492067609883560576191508543270323929771075904897499039864743797815703884514614264814373535618285686592586793479722169934713657213649726101414785464412987668484653393301035032565654403670536037042605164003635051502825703961888719544262582704111641227208971049380673071852988261296630944629484049971544359122566984411742331977135652602350544018915035732575052564779141860314959815623195336290754233244685405764600979318474925485156443274480593948321465487857774588734362074159372030689868137428835184581561431102272052547845735444494793553752170213312345891983425454122005423836060714882164710434025533519374904597243857511948382593480782231981118116289472304381311009660369461732601418562481882992587963151031220764827191639463122529244365215768309927428806127605385747897382168189224298302472624258628092170216759961743804785717283146471351330031576510856546070978327293209524928131790287383395505470400053392306418822437265260189483400563359292421349683449193724516986160658921596679214962031854244602217333265900893684468466012319345343622876134666907803537722277988677299935680440023015773837614708413177504712460158090010593573456909116593895350044335739297972596748933539898425321487364918180361744714969293292311729765348500504440023725415183024884197294040706838047103508550462902212341951512795997299117905125398585695869491030682829857213732441653606932535727806614855090291504086893182239817120225563032095808309958173216024719939604369084283431733723706063014671109259576286622699649753415974327916970625962419619203344800891439585877516711239469396990105130262445166600148126797007416832869907175612397924237043596666897970785149632283495459482946619456974629137486928760434129374126473262917871913724545447647531660252273804520858431281505606503848569437747045897504400318749374328945395949277965586509895064024216213839812016083928988780355837921130319201256691024672279259987572622894180598539312479276185407502695802851492106647797814665159678300697571681868173923943315418045678398267281129943908279093364038379076137233529540663470081956419012557022293102772104220161345965009869287008186680930418036715934247759755608735488165258660163427321611734495668370586600757584381448559480181391754923483998685476114841973559205049897343395812170384454393743672252341019571971765596666563215262239373299578608889960919603131469781289082916585965092419138112317869473132912776442213237730869998777778835577715320226160513701289816088621973696076657991751703552018032585116585616013498612925735845553343055515073318087292806800532734775347838385703365231088743911274014278096583783320855933168001609163401697165428007376169676801852569657007419540536487287446489950972615882660248706970197808787728233347806800907301976833442309435147466395468903203034000369633720423803385435250129285464982257364023045992590901686624864930763378383459676813989472179853979738361776653865970816419650958131240625810693602405998952798988832261883709280240500726196522272886848546836489425331744840499807466367937465204664615798761700316884271462744535502895857136757532791711221730314433985379837925053230107004101022211776268006465708337304863278256220550453224684806841909145375573459325007416964464481761737525211987000073916635759283619174875637109728664611849171422591638544350214255771715963331562612186323112138000872792525235612608904098735706664696945402293277574040588566113388318149251509184026476170902478232794727447297286979885827779328050472201833708756801263819992474855466441218607988360204102791764411162464524645306421352932580711352196205626311930613764856930538229112768239887782213601950874036383436683197407899404958610046339205376677353314893964943290224987143058273881663024406462368267531040299983010891912109419694521982867732294639345962000664892715858483849840346104233426483469276081558462092871350765706493483252628455997666824014351580132451067191406959084662621828594780055104075341889346914820948800978904891557677527793821208144531658957609118905828562729576216652726679980934417518941109570524893370445363697968300178012844376425255752109405939602205775158459184789388024669508626413535695543504917424661749408360934284477655838386826291794252925114925705867664865081268514981114156830607380385246584405861703973891542790030389097604632918077200907286214796042313468470327131508408933111091284456843822458057608991267785846087268368376711528695960847405895403611387761212122682523879075899114876933727283197021365276381551652000000451330528406102409543587946224237033662211322805196551316787556630713867697505215606629028608240834855670004279864759448578711637351429492267248915909330183912578134485571976943952108825606315274739299503861477719131082007786048470644777018373925096175382643633782980748558341974835422230210987729527419737666900435797998413581791346635865099228313965737058801392603041106516570873517629536016789269686763386019767397843581805118944649825286102848684849568165216309102852943255704936665687415349607979055086984477471748427769893155473276160983159780904722895937428856893017125482978073901768621595665230669230612349024233891689422305156893488864315020531067929667759917572630932347158233594562561896303998759729663553516170143143737241270553309357955978651799526170322003489064123566955426487421240956780826141021940377535187959641635810729056331191226686891748356286503146437501170345248282619787799228822863154864911540305056256825690280479373193893330262381955552104695183056877661010425099659562191192965512223940703058858038397326271447108515569087533654752033533214699768117665307698182939367614775943438588192578559507259013038957891125008700477890558937780721445113422372456995254165964081708778015799287482033032409374865378316478796284676996223078878055926286415269360706397148713786857045382456833263916931028435215485020392961200569980528498598480064692354008231281156691784384896917819945521179197759654059414817753351472766434756272382762272643301674303446131366288470647831823382771583508352131437494210740267249374015810707677155873024935005426970156521037087204263905666065952966116718015193216605956426007357906975605283697144200465687483115646326139959414670175292133700913447387311423008586525782119348789622647059238712224445372467232924262343197091730787115250764509284794547247486522801882944903095069713504514188672298589021354457278177612389049328816117969234860284107592698125094600463015511233299812891235724017317807169612368630421415656870120110165407767240826497424576842416378207571244547211413335225041162088877088502745046574012542336062532677354441258421285322017246265660633718873418175626995132965540172831307315586307401883503836960149304624996174500233163413701898124135981031570831825924493519672023313815016521661458714583618330974503093135748028632874786556419009106619651224399681943215375059318134963050616780684258529701259275438457703489007178917426780335968400770449537778574999928884868534135603299549762566355410322374446170707782310590836538618316036462201461329601806633685916225038983647267154018302403664939555527009438388067780774222964890789847092705279294233515778945864309991337792776031645498300996778666962055799278325344948243317686967298842646677634222319437283792162368345294275977506391574460294670764870270783863559348306072851178096848696834979689425582851853200922738707096978601741442510952149925892869902268002012416458077108030436365075663768043343993181639145629961692326748514930209471570441690958513972294670993302897624186990426461048280290018944745859415875440310180580242055790985929727343369672753946474189472261427258296045925852390179050788608951287278010872458695780251161776750540181544849608950304880101990796672840649423799127284505834314616504059060987093016448600249515215856561478747414987731708546616942905656251623996799466516562121868042009034849172496769681794409472873442887937138566704738703146571135398120921294173814098508132379860077638323712928059052540090755121320114356880912039790785581638021644873201077899982741008029933438943073293839718353070976913966673223129237378398024861824978935663499397028901435008620122148020216754970122042930588083064524972404592710058614112859908248164428507126097593550285968014557776927889295165745939960668617114476565691318576268879813490952943437362070058131996806680210351530699772255501150903144861316791210992145350101488201973735133532547012640731987545930166387495919511282898719837557661006036879552675217554173362480001223330197242619916061952457947093495310832819666384287816086286541483018189688167343063739541874905013477976393780883522964602408507028266938616257753775962222099348817021294203102455009890990846647550147582114755648055884904872776643656448563893056925408617977915696206808480170472424400425816799474870900589104497674970516194320895584992967895231653881904889668021307782132133646654083947872085963952348279828512119426105245418075769628564364999313643658558671043257130154280223611370306477613795674668574696975084792572414230490869193026980948492747956934292458731347402876192628535896069520945298321592506681258060112450047550709256661354726910474214674356572929017640769957041501458524141362576319770550554341631323589579604540556798521389317342690906769775772932694326705600359256749513981141809112973257315039681541576913109411512932700700180012471760945221197275789266200281227846279949986537756579032460567684130758087731196219272267530193911872013718701776683225487704648296292964367994160519404718052115134911422126463502060768903768031087172739875067389860305843232190596910716249373136888757328760156980538701370129172439943555374212827727812142116926997318313152253055814932129461017792640737142231601132409773874573493461781188188316544788677867040647614425701741837441675304229959186861776168935266420247926112337724574060352018188027278124092596408576511455436746925062247630847332122918166904440694541058615851093018946830435342747237611097808848503120113322972738439479304743825716876422208833109403388442361860146035731859147599113271639594807717171151402963049790155131816575008952784817119537827521693854213476748785225452558960602314915213514814273666123978896269448254272203031124202368023731281411070508742359239913198759373999367879031677094835884804541056839584644956456718265361489805844654339833692796034639404690818988381655436800094021228806970214537325010401758420598245519313215418116537601321238009413508884229783025642571720829696678858803690960032695263473686898177857491726414619902708725349831701919357936265009776461313856088154788899366123019674556375194816945893816558093010166914550468409431952424022219554786428707231995806848596240184681086736383564216676096282091985717494430349560077207229238947740064294962170780387468775802468197836005946909353792812913150729144064388980512141590422045074053080422388554672304165936580793449994809763322261234958409411697756758109322104829556501393613039925125680569088878167227457751084704303079141571599813084683161109713627943046541776669785279557039260808339584948202924754207312462848214053156467845052680708687284330293916705875029546704917192599946283814229264819998708363284879757260410310012041430908721153940050637045089917290020181083227536214536583526226086292956599053820087944128627020149028291105968211512697028478780806085182322758219344428661328573639429718915573239314298480257867762362412146129992412754782326427569104701742627544196771647063043977009604455480901852993033742749686478102702314820098813441292079251122048657954232132950198711248332079998815960788874857508567988813932561827225679934352261709064521693439293666540891647674095067223478169588778012015000786416155557705241803886052128627267272252467161387908715518122977797494377627194026516662753462476728362897541402818417523138984458503294164376520744230231502515894080491312734685762951692193061196513772736793799740403384906490160387981531923959005051190925858901763902229152016808764773947738107659423638185764361735804799684192504806220447944428783387740293136040431983369648833633655725478429246693849881459907996235078216974015094916574727101229789392474533533319060553834727119991219972908549200691480918462372645015383906156078932185801602642635578581135905520850738974168006347227430610001851330109217035638063281389674099806781654510640442832033046758334631809467370907705357784969555925060385232886250769619119033138249626064448617928861002082184467514088713805137153589224996342202652208213667335087885223673556533703202925541146210575796543592740391050276182052507563593438068535373485669381133566212928798812583777003129378679567724787327933407191089308582220234086924631010995348400236325849347386589385181638969564032859297640830494934385336697323318370496262704594749388974310097396385587818172656387248689106006902044710168929566253776698068605223280498890065693339362693268130117757507591601364707311818864433917107180702978717121379736471181046769297369623771207248187748216687792392009093645830478588609650502340118359612136339421366428986562409882991738485622321023677481071002487992399348012684607929417510098291623669775811420688053440024839722629635145235369546750153415452966570328501938491027358667242241936514942247309147948117069719639900271850808203985805208132802564264452695120364279967131701087267850999068710962970809645540592619510644319466855131908062556285400173809049070573997780449017243982757346232185485061759983795755008688963226528786289996103439253903347722284708720958904202084818207107966754750026605609759509662584239324853136334663175707718569704420529136280338726936192020820564765668091831626870115890306624677037483164748543308112397471963418649642994064515661168409336719313007375267658076280301337007626810010795461768800005134172694049137289340406788468585399805983399328533743079118472427031357501724917974481537386197391784218876751023109095089184698326389721116160608521122689738003623280362830246737280695658690524501258314652168448216054713848916156059657309348072584019223431971646598075918036435879994547641653985586173630126575922188651004259986143510063388419422360981050609995552280509066627126277078432329525756961610636147377534950785534526377563424251174336053695961509922656154081509933376777033183470996605437514582748259342934847315585813818270762973409556442111023528534287192988104625885646360845892754245918078164918581032211279916739806136407436533221045614009456764687952795963609386397684940260038557100145607516737526029572581375233573004950609089496662774623697827266898765770256977996907422097209588276406119941578679658174697727449455264572642118726295587675549346414703584293482015486703723438535460077200761700432020049783571579854541299099340098716798218410228162207424821852633691989764543086569786090481628666370892993478472748817031070548694623769974478830949771152850560107282180887625030197639040620638868533575449996491207328882852717278379036823648104411065824763482429756953131968608394722845664829026768070715166149237210951288625715513702098089427217890992141362857832062988432946856616076138514586896259392186313756628929877709099300447019625609020311280222017333070838652661861355123068189650715000921084403527141323517208071952554357114578704192375318497206363057845067613896378956676688707010877954446308545965658690276563956433679743833675022881576676769381764601832302752444808756399487183875482701186823330263393440062524362581924305875214408468745143279330179841823585121729291874555115835783488970585802696337571214729762203394292875405176600278508305353365323582518058309230792912325587754544275359886680885534172107242155992112908374118126388419028522523775413769994544467974458505871651538806437229121564175596797160340033832060295649198658198812695753877789512473479044659931189083052241884587598954656767842941903345025167137745943341831879783213181008975726687550535787947669210492357394496159360903779393679979928017177482825800779655773777895296370010524828912541624338978815736875532823096272965902934855046142828061613509127103230495965575571266975665355683956813676101585701102187683789894830269689285962563020975943299646601643292590570841891878254623793491332753138778791044135245255297875017565637157208398399199601976470025034698953538354525065462680062649923508851666491387261057752901548059825388990419829424993250023721431182045402574465736969294312829422226656278677853818202242949984830739475081908051209881635056830141777210710498456293411925007296886402404608329936351821358478206215343518417512275378899302069028451328676066326107961613166016613841537145391175817326522941466409845591959072164275447862787948672261759912455580219402850783370071905968948163326824386013434867390641516056624853686162034207885889161106697528300945864812790762589487429100293562233253174201024223601471483655714493938300790157909768447246133841696234562706775671349528426752173004817651290565551300195146211528314366765396084779412442947169077236123587353965733463823438016799500976631502541447767633670430297018210940286941744430441223531955119653660681739600719260273409177194369960356443799725545144115972597445418453505799128069126126499685114148479619701057009397159956647010570574691622105782236789542080285605316344682119419767201341010977343769616878903798027213225112102429440273087477183367715956260345222264898980668953226940374552778835914946427885748168152778326645883132009892745787372066712321685616304092511081403786159290877399482810696551929534741750808374339577422518378930004183920166743149256252810204757101317196919562157359226122508052519624116193877023123045812086224197591259241954243219756678318762827021856265583098604931499203312364587637621862766796844463791315350710615464969220267046806748498365169786515075784246282089035624500185760838032325090040755174262804068353561560729904927190921400010283841415102036129313324020573964893726850584975379751659186157960625722157584097814232164427292115782941093218930042766158649232434177237348166687306793586909310180136071521485017543823563029078736016932908478067159486658681669763438856050529080771009034429222221311303164273672803722704639028433236035669678710195748359847132633694846669381361855158003275664585582254972748773838166594730403718430321231843250592461261814578629495002856756395561885359229095830499967198120464349106743855349634923286415378404376435740894257097709643600896340676055537289587938774425553454141530203481250418466604249566012911960308297425774782296445463242104975416302077451713608453146419177366305948538475216982918834091914480806250693955037053049779345695209528226205601102530500264560665692272861105625847001778944110569682098450413098887499120361292550055846810161328928092462199611555615680969253940116012375326756251061615167230986885620527324204405316090865822542837463607591379190011597142848189564028189741375483706255128442972518202871482384348481280334270823582931808859289677143806268610600105164962528208273649437274777418053614805467373221641661875126095841718121249120590471934552149659213087403391991851502860182321095115678397803544206709846603472181964248184294533998506101522422517504045405158615484745000771986760454106536305631724856818055517225731649071937457541861032532752566768870682711304515663836300273699376855690792439968044140024946420301645633360484071265214186168023874874326386147709480513799512410708206250770178739094912538696153687700126185108825415073836540884050336826362420170892492027308585584043664846615046345340172686029445480411067775848994354714081650381952809745726479037590778792508572372550871279731422639082177873494701716990540560569922601567481069958642550769125274945593803286065144578717166668818135198425351719132283722080012512536476111152337452850534377155370958471065492369188969987563455079567277421361947490672586922697793633014385441655905681056163610206927942904726840115959177855152271488285172816941604759512463058289575778435893168196558645886462241890538128648572379087155553991306170934929295096105533741199914804527324919271142092562517879865941683811215573102486745447999246181841411969902032720048845105252135264205124237722424853770453141494941989009131757426196523873603498013567332504942286092630145283170850192403021364699572470703458048138176967784042697194609241327953498824289763159093281726444402838194910911924182534335289318558474361028844361645135856148690277719564693182440547367540871939625296308492582560449846480500046970527303472427637981484460677737194374623078996956049576558960265808975742470047338973974638631480271064053007016479026630289546128217145772263849481655686527339406932809673172699595330664690962543439051732306024354894162861334989596800072085990661106117817468745595476405507025506059658359930291209815634244480111507866485645545283251628714599921972791102878345289341778199347621150042048497576771512306675167276087995048015464549400449894311189342718919983990345069017603082766271131136056680029148636127902286814366886931209194943320755939039925372227993659695790115735683547620628664311311209829609952874848110523195746690726653205654559379559492529337661244046764658931589591866392797377450333107587099073791606142836609794956233136164479043419468539973267698417305087917144097918100282388959433537617227968713521739661608792475312268681370228631946271836415034791505235377394376668873815962447443699451085788016991555611052579833398155304470424689633838053917836698544927677696928937981770511093598797134327880406602886639202807393509741762531260283625196622325667817703990309972962934977383422337071456225942443848849888007993844021046534908581610440569693604837955534069385320797143861639295586479671076508525897914046179955922204929043980920575122485853667610861546772140909359464039197561140743371314149482507988813428388164606779105639866880716272171077333920267933371157261471641923065094691424620239135300724301289771355265712843061155059676088018216114173397913829035011905398420481155849296236639595489034646572316610806419970922846615093711772490884572949011419952137069772080687078813454528658792957394842296837891680819690925483786203945086612095650692775427847431404198184382674061292303342033455256924262290567064957999365228111180003644848457655406231493823239250394769858899018945225366196492445080515338340097061965213653113106986528534003956846979635564892365047972771739254680348999496438299082951605806507029618936782615001603964924694138822926376180252410846395734832906972429715879998653633679551809925376961270099510980141219328281167425663025956768574383053832539773926331772688608124424016779712422221522201336895607208462898370265470337626721749707148736410695844208776370628756101978743996300870499724381541490696901630704820962802803020166835926019895070501599347427699072065664742093396652738341136655916904080847100921803444525856000497441629964936817364071617290995664634273629306605035135331424577830661797630830785910026704402018176836312668615135417698887775521386665870291138988186801400856676121504907890026567645071719982808668949637790632969292787773109942616647232709913325643995322288349672372004986131498074006845743040713236841604843243914472892799021098459922154695652788845567568642694581868972220870129389978597261292930518445863127269746383433506591509686954660378642421114533507971145607245998439168106683231030964629275879079420131673143027900027912847576694007688425720933693532951774519556966280255959494190732876749312045647012451237757577949300767131501326538405514020415121364348220142386812900029355925557449489691476202993662436466338386209638658192222447072143744596372428842365446439261900303864284907472897074246498260374740308493741620386510530644997680856820131002529479449199853501268235184261623252516774315478298134862425465879338848779142945003155614208684506027000590209023659787395653915599915658047597281016781907404171538910413196944914717585009388226361002963328247686189771670337754785619669035122704402492620844693098524297791939760635446512759844025174924897967661416305576378598853103206560567633442821553313292981757823647556052483447297589641291283400213141007118683608442105172730883850195930025386383781345585136358323187999295057984096442657812000765289476254343628748520949911084474160329723697386034522327035998600441715265608331837004843658507088794497849843420767621707467752275049453997217719665609968368028133524812768334189990755010024494985926896453086735731115708572983190514318800134686329985200871393980347930510426837094911843463136805751007251815287306199264561247926565343387686258270452034616023521391996336235239389575306092483434107872907828504428655010275289853168504555680940783543994379067064595731214642693994058395058632176996859865729001790285804392173817797399228839744595945442320860284839652212656235180162156086731163646904269142399357498294054237271447930619724256441731652178986589646192306182303133682938707668595176556624743742606106296605033267584714285380373510329960592280872491012421895549053686464975395469927099523611044085507824648677809100814965313981030848217865084359439063658991442780801505347838027996194913734753333031436508742890437496064519992837784476531441930878316491321665267264243729482658890473307866223545508963471586071149421066087802386158243553369400018315000318241016141613177330051003003852306084895093454362439367228337579365499365551494350477963242308016413297661676573718499421266154943877003893926385873812695363171865236972387089127888189175033719691514441297338340070593875721520504734070854321891896789790671514066820326143406058155398359484002580125435696557184999494983829847037634740830391169351800341167696064636487516957030691871770286475120751966431160333272214908567914132165736393056436762095509667748376956009765435135948587768174480863923913979045601307169884317349031248547437851439736214684751178986956365296163196738784413549625790505006895974031235923428839682686580833397714021465309716907871544313387062472613719041216079513776218626646560156478078156928107160708525117892806435632767621192247002332125647861597421516725575771593726921103515017390510656603220639135162812754112486944329478293841387845217066228397689803244223470434768879642366413056706674894656205857107795945315207265171767249304319511170084975970989980221263742041309315076004039301256755641317749286820254618737087329883357213057588317365281313038827173805946338495952970100066201499814314408398371696773340438740180687597334117804504876061700295785841286042090869622387001605856655246948262742715886923459539672566071674042646993865387447703929165178599472265437627225994875196920345913524049318171174123299806107645802864977432799382313036108422447726896044770927426363887697880042172065942094872689610060205444071812072827644030808628297834083331167464099480208354662240083836667701707995160545613634471929276771945999595247572357538335241700197065730435812360312494790686425991383142325805002243857787954012715926892832447016889964525746400099023352980748327981974422682255988085307537594555694135295050372865828936251816501858605608054154427003603457060961286148972215700753803412636264446246440432388043626239094006838697996665656155000443597376383165887527654936732640152366420714129096918510297289581474944225536806883466833827308312998205940217208834861959735781450598508605610420237627241149074586835570319797373761530284193471849692944437944883388107060987170088256075651788745363745104710201895068381649520410321765298062595739128803446768565774875078050761779877452100285902897404199011249438788463408111269015018097106123779555605225989975571347813779253733677164986125721628892105623597744149306643556552234541891347615337014876064274900072086648372892358761854647451846315477089237947358956699109733920087776460051560248428168367305011808382089924935221318188952409900172536277264036713803667481881954424947134380947938559965889677058286795686389263419733391876355062852616364964055037222394063217180689656841147724226533460721286099982377555729918393506432221979103351970088811375766706374717911631574438222973483400324388032649656858079517533149178689294117050045248225039421835214997531218625737593298004574511958265678949421682369509599729656695256622584113713850341148406563742543701040762327716397653383815183954832274857048840347390127815263092321680736385077506255981359659242045490742870294564298300927863926706113412517498029222803736861263526861681797387004083468974743648629057853653331915364473106052548944447276001185955207895152604023419958980545733060310337487815573447055894642317715390015402203120487447517496645343970895511897250443764861975544978186539246545026949819699049327442577637043372749108176206447902958702398528692330416685797046608686369372153145629914341078308859481199090900801848195854587972921042816579845120885217711216307312556421545566524222567847433880577910141819816371660675450205724063186218210264487217780854278537146165366741785030984731566894358270141109585723127622180853665426655641009104404080411582366828792525083462810993200299637089048017557355823403636573847581619467689208285597449500633091419726781628047173651732721283935658277438683031097744515973526366237091740947444290969213257805437628213407492149883667446961716104133104943996950759647994673498351893045894843529510688418323459001846208380545609089877346272212750779264783444167585865195190787153369868104411132306375515675567929643279117085928624091390972759187629237464413949757019906744315589109140411405476812529683493556821645495539442913905942369133412469087843940610081289323823440580719196672341081927485740190762488599822165848502769591915965520855185640135860505709057062774923958100771432083711842162601799342259211802754132290920464571133422615986304018810704493209460979185586901934248414532438303981031213518099366565002233033253963284643945565931119077577520029190732563640185158476636113432035573759308480334375733320661422458862395394574325594315094226856348825687646582061450430385329712368616851104768765233913024288550064456175526162086806508266022450690934413297376098024201384695952935664062263510507861256945046083903258792579948818950002183725313101456445760491543843532981065994750570291069604493268117869708569449613422564645358343076116472220378622256226620507191219016910010368690170845809665632667415879100438941299510292193966579532704324892621397365914441911477962598181393540691496152450219227696444832405610884497046541809134025510067904169661945704737784602836046937069071725347960462104624211697690568387617506936354023915784315814606541656792517337166786021363147905645857635476250114686948937757208317730870301269327045500367182412597354708063409153834622505143469573429718451918019850027119520256119669537318475799092487428447854458918901763004661765270144786700941838072038402726396235682513709983622117467219181330123049425585344332137302431177175906177998272538759189725645373864263515401719711278588434035164401690614751082939188736691884522899752085018867047012677034504657353495280753662481922393558629801701731477676501568423298512347559601606301951696827999895194059235867607944489948235988137317730143171120882391401370797153074832570610448682905890150908073068493108226998273010961417133290317149937030880054599037259791290553361264084763495574053049832948686752943389026305232358656988119515269828013031332721899845617665447374228319644216453486208348831042390806360384191730897825920749146161319744070946943823068618267480728062318151838249533367440431641163039320747613160595299301166792634457346054653273422843388276490294046445347226169193016472710400315515033101127399944177110845621173690585575825668806026378655867084178973205675223836773782173305190365863300188095585288192914428376149545703162721815957024642464538421534566849928997255467423057036250269512037152914509998364341226787723359758164409989979272598755611397021923927828304297628474389023736749494401265124823087786516726533907667546410034844004774325615920331363662260382428110961134790568369403718994337368348509137128604187317033995335428235264758884916352038369397488857210053920573977464515904893158829825418829718955538236140007098845407663562738965574385018348759215563643422651378231195348563533299324215240679736931437426925995799418415045229747773208305952951207801145145420133963721997306048555361403960462989182536123288309698450090695802931506860898664765626130248954182611970835716065088846929704494380111374902244165065108070428223834215248099937146837672801878695118886647688714610328253320861406845716608901417143109471014766493763008869952087910162401660505568248500551259976844338062169273047341594725812038213652858263450428232545683768228586874792979144925189318857343617894065584890669392004017274568605932519041815377726088386279539153262073955763156005382468847667749761615732062146279125598432890618332610251654295429249480960265534007603540075481986841334201810105714349529787957919636368558957266345805924235745223030353068442378410770532473480296875105488233275529886248097555994190697058376124020636480312549412952482506924375159078060538041576062842392632567109708831759509910138121542944568013610709220560140752944297970397119794778658376729660307848802102808304690000427908233479365438140757883498019224774962280444479037121881896997819211586490018560489535006834039999314556056833381366363470716914911958644641744781898424906055125778904398457828248160701068573143627471314796663222124167451384479946159749348661279069164797176640971495685641964499909275428072795083779420107174432818207972282694230058256135064578105516276758448298638192241314547293478363126202151420427782313733805819009609356604380133826251069070516746419309567934407840260794911901140021798793781026960338679076106721600537614679395103149418553452385930254686777045244504515068617357927092484698273781519619523867453230895800488828372260850241912825858949058542940821261039886169940227747739465829014431429884774144573092360175307135035517141498760990592269426668206624028288562898531407141637817047362465203379611446192670217943281611057450020257435534697229612785731853885837550918706442348260887012679575905203012582369307709896739953159445355973571269592283612880662619817412967641697545871686042138857077432587888404102608775464965207445834836016377750593976145591624923851433530139762409583548522874718690116259900169868007905427000213167540093824930272675305856084249678341973393527856627693061749626184579534360200634371604007296560187635939179100965123305944252298922312344470543062869328993233789082842769183172716828363752759564943389535240401905072238521417415909915164940813074310086373727951604010242751692474864532598924613553344020228091966491418937615570841614194930515967131030609418078400499278611595966939373079837612349131138372405966016216081257880004729942960010698912150158436657720611592352723721977901440644072161789906527713806284734260632089376848001854643777108527519373900201407451014164445136035580519457882038346586066762906986984664950029516672502791484961636832357928191451796019403390845208598306948095822321990917800572042289864261111473552201975789156813715754690347640217798577053251203258203887506326519774353910961526083187578433694912191727595301657798345925009440426202832943261004759147425660351853938584272501178568663038109237201944289550201987391680037312323398140763954332361394251130759785442284064094712416874828644256705465525545458591115506893770138249941236373975874745261983074077276702902727112247300565356671428836499629886573106487657297308979397252636073174094577268054107026468481389460825060710900873584439510490683816973367404468846683609617766683906939258768329302254522083352548789774854077604501643261744063750480776947325425482989905909904598145131691055843799226174204648893149324092101143523546183586643629707338697622749921485513956260297960703966469651959813625381175523216650166676726944813046408815783760888013091386896800965443816273842169624495820212910489801281768984070412986104143138664164044658169733418489039000609207124026720309543914985913236768289867078326184607639407726624514625608709946235907118893502088833944841814210875291941457240633621317925635968682879802026405325790979850029567932549037175549352105989829539118479625525538913356485218388290154384211205017454072202599524484213451362895837253781817590387947250768297630060696321787545583068703275367741080442170142756662315221140108262396738088400797608741123529748995980311519602380886145838293110128858391854767434983519024600124215719867896680082112792578026092769123818953513016078691366284491334312813533894598683619207274820469894157685531755091980235150031291994364818013775737891079503199203802184073074408402221466100919306851171077382300160071460023143999678014438482047553309039251477191051302527586012073154318982902539183260593750516753854333278223980114157136552613648557966036869914952606379748336784626693632845227940081589351192364026174952711426726475001378887500050350244263616802942246986734039177307373610826037555145141700954898905221719561030223772347059125111621780575406384202898278834996938044640101049045325916087753411252575863895791064564046099941619134342920231795797135586977144808761598586437522207017390250652984544332397587784130358954208001386480976908132846839327572090501580730323789003579158018673863509747496541594963955902034217470566709461042292403325000885334430649291501457157067617419441613549896396710609576501622030992930341921210228370762762261534498989790942758041735312634364700229908080784411539265523055491330977092750395703585437237911501810643328446479686902274049686752162267443163814419237222670252968232418921516138877077968976208042901853653377601382473469484448716073461904437393405379681985154599870546168775387692961153402005186184657786968871474736345439776169635584887454476640752665131438071930929079749228148236054563141461764133495100683385455226335373251682666633339354953377117604806118663656810269772530433952452376749958276589362377915145927973478864462761788426701764683775312495321223073942899875292402788577968837843871714646369833993736600813240651218144462299538469887752970426543935816481903965552315017858162842589981824424515164956517484030381638169424587687614921589045859440232392037185699734231260019155863778991244575620629879919237121629219486178504706803829898695235752552345754195793028283261933586229225819772510087590260117976405955247751665243087866956586645604975929272181630735726895881975715859018092633837573770116104444960914771897186689776209301146472300458373621077381775983123354589359496185338789416927011902354435370093402622397538051212374276334678087279725132843837636352745875644232705274748635092439469577857661565018217891021666528585158586102857761595265096467213251105655594452918186612927650695034855199522596013350162237566010958775003077324486353195009406906021659690657652164799319464510215758469925497354709277650629021196836802081969091077150275807225239059635706231269395598121708997895565337336027271420470732874280419257454885971523343807967638248165943677750787275148591413088954770179340248599880581456369629298952896903339571095185387518054607135067837700681028081490441006861601809479520702001436568003152662034121769514197570677405294022638803445910963846486791588113047619149480249854368547681307743887958039554763862663601813626513354901509841535313715751548314431125891307503491597864968670491725943711075430818297305118156198411378217651913111486087312220570912087904732804314931694417789892863923818393230863234578281552518656781580853589178240983681973732108470935664182220053594901839261092728335198776545333457529167778564125308432832363866192922537454315107843982465770295259683727751477321776086650419513118782060005833770123950949318850106092440488735220359547386135654511537882535879320813374555555881638328632955418401987201783648280947915749632748570355827727653391851878627176458409900557864631780670497308334896269764327180910039463321918916640519558535162667589113976964448866586193923943322936956812715545856070065030334230630428187187175807556678909095936539602309738489940831601174803841839259763803312945531057093588441750102279798556991631338524892119307213480080216403730307098608469999821301892904733423119357437855270715589687119327901509563513344399231736678359480527345602866621216057897599488582850585527893273462463185292185619480546665496647689257402453934551196474338703615697498471090965057845891336039633726836373661814117686503217080791697374744439550509755660532851599681391713949478987744920132376761797805617854533800882411591581697191594708455489437185931246394518406730210559028000145606179501324916085108010206462541187987342384014076511877682449601746708921195064101394035863077301426446232230085952667103485639016722917829921002269705750210762868059314964180224377289499874661893051693381611058279108167713024608783837691201921373935676659894561884603860287027580530298963438015357409950610470323362799544869105822287553993627028603177881944271963993400698094449489699919980538376570470566567356326483516123333797433414752681188648149743111673141439330224263054561541499633259286196470310649025851924843767499622917303284123298052257996630476077185656236760854322454802953282740473577839648003076423350351885598926843888108733012492276416648642731964373265252057119013694560881093189275947338743797555157412097193993052866347241057647083407126036286549899271856373918200560902660313367087501200907576772491081793191453239222998227407823227406567849670960439163123168737166885909807334889229578492722350615049491201718765516226593979671784671531356792339022709621798234477639403467879074197348903040021467734238666997658538272688741638038281528909273246271376937048176915061434050528528708620691672470391862107263862336094013521076774385305699518458727346483965383630948960740755070129321400872097718169920864901516565974962130607885914001207099154177583747612431152559210210519708603028297468014025064651197102675572900976194578324136496830622544590667219361949117986558707674543073952899762426505221636714229514813537915006934856857716709551978283535327261593650057425939974179827001241427418718159820780131986619032700923438455710379444395347313220823122418413483391669331456241584415017282022190617760302295876905588459465800890379629691605047085557714174088661137816017976315411238963951631297143425792382219625488797160603846895700930597858920557872520627345009517891948132399783067533891036338535869920293267976783605390788266877826433150258132146787538959708990250642338327809615177687198412672315165821182996752997102790652978110721552293947915136134168281106530310229267980305397444912443713037323099766855454545635406188245836060289286068981785880719842155856941627368710709817083924168145857434258243512645993610076932012789853295364604230900245547104965227781164476588617628372592741267618160503197612153726007889606563956314987601720905342024694805644769344536908529543483903566461029300546238244829549804011238268982289790169356822337078351771440085658363830283591045093479265485265831481584726615048213441569111490109853470447205909170530256877184437695547758448778237070697117333191468058629264137553349680279113775211541819002815657370226683613309821018459911244075886007289644209482686303634968924179747223792118756772029285204899358850797821656051190008418970426282091184090094404023102305120593524616866084720703711330117411257229483021490408480778619927734285612515095166146775648407876113127011485879181137371629744804481121678565263463795883374656174547234311858509943875683236967640158869546281321896736838039334681458280858573458924119566824301782460760618090088787654876217502313676360842808562024589096666456658045626304772188616202389303351921447209486911365445203351800895503837198855549281772111162876651824733496990576908114516009311541013253341455348147548784402476549156213916297351657318143387124112595242368952898758305129704252746973452919428859919822556195977015840293051101469259153834883931106280137724030240206694235552013950428468963659492177944650071862065894420172550921470130187025710454944619121558573284739384988771553412968878810830803219476096528011380057253731001452355678540263143234393784695438609660270296485585218825366180285043019713072986462343757821593274435923511589749708991990554405328431237062529113261783546627742310093307714953187900319103969823508334291254320749000462874701317842185838051678023213385185005117360526471970862910543244398041744896322282033930213000937428553351286828962247082927455395692847191658055271192924133296324911367181756889304393620855514710953239329599201014640614359977769142326824827552129111929899305528038652842242241783250527891323110943683038215855722951064384989501950608381529170642503830264134806273239715897496966828434428679851713674011336579982677537364699371475499049325759033695803497046099111743932747618958060180210002481600489657599903710299563889111099860227972285810133364865513152659162311317216130674082458177528406009915031119494586114642883273962390951887651333682557845219538025604258119580677599241934632541141881409712707571608890332351537828909561035497175661874106239344181292531187269416029445160067564776610631893079000665402334588394876901197590198225750988979026524148149526013832753583082751316520844520865230582512139660766216679512899205934832255710229330302165292712059296452762212062387194565481332401336597669731460806334873623662723732336272616323539973375572428149118289249483664286957199368551187607189618512601368620881043371718318181127700012765293974667417975876022881803213401808419716624893591783643625135738965146616561814925622969326669022896587255606222966209473253723747115988994150216861042455459184344834257783866145717673603951390160536340002786248826978282473897270539665342127638782039432481286253726018589684061303967250497220352162809154298415981487257592995391186612724399495647755715558047476731093930975338507872945097642221775693103569989424032914536123904162505230274291940359458963029695460234504981962638955577928460996458056477143322960859538461520550994330718964788125700945356178338232107333382353567274142669053008599537111309099277733491244328475603305180769045658649059175129599755155792062561370096576813488938106404665916901580395787172530189678513498149420862160378790087539393585800722590261732823784060815453247909263487913157824746317397409486199656011026509979186730066704233798035433413429187922650816276448734282148218540765494843483410754866264077155120029882988887709123962696909464773944359547885913005469073253428444328584250364116048068685828008048048594330548927593961015776290610622793359651206394946054202538149081433996003388885025731131022855914391912426552214900136131131636273857709787987321782157420229161038199635846635585567342914720846001715391960820120780003404030893179642133836099374583171835201141475192698130778942234164827590374085858152256303777385581711165011043082093442526755082741138448480333055245286980018960345506569655051038446251047603509223622620371690683588804742984620883017889221382735919680101984340434098545419991955646457495215120333577558926299040535269777316336729235992506767456038574467474039001493796390289096314152352227538599351594626294799949187310015330969679230592011675636248437394854601190144419015065079133009782343138248043738450004785673755364039103874975596633919332992272521168798363125761819842101852066237903386048100990971306570929698854641746061572375685546537220891762676597849689335848181830403830722238584948283360638224094180718446974461821078723164309383831879080894087269037590472389998145492130498244881563805451400363026739748074502381927862922665005639670174343119059884854963431002153231302996739468774141960457103704830450647684973507825317403391964798386479070374490220979102232768152878925529239412186236214177804219487196253018619582262113471821533024724194280572765028954012290217454214062074683421757544869033974057739055706651743911101591497079540732151291115644202277530015346581152461757385938792874510206898673620286809188676278161004750017262913082962873026039342526191980935903001416832892793991415535193637790394939380511931335228483898604243025265103276023846806687492428251599356449432524788848160028724856869622430957475002421005817516777667258886471313766397789351745133994764403840633839256883263127868256236241989539243704162219135508358810405765683703580352729410066000618736572492278772014876067686187180335892534289073395914585922153004673671952870907782658479395481090305758976745588507279106921335096818378580338644574095227757309843718487106810201157398589026464341846287562054154564900166312778062171157087832815025363015188277525060528530030221359106391027054435884702932491516794612079818958022497050461176454404659234876735714682141803553934404673803284098536684510861252137478636546999335297650084477222315210674235060059555801346177681064093028783839635482088956944100419028436417410748902675365337211647906773692092094931178970710078219349388349619783747514780140001576076380734064859438359401755281252875176164055402836587885591606324733159297954422124512225891712525858349862623625678144227261269148785852089424427914473211112820892146646730074049720101977486812339085745484780332702443655037058772352832588471299121904304789299682046215141303924557784462242719042477859618760644647994087390704974342506145720800251008587274310333396337899119678926028278941513948495972021229447767836450349787536954264336119946517185879532658047768771824834367884078923178787083124452397572906415568013621425122430500266047334561788744887630061611428788921233195122923324678052338835856676928508629303156530233862232908967851724803026032118303547600840724631598146120846368738712048832349807525215127578878336508704978065143101832725544497585915637198569125318370375732078527179088095358353387109107387624827032267574062135938163042625335931053385602976808012405712675348257918286924551118088665917038512106814614808469699909401622074165313293576233226807972324697475344624109092696385077591835373247032279097353795820107620147842143919758983470150774542056349166863245764107635602487717154639570118297547247285772853482585588272271058773640753352141054342268255073825079251601077261380435205051787665682178871104650276151232332176628440739169056141148440298120562973194339331372385135666187339495557467678856999759570646974136242610985717679614684817557656076188679738870448054027690009636127650381830783012862444122673260418487191080672700164337077393435573821206009447655729356520777477605656212083953219291930750971209491607777762847991974618717965354073984626056826793088627180818303263649889625680170003429973928938999890669208862920319487371414494573316081792289095057863226014797987614833746972022094749451152024546257963482735281981629533873502130152983063260406649101576245386102837331478097384118632378871221681016962158065234864293522578289613075362979344836147339250580252581837230830037824710612868256747998666124857482223647540436183244171527170684819681688743801557572281688813415865269260963231121576663091846928555434968684806224687808881632316101138457723721068170148070019618144816325551095354302912629039308479081871608481109346643093677770271537224201100304312382021762263861512145313765408128240278698855090533972966774383868925425010652396248053411165926069673474088726418332780354413713320655001737635290027307802445176157544519722202727009660457632098162089920004110955572915090578556910972156544169458089896698085151993746276115711620553674428140628767003880141385360918793950115276167341218138047986419321775056432825418016841537905177956090507952662501240363424175462986022629219318713514163989621634807846133176804139254969399707902785530477476848833266605780282863806793038745525958089779493541736431862131042613904495035065582714591671998969342839443510699296283058524651500960266231264014548052555917852516026783850231363732861723901004678633484634595160866033904835740698738671341585203722378595354816226894428733643005805796896036249945136102017764641360299265986579375256311913023349412447726525938591417970819504463092263482382410019137483782065398171108822269566971816719061891876732092136790555284222400211389824350172660721085628890510371623382640205023438738938728290259190128292872672579411712714422665435352920964974901200135221399075999974290089890296619848419956736851173920885457917229164589384575644154059503416308267618834278055452004636351523025966010447545415573512930427588524893348752569639490306529167451140283099941054429706380791443073731354443637508413645259340322228817285366072534163450406094176804022109993281158036855962342875627433084553866256452940800890630061490218953653162932386716596355899018865353277510985491827051846241090599774942342469076674451303317113517657131229294109683032460435246602844029050241726647476939727297605210287300837061551626175661325939068726231406922991079228052583917817859819859732718543719829424235159858499272906894898788467899467091267483903651921765079578286258806158989971278678535981343992975706284514421345867740819548422618612851216297072547186711047729001939153482796333776275872528137364126370198892667379998277219262384733274405941239618771851733353299488955431500886486377494436901337808835103948594700330176770478849422846440318858414064651620762355657617785227507411312419208282697884160661990264039949103465040532248022998281650848640981918368526275880865938339041300073044520302588427769465874384667748670075087981366721470622060652532738287923534568241480019981416964815713396031080501351337006608121858513568152296257527161338139839658589084459823225354710563244359901311476856551515251493820931716202526153346747032871439848694048541206835931196041984643328280662654156846950597447915976423221987627203733320180327903336079147576236155216962060691297608070655847367184167966580294905361096947466302915708892691116107122832633938286290072930365635638746206467129997335542912966372147336778494247729448923142585383882124449583001776047476894416548713422417417410854806609031737905158852695312832652542333392327720498659650167927805121520158915069078944375964100492297335783234484713196264885840009090969587008421199706967598364553124695907795111414830263509441940949576304374651044483925946846623393856138257854811468766591830141713662810497191463719588462625427889852315489008294484921057839618222848921406751861444707229686869238047699382236140836566246271178930144314627315878166205333584967048969915857847500879013254277736218824909537436421555715253255229779485265119770255026004110256558364719693672496723894814061155614283773041605172322201341396405242011497695046094044108969074111312223964339222726288014415003603365804667800246594069510274762648360993032519363968671674492503491558001604679290136976950596650170296783414752830239177275117772859221171155936349203573274459877853161390921099496961778439229282025779100770674164542849558177912484615362737775916360470579331647742778949546617896576010071980179198145830470992965891116924037408165145284845246926965962325417059620516154225619590462860848018356359379118014341439372472470934945952628838945626980590155625905875069524782484438551698823808853138449292492972077899346261415760274778272310180911012718598479385657534962239015895905762071460282058018083929278692212679243955701022069386768887331420302540095020557035849368474816769250312163764228963960925411942278924076301844793728041965387087114023237789576062907342838160829833881782044080842164370367589959599946970606739859404928357411254721696315126364802480233710361144587828457633968431353570175122406621812024260009152506914984771370937054611608616906326945312533474931942162357791780006770591958227220595867257661663263553199160181915627892312898571638809461782032089713685097218595101835502882147079422422160783025589711251226149425559337647821620848126709896336399632862475998118742993080116584457507168480909338052400861209524723972813455077616201223366209858685992222108986252348783926353555710561072406102548761991587511419804416434901003286949405021644342182822917761757743942100029948273861198351877195567490659872289218339122040854009048651165475271365969807639450636975575202936412848478772932763818067779764335468026295394469355570694261583362761584781747562188590342444585726510576807563864180604370760845871435633042636474629913601527609811074516357737769689498523011619148566731819274132977705183795023683864725148677735814648648656440860040294052107294138502280801432340949424771232186465529371007969174357852855150333302032810413019340538105454926130960138501971972568902490540703693721760249308246245855370883161219459018822822383878116813201006723586327219793026933898218858552863465207324368958986710867942007474838459954110461411329060642764441251899135309107961698116010153462425224873166304704507554656226059245357670152319865074203955409411948379075228272103461362571259994190570280821701622602507643406878581786034862180318774438371095728058207257708770992755372139126535681638505481587148520201485364144571401259955601926374376247827716938683374596633017880252821516855931677212854691421925292730262127077083619431423007213743690833162623940056796925876929164474199047572062601437367541617251176874773262681940693739056162460607504337392556185106516299787926199475224471971204685301894184506530832426287069019477199219906901422359550411077861612127449731413264509757277591495763900865416952191718602350197811673787606272585534635465014602239596835551271344855476310730633764290266007093320440049699433167497280657537494219110459316495326414298803814996580776842228200661645631289312683503012299686736730055079314697135554649906722287949520858485152897067222254503332703065616872274329046978283891652427934779712728722330348710330651689429083753914067011803360210746892459172902576073603541146820896966425577659407939748874649154032858392684697108100207572332027718274880314732691606561109211717688912179409710937043664662316569227781711322802656203626011518556547385539124218536970179023625439503477117179186299730800872411728792979643923149624217739735013949407536719874630099709155565005755772575437727691809093845347620665672408799071610997964465078833192740084046387028035999867893489093998272143873550690370946243958526037344554435613842699076084638733411941703727270046963843240379210819352791453974807966721292070109009059307700693868234385911547235347738092767546317098633195352464801616580379901597442804052495028410980980565862283839033894145107428474413328802529529426560047852475561687786386767344425841797939096315446377637813768581808331265736758464878627284531915678314561219828923658980513237488712576761789468351239529696629253152221268927123231606120069172298707808336311824366510251325257193533488018265449749914052056281279167175409528210146341397360695647451456111981032949683618316458590472898003421894984458554699659532270085361665085221665901619685225447538170217134491775786136927378107013998972541222848907925683997507137595084898700796355308770761233156785006351312355856588097511089514916163275628841442153957137989440300246745270093548822002864609787618032849323580571443525775542038824221610844483113340356287940019358762119802462784656761872980406188403607883807863186456642152472080290121985588034320070553774164682409946437820467012621535073379590989206815410823141360756101187280909629854722324212361972139637817630433841385305018484928961466547998681060825830590294171790901029167041821724997274804609703552752499555680105276266289100919502636873341285491352373165942363800892714648979951681801300691728133384294122198961858397693758731115472912467380667980831072546046353334206390528358597457366683425858904026207722745491904299831560331656662390635285111790757436267168874360949022152835769281687211056509666883966517831110338313573016906242437334649802007425964505051179480982388270076632654022668925840268447126014352952559244986683916792373753544269469321947087857138533970692212392485347989354873240336865851916373449780695022468784939972386468043910324140081649592842647350310282000877042532141472709551250655700336907088397676708396119834189551042783932897178895576882629152488983129207233107685300611323304909035398155878691835296804283192890470838012499078913596337345278168078948035789906449462021876081217641070098940625484977282359303994575827017508062891175570133509842902119335598366799707067011901832412771866241240959170938821371645033009498831191892961002277563205362957316141321771601288893197429962068508433032673327993284764404235956214615802368414471032453313319677204908903884833530325108786316693569619486890130086241751114357856357452939812481341430871620670782546013593193708950703651545377153577085427852283380786455013705852421810776413442132989539325501730493093260149583889477729284398974253990035995465727657803108316193840672000433899049259450575219770959135113979533262174263856086220534139474097190563146489147670608133107113227355226372110855876273985145663429013490403077705880600784200683305811694971516938202091171146218286802523415650770193879092621477780330380594152093720163544265370700667527107232894544634676899237445753831948829222302412817266692304498336489127847019391015415983608795951023039015143149127177712124410710883858027644507986605053003645477561733863784057254327384482585911470373958943177772919319118493677866429475481776825943764773347499976700985272185627162359475011119252969508029985000407730968981576440064729823668905281664541621379574776604210986011773335680763138654617243138111769585444741396122598379850329921173483843501209372111861071971059103535829172188426461389267121643556671460483261278535953340809239660790610592421086477351087606303309892625268260905579268857313955937582242409433954845412382647842794457009439494175281658552272393265019039142578244031947291692708915324092941088791832447085323180742589057012272378424593052645713315165321819195923312169641047352484622550580560861109402840921639600457989161784103961987318653716805418086368979009230134598016810315187428072678618813572771849220973634571233511101311945776838183650447955868225945258940362605635410576058837279212438667492220595607320204281906213724298251656158350234641661134941366433482016528735695584967419101111327923242454408246080142208834959974115587981391378104912094954022596252835876674057058188066951530757865556225752137648987244109384688477758715418330920881609485243253516457140299018039268764885742233441233522121192845829014105939033228647288131187019889045794856159805820287310269508410542685985127979373974007177435042667638635785921796226310519062409991900033707392181403513928485998692188215897568865965269820561703819846653565802785008496028915198671562804312517447867688758354229097225884611166433628590122819601452829131218514342167429471088392583487315126588912477659200896970776033919543981655427860801966161382395969767163943275081421153051073262954813454173425726723179507657279593948540030356218543699407305973651264378994845891015413629935926593999411240760296655150542318621309471833263291677637966511403481368629566491357366412669130433847773502906892286443667603688894260090406989947717882886837890547023003482005949755414930004226396462232430156565859476850877177527577371991030709636994559970094427370957899689348690741328265261304579336629870593359674352845774364944080811078025374487483303346539181648763177729615141517027069017314818788190574759079520747208094117242962352026956420079583632129081704331191497540454743183463512286478938857965644669161822891317101494597800473372241062968659876187003984033613568360245950958655310187995328642364608808508500288558141045688593217592430838253877524381684205462591506097256861347536319228296257649186833141969973542627546995820461379458242522375735311434131674566284312161232670726398897955697583624333855720648608607493902430576616653625935381886755346274596653531293403416437287906146296185526434040004799612522214897749269627431236603789444504883872522367763818979329090403505446023730684609852536678977688522328040467650216966528609027309546947924426150165504177520370751643217815761981309864810620379630301744002933982653215149731188237565007084250441541375273079232520963756231257333908336442568366753389977162239000794581933760458645236538343281335657927750435005613152724279586973035267128877762895690655757608870357513991469611691021353866027411566153593525868859649532001991939905420207962255259997009404344633115780212612771790489523721945273439833111698523044564648298121402673768476412472723830658427135811910224966536776919337993785520952939892964208590078959889027417546518365887988980707006001834437660826333467459014500562165606143458917043172982496762521068450629837661009017242439758248945627340681193835696268979530103469816208352444131976154845400244467723588410111099719219993504019254493603356146424296468690654067337507483589669011120557836148125325256501645842256936100375403619580692554580851316561735210906995638142070624230006830192749046862645376259509483596993942146814427462494939298949227167611537497196496498962749447984231903010045358724394298825543242498767700257325693672311882082619802877492073813630571020259827226103439999653431914731569724102889187680231517886650803519005535180048507884314040940230370414400521667114268834552434279879125376866957205149013848460335610966709484110262648459878250165301477130286225626243723311766538612571803142198255608150008701634550740865909051470046171312850260217878045684465451913734322072193491768245657073384356294120806509129656707016740084953956822807831977649912561612389163204291552809314319894347154045948149962290639426835541990751812322919017584422242487700257671592303330748187254127181425486389334422648511966471929440681766583660640532538210109778344344724882977195028156993050717100111768241987258989365711939700487953528259007973882861208020951698337029389492372322953920122855588122113653710208832676363185990174905111115601819719590837820665627614784776620429124906562882132931897104973380210974313650357912480142520520384784315717768135109008822334676022225467277780204237302213813621421193908263433972919528077633903019033412491453494614513814422414360045632013873987820347375199058331583062214435625853972413303457552141470677706402732526563680533202410927013831021581946691504520772090369745892730419789854385517354499600947640981182725025781933534471191563885639268911811032330918743385485678627336038302352939650854954579425366167895446674617770090491534125088272992299886554317634546256462138151036845944129759347934032766277830325004152894649242854888688346269874432206519137784124159796002575936032723119384585192172069493408544923458513046125370082951727318551239510626437124010323962342895242841906630541721003714884517706104810153619256728395778622610124523503322720858960198557327628019485811933283762539020222771245318972263769225530411011116232326174726864923206531157684342865205399487558535641749678530090318931283693018642894091116704963652848559318788070081476899626544467001897160041100251906690182575849663359075416874565422113855059123051204428966321754902386132226727909659635265264649430054026898730184890156642013335794007929432332699106340034088401331265188557365507976668122507197745924813974499973263870925731235381651982265278092152379522065377611357418943378284400910268375534685229234406546404978624558685219166423640524585329475363627052368974002152539836492200892591696851342514887232392880015939769694133377312738899447434580804811921721463940350890048357219708886749072403589452698418189079464559036884853677777871764875687017297443123648822044489256858416976591107748565269983473444653182784277127430421050977406880145584125760683477100311075792659681026608943333602648706467391917932966304019197152551458809459236034136914357588886839369087509829485075738062406097938129577980470155311726900449279520585827730268123564693120953784479407505800045428747787799589740648223770649510367349588633682671100807003358314270246173626529350502430047662233208158557550714634265674822628089831946099878482117604987197633267753012996170119117601529297502037775398606754122709491476759569882541261841064651375110905828722771641965914031622289808514194421202042908495446241441148529507603178953856102673165639432549711266175711888055641953971099274664011532178201909438787309648681430610873484861973276166354246687813830273591902298005656161701641072813491249488487464772677241301059483148652998530287632885576978890535247430481643242424405044384116343845349539665836583491429512934961416523130749175043337933674765895214862269741684181207347071339706854509159910220057614682087944165495344947926760775384825273287660302625061021482526422636724513439093562487991692420342465607797887073931678337400956560869719448242831724354968176903748058108772976442587134171196100964177438527158460991854246057447121952612735464710964975259760541228253745860806018699121608947264615215289907779001306693637286377230807000761596314513778104982643108173092625506745596898645911754116908967780137588901968526542515709802224339421183003442543017491501791927624196649777502133870857973556749617372800441008158952212084404263661817294262965405904010588706715108284860816326772122296475500208670639146950065222957330072738917127657236093105514022876716252300838911944984444426591397773451375562526870318693252591791107148160828910709307041431626229116811358118338257156393801618856167339267724855679102892190188623178648691015874144153742711801408167395064147287256008061023617243810193024168106494267679627025470369918341003766943103797695201394446485654428155124077975178667739168072965185245906345535960896662723550283440721247613173546771634228404189198740342867186794431820837327823298148244547467778890052943845964279921041518625982117729400738097589917528667303485859534673063711059846126695966751130662015854947205574473476968093426888540042340930960486460090033028812673132343299472803842579572271228067066469458147555709997220100259779781798096319611972166849355088226694199274670936246881471162532057505528464478800131288874746368448517705979496915465699313227669875199760418203075414044488400310111385097836854988866754909865022606263291373199699082584958457798250301619022923405009435285322547854054081893114038470498947478644250559587659449762652649742118964962961663127096734486797972057862641636579418544907093376831719224033947208764131555621636841270803024481029130221661361579325402472001853689974876295498887310741652149018624271109763416448083378602483182090773358677937011550003655861638087125286119335414951693213359390990272248128822194724545153573560195696102783309476738473768107259132426236229946455815881649869941321949014899663543669035566399887660155305334203340853173969203155518047208977937442704049554652727002513189683975645881725660303059987687746334170124275539181146572976390115744823803268251272678454016088263616879973225363536446402402680335424104842311862657024584284453556115589487298573947590862860940726908894374576795395638007488503206641089774747057239002698614555408997286662827643901818015770973862101294929866454897192624149412107996670676664671125942556298637754937562640557924964951203608786603855169681340964069650288107962828780986661114250665945679009162476697403675998131192438441830053220597168250298945894191307338508170694059120905573773289986712289755618490186189716938429855309526797799810596837387303413913302810909990790969414972477033160192804688642991710794755015712973568267588380621235524376188312299924969885293731132783125866861838916859361163486896709256535170600122474576333368586151901738847727058749750834514863058477908925995186857533355227644900079898591234590027621722529525923657036445890660253479839271946053696085570080889687319410711854304203313275876615118579231591036082286095671504550033661134240895404107589946249671832817298100646461196870726739869952742649521599269645351060758640495150824142669151092028648216001749372235785130385147043595496533687498218275515945361573352080997595514303659674783321099070714105309924053328451172447934679620540743875007701369003907625941547737538474177029563087417208692168342746506516899088884351938193562533957966889918468846659304999484452334320985814632296844611268381517988385125138954556002927035819634075724927445062162100594787684581472231601428620649653166930928295772141332244693291897797761009580212775409772389690587385123723980067214231504825332691921383521049682017499126051923804440045201876453918759012062378785941148948547241239256099806152614258923560657585277649854919855310604067452236779254569131526568971872976291065800463129862582317447692817651864618026820864804096416121474762401130862128571792112465190761864003076958824074714030167969970146575296967271916830739811577620728108128329368260048420850210401059308374990244440345095032169597399921503689000228805143767864180267651201157094254277611492678140592567680890840013307679840383840014531882696197736750896917626022602231537808030384388522021014469768894428028719429248022752274667579613003778831133945033287948392932387023459154025852098285695277133803570026771845260914049853387540717883933033779247111422450167531430232478296788307071267378693500479752312145274908265775993468918875148191746043966533336821485871635401979111460791173589909863368703968527440530063243058692798762726482241083702570481032760037460108533651804222573876294074466558265857429568817861668207929722660330760122074126985834312418317727634173410878040224074830619828323139247434766755024809512558515711206447581797138631914251519209656064663288583251864766069000038841862348206135907768222316246845952767418589536964067484623759431746014015412445929167848331132442839591378054962033578950632525502453493223309653268931737065871883723033995954215170679871128526133762771408416391539462270054996684328170521514922709771125942268372506017378975082845219596359380166019281234053392816590594383261025097247752585773196308377440019241335509213851577547540402265845170887376189078420884722789418889121629365750678061631769330603443434918758591014213345119225965557097592714481906407559230094239868540478304987767714015011517865433119832528290117649221835779280340608416430226522251745238782686957973654396382546365130420867073806606677931096924411468936630267052720161972902618711501546400432446961795603344878263804551143509565124396688889952022473084730060566079150377811701776516320206163085205535055804038595300149423739148241815271113205895385952697342188715143929463370985319927734848689516234209322179338651200274443599959353505471901155420724586373077354145321556810201925382652341201286909958254768889785728800505755924280642606242681143847673058805957922950593088770733582165229215834649997548699353738742796463392862061166598932176272640566881390706461191282268553613658273986078276484229203861167100422413130246849059913644517556988008158183840408529246318448060604189293161112427238860888542043943079332089312602652707717663769711432476206992793309502078836642699625683868153014354852462548597486102551291730363542410912497692343874262756138485117813432099004294753114863804200398732529390921439182797086140143456654634749418295262824717280277596497567709634447537977980116950212913103581613889470020344688019401007999930336692778225838829702095942132609932883803046976169462441564719217186659078169419755806574250111148613815221234163367297030572707788612473097539071456573387909946688355832133810761143641212383724569326548865240495391227566737089988315959221890116983707529900498007962257465055866437923285463141829558938740181405511478688551792192303601388199993802348094255034812609633242722068690821525166060039829430190613978744635109937080783327120347542159551469221852689051324417467195744641880101318279126190875315525619252035908857509728316696741454838498928040918817408146818100889540112185686624415385937433063021418057774982284812986533785375074312164439998547925134371699210966855715344102269247274480647913241881823207489990885005859786731855460854170537268255116181670878859590385793617767561127872672732535523127558122205901345839922528301695489244962274876144949594661224300852640747298463417272924418147896137684165732342137767866018610804041660898842246559803980035701757341942991042364948050992414701921473367801595163506704723149873114026552432135710732561425446718040259157173197344590300998055710958579155431355761684668411674405817620499106045953647889157780074824391506557242279867384892099807186450745397817758413245356573436219125765855219401428193007984761427135393043285099172866995326723997870305337852473132250280866730413093062419661256647271666186025750990065400424907885719288867462995665229406473153169744998269101294820286862718528362046607908354359722066041727474029892871578570822371877720581826314963360622915295526467650034596147177699437275409099860359661968742046981436623922446917229072713133522765071720255889052903930056925751190753777752417306032699205598088200285407132928167389825169570569833347772753880601527963215996891903113502937641924559981677197073298384898134633739959459593699866093258802459162026123087352191531988974897074144694449056647277886781842032918734736706857047937067171839336520176217333148385989899075159563968244343488426705994783574041931177961256315475346776677444712333311710801360034413768435397899482936350007000378992453211876295686562812862744937894031080628945713020459350780469911201031485177266904441760611239593066644228696266646980917006005411803325340137527943355244852720635996977137180194657354581896355545773383388203969145480049923308557800756791667158315126242310585217091078898877251554321936197126370282437265015674451802618915183965177481239943286459604575232197944295479878155801963777008405232123122529490476000024518362596424897825566552436469910636850150333516296474550158174107401872730720226610500070978890141559765825729988060864556898663035016061087065407254059710973164509684940810060019220271414388310780215648090599771461153313688312890176434769427390995010592539106900637597021669324070973403247767070283066123733110747461891987645965621198424080774635299280786774353966534814804155137297159512648203159130275060392828183555489835877388208394003997032246183194925748137601298070246842941011498244754500573869561827965596673151726832441114413618514492052353916362764546553060786031700326171707816763740774340584978954824650229348127139921094439365980520056350554386204908226409514964731410869126643278956165681066756290001739412596467555594647089170818519149928590897117924867676296870583218564397157218800230194580925285180421361186084509030851969812673625121303770919669508780485296589679410246806170141066591883497729420062559973914148907442347025430140274194676871888669915342426442246349068984386233055058422438072043659597912594240547531096986706567833068267673908798938653211197681289133066917593595671955289860770304666267749772456692238722695206508039688743934911311428353911056955403658453711820237612319037321402907873981718276995962147220272550195674794304458897041316996414260224531766058200415986161455397491813551619138803929179521648472929417255939718185702591678187604672895576067685455408966385585011673585827306243938440117214311715081342812149561830967809800123534456260476933313715208122710110162442761375725720523234596413189349979460689833963916328825271280056959197631284419505201039813450392137798797183440261316283068674576826166201449248306908977692123921074511577787097784555627052057675506428263066096165510518742201993628493322431812586232977988613322512058794957352043349670183278461214457099756246770419914435142960586942901128758772889968739245186682377844460752997441004126796526515749738665742510678138164553483012731120711789732440622234254039848234864042149598495295678726754301013072020827276357282740591922472315305760192206952303621123681821839781981642169927540740850136458547375684735452014234965378150094022016622426056692905884870032396977540055928651730681025720314390884595683365912010077482746884903441831244277498611883547355977200000210419982892856784241515608861771133455084326597799647124630805768885453753387061746274370298647370152197870798620002661869740609291439442014719318266244982353494842332381845205614627581368655357870311080142069712266641354234666442599239069556638180203402308718989587023554887046145288984160446606234288078863537008392629585142444619128116595816509704559926882189475584183347500234344206674773528969676250139522783232689742803179237468325598985576722338962246576685273353733917224921741731425118708339282038493469208607906633142604746003435189277441687146190632693309774571422341225004881392872630416924890165341425671528458196907768807944113049418421170592986718931827807121975645102102566931537080873461713003955618983317393258879689600913005166933414763049525804638308525326186016871743660604284725006563304436638327954757815283748622790279439831808244939272228530985498726852850680524568597992209032286515123125043756811138478526782630249753375326951622803770851508425992096168005147268243064251453382913309934824169437550645876390168251788127861648510256571444486761236362072654616699558633775544974538100133270091569472172470690194189497056180845014210480263225916816868037157816236948570401553031316867440349695914787053541879200667876020608864785185089759752934146231182664459836791296736100976976767847171255630082443378821650024622851777336660792218422681670481543900653622827360029900290219734288043646828564242395866130382786889049480574362826331432447532301030357573698023587755365619978777519062337409905353199886679335821790644174179593553814254045037944469267922757359299336158051784593546026862150286842437007425130008383868165150684885804730071902658530969623619253822970519836100359457507012046083247544867421121605956863791389039025531653623575515235473913582976683288744308217632549784304204978891469266081556433632710834046027623780195645485361905466957645238945171268564635371172354614945144560014519020495662754185252981558420099852489983731295875337094336340826977255042632973194209657425441042638463353647626957346319428737300151384319113052776909358474672269917760475989691260236215378865684171655187738468221498841539259642750942209808992953218962666654489756100226679496663941928811858378306970441639665392616130071195889278656047207801761428802602246026912218206411627765272992029387680524072882343166494434214618454733551442228018280975991445012696118890079329126909387814278904574458785163529298576290508641686795206387297542757104859158025375030276331459334882607546144540741155834877544838311616207034115360167200577531902638471606564952079659539480164735369428777101916003057007795203223368328529155835820130522807181960466896604079278982244128753004030835103046620608413065228646547963533603546154218592804155162757800798863784770795194271861246926186221183244082797727170577195822399525084461611809304827819925849311279839290191389809698153471482011306186276737769193588753503458039243997661692770238269757517122965900340947299758674867413517594037862000751769966893685405444863201225199677600907640432731961598539461108997516784609383294063405889138240922475958440139818099927173357878538937749474759816936696765370142176825197381079479053156997903847709719733312157659451366372976289946413474029687445450217477465839063386570096238028388424927376348264901120758444770448821938344523952322918896595491353783827148798020866150876612867556552860380308320081716870646579506305411038202639892908410421480688907085744003837680892256592383468794547814347721071348956158302766578026835587309544977364320447925010081806940452119303416951776203854845614091248937155758694634444775069982536286715900664393052911926008895018818686612167688603636874326582364257009584940549525778986786519570448229428214546380877640696734948544051012338336621387339851447217781081950314087280906341389083447617285718885762802436996489297638278675001485458365632809223298551748699309467131052051074121092865700162609346017302681190085449641517209310666362020537263626782388197075638132698939204392938624735636918210024473448739236870159986943224605074907359240283283131430813975769916989049008573749796878749726495407212853886873842511437135974070593256832406706686569923118969388758119900211648793800595520520358218980987735627664704043284284347778242586758275620702450942513180430678542802359966090906852788687258844478667943877102640879255475609386874624152185558936190841878261136446584543838698450050938098567542771219430929297773409808427744437057946375366805867217297865250426755047998793727301524543512928668468243048441536060213623354761861241590278843166692876944479739393648971403132035742872539352517540022988899191638878571949052742804945989477033456330787102661504889628049896282767388007903152168548490604936009851065164103400705101491496780285582017705191762715258696435726445749424471193708162799514480022340904416834896648967934093348341345355248676058147761662104650855616721106026638263685813947411270342652387509081389713567090937063324611138248835577235369787885637184941057716040940177044572612730004622003319436518767578718282149536455400777829393764701452440313978109698738719053874370863607617658160989477922420584159410170887743876493348003872196219910822006200772448793924853628427802138788157165205004853721162195791097693539459822934904576705104357772354676714612187160739538040190299741238053395574764369705716172278674258982931810438236958377281937251564077545200962434158167072245865949891737173057166199620440986791324129986651275929616738709490649925279945911890837832110894842181019506112510140226749890600203447719249825171385179350681217607163887529040477900951959471072449827822004160102682860378173742743833666451225812566176899489330640228270576761675385067612388491880783993097793479918093587072591710732337574111916328886034742533283080669163581913547517796800901558941138709212059454981716889082090618829400585161167552957725660531919171849258976385737394523048870786980510028065318620821807884076905846303183228609312866227140490812728516647001860366608321712331853247156982872691087879806302909587319043307840367097878625142922726328815499732063951775595064780549412816356606648883838660725651620911302089331598362488168470746731173560991154827016951508445210502372155236592130129822605225614421148267563381861488395473172818522023964334090395193330178566622009161186434359856850598752781957284755070652679873744830412931918495947398977346006717355940424359735571857847245302633944140094476303386454230911053496334767937301812851882660927736711923029171095702980303480912307971495406153837650012317236862488685073794963725681899772784649118665700477741044693671334097380434369152802848654170839126833904211617009820682399622871128760006790333060329931302551007051767615742908992831652237644017468298887363908789119512873390719880130656410214436302903640290246995394091750582702885707861530796392182679678654690420803923942530997353321301337932460663050407441256798248966662669910296153233726206115287648018196253259861267372246262965861821642219879097557260379415712894683785325853347064761277067162730501435562089632605127814360907159717366052488968247385820927028450122870130993129134006176401986579958864740339478925790246895520562774879174249894846889233816745667989650560530862087223731646606698372430008097408343694199100592547315866100259930473320877926738561342071769110120956995263415754750834028300787707322612811734605673552272001566247403007366835236622769212195794794976531640535638811326811672325767955981301386264601180990438606894193409216157506561248222438518753435449958239611039644461579038775064400044082137147037252744616775842819808307724777564139218811000899658851523153744711413947046759812729333583507934559915140766064929334690099349880113439549313245140922006586496472767997557191256743536653942395962348592529847634380960172646868768464234097629218167416627036004386842161089817596730711659955628923982384900264808984608719079268482777555082594556680459744154943521004880739660766530793434844808784873271018612933257193766977590241337904597490547099131424555327493754544125998998459617221734620201821269888711589019613021126863933357605849712126500858958144333520070660347389305881676820128978855088053478393226253937829522271186841275063480518303219435163954641390793065503679716643856207852271823085790933028900398062179522394872298733508850789519613607315706354068346834777843680752874379860400736697618884819044903798889419415488682209825012087575152416853216808407159180535723238453505417949987453279575098305433873186872781623000876664703326488732458238834162721131601260189881595238527316630932623378577380029595383657888426933267082738550041384654106885833968018811560878020883375815920690012404844218741276227302759417899707677080263300688186375068953518856969335558138199860712539109561981641844408649150398422053270626508812107239602542358759881645714495171543067994592141102901556054592693317542840176674377807237096238591176869740972266586280272154023433579962474178788648135332571472040202780397591078772676442126588671407151661869531666263339704640053836402041392707383540965209480060756187515570693389606016238462574215818996693182208502502795980080326627421016868063143915269845132436768396730491972552847821362866786354302409222501057388600155840342554291362341341356016216028470242433271939883659842701314558798487810010573735631866685280346200611214729224689994296139450254044393969399523700097043318077071676905864365300816271771372889204728156195406120268838468539149665289325710286815954763138459777957791988451979212472768368362426987668841508638791919471026732592188468759800558746817115837383746799469511277181539107404563237956915307949594216008022133925288218709768516490387349435601604988052222277664080367618152601508686576929655749182978091453007675864712034138430967634333433654223420920507802243093761454323105782220620938253228465024693665611357894569366226874540520106976781697986082872166845221869844892328245089010157354536041961423888914180817219007023246416750302744505242039631302836636747570532931089159670787251772957025149291339729550994335182081267801667813901770707391541603759874581979001658160135710915256506845977730669178837388932196790228920455341735080189094894218071175456771272916690497684087598397288848273866840274344993940550008697302943841045696039531802774622666333359152096107633465683704528052579002063040649437967666257664846966334888813657200878459455087341829155757226784513244593918988639975654951234780829536027586566770943433864141732308411042775997174356867200420585977697511858909212223246482523762002162346797948967414430052688547902970985541566414177995901135052433410750852159061614077753084591068872344023983113911370633427348701564973040393858627694003083324394775325717332994406630747804020060099611668234660520816068114943236751061311150892200014751099487497221229377195623847801819775097375085083610108334108820151844285409818261347918382486099129860295013154540389468329110311489854807108407447806697662420730193141390271232906891228442567534915414179508147781036002016765731397634691648619176022502939184323203815523092915647729380570618240608933824970488823287986488879133840234428880963998980461646887885484867644946287591110425944495843183701532468063810307905808486402541141661141059537209340491574885478019656812728328994134259655623330625406026567790909284067330924014435959542518098285219758721814805205774194074140815731404389182267007897309537863243466320905818945991247565707333560691316509577959432142562746024187967988131812225972920391955573208508705544178521845657426800938800656649333891970340064021958874303117079683608932040876590326463414807945177255653214999650053054185548771003870684051814903377372021613782319862743328408440464213428271270346818557121848951729425273917660709746708479488742380178161019740040838982429368742002325115787461439726072086126048903623967650749155437608431809638569983590904025643305688066137649793565993390929822179039517584181857278088561553017133871441946375482055991845512966973871173337110495717190592826471157321189985721241091642662964040518821664185945133733483546850636448893808540435360118049280433881417294308182632825385899952550211160982803847344164174684950396198863246646041016524350958379673474991813274956468735786247985665545646452664008474226834531048218950255002890999083668742439075560648105457728057378896697496965479499324150692809233142789714534065383241126576027674958780747813458316402854420025728980519649892794422870123981858240611977085154691997365012778644793375519271812390624088607635796575320068760479754978818391733438006704901771749573487884500838984072332882456836966581335873942738080004790087113805627421400870363852358134446724920114824635565937673378463897276189881409460326923860399441241119552961101677322196401258091171682238730788787634698465990413556351061572913453079431534602757556315211700389226394474784565600213730354587346636402519377993374755419095184859553598214786764161753602002583937430686103192952787280153138209363672345102228530475322990886292603224576342363027887954008448703341218659360544640263262142893799085153365725109851581242012312489093514103598176064105130243183037976451340650602239229218118409430863826221607961147129472028256999703279492875903448093627758502164796993636961901497765945596926308203037852035159582145619365211803554369941724305792567242498570017241285655488845305162426027453257973744764542011203301968951550740841940050396740926565282158502762281879195995274763637389367493843665307807323652146367420474004389319771411254506055026688118800065566420097453127841584633939154849787556586778248947475884708392382856559690646455856745950550927189084534698349462423206734581224155860041953369138046788233673830532454078542100959154200917515110790399082379071052538013979591476012078203006854996328595405279967261009330290381517677490922907675750065355382473768702916723223144112133744878271835181324116534973768658319486045265866403335370457190157968371912414680644342758356945341728036538989863741592684954165075475802511996714840120451401770423412452434513859841215302929458691691021983943364309624703178958691182618799524665540826807256229229168960949966015920072783948119827412992649842927199183622967296424446608052947214690100101626543716120493009384880613693607406285587820214037731272374098721573061784884005284865070550846798408076688042836200930811249952343955730492457361800364364552580132259388269005988902098180680220721685315611834790164874486343362819292953515787764834131889828972036961211480983716387540009204743179085597448091489327336793763622507354849458332059219298221392521088397783195131527734197417112169197545686848038452144710266861323991290621699862726899708206452109168704971799708598860698937495548161616916993341164911235142615213672946526482975086750533166996777736166806739990903940112316456592744597467301373950107169323580947487065510115839926701315436951383980345367522494480950126601075167583092271281604223365407387520007429308340861619002866285468347762058275914412358514277718261089883385153612384743337455553699392327397047224496039787342565805889087901584921646271708051484130242845837298667622257700041832080669495916810027472377244925202514786252721962047571259690874273934322450580687766404971900893845642731986572983775755697149279939358716187205225118671122209152732210824321815691282173090166660351200953750685424393312641009588723719653774107063442904251962598221485328526116580335033202240272408580285549511423915180659428406852536769726977854080850541384141136471529515297179471105666499761151751784266553326896789698931432576249787599595347704222698134625262845649809305745557591726239746766147572708570631541840970852704044597193855188466082901562546388319519402870428595880607260246914592730421061498024981677554859476893302622732635970785358008033533067019067384844461760661901432395274375914769603051623969669053923900172474486419906631332889494760394989296370014741006427181750445520072531048679255748808268390143981189719177735286141077841868280223069986547611456911149649700452847749258524585053822589699058062886552310929462467973841967531217053480992908594246230634301394158072734314416256378364768006938382042092015938957484069389217762936320866719124279399395453728099794076471738409558419147458330090890868934009011590651382129128374191770215981471503832990902104201961820484239205861819751178049561153643548109783120406903820782091311370867077075336912209842250015796012814656482809361007917469644755636728880435827432360510136490469035096423466760882609593305185554688317321279973952867274334549314689257484940791933829368132000274244187096367641212880570530042644309458988706855658008503974944573935009860616711005514921643514249547324242056254983610468868599709901660512498005801171422256295271429210085097762614332598182232750146925619076268001438361226000779146817767114624450997684144453227995677474509786603221789432862065683563161556465474416357628943273729834303946500434514757213491048898978008205382610053952599804507631148445442842288443107584465178521273007615126244064107908357601242452018275714509787336897516040989591471227668854108981166257601619905470833915401668227075705877733450598143058893433778160311542319967295294418173867968582821251399431199626219462183102255582393936213220247995357922879896133344556675585952279270293129024662933100470814935850368811328186264868276259153281706942177746851396104415920474076830984177031063469531999244459939956468522501405821813997847777789227479452451161949339945875061902744452272055566141291117698709886192167992268624335338994319922333856763351583600297064650691288046944550417362798746786856220113376052309485335081797676851738284341258760919987485681663471684756945318681630286966970906242149938603580877865772433653164798404078103523453573659670702222946195170834221577985663814803555519176301326300311998938436914064821009975436173246481247853384394822876674942145727947920476766864544614918085764128228217978876394689235191619269082069184583975003668078627647215932674794709955679374544250430930261592192860958044470884921796375248775675695745373366566597709699645512164239219722636866527439482055783469427687908399469819766531654486899111191435806067018754460366542892169179871545501154062331597200895136057726233204414225080689507442132420985784290075849022701650063864022032239709484650205008874332972204571462057017668526354482795557165111125617606978337364357717214438099099627521094850741412402217781863635107965426798138836844497205423758208013804303958840256486128217735380298660084756962257839284148079277369012478213449769659080813869413790230207280306637238357180645661029411645478733216621544433621672356057854138588205617512895297201626591956003398652618041047753392743929509306627649367043388738277897621012579525268582260572913429500153394336888899276952985328736073018557262975729700951326781363315865443045700149437842908572856405216627963337378826207002557651788362432153763052812770284049201132004324395832456773190236347376644077712925802678337591064897651463473578626663093809762871384877768728552222926077638188949509814709796430448000990936692138777881867025513902669794909913536353085549505531923453700792493648581887266330253252958225817290308034829582392242883076171809254613738008799354671822801694584643070051689224423421219475738558389997934485953532425754177420981326039515725680365253309107547762189093029628058988826622190116814083425792344125006602186070382182811644841619243658262092420003318767833117804615094408623144266413553423635866284739015966248093821588225879432250978984307582446576443348682776032405157666138965032565885305021152547286070702702607191046634878735810919804473743146229839615662964787533971120441511574513480366232072950074495622006324301261088369349282559174478685077869388122902750902937593100736001557946668716580143118557872377578043355166345350773274677469645074834401443464937938654084779235894898748275550825782452314774825857911556891659671093354386222925035009966881789336552041665452897280075801453818658851804932581940362628329897528321023134963165230068784192291956637941947188456765807889557155999129754984498847009124586633513482565520881485080073919954426385139242638346459606036750081706802469526016216366194154255600421561678855050041644644612941835382224279959715552194651063847277166272989452803286707890001087148322196178009097161520850726401801253330080245045000994566731436303172504228295737808383435051227484644423788792505119377750067048309279529366245110462812396099791502959648759436972937784453440408140778362743737416255425413420894588571717095977306654532993293094059534302373456594449898453452687609629836672872554459486722858933118468818431464091196973259777121384980757156837514499717332010122079587633868554615820840973754577169456515171517479758642119169892567236811074812063428954107788086385720461371378752465488734016481947350577312880099794267152179759926711358227861167991895186287984439180219796481241823718630526664085800629116052109021608432880549146981893982872729918097385238998944939680163951742713303044702448560581080898113124340214437878420544704718988546816587358540842421688494853675470602875582949530594624050519325702533065018266873341487093483398390993496929960068033671751042971783552598317414996814475992153420070888258468992962932784583253206936043087107746043504530081732618982820011641989188623362275744008699821547372552966650982600344279330421351553503737454671592917721035833007685311690304588743925448769926408005212733244968121455410044134216834503820062276448345771624310410054921024949387636111822884909557633037790477487748803466069921780979639250013027977282981559349973977212637215070660544750695785228520162301990734398353627991332179873737775839911980485636968702939757389583044268403362047041018114613408096046937820546393130132922942949589206206377327284736829297465692843630101352972899651027459519096253301119533504153021262139212382177107689884715524093444935323744601752188334060881525303574020034243987749237415750815382527450383956006812921653057453606624949768259566439607115397904022159455496484907334259517464908860160962422244734325821109181424039682818897437025958781356961288263732693678472722901794851024866255080445630231721367906284657152818896902146736883644915640123490893259451220596059120629206746210720962421258709827067045101780635832405719020863066543118714934606543083734015724413844824488360181755057705966608322700176955021084991042819443379548817003224951419743714417468599876919836684384248732642826766276850290183589784639693886738930467356673683023315286243699585217400049262071313495507705020801990387156177831439666163057869107301518185271709244309790600664471736397636805457765052307474469137879894764505968396068657009360067252139187569807287720300426539887638768164609644235258264530843985817539707436106317405326602930430650660791030532333181483634158606956716763883751052383961311626765117456876397681846575461921884012795835906806405544796775340995454433284812547480664184969751201175554607836782989618169887074042260656872464364696569175207632556290322699204218032602278741573598427683169174233926358693184433712784853778234328591989615269381573694267295156455408194133736864475447974552526945714338284312910143155777254946643482254561266504784268514225406336278349634918664577233811015198000188560332320503410374718841392093121456074946621444311291115891698492692404177929041259052762563526095787253356857553330297570870434524614713834879973707438215541272644839581715405929873880832082277334276198165733404230561647705673798883176079769611284682309265568792525328007605608868900000468832254925531707198054039165913303598012797046792457760678633094076339518463087390163657435556830887845387742502229531984926504021452479075500975641813381731872212970879990807212459098182536344000059251894421504723795159789273951550508298979547056934772610124703871231804007717503568505229038121616270664375793409219333161762762601518639300646304110623394636363430767869469221735171670193255692875164894325979515032138142012771501948960763932314524536161296470468685789155885108075558792784408864884711123276394029891321952176071155858293292010255407014506414117732262098823960741700856508375935080546230011157969054293349995211705829197278287709466917039858846146311823565216760577749512403777390234567931894303545280298510563973271919620526095726139346522810551363333732286299558683270752235363113828187270888361436506591493793319438322545065077875812291223787288366244738234088508152629046180668678525905914479923992009426545533504029067408362249722872395753061286560680164831054507202087190278855067094005512765991387043928431323556705194353506729777983350198777999681434366398807099449074147561758032061212896901951680171522214167365836388878104534795392963351037947546685108709626606136402488752489910707108170334542827740339097001792281008775163889746481597579640690699961661045112122928092226325904269750862615237344697548173359189033964106934636481521150632727535623856475565700874301491824451064648729667794055481152471756391189022945765672058016486721826705405153429994542103645448478168416658749049825283393071538408114174759511299573776519770150234388971820387165492270336051597380597136971484304596902316541347732886703550598437093059053998242574935849108699908002709578936357882208017472700477692960341910183514498061410164971697976411309856160943565790488282676964039509868764556522457648705658413674100859240763729022073313203183887322719094315658454474920580777107322781521552782826235267846566136266601807673068915327744269460869778683211692786769089995534139509037313495902135228615261420793245035800449124518953582442394857929554241288988577283405634385975732648630492368809765910868248983605294127169183318107774198487675578541883610413320004993364210113901885664510716346743223303674472222100493711359631399927101943606138284966530175912362552886130654940214947250066568017698722204951346060555894283118818770908249095666633810382824978100587262643243353019818324117944574946085409477434868096498593331132673867164303740652846599307082705533678859912829577366381871411929453063809647944975713027452348201826782696068244385324028706745399211927482702978311203792581376114014030257810979643981926327629749498246901501929025492873152719625011802102933916355556499804767662207664224899514445142341512769779712457454454232023991367390142541741247314248936052854549716933937581610658195442566022829941933925626148749664283397301417059603113816475541201837345565139610894015687938339820552527854661447704400560857940603203711447481425184746731446622256476643234894388414547178448710382997607403265176754651798205772436592705233617346162717446739229230237085269701924186141879467628214603880215549966929861406220432831476092291747610159891641954398167916040732712257152711978271491396308151208367986071386698086657777698259441856475990101111635643149173680979165234734291408810682385321323774062611198950831111846275561881705748817960670799334818588766122315181724484924055210019440083149548844857043678149003405551047636791698017761256724155042982802295492496950339151799704388768913596435319209530580857736346059696136095225358669941333588760096546202657674225064561587402863093299396464579102452999145133493565701568724540341586319187973870541184112717029938540862759320377981440758539680964873489153899170163847652714506227537382775799258496756200434410950404081044302368088473150507136083713869454109725029059849243836464009570335677081755850362144695998107291204884345408371278937757284787222040218294174486483146873278623096550851193833691403117102560225433652843846302174173252712724861028836092753155005945804962419818715808551706723935301328735306853079231740532851935882145239215663253655861340343327500713233738646174275682778811166717691538043532376673256019310292178707472485594455661038065398419318089149961378886869125376183965578025070501247390289308789321162896347883226275338308032140252544417233722944382401950320743923011869604990540825197213660097115937898042163459854992080607061180092214930410932110946065582924863935904648715147878243374325651068064117271036062149145301193759486876565084766973141627052833692635804132001131063279734151106082567499835504896499758995012779764725522449039019916578691585941838555719917426338734413609150388628282536321924219934585371475390682257330419663755664445165590967433339211043034508615181893746865131292623061855640992459407740836003086321022005091002846182450034300313661615602842373363208276312553918955338834999024266210469485904540589005015957384608025518758291167671571894320779359474736802453954245602331181686469410610970925658273302169102808691788758238346121721315645141345003872763308731317458432032130408918265512191918209247607095965743069353451322920112899444182821157229244077393118471139756056108322812030461196227627926662877406214207658674871494912145202997997753931798874983147592825181828874728577918767023580789150193885399049007764371138117950477831291181242691809800438149742526332143722206936737918465481234874653942848356860824404931662799933113414274651849626947455006116029085184771457889552110938869934210103085946317219722637092380925976162698225999437735033762293038568733493641477638862531152810616434473893442564111801809192267011975443078942203203309753872622145276902163424476039866477637630481182292877424878737471222132437788234927173548622168613789161494460277747274777066720617029407580224158378280445604835259179763951278846884254209209267510131525889553676981035094833936392330823377469838398420317095112877902079304397496203422688411995002731982095805136071918834908661874495361545851341107040479295068475835479640289498375539443564926749140925969669838289421958637990321823863023996059375937882227070550397993913469053753817546517745207789510738923596132303689033202427115700843339360237866118709418578772947780563488852105207056193906920859556278162083400485049806037091512763407615355968931167960764549208913166402476675189129598488947819342121666785091825433016129875141612300445713301312967753105869166058497378681366272804951016918814875609839117165717551120760607692497563986384156813871439191877826214136411062764262677450875871199322460119003453287134218476527951216178281547776745871092573257622372776865147142766244547180001116028415256628464048809679330333332952949652255988038378425844708373135864764584372399372081455029958439779042485404494138001974945300526200643544295519735761867006397639886205297278022800343634509187627896741257773158824694927622661452792735879612897715236885255848614255522047451252840152491335287915215746258817656995542519969536819130524355071310566023384084165978641764905200884714984789846544798898819788786857010697192085517360024219548813495105589996942088249024315470359056762682323368752961883648007162273313758945189153110133688705374490977659933726156126301127456592542625274313867391619636873193174870618957674436332705208625400654352492169264483653030570703518755499404674971330831194919533061621233038918858099720156598315355156727474647908017228862388853852788218683268378623694012822342648366963317343563647944975084939875404160781549652070877677394254180527503190516562563183411682501469259797638611147528939506329713238571888373299916994100636365385536361121360389569371089952679982083217302122831747726176993256879656466918693361182534148686291024893070268178031108147118122674320124881411192112810230179031881178885762386486693451115419304469967885126614003233264295484991728143710762124618144776821447627087726882445277049604329013289522020555013321073522296788931136726536951141671053556234556753907659672660277916948293007969792133998235044035746521406898064951063078522015084983348950564482136984547975797841998748505491315229029826998172165796833909372473203260064775884370413709209685663395464027033380129661583822329691331251392570714225500700445204087827976141443464319044355084960634681988511111333362108980561245026355751913020529895055857283143641165992784728871057538115259147350980005284334895275066851324248526096006166313190467644425696245641174067862092773422900470088827147714809121377597322613964092076016152597593297430213565669047821420340258371486251881706664686537837951232513454804570725961325982069308454744925597936441867584966699883280085625683216039368203366690920861631749262692501996025411508601321162835259215450425518875631078044509881795854110658910858110495824420816063134771365082908820797775268076098768236041020645598440483085104169073390370225444946134593141797895129331396101643702090081716625726412393829655741113120916720867813972223740927926860825711992615156436823932908211640181425139135163613141110274399957474872798534135284866316187910104645071895157063144350423781268637288912319608442659692706572375321641719882446442245117105679486335354764619313693535809591424165981223953710601774038839662937395942393246303652913275990349834758202021354397982578484449480856741145583752903554553211803945685655266317142867671139991394001090990111267862562968433471770157635831145966302250275977672439055571465441712524235471058268805176456339160238953533504308230604489661841054316042384932512502950894628193726543640881688351380339324383328188394184090340621299716731633592783655244938900806116725911451896079666983511596860432099249663392308587515863225036493987678550415140887564396512732655438315564300639195090325574309954464805487475659483514468335186962896644639152656006236696506433487033776746095314009738863774257301006760987748967597225430578900236434749647831004361436262136208183252424460320847055542865295221115239748190972748161185305297993655302708719599078757117624925523600290510627728515706913792125186372812287319222380161827487867461648082151712854914857900007475762714075045101576107874894891158779316590889317090883398784079875793019911725200322804144750047977596215671119984344742839691895016471847014762968394475916097721256899874890890663584173959094720965429417454812466376555327469172857487697038042707835549239935426628908293096275481226626127939792870389216770073807727614822941853185346638834312854172570698367630418981814075179315308459857399090371582059148315811563250736342817004007790344625198443165688108947904950606201333328265753810775383345176600198820436464453210231029680110531583238500516399936775457928010481937933063231523647482467396516879627900263061140214619683536749231053033118292395497444572234987189774893638201027663235024674155997377354577366561920286803730303949090948463677131704403355194002332632249115826384206582593236791904029839015897943633788079140886118983343227975649956725498057325613028445548274348157756512239884688784003187251732227147851369152475452308790712049642433865468552500565359038815859833785302630995376029744322460392196817302284571651783698849965016746300260581722810136676849260263096931554854218963402051343129477231754572024678734233017306222103807979099412974104711795839319721229825294037995608611358297646611427215302018321580128087925342880263321067703705681299982377786643058202206286573711084844784642586492117861408980088556517341436214183834386640801033497411354468001787432317952331765804893146580004971960093587739540263965789463446905086732890404621560157420224929226373166482790179164163156749445768573205294969391509171364305742387506660185667533745926656807396921689118592993765797714072158814381342432325055489751694937482235532654616111169031098937233825346848800530586557349988620361053461436659576025271234466587527684359225429515078794637262813724518360917416530625770503503438896528435474752578314738157642597259644020858642693729582703547591883778928331942641153487673865954940015931885749370676611349071483920922222559144886332048547652218714997039065434313565862987460470101669477223170536831206588759283013320704479446718772336012311930195801558220740514044655795352527927732506343252325135972826172516963943322511310374851173867863607459843001559639316162443516530444700252638972868030565725814703685996191049169547672605982959626244781496842004520980612883699503829745218059768690025198320886426434025326840790187012525325301382320095304865626295119393901633988684200527428715505136551193335089583313207962693124766305902926328834910270056545284164354340520341933320969298184294665703968499696267854206406678892457468477264407454733593747741350755130611063476572831330091513081861181586053161760264133371436593957974483591835140869125455676086293284156703214860913222427087035610403059244132796673510474152719256534738816737918326762700053685739530306486012141144859521855755925963956339940278098562085803505792208133249339333673497207804071730462469543210024977057564489133432415574356755174940442569795811265262524889457729375686810549986436493860873234216841241299112411625229235950281379956496668411095198178715417091554146300955627592185974431544937705464430984893183557541707073380962426131293600936300834229493602882914769783971395657852470639013355567034582884711970537221633370251544564272252896057637692097466925683868123674030586219405661880585042577007893386465148107735977322269562084616954114427129504557144784912726510087608577151528872859647466205479621328937304746823026935865735156276828074364267761822110458308314126087957214289782067854991515853008071996750348780287502214169909334266686781497822147289412709762189516731081640797583046687423277334771431763309342584799465717262384950900638452227153558960556194044852955167985061028891902182591242044385132823567113788689135371448176381004902459225802338293012404675573823625275151715203834101047447491312849688032697361672453543576086567293021654602076064563234801568786520337797196609857502316198719091811646018256935288841212966635036948221888075153716716143064920764209870639432453592500494822899147793937464461728563006954761962188198773812391212630537922444995105574299489702432212083193502972230108210313098630719140016224537558351973058954035091028886130108450213450681074033213969146691597335744612810316292746381773420923108755795886700843131096403669313174884351655256916340342893601268855232671278869224251465676158734592816209783298475410018799295580877288092835425465707758275796384378823792039210561594188177482562265688880999425750467465025148386663629776375936119687548169426013940625665021240584446013348934044733321655243287907083841523874744049193077553287329727664060018434453553572367025847900730469386894380051557132549805400593878068465070177877730761081833333661382386344678089637474955945315495308757649663616648035352562372921101005176894009927861123394024700835525360586641496372640857289724388959563869565667565519359248266393336338664457460303909331029962339557752301558422668639357031466337950876673374172464647670384979515766798779515289411334291601050049477310403453438974536217229349079034400976454336437690451070410352470707255811647238128321420029205355780239308194945561275383248390425370747342146555275701690021156662600530206569105555062017250308228146987402536151778896481865884252841125067897901492545102396798491366079462065149013457047239281979581852467648740404718660875660049115744093969961952927373424600361003117985907530060557171186610957162325801239089411387477580875336175632786178386071674826837077402615132247898688976106922621031845388009932029536514427816544360207345780952554425347484279277315447958493799240780062841831754128348765139939036711415469039602786959331682367195033354502736529623545424392764960112246892190992045244730812331330385877988085791750444692730715801156923379657304874042417499379211700438099064425994536114700257262385121365699984975471474447403853811726811443668704369086235107924669428762355804119935966304940159442052055194384452645442253694347998742357399580452814476410832684288390831216880840884524812667715176784338612625702900818693889530029832365178099225640538511542746948762890583601565237920542391258085223989950627708460090981924865559367310020899700516861964361799430310295471697408006756789157911906447028179827924803493696391077371075327567661523159780949468853327087609231667238028531622159374407469931067298154456281625544389575110759684028850760801103887997611457173718488448463961433459425775291270686925743673050282931403218118226213249434996945198692234487271523534414924408313379887783955308136816048841308752583934554186842986470087078132755096675557761240164075547260186897553870890263407733594800091559147507100985634135885009748762692134608669337848296300165605154625479375832224193462729729836110679865715341591376748131644630046339802198187781539508364164884439904568631301332467191530886840623626289551787318104670453695031630874973515853273748042712686633278720388212136395817109662408123194814251823155905918236002089185862755430659010777654567105072087570779483482867102045616980312471251750699288862514683793409908329032666191679526543307018329499978270764490314930087601534758762855238273234727532604584990154579656913383687751143166246744487395266761769797293257062980924198603546271698740399826983787026490443240182776876210169150929835487775743923823526856254401979394813488192733212105484759292790144473387725188950830150289865129357475571437353268181655892071255037402143167871776729940436426380336086437224205766941230134807714888478868149867247207348180088319968113879407672377914100031456566648892715151851408791453732272011781356760168078045859300939614491382910339127743932882015367098072810891451993736772291540759316304916758469438292312500051416385128427364886124220879703095030755779317023322661820782759151939767030063209398457255453423901671417255358835865615120491076266369914684660413290670507684922642394961973951278528352767291224181926372764611867245702833901270528800575838704114337049551686416931782696519630777548655742800797852426300365025155550733424622474224662113418952617191829259079539623874988957452324483149580032082403595415186040411638670857275277265440551983030838406052304424139148029218341830299069209968869449039488580313143724578393659368236941630911587266831956212973714101728329879838257354094656604433188948379356614183097250917565734214075336695907141947166625210776620331489452270008797863398512374055107567233912851282526846585308097602779408909944551092810453692401153849966343946584362720239426110337202209935625350370339729241885974796988544167566016749613193993090278085462468573617464851800112629773627834071012299860708896322176874406687245585674691166282722428485251039488813701573328765643175224124678439477721071854225978119399696611548325815707578933652338062774033508419856600443649229034198489447477818610554268532965351523598335870304331282327146501053857578030211189153997052203574726175607675790049663455165421704149775638198480880482787993308157433563150748915643677852556966151877671671947666343276269685778012479729585398147644509761288162508255426335463352027242325356898601549723321610963117044448652106047682396459357479565308339629834544507246747233163939544342361836590496129223027677811283596164891917395642022086648739831242658492757917282803328268797595083098905535149512009757128227801282309786577441335111828977102268176750883121281064883038878568440694345340836526076607825710860337015299698599956066760033331081026251510132169416866907227434457788901567069229200687239256349581877951747560919022568556735680445824965438547450289319457966681335596644452280411253009264271482294317052986065408133948148170343881294901367881629105747803794843277868567433822923583516863390264010469580923952450806289202392412497002123617351572535800870892002286977830289897220073618768077939971808700210818392500593446822671311045880604512353554327946037637337595966513282832423607346148891157664326925461045274106244997517841412716874444133470274634455491447703550754725775007217005708132280085195106969143252003217105610437356332878704086346523027353262130236016806906019456295930875876862583649520026442878244414228557385038250982671164206728459565577126773226376498557453585546292005225947569059840873346700823402793662979032820263715682655291941733924670726886447098640530679613858942520176888971631044566377047116197139911414250741210698094446621156250706071403190704638500185494619332544592128149128026426771345445553034437642363337749821946750128554142862965545287582744839724111989198361504844046915446214312444867109310801226564308051598398360554081184541458424173765203446015962229567439097763562330743429439473294315398988939199037715092970146262932039414531301304108390857976660357015290005145287649279084630465153878519396413184186265975340616121311504115899511196928025424868871635354144092200778193468833845677540893573466258006633880270528983251365357173096024753533873443728678033684131739993843576372996721690220155346708250522100438491223221530242976706195695368018975384589425762830241771861066176059780598838222096020028419166201643940760286574957662037760924753551354506967924963760596014397121007703431095644813897878613033606858573088140164270105497333410883598194429643638951940255010147604592785408178645153893146620761919632426857832266393651082304538370012051819145368627050635468042177522408138583994050186446292072778350889959185730383018268454921855098607650061716348595131918773942844402511335144360504907812196613189460906280070369296433033813613675896619439329266450269792323500178284211610231924231567122059876754870854822491953946885716415933741651481508295842779027440971823271099376963448807230812546550997120140505154041207097561636460279878610180728224920419692701141147611658001511849940496655270148454894345202881160149524066493829711009763021819572677261472693553377475895146974130499990154818709967188147378491341491752174838000138937526742396429202976364932673760218692965284186341747909987034385840707660654242679664505946528920285136178788784430818447702584860353546939832461063522578619306565124713253635668325231601130861220543641933987884865864908481852395149379260249084230971020485554062632257438079270374254796018503551992129249645339636023592401248331787824950837535667532635470516607422291843247374131193856605104412646240397420942793287181518960231059714913050256209927514496248084976776464309871484658244346756958841740346827790503052279762728936791774850044287798197922915315903088871807691692041856196968234210233238056525413528480961891381044801079405588484929141241489159376253843281110216693934630719375282228357659399586088853387296106552414413336026136356688453505401096824902454525195459748037424184673979509734727053048900702548232270317197438934749841226283824061523339756203786346626424474893694945451228173480677288593013426241763989923247091530812546019414841515797404054544803811688257109976451009955262704706488054224045855477266322118113544417236166920625272061546871805828321059181701026804492614680113494716318427957151333302906100911396731818289779032293466385750477783033465419027233088736975950425317123319688154425576699508257626125605764720235061449712632599670392072374834970746417317386000775570908589087767902080813218808894288611047823309173226356921251384325627562885380609955701220338355685223180777700762241534295931659698586583713926470404897052835419729097874796361334995953907928929243963269092163055944883695818442536100877262720442507468719761009814661045359629819928873387124174235929261792523772945760819749754622520187280213528343981446838010452554746660154775665127522785286662918608340386496993724541213939802345363206388001001538218802487375050999417855482966560406192501768489604694312498593050319678996620840155116281727188657318128004947072480644181945990720263324900163596178588009121877208325943842046608669529971884686798967728524676783982986638446681904881757477057622383525813441395028706270563746079435040108800038127509171241145818087775425905429188065041690345655907459726946466427661833129978592084064730581927989500557350318882941817449698132776952472445810544897987203488108984756240669388561217286897354170347819675073666309391163972560298956956900847581638439838359565267923709841361972800491168488551188459199381628982644562557509393205116714273955396193459328825974649545104979867682989417574419351253311801750454309208966699866044044529952772910217277777804358521369483547650539113802235359415504937940524659487058087495254169230851275748947804954803575106151292967442131125587964624223179693802717023784307237291621586898868760397858722550452510356591347102251964566211250541722644335248758146662021352879681034705145390516484903825327610827599579751011170685678627115634679402081593830904354093095344553395372244414781022248493226450525739041234677973061168988695520356888223643407510381096181034919661601552928420592693750353844692828302983671355404778002529059193537891902872066304350563509311563906912749874016913883548442822997124961670988186161789855996441409711788449872698486191485245705372560285703695237944451353396145064705562909687830321240512002725098550750580341169511838434000886324736079288232887596762107767582193001236932924697726237337864252474607345262218956990860855869311543025036058976075473752098594035273047158230583907256196319238203583931051658154888122472336281303252054566662397653394967952164226483859799825518813179047992116293151996503439005943509040810287292163271222243902846547234563475565688459033582247018942745744043836210305449233008764182050694410511036732465503916658995751068037539540032201816502010700561957539898487873133651177348188889082235543239771020484487842093288834450938870123358464887990408472749662377102238775812206498626231135520006468355202324476902070592786926793119258150914277386462219822068173838115094566837490356365081738808490938160166790011546562516231995020349097413734680987834469789692388011686804223120848304284952962218949120011042493588829329368425434724364611588322763118749751247555602521467648368650387230679297517676245658188000344729218905258347458578588095058900955743047813697229634768909734935641422567641659106599829346356672460767825503120428917995795579352411014492709754064236003768972190922859611779542113543391913305780027081993402381540947603015368284724669288506017273766423897907078817770416998783210868322646636073317611870636020593619961581462774603493004737467196582875499044266290926590292616432323511791420731248419444213039688979509618096434002016098285289901247600870620370291892318688758697568968504755481332593285013619308088465025359460013241329925257435546115889595150334094722166420700023575680553904236458240479562947600087965997999719800757868083316391620928131229178299055597960802229153783619511172522002534178140653767842308085563781475157560148738631651933808115110192260496105161798028600299376982134789114209289606431847414131293628985289398064530445782765617033409677748836549678271726016556006296639184287315384009484004156065088587965526003986905490326198011820274614101548811819950596844492692783341221314724246641823896254419619339733411727028580217895002940739106648744742995911852505613606271942155180681940546541170917150469304001828828531784842155794854856058471012188892544143348268217388041078114678288118427254730628282166606424020730694081754748951461009879146550398191925904086798157560039038817072109258439712360652941818394375815660214610372315024436882289857791618949454548123826092746064699382327090951158739059585809979488638645951934382501740604759968207118663891454626819112367200977558468143619749182389538185255918561815165020307445908718647264288036195719102383008615400085795307135588034968589399779189183291033571107704993500354077080034032476854097254551944842850596640549326840700169144069337153038426059355376721366944829669111129900888049390164709981750699232873863156632422806332428160793261461951782428558954463422406688863430431601951920199757748178389769766085409158569320238124764465315635011257868520549083294764778053884600204635259618599645663558735533907506544922805537023924507222774842917603087631605399237556716865105958755575036487685627636665629017258930577987726962545611898368895163619957562585074110520976087096101703012369712015678984128608921497730776679583001472075412038105168329608131349684737027092223102453985114488037950452597710756914339034735215508284786953924194824260070425881555073799609750122403132241998453170986200125528878278677882338948309381447950746824839725724493307752732446383850633547431397633210486037493790707353238161202963783928036435889108326134944767386889106167425929785029381200902525087509690284062842964181381031464849249355319981713607150236882950793686917020621866432050945310668335885061142214764280836024791444831941929793009712945095850470061631367010687749526927492287910003468488993528095074694015817266762005895518763925117207537873587963430416164929873498056116300592947608429485549398587767067238089814014878766842302995285552114012029943739265152688754528494343127370595365116999596262875419197658775366252770115846200439760457812339620879619691861040476899892086912143171250845417119707378202916478154157402458087834266802029928321410338048841547972302656133105138363035577358040334277380120920693230107111018322957882648380041032058135608643020003913587322658023133432329392724397313348969673172079510428106226421799372555140617820772421150680965914799317755976988401865066702601028627672404129815688077494109399300106922261029546633042316160229403566769886506834414554471804559030497624577420792197963543203154983352467993834293579789654416353154936187067537616502645632414763995843079831154778816031275979441130736594875642772524529448075499387234428463076612432882426464304597154681973929988425353738626334792674380474041155073849185744218921512663608943083520186115716887939066982415947890520916841451374161504404850875291741838951514493905392265005084377391203280994184126918361843291573040333756032682958063740226541187690650155264750557089154741477450809173826430385642401196044891197086618575411754746761744560697600895595501952961070105797242013725909574082695249083868643873944529827317128972348579530145388185396232753459995629524769333052189789115600855542390253071685631673227321003024562517819251512534694104020656187901459144741588316106217699758849904705158282300390495610487827684434351282313904775865121632323530762387708787576734475383104329700562435516598481628551267642642991730147791177308919367023481126705183375456003329882261403034580266398579521185340073962477814209764515661019707081892969276702582489057299185998017182549758369244490115924798322130237959806325381765638804423704957297525697169006723972802729866802346961096784333128504752791300729970495312197519849735149432858440570454445406537418729979547441632424543083657164421964769396718297415403599945547325926068629304508291862227850352572999922254279082937009414092224945613501232624691002113983271397048648965523184071823200625922208184515424916512540915448375477636996893002974818433224669386965084738431738376061197612710717324975832357808997186879972925670497039748831552534875268993810105822062106276143145258078745016549583939835994648523380019665989258366745355499017319414082526251203213867835172723575348174766781954360047668309744452690163636350864328567251422626493217610307905337748016600977200866808579200874689127465146271174113354792226131362464921671796177030302572474877088494761275957866842419000364903836837259329300108523598066273515199516183768383750009077152372317927611364532176750762969557853235637498495752866528212471344377893049280481570645018740880335333557150831269047721590926926151447702155724907282577675905373520392077077358390051563801639868633823201492938862730310434899115674351656544413918913160585564982207938384995652262983018293911684728626064163162208947956252990650088806811666780646178682756416384350987454485857018983677076290681984684762249106870586821946058033598985726419249796367745606760730789522356777231247733522198596956120119337309657414480540134943174494125706383269050257180273197708187653699566925190560195359294795973084379890470097329642263276039888521622759178533298856619671141828981745080939655646601563214629332517386221985819153377621900162509969843432432511636465828307994755802400485381855514957306268995403998941706767710433986177059028152499506343306970942964687406587846035484545937555110034703484173178894176500851695688769973182603164607603547730729110422872695378359449920349455391747400031354708100187067664885709824312838183772285098865884148537723266640098484267760600864978930227359764741773972677083405959508430305698243575832396149574511870292952395350583742259323938952161069955739124768290519442199695915606553685217427172252156429508437962654549946244323010538643048020363284545359753933095266081627125724470743952925200678801676070556109253074698305400288968476040811182872629926292791264902472813737601859651283844050678973793331088374437540257041835191271460212427396299798852584013433622365751660208832190274997157291139347991222857529211903838057049458165586005055357895174633179035233815444240670596186795585774612380676253331123292580504829800516220027569683812429182639689521987486824733119679061394276297246620985838040596415439813097474296841723453874046077850106722630435127440463291648681689873392402258952661677135600430660602786708563036405446179871652896003123402316619559857885687304417396919693670363588525291455962339848580771053618098543002222001674180021806247109025637753583301504474028177670983321679848804670773900073566453140414938655682336322667688108712296221386365560356920115442725216796898371574849046172023325809021071795610965308324670561023678929368992984109719921751031356808965797768459271369289879102100715553925124969582100254446704031240303613474178020561773102989440953954079999680344995147788391315982669437496214299258322227564034155913376456503215989928007560270658009545856912301683470032365639224993270316992013133710836111963626517803193189021920883742170925148817955787200175014518401071643581123735788747085109518168211451140048326533716497752116829225364107414810078292476462926628761223752445414068090909894540088082008824543956377567654275092459781935961696392836908547425563300080912423149964359095584354566852536839423654121827538553108380797063336158714902455310642489889690214927378828080868072820211483615714257479911507877065228033475042519668795662226006600567801829465722479001981995517498311790951079738175870882040570135855633661163493814384545241622013753513975431343555251445960665665678163381375556177580294194283452850140784303296832562551804909521087370998978135447328734127171475053499726872818747113713903578446095228837859788064702962572574690293839886197096973621409294846072594015956088218955338643565300786157601441983109570337895231635050812522758935079779872344369847624913454911656661768283494939018398371999281506291908762133652943651996359591028330588823535742042955097941027469692046378333835580095215220728559443401536798495282045749211593770724469902740046640841182535655091934812948652411156478647515092662558798070395526412957279837367059604766399655940515352740987918826191023590552706935999714051406292955263899086715212768436802051852716546744714757388576432126475580810018095865191339830481841211248268167259701751622490991712052295166606556148021382242681332374746686190624665951056386545418660967411055931128148667706374746678242165204107025108673392439930699701228159681697645776249752108372677640237562862182328127968701236057602689005233473247922041275040019076048171101154632869995510597076171127870654446271859873954669445814013143718170283031482204045498823716327291430588730490933908980382585203474217024304450014037595886083568206500378577035397156467127066770711163415672036550658624567112532122053351937651520917262282924535209696601627289631458856120554957872388372255444491612435867800501595267688994918497001736657358848381992496394167673604531902628474012693867585231947899186710281478098404333220345962349640156662803572095687664183577714488666396710024187618344370723644175308473510701797010091482170456688854352316369414948097804228957465710195028040621500128231395944059610180231977422629743947403964828385542198920022422293823486745347901278724862134773529691541667920211162780011172114484275076559572833607293024870362690742946397857578499354532933906210820541405647178883196853029460596805682819730119279136120597066688783905245687770248512311902686750478051570151124305582851702902260613455443686052527376682424228125371017080212470858472110828285512637985471602294865329982580700681774705711915971885777410691101338150392576596689641235038895673699933675484194983653694838424265718914645376575542009294189961283200053864105594414354476621970151897376962494538204078272166449037858006545182794600599747082422313303844582702746143264162120221534392526059700205177756112438816101374055286817934312975179947306797337311133566348983386585333808568639933295284350310942050703450966254837359365158585430828196802366321538584789952086658607469779110320925029875205583117884409880581724895788110657359247242867499791322304140335298465279340747959435334399964325918648980896019636389949136705828833639979526424832663429573949577522436708600161976025777322478840585126544553532517273275930446626028871315566755119588296045367500733609458584744151519513944810616713624097720492527512764972823997491958788409751071184556334861340279914210169544771600883228868936724297853400881011581344953706086847315696586474952154186979582317323987164903265181169362501144175152313109822930124292005360873779913083259338341373611005442559564964072453715186318661353373683855549909412968185922714727341676085901384988505860414300912962910330464861440084746980962810415058178679143480211582879975791444154084204760066140089724609287123158540761957826587268194067682637318563752779501846639099535892196625297115235654159785480305232276908613660160654325399779506455755323299291814076410857933008285375482852515734305019430388071291187856644453589015173359982246022876712337420690198886504848868827217806098399788979199794793752498873547853702904770310134953610464408362832548518457261026275369141567845287178623643700637641348514573216226758849129445244755563670281446071835997156667461248865428209782926524442827430792820234104830589580998339006805750582698573857011313825385794309021215304594414858617402992155084146234279967929676239281721744129671666435131917929475482047761836342477426593496142869045425096483324009765162101850501567822391062118868215998199819132537015226642186182129937908126727725964618965028396429803555724254116234272508112477653851122557406903196796752757002400143086853516724970679584587438069601469348652206756647336005533981522665968137509428375297187616814113108273925902157908527119112977681566319792699721534160874727620633385505848859050486824891543786720581164209429802878887756663513023414342162776268971673816099279030315999982736878209534752246331778643477751536421580073191644342698956404042527074907199066365798411011210020456922947429314269373814261725486318505120054719895481156225558624061769700778374223714658872335126968819052631895787596042555258747598462755669980655971965448881879225034098818012988700698992049201835027681311485688876933164737170575750711258232610303590084572403411522899445435905590820896621359027699120213483287473892915617583968262974672236057770956646910936066238640219139356781657842194732002354377034769501436539800955547006568298451226874936817507563256057974175072818545076373390541576089222706179453104807677780547248003941337168778866884029402542551219162358092185863814359710692414758040302254217131789439211375677704346306850365299094705194798181373788259197945635283655189516680814211339315373165813653967928714042343361123781853626565712837661501299638166834592044646868600970877134322587612040628413500589983352486008931322225368419776587543224821955122410305448689334421623577387138129181174266567912379675552267470915100536723759988512746664061078519936507128233963384202477849310375162782363459638549900905027264271418128152874940344679242976922553280977092708987908998147071312592121992183488085605653682368750405065643706704094470453497371880256281979057841373177719620558566308358439495418833309348999732880707581809280192568390666803305663674348847683317777484102730021021106792813187284977961605538105667910052652713425171304986509791392005307097933905250673289454973229362730625962247379106485488927846738378626879520873321445099004659166723233687536885382529665583880510570243392927492604501699689121377307176440514962527165938322110219205715697585370989402223378785142882258009870431231108377886648336923782730446564097610988081154171374219772623216930934753490003323461687316914803614557670078210599628003597353438336877318199624605132586483457189629710184364351551788658812852004162524958413191397877235324708597098064770588359608846138138710985034646224327248918536271629038322671137714054744567321591314825343491546107773468837959299309956041230103437881738486028357421302749290125852365337286533408011631853752801643093476992355838039950902781043901675647170214107811698051933219895043759363207276373830941712626474484389891383826837456987855019574933792838490302579573557243229559502024481041570922287500038346008999322688191806759442742110443398643388732103539339787866570979031853522490693128791341175979521936582192474744797977339027294362660997541395600873855532292783500247938378940938122624041097177470772487115250544618507089586662615729679917086895945770765792060929284213678253700568971494720669585865155111947987358956491976123141094711914084647297441888316991976076541911776840408465938224567073493849055837226988714888860786591499963782058379275341631394940366834537990933050855794654277213003359811484031490896222193626094884532238251583734935015582772101270766054306748406894527700946298315947056969191956665903725000014173629518721850892554964637168760084650058874149422017469438989139935881147792362715202339778900984567536170020444696077903798368299722422856175086979407872058404582332322243651520429979549055642673166293997080209421394613178930737716689277145595646804460763183108726066959546401428678065981127719586619356543312344040800585078267819991287938496831878012220387277920529754185930248575096462487143993901842069888267761312881288327496422928982362952523640661225957645252360228256107732097176814115469512071004049010721497795029726790847915913288989263214245163609838238196648910263080167017655460573985154443854787703641386125142441722010171568609012126292536877129614430975738365559132376432087883265011652347108277824597954297906794208333275594824411613065969367987095916536179451546034490072024460409245236412039990908515184672619261882420300630802871545451064044052907772131395588316259399621245554790557995554627053665872919812745125303263876098111054255999613510313439045013034839774493830219677740997580337281564805637008579695671145588957487960747019023104281348701355094770703062777888874979266087084287080862848057981032280445837905448641326397788855284874538496930562272073531660247815395200901498187936206920862821685547174078311506543578154660879884658446274127391857476556013309189418223280913941336564189953526920005067559285611761391139951815902196617853651282367979008352351095480395156941424365491756667145187004061452372862577021315602749654089536723555082854783953891349655907951497818151675888219717114096680720946525851958565772469544520821896155184929451977354034800933037000576948427867540966482202235811495265411279289488044156474674012895611244666034722009365553148296507287531930625925075335437930371762702255137781873073475043689662354585205360541823988578085091404019064881425684958805618780086966504106273129025855151991699633367873870318237489248333249041494122854680944233614112504330524812492741374864513562982744934909712558240223812385279579510900018639178084598981336856551329796649313439320656403928828815186596784234101969171636553250251234134840478762664886150922446406751419895825764277989155718582330126998592827029958170854905261120366840162773886762410513124772422852422126294882373701666771935897494044554886007387982690296027223792282591006397784279411233692052954917700947054632250506843285786630230511820983682933137822052096963823432593813614474728624828253968651536011373352577126098394766281638052668475430219598602573132972940618195120335421717108398743297382327202325993801489596674865325207370060634409748316178226042512335263820600607841541561831942139996335340279029669719138725863321428486188899974475493892694572349752988375791977831879141964090924305018930072809460449769481104576403090291676425275691763763317781594198041725730189554822441497118562613085530124186708447947565066336857845862684099654119565868142405565842957503680557729398317698962666376304901924708490254325259556718921253411701495956932250201012861442546296145254858375066657597998868048712775666540685140492776492289543566175128215379649457880201288766989181082234950748725536289918418698330642116103522591644336378675279659208866675509723866117625957219908306935664568215489619597002826656694685539719899160982105464893898337783427989694943897015077555806168779870195190531455200493407644569289755824105607580488076370227853759962448561835010957767109400734960677357623764791888509155262168874017862307798466253604256290391627426711952411486181569674284255343597818153611585490666228461265736568981865339103916696287153854442836956886099497553205136813839457024290757549279785632837675601808622219978071331006973804805259990655920770159651937565517623033218202338890822540646576908265993552976899805998341271125391050101991036456024243535603335346296587758585397426141712731175943923072878442957574672497040957788599161415667351447573082315782479168791663570635770600874379368061994582697000474027420206359918860800022829832733461882954309567335602539637734929963329338113331719800052720388180041732286443848677767510830907782896204708492917944413011562387422504932103683092883549377115532127113079405446895902803104167992046886917855609999829052847008155370590644828209887757523373059300993960682471967059406185161901014104872079057106356716215089165898937695649440233220468924886833411585104334031558461427203808595305208793880139564351860606608577309172432853902105722093836910916347455400000286545876833235478322174723840944922325542062797149698238318907623619271989137041398385654784847139187208488992681745483506822398975648934492379549858226467903892649161951942025774462191189138715638896603840428102206362944439545864091523229004326582432432957668396583213838697381203834017330184674078309021985429923393676315127323028936383238686331516613461406670697323100690659573585099059092630030004192683993702801240475302793242297791131860039029953789111880303009455080148122508175324997134895402777414384658896467540776490645891179610772274758151703953456964112302671744640198616107302419612939129133065251634193387869197641748080395186871181725673643759557813924645928698824956761065158032425255795854185343894645985505473958312415108609037595071277119296314647507336375741161563714252857424626352145360584937709506354101219587736010292280057664738866640897734047513141182179960281517184435545227116410773550529025241202998054220956802918731579121520632006948894893985409161242571958095787570192267836163177044456563949140819438656649378480624725323111901949988645893469035725508608215650641338798924429160092390813581942013920125263514345159890012945808167198289810776179353853092534107363079678003437973874297851494536308570541467121456622798098660430229529016868056957072162865417231699187739206363581455445243451154154845550091251174538991608331348639926591431218158282082105824465086126094665829155746597801221635061851340127096729167318524391067322905920037744800459976846650914994486820703272417205956534556629940106741963772900610354840833525747227230848198296991660408118937616878563968220889046849848700900125696557336382059055293971485722164595017752982230533726364367883219223735666108181485025837752176342235448246433883374218004816050932444315739634565724122742315875858355862795279473759223752759999710423451819925339975762813737630861556635335852766656288383400746892573782498873539370818419890612432623392505247018294169135087178428463435115564497749856228969397612017051008474163448750437104327496227578590902006276019454708013793784777325866168918419654053813001586737272370059447513911880169223521817208409096377376629575209743484439512911200444798318676352128588040594391497824090255069316692123578858045785755230881599854827169193052916705699483671008272333378527592524818206543093899850560566823097359716263393311950479716853134915216273077759709572853947686617403921896969629834909621577171816564588623529316283692702304492892736287386758851534593172531010854479655654579202439523335399810175967210665366998070064691301026517139687240483002680124832195438116176804679756525445062697025047232949289721928165852471467250611371773271959316117217597560121728273794908031194586752119089278019464840239338412962005587474351826051827688388827362142220102149161458955558803346360181722947041458814421126527383295781515932669432456430311788038064564229153150784974305558794093656783782956671298281619023391124723624630192267438800330757827523413100942123267838456093254008873848676846843605188494089815071090757026604827159823401537219311996452342377875004356324314714209643502961839677137654623800332091729866064792834448022614070130896480239580520411729789975891568362025036878608504437334588288543699925033989088613478893839676619969796516120601727138735667627273199504770945177351028165882432580382321210939283592779261119068132851826983663046779593564257798018125130608890805904115878903409999075576585034773029548352753938007731839741023305913307239168974200385334763457935899019364724460637255711819639423472483479993997484320133971765334792351276087073727076402036702825526972268707121097405817412829654540769100811405331592215357316822360568037549987290875025347103738591710281313575663840849060969763838618944528065923140600219445956129027959684718143111577405031056053418175971377747399044727040431224324919069347407049484296200581544348347540047557350561899571485244376027771547005539499433698349897169617609395569819725435260065494770456350957482708039199585637221838478108419802477616702855804775547005966716834260375446542678222819083934825864994131016023015868344944084606857206287406109992860820675049642786003811587308232204449790096229570226778744234185680388823324590717560826764961038216008894340853105530532888574494044626239416047147603330402266117202953791745648011738841335567822846319435882351416790066977118080501617611908914376160444207138781162611756352646380978616640004026092303925323447170440428706144834342140734588515253942365455844940571385999900059044124054352998300782396304180543913952040567129436609873289047003403223799920938142076907048539721256731184426246188170620974936793641439435831260163997647560749412561594267471752337711771105659720017877916122587318382535490332611495737633017744899772197517260345112091780237499770397726132930508156185836033395716153055625502041870197084707488446265353562911654791812019243150611126412957869559545414796165983736810555344292039144798199082195332102181967105535438639657445211013498510694305138621717028375022264071929152114814880225694117937379225714278616886888926833406011968561705089775474848802482065554679912038130390990613022358301722342737688949836010888804601524034682480405903153297272103485708822042755363837519541561605619475634141371348751116587389232297714774730649809730601053656226572480490493772467254530359815996402256428781708519459607197568002436421185943813660031929911231647960647995886642782423456361085510473767609426415407100516743276566698624580686331896865612146862284126534268419423304953941315678747475934356605134434414190171961980327487317548799911022519018913535368753587820917595863742468975887461718466085831524351243413793091714440813779571114397203213527205769868838771181988312605837671282638229202072794054554592149066486873923308864255554465496236116363864220915980004466050767637291499797428747584013453565015237167821609386519401076214302785458104020083865631762031917041153584728574219947011220663803933044699503457493692187200573924439940911507664257177053674185661122706261618404186438831567918829161387078787006093835681144063537375533260970284465575361493794372360823558172442397842598135054177682104404743413908164211140863261676018544944749519281292675395072067033719113496236368864218925730206964542159454399689156034661195686773970765252325399098898786754997557400980272183375524824210946029145271864467117628054595266387945040622607930763200615671120609457346156658720188411564992166710263910232101075964781619718279592554259708033612866077655931500230363336172587340655222697943584634825430652456273942839827628518472000714980225565192722613773889378758019699394481271809714273917217410017114983604583364335579454193396362353899461620662138277256838710067638598117479772087030881334639495843369837785360220022017197160672259094985935856067055652621193805829918973529269147863230270845175981081210070821935348544484448302121519901808858455987207020151373007957592166078443366681404798187528366723065397713601895284338312236306085129032945492521143100888170995826131752008526015835317123188739625159440192731365928337392997640445922593565936626805818964471572277958844621313588074047816239546130600492326666573603581565932119150058677192551787641375251044257428443042304610536290525525433097148233811350035555292277090924925535370423317737440392014036218484689538481207812415145622503201159123381534297031053319424611342228966593424380951949675157178979520044536437307264250799300280368287479095920739287145123749801796438397592860525531715914148132819922722075489644495623188628119820944752472345070805710395935714800326041835207377843414369514137030243797244327341625516594900911405224822387929347432056672405291087145022978324624110327657722386008570592391109137773006842121044370682611695282858368545578124792085539110542073748049543012950230096519926911223383061117127766732710712552865083036203824730825669103897610810069282739652957886033711242590770667790855508242933065495310160274637153716325210769201681268666413492018035904655289490827132606602622618359242898856781782696187160293642003630429271342145839440650943045364730399436212539545976486627330831011406384904881638783725299658766825244314972533153249829961410765347108962732325351490105861270138563968515898459833247704102723791515232820639069213331001821293805433067359970859664088761050568495151895510351199940925415476829595449271960144906276773026350340838406611566596748021480852566561612734162404452228341487432266165150832810379775758137481553338923880463482828875273053148519808659683038257197190157654276306197046956599329267564261461661993793730266543330822283209233984055327779900444901767016052568085072837361889514402025757042946851738325196353065392765719616253654687199442242890452384122327895950939316110581951334159544258746925996708657515219177545285454369281939901473904843176318403235909578463175822440628449645512306755587953818741361530116885345441203932476280546667483949401591393008280457167999922441147325539578923941847720306654149021222553350701525294035970515561198902557100850888725370774234447884639478555759884307908542539956194692902678764034683062991729320828256627607278605723404661995509262640399755565300597405080110528466569381738858347273685336872132041274436240637081905617594389409148482862518303614535514013065914947845001523008071320463338606842617254382325698477068431687298399672546190212557040376735088017606863258591398164295562520457574173820720429298120938410860644346677755105671883202646248444603247542113451910236153334538406820022811544990523636098141735351157561244812945430661861891930199169350536463794986740419947871479751268399818868796944637915517641575755551820564901619099009456929433281330069925329080935070601069634363230310239627833203367424116366321048797003531510260225156435412983402958548615758034416166496120574494350816574656189952811309666222746203718926137728529009988206488451445861033299190724081341677174882727963575819925921245074680629661955621232128804483634520455875400416800838179445079927534992882759678825689612832132250590326695061860685736539303651512259155594087168223123923229903306508037683188374889109635763328102534132012492337439756535723884602530417413712484012609798314399327309193788517813504783270340210461860339898330543442468908679120841661042943096065957469037180158064125631960505058968854546598808934336233122915017201680581996655619067414405815025992944012517607155847256787724902742283137523065476429472841502394271257507919839078812130066932843790736031751509422998029403306217506206177937896951349271928195670420082971095259051463587591044971842824579801280365149700507016145366771119362739973107580704374223972649204185784611107570935809072644529982985777496159371377810960383960602805849556615603030721260052191489989222177633127557844324904594639084178210779934750381993519712560393586804453584574739112402188251384765127914716701023941985717178258264097951726712954228862032284701204703349886980897715724115771699014605087179358000430954423841619666770404868003636135075207341225830322541671594750084372254185879164052940471029351436323881517722753497821203815737675304688016165168754695105015677282729092652192681364124536048935266724791425439934010316367843223095650848052043559571199688056621283274974537484667863352527551546939572694255638526658978700039635541118117569944743404708734848620903151378085657965904557721770832633062774913669439706083335292430598294941243386880650803265133100107355037086200795801320833456841840560896340420122467543780131082269161540243003308669401909026450580190713785454990264737580240716937827346258737855585998364652470255076588499107364748199956299387311950604124055730351076716249859149922714511400631523829713666955606195774267451507485177418143846158756429012077042083793282063073419239364116558770597242367534979085572188917881689505158515527834651033827496486097360429477807011378216638256277930955954173155784334980378341827355042524217285358780047798123545847539634488846039378308629982638315940067395502327139359975331276730006796889697101352621734916432260411361905498970272235312549919114768543608612306623031363168317727803218979872699453443673715655926603842218204820528484373951633349069194316614767143371147713080163583441539394917774674980823076635778860617854972447912665130577012806686260542111893536164911007867787153908162697545794690701557717631319492503621832401890231530800884608881262686614679639448742368682071461220646746799953791041533569424302909387377426856531560850443191621198869456216434972661966110815660218089515507838954659861296266890517488675700034691531050085047524453790332110885540378299926263388583033835428063323565344338244763441672218914843912904805438693378815569523940597434454149390772280504608783292015889724759465973971395639364826166251313138151537320541651957567913201082855086539117073954469210982139436671978440412087654662680137976369657387237742064140291726100246184180423209436610692034366102750648407767032139992374234673255083553150014933120956386794463113362144526997077104614515217395298510865862574207292402657098064678127556301175849442010360281690533588575521099236448913596688862301728999575695835384429955420305507840994987893465504945418023048604513526627574931408123008427849805130473839106801259585200212076812703455278426974876253451547647281506049622220541770168806166226154063314300741242825039471128146527063468089875489104311895310083930454561501903032678012652465593612912818151505528045487127060818017968714142678703248654801939551815535000342324363372388836121373289360588797436271204595706829321666521235159620390753459546186817015449922409315297030776625323231605403109769263991237782724492801712686295693738599128307806240718708818884036075071746093402558731385735045756285619608384641299388320972341605129971402937517012173907883993695593876574224927328408087509868603626618598526809778427793346113169704543019030349138580301502918105533767647664111269904310515157287838535625702496071006882991228739147739442276322198230460417118037405455473418545228432353386977887001713770065665529525083542622836597210499503009671598076361403909272874257624559983292098096559294322054605095263848482192877915802642643237910655630576082083424039397674899437179764016926356994489954643987380188687367728361318623091750401476567898634746165333779366082494276393900710089691659755965357959849957815548360667319900233896742441787371744611084102890012592215472774543509768873478161173179713128036210198650219739024592756405141127889519391230926590121945582082892080737877487834896285311660267362628511804890569602559208836181562140098750126629506747243835871633833753088774396179959121825599378278851062430031746091761495583031988122973526047849042470542613584456046866783806676308832713319391813142446003893806481296010962141866170012618203764230571630677606459436321628126178260167319377531326359715791052379584345340401878226589809992109621911920314495337306451956413952989542880390582668534852874333941316723684289278315331266095099288593643158967524711935619093394108796544499352158960127374373928310299785603871444186093933579679333486797731916578986395645921535350440465300668254283751050706728809686139344530760781707324871474072170481431021065438057947402019527695265598225599276375658530127295092434912018068737522728127961958897457572216483868647522425189363189895197333227863334245682565948732844625384416830286542210450885444374624180264759713181744472296471259634787197148060759186867681334150037098054006057712223644659800842395554553332113390071182493923204844528088667645945208292437496431585556917575869599181013089309956238136214010073792317102100237650601094598705832123636089954441766252476670979662062806217906265973411589113231541696748704299423742134045386096398694725407364233384745924245774276232032012004023684760858928396197276523452137643628526453085482359380425231268179056346787841853179755071278880355067332693212871985515968302786188790973634922834810193465604698260561280448159211976444799658492447709192211014815693222252166953541340078495849783723227629158535448052861028432067525690978931486823655003420085773560037743828947932821619801194430397453763313530628392234718172063197204378784035555733793107590575608627198576027142274293250335608689453207551539582070996329109311000738915389886069738779052502845793431884202385811260248490921987052723758327892152799702300958664755683108625475155429536880183561575674764313385143455804271997427968994639176470480500282492465535204629788186176543485081618838846090452309028311796471737596752519642858794080932040099700581625352890088643435143729343881914631701417126410027334287488940634483058237090105335940341042094746847811434165187700971224361198228582838784887828538896574139876832397399605409625448002169934307377362021628762229504868469030390950946015236893951145240808837679584833279268618803535641656246863861086977183853760398985195494074639452722079717779603328498725522740792803891061364361996288922685066253868067962555679384121321564698505973707755955324057189749360612104618015902948899720894667357196998482062448363482486588111517989236555080817341064013512983514660681939761019812307584557999355439233624557511468297503810931732165663193660437846488699715194316222491582049925623827084107465472340602315660889063748542417329131670453697740761878385838566004436544985219967644119693076244701703953872738371910979727317497212894953296187451930473458385322156478503560257866591154266306019280283575567730999923644241828881118879299831266578470152311459984634209213601556694644163836933014727501120456020481564677330165549849177735398084837552292981727678412546844293920223229321496037930291256801308123454668054306518790508411789386310648712595245816456325888638284763413568015150904475687548657980637461588515483169683107185899299960957006393135922968633864115950035050984765388108028466404815607674501029764053383025029462594538134953125518256570659700951017218552931843599756597195055386655795645763668656665731742207601681410651207344625911003951305658568450561311243743237119398907451101810285562366535611367174666097573402428924589618877622512020456569412361013295076894280620317985887964176101113791652177186324859511017697618144070859335428537847212502686273932683257603746777284058675509595849687303287918000255834069420149544312048756575634390227360762678437181206644988741475619367790951446352982018192740004665460397462912652770410142128763389241279540612352951104690379126850835811794556864030177911746215053189626216297760791693221788969197413291816844900205188898555000060246705639645149205060408186933678187345101080808887677297487326439129597399223868496272106388669441073047755241297150113860221015694669405426395225629192261002613534443337986275244614853087991200697808038275753219552164631848406870810636472057817062954714827434460962296133104108023215589244981390044876011379643869677724417169420445134270448599806682179362927904859117175484899593821950915008174095943531706958951551491073512310758504680517960811136198632850160593141497662337788761530802454225562888748322042366845054402758703275228074179336825872978856679641127546131901100689466976684433840791832319358683775197781383148015897680357330752536359900957210320449132045221053919664413636491152188532447190570881082578860883713464367327768382383999936692241502006072720872858869112458896455809047034179410993238696389715231871351257707455526638792309824988435514905658253358320904187374619043001983461546384576944225309072382584051782251408777306194840231665857596660745701182541882064490553975898954286486203819842448392656305306035674498116168571043379891085878798893610398008087923291401717359947313531588938557630136968699412364814702456154456129527917536996689096805792464878643187158894950324771545988602140891009168434143134054807641657521912259389903126951533447322757416705226727221629136246551110111347731011118967823107120817659440262558544598608330561827910726119131027463983374537281688437985242763569787655583120768712320594183787974095668633075721031623021836578497350508683724836810701195196817755319366718590514984682037289776968676382733031653136330675861010689065633837922463101941154758286855051294334309697909986738700737987201244266613142340557828690670808224144518308198534268150543044046513232242218842609999689051151913741394550736740468374331109067755450689941352684748156576038395324911818921548241282624665168580086812903944602569131980106148715278460732693748166402852304307932292841676317195590884229804143152589750836449413254472778358774712142040169625248833154613493463858883351028659851413047409952072537647023016841811233269381560956496937541921478321871235779919758395014925411250520686578745941549875344520002861373247682813210094389018106125079497292907539914459516966162282502281185621788451088711953965645972166928070850669339540872234683317844665929976136090278878193598626794417611253115752779668811065996973946792293935560973710434781790388701270701933983981726149623358731831518028325970455046569400916815919115413064091117741869688476991432499645861645205181615002056529310266524478649773071924468797525956616055140724534026392845787309050662119298625208559302553756538309741720293946594069072401311712607962922585047322946605571227883149401388024624691536323064309586786446714229265995018251531156002639458079793075694820208398407200264105313404721264740118799479939607562036454181225970089664316572549195088105014204576442846183103869834767087824733853680938953730915977984177163558436668940592699196107744245022582642431281639333204357919587245026845909674520214290043879996323920869611441762434206653642595295298056527729177070585083151232899925397062172230542913261000220993957681374406203043329361265773828131350338713133821963980109183712753381948536119391379380431653522464656395489364673677763615128147788432515160793930712538379598124858795810743383010517690988220412333038793515255219237899697188956350599928939586061157587630876810352687467948757914606459830063664955697089267860209965912171463044681163911977328484866818521269670262928557586841658603532021350716380020700610792488075710320992524792073403477205805204798251830785630463679355771332754908684177037347087157469751973061986707919230622166021990263991064238256451657175755374861949436489413809713335996415877760986655830353889447301021958766580184093601168998600949803657443731101853426204684265848760757027869900910863836243699558149217616509171608047879506051503839596103420578873325999238882151198777809987248497139425956936583886122498717120857516176825628856203583085462059668769558895277581216957113491390326047287868636468841201435832964892387123176350287000289742352159200917556218464170972556112494006051158244239052330182022325328158308286537276050009391784763297944022848466526322800559755668260866912112101992171442065265880538734788706912182465402871184043842996466414528210642021329798261095248935531819094579735723602437461604060725642112453960579571309019638678451439141168521828257170364680099846787556933918146741723657160278363893673963948888290824136779626964746710896882619065299521919268870303409562110809344319105249132690647896887909582501768570576820085331114431731600067917634360617702649795498263320629314991862181034998285286467203912170613341061095602523766239004763167086645841277553731480937000321958913216244552630333656712224219365141058282190744038644345444805844645776410491593793398788124295247541277084118106321029384184916349181394039557297022316427813748665019951777519425564607287871534164932926850965757391329633814107545942382729298899105611515470070634399084876360620966169853949619697106736233684952960062431445236715546268033099547828651762544882769661787155836212079877757275517389515387567310466248190916656202329527379934326604727443594077007150966338382713194441198644148256687613835285699886448758176792508992218799530009310762889174380116636521370118565247517950859726064869489302217582567642788388559291280696781918133432672640486178332045539999118850625089051425099348941342071753890780352045735095584753728760927542417877927622164005014506419742033687433896756506388910485080811588455140479638036216265843958293109903056792231923143725917447726523378938549965065873334720993571918592202804489904121783568318177928937699633061550240922074008491603366124770837554470248617728992446744522125832379102526773125355761191641758852866654466938794441532787574010993179598252765959946836707879817259315873477615978734441571725893940109612698644387196675907248236706668384999258071471003807652770988975777501306569035505813400166975386391918239066623196162573208098001508741355467702231825387953647646854206842027649179670742666082710086242642884915081699934246350696807427178170751090919076695478218125771174498429199164550749609265886060580634610552476245792978881691088921112014407244090274590901661379174837030054477910808437100557514449617178781458027210015037334945798841696806349382542314947543173836304099810931825180696925078358239481693485904163290454352540878914494829603124824533975095812389136248946172715487778123258331390626439813655355478581439583843974600458883455668584937692473233754475706497590882213220141876239357552469540471726100651376357068829741520726846697090232267185324844635622113581083304381462352110171377460412172486388017246722207395354238417666813218853955838580034137157136078841443418612553586775961792611402124645968804895574389554553371140401954511523688772845179022741326461024140421808345952915488826288246124471163115620041313398821675782321431356794454741563063735854931479725215453424425994919424420246199045907405833104264835512318735025289878542511404435226701389229733199101047127334118037472433419034764647312566024386141593982557985108828449864787615086236891317412915027371511378834639773325791450360699899885856111682495332156227888427178227882120524682288494000982373798390753964642561947852298849776351694050570209576123634020988220347805608098239823421626867079620237531237410753059644482276974051789386439885495959263657383509156615508835232426184721645665649993926651369027645334073937299544330988655730701720280448050137500048187334602648614472592342454594787303467868192802152871668081078057198994804370256896817015589747503046127021973148203446291960908996397405777505236138356526747945365972424447339422379304227803086098111762407928481691642447609538115202983403583332916875026647620164256644570281041634927732561632207145052445360161284382930696060675258982002745854590080799475314602685410132869423807394158099458284559501953651953097585934591048405712195830761588533673050683100154073831913817873388710230541603345296287731653096974080682449322093279686694018207310927707423116065106853708428262898272379025345578332944008021877517416400519618924525627796602663463689922004795443978744577675275327092285957736242607486021191879245102107066816035023287367634168875605616249664825441102395113441569695694207592693286661260782506679675750465609264356304406213768881555964812712748631542564442863449595622448130452614811724031141466682389987765457035203555879835809904150168001581865184136423224989600731126133021196174092772443711171894175805079855206147993046057659588294543200975037059883655585628773969742323274989968254022461633887566717672497407348586187474111001845295923112591572944970358898147876549820421780862117577291791387112612415890685029446782219611070974792244893484638575367840725747024800335729944649797310920914600139808285203879627941816751782539450212923858797322256719830538767797160903798830692521294336974269184998177733755212971546525969343841950584540222383959603465812645427610145786165853039691721032366765209755828793387674934669722101538203104863654591193479100905873054825792105507149483853010667730148357407347161156286402445013805692326432746541075171496704449274181191432683107609484121196597492051851612423982220084989054019970208736387290173830049219705650714905850613434104962271547523663672171995097081127978575726296500292253546989064768123333344909644450967748551548661413258195336924983361668687245815034312810426374095742689005969231838558864199134441366264080427397810467975326573985257055743628194529648699875830342284069548742644887593241066482676129835841184409260456334251823004210458894531284934874804366407538488575121229017770352770271656266204431292206411670009150166033501180874658879989372037639797092931184009412068427866983649052921401070736341731170592473815540792972057652442807353178047115835562383416100848204844186382464343993304988185761783170784626301968311902409124008032834684202290193538762283003645630317390543514496886163422854614515054863017982423793319224040904434097344308783037505218124691137784835420530409002092249897898960537441162354608730546597170897668166462047115645689205964546830350324095573593489408417109174077641116023193197183653692588123774394792398631587354400060947657237702078067427351213875375971534030549442126571819303014625050354822895147216555946404627384710691709229322931067017081030173645675974628130909377948247769050858436628214376638552918554495674347387222774706161887688101666937397547900241697421729205827726245204273106715470930771264167217374420910879859576891952266354822891264757809636606933156772065287147246773644145537814095089876207271591131156506278807126760791860978340073340510903722995689181821021351265344958824274759744682141557693648485603704765588649340680357420874604056593379405637685772604660912753091729085608692694402138852876903162182898793558777944506557072735069624754126019413008350282523010274540206357444679265524300166002907467352001076101664077060027025257552900097110287156161795707666573361430527278690808157388301500622674315115847639422373141774840264515712704456727376189583191413524088278962303101906507700194761148874007471931921399229360737611881868357710534031552339638659040677583534646366099670882188982905416375332347095711192165371193322065654753403136486611482777701271781578631908138922838708260620077787091365516745007721861551236550686156547362949917904765924616138351178479320699613151242398387660085502932480319097083932761341713351789046686635074735733506807335678629870207759685428314350717905964239119690410137037442481954166723908341060138590367832209711460026188274625817213648866514072330972036887056836452051685726513306378484151682625594387988891938410550200674953637925478613084803145599015319818743892438561810907826547401062059518746475677670929833721380794715558812064512839229567529025653650237952662509956612205992746670171395749454716996250473920775811106490496467766699904256271312890770645477954294457185846787909215351082761702713007350898635473208741186740653062139364458823030551609439733935554470400651669741399701857290357724122847822373263068201123833890010369545209981565430060853291339539214865264599828023436894847771357994822274574819103728008510335892131529252242053947763385583783459402392389648874011228105520930248361682463303272140810229711126842362681959836378795821752295514473859355335781053863615796119133745889122702959374483626620930851251987208855814769298407985270751898331413375565869025000095434225321021500029811630875154719110848066538788752359926784230639281221055445145134789416649108732053866468345329830045459556525759099261221130829361474423570155240344404851481195508868119944323477134531659021899405483702379476867629186930942930309426191888640092269425534890876164729462788813282454094188614114723269589475667163945293808606883769399636201234073589312036348471240152490222422247204684305860096687913933336631046894703855597279106820600507492188086454755506857081355471642598778792537391008634773382547147179067712749535969615785082606104483334541090769356788333871586933666427295867963990833077493249811670155326126821402498180444849037644063317055546910212176017645294842431833428712218492565262758614907496876901159720457054742480741840102547767751941389771095532376518679770119046367576670794437215467855923884816659011932691402322151279622273014760615106850314736640883008302070330346613473223217527279184514192690682846704162812671562171333828929048262328147278700668252779603562556321018865502732187639301059420099251660785783905704812938722138921651913875634429643140634974013946054223878280549764271645484955697972130300640066126823492333873502754189744188835930096350684388695758545444623308057654680622048904861936338682702994866151154380486117842507223640593119136350942429738485550441765745285157552227932293830654604106860197330013847555449101677925416854077314904539290336457121914936876625675473290467688125668050486064709415264388911852696063703978129226031259794051592382918757869659078194251064076749141681328230029725027066151563313926061350958311498595671955530365981532685467884227616210664872589127396572737022123770606818008373053978796265056601793042659311170893177707718184268531262159790756944733498275057616312284710476396104496502525681943221423907997445015472532662817932961004003366680645431355842687866733482601130441728646654091417782020187743744729542438739820956217421950723703159543688386030725978075227858293275240142508220854130305706590090059455320204777708078257137755585449469143936477217819636046132679029264153402107897599413853168065785974842827962545278145486903997116190826514525049711253279595426653189027014664827327865514263854024920104251408674367972508881925949846343525091396074168154271320280936985113171042162528966946477480886810487390195637533648961710779957753830568302205510284121502788876743681805861861750127846909477809342973712561983258669775013241204342077957620922239781997944063832741738123461669062726409500096131666798186866502227874713715094869247762877936700019604825064381827793278704655962000636140904501400947060238069250572805894398429286073824444788802970761275876754160987510704191776001127059052109411389631240094523456837512715629523102131511594275125974614007375335332474625446489428642907519450736732545256298419271043264952106129605076320116512849295901032703666968965114224325561922563372789589098051936234680334942341518202902566384667439245167968740097371149630503900997757960957325345123259641341204747932503684524561786311622238824451545712755395817589937728742020662395212773818182129100107272582328203952775732233655959342314430726315969755264603604740546953012790465548156976146637590742678963487093319507021489877889561140692488015187558267814299270738084192480859405518420367663311497818354813947855842339977773100693770943058856974434435125867048525003018892559604883919402574105704853156148174744961596198214091700655855864196386110181385060527117543701792145053705069289703624214337887209775200819144591199814360188770418984291272850498709890880762093274566381906595349788294506434727526705273070292956363782929018212335202095620070062437351361722256958683725083843820783696671973571881863152013901455458537815010759824028813709253806281904491130185311901841276102319066578155885777575907980912070016001969248409832730143822795119080624942466810814222672679816717064658066666098759748548864250153358591509365392528954512527666215744754143565031013742193774662186292900254118499595694792411133218251616081287691259832320131101267340031749614463821746159302448386695146491423472982654223119235884523361035443604939022571709972584814341803346152332447549044455173260765910070085682942352188890321278481626263121173158111880015854728051553721492846624718456975322422876681500763186038619606219435813448921662103471298462877507646087599917061760294615776893682361047108851918959481136817722872328713096902677608541187130064933697764312691510349300844396822450973815153014243783967763359798172523513430637285763013831952821663781677293495400898370359681379380255064441515249290815909739366014718110820621063420450407831729326700660747376516278014347229322955143424575243975912435946679748743722769429688644888814421484855111948294367721308133275585905899659670065268320840796693835708623533330863887725632354766575965232584513413713658397540959251852294034364760748131598760537397987266179778805871314414598744611681939419826925194173322947102159585027725243355245678268778717800365613841102942231191955805313383959699984470096924782369169614186043004744078630393829342370559407820676680196237674588460608625329790989961191621516757162291874786698712787013388085969348306332206154771969166924231647991142452986687193868938455798547532168291258076495388746264844748766648973461808407738113401216571791880123943592018439024524368837732383581421793352540474431038565009855899860010306229757840114576029132971447720020854252404968960823265758203468251401771053290867319888735453456550137654929202707413108927680559438276764420347690934169718808732890873869376412075001429481029061581120107649783776701064172147535429177107843449357313892302647772316757865706973811202447476018825310666635118739433396670950489224953770306739808966692486113588464498956899255988781866898336959593327829186196455144773749627374483736041091488561649704345421693822084664126240746713004551270139015765533411344220090258852977068207783788431221940210268699945208073896802290685103595217898934335711222118958992963969863864870516372077736932618906320618232753235389608720282404870373265109893712087635580549990938619919713139279708754387812686235237886057134265635187568550879300845119601447171425657104895987490406373448057272958628710913775617337915536871168591335402755892243074414353048020524841047250312306887719444017113258065000467456843003811200405309441110683534294010232875471256063884552913010172666003880384030336413749981916884403016885671673903076874056235616362752523086985193011895123451423785255553310026629173581284195726664912867150073093746747558558652982626885829075671918856301769890030166945433956813348843029562839757019130824155671264165913724401567465916052691471581964274854163643932232846264716141205718724552363415788184771111869815565164282573930745400327657528730385980626326975870386226474737788724643062221743909957933133898352249550040024758766778245958599427997735029026755235523371510553607758998738690305391863489092767036166894797787563170282366831953040027448401129610891488781107185675299551253429025541620389920681797404141387457695635071578398735719710729367411648140235307643286946235580940745437799207585472338256837082121434462516714499347833648804089476352468645768534853076947242505950554161816485027170672440969713049609329907716991776708226478853317322579149084947916303724109938068087329888454428384633367256415287275361852103900729246763027821129582546531936855311133527462779180071533264953669028669553772006131510885236512114528187587129514208908372592447189276924443763128385572114074198148754582630527938286009107458598115614783155189875962438571353802060805513166189917895935038042603351831031402140044518453685516968538104423029987333124799742279313542728657268315024419068259315406772617751171070055044236965779660446681745251580199669714459096951599444139305334697509555051396488933955668400817335254203486534761220196552886239032636906136373691918633708876116442721633397314469104860194444216622524896424599431803323761020199658851454496835099749028780889384641741443958651824035384264670584270879962045383689120276863592247679563859741722603236051077719594928716073759071550463179017139481345323721708493709703664077264494830140579456245909791756512263248135940296199961629379656353449705490472030436321453348151878553432870487732509285601934575546095324453296887746049303470550866443106835282298193513910205571126155484851648010154357695392253809401473617153126031444970492957184200795686389193221441050069873630730833462011037014737520702744361291326809767605698712700822102087974287715402225427426341529012098949769815727104866578938636162839799561686142973693073188635547347629883065873258317938578540319906660516506967115048960658923968341960944555433010478269233077362100886921894923372283891695896159695819436939319712192497042450260766205146967520656188512616038633437507766534511527311378325183953361591561155677657200320942756255500117643560048671993821904913877516004807297321160950282854431638613616390087455758733582410089228144002881703526934605709621650053916070487761377255502794935479788390145778754445274254103174661118301444279522305755169702138691315896747547917831049321949016748978253799314082997220680747329560287909369067866287224236434021156502281183030743180416581677878625653777263637531360406346342419649594190174098988901103974363827199733309822658017980674304858552282023831291566692166133466123754547847305312734169449435722987155352085306582431071640084746853735875023106374227693379493940819462207173551653753782439541904524205388312272910708488369844684794266358129621985998152375670660994016990129272804125287719679174248860967249822438280435889902407973598424285479686412154942282858901936693561422046330182358937061375671692707996711968052789931590801508822340346010065233614040411062984941638931877911646655960843179254483084392349694918149488385799332077992688303499982307495474430349298159923852441972713087631559699052586805346649072275853024303759531475937538229523348655665371564181327055606534576045762025316479611859072833224453184842889999783919801375022830281264635341007447820359650411243572938040058500378256352217736473938168644186266829175686952787905480058276263117010154220367518106812290209002112061776885257009042155144905181871045725999777647592506284602370837670502180618617440804859235708074659959553260989606707978499308600568302696116942941242311601902026298174265173110196014709392685273550695583147040753837203156627188254723094051213352405032250137435659176940750126844899430310321239764341820640431244523370079769772582961982754047772061435363915393960518366990183996182759046562120147983088406035255973392252959245775869122727420403085253350040396092820275933867356059827677848752763571052891870131924878334998093180251806717010997402124316292370362244897555695733649710365150895576867775899830613322808240205992843576005688539563812158575361968108131906396304038530297641159621856351129716015590144194556119038894844435954859489674150868947381476826202594987610104809547615682008861691582758817203192687961184346269807224075590238196733955326064496471224374066131442216740178957633983822707417333739092342447934815141315333803556608950529642545696269640830945993164885443765315441127118130635672293083070500966169618257025926460169144752547440033734362601998138428480688997529448526451976841173576089462146383003102001544875280439581343668426294923967631144539635827350044357689833839004304355936155838410316606523817603251545893643909932210512423516945857050967190695143758913045498425344872936362049238305364815693770093390853987533961434556330171265121346185189456782456251588034246272127645793243927400476533334742215941741169157654821479081933917633263609563349509452825894131659548998339908354253825406187877558236145876263318544137454216283806851698083528540576189744387478072250494600044134399678606329385394956731192773013974184978920117687663803588833580697125094021044560516682666352425697912812498448746200571685559499726118171589725923701401098402801731046566193947876272673367637131557975803702508865262209775038574836910320923263835107936734118315316166167075119632435847400177503782490670315190093140171415802507982402841344695174590417436846811212504444053263541331090637235579686581548393319960515819879052509476644485080075112792151043475326260895602556712881683790716791237859765325926433043061137379562838830203108291465636208580261131845077667948930477151834547750612148727133938712662605457541209962460226377101082022061967399895431317255030572900143837422927907829289528820697018488377063692408841522121640416375298693067139344337601889711067357463180622764598982191198954930107562502581034340961104822458881453382403939353735602558826375144357285874539727719940111687870147231303815104058853747386484930092293961767016271045839894058808099210487209658570072356175992662134353044214854981423182495546584613093881462334375963094374005679618192308212974777095643799570275740292395636819338755414017545042602749241556447132406258529006240179498028197232395574958325726235263982523114157538507608678159768848530766009865307430907704076758500749662973980287678914723820318564419249788829327758973340453662917354464318517048660242810932330884520786377543324563222719707307210377315662619348695446630164261330487674190076535507020558564606255719627378356088275371602346982194966076830559387538714388514935839919708367121388946649359553905685347180004195419804306269183576099807180392171171726421209516355145707089430054144044772319144708618103486131315571444004961127427832605940224827157513970979189800138030968352506125981361348303173639551380968097021985179252762636300094013200281110622481651122591622913193136800683690016068130211269706963420062335040383220550126677047003167350811973214174582361292028712330991528436976522612818400190390452186575749259410710119991440785269091755386661070921704580561395633430188365526008803486172505714274217417768021859149964393381284344464155941017350382240190872892858516400620746019705683781416505843853997131542590586898361389230900709844549457952851683063181292124144573703786593813304950545572901120799878177080956420264268062307301447289779877851097288422035957123044917739579236104104209765092261243862579494076219031938415054020187125585260297210280454653105508951431523821081587864184929275664337775103192417935911241150210461842056676125083985778980814017635307099754862035461370393917129909779172462617691975706188248070127586739607004614395771641978371917740241064775135867752244827391611340059797003333034533121216924105784368726245625508722278299071753554530867927416519708269714258170567073664631234338602738503633557346827937002944480044092144384600680971461563137509318119322576710212502767866498832672468304507603416224627373856488637062961456863601614757069745747853399418552120157937180089076646871555782181001628228690480519928681451444635362800544946333419644449464014247939814228712421507848520366196241398874204666082120637069873566620282299280668892516670170986136725458864560039715943018652428899856102281823956785642994497690991927146354378299523039235892179179891947524607074274313849764494622333229260151204193045669598524701030884099862716849035357527064077588910438726261316890690773996901194064655303208583415960823732934406941526133731267510563924228716757224741023076146226946833674909767912108714010328593667766777232052639774538010342509090611946500731248040651727478248755795812564265066364608314848178930804248749835496555794599179004023217900910035700978428126334914749684285786430652899627830064980186637182791248967839573307953482342894195926713770332126594795447169241173305383349381460628144830884132176095219813306864011697716957567601855086095836763575172588049096162031323825411394857405906880277518818653135577643218707627080114085323064355299835267812611947996237413775360235149784844187552106882757587863656959968084186261977249748149494649566027085037545663232563417864548096918735708867713142012156810933141736231852836668731199745917719216046061754349028392443578011068788790106554359341175569171683056169965321772043593396516889892959483699950354016624649627534190163888908338258679532660458733547890591402585019410828068524704175225400222275350954689596142536669303139285828075297901577747200638221864846918566134096434530763215164581639618457275216800049195832422036757595659937406462055638293672561525555418278141763039507096572008964872213612602936724274465440393163484630962033449696788042947748155654736409819432867423842917778259518291444679858087846296961787056616908659630277471654379116296551226846415444471727951445058743738623324786075100239383878509920852290800396394235124294939110649692934970512626288894094992550951601348348930544537410228401594461510948726740930739512744904085693388298728827995250381708193493336483464716753027066053522065257817599673495864497671191320214447248185934511522806543262065850988690427885828495641028798172557622051691445213572412042061356122821856768627437916311977650247607606894067614832285777112059565710818145821611329012318326170162344521689582625341417387419162409387985442302338191259117153300889904710031292433657237185993121037954735135300061343554235025559516455363081200630503517527970791185875651900754480033781755357465208730743215096671919763867559160141260421803253959164290105591974419815664379183553567857875491996868514565136930341041885950505568484553001375939233216267288507826212398470283907466428931552408198256094386446982328940453947103082044866009572540632846874457148235579722713282918374248817269676058255621437668635947477295907428242197583126741809433329802791979218100617832644629328573374748391416220108336456427569089058935947240313070580283519717336949151822162066826038003915478554882301439967438773196044783235114109213826838240389035367231542593108924477303043252743255908744495878651631242975031145995208547450262749601074958740167435098864113739612880204369178402071394032512001998748171602138759759188078929082211406899387946943897264959277701813286610695390903676540680845243089722718470647261943022196309881109755312574600381263019187332823648209661936486333008953687528359527093639038867846728911160664788663282876339593789519796379475985057287762863867413263290551302483457551189352364682359839278097649488788097656893985293550015902713478603028052070381606269162329736917300563440575018573418059932876322099262095138917153565752025032281131357121357620428611873070949915029263954566793674919779468195833624836592840948912721794084823682618334648458943608253430084984598256121829930137953980721650759008259633721293950692463858570498187906453257653551460813538094428758815768860160007661728624203834849231330209520563526334702081558258295163424157594871641514849411955664767898837150085707542312153285884981160769926616576395201472345428138630257898732821202315333013242776249289547317335532789336784121624654156671147304713994653424762302864473639418336855600910738428440127524783554172621356034538195345257748304233738943136525673740038850625052308345822055589694922783017932832684936171591462866452682381784995068705928544305926483751126083046885658449180217743055370689261590075737752380446908540469154278664146774004814527589470461505928948510242033164365474682218849852346539306394890872276787029715671010788058365390825797311016878501019436823155634038235189366049404294261997734482470102198065282482670463538932982686006933580205973367812537354962962867638199715932785838305953348951381443185510763901643047765919282514992384171183539529298082862397912662927072475246452577156194553135361041710094026603476006288945014994286671236679611184262128395268857334508606844101681497817203519121431955374003968644289772161431240224508306728186859388458035451840014236942685395302834038927697188543060670915787522673655790818858690953015822242424996425723067531739665030839337025984335319228834260368319380511588051414864250060688629255954647154989776628585995215571004793960531653651249402206985587716462600320882292846297513188661033067128960807601381424417726146157799360881013292608087488639528388358049663156837305674174638615415615578220988590887988121782652544032528142904358318491327150069631906119847953625433140839648926075267128693721816394742217598996768257064868650620751326721971883661270183213092928731304244343055423813307437416264018304293026123068054712700871788950027292483467487430354443246950643769719424706521065580964895051391877547732453563353301016244245376605694938348942817051939166446764291619151618763792810723124802573573262059918453160831146711040316785413436112292651218795690304212371829876720203260824366197564540863703247406726368254842798790014358801706226792043325914075877398984403421329881270035694866461743452832146507581055263917061491687941340097213274799245815101239546277250749983837346460248239818628313397862510429398946068715424387254298455414530072630779237801454316378066521941904064300285716836686588157132068851937560290636922076734406978781749310643837897372619874476716169843716880720681379557501474086384878329510190623828992160245172007262909369948289586657986233781035913569190553473401413970324462136918483022230370257397623699690179366958138131999532144617565815441765540540253075509748936527253394452810801382046961969289779128049807593517268424885195305808472236268787138847322216212378542457193103393549868048347292193971092419502274202609251178015719946972257774825679248886898417391713979020569520660596724598901592059390115879029571491133001960833853926653460739212614609508434536647844233208899915108048582997953226531002552558058633835644012243467698641378241979012352272945132228659058313603501320451759651588010376287142516794359953779284466010616427705588216649779141312756848798715289588120439551708659265002551373157210428879382979167194597225422891053550484626624214383829255123587947054291974970245451010883588996341117037653637393667101116470131769830341140438223657383090553806986439037008453805688372504223788227184292491123319675460888340531374314339410108754031575241750035359222012788588505971165306889000086575542352795513671564116637204139956839157192804142660563665338603117783911963722897043137180015913073002571537980263674196232105671071849521710704638488880561932257704959767613961135222681854070012243319723594277828471285015122152931010708067848269338280536547611631359867264724101278313112204659752736916856862137725597099307235552242223734392855790872250645102432916774340211660643338448654200160887056088303128966097484414326935983893545220500281413584304704434776517899371504062646405550577734470293815185914033394450944222663544701878318364953948474432814556128699461036647991336083455495131465961471206174997065587674316282078664586874166370603788007659917529548307386630689481684277168705414076792374079183754006180203369356344806220412088863747707800732429528723012086874078765112714888094912329661327779546789846772119084018295163543861137701906940135349916999889543323112905616668560972291030812634114290352227047425065560136954868925859552404847400607154355273358225980792827433718089915947953481076421129795044746784137151958947953869902712740858088481333987160487285117349362799276857956604523752051769571394275257226402863740098774446671736942751472992459214820250907139069577174062268443606234173520831668564943828249985745809138513463959528891097627848798795510479838186118750066648509782894742043119291367682781054322994872147885510821988777095949954398264791093272271185026442392651449552052806852180167026041787104812415499477780768647928319893905115346918975409561410411612713067861287624686680937106731157765475880711588418409786643235149400930878546655642782516785101653306533596679337974098569375244139521543367221029461838189748905628157394757618955938848555954284472078203880474076958513067665173479880966826409420667970553927865667392406035294142225468821522221290247623795706977621445340856177304437772853746416339424492137980739150139249117113872699426340002674146460398236569092341007651168519076882577166501197346641675259816492152961082430270759541879133775905447159576556856658610630990403735386898714414565998579506800118743648160090809812430802018598934719361405252368673795567659448264679343094520398296144519773655536525219502990808793012928286014381938825445322697016168403936871322220056246305352308464378007061955127415428651960363962366183902124166654335558947324636266620649423457058605982783282684409615413523568659087907345102177181318140033948746601932846977945123851543838999793184487606879271815087362440010814640901160189054076130501729673040781137515838840644925445613066515025121602382841999797362648062891910727442516038053875508700569103437426852786694403424828426672495221324639768416479535421138298206312614519530919951845370589534731428450410292151227060494503829077396982435535447583414904204241333067336729689064603461538065755549619761487942006410571164817753539166094783842370991092355722990612687627310183105106973890793081898914496374736966588723895112005220452701467207425790335130004440170775069102564528390362055870560125697654505513598720011282621187811253605158722871952419251736337007058200117755036658642681955989043832329671686993478749545825274094458929381428036402912371245185879392601373017012898182064392367632306873698829906524567579465770387864760039041302402520022979526248684251453347743692355941797147439687373129894449814452133780337140328208282071637257435696328245085569875553679759174627429981131844863221292675382883720490113329186948373140852089626998082675197015939433303085539954320523578681411478595750784027924741747489524512954800069975543733076807529891750697664518510979975907555588841921270753045257368583564766199485491847438900672275438825291194767095425642301287633585313510003449580891386959814546550387208382301813192441541178385981986261978683907470063547538767719289297472276505909880530839929118293358769403637083885893144212369589476708295095464949650482490449138705695754737760819147718900155968012618220883041010043760658013905153646765400337806910603316504690171027961633590704974443857278978573213486611862797590885992668597656016570154520348128378300152989779688262075020602564815786575205914032786990802589071352065356042546876334268501620266767602041326520745846623893972735365845463408111420090356634006468059670033380604487460957584049285810897983628475743542957023535130176568042968523797536655362080496623780616374417117722870660322578074107883147586656358454594193068510693994352173169228618898266789005578099140108041981340331222274517631730483993269174881173958880244438610050544423015332331071693718777685735247087566776545356899480112084387836034030967794931466498309201040821278796892572686655233772501375585243830540519441762908269700816938006604480277988243105865675352951957334080543001000006050910486369827938063751165655299206402861777258103983034078578311834957358861647784208853484678988386496908707626440661581148687877169002286697932244085255813234643235873361508601348870910131221721428725398740897781739445711119813702332334552423026178407109826781352578633855262817029178874468924055247636997594882210456762700246149148390775857345754827399577278485061481500035956020490060563632726268919294579123520017585260894020746538048780206966597568516293664252996394365126662350753988229855335502925898940066702795058802601468272758179918126908944664868243150641040372871129001260949909137313639360044948907070850951262650869546969125678908518288322110314378209657196785919363162744559351187525725338997164743867293395087465478841478140422184302584850096013131721547986532772215509765709272376711410228319377710476887468307494519169936562603749666445744668032595024113469044045910856816525375065500701315331088738435882359424909116754117817021323034571163120154894609050669588713182243927463726660027029702683316847112099806043004554533611266860772153155583883131149827015932948504329916517418446835490676739660554935730705041401541751324577414161210797679133825836826060164012252753066421259064198761775412690380043902635877518520733044438548105802651589798209212929688521343400091494279562505670920096016333314484892334010141335319737886710425911452065285352361024935736310217143013355229553699340423738739702381943895828272411466204990631943636763765775291269523121148144408494454152414063042562076392498725625555974669178403269244209362055358688676723751860313286021767451374240454713200980126130468777393969535562758174999539517341344308259633851624825315878465810665523899367037088716358055284262510011122717332318722200183043328889385953645376312099203914736690967010491436768502791103687130121913223057505176058414238328072688428843731588687897741463550955035103069096271055985719836524173162269276345560923943618915395641661410704317817095971556471136319243595866888905485163671993279217969952589888162917054271266741569449694910705477499090737937262323438301707840702851940936195793132722452232557743361922966445935488318995707437134130561015362513368583731600024220414715614246728712709157950690551178405431859420274159373663275846961755506759180047803818052334958732404088805348177499015299297496714668095182136335277940091982415827707558738040912870925123688179973282601319357622807707605453345494602278774468776636574562545717421354612741331184009153219852779452263441891109584929879978298796461503083303371440967642975983360625587721010884548997262940999679013884462740415677322643754778658297306675148187769142304133104933117488093804852219867741178587089280433462851947253349989494334922011598978288336008062668351540620437675503216907311411796051558018118053224120236424426781641440217431217208703882315389413885229661820621507599389062220737072676871607391677711204486610730780900179047840437974804014445631850723291372838759163674290019956440632296346294831334561860316412820142283059442819892197453367171305357932321521027139997700133363046670051743169585595607539141889252118688817295021931688337452926251893674680987146949198080259842409328534123784557071875176023277880268394502391686957540385117039579051634683111796510373637679208702659634398744314720287022326103229043969301192910857687838468823554588876927245678926022068312148717098264782783070300586153479971567510043856681960499590815457671242938478131583118865786634535524747827805764436325859484300280633420500272790607923961004856046361056307807434798990952715617448086300694746827081939044275456650721368676200467546269031445703344982653324575120784072733109863926437725698034173584920312039739410666816290941601151189750013236994006069408993097879920590500321766381263766433019131093850159244861141608179956368803747720211100900209814680095282598816737051436438619532657892994799900579849573355989915443653057069508766479270241193316162918015483356715064272486314835813348920629253136456751096600448699634929358805252561068818635088912464343020142251967477693736467854805459812076899237421992019736620369522803447795881063182604137046618480086052546360684922053587977192019235523461939381200228095102315829175065741776594976455817569095773953104900822945129413834184834850414707417562972892577392021243869162774771262231776668252194880504462208789911534416737314086958295617334422000562621035851289753212714699779304424433311872704756698916969861251857341037244134936619659716562401348668409918446392293362451307119304400065385792417563564914522009936422361587300050638537627769506700717858783479910129775787489086892276058727830849961878059419583771234805213166266388858329488690381784886626028494805651092899550213930252004363898098365956605487590090219935364126942625226274347008825239726681514086745828099064506235243049784848872906673228199809474248090149443024335240771383868468327772687132179445614416598008292106000987729843594776195049973457918602265521220548310519516095533537081856404148018612090685318636875029464806442553597175581168356208647395131736313383534002934505674602231269072017203246350533365142488752181260855880063717158873242780008449851108563829305837777886138243665693503959748306785001992407638670463450264004151341930006991475873593284081688985270331766443245401088106611404628534913977935846574206691993198845894347258527064462635734497434491954455961807730511428557904181195633626465127741466210714040172082962404312692157737292290693786408336588580403088817090613770355552812332120729101407898126498324215952385539428447041352912455428782374055392631210829770837017501524590098852319541914696553907046071311471731577435468147431244250377594332291723757059192028535882663422347564266212953816546395076851115620879129944357273673005493779460073459500519694953625173226852964587515869066478863777400346203487527207131800334981888737945001187452816526759390132519311418441036450265332291962937036826487099891315803186158769591426210559748652689593648311735158525324307466155169653115434551307737016549756575034462685900727740900738108002978611960327852847356072591866474456531582995706075405151174600726040199392859015307719406556137382649318312971867808985535245712543238119864977845331192845092148323851916718882192292186832148961949495550656420977946008130604453497836647092234195489763441541081644536865493434506029282334877687233514355233591750198651162857467433734641650389544110496633357538321012970403480512830519783142157731860924444469004543909820477139843894656662006051271349439661431249841776348404603555195129836387686819207396669320236640521918602189530868616849073800969683842156044737971889128472661325817566859371949470818402820311463786626976544055752244476331519321754967256021102539445250442359975834312298090769761432126781655464571756161083303842588861290413795135561811087285852730959614871928600499781535877642639610190865763034878123050229480766800582246086553821132243129150414679909736259982513921892175214273964026142176454120303739104147446126495709995447309368675149709774802571806281860699085814978513659572913815921942602105769966984683011849698796154155335837566951927514195491509182200868959334392572664349329452742558837511830793408023251205730820553712379828980851876067409647183487676188809035267239319559635621782737458923781706345600081118286274293086806103308216126615386134294179118423349824404808681743881995367449622713546445611565969636564771100042075573783013308019652640834627181173160483056940024356156565029161885797559843619519318708693507171276755870427187854860802319867695684666181861478020388083829717401024392407651419178535521662122484974057527533907780408035050734177729829708049901318181482238433745994368512790627734146824019645416882343540565408266746560950900887740597757729520447766761798397468151597253366361393233749821033990458366220220225908070450969581450674081936773779286877001392966188908029402274753992655575274867781042007760326043211964228734956251569512641363652810590237925058582027012162307335805549075974187796236283733902474254786491356770180036239320996871109928087836258128000141867432829103762820536045505267430959109284315192060737618286300204215808770051487188804924479078134195333384204633279810995317094278086358479728002627903769413249189119702733384355167244185185489253353010736890863844136477845068929521912069543429322696955636053689697702712606370785632829347839262681421403896339320955663238793048790284859387324693640680159225409086859454087139805101015083330703932458632354306749118007722447036052423924502104635882365649913087167884897785951184954421885505074989824418173352237396315428753039362691614357680010456789138569267864393473037541710275558046848052241667329076330111039304742284963671711378902542062073888038662217374614083061232016652618271266060054048112167798978394946244701207237933184026523008899354585814348006608791761171310298363303704234003982648843685637038163120415145888784336599733060948554545039585674743685106328036179204225875123091505509199526235967980141276645481545631020276591620090520198903339787354333914959908627216804858510289158230331473378623001553115270326684521039749843694212522542938685416150597176227565879505837536578303063308642689584873191043897809535087037395568601837629039473829508776702854555612612300744688536117792744797879131328776808141590957959743395399286413064139424108028854399716115065964304692387725938434485300960811529058715806022884223823414891500631575404364789043191446101140330862254683629253582813066553543221763788102331551639915446010981052437568126483195983338786380563817964906884106962061404734206970578588377588962369599567671199781627934305987659371418687117684886863868183585392779013419053284675069377523820646449691770136792694188806320350267254502903751393002449957809298384661793683754764299099999253020180796976594590286757785908692054070387882811724738608314794816387242402352828266083335440106702335656538600495120217096163352257202667657174003853785768920047440774923815975485062562951344260555625856872686256618711690459752291108515388097649987789126540268884039932811391212493074074161743362258565464363241170494229979598813468008124185058408851996189775707626911477787804337441167506807391847906244144820102898761064630938590850939966855923300868479942290578599365172443610097833497778730746446744382259394463492844100430257848650486095676247455896170366321626549590144356813594284234035162901411678630433787883179003645501286493103590544040438612157150743302742880856072789492874091999536057788098655556461726152681130889175024911536777255638815827682203688733801426565007232042554469517434236368405961676880546078756400831741736965019316581242745947809618050917954578790467784167121384298980732218033390952574540331044902042729692010198733119643358765049480964845916815615755277475476282681508661141112617437188263271973764655952118207883274208754121027037056058158922573840532880014305804949904665400723073375185142779070957334690508799268400534247676942888481299633263690456260565599561985184826092627676851892043060300447954977877092339667603958176801630611445822336778297623447174464197016072866932332025289454655116913229961246194317914118695200030643916500775056229585015983575570383969815182985254639413376120121159975848229256793411777482541560371680099777693810263247715499489874358440255478927651089987158140766403488807439513135935605637034381318263258331225224252207030128913661872396716152799987625198323354905717175369425032943892957652719229425124801395836962990857542556569386766370086165207769121484615600670759861927674761832684785576399502651574780122738743487037201011101989558454844652865265602758454159439322767304542992876634314843756654011685122711150478737634412847148638735652781919151358658062289607075814161311521299523908331709384209166888584146945424598216581588127764112700912919217240081688495343892417952282470343564687367053876140530485939069285900400615254645567648423248966181441193025192277712514977538989888854138259733050969979600849711141081142724364062161291834809887654975508065522183229934422275600237956915828784812787151770681905030621436696589928118718911810535839070363113529332140151133328027518874600424036884911644994684148730025003340289248882359473687745832953299901036803068174356196560309651086100924538473056021805959014700378109694777583575439034532332266156790012092492094706256624591981875304096304975907767943159672910895722856527280682230056868111505725570867847690192275557361548096559697964668714833192389646674200196778232513563164100591416467012762748905607955332674884534615613097229045053859391220901510566812049157494770789396415687289264969061930181901729269638825055866624560896972976219975351078075951155358730484265971535003688324159099000595207989348280496854187771662412244006806336547123289032478296868150336653937551891898632367064225866032236341764533391938263102539789925566718396648452008147541340923253371470006335125649918566052916013109252741473636907599540329458615766620907909374485619337713578350107371368732769222301668144285048682727382221596208167080328222731119274442579843074072065305923858572184508513956475174152713124994343228366141528061975686629723943973367189030203056855482514417853033726389995552112394550393537924608539420692459087841384686474443983025328464772034287897401632206446751237085388312250979154964436644101459322643733426006242808084526928170107897057255393603654706453181282438830447323893935151957732101096633600432194937200143267172427377003006163533561568490497854557750849782511026187879352074394730468368166051458719761035255371643656468776917981988149274611721675696571837965997088032890953050532775723855103220884097652150019149721066012424713404484216878839820828217001603679577165703453550023454124051830572806072188370597123346859898111844783526027599183086474841266249050992726040991840097373877615793291172971473384938304705979016139108612080086571644165419788129812804993597176195048869784317956770206196201625080604609069117171946119284079415651909415116477225728264420518262934329563491065889335806290057955948632023105231596558558483019003478691772507494075523945854192389966519918799105662655930744187109829770340500516676904017739489393262254624138491957200764249906291177765802749393746260853595400077276955814579569151680199792967850093809047940190871802370073847359355157874111084675104471807830196498755958344097851335544464107056164924865746559532684583332553707752424120512481987014519788895368533952706003994259968476540023386521967193543681219869032180620230298448888343469159669239367114085296201283864123211524070735766277292941821617794139822327535415960815666483454351074101811310642819626880199361751674216543771604603988109805804792467498467927132380830670649972817754481870257668464708288060149057988443532532816321679689532925921224398326944005349234404080141010676364831654366322519873483429876832100561116805183392936271703130706413068710461166624526450992720954191660965304271043840489503537271844985505303925607511173536118986394679962369797399569881147524812479980978589048282942589155349503224024202520432199489786298678841411570583348369599786069860800855827200814683403278639421851235594895163567752404318288048488752998623608105268032945929063819850494605765451713992243051597659516085293435229999713391271335508166411848689650452825110946690462906659742616038452724721562669039558406724032262317977103510409072137732280288272601827437106846555676659261406132286086482112633231040176578277577124515222655867206440427988490538547659980894640820350861913522975910851664016787083853279567112352980865669453013881153504932720883220960845894615361175799009492148564280813655432031607252777917078223949369222540626666797261046655803857248888401534031098095628289353025104885852215145828845555046860752027402397080525005109786810995642565627288155873174289459940776929849398828566553639103321842906336339108301921891885605377311430689267393034356350055322209188358079631085050513004949326408570876651609984364691221439072719804754694275286773366729990742164109418411219638101163929283636981874159308978073903272150473566276473181149621866413993895305321924988788288627238136718751925786333496003301934368575402931355036224427239528508129378223203445547339307369873653733053445000113782229526251390635001317690588376319988403591131295295772488397543050338463545761719093166774558215479911142262291930136709086332285665242311809450125098157723329227864416179604630144353883015298016529667490795331739233065336240689792596973371198104352297468430341410081016112311160817520624280529553783106396285076441924907547870415575139988291841911583292914705562108711831292377943522820216458931441633673272174578313654757166233989086612500895589642158340275927088569167754884388777192637574708122440022949064466806702255546435802152221710434194488601859472780968850809431852804276764675273508451818214478907864535403662117866326125902693963595949015754635946041723256650876395046079404311635880977851351625123905893883964364509982476758144552174575306944290326418544562818248536559787977018059415519171294293576246695051625393630862929402825898165957052152262174280139952022691779403950055245515873639176328784587154357637211152131198653899835695000544269221906470761017934749869810318171700703385022894385933954152688484165846559489700017441372646694280678332331975591595387806831775793794222617833598888020555834085128094860683861769258328603992458695185201470253620848744236789826811077627397036593147922239477635365583274211517201771395775910604045837026698701905942512272339468285097609850637415240300067399369704979358737374324284320089312282400740517859853153223974048605633985187452801858797580971563987539934002349867182287592691153555558553038307768719941444581357010556109303482363122412613758538880548912698038530259785733472393155134433460252037762282019873619494673639264121887722780240861550550502686747252521169598037418319166016065192137227074957401677325557231588355955145844643836209380985561674392833400881337931632756389191130216269392335867470528177635393306712714119482562311795911228952058346516917104100933079127458526161195078835663846104984675489415999234049698526380683137847940402866000503918653419299916189466207891311221006655969819932769348156616787087425476161430767392756284317877956601260576609007311391057862747388272345670040271320298124664215592761635157990461511687225567050271250665119324773576438108034300451438868792899236656012626921179247219022948678329018496023263991510903164442737373662116872099859521094413247306158148669019795672680188344055545838885399022355883958380766038110849887784174007501199087489393021063101743383209156979414705730371527216554682951977710152893018314057564462982411400133066987698578493652343385743281036057426155848053421417673352984970077984394942762158217561048743387541469131459204159087955874624879678598232218349446792147918871880967392537862478373802359255732393143279764150071104691840474080582757083973657922020709283250522274045685216222922672638525988128043939223298755035402947145381353414228801973435409056897217930563975844051048990505607493251525377739272049807425735257736616568280244637019301899530935174950563183183200642473800929173567255163939714272461731486076179355506072367451879928817290529535665664680311446845727530183099710879959340120600532564750995069879543922819022914495744225748000700260931891729409003652839598659559656657760634284564120953183298369282545490958552672595433802874398994793912720290780899549273204807344686116499919863571660553744005139427104996853393376402950917818192846877120747555475508610081436362108436189780509228978591643985618824930690296760625684070701362594036860502908160373173268739586294642217396846733686350064016281941386179234351347418985574522974343076295345373619053087866578650165547471132574198835034119628024235401181982071778269529830489059681078103548499693813877449075975637674176600095594655416431963800286881458788905305889134027459022156596354135671111564576423922550169433647318209019859960692857834060054219987369449256847705461426538101541158877636286448582247180882405399102111771689801324198994389180858370854834261164464616249231787265083103945356063749518644617973176107961843837909869013722894145437861697614584460812726551789383486289000558638606124495054884638686748987777623872986668970377510412347250799066412282257063113737471602125435538447358426499058414410135005279413274786004395682468595583712668141839093429454251060343134031703642927698204919447032144508920740281956368810343835054288644702735154093598011362530176176106838574572556832969410569733479638111330020267649420752586235352603798435441329289607492020505564229541289218473120896245281054246331633875290826137279282171873983410475489453914968588365773876647321039030468196136068133863485651814329410672465797783791301219052341748376311804720810286764910293098158953125311505260462285652167154761797637853642843811489095815478220512325235634637168423643302562856056501769836604833950524640910662361626172676778921664856407957494833526175621892390556891439912796373270091574708885988460473247296641185045315859773633816555454908273404039146682151935050573399589482127689619018061792268052049660466125989275536476068911794756392801401161157762268832646728593722089989758546936575562333829780015575524583527359957702135056921020938121544738850530504078947148866171751521423029815563068349571287912574583983517467880097270118441181290072211334901337487974453300733349798829069765826727325183580090355733383330215554958896349762443246632807661299253458127226120579253801616164367103060376030965883487882487427744845635267217344485311836570985767661362555198624644925103395853216475386502096308309297184991086848559818978947405502330681830075704805159493628283952361949116244487210062463022206864310553798054565685678052535476046192991184657125570926766830539332097498700097387741766404619516529132646080034035280051385883994229360358185022842199348922194827384134067194170345989965373806348708084191112466525851447103724293884209423184794793159067768251877932405339941874082861580244652539350002513288615372861553255110283380978022984690928800696380564895161789032101280642984983374908233670909284099237383834390317304467761445721088149609096580849565089157426348681181717660755261049518687477551290899140014056623209286326553722496238282701195865602156685298883412228904587580000722136622467764062371373773285091609819048837444155914553960397781551398755237187278045348648603274854824418924989605379791811085433794074565138382462255847829189358626833913513383905254831565184508434398784251675476200633884694239561273048123929352468258062893034263425118495749307567857874442504113131996997166371343592547430530824372741059795445324469161362777908147523605480044075135518845565534595402262695395721089511620687412386378997927639459366295221681293271122662801612533351272791996325098363777501827085590506751908923337102586389546460373144856135058764064153835807279557538135325823870726505456258165586999159690908304471399643777640874892368184004836064696389522639148115275137759657102166505271981853309920669291828687995029694007317793632041858168733718768430192705843298924044136805342265505247900331988301726304660757759168764841005905344812404013831715043227409184269263334454681276289164300924847300036750478471155615162861591590404579917452976628609131214164634652948125170999714371024425752636932619948247958923988206308981731378400606560053441878124857368093656079623900273926177021281734916554295394629470160979008145522326938028788022184161189847388258085795156802898130850992331991643208817321359244152355420305383780882984537443422222444195664725057872421395037564816942146774542677507794145462726442079003291589301839541988047451265193722846465739889957039231062185794600896700024737227067749014269208661968206772321503489349274880991794141913931009782871435910131819550299778179781045151254687279873426220521077359089269021016241826809874431709782272203982704539157300974665041195271337456886067228146306545376155160390856072487297192420126986983000133757624720364182047892026634492753346631636632690347377790226345058646474433839484864992822166409247022617981532247851066292922471439714609085792585673834198981108012527000619644461632895418268537425967877877036937486338020147804945498018038351312035741665911975711114593002970465827543386291244944241449285275595799309352980791398497501232857829338670734881882366922972196669006194634152300999490100839920226288526671618268888382202730599086046927023086609951841863952080242284715457390021724162321287733703907502696508202270803285227856393706900966057486080832730565802577289211485108826024677887206522208995072465747702179550058172082402159339824223330952199847181098644951953754890850141117688603076963354013603051215301320492090930462157224473964242520781526221328433541225959406896287306103624995154618718498103058216331864708703065539606724732901534674269036851796073672280305450620619946693994134637249051322321864933404736359746288269052701498970160997313371363291788767378922818541999334924596880716908901178673695734797462903528512334193704585214423493946268579405793931862721655652384876953894690861493596509810909365002674466876516512579175702743740149605636861488774420565032355251417540166857733497595495060447246696339058647448668646529851471160321922590862284138230060291971711238301561649348578674349092403142243764387262036446569844219386936206541415677590532293476645522669419295050908730994239940195206642663993071855093428892698699890512285943384360798873465897317150885813665433580160803896713472242999465602122257131493135428669638999993299516450536748995541783388169480802542179476480457137169684229599216443120137556689631480886735450434541796326193895400199175555130823884707437960968317529850000605378655160066579612348637583257479814948198787210863300478812539874488480862406721497053458081333041578430389498930724046560944801232405486386239423275226237540782943507758755954030035882432759080207429342271917468825380954984843763518082119216031531468316980376946892811491732114621917349559046589767073851725747564470078364453265416656245418933392877462204976399224221405146667501788904085197693579001265823617941345316118066596137366203088128879338152946112597043665494163197003176804450068405972287499012660018185958893954548721162003331891809551591586235530029326961855268656311606013351974800567495340640488020252250572355079210694244269692791682221774213111336921845785041489204735811370250221238869608775010518407553289914181825821275324580842681092540555215292183736815784685977910521915570331818517406914529234874246392950441704847481480027072089535012532578353211727863963402045394848331354495268222479243780060926490038274158729160446241371882743126596898222199587620178494738880785059182907610337886763110853876988081078092883223824211890203735985419044532707217055236681078730230537646838253939721883218257139784850606217652156732663436365911325416386261362676528030523868351181017462928621184343017579500086735298405836570031789019213797232933295163055019069098261529842324682782640471029659744852558342510612238597828119313895198069115747757583992612310233604924638373615102194438247320412239370737911844462425859277243514797872650135281408231101591609578079409377391146520469078810379860543482038525083741710082202273841018357872189007520993432104521899127374074175899092694631394774622481172245462426917883027348763454729396812976230104677996086401798994117010489363847875168184935035394900336086795954228310732307368318647528617833649216217955945399732301434376471157388437659602099938656534859207690185506095443530390647411328621987731816575588020628382546977413346207240153017382674084228458000959528000628651977113521391171871718849874674995504321977252828716268035799797745175893192042136148568181936194394322087957503002297460761089418704244421326498665048897137897642744663313090249634759683937345837218891101517566884065279611116313169074951874318891346190201210673969663202469386831769353322063247253151584778713695875108681054222946735328806507120447162204396808853347508911477870354474192035432895142239520423971829156821126842765172755034083484608901199318729467536024437087110196229528738235507594926058877720993582774730025145073729919110161894752365489566736023333918193510743571009197414817051455897638610237467505692311547013115292819742858331772880116219714287568021090882280500012224779489899169101347718723830324056992180754840664657666540473470879278827865921649973431867595771094214769327943107622931627485580426632432972959852477824344534565144827014792209935309270360702721735519877143234734504551043628434671160643290568076068126989525855011539353074321479320223522111878507225787701618620336215426009264080717096123024623491633558699912431322749903653755100332940843905850657795933615152555704711442157849489767991945188632347406901903538142278069553243402581803458419673113950276456699997806182262108108499341088497773809459808246293994843097613721415076879521387057037155897400861654899316321567980584672493674039835488447749855350374427274518383523465787695643611223169597645565506787112624384035663116785554515643718952749224990949065185954306208559588235112930206154179668667844878763203789233564292473042587403024060245640352380598234569530217479552169388346077506533749031205050886656669927712428623393627575142633501301427759200842811538838409551423885892563475476146451724399470314303528511101922145704362041704035298453073095123594615960743408363592917786529919312176279015245972307107968499808835554573526897574010122368143503900866561852565755488696093436963525901997187159087015306491208230443211832093909061749107990867769511375015354481602193792435793332101184505474290400686202774310291730673026816038260735455387726693171015794402007916465897972524930308139904335678527691273399250184894637590695198056321200089990962750214094907363665581696086214672433547964796644446739889446776187567536779594315898360112051056309264845887774259423829310506986869552710745473655464749450436662673549196628553504668575817527917048768014528006686885392994625981027752100680069166792658942326495943178138534007644431103026282605979335273209969831918091505057938254948671832109205770386973970679525315630721010990273538382931929517715972664747603995075675696672951684547523846273383699559291165386391279790737854882320766110066449036566299623059276057267272796060716502110337598656472094216623696674198442566011069623282827143787117868181348945367339157442400049516438766944714154265084913010703317438407375100445536344558846844999857532083693699087154788324532251345857288159960736032073704860930110170056277053512098298895769073620509241285012236691246915722480291728839798376479799024984708488515701885541326509651744649685637380491950831574835551006329538328522374296446604154396173279836419983098171536461451241722196201761255273586092726763392604113809019248299272371000031059259970883372692059295351503265393543575562227907234542923224332071722907456313835016405149498533214113443765991691972818331001383540638236600813195378912812041241458953069379804310192161736359745548646819183402858944203320107064300365222014248623778031557266995286661731222855791010588880569595515140186633803501574351681235326957896794864069932570933046067176678415823234609130223526554126614478039816022033319934000527180297125219159360453416883191665770684501115454108127450519679582150552564805145432362953031737625672911251021470564261665811060826474467154476597828681360033373285704515143484608055108631245680257291347180143288871852452744299062915794298146498636398114176460311942894062114098614660354309825961891277495144056984447430046857946301181896917271438756357710948589106096276559947319416747484819202208501682237082419938349830388297355599417587786532973267986119958320997722493405046354065124614851454710111197363532280073439216751303274106240035998697106972426059682637952986196258345297046741668757237244610301080151085354667531682194781887159166889807711001936376699136828216801367345141313123620156507786703718177836756012916630363188820593294957920577909671140949289775086248455890431278066348479610386323267177955507397642475587794026033710162170098790244889992016440607937999465939688817296749861319793670173185101814487140300428131257400534898856162838486671520054492074896301331052397991712105825103995669892507078932718899293670194994818198583364997782625097479733332498279021741644461623297402223187720322770007546072272990404363592153212950740251633598592141955393952648596700603216346193486430656679807592093250122672684735265888229442156817925383222645189674319114718711414487125404179759514334088057408586063330034376518202651714150434105681476994122114478086206300150961103880092819946451585298180048465804371092728236903268979679290708329292773427916165921124173323866264857716297476164496027771726567061943884923105347176383584459321545139036869514166835025378589889573177811678054145142123643397984222973045385380272963857942237307159999595067127554156350832029304482245619869086081910217436283478269980607781801073171086246249291099780513063492924322598973876606563577475815544872747841181514305338111017804249223342570969876195101657319572720724318994606065752317763419593352081191134186491026705070572337896396404076392319808798599788615085847982303727544187022007832686196122099858667771378638202304449934763568063678894828242595241297936442385937175633283943113453950646914469156593713391972758904085120158984982232722480057134636705289167978365124269101462322878397338517911748375114169421084815565256246490518874545587931408790636195797420073746454401038346336897818560106159430314170452547741947147922418026942190168771385917269299068794460460519220065814781257038344930237577034400132861389019550854211965677476801289867902152720070830648077286289277284867841748553058857059654291571647672860068482248167018051994123488234602763586923448216369950093117648945516402962079989929208232325361267086873855185302088467608094609016180912822628353288061896192932221376271504741713168938702210700441296621012796594906956810021778901294825018739848592960577118700775270895386732901017096116677871632445251640765349863597830470269851792140114508860192525335951578283551927818109586296617032741556753106370002275032211185290166186474956992008317078078028766709369004395707508509224096796018706573225948359964680122147257705130758831664629873803811380874991424332939840643411841347805370036819672430305233299566870984930602336516778342509171900991449045603592963495141320061755586565241135679037762740869314269115657691685395661834360353599972571635635564960978477233634210375466937408022672124851344083877668492332471075439845765216755199707012650699183774165591062376157344590530085495177001681903329213959968145805126132644068681968726651993366578502307413814146239661851264295924322356133961181775282753607737926652903054670425052721941489407349493563326706611987484520952012599806460168739775379884663102284987916104492306889561546930044177991619869976064951703030102136823765056654268589028376397851340969517869014877972502307524881517415289553810779884350049688477331559447434519303502699454276359474613455094967465646151115276829144821883287209151270774157061983226799595770950570291050671755396499351182511404576055738561926855592526250498331282939938459375427111567440687913754274464420698442622654035200716492989207399494552143481048265210204954732370929860640730716378448207885459112776948878608821924500575518752716163678299260490104161876827072591428577380055647193146538215964336285788926242442856402866343765509757635027532707670166086304644470483085946519006005554353706702547564977462701623754752794429954128957928368355960873130165911059271266401642337907980021773449275035098667080556845744068832784338931829963553647426161700795413379503839363206607459393682888101469346181057114601380446888727948787676286727584875875736808678409121774716315078095338694406138552535513451239359385208633940207471857192938539180204513468235606932372466538915202628202932670643159444287573322534028163800559415584210034316649231681201142709536730706758677684627388690769156797737819925147010340812312974612580302265746346730591241225791063620463890402883314558874724813946211262677158250450398389821883134957979044666848701038578680364713431207451336002865518225686168246817868116097171402994775852222355502081629723401779353447411102320062091023435653832894363115789757631056419142200275104089973832749375650099615376157678623216773464708885039804373665100492062846919227104281424903946181569636807177438226380369808346240151958400434422811493545010560194702076022932622887179718170760165069531370231492013786534935893954481793816122290122880583609388607839371357228554639197661972080438193963571149859389693055353753349923100361266792016345001172840342611603970368106754665186662884623011224579706011527910954873480788149281376092223997221131384676391900201288940203789828794836950820052679354115947539181363853816199513198979490625257048520565089458791518921268560137190020366903737068845339163103122843508604371895121150621686463807258412059885617680707192088014526706263990273438737074136652604058512289653595407453300373422470084968390646835107361455518370069875796220565259392915228276705592307201111462715145247547409957259233094496421572794214778428645638557662439637971172831004895582040986905435392143788200227630925357460585524673878906370926608029954871134787293112250283504687488184061770494889025660589286149648665508113766555131812892455084739796841447274597894901082233786920996127282602480086228432582382129090779909893167984116082675922175088516194548134307023831929596189227217490100761555709384047550387102568152967536841852630338731221051137768469477315086338417363536543494129516709557640050207705250607973625907869337041347981524362244405879322099821913870425194304033077169007021632039714014406945533323064370369598502436447483911329879538587951714747992396920759533014397116088862633582848509587231508512239443238091126530372938879337454298401775072198443053455113020837203011523130389522493440752394737777749600938845382946501806854883804333981934790885381486757573490899960099483321540517372008619178156194319119535070516574214414119341938081896165256207687145902152448110278555731985156613091474329301308507799700254216363971466175725217639134151050324982779412489466633674355440112726823724063023978028996189473448303832039310946372458492618779921823593550147531850474456157030533283041260017019533626211525983202621534601318286707616718286447931765882948478336448082525143465991738537913659144965118391773989697936098084202544886445367403461800028884836782131266628632385232777167175235899849850924607608823619583787280078691101132992157031785326010580068450366175781017349490975556963406175944795885145425936753043278686987860121826749450458104173393928219657203798880232739708663899351332050663489688663327340049838633927297743079471531656383257358954971633848152983499866710182577320444768663660484463482258355022238098949751400512613274900720668722361644552926898183258309130057472622064201564511008811257457681683711549147263950849368370373254178377360060522506096626570851921708988380508131631459752705418166345163085482789429220752685718657322090176903292947372755369799247986097082882356495907089061908224450167932463934044839379938269142075356968171312515323146358338515251291981022850060085672852155129966748929021781372950434913546522799116347324517293597616851434726430061403574648267048530766482402629897552737292434562471554110680983390912186726888246422490038528793243628406038562385193010823042806426319326930506589345284519837247371523301104735677183647120145810288990771378184157719694895941384303784439133449281918254697231012332308526025097047123775934545613943852378737875242840209821866348668220916915000033659601647656148198734410738069809693009656802303616455866867669693004722280531210388649215844926880595773340434941959122229065256014245322406273352788261035369387430672525430572105886559043801123028904147933289868567191583804115309228999261489949627172492471605985829346346294877708175116108585130573414602264115209231727026996571025077513365035142425915655483341556243192560241363350458138330576887940598191125308282960804335412039002854247442323158615021293414762892285706700586638577486139770427813827897711356446714869336131859659905047893146617824444723743016450628686129241719718421694968321522305789683157871666259257273491012948942120099080822929998188696641062047818509207849705886085122796684211887169801280254060959457332393983339806853134790004058280784998818151659990439914048820740822199792813595550229323088683774622283291579217821502180671488988425550826181692938330632321766131343193731391179536160307112485240665748153848736965052431556646362139734642708343477462249847707456473985592168153472055328084591969122048762335025562725289491959106509979177790503896186440221143656229465747688145249331350420133396024456409867548047451155014426900995225562022565224330235979281232388797813890042296612427389152923853837167655898670223746557286810039318264631327332427705901511040890255325231277410837393761532314890786630724421166593383624158540538603072491412659115345266209911533770121231570737140578111330550710722839552675482803468294137718581920452050269728013815612519542165386628880768060372516369747798495246896746952977443800979544340806469234903566599420080528192281118246608577053799761553201991610082831534492434644851052009498539775407036323227170918835641233154632910331797126754933236397239592819358947804061614253404484272774456964586632281610763597294836019975522639229032461855092611293800178208282527844814214907344993989733104225318633775051694399459333181879613211504585316526451820877951799650180308894501318409530777204829455776176041325857007334238464285189285745551708341443835969482090694476951573274850964652459905457841195660804143039369079910543367129348285946363432460762974102347168936149861556566718047032513942659487547338455864721222785690543739424504964491151422348112315427467673886694910212726943405523824272259577405084141362156441695606356477051288358974740646290179572476375213197240527855142950207966329630457910033425041604662241771000470462748410005382721785835937830850773813750225149169563736959514537000893733388238979892903233311427991380278349525880028789595852769127168569572388271836741373666404839021240930463798818535228588227933760000894940787812903892859535113449830994382525431225745646219075484284587562874504255617963865547888266964568702350865964155527024994165318509061455100219751526168386470344517076659853546968754363105298659003817734143704674475381850349336105106755992825863706251847988585327795286973173815220604239180759333156090237219942026020656342909863140828137242131897478432763922792936299470138508885780304741621262251378149648947788982093446284252407642842704784897484199437758949065750985911299756982291438420612738186509517933966168759030433427131572619608009489078915623329279944996899570198806324450933750536738459656817694890870017376876084004014488275251800321086218665575977182513559955391644801017036171733250444872877755598475006467925129457072874990507271618021119745566716397107930392082451816302817235745511235368515230870554118603109031631656871685681174558544341403982403630525607513503579494142664438654761714820437394887621843953048388813102381035914851577964390847533133897289578929510910113424997051104572676757557726005693643602191477789509546991285367031280177520417399054802807612564427011941377368940917930887687107019281318964147399486110455322969436479424273444622399102163776714549745410187124180363375018237710389260940211087032170716769265694620122117962970919904682277235378507257055710756492184191933769343875588374245791574257789321284838106191519512838657937628551388919623606616372806213175808827112084151560017963115760918391681345290457619577695630984001430058254649996293221165687453210191563586191932916965331684787660926696934367030190700040913605960982905797164032929844005566430457512806429029827110432991006467020325001119860064578188100047618340660314668264707776778018509494025093321636953579182798243643553218443837907577107504089823741951673840919216082586319880468777314862227204289768005654273854973208046408037801589015168651205452681659303343193948827557935673740393465886411601095817983400594438321786784130769606009085129226868286652333761285143493331001082286009450797778062563420207323133003104711616473330813394613629532625261731857458892464192524821211110102065915283061592671813268938069608541291114877597466282259377322047703733838806074057911472030525152450081294579592594648978212870518458086064103944298241846475728731976772809583188152122304956613268012996767249845590389355763136658222130469376641797672446263163223882429822803636778833609867471252713675193873257687385319490253213534572892848139411319818048029473733472850080668244784654747667041723579342003207975345941287232699351493417238692770686589036191592291842827658903575194540287219359709237361513658465197083542148556314524013040296714455072515384187718111924009574272115649795088393254039100944689039740471456988533357368853526908160192271172084967378468820971693054808580184168801471567035539395678581105201992348953946761410606142389701524221642619812220922381997774927101410509494534135384492448307812351172149222167175046429615787740916351870536978696018288484609843917308133641292474932893513874710003568415321324413080296151620877361661101031780334900944903392081619789219188290003605622867782688492998821148592774007067272400626446927280190066666639832577849765603627427040646481877657154153255210820303848343610459003283910327148463090862367013253816211367260670937469082037786383226426831664889845015457874021755575585184971397061728939574060331606615759056270115545665694865386218893777605707777683997491120890730234237626493302438819902035375712415524058748398948940838220390297603067445834819272798614007529683115701841114391952599877634450646061399837367153566727051370731763357410335576681569267232551292862201902169205819269118975033501725930502620505262798892602639246966247533724683834989912833757897381565699223431537252699868614644976468372458171199325334938400323303702571492264755855830119191207572188930799404617374363215369880743290010991083683697533202959859837536282499786278758931717961454158091539585670919527029202731688657838690903171282527414765672962873714932183546206922722825029096475991451486683967961769195127972648078342718694890074578930972580789191122042120766059136312494211184902070025508370016808543490456007296646023484147475886644206257037299694322579948660831743023954157975289285794169356221294531472084894659876711402104458215021113254764792872122666640696689030343065936353225484154383778650249551286166787178217564658047165643991936059728021803525168541732095649625819530628343034679361117766628406849033086169782519292675200964181306341400262344307194493973666495327885839624027257833666663948047763714773828516635119275631277026205600010056014132828233956970379924859770972198346967306746372596854490341719981749230865401847190696786907551498195765813302748894206132843040583749906694419123935864531040180718631906140124184053133091318516459364735118065593453071180217157020623989822322175788510046646460246397640073098606068742723990404326218523505672578473827525275564645062100571738640681181997011966147903882005876915793872239060625443665781342193332232278191550539414790959064928464412605457077819903774416821084346503394856020724738134689965165290535801279492203610196950787173596074494952379852011043192154930489399559319543281298852778401459489221551273509375800040910048673973483075188464428479083298935148446956939772355354967094104442706331928288102008836862777438756698301043685191482605640378104138475735495658857248940762520285423343340355076193794467049281867073860479048601715235104117432476072519698841873084146101960367267423917955837490633498470874178607322818135979442245145818671007252754406036038007500578228978090166519364550021853910810894147761075216725533306109117989645633466913143135606274698973670848519815808412250904193239807814327110059648667001254034893527674547602928984937027524291086214190752745735603250585060593068167964148371756810848094757780040701392708832783098251765194194872698323916543954597698386004041173404695322622115212518241807922454517818085894720747679170531420737159582723498442216425128732857351749799410360719731319676686846474508971750459776142803299714231014116432331532234312351055604113775894707011059639752328266824232366336086072085341955874295053860325817795531982106427339374689067465138369923358041773957823195672923418828721830164337263625131767910332902959614534322015717385594045081284457110094307972798083940525923216319554641137203881428960665303809821502544166676985475430244531834259102122646253521603156736619799955525779736906013390572180571219346915224494017668963951936638318510345765851691375289138611476402711366755843136247742850113784702039221756948020697100049870366515687047337081400072405811518166089161799693584247787193347523893503932030648211137780383795519410063493909018164927479906163626487331081648867186583471805167952147075772085504635144310358114741192303877232279333445646566517269874824751706375207677559775269852532096338455779712250457731624908478313328921310170314427282514384093704078186298103789862010371881047864986441486089278016423595903579807019458961560674370404322387630685478205896760020900859921572268588878195732568667887261785744202131618246209072407213557268051779102676295987423065602213303309310476493837118430131165436389093475533615690675432345819492488770715335727827138223338446268647735823029875805549973976703697083636184173139756035592004827876022616212145806732754587880588272065519503168990436103306052437837459323743088226551716385670406994629403729475343599945512122447235142722228327141871304499292860482344559278822205058490596897676946926342927098508206828385565901328080159421008485990293013956187029935815206318301222462788018522505894539305041980600617452308736184876409357373296455466544270024458749613441526021542873581444582784767682475697119403763375616233636789230451525229021751780879698297665931618465253701941626208814316775081699912291832577954243717755042907649286141850600722647415892999804805382091711497152801161149502388702917557284340539485038154322510081459547945080131343601302108271478227115049318016265091699836734844139581522220324170742042283163947740905137192908728565219538223029982249702644934779649804321079651154584001573087202933924364608320468686895548764268429393593008181176455336814224777279887222880103517283579698491269414564144212142994650059365634524826245803631990443980697441082261067205742093785920151212356050535873583959691998025785402777668925632581209195899819068314740294021424919238692292113157679153060631511548527915147559016981955302842173297237764439043444171594948068701974707122551749623537602173062821738686910195679758028234672782125952835689621590161655604814322500164586967962904050661405589519360263390853024241640525808337151505472904178810753887579217636967364063354574218287887849713447077084090814581538549543383751470280056877521578531856325064924014061087972510698620224550210946420378325406688035328079361371820932607340484395896604780425919103950619459885751385638891942260762325427743826912278914284518516009154584430433137918125292758147345479437332351113788978788631978517586181839391122340799468273590942409196123590731431153887155182720518803210313173202501934908491078478719464618516492564246745694312112928422226804473950329594302094120733053747305631486580659752253231094220643270233203475677569023312562680288835044714060576707643735905318246032425177983312241545109372529285971106835037417020084865566425089865390642627118029180276581886433742027472719251634972563460007470325880761929674621793115657500229160443178670762921584635076056089413912081105106983633250713993101489640678971919636880477058737224746880020616013468465934608664982349504127761731496545481899182224917251895663016977956139592072702649503546678396684030484522586757951310397431317221316196161736792013166679581740611112864452623918704061047664114807014007661073505080323447317948807225648948895882445468856713552246788708403904938373593393129096764241899133585692652283902695159229589582930635022039195145832309441363214946359638271605459418280032335969211218826319489758350398246387082676813497935161558985979477205422584331100593319931463710767474820468743696644643741844763446467354399372039335993918316900924849747382602816503524073622900622245188845053951687918643460891461550127145527712512461169834392671309669793179169129340523447193350443585902316580847592666404271612491208561305380248840843005073032484327972189855320782564951421915002818041158958599798805418505787838884052736418719478552726286029661554823643553958526534131696732910596335816256202908118456786650345229749485864668845004707714970586702986834423642867565703140139962052298778954163215964809186020014814620455828616004837906825999518798295281180825439338359003994076680053182325886713811923802287934870218763070760090649591154922129366178483237773622933474206216743079000757096814016441948333889112304840914502623155648774246542525341370297090046457382152047972254545402941417047360591387703480791593032776185504416994839777327112878458065617203941901287791211299186968898063451662272687239038891826670004794682646362018281713161199392274501515247891890674131203114474900604261627069954875476500998791579329516247091724615096852914844834726599753989822588135931057753631906079217640515690672547933903910346982450265296067089779373419341786078219857746407745589244092037852036252047782599194213785055088448540566819764480915413925025967657021044800067938729977667605622826052758867024067926927860093053801744592691123005939727775122039022768945455315709854364883118060583852432633211851635317097038806952895290578067387853160384363062351758024070689922557871941708171831778108991149861373373287407065064345761199452695921733740430792486286276077345569218605205420581917873939189699422408136133852012591804886152886571651900425428990089019288607115933810303693228221251026539021930397927532374953907771820735865946426189339913780465436494630616849937727804493114338763979909922253699442082934497446720801656360658234350883037176947481587131129707282140444644885231333428929829153707642906426614473145881644511656603457551611952301969818194995741188310435237274027261587025916788795399787909910694592021545255542984084738075158557663460490644691946769995850160147717899207461140636429266860560099599356210078036417568381621685160530281308751322916287638285780546054723345183123451451087837785890671727977515667842484981977801928180282299131339234611452446129928314125380658607803950904763667688194830327555601439368524273656116161722149383404363676364490880367593352939454606185992238150919844621320517964406804509213500915353594727370944694045190562703805950228536448336833265258581250352422081786636385932904922925215592116370711852140351587678472869391256878243741180369563810927904582558351872097426265870165918548114197847569762980542816650200554973394106353882522088318021170963408882304153351872254975210231651524537191037817883953252495606477142773551072350496897096771636402696604448788844866849583290162536995722731467610618397409391951749649209750654451314836983419104699042448282507976161522905042435259960933539249693569529425605000582663302574061436575411491464460137890926749412214656408141010368034159948498255433970851572791464730602896468037020929307188318245142311216959948899834446073321800428820724242656010690500625840737612562660099565578001177545189965494811927777389489467314278670328368937424904871426271214130303624212771043213879960020385390302714118045514769961780449853243384393109750910148927049241698972567608490486187130831190138800486228660035004996930086133122760422458500903508902943787710938505298485387951784511568103646346797046923407829412989770054660991817509223061551250871540187140682388458008961517092003123615491971378955690753071067780515750110867013230104012463945537429811607784514449094484091533918267281338598764775880877394570796647002218815137912513959486002564621891959554196932207851464939024984239428232610859522871045308760641327435717295853930807853952361605585980524186845439772033907768901373469675317392605286215205430728956050573119079221633468997313427764466716538055555772829653092049323970394187249268369244534053930957301772250482209465881771231877621463217499854675707314140180065817292834116914492155502881513318792327262694863297563607848475013160202158969523624294058161706788530920237552451378820231468676933876365971896843848583814390520937790652488019180836645811684120303226721727332830511409142888131114567572886657617473350950429672270176063046690642879501204810294262832951290817603857659062883412986939829917310558888530995982710715523544751735238739022556474932424022130303531274107083897000065546356633767866976245080442631419020632873691172984554554576446812206106761827823216589402271621756675084058359669708849320357575817304866737794164564877893696098592048125628102059152017226541452913201606769863509569228781524366672884463269144236338313974787867994656047673374541983276120979133225628142234367987588995806186454832952251774893774617428228760701840727806327895339914516483420509413409147273193033215353085643628854730401667344522649006393181283434736525828544676511952670454928232740361361183945860211190572753096311641767770495356287348865606436525134938229561539917809440132829917483152338266133903960672367365332210304131869271230974336660061690444312933180379561919825598489114521510474098898401791462748414222167681753759568503523772983108700258624603959363971895101709355194813465930712630430677353351766660555455775115452506359039971028722265752015471434897292818839865635440260375292625520132863375241178979513654684966792115209634373857547134958407464296359227588071979512250925119438150451914593610892269060047355426233177081282117578697329226929266740287161700930216108702376299660397899441741230690697851165403222065692472186109056425557382926247331445915926572303750460870103262410181686889096513192841968689748725421658441550878528542477309839164282295458704186632427693264212373971986086430351125752385777270010005688147705460074273465751114041481724436910633752258445870337882256038811341802826266303753891879823453300839564825723078958885092583563523836649843241621532591857964075156829628601668793092125138678287690042273594029330533193390814708362490453830920640392207854339493575165713085489761014832663449834175834144326942312107860529210577881783160660883903148287083036609390120378284121537011716381813474167741667441626625216739484953739393207586338145778388102399285329703702882007214949332533537096850920698230518931848125445230677380834175376161721586388319088553451887241039803342703321546636536984882577664850567502256524316391652554101259189595605785304630081046292034825802295887402762210382966861023991549600117335739063839034147284850721896359875922821799385559620668379601125228865864384749532984324267303540592661539160802563197135506162417880711985313800128496999349883163719246133051066515644544863259320942253297476979517422095429320075843311523545496893008293067435294679400679282187964603163649477978617175352920493817203191088879920749489265245663215583130424885246273467407238983867765744539842698541769686648155324156821279087062678136735418614542332162691700285292224711728852648290881125366611964890496141477434079516571165602220724027799710699510675637980641858158196022083305610218766263303281399706535922709725164390847058593571585846337827893001105954398359125147045754527789062773415192901839249161483039044754467816516517423842140428219801999962039641802462084805993712842055992055650068899664306018310101039854286072433862788368519125148957938015148662024527394531858242232357316078428592036938692346167730813396813769863569410410761100846430488599778496225487950302522693110367726736595073650553494743388058633656025506948729422543263386440624337282171254392321973410073303616782938450125227954793985389346949476394923227333259186910641355429155891165614877823617430059792849934295444359476829193164358475035149052954741023462966720657058208302057223249779471924218075159399092952767782366980391082398997361534140305602776076203544160010951065195231985450915077601179659969871903755957822861410126672484279243926356953241521040337656904494036016503954614021105618936873647512014483868733515447394972728597483118237990360252881514218658290548863228705888616282047708257615226082048068394295990286152533819971650324410181571995047751581656048861871269846164405307698366788615787487128985811871437619052918405164941096392062746045064820791685601696202439897318541430359440907037208853020110782085129561154631548793279198966303835190650079153906816551252228842529184774672323408601459340051275482080492233229455964656636807028922554169648008771825863605973251946748067906381884389914969630533142076573421548590981281529342946713148877087178780658602132284912443000578792398958779093078676764266127054597879012188821685438361316874972938117035046007897621753187933091393986659254156313020336020896424512212673496680045980732932649413114706839263478415120344730066007467003444072742735064409673910513960972635255901446910263141933769477719714161845002274084145172793722220110924297626275819533608632681298381918515910912128633449029856924232178946463470889876963533186452913921368406491308704274800161569793227262482125840389041316640909441385076598900698441625802294685558188749100549194759597126530453090196288478871431685792386765205647703716434241912925204979636463698290216277756756204115543117516950620017409204788776309732936225944920013300510236683009523461855196018223467050319984174176117822932388801616559466518612845452122021349499669399940695023873767452551345695130086125271071234675254835071814877307902382519622956942102475465011475479867247195490872733844983095991992717821537211218551290236376448873272022599400289152511871649193157321547116058256173658419020540141686971749435888426718900647596532268696218816744256999570522791320789291292250558081596708956748054079678723807396309669731367451750668648908650446697115889353836678199243713844803133029902522728537215607236014264580087232401169803640133635845429792379277574955400688902193805155097175298423057556389601397290258289687098571605925487466444974051912972282054653770634913890885995241539225385592890279270236533193830860599479287979780057438647398228661384304185064978049828571716286132514539770453481973657200275006159137140833304033874443818396791633903805113275135104052078840843929805857233778003949091558759175139034690693681171422383796421040285723326514252034739895198994134258803169592405957636300311922224549220949023232478753835517993900878625232558515514357039978071799798844441300115170633981076903500345678010127858889203381770495215523433463364420740717376629235472019890422132444955002655723052859167254183703575304350491597963513239293780120689921263133623081979224479716805565795980028442044737699670913568108547888530450674833903526248271205112125714075879488532262344814753733046912248511630913068035339239465350541384054367135443507206232595779637265452461627932857576234480366369370469536612793100084593139197282795122372157715830876400300393669883933792460235595207755224135205426249452856149312561318059758310085713639761858869116160471332033965287055905845167890096144206349002039831018063871269956071375046971593675685909011667554517026912927537491948172852402888701093902777066522049457436573405843160753383123570670768132777316682810213718719117427426637334608237218349483051494500312629516510135040662217713329278243135408344345914286343284646315991285699615894917027215896770056377914242586276044998620314822874080779052249452673200432870896486422530612247288714319669294501622726054786542858567647525340419817400487423258147857412881783530263418961159747700150746281850983111573594436892383688675339754164959048300380639820626909787562216475612456018088487978518765724681036460326444214067294429080055268936975783161160085763053332321710562282203233887372436297059641285368184577525794389114468509846820711811278972052924326903483753837441142817031074040465309107627131806864354686921212115312240810507761403315806127239871316802897804029510243694292594845883659322183555098245436738255430919620594796176590679383136340311027564617086844716350036386653822716937900210764662102751707913299419851810192688704818010852721399377641184319938705037437804808957366182989976782495771979378840268353112946227664570734208102737016711976332763581394645013493003757897406025407873308865843732298449102195462643632442573666188077620159197029832562095149667768281378062751195425684861498968944294302128555506296924168311093709089617596111211400425392171805518858314200711369906904929365606734249885058085295690153990576871616369444086810146663637284214011812930955897597802868071486361897337038946204603942339028873762514427389744262755451043938394152812614958468260735602820419744230094849237877390230475077402299973797393858608597928290978817299890157601982204134335170795041183172333876565262291864750595358671142596230746772710506817757831825834830203102322315028334970526972013551949551784833330533506487365339325602287965877291164734210503582017861787717581911712147965884473524014564191429106023849295571068420752774222147516649931252665905839729357178391856095230133590194529664863645653786415686938856953612869170291301581058498094564054680797284365603632334877697536261246028376996374676707478400097767822129092308358229114155111639543973091730544752895700541039113573517032355075495190983064429279084104689117203823136707675342706695706566786560590791008445791020330836241416431706814110434188197581989942971376536103734940429779772218954743073890442632394588233588006631350673554655666623171368509424432153623439532130537241401667126910071678217647914683696562995596548450953581689484332435650999154700444537038850537261667778416821802884974140244696519344929336360092464626346828099889396468666559887336971884313036774248851840948109779884380020063109714611290810690428324306746445405627425993113853352796933373689608759347241977835429863690952959873006233262363924560736484980333344306930112231825889884617815203931966229654060474026731745124223211738239421585752135573401055965901090514730643125249118937000259198164101147160481306757805226561552199793341108438488196810616484393964286839214447711206495316023789811524923866820898028825759632762101557360479739158217775859224392133381474168862142750319710836122561108614816870464473200473619885242270178892883318240159123109873985229541487624201263715387323704706538890935416470453516028645809840256128061480410722888234492657744154454240631257056220478546914778121608584216914089251106030823859951789398526779595295280153005123295770157820546760339279001106677586054727691135132236272209601943704949506298366881582916206707061452047084954166982409582636620686391083460625418521708177839811986962484771525324156015155811635311690773316044179827466380134366861753607097669861751984596222914307546373475144270379560909197217043148828485461988802348645506130926729750070059261514463569723594385470143402016993159596755660797672743471203228684257578806313702877591523551389645109817162764536431089422433762072525862846715770445481326246813548867715920126336861671963996552651078990810037917502552713624799488885307309698239308619625768613167220189317080043027136760484806182597972563726176858811779724363427167770032549299653284719579263764019976862609849167403452895713065607668673464508030389252199555895348843313993274907498476234823178443196871435839322351213209894858382943637122213578225609093711399003997518423414698039172032129311381265211093322197704605554205660114610806409528486863820404481554084165643234347922707564840852485783646851101356676367620022209247377173545444647020646402362525545785565361799372229187455350109085995682993777989890845475793805392980428609021451435383015834822515441730818929715030096845314217950045869017190603232482785170351422661308641029413017967458709495863431692009802990990906635087734402749159514031964324368890791613516783121933191942241117056874284107194701638903348101079008158908911255996435340737948453506313133226614300920362928309643400307811259361699209122329627653207513903019149287583539916080902977930376014462062835597493250096721264678840655266071794202850409344663068708928042287183857450432216200603776041402850264983876021845580468604187058963018984984680726630417065707748944901955378857294741013763795566553528259234713211455409095199183999498044801138527658319298721382363693801433070019624983523321219754822216360565354321578624025052514779337003245135883296595850931889639990488476081105738471048838098711659753641052759344649991708524523443231843189799240759532585589376566509172705680336842169978702660064180301632007296757202786360731446877797491598181053531116382885652424088121396028295764385433019927551072968374240515097659172259196537359995019130622889463223919937103667252440345682397362679487527730907009104071296779851127770560406615783240603340943875956012732655995389413618879190900826834858528432839595736106172668598127543965029416697536675113731628208106592718989937189292502546158932428486045401918991901967134794081862879124021126897000831931326091008763645571499100006423363636574145522602700515933214183981166312105476375973554392588111109462570665470261499104308825028812257997372929401234892878019605270363281948141829086536919088999682592282174126583338271272634675437400545816744563203990467900623509776544263147683331804196227290137697801023961646074951315899592222594364256409988679168214982173575218294779691675628385502628290130560960054279938998925527833472310067651391186502953676729172562084314682490789873227726982514563308161045868508074970009652666662808859553110442650953790233502701004986312354777515996082410490429708007656588632445049083083358109136862210132029013847758459315113815526160574812115771086797835261754555522657863228291664928236554794384707157597972398767937814767576527011497524984805811622354682256537579821544338556817646048389896996563961989691324050732894827247352863076103200911266527246548289285747814103314881422943526827217351106482994310819122748336908387078407820775547279735015262542410493486746149930019059552350726871472114680097214526567013405913669007244389622227139993139361490556437243671271759633793672894002256927745625421698634990443248788966499870457703974555069727060342834907136547065697766292735203089418496764566828602309958487927813317947565721164404592954504370382608192765666775964707182624490222704271967458024698363814970997082020414212992912260713301863163563615316533506587700399703323616148579924493108605280843359800514995952030928976639430162898759239129264552470388667486663474235102518639282436815903521042915920813252290220928922829644962078644553951366572002802889943619680862563033309002964245885202464042131741687368158466058873777028951282268926292718237411892404941210963015531744353353526088779077364588344610230300783031626783667687733468996646704004920406393902428793608588513100317128658463045034364849645229101080932164147978650928636863560418537553634514921297207590806567390842918201797024429701476867018112441271298306944417022951600783772007226617693053945554873386367755692129519963185124076328602926527614288532177998594062731180645194295740574557316300629037378752515697061717020863998158526971988936153211487767407160533984997730735295102388845860484943859056487633959495417066072361611420305660944752671504859350651550424811407595223262536576929603761766416200353487851709628182865571616411589250072730753727140979737126137262907829208592790336742541778726694939718819217068447302838458340384464810504429683636515612059953369771105857747990422354773792362767172867367578254733338529273670873363504669053152836831576009542147156548695143514214939025513312335745524093011036708194806392500879329876778747395440132592725502369273455067039420278481818236543058270277236869022964360226657225431582413573513342852789508255178695108430257915717759274168013507633784028519875520384297121570843541833922906881463639292810269791545780477896841932924468289317036701619517118872896667854031178566155180313783658756099057948441080719109685315173447630092054970630423391352697554759630077517795209476647402461121571756849713413812325729669073187115721266065007535724572195794937762626312541141521020956690562607202158921192556747401467166223025511023910254160456571107062390369500549061638817400160058471934922147021981264321112443452478000004811572137049657055853891312607303332577547927039032139965641908252441318328196533961288378103648240924834227840371370896451739008252256372323908570256487402362779767117295822877151558185330396941589719447458527437512865565176680798396126064734009007769265926451485725237581602597300158413379701353950629559285253405611119890121487548645372250759138434293649248796548060907725977937481221281671218635627306673986523228284872596420206947536803591110736864449291001925255012254751749577545341225423415951659210939417612526480844774083758351879270940218719089046927806040002498221313568834402136998042231686874154140800474321957697402329639913720657741456533634911591233285542063533409139086207537706431410170772116448223860082469509364131677822481915077938886178169603562697559275076234553456259610979314191271330590265017592363161622079135541042171987321123543171180370483316107007921224043906149828001331435392079395237837878023350242613348642893958108791574663752699661209315516253450341499327061006376821970010786920590371566317208891097442065512509631339990506565519640416302741533145243692039432592569675523308015127941389175879117651890295067551352486874680797490621403765101192153226226323414050629147556165813764256819122650732037184415399469259513619273367882226895916025967282459665011053646517966299965302538722912173483383740930834909603911938161182808989919287269397825362492156161458694235923614138877182365876340837369089500275393451416651128286642714416630401063356896678682512846105096828685354698238625025641094320228022313317038149385286325910642132497830363349182263434288588048680412301332049789146756459469809787460533622043974722535069156286644010791050438224696491668659356187956411395112191076374580389673082531774770078217210341893157566847690136741161422718223513609136643252865311418088855221472003529313661738688563392930660172304954389314440980504248283562276278959821318221712495251531353810921935535750503799271006848775936921298702511339235391360586528561603768882292202127166510031315317981966496128615520841535641012982786329323653878652415313530035943090343126398045714250110546395184268670159082081612927135054325714748968256640146406752356783671659913276688900668798717313675273870949573685968657660129877747549379485280232801688677191769779448775417780488575991480546151923675027523739682162792466824318719519458615583429600487558682122344931731333619805677924212851224433993350379972092750743785574994843253783237350987948204167539277181406626183998741861786455138159035737781097827629538664700495265378250210108845125065003254741257975223159703823285403211093157729597200203472900153928403439701632504131611473443108027753216033339931968547642519397303217145359380834650497063830780447378385768794624896717024941575860468950519872730618298925742923881994959080577521800878956851217736557991549669186062105004883131648646703482355204856077958896882495762595345497408345561641510938132263863430836634185191114706136049413818791656629252415502777508179007164362591859087174281542317838493618013388799362006119066633583015326177067137412800302641865332982039360852293829299259272600526420228050494733987587841792920306407829483804199450630206924569809716230681267621544833020926918956110531387495384760509510650634615023308419082144587220370482259487371672147915698270333552525875211805586992807957493173705760213986554872419714131978235849591769192552816703921809978225668812519491595621586840470157736579105371228486779592595322312563367581411433172489279317157094408689520294475126375603938977688157221561866515441439695809674176397509072026958200953945841678488425976143639738294676860762215764016194943890246606949671576162616869687659245586901885673152731792458399761532028952304531451215326790930092032646811040782185461118932585755859210553462777865611108524058331647037188676843260196629997401185456302356773620112689884031995610871025819599759078920002431224012227342106652917562624321213660308533915628467723450402356708291633823018933502401857252698466880822476033521287207024269651452160604329556592904312213909088264801418374038094732778023142718536614295184852968895135563781263146161228738995694919158661122364626343694878885665781168185025909464754569359335114456967912516309610113661590187887201479046677318000664928315067694334674531233380198123967118945244940479020088943613741384121636199031107512317297802916338621655278834060866631297819474513337606385823638267319859419246019952244036979322138252591472686874435247151273403684048343287381681145148685496546119020643313459715467740098463364675631257964594878329496030331144387166030332515438329676127617420656877910878311515886189837855136954383169922079410948810281578195785667847259121532700420810121802975769220160464596980399736188291206784224750410078341939920415093788065945191464426727013710675055832521869677575095815608029189662440404705710925052786408382384582894307261836180850713945885502617765743279714160643609060488795479718767989765873713831781264869559084308478859568833531947918756884874862849588899102231589417364218947231488235030873745782752788886801239463945900542278771704655031280022551472536725224019339777047546890291947324261483840199637742255852114761878572974438803966951231150894425074001719761101532227687917583293451245326111065397828889320593314038906020856024201488181597376067232266131037072717410684839520775506226586837870476222590800027667541086856036943854743586577101150501923011210827451898027227870503322904439396378668073905240592368754996088657839532722656326745728268963562088850075475142104910119638263565587436883906259172206119849240450254362576294318703521471309108223977690579035363607750906407113808472360876439039335675555940610772705028471266059356654557614904610883362122951005464720414957835727891521927521859933482254147781729105233319610717035844168767863242786337652433811302701367077208057516193365710735808405447508115510755662036639133771439106893372599782513484918427058657508505893552513887564060700151904605076799189298029942835532223973094845073261421416790850253107409987864188110508826453130090927707112521971796217438974563983326898468644933762888160923573132363964162683260377274902511415475532536333677819140507477139921041038542206062044689014926072480512342827622063292745254451526823287087148302209522961249626305556516153587550995472692526735927647712608119377075219515101802191516686586742499669532227682920796244470277775408781549816192282301805477968082719326836777934927717418947060305641460852294160734220865819586871218567869019146272109320275994991305767558178263556416177348679175787928311678508974862037679124308720045045107725184288694102832270138705917184519074744630860506809540731570281552482965050001235992028520258521145132447213643273350960392712620368922246284600450903516376223626175292247759662392565699978739597386683309956772552113462456483014943114608379963017360623792744024343609684570966654250537242106519592093691901024072645987201893883563745829679694074409447235170440288093487680886521352853687820119253554859591489900418347214204422063881055040535618867186411012133355077866648227700405819193529084403888224374127014044446795917927421832294542065565066076734689323159596174667902383176332221743520410266335507435202499808737916208817248702341003957573038701456403824213223761341961357043656156430450883968269582662529035220488364013827670681049662152911592640767718442333609966282360412628377936601643842403403880880900729862254460830743921980262053903380289821729764266735325465965101674737198011093346227490431966783588132004864435420349083404866174650593872948146956607775389150876545951746253398245651500560710436978948606660715945033006413267283137074026492395734349417941532443720297724537532248684511884483737227059290343402711682375678955986871935522224094163539461253853181049082893839777237156130274803349655304599172096164447391346912575074452225354526443464078987613518751049259136935548262335843568873234187777733911827038779480663498808256852016520384113211304028671470612332155860051841869512325854175391433888557614077850707589897251886816455368275494281846926555556503483844491656395899894401555575071388839409597270958867865013006081933655858752651942071958100274923120319983752877970652989982371689639885198025887951218226835734416641970001167142105042789000943761118484209823056402163343410430540634472598681039384142452190549953344681636586514651108661342843262768425870154746212274715920143043584929552533790388850266112672815124948605950242867520913217163606083431495661181443374157634764127008793769095463726033718570345663106804251961331619893351067507950413968231771406580202705935653654402696210140651073503925189222292596961555274574462989262691428808550627477957797371871007115772010844757526442166282089072089518158018719042722963577261194828832018995220719588066467878754609748844152589722566116542209317668624567904914630270387172411449785448776109781673535384096716974742350508554833017075270654856511934643095581691036880122529637358758983294105838096248447739275850790301322802387965318770739364933297045697182840830775290962873532657066333831621853621196279976055748478552006644150033259588537531234031486062733796520729711622699114174294485675400113636658854187415228281375464724590776372457120243060708769722818784931153546749800053791482613399217558960028831554357765495548099594151330352312853860040031630631064567556363098167723686876854278355538714317063782616241696340417539046862541079498789310704375638700173643259071731461609204589505451744648020976232567908644212893701572500450831296007340301477998872539591044988146613873244786810283946620761020303568097864018082272224508470660995101670240596162302756861599691837477137552572409158336687991450625700076904854979924426734534543191029888376520414463946511806896209791340176708946684441095967590087837401737682255062754572689958025837440213983892339518973992576975066941839366953053622875513347666734256769680509626421679523226530283241954458748233788830019530712757022914451913007498206344581417281223065685824615398815259740056827715769945265357894016737001292551220859735183678672923074234911617743403901035811265653764857998358543400805084576952050116819595310473521479470601300300798520650835614977395411155273010604568476406017118736628874172165210930072585414391661495252085914222584636394452673600172930611625414355142757108231888371350593930547067306854280931363093158620798123315537829653671586117090718446431675826125662906029786139633560585297300098218071550139908076715086674536597412934176837144392963374028053195960599129180271291324677891190511951553314095138121259415801090800600938378582007527055182718158872087064243873495596512072957197352987934305774097181716027834128967097052266586069946689932968116548185682824752306330502132166716527212591769980178334424721081946838068540445471608607222168637873531667198884939717032685680156631186565548646267345916474833561597530374082362386528874965627905421370438710664256402556073490510419302348274217791303458715445346926064045500730370664931955104216359172865422751163811125566656470715856988194873423693631876315561812019293122882060365248738899587424590887731483053119213636420118159723671336724351424229408379229192261078524991412195092362964595745600689694198234378249424510127914954808631668333757316343080330091412718049502266124782122766016532854549691016761930242066243668651614917261982140550080342079658933186681752175424069936974967285317103363527939739758851908354674185634302665439773640405049112341774875635652956549983753942614634683201588390874087660442060481857844861625458706951477602825053803478422865583912466321940904156826446604479570597930531917687719591287140273849994133806268309747688049309517959288033685416881462947580430051268040559731386912889450092549510927998502232746156752331113239207932349221604199803493501618042261584767484636498753073414494097587280894874850017544543524095244265464901996484923682098786514960143054125651196320979599542049467817231736386383527986358380680563091782892317181925363299428797480417263108502281474691599753126126899294210998898555960544296478035136020260858908913447640423559984881598689265124838478351678659800745290256932089256120294941572452713897767342008700891038777282437064596530159035077084843269186268041975963715695953876473630183372498829487947895198130052120688203968769367538750678755900620479888930477995727623270454149720035199953672060102319112624420760051718334033536472526510175386874589557587649004657634354911028804153611169483664925410680171883229904703118023687490390322221081488721399818800374973239701850617234646640741828830995703798682766712026641286263742568859261696724139766927533999349516620936090236759113677118586990611964238674058595467643159215624577236335377194253698049775603633997825890850321164650517518692479937729141846713543777248197866503201141106096581774207265967716508490232636217060929033507750836487691368939827472292779567470459648656732174806231970412903663784200456001764574000549573809586197040998086400325906551744528325059476073282109851724878596669904408906507770058732609756273983863191333167577751748800107747297976138682584504848884745249965128427813081727576343624306480369501165303543455289691503121194834505091357122697678085429752081285474057915700427981575390154913797898229586052633146703681446990221165967659753797573131069302220027535355099809046376869748931216482204435491629228019659581123864288611451160293605408428526418192075956909680851750739777791310755552005988250638732202214899137676092299798708525484995978484011141508595337849285508194284470607673836198707413636847403356765264202910718855603913971273654317796765447321090336182109909968759494139239885780982828849462300195901007128671053206575417926457952808734298255192439246923476884882000002019170389827890613168717527214079042691055680067545751314496934350230750147495988578804405554798352655795478154797411789757237904948252128459706257844930626298373986994369414905250987184452128749241499395094930739049015293813287386104126224749556473927174735436885738193244525033753913637714898509308764886147037032788976975649922608423760692809824435843513835724064237624985815314557203731929404665888683535612143446739518894832369016565132057242540265867537616645580673697143795018936681729853062670091759331440894319512705598129187312142686896444790635637984115048825001990805077737633517962129694463694850549885656587898764640397856543168600359414948496502816489346569414570558747547513558916688732690926843197456355220903494959206383595173184858958560022914105893328658471152702424570345528150146804954814135042607700829177248769692462765660822925708226185015173520198171922871370757060133057506463792898911883438722336383755057474709287555708642822948376785249828988561755359767649886035007748521591646768032037054780511594155007422271834433860651656707272744127309936311973954190390410703051415854752706492842184078249042798124010950237312865367095671128905757736836556341375501570544770184930047136965559838747639808939034343613111260440527347426725459469279458878729699721643870336314971304177214950398275884211379317360946669681845015664886619500752613995999434466980869886708237551532467623831901809536609045417027180261131283039465677994760035775040236884853092074842547260908893062828618987822583313190559285801708576066333953703624229119598802296362697957019505235555274468295352545873443359045639208038734562528337131472896861534046724371064864389531772024096546693808246297515642295841638170608906220039384395194920809082976047315901485121622493816649749832287134806782268516668971966153777760356710624450200301451306871032080253216648748370427899298388179062617612658042023650205061302572953103442147006902196284261198567006801221870192992188888600268792298693765758830606543104932847530684919264587809241700449127818760167382543302386330387902616034037505675282491682410605562685277289330056276267673091970836997651263161783611549479961574132825005411182350678008888033884883737935874363821185287649049688401718693241204239214420076996059149380798373426046175259759082786597895236777960202275194971123305485909753567151447020104674213127539731293557660253698127520887120920637659607808683703261112938313601247058122607221846670646370380779689166469593108892568542500231352019251107909971205655083049350109601317824419894816199459125412920320705062697164032878137772161658744932929866599431291263733798565315870555959340514870067672665146297766827704081771889198713473244377053741241164680343204778612634414958900030125146115364075341465766303456543861980594237322324681271825525412134608168028649487523353421574204489978156070251184403598146718806799583593712999997018937972571641794127124282052757920327399039262077832708750314034123622801584323565259020937266615124279375475990310428729719866646111471923540468386761978481152755828469363868715810215613082130263354293143237010513948861063348996943612559225495255793987454110431986573164849229934980049742198181314971056450117665272545462690917277357576706075165403654695395201745016277812320200325604428610689008108487087482835004369262468545759390756626455008261456378236802639698896103958421231860107063500595659997448527153802821942457662041564070202101838140268634450480638609079333141246046186795248644740103756095183057524600569752216173619619480266341915596447016706041676390505203610408605148973487214006970042104631763100355119635201094421290248909102585199105271121892920386265198409251826676190685761076153844207983373590527457069291745094849118351766228858714333234628430243659294800236136213062193445292495787736316104304900559725687723372671330448262731097808572096653540724554266625258223077468108943364816432492447795986573025599262535755888668483474598566430957631978599070190951854938652327996062155303708058641102078023516287443085703947313613722133478084633644239987459867388310773240528436397328413504609928314502330350235531445648761642587716797977983595736702543549295750414124753984888548584602700188175187336064796130200534656168350355579152439538933161643141308333521409949254624065846904862948805908411656501765943873500663693365121021838444713213200785367670263846088526863639412905199456741997811571816244048094700619739140929771821916136287534983607609620295600795512120933183710114626361056078614600379597431042299494951403039218426062259625098708356342022728907463090587261435683144793141367275002013921261924951143719028935260068789494646090901629945059855282509009951564268647960923086902833078346852489360064662995987549168876555742160356814304558219618944295010300243147964811433310580861021400551962494037306251545650484679991966348608451453723595855441406997530659450381504925698892737603853525721301291359389163155603631413551659636600923152767660276025831282511600085790782647898631318531477304667281476752184003645675556668573336180203445003845829733738180067468348501681092919227080716180463094492135313592421368499274238154191983249848328223660352366561042339623051495971129755699884851758917211254673573663814561562922276222793072965484103183698580830946255084907046076529445558521923649144716534319131750589148844859316276359698991934229218120200043383383225366314879893088696863660321607955284337324524001257080172513069910976831944158337702688745634739240552035652700380942416539066315612997767862373816531234168256529655847697489969623791546997711009758678229685249852415125440909651218204956690356284603730537072406233619549566008137512447012774040061289269059402227251898800601299991746395506987772981272145676664951214326624788362732506897194002347715207461771083588824838428656279614014117387318514116376523779231093657321229236722363347419344652597343855115773741305145754362491859661507649910145891647200939714038931691700830240209255571663283294385553973067042893592351444198759446692504876865083070168562909309721697382171231779583591043028609918387100295252241872847506339488044283303721143669983483844336558748294563157864760995632667799906817247963999359493815901279553659288920975939913451474780996556816155909092523596618141319257798108097291415444814744717448699419758668676952640185040836707963953803536041607780860785399429748642585450116635885103597122585905500906562915284019493040840926085333818525289160047315555873565202995947483358729038530437627648562159160685763620564154951975354115155159499524579196889722099081531977627338997778884206213434970222215250627694577522892234245364643145252366902212126933677976289176145551662405208788560703166219611386165955924713288241747217776987366914140863903717642036511293703799944784479833912939423190831772459749696352684550371252460835315999849323117986623937062234674317073906230141878786072004503380570000106322294077822165664008375487404144730482272001902858836508882900489635065023628757965560881811774976266048821893606572280616849512747364922380171310897813648723779554629624502540483152492124157594295409887122201734607781260978111043858524685271557161256232427260803327621550264051667118957997410762130569833531439309326848666411935982700638769436920066169091706321901692298212473997417694451215593473975783968578827400693861854512617975766300206167605389516370748533380258503076472516842815049733806847279030352185230769462648208173380958033300771494625112726163697829609239961154522333245328727283747665126492916204961101340368261467797583185813045799482736901050588287967364657218858531578029190404836625021622978659482213305587004836480994218531329594242379944445787057054302679816467963411843858850539725772465055271947388808844240341255070847148055089882231939643319842898084322335674151240377778928623101529787965296737444023801921357537333847583707734384396585631746838006258465008438213523725089856383682180152302487270243342298338626566374401326960360436174201538950283011758272935061162932541575678017468318058589930286063072348965743935189456998562328597127458645496358080787645602091826461679707936962525459274103115124238350250509018016820334992721249654091461588093017684348935272595577457874512973837280598124302956098997554467260253441767422863736229110754762105065966133012465872559504796746912492632831125402913158707784099909563779538397616197370816376533306734920425263650330388738413741303000702466230002333723782359034634554761707753311249095500578455211077363892283850013324846768848056645765436476772939730600059976357233921358129796496769756256065809039517987535429938530507571260782101142384299316148972452284577725698015080478742791731335743521674090142468251869787152276148302884110115180437227967828272423213213272044390378961546511060398060868337735485396761021139678805799140807926137211958545870464234881422706662486330677594450353403259456193775358241317919070635100360978914133930490563074027326737912200666661672139699015100672211110778478257147918964721040548936283602315889129641728774432202065882996082938042307217465080252935830464011393091075860575662246328357485695690186341896829218992170020137739398791276814320299121316640874072468689795588753424677470516648494571486085713547875957655883724436109453163815858860083913775540540168149032976645496662310364942944741326322527472090538920762257899640808009982742760359817824176845528821227349035942941392693451047487070535450703003459164366730640882633133586111351253724166813069973718826403883247782783403182824195010377126093446075722734270407965883539232732561169199105138278189561972732069529141339366254242266022535637119259633177564113265367760324350793025721969242988246182320836070184041086405940990494263040258186129514011268165049219111456632846615978418308453866126470861453450313402698901808373912082248585448060020648328228947223815435250830673953141816722618952308692923482680245041479629973582062259556692635814629496755785445377827662437143735144375357743107780308808307780981484614002243107504212470377412230440526641660748046086647615948687126476598032946770151101573960035901585191321156342837132212384608273211248802283402873640365350415945232286987795781558768239358557154660031256514767522116301142627235241748960016866112734941455112266209078109581441835648625105672195461925952507097414497954079983103852960322298344814575738257706635207940491076450687709462240374184559334583862298452490102394416317189567112996645451209128630235290641023417233008807035308126314030063095109614676333084065535052170897995950510016412203118909072001191258926032252199044716369624114602044073398437163461409246902142047117895619533185085117963944048322843618003705858987801183742211197407105352352847071648750811156594123831505083117269268952165696503769429775758665864459249856890356643713266311354346700201551030363948462022283150173684198669332007272078819225383030980525605941140455140868879617468139500367354661882471738449144771188733423500523345139783209752215694424634623719029753539100828458966144848206204713604176142470474686740548076537416144140314594156736327165235788739759780885089128256713641448861935769001173555789444987120861760895336062847857555139354934747082358175539028347912204574330737895278871407302737137302793234811404342063567439967411604737890346603666186783786424711749326302851184041624856928434745681656959597530294100012810590799407437424217002473900065095259721694544622388041807610766425351441789397834692521935517447481012387099788357616121849762348270711422093013301031659667961575478122516881870600989245224929728755557559900704056718484033659798208685504158859408663042897667787571935339895147595790694019260982594995425905893451531005370264058500069751523704835953112787519883911709250104103732664088877457801521077080138593098248256438078818433936325517085256604157263525359067480786434544209614218144764393836264551760738047059811296473225390749448930200082326175004010642499590117806394767475465002373348773047265487440116904907863208096164204940982964741513090315571260839040709861344457720215037081357736209356202793680317726523840124226886879940272972526048809022056044215654002518200018532100018687630057949336163092794405158552139127038772432019997959951642437965619280523953799896613354113280056847270765519862786334973933943135310480549752345799467018820627015352026397035098362672059307055886958224657313847417400301228788411201231435093480049867983503648949894510179390538802755883977904569716701517477557787619292473363958936178723142488750103321752742575225807169687461288870589560634579134186681808625156174928264474733745920759396710217012708188471680283559359783176621828296926790160948089004979008281570894444832851056039579376245329856926718236696766126526296496798966980826269989807985294657478021558514813275045793584377912375646222105072434951109819178527999411336647957282728651485408365287330170741557001801131793881054566737799009554974764484388801785976537212563003368085895066966590810895434980715452953527871057312063467663731053975188450039397706138646054324225943546039038726417889062758714622066259986982389952031693729789772082932614768804895598724937949894873019173523084289329546892220252330724618988911937492853199791866122247228599292933671150438758026971312185930095590959177486807000318045143388044868265595330992585569462732039784366144288180167289928755104868413199448663315618683629884856012842624738122323349378838807746793471929865174807212541495775405053484444427184625686136468301299488086234988509050618717998722635664327263524606329311772480478235904420842340572369902774408419574490116227448373296323685172782314053328405913634671885807330038624412388252842803143457276160765222056839391713678524842208894475555355971104027492595221544376203619982485683832338600016154045045816686398791386192834952188356385738725398268491584493063714680826169615782698830559025522102755897492711647772179798843521422121110270280848785994060641186500599596001066762400261118068463959375579040155301442038434446783697316736362291746973501177742118256630584788155585659301375210077961575997931619117325914729262500741461214362189510526820825588098836656152412505400032713915008855658043080414593073755082420593713565566062227168425117919287516997154276748736514807578588796602318816879895885047348647710642650547138934168372329037872436560896497346353309581410634241589362801083364211549523116090035460336486709598724279741747049651257216738956257945395109866262727489765295398008175926070681427053540878413687826676018253263469185054262487649067312099625163949207647345273358598145081477397583724975015526620790394239614907784279145152245462265640352702229466938265230673053706071009892777213944269123107217709837204533075212168120998110254104364581992707798347257604580284165472025923086887605120817267917861611388564413134084540047640268389209725673725642083895652492907295343214697405602280777471982376886498040705382077609125316581459202407007080122364572402192065797939878936231560833189986776931269365353918850816799157984899282560670926339367403017847183871494545160926636079105854364488255285180844538252147483585266017318263776438042219073311520495913931927522535037799466392788242727012205631103037370135483456646718026141066273852781242319499119269918275593693304635599730847854613707218197678752974925370370424935423801510122216417446906819219165373849756989653152369165470164632090999190586876088363384192879842031243585547742105300190272496612046811378042121544747995720471302874291308606624883474496752999158644165682855873125593749457250171788919832827153756640232391522370660320208132836342657778330221524085872312855599654822228982367097921628208839243491292428808011930995073263987066382129033833249092610776130989255444178586005374097941227294788084646326350471585869278109825459609747860836006622863036625748984942732983663360403456929351706173799428500965121011789704523556576962002673594594884244718052986866185897052192427587378894297850503738252085194126673312824913902026471465195875796772752417038355993498762180020791589649193354184448792237986691291411085474650196988117468309512176862202231391661173445816114727835273815434776926155562812770733096391360810452900234909749168779367319918192853589925648523283504489722917078559155087095217709527232646334122951076433279887294076700369619638371399377947826560354942775434197630460409141801576110606256699127266237846303541245335051161874475242910009053616323689648200746532328704252498868709933357060206553389683822502007835869410955091369777616200177780846026699627548929166093369366388650128552179328674277708375886028493534377370446509186519892101224686825386968365219733903249418629550856682887413286774146799214901523485554216493003837700309112558383725977047393067153202332914725853228594444866816278085436987347251931586984794499634753508195241098328027730967197984086657469955031935153643251606955368035215824475861694556001526431015142340896948037232868796854515003803552658677997279780389530203169755277545005189725324425010964757557967904796838972629899652407195080506870374528179926502143837346116307842197024097550967520902796663801617689065510987309612977739218439000525851161734280058436374737127338684888305578714453883463784101356560937138439284887985029953973495412876219452773573347475036662018386721114436235937560546357302110239514660527417574501881890965938669591796634584981159264549780876121630849168127316356631112105758654905601732684251550783812299675471471668871249687767832762242323843280711177601145944051051456304588416827285857594479314883124681495233900776190855403561822498581600557500318196406685657448187907477314067720822752950064793397018876102368684462411456242321644431742059798357529720071577392286036570446541380725770733502752199903103547791958259229433349066267470934809512193106699918781795198393951608950320386466229649441273653608326185642210884173639559852837452288874246364557782565912362193279181149039006128798943457650139234287014455722609080850483723194995613733120711960278484861874683881984153216665872655359961144641696988135113315922834175054343495681172854350315055482661460262233507399530132871997562037265494002551625182302046616269122402781915405774886658615456555867948065883781257323225163022869120219415959437510286711557225120830912583251356110360510380860026265849544041672709792875935977694849997449886558056263745650699184261964442535063339812797310506401334593642940416548770746522966670617011023669480723191796363702711436657025702925155051010817974921878214517490513280136981418248719967380941048125093046574654895436936136518790384257272562894210938250013570793636116074275136930114914230521134716437498089025946505812643753992034772650847899080795280151917721163669847701099008858429236452937950003246035987150937921409475326770470817904613831585368123686285386314382022817368231394973987154642974923320389066221913847718617869540359164176159799460571175171898963562334429422514650473593476553749023883776404629449681340381696984387243332921329011891505530900871911370149321859047555537535676693771557056819200351224492099311597826437377045131434434143828994998308207900814064279820452455003889072886002510158096702141805690329712084912461291965737834803544539063509809019223173346059608091457923304574632800539570857888317861207762439011185641271546850612449644549467644953410649894288111886075231754632524910816900137736489304211273437964908159935354298408951635443582441568289321584175815448989552036590391477393242927645594725928814006353190484853579450363274623875277121543462365229278359468817257298376220494601787884786888946270581524221765983567822319292912310839100032561651047357327635114533543399744600247865458217684947913275902230302597147152401963908149605228852491189720908129434220705932792888782308134303296144566966509634022156167290489744377606738347408283037829280714361566773720697682348608612303474723686493264168063051473055623047982097725920621919924004409079434753729675662238502787534838272051983169891802413500284952344230702682484264892057702471391754972462353184000952583993669498667754131863987976197834385237438410403790964814727577394378276741879563901936320242225335913968950214581903211121530698314581890649288493643600019826766944133340335799534853597633126971044978222131539153824776845598771872357345251986179381290057492625046471949444960121796639354410998386012954350627755527278247616770060844211614811379824454868669377418421842783441814637862351286966350758008536576228384068709011104976999804185365987392411640595384509615965279598778714367032058461455244271051985863877389166241548466266299221979263756214562721818940242142763775483977047065297295409067758935804117348364685943410482817432201191944687730996449148253010096428420412721367388395536086495896181299881119479156240108366245006688062152442010578760120788296703938845410207802993450171477324956936232915806122110917863326204930833532928116842086538488592395045801371676300053722093283133315966839168549754463756354707909707168931385855049252546778079923752472067628327794963848636845280705899630102901029650004713461411908798562323982318696967308061302416978461862496857455653291883223711678012017932569818843556400676031409008138762294181481501366908753240659998804305077803984043613858083556740196097614888370924191814155915908822531489802165229514494572354073345418181617524766623144742968031562322955174975293206721596914923271082483251563176229018731886630460274563439366628109901700932843428792638958743288119194021289426723863310081699888004508400813946248272711437167918442092178697721445970314569666138932958766799246050603602452272838006226601663201071412600365657209775110215144260335321983446915958214837236601471834402942175511361647254178048311200152892227403107157509951332022250031328726105254530380332203367290134466810545111382101852369720567217076742856465180241819492292213625856429969782443265201278112085111566772089724784064923647865210241256406880942194546788811024698859173668896690001529706733645880528225979617654087683819297706102594985699134327370315093980353602837463975439478758923585079467093119949773201531301767085560291412259761179122507270655442366440536784031797749028574104976462001920470820702361124793826060733915233351024873687673731985399762453038438762627806145734140919168771281624144560761345967819863225798178175895019777062694368564143919174423375048822165138009028641487256194157555157425857926982019885549527724866412187382095938987973639976933321449486636986652262935561486595097106992386628322258998540539185225810555268453883294696833259954636734161931705962513091452633427800033058040275844950933306031855415282323903097437685131514456354645935359247810890866351227252172071080294334460102610650779418209193044080452018758785407525358748101145505412465470538564960604415267761274522879761274604896800413496073495964496294671645765178666289741880942368370937925603695961080501656661033751382473512127907573001152401046749740391210316304789147454163023154387183512789588846956578784607374758807132598212937160052357297539994677972767828908950441868960160300527625822661791967122878362694565559703029115855200024894190780204865457427923029927891535361934278305617046509388539119959782174320809599159319818056300427228976434529611382695481577924007923217218252775851282407941393522681399507280157499915571943736231788955775622362969128131396197112220020862112310419114476523385809314260883893861139837981095519575713930043763677257777543164700339438575354722615659852727622822074459129028139591584136292465676716915148457655704125921710000988952451588628693643957956073969955189367413642187213389604676728850066658348179082407816365587842768758457825503859847095195212469913017963730359995073492627054671467262096373405189094348522029942379871274184265653264790118257162566766426188633973506459901008080904184776629961041984005320744228793332565130881208464193975026249284033443929201621547567182610460499283308261678907397858261380393214129199889288315244968029070864901480392688363189065939605800003888737178516702783041631408948333087666214276307651363781398489936099302313597041294229848828780097502864336140953454935868126849476095422734569320410314951694709509913696030966004732988399468191291396643892086929887944127834264353316099591815706023266047934660433200048694810704991073173069733348798886311057537208737308502623274009924821178980281647066483161436094146780612298502658051483427180928687150247725372784939575828783093700070958465220351954672049935912633286503475429099248575375878504071686453343214771440901291641697149757430535052792376894055418545804070156260236701300001209736759730448981101072590952652839700319534259168126466787158704340796609004596410212394464812172739594034485428543642308202431425665728918679276534079736888834664704818904103626483365872685014743905400014395062348107190288295809708964300153598307645416649316014904440944487960930513366088168684252846809781610516981717769294409114275847874606086377335170544707806221277313721893206649442520248118243363822360001203828006726652926305502795947063494655225018183325391180552090847492377492631667372419041659138440751785344369741701748462940810098386522152627126636564230346855982081047203545063710887624374466448117232233345570728918230476854780657952090091194003520633894676811091431429167447190328935098292280061487768848638857333233858337768884913070764843990854513872085110679507897751479263133725327194401415138074101824299311844085029814327717757903873403756460677733211715504488168997313596662998985904835804141183540227559257169061242333049363847039288968267875254517432406100613666579917590787316095146449281514999873102541500423822946787361541325197097455503287816616619138127957234972990184822012759164473602329515133190618104844662684783789240946437197452757956218716608841518889773351265511838063321598740849429005098716964162831084449678079496931068719213467771076558733709359464797350103961043136731036539167695072590132270452038963194042586978344351567431096772517765879826899110358683807454480596593744335391597802914109417227325842969210253174838181726338924563719704789589524581993529384054936912517553484749303389617223065952054488145408400933361520192347900773965955605270113701499536258910273397668386361040062536216888296349043055663377676970172383253414661428514893354341434904034473145342757559532735575520474986946395559169580311015509131870844461382802513889557286112855878553814042393192942751851114892519312945668858256680402567357158706944833672531723343304157497119388527578256808745917176841294661919564389097982091781458486273986501170649319977048499667500678267670388102518512674501728031706073068675498452373756091596231190012729244072206341326241833029770794435932176186734329186918961860349445689646582154596446027990039091355899634486752724909002314295736842996897710553220780581755850309990482442275422459073007461109473917315977081753457827880066597631806363030149487922883445813821807533940010852454790686136678096888064054745891570843174978241125051447102351229805833978041799292027045981699000577634500255153384074405378967854469160069232720898020393116943310350100055132452710238160611515840953359442038110975519905625042518331230343889885213239328316301126193278526448733876726057701291127327655547901546344688657665313429738656633511371778577918950836620951076402147603026750021494263092883734302849660764031174234288474543963695131047869071288510667670133054467591458353579391604705988248846990676872220321222351855465812512522012554724242806056388343811066319189233665131587220400600711432864070194718428708730236354030634273442013673121669756105406586564494860343722927425900935800379642709715209194638970742482755587582240254923614226182077712560524649156114850475832346279023360572455592691787205275770595210197608455542267374119090205578490686955525143150900760364208822606972254734458312864802614717605459588736833244373580412038190517426797999084736650003027016356866489600077018526215174659944798373242071977886985046523720235870651291021803017009101806554469676924578534391875489083615757833704515142199242605079729718069793965031383409915515768832465866492348030530431821122267399465752185147865375991559368049537423571221351336500305322518782677150965747224738080387270577727242463783305696703094080801608076522991444312713268262230617963771005204020014415245864835782316102488453084208242649002832111247337425734371484974428507408130558420989498198086296548709911536571601473323168027154528175637280493534875486512239555512555256715720862673810584594419794105126584343364604574933813076713806515801449877705970508558594758083931459033815686669020617374848635736859393246066510326946939559519637552556278764390636254307731736594009042498751470301424879240191510225300546809294209757528770771958401651661599909333371867491080040956658707380946510785763626966132432760883520691635123194759000520838443078114242877067993699274306732247354174073555542207157162823787963292892771452889109984532785251845590839147569893605835071582535399365096776861192278002738699911873598823838946852042911746141174625841506325215915414956534179834340208039825935628654784838539831323787477425500254903627440092096821183843450699090864858074308587210970462403910936880215268248737062404203951621003320358858778582747494379326724856644208837094069668354153178544248658050009634933257797713807798671896757809858961706275422858382126508901733769578248092889300782771145612330852711393234865926923630723177758228422872768878244441126607432340468990624633240680565979723284722977912402735296754509849796237605175299609262842002552715330364787244926489528162196764749569216528231180517834858326405525619270564839644326825075715672084417049548141642875835430740403722543964844649994369396687439151689131485160149239446515000885591531395171904055097691811546505855181625641887153164159751757894679379622625575233134469985929605180803851058104679220457451938407303922192092262389136435902372203552799321557606967101417009642980505935298770405020032241770796391189467001558983397953738254552459070987389517625261515150883372375151692173174288107764337772783060983072518166928003896714997201764235590344363072633947486656843111515352454773609597460543898565377937568093959694143681348160979570180356893783791297878278595595135177252907870356820412330976373687322417020488031544006033030404650047679158667796616677815077639015772639986252732431848078180446269670143692424235568909065960829644476865525978738810318383718848650422410476589065378821260257595806840921406437334682457718506335929847931987619424298561099614371384235237840239064828577262957896493656871396811787689694989834551264663525572078244712432192487940465689133712961021964352597985276516001888581202775541094502351503880082177066407249632526241043819751619125827290344371232797492563115119252439569854146673506919481516383722607392515188775175165974100622880726448602209456930414488539882981108512492306260883759667836216497534125396830849227113425139495399569362544133140173813308584817231588747322566862139251938540102249475575494947158395623512785670338888244955510844623004724076121659527843862528305999230222328486593456626292974843682773081203014434593689874259766415514412097984133998015934584353934756506243238501604327319188051264066718713537755576621467093181315116287950050971055179515281809093154481058044767364122166100032425098263166257417305182204807154882246165638913440469342081032383990325402988174634249658318683694748619425753354036331223838222392494056270856378033056213544686593029868217149528085859494186765322910673398176848507757615178505727709988062737081438579411766876359975814499149890314594098525960336377989988228138579039546085000761807548804339584686196410927626534467964520526347339328607497932393150314117277566980393148163858531680256523450455386534374008745651706692375804497864052028814698203033876888057634113507097201700855237718024492326257354695859899846485396171834973655671169794953645390797658424902661855688270548778520603230290704963829986271571871394249157229686185858727091770414798495562938705965139577005326013725947049474672978814590136356861755107962732122082038110848181390655248480779448663521157940134112095831515614265336392727825755494949163626767873519993216869870182246702306680531825633592455481670665361602190025586641535381772056275552979751377949877034644509880403656646137505190876504345806178609745971699848284690505697315364777878773761875017711856225894533748078235005204517629266682906365561061703331048550937948810223245171415924726080791016396564512532799092835538949161076359925615405811557331663343570424151683081686194255090196921563454955762556934549689895114787183734170443753241183259138987142452014417616829812722591246197388354781552470208140800883267838281174337101155086370430376288605755961237169547305989954989885055324261598240554289660689798669357283771950721310236663599544149223693916674037877622004842870111886043753095345360044606280185002138259387264273672575206961039118065275956581696503529064291558520476438860335327697245339596225098689440185273260706220324549708829709991318978925401718831864074028079683950651062699656702737630255223751844781247483886090513721492220743207338903597724851443760534279721593629035459644417032716885666651873245580486257990467827169202081764193025160016676900394002067098847436038866094185333647978844055905407854086235171795383506645975044906505999189193958939405297059343344731850652999919485274842651897909798397940002267325492325479274651415665456145451260245280189481561709640046000879297475608156808820743519753746883760301683419803676640737412860534687903064955053022720158506270737730881617456847685287608460151428661541000408621454155189151739592405998257832959924476205317656726368709186845560751404922181804488675122298455054627466172964502344839966202359813159286152682895736589103744163409537059768475236898487213543856910029192254828797005223452053332066824541372290335032740786436283323898936965685177163362515228261118743580077043867050235865198903937254712275427181653665110054556131179405773506192818769992999027102255586482511318462749453300073882351903437661396444242574943865126518209749924865144795931096320746245040034205048651588485014845825071014969772632416806216316203053944947133583918213731376027046110895131168813757345837314040507617526739136264421047682841058166723014704398870534330448238938503927862305735913449146886149171750727304999877030144296199892637418004087838318433160190921357203662971680002281049151150659501427588133860970183248719811278157629679207477856866529448722574940096984489607396763965518767544302078739854176780923600853311501269945158784547331913101195609030269948639915347072151304401693335581940583052107511449482406585178291988937641569134221251072447106778377889162495878535129140752560959656871999643050386772441893026677823550270486570929145989635091489377304218300301314362638309890649626343662503413809653364694350779276501333117327223364702247044459306455912989433628100651194593441788798922085517490025816938545431992368795235984640100740980591196723528918311565989745214201729543995175398710846888973696655260257256672316470044432149909248180359688220135395303319380366331078963811110558284563926955855362302859340230783780279702806328788092375027166862501891744815310298020880735357052382071435224512842488583200076921258586528908485992224802056947745788350626665188191144480233441049734056060729078680044336897018673878057668965300656913468452906784390336683301337476799738610100402324888802185081447135292065763516721800526063097969426546717497767966953952269365040027552460834551166647913891838689654098043324548282655872981136452906364745850844104838972324427449830130645650877509866513771574900376393200773037625996920235955653771640395059943871078788436432765616467585947120941801772450135172572768897658354742595362461948057804800927393926860513711904660022910940380966336858340543916373967322772523181830405618211638363120744871362145156686989242195091797871832693808703321081583318437120274394363320183571536053056098184186640107104537951693679677201029187651023405167273611843248631804742889176783509126225734590857832950766396538764307594107331900950448360928163218054885987296409879092060860074086185131924774162496725121751889036546246117331306163549745061307153951526149906910061446288921192557637210075806012429022455235471169039244015298016653799818440645901967867209220444830370287050415973544081980718782833000838086177340815692061294644225580773050177364570371448341925054018177901532766362421857964106882167089211791438672178229396509879917437164737753275619483675837392119090140654164454995826210035606501535972181271717830110838778663985819850471771819787508449788963734942555513966060493536886718240033164561365142133334565144283876473078556313961094311416778639798051675175455027200440859419866540142122490502805459692750600900796893984506667574598367242315860940784625143473983516635348550542704630093666693197190534361757351816316799201017065137727157500226242288057007081990236360334664756336845507541392211750890838608285887370112531944974394019688202346897892054001750247131125173226471760040806254350882170293744159920270971894664755767013891576370916347865241879297624893808458838877258227760420922418175374993254971516414148232941575206805473832538776033736609741979989574015167703063893789698718194150467753310989663198448926350931603817297452978200600012901618425873928696343605730904935905348600323087427173511073732146121965808647875595850741576405114908977136013608075755424089750055759715799156884037134383297221948424731308441707068590141200168932746015531487290388261097893228331668412815821654701328328452392984957161576536657656045418670202658201241130098077230165008176571518417127369166200446410961309773660114415596569533833535465151772046418590619500992778081128131893136607250861697649077129539221144963562329575539795301676588945677655150496314425230642786318971048907013659276665059548997363627374131076306159242737447852249348118549504906610720539600835125650810713674630653908896831103696846254184780704776021325443602782669178050187905321484674645400961239923570800973116313886581175222334218914155861807624996255864606096698937729588614971971412231136872200372344685468528465547001084599483006340433661074965310853968190521542744708589093476281908732094354416285526776130159955528910461632271344993797419319521654303526156284685957690563120071477930208890500152953656595556397607234669908072225662530691517995093910333435319940878215437206626462866671117909978756613928347267644895508144365734335981541922950314879293776026235503643870618412229405262324592287580949168832899411830514593398959355966033839943955617943064944533321813382258237218188490947175165031787334299433603667413556528960794389777663914934930333508908249042924009968544162555460709907564123135846665365036319391679123417485058611857733897409831295954187000231118926033625142722928688002108229094363912350853677833651556019089021729568557233689503652352360351965153432914597487372828126892091601825953999022701075561666044394681658313156157312041547455991080790766454932046740530160107970316193844477278199875907765881522687017355102086369921538468900471595120108249802656409741720682875350339244690440693839922861636607321370233456795471103647973985867437111994066462374673675038439811185966557342360205923821612266537016610812711816453784901855144748329831990115247332285132127384053488476743138738073287309171406185960691118178781190134174529080940739357935229086218193766480651098646764110965787352716321986457411633155920327232177808199837361728137712285255672647178336103812589091268376371279847655219140170255368311479340808765518973493599962841154516675624891490743898473743393730201891051500812148258202756708150724473449973037555517155540115097251074536368085300234293317745383978317325734187377246441176775371859260628172740838754559445174368660783544753723385714841833155236441211878761429187470855846485038955411666048509262589559530102625940122655654692194858946006831259038431261638684552458869555489227780479903056951536043545664419454686313784014444193070907406759210553488565428099225407659853785045970887045613091280762412274757503823141035131486259901390335578205902925395046589005733446428793712345371087585325930761013578894630524093280579296292057859207626264175866000443258024006203032711352580836551846248217376544479302084584696129990052851368682989099937570509939698305858876071407606903430851177055594810338817528999060745533747658254630380865728973062141324026565177412963023265200832210176754528882179184459220396175059407777675446097548328119189837171797361125779111740051343683880513526203602438245012576371421613282279574988140041283191572318957099501011905882132766568302062318968149679163190153978179721748345498450182441723245929960652586161364749538635713322672087062274947654009966850012910671027000387456999951445416402204338798554239352151363163404349351733624085917870471240967790411364050251270765111134303226675132201214756059114557416702551156898105526514285300411866224333536325080740274779625691665439864211264653475089040601578287481132164743772056716502789800080414587914203899783720101357816039440663847658396236437882723522571942452205145043088522907225982934305390967340166408804183694396782430822786638457595996576038143473835663407627937264243605554599289680423661525198642982455524817990497609078328853443965907252047756037583233317983977521023565741867479611388505359561950729853644626733592752244095141817383827521921854216355267865290327672716259976431474298905743776852830582469341969039831800694122920324187288281682037522970992447424229634181342445542331461990767140449498403292521580596720995563988998037483086301412828824242726434381623588995562068404380739917711946882753510616693123006616849250057708381598426221618621611160467696772963504162350618600882475746774231058724497199902890932278922655528200526395242510938796981793073605320067043088299126054379231053421862482239444119569540843112546704985317381777168378293001242150929485634260811788093679678026146296022124960713056083347879386624179470995493205674388788814814297946109605334085710120642402485601631769856125802635539310447647632571856568490623335488470253308936695636210302171318293100577726788497299784183280603925654406792305334118530394647439551270434730750525645101657199915253538648435046880891837680285135560334792543227130177238463374653858638722289607452503929972508102875878118862222510755808097106172830872240981847898319559762912191090168057979240132007687790343397226112519044781339886693178556531241428324895469763032324000176738747283446158271411539278995116307944392273283317896030037765380532034424033631825832874023108909522098382195853744546310844082847330429390926382710380340989817520744289492085530994312968258961658390288910973211970230099680863571545652157583989573068050527753743315695766222970904102702409373013954780749312343430219451589907688972622025021707466629315721780312501114016334859789142426533228636909487146647160775024028581901822504761658276623930603708835862449301176903197721443553212931716470322248818813447595878601815715000386707668419490485638170722498840566553902998692268398172375467231529385266427304187753741608154037761105301014718292641351212369812687451554764629694064083991733116109151789365194265582550592887377174937613026350448850702206717602679338428323049750170508533282574748195620295078637039808296506944091063080722369411672999043145853002131321784000730658627565827983726910778718206192443921287207199841143995282589156462193619569373080196211574739993176671545134977319799966053872034477766949273692553772235351240025885595933142672788061373901734979113588019502675511868265285514590352272401990319874970752019757115834927137443959608380934105505556810243614740595579059565090870108365866189909535365369083596759952531125879688328297945615614542059215116358974219639766700826959107030459317594114469073822520382317179365372441994689178120558317578093812097573689113407820506751418723568122969994087621359669003539761490845144681504424914651939675821465860636380325411631932299151218485174134998578038835455042686652255385987291451619898458696051506548990188253527005378717031384109509405963187632464750449209445153164661545371654803612850080846279462794078735509516367778540346116408313955322230659762653719454646261803163157908628441554498094059177099630958997963843478522588616881443554864845745042606513406859807900263418371206402640687791095977068953710224688732496472956969787575503841541097640906808818737051289462497943022217879195729670518929875106381333723176121068837428176581515166007642992374477932772876473561008750054939434673134314898969432515802930244424114304967359333461505097899161208210021773975190074421153859889823436153206300861078958582070092324915594387433706823877839670344079053697864867950985314977420316716015044229361240773988072304048607666194767526304898760601693145694612947993811604039497802059105997744368577122850185875860463158423606805822603603909296289756489575463070243769853774392802972829453796555173900616509296755056154367730079440289978903120583653082823285978625328987242129222251920700971958915825597764049927713659877993233736595182697925666470593999198016793492461514203534622512013927014278829055407779816056424894549119665108991529378607091349443919984290022279853557111324637543986502929088939948700186536542924656830458173318501028257627572545247987588153526867675311121978475593864923202816894681529033680783725736916407345747908877640317723004900240654894191478293532412719929601283227644825101651258637023739042726743047448984654677487692187557870702518005904275541140642593426673182438041639357391754766859344046859826016732248028988530430389534347404629339870638298404754232905468519485407075257743998079242641916999858560804063844678384494006567853440596186185707974614521512873911711716843365078553134465674595726551050912824030894253493918460485581234628586381382629518334746801680479555924580696507650371392283880584395004330396734645438498105013848966316527587027302314248914550154432399365747461418349607902731704082025731051129570570285429944283292758489749529946268002888047873759904395534625656663798412905105256539711863597566580413089632334233795402633433706580884499185819638431105191649253730391330931932742849982014099210350667294538657410483423619986677224992767588544488845202282928230921136915757041459455211265868513224253853770792636825021265178756765977710922917347766864399580849858158083428645120658951184164021907545249485576426156804334709562224165576772576686483300673547923281110838551954189349692828823551807811569466783767538356291904545213531353087119101834689309226012976059070513620892445838486726162107367219980362424313036444795535098435111275776231220172670249752458835416899339311354970720823469943249910478143674276515149923211564011623195654685555193889512484251497570205659834939069511652796836323274554344653175675049973091527020999274693143064431765280503714358420783021757130666747222447291663224396321644655284427249463156421835331079702556920356578045706141877902881764850476403034016110825882621992839755051931369938590924131751347078916916509594462877369880650129848402256820856361837763251755869660866614418132671703454207448760813131087634073251131122267864543405337703671164701492376395784042298513602834308245032260450189109574992038733785457773437577031145487893868009616580324370750083337835519415073361509771634248924745211335088537439530978588526181522571562364381634908332406783216364674223890872643819835278785117211586620717487751189387593206548152279425761468005388000915214031339288676730980862129443952169519194254127663506845461841701812167604397121371417709857425187086290882477539800193430627330080089975720361725762094040296677060999560718073227074084430365435487305520045156356664206864646604282475297043835492995142508411510304912324226408479132330160601075610489658658996218466317112438310094684653457207263910870726456157648537645374456979339539587100860540864503856488987491422580000309960792601558945929488095044038022684462763561547065784188894044981488622546199166349781038915797680779653011456269631058175632602184360808271543353818017969405687926237026932484020461304429189870194297968166667425158893303969892091161680087086845363041618841036047830799403793717007571038269180510590824064390006932970686743085577940792348673458548356136142642436599869583019274493301254159356541697906593479973185513677962754301889858363328406319587483537224518891067886479167814780354973354424678716137529129635823426751665049856609752268220003166164348923223127959263962082936404604375434038797746485274826691067408103874685639634227681957522523634037188360605408679481832127183853103683570688929327943799321293034175019909871603950661582193572813715155531298997391590321199921143157366990302848515389639569043732458143581863654401191271808467333536440115492535000409511009945557880891793019233699220234941913596814319832203294101495251406841800483286131584009038628567729837151164933230594828803190183125349177540216985743801953355045955494774033757442873573083778148415631865931413206085390679668011551057269014248205490335910532701654695016697778528697484289413110378779527880641089399335175639037547681294860159194486651749597790010530608838510290547351169396070088276524897362890290263469060668024135259287016736310920352108201191840448998041517037876752937387808023638005868754633554609252552387019434091166147877984767545288858977723776936839018380461283185151237334588825458591867354655248684209219958804435398511145239690536951190028551475127516530485907683148201234346427881402476837355256154791419857425153171973766025103843042013442614902517400087811376079353705169704548555523667912210006032791180016502680453129961450959901247025788047096776051834087730093964002660211290743188447904943059706724711216730108541489012161596365402261165035144561855867351303484077496234721606023004404944300714759310003161461805215753170410294027586164261639808644980451815404197569381824110534159333619605174088123682521578671010191397815762934994480563014957436245452485060099895309929378234961644488620236537693057061029987652015344748363163671948407889917278957455914704526697861806305021383296538691109223512831655315898713407435810358707029439365866325102148677046203372971178998010484756909983881831993094998238515776324284711411840657976462420316641135226898713544109424211286716553719834189526190777806317075596597357193338863615786537178769119953768430907369727782877655403232018988450055417770994400801711800399935163265942701439678014634650930643722575743940738391761376893887711321508332768765557313548366561455070901117649293426668094503347674492896380938951376472597159079750354592183965479669850109975864814389873473839025949720982200053016667729923956027801542004290288729721524646020177833121647136053591844110939698077047003880463536502216033136106750788306129476895201149413698736921029926691430152124861136663600079860526434134067805545138605527729130629459234060462250380458171088949147526383580583457473837320134806497884363434139663288914519757821785156439242160291291336575560356036329331146311604364695849992358219118510343905417542082741239996633658950016394991018444588142353659364767699602050908164133946975850251303434874369755888120520978524505494368110053563508446756543831700327537765490161228071886637537476749146974920148229632864394905041205420760298818368457887314195292457506453337716658217948505746511206057161739898152846230480537657083758988933510502435989996060213486741430954548712820208968829364292849437438914743157362081965461336800261013404624414880796948060844313643747628195459271751788352514835710435618569327527212079083247513441459988783509849449532200921427367191295934938788268920770138202617933960072293338178538091880351633834551994888521085516233875608696044923921075091199536346345155658241649937011775710239575898614601407032248392425281729387910355570767623681183660050868385844963474657761396083849990215442726782195033284436367455983381137200677269144543050362839996009991657326516004242173981829235556099879239117247041256750461425102908997425440318454742499442385200195413486168155738577375353553317777868340757584870924612616701364827954546393584486488964340581646634012122354650447561160525960900018122296355282352616296839391317470303423823136531308138989863276829805788188849921917474398101302455042991549465301075786415943259963147099764170398758154587761303093445678977703662202179061363035463019482983561534769164041820983676225774712950006521954290500675563602370082729530866042520569427240782931773599765507298003869755629624062605689084545914924531430758403831217917579736725071190982588379813085498101365637632780586485276009004848641610613191708338913180865959650335178467644231814103943799150746393059143279631301008285883011571151992128215904812722402395001415340877460865945737452124867561689006805683396402428382103739413139226249453969205801298679248872837961693180965115964551364229176927764697000904274283271948210299646491121576171588183816110508442843591416326571022221561192373270259755342655052205095984673135887341871966632641473655079298380354372602295984700903294975185605765077007045297160861274088425265526205388549870713054914909739081920233468148202764017090091412633572977908051811084761359068803794279823314399447305975411931334683376865624212669941839160058110297997176896113206627169088817904705060455083422139832735999132375184537493471763379790407155834746965982748530251092481524336887904141604229880897153784169868689959288825227053458870526265849975511323773385339809830968610855566736568862268258666160759153087366735343897217829044778545282531452908371407163190347402812313659218380672043102164441758657465099917305551239830092873133693185331455999001430688061719244561736226350170524985175416615328601174941694297713306419860695115845660116172203989104661344364944526206025876150281715535853569974214400646465080331341997218733309263250053300748311627401458603648224779197526150707166925352894478343573214846977053860819580167618159462211649283924653880178001076651637884261649390453141964509621029412352684319289222396950972405066348259275663208933578107500630987569208400095791989853561432741273140117049681690666750729086060392090394777335723130198030025645535553416422166307683974120088452054904500935168022665615474238645296844783500983329377433739816830568163470458125120632551501076704489031298879248664535600740446441756724225337403514909980702268643537683123256033965489175799010547213155858473762168057814155298515514544394100515067327478002921623409969885403865939254178221254031339181084256810924593086421788728391328806185729769702331366877087516483335669771882718112496027567041960476566998033073083531975666327183243102594417126100236079659954142940388008025958221503035074669978656041336027692473035907925466700403965930699907534293673126337632968860918835708135932286313589849256427725133602753682262383468631947510128479010694976170814818083220715878708831388268182522679592792087240353556518049099976392594494119054584306371294910084056114365378267099940403346715625790562383229929185213003045201646758966176054771156785256727011492287781526231440034450869115509416384351143270715100208804174590493760903272181819473763333004769840968408828786144720053142973983500004143733645674041888055486496693793463511608749369378919826303596109017801846260928570725334376491549904237283778784850813724629678851482223467136798889222510464020293965067837582227114959744031866673398582298356089760442898563923139663504745816359111769562409956717740226341151326407242573416885912976027730591212687996548350659379016328331759430431817676882530436741438663905439307648842181132549735355179629523570719731355247775009537488195697676904153058223296966218871832371899636362725568515356823633361273473161634309738286647480726905400524984696955764096142160678040354764111026375667418600494398903043343514522881957133579886179015133090009600254304023553686518625892349887640771335571714612248461700561540595345413545034219478688851776220787309780878102474472163859829322017201030524537925037122533162781802306489680731054166967504353951575405050885900971556466461924833577843203966821319579375604731965239643708451378189140868981310364353947119760722534400442944412717089304095651657998090098898276488886981795968822463413500328578025012850146243434792125104444825421715433609673232506710085585085641099271034011628898316634514279041255050628939600906027326528482225552500246147761907274724772204228976075441144220436648163157601617944452641421875371644748657117532957665809048319393514218839300121391679981959142496906138319215911762089860600872277798355310974448995693200565319209505854864216158483341132918254136167657879412732064150660402716799013548937193837359431679300389416032330360091160316507585482663514411159859047429058920966008411015889173967165440287320818265709799443852510786586566563210366956593779822264852542718752907250889184097719404768972556126720340156711413266014101215272631713597420668338142668068545047291093027195584248403158316418721381015567094590871158624162823286103347233619151259858559900233847420634274170755540578794204895723364597471581268517245565558512108708721672515583492627014779806070550115594355176625028452355501726946837226826001365493061403963447949083324761754124667481816519303047909976110720509769726689567452083453924056130373721763651383964894326350119160899103367564419933806142110830908252120579333942004239910060639307018234446795069883082098424753191459856732820441430159532889681375031415401477285808386783433275840275601600922391572420418921891286241100572627145298831035529832283852004396835439904853135803188118489342263480639466358298724075712589269798658523404587589543805026237107776851267504324764063622030242871071976870340934936758128015552434912022448894923297243945992061053058459110979422970353019299558703814862952126699369798311597939998116289536984297794453918324930992287100578127523542145865786431893933727368550783555333937222793511149768905694326304321767457533430344433300403416838937199807865891930790814139655780043158900196107799022777391474903112921876142578363818455358785573138767087572416026193467430569061678543439768286535836356849131025397901913782996597839970971971511643463758732204489476633375908805078418317337793503262329423864800500377686058977913801234908787155731744362227003702409377895082034652214783029929221202308179584712939844987999796223083692928269629914835338998754147427424104946970415885448455421594186639945289561942356998489415935029051518248514395290109517329654663335149041868560964522814324158594182876074015691714796517402100993785480355463469081022010145599910728114793624898106171391781223372081499674522642368405345173459207602724715819026086905791212128079579375152381779812370022665031243643394153437693770100251163247040656087163235678293526027798903002828486654448906866778231747904459191751523172946721868101729852582355978867632990217364088797048404742011098335172958024977122148222286694678565494889744510657760282665178089815828053451785758565518326361708156673340777678426375144857654059861922724160427854820260065817627816920211638349313506107203674236801199890465551503288365247263624319015080107020545379190370953258867890832237316197109896826517744457159043936833586027776055463302241911096633571233714131982002751086245766817968959603123129553424186842821803696752868832711413050003171248197341963650822016382233459802337499404428370915624819534709206241871709503245207746742780161421439628092301580652804388455102643263789681492871214863480181890007537949957541359972802338226545214888469934514805317883668496936694124372022204404366444848948603356072347362872935448911773261612473861562952471652530258587193683069894217898543982018595326120502305628222283107351544202306750212696207953988701183729549500271178302128547079653678364010681500737756020198242482910028929125522570979674132454382466644596284151172672780392272517161275681858480164961521522766628927854202367176735762258449017462154920274126171474100455397748317513899583494937738678453883706760995907217552810144318665401411740156907568372405107591904276623991037416960216280392989983602987858794387895266460997218301949575596593390137235765022379121124007743393780187071406034337864997733461047717988063411667224511655667183281508214753483409592987975832359987077208812712139809428711340227662452834960667201710603509946379643713078908106112411731897637098791979690835040691307707378118043726104139272574939067429970706189991157594033507692022633773461938278882537859148191695188563330666724679796062872324661871789468839459537174417856553565766997349541361445479098872189817965950374226596750727989500314641996942981610930371403230066439276639640197385128908278265426091094134349831478408681528411550623222406537071242909162066021619514028976594745749648863652076161056042847820888769706856706067049023971879390714513287729635373635345775186803407246930587753688459985740369116761937672963147659859901579289036488729065011321088879568082942612685319039470198264617023882943497210484118379249445463030891019252972132221761832405290273312998867570654971040156375288559174938370650584212618720683952608646268650256196178358136061871303980039506934157867655166011059808934462646213043067744644354410109046728642976545996814702402189535231895537591571871115352531664562895978381510708199083113722520963474014812010825389493232452205925122081818379124614575456545743383450217004576924933655427914693298033874375185496413930578345234369714017323467772843882648855887624205239518702593297118851485714655756499412067092854284249163710938253913375535496988010641597953103999764697722223375373060908926276194916539187084567789672011153140193411702760034078689159834496851795390967065860656120421700719171870600274479671403701112050534752756086801916898838757176682445420003459032945101062283267912856910776230644682084958896033571914384483126874126049044398089936575943698785211663931832897178599037468046687383771985296070410243418054363545421723938212792315269325229087109015814861993699459130748952150272296907250364093558184979308847493624487406103872655548477172093813187339533973875815913050475852678029101345507225441446186062192819373253684187683863898460848899098603987319552360356501662144226866393990199608538598478161949009995388753722554771588944043005710801395973011782319158227521084274480885866622720813525434668064551506726783638793817231641474969673311183095389487663417639940754858363799486496213561470113720697542816009372854196543380606192852619473169589164872338004119620995612193843811899432074939308119144338170850074749124942423009141829266929651364985186469302467107846794647164937113051517024220555310135300761687344480011804347400899455186500378926023797290034964249081514608542142349226084211874033813560572125898601816220200892550637121591277907941337175136708484731877539972254203622241929888204211029395888809515636248373663142916679701194447009228178095146118841246722419218317838905304649558955050097183011959023105370648815939612499737150958997041470579061234351564914610532210875536487303518441285857630203033875823627449871735961728184151208230554611585419893112440295507129052030113332299549652303798309359534208959399788353390899493969758591334244411354006181584017102972445019824036025958816938539491250897491637297232218932288619368071486985776412035159057614080029430933847869287163097029813256540579042966928406237206005962188038721064022897000346759565981965168465996974908662447686760703881398403703939524322264493282650278172802651374596029749176678352770986603664266648386681705770616748945315628418326803366268802579470925550666772301438796100520800400683626430694482383538257640643895027125746841364320149786836597987905093218006753007248558542157434615750480187741497949615542300313720631677785412699915016360838636234041384375102871807993545193713257569294536616555476108048659094644709338807151271653044307354132979378135083859796620468935932140017621594042095642207797589360561473928940345734768503254609442480992786151656503975747075833501386257714053671774982628995123018886839275520890012681479217260713622330047639689189671990667688622132209675565616292818484558253113573193979461840740259028317627519127380839292551763183538087716617593546744962939933142189075647741290064382093651513698543659794408310511310633459764347976550968189887244224122951173380380652483345128508028290070244339473306569384789989377326996414269102737933820060757982417454564673790247696097902437546799593055940521653425313081192406944274059629999211235197428731902250612024203671210498175643191378284682103966412490255739951439476774598065639601620573158624857905108063956151463362792362770616098234637328729501290021034854493622589831016790837399537630856756538130943370140226331660276065401432466011597253976179724089333512920382378169457144615738973047966102074753506489138595624564515285273016600113351073220972443295173772522344588511059500382333552551429193123760773393473719754621323153740567331083373825791552026157906592303518208015924027861945488205708144759924201732279948709601175344627153674937610921032928515426491902268149678034060897701160318956635539990680997040228526539608646843122636982838625693428480144312663002852148178068256311797055613226484084643181635991491968176207002747285317880262605148909657748228859063781031932259698282002845691716107568697656181397013496213851778049169279452452529106565555309868345172061596441545026643046568794869489115158241702336323549029201748455044970373240895369066783197531990649969408896422286330891269067863781855385938299114742269663044268041549923454347929653045832000694160788119115762347987601654856536524424282715713767353498570849810450706859090534023332203503831208268231743979803370412197134346547902231191190598313456630202582601410342366545089716814880290484235940987024195175191013163878107741634409318554019389714641413264046075751330019849879908685808697085151553151379531871839674054385034933266990472958977041448991554877991654521614247824076859271163198433007756754494277903100517364090936529519190080573530220726840628777588872414268430506895807315183918485409389321634684336848470968377026661965353969834375703960312341749518202146911961307135942499070422474628048204892903282504532472310239669773752089414447959306965385790811716874380153029854827998353972445329921160257387660934881494488391744276227080444231491444767669242706659418984392893800038024383270042508662135518475588169866267542271468212084147560915752348951496806908249007602599197225859026765619055662264542634145602145949765444735311885134532683322955785319080943006741118302744227114629484330897401241492105228596454007973576196409622739978491500319532936244986714270336185910083122846640030613439940797152948024285438604024405257065498399036601753922914648770678536986971369320215111646371971543943593785156420460283022635941636900060282755986535405644801422007346844092957626590781091050420178756844818277741105576837436917103018340816572039043734782154879200229746057456534097408044590519423850265374104397333489472467329358549744901316202434735486691133460554338936929741331640495972599612897322235575715566861928382112771771805932441584956809108109438780445676535685332966769738748025031285124319019446503678386227992943930731629078834975385097567895993202242249494443714423048515597694326940959305470356151288689242084179124353294051398694517629951557253506222547686011148170590869549581208334229319872007891938050716838689252956101794615091650360761570152255323886343387842534854141470575749802643535628993194520811159184328043113485456374022688696358680910094069447320649933404223814899812632048127627998107723017100094446152537742259969374717919038858174067161917629601427004175477028621329201226305034776058850679143028750421310944227863633472116241510836536847469334838045696625526542007577015504894159360296270040489646894302561452531403411106492461250948141199976441695243122209689252101687138309672454806875853095943830146323535831877718231048421181421042093644203082900583339255620474472434937361022942507508254481056945028549867426918792506739053930093890037238821937500385857455325397963037334780360335828425400765883188735016914871143558474104035057460766031224033567500172414642926203849644565085489097332649634078543959718464901364393998436383124179419222293648626262990590244111566362139986668597721807309533115155910093711787581957293462205592570716982836544311524854322291804880679309550104829195508319432949219402345883213704236291573703939493942508875132370835410370564416982867350751935987877931949410178756671628727845036340249881750523969091542848162829611311299331629763171530418276472089917969814072148718718994092997358226642707714880777961337869380750238035699120515317501390372795159811607730686147964831754840946251406439714317371670731195486938434830001671935769865666514563393310824153409304467394065374250291708600653217383167628049419156012737530243520447012454723472413505253174375836318869835803581230386545776430912475464581568560759132897814041539775859628075120332907260893865463001133160980126387746771979795055400404023509841222713368578638975327911459213912183285206848856470193486250974381717756747621477559081301711813132784875384057290876441390527987984653037558709282784342071644531934920549426295189748072179350908660848593193326741173030719285810945038574379420881769226149726863390062478896099367710757763177071421365381962267843396613204317240537488052991647680061273338526401781379877465414414046888348227042107511522904153669273208139161371366304830020096473487683056291615103519859689375921310908097223010817091857165955890398551730467364306517595650736940694785260936683213178162985648419352679402725112971690693066211147855568448522190772195622931288773031988759674620671788462538422875879617518542318756809223292605531976682140727564246656581602353828363769010831025465095102733058161302976346474586236612907459574243801467635868850821040160751883424392785790755105693713015380715981904380543630608719989729415888444654241114782204985029713382366639280345979490329414158863407991527559110668739890337801913874708030317653442256656784253268514985920606559760362469012900036288748145113359967204655383110820067039740764931588524933777384912717903789109041855227781186288530944914094168077622834646925810762346613368992259655148700563385264543249451089908555307357091186525599501657202810010542556614978941900946393032516453463338115365783880543893231086446644554544843356273104614507469218613984226984070821152036020086509722134145124491914699759129377699135738918221979343803429117086611688329155689448267050841775171005883903888511135576554614675992594080741572977617128051978840980439761217147840230504037978882617099340388261719352503493367535347558790024691254098063149188922977716668153669579409670316195297745186263210800046097209481081263861019707426557812480542120132013526672217225756531582892055898237935513528562718431782190567723862807981882773076273864348647642602232806966328347283464270571751145430729189050093519269330681427911468621570059771766221091819725181923391369126542832576272980999342454508722145676713749654100260949677397599732595847116404380656261605729816079194853435160562869884179172373230083645895532035113868261288066918693237486433433717587069141749006931720046589680805055696782401237252778426356081839351270860858065247935973193609643716288398558877216276781740501619949427867157018801725389736612976566526709558424221315837608600368554335800858868229086161780439922571118674578764050530330897154529852203783200449252035146829564144189151511297806625978074909592028660964704815935239861995508602853681039370738576989928358655285966676201512288205693181332443931727458758903964711305269558998487055818663490381701986350920040564865662350726696524594084057410562383982887111175667035604912406401673218231383660176041064423506480644052626855011453503408914287418451731260204211914144362131700661544364842920549767657699016074205677024666091946772612653312052330130222507769832130874347677137060765156097434206937342485996919100944955296160759710104670438504661534046948897417912178802697688780216926463243933968398172433557712494711474832881778365300848164505901480012192922421047440148659418451750364405161183167347850192686033246683640784720350776055067349841413096128785202796078529643061219213099525926292798623145029827499071036911098277141703284608787867680194102494020090845066834844948658338181750220135074391830487219259780281235245692563694581283322327639610514747100475417895946669737011800575587065286407113562093665610246076892540880789844383299700659660622994093656929539579781068183294746131804983908542798162023595404315155636165929054975803307534143796256951269725364560667045746788368010059156692518430670881624932960613726083298729225265426137945890436882256436402567726953873333623093959615897759679777057409704916878115683977728074212509595731698041734738433965602350057748086675069801929658498089948896174699724038436456425124731852358286875928635488246601779674878374487663286351657157000182322244941293076215017165258925744769191189297125236785963399606296107160192031192545594428779991075853973933185194568424959561624087870400305611041356870936611104765456160738618147954224439122898566710118369348627209573937393998445316910947862330161136983562449918030009398558942846641230183332972920159979202881809665658743919750155512240333061485410676120124443354299478340226030829990604720571803681685687003458291790231950349730217781918446083326958841445800484208964206854373581466393251256796652238872524358424363616162952275456302381700987180822823783095742770107813043356671567083130614205468569878208712085162326972314168922082193993319406968471366119747123384411093781324541598541277025763897353700080709469572349935784797975700489582254530509712213285274449187684295186237017252550778101347644049767913223885162614502128066992620303028059251445696112409168352062903001202593859773683705354415774304882661589394087590637213814835357962580438804212815225804592576737728237501012460059869743742103119112450590918406561423644479810848263134441474761982724514470766892780797368752171098399666104405225275872521445077499370817196782332031982489752383519609649634760038841424584573241294832206523640707880556655992877858680046361571689170512483472302494402462315512530578628677379565981395338303302850405013938188414968539964938316479649252084970237674991716691982846376166873433318324529752296658997498115228629060036366460472851026654557276604784874092177047147232477759051335673878134843456987398279319952678504191773720639047344221659871587185659237068790967307467097061228965049628057805275976576763396181572874095227781253641698335981301669026895857663219053670849409460537295798196067489621814418998868098807558882895548711270828126755916708833380000846144971051527863200622874949148276831336795739036798869273227512362376110794128684421505899757263410765804257349916533412990414003792445005757763868965314679192920105437643507335132692138887496205393443915039400102908708388772048025990513558723983027723080614923656561451329992883125061827877954113168974057412866834908862654562251933648937777654319269628866832749560615545299931278852725329831958447601543872092410697792747577485602366136827402560512816115365878844832544038093500672046038011633364384871874845589668010652090443215813141254388438415774056620965772611656982928084921613722577141064073374300761889285913904616091907842918483081098099375025379813039312635993706718070339141444838193515686805869747761210287384769236133728576561226548712707009185839337464807330247223275977967018045018393434715777541546539197233646648451463633608639658950829266784859205193917320570979268016919073493643283848169673160673838999250775809477875594160553513095950960219172613027635333261418197179963563252096296349828753134799686209144160619422179695311104862118884575459391776277619613078684775432684085701703513726160320710942442238690108189131905716559676700575355019174109681872633008985214412530509232116331928130342264444122524933789954946999168696543584171732116308116725842043692406490623347534438357023768833924078080526675123078027609102698617436607062365118114300147094656662030435526880753370410019975949587214473134675828982205049955400531905079372466021217313260353577567332037256988006523612661539229364012779809012285021415370175986968127705725504221791720007115496306066310605566087297167195209743226462553732267161506172280591620921402804652698798488226883456864629788798763236958494832736948938023509665629786541040945336535242051696681771798511433908735100072173168946274752109390946095898937185677854073498451103967087012552677267238777126843152030250389148547206316319137118495104468757768210608124709199817356617937781082887404499334647284595886638300932378865961813649745932369053090179691583083338485854621065396573397732736089310038508518621069200909529345842222060916201322352797336773564163747228452017349957833335280373475735101740451103991389657682916382976355381729101425215292696726836069683232198003416117581497365530322237822270505494185030209529218179194033497890244149757124034936826292802847061749882478377867743655555821572027094177858494601516809970135939141980426713777842934546600533846255573009139099591951560416769730178007555973325290057881589314019576168353359558938327149043986891738561797680873338077981495040765081007853771204072391478928293092646786294546337216358901182919706002754696619493850373593509604554793028910379348732401358261937917663480193602731606278603474826668175420576168162226546521328548823310821864833334578782616873169200974152311252005680239413971066294541569007100505275401995397087909573053797310052869383047848127383678601600787835715155620227160015876730300271270018238996347588273549168601512089140169225587214486854887433515720130458755776196986274739478973613211450952630389288315911895367308143996806063795082635987554345991763171994029159078637682599085913289066157814622115803196010149218734384124118303493822225765747116729470102309273908026261428753177680809381129680614945838692947502713126504062689856509514150593865521218303966476569832795961213381676542369494928964294964695976075874000294418254719353911264092412907035004261334644536338218324620527501047688005851385460760316274212436645251648638608385102026749638459210554514356947506696855014103478882125942626237454122025549195783544430710013153726146763981076502001964277340797913991990541402749613101522646292376512138276360226871079716486427075949769072427767255094010424120785236168138484633371704495661245755727139612906063409323520322169296063671136565999736117218872753443106470891519172912214757075713215452956438403970949583994678139197357998882849386798154653220557578407397108934160412477788508585047523014571285047742464224085162260569033158907142424136414372230492906280239310735979675177450497102647176047325561867026841648499742420882951709586404489768528845163964418768261407209708024362914122669058358800808553350040608618632827119023691935500824115358234341096550930333397313480746383087390307405315045529990582354592635807746281630385938712202598456282247618443493976902036170913122809766216633351250425828015439981788455297462131268006513334500589695427792242209483761149507138873119334631494808598365451008047841569328921541277004919337796331529700336307555460767319481162001658153553388555974151704131727276239945294825480661816367849543220652441152904900585040353546528880159263167090843757929737025973739043533835978605881803096186775756731627143810948513971871482884601774664742933044607808452603536272894724665510520838855475495913936438132524793787649404269820069474033909916252378439209216559513636287863750282042217697714464398013365917068265818121443863951775032942686200446603943798305608798693489348249052031900949358003435785733595329758832202082562956709021058350552385902619443216124876935845539130678836500803515256625295289151526791906545342293905476522762178989473077601457009233475260267320896289597573837791467735318919710239294096473953736046301204720091312869168261611623004277993062086988218169035456878398928232257708105007135441661009424820922808059334310487754603211070860245046151518639938267133060116750496895034253273727272558297199523192396530764505568765805217482381045828547338668755475814950342958712539866944568053653845830505472229274558761594292667163310092959914759051105921848379467889564244345920038479262145734598393551917850436456187823985508170650813193632424764040623667113413171209050965893332882242080403051338810373951790839997085464400091888052062098491248771159512255064835821876218758181866348944623571254567005611743234997413989148124055819165744745581330969386658131871217569674258307296321378132754584186229976276902506423727153607830878074000811171930572190616024632568289223839881865872658866689880567357134631594440668554507017806244965555107346565529999524241331907487648071107994016668969015387402633082644568430649588781688685200647944383916152328096767080589183754502102108941013205130390092539454535947762821388365746441560626607796096131768587433741859156764821244950650841459181629024628269547725699889650626647357633758251801733408756706862844291292903602723742099229172950110087761296960109319735440200912469603623738625935893897145950534396205395472353485477548654766916395567196931250445271178865509481506581332869146907581631584442952682457333622988392771949780896984063030865744671467167256192521125462477738513277136141732245202635884377149999340698879838868359107443202447283596783411898273685504986770861471313454607430285392258770889075493731376626008731322093279091173688919852067345407389128023625386285741398780072024981777548802483243124994957020963782105587138717060552743253777426189692769298389338769348912982201055915725228032846335807804898238548946983187797524669004934852564153717979253880608360177414822157315118137442142958922221229774579261767956216879069722501945078355517239551382039529262427537722204183616732807561034281219261818309233908915740548450186990789245362359828936947822259659340096505646443594462005864656576354957005492139664519884704177789484391628274543384498663427831761165120098367458628197689116516370356833878159209900241197086460671985365195705612506297276219172902064479000772691903216014591517801447959624073598453353615138492117608599497740370284528138050455069718574954215767086711670501473275391592172369421507030341467635010129101652761217125190961273709910932528213263480057080218589187729695467138164875377356616942802908153305257339223278017479234644990779977451568786897003605417656797515468650041860707741637099994254033077013905947995136389164731154100804950162769785208104332315592001388453741147492838519507081390480561278668980770117172067428862303900353850545259497072599542918817117123749704594974342408526499487642746151829962852885099716772411867449906725164657055372575018971358388311273664341077713251172988537207923916548948236489491681010452646744141493303724076177616988506626037526176685220164604155246977210820368036991536968496182238424847098128951313088505175982092776829459506732093136491603280683049630724383635458110030475811076894432108037078851082678887584192964651170056542080191174264131891781177202398709221792066818245537947117969395327813348156315965042177351986446548960863835683028993922848937745351404517849058513428255274804480543249716998669715619631258844392630370818815242912088875168215228875964474696139109408421320619944255083746196180163134977204527946992208389718958106731654793429277327809692008911976101762594780043388011108371772403359812125573903791248409011834491894566167307424861488885915468197836175752648337392321120305895181002245093733542402508228888297849918466010216621748582828301284144003947916336898343978931954637919605198983160411578791204524091050033426391810742646843824196188459372338255316331029692760607655399868888437108437298301036291847014805394283199514426154985246099382848396307023165822189684915873262632728960600472868013091233754780558271859171782599702119979318313690620257459648758678080310539254547386191694580487800918547641512834401551889421700958467294830761766730860615337136394711598069419383003125364765054403695390626509017873186731343808616738718532626024290884207238640606690918169645065776076192422330707678309658225018153965161565639303929570185226169898180784081351658940403577687009463494379365210729530378916316552666861310088429886089870519535810356790756562833213074722964652222394042412854400196894205196465492356956463870821736626871262618847135103412537408117944685636436387297156260239793432058560395202027467229121566651682435343141345785600995136099256129539360472987662673580575478001772274031125117905390526709797969727670475989988523272633291585112483983263121389278684977012966158679836941850604522833124966954776716448793864175420685555312553975064006642974322107629520892686935921703365528801186646549874065407910985287172402534555930293653394028416713913998944811199898240290434413134362637112435165542909925276629202661016479986461554395198977240294940300486820308967685234869940502342057441612716242913805604769285533897236184617310058606269438929128126654006148784275081739605162295229385377187331004666528315812684395600997109935988840124840460417947553882929676845882581188976802388386723243559810405770125681719609971755986815693896499438650474069042788322392331132716593889287911624165751853388794181882053722216264548557122178159415074624543943736813797862302388536011993626771951469350619218556611232880647068464649313530988532548537971663404332700962272315969962085344679191580381370305388491526369051642968265780759933798407486010778334037181649105833550643955212381613799068116295292646160466479747655997402175740304627990861676887512772091556396788536891332086837764247106856701440733369675144404862997896693775339463996887726739942015005702849000432079976729062851635740977689278751046331873886067582599511520503372120576866052509901839355217319291715723844160498001640610376165874642376419940709150672828006097981101825769941113176342529040873319053530619541194836225145220648097531490651209143945748096641825384710702958439265799426408908207428797224161164584103724647520720527966818435475437559034419140760107023665038878155711307785238370541631642322970530568242049277846074944802496845822950461553593569617427347939059821740997059472834140963567523176903130799148519933157487912334294946900786464333119143718105268343019040784121706302723339632699522740437894329513619546549648754090979462872318557387021232707045955876688119998912570718845011171268835188436607748139553939542880838290903059395826209717334158307402069459557101610327917194772154630531716196388381090740419718527549701301123122117730956235234395088376085257605957661104196530237845548799942954514209026013420808563075503667906573192859632933114858761091944756792123159696260586941825517603339522258332906241107844891908854773626905499975179715570466308174446846281418919517327932766118179507775569811821253516576851178617006473095904321090637381875668994295449401349795681581099153495454572869448293308043921851814787697873042399184260681816420700086053003690772655625710696446515352180734124878344168194642338698185894522276761996330721348583166831831642956024051664845997486317350549456515664350863260774007172537028146627872928544959389904241987183942896989091969282581847329124223741079496817186004866417330354420720394405614262455709277931364779365952059202926820572339257033041905165911955516257457487053063702725716047624870490962887925068557793845058038169906448454784616731449749869294101173066612356051827520028073866609978482895846245372097985401595620163841267933332348428931192527038233979264385141932038292040267036010072066660770312595617926725477693212459332208643782948675842278750962441964168820111515901785114337753962311177829673555667424273026854213018592556393890604112726069555181601268025243701840165561586015234012194620635478091820872321481151637634953439602510475981264445426685240062019424174376198780899584469246626953496332220964592553778702716525761623033806881463304136342281705466642717862979560408517780680449881654247492271471963550403715544015401694755653960130162543763011330851929236930180089849526344679525231449539579759019992550416608158758336250737850503207416721531902714439790669792724600154632274959238554966547981896932822942668748672487427042443758352887617394309295682523773523337305824641644541049228213341111592723517847603725251139566394324550009835565407296333181227413835968076540528479353863260924821609499024006882669370958550513010177697874197968517404120690445556110721968408246668763042505557790112872543481758013083036024637548016775705167773817127514184137957469409843684576743297379140805799208511946118862226101470377751295786534412759753722799821196814333320930682274229011028564759790871915150789097106048125447203584230047336092166133365987293178273607673363599448766438333037165941315948834356690597370441061979446769171644383688854113080135004795013945685692149070749319689813516869144275583556832545747608013085721105708461221739367355576186508952954077162542664215126139161877189713009222062482309219076990933251613107695855890453336951117493316120510667417822131877124191415993230653450299807127922324364067679905062023430075026697361564416865529101996694626793909108104075084873841160981100122505357350869963158616119537676333006161992707139800457433299241901131993432507494812283498137520668126778986309024896844790018883562495935805477377557966671180872461822561116384769114598155816605834543615740758937004766993994200152357802658536336384185005513684840424819430805771785612750210676106842346086321399294753891433144621526147316289686975618391743957384354311334131184876327641776700748642333240375581444841562328639506445238303558966794514892720021408274579718568443344261000576892873374821174816477324912259929786022697329938540207667773754767555066498720453619377970621106670157833662117886930956857414488776740352671270109310625522154537890772234705554651465960622991012782709265908174387991355028046818979057867540611513707143382733531081940589412537283595785208542407090430265213140231620247116951657188475316091559672687754682785092638564891666814155962181277376028724162227402391208578777558545452217605415191513138818050586442282508951635195707612519427263353576741951787197416955597496309843289967265974128307127226897202631820426847775124901165796662652671532027780105747929786919249960317478713251959054186719358392801176740244455501694164612524825576433085297424984342000216056818590845487192817113102285649645505647957579523958335387806433081504026478301039241836908343716505431782631543228318884512410853634230561669147736105982003507581460513541722089116917113938409432043923828271450893354414925188892532405289674771465387802276784478530520388490428746650905120692261764630787315643358892729081326375267746533308678811024533805719587621562061715001718035734897102965043200473851359028157698771230202510858214382198087865294814081224948204336336866816894916627275916768474336433679644818991930488416166885979813502517648343152094074426785998812657429244902035402984352558523340810739248721876588675129191129182209914904054875605097380277315967994496149529398922563210390580221170054105011602203226652906772763462363933669959130636693280912769865900753685612960390665323715054895648447892001514896498668641107234933032264761047909097254058155658853720264281268164810759019175842827681949492909609036631524401322278303538588351187880603822181816212757915543861197400273148851112417684466903426031629806338088795477774364741745203193139128048479485591661791376426645903720597771330075464239876362539190491363624018683771018122465529401987153020588475044882716100375300793828424914356246467393297079682221648208326630204422669570707949943360847000760100399049552551790339863175886429133119268501753629244085714900574588483254280864334200234750998937040758681019620815829123447453307738526575565964155676382383808094376250185327640192555383858405253608847763332380031476348588714196587521275322129039567274070722521272679317018714542105254683425693600007018480334676770830925927001651440927584153607104821117072510017370473869988464886480346014809896300955050318867279096586868440975031665995940424022335975768964316858738071586180260738980978494870627551128608742559455303948036272185216925118527659448344076471059518963989718629478956913094400936096865463050574708324476650843290420061809440584425647191207280603410069023002069567371529685221322786981550279184723755138220353234636253569917154554997957545392949573324563931457131000804940159293599488588408630997171147405734652952106265550263877770459600782113099560871220917960558629257304151275913529389584839366497553047234325343626237967946205743161940668893925871254763312349599944309830775706791041278501408598402208864903242642733497891543117815616145894436645066452599237024168519252625303461948482908154300254133033766498303896693675528396936353225656700306901820876013494301666332320612365923170864492534643140773380809841678038112349534296741647886120629794441582480400815839070030859171013767532297355862392733095777137822064508182158433470413371092304364990481274313651599092287753536181805737106653611406329822981294925679778605845188385363436958918814092871292965868573648393018768631985348618882450871047622322979356779498133687014632088935935041862012645618680926817220851619219994297977420302681129126835329753429388808146687016284601570643905212295938381911108940122819115982493682940720096109058145361407849373518636457332751451918464598728537589286209457644765672309103379558449373939127366760561514546342285019663887654346649699041534835388022973047344058333002154840274624162633430537088501019334637480709721301855948201646816191961604750768824357687801277989335387393922061728153978088730184723890789359106323526996110775676876592587033718077006948704405243745232919941508234945706009565851335607958576447609644265802187122518881245362371024167042442498682429586733960667576433170884072831372844931196614743249045024513176672116723853946399369525303672104899846999941354084476042635063370995695870228363150858436590305723889602022229708180002470917518818414437295144483730657956264199443862490110455123797958606281283794011106319729315769224511010865196073935410381383760635885570581611544021043235616625382429898741208333346955629731272163044034481621157786237844511146133372002095014147075127237097448866116976388084105769300858789316440944548279228985242550719967861469369078763622545013754983409184192136402097071193080984887795530254460181235163267922755099150278203415438673652073073412506183152420752300779723905454731740457847210228881537746487324099090215643330413121942175891414205873410494381136960551210980370434023741203774061500826980144441620079550951572119237195768448584409678362960492294865531796577146308858042783871871432580129681157564083160372403407310829622864333037863718136808346208755229759075031839848429656546952605161867264361313673604760323468721856297691157968129195636608548343871800466585387003396285778969014650348511817031587302756667547403786599193929668770074784526004078780276483936415978356700957794555762096544255080877869836856808511373655871745446766916045172423804785224326285525268145229468260659665307679039952607193698205084867433288954826093376079704122841201487879492798731841200135521967540071608015986968439419126250374781943531194306588538446586709718401063167057100343924291504538580985291128864430234127655127153948086828438063441129970994245064352706567694944002068509514805598581836699754933146873730550460338515025068386653319296798390427608496236321724032216344484201802805997813467342132476023851489997024618702027752693764146107927079616615614252605656994887502046845139299212709385772970461317225209324838191832639884544166984566460356770827365994702568921629017192777150200796502629013515960842285852940950435429555953817933823324969649025434013611054575478062898332418051939925732320199774863926163355534849544605561516597215397701215793395547875018124179743814911480278123523706606965502252239854180311661200455747121742313919464800417627011373933535266429672527503558790190395788739269490629349141879788627898053220541209156272076093942241416033921294070303198561961008199483736035751566235940660433798840212623014479704263268218503989127153956725346651201407688369242791331901665629945937944800092164901941076786398231699275304562366231030370560083348040480970514460553271721905247113789466908527752999677586377212453823090707616552609193424015196767982876134797117939955271955355274312006770182141294034897305640231461782824984279670451157470414103835747954027145811123410840914731265989122868191897928952574470247389552103172240197220862960796735420990586680977126213967817382246535774245656203082177315155807578423322639051644296431364336721834595033082640963176295943932943907464281878898541570524355879287561187329268416260827786935761565811304908764715943622352450660136376381319461870318490316954381191023192470147435133312797816035892366014197237502653039350382479485850030179257067214232943000287813994720009204176838511409286914300261828166729327077572561608828937669324335543040751898359983526518697889751028231707152244757142836258126802541420836134583103902520058267022149781010374655119310934327750815716333525003324423532160527116358047858665968012692477473214642587187655519874463480962180755844919279330186500088859194645965709555675887819705263735536062380693005520576484973320673584899874227442181477544065908786415366980626843332072648209307495829902421685366227115114681651657819104111221882365839414543243584958569047597635594435577101211465300249505970958011433787039352156036181627576801079338305761183283144784476647959134211915612267132021682900747245218433766876091404493327174334719015418818395503465971151252911913404478720700827140400300648318574784231131159448544972361473302685371220448865700867974320748816780378042762492768404209125444843891845874534514998575011567746776490072621565477091150023548269789217037829979299456713326078227110241797597239725379959671950023763242914068180881695265593679637227939688378263791266169249703463930809593895777345578403069399879431529402774219302546051440178865078971309976691444964067117545682799390639117556584147539932537409271008174114354812176328822997603315071947988007225523516611832427663869425568960147938321235298289229129295268049431289106970022912040322890987312848517768204007340223133957804946312917567481018059349907548784952389916134477711190512539062686588754660739455982896439359570950486010381366264795482295858404172592163896535935341074809649080136273513851872433834478571289716570775733449472888471860056504404649565511348945144526057924751810264582717948071998707591658300153455418372233458883761004992484221128364506298338542069403008449152596087077389176994407440043481201428415978142945436497082002045963205302650526938610876311769337513021174553538661289137782384464851619761041881651632968614397885849889399074453214331460259273134645304206355282332447581161005469720169768244626200164675580444460634351633644052428216393659898463779513518273769091525194385345924409000835096701578426193616590082810117635343788460884066131670282155152277276802327388740147445147424114109657674214611201713329297513762375249040867838555144268886101347333406062716881171649028123288053549106326984559754757666791213760555178897107756901024550609426881443821645262007746695063372957852387692285730543497612872181146659959901062764000962436531686078194464473685061072812766610512512348204632381589665094278073581271929469020925534498939474286385187743207267406530592666695448427848633528161224136982073804003795272121069669800698519015286382899078574592778799609133171085282488391609769228616595604463291528152502965971428785524690273954672306643368169214798661229587367013687613047396867557499522816141344072604615103707314449355744556814822414654878069702274040183823563563769474160945053603566429930019358336425306932887085643899080590472764842263021312721979089528829443358622265464876894503731946900951925906831726904286903970859078902210820820692069237497038555530000762979983517638662514405624284397456333171580673891442287386133623780647811211750973996155772266101421729676562884667994104011508067711864869567642608930657037553271393466618167897426262505722873259392432652544433850188633821248611977030826138434679674057058950274313410737990244396255671597568064452469837102585214264769319791230282002837227546559503214755643929341849953346661048967098004130596180815185753880410139764760423430119621409744545037028339631225947350636973352552546879069108622005401526151051860349036071438177004201143972601591636461284468371745615410882286578437334272174927712342371897586038050922067606671532442533059521293156959964177379802959667231777360926754094403002276872373264011480727120736101990779702153549674711653090007197149237038334837494505031350228369267501351698881368849484086213423970393333946979852755895588521113015079403394214933253654802351327807172493008492274965641290328889251750091691674521738626062113370051512846341143327187765800369831424915387797528519105547805169746032447270204221094062637398331316351017646558163470170057671077064510406080676781875328743635683012999259839015583522826348882252083199607500775543852345885696619995995444126190060821840615422882449297770808621157899022646866652058806862767356766113416468641977897324455194323770799808375050808113951283884713860990673541650583097368889769870701192392099854921706086892494360919760910425375220785306584278738429512662615142344453189364208055765291288767008026312400683872758092920910206373035222776949762762307803063826139748222107121410816877761098105365679533352281004063513345416933093480905210160362282838975163585092610062462673263045598776080516932489119896523503928807928417175097120384117695199616451371085100724087601237822664704836923932663889590277360759062835127975825393408177595190492052976151443267900093947127539877972786815928909284474014594914220449720912402113872325496982549459194704302431369193321596878488607281447278013853626670884007968938313076622287584490384400693535018334027829995872515926346230763723899382749421985707725737701739059931571338509900800930321270822200837334249677483393268141800651395103952707729141303213751496203683144777831340782491817477539605697571697500013717383007480273884452411205270464951959846734164948850320426923287416568900909379274111782096194851388474463327050246642523549948505910527884153637200337241126454135724436492306383502415741242892316506226472804042954948575529940283650861883679048752599867434953938113228433814882005761297688220822509230530702974707461196064141303594088932887335338530711407699792331425471845307006378116194953542351520873003896504950141377106278558440311650504643705113048325260755065362859689777557329276747775285742739192526883490270137107807411991893323930114812285597866020979324029222099576523428948439167939303243836738608248828000575779581093045283822504445363438361691349006041253558725388632208508959240562395812808429320222052926696940851620656123540444425927752234384054452025058140138623636250278355958956184318516324171458929594102580077399179082770141957074832202566803668754248006674826769011342203999482741893751126623050090723620990108495703799135587012803448253771053196275949276908610434199080949873622300758187203718037445126897310233422476002348340218257763416003476773212482733919438920986640562829904791064781789878012664878845827323293126929770017708057017669287428306302010657764169218957157358379192272079993410820444283295537588307796788661351138522562355245573910840066174173433337150074146435920294200723725709467197809768875984623171390255606677781752581582756275527047630251859409544587985626198271987728709495217495696251872954447244765529615880888494925136359122537138258887809356329310252467595456414547692156623114122390305447813533687715324549299250453123833707471986786398160683180505734758384357613776535987293288364456916894325062916570495568787013458089196379716940987106382846278187622330440173753623888937353018750130259854018438541970820057178262827430560863192400516113022145535016306898411021504250715350393688597925408476178789920536206486593280481629832109224219894951128064496172259820832007595174398263193406425209525713901718421822412155364361869395733640885679022014176442827326730135437485143036276664651365723805948753862879765444397505406489099916997086083768776837999465824959123576962332455468807057533024999899381290519298411383740062178271722149269660766625858147175721253190757059455931115591069620626382738148419389664085679783038236041577162758419591473838566200632738316027497043158553752380574817276296269283469980012051564004900317841221263163025072869562312626829431476132620488838353907478968974103217046103066440942616452109462536820691193144660645643580275804102433971617662282287506688239333514023065445319611601092563178229026040807991287435855947609004138684375688934459604916531552043240975960388175745336546906665496592633820216659847986562720098928475939681010093075493128903496219596331751018039669539351867871697873980624964269418302842814273400761338706809014763358873304700927385015821976101198346698277615926667631463083137272847374336795362951268030840474433189507552038078900614504816082106846959320918266060879010978985130566567055780621086252978840565263309925463773789148774413355646913385009870978677398834800024219049942344855652193336981099226642251273758230238586130184063275539189914633823770792013454401321265065523256628606439254535531497868130155671241585669380321161904808167395110457146411862766813223893797469869665152134431494158787476748337838626262174598309230424374428235796884319211215574324254686995447538775122503642633519413960242607275477289841018816153675218999015025490694250963627727231094506714017386166907115288002919114095610535712098015352623911577944637270707951728251337705101194916174148291597881202304864944327168584324686121843432948393093738786438116573610369468779862437679645575284028005378148327522025208277522486410063804438780712106349248052428790757670796759544106224057226248590449939912061111698251766861748228402523988623638591579541346484887586011371196910764586120313924345558185721993627459146808333444527103166766266268482049434150901152978976069590053330882383247075477573995784910613955397383739548456127266329669126682546332132508027243187970099497710988984229118803971385043952106016431140701094436034392330054577533301554678366937870239106967406853826596678200387388643511987382485619762233163749910727376489756995352354813832006336218523543128487385840746927812082314636306303782314835383076938003114148085420985181443335996600910079793105631282560690180876701858927546771737444195001212608355453465729148387002747399371103538327815411038149682679710677204030686373345545356274410518504070682923779167204250694973477684782547596004110984551125207540501059932902803466823003921624222134383728438520488504847605118483763096883094612369447610552860548558577814011825476388456124221551150665801818545794503100593687744532253164067505544132536969591668164548438135940837573226725721720118055540257496813111492416392417559488386687691396073510012083093113013937101301650817476262230260000036237835250836996201204808012289858556254668417921066737812585704347234448570559360626628224344969904371820887374175160084252280147115352510045205014178595604207059210781971172510936177134753052819655156247712371386434580786844918024811897010613891907379067345005318555027399360100300352757025099917136182022987337901482105166680252548948894775596091951455403942779708248856293583892679102180252928846842656580649462282831306945557197215943904762073586525514200032691847027785218997082344859881558100139220076990359543073270798013413908126113994335974273500186937339467273373565430659769590479113625577497732290877129654232189925609652135893734176407265124910200516863410903906862258300776693485701812559134846095581839827126122892153237986410990625796599368084144397225150284243510425778917492914934130088839453892248770670744251234671661724908494855935869799035155545149252714644611279534537091451640672494714134248849435069593165626544886752588772953006809705832387362173894494638115589824324297807416176359918287148590389994635153562453108849845829286630127111863018519413964112298307819281296596983150171890816675066868780452178368495655052645158394742869647196571560954861079731880350907778702109328584754400708846273962966502861623554371463718496176260340901043532005790477335433839196614428233231393034570783510053513978037057373163663717655639682387331567206313126822460513698601517694539053158651997547538983031987839110174041267931244530236732338887186492994757492114101800924870039839998924329375510914982526636204134300234582888021043910456163069037835102699765098366886394027424011219955004512920131806136583697833611886089602861132894563887263669374546024809423195365192276494675552907764311540771356864118520911420609514848025869463753632660462308188535177623860661794763113211515595916298839930489756926873979609433785036164906757981377708457981941229442927721684723640293083112278986859418346262571622957254269054653082868442419060948995664258733737561550905985424875175869921290497064124459785072957165237014262618157017831561376916865568619574284000682552181667334623693467788422277654859741922887729549535792056737564061781341301829990920041667991147311485846529746457028283784217155452971432543643803442966863744645015876097450586800820351716696143534100348571198712504999741620966409199352227726702287712239415519996081396409848520221802700054529227631284006760945269065881647600753295893008909750219982145945216250255715013729732710418423719820079264751750704755499924121835538787037482115322054516221544087165685251738516955786442752152730510692362594736722806396663052587003058807626834294193611267895584000370343790534949721129410775277002119928625233899920317771476564807584634737806374175638514890188717983512171334384439983605803611892824856697866379678370493528465490559938517903735432579220486730157073416828037701102556372720373068253556786103119090526956855683951807974036220686381487491889519849258273535034614568248126668185001398269305855869712768495454122815952320832871051086345368552774631399647801625030199943219328097153642726091592588901050745466469389060129091153084586936415377078689821566117029605666216145610724005459505206192455509496868586287663850076573968407207530506835574900748443758470878145137818065539091319005491274742465667492620176286870290296206252935286506127470548140337079598483591009786253978887301399701895150834056367280762882076093202983963546919380583157687004134232523633954994361526712212066606041683291391339447476378273167415084762399208568277505412945555020787279699471568853379787029467256368483608926770300784786933294231085639915938925356505106133530577114007111412291830757082713318215679903467263926567184957646530975907359624851669935628094116177003136649536396642833003465892682302016559021205379487795486985804483853126076257083365913851723152889478961767913731772886157673591996335446037770611741374037909820294073646941761834698609732350504884897626644766862880844422770050234190727305043569522649894906132074401976658177293200943182533909118385230973762216700506873694806822485405543794970848539620947712709556491021836245253521182272975835777399746206299138224882166237054442070701471256858524021182426386730162393821676508006006854984424534186292635618118405194392617338617440530103926119571063417050171946877385718612370936076950434632982532628974264615888726919597430960965913140182318142321488650344985520306882170583244775803913668798411560525970515121866609103374010123798995269691322002009677538483213957646660313124739306876266709631785751055929823881092417843777313197776395467666336338311655247154696419495878554656897604228030414538776096912560048770293673018410077965351153317770271887945477353707415897817725340171565687778168037019730262016717065317818202519094996168489600679053318219884265916638332982049869162074698955253706217618574241756748740418746038234921005213340125633420795287088084949325138207393064148554805808229653305348898463611633268060617612228746543722894615389750096188978624943200313386911586409657599339296262192639150038633905197116733025270783947000344062488531437359347195232701934507396875674674278225821440787455486843781084068203902373732508430784445573651026485462515377942739780667867643426806577626635325030337838602718229346896895224306184934330974940444271085774875980327624602891232225102175446831330874185563522208734162078000597881540992925681389295564785473498870051530219932170816459434900500617427542552603920579504091643227861031992084764437858122119449278978991335804180582202411708086235187505248023494736577093271579440245015673285051347479178276240426272094374851752388681302710460025979275292212284030944531614720153386389926464683334759973849153089281990487745275773606864394326222597446391403944368395575566277280783962392751737786323819899955029624080128067545657861606401682682432244089428910840811528150802204906965176623039646388015217920654007595550735127031943315453474618542474958767730785589140880217734900104773234901093772130048691298188132555771212819898529556103913559683985526797126233623315833691234126837947674443465282632385926895738507690207533969025206286658020354787105137621743139990883124092278359525291896789758462983227319646084948925327073652761772816967557545780135158177536140083561621903869277106483296379117545006327810559066113880503341847793740350716485053129239814615167840303507026463180041263598408670849129612751447506971728409883191422805463106346427540291931691167015739539116016334399774483639217384612261050607253197348170999681534407262548199981635589815997357215338329338392897128495564417709528883337386497945702910357738285674469578541663288986592916253688328294891921893391382376023436368554822676062823259160647418380704860603559823554445116479738357205606473220917664338617838260939218520109432467616506502380921534757724547006581363932114300120222223576337316381825141814068003333173891597006771440312437937409730413977738341984519686208194666623626168275951536532153778628017421492648642322990913002239625341417977522550999059897499823436325960244284857926581178813584807419382345442944281800152803019918992079242945169326169473871984464206793253953103808430554387710346809166939230167387751708235448427134829268931045341006271226137669378349458119121689019918365948135081104717254996788196284530844820309795306770834221236053554288737347732357477068512509559373731333595746085952400158986489503971276868403304019977769045352584629010775979884456445788928027571586909796045756357405043585822289653042584364676790800532365402922305695973873640642242352311230599677042235851682102804851263190590145252110431762643321218565043912938251801373227737981742755794177648955527565916550877201436181860036474498226281493403192313952337247646057778043198598848264455690377938208882500566883022788411340972019584535949123379164314064471328616354489227436783424105286015161314034210276218278909221087614515921753816634650929366779882943721943589830249774912130461987065863377889267364881430751064762545830470327180768642224688440870775257214095655986730162995200936869417487298006368147013364320344092708315435319658120602461548086080101120010276095349421952979054198924695330827595105205726447018418253649525361746544178830706880850647255516859222700646373583073111089535979636651384162801981873630159396497234008645159627553313607348982784085396315952196774997162076674360981125436879177103703021954109281809526678362426985849521610377567044527060475951894899470498578397452799778289578205834689838956818465784765924829716093293110795646795088589605591840531527496056419981173663831577903872237154311736968610610862937014360185902446699836946253006245859578634721323101613028648410162344625014842416982106751911745631465466424149480625046969014776617220668313267156514845122138977147000979847187697351446210577777308700219207996182891609676881104277389209457148044403642807392583215611349341706923853968824099396189566624926043465529286434838708517354146101629971076760773217295899639894911825323845169231626983041503538835850139102285663370865194397350952855930388008286078263987351601064741378072535786615524997645703648331799032530836558512323057492991735962688088764285047018548321243806390676926985515689940767273769119279169615294315015769262242750817332351867763464153059189253285333537705979236110660061392029721974423511812976612523246131631277735485328795513428547345689573693510020824736809387062156827569684774239032118182477822174122340844885111353136077649023598723728601272709421345545370585927624543087015724449858508447942556895559870641395114806130043640645490834573984484360687811023343630383373088496884855356664819530974857247338169024659041671207989458086552140166578572837127835079917977160694060977083160085281114079994548147664349836737225031503238730353669998405178067915295681640368493693260108456485832138536462027176225579090459616689639640436291806152309662223510909202309461997773856511677064211384824043318973915807914329321612307231007962857497732488740647441378153368925004731942837951653412830197241889563577467487928310016198870117677168228707413428815095835253361132156635509202207988610002236232683670007605023681931561361179522478408179490730230960792272682934441431739880653529933671545664615950985047010434122933859228372875899603316468091039481623352097629050561174883585303401980807577426433513667228692046278983984562832742612206620062957725387773584208371580522938809242479797837813482921637540190564058247891392326657812881215513406667566309555530698017248699690497783912851049879540916339197587711490713115978803524977529610189875500875471421386533291929194193054638676332271726612620430719168976118443884766622965965677652963251599968495277373559456421726326319974573094991712634454157078208572974424641919988598556039303848842564683764258649044037744420103455060038460291975841069893869579723819629420159721095710002400144489802754011574632208955946104969166830201120259166379855615833839808346152676401958529865731180500698742708112709320819489698824646157508498825520320951392482197910872912796197126662324566726243713547370630428081462127766411117685395659187961374063670990731351638999015520460294017509305311121018003076708647053805417968651195439244598330799606489475049385315051839876717465270338221632473804261752929802475348904560311864210885984680873378006347587466905750404082418488439599878685364188052614298719769469601685749851390229653544837784320892375085975579989116890721226478062359219504158990543077305512584205501765174436797230688015877058555659220486137965439230858862878609247407409852199972028528223962887169474904006848343732386625268501408274318971368163935220706921816074326095433681262566591811875535002609669621901141347168184976870906555997789410541982330101354709277527476145269296132249479644115583582537288380852390270813365010370784866506184795440008333714241778198434176274794988998227077724672301970513798011690695250134582724574532798162680212610531962340172730894874352749807906157579755289613976202457163366981912553143685469940847236793774779364549750710929171159850967493119987627303744032140072147371106474254242626500718408959539781762000453014836584281544647297611113903744716157166668238877204360654973440577148657620143365035843542826074942316362100254615155184722349866400518955288802321150350709070863938067140706877704027888410802528943078059065423217417979875101331503873910975727097796410706264572635398187171122579377275733036245014676240357002465710860827091341406327002117783006981816459996819365483835002041456765043821523246786068378785377298965209553787146697217577531623647672746293814648244002525660260846851807138728786158464735965483020562926354884882632754735031783692474672238725655525518665756661965440358629849072474134585969072259861920700662239100490795303058551894447046964890655774092200104622311328043265703456711047415040817002263351537128186208719081676967127007208728785474193347358732540723056929718759355164641591491297012163096165623627531484990627329332479224718397179206002565857180465397751070865561475297826517089018960663265876795379676854555618404799961416599487389576095888369827783093322716603444863465786024020126789492481385922637769525073572246007430413125680182609285904827162700708683599248752035798964096478813376147605407949392549982347152204102268476616109777822688887041749719133859417639292729626721533135479385635393774346863590668327722948778285863960302070698869952677969870206676543490095207379668558342237988430413662413122081820322335096089289942831810637531834032849982531944472939277272312377085491073527642871270049021613644194663883762802821362425391461584198859922041944840868867898173175801127639830100541082578479213181255633113175986436257877887819748671136638097154637565873645175585719663667120162910267409219324921592152438048000951433724656870368306229928094239992342158592408455033127606267754558490360907377806714140925864434059891837712308858218237184774656452240533590030923167266352932673345248408065140438288504000521418719290961230227100843422164608458932111540534790036565408655830493150332846503143668264327327274410302570123122136667011277063615224342967559197954309050020860666168353224986220198080330983544332268653141606558823680991067686483063865737287875003593322568646311024326598396536514487773263138992980976749882107836427427655491841040545988388761591256746503696249571739529084445215732027251112561011815528343891460615619666671697298020222616513077568611109260219324816106712356220355772212693348753886486769315133373042151742417024649664819880751726970058602048814204918971951850101301099218853088269100794298947032591837009559296752229336535932411438043407421957729711078235266385450284636993910674511353205030921249703972107984768920332716360577566344770906006995442265954646779635188337873705520822822166147912285445686990926875701459257966857880069339434891512258354037818694741807789771224674727975931751141838161679881349105558370356585783161852097733463573816370895212855886785497449226565204177113876726738068291932035890701595662748072659214569990584444351622114806037926942345062865931019188024157811080585658384954227874145762667388924973546129166857936308056882528200194666031659209810033944502099859317496001474460405220930771713887991780651559420940201476685583109020577827169090279293237547461528980080010501821197553496187443039274940596890872601470390801637472247911339632246653269970836514505456738253600366392666035279952503654883808328975886500010803616384297789356243448353682361557670361243431237315442755405447080473120363335518330473538024154350843098660620833749197510917380354156924793691802231456319823309522990178135620564994681378980386045982010093944783697907445635219632842453421603785625802852824695010943936082967296208806028988765027384919777680976865615530652693763476447798091371225019397802176735666099494262930930530682945134113075241812087152956681222702364942137984307598682093333684285841293371659940115948473948074720552965744398752063335279570368684781516466242340133561474236871066181951444674386663491135897738013725066538809959714659734951929125058850511192672973345084843583449857361062624304564491413837317049825496121365113279708304168556283316719652726400616689379191093855605629420538890350501721139380775532446824388797738379288683277020942213839710114031294779065439673615008607968654011811213137275772669296439554923391804094690739789830344090231029731818873590222682271172064613641366434699072329281370598563310015481523840060814197393463063959513695255636373849638145032844596490824822255113082185406685515072125016157512334110065322989578632460358993416294181543322712094019397506049551703638142790714924941031847719229782449476502479485189888701003661520163422755168964052424337305269077227443929606296961204487936937158797332854296004738236062563121642623059251186252511027594827894681816710717200811984300084210165932475489526309093798140944359081658231412071964760981021163851386743069497189779712684696501265530672914592709638521363583674591134062885614763548845356791463927443920055945725544000991181616194556679874217991872331041397063895563131877116750941936647588629628954024146567865917846845566840455349701411274713698084883410739630574846103910279416212239161083456573755156173491995988876290764041631302462459490679108319432179873574979314832480656284149741168906949086827416811624322373658103262723359546076833670340283426351906168587411012435350332170111529287350615782906276234835734254338007600734202272909072699897946141569738853716506024743158343657926684585872475804363697344964196810024818553845778970900364135865438107279931093529203676717209329888734836195044699933649217887346489917699194650633153330989751892980173117208756881279709771858386617492777590333392947461958636504138876409182043644780516049416688377726373243113863633735995384790346944727756712815268215429938426150203659855490316573110358274622112962033057663777323336145357616632782574088991284909483210305614572645123444986282980060757233109304065220164080102815019449569836852016954185921857333887228201692173001667280317428004569920483208063734346273750923629819740666814212965833125567692184278826766968079693738027674065316076970612155301409520229822531355714470479066900164179937272382017011581799977913055926052573769591791642552461797748261868633851945892216717152246123505033294882691895365940865727864968483232754210902991743318995643186559943527360663072696069005301914317574999001582553609189081506922382322324243496225965052218614959361952891533254756764890797824152834000287219062199365295017827564581531414839274242947028351366192441272990087319805873384000882289591069378832372168888468026464297516680210520232063628758892009971091983984305526507408036543498958579613746535917169231714439380564177535174698884140930169756894248158850045659722067758249965880984261223288113342507912920155443390402325567300181089015922276756107386897970349726454191135644501492477839791248032057623253867879435265872127722328124607842246622024550657570036362139859070977271205471635845948393128320692148645916044858325966235819068333531093465684396278584196708246435446834948637884857999289866737715450998333987153158332024983846450737571375481414863537070417625562875653454112275681269337399616153906335033661686258074470816228692107215151366168511354197524350034553695169539994827257291912666502414394256649693793405737691213420283539521172602917529018684878687825769721575173403613207176855542739698075483822118926980176545364241283786180111406090015342139591414521391354679853554965556849049057196781501901909592133136875983613061502175275986792360348313665884624323396563152386409689032371952959761170260909098408432331418443640890155868444902429541422960289344462322855533470791578829437635382551414907612173565692191244024120324673927133467168633538092002306239038468986498100910475389869233535803075198536696244056732439314300123214167071530687608870269036260073559871785835204282827587328548978058978319148487082809457924263570659006311014809521634326062574202101114325305098024665544177855797774776607152125703653781119672584800092282763614298512631303016146979566865839173540121930277625609998089602512365558661779531134208186100258316159492382256818049432012192450515527869769078729064430858326803379361732829202411584546310807666313449713185552879049147311133426181566735675121954410344039581986671103087164853875261049422836680553615321917240604426155970251227638994513360126890477316722569146645243182526955889788581066659567932827256912409231583266989147415432558108413811571583837948444358383263736492389771415802418233670779107037429045911476549707620530645939963257961424464650628813541850968413460771814604935989359157816191302941519547838555322943125836024725986192751513134474754220127027486923842421864058633021189075796786706928771458696032053801326109586549951191860396554639804959014530676222511063290843311498055754982508257488259821446543941231454968735353382506387946099788832415684995346182051253198774853129604890931723562450185669827634604889114095472989262464255970417158573399973536868341691079908467130904833126502201135539820046014908748402250202936410961292370493958903939569805844727732296935206158209837699597527889328381197003325953299224864113147298521907863345892633924170739274113214775937486262351304261362825563147235014622550238661112598062711583853270052397980102944548283191407847442904062288153226715866519004404436114429350740785313605011948485911385547790514554967380448666518395541130427518474116782647546612022362120943785516108098068402445437365661659342927950252963569198865658624841497140482921821405441638288048995683973645685279695452910487946096413581159407219876113594268409355367486400936396686102662645000391295061063587209106850453644031428606596318617275452039570107026319797988427370624598263498520556908598353170893306481942855005756203243945185579835731222796297579927250620170279599567305422854757898722026802335676904985696699105568723130472817979503597226108133301167305429303859246348056758278661625369290436536251990141134715215883371150938001669275603692583440744482706787207156400367222846187766772372363642984503347787797192958374475367292424385067004165633102184465502873952063680914658399163246224164151637819968436990975836031369562635657529621535288924368494795465672173168321271916112266011798414822164304534894689034194237845467923028997052375392407883235137373352458799104030707931714787340871190905740314568147427990766714083743395708581504065371623512401929524060314800975388485796081458845314651117789431419478464656639003705366019706594423480512325386148124524534133945278851372951372755387661372086258164907338204107021394502985286057296003361442599269302424312352868243154357911539635994210654566058737275085205840958450312640088397467947476094334593075087128246549789029249918531994408166520068289613564549580120513812311087487760262486505307358643189121053359312276949354656196018775225941544480368593050256105364650453435616371569757876132019373631924912830709448638439122625482588105470663950814210534593309549448270551845698196335179017961045764114191056035695824444960254486689080291045649930120916326326650161690654311069029113336647112129163940917405626257767084170063345456651022213957212270163104219526037704303429354067695180317979943193668729207213234203775250783525382805990605463280434986867108231235054217815360730300431876002425603746862409241344565092367124733189849499451126692101534138829229476424953376933105662820839153233294353323108028581751793425386489123150204973778588926725694822766162298440414516806622587181027064890587737094968390724231033811192473051897551158961922093373521749684225669007857114671138553226516439145685749793425353567504236493728806812570865879504424872194595780770400101683796482442098470393213523092969470608128225722238844302852874163331900706084503659428913694368553801318392411771990835320012160955501702394449588582948553209269367662570110725676102343810457182740023634125513832485005355061474255477571379019469608001495280504970782633524090039305394604759780118637264373392862581530724592987706157080594671683868072017644075137774214599633912952708650686098552060330388791944956978722364273257150700560257270653133060305056452669627365472188060144937583198688204497119031376464291171672179861924030413437207923125239150097504107846043040418570697600059720935449751586882981401483270224908463414551628102439996552144917720663398625782217718920513161982007576103488418785688356178824331664799462131129664406469500271899612925199344887234046650132015747342795516060839451318316062353462489754585509874386004602349638891855012132935420752120357066001504019362880173715735780284397583750315826360913872986968466932345093694725368879726185183735288188599508536179315187637573560623576553623268822273536870946227441187444542636980468696829784000848205202643416062252845737739516153907086083315652039558484000108273560852814887240708079586143428611483588648519058205093013548759023837978990896830879738630670481717910747376264308535083084996975528429646660110124189019751532489598893372302941265431998656268573093116990333746002888928796378482986707679506888704519269732160013748781501576306997105996513109119710587307369971550055096375625979898631626729678071359905714744097747509994052233357439095608340321073425025420069891679194046209771088498581158937471286750819833394755583289272208173887549348603910694988087334560733775882637364111780517440289997925810100058170360392584140820526416553970549270381005255583291994624951575308952222358346772056066577255665303861645014493808590874101617805915084529885596290916922103448905827779097668171144942872239810582919151991663097736831627912626731690689017731361701260234721446550288732157567344423966377885795867163079833016488386043161437285003186251708413224764977785281259314952012233349474948153175729510991589517940488204948109762324940680783044443614291443105773279871849930701410144314074048012016339344840963534097380821489019196907418418983782249324436613863052156434395348933228356414421356992803464536697739521298986538165305361547815511408190065096366743327385317469374300928678513721809616806617587949960761724722505690828990955375576946362790135428393615520720818178148718201763477453812479465628995628259599447402772942778500944498677797123327189487755918162408760093267697301537363206612187314287588545063997875673016321528560242491816873362251271922782989868541500938013159262249419175259885598872663597734754428173125027939346968481074525368886636236788748703007747168779546909648736034750191370978578679538294278216341563529265349916317721274365628202231706060735556179465148368632983891321384923630442497979817088797986655951386970625149442814012316799058897523699982147993765342652339182641264987779006435456220957314091076472242802114418645610681103318835491968473360580753457110223185008734194420457440715401926809416845338251228921143378734966840648311075375857454662469053455626835252834796678543362782331322726165721405858805072795545147214719018759029045648681620599689983636242279109170386730119624721247356461248922304402912685882125817831846509946087387910294117183437293992083071519497681941022003436344298438189799437364941489078914581910417587730362388929638582665267259130476501347260511455803730228766932131677504878776092974650703872080818518721922668407251169455663411271614404019805221671264859485823971611397675642527117436091505493754450446071411464627258071633193843721465578018761548407826472768791797929547935980379873507583098596078676091008785429623593547465954203479278572496193051038865612936465059176150540972236217216350396883816100931978217234266880558352587564932995951685970414009436616152829725176157866995035344356956325703584186825360615522847261615968115010853256917190046776760634444584968436106604180739197797251048420058978867847321666568160556073549413176032916660969692474283754136777881128942255589584232203409410145060600853311320208066372771253149991242962594975738584725763115105279510221278666839937794437781496202700124993568066432565942973432051474497065446242651675608024413864850664872861188439164298060675373065494678751200566497474319123412589860584104510342308215088753623569325657248841150299485745494893448095678729221577359048300219970155440482300828876604761995834202381719000410257903248159822709330371109077763989308336521067210791685171135935957571693423908819245970043333093979341605589519356594158882031438755787992288792480490749822041258938282911519989065220857427570173169829836511171457451857666409564061070701604645496416513717251701167742641380726356907944325476064074374480351251374513904574891903557513957833495862166102194127612580102078884518197872124414430430145089399150929629844804221057455470685459907430298378842469845956402787684882330914798958434850712101493076718360929836293336513390550621732133296549486016325476496056062837479680637991252158303849572320327301836378992216253648505892999149087408212053001086064457577142725574530827217131853766228507685021914739289094936218326076422944434659244695844792430225337657573319902784436723162427464151402153882298926495611755110149941346925178471843981204292380536250936816009323247510389255870319112089625364457391357169004972095620839171721863225120826452545654285694948229383512838082017329400306885050318258414264829196581661964819481656194173597177120827088321501777176820335413515947453399041267948999938441268755906703687074932027118219712643349715140245944624634125193581980105919459169437826967253514278606985627674307272298813706523758781117082880892684455135250983453882746469533733700075537925591706125285146822195313624559052689320081261593181741408571381899583653857471698701361301385308803886263499698374306893019646396419586446023052453742976609533793526187975898234220923363151823665438841361608562765519515072762781776607548304340618571127504045932889073976629539066521503486689039021274073645393864527065502796310161309741024634041262414084476904512613599720168751118880131361560981889475320363471261191601083558516654982741052074118384061553060387881021818719753647644712550138289642533359323427911315338552060004335165014926723280622410779101442586249234813236655884167321779509730656690011705632295169683098214427374375535572894051854042601736069943207344463363713870981087923082823721918157540821707621974202839791817957954895976070887542139944331470584080435155528374046658638602850443951356853687789675636961816278468927542458725738018461951231971230468772912432556472889445558573824510858106534981755337710168697772940644370236636659472095423963236092308940918825090626157514249218058674499379662166725433279520636473994109789660095608294170935229192581006665943059104828149630966012089490710241086780314997503618323198118774999351628592250052328653460517506482775504266839291280272845154450347032184429981767283150562208298621197532809988214084486953306748559450619386616862522725033154846475907550906525725297576973198259270283488549635365855564210346554822757711917067780910855591777503999676064911703907622081905847574130007772721799449081984463881275945892889856608499924818533663198965006163941862235305536048535575870471275215211415591835390192911065269607431909966916358492189924835500304954833751584609878589748239964384051724382010370885435338858488367176338110092021283392882713153922337761007112000503952900783266270789783198611149497882174093566980878983881922320087356706032026293003477654710037421042447168446811733640651539542905906261606352412923617354822535812590323760207907598986007658331376713063639551581999862200672799459488472562375891354031412998184772593631693263645213079055731450729300289017064318224773287101973208865206627815786417976514969202434153743529614310956706510217470959082743744811028354478960540897171838674988638508229932068722375952837750080554587518790525814837648858573582115491402938697307850473755917862084833171967500481529104845756122609397002548234168265760998731048810399459952076051542275241729787158015526336774073842889745709835737039085499559722608356196594889265288982944739373122701341305494975999333560793993534694256574425229750514112829385449641125300827774435766735968823157091876226400162455184692946287113477631616681787499511544444452225737901654795594894909425913717116692233659349339516779338208785866498148297821200266425520859906490641964707365721135077779251623113494403133981779919336158402406870730088747349271838114134712047600129093150778327947328054778455706477227711131643168403228689354416183153137132923964865686824023022340793174089525454669314052978279038744657582817609227986971326961489774963631648992532960528229023071646083086605652815486834427400953127310930182489227821094949188002913060448624664841617605935515525869366959945689830399412679493097633902677961684865481162737849890542161290670222767921693419143499400514153769959218848819661961370411014180347940708771578761166215492329826027777574031635308901675427771675267154715749445648479790655181163830866530657778678291562873104854282730386340197307853133156116239268340602150115591029301839237455425566775703276813197905479829225304908390451874280077081881077913483960157601493022283535483489172544419268052122304494703286712016327205447627037326489991744604412015535041340916276616145774503150188369949815720921397927780136195081344751373985302963765136229330962403474000669158141630225441533718648718338359229659941233280745936033878752178769769220156465667516530023850298281744418063568510746453289611199606883598424592470790037939183111055353883934354074083405780593787875217686811987252574826800156427343320952955994620233803980502256643557288537704235918528572418046398418631469315261254138332982443665416147816606910189058809372927690775003166979099295671125796642595132078315608531027737658551057466029543420073756772600320301356860888060892371609413850708116728573880779571260260958376003588457255827578319651578892358867875212427411929948812358778933572762912736720630325375034645646689761278673613793746726326887079403136858959006864069818112980214132710884082562830250182462573187906753639774917917678229757628830083048087591950746323938854188187026814172975336168101610561116431400286700062758245207853883200524879454535870926030195004397867363815717464478570540340051158410460191184339946670827355845905713409179886877597691443239219787569348682091071363062656093987911653971534106756338228038964672674499677911191600310422487066271674234074072130643850148186183991918065915425899782832016772954198098315774283887622917121825605815681536166171672651183808127326813702059449234267468909909835514828598130702932340686778960755138359403405344609258921151190604112366897113781172267905589208691892135869476552102006983850572825842400329375563233942341842010881484858567303271167637406001080745827711523672145539710175352340083099374903440184330319724077047594499525350683290447751351567209168580943643606658468786479973457194023054885292013367119335278934461047495405406509542396568837133684199339731664392944802525954580983033916133882400474380676675077796976404729049464669441580314363368230204893431038797992571338429177905798170272055110389892829262904368103391784661963807584496636328046829825600196383436147080812500715916984976880649210463191174474045400866952329281928774265088462589074669117639809309901040446078824932816125128979526975943318591918474491441542383632041058703709660848764198278939820885906163577494053227687122104620589688409085845541786070146350142700224241119512434926744134121529504104163724886818861776171413785037792267219051289425667815814172112239544237898307449195700149957177395427361294944057193870525497324079868180900063552804788921508064785826521871105237198235564571394178080498496418873531704981406776013306012339624032933961509430223177722743670868724027040415833075896551486876936824605772900961541985882976551414624056202494677851846967486256233679925434456513093066234608742555346770983595995272311740443007984651937809268481126603056853296487294859514052909157588194860533890688995522363656032272347689721273327468530470578497573439195088381005218969420364009121933712304824511460921749485371185866494483177945428254256232524139041067917691480219597469221732201725387042627064829485417555326728087826158441408140601313973477910063988074910094361311351384627467662376299548898968445410505605496556071466584299676689754872515408746525057409594322543499269937078020163794373391735102944627100906139653821887644628043145105666762173882383068917707977647481894046186480240638216198647928656702596988919295079448472147426752175303988298707503549036251079243898760517634451770894183461230500112025753791211177019203683735211042890183609380442790029535374860388459892274937076558030043375013567329684933599430064464587283295390900345615932007993090501387104227607356310777162614859693857880757902939275128562425566356497935377889228144761439111575601573618490993418648181682870074117419650785184342709175998698981784699501353987281765845399047177652672750339788608504099438364060039471291086955395791755957390664744975863253131250280781275870847025625358393834679469738532207775959938589945564949422191976601990471031075872642387618162931732040282959356274960581457456133899677375069234327535901140995125322139777565384340592253182527942759536630610859019913489120510431878880148916191646163675880634664896320839248492216810582748923574790065494979937135379272970181262000895900981900060911314023468243661874803500970955718717352505564261751724454465532668454984133214034430528387947329636622469912717024320195652951030293639938473020801537980905551496120076995182649345392342739675412208019831473094459545763344395055628777076921688138276722583570308549517050226637355996919602964525076113910297691224160454746103940313254549023585014864994610505077253862113929636055391538637846936862578684305751416495508294045896178026829296183722877669966931111849063485419349272821672356254268347004946821339825333680421209349666076518185102434393131296929663204346222907057972766540694973411430440521151819474012812684306354522663663815925926641033612800022493765054184456133803901923569069408694598660858343492348562014242491009805349663950870173483375525068345080415839766423444751240267280485451151345871693569182551455232839995080219874882885062319778667137975918910454545980119141675504198700115386674472576155352092034770013396162864317525509974782059351483781055365414622025897599212286420603628916575296257288111067221398703099832145907830347028008352150598498351762846274693461790958871980216150722132826372725938944910782899231368604954827380190176156593347272858408459035411038756968557942101928865843502795090911170172879411336950388969514377364432628473436817506483640655600520459619073140341265873440290532311967773574371966764761115672691029205824464432615695125689427776161996934130884696121286081811856248931133061093893586758781381349372233279870207183930079752770733238557861494945732858197689024020913058052518114831591429200489108045002080524721230134494714099356987418118318031228741939498453394656378329587188443194829361658499453297984547886560710136512746264097435826234562706378844824033549573668126187170835375320677562857881712478362494755909488103621383677033743833546536041777723472304666891741031971833101879629937679119455679812528182590058060671204941360954229858274807674464599254104974422462727757184937540215735700167045613430706210252852833358420223440415383915599850642060523061067082047034177481857411811876957908737629654971888595208782190028329824828296680351069995853279808602068052119960178182912116872552238319410942583721814775971819726225692618759593751486901105045255048433197952082828374336801838517833219385412798208967806036110623721536418617079446319261522965432432332627362354048123263151957457192405057734055056384812888645819945388131308944914328650839325490758333791974354830996304106287522323693101829940338745910942901656419463897136865453863761902895294860949036915072065184642298225467815658678555020829552754369746284400658179250804880381592529960509945144677966818728486208263117875991435793784711929186164077794411353708868538394380522126731260291496045425611708693882396728530554457808893054602844847900206743822013034753316467572495229517145544665928996013501042587962635079116454842673754085180678052182433711542184568068961620929602241922132941818655005974045426305997365847470456292311740827531128841615007900557632909371940541096096832609597266935619794781815134968135167472285010498956381592216722465987691444551497013965047136540011945800709978568345458086819405986876987209644417556670052006499365457213225253616869027381544923048344867049336408019332899739282341264517562550871232881709624295921283894887383996818863225418599993747045444842230258500123798093119309041707480428059229950325426756859145476066724266167107468867067000512324609524012592010325787847248852428808493615078113653227678333198288713586441088723216057144918241247450421296783183748967682438758018323361821045989275304660155764488786145466880453604418895607993048726686729194477087420794005742708750542264259481975896009228143028176754998903922960515929406431494960928013390505597841732581198684706103601606677970063794516000207209933089632627255539107128969310010117719808956419776795929901373385376701695170008448773120425431694537109549396251195309581023362947965188656088911072696873306007973235606407036198803237042089702276190471691076532413449722176068068454024262405760230000387786612655460101180814085229250192330327371912907037679124243111153977370132039280330200607450084485660212249481385141851321412271258106128654739018703718679584847783750506733823481280144990297810624380724726949578870802979978123809119634204838875252446936151991645446220197898546628561876843255819867789016490803914055145852286379438344884092238991893936270865206183720471742947019219043085591743282913285450141642220023486152004919141187563533979685332507306952941588555839089368934285245417202718799415526170511528760014827870639391937592949907036068686593741515965231642812280569379702371131871002583059896281869997283199104005501662299935310589059640006732938769270097511086091815772202031363541061244607698898486273500105501599084738738340712640243523625802705852435717675808370177658329799251587410391301218794277085392993039901905327950697582844906745950304928988090697752966208984700321508956526698885147358650717339221152244055929504101625570943031779557161729657703099604687313377677051391368302290105302657826298570350288580402404648204832955770665578082570285599266795380843162642205647781128347753335355271955610527719460182459739629056979481480889638286493415886334306306783717155235899766621696081318728068486904200031888965731189784909914647219504171001039692468772057802727872001679406231383840057029657284031317917110694445799669929861915386446286045579722672741928586117317871168166130918665956149540822270465385122773438722004340375835279881296400930472274974814968933628909373753409965424895441070084587073103848439755779585419708867945780129520079095686341380310533855751498906045599397970063190633161130358560665919418083632290434919614141089493634057165591066092019758002862737135868498426301570933600401553572809383060247231860140591869184945760622759516781114618757944061537197826737248889903672515541897042349087773583459437507341785932453909272431695296934396213006064521151059492112583078200542865052828964176891951340488748841784831049529640126219110082243520071659500813599131353326986792796242449485462687912240689431623019917567252543724670435673677992001882667525277870182253759245698007482790735032199390666412924445600103846165317933438102041783255388544121763766368962656988428013628756724435910212626254623626210616091756893499675287717439430843334867607608552367409634423983843074058980364454895818378451041215841068794316167274724995854024199008550562133158601875767381531799471236769721002133129344416932849472981909370933247602508644338766214042904274671064793525744856337441520666770152389839239453935525043180041633249241401963347474216109304278183170229981658609890826718348439403806746554088825214815345848919452749907429415906605560785200846576150049633535928924674652819710735522471558214353198476452536510398819329650100008549991900448708756046490345540401942054048721140712373499765181230367995299830489198399191564200344634618598241030485845324824890952540741369003320054563139273006740826435568368384731205051765439842415692940610421309941865863814297993797867140629320714516727938180745308765185085778082900287646085370090064442448688288126234150079421559184397749832852596974033666262702508998389214337324776135091544774242880970710041194408611452047716006391703822899632280085739300645781334057139457769646507449573237798733397522391402690850723617305165892928320279828690792042895552325781835502184156002806571667258054261731072993662917008916760697971068683373943292102418353653875838897812767463266393822028970035503129268273500634751639171068300095579189692614514416873296183930868925366639853916519782653870358188491171580814537407063553431038709968633796836224810636170278972180096421375019373572663100655770519477426784834782774160411032478659995411565852148495156200462678573454185591619115107650228887522634955294957100866355578785971839325520342317804213612825369209168422002119928299804054579563157305167845209612783119177960864999595541268566819461347595983697116550663120751871973768577730479286140732503607745871010764273517826219807768254175976955456776671964154326554794435596780564182719710841907989960944734562565139410902688970584722170646955526870430628752490262693761991554103854664867107753016410771191240650954848327075894971088422725223257557663661593016494141676346230597131466433109439360605646823811979698080637088701716926733000091991311580980935723394903483321630247255646459902677602973081466414727077578793371684256729296193496180681534263091579168694786656535824218104863436397432931668589458667118740146630880942946311673277864966242634066236106647748865163083993999125711774051669214434369879202197972407888215335269355786728563901209080456402257452640167037796793031203585587669633553308900616461611540926957205900719336928916908721746451209091708036389027134975078047244672227672521541358068515956123139979381880454910371199360657567329437507981559193846014977666264486115935694996191985240476297305967315838001047003156658062339263688084627707690135785779792305047688878673485176287510373448192619473949172057095718090877200379187246951644755092712567757037385767905933296874620508501833412471010413856751538132795349159399983748105672752951287032423344813798559413608632006852907646700952817907779835700289011293339735847071689658328900170740570975678534551262032975163495481160228704913836195621548709815280385305818053624349590005956084389291356323276906528614013511548210716549525274970698840221185112648038704322180337002009164377843197300572561313947343493705862900458851974537436689058658839074393883463921090488451033556291648420640939719281810008432432562989056209633346297325980627477316087700146693159058825521291298619373436952026419708586996555438593845887382174201971472228074203360555032561990475205054462503382456721613723052938133773276298401321318087040242852500438200019444295948232799580266593624427385529686982549971089251603118343724020387508474751904585539013959850652478364541157456466373129731672432467039735480875330468660404954067153067116887218810118759173834646277574022256650244837013151654536238805937823000595790088309861627190927419974782996180656904498980619118253053515432349662119979234611014004591031099695884469006369080719045869623596492599696860083173043141883938312123643558264122909330959276121163212836080326296646729959017932910273075826178685669559932965664901204876618603266126961846333434784867435895895104124415811289881312205310101441946827543752883837193411258665517247578151648902426476021360141999880909503851692179663167205419793358979395707524234518109667987830524912173232356513757266095746286799577487073001105881702862853792128958631338090555577917006546198908585230558661144034236872820931529005467763885032241809113456393211675312160327253291589853134148897470404644879950221907536474534253792661729274542985167696409826766420504377021941343052442262649013090282217822243227168942469364620760574309378726881947580738515631544405192074526133074307534418549415839599452399967761556926648509996591779397276879062252740649498910910207044270424109684360851433724973402286125340128210068315068223341683284494559676552685206058472565099543120902132147208017819048735607224544150635635729479209544334518680145549789393611870421154492612146917729638629648205865038018359231996251041656555480660448016681273905207105008505781626749626492931494249462223625396486916261436534919383233949762087848595622334076919782357614874219396483717603431129289082429747185030734363369153075094952860063681351147701626563980553569943785671785853143154017519125602499706863712273832059166861975463422512578539809159072897858837019252924256626761664103082075202695629320720078905356769100215293837638213098734696910968086061520289523912766458360290546954121046084358572206839081255716269328032689975630464859385180666434809444602780886255071726900406979735999911374445942774695713572211034733596289265335091198925507434908965527721032653287482413578106897711054451687223683337985173299183385888243185391311103922080908581775702166974836228341896789469189174797548556501856721355524309984282565199840330826358762897127082067124729053905877033284637107938599018875029419149638075850346786627244536106263683223094445633022018500065189258818096783982064054053577472224609615027504704705194669059450866873691366446971408048960337857695224182415410997633861397690188179793806547800347470996413971926361831309580482946039836922640559638843783521398099725364767787793642167287882580303130074153439221341101052675689354166258261965716234032273709355064027691257319494033680393915659979098004278027938016036979690676378606322096803145279500040475348047566090433098447012417038142246530512372052026499822603921853975292731344077630046467296296690392966707060655816257655880906753462097633136121446821355947575403002883455849925870597727162011039350830288192023983594269269605700495134693550151024182122724436101858589199368250933498545205016791769582314239211467662639257730233230129562929277038252531857014752385252722831701884196092234844343106554200144706825341418242385161773187189699724175156794148870693333038298437810930669130461809227182228243790148610191428483488045932348813306165608971450307168271056892705849343101221324224190988136665547171906895347290466793543715509212656168984275250909947688365191961657047631838765330032780611731004204738987964756692754036595049181307909103574570554954377129733367133597129178845626006108499252500879399625614832174909490156556608530016501774074757462453604011926840524915801896131227320389752851637820341880276110499679909384356740880931833488106117220630339937955456170981494821621465886312620589448860394295478018110906787623214526985678785824600746159981781335520916904989554816314209976611775875415019338439232146756050697544210348957293989094181475795813119791322946576058281200381821321124176183272208668606358214252833673567841435248490999139950425220398979189807183600085225587573575445219795032753131328475180952167494864747342191528376850317491857517009184276327579696270323525860034108605080122055879481880154726587594143984896715199563548499604974372803626323453160502315040537156791305322456306142035436005292772867489514285973304094986612324860791401998594277910885641401633663384551717625793676407645486972327903928621749681397281332338856078284701536710115024973188202949492003308617699608300872817448584501001801906717963779369597503009539642041316806722202354751374382955998940117776269452688350539894847512117321884609795684412434945776306855794293901234157220346393406895385098351313757603978383824621777818703378416071380480074772464580012277804816100885478198367526465237111560594500943816463691313130933753881871649106033816808063471553981527025436989998489516100854035116712695247885440715715811966606707079453105459445499701124839159537261269018188996008684803759338096630672535514987397875700198212842731604491931396275984589109628887000196861680703892740326522865110252292805220815080985917309004318603431589714745993896323456283291618544275034173820023179391108721186774078082456494803679428585740557941395080968447485127697648983994139099368883701067573261749538126532815150710509033393106305447720263525958839963017639245489990878261402809566690549286781413714749537014250791819676607779348297543044896244717397452250156115046035532971613926521324724822752621613103487098717604289421820268649300597985037679324827128721767247414964063113749088740518193870739146839855252022962123043438385095301573967764101229581758122165766290399004779204142076336479613456358273480268288313427604888909500590965545519681420737874724728584739388702292437978715700593669227765395967408164218380634384067062884666658475435824005519969622108543322216944859013886773389610355294133601973616594809814978003910119458663432955293359150631274155145668315833042846672125544012177686396191537381750891496563103300166563542138918767777797019357405458309966722036122365187538464210643423274539173012334926494894858461498305291385281758647013881426022314273657687604066544595911456286638631207194355287419116921066471978107585168548597175039227973251929380261420839834736324500680053315090768154229589527705755289359822994812547288086868359086865323194415680475732376148091997002915771447810273909138959472801647088245151456608551092692804864956258138914766224540412417657577892672648445326591259561688231255661413399220099366932177489308423820718908768939894626045720348346487035826272509311241143950379429009479728328223877084211071864629006110848065758819196548102154401611099224814413927081074712752395173304794684445363678008681584291389846229988407117348159712837510217742920033935998652274660871267341135882477669737112748286334483165001425047343368199915669642493424424132998713056451597021147106477749822403846810280447789686285719505448431896123203318388786258247959458269504536288686514739977809678270599490244686242420178437946499258819148264534857720620222579650828795159494304266540675124676943128363948497304179621394509925016677321110930173886332795069244152988086308833828946391348777995562830435351431789914255804400458622887309258138822780341885698468609042807816498697088516043301725662784204933722077669005077722963739233521775553010374035551403440071155167876951520078013149851455148990820009515965745641120193654982350729650083934912251129965695305212165420938533280838002482001304816845438309143216954268185560525462656726077347022548419333374730853571977127167256313556093582964966973841543084321253205639616978078422851692301751874459197050957797277933662566034754915768311752684891173651426518980774847234659097825204575933184711825923897585018386423782830080521598996158740833816782138147943745343143919234837496533278349561996626915559116638582817733948497893190240656309822836604109265748489715411836386856383382579936931017789211738977369431681639698504661240199010842746435966469148618849282266704544764650965300278400488966523303548231424516699504222233820125766424579126249663660299924667516315637734445311339543509698694528766845513890661974851012821652298659159102418443139253724750499705464582108499197643434522592295452123704477409693564937988802214909683104326705108798287936089447827736539396105154634701377263355675178241264236566907143336003035550790922663714215635106956592184883623757833848023282784571069435773088403982687475440057314291928540531530485603190984545563473434194170804620642723874574123787859695901668678719428309174498071442002675937102419671934825777081958408883457058275075295662644002853893544223581155843407231498581264757635388322873604463555161121934431090915477781954395034500043207929966482268467100957878355401468712745422174560556504468260835427626265514536095892266449721957843642587564230374010101633688514642535481562196810481972931778742092897417056469635881549778393723570586770781492209750272113333015263152408409876245605939517092048619154286375065484136489145669517533502557873704072261379117673320782537536192821884013057400477144927174010804615747370327225917108046327939812748577743872964826309269861119706047427222406858045952627601435547440509347281922061425109874825671577750493382474482632890839606864975886998003686427145770008305748953267827728404293575420297721286405927291650601312512304476927416143585271914525167504080949426678151257353575224167589494270919276864483459431022376182954981678833265799996287665034778745115595935103995421404477070834862948190122940831082467042381397701515801066848639207354950822409947663713667934632991196353660856763238896551606333877018001107442470123892402988685916239024888550187840834922678880956375168315052621149290575786418900559856186944548946130545179473347788148087288523826769392927978161966290920726072287182595649657009219076045531956671144029046053757862952576088326230764634406020030662493415942679396434536310399025032310096615282908371464619784059555534085574339679773410699820225747798326230102507455475424973284804197942070192625118996383890582117289613012271551498857653769150815949254453870318194069466649485192771361517544452907421243174711002117309667109533851047467915819049557423316567208923198160983523733684024257501783642138746493835713583460480851742697147774048497709031625935845292075655298276415553766705495612372603114468975001818334219578177793724773359226526687140835847148680766620947061248031198645499563267316796552510694220723550900499518380547891548432680252978458413140626761868737335539005177218583682634908252775937374085992156923553700123481875880044374449245665777500926748990514463326394089721267767443923343653697992495305901133035791789286060348443262234525437483796189127576168744470193999122277303219040804697380167246019404332452351049095079997764110799055996017322329311510030342742167145946150469976150697853726061821327682063338727100472499854668256211704099171538842608729730552786881563970281461078961459921418440388091148976949326632697976391207432849264783677040046572060875425009285344318956456915942571457960535166708606502743042907542193214381135858716107699957725155073003230525595315624730321417201738403599940807114837901305608626995409374338298399648917733130466497969218655084734106280896274013142083902043531661810564740390476158341071121427149755496472723986918255924460265572946758784957322479312966930450284887866865392543635543192728031765428108554684581418882896881434688537063086561064919881417872891592476445975783213669831913375533665314967620854001622727498149473087713849267409887480544674716433845638619433554878621344164778885949195062985810556859230290558165705967123459537294676153582893652152704584774258685516254464082411858116984263083625518084059627182765759214063059290657323382721988436291977832116030661201432087676864429282452868893832841468175542641056536685297579472844799414703784428066318857587075282475300756629303614966039991544630069324339387979853831119435744042160640525230630750118717920387213114713298461593398261969316883243168453662203817704081637882183563459974334198658307252704624036010124932673953078288927151471984500237013704105200054327079487961868848913971797412031846822872145729992675659625075414563984563462382768937674986567494422396224111718663750321054574392819823001221908459197947918031875111163049146391842781750772028566316338437879628938817345968614143543386218871361038333574868927173714036417345960995265602798046322665677246731197571247823975984685404844540653004054462794063902801015196187726110638929295541131055332739855285101510967796947019272362691876912836224480377919018558787680613122741065447862171390683832047388269772555070212594075662846209688151409619785029407844889703021035904545242316533838090318583726618142561039605506626825067012055952229185645273226632293341952923954667853310756796348116354502375901245456708884897014337181130509952361746806229574970445100655480021000927898087038123820706875798463760812099161952133281592765657123481834323905815309238976881961941794073906635260572322564285332654185816313090286458822923725115506526199171421183498843600229063122288460517386757919822115335016153516051029313715588794843202481905774000994726391819463476103491077619600763625841279544615761455066578132484144069784316797318782487260924691866810212669420946233381930572162593437000342954447052341341800169318398087649300541483420035765392704073341314861593906528172298263092576178883435306753843637316341168615962961606559105069130030560675155355859187463291001083696743182784853903739055482277633230515968460044792387053481508895598325095402546003317913770337516337005343117614009796984891663353601304329327969605833123112059046028273590166760186791676631573625484306912668253945846730113100625153203199639841903332527872174328449278429225634472686344599631587784927819199372657193090700958881095355759209538402843306949146900153649175024636042700605654352052420991540179339746573339649908741827159204155156147258997769880879872189986478477780341872007242318523105273423859750133327365587558915357282752302808327160987666726933644883532981485881281286169177460157534138675706184796008924457956044506228287246760214241414153289475879455119838152673973368173871086261071597182506153627647241848177178913191485726071102135799977034935289904786825149794082872597505497876804801053964335536005443716101437539768148866993925519449456607294673405359167160992261950643987435248104342173812041827086562917344843963405515867934393367493919599038460747392897258422796433221066014184241644756593010984274374705323011548817090691020415270495911662953909819715285855987130193452442729462324876028069657576522909801274085666752509626323366425924270519042720050223297876253554229372648952575698218000132910296220377461660216179816531790818126610983233069757864604083805302510304475397078344349190224099573133086677488894416903890285163562711094401393235056196540934542988059332489845873089808760390650682736928500046225277078011973206826026781167710200875419216646082838050292982145142960520047794882734365519659465178118190879915433040350146784120051839819922015522457842434476701982889033012797773703005449164849804645829625776087571047265098636899775738594738645709226895353214762737258251509244126540618645153847936680043218064098219562428772832983513494773353791061206737603422840073069287801810107423807274287359911375644961969882441151902922330837988440669803056122499783004592976324786055477020507042989801564447063832766253832201069397425921139487198306434763832843398252226545501202079938828245972372294769941682312519892066747383875780622018124130112893293885320533158445148575133023585312198380157646973387322031949623175985004791828457937818772092232723360523848833269585450009857411610253135583919660219510508920369670260821390940150362309733770431729324423555413330538920864539324606987299989471134327937983051788364165515147792525633952778787991955081004589920667253964641180303240861333880990255194171035830046981074086987746186305259953629261200355553928284994507622328865374406293348947195115893768410037168270559764848509927722760334971478573959805686722525660273009679875209724712097132665583027801384863041455328241248723144512815996686838330778336277683441371857971244240950999345510748521161351310494584933030752659452648790439593177239336344042263779062049639626060918101257529878183264751752328018771228823158891600235271648824449319371730275998875610460519615536822464840585808573084739468622212865761334696052148520268547690575578667997965451326431243398366650456517021695305546381863768348476074537033984750647417635547584096230256553884574454094967506433655720698114301355036908117266442714863178350540960356757848846439851265423543446375742256628456856654013674633932346493842790550436102938997670488086954685717125188415614259168984730853661947139714635496832372539391560311707997063386325437309651593940234174277332772283834668117920124755507479123460715959584264520758441809831167382412505920175832879741421847706624968573491647016336130300224597783373553113876291927763199107319007736978081156366865838382041379486473746784228527163070663526938238827330463343981976389316966690825396593161948984424542788084851293307402027960183049350779619029113736989339493491550949509789599273730921818646079745267760263690311792475652310442757658886079058533803895051522654640287646353757968683273676730049386210131556122845497391412635065003268575200776107794892388576288370683445759812157067061357563292532877841971737388546579189277473385456904650399524022722291998359232723894966322116745232484212830178305727552252874209359506591313095920776296514939639415795039902609430996031005915260504347470383453288350079758531034632099691415436111875835662576236953005828145318113683713223151438928242245815554777086437346118229766429852194359416078482124532860839177770919085667196278087327475987142210544159960794123588255954729327594326605583830695412434290643048949765506283814080164522479185217704911640401573494389746003456962462197599396686416563184166178599788915662288974010064595012583501972357783035625060880649441457331685074210953099945096449928390983082672034866238840266016073969352162242353463802403201247652999012132037597749250826341005291733368741498741423847960176510284450378274568841901678727618444198378111452069058113322015578578613767547740165839412928766361736992443527775332883438381268345378704048651210335396351613758340605933278906197030857801017134514195671419459897388049735454935487803326652468605949271058402584036982697585179566427741600021434764231026382149205853826911507498641619652058924254319017731765201804953981288639571872187896213529756148723792847877073655536609811083082737052168713572745413737856830314849176242769477280975708338931192731662760138779876364927447580287633167470594106717140050983907800174130344723526609682483976014571270586085682788346460657077006484641210234980944208986837648695910924447924608206933019873011249383497036692333905566391666081200130835640228174046989920121514225640212133188792123146796591039001422164965093213096247126570391697705676445093996521031288405245873085911420639390838741455329863326417514597464524867020402901669802275349389351143624813055063328065188462046399608181157077360948488858218291290534207696589754700226924664979793644372057014458825456904545623736650646356116888161194221158035590292974760463445561782373812375048864565816384464359363190556464843018001714665739453726736336832009507064843678818289947050553954855544112556567963671079819151648375863782080216346540522692357509963874656582908195614061456967161421814355046131173655401429226317189495913588192540285724187410118743368560389788142564711602266116616127487247066716620521277617221880201574770748212977904628033457050482553105681150232319883273227911228859401679189665754848978979874022587263244992036258501181965576277127377587133665151746437936617006786582436987440085581382168919842366126910531424377601192436148415425630222754207481735255198418877388499789384637051735667925972723662569788354738247727358711490270028770419062102643848651640209440508690801563097130484241099638170100420389525975909960246824333572541240048491553291307175860768675479850614312146520724494756419964177319744719133555141461950444032354992178468308583344053402648206512072115750407072883907264265938107123899609455272348314573273966933157988576783113524891328617503953455368556471488402002159307965854280170413502923085611893604403088965851723809027543191047019183131570637775245256412141573703734869456086442521759260715898811446601097789312115356788857260918984768405618662181120079113727811246502561340183931833659519250759378761214402336494376104347363431699806579379112002223331993471178135893037452378261754731591185297790171321325353287521421559039025079944589659381279846763219507640413420199284168287630021726262943350232586817440992050210824426351992356850468656941512978325118768450214628555128448874572634215973489186096042958130792484015115612430723498274424992816615666587205666108835410142670419257902174715955187804499678868588023567582462381042275088470446299589570713607717897059362050379770712122796568749653894969752198678534884525758334920829152296261698190827727289442135030689711914526266142186745220291362259104145178875833965149531101770460123026531851995849135557521086904688885045717774418488802677768361202640324728346129121373580200424067337352011773026578190155670078847767878306845155312669041776986859141743916236646518830864354846514339369341607181606552494288144270331573480906008162502052867262904812078264614660283473130737550935937092793706212971379497327089416933442726299830062113482988046037810714492583233969010128228369045778212966898621456307418983159481050914244688340347888258582323906551200779650735127758023354350785024036608060345691835448484364227307316275671757653020569708437463945882090190131726387265375269288311688121353600305302310229388784013938104069248001682988431185291159127398163745989684072506405866345429136238707137988050738151797645999690625109968415449742261175748062756662330174736217419139159996755219019749061292998833343436832434412154795800768081005196337707308720706538988798489836180139334968815838910529376434754160596527038843145499929658738648767847024663964948949164518319360806787587845493728825070654430647541317561862902125042058113523930208929799919164926414688529910063820167089048230228439631226004578367788127202860862243032025040844960650037785391567414368896813445543889890572698636900993527873911150524784383401157096319395576951834547444929216933173941386002855886892830970016510341370152243440805200967950002954376432356937565255793922349123541927592195164045574655497140812592508739131170442140189172804184160738586873741313584965040262281693553750430824133260389411487400830669656775837308486274819419690858714479458275588143817666825165886554359494185187164139061245752023004501364365905656906632247402081790227437385525210608895449162518457623600203180956392669378965302189186082568262110058390990886415830369233787938508815817328389254788708286648558445633952272556547267723179711487141321983237200738802725721646163509538140648262536445062396161763437304475472550855634667138572175379636354018014740666188769938953657196329381036921044806488862961258671957026382283392580161737202008060135696288639600429274461885504344473925711082723354701217435834390751350591528714296196888300160872501014940790805715833233104652589405226253292625013346026852577040610654201519767170208658923402985673201818701656881776494768936194592261139727323803053853659774238989259534663772130207034005535914157881203930958995588154904429490459853193276850626157729095757202473087274241690385422315754738890812757698020539457596659293509027403476471724888027849838801369379256513388040857249517788193550363225794655254301593397490816935279704753607930816192532610719619775805473125656878491948978599778000808073247318506657087476465439352593056116063928626718014530062516079406840680952949145996377667244321259827551707525214495804283829975867343950491289234799425926842652435668798546722530426182850874387227127125634662364748879162430730538460562236615652628101194931204075951725216920891958743245220539046693182754354764106263423641998679403693958081088881374937240052454502469786964932086269790040227530429139632204792577409588770679941285273250684771090831713674152003788343028874906624283678920773798115360954155199517508062896445748581734872371595953335322187247529654714705684500534437216394493707689586806051878295205774505081800332112706375323389519545745378048895871214775462603729441888568187060457947957846254209663611338101557600373099116789851495262616409572103009211602747352433053239995116897047517943493684961102888733593023404239661443195714803034571903709366687471506689270669516468820308703521768464536432658673830082534412803992208566411201328889961739779846632128436181474404299664397785179529415053778967847838702979238031698506840888406915314405630013252345748904042652279154000169485962463647317391357742527264859382916965275657884340744005323585965754026149316646101934573190016341172390858429499716053053912174377226268059283676889761620306128667893315603267551157285926222075165770593396803712823419999584153464100850693644503140805026074298490519087955037409504079121447800612560768971197551782777217961103585263285729059800031045823439789620210279188517755017261882798604871879640798698781879281670709692710932841199913909490776818782770105723311800521824989551023640583950179886800206812885413014492190775468364583736271761425141245860380659029351355595883357237593873465600765907094547094903089303130803125990679247289331733781121882109222709725376265478508429983248598480162965096106451800524550219818007698887757584140649246643400243750363707537969454478115857909485960521380346965598782963343982513839240045716689445917063618453799981243588166879367623069735517503289364035172465774023062104326040241787554437043338445079291936840474814935946325974907976556671085089639040553803623569348847882021192852515281493149159975668016389671776521872807362993598212097734913312422482204872103455884027175121424868884725588207789592715558841809172892456491550036850004430289700882946707568274697976350326009165658195424514467851153836530631674007456753008338281259102172131739985433403488490445493698931071618566997637031154706006305858952928542593858045934936809776012365646010005585699182209580441345556216133646643476742044121886977182883809246067359941624317624425341204448113100280151936128748811208547283656069863045809993164162838666878336956193525581078006449301549894296831081672022432582097397894245948090327053281426959303002427970486155491900377958260001306879574430459864184605643097757920798505271273498376436949268337365691434254595419954853722619135819282355776492530401887300357098858429802044679827736836761394774047706324505759577435876277673723317075457153727216726358564014739959455893777162289555423679664174553095372451333288365649254995294102134814276668972533466777014777465211734919774801557841107669180872878050338904660542930931770320454290728857527514384325848741560984238053526953318369810222205838525669281696536219243179531823007643669261903659613146668600502057971911094917069110139048994937172309858438855484049852940274141776194017153904899586137300497986813638093130906124559002516220296956387621969559182454314441848338408419489161942667551665526717180731410532570840941912786183587952825903901305343781542301008880116999097829901823953434386118915829000996957036418196844558818325801870039467424344063754205407655141725055688884070924004104430433481540254545892701771284641160393829855194031274548077880986252370800682360009757323453077235364230861736311316359208103354381452128926456366674446334754210902861196550612115615262328336939797470823242807007167444612644349820525670842391257666760018500967661401367847253425239423727487423263396530127612959603544399447192284443330818369756763665054357288847401747467476434194903590520797307977206232272729786346868931692963692970403846263717624734717483516236378010954159949904271466523131535126350031150410879184245128615924304534324934049814424949455676997215674171107851180905582436381303125942974502437983909905453237177202422436826097577890314024708363258407706675772150756113134664441795817692972461579603684096438126600487078654466571052806209206383028858503854508593457353422840596706557590771402466129643114947480785652527962335604754823822247528612331241531733331967601716626812721852450485101108581829386491399008728944567842218932714689663882416260642555637468960509313817745827206858649435130025750444129664076110559637789126314250300303207708383063149367201440097025424274775149366491331748356457706426276943775001645884561592151684734705085466353143281484916708298298869493911476902598471955023606141139012337273575651967920207203261087758491418820586997514657450859717926065377540136748863368897539893225313409228600711364761033500524935669463207728693662875654142917818808587366046275302380511895118972194367560224191711486610332908937187561426520760746376144225384202979526036850164950740849398079939094205944902693003505515270145212819408906068674891394565797461387692549758493657531358928080162507686245561711583073679839024311846781804368243544642294695922800861942894536823638000258326121172969687986438163823448618507977559981677257166517137563396613485330304157236298055269555386808248672792067759255760651264949545461331474052936600199510068993191020145492518204903626033240936307830424245770931793951623854626786436244261740737024723879596542589492924188474011247167697431635120804024941626307003051844007401674228812982432226904282367906461746708241171577206184505567080542915225295855886985835411248878180695486661917762332670976261581403681525403097287573060280518172902260687776970622716439391219884043637769900966123032043598801953511096009568693511944717320602713637260065886594632044455139857084433076702686110771540636539530397795411551935804747097592073152007187943344613025748990060372157150514616801630568174179603868680505664420986512530611824793529124793421095007764489114454067974237725018371386068717924342496633807012477926941775228894543545332436126548423655053783107608699924163726785959384105945227881031017423226470727076419063431091500253882867678169582019590672175873726972263504060287154000574527151005180842943600712977524286500613323177185983484358441551106021649678588959756241317203653654017562354595666996101291549864991342125376236317780610085553267661722655760528472567619493188709982811304861200663824208919939443205075751945227515401620542446645543010756206401376590004677677656572345710109547562052109696667773217182482399193661384248125564374278720321597544777607720405672649429617191407883049118583407491003933901143776769620746003009403951164322661547362469157258590263678196804760194103382863600222739064490067546775122417369147593788022083834846600275473654325833441454743536685462498042954645975435615888971825235598581119129892893096807834611424460874675784146289887427916474078804886701452939483782856890173906596627688081736739331410326170904300408010747474604598847532257157976855148144162574712500147933347796440174944987713350217679682625423201098381722110278215061177749098123551052782002461265716148196621860923993244479165130901831090038577971563277405954641417209513844581045195681109664666430282878305923388158152373761874001312652512424001202627163569467007981403061918409750985178117909434977349621526730320404714604446819399698503718923269819125387025166946892149792755048735683215146770559349924980217847569259995965204049813811701101811587443380481132123046591404226910035051349213090265437910300173416625316191059511970729073753613932616504048890831594910099101938160186446601753973954554629789012144487419723215192695868752735161106736675080457942022197358829916267938727568336492682945651401406761234219830610539761379255656423070618246782536108153452882500592470410156236862544159174458090491868059010191928249214671858071577688637837428273558369594690519933345713992408334169996814860928963100511704120308379183697324007210169285601950274285315503702990747903039958676302801630803183695185421451506921463164752145884820646321338215935916407763213453641051081084536228524490587549630342605841534666246354569010530352026771994393391033832092727505151104691118459712509934627779348958248347025781373137823705154830264418693043951246106168603103668783585906219689837414689063751690604413315036601470041232934612028372910143943900315040594769495644828333336207779174267929438593165472244231637281830824372508051772314149698414842005556533025182917132469853477241794071072077757840780796647946453995703446845325186144432236970542980280847057968736298729344988263771799660629317222121237903265692621149377682556703788351505833050835968637651353628173522558483656066744767052278676982434544946995822616363019180791075038684381923466501037178268155926023166152202794305892470833178791972007953265520706304669504145165161181624667896456317011372083147154757988907578450451508780462678277070326655003001197058329450877657867725525654750807938010628901663216179067970511806859763349703661649712824903163034189095728639910591654498054883724992423653425890094964548860994398400130972171969223633683404107895780501935165909547344491444575821324771548583400400807040999524427582976296667689914141186289825174300892349331498054924991205566013994870637863452655000367208086097620082292381176247505893026107588093150962225319384260408262730763588022829351967814116725636103435929611042888853827198361106356740760820500773317072941335820747205399277542183203828921225841720929210024458144772591327126758752497369395753737016929345008255638075179825818771952094922424291366903497110538245775452389102966300829561325842196266864027269940816673445343363426804529457227994821114452299511273727245095140022868909472528928959064728925956854158212174228013557835589774557841761552424115913939847247815148267785670625711384134394662876933603543697816696868183416265311534461242057001837968565665510014835632267358249026478586098903108761996184057599908077115625400932568521440794396815003806504111277019601705386382217003091571549852435697405342900669122873575073474876718422550420022760401915021413207185305970796045313225701103352530265107159049439986272223404006767303379519692175801303421930632515682314417910935037538782516273198991747689647779767862499079331953044533498625982013480700627684547998635742506097821749779614041196704534275232159129099959781886946650182771255675417075488835035326049537174586158496063430555266003172849338647843111760824667601828336427245035421183666630241412901273266147632628142460368190786225466459164624647289199455062615934077498128305764894604302845596322532457880254580696261244380534167519680852671899686574791830227142735586883072438962638003241383560730304062213628143917547570535655303652737361429207554069939568003155674354924883446229341102827586813688158958339822342424780042940855191258667482650891577810774242067409868774799155246001244033217851797436255788075824110232052752298056344440960444918171127318930407755742393506537745243614750347880984166484238176579841909282030744832991740442569798809571486936005717287148505449407096862326975363867313362264040358892000520352542661757764268021628037205988809435675390899058643051116683589562109633041924628746227388039262163404317324237369441638598444585787822585411884232806858724524952047584379498728643377929780503718919752079346741560225587681148430021791086439389923702640072826133908189872392034378182767574849895023938538579911807352455486000884224787250130301584307343309746993067300265843373284694132786035877606058377695887758403805422809965172961511462353042608572857752156572981389359460906329897712850507404107763589878216274827147351878825916079883657756031609828300856495250892536482298574101820902304748640704254250205099103539103059782978097495898801203478050753646458599114385805082759439057482455826496416480257943907878209752831467667424801802698615478509964163362625018590926761058548149118699717118479034102952371653011867175394615964445250942985478465141048476578534222648318699988265187752798886635294600978982382656976670665706686403989446042769945090638340887255792159428153242127170363097249202331215168722575189586148814292987276380570119153850580815529889417123468750452720354299544611644264457058096146171612432322245281810110522568133657949071229721226778001193174361086432324456574701557663643732591436078757054067471791169148514637630991872176899490825310608364446607223093854751992458137987979621937325086159102120001396896048447731023784974549084706012332462564299215282782266388877562889046544008397533820319249602788540881193974263232528460983899206479502564373074063678210131936297036997061457870141820543483234080424535432900244283258327138574135634476686363151394232700095773384691516092159788510277699967160132492756784601688208593891908680442420130907488475467103305747089824140658501709810977458047181575210222188414575582119957704843711311280541245719461538215765437144507657010323452763676390374188091310870193056820815197786492277272168255805873236739969879290445490209311787076476299598677021202667625237637458767935785320185960287402720900998644406558069630442608772331617414799934830390966577414091713209657339945452869359918695828655728656895198873629399999096473988079140916287430365762680616205227025390949833799858125084761006237575343880832650660050749266341749714335309632564562457442186748705750186456141198388447853632285921810525760590169200873992247150622057451807845901776149758157953745780290744943161021803521164658945158467739582026351502328838935558729782981348470288846979627599725642621239032312906079361015562192650593356200675084969309571725064875993320699061147506962054132919745784427666035621663141664350094503483335217437137512203821547150623258915021519494896795068246233570498534343359473621778679641333281619813077945244591820801410975853256452366145757590345441526833032983607429131799485867615861784950630950420614558116561076064374680536441669811935920553843042460894448628912522740128043900381273278447206653009038546786819044547711677803400002389226097618366584810122529148811930113337757801491804497248947827960330334946529370509650267097854844655172959834230516073168458433033717814561362713252227828954254053513755007813584413533117519534002957674607327776272084701698516431416849518628548208073044308014916274623705045653038821569376980403165925973275728443279304191863206053043608759940694912777841955319365603907824396481563010753201769896824064196194933890802498721966779068812155383564897785427579176551653995751694410031979158847616172644838679908326231772172790815499321376233063071506263008644876415380498518247466911429714810927046372710477302025287032672623619820116656882610160062048489353065989842513882868417681234838661134314368723108459040632180061985140263748109456958065629862057448743926098854501537132779757831178302756799675277912381233933294144978010848546663333368852362759943042141535006147617884738518117313571420453373306811995502629405801780672567666867436548854908510745601402516496596582598275962390284845170078110286050927487658873341408301023899759693998764021234980119503332599749816889451948719796502593174317750731580939832550555794567315599434565637797555052857758926379418963465181235139417570673995780079641348093476640755942765535101003123013684117091148743440059183971899651953721713240034576889753338659640146830522965273247495245084837131725528620416526358487473947820108475840016335106368096636584806260031753764081607137854375715963797286858527513951051748180443509289750485037958438052750796377073739889138524589056089697684058569752878652007515993232739914551747458064493762253674799318068828379026941050661851955781959457902517110880169239168231066989313007801520793765230430327506735716928331886497156411980774539386937271297534879595707206828644937742840538073078766658275099246129452797701070600665890036738780705398300017169012822447193028739695201653592259578482299722655565846052650862719504330618326975098926782850035914276087262532994340406966534400608382470447329453915227275401919213604485724320860208453045700636625290174189491522668936835960167834159021610098672131328126272091328493882010773542030875158684038890289381113659725061287235316500728730396698852252641472494115876252009912189276538545281736332283153884320745504267680327184008712005197490880884309221945854022293623199936180302129919130193791088840591610955471913911275037842723526877403231116120281444811976808417330969588880663060644827403878387899160594936279934682353698598251926263184793223169729536187884355371136749196199898755851302892914388730618768846601065604088099446350090069841783279018238702771138728260565102271322072702374365908383840604305789902311753310614903769893808813038380589965378429552015307998867771239985210361648904744211793580853503161363307977257824029339162366721736222026609512251984977626361036703756550848755658407186822355677587821530823503842164861898797716997513644382390674656120720786586054673562266347946387605089351829345271089222428535855830680544850103863246107059865356430894168454007355858661823618433922248579621891303950750471817168454132015188401186379635662121825541345076789559237204232045480824122439803525069415859656130358750328462280134448689053732178267246418877329756056041824085432291950430965267877211782729410235914986148134647630616938261972142366438875217523864850107102471139638359720598476688135590059483537308271870335733862984417953565140828320993885536215360329062518287127859822221857717353697405780766653619385659693653787300567062985234955451357498841287054895996239437625771575915914871821768998926245621666119968273274946750305408997655593987794375190227080079218257851538128646578301265629415167161890884568278794178790840383363700612886303258723633828787408754695546830211831942775064397644594775584725678406257787351939449822061708229130936960372818351162582460299249050266420212184862522731168601109689426788197397043186134091144378316578921564623115130669235522839850429199740762997218896974854074404011917052461795482638590432736813875696488568791870965649426408763173897730458318035384173374145325661745530839632274657089503283866188331409709866624388743863259368236982545597207841887817366774076118302189270100130787266132544406837885884816867897822103032338632647635346292987887616024527275782542508784913293140434898918263940628674351843194753410000322292797434159122775534317086903720077523893900518683057616361620031640402554607746755586061638753687122503878124208902019733122064838299685901299168044687368606698933825719593788596747250136876358012862594671032311020326966689467101664493698942547100167971612654109624221513897469691763862120475160574955664819761317708530595802946842806786730770597273365213018474194440162389821361310091544776816845970170029033044285980940249090886424209619482836183682762337073380207521814791341071401363202212488755196151679737605044439192837997734854834539504977799025486115493897664596213181389049209605344173922244917998284105294162973534088611820955807391866983476107469232293909270115097577666647447488736118733663842051592059667384671498298825809206491773397041727404577415990464768134922907237285543018056707908097904934007667126494973011954193012273086235555092876064043011330290088757078579895521805136565370244896931970567606324085135822254218117978454045852227425101907328562050081388369948499696012395189259497922302631118493042259143663193412594913290886193701729542619155844804368451833200526093960992196571822722387600188575608018962489588282493408166146490537912498574124019045528149180397964845328966762496404758737371934213246112904292548286108965707895866222170602790333017487386775082197781872772677155647235696662984130427281084260064144595390154170503084620694455635585432600819633873916186715526210619742991332165726636102035844460564997474562673438254135858409556344867632386427489964360405022627797106720394957155419191044575015882498204133669124025116634003598169248927191158881980422651506923077643382633144401020516295286738273065706519001272256311968072081234052370504826494649082895653134035055716867685954331898811749021691345069790556150348651774109799325435583075429125035892269544883961233876308249611233951808273073958189627974599447316167043829196203203327005794412820951045982479454724418853561790198700945499474459197255864874467401605047605273435412325220016661978413707242841403130867328573001211680019759256222202092851743504296754180294056833679804076558570061412208360556475557803750940862315845981458908567423103505493519787908328264183262667450446610206027838674036997143340233945564875540141168379483794626006820774415982036513939875788571515627999829892104968157386848582595424057350739694432597517379745032655555127898192268724248280952506678424961422069927579357491098798027301489686537297406869165796919374779099623616525417980450591135792004684355339728455843319605196291201284376757574738963946472344934146584253943408044277102255821025719982453564324776200747801727013719664053046452292545514980721127611881413604464713091700063850952411918010061765169912171470728826288504267677257650613585398872378016123316468490604117478874405699011345737072847984041847728655576449910748890129893677516197955193780485872739621373930020215977568556178012191783308935296414779437451114463010207907767189077178823992767155990905017449796971471832882502617336563724023923314368686024697919803693608358882598145326871463625542819521080822127067465264644219430064012711563098694372447967370493362226864572610674543557014419660710453029891882523485353439446679624283099089294864117189729723540747250624718511753382597222413176887364589169997994545078631063213683063154130974704726722283177563357517047899619591449441191865853812817366516833618903021491314171418513985284028492406310125085417678755305367868639512553300583366027822895882590630110981154087507723788832201680915951496721388046072627622473484821020079038751939937718484775065828112164322617676856121079053525774843891729615989183691403303725990158433000117982555445814451981854241786906342338951293772355896814368820301419986439168741398813573953760238593438126458635883158501387114074387127568708369072157572367071667238447790715310464292714384740004537797655320262173259267028212735590777433402548743302219805515098574269480064691290312558893096811492492297615204828082618637029621680814974390233961973363132957334435422957899040334482972156092965308604055787952557896280205021446655280652876684003812344872744357846791093887212738022543909496647993176685981210239757360496715390197020058602950493376986617936686034950373874216264786208052333839753461799824501731853497014386006331991982498211117076686681490888792787001979624244069950028130507759295804703580453388492227126595972804043331377763639244727487637320146929132494108136167691845986336402632880841410639387795850124378465229619885641568813356350940754829260364694893963833489597729111482084211576752520501134940771586436616651769070845736546030934496342414084237179554973921481694029352066240757026383720260224716507074128586393724115319282256643071692558932923154457533071369978994806040778703360153198363516605498028334835444292559411313592447230720977826351221037492024626833060403864661069141612027067247935911292054998165935794700020781943181950788534173763044157410841553140186519955515242281633903463009169528580909692452894872832836070279412088589638148944151407672523884806274914623994576148017294716684103326775333357833048586806016834555464986736842789446690804319246557816452110158961145366532191070713548819288138470723602519672547859548064845159707679966037255717728508858784036588188057533196928802456416010748940985728928089109340633227894912398795498635930895808605725418382196406954893184271129001916114166029024787713072647368884524515932675044946397431605425138352878689499839387080755431519109428701602689541109032398173920490365398549504319033541183409028005663525889366677703513807312470752714525538710502893538977817763198173440161377174933474905327838039794817875687494013551077744571045176147447490795383166524996968270600827793357701737227818505298215936415090349110908575365485131963895395792174278203765387429468002499909514180519912489685792896368998797827146046663548157995749330565646107155803475528358123390978554866943944328795561312911096547869516330707094342896453920360807099894074462411048429778303749705799850899926723166443675952001267177996706009726422386228094753990439368869830903718699059363955390472042903974443312077832824506563871732929325144331596879647460970010705610715432190743494953031352819052447705023617149826862509306228164074678764490478567250935420683089386316103732187360635138658557023752519284673954319817548027432465884388050924399251019285076686421179219085030756110958531774607250576101740530824365962018663851162088035180939706129797834059098488798595767232062720181403720366747220002258622021017290956649651775916660727366545476887959750282448288160800135773969560900761234478946629096568475380861196245446192462347720546128275307606124860931381174546245064451451961926730036824331387159683946852138290560213213037704199955611010008625001988284472429031787568955010387666176295606909915995391336842403130615715090340135517395302501728725412086190664914232112479274735243649119049392366774323497225169123392738034302882177838210802378035623721195174038093562002015571646529149193109349768992036495248813135145575666365598368104079566810858766179236886682515368893643041379786797765611678502813453286259978887468979912599976280921939874722800084320402351466198335267839571078932132635711900976897251237234466672610955031864682816293649435955845081141102582345129439130032405006405435351716211188620459526151133327527952784798326019565841239295176807212589712307011900468356059796483731215323812607467509869692308187086599870727025885433345674988783956194202096882162930036611848922010739563237042695393780056842447555786107079826191073277559889268589552526724939074458574253652784804646591715785544477284317539920975854522536350659752073547343322936686027750481418043528765441763355376770014383266215136726697368665158707347349352280192156567805997763558164914317262740515606970817681605759316212769221810019139583276346334313067651377679733659595519676418919229608471021493262927473929213744045689081905513845810333947909480332782707347456754095322808960406267364030365020950284721783225402198516493467196880482825948201721260802829491554206345530256518819592766459211027703728833215285185414690956159309849708591121199855514837842424311307797189713129043723178367108222154562538033686585596006060919435846990993979319717264278295141701830340415142846342077392290499936072675081953930730788549777926529615020939585757281367455971488707497141946787272237368984081016634424571948841360849404938687344499420957536672959269962729042976226443499976371117986043780771524487505587312396491967504703354276362596646756941842184806470319357741143669350731743179021156534818266721348469261887639414753482695427503805259448708751233916515208225399522838273731210273825975821193702752964612416545567693760154561303641398834149634199858134798574522307179783779487253574078663808009049953764892666014679675887848376805162587403540349361550182701947044228494697490946394590771322802027583313546269986632908330579560752099805311960581275370239226192064983878448804499600769897152130246284470448940519405464915683976827387856405757198756385462967408781404475831369344314084359683573734641957202983404893319871615500949961189679909100461506831792115201401975847826935788496340321626660778225103940205172178620474192668262695517224757775736359693670307887802778361885550323462836787548554200765284072491585479711002477499370549449830662765249562131948917580407198268438488579795365180758984073564575669994959939108618915555728008431565548148552777845047078621176762050372032710287670983165176777726175159657366618751979045583185313576381334286318309779150458985892417811171581283938773542005115002228737409073563672804635584593480683178007718047846288858386778651493950787858328376326861243779834175822555264587047991905365167068260674232684382456830950292820382734521066988769081574703856129712213720800366932606553347819418920812635885795086198350179902829922816348477406059923052339832386183671667003116559561972196937604847558491796355204510308992229883488727986914034806743970324240227867919057823175230051615634326938617563515980796313532425764304666396548261052984492362888051580404330926944683661212001550539874383648550040097227286583830855879977730681041622294060844781083872300102555845299020780650813232949822586245433174353254162783741882639221132917134338111285737766050331910546774853367234642615952691679846127735832192677780577672206276678160024091246946359672881832968092400036868803200740722242833813700205506309707272596870334972631000474267385189116497368378893107924623022910165526658307977336348524897181207341853354537332293408729204251138427350684467419164536511913693368640872371262317906275477910223679842580234385958626419446980806462091492895843687355791762976884968040596480003178333945037996392266113267572409761214343662118917407712168424060108514093094808909946576153865000940666650141769195532233256311632358179698901734018635936660250123415560824133387348340116858463523503929022869396587527740591944704885069483252029167460968409950657566577769419423499876887567109371673357570253832086422864165416270116778443777622317505681555890329572569088666627189821775326431435276315728218263730784283791413113064001303077654586710352326107998769419752525445874122562630090083042278306724250403932020934606112182606028694225621810172371016214870331708573315513292285169240968191821618325348873504062724791342089071435780698396730707811403668133695743151228291807022684652756251365400336725615450822349209231144731608208769425017048035817647490693478070576528959631308707388919680713568906283113671840714779519101241769111454571195767203742275759346434503289484662785550837254804693418830936364276447643433370788100651831810878428084958587999080305255636007494546373221460387802704859488196640316174954610650818434622271788604010591866458663406104204275236360345031832715736998549407318573037492902418382575399187363574726958939774219261980455430507416022311960030935841148872627392426015799777271275333599083070203908208945473341354842658465579451140974495437678418503354573793100323588929466810848715031721772018751287828065474359874788540958305992749345060946828160285084727649987253647758192847357393825863071689392279352068166601946000861527236958057880614301702929687195653889949589381276173905903311303105743064075819360654277766166689562890501172741357819479635643103925649898253561678800526355823697825933121344224492688120060019012462046409499712622390553411651088491438174905611056403908786844403785396555408981450243225329867984478698447904817197766269414019373334049547807805417978757138265574951664088682020185229912575578115019172286659807536194048679082874686516828010355321241490384412200478661270318026753322209846658776012141843014104970491953681408805728306408162473054482857650924005021546234827884515011667346390432830829163156373253209888653186506393321259945035874646796426379340997757747461408926457836189307343376751189233261905503445282894308485648397180302601325003500158659164677949636512441817371558697487900021849345560464117103942951425174197602339323730460077620632600280712614079273858342977279589311553910025779094256593955936803038017028518821667503055052976920910415721253295964972627317999764401205358061189833092759138846489910035593900508687215292588873455385145855028541420983329910815863991297416674548172225327227748764410329548346183506683698414317124498074279081327247724321619405520003376275201909544520541875507749822338262667371548121785093436492430846131143606082091226284025020865521522817380126195146354703681704716641306187621725321837066507818804146448105291478089748106225200580469477612428120037005510536559771654283757370272935150924637120387668276831806317050010245664395168495574662897194012962272149063506511603233680626450046178063643488991426734930848086165392698875010940058567830156171312587539520396570859164783747400149840837017387965620104317339590612984879400404426298063347029415454358679589561380267974782685256304346034881149777128107505361847370123796109461332006913944139517136937610261372023722533592528691928233941322228260400555142610662435584795746720554661821855906313833763384948788881086400169188992554774256977739941583243648132045458243905869557487812091308419718494463862098001159130222824975933922213544779718571533547793574245120659816040308473298738421808264158181707170700714157233445764484405112117811422965039755144319227826247182534727682107348043244084232300516234303001264923463010129791477056749908479768376227319772944732467435466807438087429998253047986825939311221435533873233327785167426382473278064631099800506935263984345065930820351749483576985249425250117216339102295745856266185153108849120315315625682241548117545163232478386077055963889751953165335459271310910181573177169795050226929291088915928600529294184349679085044470469484800866408075452091074245941683489672020625166185365433332605442048278571511716379355834117470229294371124071876000629307290175748087416765992860110113160395847974356627072107759534436035789026548678490732162276464817523427341002370534380768856801811401064289401088452239342190333373724365922979700725119995235910029147183109039279026280803128220946651005927555248147116543587177461837558840945355584064052560285134293519425352008351251425154118612415822773556733529343676763439349506188811260520858505249224349519804627776334173622629822027773236870805516903918235380746293414938087788630075051537519916532763065793506963419463063436144995958989581882944266044584549324024010103446597145889240630408063955234621624189854818829062636214063574143717348311707812041563013182073305091543467133463395288977762640667307639073970627561018062861513329564982924171285605359964138789859104753172398800725357583295888971830489801212465838613893012730436363728211630130837209010268979624311220132295080224238727001341096522441958001569341422624437420515900389316926092657557640085255524822174370091406003827874817342082757251645362415182974216761571050919469595509080435503486971439338250994311912715862441425884144700386764038301137612591745460661515508576344065198959015414496491401049049230124465916331266102823692125217975305508672295273487672572398907008406272062850878292424772161204923312356705278044246105319253853265411816088877052320663450160156180803588021991763879593193902594788316224808643811286662410863286545989805513291646121216023441718692584189037466034833324174674415662190058535621770645523339241218608209201610255335547620523463451220087843831046017599580439040600908636305820970822868390449694732546845899866771767541986791848113608183333639216920451270198709855954075468767901061231779465705970414503510293417678127155374768504704296256314278684654077595958137452203349919984694518025040540887805588035026315722560902278518362807191018892100756712111353173358926884148662433706016445185064080126315618282180017008138654214258598689393206632521705672721440270081381737888246665512115682261156517217507578976189470609422810180966645110700874192175913858940214959259657435308742740717072798778774206500520911781968223604156787663942994924665553131674153535464589281951507846823244460288688183197165452520595411794760628951751398363543920715893667398814507381217892643954709844065056580319051606248301657284170448903867659678550108201845245804428760007361849049069417491237317939288601453225775084376008607103609044608905813044066577321150454769120560420213735960943139544342740746746607976413226531588880676495640177080190211269103062750062653804259861401878054184544863009629660406489283792147204147243940399316398560783046816512670407818658386945493064549881155255602625938077670560778003571652260402813793607807245405534919597797714523976314616659593000607591329286085879397140739586384824288342673639647753527533355040364013958683244973286763606153710055790960246525196229431393426726375852047263003239094120483241466569775193353837104521051693618800034298568473982020685306926153006518438486114374369530513450158755633470727445187856808047882954009931163453041306189728946430993192512421555651355251721454907752689181300560947159918599371551235133829861861988806739878383073956290718215717916564656916099159778543745592402067948546608819115164992299923799821795921859664830821638952148441746041636933557063213816581436410884762578239405884404711744226820197526643710944671165162292053720221238570429642328518953532907330137797018807054224384371566095262252766486688093841525624168682998818831177545949406037248423706848741771965152293382648253297971417320576771593606493714855566267487314970220888948815454757425906086880802412597525803738576277969853490343445050547726600403605586487517675308388815992865657371159147555905615508274161026813721161202097400007508702541412192171744375519183577082709678310131413728673025386126597935772856691397487911751317599886529530206999158455677176594889390706479879661302320188133933512078916950246963388497700081095284194728816069412656259627924275414276615109306395174218174880075013862734023891967463314356064086454860622201656312299996187685568584117763474297866261132276875397494916598254536016610075684787444562176090920716289058498730470042083213758794364823050575725681743071804438044082006159400430873314543351850246917401351680851923657766134036053042711792301582809049621144650346144877244733845905034572695462342871755489202729641382197640042751978734429678769950385232316020054508577361591186556617244723779025166235480029083146872437501224482512669868677516702906866268629548964121342765095499159067352859626843546257337980262395971370339544899015133966288662518927931686054373834596072303172592416023791655674713832296502265285101446972218811814938707846417925403874174539380878925076297697522446268109222904091975755075972559282281706076506577184846762793788026806540769793059491784006370831724171310350670377267107552182874082366449334342245243793518726814990616513691209120313893378900568679200675773880244981856901205856979663795830139799698171530097420355779913544922517489437725203329897463951029312759007282083931205381375127853831187094538854992209409918843173659814111229160957218498657964809545459614680399479894319450524609999851500335335880124111076174259637248879987882476988681132847054529423046139084051733863649245499487953664283388002875910147781641595149382294111492440085620604463199235027265839943103685974232153471504951143844584466053129442784088455861350706794599123740487537334189896613666398528054284528614057990867441692339377670233112591928945987965065482953154631535554322843486055081441023229639163630204836023155779764794545492369354233182382627247015701540082351800733511278567206372149393561971819945686953113391489130381076707663450355846790155760430681174520940306960801521765154661906907084608536904398063254148438196884113794886946052581162502690117176040207634237131721609780223624076070059527025617747897073162333430893781658153783152298768184206480862992947921064102607271758342940784626487943778616320431552698014092222534210806717799342913615638359377540041697300335258222536618755905514005685920403462015603755450742827191385763359606953144946072768804358801972841885813826801804201724693196766177475804327209616116912797446276576302519975781621512260121105341394323529672141867480817163550115596133584830769162844233891120447923005723684816314022213537816624956045751621390054392965721213538773177274287382322295285463987283824660285911155836310498705412115607355535917592308991352286771240288737406238596030849676231077962786213215763583131036419762355398017857042562103796858331426214174055884926479722328984061526242098343029965534461157800897150644356513243968080103176167328752849352945140568324624349068863834808544476642008245487014247241349698419473372722662284947380594045957662193379635990292610260059907736652598118080171166776091431605843396019175594988063394049351269524542127023352579853756654086629139401329496242371662133264661286116144377664108324631953427015775916570645083321666930004411000638983012502056657211875331486457182128297566295199384594575016692285885866091594205630374039055946420186569738406012982741234315700131439996453336782576110250585311779496286259214365887118750337864730728215630828794402413901469375743525110480492920185500299247990673115424537039881567292378809848214797657499697230311578245096379198547729356901921472908020297599941792670246328614901514996296801396739829208795022297777301282866113800720473134019795331033375201823164640272044481670492997228459613335751758387853216677292583172741648065489957753912972133160711540416155180384819462628023263242815166671374110272879507380897178847034444923113046767906488639500087687937037292427045891651689297042966118919074318407728764709759265575575066918899005408479603920535774003113595267243423060246758259439453187633085766019994474059303498797834251216354034302385057153356161230020197190909507948887436880935208159867016205024109466486072485217078491514868861627347837979550784341724993624189997426670452619155666112469201841697356601346710036586226622471974277881776141339332263520548931281827546142301853789846253446583104756345922200741430928936531420440490578044456368115227516748207462382929540976200466936361012855119347962648525121944551272267675746295295507819571952675579950778573383040747805419317714955735629904141258863351418976530850027418684475114271185395676008964804569460458088470825379552220182563284857168189835996686686726373877941115898458043459727467340664899177082897870110137929543405380116754144576736211637652896910783192231442081542919312662408508615754885650570085044405651210101451234711515979868294664376401180393122526056450156857088960979233010637468165103213556326191781683140776059691641348056464188144307943921448198878494050179446807736485856165053557463843946125367553978590373979536640454235909308338282806148158255298927580295505597551099981069435871111799858288756975027588223888009618579339889516735300557037475732707084712545463057555848566287043886021675435791851454429460946029257209599482779690678959098646378613281860252677680869892852850812361697038519892181645999523629398388106000246900623757328580261109264716404379262199707860626481247806188107991877616090072861925542260820042013336083804547275443563441694179756654485290966207543292498863730192873467444742457243229535974785394349215819128497778126151904976892640333450495136237300787478049510598453833085274106783775524040839037544418045671836326959306351675229435903372307042347532924729684625327472119638316396296578974525846242176053692813628000849580418276732157488113879403639203413834851647544119820806486379774408069208136603688254131045288878189051473864962364622355028121144361486153069011650261296807434421673048770290763182464869032035035683866044756550356833276668676055390855567437560319699509348490351936583116928231280096199729975560754027172446872150435045600081445383070830760889504597382415382786867218835623653321223132595545388998583507881829352596698160302723838816151493206005826176002468997808088204959328235397473697300128635889782570328019048105643633173331324835105959696119303471860413989929357381004770551674284113117716015672032307909784878782785530793431482513587202818343383395811427149527481342965689390388735951936916372476074232797521180551733230581584515714565173941469357433529623082586100491879619997361002311710514060482235374806106165233701979238488808555086796024206676996245767325539823434205389703935095271063511856854005374909080113394706507926308584977028067622510904875393486865387731159008546250537229748717312834809720940292330677634427952894850430573845463443387895820096544709221594019853432175121499956993597414993718255070803579422468546542078945004367174012228933580620732884907911199375564769750182154918722371455866785222422780002266562064196742593237366647287103064663838102228535838448785460283965959940674001459139052490560996449952983243332753916911859550058759306783507002193452419029538343674791193558621770428498777128456893069404618078961308361968398736437877180289510319203106034775147064199924935188396047084782618327141389865992970041997517588786150348428753793595641417386326416277018177594580843054719368938793234867044395825791812285404870577631003765770618045612283779624727235123039756149722670825236442365645269139170092428893566205642463103848017114642656542853952035685605507045238375619555531438341009804124542560295134547104421424555028466808279109896644443856782102320914185982882486668522659248113343261647810656991884597889043619747580362490512294920291609130044173112731820391591671442396298947251627369864191400927900338126872215149466116472044038791652227261569875431750045895719613622206198365897566393884896740630108244340661672278798523712188387942183949406283479034983675961992233251592954741908962372360416641476377612948334818389869933526455583305090508488831052272523657642256349019844717023114052891456529036621269711805304340991644197037416332247263025654999334125247548798217726183879292949596975197822881556760637608130682460448361591970807797216944022388621755570951737913068599682851722134957927979529316700787861500409610559063395272676377794525025391806061347913581604361887805755966608094554099404960575009433405735262336766413392544141651163244535232327039496931366357609691535523630016693651300844661421336228350362771880130503454465393332772952541811941063198578118856896801498397360686639859094119211765120894369842548980314805696341446242209244534895613121169804307916993644862068184337749783364908268483498523597105476130699510602092877484614082344503543741327240913290268877514005152068314957348679187225219301653274610299620522735355875688247930042680115051973611637877278320377643945906706650950211969731936693881793362141523646347874476860606538189155040340503570979910005700143521327846384835870145527001411933592635722514795140823431305624922659435725060945646553749561460356154041051698021654901086185785941499884263157933944570787639416934644737609664874125474979243530434732393686629986355360307224336253081748043966451937091303331039920789011023245469197165002556269124691071755066269168721976864474478378510539666039309197916135762654152609258141191732777376548115161820714997051932377767231113806614615711818069585820264893825567738180082342197474754765373801331652272561791261576585248309422898898051588501452735583256089865976183491309640935371239151466394268718737670101231763499100776849426712114889839185854781495933284981212375114359953293620062281174369021803122663594678689905370848942928997616212790349790739752823238892629792838611910740942117543675950810360816605595467506296119141238758573296238010250369622316287450867946568541889111405399447768100036517295155014377528484394042375509729254768545182341162259304152855353465815872806850072479343885960181542456630462604969581504224060579772404583994962944395451001194611846617861340659148308994591453787601066065642612193662852117459877362479264443481228399811378505650929943087048674138581746456557324696094781020256008772996585901341938177762011708604055649211025325312531460419714860248384232501104142374149012928481397260985190825448499058006095396957193534597956853831420485995720025828807989470194618184748238141706044366755808150566981937343479069456097085289192440848157615389432514141763829428798690596741330281864614147367012958034233119798406818302119441597639545504371464642812598675183229930742080932862432406552256429834629662296229567043747810248793975146797457198647240574844922299846884439494770706042971276182844079896904454108596209667954378324494692421602477401219870001276286282090656425521609503328315200615486008911851539520437490750999282123312195337699093441552510091284369630467471724499087964007136915646510461814147487297346667461478920784247386112394554328450697198282650276712433107818229569304379151920355959504066855254017827367351009034181816645184068331549930481901108484659464762561664768997950066416318361176454770930726172873053388761845985891332539794680320507119811211063353349269386457524808759487760531758889718288554887836079937488576958286860360114723171115855704282011798618635518681092483729150473769481669939363655981038434642986889404709281406382151731195866788808193855381830976294037014388822744532033786641861173456737948039085092995926210954862103600478223437468481203060661165321529913499728187593390626797496692715569570149268840695375706385862345093302354383774982151204011107944875899827562849311093077909737949106159886011689124701329692524242585212663344625829658710081352744712906943975649716714714945134372181856429859579792775418024180925456404426374702528355550556395157036722408477052545361201875457284442628490714046482261478036778556441763812032342064325279125510482496550081963089480858987816987764808299981159233960142603900963843711411399078324810194361996219929725070245020744542326323773151891392817278360955210535654580029883839802780978204535929629748757284136767898367988791663071310560422925563446351226147555195293964105671241190592689637586607641743215526655166239168939866314839018831962853746848017828374293982833107272491636805862763944713350350689803733291668771552275225114757754122963849821860140602107456019559532784270584515742117797778615221111963228468687896899766750681612088870560297553306785497275551632693500746822099798913226450533435388984848134547828471255332141902693332127107091140158748684154002178465903032790295348266813546739274129183960144392160786558128743237064232358047943832993381724691898296782156918511189054729606060689551953143459845500621931490927369703359220681461399438951374562783258380004580082816659113250721365846438730628910115206316195887708251329428767601725455788703482993111123950594275984087329625241537261340197792937274760838547656746217947850429328562464245914846671824961623646377568626522870237090702997453868068154655219891325861173397151350798044217948415805467392266540989768494476824648163823514253170801917209265564369131597183426085631572558637397080172232300971007921339154754728301880828699691307360223275834683394989504047949405585707669430774689817852104697347098949031659459866908037467581334035806360539153858832197837921998721691654446600393932578626410255054268386552829941812437336725082808607260262750067081259728177631940218104636248740849400390024952929942663337223334084345411854509905333798519786176851740930194369313927968301542575246042385210930189940704323176094732403844537128504015384314031781712861430134429751357547577239225802843115223133946353391777465374528001287925348412772545594627430997899804913967872917813158347691731736962005812504490875786740531388826869948761584481620865948552787863129282596338740542805946055080444608045563689133355208682640464570123213375126313961989366481981357086811292189089903836941328270025366459221372939117135438520937947975334869642982369828706115613322287579685712949429937771946309404746858475523235600122124560047586510847897855126768008389903633609406161189835154776954567441420525002774386816113024726411342972221424827351326061994517688014687942517794153640723812442143793835333058075822386344296141575581047971769830289638886869982505303077104558103908781279846516127186262204991661474699599409951087801917205346450213200443822773129648111428541787326284124899200361226060072791117831042855024261304412880041587435778892527601984770036558230498034456163712599909568879937332596183817198623002932688905718857058185448904572833335504446946688834651343193528727696619477622221935849564353704013191032510707079716795665250299847504383070708152370927897593802610224160043474143237681831677078010683326701370463464239668975299176071688662123218481809551156131664775002296713996954803073513192089923613211290413166925170428845807757752886597622859145593510360010072291721159937021157521050503908742650340046923873855717073013187703269132727065430767130153812290101193581011540376151631065538951957305451690216540606615229509241514944887421545723927248727490950188568627161304868022843262499037167680142616719167769126589435651728388819891617714742035109048440153987339635665649624807729852084980734044199997312703159056824851053145431719515943984022239005060485602847985948114202097395503907848145105744421199776462575704843368398737400836290029117179943971007561783500955603340820440324947345574346069376086231411497357761445683215040310132784457483925072221857321065049377037341748424351315686537626036626235271847658704946542596057697838996667525479011787234028643068524974940121627616811672855842967507514832283070707073671516083565107197534012347317427865164876382308830086299290253771635812445816625484203212671110906040182947881724427487243900691324553430105232653471205327977123949672612458758104533519666593161046210419540006863887124703345120674486289918567396982432314753885516704531800102429169318243817858911793375106884742731883656008945794757511983752611230647359266356501741353589702336102385836423470209053787438840623726614585556752536378723730905882116578735493119123043508496485628309889025366217010230325258256035397802266172294754093728961406473332614605100634973130682039476546623235483931142358479694829140066936465017868765134811944390183109421007722162239984955140110551885845143070099798270096804690669521166853228070329309137595685253725668234781571578369342244838842365959500075635524774657910434182811651436495680181981311595974887120821516540352698484473895423422813245358845287044478787943947426845585065006343564928066155161799861126119117297673292371879163687965441935619720258462400096087086571246273916380203808007588919418643357161634666668805799903197263126263633139390099787977653580015781167823628286884448232328534869594829507421918849152809735177488970363600148112275912513991286467399112531696515272751865794772436361158375131882539453637926374093879111480984597275724062991554093674259103069632919716541683826092016828471064465341353065705790669711669819703122297613364912431891156331997083530818603763849791220903335814524015199485201322485960744008044111984753227636971079380938816234818318743298968401029352997002935196154154239463343880044996449363653131250423465705448926075152344654364707955848729305251478326496353913204804525489254661092681113287881949157353039312466147944602263066347133817623831135444736753293238009597261597241206060960859498867522161927864623461920772431290042993500204647183816496195230309653579865704537992566336508783017578752334084293986342806686427411144098119165006238507487155129498401577198125955093007626633908683277431937425000315503628736797458248462025668156862882638411168144690729163751551277130079563262150465986638146413971700651488213166821514888944296098378719909959183691170347639304772021657181534283967571249847249193498322275415070960573324053492567694619355411071817901278572970001611787958707064501026235713993203300682102280656325439276984740929296200517341331803944829326811053024059138003990946732040057422178775842767448961991107492282233309477459722477245358238753383110711737651766636063823253000154543376565527868883467951488782124970089780512309604105403026883426949910650960478496177988162637387346838662608755236761168524980598669873776824519389609826604388140832041287857374421569565874660014438441122727662092168137453713929858155311912365673296162394514996776651741005964019807355683929509850221981972607174342451666951451281992429726487634698020910009296016768400772069375968687912034731365043836228857669581056398427210484981632938168316756565645856829709433945468838405987469955567821335121311275119757943440062948366662298013268654100697513274989748837525010952865473106392618306624906970540659374259233382663428649569729236787760591753736217608525242281861929077044275661735366914640174865860854630523296600104180865883169351722495209927874583870751346655202991171061345683357967908818051206148021084631018780013389500836426075652541090626778400649204869630430069939628392181850800884442238918771576359687036919900832229521639601917101662398263893510990719953822172888432802075469346425881595686980004898933084494061220734386068889930503866497292605710738250352775388603740672553564184620974104512798637137532100258785424110040220069579786560387849720545031036846571047261897260546303020999006980829478034992786743428451510379272050273402823697724849001674022188286582886037493047106288117633078066409014503472309040484935731367931651301766992766146791994287497615209321444873026592464317816102554424198756675327681326233006354541111804507187692586478509505084332621899468128814060612886942083515291533400424910140733553455189273054826842856961510830611381173948593999063349885641095629730895368070598319897658973840192482523688175924360457964754871140596469510242019555540798086136560979785431105330691246888359223686031582231721580754363847931794237874092008816300305562194926897310210732026156184694380230612612734414737083386001540244929255651170515976525541233691435450252172637411892353672931086361681285526538428665056584060472009495185547256566874217814049456587300937560761046703052791321342106378796430219665924490177646380630191814278292183406701935189412026177974642236397338962850362207576091204889393589794341088836877316181586041117391149417837831547007628043876993374920714404153296209588160487436751305110027142191644019755254201405881297025631665953935779420090485636738088048726300273708280764747839986913506337223606168507337857507609667465676834211212172986552098208271423385295945216372573709528612757862002707848253929669211865451293801410219105467055150296220697101115986808577274241133636069468732397551746187690823486081988417565986668044822701729143329113802220454427543107615715390188505952357819960963699704531823101263212098253947677200513677315777212882290982294700580198291086785659497998715949346510945405958362937509437694287615941137381807690172844713430677707424748935331383736485555686619641086759666501190525427989023187464984353049363630496618239554209610671930418058412107668552269083966811951642758148389927479786044093457262083049856121479624925374967273263189824732020611302139696953139961720055311378097986000200109028473845868233650262560381247088404553760298939382644798636009178921336208278592583636301477437828278633881577393242650632618216090832956781283114138795747847908204842211254437859941381775958414978491013541996399982312043334572553470045045572350640580529609668794792161244787659667386662926987098581668524467711834283813347931124743591446648625543817253725982517785825204799245339207522923934660558454618480598038386485048024710622188272963188906929694002947820478297604689819610087899708134644478167773795438955390355893487824627615871661134426933010484379351520409211237761417111631993757169455821013321486071022560236227657270028830845168612813042170773505455085590720490507783536665077162471267524555601648347560746131869329185257293120713282374293979651550987294970227023788913057843100937977857363288224309913920995411781032999874480516350705522903584192292007515206014968351941462005324603111871451665390983081362425823793214242290262434677356895044484466632463645876227233785629706353639620661653505856707019738773682529519710635521767167895897234548490162301417505449038878185593668645620184245562616330182432714687946225709070001094768804929418754973021834884225810814259309694201926717377429610738119821959402318729078996931515279946718537939215244829416775865031697133086947867965801820396025001514302956398744464977608124142133444387933034182619284465576969774163943766166342736999723250121615821433461919243535605394674584558112853317016699697854841840201882395703025943271509890318813055220714689997523154284174186192212488448515392732466114646295138249312371960425474588774368295348466873917490677627909815968570719948093022614785346970986164433569183398629556387427882008450428181381901314643228775708401547501045963998611860489158140945355212203309983443471708426751660505172180386838260270486449831292863354626867677631549308968939878776970412288940706397609655603147034160476289116370565567170819907346431813718831114493109609182702334616318394654913176963468926735654906615163550818681112366725336705354832464763602549732191141183055526814041678790945045032190488096981494174654459450856849112748528777271223590530211893749578181717480787883683888341862059796500907961089545907320867892705925352521503630880337022019966065885390160362040275322729637665054396324389807905917451988605159616365311779830653764331089237242943410671390003612171807390148777132775759739980007181105649060045782459845806337623216895649004714393676841287267120223065384739838633595977710280262879522459840904661779496730244679418928842080412971095305930068366871724379617903879079067193870248961219196104392020589861187743690044645535591572169710880883269924259870041294998579225111688943313446176567250851293769702426022948385228750797538037333969948064253508651977421202650368679781273402790864629719110082423592899787581576792246357896195677690554667216788972764978341905487688707917573252422501599301007113515898294709482366539544882784387876880010093024259382170319568985782540243491046677568143024898394327913104991943431714569094164166645274095737059571670522266110713262405849340836927116688886229067459764923378082720828262029438333833614133700614656985894687157084586175601824503782628569673736911155668532092920184788301259546381713211114437246522380619234536843285669648885825185855660483629292044394779050452249900036808066876066114903241370189186377597360250517991456147123655960270541155214040737461114998342811905931918109610104024026302510914646430524508002015236458322360129910297003628847671776808733526631629273156622545942021597116603742216161423752231861731728759256574741508380220661668511347151292416899122653219057766784509202596486731969326999188938080538233458733879948035429051339645927635755815139767531945382287207172785975217043965695955494120225735510231130927669299308949792992717442764191202753284001377630019126436265752205730466571919397548701361082629644827901502789748696197608807164613856940859372833150511611880098013265075796617198216765660142922823866627543295470232260002629496316243316589909831854293887202517711125731320613864989297875945581958182805199279728377075278170946564938712061221387995810565377287446972068029687697566718449666355252197308283136955663203509338508052785104601135929261923224877185099564109115062184292765391028370511702576870470327521333534639392041341001850640164650164459437642829945350895709556642318915442048383750878498938850376188724059352351816646608164012005276830116467123879613540601801612802146968035338424826392916984059295358632721501532550925042995101564582619321879004292636423640196565389683080894792879052901251739820682786519366688619541272266046654165031726381079057859912267266423271900505925290823994894738151942411410696421286674988195096022959473909366479030159857220555542414082830917541602438020900864788255756405743293302350017728241064860351938768243325918730113460134690198297692698430593056074976911671972838191143242903756879514699959872135544447078272596351310489746747291970057140612167319089213301732672922732830875494261952552935188633790509802930397969955606107264598286548031568408982219849775197337422588452158775342613178584545663668854760420331351845182345327032243616215179594199305594758621660021512085715761008667777394335720382480278766287762796574551992012355332209952051500305365488110242066487464933223371879918914307902013618364147724201239129599617840639282720768476147909620483270427741577091505351568987685426983179564065393759924185688026869921171067055576320161651061388830180778566164879510300313766903668554446486792206138114468506889036086162452111667407420329203439627736708650142098642049549503050579203488819420743285449969196352217392336659167147016208573587809257555228665335850901230952508759163619356769654876388784726819432849936274827188552190433218294530269346509709809199053423767151977406046918589987562930149493288241491291608566672527757818236633739887035974170393887501161704717338966733720295999558476106191308161856504334611104545570875522524973660639074053338327249808385386900204615004772360535508834620947824128298192107817703504577467334280593048707071014620869718145405086235093022299332172761761223160825266977119723082678050798187413288894078338865994334239053502670690085736990738007416239978208734628098548005046686561640344823419683192255727378859031813980207764511996347317806715580353472448218139201116077878674421362611118913563690760368677899802119370611268714037537506616474127509954349320193014752361205793284987122231356641607495764074528365537112826902735363020278647497414225162889482772691633747427653739251105958041529378843078926642262190959537838252165326198352533937389803621067630615563745516011100368636493277767040038707420356720610327237957465891582791707182036584540992795152186994888339297728880708380252298651116941125430592719891021346882816845213350465851715333539729040004951625081355823331837414840281017283396150506853290262286475127516545953534811952659921490681457893494149369189901005113215788813694119508523588296875953308554618844633832867664408566476802670774632220855339017389581119307917116017460437192190426341050273102910743926910141337566208747544767078750854368153520006354544860363665305056335506016884734793387230377887218142111176358749245456446872179683416982710375778854040576808425493655734015365465103003380078008957418560257438160888872839692678050810659360798091916390749645720437294867287894741267933928915747250004523015963835386233212384908722957562728980484016139661373803533720365086398931430847116552522841486925817020746519834961737171219024975799714874817429344039898480379512031151905500570511291516792494398952051095420018456919417208462444050286976213694347664121516993722923447391798610030909826724630491929238965616547445024413902841831715496847480773391164849885885220168615407444507672913165879200756938369543565276169421931115463842898746672807839286861665700051973498380987253154486130757448360772012804463356102818406608841165985567342007606078928472311814895741419936731947044261029134180362677103627308590172187879405067084674668385183008364219906634175491954918699063322199412378830716802403077664029611605207325318825178539669661476883756615622423238171351487828455847786725723884151102824109181462745959764980197476675672991103027926267509630820181833251011603680995661491583322958489735667417503686732020678250375866371764213703350523464720193739855444653795679385723497207594908851295531893624022587856471457840664059175521912001686213416159601820048798933299168783681703731373660861224602138099690451734612204182730848783540646374629015590805394771133348487668209896137611974175223469243366471422704979296585993143408939152901321488637308410860079539716776024001412744717412448783330535582304905167759867385756343169897639471508263078287705809234493359599936169990632977667666032079329479384996006800306353689350167212347029079084301695362313595134768536384540599826748861797524227404748501747918675352723229928221762435740762210958409894767539759993460751940788933881350214034739349935936647777620774724959586156476805804233997048234245618679508902628470562702233612577466031185872105122272891324308501349221470512875491743625365757532939034160017849641516418292783364282703107097909464966393050111544832088926665678259015587135907022712312233317812218618044370397721722304149062020349743658645574903270647311877639188128339426224091878875958495031461059306756134181194187508156432600228815057927490076166028959606919363852198610013710222674923031716783296195398709991212993428716217430968450481183339857053949625743805308280045799659100616751388949284698719516801051865326987503999396563719798880189683941584800790725368045591162112099469987921201243807885069560684747313916499985180821276424143521607224662360261069114205092570455127125041175448542574450351232279549894259907672820081620340974513116731637901128242247866421076875249500186380419559288951431508247168638547351333563109125584685749763825111308520063691736119324040860328004417142147883892010234721294452071426244842183254598640880892954555311690382511305232417616660916711262604690013510677587604552056236388204579491981483163430354743244313104954698274306039785214840423490399474167474800337416755111107628234119716332873465054764126826880787385823462704201867422936899477462169407014739646622741017423863155400646302106017520708126112884503996646509013604788535044142149118809049634678423010528599182799306856765490226495611739260664868713139411700308477303054096470401130956898030854879797593250807403879265481440589544380357216590532349143622077187137954378945677317556117265756845860216648513449794197783542282263958632832803607343270322657531442635336262783826958748948780606883217303970399652191936803537564551631212177939430263506852609129183157747175169894808958785251268852669295036256594703621518289186879651601103740400033587120352376250155346733864151498286270119186320551910604183786865789294056005373832453394248412667547083806144392835805657421110136512526175785936536707672630788429117542351489358564115033291436044705933583803620482686387513265085031138507735365795475448100312312595796347258847368892777966242486902009201159992293821661009764381381640413032279004828571128994829576964610816578043083275611643348158601013410255785664497122187213455779659023247397475159691231576631009292779446586881005259206785391046461404438353915239427569444570946033778390767110303341336670127178164492629536765655471537071145972467716917836531812557887164427148027112775143279684934665158092638602569405917708676412555392685149886165829815521869865614780501585353305790935489741249370043246178064649110983898166689514618959945868090084011640852313058195734835140530158895454966649366775680756570707445017899828733605514276606345941261756291533126330700221030085921456327730746309632086393486014051214799601926702448786358259051112676413718577758503874371452301196636120348108397352451251954952962451796458573490641403840640067197673759492773028632514699369215586689580313735182739150367698947468844476859563359049593284541322074712376235874286529155828712890323904112310234580562162875226665594300743784180716051301895081627235646163301168617415068949358142216885514789118520070343657707383358140369208396508839415491744376960541746774756687272694430695265139753468051740409546695178366384493300954483626725508656582200479943123994130737896437300761843809734792232707935341745018875744436974444321860784848360587697982193030107780205120439073612227140508023100577097597337128269683233923633660717699898376239109107960926357412299553828334612630111250106035332496536902728050664683484396867834927303431731736630989928283315830293528101209539706971038545150997028264882147251167871113789240381251106618592939539040464418248221952361592061033944028562917292478084657256882463677628281990644042323637345629765478674581347898004628219532549880348852835361930575184841544604273419122027000462804792398473788063443959680213483221366480123723732985348348868665710521263017656931897299814600558889084294531268040085800233315389801224066090138847165532368756762685822098414863765988998771587129563753558144025169262752645712000487183266522751960486265825889552561386706818773869659940930762464533378964881024392500251834687299995690258183754255696171243977467140085071987875873446879927942017662528328567095936949968460614513220873850238554061097660654067337919081404170443217986570523627338081452678601338318969271481234059722164251560266818459416080478544646809002842451483041900483090229034676356784085371591035648446549042399993012776998928628407914635393512183789393836130794671100841189255940911426683194134864596394182434372759518771700382094976933769708915617659629344515503964263031567448229047309950038401348988897576956183752037936980873503943919593611855491881722085887307241430341362560382080545481777480629922986142079095823064366860242547507704961238847383167233378087730449305172386574457577948354760843132655103177448539490290249513021260043231538054737342655796023410683936568963535806366853141943958190194511266563149856804408319191639369203741634152984902652955237107177115048441802432619647574689714710667562552631793383409764434324811593017252415501942385230669239628859535138692407115281619728737963690271802416253634340435864497057792677423596605719857337260050560168751100073917167857955390603112679893738389400021260191675456847408542639029111834116554339658424993483873085453536724639124342576161687416072708269917966205174623784282746543182401091773466032547611790339585979324578685308942128626611690365515651432670591415985413202545683589615378943492857254380974748875831625271254744037678543147238167466365366155805711909195321061385047504114224187870607409550966897754158273524404083040136525098447272599310725633942077034618902026583881693366763431641161911673691975951015340157281494212220187918594944863274591330086358423817979398404941267368114542318392379461815706813695390835355728649625600023788782585072961389193228318936291830604248630465782714174848220022522232688441580720203515186021356220998954989917620437773074100585783893288728857302646053614656052111032882356584369647236768196686782305505270227947378003107810279555480520329081277915774108293269980991717229284693466849879125372260632705075312527219658952835121005967137665978736832795154225036730882661041380566139657579606179642939226644045970237685688075051184944380788991755027599176974795837575975190575724523253344841106340496918952455310213279499523709234638918119507230543131842219109002171015421147620214112166103226203760196834792227401194290803961244647200500443371602519294416904290736548570432041740332888775914776430335619902773451187432906502589152493804597076479138487402722004836320696252866821509656219501965389618843015064427744205338894088611829554647529366697885664701106899177096403109327251687876775152901645835673086938225451347970677631082315349339709167911373519325963591068226617189733434542452409195685719823497680213103373145430741649678094523274693522778226850873025067603673059814427587695487418641557487341355849447196640523947522843430961112339870952307183938004924250005420231568234351476283158974232326850615363305400944814384433460673107479245809957218283909007157819400963530933646674091490212515429735941066678601381273504512475779472084627427186961007041754515589443463459359979435068185009935411869676488378691297172970746960607979040233529983251393842025604506223130415497466999019232825895872431569621745542170235978541242882408786008514549697157225036452581436729407248957276958607069232600049200950501921880492907956903100866455762944919055719375486509589214020713953754512695630086498311495496746873707000941632969012026948055071132512245934216660760246502803484912877523495079331770319958640477976434493973555971854055283166044559504627011315045226899733798367626280936737521328278406023408395824046363738828174926494572309509968226479540738301378943514955838543492887121032389889892994275702894856614257761426677227457098467713099104845220356126259723251738360376469699768016653724526309856147553588999810066262897008593115856213615610962649329404864188379418693462304880909174495248621734344080918632312728981540508794622325883569611918471211573707159502104177102616922063407040891168429178909077450822665302440937556762841304865818650634150472815187350533876842368180664411293672205699015011158171054573584428101535888158043940013260146931936739593172470055741099497754107931791022107525105839953358845487295269147877172371922913105799587906875843145550275285972974069782937317601599282008695055502812073108274103619807861691390537669826674673666588030780649733901562815205562707558154584472534497060068794112851587721876547721717158621848926983062032531373340269546359836346156953374812439249867940527514255113651351145415381492582270073699570629414985416753406628765247997008484968093698366435123247029625104962134305873745947620648946378853671035044528811163599248380223667194768074795967553955059945154063481521015004935051828224448259772823803744347915686535778666534872992507803117350234352918109074169065337487494851439637286691286693267259181242672278837696680244095083299878632969694272907334289245783341611200973250886897990526566835493936552210553489501149774670006133429933667494131046557829161292053204002746178015926988490509188245674441093778000241037801127357175324391925015826232921599273393114241224240560452904689678362234371046478643505441167001253134156744899594513416619819791526672640826832543192799969221173698198750388407809311965702921534349792991128782495387905732768506603918455550152861405012156806751025651380794358396027693691172874546515290337188163279060005410012854715695790502023046912233757776683226076290199646951495644050116867352259460068420457553309860374545975420704964873477301878404585434927235742396490691203295275498639119353758931553624632188119324780620497823757552980352398617963150454738401507035782117798259259269274264032791976130858098433098760007507392243682666734817356096960201096866375989668309335275818185083081278160523648702051371077593877873604917738221068374046188833286553215521759704918961161602260810894322761008548430632886562342733594593983613988816802273542001296115700117170165074271701766583245453931108251482881611606075108654819919482132577985294637240031324936696235622159283927643278540049418023747265042109725251495518728827274609759237749175832212280116435907262486115259333397422708323046082060628043252285881678020265701567959736826281979554185996458608924479193304679940913217617829511821210659266132856974833198516382406198482503166354886293910902572165027053034876656187941899232873708217407019556173385639846790499738966225179236089522426264782226633947770623736455219009027838488681546980996735498592302633217468485345676239790264534981078227884361951998625216885563640911037593438655314699401923866351207714302118805627810954477212150442787288267224308817358091049139694044741593842043480865397433571644020184660540985564206239987369279889165409758450062271028421949393194890415609092636958794164237200082447194935865104976277779253398987620862614397157431817154523631723825417431160643318777745238391382451793064166572680386007160046281955178433186723770644459105070798045787749260000978114707064029650286763567048766627293496515724831890584017328703846451483747363357679158253136787518286124504797371629559397031455744305473315868204551612943109574513250977155131038772796428283640760693237686337615130651995369691292058365233275583920465157000698448698567256011221402966650216811470537491854106106217888940282142536067307758013005365602009298602350470158185645746062913228073203541718113706887501413861940501453278075532682146462712479203341718929112748069636754392471728358723326044820424103265273720369978583146981010116172394096022121539487979620295830894375581318001173038104382143769926091163197010459590086417884675614193268687101582869279361841872685779094242645120423325658238686198270294008880691063835759477823268471946964347949215927104736304320579580225970812560274800416324347109684482176514017599462631444089627696403620755862386960151844331199847583368062961266561328957661938067300947525292623052453804703702810030034797551889459105863363057519276434414282289004160204936788203657340672543504210251768984831861330686018694163208342229732380304573091025118835935374218223998603675020788441586437166891604682164186328690410410803151118130658077204459807809942967238832053954078323903395818916389729527703214795799041826421642368520628949257212638750768000209149972105635109449755867513412954610557783717690768030788278053565017092968675013607713840178671591214962144388172665457890610159131650945402882980989019192293670171892428452192295563819019290823233739690481855847971182000244076055592305222132499534988516236805319263266135803814976946210082931350649137645052887581510641911953921087993298335806422185408504475048083662561548211746114820666700686521190421580655072066130723412243494478845638927526520255172151449128572099107992609247234190004809143304876693627214123226080947725089635995952510782078085288305782302123943144648800646430885964300818937543801408830230291098293383231712575800402443043087621273677390689348770818587711688881885776629049342678799657532631992204863121101106368511841896227008007042434113144023314648476585878532378604555130080469179883860640928916818141954730487510081162517543139054908811219188398685685843181731564933571217254427382766003362088301436087534125967822778218489605056641155789094908174428972136497213865971392763559722882248375758037427460980598924356391551472021116899815647949998930756106998254833428110102629466433662346547875627677470926077317777855699898802131069941313434224106073647932376387931996143370180134768366358482808073981854574093842067563815120581174179196454548140222699568458803575880615468522590470241077196460771425371075610329598985206667289159123348656113254750099379876117866509086766054643356596175144344670479338586607901870171779128198287815236057145767495021545136568996282881244472006694692304481778608189709177827795313173452012133292987857115499438551659163522902796750650835793413249933445787717020710117266127705447185032236950432477864341295611983174786789139806354763497933415561302870782882981198758069697988490027674517964976029764074724753790361375560062338179137242327792969497687598088842806960418796922875372241246610984485429878916542032248338769353175550580221882014705278050055843771468578697353179655770395824239736112055983731521494171785146591544503000830757870410690927327123040198533870408251569838104382095477589826298992542572431304461984325189274110112317399097754840534719089827138030946229314504645315230622337636063922411629041420163114294033315292540746809132149806713397209064218047433713215967694142113353304859397956873026435907033379429478854495455711423099775084877609398196369424348202755891401886605376987835610124666385342119223890207762313570991756037457157728412561844223587635378279784925989780253552464878073528221508817310290587557911581980105030309415659675882241206133369408714635747364093863745909998562345500895850728316747600704265855545413231793876947316642148557110993911235102993055928419156174243955241248182054867237961043356620461726544402597809913679383558578300622842870091744958244233425245405034382385186552365064774590304639000784773809252776258286271014331731458387760048816885968182872472792654187967485136588434724746548970189264579471756918169846038234001004570059741443621881819985365260244026122024297988753227875237231789771349837896107323294341767115343007357463343407869962126551700710866308600286202935528020604432274272763949837642032962646891471023722833125806503816264411781547414000873994553005552664742089262444676904867756032230653386401285225910654848042207622158707707733893528084223113183539350658523149825428123173213194220526183556580614562707904792588887168186360210045088642755157423203457988152524500046217672332399297085928346262094541511335173664929655042398770530997709850762212702772165261846471584302113670319458909788957826859205624165619291153102369514170361385448424724857629719898814403611481197157795567801857721927475169268371166708497154770190281243593692642916390717417436978496596400655371591101932326900322373838188830410137918387067935300305084890370259901401183464061912796139506649495428047198026687258931813257562165539040379121610176424874559503380377475671080909237343615162639900516706771732190432888073242864713591771968950294229633672324091644051550305732985283111253818667333150595079838354661451083509857330011436086509257015579419630250282875443155942807732733488629998102416799640916718875557046489122113106728884270164124430635833147128065392887556087303995063491584517997372697538815334171816476143884910925336546097036725501802701493408134366650308391110307526865005292109284032137744027226641975094815224253516827142040425109814827156614582342764241179896823512288793342963971410395825536491496347998732539838164098890433212027658204679049313228154608763251108905911922132999939234253041703238387957112882727049064099180160131814844252164871813930278749922729964723962526796586601632531907702825052949810144230466014828187308841692575350665441904489755482804466622994580719387956122054313137070812077058133713666425590458263981731832103378817638801967131013237634492540398429918951798524112957796440402940896754642779108014195654186148489533055363931515893784461417464303472033133163916382048667922582088504112122095657706398382301064483427577397478291923714941165407904378178730434919241647247038223223880805967658340475870475070637535558472518287658453847673939662370241018126495032645748052471721914069233259540852886514836350367005826070496082386893829838712655147811781588327181949950682863302210758121331187938551164061226519505059051593635567154651437959192183976230057258211687918120375412168736766030250446422611229843933070222305725459661363276136974799757080802486415671572378955084529694931981379507565359342904200660398305420675172056948336934703016032732267921182634980168249421632502852071284964412934977102611817788009792409083425033795217042172105357052682493089683084786095177614388894484918519956165244375117346032173919435770514832074332092697400027656933130856900051770914902155440608289851003138723879731578161670963129145695168592467150964056428169047923801995805077641020014370838846187512185305973168792869581093898696205454523989206566044614775910931117505268575351365567066070482653789814621479914761349388631030957347340587264478474463914646409166045194493391513164860318607931819459566696317757401739746329136412079054314968635960334900164928871379533220245146083165417943383921272177488128347799163019298892216416796036891087633937291079449810119637979318687985921348410746318028465875238048994090579985185130321317821479973703190874072813954048884484539081650781667492628266567024565559775989559299190456159314837084486858785078175867959988328133003765074605441693118004623905811102006929928253383484612613264692211989236628017233287236750294366798510014425279257279329618237981710180739200319376174228992367471987613244548243181241242538951256207056616208094357145946679103295180683814528451924223751228916872827132844335997042866220081363314508786711666494145638476283107461281801324239349309779931497822220508805683138148213969318280125229895383019289477735376746788943772388719154564821629595100831254909145821836210538533854531551707971560804881715208220119821680962285610886968025652891687467202036160596739345999443439388529479373579202260932504198210776709153346593289872462513306507118547658891875118084326021866713904167631164343133222167231583450217588500303976983679655805540475852255451156081823650823622296502589829159104522533644626853443120795016996118890610132274299509219757365342270344343363594585835326527441571881172133282535454844665361526619673664147413377098855174571800356101854133529306552756381169607817239743210076681954950451630425821317882382543350476229659371839051217698293196914348349382203256454137928355985944280657828628488818040849865497958712369757298070260975692781110056605302317951853650246383489578066274005859110323351590965141471154892109295305137574611033426672043681113870979653198848606385946893322238638014893293967651200838159745141469366466017629733841105336972707733655528747306380565144274098166525254958126939613968867715857623283777132470816066537783087031475239461883522009354367481879582998034469542618085933284802677118506131315888940992371018405012903885507408783372845610516421971001243888455384102753066738818460997026788041365481250238264486146871913756998076726610946169004187563533383656579324391099033521067039762583910138942732849981195119321166105827563817286055883083086613673354606432352524766691890089584757601491533745431233699748853746578381442935603377304842447835869647652173444613014354007288365277915593588876923787484748519458340922818992262901465098760868039765654444605520267531163487723317780463271601231353383249420381610882802831133794501256755531487030042819383845103159148428557046491427651614335099898287447899683878487514627166835367508999990249139295039455999698693915984949435976215356620447062214126560000151092542735768584216542360398062373515760608510563351367167392776773141920190145005252664579572676981220132762038603018495403822820886493919626051376877556604541242451504386377692974159709589881042409299568261532461305531555365318347651360905828428491558551793047931587499671069762905392497449596918982296400264150230682154649223375515108275549637979680860465378333088270115773027440465823632085652185781319196531474062715975809558845154315321823485439451041489931380560357586998814661892082060980851606009981556075807156244674475048721917762832799988395832826776693382209630468461032732087684083479692017472681553156660407957601272898065559846455996944581502412232259402625232208303018427470980604657047421981457862687996936986883295821003015169505384592610799532828084264875948155885342895863208142777868050895460520942301044599117045049941555824266344370864324746154754371378698950022214161013665862917613913331311375375303388214343580424126783161319466982693253809557976209134904056318739133274552407785833430969266112710570568796993948976676173727743496097041298960996798983202081669800893664165101408923116982336561256262869929238289250159128395623050108995346509501207301620349097713638623048578584833758595325412682842567173858429197102379454066954915505304093304334239350411546281227274253855837107230372698793781435641809656197693612463775219380628707689761285150518293146638329828532857398525122422657024047041629964578243985166056847557280539663143622220890749079592773632830615231458345568846099998149315526865913691391367783848283687518524633709884133688766318009922521356941900018984649724512279045125248281145961673523843841342275268333125387056607784481313862769485085535462677502385789557738544656054897360582834559919052361667014058467780245144572441042503451512090329599658612339260325460688306003699070350329693521873899813097221362333006071252525352495337601324034050894472998992221378956526308045032463421650289601535300902041537555876846769259134078519918179919796428569191749922321986895776975821032324484544236472797577573727893242915493048809842089743341423108828567728849428059130775543149103778333694400964276008025831752794461927352506936186984982644852130431794436083924043011830446638094227856053849874455365602415005908483178806483567003247264430954543929420459112809825056170840213499565337047313049839415673990512794033774594395999782053475201030565975046297756526118895198987816965681689700478162165659608358050287079557240374160610947952653762065841096403779857056323010632508960125800561032779905930710460876212541504430721662131893850356957510762501983664588583705919368524155976065316340944285942183630849816813523205934278526107288986955050969928655142444859842220552738862227765918802323295864520795086217839744601027504767113661278776498992964069332175658644574650283904580932277139355947351915127327654164764940797693767721925278983024244279207652765705500184290179230021718843906370199289179343703931710123885936922965177577696466119964294862238281631058094153428743575428911879399016108892676937169751174710496098019584156772210808099597166733652910575065336900023323775576971762311057210341688392224579716339358538624940440589296776122029495237032550632925780893243557208575022346025655519938912486460197282756544616209196994864591313014038908299281059024509731811147330394519880214306200708327376473766164088934940105117873815456459547211780925193135591654655123239968443348440631112558183623654606744035915369746031662591571828820796925146431942251340151505973760196836410965342714109517008847215981480978005486390649959288482540761139733453132813778002192824506760496567711322412150506862508672240252799793370803456325112282346342832035639253382650244923368138643752141891603932910168113794904455435820728134746844572391080110126904860042909580274675811335136673095750591912842558709266437338415842930275505167474259094401020018153027085009643702190538188758762283569839892986109885618099256828205813816068328323292539362528330351929615719751838938798827400216057971759477873766816376211925631394989498947143193937976774787395214499731881487274751981277791267588389757435491271103077717459630676889215305331277944013313258676097538633410705156147343685768339006662235362007239012214654036127792100384391743925669703544462890370819568493949444912909306934853266874462638445468989277161591209791181318702068629204714057496837249206711134885718654155530471067874015720332509862565469445314995342318185163907172124481094515843782531669159504959730996328219657590583807583799540648872498978866620457774177571380016032321101924221339362472650053344355253597662338190478565105600225926689317919192814137540657973848646602119887329419377401829647534190173438353383011232641733333349043470051978252445438389423999895533954220178397836870664713140591877656884825304740946354203774156255285910523100944945557064535884701257114061444914436517912414398368104023504078642285513775884097360863975877643637691641302661205253057013381789064223180827468118106746540479361071696659882710345488434292036349757338281489714331888580268166136949915713511943721434321421808680890815096738140406248039131059578498601777071973239351021070361950300826265009875132052879333299774702346023243118730899764030763911163605087282675994069640293265982267509562278816455819973963050877256760648498182323973138011708204354209700854504956157390256199763262350735097257788805205538105615650733176509176027656859655380204985534285493498327247526751654884315515158034930585586674335509586762037666349980116022293300916633380404932656208208167330845319022872752325183632510361280498587416360629248263899222751335506059910758974163815600274820023593723287643041472712408407420487370312747852105614185443153261851742710955309017686464211089760392730081358050190459135897156651722333061119743709655728889292544838754363151594164698828435046562794665289916885247713216424611567318333187708020425588912315448587738837598824918823693786548023059372037028069940788421906242437660649180088272489440121900160712346983515544507610417043301478005006181762824370220979685605096628538472670709676761800134028467792142331517641945186137891570738559724499618507727163512505449499023672036187487271840822469871888200282025734884359500843858428367409860250989874024827231446004754376356155151465073637813281743519352043981923631443062549940658258687631191672208675717219567709525023449940369739438235066467521445928091753453023847124857186638157229875258457501167888444698871769016313706532614341859991686636344833142670913792078460577270494195388855636028276066046014099928468946572592846098372361177013945900252524950485890276416506336143665334738749188646025259818795896243036805943794166379120395148750332737314194311194480894595231959186631133709701131088622910577943625620569051358239231192771554555161368438612530971458851963979487149038010042205115823327042429050752249552069962358860814772229193598083173122690124431508854334378555873947716739166319011963205164432672798671300563143391526961994269742773036461191602944796115199611911574413213262578680927451586998515151579549312939424494263125539336682017882644454568066431691780119532976228764722531833463214074679211542251401102876200871791202943140072592608362313351973657414589455621245976726163613874225322448769868857167573179401651229637162639866176731080858306257091177443127309910933701448593164543057431493367471510871356356654503197336576226114498673083923269248160065566634344566479810351658017343094202498046062193952304990212958898337453704853269682023895012727234502091134006895637044187244329418524721997966139236781399529602917728444356449712998596558207273343971399232166095729727123226667792360683697221001844285402334661653771315067604905935930045882108784982604003667736956857190867377084346572107870630899250960810684217572897878810489919624909509036274946343310019655555169967742375973669385495733954260714253143567350085218897692687079101716660821570354394740376277117428011891545632329755292163588787865115033572027685666620699639059552630126036888712210798092411249475561802672128910269668322989965120098256662194351987613331953675566711667818598567196707635867757648652601831435897300433307222226463342653660119369846393837509822140622567122168736228992859159288462077749035254310636533410422453268371486870948092575760030053925418978338148104923386664523760722924771249912356556493711864739680676139495770279058774381236371739136656931880966853432585204143134746821227047255969809090213813566411787318174127578502175057632285016085701714398908033507249576614227745942720706407298830923141457632569670121503130528236503948296334430080351288917229840942828554720390654870607733232786284414717619368771537595552337748887303543818593496258737008427195094307050299872595590979522026701346260594775798165331816335124004391450438411837035810807300706932721818978765656076207835682209501568291391724519799681665464255767500552098041134919768238092247944203284781172263698904443629849590787713439463674110685650667025993159543556446807361987348868026892566078133222566606693526149870265066888679696114557011136486182364090119249551165510801096172624823495748523062015801596418655033176605735433232609712681421294345150868871074547889121295410611192065822762058513676255133224822893789805262943415627166810892965762479981145840677313948946968651191295163173437342010349511577450104032918164199053572438339938655696951201486148268909037200591645670104418673080309897904921675970853244423687272649648225913114335760649281558344069978076642743141005895806709644986699021079454211216608764739503945502164783690085322963247102303476693372675078361120704406218145862840449916878910719915373933838942414316387788776439706351756878235387422894072413067440457968849321403370788276251920689714870608011454709420381249032494730364222625920036658936158201323920406999756171470966393470072532180862412256814897776511605221802495796052128599521281700862515551824189973861138116102311868386921931337727948790590550713225958607175184317993737981264683464769172068459182548666044997198689627859634871189974123796911687645515524507160782164657859261884058219217549961861174194859196626005638075742251139314844553918072939251611709292219180396282907988657277903887203318863637913723213647004103814054209423893570516110909407373017819084640942441394108681513026078154696729820706842814892209688975650720878163054624993316633427515105178209427653263898631713227864856265168388909253280710771755505859911265753463368078630410308789320976738533108729515985927486061255616961618445564394240196693182937499133657375832193992794505585298155563762117211587278261229970194883468338423052196697325581275284803378617457279675029071808888493412705103678003716120555740691409365355082926932350163888287161142228138071982037887072726371969825471099915147429814604652457436819602051411978265465151262328933721612235231729237406600156519561899409346500441247076100874655800634457460058026300115742886198455539031454790824865369676091651273233304830251635112383330477225162778859072892546646809911078202652578789542640055735705658687039042938077244094988593050864482317876877651910149951000418752309063342639033134408453854862527634612877399129216624288330695639042336345457755134171239594631811066625886502982923124203951175739475033393924036177977157628730174771805106113992517447944735063980180572612773322015549789844635388399136668488720158523568609169378279032601361740934917747820702013161168698344116559339345835118383926461174049189747426375185859748528386071254095343662012510669525722974592927505437724856383945550481722110461928379308241985006212039716088339938670116590923634870782597985638530985734688317386889414414583888025105884345470732410823254889481194237107887025573139052363584790895250616725769122695689649001105874620021062318786496171167606211063002443331847305866449617656558784496118836610736994933714916234343538500815995030879615432703105720139538695512765365894006981903324845430188749183420783240762963446307101197073478166172885001190159014055131014766337310507814924624430901204887575959019063703503970397416435779073624452328093699958907680121597783939611084385245205762464733151014469979445082185398595769875448013932135014498618798008235232354804772404615377400479422828521012965572990989726081542465353822247183847985907509777482753637346125120913558798220126986194994691662968071873515692338651447897254353874298903869863840499086205923868718100264873572431069992114227857780872887042359539552025572309776056734120859940353271403133582749315037006768174964701032707448372561796451278825952354924578033800939233258055670948579884968864235433625977682177384609898905080310198044004072757789390516592535099514711400579487966638239936270226621715093967544700788934412889698418122344387811558298311424251474555494025209637059824736601538861798571604863855980024365818822127549138572635502741616826578598858870547821898318194504809260534410663320983636472956771183764666110756947791524176057428259495372349307990168735885083092132609607023609566388805890788380392717381126992815487057580041053356265120564996492119124516374940012282438834774098593225124529652123137264224445236052707871479968964309043700097531492903019194110075277819923966928362788956814902605030270728068921791838404091939888920289332136928316012813251541081065990562427796534299972212912779367499583932250285156802828389760028046665170454467752868252627794821063949156643079978606923700296009222903633110147491001815494373873129386172747922813804450766807233167709603532619030484701496232393199469383478745898679757356535285588283275563699990005350770427264013780359947802919067012135123363611347209412132139785105679704447417113287907571708008051534036231704937770202618747418140356122532580015957774404459301607814618224911527564699979994248777356197219585066538328915588175844526343175050916394395966253136607093671586407870469513234022914848729614889971808847950507144799880104976509299996613959707530593942889012602595124800526637376605526519489126556015042144398344899060508104293612123249358289893535037952916586014251774892772925974815697223363280795043912600552891241685376464919467496350672080164799161093679294636262198580254107576947330088082030681924967622011023641359595235291594414531685015643196861636841064097329175401372344989151704662255675910631759608379419134432383376742422179969923547233835657606776015929960939635454603823543367685102070340739473313045868673744030335019821545690010059986412554587960157829986226906527297590174607509215424607900440029097618946697487099236564380169723724830637407724107427148881012108290209935889187349779353492132468597545365267890853624058889254122905104748934377557421843515236649786048050495596636223745943149789733013479934349286275778792458324232117801898626649939556219325269229734033654742919946365607319429141385777756759306769211958312982597430729647859652692384013832032357760756221261305712799188765141624205124206723408988738091451316479814770786551241371836373921056706511525387938709695746817994051872436043049328929503867326277227120659670121321881588468234149249870005574052341012186826439023917714119820255742840074569254404997049592849342666076671616071350029684686233243433304607167184972774892166359036088860269152613509933617689972555926922727019021350219686632501861315891458150506090783498861763504252648405371982131319047531712534541444939194594455950577157723036612015031071714122464920122774464715940291511412718681559915278876054239067387179462067573289701258995501055417228412288304186036983139463399644282403595411736707641689109052553540535414544638043183973084482982520846121577468069639346440394918653183919222171872258583929924107359690681422098148091161514901795728232183260509964969343454269016410601590031781442494655720439463118351395158791228218399980178059759817403199234541971511550282418905683666323190667096320659983828303748196140159718066110767578791200549013821393204387076101553311175936553065186222062419898337720903190912926516348345321871925374594565235353135818773384881894339310340801760117302674867135338210244148593445851951471385636064329000904822771307514613006816414369275253891661778918724332149581237214200641472669562257330327331779798026470931654485198619425636230113536466005714241655449505025598589762293314818301174124295226249807469371155965046082871657292400274534951004335003055688174819015183835846771165582223986605809629735632405224531965316406078645191542362958780787711581035362365658306035507585982004372218697777496576057347790496977764943642069574738272050727206087259584874200466509609022466230203560786548300051149012097378173686878570233207802404014850540148495999960360112559959639360199175763023430095709101943911525063385020489961485883480757577773723379861529587308682028038415084472847880071512631600633676086725051631574071523196645997658784635251351245382550329038105372074276445069301869266870227022149848763140726202576046368514690449928403264982248786916319486669089305866242607242978118591969495021957268407029575746038690027637039980053670985578421543986843645992920320968217188899444176774717342482798519011406686745589995877864880483247293334429709129119133272368354792561764667265993576681698546819744714841957973556765586613464362903816369658289669828306677590856632348554400276324419435047899563139982733127004991941047112960986550660074086772383092967031917738973202285955875292341695246640649391528275542751547808900558674481179787904808414210481245008083714039424424062783026254687882227759910976854934475142199307425460514684648971032301402070144216955307016361032289631921071986548155705527693181918896220745356064194714092965578844771785592263084472650014043448808334051189254170063348611147238592588334387756075896201130632812447533785609736691454578105997283475867009014280441128213173742943599099251092164366443280171950814842142905018365090952225328748090786680558112675908678474446037440346703746236657960198566745809881411377640224160461355556481326549323339115110991849447559592593838912500302257843726739610486071178725898952257039601787798647842358636046689032958925841949479079735442624986570753953514212883273625382277380485057419122533315858892181660726500233038705852201555916871860511982857507528819191836436707026559286537455673374828795485927757496952808371906514835875506511907519256638349705710543012364176898099743319614699726237889256455743146898192566766584076077696807183199680184138892688537340489420818718228565724069861488377336742142190072475464719184526427694136478434613240641726839426865384831914262043614008207139743215071485629327834734506821433457143375646845199492783367161270817315378571526216806689698892043092068224893242207102613205806063699746080412366671387210386202601525284893779545472038864927699905145467367407423814283508757649438104166837814063960759900536537558758600195821945045739882276497367367610006829448759608930324141620738482045604640632422997366451041088919835945119362803682689153185389289875095105414341208039650861264857473772619220553307530159999689470374221456348116198608756977085467210909043184154616308002665576221075547515974280140086445980393467182034592477002977082810940119936092559915348871664555346523123913388754981945375354046774235660847550916671374304059943590451331357851783346967263881089022750987934286577727110088755825600138272675860371205846009168475560731776190443889158158224006556489814978095175623407772149905868257602856374987138138003420986098550357778985418720489110015534105312947813701590576663252722907762810807062774589070585638806839978205194619042952508751676430405845994951361415560628046792645748785763471834709390923072916314674261317193817492662248857017164947179920894835830515425703561971000001898329816122848763948268531750223176296121856217206596857016788005621428865997771774705718211908373383419568085056888884753381268247988208761747168503271727909343593112625233311001272409036140038701339979804992038591013624499742987138943222196653900733269497256532211105183788091552240230765840998597985821064204684540602876426070598234158731858381722664922231226239200132566908528094213725261960401877687847331729090144839800010277064485902670125489721815776073659540909170750283150811590869184472791173804221635636586869887818619270650340298338019708407605010635957416214340306737276629822099078309392138840499863411538189614955794753285897298855195502112102201727849840889046455590347714531042790552694870507256301870503815598218916335454979577146095944371158990947658404374308092114952868270486134837598699104959428785015691068886657401479790359388324202822930799013396963453300748533700581422183552116778277295049750475893274931230552949065613022163613937591145843361662076649146203282862194102689482627649375287797309663212213789526034798373593582459620803840620226010666872444296201799206348600002930479056273466378714313996498445959621264096405510319117126448363810602602632507728780081340604533671594798270236734640242899999998414267344764639440539374570921667021778212779187148433314861588062106298545492959716855314954987821740416080569661886817931456561431059674058636057951682905118358725126434764042085283735204701884691373546777087305232283244057024009199634793774489959085842167460781091075452848569631540045421288721186441868298984499891414298450049887393406212178799467567584381840061094038082021195394574543999625602955010533822548306831625012606295518986516900045955495278575076758786291735528255599068270733400795977382913930776316246767025592642548993920928040032426516732735563276551760173512306052797971301707483101314110389235831140216398785444709170522772083946725049748697841927654232918587053054625292723715486902807734839028711426466547450970216766735179166570062885566628175218007224785671203130030300297989082835767343257698301533189980546136670158544736237916382753742446281578628192479729402561824037465626142295240230314776086189624146561442098222708965976698565040646085489750427338345113650006737262189464825148899930900564439100692750856785941155105919434063209772495261255512065392118040633447384109141933600328755446113164781996217026819228966520248337263252510671329813487832543681416334757052886667427216739213998102791138492703329055354191592978655738771319844015774059039445257879429030666047428063516060051828689954172066475559176500359195699926579855318807185471270255089513651646437416265611831414946509274408410164510892375193998443842623237961348360393720310058338887623184441033742961873475637438714822267335337443598586239666973459322923880910623523354091660242572640463062805253474295981590184268484797110213648514769938221050728866565241411642624917755098062029674800380332491782526361441183169227980089835502790416357950575119291806062422847105042401426494561076870515282752723083928413227827420846640241151102135820800359736199421132157943083523472460004151472453140916977752326527864765734241392659455366636425305195456960505633998965647528073899406223862901280741522120786380762964837288529887597848122594785787766772359694745475471608291433923318617974036604565982198521622533766353414260397970582182830675394754219967904736764595398789786235033227680115620359797482400809827711030816779908231987157750617368661059901962855758772620458434162137131956269587186128028056099369591326814275618065683446631779151660879849493591574420994686456871883582444001133515368450779068424292026353553539631740128958423073480537889674516116612336501310060496895665112409738357236511787472426104845302315325799907107649801020071147000228915082559762973798596800917857070944166039168197144554861005562774858608327718764935128271957835721267681146347579981494941646118356360660103566045219665776255115308880367535387272492220686150626165399709491210779048182654058129890649991560041358046833965316989821772682974037100297273669135878202508299761718145130076158415855439533502115410184738471127087116108557782709936090655893218682125887979998102068071578077541056797684461868041777215312319889560896389374751028864735166747758195432640801479449134977810204888406117741440340388802041392331670384804905542407958315330896095629298656688565716102231021307364063521256436134467562211823577983658006090844949843024541466226726594375900980460419632193532071380187363536880666466459664657977551512852857534867387548850312978942916753800500515993446746800969855611213037455623158015252982445556452844498369448952417135535344034703002996067737943857599865015080243882032282268581747396914187372495002280152594508421166104090064886190724751069949625091789053627680733525608539161658675718440496330287307682583537204362570092748937940047436997421554272351940016743678100161170049216044377005242081926238296903834059688181252589482824721218845598815856658770102949556465944376122092103044499866439621357815315106888353548579754439854637539529609037261983188464734938939397838022588711515786634123890014375867769884409495028067499461917795592334663165601958437948497062688261874553488293933777175122817059178597967682009493794900935730430634364997852823704188029014769605285578068364907860346049246979785263540973924918643923099651878942069201355446065998224658285326111584266382331770232954015911030070348892493344770783421431043036049770458384391618622488307847062574919635873609295757369620080181002133181116294492754271183986703684271092436816005085661399053968449182957946055006629519673656302436513436400926249564773182469109929785562199808694890182345008176923136393079588467057472872659818329643068680540142003369066081252786300450075132117184096135460712079596012383641553702168852580800362233509491061863763754558639590326451873311727294327370761012760333331034510797245227662897554078771930149299909659985427137354075371528954663651276835804216092591161017477854238770767545328721124007648392657504835701741147486362959706883532827081306375222977785677129233093908016068609214288157627774427404615595382870736803889128960695210704558613577439676607880260357600797132635916610063343362262371654337396935884106735890440840063867273181590914957782866904581490697093863549549629905031724095598158552364596751323179841775226903442984124895744420545633726850300061734001745941932512026399151505982614453346971261626190897689334055217655512591771679396595667871017984179135123073458510665312778255936262646444877140547202255984861451829823905955787389615588807001865683067738815719425950901991248494014273978800172836641616632915979680813388129460938968951849224830541354769760181790045481483701362251844721328547048015100607488831928022892865287365821032464126545566842472422906744128943913818141089816078989364934788678893286977436427265195086787655425836605467582442464370262220084345750591673920751469199251694728789176237207658949850161611173731870981712005713671447363853514460239214393657222919858134601013146917472519243993412973288061616139915793552930237569743097802968370534815340565741691797250653096227935055497166697335033672085404228140652568153943887741260922238043485112247835275330667510383835567813880849707617125136606375372748306704174962027343268051765683109165409363698020458938210758360055992636285248138798407879425599329042556115850494325527991149413980494185673875682783341585223775828792284730124653790364515985161574317701104307831413714754866573416769952596238136240142248290101443050044017102167300221617174312535558016160458126761462017925729413359020117410860180337625530412288960351719881930245377081483698768059398283499698536970084992775709740826713601684853084255633036879069278433047417424194528943492124943568171004157021684933067016218548369433108586899198636271864902534887538695075122147464534733393100664554592213013483064077044934258615934653732648632645685958329266452393565930035424070649346499709917615109706289942535598435981835695951237067936665868324350539074982710369965713240834712725703465646983343059629039180200854083374128757630591455621577829099179295068330085635134363366224454362892021315209475811824790679259000858197687718965086986085255410749161065542872770095610737553402998884960819106166519774042461476632374851184782491091886996671767657978712390247485087195030737842676825810443126886260327805383354483936389039424354958487032122436126986632481388951212802567705262848408490533303525687438558420922815501727017106804981083034781868307092434944492093427814816447683292434625552702103306044361263302886469398034731769173042215852110283214838903195852265508883097239352140774591392185166767376945998143249218570599619333422681011155738611053460172446756209068429257188691093441264594981753292189432710561202166544222233215328377624573513091149992594670114925779786546318280406759303926969978442881193228882760462303316680384911259706338942078545675875222518170595929416877839313198353829091750015304279191053424119345389136919256320766501482974348652360336998684026511071510625304895493632974186167257461835073708742109954362983376129949765843619168214433487277129680655255426195877225426310679314477064171797101310402498162097953849619118553963790489475755332934147433674687897141965746392621458702834718537879509232621681433164028024023669914666608447771398215534785839280592232207127781815117177747557495983125743417471652555032217957653155704491680385253805734367078556087392637262940155320140444196315533805202083103313770886602280324130978216837073808076360977747454421253401115205639615709812151144852052788608657462852948109414024051599942491946296193328363942513896071325807738297489627693922814084890681012166817754108895086284444888201974239423028018886571680623602200259353445778390952628097027829391592633623392406015332406049703723003752218446850719654864046815746412692764924971597209925339188721181031665398852088755671295210629319380165387377440727306100136850997463455208109369745567601386188418822234236224099360437276595777960841589855385390758843190861981961945195614976404368595129128599080095686217716186984938428693833252742600792589208803357448148992433526580660880603550595754930344150907782867416200285983320722528835669642761338062561464414817561219880225684789685529138029470695613513951770158663066128048497323051419607319713954240817219354795222890052690279481758437821622078764657181649851530290580355098136657494649896444747378052984224456751318111267357527016042483348863466625413443155583130316743372807724161518573638677907547351533745345836652666218196738077971495154413368346265759820037600827718237790760624372611073829960063792550201027779623502197381442638528499185516190301940739120978609902002076446164881891864898987263282424812668669242413297241968512257775818208822355970357938502053543865974859121192973928031483771913633671232225804767638643562392768310261345603913895126056207611323416550167465236573134676159163500106838080418675659367658173862238617983856700590498281644474421798393484673280069260847869039578806110241706673106710678748991931198371661463719731032250714942197975899231269586424994571909891390232672856561201223528576164436917440347274874938963876542436527885078930388372586405866335267835766565247324850126365470330297198448805476537436619968822516851360462906485705946102102249657391719805011551245324415087622695950627407995074596575727680821862998624967457040998512504539628070296294182744548795867331893916263426470661520239443617038970052519748112983387020227932358666925693688864905898832748212215768942988562098815569755343830670369996242615366732558560272328591271892983966951395247105166700241317626299040377551134212402559778312783134864630593911325818394471514512583882766375586691294179960517585544485415324138222365552409507978443793251774808771516285920298899678798944125255182575230339249484279831526126633676083174752294036716376148792107647677582946554659773970903050869117977216393721745120540607530338899382581679331796554526742203086772246564000045542627650085678355703628259469481908428418322865858808250304371840917086552930645096577317399934971679122984434468500556983002137206291515532407051172873444953451074722589607920308327683559831884794334994213168093595403459011623704585018952988146065726527827229328806287515746387790328811707505178716184448087342946950039461527400108071934924201588395927558879459802467902011267721359061368716721993599433055239463764196137079401882252055327250446270323665127703935978763109523326485907045104883386600338615186853831521072306740435197036231964956979002952629492159693091789172002575474604899194935426788742609296872031873776496515462603553774841747370188896006496510733245181713207798069369201259149521128602821191629912623968653609298382321199687636205098908546077326230186356299997483120502957886020922926883164691340149086566889403798085501420055790497864521736257196990210210249825155646680741148388333383609358406270792657623422047427696997783756823068936319034854345015391310919173618245978860105829800302209399457432020609410321070808710777711847163288855081371980804215509647649853753104984060991602373341567778847705909912206671317555774438885887469261370748251023080894316553382972887563076290073064676271155413628797065412429255979300300238179697952014618024222236580282470432596584420935980040238661392796215019195803325165166502010770406379860267819785704892117250305421572158292791275462207765240975996734124327147707456643005526679549032163324808620001964489707264559145379880568238265179763640927440507333363990241450150056975767974603083223464742912274915024662177703959781336200232057432371499079006927428844646905157874697907159486005240031257548370781333740435082188744178871101626728027707085188714872154408246133667008869842672171217910786743048087498910234405253615308320822122482264539507434844133520960851796673514972121110694316598613553914464105066805057680834196099598033606586434585878411197476190953259375206609297891885357358065452656406570406617648611324608156090409062706392465665148005845551998531264341184087224608090065048532808394808225302991379484854216051275272933532424954853510032059090164939321501865741715766912617556819248443864403776780656294747363163110439340832041504432001428240273276160725188453785764996953367792785441059262657617242809539268834666975771581808152772160101144917733068515978713423841162305720155347728453178845115072186245429909215619946087750119324043352038443782981444917270846703407134849908569543673405396975294510347225727353329178382468337046043455509380932711747343712597603988106363967305484372677124233385518762126123577305361432405278407581377601347722437236733320838613007197507162128011469741200968771541188382684004328538679387203588878048423723266782245771504300408669370731996126485768255279737972020191274210398129730117046135709808479351445806423801356076341238994792183276291176495725710072781895587875369802344967223625375434721532776927417744903574638565649726172343776047720918345572287058813000598670300837844361959042870548877746019419240208476240363235328004760729103554066456441172699251417953235735059079958179407505576074648460335151694361186750372721897502359128726810680348697845019617441759571199999774156701931727138698641812550949694431946924872724911835680338942099208613820164543561118538318143551657910910585238156991376503791261287401868983582013459601119571291070449159741060533094526869727446624511878861580080678807801346482401526417542562183011467701965969577363622325850716932687931390121072280443640743236348368276027114460177567725214634972196329193965314712332622966687168780999061507493145491858512526617517062875375120621494169068543075199767789854363518956822978102498834473884467042272425010208264835024386574865690583073325048742300524467144594009042217174691383971744612887040689498052077472291845686496496243882001870977578536146280129723117145674030586419888859629886605173269325086068356858364146208084105306051899877726196283282850090803317657559665202514234648771041133926580406681931858574675761148311576748992797818113599654539054405169391213126682064380703420207164654017884541251581388747100827442910063216250387156718519346103200265833471685014993003433583643330480359739640230905676402918553723884330860658128317979809828380185860930894532016011211288495353166307775724913952406724838500828827004465217538453903811279744684299848793475415944309366019579770665546464796584049752422297594492572626754131575384856157659431227467346343071147224185468761741448624192131760804963219127440407043453393664674038450563510834450125167878378998387543199392981831614214603692477357551735044230609837489948349296399523853307730065614158610745246677302299624760058168039790953751017043426069402936361640218495971161002372502140388654759151599755625437215543881449567738119157507452747623835182406496645114320350513468283853949487736168195063981704776377771901366327656916316410428560632427038715535013415883811166602321176942176077873581907222945401924776192257451382778864800324382030960561762278630423859610296465155197492290632694155082417391306306534318782579283731136078988720091737894895671936296131397622576068625296829593631055014979109023032954082871851560272142510353219262680030257020515396603174213520218709644223268797937468279934263643876617475670564841942480250391072285540066813623045894762268153858608420368958173476418524766694661613153368588977433671530869141699703379026678907932663487077972334064818652918042947890997469519283942159525804729502209612797915637067734996500564216108244005368721904779600780705178797076236682874731685370736754812597140103119039890757586333740125723629479619606115026895079871750034296504898887514248850907616040806038301888620316078959678524195493221342841157567214087136314176923913594277706211108205064488479418229557338738265910826638539473471937053419229939200282449200316601161862470221410003039012102574837983299424045835342772232442788495389980963256568266852351672740609264748741706330461308925962154453327759031966216039171500646327315913003962717971906313980367239919835242236093721227441281531221420682200368813874789234906543268703309942246330836677586906082730743310740408188690795966200651639067150451065310418677939218132714397158006040226849614221285870555870320629540215347917097521349510001696738362677959560903835947070359471085150583758047286975810004776285305808986842159394212184797316663092628127802234680748258989430187544358945545055337847915530400315216836128168089685504013981608249252546408185485317429511878401441608397067463369203528779239392124400460149493271796617947093628506980755393955996904111729849871861912768836493100521528071266474527649486584126860003487433834362203573681087649433723888633899909552700372292269742533368732631341929206564927465678119569981458244428505625807664583716793012791983978820431724702040945705132583845500770722555194320797366314379769083520960217035093038199864929005225303859632006910031638688764044771412671935845364275709413370813478609617848604407545011898418252135905167535962258467121545876108146974153872523660610943553803305823107243899263263993551743446526758094619735291917480021621982098179514681780888425909432879846399975457180642083183575348542664745231720003752140537837702692146300322050156190303922063636535968692768050736322647178147351868824905282042467732290253348732432411295954948161300267207396152917000162173649703219073394702676252105098052931521905573410450903588316548437509411951429588283542541564746803320716031974057656110881820510835488314837313683000503069234812469003460453511442776950735138878614682552305500668966678685845802869883529963302548626225127762898423236995965235562505267220447938783068124870126769871415283122502748746825237839240712230346821434270518760462717599574966699105309960804515160860615298719342360528613480348907277812176382481692951318247131138908537798678747193415855135362650023929175710161999898720437119325333861684004734064627966023346792217236562122203341925326672597776564259822327305818024686651043018692751815993796863022357403396213420082071359229639863007178221884348392986563663092448444245056463759475989200057139052928760074562225308976533439504977317493726485529058512294010644912489150990543643366805368038468840624905040169570110760123188984113789437314416552763474385719901992740643590148172708000498164919479974365856818704962896857153858717727376228379821320012601595798038509323588068014158440858856340104597623339695585793531114153741867627705712363311812432970108383944216680788777544313892347748419939030247436377221662087858886863178331853203600377747453492777891939687887859584429727960528025325512592856606864792282322194016935688947705803272917951549647538627918667669973900051339389320440720594823676948517705010165939955909277133403920214252284057620219719423572349460301614369333323285843107301406790483376268683828283353819663795029130522581715399551863790691439145786872818283624305146984903599318811863447141707171362866394998011680815223675507862687851360132819525433011967183668738644624598868433075116032089087378176374048442485468287174239007863442180942450307579008067816784187999671196147874586620408390285927863427839222673811679859609259407903930630808636312553329984411139021918983015258866821695154500144601593689640389081662101265881879067739026630744107924318516889124744898732386477747334351280610574037551509647506138517097262497052119961911500467960666206643029559546800593844058338483285620445827649030112275444224729944224180868598645314934026080861431787811642432716646957266361283597679933955698934378678076940142059924034764073074003991901559943602361486263018604011373611335790364310544888358755078730457943588408236484934933468226070050705293335989712882146687136617603722027983587038182778207823800342753503935215927633352380068543807332330988005736993271512673090677724684330840278018294819548548811567881890177810253451996886277987989344135166510766996857730455551548702476791934719591249458336478250458380920109083705342864854137390390089423555331417994823497161860110073993280603617216002086065686790032214625609138006227358755459803213246361462196407089618872180680938047267411803108827924916761540975633186600432871030437903585078747756504927772773291870355001564076132281284223127117694600557074086504870081582499111458088743158120049896876209868495696004817626282252909912682459216871199352637661760591723159446657965535405042433409631559361656466964371981142434565193954818591032012244846778505222223498486535835493004457672087792634048422397859891183076662787736084135912157844554586006673889978981189142123187301525363012251941577476345173027698712017185333379311965873632721798725267342627050217296711707825435075176945619287186702168585462854211453843778632870067429631907231977442814064728087277178187639995424943033597247275101002538591190894740171865416355511735499400532097823542338367081149265572124855582097403731372276730774092826729249491686192145845059053782081596154337346959636151411111214238944845512911233296479564009533010850297969019022948067126287827611639095681827359311104249962970219678025292975008339016730964837586418699283226243327712127942049618358546843961276631383992621955404932865128416062558223035257382988465093847919923021146500947274101924516267636716318638231492413331714871986982353404150596338208607697651884244105749178858786644640575115983588286034344494403266726637197179481516085196872098480448022257196322009234509873133632111661547644566817636504705556427501663253107735052066721260084035283168034575304630429091178915687589450245028550364805647035149144153502310205728997248641054151388429835531844368430231932003365491385078440095363685246493970266550474615308259184718499243959748429128789592815775909905728590299300138324692501862842013561316110257637436670984541077699341615119121500923617234979823832511759255258522989088855217262127321591247056448761412693711789748004782168459817472784109682749825526883674418976362075007344639510828825482496300738992487055613164560447257268676233217331023498223532555052250365261724576940260717816712687529421494612889267746640572200091446221847994048149505492458342736257593723920761382497540706684385746392102510424001076855151310972203137498508376482507570880937258773593880580088783918469288198353471187014590385856976201518812585881540025965563298637676455024250352245516197008319830294124261212051611310394385531694556987079525474076411456216734840229952415841882907831228614063639196577921897125343998949910502137398102999063860862744130622382423677768332989408249945762814182557702852854506288096059108936326383287376243178187341846225432415867340065110312570300188408279659265175815460708695242558043063228013807666083661793422191677609379134109875427017272496303451975399710443026668368977687077688510669166611167902585832747633893871859392725451410959691772806553400103770631778478367930395178948795330384147584926226257343370846535310102606320780536331160291176221677346031886236079821225099144279059327457186001767678166461141489742493584742655324334625008246609993507402619279675445327345598922761279466214202599045502383200358916294667762198824600227359326963415253297760950061356936063001629822099406835118683052166953354755880991097313535484250781393882826977788190932659443997940595293867225993818001435458244940223019027178649179613661302570158803140703253612721835733609623749345110847770197827987617890325295284850780920595663060434693305731709066069026449987722824810908858023582198670634552867819479558981989475288288963027376512237346904245278365565643690827390200167589663457695236700739663033793851732689946974117455431462901104481283757777940754381736347790743196514453427213401568983114599507908094094750612319760690307236812812209146977423317345401249337332857612967082057785480944540437630565924584576647821653718155456013486107874072422237892707968168082046000996435362933580545261282477957898125433669173249620675250013594427009310485404608302268843542815423408448790069199595655760043761465662346001402185343173220017992219327773721212383973956115179782351948771330594993953342465597883727235338475946199463196589331601140395685110777110040160939593884695910232908145848985355733146991270462003537116231806622784320099759411878124151389947775073412405552934026678466466314860859579712463670163611686273981057681735083781142893907588229074866357150381491644877888740381307408533510833456955777744873325669413980296757130505307520819772075235788297240811660146843188109474843495840356989235966094667970869591868257200326556585922003391825413202099417903065664641702549074606620410243539368178525174668010674606080974647910850170450213838681012761363598250633968900838108618205094877471261699215435210635241195412964623183241753587061953037281660643243509221477842038780278504759251978279635609148150099343959160738902903477324605933814531929554585741904746180772536921872491338113706807581940306317486469960337497264226596091035656277727115726534832419908792148043295830330755355417161366201941483116673869680135835241172151943426926856495858419427090273437866688874209197944969301779133620914787789089843188791349898671202934332035696478919730635245053609805687702611059341279447432073593274249336691790297773870171994420002158570652299872964133600891272244401288754674277806823867193371028608891080224469977381488284372590570742739240087182274460099502608811399868575375503464654474282126144321511848162347301833804230556083361981640926829242882272111839284558488952963041473656625723342917164235245231981286604613218827944316984968829997263853776433016314536325523547494410113114390090464977777205664472103321291134677159540935548627488740009165711304767677760251271779884546799084991377340094793333198125680237611777663223412535866623181141144874213470666542491897560803477600460851640124176871410429013317855874982309712088123295325104190792282121247388043916442784739762599720138712683336405282866167952121561146938050851137739490968160947606816272996051133436000793980986371693324853556285051498185962665149705610679782136030856991908668861193973396646756701641098400031439831481691685851547213882257005097063171201400004007272444319505104935801382459818370529978585398765983348957222743303432367845497625910438896011165474556403220140525850204410371824222595695657148316174690402324754786908971181908403940227361756583615236606075464783852028659202159460933044573832908727087336625864804012932416220057904924920454112394492657853047707000668923780961695110601217509862493916862836182995826296398470782184321950810013581054689566317141982863050519755590020448750231987537229338260977069957823332534627686986463005065310814712159368168234184040844618839463721726636921863125353360314601723004234362185398136596756728902491277054960567018707750954733133765166805169895313891922669727123093806178873368446024608424603463313461628177811422565610461434847831253316176001469501007728120099392017994817472211112076062878888785845902749746565826835894164790057483139139006862317970982987368007864688297961912479989395979613635534143758738695844715674009671882755858501984397877696005203693246966565779856876611247814799864150693972699688423936583786657972330877949049424892543419747881527943206953230661448232319018981871414398761790770194576881736861442931971430951670561530857931595346612706836573189131765031359960552855348794428672327794891797084386082622072750191675592086828088284409751230895291667767270265538568372338721044921144038993823182895747437905782735029384616512238556907709166423369861826457124573519145209379500155788410476628307086942295508904969265122310828783776020666777586768613835261435125607559939507984907024212695215083432446237859725357914995125156379128329999124791392740618072535193748608058823478516632716378452246512920963390009378828098028450803379314499343901818554962451528374367412626613948805106153710709634681403695837000860484404949143427028622349858412789120011769731728629172596654560245747857116166295621472328724915666338005604456352387191530641191304693428280617081714100317521932401117498578351051078163228290517126067678186387676770448433332190354378827906537507335141761960488982801173632277055199592482413184856225580776147153862598098204725977473551239144779140630780955562203312167019226694565336658354356563921679626381955515549209082829302574478639419867886937873442724463028252204446197261270551006307856563144641452185180193591268369974459067401812873852596467720924181083784336613356346831340956239964059653534728423499176399401369891444021544091454795732400964302084868967561603887898439943440813003713081726252948659781295938140873876593431068336895540466900328231692731689997567429494419206111005488757288951865590656637594749763830881458616208797855676086844368230347407392374257971454193852930783686143762447727705349108436613494708555826212857253590349867320307170254062949771257668775406084666543560510106335664038179243736888885899522926193507864240249916661672684850697337052161873777156890706793637679248902554890316520973652948566102869566411213475390603829399967424089407853448693818532690308868618306141081599570122637243358265570769557522037044068863575227067481672793985198084543850833189122682549505923522478008146177435001226827742863680156301712174296848695613490872506567991116782452359454388499987080055901904879498752094306644326073909786657440052043759828420289246470022073722981925108917423169649114610565687216127137336101718858688846970816216622564386984991639170857814725755116206169970112141838838116819847998244475587519076049981841322165380229391324974122076223202880196332627089348385168254034538519628693508122657517506303675448993375128567675662876463523685158410462234690099749816905930821994800771836918381147527865058141517776916959617129442269986259571529323947191751717473833621544213580392822440182717083923387952502489959745299295307537195629723558163342658203529638020327821704118297478555405333933786388699998904872124266279083077573810544558004599581228039735978144800403125877191399777727614849441919120005242526209486787934723490296253766973619411623811223524466595145887881909536840241686780427353022879837648601554165903390346499600543363637284374588716935441955582940672090820175713651184145997827187007025215409823329045148111203549903871554480731600843859741374510006907224024471419466953565232736909600807683247726162994834419823813227459806052243494075040248810678140062742523198259262698914066857950772333662235655492209664898625492352521072427136912490673183921412950523139489911588717149270608221590352782450786042273962391396553948382087819731066452734844751888892442654864570624852667626830203011731629465686302654130016957766233064902693422842687672590473090959922097580302313862286620216982566085213730927785771375348825828599016720638696637916565880267539361772548740414391277560449711379757973021298348870466596883281842091369559258326834003433362454896009061153722791640804514090311327540496153939986730179660202654920010078716432357882390864721591335834509142577399371546027597532807933236861018678931908210860795787252014550513542099551623920055961305645194382388369469167602918025566448429606610159978307656262233905778933737550445390454249909227765694263347525928072624423811654242853147559447136512725139948156037518291167964288705304012546668451657822337257414159917550711353539441916282095018374123972987332981448441388054049630117528589665853730514876316042574651163437666581657415909457083880751956131715709172443623045053503522213791228228489340657180738665189984597935410642895269323566520231400829647033527405680501096524042444427011178489360286151664936109056362900034065327624195697745606133449933615335714097709504080232467023983704912605794041213865521158009081760190172969148726299046707044135369514402216237781287305192754502004169621390420393507584967004602514587112672816980294282338612841409823980207849963744039370441265123427876023805854253107748323210133415129793044986781446943271294528766751493402164357730414329190291568580639866102025690776598289883026513800503117647229055050894338277381192879964161896149521092250318543086774868255778969894172272223254847593079672447222761551061896405483961872530424776481092706147116606929267820689821766095378773560228463946843924229163224237611093522028314330637005590698931563288670137297015441823179767576872264976606371996733815000833121120817146066642503582585532529814674497870119382639208611826815724830897186957138299453074225477905321342437841020217948914389267456355327274469858626881168355338333437425572109716566128933391264255326047780442940411620275399187374940315015843039039351301721518033739728147854591519344473390562800586422646375479486796734448769152101639828634153650174323729225994302673763633300603178500935984205835621113865394833061870619074280575210657693832255988589559662763922838559369214457805102148491691376079587274245627547563516687453091273766299282206696235718647332174343193586179801171795382604843066786479448244306296798279412824210157650819126841456287123875112229192758436353536596347267151552728905450981076395269322126859168322132239831787251638272190660619943926906249163290600442207571097106685463988153789997506638227343559141591044424440040459561847367248714307265485748234791843206821965761488275614008169016780752527799033555963699485801952988225420693869624496942074924520186181048027791978166149875909392058982488908134000942347087986474976119024349730203357319512275899387593038489950403023905872238703054589582728185769457180858308435598201282750303918717933465827092983669595386560808142658825405630700523663759863757917179333143498324106159188510828615317041225921706690448789209578166797878443545927839723437292318387314745110697236080766909897406175363040636958567019681327436560926020039512947968419950771111887456387609122580438431768945392487725767988494682462354186968279024442226422644632977704598483775245657282879151509694962032380602604191461212157482516709459345239736716348645874282353233009467366313321778501195682258695177589118320245610373157867887211422129348929590613238539108434696001672069685456794594444189418184528017529221747293014014327458773652723622658819067942045062491790738588464947208057387589162752706801391092582100841932746980912866252119116402014015989694849208375188082899178383074901548329101470330698766136405691653107686409071563624545539121653142152206695455480284099653749168521457228773907613986242681017072308380484888631104200479182002623894718297974451524852596984962714085594938065762322240455096075390556653304725391108086793897279897031665234465201877466712503637344621288838736422737933231694384213663035134672216898092996829854887109949485689036496430389761863748759248074776288533555976381485854401549942193048020947372743394563697593947903761189612711883467647826086341888707022816307336076801126915663638695737239252188902733811038263122889427826673381760379359709429079144497944094449033961627717460659979254784770559028837983434901428386777044162190495562544473216830854160551859472955313426181706975303509221718903808907900325576332920994432755161851999499555687076863094392047142599387951522475667437476627927378458345746373861731937867304333121576973665046381216191662434486076247522567640843501424770885063637715903467197395932626066982731507372335410473491390235929880745779682324619897939771470274696200393640445489199555097893546167668038306524738386495211432829530759232818303317629856985954391337807245059510071734837620753240595132080732319245637744611627595062004633072918991835055213829051126685386795872935513449636918911097902056712727153057119908834160332526016134455404490446821665759161878014860053688935787403193185209206014904994483128023072539514504285229637497275288177178030552121146843413609424651619357990014492528284284837018158794134015946880131470399452481935339052232720783326176255373998656881692026378051013387433905321595797296754066555415226891121721242538558533368520077221775376722950798344512821339077667240100345016983590454854698982281753182285288465412302011020172824833252421826874309317551654654214564315703600828034661911220527680949696918899254983259003459474678838927705582703394602932057240203845626080969060753521688297077125654785231349796075994307898800651553421475033224035959521143384344678189004539288190439618328382310432691591567237491753142259138439743700972777964621942341740192833458453556131170664352863693835587065242772958014111481451169352406105561353814506576734149671911018682167994741871615981924131414831393599424396453799369873070597582274783298086201421130842993160215050953601716534521845304959919153799838229471459566167683038825922883529429669126267907872749685426705730245762708041417589951526329472738887777836780470509913737992650810385481841601671293951670321141193599107286274073457492527557491062108506418996530287549930123081309794829012853426379906195725643667486732871668743372831719979826354723345586357561847538953865443280937277483987737905379242571512056791821520834314903754854617016964822086230376198528367763063328941748668972589150541709688657748998925123008572488972769555801114848266514757545802654250658492050700459121822904018718413939714077763557642856261548157580229759263024290562928533081122859224842652673558608435632601173754075381538639934078426779255925717931831713110162184080161252762957397893281954697160902774479849860459693659099846636258447184047878638419733610382149403772860470105276969756622665128816047758852136738100213933300798826511427296977786050512496978844213950958923574036352718222928444877346961058614401647506782932779957250946145314496239572876647826559113997226760497482587967946374569253982329298452889000914937993607671311181078808153780233762710645056493062963473423997101665457059045074939409811698454554907029076245085790019380832173807356512375648949122626239025156331125243958918390257532367332526319238427400931174096280315924965821991102762339204356614932621902252432866677313108389339535688129537124846115048791368519758919209011921335877337775285439366180297478560914015895681972956813388083012414557524705511078665521975238758481850883323278988240556101873615563010878647002983066056756422955024386596929510851480610020489578522720692367565924666617300641160356402495360728482145459515379044464439158737638098854161086805877366348801852158789990507555661069282243861327612085934834338208725246275946842070823820829018838529491671137211296863806986878694910894576362834881847960780878663936812831822671120515159137980092665079564386926129181301738287213621697949914478697066319836886878422215257062638997960160601932046913415615851966536527775403987435437791923652853578354142589679275442121887149136740612256829786945111441055468132028486764986731686548290366657509610486566269148309705916714950818583086867091672021266077433577679648971330845341005169135656435584496382571351749912651154561659152627536278164274635931905760695283000784842271668184951444338652063663546502618438584920960740608072077100851983729176097115787501581067064520589897401883855440612084184455778692957226269077985934522297472362188516818852303455799375160099211313251482625569104003618163081938293225609751518152662145113963324191967119706668707808939968527231528488982108405073972365124827040688200686312444021351375976846976050723366303130597099959773119454326822108716542078034649727214249056027636741780146978064404965348438683699568193067400775606345927816526058689448254444460956336878647317795129289050120221333865825149743183736519290127099571505144639736400742972586231322635948664586201784895088336869858398498034673415517480037576360197678816531980496050041453163701907419229005557432524155842776874777659318405631264671209857484281200874817247129226962034052698899456550400429298798007677949290498638226895229679190535818450804475458753126814710769615759441768976837783894763847534506176453453302997872633530122824860690947078934597077513363620363339646382244936233568847501402000062031962634323164342441998451359626498471830458417497948043856937954120110493627451459979149882041194572547603189013538317579989351655139730658897338718534494856923494239753966034857476194951488579856326823647045365779289449476301677506172710527135993104338597664275558674706244429486708681636694821528421924736183962806950339396309761924043866630390880127045237548179925513472310364826565861812653060298840352278300688200024715017967332337359923750754490077145950817792369267233036539416586296125969313204431666943726250366454215759733804251419005022091170164963907375976793938051090737073363807549946601754530807384597379159133810826616148880539553028745484369443031825041389964370677344736626852333689105024541620477427774495125978529471830930405259523315932630446814115491952831782764568142488321842045713108197728030469748565452316089873232194073109115562866498967255930160061665166710798119717159841006184090886925015812011834065774070162420369368949434263260069328575966219509315578704180328983024195125993003272799610418043268542623124983100995566829280488700826613748906330939122355693919920358971101799236450928804819258019713905958061751930982081199061656196428477053007790273016536123170119654181511240564100607197714110964817178426191385605374011529491667150200157628816349096813115933361162724012050578851413959168750803094855863365733495415238098833707247324737579546433474911800604540300964342452151207716218930938351119468180209783028448490856621233001136605872388210416651365847983524475817704364461103267226518511416338408056074677153067902531748736257621715383794896213433696810564068473079082493524545320831679785428465960842940861982913829885926365139321224566728126782000645317061426273015378460625143969067250559256069037298735995000178574407718763049863198107860994042086871792046422355446081320382679014239607908771066874765769522264670885887638200793717794597346259846919344523377747181977700185346823643219102807092462586241915866010774353020158953009031011789906796617407193379855238750562583990259172336474094905529804148492157558654861695850260065547096017190056329588627513093038505233511063429003815326953481489549135901928840197532487857048023257040777342880706458497732519952948881839203715335934849049515237525998138015947024424467481631366049779576110419839305255717493968247935280895776748766416064245190196012275440612294598543488308994466084471745951743866103649984883209820503979161363571338464039174190457952506981986413538396012224994160899217955040397310958939821066398582296960926309204373428876883067124620178182883050103695463956029086077871799655535787763456911371954328326311081550903883213419419169559598104272193559729501120764461854412826313238704611147894991098758799443051328258902732885150974482891381415055445063363623712290576669882491421324147850300530385957020354293358935175345768340491254043241924474891321383039458466971597412803969470623080521617469882734921292651849897998175002320941177984576633733973231347337652404451304556705887607390879437803074376070186562133250108892101660925654182720907519366353154779326611516659381425464876719074869489573083160617770369960351061063066608204197865792693764432949751704295435366194426170435193763647995130239328465655555949397768853981282624570359581292028258272830609831311557030107139033527802871746131364711396026208440403164895902044737471709811954085274937499111840433258357100362467374579508231641042008600111402693734857042583523251988550421730726660953014353605132229625358166517305290427220471344175416628997100616884462656307188287884264148351688862661762055823279472108290271254202233904977800216834226276651709491545995862263299769576127334551976857365511688555620791184941376956448298574487526383385758441710501377869834492694634139449180334077236786449539604416816203197888746863630654115220168674534202557773539854329912045546268656652702725426871674859826262190015890132554430507202435117222228869702036052803972057414194653550668251415793384600479150029432066463476417678357840559762644896820543399559757387220152226847438703272840578042485184371452452778898594586306272668382933014139509502065780764781847848446957880380743370835721815649088865596664727862420091823994539454171399331619166918476179542553928121102425769263393671575611961184263130637692693378243906392841265308041564113935426790866502841295324159658441497934618580803736516066533391770535259319155112413942785917294560375026352265227715512252313431643500346852044634634054926226184866777121335373160554908177609132751940968329537104183014871832336362522260115655045109410094071995134571677746642943780593616922681317867904651220495687967136316979971697940225442299026215247429413423109904802122535215045943211813530748734142136353924982875504990497080210515575994996999321131158438994434383244252794457944299819230464195138476810825351303639026776964147646809363974075189315205786467285277901722984274398730907494788980901672720581026224155082554130799011864154830930966727948239317494636876429673293776635655154405406819736276458500201475909068417531474267268360410317239922410866938569097811450921411071109576199972051563006835361981118014588715289681240857444361557221067097299527890619655042982861024489409369325243651451316215284395899149578634288956811348158804659341765901378898685501962365295010138766720011323685230310692566012256957486270171728699403481304492409500516103744799414206791351986910263960735352496604075477551037443777802581937580568761481483024474224669071475605133765490760203590805596165329463515034974189621618266986955142226337777136568269902944304977466871903724225066689408078519922414492934939797613523693254298895841696862535560177143427689030328442522473370276623809667522502906586247826413279083125251983584457433252083098036480622884811129981252205926445778321001371105390338668376703463403645078278141787959814624141811676133788632103329986145179186403965027980173761385103854884813661501103175077718864070092019802358896735879479429556897550722412499009205325096298282675110503743776099841343201503125839160233367861988369731636380814089617339007132106872693173510540130913139085974573262753925405104820208860292613835332232982999229160531622580747034672324320241467560027715789571028653417393681242751873415368176673052495634736968649892594867153415928002491174242534686507294601484325715909871510720100253415029511610772808644023784955010813120498930822673752017470269475881433682808843710614422993680801120382316802532786151309021558211556573765771608670131911028970844594682696180216196562706447263755252931347472634249878978356656479518052300162623267358996939074537677586303577321825591299380014635642317784052574582608365311807412937744344000171402495859934758881321845696508980308415229355374845918241998785200665220126183105753127811921217418790698488273724116960875292474269219594172992499181253893159005705057939261419631146758566216896713878443932574943224240452872619136100819845650148154016149760082427304610973507243428645944044896946126679803459292794050043250993605499080542290466143839902420298194954156517371429174536428603363555650962204789576378914368293691738586912067674510305835704238118264931610253949052035843531558022218868416923720717184995479363194856583947081728269165755153957792293119183890750108169245461102386032781661200712458232517685043924323250357534410595418069134877304738416825434005504600687083786012440583847382476675796932437244813273312095168307787872260455422632073950220524744501537698177604898188695375412218540901219027577530965543896450113427566020527832427541562611265675291778789327594652565375305822080526015965733235818852957671129117081706823350948812840806329831572346436012635938857498494457278176759127500476530608779400065504071640327435849001399079164064251198968047142330774566125102352411934709211956225377987991871472411361956945993796780612453950142230486987154979424771559219468006238762983700906417061718459669997341103952550691395642550611340867578155110885250437366614038985392768886554956772412806313703403481783782999132477001063937940198000721053153975546071069872189639451823287867470020979704110595425545244292225176850071491754867770189325688672322387503563669157505327022190921844997676455375810686312833060951719221271082829665909665207637886113182351336890509677381601384817571224223649831173357697415177489167565477792714506493603925459302638989770886700409240771443625218355501717414780211925630006201140341099846781900421449766164696286939927143269083539769386572895610132004095659129693316756769418434213187596060444137284484913613075343393602927054655712524040310579186892523924681597440127434151185712877809310717735165170191377876266997304592331260900412489042973473821511581656449747316953539047315969768791089882376846442815497895099528973938076237040781796884611479218026114205898063471685189857056908912788868864382836960433494111610425310872171413631953535935754981198652963316189466927203790878709704581706479027568330633378104563163191037694987859005761404418012339770304840503046352967087792866347109354402420709512645444449216072873030193894166875425661367951303531306999302371290735540309736390693145659118704452052194604971764875544242177544385478843450441347992372720863082341764385731952047095542427463793288848783226500725317580132967230385044021814002236175161998428332489852983945228032951558849772609898163873524549954992592699642841204311603331921151595593997518642315419163610807945350290749944189168915318638582676992867535019158732905510541122419429137280705180527809133218324493891085698133591888709519786307058672476499532084696395122098782499133674126394777753033283529629176579537293757911308322932037717918810438628578819091990350582700724631264639559168824366045112279092579927533949463365120342539265418133336224619639254718822341428776363120591103668569835957961044927305447189641037998757698472484789337648079639236054646146236688128947679865960699669524930948900538007265182528746641336673396964849223062349744533858756394337751415511181762616437389254162225704647854914106296308656075013475141878582844259978607923824706506833876852752141999426050772814010261438530163848059621015727157146015571129188494855473747658694357999402215732736195602065812559640686015184108155138702508700074875730162129603061813162298918182025246997265820151075193454101560929930610211326747481868080438427604438762840130204608407008986089360232701086469853419177957614008561612353806276519373011790814583060501648344952380292024936383287792626038442821858797084047591277637218442190012392610954343969422273080304022954662313031746034234087083557808566474798962188659966405020219971608521435356533265113433255521948759521307562624255015535357111708055655028125581620202149258859275322271388436785290591716327725540793401962726952472856590625726681645396786638542494147517522532256530609138973269150462624490333927617365363766507956812438566315278216975788568034321174404635337646058720674005668370684325894678606231429674417518697094247953188561101248180153459812502984617492339587825223475262381828364514797595806928639460776179044896969188578778992373052185643536148056032182096327505365375065359087922461005628684860180009153210783770821563707105397176699606572491331765778644232083598278544710879750811181722102900673061024941897796894323512937886999369114017980989044462251482077327129903779039108493198053645300978853600787449141544093292095627741559237874523839807378689733244021984069442814086185126970419821690637993359491003641308824702979179226967620170345927512381742946956982436741201899699274106642990410658170700664836479709162457708818494084852247359612959355047083045697062011728196842467795869261027201539890050089453957761923266816856753407042226026688970054436593154311928411233122465586929538500602103839378977858747500181014189504897984055232241710847806270078690688404210543967953990072819792804923758713531337888004835784406402232275414524947312604793718391828074579126871161532241189136218119822633828790915754751350869739651025457932002736627993380744695016879360816626510686774048881608350080103821786044160313709294164784461232470894060917892480584573126106510636032681710476300881630877759372067440730722053845221013191193064027422033642759181368925558716467428856403784512794570726710413420160048166050027553890595103978869955103747716961089079897731144874913375724250641152071956738616988957352872130360527212289752395350967710362286840893829800373595024971388844795100602172153506122453261937103943411920883621808818367978795930232745527756224755194306828028175602691180894178245629653223391714719195094342480922511019275217010336604689934005348980698859165715114653073543193406105921589136535555202329275530640745218117347986151504304038708771573532200669247306153818842167067971126865593923406954918769099305200639346489343333536087606962920793216140963258744167251440183141361715433637314119945490771912638387924550820376312212717945325083669544524556659353221627765493931591319277938613622032748510867810297301099446869361333840363379704628521440941466292433869681965266828283698254945506836365290780870677156921858320541846205332523643495187882381297281133699857271145989264548673409826357936256055175783328912815896161243660997286076378437793401518030593197903139646388047331407897528134399164463773070157231857944006378985562912223007137779163309274095010994030411170803692351607470819499520332123301541085287527266833125715837664410276691402738014697335130635935060661515042958873442820928726565284182204426619582318791302526324206919229278374332247547034015977739185464489083048988427018937313145790428676352465790501425916103139064874002069283598231294892160032565683938121906419713057322571004998273168435711080553571840940772025991182408471137919029966987755628972920824046523143482508799256518461370688551426305889591066719983241634568095284168962053997158665067626978149712213615681127520799998547036496125005412194509796440385002717164314045714491391331402298852761597967508514410443756120017690764377765977219983481833132549505429882342809641289405568078546995405998941323332623722450056243989278454671552937091177431233878965485842964054614264417885979394040690519110129718453881752912102028327193546061990612464192483541455283859993915485986569343864967508627964328140591637926147807279351023813763164731716260949236367589304959857072375974661044982220135605250344342652147685667726561276414961485128806393310168004048949259486723642656218585203077789005757285693988246907915028735019081659362611182885396223294628202541667297073956669628195370041488380198540029729330030868634901192601340377483703922423863827025103232792019538922835361782310252523462054226437809970047466105066120403870020113361679805093350168042433180903437940737593683611051095274710192706119491159523201278811148539184434561027775494259779506887796307845769494198367384072486312463603211383549310183211023551905860630339908314914844635933990048788197417547394142129329625746538827632311096616870257859761941672791266522396220176584533916690075252130615904986519282805693616068360925809749496072026745556421880740590388675667019358062251707827958676557357995598573973192048971597069114785015742605615806639951567826214662932697050808666645690564440497617178162900303582519509432384492655213277623186058736277882911445675142052331280213187809249834622096316142319801448306192103252104626106020343200491250119957336756384293557215226512718733449381645240418623243507089407720392914391310244203237889110361176052843652567893666222198867108945541981055243815264298076144331026223310829509287667658748020160885764286824159031611314562126074344925188966357864002078487197132693442383457106219778919586443079867810195752640471375835676224896976307316543475964013449089185651578410279246865185531836696133992665700787821131008580931857685702851586961885534524254758205712487866219435797763091252732532653995137159899378021377681053555158041143251892288103472818620854688790757873419768144058366932012556047401223122256742500131522595192423072538699165518418738051040985384311872950348166915382294040398240950466670371361295300699017336723791081765199987536233358406181160306913482016562926985570144007487802530287741921630316406076547225088384305143506421680158483458069546479048222321534941297291840500172982635981765083530867087619158485601267563273224390512142860638342272267890730174884071197518258956765224441250450429059919490207408784270236069472247508987837519412336112248957960838572525240637624894401538278400244504665546861831066388038734988379521409707639816143182951241557931836600706468716325593759083283404706284985509324726958816341451834613491273885167157140193111966373109813284866330988152661034994460320031330828151550417880405062589750000165602002144843247576767452999486130619000450796760821449060148209238374982848834954557731746612922583749310344426163743670751701812772494335773722764039125655810277426784263810280207667658786516623124969410776421004379680150103229113168326472971142189227451344721579496712689839517954417602773212859449381125479516206509844168364326457378084045073445063599666617834748917716481278682411802138729616400339420958188681611994820175003013619396087415202589790911956687029178328372073315367763139147492894893912443691807952934240006308738637281814461465089287070661521219182705927005874369800832525559575766234649503836547848486526935170064949008777929638226118167317881819136550312124251168676778754643860511602879003477682045457255015593210953327030043592973685207342202308686390322819374203299331353659469044662386622882715776270642887236393707625914385037094630178992029572551704893729140574523027785626676040834310624271371277675609928523624131851608539008076988477807784723703637062989356785072247650376821586358825331786967145576216880910632190729097857772362606249322238478730473251004228638718335622164506077462340041212830272248855278091928533927974222370447680802255562966065098572100531265860815597488086534062579355107772558091529190305007331289923465819404109601045012821307999709634735817667508717437941481235080357620462076110822188181204059933965043469614018912537445221100096303708275081357511279495193123725619600777987633513250973088254391634222143687198373227217964102932818892756554888041614829090262120421097023791829776913848147948886184955545115372860911137411025054725173408583141140990821742001810174200255420916900288375965820530915288578986483724327430432749977601369250593237847213069915771764224555464230363909469508959901174513951813434515501461509715192450420948709453859111133106556257843990458048989794108559638797066907897298905421207816598661063483482543901467653510679812859991070081416836496228629040879001763977663614854455133057667843990058365330868290246864309326975239309014707118826783934937172980725294389356137151961967143317657269002585971154099468244351933347557058633186562130888759642265624573201679701957591201590818630832818788287300316587535574472855827387761398845541636619733301993733561158336037119198874733640720469678188649923679245350096945566794262924599041086202550012074348530127018659137383813379721217380996805138751688027942918217995114812130698634573711233140330999931398567615326835123462067890781433218446047597728739177904831781420065830470581321754163609833490863286958781967596848878787745217375144407316511863732510207875562696490613995614203363720884897445714531549969578766182579234937762191688122097042092606733390166742302333836336692378453187700296584542717277671973851505900737237879776392788764423092023132722039967631653355233746048572573678980086918371693379404756186673924591872590338037846942026791268021456787857453988894057635353940890594859222858199880362591037189447699848985328671478438247261664794117764758423724356319970769433318164424074831688867061676499705760440138964241349220809070675516615528936913935803251098000292873396989198374239265490914225188404424072279338009176039817320350521286664740460974695647331219551139921402880772583992204547924190779509379212427802770561124329202314561435379472067857621018779397542042162305104010753344793675901385758402155581398160336216728555505091998061945953474771094887337406790762242208544638712722174004439543715843438894765558908310503203313480419903910078424868296946682067103984690162437373361102805830941403549326511714875884771478046621226369527491368260407096377486187670674808704382047600576857047402221436483145136303698329048512613446885286520101610486308131845537784558251558086510090316560943760049977033130628095734637381686621777603537068193779030991602760638026350035937099577099473025491517070902872316847058192906524563308291574944061086465870932593384960940917171881804236846068208877474325910102145493624415963457701385054284377118723418301997335128541804308942236842202147585115902954493048825243468941945876560918698851469746247085879275003952346353472119686938491193252576750837733214071148715788427113751466308404283081828242913023389630155876227877728360755280355924202911096650608014045304277683463369301348233174339106335253396100071298102053452013480226888850620144665234147771970731683730968029682757499891220165276202867390083936885630610981856830950902417680375404758645477681778084811450307461377047088215394790009724250106877705182128896132756286656370919610192007339690462972717930986023170320687524057286658607291716294636881317750765173376901057991550083586093076952144303532226205130139100721534073722129535212811603718187444790080865836329973784819974051773794395946759815583662174226534766969688413264569372335769900862141685920120456261605988335450618981999543072967966082828859832287310865485273994298395930376525706836803299571051484081336248687543397076377055555621175350607027158168763270532749964984358050070596778500335822631067746900706775320883663659468579000695682943283055252997691857313012202497371536593885433655304800097884575303599325747067268814308941323526310261469206846099187672143006056141640400657510028993765489469527268384129244442637070673841182983926462646050270115289615184491597460545579108740285469167786626167779674396828939411028984617715108207109166790643582205596401271144937189935359637930753682277579799248443769888855171851582488338504758109678811883642835324148818726301012993723904942911158474020220183987948936110759567779933804087044686214665649033895666637814896644560091708419941489410784051301332686471125532269411247467392880596866637302977849176462462023048922906474029706267909135933317497603542076119158972554307031297976474011362018700372569602360059605865285525987960267663181422217449102752782447752020526139591031217676241856835878106698501243863251015778114900015122419963662738986149698166268944774909039410142009335221843037045595034660917426849420576029930235049683990223335714392793443866322979459216126295158463959096363832869432443971818867358842060408613589189657465300034361656102418596469524818922858962067032569525415496735024820889120470576336018444732420269606061184390663148869468542864901409347599921683727518552159363429703373296071412595505014392275020793602045349448684640568681576035045741478808665955961296346743638836278839886577934197200186678966508268593365040022327323620232280062617215143038237712145237087540339235719244774354584411116446316828923599459620539141211574099258294685908102443244401549241443525842568873030175119647174416057592448192963055042560849039941159452041442238899515902032498685165914494374536598251858792215826018193541184668271966138907947118432850529266483589198379475795662009851727966138310721392991057130063658733207782552700240053906783687820001389850287760684255025440304160870474663212814268149988603906356066017026319359345666223463894412549363584531715801307839020495040615341889409896469699600724331047658138717219750717430380170072244020877952333752345276689132947589785816055184212303220676813131399774653605356765130855418353508857138576604510265052203860130960613437973089341314377552477350706536351846414541379046974649671104895500973224522094198061852096687191924354018653059934019864790825058621162620354284827955803676135693667927806533133197968257074885047463614667162879600226946751293390987300231132253710031530994779299006405534512559994763556621354523011812968081400802185777471391598147714531062981693322416524103599090991634392194207406085842766269469911762488503245881610605927650790749358973608202774096081402040066670006102866347022092888526016761664922926166839355141062908964492291415461845228017979129293435372676471157725963343181555136997628958380661304927062009259514549081230753193057989786064468107957810706553821643638900774268169834187866449522612353418929911462387221177569141983999315592638544063961262004062538302991906564805134357969985019419242144737221037978036216392612593117157635945328861256137647975288334582037202569034026858454221585113616411770886241235992143650302116790611368501584799570401786898006259348548656567815935293949774486563859020562048225279864357771492898423958754082664088414412122352045860207689708973510956320693180906460400532083676113091108700314020628745503763432096646385780950632673107207111837186098468609430928136287042319977352331186656276710921950978281558762343802600109055583005627146585106411591443994936123762327386676860556798069156135755150190868472524542811999366546221563692708432656515080175820275344435813057461798477564046021634716561835100167440561737017317327596821602046975860825562303853568342243035783043189566541031385845390288105981467255214057650639227695289367410016205349960959987253619408925383304957118105767869341492071365650047742376218767894358892773127497018406900842521124178243384532967896353156150716102059584798423175000498180609944829216215289046501118538587068103872753204575103414465047410383724587717467631708849254352410088261132716940021265705505129504494732127941975585594651483266954464262373699967127661266648914633557273260773688062841486264069062347647552208420103826865569855658367674235255779514108989971999824952328862644646789843156984774363206822886675807940127133949589619759243107013858115950884888540707955612655031850541362090601250430670879011312506132679123906289812370867882540119815468178981144272159729008636711091859841171604904024496852672436783242607600343591634536966676848871181167362864349803502363295124065183340751852376803014896749623035076746504146085911029041988275307863294303840438012427651189896251440738029410979524071689881533920383637471441011416166559488063730721631286261472886840614697040569710030626416046325239830995767743681805934108668506481171883742154377893125465819853835110429300794061702124330320425847053865142531100206923196645721614737203771514858971084706064166042525763793811458307713384009198386269899868497687451590487971526331526000649042867504075495156855209578761779747828424580097812272839220194215731251540745907782171116147662347646692548485095671678496973485594125961460831028190511582787186987130700078072006202481971032382230941430126037849212071206303637621190938503084420523912912149536729677804183615407219499911740239420354343595860619798614538108973575513310938263253940690281559903163246031214890346033288185387729657769089386872913940974180302206405891464395276291055305296372061014075071391362827334063936148022056699197198483023300785273356761193111969122049735444507187763034024783503509459991942418649941495754457521623883721569442118687073953350228813813480756124797474445585841593452146257303844172805208011859761961315586007876599100059719180003246400736171936857405737879413993176756225894085752332839591411662361964399924209925493479877438161978493394364747981251406349051265634163022935407180094355452662728573105057251388785714398467539007093095910735031988979548557203885661047082355113246784784253056031749330806011702695782728900888048159566640407934971754230974308498004715363880688074337185895905632138979291625706726178289376123802857848249956594655776000307062893662406052141699981751735222455771039385503162197629170323904054802987624578695785054795803758242819691138445694039554764714712579622582154466862495626433064394682805237972564170602948512767364777662819468494374177755940099151387028158073825989201054180014083333532920398687818419207535175705428061624541766849443578749899710302745784631621584651975554510143319563952903815629645620611885152868548266479220372175980720567486564057359521400959834113725591828936789600981136537326936010179235748215074038754776606711149294287783139037463131911114148301619276073458960169546520236064807097791224418023267303109411295737397947679495202153051604097420161432636208789884317465828336625313660200566651394629972608864579689811546785268009086254087575436557912913914915715234503683732493421231397543653379496629346035176793356129215844958171341928071887470229591015221354417103045344748089780277133113803073818962772760395161960566042478644122360526880213010458153016710420347573097787202066723487601118452145579358266177444452926221783886580036813493710844612813048849980933908291495897364011177392774465819626233603364703206329645043602577606612697525627233791381445285041480912917456073282865497888364635404061777398302869918579922934024524920471119872321243720356675325861540117895934956810354664208523946090443168973705285827091760565321755355340466181086344257691348880126471127187604804542754409444602854811712595020142025658874600219948487824771950440597286764176381356224387788073313515562289277281143742051661440668596017840230562114698478407365175463662793851839374301605524952438977858691826114247326833238038445473920855451616108954545465627002286885661779211092968608761026064189932114125336244302853543773781339735638062346237638968211118169914791604476423043590577640707482056915748401637391885381554666681896564382006657125397971927546976252039682961249700418798545779961617353828049084710016503232416499993148742196474464192815401184678145528848818549177319381759715797778946396992474215849258070147647013179662858262228149992887630030049575123090858975200151515187020885513201576313271374160087952465641386480219947370562118619321622941187827522900875556076741776408478213162067720281891433671062492379706826974593719411388765140434789075181116165290287211076116252756580119228175274819480276716591910096519455570681510847358706627284480903788243936124634508222064221497160864018794762320414698675066513267846384853193266762952139321166532697744957246034923944237288848864295410653514658374546570633437720459644476243105855204864352926983767846890122592028719870472251956805971716611022293749669654387763447976883525449715639603418009946140996474665906990879910853959830637423607433002436892219510387320643583494925903082904879437613069593240023319433596947256076288240181872938802354492653315823435887899592095016437059371524756188356030802172294129337543160698799442167701777799059289969462204222136781040229849918413634959183853888832980403418416765824245537218637930533027996579365006946447207342358507084873836805185887618393528621781890161314425054205998204050850871049483543744727245052501029597161030985252531046472384061836321393073848081818346857576126173778033761011446363529370964917559493937472672796998776468187236250029251744775528613856137307134900199811414656874714766747283567059456463570989472802932574182204384303002169314760718036031746342769744468061412377217350855296574285273451695770315975694802700372212141482516842999732057837500936836999670868910511100712737291598717545158171524842699854993286626633113426450520699412317370042345677360579533686577506457893037856562109946997490488370275513653863282908679348626441245585055682240185669217869107227759339948964211687995806169712942816821032657965449940125012830469544731190916824769408244529681049776371189320285331624586247359436195602443826598578498597393201108762377971301755592372318906831453428104646706457351210899076531541943192221623960242745611085995666617118126491423211611889281869598651071567135806677062586562512629230649885163659547964275446641414146463352933270519232933818513235019881456918534337392694203937824454847066515548484210330447006174073662408436762261544601751232226222118105111817391850759255426154554943411997423131299844303513703126833929224996696003533557252966916071842836629656295354545423794184832001592741602247902107720879988545751566093837584544486435378325684653080779347063902422660153889053264878337700403529992444679475476009794430966844991706192287558784421966167591688791699508515945003389006615728135745807900784912057419045585322321324532929105249242995156343300100686481941569422834207571851402229737333643748352280744141389706411328321698395248308431063213417613499166821470606760199603585652485752872419109930764284086317078529386013007445367192313022619594427079735774885124569094791997342335683027672429582953988029510393176330122888731430131289830747597285949030258079622353401586806368110816295666810509109039220725638810976956311319599291651802213549733176051969264001703328636835672569093295502519601161588133550372413413384810524353325321288435201999515621510218081620837105121542601399132154696632067012019145491522651402669016507393606421124809642162746529785167817371747087517312542456109088904356569135898645187602260256448515829394291817267624125293524783023141705032687100248143552666751490441590666459578996846963007055018901324103851907874461082804456696399423865257673020872033015990357403086934944222482314139037532697358898688706174723026289133634573000947300237686105370899322508764441628654151665672036790324369507792168973226052954440250367521535787166350774739830605514313293827125894786772451875235128399784151399644275991929266046980159660727476689174892513452253049246306668845415318226017649269766985349068921849476476833257904369573894122667073951543587475871733301379337586874987838297519580739116326289819221936775512405183754592745755124400792405532070254034401735405642453569992568646614233717157464164445837725552124657486323847927052016784393124332594325648968373307240975471581957678679708809991155071451470909913611491068017674297456433883218057428601096619748740194081382299772982981395361627618731206375651800049497826189441212035703989900540912800082183808910470738935231301224640150502447619741419569216236948430273821465449079512896303923981062915416151148025737132054721702321366658938560859980558294864709372483098120425858943457352894590762540690432191395673821634022427959585188690241439650458955231161533403089529469776734544354321400349904008934764521177133018022852169332294089307839444423435719365136675116214382533626678083042371677380645099816669920198104131024879763818164255729586123200023881861641443203429425474560846163465274747004540056732953628569077460395504031735774794297074765004109653260444739699498705081583711731736733705149969874428430641775802640412166919241806939053267339917225822652863637539973151730405219133302088961492317376618297689160331060951858293518358498531545249907496377785958323495588765097756419159244996066642827031017599685541744009925399800275162944509180203749353949928090308417369752267080872220049746809084669939383145839851180515857262066821044973060960992620794307243668119825844624074565535370818619782071313478098067750926145937143005982038886210650128037560033064309786135024825824113633768899892626055143072535254850443477177915620506238265838070788545483667296539548789321576633076989523414709269681683143831936690321849098618909707489097891014564251398959652534510789565527997066517884420449394120698686495530207143313817910977009859378026407904914657285022955618272289808265108199139360343876623569001144513955856131410250883482301726110615471384257985245252449181783782739249504483689174362108293821545896537120549724792374410787817641084060489065980321848390660228709221375675228318570957715006549628248539991055974299697444078252989383486471507357982257081104213488017911704212711532622222849279098234777431914504199734958129377320869199603132437509815951160662964844946836849988190817948488913066729796585895855361003057437207346572041874667900892612901047239029696546491508650600579029714744260527459479910285793671556636906783857998669821640771174360965564193138402927638197465422062453956147555958824060941068026339226057580913440244031650914543043077339192920384545866288182910448487461838262940412803572191774641445958786491341141430386992277833308387291168097968416218114746123743114697897538183465414641878514675495385686362727810359823404771299154701890619872165352822674810326102944241856098020306317625135268179213618150944056506998605667234289606583900235426469259131973828928132521751273767053698734481978816835924592980335470209151569016501689961296246753798226248639331767092298693273863726728845232973908585184651504547108638226262922027453889205634465386277062986126634196678973992074022428365211464322337017091358028041117627879048618551705219811612253448036203832098669536122895190884883937093000921413813905774332215756305976111883087138614301697224607339738853210288728691727456676237688016164615293946407764813999926573061228409296407479692987675807677112912534582117109732581734104481366779446958277479932426802871587384330714566602806204508958292092151064531830262346551904275660228953122879213718957753055541335185773059825108648409668968525981377737791518898478885061047713316538278425099432251538930358566006815932764357060082171946459335596498270378622252952742419448074979046180220392376359972346724391685530335097744493571908211538531338899236081712889804182700231773532755456573801807493376092907328519612327932534657061472833520195872680835148926552600881277551913316901158448785158747405709168710054122713005452815601955593115495571797942021422278794713124188075630931823549973460878845950488287750543088100407300499068694792259060122645669750600655720348376479801185420880224806005717804649348176823683499701711339562787829197495739876516782528860451117723802143154243615907761737048128735742853416372684862070972239120597914562594056355508371721682397668987882276053516511995128026743081972774274181726394103907976858433214432679518865328560623683575720084904667462626163692351595457631667095046715915067440866559422830492181929890920805779258939708464367327245925488193426915630253946904887419157274667929663764740032012871487610752503842993668749297482294386825577072574340826292572434284992550942190573396317807148627309635517501119082564051557066751383866020453826917141658740314377688970303233666349304409747786292037236165297098319549476848964482090199783441710506667331791711576355511587069110759304525855481822658798951958823212015613434847113227603410175173741373783107570424765701577018351964873596412456048422837328479160082486564179414104663560156208571260470079824172851258752011874045452940062606220138335097983668434226025274538354539264789554411199223776404185335907327990991107957284792557869061632946513177740731060136154779464685551659187675672800730146601678184245474927228973549060810009307343968160750030528074367746124849388782492196166944054138868030904066616511622808294928532281296313626601918496792721619329127971345359343545553972524865671999557011665617700400388366760442086892176914097522742202682138728897928371353691560873484315172516855351862820148238357011383110668991644918326908295748165357623445335472690242803159944637369180556322822563517891956004795174486273336171968926918488004637380024564635448838808142196459379427098485843996342639429212229171579223154235259328078264190801229209526042491385262850449812888257219048740111398597086583957881862687473498777274463712590138853348137021430286021348373436073900475746084664755437643277812425745968413693554476323275993885747095014925399583273568757590722064437386934775106888593979390634024193683299969508652780839831475360839177970018956685238493862584471714364241288136941185534641594730320764085487254719508069894561575577242047639710797169103832710468561889102366657350753900903159695885455663210394294994736930264089730077310505288327511700916439414451471973392889152742133619580522315682450544799655377146846805604377465017604103994965411447575339274333430148936522466932475577989937222881160342090962356342427658735140732810200642124037005022121353496859821046711196419056975828016769671827887099222830710325487604845014524527937617159438126804337136162848744594098442773658993573579211074559157987398605352459951714934124840062487036857913801130826923685785947027624011683787464889877606849318418582035188866039468885389840615632496716963459302541122407107756146952558443707670357359112097006611060803755281023393283965024415385485858364944457294331509413795652314388953433490517854811719977127898878873107666063714693854467288580707975448508801547957153725090386173652892703758583120288720407299977231282026180791031972039878215644029285990994269965220501976821240464182981049339363502765159370301214170311438731487072737939368870536395426722635713203606565370321624321611238496866554630391049425279230418736278751294423488862440084889344242572149133927919885975350376889089600288524481430003529872037698715051748704918920854850303182201834728303452000592691625441234836123823113774681583528485345557761796824720884556319779953629655498628358633793509633702779925973542639095653928789060899637099794838582034439683244925914284952552619686203271374106612661589763540883806395722861076224389900417935621409118443796749724604411134393279188299889028774856736279599710057419381307257066686696611323186237176064506061638770074555695754631362454112866301635606794607943261268597141283179138360890249189556535472204470605860735792182172409074136581628784931257086290001258018398633156212090800125857692920825496284573244717976574982074177592443788515877574266502887803220064405704164425804050076914249781539169871293655213716606389227566526941986475485130004981380678220878268518266726951788865966530352788617305925097064135493102697620224507846458476333755024761853970893137521139326734692115398165573925412907624664047014143147764899296722258855740982391528483762705781919997538273671026312042864610667158800683679321093396009848481060466546095913263287375151649029189117698213359322486630986230128771735921677897560100634708328833256513485837897788718754288670962789717394085932599676298605820431577939686213239552758260773613502220201599649137586880517962531249443555616000920256477605880199392343854034306227910702237131106020938777479790999496015087612250958160519871429758397101238082879232578848470333845765043445136505830293538072133778992976070082519099247482840527227649360842597475095097045557765237869717216594302584599803379486820129432520222874053011649000127657555956171442918202203920969259028186928568705572453683282462858431749466301466431775453651046869662509633068383959830270580864381017875324199709502736823938756948080932812328699510199734967462474560964586919712786459143576415249093126927752459090123641807023520732137619060015604135067655933618178445501747493145684113816778507161424666265323543862169287710100607110807443906945725941445221172452614739787416954815479314328945737974368362136775304195391082259825287261328033499395684482536154675224943708624814487770275104677308895321899388567240003391875604257920745233311366582808702694281359442490490986202629867291581713778508374462057794950680685447991492152930999662627085695425006434949314655577160529330327618938904908740750531977971894608717122849966007039731540133297516680763026790991670539441006207953787029975076730152125715892375585551811174000055414556584074203561018543017292124359489045201217132641426157508121262987355929195752150121222778671036339010722661179200685087466609086905863605614500890661078118680210133493179801138633017285780535100104175262151018543012868732250839570697784717199592323712746842630546669520829296292199514326804352145316045351903326967994184568951288572323996507574769714660794051675427247453721562583159463811745222430992251715807653379914129940920618024016920041859311228393582332149816278431701126061580048136338201100144975554592075905545119142135150875849965971002489948951588629620079080495270948717394782272825410165635128134494371232878520413662583685110408320861433259211401834173242129973572197704606425262096359134210090021969888059413500977918221923259152015689007449704500749313192530952812729038204095176849764766668139815713406580607908307363279409996199614524274872558230777150678385697866518332747252645372388334500833780870545750186365104870421998168638264300962301189087948816648803556897751631134991958619808600830855276837164118998661033668484357220509148686211630471060945829510972337222360081608951884931408065014505655563650479326812519667818964711445909241992410375797198996801547364243686002861106012468061176051806007065228180852719991659504026299105277357430889037168952353722826641255662697489188993428916560164523223556213635515325341211601967908596756044486776723704442654622997869812460879984057171033263643422235055932134736712102428590766583768575427321986763845997274109123693403253596626915761966924159772660846103439499705186020836537890103504198106998056901540806567327086884640805650986706360397839854622418509064184058913856954863352582686363593895532747271094557642899861069228530128416146148138783697706999296880696510762745953442977615629087457810722260083125951734380044823957861176677044130563440946177292166688394136961668307459046776078632761593083128359983708348394696563129091548582462661927927915049039409373325510917540636388278574150787341915632523688250247987135644885026643599470325015052652558135267412038855762294365968736926251115393514593745979154123822451900645158995824543633343516655075879828393313610745232589666042230058564376239838456196276210780196095072649892883771623800547513697874979911371320712650811978715430981985108931099459277975655734614976176973553424908875649390855349687677794962111146099601034449606661558941796558470244369435105458900020048524135735629514841728124895002882158864747968150408069547514537163218509062552339773565394409528296398193551816402092541654438980470086314305977441463826789938992658795814523958581695214283547958787772059777723411894119814515756237640324651463093920631086336433488255393675432269583598954870883964892315574551259676654761389391759440250122788101036584626613516845230576131302678882198391704993191639006723323963121033622982740410032542433105001473267183866795016851300663692571215691984923464051233873284428722169538584749010403579174596862204774306848305962090347367795167173089275456798775365757548967519174500068488161671798516719239051403967163856646836750952757984624158532029546790076570720258077432871987123406814995159195402863698554125626087802953238460342607092059950315977623846124857579787849825607553634169121612255990318950537253404271071336023224685024475626566502803806754466368413246677847224615811006001720207852303857055554457476448403455294182362510184569651077549892030016914676765374076639778338456058248027337452079781045573371560737038996076387103750475693097097581944822912165101821589181847432337424923633589441949619528170866866539652015787784426116003198532293639034498313194525922735023368641429712614436490036356567014227462666985450821116963564358233381696855860058162760702794399074722593308490486790587651477334453319206293306117703173356708879977875685028345406445073581840317877906201118854670544457017288692119693388754622016673222484145114094842498198422277420813721496798775248387526035103896401427857726561634369536934013475103902203745363729372152130748823755416612812710704153249199662538154013046696905393033902036876801862182947139895728954583941262603573329349870354341291017448891426734028932098480054242175434212809751575308857445893665630441949623828148228372638204342468455300282751843908122085159024946218540967150555129536020219412500843779566354838438846335788398789304848394238902254560253751947730068357153457510968831248432926770123707146752892701657079547079364309240131825329685096276586559371819809311778789921828314918067510611868619212477633289699501834175835474192020510724670959872334678206311186633736382063045364901444349719426812737036443448832532869430450463182446230812546531904580788206637278011517640437134396118805483718489183530373477185819750974400666378480863596709567504156309319363023135060296305315946985674151021855444348194088944439060559657303693181372019164015164510606297841298815834753488063057697405300907844037305716776174848810305773419811349512796238359887133782564715265355577898143585219192384208538582304357983904008319192144242931315078943621528951442022360092483962761215293394268528115287422644395203562145428876192176851209612272301578710168684215244865098215632345024440989596034588166624012874689606195898596396941530770710520117402154307664249127780109855551081100358866683873368721170559283898244757239715199566726022712504553975678549125813509570776267361787776277582573032554582120318088427387351626005672779753168697521786881033063627988272188792425323333344136801354699421818554379272409223664539158036826796157015006770063589358414895031650125697112103363171219469822352996979418646146514872330793080055004355254876944585270703990779523141708226457716884844730243626915358327681161414616337538480309004702607186924897097319107546838981234262625069483261970948096921934578402711102771012864107544280605944707910720578603537452747922044486175328642120448825939112329728420278588296424791683593557740199412302063525881619758633577193429002085409236904111636659380001164163461354321542703075510254512329740427340845755671077826820172792742811747746697888654981925893735568326049565590636192307672586396431030024058732230577137813584351695364576420916219484956012303746934120775572807087190640234443274817383896650418300673736287688513818954277666369720949684214575758080661974259064865235837091014879020967635743761233749525172213052511795496538390051641161786848012046775891418699000546178006423428867041069926612284256824484919288699009673380336301880224877300214691244201211707484409898646194546725101648783067298158055047737491084926559163723522685594315150313233174193840266596496152872893325280635346247691163266344140991672110235633978299733756965914676962972946140119273385171277619536604255173023970752607181634923636200284907570407354100267013784456651400370926081572047457418893964006176203295117480254065527645783085285121232407163197948516478881808178781251401547806074080220630847646442952988382456647499623291722213887107308202558677590732237084439186362088023488210864656050818245827749102973474789248769687925610349298353353964619253931961168174882450286126824258343511159855079600091699537717149183692924746373770057833607459252071093447595674542309001429038580905289527083793400805721725589940971706929323329539480917371114092406950312911057853789092548183663251644640109135947498802308558785719101274394105323763429498361285090545620110775276201516990893762299100963600297816105437516712572723206395276626347686781898105723261897024119976447885647663382336968661045829528059305102304108530123067191239636075954106261097226708025671312113486080600787822033043505732711031980268637967106422380903860825519902220264405935355131921950859237547822913820085046666630632516946243351230176578314157372475038586979642387233704777034844257079060212598065125741794110842428845651248805263375902196874542275977176873873961638328538067170772303816802993822051184437301277076872562913008086676216725443316144214437570296016374564671897557250589632749941543790919467209111219046218134053125365836766717943656420067654530168724064032309858022783393016075020217958734100283855801239517660168888683023275376971437655463659420061365520715097756008643177636767079072761977594088230104136627829820277168560754616042125717943296572008597706805642861627001686267217488763236375355757203676199016666981222266783340360088082346956268839135564645480908359954976915606116117098928093415756802890595888664462723547187679626688141569509733033655949926269389589349734907917378525096022601165130284410273327032704140802735653372623652311853735318326412699007320715308656727785616464419787031347159022021611526701113406185186931814206094725930187667849694951007587056337605455474107224983331747733051649997206369632098295735048901760161307502181954481446695277467148800797050697665431819069209015144053112562573065241136289120903041893190662998494429764601019859887617411049080441648696687071992608753628615866147779457776868480320850988301657806336610709626320069218803500286700098561615142782447886522194183797825766128331521626344074210270375293384134330166120218940383834291509726213853296728043108116093455111549212310955808823102893366144229617647651275465229562606431899302863326306759146386614420674219359154048989280076971863464550607024311313108490286712383030810524333680204395165326955063579816314767525125104272126075413060956227486434582026712763275008069329673989001830017119004915670760222325329369764405550501982286178945242050749911962519409905223490054785876490449905283241281700886369919211222245047449012119630852496317655411244721035355873481803971259578778762515541400530595949380966215765962503891630232523266501686134349900236923520171739135805128399195148914161854137361652378111888787390172758955342896610392824001795524941372494316332429956104445608283289810979276092385792754310201053465648725005605564245166975784879405234268484686169405516553137910821183822388881509208048217715509162363462665984326563136382865382605189122219598974839903040427686184743625950960279815873507329431677013774329818641591563292426323396815358534887165218706652799810321672523813925882729291221716694366500592788189191804888498798671288945202538376552894727488412801877691987101374339779709551226143482362946131124540334721115473867441444466509542428707673156844683919717123445337020144613686901833531007472236171273251027806156200683997030641076883009955843645277013039400001927608398531639419940002832150602600464493198844395087209341216247906502109974098025799574160822895965593887331851902772036711492198545464452219882979190285312075157975180416402492385833453857387228049454020332104328748839071660925423450438925328985294244533486960880443195050454701560211814165679686538456212754582246946608122151152307638328023488158605584245633445399842503321755401677107156420643194115803241384347695013447496243232999489433722046551530700962506718392862882258774223955217430901390512850381180544442109073181629052717884560272992720164890981492835148969929111287907597105030456734193683422575829111064741064245730906141533442419889112224981369751736912361911021311774247887123143721963670524317578582912843825546570648613265112742533468314915159122448217106364694459385543774474239161666405696714110623508401348687786075922890297495957822278484841470551280380336642987269322415148960888167250492726948551835025461590739469459700691476885412389029043993505380774278823433269538255024632730918640907927001098822681521277254427120144142196914183477322550505208492430312400308922437525314814891275186010797126477223004220057532527031095647012978015663654137379399384039031379311262445979450543482372446324729923695760668236628502396584584625872849643097214177146679676541996544470220013877136775363086679381131932547044782187230433413898867754193195850100148917189121377550922567962767364258488826421703356271818240316850373021249904277272894822529975733526995017576993987469610581878511410446959054770719972080463163231527071664462591653267824691898495239111468363824971263872383496717781037236770766693872465276733777732350122008475351605134064543572523638183817476713602488831410117680419666474603663641498370268953458591553548568525135170966724333602276056198648539866481234769794813365942925368447513953851153021594530139364463240140043023708795514765189665035907197743234700405676019879373935237781080435737230793690108467864223332262692021295488931254876566934937178463452000815793833637058577845411071268565378889428549381970098685898021240669066993851216106509542125286404566693566590624343568103707480632499853906830890115341413733286988616246610029282591215258244446617054844698159720330038614803845735945331470214080920563702532035586138039944596772468666872960631301670869279657817662334304138484449867486887412320784625452617716061359507835043267467198945601617841795216134949832143545127371348286165266449274509761047642820924756511293606402964751495595031363619576225753258334297719441001617436057519084114215966888246508055107368854409932123163484640080818642417977350204601491773391120931109289866045383734447834969352612529272985163103234615209674898085513220284641412716544019859027324169935710223261042292794924692972163938035059984635213946748026889639476128337495342982004271723839039667358914355385290322379959006591915975430423258721673542808439997478012315774441662661095168990792091444196437737193537530520946614421098122577160152123136798473943008822112201743238148609068435332981220620351010829722809040917854129741668404735584050220913046414576929664592995693764865267362399327774062787384652363114743940458296974662449535750043690328282625336572612344419060590199663712803708882222097743358634654374146647035377815933864054333204455000023700550632373947051316049366964083697296425855258264059296876906113179931989584538869911380698851704313814741330843463781599061395132247322977457157502651257423221616622930681954875138203725948826379844690395105260550946592622221137114037308824012689647960235051439827148335640023730653873359432605439098212520199520817601309009763129959595082057243546722431790091008970286337621654325358307336580360226711741301395994631437594239539577535013450929012112302726998047474592056851580776975130355250966161677817527527079457119324690470157743765870113065957859289457127227442753425494879038585099985205189004875820905427725824832538001177830398987045084278395870682719036297760352880888304429989812134035535090848036228995098963114427077430821624212674642043435995787790243365076921708392962495877680689573475169723518607112097192237419486158111027440296239274488156683555645310472182193417660722697233791465641837506464375151373050085277383369139948294037257919466075442083815577295037253234422180176420534131505725773334554999282719797402019418262183098578449562552005104099506308625340737212228476967990201825609920751337193035924967590494038164541063036301091766469299658386262748570246024837050759786105950294453182810886377865798473947635547503423344009709612539435091199732965095080447252879256845575296001789217181637644656257739185232126683640837646251766125350781799912275480510425040968768801292908336928787165401623869337707475885993400076096677964048141116281390653995492472618396242362809217515946531543730421033195103748595643926344822613374598046475151227792506240169455364604084579631562654917260946843354459714109030849127808522002290928823460913025728101865948792686225442521179164906060271462261734912563041420699019999005924733009089918416173872761035129826349566608887043017318056244371694505445762954855493102893830320223119792723588196632998008581650304484337460221015500766082746006393471364263011385910156208722183584385702089926081844650468773499530180515854694376838378213605065717348659084701059391853244833188008846778856093097308155160704654198230084404800771129673057024760271744701547894317203510329987657711931758663766852348205363203896857665498086719871031098721890883565553368321181782320457116293333703634414791401620024764691666640005781632599559002610879848400839100846696607445087074346911722928859965955640475703398761281106326961804989797077317613986227029698237933927190418336913379199151620247264803662177937496008031342203659642816806177555695360629199797932885068195243771658889561194596600431792496221327653025768118896905903067910006706079959875693375198111250038393734073920691171216957245931869504769801658244182273483954077021436569295409576446656254330673918862720530928002035876761526310865390044958100806763591775562077205123797536612807679112535727295291683184341603955916019714330399769227669209779035479251963183337103127187447866221128771908519617071167862983942793608332945003992773562802036635283761762318810850903411117943505887630623129783557354068885603627756430937737524602074222772983056834653166327632749301251368097634703021381443623007162148026948441520715239945767262991345636916211902069064169120131914454540262991556349213052166620776728434345048432808211136375987382926757182378065523612933666357118384180238649967285079558525076087093142970049394180992940950256422733139367836500036177801223509497771602634146177531786490822316801875697429057882909154336483133041273116891139396868142551262836085202820431026669659379442544072591737660221940785496760773605259732363422968291226278251872722453212508782214819578292473218847610999135603572470683325003802703848893460640581520648389028826356423637495209532634669990160965390167328426948042654946069494851982209987244036447328956734293924805443807252658541544311353448074094931367340186015371787419658726976326824090355304796586058425963166436178291943286212319170669915189597125008414562389803280728380461077724740726594329966248213311209840238496745403743634350534405744687186231157528806305732321966369882667461161715337467874985673896543372297568383536952632834995464751586743404161830228976808606553808547704389243498154016291365568386135273845356165032482877706664062861416703643794815371630208947346013093994082194613192609776840699857775901643473569221319875043620181627470664466362804212529965122318780005490296777459248527106446652894266551180078866476683450717353802541963842451133408493527781239340359023958315685631750536480919145251367257548069595476958670041628620170605189792062534410943556075754783202152785725640218317321137885031393361244332708138824804574030638503399215697076804570154977146337059267635069863148258253270970467376718629167485258079374536273337071929137052419919909285105202099793240613795008367875768484366312564100978498436243695741180028852711280885267471578410646234773073440476043147719068492357922901582322223079170372262873818431764300286630108509262596554619235272761963832128159478353269659490575537864091323109025084659944044576512456249864249658315641910159695191776148370658225102990416115079479431988675660107237747160294431572955579398225443219795097880499643624848701522986490345973712639713827995425868668112100397282730595152616001411880428954322497081197599601229960897551526353993750068320370482371516924135904263490649872645219250169095905023746543236486795742374981485837784202643401995636446102902562125496152640675444211283977637737627838638823933350459775659980644726504311608346548485104005531458953332457213058302249629641662571571242861847443227269124733714105653132123765090009298112097362919291356654377371172666095994007037979830920512306582277192688339599245785695628550306379130978380688826795468637327520100720810324691183387744638158900524833216073984844273352814435154685209514763471490257568563955035697844579358221884029438846612626978521754759144654713826646988557062186755913095129229776152054898696691694570135769928736093937173801438834195439917710116638382272306108252849178455689692520102814394116092253298402978639245098298079357861534159550182046498169679691282089425047743252595589433823470091183906796920019067523811880748864751164679679428643367786128267217076565821452942203804556852918140158404349713131901788598067565841686481711844349480607580193783525938073984989655926191797077224829792626452503969971885312061294324407895399534577925721475867867243505800579026139155109919705605768796534937782941857793328778474962609528145299013518364495846481158724355613491662455851758851846024344135102611844551648723774512638164368813315409552543824651483347962431854711609745917872577316353337992159713915999336893365357053321198305521897167966465524406271259393450424041942050210715791589016310547218564000997951678887889399976611232916924083223749195685972530804430684009921510102079460930478292707736975987343270977493512577636117067589130816159796715386688686984678177240505834186695966876895591628839338205075754588511040704618903032878387481218155980483125422233383492260672586963116765503855828711244172519655156226188917743299036623850633618359064309861934894340863465981345019415686915546274488582403466254678737356386972480232059936458604254538847147661434949818716852115600381353692460414770314409908973471041125267573307602594499517410219711913974448755108891549462468076339660149206940106458214508598857821328246560412961427415867133050021789641586458374191736969617220463297203791470475305591953388138847102645150409871233095049162506848793735018014131220793728126990464467325882146495070930840893835306009154414748781699102524040734952630911143300670583999036159286194996756535360844619274299732600458155736627841349415460963052222207653877530181038308549534519584951031055268298549282797568390084774863507300757408825674459104521519194865925154554551409617035418296845520236581815739956690237355006869809980626684919788417955060842254866718105813266513702762344134620263620660000983829221573518229552670933345896478360174869411644125201448863478162958235688098863359593668979618529805341062874333654593175217987823831622001918123852628788908668349618552545810007404300048261364616364663000690051583897155390285362915783051928098789548303917461124919491534172116946976467431372150277382324147383313118463863394422460174034781334157622666345646478752401367586445573986645805362795020056349201773857406134087849594248994091983448287374156261033966572980288525647069789890685998716719783308450157525911208816397723389183543520974280179601927516312713503695514276158632793440048792020765918202580315819073209278840465150952260273984015711761061625523253106270587011524030829865742490521232719404039126645745185814127315809499284357135040371491013964631229624525325893731247327907580346816837955285739266486309670818896741071021657500178772142335352953970515527360104810306879442948795719483421606190579344673267898830764678118392622276901257907261017370655722312498922187237137635928618461402502220312810248604670266273093198609314700570004996167469442905435957276951255063324307060821183876115270542098843580712626212601110622166217411130018827339670784832677465722724982246768118105993056841198298193034023580265446785725896947388435365749372797311222747274922645480304726266198356374874492010975581349801932003066960916511570660732779782556968361410846700913346420679121172251745192544489976081530266264561110469375119476753558923689161551016514282958756877757959082661567689125138602670967884333990686815464734783034049670969633411518073279715229262471881023168146357203742992746798559892858265611839485641155242883678152394005587950288102624364362366373992169387206018193935326119987104637637735402048840960727090484841134143331026215034248232038711700560987262719694257649324779191727663944251909037600517083232636993577916419737157102216816089401958061861067030123510906104465278562349838956765593995113433827088000729148453698299398664888411601192622304586458570888266143939148549912672136421691443586986891584936832503245387038594392592164634124272660328055305586691827911439330787980750650799250382510881083769448918407029743589196110669103109091773673876712260748412041160471665283050883625416399343603609420655614880942853194689397494141059633033171829053455493928414399566385831897376988407390263413446901329637357536769372083419309373834043035429665597069346068333844670545815426921565683938210654752792946386210049555746890409946421305809142278359902566741184565164909337356729685948552042989843528750078482746121586479439022257038274197436415068447505643817063658431687393137073598347545195133817440735364000614249719082423206975403922931334183531173997948941611420154123801366487209232801814283704091513597297804317732611270117063360383175508236874201185857517155012791832300170844041870592128247672198462424227664822542491158088335179339459082759222142490293097900121332505431091980179695052968567155945109102052760867949939226269985156614836156682328722162708768243879073925110439152537895259460239062895693368388492074398486184062671241198896209891695985564550913154345721516215541609136356260638141484610467809281619654782288885059521245369357427764335437133676803852722345398652256142609497869225418785418405598012216935253291132541151786336885997626488634268352357118579897621305091197345308112021133216043493680124215018723147718624139154425325895560680418145042331841536845001461466110878448913531467353973848425921320476678435470202692469990151908615037671488669714732230260148050990986409107312724231526963076297454203269929091647499682250341239282818477516536262109590098777985209455098653233755479826573743522726812462905326329165050505412714639061930890898792905441554515727470725784412242826376821460655534658846398044887853973221591250891448373949398031670830069744971210545692848886425431694487597053271839253915474267003743096322471099247636080753858481585883180633510946649986819258021824347145477931617223653184708978518832972456834009543765280792918479524965843372339893935065636908279129119030953686198331622048175731684120531097934794286144677969132773218920750526976906704264328504857594810863796678353553547332032996559531267245584624580057948179258114411274576138699694001986054452228696980718616570495767714492827471814517487026143673914689187500141046657121231181676773677063084706439694163714231140643414506542701389239586806245416332315853777197296984413816220161298057040178582519870112128202803443400650819334059067534115073932873614056947503824661956570478071058284521503153715512061051824427327283360269419881604973062398896638885230382862879643927008990723891597463525247602702827203053769496823815389862958611062114581555706080911066258630793404615175892856923781856518556620846504896607077547171225115161887909142698415162075200968342703489946733683742808246780676116569469696694893675661635722543138414281590184627206797005920084929099940455763676558041798298335501141836117157867951013117397584102980100283217775011630378174552276464396408613160349261426814085586931387470333511686505168535872866480347939012050571612822764722259650174345371197088687095436893134022464114620970696357644788658429187690512152515428084806733871742109943075550870280331722390184323235177208167382353147721721501072399066712077158307141444603635563526241186017369312226174251946828970210443900908884778027790543625717235616176406470305002390530524352653159511569478287650290898365344457818117322090263185425872318527039066347869007836899092307032009919471881920755120925657571404348556211457908333453811787185572948039172855824769737872113340422963670933524076512151148735027047110012593749973664899216439555692547692680704820286036410247860629536768121006838311776270289863302189198193072775079789901330167156042854077953340507278433376005100645163767987970971991110655435600303929441415949112169816745756672030075792773508002549823254157170511981526613088510891479243456105896866969325439258142538555554291338310517896800180416375184699399664734005213924493228825335341851478011196103132177026395118231391256846766561808821974289261259001749462306572700432139925798927506017799936152966959200417070482813805326068815795773787386899672547388520056431782806153592256959291153548485679460713914048566660568876092682639402543538595945760102753995838445865494691221565548106757054276202932108910979224998173979788301540739643781573077544364493771823947161299638827648227680446146864888008913726126506844634242013000338764159197191737377402832511035075255487268819761655565589693234749079880016186950571863272022361870447617256478301066067316684825806080063820668481791481748745138412231394296970480435431899581692803558351965998573354324225124810420333725783174125293146799627576141600760679819747703901560305441432062976304740672277483745561677191833764716241699081180339285020287953794888863865183325965394592637410468198958334056527066122114598227975840886489408515646829640322915258058900314177772518915507475936707718868605040227178470565619781860311015124290751403883949227928244111239216328490724002604868449158910607009894171869987820221903213787727627209390970861910032338356264878845098026176903699538777092930200088970041546340321054643241521551640397668729479753059992109875230167934595064671648642992478563604029533704925207595719371477243617425639554912216978699724213272200781962690289760473772763218203318145120415420624747947575871425060539579262460924015888416592561045078020739416549293058059993987585082239018499052632308542415871078535572946038821241465994615844941634320483719148506355052273334690384623070906248464010395264431045252120312713078076047686892665933279377038447528230768829540563119916954875987837639312310120180768020255653516112692860218416371351300455509888800497411142277120481960212955909403685662514153544197426280145323657598407237264343470061473948128066187519393911397575996062438377107140379827559937874942849671446270069061792965414303397557589433736422367766835308755786086719202877525206949623775416397687092356326518549477570803654632035234726731360008445814796823099915504123687631627803246750614228004246143038588606890762731210555209024348812524899516084945816212355438770445715753656822128150327420856326086598499656482378337451171706229562352956744373529212090515633271713242610994607454514854366684973167182393862140611469154307971784881881421259163606063837120195940533564944443667735705578677888396299942547217380885088401329866236841197805233694226705733648259560511981286613319376758280686144592392642957587202348420021236715677942740684752850274370351824938049954831551405945535217965006922985643876260052531295472440696186761237811765666959379968902516643006605213215721020437746294314919016853554630777604555279946226332357432452031954233771058090954943058347552542426635549213925876522516408897597436666901030633936748725853632955238353737707482698284739895479726630905649550904119508191794138749703245597019432858847077690252356415040989637199242136560844900244872403178075922094727066899789532706709729224952708593433711073995863729957696046779240675145791963764992039905264436397696807517089276551374769892229511084121059908452739226305690873222614115035994087667426092888140051299343657292121514386011364571088767749269800496684096120152555539448260641802970952663227578042089068681010792354369009496092097780790964115238768915816968891668176566931918435635143615692794086472393864200562769574258201978896564599001954690444588453123868967872101287826630953352636050924270124076438905641917233812658772689351112469386307162684737154587062042149275935325759044518224131151487487680591006556106752739530329245666828472205818599920750094081392283287121817093508440538322360723141976161242780238548220240978643755545675670771101273676511421934754569902821998444082415303373850154199677625960163454348502317441310706781986142799071779523504083526622560199382030563436815595668427975792906430940246423301264928762641811349020507499161842843991112685509819252755427388913526367441855214767959932755828449419694110663989127158391408763529066006294612068476226597497912205526546029382967251114592444718170629370882229724965171420382079779093760934045301341821196076369730916641569468462785010814332201769878569565463823902552943886561136603332726984242356012574543310701578260543603006210792874990349629024278786063428836199456355871018997167045598640968751430533182744720738101405523588386020061106185028428625957137832847602759398202128860310821236036768499813287082884577196335404509892885877852591557087262623600734599460436768956567011265229473251901894300193044989282627085368972458042134459847128622538501550689601826004278754203441081368127064670566438581072886520918527319983285475371061630421605771704702181627848189060059054235970902041487464710133140784088773911263222749873903523267920671608937143516041192019943531921056455487799189892011672585817931976149941826397421989471450222076963707002000271706237420057673800337990404620490429858691374791509211560806862211906401804692060976170799221435595634779135386060692527563937560296271524729628787019130348204491620426684359932582615814886054588750734780685986552588043810268466419636604498688989621753290517463722184747757204718028661802743308957976841565024878935933740405910569185650939273388461534340222458174134281414415855045596085829879404791650313323817283671725140749004431277727629487770437987626053058977042218330639531546692113614946750453530074859531263272749712483316714931130474904639416342489022686346033104475289743058933777228396511662834969684564261347256283157632733000910136860804206913577206704753026110804974971110714637216228035570405537325586899706140521486324733976728083785105248411552621167035519737855372915821211757730944597698968662247358526165344452069735490924218487574951537239078810640397015836319374664791791731907678702001609560467310249127492827157567414518853340497619709278337811086411328696802907246562167730848699504563984431281997243491139353908471457999590905995176117939668227670246696435758436962566506339844780952578566825943227692047062050795349085444114631863465928490468302736366034613101346187804228491720953092660151437811640297257018871953364828404265825268839019104054491947988102847275289321327344208788829915185802003652525802134600280980240033767439963247422344549297241018890857258153817082617230600207482140514013985616942508266803245956546168618591635845059046413882887251962794600471885642570011065759401253112909291351051328496045649771592017937648382294130411709659511632323943842140592653789026615914862464266400725554695067774238882964687568492933600192319926198202150260927145686693297754032959702277354010142232723218725040199419617138762378335674434075258017462443131055909720736848799804752978597376939506760936760956348974561960676368020125387014668957015516604618553416854532986330096028565774552153264666450113556023122986016904003781779317744085115685262426442000924692896436113544017475268739775784182537767111553810504873664896063184365092091349617224096699098988442319092339423799017403242728679927177554282741513621354287081539834954974885414759616762464748639398410558260183819728077632684413502516885133716305535330623390515871071216271614026123512369182589928313893677095213542511959055627463387773083231386207315757703641987403505287836183599679728981104237730172961794940990197324750350211281825991159317403135283785952344300506271616998700302221157055155968149754947138068555219384630959541689611298270305100328691884293099866172112970599575425820280480144629589209075139674908191929677386051669661298966928326818108185276279669227796046989412428208616978871112339069365777311775641703034511113764466407660664760703512123983888892131017237147623143577607905887907170172522805048543132997638323087935219359212884197235171893812256011964283251521608550389730022819978329284707961164799691656633602456823822055550748872080948510237371083130347789428614500900279063839440581090212351572767737883399984644886053942201917714979246098225708326371519825067960184834420614808788844200017484748404726551628503222229623898566189466220714421306744091356763767461208611567222121461624131142437615289443665000263085143493090544386218617296826364381055860560557543480744348789073078351609224538070662344875396188569945079548832220320016117187139807020001487354995759417670373627570855365933786163227522473925682651281274831652522036018499211163357167048144320122785902980444210294731545286274921316652274243948199092164506858452776358813075195955427994367097378419111257131873018848558317934875873273183139078419146912555547820111453939470309072484086470880616343120612470746444093553723756282339579810768559166697817357244966033147311946506814528218318714219419425284751239601450601420028103524422233381980963195564289020230756338827237198399513351491862183960616149986013670799644103962004405485557044379212597786568060392246112638477326631185210291718960446227223045608543308574388090486026819989141414610072070642076299710272298292661182954593474827998863585935925031154972077922275412609278539309719122402605189778591910799326689662935663729036831291781550633879056059846369501348589536539887001198487100429452456421449753126087708565358137377920315214590996128608832374884150128607442836294965809711986010449378383775289081178067257390586183427690587736977518488753937764785222146721673900199796266051836992369501367707843877129746137037794771442632780948032669359919695963175906904953600367315898745193428984999289611926715684703035266419815292988195209224353836240417917846168007880047625706741303499108109797847690512879771661850779524546524929112188919309588939683066344439965429883235284786190654088529034381256127372446272713637331199873244614354105499880543040273407816946018255933267189224707604841300700581076168190687636508223675059907903891606646829822326252369944514432173515910588825150960686551720639277901421443288976244179914141902525247146497514899038446212857633861008816451139936286882227790685753960629492122713420360251515374724789728261892861971781238733437181703598699581760975977820670022855271022490174468652648373274297831948103140161163988683296344911235147490008395560340705704041481968681757037149901941536260364281280845346353000625334549115618557268099329980508051123249028794708542223334779626785400729331255642855234870246297220137454344720306664679472102484632925225923330221581053208520634860927064298811326631486088292331130217694184680156342987780450321267644170491117120826905806488883879164665725430084573052986740209117105885610770225915019715147452800482726723553931277374828473565653010996100948462111914447580510786764596587364746851050678848070215184318645031551985097446761386507223020529252217649206342361518300810206045011754107843193662130279175111634242512182694558172036133629742105196708827147331093256178083284980912420521894914460987910781223661256722290901999913484278722828245195355043385067166605170561130947013277798085162678449956028755837505115661746708389657271813324628446851685339508077576637971653714063612601644693735769193278714074240685771885385363825823981363565357798770531941009488770880540264214855799465187514231094000614245653624235802563582864530965821290204437126498235462119534856750535105153460339497544613842285406516777347678014780389417357995477924370152057218985560524581884811937995757654005110715343351440667208599740595858572290707556563754010884587796920842229513496774987529658587276118209157537191351328141977442287447620366750805274550828217628393334002392131165952998901772216870455799890712316396686380570362149448245079042536990119232927539324243494036292148894007951453846978668904345367031478512647677070657371173549702886243243135184147591035012915849198051627430045449949057651108322582656076438840891290851001395780035997437099525839880752749942957542104031970449208089085718521453323623813782854262564137839146865548486089065184778019820968976894623093653242113079226988996067287876284695691262385362234999091280315412177649855170892368744767545081061707761221984187435970113605869184758665166551420503382271205351357902641380985834370787418336214611129532343580690938451311870160662196296561552764586886435226404564884881637399482249143968159955747992584727616305994128809582601777630402713192108271544265462370066398336596698841522924586358766523983602291758310713410031718451665317829382506095081838088024464744658398847123460305804648696900049894500547029330461484457290329580613869360022594827008031208918410373070070462408158904923459208884507224887878301355524554301891397474240795605711968320583075819528440886671837442716486231550251354480209965784506646951229780560152803024526973203834615522202162383091625053795525557663664535578210001906458688822568656658310283761088498524315953964678868611225206376990748440388139393434142586226408049625994974526838971509285396142699647776759414592096261747622121653903252138003402662374868201111666929972358995124187645455659082973124145557186955667741866652907483568834611679634582173168440877506489734538030897857412620174506799676173002499972900958302581107155224805125017121986120783616858947405489731628849847190777620040092234228311924839692715667253882260306990426567985074741129049224132355378082544556046162890087295704067363701596631570735593912606572840159928310378838545222238748862952661693019238964159623596520222658458228229389749967619400984622294078525186393907798822912038255614155935504194688410101147849649203492219532123277463277178614652856553986553490996068276523361614379718586861930303513099120306996573401594946543581083976410248836606625194328807885906902432138872061207433843276582079071158999387591114500431273297205372710821625794379464938224027051757890339761414019093448656376920542072614221197524378478009359569249749902429071934440408202057545353146641495094977458816456424198879492770161381593180479290115717050377006090037985044041980978959833246046218657719902831969276347859548256317559115898155700081974104317847269185920030733463783021708928784216434871507966612724140056582719048637052280207014325545911011841435080146742672016914404107495936197601032166747058732511605815647722334005488243991038417692927503917528622599499098960730612012308847280306373422114852837385021163755314278537890674089463717226448293871190989679106168446158245948436252347003120288508018646192728169984142502605955229047015592705121769360983783885185588830609586076306124325221469089614564231153900592979188107850005391139935129463989466208443096631255918977676032857036654061326687470449909635336590337082018811712674968137495914791777473377338830569024886049349805249957301745960330225010786599248438942751053528730169834304949682588176860468483084274350067893513092828608490495525133927729993153708854693128802202232474004549809955996541967423588928759939469873374516978604232545274645466475364857924131894973832439679729086330303894980089318586456858341266688106710066409813329811827673518693231912315285929268391221747419972589281159042454439275585626126811758838872863561356054069179616898279669501517126509823872704760910302181734824716797165724928112310627053082586059209424403146380469046822765774394441656800633483646594028623910357610816278629674138320144311635961440428164370725403614434424089469810622836425615404724710454920344987546508275056523381900180099048956523908898581784796258330921331234913396266814918553650534624250502206359610489476654118849947011942201977056078791910060188189807772674769877855980767465905896098272772648679973754524103223402465299306863274362776630719620897551035990208260302408129747692271095067616433941941524659528824310404963350888510387185367279658132208953500208627513564085262075884026671079322380925969904722341897507802035320626287486831797705431387065492072481532057203912808844583107539367142746399166449477958097400522745702736101379283234716854619393789949674818016986536409959727937739217699137474348157341848172327907474899361261534602872863042325971832647231502672101746069225787841914266466592721898339362126054336486193588316293105086567814397262573865789573828226972276416110037505015378978727515336995803912714551918696631876012012779511960332709956224082227030817305213401212068441627865732492710719798600479559910237702755624706102751718641983748772898892184823264414072016395074827152812884789339795308200584725360425459351742812929529444019264711916708597206772045776296256619641632224033508691050887755794693387824489630636019301420704448028173076996377346484868059231796406112225679975728196205938316469037586378797632269614375191026839860852695735596056493791625780166341163972203599197074371374705747747264282762125188651997437985179769355677218609561295197914747359033069667876492410243597479664740586532204266013501409458901467792507060168705977426829991893732177732985596434293462728919452045336290046671422775983701371237141462702829419333368878517526963476309488750467951769887427482392091169700487707522092541940147405519577140055021795440591789668772133846253492937419510959510479426545354571500515446171914817674367467633899657563101781482870143094094621875890543840438600599427767301131639496448633172459192003435089174771886393959113765409534025441045739413250088048416764880141101198860236522457073795138818902203706743919221805915244750596174740248612441291503911787028382096006935043821653050091375045416562561916788110240267143452640248603710215156794071477801055936893791350528066522873017985608958231102079139143799646471307177171402470646781657361159942629922735665955823195821809943919582445160897418088379486568482657916095503862872635241217121053537760535876282251479458269971973608963893444930407145795745537654373679741204244846651069281705251445984795197644090250453682356267344261816865989150318468756363729420909532076609576288603008416825977953575613765256044660677530985715527041782277094044994536946645452923005307266182992778549200832831020053875745567121780724349309376772560827555530747184908888680760027869825700029863779125815330534515195158447202704479803800766280753837148682686443291445074153968505316656666224803303227748646334685820480328157663520483231262076040198471095074295819621114065189808747478574995682116425683499338826622789816036071431673519579132756846644624411189275219554837291024807992474809094510148494511953103693863558683367540975563062245689215352140239614244963993733113147398914333819921107392914192678915428724534327294255448484520453061529483953719607748800396942180167296808781690228850656683120786533807992010718666727712590041658418718074315920518906759982028518511018131370657216290589501667739273077857150854587430763209423935666175206081664447672826519349282362278368911898802021619637884038808336077715697532420133664230545053178732639920576913560453097202378202428748397048378288595479835531949126484345654896491149653954472519871721151898997056047059440999601595079378393398129668123892551179730018098721238853379376368481119924538775603800522210978957238991618590307862536302921548077835193462451045685191211109386172513162059330099139960287074317737393667295613523293268257983220896299995239128395533088024843432980933331043062745427202557593256425902588713806302614034050217304650241966425256090939128316404486483808679007312125902773274582850157169882854166907975514091016494282700094471193451062599201774161226054945831252221683219773395689795046863240309319108614018756418464555402354805547142342150458550475512404406943030710294870961188020576802903079535644599188364790057751478603305185697895650763051346588822458986172780318449669363607634516924373513688089252972651323726185934075275990163200930372659821820568427005679804843784592644104844035416895014065421244583978875568107421339119621754745905238429870412586664347828473478925442081649786671798625018581096414398521040109744173060175561857772948990110386727374620879263713216636023734895233650170938295290173761762518600046344118384953287195098877063622267851360752613646698919889397007934823169553391250508579510120407957811407537527695529631236800886954644520551200337424713112654115850426399190936099159855987906938239643739361348389805052656188095792696465255421584384490219267800177558337509393443484799502645394309471370985819770147204157296560264379604874806332948157207031865469025079067368116746099112346292331576659792691842081003871599284857938680593953242062272448354221846764688082241364155294878553941957042317405933077816777517233505397794195256356138153084407910808615951236694383734035542648606951190717677007281774155787138928103919030531227761282689472156395682890136228203074212949970683048137105377267732894312943175785052282633044909801258018240272082614161495424543074826666237776809219990513791965628761438250042292053370117014393141137600510331909221218603828412635256279765745532209935363521407915625438991266800339591733247258655523207146282431729706042724259937838946368067583460892646067817744109862952128578252065767688381562506964478241366766638302286442060916392714769657033878778885813303039288866540183365372502392984906031915502342235856609237572895272594231230600101934421940479907402384359239884837306359614234156268262394648862401815260903908560723357487079961694567242557139902882927744923739893773832005221575438503721460055259398282425909129244207264367497358276618036348637230869365709141968247323292627742546671868210057401709544467628600641962911218437216587827607343703548756465044537134213063492951400581144548329159552872255219452698838526190921325244662796045997165927233849003758701453448891100616074386663967509631849019819597473248655890691822754872970383853294185359768198600072049904225467115971679547631541882153381936522988170092498124275122106845119723407122962383210289624215086336485705984823273128856080844421682450988484278315620794142020263345375856882006419741830995567816598229895088062226477938854374928089482031470328264376242198908159539633673765347802386910606680381346777694778231457922672313400789593921117192249137847657855294204198606937628661860895916579546977099708834532402427626743871166629976879580751807760666633224729789365363095160352277310897562240521169614675815976150426508439185419899840320078669717964259684198878785496482634973281892980705666951311265513469472583081465455375592074623632374895583458875944486085921076677629534195880254403424128377459788138700649008602528284123157716474390326426488468622655161844679158980400637000659611951967646634940203847428927716732934429235571278577691595635865273605078610680782770167856730885308919897491387115184567995305513869565332733397613956721999002684652173120018713927065889302262361450309854537815167059322490925846282524357381346710755754707153024802177360669584447449343173428969279608423914503745606813845685652169565389479126099783939391173177322785822640381482115448383099578183690436989163482384782585917925027626688684821493726136864356297985525575648108061483675710468511808260961952783747543451772072762693828630038931548528147653037711826824468201155934764718563589856256380295394090011055517551371101198962211639274396273611349879873482613980721080239630306355028719859626890982343039728389008279107215620288644219703531112781454558780309435027329946170737622781331461195416975311519288041602791250159652410578124030537237968083825947474262283386482419839157353397480786817026751455217113276611994622570951590903680187447307343523258046426920682066982671515887000489175756216279428769776929764872072962020787610677162848433821580181420279183386328392955411220328679175780248094227612561998439888280947144816477147745681634517407329199996982216831904946019534063168827844798335493227732426203533679794433035497053681699303728350299245075652846578894925663929887387342669248975360765738557210800189753946005134862155300935569071427525332380727667634963115054534816623815907331053312959897998337714728028651644791864892664190023452523470128642437420302149238305602564655005068235391353811905779211977458257591973435955594667472687289795096125456259842168789165358378140121346922790888878927562408674457024909284077002206860472623616456618683418406617800422691468166325385182808596223931137198975405312208878413315496832180271567802186775151912916646354776319102282012907249554976949258588620602347282367498542684932278976155921593663231095405262830136028524877788246942433632590802244590839864398466240617033187011858916785029256516400890018864044642183260597345293670400207769904590774148138258597319652680183880242345967485411085691335001950313156911230803409012734552994394219994054800882349225333434017766826002559854598234763888708888434702591638196668808731139931473640141595041486524676142391164502988529137202249503911449520198745270485182234046508878156626685722153663529126373612756706962348336150292026876389867498068867016321379442670746107901539513751735347503767929421880407402619978419241211349692013186072286143361805002558620871672254737270690695057974272913050430475118375407644594965928395321708925014784315539183569045402318983095613297149015023174655697548548127739349913210775385616149112236212039400721708687877087905390376069988678772354637059776194377986600399610449892050345401749987772141077743554861673687583365557265799657933015754079570073440521225098908178082729525837501659662362878973240870791245245591130713556845269941833195433203286650879627690463856042429633518554136218985409302026542979432937177233999876363784939021297287671149701765054381628479433981016000937866761748546761017958122019146275705792875366493297658907279719657755736039546362404269775057259747074350709531749690863719426618047374236128408854346709159443683570180466077106566742723034506322974025743233668673211589476516835497825534332671987662309036969637828495282364298718183499024623997411440831581374755236784527533146500675212265658361955933485971942599886309814994132110557805108211241164162112684129511306790700789000976766999074782874566934547187752485940512492143053603149416838622963806380697681347241851672783001839171294357277220159885967258563320085261776894510656558526641576109471263328554451598721630169502178155301089472033358875105847000934397530666661330730266000337001068483084796457133256089609508226734801774385951011938477873121193531027545426361438885663120544959609323127568072214995064498500685853036870507623535234494962562970079308677499284897341037107489404458339857722736672478537749139273126494217719886634108524949793124665996314555369381660383114093086088452845698782327672940539380863252470956298216631405027417027220672848285234774228022382549182067678434389688195078874800035094671837006946902801962859621222795833390303786670940245206390922865484181688712112061439745526691388794863507726511401295764587949101242648674739780969219451518030764698383106052566941928669977404104781624599068944753186217688820048355085397085872834648952637191993387854593154580822630162359771322346011405938572940524025827667552833645057740542246020829823808345447372815485866043260145979443096357328471003485483169735317711146286130194009036219493355527996421769116992591556348790566924089940787182520915575909533977733406182689217373495252550088502096638952184682191329811007702129565872651577464715453046639133677334024713612847234130486808164502505590518352374869273536561220870746633000004024951792729585526491374198986244844272598450647598983727877314844982444005410626711695206238628090339292832731867314850373883501856372744843761547527349520641434084630855237814946606893570160701891317209473721657174445185317458124829174490083450058457662231632178848739130141717179672160767960911376889253395902599252094037241681206175965137437695293630840365621482484141977163595883785673658222408523808472856106589771980694410034797564063496602634802312816960730096696942696090476299980613778276395061320778009877171423236340526911184705057840110214467171817199310482440351929828312025745246627872517076733695095848098378692865601238139809148007343999667319001551741491838269285306021767701667062644132252617409529742007492908316040211992721072114295784149728903682245286910204690894013005009696440604755434723970222354035168351167180951383643139834140205635102860514547933956359696639305281350606803330606012342726319891028026342996010642933347856741689467300810885136602529613689675116696721041634101826322028044115309855371542639990493356336154481747990408598895688216720920213559244495140102275851494789884212027546427402112795451858126101027251634320985395944500182003540115638643015548468570233124742160815392006237551650757188236949881746394025368110759015531948956003081147935474900068916745836480962248692065443505890919211906119622076046341835703784860008227273327579740199039391150286469866124686451289412718523425392543180572126390305035921845776845644050818178930928443601827150029767005418920082836075511279846272559601648491804185514818653126840146943886940300572528693399719010885953437367640839025695349717150888146082549849721598679504073509323881054560512680844076436384405524848061023719131513006554308735431576377809660168448167881674162828906994210022957270916018014244490959155430401605705064196906555075934173801048242252656179627598219920680302071361262445235119396432862387175928027901686809750584937194996707869068118956787162994565312818881250198241354482562405202749889173995267450203541642400748203496856404919122169099271134745288767968848724720033996754675682144551630658330321982918555777942067516448846797022831942191336479856316744685652307170856398854055386820168907534377381071084311873244036597300288500369127701531594401005636895587987707156975538154084032750918009358035907111209372908234149212199593571141621258748116706628776592188219125588891166959648648379304331617206574021730423573829169347985928290250832370459315736816339379249530953540703786926833955688525912343320553705899128073697032001868792266266694555782099036760791881338553729785608341939783441170152266486069114853434874651574769159620514580309768257012865881819190443400622227392061635868393421529850023570653587410596949239880799190878332425029395532706101954861463325595398045214188342822676773192504215693676889627349209672447175226357884821721435167549825669209952668147388870351407298055259157869308240445365624166109798674797153176563555340509047125268397616641426906794601868902181911216770220653405018952276615781212413236580826743781147874231017243795943931511706407702407399212328365942770029105804439859339904250014441623501616583963725880335498642431383469369297459633597240795659098346594709301228673556041332124808747891781892471061032689444493101701639090661289967001914535622444277440884288562782978893424137226994950748500786827326876267693467985628471489667713863894505720294609540297811664210452571147152334358334523455248480666971670987420245849433455481485939322745281389971915075151023697051499698640827831808505540333913284160416967807557811221303969278775710603004386085780562970407938351301975328529143012150678657601127169776918038075784505508424715440918884406342428422931900426534706757116721259949737195296188052410139805744938634280638133671823586544565689300905790902464955119562718456743975405632738391273344378444534317428758829518729907407400123256231718085645008955209291984104582795856758144102680762241657493354171510008896996808125072800938619708501462458021655264237360870929839718909899230178418036497185520123709428505790560868792517810921148948376701343535218936369485576411485841729622559428273521382355365087676799231060686638875302693435835498211426234824260246842248187953888386261982084550262686693606583376930115143708082681092828973162273675770935150723408569055991513926187005529338119523735203574545919550044440625263889275609550898172408021888896597666128953883555994740777056841581803093522454009494436059599689104308076434622328237363212496766831137488713518660060514038855654175753124041325446197228526635958051113137567150167614127195122262597212364274620926551987333513372219460471971800695064046425881907030371432600364883016311267013557653054597356669990796580707870156801077964533850829347889942276807195065768032318952001046524154171445013746557179914865073048062237073766332902101347218548712439901725590541917765527953074397021005646258466116525770575801586521439350709674245245920656923315280824915877174270502289809806751086102246852392875666920738245507360494478339997917344880342597791128994095644483927155064648610721424910429027712284832614663756431451250056375268119710213308805418689468950077587807625805976732194111597097384956155708344630673396382049812114383394419651123877362755390446231541159192790529086297249396045621998660425518545580592708428252885953313537557877684841667082406359453602762411596054657261330695385528652730935358915324175499868685916471638077760025995766700001476644229367967824977496236382016522555945259921052189319635585303671581752052007037879549694469617777068560508070075361412243352949190014046834394805341190722194100047703424874138928541649662729173139971727518286086036703683978940682892112759478604358223842209398745282918557426011491921186328050514381666980923166966035143144776613355342903666897651336397110072905026643274045367017428663543281351554726893833430523739918333107079957694773076746045321024247328088681654857239805569145563262081217987689458442360770072813551885585948737527732040384806614624575754167920336033169786639648142731867330691493267460607227703265559552361508112873216529134846462118275372419060736718362073459633727300953367164035682879813208607516689345587397358341164856655579238427675596916425313814692529615864847461405916744296997149307944232767668515410524620483222597401274523200996854317900465563340597335562646915826489620334717437951865119630026156873962734757062145321607479175073516132287852431810847561039887696483822067736381967116534873709088129106652229215331169528174678206362187148736075768776905110457660683890346988532515097153499362763211997216768958965518929874011946270380459889126158331758904827510288149965678862913519396645574228117352696496811122484391161579316980511658220797459604849291890811088738414117252180550011114833401721395585593957672019403639109128713886918597390501624236723327506413994940376688395119476822700935484689358966269403795421630388783225819071802436057643987653365198906555381654570697511279537754084440211248195996638690876137296871060044456948202288818888158561310577647951316451406850044439576484989949154314689016094588009272230603306211303635611000459987930094107177006607816099099402539565513381628225650046912610873712310432726307596941971918408008794837625510775588048083593214842548061121677099698204845849832685310950756939423680557630485403725800495533659224052204542469697099642685490418676668583713755639752727221699963744277630559263693546317297892254517420633207474519867280498701837780216628503672470749361923873625684680931761757999860764592062176206083081036702886073000716416233879819069509049737173737774168169753519776131733357216329739566170672207286655889054988476244807250083078541268426262873813231855635792820737135179788543437985213669509094009310935018323570938325649750500010841424833268529242011541915800272834427770150737934611627281105409328057471163213780381273345536318358280453790904174303270555771743154099063306920477686985239910141878289439631641869080521636445597213898789476309860823207074707434747417627397889829177470982366901502671671454480455410060576651650325806937941444153694780865219396030499226950347268288644815160383714961362942384558206378479386573955889871131272167085894560208022616369698508562677946656841190610211842443022321928075295220695079428406474310806100409111220920139456102715799617431579799185628167540070297470514236967733536828381511087040302673428534655653092096904271275955582041821349567770882534023663927615176101176851158882544255158716857134095904576003765001052639146995783660947792310649276249134570330942308068632340664044868659284719043252522455466586444774078532278170832655405430577073315287855049842229452059985982612844490053405982956244912592612757917689769936884914043035744495036934798877929666690903979901009399090690517403995437300472776140204706010424144072307570711599654913071843303841239616956177278112767079632444015234765456194517995881008733201496185826276731661243883603123665943287211564460183835213293274795384015236998053633271007011800848763446335831716630811695421963921988406184469284206162329568491722910901651386031021690259288694507902048098026671679590286782544476387477127264729529478605953281910606362196198399704430936945309602487905159030601089553748980185087895242122355624595045747572416832589366895442003359014384088915245880476629446179376448735934420274197032786384818910326379923946864843535560688589772085830029581268050714393806322721580159947535258095626832040781429308016914453509745287633549145021529091230720995153637168090466576413781469648419125320430230318287785628122741367453242085223954671768868810505637458377596735739572252764413089044757394941123011153581725686416793309616118770500781187516384842023347440668597583527997930151897578895914929944101970039237371682922959703337795765199566856057745483343248005613169827175680576906070255293261013957506638609295613756682606305692095831379344224062257474286888047449935830992766807103147296200224122677437485213981069583624686854708593470776243831847974359929227852166123082215267646687140860071238121055560857091764852324481538819254728164602493733778966307072943628158992084300983650722877363291184178317355163286596645648599290223767623391235251353925364146998287193039246005247876687911793151371943462619991474072081589544075269855822992806320271587911970431671463560641800276363899405065090020618573747215504085063748300134134742878765785126212356820779892129858863157289840448270123783885113812697810214376001172907821105810872323385769199321611777289427781287332836170165226329870240449934272587952807600451880334479470554048594547672487997363148995951421108914506462517730695442898684072048696276064623606563506851125890424430473355721325734280529065578410831217926194593643201917801544466826539088154403312359930721045255236620785269380924274989593898720763433258203038536035412566385438797768372986050517113173002115169875275674315510495008523990235842370561618153494005027531481061702916641366236162737174836977637647824914112838292651719969432474194825409917402829011692139135953148035143946161583185253955297376219347503111899362557953152844101751640560398570479107458756527450144104450570244024526579170336568750589014452077787574722023187052977591246460560282897634407000766239496014106110925424406468918166219887671264282974006906929910936460268388741797313044321636014075309600992111021247215954032842643680717007868143389387731165749222482405217252843811590240765709833328241386386932763135258137520138263886695689230219233289839136498370369463310231422336205081044981064628394781146934292715495615637479558756385176448996101664645840706933086514783706939002519736600814163163531302031599322995874764892273510733955280593058570308444252937901249225860602698991363179868723838904254837057940394701123550187252758146264444942976338283347190063883440330547036590231066541086273886850825590575772212088211086179785682863442915253085973758370327156508861439982694486740263194013570636993283418193456224441739502699570494279668360303894390544721183540453553644426757046722009024517737529641811793804302889672591211824406987376133912813715648688155620778510240068664544186423107941532529813238930112059837607535391967734569469174993277826497130972842540898955369412213577870632285489145337043191564718408566350904792973993616457516610602194233045036669858320939592376326369505104456693849275731999538923306799186593446832210804650535730237409574201813523566062305641192894722911202463437477104598056251646482106749115766119655876136033411936496755817120948841369467128928983419357600886599609578210846796416182910647985472301919102437864648494816697538983399384482394399289145588045749408904476555578990160678647718776470482658769848658165249183283315368977437871055157915881042861016875993338624847297403206918447832147076703488349395025206716707490595779794185899096891346026717804100815752939492136225198654431691960303908075247957572104492190382005627905535557980240159286026679213433085104313589594621447611968642468150332633335859962253489771149550899695738689573137035277119349834445275333910977088400666826347738016050767619983521985840696895195454708530986239544396835926641311311347592642825611313066063502102273177491188549889115209514229473298502833291190551827192607918765881409483198041392126804342886753958960564239218519859571494598998966598776797309859741646800658600708530015365886478981676413147024535295310624201590254973280211870260271909602318492567360871986961757179990210493436500946855395910772371760806993829386800091372947434019530965944443757719204000953059666224592573955122873756317710734818889603039901575566444333827008080522633852198096453534826254504944175938142707774981083104606993378249124565671335123290241919867749927959802277591154865107308727328485433387625667943616325685348790840095373758317963269490145311256108835515657700304280113864403248004230745964432717348410839104588689077330218003103969901522302802073422444444367299142895578223810613256567515379509269369469901628908066835793975875151822936126463134393572097170601831720380678349365210188632691788222227441546838528313131679281973427547894951320661152963247533792562415824849500911995195918823770725756214595062933394134835514621843472570973997225995921004948910597737652901991998493841210322495668705528209728932418187780208082006429215875505038927483960805085909768521563600356818295636030525954241643549871034823792197342315684593939482212273527632517070318810468611923758194767227086302497491585107067305053009483672217051280447599817195297814957066349697667981139848886941271256003556942694401974249279052636293032278398588045666273377892160264407076207105953325914414340123162415139929165869887069780448269518802943804964998835842268930368014798882173062157368190736037962717061513351105714749252783508024383996857083973983491833140495903657023358353388836408147167309582355861052455413332854098572210027692832135688172759499528008870195646632046317700376043991535081629447357067729513943741267854884127424024784996872542207127021002991272811207004743309238421551002774825667855770296248802638199280942072902559835272026508036939162335284594356287578464883680561155249749044917831721336477823395742971494093990462747960680401733601925435941964743931849026189523617852434828979557011177942168332790675353801335968109398929757011753159474488176934087320449434926333733104534422453447925318132435508563815072843838064113727255139892583083161059375892082962203888347838479552454338475430934555792046487347171621086319817531142625627877612044689984630986212385880005686186111657488948031938929091913266765970843882746641709954613050188353171919518494613546196168109221681983183539794578055712618079975796567190206004266186002899431182016873713859040458907587265174350720982391124545518693518132791014665453043944964011442667302258235057575473599282776233254240622716623427889005342842056863297257101714435806869960652196876056080717743582366541300477150119164428741774713350007339461912936741390960222956212695336153623542436797650043965143602870424939144672190445167129576921883003418819008680783666321755967559234812208692390878578507969271706739202392593319017495413545463011115932092636268824984571656040452111896634547719401355937382264282708324818100240679097583726209699345157234842771508509975515818874399527126487857562478784423022611224130112526750243831999440610747774281733389364495917452506013483773607171358972772145541160931279521982882451896797797639123292458623131243876383744944882231693533695120054348811433073335781519357471308891605953162800761826839136323390307888331017204199058004146777183197469544372801863468283872431853700476705691397742044489607502706043302152292175308094296131981212889427369743542444270361813205776511296308222111400930715148093281677575056759990627596090323145699192100414466663478503517586348973177997112063139747915419828711652971257724329238969050723885732714963047594693872994188290340643633502219269149096071623983360528369320319842018510758556832389339914293984602700071390723809438583479170427841015236557326435262064250186618035638728655453112006190936530642252543783953417108372915959610736617440184737074188216500441159369173363541842622721465850915640250896709546205791354239687877944662390890360609903886500867520539586940588280253553953828208061247090208612548283264226960399690150980311036227254548864775494852565960206270052970940693581714366999095759607243859323799345801520481230411966545006493808933402188524647503654022016609173857536673228370226397814231431024824516466991946445226902817786777644785830102552025538496451892400913650323667251712250662113689419956363781214227633562600237216173585361246578939094743876508012536173881582125821776179475706567935239264202334759966363021974599133644962205676076241755909861527808398445062451931945824489678398654328665401134590375453778365465136274374521041816790095088922399441322646919148284243865949120248258329267012795451615703019629006889637115001588672351725783752413582779512291932354975437357463309706803424685774972657825242996882001500646759464942468873512275522323802639697249991841777407108655314346588037012236677333881825515039705472312031730644580656957761635997169446064439115215663969817212721890582923440964862755210710351435345983084217942721094856678338906380991620976201556768648374524944437810854328529820183750451876662083140676607781082876271582712831576940412237221623807798118251550746061680123661076520948890521577457393687698362190301224400481342121550449048029488721429668493351462695541474845790202608544533494726917397849244060169850656384007440621424344116255137870122381446376564545115322055383424979362267046991690142980657701992352243745357401462622802926025882571893759601287516644834939390563096264096968327845520125884414029246596584899099886208577075999298234558769635262735028953971663099808112817973646057827112407423705869515574660513299321711830043871957891712586116262664384689621713920094308138783049893991951039202498926709984648895325158409738191637457590091129973978528732622160724203316860969829710063496454506162970152179362808965942952854203703620509150508890028941571910640727816107731927779479961613916692182027603594962075010889755220865521730885082172303444432129621351698634830247815111532426517196795821517443521749749498624886587870858263852711599022535176452638775729731433388023805870202810213638165167461651532012537820837563606388313046286399019641590141976238672718306513337812322858588808558254290935655578902843602206755303505763404410349826404301350737064261723292416002223837474970117120570343650565881163893822197691926459353778938651853796175310555373384310930804699376606297398634676799586397546088731820623984310614858435698805814369804517169570924864566068885070994799560663005152079265187107046844785092447585389140865843477763162623133842126869745622022198961910712052610741164895066631520033881655268772130605807210836071734373028177747683895306834307909197205486540405265746197351524471696798242763739216600846030310483236311542936121151614408654772944941392341588628782944265926288991962814189884805079918667158228911000837205802095663262009308627654103863758288762159056323312382941326784201160623238837469592356244943103922626670314964443209576584137671072556478918276834596884881292049268092454986228330560629722458158501730735923110449380823001031216469414147531994376783686861716178854387726672109467372478638105924890286439520028983492885326537605237785133318209596371115325746711190097517345516613896891498299032055539861805524729589739247982568120252273532048918425074322271561725005220746565758691350443860058150048006397467930921150622707409419756297590110577258843800001675958110887104649777900389779831754414104531982674888629332453787517967505968714464894743655863222464911014578840994273331068467595510817890833688586798851484204115065879632376969022804799220421901674480339074779544552753349140836163497085623559109073317001550220906341765398685055986699490408400027225400583770913254931952615168445629047256045618134317034811674040056493885345936515005648512924227250837882595139472134994261054738987753456836631070718912884610753445693632594825534454520390150778418638503360111337529519424204532611239971582075543523511214203200550867007937447365009447245234584726234408402250968937279598256698973861742221445796417968073268021952779554778891325830951869992664696092205472516157539882037195288577725300779107854757000902675535868388608256045518853714087801012476700783064375512640561645266790487788986651907039233133669768830538367244692231293186058992519420159175269964087302649464458589873634040065674614784970475742425612335230839231893771667139259873733399624812614735355927532820575873635535516609983238628620759103874536631371509993006023139066904624341839619690165462019365043065478278405879885086931489334886178595221618834699666669800626730201125542323270753948496218764973673470103083255448384257389956638900160951219866440118794825409929767399814161026075030580869925833215599062541947970645205797540264824093762620242453612479250696673105234100567868669751576286724862155149030260227210642687620550325393156292528229629215607741982834008657092762529636929872992885919595714371819550261636599816177235419888896959486586603158931207165994248343779071533537613002563988835247116654357542616979906654331524098711569290494726568942049431590813897579512056396320647786016591373939953779800498922418661186723297855112806151936006422580994841107772072176898305544213607252782598367855379377727543306558359568335654290121251768110514672179902299585618211058337659672202140402311445421236199125357542897448904863984042703347533070196954474602131053686434194116932258610046841894010816769024221818416508310290643357951989739638827718462212987742893703347025346414421138549952626245292209938017715569590342468529684771009317578614481579253630787663912644373299566584334600611869353122348191304837925879109132519755149240819824746853376382265349763204512105603330899565111759455525217694712218280059577594229304137877843028426999842072561133537409469034565486344456769210827618670634742972238000610091431223130549294475974370509788291865464567984146702661685000674680739317412768331879407612031753331575949284741520844350983226847263740682014785748988628769494541276834918962507241209416994232520734291475293687833983417128696535600424869622616551093093053382296041903598480487356409983779835775142310913565593333340826879783294099636499928676846191672929475127409872529691332577417568584424900342368934814715432199543170632062802083392116943496382368911473638474676914335414835152126107066072550710626939300348559944413689766866510171496780871242268956733244849947236840434911281663492785101099602844690143325094151077126853140278277115501530697995893064966679822858835265289993932898153877622760152219545023971633975437596666454435770010621840347653175667573473200216058393141955967970146104284538086909556434600505938625773145710878908578484823108074751874701093134606683949248432773640075931539896608601734284996634084281421108640867183776625834982543971394253248778692251658433830089517818060679859897190207809875278517976169056430584034400128749193746026811892646515545026852722355231805945775387461974137150248793600672298084648479871180916419935268690821806043439628466723932293584904616413552306626890550589990770790534875589444292356759970741396445244755395206452648064842306162439571264940432275946340393642016866083635712144779279461538011524902905642823100699096786199175399700361833150662984554957320317151489250514540657424982921265702459084552803563691394690951712282960869816055320214608529834405620532147356065090155792222224578046663706717796069123576733446903245395728995581732707800734538221778746127426191372214529332375627896470334012151403444314816163178434314816585754761521847003975253700807032035645506019577938662838610619286436979125709938826659989430453140291224293359265794025781032455416904974586548759768496079772711155045230625657721379822578354777982657619683969604378183712232950899720929802109882312772204831065263466614513977119074891104513773692503332133538316667042819505297205525489861250465878415876865570372586226450341680238701134674831448589826526608164168479845665504150879394214922380183115760763352588170505258623546899321902064487815423232439494622746664361823504311113802198530280207712608935454046651418299725988218155072967068545082111362617428968448152470295771031941416271860636187021614019397268788064071150625880928663904732778134314175089250062246084867063686838401647341894313590145652757833094114638295001474646642702820162825731500797669359874327716020865700986956718506432079095076090528117305356685956428661985331655461352471418479687603234181620364742087283496636209551743223085266636124221672735832668491201427938374975743890041080172621561846932944721328999751489594153769639823944111592478358502381836603735614788345926637384864583237362706305036427108218944000545222121109381627357996325259622413688157444630931856714831551409678875945834644295230550900126693825088043633965929124830977393770588910983677299848512322579294909150159573157060742250204131049782236202437131484003727541488333655353481354513445684900808849762777189067933893547618175125496087385356399993776862037622286889053080871164159436364707698149088072587981778048943810540349303205294023077567944328781198711912675364048514196301043068067323674434225383889042394864526003880463870406751617373271528449062694872058748869847885661007525768950847720806643492284004984578468885716219596939480259478325690461160801236462863128844257328909875202365630239298417105615690347415714953872666787405511007536243889801129808650750822292611878198774864439006658950534020717352311561082492102620351682862058615231470914376954253804476810513707318709341255003578862835993739574766681623538959970033091803505777200490745788934210848706089072050048682667198966495650379155529863038918105485052428323615375310518087401529892317295945995321414668943466460129150474030253896840754207363842205183778088229841993857668857572367774036836175173081934372193558466557803365301248418527672646727807568156505083559593226008060549038332891935172648646781817991963660273309406985295603275563402898713655847886583330798772154519552387954020690442040374100174998161542218000004254825010823876847032384470358253540469678181868069800836804914442453065838122207888714425474326756994070426646608225378879077871053924749420617124552617385232418743503210944729493089928750484221208140684888019017474960892539219482427417028598664101838008487094064374987019893901606411005563750643145091069603927874281487003102347123178281627292325957391754863753549021400903598358447556179364846105930096249852665715098119984650787181513418963302536170320506192298479095427939737955759551426875178999129003417036732816975805702430592494468629558963886431940550823728913846960178346523832588544845245919301446182813012041628193954693780546333408736446390280225254510397814910775840792123400735949374716594911623256169545825264801014668585407238008814232132849652172725120349986799977389713598734327762625727975134740355246115817134328065765967580762906669474673191511430695027428735978956934720563654714165229905577535411551134092481059665883990827600802465217951043265795689900434971783939186214195670431038981214160950328799727027319863880551323812200596661999047610444354663088914623805553368024761080835080905315773751945218503130648907877936399895639666035419239725348829192041109821771504431325663914212888527376005698511209187210458365895393077402781961198572241297756859678038347707132432606080246864122955859695748108482192584152531990332860252950810796962022216912177227070162441702717605472939884873831573080394557575589195175280920008606952871075264532981222608117520775927913226454504888951339955078755667185960124089383662826692265524461963457524811872931566476333593687834306468128223547326744888372613618843500535236653384582178624301481934107258198064255166694542857448248881020042989286479980953186672792065964869610156430649306779845381537681379770275151693844516580605300106249977576920715495765670112517830254461895600722563037179465589922473135998267012973907776644812754853914286726595141752754049578404787035931506794604337475787561474377712666380763649822678095606181410266398165380730991677326263329338138640460920354332080042306082163330565735881495536200210164295973417271331811660323726231072965134280688430419956282357101675892718449088940377021562914246461809198436946509710039890659504149492904801730707196963812551934210250891836721380783563899186835708848307798339157399167255234458266653341095716397432625127845066663495092310790044877744582744509631017156619077506259368130864435214379959176250012079868927824752573986843660207689022659453949612822864535819964646226572683255326004799447943728120218573692789469932788377913988763472340210530161651729016148118519229127465858519473993101196226473379733782077425311969208759261338630416828011081429955999483010622698877393691426058278388758125208565819867533816626125662616016770715340177132645956457588567039019960731141520985046928498146519442558280073204430966366183430227127351562166273430503011787839531425600033546389930641443181046108211022394050501686386622308163610579483199718022353533873685601806156694798357668362758472001185440658447304869528191013567445775807550393441218067045875754151113802089207621620708557397485231493970404015088982193629677427160646608103690253857042565015988946667355696831426817598716756958149096196053723402924642474766199273904078097693876336637646273588881467098007079243822217645639366317454008429864048566108962204119821661828559071773097139567128842001993373521620394579712754314114632694478683680963860919893044044999822557616878107806659931324224178431763667515958962594075893242912835151235503227764893116230636165005268749009970223037769734946176884385047066576652869914753126063803668728885896236421500015975002378891204355333972192950137318751297846397870213789648109919464836632369173187767651182668674371571585939180880593138758442594042853080718000780034968399465131702450308930355057712876190120291377626186765585987654734872248782980279267757879352046389363197499888100700867571507967704854674030274437912895447052314414170625342269962454901150901201480130321379648804870196069860252086985992398530904157898275082510875564915590985061160947346347709829718078243581410596595786121508927948463746199608757550336594235862368911072305257531033356430180020485265474493917769798756783265685955900455893315312169183002243868147850956212161036881800218287904787965233481593471739315052146324443792935672704147827013887389510283531470605460110942164890267957488965950409492189077179838670081488460212099285867043998405545925976730904217516931122050162517905386053410647459455783726691057458276991394431303749968323656309311479660805603834235636550210760872567029867240156989116475794412972430079456888957714528750617048860747329996016003096195454337814507274563827970368432058059872267953854495522797435078058496102422333903521255930636600806642373570817345974174915775955751461255457777211528661691296533692648013532114589717255674770051126841849624164104558893084844906248650235762194529599974904222937343224834328604188505636064659822640555121062059924417981661001095347721359071730181889293885075829302536610003235310450455801860688924195592550404726175426003543264695654372909998988389078669486538993523215603435887251532004057429707707542261725814867448503504901664539242501653235342156394388300231494303305626307635207082771700705281446410991471264602227868424441552688677091933946282058918278046004416688948634311719165736351973123823772699019189134472616191972059280008665193312358199097678363857097604891843848525108977255282986089779732454112379060036964392004152602166389767422456232554199190270223001038141024832430625478835435051827353397539452556672382151696535027375449985070116203851711529928163961824052524548250549401076752152460975940845299726180022836396491084107166722441051568717554329071035286320962825756979095012977773526846286645240085814638433313600038848864640218989630475846814211229619153414023412191887078964452853335034191111828128148682992658271171330479573109668712378079860023165672847397755301448254591286512248917404749399274376789927142930547484659190960225247736656998181629008247349503677270897486350461832865212562343960762060545873626653834518960020856267548226433536051100194446954952651052466736041620049004706446763291535278801193712751567264129787860595265469764587751776103422833661312451276775748546884844704383021499167245048310488819729404896915470399547928972639259927070415930691928898891354272169348000011376475568919099016835475459598757864225011462247454902442907317015213194665740828243867266343644442660802404746351480499661589276434530968778186682951152960785336979677291881500817215672270861366701857231046163477706357391585155365458672503330391137893896782801606356111129555686964478306583682970916277047078865377590204867267945163189344416955538038352454448131706652393694059271517111131943372609909667294577263925356501136509588544061741219486985981053627233775145359448984665575436541681945272348122092877166003107319213263389555689358227379920761240158112167791226169038413549950555038318637874906091660954861366715709711877219241248446173098842671323800148800246883081338732206801870160959715485342029636776608362211339908860313705755229967953496590237995746694408691102815019501931284546066955885459875558710978114735307951951892296399204770831310817752737097022940776875227183514611861693802749757636846426193011469985758045127885722023679128696862102964446428458228956346045783636214285255476400000674549569491177447584677291014356730632091338123588831570458044789533436474866127887778272298532432824466939985939670927505674350544333373274565103717915907296577239451851388259361725633301249491936711933775963942228237411076841493957644609528820107019360781210016155964015644033388646833761666573637529716187887275000648162861093384360989827647100736590985154994959330821164290496373279340019907783186616340529081539115184297682768423357332276490368651361536764146652610552381158356834604415563604484431074425645510678013472514128034935247568801052608424812306964985282643277572705447954759028692821198086764530561907520200656398501210209693935140997399847114265394477675341661384495411222276084621945258400935305190018768830750909400509204344848475554320432135722344987227736068167251525313412735167272547017839074080837655042059884332588222483327400907771896888309429450388847418952327987014392007472396616016037380075134702597008252068818940947492047299438873745510567734564330496966210344647943205044221329617288517112797174832136124919610589103341835976913716709367705368009268746397972494914133657064095672062128167635936268580127583262238729605047232584354110694055720066459869036549315001162984128843491903091285018339724905399531784426019241303813144527543505237922259445979300511942402225453409995327657892755398636980800598223803778979920325595478952768919608358595915798660493709785945960566893531183892226753948402211348293361962042753064263819194888897227817231635353632972263793484763225883373992704431225664044558165529058305408270844762045563751884554731278191431036976606145326710380738050256310723231590714006048647867963549553346470505010139833949304773526551611113681128151950312446829488235890825287653008529210297007471222634548548822237788950315988453154480814170637779838797136487557390036481278992299245273296579425987861526560491361447705726689737393312520423198874875085117523728542260051024374891608682258825311175015991774118520951133726523554591370639958064757373772596240613161828531404318574365915782960286626433935714040432224643430069209459580782608318822857798234297405140040738508872531371095103744114236733316496149772517872090231322624649618028387423203913175827524970125051137270789805484441968732736474824204151409111157442858485825966803981173975524006179065388974227456955226992121552865762370977419114438890547670966540925412006211714493720360043703642616421139189460574786445922964764263915003270553049166178865336433414738716585580009196268823674642632471503337540960863047613515984017172775480313644000188669360269734394138603853031163496682831745782866496955816854693390432577958884431865624255900050019015853193000475442182621223412112855201436691567964422274481249927482765094041665053964112986389087916164618858742495502640785707685086505623070726856722924637145101316595742947704578594177438600460943446399989797177208333445734384314948423995769172260163427538165089365653738906881421387777917415103659337575606743537787634655817958357665458695842932473934731522259133587421818936695908225482980643223715388645833189611708141983339353581950726371399905880809394135967688441064394558192127844858637701620346850631111729332333719360321248944516940847024324570324133045948941150662492909379874444203577827414955798236819611830739842361250524910247538622561926955865269446434885002933971953157303762416988992116917342345153852092370245633093820652583227911724204144423908791901265476765814253240509427074013129924930124176722058954562227298220850891275172338884216277286219911393122134315636894733711092960373098642039347816047973897839525708040353312675364175928144857026710117877712084000543587637768368451966407346367741529186743246276023756800411876349141931084002249495330869300570349458530002483519562051802868071391107296618122191058384321153418174439547867836948768300900856688016973244189078924820472486474155462702874259702348034521147914214711099684957146363343145558343905379247023387184301720739426162584523479630384528654983783772549190991719446583064849722495200056647097039799489562971171774752534276888436012613170361852458521695265781461979947734013492637698916337205161756844102533571794589888585506934478904244293419194488579972711116695709266584761172971918721011770883751334714638848539267610886238757998073369270606755580529134603264591595990615740462460033955052907218223821551457979288179585416759026691601667855650292599184921296732009201987471827514640775149257984353541646021796386031172409313089043506878782512383471356673673466725410709195900800943146203371452242148018395640204332035912577272216674213925374251652117202819278863279696159834561170710232219892349681607979101000171758474375230378827980035430025359207669313116290977384912238718930996220582310779683997896752020318520130818072064713545433327504029933059824204070409160753280296030325290407598783842077035219948480562554249402424582350052361616713254361656465351083495871660437004715333549181067537246188785060313128236864076933880862120927859887366163097043000842651702351343449921820124543270570716570775347613187018858238371558869654840018020869864361875885828983932196032647030966768929623978140807159361987443801071907567875351933251024842633229930743014661801245978341704832864034189851238727949337006725067325830201523978190714946241856573931796290039426384075193657988744182397435650983552924654099106952927486339372731725706204559359065311325126045812061529089900682617363334867822387384178714800494504563373421989426946925576182455137703161705818892407927079331588252981434041649785330589464791090393356915431143744967684025322695735184765769909845578322991597166879962021935787826127870738677064666714964822186616290507193726192751359695811976503700418025528843627765567023359201440035744544055031908533892614136150336232610104078494002542112028594557152235863027117906382509029234360186944842730976192153081141278335217231292439901754716847643147344434368135527397188097068926791468835171498913298985974903863568675111218524317218462267109413709116611993484974668786199314914101274602766087028467037271573872040585510728491628153425176934270723285713893928181623758839198681304820290637201674807323423915618559071095364333430919413299934994278882978183553932928293963052005928750562262244030120920549883657869987996108271889504864021010262410969215358599913632168108364555142452742107746676709644891121022587508357836406809799060844154042666120605599955143119075245351078373588504653050472841792749409194421612083446052678009044506604284532302445155510858484052969742484277679860477063092698551995069589637341488467714292271498376111820260250337508514429501137908106076207154860745538666652909290687439004827798376331656010720110764215347711539008843551218916373521523291354837626981885384383631248648357086406214784130967534114971758050949014857923060702321423289212409413032093494142122351677590584830184004424922444184609000417636147008798886835753232824156292990118311762029119729044099631063688744215520526606741292561269581485297339938103907193057769394172933674218716986195065545620182080944576514128790098629310772696392994459272256439725888958350190698885928062113373725230342576317586392171559832570220265365272156772474309700370112327001345253266538437676509927769003097438929672296217778838772389845514755110407057822161982729466970576765972726745855820686307254081725478408575331930497071595055968935239115235969745702648940565581924343392294479207881309732847562811343832099181202849582313780694311277606435356036736963576778540536501956474469609126156949695695722942405075759979312697137708455067141840873654607082903508973577697650759111327156828702232420602017371238642937399653601669021258698526810706244573141133817190815183275944767367527226407673137637267217880769414992311319747623128321497040038060496368425700322867412075578095860758364897158265988383671005819645477112142480080254624106371584494627068926203626119902055157142631746398305831444739662099423214030246534729280730580831841637460921459253675837280290472373136570305515527690333215299807921417729773376511057701628792423207044869244492961281807575415666987510437937021550578441965040868142432356747607975238471526012601180052605918391245338027690788964696488816757664152954301841705251799375673850711222404676548559463543593391045511032861515248632852831341846717954219370608415218605984762231000361440203408436299943408052132485376715644880542734118966436127877201079070576609049534868833969389411892876271391436696627330831508944945180070103402359469923048522444014308930761803948134453097641687737969061325700107961280367827255957776321675359477251616991779552397370220951829364525448904815060847304784009331645732528197757214884033184276232434280654059090154707064113298455275336773499082783957969129471689460324893627272401346593422484151802348839932346653068455972390417518687317390621235488578180475654598670830423740132468943380299116232983822903194366617528197343717562176174305811935657376141649692119595935785471841734758916554329596231045433737007984857506607693923908292192460310089102089610016641657788870343030944082381425443235390540490298002347313300827016496345506535731912837639426272127483070755078260737291104825292732947214054041726265834983136426913032504838890562814132661299790419499385517218071192532572506424324695116049942955602885828531069224515947776326096077923580930200515585447511630587174045452280272320499290611941437066897572785167921292106136045750533978636266359936340681922828373121201759230195005078555394875751582456819689457508193708336727771279893324054407726182562974517226877727622281937570484005113482856264038230919860610491451133611699970467472814957222494839139297908468856049783287043832912468560722289003511089820871953398017394182685923366737465373264320140598356039489637780123496408015531903239088036450892597500704746088394579749584070770405162772521459404233446626335789029958330028754936955621624893582215683053680642494637641171715438606741587934649104616309346673291555231421011055919577736511262615662475660261806663307359825042698192528424194059031863514101019062424876814964399134262884123690993394017219996183404190624408872566708574857704628477210042719855106756881951845410192193444936335710408649325476549126693860372508203469694858155109430754482039878644610164316756396835965238915836404584624622092866151457787793005824223105247596540838358170366493038206060791809146840886081700591988034938262235067817559455406255791958446917692203996447232002407582449386390590469041641650834647468560829489803845309527526740144274658656767818842796253451162152214628251421629529193775646951681810281203470635455751619465194933120188460685680035440523503547792312156125731940446867101660525904610486789217475143814364867390801548203316966035950206141563534461617769247497589989646410028659778997996158183325884458630994751598946089765194883636077456508267244434033336436602780338183449607232173476884152109405106857382041381307271135878297685569864399291281171138569145233619983434493677663338785841528316773458862702296883943292761163200802423432476342601629997855866812040520229995049903865453728538160272107809072658221372451048572172527494178081734215366402924775673307986039254482487552753593721073332809184792003576072463423845195271940816114448914741632968469395667933657042711895254445540828173409079650875380507060112201223827535452594314209237712499743228576008239645808119955816862977066806647597913832559733112236621524751668527814543895544233765534230457320382983543089776567745981835219567615296486068116060116764576165354008249822013625080215767850879606846949795646284572398513634195005127678205383520945755353182693004213166497313070924184685688149782847123342657344122401536273175669408976669974509950127282710031897337085365900590359673564230899558245781054400213826090891012234626364281022692130132484173004447261386754941913682012567946342074094295452543146029393595041370888947550089665255489567306606633727036033648485517082013115482443124219280821955203870816353828485184774993273401590368458263815459292618737799870417784313344567863534549327940380511670614176219774542880297430174142426409255808261687830873947923016733458833941376015795172853647305224503854242813757228603396532372424553881190609541519650199289243986223204327044556790903213765889201859605980375304117396830712779093442826547990411265826468927619081198083162528962308567360018837991935701070093202504916476841189802698344043548001510914936766947982201204206878605770185535007905167955791089411903643140563048726313925390106958611194322820403120900241960527429976069022421646890062317124419476666163946729106561196345381725291378402364929867354755797509346908241817627222324390816504368460389590064467961803157142767873779913591896085986292575220433278612001346626682694206627069377592158623237124446405893020943454021208956125626152927410794942848013178951618445804598286198339744816754336816487257306149694107223067403756452691950803605531431694702884801539224837939291751511749817939421357370488125266664510278246259038160645543338039247818357407197497043121126002584787325822628039136845460194694092067054605408993608861949076277911209329135108810471618470558426699707719907662845901538068103046049221531583688746181832867921784522350575930934006878505072034102690949495274222561657082303505516511214137655610982520394164121179619572780895136861973420846822156853880331910666551217632034914695952459867132377287259434151215464717935349583478683088985571467900150703918864518398213139238788219427047492224844428090034563629156921211694938266943862412536821825486649378992965482743602371783201533005780776143858107624611780457813560451795663727976820821131385632730844206289760601779665537587037589904416189052998471962991202567429490020237668296722108734404376930360489306003022500032623457133831229532144577335382259917652379259915244030892671153603403012721072840083571748891286159897001690757181686052432005773175429404842754903153868293630654555807007514832727164103120699781182518473615442436436677962557896691933168166006599335835694673728054446265319707770296416427182331028313380944278700210337880839436900827646057577060313206785314024309068311047535042653285502977849063991397206258344326926145129036853450933929973212989863639842184727568624266909160506062269974776699210230956014173146618755627758138788424295066776980707493313920370776908141874146018029197023337842663721779553612405768788373217431846863278411906243334940015893525831517937406861079246926967193041444273228005283012731914506767644895609810969979741829263765184936937161446471123830850527856948931599425085736480457614814183533975272189377771584673456089479433395926832771402924394349457202456047549144276621283423255238659639320743568315274522834656810896013617575290340297899855613575386368147000145950398432984426689238814204460996172977025076999373317861974467840516793806577622491721471148239852434691962030561999645710611525433184085216700658686966177152138859721130425986108563697046761339437522626882618876619724081828007963287456207517291664155573076434185269712860787955314629066133182708344079230298099254875583744056317625151325259574986776203798893471874360697904318818418545853517344016996320577861286264939174485824711317596590260820878327122220212227476787594838468752987942538286553842030334711418447323863983535927656885979226195527237078514158956270259487861931498006443362765534760020534210856535551556800917393918885469689501523749325766213466956472456217195433888462111878812235637443245660188131643474482244260624802446001822615138175026595815339287442823619756632717613932656159591613211093671212034000290502717974536815819276429686322911371921384747975686398485705375408217988138511960028964193788134399743242804831082625948712066017549114908092627728985197008449605194564501856412164496883026258436210372726305560707722908247938998228100932682608380775640259631282332496104141214729216217051607490709576995026863371525181851833608343181189118904015475830555251625860275064826729726579458799025437726227299685966864376929345778849205805807214606627517974166510696977414618972322878166938142997536724375855665371475035763698759603807815991625351313189145183639842019098545253543310700067932500466360444049747567676565258528281404519315263948269522252718661164792023783163216561604971304209139150603204852585074429628268982743637815453269465044252791048175971017171834042323792871057186490193554550759401861420189578181330017828323355233764713678290796286104307899979717063849846089955787116070460495749144011697459645507391193203763381751250667158896063172466730692477205385047165314441262465534585610287007281261089094895635694348227640560860157397624704787662358968559849825417149060975977229469234114914732107312645963716707144269978490801847410961738470645004623681925640969123899367839604288181849710690481482331984017774358585600241802429115775840590414704968905619567374420695385351116220693959347307402102284988731697538240054850414446025316541906524352042180508602175752185736461581894191715823384308345592944391716252473402199111013312258821527888919606403153961245567650466630117778274448045749931265005945917532835754814700374275008989154404864493512960180852739301014227261951510108728747270946273137936325509443758417549997267526198933863368028538325342085569239537177446188781168138742700646122301811798082575649974483653198606109552946421558440334158996972881888138540278011469778297754381241506777389521596030393611459747282031809008751542429032708409639303942470247946501866951926296924385635610648756180299383846892594679932597344116092758819951114659770212821027407854321409763382178414688734348900398529077674047730096554663396334920708441678352491375908499112865914809888118463481856395271282973680472703923045109250006712278728764078998250527590289754506264537830465619906984963300446704485184804973747278380212895284563568845473313327506355143850694585054930546883716296887852797831947274081985182048109516619732000679280545338928005891916183537446588514546281052943642777779911508782200198862849249312577846412849316577755061535177845784642091990463092445297414140140811992072098930122881862903601579384315156901297055103912694590265231632412331148583475365008463277027912443776699196723884930778590122654044709096390118652560611603861941542702597232381990459600476759180660167119020836667184287599568954378216313061936694998226813461955315004683405718654790451749955693892646546808165064219071278532186323349065946255649228642436727784760839121773393161906303257513879700199954530856232314895377226148850064775497799715379366588158804979873487104292093643004476184525108799404069698842817925730887640037282256507668803532783974986283824832378850048647296376575368546301921623109559462056793360752636555230854466295984454995622183547146036155168857017377919779247001014268649579174996303851775620333543102285105628693658569000123055759672418550509528134419386106148939014183992756235999816611522325762848464183356963062819033193725585616014849268068948790425275204058827268961300087325362672037913865126677674952101441103562115233971971821805006560939328106958040903825844671206750263743464086328961054100308069143124576691852207351605768794296051715283513693219144638378987910822463790122968485380609354200275056861722923879132581611948080857855202222739884305691655907343070133196548739028164076392507627709778313471438093871104600040860038281334379955814099622437245005478936804387702240457960718458370508501520615035517186119761752393642690551202960014723988891931963715492205039820040604305928910642356431498404258682569516781236618772481805984726259401695947050750815402256412713476940823912458586148977721369361613567561423655486604942612348803337756496923180021139145070897447970496684471370305644633958990064794446605560961786271053828555083048414002608832161812950786440836135574888476395769933417147592325433743590908337688998563458919226845263916645487803575452881606868340226697854294684063033939403337183557211270899023666169165446257190201117318935815713441413474912855077388542208542421143056631658136592270014943056644947797089291480960374447600148453761750771433760595268680266550029172192379060535809621403876885969328627288080823981502324520192698478794441638770692715590076990455280054493645895171529523408742973001447204641673152583038507992417323468985019366708231309536726511841761945638746250554583940772033647682467541703401345220674765571253714907504312455236541886405821175682460047300484742156617942343931694204092783888820802503679603312393867675316502986126326556447110766132706467478508119976174923635847666820611368895473285765864952010822022644178844038059147900059081612331513476211835830396971672621149380238792125724866434604667386992048986756917133101253374095320163450434291189036040263297016504592994900222771380444736507105481505959116296399024790893462525043171137560085994342763485891799624645626243658442091909449707687868280322316870051632216744091494342944775634332017657118591557750695049178717557663643624776130531677824588401175745910019506271221388509683953217594409614009519358558698083098611158771314632059964878397357096904893296358565960953889910483693853338552321385175922005001581448518960713105080276497525060562151286027651449971167909073774148585679731540782662551624335205596029003296215982961971430320479725897034949831641531393095468628958298874250011927470789375198674858067988802789227347899370229915260984690986272829708214273824868605704430488552681305139269084335668733679614872310479353628888878600396809290774532553447643315412429803973487942072150953413146285453825509196667775371334184429091180528278003320352196915452820415974876772480947866339442073694480262082883204618899202213962265373371930841271501565403258564124014982449130125383796391714968339089092216474164738648457391739410543590795387286862554580945595560317158395653717215654330925479648874668798959760021441311609827990462362568525697056603352536035859518828620317550328052985144255284050068539403639449071555108502694487597486702543999880849687673176649964159519765129410021769693769029655883473992306127154833419952515811912300636230245854980531994903257452607038460514434495898879861704094592351008922274325051701278923014762002302808936849900482822826249693949730913842191915673249877333536856132891585199636938235745949797765780543857233449709762062592185093498954553411759925860534784383397916847387893034744343268571972391602653110986965763267914220705861852740221356241165281615015348701278072627579513147467072121184861578105118585486089428939453882372022813102391725497616291192684013747561001707375206173768837751387987878851018192679508836455221228180610472297579208985004797290823310700482597759467169750271554476902611908104513019939253995952245226718270091576964525534401117548762514735655208487095226103476163684431389031576637760770278060780682386816922992136859606533989638315309910438313241193531522623730322391769560149231141237892839934423887794570447469668455305362056223042431149427116708673399933004409105195371047058856366331481849733748813272939216410133348044317433034090179036014460898138605473496313367689242856798866101046782961453291264526376231011109846415289234375932198423411899186529279024079590538828041642158708011697040325314122683441782094441413728148999015239737288430598038285992505976874823038449539868985645645001155753588976683361006332289715480421911281905390730472543840078075574839977045924347528326354463954252116878479125782856525970110728908939778908562337388391388736189697325893849813010463873851595784414951877579954944535064239687983783787907304745804973252541409390319616631042679534677816511415512651713132477095616381968027232709020053453314415185577004994548221848830225131976574554274689960519109067738580093543605795856160204401384159260445644026770544718844508239808853993053862246930539308056362762879586492816767170055191478345188118503952710671844216929485913076041566896394571046482529035069385770391664527083314038921897840105734505283907345670605101850024245629031781592120979092326014529118680832595636147964797876382492428063223229913622437232610700237959679101060483323539577259171120421535822059439359121467103264969334877170825354805608744203287816128460573637627999494540697119241479660994509727314258750391307123877294601631057157406873483154340447029922501946395608244164418751759880272055623600748980540375012844282213444282053709181599273271921690813182150797073811754350403598886832897194564792615872170880858799936685087134521332814047167339033415571464318568930502594044264709662301796642962771475900518272900711500159732799320514528469038532386312439745230940519653520003109622293929190301446868098598376610854778653683838269068274449320060518618886723015412970153793650059010478656249850588805963878806483399612546782353656547219568827364848679509195276798028547487203820275954078036007928645886118390931776957518074198942354886527670198664887460410457748842762668722425562539968426022648329219305995746453407070250968634427364950586337350531335418343264418378359259179246451462300342127971950645854210872008975533833909114795307233082185708918079548842266610325951169120226599971133389487122212493442657174177151601226819975304926139870934957803014754252345477072122137505098740731238461999597452181118751505608037755623894286111482622391802269389585795918512629780523636056153972343217075393934796688169288429914725334347786482158967140834424851726084423706319334625638488990412213147951957947340738054703604434083590963726462706494781628276928783971710295536536648053884282672003069885968285920139205792609181917863920229818397724824491521143038421057844830829364075976730037587093023396734627894688116919562715854188237236965939241759372826284582936086827673181097017453237797694158214970954833231843643497817840830176345590895695286571640514821583643356520999878028892021169267601586608293075350914859114309343672749460929765736729701157608755665768081887000978500445195989024059943249140617180681480983761701360302077131860121890441880003808717870743153207663038148129535264678652192369019992615390262762049306203925198639377009020357949688598385147716903511132444883285720195466966957434763399047770973782904012037282180536581707052158102067036869151209853675139581194039667771602337709421474919155748789445204409431383415886602102376285222561885807989420876815688297170168666975547972681729978159942366402483459964101132015787213858399339485166337102883270784127670564270072035495300313529790351026503633522501290266982995733823554217404509501961153390197719119827728014850117402070763042027172232828130144272228527667382575087361084772627299754188785190293727172293372696912944578069596285870949397753075093290784357534850967649232877662384056004645009174795603614282966020099925758889416047355156061075441795701773470202282048199151596629252019986675449733854679871502590341159350164931829662005152104129940753860551966849400807587266159328322087532314619260728021651415307206764436132370577164935793555505535238142008329887562325019087691316090726834808329965016405327002060669291978162309738056106393226370496562554289664184302456890618190743476143685071772324009504405790491060641284460754450424970733956274625478553564013511996455440751902684230025488804718993504993372791514505900461690445024065948382776558329714885202427711653636757913975113617647692454255359412643254049767098454758836293177790161375148670755033965102283393347286318725396297091646151664962130345992642184790780182105029142266884628660228038251902450212652929542512785684784831941876448483240333026449418316815602835974873063021039365611229570810890834799264333716332389291283508918241944159870400809209290574434843725567181461579081214075448861275090667395617813256299611781154483217979273730199197764049598129137788085000398909180397492151547252225222356269829175006712291519627497681962041976041296152706824466888477898301984492420996406034467085900501248568360734549743844380979914706664760622120893613987511976778588256497059480691685211084511417723119944837180372692932390110064907804157153178299957776994531428054726686405834085311591628058677672211186590280950564121161175666861826293126960110239818111419670354833688820831884719936017577798728492581914020058612431484313317322531359003620369993209085455163624074704013866337976693008200486945786486985223126498286568100405183741167113301983854523816395106973776991430264490088391060462702794632068795282228387821102564052114335020702889577158798524945647800594706360823541499654372482582602014779198025894522316607104217796555450814074023762537222846023969797530892134052490944139836713238841054637658771220408515462858423390365602869965716115611725866351501928716586371736866394488738792840774925980139454252485806628469859138122019249345457497273661935113391638684554866986732724171609691074942579452891170113044698084520267127805783605022599842351782137787908135604166041013560641670354653053066301252734233300736565687820905438141940203310391076063344431848565816860351237976323817769649274904677315708768941685201167207309266549444303475011435742191896697443735243322085510277376571277598203123357645424096292088492052524421244116795307218279714942931439087907503265255399122214937626536201051324216204775321544912600434389442455646183239085931722412190231594677603798003205129888612055109350973219958143015073732998411900272758482876002601618537694162501496302897067668638725872002400420780783410616174252293514482526816595133360458581096883772820199754889873796996805563991081506556218006906037987559086309238029948869209155120577387191689873965324812937353980857588199154273168633145386107528842666163443540167167958160199119465224929161454328627006961064771610191989825198594688645390522776026202167858387286524571636846127218923778485166958204110030812414431564025209770369131209454241466222241764627441013317393242323353925534298480811275706523404910394369922677772829121193714964982670983681342172838054038029793560214411683892936939638650068751621037691013076364868996317697727451739230754251980626155193953890140965030724099770714995074172504992865121921420402800083985988289799929299312686598147327580367744324022449492944305449185012371947420082982843527405832389570073319030985697617237423520808863961158667861187912620188957423713553773556686648411579121073000050303167910071103352383326305160082022145087303304954676104533232999811301911355637028653867277475046984621420530631493081200827188748257801373874200528064255186677683448900274920705232281320484983957072522886152065774098638712477599021834886836155357952575520362919386027713457039561999922658790685813798709281031390844621654520545559652463491066253961269724417732696615954544556798512145785229561944038369397109616340748596426503725984907954370149739765182447249812273770027807685583888664228765001204729191496638616408512218456842194708844160905909222544914386291965147777112865785751209244655751290985762188735040480555112610562980133199534359879376846186482180812024062136093685879897577724670716608324623963499365390282813595946011188874320863426512007578086139699716334465422542414404801697691864722924275000993824879344505331079813753111955182187066827481462539548518513177545251451914603276028215741722777047909663541247984221981216152595989569219043157836318190829398315299732296620222404400083889403081125013770471172113933793085043892812150410578032244144088030973599144883683750204684483781765563154655672896080923950071250428210225902237249456672452192090685481148456179634589710470096699330804983135240831619189083795481864474998952895989889683279221553363732421439010984537457741755936388059106383335969576898965426456156002501391420682282358910041759702715703442709121411158825937825842865285493342183491352273333648172750410493682368114517561707565341249683100670767497946278579381080885211593682029475747896484402619301700322120264143001902928808235128114576256515066342158262590933162205779995164731259249493430051318042344579230705557726961133989521062223809732221228964700001914970991884186857344419055847843148941118234920801644365502256757298065647025113156939040854089656799206900750349181668680885152444361723254635245551280821904372769042410129689513364777286670205388216283319528550758333034864574733804937441314593598423490932657114748433630349354768085642460235689233036458278070999761034131380403572302776371300602332576196991071059854778527039803512378150845020975681923312434184785536898466593140979009883472448509383224709594552275105256606982040161356878660374167072582817733508246956381257831085506829709851789207653194749968307583041851025951041691366452594213546050917602563174524170622716665572459022931713582966231312611178151614479193286103139734030756598203238916431015902818182193906834455082999348804460880826230917190116267868899880785850310645507574493352923090099896316540855495291500919003747663818515050008413889492695738138672978081091530361836609504456899239950861267701924524138632886012218039635452872449579382962857192439012735910038013182937890422258833358170524286875645728401043257655492573201207299623386698026149994980779067781684996890147541386427785169083330010538106701634478355336664754100027402374357192067535591979871020818551991377127934410360264277233542762692927308528935297836557124096136458213557090841463662213624825435399317628949219135613321836380107849457906609934347793849419566676800348010452558567326072383664225238280775699722871247918607981846181496160831326582169102432602411347971696671059255984112761212876309139274068934882834847335522517946954273482930604506624926547232030347986508412650524562143790394035789389952850851173485198656199964790951263829916333066832049782854272491505504293274975820877793497866531300376243327594719934896991396598220266086452280988287367685399271493568150786769956504012241999867869738062237118236764166011553283391811967308483560150217075726397775704304169908034727803299002111948715420027671482774746812237551808908519614761617804727657655400005812221964337534313457045917905430178678124386113552198246436543602764537174717839677816756667336861958772578346590901448175444430620305927654106321048316099713507429498067795302400112629424300645790974861680758412752388732719088050379258791198251140428136761055324018317105624488123283370725543737468256507278259795541008029537587541157302895181818570757136767298410234621551219337126508274730915224117545962940341431646673991555953758006837408735275586523391132109860309388383033813120113420058747413800985736438120642893753365812042651220786116718663608993549441977604111441392834410014135180860196337954395847244304075509303623980229866884891706456111984443993513479769690284731762938783636805518905033361486032249681315491923147180573320297159037324834654860738959469472355165497343067492260927038057172233854771726709568064830204756688813771013346078143879624730960432844000972824918443012981948029522544423013164831373715505122806108860404375411684742832329913145453702013944939302519057717445597262748256897593079595070927875724689813955826244126350961488460531587261174754502262298854611640921896504970389307557446908364139132592110642855326268751873618218370186718155399863421062404913162702050912112868482295659596728319363728617178121762536632385180223548431824862251718637946497794189087573674863282540339803675954408772016511774824352552018568913037268986276237783709183357701984711620166818295631968625617962878497475626482938953397077270266843914542683727217734303700657068262874696092662930802768270966496473605486557265554133161090060437908213869045382139837079519407315118393954228012251517690102352349958179523551931375554803288171129574100147485596056859607067908327516587520769563008301931474684727492359724298190017100811117559401741122848665395761725671842563264949945345829284149821503843363030999619445648396866117677388690975555163434703635802191898430099324201508932461917564653539392872097337320495702416315618013468322712652581636626343355678140191668362404313606018144111845396544581111877353826586227574937538785899504199300689504849587206169763312874376592750388620192208881729458742991283127442854061344127069316456715541753949614916568898430608375712846022577256894536613815107498608970767827793840756131166271341903208136599016665817517020327562950308641219457616657178088626392329344873327886820423855227165203729459892456316508029021192989375309420684352860078745768070598691422459163442452616454138871797976895584123061465729701491637704457537741762202124477916401926208876531033958159978856994712609313140955068044198218115595267593929375192220381284638459430256513134476894889937890495544509363140127241449292335655214903533004351856157598792611061448430603554051342413508639639986512466992243966150840613892236244873006825391022349661505237038873016797716963576914677447185832023937841818978385431672761843643441433186758664810695800021731089894949978815352340361568278297782772031134763670961076225169052830606307044176643076593536350510940897436362378916972074656397061764394587768543876971800816506815028892167278725205107187151636752251601034656905750004238609186399222698225876773778854909182230683780519583880190556954283395099098556044010076233531508809645022773907810074085860464621155216110758650532428585163848305548104159786420197260172200676823284132477817880485766266446965061503777896384847126701810410764650414407565437390515248321510659578896507659979225639052923169093432904205053827710711698601839138527532235453106882032787949804984269260994504864613804060905314513245051502905403944196313873350377082474941981063816426237200441803277869658953721307211648208537556610975331574266653933739118517652861355822443708296987807433658186213532463768642144538549804676285093852381162954889108398306351661335070627251109658718749538863456142969322717309050763943828637242682331033563639645179509413016596335787293491859022190372617313386067993464660262668186496968704406329678793068210014385810002521481865205711917151806330807152998088767787708876675558072857093089613247121315228416511290684364624702951613937746608289547972891546182175695724892538737011996347330082678316508837519938652362613121567409081645399526408014548808808855102232935136770000084561290770565296933267402298803010172757812952853958869867763306928129581887682336573044683165326761403350806885248224504794810736639809545948738770121750266740312341681379652395256553694887765994665267574048155775488867049655249846815159890838046793592782295613074411305519895955191595598963699578974732955084231557884362109973487803891393144024718553002945635751275335181526091481533268115226122896691195121060926707759446659032772422003350556810694577922697542603124051059081566863901132955846394537041557005223099305557914638939715010828492882286911225204211574952235781305802188007707492281082577108814652304207773073329898231028575221746436060466862087488157815765924349962241579821827019147657742253992863178927115199373452351687580127381687587621692073957005418917179166258786074133543872617395451534886335145106139312767616828472547225410461567688069804634411476039151884878850167287117498561094721203069276036702244144280689773587036995515857164007470062589493281748692435351568774011863136756270452577440649569967082882058296593038730457674913586045373698791512225164323058113338475222786489293519392177208165058528771884165533930803528333425273345102361924820439915916867142341154429254941633784300440653366188189366862227722208064441758820692982804051962649951601816273042119458479304021902090846121172731363539979423305905404710975531507761999314369757664153980431977705773595818328656233024372028488036521989244175504093559879717824533012827858678422230309666027595935877177509223952484277978574651313063763832585087216215981755369782429434845683219555047359627872275487452862599041590055791186648602772320086559366099888023538087321529833673829056399525662126436305111295595472617464671983265517514598089863148891533634703063696936699651420882559742464049873674698072961178913307448203276777299613760317423428477946559736820144413645313889261190746162095166623876476850205108249064970963829084960485494657474644516520641217975639574124285405904056318716434789465540508317474363940483542162110718643760464317425545373617425115713292152583789215325187871678514397256281929536279772386854712734963605066051636730181079768264544043661771922148677411649372911978193507935479312051129046159388969344584676908147484062743096622345431640771850125483680486672894879981667640747142809607043945046313122708482885200990396700720649607917228014180535070093086778218427971425767017116441829059818825284020448220353488563220982410977591195395544623171708285988975040533727118723647383079018531310595226584109263173082749148737627439289289832939162991466832349668682707802255979151997613656914343767418415799611548773892565753946514731517975593691825955003829647921682296603317836889279091768826480528081164368569154318312505215593618847123258051101213877618799484549746419368473609743644558312205328737602195065957736931901753947850166356206488522713769575636612148209900905292362655600336173079446803455435386429957301091594900298869522136999672857034373837014980908693929569117178617958886333886355463162526027481437571297228636595620120596685797525147541928321304116802086590129237395020129881757405303389411311303046064738385666549499573071617233261087014077386190587836015287763043148801548636621042164631604307609004336900548013625802043678425519357091708492534367942604143234521354132729115938459139441616228004574546935424522307416676277209838052158311433117206167709487406529013394137402368650642634312286831349266383651527572731593040810818987488873439670113206436759857205791401995255617832985673052013336125653193220553483578532683028682983608587465584070187677890542202163900983964925793273993828786211783462858913127052394423544874954512941316323197787630387453360280690731367661495020677582942793420716792334596851724483119242451376237939365130644201614032200615041328192889217605111030999911330815025992254939070433535635208642647719411296021775510500338794520359985390582829680493429609152757762916539528901366106753253207943168429470048400349707928378402935581833789048832238564197082525788451578344567061389788387467072001104319012769570533806848209055112596720744454234246457802036646482833769628342040685213722414506558391265124963932976026593658209452434874992075157923491400678661563695500367610403502636023665653441785238403846184495932502404358333691808107349864861459283702445756221738236647974018097041469887490632803633938190197533969672349391420528479487351131035429827859476147493166604197956727467853355441236948152345634275678351852535738704432650649653302937446095090644395321540987848574204578816816267340692766943610973806777870478616030396602951214510884691469922548445372567189839468337116366405311825206910437810537325953904011367925880187480102705528235455823548106798761906320927470292364920970174744792738720202961444802303711930485566776588289686464240805519574265182854103645687376280768125769640187306944700356821910664148856102702423990860419142169959032117311905520649026427054932400829565250341843994645502972584687885139480211203139022619149376290717641255273522089389021007867632514456472575477972986525506533043168501743676275673903418309319494468492100048313239784518432945221468414690868962126219237966554144057110270169155661295704741899261190960727164653687384260966141004560388027659236976544575449112219841196266169909598034762870965987626175796531606016915787487827577407855709955067438400940001739025849491404381145290220393065046993765755774642325922453521718794825664195352228959697358494735600894922520113767666083555866957176599156010339122453360990276251011780873726345423807935630133762335823008424713394358671491695947511842958492299651987034309928695529799705363931580352601347861883003847271325719689369412373602797599940990373414398989539735896705137112319449995575235628322893307756695932944129439850488057023941294557437729130462094520969468873623594336994123564615143155322719515297292967158995821795371288296715541201562653163091488850641045682890516492905503137261832166965498754259560448705630353658708585288313947589657502207427764000295092766237993935897517995594632434843592402444648260505132863654776283353241387900337044643482236730760231475302225851959988232405945982074766668541986288969388104220305460903559757640529336967269385849981854058868137236930871221981808404763219167613307071414427389391611225890309595095356943290565946472302783133347761591909145017839868199822643740333955280608457889695354607844157070164876418266227831467447484978651589170367486998198640329072546722223473907710605239426602894583230762731984067272871527192677598263054564225948679373478369107595207032264188962732091988796220629481239579966007190925474439968097541975793446433236035885415561969535544124881671443435884794795168971168168758450205550117282232049132813566110538837881406116567906893633137552964948087728170708519160455741505299895082452337106679686214052406958306216487970180986606878529019591836796100942042321376469546808633782994396337694234734120356914993807726319916322628214348830467436168211973447321409768505003622493680810279589792612406874751171752151554962790661327733701645436264719847717756185880342621100511640074416847690754621535395124443471229492003926301890955462166807203608648014468567793063297808583146259850022971870158931981918711914035201480325277218708317787124348718421253091701437968033930277066996564077156559183440930407731311368737668856539693787677392347374635571311194284198425063238422451932262133422842158060729552821147597771784840347852860053294600595688240410977794628984432008131711149150104461203783256222448280459179809061718711057146781546435617344976830270546591372572725034633390323225674389524547773472814604490514860527628024460647328394332454458435889596799535272411821079294968381118777973682051978327688898679648146568677320670855663401025787296264385438856836810640085227272838002582096048487231564980008101031018009292250950985448377493487011898493196749508001350565845007523699106728487510338332688289217831031686921183006317854460972247766858435775653199185640476310886208936631675846844250860869316928344018936186471440382802499595575789618617538354032096509709924830163122919622884340253861179423729342684130738826454523270156402234758340327355009152732510216693841233668329304606774487813578960053070889725113600550152091335033762986896679254286811175938720448780616464380933711928157801663553162440864750479639294034837302877754925737300404832067870882727391116411167167916289459406174478810539717198275385304516883503256180291521890538787200680701405229255284590822088655163969859945794905752265640497754707065570824857629925016211400876345534630035659664021531679289814935406454979888694432674920232687190195259855889285963079759615067123300507011876081377803590040949262755152096343728837561996100553203730734317954073546355065112463516798885603048660136520385452508892269762727167403990693410737560711252190483123832476793260508991747007488033313179240621471897997495918789139039973863641662946450626079199493101379864557130429727395844874262789517058401833201387175093949993658515649804125661728618386237798437723525059592311511095818769112028824382201372581693025974133845988604020283619209299570347501612586351898257088024475173529945370792351807118634464414501141060990901952578983661196817687209100388516830316516397783868230112525129526385345473708411407286142070581691774112117575204621481995571393856641343595822836619358834532658072991863023829617631121743023371194645363096559236293670608393678090796141929722963350636310570932804035714656203327567787934985386526809058892446239377384856767349527491544877113197037986412938183238614732590555396174306390334948613469149607633972951144556292488773460071195093084743627550476876084247680826422979665290496087598670848748213359186496497657428572440088158586408696285991192015746115914537391161396472777428634163736977690461900657098602196013127514136540510006925291954686403304653315104302390027769824624287507699527555441278213625762122526700906631602818568752694926687603720295238579529487343399823000334040286237222348779601897207772945974229136910707624189420633051830442301119354841931109316055875385014366628858592544134359594103580914999562954257599220075927481815568161991453684672986973667864110934227856922078994165688184091890735677989371257784337467704654303297589999438362397866848209746182015716470587593065940264235264996494299841830771159601612061496182147647587054563687044900674279409581206435234106999116840554602174712800974294884806833570008678213767918405360431069095789100864095169913758835004029060394112600437252376002962741307259902591617842135671416698410824031414884385131393980464808169567592038882284243897396575219194648403417403944607758665024099493235808352300494362495884845333288353277300064916782195938573271202587227182491865652465583354005587456181591440347967928993187658617309206690776746304467938317598747140642501658274669569486780912778066436544644189481201741889596963043108103214890279947187507093937630450375493865923057027358629133757291053428220965352785660057978032581004843635252341067268046044776232304369109451226644064130867923865492811940786166970046584063959842216573209709508635663000571020422613900231496520761897873971159056848148855830238163438451518044748968966399895545891503421828780752188671473532346625616052407767000050846743708944507372524105637569575554638640011090080010190441529595867772111360534098464584952748370952905289654513799962884729489502617671690477691640019748798334263216728762242481618479916101860451907217498421482770090810665932764917221024830953856440663873226665127767699785868469527757666430286565722021332801431514891041657915054172466242742718688389243235540554220825826147844189950684454049548656776373456894563985674440181563838316428409409389316167901257471434612594663459592921554186801412028870335019388738234728810261907261316924396236292909527576143141977113144032950752210598965317255217595963923161915480023162369683407095416651066961634074942812338956531005844452624315051694840543642573972827995943134528766163337076092567516377434117344204697483754093770396317347996559254960222109228249152985729644680075906763651081291580272727067920162676479563673004038177573833518955013933433947895717780198879974704241310224651639294775391592319784317439784033074639208838726509814812443984339874004422142554051469094946635854890952422429771427008445666687871318235085497020463762574463969099631771206855315320715545511006940735698160824214286028002417470528607694199741698634431172897078233500731748120879418474492217142777993612416193769058388268039440515137151158483345639208503242170160717908151437700374723181758828534235138041473834368406297455143368492235991703945413490464265389212521288689454103721534767063076331160149032500418034281510370859939790405342530056929325622484846069057042014842744912837308457573129224825347094854437832993395088593748839649985173032388036364026854747378812497870290750296419901363368500180228971734751908426842948834728955128399644008481014787019318467406074859427919871425657164743192467452286560232311839582770822031657639971200211482410500072659097976150603701094061785679319024202694327706366372322022578083549044781552456131418273479096488635603426349137716075030425010825151844338152743515651335442522534383494719150787492460287359255812849048795849056910107974876684248966237425207340133893654982166562493317082492446096083743582249440447689695530483889924644192869526928675087524516897870885193938226611122483229269690838530967610379109739657636630635048271892862625934256299581853056626158318490022623269847237587084108767438806046341952839720317624680676526657696443407948892040034531444260584263299091574432137181946380122705096226617854805070675417697675525405335220832930105815141520493134959495964177626810180327359961411938491012838766960749227780322511889905911670522336743238644219937667766094352567568267663942028913964877672113650847258902672323949631355617494431456736785836849619991267925397426308397497037847221489594409131924521420046716199575452283434378429181767244145331927950165743456710752252583758029856370635378610253881590952367046221172147380312012508557186341762963023233971866288690742848094588375662341732821112017805054876435243727574484283362062381732596173768327983847878034183018747377949909051023816012431197074636820500495216749495517107397917488214852195767485479518195849500058839836802777444395850886455965875696637142663779487742833411576282842951467718532263788851394453974096182136621525478640888381258142324930938782890464539243298490272585863829007879056184622551146050669369932650589048606019027223447630775467284839835678086632629906046455637786134773836138790702756727331868260164563917858497591893594764333804323773467512883316098629564286917661528337494990025242935606065383389148823688564976793229072417525365879834395297891767787162249886788762603141967094304468675581125271065506797304132744056814765954105292735752302605738539689895156129706632738125038006497015765310282518133492994047706998585023014696873818759477679884446667247733239189147056878319671780471101422161721218479319236370996362952071196150259354704318003618394051283232257634950459535510748881044677249011221967357044651079601655700305608496852303250199086960042703875081959992434149088497594046482419670637781538295037567438430801009374375838318631934520406515789192384946117334317720113829257918537827593841801289489687719238077449131734603820181993911761890963214468745219296742066320048034916916824991467632188674480675329995641014609442768277983707548038709592885243310205510408233844330948702986661227403955060548650307007649076456620111139455010550068278772994324061286015501127536522249004140012761104994295489010183214201780852485086944783034393003832547171991698854439024012492063322287692772213737807105100244946211479659012749084057176469405754284437602515175928272929957836608388879941265337211794307834344071905993515319880382253924793702261440454098409214547669632613921263411961689409480266246609722574737312560508622152846969597883678480071694344541449071598762176742062618914230363286684924948687502097952304606364119480037736884253141482025994053229824514673102552395033339203024802065012154253769450484843214571563569839972394218649588633061423965004060895260349277537726419607468066851757158934559291389327549534893634926886603696289777702328218232525270882995469154720106507361420011033264553917034477766940772552633611357998079861078392400655540025409462626406409868130306166552468166040494218902668280642870996422240239319104627464926225452973034311640908529450849208797610167262343827505770641918693623048676156555143421133151421305931798751840176088800724799978232985622549280978829841508540623431748542736864632142618650933121771422085078084616230918182325512339071330315538983254101227174989910822642608928297756018410633328016482477983726939325616081009804443410421055515240800538071036429953296398228102001608479681373861158294635442410099730992738624655689493197510340181980184845993824224907354101233402535629286618035762967458011342691684222690562936299212182230389522931880133229316452852909773155959956024297532897594777979873824017704540096101151249163196469163882962888529187918138776096601727525340969565114738801472439596181315576403040761306581948953278753926491040378057861529647707337856497612183376518380943440561858868310055509910513239211170089654238657854238723361980712397284870549634728256348373467116488431367705572936583104144409482974645388186190804273651572749382716124256834744888470180257539247176295987956965239132112519373638535462177356540655282538806052763061935290930342042587354408735451756645049665914799218434645974958828313264348561977262836638138104416849287579519016839867755870706253902757174581445531773142937862370652786338522170050366411362522440136150171610068549929849745267369073870572966326549706814443497103491162821734010808095180172824089130165295816503284914809599107950526498491534463942665563704279394565443467879675769368668560650839344391220284796964064814083386097224822245345522471211886682194143720614681672650371210763445373957359487854475957976348538330080417501866953450945922405187326535035196350664436276314644035528194896736757425228276639262923555083745806375221353507253044558766781993666969028571165298454666520107518084846819469027877991394576105428446100649076847195106397006714528108674969755370359943994626132035110161850421988074128305226344777196224488717811402290925135990557943078139705564983012343797059294140630095647947135001638478265481083700079894537573314519789068214696938127458644017828659255446037679780874388101767489633940365320622700032534905795799407752566890790775676159401877129409367053951675589115377843752455989811479401345664726886895861109987149116865396178733399082727074840381480001122629944903032609902631713780412466213039110340495730786624910907572941757568933939078153362397686997129561244636477045527274583465695705036615609835104142311836662158586197677801234547723490668755919710947407688399313703034618844167127030627287695708684892350021525002505635395484147334138463551024212128843263824811022107253507474418736872947114955407585007871429366801752790014679265528943234857793298094840864918368639845820459805577441157045717711459214168121803183439905509328954525281285690689310074791668999649263848826150424252884718636197127862311243557842601898951982895899261967776680287626850162588366387793791911339176664566165112885499363895370591462551068034662320796320558521285351705606346058312301403826388354360641532406733984556357312331299589055629155302046941515262237915278839975492595548858713350534392801070331148872795474174421944438342092147038202021749415186914713492201368370197217605131805606949638317233444226325733647682574777502072452602506346347219368686394018876417675292709219334375724262142818631332117587280950252128714221161265651751888671052084331389051963679530484108304984757932303857858540766868260913672278034016604486214000527601298469277316494659150022734775970931032220522460617070205205449607838058102976022785428326475776379016616173001339114421073244870180457749543420630854765164897988399033163575713111965880305785860505486892053520671668644788331559918059849948030127127965946828676695159862862127928900938157578383131482399773628075880752386313579450302601938154025947503861744854625569732061666740122175869641143174318092863205811724600404707802846625782841277651393514729291948773039772490385196249878014200577195459860680950530299817609974869457371446208175037868401787930588192725340841217113465565440981411758151549910288152144316420766174370260473929570159106946029363690722204414094898053233260336479815505909043710179196406840077731817053675775890458119832037762985890313858413683853760529661127098287464198942060894400150748940159313967993933630187687767439510915242419615685019120090382697941037677294143593043495633747591155816739221533925704444303900550640749523778042372533582801285226806121448567015619634616591719164104006786441419789537201069779772151104046261845956498987539073067675721672694264836829542734921377119440621352275725125731895595160185410372712960572397046372112795147758430399979505050199649044924420709002192105210437619966854240130812547684286225427067667260496612998762383207099595211466439200601829350165211052086085831575460287246909225608799799143432372627787055872001296111891460814268041000976960701691677259908651502832812112169285151664677804897784295297388181217024556664641502487216468393608671161955045408556546654765421304073702975546072629163701759613648951250380302753421153723525765363265414496010444908305876202793184904535861875714417530068574801637598896559148282484253106925098290473115399904554420770535349324920852135978563697181100073347855780833081971553241961743407639174714726114430492531986086341384101757337354429866733450483697034910751162245739068866275818284845863193338489218419180077411393751400943243805623929784194937201643316993096041719190824182412466073063375352956575588592968428147141465997888659609761509965564799722346733665636133965880234469911824542895302890345480917101957538113812258812786952748913955894677357003404084351370244799882949908446719830655748335928399037746898168900887553272277536168331438888427287213778725343253478648885402258863085949241912769630182487155331967259252097673200625867139435834634063929782346337412584667634806673233399220502940901224306041570884576611633436429361468596407968444140790848486424311994581429195485797517666358863350280504436092126959844218178769007317726085676899419041885038096320860470761035680657921530557359108085386657759976207768822385730573536749878297040849517559263627306241770877877005545100525184411020382204222054033983530765314502367794009808971141074075877752387020043554140853093716235201020426224657235993566059635208081951872630476701744236024102909014524313437622146308717524160148433919417407144049748772527598781869141069380866432216360976046165440320239011540547235402391915559144196492773053471201082449004367116412646546643813803292339277399514797306158714126540107479862752106302436068305910015455890890466491370452806634832900146596166215936022957293638558061449896164085658807763761490348358349635230106293260173449115084203830727892184423255944096308678403884519421144852201870180038321970475383100069537322733805433023941248726864462111514616447173667742823787473909983007088504641224885836606205887672945171787304222399077296752043886762147573829077420171708030163731730072636668832337987239995553184313469772180132106232272307509907139181003057053042366420553634920351771548474448848234065194772709060959776655602214738648117017264638149592562680139053108759038036740222126519656385244713050954275831309924855767073180556484286677884917503388558285981106840951014022975415319028079398891551667410989108305353492307993792984271359275689665887105010752982966895857834698072339997772100606047686431502433607313300605950084846498224694861744973469584429954261096113672559792327662670909852563809693788499839389885672467500602417713010368067862270593789317508053233309803732877587095695612361719064321637650809142731085149276938707835778234000832023127559730069017301530235338798028717291154203787543659071332786047263469770923871396646258164052756719911061332102539550436587171580920142278022216157310454493249943842348365389131290824986156507408496520201042334189375793842106412099785069710000066016585707210495321176063721566710018846165699891544107112704763464629862114076354311404681769212905178631279658084570731203919419951312922824308543879336348475573173470849352247708623441115796035408289955348817950816710408160463889580173382211091744801184326949407310085307884938701280609596132443666879652589028585012144704697718766582954180900373286770269096282621206135290714631305151366950183474871884589988241772556699579783398652009271068547730585659526894496102483113339202920101027082030135043769400553519676693621346780513971266922721994004656132353233921205700734675217101000204394767909211840710988881477502045656499631036040098457557724401358793606751039182464487657977410815233615967534699372038201282394198348407566300464394986579753268796361926716047301275456862118366344821251401928212302253863189710428987180094681284204780634161890276622348248860522528682432469616709134388271429533496367312143937086929451523668279361622758546101455276986296791961175496153640167737163932530646133776054458586970628708965133108733240877657318146011338792869954951400825136828624006861875106194027203035412641908576814958074175553040716049942202163141749677084648009758514599226417077245295868905242526664808143231520672979083655781557308309466479833222411680876540790512670861393396500112756895191254429399048332395345068300895208842147322231792773627253209128932503482339381412919761501190278098400185675205703871515362014191690156661476018736754151299877389170679388334184563336529363544442238251657435611337859619047655368237281291555326957494309661976503280146201527229615519571167901173991931201562599375938485253153593051788671850465952510786721060868384001464681177897293142669220840771807044810561590632757686799036925613021957106479327249869248290016966304112057434125998053308298733608152749121520276877052533219672551875184486535000612052599679253760745305733068433713901227505031764616213408005469240583306838814412053515860896005919294225267291785922732938792069681003748897531168095117626956273851367102541039014237203976861701115599526444373111744101549835066149311155954854551470938347771225291270458822839251717524389202258223541663355490225067793933560968008560936740215792193716833766568321645601358271233087304979630507782348022928474186889135835285421805280082853877951116429108669727100411477182780352230971048272552551360293792540683069443547350003669049605554914351292173905129310071491518884269895500566610328321633831293292557443915905834560019727381187671571583781692005517565151139258762671946369279509122988980157922468668850366455416857956032267754511212724267805112395263969635349056287385562245153555097942177122377905786671578998877057029585601226219287042212269412144824907747061922735361065753896757895616088697166719321662447284166767223225415797710205721825614860443558486655801746235913515940554707273547947482250997749993467569906265368071925674553650008146786912833672271401749608380955634411394010815986188160287978954092677152954435820297696069093904989207976263874277376950601133995378684554266022103340974936835719373243267813058299107606192846132520213528587459099774932732540693963584643282169974385753711418880698289729748077648282703103613705327910311356632143556585429755574715004621966889686622140933902127886376305161737887077636655498160227915704242062152091588737279723991942842621642764546752925940694552812299732141270968969795158902019843181008795589769932465131905194389881625052891400244743766240619064811326214781941635720800423954238096256764256745553180581804121042550526577571950615659701530564122940466966363695790777420773867573551567729069164263885473327725358947302459302500240322644746250038851984102340321475066125849203248862284250468570375593618753578599532568281491342947759737843436603264171640989203433500448531349965372695436284581849835646045443487022077677699350422414830720426011270579627229534354931328432642366062799523088505038985673593249757949970646636510763401389529178414263654959209279474950146154018599460173491614149858600690216413875138992975710072456148522871160691059405320632167277810097601349809858940702262798350672791132056869495535955850273113812958349337971249423628253085157861723900060924848710119159748324741141988392134758741071472117327741616659504615981346967297267015282668144074111808379747878088349317222588660352473532821461272007388591705794613123756031004717607959432007005205122625415886450337923317806998361940649235285570771335172512865182019401428882946896551275351896853149424732836931258210147239058072098717603544428839681195928925996161000304521220328821382309831660165555329216793291137362767856804252764328688468176320368635303160710315816264785119233010048635332804669129876208778344349647280479128614664346549686479223500077250816190108013086548759019239934042524632021109688740592032742631039620898536137234613622377584873398268808833482487509755956189463494998471617370204504090421721451438392874313289767165878721479424019359508098777191510038894470743887464750548958902534192164798587614489409336374493634094695931342422788959513255287459152497697071911557240996425149022868013091471330883883567220689579818800039431799668914945825282151991242779224575773891320353120196143841236169120080612439371595066010031652824449368803948257758349618389215204322175564144224166735857169483061763927913774741289059334115558613199156493650005486550619411697212012049262382054722286553128829105604194857705635812673109938317188533021662712073156488863164903662628485114863825672988609452260972625825660616258285972435597548566021497615794477923102657097669885640463619333203211698781731865159377862229043619597286172491036404306754862227392905856140464512873242695608726416941966406906308625263605309502256335267556054964711383686568233876418680905369651783022304927911869309566821313483346376603346732444534594053723422197045752403076913963727718278116824502990085395754524229023361455814479759628332728629897970591750990075337300875975313061736873400250473765278466717557482519661082348477722563421858732409643792841928331489229682940587041781561379599375342858586713175202717835468318932160418005599078035840252622863072462031540360581932564479035749494417536065762422846331506692576474545412813130696780100798564189006320285957546754895533635419386677327526829404022660019168867772896378227023583536799941605867732087185142167982917456224370373618711201073448249921228923824262969370768291204559137838270127038840595492845010118514493694381582918808803871822895920781397437185244841481020264257841234965318575882130115243676158472209214634197098154178652666600216447388580078477815819053726284345732965432169194794661979405257228665811272090504951514255321186001598017833566520948184694777159370481131700940714610339126399475833517341047290173167343915723742716659169763265485620693352634290673601996122346984681541565722328325575680881597732378571712286119353957353778978723830235917548374829002746500717779590301761861187309667331629201045851849535298542644090801958298635317440504461059683163878522263671410938735165306596092380225771178888489956382962235640386854039853034643189035486466635158198269162700222090675624162210505133247970827009409658912647348900771561133218097891746248898472709419067132453024076961217617725502262245288882178730166554554554527133935789965494966652206060241976533967528659416928956876105201849612535113546961655751786476470728042650307374118336767394200072562014638466652292588854805614127095385004098209600266869879857817019834408022635630749979722826637580129929362228733399619567988785890397354965429515856597061064729972364134238202057875576304892729258792307540656614457718048698961908795948812649015088579498966838537184976075592756429075793068329913576616776465954420727614434586531683895802984059428586319462378395714526913619736368533683045852073346823508664799769705334725573799666425528559559057315306111745422696777112447280613710147335904092588937015929817524978299794659083522039958857402955808347760370288957956561035872482573244689359054534375875860251568486546907180689706889916740633211355273685065714174096603260040746526019327666261585461737504459458846555790437944784689442545911504236072691650008170978084275487796826288229224088955798369382664024497808792519581659683980888173659220882359877972012956756535342498185527215880231225567150323534672493114384325112944840966987425760055046394442502740749441494406308407872255854934409489189872808634094345532919147094941499863738227196977955926861644550077280800337977196255984302243839487191765359117056171009209810796738478556865584128255852502078568096286110783614723081099399404835762126104205286251727212509948569803044395327345472699754637492629681945827086675791730928149489865691002964425717368465360801961903567397986357988546754102305283552436795677163153923823190938616403201225237243470075907243734530359970951252085726635528481976902506997643562156015896681984781282808587333664960319080805204604910318934674649656955412746049942256074833407797527233078919694483125669252313294565133409248498297077537137012316769678823254694553815908065064215193741977384450124252339474665788017589744292983639773958610557923228894935039572662689492056053893109491971535584208343549376883768098682272762952070052219653145066911951826777800462809894915246681729235229703326492099105206804267301949774553021973010973616602795222461775796715668425135453119962139401472617770368051596923317598791305799421857671197858070538740294307026149483656761845063446383483520464153962407184114122889397489846906327836892724298819686665281685702138933673190196451721348040727340254174415617265891083195333595491325122209880385225801805085065135249072577324925350401191236603531040646102708983995249287889843199846422792032178516750126888623563199612177997792102675088699937984148562990771332235921901146798854830259535233394247503527941891047599134432993590967708144173920433798174740992116778202987468794926261626477559762607243793531699902559093698274186354582521810357390847798309836314259510370979230275098928429065148880849203144462633833076365017223077637429583037054320005379937714557233780925949966263100252234441551195522665495581082253209355849435696259662944210483174152448697704369928054918266719434065027947645625381233052244538866528093940782118182328483639103213819993465200615890658318640119505298297820942749786297376116374327287426205724506380996002342737657472244397706079174483582960568564804810469342937438281663613924509712812452916219084065629226120856685943436187331250128478614931176819680313390563358547619817495655813739694308117573998844010168133871593650234841421284525224838990654952268972488244307980071898776199325315004017823879805172219036932926110047122597479393057238009648577184833369402917486794783979598506898003992366962643147318381191513255621200583159240906331109460699234293909550244525791262372132810221368956209305879259129112236351407555162816062775201531028667238945956357083977405301443138491952215992931026280014819324938114048200999592203204358081690376042638106763770368897928771386624475919426915852108256337317840745570335973204220075017199064470371565788129845455462415773151506832823728672427003130175740746660947532151654619590301179997658380142001073438301688050791435613407103198815210605108051637527877855418017363171153208699059270801072853906079791470578356582734301422810915958114616345149274756976486366336153596297137122762494442902066757391026624727489370678610354489595472791274911426783374034913421489148681235545051045984525597695953825001694987868911763820293370510350828283037113825372347583065732430226955553812248818696057475813187952028048515040807620027307606470042793965647978542977814248661222791335812869327281294786387891850847909263598757533895207023903890939222103115561032904392179757655972855142507624326358189405573649795108331772721513395850833551407819319893553553979141670347186373479096683760263954986128099138073945037895066527263725175389776386482635693057020036636086188288989698855752713543775034127129117175292269257670592191900011017609610356202676527267877481235388388945148198863910172560563271654661421034064097407420013232376353182143860875872100787805459474586721035176828829665149687795596729191600150003038480752072675888409218029603532814770334544248242824870303204878341402247229800667493132026598618139606134828496043907418259459971065837049205972616444293434225752944835280047645994578205081723170676344917859045439799280175975335751041188331337534150046248026719462783251923599156651911823954688990141206426807756033462887312678957796249135997884699243046022319620999763481717088635170287538743883666251606678602521530994457274498487602038719137712981659036275970216055595006098035256003222451353265628011277888101331830417835111889642732974231322316555776702253371548675391812345221898682920204559809292955892400630369893861028916887385707605738353685471741397175826234342934067330683860283264616805661406562929135032847753337961597486775911998769368420963268275276298342521297430714461700407423430149419639116540100703995454913149239899606290774965985773182193162383749985191793042061529700833593687221952889949304280362715461880627600281147208613736191839296054049624459726141917617954449197606182130157983679913031095929879186410084759916221400044864437300419976371685529817590257100796312460283581612635905305178605370645320228458331479664319675839865965226337572661876289287650482303890597321044868458900110248768299715485251319959237513217327212032125645060931478805854141997779306008399404126802538339786275010105347744627991441861103095175232138931841847383969081707032218892202771534666942929420655180340053341367390153224611466457659341921652054496030844039385703747617802637048049635633244380067305890209021405573918485773812050608497217771223733488282049060302832958806807439398902959878839601286180635679276809558691641801142475398963763610081278125869080081307537836270361933333278405760852685013006532482107643465329355131603770693440928532207961978236533954341198805310582961401676545769103210571985173126385788627542073784664496469072051201186067533047632797281406282791934397804020834009888612910032139066198957371009611604566363211087096801555913951426699260248245429160796699690873646207206282167813880228460739579353010237605947844354895953423279258970818046998878124044124819909046331245881150093375386031542976071213046950899595346871891033369811661931259857714114031812800284772703758902585029736127515680946676485344239702474308262108500459500669131182176681287873645293765533984863791501921471755237669564703581144070729566019300430512738038439924861812468910822194955108237774254313676863784181188879407289652751814494471520017786795401889826419630703127029856726603158631583331368260864798029491456600733699328748338774833272829588169396238510692297617085865425694556542218458705778596280876535963845654466160856497944213956111999772325219786607629215984968326552171501874205864774220560654205759700555304226458551740474159156156495062375014265641980838610075265608905294172292009677923533879067691352908537162903261303153349643510136712678598661864327824503085749091070523642355792330233927354578444246718426528932318883963096457455464472643344390982389433031512404580965642032222713655759478986248430557481455667768721851151304316443477814293780092125686848442729698756498462612781840379215158908092512306715257292516788420524295147661726622737647156558110328201397145477976815086766747942515465623379405964784628472021858523657705634547351537083958038699735031275308136289150717906033565615547127175797274682815780441825898381736569988976160541477613282789184096554658155265662296949559169909821279767739256895126351889919900638825977241180638354249898521299629638780027800539556281928853968257665817546125240797924506537051342180895718827290396787674988650959441107809411545592467011242433114970297961600300221183855585057560292158395667110529838278153558063487569691792014132857621492845528774021941632763722874810391666237735929403879727341544197301951693768394248462608267497216076895367493529678986976534655464214468302733697636536269571881303283875639570511675063533115294579108844412948513686068007039297056310515256544263126049209280861520969406890039292557034518828292717890958144593619707598801334578802720482108728968674553949143111818359812563736411543546432331198546515167679906719733783383961280813896071144130556018019623831893442919973824036850902383798698869157581616576768868500778685474999771147289364711867146926464162919102108704716992240463348168530622118498552757076275604960125273718569441234793651699910229741210225438705862050179711370206421613864849714947365078781426934277127378724437627803009418152588210641772505231216615077044717759277494017192958198531297696768542019068783899219731385221448934337080282690856998192588384188197996722874224929658878214233535726448539618406978624686305770993707883709213462419812814924996049029733431934309854449068936941480832872567748023309413652225923773620790210564200592868810569087944448551036717329834545985632684144188624344741913555764456809807998983915492883629708228076878131909068382309532609445625602619800872536386194265785963466627125306595548127614081372506454136997464317027727772603227056826252546372499709516728452138872792270576940711765979557488395433240800929766258823545079128710337097604633030701175354614508835531293008717026235583731136744244270318000210266589146478282002789777352697176340248763885488774249232083283351793126143589766112009382823778123778862047784841998882216442110472882122474701085102073159345435364635432376313544624484686640602026187250622849535226449389975598924232354187598260240219086241781123621800694960169984471500653848143087381481152266374497687225803628474119707348109145550482173141363023740044449860597286770396419909357729168569685103428738113559559835513101198068577993269639794486206256607478064579711311672601985905716691834676174803787252486311742517462695727966338370851620614619030775412457298518343909533401852414156904608896545514009328874926437269094975023529192840723529656175822037809725528317017142216482845863713792020390310203040170216851125320599173148034105644492544393176286031105388099529765128524471805869174304494938345209067601510543042900758450362220829191173919870945163080183097059015005386051520529851183760684103888227091972589752440705399659989103100999718109632391601318593666995351170717855550521572987920143428337690306492694689341155751119219490251530275212846937405917165354796185192439736203375990355430881152257876793313458377799390472742775480104866429588422846800901532069435626291829944188723488568234532734244259936372489453651804185427192354009301077460666333627249521062867007938248528490921420029459170788669291205855664328004644258206041758135635795653162990179683926269782431027035801192500954262337186366349295662148919897871258340769198608740864263827204550122459878365695395228998414365574150786115120127212930557867524577185666001492414646251166131404451395886463352677214661384925453946963458312616804709212987087429238606201750528014885278199649500488730670710684861787818560681404384710173751219105590255462428812203111115979206721795225349612622955577290406566061694704110797720667709983652233978064202403397631459869271678887903926564453787760360746488666726582491706431730337090226102473385655811137965140095516141318758914882605912295708667268400341400566788928107136788748352006991811269701280493158002982772461582492581771925309307033872292602613158071256759918328081340922544232436231167732838622568043997727061825605440490249706033882282031142002551111426224939320383021251971857365722385478864945201003322103296177682308496993934143104773067563694864979872845543103986549156698700934582764434780441670087850745237124338524897809404605367443510022570832825517136755497639469044178009901396046177895172609351053367723460087959412267448666737527447957980126609256569543732404231807762556137488594694693537190603751214791420937798987446448787299669815887389230833277016457901221869897237660031803737616658166985087021343211406090764806885079156321651270530856495470059608370886730288658037768713709902892096751370484346988043371055334309062947733315985388007535051732369320539582568600872928474821788123758264865307454729190229441959778574704370621571992531485404010896589497609006812467094754237144972904587216422753718356124588650178054549989239865959777854813745589404620610849070992000547514446071704004355625022450024542276730100347695826428835065412019550614398157290434519533450795353615938548196623696124334679102263291219186836402922752469487717024956226965264646819980508089669102499205025141394581748266127219900110572044122355933169227727041286455826101216477241219613284412262440518138016557127703693819085713006237894035971267530582589858134327050279536068497055716377256724091611216500198488895847079781039690876629736214803919962190947550370931564450288102631360852909026854193748742869031855418499323409490018325770380136100717113623476934993761299724868831660227451149509838388586411257948917909091549064454930990154543082448838070586047666002622944931684201378137339795171140075250267576010522149307431682928880622603567645524753429645688831695543348325529635975596220329545620267452092732381871329633615975490526072602528460530065270102176879619196356413180682363809125964685944707388817271130904190779556368377117391982277563645386536302083440531600551660182798641651042960272428150932220778155105303903605021859559241516939136602794232678749558377735757835765347851507012350197594766366317831607248481424448780088744905001358369183302379286289879074321278681474766877477136403134006682371445978419368321955555861752224359355302170999914380099219726769284657685142859023045424460070720289480490222955050448643702003005898332458180842245652522083812950758430229373227069134083942118173582096533100858842003156749875213815377349102047824636807157240930952048221632783905882444894210241304472268343070889528781520720206578921364978466222683270920137499952085354659743396394465719897455404687016966955796672820438722504925234459316538067892451139473545342018594080599710180941860433221672759817073053810258778767151667249832468356419366016817038079817543263718976603151594728616537532438149637296632744222952004295071801691755477683778581403631112770991916464160137166759834393740374988597137939801089436224066359476289474657661864922096895463820567579020974369134950703892359614470918445222025723489396098273608891021772431413191883103935886698577250098012223606041529867501107080062518936698292576499514959859140777797130822588968094633371640271848665334816493001783324888930634831535166607090795506594402307881493050796930132147108867524009177787777105560831476377430976632816600503890215276277788144279387702123687072591327785378403994860388857693028900449076183104550339184039708662237997927851882736500560611002773529234339093705536545595415964273450041518643163841398582574255882648606203043976354102856846459436539555749359896127121517231156054393828862657708291269938665459562123110794746244665224517630216289139954450516891362288358584637094905936515217288772790790437818086865980326905113494748390028872822173436230556515425361895273819816432103866398341099010122412816547928434951174803735973705323509699777202974543280230447612865274073228366410947392048132987221188867836134585554728715439496737226963126195381250303536513564612398723704639748219861738920965473447899844267877336120773172582412824353069805076021350153265778433635419272978958541181110454787560688088677686593116048832442472654524264786065635932729405829220001547800881167957662726387258182399798909326011087803201448903023351577343197075042518627024340227310598335128023646527135148460969820868011772771899933234645406653978796156961734223532797315616008785916154717277102162800181525375116222479906954573625359474320038319576711302360836893610475004312706776945230821640917471445875602980221855986666546745086973193543977625226650580102029551484299112597683944210563005409442114927172047885627784466741678234076281429480922224769612036725989079207375167455072259227378913156428788147960845788412616864131711761602973950187600383792226302687701902158423530235319176006941021612952646865560776427186008499579069576868008770479419866384684791618081945525254946677298887812163505562448186430626604251802770863568491686234005723195220510788100357265478477518361102440901936901009835227150991182544498128172314083076283297655962222845369835874902496264849144821700747430672366644262662231949580181902870769430742637315363286420999062462205483835833287618744213301781006607244620373019121334486418381181743823994844998632043836179426747299341740052542389604305207125818772748274687010089930218474991272697483790039948626891893317064902685422434967719640525048437135993454821705253534071393237349729030718812721144661835870508781441835700004204244338679160983458421857438269312318998678801586228399478015230924550432317707819805191655281163474481350647898734406462317488604807704021598984150817706108543309713766844274165395662161022456043769736129684187728533870171811519009175760578561076933430458106130077965877468985420804044074971542136707354707851563696226720345460362687945068544403919171861393524781073981506390743599749310296421894963028846899481903613117485576986553796120518811153271910179881696088078272040383312792431212990285675321277298144976178158590028655836284206895013434206591669440044876496938878584383523851711454407957412188008331865009716277251705113259883491316959021110464337955789052182218547339970054178883419840750029752001142139833411646144191607201374314571574864820390025175962207113983368749778902709770886859340681825452564210722966980717149118668501982049559305663375781406654115443931977326982006893119375897017744631047312055416030739370192385148382752615483153981297818948892787386214444979610328095770599663879570897015646135704720679195441384635175231688254670378677716714375256747357166659732074263020993686967969389239637683616106203155988949223419835337931353753148410406088539283942917745525684974105934149959689088297014941125581168620004262674401005686378022235779241113246930459726531343667054654134735686593842436564663419557893005364023546246245337853546026248912610823972261792962106310017317761999418130115887662393324571196131490421402050160734530049660541090879313740914003393726097424859808727139406593271128775947759679536963516177112499497180244433966438089822726900317671320899642136935601748336546108665334666449165222765494779600679970811705740603412703526080377739478556078588418193808674693646767173892702464595428853337450693921395390023094201449291622947800587419598537171057407616690835221779714618425619180672796747634195471992136546082806294462000515104342951707075136143436801984396739087951224140877697449168817183479103115242117999843349710301549731613825277770859176779572311959064340634172904256164363159739451560554905362491755994452273145353808694605207793523838764725300506143437265976744164826164063223646596776459780190587734716702807660329415094504063268016666344664545798968868427768410091597623675467037215414230338748864204704209010233722717598584165815555542640678786433630112625517545624456589014128163767191413105521107548065410110821983485588518870991090081174232124030312544554918831021944129036357816658744311523199979465176487278046201001842996412197956824804613926394751782340286210177135790822081941705651837686307387521542372070389083224071282387442800665218178908109112891561955313849688938672261558746562844177920948654127030405983178820938559866819505793963102009312066302255217930511945478637093399242068619518678149690630199100926827254732093621154442593846244416844323035938793863388731984445886559997341295442568212484543082590116606047048262080008886574554617985406972658761369099965161426213200023945007269402832517096862797087896119886980385922426026040747776866786932927054680233338774679682387431036728949812121425310254673581529319996473750086059477434907821279665480262618882940284634365158712375472579214077571818126454320169786695737289965865754334664275002381875871180246200189032328098260472311065881034615392592477463223637994259588503612671509849697244005652386557841606588232366820543562937688186740947083378262807832584236302734250918188900349635796817143344842365465803568148792741362973123638532559126495682904635734454231377290844179745926909566919268118224142226839117879109525892921563464953444792627780842155118433949417353185047159629844323672409324181226738998885156154024782200691337109242275144020443739532053717192856594049978646319040302944914786696049116983561468605814130224339582494540952159949045365157439721900044741583289053528380280943513886456648583802537815287837415884292623845871973476424944367450534721181201575556678984312045529603885147120095560285649788684409453044014892862001357045844920451067916651994388346060410695084790881644688667221142045431457468073451562251945330675580438374637886414206752346289326259136727726452693937974492252686242576603337443438970990798752345199368581850819002336531176135201250454808838720759155371950852903131691178459707205616082114635341456067995231102926822341402240660027160708534815819308534156080940044806609791587960779289743516566226211353494302663124444550444395040796300343617919939887636590787949839682430482112447302175520449635929877234756299426513439378006739317026505239056678385452989083933041111202810025074779055307034085293969984112376479261705490285208090133559902589884646086202027210479075267066545498963532104963782350930786141859064755550832695478153518122139864102145768168923272536990047099287606456065013043168557283692419575949260652643514113035697725766465052212911763163772535212066009468911172973896067433363550474042483054304066998566795355253106191461941763204113642242118216450860678160082059836453826227312077299065704817037708292520354262394533038415246555765987358969893214763317932115983441186929629308404003836083143687786924191387193395770965575140271663393561550041038767873583438822577679314144175394531553927418464917637731812526162817521284176332668065497523662839038101486727646894517272605708369478397721862503029528235113342819726075018138749820860001281851039378811804238590633815772955537868840590483250220416703286797924926560934028425712055706313988274034040156231679382892522763123970960295030988261809982705495426545736572969709677579039133439238625797668978023761782791110327917733407534547506476572165519188977591266198456086496311472289829927931725627936331939868344925333708889691036238531216363780372162758854285782021455137998052619679486356233603793394361675053351388924093174233043168960013855476975587300258623902861649770951540482524068191896902195045181632731621877368332494730906836601964778240394906302378181108611882669514003186115735238639234240982422761489467057507856432490397270386564441098912958590996677403520166384236369271900585249171525165270499658789074493845936168351388197123600810239734278827440447796385700209440129338158314645916687019126132373260658177545040741165537783076128976970188780709098418534856540564326744033222920574116563139465796591791927918435030545319207136480992943426125642266128636582170223486247522577190694066443127336277970930045776831212338638078298456217303812545995526215654650004679452617984092813930279163595827604176233580716300655449272733976682839831723276943779813353540896595357105709015793359974108535919170261774733153622141694874354459469553047268872941257958031531843250571109242171621807057228876546303224165100660829005725234955415199847874728053608983846769624712874028873481182602884817388153580715337597700197376222255120315676693608731516092206945878938032964787871934849964896849714422410573717042803678866481934669407037119038383774570415385275616458862250600537413507491948582580767058718114551292591823684650417406836014094424159705294547356460576403122259390851200037098475102723612178983267936784703218996900867243519222266286742933377167162292108037262022333821188657948501708582013727280265273065072453091737083047845104767053649748203998440500419170101909983510712417812523925964061891519030164613359945362477229056519909187352541995525992120766464511035192024326360691583807096633488439050189575697785103753971000441045780230834426451447212196009189506704893415645272942940203807251011297354051880550511925626141062191412848726719206188668846713649626649074277466165567174309572350657405347807863530647685888195561749953392417034218208646652954439941370132307448410344208770730626672056271497104148076683956676692718018532408516548137605754663516657178312672754411901662346639406925629361214456522716575867176267055580210275013520584325666739512267601357234080758189599455170808877543412600730125927365837426033919756830403218986903507390476787595330657570959057121295179826141297350079225158290725022309810134580023278534202439239165196888963252113251786941554459745391925528318332846453103572961268094914683746789990507438365493863579642339191153027675117898352545485187423013548362975958658092651396841955253286380222412390360415414458528110865861143642321444785627630713082211882527301852960728533395026394542703564083646690366405340756632026837406868318431813352471435927471461094395255610808835261110481996469063960962468369063502160230656496274800811976565960746574035962101103721359079195109813924747991054135044341975806636647548042295524114345820875816837108353647522766810437208611229033544646199893517480949751954087337726055301313249521850678333733748556707888345825176333131631527657029512300616674411462713289498677204802079587800981320252814902860295416458478680034273414325653526800672696727586487219538515029212524947202900410790170347581968244897456299574255235677786693174620233147014433032694018433470348875700074092813515262375204536256216723496293737103284164337975269605146457015628699108506268463955530191216043587736069714109805311523095995839228288714798987143164583886849442505100509071076972019627097256105314577453856721866563093820611564920975122512110571344197591207982537881942758657973325194231509012304509245881496146942883485649823793120908727496970464486136293196149873445247591804656560725601662545733172551499305368187975164071794611094479081978555205380600530308567281019917063165574297651796325598868193041695706338709166402173063418187792391825737542871349115484885890874636611937247974124205670823969299691426833202804397660457387997132703407922765813083936453498205043224417943679506696241156162727864770404065322294035201970011505004534715139189117905791867029137522979815495231466924025643083737141802361605401863540617033083389634949481718842614871144075833381168371676754880168775022625150390914038797701042459347791128362213937308071522577518545839911215566018423230116271903038570398154737058207611632060389312987079235432636788805920846623507761390272912521017876156787855743311241279472122744275574538207820653585539387268194421031303842974133867755870747179854667663804493282091344626358949011627813637509977827784658955846390664487854645361851622042317116368784251319950472297634575866308283589004539653333463309747039130713666538424834969459493692642894075979353122402980542005294559990118762398414230832865995192104448550726945730356866922732959761926793952172111859229040802217254776767544307900336673003116423599195291366634466336538083449240234020554419704871398490204097075331563813078230877996138941944210129794316450008118689348835597297603935426727353070113237997826259501910982444601491160268263603857891952382595998666972678395411439382204460552309185418036665185178528307534985254028278255163700837858226372543343367252303927240779252107849783689486709289822452843287659524683652672535107568145647676886292304122818240706399446382605632213259565800229299405232965184907370918556797368529259233768059430112631920635598171645786918919827909273748529764169907782280534674258218975330429867607367977872498222113151404675286058686071458918145211709565181877583307474575555062810018161768232287963562522704384138831093552518707393333066706789934053362997265983742018346039196821808332930489693768805731245490223273128217507835676686581939005952182586668614469723324248081595395901757819077617623856294261538955148331179263563133297416061297412516548660133845650341230693124859110958208884320557188812944216112629010818889935748046735973276244384718657784213401445238554633682487925105376674925036107399257778118407229318726593697389868828905009683693769140378368600895415501507072574211453697506562417531439459006748197811920684038597044877779824704656496663785789384624511642730390735119111565053968678897573183732279743517934903825847128456214429233180852990631693007167570372719064561365250193278808801523502050728145291679201372577647914151993951457231453081118052402129311176193239773745405534077541079378576358088094158052807391628090049715003187343144697159532502221560006528224480578812648796412919883867204449136227122415352025542507632799408990499745775497418807268932685095562240339148134555930986752286013519011613301744668935403006493969048731040412201958373199817888265457159175598615756627423254868661748296058158150626390593044870684842980314854537093215250617187857274195543770851002730528297433720012154250711886218982949207439359684521539209041353195103074670946927799657351398960117304610514290341139316908188603081000405402877144139463197497112701833112764626613120368254192396183690199799993833811474603899004950232971235959800131797270538299008035751050874798597472583170100371442436963482717885707828013500042543897389186162680087941804167741915140491480363430253314048641146936551906650426256840337706623802497805042247558875867825199617393313920535560725187124555046770728863049594031597481380902198645368656161882943111529641437621281662229349511106522967625544170188974766862425791497009421092559259032257176622628281273583724172937202839503957876144652129594309196679283167027135594515499697919110077393505194492975308551087529988553150047634972065755463693065713844099830784274263526038076773208384316520469994975642520624980815321321643693430305499591187441512067046579190929307208053075436467578430583826300884723790826003618402418775606680965014558997267637718660073713615515381412893287411036087901702769380006339968419371020464517820617523938460558237357886500211939940837896755256933651675265103305652361467322864041762506492567551677050204935316583151315976014690875773197904447190813059765183048305467917428080826588601720156119616440374886669984026948373366163394795883145066286332074046614105469683626450379764382424740159028061639436228479324703957165750468094642391037039313760961460365726004008348586984393888070737530024359508970523157501876133510564869847365808254630671604741283737791358835570399468301351598258052738322506057394173239358533516392100500978970947576178112997401180584331257712829610194154798899895784975607783507657029090982074342494195406543534320717587920189802586711472924065619557390600264538383627830577876366315212542437460284251595546375046049517311256920047429082302726076831661336778569930790716582993060683501031459840329863607677903201384953996107832381143193979965787068960729804969803598242753935211753274620010870340503327282205701469391417819071284896453043000275781847949363016580405222253627231342500470431791450255961754846983290874987792661891298486302085524681154689081547182109148718047822177404724970984737060141815079536175350848324958336837656571401313776571843831713621186728066499882231276734352627924356970077839764750824107254906742274436844635647554326747524989316828720937872590838063537354274390089948541716321171021850847778160121119211964090667040081871192983391533872874902822507639029187437688110936655979217181743385817170000798061713711807060322006937375320528554165648961028119543291337355657765834918034784763430907615511673095375428477165419741584458912961460032445572665292614268076705616904439325504984566650683863935951279105753919711037785032913155890145015275634327340607778121411762994944035850754470090906681346936073632727885006278463552110415649486018931842714228304435397611295804934687788225492030563839509510728749494643714437251326178218340138523713444994330084841132216484661907264743284465609850101738681479730861881637642040787628560911342002146718838858379278372348980225604794491251095880722222406736250201113911127335980240548779068952808212971930216560482574982186677774140934982299082003426684563672718594984553815441048735081703936370191203140304697469100628929927311083159766579134101095289095016832046755681591250225465285775422822064653594000100122034138674679156222358517377482615064438208070721915350382780532818032580911612001747783721782289283891816142293086415907741397139529609233574374170545838341076010982823889293872454306067440997703476161802782600602711871509968690742604818468452351765542183417332077176210691967628935997481243758772554454610677729488363021469328719575255379044763341084666798548123368620058645789511352975974586947714459505031630992792267524476213422935170019380946597816751182944229108860046862260130502822920375213974034665014729284161266927379687998983506926048945514153061278030224479385663770182339342409730030591483699913941524513722323557586291657355273226938684922315807088818843165202288895615875328549852485422927237652130489631286458203729506966724216603673588617170088937301763247360630291382096706898267114164222267018549952879807392431672386103623047246247918445108943439802964789790185412622308601399162690602063031281036199000073755015866839990173689068287455997446614108889183822375188754931281094804973585545145481333036385252261566508172488673802752990992925487884416803199068327550777243591364838354742813019220563241657493089734599436767456215718892022442053785823779988711117856219476120575315164400984931335261179756609781258814086959892667238099982230770851617662056267173517492154008147741903012107993343744149788041786239913461160885688135376308137000856010242087728079425597600735237358206723915016886288632015786265050269915049755235826693299824776508527579502503772631487017060812476120388555168045624352684867058802101804985505033035248008567147281865594954536591864577829260710499389732682528871823140788406380975719538368797238094247413592775094992630890538742895871472531899738665012713205953190003212390908764138492663540268867440128239462231190252866083809288832874797985627630134956261763132069205112240704437082401331736178446316455906394639983388552211556615147188443010591226350548234554318451281219681336350876334333301829664683399351239613942585432266318859417180570901210340432072582426137963073162897498997895249851052545978176319015226627287369922394815700815385049267969518239633903421231790549134929429734977100972860643129790188688478571506021108136271835662136274616659581141365313507056421432622880638639639144641358523410992658283716165962477464468997581331021514081397881112937763484455187809931663298689330348811431619657867309658893294250512293831039059618460442060102648130731271425650814580674260015645644450067645637640972851151071781710683715849714479252205432950807071402423761528591897180524869931894640555719459420908111930939538355595697304105699847861008945070370862530501581568350050093617235576241367044621400927981124192223134975470615228565073569386305272122531250805336825577485143712644147068277036270660994883332924538830789333907249894922532594732350525680524865797482617419311838943734622252931724111598430132072258417157905905293139438062987622786435618368109946637544474472416804019699086739481828057071446075212025791416345724662997703423214345912665583820034199577250313432442667981430793189090661014667164594076772604018376425533985609198024578737031509062894866450414257678729276678088071980183837962718005859169321762051588963004181627616361458710092303376237580868764029703098466595418988640511101218334949845484663753763777787372901965313015165926782992362324672566142200119855800772905469585374721959950928299359230964090064579101650119732305763784737362665124922323595641486592153753013399933345809640392410860770477740406063868670596228590421666004030714122621494789225562914326428357583013220317558990116386926421204838996183062646572704780053113477263514087052025346796015559460643535212079633424641927933953741213284659221342603187524356001785180486720478882220573139291853690781847068672641215755252696759580594415642018603859023517265087054335498506905228928386583933958102631708697834414498920768162280424558177929301251573135460832919192183072407956255638057963561367855309796263846025111905593251622070320271463849248455189397333954094233765112974771285728138793135436095269847689017404305970300264619046932220390513783787340620958189211106909280777146884422464581555550031011609401132471587376672142737752265916280599588608669099583929624075047277424454844092291683663575240097149837231642746845818181567524665282895648672831593494643946739472478333446618847489474390343129880486876068880405013441858532295918054739914472449752554519814371020260731460657811569685685056838404461424609228480676875296470503703503872092332473528742369626832201669350540378614041014119361725620570663654574758501484836463730513564596884441654514548036414936929674318903697921894873318361739359248542898103073537678928469887646318795824865153783167307703472708110192843577693816814539705329903511488298137723486483600816543178094459609703647785223695014846252786178521955446392874315606162262907804307102022091879356064841444355335294167710448258652405184287348201410047902061221397131193575663513712527871018135049300129134279456890990909757584366444688151721076259628120353363906396481892880168482127088192639997565764146347291321487349857753364715529143101427458583704322849548049765423364977976580340070945091413874729147174643716121058246469088766881746166597338083164854931700226165814659649866614639899933996101859426943210701904343913298179811754373052293277887514649054138055499151529259160847002282372974854879051009770074094585625780334113370807896166176773933162493809460436840753756941155965732422005766378318498891153170616611774371138350696766878854940155859602777275755633558557413054989752571240344155625435239958551621115819858168261968228710033575592554023495261611868468780170890795504223202156512542678941034148319023442052216713514166190523202944094824816324686936098858182987168932904612891437589685441593484030793228560158979526759190721569103928425322402202984454733396581528138734299823992360125386942783982097701614559764761906181806243170373733143257848447827367436826544944289165089332068749728353700827118416177399320548180401120191058502704321792757523182731763421266111768228671254157273351162063051810716128638137924682684023729064780524702668182463691895784429877688611502789255570750867030558207329231210409186017522644396309421529906547167047823363126545871720313001662903467538265020245811833246045467748273032493272969729347069277353531057846216473093221487305829750432289895419480121852809623903521981489963563845812970528640390450339715604457672563166222437585899701275256608552410717215395848560252393663316114497915359672061779019414336370735861127105266288396883307310606859781418010060341226124999051756343718317159720451224287537220195992210987957721504564435079336089486654692803927863788039098332519210642250279942734489274120395219046567715442511111018696751761174802905465439539521946170192569957396061047392846137305395055824536498491552790244783053492037908166224384683945742074815533739061501635816341780286787431478211086254509576488114293409882007495528332936457729232491498147835526363252606999306392169936424738318926691649627289575587011332837580950596437764882543145424691666518615125476224465765751078373030780910444929225934681120522499767036921196890977643867246497089409205318473088193528055077617701166449946754706525041664859987110152640604449296651713225462460189723201280366375370390146025800963667385710103564492750610480240770283519380049846992084842813303396240401558935379090548414161111540607881153506953119480586502162993925718664467591001274526775737355268100703654424664214938788555035095194337678131064679136778090553912242506209592764890109493923422934851514741784042825266508993980566133675372543954598856924447048376746356497592172852747769781810202643298825647284889773064112349773381869135366174980907814225708362525097097947777077005669025556698911836200757139160238083195830628719043409999064247179535387194762570879742822671343609973854547926660219934887407224478061197552385226824879498498464430966655138001849676257415705791216664679175713831397131718942791477423623277025236975888133231295315650694293031466542898572270507423831149235694654554223281608752853707974243301317430365172676026978611680819834269499116920310362386526837161624336536463827385691386363699523994345089781807287589800729114294982577258136074622134298861930359431413292550107975290818761584808257929774020283496048449937947413977177318335485304346789509307985853256441445667783585569889607796937906624243976056475809104360304788685493108574020343807561147567614383253898432385339401258898706739852619868793044216684022585147925788113256532687458373862496422653338452705375584858654528313970957109990394626149350433263473002482232512470236930826015030042243219552158437152177428571598120530151010214211231780995855320112078790377535408265466115214909650207356440821882242419350060895203117542754616406722246464566754438899579221882897058270340647174738142302894902210192131055020343752473889454358827751377204367227412475827260848739652637390920090411224456904761703700977939755277940139566987486706987103656084095335838167423820218598201160498827478959504199008627404645096862768528799719266748909410695329653097273802023358271705792103462021267558551342534267582337999425474307272360990127771230329152010943298880937290209232276747847331858315110697133533787155279467480177409734372195173405312731803500836515754455470765132241707478483150037088568651420033346792230260472271737529980382326603700899563949804611167332014111893011356851922970408864104660916972652768648254083370185726117816328972144231479334544207466117640007335940522774881994055998525492561472561921614974290948893231873121997515254768388025822989295172784188805817151920614352066460620497434577102570185412829100185312468084200888146017566301382890268935205397106249951335935663952369029274003519313139152621749476926307334767333496909491290145986778681020858304516744354698223812492234532759598888200516560382545898295759549494169545066268736296536812897504171029890776064256774492827491832355719263745790615775198216630234944608155087387794819868239789324910216015719619636357462345562312868881809207750357107403475249867385371795870141446011160287852836832825445231275399349546542782383324442032070382853811586182427073840670678930914419387407268815762240291279754258498385327795669436172474362333029416624707346151083460854287596771670060174953056169575000174335568109111564018627252462062250562346189573390644231217054774276687265341114557779910351193481051916958339693199287457199304936405340669980660141304192040396403767273956449610680316462312572424343859839401896158630588881581691493440658973164450894114935167816699313489264070425192229384029862949789247541730711300187429698169589686020133423543974009249024413247677317722723308839503805142013852352642369173856599010805542931357169272091675218686120957000833365642271018180789410299181288125157326449319419032778012053201693024068444569583293281685363314684457989551590200193305148419964321322753132462230162715992561112738552554126876273388605017453661452226281313914363946926306299544028714813144900415327263741981233965656881238464271780737255928214119578584056408851086338653883163458041691763141152372858722126994830189279974679710283161568530665456499729598831511536440453839038287302880885566959302201847113936632601233208724026126774575095677681543854068450533540448868868038281673114893609711732382937004980727668458905562457915226108612090540704772861160521110403994837872099768563169751288048810395523027516594118273187641946223284400127522156845011446349302167265962746122828737799264659717743869714522795686655372743861969367046562204911339278839785090673333382666119565444765155427025749977651849703837221828838464130917005955733415201894775646860848539119534047666558267029844015299908740879739296113894000769407286376253692814608046246777672682268075682854094231757252752717145320137502011451539038824240784710396893883498076414004454654366759834151116752932925339425242123351133099699588215959967901555649557266040956821582954482906217052169701064032803494021797930046118832749733533962706605201691086035226542643253090491949940575804830279866258260496383080782666289470494608366781304906408805952627822884911210296946698378353977212833425196632206740986608305359138206172940118850231771155894294899080339625709421692168337162893143119399798847148640888252981368540185934328941626481064425776526748955393319270186797047561659940347578085711762405075311120874650389804304382204712792632755554550615242604425329343383920234435314108969253480148177353172354509322057073179134487105210506533651646982280024434018653992834811745755689718628906439124064726561395285992943107979263734395408745179817170387018028699355074708872913923112756608669140362795863945173275677583615946998374223869829198323126287239705295822412262678654031516079772407737266624873425489168666225089738350117438889019309510617405451128448522718814524261984636559473211315971544367435508835765337867647074761886816223402561458815481620736217508806976505060655310494385930926513904568371629398870146986002909152257679376463976089996799182369871747077774627040933716920653635793027961630132457273602376938280271750012841921552494078503230726893614575690458336374364973954096459321871538580248645495671074131226020829966996892426494319248393295759231779040543062946484794274200917368843683708233186003147613919880542407457162060294897249751982330108428110951313097657529546808048087518850442367503829028753158471986099519382960432293611531309763990820354503896556150161884176500803407772277951854508294489654538527680755378535961858598620735583612378570630078106879483812804401562202204570858633887303648045477016155431938967848289096761328816978929044830506740934716296136432051992036778221701768901040497602805211010886241712932880941918301045898777730984243628684588105705300764354254426515476570081370568846460388632587315899163783503999362380051609994928064446165037082371787077146507735194914488412998156661335649073825591291001799710580810235435957656832742938072919319750817292104466944117964722638066114646093995145961456064368297105389315257888100556272962841021266061691143078446997171524600875520439018949645116624318976084365399804328961672764578288243324201189226998190195918933141461410136604079280019424563502943369081921823302206976120604766659633314063506166395806565881025670967749403632927514930343655521642652175700953644951607278316979285292321459383802274464761795639049206234307616183214281193815657285839749821166535188301692075363921065422918339358809829511950974221366877674588971140287786228602284157471342676015202831752242739258780325734556556503061448190317185042556623147450198193543663014315244864668135935087324919343846901288822575488988559067826492402063325958471013927776507350021321327378594304521094799935733713124523528991245284360504004416431311808922707502014614314959604029656700084043822900762036580693243554278555779042600078992958850752582841001610640411939173494126742847443170095602926124821293881593703614303795300690325557838274136843533114738432331169107108104007446211199658968604693723277073631706810918918571579541737481861321274738803913004232631035194593676568105961629740980279041165360791290034983047637714773418019123662696315176767521795384604224297847915587597164780016788542152641302645247946750663143199325431628906826685121960924568420399692203872602627499354502481378598687108307307735717819005714398173843072447709898040334079769229766454205320841481486031069279708122643827116099247911466629275992790743592966673914884969049623341056150358945524776843229760784817408268589313786956997712507347225482758424640807453153502162414022648870905136104669536170050226217876859932456850917122537455498928782076000886752029391638298862172721569058130718848319368802043965536967963533324467926331920630058949973459289718880560847308104859741101755590834957875517187621770451401555549144965403852281461094583262667484690521384141456955520173356538372883302841336668437961682803735898841459739667063019227444166985742999719797278720468395659951734992296767760382836072559667813468387574893675254134437835551318027900932798877111435008031372294602824030150323662736427925013424699224321580101024379652618701510052113689435531978840792972873453725523553064405144853768743082124646964825617513226670160752600941817080819104895269282523627467983109790458867975168261901589524766710055000870687940753920426290273959265532421902421637694317042955792842844663949868962940187670774301582282564469869610246875307052571267976181205653472795288368890274634259985142181107747337929644360053748157820073176695485780025793967705298064605390741032549526065637547620965473941923496568993364563502219005430653257713646601998339691657361064453424342213895483687850759868877708648272760829952382485695822565488873919805590094062857544870161953600919382040289371604000093086815503058296383086806054272238754655022488825185189333595955996532104829798503264062536982180927730491590792871641369646324760495709120064292516367253242317634475819848116907224304303533313421737343717049071494502812622353487369656325363677775314815918835762729698130894730152909664741651043244422077182088267968944303547001772513586229491008833199396941871703234156405515171412679958619122397379017516689890730497817287207562383361484534774157080052333890135286993993699977063753069449071745678531559190248516319693267119693480928375420094943288746657225514627352042704169541834860931774971237224093211168741505064732287265313369419691699395708197623780796269656115075449371966818190339476571994894114804573807646715320518839399272825843655130339715549011247290209277239595206589348633538157552540352391406119110147134540385723013261227450484729963275535682499546627351757466735592436527449376877319564080847770851139993481227182234275734534915496365199363722494878641557320594914683827070171172648023530037020200209233375679415690152154586946135893708968196749994791509658052967061173143371259648533421921229777799084861194520743606611285134951222118082281029615829834836321273962962235338757021326535327261485719349959120891229587863866262048655729461233213643537875246528247238131891765935453942301715262858022128432704644272596080576008852854420567703163659011471948060252477581512610965796163748077624796653287126295766579363011832088300543157566583864271951736590179699419755017734943256204422018774001929356118372748267641721348196236363563859520429556199334185570378277481531724549642770364750771565149821343650673832717492246369469986440916707743557951545225367272237921227854692858551212897690502010917409070653980266470988259421981290913905323641356483642874415846616192347107474335236010572037047848966848505226419965797657754896984326492380888842361447570207969092032227052544480481144167107589257898196154174783812297362442867309156381997704432373337594265413980932606662533343472563748318263143439984518601670970948183294402009127800004498015832378586518172713796636915639844139240214858954998568858903732920066010153701675352142771701320213737666999042303309442679379235053092846462145411889340329643275608650749876087512608582079003678595671648783063502538154152740610370199677377807249449519404152429507348852048989789023694449919330222145092753893652722796108310236265862293582778889411197852703879398653971608012755356579334186389905029256647715265637973729411375662926811045802342733776251388459264576314463123123146371479743617572425154578636812127044321497176906238092341271521413707966250551552814869250499373165896191123548789141792817829191542709838926721876020610725425393568967568111302741314586652045161490782589869487187789703203881906415118659792321823737327449877102157048199771354078255404540124841217695149754404786722798828573924726106753193435262016802414296806846771768759457803346241217046458422320542524747350327286273788503869600634413434512830015489033672981410340714593460704093071562287999831777168866277438871862796957027507268562036282879864273540818521313829362820758066049564238178119736186135199968332540058806984473830258875958229127675622356226919451925692761628934549554160489604380883709989735808371998892912372675357407426457641795293321516181558749088479149495791205871991084868271443384808277014735919712766505060511453164908014194544010863618372553290680791321339136677839959637177490180369793462549793922413276290571016637378412414816667431792497046183339247897352117116770088638993025275799788994091564535672106395797821751684562646632095811839286152322232394565863289651554910962374857325595360365998094129180706749441669611184664323155288711799254017074730660077785236483896169261585141790624190031476402429695061405646706117499999632579297820990286867487411115588981783754669248794289052962960972025728267168143470175021682974191899819676228625556366383480455690858970932867704582108301731917039974125227134373225785270428796306851056574486903129083610138192250941579186019914085759017984688556428235105542608200185458287854638828014983822079729709370553604212485486284363916630955332841316331821244942785937622838466038822935377924852974148324555136441290026752470749742706685433604783646829258490225310191191524274265941458084388842275029988389096346525097518883940236440735834972516700043992386452629417001681059791785587206775265136305403258959852823771567782244412061193076916085962824760300912172991339708616521207919767352883930651713688488023601484818057528271768546236379651556097479131681952345958342499801148546291942679849017791313622192826089762717160247084170345234628769472332398626045433875647787433555255776923908491326504309104022471517226236510712559925190254883302571578881799271142927531199174081545627598452794949639288726890553824108686392661811882333321170268899675579914395589768425208703521735861963210242339052741158954642157395064238846837439891895195230254971465704105335628350927787412325660838170121562109408523561324134034173996926824271591904823141525694865912741104900261525007295802969921679689234318218026947047534377006498457437955281261303956649876979430852367554800264647414353393209910824501203030095121605358615224734365197699694682863129887026865161892066307282347923986830217166152475699243850902211043823380656290401157499449427852187422757976342696349750555258354289681789285662902158149093425853048021367082128449778884518401536985098228514702248437655595163403361535885880478409019161745069359545742634923836988635443128866712456313783014394887910294070453191721153959882543540024729803790000945220469115985021249968708276536226186812867605498165544439835904525226903251755057628777013993682447279774012373852373053376048517131585338009370770513208018376648518076036289948813737912729822565220315546715930197532002482237992017177191170725653011576045301732374894128265280005819390330475197779792914803377009202683538866587782863123829694069547932172853333624611620408806399547479177684425395766929764142616248029877414549691516088028599851606404951241669036797090869466878789184897909848011526905560495579785174283493055330544785000591613295222766925630872974123280360572126646429926094232245502302759647955964302720906661666145232504898812658172169117629930767178224732610157168563609040751993890653214958608726257875120975530653710769941354860908679577261953954709293316765040685099699991644301510997502630218869963552614681266591980870472732588418435498008289409536878670729079422490501233422858039997532806175802286501538116907878788572508044510332280719308224878349552606116891448671229744111508054503275799561675601318942678023271215815236897130634774249310397218562113989093797112061612725457104828593714194960857799784712495733051110462085846125661735460019382080601418880469787356027712754443159158424639820015027912747768805902289182571391866577690190996900611059987048787190428949722392670409437998939519136320451472432082261746064988399526793060153591888768101430013973219635427000706382156645971035880535606187958076143743693186334994903047018999773497015425136203400543610282968788273717899971848944312871373582992268257833459936762593544761480577157364569470101620351398101287903359515187920781172513684385611478132399953054285942742515449203863905262611464341483047952489101191594579990599632522601961187352798036129569688113446060905856015226822899004777438055591506354329131208840407581975739743388172493679248964903521535456799071979348120557902320586502906063344585335039178802987334834360329880604699021634127936135594709989099702186534797505659730388153408547804939209891270001203234598278562276516315865264402318372821791890141179325656841698119836476144197844268352343539674967837934273288697957871548430021201560252345612568305875598574218628504919340933630503772708890695129550708720380593004879809734464108441802836122563951757316645013613524416160350137948664371886093087175043240451343277572623482373033384188843810716304930497137118178951962408808990908061417701645041942523142529775978542857606802682409619759835972250186084216127665300087175503566137919003931110071804307269101086021247783035742452500159440782248241672129794078527104585276626228531930526249780762135675471905855356404066443716536384389245496836846747525741316658564935895549496419198948644282852028459056342643085601737111893633947814183234493900469086088336519365331475165419283112803428992072526088841018050138109350512932668671872607845269962758523121681127814701263425157658620620875666217400639670387585690781045326447003484756011951565071234594768147534689229750258415852320566324535563771392508366499216905510047362090330490704676042898418355838426135919094625883791201203057813274350102958787962256045857498702154030344457303753544095847591710191214953507298255715909437679105471968371020915947098535454085530243006773551905753642497590748216895793765820700613436131805185165342772849218903651940028028289267003026948060758398437190969714515643186904214956147242387868099103856643232614933038736734085550497495633853494083775602310875982534345208862538552561700139567619852947755783535768146115516654794825776979942546571143328187087846973964377357092882649068688602291781305230379322442655096263202320015311995005099724718590708588153141270449450307780959430548998026358723638393115648596393312955477786710191539148134067606223633908764326973870088651300469000544584199305054708485678275942783838948109284645452005301055659900231523664318574945120184661295315674661777588382851803941913534604929871559971511938893837544711024926909288544818624116889252588621293669782844637697785502131079858915065012618659797181761919682265568335187923822673484267437743804733043489747031229732294361931622139538286291857290454775472431292173928587028429730674766263687782442228387311554733175270381699805793656399986513175895500287561816639556497287415990824358594185138223511186015831691361168879039752958573281002056994467710104397415958734837719718368895132415256488010229933877022055695652073009307093706954736263743706380170154284206804593081989638634261810076960551501131457470395369818423066005443248629525652938531589630544899339740607913246951693487607208995131528976189212798814613694697508072790406993930026853845751478698786368375291074207373998848827354135865823816601604337582419679211291061575083789895013910598978880054242734497031311846719929285481658961625801734809203521226249984819970523821153933798303946597502059273493699890877075947360590144867337661299176405034329457242566196414029248807810550533124652823149509566978580944415959506140498399272772844238107884712904813075736938847105944225002890431108924546195202399465540707802452467852819565598598725212132252419276368005202849562121554788199098846067303905564678654123052679074673779966837068574386732903890722636084212056022326883760897097478099174036666268317989096047251929293564733759544783018070726280753545098999390071002082247048170667489435009591527055338303548874829190864938726983936843580978586250472784402513644151324095268767431547031761840675519439187973896925507601627422712699940884407647281690708063609720993941937130222395574757495191546049916794701563421977614098044555317215901397600837000841581108936030135126713264467882200552825301473426337015958525468083034672971880724734562292641008844262488386598547983280165170995817476122349306515257069120962140784318347290878949283283571110153782766237399587307649498396248077869902142775785715136606744529318214226086529278463050193178172376202604552281981841656585242283419895902870117417325909405357682980526731018838157289284745056325453998555146582756363950428830272396447701568814938011001934433512707930360453998084034656696767396013924949429359852585624895814932139029249393516094604856913514912358719440013768481969025604429227817782769266354904818292872603842989118616477685497167218634363890580446751777206443143853869476228530132107949590112974701280058374315677356265136454563803498268193096583413613618833470055001101560693206062309697962109364195952060126036611427614055541277654892526034284437536112661954565357411443511369341653316551216777794315069393117898351292275354472105271244621609020502558709663437531612997976045115265701191213573473797064776754290721178132641700827470756075045032403655957716305951913741162865614842408589105763114051478013715301798573060611739026435000254122661067978422720358663924396541227544050342536620951518320909440601665209716103838016872345404269837062226279724034478779845532530917570099583608043373787375972504778331339697012947899780801300277909598587520721337851774260824819970616708307452348584242429415406709930880419886164510697651949955342947807845841317364088505314236926289199248048398775130338692240513825294112383897670144197584999496654545854980837867484587543976538127155100289559666759572890879722033459904676655908053338437499228991525935980358331840150458157368311599518530936751869223275493063358500531074313210024738979560383088462638501648844611160103624467934843499964590676253536846775915872572802686882557222254616736162762720459494054813968235385726225099498283155935576696488515647904943030421321338043823060266352050309437475877473582301124076810053434052793265741826324031349587980225787055053860951903765378297371445371907345414545696146700336785453945126684001515140619956173606889344389744657004950649606789518685880800546350633979465000573334322720732438249324847519737607804003233420396221776295220321319932159615762891046962029498541848938861866863538289275116102608596213486713817262927306502473261075319663433493671630307844006446104968707996086600407471010815051904218251546605584162672892308089345904022576232875795118009307765810927328904945626000280487085763533589385305407105882931213608248513692886557546308759873821419106983994329437866955933599882918821642006539593842091569619768475631332653017000660512633311574354722602194574858132276015727038354423964058778675584883037680760647887657919251775971959337419992310670277623448093242027486503359155554621967381843543926812029564845355708668670992056537947442333448194372873434655491060923186865261296799424706944395792126007802919400005086678432012780591417663012166628294334815585346067812279062784320943925711978362449024279418502377631083672687719247548686945200744344403283872246388447744531111996854235440367530344706055376936481002325383205029213314221738499480024500616616880721481252418608265183840360830064562461850621854441450698561698323122226082338376173531067419179638437570917738419058659866058133696068572857924851936616668616595500574055486395942837502128698439570209657788729705289685606332025827059135615100124906097493695056173775236993144171146133887133577078364895829291818103015795278069621669390714666638839208297347817608340500173002526567819401646093928163890547947917938800661668710120424703216436520795463233422168601056244847852203307348761511505281301289555019213033946136824508408922933007612119595180327982227766561199293601640463777936728054357873124515971214441056671902426896751095073910819977760425320145865554478108899198980990697699618866633623192933036683919962259659524688685467183557081531911083689036018849527684519294876991254903013748062771383828334073845887465895164201678952419348923949763812196097038095022028290654019982147442629853519287319821633579076128181510990952960585359520022178113169372480489800118148510681417582294909657989208181847940445218561124883138216280237211144305371938651257327844864031221599388567845101067484730374304445615334868230023181127566677124797355240564786892205941453064154979479823525563499078167724521332018476788349993840752426686102353252202457559333706658728707645993384763111626878333973002088248252362053633205752921361828914039045096249275635854312757169674977742209171451599064098257236217874285227678859651223150458147411010810184152463200905769985680628728336735392584214359864376164417261002549555884438584947611980796715182347978253981912701167128544754090716816755232278997578824010585800199510435930905229186717401122719976562375440720928769858284337582654979350360711749920390822315481114208533055793784729815178173698790671991332090627659429562477269254427742838826868752206314770305432156103837919405279152805047396519944200891508185233825042912136254006944058063878342520293117622176573194336645028647174060356537795937637908071050527943562553518999541035677828244799491227406242730980215612110166713150165405648707726576754674732782825983321877868491611384932825481462312240890495370290724521976079079256644042659171232935979856741183871200608262647791393514737271649087855864691963616449047048148796830457652562331834055968623387533343851028555286414713934300368886575231548322714139766556913966616590828950204054341921930479068489460556135641684182925555231044947243960324446804872828546791820287643516710589219680857755094139716550186504422768161105766849220210886697383280534450668903900136305446162347777002946752907326522494057532046798018663956653659093814290834529728004836494622699496176037440092883925914457714807049317292910779855576500190513574386646972184833319416243478214548834690501046479077484005961176135499824295095597800705784568554151926108238766543713391617242893470554059380629293824297996916030307015717367593221217677916904271686823769291587379016046135387080049367603980619704731273770803731424337648934443942386038315151207563516922884939947978140187876166719238454775513872127251146175997979961748307315641918339007176816349179603207584247871960478940901938235870338055249516672063225949989171558707931569577215592126484756074345738380839573235378959112469813616623982947466107278428957510606008002922150501677804344824142415165379291195042339025706029936347810091277092736646176492740960332205356063959588491630417919230525853412734573801063697452681664868997031720137669206188243599462478595031257052059643035690260032843520187493441565693391064798723978067572143157144802410339141967704985125891873090782982780180675712671610072059083299640175553445837839138073689577746244016335964104017526342582379331446654632472139973401780042600357525481601996069885806133726035785628836976427507048387959470886771919129184473923505318199534102834941677601584729069072138733759931368212419910630295191033294490144115911756742984375756963939284676054062729493439105123378933243316011669595281555393912295366588130242352882043336052947632081338980469377779752457347354292633822771752310608155439808988735719425952834371678213894506268026067690301943287250468156275743332535983727765133863608892938302664971507178537588435887366690010121293266908937863201600979346922457536893565599325788364446272290188508600181876619640089437429582069470216559408226290954093570634845230575394182043344611576845080365633125414000801676955941975102846057324367439659249188784192445585933210786130630262327581370672955400691272946970680180503599461255745576098591899820648467229856457438786714721138812912421697481224080474707384285501544296128971519015971968749949132420136151395337858774533807308532695916951002983193725832462081061053615866114761440575173351168417124803718531454868613849252580959543714530335010869109396479180027467498032650341975300129702006656981522165502967409241771166143508817917337702842950224703528546260365267786642567300899976807445940590220411640771049888748831258563411606726874288349217383501315674896821303298598090429475588862806190474579898678970981805125094382117807902773652583509123128716118522188732615539197236845126063390613924832909804470630225073526049515743650837801520406024311260102436901419689399392512311314437152483567698789495307941608214969821650467593759960549152013349961250890354910281017472609953425420788729650398287093571197496638779679714921714900940999496467636875235290195131395226470726895321959948121362163706017786980165566020460784660549289637101848300885436316160288344686070353056437974289362440756741002699624051490188871805565470736295816979884756394892542432751851540038211699443447000804721149064873604131695652636141481022382779015012575822303385374486823145673687177414151138293161524098725620956733342341573543967339736217538020947254507111834127639694127755538438130989098022641906573495961905217103843721015639952076608677015373963353787856482653997330399947101399514609593130276522231509371207501437850307970990349389601830953059061659738512767290377658719987068801129725273510583820839265940022533665127852604726752548887262394598591804964261946741904104324009897706598913408721608239047697299866007012670469986092909986494251159318281067991164646270668941268542623998925219906339039059722330193538259706546606772691774613539537289703047788170712040509138808807502147519864382097775576405081043795649303258505181379690705642673046041574714875852469689434421365776281494080563071613916906382481011707740515399330725806005031772367617654717656863520445958650912937476866799663798420297716672907471269034322655739403937840902046206881523499027990447870295130066636923241000905390517472795721343196856678575101079045915565453894778063162323487122106355560075746496674966400787668805833381183305787265132720319613495359609553028780846821974772260120356529061227470048936553749646957718603513216396750494515419258765361962944285170608068912811619574311800348927167056240892156961376005970052751076981987396000636620219198741168570746325686841394395185561912977116312593928541412202416311279186003488473763905153474125368590752077188257318900503990057035755999558791452492184140954449590565600345785353970511918230369964425516600873119715319963645779938550741366262337701266533639614718995679465981360959974439295110875174733235604375231051917693974064885804515249012260852853358002210837095367513983727929831616549049462649143629479698584507089886318785404193547654071255946280266734426957579114312714306869537475376583251691690893413142302272373873209755003802108081750094511686915554522417393778238102110271164425342542892598965893378949065422964983247391533084306060494776504220939988823862382891731896446873349757570230316799917596428689281379272319518459421605696021534950572604606827531237451615284066425667827943880222020805471279135557155635645803745959966127149839359858930262528460275433145282631473026031540089204522152506051689635568041339423449122547036089334024576423151499365235050780186531931221675717738826872528087553801623343801221204572860009400483730120225395562423441129059759421796564488875882279838501643551148014749829420469903456589360032089322326357402518599293442749968111707201586087245476716477417398321812994815186175313096805596770133836322388744352284795638601151975467778319310520502060140924395366423217663090577969858380506712157544115353961400647338133560775312259835276221871438041643664721922869788794007601159615908791006108561872295734042844844532123603533607330608053916385825719993791203602203098864270286825901168499976589131048835498942665952607908815702533775480097315954873513584180855866148056577517106837145874389178284936629675908929492811692539416074114986646256959942321890257523529408882107837410777939844295018025711092153563111319415473399577422043163448224623559301830446650535796055585582155424822932164243532026006273211410818046407188054656289416396438613735061739935783316113051832964870295095791569499681180188998099930946873475986683328436601362153436686152989112817380559548968921713362016795958128826710822724248162581923397360374603465048775171938412338966355877266881737600398519659864323389710797797531272582106129539629259842214915717207604329690159245203768232620602459398634413520094629724065773811359571800879909296687708830312703766932075548325135792165199382973260329522932947168268258402105002128712713757546398601755277007001067588155253934277001017377094232050903767616098318358403624044765194726770645563411523851606999744851674391096012630577323405220040390374178155261670171908243500838132860748320946213604522754812068922858326897512506871282906468786033084511412606582235760647011220532658305660302781282640429167528694651435104197337727925816500124479135713617392012426385029190904467115588313850535217148891888590103598372618717529591762800353774833460397052187039118166301689558717921165523631776381978153340762867037608413682399045014418509938972702062302245412477595512067662266321377835822877570462392768142532476413318318636098518166579530941083155321831885237454251034868893141124980169408221034331983784121579011486623896187492641126032202181307276884712519710875901079054729967012304931721770852275162904867322996581858883956736191056907760268360247251572045603424631593914922424652176542745654775252463243437130783360312395829325533190321419263491805878512826120139442623638299670549857901398737822578774144527530187885524300873724483830380922659570438059510063150388436069913917084241841724193076642575223669558799023038644953855589443673910399426401178794238417993932555418512608517294979897525930725443034957559016218378022749731086977631508344683803189967189248932799518074152109926528913110679838707389488249707762787592831059170065991238235859557423040345013702182658410395503257091550702883353070020139505716036459936514831675823555297339824410074716827019836521927362853555836005932079300191735066771453811575136944844829815912131452408098545333471903162687459993058651981120623261700021956649724453260164835557411497258004105973251835996535952871609090035001636623508705034534644020773201423167229100492611462940468037800791589235398757962677949955174940698517468424254630316128040014330942384316015024785723946258930609535197268822985521844123449087712225879869875517061298724552802651933387213800961561560388119386567894344177019071116648913504156051637384138806838769824004890224422524093292881360774997089401960359621982665071749328552719256764219480576769313075890041220934749257886475542218539430001011936707257740254378961516552381981723615161835328595963036636014439692326423366859801167121680532897091165581876085406919538277334110875712002366655053847961791682519798539939331951829547598521533955413330135014133668716426350618839544974439879101728139136496408159308550557269994517047820585270958785108471036098896584064838552784027142743985113549948238573901326491225433700586795082259107734718711061138212566602530682824568688787827170953327439826885385596186956988456231142737683585504494447483325304062764869079286750690428317176815570478737467348066191574174804143597200894906148591806036035245759856761614024304438157169906341984846576012667051916973623726942050392772139565775667142530295970034225609186122238950265151834980258378309329161721498595429930322485265494085325894725424985657969457980373883235472011777522724698482666558487111564675218492117403024744276937261579268481208935039694179647964653463325000743571103301701805479307356974711882038415007991349900823919383600150498191943319148962668203639204380092628767968835731538386359433518507040605933125127520500627113359589358199251594398326560860519359777959157145163791736509777926256812605404886112341589636036854415231795417172162947517994196762385294288969536263673506653025045390897141183901276070073202075897167624964528692901858838149306650175814857310359952756237240128193479075806004857501835762289664744552474341619434711866258159958490978426664354224586404244573917782525302041533490099459808238652496268404371844813697355793815965643986510384647019944073820153033396989398458299765937182124864077723403682885033335480059918662119016932402886098023065386531018728270001633466965416935251973853637661827279802358942325195409093662149192700609299027579952699849032693856501614731499471100720426381239737114217660032751835341402263143553663935619532236122714126065097736798035143834818983476821500598190911394243145293634083133411647733745280820670463338109649342109130354056144373624663890057997499953681946520819429873668494434213557493525116348047484085808160287811838303377242991130461752085921888672328813776587494903418382986944057119115379631902036654154219853202766018393859897747693867813032144921529094791305768879501894922257975522897628206081594442709975910177170471178300919369515220331645057589844499495292594036708871723977654343844700225930312150462732076249956400857028591596657373627697379018679054484059949241802807024161093198285263150770061772356917824033854659067965934299150641027042492970840506989289709421637349203756055819293292837774981236140062775120475962272782695438082241582348599648809172168833576778982276200247466507749343927285207542592835978569022212002748964843520933049415434687335197321212337686460715628160594104353672734101063233006340534156721523718115014157217329618680073527864487674637960994590210711605837195091303022383768548090761888523519976090948394586994516635418067533040037396823936226035475777271918832106386694638248449576025143131735184555249263361497330211611391677846469717114905590450840076523581142422046759766988258828362017326182605891481286186128856006009310604551493667242485679316161761318904125539936978487438139384719750753224327138404850825015255670163967902973521728876504157456573009801463876391103866588841388984918070264814526183134616068679470198857324174479366424712228303002441569095850929507196784734259117475395052553824611465581066688589313635559318298578856202027702015482214867446881449046630361064566426356839272570648607660981372758471314559517681653796095941491153495793588305262978957499985008122881159536256590329820287184631435386643017643905300432977957840443934988408145813954233802257442205960862782113324559391598992042220873625485598997994932175624914315692746232955500270329612015389338773248869110538824932297785361117195200351389394206481128319853067871043041308737783560743719521194582871755971892128896158071610561637375462535435765974048744493553671898857369016954900440292091355344396305547372551420393004520432216158785139475164550569042754486209310809145698395686848109227206192261205361005836960051894259829555088794040291727190197321941263166267995833429979168501056713468350407990017159116713461520419176338101717487848763675187452127721647608661654119552934936117936997972182947432991037939812121407625669247452262664468369103742476487425230539537383433220817029185101334835621576765503905088379681146369808659787327583174735275853915489202406490522337374883517032137364529452712951394524596542282384342446683223537441266116097302751183797277848119113850741383851615087697281638947465722821726244703498279083519096881514203483633016503220558962034524884068317242231945463120452817433805609386466012381981300315865281540930298439930853720875095973083374417629851733280419508963486594813790930139485745279158588767595264506865542869842726104077061659405751747949021621401925324676083831897496547891844865859048309068950185909333459191949750145510271799148143944001924008312062600876158833253583356579671440257111408911763562963966410950677778984948933691342800632386336624613465355881120421787603866442480099851355494976380630248178875111303631431863978932866418627402083435991571022137230547147465940067881033772172655250863266307400574032579186504119497642574410005893292895368313787201870638063502865513170578424905270543602303260095265628051625961479759532024315503866501491601220630913959934818820102964194769708187389615682610202952085753581692103552117670332466130756907381720130744831467905520576037381759972512254733055543312737312201353182961320815590390398774639496773271151287645044459077830434161644626358912569734682859624959977244840709052230537882471119672597141745975821359389638699834934086203972133702941165418194715486851445686146360308757061068815009991268535253567741259335637430407847014062305743401914861916661296941078328009466466762739250821352047991647195812923821183376789482607658206895114985335099317815281634382416514318929252839232294733839053628867369448071743288362871375507144188711065368613208130836786708514045789331857113540271881353607028251207754707508570033774976107169147199471510527793804017192199733966896025544655668422123018241099434599288319986892695757017394629647000986574621424233407562935926254737239549104413110623162792389553466925911825234611906933670050423655212386989854502850391458533355934526403355093194967278204123441175472401762905766337945988795800863688306449823714474781532679999259109022596187787673640058626050850664608209282194695796223110321202642549151598285165430117029408788107582743796888964750487893084463774639091417624672505374488430785678561603309316971666383944629838153237722651736949550528808632704058532180744015834853223198419696243935447677552568065119688310225650428664186880699220210397344707865570019419130582924964536592758233668369647836905859506879452113343820212255062297757389498712485021017686043538406941386859360067076224405516171949739624338339475353415087563622728921681385341643713911911361277529541315946258212099919541657268356174675450351958086576737448481249099913771280191580078486266133762230626067485208097726210108051662974892963765936630010564926813893037089159519886539339523047020094582985093572523744297967020904747463030079571388947687348905760931671493075438842493417021362449700113105004102284437376064685936688761458878023699925982446130708961554655721893076139084053071802592351641852283607953308306719446487352098485108257490577430265456188804265442999663042096450221706205280927742033873935607441104521018555727603592991636715890514709886608647051114230860902406365546485140778975667268702415338917989071730956553308932112259406672193934060596387520858693168916584497485400625028100592686874250537311824927201096521211553308442662872679088022876074523075741650343861688716114207867788290990280128524081625145925569737226812501939992215694641515425831176113585439304894850884982241073865128907211403017641483594369088722014916029789264415184132727331028501091855113557410186017097951236612219165553562481329048204424500060665127337345015346692942408383295708736144431738642819807044844731569327414441865350017895085431921837990682585443879103943334762658856597808486970841799670561829860323567794490336179936484079382751157005930804268446376618437076393426512961783431445074444324216445254612101819124641620876802518697934944956131792961884739941464437057461204463128858648690817583853374100419576755418845087266217985030313879914720801588088284820530064500767017723887187429625091201447631299554056444470736363467834119482683066008284689670565443101435314314603728917428008537876942071464524726544725475206103434372627641334903000859860499309355316400467147699833191253035011265252309611709342767701318671783766092027221149857319754427230199019836494421920455627677332337495422624614141661941256941279010469445391229404562632917393693721221205411296774701507566371932535596456161949855812804030073830850718360715855738424617369540826739425236743167916507042682953406745434829356932281942656771125901467334645804082003584297210889821965291509199542893727358598052899927056258470355448088955286493495309921177336175964923903247083594180832173655320618176898707025177788403573971346496355559777188574815181351164991013525028446359365918891470139378010635634969214280447027328852406892744684033666545531768106868330885363325556139801416955853137080224783815509983228345580561708978942291300951166248797604191847891067410815696843874723195249457773899268432638468207639743491393709284802549820452908759610520096381356874203630100114547359190842450897943550981729225657405475532016259562216198090108279494515066386687539829177129456523378216345730909709239598216406698347102374036092261714957570108256751981119631338012880683156415784254482900529157574085497748878581443665516743958733663228253415194328541965109719572065871910838550390675985809491013658534661082570377898775788343968567862832775804182165681739585162591224082411758398496300300476230593096645055282486364172419004985313149511217408149105037955390963676217677918165048132178258128993417101291406410890412462288581364242678578238998897640235184314878047938521358165231858340393123809024895993088801631881138728726033307176473561158285579957596523547257706558073775478374266290375352850102127039819104161765850895010911932310004441089449145128187422820868186288120502381543174426504944891573561505716663539341231153940265944954131578077617341406693006384069077206549213257657958812050625341969575380129306001489281698030223837961904710454426953118736738991459295967422601101272481780777426031067458647816599138314917681687229011432047745072350800867171836633342694917653258916998522760672592629261125680218521605327948283265554379060404771155138231720206268911403556147281172646122958933214990662378019562177908731228975060788924073414900359372731312034743716604788420762601015237821336670466057765113568647642863944214249555116169626165884639668128400573037051546386658172658959820369406610793141068455880251359880571684504355039880880163455650786257620849731667552764609481859445245308659526530180375817865308827653742057589047461433512456871819283867790417668691222675701756170918477755763512610902920919485563498093436805446258560055053590870377085383075558572325644637212935177837595883841804083894788441612975505355529676224342759072266907053040025317430713911116619444947771927249889270492936756709743589621928053512455005816677997046987673113636780283457750534791429898539200295105105765322828463118928840760792398932200654171140892311923347868655285113142654037161306238587390470984078705986458152876438602387146030417335006982041732136620899079412121105089775034630003084984352513242002923544847253843445591089556908835175886290872035490560985896294804009170194251571359863993092542646768654791614559402194525778263180972355888587363966324993473508522812647237648475480178771249850194817148037770646519862451757321542293643472772976398056854006357010817665592100546273521899268156522064001667526110030501672816568070596586226444056006499909601735039576189272555072918297686708185351181356446419058951461264545747288831696865348157920194187038890012235484076988944924289383616324007291011953060903004717715038785674321393967745052090801376630797482718321919081648942170195273304454564057712279915835945587134539719068586995115388497941765308625691300456268483518505797712292598872878734048374665269377680527639521567957337793892912074687972446321420331267884511917858873734181067393333449490727831596636918582457018262114844336939543031711294665680877222979140382445008570741754937764693931691148773136689856140604853691968996618172055145887618622297080555508946795542847782651757164779410189583977389595540563046211836487583761036973197672395847924091734936556432734044390170803177752354494186446680911232249965038487751933449492048039583949305076131249152182882291784932151639328791299196185959218794804676088329677395243347209602436642320112932150808116477853865100567206032711792315321477740505227798483642804487779622707786092242809272250333067469621906395425003071340230816898145879083138451693334771011339868203512558826407378180934038763567161906408750278513668393185766483955184869919615912977739157426679619274594078063952361981501549182165140324322724445124472628708307543564225276530369427701650951410833376810548258872534793265710330063075379999820830428462794610642831857213539850173150070796835276269923509228915114514106532774265561282953525551311647293862113889114837901173601353518608413455530715899462850539083448217692169742744899543232422993429851886260724690206695774408939372044730479212136808405120692634580686151417466543433221183255712249623535557114557973352177501541956220777084520268573240850346267438727231215551700722033000705832886860297827590262315358037074570681435865023564238214894668199875721638730954165341609017835944581558832675429519923590164628200404805296615112483020104447792296978553574335379995517086568739737157942077126503716010907038545508066676577467800954331721050111911903262943743938641757981668840421083118498535392129605211484053098092180185790627936456068220802931207999205835328025558662467092252725022221506684474335641773276390443020462761905278429215630078867147752886257101837467618512323035017285005669352456127271181526642789140560819049246758927349990323043425634943719187150466216715073192678327991283213023663193918768212910517485222417550162310083422880257525516080570339510748358849710964605895760079800869572979796859051764702963115728886248268411958016666168304959097861672377004682564359126590572041497272748824606386552454668386685389865320257869408084918621631233312500743846563033864416600377340449599133631962218046241104118099640665078047714135738213195342709788187315374307347368107011978305039823710313918735501151223950955959027744148594888833095564071625569762761541192067836716824438032978115699044221566862626880593456260090565833847658688100309207708967586040518872679041083501691942507025460627385867656685845032573701813986180202057997557613935878687311705740337239656916592713076424505405555946176334177362433303891615039383792430893091906257979562971245675435644206319550747018589949403827879436808495410112451842730035737951981070836590791984105027212659595494646231346575865619763969109108282672214473304422612433169233088800183877631363397235504443955583599100344619789996164079506194928817610926938530983559938750550974450724490522769828620776500046055998763705226443504117870728303520001163250575369463825333468830462317969404875473132577937528494200580524140950926809207649450724486437189429046384044786706361964107901743813508178573935890032311190395256437297358454027069203053406196873284197114778307178723733006461640695040456238841148269271726010885691879761837465164678182633466237640848203225686081420217724084597192373396828770713588485912904096155386470467881298654284517281673739676151309638240700637575068286833558269209529067618939942709910970185550639306567752108256237683692704433613475580034511262535057650267469285463305434440875406092267650631892425079707105482092338544963232876760128593235372179187804460316293788301503313638047502793566929332435792487090170945095000070116069210134634290934054738182321515763142365153867689515104183672169467069252217233898219648396549750173411888983585679672388793671776746907279770555230897822527273601139175857009390302104235411913886228851119692081872731564864311805044545915855146970519268797715998237610469220640769884842781262351361059318932868499337754872470333162907196497401935858289714140364396330373659440800438624523744351748843423180882758715421718871403375703669947063701228195632581840399777076651014319707837021844687189088970903839515974667801554756729827902560280358201874754485119239894431721012055281374466807411094905399128587859096766860749349750694040688551940313204779482341503464284503966371922653696209178503337738103116871899809430095971954852423499557013002437503244023593106789325618122834872076602522286148639435340005792822691488128649099492501835623164477081324676440704583865695419587747849269455691851309910911851702945700882367018278158295633008458901954378605304595171320015759260506145930271478350251486619443089405269871803568419275924465485946645500287402977111858717320918997450276753704687220294947107901836969225941274603751626793251675150834946540724402187005495842621165681886270372388224345779095673716145432913137938335606887948621880999496058104751556540069562493607739739858889541810738071049478054457925813089183741741342960939706010413713215715283427362329424403465199606205995153908744314622091006771200022806569051939780762777420512906200809156410467857857337667622179052936074776155862587610966343729846735101163197031905729453464340634007891804809231995107004078866184191717235006247219658910087911779937299915999258585832408263482191932079214901393787891095828443821353889891564025298531830993357480552866251309411275049960970880311137141458761283396916417271849606417844092437931969665818854934392103811818331934669859903589773707625527889930067401490074861245794989294428749509191511922727958852295880953962539427612318866991129979288662921064099982986547897121826330802321281234863843351033682964352797129833605170021166292576008368647412642374696831763226877380266136559047376182283172287903447476141131866873415429915296462941816687054474435113752274657355000336771818954990482180731272976454897388184732712389056860409490054318657711995748621430337894868337946036644449987079647347801372938162622077567337332099530118436249104198694529282802505450511895211139661356089192926039375740696415579434856804752300331414679510159556652351782856958491833668764362535435301494176616699612678090046684653883053135735531852713186445078619523965682229168350542868620980599016329348677970075760729440159630607266548491843713125038825622073534486566094659507992691669163970920236315857360647563173942938341884721951422389845235129475651535358904188235859073710872688689875181325664782272472904199402097546231815043799413664829414612000103926159957014592572945304650188799473225795337265530375329306472355054687640537333893179954888566115600984589938444029846666100295276103237377094105754892512839341394874737709751657203901621977459940168908021062658908169566294176436003221069367448506935449138347253706819284942458314818206680366162526912957745275772840253861265771772206137724560686280046336127606975302645590978050390445190059980365004036142906772061383142080074878959550810820871786725418846127154042805472794477733197705551287350354823606644403697784322680236354425418910243566387151415637858296710234969361649291276703550837330806265432991615525751763061676179174608300323974634243268941271011208877879257641894955850852972810880037632976005784528696376658913803907419622717681988104758015000108287928826274563753089138662415866680710053135172221714810786443916288448295837529008206744763062614618488109370164421432171825360127386303266637926005923874895499666797918729454745455431517659151621629162727964703694071601857091113699305989077911560761777215075224571787074711318814888319172500941863725649322536234945379376279165430779149660101485392699522466353263716780561906078913661409177144218291692317840633001600120915750101014550626787553398743997880298858334532690606815707694006055413399728180159795970440167843817735183497891991696243623715744877846900104056879228335133938727322146900345442075160097316815773592195354133766141196617570060296237973075730911793606748870915007676908256667341186662052505325315167786047880279398201829124141169189498630327108713056019055345343565379201748313747112650268496849881672321795261927173779566363160303955531067244112488511666025065360999312096057362086435067715330119357952626867607636295964133667845051783975570808831726142476366639620874410808957276853160432047227838178004224788831677410106525907008861946514404538672652345341752006605634238677446802040952198127332641586768129826608087310678572478918444733666891672181355267004005898469176656193047897088661874943575551355603986277991455878114903776655313901911873606623958564516593980831232080659466025789993556437063903855435585582160986434006913867285542816271201343179596547962068882601973112031012999760147917755001018191303593300610845080712485398114255958276628354341306664754168524016458459285853403691272609289300422364153859723794044111259287100175804091116504815617127259653366992377781334232834898915907375181524613101614949022330192431600583952943806236820671913056363344901285864772818429860143594836049446759537983334608466896479534400238501504774093471504172681034813352350908065045833510088159298262190618991239439125013662596772352399010668233178173288473395415735462093308502360861768586048237529539904850525219083735882910682291801522627806414173002238976403835743550483836184987318557111945067484784169353343664845016054483852468549920689559537892218338842903252199410619202775474259673905724338222125141917207557814203952280357586690756770263337402627802349698997040219227619132694874772476662255965139055213329267855141039874023687461486656472293222365497547136877695300801667187612812476455595596830285788488518326463381983612504682682952773879271240286381018168544000257910399671496277450182748303998440112427001079019057512941185840676915634945710932769929550976014662982231225774941744315052841769522561265345680305979070870979448502625924385017873400930467329841399310816334515763016181338438061236737767455831076353040062460815692213587125499524995755776521216516277828279879907736265738631713437063052998661152781758582063300211131745607698188798545894715491349205676218231659765669810857755143748900079142358090339180004078704088320652240169163122783957006281832948053889016147804145895541374123664361406174294029645252004536158655611096375346337542491683257992158392329758929081277735025969070699934343246713380201017723849246160954491740165082547455158532987537139401790754897722649215675799253631408921010437870096257190334440085841711498756617863524405339813346608618408627691965191178326167780592562586144635242504612979408709627046781857038872786268438457036376133774227857107836203919064833843808052048513807068981142050678377996855029007129623016441344570949497923866303592839610772868846601400500458266579070242947340124878297155630439499087050694019986978113169867423674350278330511705911919116448809908528978103836456395295465244753279073414972316696708417778878106496453420425452340355845981400168315945611434501081461330933789191302070341120677575618603094753524388070873859592868264738530596192536725600410790387179257142904420070331399706605551893222484272779699708211826996490920645981128973780656341756656147491073081362601353941623979602537116118482277447651878210012439408931145280046699587298303950279847964619173069293373577758631876339385839617281980949024911463642656023171954986738370980415945932269186176778881783463735075784121252968961459640860373302622430989522572975212054777214956855504070231581617642515509870698484101354636053610915686458856547126735804807694923951673515395033182022813273848565638737215684742786367130206345120919240555071967236239055267999654342831414055177558299114148508598203039279005321007328257449761366203327230663316591946559305751781685302636924036147642484439220875975768879876188757000154532248857737648333404513593437571090886108834584835655027849307152732514389410927455147619217005764656191896870749871414710342080861878736178339051414293677599143025619253167147300301971704254944716646260952008793984289416016615704617829243819405820993410621861616746861732965658440930906549428764522608397965821703539599537568923142022793554567755779616020652884578184384613072312927993067837241062905989710254225654710451636761826697306324206269504543574170134434329769549262918014614043954416769989163350175601985393828332053910538883429722550795751170206227129598636354092536126272990870443603376982917763588379939248240310129676169622966363110185899330883115880549717792614544403778823554659042495946324362609571160068643635061146678335963165192514595687725171111456231471723881809035974417546629552155310543193701197500741414368009613330644231217375178992204309990440386061924963016553012616692476670686870323516774400138606840758362782773589479494012966704518615013382540153406524770671145083179682230798304315482968481611822927912916180779215216900038227870634661104894214634722451706537697442112561334455610353304557786057901868818555770489860332832659654760392110356788197187976159973166326408565761650809955137340088336124556363020306282361724081403357090566058856834382216461939690374223928023044375396322362139699839297669913457920854502506926274585104942584169512994338091072525274084117272841830143029412495680008132320371206164615432537056399134371104261496670166895559041561695380502888832737714624910414035324613286268002200756564597747830112347671889580730187947440488269735636253802302845305286564340506214232341907054813466708680769758540002687929940315720698210552206016207736811668651452164051611446991778680978020754308232707477397029140685197315309413554323572978933186471885016132096226328669938566124288025944843868599637007391226142885383300941084520454328817311252871345556125083941651476325096713428987486882726563641620555761908952346789600074897518258298163025007871483563452690790542606981956694865666585091394985529790893635638340589609957405368466469884960382397194183402507897875573338955008285902272501182307077902990007275978446688315815271778713814600679041819876914891467453623797456492361792523014002781644145747093617728870930901376706782983414186841805377105407732580719760535434402578485182444837380612819765477642109248029006606797405970206877579874220791817308350521158132442151260197387600386682937355196295020798421953923226744340068056294226932418742431296916755477721219432911169571106385542817364567391334039597638360210440966738962615825831880772199273665484345504795462542545525621145879364442642332222616562225476723464075206667954543209448848799513261160432814925859042405684074532803439519344097879910900611527692015390125150461330679519419792397059174903828320194356193880648109061061249973866653227949611377664036446307183106675235275575931056165412248366540105466130970378664197046022189157759562194938070102176034310415656355992682866765862515696665019848103824101581021796142122746201986290009902007668152480776193196334680366371548322391722235500369556962190164452714246935963093816176944410485504043260303505956597767476912135639856185349204567922521421986154430787638860687326776574167321425634446533440702682126497894357421132311546036180714046989125244073826024238654392499400835100831492064111100504686203847286650102103611977682727876772914946113984646537882797812525525084019272706166323383417755030563046148835907250937561985989287927138716649973255624655242901961259692608615979805446501511032308208906385570703200287333175534382303719047719917896517958359874021853767265946338444171419865413137299529893247201474382448792917278259957031091699555743052920159000000469618892225149210979900388611597931132842983534213000364736498736887812497649494243680916866078390054137581472716963160369667438295876686948851676254770047845477336213029265890060664786936435323632414505422486592951582614942593024164786994816042636184145669275309532280337056115965591376893045989060382165153342573019981885887273770932976110988268541853611248136765823006226366129718094743351852055509740673832748400773473176091060069958856874548084224025440899200065231159859657905036516597419915956154240061767417419676850494369686173169869258232616585460903999471166248460828673324659488278128492107409464614701587136105362178747249253842455265777764097835280003756670184776614075146157111270469711932572342897307442618239222717753574218747432487839457566048794269785564216911097775267484478962800689936873075526877593419021501903855962372146245172344095992179218369184606789577597068856415531802604027608818272673055619360476094195840435408116752272209261735448990987336266590462753954353477196622717103095724308405371438115311089307290522746618443082795535309653199275286890061002356902139935016987938990513724686302640778347689330659136228720996337607679656975734790601510569058100689631818643529287989000588100003427730902419955569697497019166572215360076650229728406396476219857801915355861259752189607018457134795170174607293182789277251529814841266290836817709111861897946151703430354964243041747912483611174125865569818463429008548158969533429795013995475176294174135643033078597139372884713875729991397805056508797792913065127268736312384247095388181815899223485869899373881270164084609900269218873019198995556878526211131088928778726914296492450346904487215731028612808242812004113002443207267299747086741459816228394199082734322610874042649516944973023905562324624923573694580854752848882364449718319658233378912144021052793979652191713009634089577177091483853594920314157785040343841673300488137839049115182396788750891982579878293330944544528679977563395799421277009348828601699229478010004989943672276519298550182020107126108449857994023156149747800914042006434050848469580614423059982841060132697974185022403653457872031545676520430513497851524599580585919279922403978818497046866894068528803818617863496510338041608629564883500519489771111045829653735285309388645500072725826044707104187772168191845663655149388382399900406115183317176503225362580377832268139245168325209946026020985790664565363119402422073026728884671142017774380107329965490018407760342210733452495328374620668074556554083080316765119689350292132093419721600054781663438129023771749827580018743559481788010841722227540443638406263155000789890524943330833365481163120311989846898333749364596291438211061993283520923661284866088172867137057593186398703532941088791651353290995580073911451766887251938981997054183726236868360891424382023478556239568638622241017524113268391687504373289411560050340378067082517449508098213543864148552981185942280128569728379646199091824903157753822177040427680004412426847230594530608967706624451913261075519281768367459645916122788756535745598242727385792739261329931634052311535263427965906542725964690127030894466640310193692375432270252339000875528234206440755693680866366717443225720341715078158909196651630521209282940570144061036362257354549866747087742278169894561557695196401331017833324220600813842174719768388620913879004193241687670928012987802855822604106919376110965986951741758563500112602988192829298332369427875743830191808895223082729119056864681099699422567890136081245474630937616021695620341079817419621632245758380812052859755582136078217721925607986792172302911097720166893834675679063816018037938696716763137379682387519513710612269143464581354518497207441908036660524897433954966602187659820552175223278372570886023042090302205482325976011393292025278958708726698580914522775299565917483124225538730472646386513393896572926492002420731815930516402785669936237702807046910318216735995149461954404558027160819288480493883106570651189720220495331841238692651473866143115474374101816453518681371826868761797344792887791317732058354379586945641746760256603737133316403942943802429059989151661637887531162926205518691956495955540276579060745916364685054223231382122038291423947753000928962760032781926146856092222050135051491833102290865368455480800646105976925652058025229723019375149956052751510347630275901100021013207237054467860548454646294009169917693819863452142105895332399972481109040305967730136810061215223497787273074597974782870019176940508217837197889489197377331478929295328732722554091530064338305728841562155806026118408262617177675418026211117068363595087403355582630722197877577581594224332011781982112008275065708293277140516354685132553795575534692425415519333525890605270969632796427247063449268730471784575389149498959065655082255843798550780739173718392204819083800167990308064950058874133469884652834670578718423454248172555810912320161192193928429129363812058183101016484463109920087575486295309397057847600936601021390114319065515736497540957959821809226118201253613827482224995487826154932496927793878054151946891311132508745580631080981386557308000566652135437215306543491969782413156147505876287443186700818868210629452999248219079036544395921445524811791317050964439056010967403595409142218220447146491713243179755235129053436796214078901515992631195068576468623751517173500214560785214844329370657071912768475008169491883428668227066217928416402382856709710574514779562391028918998973135017954496908754098090809586419959459892227223121532446613551489363965086244938237798121010816456430848856641544074137804747133810843094249981839090776285042063560368726938327257277597750687888720119801668722346083396589150716812609220393835498796525425578728083205985235517174220834477855858535651859442060374952573837140324476994763837044917979184320163146298482706516201097568875670783518319357351623615437307269333907101763046882337104970166510482572273345107955494632816844052823139098888073610204630678579478867314088204558538199560401019161300396165268825108870189709494346954393311333224770397517572943362249352970907969143726885518431222859700860037610197190299923865901471542876060158529655604035884397845148615622316703078914337625733197824979887809007449098557188616671581587463229971385506337421096338179137167577273017403607822761693717958997414609959936704156112233680073570062502676214875500847907503156448518451583383299129342354877329596504372562239057995328328262543268336422236080117551712185880256531764173217501520162532808261945033050297394065738633187349643823240133241326190063278617605490905010687550632961128601718553114637241430675746784506216855052644795967892006979989296843836969109831479292140466250534928808770600957072367113703777782806684064787126524275154866841032966009007367965043700069890450733908326769545372895724600453081146056134641680122545728597375778828725633344673861957922003951124306682115831527813882651496349777859770381256895913804812197826256545872331173101135357071584154088698477258867297907641600339618030359690389744121101542381632581278294257414826341738731045068626279728117431469158139537545278941013923192669741354052605104919272838454702843326252577668126402360323061488129671579262420802243234740263171212179270412357840186203802063690915678912011962185234402242261191300681164614206887092617972737279986252471784699473615140054094585129849614114711901083499892208944611997385085795369169849264714283777525060232696561385134774476646883099424435791490688666940794546603721207936938675528344786851610129929536508740133767881880788617335021486768690441636958310164697310108731885047206530110116380186534304212627232311959842417657436009854995130374375872241075947204408927652139677314271068081282908623599949357091408241762302377428242164884049569207533843501262329328087211186447449745806035563214492562716962738317337731822012921224082115202378451993976229079725085723710998724977858439524217767318772588751300683330862245649161799831438829618520128691663931369736997142089827219674697439115114368556608140854316512982423756331064319526187904532549741671997838530993733804705356935121818249501076615766725695361882171076638210090861718024290944227154477038849538111979560244006246798868510797114974188507407640319461242027234816559819809525419707572419734983495127803573833239447961340501395368286503818202065727362345476241400503085313439530987385904100282941332456708652340790057638662737383140382993695249864599413066771543024593337420866540810039272362015328274263414000872274497507943953263454032678280873726850240668130404421882942903728998937701550081525264976444150731782222989010965739530149133258780473588563174912212901164501311541908972165967101015506967234607021292014735241667949704865231406022539328414646607971539903290014850618396068006731085600085265262392455813499357676759582599960795110667884385522793898768937353061205267278902773146017797157193228601171371008588579235807112774404119591096482319466627359447618647527950961542248357052004318759096144093203113993690351847211481155293334593867070487088704416695912091557181896018986857322685644139170313576752121767118714843759388526544295251160773896970038917006921855116761961659102704979552711418725157712744160822440946469629218414223293410192624375607236926808420488970050278719396688200702615647386913553996144464565806109599426584621723186747677269912240745535355372184434427272309159855086172274635503149836437089784690239610107206331530360152920775257939729969350117412449158953887019211086396065192710764034940908880274544141269253650763572659448856988709034919508078906482415500030854335498236420572638744005857032334526615887125784816041907052192571112928891025141277822835592437910440551859990675466393604239360208246997066115329163848428651930588446746193921271961601822692935550006941455612036903662703302452996351407612324446972522300776469897011771408665990180125254536251657583504724973845801534389311476366108792339271797943655357278220665788903306930833549815578082619937521044564206555951006437225895384477959869783562139543255949387456992328149570382856802844211690968241177018831705850583499035709717671505661233661108998613367241163874845486129994081182711610540998903906936801645831390866466323905142567951509925619310171889610732923882745633347438481909433950361827127297618312498341062662482328798214961398363651152503310343752516061098564608406560965278543984611956408090836959385817115916254482674218545673947833451577736128482725440246316846108649358268751432557752523586391134566130328483545609318264181519012206871759324565876687220937533103062570856087679208189010467680717921734784501858913145556303569338923310946394693966467210550442094911512209952180981183227472294815582986439852977900360165020644952776580449041469606774199571963588268834870986230828082984803206422905539465640354313311763343871794343861911747343109064323289285218153055277194068592273669851940000254529879045361898255480988143167863572807584808128993960638065652505351880138113470943068624628523165603651915073463208384414916049938772242081921652415560958103836000560722579922557586983894648819367333950509201957795317006072705904614145468856220656141845866950236854972003283718988862469710040643696092039292105512493537531530362547762998899691051938962570490150798025718615082297748682440644927079810562922303117093397577320209473152239065101208670447139795112711218070751435958197594941171746514456390762359512704957291523617703243244721138051705568124200888978125003576060790210560854121457639555443151513040672702513326476289297218310967167177905003679840935922097700209684658730756556604406352538827831113412029691043388296741592632878727494769679362158160636408218717791230011665125547500031679789252429860163723390112690406488708520867231190462879590951217405998533734467562955052718615386402882708034901958056609872969126304954005340483069667974983608739009409973207920802300533727667079472907981721068363146462060955264226119114388195846705432785005288972799961745759827111871415189327614573687907713537684742797852863979241959581131577388924314847434131274664155021383942842992938473246857609697268128449145175332076848846630185227292714764564351991381511269108392401141983941082173060853379222520433725554901326513990976546662385434490807223336269914323680288270371416221157170681910323882612784515271893119076146527335672199197047601849171033094230930154706776068103674276693895165421230983456263157975583336380413987824515888815480752513004612425989831268690988858041285546314703727748266074081848644312334415416668930686442845294991562260591070096525415201580347374348624442822896364409410632498051900123091511366568394420464558022798673385033559180688002081291348151258807090795881327349257230193153133686843708863486504292960238122487710911971711042659444179467213572239365495920106169216711733413549379842972579754513325698610127791360266832292053186164393429883061725335751284985255300243170963131708084604019463988832391535113660117663266440715882990105612982132895574577040724572723923292177253986566271981400015103919870043579835263428778415277539677988789765320824167486039989365212551164782671479607421617082935937820429750181420046228230185166186508687141866432433789062854386469752380654821278665349760137864807036090414208906907148503904864959002366615631296528029894488953503308825115719478049153132022164084553628626410540752575086622243011070591574184293952740886996923568037919080982672262055028432718961767395941794047924758139066219425389712579883827518625428191720865776412049560655353030494017897073721513318968339642882550124977510327473344607838747688125522675540687142475164486750828858867245094155328140096014314652952724409973578142263977170995092525768098200564759979780981122972684942898481967182259833397286151127248914165062571237581869245302552290369657896903603744934964382591164032919137288427356768970618658254033737748311528100606666739042312887176514527878086855568988250851463673493064195657309761463082542968522750406470407675673879881274493811543918906166748506446653459555754248245649629061276195189494260553310398165134570033526542346116080428278878547561375577080748884340569892415175459478218920200261777098815299777122214562944474289705099672637325903598875834087800820686556298953474055767610495027144607327733559496139893378754347132528749058108824393199160162305212641470519939196758229290554629326226344694536028701875080643504429200876376354428779597398083574932813430714738237238002220477550750574087440471585574832024179281043142628165854932506436226338151922857784721189214317541975888537109093207716396391657562947300289385124944940281093258420948453208262933348579725176980916606010481152002929762297088055990521979851875457595607330107991255774723775792116638736536992507544024914117208589681181334923297185905201091848583024372286553749170724646987142084945315231184735086241168441662826922934925045758175733748011959635705477036890287748138336798959061085289366299721586349626906099172490527641708999511848552644081199425080702263017553265251902258113361789155540589415781001469664641846103792158113535906851059852744193530137357525755154934542873716924888935623728628680865869540337497464153693925720039026744616780679240574725325027649207248612113334231067538510603198124335234373219501935719134614188120720948800085568949625628705529219330854594707606319081443343377792190884898614393922381913795799426794735173314893219099436198287286452104458824035616807578798011366972790944929004798013032002721414063191953279752234255022508471565761958640205929960075789455457013015852483818844362438293672042561661254792441845499906952394808276131160908323168701154851226664862967205099793771837636931350550653449431433964870962132941524375190034391205724742986498727059694209394551780217755599220805843442694243214416000643205165408187998705494524603840064379939602917579335338718728933086229463955197655460742315278248325982549585379488792323662602730785393409225836685362173732990829115017570768266738489831739535879145595633687491384903736960120991330214488473352099125457113100963855523278303249596605447682690988734888122019402544841789326041953738004475894257796228617406415120946201258244731560996999278458642324635391098435894615881204018878272732251508477637456234003688475195386843584187239870958216076975529001820735775047500842541086867665776877223229413560728929454502970259961277847253579412225608636860254911757015392240309188708538762802417132684287477930519754791928653588745569871715464288317980748539013097128361131850410938377257611317426562781080489970936623859127956892302244759793878433774404018411543207337174930752229770907230183989116935978427095714869743250249091485009196684904911998580206229260147208529078055173601747955354812907238594681771772968368203882468754694081232938833844375898836630354883761759234081310609618082139135147270148166607763423123899298660311462238223972464567051125648220796670647220506163470133914828346280187508827802821425786492496781870410376123520216945344026995480648686125302786352945340755708311460735700991579666656255301608329900424091352513940670958049938189934677601637324888292077217881885908184355342999728829390211919605842323884333053933443093434705964218978396521173640383578858959247188670797542724503499745909945089706692438080827819005045659152971054234611131629694343622606740496883551946924431467992736338194677580390686791853285248001597986793031463613662450001242686894078218255215947652793072241094480536927516671133996148950840432476687864080241823246333734517976548101367362973154434941256820390883229913350632368177183156497558085364074873371033132361923634371735092373913845275675626925541787855592408836163953968946826945260786118394363241462081060007928341353962679522005347599012713004002559592403406165609911197836617825920590991215386594355841926135310754668126713238338571601641840353830608551299671413159461455872406019386517143520935115548635837822031268842638423630689722656185423259291201480348733954134699449883419112460542195529225143005461276467399135243975003685844191346873866664495902954301259576384276981034641738227841602969535589121118060475415288354619279507046564506567750678400007965012570523025090704022551350642743161415561520578835692365271189546425784006214756044972429891392460423266204282011449250186796731965874327855189448204562358853529014750063045184732545146794189330067590016943991510362213782789970186036429859653495422879019268060636072256774217197475521409861648641520194506003394616842237247008268063776511697927438419218759942712451500759223614539831300250400284339331396502237183665676996828534922914060387596505614196101781982093125912810480272201748624367604712605007250262850780490193681128770147923308571438252007342956304553699428856856203880166525330804159879864835499828478983178189082945544664503097428872976388191084679270876616789994582829016252834854237406167080542870423703681778207979258806890788712554972839675818473673180926426160089021064246851979991781501322987722941866071120336387546206245037811541448681478545124408765810837183117637173604678421263717637092424504199776335198796493482406293038849049526812265212841224145396650598543250397177568284526723417236921037049213524343864463343439899494577924013079307580370781685363461660931168354494533525932278952128989615965043270713180550043289268707157508714198994833762744368494117169346286959180491037560600418479658332187794068633618249969329020495334349612323926959006533297115000023296715810295872453148512054043093953691238613298056769994979436085649027756896798702870808178047742012428133773129766230134689502909526534753049237499742470082458180429195661060672992086434097123299139725675271893825137321086915927160355738897587775846513722370896411514602187103742118894343807513926101942118722153420551180566244545053732826757565938404286112124172378407549974369122845607500016972117043081502080136715037605859653507022976800040314423298114199095393742371898079572123700293963129279846912311883092124427551631112670902056414734015400663550022898731037173958338827961778382330727327977237560939785289344845422983685757169142662787889039719923384253854120394803969951363925400362599542697336644604270307552234808290590431231411490263276738889759436710684667789892366737033812774983371807023400223150383100495335520858622822773057100331043219569079379710624040551313044627477503094311632385674822407197453245620863392776033366734551351796249290258545521686901596435605601570319584307035399257645907478409464102006593896477792041253490472887599177849316085781171248097779441922048939643551683087396732572685142462088140861149929004859697073819751822972060881778713587492910331393663083531521496753583823048890235396447092900909264092596160554203355730120718368085144209935618880878182082989030098100859362738385860792064608978916390364172961775577332061682743993019643642856831184208831885726482016110040336413407663212104026200512016498939102124389790079972894063014701204231711284961446108203051115570037283651098041098697786219864253974764402274255533966699078065961009275809265570554990337994740983776426048079292001271024963401119922342558764576702210510632596328344501381870027463402983130856121517575507684866614857472256250468694985115580750033948268825608324368931593132658260551007318151561644635148802037389555545694463918041307527384070821299531508028158474991448621416789559029262490614755767337743659726690626142820753652187114187988057107048247418302346645814111478643916386679781994100695176232440866388932872944378034366220241353983132251613375893057084445856994171892860801397025789187312514238532951879947597585896933807949447363661862699088843940779888428957924303485377274894197837620281948252606482124413255814366190288202192212405973920888285308906288145228938412664952472407266927202857475974762984506188239536246279753858749567634719686756858606860269393221336104445351670920379728876427879483974667876960936761206383882983591437171655018120439011552284041517326437708805887545828561386804532006245286781979724142627578057479918326812947105882514057843135713833396132338159377391941236987898834481923401857199683483373082392532498695349434615408771347122621184786298772822671990760430247023848628451699717989747532475625082543956984892316214245315363817034180226524327290585597950760922085195572442308067362074898829855094032639134553418091568551655168871031023458141313442054976721116584662186647938918132713738120912016125188998225075799706401682650396219284217953859835185707820169296929709674425704893120351920751516360603872219275578976106745214812974207036581625803191966330239948858700468818477016369232864580809825153767598760987794705358115887120572082440338927797410172679329698401259767592618098295093195062998122770319830837341768856989399029681385047720144706187960146641481535781746273209641580532164683378165014302869603260921335343132489133333968895123764484721710260646955317701909805491818866776568370616594696224430991445859454251221382347203586085669633715855198943461781620652148624432034434510214626240961221132805333569940645728810836395970971130488014958260031428733652329122621179791597063209625521631120130146141502875594142976597754309158795169603474641159356261461549809561866938259392906176759012353518510537853612062322107857237589511642722274814472891951123983691294980799372443602307954634562878728205456577434950016489068750702394452336101557247119031165852983648149001075499901655464622470484791658188306829173359564270840125652834498362817018584638977097376931250969867867086736563014977226791417250645913573424753056257649828060311819231031312191438492715901009305074461805020399639301421972949650827895836920460699961655303004841210066204533213535904093373968502326605904014324248447714773980033144107275991275713711963904603823210789374902207416617849953164792562936788697400770911369462751632739951243848088416126645689315424467433426662307042303938541367889809772274030151843901651392756608943577225038258886683313216302821984989810725309399957063218258274627013493896202766852650798653927029780833947101738033795321492677057196926505388090323233910140332514698668295895736277812902615878068253828421075462436734226011604010272462912322087328877647146380410136634688235622495835784711023476653607935668989846197265772589209102778476510664082418652272079656296878917860313638909878943652081428131957192769777225318558694508648149652268018238161906951179004356452209262106169467149059361542407687366438891121074251990057333368171490905734770254687621255087885674295239756349135027558341807301249277631961633166230600594978773792352182166958221439132540760923724141939809772385647441724411167760262096875498083876363855654506836949824869840941037836230539041216039692771096945748209195712298650178862628279163706743508804055357427317752821893417493738556958747397749750120664246578845660422781695363365607380299975424053750775869193433536361979058319248596110903143850438738909366446888900284831542215775441100347516744174854480107403228025267467863605423117288944838586765577519276774437971258910429284457407297501123293511796162345968541778359019699505040816309047606862506084548790601967145838693694125801055082752144120923539432252379650578842029220092858425446990098751173358012852556724423372645360460201252682089636430905935815762537176512124440146518680046478647558112744619509701058396776858834863214389067269409012168827829008051448727490380980738887016760381438856304110119102882760897668780344636307983251956258473586043358627806289216846435856482641369926571048982429626425087280746147622148750939171881902005627401723072569359907372359050296084267504116371614767840578869490442796870998099014563094019784728950230764135428129784020521811892342297017116870318116257856858917815841894842360529962781708275693619618740851181494006794053577950311381065040343559495250106989744523743874893719949020632822760554237024800673790039652006627465786873277045027144038619569120115013384218160633886122260484492134556393595104331530250015806094804324834901192856374438244809978775237597556547474477751466880080715794948338662515567272994179946540179369504593429370255128484538961068756618947894953277470682822323782392265132277755605186375832950312522520408222090273822292682359651740844945345187725122162665716086598298256829152174819064907515093372691036754819249567257335573738585705538994310977328015498126870455439005832869226545928154674441850544569020448929988347384621344911316436975267895355425869029434154360241684312701798313715898339521661034560024977862665827502526590867664833564391295077272853145663893324839032011543655259151279743411604507639615371942895231870986182872264151643610585423205493727533786609758967519034741190251015384570269917431716656060223036839046546371477053088453247967785437643993010056475183848909129463096403809158022121876358613815756763770384415371148983745779756142274993909898102253103098841714636339071206647640911535594181884065293876413029303364558332694826265244625955046294877032963786506820294390856822261956502820164130983493163481545976058554814516172509380025892840009905335823940950360880707553230872730155812470904313145576564348853705119418105178138929633935018746020518225258422763219037190962432418674917614511116666144550480304785943799984444434400563146859207292751471143675447510676167105226889990312600431316668754367720294452809834117346933365172303850626414570842907030557244875449947736787120916330815618543715771681566532653397280870475895755394472717281580325774302101613780111135519303659770870694106864459002874472932644070997905498773334892655706769525486433799909138622877611222448238242388928516108783619667907099192533335429104361442720831338492535551164959888103980885194079833878497842025958071596852903703219068323354242657460472285597306332230120843004847341902598238186497947053417311667322027474587157860433531305132576397547662225411560139375002755836017360730788045325855668428294232454419503856760229744871181794422670618398573635088480698462866994998800886472416454870676976391621880665219651309686117660426754397054941445261706774040742849253205267402484252813482585914425574831989958378788164427053167105653507096746633694114440616919804805854103854213486648193294304278283247656632261725883311817765392273485835207230393707825963424303453356160826398488384808532731772184510049515668491488754456009173520315038901142975960529041297040687879061795402518465867883501671705726979499198218199767284027237677954734516333804955628806187701449171751735384270498804441288259335578988551817660894034169980332848812820679649300119554795967705639244694266056281140948489924434817524726445888134350987538625565174813505954135541358241719780765887448242663694133793078067548779993321342181502174781358476832913763427152422793789470346749273832927590729590585318461010408077188997468326990522389001606708497907391230199248523118103852649316406910103652438632241299105726103626362938624234734901235437649169606675215753478618215421701904233390488029414216218377713289049218486509457939195983982694335848844437285180077320684246411164895054016711996910783361135090549358337603664887410170657591556926748774203431973611589136832361673941427139434711923985202244503155366462475600075686782707397391014076556367234532734866511379942446305932389604139949306063752946784571685828366355948713941283635925483116595460517235041317350751198182790829450953479415310425671279183869429552062340238650669571208049263290746030722772328418128198115278596916420387478104342482658495508933865128931306608367220853435945358452954058853294656208524767119753820216304378279271231146108708692842669248140051157746375262925917493455787165323931311316983138847579791702512947985361816495923669019178251410014912382085188753016991288184351686187046779059605502138334971932747819599504061957068989507802486626761063071011844833039568597090160969237030562338395756636296849057740971985544592448798336900101297247938809461892144676457320656904663294944922415280287328095983878360463135842239124087690618128431695938540095205228914751868006889405130087067627383531710112593554003402295407742084469904403759438481768671832743519622055097164847270504952214759022403977780694054110011576590680029366027179290797962926374353597209466678732958922446840676070170734137505797925664841465092698078136578850776579060232444844022173527735854043716218681519644489343798857170738590831790260969397874508852439660682753177149606435198703071132270696637544076013665845364283144071122743824062388020097852562187997475270279002336285282322446753926655230005742361927440381973911366998590483553997516649057642149136411967435159610373691022994855199532165240754084969635965224699584242742434658217820455133015189304105448841915817977286372649000863162828535562013004307064877674823442630950795898887227906781214850448251036785852083514866985088232509838850649858766605442591567441111012115358939222061749662916649570291607882530538457858429757661531318960876136127567717509879071648150023062837426806750419225219441975003476472880878547914394232616440674618993552750139194064899221126769806023891191617322415468291625749380888556579127264205858576323885304973110343898131400167870758230827648577757710494776459549641002332122618987343483051771384975456422221458804650759305755330925192051331661220308506682854959847088281178444825289346856966061155358493191730532199824867217499003520355104375133039639028180193728428376410233985117220831966331536799365474125723750783852968408415021558278562495278074604898224361697587066565740662435300553983579141976265046924649686511666738791315682058183648127112170704225241600026735992467913448340673683079875242142606761994537523423901645537021159687657384165613192093100057188635361614484422188932630670269179518130975857475161013346613327870944836511421474129146872980517012410278275672236199593658065031877634101758099542117524181760735349598169433162158293697572025666986360599870288703257192544957597319604925211300031207265961123193424045912448163474731313493237077385797900461824815555015491337242076690049092353365992882028892859441198749029319899844913719286401411900734197350681809587751833747416877308453168102279962672185376521665097802776624294057146297593466272715322676109453115222805601644240354323423480842917209903259400604883325797427801776019551831580994050042158697513159004342786666599780233191444065401680127508547275537625265073735415892438498789000225984614692147796290003998035598263085343778358061961700684463867459090263201064942930964547039946630449794149093219522804445666341649734912810783709844648301225484752862075365352533170442999941649628789180881231974878302656787583086384790212013185330877395615799483359225931824393992761635733902783334516332133886098892030047900969016694951895028810731526077888160975104314717485034704577342978698646969288219581268476987466785621596353964956141389203141639189115321236782129982627141507901283547113162495674828083767905415843378723761734345650506682381002040299663291975974315663408628159494975500566625215004833377825228272266543866412519999102037845841051012402285562815970857286205084734954982554873023861799826968135685888987720951938123499564175208451962543955509005185155043411526732679391422549748910845809799328143695011213133683555501494259066217676360198818140764256050563911738664981993141392006641145114922963240976882900792524967167597359547079184621070402784893974957390494946051468563474513903951088704081505829959917049062747916865474985570695582737893594218742121981821319215955872303979631916212143081404175925428331261474820931650905012781032819623068720542550210772114995078161813514252242806659231048811150067513649401028163691210798398718664122077327333793929280451486350900804537480524384801247121649144166775240088761599838835353933957879207637365178613981845395205948941090604586146145850830887071749120883635141568820666331717095358853582523799294639631899221883785517671580327354842032092753379023454863552057468031118490521266106306444766255071766151469482963002448445866117195457763637248143323447736338229983348452304428879809523577544391053561177513654855057170888479689815791465534779580318736607132802690375647648700448945854741299589069771154732531827045038618225094515001106890321712053171074928731920347869847777505686906438634165556459790827195154071886083863696841498531625903369808030578461681590602096572860848369142204350450971208982926585888741861786018511784468617408672027623189391139139623685871380774911202615535547058874002054355404771076667302349275129813685496863198757516789760222934983751367330244516015831345016847316764478677544509889191865709525478197081353552146019495522146700706634833173026784800070093336066624575634688606495000281797613019733882551119417173125088720663140834641646621814624017430652589174248972088084100158822455366610691917100761842854333590465511994029998278723549755734039406669731510218328893749910543902657006619135422183115213104147521475426031658549944073640564824023591890877471351136826434492217875127905560501279401260980439519055959521168532121269720631195997998464817640058094894666004862004954614116886263044068358720484982446954448039009354721060637020441661458787967914410945855764663947589379710655415136181072725609104599802070510199884141026216313294888237202176317702842262336067898142261295880848968752943918296641059651786364501434440716669359632282255261626720100734955157434730710207840149801667831933336159529854570739817756462637660856917637171181127378220271831970029435851208209877369233358085985067587571079513086500050219994375345497650229233841483647875125315434573784246162260026288586375695982720385305466294223584443228286625208507248602378692581281471531998901491068897983905564654891749813267299057557672021383170932123219274196049600065273922645176670234023972530740657631234039737769746114598033158360679880856744768179337579206546589893759644083530206363270375085260771713808207674166934603073907949435288388866516157087972153327738268195506997270623941077512196848254880854918628236565615063739091864881094399550416042674524218718300091259898335582537632092050749149735421762095105065564371497142124193825532132577867578314564299972418964323412821608671083055846993421782979495361739164501353300014956042582605902876973967306521576036111560729160228007386237970574124439270314680461782564325354945790049598869233843979845522734433694495623473589600842536139980241972993616774183870130126421298702392710802507710783887196272240701689863663535290073432482849166160502473431833747983452915176890185627413111810674705102166974789803377671384593401241234899465020605207673129956549071859857420128150284667338399482669851994908441622217312311191615327408254762684515140885571681650084190103760829076234902056265652855508671787489807064181635994687465703342159585752720808732437786846193560034317865345019953901554092397803237732670102926085331579266600873663570160626500880502697617424474506059895721266232497956819775923458154151895961481949792656342326273840061648030005643205599939204072125373423986276145951732838282611963673406271288802456581708970167356479054339748074216010580381022094714112408666819613661941954414280260940020066386307538131854852573999928950111615700231587093388769353010596497139338186157333731723330282296605484754167662652510500728256128666611495376962638683640517588541091131275179062119840351597176124377491654561071251420727993435616724721828949930817093983887154065093831263813881831975878756705414117399144697157115888510706420849117786964122169103374342346783696712656779580186630899832697172476859423214953535787527497099363367857554643356537407983848191761575658128571725026519476427659963582817969264661178678931659242376214000467689285230993276580854841540774354917872356928000802349410565100461133559566828775650733715836929772288216404771554164188732317935445860403418452551481483778614291664359462703837650898176103018542232627978031394384911942359731666000061515433379175228189717740890513129172711381339572081361406049951680499495082761378203400676536430224201028745021411345264010571326968733259605592095957919115174078281705060186496640101287353031183097129138555654899977394777602818078995999177728974390009141392780885498275784956926772258709708375940846828821626625573032338159678129194630444645157822595346577483042460728702848254412041679339145537178177712805505647350370115174789628571292913489620108538702713419182480649244741188310454734587862151568403836059385872676941046084109705449420044543128027203147609865172249895228854989520804406967196954061149794630554491405421616152790135648850856904969872703168779163279029220416224523476013337424210663828705078871896494656331824327546365033766149128106740712853167062188866245913350672520368969798892444041410800032676979733477745865026768813261816574259393826153833728358330663677718100724140743589817339583626805589040261796254875488602523269568331217738434491294123896869100579287920784483813003979485778938095500801509954741579083172307132445563782719742622660929021192233017004246841537299605989905391730241507689597016397325681485462410698827475650962276516433719301943951654306808790454582664808670577886754757310771625528493189707563649312733830355319721718533519433869485479673748884208206608670691587780005062195830086882413591178223040858073175100284553403572558168359645375685494060303473578073687002602475248146216742852088585983133458244506948816713690286527729658114229714666340540787770791620577470730571178077322840054503837690340757553964176130831097653798196571817807906789734039816192502277159446947500009779618159443656099611459416307323627561393856954383646069403553967005495336347721026244405452653393745449173182167202477901362054977253744153961920072247877829933099823567907147594337388870007100138944428573648367880154861882651650927531297468673417176335566966333926302846698922775291282127201517017182481598251866105100761246575461780821486590923801436891239389120154187859939202830329523254114419967192687198857164998135244713890677513753959300731978412491585921836801646652987272039190652024035123200147671818142925252853123001501267039179765729552069694545623525784071209325494987553681421056581989405334947132855463685135460228651656504571031596718049717094811678194999636995014864828573008835384550093085069291307522730750952943979372061179232371326629513060423176887638609368495064244371741982303016295853361540041243423732452796807945771118791522541529646394391392788533284958785836346816220198217866403391741527443940007465624453871659980582688959800641698232201905541116210149087284119776932916672399574391809922533272901256166996537389261457860052984063444907850475596156827163865277090077649057824967606817449703431069413932937630636661520312760572778171621211058132064907027018943750197089551074884876911115245722315457092057950322491330756669423210706446855024182739577073385308636525494056692605596047615250858725846275169823910108888399659961728983573043830592064540698125827101712696292303471567357267382351955108802446836216811954211449589552130064864949989506183678590985728979529577113020784583931965301961879444542137543472882434593602223561068038397155579804551488216301487806486333408468417626888987010985536201430859339614835676787841037418360457096794574131396225521748828819531661149119068542925371798843805969317731830215637957561181749855480120648700463827524607975923392016699892788256680039523051980788410760766539692153547527743595495455263379067334354458439826991903877591574762034416121755957258541277966306243632976659188042481804758332765897813044359016057246552280269417785912428926251578850679634312356586905259529801373784619919239322967145057869382382546973700706589513966173008874437813461449155684412800438824448323051394466866472475046737488066206094146845643224512026931051780949481630596509939238251165068871633941307201874218308406621135055816989405521499471288444111694581281523275339638643859630864493968792018225066421752455039813763421599756600731827080071314776388668522757484621396954131220919163684724401531672840659285058265750162213785125532072308474446494699141674527584935197691020859497396907354644035091357840748694374719079593944337345379224688564181303466628536126200572081385652436979855959989224711161209623804351973013057770215326233607249722069959914704879782609535714718112374845338438676526384743021795779355851915906335161420937619405824567228396046366843722273349987724860907463297842740025482214676542363927248576898695506584424289089218218548419476940483273581849289533474412632246928070547134996468775622846371312602909807001611415906187075249981578150645382832775213322157754975338511915850957227939928693251493881721443559886466039213109524122348531702492957766466773005240424648951390786133967726226860856371952693808954083190706089078693435968563094650425150653207882133779871948464779608252282127117298370375602814890855697564990509267175927585663325817383275594709730386161161899841040208087409827883909545317069669309516489900003300431919444347537048178137729765631176934225722988867314261088881175711426244329805648936836389379529015655673323191120194867108249514966268723415893370166858875876928723249634503632106896912767982517541979630330946466769253458074501350385954652349156556541456596315742321790436819004292246046139027912316175291061814579851177164297350368075514300721512627677009080197296234773111233080010414625865053972809997969045624277935850051326146294775053839366361297967465231257118167912132647119671051489474952683152071808001023827834014130437611794067770188499861414499103463220684213218836236764162039467545136084078768455027520292271914344831769808138073150353952059597611122155235861050181329351623603011411091852855433158672854909516642683313358805271114741562796156893012227694571317444741279784492056795494248935696490947808599334485800691419566279030939170255092246637187907176031237456098966650464172013994473210527451915197886845669899753291179056796586812786506081222573218897415776189246488668581632606141256835147834758728220128449101374988977022332519685892974585000466032206633819693544028329129604994634324054276592855467480161655499099442870494932167224920476053022712289879186869825935785700470267000776375037639891097537060969499684132425021616461902505044049983043218482937235813502124783640903202322022593748111292802103082052526746758484508709831893999279343474423942501475066860517487591151814658558194363642084161628266812905254781488337171150696337913126435729686088005621350405040434628166211350838510663618595631424562789980314373269348272827545156979264086548117643166506211231039368703320266204930299992198256367947981895460560586141041666622290837286845592436669530843944998573937809550635176324924092134828202858559917022516089653365946000843887030205049990770154251611574087980667448458422375524951976171331711842908342493389793407230385622762167241335671993294107765802811535165466724756784937427839671978092880201841549005951334823432500920249181582035107159816634612103697915285691806517156921633120257656738797764392858083852672696768062154683314504835514086254677524814667680884744059836195872789566963613104375355762609074018467670233116479559157778218078591503362439041994887201103256806296672893443650666657552115335728089449868431118644567614564354285498153597985010181393129403916062278042912033736495850279483503352335554902591219723802814964870092379835491797826246613876399757803230959782547343461968059153585763485139865684633306158544741827696675617096582369595723149679218083015989905419870671068189335065880519380180986049737873488521125404522635091767446293398530664631169031625647106511278805709319500140468964266149373496280934995841675821677131307293205042970642256530839123035748722412688820794283539750330582487532888387797038795008576030959891345606427666171056260508752640483175331875115793224786269371457376728013513947652683916760700982723584837729240638956901510080345201148193494711724011716159882305229915381341274546116065919646039343329793046318615701692182700511072643471886392793658766910736305545584854193525591392212584461419467123200769352731572661369872462474780702409089936439796193546359314594195265304713060517882344162481916383102260671203690166677556152221934315647978743358091981701779396514198897243710295237466182400384799711307356643749447828043551382503867493649918855507554449452583325216763979719237655571384148885905366648819087770473639730839607299009436834088865684937673866876533843989839611722344025570861102473601021820238895137762544915230499656582536080347693079655493338047336237221463161911013589268454942438641315619132422109669796565193397221603044568338946082823696482242698678456059068680421860394233996425485661154508469640787324501145544699596541401668782417650430399439927349154971980608436916682470930288992094996641737238530612441113980009741243884104947153152890102546076716655208698837224753526032691361722421268419296495472591350234726874194645283288201245932869198059963174412610250927633855343492436189403700090245596473389648348544184868113162152479439137822716893296442485311490002982080682696730290143846361033176508543108262164152479496301093089276624621229121949802857794115134192194212943267602422939546614617414840247825541310133617093871282243642177134101277644660234636563010242667695956191712303093707775640359061382306675919479478631325805807167205083932197078005186466329134198011468124332616139242894313457155625674943303972289042374541594196302909383349864171630441750100408482085624564874608905355729754430991894543933646887606245300500513219172485642648238148194549279355118385927107454947700816424345437032157819104983981713590563380188480539690969444134044166139677738757329004081393783949986331297465862342811549397322052533799478387222516208280700996230878684369159228236681440487035410527681034784293088582670332885861774093588732579634318309474002907485182290948658581809247880681641122115486475883146528861814097845218707475410884517666121751333797607041431664616361500810024835616709124062142756352016857868872412621699076286228969747713096087660270853763568408816048891952990469684883103262883692944825659153093450364468081140023058397956107762672722847259118951730072801116717431900968023496344263096320002088042682726385954698998279490722860632660795129444586332270981943843031879770465579741063956787226401183171561116785504838570309414476854438569833262995187148871088927299121793722359359232434917310991134508671522803333434457181796046104615829653926222796292287755373852410458486372472718792981490142988223845514468269169316999753553841394886904524897272551189764443144524441653648514969262258497988150621801883757306264431567757950024680576735044706836180809181042929710266427565122212635813627927842609818552418684944128075132696602030919828436194194824478487928812458455920795195594625419670317074032837054566408039043006984192718696071714472040436061715013415749910853624506081604289902561955517644238810626630123824725189906357002874250863094776041902054423671087117950959718096651029625269595977669541552442108343395518068018580307604817734592827708856969347397541876301686456196137823205330176811594189054367442275266093983149717680556485848132358995531769019770669191133972748727691418296604198499742733241758170513373249602662954493039832989840442249987077155846098937392331358549984400859913474625554603069773925531187310885085724555067470642243278428229232727056241274764840614155850977913794605860382023174353654883317568642598807079624417564702017400534780756297216523627730761016918255989426469104588887076155327209839249352520103982249400433591427396917709288250215454805650547987134285047636597140297613881354110781827551830479850224032502072034824732387281140026423527947057517116812612638499487465341277247376899835628157533407225885338864343942754199295628484506525645462532478936967510175845838771064958212247441087589995963307543803719448276506705020855315542360998492084695344542598808703344558526605048939751375559645999722964302245170763484445646211828452133681107066489852139899677226898067952992071984570626660659589226539105040175254399308885996030468262021835663212634541944668919453810390581129062303895050984109654897224444731667542009078004725743522067612489889379112208743327626007182696615761530672150348896947245629526047350145165834755216963095153036639701321433340211126908488199746313772536597248560333266619951059087869451250420322864996688349247705756646303150267033384857734256298509838919472041793562872769362292137437073036869804640952909285731924506105269309616955503365361173365510374524590076525181880226115996380771823277487366800427036027918692200879920110512787222209493254706890756397720544045119301660381648233494830276610236997679617600693740345342446291723395085256920118687306591678193058629857682799626463885775927565190935302578134348300730820060065173040401213106808274055584999817586404397270700897840259434402292429588505109645619777681893577420440658738923660439150853674505366292132897134255978916415610077641104268701312970839525045490831279440829977442737027285105906224487346612146938994160287188638171158354595188463511824082263974567229315157603785776294067955040888189341171446636810453970248845575066677419500244719100830360548939786727630282889765757157077446356409606241536993797391878649912559268659720433057871712210719899559578491058329709055476501750256194099000629028533669081287751472598544795057674291827842748951996042862895637727712047740299677838109254310918900830532940202951915680792767710195743820902783240590720554487363761354748961999337169889214608046377604159705495757468979503698395171842525016736355354521997549206145942491905413727284588638734315964278903781975951752210658790974573587085499981505080641137699164666000950013306943941555487887830179314395194127005893247245837146149440941309332849994602523537995561754518451881870652717601806005900481471231562965274010689956657265974533964827645175991854855695991598259260127034219801090999674321870607187038056605095891349926050074940795565880256204860376805595321245156806183298185839296073159179778393103366673204471941563060656314770254051772051674518138194543674024124218427536317105860781580360365943572381227345532677928613980006932397977651624240175438250698558133259727240580276113638579102133869363549644368096740619262724839300315909126019535560630203242200113927465334063940470667873940110152747183227158548058645773006654438192416203570391491163579569764861876204909536084524304872100246539239475157563342323714587539214792901997872164523239469919693051430358583815638293315597455686647385550117295240158952080025328051088020362780262613050378619783850878408753733226639996632902834152892406343772349314755608085904034761773895343714846217607003953311454301265071209063958946720644865875070737943261752976008224079348285488259762236757859458649768268876118582965313517244618737089207981625814068504125410486140986114184636531214861051073463515794514502857609474877209942533716527102333391450040620464993594845997253169748387011542417055518727310101016901472414532168700022665716399341137330912313293551642359448663921408964468074143898726707265212415688436372250493641127144986695711804713570202090258190399359474664397345773114922617988526667205159332953573462229598393676482378803590576635561744853704692475852248480563285218830943807061292346423964984277779238512535718595973367589475477561496002792573961054859805120202922115739800153823474117385380267300042373249817680020394158240371893950648138511865198665843375928394736786064828370816816557812108177522287787333689432901776799572731002757124807335760128863705110377888868473612384472287183942922811631980276323999095095760071714488760900294681345904547145930607451831262184604184667016251756366108222464751983668478901926666565553154319537921608836167016732069169459441846188839474564827013636814756026409916072643619134130445896529083708178160020404350711284632044448663163929100802980111020402122245204335558556648767877098790736884855653263068041277908100373417226756666251638127049164247134219146947816669326092312676767152632993565320132325367368063188061568359034606597815345673948157119482302980290076317557890725588573468708864178930740209446060013388340449459734875530271434378759532272229252289441387186208565477018700825856730387524786806745355737739480660278776012054873395183798566401779325212830859941974310634365160321759412218061850130478549866511580334207820792955299500855258544816510143192600960316324914101983759296420023661960033943382307100385127167287510714088507114133113655838468132311122841137918103248037784806131627165585722329411872451688190244094040510888774331184539417879721891791636400830829602734939497371602461338240345387742227562250145583639822277652739316556696169189494548588263781679805376527616161724787766351858968234727043979606346873491640098410136903243053288494283528006252978193520321712940019514849329114019567016361922706932262259440590515925391762828123003917652869829185685994682450482620220525521854114967771847746330140223061612128095665141189529957871468961858665571491821744953824419784881110238530869638527666262721935944706001514347077586733576740688513789594390242298370240256539472616996068441433704791164094310546035143907287049804997982530448335700927868770574598170178135428728556022695473387561994579199909914572711614515720261084893102293407037747875397314692688308337250860871078306419798601519082064764182961206939383486082864500014548895145070482770303399285821290401703417996202143903849085550597215192456129477401647754554625972901646487997105597471259792829726077668348730931639555663247237215313784384875216686016373629909818308829478142317723839658423045872483741538162682421238831818871276567017083327353168653497529988253880347780546410766641521854734684946058569591266084946736941485615965903108334463183265753529320936890195526958934708893386220368162233462715348656409042570352143403657752547039543774086082390006527043891701502297227153531699281428112549402073040032873967875973918746600628785037150531489360749033140168950534489192401396643318080151864691535235692039347162899746697045534176999804639894879944256255224143409427990998604920930844528320165982804539803144640942405184278022096796711878525917839630797635407025080604473492328699495985181117970860124686231210961019265369834120563941292583088969057122618083441447035700479945720992150268699970208048267588244169372218823909014049925666214799949511635667708305386135487872186667904777417515832985418437272759066962480777500059810913830475355092051108678592707231060289998410811479338192898625042173184042092429293676076428029077248654070930906529604757732937464088440453304765477924746984371235599065565413134125615282337411953093912867361695476450297649372176320160053710119332677458684366629497047712731685024090651966515670898767838865521761209506360209705452480921735304715782178784423987381396260617263077744117370238668561518010399130392919927999063318758957935864081009835207353176758194136723761696595142898302596182901002882292653819467202942348233102429661121634341911947411843310953021388287390023284401074835715176853281834536015294964667876989025847382729736882482748024663448406822454925171945451110520680605468369537841983544318236540296700563219157134921673166215794198047424683260500570549940263707012606239067410768601381344205725021415916586097630512387581767067304928275956577037571860633829357256229305731583622896469072891241693083435454396628457119164022001649712563848394713658765396367498282320352452957604179239642927314039603440896581198492187900499316604666216996478889019390153782735468250220308564453038634345866651232704741103987947477153310323306520403265854266400836506401204644421545508559215377356592379206209627540109602799094041881315197632185550121049857939403661221869396959990798664073227195130220718663483261911414195468360510261527417496885993471331966868227646774129814987518688610577716025989216453948840151299571361278511788862893573422323257619777322727023289385486448293528197307978944013587426880753717245772797801764267039849288432794765692769448036099769518538508489798892431044674160243521829384005082416503849520124717491694549802496178964395398595431939178763249531534932501714297784698087194712351244428551768958173125597885944759827284914736335838324489360076452589320564688549889820708835512997506932769780129303385625047127314593552653185089497967188495649365226938722752391974568491355103445807533775842545974693234366644060427457053561387568823539837239316920316267783985028174682081172823426125037331137932722244658028032560682853042328141243113724109908756507690054355753426195303767990855953993725528688209436139372883148759436882059694664432394657669749749731806021733026651790842433359415495670340426967523038884177424395569053202688120149954380074253515334805188606114884078762281478741607256683727589177575018825573840562208296213363425966472314982456116069295677147832786073947823758391181490051424040331620046070600769053652934223603238929101120703046875839589954451837718383862445462749554406019930679561170274473965446632360674237443715783491777041348683549966374861702524644890839592635906893163608698280802188916796043631239936887269739447171569609816092789612057157863567182727290911852479767920540879959108756361039540171194572758351772713621407092933508542149864673696958661333873809194518738154409533852158955165893301375037145851650953169444818037137201730233140917435603737515765727689038592275625951821082100207567385281430799685962492034415445347610957482220117677030590705419267048809690558292283767228232365206704685503048043114570799703354452279938138297743895813091897615401860193581857791597584392804332297153948753373635220500303474444111046634291128028456513644516388104660116128089357398443585546780388579848371212434444385865375939893218635608087454551296505868418979025306971160750627180639217109073735701544180638806210372557495672287451977365616195001641254549097829973831794067946677870159669739011729345989012298532195682292690218061981101488924879783416507936974904408783588408859626577519591280432937497736516544411327332080570866819912065297675251027945901433742198491881113328428901178799805689848956664066739533866693861892931735750031052654551379551639813275873807784360187440790598100065833237572486738212067161319147163873804671358856251433044468718105849058820768596759236573738191731714667257869132230949640245159908565711272950798442084205870692529397918210859841060304290536695889627430629671581559062628398365388719342993097172904862839375260006890563859261927666365306587877608506341391141360438751928144113968502511603945889654975408310141770310973505948049136722326227582159592367175513078446789383367657135342535141323804471145765996276065251080260352721221991567704857445199171478202488928558936153816377898540248549688368228940119675027461188286041094697911030634955086247539835121907032474155885546025016903430156598064938301420894975967545851198458566005781784626623468768065174898674326090352532591345844859445499115857548742816038227825021191121725015518926161396343069136831997026786268028926866696694172326648096327729107948919176931719984271108689788636359781477828074519612189352395142085723278778289936424000815716216144859910666186399564161026794542474340954578424981307825370989183766719835220253258561318590845840529600968030322034581988945684679995058861427720084992451790182642595578230513187581902302611256497540035577094479687609387242538664491672706058656004374844761058613263140281407176085371496479185894987970253164223946796063515486842377680988184602058525046068901966728165009736230295861300549293652278742085972615294658278148798392938547925709341170126043573276486555520404581383607859387184804251520215666245557218023300422975630643106784565360940681817505620220377028057632131571621192356554973946972908546087597776329722141891935904612468325085644057784621233351864789051349581250538422379740406062664339946120030761050989928174669962958466626911739122566002739283115069121348025145764122074772559602126756924061753152773534044447681925278979602108930255545281103258703856695905803826852645330380816650668414865642656417936105631473565586127766448981092994074893181322508940803667398000375705614648224165532821804665857498867841653477679498133208099896544457738486510948158885030414646642207024085473891027499431315215028582775772637347968830763768404402798835431174170414123001290849114526560061531415086645299569412221960342343027649764839673996548319389417034845649045320509978036968949939570206511152741514687124338534287199692862048666560371278161038794690501333193434117440651810346430033063141920307155404168123276631620722773505455734285938085765253424629042425707804083301502158922133938639015300148524652644876843366793156774378694623478109013914685695225658967983288083044485279333083577191645732102146238126070058437538164559300875593929468350916168677425324136967300371548988136990428192193052940937686723852823705281533200504086027978354523163949772080523732041459823489293377044856625450650625655330843119108626131881915639043155741827442891112292886343928609724644928948770504464124267765166746150413228468300668506754963183196591975445313708801140289277222458215262377923544700131328181328751600881740706506411660291134619406380886959172003954152217789347870937783707920249039763012653536264440775448239026041699374594075500800771481172664523173245099267631814326089459043445221227652604353488151559442038854066595510764298959029962718407298473329579340014690665562141851542001869809241420084805172617919902655174348022149503313128692552206915185512106995588716885778867007287494576852306552712259089522341404206567039060296515246883816101062040563767756998636443616201120384273069961824840824055626928827923174790060458919047010993619285532868964894660058364664737279077620957713492693882047571215438163385002792625524228865901993135828807981709520268523969361919617044994480804660879264943415958028914679090285257819189490062310046579831777642930758083983701524939148455344616701487467173918836250810373592822989198779748251485564629577943488324097502530772407491891050819752454297150678173821179229234618931161641629427116305047442863125147229339044624137849187088314417658122926938158977326627799736499757219815458387661454726497508956657005032331044537128010337755447742603414763523269482650110888500515239721685382564752646095164783035565383080795924656809414172392855086424425842788141531034000979641621933374525551799632493480128820601805522525378408685859233564352444156108035119697954125820592026662926507977317150832606224802393508233698796886026786041259867814539074175615438784643321849832030136590695588058403622711868653497197203413354483919578550331100435275982780703259996376665106222732178781638383585349400216481184069833993555615967832353687083367381936552185991167962883931179136929141845354966452102753460790908042979642312720694281627303178064529733764767717325572635821889494090463002501629861908524155113477878063605681608546281200861895499973086732087845749940686032763366930378631599963648521709553934206322821564858751986913202506743807517329749994835435023044709480906316012953214705822892803000785243044002040013431586203385670085232922451743096204832113933012857970205273072273892106204819371760249983793831871878124190384783403697015751884058994562246446364376628203381547274237044137188736024690086056898564319854155736348775876225185733902002479783204142167331928785661967262014392580468326170783056566187005902990434458367899421288676104800749543512486660318901389023156853083741241789619411230553049939294197020627671813907753087560317503947017525767759834512739525575476863346674798803745679018267219682816485383400007939301361172353852218494981742695884110316509710569879337647761341333029187183856663754091103584973370717776228832488122502685076160637689821119006562402376014598627858143470761178982026050427901511254925495928056575737592098775695485094652655021822166944619212095810070551431152742653421233122218078342417720660216521779102308980122960523639955777581084152907906534474363399223951866338112224377407176185617950902235498988746266303773553429027629072994373468357784523501638936710833950845513645496306787543548286290474370413051844661193311558439165159897320921547890942368865767165847753139188576567655513423876090206215650478214069809149780566917791152864208934720187334332777598782201479274796520972747304694529480110508802886480029678092915998486660126616105529081381050470313012046668561933569427745842501360083389252972293823041586435770287411527509918665559717057224768182960356871946227785484491248555033505793335403630993550537736731598660457982265310197233189685046908918732852989348306048568384648417459322882016693794951535627872949887730799466801503755207567409597595102587312173752523834753935210427132435670099886106876254280923383903035440824404057766188080361725022370125872945173374176594493059725796182221683770377704447708095928768228935343857308804443551373465915036126601924437771197734555980678938976586409090886731745426943940687429004811008689779849626916060625769330174511150897720003003197670392278851493188789846767080553171525519964309063606368331571581804887190336174958821884499780691292807006028053133041572131528261110023075288374780279011263148885156609391140815417353633307008304400895623018278292346635130304719438564110195453938707237691351555065989298728895603513530102792515390773330084951432519295889030995687111069572971679711385227381153571054814081992604430372372055805388677382899831199540847889575432139414487679928162247390367668953427743682581578098851226059020869763743701096323963285114326036771772704920473610805488445235863783224070849175045772848623588384321828451048010522374495217351893657123604329504120951308045849125883265325849501594086362940020871784807940110435340768856948646276976894088712582409199644663235082163710515301798470310971561408995920155402218874324228669740298198651032040168415519256392792863364029385761855231025867540547515368102681687875830968174192242432626447753622717285499889229341112826440131664670523089589010751657391988746410571802216677488290340982239415185473329797893423725953304655090223207422106273653211143449986524925809841091443797523108602040139109933825903366767533328638394746879765639796260926848231003902344729503282367030384893073094603609595908634567407601249389766427480013311830709119277553928716218537743609120188501323826097506675308357095412992296161740794935232353196875003934904911111040328283696726622736402698886043701571383768094563670854603889241390029156436563254192698817434233435939674452828647704229253668575671174520544939233889062721097808518392993158681115523783051407165526793064990169605251912011813859923965369138369163763056137805967107074304154646360777259901199784494704924288615043236821602059584684100319019373113952747178726163821008243765092819066729958201363361776667851628242838944321375312783311866483982363955702969388133496193500834500945036134016968967011234348999618343146957277268681297627116234601747341831791587988429168397299055453490640809183777158778810621623480054275317327300039884568518716522327457598751898891066846889246162583852252913004469932586563638706143263104230614825016294746975093793164667081678393257916242438162451714594640400105443207898554206182200455091296345660586270610306536410064437872150301646727355390197378855214082641165890214867114783026988745947865418205464546298080341594775218800730912347353749370998497880406781108787299083296024003471726590346535712934186858976332454408215058898203899716002559414768794552949888039249944519035706648518573735693829040105639420169559762779507529687916479836675617666415115147870115707006173758689567938212344586395377740606801587768551948657744549169818764167822165439551247081229391434344125378957626091653587677344428861626372972523040881173957382078802983824345528958690849416446996975874304639787405246857954055054217991291058869544386358081550470672924812715826238464831175750651234521009093014801155152974104828859710714057358407435179578862024759993445812042376373103637918714809041435918189701497455037764271694510143749948221130021248976305752594077268340434177604448056982821470266442908876359966547820269970649758022000051666356439126257356980386408606545088053179627592101577511703061574169478640517670114213720616782364888537992992046578838053985607384070651665921391789698037508008956011959187128532788476406467945065403818949980097239930203733184874204509196579890924261700353858631075752174784376821045261103146386356505575779530230315292492323346153303144162995001023632501389031861988770109076832479180271308018653207715986128170990207347860464495267321787369015249299747101696269663217868177561806776996713068515622061210742747897760825402192537761607927776476783908629199984691256866413597430906396228979316653584615392434950271152128320338827425194597569366099050161498780950603992042882424847998922085245062124486486314318618769174752801301784201320030451064516551404886218137537787540165363249163605965586456746559931356723761019285004849116057984545033769395865934906358910170200793762912851405804874545776845982807382760266140056346290282978477619922010851554197984238756084402012743268716790203912451637277216196791204365844728901648446557979750518985014323862179756614732336089132709888786028038998789915139578396984241141472408087023061129232501715140360868180858675658887185449970976910898577757243972080291468651193328329416407953927916612898905247926835835465009052666302501265694338294165679876678853666293844192757476890128422976562768959683348590637210515278185557041304609986238591897915642540442325037186598534700804329388771421879312166799845443020877671853277757690334456013664570262421643767681262106345253947065635732227758365385497856478527895577354789195463660567611761002038171169121989131509299017835809644338252680786533325710675529300770088522600616962873683586805973848115673650230912217605928440748447007895261800594986253320655261607322349733473466153629731014264222945107596814356141204303113282440725082990001710146310217046472911048011744273270458041016276986742397113744555154533665303047041124638550304663696197112268350840337030535128983374957568237181422595949349377406815961610665916149947144344488709388224457771892883242827234754037082142499518269053898157788322233410153991753494808559302381723019685996302894305186464703152344011312815373454161351173969062461564187711154598849630178357170366910876864675704362922015250611181345364332742797867808145420899368225162506944683836136911305959422360359724200686171806492643251136737067617737693248214124001614990970191207090255205349509790577422154889003483001269440619622914669594603002326214517976375771030118036285918091882485058438210915539731175354785057152280774193068653306070566941058663604498088236608844306656278290117274360072808246063559906958152842931533267875275785443357481041093037476219564391353772410703063963777582657172981150161687421101991324364633003304548795024334970569899262721440004712453266744181171100594396277545428648894849310806184590776774527638618156660333387846209623737816116525244088482603880946165578099246719886492896169063389657610412660077413757310650114969086012168445210452895984933120974120217146303579740149726607975483707765115245671501481204730195402752570102271900256885300903023701374953033781455487895204262578244358294853599235903983603360595817805369582597969449163216877202466152746274148335913759970213343675622633260617472098565170589674524020412619902078864646288613906448561421288337661640972364491789598714542079963869556964962937239898825411382068756088115445473350776798714697531771855110098007443689064645004204488633533703611519794770661236606341282841060750381884185407064615544134334419912594266492164093897325659366126104751562145131731185876629252492164178094837546460412644413115783465913274038268932871707573225928539312992712075916679182251208221176677753702289465073047021916854443408745349913955372919193801709941240264307672710940102137127808800684802060771708547848205491718246309171383685428891023005532975812311673257186547117925769158726877708097000749261575071531183953135763349650856140282150950614359283234584668649301226813557146073993922233947097381579969364940787947598741582392764188099787455785005270636222208095595105634224255024695218542253412287329195347359545508852761087842639058335736013098142084806258311730621166407438985734345642998606176879028478952580226279546086836972976256575564714884815089619741213780352529246635386707147323057256717589127882667860199920980168362415614108210707895961119873226204423170188153628067525882248756370773436984742033826220592373313770031687790192416679001477250293271445147044888260987128565054842638724812978783414933978193228405387431384371581413404793798330821963320078249819756470908869863267812521578457877676296081671746790839705694933002704394284537668535399994023100677351545341036926335797284963226205695966354174404156044371407782942122938303253259528876050290171267481870655056235783101619058434805340559779261768628033088321649527085998828764433091623002448018382694599671934925409055645855296237130840679209168906733703792230003028148778233531950573116074004070103127982304563098205978446300980732793698997493549718736581870926745974768811085100632727110748206216436569166784212875687186255014214731104393372594448819168480181590232038504056645112718618498368198021138935564192759162305855032510743102246348497794357535887629240084917205385232175982704697026728533919211043681784193441608198833210358446488999974993833202173504793859057244903459974624821855192985002764461316900465567131871303674523572112996795255440005982919161044335201790089934128805925430325139927747707786761297689051565473710635634241419288345805609450631581368239215018331303267315397103523056389465744361239114983944647627603133248471813337170994834928849287862092442164672762597563282191072855991308674315547943826703824226828870212740375228335249214870491341895582375278915098867409758118946421859068944607660655149497240574121316341864243908711958373112196101593995152984278408128276972762814662032273207900136571554699317251371192409608126076068645401423186673253707645907413068712977341780660566793948645010499367106835655332713577885911816423110461381929201264296070759265612018361949263283544893202807378596032569231554289908294040288577610284471651563353676709370826579160059601239729507841248081750108761898281283092531089304724923699405888013210000519183712242652456865920697097696539387123798570371949245040454164248312999577254495195708590012644201377707099813304821493318646444288747633605040121336148887731771625215018120446698447075923031089412624700141684533047819712933326507710594769765073424937716918690605607992832199111277830096628434311861384564958859307438925422742268056434905499020902655024943569746953691717334591209084704207621810572373908532532511153066611443576662798490572879045723500336959369293146334827949996273814026985075813185827894113077265238689715563638898662017911458922754945280058350235734032187611779232837679282959916518378236538999454721420483738172328069076067233238444579868986779041730612234690375635245624598783362847155498541398411094823519803327129277884375547948839451876623569094803968126070311988400061037701189068744765356213475278152717461053810077302924666833366972377647004042076018698417206163806974937436906232261053073345222065150984954957875266954660077336547135919092631388679802957514968585308112911071016552188108992584850314424922728275335357179450276957520811813824364376758271868185273070982558730578381416932891454944847295838907912780942662031518805717168202513240997587342464871084081940711723984355751894242440104726610113375138954076953357697258398437881209043832648453757615867025232210548789556425154690874037892152015735610095728571449379031868673567110007115635945387848821400799879442380502413571041321094821813129060276116592850999423460476196524332831519512034763481434216078257637062438385322655802995942303899139732664696749985079501377293124809062370900277847578745849496453901078864604349515005032678220730032211383510819481133154076329859941602291258669431787667275649817793227861398914852618242285606456447658273633795324698616613485797996868354346282182827587609501201092980073764468556382095319828762975970860893522264546078332558011238037990592017655413070040779673635258543719262702295202623925577148481526458976278592846564634349302860442221154235027994961683109979685112578200655494191639159229077676343430955363467680580318224180623991983097256495540390235519325646886933009443944553055366861761599211536480066038004891877713720553717490598019018195348751325110351756008021650841218767306485955110336505271445809495758032876135559296255235647325607824356870971389230884809963935748069939983311175924502536651977260233113001458267441161011225078147112007384682017245676124410885363660448255688345128607482032217828140093358615355133012050059549977302616341621459064978955456765235554320347628596093519511980899316655964533468583009647698188638936614606977350891944452989444725587501407499314146197064660141727143873937445271111875833642908935515814989071244204943686575505832261116397388851526703333071791157633413678921369493655005783002486253521835155534728414736745048329568348067369539775669068510556674323304119947193454759536706773073615795356114828743544717840714877946412733170820821429950803283218808434732484357104922755103772077002744734243539448405850803699353348732775452440538499590910443610741833330868421966654678624880043700143227402422155158017413314992324635302208435018860428184176225904742038692084882717323754437909625532132004008675509390138124679167705670980947926331174521171204860244475475419689600337633899566896137502864831476989788090448018834326285072013392792371198360489303292103441277945298667064814282271321450956207129717169509259709834495374610421510705108451021341237439449666902041304812150861717143023711975475048413335162338981276966098301998903332280463400301891662768059395012861772628777509934415891500515448826236234084510520300692051701536852094440333543075074824565148876577926272763750967934176947977673709866517339556522865053279347168074809503296001018991284979290797023541540929616670652691631483446990922693757271296423454984282774609014514888734431403190095690562658990692140471635572824005653503726756051700916595634959797396615319538167074635488993359172060602542579052695584157151027164233796804813323846851961772222437063722679481538957043544825783575550465666742127934710021927114694536346408759298881448404967601670433472347271995231720342376424317460455430925418652223471802227053725276153368807199529090580849389436801626881267439444460374367155508439854299048137111738541758620532532223917496884995776741611229030815433839626237526227755278380146842545793254434702148380077856976277246231875981723242325009753767698451632270549759439023330545849226193145990839471685186246441596640703077755139240884689111489029891627117033597613318110623472554526436966683585611875725866172225138705293779788070521119949022548224721704586265667625757677902234600061550081851907884243900538907725974682193186082843948779102114123802768594692990649592207068952932117026805089006975846572639630407523160956971676144144235842288178611365269968761467394321357794923576165586027933729991013021111115743074036539210007273348071405702054193021499938191387217841534633394173075945851248391161666397535684192834599817352940071287327952172726249547029738862387064993768720119940536341820281657279667070784932719174738144440351679802079803052187050941957061003648554808906213279375206599768346501531785873450668721605291464173955472601703071109527293062848319537112344428397175586807831178928709311649501213968891697774643477066885269516772287210576975870420234276041722584751332128464939371155982315800600480728710567886213145554683630535624604726308754508515998023374947940151521570406532931021250782071706695667895967427809051014776823833503253382919914241596862930766062844469260492275996738474242613512287259321602293117584091755548299128323621485013556962514542636665891368779546816523694366804314157755805994531870810109255405256248140575091875492187672965490194427904377165623750978793303920121916122927726090100213003423168012426421070085761531838094432202099604004637561138276220701524709015865137091012812415880682193171076520946821378279927521920810509783032801128130598137953607478622314838417564442208712966940399043115417017026719585160076907789723223573557973983224346193091755704206005158111675095898956731419306222125896557084790357732071099402103691036679959231116223065152448039030238988672688036121647917460485248369503770398864957532576163660464099487725180265454674709894642423674580901745586765162512361276379708870995692582964391656243524592172485106750663080277028758552420825557614430413008132341290594507502833508628842572505809906484186168257179759719078844331898566113051345750530089554573026105652199381161335639857765277318924074546587981632232977540143541210437857191784141688215026850293324312061683757081756797102933208994003742517705307129061456696924486856358363233031541323189800859241640895054291943575309708932033077446767565907862674602094564188960171909225821980583382372528672697526134367679444855906742387684346927297978532641827827102854892065795362349541993102600435353614523209584751396458650322940241453944012365433590768496730959152676297404157760575882707918852714570776932116183268323341309257136796078739104521351258891791821431492504799951611884617326800366537841413148756434167773685010534694575630042350678503501377159550999416470996495284742407144233617502092114111155426542248934811109995964115184714946053161430156331835239489951681027639961074114970938083616864659760536196965402800308198844635727886904259505750555857063326202224122408337857561444391908413973994552096743389331696579109281532129133222411733257692382810090252684029964828357790901649102334195860459663215981524496356905326871260258733536667897437956353585144407796779801261187561952833173587965916299266905243039219093339355189670563590283611526170914413879453832085462048617274513397628442368476177655946197536812257990908649325911379857569359173473955353637813392434373455490442201603416381862028449119660342926254865555149697777672943610952426176413657024959479394441765796126059505231789656463814012357919108983006982164594511540481319081021930086747941145073188760267837618376875719386883798465557913788934390476313463280506892236873131301410016897950723320770367507100323755236969395161986889742570904658285919581314777988886486707862732714295748746838590684377550502100823222522692325638147907027855583139824456981127607303880184331450318051572535969299837686429162786858533163088221191154243903307698348966093932673273758888584432898409368069417169108303615955275251627507500740695655601755218902385715192236005161634106560657644909509546654564865888025044726617973400474303533176593106655303340745221360520699740923742409153934558379591997261370615320734793459847606348398300295240947421407932181863376029345041130543438031138653573528683098427758613094595476124891923904020457900392529165080067960666496865364292868198321225728722125738725703900017964544587459336010511567720304491223325938404012733238766832215498012461518373242375615559353074777700423571294987949689121394075169395449124869362860426760220676664598962336140182786790172683701974833664753117270264577424943608147338677380681567163169668392331060338685976614217890721861646908102432063539480477210398625687161614830661160220467389728466117082658458517451727061726487697300527772884326329215715598714784097688099407437829665920018416475722351907654237421801596326485963103591262496473053305300883699753306773148679236515501160152841002872102930868062754216913434151881539684083616111901850525077294122376697450040693754903451945156732790528577144606123143252851700249737948066488527538900861877081982422801807941590426765248776780791936818793799062871977661448335547894573999365646738504404746826519022553317283262607790458234332744759515761843132617757756212623672396673179961662046576607739711964224617582807210466235123078677072011557577790529541272081195604557203451101165370582936756261973883403799086901521026950622227427321505630807049909560117516427866297549845556645756284811768435424818065826765157162643386679797332931169092698667246465100495011050004102767536830849493742008575513487300045216985428491870702687000813921907909879440667660550633871615233692268249256981148957044309662314981556112191850173463937557792580927305820494065529140585044510624056546610200233411413602564297030102229895295781667134369394127785248923609528234450186890854733591017404222410686441983299246316566317759205760875720090441753697258604213137357156377407569414802306904699132259009551464718330897592285919745305624965891762564558390884509147898534109738559670010418176376678793105239486922097259585095839727740249841469677963524555649191410277789060807279784246833291440229119917317606267909711621957610065700408082126317791309211275153996106064792405909976095675029502891633251034840534847596825704819689547689645708802211436600949757403614058925056770608312008419478220699292468184048270359857330148782782872200900770668932040144547533762296288487250996879889254989160672520104477113992891497385158824858514389507171564264920783446312416623633597549401408927675828497158431810852929447405582382332729828633216825339334656562461807825063102519114595744075438260719134205670580155103241398479570846365541423923290984822375108900952472517253814093225218826287265330172545189927535249399126980946057483464812210608936049391340564561370604667281138092941109458861388072652028906082304411168320448844414494616643012886405105245912695220848631012856200678598381948139388889423770850570385741175776271881527728849810649561454749826415343276498121074505512279924743808658150125359611480287736815561252716106324760661188868584772206262158128953082002689167700409908342930870987728132393210377344047574903456270872998073549154988263364194476986621122888902727323935710316707417016817967606046301329175870458317869441845031079562131898642586520021483973253946411992482647842794889433521022135346649090875421993328510588457544946297114934125103720899088156282985566762047423901386089685185027144578872696808493354997924085148075343438757562954871725253300739586428040792597738766962647595326200542855930255469875923321948182542233667348671764426524527933788651265783273557029899862613996447294421162825535057180027643970079489792079736698614627606109205989483040533770086493464258245539673387764783983291201174962556048209653707182188339607487634276635353695088502706447224450249102701858039922849953930725099641450224698692355698392969534249653870402282661656093269258679087295191122203558629947979164348185626498088607733827945386587052416939904038483884660358130563972010623957198601683610104072920149721778333664774397300623298392183209762029229359741915354737966111084468240277358541651581509948330342689570378458200799702767417914515993390403695220207495042007886303582357894293290339098524390876479552701354836478145514463131776145946142771294863741869905706046245653359041778558475082870340704340820452271762752015283046582426118250202450340819251587853714156270458997590340571696622941144687991907296308968052548825361334558935787634205050160512217780861284199466475448507378487437203747705937356911644773450414807639774432163682182321105861989781522622036870685104392319661368105694722891316208633871304072934983923636686325500600931448962771217853867274395839248065932731295505926774352671493226067338357724485678910718157979681646396437943659781334132811609298858236039263348657551316278424722458297499867679946663091260772056606263711051647787538419287380629844814747264272901274755949346162442983677302780838733249390379158530889199716904718112918935130499691839490210800301335251613645689727540481610074743366615445767093182096711350532364313856038457979534380871067624915501161713551579217644474584285877226497122352604265283788326964116878306777274772933984276079430769628949903676589294858534186547500261792306299753722231219018783554427581052908304184453237410551573149074816854820540182819338692632267386937986451843171547049071627710229922999896425655121196670959981881848567353531637554421010139593535739358966220315326765051259201297925061024209010782051498210896079898858100219919144245656595786913630487213280517931399091776988950948771050471525308423746397324804637043340963348064362081091438869181395259958702197301144136175344366775535758018664122989810887399285116089387528434228037443573431843725913279922084047483549954743478951357410252678921861958612534064780330322352322859754400919317977226626362001096278633037444175225009765285539442126935744746632921353698957370366849848788805961709474275435086233782419072014271963920981474549356493726613046592260158192375321909356277398360139967543866189926785078683585001939136179990585909885232283416128095795746481564925846440759537550831358567152471159361236966375963874221586615530010173074757613514082033016223681907283700922576369817320418436294096931628065235514592607759336401159144654611463712538463225431608771988901274600445493299130258734465532600446601755339443992484290398304323874497700474386146625114330265493098494256044050444096145230427515314165983718698406491036153576066364095689534963743685047592950076564337083334956181575972386645703704682221657866292405753501231307699169300780918795544212860994713738511756665465656326768501425216371489974587104013808700754329108261797741621969126164050198455403612671968725311525613343155420642668147385914394863062938276944615965015057361752794704404495239488203705254902536142201599866221471009593544029873782819215646552265582853363213878528265191775576997106453894153023539106185673810730320981537864611386163765397200153266628061376785004688820030961149318300271134288566673192163230775656190900257681983630461122820697947092921240304892867808362865675611976627051402811488662387423963396178183872267884827003142365020229094505237062338284603728082678931900631365846109054486859851598464022750011196290153427258533012848238473570004150156648729382375982088944557600300436998081093540791515941418698916558911297159630923801073054698020618135377546063635031207887863135536652668030211622509305937246875428714204041439917019066957797863084756291530322014201897119170586349238703251830117788634540669718378924126482458421306620911590051045911101185511925639755195585280467847378502502493258309933851513244805563749051323334877977877587675098828134940659531290090909016564033090501378994772251042751906523156126917531258404981754555979943531860537955403002276757976457559023056170690528387410272774678572744544313350392545674530643759495034991064004822508030172847371886229392850567944255233425930674879137028796184376909728499998306926804847980257963909533699975001838901920752788332104148879677909291638015299316779258968904862135208104075306326396692035517198872216579217145334059411077831592627770261689317672006001126503389664009151665861262688257002075052832295268552658062108847155720331062674093812764529342113375559330126036328574427720783045246480723184119209379601629046866579719054174516058157137011337628469260325609348838225310859923557759231954038648115429449903800816582646322429627945043641177138502389147405998118091883607959439692975749717222636318467456652395291337704643921667084342613764830680253537685729901090031296469303309369279936926762920923286971803906182520000945615438721015709379725093808096264882898000782851253864838220993136661655604308351985345393805129461264735760521369151813548747390266429667048327186100671248379601263910544578156156508178472377350066533009313631664702332584563535481898119534765515170028385999891459613339453887745574882863797198967962278727835723610955236926890433083964812508719324417518895487793547307482003757161149416682574096756465239104383669769245665045002879556849048113914070201595522552939083632016602280282532943803397873995187558805771414639737732074969838776458119817993733418430294493231005690316234450160133377594778442900764513576222548811033221046792388626507587572728732037033022122123654960287288282312804999452931030735722243177154358740473126289159259600336176055503189276333651475014144383503052682410310294796989580139033142991513938559623186901762920061473696741428628061049110711467727077865427603498991819334129272910098576660439211054325796629479042375079878997910512531281650245427841306100382028611774019004979445188221909467210171285699978935089469932159589871950892996267987713743326924717895639107088808499713737736957817668422206379409199119760437290506274289769982056600025860679354820692107419623249001638923724548629942229764150785193822172460239537213077936656712415194387168827503196166071625723282419853426078122537009094785877915500760005767280824726199161799361958796474792690635413817833329546707385007789590966999324868890048294469630100760852833347850456458870870250856599691761870842233783938568431116412981825452901793587207695099766329949850581570365563638793635283285320568266229022770806045800551001849798082729129322463022332348886895466799347931652343665630070063794117001312181252252356439853991568596737785646853371271757434013584164761708323432506632850876322554354175758877071095391275209019919498486070167188776932877064047930773290556364095988209413017049450778555343828686149012631198818045297532920978290862586945898857031491691523531646536165387789614233628022280144151859884449951365006134404700771818977441503242213864155902421870793004988764218734283190786534254699744753196362793630116770099310379187183265332510100595832507310829240068229787864028821027242341954977833619440842539535544265348018680851758400938812632815152071210331364915334932822439824011083441280750809596747851965487204902218059097644877775598474433590497054676848962479893890979985649746609773864510907070174654970796068091595756149826666109809288964961394919838464005755086752433704496014291519901288519575115282996835185468823679967661400827251243218570231903120594830356087644596023446435093356402663472284798103650923918474214526453196033365332660537461200393258358593403878764080745198753024737178038562243344417745106567311596942041560728079112415528878628019929762363444401896214414473507992689322486300451162956314791342230533750214455309896447278819634751005334725865654749782389424042413966787011035304881515974936821455705004907426899201506385394722628220108608776329288012091117774765933681824892737431666567161305199602604860657042167254049671249410529935151988908077692218370299936129623356309097957073831820182936117006727673932763898697330943541928434938892800645402647473518014792952099371386525041945135174677830206379542513589086578790202013211913199355705399866641128870741822553240996989523670591009139419576021071492466633541627472435094246433153438195370032520261525478887127175189888345427200245661081330789714805217355062976707022351992266508639078114981876675061013143460840537120386766783274586831385516963105896417483223193899611830681261543147371997638102614418497794676937951136122237525006463576128276305996560488199272544046542819072986501413113279266442053808749198965894629118950501011268646808232833731023053398839465057974567547036467622859575141994957991184134904520318312627793200410385441080455345604594381341948716242858250283874749900484944378490026297899743862331725768589309905329153830112753867679072234408296396750274262265619442404345683769110544298503221910833489337969527406316116359010166476570038392083395383497212649194803703635652088845727435427482790259840144570698567126331723415928252171579530819719464961672690225469539676368469487504504349650039421396783007344535559295169570242175124796054837679360643916383844394605528179567786673565489108807294350265964369915804412762056865328979435039048511240934593820198487736615991871778060864314100172857929859834772431240169554554228551464529815479562888369430076461115979981080602088301053861738004562446198905416568675910690048028085776301848048038710641292345561558478433130570523977878859790232970844463061818858133165081189569805581727471570916661291169051516320198444033310972040702169282267160796776268673878546109452102518923433763954088793622396867651576693286985784898246489787847510333296980845671719294571621569310225496772027827666125134533687201803885487818390410840611487599837883948408789216817387786774602621592159573098076014636991640935761770246788119089924018464285444653626283106892163846260700378138307500449186618891804521003542261130652556810451425806667289020003028953901532177592428201866535803453069492017035509847603851307024578005281758595081170806365250851931069758035915974260102072905383997667444672248058908376334411194141969578851078993972766799374376469438028318847255882398203823915553709241592018522252248347568633368177711243858998065230596358572311522676873085796347962342777164925599586750571332719516116137618351274483641398854734683656371082514395071678270289378167830250759896309255498160354645823097198839026401815017059450238108109952388425693083143013683482660346257373574903878880865824167976759100741908740727318916574921813702521808309977298522698785839706488908916321251304914708643934900588610554931971223924241358646343214134490483977481133862393340442733941592787438436833830844445819815521243679539596373553598505295391606275468560409183193438569400262204487106330054672835988218189971246018751396038361920309896925145147616221007985098854030934351156766267580089926599620070586656664638954272255145148397822762525939385759294077118450359911104908699278414271491463416899418844694524807366082763074028949353901892121297165718934767508732356405657068160712964381108810352912988109400356778412384459200949462116925738514508995501674582477695650935761141452917609681008054521401802532133720391037019406002872946535511691552114388300743557392582098430653867099184377024835874740981165401510104098914190393744816319083644764555474130814979570368335545732269684868899196160150214093007355724805922977811521153123695956298965306394117374880423125486567835382890048532777476765250062821838135406995524265992522358659383992049919876165399473801837177060888040467534177641125181792872054609547413954237364786223146765665772985402038342064663123079683693075775777667262757141919893684984134170818470221222036871169690131481816142718215809271372766667362960393329805377196129822717987820855858807347489685724063769046981839151247380548276320625394130589024582730986158910353752059098408722382652749997433249305809418251863804772054862575601224939512781745306275008315204631180326784144676137643996785988229006573287426227758333704369142939182226052732440527896614716809748538395527569006079427562318056785208547300672158782395218025483764366275919249537987735249912328077835586797817409529698462937690771028547268174524879040565177521094990954745990553209524396502775548999642335461722090674193386275745319197748341515126620168182731534309177322321811866356634204521401143846059026335260095601120952924213883662182463645119077798844694636050370957582578960380000156738740106426144792990993613723158183114699276642741281975395276799252215346880628895514567211223070204845690554746600452314453420751425724753497524610380746139171788929997319782788555056773126850767603570879188574436933841779423831223248483110977200854837353576637166199681572678924019265626546814397830563790147174667109616515397914527917069513289717042655824783618220918462909550731034632801545683165380127577092857864517129894857075829079815846100030279151127444486202476230137786796081681750546913197527805269241117827971230826238802154026812017851998601490341169438181716423117884742996415198289683802281625933540881071148202949680446950222558784491886464806874210838171353658052574191653930950727532612828091219427078043817188301044325773696316612074872255395937775616385000976880535652825294530043585610232202419504476789788793516013937778899379032615008041746751940573360530268317647892860526609039510640131046834904984994804324603424541040190468751060002994621127959322203557118526080209853160999065180031750210812332951483579615378185932440459356851450575207813665621512737090092185740125572094902192416483180675816297726988991209604145948432203874358171024116541996698803809283176484323195293532217459921952818148923904794857752620221519680762794006430886907981055335330100664185891019319900214574497359508882086886002927013826592607770790102153010642354222513360176474611981093738132068703353310746986632772812860640134270007816399316647854106051937758879814813088444735210523989235311001953647317092144506809403972629147451140201286267575231869212858554699510778816870454093816876327637288445876100265255886015581015458498994418715473695804029109626811597220445742346872247757375785225997061642654445948993417642552106102889029724650489589884863103432561895480304973171704340972318848093195889959098928297360211168715581534005757220515335007254179033289496141840140713177668402413743126785844393983125073794073435002848297648772047382001620677920173161550785062419450166347130182480220563286363954406259301607874033125273384067620734615840301498626590007994872902107479353792659548171781453985153901280446482072115528037533963425768339121090996641901744224075379651389113403215373520139460112353641220868967553745476697533000854205500354120548691335379608526754909556645170452395907386169512406122088203920681338335287151087338379375144057644135221922754653498418356453036048404659456779041494839114285068226085442556805516535999026306817096478041151043398727112299525931593259514871455074901562243090638259227426837661088045210792974764400276749500755334788995615438259017390017635753609910765319548560912561705325046461004812233931328838291985753239059438749637474443428958841938422767553363332096421437928056677888325936135206176254517889307930089611118788244564071913249311443343334052186211022385778230389651351490043451815120274215203270771925205660305243813064501080097863717907526985102793403951362988277673733875509478960677846500914911791642872926559998930055350236695451853451415794887200973379767287506827577468676450592080446664403099368413185101161229469856313404726247985086434098669322404764272800968730766659431786461619683289526068398812795615552283097960961143753462935634746175996441448296966459398977775012635226442501888184926099664482619516154656180254009763193120825827480863982224712289636665289851669013061443475669321889184307524049147343884024112592574789493324878963766093142866243802462577274276457188012050262012344624888783694408026479627152715878047611246294179221463504134891199825420647929521392223366576020454976008161714991322429186723900664932969798035458866095969900642985898260782530731114354106004250113541593382871773936256198597036337923726088141274684784610919592744111233999631145950400198684401482597511889923394915793517312581662466511245017266924106860922377114536154332400974146369507261115929384928991469056118609539729544518794021098799724143912707017875529820757623833728690420011284945996158499882869218584667400303072669932702079146610952462359722008520680787823119931977511299448028465055859172740585873380253132204882156245801478270876981958506113068207556349568291361783700337189698710974486572747806654985595754901254353983838391746510597031293098315863162071207234597935893018018194035296281037222926795496920961221625329263025211070474776276425278383992334842424440137048946962429437315268051581214769815179236521784230271970566852508576680443064655556134094854589578131620304478051105756470658872711560024486701492266723963345275496991926153579046339721735996608460763032713663351649447235436155663521875202243537756587472109534928394198128877302710253729989729956127957539799139984458447306448264363202782290988486565679746040189222973599899128474810344265320231893779726000392331536781887672089097609506587743837975634812837081823910651211503020158970789346422065982895329867121181835049642964856758976884065160358780220822240456382187042257120015616163583359687285284863061292588037799744350900437948591382597725270416091064203670405736303801001629939662025930715359851699247242113901134817680226130199723212038037984163303623213196652474830295684515011029413527113190233785903693836808686030654435486283554661383367684256796000080609846854197935446272281844967256507927753758631966605708331681483167800200647932221509992224493934949838705924545225268492434277399013245839379411206838642216025951412789014129975015899748517386119548926103690153384616005368629061422884186075635109859822460323388190357998151473721074754303833856163520886004007706780884707373748165093984948588315743314669599139695889513139319679141815826271227348585886113320084401244792604316100320741483170638688367102838958429948543431456624626779965321533458814111610795246912044360833076641612475130051038460916029515077299876149717900703196936024147369898711377913728036506033724992910363049214650916142467426442785602103523447491414586520004326130017763127484345352914646471410893715401272984612917016566676636097264907840786153312048268292834853788442288131447270208358993050094805240007844020832163391775194908698267680474237833821495289335421554292992748292290179589926112676956634760689043435137381056409173117930368161179006043575895021191320480229031978596815116612591907006318773672088773711410117535063742103029652559540322453193264614093929389583698798544163772745963994809034641981743442117576071978359332865221343070353805086379227285435684432555997739022175315914583112985445270286918512915232973474553435189685429122961012500931194179595595191178382053435487469791341853901407539456531905002978415821783245757075199801671498908162962897924208318476780206971939900235728096526899883475859245454509794273912438723751838219744356099826638509652669494402400030454769108694588073241515979467018426848787146983088497946293509601161794340579469340019956482921464231371693890095263972023504904725136785160832721073131866377154805744074975618299731395298076908255398853189382694413749737460195056908135324965292763290275060772862831555401299500239931604257838663431908770616705022967115522643057361168733802392571245199700035368356780893225469487961445008207162379631418662889802305133707672263157129512460721580654758321661159212162341904617028255662339195854837904202348843576572641185930999544302509407252708600351070437516376000937498845481993959367623053665527657023290045308850723226088741795379541334271461387187416584732077553985840070150465785638736637457910776265572662963869026792331871651605868297992100677823642150249903267193851445784212104008040870244114516345973029337792415792820493952669787307497638660998168210777175426135971040427085183733629640185259899969945219072114563602757129084229774716324707720253520250734656376779994635218678230644074717946879687555643362344672023021170537004521170058552471128896843310546608061273645323321379706796031420921408164286495888112432423789637654781222254649612715499438735951694937808287765236069773567783299091040096700651478025760904665726320711026168776384546094527757872587255951095124776896689360602448033178711672292373105006345877053302519604221468052511211542733221110129385061500760453930931282904016244188126612919140911466566908831177263048053293161802062246179991567935831812603927497751308582160714190201484615122468338380756650978911008128280640055468975892768208525852973311874767481473930593257605228713633874476004886539100129221546472607258821988565251774647070183382931884756540102978468608541619467742142349736855250210827107695456361531902366928957511640544703971764307675004493161168402477732337048281646151693221969378241258073709869009031005268299947993740826040974475332627223462485143751930417920508589801073688772278988976160748826021363022176994874485512600718392267177728684796306975464318978222692394032330882132662633855347586391745139810902519313156693419112984817791425623834197913161269319665839284623462447117658032164960743463881378778026272235648341291522213883405634703797707212526687562127988049078798679895188513501437686736006551723955491044215981727540607252419876229920280794495529404594521720182563126078248358219667510931729772004856110964260680734416132832447710462905673744326615054490122203934871028477479445859649375244865355423970526886552737723964066726768108833302154008806730504797371600634695993094935226142677591161209021456793891714370967558543438862710682139532957419017129509764850665800346593288354791675745831258908963896619592436623343410867285704585663803663532769219404570664243568869026511059558591226524694244497733720805034611891881586303049037681300738936619486422842240163849524413204345090186598875871117708123944016650341107373004515171281724745095962091365699696626807255882195949761120240393869346863148662551540694161598736114787731186784420608361496417066903559488838466536594335939256128318035149242041985541868349839093652822796916468805020015486853368355378551146379658308402882066079183882581110164528331959050900974600386966056516855970688458314539771494042068307849011069398882344157349781372688192033519342510752233136982064342730299316898990290940693096130823929396578580089423727543583663928740363974006938712102898844952885138470097884816294353292211745686116548903323470078957941931297771938707171418124622661509117139393366099700087498559490942493976590198168713529511193205638436054406843270097250664065746126570297854969586080433901868359434344405574617323446686701592101838350856118203413617201412773580036197833852710748719919436282983557054584146213041953757336622818599783889247674005182098666794846223799637528152191999643634425909859731035937857991242164451475582285999774427677100337035456192621959390493691790715187697359886540410244025887584764247847321596815188843472234842813483606124940834265709141839593890758387768398565088474846723558846687595887868713281017762627146115992540966792763908689960818288094676977790304914296291659338655022127912698559136047011647944488857597745516024570358042563706562370669676312674417592940057825221074834261428269451805348527257261465694156765858722858283249370479393584958781850644050435009678144282283618270357896481693694355373857107446067427980406181508956412067715479644647860198734030700718822249580524240537306520600245787070929468920577887029480021930479643348016128071983984109169914601162427942531452778548291868166750721902306346995622634515955980196283647859326886041861614514492221884381282429818039872645958545228699171229357684098587345854871665655002766658904295052879937067686475263525994400920488626949494520087116338485357033627717492906119419706897588789278616174850957605502472555854321257088322435660322948545975981276909424474773266671976210886447991156422162421087674600250020984929491635536882380466524944478922124688870293697812103039151329004709206965940280625625705259849313619924125566071552635289184639482682099836151013440544350253841867846972297469123283974450988761726910440173080846435329284218790628636511532387485075285938928027411107479016138222985496229453366038625967221241742465924783454215293402477628630449663067566941946104179670198723082129715349510508298085858770651384773116543851490436929431353972338261027209233633522208017122616452888390167767551488461399824083800310720613731947779341165173853105998687650897247425436034963280146426664661539918579160353676419187415198048477995037326045917795982715368854253980369161276007746007544183597522216102243128025664135166941251698358113046426256821524534498145589083951444617009886644047340626089216187880979396073454956343069834559440943788257654996517342615419769088260105792786480733423301752897757099913894264663298379343851038892206464996719060521732978368982617981160975924613250507887878310889170435461543147079905899947216118400526999167796262755105610077398991110978626609918301559071349367202099849796629834099384205294129646413333665949794870415973913276478104356014297192789917468420569839498352577311689535963606731646170327984846136414246053449971418138154845516112720455777937254584456671468734079143788114532737020871232838429448095411506996851868550911004413588721758994277912701418613980935226019359885739226186196689552184502147222700631630629470613815507078357407736217337942815857556114540700832266613578672838169248687476969847402759951926068984396081083094641773746984631974102815114346107065911320318172602182560422128997151963928863147551868807114572232863623363650586676795387276329748874319567422228007038856607463639185392568166248840978572772514446455206408161776086661216782375878375530577678617900039618099091692253956987032941856401413516655404596093000479399384562955234984786765931761639977338793887739882833555412191297395544907766094976843685918842772133980480261636680115936320084167334236457592816757057782482261583744841812170553904271701432964633484242133025588933138635086141575269133831162504681179405711729683259770282915421920637884344098738570998936289088314790879148637317207736600131633569062734949498384275024129278844497372372791556804408347913820919976042229455504762634916427741422994886081624614955390280899363018712271965272181053266193894417730499089006139055346674313247650275602068491570707626382001442735218104719955131563506825216903280394865920912659857200918353184202360305522208335765806238817099630659412505966373148896330606092605731555833520671298876331097544456145246627349619798145999007202935962150581679760117609806287032370667972103283750104814992831263261492660339555088682234411526657766428982237623886943283287685137316039073005979886826023429093784011912477690599152240038510960785409664212607936063700702034764070667075937426322287465567780273033181380200094868308455505079304793174725864807569934060702800094048528571822438365416077966830053789502877561892721900905924207642043703853949556380704770374320212591571241508004679732375962438980185972260854249249665454925947605065479078423424155811672165004308791456952522510517018427393438239825097024219045336681401503218765058059431655340343818988645841924515318999152644605476014236926125728376204146124308166813522187957841912220268238388304839765521198584932808775982724354032170681106109757069949737983367768464920112245354949705747616352673935480042375690403193852045279878174023785870984449915300595304822839870447371544617611158341053668672779653925726878135801591252813584749663424235728337497530393618605965729407723556257337414857660539589271583505049478135157993350326910487269291032106998007670563435376089944850269534557487265057552034478031412583924401137221071530388156101368557164766491713665503013574048138248654819451885849503753210374170287215141447222795091310655189149758047416498696275956333896833215136942387380280076568923597395077870609169191641760404576896679392454980207067482101320273322558723751279284689719629817665338107857231500312146413108903371060352793670529571109861103933181819769595268916165989163678827119136978276959728619762522501019120473365305836048058307610308626225476393524684991973490575061688250785075098744257756240777764133109973553808322396176219468601092208224627604995705448930923338389033057478645546275937305674891403515649227816591079696560064577023482444083104809126581829071244819660998801592656688521991458014795395884430619511759315057262859521913655425140256646166540910090384557157385362689445393195243665150862712968906046890176315562214223607070069316028295270699243470835433058453808174636272489489183341404148647706074398300005942673726759818614993761301066023773277090811846236608824363968360843473856445617218925560686599117798722444567188956694449481584163549137109596293037343753064505850389072903070581692710139421920598748744937770354782330215080442075083608144727464702964022266880287688918646906778627602474921447753197991741091919746797817423721632585758615027913160563203245469668341817963863792844309104309621762955469223584953575409696940176504617949471549693045763387217847077389544185628035165446497094923526995993355457012671054838955060436821641860666557116988629750334316326435540267574698972884189924260462062670891201701087569670556692473502779639425686412296993455639327156799415122022681003567905083480011112956375992138390359567740037151312386927983694893319545603690939158283858233571230998363168405705301604045686205914677283948533770052334331379931197687724189343418158050338182520594546829426817216736971798023656785427465891910117133219689967717993001788381855331015504064824711829261292515109551238056361612911408960435828739523099679735967866308372679356666944648251804099314300605233553208470332091439604479103032548499114138116444113229944746949077828806982987471097073262924202979839521131641487999545384288786722026403155326125974658345710289784749845216940358906579699873248265149250119597837227363929092557685503739109933316381579458020084904172847461597197616770355808826750289378365482205228783647940710419968745700318417807827168996782858315163119119681531322180372235016762572902183466951946851527347435885466105132723037874449809455514371428060585122617317507331493248722994992070662482103896901702913490485101598007143382508579393052115261945875122820071461710908879043075788011769696438646633112048433870704010510274975646909045486821849683027006553508605051482615830231973552783012755616873812573472354939695859970777138839481707756082887168453484353397028884831232751741971951012659906689096057563722700988997361021547961689124016740494160445796373350203571817426507172131973745773431618803100926326578444388488716982710964681055785052225898346643726031708041429201427610809628575221604751454136961094108697087190525095394480828400680071300773189420062248741905624910042232803140969836522878017999023069311864310031993329118627590608168659537403700039796980312376257700917912592328138882854516502965596439388323309505707944455948273475979214914029537982774130946525553825958590054140854901914295107578361453112905457300560976664692138129947776708880025039464929781746883360240889286787794319234732435346281045431959976178844515444513769706343938626626749071943835483079119135398429903511137129943098651905845006991974019809607879146957211384479196318647337257491229021993447978420085653744716999186317444159355757700705018555103687524187340025341196132339340138072928206609169074735834425502842441707973431610805097771800829287883364900081448313231102103016173872907327801493669818998213321549383049614501526685847496729534666441082542551810862778954493582865448472439616614827808081094651256296311591866798904973068643177781541010862702270080856109518489799367125478597407382686192005478830230371320502793025579929929128694439671733864727665347882502082668846584776449416455087792526762266596403998972711775525408548939480957291424686273923730013391965108401277211289920821437311770606646982767892407069859673897770874071224497233246909003458803810772289640446072374956992150520367659232969047457433601660931078362904241827401710633558126087885577767156958877921292727011481776488872698490416213782912185317978183181373239355166874175908492914613527288039688079673589423226431262704183286823670892033563806998425646391637467239438352015096906958357028883245924769853641990192659096180606807041111057627763552926437147107865693045424905437680858436931872585665005397867544524482166466137677182709503005947471405521446483669045403319628297849306993883147401730264341598103379436045292338558865573260683511933361094277948289382354244736183368139764394915631814278736775129302546685676187785361949085421390188804949028935955103926242860093654056449411264813199418235906428624278486988279198468132998347333936947445653211160648144746830874121186741658721617201834744797502262715639685971424306023248727171602478856288148467823640231663656125636069561951482922765206955521313565146207658623359798705256048358229757296374409438412046045408081166274283995480829574954624974212581417183356893653336609882581964005104126497963221153773905291450861925946153082176079106988242024415937866784797253313144263879722877325268599904480279918528805451376057742831392263982718666874615663134785879690579325997601407788713891787942062887288430582335027004323944379387829009773548947810684352876927544915697215174605678833799169982664898490929351692968104471790175757852485863664359155615987579330408298740070702260563780626390751253117216445075512116814668380533723567564390916744536487607634351952196877676203706041424935295268402086351253770937385476551019714226167804357257013336040559453277831054854243542917966534898309714592155881196163481458427893559744662869917203517470914069267769751132164349519525372803417670785619146435296614802547509058734532255716189348016991469141585035444030387394135858997262982205198687014524300162052892900621660667543531425490041874443813759846207478525700542930008168538120352365864524451956345808276472045692875387801856501291516412303024645931491577324950144161173235283960217657015391753419683037927799179038969954722923417161938124837084885191682945618437279150781162054570113731676448365690351221418698019543157213955061302761522531308949481887705969485988613680057832673308911923156475719441085562943661894522309596757895398532460109040948654093304499078711134208546816449817575642591148612968374152454649493437815624166485914572603808138467964766459187596810324733460055812237391387407824247662329128019018087846206024600414035312782815970841776861615805448906682145478625060136506372677155017575276432482157562398499528312376862831458377665598824692441913256802483489160826172772145201146005087795309710696811956998598375492507718272335865109778674100421665161846440997719891979149835131911440369262990293471411111095333900762262175560179900650538967712306997907465142347850001436214827228128020010980738442416610334063783190445366821587577200243946323518849966265183018560679192652230178519701089498191266653065336591946836796452956413002341150221105483500553942322406861447510043162626956398774689863592597867381487136260401177293821695065503858637293434161402263928697542134235330327169707998933960895823548843003668027652064520166011070749579714585304595248472252688473380712330177672264655270681837255598806466626871081568494812935893330537923087388808488980737166643449411525208746064856361007679765908210203125250079052228414166098658233415246315405822726732315577041624767555558013519735813757060256050255282462735809222994636002773371031835959009249853788316486324848328539406581660910242653740055770344092993515235061465453923273845196342103748692345581036057981775234268676787220228360471235027096847399805236280391509001008740246407316359379161064912546444951516325104438597617340857883249475612491645154089913157264971255507281004079217776337026602198326434908524104006624032331208069186857325848242231865329305062510765246996041100987571233459820496477642129867634919601461860361452095694581885727325482298607556953283511624624381228400011713659459572721070103029918603770828046192747244545703307030649402615973431245053414605099016493974075826581742497292340673406002483253295828775298412516373125331229420201240109868248012428652631338375966843800138719240510634822342455297102193548367430538305227374743901982857412020648998265282072191631838278482676717656092783424675259611545926499986810220419703375402716099892291743615314875376712765033805266050821729901991067300155349935523370938086994436028318825927964334722492525477718271984754940897121388981570386250607503569093526985419971797853188272578482230948177219525527649335311407007953004314190437626628675009963231398005922348356964318652299862220944199942841808834031342944266172517450117386271918282738399329602002987763265498350389056256372605027251860025974415056775725539961889485572364102669921453032731776068819206986618347163829894853270715344450817928624511440129063407047598649733211595025353792117373326929816645275036436694378435087144282156830300940944051880069936063440291319736539360615815136028786290354046046351058609137535619936894811412329063461493778953729634575399888119756865333378496766321269974706301828796730200579156306843520288296426865212334424978361251337379297025248060887779564305861704437468317167016808167590504934741318716660762111158215391648138696973921764688376914124655803550295443530656281034047774315944647750091200324110857613083217496806530493832649497853502710974162383112189308607045754707289611979895354090845748900066827265762770912466490249892516544767377695070887155865316562378893586424929879011849165552667210418034527178944388595899016507759275565278138928382417171254761579347509634923911764987321223499684553623213560010505482420416411071315721590527209074695264122024311238082954783984719105184163044277208246829263203198405914938064030584008723034638186811661916879101199634761613512092206213972124253473478298202084766543440928294601061159150251902145940616532019349541754893255219175054061716534279264445306644841824027277516686028932930420178171804412861982181205209436569152193717015082324281340067150059629961732724938277924465416589285134140543429619809701693881494923712523683221626513762212623533629632934530103052327973449981861228502984376449979592630589050186926846326809908019791943983634963164987471774270330453112860306205120756562178291618796988385761541030402498151616335152665008982490567922001015570777135599998367733518169435681194280125493213835885019249163648913196035492591588506314293686235809592064510900783880706790878394118711999073108772007312977786629038521056209706212134686449413676765309093674562737886500782578848929188835344634161837273400206362406261657045975870390335622721992900697445131550828872006562593643824080578624939270904585671624428310067068719776236487097388738878274297865288642116663672816332788395227495444969414063342457610626688444322003520272749222494801496831810359579361248320169067524973258695914182470495987071850691235238112789862410331564486884858904127200737275961546201982166586547245367617736567077375443521756920846870752394878355347219535431336149555967112053733915355362355519994014958443519817138062935497019358211612384699273649630645456962406225164438116447485858255260297580150280514156112460157318114763183782999430877369752308148955845034764578212943770701265839894879214793581201862054435374630476539987306705263530592022410146128794925735247142003755856328707508339457549269703002123835160239014880915717717511326819564366683243335183976929983011236950426696144285839767355012999320190195166839881639196114884312693641175441625250429274266865806325655113468822476193048231383610006786565370850206560425841345321438690063779838828999734024217285346821489221871070664926069001548398873241267591296923855207180433248821916439653248210984064617502743331876802204864161057546368954429878970330487140975657748330579561380919342836164581524708930342778302205489808873527552574060227456330233586385783175653850397869855249980744222362848288178371052765650579025093385859619166354779272128397804297798481903863861712488279534235688893176529045738004128945463704802866605258492504401555753982840213164007024930706014287768004381934959302053816029584700292149102066879204175860390652974145319053801480938580008856320039472407522826132571304332232538479117506279929008052943954600981200014542040936345124969983928808839216163256253168389466001094311274071171334493115244481894308789634273238846916379702051378318422066667503008473478123003771009770510623265947802427902357293112991599547068188703750844005869980234613146779577096354340547748884043601400616440000738653330105788768644009941115092334253345347777923364637327856748391414088257710375857690655155880540820158158983311708955178764722496577446794234079981646043950509013509840715280836630724472878592467017296547285000402566106815615068135233347097990853446021261430182219396232129068044508930074450037715916707766715246575043745714851827169298047190085721710847268699289650942117421202481978572057958524358062994625782085638167556640001813955224382628139474491952396335997137742687510186263300133946898284012504824637841376589941417640711607549901819735760100208214405313616257561244931260209758807992662653845296681679036057223797645568464254700354401545655669555993437056044873072279938525745254127135112144879256155289362864981080842137975486088889245381675008865557228217954687155326134305390462817515081149216226454682186361558671569590177310986748111128055204797457592229986276056269024135115754935584399168550104211110697362503192748015210556557428691255357676686436134528574517438304836570894496380036388915819667613616746120818128016969458311784602547930889269934393064758429283912546739390379455168579119344592798761843759822065695032041889662969957794557608263913479588493797178855024233073463760457523720330565362649340162766580456486194054350013778841248722217382732965269324930562198564889366047270401489427529100891785831570929248807691450838590027733552506061547915001702898114804763477826531089732561711278100110940297861881902653007094072721467661653819021456154041584613497875615462238974623413728655401496250155988826634652410130571226803166465667728569251038954842570114615392335561134309270835903595185875194656870511175336489311094294418405769131006636126581970319625983581928913850732819292236799281449169123553574816579142915837472232742288399891359317307466109443982639052195590800403823779720914607674795989907486640927704796414934904375626300869942231611429579130504975579024195669704509010533787130050959066942239362017720336546114008311368304093372350639273992645453322528739399130895713036844509902326094719022468500849400135770686607375170454231359191375509392249669773112396392611574876395793536055272507314381903350661981458817479132295065601690648441908953738782743686057813209554351966491208249975257507606905232412080406498132434103671213994784960576405058562784195725641478120997499368673053382275029311349082689949025715093902180183200521962243888251280910123161381893333224313237923944350660406081653340185669947976019867152409496657150743695046838035892021387012123521833757084422682683056714149976531384408068991217040541594146568198054958003590776556596356934680257396696068659792588592772622709112326919514827752195288938091927826706115337808563095606928983674086048747435485725284939625612239432498797468910384355761780353610319903303224355649186060048885215825505431469784474166942458003060857739257533733824761634345671830296585613510515039418698332556971750362510509748125970718031002268165029502107402159846079230670716498962105901025105451477184057593742177184710323297270396186510315970667018044947904793138373613109718251544409558155657598717642336161214836918883846958853527862374678315483227034821384684576728536540999030850206421778663376625990515749942658638743803173625595723629247459105091778075562339123632655592983174652272821899378919961131960248147430346952088364555037767694526919339352639387552032079665664168999054749214087888083882190167549762753849824616431527428802038580212534668322214185411953048484941249656837657189538651323972485618082117488510457979959438009441193953517618216731633648331804092068621656109583950308294121432462716871898234142606405490115607416860939563170621306063773535978207990061218653238124130693019959103524346100024612919818891902636917477044889700929045575697427629059249639506032381897319729635875791614540691805632599172863338720214619796554548191390986126402399851287871683069372208206939599966381195209875576420894461484676890281015182760268823100709697093240623912009450753103319336339623636874754899002959726851706884045948470144483558894738488754565129692098656108656024795969774215613042773083266977264556642669162542736316279203617983606157287859371546114971269866626810503388490078378162938272087847365481305176199892888918981769032607682436003113168126970337075286909758810200253867823059417845522086395086205604082788196625370562633473146958855014535192977462023715233693334450984536689526442378275732522079366617646263058602066731406804275941890023974988625072095864886905987166334605420531191031311765061202930998966213566057696345571456507562718292639475926404875429138051718679749547799102158579138249567887802223342079240536052460642599728154827319058756447951397612472496525393649091290267234461887266265404262690260319031739716374749449513107843954558538809503213178270256299789056391422545714662248807535635365610268630437038631887122106689620906479135740919122492842233074163283129238196334018566258027019556871792205767171173036008827592266604978531719618339227907883107762796044612789773136543670686189808458338404871005265867853654856427660744653981464214000952826371758480744982079141360080035845998241464779846774774491384180821176157057857090545518091627093951842939183444596503978720927558950649400020036450197325959834968556278606206975094281032160955144756207450316122346786883868585113435655788515368830803384502481224675195665167743067075510083655767469557907094311770774490144684387636491037273052294817871102839708843517237427836661955562729546462573452318857129325223655624510650845627503854576623200785131594659972549632459162881531094602256958477834990353098022522216868521376832230723547377860555111253705307740393861934442801039820094286529819501671618516418084215630114277604455638857679898856829656140649633494048911417955694000094803261747792479343612912134926150381345213029494877375756943777131315829581422739825790021651742698852254041782697349316176433889440936935460461510802876746574024739452842403356219056647157255606546443704878367129790092241856505376988900806627597295176685204010601203532941740768530442163902104137599460436882067919601952412551004338946445283332264872110908245294141181069755009741925836758473290350691654886199023114671940189944310177422495675535624899255428663147165181085671704176648308550057718013436968759017665678351308174361233414333502746422455860251665822563204358997112365680099890921466383515857514761748920645481331879407998804025121904220764581223473139260119613941477186764804680327587163933632228881465411645724701790507620974451126599872771561301282946601461501296903912081585440179004804275274482125012668525156656803187427983886461146894357500830309789320677450970522926652681832825424649508080632523081772454955185091853763467874792539071531151868781163792971911840542293159142556613420236170236339560125501501486493297774115027295655260056284049828347602625718478898395043715189397406005187723080739776854953323890401030714295911424375716191268690940218962024677631807627133992335095842900997959062593843248599730688092543674325661918842126148674837306992637510775322365461284830266214208543295302473414827599966139479975064665333373976974158283331102172218185619008663550944451633694629528580118846840374227359976704754471484615868373141797408172630251927347380910768551971823001301713561387172790800423330185606781723927059812112860565798467077844031765785953933428234919495172003189555324789970028617683016683064515186384024493836485176412528719119630968775879475514449144762303496237032827773239615893764421613755573596660886610583853622137260971351047489981708677868354991747409158607606384489405593969864408127163386376775782741680851462812167612792143350260673419530874532521560542577264809483108110672830611674294583169114282593302997368751117277809450472541024032814778445192943362122645966997196561205663644112031243527129491089289825686975209764155419641839602929258994204174155420934591169276212458251888954564023611664385016337440945264196030363847912697071576101150590156018812263650375497802300832030121943270850835699353498428931838894210475789908702703893512524530885495627673852917984324647720734611871408552612162341189772558302531410696284777285348536488471271264546215245698389367064997021839676513969167146645598571554019166474853256079113686632474158861219386034026166266868694097937013401681732910116107375438753495123559102580368283070872826374531844016953087145176619579580055288731137248198169831982754133950892078252047306538657193894814738762230938139273355727850372659734384533305589581085387793602174674282886097515624452262383317345380840249887361427882557745681288051744139540993306211652420232653267705536726030354193562522327182711225966099055523422659506317501685870170510440132637252789274794134956847613315304413703869501203492333415877903371776205140440144450810858653504668986199449627946731514259447396083426858331139037646832016148952278245448489773996806947689395022146505748424107260477080162325252386839914851871755464933731013356312810725148654013578007721537476538190082162778560514550173465246191841897595607636814778443186994817754334392307026523946101000792398402313546670949066336243746205917349370540728860645049804777173026934155162673587438446140513841894407233706657036018968823167891623931100611870438365785767283568993800999144817846771306025893125673853131151412146671718035058015580249390734151120923571822188124761231289884151780772071969797976071182271981316030344682638036300993610867266889371994570104406346426000861289904940091211313981681433347807841824725742183557178777735849688667010257871589991926776673864477479518641989349467461824252082506204198729322917290533357873843239051828135695913221185357179845084616308129173212651628531366614014440600481837974333083481766812017186114365388732877786454882307237205128905437194194996875609305711818394361126381090581559396310030202467833755452284189901218079752477317327115941339062873944839681860683772108986361727994861831054771802999027705220964604340088870629121647216127939711228730896494118910006821488803189537307522383083551109225733281749109902280314982344827699043367836327451915536818440372056364656042254849695484048610421361984490452178677490879011033819106278437377979037928375348706883256947625358952994644225590012252066960111883917682791399329743588100618711456422916436731828663805910846018595634791066670204401157764404181942639418136516288816305417150266251725723571383763773515742320013408144766585830937079688765451762543533195495365024190259006763537517284243261141111947544779285853414749252989621475163924227890954421691598755398090925575092827050567566806198022789095541939861003443112872983883535931719689729793085981410113889827465163606117972173691935075646860268432142199751876853424507910038026529613672719398468485659903701592197638758761738630570754214909341336990518785641425214758334874925978787709809986888198069643706028040791851160525200305228371128197280667107467045188985125661016406159311811334917318235772604062716947287425109919029952316865177018982139700238941041893015482728557480257807229844902009826510907030774334808660194980450957371373817818316365750098001992160757286032932943826918037183124908281184111882059248585945584832423219103060225476042928699875861333922955192890733313338687146873406138865141139997700622535138206652090509310475528712098281904319480375569087303288565488481517041477806226063692071675705393321379720195031714415853505091699616234710482072618399500644689436515014000752217258718776013714843803066796805100497290520087705182582973698588749503811184626472328241878357843761453759411595000786825608727005659424982369307949040850522801995055373666679470450508590242783518879414507469055218569130025783801413918377758665003949892075599195941347644673022674313013454116336918848184780652898428536193915718689663086797235638108645202376432320246303669628761285038507854929027700489438659674940702325508121913453213941473951929859097537187591596193795701096648482970681927858924058743364608963990362358366772568572360850809248834606967041737066578949141684636304652281505493506677605655797379336374316070198477663878583353873633436396009913497695495005360771340940672756746370972667107180365154492793047935135372228123962358901091737961924859205994619586485104067428580800501377977581882389373403831923977558170902598908868131906142919104763030110777240823945585991308304019943982952171178245212203088277744096958382625505420335086372232624135004874436545547340966033202958496820103312487035210891007986116921008893347388374875164772056430111898218715391822487055611028495142626474050719569683089871912305345199878721218916853848874165412979148695475248364411187612947497129610596954102874005136320243940220656600642563588135380568730213945214358563864860037913933223778602784595464143923859302550159926705820565931220707127702683089275114438708193322211752978445500288315120309765944829546938727767071788616063497240230791367390963163809901103840411066202495677176672551835319030089922625802365050952931576802044199041014806878360692821954651615653856811238567842576391221476873422399907121192883016732142382635186573402064278342050343256013318441476947719572165766623908491822964189122098709313257924183864891876541003348876173352912487138446212641178111036532972578784447201633077478165326914642819721577973712669670793609435025790468883559535037611542311370205496549242210078726772815805205393200829071625236780607088890919172175349305017193778296614919128584995370526414956875749491014233052671986991520634193232709936345388615428719672165912765696091586918227666491672011703184613933963448545795510325738924173981862861039725788826405801364795116196796046878235924060018909745590694764410303011842753556134046847431810548405295365461700837609221253060103368771373313124540027369686366169032204714131065202709895045498271667641958475932038261593733231705605477568090939907436186816398272139550309393254583904522908633170137639759811799560889400867798410809022888894851079676211680167329658360475248278503523715633238645290147650154569606679333871718041172475930542947878067126514977046339625697028631799841884347307257653067540602795603135172358117437647144034541321253055735619819041260057549274604517837284288410379886572391259958087290835971678916567327327252489429477124307412495121162254609143707312410405187310537717404289833508007109658498552014406706499918106563248814682211727039882249070059589262343275890521106684084208248191616589075788575606080297665692095026609900501878605570041501978120305704507017999303429969507812417358920389752314798685691275844042637274667527659927171964399722008255755111903601242126198515217408518617989581546028800677779285094472904121259918135672638530567954674825854458079073491146169207613568423147310178190634708616143562582122822057220328405616136977832782938255357273946267222396824465735903889632512639279230892384646206543912285112419476987368929487997693077370290673226420754091980525871175121249849608079451054483146580175089898102121077706596333433527387224450181711435749133063864163105494689338113939117865109169055353455455778492018309631140770405875975440590848029924820517824235674887147290294216012194717963748138265227643669808729243069260301006640821854724409593199016489782404320547176469754941928394073674379685314162094131742725368557940957462514058965241972157942945198418496581905129960273430373802437517761954534968300120999119244094514121085430822182410249972163472789323063931966816024132111705742732230028575766880101685245255031442256166282303009853187361505414362328445793697259821477963403390362222974982739892618218961449586092643318830523741266916988957776909601276663088280528406882655261865179846454477453008072986963267052225347517918328552665617439130890624929876967488104529748316167541577038884375313785226356630002830366940593380203377550615190529943890687023799048799697118285098916006504889284141715922692548609594044032315133739503929000144896151211856214594778329589174213204355507476294689684306418672864388170495089660726570158559455587593646992824421667961600966529204037017937322600440476798642593075826968324974328158297492745675827405142945829862840839326533656467835952075398067875475140942195114751993542650610444464798583655687500467830296836709083180732212870995102014383526287135712696523513097926024142799816622100425965365049120673015181948530211014399416608831635144417269507794344295660884523307549539481279086085813398622148858059156617117587717567746711239056555269484624326761459289359517594068864305139866730266578827295461480189797909068760729057286895658227063140023179821493272886394288631393492001656328778179579718998295772308292609645722765911502374634313397894502115914629510921404556701624004578838107447337215233459404962291544191552021029180423480648195978949985728431010416477355693223300857549039726925190966242980584231902502831574667904282536632636781231150737344169487763943750363330930463217659773882190101767571262596404586757431303459135983539236465786098258807445533393801791638134024155759735708719150716283778546190471365596198041206381611078119285191505255806651665840566988516834237301316306524932022325146613768486573811440428811932775902605896256804196586780671050629622964380373335672085086971891600033052385952583430077317766277079549301247507053982586072345595923674567885202373745478703146288589479279547239355376260065713970656659819093670082523022154493612975908302056658205871581652625069115566997457464400898934997928952066362044765294811953724492101865606848092620016129699570651447997489896324301159873843867519760735011942331199736942524743502672448666443609270904185945826636943159143900715083238326640549432884755386332381153785314852626058601890219240469822549785122563348603992520672176784230585319345403006613515375135923184312373640546000893608096297821102953553014867604028093640005387400104632369931577677598562708064894182594214015953071114241468068460891721729516325555676571538087690010003284685196176883155560393247872900514498183415729338695623775372701779479383254393758273936854641763023885399115279686861270535028196431799168878532553037941488010842689257908232208572332831041004103896072724105803461869918759797901941753637607086648869972600243575979420139107085280645800813209435820665965480997760694547761663027910075669784024917412837968333214477416822203223522858361545700188252623930419182884925698506589754721129790626047168472958979600530542135266735327720896802491059968649357772242206745274981786483396986554177343233129098250613120403453700043256848667857187858737957416573399628262892202848038919006386985495982607047378919247768221460241735901181408113205693124623677109400385164051187154098714918322648226385726743263695452627791792533184204252055641128138784675921995962366514133416832029225489125278683764882292575123090039931743487875101483775471479382558703600399236325740629934661550756166084538537667050633628061170259532979450519611352728452031930801233096126954482627966106457838378052611593801015976627232773723270913079286386199920095282740135369610161512164220826122409964815740426121463189743171377564016131787373104772265761519449558119719014581072690331218541037531627946928688465117171759604707160404472530985631061287838348019124676522075303463478145764525864266908825440098176415874577121435776244660243878480227524721922031250905452113737378887624783287611832087176966333959336745611572128282808429960378710244286124970897056489937448064516477991357173899342121900306206153563637801168554158322345030819513366199684323435767478246170743583979654987877329609023827671832461276832090682053759161452626994100186031002406887184819854204145791693044107335356070232857143617908255806992497633426326457154592212621813520207784568763200570249879913548609355628399641634970028651892728382609860809337895121497412941288790590853001301252994292717225655892659803819904387358821855086330149342373289950104579679572561124719337207650849970266668356796953863575965616111795646922938062256642133865101557424797127900703407233401094791832045411397484163738139733467496822676552008463367760970746656931912934962523484584881566640006482109211824801025882462191570188464285692308075566866573352002921584229849921110337197563656151902505554721166250072173347426170216628364117800176890376760175344802766491081742754406578493233684895662639400400259376486404635638490533282965055071150123318466585134892783393786771937569113563422506198605863145252433522717602930673964497042822846676357165611777830004197770174603928734707799832925121715739792021933665862475965864940324329816546396844169947801686361795312822859476245457335720710414186815751171731625375916377854065756493088593757906593536732388646395070701758734589664932677230607385860906801824076654398352285834540723421731091458482746261590354668205693966960181824459703494109632063981555571446089784684559810834332755857162540324552131050303799485317023848692476849849525776652140536747705239827380405065215696046074895950207255930254694019569680604994550045958316951032299509610315806837124971224685458787861906162560270032202844917284671033775468810645014236913516098631673239410904897767248013033412988553141041593864081313556754174182229861340158521053526875414582614692492531118251912568594345974800841498368935902100000313429409295699763378544298914514445436658471185811220665208055500168719974889417881198700588342753639547296027001226007510057323275736808092926768335162655137153390121168248609618082621273202189682038310780877844547865806556694300636568885936656405559996747242432505653621757655776229637178771662784101678023738535802985223377428360589509399066661451432810697039863390073327500598637417104849782759025624140846149806390003499227125029668819784750644472501652046937963839839982080647817151785223960188625995592726580189915811765553487299382927493090533710304619439707562042358429435674593014947664589878720171998625746056383047517593875187949612105770511719214428843131736660731531742338344672397156880701438787916255075101539819990710201365412791050717397256104543358777578834814493436558399595755581774390237250703536610449273814026023852350189009801530469614900612241057974277934795583673967430508135780853076311824464112260010855537096492903893566402326523870366735471837288864705359610175069345454982866295624971757694869315792393560181025416006340870008598111718601354337438193007545791678804464600367693938961165655266402847853139274839541999058907600670914819802636983465741622493996666234456975137563692850034468066887693782358221723734861468874714105472299073562191665839519282708379147689895012086030998682708440552510867196976518230143326956534552737481397589743673752710848537558345717941932559947373558849091397670177087230813021762540055286461392406722431965879364983072732827395821695883444066219521823503412271828038396943076639621111014651055062444956706853523688561065116238090163239452026532733412239357984029545415648997549466353208627270223497721371711351222806780260702569708303325803223999406265227283688789481671592401049509782227297893388145352733729933625044739750119301839703225705900777223485989347710277381345021045051137436959620164035522171592388122017923445619161851713021837953718384231608130304858445491390881152634117256369848841118438310000970074425888906818093809644745039953306082179546136603362004026159861623219024810005195627699344952974501185776977578833060651699788233055128318526568146422976692626856706448583510665919860539586343774280547554515273771533236683493915521601833958412478098949901089432469339898952690369165288024166521227675251965657389614130374531185446501490288047940180635592624896458877700083025355166124551857976264277865142495998045488282443684180423161878221485268943143890563597023540064481349423339011482800572382738804761692820842973756772369202679266666899442278033148838599044826356459202847536434394463222149216775489624263300923302469901236242294010442235851331661275229470013687316895168721548041194984137161093559740124704555437735060035144264539590889155365106610052393834381070095935928136549176229943480563262792314409491461388780924500048057679603859197310041544933650459752868204573456466583348788474664811689455087095463388315927125266919430173489442613177071839935878746388664473528365886696689656874874998067422093343610011921427861780167494220567277039346174425984312545194810745441057300103058195102311711719662109625802115257079771341584705613937244888993679135455712379991854675458678695145087002455207674061845009264708973275158941465229089954134085200302688902698188625127171482440926452850275895757831976603061600254790417777930486642911434243111481259246236879420749645037771074418989299494246029673388275675428902424300721618814187690744635129684633201168287766353747245611027998798721717767240040365826760223091846523852970851239026128971306035781491138921588168617093724349772260247089330595110379775248905466209074862039520830615193031133969873394818950865609683381435665505922327794266777491815500349242404610968926838317403730692283432147715428018698802474992814849554523250176591298735666714306109630960837096703916744239791012922238619481323299648284380203599806060250516098915969598935724625384532295300691141418336264060266679696805173644810601592962690884700629076024782304899608073204314971375271905711714970013446870657199982890997859900275558154710712476912528627445343452412776785368125739296300877965142972160986829446502030776030830670689958269126971728319857718600057859049243286572749271655919537136859335519647812035018243809996677008514233727259889284347367201430296813343824706697738323936374497144073106902712668366498901953238442249286673799781243315899872128488966230528796714862162334547572609804487350036337083854742599195720469108494119486790105808117320140276909112376739308959582775185844856363901949038372322451641024165010477823486684905495837672094472055306296733585892131399279673988013033800210857612553707272534463283219090744413412643416259349428432840418787912905596118764602691104834402583810217541541492011025603541959423610474410845619182935916472524431855887012088338049549333066582728364279469519424430294586466858696919932650532925635425320150568256772188254865688360045677383884595874107468796574272413630724379891582937256603589899451941854156116645950496300811513961928495331232273946470681880785483841583235253579877835878179494967420069721842651172349349132486672469613888424821341283527505356100387409111207123095666530014837298054660548931566478269294065661458499291099832765546260065875174529016236568870929629827550358821643360127311811998010042565294089543850783603647401901942749636308985582345436110151967536168256180908010653611232237756937080020865069206203955942241226479346856780012593148872128178996838332054027021797075662237198083255932066873355308623468624261454786295982623741561723623859992593380470536172984244066980255373858728470068967426974901149798851780810747501360351556623597817216893472572446974995223640882346109608282904482657118780298254789707598680815702498957030284633765378544485945475618653687125461051058049712940270592259692443327617534646164145916727660681130470953245789431192219582931570262567323755583616306153186973046864060304865067311765662548891510589199839026964980790974606159229241962061225208982418851087747232539973363476898974600403421962243426394740001196423871426932923134431558893120607746853590752648116538848338987992812834366880053610449040825740938194389676980093671637957331612044383868310709737698340414077274704462262082026068925115735517441018507070441985606513703864542709390784730846424525860748776331003177013826963548250660856354721044287373835865413360617682788352932741074067183569880306749872092250519509702378722186639133681071387064189433948684777176117292986261428519625951239235666443703615645849917399101800900051440165720374701410416218534530092403762456385791856028782434947427023314666420812861501449616834166544632818963482613029246526329074929545445957079507428654177079545517373270163812599882614040489465408951631527175241336099904053180694746731349722089168169725677725055277597713220924148006169104261273728592131438988894251690674752806990733405701957289362275670529750610451317791815014746245063066195590937937961893532337453169275553963832380615102371594551754332626173255843136308951513300411907518190936392842979602027092474182263047135321185992028545875326559822376127488324053857289143235121661019666835254045455552131798884824755975161218928045594452976225001301953204617356862708395830381873639575167199694167170108184476080934058341066868066159520980914966198047891451398366251720964005826204062135683201087186633317345083168239381039681383291888820712236585057859663450045251291131096526397484701289367286938585713323626727904330911546624528589488598466184692265465508559479638861455171724571517500599178827896778680183729798236499202713326880606984335695490819372218873327611737059640391426517572944825112022945003764821994107603240489521856329639378920825656008199065307875994503213786618866787284736940125760100516311796590853257988541415316452717629817220052527725959766160679394714402965568046872996310172273957997967906606543317947596588109114006443582111384502546610491871456012082171058901878080993887306172428606164368478558914004715056977245246165411837452679861219990967697759509888736006992246718914677859883640356117319456574103470770143010339728349783376612185515595680985383493014797907357036399199568851622712466759852945739589908251784773368811380215457969968138798478900867152337100574144165342203738880861221677887538309357959121056863124557978088701370914114079035064362065032558573304153865432967090132573135425786408759550357951708086842469506671184453239371564978710199146026958233433537083240004361354120900782110807360011550719122174195260093501182971418745002038041374542077122507899898095620920209428661947510813203110475969229926461186918858689467677402452593082415335818759996170013542034305439011019701401865281187971695230593049010005472334281328092963067989023126023169206700757520967482146115426164470214932170706858490626194759142678500239217299678821780093157241270056658031465882110329954005280209146943842232689224144210528949110567788679786066589507822316702746876657756951166481410578477131954758096297399095452628190314237772131618800275441476178757968741144035977470448773901181988036535750496486006010043827357369026320047521580507166218551256899705772150758976992632702902767602589973017245887837498624718824381306133787705813839421697831737911914021652797645633306743793884889523398712268657526984737950515962049348955206724749530440318203984667276673292124319776106492751101427788236780743734156535111627771162036123742287253277887283462882567406415168547645255246650862794734779083298770007160689757578375230323374509867111361770476232471210303173296808044638122582829741751113244678796093306571821124285972371283556432833727093353037462899117583284621681377027000563761456649907544364490000823100670318685393462591671745781866201678818237776894340010795891972978476336155696092940713786120878366219784484907669415187892600120946985743400294869372974804116530078674056882858403886322297208720705967596157630681258093238974186094095361702393739441038650526674366435082170499537315774078804770064140909758350750532621455442815765199602065585521659437422774767819208052023435419288478194087536328844405175887945825065477756828333297707603249538710957243159017721986867103905980661703340655933778522714445275048069324598491049661539434318809636258564058100760238138262483542036949301929288823328721548073193671071995512412306578558270079708819145638974276442568980747576986137323932849679308433915781120048115446568359428729717784778740290580414368262875107725832204605494884899783910739491864703404849906682617966923251086114461708811702661657542556787898956688674374209549349286759830552809266603920433322375692024518266652785566503852660435255534204848184525997360674221378660924135297295592690137708626158119918622296695617269704386703406657962789417690244055162585240513285348715576821257494362580467014867541165059839618574583446803733259070404901347085183780473302294026956186767477990380302213444337840880692219889359344117349837521703282565613862296944849421459563954633218420170961389656314083999145100871656433245130454063563649385480245741278487954235903651206731572367565725570482724438984524176372431572863028980746684736607411454839620125495945977194004782596164076198609466888034345893984014894016316495297863443047682481062546603409331046295413818084231805811688001445479116631663784501807542559666946620061704589109558548744833847466111730459540926691857769621174159081246219229363544229453845876724140354445392210129005386190525619477139618947412381437803478211607355233424247288765119205652795781627754451480617548950907312231789566259834001110798741340730549487032116262922408147571750818219284566761188449220340036028766283116684158167073617190437966532164325345019028420931849967909263309409572341178510508079771656539677152728356725061081999408957709550245638604061873907381357880106526629936786041080695145530436224660124253459000030435412863722809194590264012969729216861148219980584921111505505471818000627403079672071099975050374079777056959254407727210816418501454199842393096197928258818569818541954954627376610823494930038204986891060733223076295323155799437355503770507458857060311651567277001560564449733225523705765620821161729868660635027119645496320957421945893944383480851913551664046820660946715122073234176042406132705174068682245590328467577789764020230417579878382338039675747615618760122040283009278436067397335703918373265628084896254482165924820888069899042462697383909812365946636952993789722840490043877638268468798531889381860112072865605273677190456800375435796566680831754317667048709974221614605459877795224199880168821998637819201462608837216800412942154887119857243425885925573885209471547732219060733263353189708195942489711784397507979963061516324408738069962084492569646935193365464737039728153466480573199249135358208571833769981968544193867115877497208508512630938133835481651671944076812879503837949239298592414437905730554147865125258936775825470844253434705618683722615393206488462386086824203334717445894124289839002042329366978921049606777695953766312588608340343154371997423957147722052990978331001443393828363207077243781491329469519936251979301065998715719873661610996556394844737709479496565433945038475885293436219283789488867053753772736473178695461087315232706150853980838617411887185122811383719687236604952153837166434230172338484958819597215212251716188801903330799495745857874125620888019275552900172207952840779828018477902703868244555705784913134761697756961838431551885551992481707802489513909282009897693462748199063756124906388664540673415651791323612547783560078293769595339566724589620646216338677586750718708689990124671591955672083335675954102172115354607159233546783893614067106670016805237516842363289346848603800895257217306728140531991492529005363129613396308934499959831001313275619702103925204774899191963083755641968455860349787360608262299495866705187637707797045962857036038447208070183336980420333184035554563053270824392981887466413588959178649257697973104302412788292589747038181431563384886591692738695833598207708259147182325252620586150341476931163147730064511778446110589179875885120141466915047728491701269696719120421478457608043466212696198782032195650724049814864804389599422945679778125770234541697271194585809697505849525106486296399149229515324352735888200898203549005551280187055974144457196560864804841200126680418221563076845536362705318916796164150542644280782203748124697144331203439911342480665884789107524305193968870689460013382481048433014576930149634998117110374683457524250728975098347742024881363663299451656401351860612441325436125301704071606844752328179218993031282847912229622317361523015815063000935989748218950579811104793173006489587475682707207709686540874970330067008922780777086784520808302608029249678850805505349448330485999794030523277341116613721583507184817189317187689128212400780976829407447290138422789916687370686257564518175287676777332452412066559028582713673152427674476932073223806442966967451124582390398552307231310294826599334119140968975335708129383077184553947946625377442937383303923409412072884171920744707173341342693563036475070271230259016266859959703261150965533723349573395422436222133174827353826908439110999945063634654065636085611506627009604005587196312652585668709159809903903678760365696175129252771332446870600184414231252257668443533873453990942804614338742656551213237503112063299723718441456033890812451948344146221470569895182351589017144757661198025215246881370580946401294682693718637945598987315076013320051045570945048153749234736493340410822712953895753178211998812244596779237385349453780637925121520496339758172836456839774624666404684442069701769663052359838169600475841669054488182637605172955144559542654236655114693410975831608325202019352046771032981667887625332206929848307420039307384715804449942028854424534904404687104810976747961594863086829339861598824238582027293778988156623076191300844421304981396189237314712716133944720386894831939912666197582199717706949590617622402270691526504162050778277908694770003452533660831638239208241085740589268146607398906118336196605458959937240325968242897573515223482876090558765654032937163944070953028125660238710103291855684087036388744950209949075958551285941003429762055722908907057700982368822787747292754973087180357866933330536900607064470029934291402568039375004935497754804753233975929165841493864319919613995182787428646316143287914651910213863096706701227895693310031256661910870100827998319447407785791076374688605998306356899853974661108465135931615801745025133062706521531993735716604565184281555970813480443695211600836798353224479946940987664934914168262023540556106509952321852676452208213385060835177535365570045767201956527751384802167209060057048828537326952898546275001972475138658542196116911128257641840981663342749412698225154988332312130810962806433391927071441014962218507658094468496740380096377445073942809729407912009523145256057505063238341736360311727724686750105676704084108392325589065360476772144632636497512402627108901022601272427454926881204212824362090998521905819951432124089590639534279800980253401158431940783848941052982413951175286006145677164311868997169458245688813642961332247203973583595379088450239045303710082680148255653338508897624540607286845877168675530548854728539474011677788247414655485223816579902108431317903687993114874332556304143895037670484431138016429884857003645595792337616433490866019570541105548660828452349054693133757304806031044172430540388557223740107219047064331800847708712514157199266832133193525534169576439340688090888534259063571945405258735322818795675574498041362505160435968323624746859963338964537538362611421245735304214744514185115160982739184117755716131195760015926644950371770479633816154642161943629042606710903627358131421492645991157665384317198240509436708924274012957544834572199673224209570687523914525658376149827605403184525871315454075327305598387438861485547979071261662121444601553416914576666907695091561661594375738513649041784464218025321160985841283796759925851983217502318047441409608759239791969256556753246861186378780189630645268288419159582479534186866390740057906309604949888229599978236338927622935512441000272072088417902256482575513742879778215658034358559432551018298425944057412802115075023255181970456590181231114064404400392489553341573883558911513082858787982769084504923836405159328182418846997456415551356066093102903076373069352806101142326917951342350011516036054784086202914045311400545220232365769520810441465685995207445386124936740361883119743701768623568192366169801898487932355595415028246576822947694674853028017001437728851376077923496592940050357538920947312727799057527353088319895346620045682940890009889046789497128983321977836480243433647513114091758996353302675410930726584008223162561524612138177436366643605575702257547472581018860374221810641005024641832823093886656227957086754943694288443426447309400526602679380800389664122052351971240208076766330459895275671741006586966496464630733973823716833359849027607105176428512727034763559102414155363493402928473307761415420759396615569607091965934314937895465107531068619558480030945265112990861409952189618758020982269790349040204905684592060838192302311412659571068972909887955936570168137469107487290227894064953916070272719027609714196758489126844822964674811945896315154957936085772189837522399403670877564674396513127924075546884381580080986442229360592867090817442141486229622052873345283484443473523970552702607035473096425130208669487262849588755451636193207764404602617093023930606147621439837436169443488614812387481465438395178748543894455966931391352042939697572425021752219010968541577566821078508326522906641357966448738660938839262503649216103082477048347820622642947778113074085624803604364377900501808380917986531013829733898596447200107634327536590942899920216740398626924748747014763940386991305246276235954262251444045241052735897456138268780307020232116554089187226061878018966967263134562444289981171764326100193442806698953185095549583768142075492802700257746373699317037225476469153351316892736237173309192025846522756007050291664239885349824172346904059332871808826262524495280922902313853981379261784504926151434673281340688051637324895340554757022107488480672824130389453887879879172481476831707038232457589862765680027958915436197734067621800073588706296764874998734609325359452709914991455860049635713290174515792668150931272208033366830746233271301307378588936738875751269590124121552064751513478710624261181656223029762385298504966628773300348436884635516112107188164874090384777174954168380503137135018079322011381735389183059650437287176413553851797313887856589733272763913762000512458368176643320087564447298699897356508013079445520388906059299248105334681104294302872901823125114839541282185796207163680418515997106240672152204474996959434068458235318819374827158466135138104319433850726542898958495437927821542383676574197233703439482505479713138607789686952159936766423448585419026236037636103876160743841890212547665881281842005147143627128065559374923274593964403322459214222179709168126129130452838037898510346972497980183660228788170840385036749778950251874411995291090843020306878842281981518131091234403007608056182560990390112625088430419239125851506243347073699014566185052786205383069201334241050474718879102205050309347707339388510075486029122369103146871710597622152332991514439051857821824825395586113869672599960848954595208396994938696047550655954487723725918356156661139958970767313097085914089189395905417746585929546692390969093858188289477282993277581396980850685679728051929606964388319035130421748220011874263513031458380582904675319770707445132375261961096980937847406151664463118995822187188714770056139752223216508736770029554475138401723359006681793294782351236690975337074901069311216414174427697459748463413426074462206685963312378722766266831593458943323489309995587091763596985426826916299952805803089683226292583672833504520209130572964626623300893343017679378014812432993992505969773719321566244785209601185452083791475165993715399557709152415825869910471449257327631372751368931428683032148778435297260898320337023925214239882496721760399538416030610800657224748784965357865202908690654802664067727910490068257206924549360706742026406898341144456281620110371090627224260937657836108500163624324697620188595158250470966730192296406146092004274180597856689456954253612567564253177214923044145061948188420159551384151771066740105271607616349421619930691963106883491766419931303872966291387614401813344365681399075830618208295672328441084178051361868914478942987217857768898308206293676465350944574859904240471970066149128580702529330576812224849980295600027462353310993502683567902299911804849876838304118925631973208827764762451866479505096864930054246910514423831368651429872582139608746094494700071804356818737867793909310398002710887613644283007868748893021311528702934261630223538314450534168628209521558248166612680320583026846463890324428212095247339304256703387906118092691166550840798982723187034019691565756237220527640533688688512240908115804094579805303325159073748080541469267129221691110215268018582303271358905715475124793507091741048314959243034148845714033694240144923892178297125820220680028087443870484358900042103069204793331733818313839110783816819367713376975227649449656070405515258235798522092887901776362167741854473568239273634215980170506680227374460994466134578242652847797446527361147842692480836744987575991251243345657286509243019091318994243389838433171762802450814849396849378627931716152835969707902012481565468490891740336878267654114811610011911957120922437280542572242561886981349644209996732454180692166597918291473255420357639719782966137145930832231279897464545862112641993970385613323026943915233996026738081736762270681480007565390240397229399373735665984294678657850447879417254060998701449745125103459069946506002784490501641524513421990816961550053014993356165957051786057550089826895115415025857406080540474135785235317237325575405291701997825640012606739054997923968731021316262626154948971286636094902766184625262835731462780805596644026653970505414073440297146865508774568860805571470094662674932739784345064321273933219329859459533380155534990739807079126467348840391944433049569161487867851924760339733289185470081560546128110081767480902944035307926472297608360409934919813864856291735277441421433385475701745639561009167436699702775669554362155113308691878526192431126654537867503637888763375048142941130692651266839948834423093457976546193543577139786073302789600493961443869661134499495606572996398526997548134075968791871589603403156598313525021385190863350332984932993823087059624298413233037629236607785478047517701595921666209891245510688854640779304361191340141097052919763190030970779007445765710312166549955112006752971273960433801419776005302075561815617604279418500826458564553955715627790207729223978847286798339820377717406146158096052907458223776959476316263122125992335209734145175259844681998925574318564134273632683513214268134092663443616335390280752853292228455982321457511699044256418803537534795641712441770610486620707773395083221768813718743603805978430048770319755588542656057904321625182782855569061548189447649628353663591151156911850261223697909828905199998770680526699495096339940527895262295535612048453667018819148150869193166537737665247531506084747120713767669463036397741407217680601655999461856686720886339960257431752299478634982599785631299141984861953727010280073832625735087974974870687213788955084221700826120929074765224291995949969130992877971116385026707112643814141169615978062951185806046789643422865194493122911685956790875404417308181656719479309367172123199285653216821726048250740572142884514054571671461508349445163943393650926074836802230955999603480348236655857789303936780471449202518669926349193230750499327171025467216916695816538229024193158786192295598450458725899721792996097866809651088107353501983066116328925263272344766040069361596401897746474582521578606025162028281921758106538395442178986441838469119189250463594325272284389795781176924901466808420893788069809025863988146371230050501619513766095216314674046376390220933886990977987074935943120531731995985102313865516960888361707372113538511059384019898074463502312202970541351687318392428728385266504057057411021057095859731841944084528871723274249048226510240123777703140326498617414630341803556232964193733831450005771482595852320084026127446755976125854268360168398941435336113651671513169238705569958969660001251964665484056215227187838895383554162695845813751461302788485501298517770248696750252692996112417396436851245454573032974017700056526993367858157492793673675158912623034430462784110416965332892160494980589856293124782989298470311446618143543156220839920152635750829955136515291156336830901195568665345848065406426626167967140884950973220163076616604482072539369323740046092430808634774892516054950563929783133260646674657716292424388448545459094871553573890088136107926883733307113453918046791879293565547638470399550151387904595902121379107693585312835658081720815711422765357647742512459402944350087889791647935125450571211699263736111424029549076723252147187743968671297146625994702973358323069043786339426964464971463196393225034246215516010122678549927787457693778721266629084514124156248483684115172802388050035340946717446612899867447463729560743173389176507729831397342286218908829930008616285640479638089302397575165035230509111676405051298953297267383284551371995534193240582535150033536366231852509248589489476432879927120046597440369900246717252969677050818994929009946656301500990079836596149315272153007240802493051138971331367523018007200359651598705237184308321242807395090003696031843327957217895091782472338560131664628821850310363206270935469959881670923864223888928255047658752338978113430853880795571878234605840423701102765123634362927965978695141949152275755721720629265488256656255769641853991866832063758906745645680586218740807225928109835558364074112921995225329642818411572102795987283118383565276915787527170905663067333233465897822468023396928003503075870431706728438056717486928992774464784740253434362549190478064915071586903335917722528458238976684801619428380737942712148891983862934943411811937383064779997610071280763175146155879200480777216214414552662409980938781454847123727169214247265257195697057267245820075812070243809022837988291862377704027529253204780514613395735759141447903709958106602317071005295844506230010512368391297647749338641626669952859566277536929860715814244608594543385661715143515498785678734620859806818073357209549703452877577077370124951952766934171770978741076126728532199273707808100548278154242475377716237677176439336648886550522179508817742897634468021338804167523518219813541542372973330402637220354654980184412582777087070770111515930433512068916993483509508086877533887237568799545319805441848836056572894300110413072105027410171352792710885274451030743782648937937891465874326042623376380909049817541989793462805841624779575056731313593789238429611944984620070363397964662068808042699901852890553664434849263191484675973924181103867536284300235111735296610897270089000020737683233199338407542977889646331504421665710210037454872305632284378459511656922080869473589186406136633227578150560779955875489422634768504336323627778213045984725352286072807892048448932579882883249106273435993397552785486943775062495393290676513706295453875714774405588848415083694780608087110558352253439038421644427552458930082953198730337280945097981610949492151550874992573937576266114201410860523661846808899657002635946652824755383308543217008454560612140603206531325022807877856710244841395466041491984366468338845090481947365272234367603660226489328449117599765641603981294697628980623180058567632039836530448215766577475621289662222220397292646572758787618753103672683477372764416275702445888096639854313719454823790193323251368835206876299837371038712141273975097492580143838405068302351967801888789192934133277737190068248794870056862583035121419398124245440563439607444696008454911424987544144389167659384234614768460970689531935898782745659868436088821507587781529357282942786130873985213013646553635166100624099439254355204954076119165539530624282410456151880035390991888559152569492622331028643865059850554478394212685207643567170904589455856790964446640505196313491654872714155023019926319839086143854655459802371469836007811362583990935730959517308647543361926125973853855183160828379023825326244406670156440217695975801438251491330884002272758730002188722396980303817364619960903598610929516532547463785882827170324990301656193216505876830123435872665771941741648450347777323218687156775012928757638574046435636265485647102370029660801379886335463054100827758001126922811994884008002484124398713111610671615234630231700631945999581794350596361435084787394121582802347925121138721815090787671398993013041377974561387955107643139767438062907236476547358028915469059430423014697030282057849045649745345683302938268487614339848811590916949576447717053459906490200314407055746958548171267336985354864916211744755210255007564616472755136993003799151217806399473174004300944182187531499435966099552267747652561880187657798984475369921473794249588005812447182594109798600703683559044290930365685211773838350768077179846836193933196713039615340590088997940170210769864148207500348591986920928812016110502822324127393474548039025445056299818710801977367804561479979672597965952440674514010857283052845836017245025745805370399976476392315373616006194350013128992868015646272007661534219382150973463176479555856979786681708518723746960788772493521179893083027046000510707466430837105885133250984766146760387129992522944708691831738020572486963113180258453223676246447498841098856016315777143072440825405423230265392539709127477705413036886839754746607495498215800090052149346093542165813429011926234924125565383304365016236188855813751135190849667725274774493190876468067538926479493093383650406997984236505397339829579174428772521978732220525483231698024706139479462117971307742533729140167841930478969188386217877440442830428751916991553503740592245575106774999404387135934181332021412984660950407162588268036078808412978637691385855816903077901280925244863790940414157303845179414692029629284189654851966976354080961584690995637002647414249176426481200240536644855849458847265974568591409913403821274566434683481291647918916253057843050194309206198879604297481622683558184313456037743667581621708748456038960172543405923012885123687719381269777229902173803090463237897945733962465286992247953575158180277324544363740653310162276128207043521807088172759723363629581841546498527999403490995409828031128198924879481821264308335133026576833795516725330659300909880612824286968458217284438230452729400451490610296745975834138134669817296315510541803329347450611451952346776005024294515562982940745317452399489131010335263442504902490889841838678470633973137710750316786151002128073675522609181640823372493631794525836937769958133718560827957020610542981983819945085116924195206583062269164720335782453705197093232139997198496336378772424513202760129884329925839110269689423970808212387098254544753845725240490660312148855177483897046414779050702732535518533163801790212527038738579632412277484087317982242254564686774348285060857884939569858100629898570545426906374423694980015673939594237543860595548195784455828856911740918400882099161339672043358868245993326370877006902705786007349080195854687493882121565605410371598721344970420441454495371219368134001327853499631312978137295805303574112372019540090114657736969222065272959566619878409617279870211079508307144469064664160983105896722692141298252950985108434190775613525829357728618623526645766271433349220618357759623805829195329789220907609772825357513630316259202858163183215390686782414938485138012021740370276231473584484007622224201300172793957026094074027732227596826361627073240343139189991901214453484081431809591912601926684021201352033042394442885159864534951583438531927911783506237239553894561879284631589712117265877109753716562266109647166122441470785832314874378229437758650200705327556217671677513109327364734142189576395068439305891437978561600067745973730413413944046915644680957409166665805710441581517283977424758941403105012309210885820818998779637775989340632699141298422833635863595962703145096596154719447810349192875926939944560190583279700781209459074672868602134505190879562818389896214123556896314243479741934969697467823965633933818156447532414208801914493538285247430186012879345815094749244927912167327748329126786521734106033009510085529716393172747874122005092326056277430960676227098059418584677526121888783685304283409221230255479476317758317612538212176168430487209359099835691239914377511351031580597742988921343610933144458741389400803255609704418623794265888538337218919278078705056008892431723856323645167951024326384439789944703739476029222101474418711995169890982856588189159876254444317684656128679269155720343156724318064585391927529606534404754282747656128316630328212377557665958442339217181042184526032323920486537449584980845044386295575270978395600966955833283244039370496971914567282808580435593171439794049769999731609296878156465135656539016713545583353759195634386596563583952084978800541243349400890387955782219171723649920860087456092141920451924532275512758061991697435342053422834609805706276130971168309159928117511615097769572780916406109111264985618394035930562321237714290543895631024135413615624889436858379699932248838223329024589952138132417185891425720077966787907166805582683859502739044982602071153556946909496422252326463071556446097155041164331676839750502903133488278864833708379083671710954849764108334422450970994468769739599502604462039398605994680697772767718707626366542974144819099151848666981077404908110119494001907353626308133934633799381764890697296896524210125143809603691631025434554548584541126134558601647268294611280393373478737533415107598104767055515053475716653277786406474745276071711816714734594016817800290382120465557393912965370602999222027969170631112737284433838221578447108584167411205940861878670076176428157722259020625610908157183098087688416987149355379732085943204025433647728219566794089549046519003747001020398170755668079746996936558809871505588020247871450692200477444821477146882203913177681653041135482015029556453056381539834922095832688100762843099947082339024116061796643730603981619909617374402912066081796391366813461145968868250357966493540925096625336239891456131661662634146687074066270639037752113395009036603735760647843764507801287066380968470481364132175993681011241586884792867757604471521155464641739932648465600464727831494094224561048196178047155587362656631200219055416078148682426834227399085161248188474993071285444986005524366617287323699235403714718215157889057428471045538810447088136495759481992354747798521614930403937109135363149679564988612571627929580723676538168702467623908292903173734121032788813833330003707331528474474734487689714384632658041490636008145870548909097943006760620793771722917143439092482714149213877891684157692259637986956750700450456649070690909304656740374906732895593382476243036910368493729973768246559859709447007640396982501901262776450478362045509196376962779684326199570813599785756137751854242677460720554284968375322694901107862490188500139926701375616349286143713724161691939577541444510084720612807984078095197353222628642717823902041292343368498401040046158970064540653932014268861545347910591321997931546635968095784865295278478101794769520368291850374914163030810719202519035397368807443623745126691911214418177048311045640152147854170623556916531761947990590317358463830223382528660029954022421104570244537789655209932695879596011676110949656525177365593976587535971128995512348621951997497589565839815421881675089887847204013470430688667886554780468326012808694550857865267201781746978099629955154995286326661842079831646654666825239790409146477964585293335857038514868575205862790656888577813836846056951515074669804180154965254923922711278938840789498008411635593149810417700760206547237646205472660822698246364351072371223628799830625278363930518002274697722481120686164527707110197818672424003076695083296878050693138790861496749047399066254454983931522830892784583416184293490260702983291666198007933222426469710716954148610707639226958358944348679430253118943337643512885566005016225638244678364506686800714044445854392357054039438656078647541156390438907997693062768255406146243042399419393427816045438459061267759629542457861155843927728995085204619891757695129786627248286418267121672465912629405144545276296265726349212179960160548394784767110929299981240389252703169763349403753551121883359431721525468972917185990870410218883163726747045231682933085339913277550741222669475907608931099907399280672101379617548203975537168828974249647689444610254987399579764627866447750360572894417461101769590230580346017409437661857584827572219795452512835359272501273557784462552082348357609152646289767800247460841296209613738269644129645216011888489926845399577426667929482138916695427546037365707686994366045480546394471052761347147578715245689913332778218577778197997224943874495456252194709493787764551854138231456789734557722917699051638035698612507813189880593787261902383854410814265320900047357819334155551752108937195581407171931270524403300625529724182112213363659508340627390436427840234215544175480667861717673441369888141797840998106827605308733378690244973036390254199835519103759231151167305432065138354505568302069301971892744029980001933283170941454545582794782066309718595498142830084804666448847668432265775888039997382023524932283204440017520608572903805650729160758961246263358058568461756909376720291871557826798455384492202691512748822416040228291149993078983595480844494767909843574086454231879668443323312601374376585975410084421388540956707210873092832289262162436435201621992116362502264427831913411143249916366419196646182286361611404497594920327472518734493850072945715551737550263799142651501089679510559345915228359195539251267894914256874387855528699846350958548770632484360920174828218228558203531619540940846473448781889505339094949370549299171818383334229515228295477688044453933025594335196037520471390556296158792939810710786173245904192114902413634936239859153636725083204185371120190495018910157542063473340318787183856589309003301255970541560466811511355176472143425838601150778875105308337281701107531410831876785224058558503227355823611576305306311603271699788892968233102656452146510490190360626179470242202543572518369056468609075752113412079292861689215843890396632760776005398129045741852768335431683040478569345198212186092809669708292145140084650327214405093123797235856500499972048499214643735104692212149987164705002509963511642463127083391475979227698679835193445467454655713491985891202657562907495552791795506719601295772958686251333736078361524317659841022150480126803182741094139853296318635097818229766232364025976112610202846902939101977608974812330398276858617441745417666828381470706980961799195747066648443620906818799077473152046474073745638209689840881332815875029061481198185216296712342241712660898833167706732347077499920939026522124942000827179867213849509906315891433797967173569807684896204621122451311807935617053543311453507846472584615410980370904379350968701930071317084918581300811588844401557521239930681101286399642295749074674447111299736601981081397272702116259212032189490138211038551091945081543280488850718667058992806544966585025156926782516153799570826981343993036259945905247426378854066905093952392988318202694316720362809864579160861985270768503419015133267746467770045763333035874774803206204574931624500650410715215972032436381131383419930239618160711887481889603146920622843069743441660227378106302118126327659233683986226217467585443423359199261762224795487663559306230349463460512115927193450186027128438354266175409825259319173433560140799959572619318651951406934384108383810033227482302755016301750989987079747632638657365780711942959447932366086884516212751183841436504768563682752123784372376299034743031197399552641334254472179853796110064813372818275831041208546432104875171444787414566157609073695490669969082160712669740970266972258155531822020034030812640068677324065985722698898759532538949041279261907953520952809024947420669663163329186582886833530616495611587852608060061057041851631798940869197888445263601452649128485728853137512126285687855741271124734810969329784774540736420052414128152204242258846770385859345112746437040502297014541490355423601391269382742130206307862821019361873543808312298847629354710956617983458637518584477868165718465030925396497336244429739837488721107884781445381898002142006337613753210666154484044281672097895169057257827356721380369106490507713492222616153289548838864002241910668713110201913802777138909502277212234618480966499981963467795888027705943211155893059930525861316981001309851125591300174945564076462613264139331341368869488890184639543997304312336167118723886279603104171392812836166126490857323896601376086950198462679616737091470190563001604186754997519351982121757454886742278143918231749223812973210091195389158952404220876253447412887253250196767484633938634070262777689903353083463569615557393353176174686736048638966641166566279017786180452864455506448065099984751032147708622253749255047147149072263132190657276421811594288332531137087613768145048382393752031660985580672928516158134935328722749477020305845109843156566656875116481266809751893322797781534534913092254822178818731917961344078730280049001956952068545875652589443180971254386032232688257107280896847155112451648901183226172689716423444025082473731211393430995045242522451530152672872165259111002907418613599569125803582255600198287864418819852748888291476590319988223436061495870136410936505449363502741692161120708325611251860586095040412122690102751557951240407466408497466798606339139951840359823431552399170391527366687793695978958178304175924660093016279763443192166923307427457424963911998383571839819546758192690448436789344175739501621909613980357676915786893766011888391261097669186100813909666403404824411320642138855414363789851508710963042346573008257664042548518337300890701946396628795819385402837113172655607172325318081792458755138583616782506732742635486624345124711724458631797738560156144425415094507638724269848703543639824102802032690162402751172170196197746357186124952113603040996463206020186823481012039983963218172877093047392121378785100548416745748995312493498864375098818451874817787103495127640471755425692255166647924669864050793661358767460651106345248607752654586488406580178640220182398466896231161595969245373588164742520558857387640470528967968269136634048617201665611549528819464842043737263909800146253921115667489709257037142690670148063337358398055392422159802298816050757263504199947368657027489479996959227029064250617656501657103932467958949382948262923707753488032190650769137443666243364759654215241795318493201738824144599171122985349018591754862658397745168565260715266829421993920351178583257035740257631918942624729649119352581351613087741251208451841309553791948265324617281711938223016462227926697976953920359050508566892838911180435277123791990110938458422358734503336097310494644860647962741412789212928168223209711564075008118280858722181604286730760098299404257081681277204432441408815725939594101489570119390182638395691615756491337556651262783525645672372771372017111249141755347095294020410555734596146240812311488613816356267108168344401673730371569136832890654062400166476698368387881410141804245387611058600222567900749203726041511959477548786227182547705070870222802033065555061380668131501830870165448501063826353435735031825102781746679630913460713710741772527976047937948978186672919154510141192114542356511638525416255209262108821417224097917600823214333056252603434544454317782482649960576292975194961324226826762033963000798839641925999329344162805602914923795778677748771721477981160932478314575426755494841986687014755408507709922758029835857109433509111496994667469451656083573791399903694434645026196676771529172950760749913513344945540090359543558018881656973107033330509896819932951320807933330437656462847917914102415806245376504067173718908528208544094473565551588622968946905315286315075031407372263235870109501830798715578957764523850625856598960671864144805793899993856991207062383989493938660369501791433181124787663554021352227070426100431165099780069877802666321257273425243814426661824543851824595703731778835759158407098490539299016629738005175574339491851819239257295696667403004028384770331010770115237115341576922374698096649642324680177240536867262617342982556397005373260710786613838970218441975801422792271464294939031992594569687698706173672905762631519368352201036108163662256025947809289313483423889530175836164233767129479183806089514047511412547241537312388344790883670560537132896895829680448008174339544567940485860871250813687719328546887829674063834320198132099934217186350655085612554420394792930978554092298886434165284509364019293353838647549920521163647286249779499045030225528987854354786734887447752319147628874358212041783275088799685079925089286781672804565070126956038829567807386422284905908240147835350640441255565216884844554699334225283306725219143601034222464286447045710717604290547613370172316963193972619958500673879829062899127085174214853276287661223823112140623526401563230216367579226577687459378805152828909701026843543065596349790563455634613906768280596537962393718837806723947436180921364306956565061322343981187825728390630972439798483094929504494375367453946569691918565964558452853418362144876212333220253861824295607594391493923524811852923255825426115180086898432945769746340256426118378613340730505663953287777310880218968609084392929709297591149016251272684477941402872234033496754224804936039530267824875063555065047855309642110862082977284892882113072501975685392915543337157596268950260253374770242093240448973582579871311003078079822425910026416374543555074318181170030176388385893445419317257684958437779135777680749710190297106427719866316430994531333941135794006600889434668213296674617373838013677212883140889053100589326813175743681670239599671441130066523108687967251688789153109416113774579906851552504063542548120962432847407650053810644184301823600418469741853632931763978840310249855412504942690870997368357839966507714024970216566373281849970278545436274389725869952960198756529998416730621714262068054566864234539111419290358586167951132377193081799384274845623969030451957004354256526229966170129416264431207089111648399340699759894545291382262304629845171196363504007935950110178501996566585334287748486236663724543919253311113736547843278295581055803485185738099234777371332959802740117818310993365498723117422469664587756564209110621575649669681820721865443167946018102164947011378243313238597033221653398298419590500856217662849578006141822392710034732135224942156511585420284741496618606373476771720678827223694331285684626257075372057424117444047230775575951130326714829863241215782828046469631555654496767987182722453076605953514313242076921832366982848623071389489302611827421307827395345495618261514163269659000786572319550151565498227221711680449160878360219902430290544197936134936049481978194714296817529576837913747022594052744372053864620897559137741893572502101109210085810633577656931889301584020699534462128464683871743034364679129807788527377265344940838389905310391000351601617119023475543661769816107308474592414442986235417168714715599881064000058085400979323962857388608935692638879022414520418168895644814780721378498646327480259922833345157515845772378665389693320108323391238595195798877752032884961346448492465827830647591666046127892929324411426803200856451086789420845333451026488233468658541355874041617564126603023783572492399049948139947197629470996720447779523102165401982422157664209750451799374138929477741588469054899059663830264530668957611786294541612136947032523929128685556747466119349160609108695097165395401094371916880256762024880786984247544099534355242699416431324692812761157151303557774000193077351538868221161754514820056222758314196151272230859241793985940729414156549841800959181599333598181805106533622236097728428849428737515752659150591459601836493808067693522955497907769245922164067291192538811812754581193326551828236190941763838756430854526647527508854556244385353662657238729886918985950395266396580455696917929955191037761944829298940856253653823915159113982669609917763675840357845368208758827926632821192995590246371847568082839781142286122030908907537938653209548748798144456456123898253860928801209694173015785573514844189983574768558431084733784964508581650915252043851478046227462554963414668380882116795709176766552222191374771614838942563781550113989458345734070548116215585298473061606311723694525633253171674010049434296221826517876617397909858604576660998226916563413929617458955746581577495672119824058516784845790619401079666922511695744442612193920347049458496034309137160362362811203489925340540334937210317267141312680374989507628842420156990132300218146641243915006097124868910050353972966415403502559252867998154050202446718598161284944861872146617665981908643329464478194157672906473614108412102099598330958215371278631862589837609587043485033175669788597183824086098602047552446405877344294125355115756095136743921560208679646373764913547815704707226570058313309402075869533006899387417929468134057504152235315687165220914813587248878027362034459557586329703857039912010390624056983931801810583683235282800886249366250929697213418761323811256037921219825049925649189030061915117333771647572981462151302110941719479857809486563743066008036565118486792616458076361594765448781271812287140084410003470860102643836068175820385246632069234491349196483051719732411109062991244166961016972948923930571660818031069193575552370366875327805518472623468349049044816360184508143415488712778333277418366109106853170401455142371699706627012897066809789849637741417268833721861835399447789067270747165624413757327058111682836880207501090580305682382165686972708947505014828333162136139581970217313183599341100264923299806943517293021572317681837988478696652861723807031779870760244715291547418409054472603844766541144153514612804981487443361084354774869921961291464787248732814491779879928722811376790842729658758890911037052514459001662555791452285198584384207315356067384127946494863682366044555194892783067186109564433118376514200794354789740228086295369110689343267243156373293785706170249315275166753928450573037889196321592211990464090151290462570412253818791712983346518396423238766841623493126150221700223777145198656532504073038551749078716435967578573460628273954568669180526911702165943258679424729481693805437005409578685508042663948167277586177668579359648619389514736820339903652345278574258624050019263483421973927695953047673714778631629922546200040486021099135484625208945921796749998713973888008260848744371844354557807037390598871710011212929440495867637776719651186785015774662254199377099986693307531467492828687165270237052845704018947093084520937706787135420578892360388657177707424961798309098791119224032808445634606495145482975037839648908130133529823479749906996136623037488382172903394468383744611638026494427345199118023724139950708761348217538279494042617294332269749063330199509388052758036090965054803739010278749606133056227371284958960002883169149641527093045519267060026513158365288441670761428253486771851297196081844833080216891875236140399981912886776732787839000483839331580549191690819822514754257995039492356905733420710214421955123080309597128327500740579956183347637633938513410306333122428190389996350006874425034295561832711661819278213836848901383190879483074368584151060726169631760444753913429309554363941182382502470352501848164654130593731295410944066356654212585343294558325958707644929252302170809003438978224869499385836039694388811747962398589966089993670467660615102076009989893067616296694234391184182365374381273136911321872509102370911768759975065861591349799030543488538658887202703426290443637158684837726369616090998724894558379254650426844811862476685689674844103017120446129049016236835658967667609292754014502747775965881775464657639787388067783882463663865782062434231511641036450472000572978675522033984267092529497801667701602826544096928518122627376693484054670183713813960799614635774392949839940179735119994649942106198321405355353683671508931902281997914574553017598299923639282948277803917576442721152668009602633754378266364239238640961333066096259798302838128040980535534948405331191880591869309292131449109591959361705298191520593380039370690653782500062527527983244866151355193080155002383146769924496545774765850240945242792165138176642439272878113369493480825100748312363477604123583394369722155760990678557879235559277511022652064723443417495368750096340353912165094627100741965922114282347248286133368775446474334747135039886038466598659882075988893639048044661180849616209239110079243450085133339932378331085076077399094887763725684275106867208692397702638418466721681898310896890522253645874410922555405072469697940631211949638903580802942920347977853311753468306278385268898532161078888032781741662580701670812292210334496128634912725094179170160351891726388980371615116580318939650918692297420250975014976870780086814259551299185252926501689462875363554714235376481900224511784573488938188669058772773732111208979843657702620477873230275859941584466272721615481003883156118784700698147478296685082234779780865420251282482843853224931586216304002825954907653550822254196100994316313777637559382157363232306543423462748639452297533017937342129603031830309037268917838222675755887050228209850439518180153669295273845080501693788567344979644860428852231883195827077662593387301497331951476438633625840135433246285990466240000997050284483472688980530011997402564547017895777178636864726604232827989404742734569884031536722255900599923128357366621285803380512237805228507694891884276816047864409585431661258021657949443009565554907562682592210285058878082968012798790462452342536702688141489892404076935554633510554047734724209972424279325087215704600117945527051799262258153347666159219724373005800473840262584246238572536881964800542317120607615443753043453662189530903536077043032962289676652096608887152382187377769272299627104820004991149784212722761880065401599472864281890408177462156498145879309921145501479477355301693413310898714779924895936031659106411948312437578646740085025825853634931119908043739618722963907653463923432073031780625007864971895162086674695445064070185936884816672684595466935368239744196046586257339253501561785208539086971636103305198806764413268675993342754606098425989857049788625246661566024264990835538690980318411121078926628896282283392107702818978722308338447273671354856861246507635016977205793904081566714588464465721454659578120984327671303272147303372351146623767735008694503020638725485078304958332789391676897060416010133069810720470831843403819851925969640435098718029890826462648804794034535566196464186715633702278140563661912720012421505972623340250463241543925722345400742097598822110267959706766162006375428809627164901185931261953548956141034193428671312198781728396859390642091327059842871355038878239608602350917244281026632579096543876999602750553329091038043582767209650186463931297959747135842601328308522591800045098280937075181066299016677502938636023874713191426794418233360983062404545962644109728529979364148545012198161610624030808357342116456704685312182787649184876239373457965130201049304509331366378839380506783448573986283662319319657370618710897620240389901775407234266749705423369843608047611014223736033025969865218057720562570286205528509180061601893717684723489644685757275010759202527259011225823033186128727349091739933125956642941604790325154100528950442524651762301613626517606017234020450976360362357250288704055461294439358597596280640676392352056288715370931860506381848016251462235076727322657985457518286586222514550484165761659554340623408158212313718225104734566268712312156091218716311586826020099024626530999397321628014019132726558350352128246547186419476823218590379732465822948587608783140917061713958677850472050074230314911940532233733390220132650274733955296651677054506518883411960877252873964117033143680933602330701204362658418687813888618220606943533304109539824374378538158569613636913492495261743165815714687588356389763684958145505411188486441451769916731949397535498863457546826773401357285509690907798523870141703214177852375346673040285881043114805701389577135212817151342926494611903242127597215310829351256055083306146706704482360317303966707927767398333682939025721219383837116476976330459069109248905853219414500795066424879534772557901355067794652268019704972831777724596554189156304950000616084654312307282824068391126984803033214448135326588918258157429740497027374509688576477458020283374054562256848095237043232289251307713435569828640787618545649130958008779452272283834742659864113183745285937260091796390473943886600837908126764285834829374413010814524170414994397571884982760450136028212075251159366470176452373877041742401537950063710296365603419257380530210591484833549804878290646993728443892192585379631834953789705826898053945602815766942298358087239559916514793759268667779870137294285969591130148539118865854304193467450339189983436504615453935950648185350832844610293439391954349302801142430523752636732648530268397692357582205155756483264035793196417662857314365241929216259788195744623958327113837811344615425027558454573197976455979371762353995910905483666181139677084124999744380859525359578383234820834772724575186137283870161141631307608845518313181320872265705176297364628714419626951981907103572145967942161704040282846982442371495343538258427056665243608571016065869291274447803765474489146984907782310086903919840916763416931792975695584034990317857541370685052322060646866327406181994568196423309592439553471147023782708943425792632874890545734367600338957484303195189802125046629015575739448131702955565324857627306230945227803413969164622977722250617745724906018514007030727205941663641827070224174184031068156110856860080707353103200325786971267801818128400388537162376655236658416162422410864220743859322790127283260184023729821032942796562345551532533202659217821705543813674574447153428586214837939877710853745688377030324093005595016630872023170172520714202065672933001910169817263013427694250536214682839721363226307596654351597962286506197086288351583261973531721506420200790591414614428800038459482222533045426525582326547940263185100085895068937386679382697534345468867069593503529355502188737701188859947608201602643644113000024025928064311542572898389883512866612723149782730806641825014834205216555085336287751576768455416639044284739693416998951354251951676696070210114320965011596803293833351371004542233917118819806638735261024331469197751097644665676467536357673568813414566978284392716022071922296187815500978637768508701079934226230383408843588425174885454641415834796616590907837495490232696716892834605989717154458349450090867405215859816930714224114911272519271982575457083016146327939976871714213193419415337621158006328236257589989808049675262294018120770040790854871766245104340283004350472413639439396874074241911459326971472625066915529457656432050232348820388507020413860152186778140526670665767338584142936619515882325580874971318886951043538628751409113314301922821215507103879487298167207893001670492870008727927580905709629558543146509725194796047007001707360272889681626497959527707205777623479598501952004027195106677540159337985085651486441070408542120262887131908086625480299703485061266314622293086372852667985779454990191590144398846113287510649473772676867241425275817022160305717442223226582566865193883960625863861495098973962295254053920239280328695172024329792910250658305303483157787528061526164519942931058869600454086756493264835183203124038483824453402775491650360674012097838256617406171281227657483960679373384964243998999612363372537475932895726150659223420608608146883093438644536390185396606114790633625698590374203171744167685696691898161621998339330937637829562011227490375378635037828322746219088377100284167400868762593443438553078570417921939713967050690044157344679119981580001718944969757958298141951924027098483748650838163930654800326801393478384607771018143620517481796245687634903976347397921043791701959143283609312516091015438632797730065468053851687775077487010723711160402627736993711063992640374192018945955115270807312688902144536284404213033844657839873818395816660063985098000546918213280135412147993044823517795270370122758335990737652832650847856506469565326309882785365066111804467584033542628938943382588029911899585718132950190792479541021763678370682796092404807572208902569285837845752844894298105154392040530492193392660850698296758851099427377992040720461815937941622957840492172868750458136025645092084029078672643970109151921060833727137867579945263698289739679749983878909276004961942228835138303692912784939260854234503688929617478307644678110684096582455457683448747009234093584722588592448509184383457501905745796147055933448821264992304091572440722836431588624528989403142884347933436189220571734680184793790998845003483463058415328215660589049519964181023600692132870215813232403736306156470659054795697334418142776692610805519955812223452666582683196111090838739480839393801708445081245852594096280042586956586387889957436733724376612317250192556316681828171732143143825122092929895955070505202366170021209838732983870455312315215184476261915405615834871082566298640763088536896951348369370871546726699555364488776462729027300341833380510050002666296241612892736028009952558798763248843337916234433740495069298591052704442142865742259694462700077202412612995332375511334456202014911716866258437526990101457977494515845545014005711393333079705713067402976446021904676552114191858675605515266899763411169278122796417314305448308104958971416938586329286412646122816130352201087074291366167967244379675238770403594975126148851508502340127429074851112672754243853361154375677763233923746245589711508467388310442665921810061600908485655884827322705618999906645929144511438496489147538624264396775865583464114946279233037970145185577147039201132876471786899362339833196697740835425289151191505031864011685097995595888189261783809217095034374134853965175862784477960194279738060925201370733100599872596511261401175093329633531164594495656923411147279896037717378427614236420700299953155392235436613319940434599600776433495454679649387375346072280277143208302356052466989755264300229285543332866718510619803936804930794032573429312494328536685370700229178023248433245198879923096785552684369233211500857655057299761519264799986457866849871048761710869465674264822615431051229691576036259505924138775064721151120966107438838852157990666970991523063312483210479073951070880374068071537482867142982931444096974717438791497536197430812774746856025654222819721221844311099906014421451544091207751417436543667644047889717587529889614203868051426215554918670052142462641025763169900392105656268446425596514392498067003174092979067843910451507214942150427265098803983240615318389608671899964271322729559901424331064896721820686085172146550131954055827326072500237088344405049405579376911994429609422646284030587469540379778270933871857155173994860634007712709541067381029254977980031536427839731560001749929172429571058075578381448190109645704296036692449507430729602823868980836129923504504896441556438933821465128536521750029163977189936390558594479697219099551894686840736401967369631848641121338884377307480767413231185748744532588847728535850043792667641063236854778582112231552182414913217210267513217949341000158177777490418248962398138650028732938696308569316001370871411718456091139057539907818536686260020129122359842630732723250556968719536392384440719128172612508678495150132209866765000806307810686961812947065406847961434057169315744641417203527199835717032809901788821225786780228771629772037606113539091576945031952312098790167050752690806389538449747605186122131503142555937600654228942640974639351381142458889821930382099564901050143528661780503826443577168784995458997832034996280520201506794864289882981436008161074307496255710844902445456451483604362393645143944905950865922622891993606076106359554659474234709728029872924135669561353679912165278601355824123123098095818316465545373849307838171238773962699628845101089973096059602761389227967117345904892820944934780689334203209294249754995800583210073128355495743387594255355190736216647644730300854533803584521939751574831177529488275139107622366406958322216286636081163752254836601759817633857566421451255320295116803290318013483022583847540734367727463829176577279996144242338567494209831745293141914504283168556407836648023982299171857745838029668721629313861623191287470248925836938181294120804437799822659549757232898219790791223605715623519275444118186531503960858243756438287647405062054862372199378813012031979296850625467179988968362183499496797024335514628307619512560147637053568358282514701614041385339308549345978807168958872051452065496947304953942393872330085271578906525576566187608063607521161965018345461420180438666202357561785921688558157656752007639626798242149140349776895456703274458846927949158206077095994521408394004470348843461962357375761962493313589826139110722718413973048015211110874226376347676114672449842002753167744445669949869928998092859555316396841452895543049690900992866113044638031781058865079023585281780878755533865994900721556105701050347234380589764872138594534653655601209309040592222567955180352689085306183076051310874567102248001098814841490014735256434997803564613482712960486530448916776686859950603608922899102805721405931544364626984538923248304617354640170959056171176647260715376017414936705595147201814943100735733358829711776512743619629284068971159240801809798897637981034835203203023657695500322045750428612394174824358467400544633730107230459423263110181508549504275886796078715539046713677411277355363184197173173037385333540921599520540681021975983927773541782669125933106070110642378064651537623602896314917364269756536097165504327709375390025514081500582658482287501423913157083975527460463384753341517355060527662906956556768205472029348340956494252781546830105976762478873540875714051019490520336524404938532086430587914995774542246100608665657950531444153569887526523739490416530474926294106463869959763286791411729092906985193005340075942958739678099519853817065958448244652671304419800610942197170833470606725772624516862792028306161663399317045617246448020099371737413547396627855605286773576410971691211872046736166794644670614655858707149406504863339840497671911880882331875665307510092559606013420245121241859723494609041067612158087570733164313544221561917726107922516677211858588502496659415256257936591524518699860376586630199604290952638643276524050971824885994867395968744551837406363129376990274297168903438324107156999444947452020960136896695866852732064768545860489123887639444588349584750155342475928451795296659997032800070808177839107253237581085113267190579940139965796465562396040033285409022997635948710707762643818397084977998407164303580292180103307710226606822403872237566109724659859150571147459184811656636402919257413770916155291267692172384082854120658849716774813226858347199701353992192247050287564816692654194023922243744693063536080350255427615263444736041928532217992621744252422670383429084783834155988622645655638520252310690294495080751165976159844282787010518213618662177684832696355585157391339123534590832401240176574539088144555622417483870073701714576133360244007259881092004438654847077136257256743853335196192207088975631861241740865745508735197636565935397309944743174458409593171841176714036747765881700951803358683658557537144742819986329640708778587241088462694300102072750579925823909082915509711084063005496785752897077184034205152320078607891724124507021144465852845903189509508090644745121221245225010097970603652315005655831837591635992396732226840646553205023767127437528454003974200317758759277095093306130636131907676936941577033763786022543015101570819348852875733496007869219786950500937803807252418692564394898703632292472731927689510746015440157252826725952578856078743106141553751521518010937011947843837960045078137021757768593469780769196644538352675130252729116541776296835229947103971617118991241224330081266472798750961336035782368302239121078599410189395656263242708557438568875176508445055881503377887281105632831302658518224676630022455759075430422343342581666887556474257096429587986095641762593433600387464052667402812871952531733591486002894417054083139088199998081514462430920004940360637185336076376028209194077850901804026955125045418205662337750717912636483878159724611614893976093419153569145362307065204400031966719398532464573779908303469896180278547730916866698185403658542433829477541517246114163459377839986077132064464837875710901756020693127037303923931895498904091258370180464415133424333291161653622099787959524968119488151337030668410211330066791953070993978315409043298728932084523211242985729171584427990528067331416970278708322308456064324134416162095765789023056685494597250811602830443534054869386670644391653534497935542430693400875982351144082297061924735581668904219910128607221179967247858018192763407756701623943036324797902733735432048965834379890929376985416876161141551809656725008998544784246551992623981801507306816478383258107330328115048434600433415804270269919919182601889979952896897373937523516312431974781872368384567518241445539089166328925712071267911049468836406356349660015434029293928603888578090018306633386766148793725550114643782570907933568250867004514319256378359101428670869332953147766263918687501056382294597009827406564664457937830961898740779711365813128810932112761315492735043636719334525950689552108038138283173739914163694663167913329618968556158560626975169695087603624647860449627613581728246858542212477907271601277952188608663665701980968652774072787508994093065323847874858076791220750661144039084646533884176862433988981591219746409932321509626989270211020780954828467202324009330559503739990979170864131091203321119867534929782406046878871182528601413163766291152789398076063783292018860717183877914138206914927959316690325989721482775558141336864635280127864939308598799329170083396908278738078745796244495540282864124520536052291695410641824050646404591324198979673674129353600221035195202773712848292920313107686115745509087582267385886009996503214389448313437997391299747116465318103038373248071157937630464010828659322828378593635234055347548747608635156604110486950911158035546260054304814144447024060089231460028107153406455174248010394098716533788025699113704730951334284821383464741289860248530992565166375525053082315902084539079714887481685980552849718249522620108282906040774220025948875373848702355164416859949669352261925639836408628714855436404405285752061436661559249916871244225009230271283331431237766984704678906978956111102616285182458732958055199353838563566335890343340798043696135511535376764116678755690041749951921161844422041022763053632323078774528491396955183835678191840579964984413250410542906382090751854233099114409167869543091805566336178868846899611255980544593253088103381264793343579671627369322728702041930980844442237652823187486934003866722064362079566589104205980110290608492157381441711117088869856411250337508771018868179734812171269662392421106995971518818213565610584920153914446380328897337172626839517233844631465013382311606669174631506474299074850766759310834780340625051136423594083455456891642945164081596436196187939208977448324171510155106693488015458956305431973307858805674744725615238929426227149921655408079703012105408004528251819560696334850381542781817062710290494102132911016286117458548292637535516628369564743452574464301791822120330988260598777869081213038370892517974164600287643205240896746189529697623974928186073029876093775934695430617593470376488433736623668945877202242794684662005687300378026798209611321649168762893990460059369431350272890420308923696743867520354711259985722375483982128845301271514245878098059835914479440677891772890309684080832385166135508727977657935875016221409452061992185303046582007189432136496350606988726509971347697117355587246853377358667889072922788522006528412320269792057068453406829063662851653137620685881220701969266397526155848785160935829174739908471265692346455034820382814706257002567019702469839786054893331664032735852951206997400006817476413312333493861037389460305332204371895928248946743627760158932091974235440797029267315628053708032690003023504312426088202050086832019365484845497607528260254922857043150397004811411057518768979115013622279144165137293139404563307472067093734695766930240677905741791668261372428045934284476417418332809385814765308094987557805795186500803074793049636664431331707055884611422772250115476406139481623630055342568990571369563117583204447314287438131897453003199823423528654222168654100764966451344913881521731800163927050726062848195694171093039538647196465187876442604205614071629190853880698928244933612320936993414199137778370931196726123861802335583719844605051842198900305001843754904467349070467681775675296997684775592007944616018183874119924586260867685076116379058221308597915604002179249374889137400514336366669506096940111262802581018974040336274224235694364358296332291435905335523296921658510136034284934385463407742628749217994660208109437335221731422064263602709108282555500593639902285899208740546407531058899407230661514509011531714571783462846073564502947061846480960248930372590121260457955013211188206085800708255345789553102131467525199924337074543047288214204387440216588840535288542069931690863274697287254118699416479868475528851836447125254328563673301385751657094723445977885293873792699589101564508644067195672088188017226377795777341651336817626419471236905184326987502972160430158221805403472935318356856196586490432620675809184086226435359031786349569459816701887085400348437091837599221812638366176719239217477765629313616817666677801676537948326708261971363901481667209355240321027738958947456885860265169603329641059235156743255197186343489003549101125709736827817611255432785699183863867219433370978155704844821319586864527241735935025918176515889941051113784738683310595931629112705088123438179455676511355902351076372636723254915384847215089428930274332591951092614094590322916398316932201202573179588851751406236736440342413853769520933290046727426526472264331596143708076698893946435753924849789957441205755656449854097818091276779709014394529864317162619901566428304619510343042142477227499368705421877964389115673099451710109071433954634186372320670259975846314190013740769369717349062591225108667297688364862677956222630458348249885205566310569930849431112889078026467524957568504768295714959039457040354079328056274678920559877507925939905073137566990380719776576372411273660814873232733447695125857296509594698209880544757247853246731998722279186087033247743884836188655411653173771980863661312262635210313226901656237840799620142239390177618661071922961646866552425045863780848501394288607926656813894876742437505250175999872251189344895965643260548412655348943654571093850715513985017842928416892385948212490748355544417335179182737321314217078565970711140833641687471544214909830610768770339510083750711119898859178893815395361841531321984208515021447098500844910448280247497210949180787450358197089648057856771867094358560921115442084282863812437510020559497252613202983554616382561781965810249403450424278564961082107566885874749093773389498853343874279250072264264491509860340651720212882460028307698457319188035648700357760394789536860235753217039358388085875715050328572912372876274962135808509212406198191759437480628229613884882155936122255168535218178490530913625561511639957420296361392720852625962823803435966052270137011981265881347058962395771423458782560317472084407735687292359224245722402603945773573828424876379392236800244200251548672918916782023046244692489601759338807509218032598442221431840769333495136701249258041512573167061601662467067750092269568469024599894267504996513831005396966602344565635877326284969550847434280444982966650417053599773826859063485170026456229855764784531909222223017839813050224787281951172046638774077064447084431687770537775481099575601133540377523801223579569665942861194933058748651638352038836181217797917258693209310449177009143417955680227381353708127967506561949536816745800040576864367529997232077225020874360546305001983869573380340335523742845590922431455623777179603473798670765529694228810999408015842474041266831532766752696336570579484822829779515382757416344274319070731678930838813546122976823020393234230938475383399958830060087667449846872220882481575023927315867628413494438537675815414765290239060599756376335857711705719303495615666864359927041671979402804612067349154670152161407116718890691800270635747539487525792120153225281855058387088811814730839325970892931958553956775443750431669574165865174615631395896291008603325457885697454029734714462997298532323539993692245994100309485278419813835904174285757194007245186800342359210945507033058936488744742837569281027354785619120559910748290929183010399202013192483882401635994268208874224978472010890442732666423901168418495564526220415360745676536709590241181147242271862425391716830035668132814700928193889004457357278776227280841460978527103756046122908287296978493315751291803138296265492113673995357678577909370227938895138719189276259026565942920116211234815514597536887860200824044984402175345850685654166001359265614752120755127704203793429093091605610502138209971779437605698545471074306151074350097883370517513503882232474442396931216385596937241925185775292183109492084388900922767829285936198733394708172608267606472418656801590441404379422839891700416687531568264303442731717490014979434809947767415318881395286340267337299395845744627807075966491681299485989427060779717296044383664456137438532832281897423267190732531238256593439878202994436231234086645127769922350556260135473138693777974189916663158305001307877693182425308636953474654071452249754155386826684626532214898704355910232917788641904209204972486436303351836183981278595770256983601021309012319259407159747626954080962106059871516670235179028211035292834549043521956163943558449097732646876166240979108536397833393733324240162092484061665861514741967864981234650446659576723921885980160224623704381499314549790326414098582009975673526196877244055071364382934479302060375701936130875662146463793739597793232042874501507595639459973083462090792588073136403398941648414164513486851358852698009098820568093540754361525533010674225051477486028536007581812666808333226400006083029147207931340997663572724646888925358876389507287358002025204488573207592458065735826808234800922511970995062208718102877621556624120926095180401615058846989925551448356632602540275099143603656016357291097820961492816313925594324573935999203478677080307576310111979701736352378506854267414846033111436851000138329764218079518568291696459201259391363610775628659317437518312743361674777918854051180687556991923909113677207990959576680712561667403083826863239367365239018447393601678602647561556882455429602335480685991698899422626732782031127256276157146437605834108992469279322911973952559495835405307280671178949783615208982303859278244001967774802323696304061643642961638489643183787603023662209960588847735234969128010089834074582374976661912387711036837183681533268538459517475799743444860974718981066140884671141879789254444570215010656890339712278942259666983204887063099864874579380866095277485011083650416975288988970520861461040966597186770123798027584269071778514473495813956289675985730557782606233781708530350366070711132480885754217386030262489868506503317858443882770032646520945194240367155365772982958062157072643071846580388940959033184552454411510670892227461829910306374592447589197849516573740598726438645870633323759953954994382931888086995394428323551181598940826743287066630943373160760995981456941589698689810021157056810710999290425178786675257369266399995990012690250455835583289362309924175797192242531097354247065461371076163534429835542853721476000649137884056704627793756244216643958884537708179623519398705957005872997764028594234385086011410766348767591780799432873876755246671129278220805007462830206693460812503738122788968719998464107041025010564888888200529311140563235957923004260979932445706087661442713932105486622225700689015846639111104834897871338787500221187743554211198426032923027111555283932275029960252654217068228957398963447998898249440580369488964327300313940125853623858441605880626267136932093564048450283685160492731748512046155994276974433000635989685165990784599752545900411904210381625838533399239145274954997340126869323392006584581669749973562817975735080033103926705840196071132873638297317532725942635987604837387095650527311899649519415272609036421149875935538610056768635039718769886599577727546164254707515526498783234177093067919778576853069276038744030777944327541923461471408409858279373158772648990086806802436187101133954382362442078316731152777988960066560543850655082242989210062112771026268101465934878252261545882698740503469760765893570724513125955447089044533158119173268093267404866013445919110401378943059966747746383754421057452443843019917505875402274224435257423275561028411711634353744102311293816244047402976722531259644704809128104813264259292470085813357255035777619496346281225311289182323777970259517382854275975733256619554466234298518420628885886709730339478834159068006728502846915758337751909781774708278541721224722670696592795265980323872741226490880943535317914417522823798915424500742484789614817669959859212714484605999447500025887748861638053741454091729326403865141644931280000152645748473396473551963860486287152756552771618641923943974129394404940902095511417072100574593386592883627136612646698638660402191296481490416514251545456116022365399321219420522790912180924018575302800302191857165382356673895767412091156914383469484518429182039318918807792334203907176471273933369013292460392842352604331524659496994486223879576870107193527120173705121320357325933496372265919525860618906367370663452947123922991555054967002515091336205343316578218520375146723911140272076076020554886652080277572600452235330757250586966662159729527674534433094497213347713712192731217699161649145861109309311582876419085736887771422428394948026738797879790979110126410853587537745966029591877103440014025102274235251781525484782994116527094998417803323947868338840906951420233282125488273460290356309486457106984702526874157834461737237577806805814397042553028140786279581264876640014742030182504404888344929637154687372573296299448981954564297397621133625558002917511439917801691793283551871252657057426751261835623975891058494508882944156028483711946038254368815023280263968970990505358472357158096063494606616982436709406533087537260634391727894235546088111328479148833257436625489045005432493138222870251300897815100266964943154296424766730521651597627190367668082182881156930052688398794813443748721524930285271448810449209658618953860864966157283417426987272917298551495739062768573813974626638612479189263409727504619844420227927091525660950915299874978194111515326793915687847618742567394461846484577613099885275402799606938695635081018241241376883965632317648315310012690382837871929449527045684476430833507850513667538121359773889524676212338651313272166630773306035505778088210439024472865154098494482337399602371793481822586256729244546034161325830407695806899784083564982396361688921008222237954727068816043925362010392887560599035331481784612402086068531835526911712606367777665840522315966961661588429356279349290523372691518290482385244120254783264904281824309033311393840978409507942608516773155591907820743908677985734332476278205819908078681637736341156972729090746030960535556716848510427676213134131228673025116431965420623555334235532014855088705310054313930479595836981752656660897057313648799159501548426931186411941414292699834918775132167151425345567923309792468989972486858227270793478237237989052747193787407688784452281482506683009072216914966362958618971760369043690517051265737792724342447694835334842618841622740753289769797180777070597181005016134774812320756928890304408674846839789078393313519327057288671718424938587962751903917574993525846094040289186199414154824823448431115122097142812870254549018013951137639025388755036945156407523643756507325935557195738487176585950694070850482187161895181540110025496517814224614973464602700196277541203687988089093584374069999922886321778390551801576895620138627668420897517513180089308827230155674164219401934347385671825023217268040804218437857362140048192980081496039327590409474312172943417403186210681798939141782014705528486285541206041465614477462433203886268530533403916041102170691581775919544551169796083672602122435817694230300692739954197146164309993367641297786463370888330023200976726491386178269689948824853581439712438166670799116125950236768307027455926248167188530650996828609440625622930970886122207561234369833653565023506706376732845535136864679513315392898185583415999901776267816538538009686324792887592930036417937264077348612924494408557119983089445226332320498117172268603317955828989081258881805970448110256753522145764993889544575894898733015269945513621159428116308819376442557842010719964099320183882761859876527097179732234118391654607642041377327726715240441187549682800574217929778041445231356989511536661673933987141512390465040941896097103384497016978775464150808726877324481109062098550128364999132522775658227085776638074844056790658138838223665726140721541035358399322375149631285922029047654454752975939580674919579114897271156998391888672014088389245933454037850446159174573764043706752864338268002754255640439484901401277642319435683665975298634160961661122144435695591361506213774257296832087478358070131156126161343605538762836166395790146634232914015048400514235968407215848557117217388310370691496965455082048658633381211133186513149016250834820030229012283961900158192286535217151304925763878131910512658428667113736599315047297320714029901564013185517921822259411277643261155426839026214702674601776472494105594201246277364238943506955562337021424185014307196992541429558715628500534280464108347555035203881044793669879583539087653597676808931773986190226798549634703669923003393718360770126983738697982115194620808238593266577322144011312348534921942856129323439254149768792708161915141644850149300528643023849583246330013192405235486538306863842358720383416762335243966114209716789174389205597808867008214726314670032457444706389445328538221934183708817148716972493051021409967659371552150856874739361391168782374492903802977012259769050815408170499318331241026044371675911932544021621516837093337096575540452560595965153718147531497037218424960104061377079766143665565221033594444178643716648075126563733877465675381871041757163049190766275900028010821180480581104122265575028980535199314793317190968003258500692960148920592350483846827173635406317715848041626378159483166724606446549042497471788659324010712454177070958430604135832778244464184027515562294601222825250322133488597986154589963561039727047353732287524041119422104115218266125782652879616344853694154552200564416755094901116880468417119732866799115691691759777057268469555475071384994797787163547748367138401356119675231009691938776660065016884724133932879867756455923810310433803082756712968926798672474844370522033266442490708703269310507145142751625716435852265364878032851444701932888395325311729403290353150060453735664823390506348671907152639058688918398005424548283580994651207485253323481280726492602447120823280700851358342983775906837557740339694848377202945846365254202611834836535105193889412962532545283274318214307127090246612228316956251229643332823109933655756307160274938445400940417002966563987195358627164054424964438193128403669014386328000578283481097221117322071923844934310748888867082435324112288867013003901076373399704857211861705261574802610970950090388006014987276928025071199028635425358617513726274817662086211954651711495935825329523898602700896552162945731035953273969401479827798214323013712139838513075816113836427474874090007149874237782847535208432670289096995284236335960359706341832147646470194914343075387677884958268031547708379256213418037128601913595527721455773177176656315076988868737738872718819258686779231607086476306336042845971396382909622280934204576542005199884874973668051526806015040439021484062165930576751850947062556881451668001044250017059480913911084205094748712890033855055637278225412164660043840209518832521564545931588610359997118579688035758066926891229706947367520917256269790404058826267054311555669736941609095194258587745908465091721073356746907410804316856373887982644158257505740752060286223293194594863248114602501223916457342223846972727263290678004394426076927697113149308942196878805037823401450731422183763521719627527046105609052591963628211984345989915676329916960010964930525304730088003025459357560141497611751037849213312824949673640064075383208320220030607247257105064974521505495813990836212257210213100673911060666918008161104910852060587222528862500322641013333600706566019871334458560070385993309532645098323726052044567758767389359460819350600573998273481560192871654173153997969787131868988991985551849760856303901996676374980213985667208499586191810123732830318394617688010316677932171551469916019767604818540582024668102252138817876042638196064950364451783891083078299644592793193721199257611712971832614023100469659033386497648956203272667034722028889721945739323202652716231236847404405050953118623829407432721885846786001805365409832234225543418245409340284260090789116376272955944893470951936499070604118819857669953789948359055154299846950700899105761564597077042409068123667039155466678587315103879178494825346042229321146585967771864447489190275267079912209428046295207215097977866176824719510703221932379151223808804599288354686492657271345695512340247550165237868927890045671901140695356238315125266340949572932006870519248227221330873082708877790501508995938208420814323313126907701078306279610885345938009835777527660510146677058647216709256401846748999834754034833225878339456261700094435475297166063536867572149838164059908624785907438559112174568966473480759820221757225799009879718689675012268692400885602723308935319431056393593340933215391701826991391955638892831858639890857634518060040318616984813995304200187313233504994398482199655700272962871863513012781266453750440709094314443847265846892945260574357039777041312916560291412877251349973900918938332649610385755441628641565969352051109621028446652706211088747387603716728288510452953784381648868547250408619928694666341201602990082597247965462143149000819429354891420405553818693033800429880081249773227778739335221887839161611699710759123728086276998107773916908150364440140414020966085128882555080381030086690108340006020987492322451953892476447134047306950968972329771171878578299699458417760017301588493667013122756222661248472393258331655190306165740761084074513642464630227403996328421375848041097328708588974271959012332261010680588192294560970385451242405908668736344808530918328222281909653116829243865861995301655774079398083186972592000036378777147453350081038710618615095184846089526924914965021346521412021496732030787331098062090014334411224288168190792104015032403744393360625644932571378170720753950136930398357281823940731031646407598673594413165870802919119518050882459375389751869451495551965505524498441607319758371830439219528214743612172765487096865267187221031626894732561956781253966495098851829755447691766506021528251188659909202179859872754554271420445158074199447069775968937571714726832731135039314485480328755940175322732149428887680386115100185694586667660337424938256327313948437865531344214262427347603599085555293458404859388552506194178469068580289612816958514718535050597952012605746346085919181456107013124221759763731044148901598394912312831260765042911917358947273872018470236019023356178084682007488937316006426536358234485890129574844660533112174992143105569810715265508273935622169632127384098476635510266987788138469521691116669123347160042257299111406141770199671336063030571281738757100884249149311216359101752679414140554124337158922371722591694639856204722395371028871752602846447303218962039656263739701567237476723656571716684883951105057522374713869784698523495751116152680713702672362153636933503461193877979512995593361271640112065685311656101305929715143466101166224554395026766880665225350605190453814693052675005656961939191997178931558491303665789569276375251667235309529564049348951711576150890292336059684242050087685026896474623736641476434011378064347495350240943852869221958306866352925492579795705462608427710714257553054256335751345077195117233100926945921960071162568199824995070832056158217205331237292306460099917359794399421736636484655863449432534287667637033243476571183552968376968501980405671917273529567656306421103654482243253104414233791525008983298069936369320541204079004722711373924939879766481457130634853362455596383935715073520448634288549293990671020325380865836935944132185052139781217990846403891040465336844766124746188652668296513437303424237255622707219519304174648661004898121892269387587768146047916871487205341860704726909548031307587687839548747192740536536740488990973710635497023116585833975474832195183120465968781071109316015672797874943258141058552322101069776354969429761427449080745368479168686854723311415551451209755856829706403711195000123540557465203285257359547471159902268183771146322578043336436314008387954275905564014622421140078678928108514968746758915120213794743462642037205616079234745319399198198295700279246422807792500587760858381809279518668872666905837424567271395234168542191414104570412526624165974059411488284230855195668770918347160976498315505198212802493655589621123199931126660886157637348251254296179871303831546210403350616431718762159902020987452757131985868306411002618470231491364642772137102572534711141425853705771946624680768432597402209527856721321289416931169701758263512834177837773722154647952721230480112624073344520495754291001833227970113269630408248445244926144068829588524160961497215567163454659395810642238835596498198949903811883457406738123373232422790784459583034404037584262193206625738053937016065709461234502471091873211640880172769611274015569159030773203275414883256573158533407269968646365420584790573672035575269489655940768336729633166456957341848081649627652965217703391708081002842232357066731883209326296002208080623603116612547839521221929774433302382815673911470662600938859684786909969825337794199608090115843261578413829965216709258829150768355345094255717756572894068730429774573131730470896842753374631106402781353403464003149130608932157086253157187588238193163354673784361645222975423683126831080792706464158078250130785656456800668091272744803092910482738518944042476102466059189227987349155401839526383952353726603125546462972731201637358249344525331617855605855727098040069981118888548568999907819081990613569163337020686534079545426270497177684875397355938334732800097692958445357998237426335126840595645033817553366513582765369102368930872150272592233821010966584210028292687886107755237708695964965686142631563119173012516977607208670115565283982715574737305149074763191462405642071826448181085878928188629742362379114970967431392877962183423339958565595633163560518964279896903951027400428284738854378604645339478638902388605022058005334036119404692440281266497667608019066793032411054101478999928697563958318856944348982960944938772063985202488875995050362045201505363462109349211543173888842462165814303775528739731913033114166770038508328032817802846710628432901321801352584574700869915928093893099210565065612375363473099312765474305047309407623306535080343059423100797219296325711954190714546002172788223667690244340954623121398430760854258543822761532234648999510966539944184742305817223961550839302646344474334022931766821057933320550223857072952008563938935889506700766149507144930701910465313166178485254202538581896853345190211773694380309860567137859748380123278559897685957703845158116838683189649624099061221427367275905367922334961075268960616734752911465930561511207947082978406732108779647209579469089242346230232233187148887989576330121534402940662479421754746599107277120603902003738874570859559967235926289332594485372327659186930979417167616963011487048648943351288589752224249620672710614043011434708049071752096189524733276177904774268980591818000076205874629754238917588802723203267532252160950401726892246550515300544673447478219152420876542293122919618612217869443930146348007793120830904453969072922974916063892771507326653837454075514395687914318944293078759893284676659005879848709615292759337254969933168864064925017200433688703844872439694481212421027914861922964944757379693617679820941438918560865740222182260278453055163414113463464061805258697312664220588363328932708865126817561443693555700404891477982528282184555689591669710929523464435418714784160418869960904478855914817363818455873244315466321784199495813765964340599831995579668538128156753377773303251249904102227978971554675824714772038983630138174691359537158521010194231431743134326891251891781017980712827468644501076324765634607356660498384004910713026899505408190610247600414780294561566526612309860070468522639728114734286512885225074539364600526297441815406182278412059492148332470194019682773127946250577638060047692347051994322014605741155302355499574011830572948815925776271129150518539786179274410333059594424945306319096835693124951525770085148976962576328727471255990863451163060454670032874303286771741936176365911185818479959500106470033110662098602408675999236042917855448118732777280533368438860260720482461120191463122690586899693217851027246098924262080355239603011445030668139259357143352183234632008570912982660630256976851712890871407499473514408403888274128841951963561065378806872668598285603854147074228173396816211606636340726053926151333127994016709278601319011482854063866846869566389276965943926799690125952220181162880927270250721694664485267981268088088944462972301677834037750083024977312620414820188856321121049674229702649365901490507011999840515119573900884347044622840053512588616084035477733204535517563244648075330230596368986309645487960918017557822229358683551052011891384263679116883392080614443601838633579867303457554840813428185220289763759115119685732430986901327786999842452196475451596713665776643862764197938047338757466846903855595403275549547134666117581748465581299103858740860975956863741503920164792609885744402586149054895545885910213863356128204917442052615000859291790733150981032276408349591380213335886528763747539094740951687316384524721602388252676018351867130495437294302734055835043706778168885478210477803770089436070779175640760382568438930239351853290513653474640451053107210717160271733531381614756344365004081307610582800532330366020643665562356771526370354048056846128795212261870187037645379790095172634209036836359956798461265303328728445548448070199069484531319847515200294940430199299785326302637650371484200370353542758466281311351545812103352179799364192505380111981522765327469176403747415358763923121250864434492391010728646362612275276706387654091397425532275169236740973299764918410251388878658839980671067694579039849399799084906151704468940891735116540246885803084770773209982558771320823348387802352315472003159281325261492199525105914473176685523827141071580790108643032635576266377205301537392417853146660707556321066751340408036129342984802512423569280886872078519605892614477730093680777887917108423003164898699919757791899910408916336608145194669462541499175526709338896446427062865736659282445000637461216338944883855953025639880055253607172480237194663764857259368433463613160435044211660751724038040608785335671966970820827804489331743763774048286913536011007860420582653092255063846756551976491672854129872080776405848566609118351510780230944482719236442582181725839198886857710352801600714839892547435418963794432592879368444437395269134778174561127200878965269702494707965079355654905784094025292986835737117351742390673601747762569342876451389696237921134021550379032409718413436896357923608755465270810099760288118126859127703577246800637657438170712185974200346807514855023260527359771682101551202665888258432566502295786751153544914853928371623459777290610871653115687190639300280116703627623780590703648466528607114755974781601438036496085104473201751084814374718106383275583107651440664614382229441088157876903247941934443359659184612948256695134918917273823439233973098016507997036139106900940129770402440895384956453562213343381203641041777783620984781993032061425619312608975590607383721069823258778924655350539877083994207972873352016972417437468852583421741730814966854488160377784064187337746023784637536360524198830518863442347420486630302666031547202468787356357859923178841442810924271165067947361696208517463849091785294573876912663644073603652162392870863429577032284150655267561859423982284494102243346419405652688099702082903197639753615733531802413868292191742458688053651399734661646625901021839321508568249128353643218935019283254065150593085453937312850543218630257757225022895271404666388652964277736212234439134141567467239599889956169947729274252264082367565105683618662335225573117833819293435878479338798666610557735192685281719487734376349164960561627030588955123212062911067556344646515604001304149147192795517465583884865850478451674804646346251036625280164423331421284360200516223607083239790562713570973248241509110332415765014114324036318232388033329773905356971052816126456115451804886337020898668308066042299597791019541915700216122861761636069998558506602321494317865536067273088828957139198976122027233585613904616389424692351675143367733707226246747410948485888989378028385217974781597358593632138963903241668529069328702759648884645398704342552163000384998876540252968390105437028448719847192006208017615700116443859588401463046722881811623470009465037529035510760205142881478685707435878151486944935426854817034765886291322146346149477069345202312155320224265180474348278374747125196082925259043602137584538296483008279308557730770133054362164029736872968161301747167356117429559891015297100857838095184598363411887828097316421113052198629624645074578722061410666026273912034896964123682413609134952249995922362939081142904236682635977511144349769641891843547212415216644611940517882031445789738259060094714606112860581247603728368280105341256213311248557575786262782593345120758049765367779127850559390712343453488775327961756125591629893029512168470315113850552102940832264703765835302885519716226297717678606422101378753004081469405756573377711793169024173447316229106426472951296225539348622114538574441017206755255266689311024675594409272099719227943438655490977816666576493095068215676227028406587836011348045788575183019328270677481926233234984937658294152118636635401776908483775384595235225320753323617252883141867496282403231252373777303550381907650964766303164624056329366982269556086940935320647379396084656717907881739904031842959546527630568203103880039196411361978685495030647754898620763119771070779840916780904258098822507297522588759624581451787871936921682199166454317114703199445365983284914240874378308646732572040870761280841307616655555524382694384170828225450081280822870424555742200968988126933052796391426983620931273771667712213735005750882258767158728583891383116455614579033279722481613597833753051707957546379272898695008581279830232389774075176818679072077269775500402450849604823261623436557693814296075355060143370472938466107435347325189935340873601888895962701484311954516583588108120074832282424082911591371745399600279727894570159801572889205599658976356106695360637308905217758505489554956286371061950221532145707326072397857492694836847747919878100812459435595749335245969693427118403916530377946082167110887152174629600070474799709815014210365078374783263986798710948946880118868393131501257355617092064551826922489966717786523199572762499035324649872753446257383409306800174962115474135096212178361048574604676601768598678204435345502318222314983317363769219823798904037495264661944156897900125275030015734261557413303236738593240886115354057375878172242189269745761675140426630031647973773146592780645715764227094476140741528479569740072565412335874192043442445462447919487389354984672602210217634508061693883338070762800860015186785036279169792127032841531497221117691526109714782284399781237103031959949699313430346345682467323669042019623805500840598635175913072998180324046343775056190814954069030584904098598714210231142117804863427355328351475049381959043823646157642962093176015509667310123023777957855620478649167743103310458674643482351960588967176144018682856934099818706237832290199623450856650896000872045202875610283494067252384544012456089608672318393971553788063957328394895558712560437746207319367974512142816870558699483291317766340929415236082929224223339680781184646680370690518769834540178137341966089857491327432506934747349023526546475825671462576030173023585771885617883155406364537210563911787372612783610483196353566782835634763444374775271309936478449156694786634093060704326397144925249918673844824222312245377457825596255798050444904070264512450112471941602931427749994587944219973584486466261113524213458870005643809833531283675703649419823546944326824512938447955419821798935795025972620299886510989751803876597057136990806967919408310120781346535661425799194449871412298866843896795024912824806233658758089568812390062461983801608010288846020574396398064945123379082070741140755355863208137554584065537461125142359885581276540000659365419837574515826029151790492399826324984033073872320435001979841852113577278992137929797330741892160224796262751540419764998544791495922348666759317595728317399496192428956605202662711713125431533689565806936371341264239865487759296605412125116554856605204992030691653736262457336877836011118377414158164006383309574949588493448100397145293170055225987515868248612330263623694142027813152863460829046543085735072462097642375418033213295986993412981670651541958091769646405480385979006892706543428438671175883138654867421564862300497727442855641224087399891946377036640932414398885787545981114692455550022682989981303785600761926968768442430461646866337756694073507285847801118687109532118259736294260209025119065683106225996289406763630512896786333894806373473662668093388302050419647568387729587156490180859111398961215303781868909325249018086857348550422363176301092760565062411631311943755946880876052326212949722104852048549348519651319158162159121209044909414340920827348058042825505670223954435925498124986580138253567324819300320236374948607426195237136355115550261937106197566521412586273688914070139911906750852932864522605454291230015643122154926453491983194081608564216699140680515667272644181299928293016283379278501521850100032712012786393743415330148486813916934429772755508523060801897062608749040928197345787100461980245674318916479557416269849459852734790084879193832175058032450113649563756801007620754397427072425846151985115224898756800779706042387504576126565694843695396968215999107239659871816455505360658809541960312156514155757099841307659657108413609794993905100528969342655330899047332206856735619885598654442539164379669286705460516550603926099123025818428098810811823157112806537654866528040441094008875747689842782469484662738212241365852529054346350567175811565081503765695708298982828150048279913903151154248997986144462035854703171444916111390126437171501009170281047131930056138011083087095269051952814504566561927551960939815468008091956664469090437685029486013882638433385560693269424966185904896015650171129690231839558220953439995609725510272418825199975991799091635943156439611025950960258856913532269250751846813255781788787292007824852489281730652332291932274366564377211709389242372705430879447161434528837214816899060087448303894593888784892420281488642028639177915860159838466045708560759123791200000975223647022290742414862478952026921573881596986294196443843485293933325075005394670394885525189800537313919075922434534136857306916358808047720137277977671843921015536931696622799391708520152579798819069832165704338796734983392858643968603249159866145496960767684818746069916388764699878091085615622600223296916799130510934170115284954960033998350298714598332325634380933606066062965644999918824391630262323608843456223547923845025469732457545934791683934643184430857834472210741593397380618638712176796561458021755664332139349229868966663245591118182380679801913563400956973077707096898383937621221251902928146927075469095369542824877167532486021103653929745369835333708831317673566653839395035206626731636014082950569281872057249956067543653073853328592081830225220066816020059601133876435091342743952170088392277702146543052243925811837163208039413845884442121298599524698829865173051004143876944456861037110540695668392110910378176424967696490515263283697006331797540463540730309758877379530746705294305941681488915405616199095884142713538788710967891534991144515263647223608547181968870254843417937128225643224969130726364150519829466205808917172899738808193320985515306026251092262111722667588205781033206098319582284989956493132913958630007325814693943490616199649571208962441677535695802204575164621320866347860328221139649039192725720205975347823765581599654651813906792459001525389985460593109781235692520823297179668184044683015134090159438178340068565523028445534836465306165489762592565879317189754843019443395333847970195100530385617636568030455129615872852175244067605468981488598093351960916336159319660058378555115134227712262651289897866365246595965058226582723127702304589871549117592398386739974308256173718359206025704498198911171038451734008660382964630429614715249093940314928270147906178135496833474185308215642415595645613272910880629800223610274866480409893331656009748754516129934974021544127407768993921166376411071158457581674359602267118293345086714007719708351720417403348673504840309072551489688755450831673458199800837058952011837212157523777099404659991232723475765369250842772541685482414060805881868152902267522301444515785985106116792978372789243524503590388037692344076170560219983995159495966384077115970977225499164721355218772825996786915332272166958819785891105799999936246188734601631139505734147385761144348828127190170047735776539686322087248274064548114566067560922704524599211237821855196833540784807483710731753026152878302981712910587668114641080402702170257240876793561091929004828013299182052147585937384046205334636701719936740471509832763835486891927727719633613277334526947935195751649397990619804141941957089672302708449030947980938849154283627748154112168920496595575687500923455933333578789398605129849832215271855373910314823294165356035289934161329872679381670147170107853524817377851054723448558450216283820787977809270299099434825917604337726145628275726479495423040178083048844110688274303549015827443096132087721554227964246933779790520940942720955773319749804830886951161788428806976052883489722314653616908151970192098339911178413206096003526701059744145632088840842307119750644912718794418068724193661971825595158503685759045474126693459261590869178225199155556958354706052165137785815729424686925579464487322202358155290919238773321059901072456952846589494055574998106791210945610284739521444402998010310801351396214653619615002277456225732438030073488544891927656063398738871261857225386004447307257447647967032200137282981982055399650961049340098887558303845657915531941631733113404972994388110442155848584990435412856037847092058045415904194282716550202001297865215755411391463223693660988552954504728775785831817874001844000730814374892166089317388737004197624976325492367918997080219106421967570704041571989050057380581902771380754871491188676264548274365699955956529220021990500023163236066714476485692247522283913401449996075873233906125275787231540604586086737591610565213004595281435843768696119695161073096249056711199851766871060989917952316634539475883978293308867296419320743530601498968370617671261073063273373842353597343753120129531115309883969333066497213492392883256977816166149265144930158971855815846881250321800550561755394811017413931635726412918971797355271169176333446004875220610093819186712276317851877231338320859407300915095698852197820371137925266933369426232805907152549551977813351509927133222767810674824852467451193860060516985811346437410179664018568048053533824451345975511670778993262092063263841444281841899430475564973549559056197618277757889683658779171314184117122161950133757139573082280313206042025808108544816742102013099476059678358452352714087281802036338827645912079433056988641436249855906371790411692663691298216677243935675859658427521759057500701794179499619635939294179557018094053089168868173707250814961402750690229810753768266514582147014579781372012378243672251378378655156353988644688291445956651126018095948424766185096276540922238026108675014607867864446569612871279761419876374854221704220219685145143474189778166371824002284180968542218959783729473698971864684255887477459988650056928950556576866891652060065387139968238113011644931648500778916738005905661091386966788579790991462193251039274667110956691546371741633817560320631413214901526134892414543485510496188227773508863648025938734725106686508060266236048324742449910533895520989235426007493682709654512087907719261377984217601614594520937429728664013280791289053870820728344231590717147431867190519647101237576594182582423430536435650534739532245102100509776480257224375882784696620278455343889497069278949021940059385887481004886587961124324718214350691751004540121096621005323046004645129652940239061752236308735119222492022020527435130697720464493833978718100797180459585896177856495626636677907529640992215234589895949922121792304629822627048327013142928058252418547071387568965976757171867074015313801276852868704190276285334927494390951389630827948521334486425140821689732826817545847056445323936992106443399264315981260606106478935295194076949027793442895263435529754270377305630788058593542725221028315996311865720339081895315593545849144969356604220020234165222590659313466556104012588960248208901160451253175371094896365004569964462877693660442604664454669747636729091220239797989080586156987832079811728110916230599326995132027954927171766482885553294071709523601247791158334810372097715389411947282392972245645321510759576072657981732493239451303103154913600448231684788829447865480602267066234738974392073312245979087022104143192462221952826835087174356515155996295142708633004733018817340899526577908081834877875668129434655261076431224544070959528518337351115688615758128018909424057504950426850914839255882405645186571862452736381102362195562697203389666813669699328445400567783807324714508420847739846057749985657752122261665791320731644314753338427777181513930583730758364708923931100556574599275542672773895387155505014604069911375508860180426867154733815170119974646011995012039093842224048091844044310717663256232004045003942900549755426392530790825615975871730386657305393307937546969984728909412281627732878760054929392248947162536304189709066586549509549668905764550827961008321757055963512070289574300074458094944304929960134706266745726273968171290346248049154090407322445903828008200265156905532560296726234644025242921899897117867185770187352663968857216047918866676475056249522484073070316304875024935631981599316266129217049080678111437103452493679176692468479912515389792580682417423339822654773139942567091666660413930490510728747107289558103560791209654920532858347393755318438865473564085800911411513100138661848971313275681116303311648846079417247615069326527773449622471817735881394329596233582538730706613619595757765998025131622215938478158017181212730002979881521116099193472890222619499522293474509599177578550005185652514107707510042757735113843713197373740933993030769358935172908951610224826031694099415571666135450374197058324914869673336996687262377523039364202392749365819975335201194850879899177543843385779258641999211866841050666132545473267221747695299439160791257013913290809169972301531309790740770192660375641521566772706185115030562334901071492656656249100066662771287816252211687348020137323636983569809586120019317990304255491372938741046419673527530065445327694739204542206212173745756919348979063987777918794751865939482915530724710124886727946680611283292440140599673479776641689643137644500718918553995844251501816847753514695461628674404929069793546582154472000258176014232466290205889107695553555698278276025285221732070772374612391937154986443709250539582316237076651214168016928488371844331170737156792257010021449520592402033770687548350226890024604905894487872908224370087928820235823164701975184425991593065908961783100421477158742188642078816588939818411497418648128867000208459604700985935903380633003623247552971582406609345864281427584219712737688275465416554287440401066544661993540350957547180974002288336864255961191549209710033903919426802485344977238248778309983050849636645328046466999672563121172958229600271422407540277964318211681367782042790592790496796106603558479971125431942398652413281355633186922193429288522910918570593393215277053943731826266233413582046744224650780731991634729556921728218095978080368322223548919820467343859840816860483635244121201072021130719082125718560128158762413570690608751797315754887608489287534150690741355078059888053054384219867689904877283726865664290524086967132815251980892764908391151386783892058638921010869668961923571156301164878122995206422872771226831906916549164732909097597625630739138662317857551330211439432738485263018124406100526257856342780245339386724049667336153826823028683367141041694756956648461324280446305196426821949589934646977294447666884334649723590307554807455974580754747072278087735499147395234530335091976963496340092294829907752107199605677844619511833626434581985186447770510932685837458195755463704069881922970159481209202505428590677108138641582619107256124778802853426772023632528364466626065435525527428066665469302510434284782635501788788552075875484478109635533820485410335304697436057575211380970609399365184496409515224807462887782809390522721792918899898880740575924489377693209046434180270696717031646213279402963667542678289898717847202146613515311049701691055404873830599699127770455224604897354307328201297593929077503030386364547842935657247013459238170196301660314233921990699946477854299965124754607205598295653653765888011751934228507643661143089432987620033818218820563135819605785091347510451983641494531602525042796948077650897911622940232376301858575009891547567175206005079459637537693679308547975380742636951016428597060806435389829508773563746709309482500074092244995906293267841710273658707623990865826229430962594656996934363780183989160787684124963405047152041093707120654580398398549674786624984968164887526268435953318644151815409061912223450634210338915990712510916832776302665192979200976266220251699806775564672311552842821557708558676227819244346993148740722041201849248769877346905531904732863402942233600954429380290722167573820425283978511348550464327694509825316019608632285813192218572926813211777563117438460573476548740112305861318407897052888606575157555290609043644916491451530581720475651738242161660042296469353857543092216130608726071261129064067428878729714189654057640308568610972488128452569739959104213167282790033381175927808900546632298598239788287623881544805067065747974999088970703360291940871612379421287820713423242576682967332814838049552491341532151669143442502667354185337294415948356600276595240011107966836209489810148163972055261270162333095729485171813592391834091690481614490035269562540218965866716322525264899332899513295998286682908337687254736297811234727800458409772644475031291644328253300659504815481865340948090041879559298299245127165406331007983917575165507342479548808870659743340047853871933211473932127267766944234616252737333134948642268151123758754926236148863710747803203667896685368382091869328996843516730434028937154738614613948390130581953007320522910499654191489888698782578421891124685035019522606043404552349080777016670872820526767569981045688546606465915968403774438536230912471261230880960282976856043804875306469514796874854678890951431448083267008584021228247679015139408284067535851491806410566886771877155091522882532454280011315331332483180333074345967208371903209424376758358473117231225651986138241300748182311876996745198850391275936813453953207186269746075076437055966762134980918291500688347211644104299474732099125201780116396229168064178872142884426420639559980904877827716444042406876139348879766006611579868558501872567004617217666002894375818521204796151888604902367792690339517908313189204158975126245919920519715825594960740231609908960303715028641138419983219760641264718499002630815094747648943034095747451364979724532950715048738874457769484052944824357237461210742324245014804009071607635670917840367607672525735207032044002535524807956435404327171188339624393701992037708607263442762003568829946637605546524883995326502039171753019756976844725955423085144335490702798808113293123655891184679139202184168909748188202840222871377900103342701735489774885228955371136400931726331050315959723414799881373144573963894601947373782360233708675716904983146472177143398242007993949968883168214783519101688211168935229445443007460987508267530064090197941430986006343728047649781432433231602945433046215556334001312073728222129969959223229355709926181167041604115599433283974474105215094127523308133813349390905344105830936943257304764186381510091639725771613655943294574627670862011384601012651408448883309733132819581895651372269304535753349026754563144864652139437380027418883327310378635530914271243131071403783891773690157042289117207077414676387069410003622237871663712278815290056182125060108866333772162275475653827016256792822919364850622426054053424692334940035756455742435984789913732886906374087381995939746071244809703216336511840395480938332700461724401326650171388305336498896161972212173529892138424384357358040599384072868210331833580493448483242290244910035039928755447611574532288608605736061703899341428611661140958793204563356114126908305847436902755587551901946276401848061561744328725489692336953017325183383430262394407981983187700593126420210529968696388114417471218731779151166111947824068593490454000924357345326963900914522511851629206817318516398090721297922021043919882288503559635858470746392551794395331533070569720173593397419491790689112590735045385350086828101350378143086651280652691127326651734605347592533138940798461780343708194959121498603824386123075294243153433081569069924798848531843924075327591558718688289059507881022858353824414113645293150340747218032503991959729430155094819629803462984794501561278103412789446225005679660578914060537174540933919364445255766062617906375691325784651517013527704827515837042681481023909586842136619532671815802059574405063637499864664315039621775557788396005492686493908800991697099419214465154658442901685530931952542275609428076951587166980823377398933684815039563110995911618742999138683231922744197926203736963187591342692302075897177852509899148556575776119000954467147223395327219662421951684596274106362466897259210416563134744272749542953569596729477725618410920781410736357011800296091873229829989870995260607394924514955670698804319895236343785792571471280795304660256432632767323349882633203353696850570314778236269897820473607462127919235005001640966044024894603395294808946016224141399325748272415896010047305065615379015923430120154081269312177311643745292681066899011627138158202505594994291425681895920423477025153098060413865125173598682627218805891261172537161305178202179575140654551407238521886429880313335573698944180888283182371930005417946135053396497368852473375294303161137883397440280033873905193261494802036527673154429882312233045458260797442708613563130552132749623456592120420551850973159983928037289892370569485892492594392960467127815413657559109313991292603833338066587022090760321861937191974239254172473264784838873300268546600958703106537325525977868621957170277918818822349057481545699127632678501566514159420861365980960816155327039920284777568310499100458924661593177069310864761637634986045403870927676564127274013298543880463369777066817619959675350321186934001354152179919702770102662501312401212548310695353315233361037596629790077864669403834405452011077012932083140673322122733442700156072146112925540587876277023694969292325620788687501334293216555086598018688330529951695206449887705359831251509728468687439394864376340849476560645944227821198624450771576573872651134880841672838237055224868238598214070931923050945361185716390359343498688638830616499669448110968749223328789938302532524496837209413959253151942684626228872292617548178038943702171173718630319668228540326973465954838014596899921849908430842569828912730282145164746578512209484129912484186309576900680188521921399788180963518547339323953852717854057777334510161836362073770853253603861689155096475827217516090868574192476278330874632018926242261929128671590629489835616454492283092831665119570732671268426742664801933278869650323839772162839107718222199542053128209279358263297131206763098850010613895035464189869769714632784724183500668530843049341670204970886821025313973591021165443876803356085392466472472565438939163197884430233852972601918599925851017183546600835400461434529657034117722537376807173107881881221929978946433569065689538843246392898882323064804176512486019157300559219387674891565336767971748759979226162080380633506872930680084803328656329358323128447682865967195839682035017830856897383476519520351828882055134879257895368655474775306491684326789474529315087129897775118484350447529742345737184703161577553652852930060413002658880604869856683756373093488796340018234467570516251541133228036550157517182776899249882279135835608501136651308574131072586957791253344287138173319685917908824967494493449692376636119563830894522485314248244224198542040003837321544675812673931099228764651306630944982302317117668115586877530863012525098370467599635740463823765218091019363879255239945571896200809321227477476029416279006532112117140959964060089203898994412526380207211697271747693373648427756496093655888733865412398610799900188715847530535179676962960976438348389479500748398820118898169982405382868059526590909152363304182059763168998993089682499875524866829850624288857143829099402319296919308165015916655133734788175924781003653781953166070318330122059461971966283009107768191521083793849574098303803819685925067467542098923825151868462864945030430104930280399583206950335813435874988116355557180363115588830352051875932272282644937901762028486723513608054812072800852500539790766529237825405419299402219208275194918656942060306928578479182237661360973882795280475441190667364771560195714817507153334827232477507894177221505002030511934628360316209535484357105642394577798977161366474402297272641088431947170633561364439008738248611680768665013835260446456607252902603174504162762952033273631027746974935898676477170343215112271420059705161968215439237976513732714777313426530133952178079672902834975014501736625044378536169704194882927421149233465536939398330453169404097585387882820409174404303215741159338363580659744111776748397434860839310902101143263952014761987238220086686365770135967448767531846103746420052934047963807875029915498595864729479284501851890668569060127993466159991102811351267094512427292136224391100374311782976784297075817051993617049283813124962316292185207073398180473515544159411402957883358855084767186725949392348839731682398017437072623694407523938674484148425471351840821180489849294651969445734561561807965143805289432680988036342739180276684170951285474945205078782236055931727184878945052740187984577497263049017771671383949495850484257276748819909885162979209650412657075591814489111527221447289199194777787151490341935184567574808921661562063617849429475116927244520121338058394064568082244602891104390192226304787920965352443463560518901113585255178768917077597017048797063997610067353508211736752664959512628391446759802369704636735733558135586785010576907672364438755722467087936670166366878237058731796656127391815453501231995431820946179042383670007494929420726165275268824962565523450017482235244310298550095040111830847355930017618023235289573509777666749902595165270747692563752338218661930240713291073833955204560250788400483038088621818488876576569630700733826019610915298296355421479653331600219114657167266266791418924390794232802306728647686008194808304068485752599832942783605843157967606636248307357168360807517541698506583866926919720931569020842544404616079988988825853108838865500409438308844071805667108698731295791545996207500724855102231921232409686290079490257041779516765254362097856214256580413415835998610698346359713351713151500478934902188999955787858416039350361120591730148578634678622374731183679692070430097019264872040935003121962230257705047413713415450118069351214774464192484426578356406609789865385335605565173504144092210348605930287848819996540597570455774564431338887915859312282613137981261231382697482328839942866984695813428597066804777605191773256850967857017153886848207991179907991761429947673826749075561834682487795815442197638359324506465085356677994486425056446252998749084686946551691838527427616471771928897046187355228856569075498961541138627515923917486358074989791639107507873249209945000893304917341162329791538219242364872494315110004284942902291661709904381389190564548123570517718453629009815965400011167335421704316061364574949927543393649502735433473109472670459377757299439927129586163409666504572411986841256395960230167931142875895717629990126264063035467127180228918093881711226893146038678473734385158517145557462093796910873858010365618046565252040058355470077418839374749443512665154624629889590451043934562223558360266432535695717256908949221149496444094617684613630904584353046586334229123334510657218333715936563110164492045961977386662958608049052151183038187649627202893525254918090027025065352626332099181287499455943490515592089840067164548988841116206371203075993534132258284892581580605685250746633623119261233405998679807494453448827432111832348886720456457159931302243263290439999037203220303578650464464855817221540515973941226464018484802156584475430677764051485538844972427955881163068690366719180223251720174329839236889728756345592476522995906353570968616914423374512192318355623264615690531397472602049001316616888544368360141130007851354263081022157987992955597597984367952901564062846151126711591551090417337094450631191703002862832131890067427290741193062461098130889502940351189064839460788760924325533327656405042109082711433819907191652373611759760019848121945924663639423290395325208612628752840888665436716936349400431894438004665302835128413840416324223887714806635002780884650468995875476599838947907191614154841383988720798397569515077950811788500122680463061736122720397786753845554681591743975767955172595994567122502900503314734005223094677489406649840705598766515039548622695179840144352152327438940585723136651156445089859163222424728837085083375436756752385195559856097962652135646610803047354455799716011668272130835356634809815490434533115853419925167598693674434909044821754256046600616065960901354809495019983927966618622671199093106124763191901204531865578475321885064562443223803919118676163004042295018457363937019339151705243074787156704133842713940606233682285354807765643931859639702740762869179651947388635331619487807885855964585329696651250883561555842488509586364916909030070785950420316989359810653337041910890946168982607152963813363810971221235387136400368544601875207741162617318383935460423514502833649194146005207590278932970603453092703713064793398225447154972640264880647094020352902474677411081252492132672538550777166966697858118203218141511751336978869813526754973514688272317500802226763055125879701854723478848240260554838673918612637296831093258815524187855714960441025490022358190503106535598749447471235008457670794391895039770322935652036185407631537583791215256842109989799484628876702316729674447899436168517388053108923447887619913969313448586027363365410297502942486516378782390898389699761769476251651261765941718585554613826468786671797620648454341379967136559441599047118715550150912918050252213311424491667025836196957768706140257451079876833127203919278308835601321585474691587087967324824363034519407112548956205911474900248947461392358338868537103270285911948196556812619508761616644411861902828178152966412660596544509974329867356043269944690515179203427762684581471727725805720285152801641707743626176997653217232094692545724210762039736286477686547361986021728193986378717828181254845612036016126292688218064958519254005897810068583073675350688724350083561730077226405463765037298405669427623904681177709600032080624247566276635524075324698086855445472422451988244479265142525946743150760952651472481432598529485218603400173508090548572969268577043255478506492891216161048095278225267505451218142754906866814458632758298183708995323851644264275297274491824719916011404820476858480808052444654458978956101566737166684249712018813514316389099384624734238883576718958493363854071439639500736784191099181427722386952256267367976113976063450861096671336208791008711770255551498906617745315190989453312271623516781507226910119290676116222742670569488507895994925777457827605397617445787837683106917946131908179970415898409343701614808236704591109267967354621992000228355090204550236224687248626263393381268137475798864679973568049253507897109555766560262901413345285709743131590391678874028034762982643942315748503531263394092378909878443115018094692270663097791418872474961903523643639747230828750848581658876989829166872916588193377665717869654836229398817217273217457107438681220089695533746569689306956142004142905319892217741620063943129770913886533945754266444430157471105276415625394752892499272087438894886625726818094476252651185200011324704514073342681851595860337063359368655824969312936355094144149092921413310666307429576852681482621437059024837894582232477779613202579628253472947676493141792872815144830278518717013601764484966480537381452303847828902687271803354524746719904113115929122093940822528402920953057526121487014793887126193179494914906099415284574273135785677963176473212746687340707115716314352636497425129783121645351963892772552379784095039850360248212806515157302652804108257366439280215683293789852030165671908908463780481689843206456746869437492429532371160494771083338209342548627728185799709154120411582893465176883443810280226593925234045844319607215527150242447924241082621614882672973596445537856338678911921047567790132455971580276640485933591471435668353342400640602519727719182812208335080505517430037331988281095759397611920190215092061972794025656163728724309607021654816180046523910721870528109367907217924995600048083556756592058264399724212968214448977993796130995407660493339442583521724950775889910707029958027651898533048645677705121830220291241942788973942560570446557088549088516288487464655079528345747919185250403846775780837025756139248111722310832832619532395724423577244947350425937408166371560659203307782581296322968926866340160962475864824280053220158698268647277636340561931750342197191183421208053810934290030702623928624499149065848992305819589089282754930872194184653919422802202406275067898215357085328758626550904279362927760332461105976161534557582879849548586264300613683007332524658151820345056172060103995330075802818610203955785708947874061206922738930064916954580079894729174609136099611451365463381522975704415295154431296982233291685512510275670064146858264920597465944444932630369590897761991454840775468787343556484873324548101194424826301317929434628786908610301019805384939909547817838097940395147138520192062651636728444552592944972916836957238442316682273540158308341132888237137772520435056019093643318938001685332394928202351247487695034443867437504890711633456325134395952761020296004642249670587591847276184886842530651100908425082917467011719201447842958061132038949873770160435160728306302832759381060498114351863051859561392433698319862149250643954155736337136335574649928322366317565186655906646246279882060301786091866692021061552123601195250819683822635183438753201560534319368761122907993860234103055862287990219130245401846151001150107277419018030488816314746110553121239422603528620519516908048254875012071094315257559992736644062707075445104225855992103285073188693267808857997067543709226904633887232969003696994108864407833102238557288661918292968264205775440950071177187779515762524481079031574547023700902034663930117234099747621051688788253029562487053778182128186220343955005994837458478243259917028372653138495717373108680643686647994661030564789620138504332684275527111277346482385715084454516873470434819150933050674817197531217739827743965230177660578584005608735982933838201794545421044182881109258760361343327592265243125603076917314796140568246512270047525671184929483952939302033054798541450112614456598644701824390247892747965177956881371660580484655728146985043949306186577582501178102006690979316417742579569142587472956052743049048285466553641247820138593916573668436764053444702731091863858459113018017467853153031798982654318044517682058829219380099557357946252918633977685184003904309674618696443724607875599482797715510485912414343287384256228419863739361232429394548542338313480618029351097676258217952636589903528454173973900938161499234303069804344428628452238658293196137259817028503288140295604373165412361097006303499437197531976220434693739769969167695403582044472461678396625374474071910792471593725357007918235052575742235235405139024434496348276571355714525711010557714722699241208794007405598807199539758486812808844879203662521134932611951337753913377844555636322426731966486817005863625967301511998589305710574191737295133996606611460052319285307548066861884576929099807017633737321387215332145333122675386957416128043562392851921069744602507638401187163878630549738545901744212954591521659496633207284644633049342210715073784637172839906495935808901420532322581474301392505951843793608696799698212373833002628125459758027100025834302356292377669173984314841991694967547166003961052793504354970370291309866111206536859840192881646647494027087356180908949771176488872641185780838918370933238963969983206843019882371923937502625926864673213294354489391323360477127673007092687479531552844768924808668891737875271521779289078031335410652059374435794208365571566287110865409102866332604175029572866539037665923102742189416677955147302403814575420092845052687964358156176925465242396733552446410818731909165536195260700957591761758037449504277383973700024262477670445594873964522089194340775535298064475964576451586179433853443134134336833714063740601916292505483459268407543610437365515892001079398536944949766291457822709194338767761644674401059333211458859136769141267152566046566059383926382555737499219001809056626322138791638789961242318958000768556383945457240110790970822022484561539016623974143372660954670127204032475739188787628515843254063004743970093506580471369299879154980080058624611860782615985266191690248165489017166966393476525886648763679319528389791588230617116811602201543008764849319353062018049854769276942657227092711692840110435144287830179108253673513421388798668214900528552226615597439744063867752789570100585198815492717395906690988883457187960770775966115849432678145689719932654648761897230718437598769318372224503183325535712431392480588597473548313689210921256312264324342544073969540217932310866579711993087927207692686427892381486075563535695213544847830005921254667434356639904789793064189821452038579059079003537301646889238234117262762060157015203184973053047000347771589155271550324504264871972433977439872083095420354970943174981065331270131328639506950214362858029958591887488565263885054799340706765613726282750490720838527021206961063503813684949354683911668993672745298598873604947496395973215065386783529188926068196068258403886654057611827937100408357173373520908401124921128896097589162025926415787393575862900642146929886610592858680729548862374612188598973490669067594420927925956844107973826405925996618265783832245356920730021675266228242937435876218158011953106828277078835317347087519585410383038948965260459409906674606591457676177141436363846101257465056985429337290306565002076356254593997457262361042392146136971075653061526516614515351124894931331312405667020690424195926406709821322445509962619265316241624391248598359065863504203246700474321930937925205118071869483201413063325161914584042781466046166015441315563277285883443731618144294955456443764455983722528840582967227996774463011067892884389210619049998193590074881605216011980296752113102962865721731304408201257088370140242552345032491599758366371925782136513448984968389010551905224694362169959340456465590646316599330812739509575262729822570883597379904821463436044054873494234700200480330351852172322080092436195863946028122858720800307297059603583702408021444323249043079257277988073525140195141599707664026402183267516700962398944706568868623817026707068840448623752921002045680379916804305288491451627615629853655417678072759437702337028901104962608435153061051835116600022676867062215622722853146325713114439318587583630341030693802526743558789620040504058177454763278864090808002874961684878340334749679446210616286764167018755772464908043268420684239098454737769299423736625857787850284981993552344239960977870979761555344788764904060236301611718681792035396270052648621417890327249457293147623848747812705120680628203259559892109093535423768687221187844426423509592310736524180181876764581571953051659724175553860939099892163949141799196917186107686683762000322246251956426260945592645254293945115552499058991847136006162314546590045096377929852674461802730595204489907910690880544271924222664579871187091858232259458497834426275615253722633316730920565807391990514796286798090355496846445037840657277066011069795767964142178573026967584489551670776273698784291013589435805943996592201578077497000672806164619375608100001482618857130968676060243027767393185537085414412671142725682246234144575010265392200539919669146325096168469104231471561788186457773412432526876520628604058401936141342497321688326195510447606943256566077688843797145576634344842288548555072837733187167623969506738792562138285166539952508086387661751211608721285340701495180082483859146213572926273264856161759100276767000533528621131153274191959516143570233381296247753149475736136421558537063146776995445642132144591301999070385240329849450691554128637557891376348777744358004960195537464669375759186763486669475196621941236267909854817163075490996884348573542769748929309451789785924698021524484628555832219638840036327244893685782635607082851977304421245680212486806414266472704834193521445595410451510068801210295909136131437086831374340188973011340685442570038282747672004439301186882747996825155396291940819095760221783070744307086678983282846609759661108440032116573286262672395696517298670343917997922269484785871820357292131962637090806989594480554564860508013881977712429016464401723805615620812784701804304548595626626806610696741207537537848518454861348194908170368747114129595218501916630161819162265433238161645439375762699168703509576879033340147449513599485137480902360382389672411754690258664139871944027810185070421384239884295098895881130457296457041430925505616605137304893843022859101545867837161552944182134043609955326681966684975334250762219231783239710266992098262872135211847358030492387188579008959947699366577097076609953936022223343453163309291945908088016720840178779916378820234931352066807612937388101612515710774020997038643681089679102650066018622533159604026876890279018622872121715154323631051242216453264006274990713900694828159360371823568288206238621883135620158664541161077102339205247635237336449269454533164757848136360239282344260014136780613744509135776362460564818918878205655305196952036879727709793677681485539817663602605025316244374023498276301356523721179675133247119714993108779973127270689186528916169498449218869486223407285343596088138029643325444468301146246947467947038063451219868770307436453321621070067482446318655188658257728815631042081767759168810306033535513403689600901718711149987021876947798005020711586969694743847329656307875050979934584836855960534544211983685166986824499212409052119687616920927162175298121130384595503774416785877285716167144792944668544721038352219013525759457685633957996811497081648990009203840966931975896649507614389535911817922130342431141196832403222056079769811647275712772865435661746774268424685582473673390624595559672097128676960846589822042658648082412177554472645502902113101471053008096141454040697997226259092471218501351622098713111912931591770011560278573122540848575965623650669608639349862475065687076248059051561496771808496851160630753324730163401697710170470839212294213730678556477851863514906660753466988032700926763737850325426310959093579773785866824861330792980041243117393329963345105097461040363375049332959706742242337887810048439418569769504899698746917525466613964608970921237075822077585420051522546345689783881743898426101918275458666422602880386259318685046843002569121683354773497422395857122152411861277456117352864487333831385430499780561164202700054876352604173862294167083770350185656297683413719697349429964692429535047791174438210713792967679334653190699474406095097347237903932762326187437880798013523250363064687884691650076559510429955462966717099576437402940041626669820250688418214410946347317699689940279308089986893059812597198985098423288932283556887806349950872550864144132954501784616819189146415485970468517732191502813637251485756121280532739877883264747928623107523761803608617231204911836013744379388379937714110884529897957500526163834255994910341018121984011063493364424436909751196606543715710395919697673482480707757256631426331616466209959054205171840311771924865744970129557967700516170075364287373125367171467536278314842930943302799588666250318006046589011015013551730023982370089663314011517025755397961012344709502644160805192544573846096140709012860188708783997256055601187338252259763249579309073564228567266704428382517790417640496053455526167271546188243979808033828322318023396705140504643271968435528846952094837560823747343729332069185486324463367813321060225065673299794329125289080212717826833638220396107909970036602875161729133346374335714872329274976436119510569049080500049070321739894039511243837312683255730109459545961516899010920094335454551012879036415896114716867522797404291503266726495116252498301737892628813901821038218088827342164094565255465558667025039089485114438482052216714479393034529568916627904699244033855152732990943717287540734539897090190108923466486607068470824138710127171552449881918983687863599274292802448816715245423326123653333760292097801720035612259007962482597999535278616500422540811387742110564028437909051375838520169780052072494049277054157363188812470701987159993097519300541666111582969027016718633088055470791836108660029872797738837805420645095540618446630136331736396736786596840152744403235517336683759124635862693722817462105280340727506529426960667853554716422200023343164776520826890373913760613800258638368370946117254238835671514964611882038481365054655563329227845593745893663186449401260750747735133642467490252952936680570770855930289337282639726934976883955472966287638108860841209968499873932090322737143178789467135967080332982924405732163287397354236243590108526359502122557393279869249962773610212353044582758894346271665666870049805136663025792735963847779453621151047361132319909517190264524135903317811235619361125252376733520982422998872113542839965188071666323244341393730733531212724383743034383975583979327004309161949667999169382763066975344749751102404130869884694299867421867298115859113545844455956335992878439933707477877135798059489002222260170137137116576719615158865107718964494391076488400325259959193865291657986353796278086739228489012651698970295295605420632832901347608445291572052613515397503180533084146088728071043168801795607233224743476015538283142239925026636655895051147548500524788979113277793862108959660539897021286576217311265223047810006711863579515965917461450876380357279979711476844759932744369243470956440753885755534432206508463918679023562919955692608054562725244111139340188952535535109242619691865802876734721945173787450380441885813161446357850733912090583625921622781573309140537780605747635206694974178455034515441164235390240754650269695377342592566198677609969231321633853992177282492429282154242001735878858102722303175408597044465279721926063636759358708886965620471568266509720978405897336853930886110578498326376090714839769316701355248946486490480464822135108349324583643050786093746187409218113611560179155990426988467461054901624734879728670262542624787636024488184622301459835544569188591567173037767922451666585280226373475041251958447512167308049160485984445678104653127120295621123538052653292073468612963322639333881588508210804391690621218745535642681024757223126870599667721624707614642560111049548809256225263147500869214937324334306413433429903765105510379954812335691281045134238381900554545552717762182259426646537086098072138528623833167349251180226948488691703866293490614510789226665636090325427952717396385033466805362806458420519007478442814170036537893944018703055229662881101640924369440465692399222716147591500467995400021580835132966363498900109953401769037172903130961481804612704794856824782126828455375412231627399834852596131397460077760028494983037721292299893941384118187049633035119883528287423869549024056884464161697094826711040487071755397896224969616411499372648249212024087953184769682980475140566476999195786150744134620511023769481986871556520999670012944378223935300400259832789840953306041839581888718928231662888884934760688840871043049543637264262073267771064146767796517507417574880526496299594746020785257832905849487500603050541712801635707156642657738290878975808364913094131413155983991564257332751950505111165785116740574202444299264480104451139291596838047375805486236827387768144891970372483600603079746932099448691076540444408911915891577360340353529494937388496504089985555483244277421579107998520482691400176184566079626941065366206452769614052333708530891051543612746593784143302228704188407492637463490907021976311072392796972210243265028448621117601113888088225339947987387651698717223098527964168144990316743238342367063205475506749136203807570740180219437435276121021605511656598493725374929708394358696770606339294530252393361520871804779620846873031265782274855238446693430584477029590355952592772229336301841409076725559153247877176513075633006881700380693638271277540757296467083625304078463019917932943592623084125955251452320047935683069636605179001115044604707379824618468791528743938187377660598445703539396458143718880859224391898119197903575742363721907432419126363353415678642743076414532384622464513132994827027752329382227908456707772465171364554397996970719985412908496188781660783018899275542050340072381935125696694901520597362266881026722848897086714147544459087683803487461716970609295052279851943816090326284814215973477977015742647636182204928493461305647437088450196902897785521586593891462076384876470840117842424188228629999684171176446837186123323467055494817352121352866592348155893068485651453731820260268892703874364487974309764752305536630063735100782080973471129706743768813905196339233937992225069883791105025585323532347774792308145475767826855576157147307774508449996272201009463438525180221551102087990487043648927149286427118642824667686276699788532532949017720948848202701567387949473206925777420964425485733721793157023898791322845078606724446056851610227899806258750205994939522670179689344764810079074290925782953805128125943283962096987065222307256708471466681646207137508458015193219991098241844172223711983046121715311173344515011250746036868456865293609399845194935701240509537297747783157229923739416548981980734526050051164563580536597328434420644170109497997713086806900331460788619371952261121013351677532950053917866556116615191908835092935380455495067177204240577800551311740660379818222278224153246478687016225045098727056242842436140227487623630288049976603223718968676404535988398982449872300074536880486409820555868843548413975638452647220479063096233594780345318836730040416263720527387088888094689172140417792389673051137396708268817784448504391598716183569612068203740771410383080377190312334710264871949834987147223049040347443955123337131515703701167554184347813016919485683024059215222046880220066258246798757492359532009314837188919422053882741445624131334770158524843380776181420903325362704188672458367518413710334771584802607710656404918015388173385760954225003230014242160731113717510356762633642913942625317335713238264339064788416819095532845213761987219612434546260971632409378627121998308246145952024156938103021742520483227429794232974418747027058560757964540457273361060179462920330283263972258901879930002230486691418078235336334318833979470815592180899509199619923624225282493031033198477022720008651915573958132004929564983912580844269640884563195046037516617125863922850698856391223389977339743298757957542147795394126569744988280485444259616248660756983452736416745718212166388904411751280412652977484645455722210020774067261253410098379761382750954221908861578224221145120939503384667541262854081207843356097576032373975479046340743150941377220377211644385483063142837488682708180906719453871310743872846126315972337652179529315321279309136322279091903401296090300446673302005452821272152676324526099674591108774625821577915503010184328274583745191773979523242019208910338197077896545660348620448485039474500479164571035253022473576936192835842960612055353019043003119293130212819779816140430244574915105047159226136681043838237563838326192554729792280900367252236915972609389874760683814765130437873149089340661776675457653698844698548274633704149789839985880094980478661390572614492623160131091759173850678839150787407244648639773557122436632631371150592073730729276844175012408873951968400768304213907562063381483435440940760936124244255312191665771388477370126041120216049364648132653635822474805589566196305758940661432240770303706677978047370514317089053998666746892517826870537041613780245040994659411537376324923646781131069280896845126224684210236475524871977217517683533134102632037142732664295774358007387188683893155135743896976478997667413349675029392545633996275495798695462742710056591925921529255879529621916377001135391254273071984050324858856849038458706783709784008730084753966949445612013689889450140573273595353667315938972947861864529012811347246808119950154834199587225408563787828747709024665653331233772574225035571761172945935534413921265489239941380451195961694333340623663975174237059486586262133391567875217322993609181925343569986652227704375358602391056247648457486815833726990681799092589398388434987882903454100836327179556373958398110289426703350238206289852813119748298902998771966546438313772808108523826306724639355574765876584636023978980419197574039219439888739806258209481046676804870013381502910993722502222509143545595740683478982926746260461748123513276119715189449485876117957719998476266012688934294506121249309413304671641389606129236378357275686972365537077161934556751890428438823853437111086148493874404230398298942059608589158481866816977693958333750693296539328244442668580490821453281257539035367232558941824352336816617312384465031736218348634246469220074006267395859634279339242282661009929556475685723733225267762454989050089965444626392078685888520324169589397864683406275043211590819626881647546504828880497451152046433040987561511991110999863816026653777776231527507876792847935114605496930686244056655624480562459436352518091972127567952651578338936541950771965432409120611625534834230914861028596754303312869588522676883976987898838841182879152042207031968994337712293071211730365463208234193437470863456811889022645435897299797145780520511074072356386329190792075269728669113108629115594102920527288653264490478103610962109793392765561928205632095489753459142732936007433928265992496073170237887835026108296355405536877829350700544806997138104000292642469017762188376561621991505159591370161391822330929887204271839750112245583624821083718944401019901399283331307592828747707004745599267659184971083874324123836707670583593869657098166133482135280638530387135466623909379195958508360112775267012456568461216369619134351844014557859182923033025129783402690269210635748476006300810580151632237822964579350330062561870057890173771451261535720250486229047400975297857686693801050969480780344771729159027337418719526131927616198129326281786119758140329468579016862853124770384229779724999326422492867888764591893516415515353909904002343069277101337549410790144158174000041039946821203344154645926771963203829798355836389788851108879640350263240243420917387810532868785850034458717975282152803905523019596324683442683684230419849764374802015999681068669501014463670928597661531390997318015675273841513552237507895410273099289590982754973699207526942194467394137556788611817113071242658266532749999093534425423798457480938499945724236023879026835418709521007087338759183872703305184988354096621836155563397866126649151422620052386325422438789574363732154178307978712730387055935652165116026782719407731337137126823806967153396617842050788442864355173659901523116259713010106104016928969180391527635294050526866467338733078078247211883516481475069307118450326652698220585998377122026878302960891032795988609520536135096827230462323789917546839473881304701459398220598074431193470128491113290758029378429184982497681662499437582981195204504222461030600737479743040433698952025308371294910416279699130383900328097115157327291826549604740708178616023605624975210721031847119126414000523721340424497840070146786439733802615241526078078259815071503340611847029272284034439241452044654072505102381256052016836572423144854728484750288033283586051609738261169702550369078727532559808311425586984167288107318256821135502592616678611256416895134217113055759455352138459387970881706943388840375576331469302323292434688923814635372122986861719350098201369195293173472855597764517698218156230056311859512884260424990354754923583949958694216162312860188735950716818773146700759319983998348318010723716468939460313946865559050006272143232430793938425176077925171327399269351224397116871680361749215298831285323772810956231769865399364555397220173712907557834750041319090354423940042001929093028670356264856939368196271317714677378480877408403262847149902554193068045622827279508802484731418996352635799438800611981315594842993719700008774488784117368728549098667099340184249312135683781022631223997599593487563938737376140501078249018283455256196688408153465723400929699003091088587483164757311946670700655004900260501344472005907185683207935272120261916326203386394375719818071553454667216425801003167618363428895252313296128842549657596278060305652040824048164431473625036144651859576840384025322910663822588598546729403549833191523114922519489494712747428350568806452314714875479723640030149608995724049594146070723039217154261745228966915527557743571092694784922902461372054361803266134395697075524680144067656609900889677762587738335532363880413128018919882388915755149076833808900639495752900342716697096184027882717419644961881717230390297909778841405166373428550751480433879420593848826236227665443756827016955878584451200359051260663090943369275382153033759082640719801152266021144735961216211492540369121881433539217272708775077841375596281736966395221981916692726255918813372960415872573794642316274612333818324371876436526290631091122765074796739065317025140560049695151159470425537982849330307615817957851722822079157728114542440396878947440615556272488937377395246098452624814557750631958136454573596074162894088257232100018972602709756859627109594566307573263384199964321271984938056008435195391747776045590722383447689352600162388860704417371031678222126751583538761771310236936053278231929959237405677208254867113912659877512965727320530668508131319958103929135329563443623894554340133172072314086490856307828508237473042573949008054436700696156781792882957152844123861816108654369594187350264540230994555337782416821946315235744048085445056954837874076932842004027814634348804633647226732641429172316032607113892599087352618302385592416227425213449167525272962633017928899773247896611612723750292315768574137453638460100511558796604858459094283567414739213637626010511673270082606954905128907804049076129324643823389614185518928347679142523709390219465191307103739528936363184313762549374060445537858126620837846480827690130480701960742369966073701517875279032660478473802345986351528058357541958647596871214063102907113610662090460166867240346352765898345079982754546725831236086418546386489443500044737589526232589424681110849610978153033817302516492389545742348424706878703603491931664199287615760488326822877936779498971737556096492256390492295845309151693575505288088088975895058600079049877700665480449745077328284961417097550603336302972517906033008504740936336927009819035422913263574081046504603912094777459256960572080442232470687092749958725458585526382659200684640434822210960205564926237047701849611326278025724321746940118000500485221425671050735444190282555628246198529412338981051316050145627543421846040759624402857893276652008866787412311863025400513978992600047020412521043876556644933525206765315431635931114243644108779081947985146139555968339882909027789259279131701173742896137162461624191989429353004375625314004113924547206699224536472449024601525899404139553696398327797078405881879505917074895743383802113837394966028511374841760021160531010318307515516445746962049851490377271233900118830050960938643337646144216754492826346522800904702177272451785471057986033948887253684091005785399552654860153730835943617946845597585923389232386955899199729795304359279684549976881616451480435852786527151307287702539120946615866332270449543582896049780466615305287063637933442421391220564346325478925544489151500778084051005375515070679241205423934811008920096301880511167176809120332528397435126461079106078101486733595042085286099529341447972456625822766105847776402553459902010850280892608181671823639067492144452681661423104776047917353279311057150182402529761723273831364334585811157993888018213272643166793388969175400603321802998687883172773690604027255235617998811705320798070000259845428445330540289694729219139200351701043754258679046957160060913126446457015097606575394453229328038868036519323742189014264784976482846261486908653958741818395614656635028867982677135934491658078736530674300836075348579499131010126919385722854579694686376090842902047497836687774773593208061659470895929943864501674541735267748698783966607958243184644619013615955658692037401142814861150505647777657913980536521468761240560438725058736767193201138979566723903360502602170837857320824511609469723122041398235919637335621970535294682350071454292746591388312157783436739636571439815537953071500189858495869972356558774835323279152138475000387390942356002608786179103364518535516272174222279856011138827827979954038699722061009104429929005148423967884121527840913025257020768679813966530123418590533721112760477084987044121670749209509841891504071532880998072496680177779750438405676502563025975765013239700693844193005475196546179253560575392777798027984678121321495545290747125196627095163065180278165500674799011574435469678609541884701732077162125630736522511423631152534686561816505788632896183485076533265994021373523614830435656390951996451412389857820793942662488056651336052532888389511774682081609230369098592899796481186687121083767540506158938008530084088447144646303390611405294954265739224355941612019676532366173186460519024019917458489372864536389983130511076889797637287899633642694150062983916219205206238066323847919474908468330735032010895573188524128430596923181059971495343623642156774589922855808526441015569824899023966875894336742426723844284962063907182992253741777033948029509412668570152611499959045064254749737419164691019759234132605050739588775169720972654999415131351042738783434968539545410813908713763195430752940650583621254702123158848411080166826577185147286216540434088714033312745752194046664150586562833783400739702963234535865971782957594911135052081359917064884528235345643459244997662362619441756316689396893955097905815176162713305122205224031577474746724603471063999964471772261796785635558116978388731056638139574667807592616120348764924161647741222447372764725497644374672052009892230318373581058066301728996231616177903610378467935346783078569614594491480702767811379671956417902602736036902642801461340335106565151964035057023349151738351530158753446262914954096685884510453039268951186258560477094154084567078488963641529820053114354422233751850736727973174101090365606116699960835591863290622550722552076644580621099536816736511890639022699219673575115946366495539264295565113655725671055475188725194842453386765695032156776050004834224461977533387126613740715122536148763745850989378607367073719666503963944868534104146971307824496314516208155110926812983229199445065770267952800007147387203999132202633893322773423232165676021323676954776016039126943066495501124312758204132120660974525185214448377524651604757767133119962228496901516452062535014783270286073387018223128824786913690440844732983728314937064218473949479778038329089731546917119843867146791574841695891224228940831491947415753301597107813085728465540806799821981544512301349551001994166171872820677465469496642965404699253069127772912633054705384128150889678546568795429723867931354173312276510094047106684801914865238078087861607107929642250703566892898627089801985676677355914949751604527150457327974151058088182564766187691136381479872559300447960834815733812012391497249655947013122922444137713540509154097880997860183807822691847852124141068572147698507392862838590444921427978855533547135114938087479019556728916297256674261437759870683533262545150276661046929296049282088134910235590858334795481554447254447369430225041148899139222155821773655142237452052539923205846694151411018102345725965308490060778350212959868375428577922592412640339866193259748630372499991420686020599444276621220386249377645120440327943148998515332160667151041126355391029888920347418634087282352361121348866620272546470038850159915734846835531635786086695825765181125264235486699010341683714007353599132906740739590948819955687735678543589355277385029799186871815703572362399371397485910250804105765929126526981710494209006238870431845309041762969396675461160672565821401771016589066186275755263231586919514163720342860690621373150774482237949313091419997539952122967966274863163502338778833534084595924452909293976680952557714424202841379194184759312397181782848015499274336565190507271623501054856779211617662124642264543847381086409692553309442156433828611839665208939110602181283049345564682854455247372129647831634208643030492946700338714876747767336303741330787044668500014824993507549679933080870029782369666513397841451851094216104487350312266560780300938246918529876550310563609634813876004623950769010060631808321107318691562084756007917383135085271161000661809208664541925220742866086229633148557150441316710672419047405807917063225502610009385583457352901242517329205176403605713881607608024393587842741531949895418588945674851314286269494499475263282020126634332167972534045697144494967172431837774449109885775806683061270334630735515178828852794003253306484332995709306866426378043120922678243269635453548259205846663744199451084242988614614275170921446628779664195865236037481377452814375202143027144370668003579432328173486127866928944606010003775927828241982555556331113339165744826140372818247264256914307186550251963932288105863267918096472572017331668923929153493827002833198396792404516731269812282727994706811109308338450432344672184782440381991465135359258999003497231507513547438255105240939453127882544208762110785748288545608022244231474886013148223789342711377351326425843757958911623384382594816330138830784648921090150663134704055538109359059131734237134870855735088828373324496576224435470787885797285435644200879079452730912251360881476920277159166689850044119122680693635384309099273773493185502031377754400050942892502897004007820984686940053354460937693159210561446764836717382779178747219717094513838205885960970740156091183299889688695834047711596732658466854726641950886175830636266986361410109783680973911565650425460910708424504210708901231900901030487982889891427036941882793496787382338688088759433673420890200125644318428926531232089353846808834737086712826410179041878488863169731453729913496020217443403018390929556290248589837976627132498526628666479300837707923069042068246024634416669874495423795034357234535828368674927212690848062329034651801358249519093804053631926809289673596610088614980930426572146840656997001999524653533084511608250645534091104066076006235448924230707131972927228070002774976781973230533956293722396312959602674433151422109095705521691485611263248266983007597211405414758212976714913993829447170685291739939317921253843624315495680680756931636358821006378064336895155246662362847116322057441689652685557989718282520387613806985632056175288486776007038720260329739736431333303523293661462518865150492967854408080568984974578953499181898031364432154803676412382980531150256046342129271816635564889680039694957581906863228791887422606660857240046381743883534836416085071825180187447036262042414818594285019108842200686225575353670322064528088251007277786800168956311073110117024874420712094154182670767003139933621776306501347651696876203388467857484252438055614090175471736462124480263254609090491883918337139164607307354374237619083136133161820581566399639220365322922846636665489960279658830278021791963864967701694630250961218641902610381424856991305099371370720005036515406357531918887073229742612851610929441705315748053058546523400045698611570333844699694835458847881270144614088364322322051539557308681067262249160947318520497376831751626450020692130276384578039437921445785044264887978036413277985436055385792170403979025684653322639058669864074277411655964208176469450488481362417593896946373280069137939313742739548010997230578504175596962408443624151888373173232350664711303246291683861114943615795408880320083999804168673270874133163025247090204525918553349974860705217679445852192543385610922848237776399754149575599649796826064544070113784270896587191250609632405110100643542201607539559149660223349586916472579633171995738619216802341369201208485429413070859124492720539035760491854989304839182685591816282153262417768756221270158592138972394500599420305383325247457230226035348629627397907901407189855709422708104408895368101773654073206483235918636261523718357088288199547099212186027609262931739468790885219621628406471401123815493499721242072774927640728326678668279023447634824292627140301007168124489915955726113724394929316924234369674475065058696270735576653490664633179227078258516083815895982007101788978863503424598813431222924562744605503854764657494500330882069366323282668160582769220794676975710632861202670370562827519463051355266583773656678738883556910949218947535767293556029670269848976999356635365627261343263127562142545797905726633331289110874774515959080332179608571864245664055169757867888313144558303086672892824785621854173506068227878725160141446740640066167439092184372411682562480768801452100263175782986776170518190565084763099277951603596826479090579264230597148808166289256574270312093009361266506365486272447255927486017120571445171225414171432503523046236824220521048116875586819107310308227138015382788613674975721397983237325694666837548954599875474619149563794037332900362285590532660815616326262432224189484196934222150379859912043992099416663846196630078661155277120274811597598953777811417225784589693961097858732223541069860823945770775796704218126242376583996143414492799990456195236019416595100095856564412006421938663619869313745011432025465481718368393331766199947417293498606860366438818875370753652348136917523029076075617124271042875206329435001212932719059741087082161453811738410951312555084830161917560058983199334982102541283811314187572597153662507775728198154417656293715119397511506840355291637574018318719989558163943959969352227114348540117277876686335699844153479747844141693505542452851898650197751168977264353162456452939329782642324565358913755568399061405264205463112049671982686978626949774070895455055322104505394743788632225561314608528308052400927185244095484517044789688192921975003910507210971890145495496060487470420094011286035032895941604487366256491308166757685301926579634505120392514529548806805868800727412396230261101552986524515470270147691530606147494165073753546271443829640907837018232230809878172549009001742866657327165408270195687439437482238779605733694177133764631890384841408612579670374080328146751507118322851751390341747107692926547200692448878784245847818216222549041992516202250550277323839104156187043688599596822403730790232442826021501142694161052803888479409819835050300301415653280011304142923002152241982596492674615849657944615718133182812788947984563705435059474406288310417645325190656821524157303725086118074267799123222858861901255856970164020176281715576676281078868370234976409418191382600353218641203099671206660962364361554417991866403282721188414197016946000482237100801441157269690604690896778051574964760979324419976340395400674461263054048129159806715473798827967706238383985790345364308882645144818634582788938917670934105657449861592738098584295740405616760284745806867844403614588984378190091803778214933108719137426349400123670144092572404007306472647500863375335415087025486913464685517684084201580647386237141054681154687729464350968991786910397458763784661300489584693290319253689788661660712320925726153115035625985948313823589778485208719996391354728759824430667463020623270368421127769607619049196089459277645081870958387946243226036351727914029085409575039330175196813659507769891336405737002081464160180922550204412862305838308033083783566701924288076603473739448541857112339074907195231006352054840769289120031668559639330288401636824539932639891443643223881617251151379329025020016273227943684611107665492394380817941615347344739378242746765500616966577647546324146093310622459909811709625254115471247147743230208953824653978866422556066456148651518217295711187446955153610154988807659971210219383993452898523051485410741580648728995573539294694072002315577467025977295178130329803410071482709275222535100580007068448833128303365625713569095925357872139566471181706091847599683416349524730929144457119128421844734623350216182113941266971250351587848879108566080998990378493479913229524278074580195750468741543557213144405947517638961072464577019393461694267482115084500570423605373096809473282553397535381191394885786944259503284009514173684934509106451945182981394183537803563789766595827961459587019739996457297080523632921937172589495438021019759430943760564810859096550075810080969188020576299951767397705255909677404846453498605163197933359352192710727216277838312284230430247094022593344554274615077572475927816591146666673853356214354022038687243328311048622496690195826581689655044270002468530478675210624701130174115588334183542016015418535810301088632766476366888011277100510413181260583499961554935412134745090914736439897135908942774934448820707552542129253506389894997262050495935060867594777730277500911527847064412143373196236746807746336710280983256890322674104876406070812326998730947936297811150464163321374954669422315730560008379700781784014940402651814946204899697270879489611010733529435498609547572762328501840154090693463089211859728703974024750070715922412465524097300852281587613496713112449086324914260782587514129852462946546771617539936468746517073399939793471627063640171016304177083304932648622480845912808442610683583294766739669331780529317991350651977301964330343874533743687304454788430807861514828337222987602828744036919967766250053320934308795716881016423093087525458841600495759805299079884151002357812470512391124923329807447385542324467929287274848900849310554379463613128329332384440693538760430856604694490470759318790491981497479934143829523414872016443165767315564835148711072764334158049789081008082804682153311504604281553200886660334643390941690861002432380031560735637559424899252225929540448597809659124592352273996396691084836453341121556494370580501229785284274719138281842071837089199483492029618430198200177399762375146587557111329761869593397030027639892270525329817577042763937504835559802792924633436174167305363666830507683715568678346831374332664683056237843279476579370888815543805743580006224551536895652088612188350711275739009071160707595538160138640189167844635560460858130769010940084757768560748221809212714642674191656973393406948365168227615831465986981706529764924849532454197831115525589177414219168752333937029736075742101417018425045073894804671525052334683971541059661811791202404319082477738805998336912201610646790509322672706876287458657221618219339515646169818633848571233541769901892408357886503724258654671271882551092539686473889172674164632235400243273687491031499162741693431144790739606472253726240625669322901170780189887728208314003296187127982435583900193192606071430589104141533170384845240549429515007758834031025125561206296984040967120813095610634055429703848785558096592598051653613382739673754560913073615192366324879807319188133459602071963888857914680689892409617218742287760914814874373971478642047256482743656741250859902348627238171065993827958894680158998109294658220656246241672798469937573096015087096991978856548075600347218023044097267643552832397329271995143030672641043223805355715947492047103655234518072141694585356678936082396208488361263209874409239736748288609793930261923239081729418449830018323445480596486914126537311592258577454623943915890260326896785360559622342242067245452442848341542466746924094393797309918591568463268030107974968835321123376054111591921500331597234669486948250734765549939328156826729860704992413892253408350699324137181392488230812495639604004193810502702035964247940924417431660628557487110496093890370451456864717089955347860056802151472737547064840635723850742276254510239037453062456640498739943620781950941981267369501959588419618067632014778915278747770903378485148843674493946828291318524926008765178378328322935996155869145776384580338394539366804505348570081291598443446960433220030998821174133029648582291503056251483768004491820010281112132672464372485609773814125614078528219448959262993174797005539913905700028007412847858915615125540996806405932586762986243190067346717326381569280381995473393084537521076886746294004285069190706203680223613051589977017973075322424739557324136068865935659493004589570600567983612635837225799087126991872198916620448717265364747484638191733020881145278270160012715835313670620428187586083928274683659372890445959083461400759468964708569367246978375017762067152995795183713843716711688956194784060005505115139992800183706916078613391718587346342393739675627941429025325463746244407560416124879132539844103978126843338574707897454050008303178966769061371136784465192018069242478221462233855301319250035143685931118442479269164197050784685999310917417521983647260333707662931939601261619848047098480838271860777935494227535322467065028342721781877694991414280070257932954665641380578985080806490202171017883510328629276541896005274578153414126532529186909250678468547969592345761829998390428831274616079013312979405538592745846604740197790975583116658968213168713059457810736898000325842590091312766632142654521160570622929471076168189995504678796082847368987937029707608090916107520950134243249692582483749354821011533978837153209936877490625100966067420989286215189024672261069279991507674516118033689856584306544635513046250880737465018449047104778390325907635035231322287568813646037127485386128627102013710868448251086198671626428298343694130331859707507111468088716404809110904715587601995775476840907271810795961111126484624156168536936187866196321477416621081740521321941392861166781003929023053031038040030098444818654647529363361358976102861005416884692619983197090571132886846760281310787517667222252951886305667419369261306946120233950997388309467862975372297900851537057314467890527144540588517749499538104042158617093608616838363615649584605091924060360714923993048091950657343921937423564153934459158577069705316491367080500437330824079597216765863761381704404535332170155936005653958997896637140977694615397113184136795195028019188015417939469600205364862895923837638024974198938945568690632360960270066019632739740099089834183196074673265475172034228519208697976793915483689055426593681393684284127631650010333118305424791474348613555714730910588999331154425060030321304464782774625913176743176984337186982236439276959502274042541089196849301834640873403681841218814338428130215083066912155667801568204202112672361272896439442500666253092059233456591263908684116208271784856226180191908991224033832902712164279121524682546602008816457750104209872169651671953499912560068929112890326627988561867720355956560758192902539945737632130422577140688055211657698898537592956357660083774707529075800874738432233689179340610681041075623122111466909913977107980271336650100265842544692856600039079885801414557668917593896482080502668841315285508022845729154800730160804608066787114347602546820529769057061604257930238032399016233143317925984183857133678706564229355395480807118344723919217573826776886346374594369826691497945753097851611590484297834636828997676431464765516961515822779502106804324945022568085009904241436838195227977129901958677100979682986022369321723404470596533026429229664698541739601253791565413775352484555098355680482466674128099588979333163274882986215382288242487984105475657623126659289361228882377410634274706123648196420522707824716215613608247473184683372571119160428064197178954065633679358879309143134143694335227470911736195722543148869645242592584104125246592187799125147495522819570074534848698339931102296643191461237289240452687342374097577532735513313388109770509266250007895921283685848806637369201853282855369598869360599541948018160797244518895132594313774617986522339586807882422873544815439366353458070847542762144496050262498220119348019687079720029500496781565677154462837686306102288106353742348779510952047159843752074802078121799004768057888090190531548835377011236872257602917084554424735728178676906051278926236201466880826669304199825711529113554426872086249721022591147302764528008262931391252064623813533141800814669250018942985416428840816308349070956817947029446564549335344904440666362683448914264552658084474343455729914484331390564550086918387401613546072070319435856364232198102721589157591500352875191181607934227088208749610068858106710967610558146783120710954019559058903014994795150650019908138372134333540482937113547144488450120545867252204319441935249171805143536364486724180991365357516874936272231192552295668712153161230909312651038573573631163788203460580817681200528297549322287644056810481186880897549137739474902229172740294479613135437062582807824590803734753196641413398220481222897417034513031203819380713351921900290359913831370430447731159258285052780366845133970799356901810599481560247438704816433136353383975721840772629083542152664665107699879703446565057959947082198164876129449490785853022292103590044548348304654655358266555949265009156134773727611739805679589729137202068870331507437268915739304866254361318838824024722880185316691814691524763786968880605800959508456608502596159112920266508639107512492946423570138125727376091770802311544414100069629417630179481181682710467107202881908562905376706678691466553848770440530946799218358846951730453122156745185809990893503742184012919195204771979731783066556902957451075561008279800062688090173277488066241716799195706294650576413320902267496424502278865047475850353967672957455987277678335791680825081992243144757163523084121915032793573909017302899068540826503194875075920854969632744967478159160984739960238459223115940908195324981826885105061500722318163432442019406692604848937741897476900742179820785574394508195857824844048835550100638837308334999762384416671573064014624022727015285673950024281887373860929221033078449941770350182921680463818697728310585156076645601638641062268593477440538849042475134397381420641215077075094170120783218220476410213705046589966050268845420921824231767821442603162754069109673254815620707835099761003925783157365267436566218912587589950246324678160854136533369306184538775587655254866854218135004596920875496923805399688096609474742615250263354596217292076841760057223551929980104547976629911054906382540341539044566787856880389409938711219616507839022367922594328420290494735368147935792462684886796228691911317257562158402250756218321822533707206657257261665667459233792986320407948696994636198127061306558668130975001926879241942116596617532630353188748785955156982151544751098856747904697338396653546923669771553407174103441289532963126809097782663513158123645055877830872914916541220205618028912923252896723512537076769806479835083960893454337490112418676595068919257792950558836229841955786534599404442007197805232291661993179125978742681051180141939483722000807042730731086379752067352722418989853878221031868127455954291879337591762566904741609799514123814488616091639884820005336328594949480258325164223905218202909725796567259666801458154937117199649194603877516005690035155792978307631346854497067136186951489974752004814996865297357585688668881575791994108965492531086373071500866274595938509899079073621421250780368722028570284975057972240851650647048213320873784728148350658323903706925996403566592894923235853913902199858154358681252077691882051555063727828229260922209270614424847428713458817455882360847478555281590325220011462093275731081574852444246136655389098593410310993766587241627626994661475690748659801366750123509250744163842983167426228572723078028562109865354927882838068004201145121331116410843039669449178492087118909481969544983568783509582360295993143116390073953813931351487951131295170529747654426677625803676610317838707226664535865673129359353291666223900199317926324780665193506693586880079440911802272995155238539078618568276196505116530037979834347348541039980141054663951083065458926812329403828677674707024667979341011324838571493754778452685727477345373027400405813200752003218424851241966439346246333198100798373427822377211129394517529539531512643722627532739633263778439491299104262958433935289330607587363964657670621348326813339737263897503191492147119682501303715711577402002518100618226623910847080788708385189589982464231749135743048788524151503656724127465833722669664265866167276186940606437020482485025095168187143484351335050156955939108274774525852936018070798772782875628074137256248887973797815859700019636936918632628935090084723054129417899377618549165649189276871648116871900415032604299415982149599626740416149792556582168042220529019261034253787548856672045723901098647158441567608644468582034655746145714755510096623613534645610994060643638594127277288410867127587564017145744922620284905962360652498170203376898954269711659363183489210010824978028154161788388063472021223749038420405514922677756718053712728066215432429604221684680655174325060143819741361659341742262634756184555340683399304593911814408257648527244721967446459570941568578656762941561889804659382889138448340213570273628033910362954201955738378696191681514557049887718873373674078163569749224784330951393729901411538388998072038927447227734907236900151321425265825139951356972275108514849765290109294471449606773573954671166933068695651427654890145032958121383361253746526417155667171001498994983850987324561698724072457878095884070328126610350983907834180383854610168938984432209176110900735071287913496557962802790051497400886055091392960321292773925031369477699076742483019676659105833530059158019764804601608335567836967592838213232080132069592504489342992169893482223003082004899941544739016882458509796223935926410582627603863622487807217462607485373816079462613269483585367618841259486057272523432925753279053286763129533595249281197216246365334872480419729789257877337576362927797032787179945831931200127754272356800931688152452150004590206255525149112822737992059480775051436634114670855403475539775353073421046940029873429535570250723273990259170610855993369051153448395255771954590214461880419133606795185964027144105500951105471906155111949458965907778139493945270358454250007294030743835573290731013087652208997735056606420146733722218190243370095219934067159107990041476849724794504162482989139836945272468164484053357223068564905441834523721503044084422067264746369377152455353582676768645744181918067422505978008598044835443508952430522474265211275863114456894917636352480200658377193496583819345090131850406930674662995162766119686677311764927969482776677633783180533071459172859022604240439099466257382775638332597408120374609437939038663458883706023439553424058148124548996267708075257794166880529468115312688821494421566294449433825525020304585850144586495617766094005003518216497462638006953861589223193241173643613372562191981102348136235313608590942842076560522382441777970093229663403621117488463269264662656133091067717188155190108172188889247323033737415859264052568482310838929159109723761401139668024163575461926020279631113000935237537177529812876951784805924703741288904890619492857284008418168357547706316027768133978561717404489147443828295076495268961656128681041542634859402596697639631622612744893452589518650113080865047505941597076610213211878266325519147655230942990403517396710976551778090143808950650718441811899126433733025558355913222319918647661152986001518719500331206047849766230155615702829410144114992307753822460502326362575394356940653991044585945705460718582308469801361285851779287846507984723980683651037537159631071577670592252906946506608798368695895223198936026171227522394150389865390436495695098210262826998610063712029072412158292487479524138615575755061792493940024283358631884290081814304683806828112511384119672638581977915044956920889186877393358987800890215707289184561635809204478613366206552999747603438329745081209601733312313644718457177747993296600556964931622648674853234668596690594571935430402130423155782621218636574291639028672857985313709365758004783711113151764981178879690262969672393725875088270549180910241415072286669345604425509817419335977839064395682000670356728344587399632673499914282471021996897359321329394628333185730331248688648671731121230497292672853458052115419601698204854828207425986043512012769307387420978615117680923862668963262234579076248601061186828179045259972329011712376768858485986547525523003378165321233826194997104969620309080947716506804247267569317573041458329506261011389404390521610048844177580070105777672228465284953177296130510566734543619637611155187928593338876402428164019594704891687116779696521754034467527105732642534269733718204947571964280584609495602563853510736631827679635302966417354958261388779552011518948556532556255741876901094407416195473243503017466655509746368208215097584700504782360671562504997920905488871996236498708065151915830768793573920822459515888413460086955665482846253389900541605963359316867204357007234841908724779829549054973491502498396978400546073455364430842612921134532057984003732282882637066550734699795554961033220015395714984038368698964712908677562463585824173812320490906004127528149244882944627684148890925463729265077530705819254193368007732951799626896792316477758531318089339025613904532130179216763363003738782328453339303837918331690824140570665179111870109992789255111573239064523224203952232364927029375179352592955625542435668499121349818968511739584051171670174007991072821295212045242208365013622921620873721074705719662748342377987361622210143655433543066882791233505131969869611889658284270105546051391473510899306169297907017435425837468688648902812741102587142682813520166743521191647501387299528950339393285474373519916316872416344363678777843610447353116245914733323815593505462528802018340910574118219324905826566097297421630522010941813598567649376151365142603730394314919174016225335303398147382651112111163968780918621518989615129891486005397570449832890262403020260947106762795801055713677748096705492463706946365921446706096912789257244827344123646827903604241307523231412872053343097635130894483040822081188344700952588384363293201749364150009453813785465076848800164006471063662015310978555981318983530037334862650588467015672009726467903197776172549916093323708568066608518861960020711592448457730330114844926468482054616620064751985057350138402181442864946307440747484520289909365156259392287805117564299174084966755846021286000907145062659775087928316330048762954317681773797698686071864686238698357438290317247426933276770142945480967208964724500051828555753387041508913620813172795198208825470867221382684538610989473682196627442637965343235102174804729747303956384543157743740002201960886323152421321400766560486513431632731800747004659039113087252051012753544531114836996181402083637127949371937068204822381523964249718114797575871584198513293818263534960492118400386837482120261174112467259216708191429626050206892065109300567922961912202709402385628538814850518360117285539181353801097708284165608294554360415467638001502002081883208095047021504056888993277302199325692124779520657623183088133455907661392911925139750864699276112301961708593826344620546157858962350309029301402632239651219776153065485981640118638483346536652231279139273427187581223636957146338166459525174876683963567807221176597326757925670274019308938679296706870195020087031191523575720395198145962289997691591565809179773688561938536945601387340831096743478465985880533045697373031073729736882809494484401031773534010723518089309484059645430039215322151272170593865161017327202257597873580039502968525814701079594820743798886385175658003625426121182038330465673801361070486233035196237085333982599328350028472467570481640715591904924687406996170170156532080373808264326611523691624723766801168476328774057359356645099403640947140894715430853987439931711439690598357741142926622614447944592099709987453581830772968578575849747843413740830209154144828393008105327531724538660388802627008061394231330283812794044760861706625627363227542390774888178646982252694449505937637893663247955147364096721176820567332520786081046843473378263488130615657898528396874993391282322164980331766316222419695109566795945050803210840326230450371875116786899907587219614184055712829659304687602322026830406393911232596038200913261488345756320916964177625623870804314832238075451287932766826525473081270737068745581986093608678673086870992372961207471958101039264318454173834693169841449951970510029160801467384829141299439637777289419883608418775285573797130305068813478708111858070519479489706870487035485467339622166751796115631469183450115484295809252484350307032156463960668445042645107851932433617420968063963203991929646447369765190806492698955367900311272267494810743497997747817659575390827397532409059308101352148352415832958726802532613372427387671615787697186196011317797480660922047740056181190071166228023353753487817503560308200985664027728900003698701257411742224022655339539743215637501457819147992014840879185488901489236613637563810413119732802610219452997845132401422786909948886356375096747975048099356518057898036298203013832745725583156509306370619193449087046935045482059521861057154888974536470875003169366265791036016818971259717760333645589878575860782018967882840841225812197452998756626716191608483238319558313570070304285136006571665145076772859146561096670806043948475390605773727034347367469516496530689258811422856532042568286800419206199293715314889714944001713668161125010939731323699622079485298239374502543320662911335335451036365910396675377584562575084398995227674939731615755761617298012400236148439364659942325625877773178766564389469137954734762524643168613400559752495910721407864140811702787998800589579736307021931960888397135379827839835878465969726756278499322513053775108415765858617953965529528128709382990768898586996027800352544967692376272968171671351611998552666309210443939702188311951348819512711164907643425590897879486401618065824530829768961217395989309094463895675917000076113604620912040529423359307347268624982045394941613580394420209498488175275347813291040920832405991669380955502734109281684120785153306417104321285450749730070339873214598763011803961178152226222891270369561820043683724991315142847747016529488970213963182382708855786976921680170513408663238032278545760117198215244976751762685608036554357627708263108030931024951533074550539337230614565433348480289291384243919077970718794069466483805703164531052835193594039019425366087777172416222381439064086837235467752719607684637644874182399913669388524213146163685543145929806002580093413156847016855987354515479013877847014804867540065549523819817099970128124819451439492714413946857073217987554080735426530034011732729689618409429730127200206470471196854910320657958502494927307659689930498020692863681317090254862874514514428798283553220158666460578608177268723952071544855944443643249971304219673127449865826273088288369263169534690049559023663442417112353807721926276738537041302417679253372299824402012479933679125027905759065553178155833004621217244552818396363531419156157338849688212684659960175290139591591091034489221814856608611777566165504395777110626490062710619507429387905182235651580242010197467406905099679501074014437153307756424820964034782326454090468297371904350487543311664644214744055949078310763428164680938317634896175959444734652452174209973375163735476427575076596078891230416599055610489503330554245767748528061938736834586345951481109517127918104349459922707464748700728772722959286286879611109378725013727838532515375648663716576533978362854231432733618727894709967135449678830812646637203517783824134983106223046603503984666613598492120886540485610750170335818850312216876153660379236540460009890859656153505032737284821720629996894385954595964295240519699937040157358433404213904992778518420165555338906787421321356044552333433058286776202654308923989110806731741304985196823883249431354120389001329770833257788530650882601912579616777922276098313656172538512507502022012659654050058845432267761100574912208656045255911715770935283496223674873794887797255908460685258276079906631066445597642952678547017373017152597618470849940492615473705881111017131654830499704063912803887185244653559078356201094221087286968127765104459463394318029237748232549366064863913167699082330267811424742986890800950002182317655962478788893424093240575655737328308124893433758603715062440485797831121427582384835877638521890182967833801716812324188774445236607085383751643169452445240030218948712689083774544968260177150822093959911782309873677550065182919680581651685632434352248450892900830206546742904881487605442032769182519345412426730257732515960095138701145649384058505120761405871183777147199064613971453999839513561416941011930215367291229841012860253250184437597787012809949382695015678164795515206584050325635161172700506343508414685777659600746673607987387781636146565677230476211672851716604525931985018063334266986067239974799496249638810131540945015233004935123338112561297661053277662709111025645909794288019932073938823219025650255884296041851849647381451287681185778462207239109470194088414249756227946488481415606323309405328385494948146435334262003112293334062653885115350309216669296289855742803487233980389052248719438050576751507700895262177145245471382763127541720705587616044095385868973199537306188956787009472514119503909586819804786741831905170985932717172732257757555874674496494714627554582809230134979740274644336729800776223204289984343026213298534120256169438243246527016621689097539103249169102558956411147092313392222718437698807296722571805373931730123344760352987999872445696229745293097477260781164417040239931301327041166594386529716220665545413716827592804347082102849991874918110358185800801311532329669705553702469520635379873587851504067815133339492782186146500469881920990532625600586870785511560074982915372044973806882520887557924737768934330402322791755836761054778871042949476885823537413303190145947470420838825346892705893242167224796588139926802018238377961620671260141515901214780848859860477989780423254519020481631004449512383139734203969768018752108928777279226821347153194854904311611232312888661801799953908837853223720075620753132531555960606083397860590764540433508291239120084713075449023691785946469043978272802316896329471662443027391705772270245571279506744308004848989298512646041625435937159291522237246745092693341370204579088784696891077498592770689538783394718682840331512803209114490127281211440307413952315745103991172003968337666087079795540186079064588858905093753519400006098493790275090408511851888395632375837532794781853266505727479044846095607128017091630202233648866614884825008084587421870103297386689862528587112999517436106096159580104774756664031273821039177190878750268329289329668179109214110877584179138263193679331086426702354810652216076729307434661488090068324147255503583512187247548955266059592345197117040898191021177063044257095704768778252561244251779329169251408760824404670036280515155202589131851628133424460529156855062401437311807556908263374237241948159945996836995247136489938442116004589633048210573851611835049875585141176174587698999907332884643394384952677667250235802712978865477486667706826548624656702397578688383563938377920345026713440987582600460941232407070534823805879706853390547442414863346190517309819224617733556297357385739627742927369560310526604808639337728715456542330886574344362324835809647233999204729091165091045299272240890831709396648978683537026214201186303242981952327775163312384602056838326897886450879228976879089101623380654368200215297635602439620095907782128209804425087023224191568633210136313364664972354088095413808223587131322425192990458447522260279983132455515412515235067782040176853734196240861421480713445239377941426270293745860112048075752579034626711916191680169505952716846195812386945339758077273022645882424309299618903029674468736072324227109599074282063128834169237141102395578960447544896892448415284956405850127736657460523253676693067580212718314455675367508361829319145504376378896234042684149070496840699918025924130550569110298349298348240519855695911092026987693576762426640199181880082350696909277344068826533618994996593882245846391981021677080085381314528898665126724103130066143612979493289130674602614166213173160219579946572121357404632267593030873117926790369336611532396446914202836028839228335350580861465890453989995329280216613565329942833813988048423836363913033118235805289863427519463996260604725823881547923231351537530711483333155211816834554578511981061409845303129749924191063822623136758042897928550066295192570513231640241542649351136441931035665052427366181779402113289047042767007575554966807024872993253552494166024125870450363053625114916752039645931704274303424782303271435611260698687916481733919905976143773708433561145086188942858739245488822847839432640995387644675232693156558501506700373224415068831278107080641766359558851569115889010305109065307208750803570752815698052651467316010297481196641007943741930581218885549083724358235901814727336101875816921033229111620686872109341457988679662469302050198074634676557045103877266872110146661508500572326499432337961104831761419575581724779857779626901301049908489693165257083179629208157524894838665753910199321487136147920038707480999721678987911030970935376482298971017497771294202307611732367858885108142725804018000547699706384580987610343501250531958202124143471189328586532795060068043820334267463673923609214063316223284176384010822881489833529181771879886290902784490256772690199977848434595587269086078529397891292529135165553982935615199731659091289891361260187965447617856326308232226637634473517464654888934368190971112002949959218980800610056550484514649405831511744147960873241846422877449879382159187050227373250474396143362287234898695322618437614081868520635318186406185702851568185684210939344699366811529321762030421889486348717127682694387181322815828171953057962127256008405716194348569105275340212190020150113712048132256850945550292808211479833464324898549074434036093676434855177029065469264228735854819651176102409604113135272492524785207451540836128506677124886470444021277418434278493514504069333917902582708174074615012955155305465203056638727899674434788203263100882581820808835750315295709301575395666359983571308774093192682194004744736604200455274588239553353498783086441903787049383150827530382627800380915783915822884139529205740151604383462577187181489370690630973054415645823297835695730102024661784915915961572062630441125702217661611058433158129338508726289952213379734149364629981329532015344939628580570161237312074656631359751644371214281654518215463069622741340038541457179108980573851543710501143113839275071401648495475798538491751121605319196901648684855171936689901562375772623179701939461173177275985513222935840681309925274043769794677317717853763398543299080797250228380743131212936686608954384074598699674326531549098394724966593727141193313792488088604694013526934405710609201703745380569879176659422126074852620908253175703199085879724601613278026477253166006771296923457970786120421163811352450808400669822770852822390116129689068365277341301523783107478124263885199189015340925321214046318597453944818754031348308755607636834191198489501315736771344884982167349217634782861971193178047450983183877957345180672348066158612070577523110380254137013922070773155251180757072366985821956860350906909251795381111986220201517481508644363657151838935392067274705021660571350448729464135319734788458649775017829200523795769086365887095521368496792373606495118226980439448542158223306627028308552808031258177524453890754290699140373053714668229550759171131192655361731144198636112844835949531405980948967473157148513035501434996490381817083646273980424726137529855168643204168510621398863923078314508386529258694327425121455984666373947757740485905873854880969649151133098634428596179846402864065939569460509297135431622539532434547136534909264401151943365752358338377559889932432303887851574061497536449211501979206897243786124643447464552044834774980084159186826897655185302743752402440541807160307965704986803736864788129362108359730354332260353558993324441254915821269852786970620086877179560413757616061879494407003796817405918437144526305402596673953653873553032244345289070684585460542927384192296109252576304967385403412134315087073579942576867540608989215109349675228387053896681519996104259487072956335703954967539584891600864576590125747244687824856910717591597727033343453712138353726509668101527887419507691233912465897126352772269951179789831572080734890566857020504236986067155795696895937094086435955293908113211175427591050174207561152227386501427169917523379294366748849094371681661617262870843796930546420280951906071836210529151884843143825569417192048231087172937207066190045643531610251693722560243782515541875911434080814666655047070906008458047368545424988575366686555450648379244370813602004153064030233899357210750216748928730879449403725505918422558162184586653187094158492661006270976884545415476385435772798926286722984718964167567638079013317904796540902452755649818343787382584080765468135867242808195624570609435550590614597462353786412874744309757921085511563667119183053544507531950449234537468578734173334376441253644965605788146072548715853025185400516896127785675801661311150790202147618801049701048424746767638247958987704956037785255129205725226902778096618577798199304010110134905066615995941362407526707460763125882732170889748851786106750121946383108989952399497511984730132647718595608893127601455917447514150680512285480485187061703948922387212469750506772703204190688511700601366350366741140313426083758241758455129281206673388487534938272934499799070615332649145453121006733238966324802755552823795095181055342531933370853408098139748998499101445634425274416086192707022381590039800551979559173291035357884349463091965413337496163424541211977148244031072351425431342130354333638492771423777686254779033382606684449189332280719695474347890043795623224914424481448629573488751899697830454046506727041591651219525919711511282418726619012052252115752404242131330739885064312293262052579954837892012708985332125391573311235043543710987829438403341555510568321596909135505446576084990893822829265845805367204560910176133740761453913983066283744918622452660389615192841123232448240545542035631567333749568320134517415989875094860968192892391305661691016842639179572704322286042909682970177226234246686641536758713289049649486014318208468327555971277025645036960256440671532813953479087767962623209291862990342505054495977542187293075399445199311816116911896962813015050569344625219570237368952668083021986907885093537997373219917692541366717904605800867282481192183579587507791548306547781261465144831972078714856905801894562814518146628653706686802424745466414622714462777455559073900453678933607132621284744151352888329509395700392440551866616305122831549954529772034286143634478568112333021009972407150514446545044654738551003220366432000761045777362607126698328017201213247986476821988803486505598708975107338101058574958610282696919323873660913799738152563456408913981106343105622699880882399376984078931087820539852083315177737929782109263351102498133262510633777660158268725986366228128015313282485425136624892994398718368331255409972370363178812727567343173055780985922194031202700460283497442301485892598916337815976931609546703471213522739339987761596495478699426650142576625194949651788383726177135494512523800066270217970500260070190153191793028082841014582180780957288653521645694751216387398341559554775169647846413928969543574458429360523577048102001676058286343939906882700587032705475107576649922020669913980631617155340471136630408372148019502017056174177710955612361817340645159334249874839339540006802887816211233399747083717059475915469017218908739941101417097426085846594607446223875941373052188037020764610794007367899447385150404700955758192493550079305013858346758045617834921349305646280376993133574299299588877683017941617572662282702391618367862138542947957517293461444299521975104415729502909733937331888845886175520452204231417902842138451948183775851019409113180406517821839395004456223419016081323500909605036500282488336373544192784259167610111199233376400556185872927601052413636641878915454136990327283531245237764922486531702856872786034956786239337714406956729480241009471885425221253606145577320345441517198918542147956430950002883420845521208184501298686539097367647881995127419729874169512524859384026704243940387487412131508414411223559609601911020523839589154348134454694107029842101838234559851695281025648662258470339331945092029239562069246327505181137334734231768950411372620576900776024617942929927386761217989696109993677864079616349515956884125802414876146104473896711851255603597653794896567158603926545061287634256331410996337401380017136903136748104471309363693630713170318071446471552809228853369698441508779817799561138210889782621847985811562768430284391599592012083113193973247698206833392428838295215162801253962466929194970429735210698322525001254218870018751525529113476786749935001892192735723944706257587635348140682717492022645399532716650194325709217644848956950921215222007553002343893810928924055705317239318591763812034957451763634905567152102060380462945747092855337112669438739773302398784469360517111306071315016199457702220520027336932386207776412646031507420100017190710965444391941727576865278952891581787521132459534113652286802950291152511163042703963704735697347418059470960773673057712260361885432743902364828474394774571929697456014291553818359671153335068634574279882286485551247948877972871981591133811543944080903864469500429593793281774898123851747916478443914260656312061052914154195016850443421567737936252975642613980733970536453549661315846941533886595310987363482433545177240282039381357186929447314119185335289720008443436068510271267565540434447737517680584430456325886897921084863080391717514518637716420943980797293443374991284539037071218788991030658269343538611659335423328251883152109396478442767940468652057615222651713482510181665835678150920810782351502232000322220271166416662208173064673223257370335070074419866241814848605266034282144071320858983062788546319084382021627819063696403837058875570250259856892594387869165115978087527617988794725953645184599525662574254127708443459505315655826649284575352896590755300796305017698106913030667811177149445761775319162810000712268888738158174935602498101593104738218851043444161370912534456296922148086914678713999326784629803870487072986982820365819720783289348731113829874203937841198092874452067114222447439474057428058591113533737942542105066373725312997484863112222985068039249474814911394074327491638962014413818466151409453026243507457884992057835032722337277440031679401117674220381428281043787574594207688684382293338780219611759549211705778888942339743596913809199415982596660847773405192096193415685356116380113541675244762009404785111803642666762362881559577620483818077146854555660932118931076853210589191540180088625670308373860133169506218454458676829402582188510374704676945886791613553461955480029049270919577271543691171701745475148052323347547488066806171299645171589386168779882917264473114971000495258478893488368325894738484294352935440580756380479404232559113961522974098259555794465045284753177266608396459132443896289912771992407627801604624172632990265568737915936228322483259581706477965188457301803717107135410539185330073208978188862817855060679919698115314471144771834302066975781379413010320193069159111649687177287288415858179112418234863654720111918081028708916174537741834315517968916722905605656455393332700006298331036878194208012886554997663670728081852348785429602817680965253594289401095608671282549542345732809922278360115170494089720405470136038998145204879554406279365201777288435249644499264807066841122256812129449598501897262792475375410978050394590041819528775777416919927531517159114916213176714989498459761348481285548302091968060485683794104201104398540178360159804782113879221453975387165784280159933260069478192256402520961627821660915811141920482656389553612695749690856806869660215757117020539313824733791253095507865655424936033935077221342570628524440651071390160945231117645592778493812360833945695440694118805659040526948920209918321838470636435966143696106998829036196742987750700367600170956233642856245089124798352834724589982614806741371309545965652576586412437119247793153631291884691547811260957960018089436664969248236803904750957889449907255905454966595703647229974356375520850641660050424781854998036838691084272184207777228099583324238564447719452706652775406243380942410477617200402175933935785898707442721705614698571912414832284588751979695805633282516312105518130207452780872274605302745889610291882351790464064190705928247527150458646360012637015345409141104533506434686563842825866193741868103876959228447092093029284687594026495689234693501400443635234681957279025044321972472351104068126906134222697817741060525079932193369064306423432542279964896177204623289312889654640006182750343970550338764921541143115174329063016220921398556093031090744991151766343611559813916136936350537405904925447617117616495285779484983306166922143897824481906015116146015813975451423934539618729263986794221779368118759472977807730357103779635415215630267523353322680013174730290366211209789419242565756414595115758314011887440434755330099319122610446837874616109903067661792398367816879254233905707623747326151288639714374052292752616522467836292231715132679577259240242592147423197882073051252964140968197900197530319637248064709807870363357982921949048599608862909323587869444727239390704647141102730181457811442440936771005719437060952433927196032845982488082420515196979954176018209842154722455266926750339427283253786765002585497546337599069744016804289604903069372525752810974766558838115276437728941241986733652990605320335273638006371256795500697172841712769031837497883488199580189663353912982104859309470922285005036873762068742190357730189610106569884763564322465829642830763589605194837729266938917771688427698804248751673337467150955434543380073104629826311332965674952426572037670243657010563450424443068245707566985377809932849098515284000462413890522978233935222492124477306480515101472628674406635688057280098183406096368252504550748922237683328199124363562507803719931329461015334717376777954777332718783312917871032871036696564733951919993407623768573556672854726581523937026364293838618712505521816780041886939838665436674252692876221657684336652218729344421202945295927418700846380872726976719481172080984090582781273927251536019837915182603725484323870960218125621351810986216430568280232741467972874014078675902490351821446491791121325658393165376001043490553485306111021490157789981155655053519945906186873253214127237912672899997029854442043932446178839169811226031391638377995433456646454496355613984156307712779003007060698171322894841838548213344486557755133913902201154040202784016182190823442993254488580169797329266443957508078928559458367220209724702509346569240833218953120975220736021254416676729061956511683130452942707240283195964798626372997459966633165571794053084045591341066820817546298166378638146433494669428804140418176544789165801340295167515952706933872027709720672064421805514472107199864311769920977344239601185945439541381522654340233071910285171778501255153195314385178672633280695387680287554054181367037998549669547615469434704579414909397046407706263578879152391928809904381083482500587734750899091771086519997247544760729366643921098502132983734254262990109833379204371762295169128060233752691617507795687713763505703729532099961778978396276383429423056320170679311129524621728809776395594383828830665509952714157011291683212360629044161126955240518563984762873430423057763722649716250355918593280919871477288916547923488199867342835848803929102274535151873700386074328745628860855106838078515538575347817244356839106916663002292056384835335527899163506914991121799130061523443672169486643409420571527660959844377387815012806240490609081196737721641961764728193103756956153956625002713228268281864986270012108760765153781536377620914819626482614931411113264640010136809307974978774946894791039274156666695132218179208577755998346912768671787674434512713041538988363796286289981673707860876854711330854802126854387982641551237923306913912448907530360447958377315279008485871120376098102105094918390582295771418741279918964937889918479261592064204547973473124681478116017415872707504377103228061740092027181013904086408672375115127790340930903757811898030713485161875251983064174693017291351797940327610720359154554549865599823551802057044002189115958964583507990613481749449778028966245033662481665641612773106062049574605427640237154638109404547885512398055835977351765738561466898128933800348928130534652378316297448119026986209546644641648129349688635584212171328663922099321585484485639091878107810401361020353556116286945400808830113628095339630141091466333749816382022622241833647909208237044252120543424715653736114729450712053448659895915090779542599265393792287549084116589486599586212666652429481197108685129725517114825193742707270519840864979443691029630833182130202371771041403574972689086108167033512047096287366640739836080485885283501157139316541756429176458312153645749645523243972785105717953473602669403508020387232753439977707269184123918927048337886876679415912275269246253744883076114438562122441111838028506462993922882911940293026132378177361056823386322800343727226118908047667666954425351798036536148564154608936508567718210953369887620658045712552780103158257152666942156284783706124398239820862397103647912178989091134785167315469402184501005465092508621792338967745277862913092196051895129426924117042629473785344456107071253885137670034285375879822514565966967898512597687696116094620483389977687029407802654306027427527553274454195663346963426402877378972534341993490891289941639529506497177773702842214136424114596884201812335118647494472115924541231832039101383397986129946304694180669206250240327231820749662738978999568183433096819293295343662008796675580963855071712843417575839985380830734063507006598241092078743022311005658504595559894846303840134524436366544174203372155818525993407376231367434032363359124790781844833859569764640979556251146202948435599720765972143899088566065843501203118895568806122059699419125995595029858410056519541469559811146350595277068259945275529960436397478062283104018626279695027550433497412277479379248848763673918833353593914032740203202703492596996944747769800620668675416309336315387727383773159973872577572552924777352100916699562892724773758302970334072720367391314661398955179002145652205247662030060568992922399463102810366220257536922106419804536279007092787915064968953774404528156002076285810780999473826112048925947804295002913311610817505555807802103341565475840268333704429856172469668098010206810498742130839340536338635859994297921622540834373587969791321192987282740429028279833990364945504950668449807694106886333012209932428840435038332178081508814707350121943450568386934195284221826257543891905986770957960878140074023961355584884467721701013530224348916975440770187506204288983377602872897995937706803626081563231936423631242552539275189567721619442171914870943131367123539894892522477729280503410307768449748748447064584009808718766586329188469362075867241943666726441436385151626228971157908313531702405986577790238936925918590767043163357375763099040802351400362558263339914718116300686582509119947213744920450419967056889209844606915686318240499352202708521028612331018267512592286623769699196514973757913227382623776216811874893950618155786630745831037988610512293842497390237736389751449262537465650046946676843621805907161340894835489985373494491399126840578139293319845363440946440817141707103231950640933435200068225934456441241958164166214813020065749189596347269749495595244551497144637362832289624456168584922941129469058627346024872354887738215863047496918971548765039036610062392268536770943656428115390914106580877974197822146692074401950578623498312455652716683007354062525395465226948368204249218772519641150904114042527902670941841225116772171974867941376509616949957376937033561451912335061710317657796277358529082577457506861820261669083696848232960525700060287338295860529436315612561157360621085042253297874345076155163429977176910521088093910032966374459857919577086354693145823692381968312830101386173676695190771234278123251242372149042773607473224698621125655549802038401676234234108007798432156006028907708903068872317534042938983036736669610420603867494444907003471995143390125052891665897574098277614538118264495138990557248735132365928137438035970758851314064341736411838635443317593844252194572691555035219914503894122453627733268447209207206728668102254326789258778051975273749955394178319395413053236080889080345641151529601819601471286563330091892856137074967758530067379210702307677404624126358577034832760574623109122212627277226042429587366061954711660303888176772942199626442043480022456051126279535112452025746964094301751844435291596504387466849547719852419489455862717850212246534154284236918635147197131224929360190783718572807344472210347925826349012816398624671899972226785945529140392993237458115624464839255934212117245007144501137552377202134757041330151967971899013402155303174616545042233436111329257091270932872333970916034771532805769658311700546693709555907442368760940820949719274660813254361251238954996688289720522071566839437791457886963855111343654036243810483740685863254116472165718941461337754815633378205082136817961091108194236921923198896865015191259478122447199366226216175758371660317546539371447672266100652182312726290440553284741222210202362749738932001814929197841225363271473202485234940730450835507068941913164732985378792844459175367476997274962444470782797909834705646345758629990800526762241965129262306340382715319128831339076470203627526685441210429274706147229742442632961860408566217000348290335087977878048610183501165915880411122223726137220822318439822890496919436889404650358699181090363893707835582299871595429315007733293143469509523703762923770590631797001490259714636360826406540531139703532016683021639955041584851865443743673009569630576541387610338427893401717687937043970540473882067858047657711985810680196968437298336146704174357372540247387417599235686319278493975796478920285603087769749429335309834983573309713115120957454593665259806341430229827735953805076989107343837346582686679175301226535709128335761975074068260706405638154361027119964096038407818358677925871223080504632049610220837976121443773154894342067521395373570009634209753167292477166753799203437516198891590533626598804752547540550624542668165680430353623837158339898145462485805209407527663313376468743522856173257818294540857400004557818298939068510532671426690210712347398147724096614739949904700209157439242868353343491999774859534781400132982229303810094737890744806541432106163805195372577382435550194039768201774301031317455343841870014889796519154302830371852785445420219194698649647545672293070251813097115071095770672544157904145196573730726284698424588517025346795744641720721522973493605249736738201363784492067495189945784609465152776946207332143260217660761684834925463352735630759731315647694172303242371990703130743438635295678503168371493506153060526017823985956341192220907381356002051944386949606001393455539434115699013805802667824345860788085385158996033969953346455355584944479588924198729720642263232482371492406552682869657796264984704716822090641319163205368401031174289934934007271246988496992276007679737969775750774330975901689449712653339459112627591541675237927154677418197537575895192035720702761807449192440547733519015299244129854940162027514915002626259305781591412719838637926794923158309260741832235226006657681967494375742782781298343659805868578396583464951824895429021480233267523132787764299108933789718745515778504279630700759865439639797816184296343498443117627501607596019680730376820300245627072083631453193481067515510924241117624127167323369901799138133610045227598632874956803465756291399347110095475652088034292169101511794600765132767007840599841260652637807026826908686104208205546785241177467085474951945972078027838161140073230164441176806829311526098371810661897558276529112930411176002232904684766631280508111084725124887818199889015638036401333572390231725452943586423935013774424330693983560508081700004868252401218101746925743307798485223046193353296683210914748961711054109371792794251764671854419802156205708755544549546612854694582015558451617832890554439604788827813875184866891808834160553639320290073779892353130841009328221206661185585734706613543683965657419313195679597848912868873668693748748666041801747970862331829839479134885255863062624058184189443997096747110066901723798081763370575492392178625367014653941419739124805472449941810074566959945973358459477597272188293214957399029935969928272802971129480663572568260918226435716183102713087444893579710058302604016150806051524854207849155259050093030529904500622901229095267628192929191156510860615766396162983673950540107243730611801861958710506136241896814054358418102041623138450997207765165232234385326673503969890011483547580283840371790538230884110506890639654988963890970793291283032702769501399870470726267102951367644670185709129495928786816174185004867597167861400335458178737981908261431263450546379692477667669710061462996217070283154522534785921741950779465383554110957906206312749419769052659357675948922740197059972704298430531432085562855300885547575038724221270352175299526143309337246695932167665181797213254917169903062940784256785465580363674128127491591803656232047365618477301361320114388941751345640491430292085859115150989582045731105017117790936365157244073487658280588581232329084427630543464023966610582401556882108983810910045702875288165224613524203280608137272777264898858477307550911913790372525874233890157354878321586993075035719178252762605015272993198163109738844734339184959027022022599462621880146415376138106618257585209921544378166668926679325237604617902583095309279009121273551961927720790828498604719312898160531280747927480611735758230014605356557944294506199261381954134401924578199465143576333202282537849980388025152277563208260874355556407514362183838952494327493014980545577014976404382212679028478009830536187100670773827458680363794997342616373062780268239410502657702747552259307941372823647591195573716796774579508070401334920733374144179324769452008759057708884605683157543026272199082745679591124305689487856413259181176002217672423253720408018666098046855837187816685225390006331364142551369642928207622419416147892378057407298478790907101319909822633877049480090048593454906179347382235191224938304706219996746316889478198671348802664444105389327995143656756774318101613056321682721024303126430855289637983587144607624147719906031199331123537260866141522884099731946709670427075440135330839710996781021343615914273099365831226082891001963630904078547175801378004448621325124323773662294173214663830430645812779315008331778855058517226210272222322190341614904145386124270295719265835884746778659625073958860140895502422870573858240653129043203313989665310093547619469506174741972620252185003819517699046542170144569694680907454917258635621974593117397502047438338944855676169680648789899201849766874631742940024692939359390825508673980998634996003031804672337692837845923481121311661616951908490978877596574841183126696730581382844377197911422083285814481812431367922141093944359636640502109833361927264755618030658688832107147719266614614817428369441120327434887394309184922378728586116427934328522498753815001818820318151849486253743708825471841892098015022982184995391516783005513090285816512338294741916967079623847991042643841038666432808522107001329297789060608115313270106909739685560742282802122708600954174496745822852269460753664486120660812769413946660793270905979752633032468262186703137932072402415425039223869779996051161416351889067405476328687029906489933777903220986814345803313450523083105598852413754973001654111074314713200389049395701357196036643931023117861261933992239951702147518708650475213466364024635604606309857160139731810883678368019062573280355871651479819557136424886775007188485724835718874534818563860800689574737713895767592257740367357553566119447826427874321731043335001116626435862635449743358370158709017500321248634897473674927972326436642070111200633091577603638690802224851625057351011436935677489276826484939547315934864402807168657205781612664256167084626647438584733540243931728506599774819663703560939448336302578827414596557655029908811163546024129453478213263892126254687950172871691812390467440872886672203386899043285154406757679820810621184200173105564705565362488784915306731035531950149549192360269216294117805951608878218398957124256974264440417126057518227996952221907630106229014374498085764135454886546357009015181152992726112942661922769589538408004821378644389824820713013573768191098211116658234267068385653090857586088991753637005651600366919324091128604249578803598203725820380354005380609441252359617590433542605469603660016482014907677655156270738677519996358790145045660091045886885949777182910084514172571527736986029980535806863580957414243319294980361860548436699523861845870566891705758395393954539122388308159188103205306143260048086158850541685039357869036155343628711200591945547556560856733340974855786143313002460907722515395519986380259609030129092430197697646072276495174521217323312647786018699348798872563656627882438517409528089832414325775126856015714505381488143195700957068192487978317232405554260996467200268837641703000290205760401082448409762796147593680443369510816881000482378187802363912375167253304870009923078858580766750607596235142292614841325683093797848670729968422345442169062462107738551388685028801642885978794533005556671217463625774366346578173173041596500136618470594308538523754435586768990898014439649728661235996661413962750183459095983408848750013913618604495799530556444840040471104194754840761763050814924789977237303761271716779024877559494049232759193164423917162756780602479146561963715310403761798389746188705625816638424465123977403630043034782792777903329450751111993295740791024090441364960306266846101587096434964303830033479538354457961013357345356954515839127860261177062073619583607736814204427462050074852473574614763401912850667544230890950369531062443700345512957037539902845541441939549979068949267117315205771535530094765248634796672927153685238235802051186471983021837941658480273506092633792218365428453288094181998696179523914707042450993169724382736453622546505883475542596504511924925559724697829548329549166259945783622959791747694005214396568389315350361205470407550185016912478144376050702573906592470106703342189426010465823157732894307754300789522740553602277974230031416660106564103065834271512999179267472246714197471213221958799954150715888416206023330625131350171933592239408587464786200629965572377277245122648897331592665626760165052315421977651406617425801049515745602480357176809146753062305376675777964747866213527825318001740801471947761383115146960813747999105904586851759108321426194043065001888789378956924533364795758010680836193900490526065551029116290144313162042637098115762679969338784476058926871919333721436872166243583895139640775548055621007594096996134852755925583566917274495538527087507343142068421526965241277826705664355305019947914266935490814957188481400597691412828461681798041317265709725055025718320859645734063816764453140637217992660088211320515140159725420925253561037971096614642323652419975606216844388158580278033200856263127523589857803729823483177907194280086233321129478055779006722099721596406875900289230773318013267078412025860084432265188854196072062717539613249251384439266328802898617799215553784119340430792520093268104106804968417890053736732339804156684093571312423088283745546188522007240046812140601834052486898857103087782445346023605389505556888156229035889639516959576745028698529934758116283019948766886756756937532618306688769884346111415882214341145124722956265076776966876764614860758541495356504842689781078552695202210820300532083704825480687544597285088390432071494884139659710498855311744242239872889754875904459471396592867527752986575667976458390867368965212409233197069978303070242766220905330930850500620908825135725471448383512232269762033864975292199389020951325142526167422023271630372109879314295912690726046586486853511849895340880321316366680761231978814617413433325130580160980392115190807954969774100505762412117776684153973561776695527967343484131952290189369099047606129842385227703530600325097167447780169163140362653908724979379428350506847588487621992764116561233339930345853984201665325810212140651135650785580673261746431719750771595747477439360063847542887190169523102789757911384523491605501216294040300234827509934156561753356954471248437179415894901576145911526017717134685095785900452532796474315444129086365599041263497176209698388493404025636953049867882745204840287767967178217748167430302339476598983703117236814581126618203292754191792556442639143745586839227581754622376894262735996171995713640545365750373429630879488196005019285093802842292762525727799028906008127475780386922859127317822080177252896350111356984398362254868731558920165838731347407334739951286221272146640899812418974007011527607488684795944343578524234368051764146910594550289294896901851894949508039351884381791767697013445176841976063703930125086457932467307127238497019243925577827063481123711570558713930027771428309854379822067263055117967534684618767018495391007923447394052437955918450953999482635699343509465832721451484150799658804419186230539380616647761971089004442250073964931314817594764712771692564772690246758584556224127345985124857097645355535360030860535320137879243551157887179121702373367346885505739937388876946471927339994287724731575145494531898612538551140596470412395533261674619860724739826689107120161354157554661199436633976321199790166822950119643383328104905535192903900748569717279901252235988675262421887837974743929229304628996328263918400439219360370787741969320259692986572049037605132839239418212947703693266929311181109663795482988961352759206996503036055841952140557682605188101387440562889470347392472547723795337045088233681906824279494151640003011865581069772278779178519907185039837055520825349899704122137177661959328820027188205969727811788388230463422160174687162074450287385220738671590284279153010555687529408215551677662596031711204108834865478029769316770963073690055239977508918183644078958744649634442139472780633044786788054974980829513279960421400568221931702287303585944701263786852391312959585123693354441636473152619257282459208283607056326710665014431604727901747420049209985414813942715764295071350923004831391157676658287700788305613794607939982964577208474142805490949642097396962235310538441941888681759692531307241876397251586118903087378106966653276094266107944747542898797763825610740745870975811593144707280059948781425346672773999452734164796018862307630218260799042705136330032599235391251435245728730264897931487657120176167529736221992318499198576879604230137803720922382073601187566445094952019671052937257189645286886005969200699942490365942651742913404817278768874374341731137730160178382896494761353362349118416535387913405297038097056648928655643183169032512557569821441416051366100291185709146710203203542775046166952241141357980247620810062931627646330666028946865778882419427313165967661464628912763858072560725688616214973814574946966502988454511356536104536921625571238964813702980054408182208706142165094531108305319299443343265775351368790942010489061394978239714798416524670714705716192838380799246625951061610704332482109541956932711588250731618214297768218745571917041162547516006432869669903296619762594744482606269016805663602541371768969310143719103330824870895386809604716042334506356454592654719251018578856324799548708410992767737439977944582267514536802181061384375183439592917076149826020387723015687741994087810970010845810164274150272171010650902073293709799596726433308071865159077683969363540132164379645021702086277551371424645020096161033024891547426974076076150328879457807425454174965840163173519970824547630400053713098708824844193525465493757067606391487190963360040491326724432288346389217243175212839201141031760507074222692094664954918645368489417927725830030239504019967552489345092739039002779362763151093030003473684569098496982217729767182202636962654662670312458227046786277237275751250925941509191026560284707275406593396190204756098829820762091089016809248342055712217211730614183980129219609165893632331612464602419607169366490169163468108236833478287183612537330669884512845748630389072195030291418406671385739315389256352596117980196018842486001779793510823071845429226592512326176288889236696921735832060228375509706247829403370569985337962354436677447072398525926353831949424995461671788694409730900657775113168063271436099167358279970598884904228639423451748616521774507678358621710898929325967210043385611952225727994989524685796847755697234776253243438802282288905555697966992649281691612838361228868634833636359755856901364006584191347099823342830806569303883758893633861458906821302840697897063728265489330511321927637925843769358330379593827618106449223283704606023316695794491259516534778302367882882118685444826614204321283258071855483095252496132478057272740908050998164952626470649755085713085106678868266060650447888238512316834184010523009327884259826066894743163014958726331978073828582008645598779456665451256625807839563756663479792476201781449747599768163746393645948769903498561201226318464712175774837495547071141268261048636650921634820368753827513627837652585817130767709635120949444206274787924220465648481065120815658346247139112804302029104395095219043118309399475472277712675082754308906810727016634640943700771204787169502514084411137829445480267896615525888685495458170330463127497563696198894236709845844615472166980431285453693768243661563311294452126538901318113974215356209842182314414464417505807504868650051815012463135711221736155146264466960738955355186824832674076095522085770594470201539807514261270910810248654951457221055162563433186798971990584148761891722218826462008236463444566763993681376894793466875210746768717004581204955319579386084681677412181756446353783632659837533246332897573127529170667919859527084937640919932095794793085497617517489487287719485974950780851951279845888872476309743331771878601765497331967003385562541383352267948195355866956917024310102144009969613593723065190584735160296378810660493274372416251326762673895321210292502551203959587436213954878240202776215519308959459252579139708312358806079026020230908766817618521003364824963630174703862618717158293910699339232451752965480857656600242719655240917093867067958385012122317528906264062157265904394464363227341909667744587781737586015920669617231386072154424690245144504788816608788330038241763231129464660531747058230349700791792454829924111151879004616147343945165070387361891526290782174607099573118750852134051704346100961367262798669661504362956681805230111987563513592403954325653132530896705603629954987763314611194732094237763759601255892860563426336162088992049371953744371516013153778295468304189781681040384063219730263039362787093207263881529068556066815732096076132328430801586494417207886997932498935248821956070457608193971257221225610144793516342033142833645335510212800228044530609428045186264212198691667827060728475437744449922621792728710444236507008684394165773092657590610706810860274418219118628302906825304893906037138861450931039137892791597787800494225608675009477401479289753830336603775255305925874702264630969537548878666077683834204133240651010411115870217844862515905724906612447667114282618691006406557236052012178039551270761859032918751348922001102227723820362581225569379309125621359688403789985524054157975522061738979729633654517840543732094339353342882331735258034947282266959551564063885716176960546147153343797529372033847431918596314503094436540426992613038531676568087955011025398622406735860529272211772602489256656426026075119288810416732225447392704203992676794490233340761744283847331626405636814439646487327331146328249091918055745071368760277554671766234532617965196049264172573870423000767951766059370189279043452333681721127020979928654856682171470130361539642827892336576177029370198734668140279713488522295688957766449434200166644683240028079846883923265648763012092274572662439391279966748865056764014382720268296024987067441556001508469199012928937245854866844685731640963198396159735828830508274950787539624072364886937602975453462064565131562727556290969248056991068203945950536428878664920110774074907180864773442788269493880338519445542214023044585277603816974862755169017662358570347469299496415701649920325320286413993339111213410522731328196617425471927380018455779272761555683998777098270667810342830466098287504170251777962779206163438450408993493925157387210680295452010748884669075104489274062476463495604554637638316169488049255865224343405069434787709482411614790209112908633753150582384915275052637486199119045947395379347042077738721813723888741723646553258759216124588702511556968591064624541711959926705296664349012681698047872985005438788880240965513143063531648815154831704530985736126928614340715544106005276575342126042424320595954328247968438720420507922012658803258096949749453190743295143958815166941834437018452479810103301677278788068130241451231750236996231263759081031112748610096600614457703728729950243415651502194321423775259072694611572791918264844356215448219120199058850761147009918488473112280584381007779663469447542849988535989383944888113586429983914175725797258724587316143118868588487968416932258854297191455063223017062951177427876621235220494662921217508437260173475300634551892715158354242146629089719350415852342073943498713986467462504637307130670800269201592065993506606042851809656050441596585717153966403945754440382875664382418626330468733775110109289804221149693023583866789524428770436025222850049479094146640398118633885073531223454075680741492430985784019417160590846602680809393226439176311964014320968369723129446546281999595492721691898754030031484015829074791805298638255458467420048434893945177257300878537889513693662007747541428878923199387285813352536572181659169659608999634855027051703425507479815932342607280164318328451124275179607168828957145872761678791056765508610608426958191410151694820466637127213740693412239729743261267719082815779055175727139842396326433706288529923595756203171213443742785619693459154374528232415813862609493841240911182042475895726405935714498453852863445713589522386984227778028173412026977209456894141222386108957986522609017508894865937730909593648162583359401589313743212710417851942467421960996834664822858756804920286605173749348217746843764030744343823626491778087712939534173795500179671531588469361276750690577880401420651019953650139934774226056965092232595468917024657681503834501324003011445319548865041821071638776645686078012043428130792997930493985904641165694414280860827652715840273610028711529055068571482736948725502929931810709436477461092438941768022989611122079722347206891487467113224302770752739394935950215207208781294710136731707710400981169905860576993314095937256471896466654962149540970502443072797682190064684964502682438228136161463505999761275121944352433847739546331105194275714705062225706251057101661044518684566734802292898302470092362420681998823623707159320122979368625871650198738868343163536673373712788058378031307277785381245098246355701897248296101336945304254416850460123830436434175803174772149537332799461593422251308397571154274337989316583369681148264698074645054224643825400467622329694544270349927264765321286527548697512066876656218743576129438498725786736704556148253463084545478465133124803995649727506930629993109234871898709218803645996792241493909707558966705640320476261806021466134533449803694456842289528089576975214563220002661783023763072948618272626241289373670521763223510493273608991856639252109462737956468747309678181132065152033750653031404960671145125088935977541378251885695841864051535038472429709485495862402218379078274391058525628191700243666666970882136658595759212265505880724802134457216936343464942177945499873705593028918121671543125563573125688850205128434143588699642274012619336695556891743842357740719785603035023179478920978427950667076887601784526759730226231555460401729222399464134761110823650488511045763761390593214342460245672038119081257056302694327303822767199151685429777160844984237569874492311830814229737597446684899164501853462885919754325841979907679749798329710597681939134957075813800349223534776985336502170341800801443028942317961629315865732379756633594019346066075734895230241494799670566993044981292285835089500525843648384839231797710737788279873090777100146863621274868817571922682886447705582094020830306990648082652371478196617674246666317728438141213223072375173759410117618150781851513084183392230097442853029110781350275317097208056510400970606506824302323574782048574715818738707366029463215093181153433519918575953000386600369053656492697311570185744551602070761881986456489696877655615132621815777872380581637751821187941726794425736221518058044288564999447056449093293855014874016822985965420279964151487089183914371742835355843144113014126008696764638674770273777884344876339555246047978914936737072853292022704614423711038741472481913232175975105150977874846169474272013646826524350031822866866281397286790434032799776767360647051753846738688608327111856134042129948531734424661339599070764629498169751362379405509280731554942673164421218926777642070083879449943433574965510344933283356173648707002558088831783222441002442203941197703187485141092676077678486461451394564865243277630677533327909880266663215826399901352011337962160543695863192977955838374987251124608423165306662745851503598490016801280347308827117496555248264363452323481120781488645950294780283743097612479799636604567719367902093235768885217711954035469875957117245223716273218586671827456545332180730420427198891977042105478141537991775399060703923263785439670540404941480723885934901301731622469375444055340012544834412089440290246589053531628343780129646804458320107700571200101461658060051178044165272351579429001837329936438530419379696103912495475627933059997332557889934943940554890045847604684081645266859449007465430006213547427124883289931877654230759100878119767250644800950483793093386086528889319467954036287417307752506063670071701580089367994497665866575530493574204569766247864492205083156659638747821434237045038478138382914048409269174257146890220067837226282450635420028088371905975903352263271590647180555950003512860494653207160195049439032493529946247694780450611165076788666251083780013580627196430143096860212547943037719244268408120256838090635959907155582842281950974352228247550918324037513064444828313530585180295848918783324783909458502463599672697007046677936921442529551778556279186695339813568130973561020878821691693938383959066023445667324085933954109440587036170461810608030149264627325626401697039537844459617048746291005820229646121685297530486026128801964538898613294314035275152395210001759249092337209852753182444548339443433339185842849908592550524569843884856896380369114342567109367814025350281529673484056328996786620533348487429512162562653015083151291223852797194457200116752411273818792034659481272851079526431513171948163922082039832655420536172135009184558081438018164801913903941852781081893466077247170799188526852032783087044737563595748953217465366927865348068358793581863258652848602390650330039769040034134476571024358262059856633232538940354964729432051809792262623967726004777567670000247881106382619106235349392733174118339657101048579116484282418317221070399262064193926067426832769732254844504620395534711339531700079988732359863051045591185633708494870886305119940509351448277826467304180256596878635301033226764465352954693882556502071047162814177200371105345791996876696103583889258428923621851616998749467028821026632732489368672596857750935281282673991593537548568801976895575322192218492487937116030803194836756633339223841903738453198852032179851537614139615290691117129772833276489503205590860927697533780656532673726946700875684923016256044563961649133501708741865665076743617253371593090422966373982396233570487639219044930243585752060538148831168600976050739003526330411958780775380348379658011737988456030410699556190823162518728071711392960908985432296581600235835760992216940910298099933022076248373513615727643822660687291375728445953209681565478429802363914648535448735867488021028718384253255089036199848038369208357257823360272527280809319535508332453650443449634523403388489178937986591080253248608177003422615706143249734268782409265934999915438534183171170261407625923871373685572897597824720020906604766902237407809520729148834653339071947966407765522602999426795320413784145022601993478541619921415828890476238065796133421895837305527549113229431901045470921581690462043791566576768075941473056528298423586138057354872600350231657690580417613863891517268047289706973506366429639599174836247449769362625027478163764322139671526952819950158081482452695498089391702756292384112660445208201911951713003296279817511210583107098651991873603914309991701940573520293959499583524635643783413082381209717886509761583649230537850728819465600443874857335303169049602249941441418515973724429023240048983490046967118339901915562527965717237804341977393627812963136751480678261260157500189457675470130435879402118726248782152091290318046998976556757527006166475079068161461400690305561394467700745935339212055643898651794348983466919640168569541437639394809917259378292075442176011330013098453010911005380756191662752871759367633624634628796010509920581498347970984385080109951478533902264983723538650018901684358591998785046731579104972572973478218566811630281569504262768195371698867789736507062728259588177264439973151621415172460710781584898754814762314657118826887393943137309357792131331045499957834507949987688911726597407200627756738444408858866880555217682030299695488487091852209367725510781432760044598512099347924905745604116219708611671941117423301670554308433960925961179337075034305407938134057531093374779649678322421537750028765904625716237366624650622460894393760093991945423348093362738115693026748355478000462200245137606565832696566471109464365553186191332579749894079957414314504393094980141608128740699191271724762745064000441670182521199006569307054618208669667272652022872349637249473736509380531906638770292039158046251861286194003923752878040559657987860567009913929073289599544823563117939337970650042178728634486052635970347184653425995166616804414090805558776911131158856554696591287045809496607489362819155124819189443475979069374703038865631074784855728547993774148074620116151717976434901853742608551455763730996811027195472906236848101774578909901756925721145307157087810587004103867688356825288343866382221851419401333385958404520683909933585622804821041458755383611876499832275656600522444088690124710204494145300078840087230544867386301198629583955533393456013189268604287050166051114487397061351907191839027964329758186141383717139594351263638565434618162562871089006773878541485205213127386982497696475469578547070727499125027756005440423131858100159574058371683786860690776367281693177561407223125884514653096152284436622540445264854765362269351028942344251512011832334182374398949527242829009790771853015011114526264272224085478268755614407875086624793131843713391250021756912880864632190601212810921477109756645343720354975459483125942755823909144149836560614810786753084101834439518287630063423341511996141693003057357349067072943861988065440874579763320847491907603751905048856151228259754170007094414712138240242616538998073648544201881038013441473227945994709178049252170307911175313192435627639670413782233336417381255006822380504095773728047148842669069145409152155187947588026733026446185484483291871347666796791970066707094501732399192130416492813224389154545902734581317796476264504204692666761342532748660944680678737681393745532605302856070474155582483589533665077642756203113573777864967531518876107467081750369932919671254981734320586051584936289358335199548850102358965832942216313244213934383708113814820237517028980633678603525094659616052974980845326583622969469642278733664852732552156880877075565232496870116898699574643968095205893880177793735458148437362036825537072321845683085343615301793006414326111041943094542290145184923451824905906725253446319359530520421869300160242312331157938686460207852971733536791696671785271566243389751672245523538039674014672186239329727292089970163091342558208828599045595063056758164562062351916346692826225336081668411908760995205016634825827251565250205697746892614502077589779619817556687134249679571777378466014940091939770382166755608228819223712327250058972131899418981326246750973488919696749548772000183834355156701581763712828794582749724720301176913874278265527046194119994314751054759524116882763388591391938710096714010122507666497897452094259787037133437666572660442395158070710945949491361106449111389423837772543599058389352961494194985130658253332347242378090541034744419406756064392258617513287373511946591935428017570878174251886821551536116988288937427304886536690202532578166506802249336526544793659625224750057524122095782991738004186075919506286514643056564144656403266413634049262214814296043983313526690407617850741856888026210708229276538876362237541565162407961710816360379776269171232321852902889162255591996118889484532249537167258253468511766300285938201487795765826360400032419198067487335720200993797214199020788412749157021282757577859906092734666108767977382839966792410683556986039045550485320407083922149484596542040550309272840784383417985172398792030664673036457123020257653294383392550641617182406497031636970457634239486810376208727487217567732766555421925351141231507864527402799626736719384108321431923538419964374472679670386154915841672448595741756777067181100655167386389680321791000851000381111721686895710186121472258799956711635105496860850351291314891108354839530228103645487302400931876949633276018306102354642729903438078269290895832128548384565221278001709555982236422569724955516467289876586943728666924472523051312593873906528432582644038557272107653362567916602440372986630442007993891571329414745096239100793254744312114241550307626333936083551461942866640511375084103981041214322036896707009571587037969231415360286725045363586801369295053837606192897327449059340420225779587015180725195486089122455064106133699095629616960002971863769926451592624724927329302957480910471522074130871851527133075056611333307086440224869769482799047309306287052293295007317144759518697449101600574177957175884593387379619618558203834491592900000207559763291052817443194492809582017825168741109688167410593262119853410250402752898651346360540285200554092914180892752844949191484502230595085703429366246623541137065696113402947651303869049421275190782112796032431083664811443779171068919143481093567811255880006558217000888044158555860720596223991505935522669449700573836528397197972340279694572461782569051965947325938477803109559090391305188532746325155985785500817834547578316852070989839724864960853661022099718559700615933707025311855043124067922510709604309710673969910537472736651296536799134306623010138786843933784893304384879517714455764803065826537072974727841129076139254380135280717913561245799575400618938267802063150626825136288764423692288581623459757832996261270296210834393155869476006624558390234146704014299161284301661117803280231024546691334455604962160347778945883909219450181297937111362438308361045612192157219738076427936907330020226966696683700666272087730902947942766211556638516296339413107585365257773830290939500146325616925572215465880677592206390846621814255022934727069894263187982967477835230303986085936121055436373601873034136779925872968586889330370537578263104957980263077878550942977489899907888532542099446303848983604629258612209142407858021635608023289251874558921859290830147860683276522806279538834845340922477122168650888176488471269047933618926741717521154045608190906730359305321570755159120970740859449394145739671280112777096640727978104867175243733592714555693871401168042234433644535382870416364967172754919262299826226817500044149459582062826883162083176539301826216532214374396065862824827315207528336308491321655816823567663690093066142133261231789104710780279177715437905342218274149083228776345726059596827718607648085082070352520411209815902380973680733877917011417339379631359132211986333417543565307281139152849037499103116560438081181267321344300694117849569561846959415411386834621373154861319557716730036127195415682985698978451714904876930326421164090542264130515313036594576094250801704911774961160782196615324746858340680514573422786525325612262084210105191992202404681248993491749474726406389348598045723164244929552379000170282509732698850724932805839622434511471647198695857757264587726623341341880080055410218597817602395116019129236901894712274575408797785846576760592068633563590434873494510575609374220633742342637198073834178200100757918560529677570112726357621021207966649335822239370097440463919172135957066723498956995875312486312020055821821422914331892374847568657988913098961434961599085600862235122045051072216253873382538355140129685079329089875814546769827556947641455656514341870831741673438284633087966886492173401553512854939188269845846123618587409772590422250808244858123011976150503896903557754612054272382440151599202648469625637060350766578440082652878524804693950852600919781767858233057485606445714515461682611485119807706306793510974003878811876979273169253808216816256824603320706622133729962696396716608966878187924694021812594545820180707965883813440833368326024137278186046668708248248354798498647912281599421262636496774272161662115492838655877194009218822034966349744068731083863690238857914512936845970442158875669786736636906402192864652433619790407749679411733747266190482394911757823846672295343088534639228243174358360137157745113532954175512443626003218703835679508315742749669763036430127678032226985866231195108038282994351257898927996971095494357974504191547801352976347689425922536643597348515753415661397107088723348604092775860109277491295166406194856325254552626064281333885655520222176809014635371141696411418561531053346221168979027388370309923225803555450907163467980140024725929965450041669591881817929351197928986716930721170754236374623676460917594708344099921789577435568034271859937271196317002229044923023491284245945764194080326773669589601799503041244925087442327471087137670748465566563789591529307467643237629732262800243478493077390995244399762221844796679649691971059121801886463905286648224598419358137540700504337802752428496659894818056249992818606105432475788498882053783431490565504156807470572339585508691924350616911900244485354771687494048556714852268595313573416634718837606660262302302346145722979001584144041812232642836050037119627440372679193225127658774003849352107329287679822424112608264909040418248228478491806124755965003265302499803500259643818401072337455235688891171669047233231125264570698034186616754626034041727332229883293471233207628083609563486062147283292147016673161706177647463144500114307769276583450630648552258936994904749634288800862169196271583151436943379841854315742915496836577133556731980953486575140318338865228306893443170780452224483697397196924818607986827688301046752168122498142195684037345231956944834702780153045375223960199179432931182766484037451130223533233150994125194760289026715872068689776406026355835906278889116107450403764897426855367805700952695814170434067205803513119053695062736307039869542076035947027958039080364629107839434516406032323801822016816977179942246922120722924629080152635686910735628635220659850344866176375477959982776543763834434260795044904851807197967521849764243486234151243681178604680929356547428939582788252197673445210436619521463808906051441383401593026928865282364259835520979018819208818864082054462769822468050717750479284167425057309945030639516766831054111447483645820659756096799071278784578248258316729916196445109876273055801004632751596291509558389993267987907884322064142470451276819635338887295357901340266676122803622703777811371475028396349558014897149988620298187819123484564750527004725910154041094672238547881208592179453515541357155920597115213648354058737633694065118935160981848560767134517188849239011718026335089595606928417624937591875416660782629373837392056419130371793888869886830017699288873869381613768313666453558048093784874876615222726181381767152432763988104068767467093059410526297966152579497711013667973679546616140727758520244874131285129958379195086817102268603788428472139716057559684010875675044876813428696891026024814785472964850740185180259432107529943558157143842100353254130411373146774868755798609862713294378525469424360041331783344922458997197143861032088632201560280772967819693532008572511491544232639689270995963292564130769469039069909768868702352646545919730168588382201775512509591399830946972239331438112608620636862393194760952633096199316775228239635633029362783501999623843682360781984000546412309260257807316311447455268243837053646334642394749092624567716919686069264893104680203109594912916918103980195940518495165678069844939727578046388198224140630440772291915871780589926953572896143429821693626220347955243966489060636623623309769737761586993170308026277732632892986377999789282924799024317322867706309271210907361159627460612893256156656978696542924862519043143623148012259086368840797109582471077193388622129138954370986396054899850747988224953219838238381541465409077497197520839713375610405696285111756332231699103648640418663922462153538207669915428561128619251797091958479424226800634615578185350685784041734923574093971959392255445723998454369822615442973131130977611185004127638206883732557937916729186642222113961642848502529355579258514477232638886610149669079899333992455200342451023868278479047463498519796121560880264117291796884747254442873184097633238713260992233226568973872642432552828094452373165986627568299324914809892226341961429795450672965654542952496521315740195032205985475687676041104896237464633670452033113871329178362154536395664069506192463701864987975156975099314934778914620707181095549355663938665069211556989598599107642103494367296903235356849959459321937804394332223109054088774573277446823256324820519876570376727067345831200471107173228953925377267063714649611387756012729805216654822362235747617245457218125686610690735854936538221803110495745777401376280091553913555813750250235654472959309575280879566331744206562959115174704270105540076214216755690424278514650814250142827649135501583612822669654052786016951296195378307644725077159422315884456162623065683922216809805028941698156443123400416222909773349235662210961237516678783305901779972941518878907347905649255337175964349558512870230349426026796576006905903605786444839136704216660878916952791983489692605422644122168154704281136213015801459526650449662213376106982021402424509072667707341708519864686141186792396372115678425966382554975243281717928801516486157441222525670530809549337886685928126813490739268296201196281163274241386925200883609171262826746841815340829308859369263156658854895173460790033117674193949152884888941622203601143326550281952083752785026038667145075144621341968663493447201348455307692127198438173300356796979751412900694620060755930926894977274840522695042287001075220027962791801791029108708612426040907155473017131232021731777411522119193941961174275767427983246466943775784864266758985289917291020111561840728610209315720837222971265106341202620408235569643484796939558623070149533763630377967087157255850295018433445886845678989646741138316704285519041850756145642270177740300770310524042147972448069034450629535655545361888181208555782560767855626671921751559294778292740616019994977159743626388285631354407850440767758763451110092243618331680058256339342242968616599854460726953766831626600307236175030900433693045164083290259910439935314375288894675652515369922763448001085066194830406827601830789900301019277204176279727782323984754026177232495998623414777915128603193580036395198468151251466005702687188879929975424446559769410004213903263998757314446246374191025413450139395936018777520812699893559556685866291893322718237359280274262823473057055140250611722237837421480885994188434365286120866939497432105927826425003288724365903671591102677950567341918737396549695547937097749358788251779652827262804107918269612941154812266165250540973555795061892247936207334251296782391043863901016144093050296058722821746943337544152013514725772670494834089733665956519725866418009869389380606218231315627581939677355578861187336412082828038965568770862010161820115174957715066179826499180895827462147744632527851299333537078984650863102095704326600147479574809923655120069562737920148034107368507942403857920628358099903226771274614349163471713134656462399874272778138427656979908735528083036956336847734971282068003183821754253456383627237624126934505739905698824486968048055133683475296599383470283852570788367167763593998318235078232908541668468998168875442001121218689649232908063046086272761287211740274820054502038188013637590432241027590764809682444820754072659250605138743822931754004210946259514119769606159742497687788289879545226855871302748336898651832930816941895572900130591277371807141464382773917864013114034518685149043387398387764711709547919594701248423485523763258155495625241001207422415813929229292630461293250667099292916323961644633632855380358472990074728804866169802518859192046936064960797316619506029489568307274852836124937592122736791700749616496361089360020962575388880571101197736946115097260423404494377843504645387541473247166644955009035852093602689744269856898229650759006747536922107169401536166669034463402381212408036739534405860808250474707989654192818777543307640616354968664281061508711412522582980456585456714902518025139927678413226864213220166247534349030126544296690475267155845366967067621296541499733202058688520826471365718417808216554839622402166188381084077960650921472429582339286614712432817410914776201233023796526015863178012193825776591842014279837875072761803725046471855059106148105362178557520935575913916473657670486746484757274645945554054622487364837401201143451205541131500846461041060440026757750793790457721235266092340334997155969296575977203254450643073787652649544024877498463590671833952381962452981587395664587602044690207089933907914122681058721794754086837966699284362451096855641364012892111564161893611786218498520111532202098302128325860346088123501727599195829709288349691053146262163439576428347807522650517368678251967059808949542881093279374267928746867088424538783236129395704682015334368645270519297098308850401236747264112838838492023699366955842027101436733810280132010141684012457354805118288133721828185522371952529359181810734718643632222688932600983445065872270557244016249089645979248647747103169184604609470432987059361293326975750049868677031921100799782124020135322489186487338150185703922972241653168511231351445893995131852441707645396293923673349458592558599863319581483993561134146053346206682867205510974497074636371571532207542657968549477466955434145422442051954076504187565657737248788396407321405814648421479883743704668140232365410453486436312860215418842648245813116583520287075239966364378203328094625999678656062468208507760891108203909121935395217382660522724600803474792773973794497665961479564255195431411980505126660690906921435113539590989194784932642565027073858877911520119816504306091452293334748021576415490654373880000308874758296551971634651242864938586619245442996984530276228696782779670164286690823997009777492418710639824101327953455009974837949690815641445316759173692657223721773819600419131760855599834321874182042188977547067254938530255795098667329171030415353900824467361097913064802226586285345962235732752542387300770538344304926966701269262267213462505769725424629121287190142409378009019724012268942330531752818065952421030368029023547810783569830527169869366198595395965840404339558929371900233981678775579691687060211732935657495956644511819402104286203728473431413248702809344066004955440280507891049445854947699628572586202376216093138058983093456172194972845858164918997092213916361084318593063482961305995104556652562428763658816583675500610307872574605421103629501626245775004446874163115370146592818668487580583221136973353448954409597605599446911879264894567840952548411078407647663619720393225265331876211594266187217100588547414488436052836288104241617523621013174396292151622879225827056347279166281240426314060358169869595320577389534444442687962725460198743946165211000814440523358219614754389649460296190367679988583845771537987469468166553688610778147191777938662430612962549852460736413915294246834503680994070982836013027947503944880068109280288609215406516889821794362664275673365857980030842508737096175707450268583739308038994763980791418296302628721859549567515115018669633613679188210537311677549702687923828700432803852366678869214937482766861406763351215058022354064899508093607801080407167916830061844590170797414155932120537021194581821843362802339041587099719716160404942323454525839669847367723109421788054566431943255295893200861118559427617734793406964931284577283479856368667466723800833850027710489965499225188337521420830357485446600160473990490709190845516419518543275565047659036012557623647462313951415847268029589047054689301091097786458192962584997606234948455010049943661362667829056069253274227919266733124984428819564978926569563567164438200927851049708383166057054425059329775170280726354639784229679774887379457343804988242617200703796620769757232636159445090638293101052103788785130838614206963554082039859450905011509679931515897235998165603907317552109162191048310617584629638213185452941880827107620241119290736318358855334866602444863938124745089133258494602379518396061850844781034059503287576637923583055038229904112230886375953767385664119368693940028434007372043184922780081998341943284800594319159088477877811786555800171543913614741067526453070112446326846377605831697834004334702037830543448966179150314443980093995665906015088949233701057765088223606077346909063002482540979900495835791185218512036745944546642548602217013507980278064037639889721350002933503424064264608970610261341147598465017365196835025031211556346746136379806038922395432953484788838319121398212322524429505956309574372591776263578518716999302545427335636495635226177513598460896349165181976143947460001110884377875946363036503545861957141171837818584444200130681233054775579050914097501819004384376069828240440067066270505589104152388236068163471526622168759947317222338661439307454239653786557186211004651701454971450075508900680244007561601489820788579005309459684297266467386086707581473273393348467151959798504138734910530358816341044640016217383423869869161672997953622825104276301332434973083903907264251486454499253739300062411685532712666928419382550292814455047298213955113427617711823719189680378791468706278646681381710980048879611078836752894553446104501828236500455820909854406105237398144994017089346463352732161637467887688254142676676375008347810868762327120433231283796096969807298879854409593914246943786556378422618753048139365031039947779451954598187994289434608875442583983384447907842211031380397366511058679055488513399465675440653322530235865776547161828219676835948912686030841628769060145928065920262881910974879871374627528617432094209592410930891676441600265050909170103587377545756870983334796366351420725102924473809269254121841013153803979461546628128943042638893762896315437583240728834734913163298250865363339266340671834074171243622242230054763655401997343684008683303365541781338813986357484024367150474191528508564064610820986915464480923487609692762781249807199974340790409422304442561080573410782582933838833891996452955391151639596751653006473786956828491216616307306379159982214791840265955363635854816939104040090177848969587502898652187785787321862877676711366620350515188738260028733167783819017899570245823062210075487014535986663013350414272426689769162625773047361792345839287040918716569788398121613815439870298302033350556762005318090817224506111828583788961273287136203889130730342146736529692194974258329297863887674390274837507939488753822423325233326099699350975263028408462010101072686857270802860068328009047903551858578049347325025704151683539888560941453658031727471227770582791986782350020149855027194951092452784161196027776252241967365140653727904832833716698191594296863098099117522551146300683575969131996959210498305238496860525962675684048473987450103416895770079448675384514725302948324821399029683164014481909000244126800144563123395531315257331758192099840007743638470863410277926980056733782026613895368961452635467638514031730293827761237479118005467796903195720459945787489993717852141045921531729787593063811227921335863594444696875956341950355320440710696174990400769884373115314002778148607366802707592528786778791952356506947190827650417601753931798965588226177830811187844580961935138444618524409393377096401011581950402785410894806953059679994093459293746893318814969931640617940668944599294151143910414631175235118018523366080969719855564829672119625255684204755471814860405365715565191027592416714956572044449077088739810398599438757186079811323339089434234338410272480237811549969824663929226722714933738305902881720257349159806480617379754933864526313086861448060252301867053346452526299901673106336802969479596076695366931639830095084706033619419496063583145336260907433734165813850121945002187118441283515460646200529039381496830056230183656615743739806754708713736285299942047796891141224163968611960433982317039962743376126198561665417377215723219054259636232248849542575372356560480537881518830452565291592684022208075354212923549297439911175336228898730086667345631464926850904100714432662739070107259096404070177583243060671087191930223160672469342742519994290371179636320224009532787177013450780611452139401055555486568130666222242235224020344127452745130619815390224199690235295352709705906304368257330936849300525051845531127491232602983817142417119997312430365126061496494557712480685813145587835353508902597017984222105896127154482076676784402460572845978873649130070889304175257227975558392422819252819524081014698847365159266904075395387017303849989537078355999214266218639442856221897665366237372895671962064145499338389721333110231234439484037227209837050254563632581944688443140344491917109449413402946133550839965460607434226219569853669014762201265008974928533203240243006489003968758039713203309914908906467703660830798410029323892053017664900236310684885700392742358120276970206517615214723960227010467853948976748393261303071008091531952276094667992304705218846430558872561007274785124299694110263959117720080812672118112919665835297775082448929673356124157202293770822997021248010845563455912960355729273345132206923762129854229027794078575529372746015374982005499508812518136592374228775155083722135999966253319834304401307741485456284952899544530498090169748962612214217928239293038748820716963540654440547368587933480923762550343480238228024837835499137788936517648153895017230804085644307037164742110715109983539444917830999709163453900844713242075659368584481924748938670478785644525389046169761763064416633272911770756826031698908557034221449783791492591594462111530529255346217849108326687953029438872011343726879727521034359527439013853202797697476402110962159404177257539596674046815592040492254517928151733854121838454886346587345272835440749075029685347117970040770036081111145269313987957002785554282366187258034145149312083671478297284953922513309365940954062496313601755752753355888246192713007424922113421523410880301589025867365829335067070608129947036417754746674655765081385815368838782036208938349899458657900373995398146515476765726044859338835656962055645827427251357917089787284963199402787959997661671597881147613517976803392033882564235193911010784213619017733278638526165322876036312446554594158460852543471359482103156119286788727223613785235244081316470557373071258266019442940014394507817685538704446376936614344346851072307503834332958835056966177332112608273211378655297881985664787102106052764625018664533642291531965131815426222153713202522487426260205533532252818712558300741653510588752517376456502945944903971664770390326717059619339085429213954012845777875442514314076889415275589124845515930336989372308823118989332027179208787279697026119143998584564818075025319628890947754016334412916345355606262875525480397079400936232611091335885305669395345067633600017802197291007694176700416690742317479581782806115833519137410634926738094459810591451717172009043618575234253405166398039758733590076970639591155308978040936626359735880682420695787169928967793640594487290248214000388305165765793868865983705048638718032666843576496860031832349157294346793206289679765309782706919435582512842223010849335328746187770704696572617903145271339688207912208419799725353907487770682012018379593862142959206259901442874417399027670482623293747896762372947150743856250719142822890672771619101999361452121142929299209665049604243763318020351535939531444526495416148839666972867984368533813205156287414456577469843087039699068157231501629319753315642301182656847068862201506413838922380255578894756008919808847663855663352053802928475702539336066262873469739084227642210663101377163086007865760299268252709453291635907641422227242328884981961595241033892343245085031584816805797740889597516761994501993642141981358197947474981943328059779033897189106793244540412598065973352207303260705643528802957645795509653805887845061916342722527519745073916467615986142328050689492478702093693817828683851602172986451903249448762905604048615327796329528187810764656517684778374086989878986362734475559615132591259445591686961203909509603935409040144716027785377741919271928328276557530858272568750399368386657543071230921215959982067686164275860827584275644967227148312406091191164511448006049662774804512289461778364141358842744832610068566503745205459707286582280190412332401488892864185494598176644219192880475003326203970280646898840658216484532266291195126389727050534288764639980644728628229147911236655043972564966908296559373135711779102267626306017138035654562765716606479332055336682839930261854315107541532650898349126088435692728586821709020101777795894623552612862712972452823349835170190459291447852717349155295487055355638025793699390200790487795596842023003609939724512342382688852620677042621639512115686198599745071794022217910604045638776213407368658336598151114007734323740359277202228581580882366605384102582928702520094419625855101062291223113316415328435763080539265024097656306087628026197245725119434517343755601333406773709457594162993202859690051185192471092354203841263956360104823695900948359267155589937781404460246922891875184763907148531618030129490488870703292968638401300962120665070995931455303260309101357288748466195838355198660403015789215597373681191190207037068410089704491196445670518647683579747014932520242116833172524396550194589472148204768941018655953251637534135881049515621048825189944635078112431756601628139087839456147280437886645360192598862454458181672696789355234827636044600578860337409864759191937054480728968557383268506074704231070504198687208018723575809477614648248829518026995949176042374392126238930180144636905527139416337874398511499277658875275349245362836344886058619814874947611639930409624616269009940741498567467796902215298918187909444690191437257871229891830933899193486856804520134304125919398569178376123708901814751914912084339032670590046194996798531991129986318084330723967034172814701523724072967936331121398185139639674728882935908252884953898948974579725273788852763870149679466081608557973820398635173129105362054625701114625089087163131802484268542061979374533065028350964768542825663744154368037653694693640129150489811329448299333468405624253260324124845906472829457099803911868180878045275022070454047052657182542594739737759584966057453920615686893229343706317074829913291890835308432533331662659476910574381928040055616773360785734916096927187855666076806345349343927789102081085801989730140723014752513121040606064466797003707888535004950394484420606347608880349949238755269375039610469861793431840882433702070050167590624641811193272781049735068042811750374323782812387812249380609069146553302934643752040368479541131056275550067831964675622142038113523835313459896020321281261817277317574513777406204546974590453552988548173672365463451775581623272910692077970930547592651795889377605499221287983070940990670018521988015847771916595384871817657851622669883053895271365681037511021338674151902469078400949682193785611644525648573425526750075203236507931480182103643110730639098469334318649988446413959274928620451175648615520113517347656706086186395127267183307670600425220289119511743156896845800679421170372999755258262821897094161636665228758000363492604665992937511368312135910415592853789525120786717530337860003464972637324965481835377047414487831834348782916837770914887328666402861523029768044360444834220489185039181915188387833320735204153686427548740246292966991712445588631552221022333994582792748178287032445134765302018390412297024671785327647972867221157456956460938464480667696651818655632492219700614518976382133887395207113503917065232837636792295037423783645545498035541752982055264174977615011786752882469059013985528297868008704151625784575562600210131737348955556687193652051454689883982179082734506506836995553457651371469239893420333012830188900811201629705522509887225133616784407861513877087658348581341323557751347086847319623171947102385687814536048141118291153825809562701694390815410758306762514051023644241819857612926627546160087280712172770542471504043733737412732646712675206234490996930172587977504378457827711906624899069132967565513792749298215935274669221371221087999774012788029840094012867938230613204123267705722882965965777261490524318922664854874739706155808428440046430479101046665703565156962534247656015052998517783579216981656455804646451060067412457717836970566108973697003323522078045453654701010001667938437014914592614656369983890493708712500975701239910559121652610976647872239919855637790513777248230618187263455529462058046891540417932499779775654235552249877971549960992324784823676877247501026146294815446266254217969763722278689554912244328698043232817555227138182711096039541712669101337701706999241389945615491003817108359280573063939846017470608374757079267580982737260182324301035307511695192121932413247090994390112396932635666268957582177855586217982990442336327388904498274785362255138510056292065321331800102872815652968048115411838085182219607018825232676835689115976849863805205569213505617997021102580306446223960028057998277204294631388955742705896440669148359098267200066756052285161833516246024151493735037993007850028332826806347318467583556088424945290009822850351749733835932628808197024443705124529266505041854436993826656653879112772930359827566266222517703146116119317700105483481787058620811320811952894772057899708987368253729333037357903702358650028792794907227191640342443566832238236073485647499746370722477661565204205487628934116484032781068193109609861230176445986700387069429596651290625045406733007515207268393931966685941389161180660789651864341766356653124602241474640740734609343030816685456430732748158964662293077207802068941751036317003421925962948856171446092859685460323403941194280244327573763746452976756250086730871440901306132578761302538943098643738164339064451463524890050852566209737085812708407911539932436203115914317587382530471202223891718811840951489860252539352444361743488571338319017187338285905390207017625537747303820713705625414908882461876568062709739555269988698615747761906429069563213041509045831018131346572279184762216468077437949330395922780705576615278964873801478688140756732093027771503015742278762912650926148705226273095260559515469111088581309212045149841410577291979562438525687978233131526095642628746404319338286100160150386833772755298351252114568907147392849428201928766379363712901269167572753055185310183909905084318818991208919161374229551887245216253568671012392021390415940892051897322458494746905388584333682628569779120699850741707138104488017188106465395345766197831307284471070177643932100491577319352207594928236319625361381871933615060954481101698722155138830328803324762218989672263753928450365677993050047713988210179901752128016235908995651122052515871055237189125204660401333079586438193679416254303181953251876205983246285104239320815403895399426647046858281895645045033963458393467746825673078423203297636548548028190362021195952818153484207909233718470940094662679132346524459924586856931366576290881794624200452877368748652597443074334324974716664656597940059233664787848593991809596402524920402674571432976722831850562783340207153494343768337567929497495377329785739252193891894684604211909388003620023962072574100646245621161634540372229328579543860633610809170742239861627708026150748956588203933167487376353948991160906831646827697118637390703381431169721010467867435300578543124369563527493480778010802322452728648388841822296218103034537476231465645963219323456245225552436212825635081719996521732473708903509726152974251555788979471631140406720514800322494853469276565901574228902030225633621239712753246013053705993196381364962495465100011273576239127577627259977677238531094927792237403828087980244461885601751143070129402207857595769058059425405139528037937890989090140406637296565529173029246908336311043034770105343341914299230787125555711100005899909486920012500031132900960290235121257126489531462957049681818564428067160241594082214748894104977212309898613477782106504980486652219837004211461239285108164237562649788960815598315809314850820222154488803800512895849293583970551230540299247761043784510435704405268238421433264169964760786527254195723847398019877211325911003888196979156870434820945741128486079565863998083080379173015336177764123852775988338260209162225623686222791663164145236535732860472810729653999311129042926899613080229535848548488854916286901787043737866578593350176430981957100077945176572863731391405787445228853760463889701571594016468718706385060153411288258056965004585333821037528188483415493327232124376298872728054691530272743548009635342368231364270053689168546689524354220225580104659964748749860505533986604521652400978621696207010878355503736499124631840291467241041042120297688032320526701853690215972453043348190462108849950882418029949616331998450359585821430041423731002424197816091644868773322565656407678505251315343728076781523226123153533233881763925396463575779053508227427265681427238097156085341455350066108070465126445504677786946889666496662157634212894070592607183483806570929212087411531486884116465928028204210063603320451377708369856888202549773768890344453598534333814337265836228886563950445590718161877701584936377313095303695359296913076363029852551213962300600555588677632750301103364884105130505638563251704939248548124656780821385384953858673083813051538464888101332711431251626926003034957616202738646371147871012970008730612379774123247320253478250044717418847959324010949757826588697798284164983600936364462383788405194145606476484932127129621448227192787842021740875101988913688590629646167194026275331105346524883705346695751436824505635664704893738175076582905102819066718623409572122736130841776273024477291644045506385343562214223167134949219068035972637236698560178304975695448832445588396362442033807815631566077962995507561728088433817833838748091410102738786212578389200453588046033046242786670552467672376994094209375833126733690406236552936495615653625491458176523444171423787411727684549466267204537826506555565665615478796837541185706914345558560863823600543911146686414392289244486078944436313363541738900974228091425200202450726725118259118265258923169603283878605508042232022108742612020066272533563281636346480712288948928838656805320687921383298754598214487865578012386698243562585554299005915784943936802586086364214931314168432922658451744103896241986482806257108009512557974181775073318894010173197886032998247723197851462401268332769246858401342606940901699517620772082166598296946713749876273018353898174154240705301500186646263132822995435349547705618044704922991652211479737704783219204128333763193285185591425931208733557985909533023095884795971841417456510887025306021445694419945224387689180015287308409834945043542397185832221295928976496103969564814866890795277243695816684539190854796077733908256131912391346440171472096052389921391583545740947687454331011946753619999707566352229741760680982348759615622047904153124222158411234633936217814185010566025648705732499658675400976342065739734144392292963644420423259299209031094304453936201545744955484396003123941922800725227831001482913269070405549625107588095370399116029279333474704269092114843840637788253786553418983012253481301411799513115404471571393739491304501836427462662062084983405039155006295287298661763593678399015954084506340779369491302278506735018697487719440383548265386295429701962538663597387139764400878378435045315428560442219468826787736580134388569452809529151852710975763704079872041729321100693251651052753443835488045096043963077738672878847942358842978803374878421064040601670532613092687773109436312675807252226669549188843399928212959595260641752202298826060213156739657613391830307521205487667284470980356555293242921751084717984891095277332169473612023571002122854334903342216087698366141094862510619903112492123636504372402910568771827038520913783481224263156011547170121487261072425679236313257835987200090929265470351484436274444229116453915377002767163198296717218645998233485081939052998789610577225900806888450872677174982106505163795823286587729332552857849210268204617692490419513822307005975178193435912678539504882986792249813848328878656829648041164676805381650787927532039108486554777014503473080580555892380048319425004606831269806317912822610292504149142624787324530882890681190578633247749876146965875037007529846320860780375327782565728958421409846957347346258916844975546482003089179469688639510739579588333465171625292388184607545906214812837758488150809717467589073716172432837031677638230568589562218511065042486575583388315853096655468476496845119922641373859507716911099318036589673701172384468529165966127779599310402746970865577616025844793592092179376537763816142742713218958829250744855318678127260823960934793302770433054778626962730364427575611911178150963850559899243758124694496868285859407451151474369623661136859303892340577067076915636218623500638988866290222379909605327419355751438168960904957312320277138070698290868320305095662668495076214402657024959915808521656837722353417310445528711785877559412363792806663360900115606193549474254255278130668749938908415216112368155884800062776767866171405121838793391784979483468851423671564615243652153283704230665603952438154868805459580500055941368919124646001512764940463767046995318036739857734278565207864670559220616586064566862088558367259269995373616825632701185952404210785017597537923077785452934049875708749958997630876526059746705912198941028915967441253482609605927319095967922651433014349516866545595100482061720704663245345305258147679622989878464059990257297204244981594152344502394558982047187784665167658907850925929049060521157009311927178358002259368158452282313160723458351093934657782836010725277002391146710132109634950371518611236791177256635106913356671053790996069279389713149954719391847575544133563718205326798145908371623058933482247819673282690359630173183661646046670141857334232790718784449961014861050777404892198863297341979910999791889267797599855912558250353020522216554926312516358181828397501901697390007542841213538249944186302337761682475016170444730811381925412352191844608777141333157946351385003579381951128963534765851370392067246172603619125634819088313284665084514669221060273592012451840428562259059996743814142818565554418784802941636118722014472433057453173309406454997870741600867255887738930899541707406627273264163676987231972281404345326728638335026021170389795568538279945196932750927491532213891427399411105075839575203076556005813425213129348907027014902195935833550763301483740743337532867813349578798758928600902555122884565083134136864266186316686795397654543368175487559836128729802721774299903923593060954573732478138777137469421510149309517495967065637773703900800130604897550531531218762215949743643844973927060753175345564382516305265506164703688353987352710590020735121227289126063408650243039050313241371934807688579958261835803154849691453448596824903231745971731448607613023953021170971250841778544926325508678169823592037796251579765594008551215595978709711620581582745296895299316795236484264559174438465781394774957371452840397096504530225721928822435737870122481226933241252235203228223480629066010903849640696854143537038051542012187322079881826347011145948882431390672585079224357938785416774741419147500030789646531585592477178108668739387137139122537648732120921089175505475085659426807768046274966335177002437863409466690082213306401255369054442989923475657440746462239587653020718287545669570250137883988597052150815064530486401973228626163295516615692291532895413637989564700103595643329910654122527877688835317903713628238993553159789533737580168863550223916893230088534618987334064503255726311908350576096256388913919916089660069301299490318919973386061846548791041008517090849920413840363007345672796901333863028344529317585550270456515586210463943182993722918974296810646837764981044818322668329968202590831858460174529550317924417045365581522724118547412810303725044109271821688381869750038394753684732063078270272741263805769701425285039941912809845654958245451550723897518824545735985041303280798892714908925947091080183818240727394484875837175792483439208714975630176513723165076241252496492407587447563369737160424025741286815211564188196457781661747099716303547695485361460349721920050083210786441023295851139892971546515188714554659609478659660913588723341796921859987343134611093601499761454501640458389860364885403913194095961253743254601772151506966067708303055245074528939444623583600610681757007054149599615531994207769464559906711359958562361378787346236485676163607725015514781608987213078163076602220974373033030082452875893774925149524952237744210609398237123860091826188716264090193844230332776263049494161367972173227200718935206766148008529446194306567442741920990372906560340202152868084125689831246695397192142772616834664657570765992363557028073555146978216076117306119639831197775024344489646758999754292980210361795059767435137326647461556676998395118240236044015426262361675187160308192839472305312369603733103390408920511223283664068019935930604788752399936924414750704867627873436898082554775638074313324008907496885089679446145620259808546724260018973827932724122841218078350533597899735239877032901007646523592546983864560432508968840407171983682981434756348939686315942445270942770966179501690605097114916739866566104506142304286568233921179264689247160714838481547526468082630133096211309831436846820053158398368572366986391997981697437065558908798713626230621893406832507394389215376515271569871693002534500066794638952224479538254505812086657903288156212879629513505045526775486183456744131393658475850770887208190699223849937004498107344666088153696558759307265489361341340031251361853702011230317308184846784109225210512199216717454090260654958933228607706975653526086569111673063459512308660444937472386958672799914551466085574329940091192314458539776902080850717913758648646999173993204936019139982495399334367535711524968249282898461760125172510751988857835847760601707833747648462175828693369917914431828640226206456560936921843673540452820627233543328678041962542815914665062240181453891019696183250588729196225297143364634671004193790260469859023482455066311998634424997645285181929528481086013880973281585999138190787107344614084494151544447858327599428608751291575891431652829779123822753990352501492224317384860601400837058737750387222404941182595374043000173157383057704040541759643539556961360419303450316369807797652938678333423111253142418779363760604278600817479289358238043301549385651512867267160387939276603919490393522365573708414338810543372337663918248635363668056854798330806711095066501770145352652637672109902261984618758399431958152137413969152765486693255590626780146142588997362782757325772934735421840495682375895420084599436469559841389661221128744887416947598742870053061624068098312434394306466768746475154415711353949100817698058858259235928030640228725325303115320031166096610776630738971359714578105493385300504380888463627434575878670323882757403677412620030685139823535896163180855401313214350917377471903116877381466831625407011436209801159758977474745492689348074387759307425283511279183713562362723405887590339603655349075068568166545063822645592103171155091435293683479077838032432661492089276855058750935375510402158609380066385995135641977950798750900928013745419197932025148699781053719953436396372558564649804171256175486067815373782774435279808902837142748699206216899232993972143831518744571245330051212894087248726066174676516234777716135387836175419266290545345999524847715403029029203071115415468367456983816127100813499510768587814802585688549237019957781414694650819066416626792768955741454151149854987643370881681689666645908727794598890758431653468573938256883300462397346046577508965270688020825991993731627381299443837884458077641031447645528183085444785211568334094976748249955586377193667075119261481279255659391726931592280785626231452096469033610946606001481185335974645184209789773071814979705302573616392049310252026744106313947408392366081630614993191403534770542373338549699215716592639073267057802389213268930541726551119271282362963044767978436227766771590216914270032667401885873719914414652454065988741020663015896976791012763119214122166550745716847414413583912590930014799479792421713493444532993948981033386387493291177210808881585555172146007894327273986420589258106543657377187147450654852084774137375287410968004703217085005284299241020823594020634783569535524662630652934036281921982356357224165505093258066203987310029964800652343209496884345028062995354682458346788124179933483087855987151268339885572177591522383650808997672578234287761963205774883022296170834992410061670260097007209121844637232139561993015602191868696091008251800472148661526968395210300529677745678153304433788465037427890939844528717204983347329072452097507769314680460367689681273003882775205453490294626088313690469375152985822935278389547998672249785235204125986396237952470235456920422821168868245143869295819727665833950417160655940994242651554107060520613124596865502173777240806211567390425484101153619951634451676082925942019081291715505774248822780116832302351114316553918253934466219358554237378815363221854315555534770878529652681351616746179606938610995318909557707984666931366587708809716317112238223351054690252062142492476118917938596013930341989372595856937399747890822171228187828150424445750790733441824530732765967249998326126039614836148463938880935642416010646461646419941178028269739753887588084296907016258144936315333630279697149266761349383546989602208511051620526507942162764256989531642088401137660515750939010900647954362925420520259361600172807227305136106418170957129184942069677814139796971612337499207010916420941600620944437389111588390483542119748334469626633602971464872532406459382080332891163484566911434975763902707636035691847966046082242050047388842713802152242582824557500059324228080893523330311747022350416961104242747246084678055197093628884686950248767940807403303502614789509448541410916485702967700389642716317439387991050877339191748389972181012188568706439246898353463004145733325899293900367076102316573435024338376499052652038811479294006067666814138140116640134452541114278272646642709714129297238517429251531761224218892703100444368636121842150011171503069191298180186288356832240575523085681607121040653875372424394045408226417868177595161260170696086107396312352338173643585159740980329190268564570598002719591028221847418513536585225726810669870019296451627686361262128710805638941935954451817722178951429783080418571350124825099616524835636809414486586445387686003504189982027844252447409350710136088147098339310068227931539923649265780010944861710823805123693153029794873222694502923824797758573233654097027182664046188944641937551717688091711620943581994497552122782364958220732112420608442904492832968359786320929285352887352932288868736309936915393307513741635382594881414067337366346585185490863619562222969355885825307343732621706934735757725109191597773413754839568737113239531826681441722765779639578239137040671310210954502393401300341130357956335423638342331367996470698943063527764468703340859103685378185288525894938979129100733260380995934759461741748359629784988466517624368831070936994980338096118145104606897826341026090445431019358004266874720658318391421323912730752062756497888656710595920116220573373758693157350694217100086364931053896626685605728075424952938704449523557000763491646860632387820003521990989796628436369811220825239528952103457745873053821668491380803567866409017709524979279115186771026027942008577483656450622224944159854793526729480243618966476577337827551098137961938874144668182272239374469175989330521609440997521438545411850304242516908285734095684346491161350743361269214119804697861804192471146598530498823401108863165981871868329664995517776655459634911824195096215142730371912031823917098046644183473856751855452185498660886141865003735070713078535689276578679556195702631198719878659823712975631548811364399827895350714568218119151601155964303082212102613831913230291914373696262162064227232367322717526914475413375087598578907487716334292319495538923536662431578840496399895136615036417067127426245231592058411153059519836782106364911430295195506802306270889702286789898731332637682922786986706712151474080461837457785482124917023913204492511830652714986453268585859463736487313525601289886485343143979015153190725245690713769467066883663645163780565678722242822134489884604561010383619779823573868162994999553170117242400309782131215481794898150029998057462066162075241551879186605094072740113578160357831984931153387753928501709251574227072167097758170741092494900963317597787048628830255246671590108426946997226174178557995821573412574079267535154028958652058191037461252157176339796941339706956275159639781925763711600100653332746950528314128792698133820618982058663965799208267425639975585547258544945120015263558635666614745706954345853551612603855459425209284629706737929335787108348782304818477913718276600791858017674066380245691570447544804586910012467383062759903103440825830606942435156722270701544959614973790778429521097817745901695372785296717517632416656931796816867767686735338859984424102854237975771409814945246351944958829522962414568690221477994588410469711426285711480170182297125964887986197026138056807549111195097221559482194263082576693972482383824836419803887678749952480550596554981432863379804251117199356946280118110191941264762249380188275262487968016101347722632999504707217835419463282266326201847352411182648366157503437308086372960896552206367225325231010832289927464646004040799420272402623086772949731225558691714960065796430086939362368164014651636239702384611608178397184930794003422321090949502151103947979190709032768038391157534613776401287602993830493518144330915640136601039898058777860299622916329265605055284154485644077456845474862006360271800330821412469965338232276692986022269794511272221169970309785127745876248828409880354139605934508517340572264057837599259242694619863049960948629099709870600651214586986046584833979848370893735544106775188173499794443925409910926604851542818907468571736315109289377627342131632406643428862872007251973361187317066257677744552709400203601708387744491145431133659344098680856656008043786728776396586619717583800427308116233278487433515316137852755982133206164891333773701011610095346834225551504741112962832317988821706675474431640773984721750515365995666026979258251297319092766483726829987945100416006063306041695557438486230163972398078689949817694339650937773151423287469599517618063040994146091316431012714928450750076666041108798631380704841287978454536957162536886485904528324741102690680002809171978782783604296461700552211549587262648535762124178053921528246332915957924542284326542777284976624085637302245482123206792679648481010442566056365720000020138201363994413140410175468933980066991177222646112797391969688782886195865172335576843094248927231641403737858500512595113294827375161034078122541471203628806891168934340806682386566846774110552899884528069938756803805662650207117626483997993243257939348456003485495782123075584536831863230023369852346981719349900537863785758134621699803070908554480606278109181732960599074926516229956058516546100418317172127341009588396977014534811013754641551313431199469042729710226552091582823035032557043913834538464662569444994112209082543029029280155618192712328853166898152037983189219737223179262183889536331924134663224250847863093916470980110201018077074924379719746590193846969428845231523909037287508866074826340636565752419872209365715984847044719264987147585454814860792645851040009662555293893097336331368360851666728073677491258443958459183487178762965062544133635407732137277986662335981378837984664644222867165731551778129565102431047306722673008839126677243093520453546461555486868704110920284081821047647697140349737968201084284669882571609967715669263980161355452013509181716378937046817160498671086446422525345378167454470513542916786575570157325727739784699632290766214244364032311869805089546606957403510073600064491072169220402592077306777215550738506992970651186772130332207006676673439775473024408680853572698163274855803166213561240973121912402383914913509547036692174294582055640897626608911180636304547124712435620143875148991676241579526686223231547229944364147207544964482532239287231184555266502942512055380617156882884747546628568341217313975412025917061586738114290880599606678354029623572222095479672874822892468222510973444311301803632009578223184991688506655906972538123661425094202126178864457917603002842615317255184335573934091682206349265578200946936347659703720996530683070001165643287189872102862974275467756582072348542098695427501814820735648337481766511879028501940974489390318291055477765837707738306013378200790331331030129200267819596973963120928011606561532253791552761717149668971947402930391084370059521280893092103887439138383031714501437983230840378843807617724425785334874488850645768744794965147915199547424013643381549956573274621604528535169011447369591240805875487685456361055116510435449932700063101063023635511095639822382015911849873482801525501952772799748033008622380646283198129101396935924658408174179751838542304798058106462953535656595929374057503745615156805451916571447944257206540966556233391426484975443102816990827473472522361838750871388698483442578768881385286775271858106941203260381648814227315271514747361694748699804189063405375839153201234179767176702196245867948517901421368716691858719397504683513683024011118513687220740200568589525855962703141054455918035974670495725461338867455889333991371188027879520290547624065569466276868290465194615934858823110379276506571520926885816422277978793297732940375324464449284799988478305319979681899404529023647280236273019431362204998706352205780712019293806400285754309922752583305527735272294812698588690261802999351098396934069894948619734767544934999127282870824836704214842786967942746345243069364511280084197834906722488500379280814254405131225419777420450426906709034351654982196292081697740435899791680669374510226611240444201306894836396087925132467270462345549020231757270419405294535708695058183637080563550368308348185328342074947433311169731798360679765027753817205846481584175396663349844645932277515117741190054783353792008544038113038868157333098800400837617792116800487430555283041317939524005082814267542287882860468736645169101890099748808142668582539048656266944934216549646026887458478805896745580777997613907834182007002936512849946118658070109539927106405914601249652243951204825959470906035036676721821453713139697022556388489466291441757544337277041699697430496672792665941700264108733888991517574666775871332302272317031617800907418619689127558315915310169188595260594620767180597150228045858577327007741664240706677818026245685244490767971767601643543922536936485521659739516974975784110248699353342701743454738030301920572048380117980411786348667424612025441424210118210190983453671218483645231623793189094855262436604589485419193048879189132524439780736660105835517794337480664543004942502262012451283006430541580423087022976530386954777386157757822892516606981083275646095661068280230954182930479700680167921264098751349503401873394669012829099420411549064615383984993796733612315002164831852887097017597124089363285841715364635076428923572341136140863878359602646512723968084925074066910196783001996915359518842398796439841589795171535955165518526991762095204758450465144475126184750801000606574109302924113836890448238605832487006112690459712349945899187994046922276599880793727830778806749801287272833643414071886551441982806307938683859803189099104939747938113638994125596890081113596438842424522140848256691907279773739012305274700104925978607874003896504254246495001071869190294080705398108359059440860740099039179640903291638833352786666886490431554264068263698587137685544974748082351558897128663930734537394976473482843142508885470841970861822820008016269696099271061065420195408634602989217304281346642726340350963717311595479899877768307501875926979223852082733514432685116616365605382224389829126243133350708726634863907050688669329930373151379654164584853318153950080661404821240021293982547044733746334778839697063763159051083837196396255844562461121582976179399490063902218247194707521924094441373843371661496648456689978097064682116504785767376344422220708556756465803407720684079863271274008978590041975334365545701439832013727592225559003528112943368146161122132540285301009000438793217937568920341981487419971503995587314822052777795356733706603048568328779817618926476070938379067510127406860076622667620939440255451619240351320562197424289210073771464786829115698736494255138586329987544290589271848914978891550192740334400639330976166145968882868011351009179900492773065413993670546191042234218456719198710516580523304494315817219544369624896657213259581419857103596582295439847390215819364278807876200684596599944553755314422372541894054945660990530625802437180050795915439707714873368024102916755736426253249788245736202343631481610806001769627182794404980007977060489448274742142459783151889083482038021846735247253654571223434557844640307496797116409775792847748794630708304020144799874278022737448859684687206603423064667820188778292576600569324252209686516090530894871129771453938568261112891491390320026467444373956364922471940529322831224394272365753299855107794237859292681481552932875607618406059640884023901068469695318785498455299913418312437469731684097216249909715408354987158297394597394779607201216811674905491248350674357052160868853153804073015226320998421694252196808690675917977112296914574008676863767828619166876344864063868468056006570720630879642411332673535280770643172479542295699763831489196411545085790931320400665575213004350073712521295873538535628101720054907079964872247808997549514359524858721938046233871351643747305135435119116225865710216041989078857991094195353004892797760218935188793504584380442176828844762811073381302964987718961415882853192031264323243584341122329213437978913249211618372359003364669004916409065948282836792746204211059901237443730539275795344631766742872579149113744984443946032125507122392238637176859396591533003498247682631100386613474697284763030262518544114310850840871388283057576414517634797279558209309869862400962422811596964557598701569521276935781994319937523112910801351738363914373036624022358895151100038073057856048912273041730226470820144994885419942613757079232248986379203423120428828462597171833352650186242473731614066849710628838692704791867479749684529793787729756288996948295373105440508212132173512897974685396871212802912327474503571033012591173767596738250410741378335082916041425829825770008058679542053817738284433274559903390084584971179998147749636296842384578016280654234968591858261918908940595858087120411211043086218869218069728392002355180603438951096046100770900049002398729803572048966135043499159734158576228289346144011437821777252827357389289020344159682024495743860050330206856043842953344879409288214008325798458980563092026846838816375065707990492049669893268601378983599643488326098241956182693275369135802405314586403165527767961726795469365132110169797341693773420123380136952410272083803436798806972109893061371658126048337769500078151340510192067582983388344713351430384304559690031654762107551276508331920277785011180466788012350498267446198831530816949759966489125459433154589654746921131138477973881976598500040367964511694366731289646482973232417304808102952913598058642890914238511004754964114540859439547441456684734057388927084614707197070338491365594855290024376651644099294231698953599209599086854870448138638750126388471670958837965884253976719609424038784469913510899490470968631396513878360002802990076175021535917825308454898588510120124803232253880086839425140173617408463050011491485911729932030553029022837948659744197125450629563304358091011050705458303642423920843089095464641747019699548914984553985308328183887630920666156219602396317149820602555760894946368715593882657593779027008606794628400196962873834881319931033637224045751948112995222467244922686190070817504666614968380926330677394084486344242879463415703334535947158768806992408731512649473114846285882350450752073576989222272924907726598633448642798027119726142323621941394290119843138084890279516377797495576594616575721283467817674913066967541854841635045738492693805341129889139491014076088026284689604252681630674689717775245156856037214625809027130050634341141639723378559609073351619038458520297925729794439062558540404722113359450418528712546910863187633924884576361646365841956214168791914215204576518688999559645681735530226132843440348757348778047824445525808842150351170144144799940946469446980817762639785678597977330335372626825559202847706694463918371134330669786380915390328005802777690041419099223461531889763452648015747775202974125778250738399143807172076948606117589795505124761010382115542042476286550240239487743885844121621926095165020330902365689619880257098950166879560165548362733188097305779674353041558011955317753146622167133878856773997562827296877675728775545121929675416033265583357266352747632891347764604268620343685460028715414451720737283688201119892674846006851405473615556001559087940214615048666858530731346981549376494950030186905124977034983073013293334663507608467141602525038812709595842252911014019032382367697078696944214449917847335159877435389406654723988163573101013301131758314432468974516519679847146991993627634212201212366693112975281827996498307127628889437735063889880138199269729243679683656464933191629477977369979834315398277489403167475319073929618956377233497731290404255880896628381651061292128944841256851164529189399683010659269612547941585126676752216797267936119524116513831803031436810258301205161529570565944543464450254954535229750920679435485533083064875553956105989865030362962828946156931817828928817063257928354750895946765622407821981363152628123681899301760979752227682735305160988471748983575076935658488498538309855263527323612861755773292815622141259338897694839058454654789065691027981800901520894891728813117914817744877870568219804268857721478153501852330245509949288694870014481400932880324930017973005230064059177063895776008466984901575373629424619865921410908974680525820765147832525367189209672848053219995818375385941650063342990676866770167816697452019558208496973909064808172989672738148545239275403739164649680125174831273172437343829249919139796861805820216807633053910149827349038193480114743606550593348860888796747565424882068147252007305140562984506483889366701820871673654255328920900995437040296379042192813998287063890029476155687463761487580923877994342983057586645241181989839471556984070948547829183098336219649842479335796373333421112526973202570254816873745308815906264463704758354171957640279397165042712922911696279805909139923395943202127115629044224171395968101667120901945545434435898210499740551391675852218100596342433469468418464669091750464242899444332056950701305930086563785043313935798058012882414805687410004453680210318254215833298375623496075424870023571582818874693726532062855707963205962857612569069814604717252594569344437425843947389013913617585153059717638090838990937253063757254113221784731152194044452245416270909545566905274023766245414585191316493853035827407768558842184639197993828571206048151784405895328997818915540386132425902266530010616962725062362811993983052133070520144916906545524229152382561925888315161386756536726102970266158798200720747879260709559408631785409214629339728083353203295721866828800168715633341144434800511989688822760782863071847409601722576718861296595506437953762464980779241259683619512271864083430024396038685667391403001648891481986424449751886667673731069506424723895344463420817452496178522210948085349622620115950564157745941356525826984547215317121209254396698215814120912962399676174336885641326421884367894655176774676681525152711511127579241306535613152318760679146779907338293709868474564854858287162035815592506088330450017128026761908837390515757825496201952813046185540787154154239445838258079234968843141296286914302720855124088552585256532748493198233621413366921532903031501993837449757309315863613454969953529504606508201870608088313189676857897309998361548694036656811394434721542776133571965670814056254692938301990923911616526827233771982812487184051966665084027738790129631694758698666635783228162574445367548188163256714205217764979356453575883778557841149270954456684433613432366332020634263204127452004701407359519936525931618121840949161488697465408328153647008166183360251688628964228316000615499543033098110501926603507929653016290894501471915365239735159959591863396639709413174943529026074135517461478199617644351517784185091847045952170599445936552497316870921361219410421360249209191948006521930370262872555947312075714482898234642689857554866380753430446322237071028924758522134291139066018073243370338981729793771122404024921240086248094608412027328533980713244722713724950471094939988175291788095421604681987727496605505099020726565596088914014645654208076180852748819932126904717635542713206898879178714926230104498451017585746214905645897580189310237972060212443361710106642793811125000394157254528310653289196447282014168585335169948342771526578803399273573344167495385152339736453845266352822972134409509008329974659490959683083198235239428068643686331362340500619905671046407306696707046672370182716515598155499849565528980645726214832251741634745899131206983522694648971835801002433112140354267953732731188306762556218392634009424395291682168497133346657612237208829934546256115590747922966849814721187686114084409263942756439004582107767837582960321577236890622346136743235156044553082127543616436420549586164788390593155966938460048111575387478613552630884805670426830693445544013156615404316632894548112162477994836535452009602244052489130452181546141219435253240479724648696143896230103004007833437364938949591606261259914311781661183036948449763677018072159934102178622459942123534211123197023513730528642972516462523854142365573765720969508005145287374029895943545443652573468145186336945725388479820179920860541217491651219680138858246564746714952449343119495617413821920013901469987525619222459830446344796952676124591787213145425790571885994916906478115696519746867903317727932957562507534428543485569619410540418702090568274702241206650902646236935195734993858586255031060718083538914403741907478839487063766891981962507361733347511929493382832002661920079480900270008766732373743830068266084240176583820359595498823265630189682209571131544507683013171740085993170129701355775655817527487589126944049391538910763049341194589785708927313513854591996576415049477628330360990584225973115760289777465366455824636932321303720691500395067050797076712609007100891415982537529258053713159914594221157671571407924402656175365816064752795542830841556511489135972833105071307050764282565537886804479982516399341206598533162936683310072871326160871806189819413835330120752374803522460271050928908195854094741721895420674384501698080473209762478896733282106366036744590882040877078680107189269404936660545507745771497622667661904851311914644002458665035033650144293445157557774015311967118673695060761022150977087472597534126041736806802633983793895234050618951786026820221355240103494083340257739201390907098674862590927696357460788533571586257680227551498287427088114321233417945522817832534661540467103685905587426174984001590350773754135645243720486407856310173800231380370114384309062820340844700811572369126739026249999051392924424203514127409505902622173213057716286002799571445546903888784292997725521232316872214014214389098169943612563138417467792947547404405913326921525108892208382575392775432099111186402404659724909317395765633971831196804074334870502558950419230544702226285365927769235887948359284815722347782237665207616811129393140897889125031175785952428998548270958191579733868400023564470237387506017592603058718394273105703859300162006714899452580957327940078136369326201810265758446379088218502106063715798273352729245921536774950177835236712956286458407342303385240523949329420896498524567562944665377291489722773258438422188857993289928329986413295855475266641933536651524694639729402063580597065917137872450737358350529466896049430535994794929329795949384785935728401603702949027694622536754794176545605556755319280341586395670422928247004393011107381208327805684129673307933321197968328757060718496315669654733105996051013087129778024178993328422089826364322059439818764704300818855802102818910181925192108989102887289882148925008884229793516688035820996252420425074816770915735603496684688002755295939297203398746739998799055384609125480089314768286283708307702527487101800042542096294835770370999986433979365800961264293268759036738415829054142879205854954256930606225135824655621424270467519744778352545842461617465304271663204405417717097479022726262798052515444596802960409532834423413147752838927407994892226028145110943522440920488839165693604111073633792568771570226369351597777695345796825533228944362964234018181991633636296202698777086887290397169467630071777836089245323086034007455105221214886491104159772455253655886748734892341273884652613718875601963461267588815321614135904262218412798042671135088519601229863083833611259017473926628678117111994629239783663870086874803999996284466365872171066108065703669311732712038213000421875130700748342625064146716582155827262543995913722415676155858349601030529974780545220210049807741701934516882636614493363800084018892395876011490179700819681982451304354366149931628968733994208873934880081105776814410067710947395804081933291426113976248848640884330360077106586731729026379333351490319215934834383439658380692333251991934197397327435029685203449632799368475647140007532656462660637080941844298560801509925594729690827138133784789967544881100726555675040614205735232741045970998929015424298524233234838547727189151607583286487285078021867161579217256471517653352737438530163082357486411970634535372047488697807499194347156364312123273805706309652311846380502455351709471396090685122241726181271410596703678515852498247865258800147023864886192193071024548534106172324567160338310046324706993217440130188173564187895205782922563891202148843583178891230709513615003207858609919175395963572836396654305264274211732388698464317795382551956366995317612736924184752178420044715517099875532257342539264546236545332411841614950398683187365096600984262367121218573308946127674881605383463222117448593502872166148817153822200756314210479375661622137929885383083709165856271514918347199352148940996738413245560880489297848499877872272412796125352132392037946559228673251874025946829689925630399671975165323770388001917069729590388473392052842624743141179571853366287813734937658014380737620497924125369567474510802425598885296309857023902934664377226030510531645104182799177671977639839419371736755396043565938705654749175146355414001358161518545093366379916028511029518890143336639141529074943624058845088399321018895353045415684940544106154024718525582011044670173737965907387094425134200453165152224962113526442450026265424396104146629105937430838447506334165617515314349724132846253374888102949750411816960610634104004114427722733058055734313357784875339356014294462875885617655277355374255131013150839657752119428554291329738802355574850285903754629935223354490067040209142088758192261240865426782160704413476804304745753261712987313135654854402023807881429773958020220127402271325812512076867272760326210410339480538115835411674832495113057161630418501580435786996240937026902480523705866501842334200779052631784712686623725376807603056109167209086497130171496396733649937670002859328850050736311921140757956978290712479328042195422770313943432098806861850404275398064429355836055872083588317271308078642761962625278614063582718957238918129485701577731599670216513135343483760321079033503528437495550086420689547475904491535079655188224515141119287114814117880457895334124556809671854408656740452820731421421815096364472344851425401950688186022101661268304422440641680574079330720601051605503214833518848589988366976803397751103065701248948443700996986072908710105721376242424316511419976270598389140896823298757861226692955707302872571045866957162986792020541401333895198727783187112614057500210971861085095918431338355486183359186210287182177594394871310510476852425322625759989362878032802433040627028743735369389251545737818652942649557066463193743513337555035302042929710626115846443632260760015519083843777119730678668616645450905007556437371413784015299573765270332637637322731127162856403361808196747839493380475014752703608868144211721031023230624174618180306714804735963913752081998549156197187942082003360190662476338025230277776099508920558204505277093932726543751460981947346271275903649256575932787588535978850139020761624475033351759227807206338472202805844117389726261490448494272293023688913858547689165694605397824095365230899712099240043553977337853484402059522798192069797106243067239120100432647483308752497879723394119425918605785343192197653057112715840980135271995064919502004931115867267847476226724794192971735664465254385424387638493950335003169808410224094827458662650644294029736978526851204690377412287637654839742423788075337520280053572359578375729207668995941477576085702922798895019582710071069967459514179962940864724388776582402527576600583553241577915013324006500375814112764171455522132004552976613085590663778736313692752490989718194142376898438110189153828277498798544763152513275062282294491374162915285148796118215536165239222001230644909678624427965399994603943157089120624462889770025155120038410010761360993464734037554652400687938638608720691495070845908816676135373803040934041740040951971003576387306177416698455372631834641480301382136642950974755665989299631153919762509217530121549028904521232832992722692043081522828399630275762481799876873586372014299467701473269451156151404377973975410031867775382396623237482616544495761168867389229596586339198042173106720111685844956820346136075210646680668706713163173061035219019147058262957785913766081076790293180813415793002290686123097501136026442315948465147256800382310716660355311334972962359701119441857475606427688309307390669353340168492222637079617835949068840833143042167016619395473321419319798079638620692007020632053136408736235657011147242873564607647144212654746021373540961812514605726755608252380969266534956789749615392798462272865218229800655818487593305224077271163461163228699443032939132550085605603556858166016417181359693421517406541478661508706894083953366687220744175165598767173666154666782728526452988307761579647534938839003577412027150457405293551659676925645984154835753941024366147076515895097878387135047106675132589268121675565962584528672836402877330172750100955623371728571853006017192658210663475601372945183729031857952028424687848311861423933782430544271456460612972424682649223325444050585777853274212138664130531630324956112663622255567131197889976757894913786130923689534014634814427972194232738596751122942213443607208183074160740511595221386132979818043815502499086199558687910479668115793022086449437772721140100797588073888002741858969398151235689231839819477793492613284432111021684357086558680672717922153072150947998196086867531677879898834408313823273575512423030021186887091156237898324599124874661241775531425422699262130150237504039984968003897447742347376715223912447760001416017933345928346125502481252342752367832901819207104732218109349275063443762030356525400702234625735910154407458358471795718493672650107407084740507327991875794044690832737389288551165989594758396810797730171053537932163941520260902506632873964872157320262034098226361166356505856445518082986380513519473939857743263730598732786027226683346230074695405285683372636733716405885983580741342641067648592498755420853581926668385960917976228583831725140782700120876682448676594225051862628941748972448275483999696349594972386484759995699782404245009568404235827488500956754219978558633399159600847006987357726562366584864335066378841294778015617008435622191247943543961172215653440668005200201103693251522998524397383382701121280350369069284605239610441446502549024745458302692847235238041390447859008702532433676891960876560082803575725145851642358545117226961052387924710813890341275932601316066966791095190732078379972050379773937396026966081082111704863825644975772087438709807833405199505878376140085113666928623984233228744128618885618779446531882564170128756332430019092245272032015594706287031960893909868950501639520693929202967250770288383436501729079437853078258737512685073869733827738483168204297238285838622266227243900590807912428869160412851807719416844296632035198207013134740286714806580674847080051277121541480979720356617758505445513927899338421589581155077713848482764485206886603835721854497658860170191113307663641077977870941818466788262716373943185235662650962542110012006977216237299836847223802464759340815591156862202483691825382090932132432061004801048033749542469714249262684017138717386936301187175848270627400087956379185005551025743137203153980479850133524625129636553242296774436758995205999365579898920000261519313024561002363541521690864997596333926576612257278131413385281102296561118272674276714749453384558660217321685295589887171044358921590253551909358907576328486512765009956502245821439990413357694948128511820443313040010826696056383308657991587960906080115576201307324792087287268766650180913529070405113379953032064953234960415914085169733467293189896746281445935203275473243106793987582566022047639752210836669547470423522865203510190340496938692179667108116623225471386894094250792855248139079673829512631665990742912065121124020857742572293649459907670870707873222717180240770330276300212044174039399857135633764545694173421848665311991674587067088401537077234005042648972626176413316074799769526734371085722928060293255908711553700797398695930490175066541059462660877389116392321968163774544340632718559002956345552058014279766363240826105128486632969140631262480614224023836214205847684765583165709611385374725581158490148681727086255470248943282745704814000099037441253537536431667403870093918891333878244164396443777687364133454867869214223812170250616869421501940177735540000644147042414761424353410504365945292740616130375673127617129790493040771295333159616334584900382427503561812250777421874896173542741048229868501590383775595305462807805456557305010279327145476938367163669692623493791035048475109712065868962765336108425100020432535864217683650679844523132326007237288281310214305750173161929603729360770257127197067557367479549232544058287721180934792942487312547241268681687068225838523311635307247185596906748124565610918967656983200550806468407832301068297190135023433163729358995304094893748964332456574677636409044232072770756792797320287899039620212718186680108690881579802831994529531734561457921100407934908807829867317094250631282278514160407929910657752628895418240935451937605248114136450556317327718412621724055498121681212857320512108474161049243385986914578523388077329125094623844974403033458600934479483553758822252976532102703809743929713735854236788447396522247034582464152617130062954319666662124315188733013773764801760798623395484979309939110280399486790201860977557224803949640234307138702789119454055886520140126944965077356956115472486558544456914619160026099962613244781893751195091559389953085365029212841907929050408860605813955523523419039508922913136685500767050240033777161392427358436133452733079387887259345650707017370795043367331158697850828768744228195725252645722442684391137738095783791255646122395316211432694960723509832271018700523739857029625395530471793411205300593916205357118202947641920189089678702329175570689785811381222918785843366260392914369021457424317733063034002767860069630164043240204981529504747269503786407526718286596517200324215325618584599885701569101340217564636008470175358700362491352187978812840280973284212321943897774580335366928098658176017337115173634617678515905178046566599301790867914480913289119085320814769709239227684903384679519614881759690816107822958614921554296501234314096085302086710152255598907451208593220320051920945276803393269494005865277325157176513275374992321950954726732437418039080210631914424105489287522212332536630544461022261622682005390499360217663479911280432477660927096727879982950820003099957688635497161870523850153677062307437547455837158522571432529030514724770753447371919343803977293334051368887029243060913672161899066531064328997743857506240588347459068578241776620036962303041069306008461929936889954583437394603123544783184685521044882511963955438576890253676234792418685072765229957161598676352217292766208467032370840676320042478869275486956437237897026358062932612666633189683480798838574537065692403046259623158201556819986825532071351700066753705474889880272816332558471190074014509497749007293778685085161091781259745937691391038006800689770846961969633456371485388532305121771256285205644524453799228839813602413993089469592096477809694160117268361322779263048682327533632389777089500264557077323903081820927601014794196527237315691849668056367203539342233692018783889356402407597708763731392995146106680362828256025457231345132869590668608290399296488565576290246425070850919907524198796860068449072235459302264982183697662068332284536588408052340702888847365897127050421745610364690890793201823517352108129754835714871129594564265730778863079565965433181325306613821227213118367646414057116861441704340195271615172717475297682892848950761088558217378631204609076608090342778671888472301049976190120493576179129386662445151348489307111493418651595675314324427867063621169928072092992826328001508599221691365965004891819768119801501353807303445786977362602008328211756380154395553636771003272597090793851110992267876563814732694340938134129428451991441626687460625043389415532847119548408891099653678548455736646281675388426612549574623453825877163280645162854019917722407675819291227489776199617098926997705890227670076614102706325541898440532498081279981760411321033855279918533703628277701747501821830899058701391066785209722454419469256501122886817738737946629550604290759402448282802988167436065489535327377894959044863311209332176800408508797272743075315691530574098617303289509163733224101328343197692803848322338955760557065694688351430736710605332454249692453972938335548402574508498814834791092396646632519951294693826389907969338530840476929578428540182258380232582143275687579273857972820025302016240930645640399224403666877428022598065455804625139313314614048909031120622762733640973403925618081017245192188503941943115800209254376062924898409387192926603642682122034060953168414291719304754930514964209876774128836553155490457912148672703184802694552258491755295287089333528240742994294979338513086781992650324125106839052983295429389479843158281137364180545147484679546538308843107153473827382406210489858962076650608027578309525412042107364218794320441899958125556607179666466376722099630353156294954692167727839325803285007632577624683843408690874692086734101191348348362164964651615177042617061654005041233983374756532361707554560531179750130291038384000901320221225410737665816034906813858170265280329389189260907017221507130323248280567866109335708712499830369431152782575107691230099289616208684536432462061158572020223530549258452711547943297801610884327283660070992592322323134871653774508976757026709092423043425548503960474792957361711645949209139199805887140487676683531600942116303602342276076701035507992645683864500058836783143637779285988015163270679116207833361099526431479643766174178204620116174489962184667475632948191307249832437933319823969896794701221428111311216408130375677766532157779634232019581050187165774055835466236613453943517332001068228702912291818195278230194641680491095382450888724246314272400232910370583252100113174025871376341643074169705143768753303161469962779729984236675523699669379966231118438511794964984741361298663872969614353095465815626328161576271875249413004666281987684931135516032860739850459730214459166199946419609376772842594311133973910586599490206242736642144585473070595351480642174917112655716136787941886323872107152879500916240008206659443125965972449984968178846549353809366273864764391974934370510298390870505166975984649936643235746710858831233207153168866001528452833320206425706031182120389584096562638875932983025200633863095856439469800053862668200982116029646783633631808880162242308047261357951689375963978468112102765517478172552125385842078939965110387733486359535824916855971242645445758172223107374065749817619150843931417884182475083710272666443312030166507887691163499538781495965422375324964153167585630183177698955325819521973389563344382298568150672247803595365816680119617903804321423846328519300771502919419716155264907687847153640682619437801514018563427053246353905642838064538641054858293027999568694441678681050256212955053154537390141817074492523146600276228689022299908967539095611349089824898212901226716081875981934339839809843570338457544898763358601966716139890302286013564767660628765578696465122337939883223317563268582187847167187587665236934771071835478848262710897541647450631822432905375812591550633679533194075077532110547354774946403044054167851041080757634185027921543579611216307271224746992505827448770751403462311719902579541250067697912297279571867486593893845251294587921039393177209922653935498469113961914834783184705728191551920190304714779853208023869518034484826181318784520104236513576597809533296090213187353233677875728064891335409071684247966890391270168582722774917892500020539643376648727779930950757121479347176913253417735953801355365912086311947715612982418909443488478950430616661147936539975790443306064702167010042960468570207459196395918257989968518204119651410462194005800747213652771129593217342321731313286118914070176584732500855472345621695343141375288167837202271056506893478167370804062729801792385886919007561387676162407091990624632472124105400025779656063936525980161823661758169798337605291995773192572152592059105554183219066844105469795951374634755798424726334097502597524002947156464971970591342033528261611114669112408686121954841389873540050924929228325132580377052048075995246484203464144921826796742451601805897596801082161319336979442980955636953191617873396048401312948694458696602547317877122391120645293079675307011694038209727115293673261603465093349635392562705010508596801354004857993743434248158559810535551846694584530741575739022698856003426406049760780054358411435927242049347863428552257153224131606279425938276719025768168945506499394084240884556340770420688527149107312358238805231054088741709471105073174058083609859869804914447580426062986708303300685429197182349928317500513019464459354859528831257032351113901486079617302793265748382129627356521679504200215737488209757255411525032622168931977197420647829289042967090120140034896285364264441742684216208563455012107076377357138007459232997137654018851203169789152631007371627710902665227461976850153629848191899328533848123976519218417596000761109282939948055578652481477090506334265348845399183126233534447735644867952615683475258739665085523910334976135197024042073346658641086837410594301585772375073140886807623264320038297343912240989348030293747351886028870369816733173510829138254305023258681534083854318138444010479506856251872933521690044018593370331028296877917317979129574164676213698739835861134729754625883771045504569165481926342255653949027986172095093738373755830456714413762539761305412157576671258694808515856683727096241148077364720459887662158841762836215837771053523427439159464258187478588735260485014187204603117993850178783076082852295711250288579807001860095380935344593489275350427444392201370931102165261641271719627228839806949088386020524532328746391064451072861091487032450656014419831604723882344558607785513853169689429726815277695760375251962363745264708643067716260576012605942994837933461511953291871455759551732543551488928739051553087302034019988646890747941052524075267839339316365224588502413005855538206756335631115328259798465480479524833429194169662763099166411230670575554800450291822304692386460428133853490421128287547547580612847942286056821684607850370865276965200200069918765981129934695393156126694429793280638440342809786908590161679628352841680346984715896328882672871454197272582206090661849763874239217669006709081978579988619112651485563315277220111796397385162062262838974994646580368293003483520315559769088888131474588092878053567396868767782428408874973080785360703453563193226647886032746021978747642906354247693845827790017566652265965285671231422758094925841692776276158447991137710394403867479197101454423535078089624673058170021059390394033711979035028897205535643348802772706723589322468880704035658843296923893283615276493420792985886321344953432867763092990808543648050817014802868062457794669333476712003171473909914908275894715691515051828312779873964616540001704951692322169738328086774771185101567826630994152549493441712680026434569659952987692310862513618126967540835742504782745908949508908059302852960761722022592780585254629910047303023021937510629779670687887197676437956081395955103823593576163269205113639584211324807479264362558534936873303575144110548557309893598683665896846333964507122099985819483538705562603764438447536855610830168698597285158756225222199804301332129125147801537271400941183048618007545640175672846971159771516059483542816700415987289261357765352641957119582863423680265810657260801385639719563358888076542460315165461717069333585233213123741239971542247028234231369212780534762770400402359883399870510549616241747662189348424716813603039652867598161757283108129787048177121784881659543785758260266288276488114100814253973301357210490951436259454472958521718872069765439694325370550343388643666017673365202018431108124378352974977809794058568752144140656093599786706865145899589043797569806934665281564236871059498669997994420325971331625385152436847234282768870947757732233526457876217066039153787047012812158369527962884233269312118870257052266582550390309020683472754541684095447317441150179027768160664238517979385079830357060144055662264995341799329291652113218467668417681799905037337948963063773725362991635690466922640436742322926728487816354018670844878017572460029926678527548250456914038765570887695381776996967565828306896466041104219266105509751435579798677369510486606670462841167021642844555378075760023880640557519254153841612210283490903337564176368748437584340102535985236270516302671779520994915854059594467971610075307306275012136451770205000786963457894967467099973139572082571875814182533631018321953080901639996971723546440537404979260994503115106459330905570980854531967741703984469061318939718541956954389621910597681935038539062683880746805960687323518381128049747252048897450839749488558720493073996959931737040177856413569099058935178986735530583804623331737297607716461535375215544661324956277380636424132678001961739269536446644412010846810691718526083971548138498091830397868699406366008202346722203463696457425719444443586225124313081642577996436336632545942485900429482212394385110234418835444513300226943412612416755185481566462286849017807321483009429314113255099778182773466167966852276935423680889217767831024645878835114147010095078795909976589353590305109126280965668439908071578141818119563681913726098993774720452693176471200288067013514490134461950609522156313642230350576653539402827246448426476975691044417797753790499357265517642171947223893777352981821787782637382025019023468688869310958343593856310080438924253046815339903249299401991333559770349727171848552892864781786282743574699459592242948932121429958290896387449949062146215564292740751495416117688520875543846531758423954345022229324778546334444080607265101440562365719666447315740304390203836018801143112910912829434128293691596197224969113665169976965734660559616137419001463393135261309362634217067838714420002253867732038131876829580404345444688268906599560024053726461096016491450296667791836534522793862615003339790807128245157731587260941912054112347143735460932594465421962400906103165345672416666489057682805593036716312663466101119287107541916462379015450360943448758893013826923637612329894529479472906439402211033512963705861415782735408655742412478452293840749067367275717199651907990232263744807663238549330417283766302398125666448013665873555754204849173388077531372383648159504739288187118440111471558041756368403282792299779408244622141760080407934546280959761195513900082380523765853452484647874688881119416288888002132211437080589114672798618285601301969282559751653650366839518235182875056476757127266704609159103437993584719809751786599363265890828151853765481836827208958772266729750112392148573775664702534363869895947369430040463588367782629072781860003393092635690222496466975742186160923188146679257791383779182098443564968873847979651343256593508470885860954346370183621173471136716028964077226170552409053999297348278707326480690382201989167290096417293818982905061424007309932596300589111927137734602427968784993136371901968654733534965378786285509491428877680493800171998991409917342350818405314344367450097199965424153201353244479584512532698731597483292515322821270948569561943798764115430918707279079865174124811864930377282369480982173114652416903935038357657377167068617903604582645228150299685824257757685310493823224945225479194014070900040925098120569157255807332521017947412904400165356130131997958836024601264121223610127574838181425087757149564770306686877527008340018930787348284718994393404917627782060644025884519295707522817167316660212230283703235460401080640396469221077090204122644569088206871633571982147409423601918632904240554332770837059774733374443596959833776318520125924824332913207480696326036749416023445368176254381218286492447128270456000523153830451847632163114839345642615747005956601469669244613154259252019735823225114594596489853060747165895221667465422812906581969569610497922368865872763098565969647611573282869365412329759577090940804234201630520493844889576775222405154308167562890523884591527161033358373862204730805231455633497425544793517305698158701250862667636925634159903314871412950693877490716551521216238165369919948747441931328886445301348344171479789060680627993598743033637985727514488564932984916737720567849232449557839507212160572334743900448614038863778682842638274233020482658840362246144453130298236600228796802434078166645131118277589463224471766920143601628079969944096136462875441443840737632583109951931808408295007575774557328126179282100255839777135584495399151693193212191045767584331715448956938310008297182490697332298122271671055382057665545291433047816703081766638109997509592895421587299759578226087329432994398346342152775501404175573692847858949343136070770257849409862468218143270773092420535834701718248161302419135201571316807306630983635592395718174675557264615923981898596579493431493668823920985615867620474668608988753202919221895659371667308353656504520002352484492547103481568483050799952799393677707201413213490620895770367985962960147992941158994358033786433379151163782375936649516655271958062318073806189441928004486463563881925333735236483007261379859093775997893706620691630258937000235013342194100810528768583564836525790650486102540146112302363428532612755615054826033685904319631219504377801346457204381542987639947916870012068066009598009660189980803258518963696722843544876240653465145780926903853309955502824662205755854147548245905533512530531821652707760328097678024293189392088427649011541484104252037927476666744483649849772459142166075921178041903369978300575456849429073643946232698078578867141795593435645004240214277015711666310008748644478763091160348173242408198636794038906221376841255116004327998515379836208851061921093985199172664899335734548114885560697274764509407570686470428085825961150789555209674435787721248316580078758625092998088024885549343827190470262795915612949388476594560744678029825306864603701954818307080703886654089450168310703064409731176936987645247468776767951487458459900931471064025544628385061786339090325342254947826398522355005437158318306209372914598645859569460805708651099669802979965413836124375693113422408725193605331533739459065805852408006669505399331214835895811693401577213705074764810032838472484365152992875633237911436344706276946693483203122182812806444897923586413642456847347048555690870172008435301678229674134446941833013076698538480900745220134938837620896903832150286190219333367853657330018403024584411227347922878991747351325185928874098937974042770465550004147364038193733757773546928474936864641282589689815213429122388099521009997119181397385479930352032289911425132550583456968885157393385819699760225687465617984565429478602682344543576556701514128595507409944260687580761438597431466349309237242139469182333244604334377354534702361232347467701434563991928677503216559673988817013213567970670309521702970703253491769583330512607415356298541152911703528071449711635412192797394794352648383121828754260886014896178260524792209518713258347216802062708386693206402433476790835780698858712362782886543786821574074532398986912838500866292376597681445664751859546902823039791416415451981500709083760405339891484181053671187760063243242373310727836678105417705847486725442858470925851094825528518555551512155163020384900915260034447251929296458311366904021138457081386677421479215784186806155855798116696205091044676481120152494250773947425984928696852113111776638879583393425440248778675231553226973458132450358020406685291823820380544088695659151715783346439304756684554422963977095049593786663939404248806715398545298572936297665182534349896401912596203260285479450347957860220014701220418041375774002183311297960622000729251441632019169350746164342008205087750948365901263643905008917414924206987794255042149389019312418924931402990671979615325114979686821829658100865040594957504059040591771150761216202049629748103970233873854904770675088715082147412046353570532490710625625204749567705058934396758558631393810416628020623591911189130187165420471716091355098467648809404481897197849543151687618281456373214625411120032872612558775256156283487725132296245080025683220113695076383714270101349040977555932611670753633057432232616501339492031166346557103645191508317457583745843262798170810169686237030294863237206487725871752291842728181285899988419759434547255946882760972781607358230460945710371236973818100142970079053741626214749794523420213043949746756069752858083210699269921064206460190896915703635837672754216288864059399695875243714490718592376244456629831591218096677416807978900552041244827550502140122163047049784931141891425821071194129256712706217149851172501197846991263744484433848818734272204189480524489514350728683964726290189266015621208049992286435608438950444795322921669618683804295833873003507189438325086210530838505355201402009241666043064613276671105385660583774637295851381673042944156675117369490228306272571048836533578064695717851241435122460779270441555622109333056603409162772094287037906565708723799674438362363548528142813501686521961592170475115571374587761441734335281359720554789622777093471653468356239536706998384441136722003886840979923327475750929948260862422586533936710902075665261937795739703788542168235954017841453031756232288377009118726455566121822719061064622557320678046401188728627139877601932429708209684648312388326912580984264647918266079899736542126166283972308820099839986465414893898657222477782808315654624119258683074770747150889982915061980740898684853422736201020824774415891043490143602597761326211829265162655766757171230260623981069294378682276267602721597040706767292466912158400948553104191678322564438072708186274071783409868161764834102087928888670437641567793396025079548282344999583655911205445885362943019534871639203550729273788064688248014577763159478874702162411790223645049265720074573891946613185216670210360800880651049090376269131790808543799288710894722279767157832730452954764260384093094611441697133110099900129866005377247543060689419717006301178302857290733248055532685703365167732442682968759291602486301034699065509713266338827801073437543190382003328703312937896743278920645539743695987471888535003132316232126236419801101228558758456770256085005398594089769307152376114184145993302458637401349711145323080034047058554012501593865711811500508323790833248847511365699952861562083020784135761537418452778615952399472311897040742540518389871952303972527226891628631469618102415424489850790568237288752151603831374989480584111586631888529187629051342556247839092480034287860968111582427167246968163195029498580244711997500116523938213187956765080303212619238960214166954466340191033176492380283139901283147574179754398524686729541512047189984418690658328189576481391382545850023403263417884715542771888642351761823695486339918488417187901393003828728574859024643850674593049913888975502101032477148405453046674060478712022173686274871672692143933345523382256880529200273352184560059379277955995787438216272340451678444181919756564234337064177297464048377917345844939912598353075478245735858126954244044666516469100531103724775151367747944656084224830701753764790773464511087188908707297379098480584088010734481130747320047987290843918625079705277654180096093593860381971832161968839426011297410403599910653103310974430601077928691502889322807825303320090124976209143569549328187076296898562263080831363206235508178143173689197620523390982378981370300047945767584662623015358048945738280473218310546512859871785208410647781546586311694214517005403507347977623215463722603476098105459359995846039952501542418729077496409787703197980535630374517750302801492406353161207580864102247284532059275664841571478840300883055772212642001311545995778673242383642923312098021455924219452252454577605084651656196341019512375122031056624710097770101644430281563489854203370398506783649375884268861955173895182119085216932252498190512973984790967539238850135554270041204747509238150873547595216190779652879265260061503744272079935076189555299270554312899723623691376813861325610146798871308651956662609205812151239639560055729390123725425037261747366037689194996070151852635523073460428336405003705012671589284751314859214405734288901385788106372204901360953493414342588918871243741868200433204255514569105628823294558496227893124313025714446779859410879606824531419663024094367901985061555872406661666898020724521730548382276034568514375661065192577807007017617827182435558988332812491373767334391196358381067198211445184154209495765510504343951935818794519588373781131427220042488436099471041287331181410990777381203236935212849017321353565359000709893738375677282563441827586680066690960100348441764283948278508043953655632472671938924679783165358804499974839932253599782039408423847556329271279551910329196838148600442648411181351996946631289658967436627792031821966104252933902867809627771521857314867500190459142888730560296462251202493320737682773577314092584259723147833285238062015967987938225774933718676064486627424955039421185374004862086060114589616916418351066507756875596661838488414559774409624442231146187680226452495295287320948841884006689010550535494038345643725278779118894175551479719743307016770473477185213871477758690263373695970290786193544763710972825118640844707929050299900627101915685111807589581605584276794004201122358412565165447135081876723700248314256726251742055158598622267934588908535762911930393428396297048918344011948594506897483569533814191762980017325758070013568349598569595618126637760382927906731468195676269185291661027063879889740345196472702761013917095535003004757909073729579931455078300719320887351820063975965275498266888095559597578770918580232710718249444676813269961214299664247090519953324274781206357111450404886770769511756454839461065533137105005610806726387628341803174702561945472041638771667708398367471498861245463937035646225479473358268447271723272635910086036675258376718266807058496847430259247744114963900090268988286019006669607845161232309813312339576593541993542408514135317808690194929701713822346940172530278922977751312667207986773623128060635708073429113189700747283813479740913677543553142436949465293466875766033574409631850995467902456011271715589646406427575136656056339898512645603074037498214942190531224565082048459333259304817009682954445839717054224255083261653657341845279721754630659662060468587178815817101227452173999532065526082611424235661149606905144279470296614514636579127953156986471557213415173897745537382524812393282038296526720235713053112831367656480350642308989604747019140610308244505445005344355961487493809655795270595414536147800638864070463283201235688406688766062378027404873299420571463938310998270812384582317117534981726930157420370612506779004490173967943932158968253725021446597197448564955454241295927772854732664244585609400344245498238298660186110325612802252804800566485918408440769283326888832244559293151784018738507560684726187079785297485889300159204371544365862125386507650863805278667064824568830331402407602854063962143818663842261787299867271268465870096940492934692176450237057468747507746390639521433720212980190740048311550546983991288182542749154473161477997936688653403358533172393566539767277152176585037553328766540260488845266766544920532670287815610585310061044992459334462833870150850708109724500645667147302325235284641160102580278210876590895674267638828584240258801654521687632109675490512650177862634257271949599430059971568795832421854982048490327025043049501993217052039937294226593799206915697711066962823526345540264394865598681836782013152122031674023145508090726065110523117660290982662275066879027364660894016642398120300916598887646995654722431368760876938398036757689500001375046413801139597509122449320579322641138511158472833858716774292630568641260055364342293859574824206217995932338833764112639015822819302250504135417983506730297955876330303938532504566525097290931891345949967459870601293264386317272895572437767776563397003711067422671748007575753163988230127825762814030913299663224492714834580734715687854165326291685303360126867039852797913312813259913883708013742497326349537622182584101877941866800163454674000160151235177224810707926294847539166527050303599123516792341133029329723667163862945648053196428325376978223948143563533967106898070337545437162146240805664591268227311553755616859929261757906048403350557773850463513187188530497121816496227326608996122235767888558547200662889744981495462826843658916753119765894082150935637057924458496080430230987567245232987349004964176641675926758507670589066133480669655091652585006037082902147816880268958564192278047040417835151248002613078591309311413732818963403826771223893131606917894865017587927452522702137612423713196249340053192093257640136965328095629792480983578843499108558046303044588582366393432586482907060336002962038607696138146230898553895092881816299462075874973066682951176248654328873349363714380966606874767363262020970161224257057914270494456750496815134237176296578684103903392136250377537093380983471117503385777960752302833208394536538605698398704986394953297775827543787826545298107317094152075740884953601419415818703561546110013773820898928842420125828213756139436696378066702469068337502999712269975362549761833696070382081773794183424416789176185954442992745532679858569077782999423222575376933084226223362204116103809749529468961588550729372594899603500724674957840581246516002885957684920428189321030302718356525690303826625455220214605711026898179615467340448120576647662305725098321407546728272881656660247546172284725624317328113413754106257989466109920900038030736849258836453968356929283217391749811262345502457742744993989956899013240959666759608583196491430516381890238869933023957717022123975657157835923942009299876480241342589289263466755595760098621254355665988025640708507589833012720807478146890357926625071394239918158345387701097259742034823422055895046159542423602522587484033118627308343766601794898485615923771495636132866852268362704704201775375552894250493999879259471354060743893156442323285638888572304236874612210957756797588210482711276190696734647227720510471665548706951568933922135697926784571393995975018834668282212758365648142437094115168600044430550946813637990704421489852138058211281085668070537592155098412341552487515144305117063740910014382407255517851552482866950713619417719272871230321790879692146442658674933478468099495793499682211882496725941373564943320920989334155826627514780331019323793131031185451802581143993801739841767445700678844674338936254166494608576574250257559668352970883867174452559126701946940871047327684690406882781495881430728345878140297143642240140621542467684283446245522999128013979880307226424936350453103566956616163516735484464717370401642744635135155963902698437713926202146346496202053715652846821621734241296411741634228703453055834312790714444808272601964446636515789694127651119524060037069952349244680211986180598295679980847965347634823249428030440506727236104696185090213597024875281366244041197231813400910971633265326974378643319931077352219255315595698916799608002104041161761052203990620276085740882251152507246810321271541910991644734988262923176956169860429033770758080176973334408830657293621654034187051640017519059382363054851935346267031739164865420051271020367227677186215010534263382174032383378800177181277636155300324152503564256608722337197078302573118154816261378475459742078268929905255086183926900686803394505136903105401165428134678294180317405988246199173702100206753985709094840998688582160171873320217883758507596432990843232772168995939176352513595663813229621174083762852720386358809745191800671426428955883755460706763647048017757940684130239651846447469475938282837115845351809540896525062427309510212649457784099203754290020433650014146382088734199807873985740140852739339477498257533191313886170456085351167424188443764826235951366434875476993536380382167709408496575755325818653987713702775074252276128997595577101744526276938850599059062123027790322426312696896464383027529011227451544406211071038086117372332773226320494058346585972099581322038502342111606815351467393696203818088819243656121866839132526506031943372675390201390063980274157286429632561992385554334049653964627183400673805098732943203401778823484967140329041694786214292002505094846272328579082388498741804643430153060182899106620499256444569469049588550988033962090289464064013753278962463522073712061748277066143328081251101649986390927859460760662439696587272769515918562945102713792809938000701165698211461894863721662337606017156807046697078474308282950928346241675560674154304986337222968797138171034400705481074099082167319231655475850797667224622401590998146244565736954870765744606261865169371106117193630030964925097123124730174071800344827432183434943039738397577346477951179967527850160725654567642436717890018614165213208421816518611701730728864030151763030972679953138912288616982609083580674563206579881298402703472366812647469524967555625763441517972261294834885825130637072916751925501291544612394637570281894207667715330517180610639282442404959098197445199707886196488814009460757931528890616734725635123542763570044461636097897441106645078659231933169964544353149409846841047127901859107562639370413460439689762943382735011387179445884597612665373266313443390765223536618893358117007251584110249961170928822834884981705656476978546680084279241814745625441279054358463025714025057363426093916323716353323789002748990835978666568965319775054242046429785852291911476010619042164603340282364151568265854371286533662143185848981169640424855540816266773034015101159286106794569766150117746467705468864401599365843001493719321429332223593213170026327275757018281880434887110846458913800677980750644602420029537725233583085145791897010163879352271775861019913662404832976170334307124336074022095139882517261235509839038125933339008027757964862379649558071197700416110030535443236948237000353791654642269360502674358032677375776559425139700900395099792119348313878859617343341153845752847368212705195523013078452182605682974967910044730570258995573458554755080925495341517546326898412656685353011861406461054612954099032569710935828598160257048073553859932761683079262542688541533671392981084922354904184019543384202900743270729367162073226564449459684831570779603016563495878420520890104676890903348268235502316391626892411064664683616627640775763383630859210801855247348158317878012136516102713603389410894605132588637559073771450417289580615123527107710953453015098412056116162593718821014417245620767777955788787923520119646948656440996682770879950717825946344219123894666642580657132478735821841986004564844857635397578845952231148176184900589756407320801211410554367609195802135576462089479784764222640850324599142111469915202318834681449371843760267457760692695643906558894991174760019658138061061131936784852323909465098534779789735671848249130696093923708367539970705781960747934207949052852610253770235775241407450986397322332589502238756102276032449213900066355553845347880996637999953398966740009374717537982526917418230296000344363143920950207842432419113490536476727476981875602514166143812873701357147979866861603523182103273973954104041978496600481096031515595958380021357420773262398767351892520187818447184182823579257358589188214113909230538415515268003378795225093007852526714452589087138105340232488207198398669375245915618269306153585219684726488784372178989111134073180457836814856813460048242221682520831129682889911175702746021173231501777036740497028699343162931844216009493954181427278512412577369183976332342928209131869612555397537459764046159333589781003306760588122201729250560259426384828861778082766090959891653411465553859654195876662549313153544098552375592651857964550697395610329151884560866765353790198950701166530914625137805772296763919212923157553279941066061188975080318128622709176455220893081810836814612417920573552483870480794786657062586664953346351347477240722233511798894023330481574397519062474473689672988972368210142308977653080447768880513544593841416845835794215233087271773203660642278467797048394382159423389054422028558980881824039606324119240602317947816355995032886372643302627744487506620482384459072217806902426061676550034461105127077062441489977582062205796088371750372767292435367860538602699532816051798780913096391584367712232580277403070898592464676888099906780638606146439421469224394533310303203007659279741218455770924003209315427447927120557205631535458181326951347395935771214076218409122812218786971146149176461822280841165542338801684392439608991990405029205224285142009324348458728666997466568443492420286425053586681693546099601640888643703365863116773767811270458742832700061129905374650517793589482384026104078027099668567676790985739356437507237749537956704687549477367085231248263904775768591561728739013483070322633427822392318386716581338127788187978264576329060641116579673870086602656935348107592076935263362118675410070316691672363647486697593845556132200246906432248145604387095275543061248754180278557094899902035902272498363627874579903963348828905949509629686425032452357627578248218304587116176614240022570133921132202065572743621594136793243689213439717615334673228505618497097098025887247507410815500455448916205725680651188876750996630848688412197448097659603213208148682260764131205810299091062006232803058952865742511197766271608605080748891162205929726668660717521347313585545090199985556197472281642394391978066970109644191010330959386081949569168260090459905105012708340831953058443197093336465443551982977600692109785412192787507000401691645867935476916322235800071308989120042306678382252900176556491329194983013305566059644905519679437270417333085787637171214926885052160483859894118196404487016590280127493042076442991524061042600547832305198325900352203693710688575688248628742473179399826524977459688225257018118457045368488183196397083991196033949478341942976603418082231647711322112346998184669592923149220568770197532736791831139577555497917033313212085711041810019739848164101254809994780334305621507452984747259283732282928406383993876778098095715802972282362605357273005693705893671977847238254489351090174659047445505624428000087820731695886498319129376588121783064766743984695694245455282844110798306471422520569710464290077198546058477046890966004853151791230746558431010585808952778802940992985655092060298555731572765108376219972039450078444549163899603788131131755920259059662693124605075642770247456636549823185992165392279271482373207915024044767289933380844936931936221866190017500620098424202828860836416043033420313884411631387461728936028134495400634210088027028591930679361418367909815814424672355085294075910104622542377215261460580234327962220750356474168004196538086098343179568251175652160937984966644407419289782006374166704334225150460763650514944950344475462146295543807381475786047565848008556917820614984221624295522500879786458101625778832530119349885621715569036172527213046719401615583894442913364442618151738043333111842664014721814387549122940530778838422653857698413280774750054232769972517556934318893726394550488886683862136946319722097518398625734408213239367659483560729465870188562335729984031041463826029408930767694680724327627616407352044168437772331423618054928574128055204882000279707628711535595085083183352481628774587119522615689977418305062018092424176867448114422889253486670364689401303649726821919630760635098843529021133983614648131579250151359660319813255014126716262302627782056519265675658397572851086995785720758759707915633766631349087021436090007590385222033015963418879741576128025964555825804412983544152531506449109459878436086204597347265641367872057342011144268823106658380860852293420502570098439678669669875442105872615162399127777585849308583727324211277586102561549573312509183383937600580234230670708966912568838269154004665790997196792711629710849346294719364826182952746912199534035334898181900903309445620848662898848987376735880706156715335782981945060499765208052619000130201054468945740071676254205844592266972539425943143118440277985327405690779018940072767846784271616973112868043559750424371806591881875717579823391449833993824117220191651038697290202040166829015238602303706558810696589530815749217683952209375292836858781147439935390993643550218095554843141854139415181437004905915674542617727551033365176649749549843557270304763639385703246678050498774642730058186951545875953996050122778160563440827441706188456985140045624975942692780086625551349470905685206625521717019338537089255331332033350723258293949027021718970395439401069330172881433676969099611703563382507247739323951106107949004018437281455725274182225000590418543601789843056434125323097090040300163812303461553831999868115834820663449528175467237592193305133923343842735384901863022996079353928614502238196347842262330222001141702544307042668745595639867129711682627554202607948918039712675809795107088118916818286343091012409927984280267166427637199127571424895833250031522232739520514815210632239082666758794154651271971346624032851823875065491261876143650871784872732096430656514068248355235334878380747261598050357213610183114373607412852292754447925390605804878735518349651135313424357240157267614307906371196621432771711070342052375679470061014633855748249928575018931387309698981237558451539929885682671124908608625642912978020162390734415223538490746322422126284302089184496844259886136576633216423665396272804840990327158101314671141441601074983454349766092580529868642379241422514024210401975343745088017750759412323499286155774184881390096220647259138940971372619522398959417861310206523278102021440834063070404623656654453908757713182282712253457739553122180276670643121689903272937552981857553066156115150148893837297775989412789406814304864569111470398584630852933626722247352446527237059457678001909871199769587208548414872428397907129397365156613082750979069346001277339989492493680562900543804378680252456167772828053302530259837124646538164556642934623777372205883174190816472137074330060220865672057444374980816981607964205261561122395337318476308469602067469307612232678864543110954294912267575782593438530576377395109306435054662335766324154341782484644461665717993238215290664414549762356659157631792928721361256823425637416368704304028625366804229301179002762662220887757827261296432308159335082431586676881789160867626853544949834839587442447619595226483714824210593890643541488795641836676315306287466038298588769025085163694104744338876344695191382321573095271547419513797485061627522007522666066004246637417220251583400521607818291604528138160027451571026352820229566613072124106944178587409096969285302089274688529527403413975270379485622892067613533120095529650854369686390339602702208084842310187577888680098436614469988079836456946560574354369345292251178036944187047377287538287998937764922331524242474866486966974835856089727266050616373476117991137459972900189091510764882866328037790787671380414969076874231659865283242414717363975624892206262145195181435052424076290287365228448439873207773755519962741653724998306951002742430567217983169366356209383602716015809845515004008505228929757882447658664231370879886303220996902187796968804408257748262688788497704919176053626769673499269212246584891818872219495179109607799267086992837053069028428905110224667334852697861689256386737665381367870779145533770659538369910142693717854932742125983234621197820917006986301661546735049136152955385210926415670477784827762995252550792035919156990101828793635281308311706709264336767531278689989173476775066837283720339950969759620094701535169653709449915729672310741237965814036477340902464987210490869043159693122640153793988934445463456793981552709844173250380555239135559303192008717446568109288066683630969719457935955979518635854262554370063820015585805608111537382835866280037804446956951596604417877273516252264106572799993617522469679407644961003027004141230485239504177229718601190736260484961107446061772830119052806510704533572110771894985015330908752339401927653410094654943407605216667578845706456175372283430374972057100084162579744442627598420037967614594259015686787333239868279898919720050071564147465889978245018341553601515604438919392261504372452800026953514070903383764258661564412875124766266694668740799444598394458456966615956337919164382517632126699819725749776641506779932238174890674289736891013622986405437884530546831018650066231178155251924946102252920789529770747683000620697005293408885350206103758619100453283742639487499464066945233289943656815254133289853164959417366545904446288939347442766234360514337929458316105786633745082672224100744900949249848897626911769872894991877838566834142813607813867690610647651493344849436893394656968217222005047543905802849100209051121637515111536200278038764231146947775137085355279096591563472277603403014550313801642167900645254461590806124356755990839232404137203253292976329531650557854304401818316926296455803806187711362895093514214566452390392831463145318987758519883180925100075046155768597625918148604972027618815805413543899811802777714674300329982540546959917676655947928088570337217575937706910272685503666207340084512666094298007053268716911368450899033854746414078094001619421580488782988179447017371253042169089172470233164324075531057765709249854619345618808116287655951535850884734639846923636335961959514842757652673460594706140174936177260290343668982393844083201021125461862820805779418924236414884539440526082671946964059467091204181541405749581470185963684296178888776548646431007060429259014862122619825204773783557177511076341331780682027235749137978349283298659682489293494395527349206589517341019247470130660339438015077701103239923358959924457669404570409581639150368519665305639991791144560040713944807845304899635621244255252010033289111483358850289382506737696316468692468976869461599180797668769052304283113113687502351177303556109170455335943351124345746349890713432922894662832658795115169667077943050203239862106364268026600035659948182257120511145163758624659631801135679929551028270421182875777381866702468186698821828521879879543119983517884028499245217639098951987231465676270965296864279210651175719580369988204175118482075384900479354057243129770809221699863524953668405582029844169668272614599869290503441684276008935357750181101467198659300628770528384038152767712728812784606326862605933908466807951980474678324893062262193638282101196194042517769909207842321262700025448810161439163601680327476834734026206064556939497322104060003767328829679297224347069917077354562807942784574398529668335645427187483536435345277972425953750872573690760045056738434627312373720280143244099454724157491891285981771525002971642346728223110571383392738800047524816545709066253053409382146786373512081152816568037279606050821080257233679848492439104666605402140023141776145089784115391536895994692277534476768662950391044871006852631598238638217940177326674628399017281919949232777240543785047949004296282835379416036632981564572493411826617912676531177363972663014142542148111598802385458011335172695970239917614937568032932643804373564147511244933441623939734908086416083837338243096460623629563609723936759768640300792885218918090328444932619948980299478928623320330613595479246601812556847665271232539249470519173181014573275818993477081775555585757005577287113732477498949594675659978632200530024729266383617052371959657537767795349871137532925399989530795929696111616170165880337447213724509098926045161924068943011293363327318345307681774522754477002050639363513470575072440387947972792061154378954565008944150278855354760278583125591054320454935283367210319252928758299225709621189724905789795206264143970577818304798542114725371501956143660465473417662194170715821174527729255454117915692840980998496699984018697986653984735532232233724401850344377801739512851648314518676202016329475394073167293356005005653778903162233204723477855291539169360264316774947056476476872081600078295467014173402762156620199433065820580287005236732378615064558699819683866875370748816386285404764249115517438168839184606829299401520630417469388772388955485300088707255584627289644405192383844778414933599049218707536723962999762940896413991495291592215511276913358754160274165692359161501228885906577941838334457959968136175389710472122720371571799341704423715627686520366205340169397301551598393870406561768989958092919680104782141631680657931152576984768711991126813640225734959570784354329693090947110440425115886888213834511648591830576882324405660809414336522611765837845537655465695238799783199141118099853732788308671294833126465426504611819616403462926968294147036112642488168472047334683388273091237890370850157053633192884987803158889632558275351294380745944281357345586244203662253207499066578498781447196031621023182237305266988032666890077741288864542612067973093031171077040601965956540266688230421215444092265439342736701578335446923433217095391624731281122900835201388767583026379314643442481451422418086058267040862322129855180350273599024479494473987918711072857170796860944102600921999426602759610497302242548879493827629037062014065746652919738495239871993138460754862817916074041010531071824688172986469891315416785950940466833162252667632829594399605848094153004862352016282250244418155489028212099573495738505208659286322454217438999529402700600527430238008839287960668518580509591650003334288283291893099383952022218451068532339046655624890551619088961149711386607949624107672350308308778286012157758684175659760409061654645544185680294288795367137943470298843478985254586438901391660786508586652837460167232165689690814826465553639767303319547728889209246603311032972891858723718977392896477820534054592579722506227894829891141154196070654555119083075201700732866976630350251809158047785424318155148519848356744694324243323914306148870585187919643991549312977439993081197168091079952657612064625156194974989966164118776119553335647088675053111181450313772774786820251252586881087545403710507042850810526533492808323312450866317084164847029184771487593685444560788751893176856854780662089770517257657988596844133639782209642876559538110862356429614588010033163263143938239440444608618577418333131224302240999711298944586891716244224564098869053069949937447154623927333351521733089707924032507200614098731853549229184976905676067222203737495639694519879376725004706757209717804169373357404418291590065835854830670063733551720624834624672968943262606990957636831516242129930208254017741896506807388194111326876240520384337426593048547846838085499332028212275067195055079898710443838119153623709052035330310205220248522174619133096433986879204901389283552798983935154619643775846896756461808258085959189440578357535630745174809810581209369553207945836624260829553477924864268099955322967287143317726720396606270293618486107578296926874281522694741493437294002568881807062136380344101113467722010061048847696610690268466543265447439070537175714733339974810084305434752084940128074778829321401280347004831861684828170323909155160188004351675259652761675352846482364024035231738513028442216733854079621317226012024935245576932176292651094466653268705167035019180816609715165718431432833153861634283248641519979217945095388805609070313448615738905936288061564213567460912957435452250993096845750204010546821966321195995956367346129389391578053253828305300396840109789604391447012177340794275907973078468619253192333210591752141305664682023589746692596263281654179093682838909171160052622186734321941705554422886569458530022288078207437410425525849411507595648492566135884249568894790208482159216154138739672245297881096585855859325999074895885836051480261186283187908661187659046390721743549890582343103861969656445568841522759652140601616900289823607234567971658936503034708961087282083692880502997155253646622976512466190239675006236352665450486219149055913775032927804131978025881411177910669633562064559062451241532893370758073555093961731991807677181754710921901556623074655189399340991465863896299108503160429104170599589276064362478248280624925868916258406537135245209119070108578813557948098354700927013292116407457382430451515170505589564499278008383616927515150785244863950621922318139213557830600670055395423339816951575239499098485484988817228466090988939506188625695598918019699624024318765646773913874943736212869604278461864846349935654572056644471623361350725379122551152456658740146680191298888637510215602121492340269835638568694544478311759519009282384019630561899438642590647890542469779589038560653992634403341916144390632214703049337803351822053085891713510895224312591552877350226941345551225973400692125643058652047815637242941226427316651053770415221590756682118794883951686006145161067561489330883042189916647703336819907519019791579568928810345194296313749657644008028172815656889380640916334178486032221283049096851492200051106330272869523848553840159545692953091134250777053820898809039500481928759302221464705754407761963992540535322295720184160787146855611765390834010923571665892348438156291137143993281627186152968079016973704119872798628885529437356784750145683104462481241014518955857061608587046242144556350210408698295600752464965390287992277436492568477454588832932691966002051211497703618102516732797999657232514381431169217013424570888349885849623176178528804002279624741472398808338102937269723013041701769373266657096620987939013916039030324812737026845695150137703841051709126877657266850948145629499112011854571536181812248806358999154837946541683110297674955882493168315832574603986422765687157287700649266839552691400969131183754471603068128364570450718405389715932722570814273377254022209830696106321992701749364268919982280377236525957057115889482368090385934702200718761670968176950498203769025562314522995103213742535151793170538792214756334848593277287623168980194029881934885170393252060488792427131156765745565474254077930228198618596186819074600458764110540183541034278044978652191292131900587308689704870051682267334175597677527918822867020971481971059029600745583797545590784109089155125159412186295583339900644545265232064047608401692267812268701061823928262278373891671801682846520905341187358620120605859979036577311843195923891346920057665618748370847189562571877717903812787728398044851438955458787154602779204528051531004318574304472889446399686891558588470944621239574828746457061403534095206989723186851924516105720599550132947761295613192338828693543471563762500583532196246561593581647179176674680922316502262166400428934899400998663212408870056962161474857221356836631523680699882140026132311515333271650398623898873276777685624567059667657053430973170116548879533152571437702228778058136794063407093139323742930545351125889113183591713503403809521447394696385711349121224453336332936706644527930787006076895976890075185464940069885631605555351340210469838975729923508166619449915255806718141329165797690175968187782932680162573965954374670883180295739468366913894367617870353065763953428269190780006908138739374262383827350526681493000966397442175452432719113789616068739039531651904557012038420453960095252939940230098688925600129744700527606836958836086099085589909592134138082549162469436987939606000795969134741151866387412017538737763976033050735267306065925096820433035365958189936372672345009149645353946489361428397541744283617063703552984052493258156017188023963022934930761957921099391608078526139256482524212749675334606410673700872111398856589683987769606169979393587217499481777471623828239094159878566928628417304258238304480098182521344845487598771785329828225108901579493741891051310601676629091969549618224138656366550051785240369721411146936373400895511345267779473218322420213229646617876956280546510977229443927946993391940013592010014772046706909624535856551142186238635842769534759139211066678910843068849783459677653380905716142179296455543951318681738912771829409418755631039426092074257232270199480546576316601952602584911083238386566055493222778976288580020130851141778752199054052294721531686288411748912106669241087634374514246486560839170249197852093847120584592919297784499434209979343427915899944780651373382304026371384006149671241679793502202399514415845601481750983210076277167787523101688381276222832732762917113874697395062577677850020527307391622109221334801721187877357814273636869332439987578947583046860177704165259426143982480575276932990136790386018781005265913567491842951503541627095276939688359031844544504721113958594001157849674246842644674961925930782612309348037733013053367404539416775386793137809626023622254878639040715737749879995373875241207929887794816430431470065770950423193353229247712541593587655818496820053061832428690208335116856411910787000389019571045842604660217227766505632251204515676824790506563181882534227125037481096362074345092614349100232118997761457767336902100817386820840175079293379296601721525366940398465258891157879271471175368514627447517101680314433239793619410612334665649620027127213657099209118756077316195503478223318420829919980665355373328746556841112431900926560282680922635385122395319270315045123381582730502691359107301488128588707979165118310955963002724666878535054412738684390464550409273696192353135784873024278135901794564210071064534215395554007986877427114366934005432186522881072532909942618703991961134447286554966496663372619664950822066040554144066271968038627171520829699979035183191775618324053656643150964034414941205996662091711093556479385753744523692137825570049886964644231744154359782452482483971829315056205944313476321035747001211438041772481492054051589891396255559477013743813360260278863994213365563083745488334293139469872743375210928407687868802313516507598855796115607597348016942771425710714972395749131642960766639991920230129413127177315415362133927405215702361182845602490492931012727336352141969622173976124775930012193107051484948281734103410434634884866647654291226769145876363211519748872973818552438806815678052285902744999890067624237861718322101905072793040317197216270315044270369995952913197587852988663620789302726495805089022678619921111377302395525205268421962005203082977068930490625696395781770376160558676590650305686441892154570672287914953508940962214668683262819228177968053927935243592533203604097116235546791818563093172527946635002541144161218012859799426633907944661938676969141759735866473774093987093232926000762371723745180907240631373097481122730917120390389538711397735364397271997127997522066320019553485910484447678977159125447552873022628016859497179738616459633362328439333860139945303644785064577499756919253687546162631081612216014282866957120846028134480673067557039615711007933499437639601441818138721341991442937208746215584590892484486325865103797267324833396870230012680326642048297491430916505661466214679700510989551834237157580426159708845839013343162536682273827072005930216971312456321263070751724738048000054103805133868198747796634098726858186550513112662313418676151103756633037217677056343867140398703974586665819155978429426179278260930473912039960230777340984756053951580184915186641855765684089943019604955988456884066968588311925850349143658250982205440653520630720869965287270426685810989931093442787884398012651559763460485924082180704728580948976597802330724050385721506785870941630137760585687646697343149107217755471950294829819463971953270259534954783222437209735913393737320302700591939920689462909181847760338256588407437941873327591143419295284017924015895792303983276729248829198828123533982829805735798769489808047359438445170419517215064670601879152202519071150167895479012119037983996925163111338499570717592288304434237297374049325111667223742449350926761797460629914773041036080918878077475400683379665047129992641876392446985159071800704473817180682738433539901432156147097429041291509722947899257959973596495814246674231607335855792503170405140810856962457539905372033098647598118575014577843239691030813380303950853282598751132390830795139286669115670770424864102970470634531533266603675875968661919832040830755014728539443627270756597370837727286558706952251208300830770670555991579483730048859024278267119381415762952985191614028649765653866299626967400155757673158688992597189359492803963735749695945844810948452506233005329480111019319124577844942506975467499691771473507346766811367087405535422179048082896126303909187876022139203812430025154713435363887879597175635127217558013231516053569088809011673942663274756264013708352476662532852671637872475713463076302221145055221330612574951698172783036959593380842797003497701958575384198236809289538102194874857828385389513849056673311481539511777308780060330819802056398014743009843340575621471861478330444149409258918147106478068672968302001204689723600012931321368202342281056884396963158045938811899577920339334672538945850191925628523708917563503174017240465544571061087157747160109407607295388898514599866003856392058195726810165210160799412021889324965175964667304302756542997423602596567659673903557988764358376856042449666795967130538844458461503885464606353847055845113910576908201874861707710024440330521310854965374266474805567743109893300270554489575583765997360743329619465656203218351976988235070974725454484881166283659736941295322716534342474241369826385505305627395120010479079416577154364090440752037677245572085140486947188484941932074466045209266978002061488096746808472486084484535700967137336834535503776410783578608977848683468095103688813333815771288199522318066129521048618366484114812747588896669222525778259873216599866528388209409883248703956828627314164296728105225303162455910852913315939098262476189393427183751785719505536692116802240238503269143160604989144078071261599639973644305777674302310792082447716590732475913972615865503946704303607656816659871886405446729990756919714561838529176965500349039739419382556766134230906794676810177996103117211062964749733734530868461916083656013443925395229646003958548544221646755518099713421585539138043222993941949073669716258042739853938650424587620919643725733686776001632290221185836801997288859356803238586687370169207199604054287440765114607042684449371458819284498395907934377754237116116335862056724282001091965227321039097704281383791469489499070979978186571467196331220717144823193720189055812598894347249972692093285191778556884569347146137579001622188262469177795342931000638383368650375958258446990691040265018563687082772847326849534970038316674940956195713321053934139384840571810507978792142742666970553299728972758603223481867619382728561393363685976413083592842325724860973140813803639988359757718335960511314146575932621821369027850502478095539601616993516483328797436530381962610147440991765496106649137223887736453104029613542266949112462797953431079233947210214103410364479315327968238916180046026719001151077372786154841061436748629296832831726430131182401652835538178823784714449805466218353735047125436741656461574868645710221422191653598012834910406915613299152984965954885315797703196150851307877416902442860905625272898924557940396749635229046788567290957982305370297775542377149340924385036366131494802392234526913231929629134191417084510246503405293649723072641360428107998592378791175130861011922459782815681959368156616594415550107124172991158026799381485015273298910639193328404720368892225777653163551108703939409290575007378388449004299171308716903559364253980148958750499484614548359843539925838089232376535723675623753853097994791833067189696261075401873848370339026744802343874335453921702167846509641920373379379402750672889444450328192147844265063478594779764565836258442494612347670936272088519068164578071172622473364333445112027064681919599358026585912248099326376255682663927765532751928853129375538741666592585146160023597828983312950863048461269324925608248347610546383796007663797299923446940346482903261770359477765018029075322269950484734762693615442126270945047420593031891937270746720813868560602742420874865686364726154378947143735277361108155425163164953396632772041553451465479085688735745973823425225959163557441552732463814153323983270648412353068388110879155620732801969634153228054531654246519174420649647038213038117382621939353910867583580814447810991942606590212502592339669248304053334070393004910149135339083044930913186331047543647433661714341397029592148930646734778347460468488585436747706843386084771231687317468002251364197947633590454127022989479920033530841002906471043804306730698771167471307060931962520900375013904517536403547653815711944935704626087731223963967026336109747363766739489267398547397945137126343104210052959686861346010166203186989004189968621569138746485749303339291854405527563359012837059317017375516224890138075777611840054988830937209857976060033796640851354206805005764628236814046987561148461520385574503825036817309337667390355756617281260792173673417936058601000186547195850606835181665991071632582017949431658680502674566592503178436177910351600112103069100426382241508996540804537239573926153857207115031556811982336371664723306687968834549370217481808296912895271870332925413212982348979400409005908716934746753667046974610756249280394759304892424068028314303361697884815491677589886943245008773673841678419318247995809365808762484959853215311025888918872649663898307580275925256856910656291597901443575062749077028368807265197640720881387328712374353116172241929450891360946478604237981162448888042031325858080765162615133406446230257502285183013258672025501819887385537374300005392741977034454626204869950569731412204013388446328567107220059217920799721245457694793720942982602573386772044280034347675068525571777184897273593516447702901126555351052236035679992109483787674399647016718293756054253345936467601519919753134501424059811929717368726232013406576358628888396944096467022009933124064822164337255575214195241096495019277740500809742065959445738587780425083620201105083258639343070768533170107116247749994556318220394502718044374923458902320631846074101767683763753399771363906058259085432316837886363432248164932542767227634333645536207962595916788630286894457079730414256270906247052499290695741615215057802799931071099849606709330481990572176459483693785371682244142313078402853071617062339282810485484918027234726522064027548382240887457955697599607299904921210595238018576713972622261852368249352852796734227421587374137420843672583701380180637398288272951662672917939245310971414895330955557786231535394467647924877199272600234127309303614589645460715649160288341750374540719918036690563094403720294619717318302251053028766891123761353763159422044182470213481431123703780397436194290314648622161793820045502452691644445390383571472311359303551614629196871453159288804789590150211327771200274076646616227689138155292311741782591330430326468677860444045149238176311652599697585482960748069786430555251828554980393727276252771715274408211351218504332873695226827606786244327649438351761039756997815673668514031242625531063522762283053835175349131059148491872859720472762303653545212968450171136249108413721546480631193844677408510915193792758127761470267545628989375316473497248809479537139851363513103863850110988509653903316204676189677170755938084482140664150078601806811610152239333010275114198627539483513037043863273554824691950075111993706903308054291117822706022617159798999669039219819473687551104323201935228657623323182980211820632782366265658680743350327738906618927299228229516497926094253834316619721530103901676735604769341536208927460916551313941721290050959659207799489005939160226178130477403220855618952448302811996290369106009286030339607657933544437945803470746213796872846756356166018714132616435143241815246644892112022012601771901444464949366831432705391194355388202289825286522694836783856636270106277227242826449637601191476376194412343161991677128209322761779302027931082174438294231289773711790171019853502100631822413192558548651618993737756622545857868353134278257997288531033215344964408876428793193711726705465597724159201698672936648369080422978264399455971763046576921744646115827128393905238773422600624407668004685633904333216285402975070590414455611541269592841105772455324902750012156674426781668194073462093690744434926773706347470895125621722501631426258952377807993842581307028273233149278415393933188634053026704286006852880137145229266883001201142066288268602595309576077797135941011085532417368645482210882644651901701824326745859094890507823505148231236418797654283175966485757563097880779829142466670347379034041651569951939195372327483299977882709898490277510265280364745033133503939312914445084377334210061935708928881063174723074429567979040773747747435372407131439992707534006018164835798959587379366864598039540484160618623065669472896713789533306612186947905689929540637693547574514325336384776405827457901810009217190706425611749420799190007970744060789690163674529378044508440792800618203706597116991951551127343360558867379427210667854147440637767977830749744993913320523643335142090684053240447915450638575009265931981308369582259204714552826010231809810658745437105125174415266851044227858400591078012286658858474460645507538631974403847433391209878511310767312669469143513572387511019285298661750358163711448127030585306216569923082226491371431922539918191173530698100174206903508369972937687677757309753525698511303209201841487986925036378906228454017991012852871308290975537588412812081226476611141753068503728528322634711938505007372206546859966553753087369689307819060282889294889721327853833126442658209353592839572012808965276599368277502660986087341560919357759451823788774747657119256189424759149752869260725126156999615741254909816424098289889269027144861518327847010813737992753376465207783101468034225184549947613862277876121175231582297702405538438497542834986863007106417332700121217722037393577624492311508392003336822277322134712854266098135367355152170218859884494139374611645538811154002746086183442027168471264688734691363882853924963830199813216046773552727386278961256434757438758475291024899641421318143175154818202157400197255121658691534370604804337270994394198319801997450174979088868964633772131718842349738559056267358553645497077993349763831676284620582016436310454619961686971449959247824505953482961891168719589679932828511635552789454817185583767889021522143466648289142671786205068649616990083593560759925939739821593339642745406335494583389337592858546481662541015499337129346711085733119341000068465792589325238430491436371985247447232515608939854399420967192313132627004003940875371565595670477463767906214949424835770679326622352562758113451768287251616781786764014038910633863706394029859887135526543369943229737199505751761549163326328839750254043264221372756869149310250664927378574710436762953462809275192307123094583673725045803552154933800359665100154746225733689698482513554262931859757472468225017406675250456786475403096827034955636171353010004556316518810770350097354573617947563103249435965027281207998743489040090088549693239176363612858812996994178376772440125492639477391002723611216131483571711128660739957491599469073368017898592237924896467614405035529655275622965666323092599992711625199858218444595834340388731179218449535059076160281408421900442300184009100618517590765808184061017442462894042079001178871979511432518377733770217901952067772557838267135759190964857664198802619885562075689642077577499412750050074569652465281303838478572699137072482029720076491079052365359774317541256171244968436266458168027115707714627171566473098544328131941422184475021511363312043743632915977151819510247994571700742737283492200807556788284856022832934531143865297671793454321941269258545773325887362776076883903383595569788956816260120884768877644920724758029527932404031296968751220073833486525727648524040326772683737188933939911891702572662811124877660459158108498891239784944532025684844770884995674117034827010863961573153412746920577640423337580880906192608237504495692867340278350352452838381579378709366607729191148941570641652935661026676824366088173724536793032872450025337612898113516092530816900428310023396217061833148541666565440131945411777654718959072951359718960685594593452485675081895343519820268247416997619393556302741318679313866862897077081547567304621018881133004645734172478910954350532958420176702900039924926342825422675843172702417191920677656702125635708346640758383854180948698743908676145542307214837903644163060331859342515967068690202677850667660385458894770966831025104239350194645156440272265442326714685915915890603648731334532868096742582411810932832784397028982665488960532949473886165152315645600550333471186303628437324362405205965257624269784727339807860222773336723434641740932370025181941842541783668364651885096334081997101895502581372154284741031258929386273939672704045250575520154211858073182126938777088074523552498046253229480978778735268347891711313381680950912604291651503779988078356214630731349262983023209064795196326851215590805267712716285848193817288788608402850900540898026778178222193495429353619337266373598460437172813580790008875883013361366354922645580059913698451391076447764269642022885282073477539293724718162209168864623468666873509753632535935954907497265120396463489064613771335240283978998751289886217267786617686631932075725123766834784426663365667216303526271116145224253742828333526349414914643448000402768556459394632798782331954785952310971283788161525123905307072898356539055751500604211546141949973846761043546056102263917443871233274297688332608726481364394177527054416660897045179049454320235532140441834941947443091907214466963459129977997375474339079200579485285521320742468641355246569546891984689757233803779851417830200515011108591295811701282642367901457264486848930903979844554153036859657730556697108286914162789243642517654704010978086882523308434005477164191147962802298320693735451122651964863067011205462741814139144286614329987385672333556575856909856470299833771530322815439314354006295424079250116707507444877648698582034837520760582641419633080006081707895501009965918525168595547194941376156526254967672045603824691336865521366322994787049263248646309964093616172881846116829304030931510566331899985727146128123466684030484630674965343985207016231746401419666208004495779032319479123957092630703148707150687831038236001507788504896485948081263232996003822914101240811176360005050605713811014865673769389858517234176908639670403195855633959986875327105528220463807510839635226764061376532188673582342198922611199391979953428409326498926974328364103641094365359524615031259528565566469997057906698401765646295691249094186823633144871356963192720774061737630169005270442349077518305214879366590249026171077931744856232752395397461609125045701897205314038911376198685388426457811243673201305436889140992347840355580095345535382565164109595528297647387454684336102169725651021983981256341369914843946930856674658095614929434948004758245724741321195913613712306174667481771157652272679476407463579102223164582423810945092570546826444238195309772520522057210027687305656475231881451675963514137783533898896606145519041513624137633442478953657205070359798442326202690424817015894580379765616949312872188136920277123814195735298849820437211395886612174730082939633260348237638286263053108757993440069490596978930778875963782746986225507762340218385780873127434715285953303299536254938742803205983711999357936118649701480306802693919813026797133119995349867168934654462240282896991122886718875229891466660794608097187382398392586490718088769962075562975074547224126059405873012471377596975093005330547128824329289890665835134966843534564104877732585445509972270328185453088411441609503889544064667665713212063500075879786508425061666686987250105183285753221381454868528201696396018432612723911966234129170591151581002844647854455535827078765251375144645621081560691028754951046609373849277084848482905192338535387546082170578749660119903173142170519048630867915501521330561195330129663592067759969520130234383088927222308692727144799801921355450842701811659882023965987768528654049072951715282559557411672739029322595632985255421274481636438094183035103371589908275705041757986189084523280890015992064294399743506554994093590879792002930013031081777077037890558322594499756037343430562139212597528238227404595001570261075678790547266329800983804483164462637137866576050900267754564944691945312458988922237842480304630124396307314242117270427401808060793608148304302650441048293725583434326735632916379561913873703908087162749292294441849036085018931639264127828305611633763739341915361901211376309942754130824299001602389123644275819803989939465774176064634995087740204441045025105312211824520604371851325752602913582784929152846154868061277205588188756498367956709968181137435051085223314745821878146772511758905904780235993840176687457028463641080173083239651312214284654776963119244871872947419427294155887834566811634875100998676735661108115491799762691418147234257545984683815842438610470421917015634772669385370217064370314234877556472370511680180333593743057392248630604489687337831621597192742707516251382926098514558511202163715241180314323640761043547963531667762519056719223308028889108584904655105840028808782724031626761066289065497553568402704030037600354079833766875527830834867501483097404207827702410018529099220500700906376278466844875585504149153872846952587671628752573686604082972445826150073500263643370257271184199393207121706398407090590910171195980543880795725152549577047252026028462769795067784608019192664416085163395077480526409554329138746764150031338644138963076574511027106518982846670750438868586584145058569185926361946460020768455064171816106828348702593586184026050742401829055214441599249174239071151546765792965292839136387930991220879350827944231700833172925083634694763096171961015625755411321147381072171388811594329657065159571728987627759558547774225514151485826551250586473679531064267032910517524250627248254648919319983045393697378175044499125718893974258803444991288722068142177400418751155751555535699192074122464691171196434821860426906296492912160819030499784609467654893878872279005290190626619401160891964904147163667918132204478406328990296589118942933275977727710355809529441019687542196997764068369033268930451312035311983404470461452935787402775225285106790348335870859730645600742157554291339517348023980836532414921921745764696041512788803691220452068573751256508896499456025632469250879324771972147355330511358406475285693525870252588040694616065374540331191619482190257923083720741669601507286602289797276451843809629102760036915857080651700676760420020168168876878294384472385594862107113169789276423758182133946403410075676022775223728822573659522912045009105359937681706904661830691491428752411078905057559680806927262832235845695702070718540140141336744266428754225844213157317000791924692390645999096779902990711253508070727629860501367361600423473357196477529449492011988830984721163735726002028914322206538894554517885974352893772333411610160890900479824825906111085097525092136922126547301706672318094569900100655694528627904874888263132483270563291445634165042714743417672495294656130495592096400371025034671326333700316630915622886219627873338254315357674494001367121934878495825178636132177484448776209225019931005979363296310937168433229071590490511780749411775869349964790210403743302636993240472449835950728689207497072806314393942982216031321129763741785744355874326611294174721195513284675347846381321605270750451784065550038184103691664110447443611790543755316548028762255213589992136720492827780788206782649632074472827051446109856836460547963415858823570370661729123478426660107060774192204484046319807607907280974595625646826623137414136103247334403487272168588373057477755167244374648337378629536552884680111993745045042115616761447834764226640698743080065435294168084456660797853156392364628834690090408706582341587239831548385359470698032862988005257264003717551257098316599980533279577718335318205386734866326397336736328154763916171902373959744709970407178746833135562158873684960337222042985326080869214966302188790425956327132710460746314040097358305329076523152506207031189369115994930990612624655005418029578205546165746917710406402235890440444107603851543239369247831264319866719462598200712727017155339415354604235009610392944439487160216494709496019444201341602317174491345448703228372145653304058893383558562793743455522381746563244866014878605123738832405207436620842738248567379879420512857545425149716131303323958776687647111477057609645804060487374461767990942357109479074470136007796994593986693759470795800031294770308941764098505333908265680454466549646627303668188720576467835696220250498220322997747636803061371855363899976214602518278588098365334717765167177287213479048530246830610939149828329806044631233409852166174495177556462389874133680770923626730649999817505094992835858191521537738754443355556149744845743272990997612998961364709078538054475821109704245326701921919341006672865260640961243648115036836130684760070219904088331023722660197918317509958721444308042861990664642882803968992669414215956917450159660583267356438449767268851735759354719506066528262544995723791731310824786285484532513084183534752900992778124245374200814716016944179464598912063388519603457092922576033682703593432541269081162595856872985246306418930335625188579339524717454382682282379306220086024622208355903511400473144614208093237492102581536980540097947718480669492558685074434716001860822101674191034735191086054075965734432562929892892425827577975050363595182639481120672288129975500821826840379491942082244492612377127990950574020862237577086044469276546909976288443042233353001951498342174371866910455234413508471532066374633937597142192364704698933249356261113742290368103189997701097180129074291790899243819022604003369698808044069583674963375578363930397225368119486677412786610289192503299404732594035302863926097229110709542868554144312897220166385886109034821266027116695966424731135591465450949320939841325069655019861123036350767903383579649302910736764949268910443181198769769605854143516005117999895820467531574040199222971432983075622703382997800047040539989484017870504506364990094216516134142221219835198006945259414797351190129835874899602651627161590971556921355870521947307297813840812109138349558319410930329173798113280382368672518664513551072200212856962501520071935488685152701844709572088033643642112778907375275028252393526600272055101212968913389022967499402226341746698507088987426568023161324218479093455885063179642679628414024550180049688287993028060415129578244844026317405012539685870388714713100498682982374639597776889911713886013062294961920279337891456869007270446033779766206877584360983867971980708326579089146474749284895124483639492536223097854941680193675585212549007569662979944331275031771826752230587145383021420169191748819133601320283321364436511889964451465578977783141268330158772726810855632318307624782758381666758449884011900125325953532487399682814271065099940912918649889210829038838984501124938302620686411465009443114935664340902516508132252388808052758492339704314641691584661080445817571210414103681252586151042180855734405339205964796784067229638199757113321357741661343736538189756192131961757372254420052628568485181709719437625296457019560992127785225700036638381159227150234859204682427975855112218328620113383741867780118426803355812079288883634098906786809714344543822732411457541092981581280437078545691002983930931442574460385531958387985106294533815112309445248324332266819805290599608482381930518184923063556019362676859435848067447669185716924733115398170142866376196906772903380704155836863311076944348285996944634379130948067857497404716994016074066006716700520686737569746818882864951233421210618995225617001116414820576288639117751149986993380994154194965848905811905248132064079731731825018578703341569352002971699037975648995073730294850522900754746700619822159073351084527145399749376262791511629135851947652130070694579543571517083596647068423186109004683363321749663284479299506730149439562195546665821542918218983537178206233499386389782743455688332249521184629511055387013282042683823445379464113262227575992993925812431570125515813462132040648268074389352717316807074619426936669332268418584814794602252282372057662835341734894589152554423975783284545866420804574223000410575920162730132539980721081048967271085839718919013635130132868256420864097903244525067688229389129585660640693164593480753224311505926011821234038946984522642746568169124816789488780232365732029139813746137526655420268214949565107167999060160627107977393887195262144742142921135530991061528828894029852745350241542981103738931283990561896737412329697104483023164017119969974907342742408250717151718120601298669966722567571523255550989696971074556097689939328918174858116044997025069928741211208205041945450601547575420377313493562761386044699000194925360319465108315369931687351321457600424298153138653779008029427476610123497111493841309908958728685656210692006308851494109067807523658426892207200000162930683964320096791738829229598262895659297379092487966023707347372442385722819582294960656940556434804608351325899057378339647775481065398206486412309449893532880051627477904539187530517995444486659448620087663027937062905978254110132341849716259078878439079675402811727454182813128585854529258515442236214414305244495802285088191913256393982868525239979415139943781604758120698570652367188406351879350705263348996679168877358381656049197710071165047847474506597346278990335085811904239900633090472701740486211810077068000873422252182369970182275501760903687380864121975921800302170700972333841628615263496459899326160045051391191291389274244528246605558154879127015692993172641493661715686946779684575490591400372725327496552552797452879749366769197459304997666613375189510452451164963169689767010126661294444547657641786923714742358687359703528690239643824140053179021002758705908167339990323164627416112568150692166165274982074858773570959353583101675030868568941121048290573685744776336962305714583724134474564664707723609588679193306101236231508939182081957030432747839448262564923771419723675211113660283852748980996643152091045198646333633015206478585884963375757826249417757928529494471322689923663081950187345614600017024799765347280662640888620099028680516238799723839269564003158527959164961218775897273245873717389620273542012004841895601141621884621642290946745758490599785865945528711242614993404375185728491737932534488396035937700862217772728345347164252852474403314831687680717481643948303114780285199298541392879572211944521060916037157468870286165684892046498864753067728186719802112987269462215974260925452593212787591917318403064483604544447108559112754124604001986954889243666429643936530980022972286520510371248902924630448117145539222427541214060627653328386138059800511360813671692056759753428209545196965841914746517050595777901790455747078906052973707501354972220902096074469175102286541852380621317010494960306611218300889867949123929640364263769496893956607096646696140324648379420007221159944712105693301103208379937747567173568714783306201345524055124188138704917257963620039849131305029308672090581217235653786979047131698688766094451171229016536172056850499463727929996840020451781262291214159637446125952448924528213147886966757190836839490194065826406367565161447180301946629515536108996892120842232486757825805644813535577640061108137793819112608110603372991297890359987987284816042141934414839485054548124057497955130469966147511718020579306396319444190457661702418377716208329399385524285293158873183955477619143402819662450502814749022528523958897636845230589739637106601954313037883780878873378537408082120198361817475447261708403674299045109667120910486853252949021172838990645208838991908490167639897353114580476850530465524225024175885827695753184198626193353128183672630515925738888622648754327348259783204400786612385698232064970723939647031922402060047858472340699077566220732907832845790897527384400523339002490541606808048816786506191617566813277381821588010774080384573557923818205720024373038585654714502960305621058919091752217381316488940115846944737062890196516317327569040488229341383095792368241492685382716440049377029585558634501522097942335380176371574685733957478259798466596514982874056469156913926232399657659753120779721734935388364813304891086050234214359859012396985240500357543095141804304765307248939717867722277789096305480227850404243513760347021270569002940287632265201301030096486081015786397128011669987522143474415023667109555126979564680076890470229158566023609639706983087921813930549711347093839075755536831612311495199200958622809997981961695785192285502691820613482279908483657172162851893683411309605233286311189709074698863880625549097863922500517954268180264821729323084667877688844877932316632421560405795831432287458809935867314959284905315742248395454725297145271109751712491085794674425023745371778537120676053804473310819744965003420824600030975500093577050763363189125142568876731338538096251456682771494333996567670605313652486664210939022268292169790767583670492180474654113766910779759137415157291807629016163770664352108680990643322663361099343969858913562626273893926906423798670821859053624720285600140162357953326786089453623015595835081109642008323477339667999804706485023168329949199564339931833581880218747601590442234448864598061388975412466161023095953407824279830832011455203297604160559557745759889445417255158140402215558268523291259345330668796891466920799892261485436819787434475996560801589577296467998192182612109157209989825748048400959391961899090406105769215578935486922213114810424573595853199343283236401007403937798235599117004609252268404510982590149102530100315876652474633796158791261275421908886494595884149369545270941283957058571971236105865858294596922962156279488773871533067557678670453427314189974699599304313786388030969117215077477314451287729043723625484083315259728626668570853095370790207430214880861507712184899633460555437418134768633100853918826848583282248728462963599753170036667487053830846021882087191698835176177412911794430061708874789869230449165822252153637454835509770895952549467218334104061296013569339841855202769703029577468868787257328730100770436135541513905102364870386425772447108636701157780528988797038371309787590064821251369022011720042968687740974916260670226313453454120354123429914659447058019478762594987126016304422390996850199096514256038678602683701419925339218876246506456534247562389074176935277145894369394867831612321665969923611445552284328759524813707778153103772699045312646330333202190084272794711912274643310095343289968667687750653114803232251561396094577441227072735825730261593083957277396549413927996195394088324089225355831921411290173306770028956851168441171880733668934694439643583398934344933578001691877045520763778325397332193308610813091899788075637999092019289460376209185856756922658154676962652291705311178777237363242048006054557551021296533249031637916512044099937780711754452446649158771523642724425051693047210624029217633018656448781477478851788127992027680025826049449647626585755421447755568737019984175001964892166933674760516287247298798154393026288046934867629541174817035109412272361739160631812596861823503358630022253727640793029097467216522322656419097156904729935211689164909225327547039550873970272088991995511794365246168951558138324229213907807269743532290003863595556922429398690553088672504359269144403451707185781572647983693459261860138834830860584730696813820099654943120329272701007448081126815154395140885003150129748556636143071478355176104559928062214572483823310178900509363684986409562490418413096175848844771942604163864120580680348825484909632575220379517024535165961032622605353370430886593207786102974269033158034999143093903671115747520680950744966612640252913850572432501966789335077541361536195698280344896445642939098260785085398552702847579625568817840988523526792619789503135801266588023366252756991810923583195448571778272252842821622350001444310891299144116751919770381497931900557060929094547358398899806541133602205420800844053034780113027549791895065986754858828002311669470624162964016719957957411441176204419909164452730459794505381782689761356770689632808138422248667372317833719707819067246018945625677458284753368785246329283495869645078232167794834255836221003594495956217425416796188719927496636282843507210980300652116025817483420375617316653370921226422881654418053562069606347783438855827459578841509069112967375064735547151747861482218445238044103693244140167874752959802389913519673171498356809344096868431360196545333150201558219817488505099067103088534290522708954063261874082638070568735336071896653940089881843043369112334081033314418826543682143249806093937281421957093890058666500610987057102928290178170111744145713261582674706182905449973560372634257481115194326321509236056788461074353103222210681610670815788997596740323803165007294401057582908454471434017636610971857873741225641831305735762743813150512322345010053589482945424213311917507911950798788393431398772192925738273223637977243821150582974568858451826861578833827661905620612649175460945697662253643600146412734002053805656747971586189520084315445412473079970266661367577870127458323765998092762999000735580833485214244373039914956947918292799136690863216219563806057210887963768897926802052762311947197648587847361517777996091687501464223907123509956585252690963401197874010590655018922063879517886277806384040974537356818119706737493771775197285133214914781982299983620686497423842061068169396760306209286540149020891985817902633009256444921686595333147838484530334744089909149571436168396700355670629002513468897903158278048301375848349359756322542193966381171930050245077959470599068241111062616402145986378172393368623882410165272033485569203160171081300316075769963533628334148156616365640541603897142934186979453053928430508874597595196627016906996136440936908616801504489337780493681417973677247773941294410118024996155144010709740170733115869193212904253142616275526430552246983210042110250392963910034725349975273330843781831332075504519603991261553120865215037601926906705360587096094982808336122273697648770214508463686551059277137025632672544293789119614856872378969013935392605810459594992789412458617575058033562691797208869058425648902217202730828548288055639489936616290149190643577057613099607985687173876292898078894728127596360038660778100037069759017934096586651293627127648725138758468861568867396436685015379824400914993908293439346014194214993977086969907777552412118760405396845952761827469197098608929702093626253649278151993142107945969764605295302927193112572451535172569870571029855739320506040416656885466892194119351029257913570806961650781014258045105749252258763151162065490600094606332059531992548229540592866970079697242075598178354865544814693029893777518731026252928868124433440687466713161806133567793796680760406565062109959672093210354493283141403340485342990321693855975829994850259919877638932039327092456667268137132284288360168182945368316310690197345991216292777703786882267002918279663590514655320005698980202044948971088178144386432971480270000866245895674252132629494088057341045772782542262127265208476514626981481053724132620528621894234735465833375735101357444625426528547902314298646469910293023954650015292768055592468367189898742298195344486252525611692460231586665057669586615159190742498430602752602650862095716719973933444786266458490453740245867842434191393836331872151192807247060385159008877942943775663848160773663442776483972846629444670253982930218717797717632957738329226034614864875285281452929061003551230617836792735489348664153133076004273912797609022423728098799488938202652283880665180439137055341280351201350683972818380046118450648832743431898879847470562453318682287933746480424044229411440721934367525660464770035265656471066087661964195955726019301380206853860411739031592316909880374186517656724500919431476111952599102546596380967378365201636571570304524812013505317710778902118225511514315894582181110840809651296695452781710472419062314139346218498220372255067255742216258129934607479299901959673334433296565792805393232013125113164169940930414267555378923215480876672020539806202818238232387779142037428556008118918084047740158147199505794176581149509635685435981784615817319120473755111898071904286146589561517175161310415864576896719086159085403167559504428413083571832941351796599429480741519147762133297501807008433630422929844942875155224968627856739415526816250411680173320229867718186729704299388340764894801465637220787815212279839983201620695229093957833431734542122893678028957233639513990765174345979630215016091538493743271856414641851341674799881667309483007441491975305162769810153904756054097785768656190776483541872499000426582092543923430250409995286598109149479368057951189313118988986811580109252394981755310508245824931605077860034716277279292419052749347937142838969442846482048211555737161590881895766679493052115753354352619643942097867491566395798501314438495818780961771072426840604947278542724525997493576674023715240373325130687999654219935972783498353985635579320498825644132066742726470264214048991975996011367237184496974006187254416198043667295039405906353666224562720493630318104821464075359162985882529773564441563381167325384959542784875029805774542515899287553977177942898920191469183328621218942723407872779731949913668924039870913345639797101455309554416889195479098351803866269119013858657583598078974735839023192448566053355915137472087466681733527627519675549358818094629316684625919490398388237586564181926578941309315292263205451121101338351977574556017642006706991338522951755247962571602693866863722420220443233913082974585423266593980232058330361797228185461222970538758714652744471158944010582054874926787477620279325650320813833817297749271298253526587286466443787280293910025736657357911178169495449223999175484194540028883393816156649249398312361547424907446044286446433504556947789628081695604022717041951101553338145376361118046391902607467510856027234918571937932491191082314601370764748801856446138414093200665949759399171422031889744440674480408527587527482429819349095234010044222726843825041497387573901555955417537870062301297607934911486164086789444626341947629784339772498456167205546321384460172797776328101568051641504460875776180363301791541651991880100523167652933447337644727421989435908185511860083753967671745627198799160492803839575251504517710405019482199940258290368939765137173550784819328868142990676313197996651494897786516667033771171895049019843501362274386996194340424389849131177032583533096463122372407047025983704104343815548808536056481435708502311773699111638073544424582931458827671889640945922143408747063799915459577899776312507507913984027235394471180295886516624495925816815154498172149845848876698195530723749990737138041782766998770555292932446739980335888574244047963095762478285501770564634262944300178896669504814185220401390210131847852998087766727807553377990676355142080101074681954889016638896054117027313842194368186683051286231177819874926866795378222185838385093827161422207003291311202552455571405044279585472833836714469412778110669093575846546551594867497225163853988297486895481828935806516056504989715487455999423003570594320181358376313963717019409660796110220545002254953245145904791149909649256055960070726971362441710285697441184171334568879397221292389124455253386005425751913057364683123154807823989578255158667322419224733213178170015748143814613087432954747529927604626705817873998498101030221877306936379920579575866583719114546459510252339708806499890012638371875761152468874566784807887887308631218973506406488431989927097175149417935907692698532760766184657424290876760599317890667366187604018009850774944102055710121592149708580910215415050873279284518311655993566581875247080293335727399819367422738853243403034989128764328606050632988581215338105358343833048779312129852114428950532037550132596865911728946917050905199448187116912500263783612496145099957628748226591473177275083970222644518111956362353686736760654870109040780626137524388329458977975513498182192150870931377807655231176249998423684172505601271600845029125832095652779004041373195435956879123762524754956615213372789792123410164624069915567771475409006314205730189894571464413279949230871875186775975547810536559597533631645425001170839440901897510730788519621508313159750898090038427733959442324961533024352019394071724293181127589820452199489371389127219142669217683989832223470210613402014186316902822935942361954894397009578022010383119079875465335438609964890464888290371584472904302931158628650074446613643029618662619299108836445318994350201069165494666317685127937469572546805307970099310566331792157271731611655360611647964459724359522560093977738449669432273984780678957788687928855827466984649056612422264977016163661978096187527787380655216550324314083460041458075968808207470386106102389303884008089093736293268800461513728191318873095064364197902865513364116455718531730920418896341795036356891905390680263658486163569856836925640429038053694099646855825579368659593957919736058685574876027736019881747884693385080443742982671484324998786611481030004569266583075659479988901724864029538980142619545779172822841764737253837111866205731673020951108177262257208587494731114465077890317711691085996594256859442987854437249466904546631277744172566316958185750309600120849259808647331643799504206869477910955193083637847024113867626882315624426400486482562244797697560369996011522910118786808302246841528454534461710325990578584440405501603081413438705615299300770935885423471674670739553793628807149959043153558496027049014130568582962254908813559369993062064168453498491049330263013010246636441187847740670951554088171379169201776459211313746788359456889010346499418550680984576468451930079049636636197614528697013943403294296546536231853693329871847195644993945217105031230142292319456403939287082773180080500941088516137349833150779221618876845001519661313549954352557178733451189436908617887805187480246347255021743710312356061619091074081042572216429621072248354496894486656374408122537887338086500781795514560478560112451293648084630198235784652905089677242234503415035324882155924039112325019458696705164295963606903456785010873653805863504805650254869254064899619610373435854310586813639786639767172788361863456967031708642290258222102622445242531811802819928511564013321105922700679405646228638779268404631856995524609734087430521122965767391551902836080261972166661881497200424640845548232315298291819115248916067307213346954705471966303261048396521275732386500427353762199882860349352390193348824218040998674589319601247922575189507420200787974738462581894974992950406512900177017900489557706261825297595170821645296767840244777301550259645108401258297378590782435999999560438888235183583136931569267950270962297822376837381586009045988065991531050826358883960305336433948447025813462589019332627534219665279929815784912295481030610466063862979898606860503208602403347416380383575349813102359124966735896576297792935481115507177339217058525413736799295396292108938593615098566077598271045804603778542247683798649496720704018605944838216128516670696491039462964690882566487006838498854447311674859183866808654197124013892015661545517479945246849561699346594569421821608558003266177704406633807299518397211530631584242477162242454186953658054646167435982351506875582300983188225455856496590034914133858543994800675887162638058098523787516867061364908582830248034799257475770033833921361607552434323064215387569096481154680870776373190921762651408670777005125605205447743315468566972433423948647749560593047444830499266831387872723008551695358208888964123620443374524952979355851090667259455482351220535690730789917673780277169998611238032563089394619624293728372695594518041217116359495825013711067888718840975291060855556098565094570390543926289601662509145509098638731686843986347815324822984921958468030156476735885219886425293108193399751844883056939933631513920902960478344245669096065054452863643715816850604739558007028932317871132891953499145049244562398384998402081820393811359860681638338759183414063715614229808613201792562036479207224705578792758453700970222479339867804381151538185706373550639675081035633526297944044581301645126895006022444006984730942092730547226657372115818945362395258968454866651250519232921255649735788004702367977384503401911105509397193515471490952221430193941563667538382025056066735157586642584749712208800592620010001086038291582146859501856846199685874206589475450899564983660406853745633073727209449280626311830080842590277567066932397845339915462709111426104141418721952522504016749701052747565168501512557565401154974460963121771364487862255620434451582938678540795356895866706520440987428727045255019640019241627136284359833310553406488386537187835622781677484101151715239811053785298411629403028594148247673218610734075129432378367781345679666747740060687143799842592794756332960702583907977280170755408359431697592354362282925902045450781519890760204289565238231740264586492949679304229874126980632886707779721263570342826457460421511497262990324294717245050884751011689717485638676179294158928719740680727013137471423119214695909772632245705987913133757692374037029460249071423305818161137217976001971433953091334562952048902543218850025219538242621315486199675755794056818481520502251165229347728564299477741326447046207636871357547804011273356083946955102338478290423298532664426690224306355557831097100564599732872535906105081853471805568332938982433089766618592405626719240984772251077928291421380961987453010887706665441776698381556402412875527965969014373874435129785286702250470248435208963014802024321280671673980942784123785430363492235248621836647803743404275809077450008245863552318587066237601032972051661256312367638714667164554200768231741540722092297515962345319620127625092341493214822718056317587644812743385963168943630608324374890645716798909538138414470999979488027131975645378005853972120508846296378469150489757430537825651464548886487697987789155412614946499988077437155744539807005016336848610422977259097140541507775055101169144081540721894519753622609170730312213813866704399989228327298224108422328239736619386618488725406259119572973970844569466598784324455859603882133881494217306263293418045984202450793877444486682594469655394456863529635283560345216228876220352946682809772858932294227208491311870818800272744415408137568705720939522772912264943852751591274675324168083993066225950391234345747885972420167167275698078356142923266323981935251048184369671793178603299721736739472707671037115288714781784990110412978337973399416836449490152369936990754843528527531389249993009185555818300590858909503049180909915731514013141257942038366352117677505151852789371859607266345980574426694436421597339171916374710655743774673791873716921171326917225565641717018195875168519356603226703664363091494024776834273916318054754197636034023424552647829703083716401688644245252445924130821112133893912870874165948724576123811093716679966920025160178798364211584788668530732540187988787990964930378101696316420868031943567095287122878284642855593361579804952407928174904480466364922879241029280038193673540868974566119834329916465224996974032458839898958726683959052329921462281066380460474513619129490110371314623627027313054561866465493074369745196629103780762874442478893035449272980163445982860859131309961957557774045741552319681598683246495074975263744499962169445368510997979316236909273771066225964370505940697087622857518325570051366559234071976535687772905542965404306650057855439426462533625700761677066936651235611823378100729685827361512275068572693587459627881399451749821671563016950388561572614084902888723977691068812167852252688830001038846447687943683126865214024997729680485552692725870281012004201908365309099403008234310793674570599222183394849345717710481619695528203150926206554298906003652158835330029191651581122828827254568490478762524912957068733653356410266909897162522895406810108740278927681540006057704315382628252852582004878321105475821328003922522181136964796955421939048282980011589671458998302225638115785639439886210923187966478049393401759283906272927300196081316637401608793135113605414450234172382040696619692585100659320317560838274102199070963567431050836730463463260099043745200048415502317696398704523338949793304715905708251292131836355524613614067179144992289646627683501708721333234087279177460330672836809316493575221413637924262834145340612532821495940187451234034783057077234590793767217696777395415263132538787964456929651526415842819137072230805578784238126306463065586691727847194589795732866306754270805359745458701567952690246819255072121061833257406617084608054949151887518648405197873283526589643996310901997857047566887863069379363304120914968425028925469352222183821963517367240398734935352549582843563881112778281585760199504808875460547493051099341264045519511599691060627323411455430018033340418389584415030413460258575012926140978267774253271485487926291970381805484884176269147300761724093069233467038650835195745204502117791189699813075324780550890559301966707535476215938421161602319179801640563610590087359382498244101798400390018638572612423851092793176116787105257574664089759910951324634743857097282626818260199306529304252355670547151260038181142782708852865356411096648540190006721360286016607898217082605528046259943613636151093146080837847686371064467585517157928992386789928871669933821512188127741960572042214374271087771187231289600201688524919230555574422062369289834092602216943352024989926125030675915259759712465084535840135010383978441535083928776068453451070259796332962157419637116008806644816890116329530215003029631191152515536629158165812735659312877243084933038283332282587599642714530654770051024755851842947190413239549321400268263218611262217814209106869397089757861036985376873307932735481561752706640713159210882585788497374018752930658663151522771892209608692153414733488185993964705180392618566328694569630678779901835317467332578035313280133987027358598844517745579981449978249049382872070034665745798953085202670564314426023550172625121070652241100641881387942429642140045272595017843476276008925415856812109254042535804347675421739366156503358421903169523332480588453193744317103604641305917167492215401029171757670872747686414050609898899182741918262404096746092982320872730734281997749038185734262880543640201666976760856141481706346648747213021854309407323689246080333987601128819053336226786820978843361519516274812365044169108346053160250080196585287357785689882937030805800186545947508702530140197838002850559011865433852789415344767182850459636925801938432796559527690230904850710372722119474962673205617857808287527468258374714497835333444978320334151008996906070876424446168521283266717754214209637136464807613581211709703100529510546341942920754327602069204165111166405951377205057423441584762678048116375554480749114748996644712908824188176151050651011826346716303668045882212213025752973944203172126768245696866454620188005069755900669939967567576654597431132324803370412231411365441166606050511739221851551557332971192113567294148166630030490690778854014630207570220130235453929099619026331457956240054256816704499933498991106461837969305945453700014163002471987537890889684504427052280721278789311254312749880549102803375120002498427054577104630464427718793443922852996552230918887088238014146320064161819534763638646353872972118382547049905158245676261360052904054051803413414470736632262453056787307873686189488354014488523549629535934969174983397635221896842380554227422597820071505305287222283945843849324741732375636811778393428027678992515959527523527282208948392942015690731290536556161105075782149818641343661217092109086591731431026824726935186059983056797050972038606998125308660515334080212511140447329690279306480826602473826673051047939796569622761695849209413301036094436309571656715894674365047280575638276313518644701922248059547818702252459407306778254614503307616461703868502448025590529677433503369495176843311176021400982952330193877219210913572956738772265055172171719167933094511087274823897175176147914494087288779662170656526396216487703760502988769304802552706991124958610576387867909871114896567256762473179694152783190996051419238951845017117784514326216114617004548191518745867594209455786260227199217368787648963892452489618508680488329064330723988444260373436000119040977165996645054449089279964355203649954679038734708840393483354964969910300148057975934834286090065015052512073401905721334905864178694569102255783249021775496165692637310141743848825735990140557295951561808370684717579700098262761128501717143950045318953025839144001375261843872874195854970597141574715447433708937664431336443787602445254869657057041790424077538924968071204701868125440885407293519889755316284128911907568002200042484713596510366367122605040593474655292776424265126342516354328272252416010681759825590515063650250433380243931987676616582065975833059565826320102882682577891823662606910801494074624829712358969384482712262084386250423652200762626554093748188948578786790346117117480436563777535309384787866918746405397480286343844387474111013227878359828345467153528818030893919055396597250048826372852413853555534570712210463173183888091130748605303290009777461911138116635517575955870193666249052316391638169595860451662247356596487816700340042068757166378391123812167383955453393363706498390534308817387780873758902194660006699234894585049008235611054134637193178283779505706201391478214808316321437530034366280631078154238501301755055010976511304066555430905799321479345058989759687703815126714254716214608309192549889892617809745204947457167684818480609043868493784158789191169637363270620308617175817661882275496246823935179282770303760331413368726272860959320456307777383391415517553321256869896346292479863880716663750838621705042362373790561068355601546701457386699475219034780466591135677867099568062628596997440135836908805679872893043898940715728991302294038609419837558710831464549374351092897033594054800926467176271449839580608596717205731690685397888898616359223600280327059438518111982074608107647956880061281412820532681013929501782108695447176063191463785067804401737677619836464288895420307694618561833787941002463480349448510564252451770163942153909725498054720766709804764202235241283905858024366314201799251448829740743474146374528578790971622093545597651355247074595513192529289038240938168081913823237970490659062268813474732582810179423551108012255254467551559883440879434169591738135991441306335282840187724516779379624682518432261979004716461225771547120568133096378429247420323121428556614868781530651641787988552243978141301948223736528193586151913560711782152976212622603480194740810313351791305688370023671637685978003735327443821199561441830772565222949078951157778199454246548662017397483647971454196752320827086654000358901889995134973632320777762524091263692057938156633398757272693660849733067379055451606605465683271197815930570864319050000601448941836493339219201152516501919492945617940861860728296132128994746380871796960048563765871448058098807130990635043057081776786080090397759650985624742082198504653334828249794536130136123425609375912782594908737611868686264029640966185530567719071532634982189950045507999024463085084556422069864999722904995376178358771018473551670149600548662521220871545806874467694146829106115066437051330578544327135606380820718148066430705095123864260067010192392614300090496176940162896334727297813377347209930071656521688517550260005998329050380912874704545275615657252874667363774776922750808226349757861382582022828953339159415817483077556448764922480095164399899643567156368588839461698732863358015092283375691970522210289511004702296451443385497158382707847089454606041227861472897978415575440480179534870799293625016432081720171188731598488050318456219426644608840777530392981033275779209222123902004131258521143491733821307733063843968314750595357046443471394367784178058688523215871820243983155190768358015072040159914296603102126142851400221381614594683869333552062809845390474704820110869668126987311074567405078657397217165476211344272067194754984806541482766803503330168705820739368769825167698572186788647146137966882695214800451404227130710760516429894980106795168497147077645825821630796181109960458143795894150180252938280133955652566492649801519155707883327516105226086584990795321163634165370503767700774901877270481280367647626139685342510056889930400322617856240109622923682536072486055225792092551238705335731436689627132279069262380669802762378334154184362562403079188790641793781058625085999837265917114753277370563648120936677895646872019423447016424809440021288306572842842405934945511057982018179609575785114090410494110761036374570690276542302563901597726190303383223303970686662937340416571042222642084001480120070487983820981732385156671974002846001403112303881873862668286054919385384611616139811421218540798829673372031048677633814872485098365503123309951998134599585144698144155034526988821722798733531833192620729003302805580612554455372379523645705628995592609017406910879260869620883870952835310624059499363478764593232178585058914406497069469482581506611609934544407145809387573338432248459173906625671196650741657456618930909169325139429792848064388104779761201289303933013537179569269656610222103289963948786814061780530646606954224939416394996032036566182812492877636570145988617217361707178616596132988062822588850435265629019500906376453575029876070372956516512915638853406123557043874003719149414967151175480992510385656875744538408605324167901242560836966379047245117412424257475369397609492523651543727040278179267324163668740636464458703586972732981652999161048416066566434077019547454917035062302055892551426203500296216225387208326567487503350163408285402988838042241864623434762136975157221101985243449328060379236763229709292781146100154783731690445789845158453103167717613796014986449521114782701913084218058124730018208371218679667799957616253998590722928619889188502267462361584184899870539637996353080119618958962091292908877511778805019405902411079621908557922604953360058169427615509961657590431092002208120429062477763493153872263002804729713574188077738566683959776165714007330132978607533123844332921393486847491914420457374742356056445133378586563350237934297448812256996235308306739857504936878880989821751820262943630245634035781970353734681851646056185677060704352191110940578231553495617565232942526208664526909219309692722356368264507926050862281312819570349475372572061043121167580529067678425108727526774576736884722799438565328774046805074659827468415209267125969586177923074539394938172765159785723015852177606348532502598197440171735670696307260998761330178689998280694847771943565895747498027161000432604560902618741680528576782774644957272411952187064600318156006581351356372937705646717499098842959499348048862084652332294353304637562390958326465203251900333356969576376180168494382871936999020465767874734751431055250868517746755240981738190775834288278452740530095064257559518628931525141423553995342401668983656530702102857967232577634289176534300101322776304218061295657220988509147612314639185231734375910471138194457237552182898543607041322184189304028102307136109578526945331402409429777069039667675344747730070396657800757427308951898447308121021403259570380270575243153891886551702982338456456237098146958925726724350797263781641542337895553558601759407474498373260377248966324513976161994048972792726648323040528213899603689690119443079658504954269892736769577036784593985100237964146571777229351906060198676699495102983953442739877787171716111029278832620692720077787607519104904065554705521138455172320671417829838975859573258568986028367523745423359048534673907077414678022636448040284213223244368256149215247442266933442352122958861541821046008628695960725185592545409653272753943450881698289605055273783312824969768848125619837143461528935533952727398011941670447059383852282591539604588833906714840314638520356987911552952720019208491746929412824253391400339606508055813114222101363459087782523759565166921284207258634960866823448952223654291034097839568814455785472106256331859065599299288308661622055965847522722746042633783371628959540532255754247880502218026952644465162150451185672389962484935519966906321684157483182524504512160511855606434819721402215568194092944426371227915764292569056283449042156198195833749322163986901150501012145058822823978171085233244456102688975125405155723690377374468475997385968141118696784759963009505113845376326120563660297656301455137799539988564406061153815617627235562098868273442651545035219883249136009550276031281030845014061847896758041264283803953376812306140156063342767435919914010101019223892218917625602970771383150811405643315868859450626940664067318521955061730810496833558386116481513712914347220740557525667955584723339418672320602657159111285444882219223507746235972112917599218380294621107681389134774657265869883229621204449464440587729656675179201430180388189126792836561454243286639484279838952415265535442626795945445822852798385916897959707931093427137135600407022026426063759421127291669175561682691550227228015782880628920790721996119119747988996223270437498216258941079021463228727345257494401734417424351198860602807731976542044151248083573396852946108507752113210220997626852172942120251081544421392657630780682534772408888866061019182081279655880292753322857769323692196150167537406519471738351573795254892980463845014464430555113791209320056736719577334810568361168049886584900927771858934971787248528953285746052453277783639196082195609068535812062063277543147575825832933108573976075822882965206498657164120633649421789425245765047854695551124604615419785467777736875949980955867651997551725743342831531590395639892092610944561777881209676897611398356637523833733430212449962151429465769141198991825753633572509850527914081931945484384270794201180233244851259597257371351313406828828016921428774775849098514550104880064261587540399288831069947396113989188559942735511517444094172896727325326113900820488462952254762360707763595138583968321823825829022251593036985744073590129473019235948770034300201984969076517022626042785319625792378839543011926036212739879328503392046914430891672416443724695030425080305413347740423345085129122650113865656245451885589042994025280711735985899399394915356015766669188709127037082823302874229823755256858348159511730653615159278352658962096561018056230916878635543836459402329923848582319828795797280979111127445692520757255210646570569312836926601868658085060928280887362619899468492309206411004517821224344321649268334731528413839870783406544393740926034584394281870285573982827039116747051827107314257574317645387601749097787394997773945457265744324776507431004372399254157825849407205364003889437649423356927072784364992358295559022653285625513967825535977370257200845848456718109698572912769294299198837865592919262609793698498270446915568593447627963097169072603320902250730322007772364309901182612744235786780872344185100555904024965794225151624269235295108836949745461541891086228458437549438979361349003454420971824371686041327198505866154814664887513170762943505492505277119779727982467972823073464155858863106604121054750368290952765108699626864726544275568871124745219955093525868400326498311359587277118649941611229042907991101284306326667998758586580289837257756245117187457121568095795626901339239642489049999152196155902761198012750431966144377712536632968474522145528454261363899506499593369609684111092022877019240825741499969072529690679936743746390535755367449437465606864463123438234049528798349589978578573309838149322835224175439532315852096438792910249814423248254122648623782840498725600093120053182480511093927461550224592176019103776543668205393677206432980473774776947996377406520197491423060970460629070591103894805810440219248107867330628141533448161276546160103822945858832107597965171665728344947230163149641468484593602877640762165975531516200239014150595857533244643936945282156791306482731386404756391199039296129824555507667917992581953729937972523496613524490932892447697073375007466105426154587250930843952443830130911009489535111403266677618582824098072779484889823047599716993878899989535833513979777047799606724244326837116428990239342308410925140471105874999135728990649565011815184171903508306019715474172899144817533652493491194359842245551245957840745206188464846339555869651680095646414948343984223412554727926897558354464495186651281758282244996672789618628461449510854292987079290005652394658925738773803681897053536342471359618835595648802309509093869236303814473142621000591192587941763723708605849706569374083270862896530685651998586111539278679569416550789279072026114814376203981564890410299509089912242082849825239243810146780100117971165468539311382555108397354604517073659172454780181759254588797690906571778812167287689084536933987749633358309686433669677293027993198369818292490966903471140608693762503359491392302878186067191376485754550538237212041396631765097949201551120111548431068857237889474899492158265800868911340304740254364349501459182233226134724275516615732030056150446763826977080009187497481242081011182370462233429757081672918723723111162716006210173684696643728341827822439325807176269860464779712983470980935287372348108656182757278613362783454637778100874452060594512279766433548829283751838474212970519841684312225254431836655053361566536243650074693550921423926678400438320333907064873355476675329690687999634445150858918310204705929755976541850802254030531854172614555573020186312898580139556535151848047709582726856698207129736224775135141570268119191692486355415278055389208989215715043353407130760550637466892382535878057923464425854382871433719528135480550536934297712917871207460495656395982211504880246098613947947010153167346138283506580281087521888567954155231530483481342640364973836622053447772527885151342222287264091922020288987725318134515317710352769377095365734671659271171299804435198349424989421318173404703362386615105706543609581253757028018152966307959781201495488531613985596996012909263815851854054844621254089490785647728657198439217621544103830396534764054593344830363754779055022981744755914821711727930037762432408690260993998801676913750680947618021517801918792676338153177391804035477404339558454890627090009931148336016787379458547860099772994410338279254351154533591308548790944922286534540290307333791871026511685897092935696059039948532933821009127724648085502719825145019187043450011612330315231742491813216416480225117565784503808995744629516226796149371861701822041966477602715532696023274427432404842472940801640386631258981686816811097468368210057726605112103678659289339842206651158773578807581803065274181410328585821648111769348731318373577941251629535890957185121112472666799917554544267184845722670049913847441234610696793098362547086648871501565196413831601893796886653119951451712812371673437379563734032715015014668535519625954757427916567461645884064608966411766161771862259144572692826004953122886044172129778796485272050695317425238619844271540511137342959123774542451784080347321380354554454594701794900148591704675814164109331669701604791572405284073949786600635220115891597391538106276169570745639297347446057826779771001673948450513173506174412142505481024326105576089243568091769922140858760154757175258048392368387921531872430298807568043657554484329733046180749646139311171770432056651837300763687160980488693007077693724266618956066953422793836374300652083315610551749057268434602185162831782875306417584503805489726321175362281303251513225215491380008554394255224076818241622386448948581739764445860114284332475211909469480375601849052405618718897902957396253077377409725411535968264559133578936395703529780884320019375087502644969687528969763716824952444242908625106644350257806290546601684141872419995288880128581346822150217190631784889610328789183924501179576985480436340336995994737132763893419712512258053333937099438171749082453870000404094145442110583096232709602618222272776958676369665970823392831283044502576346553565154867318284560359854693268386477501335775647241556419009492263136160664181350436564105395015719584498791088101399696796599651518516918691099963811321061609052715513874163140949237150146120897346687031733066187878527930393081834243470739310140320673535193337999248920181517576957622198603890334912989780286243430840699834100550111305786830423719567337970220065939453422297996586110079623231056965817150396309014256942920107154009821777287624164355203007276791282006513409373978372226741728233603825247918985906018355668414273995949818746560906668758350852095845396542324006892930405926509529761169055307872470946317761693948930940249866455872053942490265532842629352533293257865663412385302554046219536597976048381436889769597169561803269625561319300055555149411494242289871049751232956352058208428778618803133227455202680119198836645050951954200351726947262189491911159725557805962914785181897517582162066299944045853081408977156940590738242236631930002233329576245507808591790340671213835284776650058139159871032719934195948262437994281158399597229288561874870905124847096416112552649371881978104924154412490206793754792430457389184075137499880782200752097184238710647468499314058125333240549568391745880276137412328806718605475421208009672431538894986986686546251371551939835280567049124436655332874340730078078551730392139599207925925712338086454815888498247905602018625904769353309917232292551421804017794916020331853414766260514297784422125021850638146459522078012027069767477656714256088153160881281087951685191903230739889650389265926231079278582152367624705859885526367251191512776545788025869849830140215675779231252107687899385893691587029561436292025235806282491758101992157133215209437739578469816244534122715421009236231112531700886476816356677808099341287021780615274787129030046205765395276215010784694066721552796308649848976451161827996573381738681967451480156252600951145724995497852774687036168016321991912077178656379802921561101451939506042691902525956067210898080112265327740196327019926704913636537082565228653158605792504046953846222441912771687663155725505989867443752999346707814102895393815712355316918098501752000883335305531488606357540190263511229128782102708704724707973612830905985066176705721460283926037863501289732299140905829318498045452386917496726442237864880572217471578790308459942731940356364320935682040912378237124608803737226713488850897956050103881423796363767229100324055499666109619507177092961212004591175422611921944434788279394476273667251792771898487726739220696347884511179108224300968352198603166494862740065829615002217596853746607899576674012479815105901760677528944686558324371049750637085265948500217978145043469311325906477234944003643861440389618430036729958596232242986752426694535507445324577105208890338947308793595731550235341680146356703769426149394099201056378242954858615817907813220553624706276177942387809508022392392863679817712599887538077603482548133316759824229624319612327335411135631354653676070191043034860175103948066429170466381832810237989174064450876519062821207798702524484941675323513057895373791115020415007230004156022251236966491070228125549777024949509014970917670884830297548501363010996050282638730503689403573456842347919716779626147796432329493665401965509142458276940455651381793022017221357904409010025544127672887184213345332484678194127670564989680733962677327652405246022849197717601816634495765008944561495288491225748692274412707195855623288494747139999011221640563232936794647920291481963052842685538504783816609826658653324160942486170485483697487997269660215695029796139740448589566836458134024075745246157335273450963110162866048406894909334194196238514270483051984667886386217527927294854940896217845625731915100596809625667009927928478824294298121232947127443808609066553328456603875666962772919190287930418579526431077693888224406809102254612309829516926873685006089536403767708658835103555485455093877072431798529197466921939259272471999409824644698451289673337448218905570489043753455366227660665773881157231550051135442104046554240990248616332691727568251401510579422457505205769006283882215579343161205256889153558038291681740483303278931194882334093732943318871885862724525017001655908630605902204637040174120960341414648875404448070282138737690186912197127627070943010939183064916571868213726981920170152025535408812098696556776173577641193795595440171686063235751299136228004057507646368072075328264865921326761027411278664419684258213075119907916886681435924934452933121182417031973850360326179007328708668209586472502550343910123959167496499041532637473805164605923631779244638717952578861159510961986609193711765914499376353660532727251055123478430024955231756580198891439056309089340943468356028226909672529745713433944339286318981787973675084158156832955828708452421085881332857887451004070256986932186263866148572105094388567242182353656900612152914090235981118530369975524748937723099317417977589102052536965895946607427821436333401745497593150637836184321485648825050542969056301668779876126208528718193673215725540217345576018471717035522560954003468668418121872342184919036964818750102267248357960637007599194476578263424672921012787948368479523247103436868694697289897168076533053476544811329384297365438624483615870299071208160131196733913548497389619243164552137650565870016323008832334976216197093669959565428357775066159387178206039483767191587726035130124271035291497962384929625361256118908638328385953049100745951552553584313208921868488057290461430970787806829202762096306654977013471725136017141426403300801908918491294777388670366900917825141781628124951175761997085539599754465200342226059729138554931009269865110380473230859195974734300522868627070087847934029338150057465977540102492137927467993337779078316201002039112495275196417035316278334725361536724870481133389161797002878905905319315636425010801346984824893194979522729957632389462885851073940368106952963459667403223591133074114917439502913433923447621716343526868394799692722014176862385076837953040239709521039417340613898513801924322744988477641109361032960582300255651228781209146657377367163104206957432338871715262033117562929205453372246842967510214752813394886601700290766373625675470143006738084375093900530902294302645625734780923480688215842621464618667589016529291261431278419469169051617013397217910859641037910723751126213734249338714246333463278200524408777770102825470678216549101423127604977452982353270635061661407959275871915799811868506507713889665853685709875885215078808775491461945743185762229496486988625167391631960227668445118403445062092832708261701711172616219764424262447934800327583030471112603072947340998174047310733567342714673577026896728707619652117643557431621416715114453399001687635613721269227523140619852781363484045079662517175053416993691968826460264892864285429561261980647610268253002969739470530057224385664968983552552124183243943353608488901454931577305909254048055161594023976502775861843318131835607073639180329826848900350963130446730508415601051797450845143740551662038547701688326781732559843256212013459456268949185093263839939364763632336658854898364096302939436738288432895039168731964615446435747327957127616907488478878682556910149229932440566670061312704629879983808481990424906393136384346586993900391781853294287633203304421973669762560228719966673371457894733832122336049350227183717452348517884849575337960962043632088055965753810660072373652589206342063001946949687811066975859226631731308346352870276746984002990228656844103445772515885953420276398829341358867135436382143800505151481851620998867197876073805298802911671606468871117841302512154035505856809294436730209727388357067726082695659674196659384409278585018588456796393004337535392351357711236542984984612293396581834200987050224618620484605844990165883597856924312404828740928970668578578792375345142236554371000828164085486631444831409439833987896225683711574154893774422242812889707894269559968153298077014505948996067790056831710612873484440456501859011221129593349257686111901483157266420796415060067302217735311949809292295949375975384254417646873232911462817111569133584161411009954687977594887972206787197527986255787445677004350997600573326313388829820144438868545498978289045137743477784252529871197750826769942559668314813140131759852756227410884929844435869815666890811516897361053607346506497475895395778410829503388828894068179692318343598201916458821978939628063400291137246028829852779886996292684618989280588975576062323300734155661142449658977413001548666750671725122895990730810105786959727189788960212461241848787964978277807820682717211948261972290761621543666221710261379106642701698985263680136897401321299358663186551886448157967970313853058439140490981441353222571169896540477109260173430636150432113677195991970755342212172713805905436076288456712477919414088946257009129211597272189058955248037462097742299616219432682605101186859208588767416050793699691163459967243626950591385938919579774023914175516596092095508304691884016923532240630233239806595631819734157014091211469185124531728160366811923373999622413638143711259886624584540459941538302023761367597141292859995070729799050300817405183164511997385236158074940283671036353651942897967299656707223985892705765731539655839734322267522230719464732484238360927324307231247588674056748715615391963130595949522266048280231878269637149370190508483678242547722082435894179436725153044453625523430890356639588045178961556465261192567236008917865832529065559419969690885305625256433118733599940888271004360458747842224024714375912160574008605474988772529983429245690444534112614801294513873829203928667892484989582975890046628512849233508582364544472348290731814070595860271907270521884118203687947550430439574516762469313447975004860665597766671971743159870907037038971112818098164244400854893489588129163434651308825336416924546971097255549097384490344675286316229086626509255494996821739378513247475955616209074836771637577132175638105775725035888516036878796964410101243949220351757742355352378932312974058298383392590578916435708405060122179694679528840559477861208402160157716485799945067878745218586079959215328954903024411355027409330033568229275180667753125879885597660932852151638535310593631172201135368751445255154810178995682035282619341989194334029748714613304589171301355969116981999838380009254414340117126772971968441622910947820404321087674740593647029830596059850659687948045163242239557908829305531888998917871064016606397411090507310938899429804058753797315316726321548013094939078038579084577776831509173099370516023305182066394975537299944482276625839094954258666434225861119520941542037157352661275195474315438362141646367733398085943625168268174163592095847747219105463397388654280788503093528388958777159265333436368611897436558558685446055874749501086431473666175519694316829090947895407759790893662054459514085814272310295930886472520328447617700885940042336917459127378775403141894059455473564796372977945541975482134907841272016697790715574857592097631649674304946057301153307794623992136534851383051015632521098243098209601121762412054637654530898539928302300810249628029541431764559976497875979821297331917949351248025068686940123986846830432995551909969199432973346183863416482989171520020674390956369271980115274982527876719709061357214495020675145897202552918052360089141855042527825540833791510657864316687244278222996969654289263038113676003053162619015452007410906636716915680994720359396662407858834657673778936160677010612834941150777406293920952600999235739447136043951501570465032084322298004733165132292549659418930071991378536112760078913519223670565459730345188819291333807294144853568326230788418540636014809214589598300586025081388188266002019308077999011035948145086255256603870984562728751270750581792480251160522810656681736117502098517145579898814202724691785344323543634295585598703336835599661842504983685204124766084409108360706311096758564921028378055816698082255759690250436670171056928878665963120729679020810671361680373922237748857327118648659614623881574635318900545313759687300534082847738308422566200788910165332733620905751171597542381637552370782722028803960531143484163057772181408529552780509811871703544794236570821701815520279385838742098254401860941676798029451869023892583743611434601304412574041713591530571202495560737209351311081221419420097329076348303941183767176425741039925221430675834995238734181715349516586165117511651461569510762669147182999180229288988271682080709764546437649798390243744667986603765857773128992877203790690271327581175430120836175133593695128592972520626190146611445317205987520083394812578370183714625201627331617415969730941218313785131501265128689931218854405957898896448073912926122731308273495208314035047524908442208773662493395817671672148144190827787832064061132211705581197839773656071403073940701125961945395512994215378443760633712399266235607384794155664843736896942394620608094459921651529461582325204332921880258521571621226155925765360153660643347161492810044865692387213517401108511701303484881385050186719699860174793719711008731054891788557702919007705512948581987125784954135360271043685973048851444789772093534512644507199395419196062366247751525171451167302132507414568791438224857464990043831801218777698093111734836035908267735968642799656174749546040645137960995821321882828053050764379613370407991718959557049092382433325475052328448865341877144735161890904164624608555112544288060035703636144934937173894129692611730304739223127786312273155268748557840178275712530472938424387890097805297301967520102517946606742916404243703413974147026992421334846387950405466770695080501617129092640412724984497245072339957031642774216009218141393976723389704386790207227861985986324559972342714257111589482562434752873633539128652544845193805429629176912393488006624093380420717525460497474954577727549868820769853438463619855872637535006906096125233755657268754405586252701828094854294051173175892257415943687958191188279643379219299805864106892963093921811154560213037651639818781822544905088165916351551217896118431041855055145168533700672740900455331167982312610448540681864271879546453517812254794658582673345159533562645174347433283416375846188907376582160517730024397582632578839850817701912939596662213088041579899326086528720926053428336980004063409168767234724173995360324530937736989390781812270268558455208826878260535712955606274929467146560888013981598018826944100574870161101412339323373704998663075734948496929036256404641114151205997471697708783386405428157961224898101439119918287497969839411151798388711468228022918035114740699234994660482822921578971050143474887943319905579208766189863203918432464631174975572363940118274241149130817615021498135159090615673068682196872206376653659951139847109978848874332403166637058866024152810107466768189848651588423933491327914792866674069814023701093832089146969909979024281898420488818826844225630669439431485795500577319804840521627262154690087796381389136879210748163619909534976163234951133247879747762756542228599504273026578795147719784545998373697974479266526932777265639937338175348040196873214043201331934887507696361317547293750568472825017377332604354525161531416685437670371875098585973728014590683328099422837968200027530989451281118713950622232372009453191707777594073613932300633918105016654149736808007638282385012365345122225668890177654980120530848328175867815589027557474223140372349280038845178085861677263152738246497984811303855326754110878663713656238680431178866641419168651825830125862572250691123955600926314569299639970812605841659820006060917496937823274753958003802510629605541486891950210645531642829394400372346732041488581409189881338803967744085177724879000645900079095156104115441346233441384416047515214012206311409585494017673231809687657332904504408647976185182106045768351199431293198191092497395378129377546812310798185333062210667452838029920153548416427638645282224165406640222485863168116582840014491389627619714637434088720640775782257857226734353698791842673597292001402976002283393370172071529207485864312185866434693997595339205544622691955877793684873024688500855076574209737466605302905532643303197750411211352220068203107605523047496246659148606119054994257348661804408953398237620580241863211928074171536802949108448369096406198308247146102524186286795258993059027169571375324041761385207116878177291178657607185104705226749378889504682215671747506440306478383956937676943484929648340260136947914102738647212206938985028542106275832461987636043891929635088011829770586621282759936842043362189646172026146243019437158575925194476932036917723329183272123918715416027657094979330302555998578450451565432548765210574727044898236002921690953978109285899730372151404030363625758673673962465721844401959699453126177850790748508307042790931174147953648677171668347717968518146503357604805159771014278893106832718274931849210644151499592044377371208374301047989612315062981731873797007713012499100467596783963114177210836120200873378681301490250786174484260016367398764190822111686543835169630415845345022597933242176406605651066260158152805487094752018037730499232020248895507920118774333668099450852286183821637466289003120247235757652574582037225380726870537140181910007703516393537141461449262450282843516471880164709517195232683615784624651772528200174841636726596445863659684919241967717651857180489329885004626606106365352448269652383603784149873658623564982025252211065821943187032558940400406447496842100011261149777558650666897035533248262541757842313575684074024647239805338553850489601210144554156903271543542347440905190880015238629707099941933273512789808320756540046224549063495641725967084335538601519262998478742958865366121819933406394399533084629498786510575851651870209203893779872366939735774605180345821812320059357223373081091258689139859873329403447520594167253432165316579930545389706229175622722544428346038968715549405714436118561269428298240481689993841517907620107469123295075047239562635058918152678525230332384093613740852654026791015460517658267076780907629239701686914324013131075921790574027794704867607489618837479327730169672090815349712611100528399223695844630990654663281050055823494138403892766563853710010426278492020595678273793986632842751050512342468334369444770179275766380998679793948816443144997217465754089625410888212309645640629395813040449197491323269957872194674102373976836355156608116332787579201177018128274520737635537051884277684815754930625245144431446013908592909018353057370194679145372515753852056677422888371823021395411025329266202013554049931363582283309733951471689462398649778360772770019337514397973423474810446439914801715075898554732694847919735598875129052672125879841922416732442907202896875507282455470996676066502061932873780940616224642715526211762536844577458344636035773703052887791991414137118541203629886617218672497734339388007258840214483604533803763335619662815676466710468710369109706981442509691025431732140528994173723917716957265523880577923099333648484594359222219112480460265867884453885716438551865963730769286685590789502147517944936318981512211546896879963465034272441649463638071331125030328617761257494270783642938483723563635189792752239634580563552731601110776169088146300313655442817860825555833354880646806695163305206709391505408068693491267343840387592056128003707248287824706650309107901122516140414505197194921163516574420438444688245797078652097817867842588301703907121194823801862582095848300677916125204098105282028524289487309485467661951257923863078846255452043194209798710282594163162336978649890489145888774398717809881306759250354567857172151019570168745376926005840296846308917712330140539899650672352045258852293286309142446125850042456029232489234156243755209876879106838888568698037596783244955713295934007385711849362411011312920976996601735316806245480707938853178019798020048419295640550023897178305175287430042803883215014334872543293889876867902540096176665672576357307530805243330131817224740872229796762938052771157001165319817494122161057769535856031297554253545619172908538232583840791344100372978372836347287010339391986726308392797747921265886438084686444413347500720807912899109641711523049413760972897085978618612104485323418456139515784390727253717611883018889378730912849789821821556552609988368251091059865172243866885940548662040006846490722151173919597964566140476100032863426929497878605149283187267374864889005952445139956043129404511314923332834051829179035363472438755287670944902371832701379368638355468328943903556932598305066562114396614097284602271327073771587225096871098020613011163489228259479562557080425433831707759659688360976836076547910821084954257640697046742632018286086580692147810084975269375399003564675892496213720929890619332347628673171920403319522204642110486175873124821682481543988355692751014134447864603794215169807881557758042967588410037315848627707585042680352581967486139307802316751575284443054109438171625599554224250413942711281856069070570172059987848160665487826224225001776915871363941899340824492054597168795503963641278362146719593374457665586089883636834421323405579104272185186950017482961317623708034715698584951305375370718012073793298854246980129063130217092447933939467661979051041383951729247591730098366503318645787084429089918381949609519255614996365489455921630460400384137806595608773469535610041596371823779124594309630864625469589247027129660015736572458703301645612951247592752650709920125280539429392913610600036233390943449274408055934992923494189570991112377888165019540767753562408233411930428389069927255802020872377598038710913425255561659505001754404366624385538239847115009346410640203258116146484659841003752446344865973043956872334324883080427096735619075739803267816348664206423183967815410258096981190883313529015365085848674604956669232731068231500939516892580630817692556031669321264848632031457963568531831780356764497007700984541175465355065980674734830020203272128448294606548297442540925634020961038025105109864023429787337785427543442464963869296985257135012097528268970655007422382303990827129229006134456529122506181759222733562219849696701166304475757579253155548027558985085368007381826346418377300241211600298667558841031963772168647606914485799784836999327788964212034571251939363493349070281020564222370941158510809606418809511518621926388024483386205906047759307449782264663328978931739038411632405510570109480621434284999355707011198211666893528846776222143812123015704934729854148710216058934104656965950515580937366593232872551782762288468562154359463662430165312365591182622259211784851262240193588807516635325208744395203593909556759344682501530882138124933213873234186832208114903350260443777228889707352460840910829018324799877141732668988327502296577087742775999524161189030598837277721046460054886245749957897970272822645821176744571613951704288126992487034096127712886555755792659529654933101315301795973289923766321871914016820371913161801904076814406547998638997411065119036838434678933701375455650556224036406651775266337530176926993602954002474884720308963760228525905519106951760476452048184705395062715378835511354552789032499328909240902008926487564053733375331932180869866898130382181225625595734512750235945554321823456682362470743586352269745902938722334387582620966451056179643154380420858820602053728483213502366413368156137791100086845624593775207088652828552349607427322579044088053957217450453733192165649927073759413737406054253965728398983996947708016602613255035089204422442316080908732385755615526882786690728071777300926705564564077126056603674727668452011393894804606539853832981493623591638183617427178459433440068518774366409623907067559778947404278369193320259571040942644368471824712285627224842670062963046563926228637230763295654630316218071740393464643186095320808609511501026379651457018835158893581393509751927440289081194033460249047203612591474758174167187263772005040315174652360871271047283553574391895450154666154716053750840583304467399260734439443346558650481611352311067770816079775763104821973203683320259803966926887570836336518722749765669900061340591966730953362108605054421889465222353922255694119936943239216331048980993445030774249520445641038680648560296441715346181120181016891004785320013335368067220418048355045039964524724294148214473864408414062594899643871462898396002913218953247092195494997241473044104388064771854466727769376939126857504638078831898642505071992074212204797930633467081764207941505674233725042975107780130952973003277318484618089564284237402594466812738539173962512930563611956018852504493325656905621848237786453406333704111745358235047103536211103853433703964963187773979925849252989391966315299211085467929376860762879471935881659795650023276642052578581496814732310384058555772512145336689068840790277401701302955179277311436083102154818319623880110492174884848934593080735696353134821039886147598687044111244427214458074410160822946117270522767295042664638968013489450714480193881728177478046890568379278724260633270325944575138211880373613772102123016130044720455766232079190144033365970913581990578757348869364883534259690112984519175669369845544400984807634698348434704120933762148290455037162517011902923482897378944348936289772344846007871264551635692240525082349767147605292721447294966987104083342113409944733812276479104275979492755026112436482137339974867843371582264342621208156259419654802856801847906607290082426745878670673897480486357455957095802366382112286694638879834306458198950579262799921868780340926454574607560838591022538710850939821134323611384156995186310285009700291016845905374619679858847483415742769417768081512602136892427227766733474454178411679157169100660271464023923004255858713036597320602648333855969078725917327432842501592050682165260774180512654347509361364888446191136715479900231073223063808741275899319336700279632779592950234367921279677564075093306375939047204495358549036925378928675952457794487102235144926196787067763955648534915162819317353132498448782621257714335121229099858643355162274217332652468109755747399523332813489292389635125254731237494565466161105823669345518206372217387056344061523298147836470534616045165431326074805941702556782405472700285613436322343445267764577881585818324114451925849537082241335791846557652699386062192943585960316102344016524706508511531593535729341756384173862966462616062697530490776407709659817985044489358016750556842373949913626776421271782246379871319192537290440927129104831268255081546233125119712880603384956714931952473629829048810365203455092521913503714621088639512856247329152521724832733198352172517917769916433649003989581097148792598301648125834603025611475675362641206089520306633932937204617634896432941303027107055256544519938781295748127990763230543313113047087008540182541005207820049425075951866509717406243317710834590108221897224715466864815616300153586676436621463317836035984173925975492838427085663125932940391570637362461300556032459186259262201796676610128524622023932000285625736440901026722975345309039532742591974192740439929990466697652841504062672263011610360336224914464876318271527109939982604551732269725455629196043883377089986287296939292437241002671660445069020041559655174682338360231220647527128145739141679072346465947627702518117100663817980461988052807239324415645235734800351190834086455208348400747195117536187599537385986335033108184407149941172819829484493186958342762365922262166742440821111235270739148489552090849681335041471710922575407316957214461262712016676370483807626648778269570723202123279720296202559493975320557698308815348051902468016443859027193292680261269625236829446154705872827323555057430782202525272054156916429673141574231603117503458358444259712617579561536151829633392344588975966204521750323502805734098993908882121391307087853134555191984414301525401105397580336656975093743307506894044433171842331097344081509486698041057293768705786294345327103324607760482890794599664328767416514623083864362225223955350146093316984484307914532088464527807014565033643217149581823191522083534477614709530186076419288995611954255924220739207295577128336111485024650865709865870074114662971213077917995506610388643862803161217265753833099596277246428835827131731670300615096040046631145556676101206584225460986430129949899392274309207580128289320761894107279029120223709780307155525552602431587598104869984880338420706613068498495815952988902583396799922863109296937378063178740530898344491690462432647243441817389121041323822924386980598589282947134985668423552824990479134734394520670487493883437190240893771469947702576452624260243138013059306898592127763449614784068227942393615705181189708969418710726380457368581150797327034612554357076712283534397972154970031826733692842230607192741352040692974737736530516809401977718827885626609786386452090888440576469714627898611322214536255532669872577515303421461064150513442354514292875525677706101123083501365259905605485679581747298431776608402231676391382589109930277265530558888302527495915346960114627107701775759629426925497081150328614910408579110199117220239280328527854980132770249062693096209982943822669806436915892237793411222431155410876566307158876943118808067553137504162352116130902380559504420588106907956509703218885839377456441968302605221685641682851213336087763887844655900975542209176276659681005707810217392369472151786034034758000045637887039921529741786981172047595190466228823488825383294962476973284157120413937250204259318439097125413941285685474440703060210548032951524917666507997807049100996714218349965044204679747449616860058621169443556061096835180591440110985780474073555240823290132684362341382668810750553269125996633030202758295246728176734387146830798263703573370196336844651769720221420106381124558564759817424359334128623551398272937760643878105707717582788082352455243113463637954009799766979545024313412125655415313448023470718764385032117481717441023314265370882879309073076748143752353510491463903039691993841048992007888174579480056008315858864883401533328317038281919025942792087294536966286121918262768411076597732989244182711133435463558383647340143996832874664886818232393218321456090405580799399186552895397986487535673702739587745759944501399828163966200270507668735929688385835034405073525533616895926034265601059927856083715424382753301254540342520336905015355160822856966777033304405933185018544916648476401986619339643609982024037607593464756365882582538058619681276635166589464627594519806515920784348465826196275379846107766543887391412941152373513992028694349242949296877773822697809084393529736730485385941731350687841767269412276619834688153526849964952963723120801771153272284768402019100104886509823130285490401803836855703609638477109773955183539075073052374428733672999550160574251897926081388548549564898835173667936196583723587519727885844974379376351516026386715806131920176575120675499943131474624190387157455658875541622156673337351176627061180232636092534854847324688203508850375491185215457835711630129646319713306368838168330454963662672849848419878032386799111547301036465814669869326161106709702742993283339651884469349537238228740093885968527653504845817043934184150590172980885065459000161146967229091977410040361296486451206503775748694397635629230281302958837398333994500406038229132870096050969671215832326583347301500824985946046317472842343884481510110571082219599216585911299106109510846264295654242605090274224215797318425699552888342386351479645983865236094463030751366330295886619324615418237192369847336713499425819464914187081753082471330492745836577357422659039235859008116120605845109810175782696004305660866400910551133734092876100665682737563915906098266943015228451555570776296013949303790929292862329639938549943000364575109383762223083712027064348978083453841112034562316826986308292032272436039329193196894139741499322491846385948186102920346359439636854621675750237144347696344685035390935643052202243831531545734839443249795826934574856336565425915668546099561445504961049632034314128462416977721996073440010193347228625709972038496781615385043972511692134649501729887310099589946896630923511568919406707862915018253090574024039768914209771466290738887700997378240378443413392222448088422505962890961743839034990396678108804621497277698352104519916674866648002972776537366211335061640438338095372293831147309604943016543098791034207441556324181481051798158850790929975752857281076741494162730895214138240461430288683740896515413790216153575267743436857624594779328469812452041908932176032887825994863938619014457668383791603298014883159011176024098332050621754733493911045499497445456811057608223959985415039655112062299803048710964083027935491230300229375764859995483672426304432051097079230089712787373931149505990771058383589996031705079599561548110553315272355360555614648561877086311186966919594932223874913085624214650661836606856620426548999361958881510471329883716858618841055444678228093847874983677015834486140005616678313062150666285044316337869153810084662206918150955976309014518810180603802280299163926974789602273122838817018616880558299231358749103144587375522277164234978848654198922879692288537378452241887638706341441530730207790067917799670597676290563266139914976102456845459526546907506618349860379340498935026914413600175016522533946116881107239817400877483768542061578308534164489362029409667799161971192425039164012174030578914612251892903845889369151547634263842929167493869675724517870806165498420763176136616652742322876731047552337805570017756581623352870100322093947550948316644619459598493045369553184960354894891743463128030597422556543970240251790496246786509557332274291579424876202183966785778273478401141046930084390577355664867766219887910300385460711320524403919092728259329563451260229365179353550615537848765494580417537637120475596781555390516354070541084218325289891596105498171602015073887774384168018127876380811431363682211879777708653205010989336376304595635920686297492593200136538718664498786461714455667355494758283103658251736172226373455982575543177793828006465430578732855771746723099533938255427341902686170990213902196069084811254444182240297873167527195174592976974933341232484371603931567826535930345833312466153479581179739587542567570220234920421038769759260943642296722532071339368487707004084940973331002666742283049722972443895552094017526951475826863471954069206311783742811184142902900579640755631315141289087946636959202358490899603467738487696389647412543187310601785874161891821327923669019355948121522442302398464309579045079775963432137790441546978991758040705851674309858301226993384697105506929864782635569064856226164307478948399944827549665021047456685179628874865296929470582574136005678709046844647670756660481330541971929662399815497527118041851216664435920269799618451584778578896132057395754465015134054714309088188271904054996402966991165995355554105211876786945589783747602772748045279003514114535909224308589194790259506624149036320250983349901206708515035082516646341264969821177108226726536269464683747919622615944555027369394072077247896645818978595180624042855002757158895551123161479799651413428333321975411105985947333174435893337514305574015263868659181114183500719382014745197761909627862150788364240295551788589651774827053520273994109695665279495891776687800135096149298281402666536549681315444448056772052029426656177631673566763666278955313818033990646496076514598028342812253012803178856969519371538545649262370924082571923249001252409872345933398269466267679615533026637092769224299581468359509920607941744042071599176071786376348175928433501268472047607242117124742534429194338225502109587206180629523462568027996159226608111946225391959176586204707743863921091170956364819872593522247398018624109480625801832636554529007740071158757044599976664385465926978684165695246655240159173395483514731362899731384934999899120035212605491834088025453739207935175124608183939330767249858090834123562872361574809358268365599945911471918246784599878678986758854891404145206290961059138780891293166143813990346186921194414887250251971449257568124631152774097682531490709316951971948951228716171407421510893912869448622741419810858047736569597019915590430172615472799532248744289365709557781900931572943392098238298542109339494258721723066087749668151221768272735649798335398706302143679158053366015189223758701088689173036485763188100540905493259417506472942985956600128846439843961022224582986318715809324346246331451730809627753182026949576793427956983273972099924042492747298982298731431645658224770724421590270352355971255477076668918491037387466611884834673359347775875651730053448478071576266075647337644535531359876790850183862047513404377315008134388276802746326374833740338586735622935599978994964393706303218097543788250605948246339883386230782227152807809278334709590151717606557860483785966362850587204454459716885106617263547793867459458552676404387380567084934965798918441291484905316344374043632897275450989123879452670613903956237545302742428427603553142298187201295324023991165761424003605960627461480196851433100480689823801646080412908308240599759139284452760792243872007631527632450199347500580521687299033844451996647932090296432407679055017243134324436279929584754791271574593545913825320647405564427697758694554832689357307097182704230510024238671614738322845198032930288030075966215315652678847414711403067029124515041544868367895314202394488673344076393489029769992736647016339387552170417146060338546683873692508415844525603449823378362403368773603102965381717855422979418353000675942623647531710938216136938357377972822514985212278811463036747661520550831734082463171269261988237940021322168698662986343515843212658533015191989753814379867004190802504942972182021352279372983380190373582559885566409306258930559001749321831665157488886523065780860529094679405227062762239113859060620162815962722000928854600218404686879445148257792955211901118256929705942238159891352778826993597907869844664237736308693342965481317191346250747628570059139308872990997430480859930100861116551742365495234411803794792020160977439571727679241292455525940868407842989629917762408800801309103458238293911536047984071359695551619599621150811020209389545599572289979113073264948910536231713397797048090000456494033315143099091617018820048006102351610603391196510765453737580757018710738014952387758486179029176593804989369172032656797076426318925328935365917808111106141636428518408099165295272071222234021163560969131959043925883865145038392586555343319735619851980741256704869940986869264303715331468506508058853159063168045153778540285991072518317426399319400357766322323381204028616065112768282976983878051297714840013805823742124323110226872120598945483977844026093612386174130211809653303902577968579430245891117375042511021651502416759505690263651686269507969387953148792747141451813337686029290066257957044735767428816974361239919889449014815220564363303915829695618440898947888801622728897903521466815326774525970094543068862768508284471690889898238672730130712661176686202529565891931900260364919206707085983922624705632010264386289271721579947633797035625510695811234402208933683130652888100427468965766582334281286379950050237985661303705986534350016450523378678173567790063300966162996851156474638482033959491894937472815052082270356799550718249837869989031544402538369978983228759290844217003136228726240957386866369840105514818945796473204139133991528256786709328494240242648209542064810291461426185229631692822699097933928203324720687138973320175026414490890006330327589708875481894967126896737638332563334872832570695183536403665571722810414231301857646793979603447757773834956361754422689870867142114553574929652843275856286022934107542378542799876119895285409774365931242577427354423752665129767213177370078111208193114126806074936316742545784629387356434271228122891028837535674972536618971533457638249265247131084083909598299147008819875829624152809866082645363730138647573179429970150805643893129171883370090217313759962771712590080674692107122664669954608752425825680762798731311299007961040453235735777795374023640672962690371060481490444157511005279959976640324123260947314508049935948987060039296125806486202947732897567229395671537268227922960139046258563025433559341379027905110180770521081016170532575788962159197204833915034199009477974810809088772938081063923474015576592889839167507629046285952225278689138414686342884946719969371536763833585708437633055258992022759756053495470979690249037072124448612418675772661531143522612292719994653914068328505858292438530044548393295519823556021355718173676393715670189712197309729795540916484467637533731094907998925353411884718113839558980501064778981051435032677043223962097216912677430560289164338358655595282843791320257979534309650122455286606312925752793043577921049578913963934908074500303539760545989119221024786893063643946290671903849203797283283760856221963688315556057405807321957139596724387966171241723031561602560904004200243154517223205554892744251568694307725837397140199344490898812214694369880548180691285651165684872109717031086519450702087191075839820243854773280726665851872997713268809654377010118418488632404957147770752339947760662149909701068650118378145270180459334720436622887808457401912478905442182182376851099102023175804050489513008712842765163295603219341230579375352216805377701216245957476994059938372671518917237420486129401126104731841790511471908294425683916933396612631371784850540185739626798201202645977667420965704325357331109205118650561531968937783200724227368362854019761532634393803514837115957927762690853674768668474226896466895134327394527803553642006417867660123858099112540738056005520247855900796168609005178266275085198594427783163898798362041005548100654181367402719257399352434029271088081199975171559921686615720847890766059403460743014627918912540906051663714085793387746333904256146600571989015797702304991232730090261664795240803754477916971319788434953879748076769719110189031390879587496926977389535827863258754451423712911374248717393254548183972482647269839988522160169986536139860236717583185048338266809077231465442593683843511172925177298710147809011677581050428276797534907225438903481964858840154372043029699271146116702412708891531437632227978950268732546740785106343105391770355898116848233160412523854902618833922568112811705703381443239076188167598108164562594580315528508268646930274478941414054334841901291487979172204947315255360523808445344109195683589578700454043035427108224473456109319156450645894946986289608464629619182982653505174967129670286876484975813514860387544405337703162063244975580298273757656926379329662340312209694453782965126568584540318260008756524566014795901874037983991213144992846355384495643382754180733922735076608660956143040963666804015805553938603646010198448189477354155192544857343408913423441050436977249661403319832427086238012183045241317380860185917314065493395785331021831694227718230737724830876280481867439162352703619181424212308073567952606839957147206052383737340326088367811521420317955517397015310391016525715098326898612790981004436555398222598742934625400980170578273716696858862023711959287522920397657155618243312155956792762713804716932344953329707898031997235864902692280862768988651102999174327592324020682349699253136184176540161507049657931702048495380940382715198520416304056679378344311716598785480845620171448335737685176229775145665082745129162011032210437507558879812562631094470006906974789167501344663766628624286378636393279426386176952137554735318381506246422670333634059599663600141063923278059638174942212741169641248375719495175194406631584229192438055717571828677770570238218167885544690466009067851886706788120113613836532018469801686351310662166453354230309669368750719669216171592245573884546824517505897964680087282810614734464071085651856786688983163743817146122775337230252638275049190223351821096843634423400257112272765709474314948314034543236111179664253737906264588423573561742919338661746718002170094649667338634702792117240652039265508452577411270459777810306792971430862571156848276459395889910321807050556239001401732874506790635938899423430500062353621837175765571776500792148286919963209882887672556460707027935195782940762893924614751300615232208779264532699083352323185540873735586301619164190554524026660532815407418225285013632709026599536302872840881766568054165693003801386104370972750357958085199771289665877121973327507664287083483464041400877399251364939058969255320194524137906155974614055131955433553064866584778560177026802162494374698316133304172877294275011433949553430202465604333794552653700057629207229670279167394766182374671889228162188472704098708460521353067065968189087459557553038229395098146531026082124114744600795066807802446759947245934415579097050021821761560087659906566311775225730824401318967373984780200901902493436339443671516236273266161264624551701616199719787099291394446401785131932132695541389597986515648216061086827076637907829783449034808559861158166522562183107193535570054871864723452957376164714871098534729781077931291221771445182929178540900410763705163750170114617103992541064775762970651019953139123669221530024172037721894605521015328570996968599959308096275382067731733189897271453835594286152832627344431656950695893476845796334568108084942345105921367895195633146531236984832289308321300713789754543502071906494127259852072853636138958721581953004672316197490174084044266189498065285688408705323676854568213277477499027504194504269919587939228910842403092617086685655997406605049888219685326426900686627625931674690660430777168524507257756637188753817244452467281569334110463162320866929994133937742569239650086516006041061871424576511412301132624766635365131266844525151415340047640096764100184958026536199561949344444622770781088214185481121803952031775722398633109474512347595049607811732199340946238435210117354954923540536438620919119354011999295917743085862945162815761811201536201723296628143733668533125462298027967099774151756236642615757782950174236653887489756673599230874635298325278908832491046692115556712621616353479675915918142296585995563056393548677393047469824150803067495463244955731592785488156509620346305577074366862991382293665135014340966463645329920421967784719217051523897454250427759710982920337263883263396989561944625106516043188434580762461176369768646662584028476227029998125443819166935029667204333973443914085922810608210858644166736955009234561794220774713606128228827756355072992175722576479679105832716444381232305754180651848456242569087070756627428456012561123986687210648860043107103427760663130914495386256965495164768840862377669646743702827900804599269572570100636577390711690205714288228988127733633301718941048476174956392947731670268209114145617460073288595499800804360305435993275172402498602751322837101420246599918446323207344911809088896839317773518293966126757630652824085847570296980790696343021300729048369043101507339386197410966971951792878400548243568569905794401769543346881796305487109840411330482416093993910943493651304664520672191951398165508115645052333934825848439526192163709308196859083499980238701046748883827403443297089052136796214165498292797030466944054397999156491804400154720284636028315559051270410633959399482140903187282914466635393525712741672023259821369389899125781900533477620415970860390308732503966873962813433970372965335529780158412397588150257985920003657734849792257373044947089021924542214957844814656586130169968429853513859999342857544465627979263545098867087372652162354650320462442012323663871461621010176873139375091359353031038218680097019964274257333637803087209393747352054314937698571006386548774664180544368549764577988543887919061160314049932901612769552172638697250633342537723151287415902401666163956611616559552337665262496366468884868510371300547555888869093813718873045280335961368199065483628501136216948788351503781381445703812153043440280240854187085455967527682991238554094084807561028442203095772971928615414543467333383465743123349775706321774465348141363314666895582276214838869513198254763527391917946604304544515740820798795566414745530956608785092585019664415311086547429944596646464348126557383209233928457667162158569927067388236219937113223188010061740005884228369203292880565853436597144941948142427479663825590115667613214347040451813322753808724641043607800655230135610646641640493372071731978437673080430505878277989210433801465882788706265413627759289878993156681748525132443872730516488055618198660398245914292745170859487321101844763125775713793814258690545677361369313569537814614527617397922760295565276181730082069766711174348926143988927658231281753851469135242267999981470755493924739948135848844387688094005870371386221557913257151256594396167645306209411696514097228793361150389185187532820947995038258786719514157568877066432269999571294941959843174554278424401650043628971272022652034489390538592982139403234186172615119437994434018875994989219135323750620981477034071412087211929965914613376131022788721503532295088046990530516786493443997317742182385071025459509355258247606311179768745602292302383204430405061928390242904276393611567340156475608428386209718485778861937617088313093411907041619088821440170935597799346423662296197157818371023928843401151832651912160068765147100446824480368912703492016558806118091643154248141731831925956149123031381670607587633781911917843776598655471498922406137978081033173469942460491882570791852381406988181730177339093188276568185429100687494591883306993754571573183193971479384208356449859784032985004723990454560444180198755362283753980282873412570541916133323105135536857622688344492700723011457481452597209808278692618180343787113999785025885529657492942627084041639431796929932726849111612195348743154218505213050285006675586586288904662522357351113153554513683073940307417961851999846083328598411297220320851928616299468601352129373434915329931759683029374172686515503885183239146784577750256703622731096794378587442494565832396317355759038734071879368456270903150484439059620011313768513981726484624444885785821089326723032780238851665232476207878116614095074246886460057567349321616689701295022384862620383003477951422240378685764867588437097597163635230830806793512127853225887447866902892993701669054360364554317424463752964978426059583181256796097145422320226331512847040595968456187064788350834025900224681987903851882492658081783435201962290907078939717341354123023484814737348629380826616805899844487404669711161784537059570953965724886309627867598094637419460783282504283160242168582656558488438197586517412247738181150654888589327610015551207701448342781766113383749850495467725527082022567855132541246547165833527733931909706859818262095587835655542069850974547823697288558509379925638245988554530025505796831697398378468847379192292666351025654711917465691129901173286187675621954672904772235021935987824946061619871808963200139722031165441379569040676325256090936719732816031077198377326656580218291021825718619244070272510318460910517574590855686794713706159925048919395982094124124400122685420966347265265593012885097740581645083034173242915373622435019568488178432586961864530151505183000507575535608148651214284906698844196693401351293006860516278218638272184708928381784409520910252649708259864083414455222471478446599475386604256571421468678501454988720907972121084493114919489109744356515289864621085059125658683045767499567375533951678742182529971473581821618049098103715373866501851212021347032770735266974801458283397455401978249661514921958565851134288131828214192341497549893543016953423395368174654239576939437724304392417645491821545425629583322450772610409022984925201026107648381831735107943171595717123631127369655865290554424551517000349338013613663920292949204802155725679970348464239548992638786405062414782614642638119330973400719303891817197642456819906795572132400629373385187041935819930682660497140208188061524809812562631362220707988662290561609256883095962386151719710145305093414196718839213773463309878350998112100064448322917480187551062379256995605966057676106331346071557861632527868759542004463339793073932178210922041887006849366290990195131498304478017838214410315939579077538262693592919762328978256420634212964276330112153544009360538887087814571718578761442930359662537232447680593915176843417702486278140101597263549976136340632302989108813558125749705331972696401882611573619381437167843535174299576874005972214500834471355155580412416081241278424213914272087295938526020982505576048037501583593955549920373883974931234308004959163985677214109282220600039353233952381139974519602136934538527947666337028749053383667079574707678122935018958765167153889001553872281082734416223207257371774785811179584434028293583242299204704675097310804632528570392586713051709364860567422513359446128445929411515057077187054409528528293734671671077451149440509080218004511511617432616037024799746061070517351095382182218015094465240270103321325368499943997816774624669526541721739423267219631080485780409163431629371609683550455168247397523800612866019522699279179252919458144192524783422820232206564162277262338636410755985376780536736051411615683683227351852905696948060669376686382384055805885861153242541359456328316806598810720977109727930778856527380992738412680538142261852075315758179961905954240882614026220991266251918934965136193563393824255940726462490996580689841946353175953579930450792572861136568720672829623061984174724849494195598810392844675865688700048884064872996266247601869270754739279955318483107895135025241906926361648930400194406681410168633975772956037671341942420842402048483539791824348585871527235039993246171420179840495968345460903768387920296954011241555713401927151791818598353621350928760514297924299278755225612252127856538485698114539087750968139417804795524288633145763035725424738046439802335131302738756974096557196747645397416464742863114513862352617690162957805428448195168603023834556011765584507958511082241874419529241794183375021726515939895207400925379743740888502247683293604909750906837899593379545662887885308124177368601321911601038814569479834192434954765649733492525597004329267849397021075173619174135709015378869217092273915042577519947636241432931957210170604388764500837485256366329695791813142431393844158259714421171679152381538144033081010533217459965825852403994668010274410290490141425828360506070520226876567779313964903038936800413146812055793070167022044310031487765725786493549649349813369903255036287315604532725309114002741800606419002889980634856999234574390269664702751329931680877901831198942024611783785594033385239661610795445548655616838259138895043574084057075575303991728711467969559121280839256596592818064797732031227575567595163522966104406523488394146721528337142090959719574299701042278991393009428889961169962865572249015233253621860300649024352622311448722985685369105033035416558261100982256139752629892694477716486239946556744974127943547944774611806690279458241420726577903283955105390995438145342895126368089231894708249627826410039413653114713661304630266575894495046281179548115856570941195946552058465125211651247137699769618563539949099139468493496629512878840558730765439869110998418061541635200981773023835409334301175017365766828799094636065005638680308645760978124340559756596180257832033749292170728731026489448275364804550624710373686897406392736974739906337396259112225724615150210488182683218560576828304077510576071750206563263701281980682331151918981878777091944151220018327451235108646761215911189857233596597842131408553612859259968715109036346950195930111916484760862375678240950089216556899713435872268004757058057900861479440480542356647335426671767070018922487147589964681379081378328879721760941896303158975292782434647246628192663250077614882994514751760650760905064280241504939900314347803098682647734070047694186247911209818812200945766422180300228901728680352347021569983563651333804626984794099369634586970162777013000265668265725256968795441202914873267758307602230423950058353837471728655866423522358388715900952819148643223529698779735885746984454366915992431599936422143218969956544543580981436285163641802871990208449676368174866509919500462132423026223166932223095381002634757487248379579898339549937476978249002693043085649750556752771530587973212538188463944409493308171007680875633746472633042421909561164386278235242918597490827683744155532216558190096282144715464421759978297475285858999977440088046317138783484852994720849129183304105307927890384966171627650871387325000423255532138574521164767202894934562450624313709526016395746468875729226488003605952637617558912498067708587396938095694926414711701931861871017258120681695658585347036494244378876078161988570259629583083324336460937298600626478004286565157531115694987222101116378457059166366542931373086853216473536393126692732613932190124325045212506198440470827180278370223904255395159673038400207888214843865505165877664756999533278995853162217409813552481738432855824516924059484899225568057402461950400830252619716435059258202567879209069210929109158440628027363459431259236607629662798443182346604248981727140890688181427424869737634821021655463964475349563523047524103110132532235319470820348911033890389110695409103881389260989541003769297086341771366279837096111675287156789299438856862804812836155361994375610440216966648802482106788659522055192178401891709408847035389070137251305691755110236184941562801350354978888292754860880445161072355028572544017476274789763824597630160372387951046144916556005597803909689935022925956199771687802290671516686143102242287904047898019122071788372550555619949670980176982303586404682868683524686026035862220878708855504327320662079267791630223313029042521787194969723850177646997381547514951008174009081013799471759152170489450349137111545823239800963356288012813829188853567051398486529674151191035326107835523161752114640297621254247195009769262972622412541613504224494233551932595552342077228006097399122126446822263136804793200939400452746111900126580092741252586087637201776169391698990187292730246431227997280737606078665947091360359844016066099044921114903284768717927441378921549659520938631714228095740221652432802788716137821606432785821310848871112365651252609105118554660734277227975825492587574725044283494536968085967688799128057003619274545974340654048504191685351384204755911830338730994139359005158010548080628763825484660450190205688148272708627351947852468918398883743104129266785282356842412842438042913279760822301787779833326282692565644669273689077690041693710144971178588015661745060375742910205217642567678149433098712497144953523621529538648435572592232199640261039048055546347998697116363793855889315525331172974748729034687486537824726107553259576373449599266991328527699768405651636577202690061076409456155368459260646967293330027348849517851005062969495169339045569555542504041658171870148733189717604401033744705771656358019786732415035168642701451671992143166207128760303448244489757093092085878361067483526751068763459594739149564404433493945540918744030662865561548978015075414393522904171119494719630657518940682429672023398216945330422286462037723237576788968292906031567176342253251454999200288885448743569340578051013762565280753321746831206818483622626885674439314684307012408822440619912559153127587047767031837193498082357348831977898044281793953894161363785832446162071824778016286979743781767621286390064006571520252876599594103235372881514052823393426511481089740858463075839737781250936787776482368664347593563312232766900589494945537075794290312656817209705028739348605127924683342245354806285715203811570736342724914323803745953196946387964750324889765836407718166883702577141589016039348417842819285689222000810493613087726134027591994271584116376549380455080483073491725862605111390404989047601964089005368794185385913040092417233129043681271736578330990086495896122779478224460981106348026843266420003429359641265453435134239804728281324899595541308833279918776985639101453535821879085056087152598418902075864639932639443699311035953815521107099352584324826525688735677770486401280465365698960705924606044239816742823591079148183219454580168361617698094185464379699263301815328550253956917180514710208275522779643841947960008263650614626887042062817905284592252891626124274874791909946295640099577269791325965457759144020381560146719385125849606774916132981466837804917470599215398657536816990422447391539024697445779818255082880095862337352902088140351975917492279430101231939412415139562007366802548095139391357643884810668249410727347828246089452406264772971121412615465445425558679897495166739941323477122991968908735760724253338602530024101802839012512081196005982015295352813074647431350530044136126394102738855748731616830323185338350085190460504774409270941725299801428918253401667869240210920974928674448054511702068109913299445226470696232753460449625051095373938619431162677054952719986317990620390940406677660393635833425553657441798693000813978349670599553914372753820587692206181883397440426521545318704794660639647585946803149700476221929291334491023569142750486164865386187573211671078489624937637635005347776421218452253460699185742476647085936652611416560619043202585082138803767953336176471132838259669378413085025672204612574942260168875096270904870441471137578446704370398953614085019337545238813254529737266552397041075997843442940691644630868222138770485821660958894641857741486063925696960111692896009592009830273396404916793624526828936635236306075788076602631168516122333540104442601446247051915891015331180391322678773138472729084695688889971268319131906225222274816666772637433364353351177951115759318458570005517884372538929693983227419424898216418831395703723574112492245934899353653282287048851565399962334202669482413641773935139869778342757535065439211827313974736692829949270016476214574967194209241100175127239405575209463696994247114523568873791490010412957266025945663868819309148490716851794813695396832164876150393472958348460099077775311756492867226826725132036224459262642991107119128968122203065070933073326018413809108148911462672240575394201220726449597483052429202301353567321373646804349157060544703997933416340155720077104610820182409222796898589530280771503281931556444263465022379633725872888972729756975619977840607249456750737325667263183312637389674238952531876466495328280785562984986445365233662955132802153271239906914400699880398569650347215286391284496063375621959722934859871952807703233799557530658266827693402558922046119851860450909525464716502741913533014445426550198913551261928978339626746363752244498257837250569117182993835691326617012183554569149705901713930333272700551942156170469693657645915142959854040205473289143594614330063916873517863425898705567009507438794336727259971141193608817255318110536554594906443339576899439991157547637216388167115002726805451279804917855581236414014930816728206567133468708560144243876334841321365109650216682421558722028331450763846854261114149501929111723952525295650640621269966370183557076092876123997448911716337121031616010529097610587501054167800187522137950358328080203598346621690086981731240140770418841323315430487397143204551916722520287642987346574500665541198775546843476563991354273393648456540244022894188098123760559359159148502818336974936409014071354436875847301956833368330309663087862018792649955504432612741842366321474708462225834624154215769774408554288102873033675626522399424693295739985071206348414523423051811805483024947881089676185177774912597746813610747862567206328852935708976635568312744528892869608289449030713552879736728291124774645849169004249021795236393890741055548150095171692355599732778671677081375667227921880694936750740324521019380754750929391060653508348533959128556024280699546384775439753418713250981355376014823878689989399563935856439186788920988986970814090637387988926988692678039791864844778812217869046746703537043850132485525987278105373118695445620840951755665868171569393520268009805580074802492941303683713936114750635920783231357898902204526459865542552671949045699684648765249638858848297745166129734684932003236085144107298498010042401346395581758798216975088304109852563920174782031352389126991270576604212072162164255776736982072658902838363154766057887099858141217051443034612855161890509751182273910202733278371548618774807493751751219664191053091359737463653049524162343986767102931544172512054422279927909251681361298561157091097390740170140608112443640207837633508319993612434191826224313714089855391916237144133871375733020373543994469927782088454624189559482404501334281280566663700837533298737010055347932949593068182108871732470211573706846646787060992912598527784710395677963363398994761445066698039471409592942891895408586692142309725117089444478093688346261536666414214805994045846742443579780578604125063731418552160586907367561240505460709718493261513488986542074703532399626984934776411412554584110087939399889074181889874838759026541532325380864078054484309104039909227849479841938511275061713590257211438319777754949143471164766308020400671736962585811547521886222159027476091545300120854657338053424924807248780246510935344331101177818362272823027277902039016617007064675916756213115292071854446072728585613840631784046167592625015308675216003886422891392507476130743062940081505184508969945220487752300376838580501120274096325084317538914429399329751824802750046992160767245959682650999371900277076781061236397504429704094567813443760485797556998112947031066540826038295416514234883409310893138910117292355319720392434786065162297395264581014011460494889524215048034710218220738443190607610807863129782132881135511708469771172319855362102010559686668692980029974694690555030206709340090119641923069403721071979976084268959087439465208326717844357392199535417109024590741353218928393054173627291511283028324378341496856007807820055952883424375438007465056041959621798013915727107194967799801551610473064476666751329834593751942941655271558156099341134386981278705819475666505698116767689015251196555670235367171798094037502646386011669095843716762020355366408425618893222662553115812255353879573637039695777711834142186465324565372580403873453870992949886906916995304081027148105038550691082550752936158139811955126799859360101451316754490611428906535031694127576597833091163102490475379716775686238786197735249411942685753518589756672313791199013726579648710492234754554242817658640020121080234093741601009628166941760766290625892507266352610480958894230066104592049813714188281627289499024901580091436396396164378184354944906093132939785475718492306019501853915837130234915456616214786534653689592320471651386191651677643569034734118535186542069290249382378598793468650685128378163659521418780900619077793233440734078580330432233923730353128343435860159094630720203140733294791453831441718410274861283134452551762261830492236899339703772637851046610310669233142696584827282190258892977170057314679568956060505227648267619543073576595974245240600459729970734055708271656513106881851326985400655310346569572424066405587379210261750516170552001664542567239424155320301225763544521593196938533523016301653124844002726740893535620903234515829797516306288248662282444196355646148315729883825046817755976507012085899090274267879803987144901050513966839542476209178187291751334304592947340946620390191726497539224637815192873913760062368003724787289254028458926842747340213507650748638226000856665445491209937279366916757529425440493974167102930903330225355937320172168358907112903547994562542517082122863566395308713032424999480860442598205362809123315030008533684480882279923318633706713795360047423189733162071132875407019159754119638930149918208608987811468225922229987263504161811372323951436372360499193474913555765130789802637375587325583917664064910232682843049273359459184502255249979981970064463834054566753340655154097413376389383919012342108804152739897596003166647880263433904976784707199390508687455060213578966001909119144065145577674124574425617562183883194719951271047021821393681399065882879410369410513438622829516161621564009321839610035243279485602532542314655778860437332125244897450475321222080407709063583939964511800566347828211911156324441159223089532458884078965358016103505569803451313640171648928355141447393623726975918559428568840629257261819422797103878218959351892993431693482001657226916256240721779113205820881884584966390578693240891785568241792883054624811812013313452395934792496147888650832640975291971392046545257633400151784618069857055347434705777845300012412991563410953159938363400845806894459868072960105192524329216533580746891026137952112099676006213172374762042040536691099585204122503553663397839974076383825075906644016803083165904100546157875744940959776376188157272192103959494136831913417601249995282490598324691441607561827783289333972508415746730670734270796388999971305393506823369104288945358094247047803065224992860490480695478753033177472588224841618101292577554602977480047091702192791503832618269605714493112645880360394708306074734432430102420708488854783866420220774095431589315977911147708464572244728098714656246153362247907838689489601527583723388731261167471626929235950664629994484306307567920057568553429555638903330421779466084345067402741557385444445103932780274712953929817906927706131707432353122736644281716890247444656546659485030638803196506078145198518951666657367354408886543345038448366320467969686512526842334398520839716243749102993142588214277733618016771209285808924747542108755192937883259642767182510342808478256109363531118969231293321521148957877402861088123631113496574455249676277076914733640729072053195074778806967840720280420898287342049437517469094607128665301339148227989628299694178782268087190667116090716322330303489847477402504727363426828763706500776883605647185280568341539335560842645600566763020424740733354119597592884238624441878518087452440894719360574121506558129917110797022192218983300907491638644492086750821084780500203271246013248324595331217429253073846232797471695714730420448191062436666455577056763215412553285152746490314660044396322169593806028759418967829922874450370375092934650703107002985117032398320350262323632268373837085356027299570926125085623055938336775934506796103828937436879680890540372046947756833623029325247956685866172531750651616191566607142414680403511159356499293826216468021036603361785809798650351038293344370289211840613452402233349089018750542000786191603930018245271475120797476256568437030880216696190944168657192482279836710303847714986412821317365190789507125404685652560925564747423068627687639281661202735455020097032423077051596338163859381815067786929450836281859737340357434914052585553944408163052577056562905177569868308263396782168119850879478684961524535273685336476369966812642994503272192529214535246058529767143453721213565494210289989226974751521152407942173362791959699192704214784708770311444811806447842269819440593146131975617405261918281824968004840560299488671756683736827217851391906787859445779394363215735787705132355309565436540183435046759541159874191620262340417464972859203674367525304469981778433834138376267870891263516350614657171208625708890135583340977373865659467709978142774948187138820596340454677809861468694904638908652804731149556023343337556252173722932535442518361000906445998761967835276635315603427581596975778806097408018483175753215762369303358775535823535238274442477860838954524936155734047664777475231663027298509840044243929069224014066080530976295624912828485711513602304813324956898694857907170836762134456381113509330687173997897793148214248904865240400244700164597232844359440029091211379005112657344108419636517741373083503948229806033158534755951692455609760242241623584891886907302374118831906681873312777747786273735559630283550882479385651612351249148178568344943149220778549817108639470109375301488193585163066165490011327189052512758734170091783834358390506675519972416485272871212670878664232938957109400207198891653817097328276385473514992958565228763279236680401386851004517340782867551589999621005881557316502380902074751566925191780644217754043603374130705243847710904165536821482798460804812703515020345556415694563309104067667174379329419059076829848010811919981185126845465894246937501736514864219245806461824671110651822426984511374651529383692954359808620763766856860236083180535210347468328490737358379964737807519726905349988648516896448517883283918183957791741922166827481788093746383720939035219789378176404431371564955703656659294310872965349478567079825756851196840782323775487771495878708343081107144232874422841066642407913144818241975597225343954800583255248014565380273128054612231894922087603408359926140993569329372524754195534185172500757773940685065940360657995795953289154169639755228305559235899504946302563299606249486765615259100019620983189781111009762008006776922453844200660285710874109278145121142519313979989947879067661256501701279870143904896566483400808825584695471190130932679136774148520004804373332959469222097239414964035286428889489762801150868351087894865997524184323321283173827231034349588078718388218265386103346620467476754980304838755868055627020644489509353842251963447610814055405506733478047916147463047542751084615062609553205510036244447642255524484220895417500382659672503251772409017849611800005513121878843144277088727814506319503710991142426333796365300715318876078227806806319437892385893693122414191523597482891811376510683716958932660922489095842580530141314977654161097267274131879932721022542676248037131407333985986193441039875437045415240451149239156748264749308778494652776169345424425103220574234818942244496325013723449641311695471620774231966787151059973896920879679634468219629467221814280709179552817225522125994530560264543928452260779093275512126698842171008649776412998806662092469019642729161063417687969302612634079898572918972316014985865120622741022588315533964308459490763531086619493892942374329855676153312516125247868771540089685979725406524543979800761133673247734353301328454702936027358274222418599629306577987066965089900499777819240013900435457582791655397783004856580454044493025274538132072751356138515402865341984193070328834622541936303408988354612671235001520677396716555368689265407840985974383011920445607193686750160496344901936133926938977764884607559450670504971909198203929257424662098320993857447785600152744145266190482822759469502354337790421982802343807919363616360232756475255245152260375760970105643711012654932497893207669429245506328300369047816101629546982060207887930301111977156147512363476354872593937840472193120450665403961194634794161765689131417778174507028520785209699051441892701702393641563634034886696453857597128605320479901840459606597871073624330209265930942552307313496546118150493535596021391552085639414331214137380674117744639292488249113319132543196651277119849197596929674300530452159567699032372050320381869422410746347934314499296011808923869074323406083183132228835334257228110782739726867485358458268528936283946839629942810269704569433587677711338066200633886237617544682922486440759023943194829658373673268181029647963984505206967541409963562027383948696793258195389141561389807710245489090434800510557287639391612711038712317492813474206215613141365945830694797174636804753175512788168849102897038715689427779650117644778351761704611684666908761912740548718173272344848418009675197093211478063962924537556065222267945639344950641962418454956032208706471170084625134558692580012269127251107915708078735835570191035822903948726989015924606926501947205200219512965764184790081055364048429239091071845444058118896013428137417489563287959370619291761835833014959398110898718823241254738906925489190360712044922534264541766783074162510423883699629354576317478080207203956724219058315711205097060380282441359516491620983795031799904250839924744528502024738529292183556233075118282140462260046560683685406093125397341784791704711644938690071028138319956930299202145903593181605728844729526607377816710146508018909840547208635201679222515769715250447792010531895662349865299918579318587547065507328258744969298021383342093823020339054396399377196938827679035451538664914576516169553473235479739103892076067097341934063015257163145557350007284292873865451309271345136095311130748616296620067154509585692629771583882873918500239354067963096757537324458368247078160806481122439013713337578451236832664913699568514423604523416816401391378569874965020866355293255699662979953778500725170977898372949756983817613131839309191678700943299665188887473400918208203376563270806218649841942310659086911993204249725740167188407420780709719451630217320027089950143441615074881810812236037599967898400065252299860864867666115479553913481341276482055464979505460485002556111913872843918604972739467520969831633572613847943489659087288171352613990118456613099626601258648493761625037472782151917191788206510001181938373468471072377537711773602749923760366723653461202627726959300419295308046609209364237992697056102440047218072633796832172858473389785950447627280360282739787121341706880535268224703748539341183546558449580048970096662918443849148139571874590055816141692654699039307909700855974606181712337326092259321245038802885646432100993990492686731791509141768862028134636576021710781450992779369515705173008794635757613433019152437506831253644191337413869332389601014487857871452233391764994609055148345481588625972698756439467026531905882558110314496472797885629264643183686988499949938349830345769322971877554922723728884026083432236262221660890215485635445301965215687181038901927425335621920574153810759693948157647620871097646257343017411365541037551495326950307096088931350157281710309519382600458766374404734885659067906281959777370139161784435210043313317225883538823104777206251552860195453391089685529164536162424189913546936722153542482832563838951055984920867458532848998584797073181374978731845489297281970680291687310818038208133332679323796124596313611094651815312609940202207463171289288907365509336245886417635554801541636151628315280244378316020494649740029013753477682826604982830501760784669557272658552933117927340231532551293102203763169315060623572085759226379539570144352425894839884584722213662508931235790094548834271026742350909525405072752464043737747997804565441257511405203342209265231165341404442748670953116559724780409595674314561478474520259631373019960152275526642586960733077808137397221560028688720082918928882008771092481459909083416760721456328282049186996663517211921795574861880757898784038942505962831999194596769044069643813446401314975049971356041768619602636373113945366875400437903920868504170960332812460422590888156120925251443103422968455561478412424771175576469135879696650660207924099033145603941825076636696108167192550446089013422341091471970500035686709569599071846429948549892891206411263061295405268164584808511787617022500462409444958935999517281337633991245497102591128680286705818036216623426409952494385824196960460633621172504348977154520838436604858864807769763269225763302553912425512952302959339158408532808345079869242737535776729030561427322038217323457964847965950802286551690081286395413985354370914379439618110420325072018947961270345406522396687510914217632945649610540785187889126525132129041949031177026220036543219731223811693262990510817118885656318507401937881107913678895740838956970564338137275422119150374806901661078377205295001187455656114991982412388111085985154814172725299206455172290562765032701396622781819856275648577930138671226484902105127446728649842091649058368130172587218090759306821030706259349559147603960714424600948107819662120104288010048791928321787289152844638815524338397730845439350543852251150326257273841413022843501889358652892381452051672301357060795372738304873587182153949346122006082247857427813690679043341290544105514038285895753881478136544376229233912805620169689539059115636265760946321475369258441008363160019829264437076550076098905243617930126877381642857789302511167555960368713211495043822902369075604927492995885486297343135910109290355617638213327948254836823512976892926626752080409719418622090046970758826892730248363658653127502749242715785909925067865981714613441749014800717847234807464173712326558021646133020049278930525659584323715390554141420830484545880243983933241897426994843980612926179741137601216666088506232103002075673966342591643342965666563681896719645418438164947657186304213169711108225607641883116238426892031476498907545006864062146200481508590755603099519668386042237070804958292809093980854286306317306847544704619205942093826400058100066641967343392395359228518350199911616220785522900112285324874498364206091980107608243841745842253444886606168414469741767455117718715826378500528621950041908247608155363142671681743458251882218307734068413922586148940239996888672796264823707246020870330228158126114552914598072780775587760281746006110461351839758395607957997811314375081150833713812607039971329402660878993121014464330360604322857206051741551650919178319178550633994235252736949539489089546178049592256183692676506626941422214158239841629920640730290407960352814958106241971880345223506874605002992309947116157800897564947512764987043489789066173405738826147588969293050345473938262604988934154483034334950147768792127010072016130730509092757081700978112075989430754207831221254530496360570232721053948143859606588143670794829388007996847965469443536429624705363164547083725389116860453842759936021126224218441652474120112919861682571238550070749776234483035105261758716153254136071867768056059661770109995386601909665396221056356145371081484282005002277247545651475365644540775339579209099894929970104277226082808980610669472139186279741173277636188780292261362806190396423002618018248848482076439765983659569671239063729217385786718493556673783571642681223228114607220337028092631111431405870932423140915972717899981286436030615613723436599645739080281281278396943145144064036704731549405143514610246360429225252649973998356551140379974996227575895178843731404212112065606825829518697194075801608620683755764516798997025442743837046167596476944703301824440809929002431356864857721119911514228477739763748506553785323465425520448503601470847772887423423729003056867461866558792431334900120622568118005070870748912749895137394525119464083437896736009506680731094300604710853526991417553315917228327991309694217375379690517298024588993792697769903100145794906763479293543487533408404509669906684666986091692813293097870681946228391245096333513024343378193913284253612834131186010683286047375925715751093342432108039333816413717975171508764668433926909512335650054793429137662230003753570432797781625190869143111632799954068978262968804462977332231772757879669769311917491151672706868149941009552646068520050364022575301267548359142002323858072220952185166335162566632589253336758299088823925350566429166695915137598885420376600596253949945966710326387486123828934417049463842927657678946263489873509819795536561776879381296002693075818178034832459007791865711966245218266761432684042942082486985656791320682209557921909250818006030195363893491400513930525112405895101041745566633112939798943434445974350148824662156956377672680472488695117469688919131990585080436102786073087199187303305931952392407547906419488832198531700252007785478127548310279521421156680439693575314336223514313136918647317073226437730237105460982833838930542538502628724050167189432841792149754700394916927143102680609038085162180630537147990212763172219368531707420948914079180658302426939782563259371732611303536033484048083189542590618742742719137479422838492588293977803983240594249744607552323183906628687819303404147902873492962527871234838747236626005842379566401308740817077503871816726520137120283678060237121278783987739104838955148681917729639592411653350693405463350238727449784761768146618712882283702944491215649039114527577125566300706384253989997197566832788476301548737709397887904328779275900258670184097598454884846511098388331121709633730220380705786228044838765394041174026378515073186870438136862141156830257544427609997819330833645473461518782028969209117818713177334514633279936099384575748195819781966089464725973322905350122038305968453076822416295909389303778786095841333609680938251960669761248943676856057943765502513587659011546269939200703174495815847295513349453024968761681170263083681670089382736033497565199347162643695224064211806105373587206924335305937450009036441679120855629963055335515331117471138039504233990144087434293415631094623985215843413734239143299738148107763952076527991307814291797796934646170668694131960860138394851266839641837328981659552435975410709919385823136437127913487743020594628759034429964894310391273510789850532700644437043744446801908419668492253329532085054068525666223618172953485424634846624777061801930016520904338494715542617518108825286183602346676271573294287848570160284116139093308281772362326003876861931280402330434194049640778999487738056299764445947380201254876497502808014420807068721192191074182417616597004307647475552136578621242405106554023583619344136788817693831401705398229898011287323297035772078264232704854897385906112789427260555794622958023050638037604107136401024890147352225292592702182829824051993574807730099934056631066136959365481282399312510484531606278151441625746204898908457136786091486393381787861973375344177435870288688799566214062974137268624240249739472592994232395544124466932966670044696885010603114060234200525507099510761521418672989963191598685981822015482886936720243646812776690892386106831294972932076562313069492548896765599614435854201333921193711228605119763927767216220417788588150441988720286976488322105247196312238956531447459754195696239906847591644496253455220958705633643832465788773285935612843309831413681844591303722312177009294350066038401436137297058748692119757793389663743031001853765774746000240132172014538092801356504648129345045538944955014742972002288403502418713865470406142377916981202300228897134181927744679137540932884259630098689272293229183810746249082233244182868519761120653883695709449137232177117599092737962385615867895452106471709007719336603982514728805510294990707888115914675726233702323715939050622023063235863487673661173556829600624363180349433400744586182485362354922270877988147137467066692854874988219419623960266672726319044094627378139008359252342424193887292267793584872466531902760484027621348981956333938015391718672582961143010270160831920939354847604294160948438644127535804735526074576643433130922358062975469151532197843258194049812374010338119751188761792857577657984246206188579790477677292727295613964420180292171977189177928389516136084038721233595165717740279616955503039974344517295602057525440837020977940419058441689111004909809871455725955499209479049721790938296845658456873499252037587518092654009821390508511159305882020280820030529747988856026415239464777488408831958084528623161235637567059805091604489817806988353049556008224380619294349920270277483645415547169659300328673724967846990935139308622053791411435646278750234778901524127540746480125996303111082533194422191936242799467806386899877525438554809034037829415450261282160895119176735250979583869161105838336868122168958246880880031254669417319554407390827018975296337679156562533949317250285473116161136374408862079683927779048205817121235118818052850418816519834133489836951975482162410394636751671598337148686960198628473698759928443152051291240388908097119787760199623438074537852639359844060421320105711283901237264987980976437257557961515798207273367474195198058581703144277156036676171091883974527699947602357182741722733357178324767092901221398133074222827981760129708210747837422954298390872243597701500224632160068628276368705067071583057994935036141499967334519633544782490261552915490965062120968959086328505182630796616416662471227142653617534366041927618121173714709297002356310477296369218388622092854803645168405985174182227000474785063232701688321364738472258587389594950440468226909590096766890572663827270675706892005048313322455165627082969071756566130708608218253040500029820328332128237705567711483323336099530536490782993959987786418051662253587801732556894863158812674280254679177624068795545464110372731218727598270139068290732288169445528540809546884560404429085340484438699247344678772854851316670230676194917390935774143774470432576790127652913657117664543272240529814196554762854036403595531776202897132977579487812808326107619727344724853230114058647262099146695805056137356608356750702025018722790857227283166402230313780914186746943397592232170778871609152094615512938813004822058923742444181031770251399884339324505403897406361595045384126967447618982010300288472501170210622983459659150193945191831587482190518689053276514190610798482397477061020988131062500086350515320972915008966363875690543341694303126145534044284216586587745811910121444262378715520932806590521107105814966958345611541502388918575682755159049738642332770434406339368393635456668277419290530544594639067437880839623034126386688903743543132884866764537971397293366645967918186500477574721323379862521487029426198106770796495987333116109746586697228629608462818070872706586556683910413385318014058144759098233143069579461483061560006848368670812564125454438669136699191215421408425879491467683670199255715249357521036409878560322981090324349204595080917299228404410661303594957223803480026118711836437688086783068903455513269638628967147325413277117421103751462187091057648714242031983054711461916259646081057495665001320031204086238138133491234326499741794034953695704372195754458460689797128308151226836967910123365105009388262879416634833447972651103526499209971112054197662689443342472280037930077718460545910487573637502477438930481725796601556522520949905947580953893284589624218227926587759261835289387294206588026043930934336785089761004583897464209221051080796472832083542721709440202215129597809845792267131792895354922334644005241040766134672023786906437649810897467439849870480805392988539714905058650787364756454536244658460670381668465603831968326735251442401842385049768047050294209326085768978644858199967712299632600344669728108672519308935030554709638150339532864843409706941913463398980011512780343163948938651436303832388991305662778581919593930474037147670542387238991533354015057626428197690757970533724047444935704836368595704633201080325270736499585476741721390753473889394772115629091039409543158123813109270775295354609316066985122633602248551328637613620834451498851429616452283398070653948884182945294350258234419330394240974033638309693360322364520901005356497798239325290686919369068263095311153372196262531723072136126203116054904406383302093235322910588583699051445025962338015602612958529977434188270296744111485544512076643349203084869429103481905261068522223465080372314409255969305823229948121129809591524290214091360323350402528299033372858556217472357672723358944890663425315037179108281224922585189523261221756601446906998384650332201799873623704649040605702564862258355064497647451268624576733966504631942230751502530610643379377196779164435425885382113267602406318543852070095552703895454477676213675497076834201547377387989229409699354235373797436961014252100278079273933253462270455424515357614459156738419361158088303145538849242950141514681037859657028005870867862291561527746479697393510456869271988730501320275105572979559102303367784842156396086253529769357128334148859867221351387221538020624493648061250349709339727544974047034297844444759461518172714841969403060049187466045681379519242711208245415358746000290265226113863737909844563139958868062343667941322721755487336085929366220929901270607431385441681267302264718916179820011133644072910745634310131835030861059523389726831757838025624443324342472387470435654920469327567111150688171294588839330100449700939403513477670244943338282840160847131385490999455623713662191858591563646896385707765711878911648925390012951698952814700030856666342957162483276484123113284274107542948035114794108041551911152399117636125777865342934328703828649388788670570936625115259381193326511494215279734382418460878387375815511437134729469493631010771680507829241460309113317052651100494516119234697659034668835027905503842768759884344694760463279632678470461449568997315194224835481991675248903710999223554523276585862354817381380837651653384533043409162743063952117059551715322135644774183932710129993965197937331012263123285136891860993559300411476746841133797602957546170127383450533455637072705288348797866164409026120153679487719279375212925236712012662732110876311065144849062038943081598851553971485820586958719066151701474875045034066599660149015484958697508731382197417718074431512486926750972888065199027492198183728394899318465016200816327078801535053889562162626369244541309615915668007032074454240123570085948569751076496100482670281693748385329059462172768147974359999187471163125466405595179673872985480462143354362971083866396008585633317975533328653648362275092805950925761955857552324822122398904028000885852013543398875440511257101006838066274084925543071950122422800541214361559445214172958717074649076690982504816067840881680214382495619352684574602435094469592837953856201542460549450655800356388217090250206113609097044814365305490047804023297218066396247673653472508515272396566412242667096441649462679613708489412551647673544587255241955801167961454433980820269900286213274547576097832060041924471583589413337411491510121626165818219682335143981138343112378882654535333399006912422478053277995464432303610649251152510432652515542054937100929510868818454983041088308096297652650874246012357455255784891514878386879692334208442376455818274136478675387070304195036042510163549982175273542544221958900920087101302302326403810396271794983784326779048705123772418427359606917753996381637146727551269243663571006140458204481859141419282745496832754041030905120210267384051008529419445948898709621607618686501105185913296291707037249579855951867063894569754274377242230596223908421374008046003205875516634779923423039325490222827918908447309450207879764011916127892294132817400467676379792140693378365188513943030085492945556911242882841258223060270341530054071210177579004735635154657889252313661499771708280089149287306428610065424431567204011894898550904889200541532157835708305827353289542506643543645561331020551164970846090151475327545802252722870308923652146009381861332398474751043085807160953669091342484893947579556579109228098619028025040865360093529094129936873112631024540521976204692828639321152498069638537215359009206570209185965601995875616287478026133403052133525165270374721928410255620364522952105883917284173714181980755714131808528672587434010332116081526028942923523333933504250561598226580211753739204977905140411938752214009680089543951706872474155094836747801454628540976778496670370234126531052421705903403244959154190540215957719020710501022427392258453957763928551772898845547439636987901025668233986419723799040866738339851428715018252356273533022521337186780763526171014898522719457319374891533134223678556072690705584778932874774326181792151635912105965904468442607009251307026620547596366942964856515654585294808646051443235510553346889533387771551895564184668879391413961562727749582669396865487572059570255161271561527295298923963843481268504345294511142281064540666240760884250742608586231486365976383918706165272799979007396733611931974910510755504094379024290711079012251469768851010829624286050903469856450207091754124477048302549136770316737910946973797684957499586652361920080124002205475456385875761120676976013092010217483175330238014714476202025237558472466053170507283865224729472892153146463405366892838155714536646028829608038197161547987852885859053225195738974665445383218512152143440571823851398380468079687825344261663766443290526919406702201370116686818204550391972341473109332367328227234557545667996983123345569034762696229729575624215258542919398358925766850310542388093284407905732144600292062637038212849051866897246061554815649921318850934595905390377852360485391132467014437016525545191796971344757526342736692217734683769504437778768760599742573338039519201945880641049644609266743409488844915348062603241429644326583902614740814968464975261388665516926780924052672573678394183628533838338096058157641694824608108915375669131996709208732699144086791115986516286278612460035580950452473229238681880844253385853913331119975296370365396206839190997726804253788084217393665545061807265544776236518168067771744071708029696277590111773898149043321158180927048588439193174032120355893334368486959056594588582560629815801439824895774086149942978656961049766815324559188159415749829926923343789513917270443468924877286059760738164682690579151215632633758087719077915892380412316742370892845370929898377983205746778374563387075555958322937744216940655504387261708137818281976800469130197305725265397406044293549548868299734930148858512249595656535910969626454015209606196420788033960589600374504079362736806790004893971350866820191372632509673964197347422622598163788642157064879432965011048517119646317246164400914803849431281353559937510221070746104577236050157772789772845005202636079597365868230683545336501778076572791076918899705425029081936455592211142590317514593694128540735743636110479275051945876449895097380749336780890844562551608374654376511821656084371134610162105885139965856048877879087923449613238660516219274817281312608825557469613829361955356917656884335912925099769634209964609558042975159873254296892621943109096262108384393060087777709936527550057554107547558558134288670268746137059894993642629804454065102361240256214084766891003244678898759171829724545465484520412396486857341881497759347913855075207671137763733552965718345262236740643990438243049618214756296944060090081121614764827272221388311316006753804504036483663767694251045608419787284651352191107445651450951791844113639017925245945621172694279549270161248990372132417611490980812358235232578932608615205203914558643538619349142038542851606020174142996991099708826260326849714660069020286213947049206948701883817975697271359147715257450623367954178608140458306341347415400324618669694643579926483463455961232666562439666296014191678790424622187402979200654775558083789236611612036570953492837088082167440196913848417559010970416685073044695437737503417007400549663702256780922096337708047678644936778977042434507800721561746015718312794727690657173268683949146994989189252971765847282454741033718351534503399325874239346838715171136906336767466357052222431365575143124566839665131547782786742731852929587611046579724718743368514464873991895127281672957315896665520338811972571042195722391445570722251124649996455178152465273745874773542242383249784423122162864808398675425585516421337480074691256003851010492477363162340890640255038206289936986241704089171439563047395293942824739499148289441418442172426399363956256132191053350584084371614386390008644504539903097922831425234755867056347248485455941355734523707013078291720392157956259366561370279265797518356099183185948607980659650972034660191830792129648049789338635244442143267569075531862524490166428351493353224865360368245000052453719814809279501885907904389632163207991682324176287133450547466268546631778184489717820116451416441877971257938774919790362328353395971137416122920641509613468435960776288185131394793789259847985946720473231081118148962904588691895560214863957295629685798574069411511934519785637112467125004030550670479758107837077287062276666457393341555667449388841795726853755017928402270522745281400238381697143747318998267008333562096454055245142332973837051921464627429502131510808053326552438531985896650437992621288790765097129392103751044132408970769433153216986195712983416262726391873844387753776647437870067931319125305494702385337855785433116625069548970068470649287027471824859987660095872646826064174588332203728675504789966491892821225527220201245720028373485526577843637957414851341227023686508502626796102189778323120855014579639569798825581175782458729665377436228141330928788449123541994197604641996422053825774486686375710335887386661129188964964129978101520427441267235796411792002495357608863074534497872401834054530406389388514791971898714811998618971131538121268288076685749466117651462457333444335249412442569034497009755104335196236800772384803207431287459336046766494798954850097759891087637850991750912120140467003636324586031339776429945890232350215663801126683214146210945600399006621461914642733864287467454241306191913520655301804603132812606313252623456356472104629758217140394754146241130079273803518837098667541596704381371175496393528299072954623102860217611704050146409932586172012915052611896807473992454147800641312013460266962799338099009624372767553996951677477298614786668398621832481811645715023564259160529424588569882163500444197216888794426756070318505821852194765181083521085771959294501865457209640025526824021253966303993056031669159618879672695151458805121113913080505794668543466523782080409014442198579391268749314631585593537247852955092441230958700468404240288673086853887219868233350326051156666371443805172036833015845034218130755428352192765670356903014632672343609446211251962128333763633861602676478784058193695153184356772912697059723172560637473498932180765310115835866539153985164355393936041361276314837622432919783477845903654651580773021334438748898107301246351970601612148996089184620814563534556598775102224392761702197555759890134128804918520089583186033149180328302824671454433322135830555598264355449553115392785774447127677565455098971745438073460390480889968721758835890373080217613940843220536073789445096392221994878798839501239737456698954470776260189254432132715567813254159110741987304016470399453178570258114085759905053022351914702540228642305461609688967841710797542771095356272051927538175992448567038729602232010187157089311983770041822853936644555889574950463987201964987156333890109396207719152946114093129534634145140425437648512426427945275734579972033934957066574679106963868827804397400697812877836656970370982917950054301288573392408891837551605322213899214970152804737045320992850070355560402215896880959252227601792197097259092865879511920369121768950387282683514393353186781534369868157329097474562023345664847159561601631778344108828880038895328988968336531883426430301845130660527459144327782112800908483696005452354433518692289453937830901593463514450798826949663539003201768066997958562532202107206426203585523342386327693813644603585134038837645750567839531680592658384971764555738153137995673712763697312222887871338940731716658754400094461395627390415359648668966197275298515946228506830053705330772617327348773281506632619115982489143102431363783932498724067481793415527817567613175608655828742560786224990980949133736563993292415926294527629989650471496653537136751797212131618138557848272384220065441353759301816414646905234103747123409764806336336042857120145269536954298614009686997529423284090804539623052210302013426627490371960740844210100272726536977093885386602660763012444019540137316960224209053104220747953771694536887705318246684433170614604632546314910728236039288968946768522974551223059362262910152562326699326800478103051499074905345487118009858895404032173310142961552425285951275692213438060014970167186691349828361927399526814630982895463504966565493625008670396565032984762394488096418229569564614357738939594778406716964116864139760194637584179325109659694276789311959483670300741864222889958447539610309715129221560155352779843655280461494464949472439203298463909605349647965613016226676445502395923424510646286581402588268603969370144121623901594487686295403198310688946777205921851506354277231348685172480625076983062020639748721780155156432251876148261037861544233623699094459443481257541564145187145118942647711333128674318628142952395358105820628243125959123249092729680529943668316517085845148937675037002947191970342793206820476864540548037027751064391913492649783743478274047207463215131712420626184507723766108424355695221036923551739941933183679567399054800198169050053810510892693314998702046535656237693055884718886229293005941243726381023509778671357524514837966253949497809666918319683371201518494810785645767847541890168995017064347457833724041733307459684086364027716435290305509473121286944228813076006348003945891934641657471887607207149740304277737658706473681926311068583760812315117286495452101465289321779888788959133721081373106176519989256479041712988833719397930571329635102141550244699794706533071703544606685548567016838104196226384873268436850938146207574815308435861591648125209796961589337495826113475836475508384347941837786893188682269919642098843850387418012181130638534777358321930068842553681526554884486136328695809959543053501073592042840452145175350333698371403077924934576899780762484018635827475516650370496564902688540940831293087951443324519106080726942326848034444911945420211783488000903286707147221832113308527792783669481103763530142948523967300757715685551836638452741516543504510880202095504871524643767505203160134917663304594095033025233921269015995496197956127080366982144253736486377843086154487422727801410855924651071188866932593608959158847185254913150502624129870523560697035458227790337923223483920404733200698220228864361703949151288501172580726066720990118385721600840618244827334741946928362720827414121871249836498865220093877999475086699668195205990471337558034289414304629015367067271982624894867559077909468761976023660919562659448116189429604381536956520682348164567813867955847621481103950965418781006053030474677897318012645523692197666733372160778648185236168361497990018325278930048489836294063519434872255200544574659689632094966120020436005198129531597321884363341330394632101060246564383357555157528212861429263972719298913355175117543057455333694790636216567490883313497975597141073530433444635866336040929512167173774326962971823795018613658869693320133672091585534275847911902435589453120836642601141884696534678341659585794825561603013045655357597731556189162030433661264068730417892631423608446329758242307347781879417249309889248044821726223352378642931018125872078556581830448471980449349550586347066670786574881024934252436430275024113481625022260849170154963836368536477238415430892465700477366141439219412436447669566648738407987504540748593110556143759101770785434897550267583865987840541276125353730778780020144571310066319962523255847539321085565028690722067983249429054707153752138258913823573503448606894915697854409985943749552470530311079746333468764214113915392498300761322158735594273851910527846842309927853155956862282742036482346022148666466988459166469117427399267753925774176356375634527635300234451564392823247251825990443778309733549614064036017895700901269186224727632393850589786146389526252442099523335021717658859181076212709382849302433192737475351271040683862459545307036586996764373601894253146951346529408623122195588988070277635842978902576468638775462030049030124964293512867662751226292557270574672766458819206489372075220366722061138702115030611692376429561534673679212367740824772160228239428714116845320821677242671117297294444172917990031103657765267717628878288101196879378120171536096762581467142897612746308511620802442719595590343321602547108678005729358623800607008799839913321432364342689229650149145493283565678641667372859063558440279121758124094794517715104210976336531553275020542171769296113923521747307629910273347042745903917401203240118824875406444707587089318517244634108712925246394837419287652978271494198025613318233801445537976511870075639503318059625245647800176157799698926996760085241528425882722668158558509274071351347410923532984843114299984352073142524655057417396715774702817349185442806883559107749681550729276552438824865071775620567227382973647246114266240884490218898422378645725243664775269784573644117193414532525526017455558481056166364891615286542741089140717554585702726965094343157315647437210378453941200568458175067200050744207941943254848309357822748850815866191159082724294631366628332322191679952217958604265698456963186017529451717506645884749670719442139249305491450696649830472619350057307393010655605124154741876118292903549466359650332988959664797572104548467546690353589503384108986809356377525354912498193434995653856484543153751461431658572276188836451615530374555158246690472573011828865533726843378126268259228248409939264738995940323538805465572936350519912805537685089673198606279246587830535553578464360518277265966662059313615659897400136561179445124031994922600226088067869089653495950421677517531179412287379464024047823980982999144606035283188846750771986845656960871578971681188902963111647841198863405980839791673464688907244864828634741880122474099643115813793992912451293854108550590644266271922816416106204776534992913180296822794037525641243730901864958692558388226415130963473446825227198054790181637142559345331581907626727786901329577022673160266883139516536062609751355604774646998227760159525637288176515993314486059198798685169521330423587642060248688171139617045439720399055610853059569153083303545873994314720926367740718044011142620725830299625143723632793981844429885870789183204130461874896933990913399570683163650084430910795018589561512134885676909859889686473027613070061393673360349717090643871630804585656424012942248095459017071716134635719819312466494485399263663642108840622626381992865312644247176377957506719809756146556126363115484788780249348234618146850271605818555017102189764433620685310727523378500022153224332097975842587286189201087779404698290747963671712680539090410392917843519911337460399292893780821273094201908313716402381522171587895840501462231885655606333517859818248970256263032135315725848134986335242956070129961276535260363247486405893230290662272921860530062097516325967874866103788897487793414888143021718280259405911397615541441254741947449240996684407602550250339007138649126720756031744464334087021649005140820939833874320200032187793689322213803295246400185963114203989013460149571420825019903746077644124997390397742212964309191412162407530792452531135882404398268784693441682056229225703156257404957162677640263232564345626390673740688507050576428830434715623097843062341984718835360208062848739780119957589403169309756361935327511891870581155933979820482705032507143512639272097353874363184591053915564536847816410237216661176175676672247716546948749448594209944758451055808380308665967979244235810355874781309468007117966425643335291680786405009284051924192228529852922092380477529702894928901060976893030615312455252080216355333590271642982033857376796286766832783828658252183568052026535832352388511928166831576733121734882361935973930611856513750805173874960679373394354078163480928399372573040014919445587168102180223748505641304305507586403300714191663150305610003836908670681578645798876717173144552423532749991452626729610582304387544639526885351358955526461636805818058499301346072117123307997324397629288103989669791377181975708868588846138219551172014725617690783925155238206874171816143351892111609712456033705197975411691151647401360503983334952512082785451685724766982499985181223287642182334243235018949647644890494872728687334915051326097158723453824510436162933727058769813677769546257582548112157432390536410611255147534125997050216527132224534042971204430756460033594154959675891043087263758691913187297591729195446791494986845391774765490011514787086316248859530042465548343394237746423998740994804945543439287997287118317744013315490001805384827358784252242625417731647238596551400238675033942934785005055330152559784454621027268157320406231991707485268562019187805063053074042460449939989477587156978929412301793376918041097381811728458535197961856641184960724550959308615383722575931089030460870099505237911543865326381137381859036299216679583018992417177913533280678344517132042046538915427049424097630891923223029503942188120248110070174705937914909754142402287289631629661989275355256184004584072097512633686564745686570396263832871589644539708578508186504856690376692429025479318424885372877160794078947237052220147252639292508251712516326753729845403638857599376905850170352581758920692856079592968635678919243162254768649361121033403325505054777623074924697581775008654412705209019264673098036737531210020038864102559468107873321820333564991152105639272143979410355481757007834482605814850820198522484958423054417180764786316086432467602755898329758305335205146736331067622807929528422834206013710924359281577518636494859677907073874358951776310185538416317676342911798232934471568545558643467257189276915710453722802852196448314780572943082558930525933692170930177681514990162831479021150119313416913927734747751102413775328168795471518891662328257092557485078951095163894962412659656354163680288662623796112141178236397619826219441471210148070959828881989787446117843612995369632806546258833765143791398465981235240605381255729964091611369163245103194465984542193653581541961428811583446507403303207540875140866547991063949236908377275081172336735538810321802301118937253611635628246120837850587449518885545287256291305844772313893638607880641968312183636927308957203370908560088769789570256678582199761983397123658802535867828735058803726899306390251193848167126537132908137703603505924708663535488532240709955747305945998906253761398875743271367593357085166704893477760326355358426957009964457043783457030153685513897698486849647032871864693064680549475795769536881292228412474924532257350769854124062376089829921368706430052009218013685495600673455304986868932360935201637858152883593104617519221602133356270570410470980655708024375780554517894353795776848636154726639554090443961567184881848061329966769832471298592042424468402780354636174326706324624261200169820742747466773124589993587071216010415527378304537043628118625343197701468324602407691633677646253565924227486328422703599025008368432828377619148783045636116195569442798744329729536430518696220365107489896640922017158912180792408105489390350208686060597101324499714841377455605262178371254973787990563831843549889603624905307727534532606901250735034293592039909474219235144577674747590602850917706216467916922163091933144471695831125098752634715055322287933975266789302583923947488237156483862172508299579472608373872718588281385570526507750145123227936064996690732849363470287052443050762642661734902298202753048972622065075027906882708757376044721827367173212322857212078253586522247075315394383805580313770427059912333510737977529991089905293161405038052607751098275549427336603040806869409619467591053331249843184157576188405801605745236009392681447161242364909943806145533824990428376740953336798395465298897347598674902744462970223695953434565056272397844828979929137073821780599779868747665723367821027588976940915843160528539266752250625694934527825560979995734412671240330543876275266802736771480683838066679200456933675583245871433935801302127686715251318290982586485901860103117398323602241797403569495131105447859576398834647535798815412429448071338998784987085153582015781917653922030918065453261066782784585334646251714923695371948160288261891658384219391138169638092055015180964786968263913375506242762704330171902647613233877321203754213074336023707092970898075238054790649398266983246484044899960149885958989337097487608967955961911096536800570908742140375559332812956202746487385759508721037937310744497045137525670112967408822789240583875778625093563100324879625309503892114065797192993638699347943423749805715946839181565991474152391233058108752890686836479696158601926841985254477105127168096594476383550984226244635132477737457722277725679698069564638350699512101579449729423308223014957841158943265298818426062070988893886701130379582119399479004875131873343420381900725808555900903805991234990425207573385543252132991603213973367476568525892368686398108221489190903870966998413295444136908504602103643984568012102188996689470406327808875157722650966870902906912899216619078529389608260853694863513151902433635887431171377530149045068184824699324313683939290278950151928960083896459307847372421523927426206858853588364517406560634107448857711142534699841287002347722692084388776145280455587584353787729386227040000115392927333679161103558999965735917704283104338061938976295121921980426110960158046599765035320367945726024651254141495457221589019917632695269309013481366021560250517892740017106377821520596749349880328657183959627473574577761728500890084004534188573468877948972289300170931198664887774773022168022099464517599217721867264768042230615659174214594655847496581906015439170945634405903894260143216574595595103874480180588598286759205424815303761398655098655538108503343819050624069088164047894946613417027030899251462120754399727764681646906733371120198237851010507927820091288856329544013614896412753274571202681856845614890199884958645124836266920860723452495414910679336799705916914254288599294387098958331277253905621972422770520474497559092299200016498987530765897012944838269172190965935598382482598195383196278219416130550787102842012521523427761927883149019618864589900781008351206709917191962762639708777557835412081132875607143759830126766341312194207455858529140348255677631164080021194164781032008242595016063293002466701784555663289888563053495838251879055573445335085703316283036345815959789484188387752660466002802296892134101750619387620942746202068854104069887729611319792798223405609049548883859149131766550202001002198338347464414345521826230311157215277313071562711991326633123006330518966200749826950532385772608618078484533200747738369491956694884718454255740104287608399055621791560858978215488457974839649259962834394278243392359907070183553222935214822388496223937023891341479635448678906229343879360676023601512282409687998816146513966046133828390836760549734523727042983767712428721470366850018607797869440866704688421426451962106169515988415531617191440480716451036607846141439410331938430192562340032830346999339455564693874653734932183385034691836819496544340724844654231284923166255199234141811444023783236539330928370023407759213841219905860853658154237194842676016768890833969309644555774164453396180192256212290336473267372557564575158535229613694801004830904886074082064068020521101737902326741916293135619838539206784742830352318733137890358585104349557162448943657751830927276272330239866423247841892965299313044396661290945453319960225128003338022203444628312191566488598622556797409577902281011878185690059853645268207424635345781164505455589778464139735666935411062975983457511112119279314666230701584677467216664403671708242279688001309144538663395074357693757174527236798525395229930847555276088676864563513605346971794758391701332373987780226024955597098230809870709708343606025891048011165225292353902708609705268258958906373255977565210279549936518508618847545994704613132225820164168301390326697367012494562515994204594246078092046501862107448345329738881330967715114732195873597699081899531397288994556704585027828070960039719695723752499105501194622101313012435083704069879501740743225836279090636978785635061649118669881284174549551780789346004229599946892592396074981209068314757197837833801911973933514821374022658798990955145375752721409268468713958856919834841589422947827495716936500228669535826729226221049918103630167558674193636293105695449670000722581981156374835631705344082943292578153706082630371629402682175903231820582647968529710158320663110138309694539161976909931462177933876948803896305052812463155816863747049124779479250899576501415594243001387815980161877091939954133275091965980547206114804865217101056971478280855887167729939349088425407687279339611162792702296213717100726963777535253912133570334149266627644174712255459640042654418816773395856827114565159923098684112245908091845874233044226783098378433124915614562939360990628964804804972162428434818761045221448969515497656646469752444498112222377940447603012312780587724640460469916968487792576332919413294161925346271119683931655527635646092005362033839163458060219169562286576765629553038877910132098406126615847065324878657690156177491767080811841262173623905250948810708864002590580428583680337177320374869912894016443075252408917435992767788350576220192494143249047397782655797382852521115610119103979757543084459012852078228082886215680187922702006805705141831407074171700375475914936349080725686396143373414686592910158448438508943968071986236193035631975856260450184229422823812044618550723419811352390292063993897939374063774195642238812641552003815901785467227040983970630001034553587285203904689585228211655976597236504631373813596844378402520030565815717116832402624500152237597747570638213915196571799454173925240673417824017847933450890491680363341725811212875252459049335843413209938337525055486894911093237543907389063694272147370520069578257624119352166101072086658312195619141280437329220640550550183191114517738378453899631340412795114574772524214865473067136256825393367018357033902397111228090474526805666638580323237802534036862275559544109466725091584229377219452862102929279132252438289541484002559130921748643072658425272596661018662772978087122771023705613665441773664902940097401401196505649408601238220007731565337357840642113454005370077442994435516122945806053804796152401261794686264330385255561513800716626926427471070624103879770932548766768200879763769657929000198793308341176514867462904673106715331006776775075115814439035043021912959821979591439293950181972870593992138781703381973877190526466346391888536563047577821758250707438952024963826990120520561657837653601027712495349287797792943802935207121069255217080589613063124516932234840765162452691520503083869141316115141982072406423764821228161276923929747215556925435530301630566014813447773295673753359763011329055452272201934557715570072267021142234180929287382584312400690979272525527228521081293027902932643420337421517063745642314420148697324272604969439628662924470977323080415419953654842656468696345174502657579629060772190958823607214788780158510656412122174049932403286304875601800935644211618974002254844471581696404300910806206450134260376924197589453066923594942554069807819047699272758254652443740105235730617013591074549713062251595328647111850190151935001452748124892437493692715215738327987393022149208755255458075062285172289000174627855896095898787322449519153509425938784057259095543430696858791964055842591280807382545151400215264574989573777938036392430414572261342457309794057461388755140201947381611899592816503145519102223044144862016454586186465735183434112124139368094505188402214674244695404847806992823032414042515283892566589574661155304062829717748903727498351824044610736211863045187552701501819725994829227657052965714859059622775799552223498517490478501325276353502916778212971907141597769977382029636740806469018311279840299838630343841284402649552585326852147668752423964205853985490958737357496780562503628309518438932326710861260606099138202654264394920025478147071729181692957569103534599125485291054825277471198170989841790882290704099899297565056600868979363358085587775110786592537299361120522947169788830185171720868599018484626847930067145885838108105270493287121412051504560509089076429108520657597237679776155330635636870723339320110087363274781888093616764145679405215215227291431056571350564832328730716996395709283553452509818621791507710043806354218498138734501709982735058182190038630108636484074417622801171397420808893657722118040932827515623974884173995234702278689308526117505184171273637608446597106395490505838795796988625096533595729062509966645577010201769185538150958885324091705020696068427331863047107901857791371271284412834713949890896318984426944976978787407822175284269804006253424664654440896715344020447871062298093252738875924616773491774368291500718844662120607972709442330738039800656951407121188436145679920715231158422775767791298704764974828818025643497922184181538524401586591389488908187762874380979944506860462226928271748968660900106557787789274369500677010702716245100349299687324575516008605397927786597810317697537232210650070043502409814797930906818800902777529071635511805915524110426208394519196392201460027986281804301734989683336182621467632514509740273755699391209609518107951232800366153908182004433754177455157241050405590731647748135415647899020962119724162077282774543499128054306582034984258807573810998312287304746855815836791512613349300120877645592450347154220523016097934568648087284563025923266299137505478230992146395559598471478114620224265892721529156408758013174823300957902430809035164516241672102944512810056819589385551441808198534142486735145373757252889668282483549486836525655035629677208972119995979313451815698621557614955214949185443312239403248943765022199430071325986335233975754453208630398242392749030668268139441601028939578157423238465239440408356273048159657406527504746823261502971223054680487240317947493449814764664702859337839981334267776550510952376252495653531077393089549084242032201861651408149603326965930383238221177029040933922330918758748799551863103965994076570453504607682706297997910510000562400750955652521961927364537767425297478715538545294603871487384017801488935945821813815821262329916485198078344201909042421681223260208189685000869275901127474294254807175998890000107243641159583965661937102424709504148783100561117130683170957526799560481730534990213152761939630568842696270873891767246068377260330552652939274695219308020377965986991771861504617959965437210347422685146156513059746224676615608123524952773828753639460036436505508823124103402945230726214720637235702170283563322666577921153604313919523940627868524310942358512523855924176560419935312360327122928373934319803486725535603090194853350090124613050657128931231594477399674527681706984327126100749127720690254661451883832788263402680381804199376643032539781871207202687146584509828778753919974757763395608967347125526212208772601242509762335150558342967946662333570312578606492479643421391916479381890861113458400586891897796701451024106878882917758429800725709180485219283648933695869978612861431448252888403014149787207408376894672430813843199581182574268168777991132586057707029010610183495271304760637193364517828195370115881814700245568901674117046400938732354325813688583469901559983153742930375973563684872715246379647815572694486434405141509883413137557000304036919545803845771520581600921749407713556073621966277643834688137667846479334390028870246033745488822353086286738572747918462381718524640875993223238005569030057022287445519836041973953337870132181800896398370682553890602013309401748023918407658650259604730280942503264669534436702531150580222062110849017752840393685390154748593746805831876909202998661771607747095580781201090988067462244371699614592728393279139272495487607057721906489119643041938105582078857888086604901108462517354558835546004097703667534333280561369496102464316382149128621201382572645525271123466984077882266281310329097429327690265279195010981948043425554956475998533182650288524393282540303628536641163148532049270286722830290590047503553767207401657683607570168117699447523353040071004986175369483944087748870021133190834446628121681481912989278869746158554647152051762864956742035707042686825348591331267700755556704971063099299589181381705588218543025152432867190704511468560812908951874166922763414520125919076944557901066708129625053715478376511700234818447627114564971847501827812660477334658483010059487382497513257787193475657485670965607490214479149455576138046712666336773791984491287304208072779366099624480097966372926953779514395913965069981056596145183268766303009676229319302021061915251819278794047965831533943500082871533651886008969098036044164018140741132733425270153906646882013939572497874688926051746654978290438613275182086372292355270706395382439968010737306260313016325237507332598201111578138101492047384999030589241657964395153137180407474288259852285770889305797531318032346103946521672704831420809530595729500490717275802127426105346107512061216238401428518585251877691704934951354697213058691600435184183624022548821842962395439100133041669873735219772747284689929181165233080286903528380540000450416406688280097325490120198848021061566289492815250398168112849550185094600843614998389263033852248450812921728057320644983843810630996990558975298927648207141594061354459454712148849167032820481361713739807844496961865176516962767832962329749589394467214503211486724476667927744913169719974404059587792320259962315778368484573403405570067369209922498164945499254554520296659409130281019470709176686205568712327312819861451478500592776643990646038569216522982391526183980923779170400073280715370713123923844107029199218291668235739079205919403444377799070102767930809196354186921431562609450981675835734329883221027205546014052703977982929012650612415560388786634436713517322589323747338235033884826655088917043899694820604122497910428535725614042518068957527025684410163728230730061834036955840576377417277144413945795299887624657055808526860502989730124575342787207601973809847056041931778793708841253243929093804627539568349976856480618243939971054936847434541270535266698267077494627907831895841224743490956023772233089357682857909020182296140193061977063270392301966811940463623554294754171042451166361060836855943318593729738589047154673834132569542613009030159909903613861075157390362539678757257490308107535139358770003651794132836013019610169434215033101859222078591980052971492492574488490773584019570198340936090163919689368808465026862805314367858498134415510552831097222376585488415151965144153035256921149643700540275937593745846252569648669450857564779808202017637344078955439716934690802922718306253556869271727116893099861468169178417345952969979006935125559866923479428199717844993743693886503323611856517869662399141000313702676258977624933063066622866086449423807742351214929892302486808257607872051167976449791077076427565681330369989973832475528412495968293067306768671723351942073204144923163192385915908824663675178293116307442182789342860876640498247522793822071302172236639869498948583258425139637800158618973741168315293687720890925016265211167127636102195525475954460208995451855372988844698349738731909873922251418297971945144138353977625642456445352207666283104652949945497267317614359732228078950635955840492280003685432785873184375260465852838331925415182042583216450939950743848538031896681043652877921279939669059787047066210260601281296514204433838133275768576568665167971382410395532124602329754876949865059036902146121115044993279544647822104279185498271507234370148029665778292591951028423018282564744465049852061764472192080884305010010752981071773871070373093363525153291673521525193150373782180907566218309573572184487540198827463419578061441658395872468652670586760446539947672174255437960063057507078137530961982797745816932100791326209291270214932536600271160321567692631623385338401921375617488383876527048390898629120188882942815881475687511187979424218302602785466590563421742456313950730291806593507544653040315460602597109323841459268293137590967129509671184348313737394646378543982588868003254176062049699610290121753723914406705597447398930495121269960391952305254883651694677913621141829514350449680930802324272474621406478232851864907532606507757162056493175421799012865856562482697484822712965507897702514697186342209559777950734830829657956582613831299786722826243040569055329697579812671849091613139923187773673185304850739371031802857105125997676971365677538626468190883829161565000218559746980669720220549943287205330754206097489002876932590653438277775805005826633327727126869157788724562032762795286800690021261678347311740850714225150323285960200863640858928334553609291949932429329220653309966268826384385291681563468185921168714845736300844551284813423936861718251128842355232971734146067649386794766749950974655492524858414451474711477477259813304518736405337284540145851651763787768826843077964499723050027397148355832324885993230249547829005951149208502427187589356318098992099442266178629211136306889614141713217075888055208326087274533268593160110549349024671396721779212432964123755376408106011261151892070795309588993604219456182963940400459523793237827171655324027771856238286452202853026065026231017321744604676180944631694052785259870062049980557486493350831625535191881642338463431981994097427203906892162403416117762278725876717823391210502088573710897247539132107863365448531741857490624589880760990573227584107506794337971713044468268054679266548595707406145767755167920096938123048386523934662203292506686665318230370624588955278065923141248748219443540270690617315256545193164635396828234254395329679018086231214404284055541438624334922779431675044374198080184470717461700293292292183576487697268500417652586885652412182529973918604055805775742090405053320911972157410081816778777274708631021271615743127163932843396594506454894527041271685061686592702370076848931101750544525673727897351946018100593571292220153332285541237662228925952619785764064475018919944386834602552398330661803839541757774980402212152453509350633940921975555644138573533789379051483820760608453654815564244434462816046256449034331811679283057227658290550137430948459653304881135939249999314946853859827576211449310439220372420868795375792514270367097602103173146179923699899621396004190214918751156046633042054803349717774553363383905976551844367673471859657593031658443130756777801889993053917231400746999053224951673412263925795893180073796154242704702185432048175039830535920800285812293932813551291321191947130526951648253316045534615185192457567008465470415935353646571687373928046018070248231026566249063293998025314294537905001515596477248982037481097122956035310314530311459626257384351344087281021085822264502251086877592296789364483023902073660004746417293296382734331029596020513720187781964591704651313523569368326442338599449072409602819297373340202392166990734811518082885541032987499875753199303568733339698634097887133723798345200423674583905829169637308443149791559479833280039147610581686084871721813590130058587870867935439828949448821781772348435722258765888987732004336247640013742563610585824133365903866633437388508411914636000911434759654753099390045101187640835568585847541512910540506257855373506919001977430870954141742756576897809635373860678993872436320171515492284823532784510985433552106175046155794540213841977670992561793356211789929450936777044933310019498513617372040470310800816349085872218632202931030915252704174450523057390228509574996214350136931708523273731238196372299826921379011807443110813847191308514269686821275827095641304921628340167571637607655694347805225852388726098524496269600156669739853556540357498382171989216937498711137156888004654816023245302471203072778200375993275774333984268554676939342356106372426073734243699325972405701563420556902545323995107963651964101550981062747135065220116768612370420232247128795009244036591241050036119015370622271507979242024147741158183230414608415401326702891175976512999472379476600921932624150308188371100999434217470127303053617573460241377314797504404927823116071188139544323072433132896118807998964302392491928896409199463529066035684977552243135330853603325329771447547950277726804852313190126370835368871398063032743574978794258537291910976243481681760801758809256418039600299283563755853706847345994141783113467817699172246890044844592350705582293065120997340346621685869818970737899052962730662475130943257933536866900409535363046330351872397232902896507082271903557771630704184312355162349491874812618341096284610705721678572887711270552593092690282534399160682784973602752075664705768627842295698292229313274789025416757496168269694646642228242632230123490265089535753496947803325762834476367747658460559828838674975228196834130115753854166192538993554185327113530899596304270865294938625863958927114151726943522337961642688860914050890249497001927842183411046398034632850580223932382503099948870798110213098597033387056315707877905169975775721659799479202553483699239750040671433859137274999129733395577578510490055662009667261284004172230525312747448997964529251201229159414958189975284865406579396457291434448329534173765593758606697360720419374787423470343901113392413548020820801313515695598147903000556272163697582282700860005318680887029215900408825175713829224045784465130246811445171699999516641205689648662882087874929866720023078802607540027964089427033829032541920538824135930736875597057678001019290382924367008064195549519136973454254208231207299128438741340308122075625938760168925315063259153129945585709826274903785209291032672912732273649366592697556570810558277868590686778467039436561507414737572785109515820870342025010864602637558965893350029528136448083256186600172872747818981767852012632098798526444491219408808842722506006474961461071841730699201444940387566257397008797005198312404613592425133992020348992616535430802953372129963731806198270409500771644977520924169033638506023660325536653677541680848502060323340811561548866379208504945708042287479274220742492679797789538733221047327532386348593736144836405333758444255518893969049437267113293570730593241827774496791882998663285515068795447750175084097782500686284089538537743478934556592530198827942104515837176967738413100731459775258909804119144714742276306998240396823121652517408815355379465220973773160756047022300716435595513051970161693378945019876313239590947452439419106138809178197725199866691731675215847799619728834399297547444244946334163143606673634186630841231236086358979729635927358324370293499844764039384361224119820474505146085048130496111852199798091949282244126107949612747972316171903438408091487343085112726169521260519023726894907340203680790774436464209465921788400632701807420466034398777803521065748723905274267195300378139078708164167701069775837333880108912628437473073599081652955840136345041391374983008518680091966332641472972087075112647910052734700660754914027198594036042985772231409644280420796655191901817593703285907011780833146163406867579470970876096702678630096791174585114836002017230301675363200215327916624209442174386041719786399174811195824173232955195875655923039366956676018375827598204685474790314657996969683066151662748295073503622843085879456223333544039539185929197399045550527157912794378909489200130975382165052366146173323101899504173869065164364847833813464751603500396083087344347085801501881698759760357382053461403355466431424701364381823880132220629624872634306871514413693351182824495697986448562068725089379683790714535593925522279975559635714510183007176602253137620988594734583039319627999663555209178525907450411455888740949265632798371612923425270723981689931357254249711603692682589975553013736124102396546833803655460923741296792738285409038979840654005380938902534037662506989232271098159112956810367473094992982177677735237160390929349500138911588815043637142913435636681288983651960895617925123133992665556148943301053557543420046112873677498992801122327318718534999646589188640420170541317321580715224559463720294936778333570639173402378022818054556188926852266388690066772035457356530590591771432536902020664022965512376558740257732814696630747728543141479322810869374299909128277003998756609495290037933432586134098403042606310016632302292420157374905402997158984347133435671361280403155721189445134032844730928298201640364635495957129989018279260124909793845369014605527552863863020337032707557605274988873705593213327859198524926117299067289945398516160052508285809800364159699765901076845998966746562252262562522546868468762619708229136124149503928579329353759433208631742732725327419923588521757105458845346036787581555960334695949055309426613118278680826217246270557447931649135570894263753196523832412410228662493374356516805103778242272688971935754272528543325321059710839030462544035350905378769627241275218090180083870809531157547833199875168307841880088259989638754705502486017512118719459639349416410012924963084788025461665880050072842054007465719295977149940083119593557232672984304004985133620105660174511249124390058587347226323981105240485856300196925651585063637591073755614259858473156433262519709751173087762916601125043565802659518023468012036821446570685679827825594578811854135810115551087432896266086944725911171675277727260101149779447389524516593167087399938891321069409423109376809056405548849848916666639048562583935831833216211606105304378226798115854050007009880629868613368536496534658736244379567709507035987698063806283069474159543614600514772005424066049519698906273397477246473719888547057448883140176028279824423459669303461177214829356911363437994868304393629359589713757676104050174788485991101306716467488470922292409839610542798511134429013928439782949353308307784749983751800387839702831778468746950862967172744259979588597815507040863957082071912877541481088823791403540839084286625725405386686752814410094277491015275999098319435696247054996914342397676771159185699883725694569947905663417990386081814800872295670621692282852807755738639304811344072817226424226396132278843804698642636971948353805901468751858295218489369431202587394582460271153009380404179737022943240132799610269590196394916253748056106339102771432839632450779515631786472236623828693733897567231048876453736074899615100567182810333808051190247952181759729207905838423550819062991013237531182409157866192986045320524423659888697466028077636816352215387496757790782963513123825440716465698301192787599188016086977273409166777240234667844318452784644868634082350481054431786930720916412055202296408776506049213609133494522488999051506369052878709400725850366562011199990716302279099631868240906465205625203680808450307242845854071480548742578634108054626704815385690167353769508090052906161364460518540950038762683610930762267029213199675028978713828068794310825266058787409968556249043932557821294381807825070787317883588335838617813224158968896340502346029970080002202718647252430988690073814133306468915949432954801382699475940359383384791248140062052928599613632699714785292217524739528644123726210048267503287833310046075043966813176630221508691855411181747569210518952443522609436885064705081583830222701806469533687776416740032683557721938276460782465340882067467746778307711437902245148448421539646021693175415292547660442742566023183173913287520390915512209510244581807323979857883317523369074766401013892761014485568157842589959128246221790715046330614010450803940229804399670946171127274672677617741154930291577505612323987510734517291943744793637103786412910618927180214403377575605775411343299037151258517050297555315451597067569002940270192301940215891696760879895786864774514920407899528266083991163561406119738244010086558424884206326557040395076300727604915718897086966696837307860998742802378012484694720968735515984266973939739622324739553344313383440618745274310044461959536383665259978358230561404926166058247498154910395382414985037642263733881088474546100156213406081687970195070739457823051059285657358646277901760924352773524028103501487095378348112042273656848405923828134120092772960898543002736167279451151406831749755723401158963335707613556717933901725709852366352571562594963460970036162721787801953873891614641503606972816773245047690336289143894550832768226880292880651353217012786835137415181707736971391378517696398192845328720698445757519714474101514063192641831369262366834231371950610029185393174808409598256817859113037238224600267919511191914960583590562804674796189056609334290199412073900175663971591621395017111763398707775405391077969311944119957691704290904843327981471393065885777240458553962224512516414515754942654643264317709627194986179372133050649232719857422351661490893493518027249126972505093982141190766018186402637989942896119834412648781623514470050525718283641544291757956937314330058036572205356330793526923536119897840119566640179907987500047880174922356486576723204362942052983699003899342465352803229335086652202725275072552032036568460990458215742812831456080576094650013401063271613712324109504804480150974060275045372010901939609925756371093671931918426451288953549242887964258276509638261217435781545286357285696573658607253647826930687876046395781206545907186721258293791172276542509136765141576586743469102325692824538770714037017171945326491256966805874681436333905584624978552928063464731167792232639549084522800276981102011338258045596646655300908695608850861576778433880456017745218040713861728501369151281023500921782813190106569041456080484900952351505709073983729016330470302446837824631342890712203486258321769309238425745896694035434398403401734252871811705507916083755130563935207346295870902550970604535085802526999655714175909967423237530856228651749525315076078040713805180587640783709308287903184689693348387835466491936679283766290524849295002848445370059692216930935226509620146101227276310883805070437662492816687299921676008275895449593032685584118992507334017399228541142833019157261350354405626627387990055775499401426132641661845015011864843589010580142173491010754281731619424883884463604995050572895536392430107262181376315898986658409126823713211620082880491603966541875036415235390564139615066991419168532157224160623127728995150710037178371743247900118427570087328556152514817382903186126615250698902231557582225987795606394495277212218324414901642091177914804995118801060156860730224807119225320162749548113392619819519451000843512321668014164614856294851564633155993785891799595268559508085274586685070792577140008393353897183764602691876513495888309268598426632014556575994206347747145143863976206404998545777146163766352759028397461465243320950583328487658354364788903678594140546894880931245473033917502044812431430135338367207329079407870818012698992530031499055849306894132470455099048876812853832474399697138552563255273117008897480752302658647895551395516250978750638542990113386668275995751255116688470481841996412610403391525248940293538413803623681745610674746077088479360651209698875145412637849882639264621279569145436953521955657386759969435885211451288376444292787023599657669708447728711868049475549732105934255233553253352179180603237526653633844241442410508752648665114423568203864182442517794246449141439117873173647030326590468708290742200675636045463769362828523775649349360788441096292388238094746936993871061558540085364191057632269494508269965012263068103367642965876274657834936204091650318462953246085336872218195587883216906344464172751921573199330485493159800004638885231281761872522066659952117453929011775321408985683865253843947375459148490384455859765898836823622119648552741831239609184302161526144151026072030170330330899761539092730919619801169550636741665938931799194207450623355529881156591028420599793059399611024318672234809482844283084425522059550361443621038501057833591052168828938650283613801109539024131767546602704887204498107205838433878320703989581777633914465111357435746777686224310731402825247320518284468731776398314414316486802894948818548597744172021599892773269492285303661240857202957340376884946786770412375544917870429949055343976189710476080456140893628310927171365833091571779714023954554707825663177042784315806266205750147095592853887812788000407698792965564154771868755119635384699487037537164638863199897479256003682371558635537999522894782633642705694074603822185083903675463406861884322521795555279418049359258627862842314144530509604796154325075318494030420861370290854848986919937282571532307795962800655713618821704920543853181835106324542824221703679264352852023746251441547463734939802338757089803301222937949419552800723481288483356049047240335386479575738194663624790678710336456920867235483502726353054977111283085464644157476888793667652955440964483290836224598078624123760029398753772514254870956952414900743795999482129646082226726535811372078046721066158126806648951226136206193044683723359954023466343985758563485833297897120987026464119037816313380893839925453404460089814814738152481987672782546458791547278160552422675640563275606395898151745979005708049818409530361395793774775096454350443180912466756425920420883771216052354486675741753224273328945823392087561276653968560887654021925276959385708211065753506490801829913594406890019594901895890103973242275609840288346959052703595345382650885266942519013723747599249120974024970192452790868175703531396589234344032149150530231477665873330312477033747911956169633730574973760391855940110910972704838349708796614582308280657095285657143679993528651163175909651938324954839726745738842776489761236724612078732414515928212789681745325969205941470762155439452270406352389137178584407534982447506143071388850872829072258015400859719757445263837542626326498670015900450186617751454154228347320490381706402772183038763668304475975013463661991123647191957063252324229787505379324389458285653677705206136524091220595506294787273137400887794841589378291975683982569609681128999362019102494534916555025205513120180845388870197756095124911061509279731731493634840881510748796651117998854253495842721602108536024934983631753344920280602764541895878005658980756291058823472835949206894575035977822788123788386584231919282780317397000906243462022449444870428064511813940209202893121967357138447820065494844112992561001226887604420662542838553999674267210527516301359318820437076114131267896981841738744264605478898384110202723431828549045174076934967930703383173268662257624752847267272543464876653472458852723092204649184557275919645061908558291328744125177800231293352615752386744261236916858467329352542639247813327752116136691001388180310948298226557480319343727469704493868877260168368564193909728560042981792898943545557456915960142919851721572568192221448960313355409414737620016144615327730879324158894657216426792072021722373585179448379479540771530659963917639183957862656991568373586580793968101627455218169294152865401778322780056090287229966593534094026306746374634235026677388163309389668986993710699371534078957905238365807011740115323040846578776262573679568849819399041922747166490507149574196179811713671634504659199972879308401530597098001610362986095939585008785336829731042215730775137257845993438882737645945543966894255986950344802450763731116614754630283140378349954253569382580745076320767143279702493904522987923980334215302770197971168913528474918451795473930391998500458851539433576673947172599363809915492157115098602651909356049067600911266907406372449153268011617144186629522325316684021212211591354694908700289276479198801167739613683667567474554654671620348038600648399231559227516586628553472996567581249058776380054738682326754030332341626210605046026979459894300250929379500600658990158243582379154817763930135420667373098736764637049805178049410271086478848774595182059753599387955019999701302327264222564881769936084620072183328092628344893878915945097542345962643990509809569836580265488894664761409539017731284989211508024678055878306257919521270562055151351480489050112756975130539428612319895899555578702325508855739623373493285991618696208273031328534966779291942533284744905891453880693337119462054828663628136847910109551949570178952747653394987228307492727413983097869797523016176294445887741443095287162435764690000089111704939955603539193571950110177850309921370672651133253655788963220429229926226861969194612233499359406443828305112346701514126314417956290262834311760511128295125239883769662347222866807129761121044032104107271154168039745765918703248344830325401935597159074906754785885862216132856371967589338407344847845452735286403162546002698430967313916206565317390669155042578054101597526793701036269209016891344064325557511386168606900731951480089147439051478633556071436300843214291584332493554394602435481246589018090253682237092443528367580091738193114113854379080212351132401037776858645904600344468451071063806357498301137611087976789718190088356813079020836463207591839538693378286365400032789579939152491290257210392855685136588973708546322823049989305970515899307754047774027385201280498537799579375741685089728635481032795389597641556280817644262679500374868549909117704213244260296292219730726535499029688034674992787982273948081312872763240709119777023569485523099979208924570533700204457526239369413454615574525064618943495161918073913856550324695035168451593536462048515577363792296335687899695402870350178356792369637237258821822336730208030542623012177653445567782815083664038927974786007375512387163045678586722112015973989445194797910640759046164403989683776462900962680217638389898766919872005566094314599962073943978593091335998976786924633468613465590317684016328505119529504774363096534586449486769275444439590217060506546578926844732037336536402083693825437432956240359532186875921402969759243753403899976368783781752875001157685950812519538032096304442079720648002242463297026492891789400235221825655232906604355044624280774752775168278957032345030983665275028295464800208138462904678577857001603341506083927820927095523080193889187163417871123483151428240821579294769260878467946079195867529188576439621890397759796144724277099898947950542747756265388477428023184488438930850505872755975551115238957658227494673905652414049466334332919696971933130584938896189061232643010697748077733515068602931581889781068611752750676158707982668820320339213405079229261964079993944804630644051499429658329744946369056457432362739300736401843952739164854985172757494541858787115566157619847373395186669500016641834577445705230728650040960143492467620221324157764317679034002007531665401596467357120131362551844033940687099695880288697790190373000387649419147010598561194120046036421082089819060113003886117071732443814683130846420259299311516235252522311210228460062602961544138532322160311510307296262458618507709293153730789437904120824145188469895963710713819705803993941975246178804381676274236555040067862470016832472980158814295780971841166239628105089537515559370326176631289766415992101689022431826020114863214715748205595834987791239613430116194365722253278736153681096084441965892048327717060713805324347915568805101150203993628986052154427750047025782580355362115025158290851359783125565641358591322926206822202580617642706760659649226994676318409146690912570517620416387901746728619598320161199517330510583446484340065056852106662355056219759918073611851946061622423240822752703672116100919033252865691468365084029851745976104483536953971763289596437867166871112902025246502462649193740109147286862701232155717406665472412361679138439785958681749688655240241943354593603834674026008874461160973955635335988083771912437038676680562176228337582958313282680631224293354230604596252750817360108979534340709532809443727486932523375382546311243903567212439612198521568423050283745392031153793589281184403943281839514123503165366574153905823166111655744621386276962667402838359411234107104582025583142559663926241833024548957606570796279318662326729518789539537376622679869227163442322559485134806634636500261613728659184057251120538566804522423139153122493398115357438149785668094219959463500075732509826498053721998346962945810783166949074564556202282259846752690003744918844401793520344529192266654740787304313972118617221058123327580747896385040032521692310426532060284317876745674840952851637512162132863065753925906449377530855087743168680117584779589269659592962165060761833962292682190435992908769203516086882442800452261158786073158881828144967961203553929176358205187192308055518134202013463343061174512008649896714113323008321391109255350850712176338113247564930984979247730514658668922745649602871008076142105913087018906107698633861091951085582458843750252775300208786491380050323096911913616282616498599234959036231356299110494894606985468526143966087845302599421461220355523185869997441849724889044437758946953971436169824092348416982245287661833110053833644776657028511452842563325535304416936056807107806702595456398752907872686077021366335833695935292558586770790590588943789356028725312683658139161150853936035833243117537771803797908271776158310402534367421473321188666751447821336474043965512584574899296227321452233940839795602611925245130200780730526992853317910867188964416913899957383773727000399179721160984868108967577568904577738118300416139805801396848858146673632207762907824579404317637269249024484355230993302470759051166840218969061135907521513721193948152896773004725667864635170265656900189287164931054998975744993858973040760930523694144786455066855228404328274106721374261030594112396489939947709712885416309323829341949727773563161169460090957742555776501370749508648814410275077654042832802731328851288995903972356149030540652191819266389747039870261107834240244946111850785994176489954541204923900993830065747178769113197971690059009859422096720460976109604453852910053319555651083671441603782049937966047602594347512403203884027005514622758941817344377840133988690760201325136804506161781334615045919796830516569032553839080080978695971184797510851007495636215604664384992488841099939705625205491128202038182558501468168563798574490851107562686248022445772645324499814337976698975696010529561518722849870258752130827615440880904844848797117952431830430877399855686604657705758465242782655884207554348412797613473282456106199066046104807078976105870399014093941315346563708286374874725068818276009516919407052575278674285996378265807371366871136360881688537550163046952674443611746800120961623156528473888972496370619993138527743613806537032548470386171067957976681462332660212436849323046503997690471057810076186495393454489091903440603114690992317003511489985353517079251028625502641039724990074263341625392967356871969998812113148789002374370240743401706313112586473310771087711201400502978356225915631960316980933568590560319061641974842722757643975559226400774620441416061776148756319641509463877380388163761848002325221254571758751845539723204440583256920928395516167132317506491398846695212419562305712044454641039813129434543456755485667357647949851557151584322546520082106677674886757831359043129193038939353035084326817449380408524095616598669645993600201407412934344599518411828677643818372618252653603350502975768249443108462910334805333936328265537137993947582327061058502010847069582278667861925172183665224666002025362666273876417493756495688048106280220064970833175361333616257480883461718746235577888496861227065045876341372513968948325285277848352340373323153743873612207836792276387204183625904897012665752173215301417841807000909517119574631122144645557939525562579483304843311909219410838998196743874266933435710001178132248171273449335160260599938990942734559974597503658830036868046831883366473182972722887449145364027258007285490455415868205940075541703806621423302117863461965201164690853297838785494607798699280122002867961276318781103184396374930950589099158130515930104879364326648341971360812351322144857490032516002436702601828841108410636376098185389437960068931483810344216348243340866750297393569937699408844173308791095735690605990853369261890826171909381443791769304724453840970313728630363603980694913482183217971995106560546472008680573350182654688005448708804088696491664989387726510890557842237627118044681622273528891374042642411044670241658519388347694104232475512733133993288901263759550855884628828231615435787823468372775896435849714206179048248512194960356801684958509217308871448167548745996436405466253290198428685662237072735238006214439532547561106641493853012395492240200922964454252129050751280074118192809775604195532391919463954045050405038103804426762690773341585272065446534059236716157414574860939308515785732795522204441309782250517508719147779345778454814706281970609291762754882548598783705416191863167441254491832695884994964409665797450726304428035316022982514369221081514831470006069506343043100842875163079188630804207569086225172804090914697393611517536011992799452452380246320518009502837093697403879923501959309634940463912757954974681118199497157813262391031964301282686293409799846953298345706684059890546709314863468310926556457676648327564827868564799953939977315811017714798868750852679812337801166006453739107196867119582923915275402376177421120207248510035347075632982355184961665704660385476549315263672666279899001818555353128923188583346178706070216248810542382929610178073355995568409239440118483610570372246526280948944610204348154262490334055898502608905694343937440584792342799927141954132228989369625174088317199061908827865976803444570089252222145502369643995728322824998859000185832314167106439746946473640304635917714390539265253966811935696417639590083486049312601258390786940163180161888169864972083948571128079087904671862291054680404801078648744145526643056636393104143777204610390183120864088262235256183680440388281403066725936078714457332162903120968551418900850280925950168702761918431400429166370800430003141174897170830479654806275993183459010132574364437961715887051373667812263447616146629811445737695110641323850617449749023892269098615325919675690564280152634540083441565199130451675895352325780208955853705227299379356043795468387763556477036256480739586121310680350262696724773802156650426177592199863676255122432148650164548157747360929698063188452156023616565665087919756883648414439461475407791093739665034278614296276166458688131442043996390279830151780975883276498206913162466481504996443215836817067964514732090049201280339093264447761626370624749562738453852323365115812493292389806230058657390641816349485182591443821228372919342860050817115407141087285277946925519878039976293231196584481749529625399302047594193781640332865355412643412016951771543139065789704299301445232578313734951094668888192225655632395248269979498181326695302942474696262608633082851696557777751427961760709960906712452248769166627970324510572437153746578387357855407565388369785999387200166213187235996587237559765350229352192696537306045493530499407456434277182769544152101715810282331315773193794272923686607304121801377703336011954985341952887067000957920750702963235293654929127045808436060660747363533228145075701475430090967895850015814626368900268499452326148231420512628918029054153121412343944630756874513961599820882376626584595149961901715548515972674712423657804480287593952641538177974951013957960346742611033338812889714429899373942634366988577929828239537561621797256061331038523816396885665976140340573999774677946586222250958368582806171539002287166927328641902641068505938247074395657368317447319494280529285481026158927667236402763911768646932109862320175886374787759650984535440603419658615937112983595962142899241284041351658838398502540682541880091941979749681445043579459158647835838516732362366302399479364559582521146081854506935806463477650737237659306372388843385428639244038540884305458476380383870037169308181693880265835310193835206347035221789595738471734300268192614783928711469618610139186853328804090388544036152191402520158174024106883112249616704127141269769090463947924362518715077557257088226790081520161790443888049271422723174539902562612554795240473818749152848341463634756444558746706296452567490862174523328040577732244201101511847989387351394813337682895317649015223625386948796548889467538807540059543583958633411710380959393041429215984795670865363611252644281255832422210122423587892263699214510733822503126006037400540365386802133380929660678121559941721541062176321389221398512917430096647855291722185631623172565757938136712468011085219815621728124866487994062738238711253097809562724259558154905880945070400152623221935384991346327355812503056935563291037021110539889768685403314176593832823803787122573689498515139979505019846348461917311939920431879929292526205063173105527382497151068539480975240673586729942637811204854400262252932250714790935017725610618569569006420283707989320007041390489786002171504654434976042617808842467034062208329021246455736676324090756311342389995585746523781030783951468766317149044127159540866577775879939803188552931183994165581021822995034353705291417322210162368789173605764159613065685919078098380896483357267131356854845457055467422223924769465731195790314901378586142558584249900265903761975992839063784398351846666680009395672467223893140662270752695940308175535933370442076468578362132413869016355222674293191085124633198108489522043243167401193729225561618528758694962037596003559439306247086778508792572639467685112843689196139382627943845239011725142861576619703156045180231426369923603011666643733669590945608176284402446166685211392904836529652203988457521286535892782904561395997679844468011987815844572509167830433585748390509996970605852239356792441125401288445243121237099344228412468646684318536236918461019787246512825129333661331256459431053986906101778692675135071484106482253280227702477706542854085777852843243767748933145795264274868915210055130379999793715321858144004790814531873805248483329924181589211130838803548495067221704362911322896749679733797907984620407309965818331518960953627323955876768167847355690930656506840805945827803315249148348432971987574970700234052450965801891180202499311928311059090211322493833989083045540770181365607571907519366834317676461583775397575894376195873904103790263348118131045543211378939533206729378471902294425740367917800837979787258216711678320873084455462511759811214861329946086559265372815402081609618922345394704985124486449678557340657436675505662782424236059498336271233530845072121993581254809563733845620028248543113006364784075247269889030715150323220036800893580464310920682894251089585696281396147563350354143851022105354597546360888141252650934611374266965912997623816632517365495174471089228598912042673226942914620904606446111169811726474458849898233033029947640467457991302694986985012851681479531387808898357538030261603875751497520072894373831192821491437711528375145938098152779147100001839586350966933887984306378619374950785473547659736740887061708179763621222806969776999507168877179990720577802370517788303059932148173170544389565117622749386244502636171223658116957661378038329717743947426015692434034617599549735500304725162681144365926864300073937618879293003391919382931215099310111765429753967817212886814446181852623193181582764282813100802461053701375545124913385025238700403742369078424957741131260952652701451053247720571109926601555612113808383906989337234631429143692459875036866545884828181458761572504906713436197169186144684359701794280300039664482745545169630558223488499286928058521163116372091823454247355520892323423896376025536952900636885555223688433361269259309519002679397617026177680056233167856966447623563541591744910536888344448358737995862365281902740011583693815495691311408724976449347195954055486782913953159165995493521805451179702304716669246551264356793868606450048520433624758717431673836625163054080735075667649942044200258232351055013596502089845305950234418714023184905931115076133408383740501816690793723171646726961916671035983769324011037675621426203444161630826372465646639943533750692177891307728961700620083529255182382187805341682034211059413832351271230127523396088446875919029161644708750745751478878930938110514187123245563648627433260177651975323894309621182798340103505771909401525049751824973734676226515385998289511599268837102622968094971474952499047508180237954030059418896674189731613051326134408213653944301199863820747649548681524675858383086859926571060818405953571191030630418424397568642844051824594763324555436034806073083251260332501280405511952483194896464319744437856946282660872731716685917830496533382058303536003922074987428546035437011944126950331922027921323031930601147091285262190583168886462309688315476592494287964401614567755483812265406584032255431859861213185434971282367753198420615368168273576634720202517318769238818234358488037239993962313329689547907424657004910858827941142348787837898394971686880179598738615694548689103670174333780484034409882919253140235689318172531633635922809173564339615543741506924513176972096215379072710753584320553974712233249635781344854377933987619593239935614987631145558724903399668920279036624150634866713557421714853076268532050766215735451572525883495626845991219442475746312306521038910805655634770621206334511524256733254132526739919539609807485888267954018680108102648976845135471587823014372621250064484027874711057190839398218578643470574484260448276069014056950281622590446278732367155846432082431180631306839715218661661664557654461539320690680379822630007230004002374737040384370723929518024310701819245161609252074766851513700891729315348134646433867638958984471375285696459829091485751512421533302435639736550852799954032658477083023648420318000433060675392487311449952552090118105018208200053081566246836491488573113909412140663937252726602688620730913664807095444343630868204012007602874671590451306323104753126519689285299774943131263417922934792574265352208928851229336732392655034551531951958781518239260607998777049855756752726727078160111525809703964063839251504284258324371648061457839694704731717837354636061119431703783594745984413172594194777378503092515403539732650939814917275181790132782113521282296886218703165751303541022082057355681475741920184660575646405441408999017245531056710455155855688092490195994843942373125834850822170939877011819206787089664757255087691680473920420582359018162089860612490935533751752090822426039138917123361426663953299618161686114292432535426464181866965248825621195086483092202042707668171725154930611271754453479392222935663503650689106670314666824567828843709876956726894620951971888262820381466108631939232006351600271276516062439253449626902025639833160702771574447128992099733006506734390677105979017543070961580244351918231646880014121631995892948233076625450486610646600634369213064977136994632408782139355580489800471862378235364213854436431714087401478180228146039725627747982401304565956305294678977457412093061900976796183142920238074469219130702204388312553926208539040085959335883140048799515722040400943684418672543461120044618215371063596070592837431871996324983030305420590379278977310048272867658262848725582640901310981971047615835175887370587165651432052638174903574893228112942449160430968581717719129906792763285933856272212130511997429075748050437968500825253860441263149415685244795073773653421912925316371179685954456084588087959195970791484351813804755285519222582140092212523693424751666866559825502714171152641007827514842933777484112279404170587526154776301133803354766116033051539051032366545399114201700260191339727675179530938388203797369120624027677372377597650711729182744161598955656367953113340127402485964994924626081444686113800398170173003796972372872857745490583631857373214912699820494001431380332015142958903182229444160240067726745008814267851968536930561982159951210571842498501439292893581271672395393585743197093234950225935884601869001914668764570446102117780562523045677677867523510995221908565013345254801035752477364696915911187676275942416456251833530377085172728198507728094154798685206603795009640516043580554410140698520667229129253166310966662971113335216664562111117704920084272028388676386877934952917400867636740172256808342660356636126299246145630869901690457254509856667793494436766921024531408536734414052052113106795066577871073434755415361717763032245318909193477515471378405337140428442320119274690976115467967831686371191888745526303961883754893785316121428611782979242198657953018934140880930816962239242022237101911967622251061801556923452499576253669025311545254541878154132044945718955854416506704520230560621887313042831885428754359161890061431014879679309327107466603927401326580947344157398211514797094879892404376639442833263488761960096234992929240565598390575821828771098594687994263436042021912859563574124321739764103457368462047992240454973763294513850663904033337541724741685724381863221968732627412833739745522120144690240271758012062463667291868735058182377064683769490449498718367907825918380260981310283403467755654545953436101088393905906981135062349289772925074256388099670980405481459800950249339211648536001687448192117231919858997192274776916875458855810340127678609164316344698159437927271549815409966246128392215480119307141440144962528050064189686311168214432123813125233990122539955062692379817634453139409749717940088163710992959476419346216461136077534237485898061436406904984585440579297137051813435025979144532499558768941050774588129809546858585515539460719065099756459475617426623441298064276050876595488224280144565180320001955663799462132643947009984814322055116922865146149232393245938622131873952497892114042721089898616248065839660126205966056065189112895372327262304722971029282808477078374356362586795386633949590981962060896198752033177401973137234993541627318847609096850983578556296739511907919056005087647234034219940361274536617299529166759785579888911316634809854275838890510150195848984333294170951147354576368143859422793674357309989623261553274770490130391532013445601887995579788486708233200379567499221708467574791513214689804535830251929332782896627258292212901596301883193053914673363218430603101678121314858417628358749276401548060184833174960758425522191901385449004415375038648315748923562251137048526609586366232446899068441424458392893049417387283937574301688706830514324771866623037086546582325448551156985663436556474556444398476228848453957194622698383807110553409003788339370172677126695434474138337276810723335648334631665006860626091902192845604981690058584955715823949722130000414571450286052838907358715232556430670959077105097621566762155595830393657292701857163647639449748080854069175650376564024959321582374505119955557320928665461385816081504131853768735301689712877996515974811713057428147356320588398590397320652233403156322499627252204140422737547096410334351756960020787772933484601599294318063749258319899352434326266103914368546262063399681618997894886549957458695556829691950855744006506209204360957117649552235518208389797013673373973931554948378578925949048938213567328052330323888815496659897485160581665704426366168821091982601275733571578736604467183690896317947928864675376565901244472656826519581643359016350974545140725236323097829463445364140119949970923710564638841527230311941065303797822503289450381597334646487421869518256186545474293475868498967879875185416385590024458364999469377546481543148788693397406455622415578831954576934935339724235203247807279855846162746889489528825222591009753342375497131765024971712118799371337739187049385794093165118616396217910192353989474808833873716925844368712604709195902492457705474636094736482579303642998610154347786090786140078671637418252497892499001176138872448417681039891876814567184786074784491850487135745630005530630855734967244786413873926517049392402449326469448631732593179688220353451340598195661728114093550245360809454954731131454698262764803402377903653368820438715211926450141028988755297943428810756981865012509703207314699007461236344468003194563618722981549167799728002050148293722481106317705963522413539138111128619668713513754467524874204985287331673689721035941137423583677549388599608098656525966332304463747190926101511938397317696437679996111945456447924106889784837099474908165431738680905022846897891661723192136202362178397898275092044252783089908668870985169772686487192503736573005138776561359954817121539107527478446146133797637703300319710485259543749763289213305836187555209545723843663429151103215613741258573917185122379938476765449298193470156240069820771646590414448901613610155238665370643168546854779339518148610603161535313596668911470506937500415238553444229336666372441845048870169427948753574417668388411033582675195239268708849248981676585307239394104408615540416721201287423110549987855857612236231708679099972460416884147059521152903122251262228206831944696591794381062311540341291803509604682342585564741796620459461425462855466104821741715936795931888853964377058440176720590779729586213930820235844908477071848615867377381854759062831948191550170396376123193385874197943302109004172652924673376034035190043113700369487627817858453437794853950718787922835885980296417117505413654551125239784989580501503552119926999713444983627459897587300532012645830655574626645753654264010452496529151760401202362832793702268835226998590809771285957682980926054216009763252216424788424141747106933075830772364258300817282045029879741668084637849804940558467839053718053830560753124980610278985024269520595278221572738076681151938714579795534045891091281109940107565336038453581718853017666048013975847459590312651952680460447044428935993509077453805841068716507894559457022052825727181983493387074945542002400351022212466396745337781826347877611786942370255216538057469888943227966947792759737925615476831664295555885697416135587272470577000634975445446300377119999879740396329234370853243917888281859099178171176506399751717037165783373561281140839392866727559536274885271160077317936000869611614388968818609001627589693245666494260822733534448288094403771189307867929068241698492843853614431693131094454563456614113186396927118512420701762696817274757317772642945686711214288968856673710963146720864618168050704736183325947964180864074095019315193920601161105513410245580863645405621745084668260221890408653140787355621379730053677774531117582652677844306347609954580557752462027233730847948376716313112972361737223965546802770707639615544940414325510675027894153874727400569680496909043757220889269292766156163920232615492536006073755384613054994520281973876024001990377771065901383444293727076205317267772455513218459082071075891481464704581741970677461313733150444469785336615661336091518973696662701181967526288113566891775082844727071217182231513931013785396361536874147077041123666783391248319943127687537459900364570800402838675801293506297265071936414233663659246804088199472088645637531730276853970792673184925620212887121704877918277919660437041407607071391645365369468384139866288934147642569381908586126789906856021990069569267700903282680019684164436399986329074859092580938124926447942239447786298755330259048082719703255152838009316366283140821737653023910506273638909244317181781771400782058574536532931647858040919795647448264995991589185426435711329952415819450675479556210300827460627611677573369412019600011647348776597740100569697002561308320148194745538989207006378903954164546844743794904887007957568316457611339259134757265093139247472852614765333030960028331593638922802343952398828399664899766372596728513214276259880206805111483213006679044161511395173932976920252870403034923889900578816386807603381050935665756570873479772959884320907866661183464549237348090080407267744106720428481564199666944034957562995555386793081559101377374166072921981648815300559101173716165495926357860486945718877556188236141244150726100087993839839271176464780813234945438263654007519597084002624771334452849158789573154071222433667803869341451739274311024282730505394926159952730938416221404352077957674227719235783325704142605645213506353200185609657365761765958565008447866634854687662527661394201277633112698951654554380627372265596810106337309351665759676210702994368418127813175822531519032678714557641311652142581203342363121252587098862331540542637594765124565958483397218935354331987738067824944346895610415153793144175114063581136910297084351610016972700679537058820498583866399723815136035371052221910146827810746176660646434509656090990273627562362312144318252829026083443871518238545137265403156437478887764361856016392409560617110276910399800829433239580478388943731648462979011936195017535754321970594456592189634377730457640625154712830818569072627537176346492885154137729615413106694651333988523576620240375003448734243570870560708169852531127301553042434001485575741963533209108643304404836705938265881264294893261511221857833172399394505696904363006327269698361191624157039785941681121204801110549468881585552582841449718092658988779276162169404967688027240513590806024827672551250439614418407554028279861469343290974462175568180863638391085761775107501946393365231968338986387356161584217883545164885024512935243837898956773589547984391352915588334265302816238979653345446142983067256615740025419201860000471048954822106151490709691087650224589415524181368094302599034386855027567194098138958541958088622559221411610658652191046469658478506851767953562008114768877073048946126336690527263158946464760191628044446378101728945476680176778051904105788481393270097786283186075516998715933897891230586751874385515288323032654891446365526295475768356115507208725744145405827063150279333845862909187851440848296094227013381129626810584809671659340476938667120444005581731928933146139216801547603754103365019392341016989407493789686337318191518209858444523805002700814831608595467518182739524723844206479274749583775126129454537220015072094951737750237830428407740438116284966769292026511460762426049634607133632933219237868185147367184145991250912476193589122932048610190682378708080727859666837203851248053836270222858805846974933956124216669331023679109890740987900917562014364320289114173500003036159321804790030959464197869851763560438300312029004259407686171250689907777195199804656101152071948071787948899599668548664135590050375472383295227791720489322329534671162620575202286030332053992771715120220718428262139063146702581497118070213575176237277477363987763330945763501101585014509281342531931024517835148706959822878588853317729520955331468764029987003046248652193698833118615417159530105185120757606261201336623919458143860950005437100538352852264067248141520411548660125431744661067064925863927242648210804211346882676594689008141571673804184559240216907998393576639237168681242829811480786596311375002346925337274560751967301515495481497510092915444605555095150435825018502014211991092433060722202095669029605270642593319802854869418570338596512138460356615567261469439256761586574405849577873075625604771480225127141304990721941633466563633349798634527953280510901163229686702091974710773551426418605211194534634582481661837439215845565733812102627230786768789012900758952547708312748018763640267933707742279641632211940148407879253953863231597132770202485109761977355557187716424007137517765656079325677015202323791891100493147240125297451899414650730361867320687682764296868943100233443886658085253041622108801032702950040860104376429490815001835881429451896612542808985596225315473366355871452411922266275321799010404835756972046866030012237326035872276752432144042863279675843133574480552116625727061530637265540536788433062848329425086384284432179620796243198138363269020278936993665394060295616598461774624801498963747434562131949395976572780168636570548102774920091136067187991433010400449432668702809719593004787338566111002905459580722869877983859066669339188400580949734109984663159172131911396423747292223711261710014611517512376229198229817647139267831435630225493730136552373951019986095700990803954488749592834220346979210672351612079901252075575506570172193019963005165948621779350222956969192392769830909226173732501441713246962272666397974353708830421793809326539471766710605158633633206730236848498467887086550407549403037129711546986602196027402214577046004635715538184564448525088629059761044193097356281357838326513973117567079050423846823663619871467961082204877241022445181608809683631606340936498602201642761191301535232052805690868872833533024941519589763883999009960166940055759763472726088016730758192760431357189240895076760272411813810782864325590633918634267575824346996721420070674327332537324095472900577334599064626703944727136624001125793245392372273875062339266130834526402981464389310503810983419889806290595470905820725509790381787469106519150354067138349276283188759561848574998261553224689886182285040672309517326529753776280833687767648595811717612979161747296795268835371724572045359582132590471647929786382358400801305810318506034240095685039257573476723955321194052106731197331438369056918163739948660275133593866026197981444362362556390787321185114828131710183214527558298746472609870570134991836828033813379394150476305677437085084710434725654630677150018412601898622023426681445858625921856840923490491592047805847434512999653919228994964281243764997254490472050799388373958263508501182660822800625963920741673834539868465055138787982729896837423863155561459672530242682809154883056605721087294559557321324517684142432235986165927880588674388075571088575968426092945304805007410561292222307022292264459676328612037536119374413174807637880994234391896938169799385244360819609681702470126482705844901883468541119103749598314896416135894780972193156045302695722552482307984351914888623719553405930385821768904603829800041659680593359425396254280389283974713213622129494047483752970687577930966073500512556679145748935890924554110153623620563489081763015253017246839498013701324978552615240305800046608969658405158443683594947722986973841262995352242866661678522443630970712297512957053656506318110260025724221603597443755718135888535564223700367458674519389740158757000056463855575556196570114107187343671096442266169620339186820678038512487439035077736141179933356982546694331202311598843212672153096110021928501824801543531638124602958417197871083053836945433069599356919809355847730098174149943843747372700145288871114470048097514517571972695285140944476740849415952057438574679024883005036029722675073545008450192753119563811003736307049272485002015039730751511748306124566714260769931138574479351136462401913691934271582408123750001444508754488466334468006221599502555831711573854658646573235497781472120035108670746013536266020552628928528309520825612881230709872702129530034949046576083228154327774294638900737016784078101568670695925363703511274273896854608394580237813303723117386248294461227760567448845011857493393340641617169676681753900828954231346279688389497193919984958068987485970639631990991799936349364182449974918628150556599342358065025748832395849303399224230502140511236523474096523784176545178584341974330288097418384352662749149116100336320562977899977537097601075099161690269531383128932905427724770311067951974228515974523951655066617355379049277385703390606243433974986247045396061962200295534369398382670079697750214188509392796378701118466434584123838296927741786587873927310907030289076151816549692458234257618193404403548975128751662349091381979213641068151897756958900456810656261307196662862444865885586209603958077170168045180247532927049540703106954148144355172801848793600950844409356208488174185533239890700945695361729630841520931487298482954282008220537609571788371510437209226164472895987322856104557603054124756103276121105559208060461159985287809123408819279514804479157409164282026206354155134515892508585228252727890269969965813252508562490578058366072781701762393514251157148076125689624999796615905506770471894067963784996145390326620201415113278263253797226326141118267830484509996357713919047526504613021237301538234588426964095874682849591610763826259175126517103229776955347377883862681009430771769631676003847722609395337382798280752261026595712393156436361715540745300976819865336362878540845373599199063200202259544591740382713490520285762669461347509113331024314428282045376060037573494547813809005251009729982774668178762891632420997202073586558918622571200511652488019306701365477334142815712905009433002144951645968115497584782662676897587225168976778909719876885564626038887209446868262842164066931904357468962676877453228641459541586796355064052654516256155048236824397842858619336422320841592375923731231176392756462691767980851101795120927156877641107435687809865064065299878477056733034803476362802115614161895135353756731702749279124911490317469150844461658960799628777503830122610026807750047758683810365073313171426533129812528104774690141474684928622109029856069226821117859548945454638413921279958216513738263065607913450996420547613134655903413982129608127935782518763465547539888963066063611654617513092029941905334654824196117289433256267918252179690373492496441333449518669843353659815615591611372052272828552826522362307978246697199369986776086616773783483528283033433105683637403480145215740155186940448563813046622356541092991543158962666920371443861485445662386825586218289719656243332260334238152414922438886829121888819358839546553199899929998326545719684709445386501632645189206879974470755367519442402242081877738449661491273755254475828041189661530059489210023256079970295652141453404457230902184983448132926701809702074631034078685657825117496154413973470093728166207336415813295576948968765535303416621238929877708762381930392711617559803193512310732960785978350931560732837689812395752368810843526251027503871225760179416418454854373904172498774422412014221006932593612995512822261870424682754031006826526476343059545897312059807159216114784568793101309761370002782626677803198007706284574245931419716751947094717066886045360005859981074983881932619485323024308795387231053630236684552949608038479440927527917112244699055428745164705671237975124985950084308031612879194127380633436044907205427592811209039587618076073921201340455878538985778132788570969814829080849978495381740487900560810017007788371651865240147389492496939143765247499411895124089422804510549378790155619844601018861663273275974226176538100037792582926946772796255126167778155268060489269893912450351684497719026119057352031322851905278442471191250368843323836513913553329296090641735631333462548778576430838536768752864232073545061403067493500481611383729963706797088326909632920655060551668088720297339280336496477640867565463668495341536469333037718108918781652773952818564524184902364713691688377236583763081448016946129159173357494601077111479232510097581798179154502592930067827512448490707476559093708469255315239245585714097072612426561895527185497587115556265121607619744883662096694828847025463137581706880677337395963505316298658122892080777752002909836153900035503298740681579864546047236167595407577780385828771226361439328473218327708550448396553396429090598182649432131735745690374947462436804857104159781387518130447565485426012910700591129959792432715472367638396684438233326674492452565041188380143679709770332834655048674597743572705378532955362731859502130209223237591072328153899340917669443161179297076803432212650476496655982031478631018823828912133734332115107598941053361115145725989367208234403049138573174408670384118246885463089427152022034476911564805528580072186312136716906596788898961794938172464633387093740124305045971313534897718275320044928271383894169628368165458894182648705787983545391822305341726022737432503468432782975154930946662095637926199875030673421560101373457872358598471982574716513704840451474393993791531323043157769358432600754109643889369478957135597074605124258713214121430678322292882893886945480347275910374881214924860959037728869492403066675717556457627888443613049774399051522328561123335068130050051246663833562967657695195932339117220024491447098838551625777789820226536577807292356882019124515920289503999581184192828418976295042097878872258988382671439752722366347270098779628705443810254118411512243074480932411883167731949713974001990267119680416328285879926338446980316043600489609945450757822180104834669361867608693631636793706586132851255855733755716445006648553301873697170875585803349360794889249195239849760286449712078190956388855049722157508039505908000203485694344746758561046428735933715716263474240267802508081647193882629837652195050718280892970195145959601492692501344304391326211841074384687603143484092268538304462721095945361196124490958269907997770021986698455653524162836477227037111750690875028889313775736278014230861480467748764964751165465352327781776409512146596125781715187584577229306324699538684644739262985705598620162308600628358053984909358096957973993302303775214367546246567186319679849236406491426695364475037547644346795616297025776968553939762065939836078709868965324664670470714786118064971006031742537897306146379507883002192492572299647799316745795928198569140392730291959087166235540971270278022638746115346525055042795746198112489458560466371379463460543874528277909061351444953485695510679216526104874001695188155534192241798076415083425191911558821339920918118323759520353778229317238108124268282359337915927255521145562347953465611855541571553352865932230544977847378388051674453938907797750268780299311949975260864607926612291362369332852198135567895106647925969840627159937188421800071276459660168374889920812762105690440884429968490495559332305491476296321619861410048906033410990986527639267382624674141010422655555136063272645063803618689842908760179888142731697523722088739480827769315210321006021142247197369841446993056262475295582759760759774776691310644384600399597067043248610133002686064357556560166837795997387487096905056375458579253329785886767037159338555840254978505264517338477981192548169885973452368847944827914496091252095947357540992246295116924402009206089843836666518199693809656340369728640179294688433277302560945160607390062753505286701769721619254791345262232056385265949950507648136484107014142560301806396678414437600704830923807333661566082862328022906991397265192576731573173626587115758590668063403641970556946754236733223270135869017219396086773278001501189106424925443029335621074564160305576538236826197563331590384279244380443022008767236469572494644639712401824794105407240777971518966323570465001173342985833201075195518906471159210348765867838151267651098669309940550623827966838628046913029340212209045535426216287432811491660594466144819803178929421717134214137072859424824336117700574456308225882007795301451745992071332460564556193451575371410785227912663969063486305713121491306972462371695192424143186780731822660504271081175854506145726911034365774178649673054074433489880123592224831542303293803087794265759644037863563834167560205565782271380307320295105870056224065813180077842542866055731116342114340304113315019626510541893744648684419081797004984890918593467708070389575183223637063515942866986586086859408690537864421123318616309226899506324676447250921844250908216653981541857848264877619967418953174363545781608671169473781361766266762853769340560870654270002328307808325957510085996264560483971383680656897622026702700053287604046737892896114485575555151207909495040017422609654418958841213769589963420224000030695316605438381675189058416049913245793588067616444080194053893341685690739648830709322161725827708436421724339907640925488524816372689876584811698673635760368046574708033124080703304471773894613014901023221060829564556897832883263344509472043600089210263182617892670182187382112972420918162519195910879339905178493721703026246566393451085574674172383765691264969189957166715135865051308572132156644914021040015690092469153357515349485737303103787736441211986500478783189120937390552653295134462869619775985314696687397791528027491496177737227566842460146434334593134794022765217280300498090942956890337993869852343029373246297928664913841388519449680423563119194666122244805974234624125950806760932629473031342118558929537389463164515946406831943238645876445572906320558741967581378254108340344857318824410126181355355624333672227802177043414656574032996686076738818928880840906278744756218390020396390715529981408206850983294030626204311325458740460889775562378548820519484115879312237913299406522338153558521509652643794784304741771882896724708753462915012261596776614181077878175746738338041085549402511420897455664442111930837849924858121349759903365509986937200796890090464803416675442047053076905610093003006196061571311395406212666126490297115435246680623568320280251196474036363770134486459821778994397837121941012087531345616251297314686332547504061207691306042270389531632469284757930612479107806307812470787188517148035138880018216566744853866067305629499149704579685847184723906555580235868104465721860832287852597551445172625000630673818738561759581176267634604089432357131129874686841541313699924173192587304111609165212211101035676256904824441044269121659100718526502751977633213132500264439568143083254370477201797437314799837577530819439881256301017436471644106776954744653236716190764138720880536542972485745520683916732961518337779107574104437590770418436570055210455057363273491241885609341029770662947314427226831803706581467795339432556039242242465371218525752466522924747815471051529451975828216341010536813996374677241526039911075065694964563508877902631317155422952984874882645168663737872037687999957209679453524062966770033858133211401933659520686060670681385597578105316212093534127970877660899142138384294224082622728501383680567443653615512046556531622489047698363771193291379611850020504338708063657279270929618387722382509589147985213613400450648991017027345835619029322989557630932175972524723473350338701924130013297654626122657476959162853635674768525452232629596544129530339122107418610876835839103623210917384964157293060021311953777340277231972592549769947779218512145684130759139294534316227390231578316415777221198337265430558206343616333678461495330332966181920114218816338726872924752232115278900119805840448106715230287041124903861783487652387167252317146165929749051999280646774127867964279155925671407779157295253636207437382418569636613164144781191601323832551074450890609574977196260266949315387085006328702956031141339764367515531609641433739027622100481900772174841572135851735495632522291548833120437018329163016945400712197504822682949066756806367116277375095795586053358704944115796369419163718527625799983371271428516018872103434020955476319256620805336348714103425176209160150938417903038614920834230713359682446151202366340349637625465456134189774323429124100914808103202946700172950185691755017330127378051474692444458631900037395207476517493437628353993074189669647533535726524613618292688260132312114662223905144216338493986220053835675690480225902550126452321965620456767608490109112741253529618237621727938503358505802740676450497917762490857111503619556928436188141419438108891634022423769061296721098708138465666186502774821695346040234106213763074521874646640983770322896125223131057070102234554011980348828280179743731292782252755118920606262025092051010107007806712741152059426643437816691483812247192832895168982712170976231077341996184622724918659591780209209538830278688540012033603839111132256105464097351147212656096753864200073328897868586275312173357288369533482196282663148216244202674606591617061346369960879697884891472443966260183737085731109775014180285079806255678193881686932746421351945909631832157295528232962810133033366136048674038976630165640304410019518244581919535628932939360380252024788292644603119561572873710299253306517741358736139637149749498826401887737503533518908266390397277618667198099341768802749149182812723450551468958991222026802944700121720990529446936894501987861828748390465148441842338261636392883804839293810583927967681995579250524854517576038329031208168337272120365989714763232885054579696154941235263359093038858804088858652559375171113962931961312515631983589498902630147805285591571315968649298622529866969635290440148355090012524433653049436002694482453903160136737216677375774242874065541336346160786946267935127902047911384283362937526305373714505057905975696804294007483123204969710573139479755566599427402005174929358852271912133352561373101862380640713892781895966755505898624377074514661849125328685587773240269274579109757517832886070976501623156411575813297708094628674046770311784583588973805976795045674662677774399793623603629177450605833786588724214868960016372780429149445410195064068208898074166122137174308979854956817449014692842252229178393804389290846408372020908995599132758114740023145730904622277949086202706470053419701416400156921010680393089990854642564150135160736425289531045470002642785432098717082350487489850587530081018828681394517636630761792328161157443977215120673628474915412390344766769670960168565692106772856587467526231375064523244636561867797922793390299180742327280965031325289569088771935308588447388787642766996766241732794812730844689442762287238147745110504324105435346199355607002105187842231449363135954767823338084950298831267590611094885661506025048419966596252236283080447373154381951460536214927136050275791270713559797879984690597327429508453668527842895491517344637886894706692395573411222415780992459933424583834596672272124708924842786905999813295575587423647680259582149876598603837749641538521628743910890489058530461412295893860075079515852232075343815056758363418064036261504023127525359477614729516566771954078247974414451561644160967261945229448184625499236885699738234056560555328066337277024188383696432828189323396252993613556669491232521571023551165452836598509492994907443338177665942411154425904861390081242760442995470537504927099264581291725638723964483947802628797475847265838075497688730286993152327959972868991969290693099193747789726138676516546215664857848553657360932054795461004519272144137656202142206368700796342649144787219749341249360829846056250298676442372071234145867760999711264599340621799748130710093861712393956874216206529293698231138554384587304510760041949013916929276070794890462283856444816698083916799085103092252833868682075638049872385967125872761439471970551583232527679372986524860160560862882731282587021392581437690474103441388835351333651454060392975892798569463760060044755870996737047566481150966486151782107964732423667099333929226193268130290114846471370145130491022803936160607457104714095079070769008185708876102239868518950489814193860546802456278810478881643117898397006164972245124414312986311090323469618552558463643646933282016936036327523062254310271987853723792019789186941495274002898988556935632827272318168854331489437823265632303746158286174706712703558557195110462452036580989373401544495886036838390001043168313877434250772167954981370421799489201157567981445422934017499774041966248740348966299533420310900879779389165477487144815309654989352749086091000240649766606826259306748942860046444350541592436350657705447003307783128069991936437244689368814017365922061846928912360730203316279019884162061376513634603694006179026781993944757816992660588443932147190107405106053283175708384993938571937876375146009340094772700910246370615009606469267578872729355458282747011765370179398384602947684288649999618582492114721089222294133448148102316247493427380745626113882624536942151201132544209029391734844445472267796369231477973546198100490756129098131034844210332720881998572997157541148019640610570234694813110325766611997569056380009295679961802931701842961223080476391539266924910559321214102334021670450521951792224378571283010096974448672887125337171225443341368769148314600494641401960718219002745332494337053212276721990326633245088292442795228286517605655690605528172178510295607560294231288029419001793127665667621923942250811098927428174875954277530306552589824568927061216907892949378745841881102660600073366102725671639357673864694096367152651434116612828074330515421742739286060705431233768144034860780982393586709435921417780392491612494676786757717341593270084656515266876973556877499989640260979938350418688478360437791932680006358204570130247584456150543957401010541930688030540150525544526087575140578847179273129007941175979688845692044417823734618228648609387416787429639630244430084331548149659572210701370659797712835762589848679889647825505531197457731977503835032617521491780512175480289075810535907580376320492079229693047929553744091224951976164495237647407240290579986747850799420856810691666636235867351080170468723137297263116660957724607334351196408430895060144150826584578601283423067615688761421019613726056166510440487602854882275242199413815429173422514852741204372677916492061616417589951403474104545139111532105946391131880865516661469835178048350007470071439967243787511829468681716768470648077813848798373465105777513498762042437036706412205534284210115027612117114894279105074596784401692111381111021831154338955200247133267282372342615367092237392097413742792437578731632936005590165668206535618122686528942303274279652821680076498895155757195261762480551499464800984911017478282412248632674471035408375402562854933547720362157237543881354085678805638455849883535404838300451145263067175536708290968250536779971037130991427820590824046665289285894268169386337475179239029166862046870803115387054414953634846281266383151887056193770679751246249074978640298328824699272890350684685248708892997966278608210328959170283055905922736459209602923291577403247450087528792969532181955461959891356450780984438822066741227280608549951814884561124700997107084529127807962693443389395072862423698044497317344696556142882478197677097029610658904483588954020153882165596857267251709685745589703493191190509240362591065293469173286153096028561356500408030099266247497830008469843421847098184509939054406014246699508166867717705657258579556210732330208648013003024195474493604203964964899736734961740305382895058912637859789864625230696952153269995385276511404045248365035884279713037888129577294916967593684459390549979387805122449929660693974669468285784000176045622317622914219400639028826833166734176649031688483961873283556689167586678576372220325640019496948234492507915042653969453700849022413471518449111714925864219180162605863456233535839717599339569409059201042941009380557944728985616577098485123773140391789385618237258491197039515911050599516979460502741025387470584740484767457933708431910740448913915372578335133041253286038803746909809813991947003184838528339508845148572216134382244279861922881277716775351704508126926569867348106803609652230773178704709125635270173627523024847351598277925739830378787514975920073558086116289645423487820571185201195349281134856788379169351033812010023450044636624565617375572189836855253854723700570790024785995620995283445337166175855706990910798494561509445682256200804094269202488489125131030281736716881034749315557077274805528139795858976548853681303819986844400812850083151985523285233708350678566749719999159481531461541991231162085986118501569410137686713306607796255797249224601399385386748429499571272972337830518174757955458662013764987295179922672335273465647123010093310165743350631819223528302803377775785227541494295027328384397999734129769123973349812716321476109150063599320960845065843997284550887144398223825192678846955815671685094390906006142463217814529857501653450395024451104207562178390915049465941306838996576220619708277268926957892630432660445123336645205024019659976883119100260818661075181902112666440617238379855750773559191388661650207436931494771733608203949880684705394902496368882660519386311445213365630530167912692139045128143366934774966921057393091578049986988727452967591502037168774017709896944042459043771132258502011844052746610371686331513293619742631934771224228574877727631639385356320336251645854946400835798242585685685600374249969377882216472139146464494701116883365502348099898802855027956435292185153609628575098589016186432506248846640234959689356328771914311745369082302885174493738668888045657656976202298585671346934852880631550276965604740639121704559597289890327092776537803752289635589726594091088378125624009998112573125272723295706142150074192127342378174884448481119113166599564899939612684112212522415280124879034530351552263875010335284559422382254196955716980829219662696695982222575936267341205126157612285664038690694671268265134585455558690280797458630375537133421495486607489299251326433393779798684384237448396615213265774604071786901842360526211853343361142042682324627451357864551013452882976425370476923785757676245469031596153812375819621726648414063813969808604145000587160936625099832510790163146406621232589817244588056749073713748133702518108733666032844558923329526692014222587703209003172032226884639498738738778227037406963089033829855111366263479797028517523523964937122361656857716736424062241240413200593694855006317688110667211095058752678128713293337327642287555512490612753166247679887800804707344228740980790732786746670448084107501811830139483401486143211298713505508956952174708195733605176604050790125335526263185873812357912454107978960713578173489444074331667650751724390574583711167303195955674180841008494078039784770489714348324336334083834602807932919241061770735509572947607040459159631841033040609379788472811296469542060359463656782059285216290304832783574386788118486643223628226650296925584366363782684585793355890589493477014937173123336084192845803444446164308291930130608411467433399152907802829372901033566681422752800921454299148182252671173825102342799800605018852893445993764562472503213538642313756577478762835236895408842765205691314165373565488482083578073590469432555578905671510737053050967503304035404720350516546728828327292049236679815968316929108081579309813166660120735385408029742651102171335003914841911048338155389750035878722358272843034845849108622419387110986318752020741450106407940391257965809136059553142623307650641959169343764517585861669252309984779459442447242911801437825187713941016866814555479169918047994425007407459248800739735072286971694371779192521819658657866452555993081218151840841085341648132458921156510017336288114690031244398422222497978585269749732407471220968243499892011871172609528711103176991812399346785015328271689418884595790386799415670058454202936164228262703578953630803246353106268864948876630133095390740562586604679232930786580693773791219919539473555832453610846394397483645483765636014451742108413723048700901189706140484676655744045655419964295969108962272622509157890130597488386479176809943205826699410952841140035846240363074310383430531080105443250518423287820607186116554337788339464395841234636826743004139483936795390143726142606189863334372844278286555572542125954626579033661013594685152713319038744463689419651182547696658557636072084931437323227947920925769106348590461654843549829638511532513258560120045459715248007663586384843646029797631714628877299071930301875724982854772321827992733930448409747218487379952423672059238361880248499779517451180714640765340509962400256453760459043138158932342649005801215080246164489553476253870773073927638180463324781392943888910480156709974521228080857225086616876159573015515457369448235983618731289290867087051948627312167376914776083501607554746022279334845792610770810038006817579511390498498523795165571916686651921363430010851731329999465689687274238689132526879417525603206099468489629325751920036164968375913880709325031163768612338378826561793287197491075579234745072937755983316776173380083422257716347040649872498472194567307420264043846962552669803178010747688601249371375265033046019378449355956193908914297675197748344377422666792506326347702478931202733036150578891840338789964019979998078001090868131693594705346590892418884065297382610479622477010247113702885228829252166564157592880687715699566262809239344725105492234431611036442725507217810958220272084638356038726633963419416475453505074206941100786244699027936874891730082458346073268397906994429647282964000772359267183129024252592026722590567126584695420766123336556337686654406943934792597876515072298368613268792500781283093984787149874123413046601545903091280315560752904773293880836634990131787833393949067997993443313866785098324189500713297518537437586188362345281329556923168775704161220154628725776808956863027845194979206288594993624102087495885581551295276290523149317079602358304067525378782115372701210685027301256146165566395221576166585057440531522689731073866143500281313888459955992662549265519764191207300824008261999573100342273454310554785369737194991480005157870659473797110128896339729105306588048486147442718566968601195798917465519624162294216695636529222871200016798194687785761953390474217608632760290769991331605132173256304087557665034898274681579202505137188242800095206534955125479844191719694164902692936957661688994049811545385638855666949317786050195127669125041788039152503187740909852329078157587692774566838479223618338399831484237165944182815009484722295659278761045398736261984009388071276256550498041037320743863741159905776466642443036150783050328405651350612009044402786505813721524121578486782529549433493958609168491446444608789857158264692160923949959596892846409797978679052422649293164861109555729939666450205280979701548826975386531033700084457092461420616640850443469115740543131279892215590815983592531157454344466269014256562387472251865154443105122745214196913356680372567035245587993546351214774082320267857370826062675129489371320793493802610750060128269985101899719286921875504169519899248323277807165829730247882117569356947695288463958640336454820993508289548226477522266244219716054645004676142136458975890762565446802657822283002586279123337385459344592193002161269220209076833702679423415486809602409510864810600078049324519148562920292077444651561917422773060107958710388575625174809168139361809521037958631040388151101815680499615007406893227324753954673695410025283595251893868792240719860706393398627530192751452204261586539503648644601698820538623556707819622656110526821670144641019044376261927155326120171641535228228340584703080296877202908682067435306967319460509682353716687632835412926182705091852528363512505777412216889661492920383715158245286767467969910452919369605102669512159242435320435712123708620762753654104704199695065042295757308424907449553995389750925377650431753920220237571877541337067850448176976932299419135560024991099237543307506825173689286119264558198809722300113293859611636078284095925362405269123853482938867914745102328319831716641791935267137210393843873464346440955188181651649010430026125571186430266413909640199207846792879407090204096685839913745182285659476988338541512804116621197348521640623925305045867768843954243774311573328226962568146251395239864547897884919543645217935527486677947764139323698856418720081987543936785509086541652464621750209152921599437368419829150361243278838041339358032840238236248900930510651260774866622411375639198258492490602414539358038763093307217661573180059868243948508462326491864796903266087021673008103593742769967142378712144930319771665983219734299435968043602286304535103671606988251174805824247887712578901069660440436072951197204568989404519646643296715086562397228412037457896859437096514675422223780483693577034660116162461768541896628635797705062742887668710212559802661821142443696062900776430096621310802894442449315457483385862327827569891060877436635407662164950628263585920866300493823824211289901703943806084822356327300042256729139508243172499574562557189419909251187832888082933299687853297675297259685143197980436935105585167206464993759328765406499517367862692289861037648002004004383546288846288569916665650517444962211509821843591454986876181715280545322909877998009792759794957600029301589571254682908120091057302484976231315033888677747563231164998391265453025310193347902399712481267484044722558690162251703977577689900398701821211471182336669330632439487975495340254592705862020259544609145580862066610946205845446835444027307538980204667051795600050969869324920699081579564555087030600550412694527145415823664280785307691168594377934197842979597414554443873015328586220718411176276823565663298170756663940978768110411198984417911805678912624091351084938377485462713134087644732469172147943193355883544217315280758417279310883746492180081630216052055742618052631491682450029452080457065664652967884868894024766754028392746680745589627795516260856797473189262849343780607004545066300203117849104645348678235480673322369570126188853449439539968449745505199081126708609544744325715396109489625555445450459498273980645102061183632296809817497917863715236617876844239401922648013782967221605966538156538251495317945118295299788482103840009850828925467907045795403218128316739336666938523180569680839714261314905139768017496780738411860307215996012104505060803247672412726714857749174014755454013365249962575028275894991363031779107651809582055369049094699117125619551480929660574557916406673261216039415122112379757890142080245338637454185404214503496915512021996842011878523101261170401051353205990244730744171992452629290259248296212797104373057145049898120628300439149901687280761453308524108764654949998690083344965940774973042923588119891059388528996231482502560551576704180307483649559506000676165579225058351846836847467003648809772610658149651752743892222976873090767006408912449445019319287644969688586981764248211689425125627082625559738434406939861655633577454595974339556493343651874213305808064397565736849546216440204247796286908708683716892853934695050829189437500813837620329615881228384209177187464284625809757260551773828051230512011048687885627473210872703258926971871336362766224193027158067232618503672924384521895012616977701636549380799626568599881600538373738714892711046396957297033955566675844505297954896657757331270687343275085405705846800997971298132522852607346396034867869726974918059074463058556800376942738120802773719038100213771007876205482909901934492532700009452047134938990979292325656585245020913448148331195463932208805931828362240598678074788205533666129312182274029311909286398550149544622880151541524403388778995789972658262487092682220844585609753931981505744782132425981038033126624447316720364437118375679195309522380574436889956739799638331896545648044893107350549457848604558049609888469731226400149652581724432175196095260581521684787898383995034644446896901940578986905995687104735164465302703769580192880934662375459645307162101009699564130300630816380932384230262464417099850045003847470089869398803089937716243707901754045369415238564597825469142169521621789316678845062837156480075657729716712387628812238043772409411024740328981568877498637818030092174984558859265720845552459780612143225669184373036379856004236466336215719129734869318998861767140728981716439468663858103316614547613649769467650266754253267111482354989311179580984846292472674522210265958284759103434189831685792155613313335447438798938488447608995465213982482101806694963742409812864546668640185778715719271017820717757642706685414216896215536590268084270638376774705423709920842323070110675774329776728341140679978418148529034729089745760944098672710799386066872064399307728991914928576801485449307825742207615919062675261463042540940660153039766742012784696710836061023340391021740266422301827534339868974499470603210374837534752057204058918296701266770863525365651452062794628655546373118182516670369064975286751798107759680606050847750432018031046826734030207982657805640510466601600480374834824098998463451929098056989804236274946936455996899085527705636527654773547584075267074527069031790034692191810779934913923691867778478413300726362327781310019510864473177910282306356001521236419972199388758786311180874423202030396661579723859978758559534422752835475895814963184441982346389135864491330073911829085919973352273642016593039004395045964119112038832104892882141253743107506291328104241250418838152599338960559476562366519599297946953417580766204782853214423978758304852748469015456539520870468329625539804877963702707830092123658448167658349167059973189998910013986309648551827480712675160254877910586487807061068525000262823061019350949271538796994342414143774882701891052503313821589523836830712085950512692551451160361325079402601706466767300095494044043636036190350538618361178422932696780520549618036162383263267272959775913189521464729856981641388112986833625808521749299203596982349170412623353370585893370645313857383543167667954256559320863073492253798511402723045195715271952532832519185996093098550275289708512012324853918618562265175047049564034137931721610995533740668282265487695329640999124074894951860045080197067824057734835160330513767875434924817336782658727766327558776743464117463509087285896585594766223535813751109364550415366302643981151986737129759862951164262981072393335162245173060758964290815294716821449280430450141977886406661056142215044181622460886344416178054261791582142646179657018566594974901929884350686604779923496542287884429486275588251238484067066268788630252633273933971741236906907139757030595773524131407001874844859119265188324384152377000495015667978817918819811830305124328285729009598673767649698725529527215777355611334101401018644280512951584549672264776405167238763662665151382700450886783771390657030999534846277545034955833761070895183575412643299562340035455917632130764089812262453040402313593905032006004644033247245398797353288134713626654797671985445786032450186778378639646850127906113447183632915218217324302092747027118142566368216489072690567811075100725775651954077694270163573140288943242118113629780846720710097099773713931505295324983328201062586165090177900003354321349959579451389019291257684081814039147755069433285699643363816734298302233391243822238233821362208992071120337158160734286653865533389971478047462160145879363467057351656822498717652444937555282660030328479647880794471010264944674457454151921016963410572951835561977727892297244193287567904422001873223348876987183624574314422092972304217726459311003594037463758400380552814658304656202216611362513812667122442075737568823477900570904222522106143344389201667907394529987052909018790812880423372008211753205751953357838997317298052175620426308143683407283654533031700316296538546290625037394297486937029002662546107809469525775010842515955590143680297646454246370412345591755845598494125037326005265968327268942113545276736325558719354276385881151147289554865993870470976159097698564164660019520968316298283548228850556136674142633914350245371998774342798173396714110039065246613264416162590075096137793747997572929314122969711855077887177294993251466733135739620991330090347856466887459350819006408945489321490491820338032927903031612681378191462730624897829437821255515908949372235820982126847574105760288660690094316184742819012626445581509467435076855228160393136601154133720093179835001326275106382744955678679597074248956011495687019216444844679696785504386689180576474839362767229739782133748916019142140001223202367488112879624809208655097009839917515174068233881272666444337877277321925986943772193680085153712006013370552844945520123362916712076264322672238982502180692411083584285351514810739274969956625547276858071720376827926531977235436478262778043903746715276274217277858598628950636446734172564872084405165334655279939932064440412607150719512803123175133601108431986138680384388833031173919116132494624201380385156746650314731739254348258811643628121944283138850911765710843761398070088714741585053506512184134122931326229229825694805427695587472296100100974123122896324233777893514865692825696746516999195259322716291483642608865497656008522104702702590241117985018274552051324001266207799387088489961516247607432729798980666496525243616633576616054903565240451770753443214288910974855390118494582850306247110821316988051663378239603505915661862355273362949344595991143718113589022256616923938959319098866612838193996769102557084068581720989803662645425965474340682066986721754576854956106912511893864815909869943613551286759241277260742495082050403522140839939780094223536417839425830277927590826739706795093430390583146699921161971724534330726200816860536329888076520535364464844759330901004199847754737953949031226093170263024919604474990430312622911520205822944761294227929842209454531790847786684743272991964741570086169122396886534773391813696842915426261721058019096833562625582774082156928164835261116206736702664936795851162848130257728248745842240183496106443182842235247099809581137928598560810248339057362896345102933428463835010565694056495990769595730450331021106713004601611436482811016743250000355606486448042415688161052266640003805465391483986922410664777342506821618766490679866330236726190758622863582609151143307924121514449593464352012604235749132883497504488934657540077925399106848068044602158597225774102469717262675656828243502173003998077272079952691012847597416911769966669888878238451902782447409435970928771220926196263269176135123500691573889611460424004515642165738761549771628144483890601026589429416563511966183443750846929666840662812941422402516312915681460700961383344733610641093100048620413355115257423401328861825588034094080829083286232208570736741540205945371607442495088732187916532416468189604120229318875262267410765590052398649606315698411140343922436448201175567977873898526041031157436202914394931646126884423042099383746357650881106306276581313540836329208818065481695284881177533518270856744725474769633105665802777095586516877711689064743714020673957921178157650105677798297743934604090899240767997206856278940244341429748881401398018291961522149007828731034025475030425439017674718144310255821504254068185545697211535538114784093385457268714519697320655940607916327712487800627757041028177394193212066186651016099400387985248303222561977517264018548524442439094460547904182651062839629201294354405861093448553415048203013688332765108551926955504621917851815545952937083768772076156679270099811256885986878468989298683227476184845087014193981689677782207628212666651100537188569416028508967307902648288969677466582337174520241993518709364126473756172735922141453066312423105574825211758941161520379521679705939780022741544974990260214690904540395246339214882195938989420422267635291052354528968863399152191638445090475830308307055240430292277646786839221632812021970022855721114406731979572660532692763481321612877912130961622130094648107787037824335797104050765656886396786058839506733580056058219357583813741929173691808167548309426037555699642039994727087061586097143652052598702625242409677234438611940784101379393865692464522815636517251310424890551725109281897477253090657658965875319581381886803224740543419520338793610131404914923030314500075110069098246345690491124262947951078574311747869092946574433425503563250039531025675349331904360379213772319514565555759170284033374803330049487834747163685136285742063598434389310059971514357782370520626331977842894444629895875430537776173730318803705565297383501935360654022024502538880569405862048778856635072218038953120606640252934656603889079674730231082856268111169991004591797325127091819952311842377586413769946173255162178389267706022176431778989764908804930182013694384558852386903100106546397914597414394587306685053166497145812745861681239287750064187263713360008864071172764416640073038028622414440205880621709462778492301205393827924435332214386220888001784997987879234019015228486848420996550461178007735551818877755365405567133861097348355718634690136888449160439068446396636089325376546383691674166234500483373726722209325893856633086315432823441975134166734476128951763214781781057795719727838949132111214625280378807928202449239551131368669278783318383733928294965050335761856615723572396985206977244234935287879129969999173134656268119769603427577905646324003864378780703354162422364221071726465113635330431579937248492760896059152121799554095776350759588308949812319584237566921228146690452049092060267902193703912065794280917391933013724908956394658608810145096434781917840125643881802507329153035946996585881001863682890107829607233385590552325475580799105974992299438353426103811273620735333344596679089287509305348432825900553883211812669435920150523020002272763782521586905303998647520504692720819926496822813268672073029123971416277630521809713479147059499266132306259994494622784843137580985542011581653061465468913008120647674824642145539545479633477085862994999089808554554138875843807278321613158583712486424486399760335638686800136370532975843249534011736919613182943657603644580704850988489880799560438054188260000079370167715674283017166788058040172210168528783982078520554134309907159751813366206539651531485566934250737063334050667152193421612610669899605694236220940254938357144481582325659871672342299249934566315850480266806614124246122688011510769142718293260412906318922947400070277440610086452592975225024527689095412684150139896395255316515990792614377360515902034554360679957725329890240377614624161742744454060706228828835066153797653880218409841597462676250220605223364681395395489557339206729627334273993649281928216522553762036018438919948566075096578037244035872347020824635285241861313869673672222417953798939775403062063157588205920022912520354371882533213620897682382853979927757091966272979475068957443264483058493695512751861845401740187964596505912099173022860641926663662495778036985969756261860436135735011689631112336881226132214085471031719166537445096693948762021816317261016618135221853993158590768023570090727852454177618425541961825653807691232987176504257757792899003254514694874387001137586987085129537238008371070073470597896701279036571082083145304652378636634061256486332787688980596586626037740898250236864351077270794641900143648972617153829329823311234552754172977580922637140282138959405888423038516772988738385249013587318184675763284152663293714069550119943338164590403916785717380126191513748256589119331593605373360528688794901587775625424386202514278444715299611559740786795176819072708948571003753697737924932897296601391573054131073588234505001339091797724256136908665184405407127458544207714825271722050310650398578790388933325354343586041093588789443405934105203877721037675743755129459968415439135361328740547179204349277885002059160559198101409932478998082998378781732156824824171677801404543567151405502794686157807026607067456260342240906291051459676586982936026842487984724336031272014700925873857958969625577743750990682609395468985933862925864746810428012610755973195275589325856321590855168967082304829424622331865093334245779319579265770445052135023125418109065184377840493859485748560392477498474255822217835708139821237870667559569506048284913515254900015508850786852646280848087063149812257603795260364915758344360661546756001187303407733141593969180747425072092010989636259459063422929157220539646723050899328489954179013045326228336442917769460025042195402330734053853786245426766134206615283566500905961828983583749942845620955433423964508503899798808225334430106614772038428435237119375467922561092726542167210978988414869021373178294213676518117471066246400521077929339369158520049364339456227422896289417390297456830858920007423808021884989341953419538584071875008272678710173609846517746668934272968214597972883966917183347261047122885053767233207547089795639241883341489819649799221776090280955382230632451149551013931149623466632888120610847083672056002261485616013886846887390220037871834822560151078302740763395505494506010039380494353289683585108907198204650329227654808809987131654535406794762904115066422821680165187023168972599546309418206816032301116932850599925220852823307070321642612862110081516576500948613856025492783047306736038384557542616405301210046962238683736120340622425851214266905603258099344854665536509143986324548696682707923163972835617139465484852073499124137348339919180843839205560229758693204947325070644428174461664920891952214108496873092621206663406344515224277027414961497744525848578231164417613931750801065750335534463853986322158983372719165298916922166539508331269076405566300468471861972259753290175551716998796419151181405824355708811598950098271475242283286986956362607656785550307115101547625424984163842107175725636105532211275116325993031400239872077517787671279909738482720125586398905630701043457786805509517587049128422742578908799944645017339633592842251608863283526997655731812754338582670505289566897550570665934539497431961989909814397895793623094653542821046118270059549991595797469366506017811237866046905584238784755550126483933788799217647853152669693834948867582046022698488029162416496377955843842566288877915447545885802444045938856648444949811690622722720728232250427383233589124274870679813319161827594698820516964648816904967843492365681339337758684513590889163094310208782483245348396108150142641016276668411084533965854123096938007693240688700821242330335716664485526618006663556869955598593327431470884556758010116577380102570728979915806118121081321885905252978898705150254027569379749743637718383054909666119064435408836186069806732935176164084580973287096589868755352569661738695603735749311534621008052609175756411680102459659787591648181684991261249323671908665631134558281348889128934979023866666839625338526876580669333645313220520727748593264427436886291464223306325524077441338924761261522140864008889638816124638023579587527666630447340227537944784479519991962593798717547700992461079891525972227207588673496389487672015070773378853374077900043847698430098213201639277448439860087122115542055110025466606496716493802107495172485337251598813794040045233665297376204716397849904942479596042597892641923211252293135693511367843864295362117460062770465437093230982665935620362821992329961910496365095392162538013290895705347244141748757705371027960001322630919943077239329760331631246025972728315307669648952487506532661928534761848126805912048781725305286262439029459971533888846332635039230931772348689293586421519373825701479851045846536090949170224660961457390871726047709402379906530683350683045372148434199427553476144314180813892535939615658140192885038063197136181021432211422714329137784628061686740539071839418110989248450743308392101476339169097456848347352161229154814425324847631750778590646768744957055171820390708949547057569089054300628262294620207184536123709467037340175504530251498984013241598407594293638932558723176006527404841039532823008909756301514675672951409339068171663492092780780454590914931591217734815570649708121137946538599475322772584106775400318954998395097781901185249426308368309232407868104669798063343026545838468177835526573037112608298668565730961079624753630291386174794957888562090256796580319439368299007459765089403879666801072230550928227723987541313039697428162521661897557430043311567397070113192501980313949252956691409686204634394837844194352182345032746293961051876372181548273851420474825104670974948940614906575057200967362675929691771175572620951077262971608048618147051675132022842478602712374516166852754967007938099546651209328371992780441051237750949560399892172263500916296905434346594660669166471048167899214758449503770868792297985929119691159520700967915210095395026418241306465570584380631697894541006731562977405042473923640246436410733273265612659512203183601688873806081360244927788543905066332004270753808930494924220583924376854811241155594843729513215510492084184234457481414948403653750590347998742285574155698869293744219322801078355612052841570095283318279201323443389440714548894276682294777338346877335288217052769267784464152873246817179233188072173679088058117942363755697208977824748996632829855506449417751248829111288013990308507573982734910695465499440482390428595443619348488672508216713107178344357262425313606733852942896304777941124971410052530439818378027035965459379764760548934413423662672039664372218193567859811268923606430918141236861553985066043423113478287752548893428532562023916671488693265502923667499999051463506381619808199628555561980608615516600590518442793082057425122137449558850868948453711310998043430224807676122938800290638434778603034893489795743605666484287654401694450847439762070522217226491912291733076235959672611096685459205452953918389956577758834500613538243736938083909523067749663601073410501386783390124078574350030876503449809909559256200465246860262500457785727754589631167972649361676297166911676948982749453236470485598560539699470787311440702163845418121388851718963625362333334320153660238159621577326031762363181841711145776064856379505015402774768700553023453005382476754766714639054622840843654318892151516123526054050495735487446419127133164546963271051412328198656340196401048379497805730787616647578053664349279863494017471877776650023974652189965281637561116198630496075917254284537704510755339749456068744021710644198407139880105401047688554776202098029449072491442514482383496093650172129922101011128204537355811326422929106925612451006607746853266817970228621908672615864050420869255404436747137817703469313908967322199554462184295594696323338226238775736945726901093883091715023980325357659682785113600389990358004203824954269586883462107895984397783223113953757638358580953004932822035595115490714595389934633802086456241002016962491108846004028337372901689429025617899821535598632868788424537435029866612185253910282274676849442792974212929898499856409618324740981508933769418443754362709045632177045903787847330648534835394304773817378561460682352864390505047009002705960189134875633092420331047798129587506423380144475919900050919940781334920398812329339292661209295915681995855526229496813369121407176360499722397974342373270788695333305859270465736516054460179922286465225269340176001850830176649487452566105320131486934679286305181353128563426134629389564899943046511022405747462434402602615742406605477104126655759114906187376481582303635801986411633930051607671393268859686954586421156478136034686967496074284132910702506960465340770849040944352728987216042201972702588801241656885995396185542359535536830646638494363127426742518615788222469016701389902997370351115844579942220384360415967911613291489965769502813793393751990820226661290202903486671327798135028707000850047328941551781386757995680945931915593913106768755635724433693981295768097715223213584704689884367824409975554774171291270251680316967200222672468953625198802988404225354914508291117200209807560798345843566241663560173866459074664890953464082099800472394398667553880696028135153925170300922640726923610894332585537551721501483819815173035159088747148242110825674175998333553620362724305711711273968896340384915488493929211065944831791600081934242990818441322356912558095654595837054388098308354413640282589710621116436160505592588189397085695440686927408918363979216952321591895427826551524932901925421655898786957848152519355354669954104421190730745598661828706533253502201754422762163930368322158663766797143269368193716380811555230698246629095714062144740081267313373783921020745752168413657761139185641195609509075999693723567736979187997026736638431734793888651129026735267686036618469104196770719118627821552294643092250878145106231524445588476770410192609768330633988554972361767474920125498827549755692370016857960649848670150308765973813366450084073689342837294502071557615859442565041297296820032412045558144673154329609998404077156435099766112877258464469310257475425254653417676455795528664572540326966797572517179621412622468995983475213421130052883556061997209320952422834910468169898302885224547277079915645290797609159811127748960686634069740455903807495639135571327166940194499623979847466042387868617248892783265282942831543811137890006680471579799255129703808322205519658426790589550530910066292926827801606884461933619040588149232059404432226711241630909515830320029589618619814146929270348963312171309242262383722025114676679010612247378687234474408853493360967664301122450559761443800566587800199683509874832224440971123475084124144892223584062330038614444195684742379497881672969214669068149483898694313304847533717204967127448366639632698369984716571286812492722840153766219713280629459608793293802462144211202350849945317194258385052028525899906448483291939848049297149038092395462039045495970470962723422811091674957860063239348416675146552350337776977182007865237414579149374821659241536810568377824167249720364582578244482870768981350173847740440313516877046753314353444097723378210415061887663436512794873520153754724630712191871986981094228254582789546124863567509318494945444844997954800399383326079866488012004725390017924600005836669819084956829996928254236885486674452305062651144246357147598754816532066735218590234839817440921660565068083627576390949508127824326480742930546717575489764121258543990202239262225544528547416944154960416266264913550359848361341215103872057856744136971725447369481393640548297277484019378418859347686066319119939209451432170956305020292419981474078244152410619339228512886639994633181985524543400963914133313040042093381605878589339287158013771925926611748617958675996571296087844545184183985457186442568697903873051013559023105319567914974864176619323051310714332781097788724206219797236623980113233843874200001087440236065256019122081081935041922788564597888048592176070280131279814796288715820710691207480010730705859648181845179991215074777095330544123545728410528470585854396722008998099698629734742805720331314758452865883633921615305235425508391047205488464044916968469379126126981918433858655593591415798090473177492284723847770009504151835519364634798816946111616552962572989284252773602677028674914817158597032368450846773766103731368401655878395954184853096560735965317692311972939032332367357343220061234032646150585088678776155391714584814142976856361383396068151234947676990167852016518388511389000664213193280903532119870140995180996107592664439586196566343057261912398913397284318400436838078122141995383362638042374672313010853979176504113452661873225984265640157727681476103676462917641948652904167673780413646409370450718537563898748386142505027247352819576435863462577837631589915523250375988105537045038379572736760635777613099578625444992497680238843171458382707883506337573547489475433878504531261578380703127384384091847169459885842130362400274024017397376701624685891185864494961614992789068251732047530797294644877985501781986897497954314906019608913011628849047555394116404063087234061445638525339960068880803014941022800752870567027299035421472039310892459923474803527843573722982412877266706803166091360936753275683507226500110416845652649156141480614597272525491802301676937883645659087830836277862722073355130411885977108505432152554786226159034918030586673045449396639927631887597296144489444119887530388791671339704282337123129738321619062085412405666086410762001943573389714340263502530564048117545802114922184906758364981103087835114565359532417464560555728785162326630263113138948303055008366364632061719660918301839421145595633653998090557096390952469396225499455902957581599169660540430751173330062918084681073929274764977168463508773594384482593784245457547013785567556826190928789032956579223644416708999663024948314059104869217673871326616854994141596402288553660682422935245376247398690067722010780029138932862952152634331845160270699343735954971722007968406817315110497043301121785174497411031822875407857790421048196934402961073470871431681832012101178085032574119581684471704732106588844961568808953483461808020508462367239357548626961318704412839533869920758064106006042393317867771521499942915421619661401203835688117658478811119592846444429271225254729500516525347169688476844088877668381056474016152409107354724845040396534759843115499786563957094204318027102173516280956280971226065743330173607242406408130627858459831944500393430292209563614404429627808400650184461108229332853823190880982752774253891236801543317506575345445349916020519584587917305474630309795451896808131893374723995924471026145602006633206011642607840079015023495636453558474663202308971994211062959643671072558651946905506958468346837826398322799224747755806772586804284527954013137765717272872715556600631168172561405980407878295501176090536116482689251817277099985163805800638966135897037596114985717928738862948582659579600842317497389960507091595203966061249008599958786435735218991464214222699329218713825683643744752388130594217666475912052067900328163141778372218312513787536729288857452811515388738038890411957105936507102994813428790392457420357279916907522758136031752451612558787770189081633016633762072414647078761209978768476537025463086028342196688654119570437363151536283785762965908202637545349327504362653845053466741196317299612442045505365312645194298146163151682757841983138085067721060678089595224723927517627013440334871347274540596420281008159406704817099759555065159722290495203997256343196476075755589861157679060688757387312096570711845556916112898636097868720878318092999247488736492715207913084323502312026967520008658772039755940184792232227250265508627388823086755743947393875777517993527973709381056120632306298745456295310228691223027707964839661865032775112614947229154024401471361104658663704230983735178932329323707913488039218068023563654890862189232568244401851617063188628946935422888694404809310625767869810125029247854088483804391325685131178146535803431503833920088379393092367451507338601088650621783489933728198542214164442970562155238168162896942419996892756886360057310834256379480559190429701504767764953240206140147677722096949756175289716397795193593331783107321373107196285955196311404575763034250021020647020804476361091626495600306347893504237813478136070831313897599998662595929275020347607312975241101967443709641408453306412227105589582086889639217621669169584658752093939893406687911261429883064895504022910794542537679619873256103477803169275167542563920256584963202058079832703875360562629214783554039922144686735162808768493710259708015171325656593643863400275732837287801303659305127866965905788423739969061192016142415585229281075831310041970441793621834168013088840188571644264302909499505923492353508934303909464448539557923104883453557248020112555316855762665518952071020798943107369118240713526519126280075568131336728353605068661632874138362718301435661377765131882318074370885642570810843340058787350698836104848200459522153471758270168612944942859009980185945900587066343339504663379803359638256589390200826190588861311652723314417638009905577396807688715932606564634706498002322945192696846624164826008660406871428010708540459283987238939646351219678461056881156070165468136106870252212230726752708196393202020830523559958232619607065159920744315686014696774148352428282894926912210938696353686389549963625975792072292208484369085893391408800553593695535253235239073449086333072749917359969463672400012034121465451128616455907669883862828118953687757557846127446837440753673190828431917797401075288534444952450379454700833202794091697716796194837548071985363984083720533284906311218054809420009238044496027414523628816391140756964486600347333508973224079629868368336256129942617413476305461393085805971162217761295880735576647793399116318495600325953691384853388795661744384599427666311151199916256381756983004689318067356871542226251876268737216841492567866433003988327697711863013483815306950343121043232416651374067928158409306484535945464736592485552677887297757741640858011706767081449431884619977272767652704684654480905410849215023347168900705685643144078778920857208744296566428837854967646411554235777462552594175873213402889553152458812223627773444357613508726380223557497160087419917741615139102299161503203496418477330909821412808039702367599591420803355542820671406519596239272140130417069917957241942732451574560762852762000255533700782776391070938303492663906868372962446341450514258475109128720666236022777487780192736695870142856714982019197433788424771986314110568341162647433490925773266398526447014205819552854879704828734745303915212467588448268149270032361489046109098230288936628238906046953067546895138229601404756583498229134485120648389692285850025742799350155962413586270101423325894228230887173934354231378583107771892434771749676222170896944011628319796116307112280605714031765064206507519129612260074411971092232401965826425553743122489807487247824399190442796684001156123844573055232858076570205018820726782699211193099192058967232877068466780558780700563098821174317823978097409447635896836528788463011316669409529221026911617287475933113268366805116910218097829009686791049587935359049812597130621514402108525510909118508387463632596506321072537862093426516848887945971176798350631014887877674729640575632423360488384595757998004718868155735764153073088366915952105466171280249782555136718528012281986971460235176090361713324559913394268001505590131803312726455757783247875281360969659298903044138450862538014657460099864046911725823387000525945434891114061311790846190546520705572413700322436173776365224652544738486576958215250167969633574852735095279547712114183492226155245668086997114850558065889101679599981790737270418456288577629984694971269261031021075370232505203776080312782868193123480196812155229175329428546203620019391913071664771416388248682139007148596326171628511109153953260748604792008093943421047580604620856269723012259907768883881240101048087290506518441597375682926632074969664801159427609929609827143620687749436515973551973556971795101045943341400021910475050524627500259466571314378709891582483547864871172965057440763355420147675182648675125817307995485551416481967078707645108175927974259840021803169020458879431884415738489527174086663770096984925263314054960621038739162865262101494061144148738566554774465862802850058736158515375587080589422930282487007400386522354055035042681870770131857201687749477329793147028338539241961341157392927947128496033159008534913186731216315428602314055745082525412379855887124357096108528469533383706381454530892671008700488364134894989902405774944912212664988945067610844418222405472345930139361903695174756513972717083369907531412332369894720173021446014176627927231237112992028136982369899518068987684385731770864138360444501577780610247614820976248715540935871051943007933207224977198765685328896969686537194940518706122586734223161705952881608898553717929844102256062202821875880673037324693650143338534404551166369956259328183658322243806876027086378244262074276839263079669013161460747167304676917049682481239819596733390729096071008909971239259368670694359745816514649472436778580724084186733090382385139363344931700333929963463917515089946799194558992443430599064948567573516964626204182920976867196206642782635310170847263198671163304009127099403703932146507953169812869473475823565082723748602561546701262954938229087678543277284314389995336007881062290763452400751403151881301127012029615816506613879598125177977763534806687733852519856589712962231703680356024518623286844398194606587504551772571779267238761728131215529572836292759084429688704998715852024893036265535117066920435442652564533423697340748088009353497240074729514347928895222586037220224707004628932402275713494383227385996042740196496357097146221577975706318551237339895727492288967101246579761793597674851339485664469079533289204868787723154314532184173422320947529845550349817692481736622875842848865399085564819190316235705029776119446348364316963941037913779536602338203126781169053107209665224489196895835583801002184808788556785808733107791150581588104953092068791738957341053153357730059995766528949703181448671409657602401886269018305216098334565108546907708291192802196379560127649822896162093569657945599265383492605491513170676665658161538978122202067107884091882880495513670643162024781267771353643952602297021868960638727507905433789188139429425495295683608537677458203547183094868293022079496447921871995062911311874465049997870603641190317431667600912833727458349972287833813955935687324221844573568138740398540768377187368660543553581920893576766271378036559361151881529991909829419706691683706140865468184097106632779148432265928262540333368660605570212065251282698807326180812741600967207483776214214042276755671120264152379744962478150396034539539069585558673904594118779373678852899791995958357770407498922989512607049586528478044228139374415386451689341008116880507478994046152453304197252338025499653461486818647465085905638849008517849549632743302972898101005966445141904676506619688609676334266622155996044658742319858218773128623873991801400383329236201358603856020303715219215015642467329977611576332183842895998530903803685279325526864080193792768201625387167896577462742153342872401893937147585660799831446814683676129645302970001244148385477023865209661849920825736613695338197738305499479538746169296675324666345839036500499786297045937740637804025963269996939140604014790237731801003133062092420703017209336874773101330362256756639136558828533087538261766629450602136167089329291915804017899418832835460903549577931583404109094080928078032240589133110606316616613929580300134934723528253281405004304877633621007468572092684818642163354456032154400224638358309774648506783390523269411693990465717005786737039628258289956058926908560427450253356109757922713242532770106440203639491496965772190932728829959974225847133390771618651049192370962305019491625600666776235163906792489803296730027573724885259556054883279960732001954764317501691927600739080031879125296517911137340535519942387772287170540307907466293443088271205071013439666848701733920801197480678195358184795146306553487223502468028632090008391148564714831599887431262539086402930579697827206119829380911994528378563252167930962900054346948537720868318129094095432387289221497511516050588315655864464288762007058479342599683137342930134034504634779386812468607759174376611111678526679744599850778883782490771602046405619029763762050573649754833164413221334780840410083131904387433287381434179198705399269119576023107667146141163620497100931400179258466607460639950873987219207845422983754184410332393435344562252156822879174614575202213348486887512246847077162528458291947076525049071972309748636943659502984496032046534800646760553796249116429323056201801461212630286388383894968700227803267581216290870770060337894060379273613122539025513120149168245631942789763908166067215736630245841962424930691498370724862983091355592849634668962077826324123330246758064056881141432801435960453725632913707316579399479908491110188889443481640672208447005729205124399572554889315516913898627641408332596545766654491389161793356195799185451435469667017663505533814880793517294689796165223422667156552927811668949246627475811763058015064199062525617430987433817601766839962474926611668808221805480037551065002623230850616201423641143088333595329647077300054265960405566983494502334646299976613780385754547571766983294469396558468197059740455685353091131296996800414848741977744096720411031603312761638357394702397855140943053619019365071536160401959648708124618835425241744224254872271509728056438640501233778860281567742551345472795884680739689405826870034677322385658027476232563014914454261184616119980255248749512822291193447120936087510692043392008587623864898034605957519711844127250062027632114815755913034205500641789388169987624120793703817311999689893220099654542277153078332644024642024197469708238247212664694026287894607418812839678112405063975597913922855491158225370889904972999725937303132986570591867570948213004031456475885879899596835443708864748573868204550313740168337391136665966443335344152794011617813212752642138222910980057535385671109719795640124083620394420478147480233992578576001353571708606148807983991236194252605716729469000177645528471345620340003770289906036104098185941097897706242293304032396861694569865264907825510295563662867350122438690216745447388950126981667514133087483379399645576477605562430855181821626551940291164711726015020243429302355356859843233100229499185379324580924449907829505754310629765449201289993451252078469099449276383074023386589407049996474333377459930349948294637322670436611554895486235358804728956416592708926720821115840952587306328885486355507015891136577012182198825827191291494769355884545892681202296805598878078429312911862212081184249577580093340014654270821687004698392402060345449717314248392299417752513542347713561341959358446486962084493725439664996712524737321760864976023125687367680028426616504847809885221278784696126965402270063513907660921071500058715504971222735691633359494115801981520907965526537025504848043037872329139040124155433987510812448239032851715785634973709168553655888119859468479669079539244209829698698751790459791348683713025196276167556747089918997953626545293747943175851524206617448510806946106707364836690199887947513157147049932957081277824153856798473350877158243767267681590583377850348087553448730997213103248445044859843693975479529293346346027220615930641497834392069861067827858149259963020311003445656186598917846670012859421927936268549750012605168367917538319775821744872514114926825847106400411839013901979301058688646302120527768706101735674044799281145267262342110665561038566835350141076164864655211097313268847040765273086231121303621913502948771806649600950437491169503906529651335231547067211169239397848646164712163495340496826301891317902659798014153629168155703185842646045488822334762713623390412163260552994742063090359794168325151290286341761650662465455596637451368548206408649321911437336494544170122391423360009464305142970420741852537045108012806308242446121108052556635491616010113277822331106111881833217795390254294805239439039008572773468789548383787206036860034453509473951145502183018966871514743285003057464475116165917452054377049553760020886386753239361619947346890211958018472416380372888714926364643773654215187861229174694970229913593719209219724308365454785947116052197223828423002970666609645987150203112871783229009909924186260724029656694732995311217437458165171345263806248477841821153319070782757239111386453489449262953607068807934502049703850851571422193725992501755812469983573220518214693033081491077344825628352884025727408076439774579955070715880796497921204836015807934338456822849385872215174173578186539462289235928859377319511255518359003781978978428556507837706061677585810957964993478003550935476783110124128127290393102252874046858374789199996986741212913524169143131970950640008727993903486094145145856368926544768278738990429034338861346560111140968168732136423838106075084722193593954926353732269635477839352764598512548432189574833057469972788945798295795617884432877432001284142411456155447450189869117304511383272257709955651609299615247264353043254266037265692579385648906333831089230475041352858078349387422062738073423261058711459006734098144897351468130199819526837881352508977957226521159494026721500858618057742642872056707740138159068013931020668345432207855269423318699791688859047026102485172042716644267379301697931870355501870071435114567555404519788475536477460462909194085296068946268223381860539168391169192138391813836319406212241220539896415362613049037908934362365676398617672141584425455046830771801888139875824538545183005093810324494558054154425742972655862042724673651690646777574096377267300181768725238731021008645884528391931192453675940087241795238697135847882162456777453018648609018930151998359435863727601771192070421105036569717169609659975251672831659922460108135949948263003685787541755342746629388755628784449786345633783483010488223005380478417640661730657885811301677106373255166840715858531612699928969988558474761170299175361446556364965115578138769076809331868952329852718547764351118291880031338928040481757743232739917146573693239284047972315727386703154328922940443639793672530475134986887325231426615887575141093153287584540622784693168339750945516780632828968604806672005873133418028959035289101270440083936622111216833306290606312529622686949574660881209135640195221534671782571104544298273134078581923501563349967958076456063726023621853241831935082756688967343730186787521823768855579521242896516929251118941979358760894559466266444076862778444521943003529688260378637236215792613438167301478673575599437732772311569743225216688850301670247883664541329526310488459734124439974766701826056676535201361535309135338024745132121748990466998223174323368618234638579485138566380807741091815076483872770052248898409406608056176104169461110375827661568006536035195698875592695998610573524403943841944877592536094151220322105808590701069780019705644653274899864071578205735536661730591389969022406853390569557485011439581396656395291951087140864369879083349461389315801573297259936451597601322346375086693006369293194516801311616866408450235431031783345312647053312249238889390843149746422878272100956939016224472879819849925529811492766737301886353847400590629677269122560998196830311005282779286594481598608907411552894690268674002471683479474622371636524524540577069567597795275058796095214333094739654914571017436175050653615927127103519825190271255031866637792541620112403836663507673629230808434243665681188934118901272969498189492290576970162091490288235332975195681976264242354612272513670189969964338172223566087502658514125579884790606010054862207379262755786988408444540007664818006796729606633968768154964504543049053414809814943515735832573949915158625017572639375254651987360575569873951408830935093469759174565837932251593843046909840605167523822106157304490390229471780276707166851488966461235239910543269902078591554300613737501910023799456020824089096482050939764669449774407147001435119642788599151615547435845013726799002070093488169350783245487141246855253253952409407212074356928787773857392883089718203018188989209887396553187494853294540823837683661117095264005351671705585682059272678097054725816081240299691847778377883692891770636252516440368273159777362028543451418960676770861385961153220845275677005613809144499612077199436614173194756194408219357049031514151955539628806932462973941397009711391146687037276836037975123311507978970468867622647266532716266262244859293641654206755704580555413285730978199918400060220445492343108126256929846916093778094306910691193720252167557966468457097055351957822519614880719102465692943647147751966293547728241440647613158747199525108954908228127118660672921152841257696642459980160633973475624215677949830770748290472330389399749948873938590756174285027919286412125099091937997453863077517648241083386872089730319238937823713894950978857965868051880470962815526981073603391585027618658553407754920004349648087541544590028550171426215425679762567783819440733373084533202822167269917949875897569303023138499684776510361544513281194512413416399212512875747503639059965620884686000430298664179054763081130917867389761332999570767175513112749134998383010298644205821124432844491423207687641041211951330261450055795200895089460935586134385210983569835595033111591704774126824650810432555767011116375285118480332395705630433590951523751432375720302703502701496688745008340938630814959039785030493268555952177644547773632202828635580387208522097694587925011361070699913943367371452347084995371608917487374757728722413245665945736082611200620240951511123302330517627658913782989051931067858930095631674801634627665988230271823222670492816240540104710613853415892472207809673048451772509107897998505444655122127979569992467820030342847254976430067827793886932529231089076048354012352096486831127145385722372592548082083110261697181081268376704747384581651758204374715917119594739226340007507207342664034877052297310757440558380197749615087795346617797220873730011344380486977550421287838487036386848939057942972638899574298196564779283454111541897558015900889067183687853170373182348648519327820682356208989128551786546217556349234993596945928976538412069539931473453742701648007407596062555868384198752056477115088158345039565487358392437262131713955895846838539353160383544860520794061108667378095152212337926568528770993869747029409111035701839579786848945842596780838242897238256107271860083094097381463018318605526921971813236120876889606176820382893847567394883955324500967016036313539866294654112031087874427134949797634611454412101230293691793598368130034912743705602527515947954719863008516858709463180774584872088264699667888400631410056270554189196623646356590942305920818364415367996497364398931401613502956658121063415331024646161830467014642794383284294123958036874631002351955537308852100177783684309431452568544335150302101520472131904521920133109986901787779125495414057630257733882519241570145529240025183778476257203920695930372926171749003286062412510514779713181171230253127367197427398796875347547336523578985847213715172485742287818249602391021222988023876650613361869476821201479271371953591337935245329015609715499928953670957959126235615064784710406612860789607309258934797875977735633224543411375018465211441809115891704706492745692150729519663911831133205902852452559549527303399577037619828813262398141458152705831877177957557404185781316433443667899385342243590702156737029247849820052761797779414521986116157335970617400026144810676210345705595130512646364519588323046654726232671630205665265585813940428091359918705276633151531962906664483074652593822391446618176822754488722610126541222073404489561157767411348189162269502107128076914145565585387316083599761660683163329423480840164863670118326360709226646050265665159104213702446017086387561232923590509436310046031283784612365133193009719332899031908587209409943772142978072060815511655001129181188125175798876917309497821101659342595081736704935445097754213573982169385043859835324446410582669588758994114241423520381550456565945606509521051930189712761030459629649861857106985922318779817468978503733732882003743709047469655035004542168846509460169749469623700529795901130479150842386077018818682695754751892583337555074277337378553563412167094279067367356047417077128836270793065598014678225574538169439894264164154475230457409999181872458079941069827573278056233433323063315186000581177713217021841298338454457860925668927202821690405956661240128705449332119395417137609805496670630836525631886624051924086027229491925537082584608504174554095887222923707673172160667483269656529150308041320196724085725100969434963172648103402539605520089560385064079668101137653980666772190609402459365784061070591492158039798182231910075917193515531387408888858768633722618940362382994911729263508123539025005533373517165001132317958831752696750867442649013154272106146449003901035071817401237367395783039740594085389410110663697560512362704198504509175118212540817545201961553225932740970093172132775296617559217859209685424853828107832635081823918276320003420527513208005503062674939056988100426764314227893048078628642517744735863370085484635908797434793461316269562694998296301024636626214968144415257821627965315591799101537551083574179275263232719206896575751406887642772203380504819943721750118758646833894111432950847493360478364588015642973838873987390927996593249294471181237064744962364707388839107435625318326626970935171531541507819900451455642618064011811527392800776077028513270254674859761022899605703734469802565862422549760294087828816999507390561304059436325499886364177030863400141759776935536521690649582411033070752750167413162328900438395220948829967651945471792623538397747891364228106684231153822785277219674108973828229022901609011650665919824006980789393121582916393413718360551066131074846117909328490392719957191899679335514229871736506381469530894801164942152812038437725765825505083617762541787347418248266111611963204151920527361081203949488165503378525601159097120986470794578226914088929945964184135195086756846866870605479776163278216266308182918194905326731405830388935901142274397797121803651553464974194322273696946322155038546636270506410145420563642317667944677835207266829759866762255515292314168485518062721415518904933409041609622781256452573050779911425601765929913229224158655922518632675050236209324456175170920882577971761876633887148957993163923820411318350376277379977135502129267064583545257948890397620629364725262539237788671494021372170146523838034638887828694660716693332644271094691596481949276784323107878041261929043380371457110077548254244004570644855015778058775958952789633309686469142666539768328985222191950222559483605272605531346863466690749398198940114015764338452865556462588476718562524910834719621201318114831877937286097928592395942334993403030176505743958513970855643920988883459658589345635607624020670832273776816847912394883658479954520715823969215156655777836620348019747179065988157003613865634051564674655699116463480975756868868313093618559695249299464074434872558323698637021375254881999376423393241123880232646790319841230617801848355134579307867289653060571524364864391908863500998767529279295340806422008889245115956901459036394911243419939974305092152680536170240941374932776674763909131237587399418604642277126735404194001274539316481097418936649089104399234110361395282463154860165847125091137675242456578618673058866015153119040304943023516765800354493694042324551700520796555366235666298343823257450052734081447075291824074579664578954180085378451811900228421019654805662201218567034291583046533591877900611143925940500959057638349097738032697777452975365633632410232900364159172143923172228383611292846151321218759712153956569204201238046202260975682709378211163783072092753429312405608112300597010800711296891461612940568533623703497346903195876908576571294307157603702509734294783850991993870333615863255995827863162108726521110634226259386078875220346379726113293561099844855115918123766347714733293443890205908480213234472414071925198109891699484518933837108993484883157082917395590849307363729943673384881425816208758937075256304088451574247193423547916390246644237644257460436863009641816550542046166364419706500880979759696076300828666002216446804596286451086765977188326719315664673703210720748755037450117770596352211847018149398708970980754143275581490659642511073783213944156848149911176654745546244332816389121604672328823740938274369586096667510829422753881283886906402575265114858462843531383740111030063932802128017429517191158165571768569119814829775194159088370496117179059463038891944272934826848098121514238672299534983518826430999692268783833065897361519918818166816510377965916761505813181638587609995542483887420645633961592742537930742929452551625033378006710954106836557700020751486400411089967918446880700611083274656879677136680726024844809572173943647964693664529413740724504871597122827458982337931760197679900668561406075347417049459376438083495869285284417496662778855106376331968897535906555866498038459475606727724974653316225112425605570578084576611753809307606749014461815589989452713045311399236751638220242696097478070893630778882429111236306337537786741081670275650736677714050289572777193496677557450390196481730292298656457040688886715235169320677874167001346792647258482780933402202196050300798766555171979912024895982857329631812342688256946758241352255001924933166955314395562060123774371726496575371517101789549984015731993903018862839264853676946729419895110836291475562155885491416348408188205710772088040892163007597867766209858578328233920547489207693733875996770519776120828917346879510154552587709819408283773993873362438138524273863376771714057193454345297091766337479024380096078716954258584426574370082598521931077582993484911774863067765512924457690846880150475076029358673821954481659354470226245191498665386951549228295754482007056083328564042058582646451834915502317229960941726680702590459068710245574105055270446147933981393338085452886410425678918923902891388067908992265125884014786072798690683798891482965679910934992927300060879784204635427150299859890684301007376344052922862247590276573449079608245206854803562461629388983723633708232388649589722206527481678034634447384405990637084898733410236600107286007010483687060202455371594788842969232296713378464960777872234702691850300694320975524167564386044490669109453421570639975069712144317331782039723497891548520489334678356063764926461347484301643183349961739513012317244901512163670279815759204517698675261563716055196116341588681314251122820430965026141777206763587581380809667563255919881997948753256439834625234830979257986690759696091608771221765968303201350998226376182996623661018516762797627332175458840861699145495934158284366513408660630080321554680996695899059118320245131999740688140883799567313211073799394507278042788150545292528903378027728499781446799122742834374068735684120570235792428333862910971878548278889234663869681499743855076596145069986251411261067921088705258621097259934061970948699103395325778313810289751463732347327501940751900594950220412908184371517021112041607714683093895542802595548076067451813424119904475135613436912012905891999122757747750047246702564466122288114000463695173905212187389389052556316552353365758260614531631092918495961610744849726371021783755135907200897605423142120217490050461065416605257812773955735585235295786648228926680110826372669540821468682693748522434932978006955266436118193747907463831487533078559280670947965666385616926878276202596537214411391153512407762572519118983550231342027772681738512882397557894629264548023462288680411085034709330289213856926065180236341674755306434855840441644818060041435271328608558158657666781821483716246392183541041651751688621631156425471288324457147983740228511461953409309906124404366530938274964822474456603917736606288679331515262207474413161115941473883949106658212024981181967076796141069550227353404318463151763411951686752035189820226462725420229832360462282306121298210576710243633648044134554571853651685248597561677119378113506274385250949540386149870572247712972266469239387892383254947251927804286846031730479009073188255462223514459452667129239383286917626780678532654436007296729384631868281754138110339251300454927316401062171623615711930602185677593422105352905018840223177119892656395536991195554194549002518155147583262328448894656845093543457983506763005116450243953075811230480296281166437529332188406098157502120046744574236602416335922723155553953415876443223039921095010316632251063693857841344126842780395361685841731960403635931192923737787547687255259760798297005032357172239454299425513403642522635270173780015109628294147495773969789808422824163370292210075859171967455143394897906187977646618494185121317020264811416525698095461227136816786190436610733099310657801631238161595374218395699556030091121573706963641555408211997061809419744435039089149199176323372756163989260741808716001117499814975480792582708020649354500109857888628030095953989777205805045299331155782259697704396776654291101530551236396054714985429420040978020705987723486397767067314925370725256064127052732969587226197923795453377369817598928514495257135869438664547733293830563130869265643584541409336324816116379684190623301275467188254641245227845801750043263688342220493380451289975588190461872304489486081832116938422750714136073263689243682081662528446576222235399393217302617159233856369183243217770614036378302457907171679470740201530846054041645893076797393532685681437289130964348189744578466334215222321485642880519589782963739886409224424587488970214335250102238931138072965584977237084318406242473676689149173473477629365493561998199612007711896070658654502726260090463647467156010705303600618755324730648284016341019833160830742759309255631282951500242854926869496362105712126318181951542645511994591121433253388519719357197052514898052735890812313630752688445294710146986409959716565651200869935665637506700343950890718944107785566156019454855196343184944874314917306529742591318382981319254456256715349064276345252158705614415500193513976202792465746959016428704119837282649846198219748526084114735659046589114649024953032262515020332369242413246725670361848449604829184715194593200602005504428297084203899518356114841046932664307140674206093771595363998639687792199056292058228381825969878784806005281819958039221990606360068688995777873719824103485370236856114181217904320734779539479271980040303446788979221155384614538796384124491464333130751438769897891501752949033536331641209883105290448581367461953228627476891266910423647862930475628369873833078121265253478006322467754432588723819658608377840973203726649923107637231651703428925374171911865193252278327720197885932833767446045510545767610033826694531857195322443909126935455403939522155793994894697215215682442199617417822135312991741846761662135961199464691696664505858094881005531418601198763416536554410143894293705589871922106947290616375718603620118589313240299927164480682756435399808719372376263548844087092228641898558720127003885378943258885335635612963146333210422099382734607319922437830093104514660949258799634521241253747817579086952207505208556124964516998522852483034794249808147343728342319783099142855720932165352044266860282222306265961929457759543190986450054069602029804138189879354282282923982786121190513385423456058522643781622712753652481563280046602219748111855490848669186346548606124223250203539805745792497242249559280144190030119475783263220197653741078574253553871239569931276691112550780372748962638454215710236351667069723034739173523641366276600946622833111725755361811179670737097000546511187378076481803470167751751024423659421974759167854890236893265158981207468166177222027642886973662179467015718344425628693148829450494076015282132150007886175452556275623089865387116778394943175427084741958570831200075910981827954135296791793813081616024494473770088966492559487618381821853451959664857764108173812819028302969086436829456506470287558924775295002767788005520775926457783445353147622940973724876947883487758992652585559242940805495982857794351227627918626562837871018042341105930523477501916444601302614118939070654773901992349324979889563439752615308070001642927599479478480761893535865020955167570585101890379003385122368492328359308690877909334965465794434668178549963149669510216086445580479782997006188519642118401885136621611816621735172671467577945093949302674038004921851247827469062819659079829304223348835049430292784235032685794532372446937772158687592688633858222774097660488424728518271610277342359704178907922283336538869070441706260935619644053558402359408507388133446043549172650857122039426071453703183235821064861744901786265364545923718798010116236675434754410918739342082452091983391733030604667685425656333259567766010705783206155969576750236614565602203721196397196648547486410087190004503722960632633704283694667992106522121131504342606685050629278449329876643170911055122833465657321268790277615524677685339725483194045918268949791578578413916438400915006284772706785800988702092060719141629463110966159171880624012128609883917758961629632625687158184875612443785746472048081821027233735703687820481041203161201252000156992668711982024039098776110456629812259682504693995825291193999493488372244987910516129474581433554853610883284490667468606370923581457151077977296304049378721498262683889513457395527732030387204942649485756991555070301913416087706701374312001710282078791366111739721042827134140975801807095360076134136194259491397091350586655593366709224660845208502343017546098866635437696629163468795131434242442799842911210964537090021035641664407121356731913430234421722188466613399081229372930717266728674028176218374080777604063796679032892921279061388415803712045471310678743094280163795974057649562550030116542999592441645704083825508289011233817940050444128187322869201323363644662181050249423710185843870872334344381617042853681454422143244438829243683775265004754431966998717624442648512253623330620631261954830887439156142270340882751858452584652727699814954571101957528940669370810559173627561816317168086343155248304717144028586947302997088259655190418792150869617572883812852538231914556527021028515156614978861118826043585971762114398283945812244436653055636816833559299164317061576567260016278848248247099230511547552750224595827331776240327798894512471782850703369346787649630687501601251295230381778476440512785667799024769962666481327702180537043074848783037322794279082451568439629749161349170288565034043221766901621083763768114185837973421959251425182133598108361774535176778953553014047922698728811085902448421877418540456513183266335281734151104239831655161153057207204556566100356581005047200553356959964946504445575611780710299414057208085276317925743057378454019140420257719819807364091846517536010507708103297192919055452896751285621882954374163081037667601013942699696697766648294179254742921051673258833009819287322052770033679125074876714308829314560650110961341066051730004928911173400346899454668275147626875931293800482606413306445454866532769126289795242613764842204703939024357429407138233311801368262258473390591284123103689089362643817224750143477312363651967357138920573224992885991521991941818175028198312865575123851148486291568124747953575594587950950413332475819842103127442890336509705344016028270570603513044267070603112518493604777635228774763606425847020883628154415884140261845357873003413838597262418141759664498382782865547333613767015505770836036788465306554990591457244632112440302404465888577398857712437619626741765361394973559617955218457086849826256938571026603523671607357053905403743088759468185161936873222135707774913190139829581746976733644410321725850148392322206336487926164524118181631764500768706091359378471211176312409945432528308773972581575505140343010440710470184779535942353029439380835471089374977833552337841563443249366781258186038000051596265626821808209316745965214260387819914855622664183105624427930463218242564630016606923545504668155320843616014980211669655682289505094964938503454440642709924919067460678523305218785096474249582359087154490278938519082549716006743183465766931392395356215389816756740757622556292957335758549672262857843627303685994874245590700305236400253892357739904611640469093059060248876331178486860819567010270910556388315199955329945332681100574861990309379254069741999943064790943633155468923990339269282707569617757397973396544337175894610675747510647301178017263564597037649614076016572576170490397889665903368440427340435853564968081803018811495888814104005572413102765996428931289815461403839123974930895695068202320486391647985061088829874743729314498567154502403008767218670224254483830352297840582206729585198858633669034183167703854813186811072902787460543510958624460445917304544559322277076967037245749481801374936192501709326690023841263201128738180213120929469474334953710938989052754566514159014902793714385094959263487837835507093407160856009896756310864344557049510506717213422283708212643606913135364010570282032567888332470766857479221729299934042104229221963663485955905256848618871709006554030620678548650218852868837610932707716394165269664913580809509588111049114430256705002977046998532664629023720105072518947233180888836326158904056144383541916999603889306900909940781521191679489227527287349810456753005290302479036797445735417817058408919726219649689353570743483430663916596990834211393612917030714648592298315571646073074608257365580813826949495950042907728376749165487280232991585643679675463901408136311508617604173539408492722142166863468120789859721071534284455868347907836591619723175661860441809736371593840962298304389972362498116972083822750290602301324853941854992174125126284563083218472019857585170721747794212273978045347977601636158886991929833119143663858946257815198285963810974734345639160362670059074135672868493676326912200817863778593936854535873531918766666237332729781558760976316184925574344171710192058505848607636882903574008714351102522912845479074327380357293901774638460239542529910115645084771371563328142605135605078372116042586097155570936750256344081971982994802304210283948566038410902785701897212126189353895438227078098818837008343750835767524630580211352278643813574997633523079761367875377487758880698974514070061398552986316827525823307413924934260328830616395664321947082275946272607245101932661874158392700103350455042260670951556532200840143990391025140474455079109315553748176908900731804035069699578407558172303552513173483197926077903057474318349192723923624640067576080557702368768220356540625747433085111584035288143134605353047233634086510679276943615323857994803047258994640703845141862471533549842360374950954964338583243621539763605114562122580512422040112236804274665528045874002041841116212481092683758890941903103390657998283169575810607637084556011213147156554985887008318819958211880899485852387681387090417523694980668910549229169680958387328596236703049559998722001046239994606219750072101740415817638084241805198294298423118461197995083960220546608701296632400994809468577312676609344492430114777918545351177689364881231020899824204227018024010343553284145149659415578471985742765049559774999467968424287192257717689297668407053320866834859026867388362115626070914027629533326786794901444364184374317793092159021473738638046598887896876415812566212111944257242140209595989893650867174012715792829760132508127116313081065517487118221214488822357448294129517945736955398374658775794858892316479715493494343324025029471933812463027597422240724489272751060640684888727088260801469144257320446183224541630338726237671091687770535581465055568975768764949131028134625729157218706845812574790627840762529436622667434254643089497041463867270839313916883800403327612461380455675921062132216953556724884454280414991056415121513817605015498106417803113578332251571193045077786441512406873829541085487916171731722982763343342912357336402147705649021334482122040439128906806022175462253520950755709783908554448422710846101216623763767381432783443594931125184035820368165207048960249277265182028827412904161685000961516503077877658840097178115338012425848350390685188805487926070272290492260958408778380851482870973630620347500721514003577697948019551317847105953051177126898050549697292796389342254542064465844648025590742165429843608047017213035399374605711060594951019151984778105874089875616713222971861427539960363028062148341035679275001409597008168772673173187597858381300624069025968979941518668460238493169313887295429991739173435481953213659510507599649769705903551593949836345818520742779823069572409857921083518409547408123801452294729926124006041685173316443567557084473424549257185193458802662163019271205487983199658922301257794501734161781873228594077270478368673462885430956101404837897684213197503090570074125673466861345587573172050198703389253194010264384935569526131473717420552853895604124889332504959045122825027673243126378292754676560124907272292490762570399460243407329971522563549865934241244408171564486888328124386003097959544378926369758374712309416321274917103378053061952618009306307863172301622244332206825037139182590803415965059168665098656766515763250442915945157228168161642278076145436455483406236178522998953301166782261678915181180976279229218304480130970196969496876910886029798419762537833200923220319572372448055231500898918768891398034488238512927237505661741235343756691713689534961491568632833731134295007068451323902004336108063387327373677890326137349823667646929711247529390406671478668310280074997187871529834071715249468736151879132237050319353646029491927805388866145545503129845212878985423756050427905035692505027338933370146174751680924862045506789581500323956516863151742964186264441897797678847775861874741895027411404310016090104846761689269755837102386532768287206498288145171506349149863492902302632043508403922688472991910928624617075903156573596847473591107367036978208883375586727452005043295501902956694546383269119489724657354806842000413757281345387453685412292265142749292414720061201626097584325734310021302990169881731300787989312242306138454190074866389015175244682941306652801818034746364868288244439113634556169249003437403798428507941137768826677218662808658754976091974750291221351078446440562579628257516986059930720153851897961275927460814472440845024692285046628973262023501673570986491466869984452992769031881618023345097697634775320927158901923748481517080981341344503536600450533231187818405568857785188243468017250209943207207417549738169742389909347339930134224640830575388870811418541745239476538716268975910355618059707969886517474378231505231585712921263399894626127151685268480103790072400252395611120648453393882592348943311326576771274117247110471248727297652675277227476649059473383231481887453974516585862580177424760755629364703815563037552835031554230964454012765040272349309525947362045956395076745706717626612666171568543718067193484650947505793092486284661518044930567053017365502435928232797973732243057910521098424900565491435929868484447552371531050180788758184403814240472952153230056368643859345751166663898167601867504024767146863470171083708129812063907328723280146363673880777167734863716838347068296426437772231986029337325129341915483414894080522979437043508421507964254535320645650635301383679318551626941417763856053765063400900817634109609167485947039067629444424292742789568378201108046823735438308043172046700271041531546553991018762954087793484114982332289211064319420269248572386674112944953371835903648609830837564933719360028582921332585913605707014568183665868424809727952726258024946338353459805783029649857215826811821027975908761987468873407548385382529675555750245740295162838067219406993590780334465313357055624632435116307848107408616431949238174701074449838896464615197387191860232964132144263053926125937276571131756326440647703173205553672853071048916122234903816977810520105409400131707227970445293375808751464361669739676296963002039723322541654948952924511165849102304877419620118014927870208579736888738077306792421461238340848420012104386327410318179524840600547592482835494762277533620523477212845608551750682887002517658798048194347553182686300971698110591297615164062957530196012939576592121761516653701861356391458901614065620812338512010110722330055078096122279836480230925430639412990852162135594475476071087990074342182327768098623077370779597837893533281447744590602544989170199804293550086653644236153409940835601044253927499293275523118963201203572765097496889846741583208109852950880636947608356369104659797250874483285926230254542049047940437577791292251771248306619429879348116773600503245639354131681427717412244292046374090938249808000767338225461013417208981787094876004007152988564819887674975238982884815294107863343811300082173728812030833726584834863455411152211480230367834068238612866232864587583851610437540550613736221634417300612395534323869960512934524912763448996881652144936272133792543456314334298896206230838517902946953075116468800344768191643778297219310607087319590342308190541054551716309242276982672685085593974464570779317736864804254762082601415775048630758461403311959736988349048057825003173843376861752554666704360023654238559431248237707211424131814942220527202472894340758056040928358452747616918267228052927192188218935658951786088151162986803685640773304432374609743583764279470411289366654420565283275525484875214232342670737356545862523059235638057145283964010286902393038341467631656570857877660292904373830106982835551819570456510598410832508812406079979702749298325822439804210229150100819869053989822416071075680331420150070470643753398009182157045116254876540365255690549605911163856174802355911256195600548396855226460969854994561202811795725214959959294512661673258461001068969339870239314402860193083167452995525406849107573624645345826927750913067516251678837134122640002079229873654447341087046744268266946741797116543349671110236797890633229943007950732130709689425076093300458190369640105657054663129294768995401761791744733782934877581626839452263237962383865574882330636937920342903824801645242858055902899166628855499741610880531511135608265259030171874029671481487409372530648939755830449846131487551576817424076407878590661618532696444165678367966808108171509040425119254256538939778100247372026487159427569931157843040937259480803307457703818443431184612172081280870318448374276692006326165962304486732131556736436521322142427044213492217392360937469102860536603158145886858625811355964030750866326258463689467544104744607442528911155303303646966094400294142194884907771621748499050557012074851289307542742242120415340474244875706813820484822625900925012305881742923644270424174866423187508236828860076131643186738443576519529674282236892985285279665156594818333545854258724137497359667383032262613486020625812847194974783441582160230437963401989832215114897044715886791620563184357587900634449578531940825805435959918696404467645363759053749497973488213957536228542693141981715258936783727707809786055062376976211871936534255545414404645958528549348718198993711807819932899315786067706856742558015680312359391744003306144540114020041471498011063057692114629406866161431799625100862017861571418103287207292501193248827615345306467775245259869446033128578871247351658946603280764516028590481240746257243385137606673190027790562490408203854855938308100223392383453659192630763154491219034023731899326231371909432642486115375327932440006375763958937507709309529446476405154620680636544040514546303193178734383980561427441701266516778234101578537532309719407298188376600278648470650278477822492546857089644059522956839962096021393397302800450930235801733423040034519985358761224033046489991743573546802274636774643672509805192182387227695329923669566974357286140613976698747034912707294682212591917540845143967244894810093421029053796164414102289196394356124204465281588234099427822573048130576801994570847343018236585700946601829824400373697826549620069636081641499728658437026535280355260647975440994447157564881438647219255060379702831947221445069303285306090725423537837574490861033463089298101429309373014710932607155973612462624375623622884355581685190211755148533926937198278209559502670830586009752377963123078832334120965212996573472076104584239153394879929437140000064725749166238950706964174534071436987731417814171381633680215553809234548212354218392863191858528755582933330774017397389752546857608643245592230147540710880475390977309977131171501775667620751479003746794161493418543308372077495782896044592594753024868293552273025339193296959014733051411159417488209325175439482019632624036230335724715702693737813531953943897474257919057938891143942257230501000135932883479437264563882228657979962262048477194031811737939761257208244620823371233760466134851347014962182947266925639062260284092928809745313136648324697242243145115105932859073771919334110426749738697806091150159488755553794690368560893246822519983924143356499487085017260137144201646695923566243118791189558269985457334378336180875542015209184470489596768564543785086362649127416626977617031530134999872390629770452681779960187768225692001773871814462674580440399695329580832380252058140898541322105190821343784410034413593615534148787858487488704162059811484974386189866770211066738333882547139415169287411897326821858743613106018319688057228318214327107951539922462232410354780369861239430893530299075132733813900359068312309422044933460830106792057246196414690287887139058130984972764584379231590324680390640258593579228934886719419314948352306537064285742499778956625873198379830772182499325152368614502331237966128022494931766110089355780825282867573031927823923296572487341668359716335171905578606948411782591502040814586799610732036343784163637965588245630407823358921315191744568681536125283533115593684879212073289850622843861688457911506945205622340912572906581635718815726614791157124802857905819581328806975057071674423903415920283482687083463533217220032748830413755655929272448691598222734542541935836885562024714524378147421510159081093385867681347945825000591410455293222692275207055274302830541313068962177147586992549305187666675498599015002016381077413138914033243927741934148586385520130403468386513489859476872969795439757920554252105478454468297225097894194732428161620824466477038238896587890361152910520771653770202280974494979196166666749037749844934834545191927788089480946778670216476078253910257296841991008664628492110877077257021128749184068682129298532500628549680119220474175342831785998911124170009810757061210479812823994753782363532508028427885050138933998167474821482728508879746488759762883220041381878821660752567366114677097406091831156326559489857645596850176168012210821608049403921614028452642641013667980458167445333514756267305488945022140130332283431399908175835958589194736738755091793717198133758244516969497304799678668996155656725210525906108819996004365961358177770841091987820273266593107169028985196858601173047312079038090759685286906872038275349077778764927693728654843291675966227971630573078412190610188429383058515494070803971263520901022181309161753958195746609784417992515094211995368930165488067642924246116890125501093357531111344477902423851385917400306538032135797024960205015089010957439347294526492891560920782397566841804204722138239870412232937197452970250335285839399873117104907056451346626882562547838710242211881052318796000252268777669054973688817670164948924645105964802825627022112485181855124381479918347858405344399123760599953342518135236781307858850329386303401135056805606407057760051230219905396385127928811047078549927259486282283845927770314033092535366870639667633109620063443762565812436007295199376086528648172292074128605314363196946477685247690720513739227726559572303901679011566396658179964015316118608645092474394857093667830182992911586578408550964305673805554753784790465287013308227582163172363358015504301109212509913744940251991596467236581149674191507263262703296975912797257133703961688561285594337239896836236213935726692382139331206095653420239511362248906021380662574274073490531936077454963781159284829216140763512772799738070493585449112205167567553643360997238864843464542722465075084680344581541280270780763684941159754293129779843820114604727709064792382481397837653263602352810093182230135209489655512819221071625003505302579734807809054766548988452960827890522799416892040008073043159885436181438263091985266729335207796905638954461537211329581989698644799611647565730761982825932864921022974013158553614884011587256057552270887303694815082794889600608186821926699485581211199653148449748857653179933391238146116194773906981061799838077386599292718520149616051152875820587474051605671139118164455760961164133304506646550360090936003103747484253937823105898588410637342744441693593313468074035018551657356904545746608246004725587633268587558941548897160682251579993856906386248536803626092376017430466080711811030457478086484741689110594011697479302921923685641479079032305735175232701016567593308134476182184441280930155008946003451734837329814852945139183520644942450435181049140364246181934924168050349049201434100834807402531194274740547200049788363190945664939851981591027237019172204481380379472399908325933805513970134987141324987076372934624439399192245482222244148084312471810117088166179580238800619936446153090501279458031383797679766150508148797847440731364819378367104565875320793511548331086247714775569058622225521572028264690197013273935618376110372471948455611683856202158460965062536335777370781040137495965584094516620396710973326386107273781569089873255545916945769790449505686600443763056881706130163616544739647260204486686063416616484591258437678941509494432897408879665500618987671907167267745445124753538034432608854166003501021087401348493144300987124432376686781871226875363580406458906796522456049229486639643774032163202406775827366076845939710277979191211219865945991657949656043163779922609953668330251421704898275733210847502924679476407377508095800628704998910552317797658983609516813382807207691886440389352555347651627540684605164511194549369101804366549538336011828501680868805386249573881774471838777655145058074382165861151408818306773119368641948835760264726617962184197027374348881890607033869282710797067358327327664027097148921816992408446574868508394352065948151247888004428261629251543243061604866835484051489447573296803614630827075908302897559406795263976161797816756521399009295959375997574896649482646864185756462149121094445869043619829856855733771375211432058314313232205182718340558056963594127166019277970503801954034963365858134912132868688661050031201880537886207924729755836766615255584484479943591677529682377787102554392807102505309461117713949774138131812131924201611110011158485549648223543362091164707937881890702236451381050933479782789902975274181635021717604871218938989500703596747732175915909289187275510957935450787401014778744249217686584741385243800498456436612377378491091840897080633614151288782633165835085952845506350390091180418228860381234257144599994698226702031347196219369098915506061641266647152950480633890850749580286032198719271698177531324770765495717347192731068194690108956914335247810610706341659060925354212494979038779930553602505840732759663122962629572426871461106902742239800685729836186591945373071578385650020388358080065640313388765842681387099591518749063934508571725129985184718006477487963242176405125531555509055028508672947147018040517253036566131101732636507132761144657104755429452601008528130965237916320026644471850193137214242649727563931620672899316546999160679706177685122619967744962659754177585877433628239724254786527119993734788816555818221648308015305342580523309181682005020035443142733840945907381983708418526016953031472360009791261728140790069752355462304734811977839817382418315751761026834824045807529676646880778656838824922497314112144951402654793855683245714743928937713757864045888493895943891762152699007887004650370251222863768617144457744070359722498649460250346185967147700810173411579313988628100511973979418458231281946075804747227070196212275390644370281360401174152881057890016093519582257871806991563212275937537848156162111147288461003038665710291346210707239153402652318911194537935740424283683290099125963360682393170231048043067794319508638683080827161464985866398948044216064006453975030003738979376677502581870978273746449398210349960180668123143472063750503938941828273265681145362056140768210649386941041070574793747582086145497282135018770490205579974567646599853322029387417391721407158292738538487590105556083466859325590305140927829792803265552749851039652865155043364039353276816775604822220053392429327191031931704319317841897064706632313310294657138381726161202201294882705065221642139034922572711240401810514212410702573009247320050561941983920762543111438840971596450561530287921676307822455108027862581970815747571104945952461119949934992676114401255692610756644605195175444329426251422450030498929795069057078077060764734376369175004090421482691496538450185122456212279496775628605456863258266246966402542849607165746496531222350091260289462700017293179374490854864809111564945730385599454888036933017254473677365478483598171140043823073278724922587619989536122682879881742683016169135500061550181841141503931282064121860460112279774211369900306456051412112865592264752823664432612658330053288059295714714893429606104593082297629500209243208355004751299239090091372764359538240519018646099602356074912314068314016099646451994691830774895666197438075040672328104222217946842832069513861709379633065189120269355870167600705634112171014608673683272787468940802680439893087053094299569390273833909394517113140142867877329454102509093331548183103060434753259726009784782574085794483011686492430061086671739278307517708488252775781713764821203577626600842326803470492364767367884548009564260516360365208193813804601196328212416788459910179089095555686988461977727779765024498774626951675558932413286322628365112602707557530918549606584335982626950765356099298366924266753132838494488282520542725202296018024747974902146748014672099325050088555754029860706711619585010315444033939229700532686771576487110735486076594797604997828537380293215336909077741467810584260088710317571260966468632081999482391891457165761261359239156545889731433621786694873140107553063403434973316104850331130936405131091352061641671127034937447403164680653968479163063812363152612162230395674563973946872517986995805436552986451374006067316845496946389027897880321786232906987202229506970057552233511543154686438667767539144518491464180978374025392013925100288152688949981887664846704420144944950843516936256407884662280326710255069252848702543041088438627952878872874984325913942970027311445439029538186945431194771276193610728543830465320644499362647280907185990089775385347512001384308045054614050196347999738628248528838982474286531502737842746413427839405390676951897043486061244151680032721658172549684016791803133499421527381488568367291292069229063841870539793488723151198003663819141097716097392224421287576869149823053454346782133094364215426110366070668229301557322857743911750775526868796625265184184453616236574865921629638879727157132265632277834099206671032044052434895365159703361430594588760509586633491231101987513671939045098876017504389854227376280575639377539890352020174687838588443635345212068691247872733298442728390928096811118952585395745609600325388605601611287714580388346523288451530549806124645850385669178603830766452385945211245276540781685387345915564271640052627647592449625128817027245901538187448400270988160648354884848550696796750359462800578714871075507797479943424838707878324523527740220812140386826478134797280335841745886395335506442120595325365610916273570028227652494382169613310935388377119926225985544203617693378975889908391816631758288165404818066655896909360970226627725659996482923392071817168137699933325151695737765998446337717886142074206661984356112630094517534262451069973999832294788061712004188136504526504652626367565150536585645049149285913713724700896714704301093186102853426994358357095418868305604200268456872272617537155386881744520485704648926322759267416369638168477385964140574658654161333280182843999081521311645534602186845620279195087360986683738955704439393912518007880985843550265142840054980129598483375332564747745189928676364035339351775833175254600961817627300558416820990867317824197502740063288010694166388564859377817701040029670000105047495467217720727988786243286522202934446606100254865025116368113415037318561101868794911092556965203010167923155759245713284366233402958584698731841232833294531389412441644044208531449294555969385546810171083803861676745923340634380175483322260017355858296035264319189474236446803043305458656057188364709946206091395099815647496408301462421149604014664963055125348952611050320576484008240041807272176326041560943621688789475687851510555647541486974812086462688183211009006854308558571200840373959452138784785658180600402977416503082271590133176376242911682453060544353377089610338277970889670804036895239667996236213738998591886571208903158725027214737789485498775194931375653317808394569150296486105101565835403049939858659657082662244548566221625404383730087932411808204400226758497175171724160328015931666303377223194487463849304990753069382351466212597632047684765755349969015784723238873742890661451431208152660150315408787840334700898107448779437767188666086711391528173698244599334893332784551031231930762630063207903728291075955372748654605842760322096886802268676524756208807710320229503671248093729538306161790708204949721100694122789407504954896727757520000515535616734981696453444924143802142297810350512520018893501870412069548823216479853913597146166310489424979671157726675889511190813056255068567330377198667222668621072770117738899823331950293902008861450699954360574060331615391711603736611942650374055227065974741609505033932440402187929172787806578102401130553051702129117281657617425941295746719802692032783246327709893997186416145930229968827519178516540486006762527166964362395264239278022885184072430541858763878606335446325394057276934133907329137050792306668495289820544085400970269283063466479462030938494989860544525013552080655823217045538497155702782215664890680705642690306788285813391688891107020712833111934541490083705456297612746596192381040826560690775578671822707518784672002861866002686697622564780449783363024837341539056968784600630821875854934677753498607490411051132261755142544102140318711352960465275496073866622220493224639059744471129188192668917507804844655743320464250364034601577858190648680250104426069983566122757770473597519286307455833248308732655902815082820841771872044573987873986395360346506436737176384347455152537493290305380442621419201666660493176806626414426051003533440825680118997099620454293247533561674179201525613043213207858379665033181756125036294312513863353493668533125023965556078091698624503019161672180848927846469272581083872280701499006358411179691879852471537857200600906787238298347779062214447365422548298938299411748488499385528085673500162975642429885000707297931175811716847254191339115080522531432011818532285443755161688527569852600163383055049651381772670483559769171486377649773714234494220362501759767025368424413810050394147839605789279754989927091876142387796214573747887215997294797540720014138905227613877255347262067532605212919845407120673872503625256394726256666551263187007779605768503305779771829175825731138441747883814157513386692960496642343450519296030284732262695728469803886373594513316009695408507355518239165533191983060981675907441194622499941164857950526063278972607455304986220273010337462197603384111109029406151695453981643913079373405166535745090045590831064301823943043640842408881813727328694096486904660390344800390503713425487410716570690767590366365633757477364657989155013191654743408326897238364978554307984680585346726109988824726751358429826260440222868352758006659704009046045688596263097887218626754136888414952478491397659785569918984262248093427076096421394397048442010325628693438406425700668577046609827877975045469224330268949681099012456560953631736895796218897565028295217970079133620484653281117153668553558931520803825817523933779373352836629400838002258208160593441666716547709645081775768101432723602107975523738517517496607813141014562184883340249761413537325405295732191049160595499235424126575032167782702579043303472757367253761730329103237101705910662820776145688858201417142468318978610826028879766869500377452586234747928685439623616483396915280629551545119468222300015567166654054180241021205946755017124219584697868231313832159416074956300621188351184316618207918275738441844249087419232341934571125248258778445806848537371589987231895477873759318423427787442055475871733859121481734259576850423750139643624555901976271768757608322324964079184986117160088722328589951985715038820347055881295165455564356544368280584936583255357523429366734828191556510653413417751787491416602830951729525228810149952056965453198115644179282040368748205966597717276896842286915880448776475560275943130352495492476856071635589918319607299223024926118407965907304060863679080011241491519710755604751183859253018969022417141662163091042778113307454778423821234836282097319654796369662701427750582396530494276965682231615181779154308437549411668180735331909866537648199534964397607381627196427499743024913393734788072460322338687031402976925131474834740402671593503869138433965016396982007053631024351213325371421311555508027196378853560814323614155416290065902086004030192986943781801386893797153371865495226205095728690101787451800657916859256675050032538739631934740503512774583115341978315663871817415095451125837655398669410675280550479089763218604860987137294322369698828577026980822378745861075495024602052929396549589947988223243345974807365163150239712096347580162890306088715836139658855222787354921192190631599519069992174864340334716968599242372187707341348445671633529160110830968780267494869435055384686474583023718314071930479237409656500048190960185426766742175465006365264412585960353183616754400005051376016518818766514609102370422062425245745006666415814981954626283341360236143005302056686480965707279572589925504668764049968675573366939255571973709981283636484940564840662152554396214526406881588254501657146822959087607899841663058356438733506424543470494780503032417486071026692799283983064491484907025264883522463469484063567396503139653609060770074824892982059600128211727283260951323968894014458999151114830434466605339964511888788279392524742429024803146901690382747135611927005906015408888004193548492042636546663327865577327559469296582444291528725348373892369641636880047006867091807441295387163820345497673270260797037520321329428431291037558791473630462860419910456779696262181937214434054377022237548593124553718943134451094271762032252692325281888826810108271815356834661723546711555775496458680656360044209537084471490731771019697934123610883313916318365765692483970645422120087869625832865332199960229653500905367374233375928599928432725116440559947010124652252255895028711806409063262118671946595175209503411274183062910542619076212376745436568601448585602098561129840367221675937146275633188873785988366074315866672204786922950019600963693916721249057063977792884623352346887345067646011531640244059731768847357646716521842663070851379663743887010380232503277201869966208305207570832131216343015505722129179480882418343163924950964101435042688129784442584734192247117807970943182474365414785496393014099829615445230585937400847411435069174424047970236213729439865051517308906396973218105528611376740492293213749149391988084138738112212254602683022620112490271366146977777063581971956399184208702491169755424476128096268492062138081840954990462587879296674933116732078385427452253262429688985598645428497576593037485834526542848208431711268502935902862231400656633607050043373125756181387516907800177140235432361873801991162200307446773606054519244722101505764491199804372401161875837056479563090777207607254553448101999224006226517788890364653448859888738675651451327481598009924328540462063936811563479760020506272764825629892550151327796472592668107484606727733940583610730687452065428240428148535927178199827087572046686500523637639457994158078493188210108375900110033366116039192818909224273963399900351081863886725196874468891778019185925959452933438126698597326094671444832952977456982844273894661031729164621451005148631561107075122948830326747804345739519043740471314339079317107791280695350209125955284555609374602427593426806797054145864110403192406713160087223470219234050647663874988807497244849906598685384422405078629928058287396509646954339101413062264317042833917907351758024247233686999234748786116805379437573569712237842990911046779964187987423288839444300600288000149537752731417950730117321294099166425441500298682042344418502830848078185897183426197574537388118216422984566514733126520302732047395962454900445338671347991027336460798703093763952425966517333788241832587149987727507476801027664126569920582870686627363911427089767053233514478916744801049637618919380075828508857968742549822695803929845934083641092634796112352948144189680806220766769070505006440261836289179970247025118158819291941753845601827592026347034807671559318205946277667866601401627271896085779489257504135175862774901964070751776139524736100794610168905395380714527981375527234009948175461692797477505740087085324465090725934855386367924624412979247714335239248795954660381387372743994318747922056504238901691032085809084289362880774137014729977530474090609870493973499214294302482799053082422503820399122276838299312309340899829216241168821765298125463075887577521566903189481872375163897106809712658072267681121367309609388145508465635741590588818493166267086914482519318510761709381576696370993114851905699037359500422031896846544888872460816851359198067908749823235275137375147353730838682345957021057491605190389618940333170218428541046732680726528385564409210907262870578670653920116971107134497488357315416564771866463252102056860269589628854678108977327777866651015473639788359573787953541468991729522221937289790316288900195211204714469169492362354700291552042765155046616243713561254423387669596340703874693200637404670051822181158979669763009295846455447155423455919513725349319424070023963145031517661787336846453693659390904098050594464484838044374507747011057187154016085313633204741359834905948090556037302545751887776818749952352060539758788024974803778288138014217185519326218732556298648765675154436132740743948318828379085657982336357467604872665033187348984591154000470971530837594253720682764540411271943006895256915494058229372201763371226496619650854982261809471098706739825637447675161913094524653932495710612557980077057442266670970367385192652211218239810305922348834718461262964092603498628319399608829826022722074606838834024261817623358702359357032923315277506701623667111969061036165474519356742238825603237529885927196853922396976450732426843404859651249073961759996360161453945779281185482638494738344765366102369181841079469792604010980851021381216757554140515856392398311955871789592357484230885692957072073016457631504437675520710127404084906283859799054669171323257606555033013135214464182525647066163676181715734111525734690660683288149950883102640179713354810820410564979203743790384599021109346550904886864291785608524549367036817221617249084094251656163342479315195826603302857582011348590075985158595254065609664117112351158642986301617435617786399944375935891206999137915380962720321325609475587934926414525484811931152154759938862109783140512820046980748705647083701793511932727297730656363670327573435295484086036862929816906123698197798080245140514740248651473614567654591066290088721319097449801994450824012978998273779194959835642878997043300139013303292305419510826335030822756796086797701327657495929760389963785570469824638122129107573102452579716064916204019036315512826361898887468753216674049790413209145618980746604685065202805970984725444158902043638200542959060180925312355087649960429661066413536406742995891724173655041828518007339354676774663493993220769294096113380862615835285846458205471846259398310812183958221252447710607852159686290715876089698913982501209806221486118410369878898658309077558501013794944386916938883865923756861295033700222273312270052367584299985950419711067483245013788444538916789120082384723230965645179754644452182643351719352160674200459046475440509197432229446201955836410186108944527730441599895399126422631112002364746524776153599178958070207305583964842197230385437388487520459587699625724543082224193913868689342462970802101681264454720472820925404614266966049594835788013247809339852063309175196443713394909254209175864569570566004871588684705103505615049259164801855880588217882799965269575951815091916534304680761485545573961044934256696422387418872766949326339976055698907392681022123490805839187581896665770401940992674741428506575682721891393037097827540881955678993639123632700523942292894832983838415892558239178487054382734281193854896032189831822301360899942184391922659660895046980664409036540601027709360386372318827082843368700018133184688535897855457982104595533731694133548189138479643113665145325593358408796771277343005101252180232462838367467864856053153854703559605215811395122556891817262245897206985167468355492885381429618108483292748098411567480355946007773816994317004488619043274850430603311561786831008652267905060000232439688139410602656216877881807537740809740406305470681248352306547832910488053509307079705663065084211231669516394870388540340792720806351368117773442964074758967271959241243240487340328630331072338224895799234214239540351541927915810977002555684385093151551416496536112544212986095105707114334349849347702705886237277596536725313834933037501658127249194200669731329695952405144930460865918970489854163485848177085675362902054054306060127399236337499368300557745627868371498882348975025635856350707125146083479076007596916063275454603975216727265510277682553594749207909068188489457287862381759201053587916881600667390559860848160793323790616265521883634817135496255602813419124663339120781062151161082628952611513374838489915953320293285620690207088518854623301430900813485902655032854993868819421184440257096161850908654799672464586038171062049067575079694322248168156211477291974836705430734754559861581428535144624059658426488261430589385432205400041543529620723043554057542300995632386904194644214639889202831214493925360779522056152615451264242128947543194340578974528448019118285847844924782466271342263100195339303478158395379826415656125971354097206154188357225611520845290119389068965614959799517159529395548276046434344020646651256556427827446592777001206252210839428571795077278800290272627264283977497202749790503264690818300570847194006188883431051395266938119341924435399804040984684607343668162363956522522802729882158178040541175636452828101585750070814532103013520934257648522640113545507851287582224746574218127384760070216584821168812186257494099774934126667370901909218380935935658998190255796469670719436861112544048424424840217314470800777863559969857151990878265830300698505098715068627861907466795373129704876238289551367512816949987316928883514962752265436146542716090202666116234541224048170998261865201661315686444046613729920399779486033538848529131113148538844099934238742622433533668321806795914907176886709639962535391399006370563358181412537834408131116232418693806922632521631544394419187689070354388515618453842183274460569245031837673323438217195481732415637484853121637552285505914057268802602285031295801396790473635974948569855484058881080266439427982142633147673984926219852917320664884666592999013579867361618583193694287054459334857266893116831095824153639053214800881058087158780553320068295847395107906488805282768902838831736924279745600515876733831042443643497264815900869909662727443564337962998337968804176900183867727085404527975801841656661391898595947577789338375227619226827125310519096087117637219315739408962339431511524944281987301922749961900846256632850728088707331231565723523235626097257622670939219020226129587188807933259978053922083916914925676224458608064267099173641440750544459244143734822913509537856912413500301405393734160198433858292817318503139802913379443495827169096511990041898635689868471156003532972927808632670847640385194881830893752555660832210426080297570943760307944811052907455107813344859299920032300129349301335443750050941880812392578239176106187228228093634701902247906568136425962952059866429024674809553429499471552775595113356003113736083507521740325924036932779561012850336967513192867230245671099991652294543251702696561111815043144071796896086059454283772188463864283573016946422931770517998375856713843558569988699769612663951674861127092800231950766095409281804461254176846683573065078296457176275241521580036644865143967026617589338880866778104462861681825440216195928181908862291460227989143148321251512132622557756872799932915824102242247275837645200825643252901414441068477700660973381049185169468780161552752878787914798549017114140794655300103545940405510697020539301003989784179471277562376420598473676544290620669064570505536329617157384976922362594585140353928299522986021524657989519802130408341080140632476446263244462154058067195434338073854529370320579383139559248758108210753197429981084744903458387208315745749421553725426173659922710090493028923123343655189988828659510816533217653727469421879686773481492338390059362467102882510451505966543996118547032874436980877758593815310619883616621356310200196097998954076601005063935765090149169605931750330319597324236252540800833307617032908928073760843333553430109864154065489093898247658136286973321909408059509912420486059947513060437322513919221033677469888526591693539216531865956901238011983060517400967204749645825431698595106843474951198482488150106355794085313791979131930409784488381332981516874068695755414059862749533985717740076766776699051005790778111762852232397045903683136730578975580267098795875047864160071526789845715078801993145806896571842640638096240725354651172797653286158153258908745268240888320005041919580606039145561021984667724983399389780741478575410474093242619818130915531100128692304318072374643974206932603989164099902945652480650998895586443064397655412963507759949428190704910171429613430433502540165827046868851394519868373249670327467066943397809142356381743359850418870899685305570677400006485821123594034789302381639826293046115263110640106664722853940804800806031353512024423470288496887141314695786221613348620868158847205124696892638148495290416472284354641341136055728245801378913242302407034086181032211084727484605345293582271777585531177661077210954936029213405310871197065158095831168746676823552494160710838072916478875148878515450498903116908959126875781700790097635645654591317155946284298664116499604177648467332822248908784226339641698311417824752561381503399255743848278339987496280523340304283509727426860108213362698197456181369175091659969638906293435582658961651398181624007436744137408252039040053652384205146451732327199388263115049298847536784799661412430171003305943297636679062912311122330401591219694189925708466080382588912006447351141737748062905238296826284707206309482352971728377371613774871581494226394780134104762023347136722771819033406368007676503906181342488438702310082123405609318372528762125445771371329909260082782369408674610064328840930015500471096585017898923606837885172811199425929710216233218729213237666808097276169645244518230585998953792906815714975666087723817407723808591490121699383070139259404608711703518479271105966869025359920577179425377712273132170346502762028414987869247603601677298826465727217247899941443949812622876668437812078390783431857575342380049085419228988230764749451655587282450115672559272119706584994301894234672522981505836028478449353997249923040232039852443216030004697749539124708812202581228460520397718317726335357844857005973442079964043949724867367270900414001957588924258798811318062425077672724082027920519124254746651255808351432346262009148780323801190946960152688160417819882660427313714325999647394709696452678890823370658521764888988284427924804677983803367826871325184533451994353039922981004390896818428676185474453974124621665998770430624610595327440658832613772512113803378697945292262182349377992773780684406524455236481683342565402075798996142516882759226896197155532304693834175567424705087467560964732385997645758607247334982289487698522120863004713463338266685151634713951243214442261229448297570789730089678390470056913162195815664445506228247507792165428367637326465512133414543460498689279095401463534101062651362737021929339756474395432206899212071835128034705020575309690325043135339912804954927177390994708829169937762100186212421909707184650658866256276512831810360711085879148449586452682360673239014978608719279314162728109656107855116930500480352053446747679742823434240279719086372822483422351282547879235261321555029667481789053176753240058055859779455572937951423015464233677177501624475408753183719925124842771823999338099639706267924096821616800796710193031074864756375424846342105063679530991885345758805236349747787779501217564851654578276134687127935831798098564139158154173457289130436178218669111148122732953340601281674705111266978465612961365454583150475836789009489257317651576217937004546773214638983828228573746990154560263336217079951952753606506958761381988312556300558861889573613902212630132058787896938556557623567223148545006956135728587003148741937286217960718301632321086385383219274542802275121519111649733142315374217634704155213875611257069727734361067952792226654645528061944385413074318448154127436233841610147053264762237058737181480800007658774298040163981937016060288623402626360324424979365690880632785290431608883061220381527515742918505947761999030428741373529421797430601688056011189407801746950284568498244283689798268153336671558425261835074696807352163785596394647222484213120885853022608599516229376807576919661250654970654544383810473236105618773885330603064231101811011637368187848592976571416243251087335456813135181502505940629696962961987223455961677304214557024289439418160283118323379189469134216502599831478565366126465746251935495050948526981157450032693311878721933801133805158776671318047665166083805113595278926571374487221785527763573251750398413034816613505471968319692511716442462682636000607874499439373188016094842737555434803773610159850236329195453259088841170899002989325502201438115529033890284761150442899487418882066107371490225385970690013434669982487517048087511446151542688799239633352736857437048581594963796787702544363568947031062733794259815769457984547642365502082090912871238145018124433805162862240115535972464875783996876407733284256495077308353179589323735489464863464338816456550082533828694702226557944878488480583721971173336232549410329478530271896099091303695586092014678346517451182561632824501861692906400823830354421460402688898855581165004430880859218282398694324619279953374070054840076949073370833735942889440614010789492834817466107594956660774489138345860767098676767579917878222568432112155347328698946264596851163579914161522023143597680953323188244671771723883879570077999801638168686034319435198046914058211958651054378343294198388094028707291777803360959109414695765958921684816073614986002037525762089056199354350131835831637128716548747142681289108425479083820519755654724887493614239660919576998362017461357162519758232386987691610210033507560175545615425780149198911000851858519454931351428251428024902108331248479333094656014171338537392088915995144466450519823832722767755668799214012965687708345764551866540534831013828616395661807715382052180924020444658319695494556238864970372227288103236518619030821078854438387611782721467034062186602468312163887003863975186477361969371875149287127700534952956683772246532911261184675555409974127655572240808219175012852700148250310854714596849212250693848608974471246853534059088462735090487243687032242142214581066578389840970925125965902112134559066984575086649677822412389230834817611673196606523511935907463208743363797343729054459646766087941500232156121149088006689913181242564549945760106945871052434260318521352587044058582607613391505053921364813880537822804636632737129214047674058182106362269439932171659805186508487296963064359082726145607347115807567675723368373690489502064519150424901244808169084120460446729268848003781498592982551993539962156653643608006897986614662829625036321102585465251890795312514341595579110223247674722835548644816800875674726382608270032532690183198067245704531990871412391780498101967217026202166042632593137470731655698975056542867831576216787499258659593052373016686163068647396105232464339716223759606609183598082608335458899652246354004479794915310336664498038720506853718249275463221619650788915986497095259780645367982422328644340549093787364557513607759587690642926904372979276631525071425305618414640835887999441726065392208382097670861989047603828939841416967717867737756310908319491820642798669461206947067199281297086619867498179838473528697000463218669516531595131427096998050032064325296090157564716255934859497682342491091624620182834744719481816036006930353884908055102192503588574839873966158901515493154173679369331617550398172731909414710306623958100427110258563792412262595941887731363017063868463704644223483322166770048807633560767914341216588345679685349495347938927764628424598156151821436424173110122194993445676496583089223675827301538617598582300020045051682611338414207964206427787540757592837086153965994213678891009726597141197090406349633536949234941834906512465868632266631065390904088543160869964271192287695845996702445133062282980783767206294359002816840966935314231199496186435663192143937116514108041750117465563776790273592287908111667533290292945130386868655956695267126989737463060203983844781592950449676504180550013049318760335749838758367019194739884636307984143032049483443147765407858070419909180111734273309330104965016410976947633750208167834631579119271814244369420553628993670213014135203605834373706539291662615203083249666355056746534677434266936391006322294753084531211308761635861568899361854670770928991087701268148711505687593814859075815984121162963110552902359539325342782733931715220642057003240561809232434062883776830747640796182339073990700512560980773607280543995985786046876491533435771384624888998848482110036995090565333412747586600633526819578833754872076599953592064968377248118743372011994042685538035055564809103156551127006043331164769777169284574485060649373677799184766545244461025615652019508149430781061534310054648541109512249202349823237175053646614926624185111062364618542901191428155750504810862917585797585106680371528872205375950666144345168945612086130166158700272172611769854490772547207830852694271168533619518842331978941371709206136041520405083901961378699111257668363896240100729908026386828205053896190119755000750009733072483525892029513453910662236944869516044316581458090174885193855791118000543776053133754124216920992279873948281901162605800314545445379379827578726714004749707502231494874842120555906030480409179252608336927578636557545651858818102177180529492117647300048283592878901415860018746209551540294544784874321418244745655652676253656266094575854754396027677208550346898784984968081716291722419893071132422372476320374954431795392471724230031142953699324067713895630055436022154500062017489687530576625699751433683425679766823530909998931449097558440753253046454881388155059787465067319251968270351467933874931485474735370633544772264904049501151986169836922995567317588916722213847762722661190633435483145834535366990909376431724973320374369453801207842636353616880496910282458690712399688468857341428647825528983370121744170320736092775921408158395978159641245922189611160205958983605724067723260348898054844492780773549570881401193085216864958924341569611148803099558445555934215891613007390849485775741082926173485745679204245119998082993548519947766054012176887241242261016454140431434089753098388305304420763938772514543678923846778445980070325779630434728794288062599102786980265297788310956017135593101864588566096941200244253398068737014444240717446567795576098847335530713922221207431056874508916591875772118891456837817239841852285391159912475381265896474660666205473693086791457720709662543331927108917575093817804056179383700428649523525755055798232793775874113240024352449765953212231958134106544312604059090546305992185726826775559722801067968701840690369901017561985646131317992319534211131907317635928301649598515453279888510172799102831181253893895429678221180090449672829429491893747078158887438362190831365299458733921315880313185781129817371625780385216274270961922375440402062830701287201918025249336137114702162703096064207233838153465873281287424525612084255304252026186231163802839199218670577779446113071028986763624898182860961049623940330313470801165891461583499305932348441117714110400616830716051908677003778444823962707240673446786299403063202743529257375540016254833694844366886157119503583054579599338558340172961351337126595115274857624636058254988767339069798031914082387414270735637345183642844451824628699698964525072950320694806831754061900831116582211305334253469025302345430678304915635705175508635349465226339991044305615625721176522992423194028177068970231696428068237434399889811218317043908961085002281379086926187697857333658610893921876014140420764838030520794539283132174072483557846128839001288516736648887094317618272259400217991053537062915562980103571139187223177362351300998457308173130409940923147494860599817184194860846566666012914032613838900242283817174664198091837614337035423575274948042222643273554909349620628149155704228618784577118972131984503051173303459369773772770174545000627794407776603299557035666972511855643193124071802715845906986339083973238079389457889155834031729650471795792056644681543220473406417429930731458498878893877998584400093620411713239791068281524537558891788746793353877062538084324283862071881150758291702015966568142250717745237176595944444099555669543323940162412241223312306169156343455827346771786630904731284495971564065838127732916246205989729710057133259030006320317886767052205266618367750849044069605847468697867687892975771052791678118347585179965985042446608198918189859987473887079596317398621259520734460360637191272138859764608737581253536729716162822749156145167992792913650226521542506330153569842840666056191914703868088649062662025088362862568378288251473816354384470623463502161287579893865987752064343736693172770153755132298395038957161476581552005186948550448351332462144039975062097343816108413221265808490148650997199781644100026370456049537462880590856268845397321555933595591783782539037823099219219645850781704839065799280490707136152305920711511529722565443921426775934725619884079495790232299205546173031797679467208609732400652258826716865786678473001967805740200517254630556733222201040497377183532897612317397400685830577428376680417477160449929013740765409488026582155641963540596155909167314677505035282701114697335784706519040605160230694883847256684286719578436794044858527882809497891757261353595868035971562145581078042140017508532193288245890979898922961730193517427015506916306044180747486632461476730548780203868297272289146736919393033531475094824107079953663892112091565886420893784425347007833886010137080243528346950365673804018720252755650517392013605590241802800291620854252102128231024666619243175762951054231260798106297029597456667085584887570668548036570251089528937596111575207005592217193691759863128097838072708611358590772124579453017117416610391747284650480107061338996807531272177803679487349715860172384402796329813710036675830943911813160330194132574224891874678569990094593779952164869354728931578163387909292540145526843792770629821927356536926263595722735330412046971467458166121022775488324890163199796598982077840271660247330987942768215820913146212418979896756788564309687626779589144734347566959703408909906186079803969813645845211089396468971199365940994299358123984951956172668117163059684077929521525180747521824122015868153091998881086217356965843428487535628067643050705003123023213454360872269932356930446625239776008731492098761426370498542077432988687212033806013476993745580670094577503831428792359695971375463768274222725896672807017240586902922252020808692613900993130126712611711011035731409788953652915592800585292389827518357463907895350948549370127478257192708112694192414647857208522448892249347960407738482225061178782467212021439493955397720063313384283864265815151662218693136937132650786031705138713557814611382691108113402640993318328028160562068620599845943483185133930316808973337177251075521595644335834769485883084836367068809479550751476986576322093660673340721196947498883151454678472073230518357372214174452835407035835532760515170789509499989187019375358970139876707942104936432233935272274944338787381393412754382461278643107498675080149220298005167675769144394445751459576364243119120465237401337908814050982899270413700790854880767605038574447809380163330332804305576207790368136761237174400631616045081703150387830801272048476455034696475208135642604900605749125125684719519718460828505357379179612941732213965650355648968904335532861502880852305855318951528782855040279796370370840516721534951591037853432869845159440621711960740769491206044545220882888127723714467987722894333792398494532772620114535464712281536720516015190229693706211153404312401466147015206811387191209515396228408389917591972184493269617265494227110075427884769046443525157994994453317169677034901723570556595867671648409243869283939168179447872989766222358447238226202043162291127053279673983158950061705318283482519341527931072394858807725759837678892998303851635587045611277619452557023080221441301667465710446517875835016678849646902730425842637638856181441827501287710716388508606969588558266871366475491975843157597940688910160951503676531735142821378948282676177038440633728911569285060274478849995950440581833820315029968850127819756400925101609964713383478368586877401607952531502537576887897917150645654017289356920457144943895643359542497390947418858958847665039664203773640066355272155577199235566815707539206628428909838020813807322181306743723949282743083034437607575912416133565797000897921095466278760076365067674769001246575659494490249963306238435891454511507969552646583227829937911942267722629047797214064848407561066865885735302246001271239356712402502161067486744531633721288947298960928927032151398133803490194864173949416040408761735002594815277800982146393311412879370106827634664084506188909894979848517434038255488485768330454808694246774165381203765584035366244108641137211828114782208789749938923028965227209796255669421172633811891214437549519458884373125678997178340241312257067858410887099188083381505856264923944416035985745000923470718024773450529852870248141933538860449028722734151216909720463872205359578253956151668965534916312650296607775921225080365614968506877249488971693827316039990380641799226753561766820216270192338216128401429581438542034871449867940757921131602548776567628810803080405607157227158263220679994137770758346197338404865655631053979328535651205322282692399422293820554893706006560150523220968876473649038054668103690128596376964390086568809525568062010365352994612798578224213993644918861648998802229311205107786770284457160205093968290547094586491478763461163528387412309915174797180423807799512921322142731362808563855215695136996602936884936209601276845528170359279871912126558964317976153066987243190637874457353321797952017006146162082389888204640620971133025215614946781928626952500772205896009569575022958358901541485815972838579287894546901551757009938216981167118920478545244598482256271596748246795311559740494525113557442392354622630084046650414365062518483616004070655957388391333537310402095989552606136447016293937159712683695476467487945118412683547367937726405186553751858245405500000845593238706313814046177876820529291595934133609003853652981402221168047150480664131201551011031058813872480905750701142242872692240847076932807133786744964245719344220269745711873050329903168506362765503229499915446992975161899171387419196823656738411254660222568459454689085528782059735117950888132287272388790451297496280672150703876564444778905447165183660120401614479091122772028982497401525881306120765411512235919966064060740611129917532429517665043390651261781652788731843833192393982075274996056199215960357885182444889424917459936295981123675182647051659052274849230808738898449150692091051435860154115840327372809526146195373085019481593639703351611852945357329314807568134533577052590175148109133041357387164200380584978464322080524406106210266158210599519458823405371786018354140063200757130827305383243318761713714162275508494582835538174160999205252048042519462044433346369724304822924708363361718013454277739572423585558296449586895168348980530199950510432905181827661393611549387407604441169769064967703521081271253652794470139765131731982981016978889125863779962749876921326584563956494229986430151743993751473492445278953954607965374280948237995714404018911211610961182206132922669598842949149325219831260246205733274083167665834934990106717067224269710947419477792212226295886780410870530808946501350016944506127182288580068385981118054342091530400908795056592980917428292795782901128602987873465236830675750478588819988593949783407783125252753830329733141534029795675738847506950356558822237133044714581118661853184148684028369421651636449279415764842975194398829230046055819959977988984365929202159214837933112802773999583793789922822401567968222724005407576341684725164726860163747348354040349303513378465924688427475300472238540561680765103584692109355606053295213717563090674154063103260113106471660124900230373941058873982565076748595442987874516476507919850660942410076593217677684693258048231967438289560170956450178290878275524456866898903189312876336656744073862965210100000291176326539187334844370730894965522476967910329262669897744164177619503591974766204027604299418642914980635305059500371648454147698153672547879085362123714633619550600268497320329437359007521216474589794372303883945429265002489275190903451391528731326851995655333586480168945428025907935363313053968432571884550190745795463044497763997746308893080754065484914237091583860520014155642578000122622627494273881317269432990242661353944674040508468817909134139191096046592209574470179547467554859661789318952660341864021212361200789893901511728248466438117275760920463433956349556067956461207818188633951073650037036862690025782839030467966731953220775759950592523015420275436709465972749017767127098004917826704708746608367007513406634934882126739283449663289513308932702650501567046499524117073399662254610254536734192929701914863709694818659393912918274624937667327234662712925939173714804137897211801227250874358192564265768976607700877177898478967916492653294183466225958937844708957799407249941785399526782528313162652928726552041196851672803777473418940927926363005389089582103457049448880195043809786012709011770980778927689762067591900099242366563383084412479153318364894716704624014570825323894783618698038976654459937441982148042326840528897989048357574455801814510303879507284808473751288123651482415722317354908947533994227548962948528151520831922078181206064495958234070092379193710780966565425626086118601683427620430913685649147615124870896046983626211947134378139797061494621854351936620499868640143410204075029739168375634053419250229334571862152875130648014573025450292685572348651656499407068263467186585953601878598730642858848295496869973899525980867808518293065868882817622600035640382065591382836180651332553402614024532341798982308844769801025090481701050624233122777010743682120581048283973860033403438224926335370647545071228879751872174115624701244370727603990824435219633677910044815822379544825711927757236995461527972005914338337284728831747922097942090607187539716771587191732715300355298639519110437209299936394848463671462993817772831481001387075647213536351799453321065659889634275365851237707914065814834551209900378348411455765860077338860056143648650064703906867073389830851722214480021300954561353860087298167672927532284905488028922686420965017563021083461483604162350631188537354992266499383706936666475969273589091069678910366991970596215655836448274669126986673656131501263349769425235293817058261015229731056365064984905273873435511326749459717636990694404326107868697840263813554731884280399595081961755999942978130403768008856430278455027829069336381728458549032484972983347670020313362168129205479247363170403496048902657756321706551740116015160931550223838543643973783304669327428621150556664143568001351686273448664758546041331710042495044991858469490540306921923056056675146447671185323051194964180965402250850153934306201130595099261958279170469901976194554644326208723872171349460866642586051419982438755587196225589346210017228574264304296957202233624289796741808099215706032579785232846032516640265157686070644752686996172926755915747797545896105700635269888549497904285544615623798272734064980435290687000093219608149638878200379355170249760918242943014799328348681866033920619584682410755982265185051728650010617009278812899787439743962554409723207904539803965995416562997621646018593640357158112857814457992303840927836409336804291616926584389589071672191774583706026482801776041276703015031195110535523602371171180804099486026964161088922012769734305466348619655411135283822524568861519214312746293195593067372992570184790581704279212547438904485786721587023432924017285758571664863671014461035219982782617514990618991700051634340511011843056215696631424691061433515264121608312567646557244956854932767657542375944102064893286919545815057006728226855744079262626096634076471603833876031986092293823237014904662904242299467269257591237952511037783546022825826011809079735835479797315559391064173260023247148010118243854393130226623765580697888134066190217710894633512632321189484236940403101531753748368727035247083405795923574538788669881752669564467063380803967523900948812805138314492552740950441733760371481690973794066801248374718870196717091440370983083785693751618821935869420709857904729321391124766271851643582290612001579379232865172724755036239715386931388503554080598655164702000357811422300072728493320241543544030595727861811757125186533152148968531997869002967767933714838859364303606196162463229127081009742175254255561275140847366085740586539849388248204065237479690611585323027904972120212414582735505093469376951929968074993525771203025591015355011731513167295438740627093799293851564162606619382309749932004317112326419819650214821338964410302253267122262930001190078270711552093186507383079244426659117778650343613498566679291542279310836822151471265782087145776764881809327109665331342316771066294483885169294419526514375480415160960339013139292185421626152229167068178048374181239540564967569201759899629822045140487462130096823742890934800713662719697253077584474472173736116864648854108281713040197105987302051556153088154897318240764197702458878718634868458813431698809006160685911195817684652636731732950865511969745098271866799862741706175149692189165297141828206401539621772574723425411000349582661573043676473002336723589285328119829726052367439454328339023566964164865590435225504251992141584601200058487622587997480917167980415267187936580292253566759570652670177355173809938040966827290698509899158492351999985014723600564588852966633936253788905031936556170511904584892952270525541539852055508597904314427244569960128292167588783868245147268274561234292731815703359945728459794230449875759537591856843065241119990990777782769721499775425003184376696379569074737879623435510958397699767128706676465065735894491095127273399268526902614247854629463606967690442690770181232626822635355775878409706276586226588721068733360597728444579111983501580002661992202809471766640638368063985928701557404715569347518514144718051924373714084486067358406560013329588050247478275733115358537311640288379887300064380989512404155669910546065204451836319613333518610565239971632806105486344529994489290635453004898382586731440489420814808785006265502234551255561748907568353030079382427606452144823797687640431080585807142209549736636062240184432946950959701052084654458944885347670640422758544749659083069994134602803027613912648674304899228059581514248310654349887106103191870175606050062924014103869162096111251117892252872005063889189442659354862627764033154761729017972194836121903051130629527087688377627955409448373737720585380417126305023909360816744261491417959119563606514928716682186570923419250364187779266805230220630305807811463125414339873378825572099510726667085829026584904660818446969070531637467077057662514087990227355277894169608227566358807622933586367676510698550869278286085033494323065631114421685132425508255490152610190980827588670996008587121506469328091419535794754549342707419093217006150542788439208979412709011053502086095268268867052731602267649184761012972118126807061619376869046117135097223044664373736484942365001452226969364931997994974680285327193248583464721728919836696641692914631248897776797098607398582854621071757369742466924205959792824097929478263024403019256657494997655523564967188751123482067967389706416370030951900881112685064539399099328128523886595906772450752216943126632229109794615505354869361990660019906288135373680695260761759462837440494040143402333786309474346747653699113316309948509036553970186663961380004030855043875753929495567438288017762103643041959277936475385344859887404645293959561408206288722522920916127068309815231554937693213776847258351126542068303875971490846512133583951449914424609790265974528665704863937809624438565798938534070643444801203410303823392758191853062088325076644322299142834319115118999644007077761682549701211601739485944832922641314303818102732950196303694727767668950800070952945563769546941229136416551733500542682203728932479070769599113881630431225139127966149740642898484469146334677016946994358705569203308955616729578707497090973310411199578751182193866646492432191552081922185585671412657719621935781182332331918616535435951554360562144221839564004956690832520592905760990819050464985993502693165763519977909096696831287775381176252620431978859534907625603476932737872478035135505857235007345617131365568087869965539864380131203335690323550161264529334846850649852400132681810578075452603135371210909832872964416821710979710000323320226374697734840746594321439414999593420713474454609830850329952061883557109407647732594018560196113798241748407747614250628524778673315537665264206002708394801708193587267585615468545949707523833826359414389673481081905951420726582933127280962235962024917998989162900182440189246878926210064999665062577710944637062577996851738027046665282865323971668640786915627652569766070020276679772862348129655964509401276468992684316090675791015179124064435823201816042121279495362111601246083691795579070993424935446373733209520649913124631446470100988828362097258357417383432427461730694367098199106445757058515405570537013387779009800424051785524835974893170738185501558498326875983180224989188028657265095022425825140536742913244378357018297413607900349979806163840823814744266075227843903825526054811348279609125476413916944130763606764210813482840297941433189349581877135380273985160172341743664015574766203915313440999147035965085892968421507544930674458537077924764396275911644396975159640380834629908594171424258463160877233766617558576590729857083989444584332580940866019198370412343427943269178515989624640529665374550031440819671494860779597951705512784318857486227643264151430245574525517841798046336491353582021842977550234398750887622253251541746087752427250394502953354771232388691793902758597627321892664249706259479604362454410174794684279099779421123136005730452170382495083225469989403022847274911017604621146840382293777410266576003395724870888474061269658846311389495975635656270568461327509610808512119163876996477551177120695189651830304729660872154615619107293913426816016221560726056035747643195401211102717817064202732247166618570533527799573143808066095081528484430708011089998497841743857077631956231477986380502964312921374776722773419504724603300314071039093876088390025675223178335790045678241612374336835608844204368646572977728646157943298937030017178800349529871235290562897605940393256840367992549725422463271963367712850422841463925278516989231248373695743761190412024742820942816776823107538778452285364530994672593255490735665336492382043244705419833830482042997718946959388199503264559123806896649360483837991167059859953343055200865766035822044528239857182909245086400020271978783850593437684547198712086460042937226814991955315960083653626449487716243865440371533569012395455830156318762092744234651092374356271716385278655833080914181156884964003100233409352280779602153482613977745554267610202055960046987949891153337029849545113533653426156001301032193634613183775423773335919269952964997907234128339829930772936302801560042984799629590574194130368875054006348915510821038693617471934318520658300081300545460875533068524351188949962973341571463945245506138278077952514757752249830653846808297490338598899537178157785160187475167712856300763616968143852528235256211264895683630401394337488626082372176990732394830770950871920496597496603266420886536149610536890784259158884689305660283266687193891372832146487300279714215110227587489858515724541237367566358679728217267801491289352953526116310075039113575952369676022112288239085109933721049140930951297284738297719644196407345862327219431439950620175566574143115477034121590127609587975085778536499842930205394246993060923739881222140426879356486925584029070108964961710593169118005237745301283485375114089468442082424177156042441891737568366309182619008837137367558867227055216101480389013070156005934040773570626238376887547565236087328378172701182078735590024735935709457172092961688795184523635852651135940658959950397429461868262948023528442131356205718841272041591366615481336759572064324459979300804785839060305748397938848939527411738058609849468572909278314498805335003099198351258986124134489335172889474077226127417942705211888990268642656771581500833862310264308649537647386157004432903695845842197361808583927690171586281832025975864488843748763846712890810044609929704289123132843159629014384842368871253577421720332682452499603298203528789398884179588148967346175489223555543138476570081855825713052901026206114751111899286224472357192719046701814615222452474333365338662956532903680211155117672762223315411824048034924914859594720597774664441619307623931658260323995384402101073662259390205086165427664370710692989138653837160766214970575901710217986388750492200828483572160229987911820419192554198781361044203697697260368054476998437901312498032847242384094780951626184225576285837289273368406453905973814437379624033191361808230562047203834922127569153790482367019340574515182448579720788261364489370530032003134771836945551297180318593982538339004035030673001767145927284143803790893230223407176960130016017093125066075146302184056257864166934382603546780667068263303120297732830953000585970579517207552243764013398958528549120107712758408623542014915766204679886797488567053762383676504328730054860034939868198583060294808555375158599567182489137180540035920144427648348765096732323802414356567551817298582714186684407604594228560354623703492738729397700030645359641136391629824803524497137646567607352850801090189238063951647272930444757735364746572152964558654151442030716070494453979140964582301902249463598641270741587517659499721833179255253167959749789161191869501743101514278380468717287305959789739663292657811644288023901531107805514811592948837162272449694201411495518822415050088363159723770895747186551260903799401844582265032798390033960241913387034041057930593142675282164604833815838196772181533247519967711778360224357859628317540640080706386172655620058913112572864078266806417406949524724880441630591358133343387925122572344518797681489925682232950798004970770447680200786156816894005682162647875886570132636007978379394881132297034346737863201118881678478607903714207034451499061467452876835946992608639504812106996432287664336889620621271676436870051659212451065842461709176400301202970205824903531588437796587575586847986453939631208192622871731184088432367093575565217108517760743726225463518797181622349049792963496690262890540391635152973246747983822218008619434554664302750757760540581511882514004301431873238742024305236344433546552246593241980944750418926698979158514003648913732493704586998302098639350981057681844666670135763280714061359802901872868186794489560377569981377708227751570670265683095930920865375399013664436636483947467351474679607162031728291129338214701741108404224279057940623293855501707962778244319086369657111888026888083037757029650864748247621971393335146307084335776997978251804474674365026849975341980388869855001476284365181523967772429775795617964881527218139918442301043981805912289759324958488169095442076055621167853049889674784305118814905937574460340971375835204329046688424576442559464294375740327564010840048359814419716710354599818808948867859179817281980046168353808621402462011832227652906707057787589837094014707817893407274841842192549148966308957485710904576520908359066290327467156732360856876189410671546305626276624943521959601442223888709296059918671991098920525822927226069678933261790858515331986947305274854873902647639960891852541345361821175652894867671849627347021562974070052893461227499591538530441207137835847430411480853027345144661888121518260765343939198610903989414074696091233828336613208843481171062047913645752148122069406499773068248245570067729942487499158419623553100311547160211018990026243031368038728937195348897495612703246180613205920568909591956462819606653556897201434252345824469099966152500258059272811402594937597505578845708547195659001202655265761477376701955558576362578669192723557409470513572065842441317588258406270648746897173975469383466267509109849528886591175342129596936126475694334262620905202289636013087856881038287412056546089804063805566774309284410674216082988861697433280256265845640076071811830203816443318869889257206100117458550347100800912329457965835741245433652171907028319148269234002715542892626352109904625716083583737039271956774530715789872894519994931864158133518416817989603774942474038433465218271503040594611739871509924327649749476133860154639478775557158552363688683027584814361950045580642721546556375080262646092609385988604070912554687706592969150187985998915654294325176792388643852730573089924986814388234024362630421845820603534698487443984736382879004046448625283967550870693026805128684254274865211490642140665387812925918775787976655176907342312924362888950732316089858515162651193591113366506319869228328147232094994179716945229483575412197943900640585268128605001250751697994578926272104015888647117814900594630135620842493350058030468505470535966627981526274180416093561685604223646074607499098086020413321177794237032621094262566851637703293123475203800511550759796943259136885087765090872100261575596870736225621971929231881981730011085606350442879305676195914531318087631061554465966194038372388958539904898981590919921044197597003792057758140717513631256927777949756343263076200381271692370411576692706334929938224868333694979326675839136149298246012963289113874103839616294536496105311061007822027290387538623431442721193709097269287592725812586917647081838922583995651459539781008060586733805281617380511152007524074672281473754123119980559190852011482187450330563255280598785372296823602589736918248939272182252312785867991974492870336971814177089573196533649586072877294171539595387669141232035804197565734416114225982075477045821957546097154762534761552774125350489008956154271167675378169282266920127755133697465823472959887639598973413047259818187293811405199670124435851761706642925639339359733077426166487164412211235450850267695977372449585022357916423079081114730945681286064141072133527356767602543669280769690061598293773598866692293610674993796821556630422909730036688485620435974505166415102719343288186473137829603140718216643598177303748447113429299502875104647608890345693593222931877004242306977499155944398386830326096406271355225455800690411905869661676685797224215388465803953341262740453188143626820570896824795129061726128002666936637478516636450418883055061065697237727920436428915109029445031826382705267336148170404754038206193919509923593785135986578914995019001503776150725536785954192851815387476578467413054777853850559697197050032977099943062589669362797783447136531387024275775048581275284050645050285040532710347176782103140478132408034876065393974868564946717159268169942213482154823067538392252502103866026103901101254709475941226818191629854862833950420634554531576737318028442278323487204158655965249788702955965342117342800736896004949134162804750818907007658694643947995751721282991912038448935604374324114028366981336796933985337247324673969776084624486952332041952580860994006343433327428316091520647575051322076517405076659723921458405607330570195202221439379084663466662422809724635584439368282260350159633747244591569831317733494030144213345464074977440013697280718267131331808924272728624484833363315392356161459292086376752184933940050867749826287393700534320234179034419235655880412636012576801766681495653183243251893502801439493696658798151256548078631938514550843858140389993694580409739472075426289186401420452524836974372623018615540584512560374907255068210637334771655195835254329177871730770033009175256647922603650543817607754571121479870273566606767927201899310092423283623333756471099241565659566530562406351342155634418725046174797173017787847049610041586731528232795714906486556049590071678439205069188100813724699127080275864163693967663546261571080879219311091438044504900519188786903062888571112584523381164376025920867000074899607784792012331022759561445166655400785611107358864937974628758996170507903612100447553055475980734456504691938446627475586640647157621231906514969178080949734725525345675483826670258345817280981097138392843697225538368815653834983610103042877894498731540055205384686199644652011414306080099240301669674193035316387189963689976123676379114454947595156291455534362278369834750677581543902992332405742059533013582674372599967868250659243770218198387165487097188585744052267512321798135047216635028585367508517284615796945982992765717402780219208430781735707028999578375117648685246338155553985953827262463122591572837863465507485312763566591623332069504664095647895998975852120344746784279559883210760117462040955679078305494578401471344057034613724804016801091538745992809624007898083393130567639093112257673153459729022167404985093735313449558865767035286539895298338611180858652395098236174241311464826214294254130029675358870797790630621102159409818845466557106113592360407630620196317499290446187576164914444646086700525986543448742991289735264933242483026412640792787122054925110985077786773339767923486493356105076057355736234730856659714908661802126737225340708880597096492151566970891002565893741502750798844652259403723649629219339444128731049262412087500486171566504276197197199006917045690729654932919122165141276297323997563105770570681136923890843629648403853642637147619124504806567091438831827544902837772090161282109194931819515769802122522515637410209924881973113400147001844147458952390594032729411246342225182691584185685401547535965430575379382061293741992058208364516024163637179216578870311766955182986058940437218616151349675774967068565726060864149677207290497053307234702834687585352088319996280342370502115686144376112562963893078081458607655643676451720300357386256792196718176907386985099697775799759561594914036623424261363748925992115454480117342303982825799720845324971520157476667254360395453068024824305896662597916369243107436500058239282520320952416718018250391334141034152821872251293504049248409608939462675205170024446144212714852565090205818420750720869534467836442436014794833738453364540251072207976454025525319470986150273274714887651843332396465158875191678083832424834684472958507735775508394549154193317011276155772911638920460793730512214499069924001653458793932609497570266064434066337974408197575747010698943487222131359416356950771186863788492609896083561972106311140139527144147579406701441636351420053420492816670990285953582782906754768467644124167042061135536933243292279536561810705482094995366985497300230501233018520107420594248990876836317994168676417630685647870620605258464859600008451055673611740572819595550291103520448656505890904027998624464772601781966574669307093553088811993097211859942251616062656774161264061906682427727231567127791337075567961053031282052714458173793234386432264655646468021145994951795546692311751510282300704799490719428556498341641916759608045876071129388032033678638310913023717385773134254662599726343306131167235236366006732460090920391292634489700137723371877146426337197303592611852347551397281212562595540071566730139603651599507078378029980475003653261823703476018783192725092403440000202691710363137159696533488315583843234093273575520359299822550795615560966375298397869158203584094026071790175695925061751947459711696203454269165827708190877630773651398882052313842216476892634900431911615343180324824409482873828431858193014967723757185068021295881894716473779934471100333554100520754058836957231924974508534188023923434444027922545848062378877366362728617264967263994185245826991635656637360932637578359026360524791637501073115933207631095918519494208817731575241927528999286886732622570348513404132700957412639218956792932662998383312446015164495433747275105826627279200584836811804064661991690274250191712526861184573498796066923687336816241345188135950016085648711763371934383054905746795802404346310408396669979981793003260374276964793155081494049220680926238755547978114954034056242968864136200602170562075276778403776224649926470765162214393914069991007796734569754427448464303640638293216833932060696330081546866916615775697212053744013328819716709224470020625607341088250811275772250678570114104377350533164029321027146655268719985349685842185826047844721040870541001530172233358955897361399082000280247125938516895737446306626036659933292333796512968308041063981015511407614527994481281789363930013186611529132942798498705465700871424982268263536189958986919611357456934333845591891333528010400027098171195317499157599856396753131912097092733636192302976788997030680707154295626950325413486151184058924800891713029918820167891005619234530592219065182549242104684584746309518505003742970531451347888651568601749743681547951905085984144374265980780364517657956470076242944598701868302586425680068197865348585224392024004824734777136645790207299202405332098705204651901997751941710284407430883354802373323136295687264866505811057125589371711939366710758026449794134384345237923363431006459544257339520792048083337090047154677967276478841808154182609916036860564205917587611844323911119621180657365728362532267516078114094369800822451500918279955419044260764870150618731986789702575699586284554272662017778508109421446951271257870452071721568897137737109255862020614434671610394574978628592679702637367265482185268710941726237805707825893768068042746149884496099331837514013828664869064944518303646842289910115223413106254041063992485848286036970558993822061000082139755259358204523010131551874258136399904212300960925627318893608020954415396863341046756563190909338014013117399912807398568962582849089969863099096413168906756448248379987159942697129906438174667336041997915533847498664688268990079373472596982903160451253844064494990172501301219809188508053261178246414761146076671279179153774624598612370037668075382370893291260630675182223270311987585985820526984349541552414630237347334891444795597046507478909943799120616237226678325555389593164098601147621733088995882787513243663112005925433554312920279649438773061437393169076746856299475643373570990007662329040424000296937723971871147982256435152524637841310535036653265965165630108121319191981911402114804405117142284628177872525591249942194859958284988477503291872412852358294113599505713927533626588520801293489255678620840799242550496600904006069683484597855417132832556457409082457400291140844517444090915947655371699065772102815081967448863330356252124201038594237257113961705030931444025234053617630372789103219994950064041282246429366674686223938018536740252328973738045012716144538599210654670220275667302576039887874546503344189870060711574134244213341619876499725207738596296599450037502958113253120662958284932812456717764092876641495402453564714107341573694103085965640312436532356636999631916652160183835059567604315559581261451477134360836632646340331612035095340550634451340971737260588804781915487528761621423847419086460864156287247133643289236020486870520480136246714007538075060462888965739642023375491147223633227041340238286867327490384642938678966674829339029577328454730855660080947583674256845751355602648587701984051127914648379072623342581981438251001308619379769915434221664103374474155550019502257823165726528349380724468087147676176471863660365843829474251764233254630238888871939049005725762276137760843735830973902731209784262682902223393460772839741810069659132559291858013398286551027978573133847904642971454935856839808612205495443797568114342355613486228352841380190681809929027378042895477243202565101805843447998050911109519168236340975922972729010052268708522072947596878851622610929023274422067278070934197592681474836485448084178479097680050270295029760016907702036290307993244291349539401655225930030797562060507460114524849830692905009929239183422773690939848462227351753443789850691693289982213218494554305721194526167670237468088718703759271941075804331889483322639821689689977496038327883938596448673740142226411558736493242752004114560886120777888907164654816291676183196760221563437254260787300761724668207912966220851065149031243468425583820373642378347300234175983782807744768606245312050873807677322280711649697026320880003015802065077942049776746852558257165036050980284448540982879654282013726539647581329796367457473493932693252389913546086128270480599174150906838565519537671402884101701730493963725090389954399461860523249143683182072966413135036511592590736530676764319457962863566791643455496435776342473101650578050429883852106583287366223761380908975043517819793953373410570687083499621488267983105308284859311605813657522222852516006109726671560666431951147709188160949108425191292285367672078830297101595912939754690755962195033901432568340757337025941319145443973674909056766700896832827892681108981194629996272238088291999203760996422874363732475681402277703040049349631422212200414319797529593831785387310635168712374195384706699231495292097788291680887236684363668104937825136816255734966508385973219986677480381648707910968261681267086991846951522031292776108826467140711603926097124484960289560059555387076959483315385640763228891730500447068547491066608973432564259058278769460655166587900079457509382670994808918939419957096316746153938306619233438935400424212463849081007893951284768170421392579045430823105588073962472610923859235466710398660687309591248339120669608495657557363319324569812660379018000765297681482099613049158441664275850883617032545644172549181751410639791757693256176987948980018561052247424721854883056941296062021004367986720820981722699037929713378050562285948677439866718479231055295320073205857340441303803178913738637491064429402254504655930743529074603841304090908967630542875172067960725619907673645125471998404695594771198809840142601947383071122482828747103130052219948960152083309241469709473263263932510891822580808090675299061835881251199562130768730862939272902121457256065654449121271285486790733282444541592171591254678667422867809857151915964416211856410869454660131520842473750469539577506502879153231311803226554299956584729978817387532013203315678242902765655359151031710164239397623095946637409486327165348003602382167986923916861570729296607203282210363922298577953843821157615500298417747253943098544952969107529227228397572604685859651831547584791152753748382075191440315085658437572957145041879835011201310022515228916211241695202540398875022813603692359906440919966885206396656312076537891177089387575849746190255633672355323051513424928301045880617810129309830040053075343452860543148883916711121150663678481320268827591122045000627984573894507943335074827848151899477415325188469682157742870663589431511237790182609656845628966308724629969935737496717547451308492358821380292481983019720720577409850764727630920050324008021908031082290419459397455306308720698693174972686036806423984131986761024828618387095042766240045521720436272765580828629325144701054672739471012256046452786874163431796112749710750229735152123271284437731601228616990315858400026385839848182856843792341003493480239596234041330418915927854848865900641668431653174662106379966398128332097725819241417132799722183789111408663498994424009292366183373679654921513775792024776185854597234385797530406193962387937607447231903646669486564252472841887042810562412728579932582607374672097987274185169502328344075009503662330161683870601647238992083865776557698161468743704943077149882973765995858144630481231998656531129079392225279670888210727054351944761599791646122869950973831343686488133367185780265547382130210644976054626598735986856042065572766941781020105344488950277992266230715577313864634251345049784370351045447512693292418158292052794572423481658415043030035980515739620709193111679535602546279810455274106801736888655697815294610934256712566865334564319874565748866677164888581942566306298240137816765725714400359038018203301694751177413393808083061179863938617692985297442524828537713639008168795021454745403453783770108712061671266256873563904843318833871667106359186173704413245964207435891374210326029513504317112079047110719135538074977215734954101270236045321966961678442590287068971312909473731358061192741418250848400375735776253934769357903069791187772787164802194019386443672868980186900091223382197687444523682760465114711506643271675343026511533261668129000114502921174567909613270430881642195773194447322825538538838332251351302486991535239398566283722684910912201189882650011138087849385078869488941150859926140013902278935967975029775225924933408817461265452861260531619773861427211085622516857596004792427995753421991378171271336530314667655274785374039638579245571871552821347984769454030598784084968083875428664863919044903012023415094762942834007270960460364703651496954138802430298773305753055243364753993317024509923263108272843648206765823085921259784680865876080118544508633235375936172496483948612933410368306014581115762230773847580791306585036096379050203200284776934605806198337528655546882791612048777401131824380480249666364096589163106347903140285514106547166809721289479301807508844288951748637941255574858191873664799772809312260646890897452971920419394384249288668488752090063308297858230169437806568851711863255298574192332159712582807060321959430409558130968412651320644818102665112547817422173640074233049740208698875723407759052326617984482297373439505421464729517210404407977482044055541536159708155539903884163945506427243049934365412034353378086687420183620448603791808284192919100970275288651639649180688117957365412119998950617632562521600559363356592278847256284723379471219769627902941546773257639638504872002176615723712280176759639504611199919585680536228467211461829240272161906148398107244305516678473272078938385357374690614001457299616190512736579058946914930070490045710189142898978320237202653979306416219236501706087456806781076412942899770992393320409921989009382531370342789260978837905517116538625341727790028084211531929780975153083988822159365375214636055125551189987180838659806057595390313634280715860301249219080966029251363915022882473125420609490678743179918745800525556400719401850802787780275446943546857478023778468955541699992457838101265164677786529278688908587276459605179613507075383367746844113891429097734205962710470670413702813720738556528906488900947106966192441547187137458649142001637468013105639056128497982317325786194594616404867998571058777331885759011889823453857415096477721960411517959987079696083385043444451470384713350237237182194260454829611232264159112622785615170216907627242062620647120041586765440672877675985642749827427425857924811875538756143790051795070462477580064332939234617576334479464855503746639721469980842616926003978038440418568258081594721993416581150683203165675322941909438887837413673529376569916329509653707721815789580369335451422696155335100523603309851097480525157692881378384283714257493775457394968012353211149588074594212735027810629489835247761538478593986615761868333255832672076592881481269033726788432286892275851017439669642808619421716349411147452604034953529240870691511043349599297378286806990483740957535567899651474133994445771215522283046193019428344390170223334725531834420537073300798740430565883188928367616041654968350703152232801722775392759632617616043620536935483146249884175713619959374145747304295403569745591762840920723177757542285185832928373633362909362088064894401041144767112883634681273500552844203214221777362395726800636672607060966682155523460663792815393767544520604403176077285785569340888672962052718851950673859713534873903822161508070590361840378226044926892436341508859922128718086686253241448449561094041364608390087065035523205435465168525692429489647892598740968924207150561505835638409044166497858611957692755591648933992023431730785108739919412197911606429215905015148661172957841427383904108552163905073861048390376441579662158729771845283719443676168863807155053907790223200394331849451366333344675889274157642839331349520604521040728032307432695758906796916167889105487921210612887207082907420497000061865416103078567178970321507207913845135585353198507969410499699063416222034958988498931575711010999821359815665772554849168623829046609708538015404641413798785698840755109717018345250375790506453993874023196866020937764154109010499249313284440991595202582939548841077346779860622099385099634526607439526516559876430970583252325766992295642880820928135287349730497101177075389230133926075734281575570556683409112953352370027391459102623912288975526217276425566188326659759703413476639240908108240325725359715859309575188687934060290926712348917076009581240238705383470744553122463107877155072984290796290640026504528607577813937458780962039673632756007463865835380555614663855252365513232704081864161332543092225877137494882958080806450768872980462918577869650279426421003681856148601592778814184717468961644363977673651258456415361198521826537365298232778296540749541613707971545159925584997079772783573659276432971103699428196628712198242292156372337031672134677988469947955451240077286496102593284000934547890212345734297893909273701836326973223967089003870811922536614544022743891089322464666442914021169575267696271924386612384761717296997682114452144544018107476144820032337181485275244061445610972232130615371787480514409530878557543070591035918143612469725692486622575191140679970232656720047419920882048569941214514147494616351488472816431577190389230636451971234932393741677599091221527543233080804595230824412756854579504326464198275397476865368958150249057101907353402233050258430514365763808187585864115759010749453677861642212422426712065097791308421486146942044702913282425986261909993922705208076559243298560643584157546137356956427863880487648205194878337721158431794455678541525841722464803920642051910818175919659849002395695446944146666377842377573480023374020462491613229093193650076311969976079256906828605919457164311596691887136608588168489267518779739825186317162078116783501353450310861963921879561084668526063719118714190481362241826775095272659938923381817270960856757385846485211301399480584243818492017182730720172294215291428917423509059764232767595170417963190668293287660031365734027982251251029507047468470684813283806361378161783754159656902729708741037029057291570642988854389372659879289718895057700756493279461153902044960228508510481404870736215426243562446262601181385843796059090185605342644315841403355568167231257173450547592328598191986957314141565715090472322686404900300122377531226374359613912480341350207736672452638817502965388058175889272719734309498137689870587070180878332362168618303667665926518038706844627881372898385991416560552838299680030317586991690461011955273680720657602330040459921692291073683505264134374752449805836155075561290730586550573796583119742634810707439056271517852418294601981085378137242706911725105931550591152500699324015772798683139393516898015056169614511608715749412581802635982411305253898407827936033420249661913484728641805922848043611361758836490121467421098186210127175215887779020832532709729813855920500233656599772815482079210445593196562500814049687854341768309765842311587150195006493498507362230514592985532005327737652545490322562163175627002259072497800010781754753062848675302241772375541622003394324027029234507924580596697216967251413239148352032644656996166052945855930582777298642580834243321414578898238851880881273683395430887158447536789236107691578511610878724427057349567689265963466157667048968555846131276157952915245946625650256618751104864386446273972177723478086218710664885745932459830120483216982774082707810590373705105017269024435422563136556441562427263850416923606230847948581945887548930052412687361562192109428106219368032882852840838331565281725849618997813397461262472018050385913662054620434840725917857009313323453032010390048502764224395057801095776069080404738680123925224069300262323097478464660889372067512886426013689030801828950571383228019464048098889595635322336742777280692897399054901628241912518531546105306486947988006683011425585377350123963311311864139174700105914043760399920954377404190657493976967477598328023280344204815253654052605157045991706537140281976348044782983535500393299183111036960107160559053699306677793615599494629153275562767954624131788518529239924602363965653381712610440595616392208872536055228004579400909572929715360823589272191596454827727869562393992940381580992748964739320772036164488690436541978607850956921386323277704367196192410752707383841074199110261126528502417067276699200228488693226391710987550247347567107199041254735440876632738567483169554562691654362706229976965849825914038401629625988828208419694015663499456925806092943756693051834338845098072005513042320841207398466635495321292044514495459028699951484203795768850103730826997010032078646376585125726075367916112185638023623998554416758673256503259443229133292040817818314362690479854076741593894357499603444287449798961125035863476981739085411958228469461741892538669492388771878464869623143221045277938875389445479145015838265685833233701100513141168583588360090396174873172091243673919606945655869528930235294537438715063151973969697362071168095581220528378964504906482123531116284346680897620404083062638632853576172781336984176938097722390136220524301713837080425568731818256859809193645547970630560623159089529799633878341216081999001209714147497420780234473898733058073935798101225635765832613311745130226257875934062457366081619159086243093253939517020338828612064255913730415531453014525874230844120509823861950400693818316655024775468409496054177138461989639794318918854547381685967714383189782567428186216859074610952309019098760253206582690988100479083064521672661528376798010906092114658903911004936223886750149308107469526351553484226140788957440340653180970099557241989344783831158937738251103676814469274641350966352838075402511624788057891459392131597418872682899730605891511388030464052492316761581034901186706285691710619179965413575097944471623450798734275734788366516029157867314966960042065085015743124649940911008743813747511907206282492635022608537227148271214791634392218874666996350063912560241273156081144819704345095443393270596192040717190197313528256938744888052595302464358387147183788120710125214128490445969523914649402401882528399697718988562200746971236140629780311752059649348951556593498455853297673359399612607853231027705812386198022787730483919130248004793331108135891363299313634324439698515833072534939051884414512028444786872601166521937877866165990878425377421988509620165360997986313747507881996785920424464962819957040295308910163637006092791174904859341907877174500668751479024412587979489358793070419465141100817214411073352711089316062710433464708871892495217462738628537915609723871864444582488787801610677811545073204220102265432028962282765089050083084430122491202513688597508159189705800620049376283335943482062589611096453282640970059582845543334151448917585561888846200336310233232707346081502741299381645742761945193957794990537248379383226744487418380531759923763134818963442502435709110478529986712690177331435679212216533184338668835271498179503622131620811808623110967040266949929516400691783330890484060866351749846132918627928211308274168645697691427565977741137956813846458259976627787293465850725688089720997494641170016870838826512974004679697549369828213765513624393967147133518603188235971724461323586227351441604853273772600097503955856261585192648696779045184685865703875219514147787409872691391375712182517133667022611888837100360254643168647943971751523731897541603704042762868815645452866549970892003095238766198708055508226001132495724399040847632740584263903514912154070634266966845188088155808524997009080602126664510206325271399613136276853785526959150762368625269623429664265439304593529973266716959373870910499374626153907441822745025593161887527336558713303090914015782132890431353599073607009604719348805282980758415271538528352542146476953450108090735242518365603931819347748488829592778722876481489066721350657309020358702046249011492790145060347008392261744058595112286100135143736197704039675902624479436531178382597657301491466318154249415047881514278594030346674461298122169852861909515039267242923798591893241372720248286590120370300004905887586101199518389396946666453537445506367647386552740570251019052046712383203914341244711655448475165481923291090205432663827865050472857343140574843979643524624884909682683661112202774444371221881825341145939319997275401827807514129204825062761751732851658544167749037979374850920858967108661251147450958937403814551246878588556153525582498023691139199181966494754234332890452776436847233504401553169472901154289068181628445072358676583884881256145705684493570117635580519318140343289405840241773791939490527927270542477008663129411987435843814333552484493211214489311199989640288923329678148403891800128499120179089089025375675944300650134066205917634969510038809926102960441598476755558657143952813752952069325868570426193571327447719833400484400649415813155936784461796550446239967780625903393625839062038031697384833476611007459497561061187173331685657713623877212283207540262819828023847705528271368995046450508638044603909252552988205880587038818983654474116451802871217721999611444052983501742510275542667044332817256870904423410898298295622619894112368190765072173597002642518026322768664266469092852649263408048252142660460722328381899614419152689520798461180499860760132762760630635163922522031784826842576409227497260309419111887162837132223291949914756241543929905085067228073027744312631011270406922451857976130852384902715934950437433476417236867010397631799738095605593183449374741923837581469801086554127958533633623462466404028433194816211986349315559014096999081633650157683895212498469247852499693446733673374935440615538250006463804573209003225650557340745085511470108698322043925650953627819215348979247870784774303032775145410652663990414805854969368278850922897098175028014597726975982666448203242145415097935101334585831006043569191409959553750693384858800780385703344371788657411577874185921553375796801494215662248228254503945379782146856698191798921670114892992852463845657299648434874948931748903679991150862525046247787285937992585065370281401360019263545855426769247311064760075972744342418945629563779353177145287784508500146528207121283618801888440933000269725446755939601018225348013593855686363527734545715970228372057897754597573753558519301671839139391882495700970317962464862191067992319143903969873839674092568596381964396596849888101331658363696279608883482089968660329168922573730445059443828659962212001027116573918711042182809559233342606840392175242241225954509048259612026897982281745647668551879166237313711350831446967693629630436807871533768492134044963881787745450591921278958433570755916395429049762911142164788943007465341152175878594194697043289262786204424749794889137193242888335105647604053815206658807570428234623493296792928569849557224321901585859226195871805314400583469727745344119997729859926490500300623853477119989873604267327872919577655281530053417664299464476583063823738152043056222632018301646756310501441270320986278246599456578249596395081693021195641051324026436886291857298509871640931696280233184023784550967037037991422719635230879973900256450608612832051561382333816833513976224014539610885457944536080910570062403434320779307894538789159053502642171564550746877897398317595154793002090868889508050780521571802446338322266590228274673402368596970715427998664421633393518342793560588479745889354504639811301835430951630979399607317419503946272749302021008681620350750161926469584425550205267641113471941662503519313752911097432732475594699183233594661185167444057616793027644252805348785114718808586550044355453120700899885531147115217567042135092237001976123966827387145099957721248033444446739506777415885634160969247053991593835822123514441929948027990169125423762548289580021803901242418214136505529665919543959037416055352471622762017030640195029375391254557631968575769982196582809370841819630196741733861692986425720511524353421333402822505596965518033452288615597878289959625584335607322935480859844568425540323321300242553560054544155412879379973834130110664799805628110305629846045028906879741574992141510660272598772163020286826918837273500624859339840514277386589542203041878263702946235488285677386135825235949250166669596860731368888793513828520332015299513966868710538460778808686443388890060320715897182700562825994810800843620240713697237420328790050897408731178016748228492763026017528159118252996180964079908101233273646003847153602266945885676841035246064617265231772655202762275262009105230559833084501316789723653117486366618525879879297674164438322618111969961892650889805610610447956821804436137650500635159150279368842961885605305358722018178787414132854690823481932559676806574261732413875932407462301181451144086449915968755874709682724694872039043436644334173134930708631267611999629222116366803555767073709759726211581540429852166089225986312392309494722184981835426304383853474066120941734949404201325904415950702653655815429479250413465345397836845582894237541459682234600587276738094298379655819129853618587080956620013247969907453344776870395407417557825783733903839971723441554127268292446626893517488139754294085592208497562073302833759921049511597949145501281113256855674906655459526320522052806100707582007795980182097377294919386806422148828274720467744866587920852910259779375403671187333436979653824940798206649686926490556422004972816701838282493569501271575540618908221952681821996499962007601137463190662212915182126951960401715008868001475529065135784258321722433791710968113243327555376310817868575695421489608203225136720453271968372958433148936607241136220377434011738829644705666195452985194810452591550672979335354014246401412096567439947728655631853989211757307964460921325564424154267822736091891906970544994468500069926455277973632640666022643442300446446083713813332985372879479858117240527504358136872197978339992590615454492987348059024145746383260446483314414407766073869803369304598642179997319161332566754128179450790732524509044418633018736366540248305925231979761618983044507939393704950532486102563793567611348350430935621969171408024252125589908280456614313268881113854637709177607760526917845612288211849449770191361647340248014209362285259331374950052641335498268672706347785285679275552235936387344690045109632111104313013490910889928262751529928391674100092746226803697014978954426601002399135983255221780692071333180165974708664481451717573855602063022042679420887025567559505022800528553518604621860927028855436318886531907904392958770173753052058667739293353718356600358539751370665257988576133898695554833892958794372118246164875875245237767382972385600595887823384682399027938753840826430793066611688958029788613936433293947011140030978883518174203225686712983364776709974128607492065248667915549591234131608536507457519827304820300797114885846301314076630885643893309046692377106232104726201676678925926594053304342765494082835485814260766909743046563285631067059439929263301290787098851458302396767641150971139215899642115502856039457092869779744352838265745099910992254421389312434787134755522406200865594596313856481698455118339970915695784353718593828564339804312135294255414088364614140444586284479137406429800019022471516284423979198132207552894156714474809693812604894927001447836236388539932706857108494179080557608134449979410654704150283069776410745396868895833691411429130394493158253122270886686064673059580411946234221377633373105910450909716929214502137999638729538705813841430784404375588073760085419326907357540847084001452239513958563040389598982537254128031230805652018220023147028298388613761041053907077952921714251982699919702658910169292985616375259696919005766132904567944013024122406812941845173818713824456754469604959440842377988047185124137047893460262860903256078741713282931137229500079475791976492764393195390109101618235203998413693879229223399410836768381099694127704059123043700252140867701151412467995322701043934598174773677334072551149621477555972338606488395856468044062906786120472232508801877722524118016331090392779376512619876174124325322277263600902959847861686274891095705082251986165672489342658310560369442179685972361899377561501793039771129525793125513500025994746623762885816457137491052966521409313073198265326463012261435772751166451638317667309407945326817842959420934036608591270929050954505926472183118126713819550205234942617696398302268200849436406199627376170419238194967572116055541173461717905134942652142853747886889110986766398355345960663318824547741445948256421284204559237889140284811347938257986427476803227300231242433512137793266961440120115934345980479332071174271742669775607665522715828198903843247859410131720129683637431309647268880242188312200862544089953746687715740702916298409002251420471449888050742430316346647337302331635384817867439687173339775386545305936908780179087919024660591814554190242838587380574449490899727155557265228854712099313536429376158162396228759835715661352821505730785560761311562614757507174119247449363521796919139461751147640605687506041394207880464043221107337449209913510792935245277725961824092904159525591264669021155770285933722694474948874765945959386228595104261993316355446168456699369877105882034710644923159894782071825397511594225276086115293407405147558874215262248462564038394371783912916457290785484053071385010787789167685379166890539657152287570425840070411500650872512143766867747556982944496536837745311903524556924030414142448664609500072320258379737672559756230440637790045623221072226489135262369099731177283021779517173501576872560259243629345373802556710149635494791691001851426908708620244131842135929932660619169271535160695463640350527351992016404767768611176239675847411396605640045330798924954852884742837798897751348251687562780681222545928410361059051421531614170871814856175888898056170648008593801066013911764897155665275286955477790890672431790462325254986515032022244987116936471140695739936611449681532191707175178661967501853533735773213205501945867770207819045261385583524240302454843017502661103458418568334205368269329766916287996259053854411834958004495532826943108857407592964579383923142732961552436273130883852635996359058301470597652897801779405189734562889495347687681571048849641711105799572426306674754727585599724744428879028802956488549262063276604514054355759345842805239998426123524437775000952885583334955852463950765075993785940013700631468544583010702620057789362448213054325446994953461990685086696931985607094809042631782549823137116695490094534670707528611903095404572531644380313723994378205409686717746854435281907575822986739369651685790371949428450283497321929171205873528993258747513225394342020525234668496433814696352521850757298983405272427469577339734621532673971749531254155525937706708959643292875726880117483329910802166380925955571334223497573452026695702625532043673008426732330117654824760459191137272411508637965052548468186749776382961838420816373497374690276042784518283450247906415712047813834210557892132234900047099038716434520391476927908620285357277927004333891861688828432383205295374616332809914044140699783757063807851674837245167067735299822547381462748493446759382233025898109712350246669315879665513769344822476122633579822374392919094460640113518284603917842202653971550911698652261590011301107314683303813424890289194817353944727807350253058347823743569358793593949632096692850481557964179747430651721934872440783245412680600522462577260230412544727648076847839315662997022668941985479861269437496864005380424026131559353276957415878175280973268946778765665833688637417560339536475989188124242105991824461939075027371479970601247705387569749623037831531411421809909175963595223611149234386026405032569312146382773592344957498031838278676486032922315473121110624386385835241415244728841281654424864242021935562903268505246389884870746722168248462637058415825749103383913995212921007270537521940314445866770205562993555656285349773050779004648411703366319562305292902810602623482767685146738558108520663908114026765101094894900278419347158618260560359397803910930271981340316306229457278389699014185661839163866097804098914461063589400216317667045121615157828847658636971657629892340983387334606083048271838143730965334325968791235667473741434292848190326081064386886462598340255302243168203160614194205492240439138930064543109912890928917167925287178615992351654701680981972662498055835134839561156227967043958948665002478227914372833029955928231112100762766407353426846883866055876500904330023776948941477538646282481199103407974230061594052241890328988659376267014073319844259508099108620565748766042052627580573979654759411037022155526177724516391497402289305110257239770508928955237290029834578222160021058268128869583730871301724387575951235538421145183894815635221966514704302790294551170940417607764345228172185554742944939951700506638335634652373852746053685555028297360741747133807958439595114778185093416450755847263552148741471607474765226288433134023459038368301396419046588825304739354338618753368144084377743437406641651398787543867208721661364986204074936367710299506104330519439470921899378991123261150747465172457821916945236044996602100134158951100494139181746304723208603334487404982082194215537908327054004121051157278070537268716497944778920470716548574743631675791670999444327910646719785343055719524266026093648543986010406688172658190753813819752882811658735579995118680705688145159645295839158065134940466897712117635140622067811998548569817551296340692215715491805069105865590029205260290836202693626155211284249340341858533742593624212711971181616514117126694071586753854300179063851863442243348265370954026489364887958547075794208005730978686408126478532798492688152281032785044645705601167639216683251488867680851854874647014440157364229661698171280016970274217173933953831243937387761201604415680951527305337972635802970182333543137869640890643282396197427349804465034388565223817786381308079130049979999662037847759972845987609043385456942891276944325212669496132908258107273810380524372736086527033559845003473155207398344363408855654731225203938283927937585404362845287636648659619615055369090306134400773736720531260000551268871972167663775729876675809949655708073420107724124699282264276603580579889324028042505519341099224799622944870664050388269199773233421350857159192360781796973514334536252884955385139237902818529700703027796217297807342808487033451575490718892700867791161565314646905833020514948958054127721278840084118568179636566012231769405314290586128107424531207141671002201442881189339853711129653194137710615219949603492949767759250035274681939121480749000668569672635448196393934442526010497235884337626684067153766700649824138375347472905802680011610881660280330383881286865070616933438435405999138730149167561529918784481122453510944667504007976334153414221833831723413747913555967727667179584059818039880815445807795972003036305722691204814515267010788422638823071905308724611485227062612091901823153168362335738979519051524255353276834831408505142296847695805642539235470416249286986135767265896012904257885343362346264916252258633898258599775871208537973586452679585316820584486361568511716513415847551825346165835725139605707826082773947616712103410075200429020098339166013757731329758202929534165940678121225191103357836848060966206192530595886235929770053722625464603468531982621846597867130544812119039743778769530614294941459136961271741242613769095982124940961439635816873415568552703496131782224510837128134209317089315543752855914731549249244582848273643250467480204590021772462572909608211797021463596456660811920430819656775949987314671894949987393783943615146616634664940935262667552922865633470239301680086018147132675924983231214888202816281917231169571513265460401675020296011621773521718687605688037537485333421622243521354238260912734240940937220857402166168175979377828767271508070224531350036414987710036927570036687147326841798816361762698989117791852242733291440631104401769612716525791469768819877363398718279143177899202010867140761251637480780785688347361949724077016769251718154982233226428606496271606750722837157152259090158302474687166815862071442404802483656032094838648943643835807825942779129688255206828892025907782772136415167943325738857053162211572005642130475818698850552342373572597043840754028684193152673821035210017125577961290559446655973757014399990900125765960690880560695514772285177737549405277259245331204080854222484465029627821089486189091408159513366032264560662235115537527356707030572063634668356388593335545867962703624175950096986492061114302230357117952292111980423523718043103146969057236195584562309817669272715387937568141156546923129168063006834154645885188725308926373951487001432205218894955386796693472328323473461183489895720459604023378720755998655657873132200633448260099404655007966974201907421329518195122146936960345267693341049286124193759419201159526368858807312502197295481755392981264706806974488723429206821521797958164387793419984434408825734303189820228300131806845564919286479014902085094368928388529309859876780726470732924733775893113459758953796031258914504545766848933432403821585319638505467927034496621255856774112948711540336789976846936397485106512621550266532449072753946736796753057111285875411520397874722038473727818176612455517088704218045662297418649868264134510956472666680662403525764826884591869989612292099035177387148038442772391783833073974969329272745525992684119168980330693921264311318894398223837454305987347123434325196921084214051257013464092580948668123699199376783208951328528009218204924144098607251179254650506418400362415842819274464886770678513036352235892134472934911599506524946267538761520945378529220968901008019984040785155555845197417467175580985835940730078251402751553078293137658415684838452732496539105347692257440689873570347654742353349931826066346082310645750340431021504294298334241844996656917214267424899502063793055500244006652029357969182218163830800010513618956192467607170564202123286201598805315790267579897260833408902509230750602028794056591747037348369668971030255205320479425836948470841876698311238775290455533594012602729076462011470838425907278943899995763193029811024669912429482385503878669552830487898736834246050645980170396293402506869175910702011897920191931743981390673442291795871213725891032060377685643744155554699599029668659155659982180512956380430810030630799880211068661285084672251961848458641946887603808311009715941219624300689081303911697903627426670001966154589961400458590676674345704842049088111898583485655097617737573131540298827906266745936388479951268563769509811338381387158798654789060642690772502854877058598585875575889401901978483257676072458541832750974491099863154080182977485639232396387061270817976558622778925795109055713746395036136234140389892097206039282549219093685632938505394734287314933627428400208236753186727703735883061367733211055800904838526934530399619817066938691196371128322177469375542225723121605570021255309061373952543225386606401974611230799921201015343820398928402014927927882762205773839371993677471268326332653707259637447103214992078020287473597609724069430899986780537722147722031714751652840001628502721395624312570802126014579589109330047191570625726495244993852771341331699036135384385489639428228300538280498213334591501255716071909816786960566834849174570052995951305763057898590113808303777060973977065419618787740224276139041079788145679874359780595209969694296233567185780078338268939433362938831968536500824270908045311867059734769498619017713671248780429396019628420007513999284020066145671978289121205155207974595624748345885773199339557089526355781697473946690622375430331841577839540458631624092774925643982290728127541616843391603669105726582325880021396204305876519632398011294763956721462198178509108359010856776120179263976112016460407666714266707907891213138746685448664221069320604449507506287392906011049494255915013067153136231428206458578222395502531727135121207238833515962081678748232220509176816719707326950828686513968900831508003622329883697749417702152310204633257578758211201679003180215200150884579701845933062126420278889979011541526752020536454984762983422759266792372105986953446412585076880549985370953249125115424584963273826241862787469108522445547497712099324951556907830428650820492717569700705775503705417297999326120125441488387470723142242467162227630057912419619583685256607033676521176828337673120084938388668378617824738479770985019218816250931969989129258472017487625352693923567594830134665919855242443307774537798245974834836710036778340002819780947568913931548668181725534979921564109286809528416970290207632152305100587783226934370786648739178758322092748163914244835525811367165723021296078333060324984265832105424002840682384997064317737085833083825866986851358619076020121907635824132638198050439388576019699228781068226453141448759743750286214870350063307157533629919770137267376100804117428176812411537505643579697658096197756550846920017936669971972761956150963814481108785780441779133375161292318062007253071836598452236751978434578750663617850072486100871271885537395496261936109517203797124422625034674303732081057238128683687075957088308746793312003432807764558187489420891177919606166622729583071402422926953849552894165715137379166500924604603922615320382002787740599267255775422317725139851308027989917566976564874529695517896364693984588078319238991354002540058263612572368149892553933496972076834655144233748445724152662440326397072061811244757287257517313805551582473215366175719563186041538424470896079762660337188241423061829426127034689266114833264987808936422988693011200256004897903080076981132656463784738038997089643525124947267247725883355948731721598485540895034093913712840816492665341351995927649730681529896879127735718683434480289556943970651096172655446196743676716792301398908025158806941615933815023572927040146875917328874967044554823801411339699994866523122364076314073069128427062319399777266924032574553764670491486625288990896806539654044652029632269509442041994844613975423412341552238804198166364436933171556603264792637985570699824222484465511370355446365104969063504144624451346648161901022578196900166403658786806363340342865426247918553153716859827143753877411055635384902688744605162179982931747773507156287460596102049519449742136605567313658091704449286452335783749261405939957255523132711557708793595033829192999835815844741014482689927115974860667560071357711858233481434452285595123774862652716743556181062399050782772146364221832979329421141905937893795783749875093071574254377667389645833232844654204769018416309032239433658942564423229534128382937776268711374658257064525926732180759219615349122192869341131269828718489896039644742631655236620429685610810413808822158837694066181888129513637921743170856009355427308603598115795457981878455219537321545701541455771744536883992395663544119270694275837418501046066631302481199991798999019516120450210354104498005923775272231537712510801355603342622626607748493751877388169679384311064452298638255859254497226625832112381811855288968336757989526204562081971649390411867541707697985164847268459914438031209553000564285590240708117644707519346759545889576034907644318862299754598954386306920738458425652153810667420183530537817943110268648587157516224481327151676303275614456564605655362676908279140277428790096954533654330057461847423442847482926313808608201383031854374548039496517715569521819269853578857223356612703456904481642560610782152717765956793692673618373636933874040412255477088336309737327002721108242436700347485613087203568800053420477327129255116256617064704363430084895558702216837482378341360069929588086005666025848843922689484709605581571062525530399211130809523319641374637216146366143785153700262295576371814949413102094068812087300267594351745426950594890506247896734631940813782741913329606487527777063949145939510328023574500939548216768180628190705884769680825152247606126256992915073197238072956836856953055459258176304416131605864676955599495447102638113787275140060137073857266018704815630534249463509708291218586869334903543087530831676270856054500369321847558653249917255408153233165232570169176814150477924324949560651759587661286285905007141725043878802545638392149991127417534371869621466074980336634728217104744222835420604192156726979346478929829919635946310510448487370368702686853486376804286955087983428523547408738315311522703576682842395985791798166207217313816295505817501564917907879970042143429756903572848812170360259240453225868908167317101532542093225830777364820344385580650241988676650003231734486502972736710782217812497022149191075664345032609042106488570375111864752473647159861586777123910618736722321804795075172805304855319085536118669589276594215113487522812489878150782754352338767044995094171403420119309005075866901428409444942594746148454244631734927520193010168526395753819573798611930364627671164120364353611049019838462388797177832674215986413711365928836036131224079632278297420763305902991587821462883398734653521388642338293608085943902069836371081035719771065980862054769145646664597089987274177025791834208850276868185352687604915797908948714761311123354970737506074078733969274898409005088968691750595608732405402220615691865115477292891108837537823040797597823862309664656516992158458230822648805899806614593097545281811748546929525597603760629447911282274271194998884377048913999756756685664671656226163880063756895860717303120065964133807816614434243317492360415842844121729353550959093536070465376942497704885573827498080991469955129093266575344561995215116041034327587498074245199950757251358711048152394119574142170221450573424863674758167932088175078826673100697230328080465000797472254847793792677255503055029734844360075364611964300526256986274160401442632721736393575637011398497558234339112303032956679248719948691192044584399552077780426248426507653464385376895454323933763180477946715846424379457149391222466471415307154034674391830527211052780840949725169382092292781856165799277408755155624884982131378940768133318162525014869944214170883927648203993468344413061422307261772114027220429177742309780659599031694531417659862849441797494741113212666267078837027860863409636028475400165435394440883520653649413158064904690306915635835445883596331152422110993291556618869365679340802746034423018987927384393704058651408341968645134066572516432509221520477669521868853727007115227541455889228811133497002359206387091726160479359790927777726660237683809296310173685026521663943843191593732227484915182446507466067492382791869875691231616526253231596299842695949142286806958320985931759989135511276691351896276154513876853426449382581492905900687641768746270419042809148448311161307537201731536471257534238786165497742699797614361174605838053299006020047186072496812329413666887761719638619401494880427015117565483334420734090465965160852293421637164256123439665612471057529523381864991151150131523355865572831864594614203012420804051998149531240155477671901636637030358411593146968643833992629377920214564090930664010393148554979889713849315911771370676344218710596937403077266406900494486457284526935367739212289033293063970323168162775147288085210734016146076942664004218826688668776807871046336202498088646672896999178077170410336971740220636207824479277697150201767067907977011636472924938705181181462622927919275458772475518253796232641044820217629137842338317595708938393677200080860320961488713710339915220060270996200451100729696362042537516987290026018414662806924650240921300891420235771826828843030372381011908933724315481195125478736949114431910751397667511116974548388276443422608196482079701116686481559840008513350753907105152585697852377058082059614180175345702681063996782720819533799408566634241855813206809155465126552889808615126126981478237683641623396553110628696987046997768520877202263988228590307796649390368762941639941603476766407137469092289007478984517590310733208829163557579386060540792264842495423891936738500638609718504229045668610414726439637985409663809098765876597771218723518413670532508937338172656138362433927592381394459314004352264331341149074869348266467515918899183651516122050221944666111071124340440657446211930074204132734072260707574730079551858644329227033461608132555045408453119564540797159146002572983731809017856327529301139639117403274797824711303786869276372869384432220983159916849740709659945244499584000201653691015712400246492770534756826632983122948231238106349827137253065642556630845560695209691683960563446744175301063520699994911587464781896694099363191004545314991061107601112118866736075245000539006307119411129323811391183713520215183362121820922182229459564318325155852196057640997804710030815274621481526647977337434228900596254920010911287938808778537938533893512913870078190665422225318826336711669462361503526784757753365645365691585674409141743487950319376178235940724105183096434998826483654709407159783716442226501399528055754720968758590063398575472783915597214099298273253111699132148504667775681990225008721393672316013404920900902655308825450322693062225036732966112668684553727933477892681170139986514316836858285350527763185021133106096122549111763311400379529849371261764298307912497613730130917609432031626342011224137898016118588469505625386294477061844354839501540262090777155272570440094133964324386692405126404211555566031579083068439745383976140729352342266941437681928119679558126465715628949850242202817956996483710315228675146288705172961473104974253310523999438350175608755057433153750214269097330973319968551270376663998121403678746101795528424238209950714506553979669992992404311646794804451498462323421695058029127172636159026016067653999728515126547616879053445655941622256493140584586738893536849711634955170286493937642614869353393117942278870593328067630562553081438128670222721431711791475422914000410675701416866051819209047126140142704145638637721371028159133767720719659837920183919663867282436016870687105789363411940502254439118312715211431593616453905210944865070734247861177313946194197620575463962853867265426709820873965974518409011112761366604771235606736948837175166314038329300331245111992982414699129170766970902114939617806123572281335396931579051001593602756457015151649108824424837544632311117430445384394643775255737767070465424594170201778637509177807523724505410472156055671726085537724245738371636086744051993732226968415808745905671888722332369726607511049714096561907251466551027874869732050195653150313650196260056338882586714366493811435521728139597734289759794192703766432998926430654283738190008856492750615562692265277445695411190423540247944452212213400406952457490494735903581870405060846027926987571296582599986656509942919238216510736538329587155973035559443661679422271585526864721658077672028021958482995542204664738177930883996093384581953858463449912897233187724302100552801870844799414726068186522559863124501269473356196873543600915597441692040769559710396575592767159928665324694567704650417582609768604774199568796118232742758208900410554849053245501519474619454080684806713764379784279415431511760891280938277624152791662876265225685842789894987707747456071297572155835529325650489702306096573704015023247284798986302363502126831356370114246346099207308070135632804403381940828737887518870723016789567897950842817430937301810891784413706481188290395800819019662076746930124561687921498266888153282358945353021525107094605570145979093093869801606277694235617190143300232428038286352087147705826374446695191369462453635225054186023764750587247926682433212018465903951890875459032943914289785402503674765245322063370649575315833540806249958456924878444812765272071349339600745950329417517639944259000261082327604239185250422860337154114835626596346581711204793613058856289680027513415221140875963340311262792767448624124204750653275197498074405085065677349780989972258658868132707156261166780736514372745170136626375270842071588686172241275255318850688242417983797470127596861855020682192774557681657905875093399470588859408557334912463428666017136226374439687741438958789411862990849537790051007254328595227111824207877020006420839610923147017958726406431676029834899442953536915769753520715786010750583744492235605753840550418794902889507438891014799034861570360228519480087253929290328160363572968702195613466283575023669850309598265642635542161513454474898443915224296267596188588516143733259680138881433954641081468936299033058510612800624447388156477059055066229147261523121597601934294778180192389901905798621467092353758253363089587886839498134931345136115401770948214605772791941274510414400335541617201232972392553394685095118996892473770785220416044006987757558887571678588692353952945711210195670993531877488573746578372599684541993121095976504848518667361793518948245353108358827220680876715216533865154261941853170671681670222847785379716350008794913400464205674577132024067744158134685152351978953206666398611261738614242153981710663993255810186625303331721702724012608914276966196568982435579891083273544509444807740880806875571545769411160308981250178791695360376041833836385840759853111739305538901185637743796911835734944516042633028848228812196067054698825500516352315471751201972500026015839957231536216139064881404224419417724438708266801361003091797913698335203292619217486111225980636071776777526449007905756244693006782973443207064366690414478818564502021440088435246250536436876480703597548232763615097115743380207025228296779672460474930362580848851467419989201787932355228304643234408015714849647077274531118638920595189184398237043917288773209013277817837194704075565589142126785124721732251408003523057644879798155077911820621042573978048217813743306287667888728509526102123154224374945335251958809600929434305404629550457977902619963591640112531242798271818771156608893023124949283985063140065701074748768314351758411782911397343912415045612477632346991398657866145000044734696958805072768597366445097229121163724734503853203040484411318929686019773528208939286476685594216359646826802660416417451670760595629726022402781968771519669503164454676318640000099334572049436455004266101465713137896900723866854654657563175454201236381267911250960691531382364861306443977165887587367578559775988479520467020181562879212648585714578811418689649695586452774719965408597407145851533481556212085471086558698831442324761310805265802543879458336251028765877259666616607595535469542248325146185793223789450207005814837287342706417635177671754630202189061688839194046065137715509696272270046569381709817596336991910150631006413395709603016201390004519657199615547270922724694182993794510750293793691232423246039972863040713952606713728283026630138491023106369454352583363851728519460758797205966738502446664465780116469224724013048022342438996670092830001097826192636758169437859074156847563680030925246077914126368129645875893678140318748080440711477938340943097968925529487051938105352933713382147688756658636499756114559267200130074542425858438047255003820402862911237458104346223726338363475211238932080170230269116797074877457339013499208848926057076658969449699479973054996435452063381296510403421010346207064475240171517452900335016665020103773332340311831758793243945122840142098703713796635156253210341420132446290143616996170664037044155250691415558113228401465401317456854495484931907653086799339794289492964303699965384882065212002601660279150976927122359243384178227327957763802329063612784230411749572740350262532854646654534123508218929595897381107143585244024188416407952010412342752864406617691558528045531206912516214237438408299878692285919130098734902560269170310867482298306392715399650125767740498614906840202054804638786658933912452431659366428316447547292807981231426101165960045683755914619474052698729641919567895333947682097033069852801426073395832014097839925537931931171297628680604961266412220546680338642878623467282046920605004764129885270250729156558629327205962392733890712091982759588591867912352897215481796005949309669169519148857295783995867974942607408703676465596451189469403654789032824933829599544014082472202892715038446008874166285496569909343264593326861986236067656961069438702432328779081284316152475162658453573222506054292745275309666655631490556162056263819600180723963882674846203903368013387309145725316142076525330309673118881736788174350399093835770620346488040310418786805648340519868880709632208708008597771029876408543234317465815135241154283118090124684676648362177062439670803651481391477511666116154370272514459429975047440462502354104118862084153117740508870224552533088172924520879250165054257669149489440453401775079599459103100563015837900360717632458277733561486166826290375529521192354558932036699314475527946003077669287314227062886465831286265100074960135089410245966895208342035731536804812330147783003873172087132276359699975318808237732617632870361234052971353959057567652902348727561275605122449491802703985217809366878673829567705826899906498065513211156064458535303818235760279736559917462853565126423211019494506639566484590759341218892893885473338445003873125777643191134513991715821069155728058096121830758792106174889159920481212956125460132241157396191807835014615037157144468977549076501663206333792995374903544264162806620146818123649251424905406092805396834992087780196990012270521874715380981693491854159828097457355328420383103292679408284530184917177932617047854604389254179985825654104989475570327199919830339222641516473570094185972219630307554655970912448159882660429502660380776359166493825329614015212808154500865968455030738616797129493003197992125888690354725877678008994701335602775316387966120323812243887094391286433991326548530351076652938448013405706861010044437764849261837614541693246004402354515006016347352484897743002836520482209704713802752239788118574807028716284991051909211742795641715760102604222890014484486015402514554854816662879579969290483221535261066993785982815200588520629535980661890747478032353706421330971496060723951597166745284862293807131086926055759234981013520705590088996851180377949636491736801760578826528798989302894966879269011364264630219852698632139366977101907876099339941169521764271170322047649053322831116404312007815662223277098829696849468874227025676408761328596150268013237473756775920031791304431422146125058345478343250557997491832858452175005276109954491815924030006843924453078640992352791856987743851323787464638977177987321523441138837872163359034703873224474729854090896499068497058853379149139180015997863082223377593263385848037956965536296990422104118140376005653816435910305785224911439955490933528799397410176385192170795350198532209513990620562784001872303454191147205765065391066941308370297558460256626903824043016018224891451246782818505654386948391947826921698799823974168849194485362577069549042930595342980870558727967348196629549092899593071636246048539276334572824430860393369178124383403562224482663089295136584733486988312589788034487899901407719782654440081485361223912129191323428474417734026200396231578756640153712336429542654116563262437146816936599224113020493708926786743737974905395255322885262168533738916800063470244241433670796914727791479236373513136384289557109430842995472594332807520533192394103717872252560074374515518606526303573016032995301513673816545521169881437311485574922614394291847363655545721886931818744011893437672336155347052085719022953546133237733938325304152899428352223301312750897779201499557181011981207086624409590171062261019083190741874048218518768371413131380143033847903862862788629256785022145058934222289729985965895003075691258400005782535332146358571716071347028246296728172887833770821109827636485235829307229084618435441737387387185486500502019995754937803032986678267468744848987110116380028373427850087513906447806674392286411854111202131605303442746234427166161794504861754738959509789767378333773396464377271693241462697380264687223006893107337528916199490673304093616455091398515577309455992990249470302075221935742123939032177551533507771007882798838932895632068271430083572065737773403351368654505275707898399196833629689755720686261334001562852167440196965674201299585346371584453204870738921485325190223707977564414499187092954357849932130070921639220384966944801615297059647377471376411782356705535040885043438096557499377735596028170904398293873818121274367703084614329914494173966748510300269825876078948847851630797993398773653961082984561143025286426401893351116574353384727107758202246334856851373046032458663177501281279552274743357165685886802959798568273405442371054073437755185288871295785852762147293732114950351124017389727634904748178425444140564947418725616250111765191513768233994099643806316115977004830176322431388047178410265551847543520578504265295329658768826280696936516012871446653179818600041252195588824826525172460654840437412607234285294511041845588313873225345634684564424468899458643584931556412373352017837115001334818503896205975346534121817644627968745634403917885928976317656332014016084145454799595225266577899848660818067156858085629138622079830719150254627492010692080830155055938098141988478297136921928916962590422581963711499544209002147685999512176547389636967422717551596628466489169949413021282734337017555400443294303275894882574630398294502435712966162564176200774327928714810401975458478460713564097521225292592320779562029913964273412284251029558764815008529787456598141908395680156736627639362010101652849057759746766755430425041092162143178844560207738506205250313429197740181401013682498647526778501436792107129242336410155926365241804184076868468421685656611391236814315888226485681623359317709656912848675501583652385383987957843722010731166160901617932068440394396770673533027848649220876008932894037137103171279333350954085799686439529515044644583246452979603472854036590466248525441407715937421913947246626217585055568193767772969492150853610469878538544812056350741480978908353693328437688960262621935286544250391186177792824128112949676785580995013776501890703461396704782098628330946532947211631229424874169545974605895018054120127859044551029059555445887259958522920251437562716112621272714865246095504747545352086396695683108914947277953013401675168077809057285755761450389922349297889908257392550267588302701193594575496481790803709425366921615827498360603204088100322956544577351583735609686433487409558073098398611214301439460410002793294144530619935266847796303899578317011257700113401945596652641089721611809143106439954350603003530931881637920324306979506249634890037646470917233299763500330093418900807412355132323836612345829878966117311677997786723156067487651573804624579805861876685069994549467320849227252932433124806030981042661592198545825817817557548630623940582424610130477894489068354452831379678544093366198339967551180150728835090048555009538805444998810808597152827528604615985462922484835988362841495864835553340707517397119265421311716982801809020718918839137223764727599591775353834948722304180916628866419718528210610168885843316880254463980370243757882792120641717913241413931301878838353439237341656341371873550411621458274451742655598287266510576209609681580222115436460787344862049606462924362388938903649245828924994726282031871369263384957086463068259261563598747096035672212468602976894680302735351735943388035690359999213232901420932172834402940757628201297009260995896818593690314240376197423717005963856562245285679364441118311973515554913170087843429208301476970348401005581544478655644070121518110184450079183725710903290707189392824665593738673648010069291423945719204792693708950507720195508010726780201808427067613999450587558630811111777596118330227056184645502901132149944157975834514844708977885491878979664919745501117980902234969113758906184641958058701236118784583485092944579396485588610148514593774143000835881551079598364089460838494537240499387442828220011257520378808707202459709325182890799096936300259100214477132049708326428403329236475117287315240269657627200091349128313420286978598935761568665721960725914311002975778939441987228330861947316625680188312219291189350953898932206026350320227128267197597391205367505016869641371059271236209340367963216569431068249910286182330037324821941165892820086150140643930366088469511419703495617551714080124213316867325193010363188514876794629284014158900081397919415546129095918605697354393882925573827952452915302967226006137867548717582449696544330020370920055572364130223737202344401945479403538150841553470282335400742972153052360041592330718364784415720163481264431932480166955127818292356784841933506604338171258584218172306468653679347631179538641718432707128401933895021648365434614599834580921321168843611024464944978096144283922846163165145927034540221752286009994926891009412104056563927117462891045677553206864646337702015104367920359690329792718138230473286849011178394196683470682124637841707784696793019014685226533753775968434112928149791083977048236210742218051325927132075476734102995946348713922407485525825882466874445292862941656462505162962592320171877964265018283916812591235952179048354012010908144818601596459666982081104027464934101040400311931898391670195629216796514848862384099254503408667779267125320092020400086292504000093543589396256146349287026712855521939265841362207220082565646047530392127847612371654001501646142685456486534068182200396900385055329660565186614504505014279529669774508092338249997604308304503010177201929812091158007601708033929185008036792683684696322435245155649906647854448229554505364344266897422976415667557093847534705309204747525437388760006649859924264380669972235760379396571481236808515407311480917676245050763305225128706361637743127595709440382344846270354700883694886086697630375739264174489042265961488165186690441384405016329756673666483385308316462477195935547026344463351756229718358986805933634272092828331360628120400265054821566308313161029239632534778712664955599881839308573546289791516401784587333963324801330765141390097789917899315857902006563202956773941464110344548707358450274460150265232085009310567527297700606794035647680910404552892488870856699623840520479690552368352398568225159546384472421114429830000423445688185992683181582587751444793836349906894482019586996734489198103703193541489871493746308537175260118992943040114061636620262878263878440290324084163782352503226305698827030857548396198171683952862739978325703342742670688987046589459798680684685405496562070091026769687501338911528159851323251894279971426794450782946132354234692434249617702564836978676953424340076075298624809380726771695312477586863767431141622913069827086035849552605097925670609761119282253365172319182066352408915085356087583307733718679606776214849074194160423011916616763600678546560147834945097036033769460376416478821855323212410239955612890441580938296491089031113591470104241705720362353943159817682477371328130578373768680530160090584133207613428516293085326404408476732202889064601479464550606669322108329039619410910106331524935500815438644901025328808399226062149407721013183007394637364070748025168973898577367631125271858497248452445506412644759918032484189551152865921915703334344076831540557793707920322712658914970790610805471645813495731791539523167818453676700968992592878960032265835251326842719769703554856345080599499906331915231532867279571176730998999758206240212587762111655960363179549187189838627695550374117079793070903835310286760609480732120213241968584394175655915451297068149051951990862749646890600636106872745096090079012443575706945355893559734437302855553066426970226944745340959483833212855082460259462088281637235636372939161533872055497569559521192276374103682217332306567551339509214821355180101986078922098288972410602026890399835997199812677336520753062234011635403081515292882236780383458772694515261239330117101110776321009100279493650862437673664869635221365583995015584928709731165040362439621009005500586057689172624284959771378723315924420765593972396274749143975542602941909342309200097123649560086667234072789631787945531133364913124327746564382469499320058645397611839151580444824786426998772849398042108479337114095085840979068099462008682686638524668891160778052449658982810075831835314830959914112899624426643426276932287341879434564510842772112846163509733116091727681940997965075656473704649561882146683089783990067328297973396044260715017553216076937129201807260956284608800362500007033011534879967577007222790119447186092306136609605462485731672292802883249495251519824856991495006785346821142058920683465404383914469125488247798941859066121272018862103796539403732297632045599648283509238317080884778528510791960006416483332378380088574295130045081598054250167128558271455563759791981942613291034601623993621050322049037017363849667454333260802045893481046034194881262937906763718954364995723108483091354363163474340802574333926381527497645243814408854810993924072007637739893084277563083438260206015092145301747811806812944774537134482609981564213167620341056685667472955998341839039560483329229308529229867122768883692605675377612637858184147714655695935134570573061329258039571691343737278114246935198131159318528563860366855730511816766529158245328988832813716084392666383405366343027144897719925587733732225892307429768396747122569608233409852067919091949195245881745575255646804470222064896925692289160422987557332235266359615122002380603438741165291589218991248161906917976631893136176275002434881235670900901356610958073845407341068526806561574118925775744006943122737781362846767070634701753768760493082626430867539151168165801421637338000469913454851162345090997118951351868960847756868120648617658799507264383706005519817939474189658941267288024757860026101252760020025842016003269626488247063884199945890813036937844229691748228596697743458252345929357955411273176107603671392324491929465691646266616267779356451361137333861203939027353875456637814838567647307602426741969289680924923377702490365423404447748960370076292833070407318473726868430281001232064894890214418679207731517237364525249317966293543121267529387303507629623839490711748578004089272610846097866391417262661415494678577699768989231138327563322466466699799924009789489933553097415039568291690204275078182017522233562515490131001958808507604801401823709837673129479574905283212522883926052319236921073682614305503951435069731526938821074544496850700042524179518240854665963504971437966675688936733700321117907829976721080270035198483663868845712073589285507600969369393070016136000396302687316443103858679372479643729385268432281246023233901312698051810011283041537538775002024278961847716100521304500288333634149442092151972235473541451456476805500144688546807065795717475559274365104877434133812498423918706118990895220448769774143631180860860565745556331252370356276236170323509781191498264280150990283109595461420675221831666683328229987427968611161041001485570644812998546835116298245876702527280142904117383810272462552714083360747035858749292175080810907078917722837157027217231297196816783757052484491586836291623647654935273819920660837583558122216547111251370796130809772017854488127576448752289119758783190831178419101452915905926892520164271456180780932905120469326703890262401365257289752717526355485792092967956848721843718429621477156139196178998700842516266600679904258016548982619959166406877119986977875775225326686342881796137647573388465800113154857105316134939573316375431371717941814074750510787979232663039012783448524724504579039919552711979089610881547789755594200891406909387360243302911481017409921858460263585614919113878727195768133757643200477167144904446095954156089543496346855487941066079310754401389332738380094284204917721528746172456935249131209999625103255063434794781478306737651011386214263709541564718851519818528446981506160228120797153176051293458952161940770728546280618508759621095065090335008429266346417963175839535856787336504149183457438901468035587263828939903229599136348830607428825354033765734171822843156453045392429369247214899422927998308181042309352900005017122146943511210805770857758512999605377684508998586230163515184023317336046971168005913151085293629506449821693258982821265432380223981645828933552757908348098825869200097854267756461825706127468374051123864091508072183439780663849506709357064225794650023983785570212821939220172904373208649553599200863261890334808989313095111891399253863921043849957826562910220452884018430695653139604389532134006874121482409289395528320073184269385743052475598326087207094169420446465006234223195306670663836381108832078174902078767027209509798743619509584646451945643830462175113215204825969929240705295032299877054320130673282332058065838991128897168515703875586918125170820127525743799381741233277958890135233614505330952119549972649860357870062011618464733778314028144406522291450773009416463309408110337364236282077579200209388166996924230914575890196964566099686890680521716115262130065117225534389186976403645693669475038252817601304574603244448430127055977705263621127944393853551405651686487219466441841729328174739248781617557264448529124336466168006723032101459584281772391608055554805475639391960057688402964354129879592067722960450235126962053404033466997752122365247390224187695958884397061252746555022179474414111726968325504038553157876031451264371019039268840218975793198378986246454512773332350990819231561119525061528748757428819921951770078925349895980073082842831994720724874838937138169941889661649556180130414372516017018961511057663708754105151482365993943408308401362939526009759199161266286406663818724239092872466838130198994582611057651556320555596993015153292382966186271910895106150065846291539301177786101014748959325713682398663744518570284538050308455302608281952841154833023412982260067430510212301131092747047694738135135059663973856766879617592609104369187851504010891107061865753607802275926308408926296867032547994034305690569418056890061841500457453561593484589834373489459800503271285099510335727514864601220442850986966244363226619982095779797975352316223167707627137638843096935674868111214622423840360800471266075188372102651549103889131215711524745461904894050346305768697714581200155123411714897288347368645298274407567383488301601156470041599196359560394307199209563303627048261836191779856183637125335395015476401570339460917452599123018413127844087229484702674082692682374028112185936515382051307491902079119174077261075954800147877181820243334668331576820335529655506624126137267043023068914534871376875560311913001502427945459586858447485279911934839315080911132994542716885778384997220695799788047921461037906450406190908074179683504066461355240643865178513356870592449810963168576659422261256543644719461931842222635017823233404899885972508955607915881615421849987013772434363685136684149309989918516356350939531411686651739286153163535417536827586423967673713923103121344027301986047180654991189198854786387696258802573164813572653368266749980516368443785159729687618148204257005917157692028510757207116712261800989257299539528892796738349992489858038557690158101530884804744499492511781256774874085926460750901748568472284936020263072994878621878175196072330923894436267666241177432760260288976442638334260712782463719525950414500444182024048135276801005877904034532659736394764703631628252090612222242948895166368672392848821423351686271344652821905889228687609433799045247492219285698697043725183526338851824907190074515999706891786099141038080561674637865598703582640548325507863570868959897211004353761069700537377552859613572174109432955976596152452623259994878502626304647404102489334630191064388676129115059389853004775715662107509549977002764423752251330460814500510244097427964312666657697741475007607848422550779483156914650951122028014334631069740888188491781822354922720697005940536738615648725299865510055459055912576470620728712354788732313848952683282718875500523455036616227603478484544835285049260177411791447486152722876778073421852661064406897542408694324167470442803527529420588041306672979127980894421733049866972776709512816196607881762591412118543702001388461393430647614638679983934244297756615754681295487783263774707161169849670649699147852918622514411157988249020402682099052270066971768346422884817721392738215771926686067299397183134956347011006910098795016453922027871766820496408962169523534106038125671291472473003591231479555132507118719359167274145301894437140170439503042113976950331315499650650455693416355108550695473111141897515261335918879117012251537450882697140330037993754802183113835223249121932631508010969914240846836654253192017205646172679174452051901202150201156530637040637450765336508538957578066884733640500194177398908854541615732346710096860182813249947518521225472418946487265032981047139204185127365928448455885333454888297416489085150159306436807617863290722484930285791511023045141042442763860551465146622745148942720190122372934920419214803398043689226721359367544318606237851609237256457728642750572477710930789169496360312256455050754459404703598966103608970419293374934286023815783799069680877671202524547010219007839171369340181159592565750014275118112539676247575954240780922807387129099759388428415503376987876824485129094396904305647460889597246255788954695543825675406651820673556770016345725376442023657720977544369506590849877558713422695291123591578962382395333552752784827885797098952682494732539323995988782953561296307999018072998061302131363911336640013272716330375051612211366970053214344428520338722082495145156645114740817240155723589525914888007221179437033336386280414377956821534885617677065590684736007694378018806532993046249690250749903762368962272292636077148535692575304662271304813251830286749476667128840179972918709265216961051793819504197979046165614888219212532334541646190770634131041441519101890251194740425943076288432323543427281551373814637270182962041990109157142112596130789663717398583138078764839865418609401515203852154925182203791264993337112194545003690335393581943415218538157752512136350392598691509705416616344201227966179037188047838818397742245924201823402246873989905907230206586448711390414341345175891288243500940527316209413486631078596189485278564549567413070033110197981497397964121988531406677236580662324033056657645926631017069339764555837092672542060942280724819648977133510400840598458089650769037506017415988769187447932971623493076336730610087500934070043165105135125537326031285944659429049299245916603156055022251355696666792354798620774440201031391710213874884582664707141517868024325307902614833605512581275465011778185804390249932842772495266222367208023264767116256703804092030826955094887656906650986552155492021328335515825709543012791549830722861847907455897931720815863569074702910884848489597098588481500658127938992642749490612591821908912153126343849985811711051698533011841414642869234196961235201483246476544208252249890506820014722663737298529054427963073717029413784769207484913055143506832815850028843191079124065451472460081796906782876966960633598853833959296358257870009647921242705295505550556052767654271547676396354712759187672080145166012074623617105023333645150870244188566607069667821833184360669213841504813887056003249653992235424923451725166190937692274272741552890615455982106237044859490048308810911829990224615522709043372312419600196515135961113570489247474204975057679797113173266124289925015375773753491685096645399397034159505810928399734619700369489065630431184940515059848665872036805382418888009599265073378888336878845915034046675914200839992892154036442048580060760359739166496120753813412897691512488334237792368026172528061298870018135237968451005134188713536570165134985744731905412201023385846579537311473877396646288597098674969584218774578504627656563035974466541381858424862361839855462271600657445337522457432117623169433574427153410039735244354924446496129488030844205990354785028092768402618885479622362604629400845810862545196468833241041385823841731635039060541512220148615001774030156546328201768288225053910650222124029480046440809291531738809738891939704970510070101749536597205054017420565186902219693375047225803800892718720111729726702232789212018205380087002056097182028639030776355192731695487664943575909308146508870877729414294094849942982277204601207840745692163744608689630193238225168125072309408275581985936881982705075385653262364741447617349632581297921575179659913668053936219885485855327538871343278381535740453597503101425219627657904424557348983531261783652991595866241673823518176050854439438323823794021098920677300478441323869657411213793212839345632746875816464068920565558431365776042659504556895314146146987142771527320373011818944853123180218581646726925169627544784448697642295070742251159275192335181103499554375476882327821852009580482252360595343403196602000943958226556910814010457676625812596282962001207601773833841056735303870671705671705692046362078401133942477477135304042694997405262385483554370590517785700467450467101333120987044182498434122397998496372570290744971810152185614756281439679406007145727430318232433559351231062233523204466680211861895228925217510492424304560894897947862724703350962569672006417198294528882604683311086615338984754224960618784278477126335839193207797653279530224488022093805994904070611798459162701165948255868966132804601858903958943121353376352429064423181591884687331971220559386277736192460344361679093170932119980251928986030306250250794020236176321792749811804589900124343402321995827148987181506186919632161518546794262361122179589932708377684595436244605271344517439594890014586752086549672237813603495454140308385155852587114366784365356748898567242961240409531879334261097558350530804189927603602041967481886718576197788526129825079683629743742034218461816021492981147319572874339108103597098690493885153513392907436937739298981342393944395330661576762158009252857498040225709143957334013282705635340894029748872852674490755750753479246944231713445652340750156960053113340125713976528693896655564393284357061263084758749388785306365872398713917121755590848100334038895784389091524867491265525702171421918587814694144947225507611439103234155510339087090256522316429504280988122823871576429268587761315527264052485846392247654953240367509833915695283936511255468509043884531020037414371390598084839665167270116895579851691437732544960730765669186582820817033358628250609000388356360204431183553016547522846784567225482540247063498004523927225509905172050600484197526442110458998219773980458263587460866713744810392038576126545687402260445171152536684542805260256638148351515032525139894800825301630778135805834527219800485796523417564784840410427283815706964046792711757276408535004907054763822221559347204410258028494262065572630627073473606988253069524618383902466936796209461926330264959081369516368711215270344895561955624041222239509005513287706772379860745127102522503622265403405105247346292243998286841561718312705128530919860739956970487469070760222739369757949642211154282518641954484245097671472250229102898197636405035010258254561022506253351165481288099666506437679121298427577599539185156091291684526996571727844799997511405962018005692923147845018536230076070929903140592433565143115600045005001325750997972567903696031392929406722328906184721854660835662868511781492922534209318533063858626568263233034282907950443345997059027656877841971271304678921741497372633218155265222677886208881920100975720257958383847961315599294685549540134158860414812686369782465806070106525211874557157929841430066973229399478241925919972342871463449278877635998947460738276558324886199706144498198776596248718076139832419289149698387709609345650892322814464550645601009973133230736606927824950313764426331259319609544394332415629046668366700737218689544578412381055156449496885806279116045460542780641124277748606439953412694644171812700630192781385386855329502477389178034409548782399305678124517936444904868400008082264168338874301826847496435334145418037104286861945425392532868724274432342526341043459943936358273621102762261079871829195463167327171158767446145332386293137419001454094761117107977401003079305345595878098700711918737463416904529313422214542911011449124753177104277499645270196426122077605581639118980757461582601452121031363702721114857153538780398811662679892047557200978242281153644375483480724963859188498795118716832357387330797115461487194401592544428413697046929221440889468271538167030483424132893467993603340064991273003503419128740347111090262378805940902758197772160887827770855566654262298555761376163724471489345316999974453196600162216875626862718502229521478296755703873496172427243103166571242651007213044189040081281815349699891026400036833930117644495257022493321861071020317610419735399018581300815827539282534598281331223304387017527084469211936355358847102604522452248316686010724111558569044632414589825151022007469700863769666777955903909090365411594118019750933519083595372960973642690055349629635811144336590850950972246162240211430210883738172923964710774883115946780378197816955539298279669848864030858079426655443008850838209350906446328312441259481489235511468150602024390654453552087975242868727955754248372665308383024102288573085132838118021747364100266041971338649071414956054044149204440133925497200973148104052714225834865641157125739829053661010719633937646964851226307903333602444675683807199425057947861368549221604504527364015311467919014029441594449243892793668854347694335078057751152326967227236678193410263025375132200574953878605970828192265979581159002496632443825591542057841296274194669512318312661110079664728981943467132838112422878921634648205913699462908400455203697647002311414191435205076814285555034379559255567171234757613562741382618591278428303833677264079445882644562657008220147178480950916160178884591601298542787326590799251534790142557673226985664869270321906867378976054415116120796854252845119430463300430487883254182562665975054895034362632004069649996806038030794613248667910023267909569627010257792339529112561579666117369948151580278006194153597429471479061283325437044242322425360404687573826760813790535163249467925548700740954005619519174363064562661563760477772681445078924884137834568591537307567235952480276292107595280084376705908911080155969371793457382069137528017957862081185271566937296853172977027532412937643811896886747526009689618328171016691320285624172224178917853260021282821567902156084173262004901048652448820700939026260456918486047907788296295989305329196143944631958329534509243425613194179915972230313083828384109976718851660159974013895155260809098098427496317471308771688520359194693689294083914990397480097669816610162411495715527781937307578390702354169696053795887636695260146405513725230029505359320610251976307137379322676718097092781936145188750398978789121149712719662553680934250082591833974339823178966856577193254046939336638640443354581894542073948355785418720759132525535183225119181018935659205821076388099903332421140154881076427391193613871602161113656144525388632036502828400422233148370128972086526038534596579380163752155544386544929480824618798256784099851188732143283205374854096917666122377020426013051709620487888441755465001723354904402977702431501930479877092022640070545991611152607598063028845340045284357721863146221243960598681351053618429416258712262313208958193796785992261570673983469098379221236085516863337555774998568902445201098337257558414931662719501018396815009997816127170524167903396285511296632592617315224488925478000372259166143704956622805222736019633148288487880424455162973718307799737462720223520246937731049253794565193809126840391200788812005678787424295504674906324619402556686027251963103140301312209659297456799568006551059196695656138041580517755539694364688472960758752495933817503627498093036991670104389004068659967803057989398939796322562906389770849787338613979344034512706321210197574539793345763384736960199484664775497102153428769255095250528004135858363922714223986008211832558228038596998167562964757598746187424588879076628288899823765431943991638084915273081712848459601633815133358450592270735976121097404226623635831971601764168799980833214388230318284572014836949398687879336569640125237886998114629670020772481005744493514361046404154104877759574424791499934566255007635815879455812029579450742967472673336964820459872519815461739792956894292820654147459139918343626743494002453545912431184243018162860558574890309343064014500205245978447957382702081858419957701753698867199484790652229035631086635406494522215289314138964944034408910647778474318879668536110333914563906123118725574836726822596769905196783289321697632101122508682225046735955521265481467627146044954953176619213349655534957123179240800911013314687120498865368961219780547182317511128221644311404565706515521305776360752633681895739363518542856793842121115584332017762605830633120497636821642292345193321069112530720837788667739786409416041543025491483462138015062074360676992641869113607896039087452728214070186881698806907691383588531340832665423761009245588919090978277900903424550886053592772128081070843152633655500415570196259914350652655933844729740160963898579142655599342255839778706182989284669370871510206026829606964553576098745867137054299417422165146259684397300310650767068796292959323519442475915074741471340168213674354455017859946734227443970725996267238805423573616017702769140598341588874809604408505348557133289422496655174476956406586931425610883360673263897222907875564884025627121278627659434976644967960079082863348766487490916841997506383013000157661738050618937821526022445776793675624296451448523550636679476241192181950520661626092981706315660221128135591935996047111502072921047263111175745607745903579771645436684068389331640746677399492680199834078140597023613754149146232723310274152890042886553125566220532946762554368387806496018535159819181921264164579864943906650725126655059950714327439550363364532371375093646972725439314487186349490811105577567703138772641609233750634202356622180715458234772213223114845382608849771628791024550317243628746549841272360001628066263067370307662665750864993529849224636005498759658586528072355475670532636125281803963302846073390673819880419767074962231987458610181653608287669592256937740478375991475447637608438501932333879595792102109785070459411887940387103073094610183101655747618152254488873493754144568216058285458125530008012016450537820808104656329845117348473452007227672940628699448452501289638040616671013988319882457786266110197461024506165788274436714982737004383778154056500301792574180036606688692791706880274419141994182159609618082617213385395430814277674716420089231860651919291459278053764723324677334696342275694300516482684833460924925223545666250806170701871200506446236283359682455204461761848483646849071276184591415728378105569188610724003163089483947013422339968365862764946274376166402055665612033034698797527295480912688798824149755971702594049412705384477639933453953665529991836811285647826268259528601507376005663853806125949913242087913699980207459856838052535113109508050108961260355866103694916769443272230788111405480343518432947577451158328251033629271365019429334495597582564981542095550356175328082351014193205218949335942773472316824222179768062005741224337583570999069817890780836489855127027331446118813034454071727961780690038387823323414534120317207357722725562662477472772490272790126457808215856027181778693023499596502662274073940625491675222323058271568393829280285618965512360055945279037208048821645665250921775147285444431046604069568600200081005454119543375007864070497575355094501042290219473293006293814946301905637745799792827509481485625601160715045545291150556428426166864754789373206660746948170140505282335070501449644888024532098438914984114737067883445013990157009505643318929120706791771321271916195793112123178801891318693841867303073660862659771157196910253805329337292204654625020919348817050342208141435762052253679228585035336300855486247745507821172225343494440532337033618210342270905457884797239984595669790763000138644801614382592079361532828288392090621267835774117138558821317839395274784711022625336338588914849574255770890884811530867977263309501641264606497907557519022575047391775542607229866115058720313508062370309836324958804551081801750411582249106284425793242302336881197410075572585554918195607503247715503946241344378434229720807520636897429764304984380348428735589330208262863454818898580995815121837799718341036618086726910592170236771844289859907317204591464339088419246738746407394195928457861625120487357959052093554657747348207468958437491615055346110523464992540103059405622319256955165520169479624249427864642694845908926644245603528465934895202944479109405431641685345953900270818227735149581891326882760876316276357158024609341503539299160312599904674641512651095719806812877194704143422379939069119743995578191665535636870978159958169979501466496289191743656177167954546528119475210354011902918425076128724662236690115651918613298561514132668226177868566011507249974432993070927077617188686437056432747789231795452738737014463021049317551752894612423906056806460039635093695574448879753483710844460618294888377991544445596165885467515439258910116055892984289177589464791721249368023560043085544347811295240437807290744667735672702418635173567522015927807867292887058872064496735632352236295278486674801868661697048865875944931625140235895050855254025342791421268664728573252221130710656181772335221309206783888823356958634667915007894597516318327682963828343311691637210197858533466493028365246579881804273813663657882210591941041663108887034895725991712401274302309924571653252028706345331317357493048270446697034812946254840828692482833321897531325267613329930397998465275324644935281403553456119439288638335079255897931336051335046485341391647993544616486287592541950206908249348982339466746317778258015926263114247659581302564126492558241280817502937169264989745351062219087650936288006100053052038659933815920986011411527031418979579763647611379051205983560490619274970136116086793563576835780491431413905363161354756141187995658319570828686064196340400645979211426197409246101419052636955401197944777489512447022069399941595292975233877236947665507668063755319156414932149514209075521543540849981881469720825447767344723022860258839929781630986955363796307640905693365426577161622419762642430099283023721714107070145957263207054435971626279234275288258084760749638566305471884728064182625703102472390196627679983525996790387650401366420008620580904724681717088490994410990131044795434367290938839662422073426685804146177544597210037456585886862924470904000638721330842686597532251782100075047429935010808872037332220737781240540465614447902873867874764027814909172973083524581364346690178051592817101341139647281903964083901111260128764020757970814781443303463070589230590981119992908589431098932079156369652786111348631994556495166381167807595515985781209525215483468178036773599169912360814319007853004918485302810670845360443359061974218061707250360480770657841396769861539253364217742155258480300215531957183640346131714341968888802561898542794930853660748392594541536669504625029137602328231995095792396955076781795342677984314231730287283215484438883880246847314090735101413926059431752514747110329179870312952354506787420947194768476128545292308414510542291922624657357922393407032855484212588800258948525661296162424214455361615071393166691665342709435920153406148579552047361160350395037905588640081936945919764955593298914650936169749584201626768885472810981834232833040322001289393811933862612833277420512452006126609339445318396305259609732683308218662961750207753851224591831344196965061781049313515499592358340557739630815429400693782562821726385525228198749205883198187094951093750756271004308687064516852907661234570501918474076931586605177276966103601953646851624167708543697186882000141155414668059884966172238486444385863092462253988012435658818939374955101278541487350351665146822558667373834439540686277046600773008608064705939223002163041889372028980449783419259222978310486140688752912624128041700633497151794609072526385461247058210293174557516947499800602298181696052594028103561949879652762673002609574272465316233373133793636483647987900943972306852948034259092652427032890851418178886043523870126874386673292299570529577864908288271114753281075491815278153802581484112288968211326491643135803854730060617541869770561249920986681721227998032708226946015028543370413852284678924445442664568301783105193498610132167019871691093943450211115162478266073440703298029462548128133558477829861566192675931551998224868206309818815744615295227442604221671579113246082718649633771405252778627962570160399440754043839440060230827451429901048526453743166729668146470883081402210011385425088629547297718440650593337726363943635223455177509465800135109080443461773960400997927812989899373480865415463350733245369799050218333049304415423112693694136232997416041395618132989469628363852464658986858066829444737883603569726927130396482613246682712977137416497157896403942937150142468332519844724327037998205987850376869837071128841885208705948612936435685002578612926257908832889038475316875645968974024192037035710730696822711218249976791166568564336117643747737305352951734755529865459148745169760925221676464979440343192200939677447399512590795221861320367983534701953165884960513489660185353243161356749273040784054269065063295376294736650374408532799395069470780804676950316551226959238977963676117310818683804283087766850555920021388200591960509556411674390431550805130996368181781467251130866639525559039834945977765024338121442485799864879566946301723471969530845994398633516874132903339861458821554309738119729011495472723795222806191646617476237283694620892645511641047939354195582648930837072765268683591862624026094008215490147511689462753782633913175487004141608202454302357344015147359911390127761777001272584405943887447806321724991879219866299382061066579437022808634597547472564887236260248771677262984722352560628608378550621454204290912828254079308142151728207816724316650318526488435253959208349891411533103956243119046302060766472762575139221001001855271543175684586389485926276028931057451629462669048711703230382711722502405645156135906723128257858061530721186697383392936156819870320883364124711992967657090751787937414000809770569174433494779408839234802862563411856712823353994080526519538649340282856082188635522874661850539878951016994310242914147875092239962796229101617275861337110341361235212371853732452721254451604282250593103875604812873660832047061633336910411334571071939824738521070680950034018722015987261189963275080868353687404154303971076176032990016659499001251173371416607543824684521051729467748631888757982936410379770409210525053438878936478396506509906213874533014000180286918493539616932561061436882307639186849718929791304161742563862458234856529762634010235445306564568284733643347090772526181173924867070763749831848825090477701469037796912822619886815658367908794712227066168799299651251428277319588739853367129297991717344311977812784660969581662152109612685005512273390251509935115124792942828609093866765119860700138170282659023923834365215575989266909471075768110216984260119172208493623179217357387191904495617040419754066793088039934788432381128426300105944428822774683935383276803776740543261986024563235213028772606822703617687938467249561725106948953168791489333239000621661985745392064824969678654099582919041364890993727619716132459566619321532505814890605937087733500434263213872523681102922400247197843513921532988195656199842896631353986774333611871520549112455957902123558823437435407528774120569860885897479570982497999251453702186296165377253621144948665375269374824643567772597312961813035521897314125390303009932089393339677919613184721301013230277086391085362599700437453923628072133612784554608052570584663626913929857349311384837527490975413371277748406007766923409670036182217649581345175159183881944193055505705893707963181194033661978152634819199391058513865648556303521887850422006904824334620231554112279443742249411950671553657851040055897491487854553283810702367503249574443498921692161346211935787097170343018015922820043321582558166812093111499140126480182641134621695013126489421592342715339222972273000795681830712972150415265431923223124087984968648985353627948744913119583811796428523057088414338110202485983347629105507324254835415699391535590722077436738749287041764075206824612792542441090918727530979304653176944030773600611057872042281910057019253308666506588136275346612489339977492152165745678369760153265877477086015099070256618210034004714068702304313168207733702547380514812169382446612026937156527986227392738303070991982947353610333895535088656871857046266066008395230540674985841719002317442550214186402436889331631733536002847255308108074033618967033439310128989509364436791008785079132260943012847085145200316231495020489445135249087462264867314007088402886167989519157871775488428258757407305098606615019337969666186253308535089410337172685858596443350686058543537385384087858859920238281657326604898619419842259192665180417380551254093277672233416981431424162352195248532202510665309637946995896798323117682095914082080436025385836997573555283711818128553004772200698707954806618402067411112056362389479401931381144322799457329580279837217223887900419839602547767355068948428323048193502020512929737315349833214501578876398977029822566538309020798464673604155465124277926964782602734968028669678866913877378899056864106921189574016663214877092701107889622134278806575498112172408669457207698910849495499465119655979854096582490052266041869971560170385843822911773482598825542809331209163579649369741327694153621956729199018436680541246005488219642163442155278372112241157733411355156815722227448564918418551377662267144299833935825861974449525508746126729506192232009237918169485635740199192288909193244097032689868378721599196885550434081044280016090234078515906805110707051564666364821080280032285562521475611845101534979036365623603559062358861924915648267701062451301069464680377196156218331043097785451589392316181694444928451249448574521447604799132845934999369828403923215710679206211525160754313565567234400630661839462953871605991779124275087545648121853136920938912006103271149294399240157335270978191387522822866661487002142496521021900245249379235565586522664763192150870752493598289714158720127027415014456180468309673307854741644608173661618734895511730955125165686281804163357954367911286384270990305888758409417094649939610777496944941350588131708312958801396084667816006484741035321205187750058187746371861076143324704602996440451288378733888519043881937887746817199256848914399459371549845931365813936985738923886839219710377530388748072999034095856279168426651494973693773789884728009260828943332696448214998118360095564091388287367628407159914775804456699186489064926990777755737619830456555810920181894547138923424684044852413494048825890008418924503027568630063428090970018254041854128182729831047315222321394534548970630820088618043343501465033315792108962865119845386228958508382842913882602961122960149229576828323923538878474515077575881335393867140079633254351355110636301491625817096558747523350862759275188389012063347231052263149138796345291548681396182872027988672443510724814173046227488531641024102462379285647570727952019642614596288469187911571920501087154217499372648429356675507417356084659308795104286502827244069629016165586358484813691407140931998018024535974964106278543605650550927698917175312027687598431157331430066614384655053948872910517904048979121829783377156511502741678423797672684938250682153599826369965528986827357344832246540615110133263507845728233592213889410771539417591779458647291048900235640965364281346285169077118177983297179622483123840702619723431193935194297435810358129067761119733236739130383390369252575781395155866852583584802616248043703110582976620122347148352035884492527884055186826362617132411530026584026561029068854853743887559806603102538302337675695195563443563671479783947853494139692589423170119137118630295512624174241504652915155049909697158017127823095989344756784325883258255053047825273893493313314558657469649640814684134228709338530539701398964164370987874796210315308616807716003974193625279008146120497088686669518251784893556468642561762279806775173926412462945451693266638444656397172480942950907445072706602775217314848285301083197470749884455183673950295436345653133992905029767522531482041082268023634233198996836590353079266864408778145393189726947836050615923754667446254410219829394644946209191516786553077951457190731178528884792049500875172779894194784961282255423111318270669274553645921071750428807143322882608773088306563985657992926864870049884892777184379551919222422472290485074306105840751249577063817020395664637930004083736603304871418305486390829322866201735163430250314569572849533764047369273173881144247590492741233394210216205208379117357924779139722976743967691376774856504528667081004753988907267781886773306465434326885739824781306385324217357542933869267091479530477559926007931476937024472084291575040113013045526918720671929409488424058976630201981465886903556872921214604451459715122082561305039488456329011681867575094591493068372552018456281784417106515137111058894235491894046767548438254820234991172037102281739066303846776459363453277573908447335516965133253263936632773117748173505322849237861641080563422158124103303992355996375456732465058341443250377964730544595850396083821011723895211073150495775358543005909073188855096037992862223539906625391496880273378593572149948124018464903613258152529161514609434675786581168484058758163242289755910500229069732075582037422884228351311808981683621574791205661541994615807511099167455741693157782132461693546736204874193712027744591262363854178819275233199794714963222096642761867721716235776062991504149299644993072298963123843874477230957262921155514588093796449564740891922830363383390673061457335177442892236109503177142353721107311655472525701910959569772352256292411116256423821599593542438249757989367868695500779172971166608973404189354986466423062030589695112173049934798358787843372971359672263715116009978829120602543480264043037201396381160927821847050646318013661556740218312983818976538220404135875402132181549201827500714905979040465587460705388680418611308946341150368902631907884490186125611975565223121630219578851657503200935851174779430044406852930128983551266189016064876280469840797901214457598915632912430413613376962743758295116534262768286498759371199693063393709791978308170117957717629267802057364674435611298725435888757849179864727623902347785600036522483146961097513161735706946265577518371445428155212913925644564551140328901568591411131771394499835375727433229632032448710491672228671834032807925864630665846620926789902563932988523423965085338441570559230130793981573304708888666718030790076010197760887736145640549684404874424042284312214767954251054854043613713237432927995703272799438064578797253954913951317900153330444768081688620690697077834397021323218787391986572879897030978084349429499688611357120270288965922450436954676142698870435278571216277906057620083221240022915356736976282434599399720055016783540272743829365049075405109616411822405240471122146238242209470611544130613702812180746253260590943210213686306323634738849278320594336685622030207800114855056384327690100791487554042569923660628946896401225286245464986197771884445543573490205343857848348608579041121425999714874522707335008512460470121325401815419169520390360318276565965095151701829138219654405264071364011791110380852703418143772707762576106493406485537174680854284258092462661300952820048477356818501543349392748432630623014998725125195710662970655571184005038019927607929854386176772849768948183595686545855052600820602555504051467434289464245587816404772653272120639674772624670592092807018521701559071019854799517082679274635728717999891873048344568050496501618074241700028441775991115681651538782972425951096516302614921682445853684229452623199729515065843784366011686025623731008454781221592228003247784324083020598479208727522132264848442095892766434627616279458897504950638926957486210173174980843842354518978774350631646636150573579300978093790658078976723881974504918278856565226332860462221969358290456042116998934834251353432661873172153591626716911972713952790414001697330621869165510208281521366374624146968037718747484870520073412833052106601021546554252098112149903628605982559390009371040344421733695710512898796225871239789232331276950273977855875623068335920399503528329884090241960454339806018348529735296441386096037388881133927600886320169486588999322586647643716571629925803938022319084254800092806568837755436028484562425934094087342505194331021213473703963881770966322645015349892338056054950771537672853943090137675797308138281178537384688868300826421314455087720412418489970132678797545390072425038199697524955031935205236298967992518255382746820122004774013441271691317593702389014452829336178993988572638933057896268617626789974183270560851750782958788516657244604420142822697088413870110790419952674447580116084423142043525385928539217842983375355767965656296100491683323361914054010844359327652942084207315641618010338848959278284023496773987724029409859599751785471010436232532091953909022260091880925024861574296472851163180541572390831732442884488362372027187126066073220339254933745783650734207188360600874191232570319928328518646036916148021885020382093766319282591482840468575111952342295885293504318672454385083846969160598271280282948374892244349863793213500501366250964829462279277927634482984481859809612467589773013881720939995814746737101192429090240269868698660751109863204932682632189403632141484339226654992988788962523219283315346485628807895802674720474153309209614968828974648660574943811953209315512496423798847947426856728149407022664581384014946559508629442229202866944616347783454498292833212563933021600565120001875828212595406072558539336032852287625264090362826258292517578154885866041581860989366407474573327047410694072787292038594129795382954901136735050466955649456268667494561333840982801653014723714079061488787381312768019156336310459891942571746049173986951263411862260293353761945178770899960719698518807330476284749320903614039716214378066342073058958661967184895890149877830291885633105196981460006125198601203395673085898658273975682623889921066349781461934816131310266444968034138543950508390267449487058103880034593993532752552125266529390216170466852650380990187406356720197478095034183521437041114499973022769459970864730444222892466495999434242535061283031439390338998795555112130376854810711853452721529444035786501183250200497307114651819067350439513313997526183869079540092968440252329216633469399149065883322156823696131851356383591312935188383910437964965182095835601507607955673298458209139389308501172813479215893967093030541204544242661369693074127221578431068537038055425895717666413078453891482271054074529110606502914427470090686921427796037574085148384721257738641669036290236431075387742057391565977337102082786229181998767552970385719139613566878278324758580828668374316310043651682631210114228270290389690967795167577971062402203383181403242295261319217038088746046123256701883159351425664911960987818181053676409951018186863359194681239905300750664178900953155384665016774385676875956994446575178557747787535667313955298697424985371535868038634173927440844961535744844387884759907267800256187683478567887314421119148062474053507219801570947655704443491306514424774861492833752776254274278608812096920680096036969132183675331310295389797374853523289118286996283964127982395821355385788282409368803840820913597579825445834920241561828516675786605679312300554188058408301096524735931061824968858416777957866508321631749522968867888329049583701232568760424192514457380191807300916950716979975773168656732210948960050492088309044472380514492320756680456153134169680596649205508511222997005719418173078733758434495449603710945233049606084800251466657018918732765333516763997802493935148996673245343579075051862274515565543462942503702166564672503290955143203434052970504678557831441806208628966402896197947320637474458473284456734787655411717643691900952745331246871287509249782811483571513068160815973379705937259275985968711161391026103357912913335288617225415006153808685756474957350937626403373463275758283208603511076338101573174006307487385328896450143371559129512590219127583606235860774920957328640297858845651586585793894100441898829097591968443025366702781533972298764685775929616264297114500183875434063600520917236149920064026279708402781882503919236905200913683422161995248587521613269904369746890299695034544762250994873021345891317978966330039482325773165212536772335261377303719955397980215726157957365236278507078721679039191718482822765503104665383867400318026861370595658296580131911084973377507266143306761587437368605216418288839435345609261939873853614997484020506829048829663986106102128462094641258461016345981190329413711982680200959452041459781622423020519861116972248236805120797810942769171890180354871877750281080149368762629192290094719032143890147476260900238580287100659533734453203966874057079959557016867797400617115025253902141288197714292772977351647095707165625838186955168187675224742727119278119186965283396061214239140805031164658191295339148268615129923970229439929347124141778209677744686036606857046297124771691368314088285661248516861646921621596492526322496343864866378480354720265013036431739481316722952516744277316142899594340072341993962213410871407414496556318900476376129780876910385939923716260421334498677448169267093351634899186185143193674789774636331295684633176659281413935135506851200335051561591120461613495583262660949618835512658032552436529488292675463964436138490170808939705135808270436958247715197775040079955131170891635900911670302503076309310106274850072807082365907811128480657674611016751876545324676760756522264816353130146579938629108038211328180525155816435959245170136027820040519747684663249953586806405415699448460410810919374111178477013406408250956896488355698770525058192628795492235398301948788288859702325439929264142351643196326501135371188385174993753138242212393916218454647467306813570052527187761765199569046182079146109560523892603300314707977225124255077238134537098356568624847219123020898883817418883955572593910633194321071320691398985703200453546270465838467986059293887482216410082200450504952305190057163010535323074562934221941257932875591169265200612905158510521336622709442960608230639188297659226621483243005482288910569137068134016490626948439906716842054277622448638988845062934133247496214793724075190423078249093303217555118149096699614331593874287698207828742137592751570675913594863883377169607512907365610424830043979164394901347831801967316714110524973542371435342113918941519605979368503314160580426868717216330608894589498275155801972060941414440543843036428130021943647028308905168533415100666107898530133823187720214476480687079884136177215708616849954912552583658313754727352918160970418998819579084105630773832522266676748544883737978087781077984644450914580104953574677238624459021933465658897396999592523923743157868180991199607639802368408152907034327123768978810142657834295130009175985051997731026106448123619347458640448034631506739150965739889880952679477662232223749983650970257440948604631047940558997291554304096498065722880780686805147711637520220616787135871019147270905719367088839543807961850018339983819472697242681494544565928454460619844900051461183449935447309279994950200595446541361924467015107472311058937900912892355596806305179448965815549542768669954569410448875009393818641976025929546606305678332332829713614079622385702618288279441906809132545235797170916686831903857696349683371424990787085855305751306573830185489122589740366087247257119655625681750929322334792969982410966363784433757630971082237876602491874126518322785827737344615315803794696586455696973666671118710885081006484018082838631207266308393940753552019457020718050150978526573791078772034820587194925900689793804386590780517903058821051527599402199867041397093764372975320141684299314686831906092504095195582671307286233517054196051652436832607536419595844233086929546324177290210999509185208640040943977045447360931251883106492274214843920698290967705003266431083967003633405059150561816004080526253368677180058501221796794670105526984381776025940391599039235079208532591724831337855107614108865785355151302440781875847553403392613940265938480354056507636562317416776942801273153368651998849669222438325765777875441448317472144646800797915314922331093919841151582819421751329111567734408682815142965828597399499596149698919737897190536945165559716051281640743603591511857632601982573797636278492722667853120194300032455791341151595353767188982293658216796651587574176474664764217490852751362951064003026920953930340725302732168289376542620092060023314481580609774387499772251424932869171344049033493440787007475349809088397033769050872292412868760512419068957437931663595977816491784813460107646668477844195639326242884183194282202315812501371729251545953396492625752285185562113921996448096260578865328681600835237766520693609499813173555359956440175452101289537870170913215235679388251255654069207934767264917042777469132013372418020320751131348991482911658581454440534711261594827661428433781542307003444342575541364561390251695068276289723978604971865704188364752673410904832280830347792958487808472988924172033749055894408540339253647695137932539646290722230296190995747870566779269655292296214392005076709371488278631047927522144620189076302524371988863201074448268094059749926562647503510993372220859136802859945893310778188478508803599931468556835206808412124155089101013876045678281526352939048285940056406370866553302445202755239720815502123478342008231972503573196080649707231955703005210935644608312351124818547643287557763219336539272316796523937904562563374280615598820117012570099985316929726168164543379218014097919412461008280332836316916616998265784855220756619117066122659738855255785241802870619686061592641670307214169714394191360812724893538107359981345033655912691393748638192522905152694540490118462898264043169970610043025786700240712835685362364318933186341124438820962986113785498842575127546320519999490471012299808545588689760605656859653459230052718240691696980411969207415497172236550990512687467013702104869015453079603646608418437390464824892270472059205296869854946144300551947208460850557671434240995256972489837962918818185539457385574914447829541228201467037620654808615783084562998262556320400450304595321736900753084499363508171365418608325226657614174806856913353747993922803114058893081318275521679161264778149548724012115394166873840293241929279726771466165348894432581183045842947514441436345943286332623989473541951507723752259351000534617455956960034728561745137479184581709638253046312890404598554110195701340529142571921763060215824478755170835373876817641206322765458125879541639457547845322067371711528476333205322204144105459410394688146731323507375047696372408424994884007147019064812308389977050374977122762503220983232859388047736792571421466599246558552879171823473834306428126383266568467563485769279606345149679329938138794489927698038676524058861836006617402140141715695848153760777118787116281964299585807545673648320553108602441439925507870266322260117195279017274041055472462642097978596289647644116802835472382330222838404099509875366758441803173769674033475906882335777898666437973996771453146569759024428850015224535755436976472416812873043829915664908446913726032161553836629479925715623025877288445180820999134275599360751006881682488467819361214465256322867399324254135518982668707807553466620380300483068470451310634928501811958696159118495504408618924150373720504288229637181611141063116615757260345536938738838553552703390372054576047440205770445202547843135403350229718715921050621279458152956021019361480049976306198471214280806910317287397929884170743278255001681876646455012848844625630187165568633254811783425997276715085033482992500224337350363707695382840912304150560446992801526168187427308257174157056144258109937336527425512978074387891265771982385677230688785747589029378189727262166759783559841147663954420069766323043531309455657659611727437461197118352504382773880502166051113382926617549753735832050605592847043458806585526854141028361833696443106968740718538182581031375485665889830910415163560263658107998866821808929822930142695326387103753482146027674168785072772998775989644080954840960937925182418037040412530004048563121297403777770400047305633414133268166297068281347998922899549010986945540171704401450069096613018017298605280974184317765147715793569368214361445531328689385192769549751997624465204611748402421937826725903245437114781867950245833739411270191870236441583662901208944869690687015129878078019914693806832522282813739977859529417679297412903898745793377186164337049585679114389930495514532525822847029073115565669467384786891898935191477727036896095554017167203533648825037361343528567083449216661269836078638665947398068543805735810543465282876887138866741746707691092999867896662151930332039431391107790222466483426256251823871088565897250513406389098123547456258874543267412118146288869072188510497261750036862724980272129819659968320224105132739718397608628933589194277838138274449402447924935470184703536538620114263451645729550370197018654582423258550485701616838906910810859271828343548778294737415588805699889410752935944989731317501573356263907160815191821667541853616389663168054635763108742912302032967021208339007888443846199124513696993591643451598472607872729569862958329693459183894525843924932666151892675686926977553339890830411559554854728914108697033277881009083945327645879885797070234107485832789007718888405517978943372708625665801015693318571995322507758325237741521065108871900436680906610324496340871013364051414000501193923711871066805124644775083045022461170750644656324428630303728415994966742112497536647718882984405793743917753281466394864655303751979862908556371624701583518092955662828878737808789369679999459146529316858480564648677961196783105397072349996551356251959184232382011552716087819302612026428145069869214893986275600974453495138879161468096392565455583959575997207088019005278737452910997733373079592233784064466878000809459806504927872455921699534114310749438929479200484759577704299819209157379279178994175940563510230070184320808970526574727183555076495881381974969021184846358348086070196205664185247013414799801572930597642100612673250576809043197793261300210665079602232024823067158320486683424388379824641759405801276700539384087792823646296518212069359143816874073301223516891306570907597867979247412351046549508054315496850109311309577375545355729006241478428043052686846874413198911727595922268745273861690405526328231850717913596078922678441310666544891007149015415145992126519009720547953345913382086179429576034390857782293078343756543590316540376741158676759051790968499677363212334754111799463275281439168619177603252335059646174903308281973744543607482928648253537338823881684031108412236075975618143790670111011034289461727106773811112730542847573240698004811794925270842465780354728412150167315203454492334807439514973427061175776136915504153531994341192655426557349196360574931336907522211149231450861932784860905321020878937955316344598881831245157965339507009214169799879133970037389302858786420098354399222803175325106495964205637991798031383774585119302147295183063168097597977621099209322041920593561467217387103970300680043347876018793972341483437578399845611097099923650634326476831641462043463749579692167862455662280222475925984315684299715899503689585839779529441842297178731957688379035973085797746259374397932260318607738910060557366104280558054871037352967229145203346019641076566798590837990581017231852980759277502990769968683835009445444919312672813592461285770151941263154089920166965110963517122429974691073775041638931205903395628373958474239767479156993358194792006819010182894305092650387940665251589602054764512166029758666756572918229341307957745346862392395883341446285222051323520201054773552862420362601487696445758362124748808654657370148497088992219968882756976637007412769237732555522231338517915187050494542912907746250826114936364779319912347843731977012322811816299276187318366219482025644774176953854648717377210202321260663512026296574844576906600085206812511668676763944427681138656146637946440925468308543887333635120648674301357644765600580941368211322695348305044455201143835502023476903525522201142320542446161991637790623149112405017551283785979534423726087004621125386588126620624488566779698452386585448858497740086110195904145657462872517183515259947608940665739362925964731071366802975975603419722265690840285762629718370483173115863140311848382513953501796057792619563135296963493852264204762809574457146674428635326464344842856790240207707147130511701096987568420109092260004942425900667388317663763461521796905085170225365890326564468483335162481557166506339318119441200531693624003411155242733245268559006512105019594271225627081033511077493360382008836838295745931326964113645484951669759619380108504852325604702811617424130593687696207424710544892700675605427060615113066787780012535108880807007925028060842779245792251391220960858245347977043899757188907731457798761537265526269694406628594154459291345156431307429575693060083584990825928110833704955430474202516204724765192654344660127619763251816130098258703416537443276439933252416639703986420446656471710636074601457641442098405941357558868170388587935848875832316819903893976263208294908930827208751025039559097226725772829045820284528133359588587037873590190675000605571950108155477077393182492942928881542493248265710936248627421482921115129531050395152331398098468537809714988005496061926287926857625569529403681447817438964871103352541327903667575662048265706071559063508945417711254233004352240265643208772160262482970581101416266523633722287503390351066920294169834091266923529625349898944356814167906917661835278364365109789694955249621191141886323634716604414336711705646901761666851918105495352435961754206711569278321383784001931690515223441869638806705967378263393436025764562337601975113442216082089412066527437215272188337164000472199024152576955260007484470059279252859719854693445367590358054991289122994623554081645628306884008069326462722295564216832358610354717300781112341363591869523650750000157437980314881097489167402073699130291302119547124562572809609997498158518814711850247674200272190149239058904856182377426795540186475430514394026278992988186943621933203654933507903912539771604117475134848993817711363811939889524919228085496363910907898715423616378195329666742964024610213919123429694767230580978763204949263771617500823625164939429238553791801411278862259357022464607495123706217815548164208107422215967457374932471509292763839320120797105694263869216944576867798989801140431309290889570170439930208166044471822257850349971549134227435313864410613460157691570860320503373483349313638211187365195776635660694614988750732632378268210180980546923889567165225187157819545899702419599201336215087149507212257703536322628732542567359674411949240374608085429831376862958485284629114040581198219601558627122764162376214886678388410317168900750705125865645908498865462414776020318876354458683793568223651790541045571250900033808283003391185868137236582680489152068991551419683731610108424895649736244778540738121215608840167331706359823326496374316252932102937504695724331843657432854946944651886485910452273083304062552299992159605548039249645143327792079298602636700347304268325705531356762801672294010930896562136352034307586505621436731502939851184778259539668474617408277349914972744767000117727298041526058127835932044850489810616225578062372975706354508636745316766734165746913029793722674958573665982375657271543958764531239620261521593370744130846535613020453520745950836607201083435172172097089157050431191872839716719645721944567023750918295987171593628059406189417518279347021136871216790968036768134215061903886095184433536393355923069157804076288040449045361393217899640565651295873922984295666193555601731680964029201956045042343732507237809833864339749106239644097936704944611630594384493089783504772435150058293354592427698101265597685401388994754287899231662066233997570540094507468882339345500597302420786181983302188925345730827046627631851306148363168083970067348766854987184468635031501435561943237472883432816794349419635763493492174070989435739330338374024918778545731135462442744566024308217954651699102938255765407899419764924273434493410257558023635819185781615417497546771977950527441818120286933757373138483228057441607489944618150944154956725512971962944865412983960147834204481017435821047700256656722954193667360613341882059449572875523434087614645398040278413292567721402729060551831277608533433571810216018831855847371067548648836714985305801338012075022631327375341930871368539596383645971006563656200378197855621828054568895100624731065359456512962213905554342696198739100642852323866476114202106107634639459207326597672941489872599973691366434152305824453675445880733374916088834616899435434724547973478493659526697223506090372187878226759449779848281692818475748392845597129221394128199571107998819335534005179503785419957760637513063720847703122914098593956069073933655032635844968883101487707893316353813071269058321741510225331635080502735655410914353183985536701279389232788204661937611260540607126858551227996842154621612497872874399373526851256947840643627324586192750470347185923955941149178299014744761506839411727075273800865142470018867092647160480728954988464851735565712470175318365126718872895068510178077904758735111776363997406105390925264601029006770345790873701520719539133528642586701736606234028947779471378046058203222286707843791200104868369641673841713188535010219586874688701174861974422160045471994469181060001806076527567973904713664015800406631427416511428539047271308672853513686969398276308740005070008110165772981689306707176651471960448324215693421674021958987795303980667538246452510261099559424850814105316778653076006228471450161181202063638244629962802466326720086954027027560059029265877982300811955685167005709210374262667253713519198707415022207250522068876694834470568749122967782922145681650721418983032808775878553016314595033446121275311592710290583681937989489563155074722665901160770110386212999211823834124279572317939169001521385737393131497231198907695841974600716694902884752021003308500719115413882631389506582505690458534231581670754362936769030104006975298775000332208975303297469919649919480705058994805893943403585914469120450416879089216738509174378810460084169058137044063962562764001140788950349938617587968499269810165439441990707762124608144045302609560342225920562699205602891236506487430846122633161484653723922170307271613232156046016514136771480369434104623180400781107088117119269066592096981679702036635817927825133659319030398757473490630107101069869102765723149482738494574900661579212209425949646931804538052035337352876780708418278754021303946373450500298471784665221451383586377238815195534946275250945855530720571801637880144341454827332541486596733118462135564712258080148522689946911129027885617751131268076974647329268395889563435035982439082465299120437811651854282931867968298346675424728699371975107957388253761426225646765556459458105319135787305400557571182876406839028435235615634962252045783758178775287622093746864668641443006276016807212059481936077333914470982120936873372422064449146962977412651427256453458242315671983577763500641144079937555141522057109174267290631699082367993487467692327745279815751262161127040702819988576810180098600691995908024587222172235232066530808201685446464150152080797493656859925972027957687614113619024190065939462441772435138694195228015387315215325006479160303399392552181507947088410283607425196221310953379495612283412515782838800955054612330180299720511914381163720681159791647145308580818947288139898879492084794387171815626391328657622856114486869096740181460845460754477684314795164850459129937910427453008797084806431179014404380106239138226879045037346669602545497984365001250382769099710873649524722481476757543869470167320208535309270482316029482557324617243433648850274381105732669782365196882844306059066524030904678170727587474564892314230992096885356264918344828164226187818915616118051229276040867586502969580036800115535704219222618797461192459203173186721321034129818713663488878381969560992004634088880530914188740860193549636000827231289151455949266183249697803777492934959996801584319506936982960550488458047605484606686511058095330147472225950229487891618982767097925164614215239480978592269544875718199353577314091531957431092983590587073148163316273853343174114272250423344936395010033318317228736722422521355005008144185105126241121119450450630938905158725329569868601337549580761650911026936454269984682851132509129233012473233545274922415212064102585921754075266895841762778051349814009667016040232476957770153953015910514712236868224080783874853532632544841090810013122603622039289729691018283690721998454901366030510516943974454103098256084455801109639362433387633266181312809801452907403740660525352836310835651143817773604151823998647626883220348883153634146072167930075057689709911548102666319889403832545917848992230486128233831627583898860024196527007284388414061103459082020729223046658704843842700973348809295523623699744719519164308309141155138496432562001666595760739642253925507442963177536341483218642733087356858435813915636780361707268023181451047144653180260554332532887708536349519463804650123346766139945502556491778831108106604292483504602192724558462298115693784556286323011292308210999426636279117726662445135884804009863373070170777286982354404483901211594741172968440107002694173857185817887114150385181332364604275384898908357620655019123568039448817064544639362062814640870106482706721248915340315233788325324686206371222672848258606974588370618212357381730609201038982900788455109371148997036647081777477098242053693282164316987356295371804356302919118386653610255081450153605230689343015304258765858109383408137102229094699805535971378457094921426911461385760581965650045630912676042986910169147159698081918048221621105978896668628431136893233372191743976286980221946943336235749826623970128999423390362494266655007535138680364368424552548219106007446623593342198301617633922427198134649424424541776900261951013595383892716036335551962605674702395527945071316063217821301733467126093815157664671101205937804476200943295260554858931318556786977376943574965733246226491692806765299113180209803174753930586423811962673283446393468973647637385049895751888171241529116030826139798852467924359468968667534332182685549557045578600746068953715305958445355940963249664049391289643641885669911676779575071956219642671915020316178272228944440631751360951316481691352816285225624346088107424733036901877991945069230409005768258396716888222630294035199279366918564613976687758039773253312750528685401058683317778749332401603354905565837940428260654502299655045653177491619276271815339024799829089250845544383127104148142497208394987958895927966547368314043026735084002750254737338031933370291282894469574575655917562317552006107560294093421950627962386246775595019671841355710392041905364795612445131400312543350166645778744069074076101123232576516182443914007402778210567335441273158170815054688721061500107183285531509240376543040111889755997426612132643311865817583052806780072197631152236666144920307228845676811555900559508632621333894110438280835478060715221445112924905391778871990493901458796600604559819142113372065914171689836776773874505898348141197557428267807526367490089746717897837376149772585827318397601971544014106759822490828544768042790526353387384817502986296620681142026719356754232072796232880023539475095934500778858972839879457663462257935931530243021109474581362182554870121317068052484064927510193599949401618429876599450839239157260759279501489254409195575111085502584310453074218896316869298523824364222542603131368519223859564190294794256035416099491708140994997555987431937062301768547403005086867939628625001928496623728070275627944152687898495103790562794939367432507400790276402648403155262389088790090058894532381320297840388319458040675197729798397071909266883049816253856512932798887793261378210456310628776890933137625421927838209770798473092713073521685227992050427114978075067780724660619706078580175449025302020331324263571698127973506844354799586376431155686666381221262378259660530729436149986411696550579202039589565583699707430769162582380784324173870850122267281466887850605607840575996360147920375286527974682350272620811850724731873115461915005712768117066597500933015239260511226121772826054582287252039801344322676628191481110397828156302395980374439223905576844113094940495612000579645832642300125563210564640649716794979040542004065598696327085064398220771224616259493299584817422701809558502500757714408056945548048906577547862033397105917335493751598302138602031513981976398186775127149071722815675019444933238930630400811335160578083049385825609447883933157483331232136929225872262839541980784193111484046766510409168161578307593466431482416741997312157525160801321161306549667060639326573246307251354776322776969771938349875601403704713719064099939371096538253635723737909296474583161965661415678300087443273255325907252314272229536221721397625864010967786365833399265994415184192611400112148321828095785107951411473678716158494877130371930336207743339217639509051450495023433957708858632082203650102977095636263280776098078963914810180934866948030342993707836897910233950622976930944627167008854096661176971776625240656463007101061197478429639202182872525233143515781111500025039027218293107337393246662443612851947793587793311968438693569146610045202612768520827516333524998492998254597651018369066787353774802130807118053177077975064425643712688253847068919840982834670751790152172150010851307707922975348262110597342345547658624832017574450028547971251276404254988843776364600132876881160330205214392270146368691464158586572359930410254786514552843982590904840306163041149914825572902228766166081657994104114679129602051988582159517086144725084277354743903021292277320621205117795867377452430283106477799047254033741628132971584038040850315531167082144984577590429048415435179402352451642311412325649125405756075856651402751669635868788194092905693127185165991953003932624963012879607995141735951427034911722520273843515237531933108411535070424580189421129949843894290816405938999039059943142887107030000733383067151570353233189825854828722489817680226043111916508770682909740919627684279378042571183247216764294697433045922878773131440275017080034496937822173457469237579298138275929002967141316056780797031420317637793956342657909089825721423775786070752130186708306414743876547629398133223262131030227528026517340628648819670742075869267308274310173720401567046180949570723630341565238147626199056102938349432276376980733526536693855210443690082035783171241394245407010882779256361376322260452691472125862277959948913371670312506989361811836840495505995992680986660005247538448519734612273381886721447238102241976464558056177356857640964330561930681687031433783521013180248157860345014967225489869955091443765926794071345008212071736201688766292021549498626128188787682013435674279763680252213374148288300851291034175555219844134848097158186851139802217557678270199294813723695242897203604824505757472343799851144852995750509158279199116210669601891959522011830412540142891817086682919306990033200435620704442051733291330601517339621450222493212790246470890494742114020983543383450468740486037605348440306579786476794577628034689285731496882226059195685364510807909918492722525149198440124650057708192417619990358588529334246884210172950619871687265765396006288729229569142533055688267403213628859075593746592458549378968543229950044488381390166269761447835968800088649507799048028759767450268145860352203553339876979772608733835167744748432518114338033523659647103128123851221690320571033571621755330854884670888400793052662176398190827630934554990223117439483126620604347599617890849477299842837142377281289462439885034438979395480231004921248050643534695432833160750530254500773296131929782336795781481450946748296926691433834867315550727932301515261188051660030394985283760243484456581279402819031601351254627732727111323442922236107156532485066730416838394018879387212053900730917189774391396963505240185883197076224576216997980907594789261171336774685389895551049967572578331194438516345617568372251040691712993509132518123343818410465428302141024613364062075193842658795458474187465089178647474798556198472448371174720432680666528851853671267326447463177920482710633130622847590353980713500097679755185602498216089664441392380684046072652019911540246018977340895696195658247431323284906666001832978873539574619203680469404521457069838070670998503090990488540435366656094131533804742071563542357215368563251575321973455473340060695123235374248574878306476336061510375281432724586516469250396565405889703993034661173406653203352378328306035638314525968537277590295502882764736370047224165579306467052157567804627051138035785678229096903331338858531647978302657540821870695086863391610276130813461495970444056673361252657186139120042269628450454241545990886111524625804073064520810747293995356895450673724925881234918783427625058526084134678450236250871452407610603244541320566644207169679152511827109066028148911760950202947904996215213529240183007636306226865559609018806226482572798526280056567952442847828040905497046808366894097257339442490926571547277141153844750207359101527239115926943477013941976598375898966097282264989941060448853721851425368094669473691715222978772718837671039386785118606707414591262306273193203253673044811214922646623457598618090654319280193738962979410427525154794528078336301521135995860155988946025535644616327994425537508400994621740771810412943295923503209481691739046453543367322190329161788395355307490405748528516312457299374208679893028227345491765008202801135960242366696407852507919067406886434421965331631628337081737634492106009748251847068675885378446336875975627503624286705873659561429506305704099963801706673593737755814741472286812143422666677089679588779559530304163461015634532350132357421098700542142786911300808071706045941186428877151167897366166944531832951044139701935783064688472501628467877032439886070141058907907180826635761409516343307198579883098345094202991081974197231318050847409250592455201084396677715611163305228290040219792572934864294308721851453250838404538193769085282433382202166923093267029974274798784244134062351232242165079833890211574144448808738934563975852618953536426405014246203336847276465553749048619348926300649187975891962613273208250218947413955131126247019973885277609810675335780819899008772165336175700980498331554261111229716541651435143709849508505772637586340145315673803009901711676710339952622603674331775352484512193202291576527661017881911449130697882824527325888276389450438813808728231297896622284101572543055602084082545828079266546738065666108727238960638582549135387393456097597981279272883648559437766111077501261426003350494312038854447447893260963926504659251862541556536831007540616271709374025931416959010192639918517609751176820078089780293535653590896109415792359971340872319992147241127782579605401522184497100267576095750159822784827681028842263427821525692756401953228043843656235900361489573021086275188104394149672141864653843693063350795460674482253178136173225214585411224071028964799583578398273671293346652927509113078279214407256956891681852529632569106430066565229647189805629508984583647558028961171931502216949605039208118498163916118396897725634719746687275743117153339799818215777682682435902740371615063459360867304338855767742307074076120024209394706482110570342022105191138993297136823099769458497040853082772552557252101211874293351538149739077023784958652631545153950567612841128238217335506229071798025511988003419996845088966373852410740204864964978049667318569517992764049327790991777805802079698279625468621878546828547095186709224201642085007694905759237322562541079731435678357951593605179641631366914864528634668408002814511976229442972798665566419630149881261707236473148032113645001692882017800716156881853534932819894587153359580061094459781299209745392929711638952050209384362610657656101930600086567837349654113508240646966263676269296149890206302330094959666811320808890003578149551958692699781317079117453877015370862176609756242880383748935235263563773440547128135056379582344504479961878979922348746203617371321987041228735281507968661239426187907119642757531987536583121213824814583635755562704755563064272638473154083321959976932723603935658503877287934051028088050841164510713551738905046546065360300008564738182132260485090715554824710341834184160583423295470998438027159875627835011015059513281057612677394944678199168111143016221488943101072251257228190688208495064895825810161105360157630506224437869805572332539798353728232146674662950073533017270645496720541265632497083235642719528097619023526723924877703882040553526082299189619259638801792379433521587739480741584901427131589337582782825613164110439073457472713924025750740620637710580528556194882367472303784541659099921147582737262747184632056035248987963867522386842429462912730312561043359906281846613427460943914639255103777089599607427010946639469581967140425544279820883532401313023963615667934869345658321994225105197407067769829815073179868065907325539662660280725399558399949656065192552761068365036096125401050182739022188678841797880325368520784428810743805067467036953142849139278468020466143204443313102418571652904891147393913301687803685190210400249292893940540296878042175570118540863425807902304258647761910964747092547938910505528305680598106102011945671669723693871005809907192173988202021665735403119800222523607219291274012281052900556312069493097950864368740465416314652728620812476897936560495990064603442147690453955281603803014232320236323221157459163740315117563817010692188623187968577399001494144732410571833356626783038973340143378435443432372934840876605608303499285319125654819646248452028478774710219252910192626389041440669901109872036921617540060622866702857657089040903598711790203657917755810224243666281352467335256452277996940843550118554222102662991649466112137748498517061110960851946776995591305511034272435839326729389592437990342432649264966977041884348259312986758700553963533876728309207387938966675034073165852184620019017211684338846985996833397185751022445283017820560031247272474865512964972663450280243386869235347394812661366595840533581577403420608988016159668153893977533852042257821912295827450096358201086560939200590685918712778574765143929684850456344961734676724286535350816672932334681857663880583756805161496726348548907405902004641302902632456390657209821926213135363308330191252049001510983287004810601673101635709168546182739363193984687091558197463267627988074738690816012731138463283608286841352528337727368421441848624626979488719214651301552345564008878635378306937869307896627488551760967537222269766043079392981326533515735374786053837131737445403706684015404285242371195143740865173552472251628543858547384859421885943743978616804998437065232740978838197135458160182671101294845402188514653391885485414125262196546447554182750388994517703333039230539074345414897272644083903916604838068515737337400607097271827437327913993350359341430225101816501236400266342496531634805709514146345069084083591228150105438000818599517731272208921025212253901964127288902416014406333958655352500102660161946085720862902234901083516513230625180806496501258913561738923950906331021189233804227410737772544417716691231682281343319358294429175982105381507867649441595804981201703731459573116978637849584951325748816903526009331761429908396149902228069778320923502596239787858001850963761640367980793736895253605377431921554496165284577230910870673132393336880654537239910922554388174034358037098444141771021428179770974064694012439346154802258135835999218962362327089289966526507673227918201275133358403894395946982205076006299553117958374372823665087442824012840347605281264475586890863916012345532570582756931668747244381724387779088670667907064841055990239704303961254415475107872710007766886525196258395170746357863625224157040907276845257497828733947773402293381880671187416106855247638971265231911713382565173824187939821947215043525168581562553934171148199125741372979448310672303814955447574723285787999785543241298405470683736965546265373495536484382071682036179889598361176173475228558207344431148640435385787760515826400371091392118570156619110973302994054359377113803262872987392770997005383726604586589051087041520714609316951174984152552575833399245842029351951880759691479980724287396956954185507892084675163770200927233285344473355740900435704746545271924823722973396344354282036388336393191653676809427870926340873573814991408494012784182005439558012928312310704445891622862634436902159877008602022612261468478484054184410311246744579611848044741060825711385056639289935768554580778547408679038810366196909273303306069767427134881645296575709313389761875497448974351323999278409560256946925424769546786343129288723490049424043575113264782467463365617890665297284260633032434833779642762924244325863724002264411490826668256517872341229774304087835576991110142518796245007755388829354454504593168524976943044221376364410470173149813276418498899139684722820964169171185399106503907392091492519674465891318034948463331208404178834208426089024956487837923806519791949582355690479552023914199713686021813821659000998587861923439689068208004318976608037224122177899260679184926853186736208576408344492878689607778145365692818745778907579100571518963685079061143497175041584159491327134366577917849718026141305101238713581443724530874887960195109637261058639811588903293681566679947955449736525963386166036883947508378462888820013073940436177522435950573609169885659576479198185657445346893623395508879933694057482176408216902538315171849002474097160560485291313400400086633143384012703740453018579950618180468577066174558312489075472072731262458327882842322849788022954913919797521318867770819133427130794041264046771691625816320342332912166449761867703366222825103724522466121099826216109836780825735416281400734030696121751832638201252992469735049085175323655485461120816743551341856103803585128927725004766558619706162744410938188058647320130090919843715281434338169043721688277970385613928366030915214489571225249485106596415458041158959213996717819928275093436962165483093896746937640079392246235327035412715566511331849314841547928081574242025671639775296554730358228779408173810067625537261821251930154463008434166412597897607605405908260177362127502783785800438590090011969766735951970215515788526256756283541976590789977927351285047648085248393467945687793363101085720858215992930261268488402834831852997669030706077575063314746719929765211811893654709853645869460349574074699673474797787486872581611319160482595887664832331569132209912303978788953244524724194947951445497590878745497705852208503235473567657280831973087696564772281750583140129458646239594552926265440992138035041453685410705768136726512784399902445858535829188502000562842526438372710934382759630262720179060751162689261105619327031405826911604661430131136289668228213560559046374315147171087727775070073342862937850143563637565855143299933961031846129442621041331958965338002632835470177695492066170317203910844435320854624254554033241222840150157648969624171275516483545078895961073349467928218960128656990741312812635471590935525445003772335730063638127318086951358352284078442995494379623747681119618770367044179810005627482944646402857421469227514652026548209670996662757927196888551894216223804055615517833079022652354762465167886556273492985722320541855115773802497680292847087616552218065882827634763764088462869811075910736417656472013453072693959160462432856642271133261974504184037889181579763634162606099342751761094649594973113590101795249272558134663596138182289457835328707523681918450488804632396738048161259388465867055601072981236975544162834060000474494793377373212408838596669241913889494317003454499723503612458979190936431470813823343596730525304778192790230931862714358840237683499153563905882390755887202634678352287269732701808501391560811067679870834286897309656812838584008149927566811424186948346756486288551291209702897302438788856407758340296969330951261880469151836441977830115366643310428466250071207895086464312701253492924756433731226740560249778078807965864009017702111837197760270178840999888159527806169062531312050251031651072301095629032646762080773632885470342639499187255718783232863805851262838427513753762280532267823390852047779060442513940349855575458871503300278895852259901764782551449973278730450805881681639532176761640346412268952717851170164284596581208219715160800392406691555640552411182386460669258836898238086689786118034954617921633844679576676749527365520973452987924437031738182265944592765249354033607848574489540060706748677213838657313942583299166179495301260757578196959395744117692621623395169813196666582402902198697998854234657577816321385541615762656923163770198742926933672701126894923829957831886155886697777474293262431424106655414554503737468197474521746037969364540127598428472506144812937856992112723410806968951471945313507971136823249893866505262809123998818683419184985174372460367075250087281712329432866559526793325960353211713298853692512231896223276025258181473057982818135265095599434571685806267358960342528066779736299990580240560213686361355929760442171850370756988758470699514590403421828453111836646797677019114161938972501592585391491895387390856248339468689665280794587896060573314869872983325260595491911980420744743679902589226203232153544632548443079983734394449566493309964918205296157877790284945991558750805692152516144691289994323386212316790021497947898936957358223633578152343287529658787722314801325383345546068909579213628474639319019543789328283119814392027889325773052350837848341823980043142755970999734883514441187902275585219586512255622248021946890915660452001371225211642375700223805136329346573940436060546089547355061308434218167565039115725077802234731927584176045259036351773809259092694907302106337960244478843231300392743611746741432067262744548839609698527451661064548328218556448824793426380287102599263240199134362926790797420492527595319582600066440702073171072051555563246213803797434485816776129624746092047985371455533486323890219193901757207214732702292680687004941548695168341929205644589826889488283940652137212554037117417230035127313260209112514965252265387730355090993930584412784403608937651764857810234338058429709600308300853829910902290453175136620152062995740648616896769845275329359790129757621870575737869054823830837873892726526580907871124475967045735205174719488710826897394611504697082397810440912926292574157328525691656322350767840808124803372911122249752522592396918289130055346978518816572085687456033580327093139007623868689595932217467503647566117150619799165943105235558695395209325465742995668619526470176230696384311641599229590108538348344951459332281571145868776257417719745121889125380820603605093248142464425763475461403778958611475453822388703326557610261580437922765178930262469297728611957714291836422235706451214845314603105371328581832742974452235857089913591830724585077129547312571440753255810552665679945708333344174657056985425524462873774969988564661825682035253861574652335507847934828011738929888807760361085313875692190505787918038285178591449149344391646078134462970299225241939539357856988150376205649998008065667263153137441230770192826022399100781052762476405383202972906991116404543599418236807127407741523101021655797139767278054983073997228476384177583828864546856429304453724762820421846515549008712070169028789973006349594859627187302731358474124641844955554796237786359904697418628877365044812683302421978415624801353574656689742477996588842426578832593918953461145133204867949823178904448738119379962471830890830876455217003043096147004840009052205393702257982560086093998683437570240456488282769512940333676222853959786915240981362602092364286128485382896196078826115100197279864072530856205009861162789575788251233108262242647489891124314630773916799087524715257180948916184560382437876671717888530913708077812895729641531847051702634056170840739832206507139297893187767314852006703116078464463981727170810339735664317701848343713816967782710495162927086380584983302504328393367337333257534184092518090470892801221942820265764942006896601967163507471538856500578995351901444696970582495821561769075539562432689952783844440480039835094640009443281982805033426141195263375201214172205571745146635503944325304479848669793003339026606042088252057179559546970003465156530782430320199143615625259528050469114416713761384132619976223498470886022049902138795881711533050387505049893114227939312666057356291400889926851897233559726329817022808454499436950620277779202809896681172812317965621744120187655455296712587165994820024738315064307662084866807968573655552326067426184768872889893418908798429169665415496334582674624903652535080572557331999475372219942052918721443575456899347293226007833447348804494251353643534013844982102130376967355810286088406254756754478814980768871622858142465211820406162382841836947609318971787595485909805165398053135668174691798939494346666042729363282147610692290569071542090268955976504564084441753552776107105427073918942141206471048628298706293664860758710103220467253810355421213767490952172725097653085375267700231586083862986118087720839701118385249863931887729999168555230186666378720054809060114496125346957131766041725403893910954070272483862780367433157999099657775877544840483583343734420062126521116800686627661558132695274619140260969722449441457721052675238217877423166896210193464679281026447101658829816206237520291248565320774050846780623834093030898705136214733376677997360607465464070426469327619760615691512297505994526289855853856191145978035138546346399771833867027018811424064460788768384186745436669587718614839589155706224666091174702100264662625641118053516463177932283386623596098394870291246027689095701053120644811740217109794545235664200629264374888322184759829901306090424644913021710925229927404189281973708131212023356005136607856158726372067557724231356576822430100399722901684673734295591895451185093264079724412405484831566555183258530132850983555602849426051592212098110876714467638413418726124371404891365060794441017031665835201285141134022388789420813988358045240714114634252467867597373819833729708476926931389099582905450102394686091516564212337397480833666106215864174900705329705597050787634678288928452177672588187275262792523359058731934621667343000216559428439905313482208505087926682265749958884781162028366708200262566176369211131257164745161574767177054881323946409024566676226475546909697100960380700255487440635780594806037553919602802658369472625213202208379786402152878881772731205176350577368399957468469772095649598193851486684265384524438686916227307396458265365465593463738980704370511649348963471191320112299157130440524119087723399126709320360737777214165700683597147662852186686982823849256078545405837960043118045386615011776086930955553168354524381576531953933575967662566006730910408502581214270378196523378818064227291484063209691747768550491728670056252947617645289082092300605817965769203588578439075711672087712199675076287993702586443101094491171749373406981274679592846042868172250384859241240728669816562278757925437012914575670659204533863451489153697069242444453928635478039210770557414402687884289542633753793547262191788909210208814623520498914529118436781154318188517084726297171398001821114093754631712401972152323728643246664282361002431767722571764641463951614585417739854175507028273406129351857538498907844327300839263804466185104984627835960684197996721631651779182842435778893371677938946795209634246870706509176957717462403286017072638879898426325168585272887267468969430475961391319033865827844739897268233817266870756071458441768707934606375358200510723752462231930354784075383178638954061789647723700893265673106030178009291834054221874393192238508908309781141778524080164942991479347560435170842244248921806033342810445224128260308708809700268630243851749309747117167398130754040357734121078763721193612387579361215210203153856786819563883566979867614005499048507330968906084008307432877977044606083172030450054883069100920665781644296603363755854607218381702617952616481715654999990951513964637495329268052910832729088157277092700180520869229719575623872746822321827853408417191753738593902370582700419472517979972576671446172761555066718684952559986207245331511100594570170234556777622801614906267271523619355265581770147596429904420465048297679567210045004658631516894807529551011793377671687646122494244554604014087016794045208785174713935949638858523525879844749869606328041553596998265135994259252550553803265369785363328452421579343442825866301998281438331402227209706109947887047768915911603052622851244073784253363981053069496323244392758161272691022724201727781839811511796766089644523337615191468710800847382416138370537294934596440636674328389870528039461232146503237288814836197155409337485361011469300253859410270609596815542234502847045219138445148012277013971365300149182127300341196503092849015139064025205933242426289553233012028813283135731460415382526112369721035521923849959532131763892150168551965389725127877671800007550235702445993760520257928253113617487766370428848767178491915497200009351083123157652878669621547134472650389563912139367257263862432988963089805989510642805328256233189119058810796386285099989792562114201308546140596849862744832132587285788102542176963466691133711855328160284973012488269478798372432378747780021576914598307940149507143752104710167586127215630573158190023638306846890173392299051206614927184833438808247133655583361205298216176518892774744850060995286676266615947449805938884327520675462281874813880782307163129339389752070972921342075980611757827328676615749436570335761416290271422962802076496292224505234433224692156867192803777113997084452571861969164445511081199548918037980447589952502303799140338042068097084154756472622179172361544969092237420557297262268185201637095082784334140600804114597248603992918567247521485980883398079838970529372842927757719922149584198061332720206193013996412591138515028634186224126514701226769327962299427741772933254814746742639493814330596146763585575663386308114911483601879855272126832947890009171871916928560719111674686218212683934818658277555914386537118244909898929995171899611197327457920193864546767463656610996339971511730358324599917232891515671258561699306664888834721190466715367669802321501109755951028793996310654361968024407957694973427785713787302195182943652322074129678918552283154210654599244416559241264027790124710893377501396242036768324927931361367963319611780994876876746620125449704739596692851219769695523912036515910851230921658676056977847855849779502036629023435628327709688076226909015878437742005530274847176990391558286791595114920279874629040506103160106331362862687783346751104228197263446725536383523134255090607310915420250161623483543315866708942468270129797775132894959189468135602184829824574498610523809298546131911124319062816277120817771202146072197001039884393305115357522246885795575926750747163772443331479985043460576403691270419596569301722005270011772728679025820450998325176317860632975264382751326975752047985573460543241996037232068795380407322785795462901602160481249806738734502688793342648268546199588221948368405856757963732040040217718318186392529686777283500625262357930979841966740597875240529310717862436589691702649835825953623924465465076677462535792175803428847426369686412374988669434391169062160771982803559941650120975326466398578405638426345738085297236435051893918495524473812999939526284182338802623690155951620757378306673786908520509157546644851983607472946198410706475876988550350195113260677865453153038930331021502425203038568802405714320758489873757413594885196068782708287663636550965255137047579303069971002885035158278673822283376106518338626420434385290124991408188460755027201979841204877378725569965551096575876759836404174509322826574602004487209584638628206329479182299992564631528277386935169337931505170684215259246947335402670315794019520180004998441109679344905490999113288168774446751106247307954293121555360215926614377428752409965448538704275645809372180198926166225946704981537283145658180775574122082175677185347070610421481636600996508696761366190756472130262772715168957487169582091267692093203837910816999838475700350904581206177055939338734907053116965916571140110339343617995626984676257572994846598682085158473639772692935341868258936086228877834522760833225983994193426799420500264206610482375865556682593931427720758981213129758936716373257823149005859469636773783856762267077240168165658686618593349485169921206478232370835289061942813125567512719260321991127475348561220392105069436999917359079828163143081394099210485635493245240842499028160155168307416671665814613169101924401415929674301059654112638240831241865410745033394748396565549293845972145669941831851115399515302059945055440201040245577960736154981682008305386075810444969401612943649206370389490878695320840634596052613168898118639587796485909999318880100749532779935730251938844250141047306015378857412269455937194053263330808618437107321573512423410532725014966140478546063021909925267516966548682514587309400020089551805362334604311698834825310753695462307591405387369040769712790827349088019168755914367949402405579812096608095363355459706684224050043561664071218127108092040581566883227468942153602141879145417012570235155756963166764639650110526097415340572536362841730239542453102124221493183423726949865640846822496739459717452103576868812157111498290448430083783663103158334364613526724082756930848224465587570659965286283809026621340506681183462763171699285294466930881938300783924315933576491177964507274129528132735352299422127503014379053185146568879520207460646922968850944733753615738248064087423699550939363936901606708760646380146372757254369499083690419455646212254001568706561097304062518480830825137449867059330723527017076845648170550767466332226644011933626558608830149733260016259989605761522932540323627056288405680383174132146698639806714992486217983898950582988696019925579568424024075894031170710302057339235984306402624747831859375411312039490978377127117383774159114146452231491440242458918472546592332580280475119571244322302890942375689865136105350219172308847462152318820323769850900398452612275241297463533920888856978736366231611408242886188640684163791527888887672383454019970858892158494515768061180521193220395634472365708751292707883265432598090565690892629148845402650856755055192004072306291477763411821774700040782638991091329242211540579546034381334125423147447260819269461433417520142346312272824889425052736055948385033987306229222028201454629921020471680519766522743926826075688240678207724679823173863965667856407892380156335224244318331485385867366904369322549200907581688647957166707727036848135655089991864645311782178111245858018225982176262573448157675935343979553135206725898368214782636529573135753406646192103045912351515768077121943542010939182828494463877629852914262697458219819312901467857766049065969813801634444605249386597060631175881112976540329136732743008997681633756267000571759806503965639127164973078589171456128461854985714625880268693366236113061415472458364986485329748496543633647233292431376200963660971291687286188495414750983796107514566103377247503240249585166006045286724063312953211558488932822701502075319935189105739422742882611909347203514864275003113797528944837735252814335665773355916019485151324109935002728501312835206998317644590430982792819590659121603859304841367154151107600100629163373953457278625433841828999145528223377865360408183475636740254986902536071951563983581358807982519395344726721599021925347537255914192445630352007413983020963586111731258962759118974617072934308237257753909757781484896149416062784125621520777145214394720198393000362349451235502413749613750410196533535281127272247650083859796416382126578811651391239922468459896611473220711642914049960984177113289863353463642489685628011756784736097966248114851962338029923086052359668411846378441278972706845852264687743076489598790324038766413064351778566758615728968218834088528238030410775548157826746707346991184584940588669216063921553130725443342647281143815322095536611732758447559248993537584820018649637994681696789434055314542088233780664508243655830637829956699162442425493617152361826958191037789791107502380178912686772394865718373827481882091375771969746279159874182697013235780611730602572763022001483779699176343666875617326566588668645070149663764747525357550152410812431143314907825606747206331795565326713517958343384452422353686167343917166023405223432222689640244173921578612903676080074751045582112138930978258720051695544851418697044518928759600878653061175483575473412418814446661939899040236629760466924057785638897076738810645392991822165928407530181218087653831050971600034620841096104048729482270296929282746406831810567455509020016784483069541382761572700752343706937853988351317094093504088636179189653479363692972058317668390622922365658675715799170973895139806718962557200568883400968702960806688167972330416065845444239100288105226666923474188941755898823281686439011216128174332499956923400147153340071384343703186087528027674410262460820178230873176317995882312251086965954851459700082587509237547723136653469714346245623567093503518764216529337509309627415042703969949071290020086697758468572359195936350587885864291412368951610282252507370898503155754711196085696430775271886039618334547802938277165412983472840097174252996573247325546594957865352154498610744696164404758687071216672438616215914853846164802883320155490536350674782789820161984801718658285995820335611824809051198261468888166837117454278798080568928779302484600052519005804284195437927599311071883900085379814451368546183185306095808762203794551895799620700078088753155259926241168820704514524257902642253746600240786383054794051305189416444103964206840717681220868108577675881603604039602643740635864870011358776586360376676989307631236469471633197668544352495171563416522261451972431254086765492956353099055506848235973310594041473242323195689773051675992204948991519216692376485958695994597298690751676414013935798956332418962988584737745986966177018181730197850358029268581792095611370948499271124751761418767909225685418613607074980068239261175775653522421722576390110399525694381088595995571522884303197664890902173288147441991738779369959048442345413830477193524356389800396605272024919045127649086176719956617984445602502946700283094199536553754769513331128523531614757170031623944982988040587769069032753516598026594286524938100243717923724535251271238877034033125545351812635650122065412568559500358896926704298516922480769797012880678826604695081621186034269040848169939010278709805711196186525929470295523489352950745048351001821240700684628761011235848177989045228085645676853538226959247639356334996624354522268980704802068946715039016435111268621827785218966575558680160458223889786038696730356363555907611528635024947185110532018537788031463716389917054453431469725104069817507628278237823134312707892907502352296639133607971505243536956553463339832302577687275427768824157425191595886550020814306231888680861537189457389370537932906587880574927496754684751550292982091707986481333545151858358771629946223507087718092646794279646121161125319518362162063730711523576689009761804548518584141941101459171437792223512954838519373552458914062257084880681458127010721407268700656080161157635500897172009794179594869877534357780892221245478083301225851113406727486390574087231722038339698761760694620083773839693144295403276868156840356024020703910092646622187914368769328511692434889100033843939076625089935094879369507034570383175843567864214896261812335643713002197165523378246111037028726063937582410843531947181146831991160267588418823617903653849445114499500037673573950782553696444401390014016972233382932935056932897614350712392916221647476044101205236286601555242492147548555469500778023023737706513084631195057673215116935262993914188866992027171842677814568501658337648147479958261702699544418225290369041508678485506422284545451782824125833034078785717374956361876203578538381557032043991662328321449274838172919985116973916481388984363145049357150158855393816078601077237569074468536394470146249633036577363735531193943616496554744959815374011560844338645364027136090047715003331458614368767905700403944386456857922110641467662480010806487966736408501754582658682804543656638581903849542227295284879712018855498419877707651812595428428459212767002948872237198271156814268970801395308693663486616239066919254176204716552453281785105651460322693792057297345471827272926454354903711211546161033388238680071861170796358826726183906966322786437381204497233375350628385799740170355872154873586036885146468557113003490971291166656116594419598522006716378154674046237056811407581327955121472134202934573844673547185288516694715981061821464655310341782884741293809121074141774621735296467546367424757923145405464435050514430639817709926893213537315106949932589581559555551636170391245716160066140094103618311392570453913043826636974237081810809681967395236829063289396200594766230958053225902031280618218439922749609117954418486365159733705830117382886210405970576086678264966369077935757376829863469507088325484488815840740008286249133990362878692840443405794046422608392204050377817229234823579815233468502425201827695826722977709799291359182566440465639635378572598688608662619272400256794089009950966314202285757426252753168769833711934802834663219164071590650142255732246600758814200613521397055571323554073814812145250881474188514811158321187422126085044536232505262571624837689699925984177248334262925960754054037679935957205485048490462824097268297702604227116222204886374658081990201907808788732497546919995820207647031067265667091905393698119756393885099700232822211496591716054372845070591473177262886850775557773970141033544014401228106604154482189461631808440739984551334832065650459543826996716317531398815014448032047006685792229464808643349674480997619519748251251304469198366757778768975235241609614583042298286268642692038711143432402234992266325518124256114534389805949447088392925521691888757230578362053745176545677572658370817362271499790933621023178969831911351645838067190996376223195438680270338554800341372896541331858105809931824988126565746313674107570763999905224932009874960960484243989657145705337847172570869734606277613488466689732078751869323586292867948698065087355682363580325604178738873347115760087413427104771711421963112033328345224744324289349752183614398263099016222025865083356993383391512772755403138015851939108894836788682112016479529404048867216490495985429371614750612671690515127483980188808892608036671804525876300535650142657177965612914909972316488811704579950901731000342489359778556664332334894462411776134538083236916903758247547492203501664562103028187352289867112074665489647648142170939231978233565920400322210819164301366405573392673374216023797356023867384752186139269065202360919044306468204466748992319388775686723301127761049089192297083834838997569025540745031983485232855434051914179900225658740927984162271333599249405375349913300991510140126977296399891961966338789652475093456777365339060839145053219108584049407808225701963959130598897864108012730645455932283888471108453308622230565957967135965544836087056228974847274155915749038451785193710069969537840617779700941729645634036842509850381881696854580975806866920836570206826327185497358123864384631253922791822427558391440068959112158500889588488771061920798961921984824354602182557741617456282180457869758059374060522084663715634378437493709932170666857874453870451793099120760562624546889971996769457505568794165043737835863748269428252674543163504658847941163639580831974509964460424368124484347951009148511226835417898533319540953162648624633366767108122867143220833461778345435542436858684360978192937440053311726320957465539778190920822059595323251812088669988675340749832186242655592281207505897227899320262536498013514082694594561256465726803853608972077216643924212053344476468465510891253544884400701416393627418641955567107762959080317630431795657365721626395285399325473274716017022342793725732368425263395441182169549129181719928784198227239901570059695342631196293525727762146354365619107469681731221956716959604490437253314694813424105421628562684458549943096959628629691127956692258681471641686746521655309628644743898436374057301423674104019133681968409353407863972126066818708689839368627875042757788659864642997908242620818800770793453081270529506110912445602199810055398113323105554245865662016657328599823766355362037483397045790386197185691956536515636503035883879860762007590740714308047533487993808807982409269631826193955043844624930508757875016903276171028046025468637346201125323573108866546370073681320634276492496636568035881400563867460277745900026322694500140422718976887835598535495405518217324758900447192310621602058749344976073597941346074060489258894938114397161165910686569766521497766825390842193823849602658189237031373541648979762777522414921986642635978279281203499064586017367157049652886058868397175354686210168797126798519165646389294395908063173675342129614460263460044613103806205012711397187041257160265185701623465099059687692929972438058637069464265597336078138815863955140221015431366777016239113848878752853428257831719883856300168112121746946654461668436284760595099554939549618515708403090404371512708253838475485694261458385041888579209730648117647043141206356438278185816207404636599597432886534813267004983619952249651401429146649140541266768694900496259289705210452650358830004400795155414124028978026968786557213224708025221416491094434019646256434901012122428634240993917937618675621205327472434960088319492208921113020866166834516189489120389768094881779989871349791107055844886582930165277560081027527054410732361034949899727836166951835018137267682174017929026796730717492452897543771563876672420548208219770212217045314681659148527035013700051058666181637129539653113584716993098475907796217442002343372881201673326495652404507855935956732308557548668414236095823210780118721516156226374997725678291228172900278588741375771596837065188529731818974905501760224708850157471330604604850540720757629495707693551103744289396507172559148315510761602835059499633856252932043191767578595557697056474287429443349346813382529284936348784307868028266409437115155081039876147332004645288206819551133756833549295194103621097014968564866908994131100162758387165129829587982239380948642442759088450398850111313468593788726485609963978380824783392926317799329366805699807306829189514648936764403117265543977787634006692952076969402964041251877211756015716898127563053160375098397218482458361733657098564371368228284221319586509064091277666355628919381326423272468153076233814543211285724862108439220134604649150558513822206109337185021811098689554518842665412624752222745785630225201702301805279210877217931383048371931989992529670756277514016968097144303049018325475785982346387900764410854717150924875912757125597330416837932250882928064867166571544035214771123306055502666023807717124182857345674986666672673245293474400251061980744137447331841320489512847134490233552154996645085567150498829164300784362607049991832627747703784212164596101623997750860894891833987017639736422226698303954993444205940835308147485380484206373311261230689907718902414130419642911257157036945323208726162947738903658144764460015535794896998927775066491259345045022771007927139483514279310301456299211634500834392878908211144544639460859365140505217955007316454039249416774859017966317236518176801146485337431064414619330886710084094653489413092167034474784575293992068927123099320313488675910359044809502035057335072845003343437477774794533970316389953851218687191855761797477269697425354039343469654719192009826145493180149034518998466574610786964863860738634183935188844881047514332272805384879685906772865549554848466031460020750029625662183607132458112450105546088384880932837004135769009091341311853555635512897167076679922910506222560919310911863795980352112047388801841895845099992589456098528321764248140969356197138671414941758872985125936791588199422432295986842183613978540781820245511778523794140340614190883829030919913804865038602443884934053329747941556051762307042884173419170007287963187033792461793748876017698903883092153155331265855187764825111340485866739552503321679632296033496630069233520041626978073222174765983408743228861859886567846094811289978519650434606909555424987367542233350825887752471279416832819867631739667648010290012942515298519072262796943328125212082428065151876888873900252629372042918811388339656529727684069604954014164488008007040931080067040008865134618243113207299630028588490940918288826859271178601007049816770705620708103700929912607226534389401141283773481838810694041881621908889725835303874621200180057964470148328741645277260361630909245779427638998003592874336168355053756380257807055073253267497137994943178989101042670799717709796535154366478644648829903987142347502999599399973209441065725433492863804390368621687706731807185622035160579096761458785004712573452649875438399175906439147775567307499091020977157198934836956554499306286319665853644151480913551274528541520222757000878837215460804799382871170307029838234765272919071915978076883844375446204595213065060861749823496034849337211807881028463178655790390025576561576855240725984354053413742751247497704187674677509991898101255184129005508506729856516350689721785571490264838445406738972381044144305086153189412486234854336035216536704227398401682403427012292928590794571731054780601719126064079319165919620200152796629083543921863549978099496671917741339659330561853814811259529802545103875916874117967391625182095532964443137968772195721898558102562232282294668643827935157476172547904642876181982724464544041241801458369130188417514206244209078791961397945142416536739750020586250822235991285651733500583460080103840140441409366621350107146728978031427153960015110417456209664829654928544603632230437059025424728262535951482076759393672722757542416922270838040965029404860030284623233454005948497830274840036796181256660328575430410643905565055862409775248038222309906557784331112631452930788299685260586248381594480798087050274648741695125775890525020207685211623798982809992396171629523064403244584441008566576508503937589760741128910119092139955768895823698178423584628800983085830884688130451021882229844529191093191540476270501232532207700196476577421478472402172542401252530245095239181960374124698128715464051899401890660274352204160874759307931661057023914681737313601535288283526938918717091794841932067451411367926803668437448321655791212679706638526992551458659169854056152366285626294470558435407166734121596694442236743017763358707778569103703674679569697901650634563876089557576866517604120650921440620179563511488459143329285547543948830549251045491425408088383382954197792284346760024747941208665386440139626747421241004193996524180258190434375603859148949804132300515218523274706947713119581399968675719536735628864895715316314108109929122339631233572918053057502652853489644240402697467671131617369738404062964821327828125003960515105586598432137039134251801208325562772902591075385032338558416367879444282045088553182460617105954862718830723036622705683463527085894267181806828914194586580775043431354789715789077156873586861360824960875926583826409398147142539282642571704328211269219219102872171552769997806148383342806093470594512712291512165404732478836832276719219716635278962535489176795899156374915820988437481157904687215594809855084754926276768173748342837154340049857242419690602529338907378469541001484035491914648923581869998533049753678285164155386566786232107664763110517864883289833946528511308838750927552518444637660809371680365572337937991153257344341354886628302843816367560730450891104921595064572620030865332577127826346593153853877993823081725632835647810450547997164688633888571590148490518214208491777749506404238610386681570664781416158318422533128807375086797250559130605060047820757219974566177306675277420113123518900118664757125588526724051800682698338275485164163741784466313035556475555534303756717911205150234759320500540829720338754826202975943205451243737045094480251529347398480815401294284071572188285477742231508170439388416708479892799200457847291519665294815140228920530489656878103232726232479357837204330396562638919786523669529000588021102622893769671598544497916612370727405653617854005307150471557657039347819912581375404412768513388543264426237484600460741187060845846697313003743607382891832829806855946049720497529365119846191146714356745368008175008832103748781754723078484623408981596967243828471804910412756151678262674487937912621955684340189007090178606441321796166492161036385921195291944060504934398107527043717471588239502220172366100830023879731937823045116112520039256481418784347399745631385749692952211546717585670052579214527511544463625805367795270361879168682806555254137764187594179136438903474868697527066209451714529518430542647935596355765237222985090588810294344498890615555552358483544677419480853971579234068577006635802093330528674387252911658168589313371888008048200819707336374277500803662996162608167661793062380472178069545688666428348717030955574478058104460275028006358026953059915450102913571984899944591332986981544353822202273646690567878854867178030639661759590430377473993264521385026129963269954465385823890544559271075403855850223564142106756058254819553014560004185484012778531794109545508967458422621152641596809600983028445691040596706157814270421242124181516635535244427929457770586723049924303024463663697165821485039492217818737566790094316779956063257470782092967689022016903444042487417235108126539276472745342679316663926629132612957974647349859258516693217262683675908694634123037911420979984953292399397060805179137952627464295443492915223651382121933712413985732302114723813917148629359653966735861240404425900818326957277212813138121047439711478214398074478846049239616764502789126531010216973145728594865571054895863693831406740195133882495581827379323369380655120045278898735240579537573019400409230247916743504890991825479547258451477628005409450044745074799466015204582046764140247769963353130114646898793462088640966858004171339794826249425343266294444017833450600942245935213485024820667289687784588899220766041921040375030425449595579064072398878142247468914140411846394294249304647256979076773436651839100723208438512466623305145279635422564168509426204316224853027608149768233522164191444038097912435465046456795052458034369223045780767760474753728642378074110687267571112799882642372124237036136139210258395063389336985072729855655614475801985577384577192969820833542480205476442155461066893002501008771219209163105185058728283042250919648763989950681139000606194899449072830754069632086422819753449478440256338431934219360140705303804152402640117244073507087769776999509440259638456189276339794478926316618074477574239206419480867269137705977959357924652835387250282645473216101374942673595721982682783674007445618891164151627695661898817972347234230275063969569466275900713833950067872815618657792573492961344596792951974872268683522783896683144376380766514768547463559021660456847355954426140067815562599147037477547392478912288777183712752752120801753078995646380903050450262652592453034645287837016699517946848357466680425129247538521233697082924831150632804137335217787775988775841560914064381996421190742708548539692409055784634443995224634920887773426788961720470142699960961052453247298567029694981364791436701378582879802970981431188179592735140920460632902201045823304636577765598520202144284999908768121015666319419502350209932806465048631115329706992844189363588001513742960379646211556432895548584768450586025853612904434428318146195311814107907381727854439776292038972218434002567824657532598480328191830832837154625443251878255776344083505899235368994368460947644886538690256294860187748488344917988720411100612965320126707340432065371223219561270175478572439781916171692083239268044788039602207636044356923611086442457798615936979823893297553686282637783523135202772773425513118258647802770551414779736199655470960040335612747324389122330014800832086824426883641945254401236418443222606004380285452695407916972922620203859727778544569000993455174784360790916922705274968150410970363654389568390977925390509825500757278727698479853178809650128589988527813644041015768397794187007033511811933187889723605737523460101411617866652596466282326440735682724639785879094279475551021697892637388387505804097051224904679985628991893589772129217555972292758421850719304749676424700338140996291128829131506398965353194656274669129300537180953912092986702178045915347740688889763429179739072919610831369136383726349404213201339535646254074961037493169524307568741541352753193658746390009567924132003330079781260032219798007568063938125053911776489759732590924221140447022114422296346708702260992671929272171147625421939762181791691393969899609029430572000877577350166816925557952885510662865526539006978752455131670799024677264934889529401367849919248890501022106193138502832057593898777519680079443210256065645515831368600914066643115316631444210705913254366613654072768852916334936263083350448432361133769516356734432922141846983169961198284590471061943608390300084723691506521909797110051537129506568485691875110708359461306990797999069178497874873872967286361798037842289271833738515680212013354134317627514452695410042075642503477362252596492959783752244473489995974236265634465314778675968377968611110892307279579475111374028619655005250041956400131112968748097957102513659718824722125562167325286495219929926804796511755940013568322821736819433640057460144544184829868439609895411452927234789560612071683101906318038718267431763412755299252497037257529315712742487851653031859790776302308686076100026897844175827976229154633243432396919729518981822692386151378772662055931261403788842115877816308180284294774292226883339355297743789793508331221888633935356041828691080266586864271573247259367186201481904508757100571536678371787856993162708622947684428054729668907057224330763586480836622568798433969802495868554103502122687243886844289858944467079023067491178778597553933347973820891254739707249619871894117516334684756107839406323519287808503223796105308125368218987442299744659175238121162110829761778491614733950437925379653463681754722121386590770417185039941416201844799941233034863631605315998274012116282264732666535508928274640475378853973016314339868705251117811887615078592451048923783881142788644174467520404710190217223426694894717348441157737391721394037425944045486406059445168301534871709830897321228760250681041372145661578467743827385014710135362465943080155521728653135324345159531175201438466532305814910198119998774116373925097981037903712566861369851749095539936896590483802221836447129084520075111225468886850330897851041943718882323193213134901067079657254740602046933333863448540603321079830147560999546026256227008942721789525277576227226680975170631270430098832339089213740906858552498339953201512118818855774710007559532194051811399692190391880079379243578603530397441102483480546844900721845176781532312330670274275410774751927460675960028292570267397743582284355130900428203929244026232166417448820487763799809417788295740804738442741786820551426986498674604528236380874666406513381010156824074030617403892016034908220310377863428482927973636725692124946767813211936802468729152797815085304503603087113436477546634387742444079436267364478848668106058578062768457528687195631023934483019258136678166235783030185075613043508152459212307624465813673658358814072568588078506314925101731804462872300769917834930020455396260839342334188159069346542593064821480554930717900349734054474375462946776242888690025137276106986201335678384700485955737619307994211307666777191771310169861864103896386879703959161105473660185383607717686996014293758484310062082446718823986648075443265451586441431294252547639858489008817597261132104914731048782413603882269762883596955976035445238874754708973201487021959387975365846602348381790797178048955330027111610737659304554843853680700742331292363587499345622692469423583142770027290765647186237665165439701438041178256589759890729879513116606692872253764201391194808660255169625593594963679817562248687912654433178246540683208092756559488210390319616428238175293200405139413105502975642550601104964391750424589654445521688293481663197810813399644775122919896640209280219277662383096579075377771276259509914712056950584141761578143983475124074326900087273781180107864356948231957734761537350565745942602652590116713860827834727622322723233867474667606729453901572106533587110083110077218002868026555545477320573945128026502984940914864593091013557828728757862276011407716996138485225574225542190544768713733773598627563030665287152552238050187890566568137838815960932099421108498306391183837775960909360264315068018598243791052359618702849218573939440165872970776075220750320161802296842193297376997238982963630484224741191887925466448422225960228190327703011998194579981223176953786705516955414447905272708323026563828901573693245476204272280678955802264882581336043284240889156138811914437329222420171987961791387903630289770219451778990800769816029481283552125773183620835575658523891207275153845128550852905358044240396388187565050556403967582763857139826060403363265004894063824813989110727565033273270389696903505009873541366067314737551867759764256191526451906040921202096739791067385816023788670012897694794675733977667953713476435303980477972701454746265486202548984450643233374708658500626017101553676451546596332188621600943093322095525950214356978087511609108382899914419311414047202230695424716651034466228521437636244367799387438949093378567590207376651306431693261225462746052676160027899075234830545968448163093561605918653637994119327353228899695318565197525083731933425556318757547228353081491984412739594098617813974869138287439297402545476540930508708129809808389800418351373491507625230384224004090631376678670225404001804409104693833295714920171622210684543590921333446250597257775593247969739295218356119790929539811323875805468786534933570638525116841818053234958035275815493251219292590647863687621330132531496462353197146923564715123859330997860084251169832085820400568082592075213934722741322267763787356915754075532644761274282297911552731885718253909916599945649416010314937108119951120656174259752348543781261210795463719410045207401963978495334224091227325111173545212872591301089255036435122551546380736596354974485024850194191718742578389390180788083175563184696975948438436490126726659159859903948240040866596882334921893723301501978985733423740483712389832427544013944517102590626426653967639031577383426795080308034549250425010284503865610202498206436539703200009732729876496195734391088650874151112778950387543895791092145347267368836819123591537652916325925637967155513872550193823763080389432068510919444278418982199193273759376956826625222114831725097328699110673262602012249600232216335757175546480884597242532423310724005926908537023647478086999860687843594293350813320073967485164756573066410095395293565955456469088743642456487895175688176432073687676577267188504959937896384737457282004063771591258391168857904307307828800374972167673555015922283391502973151871349636126268794256999982208701061469702350701904352941576957893837048346905739861159231950739099194073768860544749395954327517206230336293891218605867166707631409668185092996854368737268472662532138176886250723114133294253640384182820848853207241197747500082238834081643633208857851476657412945285378056918662729506778864576057276923860574898844406452420556791829808111287196602513944279178937993158413357812563751901226177867195806415173324086992283584304493741012456097868363554501057119820846367135518341011701724195424610186990823457622197193340680075113459698076381745442039216616138111114144315397066592670402640651836558871957921007190900810776358794443664092162412266482428435101208181856944206087482264259639405251279441239617088310432183819711165922660099417260791641704306337793751980916677657655667501269955583639144753197808045937313702794334912093218137323287240616234415266404524900919421898264011811418193431716388200080169058126999534889994447810742417058794596893755043738475428286053443931742380454700752958949250320203761626717117686807259495096159098510432636506990374001039273905185717380045055974061650219593365420794623367789200155867267617974460430720789783541205679490568479519346144874260411555369575618275540435407392216640442231074040908918327742515128092547662753345852966876315218071551567246452200387610289894113405326895767899062079677140090988290870323800332373757595069082894317839435912115476595097633035955430908250152580621590949856598766964006050576682025639657031927824885219965304804643774475159892827706511432947909649858383478490722545820692752755534617372182971120650338509090224856299391452269619428785959772338791300314381204415088524535295557242582990385650017009053167892740977648861625617987625513934316595290736007165585572270680915185467944994925383611374691074931186419810559097871598903830616307855126245054197221855333767262492147389848902068524249317281332496703051792209222491028309283068226961356082424818232311835120351193661542623360397832435815265182547844490094393508522146724007722671785812723426741231524952482830630764419926849874583156141363247102242622796772058346934909066264297526976606551542372339545601620155092290314747780491954784562467408051740206150865115861774231558091979927194304070602155952813511749594878339723040348999740525002931915268158080133139768465612735685458342389188568494148744298766227735412801949604220468924551464626682257552248051303196179871984860650621061702195212607649739986225639365638866569859543622143405693455428819668646460583548076705105647438683236029734131761134220049150830897515873361203612201751137132899685126147763673675093196250951236389058077375873809722759141034264064942676440976264547600055555614676420271927692734683009182246097857191823976616375801381314350429917182928503081729808219538075375309847240665944207743184798527372583530216543017218232560946907740111493094554003610632292932957341738831396753094281906553588028216508176836324545576219918168809396538129304715869315437015798291280112656740439491934591663849070925142188400196619087179463972721613756529432206824747073964420484275986622098721966558747669740100072546239989442077224266286741001864433070704536499972135119522602604061521525111071058162628265678422726404196542955722384417390828308718183491348074325501447586967907363981096995514510282966674483278177141448779125919696907769284805645045316199995909382673498463753910401853251862147673718639208920039718771431409224137583656609391442569912048101760630722275171824165796899710226999053092149136906040802036537326116300098613174893660697819858849835310241372542628287396469362275242793919817646343062436160771282683268908790642659220509044623212796285518654102070290156438642938885816204797551206667043940339523339835546932665849749122908945025676962192521222278625543367178799627919391498248070173304034328662002735366418146904600434907222288762479871521320626369910662263074134439766055754667544617126043246977782875288367542968126585789796183257468067831144216890530849689860638856158203006197682524947325078713374661422825354055334693159829664736860495094778939516652916507005012491181990245612755603638078124012998468721820272335463892879752428682992997339932418909843589852869061836573744974222583594218372555540897943421629303468334749000152365844240869934356688022714806321197090265914064353162025448839600876217110311095703506212817035693110953510506851760933646607747613403807881861423696153318515556593418523827637000174166439925577638277384184559377861290153226696603725330496802843079795953400710289914460007136747716969120465535691944008855434860737092205382290612507786105895867026256641753617531816775472798224805783517673732206371281580751467464288868469612242533952350260482276072035203952209550378379466253260261650060100946833736741524890795982617771251328419220725520745594508753840567031411486944977266071992908152266438548867552607955146913301691962849699671898839182608713858607889577622395316551033207705290676325826828750474680675114525704910856137529151312199013184636163504326568510222006194343126247128951365527741715519415961759364071901571934065058023248428100718674759200819776349951991421339542895242582575118172998441829877239684006091626332324697251271430840927356419473917975793378673507795566352005854205970083963376027929266760681828694999421224693643700713589928225169151071982814594935929580012469676713122595718613234272269161129213724914567693632648740850457680111826767597166169031076483094202234680390876659994101026463043882189540984106068996427691263066711006990970159750137987490760222451289328881244974770410668091920538570765660392670551605059733318706502934198024285764989857263053674381977656748205934911441318077485772585670996142649107708321568393370544548088515340697739863591931235238961794323316961773044196601009872413903517876273300449630699088387246006129535069479066978995754450454625008801591483914637991515456770271091717451681026420597253496192231355698723564084342500295638410307019456497357458854445467478148674545561242467660977764948831340793118742350977046545865765054246594358063568687729215610527905628202596685359322243402775549253161226450238360033936911718231822186405600319304189200445322104214770543019084569862524688406760478921346466415463479693345055706810130271596705666599364426798863377694968114372317442891354224988206640557467593976812299904673986511611368240035331697321238008345856790117925156536664601893002786373024813575776502559385053863123898585904394771350806138505098911880008262921217571502994245979242558039691762211170540482488542722122151125860444333767712632900209698489765612989200804259144324359602394480733428127045553618200617246029515571379223844975275671996849191169355410893640048883840005794230479825484096864443644772067428167352686380125511341153186584105169020957484614030548559290513621069985416608396595289111666289451943268577041272974548410060468549762346832982848457157891688557361593390439740804775354731894165602808219931215852607240791425759409060308464125599342661907932971210879217764436072485846751224207555374066181057684360239948264522855183026793173572917530399906059725221579131861691098256029079133213111301691588849281908369306497034250214629743610775212070961939559778242691794992188288776781874835063221571610022678251221331532561930187024091515938003817473157486581042032214173332265132482227357384416187934972570694564607458056737201921746509739863915262555471744185525661039919666283771486408152154949550671723650159999993201397531561987503496717788449808327233734259205004677774141726283390659834163170322303348037697452304204901776502656604166056617670870576195686303937149467255726195279593540549131194163434325204144861125126023535195662557513523004349205956762569025673171320622651874089455380284320483681844789276769940885078048651813535525125997619217917659788873719612898364885717130820114996763702033456751746049079627572287879109509961374403082712349280323077667123334325618260694527298231176630200398875492391841361653508274380815555882110474514812028390189240793708813568932865095591354854783958096260841833149200049293622595735821757038403945771128959450970308000597071682766850794303070336610577377035435678998337419493146224960418627266891803023697687377390212938976730223169657833032653208856994780723674292680453860634091342243115273712921954512725933574014841208669375635015300915711915032267359954322830124738497715423759413715482785058421890701294345001400052781619487644067180638285123506608246296279991389905510734468338054545068879912787833837087513774420874282014229425795414941803598442611033976349609550419416004949541213455701257462135302825077449711290871580803940572958631358386087005202735870400769461040530079586785542398678710590723823321181709297404027236803050298705817091884161940870188932377032035464707406153365555655477729186841167790783588646094932859292379036045149319539178865209811841674465909948223386279375231260739374972591156741582695574551114109540726278526817090373377265252156383832659209640090084512233950925866144226314870771359089449581182861185151549316395907571729547844373581168598461186947385734756503324079379100681680020672088511064712274475745886479648465229755202181338205202626937369176356317498990377170099638166279226236355373230206436640926005726804218434102729950937363772428238851979660221024025481302904380026169959431410084262011955873317943819544157545948932201371214013246891152944354637002946728698458424577974300323927376884923137184925302801127168882749970850267816625339798292554206417434234463466166284586821225304181911261527352373268394861811134764041824254231528522644659180408765441956934430963157059684520387813897526564026159920916827546591789596222732509511952004227291355682951307759207374909675381525696181621528523590015256880575726316029159085268023333582662092859033848560439724954171742399512920638773119535825977509452233295765789774396698426797452705971764003483880669976994274859566299309492258444124031488826109288606614554190932933499163597345714875522460002988669815489215496824348135471900077130188149275327230686101196039672447454920467404912695780814578130597434526327239965887910135449006953191685562500083939788684585434499657044843994628086400365242090615810323614071194498180035235154890118370357409731285110240492684805373090562723875906224445934606001318643599068034347778639684892019604998198555631126834688485071777359973870847119883794419431001347842129580191308395449129612905272663596225059903700244436713992040271249746502957322308681410091689067824209687166994536491761304158615199263124917769940313808135090443873355920735102839274791125941858190533939319595132715751909275938334006926480635125797281152911427940839604688317869606928914125084898776431540142920255924207621068560025649583364776521783192835405305941021739505586536747191098511607005572773720249381472635107719848931348521001478050544865540110826561035599374836649363017495726113331271070829962322630423924680967134894572553165720151543792871153072629471000549654195458795176701152445389221343614837725416422531517262819549300295794486011643176947687793485966684270396756925380582840264459149227177690158505943347197201101152867495048837991680835368640590719700106419092208251207693567136405158344985592863750559184288173177024634487324164040572207343938424784983935591016846105256930821635620884435981249566817863962552184456809838028841300922318495679325121879136577865991105404139262958384214862755253297584842799348463796730607037573704940191761967615627730025673677276757279997569043109461091227347174427231637055965303011696385829335749158011187216020631886016498602663108830122977345436704234115037584720683956064334034115922219558761993424837264419242637539143421695872186689444842147934019628722991901313850401942548769103920740710772674008055242592832418922550224118711761354041810130162981530989084001275812725969393432325491407312952271120390111568249008994065012541080633059654438403830725682862701447701067223943330781848774413174866784993196530252187484517611893782361340906098288182628539392377270983995948078327592838347872272600818268000268199447820610804441014708299373661711944194183555893556152572241446147368153030689257236172792493600832088148515814997592432536916020200881899985238967469126647245934630342935755215572331866829195964727625767910535311783184275273831704306446338982017916390129167580668182016636984457491402742797159863102346559246778275509217525239740354749261093114362920397858049296161342779578851653903021023901796641530679385723746976256219896685558029905097576461095047477100206116676170927890542718108774976437875566156900624115176035086461576898188108187163224700560968916802761402472434759621132921474320798609087086813354532166734769696692604181092917424585308662244700236054303915372236113446371005299123006456402229777672859108322499681259095549466646063470081419326657332884711803145609922086342285883181342226617901229447501037835196801239408097883592650965682588703419074893522465094560255351537400051265321037809769059217382334843526709494013676294602775708536765919408846618759283892184780718527319892156196294165731941310547039781382984123310193541714564443796068621795015516521802441571789273997454050814394860209305968085346200995181171779459383583735255790478700477000900650483955171912396035358158691885929961289821189579128089452168556317359356009227340425488473644249538551802989797720125125051251362553725745982706105458662922241370860572302951863688596262037248554196822996314729631707801539317861802679381355582068707236881037781644806600867322551239769995021409653278430577730832954161384000041703912942963054290628104683551478195587854034919183370762074173626476947531159056955572900808273471516167800853758179111699860186673596281602229019568981742764252873874789473227755631606696954924161984281866312234135448734871749548163179743383111293262984924133855937823315181449742316004481826623389972727135602538876903276035519995594814907589622452372321616314567000107409537473157769109296411890805148403581805650278081952177734718117288530703941908825017328810260887403131344266525088999337560672597997905034027087405637112190838685949937122596937850043689048597031471821748750152911013749126818943536750985910919696258202248750287428676591366783840516329975749654403877662006800911965909561328194841997830946700265215243918592589117824137121168836169875229295564841926551586077216856989513717639687652045335112322201523025281514883565825083639049113812049172259860543711819489799474307233940855052349643666175038136336190652954870822825955557281264710160567307322768123583191239331760724855442043526804578567629506957257424950076419131243760233545883034311293384738233203982772760551778201199379221232731204466369605500407673727652606763751334849137937565914409252136784158550185435703028392233579079547831720176265910524684058007322749297141822698720546663622915099349641138395740049594726098953375607281669831848273520556221328939037524722349931105878090931463663543561406483212468478751797285091429954219581885690465788789676924670062593926998084569744891378443897803971133422552238531262830569029314479437230338398792524719198867595888688271232076948101083730019767280427552105898636776270385751505339226101411969246846667720303111090234259437733339132740099154937913977811332722182582617944170284894665861234313787306837023378113638491599560403083179992307455179629517691604093017167275516303844629588299352755726241015943140515055789330400713528584358480683615273631694566093586757534239625513709337832578830376688578954483482691552960808095476855448180723431755251058226317341080973985172770928561959404316916118500080407973119769059455845574233078766624555205672290360238477423421285985117586916835564603526760709567252388560568224899252908515505001137391200459510624965338679729596732802670926602613453450702914015538357521959495594198665230150814725599994692973296638951850207493223913032969980042160183370667146747900244789617569256836443109931638959971989565757201420842862417318052152754408832738454056610540742242628119804986785775964352305622975635562322729436984295853483277657984049260248095708540211567686827932292320968600382040920387670845291769308759600560371711858238603579098971519777734620504942455297230692376144517555059113676214891981898950874827461570019311964395206881962246664832725030997758205294321220693963471194881569506185952483770418522540582644691241646814140568446634843108371151659096640041596526651355972629004533901274387953714188886167631885457039753080604512644846346937776596591571747825110422704688441681896097041041817591306457894269786455928099102309705786380795455039154377050464300660786872259662557738126939068044575025347959734304648742643491313646336590682484899753493435208682228663526952259266589231835327745709945348446890909157548019592033679453678550084913713041349491405184508525171619940874357366408663384819474200807321474076500059203836312804920927160325424052308850347849055458731358510721517012120394560784487094656003030372171118542430234944788712218851866244950923212243520128270729558668935132628499038866390181354175594172164653529380117579231884984817187695160856469724336981961790932114133283294618124313202589019354113703454310160410113898708537721559008639118247483391186265736809622235714597967299103002279606986324565139453542552673930501332752726620639336242684387998195357288931537156362961055687799693266058501648461000047275912242996281502455628674290638044718009943145664980336374207301002859481669875520388956042340230125084887989401229408585403025780401557096871560438903264010103715197806715545208559641631088372677122882255099493077838425522365498466500237177409671530152915163403604143495593480249490508026705818084321936410125276185961770406943053138621714880457310966753614373868460490082599108907234528925715427790630677744216521610888379645132250609665221556694539826799737855109850744579933172882009762795724020840654225544242236006446648417250173545981836713106216101524132332606437624705708830788507147159059843100975201455259106227073461277353867013191143170069708093961771650577559906027356156455269412783135086673950128735413645549545343708677246678608977136820317596693986832210976536965201171248317472378409931828235204689304967270826170614811215115558752845629506062728460772565968740856968292405840104306775932585705016205907995669473715952780180881272082245012928291540975005662567541840605613947358268951721065810486463941325041641754766203691816234430930779627729582063529978803711902724269608493716606849744673874453337733640936882098408680204267994630671724024430566680671358219748650071421586102661521167368290767695908252904597280529665193716879793395436160625298730361497897391653741654380879892580443870848240420007409659369949303590715709315504102604835599851588713188701781252272318351972075141613370035881231768052603110423115972716836348952081785360836820224153177016546055837628221292203142686123313934307364317375389283711086152110543183465142057329374776324780380166932488561938290107216827094615210549087537153575735925679339987262809301440750329117189216280533683749691249138413162677931421749841942002561853051838692742865158229676640232682820471497004652969477417400650817044718278848889713414102429051224366045683360516956898036388758373028913349964909282226592061867150612665379299712072298286901018964461687068774711214371863188393083601701789440162057046392923329781024161726993058193903149920910588859781844698049534342361293913920206257481688261941400693587301591343834673698672004068082007629640337117209308605872203138671198381044783734663044653886657007024797453777687510834349145290223154515925038583693129499550262617629839706754312762636812284172508947708975659206766449532061963156844927386538125113298817707438502284953294859752407859111657659375539212942124658533009399365683533246092440669001504468557817821211834420003122874486758468558333440064142247677175624386537154809145605400001975702872438930209951708516134790363903730130072361022433789856518206310877965826133118293724472332059930477163402036797313248774178597919926155410871708450323535337358134540461390973265897793331471678133206677738845647311851494323583754615109108239967808715156242020616908158016874329610375991575365681508229235652571346920501287646020159865126412377773039973588822581570293312082336001248352470624232135778015779913163926890354904464777866148916379064924871250215792564467087491955401577891972673065514428722274820686713847423074043083684841215690342237712043945770397138076526042222085801232486093949859463756677792336496998227918470321427833804073317207823999155379741716161107364009024843255173292068652584710651376250376944974184789269611061406879436428477375504806563142044893605156295201779354545965919361072375788815044536475164519304532232391891768097273937464912411619699620465931229647792452159251411126939093096441046693473673363830650044731871478152862029213259215009833616241936607836388032044082642448874059651867278342461749530782024647329681324044820065897578334401046160863314609468314433418604082944140970895137654983241673651900753154740027928285964791409898840552582752448729691602362054446032704666939233916796371412262758627395365928967973725240937685502756249033345524236679781983553228369578487486764003918867078960964873364835768748715960301390891626343544040430054356362994027404262671498379842431814655869763946674265038330755809010961785612052135281218259623306551316483245669380703808237873584463322391651925785408013781945071014471696877730505376517260883303762033472287514804973669492108148850996328396397476413030452849012308371318107166053657014257950517667607264142698185870328985992930695588232983191026559334670334929354193023384211221118886754356562814780532872390933155081257203473581602105464887624507543027462339372187590456588141949053602988722909673300194340857828328526764712104569421129206929500554767601487811904354064368311450323040568148551326562450108461409931900108164863094831885579784374443837084558544826466215146410670689862476302035713875642507372525974216871802649058218400304734924434989014408444568047992816010780070091190477567901599553099433072746539040316768186082876513807664808514076372232482051130210771840987875851995534898342451647551624384528907605463665104939857798250327034129823292834623134601968214217552847722888501497783079104130828870052482649270870263107256124239684392889626676593669140913180392293787347266746057214506845753494372122067888811679978617711275329637375701805959789133737462066671121085963001210868373464902401088293554036535283537262245113314262313616116185368103589398606296685758572060512486715867062349712310989067307502242875586189669722423443973140754914601579783914813606513795024281562702180067317325218681108139995833296080591262540068652732317232602598021800018080807799450451862742921600165868180313448350025333786691115212064475350073725704759306500371655136959833065475991597865803094216290750261173222335176685771947087778354502873043680195305463151374791634884497124946349441870757353770934744498702519432692566995428026256034880617498131820927194843558688253660612609472044104420288611457768581963033810518098495396117931832486309955072503589032071824634251762753786510792470433650820268636504633204121751877786212741778184162989585466793666090897649379726940860873666562843652087045623933991146504735220743415592003459857317693628513501025298788746324149109954499943478555811579699689446224766732775296996940637126276838416081790099884195587137430115204191387418607355940642711644043909337684729592057566296874315026460396854263400070132103272353327088246321600028875777156338716264638134152723438290368182979301818594130563965141689956073196747726832838236682646796354247612489151293378436477987263347430739625583354860549091015488842884828617312655741578691281837601289791576835974453815098765832177055144262664492867544858931609166292003637281561385148937824094325172486776077018559873157715709839651198747084423172799744911473228594936349707917598529337709071216528100614068451057299923706713778298504610607857491469589677333299098901397693861830677408366448680113607164993923362457126201130842153602461394053125885207995379744372864591715051105318769005757945982264064152261434923646634695653832209194408712662463178443147612896631689939588047002090534599069137735165148250293899353989302153079583429792864110217315640067886267588284789489013935861515118245141907930097054111938366772159648435109956746704204033033386258081556792817562192151173356889003099601132272458061994342732434943788723442571030277381321144761660617035911493870246260785972535969790835376719741632537324361085805976754016403190016111890481264457667524718901661363247380134602541028891819245446461530792657001090533073780644356653667113975716492251709814296228835380879697944197340072114923632642949779962067785208402351455964227824749940322244678863412565516403165435455929115790496091324088756136240869703643219379246665540113918073044373651219268438906424573941000072258428695496177780855609949326086482947515626088863864357427339555494942623020760409917601227024045547600216579106310030768066492486163355784252256071141092436884720635098083519926644297686575468763490101937285996802747593452860116930352699966536327591585916623393798341732931345902178850482347540708290243472712435060454847979549145358466027183948044751917657633195316043073911696119709975772917527705046635779662923032049710737949001031517451171580629071613541185892231702350282294848620557242064498286847284931294254358212675544367717432800294581832178775895412413051558597917663163968787764858260958958055855668092326693706977205754061845322793670390018935841495540369697579120536219622189922554023336188010342659565300678053087685093852257724361092342329383505226681687948822122163841613583804690533683793449149093346885624273459589524577514813968245715462661363065605058082126278775886342378206019909299604163156055657999246519843415762498233643883206124992878015630275024315918194183274469024954743205058222470017499174336600814505598042503749717486248705020602038460318816770399656726841208270936307878853105424920563195505042333648106224989616874254945617538805872792123859745794531706203587439319967805086361073458832989020958302587126864908047142404869859029073957433289192711715603095074132923912467265167560209292855750551444993060897444829643948990196991929808308038611746951506446583873492530597086108404784941714567866598395730819007798916942798413227388751149098446562684597880355224384629548183164107581405865810300217257132429607517878379749198373630483990491077691460907578075118956719255370772236228364612581782521854941073572765889232891472674874736399697651372478322347972716521262968373468016706274297764891047008136018583038053600023774399346731044418917644611775869768335884976908417309570079856607629505990996742043348340879420168497299992605870487099814730309431754192887379056796919857429023274658040938150664784787545641815524414016825960012950638626720947792976155008313218776615222621968428374855085654834792478623063231668992606677870297909823652576286959207371910767914442689105595937113625990352202624743571499491156696604311709042575462124370502093765308192494184383939796009481461647269239694837756931155659708078801774696367846458893052486917825648754567369475294355022524677104580764652001171940250542246611697198613935192721272418650164869679858304877127846979357823207610112764165448710907473223688133986789941422603771706860504008818720750291592214113634099215419359434533748477069751864155009633987627569995739349537393867269912022337562621385381522086093412006996690515979371313219480760331905510128750246165288808646964092548100493940418423085534439587891804522294855979366133768131496292669998373683020639364976592797344387263551249359187915766643050578795164638111928163915820773318007760092908029733985247939400196741010823624214205254766008651491836086064160126871190954737277361707742206440841712751107575397840227046989443127228515166593090553723882344203939683940009249659802829116296354263972158624736737299140869216676334993668980876992226651543601899937622118526190451838001396780268423664675417285812713303195422498436243168017018133205949545098950311939771086145801777851381081227767682867053368698686635926754964509070218019633652048236385223110435755417140268844229601023447052591440565456173652055753258967830499344277030788711301267361616175421084042781142239912474445003335382200175286849540948543413287314217144745461754772369869930849027558118381849561098943717673989448140068024408807559306868074215204585958531968338837098435814668788862552190884081623431189598889409816211883298762116474494777134612548235745934109567111385834387945305583193404548094760740420943118858601675537586081233712649288166004284801353190166199059967376488946738217098934944809089420342664879944316250156077467728538540030791341859290813963940173712209297223180274165758612544067114853890481373503689581665618666619559273517717976250024857017360345941103884262043622485682464581226740171649776232965633584237459945529418334436062547173646714669855158000884897809124929368141101233214748327560840183198509968681934634801271023886590401774986276742021728717584672927824387925733354137201904655819018199084693235737137956016058241446738043002231843958196323237971810858916582211395761432927958049866561812311041846284416346386514912150956986768487923401294976306765610018448943144559570014741397886773252508641186399891037085830422891490449509889774816544401137237011393083290535375375644225554555225549007682892226224024639250486477955231586578593627167799791586473024779868019325506056716990862635723777476897799896668273956784621521145536456039141816471319183586699360349004635363463647782305951176731396078206544220666992532986594116767279085384058257764084573439495509018284462182017247577529485993212794478395124171182557903430940512497656662051453716697773786268211811891069445564401643458470478062365793601024741442909886132212623980829443106097405127395056148274401087600914912837207804086496359269327006994447169194407427600378545156161247269718382279837893641978713409529890758973242175662658336406285401810449228852409528344264506268431069610742977224905134318533141437871130397996196274425740446088014470660406242407539946736064367966961085591166802534284220707002734808458971439212720634664790497829098191861219877150331613767445304724702983828305879256247053264240099491813615785294854798003055898406665656542518935208787216085345738195394138938944346726305040599831560791892123018469559984756788054086592051246948527730564545864400107905927836851411710282560630438215353050085946945921420531902416809905316661589049841600979516354844164666010518345281386919405813346848579727267786834726356680236674287917012290911657911400483786697884101946333272481577421868727391872705557584345192288244570272174070289971804732724287323911100485113582795897425955123476887850069865133596139812930885244622564957034261044468610804878187590244154881858088961528313264732712526813116316928994850841347076882298011299098869567928364702295169393897239526883933397870768690017492629569818495262583137346451003873681308971239657980648342575307786975641305032002228941916905021943062815820370606335794464626237476649350206795930630262715671618110695737447727403279063163542202929760856575201783267170762261821027457093966864585684221118994185221007392493951067068651360944231555172501875329822859977801896694347084972274057548090398179311054185661208625887695215859706333101196954531436646102839541717303396345811898245116597593145610422590472895185418640717656616929718968698401984568668906418826645963426751371261576023266927653418460715018223385495767364843295137632058055877519032859303370302805646553752169290098364825415589215006933880709968874402813979712692918596831851309595777398798797190561199408827872168869862738894396417323642840989773597184916399929291354101327343386961904530606700495791902262171661680685697330158620955281504944588968493205115184977978889636717093003740378353661884388174713236168213296277557538270062853781830085866203458799102113725235105496568591386757695618458247650220946630279794891146620249575530280960554157829641629930646795393413825936827972559035763781201136568462020664694356654834246982645772751016138539402181869784463324564002207912386208846849351282083896573660171349262956906448943154832761351760357649455080885212233353430994788415030480988451471648625215974084149612820012957097523626237582188724181821066839967891704380930201550681305672398386650880337053414549598249008998026438850718915272199640754846561846183350039146087440386565584286459525254562649889950177290896181195597301236229294244339616149766089039961903500475454769910229044206341379186697175074419560954692975939184348180492576404788683838759843208910497605820003363621155393813259851153420120019470151646899279691622093065967837974405103455431620090457421423850896885813788872178618517198043988111308925267343776257212966839427685905260755744285904859215704139969074084336868160070459277014194049143933684463853690798480174854244065928304666222987933563384438430813612019664207578343196432960879554407254390547122179952584069368915907999391059569459314427817860622174324754888908830304783311051307809112437556178757920633588477212968956859150869648038305936513251289641341409800713350233874349834260338990981362012077316078370783671107781159896695605973046891311909501806590620959572453008478572070696613992918684430286670167569697298062315021763619311761390775037495943716981284369066834674716056613714184416220864828743043102383900058961875203660113033733812594564962961966788304585238489676636396581947746980024178588068605667041469385313158499972273106327560679260378112124138871257591790563146515097240007340624284869583703181849683844083336695203785724518097405148444818653435410146110724389713677600980448682086941343392843854991251658129314826438092785055876126707562619905050731153779968394246866250842060899679229403571996495008160690828180295790662159301298311712270012790198884466728288514935779356831005969154072650717922376046789433583734684795222079429322979302034144245267106190380901291533564601518153801876625496927276788843031107454449786877493050941773934828563008941657494637528167731506599595392592221460698669571132238666097991683121471804086331012959375014902173642290151312175095901481521095883754518802030190845123319652084129676947943746839249974351726410057726590594471077266802903677032348028551362371174864510867051187363745857679752680157961751183349398323694904218344795893599314172383863896968469563048343325505436535256992129566534908680986066442602140701163283250401007898382204957652502719624719043175954543914684493552455078465630336132625552206426636569655515789656234318716214038174961537239031941648836637714141840382176674638877009088618123082492126754095615244065472873205446087202783681695596123624273328528466163726010296138033107962997264867449457566838856204131079109565778161320749628553974344105918717714714676194478214513088361489058588331196924540468575385634057974949067908677127896610009982092104758307141021725403744190571743319203836510111276098335208475117709887938732190280286080516552500630706972236177083182301705750562814282174438630830825725066011187280340196771052301354238870885886669748535826035404257010981920250766628728288695905539114091638924751400545220445413932532241236016628503789102628815009713737710157019694494926443020980788369264602385631300696998726321974356933084715008053712122397555696727866727276893433799190135567727828050619312020341859952990162072626194273526544653215295262518703636363304388327434733354670353794438099526156563347900508493684628942341925754188713447093499858494372671952218014674596366821194694206290798691919597992036092656764129349244496294388137812123906418400150253988895468732810793051992864744102720386417667288400199947177620128366570771989996428109611861671699160469982359197327478925725027909678719529093395951581388776172521948201356303489240960446039484590527010641742065353908824859744822783435386668412991058967622568971191979386815823287812188792938910830618227860199345404463717677578031033791596311855794034546363790603631108495429375530583895904034873710792615701042738021935040304530727155055568157679144896026088253780838990389811947563448863529457126861934488781593596391564532816931058084627961977629162984957377089900704480032686095978763060446090310178371494404253185946592162764944777738721247033210020167051913036783657399360963835858178358149153594035024766487472165170450168845430456427814586470816303129307323764335564477784985613718232414290758649641406855293249846958868597444319332901808469332007257392348708538914778087101326646845586663817051090457959027183739727910594483184117892368835080266267648115842006726536593200316878950169480953484710670677637377319125485850397125310040379574853755273503307476338745999619444002046838370015973211012698528829770887369981045690477338380462560997037482813337073168115662268647541750016356171745309578861007521074977396713242167908013158655391042159116315465826583318116915035267712557120166209728736749889206392235396977463762199874339967502254129551093813662384360783795855976140221250593149199803597101782905033823939284517298864658173509375580547925435742970667912710684783134926904484679140083103322379673418574127543927316452633887546452666015439654170454535520787439232439598307125711381282788846771812008481872274320537669035056975493149359785272054090844700234188954863663770666647782183171913544461582856885919494854369706324164592534986345785791845922725002018959754111184240664186702936785475742675578590944699033810880291841157321201181875833236198535541808679976418683346925336653276441521662919661720425252642124834429064129162776955318488422980311782614822314124134138556500179491645681279950998486944146512100927633795207802632770390240400668795599085378197368686632728235708898438923699568218882983035190629073250419321264661201346775072886435082725407355351451892658463264413125644881275985813368791304437786804552010726675511624641243203592862428053447379038791520104455479134433454196494631712838401678721572752389673216695713306017056424928294999586217260557675349322322447214759745293488135278396218741655106074111577795934610271172560174830804770240800332561142734025685915576701293961629007012474687150792276073885581305121201981924233803059884331477275128450731022692000282097953121498392553333282012938282642867858348430263715841322246442036029057282526361831741431453509558048787029129476438249694474017120314953776171204249673459375311878023309125269465206686634373001524927320355358895005102601958196695760849833162351114388786658533313144482533715142752726355256844656237271113766170962940138968366146574973950253176763226338687835943746389160646922866997507041459257387652104791944817441467743028218204408603084038087787610946755688848540739553578629168432183967765295144616738526024968659907803194135667806819963074030824935093536061275032689074366388448255983776008417155028176214210764569844360910611725179358640122535297934790747861670712887537550865555987915631309533347625515870531913512773885864998459311645298281029697859991342335424160590139900448584061188632473757327263529520649435903899488820886421543276416025587490528284146770812450217055452314332901508471983372399760265777331528392380313500706451932682206411013207796105396294957914742252353548962146011537903188203245517978624268647785098241451399730814033258360261786786360800168996446826159120507531004100590709465886063901602822296048462243258681631701372697508175066057016554513491859524927862252733239411563383363389029112081032802842145135821507346570535473796808305392105998003936061413414972874867348945826530679853933035400446404872585212836157147422269173715250634542514130171969449911275139316711417769344326096403720414181242263086856056432663140476023421910456263599269185934405280750651311339044355123373352448185390498977126009581227013469983876643100579716438082351603247053821531275470516360252017794045465889385511568420165591740865622030478074376681441068314160043336096259307304371231807004755536645781845884965193596443404729282757813635182665659213360074407273519787840157035392627027098055964595787704390532493954762817190129480731228615494680770223282928744971317187727487896646203392036303565393722247695808465459243933874174022122349305369422520968343224520308205100715230979209806025572312847992575565532282625490098279012254733368297903646983595975381719482800193079900199033953337418590305732803765424516615875405003930966625123762641341828002634574333407669878186344937565837754504677021791453687635437511161220032610852817612598559770322224648644017975098399457890300579476204134628796549736299897687578604870512029408615731386832326502749312309423312840366472663100389027003660868948584373747211254565717541811895946360216017144241144335685770517801982732542044983220650537333152511131059901571700266819470756838042551399375876140569888738726409152761856754919437655355853760641621808863093407567955543448839913856219684276083162358190425074583206664785342637942058229293338670303908734372883092111059098137031463984330272945319679171175914736603402115415524760568368306711703304846963630144831472397362959080334831480963115552003878575858546809923376249633242812183217523210237537261653427026367275304819860641761051725719127241522639315060178291194903298494524141862283682143873034643915080372623295719248092724867002291778007975315477687969087876189923796918167837704924785966476440104732472701766476732792752039664871802039302105189895810987394003440386795190309376170059945397081071692700417890003713282466016451172773685173044728222325307046343511076342702164775952307085336885300508631902859856944245061734653042231981079404106719907055345571272731485169459109746304411234408509342395440070613800764126174266333366094772339664506975468631326905198441202053084997411549582129009645970993009461805251737290193626036634456011582575501546631920060951714247631870431623025262122083537196255560489379851776334370916423821140430324932662055871683830563829579665063396030858246013994614323590584545271976639096512962000272193478606346582193431493399225659860119926324796283056961502254934372244470198963331184368149234227597175495185123607645658429803180444174596477640861981011295754075210235518548653906585982479278680191444731554994541506308716298646309102345695550631244206615392233384938446384113884334769779376299236802252233887836690564260927539031276976643110435343394860618904316629582481206202929082521914687916566542952557069806706500020206346139456183329977188391544894210047772359620635035920345888143464317645871189909610712776627844840501910664519039577417841589237213928879834413818719764639507976224016138670216081659500921181580023720231787402645443664498035402669334593942837708237107305289074156659242748001995234560368905064390817807146652826376838984223682305927917602397525675440515305902521902849169756663886742381073330478035057946282353045017037884394007597235993849021582236128397719868295072448359705838321816815499127509227460845641062038717341817319152937450877630828991486278420709514464577167268351933379201234362883939430354578030679926485516557419849888320628440898506154903605130853434132787167248298622195889477248387376385996001583691323455580109821474706763606719632232280382821482694436925363703571595498785477311101011662657062225139535132170512186954332606039261967480046153616720701368720711786091312374889362042651328185268697964613138844877379581061477678673042491960109311649530627543264243966609876717840603375897429840707034697610262738297766466742220353709894283099059197074605573422329876895452582723176006439825065825562285213001534529281339735653403793857101791677074263637088633044183216495547345103910174464781946489764222137308309621799476618510121567041700195959827194465195332822985630605558853845552396684829983351695032139532634527178709128495449935471766660962548120114940604346547582845011607946840853213962407757933801558249524823235258832602525135433600641208544479278931307270465839037140260755297563171473701426520414591479382802886235070460359220758889948384757417009703726674378628854534398241662516772675192884383721683088387327110947018272841822283135291235974163234454881777531365223478128908272371737081626696094068345518078794412103924708193070200691441634196270205613787006085137436472233570879735332127254553371500155179051988496120439168330482865998147550947807529814798775111685401746133113180126531558155370094339546379207769294159158737823789010093662814440004640403285627451313083846774694826330269966919348083218429191856898056086953288379404136112764670246114372565296878242814715709247865631300564277715634969254211039379188035020307557991491913443314675575027666058927535700229109158584366102623805004021378487361343533028712908324140182597924627921003525421263932018457694822502075451470098864864500144439881870668003699312959805723368521921899173290087963078320186621051252740541492034623695135987545966617257184605174756687604387356700241782774083743818978407790927555514735602105914236115157845012822819367098038786165322366947641483657794149265378407427808208566565871081466435812238012833279775055844018110111339188807600201795426388944555570954833801518352205606405549268172230500305019995941086117859208261682939677014071568840903353376224946932000887786254290281748342219867046695498413380456776565071628459827291056088460973664044575531580586205808477675764502267350151255553111616548058687056222094683872379860396218093065618489563521850653619587485100117290735664146999824503609218967465764388975646602797311567613499263765319453481433824209831601808980931846111200110083933160821890747269840692137974673119510928378896341528628005644341787813098548335704611560667555858547964731791092462775788159710585928685081085626138886069159750358082488487901362779250396786265890417294577020447050843106257150079111911555925862006909448038593647200611434686471551185882852984622982598832124135320686999398773693012658713870436103050635418634733622568027511064074750505285697478024630098638985939421379136342216135362695980228588686253176344734576250874460803132055961454789442624165167971297426868721219007848367645729870345910082248682697821784973028858843953976549559010365174724259000528636846246383744547965115447133029783375404437657682392794793986268421879648677937053388664008255200528856732748374291299729430847063501096941927158045094586562826658409248963329725769250081658349345912967633392958822807597844904075586386889544026772753152132008624966565807962183426928545841712031172991638320214946119177641840012103466709667915086225140248938930519364564589543668152594944631206457039049704940513271206133035296334150665448052555129141509042611344392149348572710060703020131353838642235140515635151671940350273016675244981539900440508184265471803784077669545995482014940468970881321716277447303756648430838637027533565738141478544478112955673586820596818237066807917909059845515259236184423381673508390936907186982064567905616206412479661158350069883790793783883211169080381430783709520771634203241776369326516441303303807227130568195808762163095373064394095853844298380305492689178956030081754999306949139910040665910437084507831724543166389303194152491922019453991074689944747783683909579378465932467923893690992378250744041921890173384667703062099243533032154975514526828412157222985494682386513588262786557028182983658042771873465517820431617427292746476289693978998493741973340369207629907459001090406888363038380237390754791771958342562316282319698682221093985851666073770885406710312433595960520788598087904146616371052454937572566402947480864688984108770321063001199868774851169305428686080551908688007901179399274732069918175659028187307059208169576653702252097980943402359881962000403975640612873557193695632302263013314794146744395528667164098938347440706382307421050128187051538993433526704201946405387574676659002427742538315521639748185558360310564862734055406604068616864264505074308271178463846805692298879549915246005813245520069379738636575822361100956395187976092089862361086404257015813009760762404416287799548749627529743834368851768966477214049933082917750292082707596690121998179995849727849592148800591067697695237027428241060711747331043724021194129706789435938399879644900305555050996901625629120711097081318773360940392764998646968334965271437657400364736748143470499712240313239418460456683608844680740196489044705317177264033981077090595961360095091893816000229670585386422297868616497901898513769238311091753225711297517154303812958049111584265363473072579067794313865367016679287831834952317417423016219179659580789653917372397788269067076611324642068831949947834098012576437115922724259221949142007282233093315357256519384347767750903402547330210759017818586016248861392369845736390305188131358601480111251416979029354786442842466937578146593006547414301485957756446148507548793569001465077739623876335627057610883954910006979146681306181047210950800255397358835707968441401637759797152960088970536914182382429760086289757361653070373467774185045502951464311054396318480632674475718435191291581382562329169246230529100627409811102963889080830696328225225709751695103637297457557839738615716805140636169559747636117655288058029753396483193329232989970032675620712868709949057201023760667849153329534630773327868676404305764734228197834294479286414270409499388290111465413314316455906747171148001896411440640520321642723215377663671407037012390540662264426241048739978155652192806088598963448825720152785692992250832642788421132570076550891000306957118258401166408843507891356315454690029731104504662878079841085526906512206925206643722552941019932206197242326293755559772895975031976837153410271874539036910009423734554418232681244656296301839616380095557140722346732652075565430364800418373275202396150240703673439168614372104283785631819347805995786484106265981548490456057912857683127370281170783288029708115132376113470860461824444873434333187895093879027901469897210888614430025312603612939881208402325271747499907661181799897352742773769898789531460579621176113650734246512834856197945584861119780292524755649608170724248622392798586189890841192866284513631302270628776933976763014147632981054385723445125228215276701732200831386652277949026833399902293734059366074846092559411454327791581433933288459542026389958855098810947384603153177920129880390017438822426191708736504412282930805992215436303891556228239649441163731048125769140369273007599573518426572289859503599095795723741170509013278394866271395397984502959198134791878969879921669676595218643947571611386823643370539359463348393464434883899749382074641510267724267822806686565297775851834362047476255058777353598050567930827255832540311441881156232304724546539143885565635981039180918600519061085041815956262962093112429345676389907524388303903545314357711919623553275960499064323354110418986771898106138073293224000731684191654766033695418854916627227757707278108376014209676009821129822655721303990485995299864979232057940476599418744939345512597064993518965281308592880079867400780734046312212368990288946182807864684330756523903402439021763837467836168608375993028695465581877086151378520055438381364581653703770955064232567307695986860976382753767254935992843322402895055621060365326729730351219117579577741862280365917247903210213946477818636122871174337915012668603657808942717037236337570438879323769486908338389820268454894062043277693152114874825811072605416289066740276414595266314398502087607459259751836589097916399049597062102619997701803706085467482790811620528771087106478568674445683173449255241426828235103190255763392131212021769705105442802863656661351398573903330378420412948032832137447720851907120447486474822355705772505726187967182430786414983547750166667470520955142671928404690728457092675895224513943640195601283422964895248919168898540974579401425648747503440337048871046781879795674555755012127202951204890838925540452924582021095494606332660232627002105880043873021489931071189133169624995648873627866397234156736452582544051982612500813169464769713995069211337848063750425687467450965330467564082226552217061485416600228661628524397081238738235740581673224479405681732996684778613099593164851470444514314829725654637143190601280564229170556204499132125881873856758200610487958831897317821252830116407219620958427018781757183059447427286020332739555824642456570053431076597041209521614444877161215603342713530251210237330286351235562492647959687930459823595118625112443172044448431475153854873391465411155908855450447587178535469684006640587206026408747825509469917997577455854247723525123657643679002864918822156744194878228725126019790774547797788435128322823869039643688487446616525351726325168603024231898434567920147561103225316947763035884674218307427100634624180131555049612813784156146173685624815902887199907114263520215298315043746624771348449642566237370720439123788336192671519939516667376294450253465823283664923750598650404785798579985761600549860545773238832307274980474581435818704070334491473594125936861581509522439305588986625102884873510440595809736209691581686728060770254805818858437358203192765603563297587344154380170442067467624724249084383671877664195104852196447749687471437606667947549957158417986757965957654791605947531624948574185051894170164516647946922305692474613521868604337782870374338517481417312645103737049743406987478260937726604694236520894276187468088764560864528917371096323897888715260944142410829364603403513209738301415414526290182657932523357891934719678874457060944301214980109649976248131523604549458556529847933005088121085606837183039234292877148401806169513828877320603609836418949568505787933682193556245338713273327908669210509012440028730201743414298178687458842509554538588974787229694009525262703471894304503535578744100211245369645800205838771323218429084002434229707134844069302644823192780446773325106433451614260013989790036113313435288096386721001023813843155097006040186000906564172463210237893027823752432548200319818626895524843742899452589665716704124876901905659391190269326466868026806514324772810892439742463967261955359012645586127568312579355452345734010199906552513781358810861936068157521608186131220419023221904729424553479997562924898693351398783179894289415245798141033557421462647104228144983419109014290405542743005567096283488476651546070419379826337004498024530118955524051029950471526936222880506465168544058659965206905433684807529761345779190559639714020824988378402970266801103635090534380340195866977169803947419478449479863292849448023382313701114853370570877560264083635034520528284880239604182472746133396366298625254103395917250124609638580788329361265676313775791372450115229677380952569596977141573245477701331618661783819115398914574039702400388874776457928570593421742892752905704696893854870011512966904156832369453484907966810649363430918519188678219523946422977278884731234234273302165740180190262688224540772525143304203575294549567288548740994246142349125823607489620135998003232340657232071481488343939406521183452778971762996511132739829437271576141504906204872422784060870714907464898287244647140207960961812265983203346250743723853109698363064077232387013133475760844084542558566239947576866144476378301313670682324613912537806906430418552398705465131520869132044933081326355439370696983022761517667863846257993155389674567513480967766180377163526154092555622702419517453520670670374581172265327226006254098231533145295557829338874973802701916818708658444993224878814017104983412780253672076409706822849677356544985006467714063249671791172368735986519197892469482420261758394790231678470361545312256287164343752204599936819663558292794783731962904748188537142877776300110562311278308588755934423601348764162338298128885377530379932244328281044439392824948787284462946268277071919411489863702292562198620509043327519800990095759105432398479452823850044085705726005749500042234145289456382166846109785764985198730509111223060878780192129697602216276418658916826512602414270470302921386473322157367001996617941414784740615920158881747750204241010395541401411322465963511034765006438048301231464877144356313891878865932836848585229333864142637064864886638247762616323733628165660066896240788127496556719561955927201344998509953149568127488162574690019517801825909078936885927284745209860120156263012145421409563597812405865928838351287381744716546604593770654634318620576083842584810857686742521110086286177590534519868324523415682225718008573898083864065022393909303841039905181986375197994120628340469156290713658736039852493020414117594442194304933212055264429520346657784147622281391857344999075078447610543772609299933226320348046674188286805794159732607133082125841524126495584057613607196044513514906825977552141885308605307576767303354557900457150503008552179719117070359943214090885819216507527929814583005841514530944799021392734378109961103695158659148293860942341469503252718082240810718477494196667135559346336588341522276373203363176627411544598234058114112783389115721170548817424554715643260644340542070984515686307103664443502563908005706581906994496286408603764127698265700631726511652927966584684739758802980618759972523053095227377254741197240231873434632441887510309903579042322595226197446696357556383254202257684690051015912677959347334591872067117641379465925215997685263794403758985297749421912591735280125101522626262600319474763172504557052665723399063162223200633010080607986143104424065368240064264311629513080132943148312775057654820357239262940108217770884982820461950561998379947174086424299755525765719982260198839563021723154174575053482830052361979958183800863334782295000608645994051123549718211593648137091230764166961383831745806812851688232050047298210781495439912539576322280274965891555972046318977465012181135878738083800687900375410855895307386681574715126880524703445804502850218019479632205312076715559007399653478487985761220826614452029094545834958095415720301086708236191779155561219115452479678828581163207376989859188427044501579487771968798192652381205327405141991417021077777694567539482317279494135910768719104655195658693540895739638330207762455961430241346038281807068301222000345258483600424684637952065077895554171052902244196879962537825728008898283555391524387944021637484160074868580419252400877835623285240151594146035667551043298513175401001730786539447868300108344398512339207051990562117577956069454844572551943422223182568069811133822396472302279672664983333615129247654242482140384669510085666639771349964038838357638238069461533449223629035754647156640654688446112662693760612427353390601416500590406023520186364580595390945929796764901659786088382859554087293780585111553312800275570364862389597180521928271802375397779843991080074079365085149007780017831565607090539756005425648544056755498327896690918992595886002415794754939081871549694627557386719962662200586569520190594639522414797505879546956217677889317336435087205411576093064373213257191164204779791062503367189353333938169676866371941627910293210449705472865845118045489203999532505118339718784523849791284334869950888091194442267829955639790392352224882530420006525720294781304714166566755667845795308128650446047248504164427479041719090679155758581916845506489904895252680448828179499370256676603453226485021900919201421903971829728255322617981895452270653471153602639907577668395699686547654001347455215419679000288214399688340014371716076036683117283731005951582421532591406228788646214328414285477596114242210703151567820725655728673888323979549626756710180605412982122119425596347437228536039694879188140017485309859162533870946269994908004927743912244933808714729348729696665360705082329314599146599314954980224368618584996810642330529943058867020993884597898751068359757401746110034946829154365137635209631958593106390252509955969454748430879997664720972536094524830905194143232392167996965705429119436612810542068061293227555174717741158579328037245360810140087060248222007770732277707168411686743896636539102644773839949031825143801967349883557876408832471482811456079976229043888670504995432640058654278230215720016835648779693118957539967827483221845272862336919961950091585267273346977958189799798663496159712306944255201484613078591466055199695517565199910856212020819178959975216812462176559557656568309343997927382521478230017354912186420585719779553256606109230928963470909362912307326156985001341974786628586083961131987658630566335228193455517680719211491540833199584234781922025718094788726988326824215899517624442281361332021840256450299735312184341204118838366540688748231950322227574851850647449944071913408844730185410556871927719112199696479738879944166245518178042357716583659641059837601064218756836577718053023817136522059109270453070316258495488380172529396627765470797965212909772224109418840007526457096688242931232598586125254120301454915913277139770573149854124343579097902844892803700323976367287657115784821131584715645516016621984603345403325086352488012320511473325828787604856729427643239405260612036903271871026033031880428662338251378106528961043259689609881760695841533209813018089289964985309820214787993294662954864028644882566865050684542944882547976066078651366550317142082503494045939412419852269704939154975433771007004048058213110365216468977071736561103683923388445780657106039851785503350502800824782544441597936018224867601285866480486707061414941108895870202764174586835453504324698363390721492495502426133488619032306832649707124076595910081192664891835199190015440254734031593604054864876901826607033427311805606612735697532623417024812815266134351821299950201412281570406819534379495481329431299831141379648669176802919982041271875485923558934110619322672888591901847941190782628168771362426352654214004339212010746484173920833559997225724703237236523888267718355792048140047980286580649870277803642944100695814773656383915580162049338437256473984593979740134063234052208930372665840681057916821136647831621016685295934543755296964645946137904250099638356644328290904845249067553016785483534593196884905363707980027715092165411917963847064551648118690245557120653003531278843542739098892529281586167123877718557231986902767242831262216275582862963610548153599675736099539301155616086373728905238562716850220876527389632858666347435159150147827295214685275884765214887516214881988202603432659051623169416548980896642320807930720721572806308778837612257446868679373518834703388015160734283038492120924966116909818798451637982664515712762590984002477559540617566587740344184342048320672169959813431384286314369956657118376251616700305528460567133733810817827334085469232097718478692425023910263491958813001287744032961611015965048975537325338223413461574921886574831722616445499380868002314370094142855514392441336893981550819594144574999097225942755975593628226795000610855406657284288207303723176646014484213969300789737990263410457271408025586021552325883805575955430741566267357882606352311344813356133654249876385506493343782117414814614254962439770944941515044543710642020063231200302228887200179215630318586551419492597629309079714566256405159270664590121461244350787689557946041310510158965661575718857004476226672802327038662418226896283610643965935761307777663779590453882762733975278491528219839220694792048433172918421763132754797653418101366090728649699029245002161151142669852499099352015277477118235644448839265889452554851696219880187950003890684742656755961456476521946863300630180963847732444192583480429543896261391827597907508365490195369782002560362229557995925084916316704065405208856654747895892448677374348712357746275832838064438397599414705802410733460796555529886027500450180982114791953953645876885141063850898025472823462749311949002983688201483005238521931871634906534539848860581613060543199112989802607187089899334303950055906713284249771704733915671686037550652795449510251650771268959643395287553652946460255762563559026281131668603365449773599311480169571048814602741360793509560922241064851380448279061832052005786617059010688540084087814709910747307544048614463176533387968644813800021364927296967853727716853077858427397091788022125286604377379909520828610795364992401657820275702465722433227230782313913160400463838814764621725503950516793062922300778489649236974497733547740667152939347868669820373119986409129719152136583328203769957672706906961416232779198236772552288864892535383444087428220885307706262131245535023455445160956371159310526484877763743536010821270463236454594812716353416804199463460169975620724693858991023985156728584108296142041786026787423461225976711971787612232164881872484830701451918492052556885329901568237304293090347464577505252128646946603823556717179225951295806641557842412537392829240509884688711591855585417011456198461815781029680046113123893281042054434647571592556767354827987135390055617576397456367749267331841498358843043001626496774380685810664928241769752154805785371127602948875708510915150161477918094585931372924866426656032689599572113191857288822019076963587472679209573631142093895599054918783483155853220472571907028199600174634676305340882180066114583503031602555897402124836657529594087400361001072046882184883544881058274078354433329006580420648254475497622296697835346090351720254699856254670778808578261574157406660344478685392008357631661836267923045978045610099177567651421569518870496762333412676719769502051101561640328517078816900725373313257805523587232625055987222043840784405563713617745643888449423264723942807684213668895375830490011437540589845705575171764819152271427148192590885529859936834290139393199099629623861830935395477430461935512265877973231093819141195511134096620460133907872218445972566722582322452678571858769634321853557399981894205007632169788233346384820935613196001334530918744107771733100914030950718636782097380749116842432599988368758748175841094122409686578137363879616700923489326573704957878111287191601186670726909081472131281261006163462956645228843553707610956808000654172169335015183967031637894839874919442688598858013466147598048720931810793787435426043063019142673165718820854775381595962352873624399818801966145920978891991765587811133203471615085622545827161665937205444612644579543925860917200799337916536049885093795210917833269432323251373167378477096789388342192862385384233902598035041242907389753564804281261848446385527518578411071507453018416622543770415022011217373949075282342399747618118150386633015814182322315934814666320015333126889477897462725326007247677939157937529210827997466514622455830618717696939042520452983406548503384277780430967898490742199523485120355714718433906189271359307663640721686578317266425577178830311256499507566827065981219430102396479492191067553213435919840861246029392196932122396294053820661097575428803795094545903499903454654041847398394458085690666426907464188195032455324000548995917935917081353766899297330443157462661507245029724641264136364906740059003992253954145128738221856553156975095816581531056501201527258096843409309613295191625190046672755738975105857260192154718018610898261137226308205893739534159177600454637952512947520001772447312828889055470207096541018902042783380826118641185515578913784679582935386822172621631620691144371148716693870806906985748055805413467353038165128435163206664503928044122369261974957724056884133107123900950321823206416983757874057787943660583716732443603357198972711140289216156265619627140247791039496898171812109832029489641138653877429824162465486168462726096749666949139312052507029011699580504542069358168799882250169414549738091217854863645999119525576205250798902027712702051173919025139393603370531873467883114683233009016025243852468237726312950495266752332760416791193166912118989097060423544095361005598467661364434447748539158681804998871122055026677514636039769193121622866227358121436370231664013859351732793875579678836691081392175690300506511479134574151595451819418492169583489408596864391216336310317900966849585607442673957919416610094876779023872520641331451852726282851790643255604387528053931235965840389914161386243603454511223868266979477706821600174883040534706461613188762522613540139501701824851788038971960747570080620383104171898139140892004625621423414386912919178311720694267063172640013595343307400903703177054181379981033667145185420764418924072729637413429139072298015798818780637982395754069603701243668872936967242891156015287311579644581657571508086365621358182232875715336248757121694036599434761592412871661101445491197989679783578544143033096293958409709549618162361317814952056197124924236141556253084910176583142239750493375127508987160643305650973145485367501361227409184639664529093125061795583480349577180762763354832993350960839017495629539387661575596145271987951088685148524328800927449830933154461901079322487193832826519096061324747818756865408433173424471832613083708015272355672714879630727394376049838254241717982755285650927608583754285756785984996382902622089240965224014908296078003348812205663088600421701388806882349515826409517149429326327370886999668520442702415222673416203400239360460867858934509880148182706108120659919977780092781705722791558085605044025390439374336156289419704587213849315926308878585861524338023994879838103496349285208633372961838391099856096705232570957414771232606531966071203333840990966409581530855713872053697836892635984767444427706311371782604803369307623374087670140543284483843841869050374748577901073391645568837062936732470100541004297382031617764010748616621651383042328730756219960104376763084360166083006296596327450631872338720934672745870342072458849843192800063027803458672015574846014400784371152434133516642940636506336950812333789193259098876022833011157080762594917773379104629243988106394091870949224638107850944183592731309340907536525081009117059500567238873756688242339704539452306470273361134451792944707047035239625323622684794982745328027653937733859548252742718591316007761587715499857850301724350863211744188198673658713874374171922745833602183362433819855786896832145427087280123532236555537280109510463903054600361622864413672873757415423687244592213135713616833204369126107509901691633076733766933580882206811190131957653455484563817471300176740934410662041404612497895172208624288091053312445222439321661809026831767228445666667984502325798150410900015752881259834006434520674096590040282829923291106758007099842225969139965057316639248506699704723297309359692004419891054514383201045257566026431151559880282713983145391596253781311564803846315063370527349360610511653378864757414586469658569344994679664180592290456553546372376438503335630876246700636031888682798372576678725782499157039616317859324306172853939853898249786847691969810839986441055462359051697444999197631675465567403707435109988087026802397292785715422458436066667649180142810470037643670932531413493727234344313156803640715526198734786701738766552709754450025952795951498076075734144856939707032574039898706188223705026195254980585105335825705339047809796127164883332926975524950245979642788377515666060286626398098339903380064977752082431354111449059091423578130085118012004273725860786481767047409958543714203627998761702198680985937277299591846356250671888843483663737948091576293534879787384865654750738466901921930272406782515300025113286106951068454403178240620691432704927571660355349949204311395215804478864650851686355944525237148869679125570849417659771226893981687055894922957271611178424274200056341133479616798205918232544142770078971951862159250175776325030269379186768260864534137082843912037199969873691520522093089893636222612162853998298223633752053558428875145211818478523827923148632950582855056861597180809429535946607035034312865661589293314274390455469560455528296157941731182483165392740055642722633148730345079245701204243249366127306314730610631744168928477608437856867203451585719892958747227871350585993549789455206247305652432985079368401684158856965229482021952363044044214534630074336621119403582821025260169545140173521901592921028280323211847711006138274030475626122129006943911534502438797093475826369918703227974080108115387254811754179555190458932612846361169116333148438931124246538398169271017257393299929860545205700729674191693917974819969442582328990761644575510811968679464213831778065870071863831427220765783235209409098972843892314908964278065748443581099305057363419442949226383955336263216701902072016487968544540105032376029577387395228802224082651540042352089651448844373502684890495630950758860147476515716584844105938352032397015064754712986382446699864746209715704557978319075626284595704928523347094603826073506453582771762644206414709703777054324797421506183993234483901986396691192649302749329772848824556324524273105090951318592184415477089821445373283938376766605215666962014307982214653769481102648304172465422469317840936811979897147573338635009371642839916071060188823483883001597578061254254378528034306169676056423519545500974510360093409839692268003661928671504694200529796964914511867459344962506852230367078786596525299172802538636324853065751513353364689610107363232981164043710110999390984162318641486804702504607744919979726178829349491745419732273739931901865632226751454463056827913681182458846433097530265375590267005793608970929307095838556313268783362095796085084070802304241195432215251610277239500257401018173222098433426916737635610770379408951646096245375738927548538998392627697119058099015215819459066659264013349274807166254392445451604486744646626913056355591515746517503530767590152099300065576446263261867796881217599945503493710004352368728106115338258226551798490625642909666068412474736385943028983587808458301515233749853088548954707175954111796501020225538324386406138292841081086230551474786924149881654940718129819174367157680544904304052772337475305513215566608195259560647592781501653483255871128133291994728265432019465997698613367586971908337626027667731814002512906870985302781192581535431183468166151558710654507712633390185860286349173860766907641813228694241509862862165193034891325413343016093494722432324127986525205604563158281148722696808632737093817956098290323362447425317243367796165842543407864781187809028160257735212236942505471567785137579259967718017414676119611712482623859364585562288189990438816101340267338269361180580267497287406484195933693485538098134389487758298101178522985652709474641400941230755384445020147653626779981708791139370089748468901183018157511763584482513799015112099908926502476141884788787631989783551430578084526566246478833845508351668328332268237226329820687639194605912212047903440728375426826290713502464688414521112712905680203807426111028097821343753495775874068076789653701544366939597086925267247723729813943505668470168765540353049715837773825914305998933595412588235131876933718869724104809788217946440007616523770507532244822755838495572935297573589362460496862243472401837318218473771110377990308044950967674874746420686882582370398648106588611565990181687462387219805728354477732796832129090195537211812868366101692273885918128372826100601084285705872140137663974334663407489855906190863891478209530508478627430093922800434329351626784989892850281301817305906603765772988499424459943195455911614953543088982437606865112167981913699901952754036122370726599967312290484615449749456018686512074203835675924932161002410329960781625415400293652428485139998053892092831288661681800006924493309621137176612935199783984835863618176591985364718081050153697603375903952290203695849215434538247370115199006269712099255795052756205419448120417300389074258268015712164998060263744210703541667439474526323257846050371808935945630931032260339128069099846589076324694563351492125335541847466246807543354224724304776810302859663026406064900733736915319577058856964551204085434327412968791481190107400845248372421931316605436134660092676484627686516999836167568269571013646608755171539915581620917510060608649007328924745882464908226933675703223842246361250675756268179882683104615546275533541357443495097582108621253529318677899041007029500138476006773254586455732588490481979291899782958237585736825268250634340080333801115752301869322946241617944510080565971621757521377611322656064480361614402074408860074841857354754308674952241953530154142561973336795017183912460364457219956828904561742505674782503574867603059366837828051657122244905273036346794061907470881159439202904819072508822385811979557213315997294019624440470559551532075008205538532150308366726281193589787200804424183554596544541049910212297071554396542475306509573556825977455083994990571489808511928387024463860766188026468377377602247453812153965559513976033471269953900798440065395506541111819352784296320269967634677612097202451266378830369345655430010272638121446628563285459788383009439232362422534267776365409815167810714608618735334795511207954990730807869999309173881772133571387908011897292052958791782497897927647896653310009268248887911831788509351676935282105458774324550805411534088607639923695883831042864674956868118774392378001718437847129836589539250110605501609788794443786324653863425198848686051027305330087982998004079020189691117311719988138673134218189811344203428104442888654234314095282958590022422938615669680159760379810696689647015130318703949115057593448183954276886290549646041805828813517204074868420790821038478919482188225002496497090638966882001294092105112877076993113446240001741654124377811755808596081645044304791817751308918426708279126911162421334662334218706388149680149736771948237737193863255289452902065882391470107686020766747105318758601694986053121926669940455347479201821319260158295836042932271323127131157023464840505034508079702666301989150272663324816733969660076152422098177308573433707968646834231606644121556458534800890165685777516878071587657191198157446446125156830025134239670165514061456299783543760864049470967204997199920772895638266058487483631055312922220327342121136755124859429633749351046238903365774943073566578071773168675849414663932014097093026441727103027822581158746727708695115401919058931875187441473038467074683045045342155372551184370372979117764519873172223547338297968369030931800854774832710280199580294436588131890560425386479415774715851392464882693654460553569975205712712622445276341309247750226864201427872854589831777748027718730947216202569654928474608738601844739121954999166727029734212029585895863042333063989987180655702500094637635647301621467755743573109900071373249682624787345822031939741725218448517912273026943269929356850287370808843373096925901014436360582909250538322203294020404056686621641746730225348322513328829342654565200272251744522979324225297238220430383831028786584753944975532010679973814393985151445388293676091719522438023084454252069672681878546064635707337548032688462465028360659274278240816104795614220983265628152786311691098229041866901605341391894476553666360481809507020006997446530814232176756141952521917577878456916066679154847768237366423303596700958807432297134558020256171798526929326203600817600069347490166964148031421159359214106614883143394172757825477413527238285982901261336881653798700802891345011190081124449566129044408268439291759131246255132091913009929525006294954228271378612770241572948979067948106237297525399838896443098566908627446594997869339179714127020957319366463768985456478268411762336988300394361847946141380373442141854838448239659778393875313562087620826527400223473302698554386464364023733562465023018986238151175933978919431156032795411873153857438402817274643989112426962379821982032098202856606139132060001472470320571202406076643362522811200227893941942021041461115696560646610567534797765576253748381850349905645842149252470031745817561497523399732733454599310563416908147813838805140737580314266534248690083588125478060747434252303081109587341069507984355902816185482161850081264369313436682384201627076432095517164856913721756812920537012440981284975783459087210600429653543876381625802321690099481609642186479654057086605893025295388169003171909739228534220554897880676031771161077780226012322998080724141739395280732395655082250113299205549520857234650799661677201431175186968947974903910194710292243351256340915032571874627920904761859165101909070700158821624372580904943039052945834017137078330262412328008678322333846701605490048804179478223681079502148677231699717431679980441591244313560132568931152992797649307570970148667564886399339251608475951990829054212455935709372746340827703880865713654908692192073902415727044615796915511540058406702479757057289900421379746741953418427126644634210686318880246773603276815674175792667255557043199590767279677979240046513255658044500971137865572967988314432787391519493106059060148306211237376293489167568428772827389624668031948154356987950498347938917926091480265491517802397068926598634407541980738642537006900488989841735217715092207931149916737470909604048776555541604575501887371048916878638051087992552386628026077023950836163684393618948210784411101722791569314951767671042447194106118039091832234517388771069798904851203915178110053583846349881325777347073910552460336589867865329759861719506618034160192690239122788062030848530359781626731843828974048460449187634551968447119207618607247549342833990799329579849747066503834132565500849315942785892099250674856495376466282041780645784982002152205229627783485722823534793584942278861058046676330609360401840538316464572714551157106207599589234697858686543819421687389308699537195658341676703552858796116178151342299315021215626559660724256153287558589436939329300525627094688542734663841871304305780991246745075690776995370039258637154705695717206419432340030178918824719059682851582443286342608317979599994840729124084889952767916540151944892617646785617864526512503548500516512406590842640605446852542710347477144927034382652829252415057872706310116304573736239374088942465314148335687962637480084295568164923049961713936338155641477297753786479730111711073814082871701623969643534923645053427799507853839985444085252662504962485475487606470600492441492438449327475861850349966751525937259151582033406672315963764782097445078433321772211884505151700882932784476952895646307920156878365974054245894271901425512379852561080704438802570301552926009278507407124556748621470642295096824080767165941840534122334003294112323883993556568034179045418741824393501207074330607667574717582426767564246246365533589543868368604882866393091165081389223805592479392112582640377191283023496998603661150548926208998215341262344383231404861759487648464836073263191922858820435348447772400755845658436958036113995342525092789680966049309635461756877921530462760228931436166864630121721169841263423916819446721272368421071271598899472185612227954220668822077600241458802607259249586770511855875290667202146529467954125670122038892399899463961278553983208696924081817727702384304365899163016113577682382986479719187829475856706611993388731568142485920117405874677261998347540610358911146242344740395539087516906472777528643958272403658314974545699744865909326930038918167951478247713351401732035980121735401979425013397047468397266749687515986857960484710243624446500763287849051946691917434609649792088865910293882544591635258145887860896043433283336350700513311060386663751938631047044301026204231688412750352402937578121136718914128923858030733884128569020381252769769287251551715834229854907991208817397369194549711297966088404481492394206540965717297112990637679346837167287828444642039273926254604689774790211837174965101366985302222022169200174057499967285428190346308827103356307316501115920837624745528456939971231445457847048252083720741828679588481319588436384633602309157377431184366449843875111607656518110646213851179307481992938766795591746310932773474636827058561446360450255341245378273027166191078295587155152387673751914385561087130162594747610180267057264011490662264483089883710868125863556757115453597903815021382436922723530203099571136155108125663769046379898322019601228060924661076405611682912346130179120039375431991596925838318741148564115090066892006863919396086643634335883503203613657225048922448733719816636150501441566310548228200593635039718311501292508468271492683538206184913423993234028736495583652808400400279764061294726955567385249365797759125509312109923889141612931417136997267629252327386330927390502647455379081118960074102213068510023522155495196793032466152169478696908684697430498602978953446847907798671834437068178264561553515261527663160809529378901938827716073865755014529085118524497440836635835686362696096678496864589817050114094212496699368764734218456073512346745645543417614341170642346876397295080291638738837404313059375802002944200834191612161695272360146863337653295173159977337352486549513323152995194878324557696808754976562431597591882065435123213601006867110769981271829130645286595179615372807900310569905560387936727301649124658999815168412898481361046995582569910548724915444613774670137297028374079948189216657078903909692049567201956115521128048875114455941455012936284256572341183486162843682604392425004522985551705000115734251450219151171021462108108340882165839372027986279370811952733998043027101080231755570903786643505935780164713547492913989875690484534792677411376999923232070973146384085035378441239723266873354521966584594197607691027519775238825836536927185836819473352281311671968970000326454308111484630677457245035575601559532547665220683955707093645166964720020410560221198977694525771306125924291089855503778388650935699352805362231484331666203973579279830221269519944032870692052506676886434488695089101664777834845508100912882192953335140921448347118638117929085338003453343748501777003294696815339449679116335864905050338690021755255236634375441800608485084991983837615310020153406682321439970171618977660073784681996842434839696276799514192440281839555249992660916341769441896409394041043556840143405642939430143652149933062903589739640577706628516202114577830162068035457310991375276914001743412571397136263050229398115811320650541778011124950431327933745691713302354205754442509753189671718989396421210518328436619426798565881109669784970148341868549371613065269128911317447806370029097942549711253895788873795287257026657791388982729098679057357846023807832894649001890218033548197467927591136898849133889569621952337678906844938168640835906552170108436124279142137118855427112898581177790550444873981943857157430005506330617494468041203569685243313910790197365621446002371260019634409460417877474773024158319662614021310128756227705492594205942369351112434803291809085759645193884702764636611531023540333343589093717386680592591912687853483418543099623856376285889605458665509815382964977540833530425370375582919701241741210022179477330835770497038742600577628432798221344465265440643392227299684286769247188675456866264918294034091051605323161186950225317814747420859181724911292790902619813094131783352708095255840450260443809781418825358031850123679695955956274861164763051560048059544097602718393663352755553477578497591802378100171321670128347205166111306825754851528720742870918119084139433669651043401721487590417485396968146802740768001607303192750575873627302439999096951922307078229092703486174722318430074138458487362913845962105790799391693688781274715750223850738009677671863222204904128938248471417409777432401184593111994611351960257746482580640806933976938677150392184326505941662760943255411564979572725148671859484721263093565421226326431868607789236745096638901096693152242220070934460892365789082724557563144568821083623076545327196996168150406377487810422624862566658662993141847960123654215378776818193834902490989977705753874764011792732499205393037041185199907371928598312520961932264680342364362283767783965472224026469150790423203677092276623554389247458348806969405541282523517772955277329211680835598411770847962981244984772572995303377417323519282607011694824391242326928919849688221828473448959109961090675459734390974995618401539731904778182126960924537663695250380652599696686265174400163041158647128975055769286691105600770184821673046535852173041016732638780985452521745380402735172491041217945053699992570655713869845537863449396835106703814865054344229352234147059013444774686022655879074606774599650115387955398132510814032783709020502968647717809416034894006875490688041806166252101014896291269250128486583142071816971639288730483099760450273662976469403186084022966649722339286242529005275614257370345906517958691156426824050004868381985007390570695448728844050805812743067710813761486650520921129611587453418040384004865884002619694932828612272548534363926489674966911551859739374998496919585991817493575093345469063257406818403613169310241229269373234114985974016880304266058739620555541985879673202075002562659847528494517635611169293278448655319989097724038687839299500935275886236378515390447937088203298186974946745395160142166095304242625250492695712913745753471795624078139519201807548427993823037293408669866631180077344563751416496581783194664375697643376734992993192232976516801097025062372705371416885030041510337430678622587335101373146978018619047308762993704890458998869233375947076319332504628935503465059157106234453855095732882450620925035686341532095948353382038624725263957080981357987636709650073581959189613831704187344168532875516330818032187194886424511501957707283302647134476971191239369632688694764378997253984416921958098292303626427012164054327006981518664813965176231709184671135076409541968376199606187931928621394556058639501075003861068887171149569408980488249942317454738075072707617064375998964709730357184064139565142313964739813909004820177562322126360326052724862788750169956835922111927929728013187836311723245562577598594537055267784625157780217188884013016685658086052413080087712613940648227584828296605055096874633276472693531259240790971517272492520417892875906265497677835664519018681372020385492403546397576070475056631520601501895225691065558888774345610985333074207319416178166446596704185233134105257495290210065741411256584300261973824432056954542613588222328744138757658439327222630845214208921017438575336942084235083079898884050265209090671666242012713777494677261655540892710020199183334457699512682182240574750766556577079101211974967316522632589840916293258397661289648810964591924703266013560311592778244819509971641920729104167004585725031021472718542501996221670514311064153922510631686147596757482679555135098138062451330208389457373438266541415636239086770679620965016105802933103759610058228192663347719434987385980914123532352660144720730007613671870203754265488877452961744431638672353415176240270657346586263822069075329412397082163106046585966917425590025010470954321060183509702014709685417386262352646363192356186829551253308757754045979238927257891436367153343258699287499386298648021483097759115454008026214599449413325757530329085940005219272096683735406851693685665171842912272536301977756334990600360763034085725838563006031482490115720016022970269558380507841347916203721239243359875439011979722564819919568700545415553554993948961875586464803708661465811780660533823900113919336011870494466902754893017645861957625705271701487293330395155213528717262754007128568737554461694404477659403002626768175240814739952396531423384711633289472627689458808095431022320148006355508941106174821232239664752536958773201697347833825153306737302003808140569001288841253170549890630105489223596518576556735213738072843500325913836455694490247030264064911979763947865729372264966304100815831383636412073509218546303869444696040091093723464137465427345641560898651798040174153160721884131797268187952890014708906721953905787056868387442619816289410604297761178745256904800592843446252123352454949200051900408325818891679021141839676811935612802476372653351775675239166924207754710282156906875259298632950549460594981512778343081911416719734953081786056373836436213150099647296132025182523680178107954278139669801734264843054445963259336112633379409853892360293964551381802009937052999110201305038995207601996833466375152266900253410231176442139921477098566260671930490414109898516408619603969569054406900227942770846200164358555974300518768300937939526177500975165585705674902068713596937753333492615010127828402561272184554435793570590724979052248762585203344360832626948747901557221689800664319826158321724646692996953932603101109796321200511884933998153087970076844998722544612338822576960624366218978822040046283777481613234721724562249480240001401441985081194074314831934641231467024182980133988041036636563517077535352506733234193182234424715896741091479453441498442421850540834138970528965381983428779337992624481370863652493228663404509164170052237212655417921281229349773760039642673810450715197551331658016591082892182647872267515232989480034568004237964043816732711468340257577384608415833623664237440523456036951638433028960733901715777918054011349293889948078652753971722879637290924942527542873764181151270835443939114782796003060450215215112134750427456021157674110252171362418903505249712548967225602352658330330876237349374047885423942415389238138199579844262331532560648779131789419491960685844236610304738322712061745076284958353888602222905028333489910607090144938392652420571520005174568185200370731937206631470385861133732238317311754910680988259005316677847723337938820675387095942349612995073533324035137652136866919488358679669994479748287955326734900764718184307874938199561871798678740341734122921662520025643498169106532620766207623239335111417217762746826322190895986064314343758549588968887849858949317069810230501143373419459231767568702522566269003353312511659303983714572634199160276606898220376068324723265594001674866441978876189297054095669776957425084778511169917751142004776036742391700130487491031491817104969881082919691457012099883198176414590653944350919218341142716820136083568551307313657682153507846778926655645867372747841131334743728354344942414072596512466822645381322910348867377380469020971811160290493874847463455494692125481065107942672646910812986501559935331821772287312843495605073185244458536922623975051537443995532739863811450643191383697919332033218946291360341370274369525342647167577598713513376635976617901765409153621335513981591289247307133450825052882679133311854675726005501810714759704698757293615710845358480813849450633922420752987326720559351070837386941804795572199849374912674844320991466737826702212785492640297147998353993279127457567607478039780514395342798435999600252169609163866223864421168184222949576205622843467489779706070386471899319358298344139342947094362001438824351860778804423704239574514250978161069248762713744793443065240413296941716513123801659546915139144322268405603235349770610841023140412980995007951010444692230359725893840446539399093494588145046822182217026680451658314856517864283658606813287900812522218552249774751895529562146306130639437209269720877968061820175614536356552893956151290668904925502104251003102972428709428561748673463292510996133729693736007507895642738513146541899809392461624278984074125100210407435092078949802640014152267367318915552393521531655339878730806273284027862859695233070487666413973296507523542236167053482331696278173179763492201362608098791655685502781150337066855536739828844655077961433732154935399642250380255727983884960109364696852958949591394631415297301939489199004385400600513440375170156149229844319492391352583213110239663939781440677006430710689958897637911206330021779292904609418066374198098159470637976960031902828152850676745084586416157840054356902230545990964847753638184126736729690075104703235817579314678293214706343065033983410435083149217923933020238351632988353286040504275373067880267657466727369223176249598169972872029441362833503204496331764930759346061906812196514811057949068194712151786271102570080733233632160502583802621268206856807681110951699916419339386379069341249309435685368746880836823717569234742925289712773298266964945962665485591835631507086906519920989030856439999697615050010109439689553715849496077068516460845988420228471571720078610492788926557946210803460843605191738949557368266245268764324536660141794293760673047080811753405987355031287231106365500174304749154812541864651686739386750251403316372518359491965579508044394233310001486184434033534741388017740331453282267226525756142661126688075851496097780447966134608731213603656804373263765404841395102810682235754132277418547504679924094137109875132560330630160740807504447124745500813583679932113853051695306694351578484376314891059132851718423951390131463084085315069983443832136572958615810678955988446137627038934629471601432052032469413629398364229310609022683301964179009560474722469543527496443509640766379114061915389228987852587936961790803788138134055724715271407550735167307517563649368528955503882652701783966502975407904654918748639805846562103963629988563106376288985539773983123087750169851685193733841299026401435688887300142278695493195238355797872047923968469751917353628148004740384807924904354509779838476235587750097354422993219083975141913478938089651771032629871344082641518867270201515850251757387387002740798679036180949493815415732166656953758084569625451143129657659571692025877016570188340470474274124560370233367036200845570280073302669491397049265231621963246527077754482035046027003197279121529489895068312503497408057914637845442858264250239116444105659476693073426671941459971206518296021692345348846564553340416356362926633495310352633669061098582709565750145590654943337396473371709798934020099666805695022118217541267414295434930478374004843868931950234608130956700306705592410255812442007569459983494405397099070309758806724624254870956829848709708133921907611268198200456957177455527122570781876092225951624225288978878487669390036103461871157748236046264207278770688108526098088628681245313720541475384796695981938148645059478854249068880513434159364143714311487579952995236257083290533126472014487977509240269890264909985495163891609016116731322799168270029148298349912092463014600884555674430091401755519688697466490657427466201417025810152197693973882983658070399010422291632750175357557516114331651970928372410264781764972092791847749761008814078923464871900740063262043023501681804447059212751097794781408432625024354603630179189369802287613205456208899612025548067811590376392592310219976855201217030917160118270051293118094398224177496766365501415686159424226594932064995584335434565691976284391630665785678859827323892528351527234279575023555758735450359886302356655043933729538017966058963207515892325336463708904246767845482588079834340697822411986031387661137875403273295595929785082676085238961919810156682013571203242678995417758308964965034142208653413373506493662416183561654390822764707180465293432438300445782026499093966153750559625205964411049165018441069342255326003370355224338950173850374962323759551198818786584658978665550340399770234096101449755798154556169839047059200236829799499555396313532186245090952709215731572915973136369014206187313804547215078291799812351003264589351590794205022204906719531777014964439819160294127353180399999460837649944971120050259334536294802069836227855519634063048863808824805848035032435720981090954216629236580647617025956402842810891522154508388019497182136380403774430060420205238588916146320955868153442536757215694593195582807952327276632763524983700571901660401683013220136052367352179648653915163076463785105863525386607643440424372330718523174581005251690860722220968542752921675204822454420124927747667133922813271764176879005288217142474930272402028781113800888344235110715622113702635256418340971536001338102232854238119574082395583762272829647668066031409737388889664903799506658086802987289566439290500294046212624363581475749587972686597731183086566007040311686123841068208612116469421941128786744254857051505893858268391558186100685617515770210692331886564586628280784478023396285953141063622642659575614843877147980337225062083434023611085855709803637781345637363635443788048381399521807566263047333466313838565414294270798093389272514802826477764005289555950986770843950645140121772172699953452458348895812837915529669587665989520117163023866876180602809145673955279473575266617768020137826855114832174110978868155041977107251240776070388099399009113728591880123952591177883253560269093205705082558940681651010806141646098949414039698305363052431684210101067713426563766935118301257197360940888101245289631574193556896407607243167343559219181779998917078218127513167692382186142165019481379045760737106697698523910842414333512026759341164618156202642640371190340893279481694723061208597792599861020157289720936990678591478338890900972273624340251193400099632382744464926738179486129345792039945302376186332250615823173843394460476035441988177211068669088784930792731524132533387796539540808949681460242641586282955220474483427519942025117901047123210426746510193959171691108023612970483243206022643696574493170248899447865776959433348179016539104002888890379864934036668209579047164994835682273630523864108226369565558263838660312226285610645567785346734394952059803659643925744417596600242652660671762145869097270013228866561268370715968635220705620272194446490594740706928364674615707611683562639969905821840730762271746052880462403722828569626682628739938558228513187711010894407793435625694880929148074133718852034283337687769105134249811140529530928278460875653705797718499161936118314702820307045691104922595238220299904914129714674329652248384934974284256461191977388023343228282872268830892973387705997882875403486822419909473604586614262821229244439642022260573129234993218669427853701358052943997845816892126793864521082603820983610623469283742721898026539035462444973788043549547552410030796527056785893406325789746591653686587686896841785100760711072808367487728171769092864786545426476193437126894627048349039382618120460141855068543067128005429558783879939154042523248695363439509305802639301222912608484782839125209407659012256925484567512699042733190594141995140706860045097902921456294516958084659620113408865459243287424871895184382419335732699586961230456124801079649785680338625899636132570670361159439291371445568408004326475603346406011708757017169335234582721375096092971142392844658122839849822062004908903722865311978513356517865676762867196408180589824267570101114007848108290824026876578030881149627064702698693263059047367833807916688352019735921408555230369009700549867466028864778616561355245355591646411636105380416456685625968605786460482969611652219345677935951779178491924879081282465456821679393289867072294626687309366083548116391269701411410660702081556729377468397815941553494664891268316486602477664384231141477529927991265734891183528620850871485260620971278069286284297361583534825180991261516992945426139926304952997475438337999014499644027644996960401906403623851120280594151676984186103900209057466995715434657690837085449924959544458323076079739358296234039053386983554170206610572685977736755620908005089978816965203432984536663540459519304888148117708057656638671606435240481847295999416800063791454606867305577335003341703721383491571777677689075066365512380632961208592887565543829951349804148365295777934884297420408265967966114557375445956094936133773593697211017626732557121563328701172882349952189607802973989033764729321016110724320694155950960737715591565035563958691755800510767761312548915762275783003680548179242018958732724192983300644545341899536924986411263355074541807375773336322615792644628794587951671398906919211710981560284101775408160173486108971675632854204823790676222987285593264508724518153465532401306645844417401194805559040216125809137088116770565014842448428204600115572361629945375936950496031337365408140158417896147671216307312894293192720687942167570557812386740121027491038104969006750309514488548034408350583446066247422041495948737962974358218178857027634707869860045376837565823227659286538945135349595725083409211875946017241659668136539390344629930849493760495463406717512067334847916627392570509245403380330637323714567126904997933634039984802677017198679663539565806897280143755940653455829977115162200910461167231497502778232788108701005492452436528430369699096242845398603233890942925428521454997325770813069368503942565289995702025300416645359166332531247580258657408139801767856634070014774689381159560173149627519054244399723543288360907195380503105748305904189567407085331436477358741431220397717329332617261433217474283664936705365501128822076574245523312964024857526368485623985681476867278041933258972481709288343531110391748126983411013637323896594377067834010757039769337071153485368811133569324636159793836895850996244162588122520133662974099807828555566236137671273702760560269677646501565063053184249453521601013715111893760129387768470612716900308056240670557446365689323103848813434103375836845159005770134626809113096080370490008499519883758116093285994142506301508064371833065236039103676898721866494668298604001419173745739412772594243948157497315358177126968104391074839199819383497841430315411933996284134217341599161291840879632875009985113724229067961559491827704394310615376969348169769850493861525694822822881682949940721360089521704950298651690821722967343328763878269865594776904358857507527082746731977910657189426760775498031788020778591390758509184859772820383435731570613861430126294781540971236563920907313263510687605159262225217747639556948931503833674989966835629954183218338956815379555881309585720485328748024370105875124290557275448038198032388611236317687467029417377124880353062098208712187430882351566164088338475093814461059374443202746131480212527919452630959408402425317368881561046373889652982655068729107505562998749239867571664896155827611402545322313726892517973488735120197462221009468619137698613644690273873008637997096111974518662281096123280467861672831676154794530070080579163983010996919675108407795835762025318605923317455275191865309514185622336238031436509714716805483993121931628963613439784722454159472558229065841862790031168638928703056516179615836300200783621878007741185471131210009797933738568089943862918595203718649370250537089291377573532791875219804625171256370491252669249564097241718795530562048587451595350145773450851037151831725366136276022595888885338854369945145860308458295179725424017627346792047095812594273890655877447106807136843374451390303987916531286617366284349343635889259013975751714886927774367220606032671200185141660234988384118199586488538937393750182435159027880662692843522072498263422423006024262780288947837465562014965490916301135636552576958428074877128242980201650913655068384191872403409015011130885041480320664474128935388965739473778793241388605503413557487404076593480973285659032220774676736497654735750364605491795153222120689871652385688030395709719970060829371971782211164134680098265292120636743063440694275952485110597136402453965897047090126564954310726563103759787893227547631896036918134608345437927503104098553725149112169713911668522772818434470291364169367549026126009931753568271991870825847233650141614322953803006786442578936588594595427570142398103901003167854234458735573040480632816930605604502523858007590381075917487736268660931275046653463115483549398299116204768236475768325378235133486044905424487533130157518048304059719120509139746063838854029275368413422907558444997445363033847397872378127781279434399760713772949084899189534161918553223447111539016074205600639050630453486764336361362808783627756807626827607857300320115434382556697620362200532262057088908956711774415530804680495123438197664301058014528140589400425886285491656817042328075885829664664987951562826914998862034033898166293363997777417104948269809215632260071075147426258640612596428350675003674653661323587914017687874344870753653104761358390295405755715337809492981014056012126735763303380140938092123188284578949092629079020302475443557313343032492047345252020509409781983313713602223651846473369786383955469987852693042287734213307051180584932041560945352333491227148802754703329775066591679306341091814594975421233849354749662458332386764095293487701781480672177935972153372760145014410008038605264851450840832175527178431817673686246878221061823248437904236842800748927887795802927195456770882644697054261242812060039263296486430717502039763584885996351769514116677360448595097792721234036123583485361525194717792076712368675850588690165728461589754740214023168686689810651852647094378920308752767719612069314175409615353526931998872250151905945611294890413942625336929486020707233871898946928758848998388496285514290184230681876518288132129051959842170054313910370289298274149584637854814861489536945685259527850273283395075011120555668393793382671490956505029444973185731757569686274440837490288240500378980507359740307064923478910381780131077883086542018680655399918005524969490802524366179180975582566809150235762377012372722214571895318984078525480085800777076689479641630342563438173502956685762083769446630269942671713539501162248930750489959255707386075162193456842144884554400187568647276819227261140934206440103621914094135316696881721373545004035839313627245257703831047252321259529520041780291252993077673331445841115180151579604984498087642117471154933086086708946942322521802160187212169614196630747097655541087042406336777469645621414431282904189528640438743300706183556914506952668341455765417881141288928695541416241208464074018742287539764070971098372179461370416288817544670508111718306689604790076068856185632340945316633147330614167274656878321604775458222426757531031765166265599207796514352496899732839816855321721177192466505048573993307850269122631394063002531726753827872205236278241620532003705719007955664867257858456780681952556562867557911494727163283390145923737396422660225667712141779117091622566143706915773103706639845669126756163907976702877671716950939290621025522697772483016252258701593783320414769970572829872796539965513895263796740866008832549138191736546667965858582465685947353272501971539647073765770214089507779378372013440172295088428873055957152910232280007810884042457638274995116559019968239423433983083274142653189222785574571727554369585672384526958358727166956792745587280646472330090824106666405493536359302218908660647703480334366437221061067288462519801843719401111760544065662419006249215458860980706487777036325816894654859525276113559645599963556215884289009457444014945638556545837973159793925512262307189904006014876897142878595827402782421196395844110095411826004238968180744730185099722046343405434289588034201197434280484352949991831296324807449198518063294092566564149341894287945418277164621967007293669864177242321537312659579766850881172216195484804148233045778273491945408376134079960343979803777734932673988166987104167007865884574988100031743511984497086603397764887875181612278854145720767623405064807314991704070832831300962512659196978176913298076013883854578431750386917630119876795689302281386398891627045949404514875398986588151730475708857504384631519876868387854392091759429728486417086319136774998017701489761920976249962405896432241081508605593286756719134987408456264434318863760745798318279349027847860122375073624449808777004454674785879284749273933021394425127763645854121611583077091698842017574605875134368487814136629148050204753566071320277865410612677169228471896832383887143405402502720844669461639307925487356784918076585807832937008653030233997923011989792875855167449704048101760579623303028512835956068329015403571565221205464527248345858318194053349456028180813406915922952724307934563244670647937984616212137115605221249827764259471481490644639340253551602064201973482397937000572926053483751839040120857552756626084919850675462907066840334523927303140347762671191244910985520659465559344096798027730754847814982935786849361816292870419820024982130643590693042828877136717921592161419732071811010638355830361514743552468830133112991614715376585500958244620831155967631657088420998982753346236930986100424071701899677429306388889255823966400063211169592349678922299308377350489045129467632527294235402938328207107535297669469124109833405119622120595136046045110283913817343873470004645586793449002085349185847898222740117024006124162326434175480573550865497078743911275178180890688083291467436900964726874153274458915732114951631976894634324407740091939810785361185261813661533225236997773959903231222977648627606545301204119613584182515321902710160591683328969966482844367561565925041392777564286349268513698365051380034832791825644862463215625764095513225347152455178439301038124978991898072549639884914178896350651374061119399163848249830946985012585805689820375692673340025686847443807347764873569597879354319372125303423402042335036758127592011778485848242619618655702524324882763050279176255973607480526306181759097539343152279187406752967008253858666582152989504118146002467348106832188064290549592866598143936701108783367468542583293712717225019175988101744894959900378969150462766289471926086023784929629389788141260624049586590032130273274981457840855126735432542657982637726542587016186962699447936164535122107148304873170608390334618819084997495421801506808021502196962296934984862120194209014575980499195060309952769670066317192773660161149766258406278745402364703758461984586686460957884618274092740537867487547706757029742040379438891986042416811220387530669384918659826768872449709765731998787498088074329523563433121096532541971813833495921078984955042051469812240984113998432526088670002583732298703697162235405076352628513113072429889263594907078512042080621621998141301983291694931071437828462174964938881357942241880338196865299251434260779069031751562942305080086707029010197002470917995026929360544728914023057665044562283160409802562988396372918822968451866982671766148990926425969702741371986198868169289687924976632717010967052520886499588111698236822830935687265203679859659800835599026649051739139050980433830039424687523643177971654257919834155439260210828743364314200967694217586013219090531265006630522393581123850829005156383733257679893119861195211251258282367919111495665963931102295761905612200245285609607433714082036979555064476157393170858298025155778055872048127644328977462273583207391753112048856536259685048352593382731656423847534844451725268878922054022803750166626858670325529152314414978004004773993295442397260355966739295133273567196572988855150755674942601409469771077497132065513039860364795060696985439180566250940367307717257298572934462653711782811348263209024429242216715701691340774268361464003715647915178735097054069209659191680282303328510979252955966234114203156586596630976989514211516388729648802747200405064273304081047147762977257512224764106229887185775149924460736256311691741825502312938765408008845073608500824385243916761989352302642342854566004906198963158281608223134477250279218773219093037283475716309995360967795702087057176648124198900672027817170410472903792398077559020522326043551346214402467613686679728717383612294522131501189391825585307407141098838125632423883839626582463714597096329039348391509448776812641067164478614510030748261121301001684309995295572336756427644441630174398076828816990112602587497431672716285051617714322973148461010478767761585398395164464375118979314068109768476036106962754089785267898843440599295305843307107682426576399692285181892983157269304377787411863491831445471473840311641333858641744482360299177996919041213748850733534071176959760196354576476215738552801954713738392504530311168873138076330217938090392616489441619928412869798879561246477589979388694912290857919535696335221590975903519541878381840710741506594269297236596735029113789624310955006908181072601362984337364312867473628211680298573142194521865375543528657810227426688720233601984050418347053902173542788034951575621384165365429655750514730128464613087429487776153793352796060719841655691264405177780073523613429892872605784656599744076771138065689431746357511916372561489630653918840567594031079189913656427349914030345362406610913446666742686369995027955939002581782927876097257676524178876365225368690706711202260820539404672466463129503141980635932022663105827603412629434497014317676772588085432344403791428269916264082084766177228187413171224121483790484144269241800160773927082734571493186625051285424846668732101830175649343096968243216259774424842127774947689035927451162749632151229024419697017029754907289033882061473697712994173039207771667063438018128028519190437244485286273987532616017000370739986449029083705066840702519155526623092229204069419428957107626761159693274823286137983553526066202301290312665016618141358365276014577927220703602438139744567116441118097161503781719247608199624945918321817370754907635377413367434419965200108602696875830723845817224152473950408347196524466558471953005476363003917409019211097290636636569582957324257054417943165673339727227453987936494576898892801180064857668673918849482112702993893703079364415982843124645290935451540676601880396910304926370890094425944982146786251765694470755999625138602127861896239055449430138234827978545342543571183057595611149266208208677242168540844812117396643741112037718597104515623579042718715965160641770556266765701229101123656482867645985421168724176632165310715316462773370382653821696270616757125648394372741139945910500514028576618543279569937642591597498607953464253766940894289555876594761323999551273666788547574673731847078172647908934927533485159232451525295004151737809958833593255284182383222966440353755985843363127895660619258881940637358417420894738234296513542184979302713719354350349350819535437784693238282527939285776658881653226687441436788490990415517881590072600206639041733904009617506633878971283897733877516458649382926789749186263631922014487109744625434401717399664465526914427967359964692973562507955974545095398828552907451460750067158752051668428944074568036718931968122593231022813080683177919387650095931162174086073552687372973560375518171492473053803682550245205332813767516924290809974648902113878018677676900924256907000435480503522187285385601549725158064415882234918275362176779562676353895501853088021391001442359104514117675430170932774585904740208977536598004414024497210745026047992441346133358298266577097038032735705574755218059929120849495546593917588213316343001507642575902728027963699276257876941996442981992134190956732013245614529212388366582068714008572584976872159660224426784685396383100097788226755195820943249767263196170283107367215342851625182888385991519252243029697096310200927695995097013237842915981633839159869646040824371809793829270067407919950932493953725886327511432369211955421140101509224837824506493582708282046839114467850413076730702817350762941104604018716436967156992028878040442455724473871930759358777437229495835918255422412412463353433657910550157071179692388967193733927800146788941633438521846057066174131105783121963752666273909006763076663342386258015632715784206541632412376915111353816517479965166084409809407677647504735290279455474163002891488964467506542279873455560019552881342310122483144088900386346179180706007906062040861890362358949534679610989272171804916794509486411241591043695194981351336272177672898626220018752053584343076516907316326049719237724283673280021833123604406307305500991820625885566297920050139148667244355878701842053493990145388920947108310570994720558336961408740341971631568895450546717245368499683948859007478516307119189356296970231243635553444525486583835296209982490964723548194795384095241781701385889009974896968865385833638360682721892473383634077746841934318524578861540258508503422117431479546837321740954083155266120294146677479852425388405488203104549555499870857726840424029992977747322435119892538028560938870622550583335263459790242056663221842273591002577023223966820956298628250044626750916187710439963060157072390269373027662593936807027871437221195558958937508958755576289549193695609173366455474673552252914333414798598331663868258115324162502294949595901418408039626792964117940774144781728789746768488521379970281137419540788494677599391346286706751636675770134553077139462818907033737260731059845305905894473784518263298023286803671568184255708901439927759701776666662703304087341759811758865312471378188242665271121079194548831532680413964497088254396721327486124322664518721983070191724657223074039987636843176389605517905614657130376716448230154511942961842227574656704876060252330728128087440224305004208356853298280298397305846511211007270754378267235576237017677186971125883662976073909469673241494799514646227298526146103712676833661324419327756929889731680410882217516589241837114499509107974807650467056476435142219510149632714820429502689644618600228977936561864752763357193899544650174864907595778557266741461934666527184644401012577801711372757536433380811792941345905626897916104031134983648550406749630635619410803648497017754220421946224257502529214443843352601872641473651341243910434447365234630993194662027012851545238415955398081051553560115699870028973106605113770835008041615432828768000890151454444010563580619036950756117992134604433660112363448624196702997221303389357236135827971961078105000410948896277615584319328259621943275842729587618875222090640771185420367684384105167068126706967860778073110438277281764688871559297043807646113290385285040855383951569669380084197196244404201832896503109622742537765974856720322635253850420381179748893498147586105546969644165819593328654022668064731055120595811230912742942216225481762625196230085759068659842083844110736045582871356942483349250003330749516380214365054549705957862473409744539552747837930874703070304264030131411910128510262735140518268810731339637820477027159782588758276974609348303258671859190704294351306849030654637121203739291917390430901868929076401519510440247180710705379709695520157370869225508764025415963804747857647255484270541680092289930354542893717749718570030368734034718134780123747028564418014898816444039152365058989024764382530326627965295280226059428064752052105108051865614072798634461761911089028504472769759145365264829484685391338859591081531086927350595828927826782882571671045440858700794971699781684768911556054536416901589068838728422910652505507005027620678967882905900915983867390147372872680195654683350481045524774877244682806701935021013052197298601030489090784645694253267739819800660769389696117590128312774662383413500889602755698416605032719025697798450115096345522275011964323758386812505508498359406006200964977528490965052590795784531434147490857823337207945687282055910132195567972006260798727945464749991688224307044866848591490296669011955759467616429797163043624206762751120137112913566329098649939770634259243356395258442230178668677072504355294319851821501582484944139970883105736034403109345368713727675279862906717616912287022597865828651943645495286983647207004734820557072481969020772508366884475343651950694781097539075764632563515535016372656594851412151601511665263379463786976600507852900253503305945058772664529449773787660985087719984613623258611618147367477741940248465577326939737941422069506337433954322836300832977357292798517075273292579994788622576044390326308933978708965065820508110894370129516875820606662788423610992223219570253751460521066416539427763624721740623481551212791289951437763822209500009182219420612322638437629712209574812418928586759430660906792121076612870125400487485369540048342164878229980987964190320804139673704276901130854225071327247392193202490970722720040520354994880147975384677185241340401379415480265896470718990953916053096633877820280491732858826291681306271173097906080045465324618308599667421853781258007389071311761484371181073791244822281287395847194803140946200720337984193261377903668647598664093357529433790436730758711352418750505028831077046334533653418892603067396719875127327891259681793605561764965213862292589351502198626500086019426477006884745049922599246318895048517959416486569952221027709009291790848675521101724585263655654017367265222750979643257232466066758530616416507703769183920913782239395651313590504043090465758570968496936889463044323807960642456390379950265837196242911032366612299197102026976200397290480041667615806289783152337910783926188021424130612381385515908718675630387602949148518490007215863079058966450676153772207374944398649833654138375920148968547603549488146134201546830447703790618962924734601900227783238977272662377847496579542953113765626985726427471039446253343832198322178363624295663172978471835754366055606258906624491403100313714217303279653815395769898637232696466307029167331042421222985274020187135264458041165267788841777582632340387287937282611416045836810084715555441993001828335198939689023170105878417614793281282802813436209317786659051042515115976331668935603269763791119600515443116618963435528440668868567918894998719332503472185381831030286358167538821669258457651284495469153382400771849773252594498255931286738249512724582581624547964361884284688967773415149135545733901802962862714923959492973837759549267968860948297459017491206604450233414734510769270273599023346524725434810435389487066236795880731273455801170636480915711870888885986310153703921810861993984705794601552217311074382123482267880171422026670693744938505727508970033008872208992240812786766703582104016986282290884357413170881855447330340946096012624847606090909147571632882859285269432862611885557177878848665044372316293001379650347248253588433915721652796538530122267304816330645881925376622831889568844360020805013144421597889698838410813036793396590110660512496207979495885109260869265069036558049772972674426980591824199787381199931794823071878601334954741844369375465044257292376498888954010577789419393786067109131484249722352649759333552150424381809433763790289804862361160006410981938247668531582116416675116480031845484661825551875242938593377152166904617258973177693934759293582671359810615569350939133664180625564291219321849249561454271275271070900723182309099553941605218293215789415864647785327999994895379160793424979988972315627606357471445034017426878954517017643928624287245958372894946857453597792374823286594118582432123889023468094994223648137705184417283453097998437194041488558242251523813494207846150511843305930356464719999915217736830835538164670296695161835148942945502921733741377142033476540841436634182538815259733240464182539083672121706045229325639491185354787803162494281866985942254780125129621606420322567491161223603932957572506903322588357382851828680448542210688842031594012082659637345913919919388509519041216876583554231065544924875363880707548996773157620905723840870810516312088193500779335912388922261504188801715054525330334283713018751749854394152432972038245845634933821206676967644168885034293824674137460657792138180611473257548681648152858314119710890969031314710566253059203782853345585600043226507938682035936781228528907067543238442578695972055950408419563925204793728435503156922393882621408921945337591232448828188938197549256008953987497748157267400543480559922948434283975688004469050886884655843510864844509048579442011795011344521556908126744167077017914195512038742021164410949088291364017690600194209633018239989296832431539382564735688989573955459202319965702669549008674952853019455997350514794129242596884507910769298361563260652342028609489688410484909518707951249074620107771941793683842005210370384255972856544133227784467742164935036062063579776731300730391865233918894313599795063304553836179635184336464061035140223408693354727700653846340359545265551765594452113574245867431599286663290040312248477560839673434985359118014878110612307484740138281319722491340007535859736366783698366733813701455470198365690469572133967880921996932072842993263944578536682337578867780087276780004403721938580974586364186998984580993678391820650162994020016658507238177541465312980589851794536758577404621196227674517678274134308780957747587755208113632526641510821353915921674299552350505326393560383893020633614089730096785427869605485732077795440193243201637369440051544741148298725717358697864067180621372985107399341191328389489476857936526792182804864495896734900305869169507507763917166452313922974064821744779304130314942503786924331887955833460256461375792957503488505777903649970472288527952819832062276180282576373358531064626007128522393452823875940928372145913428896061587206628320396043350736174078805092508174893038775019867108350219856933846621463399021723351066959495028799046626512283162966096933013338233070544502986244759902313757220171450666985378906532813839069000378094782233915616265848859503191645373636288691240987908705434614755261515948099523271199011164825536121707007108892200014227774577085625321749792978048291311774778463560906184700694657121001419579102960426920811417511568209086384006387104109865234753916730280816156965041673830264472016897390157128198759905596731729724996629939486694346947108549486944548347387917448127092028289144165005935477609856440510894459499180335276625639180590026279266095535585516106956439990503949467890564243511314944222929051962991559555480043157192897320960123616951517118830246542299579171344647000468927185718490662841752018396441920073291783202274121947553435156375135313357825152421203390697354589063490948694276800515442280506191033520538154807874300983928538232285610647404337551224268337588018937642905798554802529289379715340658056115595836871611742042828356321727062098459169588674517143726121099499431742136296890085999071851094720753572746972276651729698382303372305615078989960327264133698432834662284780565853043221477133772943340871402526159337738478037697722325981464327359867219309371293403413957180602202315956960317436089967785187451011943101812880605850788722537103777933274144337804994735239248524186697628167759446287261837390923929615966003130547889152713606488737712418139805168224474412498601732451562280325198918887490947059587370650473198937124149312503085105529152049879182738271866380115308360236098475380082853711543626210306042650309585508440942836155545552206653795216216914154471873067170152439092623365997367868409782456582158250053168869182950074746587363167872143646911867290231486387533357458425300178832996376072049859885109062686757992580683319629931507845188882864564614919954016165792414403511949053338598707824224998136542086192102339139779434482704081675229629630956080711737302601791513179515274872394409657460974260024343114777711791343686184907762966356293911382501893551625945080199387926325724834846127182477420912689384607147731031533485823237652310016981901179757281829309426674153411477635600275255045483640402520315118512530589282616214858572627241603880712780424902904596857561593058459064957476804995300551042381499537884445183891638761035234522691416021100595050925075519193449526854176447980557548594242113249842490518628571226650038037879109714647573998800517858059837098739188342512432882824675114904109709094633375209404254504743098585708606363986121846164245762592326543153693769460154626146550000647587866176946253866411118458696727633753107196985693112835133723860011474959866323635523839834162518162913872398836559663272488581510441171820431477081738222554355090888358417363441360545599520472385841478603441631344200827898389949580781350975045662398032412397146501762269223873236664818471582066907114697200857315450527133501203334988783632324518849620243700971010694813139065243731938192984468507337967653143322230840542904758777264569074004192433107619072446563841759711470523650423678151991174051496813203164653837274694375793223414362566710729672357040459276679936509796637991460910667709576835652074619143938197986767318951832638354105353837336875573708775061738368502133484560692607400537779351912129364022432845957960958485639461194858331850051095483288022803933935417981162860413161642823543778343891750726625111816688035247802270499654484021184279740898706826314363996428594253881878841880487130043366585679413691060652465624193589120131411484005473907063314444367961628983148009624338634798394583916191378384399393026287010246129218035405494507954652176887191752289792249108063692134919035141632360881977576653286716522750500152525306147050362437126239081391773069045202851495615273000580162997715602074051223878008888831912589903297476431533289444518210688016389224586316577149196524585264656516539032513511635163119389960045774396295770150772062179331828773418524968022901601602513492336001671339658611410124855852533939435818678908998114894065397015529776957336836427342739856224508725280171882431512539776510317205350992609387911142946463179122815787929150339457555361443027592386884801311211787329587624549344148904296551998171402939996950728722843492052318861791034174234291010222243518272947802337109426168600496940711397041919532523488065741890398849916316997107308603427743615923329843403916889016225700964500017797567235464421067730199332040243083357157629044652754766642322142055259740942942617862454944338106108463931085198114450483687326460118395360712074877980658553606441626857795003714949584495914300907571896279925232873784231364802259721959883859997004787974238815014979720730017130399614060749830667246718042840931493241583906831293988798043192537105927644878436267225189945636429940510497610340665523667779128229825723431204037564200557368485303125414062269724925262502364650324396545217751688202462838238811068803308939175960577837569418587707317769618417290098318319477613338928761584417081167290509855042887922945259005561255877488030527357367086191505666206552417894368248535161273505295419074352165333933378353026385795419272183058090825192000903540588921013172146723502450115107749387293541620266208609192423387546418513493911246465980165445462662050076859946333309248779005403823003756487085873908714207340999797449275828319235311644006172148316907554388294181713710475781152981419959356573607269870627295620657347524323210646232915538443729755159881709876776794637713351553165009255532002515839530117620781754125815165469383175553348430428230123944137908676252183821211157378719391948737015809297853992643302524436245093888215491006262130106369762514754003484081128559775178042073204000833429915198834482627096841859538292930573694838782112605461457933466501132459178583987711689744883009590373392617076690127418740466682858503376064109305238367966757189645405520645333029440689871789046163656299016433871313309124589239522662460406576689026538852133090618316747250159695944302138914009538178451302597304098801982603701387053277786545323565521734197319119599560211841664406911354866714831889461017493528910303066707221783407263393045131801978580723448174112239733698596704391947700607500799884626747210334157583949769053260570199659810865073182165085519302276375351880532970721884356534912645497743122167761110210176981254630960506249947466720013439007238948754242914440261907784762127446145319651358816418777297384529655454325716642688230235122743842864266811307831643632834013449804293400809569759736117297370504365486284645355505746405989232502595743833580854338587643473372234440242342941557816813791563464438406489546585190183693949841059352727990265692972425481738923406726680385045396744782240646457627621294493076173148424213457310021805220992154427061597799102853754421013326116682164758100976214910499175426571234691564034146941614863165874045137706515907530321777808584531359309928303959838459830308393402042339343124719038164379340330997487736143890356253651600999229895769141971143255453230463205544463056821824697482498347038408176179600158744844498318496709796939083887855488790723428969001892333930431263101145730111317285965181916408331027395072343251154048216945277980752491539745104832558283488285850054149737645231648030307049283066841829018739091368531719284036019797659108326452489691062164824912544926743604727898375001216278064392218997234318110539037316265046251468693646290977078170185877846709066478148630928952488385080629340456564492470141839581512340293388470328708325395784042618264141182491699585906661109508120967509232569508911401264767852199087530728809103876554075053152306337035520998200165912525444742733677899343634287534276626703150770195316894373316377819168421842347598608002580225954178182770889497914460111296512953578124430954850231191055288703668552589269360184261336907469216186291235879594850169290405951028983953769596948199265821147071724804620645036344157989174728345384910481465324178478596703644100383336518052903281700409768437537208325972496728023953940769670152217651058718316122493723987369537759424385413398858829527420935930316785258461953702075015345226915540862269097441811811914592267241300312214504000836845913873144970725806765262950794720202878670252950148920228464734963463955409826631581291121474336090928041200213532340450190766325002023321378716445585865999861156720588989591446654420050387060027988663703855004212248748265541889182981049519791897099792818521878944154183126618442526564595627819460574215965435260923510491193280496930619330216453950416354087903568860020078037667393926220230306380903129237593396862001486199179975409947515089136408444545618293418866703050208142229685002718701575374211303334688543309463461062306168585681869156204747764714744406406991203360373805029015542682959151948655115304198332701166282492339861589961633786410627741521342993547663544283918726958808448127579273238772446297672862987672015798919130860611870957659638082459596555972485943938881226396011520873034606872723056075916870126151605632257755101575355456609766141114824247867740346329151063906253021073129172437810692168502432517551334590085514319148129339466705644406577033092092401389291009540117378999604098997829422416442200342821611164632408954875586381576080096432247376667811209461833771381986543985729189484097645187204305905313209645143790601635670386168553363915635159017414966295082961043048619051697117102524042002166142043002214669714602043390826831084627758431170314244621123217245550505576694569247026523517058212644766093308636908045591467331478977134091312801251421011628286592637800088498683195887560083096278099263000443793215320433405414931146857324220410939221769553169753861891447938846302989647324474473339442554378191403593412947056034317642346335113560891014925723316987412942836035733820295391452444810759043127637660311407208223233582271270808720573236294901833829509587737581817726272465955086536496212825651287304794148944968224315521962039954102782269188591375779850364028698443324453584806163167855803778872761952097326154135281183568628647862405292372647064484460127468264519142205636290930142914670244260941018417280998832983331146904038731718732918293366687566729333222059520739741502993498594893821152128990543281129812640146376354064507643606499049486345642151397989928766306983011481291427647444862690153883577338521255725905162279202745256455974561962652277561398732530381890169859038537437571541251879041045856053020633202878150600536097395238491241026482124194370926427340047705016970454802668149580901387191569304061784591468559703584593545467280872812782662102906524592262056246352355638190448275339966374138874024427437585825174140604991347633738862304377132027251782499709334597877179591506158431119971345860184781228800957068701651426779145829283614057302622246588155381862564217937505610140113316353948948292717597012383023783106312895732320323055845027794157974026027931413961275064204360664222346967889687455583033871509429957001974982588176384412219534685828800970307562468135355671291905188581583662360171640791642685323119294764036610204323551041807119176705798450980957518425682348950562896287138102108805456867353719452162323132325771817893511290318322150741010888223878784677869939766900826730504146805175334853710486795629062289373633056264180889281375904923942534650772259052515132892478391249095607217298085378268085510555558953294961315012947066390496340623649608477102465030460873319898139494776734517375955340551408171932164807027815153294103601130675195709323629933350527021530701353972274127459434389449702411225285326274768997214727313856299730976882628391054098295741286608056077959020718993910688547789943029964541775484630094936822837770972295700484496810182547070060389919585660767069266611570307613716881466386077569581186425394484699230762510840656416056308566451746980061987734052263804248513470239436079041510347468709652355802616408390734390605071226013426786054279873883307178442782896894198131457138922701671489213122877325235545506477377585794548933982539034104271116220516858311867455143491281489291108531296499854932875713213102872860783038188670819423059367587698731899787549613506017391431107501602740087810642121560345785228525702733474908087558496599106134112852789944915281803621776342553612913986123285963200332687842583620970129842410969884325213297518539474658266961699906850865557924843959081427752526114636904512571956417172497493801140946099725443811850638902288005527104026634458108013413804800160082439435487764130677285476827121589438425676821922754106156206502938134392179099784485718911239908992383975553598341243835464457358626056176794839637459004018933902911406555171214043081558724858510905088350722389335728826038269894020567297656523082027738534177166297674240943719877946160949535777348476004571601028205338981829345460428848204140190157430596407593691453669320847031088163352496737739882012611793440504719102193814366142551163474893300297744237550635084714741302305448213504735841680301992967224249316233054448573934353015279401268153869626810716339802407129561146370592073325798111977754742324033272086441418377367312598665895278817032863756715158760322949793221861622919497615163700842864005378077875631288500718754849059762658614172572311790699410660577909059111469988242020826192763196736450332675277798173744909588572791320860474884586631839314523284144524712721423664717649109784632266790053717399600087472805787587777279701376827258707144271813603592538921417244098971682331261638987576225251989915821037738618702053272245661414035978825828543214086451573028820647993116572602451284979367641962179786143264810733267307675133723213759290583950677319329778523612023826365444693273015414553313431412519134928908402030003642805767722710445625871278503799415208885490676386959419739218101681568890759144560247353501142998491808971092234990695013298048947562646744204198801694130123233385046858353041764922113757371716775538910160254624716467934703996731998231411792295161503699026905368586508607929250832650928214145121808790647293534143163701311489558649577516695570546370764878747703258472861186770941326395510994806425623816049792435118633418726482452867724962235235179399109592325884746076862196239845454676091546273377836085652204808292275606925537886708969921257179152332012208349706367991079370387439955957414685232989323909876059123388283209584131940024707055751936111870890151751908479001007625117698447549651751828888735266827458689544252755636539033387916045168735712236683761334555979134873581210500848057008481840982547840488514738010808862905582436561063628536287058912354648919990332204838784635645880752203420420290605512980749858430639303541450392990551383679118163422553320462789404891501113401175006200121927720117189763662932140840492964458366356136673648466160192982292681301218062353385781649338492777471941817678226303907953827866238564089980832192866624858741233129077266601247132999644138935392060973758748330178545188860460683601413347008891011553110376089742993833658204783546154599387545659402052544560028104063192118682224715990994671941021374306701964413331246844713515872978321964847727199435117229957128538362023319984566808395080648879164133541230161902825173879729751024142416463810622894809672769632731952447108279634880758231274629770243943729151106066758342644887582223124619878156294192884000851081800249204475755426725468754054995443025711168655930130000997349153590675316994909833827721647454195671481478474389832234649195232589246461913751649146478681241946091805014343549933552970532730786371470114813436762678591252222766459902845359889947310226041108119601156393700483238325819729407560162469635605046285711540860608208303041549677140138351497122636589682058571079528320215130732559052979764015523046581109233814770213793002017218322740131926026808721090066913380729173034669465342358224476008306873513551935114853064902884864881345069360348535877546204610895624507791476465490090969304219508573752383099848483447826377146682057051081388039106311888149605762058419837449604206347081043082609767983595647985096494602853498195885682466422109222325864660829882043948587681926030222974939304605512036782928215266932749781177965759485914239060855251993401166702453960758961780839527996843224382299323035304136262135843618735081786594111332846746245178758375964240188887564972608767190147379010029007427879089949491715388044739235723581480984370070124915789576380782229486860865127473333063856779601329251178313961608219289038752341223060771065565996229023820824158870090167042535463716778707825249216458175385405125349628893037136464732558036726382859621476080127034535215136754056624525579995861206483282802998906223033568566362013704765631894394424596703876218168837508076383239115729819798863043453580933688641461361506041395810522251704264901408736301921675934029683832514797522850193665964172721632293189131428717608719087395702797998536881472579498084724842241031887875413380373973094613858810295706723042627413922356284301214120102176774099087677425162634763563635077122772716544691911827422084341567901813381085151782942197917769815366448700841143401133891310001221817189605645315750258834732789772074217971755253550486892022460422459124832624168362461702579922794714260448299651872656703496307515710458111170181353227723588446626410627529765213448558267282148800933245109996448393159572088565299909488750453568671256105294605368728884961602732919566445700885658413527043823655426029239208871389054686934429592447822139792204668117787695593452723568464805167630916560101579096675986057713282820807475559710540647130613233261958970707930185638170839028284876123713883480048490786462172791747134537528607699543676562571115709542826873726360005751225020461581418130943941436305137583807285535626443377684027916513443814635231737220377251961929586069185789432203451390980821955312823805278183319655825828671973478706572626677019348031787447245316477044557147725953043731557137590254946826434149658459441630510178239873125634735743849296856909393934769264799917514422036952977348565420088092820509371658427678642891175830866894878686946152912231322721577589889790852103717466899853547964550701818936156621105741283054120366214859911181955076158221449347805569914599693191837705290374260449625519605548022960823815132952438821738349667096455071832780611909357580930255634381426717791332290283846574694420357524770218602146804824687344065919418805214763947450436206695369461942697052346831894024902204361620291301325427126203968935288195229133620692474358762801901299763536636823191510478865519683769149724442340937627414611119912331008713503397741500834372129281471402148174175479393072611064463243739972893955840665519522629175809924661316808065638167563109103035723073062139510231981575623570034078231024461292825367757013054966355653551576486521089332343788830900380512139643929252200753775052523301718956829165092277397973854538346158290546683150042495001840700151990309339430884256016671578873794064215534908123793136470677383171322304284853773734802409238019980124463601763703025707835612668048790694216011462827289819053245852556588841887635782964501737308134345356752235516955255007066616333490586950280014560313065031784087676133282868699576968687033399153669278209380803481066372107426062217946376518232954471154078888166844547346617638343083488477436948576859385780344061079592302102679269853604896701365080152133749984566149334777799128401520748571447254965847706773595554616590882636332031130471756063300839825927953196040669247045306067183365481213574255333337815973500160199540158360851072645691910406123615297418383233984982806767697521783246785458638576241845732059202825592562274379773699908310084733357335041789666430249789632988284848622345278516091624309652900779845947035565897336896704053185491949147699078630247208017607658567846984319889282215675226306473526982709225417698699738013878861586973783098187824671790760503795760880776034985559595005322321216672941898963392218884841260091250577586228304682436968698736741806433510365793788378443677898999613795976072589162973273495045475203811982018133626097919459037331331221777570655086574033921518183789533450239368556535207610595834971368935832359881218034964399980591297432857851342156507673622529873898602707163933184560535962937841489364063910034844814556606307314739539836971433837122115267978583598243725737158242709804287190850849124022051897621365129832217510377485698044830375865756257409656611836125234170006944669889258118754263914238514905104820681057644216159550743459925933588851373105860565111617366080600773434267003257934658224577786764387802769863754334218230740846097264635140871493280851022254594118213332443456208885927645258702121427576417460790334801788652034008339522831305310638688614397812937415984140762139360118857199983371182232696307439563807635210206597285622579906512283675053617557766443812932971115885755735468131924016912341923969616678611215179363943857611676064807277046095038061980006344291478593070999616478224265647850461184779104024126081278396471740895899098422627473514364926342278478547299813290800348762462314757993727501191754313591001330525983683283277051705620964475839672439052889456463245709677030257803384929313463084636494077653713022775321492618758571393337605926137540833836798667345745956847622343381770475024538219947859574634368966401164689047803203096335071888360482889747686253869335704932490777161848879048709015162159300059293620706631776736241841111024350529222663686935389076397182706501952953936289467586415261955862268462811602355144340406650353000932775218368920779082634689628253891693862422528334322907853958742642562599293547554189675996733875896271482736665009608225451262130588862000522794575550150944239069204531300281932780464493832020620779651349132500326057798578707095059548671412977494927367319949546989151934602355682238997107089702899400198104316590264387058400523002286730009090112684934633709854453937656911091737217838883305299915758415097881050372289318825682382846415658166034739019696635250490825822888460944727851573258439127475849118363166045959517780918370779260268100866154105751722569306891069843866710587617693115332553445713466158872037055321896067762760709109016274465461024293644468561546167447959481788035157417773913429674844255782689353882862434594017528360194122944026549901547907491752433600908757822671663287511320234852494354785755292679135265150793505787767376366729424531528311108764229293740739854145618365891760028788150946930344915579685008665790026757623559879215732843065611843449402904521960083758060286499814376087509524890840917463009271653528576023397981541584743707156866888472720515338843288659863402352834733321890551744520246161850906396474954631426250602111280862073689910782627869237195444751920131731506117254395690025141429614685745017886755223515860262936120433852858725979823113637633014398500670047871776556185652403350629807206860799793900393233610503884101239345905562318383088777687813228877924565229473140426238965332571025028643292953901352585325336294299319889875849824675279938468988515895324167040424583678981002895838830117700235087549440931528509953935479420263505374673978650737973322386867345514053966533768446291212249952452642672287105148843741120932495415759919221561436885884548008009497476712525013558253410418890034955336018225175387078322450222592819039540695518139700166661631038664231558386503688655953608468993223964619212473836577109983980015983904698988043483175218522589382094790052747646110702083419824047278859221137879987988872381378560460071952502518409506234748313401465130025113228615288473199146441696782393734038784077545543607688179271673429960843026337357182347520959648583106353717040885676681179198610673140102999554696813929447195847161994402957570812644693459921282934654761195243703188678824543121275854235284536841226132557984199167885692963713548541701333530719392029338461791219676091446163717707132830091121285608241055162825228896723599025374894005874499043669031659401445612522190780545324073774145602245823790569743837047857730660228732985456993626205129930984397001956387697155045971929747463108374116595735919273453806019498776150646301100595354803723504911308915149493700897584513697199285353571926914080194342659047863507449466831494287575958054631079844764570731956725635622612244577584696878015979804446990322325769714465568634250201030298274687184932610345724295362155248293264861698665861265846233107660363785668223935695295698311933487400205544278094871087086116558854211434787545752845580792613039315797549857746615392242457345232265334229024882552201937231388010511283533072368571082106558602763650706431290470120035182412111428320414216204977380147344202712634103497051411024341532102315045609469738528867830208551135550322593201193893966724869549053394185170002608702331630102672886087761802944187492038876329631486685487533520520598932216534101586255827444068215224675118603560740928970737063451181024224779765719475421354543516417861118555474038977845798424673038910984041136638082228570285031514830554682686252158205977063852248957316951044217546940589266102234974749675453919644559663585007274265572784471468363924268304720509048454505672531481693305740629830261709303963991371789674186338180499542745982038548974427037184949566005471002553608179213888000894521649983581392479008474992145472465416265539142827702179681169148194261398568510362278331529107373788768778592758016413901240447045347184870824567750660907834601963414838426657984269992846704802892048635330714195269065580300426789924693646791033721879309140564029909312884298168278674999042468123566807298402459357401161121935367377738938987003358883975812739343882744733717132786094643991635124349303822706976547069505838346856260983735568819311975219234895023392143065087540733168873198902463801413525805816647437680393088579787092486299626471936856504820727496529174678436940743979568223890209476231857005216961451503285589985365435141662311633648400277842872124735246992203535817363442396470368677405682345954261731021050462888442962946608605343442122427313977053336129662138064384272609344688120453715576381572898117795604706650112801856103004056717379077853397475852586462546012756806449316105772028954782339856778180539278297539860293609844771063723108588300162565389156529728040637722866426004153944427515515088552165799991836462360973486945317642854964609145670363931221325537897040174788258789139277111833608190775169229138687686785175996560678464565507737009245811045367202726207922831595069762401249589113437798670422921875313724915351266459413668911337453912699047186261279673411826850270691188051684378290012492167295026554326208066473757473494266849369722233204481508241159702661664239629034045455790261867210820580749074674897629000576521104610641192874817155441468571768576929458329492862595001025384022321782479153308675166903111348908728855255458864021498468555436924382450877016403614714579720736537889028389599664149157846572215327024329442193484295533605721816221346727340476137590042769373489152343615981646138084094317458376583706346506653276745354859395135468952358585998815052459837363659687546250228846052336009283510152933677032278771752152817538152196320316997700467835974662121881672555603636082178979462588689605821741132837207853016681444702027470131419269876748087605205163795155656018025380075045088390473723572754800856057876442376981533419504111975303959819121156124220840610214286214868432658577641441722919162132388271916578242245944652582690934174501503802640525033945000152462493071784731289375391220898660389095598892032848337574914501285301076957872001897785025691268540426181337869625915390697434231930867240394409962452657689440517022656980350392715147542914934955401487520328280936565149093905106272996719196384080589675923010002618501625925383517199255728562852924062689321484222833810291997037300447858551610848011270249534634909833649790149650033682454029607593976677123074659897476919643421731008874578189228089524838666204877397050140657168954824410749374500114442940282620625702909974596275207785771616739493530006727401565287538681673345657694216558726425326434519497473605098206736566818644324465704048972772993206101575645363804271962198171138585785957570199196080645121488354455766323112262254285354914535715587580275749419113286005780059228509367051135914979429688098173503287540061010389305399288752998001844924566210400114371198300025824212199265094063105569711030874531134674096644759814507900467453427555473343103195578489375877449377839652196376319053462065551240639529966361087212282393720038874042149398538360991224078544555575968873930862958302970444996954742578598257946785658891311046800308675911667474682448161226251033720273011876607487354815976603976504821522422508860609935292451485944909646878954762164447576090359706457547904297469589603536097710667582768025850694847301171620267585996597462143885860971587281363064591766484519810204037771869393543314206566776647889035341219394244535492843836179322745492171582325171777767251245370985398124315582084671112775593103977473210997720883103317897388054042944406814308486899735559411837917273586432948982830604649112257199946759750570749614420701235368025098548141241965196727006525237733135549082042135872122468101702837516543590733549868570427866630292498157165165258726297617543981107523031940954166100815510583176595777957544829285136756448887627036518154853186683109376600738975425308760545668849898750795758310320440570398056770053215509952172049604655591296842406041135412599456561276385017965921474973981127043216847128724164269232821092740862658483040377851176001109776741355384204637007147022172017432742910344330444540630669002570527302064083566437937789602706257165328231749002745068816314719795137931025872772484642315391709191213218752313512245906176279610405864745570540105072683974434212453626447720357669453466243162665088723106292814080032808191114068694894710775925082022936666293929930083600530272748655989064265601017518012005500846736833200524228617816721308936682868135773021087012279883724352932735909899832141408315348186486031966404770392589441999812937757396536084332826398201012749319261333365274536899561447320717968335737742304973724628805727184059240179503954918841892964293346937980130606922551792844842717731313816861118309652688712884443087496157039862672340404065991377458995049383257207819800159466926777979554614761814805545566175318500204208308887060791124912357000080442385628178789457087253562509767511679181592634972417265161374067368773967345254308303776287773205495117024935470308848349043942518293869793125119734610772083764780023818208806202635660064809316591380248466904586807258236429838301981456841740791127500599592253824474498663076344177930670766537120367792649193981513246993599110233273534570637702589847838713069184782252359708327546114578085325148610760930289282967190388803198940319362302328644461181242491321574809111687043959735665711815712366632705318619739023804798899172045195978145336070563332309592224498556278062757567369127991636530397104803305918250636789262657581976623346583986882174401869729578366726080700461786308220040502126539159675741626671975547960711157518531821006880346090762033142159894175306357566772033640139032160829031013846699582244838599148506894780767636551780849212479608398493199429242231020751814339848285278949911517351971614510605210839820812403923605623970367225513697139158189492929909151483720740990257988689447903559761502880899824828959975185876452057822543553859331012395274761560265157808142501220642008502874178159756616057520523997832574213238156719020026014721603942481419043382387934061080539113244506902270921188923614670579257283723862239119429763163903602538197085245825056518689778436744748493740191563723286137008732445768463891336642662179820640979540600112815725708552857976403178386745656011403806049962376733915147045475049478673334475859222787570087235191615866927501787809529486021622714435604951654386499947201508991894290280359912876521672461949635704028640834888024076619114122934021174904502110696454991334136916207685465638217442733486930025134464448256274928292363890044553450851146569192493166308757245170316459588536512951774563034238836734466754790185427080914821318054415043851668054868477576563053306421647697417791581157747352293062561751740425634182502343820819939020334062111586256713891289987961256944458773995234306046031643091248695084812478391469953641468039366023402979465264290709860001121703244964310399488201753851993046212233673416052679370624402812754402044639897665901032786654632642607748952919117157286706216376758184040764270336078037476317406489867036439029329682321860335030747565882681762108862891164497499425116097504453760465567181894642787517622059122178329442438634846427282823852741936066517810001126978544225770241178175409257620883182470146577982974659334126521570050526942103736526971103003290111756663308973495514042393830151776397555025578151235011629120605479922654261304898536140518592588746486058052888885001864613355603060048205599553394467423238760853415239485004757067863450877383545029681649921079805293166742300795882824545830989590507096036202054753893099413641645559025524707023805961804664331158895604812607435142431753698900577504209108903474666148423019703917422425604981474157254908056828912081973329272577139575544431959360249201052659320805833436284078704446110394243938439308121731636136011395303506994427110882720011064006865215680240493025737987828956390716401400160040470222252411704440439221237520979314883200971892476975432371518620118150105926199722006914128921737726870191773744009121174923797307691839423383986477536957884217884422396240094144496597787281265777010552773072232598661822662462159110733304495797018972458080295333362599962771830974245243677504956321724367856131054779753691120837759638194573314026841486686746534988138469847300676661504947058268345845650048233780592964427949592166966138115464615705715693418614885733852329095443954122342339993192026253984140565016670809659588590994807848941143389237882953961619729420478918898872559464778255213920024149298965285262776259709294655527682801513309842701726172712101760347100443675945503068425605349613265529005826863238653733090493033000354294470322344024022940967498201751722702426204486932764867000547990371944315743476792703455368923462575645037596722145227902666579207689586477701369198639840749429280687684092296619342507531245652623715742518576815415468187223619189208872232932802063655813177826441720922497719175281873881852680565872232778888797095436676018763952464958623444513654957276508727075369198577237953560486322819196390742843541534414226980397005210910894803990565781729288705219359280742411025009812821123220372370025033980526390760788121757870783976359999686311268341212558028405460526993235673641420968904941941254133714272735996464013227177330145041637598747746279757693862177715602405928151493634179520023078574813069793670696669258679974427453389389058295371751170659851959649557317353139770655188176979561838629691914178213688290123798761023563144295490228900308271599381251689498419493997593218597860992404988740197995066824484464671440930799509240632385246243790326420671933862942205217999684764744789917068040765819882764897989213141807537459394776628990051150229624517568688495876778594133293022573743808855411549539669599929866597692746068386579965766701756324550221963807299759400778360870224587619119294374225394243377771954808484509204658158899479565067356390256974693875157088430938219482726102054193115122673974589257127150566597552961333017342805891525265890952023486984189235653857313942441672180802466007609001329133843478130423412990012724170753060091930637783299760760165923338934175436306025491305082896186491880545374728802237878012230385178218855456051199439874416606897164238921879561176882828829685607550092800131867136586422406883197165768775622146644894466372395469073397807107634473580072045602387899332416520734101933601008470927199027494925354662937644257975803069577867875998845951846450905277719629353667248657822186115770241796667253092786171462096055745017417366746656958089806846930097925994727125736456047596636727252567103341352655053819102142019923464288871864142301422212529512522377254045328451846376616676005415352119337964102711790515017154455246901617965138191001191924893775172206629785358581684946538948184385069108454086201910307447014254196632903236920874758691248646743552460111601279640179451846079270605090686017182176695201299010347286540736832351648305849439568376958327240542810362174726632909343142325085901883431125506894755935340953817584800577133332745451557979471479689295603076582094107949240815953581673213981457899061076799343435132308162375573189979793961811568261939339730631466214611345163755981954771396260817549610832602540844291622708524645268401819543944042580294198747993457985100973912706804801475666309369292804293852457624528541655534927599425218756463995101860217889277645813374834249059050044761873532470541876958493231276444367381260193915001134039119420898915742474094170993019427117314257473208868667622514434707978225657698235027906257766985185676445258746482768499722168827337156084019965507614576968820347592484518787426927559855866289706399986880902423986671320015954625060805533281617356869303281972837187251178178316283880752712574933689361936885168244080794145183659195173475290809175537238031936610585419055424265593772211161325185768627534351756499108559361623254900268724173439966915225596961673314740071625866927266684464865311654117997136932930377966140481188158806156631699740185763826527454744970776037603366303249449289779243521155458737003006099385031121251396204826411154110979122235315698340030654913724856723559733281234231079332810631184339557298010152553057309089621685715185342036386480472912322161117455959085833739922108766476629949277035160756310914682764735777416659857913316722409909279096446734849360998225390083206459870390601496531075361805499124300557471262906414242942781332442987575406321149872626276456421905463994332131525431510729760267265054349076369276219178985219228810868578454630607346776497497758140996272481253840486616541590011359737878331868617273772272885516764028490217469054493357405337589974580932042771559621922283736394232407212371249777713012827934824051213239559146430633029459613306471566530517733374509897849223550073728897197286949023163788712909672823476258088317639800815008450901423201830245047939343427163099896059393886363036715593224905301260297940089357945755511443343047536514866133892172738761444749294722298629719422098648750040849970733888355438923742965187412957440899159198619591614506896911125553468658086689563190578954310459962206735038082406838581437107539350535256770038682141602382700832884407790221027171542584345550023223570275773272348730420214590943060089998736286392707874211813492063510664481353367207270840314737718250383355926847772222161698879940978617626299287470923502955690559534201815201772743948099004821523604675814084372665980588821464694024569978524609880246457644238015406498479606625779316871550962567630529389718455876392064431583276484438523886093043048656913823869128072024409372059135344118160658371445735060859786328395041872795632470228956515153582365313256004118774845573413614516742503483756826115323487184649013869379787071436242230030944311825639146693744045621261368007908008838192641667680397752644783964498654028849327452865395367197549906797195886643234031823425320936928930265444603625830668263965089894433664570771009687809168608770958176915841435789710174009724003665428183112507919964851725573352270342693055440743125078029935670737603522793523386670314781262928275103691155168846605857183430973571068174814508419619391333396803436247998180658039221878212864626347072826841078494932723966053377687805272299611850195345781584622147873843818720239462519949779919558683893269552608661652184444583672705391971844281222057920917478656657230009868618917653617279505866879836177231958287805718882998487210510606395241988655418482805628760238843327698872523110976751529103246343155767008515872504307178117019413066663854754371456717679296908065282034506619605491490690833785882839194997789673427645173832202435317144415301340903689958792751650195014744297486860043964067576024395083129603911778419436982830850488353567550258830661788041450274494003011870900441613143558125414769015980290238923925137682829777108434885557211624970916377211311555752272428316579179037445836341550438207121644895591584236719361693605153468798956979058594593178592147330208451270542145759004508846816075618807269287454637463876931969103364165880497768437131607927711929713407721784133743889916416132149226986248752748501929735790153107543809963376964358196824526990205042805917306780473800323584048764327356481843454769819236236552821008423718715504831813874025190045231500099200509108179072024253131890077294145297586342780160203077421598172263614994021201527337566349332729715286440079119709131762495246572524049276497926995289131399081305155154140043418123578004606617974609261831948853650611169063127341447088730715375980014138885284510997957627404725794278571186179716948439161307758215206166490513444549575946360908168221870396133045975860326872309232615099657873140602579814294582242356100965853450975913184876547040080896662149177167932169349761056332354012597589399673973837192263826530121413370386855468746235541147342186022373613425398445596673227747727438905189612169845234084461157804270580073496625298962698264134023244175077114564450194841428333843717251326578478389603652966260955691644331994969013355492761682970249047506899493468095085570437559832203353270657210660928122770650350730798681850232273557026573962364681784263809693849872167938360435269490393980079952213142489661280674534965088339226197681062346452466025124396715833050258693801399669963660917732438886369058889304561339027141662982105335042592857853984057578942198971802387916857018903525617307429529240442487597133337722685336994952009353419987719575133338278936987059137420647741219049256636049539617409787502125703139931677799272107226222895555371249681721287589469406663264962485167873886089288473377909956077497754907178648983332657764131847368383928669728850890601390901496744273085567963908238327556355649246038885613443882979162115564245909596701669206492671123788261094280083102265029527945223600889641827636584006226935524193480872551551762814048857518061287591202973862775564684761882945590933579703745415694784616471805216745344667548697479684701316705881221890510906300875805594254572282090998852736861872616743076609929775563608453828020338366322188031276409448357945547061383472612783924246128227822159461478015034583730450316005683537192169636344603897035195904320616115088833441755256624269764072738943600245649612929901307616540891044655784427718328664008966600204957847579756018759359795677456132968888858642054178576650363581797664909356316534105478033556171414716097748854184041570024053159709418927068144298367203766244735575359379352807986695962486768262660000700144465517927589638635818272139022471195283598264642599323237147485936297120116668663603002778775940607482640023847685917617301029941863893141140666802247253556695030588181455840962793666162572748036695900694792327023047525987831651654535637517568995763014111000550678622672259829273247997856903786285118242530274275087351149833176892398235060615309627325684799709697378354547821235429468320480906008627940062220971713025824686884494460942883378373857837605432202657855990150545254329370768642960156412263784359462229196998148970984672815326876603972846323185023180501186945440661318826936489216380357444050599306684874976413721801701507345182133854800866871705866714504215067525678873776051832255872486530836749730946050251886268476590799743379019130377275048596304785496878278874403305945553354758522448567149742416744894207599682290629316472808581210198756419244232161795290648398225850728321660487555317267898541616304195078751990945070125142414054161642566106477041353261591853172440947589098928071167151343305989746248104157595081659740048715623625792093813755514845990212086391956584062526583932211158722029678886269448674714632202713188985423766540274033140992843837486923814048203859668203043635530528412940886670325022535025913867673453212176047911964184523943665434456171343010389247696758705650207763120957398562488138681814489152241209843136032187844843015212127924390596346374609585258855138647357998494584349020466154625024497353051146185487215697154060588546916592644478299680585459220091460766348503206036063127782034506990899480311508924357625013293203616149290385730892892524054278878810651616496612892890885438899697128784255543692695651064550131872307555635714612144230576962271018339484466832742110507751262284061308487825374138257178238122411174707278973908525957867080356088502024776606403910513710975577997985827601667142791042335969195571485875157438733475996776869694564325496840059395617930421265761530064675924628064151119792026501304949832056800486806238993480344256896277931743857305695180527513874952605736171050385414481286373701319901683358465387351274775285588929985595534154755969828986540553323529569668980773459051736166702025781549678128992943847590634253037201133545048979625362836498797890731742423198277892239836824312460130045907560787644084116910405657688127789868497337507376634843402800990737683242857344225835968535494612819469450759399971020896925116138258231999371901985640316209225641249109551605269044475635953141133411930920272546671684814624519236905661741667285321757725982280565219965776459619799834643621990930461271954820486089565165639801883860676050328902894642137370981329145894681402261070541688585560889389497520212594484138502595248021085288505748289005520372127705481136418310977355947029788283898122390976700227030649562771730371699564216578948483936259708365551438840640134340442630008351928335869423666701125891154670724330954247587176189516647620292088699157609221922900673584746169948608383815605853965907618750743471505535730027377101523952536990820466474427745816003980336172326670037803929102098999276143381563238379827558226258091437043586123675491127872712643614518603552572602402601941632731125550298513920662784470710372403720019494453811129665273515602914127239897167137626869617187662842444946612861753510037981619224222068804568673378719830883199681388231157019967135412895763095837398048096454277652108760985324994678322701400446796631165198570308305523007272130032231255743700743663110784549195826997144370185710179405808753240889753546787217404035857491383175272535405966581080124764219426639856715284898883525938054851544552765890117283327204116319120756978652541440309453992080860954605663468705636618231861312816659324452225114547325088416394274010550869901912158895431421055756897892746269162182947244682765155720942516959422302038701468659311432585133378818818105869144509229371394722467873780690863292349754391079481676297717582699089454234440266327820914263820126063563725772074713069460551769321331996484233291661361753353818043058226596861432634527779920155046045274513155424149289413275379242006376901192393666379003023611396691996115191944249287731514767403103916654826774111126494218881760402141320045254311443274921717658842937865016592546863401026265687141054111772569067342639879107479041600505450542983635668968167417836384241336460109061324088340033158612151021619542028274527273409937042349513254401540364194037186307762767947476303444638117786534826823301783147159729967390585178997793331336134857594138102940151835257302676937263041023371524214828913225236381261291825651413445940706844674557738013011722157669825819979524945118576088901474917770753599579901122265128604950346710592414217097249253660467023081397589775154419666579725870466626114218398249265149240023289919349357156401284964319994779479729109315469046871939031178807210618853107316414119207056221544411616445490064918916407538891191556408369125661186282502889090641798445727410312190759872134912275587133384769555030855612449995757834941584708187563124085569836460224097018170839566526205969209083293118388453554844248991723159846527632957041347441405619133143623380065403001650626448796850527764951899681251495346325051994497114574358258433161072062997860463514028742402395556403955228329987463956290059486984295459712856555710392749047046056618055051610527879365219545996608695476243718985140295510684098287970781894175313668966814119423213577841248386011211853760182902167778473977783818695372355119578321672358111177946871199477516729209189199370554991108303779323336562395014866716398767453943299331949977469701958663617642272158740035056301280099615225420104145600450793304501120031667053832147849191976098732016793144562485551720486216941907944471276663504132222094521770999857175745528174979734949849239044117773536007867201975107141027344839537687003590876224127908778914441173714409712515544311906105777231626159007941732215386015475622299851009073159797402018473842025364726811083022107336135918228749044320223640499591455889900979737786638520566004425802245746240514630469371462834834562599483386711681505422150692068148156867650946133300694971075405238500389065712640387968357021515660003016334874323888225025026177185424225614034439583699335794955401081121958083067826795767237835971239119995063921327907093744458359289556512078684296293338225099541356821692709953569946968883783403085666655036901425067093984971487577837284591827167497750366602906079165770264110967270812637530526310972214574224013302549381790713459897268317186104800757225357205010347626772984206095766699082751768046782836832808350943464709838636788705227679377712827990128395113959782610901813788681678059338647607922531899505248480742597311035340186052355591971420121360874181654131702348512376928169942186915305563419451184720998292696938116905456524805802646003380421158593366819352738504776041152684963368814990809440732749913361791307879560021727330542697710657551094016130062739691857956056998857380876394870762119711896239029541044633434593872026484163752750819980358274171116460897172233871549596500072390284700115293947525613691084253581531436081809461185652271500403685356705236816789186381961548366887993049775063666961382733766331098845208294162546404066340830959139170964819021653028109431875902528650575905405400354234899051910360986592127512871680699470342809732228557741690115977175092737852199275803667482240706776299701255952566735219236188353727161708334037857864362980201686332229975548824525743341418165210248826121121287605144001913973841111230193976453847548938415999631397451179083815291980401575217045712573035338822565719484936044491535211390184517307625090867379387412540186282783275026144785460507520642584652658583951046778210927509541656838681863018146806265502245757602679437870309823102235281567144845033611001787985226950081889464698505588648580209504078795063460725017984474699076386620523306999974813716854802251121776371005840452881584201182146566455545911939987550640439405429416917104530565740951398287074608688827672013404601043419662570325853449706342495581271507881279150440971845080379678787689875285554660137464088047477637728801624802653851107320896328609374299006857085514506838267973094796361003493445724659462274404184394475118524614706918477166599042068894868080396239528647011455753926412567039416049909134512636369373337001513812291421237853121745426821276393538845445914792484680796005978438278960731983293495463669191562216126878206864031446265075830853649016914444304572899869479298285893358690946176476412742740259851266334528853021778908338225047128387827925152125245650786648027622138366003007575521050622283289956114787735364915019105726203374104603411410517892014538952799869856948167743691818596748542135383863200529226212574130682912325942918641762310246789436953935310148403219009840756722172065228947043376121489322050062746633161419065487579790114412660672979367486318055426953403865780172231044284431227614579928467173604473509372926937230900152005796370324631688460561778888066968226961866129609364348753674827286950167891085747742150532246222662662272753860349458673930682435276677878572072383862298935515096386735689588791255379080269677497666161230429280491370461810076209917963097611325641966648137862015634906327626443082328850828835559890156708077685384860246898936949353397875157035904346262638687197930437949128086599308117270927771311753677246595831895506016235392583925375220156098377044746723068055144420139674272230919444130938737853965410213973356396593453248345541114679406375472548830940729521182318245746952043531399598820227215881382805520877996397524143333366150341693849745950584395744143881978887504435450176593656492102998396503274479653747354467186076757236583657840761722803923337909091593983952814321445411883425747316455092146765582953214562937387369088116854365456132573855168893776426728320908168137060610110408785610534776434629965550538123003493903519689417080008669050306011265320437549485443465250241666204353785590364351814341721579068697988251208920953910793753043848304158639680607386184715048342315820079334218373429858140403628474037913407650895254996451820524528447004095855487600101621568495137429548478198063266124983781782072353620617984021397696401326003399956376014621721742313910907188588925719656545098854045151390168334993346309114325943504184464168744691280122440399372804532202793471410121778045128354955578644365238972876323463838605580903726988634981264419643529573992734507821110609638771911972526660703705652922717768619520986023685241882568096602395933949729193840681849570920453252098795590903473506832718870104027345690168314405169432198578965815258063428932546906790781844597591192764712981331054688034298107023876836763593090687337268105261074875356171407562639125257276356099563837447088460268362162074014950535893176660602742585696128065193503547080871428186270243390839768018560154691079919210146856889939561046638598908951451747396522357164348127191013663176095513851540620220889911052404833318735733386654361995042988874110470019588520122788828473724460166454324011695225958333311445934298851585717308788030954683572881048256160116626031392485861737850032524631952289858651978961159140404748616972841317797850340118024842908145626089025301915403011581908868624620652769313337006902053670583862793363047976263832578827844057542419300304089778206604596838315931119450505481413659329727769834078682615367496272122853184945054069904339435235707608579675372412374858095170202605747149469869616184674933488166263713848514162330286326717095042975582332817564419882830438113202481362099447934129246099040640614104185731711055792813163156915253975958759419931362716379968304996055595942779655477928955065128652557738987276741364783164314276746556259040249040908479824351288644312021493422610360487454737951071625145056493602619129069930597436331518270085058652415509064327620358931131961341193808818400861477045454761403418169595107898418889005687754860342119234336867911642329808158768386507122779746002475601343952400683428462734589106372429086101702815825433456150912848836740116167277895741495865917242354792865487584083644120054031681332324702845536275695645430924567204766875018634303498965072628883184235641060005587132058326872876592728683222816481792213672175796093464936066981900434116462166637417621579848059087606260886857542248510859082648000107152188118824850070502356130763081283463107376147296400102524468753986178820323121445061071663833740527072807488637562674376925480242176429896742649816717649920651683290667114109388843387816896102688505659808555111285571304499263507510743444834603828052766884643779741709124914548783254605206110804377055942738399005451300182505071071966192765081049008264199079502673607948099491867469951303784284528798346933188737730479510245986009385267113163962833045313658056583747862095714524159352951228249687146453884089672381559573051181789711447902573531590647548051516261076640468029002211405117569172473499049740016378473090718540537857563420590374735556072547697822069096156242254887654925788332792460949138996274905121826552548595673096918499557505176707080536364586475758476140018830130290863088769747240049606981815659651204834276512183709007966527937514063783731884926501485054068472708279400872646805472525981941793359929441511281111842797644942764436534487709623435644936558905451830589027941767507630875981767559641310872088692964592263304126819674406224035061206054335677041984817491444820342693005372868472471697466383056844635764868439201550734187671228867256438727588165755718711770187812723535736855989361927483415623081419681526426838919669716887544610041213726150302681687202100231672417595434115817238230149569554534447984763039170971064848749948590797885013792915143551579412765153790927592104485208242484276272397495314396354138415843267339917261128237500959914190844216635822693990642950966607032539811605341750059679094616845260056921202155951514042009818384300237188110202063672685746205429007267854333608278221052060567064886295734669832976530665485739635945411816774789976774822826354175811735896068708444153940669219177678740143017873403110820642076009603150757223045111724343008515077534989380970883680510207034340061230815591805344771742786375528148471645771638162002892700754071280611986293363775889134594102829614445588883679202945470426904139134768176550815335897975783331900361466637620284244595008859857375288771063608596392591162723811299369811526113471128687305680652167351902791490710411497252650494449734520013252055292758354992539922057219855215977147472352525668791798263054551774940323745498044542531756670299670121479346814123160836063608374997093504784040236321418685391516428466225389305729050689033295107450789971400795654162772927823701139146186424916206312974741447855490801668390309546119957572366598547894964638756396620039059133002114444447228163369068793198545086739502479451813265998616981646922489152265519846855993870234975969392052630827343463878925040871815629495215079749293368508141606394892021068842981573311356484573028859325409394726528583305245390900268302084097929427533273062486902399969750510932920002713723664967985612207578715122857356944352365047427801774408027396081587058022952294232969279376784085826514592653252622862009872646098018765842953259367866350648349582409342121343305938634668909619755316213734061388381096590561366291781923646461565971747642177865107026901296218904200022303946231956266478708415566907745996378515527604589427066257790088375086357438069201578076426080928309208192565351133791342188123253771980051633489778255027833160394824164679314994696790283189385578065827953282175359958626936514509529099400876828890955388782591486587371672586644932207770480970925430212370120582948056396202923709869531296736259799339607135406672123173182766312333570354639869186739010478547338727657180708319595685915076275326770565656044875967558931467815778092122279491585194873103931045281577606961293281800789563449957038267677323187378560088953283907141333323340619602562494762801202474299773926954088181809707724151369167284647451544149385367778381435724121461551485717977826441553472955673629633999519690150429080174689900191467522018831981899590371899458436534235466083752052016225014828547234736460729160803835430145574694151260796706510839240640036771398566585504770734168782980130900933063235210395614351052173805828846210114855791973975872800626633874957957579779290654536503696252505584785767438578310910010171353269472307431701642513352063813265762723731838387601218844058206053352432102661755554382703594237757867706606327700186617739493637737165075780364286480952955306027478952258153570983667146617991250701954419652950231196841216941985485486776554257815232144819786010795727736942614504734404291726697592034967819981951412101860265681773855775530357757413794050509176311551534097704235398370199677874579023207963805339397753987787444008874625428348873141517201450381109788905119655216563528117957115865069902811686216622853539348867358060994002337152206386446257088191922179498247297048058346287017463457649407722986806548813176497235487143836947688529648786340381557630975107504361775075977693383814343366038879019207665579072840664819511591913966527170143487693243158229083224810314998394199474933607932602240604018816831913429306253935177592351900628600741004812551584021368490052044860038904675181003851156657305410332332906850771144593673759731802277026093409678484842220121309133304264029969141435917297968946655064323884832719105976155611281594731053604059135273035293244586890222510355669300606736234259857450763577317586791643976053393340646014425443840500896610842929844566143184483374643014741304366313098436289991978899850586295075923514319874529042653077843808395172910002321157239703494588985432359343100734947254137811301824734559901050173484278105131207773873005929420044344044827517795100433127228426978484241131966606435470007952350173775768471240790679981693246160824227256067540832276316244582817569823428500600028225891333998596113901610803604504564008178606172146178507720758830763086645229119469182883888033373894869975274355835059671715897682515626664314347952325313224713979801758849686598754337273786716720276556030076159164551629291699055476591738577293748773680170785835102604646253278838918651407035585147813097377823147907104894834666366430716904987416594951773303113047053233484409716624570126903482869277888824109972460712591510271267744615381898027158889252326895500781390983040801404396856354920645848769136828207200021334162201294860758759666437687841511292980019712429860900750971318495416750662873069768105525272552608193699608659494846112170568178460112425141843751427249440169841877469709737440982483612832319739264662719445601117985832813909994631210239034904741713398868616325034132176141580510504187069976139523917208970295937673537529838762305311897897650759613864207961406764466456193822788973139548723914365494476782714743787556889775127120398297607284812876507889903464414670017583261638626454164837290926763730995387131637419526875369544027953673697232702388526817438611804259625895797036461294536687604506556605799813968991870237861029217812278877475207140360488596192359038074271209728244547566329305319355134642904682628855910831119647762109349378626073271695819139787715887357860513527887305669695310428062251326700621582377015002828392105338169220873258940166311702595506053150796096551220874108828863987499222680914078044290875617924216686622761841459390541093832637298931513678279505135133737420516961605313402306852660932902818700361711273808271498770134373428352730356352356339426673629255485638509399952367339371383721431061459361103855622844899558161742489092662838591114340724153889399451928973066210935596124816902680666092904994532139037272818267670925738177845236220223294437378759662107955992472454870940706070517720160807798338567849447737259879779379834257026323372095494835022325922991332430749224183156082838669047500958573323867472627903517522430485340534876728334878219319218591405422468064510401011373173634980570483093474745978989326847634081433558677446699874050178653067600328432450352245814797990518066427141094387475069425281435855488004119733640257137674392556062070798312420443127731702143677278746094727923989745807980077182439285943109992916440800826435468152594301095369089765766540615987464288397352810200529700744919823929764625330430258516363045339154402266293911526020237642805176669783546522719980891891820264480398400335893528650444675586713797837160950088206597025128060096373800851686946682045175695809226418107349148196772392864887092723330642906893515039158237327090040008675487376830049206988644307633480319055514491152490373645621091989024708959522376330964711767051750850555019768922968266901288920853845898025610186225208374301603332088136602234719568603581360169092621672225482070659602852431803967362510758108016934683646628266876236981956794243667677531300656728365273394244697473735714336016898694035299255905711840148724184351155500203417927090901573273489013761441646607409111378997391007835634128356651805451003107939520646633913731118191282700678301799436602456356192359440257839501144045523564164165551271953306332640750148384489460123318009083084067314036063322036805672130665282801963532615817721482902544433756509840437278989616375357808497340769712817821391747104618628451754823954452116574307556238662518146204347414417830553822792852051000581479482000624299547135534986247891298774606448559133889982966233226526036921134214153772857738048001781030195397289597363906143886725902015560935329075276318330384586912387057008465084050927900920394278409042631895548179925986045588448005942785801124140507936757504305453492618001059053017625120961779213815452687844503835946022551629897614202907510641114081244582608757976659152300138066466073599990670517199194322521858341764770639945294732404405701649071828076946036318663397144064225158927764146019474927377408921038766257342307397486674775648646443130140702206282673023054602820882594366064843368040984527634708954693472653533595968453833155984391802712896055716917425785127505928041578231753335293381917451013010637133222372372373431767257059394868443624753259162803900962132855796320628146283766501575906164150913147385318857535433868522208681090079248825614961872743224833738191913771438547428942761905467001553533113904497525806511595941008216796611183109926710577082985615352266036083962776334066835285073989840615200153985555494636285967361238620288127518318758315373393041553116099857897589418347874104298901458986322756074647790774495398274858178085363303394707090291518943093933033883897226475445146937752166140782134925045519534063373545799809748375976226010946113339101358840804929231740593110761183676879511473563071480417206521190257645228581899672978927531438340201537871159014604561339915492227861137113525197401175980213235809719731555417512509023516628316932417109288499947321262464093576490005728315020993211740794034747103961297415806767043601668356907313512585650291086576056290364774520573786972158631919648454300047081366106077666141253959778976477941070247954795283837644210053311460497674344586579771601886991654101828712903844435928967011546276160669196010557260647690032724946678135586144780279647881753554721705878194107911350310326451881738020474960308428978684277008225167255769409713455618310710479725269242244816513952755077719028848550133251448373233307809034532248219550355088231454155734842154362877051299317529536880067799445648544582055095994278286361543937238714958552049351287490282090160968722166323031689711449458307148193154512593759798935051647602306259518299484802895598686674693065087978219728482554932389697760212172683322138579761089653555474781892534706092956050527771011685257049078930448301642779046525203775888644406839071009314677130756669724146678394533988720613413900658202347710523125042555313640236266612523100246101833146564923927985293934146043183405385979604862536543328517776331910445846543633672086801988032687342953023843665596761581725483571553679770033357618546020925677838132371008965974569093020499587360690183693755568220419437267073981650589703766135113146559481281846651480073719006471951537298345080390760236616340372079735054209332670215504643347482330227391808393764255981463457659882697810130420759655332080673889603640015144629520744603156071540278942581683945384924982294219695319961239405740108495894369727059234388151208099610563288514817758541656185667562582173049059936903112053678152697252605225827403958632041193271378064821415620142602891303996351014008860205871431173203697026535125529071434519261745707976676126447853620167697266399412809419991498784795812779763851306196939137855680694242635382294221948689336025974611047565240625418680032237756991245880633534125517927694897594101958018203309344190795953116749546635358801449206287994573341346792762767064828086167295588706491456453216812280979174081847233512996826821562066945987598073366319724429358455403031483459441097839764071033058166804558137353030485176977882457948633072938138555345987177393917208719854239353114712501124698079814959555673959429036035873286221463732132728603464600794069460137343790453496934287782785934980891111198001717607482358444431503421363065590616467307958532731830894409530057261800776116109227195942600208749460951870820148886997180712203842360030596466784103114592198727493181121931763446982615800839584617455132403658469776343616494733361712635568253836373402820020750763753884582127295526777374190053231039139918368628424567059579643281730884624713940593126052067205443163860617313296476263633027441386616379937767472625757948297430998300289664589240398830330827067215297503911108772288544936685592784400753607622391784794908104948160561941013419594974459096198631064096251260230090834474663104372926080665518435288572776999516995625689961195829103795324048706343731410561377860964676155389792180299078817963171521185698598689306562192823581658340766615274085443219706889614433723568372596360437652409156647047401535865022581372828961489268498503408419530342264728146265393483909470706190939552556769467607813084307295194945226659701261734388256558752985052867472018024357082921311769753522246055225310794030590031333926399747416894452002437815575303645484573869228454508495507940403034964456606239787334531493727566840169926688443583896524068920745922713062911912224601443646354511277528298169778455757091142804922607483862713031836168361621858288668270669373931032044765835977528296029347132500215359242039046251498651269644249039199117146659083493405176068092356063702570626278199165954973628161477402898612133584211551798946159110054167802476382390781068663018288962346378248263791910504922309261224080954685518916709987676247354498691900105226387723370326720030718946343871348666136475054818759045963009170074547839729977008349797436450397075118279795924090654040617390990326890347904509338259739094631164693198599408662710942540097597269135353985164893062609380002749868975941883834861248224009367294253966173216975437333644396447846030470638803332763328641840673500013938170873925746366638140476915255350743867545464894137073169702862699403594759214743212888430937989398566497701573376408859645313730776690946784152096721060698905671917294203364348066607855137841619965306738303054439242667563886162160028067046327803573697149319862673394628518953642619222994077584637405433046633107779338919422217208208379882222356250285211607503998329046133776376219387000631030330526448738438235570641195191646491146288017755018523909704419574429538590647035961753022541477235615302848668059389843973797445762441904944417842351056611292670240848207919506562468149189299619508331804356969878857008086999207931308141002166374421589541157763302977678126621123106057880845278160216994982481466459940355547887855364836856159369850116957007964244479107539151947554769609307845854003662773211477670550218050056181415275096116257515845533036655102260601116613090242299432504854850714370035302323906422964865767714088332653992104623393010053729353653282655964067342791018016326151321201639695759892757212445339707341832035920323129466800312831678463394624617277525111886535686683491235292682424628266020145380657058748352103939145432157684377415518578884933845871685340485964725783353789709266858514876908007447261247455084913209508586148163696747523567786647686475817126636611818054889096796672168270124779440976068381872283079716745760690512922959354951982990053974182754941446935139343903186854482472105122164581941195232912158013424382556593428632503789172750743270590430911094807354159387532132778506678632914216252397565940851618817705379402296926645697383275812233507546806251407434264894900171599689662611508228686598780284337409544857396250030459819082590375338545494292553568984839074062791048924919011953167257950462915881528743938805234528162520810979181340398302199967597248285769911576778681806990619417419574952495983391319550139451614130605800681337777412075500861714706026896780376183516223844311638879079719671631181107611114253044578719824522335756756238758084247308020940747668400470466516269442233837516113180169175191753316651308833897825593334105294475078810768973664535945285379446435948117988592849497939226290037056789833010122035236435169420191067542065603400534511403653638495956674240032515790318280843725348691345656556455948614823745302245075179416515240829918306891315477704469947397970596556220475033035671186812156267937843411182914215592862553587366283582468597257356347580694891851855095254639481667320966585447259318609552579587543230966138727629662032081172323996879642226706701494255023988574092617581976634127239225277097158126084356588555634867366552207366976969778156363621544860003531928517385109495169019757566589216999613042978510571850924025639190455908429448385191952040036141734118664657833204135783238114644680627256561264583537564765213864948570819904471303167616850546330266895637174419202206538738839276028252969941769810741175635736646273367686152553800702964207883913376245352550673435464880530052864182198495662227955376391114996570875609886854987108528263814534556702761348471342994752200967399019445420403918863698883369653531604653421477949747090273636780859467089794194439558086654346440045507021342140988906017844691901608563072454882325434464178197413897910266051416408933570908548923523077151104173055579130951182165615855465283188574696332246784395527725038967289579222685224348453637499466200221085421651389571153157847761027316409233738883577554360346127342994013184433100553678638980437228742063402702479252544348252671020433016444986469545037759498825677392929367312062373397942251358417443228343430808161039690240856960041067282714785598954666170864111220142326953145040465754918842616280105572541879480800209243996704134114271766309011094090651008035098030645041814283557574150085593314311661054631500549086821669329242529443229303518207981617701382752557334936815883786493577352295594785701031500373843279144426064414410849262846399585843919359804506853573222980188762209139722185359900701147087759037466517187042789042990727401523628189860092696164650026328083611827762452024199683711328460878709112094007918240779033643131025265651783738259032718913006574360297353068699007285602571970727714070432199825198564117261983347874118249925289552856341225465518137326585643385140431092609153172332352364904399340213747161441549471691964252477495170801224932533116596397816074274826902388474043909835439784117714944008401961430041552206889997192929629406631112163686557130567094399639690547974457611984849666913125338450519027494648211230364757607272934206107185966833479336159193532346046239407904108007553787309808076598882414856569114138904202954535005091243832208480438836958416494814619836582595901469514510167423890708735477842294538786111628532585836574152097935320972905623063375378512313008862117919096887421382362749794083745221203096935301515597772036828633417338322290924018043355030265367514827616836963907471063856494590992674057756605029965249767432620162774766441881065032798738220458560617755886310240620889019328177954996906323719373709070171643648836021074163843991094610685712485177039634397995998205972688133580426905379932746809098245265476367802790448547580988118446599864634982450837029004703379998655365447341707404932834253347814531141943821561461443079508879982227112647388260612286309689710234501513905342049371971499566699681686671454470098514961034022719877450953919055022316141942176350717802779762607582341909564058365473779151145984059380229013160247836054095760397996098333919081518180248164179561495992392200684403159939660479718723493852439355037945955934928644392601316901388633459853777258940499140642667183151974947862839655598778866330655289230460467488575225337813774564073897009105420446629939128388496773668028917228862756283016186273815744107835141354330472403317869232332978784085380740660403054223631945378020668768209117273900788348541534154433044532869638898192069448836598864979232913122054214356976272346633672325184000656101712877733907580462601990381315555620538687643398676498440902835462430579893273074445525905526069081492558142389506454086770165677319916033203014890188947296917409833444109619419127678428524546756831220304037288246607917797820690184110340622747489189960432887751218726644075485261822616081877751371877904727723665008311363958140619102953658937481130931120675044615815938836813715333430248716237231539689711364223080959155094980550656341475062577246342242107320416467170888696684952412437453860586684240920264241593070021261375537454496408939577121609590470837622048021721952072579823707343452724533791210265533106398339063864082841176182635078885270064157754670269210169452834406741787008988963789033508839839545267117310719349073205606892441555517490805200162002362208312489982317616906780215693886647037706054418743663894260759254477006938057863575730307967275901624731815202179728052723537100601282101142843742714859386196787408235340784043049936127795542877342212506433131550030156335773817864323495381291128687789836523765987385246374956991885414507103378336259624186293673532571308312924144087006751700240799262222213251008165251010341311965434638820491461940487453308196898254362992139058757721947059135077785330742441447686220967160666808876505853720881062575001596391129472861128201214515626526102238068541298910531793699786559605407046852444841635763977107867773279643303341650556385792138892062668682751703792263311402243873553034483179826342835018796584191790107714192666941925054010197757633558780550864425552478135522318358914832143768501914534725191233277679127358813199915857693479815642724002531869432489597070495591190034286014248368345625857048293624679569215301377749827332127157499726394977285320720746533156732405070095478339772059579724550911148431978447849432052052941832175937643684169966397250006158236542208657986479150221240549653373443985576191840992667255793425849780822909633672028471615909510499324355434675082400172423427748421310105079168851556272694153315945262941794251589141982259550916516014971102412356502663018280241357768549366366640695527241065046933148540067883741157960352678819966464975953220311083967754145612353017491639645289876265394086084347824968679909438733730143558609204052460539432728058704188065862761660981279617547744888451536981045435368439249064386939786626371702545128225938158548579266557412499126452637211495219493395242307395489744614613312164585694155379960271606058491181032047113993188596983811373900501213682339205415180994069284174782244695589813299969811221800710489906117595408601699621436208528288324517874886270420487057484291198855194647358586031844542236155424228029429516348275532006010694972332410694413917911055064506271954493577359031511645802615707375250051021205433809526249236768866831845261359004310427202274575970556369744962355019355253706270887251685627540583353535328183914363994268572277686772754433620073325707569832899669556921529139090272016430081530124435345965681079098822394228652266115977833313092010734762007605706018341636961168542249019160832283957483412175889084439114225709868649838235210438917531067130583640686183018077692115156939818833001230434279638158424564192828056868701984702208430482339244963458503613927266599258295831444508242468273944321525570761003518746444074728933271910479474808337998015089906904208277128990911264004002882450341025283575513826251701984780968008226740931292178544774268423747609670489343861001935456362181988349657894933953623175573672447381486046144991040276738563371645154700841558691534821668922586359036518710706205219666996463888236700889806677634170292713091201254869534078606627643262826788588182280869527632122918617584902285399507672260257255349167744580010529625210490478020877786577814663549190812353424159652061246394736698707364555849430571563934130093389140817328945013236786500611085540773378224414783151661012676708420216207325734079536197886366810097390126391678661587030556598727997788774622256781727731489082580088636434567940784179691323146765183969722333466308260330607573168153683614636068367269586548586597219990947767246547003843661508547013288017836962964430502987417712622482814224413288384177254941122556138645231392667873010077344637412975922229783814007602490695441787929412591265196944575871956743464587895909709918106071884441076694448774918286441009309976258985009606812288062023543595913345001897085195140155705950420503577363504497336286268390272338409563795740315859042954987092376361365499759356935581927078919182214140018980024079838441348406664276267746163989558692015408402091587459066648638456797826592006633055599706033072894528041578192989105773681045234684594998355981041182840209406578911380022192423404221015620976178763729038315983378664774947271600793300876309714480649879683496425744295758469932365456942668969353563220169106568478781944653313164435808679521255732909107945736844063661700483792297219914966930053465287047584477675853662026101254503791539728726149672506466872003354799212314769921976820300510323728761398556237068769011707849464753853162149214810284868074460197179677937101433612769759832898505834409530726223495246190127649687179479277868602842267953499880611478894568327661339726527206175572978887642885165346221940262800627257665851071198275592824431580862864805509783273354081818275045017478532132193750693694369690079713116255779630686674452873206622463551097205710695679179818755141169629847754598347482944847632016167510202339702353458500853545594496958788104861743482503587416011151154745713540765415082151973166747891824821109801141998449902146628330571308803955164280839307402387942234580111023501090311110890058619747874290801287879113814576055464881200001975473944222263088990678458530750007312293233190597353473644885439694471028559515483052900073624279018519115597129947697156875937406172302884735998564067738071077062095599077269479270052206269087017357629769990131275208087858096945459567964547092216175633682040678673421663651441419067973460655202317322622602918439196685904531744500902702918539185676144225377944166557042420606710135095529273876808522907901898026412021294264663821694525806413965302214021389486622861580084410213972600415552252016620852924474219130441707000540066460903575843311268235738338325272216724002321605999130525296963204947705949880753878940982152738515632322017105289788431192287440582073957836153987852957531453086124610010811070486604123644366239575095074434118515642915963162540231418774567031022298230081909987170145703983938053524118500203517868918268979858483670279618877118798868959009400695006861262758744908072933337692821481578652532100842712580200000554912895021798077783319059162927005162638228014114642319176551747588429528811257257047008121428294644207535193573751896026816109577777051589567683458639791091502876240684531334135122324058395690434900981605435680134541900024442549459693110075879534716197983084948392790946569233645860556378422142310482153694799598339131960111556717672671346236496267776655696683301633498911984212629273115275349760584627040312418365018969706088413027493692454283411456246836735221018856145770350253746848999161932266981507210699022632146997021204247743702044269475052677760378982877504108402060023114487506969479817614852211357760141282646982261068909652349154612525947651470715649982490931322704587221490145237466307746758130358305233873197707750227358491237442361563131104418107563846464860490694746783037155257585258094910306493852722970331505149631137090904525930088006822427163022605537244332824433883058983171245194626792023331708613021580464969323479518582859593260551641526117820753651400344121567970823480129021073326244289992090985736430076781999570584491735933128246305599129416411656745922021162436695785473005108187863416059129879425621951122287465425459512846255901270706951904756409154818394875271304429709578607690303839243548280649237754722539185063739518424659168218323918005470113036908375701494883243199210192368332659264871600164105868382157732952586606215422054314552735819247746715856288281438514555870799487358939542805006737506374137081999346286937483255703073542853582557335587972692703307253692928751183370005261557933270253393456875650332748669611020079343915674929385227719622203634136205392767943499752724191878072226545971901446995236792530549465460053927198255742428420044861479201143906813822005067071077379921530431126494371816174489296274762124811650511033706844225933943739183019655453235267872561037878691671925943797651419350417420633154150046428930725857636811415514209794920723514256155585644540086476713389519757797911109945356204244848226805371033615864804961015834441327542342790846989653711792946745788699474158126613312351134150942120935599434401389166161858753982215061666412543660776176835185835408974678189497184348741449622317417974233172583410654840635314525527474366886345310039186328058871367268725522748680628263308240583216069007610103218631994656220145143920405299313099395462076975810756917019689790940192297852048259167554614239493114325551879173108155779081057541815954212671903653304332827647821915484016940605561748221777462116665247102390649464015936853278615246570986472604632430835725161262293984029836442412221698104240492310273522568460737686034424682850046373799283964391331258096712889940671568459060403448576793350654245293855725300497974328122832534178164074889760798426077922359765059107671450164873834671789717711575219360254890478168696036781856059275908899356715085837294720623001927142612198530581808654378765026488116509125367362021228892661365727173203768245323144478626371672732253600396798401748072575697781572287841345781546857671859677779339797646201197618996854618185151592437079104533363332329512082661550670327545501585786544469047816993711847601262078865398563528579985877427153148101785380050921678015721808944517150904629125827317993294513221324428759957713424881765065671569739275393032596002140639038957351170149631417244026059932936425126977628037484020102328633478499622762787100498765365457440419656908202562796309204153476454407515798877641069397013828365930124613722463542017278025466267722187201983472387983113940523460140710252587676949364790594689748144629931930356951367901861015821389725814020370151467241551184037810049009029520392180712448041677474594811799177689492694446875488536785530913094835847573788743598213925282100822858397310262121489781879791808939382089079210340673754153369859990871578015697730865525627747716152120664757319926491876130669583947849044308847814495009204833704372339076102410316036206554364974845725446420515220640299469473248876639089087495517782945967004840114044870089656272257286935418544103713054863497432821896789264850616388703191713197018506522289824928563548654616443033908221888979514339355512701489200336642733991044309519550363232414970514104049384545755268435801623868421118332575029540899597474468606843404178029231972582415350517697052739627553690333720281235434917385627348887572701705286480016992072773051037546339002744970059034709110662674382426090009953708988851744193261794546894784596167895382187005898768048335753619599130433289825015614377546569927599826707911090771508830402510592220212385068449096646110061739334864430630423510559915175243783227891806738464436928969969898732737904427996333184535685354638267919402487387315506007429967214804202849716689318512816141491234111750750256831347146320277500925757128593009180553837764861699932010535067061961557477127449285653905206817499399119952089270584618943139315183191346404838131842962746894812529400336125736541142748933532911912517098744293513950134667857141288587383325364116794614555957717443198019486209404121971514939152235026798905791758888700380590256606975151512649099220200568536638532247057821643621438135825509514689862278773033325179351200997665546327299958977387719959951678263689629388704874393265821804041598515142540817989684789410370659847766227827972928241853483007468578721364984226911153512795005745988807621794153581760668369151793534869879344402549227554415096799573699229187604993422492224872377359498046617589931812110454813182461724758967472344063634301990617606668368527966085794268682711424925503448013427861907691384800435882449263729379851660788843225239689180571057505936349580909320095396162775965153231901663358996746803798821854909207589564959507056688693243731559337361603336410708596143180011364328460954332473585933682781819059397042142732776321602554000171689899947872430794643116526726962563121855557811513338587762423411578482044488616494581394433031296833845541499370115704608998607576027694495309761916970100268884365116815021042024668620733326721647676287218336639390734589426332030111222393763160360745507760236170066179064548495996136960624500853479873723934901103558157903165892122107465189290912635779405581301826011268321752702835980908450193956311540253053824463591964167684245761369451107674851756945820852276355021131003895875197713169014165382255465013531410394750025749094848034771817046049920192101175542765218733619444129952935156433292466605224745215713248417293245430788649910744650559145999630205185403535240540123118200465339465440559492773544746825467212902100788889506262928892115949073870559004472308959773093649407294363688746207778652579131137916892210435565426189338765410507676037362740861397521303750907410548175636414703066741889428694117881136104728553118519235609615851499731324570360449723670359733167795234575854291638423178532679675503234355139406734735988780621909344559547913062665926351382092558389288570146877830866370393618785006029531800872071678245276337651678929151611503290746978015662319402063673608848509047482126443094021512356994776642386623042426260625528184222002084860065506581420586848387850237138431789116905850297053177207358433419611447651557641988562739254514717187313628272937792704864020154265436292000994886015840254886675753690698736287287823719599361591123483519010297784107553051992933184192378364731278743968194545127437358006809465303189215602889065551786392080100408754930867318017949026298176035084594912448407279877580879989935371219562541898016794181184500541264309208306641070405765559268697000771374807074330813389262361881308989712461310918355260633303688462331586472303744972574229088543568035279611620271733919366577552962755476427199036912816259400945607129500969166700988874197410806824413933329831326298532917168559686680993167943994474979375303928417259790130858265855892735233864345396075166208839110756620476376174320716612001323432519515023170914101872073429110378919741118970663035871054955551566035108703563031345047593026930941133408032344995491149264373380174148821437029073446865344471358863727029569378877601162064802569298846195165097993550429317003788173337960460648761710822868118205869957158777497106092509130797634402298628391085459438177369953372350692496229853957610514046380635467996666189390949762116138117599818893530211085409796910586470418325057699666685873504431588947437949636844548005858780621743321575195190907861649968829343188626789825770196323058466561225649009194585381867228070067023103906516831865692993325100097023174527832702573292216621580753478937486198312947847651622402238044523203823784323142320699306660290018297475389149695501331691757746223829530629106560390085504752370356958314078426739487527334323979001910486056972267951711319394292966044831396487779486947859670364207735712211534052772953234237486148658350269414048532944054580754443741927582223708757914882050331374455073215385989770196552345743663643436634016434974331257662046965403736649618082366836729460763344656891335291194869221761795775523449800150302684242401007624188707255152653835103517873609271679701776510803559902741184669134909661024415212399698302002044962794210282946769012943468980246421868643716646942473268027061939092857860566965468122897362154806908281092948012842235126271885519644560394659469747415599034572785935388920952524203868432206898145595315763466054908672052417847016456760857350398206663434418120553429085208353946724748434821790914423278385892343290814184335080302891491934659872600409461797934369848541036662585476229776997775038513627368808072946401158404765035553728232679222045091577159512305712438615929036836963667595098915523029087314936726393143636587278971122378328257854826542550809694545057710285243034011728541089991961323390747552664698874320264754277921525529711893966628336072907858943753762191569710481356973278047674806622189416469108239121628177381812499101760526827901371545167485366625388848717376474041287805153510570172080978978714103522412443582717761653308331771089805162464627339519430962871440430832404969779965395509503216196853151384470959775945428761573827198375987047843686886947996044476324332740068761606781826156208200268282851690957678569328611383174354206575156689492447541783242022831262462887185931594422151634483027174813709764768325528016726008959222543228440687833501956014145183514467296554897628159729250262168431684430130228132272650098317404752086749336823091222934275040749404106548106721782194991280618682702835582644653527613830053053592473565673491087979055026733207078398969491535874112940243756142873823315522965822946665001281751606083573149768237406254715523829070311624515622873847008147178379982929698875264516417627545100704121249714358530333124691712773169337743621625924826517450145786490803898767896943857244643393454844452317883633563872344282905423793960463958620743610748632405781755396864657494717412188956092477000094110204626987691939717701030235563043815336284793001542505179983192112100199850375635963829307306038226782171498032138683147743208814634604102248129058879371500851612188871248485259723166437682926729474635588217411269915209793770813327298857878917139904505664570717083156634317853100031740255314899463678628327719470275145007209448361530306027395051455553798544432285667497169856345233569848805689203717725158806740454977630350560303731239476258943316251477172930879704291738447019818567663074857529857513482428593002057558771165277000257784046697896526643127087188987022892733984095018157067677105940124654191010106116556551475202499778171984775497350342932956672432778308485526318917833295209772540412969501804549424653636443985439566333695087823362443869884951370825908934852678166499724128154224340675400288944607015552626918127036813588849250947472063022643134583037084210903197414828800542440116883983232241759544830747867889403570517598531209805959936896447753042729662845188777594341078283828286890081123877647501688983126226494388005975024510556029753176591832530246307283524876598572255355407418296031198086622859459136181183285295079318183699327142769224314919544757238476394143649661020088823548133549030205083565567382338574702610058339321420254393208685673597297047460219161988556583398798021305997677571229836383446293736001881438795562729398018259516461482604580321737031294577209599707136280768837239202501879149435125315282828574192008386415748110196925776744472739342859058721599885710906786929293755627315235254513621560568529119718957972527481950671246527465480818504944326497259096441150057490868243148255698956458923108907393778749521404554911668161904448004445158352722227499717778875405233959290755649247573059741529862731656402619784050030604750200775789792916718406840604389854934721676313471227242179900808359024924038958256961525741513443073720601384162461452052198179549022656742836773954024312325895336936482018013046378857047339849975936629275740808558268631838060217175183992686068428852409423889583688096244719343397702923482574524272625915347215904450517387374008132262690673333020585904593730580430279407389641287047160100606312050601085669935492431526000632357863236050714920151473003472178984239191813860217562461308406104596017496398798915314991041109697412523965490000846668397396976526165105360636124157159141140812337768796965818502796567323142519643283181918359526747588242301047086386209859925112688764279500483794240474770872560283529494487641049644260827766454561153342908965425616836086054302547283915186115652491292927426298687573125658254163964667407199462170440741704783813423364922877099729183320521737621795771566233863100437145454652845461898988286009307930269530291377480314516807355245840810256126091411202893128672276374825369058467430979469949856549424668612263744371795400700669948327351934758538827704706859673570418733239889779764476901727990268533213709307573916241672747062850258585319733020997670442075921524050604553029598738637931449248082478277424932544370272095001759132784735060838399668644527365773847260713811215136028295994796125724274148853300699701227458589503829355096843407337101748599654303706271291568198123370716834114555123344445148296789771029713643680397535549148348763592119214582396011073479800935589796346864661210077866482257158551347369475986769771138283445165713752955524869077910878330559013830618429937349179715348817940918466654364746330775054811666081416772745964211849886618351854927202936106289481442268587669396349168547504526714815380900423503804809925457256549134283234258534129459957316284753369373876834247944979329510225456492272489178318664850723897912049677887915167505268758058891939841704717325211145279676918559624764828331721536303043661614915626643854172976159887682279105482878018831726927326786319428970203447042111633535139218511062705030343309471303706274711500369998328373933204010969631995302124037609285789202615564740758073480573178200960342022658004944206034568320329941754883977476764270020374488261592819364166004369208695381591003830351681544957862582895867417301783073293131606746799111901366282767591326138085764323642602571761675879587543626334172514881451314576692412713380425471464307898463683010615477679979146571540073002285848681707907687598618379871741435661597527069497661763282865156636974074542718766272181982871695719566153723624948150451887542701683979945010113562284246173333452378395707146802945466064813385766347481227137608388657154206833117528613434336532073819493341074414031325062610185090990272693951585387976874534900736374965393634373298542701884506037619105125558423796978331996997837338808475018292769965594287083065791996206117089363443607471566641047453003106297725836948171582303520851975899600022560751156863588958139717750199636158772415437621105488538877928560638886092710142063581463854149548781407805452132139580949397159916617483320267978493805629631520676343154357903797553134375090284380956033735520102155122977669083210176013393732600532508693868318623472596365749063669948538963469285909585852478826036047361174663151653165894297494954036306537951149038630661011126170742911771352104004991133464265488165311459368338691267251816387663877235770385746915278176347803867236400624557161039020523419884827437849162155101339731469449996747879791727449016799799066150840150285707923375527355966419818272936173018566685449355009959162378673527512638349499620838148322816042833962583049911065529487792802130277491660048307760848942810523724206015682611501398469896623353137218732899277139285689129703447722972906240015646053602137651664705669536476578034819466255780074517378358439753694647480631519091145821925509367280560438237923137756238372103351548140944863993085870906803926306842766707159921394993881516400903118665252925255273855161228176765745051103969632346607549147216292105125386098273236110266356000498724273587191922450454146774873632495289099477326502129275190557953810285453363894613057757678088009953963119792006124271352006546466281737550348900112366941754041418754214915049172397258871186166806269429292278485195658383125982238323122919327213105357335395639666270221504644300216597149935113289358187531348113614240531924467380379112940157111051782507024869373761013673950187578766754686765320578842228170292656822483490197341753668774135964091028194444492533326315354968358958155595043529558421595085828970256884930446299024900480055301902889748869008099917843281973418270302198930651649158257441443946683029882429660254463095827725734693978240203738824454023564697384104101239317363886043463554950885652587133964837532037754866794303268482030039789893724272112295033318361605657441739588282976248513497983728514334716994932917032449434527156615261198708492621484043311428917496142865194555730005722507856905059348128635204032757224324870296061502357059205889556165404499556187738297267978848791810552574278109210015088624595731371305896630765861666696237323415493058508312748592448279846805813332155283824265130521626864648454194129190291372730447687582911989690378571865457806926528602378489013704782328385969514122115886364526253273755273250896738181345706239422154060838796876223441294489339823920875322112253074615019049301942457013333074881625057300076698548408817591821980234064898899424826005471655400126664080772741233181288148173228315113107721835397699259437008656851184749856989224065272584436271893631734096720371365963570311606811282041271011940902207737586670631405442466359925238972366582535227607901694483731490532402687693798276310413235233168414943564163557693623524775168826881088138629777295887916031854666491853619917065653266721835257911980225763933460268575943861751240025649622485483421192913479743350856147344445370591312980138449999027435316082746432221834465099823488768658576461459424369212669269188905301114900748056091544669271244374956505005683647678952268714562086499406791606907834601315030001750105292392976596745018834555998887530627101838989463097092397829512914315114028489368277972128024444253714397654216554613435809029052826998151965255965639523118090214306551657954150592200323061732608140669342974720473821100210411295321358040970451668218898964286506392978253542758540015988837542675241957543007362346580871315646804611321753304079174332951452441382313665795050311512535449309639359353092811107818824992723904941126438097793182047060767301842016659726877626111815421382730186337943250062866497853905864079513350366324660018657515942363954784415954429621028300032522927789566683969223963478989371799937552934556655458774897990481598413876998005355564968778477523517754929655511573954797283296149451910393937249841762329895298215709010304267212403063205874192404803985083021782211231508988999604419078221563112671458555916219902626177528695066545099857560476262838859946243422027372714511895891570482881563612865384051958997128929077504365182858128157096450081290004518891526933780871536803319574396687725694031939764824005763775616542952100879087610986222251747626567114450972523903637508407919077596054396934197702860951274026312136888158163259794599046390451649316579592809403234794273769742232888014459260838312029743965591572967875310575448592964850714907365353263655576065274420576471459486570379530964537294146227654176584403854258053736717864713816294584069887791783373028481081886699474677244468926766171970901616445708694226018484928859993211230895386264126061412224258649646020974350410265386867160661407381209349773566377739804491823115474053439413597387448151098071963224782676230650297707397007645273658660784384471162345565864148975565131635318535188664426193922781581611212012601486627816561785758399919150294437353226527196737335673820468658024800421446234397760588125769348154644715504834103786619741603231587316420831284404177140601076407056597272903997629977698758566907096194649805228992233634062329425372908804640703914846452206961966132768658237879729784964865827391519693088483319865481869931668724409177019822838845995037797264715167396268180796741602746881129097754676260777183581980836523896906719796165605009429471764179384185725695248010726270516746340960460843045177991679929748275423849244431706367700393991665074381972916814974464353542664142356947306595282448763568712185660687851347061580261845820746900785045648105534708319849591382521072399240460499768148047679656740117643187472975934718178208294118683292263757131279809873753554247168942557232217621894808769334669348553044307016656337664395982153836653518252046182428197155286083111860145442788835890751019472402300274384118374011179229635536108235289872392512673799693800722814601474953425828463399795974285182795341370456608812795949546428827885748289827668396236349514164793763321827411763942782587596242390577492474578329491497479235935332125985515733050050105172395190790774648257465178776058708299055608659195199593911160797208334853373630682425731286656729040900080838672428859807332561494400318177675137907110562787785959805160384074688749766549284766164387350971982484550304263243279046144929331169585389969450446037899638773624886816770027367454132645317751563385876522179307900355491484463766061433829025275744488666134671742640161621291803681291132071977632995194081448336608310139416820714142886992675631299952480140984020157555181168877731873290328927652536288715527709992887268760015820674277338422551270914928325907958194690656989629889321056176447035914155254610228468961037446113506674063671439499150437322193285253770222992955395150718205854812528165418563088011189456415562059072161872552906730407819524097604789737440419419539058656661999954143632969528108217502376082040336956665805377493805943262270285295884872459289034207593130403334594350322124878628388397531954120691574280316275036880541266998582635220586060394860504524688891258466272570662751827383259575593334765467583659415492731876912392917382952699041840642100476577778780464497211103735302084457571404216273238072830159649721104417603408513959902112996802971517337852435220599245128668855888533740301044144671529013936040480998663500818116192599353138233290858859752062002717797728979422611512356956335958736941997915359828291200053260554785758243990818028720020714011791032125085027849886420101529345391767557627900366184188276198349602567369400585128193622027681126048728066856930936887154681688910845834786615043885515646346681559915702561690987086065869506971408908156730676664843578583890334940227826637651642891499689412272739356066318283355879590590664515852519716672183474149332587274638935782764886268756264575739199207040554370160941093974876943913347122494313265130565499549810941556962559552574533678567733978225912809792212127605958868289503732935118062812609068694006519287029293950734709638347602390356736537447504039303672060326850384566414381180535887215839738508516902121478004495818442023439264130049061272350242726192760558376071889963539092789405197735583620973415326355168962121709617087610417029306086777058117924179238685657013111458359727763417036588713318423285600430016050965820025433852151119221522870955569024998864920711968935536501188443684531245120873865393982405828352945142635839873163224439522180087865381619963047581094137359492479275031198812852310490435120364240886477538408819484123767179816569171121905635002716830679317303039734830978927302806361721487670401171401733953735047654264927519950716448229236542580876284310788032961898620573893104085658881359320088770954611906199199810868674531250266214800364691817598474752636184685858993707149176477737184390078920163075704447483835395130051616763265644053999593136026368391935043426229712278369124258238268846521923251878880225998594760498560467772964612395384969661394765506024659280712459071283123978034013768124345144599307039300227611502078853379540823139439856671150776861928623752117890957173361818866386117436347662171006146850382886081899652898523692891442576963601283481725159695221002675119349874546281740981279995857957025476047031289367999310379698943994182384563231514990488992915757768725204278439681555548688418319962924628556803137601969165863153663320372633108151343855425255652737318845919015325453271146525063213219649817902736089053106252254892752841511557699918793969735114074020214984572879826378348435165509385127629115884044975526475264707482422227023318225808501666378557521254549069757850225745279403012353711396434644092704176587572039956264259819618176386739104243372348995137782506153146150886871449050056800383943768993309091740488681207582489496098055360485890379260127183022421933689173632228511055213620004190613087645108591027917674319089248356959959444217638158605734347101726141198854787106084813335449584747858621356607047761891953191625071596611315691014517802128481290162867285267944300995097760677545051527143188910848904311348359830461506682685227278203578724162507783015902336122968041368117608690826054097508209878874678967734098474425302786080556488519135048171439972786302088284552929169644209800843693363206589256409706013814462490038387599329118157316644453463694840342784231021997025649385124790804873807410395927706352297045295001674771334576989730754275590703174756900027860823106675555655410778739023783798255479126975665773593421602893835681813515582641280225708538546916152863471355407169789423227383180271854008688359816273331458404360368827452463847194291773419419872645312713843541264223463520237180774151497175455042119518226808700894632803252118559149092245734495112447357579486300299786423726119066755249408692078326240929766631098009503028297244778305672606381716626017398733566250922769002520207469564355140629935320628877895705775257496266086179506231494870179573239611056319422114050554903685522590327742892264493770863609268188114961822201277422422430314123832214150180267168136447234209094586809357873584811263557370575830709213688629085289149528184680078795497522449077404331290847498217868961616810891514661198894976858310140038621370044745590953971293099096717249025257943770116887818220566061676865089120874896445243218153300823750169808968264154143632551346982945069784940572174984282125162459208872722824310666483453238551152535627340861044743508198222469257241135565396554092747646141763590495075795029658801262928463179888583971754109137638713445511487922672190428728175637395190896883602345613252657439081150793477519405476307866156067982714450332713225607514092579015619701464618280106988545472091106116558274326752788777994405271502041631438829654855702356998513722132538932490340062048939450579991305326062223359186574071292073602284299018886050223935637074993886337600119877470197156007516988749865400824285603706511755106568123607125769953756756728952107422771328908830060949997935930039514808956587339136148141173008651984789320484064134588388620299048262559509822983892988057769611255855911215257172349046213907678295811759648692974238894550761193068922392832276906172078860945075978330727876677587285288322850109731876917199510255041921108268528173252534051336080590783293872287486000795814532204769784915538752467755252014733449987272508375778767546550435467315468321976540762307718425565028755323829183318342666869550188184797890653733682649186262784282860092191751078733056231007294204307647513636501518243396246765226394452892442515782080762295144193698010292436823162008695470757125161285564132407206369609656790353302561746136074318510229163465223606831332354427678487404641193301591784493158952054139091535152799190539324702014582721980783303706424929831069949509456667883195399568291581504482579615734235006123107916762778131602855324087360086432910710836705465763333812374071871750483783067436717070464629079211958194186292629342131656618999523206287024132256741674910414178648167404424280354644791272851454330505106499955434607258456758892377348114931981722099242432442042957605868972433175057348654874629983642012832855881287728549402256905841543430744231432836029161716828750438655804992398801984251543538230393383367704851521689150882379445452206134467942729344526329539845754327243875413614138470577647401796929919425459200969993115735900031312361832010324760088006215857152617419945848712568860267501296838344210617016393438383617587598981839932295541692637308012474497070264412488448379631139906579683218104338624925370852118148217200424430423783958479690448550539036777458756717262204818486177740113084096320018827405778694391859696121836666175591885876300064198514906932054277794009882618885136082434944175268894241723504448908441407113852933355424176013409166249633432980908535143267750683775607051499152317887729261344426916232265320580095740447724290369798028167453957927114424559909710378483762266577096210997683963047101092972185859061907419565858973269715043166797865652026746382840766418647150321148178231873215517966386711299990728205550133474888238518990602201276960447114096302773603451329735984101918479863691235354298528406606462091333749332775557674443848904348988534239591504475056279773852371620682859698845891417641022819144272556030305137231828109699746520309038096971016492807310647605495619808554063629533418800047814421817754197493190739967812733088460670030625824911693149624504775972892963782414932558171217703960239663386894255566215353519160972707942935598915183490989313527469503836747551876873976554817804316088753939375548160982682404252698915730646495779247877274275043202225196824192153797580841975472592590474941837446637233176544502585876535813008781800965156229870300287389495100774744119589579645230794165108934276293501301568741011360567277341552859825148450328867861510247703583090879116388746295411744391215084821327095083581149445910895907421659205631066581582430073192523947584578808173498828443836031513882624394435043653694428423033441552163680994137356588956040902087400182730459765084286124284257736263599093090127472615764235824100431585897952680484333048822572958155748160642505755401723958110705502296367386395975446301210244064812671471967535581816380539358124775346416458997186229214847428414854371207807558950522831165122432572768284443443287402627528506880010010483973836436958164127224461339334206271417180963989120898870171280144808725145386459089633232811214715662609318615872348750132712842542703830894212340068243661682118880680619871269236052179301379350307529228179554147599641147217557310873157613255400743296874619377642003298510764540757618795285515411190026570536436563915578089431691214418300174986751438256451880512752770602799141852302890881748139634798884001650270400738414895161232734188250628467438672304849721670338157984438564504711132084498226787041564095703015858006403601473654827636677235046600796486629586562462998162461054431515538915163116608520347826576168727880814215444114625698882485599697370630130400598405296882051042645616923051042795407282965031646499026817728549734598094954333248202465770170617837746761427976698889121853734382719523235564931539285078944023072327335003897156575232971317662396347347268996779510965086336978175710794949129028117940499740017282863561498104702031704840349608380870108227470571400855872355237815522276638081905200324905215189889894216848985058909034872793921850714583766984005536302574891696119160437009641949355645766962181918479090706432979344891420456457699026055657401999628463948178584270198363711129380579663200561156960176218983518264042012571425419625872647843662900370028296796714187632522944390517380417820393982488692950861034401258295470352127873048892146675761593446705004503430350568133354881216429581060765182717196553284883812062366948314008208775304579981733669998741748100204426184620080936899263226137781065608048292036699486696623588602052736681227051924975570666951566570191371651032185851909141088334639500461146891056093362612241557879862210282772812214111707171297528413952028050069368461566721760701682778831203657512900353999146713977692084668135466696754298558125428767420084336648533295549245740842440011217523767119465980272532241813933340980512757781878540276227462651893315912838224389123799799152588107701620662618914142164794628880011442893568776988393945132766471674897515507960277265453369497853855311412532512344409424915824637211298683676113615097304766407833798561654220266624768493879161323890656714753858289441405506656471773832030063480775526862351066338220796921286150007970208637440613094717126928283381084300199338605871433997994129491402689936988962187382857153086843663586025531345387068891581558738988928522627694733806760978207689117341589333992732794240904424171556913387630145193655399657641894633433733391010284057707579168302311857472576920905414262879327842663901247421412614232656974467932812447543320883968241254516896401801566878305258633955205959950431203941290035844830921227443427686158142055335380978767900626864383597943867093069145321285095751659048186570844343769947284224139891333820020828217048459497088133475274365915584312658119254509415542477671949840387385446584589633563909654501764699672721450106065549904408397465660229185840819197660371878923273313071815833286762673642475383992952033625858682240385705514992775427965361358891425814410816732427373513750998436863339815478879648772036618634731198155273818331104409566200195846454947546042604152063256600656498505172733904876724675398777581893335629756113336725719655325334817722176672503525373063121833169268497447195602549278115855345771521160115522418184706112297512508206405230076929404454990145629829633447238979634886027037554924377138146571187301818174340841603871410808843707136540198159133098662985609641378060537159746270734198789764636479838130012022298364581088433820860832519730697072544661240732434412445958093585565322562752950214508300292395165884921216466994980378672777087835169854955738708975829741810515735133302250872225106207178527859112147570993981926250907009957977911934098759750739402793738071245900766811571228832336745939338874088186972005799173632654117970840701017076988318920649574291472493059164866246531466477540350523948994054848710131350657887321481946011150101661389765364993184377271846881268075048982943384172094606140177102398917111133585974009421877050023756407503331332447919814249198113405329872380673124728550040257593868147142697999358036922699185258587137935109036445895459067982299430299602464558610142176106488815113740807823281608545905877309529810676877761712800119145259818439762719231070076712791740916426991490931321289152821746710271388592795006454840510720899364469197746554875147204631972107794060688620473155786206434354777855898773520312178445432024847181283959410291210955544298416815802735935916040760521323732087913300522900343489120221687553478803389625086677477902645837271730991192855792503280086649487269287115733313473573937060424924412170354049043477942113900419459276719917954411259586407818842411781015823916976531941685031889176952066471768574814005229996240759965294193587548199917948599860160651488354587515052142566631998519347331176062876692935369622211848548377142470646424527305190696362592867102378049991688458757787676218133726359228168143363430671069813565329907362134236446519270429127097676229175444033106362928046179533301763412740998985138713334854343209457185728946477783314984491121775410080318104381476138021885108004698248752865262562825848180308661471824581575694239352888291845330261511002030163744877643145402490962769884645414169818469689365507603424463478321547354542586287496120500363702059311003742538018480623393646757374192343533125784781073029761157593335010804715086924216429036524239118452510292443192100045106494714626337238537045415683190225063852116562289618091202024234586798492167717549427755850093282215481829123373855039614439748292889172189593475828531909628276182264584128638976176975843840598806257388161454512525644233818717149166604554062491995061874514093547938420862097175971767591975235555962248370858890622884274270207940047684749950155608391962473026286120862146836698401356532657291971663816488368735130380818408798685572528114603456114475147389284658625524179510681687440100255814693910422193372563551997591734714362756908012823070319185553183874026434181587852192061700209240286989771327535114686223497839782724473494964217049249098714378469070847530768325900786404020888463008309302503508737244095248757185539478508670373603416269139624511226402452584872735507444922598686675959547707833959681502968898125034955727851291100054454562402105451032672906131890080418405806877924365023732907263304506222513684421828534332420649492669251212905545752150433087216140744955507830944975637099822823519917972340894375181775635649744134697317209431532849075391155463761386640366479095771445742113712084314712890825413571131886588754839636106360671586670795215326739737259365448913915276458785997688808749000289472184581383075616556673049452310147340596916193990907444520845783110261914947136923241302753784982049584305910259090003982243254806441351875075570023260613245368939276997539582403447736947348446699452701182646760813391070642813549201337061586169235584778178885718687604272696121162060338716627122161794777158598011340555721774035734521008166893732239402288942232069235336438626127657111289850946340722235131749972910329735715750152860936183769015090546129854800462686596955400472600279429344945745020066103374904401746147331960058172847362352647626571828370169600195637480388766424959554965567458978080513920574164155766040180522901575789085505075282497446690651868641874947121957023709839268450916295135514283482613516886026939929692348425102925509637144988469110601572607290625490665197758915424960987701774050188378539583318878557926067505117715458720722365343401008735935246124365659518915785461017983380394407938976478456063103076978658715490808369291636381403791229539284469239776811027861250684208975881403827872099193239002208396281029807238504609818932408926609154674165646666980313319689229143388391094857020569837003955622007209644348645043530286741774472958434594427168514566308266911932874981238737874723928514867647748470959787745030549863237863456083996424357754061346674273700232807800963304333561438791416529081313383341869753985398721217637470566181609138201468696390763744438189833193922706980726180172728010906802142082268854793031361677556375955610366716623648001781989323934785436860063977761947806566812676338331341875470368696418075482536469324869939129002142311783099226233097237609315754222062214163001526002433916345465183785829965551629264318428121125111944908825280560446970729326178793045440470674072692791617351304401806525313561805383634294792805195821360285507371380059316985073628737760509858479949607458844360000926117682679139569110732295460795079001357431108973384378629584437703487981705764945796980748993508545486178099692577118207676687110602803872718371725998161159321470147904540330269985231138734297482240165488311236667174990843963954129763657152168908855998865627901261941112905876867596363617542077173966509843483671053072543597746938645402571551242702934248939674481898493887460081466999235634297269101849564807370181313095565364879303230348101262047111910774594553568359609012675922191912626087382997966097650698845487244032139921267675940600107950548342886184760972492832716821487091028041687592171816540431568488589799637148974505698126725441841448680292521788278669392227971016713775130371046648062160843302862050832480972412935403476725837131809126422532897105105649940515232912156687856437040774511757114411664124663184744508370427863847726534250360803942094217608110265234859662264814496354562552537442409686872840655497290120299141578836831202417314200180153026517752687079667764397203588961780991210833017679734967208667834225682297787153348997389269229395218801552237147673251602343434402012256753501788279571386911133347972363889234779338022421283946265844789297279116076801962653647189775665022994783418657470615002244858580363080049440969555056234581912376139309485758840658129740104538913932642018656396800480566158710222160201324086238803414208975241220567600835952914860345710888769941114551283389517747981588536216934213006319461040390650482450230898323030192499300692066172171549354437454743922918042269956915385496157678377856969381240650721100965039235710230621800283269338690200869031290912421072780501209493600458004329602711416983083824175798274244595861520090093039585829240085405022252491135187929494222608258566830258558691947804869649973058537342045634125723191893277028932585469972068538097189540979849131191749674628479638928484309067903287815867503087869367076934092410987993953612186643891057625033297464606352651414316679876032038866614915626550407778944366356925437084550909728580025704184366681287854303307521603741129129875660174272531794419601665630019633050298952553459460660529263106808966669142749449564823171027369386092368180887101703151857148228406049335023293059541551720004704907738762659084092272416397879253792124460395917118489401431430328196011909477032848171221758429231061698161760266630256479773294651144356542264257426360171181508385196035488680482594278716471106381950962635467088703675350624003892864783223182484409712781383606229191903537211007514606056464805983322695043073518200672475807743671542517367892685639423510273957879518733901699305039399099489117126649352215222239063081894456651592674498383950093528521341061974173908901628086015260890927713847490585419162312081793666945896908183320077568711086872128550734070206528852090908269351308564564665498678099673932257706796019213732621119356890096112881757871064509639463650924872971518653030489022204475782808186809955491272499433316728363511841953975104329043003571300737392865874272916025623796576528480424833941736298958752537599320370600687210331145153016737071528939001865868206241920049505031100814736866746122102674022225465976393897312687375973190537390045915738418927624571162933438212842533066459382535848125942537795345973280515576508735797894537358308867514121459653412643789869192458932259645089292162951183658283381325865064907149090815548911640805805016751308982340927747217909936339305792730959357870611882526560786331498643639219261217453949505419299880608516661249698420440900076013417133772857032460611953737502567692183313886961064686833436677659294662775743599778160420092215788388699145747402072696818851311305086707581896403723769174144655663902789450534464872089573931165020231729405844073240399530892129013983580867823132589002696306204441404883500861951143039844966897446540172364525645445881199313249420254430982581504783270814030340279106701618883247830719759596783479268300030596672423939310389469059555238093894129696520478447521647817562623741129911124267765374183666629378042318203024488115855985980003103083088924282237349310231326595743801851164393037427294342305102721247179146557820349057162917903598181291351870962584959268685742986044094354730217125209186315087546872621922745210872486607374234093094408355727488489903828196275393551221862187812876993940843505716415814835331083199389759090586351773448490883222201789407276213032882748288200990662971393077085211606081996767261727214762577232718500175832871184380191226396879541054287968153244405689658806368036172759370905547711216781743030283657962316697344137955953891606586138509165955880985292712268989371567338754552395413429710502491853367562881411763742826358011409978470321079168523652407353735690729821256325028416470601118262560916365774656106525605855512929739366012496104913562689197926805842436158259389132340590864349218859960867079707804748040285238323530506680798002719102830406703737512665897301789780465830041727939386644306517942174659232758295977510036736748979616947552278258824025142640829892529643947374412896925668360417511816279740127922172685221535607219260922485559682265592432556892865196638875146777013050036533928370902297835471117415872071198243801524386779175178339911339828847682221283289944093812631565838500698556156851493662425096532349401105572118955007582781885155936019644873888476405303194224212591460741449389717954690768502933767275122548161512205830063193785878585841303049765658191784803760197553492912821644466064699056429650845469898379235009663079994695216123590146914311905016443202175732428946140949288835975317644853588322412093529374946147156426663145532726683743919933899131631959846246797081444476834819203901613143757089046977749182859460091049212167966466970632769921164350329777017519931320390977836650853670449717950453387991226410124773042682894952254221803230773425780387695264263246714997030780689352297021073632438808741787896650785658101041278881151601325628845134087870007708861290031376047538228850272994546142348359355616082081659250908613752487735807806733960821065520363102056266820342982094415048794814329171743210264760135959896130768531795359160043750080679452655385317545623844720131855421029359857698605617263863459478632955180304173620270307924527369414403252928367026239441385553914902407192814400161075377068169285413542695346645014646590464832807912418236906707033947773409943337653892819179626965344078207477604889397514814403831049779216282630131388714665370633072376099842789861197379554673895416655843536906097302106142319711735481962019192481267977621586797019370909007186237694403230323596566743055788613396523641712953818182921670863916563025940660719670605605145612646365951852031847782487610102633777411607598240683763009215140342441170095756651848532089375745167726747820801413642730881134253157262412882535894420428036880342399673059234073650807469764052054279152243644101758010001452603384286694892360506600716816088039444262759431103046411112222851805132719017620482361481115653715459139592824318412843775842828716653829634364338526409907271000301055734254810912070155154139704397709743180175599811621634072082398906006056561443928058103302543546016375952049029642487538840177880221483966669631220442026477889893071903899796134880414079349875044755093552796415678873626000083579250039591775789601184820827759015437212098531097992756811374602135582404629252878877381205492916887582638267913162733999917328717649234200082762393452001048353716763250932046279780077050289745742184424943313957231236969820912856719277598759683136323688712684091960596253229443634038584309165390805712604245790174066477759456447301354908435226064007905570708633509005689594476009178308385608068886490053658236866012258066004407287493269178655925865277897812631502852231288936796999588426781808126351330514110785766935806269113320200095468867315489230231579651139628368151694801384702504840327028767040574312308844186800063927448070384284041642903577734917099726521897339234689224290451772259448004106572078617113410497173349320360366313555267724390516169964916014030280359085684101908259354654981489712072550590258582102019687750650611134097553838026952733805565199643349574341027477020368442366075920709377770603967335944005455338565528926137783597735700002969067754281442519388672564301958794441883396054904743964295476289207262512644668818065680721918087482708054532759501922126453198545587237300884968487422695213551682501296546039624654420932120585720671058468349284839062489299276023037977480296623276925496757039033361870819931453198990880194333768771661801262112255477120003543223422929545317224518941828931232649913961518918146557569445451911333841449866264879576229703197178047704573336042700318197846798219572915190326067754725857503451372022676869294168224420014880733977221605095702345549941029673506940570968427326959363964071597642679712587743521471213059027839550042989643071923342444963624433200215009276696182196098023538681287876522812091898255587031450063525617161973887801789126548000214068959123252274817957639163822575708156887584943479717504726013251427097084365883283930943269290591480423269016442264053303004642442955274986630417108664761787581423698935433857893288629138613083072642965139862461204779684625690734167647482025731636760963259336187579593180875047379488858160066698383791019715741942238786488107013476900018871520156628473256314400364808363685761098753564206099616220198570126024207038432045110461787143668086342449364399568861771148013694834566121247293420261491974806636813352826184113479332551796273845294230915042185703371188267657629539160553542472670422876320320823966678918850083929621556660025341532073714834106747359268043903080848683005294542980589155814417165271169242631756018072175878850530548812054138337181742764942615981266642092822587346166092898962770476720781862323228843059816076596071649452206199440193003728113888763734946544881900425563260863059567854250440464165617664985892502959756363899385622950087035609312465345305920469534655581375514547385545295942489013560606585712507455338168734572446568511144466934887123437922938788132707888394226492948090862000903017869402597881814122233591743426919698323051034182976674544269000491905494852784433383567234536853532454592812375734691583883393732336259892557426230015653807494801593056128113318352220980210640746526814738765800024009257786864670057280048024309044091883101807732197112161757623321917492152545805187098572897994002165161800814946596066206199353779359098031122189063296161285424840330726731891970720434421566944979903565599407989833948027978784471494860934618474996230514584331646000761523256767643929597849575727634286036818992866649002382742823559181649027107075386687057400945378682678856150059504118540423817621181811622844850253089355889506293090531197221366587980913409234287855297766909418135960365739392113488808533992858811172333117789251279956065292897800996841530738981550656064811877282730319699281614032391251083448319466260777756647805114055925328755217971316853475763951959837085619275654378405112906113665984685329318707410310722726563345444762983430131536325995347750785564047514570743217514527901612318336104656466562897686909309840141898677014643159942078023933857787041048210814408154118000043185201426756968878746582628032274993878849069667910138687107803790595208321704975243812682674994409267894711720052598902929255528912585786788093253914611206614599765353096541424392176400148482892496110707399276014947425782398237250421210732667449086560026577464648266180352393053741124047879598953951974712172288705595294100531531438604822067420365548490114196488568390649291943337722041312172517017523591402924926696533635720673191602718837500758369605536357209117129888483035589748704363526378569100189993966025664025929517140054902349508210454425667853130451971567110781250764038294292740782286716715902293707937622990186208296026250775544168418661397482357859619923175650195141742150969071139910157393878398220122366389125005288014861374431810473035725491979085897315115229301767252870176275071424777367063104313049360478213828871939127914319652282950046167137095266421912889674079669847210134169334947437870752335639503126716255277519031895366657539188347125794668457027473766431122368561406821133409036175998834869709439003583496910851075631419901178919542051473087584163224355147806267383341008258112884627408381000131979095197280736504455944624661664536588648846621335075419455008378958381488762651082815676751683223358599481910208797831904993459207698231427872453858187724732969376362206160798132273607368530235113265061367672807145630582387331428164072733166845641434970185825879768591491034001787847911084329727166399808843105615159895195100506447014770221832685468808361059806345657051023707729846031724836710706041896607220742087823083780937655033271093864298870334832157936955004401007306937438446978415878022992907519111171260641198196395925280760062511770859829204480335002594102543777614330103755392500814791641277090184563226704617570452263524867344763541696198299125033830948822002970779473828580384362956384260195807067350719798485352614895941286720217587669900521338462289918335218819402992673014111252569563182917479796444986768800576495153701872167760483541942477458947560400866283353660470018564948198823981472138168586388266698810770343336941971089521036429019273043439839433056073157767928140791230158044677606289987023880689655191742609657832515089268031035399335519754567211726264957586785411376323911656251926121674131710805520629094267096165096422855713317323279547905787194520717465581928977286917794545047370343735894871171232541425391050932480910751456312291780244369523152153037023209672257522597520320487112693957210980866363099858560015342554074548357111229812408168868357762062815676063268408697406769322627801030892530196466918114616705233587748042563359659018371006467866360336096203710410232387656319458364591127331380585626178266452441429829802468417104395704429761934503782200770744908851099511763607984792966218124946024189350922485743585736900188960123051357424283113727262060904543770504283763800525670807062723028971400396572037643060276164612603255703764262747248542169169977735679425878953995015971679365288739443180992455138700717165046040443102238192395417078846596181503316843394762138772496653735899666894890901412371337380944278027559462839163841314840555207706241465969180605141144405097184293493556271526128694799955062093135243113621177113659570628336658462449357992695124784206916888834763243714971590725565221612449318629793863614477563160734033081080167211976498847640763423768767553258479084968638861423528827337629131916728141517173053929865143787022061784190715458100151781190998375218989467308705123672198809995595934913414248344537994107856388434404323357902202416143548817440403726424491653910439633749401384875769158600212230437706929401512481205463590663675915231604252425013981988047092676060510411250506753224724325594973558034457559225142783549701469352452059547701583713321142636095853609504418536211785146193953577322265558385450742654801782445165135675437404410244094603900243980373391007656534421768920914811449262739269482691981016652059730484192710462618512759433978970054764979137210725894581062524529046503520296399946005339084630707047519817580757188111255215141629252290024980938244930614912874411413432530988389556302225842811775231727282197447080324622714571573606002939399773164396126293799579240330066402854963847491325995394012340544469258411094176692622149577806138702850896752122820121148136623369932836765292917092132980367870856506465611508703712608124249174811924215233337821909963459184337079855596219301887172435348947133819345072498229990930707110691755235074738234098904382071998186537451258744440164354953675375527827733511500285029616324013771791594866322459404801251202135153657443155061652089928696308363938929237788465744046405463931842461885007741015637829077952458224242197491687310385837026882608337040358638334288157502235466479960149547291514151116802075571303137611803825312640033186684985736114724886051236456980117098587888066046050751850647054796516036355302384771400697147826851990330225293465200872244669488175787745888637392576355931952876379867410526521007138248007282163146844937347947580819138498458969221644653117030040547134268817467816263582273359847048425089511433878037619118815770830094177453589794993173971748575313558974354564724222225016239436472785972457655423362994939357487755734912297916797956678682965669472692470872130198713260932129266570083740990802476213186385526998169836217415980485713667330337724947556517768157478199334447605257718144461121988469645412271487931263588839683396949489186794497925872101361020216311539662138088568102922336422759332542834630312667478627734923259844763257697714552613773384875663092473340808113572188614585913837817501355938210569864181657512671617450497920354868815646801694352844622868407974167483750295477589948786231324773561848134068586163085579891735810688585995709028088112425619263162835039804182113229637770993245928260109806710152693610110178414486275613336689432948154145558666406017206850341539376099610808316025101202656478599196417346379380990503269046811105994133554608810653311360961449982412136297900723644505324248884228893985095385595474190350163531203932392545478834256410333866965239089677595365042344778973383606986363173368629237211684672678355355238881642806894832048373545483695751687362939656194957086662779487557097492344001196389059664123495722307824403266152650692156791044976864403265525721451315586255553206657565726767625904475888522863851229315840144418792480444665199678278919821188457935278726025640313178857963164963579200481108439591894242928625623357793281188568913564802833733024616760633762509336435337364390160072777931171502683633844071180415097216177814759805789961866507489395271248653349113926419283764304147851708062052600311511586606264119838399734511054647910984711724221428384891930639468232979320357501377776071347291587512798265922517801976122381133991717636623627589131304835887217254238120285057983666276837891305612423435432193389045490584174784481578508585099178652348024458084951600312181273451749917510883959619432828420204839897407662080667156916118321156690598899507036463768052872321147745421281920715648735908130103688618507639265562697868233641573903413823880049913111126776266148496349505676365834470654515475574109896088205434368254279086825320494743919589048027287448048163854808897002515133855898956129989535275873740489543446865568248127103709109105287717296281920785839400250487938908817735804221905182405410384080398719690335242136995550905875951767172558684894939490935448547662595307636301741693762499094253555532278618312261029673569293610823866344330494295222108207653176963230699763607213390425387071445561680257665566747887400454846640095100461566676949157317927584988453520804032635448809900435158349333483782817786532144982858959520862652639704820863736510371369361549795960852274338206568733261746134319914873538465599669518108247272582355015097429674575961415342757129041489201781065170691731204292351832311815785279837850580411765378994324493592058428770369743734482189703963170328970506997373227729728391188689399378776304882729498530441829255061012480745806827566955762221696665018361557956006070058060780091464234130459538963508401565524414379942363792239476185998514625887400868779235182088853458326765265438231995512119505858679286744326044237368880994889879851444308793623997684857395182240142658593059621344843087189252575814446516855415664823746968158146124060860309459724424451163112416236576781198305838026509592694664354013657154188320464411430175261560715092186832230979112302425694662332934474254249865185594675328015462147296709851148204798865539869226454580971071585692929457162153259228468596792122682011779397510370463624196735817472868697421796397294493400190421951362528841494496286857470181574215102165808239858136036321314485639313148697996820352271046139079998714235716713866980497282362846168894756559955289196518475926957144525455024536240832272657316520883819538453920493076046618714521174139859010013433291124672794931966353616421138567318478247301857076711861534554017334072332953838858941109945926600963178681480923325191336822365517033565185629712383422375010358539026646230077281315092973204422860719303695215831731843566624029749069091573476621471665975325521489900858519833045028067360982707434483465603824070475111063332425381228021671058556861017771498086555297886787520371197364413098050219565708509302192079975182493070076938709464403566226978402748313548864437509393872774828711020492910675236802701536021848583109730918347370930142665700638061126198565200694799656211672674797288398727706247089473271658656254769616610876847232849127831092534222762067806782099000567784125633998703598782808679057402118647485250408595410579630681559905127560617998738293973386348640578354393609259518408444775696373281546642355118360149316775470544911085724398853864417274263014878299625647144512883427295149693232695511490133448666055209166131414367660561174648488389967911727227879174841209680407179064410002446430719500080293602454157656092436314742042505687322475021472648980990817255561152644282661510712544462708982658041348005378717216638605258572409199836948086549662490372954108651188251314453369718041189371579997536994774426811012712205427280509081391236365796464634787881935686447088832221829726525329827603220742651715324730241992158681106926031400080524879165152388007360211626039962516235942447801637302092632037832661236655220863184127292537008717696068580602825914458334664510101436138289875593427773455304645147584521257691871836487920941800502084051153595623536974213983462034493375700343087215341267573271632075312589227716593450490378012286766068391444004337804159923187564737065024913921770996224764608174725614258535196981714794282899851569002421587349422021128182479756313769335788968976874900047518552071592777384705345243761695521907866776022423539561883682659858561731606132876037958669654908093590533731959737211345583419623801291671427311168408905453443740753640284269951763637475539963665720642879626972442365546006768054173345582445971158467866435848361939628309348983163502872946328710370968657337454443621979578517892203848191843931669902438003458705481435642316965096245784831182532844621793522188410896850771383675003980887245378171031840825454710866411904046036157113962062633370634648157318155283740316093149625823956270930957031900324653030785053831138360652460927952427254418680323790746503121410589167092205819352099415314907705208036632598791960206515101764216250041885132172773856710460305844477881917124110688464230218941182938132409349445459668103727772637413422398355393206962918387488377402879751450582849388162721869942887608284070973184265795538283713117059089538593541779611215676608857954042086792973255655832785292999694177179356390002677086926507860927305996242438681181319923578802921814269365295897082819846708831265061608276795263846045982220033168075104636834986383566786210330831149117670689674428742884053849102876146797452604657885850458457427153074862207892479673893250485025023446898940573939967645699824112896159798386657786504159188464136229151839515404267625846048066619399746502508026952462859110815672263884381874588840722921972729508435891242434343515920696579835897127890663194059705156589882251995401370472762328716714447169580880910139561851029977014732069945638058665265669784221975753898574184221121614176137562191194738388224271976445724855877486236189413590367215741486673415925188041346764544067343818549598529049238678122991410812784335427339912465003222097806475042198817445903316954718684509910861919306922098591819023141000510496169035321092200457674312066749899746648882534511837023649626592579948649654885020481118240354697012134713772193790054899861919380127812998678958597602786668508508937962837372079640927717715350921774057286187542258435913679481338328193170937983668283905189968800227828127779273087855679476620558464908245557214115178283663512335431315625190379305081955179229847323964411542562228045158813324728786330140601093440262079098832951378702193708745592147368645656471240806365124261888783475080898536944339791683530951916701248377076573761372742685067766595394680415292930046874660934646289053046367818371971045051737855722375110533463924029722548675084662531325831640160909039612771760175311263174042003344308442213895379571106222822314073770145692517177015108707014835631530146388149672813137190225595396774173132883046690249158004925515433371394946719450669169679627123646496947177601075939513214316654908928028803297198135617067011497741296111257467089360640458985490077667517098589443051428121323197290840286273888888624480346895967823378198444764824953987232257396562098387838834847604710386977485575615066931101042419950025218877511096535631487072471347327959351185937731414851183141092254957180409789352637593873246143452163903861102749812755250309538705452839264855738968473799659694822888848715427065652782802951187551955888964783663748901567988044993185061009144127756369045919049019279198017273216407191742099652738946752880794735766371138300578878236337441621781650722650061774615788236358905587667213789333969401862980463032894466215327435624525224262184027357440701556921939065061657383553787503369564556090858182605637315828014002744463687586560164006643478118419344121435239662446815196788054791710777323510718930857050777764023702909997154045982135731378272844493159586012989053596285206124675634286196063750541008507454672252309301751835458085503117330196205145798459178861781373530074980870035606812859715341499529066609958183070209432162388922929406247526529003114916785185240910388176036714787298606027754875502595804700311773230360951473122459623584532590470935151549022807267445699892752222577837191382955727167833363408394123102070411390617679686583858827926823725716034352680860946795698397025536055639826541001644061497620534575645458658032230256458106370100781088894897038112198054803990821003209021916493454939631404236455185707370682355835475677974692047281550952439852525166012357244913938138515008609281391137711913936627971727522352129828546001214474177460536437882998483451539467847458320638348756086623725068328114113509664903107231277899651918062861538687336343348089621294900380372908215238913598119971306342175580964563903636831041105538047200194672898896893330287656102126818313591261619153608192901600364406933605092929576901219403246947941036061798675313081890324155709940118155092876782415755274646959310380255164345798304003088467251830392458497350558258682502882981589181615821790380134440617153040067725725655886803146082135712080293242658449201292535093561199789963715111603888377834824224169686980238331777163668576590820264240986367094885337735332216970401046781593203608486401250500526506109685140584805383074341686927544674528634281153611549847060196578540573816386126751745373085973222320974244478552813315191510726933934855375859753843893806025809193054945426336023438446424149641693013112544029958230572498836471678903027625886332989734314763784445126803699337709205587587313073297159343429309717078153434452630734166081282534808384196396733721998575807396689686872460390134348160490942330595631782488105633401504197127117641472214836581361845818395718838638279005102835306009177289243955114614652555153670481724299399273949814034187244953340335761035661505414086276345565893512531176350301442472921126948956543157710229211048112347002328086023206201721098342930996589529727891010255504946795105494693980464220077836292260358940028118372285001150417708426768685642046788576813757104214641374972927849946350490122056516594420430437466175957945275344259194221711625833264062471875654842502247226160144003783753638431538822504684831668477542187028734303647886441456467032239369920980615414072812640243160926528873237696771585464043579627303528763749571667972158924746903292908847284658426879358025319564945300262909102165809307654860241035351898935437846301311438270642062748567781730818569549869474417754804348105727667369076574067588166030322576083830102182216562515648138396752720936188907562175688626942545581949872985564944372679576692654021287190737694309871143479174355729910144356128034874880920752806775341404234590621572988979047981481866426893363808239378764837125358674447542631852174423138738355159205892989152286610893210345433870501137772076090578212554245921632913532281974071004227808779551320036866517558189393808336579116073393063331358398081413433754929544126371917491170898979952761787357666421820534772524364106407099733899820424381056254756174967557403255967498810676799173384352920126774180415301576316301240110148244111289762879033457544681996338425425429917871768811676910734487592135364275305489155369303162253571958363614685362335314170901493920191277812928766287443916168053481202106519057323889768756847475803165188241179215829016127015812428815558091106779801074920803130369991039943273639689123870607488423003405979501311017702698921588342560089782658880246739624128493134704508794407952004564550754380690787425398685164835248795406307642399417093295454707538211729142731688603971450006229826686848555352438780118100461450121987122178052867156641489898256990575554720874035253082227453067621066141486097215285132692475041615845502481293023444280571784189903450557830218776003953307146831961524143376423630414750057827150639313715451607655634164007329706639168578645803145546156906397088886638785446725912035304177070186240240807224510376562398878802121969101457355633125727134509628283838880702556272190503795273091471952274337003592086818516792514231332655485873166320082800569160602592866524986769158364281598396567234206025250135477013662060527665292430113591774401463984674768417221597822326896094833419149451022390970282135870235401173773956727675098749404307470909956737179704627301407704557220711277595713504416715073566579282292277256126287330050623855560579871674483999933791673913483426623565355683070949096643010857452983881430428321685486664288615414860601563685599058926466333590794104402969836822843428471911017355599043567634230699139913016909648098197618806445698845921332835335442508264496386507871022966280005028056434419743291506638676621407716185721155269439933930219714898820358055833440416309566771341222091477390039080160843985707267573150354711244142754071290367146601063532409146757356989752828943037397831811789297666368083567378477075291657263595209306412531868226670249075722686113188351789722438255526270750002533952547586838168169499724899896189090998862244115020015938846385536268919125449871550801795787278296336968028259621539623722866099433886954419738441283628823794678000619404570562979207920724498004182760445088465438462180148589829726026520360871694521708649051504770947340206425792491371054419895015310309929217227729024794778493233207724665208692851762719042350911486721588360737324266336281825326206987234720382936193117900378071988527955389655916613845880294353815813877972700240645128465653409585353782446642989912277885366396433545954451464574526869567431776176341787072059392870817789990681722595191493509943702696798731793622945846112156868596049266566919959981498620657766271043898554719004270108435216891632127220457920227506831857837032665906833896292378202111334256945230935890794474913814233355369397494780725769901351524138767563995208525229949703118368867966186899833930865196653441163102030871257259869879539610803471163680663564195860761354978296519638399330566125920517640465437870537314279188440508996895429847991912125094509933818753299619164080314718332249947059084764025856853802934785755276266649980278942939032500001132922045517131277118992442922867050938639520648631114541427422256582881864453441026778397658668964071518840633394222027079261698137235281209103771639624628901856424133158689468679459127623130232614776662170583050658019883137976665036407251863409978280151701006921455486785910436710204271568761982048627724063725704418265656701748063210394547087393858379342146078536654845594984928200939915636920648580794896006801049116657242564151840246529047973097987581150115001322005161289719506522494198502953805611313623349889648298061658222154444287407267151726789570748514599337466518373926304798815930482671922602645049744340356846267049821221063391126711629861412268941904901653303765445953920312650560079529043782312710274542091356786081220295181142362641763694208801089815030105875782443003933243430258293912190478202575405212133515620997162526964176993103926273003157988147203473852402240944016139745663998398050515673831014095981720119769562603806641924427055104278569921983085601437583448846671362098659669914510378993763201712324496022235025198591712843695068764377495770043608813121764561613696436067979687296175860690989278553722976389864112959091423058689838451313526998551244580806705638288023450011119916272063824356471359204072631387592541598213929516362343872011316296178084770304927504375130675877591587240185531521199046486325880468213393909017418194365950766821768272651723324268620590217632804714886172513317239878796346944882496019411676459985832189931706541868148090046742686372917009176190404702323320503435762104931981324493025276619295303042240104465902481174299627991767951628404075281440684709106204198666515622644155312755262423438404315655486837732265393458546354031434535414744508484455904896642123338683601729339236984869886422553533207200815292799609773414998372826843226001470266461410194560779207945643407383969545892039519165031252374067225721126937916002316191705685530247088129818656130397897882296650366068522624438695703202463125720001249722039974411280959442880440237580818924699346205817652344617679354874840046547399690748008517834315464194550551133600847273721472724961350653428192003746167751322963749274110585495353013653351923206819754977852079112190555760582551199342872070034947168512698981672190103398886559442595430911753514368481985518144343487680687237301368370891930117737664453768062566025863024999359476772525343034342682465525854866948220925836692740590499240945104271890534808097206966561286071166967554132844852345682428241551498452849817691792975350256735608537525971730887424160179586390473500019818412588104366950936106539507779381182458689155432698119974978532589809948249449454157579512410952130632805287318236581662667127815377174174933752670908287168237105725737612300806759514088222088982069352680388746032593216584915164887008543051485806025147176022033982283418436744766652356705308968635414920684747943333086114024400281727171682610805835672287770918050538330410932901721845795202760860036699679286042406245551100270394194919148642650210198827074894996125881394264034567792290529072297264310019453949217944815279182592804609750394127000340013928245773396715603783247387007173986360177900518821662219810278908833774094185290865493863443524278391922949276962711635812095030820201719914318542712521823351384789738460518527714805682193742488310190791703596248717289605091637645559381375568166567206586380962370269672857741709102612445338771938663308188318661459660865439308929153494362398391458535502424803189938463203856623427283804441861786534578899671088195927440111973851965485604238859433631816402903548211263267310300608378596654371654922372532338848311797645598669627681022080481305120952335776242634945021291148803676990713120210023756713072134337516884458279240619100324125797018397621212607842531027825104881256508478879594368397024302638331273529921299331908397284167580402809185225785646072758368277442274662210345335250730766418603847055432528114485063458132483913320360085528353567350017733236048857206939483613358274401655949089635159497452455542582347433746592659237021202766205216881359078664250122734696368245473860093608040534509755936182026013120499847053434020839671935499034661539490966034237097045275173070165184559686188870694746470956108738289007252934778027305893204997231213283457815125929724233932142478118956620338945536206194944379561261825607639929701187414350862909013130170461859068979005845689182580233033235768136742750182371365816333956355306500838127179155085272445524466988064504228555361534908387992305499917645871018303990228463534006930628247888594763056430627401408476449179102894821984835794737092628732954597992598406978659213072266951041922233899079841231043408946350191117141542622252709000427367653767567771090459261525211798787806853528811574505476332349139497345459054912484933696036119385839680189467369744478928799711379463416489908570870191906204390157842427474715883915007903369383045493010010340254053414038857964171354483675869795295751560464271644245463525537506003953666698909724519381899211691861268951131959315834643849401423465183896090455946130065880897133665330675734689909463830294804646135387019825237889130966589074527227114089718860715523825679564724360316521960237608849494572284255317842017188777692587473829143801642526238792380657321206155319786190791789268437253165117140385523149631952934513170030835941699736977101226695894931482564489867727319335386879793715501420323257169635889018580375965135188354251876764288507195782535531394671519431411103513005890650987087614147002774721792839111033451665385024209341825776096727197386278845835611912962130247182679911652178375088930662930560835246965073844483893867380128884957895030050280257076906268676938147652578888591080778844225703621635477718821088344513435778365987746093392394169480677498874953209964245335156846052552933266206048569511965420926090666374204322222467075393557998065567103506425257760461546101037543406688289976018422075273853608448859255434311865992157500902915664010657389823080997823276201332065840384003210837717245603455525520008447604693626195414091732833958301579990512321779790168274683867524230888761762903451007772754458075580249074938925033610076626982022359454521964119765793068299090867202551781711739118261210409485586736271920929796337945333341874792009437182109906498938764802734549109301884346511426316775526518716346196496711513177886247001678601943625917848147954133299527836337232016293314600613497814490322278282339466671354839770209355886046465445464615064769368998107038273686853252796640506166056540284391449688400034537925718409242152094175342023822960227581187312777672775610014033362989520432096506273728195948457867813597386926159113721220673846482488674853441686141483610556303701984211193790510236018677078083335551745407048432342254079278433625362018705822244594041983879250462479005755906341473663016004588868464885510958124815586214077808164090336000644993667240378944402308323833028488764788657683471089451187715203614622403186594803041209114518909833777802386782769792010933766653973417714617651344103786603817066730840129676368561107039642118872648296383312688028268256426492181427056037767982361295007743685594765388395046742949605911279094041282561033938173979910010421864687039217471311096007798838851103082096206708979858720801522786191464575336712575763017515819081921330541609383265293310412720435931733597901831368802645574189374506481594060943937824003445960517780802892034494649763446866368632297699495231212714595413882820549647150444014608940006968715287186293913228184004526543382205658132854879244376317613934074699914426589366717434000120439155420586474636123782881363419592460420246703787526502495922321249936270600410980074513343986017181037850460899026429141762009967407436471591114535537916204067726902929448004151987903227533400797161601221147078718733349134195002495716734388672242642443898984434789635234581658901382371636264344499568935480998452896601573747186060882262694426550261538436684757418083501444581532824484500603477051816271569123582429288716734023191690459010488049885625068608765632940103966950817249157943728452132967745462827197195481814188456154850780741171818344272545397325400992162530720655597070239185542627691753654653235680961693583369253315456252789604912956813680300791653919444879456709161412676022719796404204985525078936300314661936855600936921492815410866717196522806494463241595151207833278027915901030226629907705922664864835920682648857455989988773325767222233712914356663112224572678401836879732327370024991215888902849564044608415934198725189166720370523125403607228064095829405413247658574570654963532223502905437235985485244604384688553506928877371507476928576293849609275849855052411397478537916611320323890075358312212532062326787199110765944761698080569228606052111457434549896875990761212605363830755678323812675342867099468455823812247886015428895749204680905373657454146623854708714876791802952005739856474172604662907694665625776997720850115538517437088118846496481507055608363952429097307884701852566687462919448048639339588105919303404585662231571602909889364499911410823096769446925692395744635635126982818071913887039104844237686424394912351271711846166993183127086808182166587513332981071132371731157820865652984183615151763709520574570694749180466998539495492880524635560296023082864102755953555443994835517600173344613497057402114133339390807208198745201756342422659515374468487176794543072266588869869253082632628366571258149931108544461012894765023820845026274299183381285259529679139995345726813938907391116891608373977098443579696789879082306958560460066168549975478958222751453278915124496570962805472639452921379638376811835318352260460910196037155967888901889792203102920231750636435362206313985383515346464296261085127520150147029345245957411902977903219303255607896643915577000081065068750973265152153776910494271356753801058241039135358708804810099107675049294193035684983139252577106676663535507897158087731095373165008538355692725388010030317830307979382467559745929914213098449313452582441996106279255474230875584388072045587502570861911053529405641335648941509864989300446087262325230597733257367970689826045836959809802348895984994481821967168841054992465682909607753872354304183514523209758191215074219217602045754343479677832590109213342477869479172303596753243891216056302780232636886472125531577481885148123490820646999615128417121931194473068464975814756567585145122107390614472380310507627062601717793135497860970991350821192274756168293778666035437673539222079195697932764271016357771188822140880273407516819441976592430949956225175913448597553840512241367950228074981447177763488236601852791489177348255689404791387931902516455650310980582988366396162402162169743494600917925788204686813411364939815377548592927933493733407130754251132528036904652766811575685689455087357314139463275798379564958097296006152021781014420691340600401477115474019920759895417915403108934410605352277981508640810485112363515413655469255187930110169008863925915005608473590482028400115805687217734842560552404622881333046502805725547049153285005456276540487738804965168877389752247364213313308891999030135011513877349578737778093182157630177878666169570003518441514317927860511235311641804966439168605778222034392023739067195115641377365508473450782497968625142090666053273964544136884265577125645166121958875285942050830053426343602580872938524145909133192362710304143187090989682476159078079505986206229712577171512894141357348698752723002659001192751418537909761672288749218719453751818216709671441034602073013901458346107087369418849574853767069098084882277737722705641172900425460911159384263507157764919811534828728399648357438048780851503235281242492965196922887983780949814259915006614550226397625032281556323806673321559734709302240285959568032441018757906177988973116129391859329457681673265379946393374933843518252922623166555368826288761010298426821578461833604083878371614471813004720154925981452802011686830993959458051446542129691001830164698709927430789736357659646051655602398202808071589458442419645338269904832321540652631328380278355106028993543257757705010098949478002835980036597206889401425585347647032286331449358032803883665487526513345739380468406163341102591046120692024406372437427156271981408372016432362614552834195026907492448784404073832682153765351184577568626942619754020630943073534721638360220846415819118941394361200106966482651570739130243447963474378665194927477450531991158125849768393799195053929120780142696535897577546411339754216883413861999221640287258249296472266424220993669272535109848941056227258723625495162514617365881182288171480064095179123421899513438534293048422425896873413794442791125280266573874938427963644112954349535342004540633883973416255386506982794585691331696083061987661124196684369437281171237766980846640731578784001824819023933657513508197776596109202277156410541783665315699228962279647868983197984960676291855379384955399096167140722597803286749718891536972865298878442588997487849029584167344379562392882197891884793452982127838078741457392556195395356680143351710314900223672722721114291248758027900576250366546691279959562939451573531921194184357017481237372998208896980452070416077673248051705759416150841746056042254379096576972813293522664255157631869155578654463739822590931937061079342568765121706520460749697380824562407818521270688696661812843773296767607985027835813982621791857214050442975858034189177781764683284873766450826528936206929728851938947653793496609653473974862932381645987583130618166053731951265000248286529592506049006541038203190069119899485774216723778800367229015789279530298956948148081996864295750584837665836029088896378911604003195073268894230813526302536461823769587744082677594588444562209871212887660886114419038842778468025304040642210109762883825551251038845462128299282572330035360641909620291462262034398314191089290103427825538112139294577823485275262871655075499853134062138355781460032752012325024305877501894326917934807817047085848399168473425472074152049232772924099554442836998616801945611118209916869038544120836979311232804065486831916510271473128406287851392631403054528094904177739929478959186164687221922778841782842508860370360186954258888075917718754203245467983395899918098780915917964635359378577274287786326113188598120369270569089298479543314041592469791957851780067258347318159567901086365111262398613837252687818173220211922682762007003265412210061802364171187091939668980573266577736275123319100967538428665541250744033520087865032441491314802253758865062741709797131467345362781000115689694558367028528289145007406451718588344019426399471132406410974777097221892092600364383485107184596494745055637920809797110821404563053102942872173131434932286660177329769797005829914447298281288747298004272942763612777340444380866490312919205007426451474526865561258173694683624994817281936889534308196366018578679162043256018323325889338945911116266057463859306944731902725173514545462123211024300987715629116831204485488058157907126049237704808581910296653641003428069698920341532621944826073143927654538778376272181679903425158258311253194372761717355151005647857830001308261939485097177628621853997089087023356751156024391320713469197947269804744098677732921670319846082244767820035211436138956505704483448313023720325198426202656423156409359613840336648886585457689044349041752117151837487771543207426396560103937223756396621920793734462344502743397564291144602026761054542844997438703253020796281563771189542227283396305734323284622879161350231245662737625865101342130446238706698251063512809821041426197364974498909760799212084866941207748283757301335415800173380766086855645808280541207111606252651670503813220475793411149645984205679067211214493752190216487721832792989027334045697691867841056628122435814080129469921964078573401251508554671075009489961540554535387787827242307220471531795883174824434188055526957315545179497439606392101729005067101491047261927872441745116181712641165734601919895327755406767028595119849158944339393619244673634917252144093690770325790068382024503015925771293183819626256040887589777566982144316285485068568084556546532443787745066359539500986464973725535005736196986220989229110072946123969116336079533425774130946048392621210227373480832114247887085507927034028497746897385280117688699869479836830014919609281166873928460509914682458430911114494623150129262150699581072563644794849512641403463234084175293051819458798168732684835872304211225289418951472823287367944210847668281288624936916339549408381650174643829115838607920199198011628326212687587991590430976812187297320718147363663605133500145647843614884852813029998882882047904116557778036344798217799694420862448700235389957043398189236077363876492171435763231687231117151333927274167858660163259677864282679072930085414368362187232610002468425263520853596693966276554704723943272597759546159809137199806140701451296630476015236179539004186636027639355557626148215866075264404477689216871190817946503930622046936345198936796088261052934976730540083214336413128073740106270504578229778922537352954112986617477221397451550625682840415222193423451047017061784468435477204854053955887605022383701656361483541098091563967786322596769585668700875886518121737489984374646671651979090301736458032446260753857156384799290164298891862917751389919536758588657426556765734017927337205912379945667463518657023624873360248564086680163822449131429197441069089551526483794644288413978467167930527026297711828583405249405803850761163175092336015629589417086225522900220345532191305490384769401769869006152324045762975068903784270092606574880382463447440789657978510272203924666076058336293164584689695935563763975487563766902241964095170114990391825381076258297971292397136199506761485547376067424569294032148752971831547076957180084889056665361703706892448287688655250883316816443092645378450822362390465640405537406567008824092593167532445331106975030167443128430589195088580791670355827447326664253558777990237597575885012657185620416906471474927955676105062529481587502402523363812958959698498640666074643671876410027732075452376160173042867014701495368018789916485991713438828700705390476515189921302364283664213239131752476703695688565319162174662274850825507476280045468127430767739444147174767453660755323689248951746422308003999881277978322326077450607262384749670724267700815321909629451061930972810315924241836045572472732883632392039704704982194331074706926065318661350344229538788405038947673856047925915875633312705316385783353348509557296579100148175199822521101102384830774515631552337365281766254528292228914444360407069791771821786014275705341287662067380761523619810467995717659681427810633341239752205837984120130910308719657853416823180346186781854143605643515402597881385990426980742832941794016077013824105199640496253056200840216182970922740004640757538959150916787730819373912152960909411962060138475497646628928806034720192292092217196047888209408306624243680964152438063528933596300755803568449376738517658893645683398864171176657810595281294436144928469436885133968139239181899303232156253141012003144291160198286036158160196504512820077269997509386331561298873614632718658880684786332380108302707228044171285089606941136685919530210228875658579332387473305799649860105711156093843499239137485977582985800828288317359101292356822684941799811176737256680169345004461945755605791388677790375251529846044723206539555891270379711440490795888439378789564597730573183106188897970765795307738729669782723878019526615771040875618306204920971670491973934630006231002066010883755969755031261998930789341088783824857908586213000838110812568377731424268417109109839722144807619324481671095411307688033607857691941000252163032800971886620697552143609532406690254281266824777687276837071843895352288047174286459828742105817038493826224229170890580149220640070290150574534083802528355676310746754711659695615904385635670611043243197348664704426971446531577626877905294439660930570758986769960448684442417684319844966498260345687223358744090639308737658167390227914161416624822267580786506824658020705310273501624538115418426771234435046680155385678656847947429871099347531721097453112006894280793790612038148786684810326060640299333174109084090566748212259663106671502205675492913229491024019241767300935087216721827212978317207220494687982603759566080219658920388812009937588010225875736278834550027405841412798536884169692907135727492638606801538698770474420410700634094119085316167192520073343849716757123847742014219424342300852489286717909822184907501942017681013963676540058122987860508831396597044653042474981788563768571952737103068895258343988638330283447103911189751915131750152327299276566124318447329270745018949672201562142699584394468616672754349047984008480074275447353234046198377221296789307435972264112460167584266348951153095559806581936039387073950832833841085478757515171879277642688057291669155522815722601706577613432636019474870925487223000610598912376551026352128997691190674380310666244861281476447624574525582900913616950662640537454046236731710788542935928177276051201506053951490085620241011347661673703146594815553580929416478271853367269555372633794613548606995998180957046506749943523121244148390270552439093765090998772496037661196461322131047925464779479086220514668829527023751756012881299560186955670104006159847230958734526241139974673963969113575536991323723442419654055966738519870261961712238878132898868314085530382806387690361620818699454624115118198052905667967360685665323186601361142886138753808993820699460940930914312894990782131565048456998768134360847505370428694823755062109695411595216034982202948761550709870064568781979767435076799813455189933356077432278398582158904477657077848211771631163103226777079868015509054267346391962065032331550373907472384511368567004048113463625301242842900458973592695737122918214337346629378351073406119826360304382181618578268464319619344044172074883028773562103704138647992851474518924570472169543964636994393829278837451899557196735545703697644921096197280460440675117271697137363061951241583830071178133165958943931166647505747609342696384724353075719186428138320738592210199970000836035703167043142857104443107905680645162047289032473744185926991191317638394717297122354477012739484246760889617866278569527001403549744953034824719173031345710469862448012429610618330917906726460572535990315805425522392704948998917891754972094476854099211022675030196015800340190645869690136009609771802157976866374053168763138499813068352576485068890421688929822108482353803647932187598033543676322009762954760645814053625062412747262972751358627646036114209679767447526708651902641960568417026484949229954806796136509180510886149886294365433049094870638943330195714775421438026300513705585016811149856775699828584972977408571945883682962884830884073516380885589317910575291828754983296751043547090639516970658275623492312678397353631399672629623273861939493933913574386959504470169114428490359809429698546192451410113267126536703810750669777626642971204905033842318643997394158212869437890985840795749142656335302448962944974700031328628490995238370951417260104319785706368261223039952377298404861899805799467712160318214011693246193366266040320497569556563822992702117291590584376579457287888101142127413502712852650600521921395270633560812010854277857309974367700236615494522763628732207242021870835407170654875228901045582489238744061112188195873884501561447590213678478223703454389462087095190086684207118376965915716631520665219543524103639709675899154628543450131451719975811301937324942850026990690573207039253301269094482519175633771608637965741208586263478843683835620953584877101535315948816030135169557685446906069041602114260735823240879331897324235748365055199513032335782260463852600889438139367723040262140423918821094712129204739879680102282896365704026191117197968217621397591387599588646837136011226615536097013668994345120602058389283611327056842747469647740718084868246112867452800534901756060104807609292323546694411025827525124983750712038292093697373821847491184597021363099234100157214889785487188710052327733001452467482623163779919144425575830118075773927873812472907114296862782582828083189594741803049654823680904937668868482017561358190745554420459433706382651472585474888117243793854855408898288892335156531796640114470612596187255688815475861369105667607788132830520839224944726634373036406550817960872864272938353941914323440231839599287187241932629134120009062952684467752572305909426154745711498094278706517594456858546759869811894723584063085999982896921526691814713688687269327887304164527187467409085666055104718960608468246850674207475722647302624028557911972987106420826607987785178946530991996687319130673942336080654841604030569746598907099338777124960559325406204700678387704786530801677824011473185250529657829707607323688484977249924474828529196486954765303179983118848613911709979153601418095974429417915188047514277523937862298154384885751211628424451055222816040858859050821601668517825424903795577538815705248804623633075096121613854292252341328431289223519519263468955986574459694350139490776386505585216178498699268315565863866830971791598061479933471372784166770839833272216213296506943464657778086539407321963540303081089507501204155383760089060398138517350767470053258851897638848729309909632289425469975054023583394877569298493321720410976949638635919067627871950005484183433585776073035341909639661688723419126154028954733983971664988574624581585337468962025187121749095301025052145931133122390403064661355970044277245587047730081009577144438853043768070501665529699664104213428666803627229700752968539424797152023652752993700104270125520666086241638422771004038353717505964997221659185768712387583209097724642112238122594734965988117678754833186052559212803974522643910842041028300250241954396953680842816981169101927020018917508749644777379891336653555337046689102104157727519332876190964034622401823142161062608390570978363855440378588070482010394376382486189974840304005576529671019845795121878051182776074557263676158554627775156617749128448536998954435674875654096568889395704539945567564822088498191167917123722323342330184479704114417530832740617346590654226970420797672855466803330803238596548121066608504305473395591682507258309481364918403942646559357945220687022802723937065804516686422453882447889732106121091399576796370272501456137675272809552767525995069031500905312758692923035654575653730232220357808438088605572696080192765870569546961307041128983975824353241639437348766137641436747800341978110944324440628473880153261943730043987448933149219826675283259322663650591675586338126768882455661857930249721380639114412335824378096224282179002402844527324494098191746451763994733970848941906823887201569886908195822684971683632009223396078638429715155868885052288427174181313908518661660463611807539660933467085126551902168484623877022008766967378186958552563806547985349316139018316573789262708481279572893432985535296903104593528805705856027232749881791372998463403220042848462074328289684615649332771994176225269005587343067299005997829091227073563041346502497606951326717486637023479113409871552493159644180016395133220832608494367436689414517306943407257399908314308866686398443264710950596073886025186561852580162776505672059190793447591163891952405427836366734730940657612257094179843903046345220103290143524376596177789554066483303293907352892020910944432193304865903014985702970793014391959869385130457048225897550839266762024668615829963459226642779756754298388747890360943021451360099628055572113620150572721218192086620975574779782877921003527013405285582128552432615734706689386958315637789967631984594445492221621679813361167378788033444777557078651736034360763961214153354330824917273694891237285108265865903016345893098410574467288773360269606518678452872632338558559682387736271100408033435908649512782238706560942382886913444137440539448101790405318638578383451794017573859000862670489564285350789197183280310358047762176027369765896895915877021461057371111415314740145087274910549320774490817544093837635584961285990235450279314429358326454912861433613983295586084780918594740159126957298059746459187821421814315229793344933311545080324132531965589825220679155378506744942309765202796109672692170967837370862766673362080217116690661687366543949931106608722592088245549186827138199313752181008308815516477835153725180681236027075720427029168765204738772129194926719694892426173699810529325629578034053317520514438369502206506564913422346897670210369635579638985095042713584630676023834635335947372332724766758040856345673355951290970370027115641065034372879782715935183772584696949320886964204240396092793183857383303265519214833294228468522496266959333043617339757261823618004017244438183388760877698788214093476746221696481619869432026095640630141077729326422858371653246836386069369429525155620160221599007003786329646115146239311769581383160784997078748603551392542597280609464424665532065737978744732220235445438551600259391840776045064682261991899576114648024472876332966808314639401463370555084944923615399604539949956347263915028652714285294980945727551425047767249356095647388465973464002016870059265387185761691152706053347282616264574331858080998689752358434595524929953674357229034039611076989718934982963245504868689332659236167493050403585068115961653611598136275671436667669961895726009564990802596149040916050990534515298224250831328022133903273719755690499445716182377228245855453564096284872383693485716905342560227636797997700553116864330594250219778260637009360737576630677243014625094178883163187603856814073012157203052059888464020257393614296884052328018630992575883869213995887635612552326114221606394090428656622332445157509717011067037496633840390838233374717053454587869299611276626311516993820093159862259979604048837267394706258024552470523248487363100083680401702219187819696174564791154128175814372101504412202014893130616935619926021208798339540112164083272853318305610221464720559922332748824527624630133180785156343917204525722348031045422153948568768964065898469754379999146556229027664458687410023575174140907728459850403482461275677556281238911442130716902480829095372453331302409880350409239813370716236432499843160853599880788198273786714520818287998438238533179316627796659698773874819876094180652225986588452141922700689878483184568375209068934986775047241650010134098733922053405207801700014749749285019058391681658734603232820530578271566953145064756385376822100688195458763676668527867311563147300681273007395970063386665617430157831374325784784388461458255323660916468098792926916079528359097229590831317673161594573637207958381194852895166217687359680584458517651648558230682541079325365153178145535223501296147891177143162598723818632809332561887298801864026641858338795642084231098072587268119945445297697695855365164215377996461917833192724115514669207036632130535157294342264348766350385625550859468274194062138012954082950139491378317419632868901345412893204847663110903096204990702707007905719988298200101490591019205924238447888687344525314455025829315487154469309188846236098711575401844405651203673947332163366017775029170300653448477447522505913608721722756800798625252398642858395613857871197393976285031625442376866280527986955878380432492331398194520657995067091666307830386744334422260352750580628004126225547139171153551915436605998603660706634511183046896715124552882585908738633081724295034946987422014312856471151473203383104002910165987121416461204210726520902684370119258491016513974028877437532325998314227505251608505393090043009911252977635842890540514681114185509601885391455554081697405329648104224166864195058949259609567795058796797212175005798834637745154108519498189405525509712187239623148701929417094004791380207924574284508518025838299188727866798334125924499308143976864407563483169001323342763769001986607223091023999499592037671159650116375890688652741030859229774252391253648200251831171066525689088147454464083544255850708778561475243139071889257859481176207763914081478317422884739408888364058948637190876978966603255904924878422161735466946604599409333414729905718193227744240464095581318917317604350960870297009652622799232724114695281539223097796274326025662959564443250047914628831262267214589483474159182321317364545228393914071610780632903383706326229871769844433762752881243881599372971258200979852232775894933414763397918986004160780280890232951991930781316903843526218900607876305521180889924012675821724874348041874932917200901179025026393635409677037204278874453514768948989442763050600484945336804857915953329831123684129828628804878664988553405643953764111907486300364931425575731273170098743689477072253345144986666874861159005573653618857544686635190634614316633646199484550217889224558147143309747857298611081401338915196000178256438585125322455005670879536651874453699626255651814058741333995629538070702995181890076023466802623822309764185578896311809744102931041214151433613193428799550304221344083493416516858501803884060631928643049843959111823775294793087144443549061907877119761252999278610153910555755159248327757731166483510778546354944192147929965480814809298511274548796724483496675536225930997557608873981911287872936662005028963666688576832415969441206023375905408965747630875894911799359194814210490504313743104404844574544962278703506322514062033513610627070036060550811763384130731619515948535820646097374925475555706000523969482696976215686794377831778714530668553024505244150104304136553613181632847945544462903552604081223284283629590607957327960505444999148367036528035703589370355858030954147476407846801345500318637733296744706594250111446689287848449686313937822476679787066051554071179413405443617925699602581161473502931265297386171438382331917561139622199603967919946204075046432702058643540986349273130530296241444183458432625274767056372672748933561174845459937171044520111238039664075824691740112447110111467052776518261553583755125308427626534323465543587697114434860203485895022000922984447958359746083771872991723873520869736557463142604168730259266799886671717483851917292921107875651464141460265900162958059988696124102046332975918566989040344529602636507546059840980688884062090719978395452493745542900668253337989784472715073752878568269682659569249569699969362798349467012328403114550780191564722490174556766670339255166000393640278161408895251548939874471098327096316629114408906685849141038038835679554086024864488761601737736635889111640586942169762777795847546335850084881238197166811910692147813945743613487746009378115531544185333398173992944498290674427306227779769364493844637467400004190017299266456157483538685922456728497313172100268132742976232561661611996102425246146607451602843268048927896691680767374226273907098390251096742436189930085203040417216864491507137976976753807723498738079747103086759161745176949161956744720073307464180643809272512072706443461954080097528406710489728651452483902209921978100810006017290439680303600498400893879753319273216129422220483874947012834546831370570009557714213126633977270116851294862559472462619108956641402829243160028598560894669038424028608142934203659733346497484099350088362142182727480257373289269008771686944989836248972691847807781570970056958702505260829419144775452535012860926429206327449116366309159238366390037891618937712292315316431938694081650498382386372444012103569170624051193865158197627860319245109563246950052299248901699699655029408958056341632216908991782875257050674157359648370473853316739062998932562227190170746394616306526694661604942724367148969739624539795096281825867191912964832775753342264260727444011924688425103176679661138726207097695325205990699202431865282197500796203371059864478492338102851994525352093675451617675045879935267121370667772530644059659206328960381393913991463143167893023415312715649346489971522166615401881308747120021518557516380186355954250620612920640937435179855044648728746093399411741347471141126644037141398298425138450628563569870325371852186851495659247037880387135017808545810654302051146633605891005068901594214566009665452322370889223399015154714176586557181980237531611044579402679017228259571647841647339696987656792636404768874186972717006223412602997669092614850778633463206557229039874717239520486960367653120655156648584560992591256015435340913288512450945557602080136392042979228008239226010084990199563914084766875399331944960709065676196774357707908956176060513778774992612331822264450168573338646785511067419979228726749769814479088988442479902863335876597812791389855116262693315682918844630325099054715850568394395791940076854394004410163259058598730901280989470416460104434195692462145977660112487609364967360939862891125198050098341855392509756077107082407826256138091447057373270808946228795535324542997494198977211334546869459503390772912793410659547743136551235132251887381166881725784694024155085079161965079295165136507396739848199470163162235027994749060311787954051860711747339583576995461761811531094637408830487330729722771772872706485073242058014919456784689532751622980783922688684976573759872589506283247871309902909168956653226500527713302872830594183798175557425254720767291074153864287456762185905052667255394065608895255828293153152786292542165961704232546729539344429703866247879111676359650585187060891739110574860894046279330394152958991666205048027595611131847572173355686246293117167881457594211021987187465957214510468880267906457540989190687461974272261011608237677936764440056539997091952288570362419827504529628596219256074286191464644936085453504230355796592295570849473435104078383412047443919392793563232648925606070298061303864974863650857619871517396541323571688859204194827954601331028159083374107433475708047893781948656005598012658024368795984783213095182300593662006843397452361186073260092963217029423244278228660259665478271663542146221141550832234894211307512427755001432316139856661951396447232852343694310852216193589542987123277916241238104008915237831135428743120260391004453178456729259315965524435053140056202234467606352053230739199457885457727051641821053174507114014566744989986052268736614945437721494452251822898162605090145536678617139828922556667383871947101955504535801718106810868831834289364363535168444200845582690396243793304587236161953277921356769675288033397319375358648941529840583491440520281695980493903441581437306429376624459422532922937102135942989253526010899264653468230062686145374340138234034322871738837418979864614769457377668431893130644950177413086659250280648757393886498164554136748269307136222529015344431218504379211390663734363700650280135314242932712080567973854881666982380132616570263156744419169955195205130588843926811581417533035773130632758228551562586266288011310211784541152170046605230287243737691266953659645589872522000905956371952847700488866329677871344354492581024682743794228972334921291269344405990001708182622627159155131456191822829015566836748758738652033129283210934693901360880893260048666469200877036192033325713385891889257818696308304313398698954880533095242225633168779958829237694877803716945885669150493426891087952345489084675134913976198135547794649422487473154097913581317973704638100594333936411504199560844030534684370636303748230379497855716913951340177356323093014583985822848745552864743555136840534891851707297591027557314569534755935817760911719385945999696280357620512384800496525543230416182699393689355411762072717874737181964436635161190281551448562353731993688297952854037217762169047298064128585759482215343394239759167148087494458532345269122442612092095120300231848605475704537187479701148575405736707175609791598802653110972824496188471461942382307711277746564834056937323564865281162430820209694881919376170625484084951905155183983492618260794286743133591923817761824038024043816737562998082236187713895090385413293048787545582717773174924849083989967065243292412015797936266492732562768767165599431865911585517534305028007726839509546171619102850795160355551758900624968329706668347745722861386244541125714343125744484688878502397115674510742836756289054705073981496694536816158966483001640973555986722194702515650742311125434924902243560548139345223895089518381105418410197047320067423874885637726990866161444075325472969089391831792136848851154434242584411056592383516095346920033949990502050599975791294327129412858820715361488491231725421069366772774023713537843358466623744919396076757501430498202033510894401133189757543981304665070225597639910931749564285419244369327508371890619364826809444368339077078596685196660284036316213714872627443808897788379898465449545230039432225605573453166396915298688537279452275063872319576080519559401792537154989465053235638583565165662429006853883133215041581809459060738927825408354722860913234197520221106001895667681202177294628636618373016380272161494470580705487159074481075755059676366717304123919115626687219651972983678390956117557458245767830283580558961939090539866034766045238194354708409202432440305601345128257567393493478632496727374176297632091569435271255036962616848822204386249748550541648207927091087480582402222896553670367815912739872294713161574100271958105309043866985495165931087474804801265285455746342712329140362267273391642937424723046067555279063964888521078494509682241514290010915470493207065258610835869909740733893241933794574527561580430614134189946665825148191516759532983826123427858014786483952903047110933051216731255480298509058377371396461501595567028986681924993065142473140934094023661740834550164323320546138650116996229037966898880061525503773936632375683028948158784856618484222297826956573270769798975499616011972448800189779808973295613973570702800461527562020116919067764318788858810856427785766157903754333485749656654284411716365824255374092127742382565222348372610103425723112829351058541788542481078420440190661913054832058268522354130339907463239326144804315577666498512295467117296796999335667649590398919892257617588520612336318812640255190710520174559123275017377243858281980454587951663180604761182571657755496430894596810812936319929693553862748640319463889938395305573375597593382971357850888935877857056706170758994360811173626779985176470179172887963252638224223873122224386759365877958012292650619428749385467212989746950165163001260520954380930113893189267667386401744816842974740516457938055935763012132004123344098027905099412980019387710639351377047160975558807625761930769767542017409939986345545840402897184679236404752471981704541061658160578612840573847059064728499282460744234759114137535194967572354330970268597139238227446359861731930027077976328053368788747481432545725953371970958598219209005230831358287023298300996529869006302126189624497584530893472472342386211677770438622933390921565377702969079190201428694674103605772768319804727804031137813468073150775909721634760798773319570057500245901313291818581175433330242805812045697203275994849933728216943880305350618113408938926702165145584454499681319657549621514349098148812116584965574048150020395946599015422464726086283392808484761903591568649057485995746404185247869376251891247218762536711558633002587923325738566270225797642808734972884121534713478860167714309890656574661360691359026369801576998715798534977207806501116941267548395790641325048586083614742068244739641924039173899050762374392781464900029134970401394410028302316836489398119753337082709012518225065968856253720933754688757709047852756582133227889715284307861351734988656467973158457074194877787963027475622012451970040045637357754491583978655688443202462440438496963653413159074738972656019138740010817948801295207453118302533822616849632048533548330504717322831296153621520518941539946913665576735107098257282013933809330314453494699729152007462766716088585951184604385294421128965565529854296826809077493804628026899436855463930460413555396958252413051255754688936178987263357497072080236807734735757934689653155073814638905325601179992476452603821119330876845520716891625102788697043599940953969096420099342513292657090204207589571518994833623649962159630803223497103053934418401340500832724738581417507178438614178336625170347358216867914281976409026938364829713207792160738139325106616193063837534548794359788997096813429375564000440750128404232526889876977060249824202416558797373668517106199995866648296821408103155060298436319849127105366371235493165483719357172166228038357846080410490503111033659108149759516648835693477138258494736566342920033079861855728403619238901639273791047902828153351543418925589900912449031337596623476218616475372566941719741394330936632537880868390648870683227148988538520594938359599452018894341104699199490262536401506829666487248318592070043348179595705953438342466893235043546586609645274553227465657467463245308892484341847265179290442840860736638833590222617104642761127958427699638403580440529825793772111655861059431371055047427708887587269815238392316315464304221026061891961478911016132941035495777332196525669717606282846456976253751942846496630155731579965750153519496528513677650887402046114117328878545889766398078307800505159920499919206294912608598669106094937974000282294658821056703560153990856475241398778373957603672651454506701108892109029557592110849337227682005425852035713210409532126474193920135876265435999644385393309756111942212323218608900897645895461211572437053710518424840794846391743451065210949880244964693609455330799964359204759656600913328295035297111917099081982090619591194324705612837874772122549648951087713554087620342363613525053756835504307390721542634118494641840164882963720310305941086926797584058520279381004907695855585732737428387994565732969043581944451401177792425361617761825488274076362057938245188903270665258478207772289522810732197632187051499833162367316986374397218776772324000858577592853225020877353629150231643841975632738561267864310407883990983098006431657157882375207275353762506326475687851450181041290852379914780617464069721927658960366519378045131189540188757556287458509321824027866229097461625464204196395496141266011325203652920989519887024318511945781890703385990842371526296385767408563660963291508706986563489817088252450202759486783253633577279864264239063386434892465265957578931349226453719025127400581302106470695893985810627261969511109384001428681844292671532679930769222381791675207122174133613758322682631793186293743266479404738750987708484203393824779954823692837294308023878591873667988214961825350511648113738679961776577763389254534525652178039277679451597001803076483629017025039887736409956854456754554303797921466695057562446966318815855931333713771563961266248150633687126023314320608131011238072002180963599299574271612311160724486075365036313468244636523555946272331894073283884625496672803694849751973754991875879059045402312126409261674958485535119862894746219071416348474585885030625236859240521473608607077436872051116596620910391878336699104070392487521284477728406645526511949028167711947201424520080159623509998784071549102769428714277037668195110905576615570464527213186661058727573616801663906269341164787634611381340788833529002922555007835206656726929743546240127780188584816816470162206204919252639919843005757180202679939119709904945176575085617687465132230348738370629365463213787062718958159141512331487822914897378725647224056265556458045205471405016212690277357044201612987867672907370994695962821690105391063381106561377760580892036665644934865681128815177313960203281918306799533837862530308859524695791267779917377454590201888867734705113832609734795465683039105040752792969376513906320888533347117535818171139633450766480674626730552714993927834292711800193186866037328073799098507979786232019922296941692226407628530131519674701272226534475446533606295257921201806236417940669463936659618246585432813558662029319231756316915187883230143009375790317132104515832239042673894872680807158600189787512395813182136866291220886739245669965675725462742686653109687211107916178285969660508001540987360228572972816549650144331307250489271226638230431235069431971538183048070525898648000639523182496197022070769123448040970486182488046012483435212408946648443285274917123034639782890810612824668716194159158253899931109974239861445546761112154287535845539792906584910473703267141493326351415549886829703600390473308389658430586529053060198683319871958896841525185602322297218897617023188073844319395926962289743429417881009187942258402275814690481346248368104285356445625463113337252050620954698886386660281332115805415467224986065495188712837674342736109077219256031538140149210933014649208752275260541125397598228732710573593941935961171401139659278122144490136724423884722897691143905901319481782760650210255398721441107360515747312467541979188118530558443235830530760366110380652062843207606940934879376919582520139739603710273064702483281674445249693623865381224390901431508417354146153700694188946574456802593127514466135260941996739879202233321081465915782246589685695002325246850025990524612657783776305680875779676444896768235628561976893677087815446709873762447076446843479569112902701069918284804011387428511452294532886111198608141730722856227927889373470232751158461398991173026454445694013228093740754908445218251574676206935093099663962745234310566310074243152187243077978101581065963985219161103450671593434618265543653066206335418256577167775392211412705355274810074060431663137308192955702173994186070184840843823579767100895816035596043103677923765862291201724194067565449263119996182494378514324409944731204897773624398733100830125099672633395425600752538487676279705079543332605577610848064580093041132655474114832955008685814000636217001188652700056722666487382229117031282653510990277268521807566508274222800918799324911085830733328413578513339969565035769793640249001007178981519637283693132392469306042275913238507603433478462008794281363132466224157724381692075444249216193746552180105652500898762014748634533316719010898459351725566322248002173315660197306620533782345338124374288041446152753119677725310768352773362888860044669839133372576041350270787974202925641552336927063218329329108285228115021750487658788931188655292030732940070803652688470097940405769907939490449171108135073916532940411496893811365076892317023077672920526680451391297314024145217393670007466511958938307649505042249706105773970539584796293280545672171627534792609930877478685971192208895224467857484979167894214847886467568002740359180258357878114511576620388915153187002448713620313528691972638433870883570904254131882312935968763989513504144104158799929591669946258588930259463394635325104110829471042485944142039916081117454110668789967225803132944250280555391669327498335681703962287431785594532225189988064725657248775768117231715235823070954965509792552544781171023625310765244103699877312563289594462431650839612813462756349700389944465989313790449441494105610633071831974906595910601598853456862439734824008996436763167599403826608865349704133822412181261804814249638646242445867086212201783666505623947448118489736573790406630706728705842846124484529239148415497429168534078414109130640804264522641611307357750059435245138362790420645976145367044424172251264889308697780093871122416126973010643954528100886196800477580920879422607844413883374123153625157761078698972130601343795178751890602457206703678425438110329069630410660202253928585976821492059801028662537067442086327985549299550623853377476335199253644071568244633303506751385325750464669598235044353884908739499347158210186183094173159236946173018515713462431649265581345142149759881205942963882922930558351956236719171397836468739257905861385855371179109586510487699959560139534165945297981261070661052916819881527225256037738063285756155547153952325302289547559204328895019769883718135150016282947466775521413771320765736111567631826926634556808877730500197104333192284754257130053374672826399556981696631306766825826982206134169694497503835252798384768330083617530579566688919691749783735413264426563371834991951689261199211551653670281095063542946166298668937477586640580513442845940607123234449012728155796783235897098545097611544958802159530674134695714144301617999705180809606430198260639345852750616554804846981406321284345287080534491160363637011387083151692779922014004827864921530761471051876367168420923831720268972883643753688199979081697703191922387912950816713879652465266192911269114290879134087406458371149797522327817109989056719448948820664828843336262067025531251768589867403296202837435340391985811096195772944632278835419744044337840113548835537207733963919491677461997628413926651305288854756092898101701969159307129524040497041884893581781243814766079099085102821981313534005790589708695296100036966640993705769036042085205502893557516298573912350081730027376146088794781482794927545719097293776519370993244918286547041147513154302104790417096267412635616015077209141057193959362139421487790283286978048902932108151242223175770724683756415880628945632328143074481810077423101646782971355151980860625472805659244500953909251008658731596042612243155890952728376752481278325821369872529221260221994508637236701398386369483194017346094297774702676014864771304886718693863189560202268069233166743287552358626942934206912155882298521011526199835742807713623781819473369718560230021251659565128442878253404759266541620018803780001241870212217194871348849823406623129434338429728856696120540111128086804897753896256799321792634518522093560484751156522643467073564934330927859999473066087426141068575696422512251543729264740428970895324435694606132963112663639558358187786525201288989950626572647949800076538371278086451760248576527690413086033869107626654952783358601696881274253428090680220341157265947914378918065509429936427814283583717800287555790346217246647960107007871128126225823048785957845381250437653607423463093251406551255550462737690071793732286592157625458510433862767634146166862880603336358241927670456158757222676768379596042096859085966242054351484903215728566913275089531753633553906545048563183852506371339068989809473078225010000293006755994964269567386608350061494985810705972805920356965959459737648971848005431014627663915307291404617618697117219178738980402463929279300393866339720819729358353997540635764129019296550744498463090689122034719439253274680365803471902596353040900107233061077140165851863872269289263006381064898465037970044115627244641467157233236504874568646044099743609390770873210906102841250307687154612269924521343735355115038657410889905010080942598465511056157933229498476302217996167756236538569125476921084468639225591812991676696687339298732663922843594718876013276189489875216040744736613276373349584616019299306849432081916363759405385733652613597052148079304766247120044737205244055718226530287566041294658436110482200325101025903586753286493414219454007234768750586659399599408549177390375138741861175242873068304398183353042797978491691038499582233347314251856089798204802114950229838582288714701873886982215999522571744173655555475415647609229584401015897789004422684361039321289122687024297934298563430867335295340925614869374278849790071823564191323999496122731596866423984020436280907386963393543050895666524039439169843397970231867088892023944505651035843142313554076050505912782145068005109316745957300326746510595302523042839265496882862824315695216740048247295842748823926266112658454172139687867448555860861041971388226147976473785832589707694694829504023730736095338743123130356082343460459357829704134255257583513393050308760373634503904458613981490229151890284825834157632839056313941188229019306708466679182947252837753215013448512148037661589335821044738110355186086784951957636406638646142045897667916200582081088940452355981455763651717790029207439610756380438676149592091409672204010510639055137822175982669450703386099794652206088923287794327001150074301745211219083924367344981985791084921278561925350309232250537157862197053219357724332909595608862747411835648032415603481904571802940122974157508665968993500538745790421548011865743034930519376972439529336724495163495587238028285531879093899200077627724302736729426965419022895622098141746196844231689167045947844458774976192207378398729466800371980923464973105278749263880042440594655747548155608834040201029950374360377515699886674735573628352655596690955841468246163138550541187334043717194023699297619317184127341023931112905515684137111066212457862611986678953384872807050610539534801645640753225951048659764694788444636113678616700817781964266626928797352189626260093061139321561080284078314231160330400856438357173978698376763492716335439199896300005131066374700041356346341886860885225733420896048555622352547766806578426143539523230440181566103855562965843681297509387440277618971929254482963791228127578884796588667421350749941544670438222305191285172145120515128599090582217616360900936521316052296374389391876287867116255639814334056967585572629560426303537745586048663302156947537630331624081661896990831142941415455388831721403190861915091060685481031612744980752521277927368581430768767500827552408178966725272762845842280431163551469307169410370785511524735786256427330618197912620050185591411459759950529326544895271189164333942910661709309350396946708995429249361249519072103122422679141938480796816020824325691193519076970540455189874115093347007506782003215944789663031274710881108666274575101087843526396352473231592808105643781353664054212909215834717833955613830373579826121384866651462638814147061845941561123246068627239545335390836684822939248269820347267503188631941193771744582096887806584054458956742159075709861643298557404902396589678054082708668544766903252817386472897373223174306475517986538303582041178245202871090825072763349391736264869004150788312991991737210543495626818957842573856511050696465892957018431862419502034313161558344160353808344360146067402398112530729987211053405354047792242902317181442815989844231060335485493881314142798735652983924281947605790499691905710777404370070508133145565814992522201833148718524408812740240055801865871182748022757121900599957277231979135896209472198369957924193929415394058521842699205159390455502971424356259886162317138919038857555728713203373772399387143245570859139795613375632427659751107473147054712917510676142031397100366245406699769619842743510284603374982608090379880173524287832730142456483494713892451120180440596570596415094786986525931527692742026552656988949707319872288051171868712440852549054833244859377890741664135173149559676916856460549789177404319232199800824115942460495008147645148989296982932676837010462860535785655674732582126494092143428004758954973284385190732447988144799748404391123377634038471758587067122638214599082882508868575917505299116565145227074957673625390626735077074410073827027492811574723380929820778680648950465665963060212837648017846867156584055080158768726627311907262768630100474312730448989756334722432531095453506386254195256439845755907845474076843877414712912762538545797895861676316501542730719121631620690904099688640030294453126152203642825751069885367022682650621969839805457463316253589109723037010882641221351836331998482629380634470258820980147650895320484304476005902702252262049877806961521873475318322328225107827882773126232471669053570418678546690709289606778354385320097988400745148965478883554766021661578165726555320976534563436790182211091760986777120020046257589638754753806023934913206117218471619593181252720165984946647690647510329204859726812691090452092656581498345373744019005596163802595598243673753097623904746795458463004649121722383523891923951473772465868502078913582956391609617056876145577329770523230019868537168349680310255939806751419473658094460128795672263848343047425839122122599932417727375101089341975261258118244164698330256933308312591629808932666535962049612595984330319017877278590878864892532063799668922005888025655179486279081777790890631955278873288411488714571878778833988536838219658372981320144783553173477117926636114852165936784409418002113722193534163018579872938370888453371279147495060697994231039857618508307016456012762400872954265527053642773292527496344202856137893850598239200124497399109577835462425669935244221309100777119951614133652211689064431896723695418729259322051119532414368677728624991035241640995384574557375484785055867777311162727459299613670843660988353995045922147198710889924524751655801891364472838603825917544996993328790292418610208968022557754927149065078726524205932032417234117707230618710997788881736276893821473154559899017795191921023057652530650943834917643617674869133644841251735569302030915014174486076376757700350900156219325490583416796013511377867017287761097730083476956498117853886986087597508844211137663279419807564177887047505511468863416680195038036015426510008567213284402927607739302517999794295818668517980768240195183927316786360015985553828503541336279430588797179666946131193045172502354054043356212411081641556155192268559641711358804447023068197715144947204001460346585556744386795726490801816670838549804699685510929754953326512769322188040615064529422574180443116833925860779749759371210222949327850877840575837803134845283187189279996915322399462338231782473165778319585111549817416163064196929970533104478455954490917095462022346174164699620649626327875386904290439471098687870331238678054995579570828058861753860913145863197821372634159899952786155066230575573186660099462176968974179896170484682542739349497162646776988674424296110949319972003964573449533830697516369138298354255494138843430354750750267109161783838531397885352051327259509535797204798344278689041502739641978588054139972910252279808890430350703570425175093409206097515655120103714853471401388375467332367226697676880490055692689899461125892862906067444569178577955595853315013013906273861243556450383225098200196795343207989673043996150356012176213946807164996847293604469117216259647824755190032830642702089526723780325628171886102350966741830088839234510103089788092648564257851791287424144363714733619406433611920102365874874768366044511030307530237189444538246359808597555264335167335834647234915415059556330482677602390030597684306803798447090394643320155578429790111844565102912248491595064985499045112425947951040876752877666560304703153323979503551439884024984958192914987844254780963041433030381206741914485703505229943089518096935747691423431415868766929552453421908165768389611131021013845723899945496394425898414747330446813755401480508561979203724870671559919340852705267205774890416929609824241856262411699724413294097787230842470831648472030597137436453786461204315302509822269288719657003156638186299765807406777258388071032499965992314993623074470975243130323609089969447837803945049165064165189631486216661885760705139621928061579983964201062540074339483968529853731671853164751882416110038132486876338463247114878000226135926893333128265516635986508259608022347473654682144135869509034603646419944479451507301747806666249998215643946020326051204846553591155370270568899711781104181748664694809222496826880715775728784444443678395171956913299829140915463119855970753682653426405902273296806457949217818552355325837035986939072257436789798948970045247125636858927744499708765500911098317227798731252870560288111638049352099069527046364835220427434708669496272185703535704326353149840466812573140889073138760570791419012799371575065196975626048929660859262610757971496066053696107321902195471609436573754125685968157546093975554539080606908442109516249010828886320113340223488180063073448834075976670871633921390911132207978338546767967566105103415756888740256234857165508168547618862107783706506150474321435270275025308322650983158630325729691550642602333523511247464671049894159525315453883976074987907304335383350696766713828945921395273246828647057456082114819652641733084462639243389002888550051634442118990377812484408774865874462346482015985362334173051070336634597536768865723601514041248982379664464951468534546370369935977605728409906446617105742944788681825777693390408217745626461220440032697238145904154778270753620865052492680049610292329868384376347064920621490110400856770763943963806613002355433988731478477088859016495771374259404880281512968087667146921879978132123995884263287765559291333014073774734584351215134534483820872813587197196344775451048083621770228867117365624001278932669920681259440621660201191337506859033423542339413241616270443432124128093654582479463156121000612376703212536031044408737844818186474071043039681740409560496215754060214721577370184954435902353469239465340032866980735718338930067901343226898745213453673736592774403953066398087958063034052732462908796838034875854163172287238664264120436950698388798828297103027674449952965232050298098395528965797064060816003688824767323286701915723036792244994946846789218051793954035278195565484507204085287987523257568357723471908433529883518296650121413376682453163468571945277328018827269198628176062753706969231324493116946601223987854211898215842123299565866085369223159810300918421890711164549086673007708699200457087683033963572630759475608482456084031731782128679459936023383458540383342036953057581805776767106363132101604746531077646491863105085686623827547518676501461861282652194842092824990120128148211069035512111471625018491209756826650897387515034625580646969431682619498795497365475971839286874043271837099298522951166519666155388786916385762909642135743162299047222970658674727988733235734487600760554075734735310724887694225030588269556310069103588700951731508269693301782162283113239018684023335059638159587893822333912195482380804836875143001038757136869192259200192958205000116902423451886886301535338828817964064936408471711641235287500408484590640757643179473529192995943169330344296132136716602801814044842543646113739125577479955421999457131091328290075665177326044687034092246354424953763461208536128998727774273700735787302327997124687560336852480027967383168322190832594757620796392702176236286456075877990135644444614871932502894709574436804405435497652637593170667100262753033685645914372396091304008845339486217504705381361216468568043221853368601970275878832739645426043633500239859139404796220789641802206652350429804784137932074033860375773958426871671237663871530182824225620216456444011591968334783101892344493173302872282979527503655820120668084837054868566763816066487404834576636901095098532653246480438709085991940423864888781281223060284948297978151954379079662215880256077058716876625345450939320340094112899273689829122842317824817984897749757078894072037428502076071001472944049635511292730596434864684279910402888888157527117429808137851816442754657093936931523105003751520043063635667423435671466978113558609527406237189912962316827385466086486836422713580582809707944225696845297350803259985195534053426021281333954507723111586395752742164959507930614812279271321730461101794152989613321459830624354039781109864935211779985054236731179901481881761449444362001657447855063162364107637899038092573072992387091796305169877684793895426309534428985907686963351657798179317026725887757192728298438102454533952132793553143946127216955201163590056658759645700713711306758117553556507685640016432888020655725750222329933135497393871644522730045665336855866116355111003445997430727760015491084761538178736420464685832242957577286616502663170196168591624742313762504695705258591549003932379402520811598638577318526856349318282819020692027562992634819685013873175361141197539384057543625419019424736634687287700768263520621234083222244039138884515552212452159701333385283903370720617198123240482422772421455881532643366560542001933791412297620657082334004468485667407050657208352627444806477692900391221848827286951359408374977506181409830892480175177920797939675070535433179803111602951627363403335841562774382746131392207956946320972296145971756050176481219126687115025443137319682822935428730321979333371047748123781198670101911301822094191901142888440856237721288413992426878300878266309679012658830199844803701161493097942954213482758704244978033578480394406749879840688505299464310324617278060737920856391584979112178558038944545315459038753109879937949182458035208966119136716330207166392999715227054522949629224998751337480659592215724860364670341981004415206458520289966575619560300428607483466159760961808104252388795489870347160330128961678861280932427784115297440748410710767909804393938012644812915867898246164054599270702602485505530519514982175185402821199480076889660213436636873615995295819019670111862478625305147623476593020184078940028742287261235647847251711821512230605463310945207573387935738225938704900635477626087806416422329244482469475381404839782456747561247220261968387685125653578790906520973556787691576472879711792609499568023224141697436710791341260482570268339135918726133315957207063652056512927963631426862282056713816311543013174680453107904569948776879264725526207467920973173001182327391441967099622586369782937959922235874700678564049688766805831928934751762377456829293028807371393655892056822323108471537695644828806025774247838314116504649938070071552136460921520946742397980689235442975349925052482167546507514276042509313264162446721412926096896979629146652317148242614915593292799741894664805100295680215962873446561011442834278537811074461878655846575975671629730134441712273560648542162549696148860083666946854862867551138438327930297197264110935769583558358536450395106359631709117197992536254561665802684939723384842311664307477273346811377836077645264611711618414795660096106515069657126641910725748603079221694605699096201022057301619881609969699849531358909779911654577064724182991980205862347820325556016096650239530780811031050419009060348852380327015932511194511694582801653387904888305758578047021554492982494706167716233176328215862468856828167055428300981104705097739353383046672987021689468131833913285881393993062944478820751051076762778953297996162348017213374285775590744977815162417754788696061226211329813020099126259166344313724245471790165302420176512058304908093080767762571414457373815856293183063103351506703151774738284613132724881675773610174477825644144831027350914388673322996744131405427455104507440165034172102599946688859114128547270149251948982195999099243861611925111487441761016564702564008813943250365232135510866569343275631804990470811851237097818562341690132935818672292872394377258727289511292646147196751623403658370674930878916020670919491424761715685748288151048206182613967796610410078034831058944299165859259675182505171358491273084781435910953582382120597176138910147127165876993366318976288359903801110963054303304035806301446154079548886162244436197650158631291453480655735633747838144339782995348971963400112056777470928031066159188486598572552396209790605335937467044203929319345879471911049277000922239596912820103626809003396147176483806696882114992135765997557629756160116151238516977428672408063986980802328463356792933882306901429250949943247736236487406609759576436882722790308153100386245287662499827740333360035737772659825746464340295972405851437714511210912021238740110868089651516862458611384505684086452669546778509422780205323558713298986016435726556296672187110614314824980845040628293932838614717140502101134853801462177478340696697502958358960240063821071577087030502634357975288665984927378651890442831335973907111415910694581125837037328859523420800430244266905266350797020608954234585471299170909309747439379127253595470110633055568969270726264029631516284095731451052593865490703298621550449462918515606142728080138792620980506470084861522184046429572363247703762790233673646941744721557490030171532406682031731647977604980010281297487705665710600496851590427826540951825422340081934788757865312340597557196205967358909800770411479183243311484979612218908264429713472707265583209087155737110926860460228407770958754938998606036638666066511318190423414169171382591192024057643196230419132412038784830279748904460815348953147225878418697635467443993803627408342065021686254967718603293076024067218151649044727907016744933039113195770590005597496942726694847527883617818797833106306370751708941150321448650086534316462925848840725798738282290825684279313743059403572927776448388544796391783946543076416869518811216185612085595993364319434804527504652287618840835546757768249074463888599714610901871085513351301900584512871127787748863096361254623593097368259834254150432657825058553694736547285883638594755525182345376719219836877011706614947625540275123420664873617331199505251190512502667272708146015084202256950196814355041378434329706322564168326590217614420508725049848937214781499165935216632842727468878259804890441482707868183611575394957547299649502802427684586511359663007401133369957805282718342793165459649569767832209649880775958371456446826155072600990266304887900035232183085517920926112996080215176168872780707092468527837925512254526229501203364218741192492737687430236227939286053036011694579626363507018379441194487169664846248206544099577962566705654795457669629481931709198657051622825466341926450825149102907128352577350537287827573510094930669795431642736578012593804830418024287504500700943029395224052819801546109041010303922217440212611016667897882899980757438704823478871979139588322578409450531496733036588933942288975475119442625666349575516611158037856387761501554820963365538227095585800913710169126371432101374172750087365707032932261245625348836630230160606993225470280680381961186549331161405370905154717522435033029533055760790031290722581477161812485321527554685974742967654947932455945188092544279380779895092292304340720772916005439408859240066613799799289408849023743421989752941244365189053982961893405280022420143344297546718187006455769802592575187842768187120355952353342655641560444675828765830973624771351536349271790341318018795820890594035106366406369188148236538447408237370416681981209973434336983875952119474031120063393991545612455325385706522392244060255426349551074090857879303640285691695566617633873426879763507664975433301405307843171093020165803888337850138188914379521992587056007743041687862841680884197403379130598963672980477202729975590469462620523405655473419541129599029536873505031121100585290116511722680629352087754221725251614661434254479143122601939864431594931715182131983355699562911858124958376610099279381482213533596620460144992312625990898318811245396708162648189426346233055637083043669091082988536472410884782318403473535800457104626257996234724815102389369565764684792578996547806645676960934191443522208379216777276267814088484922864568704667844679858882070257508673559515196905984936476983249701579577576527439005931927772474764470641905043524235866160024147275997335432724029257716576501967234657410148991664841770142177277684732229676539250089574887405921530933633310021507293022786836163343757660082045965372755855806024223574079114137270817685094785530050925816060070265201247364030413481336650034873492586882931603283059497442340035901958391680702887466760037304254223255438288033555158179464765250144203587499084004821016962981418689977599558192895406024057031558615318488353373376258313080613889947204825106574483039238460633866342598415387162021086303733669374816956335544824799341392030479273231362867923845203121487540327024019842737331863832435508813766245373646997829716374987602317807847321220526428666549772880328218665433648858896996421433842455260290007929151290257923907371497746566689005175230785000533158951276154203599801732644241435336607901052374166284924688750047309317029557627482949155971432438075907908607863279171312438331841064393000404932556969345659525685287966435016681531982640043393110185142936979123057531013784529860593075385981440870509732135929678918420029254795464860154049660781920213173835202096789777207517568610254313992035451007535795816254505647013612766153583652195606536512446794088645015790630691979078430259419419324547369336246659147172945661937229868776027891720423574015184363166951313148719243614600579912169206603235817487229762825054353906578168847735199722528203330966246164905696820229607784320548305770539069879722502583459148694648759040436097801962100552409334619242600989079098280445084634759480039521231872193864245173489158037474193328319359817846929781884046924928116613180743557361793989373638023745671578932621502206966862596168641033903116023330638039622712113060042564506578933198004384881132767768156658437176575976630612392464828743845199389217016232201144337802049175309062266168724415059473652331257239447262439029109326323439551754643854197611073725097047731389083914265766997033219580919685219791312203674191185758362380015974805048747796917276692327998793337424471756107243341714652020464862389968505686491905327350499455049964665498761797512792239508960928320994072805535003092553838096803881713402344631851618612954120946060752618197086021681484061516199230395815337549672153468059660564731840386352124398874787269082868591204972817139438388157766808090079151503730619275191871640425912715020983312052125680167320149498425373996619734760953479048156314296920639540010370933849673185067671650292008784437038159192794297341489975484838317699667304912946415063888623587005543533474822825562224117965500515191707357713253123989011231020285027048549480630629625055128078599913964390379124973545251183629017397541759691686405599641143250866203891787512210039400440871382450520399748849299158729812652913165809438871729655230625750156106036654160465771066070171460349192535292579340983513848786373249603768063725425524994777904180384318846976656718413064938308337182052884256196692555537149907342132160736782257018675891375270739437679199643079716626021250763305486498147447315347560435536308571720053253510195156558805448386119337118961883648756492697676601782230233631213399309095445687523548870326366401703431398982213759355366362083887142986487440208941677532049828294238002358652079138332049186338429712845269030146894092156678704841612627308289157303890965053811655244026638144735523611069969001972916092676883141579947084056521294039220591335511783225591531241209417244570169221568606412404371025419237181461001700960970064063785043430056538324439683238727699768066698569205192792613988535469187616921855251406676971610020852391744171573983783019514923388326597304970898294914098244138424168339983067209980059974651178004844913907374530166990002702148664949545976741241733031187560769644296004345745118435005476143963649802834616183809703234479665750915226780345586974552209513122817980470452809710127943884325886524930121062734951940262021534739823673948107914407981219052132385764341111600115919904540856648110070396579781392953373166582119291777798509535296175960536364965716561122655433464063973817357680948106669828324049129354655162936213725112891031543333527481665691347777902326654055419673435346907673922552769076429326661445028224501087596119255842172435612564981218311826037506078727798699378050945910285552911553367881063227827316973679941756592684822421991172508398210764978554998794280213597993045343201266122608647077298729760091050101558005754302944899766600608830012435487911987042469018181451035697435444548630107509283105264193284981529007591194798052475853394483756562062261408114510875325946581479792861566683442756194106753776583163862476565072037228584439791167739854791467255173256689740589474593518136861317711055695901789387107835245936113295952609096234219668468756160572513420059068858144388621336067254637707064829703652512846642334358060443622339175885065094748401429008285622376897970127518551120115305081313749577624506712525743459368085612131543594792839610625897807470694846278247978960390790276022571211612917080963972383778788228088446787097265523921966068359341235146382565292181376114188420222753285026257907338700779750288765110656740796550333730593804093108499718595915669458971806161172244453406813294473166324737355245013052173899718582593033089168432303420565845633667202895728115647727080974491956720685020858591454226495273936165114187517032577360318507568807863609248243939901646306027015988511511524533498669670404793431092571561748139424374721128383034902278875844165849988746202985428655947361954629710347119218941440134549603903000429689783834581858540535578429067319017376722753275222939854159686576528363782051023119320807872564083072917390793780934151400854942110933200467889187543244868990403706907702299562338845234634467953571428178256932668345696770064720527132026341723962332521158853801845145432141489829161277300955582689051865099273574168872399996128389891104112407567350943968760710510673022876838737231192886660775032958675000900921792151171279403731002658448705303574103097670452277599631808457423177384959436488971529682663078070244687786808288294808723173616573410718460865569455576895899017761718413831970968208669270275380762713247943818167121382525590085803401336511325324600267415056629898144236125207312173699637897561009467726607642685767280960721162536829255449653267959795062467619068436517479797389497515769238622995653872268837872326614124933250173392433609427305936636838015505679387119385233251563924834479934627327107346460829775108773710579288299248724047162288525459560103923798867717587486560737588866904860044552694543252451010029906908034309960556559180847929320992110109054555709784302276197475762674705114833800805045219823824154265723290759204706037567411997840313226462357294967902929795564064973926321204571274476100001616034871067398110221614774178797274942282934077429952726735878846958022004167249564386887209037706323609077630791921129275741756869718717680975179738012897420250193116485744925310492350435303369682980313488072923902837705418033303322316015348265436199321071714602831843493117926630617766759201605352666460370829290386205109554612195354768444485113897156060315054278670721733018789321438160330656961767287068357459060025514545212334680770598486722976035344748922786138936434354575096103686542725934888285382407569884848513734258290140984048232907907927043966702359555204956236010403996190617813323099627891810803616304753417305283409659953128350416108133768488538444703005387319598315730339457274645174259565266129575774073843672473808545024524624622137364693275833723252020712512266814028560842180262096543020301761174674744621719284362058911989534718677020214335559745631261399336508770497518934701361748878826661757875943836176601072255208543910066012977280308731785451666628005486890709000386559238937476498551821320803779654678567567367772893035398137988548011171732510948110405953603006634717851868708626373597111065602777504592795532081293590900581554727131800719713467947773735387445643074247152879694470781060601880523971037566720826386903088857147863965565747164040132073720912851797215977332390987733322962038926151419352010669237531612752158825042804705959042780798638144793916367201602832585706688157515601324894692627874177672710273650825850204075591966882032782065912782346987813317788502937922227553494368359872997995214569002879852929871705911494653207059563754523449672454873066713469175848942363770837002550661170093509594922642308025459004445760326476412594086365866440615316231146963354600548899111047979541903998171190307188521239070479183536508367273648302815902100894594619083345559328508655183661719517287688507518124903985424841590319871663712509398284585344733264867143658150736199067210587898704921705518664222225888119585413860391353432694497684455405894782957461237805714226414931086625260662685924434825383911097737241586051267909980961436985334181054654700950539077110935786917085247555303643112065408249533187170170945372127852832117786736901027387128570974803948397795929232015943116133838765123708605756185902682130107771507143530473702303430592067580035467769625280343173054459805327411699874307363746337688052355837728431771896593071399748567132600316799114355258784884181521401379238922533606870439557022841158506304783406832917302485869793518912239765430973248939449619955940141666353723187776430114395074520428303431323098981702635012626971544086247345691186142192569935753952256625721071672101080977900712643549067895732619961154539111538081411809810153265051175130860012697356737931103604983680193747664473237327427295255789599912858269599061530198686952791009983622349769382329709051901135082630669860096038636819904400044291785129946822671678911820522253290152043239698316995199771278644332110010763182086732364716693602822411949872462388136700241402549711271812365962158605304018516630532839383998348152549682848971396080234070376485363275337750402550632796850189896562624497300574192519014568010208829425610046125966324252393205784232444729758411992053245426532738634823366472704878751566079269942787943791689154405756371908241030555767423223695528411345158171756999285217600929656429904095136514367550828796100735698371831341201936036237295475578300053827082681341149001712212130367926801391142252278509435471628354174948581985830556114818163675451703484933445456005575923281303904974635878150460080737420827826674360684707120306598663920125195054027942027967435500140245913768865005328844316992561439122601788348400445034200168878060908857010757876865576462322420818672748438509186699771295436919466670675076208603132821204361653386614113019332310247948947942742449020518183264477166218121524456209503929832486987368732018064607411481503153658996104501704828418954897684902459684192476996066776105728304173559497770992385596050295404962689935016779699934973912382420779286793243780642283338135785962304892466147439881850086080475327905667207686029453953755941272509722225127272484717814079923314058233687029775144922060025226399074145186769209628329568623273306905913244582132221355795153449252976181706005157229195809181740234830234455573084583583180023894312317630510010557241127481689135454987664714811125262174405923553278559790667215836546701921212280011575728355671632428862072481051007180617276161518467622241524686771876558412916327391305258268255594156535489756872235426916025763980135371761585325822204719237679354978071578240541275376618510517883556687799439228258351535807371630852008738846460220284377386632833106413372178949405337486379499189337975301816845314907156168931596814767167262528262339095785107698041215169536667551208497271127874662713010049558094588688016504944185720089790038240143080946116211193567042236727415248226132089671132788533833056666247102789157907855677543611958286717542158300871137540686416957675385799199628128462436221876386255671077706306913045689729823282949379412352664531662564246859216183726853917550933784663191664728618210391883807503890815877509160348560430489064100793697808178956126746539165420711808478755444158624729384778071638163009490576173330411091176592039594245109851649423788021332615832870685838727438678662687053017500205637135214973715017714289008230356234582382068003459175885068759295537496651360292486151019464761978491916040879529177168137455943709204727998573195067824220232986731898684223957687405352026912702523164321347482796163968490026353900600997556826555859495850867323639041471716964816281080837440875998041723986131556200692802334965297020445283860664438270954402478480188354598617916150734007285432748672738752689941818503982096760361782881795079028382368652838183497171482859366633961588775951271310336675509370135459125489708212523566792207209638631903589249046347092148606379548906891496609615484298744326281995255889319501737253010748249603429384883413366069159088570794764432327000158077745071037782636398447425349501240112200992162365751541746206496528929750748618968075868347198789334276739875811633486697621909418083601015243203855780128138382260858031553443816800427630197296089210051523964521532632784680113799633241289068209932543232123027495352094944741694901599221599348159603795257580774034459223803581745711427797093211548707404428506370503515345960911736323426258382205511264864515193859857050528969702904708433943191039576898630787852781241440275480621742098815559857235742919750977276341809371276992203432663592812059350511062854594845236902147511156458271570753434614697200444716120997821068257125327865632777036758404789062342306649997574087822806424302770798565226296719826118623656804516281413700143654684531382703560179450949069323030811126717840060776597111360557977096406716863852721492595992956478802486980220055798471834783000638175050442014541921143694756684711958665584497615270129763349467783181551940895967028855452285424460861515842493213040654527747389928773655100563650473073018838593701671745323159459325992496554809900913642014295793476699647263150837830015774434395459923091430505384272136806461188734155774194792326417110683813484228295386506973966792864108503124625824166949882997065191024645050481695109036336694002882789471347259569903628821906135173783265781374351818556091793971719834171802930693951744455400573798902477419936303116232954225811652996876586051690714757259260246180035575882903511096011770393435759329339568655410524113126992496570827869298138149222069698664372486851448945622893943702394435692265440551001630560560111596059954478470556407670374775707379385434631037155924823167144303362342072786654909006040108650805115638929854802239241942941115693396252135312958298708600790667594516087506953300214576087127280006660867988201228607320250726463617841477339058821077233684372539881779677357137907169115583960383851006607535774148216309284767814585381357034328433562451607657797038835645251477980808117025806617385356426156330190552587549892367867572192665215037202147743964820152181377086076255735925579871724574826763671217516495762482749382168029775700481671859453691945929598965463624718807469904968811377830582394833615829360323164257719572565622721363430573706528819522691006917777431029017063366017213615773102838495155606993483420889631954530595768225232342993813595713745275572976341091808111606502220818573281561540979528996978418488040588387428783857792955855896730596674051214258638207802029258277023818630865982505836631727141874424198782656095605164584053174857588399667904754647614484367645404879644494129763084949682600277828242219302396805050247886681408519846936784248158641902476501163222502513047284671248396462200030016431998550705676247165020315800994642203256533033240231813223862347920784455512667134591053482638006304720725767629928387398620335223626243788419453203846856722158770251627035035122074259082551106639618465319545829929589857241088611576766001217359676178451910188922195045815351568267930229909123340237369813094943115766105283223288574068106701751678933497644752781636078321658976225209230612569714294588575403234252613896027236964851699736394119838939796358037771768053221748630009965132900611580701573662940549867862380358884983080438919303302122510278713180334714015467812551245311991571855302376997581057689044467929844267939886601839492546012309878790614351504567281810209436056531005340232838711674226482611789218236431989077254578679589142828274655878791046988536767382849157919367820249576027642698010937480542883961010640783137824025560081794759050766955838273699348956125725523622251070720264685406379994694289643021601561528111569690965080861144825907563170931682340371401478871849284075611385324747423132862135926409317891339770931180960330309098004814944253089678279099403175365826828992281968700902619372216727970952879263111763269332333641273249253810497546245481917318067497898719354541289503511244946153379509434402166336045857295133968870789555830313808649263028440772234046458229202680317262158302294774782460110348738269111851013577784821138493847101738263558253500247243508959745785123182589106055910161509084438812445858340413654468406370797478939635722324285695268133970275371008553583423990776094985397591058752008113935717356685500282389413646502850814989263057038350501365582126983226822061466854045969226551282634951501931394488230736321866656423744141019161768488612301006327530628060200627504925777783469916465727464137487616213905143271595856728482077305819588982241801051523550607420634184281914256483187962139857934368672964812350196923722409097609080552852302833051383946695596895014554284042040084453979546665275544575498188461956885645697512762297346312657217715475525250723543634236095758445706742511629980982025618580067403657282015969170077405050023633873322652812154818751905724802032632681794391200213331496363967101183478171851473294157406181771163475333310389518602731440352263489816828305405400359873675987265976818580159494675012577777343304396217134658030723530878702892312162772770083154141788680073608839125660797361909251453827817272448197314446187911300866940158728121633132518721648929495087307168953856617748084407211597075324156881861136728739026191214574373840782709699874733200574057008981564322758077668990883389495130293262219614927775578122715974979826277103381882559142521946466978233782132507910496939498127795328781828275514085718042321698014815121123713865360991618306468897033426167867810848037287437517308264977790158275206632576854995370448718279477404590474479139292195515230005808644379941729936453296759741854722203567796976883771381440984999790593819330849247942291219085430435956202355616192538027701294498895469109251474630282167677831248086926198386313991005696529720000585162640823768722307713470695482537679833379869894127889487742799224605352213093184145844181332767904098226520635045016920381691134796325494150081358697532763216319958650673454261227576922341211046489498409514618829670441728301896876717587289005928090512857787072317640012490885031589234638296570067839922045482452475870541477471820639276329432486552583057616672776087872679702148486293817610368081448905578202850806530026791051202923332883860483573152744266011964589375294942112599688034221058602562296613347997798581342798813382027869959331618021165020789812366486366112076505217621303290184997176223129830065662299736102305171937659274605344547543344433322524910076107122631366690704427797912103125510870540734659339479300616703718604943398406636988355388258959587643498451477098757279834191513379035682795432929468987085219607650373777578550424177078919788759736474444510354228812025276920181110440079926457240241903231058169723331894154528614015339381844449530550481011813761393913554358946529748497185181251290575456146689828858820952618119537944958214165585786259346216001414180209063878642908615076067573401139243851249260965954779868085731630266569767682717100578626044341967457683861190007045931567218534093355203230051227867458518375181600079322281004201242254798712073508441773285414084152003930553196409003248746797397027732437055853856945916809905861941780364602529483793619800529203374583311492068249229152789515591944140043644921491254739164929130388435330620047683080613978026517891274723399706613809628025155216377335061688895645951095740553463114393110225213169104875168743180493693583912710035227192155395960208141096066361409045051171641299862745446876365551632544343551267490411000349206627851630307635074008186727613840065288569408031288237017947183373815344298859965570731644941001029568049222366883678680582238305920789129002893040957827171544618556794251156957357619492810891367719941225082652293259986675666366563321563168523308844595603005142084010980786248760976397402450594763415298166841485528432667151120068632178986416182244109952150864911404180684754194498238704340470360629516873329652104965518651610299452539902370309879789856504023950053969011529556210740535744022588609662486311341007199950516688568312074095820490343557682423877696444586998556934774202268826946406552391237258064668563704069301609320015980117893494130267643247421834792774388586905691429039115340552771538682544473347493428668987634761407125958978345472795665302443195078106222011254098385167280313623166713227426678031467928913180059678371115626961271441948951710613429491666859599186577851136099100287475386429072040480409730000224662293519769593761088703219894582060664568240904481242847745555120495052806847885871903846157123814470697301964865733659132167526387924563687840650251194992017053894966824011913419651722694888174363431042224307062603241658590079928451295089937206344380604855597325836781211874590381651768340504018385497301383899112644322533165410591497196718932314652577660053418168299493111316601309408995699969651195539009699529967844027915726164777646150607507248658845485426185264465919146100443190095735984060318144232809466013325559783864938579645374530636585650837405548676016846079055651473076257618552691832365327478224967941163851395508738689300198257268333608695630634309379868233365261328135783891465883836343401648182422513201012187446850728191845296108814796245623443590778451526986443893174893924690884124879819697518826728206541406129807250984003289860966928321926095354279947354227479127862275798697575548330354233560201474104140996842305639560959992765233622039396715913564812562983207078497922943466113477012393982745224511861089265001849356536012014961611210713171373964641096638302254177237140750041691372757947450348120292581959096501277883758736731837341767420314972481272238769595911298904589702886404927659447482061762870746697232602111051912489638032644613130210822219960335061862008798906594493918631650915424618356654191556056019131112414464981667869551953792924293295519396302434369639253600566227376197932995188178274148530013666547419589499566459855478411998087135476881046965067308617016345829069995882227800080961614030447216771427141636588356879862374915359486130337654983288194000964948566033070805025212426043962815423443905721771313796639039912760582964613951470968708078852505986206382208757583804340599229076031123996260223472143751960300504223712119338208526945498433459491906366139295340973641631468068174256707931473141426573383085185432925870310305121850790892397014789879479216248910214845584783059189678791014254941357400630583393945778787755120149270117297172740291745008506898587693223973494752551561393903376642140191939920173069917450013748795650709080675448330079978325598729577983787149230117422750511015426574553478243763717214052742445713381876505690419822113586229504139478801689479057026876275895362144612302743314752339634338583764524811506038770598848686454030239250820690431511055788781260204846379802272941283922461545204002752892666781396067830884020560176774469219190796998537939914888169118235379554726400741801126789924223367170704992644085526341747646537153413670365086538455686371673876982830117132371714305161073203942912730700117852358919315349516200911216369040799944043723285044275648499748682751996496525342883787427801775769016117255970392119638464909494189711410343982230559734207899570175668019101125732668046449745315736118696173130334434742491946039411925857457740890262142428858530653939213279681782467377001710753423541374897689453263390724694054678299636882094020597643226880821360765661840609395494647212089531819898151531974307319798647843264210252501561435523370040567835764737556743308274537887783756300721466444622095950796716373398057909993196782979945585130021028983608346072101893776850132563697172023323304341874826425406454573590017095074376166990930178884386929887138616886061585744614781532844222156348680117451668636853371653137135170197358822984618509908717393761175362353260468239046230847125776117257233903473125548755079835942503796602283947857406788333435151296572180374438942841965677160307618183443663694051563299309987083857918087592543356809473396933414318136081151275248643183392265061589444313516889630913724664585004371590880706791598004631716705162550935661690257767459124859832038950547550921652380755509550291590226773823110788489495035923105344162853570937428998004242714190786169180458091720384001210482302001653765905349381327781272742065392094843006749530361380921825911986312129774554377763993256604164409813828220617213757188075257346731477461783876464967976839617113434110410686085918227395144401339833705435744868799390104457881882089246539952548563964588047000118616598967760161763365554218043766489497345328299712638358718224644704648968782740053538264454400671989712373075106428078058212216062191707484455134129952240073464155876240069883430638801201286642401415270054705176594009219496785902270421346534329411638993681379627874302588081777888742812374115946238346223902681328334845155735976085073226379330997464430345110642491592912785725370084970009533326542465237233588072370836929186143157982365413140278346558826098169447077568676739290415901312933252329176880033693715121764924469551667928347854054828512214203675736308836119627773076138391746301658359203653751844211163457371773873059964811427362455530467513713084226525805697365442812582589426041022758483400078194727653271999149731067167550889121116408925606134129845632862569780223576261112060650310509258030073633464911963593466815568778254018916541135498860996597082918084219416464643419931423746733817559755135833171705601959489274145257320728076372703965629895282914214443364118743250958614747007580782576898770538044942017637229462248321410861451168036932642438555391939692606866754185361752076750416824671282438887158489941003651476579389824770507073297243935269565843730161894655429350369194785246678125675774691775835937695929987102925218208436299267471592089020094127759634055297553920198926034539119277154035879468187331564091324665226842144203444345215127869191358224128583656569022079671141191359696888545876945408237773769240841788724471207984699329204231882848581986367780527013283757497180219794486070889094471077246722670171797110416279597457735903570423688600913697534135010610900696784019513099697972189985195196176741715242421216792124958339903005498518737932123055914986809472251676298818518639005666461585214078803880180615375504417582754792794609353297269196632689430020975900010836284318279055774967104625695768187284508602690736983117016832711110033627361956613196158072641052881539103468322060795676407339604481951145887885491346869420425499264470958004792503668371170921653828642976395356243871683590003865516837587594189896611838371096201469093946208432574090694763718198570120814771237106274881439821194574688627136173112486315881461119505341181474328289162946988914292519747611908228623455570229297977537976417962918779219926541253126501090956175227658334085719237071447663929544532714590617832500446038528015358028283368930810065575129644752332183253951284313899531260799977908719303163030044311126579056748563576794465233209426602811256194488036336315119780577053705172114362307512382613626473225294783014511825102117298237620608839851906931616629128572725989110686564879660594752646409132380246894405668575172414748381303824453744403209091226398688338169526691793088975884009776983952996361426661760291497772064179515528230043118534994315551455983376598581559182896173628052395233731953254758895077370106877199833424531577873124011958624928167976197228551940394490028683060172508069838034389193467324353724135977311790597624913779238961081401253584891001819539935342019507036060367591033276941417797938568146548603430333236043343031381335202735840436964669949978786255959937831019539015925400172241259193964316282307512762254604561234858316887662092705201130019976911702924444869344233278034641911999949807679041147742139816644482920086377979676535147889130793362756889195564314420515228563819396389427373371412214314823616165373902691050829159045576737791222809042238636672953907605777849504622913819586539236432422695047381239023868694562169877661612261781147551937834164837275045606890870166689967384045658761755614344981698695995016681356049250796792344822133467403243858029881074998799912012541380694372824012465078976786320531733155324622817883184481638774258268921351764437498517238474426770659479434989340920764965983402401868421281640861122130614124934792946588188899785155774979800737277724228840210674394544657810817235465143186308535840795442086681446715846812737791956893961234945142907793504413755836490179555270501819506152999329904653767029195216251911711025389762537504600795665403082237152596640658247041937645258300593965624199677929066408744879409878151004859054658770974934622289609892562784048763450406558344827544986901488287252998153485339176847381650923010576488522585908840908456649988806810610301838410590788449495256796314655057688022061493225172105376356539241582735158097283542131037746219857524691020314237178964629855926798044581902905334971900151376916021787482145275860480298947049586988157529906920341956613574803779367777069074781143771902908309454129216849756673263193963918874720021007068362025267378286203594008123660478121773056169221532499225608272883656277776606354457499656546290397346714170297457061345552432152118402585354543593148311427733857349527422954634093591119913129976471638130818981576299738500427889293687238255884094784941127882905123134652285544982905228673313791659460554682373072673389737887284772302357023986859124820191451498855421646138654564470019176830700347186142629147921943178295681387339731422702401442014838447395344351022801624893183070806671900513789697888467464368040108893289315162485611404998401290953927200600176294996775216689214090125564494306784483223604916102636978604543442879277112208779871836735621925050356868615969178022880332072741241385861997808717364869379943838246159821178465918997177753491552429596282347813331624096814368968570150267245354103278845345767167393719630875565936961208415913925190334236693831666194076043398853418667760535625943836200714933745319569166224061386582119856693252077572594703641320717581137080093086806485217866174491547715741831829701842201208179806296044168542656023658276973582711371809899610820186380607448292820791527567378866197669589503098011894376345302519210532169251382187302300825271535017419441066506825693228499185714830771635746697847960149377107722017133170611269624755224285944044945084602435826763711796421717051646573625400150133355974949429595043677494772012433622450239623860622906780935735932067330112395783887597220251626355696500325930940031646205275956837013116563770719663874464119298586314738638661185728222575395068393754961673403327068468883586819244741037955246058240202837745128651571355621828153983143768344378381098603873322665267540612338783110664051367041880546757282569945871585913540213268525717965422160208292597405488128568159101852707568812337433738214515057820600519206150584962935459028727574161531038057437974246820002523126962535830580703010916692907385698878797383647166387919326686279669983304539096690256413847698755523245829540974079177449932753030837586412215846750565419774376389633034909378815726530894550188655121474258001819899672376014138618736872552748977721707766226520718628585931199902211417464522690949798135123121736469166601218070831233041216050035385215650935958051226648044774252667248446942110728426279072786510974261389151855295502791358142008983346388750641367624532080166038486325004077114617210647506986174643698808976234817604862010391295060158439621263355359301187421303790230574083907768906456602349294270187387308034685489051842987355984754173960272547943487106117723842407643904999761693317154942754382307074533346722359791432309820660046064336905529761500662133345772513890650347507210517865805965885694237534550725984940048178610672372629682382292748753009221259600570610365712586237578245643241610873311007799996911503771152437714884419869390598824256636766262137958872117894107379060993941477814469227379459107363558720950890110662022478221175592974015835790960525137545763804943683100248284802739569681372513064954709762682566405385488233515094233385916329425579834042142457854870754016574787750811115626204408252814148556110679156733144896689685093396367741295137355599625746827668573048425682824670005000588841203840082096473054968659933796299783810756062266994778355572675250359870604923140262754553410170706805930361475549464762660454889526012685280510757092067409469633375044597448282648451647207262969653533326842713983461589540543770776758435656018806559009869878450263582525391261348102390634432702774072219301510380348970557956977687520058589763137550170656066891714948662032116726082036765921832185008286925147244306492531117901601844081072767201196175819448447198195972013434170203516208714416510834542211005990432140772474570401326616869871311033620035052316743030587497899500429005184398276762936879014526035773033467182034891806728698205197531609231967525334688670888411582991981880043542332924820778628896599734144470641396737744185201695497791407325566870206534200819390722663213778664548207487549746667550054879980242381449235017080120321574864219089836666326264749880071294526664862746513544053766982154624982652264184883799155247896820637704536122630028817665582261929519516877427747112383667966862616479746704077659622334132173397388431940232164587263514233159308438507370364595181721282433803851169269229885719133348911239260940354908739772844712729753300322445332546279879056743749155938524213802439780065597284010281107981402829102424981568423309742383452827485332100083902585243181575561102820598260985441205505128408847693972733387215797767829183271828084380376220694423718789214927775080530049898687238941733888844601060697310933831805139724774724297858634887312927084723915239644471352809885782604802414537281257609120730921019615971612488531662329530438736796724785830972669572164298506784291797291979902102916079905131451036540239434488669109423565653875667677390068467594569176661774823972098657495193625262757852132159880970803013430938001497172812439606145143650117141581650853105843694675592152857454981515568586702992919621120382236435103423921692530789804587620634594848050320086204124554167254199379406763432215353432632195418659341286175786576200560629149757924693590796445699256832700711761685692231427900255261321896468815725844872177367115956313747558145071272167275566472904576425579231733257440744412918863101931655186064599936873260128885230920057359174457744374810866377507328911308163752215144635496382154055875345757293345313360888469731101563218563535814839150826926460980282563912128139558643534352853352170161082464514971474216150719361558002844858042003783431360088734248627484287065337364887381429836234223090238006840429487855268908572271053446122032677688455660300898285038678676673609600458753046573167865042499973156313009515711024695123965667030048466658664926612968117478615033628455950217254174492902537188020194443211734906499217657221161776791967351064138525595697949010925182993433664608606217407738754201795475604949326101570716995702953737663496634324750238686606306876429849619553020753368403858340189304119025759460305101768124578354987077208123769823679228118304513131290880427485185860642284623896152906085741480040378588926545275091572959405813875994301017576359401838353605136627539151169392742064823899463794591074077825456735769132069649331105725077872167602704601613539299533114975337338600684227906924202031445027752987842975161004321496909744578754185652707727164138096843795143488624772225541863741876892453715339237001006744470949400990726155457710720810310107003711821042020995612553688439699119412128344792105327656689909335103327748740183068214822950455184247470259743109087830135366653010589130633534285418604388960293770764290535286466467229128618396288227752633346079965675333861787983872777941775216585814263648488060652058876731405388379407566551516442952744203963879687539897794082439227626707329144881654987637872624425545068889556358175323458702690263334147989080145565271932749870108239271125181918949820686625082984865521679044326016468492793655372511738974092137075149354503163956505707161087270997798400800179286019286241891454782255653749805084654564316448778237146726348882843440827560574000200200105841779028489442267295894598439310971770525701782537406211071032686154091470505166080437301465369218299426391993750748337520082718632779834041042663644900683378104293069093167238151581140105462644700260594894312297143600601438668775401514873430111405625683835774102397376436183093594197520173885943834100952501557386671167385776751469848448227966160982332173076064218109248404858509596173312197041970854073910968222492767323001828513146834771259842065480405179029825486489645175933965095081830988067480751364929922274205908262121341096009276108459898531068322657763312225954975729290789311472742972262726531589267190782330646824190378074048273598117597014395145663228402782427579267744622112000999502641155526739169125118729271804516134274592150352613297650032657576459819217572156439686657494339918911741146809740349324475581357137876746652315163294072526993823303391261595215239198935523159020690711998854172826641536859654987318172276489144563274861508844042937540168312818243194343387440184806739104441205692447358895044980792340476137128380220317136753781810459279585381675292229705204974699784963555690930042644443071012689489579266286923292247904698447275694651195883287289489428622756849606931262457199821969479510993505343223053711729092515344464722452215368479281094371641667255168245383257078565773572358309737849423397484508667384994437842124776733147131659813841650860706399828264157049897448335241466449230242734057500530662065801474040514156085946760534939580423623976527179150268455812818578459115859403933616287579672577320529475631985938916916692488851631673554745833501863175234656641446948835040625722930105700970191763328429883922079707178477859171790727156667046719275536731055168789938228480298844109411348515390844309547745301843597236735901461385877045422533361118680351351711272924022691018640203993656239071616801570554925634888822089743129057689388620131387884370140524696788372439927037733538107231902580171118607750119632014706752539244662770965864526783040868340884334873271663297232152080362645490437741495983116460534185644150840314094632999171119789485207931155348180836600122295149480312356766847643154684341462141136602186138189182454881590613763799101301925379226332740299566790001903921507425812439693664076340623520632672342480313510680757690482471947425188414897484103321780407971489117352272762963868050499200723866559230785390660571468416765982538314945445657505382437312843593198538000960278662148328276384452466436136053976946802784334076613870660912505136929084891409070717673665629859682755918324270254914812721341570129183315165867535385903100117580228034766829856431067757141101148112538202831748266706419227656262450202484800567570749236321925009073654499762666069061458770466881636696937424642971597668573818026751887086397187393337598519000939381938173819218512446419836025494501563159248096794748311509480844582230794669740220909272218518479083169990598138082552195601141743421952370302434632537319012938708576631141748740660523522126491535574841217724953713212078371579409944061982746125718215077507325084580362374207861503716966918630878097264909852691463235816350983792272971357002770491859668664408071739605467926440616416071651269696029389105939658871973715128853797005325760314163328654898979982804102676128582036304467688723617560889011734573431358321242477335144799429255635984582058766933909925939955193400476101833266605058160419267109934466601692564909685842934378720496406564486343707996509248900536473801406959168540273788702142501767732591305683985612732560021555677225897652175793352971871407214487140365368955911111906518747473575442618124103500059304827794113456753144283785825112510806463684393909888517200698381238143250076432724893928173155831162815383722047459666367790026480433866154344474257241409410777570381634264775835891955863027777455014791854517163747731577741111267304750292686807160536469874154700179966342725913924612154124403506470520290967748706152398263603937843227462545209049890313225686060462653425820277422249150950641138854018333910061763898892480828043331857239843975765751471677389265722916773128882341260675278968732335568054682702119729461072544773147560327261388245149263520356680560289151083117221181910128040712961361666877894169102312031746003908886117740303796741521134054833015121629527555023159524595347930880609962935094473437803389316987880311945672220899436081022914648194609116891508281882623740907849731776188188779212005530467759908114266033275800988116892734304889140722767050020020334590841908960859155938899906846809019499199797056264621724628757555197393314327788541364849552074704023461122815934068362202333476556794195637691771348555558288197285160330385131424495127571643495794599672696863654898307556290053110194138356825997655817913805121667626911142399060424259456742425611764669009977933404230958688111157750675688584797433531979733227921039346671272364580421390310502988853095185388908457545035705591854575601490168425429002828020497610336652216017887172324795354305042364991967973430895695193870992641685956749525956407062757959504175643743625875723388193229052578174354839214380845163963480907679484153833820156548144335185544912137220215114693923180551281751085922083239067987722821524356847821323909195772112728477089187148044880813577901710807621455717188761750459029375580595774993292798637806023236844241943783981448116097152032015929496966897741142613111940933922259117663102303167087526314831982510464476703845351517385006268817417337295841951831583852677613593584644882320358911912757929600994533773486258709645473487257657974444686469847636062407222016318775889833413192976962156432869192513760110556213254567924445434313921887896393307462201018352979254109863383439795588359859158884953024203218710832489071633804756698645254216191636300539238854170075371775508694166093711565606504954758594155276341709219685448815621427846830293473775551611099209950705752827723965744582195228165992148377969859842045314194397536055246085089097818815004684386823040131132362059317010328636798106204114286701941269343910537147608733455887609197785843251727102837249832142322229101076309507000267243348602937712758635330558520897678597543964950412209474316458357839362856369952678779730645719994019479016950094838442285778675109395475280717505517662279205628292607589499050310585932388207652613625212880801099699869870882322763595215390240824259094823823914798375781954272937443760753392954166998941806833461925453608246229047655252214669438170941747130769324931512354148856769700449980197372546430168572881421788838657542015336039724405020312774850684805431352908262030807331842853362028620066459447644527908774473136574286327243431302598066757447100491306109702900356690824479194918709967150958754892250109047136951333569352665030475392064636907041433973493877936881287806915773852280204381927327451956680973755734053789464666511275013997768093269853823922952594944298773233235837845100960419423220618903968838541448919473039724868034387119464233298508976604273604944914822956202574017019198674856751748416865409962198820583264907025098596361115545936409000348389097805216928913598654292609795015790008632543754721274962873501811732781542370719608456807924913165009625852052306368783994292917255027246750492867063850831414112720465787553285618823103497198086969198400791268338839866542921162686957809707588702391117305020705985032059410127863093598541171483552819338400570388758395470355224347860361417018781893517927642409254858442755337381870500299519495697386028436888364644406193765374478390729089899386838764753107955798204765640635930875346516233517548709466561254131192205199796664413521318905829609175467990303942767762670123260316900031725793229729621228803119616793429275002054155291257935110323841342311786942702676502330850696927181667639085084283906453437496069700155939749136493436075350706931274632022141452444465834357343264268682200291853241873266024814032782430461767625085228516753758064959581117172905778439064741394265314634746306442082001978037860432714841262485714958688372533946633545571280504471629630590422070531753870490997034003056520491225337740841939054137623774601893592758670829304132599899957732692296835704820051445853679192256390882052295853883826978933792762399249166774527046876517988445012014119671170172310763121106054963104356076190110331290712813678775681134933762280473312949462603453692052841158784424805334471175553071533429871670802979093749216617467925286764098125127008753366446187085990213541741343532808927870747951823787616044494766937227676292742122253630349439068287670091789691259464149069818421009693058412746803739614448394245520597796634874982996097396761575906161603801313699918906994321363606677399858911405918042521364415553382953313720514019819171832812734362849921496895639423483455302209791519346140460369833580275598005214147299385320283368457541171674439176725050131138101447184371659519766624949742659279412755373215808997437001124420723456038530193700170599714265044362999372327116589738839979584375193959109439738120772528913143171342309520221381635649894705064517007757189920290222723673708207747340075092499004993699843626821432415613505419786159940650281649773711068159329166633991221887901161562184839626666187847127019745398600730377888242742453103508614282483583611630854429763412280542774542063274076193371656132765528566768780726172162091372886252679760628773981632672654546486952781530155469857867272948157993831306310842916223045424407279735854888887513740462415222350867540005626744457955434501337253036053025734636536843037949891555198201555255891817011720115301602047851670898748001039110266411516704274245314224031787723223277118612521319416435324153174122269167670101132585620494727777532286585285732643265440133480704623328207532262499555808198804958750634124510367937280340543600884787896075919174940382126321892706164202077486583263277190272672720894742173147743950456958560211773893881852829327887058091712276173733078133823990271164888156963352136518556434823189431871970590484396144810219123648978604129183732421947036462184337118003896528045475429424144143006974248077292985623106752245658269226339324742136326269891932134969646532463522432638789163424902633653934261410017029861016207314908502579383430958352012730277420430231683353558791335894656679611260332469022562245018173252574679870944438902733866860593241279451192401274687502966310330026457093729546065048386410338343975791406052755079044293852074865241910098769651709632148809251977427370455638931700778762917195345033803477609199934841566098413099054910324669603416943944400400072029228528558742674146258982512152278748264830843690726074947586793676402987774340278466151929950975860587318156854081360717612137923121912372656187148189003592979894520870685801594632044065836903495843112169842878445380008845031126099789553468687393520417331055239838568289272688893724874425620074984504041019706218032210693497982429024119500683613138018858520019247078786193351946982789028326081086761982899539691584885693658712964466037126725337108243952042153161227673054069637378887603910651951071532505815383335995344955117765203586728335104736775046785795609348610754299599682605016362360769048195205455819454913563274903826924363904784560875595273659273800117284813371426159108019571513150738845949272359183402348771428001372862979073113552018049157035245136448262582509767129360872471017890124968196671723333258477043940351877890455356212039651611835644186925216864716491570350371019878594172022309926061565478920529118261383566618299523134364926704330074982692564383301673409454257300585425242742881602632191751913681878058032788703566511427779506051941532897128863474747014575114482297770764539579263434725079927822129433641329662755105951008554631273952925955941327622248996136404581381786416687545013980864003210122391832524248349123226461976412167613971237340780402913604304734142036611454085824417046101249772161048905776904432603943979622311804159627818186163942205263141524104258480659815779115528680390253468772446495815842203625350475438857472059211663622667006462741279934410838697829067887156439368941690808560388158877108737265161111432401263540589872252631682643128009041008885562371065837208262614642268270405395078839679240855119850674141515276890849166263472984372520805434282674840409009368875765226335341388412092994403590553247146803301080306466357228863443354105994566724902147045764258808849827561424682834390060153565527687301891548970839931826903266321091109088680983417525415335395500092712942302555765032303596194510925701068498666995086020662796822201087072477276284524160292506165474545220159995314777979655892074468090759646845049710758334917859072155312394814981092776069373385141547891688069959129143245258277062942742221895511650750587218520628653196359305148482731621360232401414784684228945220138719573163283600535226591239466030272027036673561056578886741897646115076467369356160893092182186615662293324130193482511358588094425273269192987709037713063938486035441585474138233240402119019527607963254258432423768421610562644120474167812751006952734615004132554935498302274279210169128375424483028981488276051028667066511256537043043481276304138399000873327982114062653426075448812429297884580624745668993475423240872822475311688710057625281973818445820556067700248303467408094607741947339820979007466302492835864848920314133202976284934858165290436324508528423819743284441658403997995344736831097261591825004630348140634025668886700237857875999313041550046019656030093663254694383660909659937385384106205790168526698512644623391755551985809564815615749721867087442618031831847456991778870625863610553325174675654328890274985444638493704379895571581304223988548444945054050668202837558824295642963925860879015503145690354686334998657430596020793428873923277742309817204054722053420977073762651498286429980443292672896742728475123132704619539210378973353291811623148728552504029074764536271894939696382816000490248731969446335494645646745689381168533191987144900445513226881883731502671740228490841440218274496012856254593865951203671315938188987574532349233501256782245764354023011958890033897774226863082265201451910964498366521415238991769099886627824774476439408399972141847258118060892881321036905283092040648117203329022913343893568737882380843786235998869561272066580064004861658427175227544515169153111414439365257928913205243124983553709200656848737407478649460934757870320591094383116322548446142619506620626402732702665650203747476690248847789478622026873926400174915461236592226871525123741686788702103756703098777609671723015761721817336270150655342574381379857762328436196949796066235024539672669458037324728415435914789697598519840749988675410435417624124873054739928081018107250030067876640075212141657429489858585473465683398508374589223081338000894616509963238257577568637751449977489305777475203833718279529966629777327610476062191764055439572281750025347284672107275227357959237622363796117082476696776158760601509494785167443372427415482535054310789742638489992940358842783736055057534980219964927416030054877428066415287154684840892181738377456622354859081355059995581559051832941739008295091271951165840209663101695178019686440970099638234272101912094787899108208392759940115763637771812172047344213922793444766725909652638553708731973711651003634590203130763155939766530556891205239497531599064696022394910479767283233139098871542202311566961235026667184402851323967562994785274449752835023739625723250008644936767567427476776228232479493190069653879940256279670681417279312791676581458603152038707240312688245767481018223583459419456052666275539373582615463987360722877648741442658439205927530754753831250783426194728005034148027727734640215868038966936820341380627215295326880580592104577257028429989131309811133587971514404610552011571154668416785768839895024547581641304411166868706694639450238301535666196818694589484575508711529413031610191195923724779072725244784943378009547457906199176985417051347849471167371759155012203859168146545886793837902477979293528756444662534165893339611094805515906759145016860136357581749308773421872583748354653383105345978457845573995861558004840872830499292549779588173728136188482220468474643971369396521627518641779562708156246397190915954996584185198601119224193635934659061643354705478894609632204552584720137927117218417740180749711348177857169423482681698829894990329598215053533460731724810046338695798524472245709098847511022067070363445446358525072765549450971696601340122117453992797694117193521547081594731863114693917591906213982214276192762178139747620399180963175344371196293575505809098676089861598074490932782021695333802263085176865669374150049464856994296199361367852541272434264697545194857120848036862807777415143460801976693562389542878902666197953324955630904568985263372839425339340920488316879228903784765137628013516543823863385709981336250503142351595902949869625316877958613037365465350175856165749050757393035819968544730844859950546584593676114731594823286346883562032934192047213955393244456084538177110330155221932434455946884805623735356335600186910806568100156119614591159485028801864282671500460606403874377312247421222728353491360995011487635476092028863193480059243396731901118999091322576989753553338268010265733405708870058339964165125789257157866293551537010734025886943588423860684736299475981389832222830188516843123886494626795977211131522070055475855994728903765959563837643292938823900586395941914068624770947388381405726311745855051657367837151847396948627800523381881344935067730815591123528017427716417033114099293261389729472744377733180049180851582626796817742279940937763719738192651242523219551093708345780122767731058057486887362986218806635074224221308869502508179826207266556851273803217774234022392127971739681106040052745472937742358896295504747954788210765739534298031078309911261035295920449788467522881495054253382645219135257129485874348057233508732361731289875096327779504170458280889540411656205170773902799721599231887325210315266551049438124031441937870899160299611213441520435410011853743977401072886729774725006869244861054629407744558387431709085870962849449988986098202315752662393644362573114141130644586007111156280553169304655457355809392565223786300077773629372036589445353725094094671499810340440663531680992258347057411443113467527047334718688858268335097036358613937623329073059927443032961857674538789011894217288282282634217035924173860726078516222794306342892808781831491448257165392433171054138982269832152321135217991360243615403903586156742831041668835838507477013307750203950944827893056386456722502323370687611769613625056339290149723527144552827143974123853920185547208815634543511962505284043286922296583676153336102606319994334555266115848650376285392272726498693992441344043585984910693480509473644205512751144688421990756850161339285763233460727338227826244347793823557739754743236610697286845213341331391160616328583722729264370712429570491417957706507096770619595905548075998306849223542774827717664490630836583390336597584178195928102572305333400038600051389802778321498664726683683659207513698048834790396438616141200282273227514522360739664013998657792904564113043828282274479988341172542779981104744755233592331504011499745794743163721525909410993335884004585133087737947008019521458595781305113894693682283441087835897448615757371010622513578053812986164011797470997336556585666110333246050823436977725126568548778365854666699607855831354524848676659662135646344406678833580051654109017430572435145949643083019531832261643896514777186113394190858285199974564539192712328975386054377844507528657213295276453967969549671244910300932734850586268695791086453776072759888048646579597670582345180395400630977440816981335480975011708424372524496831624774237140707124429464403890762327376224485678028242073724530581196810110009563701840611689448771974117545701882831467753827792230371994402972856043741504684131220983093752568662845523086755015255078861311029318370497629699430188295685724633658886830780013033634302197823238981526465403269272463616985221181478669147337648370478913184309327879381690291911185606393317461681932078650197119972340101284227219670506121762035995101101152422736667587674129711828979477708045977669825405877865880836345037980267613483100255677073813972645119281205537522597234032187247877802937144046971099166150709090048802899654224811625925077713388284454345260422167196876248739633276057033127856746031434743898181131232427573566930197650902090193191428825926816008967747162859710993352507469309205672134702708539967653676237143704757515493678038123170058506683425113329952642451183891839676318692585149243659308627046334348047134670685842180601183318609698528953834911277058933948654114314224677610021515426253418546467636064830475643833527482025905820420268332200153145069909839698271891161222552280627910281768077261488717962763411876327712434530262697324680373986077050347960150269204840053264762556992923346665698455362820099445596564168250028110821439694303722756190987079739108624067605792176093173052978622925211832619851981052261054621356713076365640099598981679654475363379529253243849581211267386750664835371560797729422538256970997471869514777518942646335699767779336292800107353269915904045628167131671041214932034259795368569612007045386499807563479245016168697148812572586975875271137917834441640715789792455410330138490242517488189639213447296496210487731004736449034789151486066329538357286565873306009573550717575822792875502360080814921993475693805352835487030006317241704665861601581841436663705487335162525683739240462830747333011938716812629046203744093900195834926882843413076544235819596178508950528631110309354749073218605300130789416043197033137867317600574687478770896648562919083842733489805497569609393191473687970596881030266376083064237808739367138274951867013878409490579722520101104611966736139245708827367315112967886945268067988268792371509000346385316223215198744458599720756154021201835723196729084579782198168527055732232884244790971358086797528089587820508544979833578989673646458312872347661428217987867609039871305095874097387886230387552464697957288382572765254277203730427639749602097194401755664174394190491782546564833692902680042656331145597727857612555310494475052800888433128652110276816473067650835202542875839273298245538112566872123652015959485510128064923864326355122278223748105618387024320314366446900585151711850927303201668672904614876974577420643522925098450755743542292488203514353730580970797984579133476038727900383002881933672222652582055184235337054161518589010346972880798380249336371260280866595158308578675337316176601629068123015221872741068265826189757570183884700474680732191039168459100165806132047666364681194646121375223241660798472413107067343774934079265540721702762626896926204603372079117472258223225742873132173446222978345666211683887754397900302165076628074712916787062810651728644952355589600213387740307195635446866831108180119009093452634407670915122456592101018961826258387613183955010991206548012227515257583403843470685508104707728970048196115945403069430973387296682906005415801799833330994317200008953793734591894359052899081931213434334461812199031482855802446549936095919107157691398013915607641581140235776162109732513748229165410004565581971657780547010880007770089432408771622300361946002171669401806224724030712973161712520712199916946021152797425037365910325497150514120184932405156110806799022408226871798908874791056874595878140828585928522545434646390881115137420074664408690844174429514226269262252104648895997392799008675148569817881384546288842801862511807929428319941105633635250910692533610560181012224621946832697537818417816006297989197485821188857167064546111901780521585186497400057178608609008613507883054921663579781912959068536109081696189673380142702240727493921567940621917836580959740905876213892009992763294295037934223161752656455234844395662070841747127295901868367612637242418006104511487653161725395477087530432100521016528026247930855231443337343845444016204736936759059394691755269512223665189426326849432403127601738046225355668617853289005988761777239050507689376677621979053720450117461274836984728013089796142896227991350013365261425350202593534775681930585753665980777138205424781606451324110682710045193014320171750029457433784644061607658120282183530076568647962363446638595550880755492435473630144319422818366152200263813817287764695579556538915982657600156399196122264693067726079973989824036790284130326335240411916667684582343568031405980603942150717124099142976964194758657836746284018028047342236206524833901814519720499728196662880501147586994912644847470957622004108049683640972268240105189906788578772780848557717114158344512195310754852020660557417537760460633628948434549132066471011365279245757965744165550759356375283138559000890890747362232703759127373093208801965046283717264453758180274175444251969411011337421942997715281410674131793591344192222138370246399632904638599680325464812707369401490109570238607372942665515242617496204719539684144643728042890872965079276142502087228196373945414080977638438711781409538043472770555128804287190729824448153163209950568855859458241256861985221571049563029318320131366421310873024525415306474433372181303056308981141772323774976692254435235241413723211538384840487533345230600210026680391129762420177021166249539690894855708583673227957269716753402619883683934861587644355760544565211438551924909323140679712705096769472234024665432544924427478115763155313284304185030588546351065771609952063683351241588871358645726677021398320592778498463854816926751801824674061306356042530841293924247127801532536789241701402344344785594925960405468811431077726410303104459008680535756849792315930735215129703343352109145950590983516755296200113140043394453022617483453278393497787357383233002862507884403912887962310874776069538930361573764297965217352549700314001186071310357344339133559096988499321578477594171429426540637524954943246684067910246713833340277283641631634053033479216675870005318721913906944972727958218821408848652337158565982080062701985818492133538613047041174762584844902929802903497815439188680919764070897995007451754744416275615030419946947264520419534266206256609833011792690117982268520866091764722705918856403393067947128905630903955260916939913755022335721062160750563176652649641933526247326623303933262191954340011863402645909543737570015590074671488345781239847425058661657593383759670368568131234378716213815867625186031287172950801091206468204613538878394924467550271003150375028017289447690672083847080631356738146561872343434958765850789085803731294620569247926188327549587446810709809416983580419489748751555323594848466699859959783115716473768664513544979304252830441364583587284435891232580836062453080660371614713609467258986867899949326566843184051002245000200623627287834477248375618063599709302981605491955841557440218272477341630974200261480969592462389593526198937087847075660019257717370928119141038229567933346062572027244561880604927438560566419174113219883529510538529239574960404685254683410093408174064006790790748106312900820406621204395632032604136163088386492170189988832236269814826405380924990211605908951371791066196225356826738610525918670233539987296735404373930498885256644332813712607534228409079867013765049436154643183886353209093476370159349337686267881852024253162808965815706499036564647441112577326412675569991807267917470775597240718983372673977986018021446015498822426266810285824008351052746228986648673729319585218335894157031301719665457701929959239525271873717130205927297801621171851814404973333349105151242342621947632268735047724397401755237508537759482866365386136110226638149999989643704234580615031611878043785304216310243952801637081946319667449615444182350223540072783477200061843630863643898615495100993176121284916786512043848157258024761538813702049088480192261547296780121062022622480780425618875890312286850167790180071709824005665839375331733655645056573316437315145511050323382836833523338859399999272042056745228077493561790793336727729016102025308960268107921880323734330703054546428548571877467006611498603282891603423612102181993678640121506120433956938262414363497687088484752356490231085796667283466739940288087402293904832834809255162390678069114830450595734363334791983735608064845194135847803260705753120644765382862785797724844856528350445433091926908584829559720443909165159750536401512649321167656032010722412975396782849648704596057835223281678687434239920301223149517286493913927851882449526207884565373788975750056574986207838776889034511486247326508843676073112648336440135594536909950268689821614817751042879666368861441511534868283001560494532785637274636190063740076043971289487807284101864997300215113695539372597087592224073700270106454718516793005735596205326247788693070501390936001475473232248388162015283224982562013127196351364729656095885053995785073986098680240441241575207664477703493065702144517295288090745547432036654467158091887002940443017094015361838140788712301229954687372687897642455871496139283323826141153057179303535887478302125612210277691916935605523743227830259021192984077083879991797839461053210711414105669487465150197635001696044799289407232862976071474340387017683393270814148937234887563538728497392383770908126114782328571260659347433234896111790953131816504528060647397892065972478088036561678190458092322559041110249980809144603281701695766117546147862855901115001115360775069015880660779373871903134836814469821049108903724298796035779620324682371231474717390387879340939521522990838904469452263219552252176634979227793866962020815357196226328571759961256007083981972000022715771082355111701384517896777833187353646783530063579750253588006692607737354843597679224781258945844786492082029472592513900990360632535642175943254122090311939251986175567380846978785990347303149231792078823708304653050407468913248633120148353676876508264959698357074117088285253845843306047736470215119146332103341897736516491795562568973487832245243120042978087978903119182454770221449593458594978429968228253947615317411865160241946174615331504178375860491588641195689621254579311045862646068204289380793525862432183121881933240360471349006008097065275255413120837271682025771640224398555335868981169907313220982903453097108039373548150541535997694567471221541258779586856901174454728448792919147173887793336214636237602364021015981486985452412793350131136903615392471408648351576953045007814663604612372492348528008457614067302462132570089976050088000561758606809530216268533933818681148089565754639558493203891875075258531451301942209118510647270592307867264322097563452002297241838675620087029620225330053755526235511176948443168378113267571063543804087187946017614256186179092873752990785991369577715890936687042928971458310849818356356184103815495583692481836899520348421255527975574511194392653428591262799620674267062883860853714291493721117114398741893424495362819046729123182378455046032912055452691971255511912027860694983870542788840427175073277148056598172923616197742458953370142320500308396321657200041890636962194569293726180790564202148911824248864388939555244366704503193311280378745486605097019590378456107210148443067497227126272250381956047694178774675179055965670436447760554398544500266630303720126005832807893688376074240280629158985606834374691122465559038979060094188652095530254272935921556241734772826002449707972453053208188410530916344671672670363299644033635476739072826132093822837319401356644140840286097851395440375967065710220461524154040930955849078162611159945738955392714236431967638833440301110154873452333342986633610335750930563702146525517100213207598779037025802273825437082939826856834884839656616479997052405076753729671628986557754000062297157047573764027653651703871813431685646253998191918973934589068251524860849434832106806423106205895331596267734934834909556509894154526376087210129375267922527693186123683961583867113428185605132530380690896700429082296365466725878870501961111702311884334413161760822632129348946159956123603013960866938930481987349843866481360987670943883754468480298108587843341523829647112816504004071002110965871147573325717781087987485109241354203083890784791927574521007177101187853742716121089213561043999820721448403755801022276713317405272105656334844863003198066915501318072083596239753858378748227424340863872979828390729933932734170849966011015104580202588566084224490129051975740798760234901412284610533339781172739394233272149093562625954473772713627025690177531189414649356753321294886593350803373606643710140207437192848684651159215407594286748621213792055324895596390194500904461971018711052267216277854071747712962228842025788166780152018578018562117766825104828029898299078532403531489162565757551986369795493301466783697069200280521204237098796613058733085837710960862225177249166501827719599837129167324070964849256083068230544664052383904681144999847798751984612228198462233361731341927639053075095538213233480701529301349696886287864696928072037559266449772616463413865619765970646981132245360605317108664795315502961647652315023716923202007184593503725042108059286468933598772069108951567002048959679985036928651487876371812600382140103199780769156364037444897770192194571482064338731280108539557040926314568971380916672461809037935134663737751410699515267503979148341762392639199233451161011049719145554386190511498022075921229261520593761170617278695585878172562244871959226034036115741503047581064797310778482940247921383408649056536992770035649802387805817911365282875879144964262740945130926628722764152470643123073054563226834315656206972499521327323471194987171406527607377577950690474958995336774941113355040518686514792958400809713966917745733724357091250322933410642390357816391688519289582082441031299583800274634275874481208000870770621492098770442057489643613642893124817683203136823826388533423069131807633090241592391641491934326996718508536173071960853818606370790726909515164887643403621418624759988669130441679450669413255316152637633250261002636435193041889442996766494125696155796877437735788529396845611863213036573984355249712322589040568958265639665654722536675278140521272271790346921664320824600015246537688830762834948638213018897940501912462578247911251420843114033308085408188851894981467676333921354846807637001012413583384155438760958668484605137516938461768307607914098813035996403934122235365725238579447983317932890136286550228273857433183563532206737163891624125278764814848242826600955257597810382148600831688401384976720006375863704978414608990647767911570047686551847262997048599852756333836120359867516193902898151270421265611027953963518220979442039797610932362797617609363951212170565969425908442832460991622079666788897818829542888791825144998798407023450476738103316075736495880519666125240736820984945413354465795680715868036783658544623925954848577471984237047201001116031366524631807154429268405125719657988207685883753987871942820741342887724044074428807919955324304692735588796116531806136784228664691362245584294923730616121838110082573468851254619904448622515917579065391397577645753884451151448784989655034881884014020292938184917960255039936751644421348206657730845240677894437330630961681216183781093497420081355905291471400649166333863613518871829661337975224551060613367105979015359982076129570719062731145643699824386423233468933287462131699513092390682948130362249029833535679870766451916156733170445616760649286956175735170410411376153061680245905471477565333123655958502136542598136987400321254903291277159684142921095523743798069526051551526924707981205286683420235046305423652455105947487708447459710433475240722064287513305093258790760940564539384514655026709042819040447910066373996670378997628340368866940932454987885604236819284472587893507209883173816859284309202924500607961029485145790928447333267705389973078039808693476069006759767817509539926515485226969473476118137502362438265549857608888072300253422379952911149796222368402417433885849476225700799586980629745313301520101976046585060754388070669561739440091435365749763634480578586605854353957815669144334447445882064156123212444014336048978897124674423167951740200585125395632035645360998399791573996271327832197667859339910553763805983991964535145777985702121974046129649848136659515282477151980128123152770458620403923015939678588426934370313777440702681579169088934597869196819895777203833850461993738761331524418796446425305812043746406506069475103632132037374570991113213752773215846637112687444740701726932755139832832942945511167878515726757185415820118833849149569085693118455517256920438839928946498768655540617325256873205780423818255245771831923257644221749458506169349827472544569208273040921293058087101189400987829719387133794207042584289844677943972263791689209413525660330719040153348968897147464612127096830446277139254414051221169006896109748375611123488601587267876301762600729199176888999845133272199434432857832406638282918574949136080462777829459248574362965990330810191242091316181828833119327618113658139768321684092034877726525435313626822548873958948593658208209726441453926329918473248811579250180465724478752683330628865756863740258029150989935931714245176538915855300762753017887083920312964752767273186506344407419338221169888949040585744860984082277390920206805717043771145481983450593795827576774894244794227250719504114196103517921551288365850558085428018467231459188137751005382587483600631940070495127254809377512771345302970119582183130945390203716852871522967113072656823980533857215341921433614330537097750897711160338416582207087171171095621501804824360137664301276940886484053787976771429827418647592142283737361832278618799917375860609473853542958630577261228662202967568425067791684013930455545837171060328746437014964067680130716311352075184669623954308188041031923706383696615605120767823297168512026730816081223089809746988980858512073923894817650354368828922643259143235344291652311738505175466104823136842254481941961403776829481144431083362308614655340784508071870105298882139769726861309986961644153788678925209234564397707872497378952672969181860516483147726385539938582778939825534199176249421791976850194221216177213976305614503273151027268772422050094120307273444056359304860220861123743445690852463028887457146762408555042899805700411526305158735596448494608757887974932827211084770402121378153258570674984868696335760146521970831605274882334138521283722798033546498503094864012202205027042417762817164065497637029928782651534853946731124959095398270692748073473637618981195833485281207805235337124628568367503324508349391203040021465881937279355074169447025909577857718957134653574744427054518278760546179976923873537168883181085980001602169925722693641813487623331226752227378250484917863625558454859793133202540203189519536977304049838374790931291356873100434856438068282252491649206611638969103442745854730098067929444224706285820513063272954089409945632039044224737724809985855965832650182128316828298422538207407471049512072175004342159768924622600766125324508434016862921410974176914496154234906984131397315377233023552916822268919020184946861798809172269848400669427070597864162870490260006591613103251717801466965227432295860749271497045955019216143677872496380071663823759759420936482557635057087688563104840634336843657136970611311141267322182599053353241209817934682357705250574899133507948843273747053586686262070686912493787783143269918735395592797929845080861657046645053370337081393834096997198181228206124349002335463284279801525706714286857255272732040893318315501219704478274243948405447414900892059779013583362683049777622327435239093761410035915780553527950550838357450623279543474964018173929703023388620454939247961193120570206179648995637359677117670848375824393761375240019175474040448421323324340224746027316491973463299368058244380126230118600134270731710644744944730221521953632496395747974606221558185782163744726800066351283493836569852511445900091809390855121902605136559176877493168000445944269156109874304126346792422082748742870515952230968193933409498324507613578957953425811014300865235196315230904969517806430366486665012598495192012607230077215503360295835377082281322203233903607041789800717140934514415803139530493997024671804094262686922203374369950929843258413697600013224772323933597963020462797380141003927583292754232035282798743249963485131522338406669810157216657240366460835813148680255826146356268492387229931804088752290041302397692218488203753702984547564593582905671626828960191035676434971289250831711064913301840898117286341226256202098244055016667611947209601445254569362546722629492289001474121484632075099873116503112650063992090819678178499222329372604902319390395118207112388747243481895298389522391342337017685442044152234323338554276839502018000205756047462189295174403764259575621132694265580486363712402052670746684211095530950306365221451297337927846590083780082663563358551608690277761537608389086645946460781653460213851190968202441198289722070755647070663469755029124957618935512791624347760025104842399864659357318118052564827651268752763291222503666758609759493329160354949640991254639100911005922702046191821111194309457673177111437896685263583029229447385655692523808102731525463238179454692279318832357824268045249561535012248436605262963881044778200122773644115118635735186488179337654175598448248811066670040399047623603941304243139428430984556610002837843516697059276680343623894712804420325558986536517351166464946634075238457871621033449221799774891665464613695428379288212696125709672888229255402980336078718744319045520119118297746118252354767842779307435803167418363636668423287534564040007631857740788678485595553624674726087359318857744355522236647781408228243754416055463461130615675761686836717473510364245085514544624489207520604215889125547915193585085419368734910849591820119918422517297287114880000272785944560173827105053008820616030487033431490713391027533650006862848939794304780763505535690721425377376074830618609659227727128009383206756331223122886118665899124004244321410324106120515001039484555524983254579678075122800759064491323208630078798137755031615093289981609835910160743604189684567054479263384830155307821766742122650551260709347899655027737694932270500658812521679416196470692495113982315201550856336223456892185671630791009557924998015140438675855946338320378957429477793890049629634055024126534155625806327125268271113344521261408731812041280678788830966150925248040810208150843172938955751066709951640532357928055274585503361955454587884944842025694671685313571588960719693052507834795046702619151390498510561003186740909392323866098658343280585278013811876967707856295594019802313503137044656762862234837204289077650015458406694994238292898417159278751449252232736763419197183160843789183507542167585628814679588979426543912525371580113752995871565221927798930408447459312850820978763211930682268339365961441339569547046186454172608465292460456885434649127970698018049740195124301898530165047015146369934658892355529321665574110297715150529503923505937466842025025515979749151834243761763094937839284740737080872114790649252933412427739099732091195540298104492847147073325936330125867856235096702593375421370206785366926117038269842317596301413618756174295209408689316273763596009496841743722795856195782987335428208773204965424118836081297031696667360212695960474525095471716859346628991649351729889785648053050522808325098902534377191746169557479543625517714632514030909159864405551397300793908705756487821059295305675255977654672526053964258762760984990309530093736037543516914393863766528434937920236261599149227685327453236459332496108517362672271300154554945817007270596263622431270082413518514636018766417175961073292387188642977236559091378507980024285525882889679386970897146246083474244041533579401386019136712612648931537587224525716498543762504658846624176813192910979032231388825834005302548838016670291820199086433812160664830360706569941693126064910746986151571557814688666014037937253342566727907027771173941933944594531636053126361987980047468295554936566927150572239714117169078023208145567432463647924731837513042637929698371554899041625854445976851543645420891659768865372951893022105087636628565549519787540427115222793225686535634374969647534740721244070563771794334487917665434460024955558446965646216859393250606815306347741133191956350952413678144682093127131783615616499031606902819966125146461433255696192641552011448965252800980980012939890572722803844632168505277722433913083958874368729771448870462227445388391901910881143216574923386137092025690604233213625293299690147354566978250380153724765112956076799492772374942663707866813919325444937544157889882700979172190840110224553605995575237255302556669632773231617883965056018699920339154563143134840274402243337042991114829420202146672251780382072515876677372807438583298274727455503483791367840669764245196475911861193035312842818083757969190059535010123994164402827071541129612203534402955709808159749850046590117383451592592807884197796042062161211303126207501401427484012968638235211189013172981231957027578156727193899900660309034795746608493066650523736465492367042379045088725198509997437333352250276334530235022758594676088932590519254853928688048217456862235520966640933821799219654759176055267946359229814973450398695623827343926311520667327375905232214677130868165686452840142921284661548762162011141465834320455740700405925268611920782757254355993758675376645089262673291961260452459399315010580581310895453464136787611906520997889888204721925391739673054890596295264926281916412794397805672490719761464477086125728230115489515411142797775771026254678823900055008318705443278168751154585151308276909843001082742869300150290733737578572459187502623806207690888548376537440772969785811814793124514913310599401102505721219837600664666365355280199695704140956212311099893841254001728586337580016094330043321106214350338412258339290488767528436482775962707773216781184421114663171641899955230468519120667613107673840277403557343136266645973583309294293204912251227936449949528916926289470639742547590065272205597352456090260742485046682428166602017293517836933398441006466355260108517172132366702468676069741212072382060746406921071905772022823802362082921802865475864168625664915358618315394228888976637383293766736048761642585129546217615303753834048738115204863339038026374812775604784425772322042211278648036328135290663989356890268062203708467212320180768734666510282275531818735404916098030562433646345448494039759360958985681822834165043287241031909231736747869965518628277019292712557656665192869403539829384801704741107997383161411628474810460552314554694936443608898387001139130535358332104169401578086416703701613144419358905342183385758558418443083846536343564941379598894989836547739149884502380365269670297324691005355378758829202799301551378199733070437303674798034619113985245962610845323806089021417030917534012217931702253427639490654228525739682144394380205528701197795399014453623696111562454046126533481242521528467097128825975749338727153346981766803860360633889637787917834253354336345651450696457062287628216743754264601894523131522651481767622684617784281807228853099332011330244894722794890627371355038727482078809284122120394433497172143201084921994637972408630567516959028705278241451850069732147633063937137844946853291465285361076578847349319065033073815568395645043990206801472609526623843127091334328171349079678511773798763709910639677694721835256011360547658284214824535669487270223858806695637158079593260210090191923552483000687003817661912734722734912724785176520220136385021019752729393738165863374070783796633795494398517749290520508535973220586729222717378281787250130502411148315257613328106460300506154964909740613936551002959089548001056341872170151369266307028083897999225570385586621355477057657833791719375193463059442825343439576087874288841149485273597937203272181864703059319710084862214482879844906364119367604100166526616561726353439764386233478647415414157242741126447247386434998737182245296834051956597210059316838437916480204168835033247993458972544790071069230335682694485118316993690715804250593010663481705459134088126369670099064641236420612558983985261814488268417715484766439227702924945150507332135686209536886254391609799573407677313710411801184205589526553841043552107587652397415425007483258422797845584599088074116500224569137466891671071509301913380883295245658085822884927519824872023111301854497792998679259716187793217263391668569398191680683397475080053588274537174582591852126523742725939562224859787597654327316142180214511776161148360414051831819958687361007874470351772699942776837386638360072960668364330277637442286674658207940009055495531352088469121572048683502939216520076892846789960162007180331124695429008902462236310897368255917580318901941918587233842005084939785839361116132820597965071253216321199741950037374407115665315795130155855462497807155807841347950468292391806473909577763884044421847651294918730059021364781667287183869720565684428090563672144648962635970720405613880278158899562613183522929760873995051502021490271778224374110145148338682402643972990132379418740123073970669507542357526197465159161283854215209074318185568712972462935297610862070123921908039714919682356655825157365700069277079460183370660970388504808988484892551730556517975513710893422174206463295820800057440888972765740562371108006284590178345430621130775272440275103532452310079455931071570627916167618808254185559939132274421756755164861798976655103723000674539677389111859402062928745276401111538732150528727531223347688565317761768555493645939402126769540492679010961372597560882546464443986819301894184055770692129292227919762080603697479825255709895074986740588643916555792492523279308639847907097075232918700036488101629071267653793945421204720754522066261238594510868914780073125887384985932151811491496194408799759643555335847603135547471384687480263624016482474053346790320696324151203878117250322160129926982608040801929568214539526902441468762860543369536211338725030674757787009837707781365692111784547478139785173693611605542451194211148964540123359910119909596366188963040299358467693135727917693058349065003423283519344198101393398715737966030424497106826576640901824662069128068099734509120390355630717020451451334423632629534719579986156668837195821651938584247345689944751894033986130472389069596222792441061182118400932535943458993298066047389162708298335135586057184556976989757626659337910674792036050313580134535466972366111172918459478022767153484997345386424517544328303330142154865985319083115164757765351686647454474259536266537705618667612348293792935217513790122594060609011564587901328431321136572597180006877754651720548605165137369724204474208533400810871745001105172699582727862555283476154657525966841197600449225914948952446157561539635569853239576651183106170342709694017097503150776282761593057668161994483928164982954864025707265939275974890396184667245081896732440794841739787846822229821078084664168520636632650135013574856231761724673354040022112136362417544394472046528908066566598144545824003820850159826407483282390194681992426079898384107611221566818264488746333730804990190836161727702507553810069051637022340865873753338511054746787088530903273879424797771876872696370285503663239003486342707487417701301168718077387577689192209280649603397090075758360166302532775142999613017528630009484463084382648672595848949443288288520942357905768651297078035630226039843253152732979708589504060601979039316158094836042363610726560144253642869767942271073542204673199691995055409667349061549457136202416252176823445049086697349367017331677503223972787839701012559313176776526742005186102780309481282058576957878288801793830228939810157515780033203776391792269542327222312066498311112941937197401907755406908611218730682923032245589623888345600512987159133701680180680434638220150153679656948528987093343883757113901147403044539292788994343578750859562319851249622659563569715725774018020028701720784703933419295206616338909313638234184812094237283675032254867443216213381202323220506871042091746169359050869581973505572384847193690131390929641375268767205670047113883918265980090992108319605750007723692688605256814991345103445299042771389885621369232438960885200709964170692968558206420559387933828914146578087323672125841247226542911754198191118175985979852925531881142897201829412616897313655499747397255528804465610164495856324621521109515112838246201079432668271745624873263929318189334144454096003626924638232268204504818945368025230565892767621089398667621995032419702168477446236812344467962731005168646245523564852001689137064858549204374698315817435099494917816398033116143773183696779012187694597598886585571393146994561433268196104677904020076467615112920537676835168352887861476824792014284765561519254548894448514144961127034379214662472796304860568335977163083887920754460288694219790851990381968311212009706329092996749001980624677255088717387605718637833843991210928749568652585531293276314821321954586157862042397064619820646455661265060074632630762655426437643292002960426705538073007725549857585312258517391164294518526171746330933124664576771225728671145230089307138335533904505200444171236516375097690444715056689458725221968379952478622581632300528143108411460676726105849631668732725965949173968836030382827482942399237146591462292973404476836942120982731569140688808259955150064634557641136102543666954137344989057455153248083247352257868574219838488746203875126246072511790693500206656294489227737369793730772505136475278233691906863854069040608977630597371721710100460610399820792422820454061041800331765395746799478727984164599815915751145403793326856442699880508303560545503620800495454504636076076894131607102819089956398826223067468093639742187419508622442376997067042189272908049305681065392222036901337092593405475796905250540842012919959636900200586720012048233722852822058004607294698020190700631811894142646288450887159048283069290888216725741918688865665546541750169867693737902541635228338908580407414581954609128944992898277992430681210823616694183094108545131333152491564999724263954214070542493414996368503209043235051491167530779977652680185219881364321062006020057374215782250458810051808770446635583396490604516399474309228749975085396393309809126660123762670384593314897604075095486040838602731914177400623813247108534056563552348430890818074996861131581099134643534774339161966041901906506285912223755648761614296820912634977921148644613071722698443811530442289675259029881000388308976234585976771489980412854282163312703246264222210858120995147511156485795413292697026784371588638894188718007502142730320944527343003516213400806068009653414547442279506278173329592504131843802949115703556417384691310344650153803848874465782677640206131299044675254994530774915459802024734043239224544883632943596572821138876104491631837255021012576286616410964784593174363820701955606633559559847103712858583791527919674202431663707907342169179581271710697728633354232292012039221647264466266420584534730409862310885395106891011873264084272477527476475250539285959276664356617321163941620650937961135799748713430659340170673255647124446172516622821468799505029123518612309048257293091657872059934101645439971855059731575938884829600063847513576016136653479080564912515174768958932690915656526237876123207623374247118955047316193471253781927965392427615997417356728817689545954296106679930156797800869982674056760610110547715913650467749818737746263184486060607697421791919438088572487363792182406895464740015790416955934338963880383190645767843542202335814838012186119947495354404304992022445093304987162243922911670775552517596062468257426914274546061853525764449125328718952038470214071768345386397979938162234659783908753484386699507353671611734804656508040378961179599787023005357371225243029220386532775272127206697947905860493206321341482380418002429368853383125318809618236490756274179511074549696401993445178611045919565175706168875805091837224486850502862425478940455631757828855880225082184180705351727586788729931566929114020449733666758601513653857279819181550282119960736971569221333143436916638434820983191434331703477575495800284605275197856728295626611940577556654746080385712316257877605947513644687135494580885931740342875004372082626046473305669577429669661507024674916690576491619990259975843223690565486115209834059950467259244425415975220322259028424396702709191248187847029849277764495160900240272287249008859316383776363527645296286398998468180875945255282861124295975726416443675663827784909215355629391660996679751754413431797807467285063943640532062493528793397070855497548571961522703019253803113156785224786032480001657289065591481215046266395450044856812193001685333131548848292608774439082238701384974148403259376508531049880406306903360138030968431825231289286072889307845144539964654023971815016386277097729110072983837677967688699787902275803137729066978767065410237335217590788025441811181522363635403495744761778883649533952986207256801461110905974955830484352340251844527020002396811145123758428234654609765933705681281091898442161795942699951627334521089329010560916133116687846645120861077721792441705418117120368740845748522526864887716875814676637323229379811133169162419158738200919155176598771733408397840492074255516164755778551598855694886130655820291199834995565470510142260879695344777538142971188495287992198982986232537194743898554826303379706093735666672020514993595176960887221445905414313894740607620765161272349035567895408545925213119075891336925187107392002165925243655329003894059740381890611740622145694269322359126170738309445148856357046296406726159107195876132544402899596252205692835481044420437435949892809635043348871104060396982268725528194946539483837176244046887980520249420974572427098109615178546784229828862554724275353239102543219411068740926044771013298801680773349794135585771141596061319429525252503245714130569599857019430915749471401130816017412322062895149568689545110325108966228147114125340910065570142611405237020415881242489124675168765919409750488524403967602387813818096393438654404917258092064897056976074722194689050577436064055960523012705959837833572332076140162476623154245637789442826113904529873077291437344760740894401452973210339971261736052737776676072880054705045834314669747264771222195295284391227849806067241554510242399837550961231585467004969790152446461639029206482597428179759940844711170818383414114154323937838215174030984490527574569841897952716929579380720842032349042000662414329326408686630560710651510227335351108113597968889719863937734015948013553912622911052393044664620281462004127157344055226987209028407105976345962082602614271567310531926762601385371707697386441562718402540618137618787180125287711474100606924337173969024733697071199657607895994931568765597708621863486571295017833627274325618613310914230808659686341729989627277714721805959010049056972646645836430788550155149672268702361920760324462127623261320696680423867679650458538195929045141024071800930896488982210105438941243454180302142106021381983708440242518386826369746095031399344552169020337766196007973708341454764466354843850197533557592758275350206988525393933182844718364033241338693902895054546056599742768830100864988870011537730517032876499496180724343146609091230509722128030590960814736287685594367193896919846148658310365962263099078650109073819689359976114441154060516219339284825598506441390246653035561010506213069902136079190789604236896212942831358187899883068115243983141397505143179623688517001650990650593025663984209308511262471764820746953175304896147416828373078831097993969289969708145482939383884159798374394409717102050598407547143231283990477745866536237704490853254964553222688360564076070823104079658131703869783258925575040824725919618614790885701219997120850083180559413864841778587251458077536385229387694816953808259761265763897086010427301736139349320683698917986285807659180323194268028064788437610151959459001570984341263858391717587506921816234427452391289977359945723741562997428102741285636207719866803497123203758158359604527116624314587032634307376686783296304854122456049273446309853665333761721047739390832621530217189332321380101832090163537774769326361873014383973776870779039895083950256795052114778945116069608512089613947942251420182372619528936460990160145447896218455873086107524475410483220598441430317799088840400775191176000404024963878443548845465859371045014306841072457812983152033107410167238216147921198746561369721277563045137443807819043411992133775635459396609784591079865854510104444871628222355165779378759987998006983338083956031921521390198639599938424886316269243267912445319237516244600502780191008466869476814992220175075338100407435322212762433248156692019166418115229820067593593083143978836746725115560722846267756305613516224719752859806722920332510576749805855073189797909584417358375117929257341057880863575458701082208723471801526197662667216769065445056873186025299124925332884429369694456823348185833552466106000499082741276188604580678255984418405842399345318804708831219235191479608551198220734719379276106099108418514212453087638626109615901434199552983974639697697777648565136907361660203480052353609426598885592879407763139210056853610266429330605421270073113287074819404013738713653931498381185388429333883150819514172599023193699109187622076527330007017571354372830858160015059883649248870215101616899867698440472716267695932873959700476409276062393808651962055952761082758792253642857363444804859774637620771249396471555723202304919060610044846886109716088641690713931091969434947943719522956201986686144881244574362386442682191364376466392379861541520664076345102338246173737974960172559342247259084022609769567788878140912221819497439767748890199342010771125655071133973643552891072759841928742669219596191538398026754256728975615952540295043460890740177720085572993101643650718408504624654172937757635685352741155547694861547081627595936266380531145818860051567085680145929017315360584693063397593323382341661773079654851868626367407950709619330471125748122227972791948811315316411304173947080343015571158682669594413900254813086868903355696675433197986466018872090955607080853697610173586367951254395926287432016520330048532731394549627360501497220961208408953058034080713513138870558680851765744654687654705500428600421554654964447400224097290250740696089931827467661445948887683354044854218009655604319934856957756164619603511774036615372314002960653093178148459763010402785590479519093091486831701189289255654033338682525486619110032490480096394596832657968745607205530233364232212977211182625994642441372024455539370940427345610912836607094531446507216229572050359746192361931993174282797546590253864698344654735952829697880360023868554327214999592678704343194121224545797709111055440793584978902854155306591316460508494621062639875196402747999307959935917240749752937708853135006455615968446913250258620561074224107485148430663379335349950923266961498031891942117138772527392704792179031580160809588697530118996167939101563397726433357839437495159144075141748825683398231344454171758132474380528302448741240766573080210395353325923561491113727117271999781249858689367240341160477838745311213403942226931753064742475812102794343463945064986750570377916406052289927916002142720852638256182471067701353343807596678184850422748837539961594987763231989888039454458046545216703560025825446949334881010027228188844934624574414068511201841050355146274504456538200669103463810147810766243352052953920699112770282587937097032919807847775549511365888879381253721310951444598206385977755131350974549569399594742221821421228223044632347566630455111738153452967348085487016015451257165348174501434243160530523556729814865961512076124092964436761370596946048680217181166942107844290990566739722623325502720774848267432834162410709205667127864347387416672477333699789837841130050640388114365407019983321295104517211533039254007728579694137244123929308115944706017594374014455958272523245855783465259325429971627069473818617566606506477031356697882457880277537197280835929550918105324106796580626172092204539287847030848730556799404859363721091627817972433034115043278520502243122324111996105173632740942848584432340869110799135076429862251404184107012657449638601017434941385598337277850879249722072046336098238800599861626751898814567615413205945944603357806189723437312680935301198462028852369026559607670990134529887037149966704997687663905366238739507969505468321912674328905601393549332426687032871585351923559701556177068100466014492297870685573775721939102506925400400568421707079435596009329277839127076250995734349007271322616294097143216285328266732835153716018027829579161834223898991888069974428235275519832873430379427661994638342130200595081759853425078944895543771655500661210454000781958739664354438128571285337815075271764496297293967115768326199877962633688465731808687876562167934389190667497906333615437641480026053174796211123466289183158909636004991155990517235204464573212230357183020121498710482612371858272907111136735456235651771371860426177925327288606204506966277472695696899990363691026472845411194945903153727513033400280118138759029003425178814683217505574359958149317244871868585816489929715815698232562084314791330051046880644446491909889526407775613449388124048350518453160567365282282659296005825638569980221179495328160147853418551026634006563506524577753399400393489317776434476086987333734159236044624778350906548203217051146671105133585279224235546041267255698749838789514522217603519702826607296144356870720012071007362963338623837275526855500222161640581195841795776778618489323591245706935061651917889194501765305401783671650140055559256946151405482790404907836924938266351902626418902838826784265515181349946623535218442257976508174280448253242068989243408934051057061211825928189775900909307346325660142541784427743551228537491640550413969420608095704572902424263672361452275775777616734299928632193298917361022205891706610932576784952919863739258062086256987402172579874816668703956369224217464657784126214621105909706171371461778816844991474121442859245450191700711288491718491605466713424692438750501586217602508828028560997059869745134810053264072571773080802392783713253305572832473966301499720152939743130194519311577176535500428659246642838430968645831164828948205341451522363063272768619220507434035970024663287384260536411246475551883723034759481888352916962624172775043397659408181234514391092252282787455461641744318132210353957905748156288530942393390540682382264231185611167913585994677284194733862760589421670194084236398562936544925659461022254099306141455985588437155814619725237402662266394415813762415852729508816678659610163391729035220499041537718449826462928159191844518853804539252549715044164889830166564077626044007257520059268708913634149817790765521741965023593688883805038048954211174020434800048405443917029713002221036163611673998454725978168716117993758877438772304878428571997898995507766004217661302724553828378887799463913603323041715225582605694667497443074459761288995958440331635817179957257046634122374723882493944557027676127470318628034894333789686313713796869547694902009812527559760589278702843482489299449240462852414741159649451773310189591184393436365373330230553727448211994324462279413349202500226647793178910780467084013260663574477604915199151001058837756079558733298904601053434177295251106193433655393124703770727203046069688898774659522194944196852418603188149226254568369639616249304928795093627406965722990548940033710609377002904822732127918565234500357066774749870241501623782535526901598642842952773657979205834604155381448562585833687932241397839226525505002217464069098469485767305763904796115493544836473621300180631647428343419047519732561114146554869552073909250148568875169790005100655661088973305249891605859631596680918954846067369289545928148502076644388025656792613132648846448281625404983630441866613759907265145125684049504787992813869543586227761538766084258530368824176023477345357992345525763206400261836959273029304490771318579691573635825976700743244962169019916898590220009233791742456961742475406779658842869286535941881598515941723528333812880199455739577270342616271631826392379007525183452802926236603073829599237512150106475043374386993307111973872355126645119181309524557630218838002245177385081725846038149245087200202213148639238156869044667468740987025656509508008173752624900127761643937880719697711778607180643978992462019652379130648615142387142178717237394375201157988133461540716084200040926138135440423648659529516319703887954714441703842084380569665495555469656239373443422071893551788041648627170793584587419722731069045041650481246206112023383988326300530243720091111308822805181276689645525266373752133066066301980908023569245991167676449367450022969704753444006245787872968098906787647157863404063723869559112656822401030257014261409399766284636366879876669646539962239597337135215109866816491165068814569686915571598280450785984404545598249354676542531440821163629345595372339061247423902463738546161377844186011695253475504353320535552423709275764128515562944933713448385083917492251408859545295901589894819535396640022595623241768479687512093084135412036473708590808072808362273590440061233626569928857290151640101086094714099806682591035761848752412675325531299388855652169492203066995780555343090529176025500764647700785564459504290064785878678891010440134062957957291781211022734857366464705303897775126196632815414479884743123512962926360067007519417722537006243174733185668859614162524965871466318805475633612602830471007356264510774057160620044934556313652926939295909073784484196285164496176965581083505161782503852826688399771093377631470991649948195940103849926261405377430085498392988372138419512950855673820736456357509231033957047171406682781380246074369964806686191848216803216983659843223381899455302085184132436629102532580293969143955824547513343871232172889814105510953891139040827947569519670640582918115727592049006748913478623472952327132839741772830300049389827717668910291772010064425998000395245286253376653910858631118534132297013001062313419727159573861469016617341125768116529485954972547249578117039838039672611282109877472342502479139729470866650129691489379622735824806778976088974023749222896733578991831242700012138863865955653364426445776676214421327406976429049071515286062505766117519285878272589829902820967040468092130152832344035942498944044719810696517789460589311324987519278620592925381637190495648893880328984656182733085950674015385258658243715046499241165846874398291723935679436805971915759437127206855118222946534574050940878837055876530001860265754122040685796268597482950352094066943849129823112192503545235514489883947016791618145287007930746225658336906384074615377601099509952839676111910184665209725516781557219729927308606625765431077905319797230167955652656822469462847404228467608703266383255304516474031058123231601383187735401948160520353121583330497243578593371319871899133061751604281274239521110718613616534565149232043380255846815498743215151559321202348167619602395282099199271915842487249830457112851636761356805352238361345491879820311851069503279735924067761426111310472284109968578667192354561520712085981698065574372773199144467794796723066781092287290055822353740322541888822749855811232941688625301711869765223003159011713463880356104770242067177435480424124552929759697677969905499186947540589187696966918191310378477975544061088924185750108913906199927178378346695073240648095209370875843741476953234327841406001883504307815558449395440278853798923601257326756250894788941325202070238402650151770208347974605485901960384617617337218341454560106155108872895897625397828783035805320239670628271001433263432587721716834620107687300973761218837075972948129879674025304769620346356625130207990932561724921278495228428043606054177235942070380625393949122213504887550045840079169145517861036301207695920317039927189646495518836239075518108944572132846476976432786124793682446335320923500497222263597025858821092201998315499973029315092254251367404579849767116013725942742139930682340932654660544756794814422084365264956260181226823415749891678737725068764787892455381342684033445738787718886602865982518807455880098870156899078045023369109876153686780662538895980018163919754898333835725047671980332100676347489307007876679092793326115170182124574271380799266879325380736165480582575592732313508155659197100115456457432259935059742889025166000263718527362112486248614530771247806381156491101786285857602118289661092200143899792166400025806127324520998673234054914275557222097277876333779966071159680627383850867506103706780567379418426823589642754616655351200010182048232120403139597331001975342058919151292782206276384655779470787562353717431672409813642146010157241801245761468292209311205894487525781756905994443620236396449233260485395382719635687934372190488747540204993994483023488254085335387700676919923796165328412721236026295005806782897676891581574427990558400643433177992291085047362010920857979656569678015737683384923606057028996216624731363598961669205168605146258968229316346947405409682000538821703358038809321953310854561821475039852195793068847367181938865671893758731583613400751817880572670797581960933874198312495137447723061294251173374393653683629359468682961934261162843438671067727630347829952654972824348469862790955619320826618889131291785734428702426398775911174658787266099393207807939141379237409438789570272270699589486637934191265110144968257844515420992154945426881936707885743468167586770533839108124085079941254713603742865818937499757548425173485604024894254585268096296705547868707455776113260808372690220469571728058013643843384409360575394273317151514107709398303916422810585338464481631680578959778827394503743641565818455967607814944195443166285122114714454832113976772180757269665190752889227286116020613561248209947467355099388524657000668141562051020945605879268817816273253033440481361078891281959892042858946586928103055426694477850065564155177193634035265066215657461924493312920026898100730469851884878274623463789894810404334710746841934191788858926346812220186183931672791868716488938852663574334888179821496671451898173279397596607279009527296050277457454616156071193114113300634031740510916066837340444301481234876854210908887471554414407341641391533798982001405346534083879917224451273426334717901121561499040350935826632629408233376344487360030334966406320990270105159161563840812890128848926787391442967998357748279305074943364748286357668125201075446598156321868043559054647677069800925235351383065402810296555051061373921088803395590721733411809608858204673725791571404084157857065820015831045348993655696247724259709083880987650734665551616247054077733311976535207996957771886695317599468933160500015086515073771802871930795502673838205533697104398375626028767494593468546933754590937528230175742771633511577154947386377794247833299469728874114046076955082522652202967149040159456493248995232646313226054198387760714957975862405253389633792523571980022031329348424070322079360482926246639802451666950147708627958492909911327278203470214607888181113879309688024608872296659947256258298673923097033565837637475816086916415716389835429177090800256781415934721198947186736901676479406771591466842237162311067738589242463667391766769567847880030338212029666279319804368223895788316134431687671025155743077601896910749986119181847339467968136699799334811225044953278694066198343064739814109052007997819411585168837276774395416793041255456841526709219258334433957754167448168466476920605257121277134404559426926129172701274333328300186264622677419964842507536284065229692254806684975533789822522301379378430508013845002670586897540495668765728214240739359659922727626388990307274735682259552430370892194871496732125319872619434193814377349435205776484534058569429721275837532569557974081124896838435156382086604768898370417264495953461109661083032696876955515877029348785275758802386022924649630104896229200970850412256180864952160180359958186310585821649887717938033834810225236070171377922549629889739298152673085010409310505749682971967424737178854309420691138008488398754421649250384998704237328146897939739795669818892682261885992816198648274330380992465155892400131140164590626091545914268695452048424820217334475703389358140942995032201017686579076858092278001074281520089288616206997510039127808618970731397916873359376930240129302377190970196783620123098014653965922262255331547557441018547508231783067176975233317260715115956371596049612718829639079865725291461082200199297748638278776700011365606054525058451072047696191327084698678547297894400066602733985522314136208020224331799746746260583883663649690778847076321784326432877547311372234460741708391911120438255144209038944570200872052388252603778471769627722783668687041671288717716208582872584566045965698670912651997936207309920063426793218065163048983046958868133823854752445339071746816305108411234324542525995682040827781037095134684443761472466824017934173257284906734955025576369909278128618903285724373391943652836573587709731254454379305273818444425608494701862817588355261665150107143530399744302810452776190057319668981170612698481347857866792545869674802896977365900808288445805537607010801767830828881630280525885556078244206139816625890854289949943939791974624256386580986035582137351790442432747489553599560259465770474392608821198156231548745883167984080462815299403021977278349430022025839940044101068048576119805300105694886515284828855029702116735227551078569935784422525676026268619205848683488178529272425540308741822067615142559740014918047971024535868982660028859704156219593277927568591529695796144005007950174666844498430309498111928670188783945690325662516593819433840015894909557337732247550456087934299677085714572216138395596553554111870862148953578183975241694752337876273599580460883633701048831888578641030667284168083101877579516273392601260507716042573823981198086346120150887015140616180572876936177414857072435927691165386825764540853716314399690364221549031879041358341951289577626337579781769110932201250113106201214010161302129431712769474765386024342591017889056395872183889228014136165768846811684959931670290048773740938909099335761950184120471216768911202697926626045321839612296391186842594833420319033452217283934409458428369050281295182864318839140232553935929235233060059999649508745029693994710006548351374568541992149509392903094975456096491855991628999877759426595507489698840629629534550717226007141713590099638739496315772962333964501164025086887071433439884077500552140729016579268277032902428029154921331832740495849219662674440896747877243428274611904208317908394398423755443013424458597845700812284579550198281310801172588667218149646793171965821811194034451693450597712112578296128929948058519220834278270941280812821603310381771411173065469204341234229481106775108260552033609026402409967838112112774077629436736888243459399654311778871773389987094629020891351526159698297839087997849285762960500449419155682889081965933429020217151093206970069282994561302824876603354318761570545145435111478274582437744882714694469520951616447622860428713931176508735585965280956815227665284883926730319280528395394750308141274397983920928935349016033223794529842693177978326453402592401945714509734833394431563081774944485155862773699358463130821006234947990698502817282032914195999051119442852095763195843524129498517288674912858438510053890365115399351307188006653371569855898341414042461421587416075561859002537014843586540688887344520187220557417915067347605706202509185578990229562331907222932966059485227102654414609241006831348714335642283218113758983588285494139359667793202193741312012733753746700969985386874103417901657006942974112556883757683570749591258527412525310265727014756384291946509349940804545924624136434115438356743498679824321848517021748968193556386633985742056688009043146000862896391051226841591109113209019039434701551892501390608779332640844330631263675387725106544367504419115545441151125274052662879201545769353306758278644198972795251937662073877938148598484383175105336867000221026327552012652426769050750141164421994343748475518270973159652548187976473437279506746002626305432464585670976235723184711646496757309734906100159898252482576041520338012080409780725812843807521418529661396823335217599689924436180491733845771145343286754481677054022931135817873722635428594112396717965363943231032277795813838149426922726639140567141046047662437201172856619874170942342273441191053317109605977536134572749165289462861128053403616704451982517759241829439469509544461526393893807260844730943652392640068060794544774782657398651809568649331530622462460462744373385819696313865942695907536123116597357282414496998019843154002299106813444047930528915075072128997161280367593525842754339785181690328835559038728260194285922343586456463886789388655381658971203525318038111918582307657767959075386490274847001587289845471091336017001460431162621792061628940461780214102946876222518006918905114249861900644108033389416625141594693066899660901806705975458658111893483517301879556002004074810267680065222839920121011224307501725993074014339376776432409126687613307806757475028262451472054830749346348248697631964145535259691779280625970427232881710581893149161940467520430322152798451225249426007111181845017894655840702630186677109800231608606561471169103631454045268309933659332111121327363000472288583013049802331783514503892055387756653912787788055706806409651696893922618666301007101261201271438875461886633838203012933237744863800893077199598597370329874025838648661443718286870305439513207322784726203908336513343195588773401002192193221591765272739762953731130700434789799107548787282816370359007391052425908833628301330209586839740250687887243569451814414902091765901250249564055760780821245198814034475013027208810471350466646968678368942543257861801275713207870269464054685465113211010679998456344826920544342523534297718753029632588390372408070320958477272012683367185616189804644042704428263772604950420316184263361491571625781227787104930172038581212179015000266844788592580458329271849953149979943733275721327242755884828596136957461340110767559403029462094127845187902120556464531208336023964841968496003977923713874968945091937362781808623404081068747245223276055090538848971781545558495378127075392370110997629140721452729468057839520057076706919954847404331619734209261912148179741418041726828742472470610097645473077438045945513580110482965276186448978217391832096682508787727418490322590635866243119369576414954266129913664992721843850678534836071281847823712308087171216586441023843366692546705585375183155432419924931515703717609850119990372738619032902623398240080659813646811987421362969087259427920208545421697706613597680041176917610165857351677445488615904631546216748531255746288797108631618750906867564431888600705400474086556831420607820029545342552269970208938285620292100327749542994054113235988707797896520217638714403421009781687849938032710172046322956262577049607170870003298705258238365322731903163919434726783304488139616451791019151443800174609317007892689826190636742056386385165391583844818842570587581413870733137501148292674775463340255973120218631296774323598522179711564267154664061329903926946674868750224879688918883128244460982551975509504112018880140139903088288701869883241751016428903945955683683242226915158950630860247276147716744014244207868629185268782143965019226852730956856832476237741222874401459352242011238419484039177173705424548444859786243577204825248950014536339332444170498089681949633480958928504437248787940639133662143356179727525790540385801737833043420636724837840354499445886299617408533130063180942809929702821781965133426118258322239134651864471020101929091804239262809695417632285402257820932258134959775034791870462155509150341311316033950728759972964703272403890952973565158068351749632323785124386883345633813820828168435291269384397823756343462598022427332710881218972412690067953605834583116771331245857148935399470978837238211134149908608585955191263633855204187862390251985775028989311200697945755416758544539585655474349534166147521575209744902702414006052830456950822348584229715974880791049541105618065984404908193820023948274085601951763425258703588915120901411982291507386388393125920478880209305476361362830029141719281911732023970459350677879272013399962058457874451637573061261903073939160139938956046830420187917446160077231914085785448217657913837112933073323908589686718992367251325657596342692858230046654024747267342038886228120965298912574837369753436153893516980475691803910586847975065251611124183859773624125563120190085399423626767859590301577133491110944985304033404400505748160647142414207152132649326691342873588512463690280978963072832368097134880997600502582079597923210880006354530507661673066675772442247005084352386437720537590719910404487857898313068096458175471248293694116899933359605776379862392752383147810108801005862281872939670888694390922756335208354784888064174236555413180257422865768876099066465322361028413835086079178401334223649844468454007869620979035219162358893032013617395375493505464089708096390332174264160178211176965027589467010437889074728774527512872560899802049008945352887396762176254206796600033767396893159774654157539040985597449086487609966335065833127611312806917602041817677811815034657451091946607116759544242617014148789170574162609029618026943205615470091122147424107508625553403627772594713656736945316908191858027618591284110039174987545496022844241781297047281842394505982766217537511248152155815060767154695772892508126626115296638136478528747283045952512560903980218480616984603397685576186814405902061839407828594741833203671976309963030264292951306662990790774163255148678355280075599518242793435145106134829535206728051981739057305728565586287936658734438321496615079661399355174317789249577294050811497111735342141140170329255172906200165046946312780505080503965079238599034468488187432305385931420532438951583473943463758910638675894679846237402476265426002002921910213349791929208099677761047208131790869678660556881356429935432242029989454582099376668409342444454709403454072171370284864091322801696445907991285632526343517753578915771289713198695119553805528051197028880659420861753438274587768639928980922895689620307169808805708443863410451892729393618537841746391824304934288194925323609423847299095567028687840338318152840247399052702881981266536972491977811600302220127820934827614045433025737342627011615724133640558207318433892728873089294067961599982381052636048052227729069409865954176902487778268245671658298277745403417174472613130384432500148084044569623774609966280802743275062083626171826688525349270389348784673058246062126019052938399992455923926323469214762204806666257922775795061477259817746352934618995640520251778872498525367022652643744554847326787158086989002117435173017253516773377769285495042591459861602617242233732444580826387239579547600815584743067415983146798288423229625746033327510736263691129230839527554422295538463341102783752935416060924887213548775600246919617041791231337039187839777722178485771607869475056121956865160241494453652680999830060144564134936905371399878380095900134284034758463219371885938769947560331484628120171348780768938486471372816034665360853912958188698212115813712575137380333969758558600549202781013540889641735054153371109217398206975746122171672166283242531734547509579588413875260170815687833922344815916018116110115306262855656185520009492548893023512598041425104214368669977794978823848763718386140215001104027531693981489026957944229472009835526392092016033536981993757189791177819836436908413883464490482680471574223175762632262486496005476685974326811424452336105948322767829829958146189106912094425008149737762802328831787300826922845570137671300047644965466858958369923099885391422032722222101483378053991373401003247687217043410833405512736022522716665781213071118814352021248819403132475689894231501039803878906507746461401558528831274760480994596572190607638574328937877000129616907440544547259866641581746455492989492260634919966419629470057192662076851823068826266290381057887162523233551157525965438690751846424711419082101512295364609512125673685081000625348195264718713842142517311281146854998510832130547752203485574118888353958633507846943940051870327633899808547777618140523427435066435850520128987412700296539331700317299599549995571068813131325243749177966270838371890935148807562955788358154168173886107529779887766239701258349214552211898599249050194143816708356231807705843430922427395892507502373465187687239471838169115097913173766633945265416260795857726180802081126567837895826180022544891846757027669993409494139288684310226327665841843836076784636600411055114962303550412704077751243124452435895543026898393155978892635175299665738605497712824588026044430854433119426840495782890100438888815849762091190930424960149278610564147361578650355375381996601420556742167149509370107153578262026925921692913562014609627094055178503154315552727588755199612374867413155891495269849832924907815793423543496723033936307726787558474581267666356720705094059295003977198121625106721578608148028265682000121314874950458695688218015980634204637543244890128226346633135643808044052768354689119433920262636506137278828266648450788506052001523686290303516825802277526358974287188322779840854073942830302333637928764834987107235295147908688262847754678373676627110026820355002502311645061343495136011556239195244817107925544496122927112061333038211635668797026914508129463103086394867588268752500434350606372865203674138906829224138048248000970059147159110460906199787526864402254733534133592269587613311345304607425488769139860024647534402138614284040143482597934083416674225502305861636740739760073558589641344198513636596676444882051659132139952806957070847942933140448189192854947328801197609737711515616301165702408968762545574978706023099991715969239585816634199032584459055908710618833962814217341677731069349928211889417280723267581238544700034213700764310985819881094774243635617715615060685542435944875485582609598593634558163285477557438078075046325462375454347021111593352596012952319787708341872818722911636198748231709250194087081580786739925227854576111204545471938174417994982162343327183483958597578428768442790068732825125844013288254004173781930482564181988965673768118111721956972300762704186133155391880522035799641769437156656104598570288014904944618412460652200126740447278852093355556191108000478673541169063701558552855425587041727151820572930519669887723213708772117008308643434389640589866379697595996551983947354336789167417489139060053630831138005888613136840660551583905796662188278031100964192784925980384116463101645379136077250151904505835433216412386019491018557084081515876020897606551561991899117312113410749646444692951682468383086988606107339992973981631885535358662887550092710446484862793965015289507999536388717349019270417496146888178752263017942856433169627575123993329391055366161419949844481572354776239849874568490332918435948338526634071448199913097507563429585737198140696839148292369126570533444683701517307087028303615035845792772841024339950805752376447666965294747569404003610919572046161522369915596460524061888475835162988611374541005574339253317585039878219849999238924803833821831159450285118975132789566045587293634774743169018685440720831628683320192937172938217315948459517534307849063756244276322512550904820103191447313544161186548369846923464173950324100421275262948817186626976228041464306483925981285872685505799874649029568356926968471000517814860453067980440469840209837512388387519262148023213642886385524268015332529281717828476279094837925875444479826433618028059218330581055354233666782688070554271953826958208695053666948925134609464421606122884626371452640545157820421729004337051638323148038789563876276269029685222476736628260117967240638408323444067635440099849340746521490877173258160649507050387536127386963369047864862898099454256455338235558945211272897252962591246810507790718354713296365530069351423880364116354491972378559784749334283867370616754533129149660227646728236565179462680344371323385244366672089992678379466902334155870264219079870058369629512048283912987573361681876971751035139146934304693274603040991506365960280943907769651619001502537553992000189662683759236672317206279662135995301056926143234183348733564501781977015674789463569419529849572526425384515061594518923287105414199824338262117343812481056391273890933251315023719129847685313186831895396258377414076832524103395607072013203722004912365505344842422442287627910732425000023851365559129632355612219423267437960613143432922746473907837936886175886943220348608293856371429930611656198285730666816234238044548604777311639293287080846877974990048181326414550636466768396240079869912953403173897440569000808201273223532311900258373229075198561791823773970495233876847372083631162562304998462604014826008582253821299884822481698492404836629331487347847132467890901354921172247497369493758032220290216556930681343140167559314851858988083794701757238237118066823143254365855593092328990625916236064274896686708706301263200452844014132412367498947533483613914410312732814825021431644418611021388665243407611900711562562686956300985154360329955048812098532140281424869872178538201479554101344583777661940017482822240696998547967811278315529009160533527483694608290507724630522573332262392319851567760055669751323251429651181905973555264693601329962228815325216841758734064614715644185692113633303423142554976896177363913155179527670376607315311437121812656352225220997533709436189091376504458082698443457482431167823216176154244196781107522550316004783990955220867183791822755433728726858519065378723811024373520421207456155298298947503660650193729671797935243214064677044544130714017170353811125338111856389400288340593314489737686802366256127503824876076543533766453248925097835344783103675366878681378066739216991722301129549449006507103767564702824863384733002503968076362863369042081584075703664681770992746341129140857405942309418722437926607690878702931115760751472538249346654714315035394124370549260408721230365779959564042218013623351098517205700712931173592278687953956567545328758912665657027785719243809413117410029714309232519630171209284270893970738243840833190151930594642878818812405382528140830485655933166942771133892454551993683293927020767947074706824992888277229597645015275868002938216935147081964901992733657410036421747139456358992476659373001705320689251881616329133681637750975296042836076049379771447803373263095247655434012977504047024779525311155667421441072059025794030004654526058383832732315138736961380952103047906630444819795083603450460041324166669890927908156683297879585210164097672801792152872495129706112254439474588048520854344372390424583620258824378020641729015764291587526147601965244650702626955098904363714162379927232554416575165672720888536340561052260781845391491565635387913898443859414887646766143222229355624011251046681436143108463980019818886643586314730350852350770637750699997472120918556373801053169789834998531071860613680134049363577305140414136970086181303522676839157872036502179002492651374964067464685786401739686449953675818298956345100027284217461162530990686247405516438857236785879220795517614313706400252035360935341544722422962796192999939134491544445478089175102596335593757424111777145962841345595589846164784851956056955337869781926022221072400455515009179823729047616159469384431113908204359996338748412514776870389126967723088112232584616513585525081038743860414211118393922618503515100126150197217133493338141991513762973582676825258998969096427803940496110685885893389103948777429861810237010516450606565449638629592034663704189983866572642498294029057548214697465564025017141502278895666954632453690790119511282032225399596243108151367398756071121405550338886389142254331681197164560896996369817891910815005660515895059637956123395328166242383372771207772784124383306403314092380241490637081215966553099451922340582943670296642867040969475754269820380773840150898172579634058456206156434759496181162764613690509952554163883777023777202938898144372437966605818607135166735055221825426264531904889799718989170301583662031676009892659726852798423364345650695383441237676021989944985423854853033522358013075627530398988132580269105263437396078965817074377102276199939428637916648942605810505628325412201201764059599258508032216980387613526956536104088105802558293626243821613488834196637988587118233449969194543061245594507295841233778872516503319660812999336242543254369375890486180672874167491363197260847858743061432511497272748288264570794859414271661688890553331117685223215236192266762097510156786670055910210196803238779516489898807448456059772942813555265218535209021031965427152570965001515032436389892629338574011676956630361145674355994177202046621599978414043333253830485028977753604929467149885451208835596862694780087287500927604089607752106576516175783354946596647766974954234215252679713656350833772404013259554416813810644877019768541456051768020214582571475151030123273226847347984796586824122868721071276457282454095827799394682984332480524704301661748747950491625112965737462406465064473227512461883122771103873884569652604041795220174729299297444136462549734901462771410083727200610009424127547414398871294251639863541013532393637694833420253901284097843662445952270386097645552523124535850569863389704923096818462104382181097138263404320703245514771023103032082569492502219186751860476160340238319788652163640449592276254512767265203912922337347936943278888173293489749215741694365012643775964324204861740380575354654933345056038203970750089146015111803723739855936595567429349453533891104724778578251276703606897365938511551098190795944771069051148802938759177267029780363263793937232047402793163474495678610405505896713038526929175424075796712534558300372870330916437659391618162408455859749848311613523870584940486881078587484109357351195171421648022659127928979705802472882167595479725264182768501450594024529453508396192042527542155180821106164743576976167929765607268455891594667778014674830776002499492611272524382487660040550855720789509377361188660750706823867126701734884869873557769812973451193560608003250994693156067571262487331218425498689048642914087980701715322858897795950888803365402779086018298283001833060732431090706184549343568450849873913510354866002608608564658039003080894274819467291341668406454337350517222508815125250022010993361455547295318095369807390456613872792635556719865388641973778151434940829732672685850030002779001430938107636704854527331944599284511089020277039979332478306696089582392877402461016306293752684890629269868547497451035716540911360441488466768615806321252219144340329594887032306826541855947534145041269514077268850185205327593265671143934137873548618891676900772805219358219086334491469682604562903648503841809936694943399772134617345698396477428379224256719178819045685279405228020609109478942792129589899717945216591133129844473583904774788196240522097828759641598240253462518959882414409709291248739275553560027980722134282671571424684178086942747070947810590522804543454144831865934643884269676406296245791627611384858532978028481969530678175702419973371231892741710516839614742383886429836411328149523850119752077983259940360053794367714653303430146885981351017024915785372910796556637163265797572573480871621655664836604909313695842224355240018939563944399575380012072381398846888993765533126380141530679014970279740690358868396776616861931523638288142847432212236811586712202298545352671205160355009499063550397681802950962192471949809217141118540670645449905319731138818898064194277989287041097139374327267260373281694767983770203899630528018077674319222772669265581163606024315822306987988837759602123844206087802131167264128236055473467352442818988446261297561481817784279726078595043139362633178296558404325022982498371700642221589277095329260009680822227847244943421491048516338634283688077470662024495946460210313377753649437451025566319651587308931758969907610666246249235774396283621591591176026425990725187850090907066153002192744350901292468518147753621291195500275105170072402644857536662054400601781644204316225646205498382019884756804027930998253723652082162415512575946693002235962742124635074153979150292066369903649871919836880543091977983438790573916716231533134232565851740421791696684608866467201604854529404016352140357605624815397339978702601732279939753747763052562023999153727924861653825344767934163366321989861348824736392628294539175522918027054484280870629973770733965941850645890600999933604909120742656167150945655788695073776719718019189242026585057087646418260079860813435359395892061872170295678408401440329027394397761751104878567132428983384822508650817526897114276132970101545982345618572991428876484533214873698739158640289086594685430300924357212014421613843106844125612665585520179801349693307570873682692789014424057203117939647457586610556065662424612234476034343454476265911849338310569079234690277237890355992666930765201380398828246050373718393205062419766540396712211381807192717444867036602170068216771530166124327831847804591256079920273743639817313427539388319546304533350337923655895310200577434328459219075833646370966255144319696208800141438209573903255123375744354292933573082472288062672894007552727968249527465278912458920499736501174346583095908475712608220857225545664880128214505365587277066282430088446375986000900949898178608658596828086753926115628338555283300940312378504526926363776759634872278238743916490893098701818137619864029781578216587416111370145131320067279338376867320398532649344811667505358002135422599620094284629617807734029050717743760606202769292772166443928953011405586701394092076892650319095780938211032089182294681409828715664151311972637441980036425276998702440000998630537765452612545870519645243114469582395926665374200206330778874754924507237550134030160186621880050097009329007873314237646016384268732228473786508256483982094164785952256771386183730412680905764533237332967206416644344241990037382305808057663730670979951397815095733976248364679309421077984802496617650541355057354304640420999177155512965657755305253673145958462292654251523582835623565105184588431240708049914078700208629356921552225589246709383518954878824691838739690426469396342769868795761933538388886400778372388107251112367239002731484956657609915129138100620721969451297003446454436720712887350903207184815267632915626038407067043348344106306975184493966957902312653033119730566026604827136572335393313331550480543931502270567731436884132162008836401266595119827866207797538263921480338640448906612099982562489670539362955021301509665481323061830541653310057206489912033261180243861112187470141836650747258880077532648353807062877917680696300500992188351719138276346463167493601421625939677035811337790537758835216838495515065985605046299604167449277993942178153095912420719535760608530209396482236664599822456392491048180354258575008751367569469295425726745362928938705629373277544947289014101184180444913768244639741980536037881310440870564951585666328132642282143986193768248309068567624813170760527366185458817319069092150985303318389347384947591702291460081256149119587078794117783752528969931274312177205201833503939314359083589762607854809026068230565447569897939866881157411835991969228029058114107947058426525566835351393682545267131501077213638104100634395381127004832593053800525053216894270326686805205423496287443594011418620654629738090420006451482345842581307433338001660270162475757130713061846661689408473553583559992445216844322141034899544599158008211942213985535799122506696172367903537183094976980670926705947515133999457517427033685978452876924249563848045536383285434613416531409954325985165403474550892211722150860208995831625924779876349543733622924227720472143790442247262930817810119571260751292531965540605662924375816219153216797073541048592427474519847470905151809692389361753555367435220707672887683817702147892589531228238892304222591522396784116143469996316249726479071778250426170885795042683461739870167386602050267179819845763588775666340745192433189050961817724583486803116746127728657502713965538611397427817256828546658632758478051311604766433036756314069136297894501618631381435391814233167831733744691725425082338115491971797817432056437225427560242808273192835767917371382224688230356941343658420083791704916009473891181073488726063994406167949029616806444144690901054532131801378630189688472426629874569913163851796674293357297345087520373266645810873581574202789736751274339502000917827499751810701791787535287887037907482551432938040694143618238292162277529597159553813380647825698376901484212129174943838036211516277970345420531103524976578069303225270619150673708373601915461316513792126727696820953981359212546287485209454836737816295651072717265338681737517405814025724696160182710413156505257312777649914708698536530083574378319529534112513594188019475413275962894338946409057740023132664568664475692560245447656298665222429552873024540717714481592221089391750819754901585128394357175210604451616440486089722989304345444597780554329434328856393284032027251137020035764689454938524026150898251528098975229120285103852563227421699089035877666613826954787030236220006219954453674411000335953152091652128537979474748012718903166926382286695055612397066185443619117264660029266336370767743363773308987803263801945358045936715610476991240286158809810873174088939408894723577132017324109915283327402859423745615402049765608811795140934000940947959308954226803016382625539818461546080282385349100991038179814056216777986391547494628789717851602103747698379939421320776559320290576947341278250937611560278713468518848959757839017186268497847022469482253593809655391855535512198686107662361517439735067527216942319790564748347231557305255553553794787361034932917783650031250096877583942131903156297754958258277194435968322528765965857662956790847459102296215723104353229068896509098347267079229112388160116800626387499602567066047259318965130537143277685565955156352752483134262907654150137474357010806046341791120107786881539943548542373443433659771020926459121441477618158271272510659870984132132984654966669173983287790484096320153433971321351781328386379950549041142891337509712561216936852481739911024483596761937453175687725145538357693830439640136609486878256215720897002627505311530236933095910471747427002504287786122045836281506246250104390246837533501331921363843384292842435071953083072259846184278743686481731892673969893490079207233727274597393481133515621236900258639321148666915981785321137628227009572776604361540101172878943051067295462062284751399306803957477542876018937953451284548000184151377815535270830442032183968762376714700671038771125212155053938269995274795128834414360426436902041909238883063487697660339303933819537691381092344774837176222366596735290646817847916964013161360802333717190208944240569354507149262014136755284250173552385205785521314933755460001220920680337520368914955874009569320529924010849033105074024150070205263767527490887396479058844534592709223122141545435770750163862629826073563240772547924761400039981357061920198568017890390793085771642836304138188359198921610594974970371187344078475547493633081089136202655752247613112596850831129015617366064916734062706443671438795761665911825891590978182915708246689356637291228869392633343854603977871687307635922579258706067724733268611674991239887204814394434037465280353558325127674143600623914641474668766686818881819470759250694793170775206819486745050506560612241980736009034592675739544380384032897015754828090215258226897555271432261363740399199247124853228610043705629455023946620627307048037205647343534271690733633420557066051067658426548001948754601034153881454209346609791321417668301940214730231721264981111449266859881566923731226970505323326372803118293529763435201922475407173381894562831750124963391619847035251806036035873768462928144947561570180902114789206334335681646566457645456555031505827021905172429876575028489800485374527909198633623635514236216813946926804485656979244655172187830371393620669082218458859819269912216390193321541910617770763615254854772453040547571028277448555278947185155009159223733236718082978282830081796559814078941062379587884498541201746763936207671412290487882930648478188164808022429112842978695124302675064486881493067163571121709595816125370504086848419753180065453578786265723408343362060886136414269338338198907432824664438274283499561203849923455212983242459045565965930644660561604232542678415406130325726508318914722447644026547705143380611152517133565543832677342331515720389200746935921782670655430354119275561784509513027675893091327870134139574642949362291880095554983434826580777830988322797252242909405541597497167067095614631943331250206180788431583617918138765954793741279063894911490083219844875546593525108932494795078278149409258169847939851031592805143247322201113267257167422677659335360550865638336352882209304495459586910669735759649693174097094177049366981013129717146510555961704577261831040445567251181306980432985573503813949975616404518416390511007594360732121139983424470638704911733785424952673234691253099250459976355433071957611555452748437180009691447798986304871388657384931519401019190392534442005705569120982133039691241702414528288317377195552737020799474384981399331423554719123207612572017137430374404929717930074771754610868266510786227086209612507287811994244494548152596700651277358371360157919468067319637132254175621659916875730910324407280130728648305330374700724263261330787342191173257201201396851483362454075522443808562006260756871271374243981986750075218892965383423846824377895265246068166070184816981109120013619779159644407769030089121462097017550110035451716252430556686948351069911940868212495858068075329060585533989400236987908473457955838292936868482157401723753054878122612972661856124908567756040090781810877017004997777584821951687666166621024342006767143230538057914608920385639572939405055088915244323511690973034254888292675611543678552407118539430775158896399808266195846777996205138986824374558859204959555584453291010382769823224863905199975674591708687178209369053223039205540726105793740077006102826223349668889303470541651728431540558248340773392561455702842046328559933335942799901831567307155048493914748190892877537937638716377943055845577144622504097453187661665509218713187566931576581461927232940776767148755268214586596348172225898747081864169681205371673977664477473055173300510617013686411582422848772919000490254447116990628774728102078020158270321592238420675664724392048055137934140851731559895982161183361621599421520063317617901401324854858479025429010964534942396476816790372513716134337356543785351740412992566185248922396749193132696596489723525907183805460036556875187396263408993569529615715074041210676002486539943180388387435879898062183595991443155010050799178704569701470197593734621671292822016586924016791736355387318737855501930030038033593610039874314782722994652119934301815519290021077048908693193251848674438039141752035358235882418205633862915461523253232279509301447880835657091928889723110780745496292395498496968082686508040630913024645744631493427634843682161571793959095285487583803348416962837576786534869222185569726760158818503670599695648746260745402693649567224915201044104681726563186589444612254673489709353773361943051023415506518971426235302645535179927616371046187402792596394240326292913524930976083230058872686568253591591643958247114123453543287322309366712107151878129086898705424375559505345408286971050464688797909675900074268638280408614024240606550170869991960559395563761955173572744356048396335103681090756134903265260057268832032231596031924310835175734340474641330431027444115169765752438051225806295916495249241898194072449256315467050563098139069189378263370988898718397997411242665235386278962832709056610073439913613229111913503600956093192351267185728628264456528030039118676471175013738535814329767204680763923571705945224198622563053134535373537119865572122900737440737784116684555003727487271067822547646282505196795942525643984858621175257683779136551927762844656652101579619962580006823414158942110705038844316059525268898830732791067039265405718913767298339512060357022231291121843321512014746718509583327684661653909518372125196020612708980145986893084888567508556738739301029388456394928150181134408747746995016225846419647637520016735172850874004164937134528164406545995106310077007057671444048331281569580567916372483318930088509657506121362335739102327641991484053820529588855022079230412122308653750473939468440922931833420657913990140086712100529308900809618401556957041198061192849894023104277644606675817258417197613431494293185807877132045006828986538941390226619409120496780068709516788907661840430932047471948031540582766990666552962701432435748711310619865827827221644474273378366099922519391722270330430889318323861260276668375735653361619182339083022056991692372726019646401499138494214765782876729635705634884749156171062519237303963606132001210938121116421421306910533522498901909705894116902864579571296871119538586881808811194367823469285444616945578612120702398572310671207623826381224406283592182768949721221260878129750439465379758848466569978034499237046894901897280060392442268054398541619775247237898902235302903630115218732763415622939719116477663161002710522053260274893629215912083705904767546762716502205298244488990331593282023956077068316347487956887123246965433930570862641848154752976856466611424794173227881067874163688510282084831462155016481103685984822059633435214881808316449562327356191211776512262811925091109634223528580756143578743699320611475321389049934832421649910818193119172189607447604449164871826286483493157392664074780759849754106753497394548138736554601544148321121293285593973748883390337913577980824107328805178472657582479323228286130893631411265742888219103348756759690848011134966964702327478129637524464435848302031645748476850938662931011305750901911767101988522639006807356434809828596356196157774314529290853650641161962128536368531241789689222103215164378189912755054719309463637863922978122330745902850443425810128117889512240968445714701478685857313815966923309593514119084557545027517509970140659957379631318740978912679961935927887783369574364018523616903377474020447825075039689157885499973351254778850997058558902260288255202203366701862791879535722619439088442782044735814635768687127182289211327359593188071725421729448874038262496537553065074450837292153923184612639331611277160576712977375687330621919215423979069527431281409659165338304579145616242638913324885462357231786530080727377047501269553817974188986623163080311268819559921937297840006300874015653317442219254425469849066841644169524483909502750809515865246304389114324620958192696669801856179235835329904307783055869645638521196683040203922143481022105791327432372444086511525919450922748085917154658662094915350061791494245980490909517357381841135633484649559757554259868789888939524679558948561210232068979679234183078913700813426818849442788336383730002232976815403589561353958415821291880608691901333245666218569642232943049254994093967055821689927475913806666288574471712396478946411854985757173061621647543125639443840434247764396618192947824739893708461539575442481264161269356453495680212923607997664170805477803036633051464198919937625834325645544918818827328698970389975825270650222470413667603456003666759094788462391398275572981224693435155631233186929147110153378472852140096883055797666833264572404417375110818818189265832008799864326282663049863268129568422444873950855801987774765466205398864509628395682891184522049530407358817470468595561154695686475204360240381421931711218542121837857699259928610665541115412099260298275930629276493938465571525370211419026851847654602486414420578993392532440324850088212055577113971331278963005104761406819823820329413174528697518542081185154975938914478830211328211715277212117421070325400547662304909469547070907761522081814826390094025982660580625552824982254316591659613653361563572578279470093109124764805989933297260271908935847002947110239986797521452841336036843735324910116649681195100252326841529379697917999368433312853239972983480943284530096009715624249452721630310386384538939246112513940904437788500893694897187236267006228261531962907033711815781686409751845383378343166621660417257764319468986021171665299272213405500976579182478796169406499326012111442405904175194695015581151180018609167889574487411363572113284372174663673938904912535627369724898630595100551462758872569582586762306087887383353998928947048827889407196304250974514485016811598386495855794297802426846802662321246796371258782791924202701356093319936392619504116846499304093196401380571908535648404035425107560322416016761655603276731941803922728989097437049842792537041643416609177134153998778003983822742841752103329925057648977783410428322794703075175977955796412118358984897978046330484072243932709816072419009632894213355495617075267989735116123821968961315624687472214341753543144190629860529308528708329908095568383370523010088460003621329056487888276788024996075363330329748145113001656191233935751615352095966335270071814102733254581901963528347868556319129399013722975923686867877942632368992915376191373071628228815240401709473419196980785088670076443495207912864131963101456487508073688551482741201196748748543455500951983662504446342219596817301423727488359191446408354338112033682080399213158743493394617193079240731285939993338144650021090206625573446395226356868870220245985873215624649860937828649011591543007403389428905571478781330120454237541951725616460362266332852942148061225944561660237074201651251220013426827557046693587695544710115392447863376352784700028848010528052020837563848761341059018760026801846505920105165280958208700210916783666627994401067191435082356094228051850705688988944410731011374723372434549423540972790487565901302222774818641878076349757132266938063063476790707128961530474433405120677499491108894979514414919972426902122119325351606498711956558368213531194010586842122679740664457901505404742726033596956958878304009388412637890526251963863843218728146095955217995408663317627170953406976023325197529252330533860263515737398894628258496734814187540334662132476663432496695030407023693089897758813659174635913087566436086254959581967243427815980757086527900845261717353438945972924692313529274612453134879724560631844277736102086154727230611288838262290215097125826592642776133521369051152161602353170901969917900064161425634004151223776980170943545506214331933098496415093928267774365171841967040544858915790095921892235705875611670415984865242596206129301867452838444228589964435221283292220521393526935501295623776673570997360006343545771949782655652473308727943605145520371946730388190676521381634392180647700482476057033442348531393294931761395060153931412898677735331932724948917484955378333878157766655858966418044838607604970504735602390887460400286719155364162835568537862312383732411582745587780017563443290604151214172192811268465811761329625771168696629644578392582858597908271726731905295714007281658110412798504034540046734302977859359036151484006576169345771276969258176799205575180486366294419845147344371768026393655832258959691978551150931619478212830945698657869953420168633631632558408349749994437561358314831255467635186205462522782435160206451973798654710172102953026038933788803180727542309558204277277902685175743484606720504541751707690710310638473299026524690433114769273976455997694377847604932409316679103620200503494473927515378008273899955757924828777452536511170409184685387376018217523888274639122406165004816600726731287063918252520914297062310775170391709203150970713656129209962336520211007765291955280378947983220832520190344450453973294428163982808848878269220696273319861924956311090295753698743083366921514669736563081620739246514631758698170791901418309446799223465449126122983767671805452683768757860020184565302016496998148120178721230226882390146638793595994769257854121812930439818741535789316877703257701722308167591331271863733236434516682109471509571676029195319295782542720328675406420271784777866170452217722063954509683156188295926588239818118542362995805148419791956352457507184887872298688674236723041748858571995525547603998151618523772348769411080470703194175760013987295528135971464954884756455363378478784558946719187329978312494044151743801502089716780115088037328694012713114067261153798087215775961637721105933382728258424261234734010298466901120260056177276863222406505764893899525245611593164726517765215100114920715340113934431032834027476799534825514038232927042081631000849787650174295358188638025577227705124382123539902454328787422079017423228359757698950377887598320470052088577454794077320849711505346318891749789572564634972303512221121923224719460219249571036946193041648712219853368345090064528058620865675775938515341627392267847500250545005105096461585771231558826895686831576368697241040779732959156999331492580987343841724655566569586612593296355837180723136117768684165605753576424588286654254315830697540881065401722367265394255365316748937789039658371218211677172087352428149979598831646496738833910240095068760817780224487189994319645844680148947125307447026347213566966030487530396386884083400197155266676556814488012867915993173472792099002979847149737308434953954628861448756320728182574641985116122056033633749469447621209978841592297932843261383171410009576559792639313598288660276523582098571217306146815045838663015119239710072251922828528909423556667224772808319277690451955548204058410629209473394348721261076579317331337515987935157784168078467458876430714439667245475838986041121955319238184473522048466630426958026694786610779084738077164660434352834924999796860806429609278304042953603633020717541404669721512598322291106294640018474990634594389905143668992623858638118541148421319148647739280902674874905160477836528658543313907844560980556752264454370006018674130913167421283544038352238543306670921430932542125638209022819633425798572790727892736031161784281171136827481003799586279579516441132094823461459465316709568749572922010404697732891270552240799453339522305957861628137959172049095655616638543084837758403756109558386097962179572379761721732502663166779159052252565885511130769186739745807054377336134784415778732131808901543261729199865737153272332522396725116619661004814454317337950230964340006409932813676593912721218160254086863018369520244065855807494709788061583438661116267632956988386481031290839253918214282442123470491272084453796012939045493184375412456386048239502854831376103728048742110211406254590085196786210803331823332579919246263610234676113911873644999139306818191129729665710917201685553763931958032721872157474033500521360154473634107200512405004398058185834692314318185757911467943218655965012040924451211478766464845888416146466218415146959019290089370741218078842437255008437269216282016600056206767595170853996473089965672654902339833820282363023585362676559509952436054525067739017118813121652198180253182348744957740140041730622395033927387499333975092451005707126709407488440346713121032692283840677264441147981939765294254259686426172024867976191132835064039455913567982734652513989541683987157760120806000155358499508806549015754295367298435281104195878608415785906433768098267334237123832530128690002242881143309484416031778366137799139333765162756971799160444141760634965495472127470890439408392376639430460251823087377705507879499726221428743522209371046430728139312674376024829337326511638297760096837631965423167955015380527101752273715693252033871502838976359125106889613878451747233379217909284652443199398336508293255885714467179336355581664806092952185401824355457153545348341568333515847223432670104324566134037807485108937760983337118372325139410088097026575981184574791785405654425173282026052716108617893865164917761096448269316035450295296841005801058373320105711079086657172567698160692295995098367416099026229068904342597272929922902767600475237319294049411743476824281573431644881408089383934078468250048055969771240816595766301229500081989276844439036826146795427972727276815161035236332603913701486025015092787671970949269721061768269080081853370690057250018865202046916567560296996819517890667137721188835782105219798390797905844107741660445507333471943909807340860288238037563722356459828396476378068309229778943200421071632688996764757160887288101203371236482647195190854100671514038124438214498521752416424947169244917866656927250060581298604845245794532293798558980583957161610755577631866004419374493042451788984978123058102180435757497771363058156405404700096774426394798461602875454442819243490638019432535417677558415012381670472700855334638483731817553100400177573925762598835894005032936847184856400703388446431125037530132823798867384370885742800535054642733626488054975138321755197885055191532040417703577423158400616052541384667980063746177494211583494587134952916587038430838090139648830175607234606645583893046546853036619654196256454180231489476149047917716587225509742167304602397379248634310320604464903806834071954998712227164615276239090757848698644224087921377529219254496575436220692058152324938779377553477057455662444180698627468614061440953928725023496169651310848846346358569212561001653438845974715957772206335637572135752774714319037731450733431764676817573066888500411044426210740802676051020814428545379570047554723507654907296656271276103363984162449047016877112774578816892678036076825464469918683593196168535458571474890320120100628987933651460488744806897905997440678156019354925215194230924189423296168884371181347826666327147293464467448891230706483975290728812124951183842305113180632523792544902573925583712054923877352553339931011474057578980565948193426555151794083571469571444941832349966148308933364276152836053497558505731288997544803386940987737300658865274601839016550548950745761843479330331370592324753659662539423377458470343466773281343538233298581135200167729761798904998958754577606664105344929479738932752651543672208222495459350055436672119450330532798666926720934987389982807590473749827651272787068588167810776577480981648773528787899177956166525289834806896603519057283353194301030064808713968441008927625564623611314939612816308281972300340417239979363765020342138689299648121902715093674385491960104734913258938722439350546998131438866490697368802718550145325076048155568117498571859985465604023693205797794957039954992818299732339751018009653394840555574296270450072756008523702007241460537632989859257672975163919071066734651109323294152352867245244635977111472640943010977503779652714009810295311183941921734525476970424076375284578059851570059883127866088846489958715796180938688125162620664520044068676195890762757261113559336550398383047389054734648742877626223675427125277689535687561984832163833802089729925336144040893682356086441913278300425643964667533949297370919378518445784242969982690784906393295147745031853337787423488107953880673035879395924136046859526067271172112251739571186671475882933156744836498269957534031334729559289519408816550685780863960508517125236764567670924903468564342271700598828781258234028362822110092304360901315060839316709998298917288811654026334428200139220493744548560009127307042313493737258879378022694479979265147407911057147037275845556647360321043574697545423349333089870030143886587896646122761775116486589433515005855960977465695821509713824546403262884720706635623010395276256246633999657766735410494042308686231637136917373112813229916582707401737724994208840834497762899038241259012564793901229964782751383217531469948940410116475821021745496035448300718670425616703017083013578763079017527204034483161765675223492172091937489115642037890335223723918269774369125047584410693934969625382937107255519731551940874401139572611731844492217722166208856304185558218747949043234294130688757037738271066617354261778715720324616498991633167258041671301339859948433942473704017390759508288661866292795662965353809145681847371057561944009172986283031630545997768248919258668340429297638115145621046249626499151401602992671606380575194727816251779095684549759474527850725754705015116816988902989491748520999521211668781058650502969175900843213098070803730580423403986189646573911505659422199183047122432814530413841253846341580417844390213508929782421533805179269825304023998975757808287688613304053969429928698037488093616807028925947878417555295298077710834367429998203409779302180970574679024255147296191120688656077513269955108965492992966578330012276690941286883244394599033507765427757399210527503945957051698736233355763124198618217136350420766686392806815338168193176590692457865124782076832406587348936235302681056055269184622869701585821961096370327693801340962544728223344283614840175076124449619254064679780700932335752801225423978654505037955952392563793776090129114718433612333107478626073466410934572837902324919841702209029798464813371670380737753025159863613575500631345590794597161045757417707706138633266896794676900542939041983066968895241551432112715834627744808827895438905152140977624845990600902471299700197297991894363428342986778892945929263759806911792239248333328234753975194503751165939828940194749827750638713702190687725912952026713201189551403580458853436395684708732255958213635274528620812564282349212501303035646388757003243296128682852038801577840522945001220372653784891614567438860740755141166704888602044822508227609223029177231436489496048651659152000390127780838374665106731565880555806209784925061026926552176617498719673468240708108624444434927779205730450278676731176091522478791137108654971691941723281346435543953899323796678216526911863054368247162603548141425291813696444495592920917216870897439285545363347769022566916338197772072384156921171115010231699974210246196003676740053694495123444550958825708075834202648548183578132866469027008862757233569512127640031375402024026872120902450994045131815102252575061586263813501609393784795792638915469719738687968624184468879984660951843118585999731061203618424905171243529732945942883028148021021286948711715173447099043266933047899732297902947175070195832194719596585663727244355389684082783917668706065611765490198762320232359599610165704751532852291465126869758879413112349650599894210089443981234420886576804720403917875206360743482502865963519270809076312241846187795571108648502377998981096990051179221652523881515001972092094225764491527025060127567419507412904851759153969280066810858332225053858853186851414947629250841373013929774468988592983474026635896301803111073259517240973933245705412841905894918746041099773767311191439750438042648158245540087795203084638421359850501070445924682234362916843784380868909681177255540116139169519328674621794968140550874249928078939914920791854890522419198701875009656635700685451989092464565964931410876102061259877866756907855035041236861313903437878672643347949157591267615761841725519819397203275040221035745180103194750486562576412298212156801797220690029803855233319857081129850867585540558333627858540414996799020950058378995930408575667650206186263316505301841420607009544778636533257997452822928933604679601123706819214393891553767000143030607966572128792345522396968477196731217551366203380001714186049303484088155800906688014191805147289285128278281297461485652076865701503002630229267679304740089767233406511671743679396179824167192981570210935530125502079979534113798588939000078917353990743972824923338893234401008239342927849226789050104417837038378809008360443181882085437404632568650399288456966561324184735620367130949965457805258324466851623877340933846775701674975117799293064672551556829760165361026184256599823593766852777127955633028774374996727846596323888044107953436781981010422230683720835516494967158636463314607889912317821715616522304563412855565777923765625917560317689015456940883348671775919461750198211995242928695178083456895591227111571424534958999025277642439714959336960840890350615643912735654010862278653828737630515220996243057967268366887054112350847239870915390123865434507936917333191917458620837815000926620782371601296188201948504392197570625938958280033969817575257699822269444816172363763960751045414863766822292289491287130514507480634117665824222991468850540076269367540913116539852179008756731344557443206690790409403842466953653619490809252202321332691522418740239851992031328891507341434273594269632763502581247959616536869896156718723824504867567367860452702594065170647031136438284839789442718536192538412080148084833231254993216926163881034127006311269995006388643412769573317598108795592020426503256800921898925615005379378511667837595196414573505149696920214586865565648670733736063748229137930889726928123990548344248242495327225453014058269313452367058244214071805361332729201540922605236395000979594083443381132647075077150915302892788594272280846579968816138384721596928864359482178789574530410600424911419588593971683759241980808095959509698358035869122410611621895450085972198126404948159753227742739539423339336634685497487665401671437935880322511686136417176106232184453760666324762901558506434749941684938551445532971342416670671101882428839691164464401295644993778002592941497283417464352621017700402677745246811764934610677266369377306964542988862457394339155077502880188131102068415454011019735312994719113429063294313579495881197021100692641488969535984727564364584116059157260049281743880642317325711677084006488169104173909811259470796827116744535151680737402502937106484221207816405387684093918695644975024537708297939516784543121380406606200909729495872711098262705881091087578363567128696039673840171249350940159059640443191139144389597489722247959171404554618471213030179993116539557939696348365512366775474147627263599409828669051047037108136385404562394892553487685838427627052497239804154547876832516894557843304965758789391051777877080929818174086596515783097221555132255317063203488504050544064984729338375915432021634702882939410048492127274304569779543501495829565017851906742183898665581522298732935182587191248732118593296656146343468782871333078142742643025908165822601400553537519351430280821027141629555159401618295600919504847111191493180005320133923448366264999029375436246686928915755415595735471872710462035084466172818873045471383995668004948244862252052838835842106737093792598826210363535921372943377288974317033139754868730372924961889886413252351373775294109553901134054549567918791464443697740367483034804693026178838349510127069563479159492034248690756226014609684937509143486413798110323146342883455842754591638102456943707752479751296094718977371748338033621292279566794207667451697786103357908495174935848277291512243428523553773402606054843787509977380925240409067261278108925919021427373187379559784401283667748140946329757163038703465661595899394324121097998683027534522090711110246116731411177520012904311339788876857272789118705313475451707835016377964109118519223301599516768195084674811785095720582958805309250532152819774199594832477816366947314805287651894236686934692153333287730010780754788595551233320158441927907451750620426878652262101983035644404978531997029513169730701892132447527381905794465940194755722890305473285720270104203959029944509580688611224990532852926405553276665172829184531692050380624625781952768146049504297752951710085992294577629564549276449645440230145660244683133440857698484107423625971053999340349240803295316845763426982761369901849276042701008031290064156586477195770209294781389629591086953602590587115847582173625117719584969481212239626861969019502334620152237442817051150788775696870811914016921527992941376160771586078070769037851329773671906589107535270584903558411192995002303158732472121392654750563612828136813581853188762666997398273238810302237430428362892083713573214215562989218962769868717233996889734221724905100892861381247560434494599961006559797266670684752375420963227565538740376706226390826971174461402209372474693294264006949133306132938027902082111184668079334050507094762843117127293167229325529928392444310510068965237781416879384012627017408442550302917310066078732256468947817879036555175195097400138449347030722056592244150621122704357852376526274152522225944165172851573699078317026693247807997418503317902407578358447901394026007567474006329540210763594841223259720409399333597301477705062898658596135246016886288337343213460104868386039436991874987240707501950396647282499052642385094984558902741581519762997122266727594555672587409146337395878654450118028124837563544415301892363359351541043701628731545251841390394387971843099106552014414262026766390136642367873937912221449694488973598256011438340530945670395183969410066127899722276021867899973631181826266481032108621861621843736956472093582400717533436102307094371671091329244337450893406142587655579957882587947848620315436927945496628936201765920909198837276534630997606333879998447645777185473928513186298615831704786420284338420240571812108639398094091713449285212860147394268363615296108982461221537565422207488973975521601396815873455404868854297390890604930486277478793996261344297220413037721382656882371060719558830606542688772788778135060050002485704906419989115513136192165141280644325729717465121787693314047594079654206898492856227469618591489793767227579159759259505949703318145612550502056135243825215905928952450662570971243810846379787947280237710498106598973180836589926530981204338708823234167929885076099373764453799540217218076863809171012961764252847863371549412639746553253917247617077465957256229716714449400810211294046789602980863536967243853672563764120093418427637779321206291288351571541383108349977076876470613289653301442377200594865295146732857486304880109711210952606453392800668205600555048354353933251758844636227316455283184683883391968999997637479605602585291361333829573959047278947813590264735741820925868330096166117942682478554391909008555201945466905220451158466019154559080752778229054662783004959869847127622112309639783690313425073201411208266474859049837899198865755403912839756386136216278551362435175105022087371581012913886249864086932352188971864435847093016515285916019264650247345824996471414662826386870596963851903842739926410479419882163783401614349176432302964812182606041566852161343725742413739244214769439083714806767076333429231478345471747702324804624565136367058035355368992851590423896142696641529145516190233791451422650764234859690563163444731836928431872890417993424956028263551777502903993333586535056131891463046708685282204831963506460569350361468995998166821590653390573145587252098325864477787891509232158899786836715735975896065845358694049828472945773960587781348797927086225984305035937207513172737359557667294247134468913158970440514694773583338193629292105705394725524768768757654784411544914941486312298824184297390595950659888116798671706053052596765301233767233629518241902372496411882371364135783424772465977624005669629989960822201557910423538244205413390006068915316277567400906321801124480376237400169940607858900434318323321141851611245636642108939124055259210814073209527802875534785635830270548539373883643226574213851036059027444906404303736011312047994497462625129960609962878411645112268834922672459126390460822706242896632078448083325495996138999326954858194317950053484331245387095087334789409692410674076273982582389019257686134911956577676517304372035815945369605170975319893178772696887214621393065340911758671762570810404025483147814276672555363190466879117030422059129717144100166733848484232696840582918329964335188361214900342893685508738858436356877733024249303340803134257134932397182539884761052562169613700290667617237699415261615921999031985042446205699156188111703043810862031619082328604582853872728087328693985648110077605684184410072820075594565783613396361566685632483130959340762290829327979779566261178629682833935122121066125210401940630601430025094208925070759397996253778702353441269367577358028909263712520414018846584489306898195605186900915829655376703471637574385214235200493213228464630508079687184370418312088635496787519362777202963984196936028637320046588833785469790691366413816872887927898754548132793681521409910856982920739134007022421281846720618457721499812836228172164047393071200679128123364748622528358969162416837312847970487292500784077901717964492072511752789004139048475278153145719558309339747521108989606379814622642921848383529696771847490700948425850838882587772858530909060107202274084486035301319620736901947458227737949370543733835262114960452132053343219131945583746234570573948597314365996217086110455018842909354849468589100236915599843036804168110574738369092161905141122573463273647874511596613412613570125346521560112967302751085097316172245843289031066146410027894621686755648161805870939518998196013984422712230382827446861313504574045091780917032650271305009921429231569258821354890894040624743216941407859142138857927408935066034205171262323873631046327233114317182210168318212432874628817637350264815332473913568675577724459557414891447914395429776739163217514013157542057228927555028440825460904500273890058910024006469379856515189047350584398930959332796514672943480943225341584309867459443201272763365786526498193389584199772873519209293113983555847587078106105625195977071708010410113665236392294223731600200254732325807355450796028015385854868337867894163051839752519489988070138989652246724541309484723699245188914713077959765830376470678315883279686462002937803819490719805483113053180094238071809913386224131531043399839977160110633729422890914702746947252093938866311280640745378660081552228010021506548827998261542785826299911551619165919722384946188934586022927691481124242016359645252395475958892204812228142456186749991149759014099078458645656184358022880540673426784279697398147159400030078928873893370827328521131136174135377906793539213838232203206894838157010328750615023711180448556283612727649809308632463490415982080877013315823366221249227565904750087080289652205627307041833704105715320204842698254277650040273397934478394373742893721975451337739254529630774938257274088722750289790946098388219258954984651712906751699729811911525247748592286346717633943107811210343873048536009591209668992777640461995600831856813001895389430898617159142924007627593418056501532235509047301137922592153229834037527192171172017371286850011146525710695617809936850437703954287856801662953895546965979154282391911036051227098675661512704102742000694805097969786631683144048676440505490242906848320171915153592187690279079463988761251095564133821833512125829617934070512808901460337905043233396207690184413616900570282109370398176989001170401532905996927787331020762227679356784349523805590087792060852871900797092617164899303098450124658205567062245468158865437083499084505958374331307914729376682923179678338069769221021213018819555948703936856367604860685643955779607669167389236698971840463925159770710688226460703185564700840878006242232310417368296247214969855732438820466094149465785037504721970611344697925176593207257237644305121843566345438721117520952908613409319265131288484158610912283735232603679486485013987627075011027261822900476281205877648370313273169498871411850647273206588567878671914153020221717720867101179015231025617336212294577545829871210047310808821553131617812800226314160050307561056072276946353175543934881219636762521127920898766723253160910988763793743327593710455377735916169171649916004507742387013446368320273641585146108964022815925266989425277126907250536069438415565759468376965031613503465725199148049378062021960442255388723458648716419866532101907853201070882408323684257840611075952632536896965030624966152026726032647071248686384452325846603801700602363856478671299212773560646977226048086017281763017234053582210827320050572585967311539562812383258434144296753122531743743635999372946938519966318861449662316921932285389157120936201403111259174830159151111830630254541185763513029628413115264659120093149454754953617462927349189823880813242682869130512736839044215063365823527786825887429343404208345312969977918238619670568055319407565486403157002980389549824853337528151750269358430226614260453089186921382198676751262267844837349292609520752717676817340220679552532613471995555780275521483265700110750976455887400954841900695619016915999024519766223051098408962232251240379469312924931437550772388508127713425874993230721325383152248503735569688250527520008483176099489652144970007209788994527222603664754543263059554985649531207563319018759579184651245074812142899903681608382401818708750959111127875236449925498316954718387155458485805186741026038702039826452645483008677091968474789735245624292559283026241745772418332377519609288986329269466783722343605891804625940922769923619611403546065255071496655011793603109921539015371497654311625197950926583736417229603000663502297453119749941662189505369357550461687662638980003497218693584172077259187399706973853273991729945733939529805727817693340139474679056525099664920762824854732140808996151563455080450064030357727172519846920147248268618384291573914390935553663109223075663840696869502425068450805810273023856027960704079305159136801278340823934029133274721850627306511596120631061364703454969861513794014253574472143130723978102071851487860553275279302760786670268534823594893697373063237825248399228662982738141970997386959660668433916850415156314528784408745454448369440002300698428984875687032602572509468189335873625077933905867218817123732454192376457917827594497640437216800144214999391067688145224380973719473023140995630603619722321243588216557737180633879706433875398593896729110746364988269419020677600930351896307839878101088571533487670864628895340104666184139830001238428437953487505756335266029004628197733731080137787846748199537175498696710268647804572389511966854585153582253360310249215385778690311489095791097714065924131068265816333924603579267061208578507136234143657419833482230585847064949500017740167813450285216646256569482840090015681490524049181278452927395123215208274583958697111849574764758160290450611851237969541060090239337242556154763728354292439318938961103896552647675933724704541195727531875166502583077404728926283670106747748677724535943188892867556384271210363528620689867236275424817266116546120935536284017134066996688127831593495228566192599982621992840633467030725490113890907691645057394470427790841631617589601195596772066569473478338924215468812774740836030094139987871836454736512736781158462003191437720465331784841015767786155614658649266071371236643841110191512670332154734693546371331668506121540420047373287505713027682745866489390634524452027559246777114040137711619876918607923393995874568609378514013008567837770957031787565330795031505546556629763224979594979075501432100946633931313199293910432196964616471118582251207061006090156033158742603100328211494371977091177336986272537877577925140923903983651799939516605635947860009744340740571287391755119189709660423520920216595188508677716924983313292476043126477099099934072064931904139244958610402389036004521300892014031312865434748762285369070242448133826995341212493365598851181349481417701615519092298111900251081215751223207791397783797870661785264657853848847470282729181155612566088030375383099677608215926973424457801918064854496749528808145490599595485270203283267301042593137856092739235407859430723279629320951057175032190573352245352684988072529001394222313483744866126074817662165528846929837051943141691575967618089491797938315245900424236889277265996979736612471908923413388344053666750377352512954134968650753634700837656615041476526384161094233431546653455718916040977335080201864039366675487879414513714338693821040156537020439267544482385320540470566942243105389602140321555313791858762408712146350672164230376540511240444796984238009550971600274181012802841438879953159882155834086752306074233495226220890717505648956120496096936268474432589351329724223508372945746771662491689922636248025797364967559139673424475407192778920418794768396840280303030878615177621364524643787306717074310299156323665165775264147717469719310567264642976536361034544107339552322229408345034240678175271137441958726845429245887052070433971238520701694847400139276068273396993750303837431744480319233960791208856537391763318128946701278135263246007039835840093127831189083273244290627699960972534895153565881111148472111796541405565395323942457202249453513166033656589957419036177646902751175391813989681949135766240410340940421675658992692252518705760967223356428473674099160268263631328483256177942313674248836533368330641915691487768014182119433618176332715603209148744743474917873670942945996672734619160110726781321817148519163115704237768042402371720742808283591010625941902345385468992368934524919204142927364943443120943146118500805422624840340376410057177891812184147061718056800540780319866800172911403927503601935146775478588683102821501375912702092583676030830665107135523208220722428955786672772742280219246898821343799455587784585366858799918722186634230476572505350441905281624053260632882413667048650833847162463164163595220900974677832158546895385527103136624503812979230306435751757458206297439902631232888339143027409196885996970486733259224490005448041822068507866970139042717649901931579076360312613106903407128555829193436505511175821947047084026532931257284205616184502818260792011043677545801643473595636145418445164249890300546800493016045140951483248778059968008285988815744146858524453071025518840429959058301431189554661571022510849594726706715840824788698286844452377797837161329583403212143838340454442027397324213017832750139903068321742592987359665704455112815631564373577998303492814516471783387064081052896236716774298757487068864684121017106853768843631339941798300741563324828156330330978658065015448254845653684536876521828884642334744371277453525518588122420053383012904027710483267484814904416158885252351360432397586637237292090036154463298094089251840765978009291229333450653846223412202643757475783813042175434694026627998784219424441745146376613738429181575524275622600382920231376781226440314149772910335086437194312376680600269620826157090388564766267884003046890098963952876722064815557058659750065229449891057366981947745833143317186484824262138805498959256683081414631587254616549881644487040330271705413965350187397835038974940976159155266783721148611694992450879856312949766193388275308151475089732751590875669003315582731807150786095010932485421669611061445104666209911917650870834677225371989804504506949666887882228161530914561338142431003951480420370763362354150423468077923036389152622973356133056190242562034540645428319849851018854028244234156697179012034083718334543495369713321081270220318275113361871741034400464602739329927281996804897484287502330961008948623518262457550267562413582706877810097906646697342499888575004213776241164685678535427687604920963472121796090299252995106318193082670173196612786930062942734333746141953092787645078049020483898225849718515616979522300882917919338202380363247571235138270820898530881793311338750096673845324902894971334428716475388087855420919002701632323353448535424534477259525846984143575902464010232161469287082076993441514942203586337529096426326477347845845824907979944221881202692288495787300194343208004359727559980905852317356394307817812268431879305664518633045387973048035073588784303514874231456942838601582564908004601762797106401793195538871717452426099986710916756106556957389492332598556359215183640097022262562040048801248703397845328070233260169300951168839125626141777193751919759096640582743264152475476413030547153987923494031524795665634447090090431292185313153403940659570685297790004360787119718486653420007527633110637105309577847157099874383801835239589697032287399042834056146473318087450385875202620629877355354944861212531765472054767470294369147338681908351622582331470157833705048940932299027229408835916053139445873957551812960003111368692285184960322387894552302625457144590627909168233091499261877095965112173051171550980215808989847993154163834559048572855667186368310350089004327417153492329836175888075500005361400175242478070027479106840596419510703177147302076845376927812264377329285743060437372488455126228713775539534068463668668521180155405870604214497973454741663428115989268636231945653602443283034564284093760273697529002144932462558612179639100980024376583266743475874699816915941538477974261027404316549415120177906773222868733094891842499306674882989839562913707223561969007654155571781494757233045502039217886401256489163156824036648991588373578287306665060753368454063911696504741158407918004975351537769654693338074822026803971666450056451514566774659743883205627225469018716007106677686071859665024661720776357125054996549226168562209115572807001402193708784284660415159272971028913879559489315397359645336435892563903606912712545161712865351762223003567499117807493413490738816189523297550198686759876857167283368086126762057097911336301007971149090909413322041810406254041952732793084994088723784473658705019104932405422439973875116383563101052918131463220086480200846450182052608213136995798298543746394120748882359024207581584113807568773356998050127727400273967752546780744281501270755563507546040446547368657478681532506800152734689449629095892930117009262245382929689286798135219930546989401605914112421291481786584571694898750232243919364940144293421847321465471839140144886982262548798312086878899490648433154133444603793508831936461167388649689639738999780742660386035626760884191237601094910946789558367415505649386335841509143577298595758828173866910888965268734492360098897325667315429224257749866340955019309296810349415846987026150494397972092221409073638268681642410032272301544425605326044977830605563647769020783688699875971171790723066147848247433816494039578976941885922719448492300785954049856375448045646002014761314035736420646097894661676584663614410504890868567765017573000270460196623574943134444341548905523650617336123234893146127628035638262938861269881785256753669949550651110968570817897025719567718020147129041046722534750485852834113117661267065379111364970030773829577840289079378230303604134461186872889159203088125659447713565543507002228347317122417297887846349867353308053815962568896839083243399378317974470413072878129108935660533115235561561475872196356957158788943185974274010328891996399491983644812317616411821344356903183138781998029801525966272187388715307698915391585610883333059284708645170566256585988776984161951338806245686523718561556740110934620048124574885918660143228305070836514710315752553007789701448833926635124796982440805522049619804713636971830393281684619672304730788702498424076889699835753895656372339664462973245612775209729242155381465082785268617010919570426196926036808100320581165974055207194085011478165820345705263365318305693014691340934873903310085137880867233870232681474599966194319638694484470279764422317673636030962965139257813593725065824302459403712745643870902724487028543897964440033464934549032948060833363022005261540358291341139819403954443390763591072663475101221972235652022913034971350579038881591959433396987821307820122162289901382661928516945466088003759923641383221956223670212694181569758125947797465815541248840009143874916919564916780320623655752496182547524828021790162073175894924697907038933783908739904759989245279334233235406796427196901976914244079513939964341567017243127399838912284546677959878850255780078313278330286661002619863970369822609015420170993876842850597943702083519025067431690105834154656785173224134141714255826520090260274571113626405552535944703672899411487085400819275776519739630128527012977106723022449800290018075217160380261460754908208916362652685435685606772397103633525811291334476757057980203602873116862396562107485640519047144667537741413913311681705466756379932128796338427417878340195281434690805329317288673578362552716924667652782233428324700386030068081861353678130297126566435710662300484988804843860667473457368662645370592832038129095694022028551929561032997633775690591511665704470510947479424026485345268993044907427608554452981120516184229690995657199018179097216251630606396279612687690986756142526851526724711162423771353988078920808321864836371118550422153787201907850582834668200153240146959514298124125860252909634960657316534549929169670335375121601771330559668434669908009626964638051718497106863625560648658388379944142648049404305652323154928451911589719440852645323542718930247452323731712779655905630776194438618530783735253509474888132540063050214115712111384792043601100256701421686012405722637820297602061087396316281820756858987268784681682686972506620071030187095593131880481215176115022267623731984561802943320866496234242694933697885668705270993353805455542221416421200137149945947877357409270846806422201243633732636733442083389979213235313101963174864898315527120843983381302941456636565496344747993036587312688117170252734900884113157755406681073908200337055606576713537919369910949146201064129510351372356581375008649225287459397250436562467825861210359178409158232130688226724943755117741860681566760447492915981071678821749516073520113204454514455228909316770047129675812373491500534059208252900443824508070465170913611934852569338092799631646072434787511233993079380304715976433182001815891373351858435055565602622240417060705548349240974598460397352815384201191425736806129895670717535312006945904336528801869242291844620566946558539657023169623280019726417337839683991551913719416646599693607993219609481749283302263277750830561076720370436065114449300746349528114053375409585735324140298712973514215359089520096030868643620561956008710004528662073937408809969795994796525271832360398543861182539634445330408344232090759559698334276829252587723630106875167562195374104608087849712330629444383538103191529906637384491296286118896777679230106224180944008111502903578719737021902195220575133326598403620980478819274675921516520276838696749263825652251937157376855773709006685301410751570350217286001111428922384215103080617298053122236744750137907732459877411004328235874500807868790819106423341898920823608352210792819574147516220629253395743114506473987445713716646747657044839794068952515727819824915309925605585767772638436980972240203374376448411167766427122040908970321412695123575671651841292534310903671925555585825340546785037829477830883010188091010890107260991546127573779161534476198540345570518027073404131179725136312211730737511370114334277003616734827178445351330971504846590250333327699869405934767551845728927533526249700620179650203054869935540761368083969419677953261668738124415510007700295907929884083836825809665763002464310722522659260265592659745384998795384713715442636018393438869440427874082959049597820195718641660950609877312952015425539238508546946730756517475717657837196212290766392599500636360456622502456761545670504861894070470327510765235488167791625049310023881845389181625685397517851674800583640059378217010065964471267238470422859146450768197887465900024877314366865080679504730647887766319637249081952468461588269398149716351933219895814841386741056888890213593439298641755058200995733671407858941384060532281028916197446543979298866028094569317768120389537030751841415902829774912237420842689207042174674543091605088731620047870674628118565780650952120629137237056037779352210876191517379753137608017447201031365024255295830524717362217265149865237129754352534005305747166781700023578932165844931455763522037305282798601528721975630089709295774150198421813508922630447965056552741614988730871203074140245853287363622323063607579412402904108640600192297219612550309487399169174204720197050819996839103257252948584129681997911242624543483025429117789733010393546993519458818553614177350087546545373381688078743359615150205556786573315665010321523486171042216992422544574463668888219693139256531962013684192642616329357356524667729267421305723565291842725016495352820746954000399585494317303878548084419318159008746927452827514455937693071091656501303626906428272243273205930208904768974595050935460835936394471489485773094377655288987339346003295492302195108023249097266023367408971445731684352352230569086917753435575317163389550390596087345469074972567843567932672869826322688775037752702101157953107309774502759123449463992852139838291626468562436097591668205705744404190162588222924256632337063751972112176088135611381173674780891825800255549679581383315016509650440869310765261633792711936135089345269815293331499862274239083375178555215072211237479667649804882461301530198971886882249836309292020328635873448189762170886851946812142530470768139051236661305581349862558022695256017826609186225726068108957130250091772890167855036788420267218386706506165938415504248145721979417750265675002803349527315720079043761944149267013952045632047348688219553286794447672609002640501757890079438088295084600697791086884321627447093157874743289829523761659241102153922812497498117684895381539593705665512191486368687432773593541992228360469559840259960214624416702218039896738651478633052351404207787697642234236337354587804445180872154159183958088872609123781828027041413931897098725735917834894131630523271559043172020853763021637821512094242556467244231612369215906548887066051069947584575691712493732081755125497446511712514027502529554461782036519345098761151868655607039060430673289483101443102193769370668944083835500951394497674134781034976209999031166860284577100746075208263385486633883485206420720656313088360637388539614916752888833624225743607017393009307261086151915076518075883060369161296656947974492495873697743585410208564558923641774065223167018625901889297696402587469439889872454897014941601272337834183185485527238980017528016546743597267781258102806971717745263572400691922390954200059326797412316993215464459631803235976556816872631062368738221261043902282846610895733131665730039208011582500155092373307770802354884124342140078617919990493240490649700062251193552461112061281663367820319444084610762192868513238732280751780513876750902883712356528180906971271698028227115522669063845552854317345744419475342702149486457185178088133883788987003736919661469020812410064295498004970952595432895044390447499007653976585047574890568945435939861914638731582131694712904184193791324201554422255398821035806956046438754606092894828464047001020653951242942989974508842099119786619248498321921782448299909062957440303475256007724322746998052284744245313043347975061908541647540147197365946632875577111647434923228816871437185830927911702429569833487240531672061435641340327696482470166864316640353274617422844985698842092868347093359165359176892723719164652054183063164063140675724235188067361503631017431428612069904788476881482654324092081399338603664572711349267866338762018309372102885255008220830348284161072734208069328024707040501107894496785645898326563858139060216074227780288466281347364081078703556418580476047071547494864568580306979070967692829766677172235479385812538191479815701849663858445419850234288115919005803460776653518941523142034210363024172360461094458694158356488019790703958004499923656073904898451855784679341600728201422945014190386545322756095214756457554809127379365348358828250546677605806752178060867246842948999141816244882614757083787106234902685475807476890411741602436802967039404699744248010607571379016323864661550124519941276447809692669257174824062664605819448227735514318542601018205043796307132304438975835327330900481331329812804712489905282028581281669468997667939775112586564438437441479966360819098220769225600743916140840567569073853510169810603479296340307785839370311883995381175268488950250034241804170928400866629098474939705059346119469046224764578764106996748835219944071657174702608783405605339504431974447254137819082539119132052978708898719484329562618460349926533920785729674114977100951794348342540492418059956425810279504010487260458368208034958879407608484869809560317002838128450058727651264259277745189676657238546004631292611613929258670439678331715290224971977279300494090500352541707401209117505201368359579725223154607272402522794250785306321021562388460805669162449407980091753093107270759259973617649297820947611403686122328252949081937810995918225834929759436593157532077334047869302223357411806720900912986853513538245237538777728458943062958299122664353924736002742820679311020155724126411462282816261110185707064906084984557648672586920591679652755038793453399508936985864662774168558311409353187108556298480135101187349611090000226457297222444306387492263629759830656701885918601370427615544288455307826457380547939132848609861197545598633663243914673869011156858863943659947405001407596802031971776422177988627277990237415386785206593223723615003072153002769374883320556540025978966338968862019604216900805569763322284200683529666895923649360085215221712344783232601845306150540214141414048034637662053268383150227085805505459452507020898971523698118163722630737346022873586284082829980765586296160812232575854108043264167799891438597539540239883955587160625150859059166989752772709127739630411490797630559790505551434872411828367570564896742674292114988637408235131943221710435363223391100649034169071583404369850863149882456446451018610170518310962217425666818292297968529758103355937657037493151672512662258580508005429174117926732430128794693783554614137552058881683304486220202670869444648363444986124461606589963796801060242892786315864503435852188441706532585028215348848107013441390542848093033338821940159218534227845685632413622289435339392979584495639662909381782417170921533351723672105135924418280834432813506087986405823128742575829197632800812185566775782867164008917404768780208908659340283001434970724906637750106929064687765365854007012273177874824975441875036695471023799845571399894656416963372610179284119599156528595823555522082606953613074599031301614985797321450288627672383952850417000190171292864355064150990209450163305110199144464385716262244505471037498967166053744812788014499762039634058156738209221553818703393794281349798098130953101987863934066683977711186908979133259079674405531070938364186788293317590054381480584371517239534677360070180377634580369412661206124318945200363920959478237371870530580375924341884915747687242101282129799049409362102478537161039305736510923239567321122019085025110286673023311502135194223197115222796594324369836976019021062827570534181780347924914376777562591398363756176786841512673419044138758158589907356486762037378941851771851774573598302076991048994452674444812812160664049416164717781509662795609988615950257286502128482995221606211561126729649961691127429958830868440962553054439852130963518478064328434116673832561480802797570437440909864635636046116258634860446276295202001588282399638259647647216967794650977162465438050461018490178033395042797143366225616120449684698620680678721040830759012355764738203614410005062363373155477852665754404350919167431606092323708089008233373683586185846064641828584391675851672678454521680472790087308788020948353369043312862210321842054533596762039073157993957196642795768278230763116309231720192124929339172814974986730333250801487470933814356862746057447295403406237836953647541879880318826367973827935619216596313663866398141663307928582249513156264943679469126125427288994195835470936808638915216974402184363892273512737142471314884168832226472449372695908690048115806475309465479235195947723893078575173838593520458604353345075678601783792251687577821489373265820131966673742155015345564508953149297319269855969087380848952292093162419419579549635444067056703446608423145297865949517818181057408517221554476226340358941008864154707188552217366183893901463978036438340167214491936402406879797258727007684510219896928406944765450848792530347825335820854505189249827276858498446880197139904256669434478148606474879875669343343308669594559616437935096995771303165671451244687561905822118446684947428819997324586486306032695435619212696062281818328441717431573095927473338631402056053498285530016595807558586154039150465144679785251240771541739010199818220211666457220223650759816414825221199338509330807262780350931661330790261863640402001185205095713741971568926329870252295883797944288004199409938713979368349287879537629056309123751482959033160076001921187801017792177831249790189440836257896567989542049435207598239675604660976187844573085854584150353223432454943703269612143844959712448142263655814354246268750766667027869482511591627198269572126074125956323526319674198846875713399178684401263713752417304605116874619692315842521085768369661242850536598269728626026340133377328678870964467716517836518272632332592696013974299241110028562643948291615204036414311977634622246749787594898624071105910902659353485642571637844921543120686827028509106272695084904523628611620727788426563191932830030460467536816289022744080580267653211221825201142902930631319670520476891480958839289124379879233553770868265993163833819740831622463885404117809455258828886928847183837812876187756043045957776898382529517250617547541167828131035707731595587587172314915371256448557687674939627955303312811624641944037017650332572539355157848822618118666965055790546485949936485233535258283561419409808986527395457626275760387098305553522504998565757554781073652790082964473517435100359002316007616333983829702522943621597477975519127288333237658729277290806701493554433030498162419764515455114541865106859444724878111100592870769693703883407307977687363536854418590949468167697103390031128435203657882707956988379583493474199985523370569303978002548545926655776226181914090457727223775474976431287108319602500622962640890164092330670056516010643950971655411949718335116112283315703452686361007029474090896568253713042511505190459451249261475657609852188178730759036450134231455315425580965034472978708561161225665858199051162089865603929242391582434179546119328846357416368382217483769203200476401089902589970777386152027450533643909004609784138041697694467022059875562596463409706713228402420653934908304344036210394239510497785536604383063540600122947485755929552478704233137629379491961707213458635837292705363194690279548108919933321051097912089373444281812217155552017653989920943908391887050602735337674601787338944270655902788925476770978307542137428176345512020528737121824479413024823335720621069496488120962329142374410299441292446411667940763411228066239701473755641751313424296124312528323575785536494948059279828058354363077163702027788344838254767166215086811243832253829666429356934215871140480125662300098531581075884226534955890998506375522439929546834865815601768295066616928662376800366573375610893539945860005268672813272501647139162006927600679256296569482928180020142394635505444426460723542270315841746265810830646532596885124147688091980882331667768014666137608001871277023857635317234399765610666508581456532686474000263071401219486937755181404672938236124525984820011747367747169394989672258749235835980738650131354340923896271379500540010266198860052158042258403051739499012238121650345341508314808578389284511669781222460585268572628900481821581315375386853332386156323299549219254669104185579975255131439925446667321545066102687036048084310959903754258089961598811054751723465857375725904406688578037034509612570039337997012343496926148665494168037087941022083078437504379000843515128457217673729760501928681169910910177970877159026720810534037370825496701018435754140497759641825300314026510456759599482656310430021983415145746980376785150661015856232482398993995480881855734429864645490863334692192648285747104889259144337261898504005246350266839824546706348261857931432014177948004285473170181272278167851822359014853398830615982547580486709424881210147722760033523673312991940375626779432822007494822710359187917534157584065858424298819340454617589777434736681502681200826706314716339248679982128644198678681648392127515473260494653568078525557384695920817459612836888206416032658799827142811452209494115699311405277658746596239888364365667682419731889925674163282827869093792189458493646108049944241524913996560621149317101372347997469782752038093789777218217895841866362763221923849805342748638601300974631957856836132823309600244322325150572821211590854936657618170290717168491203455509602419076395141196403451636844094861244940603924899061974131183553263555823918560508515078134435671361485113005459137892561115718291390355431911207194347939765905629233388170561674057165095312339996802553082650304584249925718661455189905109220073824132146278759275537215496064184567230024342026845720060584996601153605639244290918318670884150472465100324171068765008620313757582197127190196937780756901705674177780655219170360595597508832253456668660420132819876143272593733541921140157912042210235442263655289280203672600625163699898483286493772757949650429972748496910913873886345350535469888966053517236908558871638980662053357949571851175077024560866389900506070037322331900809672461304440553359217886373704168692687345854311040907557918685540623116736041364216480703942050487473585223138234061391323636465769737608111851401325628574853137346591412860463153065673021490741357727212758095196883346391331326293200725575176543041125645049286431177856401783378836320185193094824014489281577920039576803910593634605267268240591986171057317906039878286465526636104464310994114616493718155883889419838242993332662374800234967185100057162112592396043681902516521082301686995944512872889067551480433337112284629801215511754963198674165203055756678441313598849680150543352960974974624475154871696461854363527475832156570110990695849203173000031190171641336898287689197068941304109586177849892252622743644215846567581953656554349028390703822269170891506938856540647404193120814135390329046613393956574504089317255330789750673420289520247402727822029267188821063134580657162338920405605987461636106439507342350608823241804610701690875164823001589729085358843779973264895849677595752000625264670440247611137174447115442812331669263035997832480935925932134630952398055093827672028703878145303135928126119880648117424847731556106231298063758791500838442012710528432522247615735481939726599354094308141287629447255143395173347641745938203950273096533352920774928475009488661573506301542218275259119091059413449580213374599774858864955696486530645855515654544618612039993932799852341595634441537353790090668571162601691402283992996412518388339840481121717513917871398388446009905007990772097700994332462966679798560807358365978616386986645980920064382132986327041511116714770061970468803096578125719970848344831579771642955740519827855357713493437621850963239799777022384126915424316913560142135131549558506518470293228763021348613022960986504514490555875669363512196043825802088519281886792424706154163627938795785221104500369398606524721653709175675131751962410138339403153781024211744953902323021846249366944715421470886999096181469579284035111400624366745287055223352277083723556539574677677922596852018678390168394484239716981388973018085124006607744962659987805314864513874668970327101992404791230444251648555165098092585519231813024245893008637108995516715742021516157806907391379752898403007505291347644822630377894681599673302522305430930641680765556476067307079248926517995667658981656342486201380490654533164132578797929751981573348650758299561000686520163835368465562883178231694078077645529351198739646662775690905112335802132266688132115988480900358591989694869698517681015453962476921948579125951974142374304036538226517729339778374156743099579231533872093941056397197715087431569903334008649535164503076463074424277994815162677254445542566239797556504166466136213621659678930036315361680380626879062670715812408296393783043385071915084707827772806828047810605125461797524103658182544617139575937547599697335890921396440308756095295501973538256148652772058742139461007801275111872825933897206593335995042263001357999230225032886832411771387847026747527815671028089855354904966219787083257709019763532500629790900398937577259974670558884304696834024669419827965908088428928336739131112610730945899048666922739500263273077938266150853340322143025481864615995731954676304871377221695307991651335967183218916789126052863662832894613127739398489038028827454967791578120533551632500874697534694673726691478063344104639794944183462126522935359059703111155172548104604284931102352436624945156982666375387673849353215230201240190084056516445656003156059260854570285325371696550818253001205481098486812433890363951973884059779671723434080207258108355045583799700893702544540024805599667792206616996662539656626921498344175993553552478801625141971274176809158810480516057619661739607152969280155614312682766274440608689096005808406998845757945824844339984537160069395772556288262034870448515917098338457269131215559532168159880003549699069450988244214122272603635119128712462725390549148282026782200864896129500617851456774838803857207907082187384089153856908572771296868598660993179630826421393496541791021683307480113618550084975263709288982960931524611231236970672911916919823993485407861296533911469836418077663390760154417157752563795756441355140859533910571291013286524483081300461345647714074864255279473366390721252260604621771872504444711479320345555710388415821809322214216901325491583774851822981336132093030676836323211331929660633790608754832549186263897389072583062168695005271688806380392527000086799087099658755355820836890954888662546004489029643772251691759953494216971720123007053674483921164418781030465086130761072065231609651657779628194407172149065951026069758892300211845181448348460148392668536897713839110447870857708940196011355441399313386412716499559840067071722089835589872994634922602755450876652139176725056984466557584042821236620986055221540918453162633727873349004724662124933409275932381853569476491999902901047215467315133057846686726295347544862907650978167288467694780919465482908135531258612729889082330585873999692215197633493953735989469123901348673646042516962820171923966436968763137046712397531754335099853644468393704151122874454362166252838368158435788310006385498379432690297531800227675402698513396551021073920153763805099609081892397066530042096814601124279705327453089115297835023160437277763628947451044445010949756514938432711207154367751524524409914857047780008705476810538504600116709350018427300985339186436780146176003132583321394047151799734590204131491292791136175134153503702307011906844552094174656305101300096994559249163923855669459196170083204791429894150378973875683944479280900395182409002876809966180558839659959185729245640322388408233228946556768337480021911256727850937548160997360351631810225995012756075875830334783072706225103714572618803262324505794326682446890928956101193518080947813220227325562305686477212347914983898421884375232561205099594638061034645239753381699176745066404749542933336126467383753298708385320356475658540972805762247382104130401047378354946032046915532934449861901836172310330412513596671038497944628561945981419060451300028911701650813168065193052859577826482374147173040286249356772624165339628048915610983165006585642067717345393855222767489421899578858228132690059550046628033953412736001618451777463919588479895109633959790447034331762903266301470821417171688973405192279794689445903562983904006846645995306265849665307088957191472332477191030820903153953662201215796807906813494988689478253514636745744998029386304187112113236618886176418363544088464363565277671973040823709259672035468302491251596460623820154170524946172436528257254994527920209031956550802571817149500940338891363468162646587676303224919605534475513085592232358357366498804331715329724673208586068080851163171465241442250730324863588891037332356298106169846274631413884211027300228603566950169264036266679694505616778651826012574315752674103580945890141504953930812670463485605455289922232011925354593967983949784110054008382098636649778610675446595058347528700198862765260523077954662619212740840144479517322604628034707399715285150568689326321215099121759316533386192626000978787785780541625755040491955941409158560767588289805393210537977237048626464661046651631550144471469587716868177950176875648483431442725853263902704379785050329110620727746674170280697466895560752842983594257691367741624954409778618627361252088164306631040148169577924929394233517441632165135552120605831809977195934507809702911786598423499227995416980851467498165378834848861149614131182668840247720982933694172396629400699921139399451790237224691495916676649410291293913184197008986340123789053172569194804451008729454360308899677550955451744916229409712733423776826000035721071892330552888372866029533183217347036362017864473600495824914275454797514121126685482841986421242971885773460327711503371909436017918408700045540611020464274631840004503861947619652212335994433775111315591448057598093448039998785711563760229089751496060588019669058037347896123345191898680268194632068899242107636955392936086252541172922018101762235430429839537688583653167083046955567978202859734831620810443095684017576936868181987705216077246600332691654951038016117726574261381762292826603278207730593062954886416167255134580048815596482880243196740929433809054379349911287445715024541485361157158249508977479137369053978313987723164223373640750913417530879037567007754862784843468921046692329622512718006272758226936651449441849595264957578644190702740954651111398292108671892028556467335278962646681869546842527684089862047123723010473074893332746082080006501082947773324947735956588670228108929621956680920395881647843389391808754040502762443088086800030317577181792744959355527840363704938462547184664630936077478204367421979029976741532617796044604305645698473616241302487203042736611140989640508057557947515930316507701705672878162834267456143306958256690449802124734506441276972453409485406403694510603219030310386934966666963209978085561647828452865065965606446363921623005090382030011130501811672887993631811446398550497761033375969692249188882357764600685589523833026799342825455564545730216326802377241149748442582607257208814444395388251789109413073626929411928539051367002179707413064122894167043946058325385290468688422191598209626603099988300122352506552100318033416544910747490528418360240143215722771121995233012197722251459956591635512686729751493941699883200533690267846256354098589163687140303598546882442226831613216127599981130896394777719714347846562868581101973848041141497866317688826011350086503400223153957975595896781283173370467604865249439552994713011702685296825618089133415129183334208714619388147394092998984535211540975470990609084339588036843739129310954444165873599836352602185583010573036017605960907103793125730532327288357775177176999130427710816308755105089718317429451569430647416138181274806102172489356355398294446655668700234131127749875377512550397206755431644650636087672563509244510280607198447566885479160663909483309715238124990896949222030843071049253543875293764852119204114513739415394676727223907442536204955171656762563634837485855219468947740618982570743139040757200288837375998807163027862091414342150690372933132009771607638024710216549357583206843808222428033923137290713627603489651299224623260235984238236174069351275487087702769143035012068854875328742494242668682706906109336282716103141885277226215252969992311527729855442213588398786561131209891980785580192556212210718362852281465169429497988964317362030404347576058876060099652862589633419022796769553239135215229345640520840960577894859148727875566588453600159078816863623817649605956244574280348364995316908394641059818211222877102240272732129440057855258172031846984235755560427331102623453884773391889338990013797917122981582573670227981751686921462728868649811745492348451414285932399524835812553562161103001664997101227896991935408825815303559949431982487268798002804807982007842544798481855159092329932512567483470692512641281530481887136080990212507859336094129661227576135316469583846477016184954022628940624709990747829921235807232539162871848047181952124406924808970725128937634110221609334891998009453061781955318035773697050843192787939993183356890627288659829832857242349129279594294256569644225883473932155870674409947961807580225342432886757974513119591152483501901835383876044839906895169904598556137256516670850018801857680718054851128973873876227457904854400866961395587882385905171738453823937229008485464127474925182421344435623178708358064365975637304391565146426804025736150783156579962176792892281252708741080108390492938895627015867324828433637066712401083094587910095757607137352010289105678525405743107157071133348093525524770645194155207684273749235120773779799917574827076748362824478827129639662376869194747992704590882470064761329822832559153573886702435430899527429625305282636678940144148162262355509534764426169342769023190871157556939793969003132899222540103899453445338967181045835336535002990639208060045820908557953534180772089149858220688643794372586674957756865705769087908674316345092336033159391309802522155501240336339088120474808185890178006489649101911657064086663847056226737025051928988404415919140912367169336507398539071424527548726303761418791535033978335163556070121476050425422237308638398970373495463418232630624262667072702288138351598017340188767836935431260322465452474085883167219087915584192906372187484406604756599835644662096449017900022013194661174925399672072130016841973256597967579104253559685103603311547267105279766343770934630318216902005957826245302725944822954390592849952239900728944887429694665369445706284921875393519665973833602533580232621133597477627253306181012730159499517866538862000843441927517259213479027683587181173724604799192449623542866245619396815077545250503534674934374120677020099267778624004548076019238761581134569417886816583291086698155984109437145934232181187071138510382601620479716134733060825329469970530192406482893345589233225089046899155731610935140160848823515320732453449170093251891409550195756675653647223564733612196629612635452280639078655509805739205022874693307013714871357013627502062275349686333176679125071977059410415032791304692862452608798723683291557911407943212246889022130128036072761449317799552597694884003883856538420072248988017866136241025908759328125586181000022456065037654066661661246955169313712007755593469900157861123317794471949356335757198729717931409554567148881848210141165335280795955027675453978127075478351537522222886734031038513719180424017635055688464479041670517001925880313240779099808018668849947741488792425130401285214491465511411895631385201777894611880437978900616721935637156078153751624748879236894207290871723810470253285456224151293965527638079244417237831688870631699367011788266388620259623555655021699876935843271647927184663707303747635324522226277997278671951500513173670579209369756250697617061070477969091200786778181213325124686249230590059045613177787537463653257757236274288392022447088855065984598509343109958592865229279322182746290093235194540233155864994609552365506276962459545496521395212052678826013399792833572319123784192890226071372728600712849428655940056322669033367358527116535384604117060656627309150897710749902051846799339537772112304227850956538426981281692534200369938592910972259320279022036724074080900093841552895919650169767998297198823231996124762469595529963753902977213260192740410353296480450962907377255812938327188472388319181153976395280654759800093845480815189895785391656803882411316936230843671413886011261325040349835702203089486492577791644262159554838224572986255590950947948620044719871992439592772864016418749950412667569412013871318083601337452321365204470241597773890729445183648952772493683589246033227452948090916842846386710825373309469500202712941608051513830560334517541170389707705842058558235576059929669409096161842941854586695326154904376655357825632466943280727828242071749897183933009252868824222684340560436529322845594813719750095234218832810600334929947956728402443944875317771122622311788280540410498602098522008299500211187356688088213088995811060611745944106659331060664935867564156421222507569871052137019425791314479575777630156281422426420228637058153409372090886227503075067380904385327943051540201572664316132867565790870970080378358159351885069338162352669303966246829712957131518100289184967362537201390660037665205522078168009275503530514243314155837459473205465693315960886742454769696382163985749450939331046577719207629659953151595844182115969475905104312576565612738730822590164198330178307599252974646603598818888417393316338121673971595997539215930982241333297283587886721932450322720339897009213109638778175991227168004083318479981608855621025540646142259085992032207556125028266188625820785436281725192506629761238508704102348415618837219252861903402215084206323623892036099130550105734228643098704138846625327639017417068550051292428367151503015909130143041143933657470961588514317062551316408456831654725684119868318733266151356953615564494919517175432864468926922820005579707130827713633709647849058893383856316623691738749819467046408262147927939752582437977857692258408160479765042521601082481812694130216875854972694346870539566516074432872176454882588063465835173632404367824364195774346316259147994703570391237231115693436964849350028595047403873320156000185817489891454514858347162923515417420700000520715939966948208376529859942555898146352925894655035251193004029806623117861259084796591573167481226089278994949521971358491688614882048696808193778559658804793430218459909698245027947012670042544328043718744307325343626128356775349415128734256516171048933288363120704791103762762415312606730691450559220629378415557458764781160391760951237462520121376437250355381622769730816538609973421043069670845947876281046749958217511108447801948579000851558386187632879321204043574621873791960993165603039065331224755209476691019997741506793901622959798669977443386961738508589799010675547718155989049881238393161535004458378703928163039114409882692646764271376192699000407661395799346012871103698646246577817187435885439885501576389662508536720321689897422427636219516671991585904321696539517092846203571003491860692213612834234322532461608663319252387906788955582643960531226203724626055295909023808632118576115947602338518557166330752598833481360455077021656697711296956393440979750676912917170761056961990280987233191103885086737784504900800337988410763678914403086011016516911664910481624284259592570646046518064114405543548296671083241397406646312992992204764879958701326583022808081183373128532025313120518575430518988116095162008316184882522339686875268606445954566199510351400904125543803746612142377646167270963953288648550743287178462651507371701850013513149368189018998696314834975162732151909185289486716185568302173193233537046252181110812241555915845234717929074943256773167847518386964336207923091825825655881155940642439685899675866407455857560629125685781292754337975483413038930785845736604256824394913021781224231588268146690012316961434338517200607535148462203480287225088649092809951020518452008058128317158519824094204161043773358743195968448627386495058733645746885772459193204555266613050448123439313205218431360957826343992382422488656756181338145758387029616455468502861755234484979090462680863103846815677581010891523921546624637223528029689670653373568266638752835730454103066745427971310533121671895534052216086912142848341805507535415742826447685771944028742668317140179288377064345886385162093570888578771081901859004658127820448565236407219206671210030723160438492901837879040576088834105771829071837879480178832277807532410773578510044526068313926737523276155685639088690821579998416378782938521070554636719998044214459549798231316682059302936175422135038950570347343824642111208328740485069398150426089405535622029989149425638637979155789350112130227676608561701182293700110587408879681115029186874521406559861450378367433838663355063148421342285958216328147530931866859226438390781772398786254817393303944271912312870959157410419658475694202676624199608855474107096619178664445205162051491855552176301578987619412018790908963665253503489553958209069409315550398611545717797289288401223527012267139301124987716805712382894198074294944305474603653461454356608768519076972537958415003062877348097721206447456693602940555502374035366043286928532103265444485081357146966767847586763920670312847199482036697083053995352140014509853996186615533079643815642721339125792867846051682577903740311367889679252789854121046322263154696897991396895811165205288676774739028998831883589611202377809162047766319681373662928858557716869954493774943773352220164141593651049309261955236395657021981089930272739185460422069446132750975243697253034433542174026879409579365350093501786269159594550769082901995884783639624547041913701553722125811254022746198832767679785195195073199972458190776670222169921018735956146202712391576959719680938906710137034491034865313985910816787613585894027536603913432233143844960729506182932216992695655936673778656232597311231490301223712989924444264462433059631651414694470127458440558055446964962610097924268997619431742488083047182784741028312232052819967913662308940583730793370945838159671180189380485483223145751196878923488960311611548013534930661757434538306775297071097197425023258539967929652476941048556107590758033002329443021169286112176180399144178959393532038512091028072397468776130860441686625236068114386753484383989141870406461826715767791702004156140057744733622096706811627022206046114711512718023615182849134397184865772234165622002043157531849900903815208258508197442739200934161016553385193403599957054701662369204003759770752137574683492020271696205105606060425036601190364897587538063817466786733141367605780957751671176147813265887243942331645312980709538640721131441796127840494857485866807701119495418361571130779350728227177403729250910434593366593319752628338539854613115800252832153720977251743140710193228364217277552348840906087364593758903181566745534680107372106475553896996567301023403511827107189623145360139245627647748058490560696447755421972864171997223232330246010443704087647504848525093482184520538731268651613481418010804378212416674617420358122793196358195848913003953379723367649118147483801715473265937297699561554176389755859209429139213731657306049120642849467359715919818656176844355604727311962483259470487435788200230459276840012215677032478782706367105878465639688419018503862338904183164842296387462335719744859163565272774728592441429179789661369194646448168559824561275810002207385098203563360427782376411872441653332345670458276990971769911318608928871928275849012903777365780068494118630848271424352311513969579222147269171088212017930995293435180877378000509314886035277076024850577503636559201785341112094754749483117218446080869633083473295972844288603899184596783477233017499064887865975492125573358912980108589744650171733658484643586185542268417886337945783176591960520217812120484281524912569972355154169856245576205369476766885808192691452070804520891012598579045833434147616211504146061536087666182866815615467661995565635867828945635966267243830289239112757627417064407767392830591014326602948326436387200603770607984570981993389906787759150784591095746015971732984608602505126897137489403519080297993055979446887293087535938567652942021011392869527516013743061349436861750251964748363719009383825292215595236491595753168850776408336267440548688974287226118543603109215680031749254280698387458231714311011767636828913523416127884173709856526233403544460714455335453890901981959574904245209767993391458671925877565463743432656234378614008147874218596163686057678257597930072249076773020612249350387963508133293425012173294920968231922306499256401728302430511462188605687855013589474644026269182145511541486812864608663139653096863571655516636398052988736725998202726600863832359602406860746634076479492614696229287114154857365105606259680556178506982000909305681122187159070648538278565648182264476792921517908314679625039406300132121496857722724950780003374758316068829787076478997916475607783581218469899402844288734941101227580919595809558935885787576269743793005995207862212125573663205652173750135608822055024722295382461711695955072369811396129191870951544660437677579677461052459546401275472117219232972078923322197582874060188206660250778282080485085919532174334383631866964539741282746407822087142364059349218881737894843612341077823754253051979946279952123304406535535083564550531075180783840726375550754300986286777457386945797185178474696020841037944159726172912336287909543689002870901652668874441440614159354431581481075037352425853829268792436850706408431886351503328982997711646302300550754246370808646311397608152116198930644116249984354239122134831601767344319599810639717871494292288410049534632523336209858409677924184257587732526999024266878777705162653790595443508078793653046255007172382712960127729429717910167258651627344583738069897721744076782643832907379061746515607484769859366321462543089359220044216043997960246036550376608793764949828603104161191062821676376330588690688165843525134456868658412261204762671489939297506264428984609626733658793957409406649557476825852322654784276618426717566553174979396059658767676296598448903721300163194875029016528943863062734191715158240744779434620636105131291424900520514662466482859763341054799131640770215014733019118732971308903654597460125953150993231938065736348655950512894453536358033325547659621390124421967406758663934086958272323711338923693258682203956392716777457947958096637799609919018639452074619859462850756407858150729572626007507977070168330992845492885273226455729485599235651283931995850091311149044425593430569452925111387414658592320435005945239851235923671101869579828080711612964733062017282345936807084711849099309452401234025137525961752913403814560524862307153295586229496772795133894921386531522916484593205973162167062270425859301253676964161283988352829619905007047043590032069162618384075779599830043123223835404617604719725513427284833150866663293611040342902861054787433793218662661106450468185903405081769109194565386112914303118671552568564125228635750988894127028430484196171027379958001733012837210927310761859652588645657083773685181272877214382905423454225175764858682325867062746528221969828416926757979542215723447132664299272193151644824350934166837344318236938237766863278185531516212939059912297085017397492039296461111756320038561732191193856490266551288103960147516594054043107378704856711652177213412432254373750647749324098431417336125092723132565498711133828941839702454230816281831256839405428035931685911496949356965208353214566426071058925850842005709945306170370737779348013376745107313407857605404396047822184643988238832404499184759558635116396396212270604312005356285359449606654319823295256293485297835014703396174138633097590463453109714476587087912047610346894988747379482357208760296215483874181081536710909175540177115954367635787417800419971862697866855710984211198299655124338443492007035810036440342251862894487614931148708649656494719514948494945455551073734320557096454348383515739019925809826774076883449289858681131962508010424583243928426081431284433889619352218666727493933481319483617389459002965152269225332132414465175976951382019636821478364556311666649778831588762565838779022894840195217389083572245739649929067867643520072910036861197487277893691659885539034682455549970859413552207332852874978312140215138769813471076087609053434297995365237033807737374709503463372382659941259288546291527475551988300426482179205624329310900075671083793074374482970858551386114652071191515849595065579806114601085500241705793149480662875862661600196540088822374237398050012897976733154295020908053071301495170132342450237966710705165498615917318532571349601595922296080709735895377139924141044515608024133681912241285322137149049585153503936221167718866192272865095733982548039460024687900747420962262736259624338031741502297401902964239133457605159075840057835886442657784462164998694187705864878435880205440771926870460447857474131523727929795022519974986939991189338049827581285428555803808577973932144737596453885998249470564559708036567169639646517905555155517603954418261832929561439068173841850661813601548515197137120189055387237458904524746113706142788804893619942068242752129347806200314951399965399204658919999547284516677195046151103981076817345963486660432273089665202916330808100507897817941707402051166268147358809715861129543787116489066693399035582899338678100607240790073309153892921333712165702580079195272050754603302963705945686609591846652769271953759682631345177600505685840633504133424519550355334949123292410033004058948269311270815869507851872569058895616908362973239477458433138181304107630505334300771465355265812362618998897444329858589574986675888783930551489594292254020752187310574330446705581372237187772974326330783342623279549755184393586546854806477227586405722074257273968574944453035811482821228656796565367534430869791327390693947926316860891343553510287421114188946095838926952097801667315259986578943166737445906208159883368706570419672273408064063196159542248885798379904419497863352502359242362059985569809888585616681894354303839779759654978938360136392806281541815869658559704775000015091754070118693449475878520769735689707978248528848201319522407826929704665147990120786446727055050436089348571305013388394261496616082681303516284797096266800557442183005866940844614079030876823979153259045602776475636563680835186468924775980352319234804254001218790818431647495240439070606576219159256987017488967936866033462525159647878255524143650637613197331470948410169717480887294505142303562478650867729898165139127064219617822138558009023069527841450702313859811801635955313526590551014522122421560520327048599178637087190119233364670758511980074661939938624505081416957048845591143093088259548303735058270669879221160190464138233152006739873884192841911100843670473685149896084812759795099373739069443780232237210915360544577690068469310775148230493606922859911118274725127716117830199978192867865519243661162626942817344055866282404742628437930929431460959368215758541089557161853318163767211615059800130941445702740417760012664957797449946041231845777399864513230156340525539761524446287926123672930587421053577097935637771963929912535440846827321693183371841415432365192926937442659468213867027723979802520361820270650714163067032626581455725869229143263147278345436241591790338544659783180290008347313716267550410380320862693012118569277757732304210402613468487809393216312868206772738548910279779481680272402784196660764598252838239842754782809081153564437724528561929536331217923106831518290983319855226339781090612949776468972797968810333044082105008893983550560645411820212558933272689509704647242426050232429560909254673746793435894955934514789572458297198947499458539775221346702439649462455830131783635700639233350613504274126411316115662899324307292952304904635691850416821368358963296870136077050626394035027014501201747924560986635342754027363799707456138536475189341121803677030997707192137136071823481398101417827709534309958294797659745251713441003623526834914079995806461884243845605725348666757294075653299854023020367576342893509860439426552782801725980447486599941952569129071483426048837297143534953142765561980662512586824910791230266076275089174407466644656270230944204202610942502431939348968460789010759035732641636943343415847871381390886921712443076115553027434411133495111586209395870274393731770823875453548412291634028018718011187940000578257115307480569675997940964546800244089847403108657706375933138320120657740314291003218848379486464157974610611035669062591982573035117953529433587569334424958885846425095180010095002829401194302441057088267445734080029806498415243561481214772605566408532226715525233379596003278158598995756412381882205540542005192129375055991195826893488808039552988602020633324057026258411985234111669532014385859909643365162161558619653529681284727192188093403402856597840022361307660844274613080891948314712889327739152798433463482611821521960929528470782557775894299995848850669257060796576214244307713392415779235228873680782109794928917304046058840239360226601424808103178177137428513755090221887171639908769041729275606268416941789146873256678064005208389539569949336833303842845470688058204921952782977605942429156528922545837663479295395360927360124431683118044835959939438846470747142170725912417877397180636078658405986312153831070552919115609960634531477708318238942793638655800309529063617294031531963745073703364246779319053678892547451316285597741551990820342950159479406175606145239831076897929277383702949232268385788154768404469208577120594447660877274188197126293194281509140499601159642111086315577672875618542208589884012490828541245271727604989159779306153607778947977249292796529123948202637182245888946428954700093184296147836266586350892871716688333658210389152330827496081847847455311713202242838013075614749523221268643366805766230062696659751820064336920728774746013251368275697617285958074476557721424085928497001292513572742548899249387388058011928598884070286648179490525036941194905165930844484489306666041591066853105182671558319692961668811949495938568184520450598452734455053168141335580025725231593211393445726513116675457938999775513989839366116927392353466815852003099217037459878956082465238950811827072646422649804885129351392011169210960066268152848380807230082996088369579438648232066698140505332024957266773259050202783311293567699976551398676966895023074102860308884888808027949532831410575306287214914027573885344236498372365985490562770183997696154407200847837028388669198458446573680117315662163840732236966495044735717016249517847123171226425836519819907399929569583327183269219187459214243073578488413605096040146206025156345562694836062088131838243080419002359347267078637002163220600055151108529203812915382540539068749916006081242383830078247880281041728544189642863120873553647963805175011142219054263533981613405335073507176636679145709461622684806469106741470410771581044457099398227077475004609573630194660499090523842351005265994259004646110319961543534538502571567304281081445953448878809739486717238695070220845693229831879507215773467879410913408793054812826133154426965282672791090976499471074482055139704422438579358297851527051072141325869054275529628315469748128009683211935697151283670301761508063753867530559818991935380568236233407233520684385030642199738754365827391586876302497929680100237267669330738839388441549219366610261414497747615210786728751677110193504126422719895870828239144419430401243567684985412013117992629612126156653375959758742605692619582479583739565660384297846903688224586803416586924451906936120499490930903448268413351826034978899468333172429999479525215580832362512694479539772363464058177702202649686685095632102973362451268364337512981659690309092086512036361326067467594196687210996940741572249016096877468228086285158578709459722625721420837130421206064154955522145294189150399142933957250119991497534710752434426068978805713486483208605848241902008772845118292724536672781862095707408397054214838248053254744936368449021057961806202171819311415146864288069691033944051179007879584123359805218591524543532012546137990091272323393391393663609547591693589208392039145554607772939232272911380706802979731912827471127481835868739888147461482243816569109328678435932525150329899915568908472693515763206900612921970185799022688403936058968723166531742658624092327301164453772564882159994148332125462583121962707785645728912448818993192022190990421137266662432512750117796565302689321495541589698863052057281978678886961742318167254121383109751600084257627088448969501462653216598574303013951024082572290641248909730441541083474248254745556423819062940324441241994109944894044347111670521710104565300212324058782640824377874085349464048416441564458782466514081167176232353764395468231555527078704320383818341489007886878221036590468833135548605646791163763369950804693249421246898667722691706787860981510449191045040293507465302716017570373435087397591337903915406626314280157694991342880065578637591866819169052133043237008833868947515171216697737498775471064043340450157644327239479028108585128358149134019846889354759518906659485368832323558179266918588149797821870258073526885605719179074820997605564028671343250727189546505979587291642285589171741112688679035095939923366243342100448474545392907147754970821556378350373588835855256171904913353540575171874962874398824091503565922350464405839408576951587433456828672301942554782900720329708608087878422484933566207717111314304783485611336170464705174870371311196886781812422019324344997642203049581920254061763516214801185512420661805914364692730195765046064679562544600817280169059528137628353873939775946795051860084622237074528421800971401200340784791277337864218843032527539562048085934847348474843330757525140735876355897468642779800664019823079638849131314043257725319632658207348360763508525679019488857228428923570574475718549129865669663800716707582325410646756132138231147495937451546868189284556171985625328526760998823005733557298626443953222395006287994639449462383212537846959835981035704110130841280211716564056723897068376556830706316057321111285205738372270309094274721965896092275399643511411284144061467466869432778758951590491516260881088747682924889426726758002847041344310633326169610761169956702744149862401423892838412555593585823617956668086683520207737738810528392813297208518159508707582435125184026833297806583716033303275444317992226035675182490639708618301456683045440634822902587113017502299444727256388271933080820424723760944477917748415396002896971772058949291571224548255784663126133879262349755577307504121061844451826310442403778216438814450153243903978084445051189496223429587328335043531412023301769360656398327425612306698711811845903734042431710104416415317410241948136878027561006114394336715171344465385431227083537448593384121493226971759075533664668198345613873049232150468166010639577417969981489784088931142002245316194716860718019779737211741832128617614439589850048131137992334682834038379081950031006703853547049612253298915854243343235928538261667033550388026540330601715832203791771951693879394700018787699936230351619057443943419834994437705656165637245757229692445550692072372609379423062496681515796397962272645518026854663689710926353078470526500840159600427666286555980349284312617745125680115223448984814072977608406825708962593556255474060123982632127425771435411448176962040846678648740691309251064154771711442252742861192673093744550684020312683194349062167038420516538434640804095606023458225864463231181336938218004801558552482726065729059327980576382311546481408915106639110862399216836165668237089888287357948240932529830529027732165634687319403848223396379084129449439004434973400773098032704674698726141565157243939006242926884601498579592926256414096101511299569632364427888744399041732593331402251069221998284837094710125465545086292853825384891416694869871717621543077144543245206895768625815373381744694996382420160197839631230913059112105600790168725575300794084822897121060386301007097038108300715293978824862498429746895526512215297349455363034151728142557584643397327721963462175745459571930926431648142175851131068126880803364936401244514728064306396621494645353808930301655447113255394083492009500791993099414450026402780054257932574854938465488237282424542373290594646224834779588665854310809853358410445664554608529528434615878421999260966451709388525792081640909344890654067597450972312039287015840110407958577063334045818341277058930655770165710197688588262033686766466564603282071198794843263186851311687471211906282184238119165510951943125429126070209452962393086089262561128145018896341611354284762003458379100411639695695726353506565079559068406443489518172144743000426841210402454735761782118209515483076187729391831242468518846045934981744281553558105416726635177978425321929887410704532377921919906131762795575174269751143526583317368555648279541816579623157163887654366915108797917148771067654951693368017872748129253388743716842589183521179403886928357616498113481312025025713097190418534097375261459010828344540067560806799914238508650705784211476625836998278409725894394834461880581598515979237136083000431027465939328533398817843525931372029996176950046183528773347819272589247838458423667403080703612988230405058354994108466144288202955518176245392356222473306282370562363769971959176708677940952108543631092102976079601980415375834744236097137149723050629008920187364018784961020894703632549367581736255364597352895688832200916482594479760179963121272791584535500641388991912230596096475622747522328591020060954258570597608449114123872757336151024624655077961631333502315050508442788558894485666873704209417518445345268398218241181502283527531569504844212971249024710059648262918987695534337791481865259900511876964019554625946148389947399194599381054511789743856121852460966448230636022263602600590407426362730033564429663518143504959015062037875256812395729489746079313394908063984731200508426093459280909661465815183840247408198286632282429823266741543190612647908889311449545411070749353809075783528182491559860742765628403986683045911968065054709804684452032282813307081315557609939849120651590455189488665901592550832457993066992868477980123804276011219065082844129240749075930178567074557116366881805224110303100488554866291199519455098064341314836062462212268234853634060204380383100926573568191168327318922431652769382481426057081538212797432419659005199958661893178288289357600895584101752784110972842243553379256915764885159377357324600028549795416600893397396454328150083299463504182049446887225175794617169486269120323535672664182208152622639113334863198455394601308081794686131234592924051925050034729104416407309477010177714978282928167809841851615190526399181601651705217476233972541664413673680626676265741959229058658394345862661503448204849742237047360687702195310605567662568385932510196330597271736008378305628318669597636974093225366634324718296743241152731169494836778946680529493099665713020370034223592293393549649571894589193792307174412257551599892561517126354896804861553630998503366903999160573397768845259683290107260871903532366433019825462614517145552867368390717406898629916411501407062927570674244735992780233785356182116133097547315634734682448083776370822442894266405936914803776882978120448252620620817511571985723822904862533594451547031205665720252561390575858474495179812249819159044931102105194707457500180170496005830528929597490444483644422035058147075716026377638527831999360895328350308816428153617967087173371167011847962910848720259617835610878066497097868247762778212678651056202653344583619580628880934050606359805405670930872825139306764662137496809849117969634037131171966692612659174009725182274198912220699439265381220590946906106791127797726439249218651923414595222324846653082653058040009972694925145214954857226436270046649451649200479686470013176800157507439484715512379078288798821540039819216981243045603746992266060759681604787242883509118011335272768769430437185616243954585720324584500893438694622450575165846990248968736524085947676452002763838275153669143229103884799113823156057052530186399081542698785064649381747007589890772763637113793053062629922250671157837620304026430535202923133762436849518557700780310610399179901123155142591588504774709413702156818204316316776587053364508823897717779341037843055319507128755747221204243087196475986817184521989255310658172854632094501641864999625377325788117933699255339742827001850108549101876827026796400758516216400203568349992231280344059614808136246689374200237068240929940332849428612905685440328880807665578375250366026712402881443380646348396634507940939337858846887517083616615323529924832886612598253578852869625536155612155156477968727372705879228946927652021930158918445976569561074642016735090883472622149387029084218500905380707164173530402267470342865803698503292774649810138037330634920992864762722628345484239752786990283960242839040685950810457425710775310697726066322964778299645353533683360206828970582916339161071112086073502842016305543416573365873661313930652531822386934297268528841473954912077059365939116109851687523050430668812935537516368167337122117893508671711094703420248438325710547277736055850169203968616132609263903852194135476351328354154927487324102971228130142082283199106719879155090215875007896354659431956307738624687621854880360766563059116838608312587318515002685622945096241059287393662067839707193535906694605859952080484318097839311428657087610683489545407598769342584522782913650035708405313217164354141812846336169934100944945129013092574474214797619585434686989263503464192161899848388033599186402857795993773761373136200538983656830544045506896816769390277634422798854824738752602635800179848148038856580114763488255191050284040932411234138389624925230339667464282605114262587786442947257421250360869427019229267273294469979552303348753736705934757577098925183078742729081364165506259300522801059224609706166702277491681444238661045076484198803297843750656638260024086846791280404419456949396700686889417010902093644625590373235139446379070610938419486329415780115899559113822062333279918451382017222667549281581807420645665640890368674184032727599437279609807603050768815068358295700163525556219845433532737918221902654820468162444438189787652336296653972050283598375366995924943372339616060374144026093052898767174133639779162041461660881818144713768373360565479289799293031266373655972090801424125307256197593341107473342458313958580804612514687302718341093911198410282922420754166837246483397974202320620565628818266873620518179699090509576990679396543248299883509935225454872641829665465702736779603528111712415688951739239963116990787133376505702443409239746778258458070732429896175491415347902076472436083402858092422732960614538758552715193639827403293164242180119124963348816729023628165790469649175333295381886223271757452265025921685194316883908976467848384046285292285798445602017258433792083973930865981553203403384454621193999335915074316221617692398900716589217482542282979675854642379948835084576964379318188779893673791252624039757467915907930907258398212934995618710099981032111154291227006596808981891094442267784224330926047963220693362340379272651808847215748385366530677317624231488880068724392276226737637971194056083807631860410163235053369683361596977001080971196040575994455957527491492263206418304832869228498341241057023693421830002050084296329850885101055972693187952153325586211345995502170766419060601061706184072192586708865631468217874570710776654161871765086839194649203135627888272076392550585624687807012455574681249084210082267718396636449306649849377006305251404113129645202563944743416141512531367406414698228196613684937654482487105601558649117184507573808593508284211454682049471344917622167589348606040076585614518840082131828265746853762368595378553706496846411420598066100478461632128645401065934442749748719416921312636867365111505804458254815189190005273630872577905355971467359503795816524116145738062031571935814242598637687320956088743641414691266853930842490312114140247134120957275274012530832015896856598040073955846758253249479994957129866782270220437071696121583510319755417777337221352916458657442502995664865607788708177709805934805122584705647286603390683736112545084725514117020027352747681867255923365484925315566073048899836295608119810619102897885691824086166725671523154133405105940123343134769424036469928376260852502287462534510853407408892859984475710957133152801106803583226816678705444413328449732644704802617613429272718290275292473237812512515218775461978676703862919096840770342994639282615903473495263058794244982214353526395014583306769917156124223766645520627342071260125144636150782293173714199468863418060943858691075139580311435395857201504962801176559489616957919692507937746132361440333036033172496000965074565288120068333383268458101345748889062159905485932991539093655314036615401221157114593826553048643308762082126831734824221573107267453186235782178682376608950966655293000600345227229273911257023729632172816695060188403868826681668290124851841618817955902667093359965318577768396397930191147482753662875793633145733597535632780304924798547281419996878248009199741131527164001094049907201505297982092084605477398568741884282204760546747487088967419737035076852107960655350258108390100320987804225330394750689822590096360997640988006942138738856702354526626919417582964801808036679550785945432739314852388113108476031353222952417154564040327044463593143287290807514806089698901139199135054640225991091830231000176287523181161735248446635151374841484082582667886736555141746250281868802571061789965748405604398639101664111989585359118775633700003418452386655779888874430003301859921669238527635601478434411392371234908355465228592945285974695238850813644331361500818404964095553051130645823168478347323309895618301400568036506164019156718241441687824571616076326145323745129464526190478237426147102760123293030642309799483264008784786429378464754451704297772123610854129497293288134998549439167430641566078839599148151837125625767134570061900500139169907103683382930881711423850808876395919059161470632897419110357602284529757951250330458502943927970164427970766434962417736147717461430270017184397384928925510766281402577956135034412151594998481743621207146424598271836808128148921146886636015177494975525075084002219209824548652563280589346307496053060730878954534852264309962746950709341264475525343791882462557678034955583088517195381925977739999277810461614850375325626254802535836867085233078099932992909038208417714986150830264968195445954656584286676049552121327639591064713072650622966081357695133908102083274960349344773964345238846981574687568367000759385792073524920500371485453727796494117313003691120519161527734522423845228829618025758262332939654015909213457956507282567482858918424009137817224132608271266331162982879359704900127849769004865291892315946627602171642499353627934247069321746424510053270785796502158727839237922851813342215081283024491374221783327597206972242923394313361796967810866458700467142965408946691886314445991047014361674860770082633058130385952788290343390348074410730626560798127989041238331330294363865846340412505653838636348753332085087208324755506821309831642422831465209091422151750999426514026107933381014996035859040185530384412492022721331936266808363205619113669285801624896476249510620995237927901889557073834570049431511273321499906024669452307196919016370697386114522723813169450685181823031060917390498324869372721239009382116758272666549864190578645700003863426459908023395431349094169550640675033810523552042038672633184646980479045878261903550420038048026059372030034529546170841352966918931582611832547691299913527045026521557356422504973365321289747493377346909193910250600725940789774650172016321551515654341941248250457526327580406563186749734266630518577195971483205881839508662846468417262590379169551017788548819916315750279566051552707710382472903421070446704069351790853810541740409187655765489438316773543087342715545549353139532421108933024681189882441174933567920095061944856272929744149024219191553323015777368189611550107276860727483425974116392773629714120511642065161333224190918008612514526948627336703225772932358978615563084286974420977725589009783866761080229561544069572532148265886335840330736744237099708220734516257394729166481108912641728757655671797304057129876571775620849166818709320261712666533379786410512220412871872585832100462007508828073113004295355231516115161812655807646847490046927824772341518606650359712628754311470064674862682186343713332024403167184429486118294760120570469995271288792536175864805442870399936299018432488663147942707712858773301265345556907894582747455237739980849994993951743913782606322841408282664656172795506443282024711124261851162405742305279827905592303281319476446621780804227049376149089748109721244443480465310824596127624217428777844577530816170606371727223434391016685913055012502180320276036592258287446411264019971670516175005823604496337553846236381106242170809305912453681818475175016037933566318052376212276309537577171976010892056817510699129871439027852088915908940093508813249059249708258903036907423204560992271034639454238465619185929977235760495989417830964450155084261002080223947646987367020674927401032785197698908309197835820097296548448500325821009126337895366986800545301045073796587766911940053072840121481616124397212036983677259068133969664334593561896512379151608354342248330273401716550560240052806292028848924061103390293752827430237911739854487531141627195064381135376498751703727968567144010769109202204069051533023142260897595893539733723434672734581507007385677121632692033370806461621563338111702848345235568674562171986751041052210875473185693175434879319397196154362099197067732839423049471583584941647995914851461241325206734670678093721070088297304906227290399675250107066892237658480945875041536364214292590903858794845318788889958351718764816573309624407788229935366068777028661466041171933061169524669643630074957392569532884661211646177205006607971984052382222631419304464115034056932311752903778369813109301386517656339262389292644030374624237565334678087287002101509670966451012487125901791743713666377476593703468464887371366930771009783677661322524154219485870233744536045357218887606490001910767129532500640005805676383949379914868533544164953158498489760734310225370135946817903265608241159802888732228852034918984218054416846731514417102384002072552014380280262499344202335941093622227889289130019753071251205218418767961788763029028973981470536033159047306663694262399583380395024074577911635729083734052513669184674233584707348770071577150280218652179327415111271870471982019306737601829224077260255470498758247011917388775653388919813229476933068782841413859017072848917593150476541708373591746626246764062532219788111547817346258504630906842857294520206498082478042606477265171682122553337044244859626077826036547534870274069197892301892850289110744722175767454057778152406484246217301924961915310877311108204460234269407543288305400800462373642230062939692106712973599233676186953888211999109086919177732226354930067999760755332119700477260554795981201403818190561252563647983776509402178660976527420815627701740250176369061456187699318944475976171622083089470128066350825367287874076467704658021006629098035397685541764905952570279461988823032365443560930671150763286624496294799123281779123072728856161067550309310400304216955447114207970664218914828155243442963665044463427821020572170822429384061095914303438318522772998312522962819546110611411805620232437873171497549089631257135671248646721264388173790839406255834676968292546297445105762986511607719087400334981975611624233761017176869503974900583779991857669235895399237514871776944194413940339529264643122043655217323838988176356243855952316651443676974020830122753822497358382182494188065725014175821539254063665077452778637388013560647572357364440423311159212946047459035489886614077998081986344115304399725296244424423615710336634177535824001309081967984480906961937589240566398367078484226622730910917558068100052107623502296317867743557806692147992222803414754996100226647639277081456413311322612487703793733498364222607089449414303950791194600456532016042596995779863620743420107235591732588456490910921867219805372116033018909917939754668287761905149985402739486234784476789324826144714261990520217066893288489178937491057108181846543574743128554272293486525113259602255422562977839898260269522143369761095384513185441153401785173875272867360287796695208669951553993069552707194166137992280327667471041947897656466918103098557023574936252831538018640828081026735890413531149586131005515860896076727750516409042221273794406596827222199167100512364005584709937486178327524535718306709089638740164509623747811351883650391389839922265161165240015577833038770915437624392731512415129888824816332814779432648492786303117168916847738599811917686147129506675963551407975549603485570908410448110995227443297754238186220814866995680873178180098086438865221171779092599211922711450349694575585420362007837333571737957574221866828110363290469799358187737585373955475523533560642098803775488491648105228555678460551306952099684099051618086783884909947568903650583299151676740674966633854107890310935445997092260527850320145412518042040540322252992429226321833699272158758861532493075224023055063552404371963374056195214504010800360805184137645836469622001260876784767936111886675815369960811049054873585735711807292860301730312594918079197317166664138241928133509496330295430172431695916684515047744086405565486882080255857768548367438914032570003552124839461774471561853150791976539852739397554838943658364928212081702842106150118613114555214655174149395733466709422932694244071834819400221246326813727374137533547723602645678750230085822979309335903716312816645236077838541233884118889318591472929399215168151883159839802825479036733662398341203708618928144818454924309638086573905072800260266366924858627157600512324324919843134195825056604490414461235595414589747911653245510351878219665557486605613939336229330896364665689154459600796486905361415285841796059758330668633369622501269228713083175926660905053316776244986210199847637882151435843012446050505492701268489391362902190321733770437020784836327029379533363104960224751256579633550265373929434458334655370832147837895699964460188124156809816361957257765320698535675297318328093785594198814764085515780754190611439436681441849542130160786384035866896654968402198198709279472610853269701140890557522500472284972545646721523143578670269141430302214120252724182371546642132227954452240539494590913876611498322626220706516861018217255563132195498361195068928305759471838738303170075675808538108546313679217964667895698516441990227419529636494500009430065460934698477355830939272008451953464588817289221394006459438448506130969851777576147334303453719391949725523073624513671959628748239539504106317265593706559810311215366950502847362679678598932493513106178170631279747976565090716208413303783228371987053778384671218304363734299549351582171774156340613014354417934477143814135230725004461497267636213880130311396937563366148883981649895251197261674414311361280403852971733445456940913340740624247731569762446281679047111544139373888549225978713171814791990150812595515928722145780109206691575007020275670859976025506941912652260479494578935677128860954466571364728486651079154439357829526856596494163974815190965839752486642677033825923358468694391068988929373552723593070593856985780184156079284902938979415245058075926254513497036760045053989351723408075964789130772565527566167191324558670920110650237590112635355127761009633742122865218671653872793552109796049039751069677178851103942470120088314587285714095406662849456258653686936145292135548136697609336622654955750281196420177204218422392262679499384531031362108096870763043841773794914623438649267125303757072801466517530964576559407555591358745788723311949697671500764688661665101464296529255967059493875949307472873790688144607755712087772392931874296783128170301314694539801994017155888805353872841016910987474858742212721475291943349811497498238755935874242152821664623536811797361814638063142735508938908659043362381327290134818476489746088939368163494737104676527422567601232235439627925295121109142127795710969794014112806856873504472678584749116844790830773445076700647326858748242650177749141269254373664199271104387862903957363058416712650198065155548034013789497463436668203912757742880035113441597144363580184389405985806823685620946499769974677973449130485529630485113535180392052572140095146198785471077570832524348610495045263937966340246189537796896622133433085605722697253079255136491763401605480562760135574702084516920655135151850526482573548356946153326787257760807407225686043677014566129957480032583297773572960367728997205829292386041318267629834051056251112740101686098463244489697770597764615956546877596545936826955434291075311141187386239472901228176499518430730214111691791859629388826077748372636793634311871223018928178660332751632613522219868232217275551842793050141388472061174565409480350082299919657202130288296015808212703700935510176831416931148795746884543082802344901261426145125727866500812313053156510721443396719056671996577139744501032122164549493412504403247002816157690896518797508397374494387191815250718535694706771261392170941546157823954975219189971829002810776204085026584245550554613887907760950869382154448142863529391302950228296131151949991838828287454987755141858661578364983764688523414185250149566580912397176100703686054663364396462685195365700234010889165433979126807679786624529011306084708592303192775002096184053555470271829226446468078144062989117385284862634464395347017914470563266715462484261230231497171581705159257842259862240609954616752225645205112978535016250957413157389512694691380388739661266131877460121161212014799992745416297729548099436708572333164286568693929793897122010341053552604317512317732699359663702003742115574949391120881558567670728287525516576134901104657923959526639206224306716024136614902131768287772382347105187942860289292196568038236127668841837376669167067919999280374547714264497583947642323717829555408540809766356547790829167023892873733633204428449064999290438387148112252464166890606803590511206545338328086822497831045831517407445301518713615310741668900546496388573161731520633170265937353334219830885821394884528004198131020479777755647705770399436050872476062700554886053825411571030629235600421567166735794774394162521372444446680666626595824737350716963251267990815105323720612473962362840426845004734965356672316193580661070502959857756469602616929007204143999955319850948057632490596661783629770333250533628414741979283488769577466137379255054108247596979898187876679467120254018222174023524827061111954067168210095854191174114601084973301482005545301386718814591881432563785504543866887843424587957692717094053613117525972144982591055424704219864713003300812261340261382539249018753888719316185407694771334216203848721652785093975830550794777856862413408427656649048616272274171186384920861477582397940635923628462387464790662720455252952364744167385356129488716451112635689848174106393822554370352621107600906286604442438134492147006142422532683262762942572781336327005682966613994739552179646753985845259636160315629062142278049736607888593551039821386776055760975088735795651764704343264441832285413812276540155612861589362037939183600346982208086567539726624323780466789106908114002063903084836215585814944353194461557551292325337582330998732001261477920261916074483850966395546763755983262683069228646686288290394207438778033961049608523709632572155425098331853105409997176644209220715412308847938370837398348701623088757229777456719025167627980238681275523261702812906885578405013641182604772300578769902021695139425788948504418768644379444215259498319516589392161478143602863059430746867905029668145506837645384072276024671662208049062162947453264774326440411033861496304380570568410102852443625117399770626180026536991332019438669777192669445801854456948728963277106493367068778383524278431184288149871216707755010758434642916888832425579583642092212531434567574342167571295339121628482557160107011520667219581444084039190304098932825131485126747577301637664787853931668575936514473076860729992650494669471417340577150490966071359003590017094868068829561155288558183341686468878722817375328778933367653552762937129968935362944387684901173180604066935716371320438288752357020013662006432926030525176516766171243088555551928003092125453051511747408268815948049643381768837971519591325489854443895767452224929616017650681629602746821050528718969560796557907364168215667226786096737184910482244961428979518076616051165476611694474220925239759145799545041842833818447014246039724546932485055331955669201036087628846955321685195253921116914164159614170773937751946877284014652617509457468347718870670350079077276130357113489917774156421770016797300562733074098691963503611333643437666508695242379561973413892477520204234254582659626249563619078663722469863272553193171240572382407961194933162004014067891122786494913168161346015804595357743805538029307549079060617588295211223201231997863146172570926710742008822639818527812009766408590534019797983017428141066796470211268736998689819444935467138211019526375893171623396649258711995592461143261415194822945447247013705238315756464266037268503121113612150674601797904179506649848611030430801284693416869891218010285699779376568146242406941170049010380218389222358617568654159062872197823744970221790766772854542559190916102956988654320702636220187615545880467385442940665113655303189960669001926635613422573043744237553834429506478685669998689176985072670880750064753697244801959937251756724028625842977518961358085991212465481423297285967018970447407552347774655747351942710546178913732659960774411536800903077064059448724451306069115739805753767807617715150801565352326794107325626923524774064881181014639054232574307974041299024472102374820407184422427116381776038725869939269614549385226578917905130999994123322892346966948926799585367482416646617289182153434899879178794077916992033808567003883961745795846308714173942571780031596204794430582044603740816295264762864582419270840966742350719831138464336264209957897150350346411651176717248325498761058066706300348077845684583190125755065846768866134281034497392477732926113909067530823277589019231699090407523168337799965354680403851568372953228964752586048587420928675618662811836828439554791383260870347372720657360777353814495138653666553810866059888074222960904291210218024818359671482415286831086796925764021211631737105309264244648994018679349683586191898501296637504522722236693148616365652987868323544776967915133290157390321960137758896720654332177304700183125075442918906875638023747543515319724270916554447463529135391121724047644903843787406978025935131378076047640361650829050709808977622686860567728393819158101177512399947544915497248720832410703194772450682527368472354744044370994230154042746736647721469947727689662185411914854640601863878054528640585729467400135537115684610483258066644708668419553204464691803372742950807794762579084695756083089203567068224077106244897460514126028684209239024638566650022115071820516619997188075484556371704647180670221289899012498011108491188336704735704237855280044762861676377138962580107102260866702205317857714743329929417026235758120368828414832511091863881454591369676490736824206745940611278927109576007738253897946711557465448579740981138753973301113439477731393274003150002487651245592942338363860432254069075689906659704766470466423977021028698341954482983285012783721765295193000186662152236865186179394091463602001673826012114713898855559054078421289336656257845099766188571809557187688016950029702412257254267879239121261210543929345870518180830619307753764713396676117423100865056884109039140634908866433674851111924576359563205178626272659734486546371644347065939782114662588267994137330179922743828224818533253477248846966539709581389572603757094032215796183942132664308368114481106207229482943479752785210185381045172390274949892358193861759682771386452663049014781077582792320727795601221578575312454653556494323193458775564454088742036954917214642387926413413511495867989666922384178210356970747239223537009790317168632653943197575884211126737152369123568188159660139697809805791644041259984241272052876178534218544975802397803652827610933521548886859312395232128136923692002043533106019846300159461487376031535565203555390209614547614520902879787811539062961967089269711540465985441134453067679896607059565613848545307731702185758257858117244663805998023852948610135253409014968210935191467773253901414202177465814047118283518908924164590608175000652577506401486766913357730699354077990084434581560823648701180800850870193756480525405724614720352022692800839929676370794865026361404880367603328034154652613757028483497053991129983919832727151304842541246549912987170689285382018709917400727939251481832229961911386248084385571528339744828904890301570405486584582377433967517131041764018984581627489503780156068024173755965533739671317875846991591883412400362845363647327541348009543883564107908189738761696576433499117019397418269656378665120636108948067936950183198735292567876299003840258461379911253875056127517761968749489309062906236777334967842782433048448054821282317084897672771758977558181268232256808880688390837863625467552366136936143686767057144873716103800919341443544127275218095869383257573472311026948282377672373799091373103457943962790871396467085372868320945420983914322871893979778242162446716321701911776310710887737926783170369608744727166412922272855576364345079287833360613158609032915637851032470189397295534711309498195567515673560137800836981985104045785040297620890085864726087073620450296356212505425447938897923089433202468920914517227314553633508525629232582755013345969248352066258705192724616860171640168638533263567496224827449472453095320350081577419639942874985822503732032674496963038850628247318389211801212161923847404767499524171804183064149329253195498602251253563415202428759264261589573881749631106919022730810974172555283300837809672208389624664457755194424780997701551091103030834349847325435046810518479017563663717408938992145919343334722061747397313105343099081428866600702756795991744286684088288149835106690732228085500173350068283110934330618665131277924547051630304217959919021158018440712483644837822809804656150859752197895401362550705713889447002473178579318061918184462346521413313923067199630852173861130941276961089642437228509281074875841495088726269183483138901849032835227292362993700468038919796491792012164986284019340988871610936478893895042875110376864059932305313911252461369303224252302749042370721506787437045418572755779050375235562075157103100567254600265563278636497134902514967047943268047474944543390439480858385136212594824773726811421385991156431397739660507138588753291873241973483755468462606034632305068430696257786718684627611957978173522201256458861412475514898655706867160778486618987148902025411433630955114116228160044715168964438579402650848886605180352336453202945752561474066571372694249072512538332938286573905072664512654822356829547557266943959869608288946930043914519297259804316477637821186689043785386006234815686500895076193551056226654479710436551071531357270754467654200436199626046470039747354884756260188678721246331495346232496837690804596217107997169478343095966891696306451845342734038208580476257251565795682249239822687081000785658604534990644415983549600751626286160335528303719878559777044768744665144683576683883069441801645986595483021674301739463089170551545690827962414419911664100827289045680065083625547146367585211857423779096791230998565226682261009683466414654189153972247955425025921757154086264980263259873322622133051442588963072789545377084546427463516289359469718366157256454824773298587816409925858710579301437889794328008089573728655153493850046151838236682855388656640517926619116230966621593286949078028199524899671601518803582616938178326081932321433019423230597224664431486743726552195095419889405596411309604739830692263974200605733163121308900278811248073543656930230290581476105443238533777133181117656553958377470211250209471848289813559217393174527626354753156878784065637843217915672165346419208739792938111158059370671633198233683838599001260607010679799571599142899656460638231578277516599780762419820769946757615213827602814074547221349956217163580418261643899265681423195323598495142251921283474737926516653408719469936638243149803421634274222329913141119659875615660532040443900864468252566981359978020563069051374590566334749015619389857771370557280584515944781947795600447490160863088693748160102660587617487159727591260969191722414281457797999899483250502627761374833768804244661857383681689530229493905855759873952110485533431440863817929071753770942401436827454925659091358594109995441790540236866168631982264013656343583300429663028981143188639466139526070541163179115416636676287603622694270263872444682357957311699898162222285111285228902743613175606834378650702344632260399746999756125826077148710195159491160394255535045487012493738191159209237492576171550232979981830145864368489434872431538537873113183997904167958874104260387512357207567039662663875878614989199958520253726936077336916516660112547744921762117912489131020181116980451341424267511557903713513384739739918903302011073222376158213040937108078724697648104167346058783598592774040899332087563016313107859673488304655140336971075838366681070311911906328198693596861751511111843498203938445256181269928757888004237288617020811452908170461075002027328063143940837218918366021049502905019597411963818087747443288254366715947402955549307439389188808210490842348125702808101510515669998983391413720594532981757407730789983958556747525662779814914540219550022988735534615010785166326202554482683351979892085606970665253269261497444040858195058850985815272442285833262529395760729760287333361410731105347541535915808766677518068022796983426352727935467873038595110705487364095516998376405337802028344099264621441546882396757170010076594296877517171767363089408357763605052719708798931754263339046066589074866452915465119829743203243329078880751002482342896235495942222911204473479577924961684070826075969894797876526775690238467573011693573684077626133192604529389611902386938867947417576976409378262765347345258211042420645548570727826457380185304997415614694440998978892135377849470900955245442645301789513215820460408885377477211825839338987689427563138609925726032512929595875356253531923141577056157822452733341539118086596760802693549641580751695382147731246952521039898123182615374150829814838044625068550856352880112867996698936580257307929593948579690137304750340408911610564084192232338785283045572612555457645611591392787178869755005641054814203526986922294850668023003754659549271040626656779996432246631695922326075786836852530092991256474269865851242179550055400768584757497799805265408345357627010380213271895304063804156340999734010852939394260324046977468048863923796846575672716343913866998421051579315555255686573986450463996866444207207348597628620365914502508090426776781624021692304911367019308907548999815322335048898945765085323823032511301947205104054205674815068515512409568109161880758137824871431526752389473174187303178197380448996762830010746468619493294381627883211748957016667327993745664106429165202637237416550438012862434229264160452756299778373800861465712936290809318160511822803376080055191055853471926322091825491624074186521026160671907097452367820625282769231544841740616473665735984613098933100144608216330620466660021707524819721641688199708367674296778874258449483860644488234875942285110254274903138191818849722459103761896846508232240086405340723865692830246589492339761272367197840111811307284052864277419914887787264312040126622377532862914333408039710284062832862061678034791492629809103445661009931458370966627191741279814153386150002747362725514636397584173582359918507695789470900914498492061203323907152670288801036303015144168890581241496487909985175403328740925655225680896022693780945678862214282223067763394644792883619885206149458604060242916253796350253473716820395181219678470539150110918844051042197118797430161840128009485612756531143335975023177252181114459661374569027599136479839637665592767861518412102848438409614376949013789826745130155014145267643497038624619713902540921395371662881266076792177470387502617684488645210694563845723572314580999933382412720985676583338425640884935513791520940155633735312927645076059807230795541978955182439074788624522045036687538976108743236297917411424940713794460795979867339791234875301478884826579387664685841682584860330420292697975799711252553170150822690580720622861859392969216984561121420916610117321965102442559187049278198689393852254373148830402244662887259335006109044187490254612607151311848405517917356192543050759068164182743358474670331415839324159834215620460784443901873414247725944363829054165291732329007969054604625046812791120739101381440174889436028388332678838194091448489029388807342217996705573414473702289964327679073287957801023481132537805629157144759723618908954158631781072955669469961111867347887207434012005894396437837880833434689849643858037055126995339102356137305659501916090745804561041381822539136449796357751573871964573855334544620548746555184449325660773869118129073937592140217110051695319104628025122634077168091061639188304196833238775677976177170614491463237234577725905811518197310511400242728259723532514677389510361189873687009143808204380161033509464616398334604177835328185962359013873919483135124970061970887862316762049836214899151071868857400057334285783513592143730400839930078819205767299343454739020618753677259311175785193433965767014507092714605629073482561495184021007001509857364101947226688160897149691007425441749087355004929917308826781542640540787101956269522202981356093422482593950480952831424758806234114128321277286502943129181788241021614658013174123095683754004321961087927247736687576433658315143438361715560440964443309547970119564929837876267515080671788030878074703184586285266722764769440459833535710411115014565104021921636792585464232141349017662573656701029500146677156814702973951635090085291814476353746970141947419833842209645077142972034264755076104666618694928573882964313149910946991476205911932691151434238621111392974977680220672485244518510952471708404714434458476965074079568946753296991707046825559013700035167008198591267511641305551632521280502000204698865591092167598740274200845532325710220106768800872096727052542391377985657305994606895399996898205655461395013542139228721072087806762101367878139599996985352804856868937937490759397333347111344552660696824431829996516977894276451510592673334331429040642260653701760455988435959583521045507638412734616073706516465292678481184293779943000838693732840726622751966756337498081340270096707471218299309522138979218845720248033118915016543260115406323628309323317592754692634144346688933309571241552733122591926084259873168660580016123466085347680263882532304478705322104686438184869256088560126455547129998345747854604673741519878854866143755068457275952071882412771105365502602799358943671031319652041263253169361061978852698862002719823448371263376256165620516296396134941597532327107967413037820716630901663742542527652555322108004032478112467641972371354045666631551877151151172229864773466051830012646450129940793816373525838589285436266735106081965227855366834995364800205657690345818476291735035899989293604320777854908860503009518897457671378912204796130349296503130174450632032844477932718968895996314271482477782619393314568966036928009953449223857502580458943261514957537657110430895688086491094166092859601623580444760264501852772506572095309935773236049392819188928607028525009394501280589710769538589453882826558873754656109523010043611750345442421386347721065234381116808282895445919466182852040187967205704537200528287389425370726978248477529632146265746414018556522188695291962820552963722478883065229761527832358108899843937973712662455471249459939850225050965963798677296570100146370333576871137571110785194655280777348212266608597760615790121710186318898023228273772334598755090932395092022762327070548643140080366698988737722333454246346550960973865646687580019873104521319118381451265852924194610383745012980584916625665604238439518278485514504517657280614886276054647261696499425276033876731579405630092485758054837794239483517861652166402781062508256009371456538953386015576139914044488263249114907137502202889673669988667323290527742939984720602129415419883292774682937567423546007526538625366243953007016777670496458526357302701137408937631265034702001404347090720537410625391349051282077221513498529265916071892997310886503061646068160768126630791391088475869547708691034594670266518860640683486477617494949942674484612703098708264084732079546997982119604442198441446547683506480101079395179651727240944389163142738222592933412459323550164116379138040764156910220252721208886867124142975362976572696509136960010667814188783837103575065134249045589059136254373520348820971726327638541132851488697868017555389174349761226480883765760872850846457610231350311355113280725700718103019097999179480825122405660341438746102150827712788517832004224132563414704143871371439047329567770548293146716769709973472023320798422691927576211278527036496546185333132683695555342975424066316046950057887384218375722369970446443809985712452203645299931874911181283433477879623701586737301219605602421659787566969413397205878731470053673955794005154644154141971055818387027491596698511946649732589744543266858086587952041529827254005590186945367928948195539562426364132371700279951306421840359083227214848088709765592315052495949808453433352385905094015645427337637309952037203840656774020343131189560145418377119713947032185929531132423020916747472197058687681863250359927279751237161409249858470715895241290560934796501093348924489667555328780656541556780419473449674515322607556579152112189276358570138595236045129056789077417066674380381960463783021328545693666966469355125447790978609878831194057110606411909180718651383354955303933014184449573229456409295456922213204443815290500458693707411088847448168587033106795154906973417685993056719737909679118556746145935794345855510094696611427268821630408291281535986719797368478953408755068802059257485922758804240785116486321466318259803917764759912426552036187338542534557101074913832299777969728648239438832176976441113148425989926344025453435024183461144529203024970018762654379318214535727951823166663706200012962402338399471293471933263395822044989723697771286594998636061356854152543280748963342623359825337777298349196707556560411856422033568710140944311790347696314205097974867347847530910933671648687100938234458238332273031228881935346491523363257417432007401577420875382571964768076150694580147728234890164960413281808295548747234827822318459148927039922965018947809454082069495944657136664331888080143413268953898785710017504782977791134006644896690089600142487210718109263911578662288726132986500595536889579493298212809994923601839314563763522894540236261360001690172069665950684839455622327595245060032756177973701902654005443875384306841390971603200157346885171994624938731741832678529278912490427352211033215080879085515265369766624311153089584944994590306546719970636032993731350405382986173131280811535744060697073045288173629915499908428508677150025484947685078021796921207301411959124646759203675365783387357495860758183776477077342546264643936139063970896326449094955557031907762033933941179742747316263248700150275511262519274076362387896525422006364961914079227764101046997995908635066281327291787770417691373063516852808688380640268837409043561041045713083204541845829503904514695243741757797410813135607560692342845979163244447052804026125744844765450273709215182566177394444373255270573956837041049884916814555678140361036880016156441950795341186195306563379417348515771481904694888767033126527500198929242284752898130478784725829205196855085605440539035894020801847697974474799863016552896412529743252812111234350541441847157170041235061828558666102491810425982035081139491345134746496540601684441843802000568849482109909580644832935495249118449136020956741936915923531723702065395011332519065200201916074704431880853748295891660055410805686133691463176778504198924793816131095982326980545709177332163092924554149292500594642694686277851901549281377612945265852377879352686534909200803763950008004135495444820701189029036095900791180598048999824343736921078299915627114914530527097116351098697526662307108461296747003302660949161154035112831640109423288468689706412361072694934072931888946167246381121258182877151454581544263213919089759701499288299843068330320474196212980879167583886299939603713760786084140140481940863901703683652369469978602333599495618895907702743205627184562352149315274329284288122875724335985402436113532769340934219602062588722134416083324315575016358212690071929670892293549457078128834927803746784893006946908983209646933275757329526022035672485495046470333778637247300241146925389054223717560579863363936554444778729175019475794086654687597008322054919873632512545394066570880119453491879896404990104303722492043144555280216105894566346135053383332559558318150896807792295909909348452562478887624949047143165580495811422954601520643130948919039911209084090132068231115531967188463581495126948097312642920222482230360620040664105751091408922584889545726599089585482596318120842681943485622574889524340264136450631841481949126255020540830877483670294008858615797530555412451619157440856081973787906532063817068596310185124214352886015336817966685794178510249449011964977304703219493579331710489677672630680964049318882274933308799582300797407427190378915861409861462025209981540203203898495650504776677741176913953897447921156556829926966784502266835740395488891536403295141405546651631976010948454812368635908070209956620594304533546824110022804613421294480488341579462640368102591254745904451904320950492771404590700197543959857413731056603000358250692440369476812194581530768463552833369968672451148043144453692213901080096713802591233744567670948905825834714967530509577846078391707353230082096133504081017306597239574658333434932079769366976829647225060044146496065891697157954958830789016395555965125769250327922698752891657669805042322628309275992186285847418157565900709363605320603808165362319634056836323593159679184097299488910076463875392444794290165981526801380217930609571782526511911584704532057244510344259804792033434359628275230908291042101507605490297771257376427886082617523716329725113961732434107908423705400186538081038519368713191091457539589217785535690804629883460519400508344043809220094790853147571580942922558476347699537695524234089338351226990813619638791510322891645678727975975255013927995479500025795726172059416087885792611545875033880041265911365219333458200382252418941764355146388701434540698855473739014325867137217088483952347656163261098570826269351649526905926662711393790436412469866092853030480202530901575905280295617482962924006232284990358207758799854941184572760530647464855326529090734424963597439405219611546541555089160902886510753089257085799054815090109694793789186252701336980114432839070200145153132047611949162990751979862339326243340760407873392053432913441402119393227176437463556720089676896767056759721190792803010110838107715113436514018752249958149535296139517926443830409830066898105214577363089718458877789631936095105263509803011426592118115600732267718443161766382727503513660945970241387420268445815374447189828267668194392860814735601675628870818615416038760079392923801404544125166833366947170627131084489155739814923659682151112352863056519941851010646936611494111559763701943433502774409644626958707762818536445832760099958198540696101516647289903636432624971584433700219282167729785959362792010404518395817033534028402185949976434592570734505132437180984469342329767775181792713055677390371374572933694140275103138243332025575014164445547451788660171722233749788683807943324617026472445817172977024616688613371896200755977861005259708785735500465018678692286049499047135273738899357320428116198194167575621039710509113803395901756069498934922341398760406572901553050428360075760394392197167435800136831152763660613625485595467519441594301261956262956208281904757931976746225024754037105412337446901174710482744736883794416111767398721708271063340679794045955100902660633057212811606245345506849697429921575781801283643733698941722870176177025342772857224429696560219196140091563742937374240684631307376523398293794512476126621568719406424815165942699036877093646473324413604002390977046395623629628360513034224921787665447478655538638710745461009595847606407917685364782292606266460601187243728991803054073763133891604415618854140369910421032433299588954277972092207651211305674784429913676938600349539672378497734571433752750133847872408724709125168656693128762013493889231834398650869755817426911108708870925856326944757961957894267414216800452831013912288417618422843097191945780009502688619129113687264846131792977827564258452951825182505699423179589047442880160759858167714647973505843618793637433822326590727614820701080825444212549188817445674478854251519995102899353597832688211569180888411748087855446287204568479754539413155381874300168141347686469183928738336611924830985359641115107440851423795861915456949373872756446685762521541307318743567928676988101846349640065611498373071381948305179181959837810255540846768290551945926936268575748329657150539206054252651027811356252553418814695323719046580399783678938756177167722902109749789979133375122361876003691056567394937998634378819611313245971273490490489106085730834931805496830929386034176438276359942959937076069469906449008225150026799683675744806170620509315390112533412777163247135912072128505236545539123681866372181102699790704855563580464892585517984466479867680050517684066941293985131328822832648882591924744584570113976558599589028492703661141356157815916175477185222314025803169370176641468511972983693144102685639149221628090078956847937657920270368337193355080523404637186989024377342121155517316288837259307453993557641105744765646507445581310733486782725530333002718909469956362210911888482781058324546401204814300697363051210948220997035634106594475754726950748266164693574942957834336188686033845125358190169925466361289527795367803931325672017004872283131794275391718831468025769805600318636128133832602905951414296981777624448955578368787527534813423916569499126539335503774339715941555935601947018682509428493507805378853060273165850450493932760484274915960123023422746943186730094143199426315269299781830877941607593133564149326388173536223751479726439179342547162615178253495213756082091684572962121831894453701653029039909585442160898595535733759775741357976734572276081522502776136487079263334547255530702316372580362583014233960915250538619747765291012323004316042657001208562901724891126644666791026916458309764100795232571667897165391262331273825552754617669344722810337916124485408356334560979310715220532638798109972246603475662060820623570893322900030369127261481909666774379830196516673969552276762344862965055637615541469604910310578610960438774010179115839432035500454745562386704243974096274614001788996709360453121474981921649500711407798069557012203512363553694536686301061930286296567451405783118563756367712493017624647365239563889937431321633297350126682983743517421205288121519624472482448354012613624238385183983774715023674095371380583730240215054819610861581003012379367967882069943368005831041233147388076576588656348228237565104915082940993029626736245156156296858957871276307882124123406905786030326745764876882627234923620889409395440891591134957483369714978714283198579899773927602548211433455798489944564486679141764657532146502963003260837725091058782460084966396223400166660481881549763739960450938588199119322271121834756766182943047395365356298387199150143547496634965354168308559165309683060438144199399938603523607506870086678807876853836521253393882591049432051052573382301529763094639955298103518432606537422663862250199685147499394097609924150891932113095153578103013585974279013815747433012225069935336905912749700281434262328981352383135670951748003668907898457225524052962002146302617624437232925928216243318118856401727843513495300176780271463867700782834687992727357847843564284966534557208849033524411918951409448542751757858303548412574657220104600951190249336006465418593391762152138360182218997848082457951649333546525728702623078494547299149122499757568103493142772583668305838762362135718364383312770119130525401046591437949386095363903791742758055646704044584777865667729759895464422788198929067721501419747740156749167298933584274110059605722794539165574505904430504961264206753449287248335108347026983251493612441651970835540157093137918455980581876526832855477905746968339557110144702559124583641819789791584284224215648932668942656834538161933747718149122675152460478832624944438575270572646701284219442399585515984241321919726157391297069243603204446328372071853569463594260922344411378496975927800506376852299364861719416859465005979962124631453269553429048743131225561000367846762599065587522234873119638767435722845748090190262896560917838362795828313025385126049957661728771629112015472017640509199193331074563802558286026113636741228100893200279549751051938000844973388359577261372585399534674014433413211179239399375712424178952962709315662442617897433272250359486962329789604081794179472121858995277437439067403604259915776093831179171707567286768175933081820831905035909722013070667908331705252145476985957570189441266674087397728217029927633307177875885162970814350087303675033551023131055954503527238548814256187876055591256395550974366538785418592631008004829562578415104378010423525522331609402788813641159131470004518587248008613832691553176249098191803049773384457437455129878265443763854527759521142817409872564883337038316056617699806492607255760444957181468985973379102863688309363014067734767806088781399258711869147176742939719373395596178184538614720475549498116142026100142374491840991998490145604652386675620928025190027122674526865515061006536630495286793161159558249266256677879861629156710473420921099347785882551803627636068184388388219412408424807533228159933838172713857580966799514431140439736153866829257988722471231110128888287904781599851870622079329545058469012323611576958950947945884533172417682482121989868903158842856409270037019655552103771818170409556944800751024422685744056106604066024295618610349006402144397735319745415620549263079751287985006687609190653807229456342479156457370496846944001018112799629001780927335956291576415902074378951901282116490051559188540755790001386638530400866471820669057436433801225535844287353396130112640803186980211293920516675829245507446409701646619730815407988424880819430072108087554583700658571780293183803248125048424443000361334773962490401501603710161415297699176597811416226559433779908107418870073874955501794466653275193371792399882268592586098287733646803208043476406999213890582858301080966737176531510480565636658518558271354185302120492745219172931411604245521887438546552895786132687987665256901997481035014987830915024494180751664239049928963245809714201780108467580341495541088329656535525130881288938953562384363496059637795576088450262893292013629479157153919132024072782801874711565138872441392029910686877421185579762283244251666325447022655997854570639152178308165905381784265216362984943392660768144756030944483944236793159178179369053548786102176470423615684006347351407616352469080136445326334137717166716844275220580197076472604279058092182255250366356117441867521901948782787967579786453488171741581709034795503230460676324365493710323233165680525458188499894192039032991306405235290686944544841456542241327502086906550465331448097984754614096615872857400294865283257976039515759443894461773731958777773930598039473620901590249506447563419086827192978721715515669495506637710860575703616701437594531137846901841400595714356903489847149612673590711693475403718141398494280188866415550652816045595237228365187461569088235514107566706868986890751656843965004522052630612791992271132028169059916827461375541763366700108604993616254792515283276771787705176951387451393444437306967977959517159052496801338466831946004223744447949097493516603913615298992140709141577458082950999685700245903824757048915454759903191434280956582062972432929411843298218609125398160742314638635078906009209209438009544396073845941553564509328740466174890706359765034909339573966499489962379767670718817222704689562015345842242107385550752427587022488843504377255048838467397758908559328390578287358825562338634268330525983032765918692408434445354210876642674998905043522054338414433006613026116193560276755791460930383933800794137343065244406484274892464129535697184335647947004571091916775029273898157356155659823854206308473697233848633443086717429731324943365828884024042526341552004479212476294984629249332506378098290967092827097692014374492550667888392213679025204178297988840548707061194591020315045805861016925475341724729852471982461490764241449804760709791059897929372948607004576241952350540217131884254224355240791146963495626933215210842885236973122469231341854716876045138253911951980237851402502261735884203806903879638107961537764144815757757469345394625320450273670667201201415583203255118310303864139281768712596853567499193011770285613692050389622707644575539351595004454498322319105426164974960336667134068065904090235898698126054345918363178121643119445572349273911416335608493579861833255020756269122109390055334670159043540786233067427488907636883988335491772025083140058739634804554077960854863089385321379142401414048748013285935294674839749008004425359161883555112334938781937200844516862452617412686458470007317386097154319049064471897214907570727731210040360092516577602181394059293447719435840345848862918612038743208358611509409994413785095356647446351652261729147179638010603560190674199064399827449446170779775924370354135421706263237032633358293257041838317272638608043916530450151955833820891686873188944672641160370027854115253766761111980600414658328683971946722276673043125000731453498751434330694564063551362054658003279357408656501216144956341893954704301814657516562209769484485802017353288363194283482317487885904084949289423986296417702444426944533415348408942932242828389936517120363963018925265149072614863265946301971877672864981526843324566385499673842479263486502092858992934214115495073571125976545186324602119261578929304002671811924306130885255078245312974165739880041124778007719855143623850025215408478361843603850998374974441415026464405120094755514818974474647017563959417290660703049370687318237355890050443326208674208023430120025292055777350313277818250273130421495431375139643591744893952560718507612115654852292801308568880208273799634603182476503633621637507759790788432438706786393156372929297513182434240703740846555529854014160379986796093507919736439830159173231303457344348412953576136726764755752803241389175449563874525359215923526000937813667477626965944690281572853567116131284027595744784686004792431452959322809999609336140671304098104491423741157671665774344380667808448638640193578437592294109071486624599046738521985450084826924517504541801801279701777750249036174686764509720779601649378944106492820883474905719258672411213708646249052798367190402663036059902966419838737732665475165674281368037337332974962381024860808438828513684797480647988904725360211750451212193093664771640091889424765565062866278455714878809271009578926593080852676601449342856203952873420192629655056076463832488883557772688521312608279435697476021029249901245350599252124080571002598530426265318447433508901915571112155102961363246723141897103320720802636449837813617468935293039189027728432884017617460890720414875820970609114560391575279322306740431628867265728127056523343138935933387333470923519023800748718759542639097753835747762009456458934774661735869462101164979260081763304653065522750381943453258689861884822666583146344945058230216062559338254814165678002739432079103009944898600592954344434266185943139114905051649380740742024365608846659414150754057574566896260987490589125426468823330502304292072648731359411659034473802664749638281492800589538633886923055822640841410216853345184008044444805229333889214743228621154495615318578270404778274201199156304932900119351361169951784307083840790146754051109909605730659513083292289384344383183227642506384852760749053632479462289937197386870943633762301879686028315015335662483511248089816564917575346921451112147398892432099864258357812030932968971530561706107833459872427369798988128936978167959564325513089422912879868689432171150104135897823402293460760549688259127781835720826901845646807329604000983109452628216984219798589052832432333630364868569522861626582441187882238042631651560484882822338700689257041644684064696817396487702295087486516216471217714727640158754027466842829766146842401386774936441217053770104525665236614554482849149013604768314333292619552728639048220602324864083341405895485833816978853548914432661016860355873072317169426041630731339992984360578379206568536412076537349208152414711113831270058351964462461483078394360253791753733071672670334846753580995608426050443813055710894703623858972970623177852389548191238460969472070677397786347348787147823372364584937316695450576746180787805231784292130693602387949381561791372723662978402154442394312276776269454534187354760837857702263611252502012648754978894048286323252429369547958460056869534325543469274158793956274057406796436667032179487593644737516668292605105431359619478321466050028267117711391051374975769561913411250552330155776117481045595889133421232650365448025383135896026823822735504358541082360205051547248498128249691926537344615482564109847005626908850287280454545688052922532820223996029894617083071021797281637667982015961415051092887317899292321904027970808885640606425422580950622050139823775541604042582731424701572873518279509898990641177545386642625702728535768114983003674910950501785666696037524193179137101423664084931124474888134237399661019978590917087239689961759624722610693528254734402270460830078769305993497548658990955329664088264181341571206377297482144558762597195171295836736693139415953403383326870621077323738430744322442436430300840233788856264286661757168195696520962488579636495425834321647735432229381641503038441443534304459981126190767249544385525406245271559875709083829033792817186775540717341010345045487943675284259308496325528250441785154649512362910224636576909682930435181035467580395434061937409773209609451886704463687294168345622787995659231843397045538725751082409417290903747043128758087614630787074064317551876267869510880877958883151369205803723935931906687129029306181956953548978325843649427705420791127267905396091765417352216800878915703596296379863415124498531219297886886060377313108160130087645972982456044773710920352410007005548845709306504391553015591926968270924232063362141723411849487620580186496231047487464334233984463566339082646426068816569753264557329703018890916332814793492124680214430040292094184696754299043780093167114370392357094922164681267283440423400814444622258458383878496096059100075305926290284914273881364453645749904423917534376115573496378667190661158900377201731108784199777826132866937767503540750691689640132556149274245677222528760496158605671667539213696286910743115595564973780494186671770480568599841177407101471252255697405762477697605624026358007406155152054987958235526353271510250102950272156421350154204520059230543949032621834538948617065834253583923057244499213090812109214833839740052247116915557275753446737292631603667591593371266931707205633091935796960362042001847474095910479163929535610194372891726815141633110073773661239845712887519825046895912526241022216135176742395477771085360603161945005746138190432607417223964857520841761788021518700263369219897816586976695363451067511436062366614651726143029618434648164698238893931567186439227543065010706091738871588536933843953296569026724789591303174943205790620257674396357994620920282201525915627281710367702556630877984524948142059946120294893394555808602829123785195040143776832270179379463523882632755139495491211784461504410670589925510633294917729218886726377539006680769672396046151723758047718593303559902718864042290053281211833870481261934111885848748415497119169637967624393115343699758791229198672599628194169986497500793733348634743666423314682697147776520348634031299425016986957933899722729279894052346861347622515488872917404798869521178424924645104367612090677832682145698271447671634765458465309552856754087586604008968570377205787166325969302897411654893145501390033037441873189216373069224222865841628509267577878200089310554926776081114228348602267460235726346918918422708220524596109220922144987006086690455443475718795654481545676025112936718810003231896892771437803499950414852293914199916559586827362403725275346143540534654935900509195298640784193219920039564509175837797546966332618855609981560619057260935865288766020931936730641446697870839342195647738088129006195012003482058093273161035539641756794404265015644058564114205829349181943080152807495810475578617785215203308343997210879979539050817043618286724428590051794894925709014802901595202171094933415676237330672238778522246601362777452630948007053616313508997324939722634339721540977155425564236205696703198551833692254258473055845346682807200614006154040246938799631323930870613886810426593359874345445023217615241444209870961722037026290425206895080349033860015418653751417880997994222525516116256173421325460492316575030946588187032260507303522572895682159660062417505795554148515244682610119269699754260313539484918472775711240081154714014094196861603713739297644879839160578560346871711755766480332585614013260037024657480671373616442614958241850420269529021612852866657205447853991098704386608563326737073277746414084374514007143707917555162659023538814803757217291851491117475882058847515525572808077748124927615395884026933908903332133479035870060645613356101807238907878029704105522507940289718006743251120961064146669933820905660825361610897973295532784104587163248708076076450227984898198868128754761626674605914278669587150517547925844116412758369205489978977485045454255852962803341674339390022204713754955733103023317826938517339673321518423719237733439503147167715654778819418891903047748926673035334848516645839944270331817894440304188096142395925084353051555897410879744126594514124980119130329762513993069263175051557758135276999772957026003968972582696286967664606445829582734067004894935951370589803899020674445887598198250042490362797330876594512531376518631605468452368563070982800468457586507899431145326543466460038708619770177013264448624974865105036759829465693680698988869984706189263979308877470451443181611513363555802416798703248338137956610093824946341152090267022392905198418318486564569019958975140624456810590495369274101266662754235715846801558545684657953472636028600316959004595400977387634519322153915976178930187545746740700302503635526235358014178155590018678926798795979031504798263745880619021388875819788392589438529783087210032166004712808252625728838322188498308427180797772213549338527609908793580780889229891947160875646168281906458644101527024840877671313203178851298524763349488540725255275185027107933749926179252614815404365606002980762510879425903174076287585591762236577488734578542305626998390755033173712382691031703052992828231748697352808379503521171761708547227029329446329628380891530365323835730371883329676126054616077528707441219251536726765933074753800327694570876734777846545268478583001122893377307919932085560442613036101142740317065418500810370501187764927792685032796514403169579338909629783929108239102641226198988522494704013577645833118083311162639636824501108099623391106346085346831945663054204760605325776383688692033479442719996227265679962771950176348548862790009407418415179497068662927311950843940438390038895881024900730083750691983642260083907801790846455600831513592789693743890233385589050057385196389751567405114944156865619129798237753798840568196216870918785673144595647174751016395796253258227425327796465547846890424028039663793123542483919777295752098471627273580090392522967857734709002258851697493345961846689230880604274901682184718821337099076941996312130116985926411405183027571678081152006174055349622543128033957643306628284839669911159543598659716278574080562245163448961879277031379426515393434011469987582647387786650524933795592641380307336735924101948690700595180622586026629294394260290678955082617432062502220043126412730732290662479146779167328753951466194188956473956219137789574702570346759886081022473234851786262005498664624016426105269916658682944636703736777644062027086646232753548662742909739999059983405771279246544138371635342954633501380899563736005841977293737671925282374383361722985353815826174522831793577588464367963066001424252655567286857832440930664542484906648655180507298612691661140837153020889564628762920198363751765045032822202012075610425586967498846945736145344591094023644597319512739372442114731636250234193449277125877686349905144870163247243867038696212736361854223451965973880661124212650601153795053580704587351417617104730683404164257858953488052536625888520538851084891338255048895129550848184833166496329667677804295039706205460981307094057762774403166676708460218697669513137709718819157840870447171139971898679031806892056368117721992394107986141548684408806201148543184590383300079227833622952842404364892390612257033976597919349688950810706311397846033460906459046754910309650623502489511235180708568281138381413010195256880490117930675622297779981540594174090523056521240380587790812067360249483008105912560654305978059548998330282701044403912038928715295118917799448346622307498929320209540674371728347196985423065040600814646151902425087039693933394675999733910712858908616441617595802639279422827258057644425482086607694737161111809638240163259203816951268239766333791056571222771466472337032668814205756912174396094549094592545201398175551583693150007987827935556240002062162831025160550539429616202169918065200072803665558897692617539920734550318862571452830304719020059648062206537350220524980528092573580854088141383833346451215883988115967810235921841759651984073148686222842922020207603186400262652765751296545464055339908946060602287539738032395635097403154555078461311545758038534737145964635999099327689339230675027799060445051198799154719540342493994165616092012879944178734029261839317743632376529172227103698209573855376880402840633827383927035099760520529929265285369938728088199345816193644750172743412147953748177511605908109514530933633285344496442203410840818859839480908571789564308157467278256769052910800822670045631997102892836086028842124723351777652397900249969321697321245849550318088532803623850155362761755018572345058797519925943769041706453567446443337098870602500044940518915542354964880156130298140508386885634464274630459182786529510473901700444501853540945974227657899808134547077194712447090015421229108778197040342154560798008923911131764440973449920319277883938044127968269110650419078974639570475057874692728157039367651400532624153881873160518573344890914624614604397207226344705495773432464664885272791236217015914282502245069991628344176420698324598151235177176750575215366037400572945483017486575870975862623845506580262823867370930626322798076052854520073452871357179345036090789619435026470839612392669347530687827647433279170248422438622202832025425116262124142633817516014920088955452215308037931534154059881233073469583982870545682935242749113267181512904141778301671852375443150404551094256635734717886026782354872813222365967056612496412834370876563751831091413449077188351748335934844951492041609400991462583186870696625583000202656886353869739099336639484776161394117423560040316894793848590642748495184143645829478956678154201608490104999054960414014274905899316590944635475826061502643891121949023932082008615191265391571480270699833865608060658122873500103003605263484563988445073178033353079128443959920623246988535443579614285587348976207283883014735605147189917698683322069741627261366799657203232877847622405030605238502324992875913477998220319188827777544789501233803944965222205206186453196332750840911051806815296963236666938436584094815749474197567011575128984199494930350719760340957548147587615061828803022669763278571836992355880258113729360751699691678227712175175533236449699248861059601365144446177637443242614355178271581913688580315979023155623681591494219115888602973533274692393213551299012953644561369420734532293472500482021913648271004879646898930445946578049863924239733674977163613664549163360421438902471148546224269833332609433613872362097176245402623326808820882342472556483703395085818408401841480334623519936903063232610732366655335960617426178208446534818674878932059310205290049529539495720463738158155668313113986968329852999436614269669074352931807176104017969216591201873394128212911107206499387654720124735245542182670640321824751169309417666770161655074516591152194186115607956147309167622286360109060368668510719080642743564970415261908275054894142727173705924822632401060522463850826382164491449588594477982639857409058321197113227317468005925313934356182190919688923531963339507048675286312813810183771321343746458770629251381900445752552465006384593028011326823827954529170281343337942019931827145233506612620000786678691977718952704815486906982571073149367122468236712011133944630306563106108658437738802287555936665254209721209463007481579026993781564724939972249847064290533076400591664849019515428077275817657260103310720854039221622078362560901431587352916823909563529828554867754006147269985871273171239014729122227758493987602007042645001805822957361378825484334537274642865002524126786636999933322154313145047218047750919811730341936830993041367031390585608700361364856339635592289613170489204501912970107277469273614183291770149191891444970132076525869075566317837626243387207954937215976247678713254118737369224357174143388112164731212653026638803015465967286087487906429275752680001660063633439141022642992911236804255839307050124760536192795737517857061593625537793846052554147464945946693659508677615010392362507247587787065405329529755260283914153801054976384622251693343222308387400779632228708016080546951851303006099946692289212687264948834078565269636462708194110359064212568758806592849374099100766694612337477307710862123807884668563620304185469623637554627610967777330025720609171742398226616180945090766330821045790617080610983541442831375699957224914169846607434695416097536582947694853833460112208577597876572679339661048379713154510564084045968137114430500310819510751396158261180186590824690337936059936241232432378436186769844303032623507003025034994608150483278602508617018045669102633849771358309455227153116782073294180187749798797696298161727506806562450735368703874352837117105759881611221656302242980619381117125669168069967015024105374397160129816358590735142638217533918938547242275165241990418158820965828954748695957885071626994909284060237092624991318687730679485327770632184517815769328585041536605066890619300518646424487055406663832176720638756429587465707890418027249779938979108514768923809581856761392851663426793802663162315329253485364124425116913506888429984582614946975057480159153564733235065169385352479602393408381915074813901977880742440636763909308450633893268961516933199728875162414582755558890697296059119968921782768560547110565642906071370352993874840330118558083275900279688534067804313900341748755950457105555324396123444924410951618252718369079011957235115461134141517915843557051211689430821368760223905663852954172883797380664713970072867714774696534697384879056230744665124695399468433574392293458396477046344605004579613165322614126298952585315778355893569038211433234618594633914077874146477374060115477189197536873307764935280510114501008182573736286807482216455074455526261024195287838058458954106673613611473663213973539241372161371783682759206905365116424408149157820505533317559514410524145870188287909842668141302434392527260303648747191417168573328525470656656477757281732892013792215805009851307391163065248381345892704575415086718636236595568230876165382099041970343439310618701763682568402738817993886005642599326999275908464346131350394251657350828014332353897795958825780418475323726009473194946154578566683897820261933531265030392915431871334573252633845477995623914556181688398072996748210575912760353491425426698610255184168010099633635878877222937242707510570441021559781796407920662690490328939043221802770079331753373870399954338260026848494620155195029367239436584036599522278113202019869795396434846093721172506638004237426421684865930645965870371908661320637603309291079934219815718594174719940846951724902953919265962655832909308688774468976669317796544125999427993294273102502746260373516344460122461098065691949035837264451908254495222644852339002825633467748760268733771290592449703885655864271057782107841435405741241734457413093079462754171281158624917782703540586965988915071621782231124391456207811265729963482441375435754547476014133775937549949466863517373490777044507416937301252942073008598116587659157457764582289417616051767230399007169763443610488832794692574280883409392594252668581027240613366215229653837474861478589099951260909359442174183727771658057016384978412176249135779439484140909993280510678866222252780081011450417526154194092037550389115770775056075410647440718876714811943367921153633120021002967900601406702494461642992489635100194008557065691066334161126441911676479047391449359477095714381438332671585748847422090335414035144320346367715187687065583487645943351787195534934831445132512567328084913119138069316009670138509716077367974120077563140129108121759601074588883069040634832643671839904221845593423823110763978275523814140395571047177247419844201663866662122911372868561199816116838122594536079126752716237763152978733522717847973763762558366376337504053204584446946089263153367525463035884651849470760300990396361671919486223411504185438272605450638539729228586060659556187976932551861617162824221994904584923899533207440935065618416594117137402032999594394729492264428018748436876752397229743990877106954534853868898329628924867504171959039552692900220409849932635392891748827955400846081729800265034202010716019533950838927983204827661524423848874547839809391096318846090625461896519623285202754212712236900899516410138662631481141515101666010494608981249078251633420287165461935183376944974429670264333600904944308923089607706551827766197729029177279170539295536048975206210615937581269356438065575319271541119457067350571060958100467648181856005128371925272979434342049868485623929795221071773744332478111047938492755548983626173614870636526885261650767116109068231999825909618526846704870334112756396688034351286289263176673626407498800123127367002462631260094810812186744835066720869588719364131392489073690884477907316913068932012013948735542367581932450876589813513407223887667309638141719162265783748190434968524891535151151592186182712313630361925926622882535998095252213521432843972219520278841117259677726226413922987937713333539790504669490423763167493577621328889010644167646236400947978361420919840913585852740138381701854776249348195657910452632894843458813463823313481489280650833384784131214032993776169480761270981847925476621119627031810221399341863167815297534723051909419215252436136550443350212215008158990462216300722089683195352686189542340031564727683590697696478586848100343874453092161133256139162850830607715865893198373251014565469015157414521283603695375887240865875509651776917092081055493441502209223591737948207717413154874252313127111788606255399928396787498107639223756373721115251923627062740631334823513615955617270860183236449301489913223482024797995529326527855714062972946673504521437043622374767948091228885508119098611429988536200157238932156724234164103404765874091364633264635580949991718965945415748305928485037618449796545617194677595717029837407213549604938396376670611404941985840011231762866956820055947462500205607205034074913463228153020758171184291143715544134435438512368035407187272209372763419492223469901685555426940198822945351118027819917439051324901688022006881356804954661349040483334213222716082922002986744434782606646623201176439471486862357253402249602104662809565529163159485924951424676490099817446901610809709585708619571312339958154552318447462514022387742899176328100356207880030514564539833754816866712574229391836811686629102826732350617174677039303542540179080616087170162230461707554095654974989353652488894316940571143409994670681665701614799121850663458558048865966445441107213190765567229128273604882201435438148514019682711261210440057549827216063921079239737486531380771241512204673739633338343283164316240556230115690288912223792464308584910500915494337250903512195532320444126657667162752666407549414744409041354803700099803214110734441458445770479412485571196986362730162237349909981155115797133447179735762410519146037368741638891828993647042015901239179060437807139205784016021048709226709613278685012524548750184470976954749137970590186489615672855507047053720736719212699179804981758974826448681048270931807131366950486015661375157354197219692079847828588413752483824307964765618786973643591276709618546205398268339456501464273967530038602735888804463940403141110454807154833772986320829505539047190345722449130360921399266404315293884847318954555935853124895081087870515458103080228904786110931002771896283417249301134603827206682387735012739112584287570947639285837713275595441346203644480084264096694277524992061230786332976561203223814259671354527313649442333357098455290684089435008900031722418787468560452418474773372560256755076418845874725014535136973995509015774335582483636671719825428752402298906780041720509779260627537738586753781347209603126464350253475462033602118267967741263902251725120018479586235085636602903426404821006424877288210388190506273942563155190161715873893680004976917339760661058869346548384141997916905383118058830336533798253399373523515327658301085086733439544913408152730554687682384855069368918249591045234275015342433905303080012730555102913289047077298149128126873795082256860792048141974824464245099876779167099471775695625593401818279355030132614435405587576281320671699325932885963612525141643166077514635716829633996912566262245140607072618130666916378985140933629203471275062713638114181285511072418684946290272216978778462000695862683940543071609958646018292163123042398904479843202253242804479003651135540413159050778266177068126238510800469019190847110665722421206953569694061149014788530650573663114346453030538756614107013052376679004917626084270898907429959202750170139193878813397223850673859927746575528368423161849390561554053432464613883795255806259528219095049855029674785430523256183913065094319128339655131550243969810506421264365100112725902557614543209721291065942298317615325037946304994247317360652733594320543992553636111841901974117803178339581757910695124632929124129895624014196568271850617907125414117390897673855138058424438881043705380630539146024909762530225547961175245176562924782817424196298866939830490178498032233808556361061555949601625326653432547818943234895700583408823958020293697888671992999243755256620708602647715264439132309851812646716339142541829129348214033282723355205347808567891054312857182563408522998664840102343900644700698380995780402947493139519765996751514616842249691984184329373297124375387508166374048633143839070667213132203090550923728000943840886021952061916207012205935650982782864488516118723620486532141767234653347889162101505421683640508083756387947258472163128861639251740606531244766167590364630855223838291542267567486620370793275373274423531488708470258162422147425902618838155161079487815503386765757006125470234445729792592318150470365851590857314043744145639429453028214542188790212531389649509259517705537809366723423917863312501918799623765430258958434795405581523675175352552926747555362209150098996369652401384479455518817747338463353867748116102782344826796975436527470510912622798623563235527480113682060801236570993078093406178522132524405962357644233615623962812643594787552265009879433009947816155853538978142191609582287951656244266417690509878339014752629864268837165917811315406393097074030442630547962574550729617280116206254916428302792113213451725031499659473815831491674807800293867079068407725017900681620560716107831424539258111711782445162625722576991659244268162444794269162105712923249098945196188695375276545057476520746720861411931007811160046536790601314785552944557020031726105311381924741951738118369152976114652395891063454970899569603347626406988363743170842780491000875055573677418938811183626798711871574254400952687958043266531742277992236095013430355286511711483828215177803808213516965734300151475188478034753297134741694095964879057320257064187787426717905997621759917624202622351633600618495771391738876902249524712133999359143719473857921531367101326205011427548595032320563385920262448955068644021311694462282772055126874816592160717653275142032356560921955866415822403884110696815058905688477813564835171303850011390339036835719744098956221707649339301695331258447909547395747510297405039608673237985252023794692240080317088024234052945059613520737044481318354162068807323404845283111586832056677461270376623390939009391560848479043027967957015676308146922750171305348975426511710778998850645640598785199642901191916162883170441914518764172369469556342709236180642755153751528601917793814152630739087261693301464879722084545950458571932456854564269823691973460202389124627747510520324155954373481210344867326181011147784615383982580763147639397518439520025070537034249935403615942230622478140984920509115440648484953023099943455208056209245264244565498301683182534335799704723987794358117770881110414225122434771381399268703576722647496735010679674252488532055300522743212773809604644196085816182568501511856803809806410943119351291301671549026917718658118996308657142059224911176927310488491007616337546205201699058508974663314922347920863790871134719469681718861955770528702283280076535075674545237516194718201774792600417970671346726810574278002665232974170170096439194162818110130854403577497813733880906508186620344557381411682799097698194658476448300766808881918437708471162553637343721491330516949397979750274859127949399453795463445049903639090352958857491210240302684938477542858439364503089689876797357088099628043277475523937377450291450480602284424772249180635160724741866465571006440024880272225932803897532883709770056563031614040360692839617090261324016628529998831682496612828453483105033696654934878458424159094806137828466766836776593802044730005157273500261200265688632884159880466367443432831549176472390499796081714751083159731051315006361407491309453637376331171461958532228432467928468943290711699210928775739822655471579095300321843689385024365825713619304651037350582772895780570329262615446434809305482383020624962967421415551904320334850388940189082662719594544497811175291840884046498411537699025185454914281733658936415450228555231895653908658280941106344376775069374172090259967233996528149565334834608390718590767448177355710726787118321876636070340411100572510751965053358891258658838330944433756052339395923291688017856379567506224936866377439173548149900693647122035360053368569360989255009709916623005032635141676932445878624900869327398362131662932206038613419649421137808568589607506147775042839468169980606627223917276535900761253518019406409006385439543150514520271766478739718335422974366973529617562338270156191609580215112455923827101765014194301941003226668237962509703102602517500849166170074879529940580994394485708647904177576266142402020587313211471414900763382371849934484553773484404398740123585958086164399104583992919699214806499186039009444537291710346189425679178887666865928358088859008246170869562316765632001452286845287392068543730224548543801259165279473701681866533566696830940643019266706397909173127852821313976125315333644893012067567827193566612412072091302887079539941161489208814799472287072536504258719611686202420564335676004012467135730770619846219766762127031528133655634883491189972451353896891857226459077240616758937666528761449485956393855289456417048390969887551491924078577288846745582530257700979831610777353840809525677821141669794818165882362461703919217613791586470080203496546042455688539711289904531646569463961414847502834872793637121154398110697836313730444589322131470864295930518437073628507266570429168832179581566677189983730846824050410106867995480292896575855153378212494077015498341778910396342872054545750761570518529552456971685821669046116866746805148228789282123182163197733039446887501447540503867583063170711458345940154455007678888362450556841780047882185907675507584439737475616060434922831941254258918378161740738620784210548951939224132260794948077870233692549018961829758143947499163427394640403404071589239621920392334820472301488105163204185322548117074390402316023529914329901624019877083675718857469819003819304645354873426406550467209919521819264486855252721006424233900116936744560147593859831249831611733461271579038646364431004260209115361814387423434469326808036636336700526113631683847882855975162325932044507165802729296984651129632060021221912957006405009282882731135404430554486166321020241828662161791312299712854673720349914548737565934338693964718430812367423010798014203690057561408023379034188192709087083984286507698804452425090296141303735501860606910771270170409073603617059786983449794103778866928937245695057983124058643246825866898658488915329938098545182835400957942780715366359082285331621769633307642118826777108464114879127698323054163664933689671837679449125669066870242431246119048818396704881872716800224829998918091312244624892058134720028243129798880090872911948750650365355642886569113113768633281206238885599155485887676515260949668914674609798702357541666430479102077051815236912676146680268428367334636548693112306370873342114440901746105769871168895271274027078428932777180707178358079426539022060624664978724204520413644514144536055578723576579501998587711356081036073450669473367933339982994069973180950914673094123050560063068678495753894476939352759454929062916538544014979666183433637683857518014033777987815327412028637031285644131588748369476489400663275556238021959964868398048833203071505585842850092706877667180237309431040388661869040660071542887670793293131356740720559060993850259454806831653955765162290964695252433744438551825406333346295979490211522988655530607277849117944042760784572355093843779747092767868632205861611996749210978834966205743433826348093555034911775822552752459970991087196190239414461951419317085670185987777956006774739904278178311326591862148037338981106735028102398032615241163220646676120089277874317632173331746862551842718635848004378413622363086858342166656156828420661380399073096910874513108657217909507640853721136833261535136860990914653905478308875872603981110386819285816543657693329548980911331342056118429281597156052120970197127156908014544927530449665725012794111665026844341057544236994929699669691720648165669942084622920392519197394367007057131059891606884503165196981587554068439391443577633734096860876510123185253049285944275701843899337369363747682616206319382213036684822310152935935237416941704970617920371843811601809060379775033083796682026552524596853839636527319745066047157029789936813814458794755012389055326149067202546022203818455374839815416872826106301045514451230431995653506660445692804310958657665222789167895700042545036857535999142554759441044934281339956402136646186352406238810634911031252274425715316521780575686575982108145656206032788397943690574259868625813026836408662277867925778922974727131291345843233782834377061884114946269740889281330109612113236568877152578382716187458327918329400049547688344174058134796603743732955950905090510411589077703968087144958485384359647079489823913697982178494254310572302087102490184709459897494219136759678321801350526658001783390997507149401355735971740683345779153938579497698256928350183668353452466433124479666820076758778849026910368780884354952013621973940684837493422640142670514124156782628098728363674012920957769485293482315877601495586535864195867201572409720365163012677617868404248563364116049682032519113078806596521440365363717863283368385032883907259910776991920400812422569977151619564203787337263766529494850662398585652833989185731494320063934634971927458481383292668756667578935479287838298146445659950218486381987553522351392579672052606544839916647414624065067901111757607253933865351771354486481231585635922476756879335975221598886969898555532895197242146010633687027656069401655145044138934475363798297628453876809708114788531036967703174120267076974816605190054234521052275926219437556603916179332715705494429977589720469921755243576149922995597181116009686011202352398765241067903614590477459031215541458032027021329512289853770869917878881033002951768033711340650487609000145080164545906937972757526690757039725534611735007866958348595262412084903728669444476522472903024328440253891107785499039892863270113478144117248434139568439333996859521443181486460376867150639592194957962187580685630334045524458131943815137120511277099843910258882434006910846031483650394510833691484655768738704603863222201844332302071765433980366696320076440853256342005108265687073414945663059418191197576626907243999408487448998719108254073782267056816503030870679745169552005169566243163870364802960891539470001319235404232569805973020183295248309612685346006924961785431133324192606928525193531426469167596221876008591482066742476179697424402884329267305119423124705697540369061822856493358750176358594139746243307133520309248528243551273858063658617535072507753007149516442621435330118462500443469977032931014190475648321444448228978545423177318037598705549952497649089030817721937953355819327184341160791576937492765862651603182069976146949061937897993418877020686071051278052575532961619625487584029835316860132639123647115375554783681977210587859841971618956624954958469544590880776467806456522331632366465495204182410024848688522869614251312601178459402153715743756903674615301938124849014727825360403947424992464988476893943562860883745467338027584021034562970241773253510413459946797297042642828181442307672525725253094149954540698626468781823227423234500136133482532965524087004524025134061647538870889081455104623156978535524003267033472709836747105061300712899673016174720179327543619737432717820443399170949165889091100865313663559898751026724379519375763125909916903997831602665127926132750983806138506255159942793922137000387780300949860129878818902259407750980003892756731276607574708410033058452168744844511021687589002005847909686276079688000779612766525530268236241896823056466390093825606327729575950892263883400877992939970634761992548462760182647849016202848116382802414525327865953579821257696568090134900827431803944516980754390951825993284341242775642761647665268422132870088095482663790186250920578802456484202713355994600234306222166782491530260175407697489556000145869256177271786752123790231410289978602861636405458964998928612664439508094870580168060978081380429108975292628130407858917593077874121689241910939829168764438661182383864564510951749981142226258158293485041850548405634393930924450921311194412637540399194969361733026161777086801064824095060388078647542085867991573553623016456660763584808473781148085647563945228617131739054711867501662468854903866274639014193208471238071975956145739886459874922227030731306127939372065101489742371368867219517205501874848127410877144276081416724959725412497700929300500898169776760319394891295351777336622888815809634582724916458158692626381447174850838323715229433218980947115785810935070760874423866533076795100537162484662195797691074420001105409305616259409336235242927627600848720571140740832364645320275186926203404456567835851721701735726720588377269709758136269915585863017759083341407828866265166366274956729839753452414258492017837958470665535112651332095079355720205662514492115065690925674325333694751630453911717269052138643574312600983174904180282076690465242436486557449955242848655394253548671839209967639175856910918789666609881523297195170115897743668841556646540740952316622965063133997336236100646192238940729660812734218402505785866695738212887672405986305327898908691984205919334973611591369849118065344938104276718427052506128134466910406253155564176545229074224575808191124402632424157995241196488098569523342707193017497741537157681776045615475613713912574841808008089506650106737095623833867557542599455998512903157481206169122953889819606547874749311978160338589515246811118267172889792483360100039287035518228860124773223262841885913484844226550129289452568691258164952550528272855782172215531242853552319281925514599063208759280810894934105867902863455817867430654699639216334031577681918573033295102774534024788221366375058248914113313050909494835989944920341350949689623924540898001607572238779986078124690225725994304494144559834575784212387728820530288121695908805510774686821027333676727822290056181873574366960218223513299865105888633333191148841631046703677782358082511813377125249618965980562368606091086641458686671958743552565118064067295685597618692220095456170232110957641525014660007328440055840540811882882886379137848996703724613512868103328666517278061193860528749084147233576656593875786461921313647463169679983825058327031367084489273680455371907821629648271236129683157248933661022766978551108163664635738969304528905738296206189149129423573775510141218525521541986477919666712377238097474677027626083712354904807928690878540734689033650294909579800681295909873392258246938434663433836960359351620384960006850732329723982049983326304683770302801810830448998281829600879150820328114147990160040081982902220680924775698714480595784697159768779317296561722536843094124353028248867464873646201473674046273989819638601492175596388385329101217508017043899188597946046990744224694522767738481912433985130503595035779765371673064814317482839299917064133941173794576182140857256581460047890897784374033292233730619110402460570455418690844307763953904989990824959089086414703638750777699312468734896095401912249761126833402451060113441737836383957944695065465441278332887563759858842715886186044664220906487058456502607357273326956043674974969060831309320302641444634174528493396851548574055374956467686383144711212493380791618054700832423631917856829354166442029414815258634486660897217042659509001043943325352495030412439529693519283440794650594328503582277754209869885112173778473317095134264157984805832615228717758700840544034424562243925224936804498253146101288981218826639093748113495068579462821531269782929477678082762491666721080776215757629653923262410528351896447194727755401278457509394860524210143278355807799575275022655847903282390229901221619795603674344461105832592689561007108108354892958050832191123055320524535863535994918259917800089523210495314694567631976670649613636037414063417963594284413723868606800517105806523936063486659979482178210068057732167885238423315528339951188569182223034979755894255272339647204216327333778859710403962168805389787602400968035255149266858940051766023958550668952408263723615592053614836946826477486806103160470526978969460192260700001590043969659546608093065056801649136706506410819856350928803790668375514877271221546955897075711834419367233571252908440874123657858583344648455995272611066882834312580763039506376375219895333806423827974339592017912246289166965301871177801783880384475346140030275136856214828486625511530092083943663060740429990136143077829644225541669841863388898711803520208490070455088014600061798900640610627174739009902607825547645058991453707968839587419234761116783008170331110718699221404584407067201796138732609671453016525835643474732132159883013462250267074132252558122031998745828647700731652590587286354401105002077179842168609887945108949846284811258954908446312022265821936065909498974886365301437053085646633081700725202362828969595172214768735420433055364999439322699537203311512123109830505757767309354519216111024237448147602131319787849777926571645604634642022591034941904493200960696825485149854112539005603639931328405317896411542933036637804330052045526551781349813058731783849082542447060894135045632110312404045688931663809263624686137844306463078266318320139818533407635835046019852886499510223502772221846382242156894040109967317547370461717228250516561602545730097855627033148027968465314328315785152876234749074817490267484016704180135788469227275437677714419330235211145057078473421675620135167942128595809046700279976766656474286475132892164043910636484446991771275984674029593774714958528351888105205971522279868043243629072873074998040631403360312632379716101043437556968685408950766104246305845229258620874739200333839510427596303412806307038801495611702035900103020905025479439319458964628120072821701218948603843557747387006433370939238559655626931537316018394530524902450599249109584854260879372921262562579944893277359491049982504313670365658935606565898813242225320732752380266388220862919697909065693612750380908984942031752269088758932166912672543467122553026546276227347242913505455401766249315149563426908325628666143427404774801663748378067802170352601608103506297295555747415898412223342466601999922509343440311892686582804324248126051681575844917611681965009565640271635233866863416923422339892174942113651359875951275681137713069678038203474540342654159916202697196772268921133685245330695752819111606151041483788257552504070872972332454624298415150442018714627404462349383619294347915542731761473120946562656619940045659083501115215593242332933490630191259046013323303239467276249074218594639544696478708248642308726617263249958011451594776900525766052369807357345495969134703388584250596367693596193835281193813278372957219984047522109420425208602198314217551474147202874065595899670921737464004706794573183642745674448541266688860741149134285193854254261915374626094423513497183598313563813149080683057572258518207261599530476893112534075642049841559606335310616974336709858257773461885787580048540323956961628789331171688923156739200777925976766972549859149541789632043271247576448059249928191183007415462883089586341060656917030230911014014594465199867441680337824445130688387947391840698429362360836982046783958381203121819015217233867952418587199865089270655078378017940051803079552291767946675640020150312734642912097325144231550955710957554873243072871442548818716096711981214829342834119112050774467634298522566399362047382160220370361934440626413858223675459162841063034450010010947215480189115446090780023966405592000256987049854191299596310515747043770711838028933360810826115855644210311153240291176379052247779438992952454651740508160404768517077116369464837848217300071808061557215672924904888227011433124046335162862720121345739260883921168998692434747311764645025207114653905490047505315033743536191364453746349384936074491570408517736741918746055056463739445560031444370343973885007608930302208107218661103040913628718066071665068204873853585112274468453167251766492510476571907124500482258144510997275514344185167347504005104074236630607628887678872202869607029974841139091609121885405928193653919320861528328471118582287628470451938862119746734453017029651720994639392458152464704491598985489376198992722514347675589069556689798410454693174783037604059413210981478241510628772191537354514284116422676100485604239932871115426119183866945342516266610778500143791835172282916765735336947940757379386587138933602775476852326225709362154114871901697544567646055032714663410640884215198692438101113091811091896620899335639968613597266737698042944484586449257150299793383408458059331789243879359084733617677147171415737853599151495394929042598248284741698356184036396344491916243265222417500566685980635972315516487809383146360562357614112051419390428406329114819367426815577897609713873250278478006821008715428719315358927306629506749564607815731707713836166720356831351020742986171366928956295308038682815245998728973570771179475095104995153226145604880497266096689243518865260878970135965422631292039997727757209560615850816788079406397867393549628505395084359985127501178853450174928069314912446543747451397529755200921465477410530369883185035379162422919573212113612218796944980193440348947500153871584345320645720494504561111464658969764721573027098077569942983750154282061034973611054599738716245286990885652462290863394838859127302258050257026506622451678562473704028728834297174129857712848122015991884914649339184194147411587469181534261142421577776497303336033605692952562557862138364280305613283441719768451074833356784358710578992802445725030801536338575301333836078464336557740400718055819410278888209988953980263353301121191579746095517520858277371944003498492338499886655580337504550276579059165222097835421357587950614046527296846095765292133591925961183818015572429507869808074402743397282089386117235211762760754951293946565136499437709602799579689450832395572686320178955369937754449158912284315464675997377899578138174310840031897248493665489759917459859478527986683442366723675654092115622780628859172624435073857843538323537909670644190058206114497155378410025193687785903105801895853333228831849172966289871392261970107105711934570723608046810292978758132212961031877103146912319705888532816737304715123634431036360423444115067478165889063066457187499944453875334415642274117008646722839421064447743317175324806906743564811892356429146521355780457283489168429371980259773150832834397156166560414944714770289253607476005407825509628476720750579620764055419442300096198161766304078696616993682315169396003849665863950050947137444174659346209294126023783162850235311443931815889577121244952024757119677667355821381963558049480504025250717444182477701299112939416301337041978420079137704816223346413136093102558560294164927065111626787261244317257094097452007216905946768941191434374379637529249184441411331575299277598612597887279330469704744382105033630285616664342009041926306975062356319099114255166235795129824230510338062468720086129849794783893518622323333359107248309325122942910577587513540529129103785638913534773783911884964576192861481772617317559872504330807756080855123862018842688978315898553979236982444210971729605720986334741596500837847274738671918066173934816803049886665073691086578805629263183670434968578823501584120674345202453738311089407361610313166481642723892019142745228275857469204120701452734059643259044380543810729295330236540175842049335447413355626068996099603178378924514014086839836091637470116867652313151009456892079767498869311589871729274283871521866139460142114223607603486037160422178939379495295374280331482004045734637505709461369091781798963714580703103292892346168222121992735893762419459240140937195355493948391489214153273600592663143758590282425009449829842735332158431542041898506280898924086864929879111798921301589315938118781303133986089244512286406036533507180572825955932361255311557143597644602488517250446231817274047280586085903126870454806237305787169862571745300469799012261385167633162202497795404484322987750900221975878804522319830959967375612250849640941928829890400352074441414231105691890482548174701060569587721339803860726868288185687211221526957664768379187274685560355473291283024334975992725532762262919688308715245454786905490610295661047944923606668870031868032495848499246220917899108479052401730045433474138505925170710006386137878335358853819211179756230572622682020085201155576908674101405975318392917094529989814680516169723685165873430063800597075007717712658204891758593623370989082005470885035580500853201230200445092710904371719566533316353107139389857265658115546640821472776482309570570188172078239136675136104837144395241324789620577290636992442012580484522748763466556820012715353895111455673091905834660028130333072121175538165125303661189509760175183032686767008414406951898186423191906809177970611909230107507526478947835701404815197175878669573916742988057418763165893164439241915431743009798796578864721110579730241531831012230758272148958022216047963795528384035460562810538448624123327554968409541233331977752298582835534845861202710910117704954635768640850649515253750630606907278255593729520007717780292507280800145988400212896582173717314923045969543269705511026753374005794829117971936912498518871300727425505225277134924126113524367808027445394347307578891621284044373396788256214432741309755748018921109990364207072446417118505535408425449295156602043064647091985244757902297377098988663478953327000988013753613235144642879866334956370629800267015588296343757397139156100434325552980944718322356697273301507704732210701632233704084961569635574777172890917416783469814604261879703042008547142255278154210423418634407756399049123784266415405825750212283442745391837902218817496045302251431692737359840668954048802980162502402071332464147033090722029566435283248621925900010282051972404778106591906105540071354214485273238186001309936716724772286788650477029236261153375939014528589815812572247638093497817653927008557178746298033490836138055026552819035734239155275625202343426883893515371530905211172099468381810182843911623291262211899774770414934380213234135748769939308011556316361731844868262300456558604734439834224190121035048127467314247161028703185906353944929072097453023427755129156080362874901899256809038926259498431568408812725316459155037231012044417501183853035758735073536781046798456594425890596114109273722752460368105637844745977268959954480973114214862413628328374855887394401352871310422205135917151587267278783794365347786462363244730854325055930053898166631912071716515675152106639350857945899636186754634348670968183906984027485045132601480640343991143513549096336903673499263270716020121074727623402222960540631251344229989399731580329323723814419094806967374350968891020937333269054724183370980221948012103955924228013830605247511951302848846513626227279778575732920680745926542478005548708174801469966057193412781282366561525410823772424886465971280236185099643327360778937446485472860141682675862158776968135105483208258359534548614821643317427033926194273018755426187394600863303660308674827595417692279826910556079694873240277312530829427572596553276530054787821627289061161074102494422638177786354548282378775306354171963472304372327593034393990709662636728238330278085848721145958480827429104633512615911834227423738715686150332225027730918444373520330414130285355693064884113800958320113416595445611909004231476848733389808468150055945003168989650180446113806368885610893522321062830265893440045031209963174938360338661953672603795203240784889062044375205733509916625643518013377217718150011182097152045420713928256848886439181304837223784536784686348431434945842298253554287502502958634775633895856873871957128708007576104995260905210667736541455922915868289057481458430889240298662959887324621268687535154297386588544485580064960574951268498176409137321348514120087901529417390901719777731234831646204193312568767206336707692425572766494959637509806979254410265695197153439749407881532975352572702005147500769360980396537623107762903751368261469099596373740231234683418225953540588283672103615482922538275135774513932462800470912940722722231467897895682842738322340578789706885202885909267864041485201957699782969866967731475398702938703981113320704573273447589663612150254229520296154416096812229714604270339519071851465461661472109284370093698866294689508542201073428720435311612650039528384285611171640573184541575573681357758329558560318402601422757937707828429836713676585552203929935775835724561592811447178330470606961068640152583495460935925281558016448016292124242234560673609591128294040425249950034127306306510953147786668846176543045593590493996324958920989974085377584205889870782739494178753859427322953259568917611886326786777552606063422974976977258177683677982889040862929620041171754281135649694905567636699825054491318761327265545263460901765543551797127224660408419959418858140882195422189510882580200465000967686646573310435161009024718088580326322230757205926100013449504384951103434984144333842101725090430139940071658003144947268632112653942757952198649086735420616586585498577728075136609536872826820428530239600498974009617259683970825910682098106870120432275141008977112802673793363871359464296034104030092996953274696188126614950477998976670231801181415553381402922099926674287806988499845818504165242493432155424995649608409597805654147046158991635826225004532896628898085075624994714819024074593164927949851502351648089851471698604298855930748766698654758188709689161781336131218944762646062546116179363654150532420258283259737309298821635835477501202330117038107499637688277034598432914404160586622227700305579492766771718405690246963930165955160919068100488098064870327047091691340102649376630760070874186714439660364804010943021346481733425783948528129258374461732985227962402868417830151546376830192058750670060941468704393515658338339522691828438274741658898482080608398928070862406586104391031586974829322893346069046133179909630457636401930325585579754260168886269002071493524489272254861520194075266218178232556136783698452119830250933913513407448643347375556462147394455834467399510520387430579108251094320638705312853333386130439064313333076171867187156511636933129128380355264652316890184360331385795033599534314338321023683949978014721445043359906113151477261697497665677020695987846476538954164754421999162692675162007002531995259059554705848212766847402349164811844356480728965994926118340772995064899148309042811339092786805114468527074159205927461672039265609414839557558902852755744667032452159319419069609001196468026555876127439360887942406052936741914022416868677030221264272490906678562921350760336862879475065543384070827645409946554780708464101587328759750006763795388037721079697179559349693620190803314112422639527552855170837806299606169925440508471550878586011787154778599385417719061602614903826956226609219497955870856987605224123578366701540965637698638889102537150738282931941762897718374158633594768138885257034359813722930580022101433605339733446686910596847748700328384550666740387344880558385582043873332712186214203047710435385249827260086396386788860563699876924227091219818502232576286615346194412676203411568818431450273408322733742718704142420160249189316873576832544525544257721777122276970675543454147651875909430561729597248473683716133701142252885207491068579030426446145346413004325863951078639130062641648003018869561376507571633176243948171438671054166672361638933367275892411795548741018256099877556083444413937184773378082579080884009019201949330454649915539037707728248894294084026893494135087438121118813800876966126565333530631040230004151470862089893268889863723659213719946631244483607609660589442840568539748488824348388653878212453045974337838790760269128773953512577121933260471730326409460558118086909805808425223210010385178411682280860037254269260133542386094452347394770566798428556782332699561594465306347966663198119617936546783199747657467041450441582086461697572590012968944495622946037203600894941764424855276063880706231645895380119985339672584233367837816886383734498047403193657881944299562469474869711975066324194425567298904326846671822650061973673685963302530931890390547955484647142287245923532216089958727135165100999876883175088553336147340452207553286021390557919239597563024469745325103837809213440755125778469771035305175091972905225916943593607242480878819559166750025738748932483197764416524410726882274805455484108643104756326899942140706232269783228217825378209072191041941367217194120843452585549312871152265682067491105474888844327609675218854469263274847691799553212786731125959673993649948652159876826796802206571146235730469336160017238745674099776531864402015039002180400067509451697857682692555726975876465719423300126451535834644511717077754312946145646024191212511499686836496255397091416787665282096996152395764176031444031884287068046775462944182602890782805986406520749213050442091221154391471073129155133878219496367589939344081669684248327480229246090858080843968272976740733711156073635920284345878665015241959311831118404609210638812040834882110996851208644109747321672906225751608334759878090380158256630649158329499770864698542172106362620281835386864623067856217099840428144205049382723890564359547053023767844177434855443568506473601386864708742414971167510401894064842795450005606090508585000104713048384326320763625110201207557274124973677799911594048287100878993119474379379567338384750737438919402956138679452821857211961714684759871620615214075108098462192482061232826254980267286143470401568405176318443307054130039614908558344554914505727157839608719661099063975294840068130405157080888992760970345825115308507335507685081231688313304996537228215842560412784084882860281073779798376456411577513788924963326614683624572667147648248205167011306544195000518919991870703551594282623527836664053661292696932485498956566132603057683719790865280221518936035596740446252485345587718316254588924013809802890906851460278712820973229560862117768203039096507166393319384998109718788448173066660420162654229544642112198568099186798757502556119225183377749422233379000213342189441557665205450277298154211265819343641372019391729241006633349911294743535629818716528609189782910467752570265193857142632939472040103356800108006908842163510456875379402586148321443953016081746789261025418524445033239210360425289137181458890240025305065146617565656908140473295713602585529981357828929449321914315002510338138634643234816944504842124161355030157245390743655435456791503960940060355518003531415745474594385734824138077005552079587662350625938416281044369850081891544624681192237672446710367358875465814531445333437203503158717822793787731403319444976396269934618015464844210318168552312133108268644723363569334948222692528244217435992067895194456176840026222778021224212659190394853389403089329133102893478212900805897295957796514785821103612788493161833653397836123067128345980085160148423915184910855031392457804179873927583893205689697729395729260769434470356916421381848629936124277856717902127398191703926725352607495725961079184253690997613002181421388011952526429494943981292214372940337038308301808242973054840346319523082596580945800971731741063495186930113164003845554088100480913911926100809302548839782788452421642402738443076391293900340983988326183035000409184503975823092154067000481419490009167973874606340447205918090714320323961853616623259795594217912001180540904500538318423666362374300949712615815144647785527902927964623397059760340896984725826973621095627572799999149417947896868610952569486229803874929290599189867223335157064099818798528157024817120412451335130167706085359775980551223038732757542839292297435757830811905843039348645687914744396802506522423565654419346453116150719282101522057236052476300301753846964302431560302068800366889892613339425334242805633812075086150211942095677764196770732385293642766846683789906195811444452521140353681560578745201573845392854273168227011089025913350463290825555336435979683656622420262834799358348652789757700919885425438337294376947356465341869677334759626814998842365698255409392559874747070817371322984473065188839281067300921775871763712898391987182390144998090601055421158319729067060313881645301038124699905974579263884322945509834464421771834588646449961038831419511076290530578543737201496643315615224805442976244019238097624417174921209723080813230893453688164621248412201672884460298671888207223044909490908530641274160192375603625166781090651045741144752647834790639977213538884571809226984461230100126873959356354429158267508797534219319333768108787648485517938901618086170022541397407241721920596643138716528390956093661846181507210366698222704093772057315571418247144252234193334908527537304798730645139872596722574253160025444359239095991751786126939049725262290351362354737297934201844458562976720051891465366171016207300538642456878674011593636836861953727838470610187384718294102480664100908653241768175304307289786275717087211145714352502587428857701514089875886178019242640411856455959477314805933095960597074787797368662279633339526227957512369308104284683859858634390344510921154861757024542060066667345129830520243461806849128164471249055325470163389992244793347584016695387682955601954982052793086307718936982636462042372334783250264450697675970761107083979181780861226572580942307896198936234841842390752463015674770429612769551633283043614243240620803988063710695698551576199809678616279166370612894433761974224343454791643654809452128639432437869531848116977115478666440937930815913023930905238619747902920524204830272841081904816725154163639793640027065148660828765683549610555919767687106422881217508588656903464175946377736675780173874370678317989056917777882463064510707649597775298845877596442212429586435137290258044747302665646519207227455234649886367127883240193826972455156878351273573984147365074596889792102848039465329745926477862232026688792981841039765554363617399889995682403206222266461388583017793984610046058549938402679875681109863883873552794852747377433942885491991327369420425176451760627578372814100125560566161980642831725438125030873389106061972104608199062652178823508030154169536439868505620725114664105645885804145647953029990584588467081508198454311969399831400161482731156139430276077500411484150100039381291028740734902156283807071847202432742051605442005227743848799521916295427498048979832172374709328376483680514725641698877512247878964788531879499649720814813165893348373424455651146431423524971918755010981726774329879191725896965923075834101976985609344595255320885071772856266511038148731695587842636306269281805795678716025200517167270214658124955945235550473498970431286577294907960355143627162641009374017194033567753940802710980556488799150601856127831937412901944381356664030334940245114919530488563717749230488573920318262288212841787474224315199324551777814312368013037615204448969337728710296352277798424257087648633909305005558529000805177273989295141781756854387113105779821955501844310214255876780049711794325277147842872065133333665407989232869504437614854204301350629952032315074586710462537256300355039338498443876370383665503668586734937579345714043786330642772632582539687815176372364261246799220591867635136723826987178804293172849928422759902739965018131280109588207123152613620220752215671500883031323714239889187303802546600750206407088139259301306660845877982131971619076751837381428842745264285982034962509485331461978432024941974575656619674983727559197933898396623080158237105324829573938822951968219526976502594026855639298869081386094668833805719342711551711397352541717069113814767584766925427023110184452036936114633706962590451673257614760403093009633236840059677030132958583943908780384784742210086034944694060891630168811772115770968589715648294613979502243336058534897506218789590425532517646733768237542294175955475687783072229796606498361513871779670770266196994696472785774119789157056407484180535206911658227359063531878566878878332786563726531610402757340614954745739355351425362269676322866146226161838447805563787047909357980791990417654161475719224002504206934628086856013785076344595012545619579253781564523884177036279724679987761254017546103266712314492763865464417690575769766664202312701892659841987885648364074998737731138643599736049190707276415803910210371555390685794940672200874018157280377008511241548412506201414622662805005164744705574202403199842290446106998582690101103940065871849029880370954785361547382936629030046342980574039994247120085819684183687871565122234586336108855714545906034997676992088249227101382254495521400541078277746147759354180613487605969949015359163153967354509835558958046572221976075808536933472592929325555774012173872559824386999220433933743937245163324005100182284789777440306690237932881394424440070648025049666388179831514536536016509163380202210810454089132240754477124754487394046356298830587036737275493764305538495975385817143936307934797702064752980053168193124267603017507497899430544652520064583894910966960629495155328543490995864554928229410143033116426181647576964571800390767428634378559883122166564200803213973386902963060866075540978509730201771360792639683880080485655805387381034907941601625085721687367581366069682131945750408578487823918776520697650063503832114712340020934954359847894893547102195898351013596859268772644145753881651682011887341027043771525218034755730096251087243664681149966523218503248956434922084427307296001642567920965089359975823017696513905916841543956635925136288693814729202850252443190438973318320039195922996428423977019825949786558807200048975175352519016562316943331811969704038524295595375117586120181160708987615581839792764635961684560873004538854795732661583189317476790204284113872068252722211596665802943601518885143380809590670442037710593500832875230397351378403902677303418154469900827264315730494083577436027243322264745021870080322652868289186172434554682452571419701844115208617783351409232975914361340949131881721425640539496925910523438823824106311079815653844819283298053410878929525108501639833049648640278728899661244417475453341670428741346264519515211949424735689628167862096582895666668847710436706734082694033095812967553959574743644341685184799532632065366649906924944985613443490668678280686404914909193850128902888140161678167376315988010336832560091996884832440990444504005008211626557950105743401792496673506136576222787681584922697297716164164007888555552344627000205033207940214605995587858728247525003213405426368508534049129346361735387176668357089741369081664084243188221825105672534604255578061307389691677523942998708224208473082697940076308751631156028072612840673343649689960880672100808536466330474176579061992706735222978392678643049116240221447856705267780380416068838393849784586172351953175033024683970713747481175444669499440423902848138584345880939514119653544260474497088288385631841851205258795172748463283733778218122979820299030397028049289084126370383444836576342668009816811897181287692471950754376709918023568670277268387132183817937143479659570568781927571559770125581146755140462521685151007505476201338614856538183855317926570243444505598389067751749542499126107986615321329790766492521126428290689052999446735585027032932020416053295491290996931939175497750549163115941675699147787387343615445952598095237353481227099568906435322957472288374215899787097183173410258617932224316493853850259816503200180556426761521619473044857933513345109786732537060395444655446640397942525049099189160420956960040802195764779025376281747918722303704995041391241852894410485360705309843982750077272017612786629664704550976730209614767868133694014470206747685353137692051106590563913311504044386151159326778778166600428078428114947496344569442136494185643947604425668927126747390364630480352261040323888278666387886339845972542496833381443828358133188721330753997739954582523403932929711310298408984646308592931914438222283768098291296734114063952902545599442385935501066190354363823034167797689655551860045177641065576294690815296288430193933385757589317778722106766927570575198324897793009354009059535636565050120335654213088790415064336406428805866377807723247913066062427144068013447997809340563657198834228690459480301093503947726822988580961621337638802306325901221157171796500762129481318912261347811942160200621543998882709495192727891728016953586178374150535857502391720035384421278142329449953266809492242479179925652764771357229773105277199484472278348289919378058619858178218883544243546433735055234872052587891694725315997554577350058325589701162538632698903112300603925966873005091941232074159645022975456876299718535092678829747848725716076404054767311871538706842936419626223337317768676633400385538772638110408159960376417713733580323468707660055254370570805549505977434359617043081909072208238626985901422422670741312172624473326857404736971496741820431116542279935069676035242122503571679761748876644604062850596386539365705574253294570155589478402063482258582465137516434891357672091774509202197107866889241570934833468551449251836132305477993215060678364230367193813465932559912869045709594882957992204493252866182891917637560402575544436684003440080837646893479202562490380441867199351134601392061002835480576113840621036170222743789932442391567606189274382440193444219924800559643954278790297389461307773208216704776186834419489064731880961448127731608949318459617188072525440236073174262240068458132309914549387370442260837116855576650244389810584504060043893740397079859602479402427145230031547073668699864180732740125842571522291537884234710450054266197063644849468687113780368146481542038898459979452218921161939266539374072672827104152023326863071742494929430535807564844292747011360176797134273546369390120636182812013802164235111836447916434752296270919115282488570220194322170077882436450019008106963105257272746814953736766092811375022859152479198972054629562261646397473505629829072505279260316386510472532492977006640991164814767518995043750055273954888185350150440015252185579511324169003888033205322098174746588485946346968842826422614470313925605939124435762988212906673504148182453272692290176644040653974474485263503799786539795523958568974989722321776482347147761727823992866289235733937935026702882027814527095151795218822599645284706164702175558883910545714132892444977470947561141441416610399379133878184906489052947187660194154995586226047098253471894779385900199253109805078613011606805683051115975206156320118189521798501093541532771385673344421678765441580913657442592480853552460932428557898547926660675426652659803264773941496935851317821180957620283068907601415843627784948625920247675525867017094542253504071932757307675137242974772957350515474670704389450115690237447961738057522074856358199065678189912471399300144563623666672645027942357415265107073891624397193034753055120715985233757072367178731498528896260598167862021603528979992749734252500567887868988207303872871771571478500062355354129500275741730998379068611629166222652105376666533422443029980807135177702390357207410101944101691193757210954835227993509411960533855086730126472187650989998087433134736728086637601374503349352529437867741738728791456992685658960314054537661090383299746254008227489839997702180215960186251471816892998156512733465156323488088365279938181043588476217121235469261534595369781495229582481834060196494693810317702831715625285585458197626061188815797723259853289877901686851875240086114421701791630025018300966105139510458655751116576527538354996628443952699420461624674267161112279807031292496470745813473449657664366560847162235255450406825227894601057713881799518893408880252183893871057734675102195227309744439462237814313531663364791437615723610467905514598870084344600617012866855436832730705694787114443916915482736344371330041400114355066006372862386889428129695179564746532617086925789287374221800133281014499415726023055125821755732406349240392148922262968933747890668930937755026914996221821316437111294981494289815886122585393237837267417087528890282958532063029339846395260863008950139244555860270643383345814343279044038196349731476501715017066236605486627697482240167492420611787187379105947724757058722333492263986007856510810164725862603791619979832878578292238349806097036317756518881586993321276686243706359972190846473346741879450635596780360426973645191795021398340447784365047423082410939469232180199760679270847911567679183494444557215344709032787431486999886687863193323268816410962931947221767253688607360382439775191422895254828299656783658124177563488676651896313801757419141633512570647051318518164309853921665196743158485523427738267802168561376778867461443233120437501048165950536235802993537043837513687703528473593528201067664949078316219057185828524105348343244230697238108881649175821974069873257190360464341308425312241163671503054495866121814353290540859089393151764849969351405572664697769766460939296775284253004329191602331198279918718043984586453562784147207380725457256404085013094822021531044705851556890826419823488034420581079002136958933331170967847296536400234909992315852842138741837322257834750996215923680408708386984926115393206932904409621774946725112868198345134756961126244784643172573974959474630625094622852551668390784503377200743496518193469308086804850910662924110402977977210197812514389472690985478072857867869591995301345077580230427107415171614849739400644952843688510365591202116681013483759496689884866515313832188691504796258354801497830377875016919158026627544641840533293253493707330023892005184822811276669571983154143722961387409881335563808252087282724282551778791869190236355670503002706324386787675553861489987717989349152752012942380270127009042472357974155902218832959531292250623635422351955716645986568133405422418429863841655281287714944375974376405080715938830979604138343998389825701207812934215731653753982945247691507980462596470162188365399041079316300117509761822214256965408921806074284592446840278129925847907154061549314684936565792634561599198798131792987006999901597626841645327262476096114696081460912949813356509404108516959004952975929253156580905286255827409269850953783948008630294289884564279674341603430793196124138323630261248950759480056163471865988875010170886487347375876660815165448199385799550192917499816711521040530900881304526405587693123161476981539540243500013463684788918977177663903853228329344130592146533277224018526175666889061025123434045770519915872679692252538337152690974910242269274569002624417905623812298815994643344200685958817072504170637712074345074005155245134078321545865641996169569318179113904491834108056964745306917489997885093159609673322892415550506629230491743326321371110913751232300428885407700680183891623902182493751119002013429267417016301729579827663756882305756727303798136071727816954263952663981840322595164893750578674067069548545010693413439682423177478882877128253324113786368886959952411039296576214345399407797217176525389493703529163563539200944086988978500308082268481169380389499441812013812214473902692322085397818917585011182572708475287137527133904294228056900437866783648291910903107701228984626604910427881783648208668375541196148980346392022420025705906937546117952915700983218716571742247949896971712578562700840397722675081181043444878453177500879960944847706281903941218835831464571388707974514954126043175959420295718411371502483876924058939034676545864689802194578798672695046270318720880688409879723265641388886517281808439783232013922961296223164549952608139914818695822035395969331633715646595365993360920812274719831190015264481221325552773856398951106199284426163142973787062761616411892971589898897635200976665898893871863737670264985965427993433381995281557060213540398905380209877867380330830430027636023920038445167146948307804739646551773169687371992611523012566447482890346822171514820067010411763901300128976421678604614219742660521159584339546558984251237054298613133459410606597820361208241676003721648639440321344497992954492589009812681825134550755601077456448201983759016737751425692227495388304669442460289323993101097573185686287717917559742544477889682067816137833629317747463453477900605233012142372466551840116195223593727154872590581399833981840502049824642117055256486179858662516509224050683878801237115723556425536022194024993501402967917585264019150889048523916401067414656345034913609562354921746998829323591941592555353341716480081030408716143970393271196105692093238923269351291302006317128677799000081775989909921305838365105269294569357488878081470884193144422744082585331112848446434817211420075312471370962832322769605344257600008344949657091476027824945718652681986322619043551315053736965642946841512540373913511361551196214387295699352592465497580227371632457679153762951774006204218386377491636115672798674836346950964635753541617009386748347023030144813576571610928090221768114118290074508739015991988034987408999647507522191260893644550924107134433938386879951385865725440848683516450557971285632400956970454738851235182878850305510133179949644696536929265711693985248581016834962192672370221216073002011189147926157422076587039361482061978082899200219094244903176847642682886239178298000635214040392523105172225500133453254813285829487547193481291187444166024649542091593210271820857555865900212480970796042762351767912906021029353584357192737545035476180415290612751965525287201292411972766319593150368970707855422933664491003617907758767325290052349094651469773299897219172355494263879421129265652443732816213010735714308598952961802461645657742196686994260946077837925383622888904649718468742845377524878664592548956946069919061309520392516926264274385582717172353892150389832761105343895986266342819849974599433393211551116756768345343358626759669415541897303913475272975608145623368566624350955701361819005316182929310006119290230152101100492670499700976631381476365281351563208826307446933753536432170071080836291676403126797547175759990602721503916180686666787938782636186266589865394172187576879297087438295542751489315388243067009660849943671466666394994362473696982680277686510139158176932724458449860213803511936045982537122197103920582119708576416306363912449507705583046285254205134403711329618498064608515706654797010201437109221299697461325957887752191445089937478065282157499024954655284240485738239239927714238978159920959157495667347619883531506744171943645244236446005534051727592452074631620191719934107483734253538653844107139647064833798724491127520876509266118087072178240296993984553244770371729531490655233980808408813606541864460284318052189214767791725304404804559635093967945789186111029390760370955557627765090060908743848467787545131245667746281546744617350430304962405886687920211202275196714795884816890789484734917749240343613932636181662935959823472032119771121480438280481473940512487340323519128532404611200026517088930501078492258092215028966164511138133231222701608426732611735598228684680634269536716851054794518808523826901683773283443818915316299365574016535250194926907051925121296701203734963511664619999736834427577357640607267119483735326244290351496396006682376347550796747066642715549268408523055387075957732399690512037193406692328534166411854363220037621964542192988789013255286403313528400991918095017718635848252338212209265404355065547698859109827895887458959936647053777151516336646655852890912151757556734070650426570152216856529715523247029560544932698923471386142538222312048691954228324345922275970778935502900543334053333972924700525049141342877777559778405914170022698919300539185899666080208852387568412432599663412297349947925615103579167278153898184913631710222635971658941070248414498879397871138071091115784593998209307041618893743682005401482293621124754324124366858325050657938792867616426988192695253657715412318333334906591966826853487590202689562824165638973667062190145533957194231706021745704028162826936416306459650073608562768360998991896768276403244685538004038525164444936196019214893268628894678412160786592591687819755688347218889386212654393740429027158351162699869020630525174456236618331674407850897781455262765776157734538278900662716943805861881276874580877397387744978783027567825962136681515775912635738063836306343609770975260739219963773418811093590866968933456095666903497905491940450689753189415630005313395508868275581888551913866660596304056673004035077422077509136360881678705703956001655044984218435360515843775141831515784150987530105765462308696219370565658650655840606702496320300742235603818724444853944704627254904999809592242966617583565068186252580241684261927843415145381611990659034769381195599650967762126451762563128187567361854630600589999617375740585836636733737622690200126592841190135180326276276282341173611194034097909562100597193639450521545420918254253440109868410775717829163031798489246672039595581481900919090490304010241079555182613182083883238209214754462131972686923493667755851198464888978136291530188505481794648661403847991500107330182291187664002087249454344690188984480478684860825477895848160485463690081739049912202418396220951133007486071572721947664889941813052839245982577091737500459259166714111740050688482326045899135925068352570346778808360600805379534957503539037960729009730870663004708245418927096908371808984099709447409145522884491952840372067144048154040907420146617785221292316973573997517025283960842658501302615665544500332458073424039705547190337287336115987270635554912917054744333822099628915669099152730983344814800213649382043757999401858783186938329196389480703522265126143592517313719160664778906977860171150083516040010064936733099168843154942344312623192822124682145768613148976201790903150507240413312310876612498952377997856788379666042978390508569871439131674307358671129420810787531103194860068392893424394162886985414024888780133607982091305632230999978569003792260479803405143297459454038360820756138618020890751606459319332611579920661243928811616908720600872578566251352857988756392382287638524572473206694305907997682560166526427362544504532911800083811025867669615554313081129546389965007043804025801733406714290787073292011131142712446725188509475634468432846016918136984196087304051288129882891867647710528702112589105409788301094306524733534686716600584446740502051409695981296848714611638804848063496544532910320751353583999319374257453945944609899432903206975150491582862725601023214799698986971826477328133124015913200359357950422502368238677078947928978152748481402706841489323392889999535133697967082323679248029517819290117982940559597224738390018335073481505125260808946012164799979737801712627937793971057623433297745598359351461113843918585732012691343453684778652160392661443867514395742213098425279334569226059401785542909473003103599460102815032095435355793659414288957246909734543995455036825976579245764049772651378478478906376175765471020760023164459706649752229435137003083382937330760249597977897789816512190476033589040630894012131952099982029142173441358829634529321835486774888911052953921239319218390388397439487018843971027522144630513407573086501038170730560406662398385906500260797458424456163279918771304284707236537690117943349936815819010457603373988052612341064233118813580700548749487926398863076319944745446421244487065829905799586900921174135076386422235139717729340720759270940066912262409477961014784220802135953780847088403596222316635898619002572308099920047746106340528058143902809591847283251323867976681336267831193603230417020612762938519748044614430141366454644761601888875929287785388946941455422476812016127767630727021719269419477918392001454475487593218688856289624478804956488432762766212858576617301489383556888591920463238910860986528499900545265326375321912812337056589794549777295908784980109791341930341131722636433148920186675987730380266874769332829262160787310560490669578625334648409836765326701321454982035893922132104860434163758191163556781063416736760343144258614744984950088479496381085003202852558940380562307009443850885856323486799743855201244286353179365283237841652325771661792389157710510792360232567034145491686794188749365547786917914847962541929387345341707973516729274957013703881593636874079063653538859613785078378180327661969346121874399815744481617301770643680207266278088190889831513279285969237456744522357302565206787456579188012165149799871784703862874279085870385102924789814543466079673188270215923479117286172804835159484915146132366477249629718194650595167890206866471654119208721625483145386405469584158189228325448816441916571018183611054233069642734468235119114974893353307622782172305279619131799949296077279865202057164558346612592935728764313205870138416014325303940951248981204536360986402062504883248188239576100915926209499981107939588840687662548376178642677699485552891276446531385934434224211667026338600428541822580585267074601924228194093331693004772538783961788806636385005909057110077507157741882991741691149075358533391199224893139588317903186037044709017402737143132197706724743648694680429439583933725891526038271331808264155377800703614986036875831473870602227094941263809868264263755845047609525200201684919668187906347061577148257101341599254478070026437459440651980962951347548018269676184409548630706129227256266052039146067630441933758379838198844166580665160052697035280484343644823133576555256413041744766165790808594710692285192289501969821054003513050194229366725738157947563525040426220271030596309669175914871450423247166830863385661202433397877080585300820068785237332563227061241100045368354640694554658791216634148491230767440783196858057464546609217892174909830076856115872044681654733878009597251217007261551574576586446401504521300846725460721833330950830356464082932133390892231237071952022517389140645288286088028262104763027502493158477354910181517112164163398363703011315889276203718619268023175182858245377662615136025043323204106333892823075839671139273231186812885966005758024795811786004863683278802041346691373507760412833419337906900795731915265988896644573616753929880745631057740110996718165207970761555417290538100570461162459087816018484165593403763860340193873425611575590388741987453130213603551133373303399412491749795254992127890896930966395390126073707361724773571233593118518110198379367759730933791164748817103516471406179195672197877439746115516297023417853707987305396044000477889166903418583687534209522781899200032656086479487751874206666083487299791248748004193574165501232475645148166128354152647958829901666318958924354771461088106670445394888494363084960333656631312619097966065531947032857007920663779197530002258295808273475051755711868926129501183387881271202362084402859283930513193640776997209763226548556283344851605536682756712276023031404825963020258026362083826644464291815188216538033449837706849287164263618304822941063152078790288937848312790807909342586537814918549908632966463535801654516788936270585245021950241320139269313756304393088498107754191909889647182076806945088322105254668052146457158737218903244962503240919607146122062449818561704970795899283375630827098024286796347985876782717533425718417455930273020339134996586705506206892817764850144637627561120447253288332161440500756890018540599658814640494569488410193518883591701671648979667329288591149411613613717726099233338150572854460040283905456320964248380256552277193519255518619055279853672939579397343879379592454784166482624375555343688286994399040007395076016734494001325287317273798910784589298132872568864024624914579180958527300455545490186228549309585715038339106467829780111490159931850297829648956123767430927752437697314207248790421886843257105304205570382996462562182804989082074962542200927595511728323943670756558096397113166883154530503257982909827699650736731722531098943232037187526973706315471739943326480071009036338469738719170121251901874647629528382569514128088736645146627639904834146499444671475193972701863137220215076104473384329814010014311827301002784203602363309618402857308290049323066007512230664624630758538481601041872376637877783054666063316971541685529252151310694537372312126368953554656948037867672000339247511790861538258588079583354464802867517667235232470724045449529583847095575482509046186952847074482171366569873026551961489265533335899231522158456289093133469682645018998193842349975273412358826064600341037323842111535945815939327716058002679116548056913524554703749330665047945508496297497453306935472499853942713957265939349250667981232790227243572580485187519932361864149193037149830644659446809625017249053675622523066742200410793273641444426841184996617643593492588495724829453126393682440639911880274240811818647556107151566052014383043857639232597242668799603857037127619561949456948939549389207004870744464104357212282240516525673493493840816401491540433049977831568364418149848728998181002850369128302488822682843355686508715146977842478640508953238343327326060368195931856432960616767427318601563678465766034686818929113783703557820174802944742154094663911932013266613492782100245405569549910924457400828768035240506135677403790669591320168304975801074043494033581194429273751298072453479593193538213783104216082536654009628410432902263350438801879101753265901130968417902028692578503995525920214762690689236997125903135038003950693904521570930234581981479448204558481495585759580304835171221438259037028081591793241570131075454620621609881118035662524698868867673133687505017619303040609068943296263448402529363515763073869326194273257915533038240915509129472655016959450878613397520628859030097559054604917274666186692687518929620981512999347637352385035045958059413872305419058891733097374165943411781990341416675606223938473439101240665146361837586877926251068458655658420242220460431593774642199027727922926984437676708758603973451786010728308357636630271667072146450158436773969658740243150220664454413141611043140883738357737457705026930415958231406637208845497544416944569167348741967816051747484999884922956959104415853746203568553732813361846940712630534956832443136714415854073934106600359769975498951800672309049538835410784205947402417077222754050741641262395831898108248644959147524257701478096675535384355820098899434061998673904973220402865593696842171736122597852588914205755725518073726697983423948723088965893024116457743374714320211081195238868067814122376120727279222789210513502550028159667125589837722040218023995163315541421557404843203510952410505771316913779398210677318881678424020235645255551880249321961200292121431463394350599022083220164133279107588531611821837370509044605997405563507790547556052416132581976428613249396029715931551929748878611327803408208426958957161159620907333015017299939119431325581434072624501340445689357743090535056726820568358160052106835910955644336458435573347261504647965096518435080100968036287947396587491751173361763011476993957871490465533164484342304544697383100985201184388509921948337900525784156578091596534639133019128025301805395245294716936773060188975793203338293128895474880662423452523032712164707979719969498745241815741565544128926551775195114307878611662107979540135240122838219170206733196182330319316482573623223599930247165755073374585895024278152522468723798078377622787808704368035538167967522239778208551269032406048444845667301366411198697649177433292801591814009311312627800871417048240544817976677489101915804041604159652206533028196823552282696884594899428208025474488105124156178359648078754459970366878655160939844146751493786486201411681231071831513310103444698754562801657097401073797783457667158911509003683209908633200370860166914122724426747392335071295909752123761373698947535343725293412188332684830275994895560312019030647078635058118106237287294114690958845495316503908679486007539847617979813991677243567789447378752002526412549321200370143555289228073386013515165245040877464360033909799787542141486699238524663807786736605307565940195028630461522881130217233775679246884690792843027797182054154959755780741861323664282195743197447215974784897862787895968186248524387548285173579961540498772189283390499648880455080413706712236047654529188847031794315215040963150371854332714511391895715597036613373059760825207523381545806008560369339229402698311743485245087037459766666941465830747221842641714851265676828113951438686709328278517447106879802223324024134595957686739776500865830267659302482721834237871854471698045497089835932424727844969021816132981924979917821872306440311373443634094363294194373403278997696740774040531361736499283043416247874569389254615614740112056581822227277614809379558564663596448045471784011279988738332549266781220827973156790698024829756721239304242144472057006462001122440386551366937544845996838517108151913098725796682930728398750836471440356010747045588213520585467775696472398405232378437949724140553469909341202474861224339043809036482077416258537887037529894159294771369110992770840479330405070122193844675621773173592755945511512193046715553443509090943385436113367185651723149578133576766449057935768101622467050153725318207732562836336967870100605282721182497450911296925523812201075124262817070478944361463508859962574174346389021472016665795798356649242033975135323741173581117296665502429422869661653848914034266581190666400540404570814666710396852611928725291354995399221194538275464320518177920251538179364690958597350090424310872455883199093441995879298039522794234822935527449548135255544155837823608631126118868577797705742234265075982108504233505162221101934060137899757330180079804501791782670178205072986366921606212510128632524613720743600924138542956797975240487989052562179410669019186267753235953756364858388435830547656783358531409207376039444010195609566259084858926387515967183397229293677946514290218118803692302969055554833879283840982661503140885722266252767650671688040541640577849534236341941907927918755096287153827328008478210793944405371653176725652610944147940874312822160549991148060753000230980765870233562438260049387593589790838803370532007275307401173081767602647805792962467214744438771342083473716948957669082164871965182815699931559603795052827324788433083066502611210977650097739160134930904320428563861325126757719076751204951813475356380574981536789304453620887254837794548655395534785454728808300464373122946016944732521822816309553819236278827555434317337782793761892418148960752437492923771547149170364954771763473400567219936607287214934192465878853159849879185976023404508759554743948567460690402166149081420535827351207301540578364536197393280620421220454066640892615027627022617811895540135658759613547722200742077530522412139612805257911068484454343849851948682634216796128240251338885542737742779632863989168926439853898007631537013475413616953620508306221465071663101335954390711432885372245355139178045034469667397902475007706048433471089576981386102919997662335704440351966869524782535336343700639566360998694750535492429928086495218224148997145791972873415845010350623983206602249010916364704238366903119805964779455147127934407308018613405749556741327900541394924285171646875576711857898222910366608982459093336916303470923290093563462477307447897270824418642976043297519314882204662551055964846300337301939493117658240429264797788314253971598421350920455166765277910957440098204472703921952979858359466043548413276706565435790629077992656683995432167814794532326128092936137552632878059584518624620664768666736708214861538066129739115076654006897370791356555709952940108739115810395638933663094269567756596179074936450873219745181224306523104672050520753389594478538583703205380588124512786383874091193781756415548101111013884604326734251775970392564800771278148563226621658343996116590981259096885803764578951828048213071559985223014777264113697313119770145781459700959955595002836605924746411156560687840013014294342437569622829921300698059179860137463895201084369736723489853139134741201613352759135582719330609220027333377651100968783820202570080554772361652584468520497719401947647098455919904560787936345225541920991173303866566794070098789987382969555525232475102487664927108054262226334822867200746626380940716259912000678763664564227230686319461305424779383375380847258976980060393217064182476545517727706358389033445430127715466098610462279670536271725636727873154510348997819625057279363573080327180613400608116331216821901155198572080791641723087037571879966407033795671404147452027108896757922038154278595217647150560087569371614448544107729555060841552868142685113003093422979492683626152040934574151862694785293304653154477862465475557788233620204814011210493776561571028770785339016316702221704149132335183915299423696866780744428385911445679518502451902108934495610565362217371265748800634197848963817845491790400715434919711367866876187614984613275259769451661235271246188602523202628380686387833753048060200767552309447019609820358996350054448304516078692367300381950720414416216292717358024203722618721136347011000531689791689241363919222368781930942637709277749383822500434122254267923008628954688823819995080483805886533355716127138805221154989279137619511038411132444993566663911785684275470827103846699136096245988770340588956551997646442525489627659153130481400645850223927182451311755889809346060239007865595607803858390975143813203921301330932433307505595005989579487050079679894432114216602274041768223047152351599013783400677678564840713307531454577112211816090301323086047996562350675646016219378500262807258214402093746415878001581112819072774494982099715755944077903068770458635435416295390701069486910820221948428695504799111690442086831296620802423819780259182028189181185244730350046278659409474190986464022487152589378305920344339097852454556577552115102884165248665083826508381150699655209673321766838040379987544721671484256216276489040550684353332166687437245889675637607975722121479988446867015850804200022703775558131195277000269666983962168877745115033049488253039942613947344654699215337059835523156934305214357547360370368173631621097610516352522263942582071960482454848352643302760214897349330180796272236916905480855685267454526570101547802867327909826722179869215784295446250810824321153021240640989832342548514811911126205198715271043498367916519195373428717094703554226875679533374152590987002953681110134491515535683040292219552091141407482996709293356620042851573156406708563179623227262626950287617706242996993579842725453287639875057727379941575919922726389631591176762077996474254500475219955031637259570831291189212144763027674400500839295704722818923525448865684093766314043622848360561541484938732977214883241008547067275066933876187146828076144246522232515952584772484502597393316693134017434683557268433171694988207500423497330253724969535857268785863711383688820154681772164039193840414056780252450995915404514295853244436681954478735948169029007681802748043300931363829671994199090816313623680589412164137183408632026224406183064549451377610134458997968470163116114428065698385154994465130798219637360955639078513992743472627626926811274319317867728972355055784748086761865244472568584784006336841599815674702554321269650787024069354773914958852123884662231853072829614150746952679673129158394120454003404541700705636825057019828266191434817932211790428356710608569306583558669047632577872803125205303101691804233231541355602823025324425444507668509043317742687405934146245054353126307646384813732262922720779896851291267991025889425030472011421050938947357051567186218965552557414815747336374107374999998473165419074431033482059778155625406873988884354100908127585135579926597509266200593415020142726023589004798291991976834319036301501147930190880957307930911722224929075967016129822864941038198272178120413963458380955272865639885563077603300690455061906136024508593578825427883357306053332940325011875022008772306795303014460092573485391813950874785423074545815637151177253311143046442759769606509721510962822886324623366747188985346268258057613929522867162667674492963183568672995778862286530893046047747984642980109310701768344621162753340488312847186501161412287190146459307145435641456505451086278043340099444399459388165271791024435100798082324905912684667234896061864761535559593373861112661144494583432766395653677787221675916268395312632846042395399619981703553035454878819965687491377663720153884589022480271726617150996136488252079931671589578970617502591478110835456176393743130879486895136175336458389936421531761615385070216183237021576892227953876162279273209598848559518592128913696303546963043543557825063741883741539496279611335135033635972601731695575881556543996676665550935816503117316681734013489677234143087489871256471446187184985119804783782540665148573794626715880842706465161755099606681594686183318535761586257865361664701870315866026107086728501292101090805483337617714293897701261987787689219297036533249967941671597097586736284802243873804065662355722089748516762021015863755989189376600561266814163015836425099710411304181023642335791960669478162937923921225643295361708777073187808486999552687163782129445789275844955942939085234685477662499889992427252157079615025239214371982842391527296550363969527968500668297447535687323320481688004787508859610779751236948015463310232295661006346648765562755121016911033617213254743850599473795547640466300099614883574957520750669444110965192876710795770548916749343337811152081075187305596328378594655230426795035550715675535969685589217591154211046901470242250194106580378733913324301955984060442932151324550753863136181509876731899157214466926166750149714104952132641264494245041951637531524633028672817597176971475960692431603428556759368524476521364924849719290172332475707439336163844906089816062938395586776298562997305944105972667507300297823391968575107207231964141585568653382024722793088786871245209869636652226684538795709917171275863911057672942217075959109754646775203726207518657116041068472486884024922486141909683981333513604619160501881533928679498594158560389753966916284176229284607830181708764066458333169557997209887493378972832975889684245919985240132831787435290349190194837501941007014003734440627860223999650648193325358808973306537822001095938524922842630643905206568423384720338273620122198301863841175818299871023013126096491631236258940168863331369281707719211971419287228707798024344566228863199384141362852207538889691618819807662842853732798769089688221513339115772851567840479433053120766999671640468225170530066563485062816418962274182963598855257852357383903129747836764709654007666708401381114850076706907258060638848680111316880515728820656747112033355780830089664340741573454438843269521439400078635542067033190785573597759594708592203253529655048487845557727191785539747802136942500249027063761599394776257908983423066470397134454780963664435087945215550258791636510888757857148564293768003900561498489160366596666822142815897558811606399580359405697895866219412322166971294793395548506591496400268109557758939643267348193868216476204545861737922958056379326682415440696807895071083978018636371784931012333102543882341905554055704873987048360760228684590886742278488775419225385523443511439997805414535647529559506668598954849309215523406787990992608442971155117920154979235837182555653948643736584352980105816147674323455704683819602961233936215505263797149873619229186426306402136072573093515926578933270958933365058602564173978464790929267854964297460651286289861998263140957856011748406755518741727218129134484784044192097331317439087850908301207924604176788816666963459828504328210921369525182918528699330179669408374734128343970382747500905540179448013709850554503814481088726069044577734402793888685415207544522381805952921819752654273360039971621786230550779810472448023421830019599254013624938038945161068530452001040392340379869210535490583761661511330702221693686336749042677479162918902129858716727183530638921719921451108061312161271287065130651615552144805669439097171637959328576518078709805737240655851271556646675727909158915365728699405725071977886418497414428955844104494497643539148180150413060972903532274684357267529621134525361133112884101996783077475940424699657181875855229107733233346649899850296168579729335954356453368812568549388139138601367243124813034519368054085986554038120386993257619984622334784506461984810333147276330854067808396610712908985933412990763903214750702292488272245456291980580302016509767155662283068237795667587093590409704956850183550834735897622619019862083524811696920690999476632309641883783207114660808820864433843676740736618976651592745082228632517654561040827920592395488125084512374749761150472394871967562444412371397609765269398639229099686613718363734392765545425423202432634286165382590688784125233662341557035745844684750092853148696106641389278415132930328941171379852752217784150951180091180627150794399792080755982980461974855436916839183380896613517543046909902348746147316891586570416876627299866793446973288540452292071220183426455658124002367406744854589909020357291056669666707830861652580503638432660288237627089489002236105275317288272678555457668846916034768236919226738754348359749674788066327067077923745445353859497820460027141559939459470185686339853710688852630095018613462701398052379760181161339270788698618319277899042327144963310427053538395055530729535555428606129132210559264587022752387830628248980132284870794417626413561243272381147240759110593183708200228895466764451208455866453719709503316015232067322965846557754547042055558104440436483249544620657138191658511079695453559396473755686290522692715573620847850692797469060791396241717914207543362276057478582582502442256966193679271220059320252413069241401745180877734854373122336358856280175330240531322956794921711409406913892223183816069458085856157216292365125036507453689281886618110939565243507745147753349440971456706879746731687643244639024477909024420312309531281053504981897969930242272034774323781614817020107526181848388145987372093862008369016222731149309779811034478171839297364164501054654955135909228532138579104769109096783551021325583873413542270125950602681210842514344272147609367166870621689079250131987506825919405843964741869596626721629318237706471244114691855751451985661966897725066168955256459375980193782015718429939968916962743898546611132365244006274762990275271638205891171081111362460953847673556633525683478252932931072600309595877341930089450663115755736530329763238636447175594711880092088952234061072173669095882047932553404183492997136336637702102741894250251796026435922957518794776886934808918007841325493343566901103177845303916746404644092663414205521298307329885460450017173273679811580112217399706868531387573250437404474404667692528995720559072560579222589899555079795594340286826333102175467214726343239072875883156003139663685008833544601339214364340664766327692073252109844026568146925549792489887245133331816553450883203323298405486996436218978403641433515332008758531004793750863421370868821413351964722092908886433716460616630974727299859448434628122347779166683359007479279974547887123795221740333387510765556259436899170370110795752794721748869784968742832149687132470550892740814366637950366697651914860680275163451528750491226293148061897686816619960365696646857190895532563113702293616106994472796242339338481496234011236423113335659080255452794860887919087506600377773126100008667769668832731813394698312854044512159547438857248602187419217143866859931764839755172118358902396729519740500827451743909820856384688330362538715840966834955857647571355113864743186717603572015081109623036979545650526978747359290589743611448963749680815046032012232491592610014012178589543144417489643039580609133212204258853387641782067378182546681710445311592141069552790647209735127422501462127335462588565949148120253853001112897527656436613536809726447676739881354215480334182212316163743075157513834591954987725484580752626313871131956449419137367960330690303479606160479245333098293436535514215106317183686157927395875170675496270412926269684497102202929968713625284387399531652490797234104439710861685428410683796533388737549267796736386097431151063120166367715245354445970490244555596101192835965565780703319855225050454831228409794382755562728711363145628486088577307021427092755735090832623130126541227225695819151160486030262976449861717034701403508525434191707373076811710746879735319437154225555927577929238151566389852412872888849037917004141667742323175115518680303941467069719718728415757337557771772271633983571853885102338439956577020770777516148177940987523172738487410626356494234196851011114208628856051340051927385005181816750822458517677179916852700550151911873640053309472991777233132557244371762688632410302228048696135870317528254851359362142991418243308756974706317121229966640336281370796886496842085215126736413625374534763215989481005013786290692277187891725689629677390906051209045316549473201594712348172954344962854601566029584068116513325448483273517476157025766867271041344751068558491530596731729639371250032196582458877244669179122402894787397974210105087725198160185290889795504651948951515254848397545079438725079746452281439532708095487349832307657667654489625057939153607439798690642587629601767370123496128527894966563326266631229740980100161616410395239974864856342570427314104670231564283009703616022664423331834049101657088809791502951165198642819264587024201136509357861865143241779021324636499364591140940775964597844523116278620636249776707552247539526075340709033261910547221077903044381330905591615285275317816857460154196209159305718831655822593227182487443621026793544679098117274279691485303406836546143955369614428249676686488194667082934423950131757577534119672327637524593295782982778578546787916740115762777535403017857751797107878820472253242536458265246667377698336318137845619150248249816829616927052360094405375425914398970896694164333264874294224525804098020761161479567577390559251396233020990026720873105247566790597595821539650035969411426848425479457704599375468113346232169929451734481998506839733667906435053682202929567175140565391096725012997095633393567751170613926720973167147621342342639739393904395124551645027609297864839593454377528314517201685946235396678168586572328019225653196570325439920155197045579652270218806633031637398987571424536590442508499892520577956385914384429301461957258703797477490960788707893020494895716135989029555008733018539040014175310432926354113398365125107319704830112962565301840802606626386668709994015645835302179975390673248410401259170645909174209625202743345481331918091922944120483577667355130395304226642958719253799130968445196477042440573763173064894539548722589241474234367737847313304237290927262863262694787352732539903889087069619543188116618238517109271619509455216169431283461500554941634606335165362313403447902715155049599536461012247747342581548693938458451162517817505578563943504367294661844990604067040207107912252592078252041187627600427610128502893646346067309947847754645520198394303635255333648125670115357790295815703853125753808592924030685043928395248962946726837815263380329051982347292779705441088374625284530052805771185376952579371578128158761059635685710527896656621073884973477108168925127879962624949962399225144641498356750836864437690721380538279055640423390133715692710151076394717230661291585589980849556731133499040053075174580638986592761676331725716810733505966415345058662343279489144797223701050369761838774687695400717963126040491224283649188637155069135451102542534852173276046493225184958784850451995489662944901023093699496606248106246384594186358558201582314774962965204558942863780161791521785724732772396739752876191072636052170523299650362179598166060529682734774073545265899116813207298057247459853058275092749485089395561710726700977323793374098553947938950248489319745119613447802912549956854095223941895468747532657073931660905456027782802068929002751807840765146319555169312535343744619662715424473913633109551875904584855364077579262877236839703432499416686201006439935255342275092553668016841072559357595043465117606214023142828572988517410833426007322174648290991916357424576668803379903930699638045901390448549451916280480829904239944815361694450223471670402249390107606092382097477102342332801215373800781253053369744098604999264007322399699616590488330311708495003674353188080301364728562903697732099481554251713909295716971835687944472231822503619017298708063256791279047295685131213717797669047847765294647679426898941132419717669272179316186586206403200641777480229354562768573701047248605794597175059832707309357839362886617148826157250402420903834408670866426708972646168458245781449843859231777257130447053069907600535791056988673614603575001473683033876676108004069981843305633829337157343873786355119434916407174223075059147302383163705811386599268590282443293014913788581046874295222114769360191233900366823756548955781439068241859727966979571484211037551026149600367122937356974641199923944822583424998049612873509270534398606637551197138036216801636121003031783719293841041573824491705927974971542366094750290631769772163805988536914822174444814385770667380727265732809071651083376010990732038494889123515820388389157361161400231815580576563528943798086057377681409362837962074251764162339701397650753545320569523038019680826889203106365588794200807176115421655866065856085246460888684644593175653215287120418326783106059247299296562004035251428179222832277280959607981278963838607645851545771142652108431896325856424168458646836538748335654283325009730533354873323826640326595167239333876042601175998853466678925284926322607680930383204327900602880687095565378638606819775042493422621659953127148385293115779341413355940394912154861098488871104214531602256059895824743158198838237458023643763419519948909809668060799879139401605369253788843058393172768467595906206774892396825659796504526207839241838719786409860513151279385730700106273673030341774417272293623690629913135931080736592188910961734548779479223016524975374325893066703538585210805096010405521503382567623861862531362846758724876298690042901277746891762355326527861794550839874051215733950100169487312341072106029286034346738715854175756202321481695499515940912445695104786756666435227199190227379242094278885628660989901818879752716781727413639541423374496970574614319887699141782623609367183151814821236029774625829838427175568542080359107964741668014249827931380542455026755181401368678639216350328622037249815568285532477701480248668222285932713251597216180210496325795826726222498594982310717997031213725361687814392075312088555585555702564060990793423560058838298314890040169245525782630120019728524827612334719981453389859964376711779027046544647753465594114708027635627137581884325342611888452984461021089160795429475573000984664971690820357471802736235497547447280452632931739233699643836830221211136528667300934955542631447711429559555048978167616257189993614773932229998911167110188939576298559388141475506118285467878633788226781363288676050372709030554927405971032826628866277569957083998522017805167538682108736324725080019186903144458868925017015545748518690638933236500345152381740594995332122324153934665638802221744748201663752990342429185089511096215928889223437702054251897952980752327396986848238132753132521735401950560677559901984820259512706373535097940328756250057447078525458112034371573073239304727669120207186420761682964267998689811126439902395116724894806361118325972674424491897779072144170724440481383322178240254306122565184352262708012320729169241980354645366517069868585181958707793965736364018131797002734666184133618057316335776645007234930154648125343498480919891874017385364617561875283009286252427241168827488709240420112464051018673717764618984435589685004387445588247744167223101560832774677456456171079709811644128263695302676496010358325487936543932465830882459350166091220391246395332282032562568116817435746946432703151296568319771528225573810453624615251436428235624531273607151915269888866193428700969768512387711709381007682285670006720489514682366097817699779602491926217712809636819554066441436685114158807027213715546880484945537559812198377042305899527973410504555164162544828452566683587209685918150174534006416966934815393009118885858850036193302401470189900733380929337303701397086414958566098038315822162559252060252463937605712045236686406560474075130055229112648747794982928721219691575984745820865365085068728398091680827058926162847058980179356462242254791091875070860633319656505417873102853912126337304577143331333486291636091190536842891600696254256041344395793169688932152186894216108928823140161917452258069400116828875704027634320564567614918981570304443224765068200901365501868995626873050346253469280172407277644936933242711725407294361289756212969356369187220525575021832197459619871497288485727820971523583471206416951751894529208985305138344158944171997012342338475698109422166897984274755591055486144370675749343650060241249761757230326166086240875206009329840073908406343781035755754322896881043523205958092190270295684963034095903403980683014493539588658769631858670178310135242240663782620341083545323156318716247245093787665364592426689615864102945967628795573595126142914557470603808223462057699084658317123056687277822566864038613864953880732628585790112903033559585481380114614175027749849679938276813259729454887154223055612110969774876723048882255495704495381644345957174721582941094689078553751373201112614553663032474874882486629990577563300931346537926176716783681078774117875644864872795813517459975076703790536542233911145619636234444388410276704304248497934141098930569439924580398818615178471395656228940221382919884735125956149100025913951858195829060327017292067060609244793840830526592468494198772827717392941423717855376091173030700248122614800837661530554220216163654286315901842170102741705168418659842481528420828628714763586198607899823651470165801088377401594295245318221167719151904714704320001376061815722826582143401844427146805030722368871647232570294166685583027186493072811442255373673759642107659904658969726370422711285318040049973962127893716784797844216445445801917406590070738847343902841332971973326846496198556777281413900613256521324587289474860217802500945194147020533539542132593144824155498985301451889799929852588891586355873097067174064709633600317187020099489177357823238267541969970042472867258831802416102200030444345801061848975745785457807043423875721024421630854844146252006965476828308851057365189845565279865374860284298522892047905313270527153494146249939845194050967702631465350987151840045362631123348584768414834097554562134841054047173797190510543425953284602794171563446315375141268919320113173566111055352143283001143781490598572221474799806016417462357699732617197286475271718276852269750703037871632373399515812450416752262256924677148614912367308850717477127526538243095369453548525236453372769481526740001126664465490198273773565712529766779327508624168034042892769598178505240353242826929489358924849524184888176191815590323064213220960329780586013313118254997717160204860220344872684706464548625609423233423389266361385664161489399224838616642667185377274246675512972214468548846966468151641083532826011596419094621147867343042820606112065036422353682866323905623621659541417403976130413690751812943057466268697178301367793294799341715064207379421447615917748202313794674058658282415677410742048791802387837020073778904558803852601556563645739481002766918270049387233063122984208739646813312172915948551676766814778818703527008143083138568486989663154203718143359432985503971223407969485511453650332772572899559830520021106112462321200425021591773214970633672365976660673675107158396850676845512747428808105083444163094763137208898315902773600652662234360619041460509519501654236947370115282354900480114748486739192842645008995380005119314951791919582052847855928330390764199652796519099226276117777610605999315171454430784032401266710923053337051250676539128443390563321311056497667116207194593719131631856553152532240812843963222670521476361964678576610822206490020146205918725219983719501759476525213110217574506321466826963109976943745139053886943506852746421725493923532103131714005928265860054099001171901347197873091737025958988861932850679789333249993478934282168237891295367403792542894476725706721034838147968657020187119905193680010746622700912995742887382440702932562534278448198573067360226753052149881715344003533443027090389202536926972956641825846352773582409636972727861516545600838833022055988079503761799326652794972104883393887881621225841933472412952199563536511634126242811803089670709896026808058643681925564933957611083582952151794622974236422296063271208384422844135435012357094872229444270959326921001349697824379588018784829834370827806970345735916235163976444967001060983743730932970511999652808718063503206982179898629171457310897280591573455763838868115636496873564666703494711438679942369341499722946724151035167316911228546987609352353693929236607365686541213907184458625230333582295969432846490092317944430236780820457383247947193278666788111557288243475819779799718775817984404174463019078149144195216966490042007664864953565206598899230423764814353977306121484305979204550067608804399460517108756275294414566990719544064856454227895886608857855920518746553401183475276480940092295209603449373232671877161190106880871996899890856885308362779862579903962078164804554373977870589627906471170290913390201136889680414073138313928670170250069138383063271160994528576280375771966243034778176345595975692077555682769717216499757483091998199470030718535425438935040209739377624960788867827645141816413382014622186930550642154740802771798904709933718775411161843709658874630377274805605167676057405411858345592962326358991196539592823657072253961874054577505487232661454727789892006800845358578468164774368741305887380958001344990428384965490686102700995820439797589946515045510442505654617452903993491349837453328040200590000578122651080554579609964389715672112200290547616723256601206615835417910185036058471297878215419388227552728483777203887957378888221997642359143184292615279830328490508005742689423310144024134520797119787951476316937081426680383891754498727187806500434203307882101823073134231053677255670616236777805272204766537142933729447171322382204066834710002060846166222699306007236223235994210670968947491259732331349674486300536217834455959542503734968589808103544791472233883880036012581582290281792304488970043850189928303182167556537833810176311939332620353471609617804948987805096805893287102503788188238671786789452562997601170635996723634639622553307814425245853040005282957502077846543045337871942168321038496607284435252432516286932827512169843415318363067493749009558073825890218745954903393880272689548498120604897038282653340888161163316700665858192651333463510828648553055243398337789872095774496194830652608491943529356951534724137360987881742008670712379622184749395215216667261357524475115991873581487103997835439749686414393018041579408400452980473388893665375043891855881046490170664851457554844306848575698804037211093654160282980214062548981116091925841699491526052632703429267995864126744131700312765622455906809403848965943911008351431719831523515767410726496840755901279344372888898645993828003860254690787130728681268957584375764219127891980900537860780622956709445924403996122319140683277563903333262936056778062397568271860167677482340618882691650990085604010121709836302449147261614992880553712076208993280132496676039869539832986716150907047191998247507564697737924386560467889819253269585199575439826697862955457229973230890718864873708825907045878670723064941358694236555079246390728261372268472738875054001469307514771047296121961408511754683778012926046774312859404263451362673394802311896644155966797219088764423192146409330986171881050234267144306410191532124684953813396014282743489015763014349656765443043381807773916156525779452788950949180510120565296578514789760349703808796625566218162019301953254608880320075071373488100542700239349307241982079100441461916000499874150663902764009254232837799834840810931284530254081180485523708065026797606380110206612064345223040007859566366915480898999986089802277947220458454410125440651835344399617417642301038900992598403099401393314064917737629121656269399849664940148422418459386239686295250381496902151880175397706916738089598564897737641098862772871242593973054123781729894224121942389615728091851629758223851998747934029797088515275235120742611501045969043451049349857806806899059552187904094788617162001176265674816300489710776752305857601137367097373300862344585775924720300296796811231432127263756428402416693502056030494283527893640845352565236193312597727528199915983629901153295488362092118145780244451213714518221039774883251899420131691946210455880643278777894207557949857483161173773414946725272773135258879001986373379431753659890585033301572621202348691871266866686888521622530450239066697789504204117625200484277816463901052901501380731127951337608959231663821152178924685563115620295541669991912936122815450799608818971322467036498415084888810420475261443378715968759752380618607063691187092424650767762235061058531418673333657269996055436447119769708399834468363206384361103862707488086349255136579416609790990931446087298785116368241965332447031260398181446774111524817125280249051721462283443591751312155492293372416712386737230065291318632242710192437269051926533704608837638935008991785903364418039083142107157640043971299044146449142687876529293332166215805159465306749669776482143872289410379209990562302870075119185162569744925242225551753070907764175022493050046137934274866552810250484555281299846675454375257556103564649452079899443934315790674144287548264588014593627678033247725571774593369097990757044754615506316915071165695791154734576117943701184354989308835873953117833543893145229344525734976739044258841492384121544642060847581540472579849226283999953355873191150682416187646126203736030699155338239527701801681500222213811878848638735170136171008070192021114778673163750907880987131580700064600768140299575976499701934267651841731773422260871031907854814073357724366011953820206707098820980457350967052836524639654710392275849496979119249283668951052596064405587224141383229469098090432589092574591845974530242824495427691192148475007803786399300006686347579150684809939797811659703335443266353042524088047750130762233165634327768936872409773294717620986500408718849638026837664166871459198631053182431080879405840988180585151547446143994266999011712450256460145346860589997262181807045923676039448447843786114648333639601454982890776401497526130692568644949980630749562500600736296012695584107820256615242734544876060147416108829425203800933494491049558563495480769516304509676594170723944351264798849141039995894349120328667548347963621486647489276718242199342078827069144451809272600111278453483463984153845089739379852155027779098762333928092795859159811459861176513468771237078562469018005463880298294821387055530981449041931028576796697555169496086525113654760784805835540560271277447585010893139153141575935458929972804086410874243246107320546156351405317742138984114239641829178317739859171505219299729524773037981386502577511658241475757068359896676954546203036693025859583747335419821988178115107864822628948738627180278559946224321867213209865015176768775300688063788318859645357458027045126725792926659632085875392227182771514080539744440964288652059237328060061169110696198407738753404718704174832016861340592487895474747021643630521009564731148766672638795369714559213591124068099581546710896682894455783654329937091304517219448125072208602227434891527298895696891716571512590739141490489891753556100979779401980999551496201139791043849812895978858487893045751056705038425500669591955565861015046340239008733747048218166336697715503178279269997873207214393228623719446169592092496209788007325251054919379206786990800457822849205386221723736274644767308955678820845663334530442848228107785736036906921288531223347456116030529566740571023995655265630641031494223320900617112130838100132846476903162242729551218051003422921790597268972413351371490575616664336853425493543407132452681660523257036850002878320843803704392416335522656584096668739186308722173126894339965902247815999042600084468776513154778974622174735239589998043945554247106745848897686889568405888207563529817991178887014377453640669255089408733764392008382985513176607951258785798657862210785988573352450488735683307854698156529590674604288002405845110920314229181789592356425915169689852542538860617338954728989882148765053650898618309167705204991687067142915580244791666586336533211247280063260243850533271989906227227387208343953956234070726749062431348737869118396493106606480978040641190390977602131905706615680191199866307438883685320860872130653930368672898927307852728956404966696524272419186111182850749425460557065191150553525823279253936438447110000071602555642104588534457935667073923206843031172121473444621321976057251541626014448934609067540070036308858487698405535179372661291449930718053182159522747615220490976542045075046762851353969875504531731257223672749981469954725787610707376797396381615214527171764999667519553682180823107536375854291456218321831097839665163719385862250037626079166997586622989235651777585560521567854319215164448485207828728586268397637880490667353127644620488278473696058847489665701535477843072062351320606702808979250715498412768386741158579624389238905850609863294074849133318908197108454246498497958236588729131597425810259276270070393944866346335673383608178294609378095002081688284822365065123616326125637409491251246337256470704471941043619437396320258700742528780115390732922177199067524264195592789266750622071178800866009280990138384054401906991464305886368080127872162581164547976732395289562386639781755829971291492071176648861367261305797380584636923081351319525633635681448672658881973198902008179198658896961505566489016721196048502651027658124550741804671375765824764802113237200681409007902739020879472491303381102426660667360833324493294086888035862051765264412945351351551809027736870552238201418522920834956295094903753681637502670377909394964918661963717393906172853937723317019623183337230222085221142353045967863899318370209904981890388356135547223487988089292289162664631418764722909774149353747254340856426570006949937601328095555728854053001912926032036387749267372541621288116293180339185636683904690926138214298947503509983330722046393637586971610306634666607389680964140942410492681820759730854485739679774138689965230390570844309085025905391650798342562315084787615670278937824652425117872488007208110256353897164616797631741544987373544010227228900647877706201431219981288952255266200223793582162973155786139317916946412451491358450712992238855482126065989780047048445696418012379273857450616648564868200107952771209633651494826964827637095038399005338527809485623182867530538082449024473740929028518281537643497268488771986946870184464363940596037283472122248940989187144338602945570813335145689905336581639153837460575263051429996850771264229306485475022788820673236609596359453661085324646576115372514724949385267059731188502193628313463233282587700951024012356034427346182667656652534742794571813855796675366698588338285214063476958673424899231476537826857528214633390356022960747723211444498355233442164601861963468805539500821781212380298710346275239843333222861130231908056587865561343454916413595251627904435118492100324887993800522298180917407160201992611510127705447207290138094077246756750928910511656284054625485947004236326923540807050188590188954956027098301659103223925456705116605222279839863773258097630433310565741276037703511042248132980282931128037471818138479964428003257006577021009600726449160129463914023876414655449073199460305681409890568407908815970912569146938599714739435997432359141918046397049245747593180181696935888221279846615051867938208159164458623400467724800717007270658009554413236260555485080079268760558190988816707018980738452639520432822947015247050188838045662819192275573889082995218447632143254051171723147219095208274804513291122621402536238124108927970369123247464292125517269840380638374565313288294377759102168636397011049860728147417317899640782341496535347198307272668102397859810895096853964028158904381338924386865863277112580006482732478880031284569981824640380819762636952849164227950583184210980602484546353173423180646689667887353876670641123253041495531967150786663829160205146626015412827663680705765151886951320797239610236761890329325913689708166253332736801193137310009301479053016137916406707411740749482453049188508315467677315257524612197635138343947658833388587102422875736028189778711056522447644900541354374032375947820476950477894600074108245292457421292137471786068537745602596250064250042721365235241173096984242370306165319234086861183140550136433448457558300277964933198951449497484214256231366225504773984087408487276773774314502509920684833170162328595296873416499876089837612280015117285758322032801801511552099628719159935582378440436539928198209737927154971556895334250757011357929043771111190545690482234882296568046978527078116151651870527588185236557985114128166140151746585301564170028714748481976042462362503851267836900871573564742153761390800483986593050935363669636029740450813631046336611336430858202187217366243667606984938264290692345734657263035325142038305475151014195301124853150273832369497464587834426588159806839769509983970515743901505089373371850700127088226386254815711979477722565009659799066205574890479112118176435403472954105466059104397902346490626160022429429905923064125578121162031750808679217001206020334237358864575099161999026228941786800926861731023913257820056432780374016437731656620413867673731910636009226128331620486107985654698539582542421398132121843122510015399151183305354611238951285929937414115359116001814001015922906793277773961282212874952009266448119108691015137270763623924481584029138125135644761422297498614898433238464011467250236573259515325873636175378591938555582249905360852205903432258437662819710655020165745050030266598888045428000430120946391762915529010434275667197638596723101578314098771385918859439575877117283625285858381188128857963385475179950029511838354531644591862116460339189195642871294051145829733872527858921530311962659773419140184065099040892889318344358728395082556922791494906268225803748816747754858934834001260131305915290755341752458649257182509820500744223293326908414703033448571658413456337367910570561252054185611921760919916920049045686292528633290354187679897022110681993055610839705830871856989122057312647733298786378546885439414867930390016939036374108441744576222875185246790284860521691480533803445182038488185779322667480793299723008969206089644695231367870446000143232362054875420875167074224590152924723065265218175396697486646436613725845380507193989398688233745771334704556151521092600940397620554319239161142838625119211692469630163804683170216404388804867105341930822926000387014902786375743756863074272100520428074036416380972500281004442576953409930414818248878203720584696131914629069706132725877883680742645052217590239352077484532531522125892974100027005313630630904620034244247710692102192468889371479577492094019177744759190025928716986548650454660925287557739899661428485487339803523293125750607376181670284806069739149794588618583351475327119656958461329510971593379102015931811965204258288403692173668646093886260162620219996497045992139698531479147958306199707180503142032939562946877337744168632659675360878616772321823456782378099499169011751049514369611516165826544315290804370248898699468531883759460249602500296797435230315392828702045933500746240313239628313659197995114317594263416103336652590148850848377044678677972705722696025152360136051268334168158742709376808965068391300213086363621267064924631632068598441822931267345287686416305092982985024507921341195705412652032475469646850979771455504423992969677208225834950307962454387750271572131033153630509850668854880269364427048125417362602326819521707335962088489729712198798980039804864470332678090975315547724572724209631592844479710386884126624871148072769901374734955923814114315788662477446239439027004161547028447845602875751488117646801312948519181705702733183330118033577647598784491466814220372822723619669458105473908041650453504259424537854556718788017311257586328154037188542542813505860032470849406073435805176874520544315823492727439198397942544788017825570185909671397761512890524472083972044157003153646698214004406732704881216257961557844204780668004215773381223310395782442512274834617344893957975449505016509654873910898145241377259290844465896399270826642190281148103949422147164931248997299543918135016344700261509723112652564647126026007661467095456174906542572418466830809053388772847205824787636246384412071680165442788706672459767994673389216064015877184680856611470186164062025402751788382173639152174116033711285188283295554034436502712684966242552627071853352179760721794264630581114208323347690583675577806473287774449106360707162889446534585002850276661933818018399089109256193231260875383868779461117533023857268320390572399709460163108910975387109615321190371330574665441221750881095223362136801177869525167106147383993204759409333301428487534000955294696190926523750592179414506840710237414355342771011031097893402238394856388314494426458337304181194944811422905224374241155241729196433713096560168019593195053710044632148847330442431122408212087422454291069125055568552738107505537499830713908602368173881713592397586632324883729029040861424015267400043076903332856814804864380623205719671872656259765226586217050235662521323335750832301132491724226756326680672092146944378348631840110537730374648377293561964379055312315240219478460786914055470460905521991349911980627513602147487380465405159822729016298053275916765171997454203712816879340183221901437675242805289929087988952301743894831940523781260709200295195292236254514648231692623555568313436009280566144304797172497678214598783387131731332538521555901700978813006388175326720755481030941101711101741551575078700977289364969759725188310007883475506700741003910352670883532187882898866393387614306501352775859477050650117835805802533169385737037107132582269873172833756008973057829815651065758512123103285836822471043255555969988767330047236537324195377841632873690368045693235070532346575549721696026091872782194533062700329268457948546056796204387459560942790520510798984915135777523172538439537473038035504485798057594368775480107596557457099916554764327439897788559590330253432391599954298064530256297835579048572179197986088456818643990655565785414455627763389700381364211691939958238049680396740244044538081371154632315695087131756290579052718169614240210855354668462220572231269142363092703549852946689504578658436270034744600791639938343906733794833974634068791001630195236020594174486283730409995180696110820744361082561212521865374706149770533119585038541796402073627213494926243052809788160773038508905833122312890057774100374839596478051728197540871347333725914088457330357669848632476745503351932150595593188426021301359087447399828236879398066085265005758943582265557958483326317966896513208502687960585464061867427897610937566170970605833340952115828336418333185039522544153728584847331064657264987159638637685103983328565839774931725156620934270411070236388696498794244093024078397065204135331041694588210026889959404370496481714488934912508092333297003479060516160086017673908492505525202225850876837096129475966323410096527573272725923838431856161108231330323158772100118196949034349583125518353104227394994736521490598642946874007570265406661305807537776236543482252288267292033216997915626566468334013198895554133660947199312557925000271159182091775374757785687890944065307445653208219522198439436528865637862358438866877216300511189072506783067707972003241970962340595048676079741139399126414468548761201702553575773085036274941173989516738795699716673959959374999709434680135760173688558644519062704559920094566046166579255488499807609264276208966772859375894404182455054407560194672183129601799237014545962554901832034815632295794828925509375546339423971709465862355784464665331978916633635957830426854598190446707603088876259987257947321400649980665673755461396690902690920857109648771502861093737095014953206943789440925144872837072671034120704211201579189337472026903656563059855367953696326527736784947008634372829828162213009622697063059886696459151583133441526288034420199043886182498261340961421105809847241375548071628830592784687595578933265126400749360684057592986297787868629574844062499421558114263319364813037104487150542982081525263932868595482014149477395474923106222193247875458757885573248174092284286535128864071628552292487772669661194301261773451333233235737351024716342702743217851043149399044961047325437798545780281602175786824471342310304779742106092671573044091924396228193074492462598915604719005874240463343723976246226542062021548343277659772686917031371870324346956485392471858233432875137121941035290940267172317843485245420173854300310820591862522190020026062916621826680879144830319327659521663089745603319872423760492198698955905433238476449523634844508740571143365745836189872508337903210834134152165852974575978863813303697917574573377682058879319498539474817222880714066260235343295634915096785241603200614057684737125571805559698496901142090406325117199277591074014797357612328733358537130710221857006060424617027259087169787608791428579556667632063623693956045235772760535806047228372958463605683392161526322676412670726242152579370775739864020043822879961364999255220297070904544073364446463524701809240912725313919789374323276754326749814008177264544262161331320767765218225707453701230850636178117516897014753663930824255897473446682165772193849179463833518913721441983039185482010895319171383239177309231739859174989273733476723840046710074207180687179375836956739641129997779744698727444438087864731551446735721761970514066021473914094574002066597760286250871719739930289437618509522801452992123312130048660942828574620414044696149094239295103959623335206547783992165878147651666701903956850363209838641474657028434053294694604527704261994999554425446836872401308266252854081583230283055114672264308262063628686282340751790280335781322231532689924586112527852451209052166515039264412777696711076111519527566467147748105026876840816639066775905011417286972595697660653276302373092254019518675718826911265375792514385535344416933513727958470354598474295738457030334928604182321774364952133118744053044906709114501702398761152709874761639274577721542083588711370279840600010877904056021768369194633393058597254540325966378348751359602804754521977253904512885294778905794980923048356025901084939177613848685794750599132728290643898719118589357313791042722901850638119995077360308604542204494519195975643326965601466873329942964538784561630630718435329275401485076953813705586951288008394853927819563124765664462725938451607766998182501159603992544378158161675088868186111173392017495736820320786407956398370297117690916533710863211586862640772675657232500031781434778641682519080363766158863703524199044340681923004996955141640128021615039872333967521940164665241001276722976410650279878406662146440236908745989220123018224038828019596576814751640610549421720427029784432529980753037063931543733856014342501163180664097574169813322328239890525884289328195576031855216084379180851508775085279717953214476247733390961571335909543509561237403997220593084406399432401672067713450105735815813110335617385204025241669767568121433573951411591488936808693297939363580844906876160896976440131648569357685006162906574435047740222142047146225340099909624336181093583628770230622934493832048312966326547932603459544799178062952975455936855812223707596028316016054975435827462405966448085505769990873326103521752516638559277064374285157538710235944120032841925757141533579767463175723273452817295498484029570081331820395275693160282719637090846557154397326259075405837912805546298077623846887635884101027573762322477385768707071571961768282568334197545131588968209851718839994691793697661878638678043524115130304373046225979466794375200227213785570328601492036926060350195336329604779894360865356834113418417010457361389516224689170142444257433461637570185179411364386292857803148966814929782013701555604771416815550908924523355931601812306720048553263475455751650238782667564921917351544919545427306756607017307770727469394058649552863089147670395246767446918700513162683297571447535349763822993753633726053667350877751010188873764076252287903783339216409346856178311218840738894434134943764023547330695370534537474437820458853679690574198345282594081972730866380215821809482865287266312359070543279770603768450569175895247909680899870708536455921921016558164980516076958196843423870312769934058749489085115492853150600705340526385549683818025459178651864222997190764770063144720320093723485689717658178106671762768018455288279999635883835546745726849700582460332952238226382551623558188966140805140017124012950725088048588908720306526247704335474440169112664674119567163861995982094418148561287238356284085766473831463461100537034262447005810812953347986418947452007875105629812067397859989440172923949989886413658226052883792431594700940393075009562520691638762786035875134509926644085577198984026748634438024770230299642324249071086107845316478345088083010810167369016833387327144239850941307330529826806663811318690236183081922259734170341624965189241026889475181307464922101473446215904907121076919470534368321187685073419223542495622968924060568185109955095420970476074905842227660533194024861776408935589845713081976383709445982763402347808647210412178254899939672431813735057833038254944365711899443430838907224744810397056553616764919329264626795124556381504617076427449837644346965131365756873794931659728741677747392160181841100257042787353897284398475879877145161572144655168699353775224993275630823084006096664402423831876139646762211620828200457222952148123409908283000329653680290469141132198282663922823421209207856642062612092214726230484980542190040940436937007389104273840816121695509511059461453815585690987638117268994254175106521943569263879562430819767642811189856994280007595411635091953485944577172204505339906073956268195422865661207961232937315762295804429655978785385383013328266832512312626221141005456408838978381118504605075918257019351373200679163419843513428419642407595552638467231809888280889597215430203272382265508590837127357120049307715956088665692036375062870274748680529411778806075621094036248903393866480640404076387617409314211444366439070173075590774620243617781127054591453406813823458419510180502380629871981890495513136882505581798855609800227634076816046549049936025802483867402713980403363415966211962066929644112542685382599754196663184556566291835626514367683203130602345455883232383661765075110378697386289715390992533990202764482733527252272479988869510585454241758360241833122411977629657211780450036132427467244786296304174929548060311810581095952857858946229965760753803284196074718992136430403194863486830089253411417517227955187946361813651013883306193442030755584272174385357776413836225834552705958851717301991376575652802689314422582053501079942680022387305146063238833907888306089556376207703168094644686561099097256080543899540002802589170586312221645324970030536302617022633168149870454533855759459407091723833628255187800785001833444967516067247865367440591044839163575873835430645590953363986530952408716091657727265142866594112026781406248184294293641769294963836722504669334714388296578906943401455210971127018230747982121022370148323647723781365155308323333657363862726772242649912818045507646164256348183854412625891733831780217749244238906800325772084548101902020423658949273200244185092076106445848425185458906492227104721216581156115255147153247327740809890859466517855935864850527826991282771052079350030515005122275695893339892747299489247651136025053106624837885382319345226506643395959354433837477380355592537350203585467905340561126504202152537427342122462933457644065971409710767399227468208880901352940704551574889747155179707931276268395223272277945128914555719260098478728447308754208490602790013675369692936120287766446919668723809564908257942521648246732109572865124056545655446223547755559374095227897031746705405223813445490932260863670901612720430128176273964781989843384825380634227625548843719854925006319997205865994180730344908972219629649458328383412143038011187898170308057425816763560397512352491740143059719316728825967706092271016206222784114471086865243803073575546298228890825033546205820055453498268349135662933123658396642211648790010877594302019223633400677404132005533825865035458122701114486956780015694566553568957117947030967344784253009310382452425870591262983626582983113473622074335915649111717837786702109557531293550680395712826770579146707073100511503679776326854518744018532831617642886954194993479875924291511307213820389793235768478264861580958210543779839909286235034030567223816446797972789371031215211109062317348554449798297344467218642953383492432075104828772422627837305266250071793216291303384451382269628173728278747581181054251794851653437909343047263171849292258634147444164686591035780045563790121697443837387885041774350680767593517102565845011161284472566715405157696699222510150191232948172377968482606419774094867473629604205119524069730711088306375762512452988952476593140893790343247347801656761085990966567556923195589004214277341270960827565301966003894524448395831970768986177686514214766810438100200093910253944525254699950907707144330347452280519039674467963907257310901793599733250429432441717605490138578243856036340360216523943391350821161286611666832980793198502376583497875158620839181037047051176956877332792774068834890203555659547366396384054274263436025080077461187972985476175731305309316627628606816234701994336509418018927523001964095176564593963943532897569398575640342191475658185951022773806436294748624823768457246864524831571684675953246134870147582328817149103726969342969972061177358945615104936516866562820692154422461678163973815430607258003867351832220489572474591207782296938744115708898544918922735666108028173516869991737345320092175729904670523681828992699254740783504523033110096555298050309128078134714331179889682921524532241470171924880835031346583254744998187278167107437760827752399095807366598847672625805896830693939017908782262863412099734188750414172386455182587551033294006885625591623554568840507360977695151007816004816958273082464650889386320809332768327443138610994408177608535687824239604810663135118357620115258934412812566196860799524259790846344608028858688345018951341498270871980140930968081625763494599271939682193101349830290022060243762659117870883330278367586844615686948466823438192972410783663526692750477586108871035089678761090189435979639225879323609337634193211533319634024881732545553246765499990828152177477625517451186211818457763048526487798222107197788754113898674419417879123722769716735471958464341289397589094126895756686642399002608607574886172372891436487353035469731356657309626713743094286331407593636904741408059080920298586154148220405585685930748618294696513756104645250877818388482408378700703294403317471974591084146910814798322129401490858420227118637771887679303924466695465266922597026564183073673791769566114121393041678088945212231751619734592776881445546520163700939699509616051596407366118004713373223305961577454191941886820390772978382830304052204755069382614455315744776863934166763045822212783995722742559668504880257602032110178563906500678667648735318692873681983051847157356445325566211906809651369412096017525706848235731703307188570919970627325859638751158564670128803919360707268045024539663021323176273118101784900656338058384983451359659008771964481415569145771610898867063041891597719426834494632700359097942740922367137580653038138709765516872432338355502846364854785714927177186124546218049373488549224489696825351807761361263035136387224542943075483820332940281600416681766698198837881612497749812459617653030812053005388732038394309835711367472922737885897250516541470111586689244500939833746724527934504430714163826381734618199333700814371369443459323509594483298926883791832357317214156110099449328689643912102070719708065437062346277551801013782290039569864653279796198878221837834912149389498253888337541579204608970610243462006979669852664206144944644579403573996112587950321600773975219122355947238533292710359843356832212717352733144272754433206055217699662617971668515477319916440622214499953743980313090619964563246323471479678468187611525887583509891017066926311384122936947725391291708431191021868667032176996475852545791758545236621000973542468946635509213185504052617727387112226879060487579603498257993062047087775637710419584949838317641874102176387282590961804981107332793612640970686144450123156778099329623491779939481205875481825090094424779795426572632004604404575506735238423924811922196034124479385879605930797455845681738511273414386941489188187848760653369898308313821569263129794211860926228276938873641786513916675808790706451877950495742796091523505262435384496072094524539022228771516708297548639447280898543173263885510971813454653753365051242427592716081169292339540577222172712156089110750274969834936504063058541103632178656518762794493954832430982214237336371422251411865100156405759469555998171768103339045183498396961781830677703932183073132826265745416130090409338175205148671921559445919065723183708413606357470710774917099279059397992182406891552580026819562487155623275584044407489969436503342758917757768395463480488659141760043496860339025668304546405460956907863560819169473097765000671299748032363625166299983045192646221781804868092535000770811772458822405736761032638108544852542877631209762895513630499511035203272491245379605223375990656860662877875490502775914618260626394714423206144949909138617550678221333731052941532182644038060528114982322845477097334457081254356786451346022322754559415065279435955562552016415072296714068142282239481052406942874320059183363753342140441431792425380301855243653941776628744013053352073208015785080494390691992823174724027307862162188474480310841090470108555681460028785719621084050303709614793904346439966984820118902334024479630922208279875877208003124412495047340790575486345892269511517167656910351020674243696664843419044289245512075658355547836630766190763644216798277312678949030497410272583636582131092993113697739199611215794230686289783477999127959540733034228347382070651544632363963738599165565366150581345891208567461249491467502899425138885742148675537328263093979472521221740640930007503111663033036623985695758908287574134904066483714695161900088781250756896678065828088880937523771399803575227084729691083770989743257296124811295434616010798964928640515789802505307770925294729255894569319137879828096667010935290289847600061237811065344053701171906638508441936138358214193481971081965967070450668090617239190446341653677018340921370474406072249788854062282949195400154593760805343379040437613168672307286400267586007992747022614066675760488717710772416843371926118147210731068182139567278396329371010191198727569763203714269281805666750198186675639040643185633640776767434068141238488018706050844772014033982248291556099689961419931167101373820439625815972717386613779433088759886021898767086809658332112278169279901180901957015944017121701563799869685492839219292740894560173081275701703369038217979597839218748621503656516645495069191457791357046923945422784257654847159655432266907841035112884623643417241185324694499521113582565942498449385781407571688772683525171215369143030420573385269856709843318593022389498494946708801203097657401066542914252370431530957541221083731319347698154480936745201402596530713031114642587135289616314548384623487650190180814314914348397378805053679373656993702657694344649173553540714152995830867109516003657335501790430038037663615258331780343458278336929027892640910154866036548602537887148307653839072315785636329462316235664781175703695953364792801896592256891259056801931494214026481086323420117943727380603298113948187652447257610841093485273828912994334582279655912314429165494978773664946498047174867497457035920413798880131659547126012594542913876415293421800115683783967025482063630027677321051752971270248680211937986416618689729055645080294488994665619664325677866754089163568753260513815201677399580309820066707455689592559941519036274912798457189194220351605958753304428290536613783223927074769268827532480142251725788146902811370777675841779994695288237553605777242578574986899494096868441420917670837705421229226307963277132421260379320200416864659131670194751209443586905381024714555823135403374511434737388527900165604298969193870712171061428389505271286590423646777732439899764428451172409037518586178373467394312821800128913492522703060827396325581566253483491405627014130369439162753591849701979647889401147673810120546771489156267401643183074987298347897105903782023928218921741003633271367103055637490425680870500483712459099778795824744465282346967540539968935852776645090041384738581813715213460101554717361072951291166061007694897354932095746731477608658710343175912046431266397032954302450546878970876674369010329128230416848332925123372141241096878055997113363210574452747212269915338722415310226498192125379796509725849549423052390003593422671236513065226339982433552011562311372132141038952702780144945775320204667353050148446542698404594470525616601004123661798286078607302566244155946191924330473475812085176898000090887721411135443546883851431829030733513656170562748019390526070309826960986515875102882308913139034842995825878605691293889703421346797888044337018426900325247533145385898880064133816661951862422771638411644706637080922953655547789048848063323302566705194597019120982797767280514593771190772515510328530607744517809972868308270274055012786886189887370696086648048683073302432258752472741345841492639482633945610401288866577880411085609282508164035166272631082546899215461859472902675624242508650174675320064344040206160319529077819577138670540965965694671887318211657979362593766496385885406667636098341942257930388812223494942513051091149656317072597530005524339419857312722819725734041491136299772085613076517760658445577005770408212371051718089736532606869670412323681487549471151159581582371403404943981070005813572517395990826889951797862355388892142295046503137538017378890391784149517581280462839859116709422798529743392950819455006729626104945376359970853050289614628748918422276558721454194582136337422116896275437275768476396852160503443961686437908296436512811170403609920579439625042467898301068696028626205576756396886264330893237840705669144838280891289798843686571223620017111199364287216063553580646603696481713237005807628704528741366772674295585377688206176963828458967485178366586974184133555088928958027210402537090265679006058923662571712500979401627750713910425696401991683239814193257876212630980710700902074312858510343611075755278955426661604184063321759185011402975446128016131325561709298242008749862313232874507599424517996877806125357011729949272545014787005778875999650442003811130346900475802166790919410685137897739842218516180554443494538195779436001220141904801807389968335082098127956618819516895547170189215238776119039267647773958438922409046039103138019756798047965952555547588471425612978243677929791837224881347421557039471987869305246036451773736452046334428561817345812086391065787622716617923540727434977551673567259970018089166891490624298080957439229796426025972325701150928223248178574753709754566560884926384774209595522106233898340220492794062829593638504260453057991957839591914097625116576702792500962938612298138324192715898883659238592285856684067362622452535742977376891073136889624616142826060404471796621076473279233924154267252642885502047026102549242525547609148343244152192017567034668727363244765817259424761604660382289817479125928904703116933161341416787688942865574775266828235449756087897992316033279584043697358835423532961796815053834857412532524025123860292247264906134031834908750706153160645768390075931647670674041026015665767396528492811748058379849368439883054639490601807747937857423066830584357187382329943661059188603159223470378660992484790358441928311520640579466798766524695878229165683550480356726020033703574871200713651674535081825590249740911312674789389283997069483804775012880919084691699909527754570562884368133045296418017660875762741515623849824884044227580158190392012270621288216683968666507950206235928713841692245243026437892985949689531472614764487740280049353356194573661246672705274412198386078086791293588532272592385148443665201602194850454349493697068638878692613759220037607091674909522877056717549720471069930919262689284524065925201525810700724237971727480105353110006543489117541191429546370365850496439077103036334868458867006798230447527562215788449191487013220454983871304178148263195146225672390008106291667924727402775075095458176491744239102276650344667340052401001461594850557044423920443044915030248128643282322433573660333972863719428588558894997749963319854358945023458873660581913157715700011493232378642612467984803175709607769442788863459512068754181578755131887854178901814480211515767254941016017476493856083573153110987251379018832474362137008648267036892063974735435685167080265313103289630518059139233184952135818571938824522421578584875747584116793228999085252314690774169426556613243725953734591526384585656510609007642956673879196620563483835093822176195279105627441171282332365196933562065786804281927198737502385220957566261830153486317449923125614630914985817211450952197728696207641723848256962653091580999056384195291908299291163595182267848315989460142568324618498519059875370758150496724949004883965093406365680419430362583702533608830367552996914516033059487410843897961438295325175187610955387427413033877450859005781881677335066614867652742669547949631903680255329429254935339738495311198817412706906941556076716670196345736890253788461708306079735227700462251912122666618667557029213862944768926887376168566246431057001304019853003202010274657279968475118272908801238994161891190316622721383235814111385776698488366210733343686205226015135647121799207138566502814151728010364324554111969445627123383335872378751035901318080460305759390584779792725287058782245275425038246727755812972470895400005326545360789025308947232092720273450477325196224376352795233654865651984950822893477459154698311023082160002923449380682220292843652598101909000333206895466621987352699254174512096036756997116400810588130775830737034128651431755966708388023189060348023041344875320869706313922245597535157523269907406793730547409058604459976825091151361520654145591702203350872865953083456971448185157380969559118707135191520621363624724922919370966891429774492933347082337565143962264429317102113515004483975028687540728196628939023364649760746194429868528501419387696468373696425399275774535303271755842612804760922543260415003776872424151441345965358494848586587199758192103435175400832221415145816333595951873785530426474317325724313635430571429645635203831217341079015499769385485652484483969202351508083223303643781055598751873440689242538773421352582521336931909419115750645323534804009162643057682172255571154679240482820812430247236424341845276088905663598190233072493801609037343296007522411655461024690254138453464524362392060617147107862686954957571542270248758286859509607024737276124440673083165133163524758962707173934427189029956401251356018991178455991574007087669193059678075961851395530134082111487504178184558514013736916140581029180731652681234269997369351218130105291318835354739091925967268218355554330869270337363184138422519355953722881054940766967003412114579482693770214402823802942805271405562605330637507149161425548135407465725968745743896342519974665431858829946535913540191781690635452425471137552272472920241832658080992725721636465764020058626470532759504309343127805693506164866845953758912323182476009545019392063178223786144759548734448641555858449509577731006425676083840787119725495346785824030538655754432341660719440584954498542087868469250405576856460997768372024851104795571159981939033490148947870191056682389385814323651332873021969081024411480726984453033236236057281189720712990416318627827724349643607051065978653988079584755665823891578472319483560501083416451058810014065150013418506322352040755846472532187251214776764778555932518476403003941229876164447620029156945724553037471384150444711567510814352117450318256393363453328644207527099343553946565643030667149259786627241084390812518780897865597221289357549552029505149345249508634299031053963001574239258438057811036890229786314072235801992903186874330791880383432849604750152423493078909507337087001048520728058633177562033894163045258977674715785742589814732401173081041476175116335883624617689347249033203709789931364142250370712873529098028597738996668687868369415996769200866039776143550606070851476465968662335270587203176864350766174218453973709909009586385244570543264950957519086562560156306298409879174122914640204544846251792973830467978278764038903403749174287479538603927034202455495962490330562840395455001423460232552494525862065898434433337598687673701253158460280808242525143219079971452561734505393850154689919635460197828653144746452240160980166793062583978601034806384892733053413780154576428937861040392210779385512949729460023604788746076299268137049785033129123158579594049886043869020758318541397374602196008118279398860505758754741973936781299893888582384548470650169475538905859624606695001253583087952497077074688236965415871408561246291293486397140438417967709559360255720679030642142905995301476891082011031957171757121338882411976709893249744324782888662545110386921090496321670554250253041483110610633834798289976896972636917769338101785248174009606951933285235331650307169386938617605661214326587008798418465731990717421693159999449907375125312421480452291442065479685889378672012041746396288192407139305374929475890061422429793205828615909227264793670815118600131378452067414329985027382963440201033636515160443075739579729087122947264199750854258279385818936163197757403820480215463860301032105714891211520396412711840997489071162675088696090969263474923287016140841781729508810825167645204735648847398446257639400978125604837859437304044047579015448801576162699414963984998767168320225410163694561807031702868632968542116651376970848496411310448835354482144034982828471167514549103892554560676206817609233897854714487375916337212440145204218016845946240510633876416878285780249351329375220606233208445363003775323932654743840653640870239226830703636890356644031809841680725470728478511283363848924300443232682065940266502629999211888224922001791962998575456728831103950219917608927141828411581926234767911398127830434720083494472263546450712463067584073396437985214758190377519642783574276726867105540893573738653410363342216664916613323571864231235314529223333888867792684506858395787350414999538861266130725246811641317914517621892130138512736069295735779091937988677954980025788378184505648068869036571082808144226869960693728386401233926684891738617954535044172998959557566100459247054132368828068271177521769671394917212997854376274028506064062272617749340992563158345466546900171258916518376785171405325089777222695538396250534147261795241067924216795577360557233936186398862800869300415418022384503411141400283138874194874323580542972687942727514801669531334090796225619708833189982161875440844193348992256203235107687753077007352866225388061642978949147512914275813554085614575518673815236171577149462500151872021728226993170381201794326150540534540731486319254664819680181729780697691726932587338733181963361297343314563322791441980186928403888948646602416156177877506342434856010104083356986880106136730807842518602899597294697860012120273248293015336926175329853771255919719242300813039816357162644749451828716449266039493803552727596144382071480984985428362936655853567900902603058461201367316691329301637224160922478036750456857561279465281951381063655899919184880461939405103529791641082805074174068445271665171912310912478479299078033229305996717815665056965918570435032880877732323771524695390663912123263943432177977386410711966786680959357051104597590080987816153445304460655607052332919536613966032208883278725783280710707523877864092293362371146042346278824182991553460510795443070987929109307015142877328031074763710659965396246391629051732062556440635776732227443326119577828362549811118564486053455940464291638849609624927285410043568061556737329278702254684743233816631576107796788394956607622473030535862262872592877654156008511212810915093609806019935047587625823083094586091460111765969578202477723158999012814587545751302253746386482889312327699745735019409166125063084999612111724813210008258288697173678730739714535219389187262650454609034108207790888167440963090354075230716244358051854344134788534241106584883366990041762936395775986084199825858940454552290511040804963049748346015913084939265334835750013600878711709330251298853958495581474352944408050775865945393684990595410863637430688886650202731027422579573958164269872074078710742722169612479096398070476208692074886402427033161394913599081312670366443032208926619341209502821155376803604428656227216556834196098956541195444430680455438947854382367538125955763350555503500590135361198969761511622586456562602862741187591943492380498942853316257981317883636563485768916047505288329777832885390956401832982635991095528245501818972975407287540357090199714203574685346276432295597119687651707769523360777217661637762192374177076662273219600372564833791262858916435495915254093100504672416941978740996765830663671373903641598709046876574825898876511876856864418840668489612987837798177147949625766309778715732614239206552835480723943953568999982122900157491148211482156737876587783104916408602010318089013247678649981049759952693436959308175210123462345803237213562090570390490325105251743573885905265457203064851229361058992735367139846948737613632756063716986667943476733110979321110414586566103619994338374146379805779742072003347888480294482673824313587580172460123021932554179370451134733019008393490108799958475003369793198747199746418025478805114955369501543657244562390198840238598972663158683400791872393235571135619060006836161326519564962690589548504829710360695893072539555013430591903271106923459511367619160091996985788354224171015730608416058789406268562708860901125828203441829809254318785076847862651469829560335445496266651664106975795747865673955048164275097581401561911635049009924190883955744501476344620109224227717795198856813514082362849804717277800377304236809490511169503889510673221627887679159023611962051477209054538265377877837808932679850718107633120957878696516145775719932654249566757100582937366824700531607665976809046037218349328506201744006065524508488067450859115647980971919481819959838712065458210718167720970148511892246822521772571900256826804598472161367404918198103888871467561724899728178898820331489530124243493567757445505806159710423070955199191447623861320270029842589929518131713569757424191177336582753532163389011102163759556761333186743745690261727959287521021802053973182976098470631250502682571834374522015456879442781051945367120153241220583768638127451550037320755480833330598698544162751688607341550124995697245090556780517111247079569228672106765915478892793178765235261914171741732886009447221077338239074285863492560373729785665238756642791244250282848972238298138700237570617226356366336949063812522613068058375792779223000483201921612361429250629928704233244189151029152270478183384837742851214334146465006608397209069531800454695516443135112326830353567891617211330898186941555723195862603778060782273106323196376528176519195904524895329070173184131957135245159970760839062563147720721644796664809643801249223532476583883179975477547632523078055855920495450881669552135848118289835929834368947733154650176139722887115150614130683223007281786994944634703200469948813063972087465650143598241853333220271362636547167525423174587648603215904215184999093049451980394703210886195119471275208610232739547004375170158474381844266548413145118174741280338426469349420785547199214712141396283729562048560996104235814969714409586492424658031738438678462824995813584959631208910068195292198833533736200224184164547438669837426725714509451554336732658035094907644234490702592715775759182080870380738274939377781391619329004508532148013403927805681475246572186646706078298723495831798794415194302808342169421275385914584877678915749012368230586647776067347560006026192630627620100118501900772673489033922869191527540940313322858703710008530751201698165974113916723888995169426749297608342035653341740180338830494979803690660121254690303174741368435646715445665525791332718018909189882520504058391573978496573678129239607146659703995178022886091552289790144498509569592100200271058375968331343568256840828908605997286127496584751954580355116497317786959908425957749333475671255669065768569801858670412190083375369018693387374171435467434111465992070042380191684564313546561182828821952324072048268384756580059415397699675715972243262741139905728399432610456871298567477461242430987385784012302718757445269521303172765296217193063687916027979841185428272725845132441709460511952255621942023378298119731976280851861783266368472566124743544145337861340023672388733791415230063080815982982303161997814124488873498691682980378539287589795831906519104019864316035912403029682281458192210798026891686766856092902180650539238290246635851382470862410559654359616568788158624110118143939334097269767735012237383988705481130159491155318431548739180033750165084327726892804338435229775173183883350367106671542445937025519828478230185595952596392621652142129165016264779004220570018454735265641555616048349685110446504756953270807576466673192973289615282710221493204677210466482539316669093873419336593214185752029838610982297775709862048930942750459853512197844706679055490505944774556562716315257866139801735005417773646712221302524146709720612853168998965217822157238157250059368723386527800692316603554828784586517744574623216854149784086025953066715665118360242652864466408006388187513661104752316021204338097837427189905270163871019950425648545768474568939302328897798039626217916080423744388650930917632054712308175161618562626073811517276458161104953537618907615051501580205466309533618610472894042912129702362548048697447407834565524656048903941611289473355176356540090845483881045113528574722865622856858052812700199000144609688422415568671419976932972988457072844810174920077619973460325953666927884315695325418840459059779715751496806380311314920443949598758125679353218189724349008277510533253308700418014949843217268009515993851887333634168442540999366332379014966652748949649448233987427564818513740889906015265690765173644080667099261898445617957787408919903569284513626589521966324326226678585005537878025644320281372967827564983370384624837698384173818801386565971034338885374045083525774392619437714711296318983409381539705005604419568517466438193733568481130326434158665391508635395864325533550719854414688413387665922931829373411114912073582203506534927307050632852362226915472071494251816280480932926957496903948468299094150588988651845360738382839608339098873438043863674545537628820063423463888642236425949589331428127643143228130805441714801842423090611882510717394348944540306918646107323963426240178304626181686220936934232196745277841215704575815813465855600978539013733437621952166650253416914737951410714580524018968184749767642151235380078619115286764634083881120205222536885363786586738258302180845571358981230106905781187036855400467103119376141921530144859214496969427630497742945584783268845589248549051795022196952643473705820525602891646183665849192056090725424418915014927306137856827112699722052587941108865079832472403396027551555414773978978418127043586306456110046088326081547131355458850098644412080570207021521482366595915192280782091887948722482100909368892313435258910092411735215107310751170733620735046291854350618281082585381358495097332478109080091704042517069265973187727831777670867535890544563219983436182271162775665139411219717968960141750694299583026156455369439014807447833690706283423773345814274522241068317329655116830994997262106716516618478330432750691074508310802448288620333115428765927561907633700125832330233387322790264067631466344831059367470451771390258262603148590730259131198190533681776419846366498475626455608606105300380669480967508263915076588656420995986052907470797801061746032629482934954831518115303229361276031424526147015687642823128276277973061923433049698480626267891050695362941048674186505722516586860797289942315154232876351377590227848469123167977188288281388151886947151328898446144693441687215302959577006976611706147663013697526433840323221859768265782348628110456971064709795423233132746117241743049882191335556896182216535870172511034916566467538572444886482352937522884189833313148415444330666305726740322112577098266851323806241870966672223490134642321172971587331903139803558222381140978806001428215244399263418560476375640653795092713547683066335381553910240512238151963165001428943204427970098338740169341609065126797520103787755862308166057954720797824994753495845357204104311122218987042759762267527795663321683772016181407872563615532226914156773207838532315930022086087443423914790418327074406617609563391769026458413895713806461503255699221222356750138348965996423870211591014592801826594624924397534017749734767149483283131421833766070073853980990114048185337859828050539362345938920929563383047855375884735189218232926352607405104453888008057089155655906039768446856960563661261885163333419660772756026918481799874464814155775158212861747906237774855985826947154541376810404869588140710923423565504051831132225759109868262401624404229437609367596338515741522664220099851160802653274790705501299499089902444900953437321763440836603078454257576161374718548192214529811060287209966273726095467972589798794798608129849131579620316097923780429300193439760414546993906363988684783159615592972110307885685854849955372253946592810168760062530448068683399523642068820128007559917140244619774334838636541383225891621925164728715973605548829548389569005091265236153428107172486041727049103590865307642005361562243088894615636555669262122130463808571847933070885646869417828052324016518713883829589675745453508774072269408841189824564672221715551647607462891369840052289112214600623438784579796272336991842657413733838771762281508919458504114664984197921318289553730631423348920742968098053199149297340992402890189540499913593753861037497321336246036606887201608148413744487664403597020724625404412957106575267167000090287877355522812859479840394329957464532181688788312254023691696281252437433008701416595292267586356977584267418032762751363596210830102008790997154144871085719565201496746526207070243017563070251901262022931634676102040634614129989292948110831166073063945831048934691578174253026363628087516694497400197491815976581769155013646277112889524953645108381429723880726269126606583176863063453920003414929511966113450464782369794832926778666160821837124450306847466451699444992412533910084200637215533600606421173557544398768642168676131902751069542331392641889007342913761732157648976557739752980929829879541176773901904869312217408936086720110107981900867455438458383386671468873558404491353219322556903816621426947120955959897078028003035251872500120928271185720721039844464404570355499730682531008495783114146154884811943915910590517202825745243128991365145171446637324342701966120000643318535012067054942669641057723754054993827981367197579406633169694241687910735898400451105251411686121203264908325584757502588375435300311215004326164156805589402755446449324187764475758629959949726108058007675617800257872302205213364575158989390890254786394951663710399746241875749974717132002353950312025631787364513086994133797623739979086305237792062113231987842661451864610638797575686255000442374012965445418545238201856103308974739317362054457376539796134222252763936419229399700575212945870155471146581998857819701226829110451422090847563336481890128994855194017704011175948689189691526032350084507219226240646566745071047681296122271792513813735628795592314216796598190808344870244295796742269003559216093066430760491029930621065529872988292637923333868158344412890153805466466411660149649272678915514717769115851252789771224865032930342762183430959656203364978632383484732315547222028055645005895527054798755155310699390982599316574386051673476883414678971021743837095267432701595551631506384150176300804346866798987158638413446564013431993847585377521318041144436275149629913975394554079410341587039880408499009448573344893798193128799867099994536452386576669513289404776651167357740911626174544366847500078803834393731802294050871580117970348088666248264850534289258719028696019143111054423834310153129734019449166982253060975963063225910465860920935657355178464350725396448518390670173109459851491584940837164267290149324948612119767486625033127368530011056336036551262800909467799482062768266592296621093756857199321948945960090953031931211913758018232415241186710570870017477534455508479076222854754228960139657094568437417000377716514070121914234021773228060600762581681360844189059816764147290538519168389893073746510750754515251475480360516557626000946328029460165187149712973420903491676041902562988006397422454207592516565888637435085682388428072866582913792304951700856284295657109163530678237124408133706205869509624058147000431478514802512901257517768491624988010681871856989926563554669646868346665741212150011315669291511129563532340537239755685294728633785120707182618533217658106723285690813731471782614793697029774939902930476357060141625121902894390995262328772858658735392745114442712420387110126098163434306274700310568346584301275674747323668051214949773065655621484475409746597854611863040401725988235707569666909499096514932323630002877239531443228460321789651856159044225942737987850559805877847556364759119808550910805764583235634667601936762205412163063410145222062220450327883335232088785348459578508220428731332292970689432047277890854876193243676966239339011742494616947150736388300638701283552442829983474027886892216561684754894208358499550111361657754714467196948673154697418581537355114626468090340978478214840080565983509930476301894047282326756696978658495336101342716036204324954351886224136133769517164992532370629317037037744096735047584174070921992771463688175523016811010755622418097940145575036892220400643230522424813232003452833241486482089363060117890159700933825508362452784075813023303168581410634198061384847814074503455643986163730499102171802746218280893610143932653053200950676644227870818650852881747300188063864658124768028344257847363561221064429456200028838038236136717977943712052590234477504351596607440626399467764690924802292419026212470616339937349563485376378122687976301014075841539275163462417585641427860390193723079186457101836799400593975637954138053313699593791552354954701642129950505811242351064038562670971632682830115210397821166580378176462426656640435294584389781798235323000395174115153852580639874653326529743407963633614082978323188011403989323563958982523952118529624499648243233547298241066951917073114675075522215866994105942010376496417688296848894192527130254252466199788774587320675024101342116300711746522880211174538690286001155260007919045387183510285000791341933951103493324821837713515681644247442405025003615310874851826952632103039555219349193776288191904344038886272966769354598560038442464269380070396423981131916894481869512812308718903745053839819427243009960953955266821970405484915308524467564827112879469020346402679345797173659913913094124549078900449480000710009643249067859278598753606843210624168613127017298393945593115902687751009789268029379592901652590997926490262660083032701091888988814392157986220720855522169200489662160707792074823757944747804049713132023458655789565507712436776729163495780078684726830970742283343679355758916066037868214909591627184874653564296263142762371560322065408140434073632061739431568960484882549350636696818730279106155679528186114193492208062163751630830033126731209723971542347200695403237158016296269497355608584592060157046958357136614630252617011705614719557065988049821072804056948759929401974796562701184337329936396861160993875457179395621399596159319574709860921300059960771874429223257849938719329818738107421166332741209115149674103320851781773596229880241145013735212195864340457536718614091761267603999207823691898370169777379546050780233170818354307020004013881044179733215183066908319914539579235659748814695684924633460268893909002745900884887342998407799805835890950009758684263683118037188774558743849537523873566215491679375508250593062526800548815261350201630359916163075579935600345604222560668889146945268320883853286258921291075034229084649737244364900028281182521642681107868462768990979618245970122604922535559516494236087438355074107309684029520315280465190466857197004197286344335110686268041438945674902486100654663698721921029295459316646969385901483412835500609511652120322016458118139802491145580994332785952982945782859449119263362590539496102228925749246249815913504623283400831751054545857952340748820557312116920814942042843108009349707548165346078485517652935797476982451876401525287339582254082757371629535723408744662360381936205889740996529278505752940417706667603362261406920363677678768271759355819627626632517586546010961004111877686129449137515014084658773367011393580871045156250404330845551939572482961117789472212918528520437243584826596666709117210814963973887284885256854301210095042527591494723418958823745667064247316765851194279456830105369072624157684576693788184511152477882762938953826516838254674855133593558304203548041097449852801079712494012098525404568329111312538885196639079067345735145629281132671602915969754815755092745485197869458363720845168889432264510398784188154926667772612753136033627964268984178837086406223944416167755675186995293727646026836895641882129642242982396717308957708386987013337079657149437887425937202155719069128428706758538531039979934053037806337181100767440785931277125035738598308287583953065840835161833314806925076594416303178126449764050829639096956221478377932661058949895447433916020197323606470001656599207520681453114264369800293329784335246464364458593558455779770743869999448863092849923587026969840705537162944872950212620612345049679895805085724886865486155774878219028917304830379095362401105080472916628343737022260184994185833291079865270034764867207048095394802521243913035773581395256713459237820962231754988453486401622850429704587693255547650972795835154953880187974044264718469336277058371428971919774904397121292302575172433617555318065740327808317441660383358691540375471198210740276478205455083581376316177800045971790632424272265781640718444761065058966847508414819940046862652486064682205605243114297554332394926381244579628198655998066905125993263562693644169948905756397355624622521283484570709638320502826114090295658662597785565474126478302540277670714194391962142607216604296541091120247224797072608701833196113721541831936939090312403183208163616373936207150983132734260649207782324655591909240594872873600574612844838246692464448886558648907107373245460080194140338916134733045754199966970172872605990656506977620077181821817924075270646097758554434471852654970795632857411587892726056659954080845447474642135420005438323163033962079481592255187543728216830127237749614130746640548933198209929877477630800889718420836675686139574532781162662030930514457276762270863877231981526062329162496191878645106928130530312330602822310904966977722399365968262965576046130433245048500071420762186645532205582440400258783651764648650679041206190226883020650436416183129504469094666335306643103384102950020082459870344521508372028021772869320642809648547889862407122418112428555399055275908758145283823974987250257142074284723837540598146512401346153003462252699302324030936885667586500613804820250020750268783638107292707291574786167405721533215635599931087480221804381457696717229435859992536213073206303311112863530706428361884064697709112228492767688453360004852503695518868880499761068453900941072358706183410238846574372428187873228256282014443770471794104332643275273286424175402334288014864487586179133616940435448636328482120088059227804187231287483880300033901661840016757796325309050374681505588734014831492306948480530977810244558573442273138857811468118171462378643275625476558723292239850945226702775129962742577707747021608613760332432662371600345974524902577840402251123390108340487886416016391912927447221124190187935580983529025093030725653913268394490435929438897387125996255474794781623377410870727858647936855854765817527626802893538558226026480932025920712200711564714661997507029030622729944485236492520593986046994303661797979913108646025319801201487573788795120435144343531836158899396246388466684568025118192065075201296780061321679890653287963550176953579028244956052301403216907308174146331412694430692478209137696982154451122116221568864662311882353493730846565840525167569327847434828890197675006497798723014156012079359223450703212558612682510189801923716949626692311427028558261087945478859873448166188421612993402287162459694550419675741122153867277174318985308848100574216495396218335383524373410669301979906035568182572898305773192496926494062710529940131993408568157279302800588854798302147902522235158278482249320183815122805277205067473290167332351800696725744198851774378220797534692459495095221580575297624363760639661759825691138846019361670405066053309652709773614112366839169084780943752670932436583763972583101581190923717321240363228853675502297007301484884586952892335872952820432822591928525327654121289117423750193888284157556645466062027167602214004033201248660371352593295943851681842108019956584579940909292043516377918000755597920984857241038029112138531139453424913406648629163231206792102469575140657075073878101502327111264325600416437378811680950669198003459861424076036917575370998466823186492126470116476168471629248742524201757892802763758230096081151499961286140412372828776226402212203985343796348337311098482030046856068152912285651456909578743586350452809159242967753898624154865696457001075076069558135364932301632340327843051438777119020341043932701566042883835931679925947716580981224777209316661729667369355715528030395163635444898076699477061624563336646965013218971889548616047077220197443506105115571281465942308481735108157965006832020383377083954832700987487701611855166547188157977687403559003761491219666473959950159767869681402183585720949332863086970778110761647880077124241441579393819500281031685091732871599712824620208876745393833980277528974073823766345076070062005077980715314895296090121601439579410687639625491879414789221481678813768100806229478773103317238903740079997584695732759875634950173905490524571875132159854119040433343646331437474208428696053923366131034556459960068899321812928723220873329274567521385237160834863344740934194077663299222494566541809799904707400746473816862808263130493509103125172661717098706813479926767318610388702932819894106101053763880410520478916797358483882785080465055986770681891656891025721760586593142363503757731494108879084807109356745333239520061527484438794594740208241962172989777416151543794838221683905414514485037985518456205527439566791025211456495736982958909250136751694439808113614006697173268844143767035867214394059105995244334903558099846798976523014847872413007663822652211902770791693713249716515830444330257222296094805755680392595355354623338594856696166390770250204525374367222674694042583428609259970268065030630982180638157721447738872103253744165148303033326256090053131328545757369527923519661585766308120497015703410488738563665098150322804511200051312523368092657872947939559325243564032730353847153007560873987808341296738933006041217268304115055074230284754447060120824238218245418581343417918113090144146892344895561945360065746418379836601852767131541723061686242417591406358790289961869672991246453196888755300765462555154197719818486533604672589381378187524245913403968643979457166108145311482819729345749110303685328840901689208448030718644556077016643559048959590191871006203740666504337978726200604339205530157363121004144801888395052372049797458507821703647229991845353080914736719167627280659514242578074713956076046739991394012228310070504797805923236521356894683935829758589722983655955903751370396493639233763845800874961134818559340470181861776369171370331046823817886299296383661191070519285329706298636200091467145183538755961330754012425760848857676580712566509019001433721174246386672651678499941143179784163708729991843151079881221383094266597990925885648830940433023885127778224342537859391808684894104962961108739547199257091813361632236434032358525469912029401679929291062119013003801117038360784429962476331752233690259094643229787037372866691491874220757713917940777953787661680284945284588861344424453382568889124762636027796392621036830845081257469889980219703997195824923443261236921821866992564986604487015810775514818599994106842875801384907193354944053668384921846292974176109604287957957286659796128327524842198898322007491972807077092295867802883024584622385572075850579687236993073595250620144606317143189338702768465663686772212821275867675271500309381578486968268878679806598955233284773352042165410865763798610822698471205339048527203881876357773715661612776179494188090422648300355488551030849175166428500620934032285770842495636371415059466643167930346707780223570354862880448183173372091815175345328359171058843797919246265201270227007990259720050521820058640245976739904769276998277326501579309144430104522271190016517735539095297134733075711831488938747650657089063175211752415744368098000112383880744222335003143386298230405756173151386390266712395587208122664176565578916917362297309082497956056274195032722020405368296238270247077723838304819953349185951999985171952981809778813142253737535399368499149127447270430265071583777860044679602364984423946001059973930141060081615752835950043281093391519497477747883436145477394839486594240524348779685274773546898616353717697940014748692950088109422997715893528275918091001263173456333532242086533246028400930830755531684047268410742312572674131092786652898621061123527623429906641177984682442530849585620001824211386829014779011651010595572114862162663541607874137275969486864706331452929784104564726415111743800403265102727735687768863250705672792309507160849547024704839935736846766215004485190188934103187133640308663160359615609321697651349445251067393013776140969619967593886989682946498058190585845748611671678054196307798751308556885805658838890383191573402888249890550925183026771313218170722922257536400934307296051601897622574884944362102968055919769610017088571387766117554794502772850431311392972157372980342220751754549247221815750209659216477357151022268972207501480513660591018496646951661724838460142735546805039965569999702254637543388556835072760711801183612350761151945957858142490109002625252789394844616851159798988042947517633602254225429404002949480259796699069363329903608790229327343784967658403060325680803338913830347910148614710067243091438447551896374801255829128590133523971906648954729850187509293510886443723611902440100724002530867852712684948098450291730039562269344129926134161011182204617986575042314641699978798390507734937194273188361856018412780456482921928014687040626872011881217561139415790861644389941922755681718121751773458993048778295898254283268136666082562991367323047401567002405766560445743800304560101887566530084392618609245007836056245839401393878992754817377156471966450831427406439065153514795949826313869744482413649595900703756281819998401227064251141630413771269417050790106744363776505529673929491025586907675576500721129354619441244453077655843542919034883706810056885336263591713350422135817352981945786431991415489528608735196460159438962948845925306212249023623035929171655329406230056325337145279255559506472047867658140533416061049536105733659626454705218363983129572968109459927254812070056394198197439280553355654103799922111425409886315221547377929218901926888020642887508803573376688657879257725985136265352897100386899886209396328106706801831695569543154292607843651869934352673894370644514355360932689491055761126782208643980677865384158802412168212291025805503648549883795554383513915203867027843333404192575813016232568192768038087066801888505453575883451766763003704334475051792742989275704590723610833537673388724028901699617571381779335478849172976752323061431375031113675080637175298663172153341400179726544784020424308466998511081200861098011289040737828819410124267625797909276831428122831011436065487995797316825540298131315026435254728220256136893278263944013852031078594831111599471133722065786997074774065811049413651826591802635719780943891141142110074139707801667334081638247451015165590408542564681061741391214365900178009445496962757657185210531035053224469130644390805536551480193318141530425020172649777968226237210236803006542307515704632638063072806623522101552140233096751571237277261419133631827365746350160849724975569201333060012446855797820575351681221354974531850209589608282514115207773761219893645133716724987270593619666661237453903235434648927450051878091289860039485158700894662446376892086988315186924308563625753551605108653290289108376537978045946989646657970773246328436957533536952397627164847912473240720935677516065973460111430084724081255312217788954745312712361251205703205364275161305355492120434127918305007353230156843024644023110846064585471015975601926112508359350576492950726777474231550344407047762209526591834908290485915166998282587326865726069960366577827211774389938591464380981806509045629386810536165935605963600985985928872606662484756300614086161171206241154457539283852759637545085980464235922184472306078068055902452440960416630903348802959473967881484054624749456184779236689812232821253768243936589045764394982818184482480904676754548178352253990463133668542519066504986525588003866906541511034407715132894238647552189698542010263635397066680273553072824112328254274653882785343152429998239385724044677274311628877270518356316043189370258204383781471864302222414418480165336471126829841638966820452398034415987858162803256838311704969226168302672418913608614094848727653411741588519219247595012570826096900263628905423111233433172318232272801619081385396248668831224142602405484711349196044097504552253087503457168330253331420630840266684402001177555422833226189428182075496423873515153651920359972967096269504630286227789804891522658928809444427147697748476327437278567516435155843109358026763773302971386410179948682730521589872654394098957746732565256610271576732771604158804620250711751311518169047761113963727492938217010081479113454609922652612712042555882942119173436377369400425239738381050584967018793327251451114115432001252330508170424679541275138215782756126142844277212765941493550449897783071917181141568923393350386702609477197876823840865694370673096652560641399967711236410828673419894354553533825001113828394519233814043651828340317015499847837411825516077178727706477533462772382742924695992114402572177298344400821165490747125221411450027007704198996688696872727776502444066570389360855593673915993855059251498856298875461461415475660371017254100738595566550209422365965177501382044521771513963289908849843474027687043733670239236771629365492033759184436166304085190221205097725227285408499011702069670156803202345106573045909112732720277388032480873515154814606958159332303009447470958160681654538837669772678243664564601618444404736466598783009761138918742952989080491347933987900589259023871958967320314918706282654872404718016249771145821792182309457098598658183479128595521614712863860466412993984892898932018499736593887756684282741342902879659395174558586762065437890662025221611622989775001518941085646698757333655822899514246009960227874952415790392814366473784901913652944305471202991513904505193025111834411619388906041488790139485857691186166252451314178527402408441220407870401277604714982000791019363822580865220210551035693002360670400845252092106317617520910227461433324362491905470771818013262330705280345334501349084221482049061567310394875595128998606922431117548841488975009672302186958363439019674317799636968351654585966846913009416993323913782319594743129108393493952602434423188948086851279301634328873004549278317446007974334604858076834283920954305572767837263651531549946800166335184395895376698454951051810492355065488798395613978061170027910212552883572385362056236618975236558056337849557175752958463177817588588245230172112988826184417080645178165477025077173393267011485164996635788800808967143311212775033965562359437373494875752166897136897194424905402229231260400710613326496375374455877089919655796107318037274950770614078353730098869904918619569138430622830351806879355169448228645086239754457982185579142148670316328326044389120235593053641377418690328356742863839010199275250340881816536345617353450944133782771572288255974847796359803944034061034268120926672179596892719842314641436902690102248150493484283455034580912219487214127259493065264932360940054711468818045211760833358015918995371477963151083068623392252785796603135040191092967339447600642682105680422529958870087194385462700102368460069545404767421301298662032968006318762176381496406719619380279339192625789466016404012476926238721004703372323604463998294529310301999871169657908386468258349335983887197052840992059274726791496502285936978441503219595124472528943287233355729821614212746383767394779798779993176946940059824472954684493613484143716269047115134207121849837433536577146368853507670285780828798181379455226854217637424032730646749831809638576852038341904194827114941460128442381777836641734694120169286478505627109350655086693783030575346574108370978746189707710695214938931763476574047049828094126790433528053863585924116364752787261217397941393547425968086547510261216433478228405704213817917332239764297693485630360821425947153046220453177461142152238637255458095777613759501902584535878238921737808974093958244948712507146797770740179245518180577681630696156411571316397554158333666235165722610271436423349061930047714499925138176214173288554882188045312879024231840050193996522655619408652000134435886384859248288913610203880490992670138728988300606595600237175167038767378197717231151777258220439884491113615779446303062110461996990906031516535236729312924242419033832056121618764579748148325382242477260200090782423706851084248141842740829991843864113611789195691877897928212620908583899379491570674931072172781417147329320339041772974217368898395623540906017594279987050772964747927182544827622234521885652341168265132564259581002740431087874427146139724029143202536221803611494208461244942570450203427241313628945968955637746209762537923812424365209170842780927290766896077881488220396023788983940681137457589579850405757180982105135760364262198207102011241621931108126356127089860276572674709987659681486087800838666731074159207419255999944215233989660334576995156975549404211374224501273848870983394597865373097075735731882329205324833000087120347602255390810035427716136682010406543460479284202380333398191240519882406252047241803348914918358251416973289607274453869341737414762408427572890152099307655990740566426069600327724279160181641752481583234021798314067211342085306097004099968295337633063106287891980104868551743749743025223385878809010801596493454815896311083284156209723215969440468487584771045538818564388220027444485659013265764093969333524038035253310553363935965908005805477704193084985779774006392470925087505997167459275328653579182200599022743669682546911805992689009455973013838017285249434754194270636860967577193125489032871182170696795767931704941586541595058851168065521706623388937911748612468737026429466079516951484145511941800448492470597524432051454955112744983458718870900668165341088666199699310403617893822404088835265973431709488118576679730021949342154402803142969490460416793185184042227779128216878200839865416642653543596072205468578044493322072308582774297109032742189389705883118854815623377653949189676418438954606390753252722040353272808388891978813656833877244142946665980820409138798755659482752051641841280483021491454175207194355930905285995207477023061415397279133825636036484335221242326040541645864949682028675106526200219707048473038725193662532403237027054727195065465958526738874824354564626191495389145813707815664382282086142249865269629998185651091153496815263715206108626298193618651298835889570349252898712352139583814050110142928338861379830076736116221030689456475615435624349827591810186872469435545855675096253535710549469370579941454101812508769479822900189301658308695043271946257135102204323974060681675304727089374102163190114618244465367824613109645879323831447503149438526137773529896142211817727385195714221138480165667632292578453603130704256594782578704983865469624972866030500776741041352731457437357563941923691564072393639328256289223474587009902461002851287971830170688186672194196627345165620235394750059092316359586859371090000347263833655100684354031137867542444929634216327551987722535721553337409246931326158524182535031676299980133044177123305732004406126041628618945987496159399930335747153157325803490558678354963620988246526995876812133624431926807274038385000300308544797514666949882674536691640291480070122865853535071459264486919919365666253597257647768746870704654739885313292216269584127462599888924069040697287953228632433254005208103935790295328451267546516669789002961304692820959180378143246754788004994263247605232052860239966741479557951213316892996495593700910964630833828746651124565642614858663594345372980812787049483943966317730267331368939299340137747677778021502156981100852529706096807410582900634599519426398317093289460231372757482910383116926991585614935192714403744966998277154436986747784470969795575165954550023923060832861801367595866149261092513687057040590312221814695321590689146676148710481969739609221864221981932895680393289814102998929210521350460650513407482408249892358201155094977021713318276552465110198679694206375134315273069027435091379355482115692728628387037808628830998259788668192954329447842983165497258976572831549496147571387650291083983265922012224635311131685903349638481807415880501325671802174896185629422672110969167688088512860563995319367128432062754753788974546177006588633033648618774774506456789639344704332178484196323573832138219645007944447761866331180502321473585334272718377953015695915139877282040635900268491607498933517563628447708954284222626163686100955030773938997067263472303246335128653885439735541952192562414284456408032383884902204501414612569623778157626859946711659643669385494632519700111815201976020997594280682305113207258774702287683291171649137772733722192021558440361752566812519637376703088106417482545348845032770312276869277870423740108743271620416996228708202386798382610942889473523302668748610784922304693078350963373963192619885150258031114804464207419524210104216468440545015360887102773542942984541325167956421929946906982015244713346276687172077005809992257722304766349597736570178877776133270071521747029940050721235200190967388261788700387217494310597228309549522228065860016266201021405540715664255454405849463167825366790647767036156031892236872254903577685966917495576896121152446783323190665688836227552677028011430943193855600532527679148988499827710747164486816761279022898881370386430375119083327123477793905954749103889361985439742226366814107254855990938498478722855287256438649338878582610896076033619767049040127561522655669675874076679299553123446252284837421708227059841831008116726168291561502981824432221230588205009474185944043024573227822405846592486197686416474730652273472334480220586083627769467814294375874064313522562804744248148614435424062485965368742370674181423814213138259114706982311019190982457055382865304148657514503872695343059603448985617278696759813369503333576115123723133600901920705089295763027096969527320859967871131471059048575322164574041650255837909984338487244637067583320677202141188981552046221180512820917044914537416849881298285758227741695441785827596557415050646281806290861726032093590664080270697559603264066591286977741731286789767948468095401663659670965516156647340761368022725837870924829321394942604936570952318230079037847274292922374938434806199647596282753205064011959078115591649621105978700280065648670413651851669157849964626385502151104200883225532428103715259682010964693331177729941829290430741383104884547560323468710415086375100682640118676701309232059647629506403298123972021076785209708851749730425920351797342537261383284596464610465297802950705502528394996260058878721558782309064079111018219282643045896064589638589453805124338836079223190664570189360127047973338483844830264500683743305823050301885665469348653065396165928274163525505099981772250354337051886674928235353677265459474075023878623109748122208983588762052393983507302703806043099418614547972130346037509992248388224640500729553128296434792057230308058953493796894166720865251868044012180477463551944013674285824891422616783436837974155690530822360114002058613258267283178767248261500834325152160531797227662335438874333215735574993579214260342831212546720226577209241514838857287438846497620181793175869168168365184717881108232891843652011613228164015312179344552695298383110171419593451479716411829156004040203999527225147498048493075909680579272546809961589323679946555587818935032858260650415449203456634001941910431921085585357237884625513575098539741776608930941803238507851691908733899715784669437336291886409541746072516480185516580760110209843968622051384860049802493836843984197347487964123471619374453701139143947058978057082980135795861041713559977407458534773215386027097618769051247291465919315793055897891763755538581547925874762612889246177694245372332309252290272140403477593751452939988074462504830814493097027530585518741855017158030261527781371273417655688940658350479951149828437168195755534223692329188681503277377402602686244967962372616108504033559141175319788659970852187123420857905589055252657963553598747274233890975300905814166062198007250479759111588877932912412683709743114341624112422765687106388378879466917734420715191568351978047696704478688729879863830610975337268973937228361889075885582907936951690940009242167088002654346747937340606041745053332970401419944721351737464553637490688777050748966201858629593473108086467621441696528871543073241942313231221197810872583063650307617050094261419121136166197011387905740815504590753968796244042202286415055359653856581081967935800729239302725148861946951514924596442277966390157401707412072095299748152645519658803304044701839780297781512633555037583828275951032454003172588675231623217643828165331967917292491590975236754992543060145469445823765055020866510943446085632013369972847224892826793373424383963748161805475961260282422715236619738946295245579091594482079477179165236240999028986213252270529567858427281754507265613793226643994993657807590311484109155081902076255315790449006369806348343434813655739355897542879909683393645843453776057241720932835267179556638150246148773003689203732892333052365426770096004588886347731794200247303062036497351376000171669699243377432712858991551892071177939278262588534369872219559802743768301940209393703383005265503465046745740021918423766642615480636891014068605294948130617059323381634970371296043363358727706944911983098110079038836190046070787872967837077493979768252279772071030085263755328674612496268390761064689941687522175789691623160203148985435421344058689819086093306318701345207077765359980795292537153047514448697883285328205132835380002869816855089667815380484905035688754433862031724348991299048978425932762008861051741282712689578243984795703661660158202711644150284860255311111767415383640822956483879898555841418987948828189064944756785175286677613454044058047401407283167120279542926518375879667374159684171814435173237385845466725120335454536707801563517437510653387840969888161479893487932553354615171018060970594641947258889041000741512383507012433986876119340913492547828547132913503077265969404716362584837234487979627185807746249566783580344890137710786250234088414032570725685715293452008300678661985519322174893476743760863305502230192203522185445574814751544821446583840544326070682076230022752018763647054491028951979449291524467080701228591362499656627893528937564012421923382853072370174552917573949203991410117947148975516427779154454252177904247597080367184084501542272296503229917686808164689155605455607433859177294986505514996766894710725244177869209579320312778286714209847499140748760478748796214532660488870030309501330373590762166825075132689168736969502083483138434406225211456472902194163892132604993633438514239551265044416097786968322376454323624517042621048600714375296994765113836217851812842027332514051246898495756675967673738798144520545990411161672576774055960761837454186941594166677638746587080717607260551011874208756414606582498237661038018332621376755972981545495732874887748586477944956922843152669340731068384771632160142166225607104827494903451398328979263954014345032799986409214121243213099191416481917449249837923612440776501140342932145682361265844066146118464220830141857865898615923729918881576291386190524618989837181286885330299017650611494431761834425200647096199848039546125475938258447591947004302095489964022825753006748879895016525862728057269533857421538240929423828131436762611479725324635895850753451286944049631771828136720952198914920345617092423712909635460477600346934841236827487282782404825251746971388627754564531896272903807446344556783602777314885671012274929418873124357299783360463446735243002702482804774374553060178425800811327395916521058199322602498275402219622342581866418224175463101226904862386364678152969086963409839061197209908686533839513587770674898084973086899650325411863990282857035584793714157911679329726532466485674460066857910854164559161550075383065346067159735083970158776380428500419741534192211770081568769676366656868711292002835439724197941011317223394018867506915573044835897830017217357878071670700565055019629314895552033547095198476799272692246258640585943655434357412720865727472687145397698236985408269400679213680458278870381038789122630197174575145874152841521937476451385001917920535817021257796281910089191117530282442800936417192767441155192049243581849575849473187790291761267679626426343614899306558248273756935804371054852899100349314095738726757720723324358226033332011288550489791428200782348400303278261565059523228135482295510252499920264877557902148056154701200880105735367235300658834077652650906167742616746993113575162426361893461591881294930752623878686744597521863605091992041865106437052330141472301404258271511265767164217875743945551593847116529518530027248822925850191370172800806438227914038147999403368653764138278116060300732378050192676037953799562087978603584706904209224016006061258372054107344679451910748621204189633979560767572708503433362553225264557724004789916913794356399351763600519208693753425365953938600558642675676031459272085378655711703910337871809816594762734371919751063850526584167123235829480679184616048271636734299470738252436046523872810342982619056838389216571880717416701460427872193267387386237989299179738006603851029844975038911353770611313949246712874853149741597252204378520967630632173771123899277337983343335246049058583852340504495420509861147982033651625556464765861640561316852082203294095588366956854100241715870040861523927518338486836464824202058218097730931365996110554909123394444832819161499502672483643496209502003599491726934329928010990131164366865263233938756139547519136261626353822474289442521521402104973957321138187632881118937357196763181324045757662647004102060816332308499611532089911171582436825990026942129466678986121451637418659750163029643527548691631294382267816606999001188735424077733129308011248280871946540903811076485592170218381593564341443411035925225324298462319746008062769680966752027363974979140005047954241198442841355106487990555330980813200674656459663509723821742271776792006054134578040945083178090171486613173514759807791176316742002313575494555919671092326654612140848994648666960834610855101843262392485325588213386716167333411199882159282541673956762373492890192475748824233445998432168256463956489671286252327659334028780230344900485586445210690259124683220549151920713703134171614617906359294918648764682932973320169238722737887103608106830977506311813684421394176176928576459162009493081329049795703465921042685679247282061368306875362025715314981829989255722229402797150040934127384064331802264259026833741887574764742449507343404003678993749362760741418473101524148648736488084643438196186298720390053412828731050407768506276001358026565790373717147881305487034376149580181118677384356336267509758652145525254966596060504910274671602130351292972294006154638857314196582862081723925147266927932640900627411465034465741828273670499375548345936027430354105280501469422578074404325665583601526305976562917321684737984085986217133501465454940628936500227436423556072239514910761075463950038462964933667594737901007733672179148186734831383555861604058367581484152099398643105795282975661608307532148112282169862846683378443517943144432755318011492796061355813449614798948855664032289982073524563261540315147851115916862761847389458506236502570307375484112483262528595390784282096996053609550708161969494657544750286757710317826163558751483192526640402880417037011422329873142997988486430842262504206204812815815784603593068924418806818286216902116902227746185436850114525193230936562087017581685652115022701730597379587508826481324918251654267897605365809688359794193834000093004450671758018262251164929673738231110159131557935127199059337700616926756040224777369797697469038276833243349930850294396275554677870675343665118469761365090433647992898193780066565697016867039212660802290175937034307787114973595522360878027631216736195671800236148681335312372289829567141632088953356462236317366698490067113044121100584512364286150530983251817256939348043079846519413947755314346761009847314230842729928693015630244381852249536141262239071996835246678564429530966271930140191087800558840745760639445412409229789106870636006205472494696370629203933353586461901099939831600080292853118330099172304636983358869213704646592891299898366730746515121085361117011055309651627800915659365641365119397060855781024089429446363343369761543114402696562173293672996720465816372928522191076737109967329609186383282617662795795510258855836700114289440788810706806293251041976457403841780250593123654745425977073985651263825238300116730753445290920796484106010975465202276345149884424506391938950190955919171853973420098737137117705764769052520975795764911263995221055766029417238454401561746657456791113900521471333751945433737689770862141296373731886057215065236600994041516135324874543718490694879073579979336870851818516977604429057044980566611386388753387849521113978783064399763170411813766855899815344462554345669172459317995436325773717671077287181509477452604651948561801562776002180189963433536085561024718753429247202211228851072877942036734909133001413796794119312366222498963287593819202162930037622192475552093687314611151357878129766077029487686926055853908895669792786682465919826556881322782591948353897788214403617226494195269121702340587841371208794123428242302435329268104316234533576956588183924770382060836638284571146665343441290051037130677373720539248587688698999630352212563966998644393098673397838128221642034156219738223173672150283160792631797301908149577595648847259317921332141320733918513427830131998192560761206714336775033456035748784238579725489908224174001069601132643880101528438557344046093057914585811514004181676083450727268927059851806536103133760952791002409341455561357659128696028141217010198917386835013157323273536474637404737260899000234602410044716975874949933623814651016008108472586065442741955916986677401627771205550583655315465993292957277085229417794674501017434979264348636671096526896214223572874194316009299998374915984623071183707107148299030692321052261524604885736490242084422274391096441488697535563069403554898836222641166483961598492367923969136445591538122742733575247233438518681814798952683540410375387654064794559533164421487773080132043119582905638312871034579234434228386433542400794992898063685207972436407166678390193110093480353808184151147823770346547725221177297983158401837921585904006325496919455487129683215745882268271744857731827667731743458502754686877843380429192588306139125037166927876412360951465639135436637286353516943906640827836958712904444050481312872066476184716621131707987525606122353592184906196082911918040777845278381459694772434867008556060344916709824383694411517236272759066221081213861411998293135573946117390059778966580632727384455463834163089907691721887126528283734447529840504031884719870280501937301281737812583338591253774545300756603133580709488073979713315632748662840176924500509521279028443888344680683506133594102176045176029985693863435227002347376580474412843535306347631126471670076770385543694772840040100188089826165124851814093035086504696149697178774554532856480686483485213010304506978733102798158269065354215356451742229801549794450331591525695876637494351723588416571985638780356509462670958932837373406110866438799017800201538725053876842784839355183957526082305183879050285516561247831928436598186829846592015528561576348625282256763055298059914074105012662492330990560454032729266998453515517530984860534620206541977627009738326603583370064832151796875201428111081395466429265420805213919997159774897702428656663669383607210941285756080779302372036176557926487467490105568047736011218695366595795434131879840496706061187363164309981392804429618981884498829709186299552108150978110602267668583806570859529992071035093058667009595590669249967982803538573263975359195645808718105043779830554385890741410252081886391610052947841268706718653982956621017408185634457814615778229716942634101982964689469914458793772212642119930018561850667614057424711179263534671556100422792674128190484079112475878376669466401754914855271471332748251642275199210421875301765146390269325746275256060934893949131744835468566053242143535712821361234035817987881559827058251844654971349697115997060144779998418212379962894289586539352448854808220710822321654145915084462118390289730823997313914489164790954357128646991785565681671912411101194699335696633087950687554798861209817180922788175702320216459749730108176429370283833273481578708066221053591897355245370542860540542673243007163711965392615552141068333012039690342754044413404542589098595911370209464937880608161812568338157757203239362475592213186513692038711465763185408065213162557742332104786375171875205318008218200214863971404360291219427717567490713572854576299691108029779686896882430623723541664041314992297127761340099959752822059588361063897659261122498605155955054520940054488450180358391958437244617373786281337135638958688638115890661192570674171245372230400329750205488516959782968479229829849134400519936509637774441581280984413758011397159305540601221683656284218883264797511966389431611296198240276537712179413808703956586915029269154439231724083480991257418064473783482434956811029002457602748516305823514074478737171351168757513816152259517906347752577572379937816942757023462588530352685566549741439395400515013362894241036343437509675453376652037597347735658696756127825944312068151561872946252502358021637544018092799551600448608807319358371201972415113000855159162692263953356882776221926316148717136028212190428201455569471319557391752967167391338198112838105623113312397933664656918325324190810405793763883649576712156790580312303655154485433850226879021785477374206115381161115270643901819932399748412277742461272033132386564933829453928268628042077878012033717614360699979820068755284820433791042799134446493539052491475319980843065006162427851161928502918340375820246071996272133352360927583611830550873765647144061997202939360496035922334666418063797691103131487218186349996792580615377817357161789598620872727789886728504436033057471380047444121574080940234512765315088269967604968139761932968716286692031037860783392359443945858105204501207209292384119992198475091850356280706465532260129786907016309958804880472816864483861919003506893024059103516211124576562086299484938967664308843659202711022458077104497689481254116032742443514025683393974145040597320035897341643869573912760658143868647782234686008838467414956957979060913370427852147467687657248305715960838200820613051793507252099023935293219478025701457251883250461461331161630567647368225771907416871571512312998589355422297147051592465962343690971235789563610357702190259793601720616534499662557469280180081048228967123955809641697236057377831165853576000375121150509926398559906857850973027696981033591682054866956863007106289582115919775937395453630208514282977338541629590471409670917626891017972934425988550035334446218920744388870044876081570896131572892280760116901950782048719089061981709612719331998840871351405130146729082360528367779473021724645354874702139286067992008234743540420152206228591784791211717868257415680378792586199013200211877756855265024695826118952293319812382386393730839902702087623812547249373216590606705698987377322748572166968402221553839610621892256494150012030379997348653071175548339244390995126281532076514047036249724089397927872132035326615457303584303516486226918265496369433435034311702237991072364437211165019042890553521399719599305277288738287685624030862192538617994886962694914223365289399926656609998045156504365080064108091166791163780391036662547192482843113753262548173879347781287756127100392229226775273022854131206242791402486833400825760472749985000044613125566651855289307052673608856449530856211101915124241703350795469234731870853780190996634770614934718227279220438569163685063345841357603775185239950421122209735388970297116058890956042290699183888148525500318412099793888576853058575254422853915008824381068278443996115875703439139309558886723874347397381332430013438797948014774232132312324002230450083879277176948614467855244633054917818028079917871445363867796451140543687233697165371279256330325825628521305095796073888125076981990646164749555095403494603593210283259588750015826608744115374810115620916662542307993470913544732093455793267815725359980927223580818524421707191258656531250127846889161930127563246856768208335732404561996619922976555653030388217623252252227088629737751762601901716773833827906214321583424384917022535643386398010362979634748723826924991756230706667493219679615088934134578027428564414161792071129727286152150163740438121759208169237779651701688749779488767018694724884356257577059669722456192805168517785587832317867600219791218456996004678453943606606991332928399584606764862091191211879316759858663015826374711761109211364192009604009859528616161714516034006445038982525670094443689453907714160649776332703525642714329511675737431054179672387749282309676898771063173095309916141202405392805379371055359611927873229218373093060022428368438121276934703252146543381021713008155084712196554345683217208027267422570625027328940009878530152614548453201679037121335727583785122726436848403894703779091573584038459687721386039893706172277496484645571925757290539354421457545923699441726366618403137730490407648317994460975402386212305156957556500164448260148323794830340511425288736680492773843774392371138061534118496819592220962846056718913461880565737693779991836957326340447735617106294147112435808859161704022441346205813063250531721825343277674521304073396597739375948838357609759698376420458006643460506579093518176793277702112217153678499248256661877597731904758754942968624169058324994550399460518911388238150849976140240428332841550771397841976520558762499478113265936199733497994147909923930297840468865067672153068461251916006285866677334036625145354121193792164765887234026435669746721165974183324767699428190224241858078104103672218804478932319316956252184164308687773092971449140345851154283697534080823016232401591411804379956880866916541319046116274954246226848771721803706936396007569506659603220551681313065280720133317270346577457550569597299781958322112206210453736030113923461580430135440974404535032188737205132192886919269273185145248072776736771357657830636389629347998660237451814822658965410398160302164307507674375041271403727235994490650199708396213380382222008011311669193319478163870353540247860693095496495836178014798314558992162271508068544477968077629601285384961330433050129427025569284061617750337589136486957798382295715652428342317069851904446825414156054761021209692272747793119883856333329755476022323507003672774061639033022131272251398145518913197067363972524953090549459623104385466870132461913513076303141185533531041804252157042084294308073024213837516591317923748518688889655500302505788301661934783063723054389228691905079194943521523784769123115497767353886543079915337308181448288194110331879154035672007759585187125882503280187263498575755330895061240339883133341387965483981337359628497402994508821867320743000037796385067024368323758844214671149628894514017100428736406019126378856119913997315425450859622066427725582938380729896926508009126687851660333353975909296223638089600832982984044866647180248624885863778549372589439210028148086713395323353645257889096971088334105274715528811959626327145036784379974296126050632252790708571563782387559550255753864979788085642430222749051717669212849438749557019554213551994542230382374280678276254403910084556295007047094470668471881459275161391157376179017557370390429568174743243550338500505223196970854595529117939882080991879253413889708970194314444157930544321195601555061416906713515842482580747743104642789355956024561785951516283319203815514485198846052304126671856621037703030041526074113625798581728491139500140446089437021470359084759007859972742901628591933398734062697832441188149259991503484808646275260653587755908395140675137026380001969779532237745167999898723257856982195238064048443707412835369343382645836582579296931142471773093110349431364596226995044199028916953705326504841318967715105039103692486444615849779626908462602985159381484566894029375056211240522625562502941345269599203865578528873410155042341617911599511428553764716041351882495892619184984299039131446558007248888186331289592974311767788915354894498868902545143328429928657933834746731249235514317284837969529094174801800318917769782576659635053572490769910354981400506957134268481451423059710660394881448203258530466705955952237490943464814571370602840912966895890236799852874877272446697553802467342273391921399047264655875012130761882310455874198509517561070977865557329881584386029426348612353389240155280336374295911580520087591279803503028448146187503720329748743186234313759490090184609944909320572953503760542952941700128824469909129930307176943737395222110550597046455950888569139346876303809389927052771743681886245163230429733874429039028579729560425825404225880452134045061060471878692247574844339489852885586926957093596144032222505762154804727737987053486140324044345246727247160270002720467205526942015877027030303261837064459265465845711908759484360416002595439447640773052601861697446551810295315668866343258744990303544879198462734212462798967713441670383955242046404840671422311282153407118043142214700979798857012688948930171378071385947369113440133691646196641076222177885884746608249409468524719925587603376357335058236078719497930539478988009545285563549622043662457091761233715447852282218270603436016636929390802040582008769833649042397677432072758189786386788235986538136476361342764895021517174269766058312913106437128375823871731383592954112310816841101089139434839649899511502158124447726716269830842017590454970426220356967693562725439446397469201586370053078435056468601945439299349545049027207545639237628694458968298674272387476181031674038682956845221390510773170479024206395102350089547517119503712362460549884224774542351392551111379041936486640416926159178991823764803553868739319808700547765120119266533831215168323352635707774821248159202570038941961824102063224750801442670055875844520858379992242587782775064812046486996888598379626970858877999257164511891768145209258275260022888655415388470071039603140363014336768260173316474667853909828979288521237030229517785294994385406201811348855751873100292023046014691902722996123722871009669992866620014244473393664028895717994204873890486541585567409610648753994215311822224482026450134941754943457306604637210679708564123559149200735501323721994216944672479348150868828812030616932796668476109698666624693857367540286974109036455822443597835340644195289063258772105108515865871681761690396862349618016136070658755360508396948732194230140881520256787630980944584628320192396576883692302485788138285156057858745131581449023510577712543777316275970100520397558354519162682894507158159997703839060265704987259747797060399680879720648193123646423692988868768710231169746225468619146582702040530743503232873997711496427570370086740167884911485328425884406714621575588876034578606545904981568878070416029655862575255976422929642558758128517248958868673137564954258811064861622354010480353291042156836497136931134436666562562559025426997857169396892747218861809008216285054093254403465599595260712757916125109943806747714301788753374650407235771186885271407213064438976812142114958549704208195004146671426353046050379172978353558535105632832629540852956520647179041939495256499091103014623944123307392208751854288551535238054357147340420746536089720789158233809142622972658789213258569258066455736072844511414486557973613996156401614472577420838453738608851156340196702659092815462139772143980508890285108214882791939490112684449955146816681777055955798815657850582283496428678275085832620304708204853418910214525508535414860511143889688355690738237484590351077262353623886459051057769925961876984137812017264455058137109597950449979967888816325525713560552362520027340733192124909617660670216148521668802653655124496937793750951468804025290133984547299120126970397604397891531236897482748735421139695582680038234735634250039266688486243556704637045960347791848235118381638354219641377153924289567852035043865224585524329252400194183876700169091516602881957326729458376692600530246459162582151083584644867884612148307689073843051228539121796828709587679242831260109824003067645776510935774485730712213746893160309279469707334637865877470581823815846874905949028549892568731101445607643972537698397819181539611726763788295870381174207760417859471457095934404066875326020187418975341346117610511077888110705452684453373123933191636673606589553721282212562720362263730716652840974427809765059264640462285443834811002605113829831533544063730784479051758403909215057181754630450604907831763865953225209935141246202204759509152079377274059004200849709398767458817235934096807880030205516406714212758326705404201346832195832400735699835891828340204095333726598471955923391945550223139071625899108333623932388147962894608856408205315260013818266278138122601158590610257358562869170218563288815364994896360193149643392082931267814872977446780343785089657398089196578055899010180024113004391212096600689353650123333949008065093075291247040170611443284782802889618418490946468043216761714110708593971053732401500752282684234984896316439004483561482287296717984488314784913995862413598093880675898473654747474124297465762324548598337852422408446700414233606884937093072707212180658283006470477225010745473036070554704213394709690228810304514440187275947711661244456939641402620391738308279013730270688331057696523327724275906087564825467378148844748882656583805888612157307729418023833556918934274867254677143159828545111563762370890634749888687158591080704923302353130744000936265004149424059765569799307633215753498421995339134859562408401963695618367266764925755610471789408050814615448094604225493223057821444786303012944363123309115067345878152285205506432631534508327909887867585334904898538393823251928771814120142248070967042178690524503180771271969979829972652047196116022318021726502587243902760311017729515952669393428823057452736107167318740584750745117966147894086713730655875961869711401700724270540709375335323182937957253460690137255143842247160442612617295449639791653782494919613815173613071631058451866481011623196707125916652066754550987260464107461690890433601561668766184100052926459998326355657794447399689288272997095386848447368364558900561282668267110758782765231319316893326597164064658955264620017689644528058119275368794505693726314807327192573204918817178713267314332822230235853787673901136330364626789201843013631257790473022136965104637941972886726566761449796957037698899940304124994324595626407807727677096155520823548822881957879346365721712735514804190324141382959258262787258033736430922932922766920891295584122645289992147900862696769515949828388350744745487927290372684226982701533570380120123906180912995993103104701928619355175708240642628468340713349003524805877304160505820239726966206903407158752244594240582790634578108786164491316886509835133966616959707862119916485658080106642644774438197061469587092957146179926257868487802461714634288572627363239936540806747863734146696973482988058506885988995914265158563187394539433318866483261387683164711109945879933835581225368596540643796272822123103098305081702616005288546892380752604526047640196493608126036341775010655709233368193983100443052334919546559644292575626061926072211702408384571669840366453745023492765366485115559318536427168013157358723592412695041178063811529445002407197837999038483307848838391889732785109405906330520225660632343937942500692808755308936953156173169338220615383162850242324064093667525343307162625909535473143148129740819511457704424344426934569672889603342729907892057453593724799538507621350075635328783667821151290368692578884312480907960882882469447139324374168835918807365813675249266194138607678459788830106436800742271358737394462189722671875774044960455873904049812084660347545603385968199281166679363909956330889814112731876577768172072221028087656692638072684640955910269891020280903209431964126302671405194412207916607602813794207309326226394505173052291621327330027916051260752953144746192936106846990141339606697869309789199557985849402396823715435684068175815304041911366824228395624209422229039093619225185030793718508946124705617308409168091801855155374642133478826572277306163130152877281208840269794237144735655482681282574494258859541586902833623870436530893332840554621952940827237252068344016557195279109914936333439866702882578395318770373936972155646139269871064224789418959980819863805355588598450003616978663043352480522875146261207834083556385976469933288071324162797703808419590305122767397621469448524764967052802021285603133591440907453157338081516731298906462041887785481093148509172599268299014951660556859210928772109087811224515030558819274123403198074405154752549532844468465256844693660147719620817295561845666712366037510887550581458485309340675258240552084432057524176510197207524568462456390707564545013561238420756378270551100753019709117926143140319155162958310054558983227290757470655174171189215869423782944201939408040090438072825332622303343846459362391674830918431026428589830706200100836938255494569464265548476364564458729635664465449509933432531477879216837374933803615710293239538143003886841879143921885538493613483050946977666071995240254424569439250924345227026254246745794831071187243191393023524499986835892952731880386661145312351957664531629642793319845533926657098598142507427676421930271518937133429264153564593263530703771662172925714355391286039154643052299529772283566566090617323217817664855637710421191291828148279551018142398458857892472771218330711750158958927056890431849326840748961186116422400886390458888896893122632857648110713246009221188924580342412571894940924913965461831961413331799855868695672256340678583620748377889459924573793324570170289370957098548801309352921248001877396149961688098371510929068311184879869647010604405947044380998045176872582522978221090880749336108801638099674542341460975370416529734498164989824332885091673820443337000929011105896357931610787903160563261449358511429880021766293228467066023086154823392540319031006407167669598886877245435418972710451501906428427113953567208714429802262549158453683840360724280369078812514730911114690492455948000727891347612486672073913343263559635065656732123282175627836255167888105909672653019297133663398286084408946728717884433405675166387263419992936227031817406787408872373465600665254303294801472673062266821890068433155562989368252262422729266042598254117150482175279010879686501562381464571326890110810202657464899786856346611857665044525779273172217604516976293890636611591628240494673373306577482142915354464299025235347975525605650897762425216263882987246795477029862430575619060349381187359603479994847024679664576163325660708465344081904361721474760790147186882136477731225159596344969506190402354738027267248600293781114280373759636709531834596956406184437587782679019476427624862694686532733638145158312412987408011733451169072417351651501838061351404567081647926361946378155239661012743538742122641295482610151217882059208966823982266630939471896030510636589842169469566104271390268828318717407677882693042943434734169984989532491478268318589273228743654426347804244336547849631706196260249543763515212060249067937136693787810298248976372111174453961572778238873245070641897377208324584264587153230138019389611594945922533664202948309116173571243156440073384356431968217590159677794353753462376059421827025002821762773029963884753128285990453084129253905580294176560702499113742332248855957059253209668165475821653760491922304249070563114545159949826396935971667929015397613345438489280828575032268556624358256621956517405337779940971496791841388554057694525810724005424642647607219817902448192746225466722194023595037540898122139075049844315348292230894320745885283787244334019328269106629004290332649289330958923860353013973597795741409625399219093212726373120512091029420964427373179202451497883078111977667558762242060756842785664671743441120532178909507275810875631925877262702493299595251244244948330151354073163447541986508786836249011042071902619189334624984944896480037453156382378558738071354957895401240536453152237244829220791569330206434208145279557782519208056769998306762074664577729738804349856315775515003407359695813886991314379445131889673854136666470057643532997652318240856875118970905446791904793803963215727039736040004299317749254262118830282268341412281606636140421201859231831982282495171772445913064935871461270511321596671858245781055758709332852296340856880382585818581003020055213419504451601470831157961281569206521353578241644587640204157775634454985844704328287179327175599126425694803534876986926402396931173515181323013627962212651755133037438467729524856763456219547463888428798790017920521279948520482631258459355707323107034281328529495177297384051913344632159470685810544687950755888971836992428675268107805641697476155343166315716720758055384558660861874070725910007963352632409720544981579873896284060554140584292928113516992444101367348758075940714874173303867494084909154844574118856839148683626759336171919371925816864699892503054353897748948848982312333912110389659709766615667385833692447066973041682404210606422341351917460979391936217897462259382259557114710288773446287339967317210037461173947705811786310732879103993696308950100689958672179888999097798551536569787497147398312541056136543555153202566429711211777232458626814192873997457534268407395556768020801258509533039718495340042450709410749597238514847205200459723232756218023073211231719104759393717527739469597366679466269046885724742670669066067606722794747864188631293449446098570280003431918530899514426674790048977144341281540220573382009182524730259641086814941219024952619284685365130557268027529070571208868845264392604599806548329044400324300226490903839372636258821438413207695464129349311966315658312791476347376862077628916239317992490827901218709381943676804051895667218922650701165160497071610070240070068858862049648674174746864485297477483791250577656691286001181018101714281221177881084854169293025512757527022625091217164006498670860806998017013125697465909529743560062925713656453652624868491731134016626931754248670493035957460379628909985630345983597164070542879421588712638082792522859825488923951069932460537595215207768432094901885561349523601944362369122601618553539998776765092974175940775751299171704753776299120040798197977853993512992772950297465079371613387451804904136168420530475659533008666483288013171388755029977815025554136474591778706570868336650867058253933866314773643565156127134997687859661161617254934556240539747903466837292598392822496197682011222146670796225231416325835178490493726583585471737405855616691842649338773815390803465627541839468661886603865461872724853925004408871966033948639775375412362863297888317235477841610057388837516798453936058913183173816431816669079808424410731940777800916413961698849955761500845936975074551584830994108691419372064804618103762526908117554470677496153488143113663208359585279679983566063327390775737946913490207364400372558293980257987456582381237173639894462013059678159143658589874700343968596073859559942153524458789766424392448756081627686294238952027841181735406424767579495930989761987884709805140287048835208640699661742027000628897125003945814018006351305198784998801352653345089191220068551929157578616989690387156213187019399110969576252162452706635003672341487561336471763247048211842800963190903339301180157849030531991584787176666409554854029697038118818497711412706886389570385600434189028096156456120641843136410414861177288639317488200763147213938267945771866883349504274598987494417874370777536387419168488718048783738876466610683678207360761948498760587780606447831637986530116065454744043838986833978524207464274163128870748543587613854244047126227183442310279434771735533915562580350882600195114549521949033814719846676314321015756465512110312077193212989646404989548213012337317219175454649642071899461325099060912954060880305084275556857273979561898901251371858865970481952932591192715273691083452011067055152765616432194744912944932497088224417805233440866302225633588575556602702177250062275245609752921083598424809102529453403486989500649642920588110591920604857730503076941964997960186417880889954135273887169809839389765869430318619526017885117678579338920445599878355131051774812513888856820262063689835305282240582546368255974804603303356780379359916210738588433027968365845490467684449681096785787097864281675167293378125754417745120134688437413147014184864768098297462207899546350276585115806351611922696875416702869225040681202863378899484956135132309206249250464376659239879838353419099803478802304298510482052315198111688113268590780949925693874030991704281075942902988051868091353450039929564706946528223758539506047594945143427673400474938704782119153504071340687930451666518007947824250014692124327490603005741403725841814277813405169932197433591866588808252877219831654231335072034194869128808281655966591987558625151964772039435270341638415051253502940876240620550085088840609543587924394577763732791362868433453207809888831388263290477211519146304988001844041621021611268120657717722348617012845440679988046961805021890085496940013793370598058909789654697842525793647447242568817326173730331063746601650118161245833033427322640928598403527091984713943581720360687199235271169483469917290615437494366641645953828713698035128558257718892089290886846007870079055334230022294566664675985022203190280680795611970045273115516355200103554966049938653050535241962125295262573386312451593128470035571440843914189773354313598471510608464943860610231095892130672266141711237267765577999909805804815982063612694750231929798235465498099614447279289991787360533665320769081498084150076644696136124964373939779041317026382586139258131353971477975937404615904548990974318119946116129683699637099422227528873311832014802499356115669966101323939917997520398610661475209630319160666612343773233961222833593149742363708088780027453866304873219953968011043101537615885069874329479815049715108488819901231872824109779866420266718330788106187637287978077044616822710166536904415878750569879784076160498101765599480681945676968640433558121021062769277893659694659718745103877604033604792993694217780391450100358913538734984887782666074493810083227159951702233374056507031206041772347962339639726799060452600009707515283052072784014454573112718899269106844286369730731833957660204534571827516439441439301990918063053221976887356039105927433874372256377647022923627662444118041485419231145855979978602682478015091314156191207031296043003852438580780982113914527980460371043274898664425481272492383752443096559248469376245229266023074294249354209951706756234429499216173010727965072948169028444034112503271564919531246362310757959652385053649167973827376203850249415908025678857179173625344872965902431836344719614227096464982528658831417772268234821385389102888881364338024384860005372024000280930075576481099500317169383641188484751900621389153400816791778108703644841219751065622465480638931635523337526863096587539701611370437496795190741231391848459800740271630037738818246430618111731431841299803260816917410193292978307048191528553667357532896250670406869802126762424111930315960217475786383905966947048524264998972035172866201400508065322549759213460495545902258024350737752538510945963768779798183116750241894118205549577122617442598287433165520970431971740664585190295087533644884303777095169771624452102924149998395770368227184398701768337522144865541256781828588450978177960768570546341810786643564763625876113747523339048044474714818721775670504546352458439608072157574376159100182134478021748942837550945277079680402437220836127579314530799286566002960862671837479624102978184419069692345223851784414958225944902673231940963848961360741050943295750308150185890897632694213809205864340286308684166065078942016262580847141818925592477967296134316471226298564818166232910934186324279266584513359909443736961993850798563761783365817745337678094928959193875803295282010153830944219331161991431143110995408416867077026421814976562258138489363219557455495174597075800454091597773458799624245092904129400427667480571847659286692319651646408505254769705179303384593842161748221747399191773116703713198593354234592592001679986999697141083653371040957528131144630448623590840050561262875112408562862180496879865123775085237752813054485611876505232949461197742405268915651499457405158737068746210196605171979390494991595319077704553667254742649266290886569996413536139069198800026505154320577721666396645868911849549348760034540417506024568198871842614230925421120942903530634505508506248280548967982365922307249494865938927539775461305897869860088861936717267561083986500011426957036499690124620971318464026508289598570070655112163964404636075185527423979454685912575871591053375806923831828970713578361850147867969081018527946063097495143797296543539239183446699939543849535327193540535750183520467897175772356961262499247120347994543362513576169637691436320361478465667755411478327719766910585566641841322818315762372403227185415449023616707674934113924176638956296805246521757850300011089709924985001014441794656422697749594927525324624035719064006935528640753594106147944269684460072648754475252541364543394346883968243683954364697550858235728136811609535236114976356341193490343661650855489266319614241522996272258656397232214209420348398727665993869500317051115631875637229599592641953988554481433621801736401833340330995675450382976049506943377810989411988603911035255053207016592764719112678383158742862120253554386533295219436075093506727232860250388575383651198316611385924959985050904451844376003494428225514486966864207025644188114468948321064020471514068329682950733713437509257461797834208547230913603786383776936625153519595629093544251009301374230351263698052904512095173591722881332103230038283939310357396606406011604668472979299209819701677612609392612801173584554600907451192360634829173243963248130148939897788702079572342946082726654577276129913286382538262362708597404494525635190045491436615190652746506373914226656429929615288915711695990951024706630316552226512333531302007263039019292970941608357837774934809113012537004126167258325035312536471088793968237815315513127509268152489509367376269240515905053521561763811596715608441967212301153101604860548118049070408528219601797245331295660253021728521701983623709069266286566910936024328313688695744669246569163958800630396443292170001562171899167438959016446749784307982793492363491412906791200615722825313558241140460049730635090845313674011267991987778459793749574402971333630954662913965504196297767704441467595468428157094721718860456659378007301642413812207293477990507332347565059664179547194759803882078782224397940972743647248429932390585118993361440621431666280874895869681555702565818216910487465657438197312243203268223127953152063347853384003257849579667193597421246250074434824906608131516016526481830126501066607435563840862858799199593634641775970282484467200025317468097122219035758602098108609520881828659417717074491225888836802647379970569053441090375384551235364854682180750256818838324713238987086109003660907644794317183050649995187686984160350874892710466190125416998320507328222395800790660828180249093364585020950450168316959846158363682224838393008939646658696383460364840496640290128897052613474751294080137560098241139745324597200768431250598334211643842260975244198369295456973432563342067126828994806086141985613924694341187194242185202185381303019224839789618559203864459664030833993397579574535788295068628717941719713420655845617534359755057590040184866579297932499817499692334666546173279701946439991778737751370633263005945534144618678991519358920854132615290383207168183730719857528807671993633167788896088765994684753214582763026477033664215207486072691490927587723000623428079683970759982675211001834894749003582676197240071633824670393506522810042896345039729964754834900884521607109305219940514760607427196906420306231791251401070073630226522036892389981301929958369426613238776159025508839012299816316925930029673693386463160444195528261312993666184469193959769109021325352854983507827599172917119847736266786636930598905394786816122014700805752207908708631257254926174308920049435479033852001107814364050855790222629577501045579584810110271538472880521386191433601340036881063309686115885039906088296843556134876341545732854451634561238481288143739713099282406563004603934054072460236420301272119289019114767856089607458470455978890355047440180661954196786826626953214063987266882916342384633281327470164347060633350843668557070581478292171565579255899338942138354120921348490098450010054923421750755151898220145340142867017942915082519600957522886874156621275453239753666784562629593045864153338591696320089755498332674396753638648443509467476087600436267708739233195967116131567168985052452802743288796873578086647280766775723414679659170478219395290993163459706977382058815714925735982840507290072851233162899938831058211468149388346044971183535054255350957617101428846497703536010641907128794331995218652699692929111543399712926294122877403031729638808345326620269197696552079544333456335555886896648224558809233124668040138236306091451905420292089539586062358379013225945233199802533861557813076054253643604361103006257987910578256852361676427588737717941893418139669258964395772951975953366465235499063828649545730113398891942939910593904492622860975994834161181807461419238214503202763228729489088120480015697252407099594803842226009695791441396605099014104573441159898169725937442279265790712742095116100936114782783904789574347778425690331815628827991301706638475182835756833239297188106332823739649487448957013087184149926815206163351248650179529088733920821883854571465578996615386761598579838697809565250631319720949630074692820230559933570922171934550288622186662401188246859725508246006180330477318611587723348606397433930604079851298130009141843238079402645927643401346708864676146662256948725453571394850932586339933328695401167763085681006750289734566553794817190528970950764045807061346977782048830944581327670528623861926235449446732382051761279672173259886268145605030632227970006032782531534348034124168842639608499071003399961237868770671067679961980748212631947800244190805635045176540351221902378993417208520465251547751742469332417874166495872516837702096970760464262689155837170235091374373170495292957209154671075569743525798191607044562860844001816963901682681512502765961992686398171448364373513448695042452899630546548946545270091234078636475184475699929587334915171148884028745066147008673032287102018646156840308367475421130893397879509798627449952832695790210768251627963585317731522325996371612311027053131116776276424260513522351638974543442512831813131525116199944109125798234821376963111046050823646207746550565578319017353277999313613889889710232764053575449524635225737206595446894373331424634422441519280281023213846861939026167609136101061534505784376825542909286432097168822782770010586326472281067770753438467888990670285353326733574199690535828632452142738053250990534478083450139118857534089243047984622336521071568676211277269618628744142326123272383053292796156663804179881735060277483326736409638724862412932452255542881631032752643215947659901030191412012842362320749224629055320884254635098133731583112904857943645352076112266318187081818223137794082108173154659134594675607782844946997238698731410652903223386254591154948337894689880622759896473309915178812752380729553644082257683876815820272558994975735856895416577972415193038797092137729394606297734359029745346019378862459442311859939955543656775911644555981516418150530943986396100770110422079254352809963494112066930447619471825919764625691793714549840174333145069328211860631354163502370197523137470095181798452762172108754399173148072850363789988109576828022791861954814631490367062771482235798449133489271663141901000963057025118849581173822531470890645795811770025656498580528702908298415991349689456182531435592072992694866629121494731345469662964148795078437581437534027318682195930145865143663191327014531560160313141955646365715217060253419490354494919224459398535227720259705689864740390657890622484740041300760166863207935143106324312755389221733815332469025118674393532183486345750522748787434304114099639902685999880805018676328269354699516101480509112468163500195717537060360507435808654164378255878733772696162743140704966990936498355849894893447127395126388814636465505764453893469823097463215799930539714022365024460679501051634608285845137171258259854676705352803380192610169035620627143858684524250606664533211138160121187646540598309991906163150297802378028380785262668166634964990669817321351413435373440951672168934009887009262655094138576575290688324067024303238858969405395928002091896832286519045812099716168698609621342412179765165239756598768102337062649923683446565729060692148824205301855720324161029137134888663865813566184997138429408390668173585545367038637709282370158606037656356557610929275123720498755995570284182778146573291290094746832902768684221978860969095609932008796305143595054940408470248439042291091471589788109040630215255253598441606087868519852099624940339941044102222217858095471207640633610147255460514104329474253446347356224206237772009129264121425942305197586115018211099931656185865295220508660205926544771255684778789470578574857390762831397438364592251345340488683164390261198901800850069999473430803666053997363229127497535590508199591819588351714642616409375586465162404128641722095434839850773013379752767974592628116337792630688309540174041359013094983113889408482353379129082646325164732200715228763324197036987907152008497870971720491733323904776628542928187937570759975895474067935021568733748291060970073398217950105707785708651014358587506189919593728520003355684271505596300420228369086206794338519309004677230706343806314753403162148040930904510210994473206683320076076536189494399114849103947495547510000796552058140156498112349452877059770159592594614094338010133069517442337519271129229607024271149110134277023071215926608511136085908476374885361783643679948298610027235771480698451639846579433919179729324276480375549610771791185899698408629438423830487448186037746251942973484112222901069421879208776249405875961938554864392051173789552409606128070196575820586021137851351375824728768786987112761197403634469629248664163256343895578361716759279524262380214079890280320170503868749404169298373829958234778710974443429933091965570273460407702898775428179322138833774147627020576377742667782313048187750555289636296538218764527304688667934997584173161372868452610464700533140592842073359113164116632505801747930094143440240035092700345013573619959217365592858224086151297673795493918677306129281764036716974131344714767700395650733289318861651843594948672892213157843486626790883806175609270715979456360332883577099419401635226968615068895681100395712980145734522641673956012790579330597989908335350103346734958378157028513788948773926129797029732996150294139394684151368973961830701246518942460047926460740804630915677460960860827059702435360534103981588442398065760796274600002489743668230532838995270802757705924403983656770820082720480652382919211353856208840585003534691693460463681035169972739909219861931706788530775119345623059086583142972938131027259921266986255829556713013500999386704754852788564997310129859403161547567280375203560871772750329079013041149363695839652308994310870990140308439235292935502597652751359386514057866270948163060441561448991002550160671490220467165971756296121549329248835448942799457588605513475967961441475084670089469037888924069902136398093150627192743519042538103785504606900052368674656784752698573840112735229604789271383483514618126622427985830740891748380171453013653066550986994608465213699322006522241160809769981640323041323975989708770675149934423493252278812647785591749180249151462256030600492289345100555873112261443401422150298146331077609045417331754028873599585940948858924276996764497407503666785538849417094014523446796965217263404082255253110536821905142866423142439608523631810688761919880081189023054229220311480494524368360764246281443946569688164566275238525517572563683506937344317818617522762622213297302308787544248138735078656206323385949403134415263873310522145365861216031018917269731661318218077248037334094670998426904075453050968748629151262355961800035788615621565954672485508022605677666704739947207139420630752545518500169559722116847142833541998163419960407727885506241656979445065179759460530825998511181318068699299692361892977412704730006596745506376090869885720535324846347123727440203522439624738423188738834917501541605542991891446315059422118625144501223649836168881995096480392799018881391620977915752050384001209952940069490655297072459565007087163998477029722908345854052852356869852998089508851364194708518383378668842828223093262069182283230186214897249067829373701989474652490356421475888607860565383371508567669280444082789041801281796780570814720341246797656998979938618548534404375661769845793733415078843494842074962858915173017090177577150819049899157129114496149641423338726639077478272527333968734215752146543515799096327574647522850524706708366818979001311965967043923333237722617009579693245371277184851886874231795772290862283534410232203062545636388733074699109237029771371468945295213416845352607772757874421549894290442989180174893367355758416305851566879289075807463040325178899348470988469319555427624740970876614984927243912755355008683647103403413895925807549096428752616766059896526957281083147595610756928700968779065551951121462020338667920466467419080001807439050770116810148536923680303227895699853168363499494786286588868846460154763774812730570202082454411239171874993457101119038080567121902642499917822304217380663357645894295518404922254068555125541182480422534617862197286525289699620583659104451480452812669717548491019922633228660615180606728210953687754283236172385563193655782527093835098084993229650209954322086793705558132229111068082933958721443126667708017422182711595502218703589314306209364248415231563504844526907496490767542206938607169295591071034686026149254751542755571192746029649834598084914002008204882523415622548771769724729447974758407322126670964498693251127462481683515258133495162646500578007983936624033251460785150856294183114724584675460683114839636430379241452501306999762501231614175752387945432655698389122657888453461320225594608402628005290281013485632306464393056901011075057169834629449712770286615026294408706018116629697623608458734231743733419058205311919703712388063360012940411441312375841489774973827850342625350284589787607936190694353027702101264860592694828015943614679344774457378624304342785597827207119047157064353718012857031907777536013155555209245895615081105498343053085523910709204388071773418748997134143832990357401965233692780411747064721310475563734380530256182378991258381118709710351514837541557603043639583102808526590528702420692682034369585212292996990261038978235351021280099015960544799125524724887774582927295279006896408603995968735075329517258818009077450110627706128025454463136366208618117423604001968199672315466325732153765777254212546423750245374566015179117704470770973239100037643040180255937708119186905691447464151963573933676914169206446422338354067835375985836669621644715432716839676167036758181713079829481817823108354424971186636840235908083036429491767688161384124484218524202834441408506263792332948440911855542607466216756450625097969202916886271012899678359420116927645218592819542162543912366448070304367903770356782760987195801627240372490901741326971704778478216953597892033418152865971395363904260862917661032338013711506617121592189114032007320191686716821263895648269327583207245590427942586700845362158789559841267200615002613728782731023174540493427714539228848371482096862470562584381397300947734179332775139970793189565272643042930407727800165273627109134259303328072136007098526728002416970992466376087949475562608613019550564752753129177846387956212671673144572961267476800939574554503203707637960102166674912552600153060270579628130338645968364636295342253067491861554184844924575110473263169241628276643462556359029464933126259293758346468282694383339217626504022584348232969141724827878994612774968972409400813077905859131521969705848005236619539853827682903493796831174267362858541804605928591710869813694880145531472909483620206987724008790760879587066299813648453883063696926995991965766398029090950198664664690552453341867976916829558361302355815351146856516051678117484664362024518874298809022172305020379273775475522467593545802159999474736985924396364598972987045677965103896071971235596487659457272986911458866550801373543521163366458998918014639401533857006529082267530489968928027331679246980579532959527106402001162351115112765631285299157509154423880514490007239688057362637114000348464879178545046988362354350354472529207896008872315004422981773432449491900559944885105287420728083581804733362417708781911922296003292358517672768665867153011816980811793914646592147922207798449258564573620198591167668067407811340419472790815191455117487249344145415607181851810498921784843099733187739019049070443329890830932521814930006019184520720120315893171794152002788151372546088732627641856719229031724899431460571024134574372556665278221596333078644711712467820148380414824474048826214608299608585100557324355562519558076368754852814203629778225261324576702370720849255090934737565232015783495056100607462137197719138227310968914659152266717370019063326421440914210499673203183522925653484120459834639341710660869653305854237700872437646158522423802409768908053916721741482161451280276850766921287706037067425565769780797890868479915559415287830949493550090996351241170021573566489589627827193704286834369075765237024861339567337469235480757539873320152414239420510209257356980259180009256573398165964038002119856961959004132325656476665612930776752824211726483688175875871872589637693124314598578314740914677936705064519894158079574364505694100932349518446760346290498947377161393467059074192716297221285728654428180251836131877105395357549327039012257432615063400027859952206089210637424032168943610536928369724313730904787963916167487426086328081410126361151690402207503229432409729910077803086483538413328172260474597394507062845527134906797467129848013828964932108015180838887651129830511223238571018417480078557777174503443010982271672969828892224129008066819334157016825729131384771721204103781706122022534754467084097801244974683393590879752160803563928265946120753901511269588614349569138108978126772079273014268501610311633547549905038565835231291255716904784465676560023518823580522678854380795765698199233264370970217146425006419870921747103790940218525155355374501757987239742571648433902526176797124003189671210791764765258353050970836273652102090603991028992545536497799239696087156247933291702408231915074211939465646540944854119631588955158833549650798534117870613053631439493850870680655202081862521241796569644816688195996766451717365229277805271932695874273546749600022063663575912768935497125532372163036370774139158991132831915786136247133695733412901176069845582627744015273541452451605182626338355494205762763193576815509453188264749927030206018098241232828858982442341459595221238537783393228839624830859172608318419102751938139573680077164886972877140672707796383214588846667723385415613977331050404175099633626650445799857802648962497160037348547500678454663943884858608501333017120632376308912004099499599716831344869098643478624582028557411527950993169153095470487758035436020684554265745334523664571921273464110576165113257480528973553729806609767232146048515128349335209210015619450843447106767454353477543097738203764416687816751158691976892381846353508289033488638596246864504678162931567080385991581143859838557290010610529121301640891074972365827863135599837078334691247088037964091047680919412551418751004580704723038579889273315018543250492951615427504245176930007378909622439170418887969525019108139870439955732998315191358947575834750139637700651616405465006224186454291198008268323549540591881190886412960250150325821205197359769459121988546611994951478791363165014031996355075161368514629729661536113629123782361031333355648152146518082036288469072497750552516121730754546876648260670062725162530777944452767214760603065574457295315293184243882706121174644067571693385099687691102341173553322696734195641651494307126485689835300623968497424868065760607331013940783668821937452910370702678229716502120408606760929589328855406579007131660949700969779221472654054443350603315798376167304280710230024712983560970162645742911863761215815357478593273517907043759795151054830620667705397026770362316230588414260847552868941998288784998167867877798739606303517908685968954606367608707602725265181288038449258007864769130459326207586517148926787028882300561169244209263061356875190800262037518207215877085218597810219876684235135602184755996191251792783929872987531274014080208898858804665855639575759685620918038141459304400428243124578807576640914419393336893672635279753248438588242530956174162261784709885909038574589556295182322043285172183323871453378434040158462364529332227189647771233431709611625260406396187963230538512832869624987626022531927199094626993934626971484845713282332074098774641694015880773240145422234080621031980622316787771372488471348723369517227575402422741977703720318135727019945066395031804070515821229964177248494895383222353748320595950689509555636252788786072064643251907519027489121303332085435226554695842487866016699407740471886113681130751184355761243477440253703191560003278285341310910311334462835755641205718837356681054945407907868562094743401295406290555766203481413051889131848867540976234458315063512830349766945154746327938309804593717453006115075200982007296501133719692224747564111649628005297172988407129224059502728211933389663556441655648159209010629379642778700759154334968690839860448600142120219665258849686740827763977243374642908491284509263764947424308796126749608281088861338178319573809443755636945609280535975672751978204359410544016071412617625501299461304071325335676347628139295135363361219695604864118132888545295272572862902030143090354671464723416597245309948206550472774603776038665761024092389827425076145612971989566383898254186551945203259503891920874587805812196792885548385983256708899408464919360850402065578080692538042750691673562795492194860762421843679854044939658909904356856509693238403710489460552542436794326155390901416966370886763370716042127501406363388313842163408048534918268469780321460303150990542536672698399838626919878699106343765111840577871206811799001663129772749839138258313583162494429269327503589695047780321264510705919589598007492337384637262435285368409069243303361044064860903509563916063617520220490254199733965882352933747133757839672792195234124494663424125638671682565319001216205703124353159566838663390704449875641646461745247292775791187253114502807334978155405690669837999972316561830909059860271453520692386825063542348548813194864790524612213559925668890879542359181264601560427998721499782801277266523430098585818488797350049459368489139079209104935612515765558136689699632537092914982216990386123431575233948961194741972567361563571459766790576713803129377247857559562415428803424779339589991697107833313443382098644855992961211780311353151064298294758492813720200590562350026261538459347754964850451484113223480677808855954705537286771385886621998833693483228353448788010700175722634299468989960974391029990144961193806060787929513795396690827194872010901429016812178667898463810496066249384131421202939466215380335198569982598587055935311593875742853291334112670983816803492123282618443519288025068616604740115453719261679011136406380185845797770620468020950432899579546908478342899297367281690303765857539915103387368324715877314725369772385659558598496575630021123038861511496403643466066779624819866901139551381884607914760493320084719732162996931786908264849595066484593209359502686101095918138883424133009351475517168493671555848400324079904118839744328358049171116739545199669740237164508443302134696483662468614785124014184669136177111834424105811606086270313783755253112875427121853272960192566061609912727065814321950470953228207018257724961983185212646878810690438923633878236890020361711468171542027233832509063765222830019061765119587434458804494788650645718238835863601685705689329276424393327232741786541848625467434719139528468614124431212959967664275467747610609538381379910657542590325808078914557253912106348818561194995595596408799550036436972311333250758123651836226642033503174990266418148233638806580002699456031099493584867995898043439477722246280979104323957834532444207045601099099982352234368372187166712099267033610417335213407115028886049293485881669654823572909501195393024877346894053613798780129898181267395267999457651082494776155401690869996307934619366746930627989652405032172047114901125382214443312518736690249709995063726440818965180020990728194118412603152217091018569346987207684026185450072938681250770367210067723093354118882210841514183626376593391011809020276972780669475116565103964337185250472740731631656982142716195388949273949333954117329132258843992839627829582348942296331817114923351023189897735584864856324091775052106999593532935788709239872334024225461057827776130656735565212009027648063819536960607090203223395545560008152556915382530815650834048091922349521638841906287049572527342595521404305557309142676789986617726459213463640145155127874586442959499893046089681453637473869238513163544587037697945751502792251280895337456242990533847884253138246095646684015511588109269747004149867920237448025450630326796148077129817262130189969071680208302901178892412201001113916317875032603043464077810351170625208179505296741556959506163996206699806192752127946815604689406287707532479163954297171021253475940427751252243287734803133945543062751126812668508120595435810224136732123347364610873591458233952318608359633551848774710120990315309431771924096197632253511657991681694670225838600055956889693135622956833102883510434053753701750834011920736899179342085336249051712983495823225804698239070546391277516529610635448959410133147146260750484136527632472272906222371594632423844049429921074604968880554802274963790824792803591661803301026288150004219428205709973806619793393608137988182829786631808046711072869249313384387331191716167865206348281322006673720553409981189633232414248158673662821379892522733871339196696562660745464061263868731372497568611498628302464999905834792409358929751104314228039044983921928516703876911349761827611091641736877712678053654099517312755244850728251951314053109755319657724533775312766971607125557107002455359715561326305635375510686092144364772562989417147839040592184296451684198302053811918828350180950594356520529552180561794656317646918880840859603224471823777049255571041074717220119703616379663625519209513743773762264457958908693258248142932302887829249322213050008093539909799564187259141416940368175811637386947327601747333269985961772769623198082640065938610499950709359487046433368847424915841373021674406478215295013467556375453236143167539631562726350819242164548851141601269214304277741803736722121849732473470052007569876416879481492982507101479899143116022069848513291481855105492481765791277167940665287015574753344761999997131346198735521649818669881108882273500866154652863454517705045889334469182432915745289670290107181184725166355098885541666202561557632480085369127299045625876146046818029312449912179019833877433295907555401691521319283203766837378663447162657980660049406046117141777882566927214479140921648442610275298301186628296130513284041779820261628180060429419860367355402167322774274731539621960664469145354847306282033400762183083509867640640518007955951511866201726613733435093518537615207512592596720945968590367323171275134637544672456107014417681715522421802581663806728278141435862718069507162091316547397993892321389679871959536000026364307973499619658228666563501510132421076838249028072824348204103741065329532955931246896215155337680136984307333102059150484831713111964289034019619994088481242908503287538755338567368471262964936230801811142599875587779600854171399271733573284298802993896184153433923972253796108936502563514722843303002908230937896859508980399502029613246942217552878966284723907895126871212170450347445663824619009325929662858871599383886387782977083644262364152776320032771287322074342796876018466230838571850695372343148501093329045032075132625362705972175107046834808183777546878573849321106550876833819076793618450016020275523441042064777705296462868450534630868495260088404081817345387327695431034908076464766876684068422020613242635428317759450534553030511063786677011731873788982680251166184383456241373518800224924667777601236072074932264299336222407836402470543017954285843016991016066614886437341796917932489191620404220667241785759509297398465021873200435379121704771179557433618948422041161474221717062974579626633450023475095953072906538263949880956611697386887984627600215227008034704090613843859692949334675512515632231907855100503551925434068631264271205960331402971467956777531651594459181356419227483101273627451469815482300324892263258182722313423815185573355244499337246689627564959934355561776241497237863665715114349814095579731479957007935385203573650870039663486443681754158039189836881260316087001948757747263056383283832259614525402183995189926220239640986755072054165164141557450377784048149858064712304464778501927894410355310392192392620235685339632137732127872233583318074308212425919815567229868220112193122851865534153242278174396468788656347438779252004232469452567952899829535526746149277278395483564438053255284573986753054339470834188591400234376741076959051962696529601437684623545065117835033252375051619273851369038812817473327102857457885492387489503398757288617734266312809731724907189009932124224001370431237106043395902001239318007610572152795380166758114431313244751674424585579252635463591085760419888342378319455859860581558238062705678529792561473377419594920332081235209018117261068892850598195304168618516772931657077974398926553752661908378925149070975481800020792010490641565202386133780165737373944931008811805590546861903992089556921533568448255970634506652687151283406752904741698416877791125408795292837971982979113906993244784556072165302272125950682361405056912379188407008428579226431851112244711660386613065065696257875321627093339304157288509594231953449672915845401811830601391582289688004147106826677169815722266609433043046738595556704267638832414311691840242734778204214436700379138687799998857748703117533124529244381295916099244105463710890420428008965955413794163175019971675166523937908538538700333595538731601988125420591533053387388726724683776212940911550562059042757873231650215931641238691769507760562803762038561224187801768991300135922901077174378924114140187720655329110980135018737058131818472654014271737092508574488036649724941848468736351370773960030682023358807517507155323408791501543046745547279528968291026530709427276606625727825541210008543318508954468552665058266819068619002088100811221684121587635045788140050417348909113371403141106048675612074383805376249599415732568877681543727378024187381527282995565121633164960932276999053677447177550087417255891513225906584323924536233730136578817385866458204026899107415143356553035291722490736468859189907032666774557186947939518446502293685840745815990922979555349627038409372068330733802417913707158470450583193568170209916108471194790104623486339298835409053290457818452483753775052186565070420964319865234703843970790255713073392233994946266147449016436792426307505327312822835325057909737419798720263647440473639997748236350846131432825447817351705668967727872548182786810659133610803620439162993548558274518273003475629955041047653826111802252963053616516488842841732894672841768647104225701168966964507808975940702772792946519175858763740966209933734335539907298748039134897687437974226920409841702701939063238418260385017299214787434069949370985418573701224827072199291370584503186466032374506255720383588516373540544842203929357271859062127864432593726802606500577219880691928604776614816709161975327913800442870004224707062928958149485357968592632001306187383454583851400828709894686670412916582605189155537294178642843620682722066237605323042855949787388773057314697343337840255644127619961671015227616927668472980527772960705140077152183523671334716588530137164438325835777349103040875632714222442552846306953649621859818356001581584837216844316096532908453901940576583535739153172522930519518442344155143107370697589286447110551594917885138437344416412244816569760449436226216531629494893037773451200646215837700957150552261115365088938452691882765876919873603883865073003464498667475069547646693439755465198542494416982531021443683426166483047822325889100919486882517715814859226970421261463982360128859231237231399877539085942411881027277283511256072026500440873263504486612195433584681573167867473378576910303702634982710731285107760326556497390555326456229902326227700290405845128507489489916596901703043033888724678910759718345937361493799102827859707389351228750583946297631824069553071197743907519951942053502186014336895974220166804526821229292527880686065057041008447616512411808952226831374832707036362102115186304276269153186798740113387082221520876812046321482179671897474065788732817487829253996360681092199371121533046618869862888609387222527006618363292904557992797671206851273812405866566640204561959085918970758657183474467737825228627339503609606004201781734777880311610837537922186601945749768214322476435562939215482911653150225021120879192817098038125398409785792828534562847949264471923347235111577907091348565493637929452364593371368915025332522268610529823153235565536715832268257036635407932698083116830096421233274504954016919938736084828732560544662955360763033187804365282989123095694963596793610426933347097661513673335587991458719035996673502067354993061175704612663388692871296563641987070326531595627135490634010409738642056308119132457276130785386795647415701706749909139673628032099244845047488648001146238338428926722827378550006308098027379042037379336112151141020962051885838037165412506898474011745153130626017100826634669745975170056339698944273541433622474521763386921825676512081573472371901412379072466374863362440944733176007469336719657354797069022337883956982118187857982031325914157280247346680308656416614029225819296949611476881949248350033399551437368367968276866897725653898812185769007756827496270838299989438807578032265959772293575000998951589673839489246566541772911423958217616813316070091809166020420948789070430714512371846533009196658186636589217885350386306004353539694080934757369875882733041051629491510279283101303433909648128621834934644506409640625432407638325151327224245859401852426119894577216020856985855002697680900303691861928895045457861746946764294565444160165306547218905464960591696656794805353255784624593534798451038814668806859514213095777284617153974562936856647257670146214846570788604521636296129013537012642435865019918255717949576805219391312976917326107827631146555155781204415112695332614733980666117777367170206427476861862480876945173818660102909776299453374245981192632355033155040049707510375326755250881326275527770105446184208232786020764683421063180008328420305042328405500189457849881571782312995210558547413586925468234462110848666232943343633673393670256856268597381968816778022940611607171041084171483054952920167913308411033240330128949714828985106619063598226372684010080359014185082441541586343298570319522150218773112233664884981802230568975748434440047619337087460938284566709014636504622471424786955153798898179883362358750605962383558530637291909358787113447817991645459693063221673976237679633293582771703052130420849366045202399240242820733647545564957760019993600606317923701044362655490313690364235179715409986766420216857929772413204956043922269271134861734723151400535812226345893577934848178145451249874846633942342509562965329806712704877954074229005284823098214239063672428070634156274207349749482642643039729764413964972713282593397824806963242245939775648060430264886755275455825151071470748695434624351110588416777278373671516193729159320126649288600511528967602119932081457615078940986652887709972971493991133421676005474274202206744491544010641484409378063635927652832899239702313926946297244351356635389285265889485156324269430295040433113048743394526376244093419012263980212728573286659650635748367160208312760664628051893484719264732468818940641273091589362283058291860967846741899596406867633339599574626697216777403119499769538409669538145674618486760260533989383348753746472133772791422066678109119869920646480206722071181245544748806629882723591323893176336673412930898950743912199372452530539025416726222047365875095842648729758928882775264736250932336393441224021312741096171496195000346829695325862163181437773251300906797284319968497766479673613886110255472230700070990674483525700894664217065872696297563972045277741395113388321036546810034224522833572244876607072725012215999561746943432096225190700404253039511177522037667028228443207003174921429039685079864811826964896466648883420105420774008528624616716718759440146080468342781802514734495595360576755456249043416529199224984464745019836842634775906148645405774369577336737694852950984151111719642813065248208939195539636776524144305470532823755693009597027131907579593520258772219626662831437465344452848952635640945715246734805287642707836103820407907988909001980816046842631161691089321168601528805265054010786117960290075036083435496314300647351625581446812972512226929828812438506917827277236133824238251755816896943882664671782229678403355035351853439746436410468879280719385752202292503646195930295870161482701425952801380758218479074723613004673847782300873628054828681890139875092949170409733750571686203241464037946206559773600036890100290192102431044039491337493432514456475865083348797154746423579292084831195494225288895178893857006053821444199844013610162822036245115230151340859042251806592681666961263184536112342342545499503143830805653087193353546706437477576564795620894497345344820363879234439064656146691133346785538833659597449388336627029932520815543097923891603921330894350606744673549128772178147868773344002661197976398229995517889147318671406413255341032222261053077174701918786066876011965463130188702904054662487406037713716921463872890286043897311388073517221965404392326019978890610395712211263558661464819125440008475607539285338799334741347637711428925931474001219839056754942571585327239773102175587618762097437802995756624715781947928844202406700132884791272433241288202569379556683524206616070915638825457080190393082794472014281108843888961973551846810694973171380322241710865866703911044770811724079077938373705626039982035393566234693048820606505410842120197498361431335593492645247274173208554490223593665989103373540800709004619000949323942312728978877162197591291376054917747593561954805964023716367323740525520724118961467065626303363796073751686255283035164526922970317572275981216820472038562686545507602965385954845032434816802931723109695786531886158994842096398196428255103910756590332366476877462580400286284952044904635912007863374590137547833081175318008330241780319911249837661103303725586029848932884972796679580560220820744729208648242464989364607389783117980575283816316777513236518878060720132233922894587562698293000696904868698880501898671385883309022150270395427190429972589638288611960482910809163736660530090450041821013245808671447649918536598069072878349366369477034154899477664475108271356539014970788103119006926195567058120592650196691691909960524342409817542125121941749732707722642678463467249021449287996546013890072633107964518000071218093282216091113393503909847359952233020028031437481883279507400032802611293459142800985798504856026184524087319704691804688271379542202183358926049079131069100756352513981242805772690103312666597106784018579122968737304749474461890091423168164437112132095936796383855411495167556987937859485016936206322617940781270480565927381570696039290859607951074455895268958357617104224920817845077939579303257153903101854151183308358217094787288361939298755671384312505190751442847603225749491257161326982625881823336907934076518987843324642260892829395014047982665038567673632191559593666129094744443339991866096481359102124027437978291703705956035197493554648696443097176824475961354418680433317078243714887208004739894035840912979662075445174552577711289706170321553264270799174721560184855542667283124958104574265288246922583417085065868774567097689784369138786249813991982848058021081229380551540120457889919560140263357235211340069466230136865807782097454305858648792762794930007518789071541620020847131028938400334909841987089569142466558679338583297247214278453125126958256185184212368375190842341007721186576599806225632000520326741231932514642655827453010655910751343652451035036661128829687627652027826132876959139179100416071614369421029797837067392584474954683858868267472094051040464950064064477797259526274049424794365699731666873527866572867699676439602950716723200259779886977169104883227348921956609661887553498388538728560635191733279905491788407910640906105441918505974976631076982864025179896430785328020729344153659260163777177774560873054737105111829389928078202064682570924692185094208778554796007391157028059830270834912675848648951783694570439246239356127025978140067690049801538008508073946626445488882285066801874619900762974657253815469434487672198331831867405845419019031124353563329284404176268021971086667359445438896386938098004252021904936271453617054369275165311733535640564194308933257851839952019740222578074706837578697124534289253113559034853651868413514944044506135728558834133902728645965510563940521577939083598705469914547739351385452549969359860346578101543344980859318757226231814895776032806578681472124159452955697846603790996537964873388298909653275807078422408151138836053726978136825774621085373915304019325394804182087948906678325677480607674943903629863293348556739953487805758032380922449002528611200054918219256607654160939206925295375806876472176190246178590809119696037401229025882825238148211417351810253748564796689628611701834998611418149010263254265742278511078993388252491371204208665340453649090261891760028450360080666551196572905909275333804092044388693858349768699998646821386231259247802077644812472267000651322912429282729432089946205679982299366325922259938261800989788152500962518899775268989373825936719362189514813310245957881845001067274236806730551723410421962081404613131560696399890393200490571894949047309671842822090439238237722578678293106778769770911111238860292865714803765953324247053834516735237664182712392114194351876584418045536131593936790612527462735978420850097265634290169423357331705379394135375181642579339252367552008805421182258291821399687560066959077158231174158984303453816982700952466208056114591297212200300604659975401663830520953540495213139144804523565850584792620325818003484887187572764198698295961032192239500856126014175370463226292722143337755476704757456507680909644820707512693944949458205500163720429844982995837305579852078345408785217935862118311348215510557805973789510668315267668210735999164761843811739726433799998017437732405193759245894024697499483016271306941500785081194596819443353379563007177017904863518753756004621736381460514123885300548389437234733204117660679578930378676816756721044047108058945889526576558228738331028258757438334551720228611349648206959554135172904487647600904067092737154359685474070913014161490883905978261180341983688895548193212807054748657550035584135024802939179558473645689332237627956142192408913799529929608976104941129516043354063946465422163545774270971531808326381245625584896080117711643101850426347588244621391609608511456769362293043767055496574112550587606125888265253527434800982664576794564258624176345794101758317266472560682154849074382650237839932382175796624276266042485727130660049948310810950300798061728682618511625394492332204334165829004600347288447098351969630975893575765257863590175688138057412492344094011293636590292147371830065335793756594802328730449162061604058588240886147250860976445716030949916866616850068766087540799126476117031403345083177742494114548140632180085031707105197057459226839283012671113148582075301088540360895675970356580702969923836949952307291735330949795629084361780806972280679441312185756918964291870511332088450357593302333512278858652236042543948338862421061393755680581454264597671495200032206132953681728020350288977505689864318542271738246346315514291064936301643754112150211632842126398839647290327619617570025276808131065557890485562741860065776126185175568760310926928673104170896396385752106702726569644898499556038641074693638020794923934120481910253924369092216005365675159366103258932364587507208451240178319076350138040015831478159504738712522664229121479529994777542832400828933223074299608147589396076652003273905681895240761518361138697448856948552883767225740259151631240386082371216075675102510664013230423761369871836125826485668384315823927894532645442898635652739534939470175021111886685123711851309277759602561601961563296794106445785225343388362718658214219388370104277629442612521436116080530982492529971422537668085600713899074947540204810512982396110491240512769082099606993453632106458130432810333053564434002059356811987509078438837547202990786315188933290506537739153699412037625663908753141277997212716657920491266889287323341878561995242733282616325681364514057760475100316906161224230611096163527056987024653375012064490553877815067750533755907102356516443875496842592475158448857071708473256797571880246866816551306820291799130934703904455255668532841909995270744153159297733462221549459020201738342065777338445341947893938972177626076062007451678136072247637827278069344199383519950728453936713299728606809370993996701012459833601362043411370022509858447450575330167203761118064156510149724220114628187117228890046066322887496154098954916957593009935150036919416242037725380015092392519414779330162194855254105634300764024761563097619138390812872131465196484304576074211111317919461951537424286958965738383264125014148481445692210522258873486728849685766031487947880883069272450141530060764942494618595870424034779540367049650346762996953349697189264861184347967840260983931058189073678569290071570602770290942568867493763588244256832393491485254498053434340034102390728225701705370602579457422978814779761456727899539375686202115094432656242574824887534010094445227946011877887000269114671953757347936365233230162143383506804044837315888134956299004501156599127975000769691929566905725357135511218411744737752312798416993894392710538167676502079976069221438511951852219029495066426335976283878561540633465572060979784114082841846167854818462278014741579944128940305010991158061418169190420036444920016797303418833725413179024721377917152759676586058046738896015808063947053295606256966258326418867202579073316261237902216660595598218381503450662693999704185517219130185163149683016502288272558411946345734545103100877185319086246302148417225631464967535670662501752608321554648552392808416185698561912568075252076644748644745866284123618093164790718973848872221866733731186721359117918755897005664746451686681580184438137227783673318768751792060474263620934399083548832072283054982681714985430418424842960377257808032384040758607944580122162190401846701145354079532261546720619415661055676408720314644274367408562156216237730605711280862108813035642607784469030912544671902408583914051993978832679414647373368614038103101529417679588775075311045356267202060086276505054263270869319472824187840085690514811742549731615377118295682763457229395563052489837485102177444275983121656671920840042479993583239547908278706343392572201807408082555423928408255735308486568064211510008780389222943494611045456904232207065889386734267483114367536045238204449005741806986467783412085742980111505782207957569369921731868051400796168305792920410388138394786304950793817638151951352811210439441405208986441723190415178223069799305476799634161622762475727960655461477469061825594222197050209117322627913932009725418879037171805301114956907373934212422211211206120304091742576153035676557650311123628139664925621515545137842877958883947397054776963720662061206928459971829774115640982361605293563699004876164855089088541572180240534340016142889984776959815103237020232874508869232625568684038320713937662621421616452859081011895673283168632608349304653537646115799702357436078181186548990887963036356975565223346270381067309964789765918323392248258026695548176999853748977261534479420298824742231376220720721134312467620478237137310548596822806948203186111373658775980149639163802755302678887467390683141254102204303682142636071520738627635679843868380389315716817392883371286797187886565584395549321873081481171637944055779048450122261034284820727923488374845340601295348085550727597582338432753698843507017740739877897717236370439840437093197936656010019487232639265721551322683028739622613997693773458036571299192888019230093756803135351483436521656767685775440663189438372055747358327619982157022625585401368277612744552552497832029917966179710963616152817562659019886079716654356191265737888514565270532833035350534039193637256950381137523782402869750008809685161727414054483712767136346399662095956368205198921461604018744439603687388649447701305065778567538662304156939587886965545516536821491028723379122121610308083927081701881461864254685318077828711930766456812315475596599413847542575754554697004093583323580203375993653421631970343785360596077207158357617369613217144597979771661737460494761165928971349845887524418123916461166491811777960314798066921073131296819860964573414749392140539686824575962487703825619154711805691480410129106092351567774836042228930704282670662352282436563472448361500695846831591714247213212904843694171307339702652394104155721554063086074208368796787221127874739959206073297365630294537147451925178333647091078951977758977455885652656773184209176949894325185524818823630314477374090896837656496746188719351732984661225122097204601349454925187017545869119986361046614741596862894564967639548961706838654309962337388822819644285366873697055864248681841310122730051998186536678868941598736399913442511776324689311446628098038026193744188303560307826911115904096671198838799965836674307766670624097466549932904327429191001640198918322501916206056997063556075797884940904454948910070460800113860037383317356458933275145812167933612453654271609908067097948521814234727770049902177744715944917048004357997655494494966746392694172686249277904426708693169259871580359630442379129712958806392211084550315067971349470836343257197046460785288688994865903778796091617106796334532801198873451883135665813067351926339297217191007665732603361040816045255767077048984420928716960718863664325807772049071345765422780519400064103298135942074708452526410685401923303284161584007025058073597996608846199942374237428598892464839279674056610385752124979412528561382161111722883341436818441492288978563432341206440569154819991017091058341125099568223329036404682739651205597628467775372265039031237887305604810840398210227979557509355554095425107506509853901448734372282561783195828347874186126642047093632579184903834081972030537845427139491289719320692832330831233844051482783921607142926587342044032022988409157088730984400793736025372780030715045044370356768554729925386464439882911363323528431177040182710751526619537100946235100216878108227787591919505999352692110530938910832475102127531800575545911529557381459990325082089788983657058592155465154774298435539999874576363204536584222461189985605823374766797920293113584248396946009213570170816169627398793771766862533590969166481550245366437995677875212831214702213072161497237294321214917123097910010925712206771747641756063528173853241257478258521557474159123764330129048986522201209363913736790877155190158589096875093619352214194255796690358723762918154114026922875197624749239548487723567444386701451426319997757742861663766408975583418984193050902830809920900789755923334470776786625235760756932833548569114074339523147078571592426897503297574909994060029584827853163921255864157137997500885333439221440129681093230740337278890571324604253362959950081570231049810650022138763639807002823342011614396470284862947403402409371440091592310447164595364711306166350788699348472594628931618213091833485592194214711547125103989832569862319771768523460779902853215439701086199409346713884166801280634671887975858800287513024782997508179682614383056707173321663679003245790708141277476515146715703881577091203351807935755170277687744443032852480643987180172792733786242594831998210191266229010618638424937735597259189022801648051498542048377008559558209251538293011931483239126781635565957679517729787796137401949179180403517223341519644725500517099245614468040447182356049153806373914698693231891074639579850136282395111172748529576876688765636342381905957544906711146099373782944871407124623043998217570744480582069871089530026769310650443110792482141640560500134697473386378813631583025544170543260798829862166718807844068978580356839913199925149748610614336652846697568133570164356818547521432740463090806555968005028439123832968300008359459224887327166745343337890501828291605872719182540748787269643390297483376771951312023909142200445387732225867947522178547904849513308992245037265391151348845144340725159326777697496861178568769045192420780178561749175836874202336493676539005640482133098950804354412788450956082091679020127656994431318798383855172133141032998328620475939260510110099995693113951625296644687950693233993619478626650177463308946858569538701916819516515025415934836272892648003430630259089349878634060013162841913881517773242270660335363212650849258430280070010761998157757590090529912574538152318940899800721067685796352794864374266868089243147682890137264673345146562632485379413550897127774521913700730175015218420218076056983572905525009077901281943077475142242750815446896474744828105066455166244879647711492020063982973532801601032410564842803469640929882759833494975327433493053541168015138878685148795691033963905520391308521779486881003924422127257457563601345193495601525586046605696304155565853340100017201141961298564748076287478411341060857345661262394025600991034283627580637364240610048098690548935040148111622834681078798962686563750170283331457434221944498921360828134762034415767024224225536767163739534672692281850783814410946996108209434253808708529785173801696352607341419814016541475281321748814947513963699933450756876547844229317990079258595561486458797028038636377108500314711956702480966827125689804183912929865330739354731508193279675163017448495006393062090667114933103629802341748410814864294634007491898167348778094479346675424325985791122475945875610335661552250268420855773406540941849099551447530677204805150606036672211715081798294310951135956936878157076704396794834650119524711155984349909484721778703424982674298134997875745961090808368848394800115292283538468140165244845541997843090929927745573821165893412341295510728278157057428729640185764186465504704356682588894513369444299293566620071803762457950515648573880482823718423937761556028407955801994448420286504874302975268677432552047979064837570859122706765453605182151937220014009734400612945457889761450176134554989587715880476748830810372377439291332424704559741795644160687746149168860075851214254139155113634427088193766020554011548950028371633282887215666263826809008845344801362527516530133440547117381991836134128392905729746139231716383678299351344292692499003147490831098541752285480416423204368327108417966572824088575078623032074460725107538649862028838947548983961320539439022964790664458102276419729224086806715180055327046536720072009286218576492433439347702481440237686312957051919902595273561371417499898734184512119042416099130115615563519081308134624813577232861314581466421262728823810585134925286128540086631810147805598361656463417363702644028902799306396011526858628845860388873836596833958375516897063028001124898049630802833344151234323086232071803495239046465594877243806785220002527945914040148654431093555959050969524329534251295066759156747666874799767647951891024773363515101694646992651153271023386218683212031118986027187042120061320010700347301840903478893637336804419208745290424666449634111171265715955545695482257924064987813430248428980599725219023297027847457844062154996792336129703378426307008311238005154518089986177295683240398425123521642448936717287012505875028183658179421514728577306837822160051658499157748388634323608135746989015201086746999638961910938403763733025723142069822170238555489664949039382343166096745897808206574469280033157347236090893221423893034530252067327927347076859535030969887857117078794052895627648711813582260425435145535233017137897781713672504136178422962326419482312826962846136404450310862402892285168708965736511780997042326022468079109261293976991822984228276424991214370939749392058753774963392579364637074780737239185957331025251064639958669362912543259321450157987860169600762263896218984489290358512455215119475143755350022845002316507718452989720596485988799802161399068957429024506342224228255714364339177356766502055031455311601330361001365875517811826528328950136964442925234071259388387040523410749084535093396058206130788552898115027751364441113302299439798343144828017650916989296357627247687482461048366028239749683479799047111069256056974553093775405495904493242657110178321690191321274255017440975254454362474371283116951277533995668096926439246714483679386060332003037568370592669320012451537270611129383653395886639908614891545842577277721052109834696986256835111795397763815410255781686731146073845048790209541908890002949434399212335963167248821928102006558545742342435443235946074155085163547779345184946040018771519678251354553299124799749620117893601915369673391412437289482418714805878202552237718064650474306226090916577453217030259168564672189163281546744313941983644716257999916528166923744311504735084635775919133276987012107586309203458936125850227606962987475008924346908198428302629369359663429356853348457907805829164370605559981005393326703885066430863630153423719085749957170300401527170377543375310289469396499882447001201965172829894112433003054749120271488538854045141371557946085235612833273650010193820772840142394057429958802046768260850757989245163900384894912795043322525039317028677996765797267004634906882602638791684960536784888257430533853394114916495905315536242301469503253986362062231468627254003923256415063073330466605129522976661808932225158422737781916956429820010389223921624901667720359019664300381371198121888066334271291272940890100479648718036982078317212535350087211480989193939702869401781756985790599223632058205507036410254710421637518450916428730235946747528189703907670541507985659448292946011103400996036567563626330416811080179271053034817399318904520663565387958023338422911440294678024492642096278287170980899019223703442954440438871502712742721554378157087963889702722648698026420687918962758341663083652093044143610059691981619243651803044094840349643541726525916422922410316428916802466854521284341754526633992365501516779975638947626009010188490775668261222289336940003069755826058521309255379372257978889755812660032604597159459520983245519529878366816687653631463562367317434346028734498442368502621213592275982502955100777624176089807533406701506491358706896846447201166121501585010060475505225862455002862838807123315467075224223807837106717931930248644396993721342363812512918335513245300173957753861736198845456919906329254224887682395725849824127872834647908385632506668371649353098031883797214583398205990818853641494213179665834288730585811340935226745684970228875216654748139777154382096287220300799817085727023605347464188868502810023179592549057635398970279805219303024929822593959122866610563562997080896511562113494807108120755828599472509845735927145385314296149295002238430238219494977137493780712351993378747026758950603382692970407922289734889067260615416855851858286815444256607019720845037800951108516669985532115270401772528603562489146611551401344349985385452703650853495742128554627914964669909863428498423662788395480072077381353804534262895040512819443763381516939946666629007704652071166967139074207236616741815937569975395123413892716006136315034633296337248580268557714526381215547303411020130520076128195342362280259368894268959126840940880189938069779001168306867752695709176484431617318632257059183116906616067955743118933252251170234964305192415910391774394234210347898737215625735173063936751672628192663445991359802371597354697577177526531298975957053363252122378747796634352308597969133465212524062282823496933937511412788266182574056941840083054004384346077071312640702549954453892146883832874952025366378053205012715515053552794771432604597541737083127254312763333798348025408839669305207711303047762858004935274006299251043962518609259669543519533587892031560965363345260707027240277878122482915039319249287345782509570499983234973131023088397105933060353695763766414954269913138358182199090283134220641982767439943495329344402681434314138369481242716469843088888103975254464440390309896867335778981298453601483667810403108847791612070180968489410955756606801025061791417523905513376623525440636326355073206781964776150562950940736344678235162224425605487018106169667063535083287347667203374653418113300291992312467984592856518179583192007602504721205724394362257154745257422865901326227820415697108716285589642178370121819833256601184153818130630881240685522714995994698412447768855390089857216127966556579206684420547311550256897747902620283361545061210801678941082349800647091877190185108407873080454298096481526742331554024102772574582416055151654118155782240575446319333879950779906651828074364352897637745502609985523749106308242346551127823129712951784391066431384999519397866971476198372812070361328998232944745325259632573701622324108163363958235490276144896394682559720172696797422560983527059863737112494578210111706625719263670627077170417456402121187860358136001177640977708110965367508728051219079175223988193013775442255405827809797771674048472040711809423631107055719853375081449077147055526299541877097649455056351467566906609380835299612074266560058347295202610031768725413919797395202123185533169437201055174459701006689551500425249588983991702956773297524345369391569376447039225770847238616236423222455778058916652311846376026551510100142453070752176994093472574685005748801833033802000869754074089361804728513825031358274334014380679115239963541732870184548853258386690401879355707178137242401452258388499053833909672044561482818488439325421186435188157634433915403907508672359107337451882969295541884543282012324505553684682765407973490003975038881862862785396449302756053968818958350104203898933768817589840361171766174153212543979163572800983812583136593739174026218742022511284750284689015571391684091246753046380467983097064064969395738608469184100596981075534086133240370135026238916063190905167398336079385697865576629895207135289430971116390582802582272541631983709253520484933869295292022957863788112092992494939312921527526441476335817990007236174120848012106072560644147175687557747978024113850702132704770741811173985832565461627110292364297729627943505424738471076055477825539211146044334507916767429421249728651307397391419041395648110367832673919637598737290854334859322931640843486633525611722106548337129471207072446338393162605080002968099494460573896011194415960900237411812612524988857626914459086535447796359358236822718056229373476657874348795382888325088105236418825157595322116668568839073324772892887290615585197226295083253938094774044155455962797578289481136364596765170929958471055610150972731338308110631838291843366026921506978947396090704679357063177818647579032603936711549029447083867335137750929694362105383835726865073928451659971318300748570090408964916943957003571902293696172172124188964118987411281492286632415723242790993896623428874926985076111713544074814847687930418994969361004562185365120477025986710008530800734508150125630977717639850732068026890859815758107984130441990886286965393842584013973847535355230097094830636508602055988060520695113759683479156465973923827172818100530280445715497232608015966287650568173175284003212265587655187084274149357309569653620427776545079830905520995717455308265201423313667805379741076121761075931340910460120634316438227988145204729044055870925789823678648595274290575051940280722100833121037062720671919333459087328439579756746224310313171228973236386801796995185834543503007868917389186167023411886275097249700134899159637022412776495389923723106390542655703758331547304251767447785959409785870241889343150042534661379392712962140302314701492717908821710041505770738240343870717081502425421883679311624775770044489724432744151046359203571763860586053211297047074213474313859376730475767171366614134343046664788704466874733327376173327373338693670835409618494233212744918024619722144306505821179123152596235265878266504027800757631616906360424984903903806497653053914291397424627688690572686925844190074510682204531702067621393555340048062454076203841428365223818115933039529171414718667289627799309855980717533966538880682471365679321538613732797911007769377788838467431587663096118998346306416365635419694123854304102658162515659890618745859476738772155886085588542904691829660369023109576912322988114853620753866802302139455414380874194088214923970685774299469700442062865652741026741890305462040247959446382385082989204125210337217161960352124463234458202835725191872541082833761535759845283368374408329789628458691453693862673457493285336355641172103032660925595334675564213833648074804724765404111903080194945054831032165281857323490893303628937475972341899335866809686081448192890881386923691784782224565102936308734550324886324572635275674507100508049736013055682549479087386690948637050684867441314769901379955484328790358933740077958376506618599903789511166191516313842097548114453762753283726177906791740413655993606782665489305831995932039759151790153843042328115467300568018658463905661565783816656857002036741732141800515856942878796609008534403997016406749973824186294216998637106644443721419421773318553581854474598202700393675785355794815091366915430084528504262391103014636322625259344103822404423872153292856509531237606050010125855557367747703461566746780365029559030235863160232484995683468139131404117457523174723446990356930453583186963185441303028274378141103288258523682637294780894269233667857198099077356300317037220925616289273482273493425225078601815426434763302947206601993793943398523548852417660543186923237955144744209652301739490672692244067875082977781670344311708559822252017010534630238097450987656313239906947098221481145605913804255877250715362603267606878097312517732533509846139740558309343249681744365358329110125772574044159607733068042249079786165361138276294240415329945164394802422255150045306685863341335005774429691250512579914146604912656240636452485859079284743203072435212340646913232214104569509804664933184865140086611161984856286405675300196009826211085236434947883190628622198180857281664395949788540568580056137884551519728804847453864965370466430931603707335381248332443068316147998221366946108084376236556324457397370240403641291945371824107310956791172058772885553169206795578177571591395901126808856455529067638756010368844604848702573533669109522135244825558512377286479504328466407619984180763394357707843057258862125191960099971564196955225919643523081560578308631151958582954980117008269600517037430964452188054859064926172503964810215419227194856309831681083584976271708999354454684229202060487003956218688509080036257884124046107280260202786860041117148700156199266330108006024173831792914905706028259098981486158427735750071158680278087042687218876964514517459030987693528185882714441152966369596775846923437282062163146680009187053539334537506650912689051950382720541581882351114377677269721506768587903118369179918327500964133360523694795046387273678097346486355457934020049017173336384508155078401982055100706479204843928859652231800693078633539411953681297521075863544339524468486723773698886818629344201146411856061877337968220875701455072864902706751061705104675232512364649620577274850861342809907288480586237164493698221265522705874495270798550921895872095713019409530119127593500417150334807824547405058355614029251072367568368551135363207570162337921431887859976539748387186295243924874957238015628587246590699939150068428728203690110327285289174574375830192160854271283521034053446943753528989008867043578059253635235307056080456197392845963603819107772607760363337538104973540647688655183037124839643241262899470096983933923858558571278743012285180586150502331185019107729679823314942032397750086911460087739293136096453974850577440940176995682112922461416257264373573196754773077626536552901427467596845765402781531274542723510697783193810785241107242254801607217379154494623284260464256877429402410488704960056805152947563145831277535086226141750610732548425215080590906755031944211910110513087389934177662180836904258342532302449578808924403921176491277376918410220939561167005189126814404691272167777906338521137687877901130775388897682792051395475994105787635552590191902884321917386514801280518616320967078931116203019621891490658353390180988532594284136151932560821726431363554589624118457352072407711048718976687081140699864004992141229497480663772063635367001766042157363101465798079551178886772485611029748850219027040204771241061621409209280018748043243445118121858031008894379178730199786457693820237197017715628828922039840352840365200711899923085171463200150958918653831688874342860869556763433080434799878545569983990912082349271607762428944748702022468744195200735714733376786519182694786323751250747783530474952712183993872949451223644945307941321481331204498716440003394124694287159992594380159869555997756390869752411897588119640045330172810802265139065536619662065315633493313786111590135783177373610221659336774915216735302285286137778680016786984324078312243225290037228402917822150073833198199315606825555135462646562737359510724243618653206430097062860959866086829549472773727101964151137365755923476302409999616133033756140664544101384111464239177150084191895318739332845561311927568764831748208493491119581571182749016714363093367490159861663723240364330944836111320719556041613694192319850728487939195753668181309609580746884372895942772513761594271280391309565564240865094027433533462727469945131363451761775843749323988581064997148983375860373006448674184407144146057170105818932128469780346192029046768774939762385253752791329480915558630652082261948026668626001356786739942036354639723870045111825619329109423949867077274554006631857774693510420373119294592833586047964231268954730660232794564921967062852764995166817338282290757973450822949925718821590217024245838600012207945753880476692755884817010551810860303014105505299246911063134041798330417190182553929511958485875229980313360279076222196059626902376961061905958393662542271428326277900232578573795140538106971231873653860235054708717444694267029664640926067873465139359555759759003843906138158506860661517611252168685928958389595356501068700705673816602390975855813057856102605271337515044243644689673433857045937919673500540778312238886425003261320641699095727593310126133509590665598925210348808248378242095066593972247459559132315271286792991496863534330395224380756543570132989468370673982735643187659218190548145991352215168252848082915023660917453785391475277522677355749054963249896450715100672520404613662174382203227645563865548204395843152622887384628930932469217685005857166232684032824832923239039377927281901877396421570441854910424657210789497566529008959154365272679051242542825898779447025254229180758064379766659385024684878070904459055204867925279386203384909770299034104582966020655098291550541041183704065820499123298808436206590985955468900077960724409890024762661537189553769402686320984229033177260314814807766547018168626207841826981051108725722864826711834713963293740612464883093896959120803056318852700727135566286656631123865067376443695322529912387823146483714200354090476073357659816057049641306349789804711778534703959373154918318529641605387689727780063386090435365000031213943816541898777353257706342982372844105153192896324314306786813896886765382320835022069530299759565827400382065806202834636605951093157001773273975834246604280722976107557729515742878052979389846307121414121210421787844196470474200964969773698534766769969573965859907127388824620142828558527775557253918185946224126877404801779261611121075354945209555810545325809596776195865510596397037487846340175601122521599210478068512196247085139422467877452826886716834583854102525144067911001978650861322294862844173166366087912107529715614847490539412731133046257971808784460177395850075616954031648786314774072407834390556369870329486284197739776693071288353230950261301766046107290801946300343342837489590561714754562326298762688337326062472599464801876074468315894095235659192789664202578155165455440187468771274614868289803898025179694274279449832527817760938085762204198195675724594065945426550448187584679173214047387092171492901753790952824898958721526762595551418456100818268886423310765595432585510890620035260639461052749414460918775321968823116113546230856672594425232707508237270881245035869702705046409151498733007085768455977145348826214634945064423299803940827385104570604286812774047948429489552188029774777477335266100811283965066022857392162530098850050572611544096371883221530134607786127977940241189351947071444723056091534067486621783495948071821482866197197217846982994875333390591017089496333916146528181757146776320632363390153231721843142603404384636128603903261187757885520784640576662593352374937363572926641079841836217156951742525991649298913518608698264871709793561252340091969935220512653296254252443575553182782624726472568778897479239853670111120023449656616180213462843778059398159737389955001793311585124521667261956215203099922459874520269831626881175609941748659454611024453897605438123827040636742443608188540964621153210233204706424206362126223030578593305356813085477539448780543671555554290926114452387996506162879415532510917430538579456736103613294271855120348362372855108417523178204246363368864516396687686356881235676274258632069325368081831645071683651596008198709098718465732659221884409381822647125152730373030225636242383967845116809498381551807142672023440875089269011071160013397807525680378038190157614251957625944598727139926795959236229361124594421834005617267750390250352847880530543210739335442979464453985807950373704925913220518544169245917157269224914728183090197168749188679160806019944682793344182069053800395221768614943727169626184581057991394647138552195651525249271239287973708004456823268845292273224848480923171694955445234104662788118416827014609212698026280952426818829478623193557604009614955007601438158021979551310506700227316373978354479229568343736691223028736007760878856439464034249868751579629776019456375277138514672811688513034661834845984567983556747415272270158528534750773104604645123669902280815072632363122262869423602603673262226619790202076765897826939393718057847130755072362342602937245061762282657467835466585896668875084268945578665902224671879491675811176110740932663463062182284110425350554859992475502292920241308203084107759022385565013904727946170368818104111897032765609050464338343191004999281155183497418756681682608574603680391041048283504191790788281721438951508810212160310609711380732905076536518540528689571978371691775825871833205623835330265951787632165711034469478193794192755973848610182864784458794904786477292779164298558285332687553962781474277577716620340581018275189562176526754935714242787105615148318112175586626749855364768580430426037252201855407511325128783710005507949983153763415283167729400788210094889544616228018919233771002784890666861159537324022890741287895532913603152946930355556052492198426591184042096968564067713026711314151241655869781304754526471304207523503417504572344538379051030471358984444462021727243070643550729863754509202512577188979014279311633509688323643675814684640254838849599952751137895143247046605295112314198547716999854029252151382777361766632261369592829849361989202997184067621518693486745646265285265607581111059857830213658533373581986792326392150944578339090821107988913601726291707833119293964761015393382781615126356037125208979690921601191507695170436656126506350875334986230080606826447226724281370485984195353024059902178970356494757870493046466049289722175068191372036067121958164662199877709643114980733095288840040483344070678700808136100903645520241884801523787680154615414544564241992600154719565575250635647435276889965612518669578595877045113377619276675477594087536069352521268459357765359168445857748535007306026342784704351334028174878211146740238050584703286561366719223848189885154777825353929247573797178254119396005370691271118581290054164948259021674796881056281093899044716815886767118198476809749920958917619054847333124962957377339775564376174016346098594647269790886269847449375018033036614308384662385562041785120864919121397763275053525852326130738378141593376659204377319861419179111196494680312154756504124112464989052190245720851825533946723638649426208101056925475212952705533693571347661580611056946825877405687643785804936302267772564230176907937242407810418411807085485093090728254789827830827365613744593311964418088884302060548559689987555982468574926503219868627460491338835250073177461849747473695753163480328256307799790970854839363214398488846531513886882194995589239800994372030216672474716110952352681820681506853260842164619395856409339337159568269105081475109915252789512629407375175568234159686007938148595357840048006701565298337829263600092384709261160334769959502935608180735665014675977450402903842709227712597577335652855486651157142259529594166070615488910997349502992966108982644802135130606267338275842122681367176643686623525125874139726878738541163673311297183887735239108386947333613454730152728535215203016790627500954460581846389368247312393257286943128696500279040264843386702600512641251960022315211738246975257704502879936696433352442694767165371157454499475290288073878807224268037902666933732757013921235319855226069849252770527603080972179639207600558730385277214117175204444606642409962457590673482148149320815218660567871669063282950430252519030109146893831356530007731624366648020984469561776287530495670246165377586180915210252420741406829057733884807279313658048207598445901732257692396918379759858784933058828877854055490190991700183343958104530928353365018215869120015477596048818476624311565234676002522750007282217801526477783086633611957963170721722555465722524567327439107240078333678911434047417469029755779874799943439928108460346940485524274449248324523726985075033525732007725334699326520803469170984317384563037596344314035303614025808475928007682960957871658083898962941417551621571088583283700700231575701978433734811880216187115859382703393882370092176379370156746698298740293562210214161243840108832663031772682111038451708601752112162008942766382096704955621015382988820828661788547894687075209255523514058287002170321953834047633451434826975162403173169057233151888843145816915301756066142054180951046565361693356335106399749945589788786401997290627608124218583953508796677465099134083806247577045787498508014432859129476071026576049236604500155533851804360823180098371952332713429791561167454337834073631887050670768042254503711701451348745079555405110170374867700218083438797140163346660871668609116619944888648878651762362156309823872086938120883893577364973539021671519984248453413696229506683758800228363796187542619148996984711341194712646446552498699912492870133608221173153968769855635172279279994041945673987792748760803230902186246719162276137371895984322090842931583713633923166953341661877002787831905359183213733231085789008093701107279222656140438923514392664474701310652081200238363495788981654846640819160960929250770356031417962197916273059714641397388463003771933492146547003865401579484482730276643592315463319285252458330529200922643626765697543608998266068998593106096269263068033365028790660340764046595901922242398076342042497501035322232788916421814470086679256809490468212107957349057785530884259436958885702291694422329962007346131206454335118300610953962599100201221483477533132472675220047486599597401405143891902042644206300787340802213661494969759933302813331629137107284888869568058414628886608822587210178361428575321178373740152526786647082587813460786942958060997126261301155109850351062326646205736179612979244820712765297650010415748367247313963045504487112239555741264803942236739344440643037952161840126549709208502295419865797457897573621082132795687441622185982477123541850362327560602246004569397849822515087115341109205531463706654163203630348979361886159209868084279247045572266924152513872444852265184970729022261972668451449038206098060615645777109812825416487048096145528535330911041267302209515517662702902424984329926406738174704795404686964526545940523136086287103354750660977581244464565095881292413924806603622181766125022382167068002773250934774676588293092524298611480962904277432404019381366588877103881135337886728321305466779495893398358649704670650859692776082112278973613334238395654763357948098574745299820237456796138487312019332487938379046865572478172228738399716480036415203388842071113143224138852753806001605191842239464961398785601491004135024773333747331880762275641979861163308007605294405860163535891757939889827036471041816251196023172505343529992403903056721890523384231564985247817101093785334129885009799461515807931753602550974717809395511999248174666069645422866281798408906143208604392268185247484860483906243164373218979885391972647727553980743482625909377104149640324624200347502818795352052060975372897505481164378848161432264252812092695466649073608928430103493213821883092801931414074347564606912163430625129189319790422591581002253177742542495800749382444266743905582173918312374149512433720310891766727157931065885959574279642366078177729335342082266913122660831339378081625036330109168366327094851520899366579496786267803403426160066403495770975775405460055721141592838841316642243318250827605476199574403259734870287493436078901823053134663004656539252692028616700032997410236314997514441358830420533317315065934281021442940830208670022044843802364963677220391811379706345403491828176072236222112579092905195587023851125785191278399981718010565955947029420726863003866893730825639231742949196755858167455680982772582195634658902958932535542186104090722802019835805453906776411309050893358172847092416470747231648730179708266232224667764333290301777695721682837105377869208179111979160991491771715630289616064326964496919648931907642596933648163253278858387688194824333668939467131764276105853732779848973058770978281935158327830323529751803180439658662983241813547630325647456433195121978479355146998995299695376562616928087994635583383803333040727901800089170122419437634742258202114659524919643225264586604930527219675930555228977198417300305396089700126329830662414978157338749575975346768659607971232538093014180827456591877326412047709040950349119451554210011372229915655300516170936985585747682782035543460531310404484555156902331569233368393037128090421918395426471392239033756658015009229271075413322921592841085233070132123443075876479840972286037787302633243965792262111352840584188660533422106272495337948131130921318983344190429834375574113653677311372792447265123504910203736699934500214219364647476378907988845746541438406541052889901017949212299014244251989140459480459585586848121356312232116176320527393936314617796713325016319923232388517105900881478338312739094297290757415838253440815035816713434206561214050017883782640516964289053188146083493024171551967014419418727854104458404104131544265132391006038562793972197158127076539713666148890869644618986236208199940255602855637793826147584010483783189880047217691780144222707044852891040249047969828211304559518663029579520959293447451313016692585976701029884377586559537104819255777800759284765121584090992177945564002774328181808902967192246374867348595696740192622605645415002990771997936328573193010609015940828445931257381004727077971264938601969560853929630600930942142502477645300707953939766507953044592939100668152179222323274469266705423176539808247303320128170530390107151149134453737393230533324897315344980628135450706769784305262475006653529058650078721253029761152631543261881611170337798484327858211479991663232930409743762625346096436009538627698571832194648040440137047259077677604752629707694445314496185538476124425801926604755475459018803494568611980618438438232873430773228981605453130795255551515717156510870872394554183715907457484603661351338143835158379454048408512096970344244681097667187852060989202234877024517175188333994109824802020693323890673789814294381792503086040587249875060052438331782162317171940247984765404375613073804389480697432496759012932015217843517179429139942271845085035471034228850264832571425591315920217930419026292913799114734127879650576208748872895951648434165656862999122560979897682454397946623394762981259961643355174593917383952867323937581641839693832708724177272130545046339529844342281802171771770557154377263545489215133806792996060745089986424475280290937931809787785318945147326683524044213818839524128697546229687657656103649100967176282002624352823627267555654188806134593295478053325615673843072905295006302715465260759404695026811213714281814031038355189467329222884600344410500631376843260812799461276566327110897446905234946584894392249999706811160634963724512438193320516325937233901821923826847757263508770016507331956796357749177210112686164336115473098851796647879800510911450528539898278884782252150787374321136043636482528777115792250880753318383889332427293209512813547695309245809560070901909223136510744335664718994049578560173913697254575555943526195268192325283533166864070982360194450863213700029599214512295757271835690650504671049182665195982276635178923382671513553029888854633982339211259924946516094407296687031498627657786163499862464357717970531729402099695936814737832815035690178934667033267504157412726973867343133386005347432102333410062754497116706923696171839923355286934797472424133939277879892237694580797534300984246258111600057944264396686041335516822744896293666546997323606827167645091138917207502012458633527636347863933657657851659747477811259683637809907383233282554381667986123770344986562497736583661776472329368238075885264999797251182739305517458776026355743419157667628191595566042713873032623745198537148778490549505567491209456022544048602546405616308752150854434321422075980011372812303278881267841912922292200615978594945743862000125846760649494143218520617307104477803868489731665452300184552656242657086776141081243009640736113638348674306329585092076564311951680582159864463618460299888387816406015958715723273061872081481527998362916290778797192724064246851410512888612156983810016056676839518236627519389060459634088413857458220155730399349495301352003725732314050821904154030048258840789000565495779236162988393410010587211494633374632277812098603283397263558053750192353204074552925888195481342314943579191865050050892347282427759469127329799071637614132532540009455036330625280528665122857373737088639953623085697209868043124148561357294548135019146321925625696005911804185363272472409361617503211844241101176483408785684914136551688720303610983920631717909766446395171767582830640160539093964648510109150109734525566698131449548228321074409686662184659894334275329296104354182068054021737072050593174176311512652859200246312265965413792918410043002728852937730070209334037261338409623304096805725356393725985490875179614723370694887690528188358330850903572340821013058449920686319066644285833991655844707158910446188954569136803425577094020112269160139418925450120104222510440232831376921130674535952036367940164024158048203492850464994942204458723284437960546278004037283068659764016272824529433057352044003554035237407383296360661041126095882395946646953036363059104237932572653588439233827396691397419110018824590291960798070858878176302520427532095801718665675850203604372241092722070411392055931793288180533646453599541500897285551360957095725535476125545656576146077125122679371783104322969668466404215945599095996200399686902792461154323973294992022982194548972606470970020742171728264633345209729956459120460792853371676223064404157372016482744630354736305004711262059824740800933590727815602112137816065624998806592899067065266861711700421490144987869892419706103248562852058715684264620327774393431164615620639845284079137146998151125220746291117487088279877309638160085137925031018142824430773676483162203435018110124501043147114383024430509651818920448161706286837343125896474351298734344842059605544311145945748647793688262381305183046386615444386527511090329541234635550433042947143972446511082393577828591939088413902623214104445431855338316701586375401955531980391657663292563349397625047981881624928513177056188596703871133423074884787283140801989424332136727180172240009212323006859513176008010824425944960199309603447489327858423953315548757734750259790709319317870331169790761700922806047236818894329388120785641278874914977717032437084687682896134489724629643614123202305537420301628706525301130245290741989172231295872941113611039430333339951569256903746216756713667902488846964870960830842432842975242116159011405704069383587349819017523482006961524841847763605333570041733351586224688981376199501000361628288395375893940980205615613106530573663545859814711367587490106183700645936101002376591967251363590535156472210350038861985389336815192354782522155218140328012103654306397219563634770651841531882886115051639038005228452730499054898151935892460044330389666667592436760154700756699618833172732669522895210738248854771536189311561512467930882982739734182140431494614254363297553406969748051461141187609640227214828987859295296513464506049826697973683866533596616571743961320154739452103901585031269638920699284112419218413486969718392011207140968273052916619815762716856857092372991059413604301847140394610651530061208492038347690044264749035906238034071170664040822334547547283659099736828287870287344184520522523911187029951332478190059698589062556514154708855686317224225747514044048717834891292130543567705200582892272983490842884839594618416205971599038469948146083149761878573100736051933821865801519345457416585521605284937552458493425263869009414812272508018388828760346371310870359067286791621287185242558515008120493148489112965080665433221153577741099343136240099937352584535764925129634095550286719356828263363477919515037373980411704788265963603099446907788116166862006401539434959571827953247368141532607829276409186967848642848051359742067329374923328291629386347496799061014439920935041076718291903664264250486470025700691317956818208128829958573237986989164254243066514845735011934122472696732757784197424778305008907550634759825926194571743056154144660525905765678861063649729798310251051587897485337494133309177036112807695045325913196834527026201227445896432324628981267766409056829085080677165436551688464206249495929759266649451717634759059561088014986344667462385243993488009149172752204130430204906171281298580891642900334229390934312792336205336827452628103039100256024412002469247656976798601567479361153640567617987172422449514392460557158599282320594156139695616352515376353961515454275560091478346909695206093767356865889209738657124105232562378487623023779706135826197882760630407416897914779654148541941321529472403903937885456735021781513854678802239797008285953421386407748382989197948527529442627322413758126053373960066991278893010628656942992360419604940480721239539063797783214946836922834493695550408414735463549152784223411580574953612725852984598219292843060592329901102620508882025080909617858166152150538698546662460747193192264545492568444840315343908583661429124853461939562228300798005916176806210250494373138311974316159877142768415068177257330545146853677058443692792666198757374570199530665470481505427797921416981568913552125709824940513103675264508524360675031105612041480971725196224568521322451053995432896499858312761317939684817745884015714989742503343329651872924230983509196929429659733390332942991134173947354831636599108190262250388870756925051376796389710354685580080097697035799822128248312341262390284807280925565883402882065714136747988671564768750122816146487985831237455735780194373262464505380345770135688133455090666226331252320667043269919177397936469902574495470553834846437631430359809097476564478190666741786828050475206302251899891416423822190642284745756295727046540642964407541167911861236218867059164422903395321983336899756361345806076234862604812629944673717275099783160733197377551583642220590882641339561755206950645367454470077514853077489830132598643924092709473140341663392816473471200283107467433206299954200486337838915437187332437036596249599782777205414197694151430785192433752538698353303296318512170971147186563141389712020691266791514599205214259956310230179572557284142322390305048728579625343730673244802199157378297789989664359753733932978441562958607973173879376989108775371821577992031672378628963842007471518670048397711003622266554300298347795692240575938993673395767242636620107084059934787227087598357706131065810268616871465827970539383986320239224699105459862537632628830851014036780538147250825903387050278125436947088956351667977129988882080642716323494078011009471956570430556041608435500092431497809151238020092335936445944972678909309012627810708593997125634540507782681875102274554371571515368754710213164821702263307496093576033162894154556877134942784890089941349647824246925531105308102454459892330332177330539771358914595620903533353914207522802809834934767939575459552095077967902244712424615252511162102994263989862514165417021809385820770276101900609176042382535443496600505739325548774748971903777092788737804386913070720809668663341098158432321853375562190256670422921812532414302687346419607916662864514644519538883245097088400329994342709987336743561272255325551415261943705279756741111971039601983787884600482046949567980746688806043216749542192774497526253094661350598436077717382577107940091595413079694065182568212478610810663985461871055348833484672763866100184039441399062215080655228083169555711998160500372225023965080635472996611798492410633942049654024154582879825106526622003332349188072103604880459069973339869679358887038940926513239792988828071202788196734669599223756897145800767564726551977135472903163977289154152209330249938023571832288981299968631537977978895217440004058383317953345102124422703552048966911942272686871049024243875846132630663655189262114298259383718929486126689658824064206545381656028013736820336907554965759212276992039231636900377427114630327783058778537060405027861652318027934338174372937148989546100765791453788016909518099932146658932781329160103721284709726987789365902841954174497984159953841553526183442791796140103365898148090493357094537816844524663067388829950634783634842799818188467742726684138248718491489687511119661343242914226428439663389282433874678866353059202681076559329614972429324878294750471114816602236884573066175845088672731865351501713264215866152192460809400905933077823544581304462074649548310970036863002336323516546825349530206626422726058805891390988878498966688239379115028789076573799899415424449477685047345538595376480126865942229217581575484444856146503750084388225420016966015039600047667378993762804344429020549769317530709925717814597604351899908020406603331257224455080527970963859702476774478226118506405873119614922728743836153505322725848895483680144384830228570598287049348625666360240811829402861017862946645409191326895619528711555668780918080804112089304632669518551762493142099498714199212113557469817071099216473757656307171541311389994098353081021700759037582921627274440116841399636430711343045298335607606726157634788447307222188285681752566269695901584745105131515260002169771848010926761400195391885407485625240354859416863249701530545945636922320334306515068631221035703408888358459071784329382418206610783367578925243638868050845354849790783672285887313954725104654038050873460663161756564094368705012207431929146454112986836577123989980055491798954884478427905818401333387617006237108914365789828995364480755003898277225994903042457383533598625175971026414107726150179735987249831695087991439437025061921342348520840817732423138629065459640119586412634463854321304846064361145888190701823726213649251935353823670591644823605466904477205415222863727302356348929942937833804172042742224253789215735346882195300178749952300826322064970164701725825816035837023949425477406958360191149279708027302040093522719134546935529456226689871221543617899305104381236808471322563439386415757736085400188312678184278712544168327197539236334691085692249634448964769007756404252359810799383496974836967940859851122448494740764587970350421253916245516715931697852820033571202613463231520937872353839411520873916163814024272636906476530499549686643599477414361309830338577164160003443188823504539350865424357389749363238672310472200156090615331538264776160091153006116847371736243177947196561941193641161606807537490404877434292009059128105202705957517937221610884878988573606365324081245114074950646717019558144625781333499915717301945889239719046157221387090829463612042712044703591194642992389668118102890211080470708133280830661988464280641604067213985389309309936885361370908353270276315560173342069092751619057822302009255854815586976744770252134991215989854860361367180869275053685088836740199174607678948973141541201373399390306931922263050445712217227979427268245289165275894912653942786725931569272798059992572116270194086942595935542203802261708104050029591888612873186672464375546297610128555133303583598188595111308248468836328787525939820143180978259729414402318973796177837142499596313599510767047900505997304957280195948896132739058579398526897030950569784925830567987212206320566129081209725278372763878663577675341936941717530676892206483857790439875172117285183098282464116091961268615482763371172708044262518526017087305532191684734588114536999757667632566580395618302376480884423581981863084750979396367507134518189063724165078114411442919969212262937170534716133600200317953446913670852772358520962994459158950462773654658138439182805820346000128345026373946185971970548355047087089209113292414960127417513444530855398293581390004647612237884947426645106392970187285053427610651859976719223407829958210962102205679903458151686560544972523370480699265751271227949867274672306871676795088318022450963605408461914210720544996937399310331196442683557586223736310952169107655915476918083183761730658820907431603955171576179148567730033875383703554174776255584508715613354714174201524850596665183808017103813425330570493154271938283752311983509074011223687961233501365898456177492401548407545725807988208923062276087685774852278732005092186645017702299097935357786704642835012712647242613012591569995585518808315191885485488330725852060217101691406524211170685994736658640430610330951764276220307878819480197369354433924257412460035575511250354637250966839042045608423844466840927530138391387255128536288997280050518033911036023338153099032146540397134871163352894923825965153127551589187948283601161058008673034704858235429598872005523981981126854401602574487538220363100833098475271893386012556984056259632232957915377670422598187999296275457065102558336798852482029448604498599875583997830550902181049235506860999016174946690427655575334062410591072585429601053778025681928360930513475702858783084471644420815304873141311499762050012767900756375190160717385919602533925517686106160515018554540391060611063065534555371964621988154606533348213279515593118558795528507086655705266323168810950360660865965912477293769819522676819267102818089529096292113690953156075619847483704158093665191185463386093673340104820527819577987455984250506814981403148969113137819763862965920389256862346842398112554715801230549488209088621312132359583736421881267118076821035387555121825018663451476710827053450172576601196134864266847474034729238642661775402726480033578367074683459467185334934908234305126159805414956257347886439141170179344696698049705482455629861963293477653205798426309897958813266541226657197922760201888929628544532255724744465537506867653113223161738059896391328528606005455802626505248213469693833264883435412755138831759390502277735889923390609928311261034122737123051764560691232689914071445873239695969068800191972366260178458388673353002895219975755307730506492624516850909477230234522348428000111446131652573404531923192343030231222134332441223697797976010700877990873354080783799558920384934263506222194818340972701908486520713451243642793513619538552919765808164877610832485561368416563442529123986597506359983354831610640450804784188123266236806607405599590612543564225238639434059245693430495715686373283569483816291686285104876071050805248859350543326477699713935848034104570359326383577448994591179414597725709503826933229270472189586587860196019803300445662366990888167387819054940781489274728036660323520244848412126603747827137302405099702027653841083203929562835782989250652472365675089511584908160709879675025639284721312423568320211013449870569805376418445390972565374952675854877747576281117867766218218345752692027864846390587193444963673602751627762231131762148526512211745920829402404762125465980646274661946316868274472691359892366397224698877266516237962571565597956785951112310790472950480966894443135388542990760605205311737128232592677349376360194878642131603900892825849673824000648032138103142054485482371524260873136187213417896940635897816308145530763949795801969651456529566700516039219128928547135468818990965236124880973175910056710315051039184156056810743287402204428812465839038500212383021636752235400297191712179053225049838743264850482159941032763282270049025451818321580814275994322516861665437690406406037903412159732250075961438298533594072327473385675364554091194491446090780864829716996759275827577559450813590083319668739186830854364691264538564711030454520018887763487536068915097017714484369927880323330413060823903091635797291900112455903393122604339862939009040604683308029302360148811410256099026631092819537698040491330061144301979566953674419854991344013511449202482309467998150096477503154318314921024052893279671953470295826786957139513891897868486226227819220069007874898715240928270384386837597115164865279583548404390467401275779973864958730824929148554610338327719801959690456033278818621514045970231657320208750984352182547117160716477948172523042689885046515917924185694998111591318587181504510023505706395445443413852597236498345180807773654413220896070327215254481799510062358152175694367401403010667508028013579569750904527248730482859462200315852151213531423524578820081825633190130317001610930545267654051592792398769735417845463928643620580850010628599266559027594484524261575943844178897524916189682725873784397287325833699337393288517751910236725139574069747470422526051074850803346930591679560832102018499036462733157472986133179580421667711973023792670217355467594126481143245081371615027085213349807542424929713691487455768456717459552409080976255461041767088847087494289504268114590084128217087895318608652702900323824540797343305498333912178905511119398722128898421825257836837443116097359757741841712026455871006498811365552345296142982426064762240889972602809629889793970524700641105450723698529970295785762391147867927802453134215947439197429583654820107230318028112408195754071221414220888422916725321345893538171423037982608858394353610990895439941512447464789035389076037589512886328789792162232595264494401244930879250180339426708958358136951301296781915190553263330992805949255644960135635362019613192926600491091380332637857791384205948844109899995930282713774318602517206243976780153637622794615610923229556555331585602177919199839151418723284263724906148481298099416155019694413789665377064853259607848316647381258786815257115916818826743190021903306906983594439028762004580458972355081505206126159975383224274334463656434113458977458805385515111883507319878995889730999009672863422422389143062846467156926311655062727923691594011788543173288433997442498501245295560425739115391881311377467012243560507872227999929071933557873703462726532501101918703954896904461175752938122246567440009029137938395159168212450215089549923891381467364957557075189995517250762840975937298104390840890460884183183981987454332704441770213640053420167033503567094057748018606277609158859097775600112119053027952957264496085191459594638205804111577244509517917573311417757249965404729021577932521830814254913544103698398738492428471759727369125499174027881224644058858890486650142559000185742137316474452892657201188612444731355129770389771268311382313947965005851671238309528016796989200374214698424438586799784527970557455596858485914539319028634082542660066836932967721955400129166157996725970880642275592493429910419521581375786797820558271198196616059936813252228522983891090015259851068718065079062419216402397792044034655987009787463911587505907679612160237464327827744250705255616865738874836833621790440583041839995139180336003623721149768151031756548691794356168155138626738082491221754535920210526084694510750354268920827874781839842086080639100714349956289492930188264464058835516638266303333949208982273906837206252441465275121091576492099607207981236817811128175816770072175610874938409920832908796170459758697492813835523267496766581823110988729631870425575666448347643734313515713088982597542303506733952588129395481675073348881168710151807276546735632841175637733784128648116250211908289855694085301534961499459273420138608366495977957789299827214069552538376855724525846010489132948764952496881639831379221106009992266828175321874437173010761544962731341903852251122131028454795533542397765919295211118364592707747259979293699968526042491842685985202530095891659699646744123911707263503810164217254893517860619083140208754816227308248562339072108676886635207379016810582595658971028474119951177555034088997470508364047914437016019942516436186969429553439817322916460134910091224751225285230617527959840706341728611557287101170646304631320729845451117506705775808740931936328614435886977376036497033273812455769440193616306838192151388261027345358043894598547933854661026265270819326212324440778942345614138257176807635264760874096510300024313586510434049054226275374790082893423324797743674400203816951473216121990656508077086535947112581888981934973438085230812905468762457868610271226533885663767548254291793347145558863121522919679581772671039514025531644293347657328852531357281318804163835812551171856223591229271756309493932186957057034815400889053679962070499410083156747339349748139301701424397900666492016291846415468940213474723702732231556589704163002768171910826405221643222677115392070052010456787681422749191279074677327727327435794654282011696779221020135616655771124655881557057060520224738553561409642575501355263712847159003385199557990434544532093330652911600183448765102447436302706107522929759042667222052617791140083585113070815557855344896970733499676176135049263886622930316251943454634717073481646308301390537862624641848224507154601251885111620589914638457917813026924214189040416477517626228189817514045636918679986236811324135533228769634635601902794172144950996631626917333537791564685717130691151556777102719790548859701869584251753999468342572942355589026815078326447180784317670291582203784284273566805253944034853947432655035757585835304266200056865434728112264224787017455147696385843903791710449982670674396136876668418135771919114817154189711468814959407278919128369270589921176778647338478916178322872738673946274045878857027566743836658342822920737180404354245911432362242830770555626120486211124975548580791832646311495816731249748176886255357146240238356955688275855774838226509246032191255590650973596555629837243079182268417421143958226012715765307925635681711891986317798530312017802724749789734687988303908542829356387923106933761229907379724299225775148668133020726223199951307471897173350707820780154249820036222846700735595116276054225980069937814019767457228449007615136701593653556620010641767918296758540735153157603906004601548606501902691538290424484013559293347042918975800491444974418946449692834978325839783547771488608381894312125714792947726613773061925730592420751147768853804398574414061462879353308078092320223224870436176542900428600865241908610464604615178818300704063876928564021063369587741065392130868592071048185394871742767772034704618757519179308091088026957782355365984121480620015957138182946864772481420562055505947536824466871497913347238380647576768622689834109812088725158361810905235073022000948674563272750227554627415247738943800926041929994352324590706704573628591691634650951329975864758287975279474188602508590291155485498583427833914878847273766952338723828317598744387001465489195000676066424758818990128143587508149789726921392055953114782707698591145510127145192600879270880076670941208599535602630902292947371352259440331671092683933763354462330133910728977436617470460120509249181756132856328201181946233087339184403325258945010145886416533934533824076513898903408950046515136431631563685067927928771852445249212739710117463892617382082785815528580687920126782757350026737917137567860603846647798136408777188183939029964255562012329413105406048510875718239174616250911994212496914706323822161581868963352838217985786606541045075289764241146561959425106873750377766452740206324683881310237418433149381096846946771846617507560997382280199330315552789004211696744279786146368021120753631088397399670187079146618729967210419504185373809888622001856577571718841263704975121087555562711434037670621472218917711399299793901938310541667953148491676946670433164759082057658102637802171811563437518436648294646202039100511583191139068591318141406979043820068034965334495584409264981310455824031321332720495033597393766240372810087458917032858506432381097490279111410055972161726197274042128636170728021768518287324549599423002865505935114363379814148731534931464875367208879314670380445132028675811926517324401277634248455677564101730010412929907816635624157273590839307565316355850385821251923144013421548293750087022728859420849788398634655163904440506465220402177406739079352130608132756912115888885631155031841609783830680488636723837078637570478000551498791571299509719898312409326428529592478007287884755809487316339807778695318025483384576602079597977521506240147219412272707778569796504756830117946469246362391494685715810449468843569170776959260716728687470472921382769924479197796732583758595140413313102241168259557494583101384447145432010441960889286126621558726343685725296179171570412868024887315044740396251881014135154332126424079779768439604505445823140291137210253670018376643471096242819255069373524827357503243026787245242015400190055360499195623058598798052883844290199386514130882662264964567033267061568551830961353475779842871834581804912611485392635680016553108563146199970406350492742246288613451431115995874403570825538871108897259928712208016535744390879984162592732914412104536187387572624036597639391053949949985101797404736923994129635622156914015926312680092715080504978754041139841340230537636854913459819948697630762852097828039908512296717288730652495739257910146496472737433605600361072429500473804014388938882726709040955864572603104052770927734376574795858559799820227188259083416807499235771914332430711899206193334234048977561177272593470047210437401874645664783866571750598558593039776640426838775771803123426050955728425000434322054785957053041933560292562647572696888650711525685341194135913682236795154250415361731421822532809627439277803316168016123879186082546704753198648609348567717365565289725133300362337586823440574110095763089254607693729872144330464664136541136638072244570945216418956311174824844081038001838980075277443791060679557865760895745583403840137487404539239789536308910463935057150974652565991997367076415249309497809629201726939316835190821271781918689303135493905581605271897014387912534370995504891745804515957018442134879361499247668575317901004916649165668655038921964861686222019156123860370234504682174168156941189995632182670091693324774515303361916712539854182399734925669942519158000865980533521397817012213221250849492534494843377406615158910148761854875567606682759467398696524737060576301460351827329000972045252171276259194359751099081081093895402739459741561672321783576551167440650103700726404175432920937802959205706882200354603292061825882901421282221473523625332346770290554691654244169398927105496608795912847146096085240317411984044579449961161487158850084281409687801507658039289487204271816866349011942863204772677279913527124798648225698323234918550293000979063882626666521620434409965239899974674448639480873931325982421319067809539459876021892020645502827082126918044007408020542179111878374381578362693760473514690157441568966035873335088572537194489496276921693846818311767932727920753386736432430318533996629553241394964856677569237290226013024713271000295271878470742614980576916751508391225466317608964073511166404538370394531537406425245115341336972518805590098813590199932589596658521918710626589345005874159636645001219036957033818893095522315721091168908853936129576198604998117424700045572551726013569316392696467909241710644589083777217768088901187100290746334750350103793714468575214707790568092262942487122490510436134096561887514554224448397901894010890760889508245992734337172378554985052990853569981318724373418953073025589496517347561898717119739546311217887419792647620992244009059546547187421966511978690840355774168520100186022187619959633106195025364842411576676412374463648349204302020546801696204021773316227109861515436207668404414648009852209290956331042045671383444947034162030562364719956605344435429656508751373781840274434558230378417253105454003389598442599454164991013736629373651550937395403019735507684745891541636875939327084446059099597123404470089156996097791383093938298461237398567448706262219523280305395429406177047999311403117939874801215868564272413695948434717854253471107960006667575025935635797753845800806880384627015113622066992916342367777695761870537081585577560315380530109879745339413926054086636448520785348551798821715202678067610389379805680035652194809435678152114022254018366140751503403007075620824282855728587179433980947531494668690589408645458382267972388270940494777592171876513940687913190264341400254378589383103507354981466181939268147082224025834760207277766386356602103745855924168466573405864362333394499808960023855488191802565042561599909083172509112893392435363652777288009807672694920983129222991784430577909778632077618268981653823928750851803139511612707913660096045918169031696555882304937310187148700934017785705853553802944067714855664942711075278026501001487604773265107629968282884679926548099146103831632989803197563920291110129988655774281851458187367075384205730480954301426952607336180416072692112451742884231975977090955921046052337934908068292034343480897171848002470317077168665711021830760626534121864623139213545073951538625766837478738477555793938308254921809238914620352778121667055821483034505802681815778975457878130161621685901251060491574523147230800466137593598738349843277026116992303871557302988749625756687698083553541648500029620992810136561043279452707727682140710256263170406297466298970012210674659881903661035011293354130836320350576716497291624469338260887952307837873018521645251378864711347816773695895263047710661413960784588051614660733695717361009496073805040928782283792422647037389589052882988555080204319439427225519387969927367566845040623309347233460137344638850446908118820523905585726890527420519852613403106598596484475518231379523067805922473963870493773369252117926638620542619691939116311378774045714047079539413093981677334839331255703547370812400743516882917292567071500523926999441825981780710388267759232872735850508136629301398063980921328954150424945109167765043000870287099912466980690042916935117008755885934248540794579405368012090097874301226266308190454135345519355781225863253118309180460201422137470378226310634037276497735960807496377395761904290885375758007506945669014555685227545617957139133389611636317650168917540922486880933485528357451162301867717540299617244722865316354324277804075467931415176390626692602771027127522144251203379543086327425909967694865282451971851126546317713363308158386055143967583438634462002141815255328105215145590832429911187291132521078891354729065110800136569851729570895720977006913539873097172485189384289706715542745699969567930830258197497934645494206776380933051200382231960102458552214562108496237160552493478939978701328178169189816818206367238190510646997582282985664546410126904384408610896910596213991046927886932252101606620898211630762339506085711488502763882707710141720972963516641806570874097266823965243450976301602880650133408876288813801173561978855223958347836748110032582487517498363596268779290662492685480932243755338362080875134050334584375682690371746366238312081512210340422839684964663770322640175320881736329759137538388453743141234682511582111815131711352954719150154721039702955656168471106011531929091555157074203516852557290813708421219674055872901298064482379312377509951875613234498759734432829591888748361610267945844053864360197799922680158175671722843021002459658942604361046913721623246696406289271270984093489880049078166468189411710479619489292439044415669277323465213723001609758184627029251389754293124974823612419649965661123377154445503322605896598298283385515671200253268284142323368837573839049129564226702656740156273841488426053946567495008035429100814072060075407632053274317713128829151800905410209950992307124783248378379997311174754121961559738129271466921037221825788768137445273842408621088901495398578536077158016467619091630108833753568410365031863534919449548305413293873533864907885500125812653710538072035292454210736844750834188131279284186793662641532220915375752050726532156476034957219119916107687434724060593556285579830006034665730261359484592830821932800157178724151476994741465566840167524437680352299701897155141379344447548378958717366883159387990593626124692832389687833866938939324394622975425658798191633227148831459294964157580145964755967295293461670079261343483920043338985522495560843786133119227158138085424194765571539363070474641137830423211092244312649517092384730107436911940841498716370822074394502257977776467410963147161703375315587394311942380237088324698408231319903823772353633658094917097102789066741129891324312897064387787639658930907598422047998834875651659360636219851693575139914210258790690926544859371624766638608325552406932249361184032106502489070963171724773530813585311845874938772163450454315220009029417905818741275192386232085503574308546807563188716531720730038423444266705430360658499104728480404986442551717996416094974408491735819450102658249706682843001455914672316033063675173109224928227600073204422956133692290601571425450375079038120466680215367301974713345804909504039341136557213895153832215606882343755030543994875445709706583800791609770027219251286283913270720859455869223450509990672314294161222826335896933508422392935043096470065609364800037203573318994357049879148658518516238362348309252684099359230266025231494530893145560764080534907553896959339615558198413151940063293575705964121417011664322266570919201671375549847154859000503594243724418146025261165921861053195662744299606596040805180555159751259117331291579649679430472119061716843221502002399687043172586180096700397420891814384410795181827125772163288820632451597010060116543083420747934414356200223443268297196873342014968775196534861804010640387195795215780295747841894846539786133997535331406229359455854017399993698610177570151401900669296322400897907763022828565656580291507207383667820046808500804004325140064967118543080476841964210020846231077712399156617181097430355785120126070192838747294925537859114361498048444366055458335840855739837235316212358618355936167292779139865182677285702483012110860504681583364146525100571565460613243403523542548365314745258938096834884685971227776419759451584555347431291379408250069128418351281385531512202011750891536008445979616719344454007186712029807316099948940305982645159434756892204729332541532713296606184242085600031675549606320591246435906345089758641684936014352495239492479888423892146973918226024668642180757547818375060214484658649769449390822017831597337447095238483742426256678248824118645040221815011067439881184264214589072739805292996852476486064487906509059600940338284041546505213480018308728707505125126319659212342558064260994051705772358645476272015919704123787987946090232824723429457320401349596582129457995098974337996890441013242068136472826545959265724421745832440566438629601926193914086359393611413087101163646894920417627347972633076760225158517450607995321476283636127737970537426481630912618047529160990297697669145070372205380100158372023035061360061009254468598899397267467033251196579062598694529974766144263732917132423267090137732893072778664162446343370869812521696028324039287730005731126932190500864913817625837656576999290300636367178684138232816735767295733266215078334873402490587476017018507878501168347226115751754405769774144611356520305415780908314864265949198387702119359178242893688047235260645377210846914186203009754933396747318325448294652108934626839712243265828585039386616478279886005146772237311678193631581406901363038441355279029780319124252029165785101229411278732455263555756633265098654646039814184499441081536123462132635561160277970900348375936760808670693068908172200655908949788601396665607867133624589587354839068440925225498614027077062503334950991822241410886090101573246206961651592937352173541465860518618706575343146915475817838043984880956044990544879548131056997204337334587898087888533718259411301434187781523063030824158283864316164219299436910227529317808762552207812573402492293785308137307148058989913398384526215859549723057096452335860376771588538415389461650781129106353118819199969037920936245583803054753071680783935377168116005347130916217101463548999532821031403329331767042977390217549815930669303916430351582988160235975451706147680327466219381291856257161851924683866950561107130904620268616081087655104906504535754651494551147209958926101342579727719682276745066334057237450837624692959055095177622406189306179222492649521197934298347561910719738772418395763408194256270313043704890475711841143633658890562804361842398494862200637999058892993709455575500489138308869861826692038072160524367587866605419859833220584313788732288902051917329004068069522211704429253248660968592031680580158038104076030347580237995843441498314034928160746755730830219419058976516052138544928189224689871217809137268991929762637807207814788567300266087478649653135301326283340780402102253708795298571863915197782325623505451454142678953005664468045167795145896284007445724789537525974640844138325389254714539796241406295123426419845491785807963357147295777500825818563406531410598880716022063567366771790052502619782317410775332403040912184275867430290485454710010321635042068055940499947160478600296999060387564852459697642426606269051848800390763729488108109813729002626462139677508775453301270493691471437037918849607195246650486352852539150051121512724777338859333079866532499439573677154822875632622647966667492030954015769768884156625606485635778168520149147613713077654669522592367717388589472354792264861994298423472559124546348773272272730560152935981445836132197277369373193025306598677130742753554082930240079090106969021027719667536680559835057222310570784575999894794504665437220854308238940316497291349748984313563677282480693896073684497997376662284305405185681168217878060678451320344213855463808689370988276814284046012083250053286248981187648050076570046705242814430663381695980925725662279704786039389139579660890778917251005028903336884153647462820640329884471161105430447284040394210391235499076783158156234621256208493606789382147849721184108969215021373463351469373694785721666983463181239598781326021887172763783683890801060067623834430321212560474661654726349889996468696091270709030245685495398061313448546064373250797118150132597055024217430688172788832118378110068428830841032665187358651306603556061743592854184115394930677639492746960532413104953743827364925167467766814996546410299655855382131083702627031230021390835622486522242125714046802611030210223426688845878127033323566673974441128898305808382643375765849896833434783621072203905767764794256640857399029823738485944970958672013285936279626897842808252771150744670699235558294438743042778897590709152997086096901376087823830462658351073920362069244271804357331395099291144836131959997799504862224335230820223634677631946563039683859881187263172443535914311903583687976315045283566592191071357663989319405349567334309580444196172527574163422058743994549527638319547511096842110008288624179227009822385501970545673646286339075477463382340532758089086345360884862806866624047962515719791925603140453159345204306224588957899854734442811135103532348370753734716333132541698349801706214663225833221514382887748615423992186430716099648473745062586957117909936408872227942613516553507951210380969674002025288654153450645344792794173745635282328255780679721080596027315303486691723759356294630226225197540970376997963153474265370550641403084982769784430665713623134917263805886779194883113310153341790024012193431199118455852033256661260179128014796179910173752708992922196682235325712669055034013773822917932292336222616936274080578056939979352873117602852783889180757792149958503874443497384876664607934887047797562812660701544811316169314823065407837292595332241503503621118661263987091737913723847240348851218991421318729648231827519044348197707551875941483191253743192779122329365361068252878285136285042568249223512695328787151913639417104117177972352346673095391972538794161124108425885356448132883191892901052477114560323447722581629461876560076247606800283659232172273737319421563096391960092728384176301366662742981858530706176829936999987644358546111199353575264919381927794375053185315453867618099599837668219428568895012458919270851804432440119142686146737521473780848485573870464631208578694077563742492876635634567002163992717175828178477565904848040757269874717820291563725440220425405521330501468785533783269861969040715352909797089114311614514930867012696341199245901719101405376188038580015015099408087831577901753728306805916814165692392526638040549926975237324123485877219632479543068964410463871760404973302983009268518923592174537859715526530319740049374689842464882225543495391787469198594092853481852695285558758812279116265757023356329199919463394078860057604703682040233095417739688058176758387469456370069030569169673388250388977330780446335214267808070604564984156567781363720541626090410580182661234287929195509516759076631175978733202842128662725845381527491722093873438043207545885988303810718896289627178952236523644948025073320023856728159452460697125547524343267991014847018030661922671564618762365676538973769276485078962635479525389874837834245822392663162743049248878014901364086022873349102126601474332783874373980550769622363116760400794253586287399107559051153610530844774917036304845637418590768851245855562399772253611689732236439710304249019846192740743698919410597595384561422953359675649147249803686323249009322365664206221606443780984010300443978430478333328586896504938187826245095216815737021708997782180145167691067388666532881679757257977007277532555295676423788472421533306488072157327297253313988452733579042199348602635747970375002167786949016983248169870312419633879684743279157542201617346771946614632743834302578495230830088616460855266474872551194576221839484794216444491846820564963900965776045101348041474314105493226640880102685345948278849284458510725124268792878339690509583232496253681595479692309393864909817994068355377907793020373047925192005490823819203976817806808350050795321702234262739437635254313227952152639997068095949980241940355448780026502063412710751452737046153930823922145929419040913422973477807673191090329819398395239130902739264848558332029374641375711768970429257352777379998713009914084986149405115070831744829951218918962875671750704305757759118171963150526142623095707424998919234024643415582867231626512319728201232703492741319312240590570839586738518102401480960674982360959888132859097357051756035582385976594638397095903882543538507818825258684534175588787907550048481981322716585583419789938954118037318458783758257655488527049963640681382040220298800052613040367350273338268543221897895809592413866623999209536710470326883258650474146564164697709364014110583586058677745807132770801246490886362302198799178815976446044117518555094009439298438706197154636824537615797805368839855652756136349988469132021236850577401897728533568115465178345683837300050324136819526716762932907948160541346681854582748907042264336693163069342674806825649471453937957594552213246813710836739465940029559567163567755422804674852312812283973103654672267051919681927973555558355833696768448106917943979988038614798823779496702300309882501756662346437756726541570640177442262450060872029793677565290810266744480963803119147271469164014919393277117934752431647020656745985996634810555441476247171517440407925213183678913260561853390692904251041099790204163177967188904870601474906848979139337627858193187023411455188714797010678333157521382620214608156014878741722568437157775976179243922303781412684312883676340425805227672247291531926039676793252003281609930919184705155455301186460030459003577287068651938086208502845229323504743709601278367798524543909298127862480769844652688144406706434591588843299930995848459894930143701643829994103243878730641107677664695242179521382223793991974813541483698078050132718718282248911083505647263317157081965122878730143563159169531592885589960201725163929420675077901391792301982151517475231642513588832401694254516170844115983407950623513470388709708938749459775363165586111212281140774889777101731506759420208369759350553684677292789857662236477716130878393969837151751277206516134197037693815954881380402078997367565178051494590185465776390407247427971964166869732377927162798448185363428037992744198029956012540605878380859548543778704130709555626532474207958616512052740285420751125209685234828019807223971175175495069865928810927084459792990728839733549893251316614448409930797904479770062520356249990059743311311726045335301042085892891452313551804862295402489202108547867082299235262222023189669854609882842658284196472459573463586693132487827709064521559739046946871789673974081041747845385830328010396548503177297520016656683495664717775278139093243844291994637937303038402634057983817012555907541620850583383513590088216026651509085024108088365107361934665676245068380068276764345834006926599992109091655312987131098125891475716288784182580981300928540452543644625568508652690916830168703673414481784994615994370792118930891934566661400427871641066928844290582501475756393844456745403075392422960997935961716338841217955382316869818783493306698983832756362601319086421228323958779782766189737284295081465405809042221351241549532045059405120731585724417980480473085034321410094532574224096744703794611111231481285795786158961299829111284937645668985776135099350785192086637638869238413454169252793255270360537934360743736951028595592845226816168390385397528320304906929832841371835736234379410345084072073769756021302839680385147657821023027193535028867061078935763774293191571928075624707247109333442303721357301506988600093825792688279900750907426364773235472619544724396986902253490654902799462153773581590200941402946712723742394786626063582701494880618775264825947733698606650086007503266602775026357541752550507712978080197251860010506684088261770994138400881587121464709174714491911539990856713274750490407929441860937312313851271009891835798501459160563233551136869314651316431724404014326339437727497707608779520064757577862606811915072682424950887046879483253609412405569115057604235345689049613412847763262072154573892753105003199567311865279824195105964001171265589670547962883398229079275704823112907196057335193395747929048493034521911117598524865521282801470978088353282281521637691079399655333282439680576215117500256981847635081302551900757589887618361347685425021570393397891713617879578877194132716323218334968697872659596238492814227860097752881021624615901073798341331315231409788658783511013418498765473525818384179069565208734680528589069977553101106121195292786368094454381514826035802534403748956475003021070881454230123336671737431116216516321916302493912438819066578659330447768582574027158787005752673088285379249166652916172608953224377538887951485428737787359256664772089036399166516345091074356045865830254697955949332982864900009795141982677271524882382391985901178836031555564365740504546133881203868100285414314860526453169886232148200423625416137390006166265008250706629655707069646043939526214772791620181910038937473646092345646125990103127932772083174162118043775438190013234116352055747839388835874186477767394201545479999920942362278256838811814382825457695964099101164736978858678070346221860624242675404717765657029064192773627764036373520928614267395841672463549267287647902277838984339305717993998232477930444916309254837587420102641552736826486002113032903206506229316348274187871278652339174255305740739198063129273864210804702007433295968880061804163594719356095618925241264820889092097240223633279117416508032900091867258564192191129380225087196501083120450294934339835772293601483967932247559348449388266946497450704285364811145136863113778722327164064803176625082849620131547119754488774843737644174149045706842960101178908810193272728353886432594649263513870909696881174342327932823705035484588863400033031521645414430205611485599787335962847402921907366237514399039540682529964240476904157957642916974762151334576939491912101301152646406115746706708932244476198766868663011906082607007497536189152560375076462863640049955583545407532283834719358472152180058372245967887343267207553328091287197816076719314855760454486315366574942935293492489933693441193767666252269295812070551715363989178118927059089446138728594508763356060412176147920831971331142304867796042248405183066005950874138409272423288631739464209847150490405964873930292617039218711939476672139438010283518625680905170672282250212673744983712087019618431555149140624616592558318336162797881067833472031432082621068793260661085068676890484482649751242486545957956358750143611011995294186129298288886574611164297002650830745163540564237115158625939719813932464347319774061986019696277859368817152477427112328779406628366346098366613785382855905268769158622329788380025124351569922737476257810396175068058741471807791280819982724112833210663577688397610483526005522335753802271908327159611422511531650390935379198921024070745775221258007199515275810024748125713537131926987777704794145672205117300593174003543401241878510605615894071445994778013324510231829923008899307027890035464156097412304777566533453201104237747598709027600444016226092932532457170894788166364953024358873625202187841813917804448077885803707208042733096078929981524728181657942363228663062549691176836004566759305426055367783179809466212773733023792025691473115621066925752523788323096625186780161234401661173728319284278854989945854744615490124048388653031898411570349048399750299420537230293359375480921076214935375249235858414809018131450671237636162246167913205626383256016687468482412724774936961849865181923025588245446723601748720664986904482430753821246905054900605831378767396354329300993564462054732171943018089669320992138721388420054539194884881684797748736917973182158987250676212606694532696469478171449588756334999345527240115342801353698236903349840051381437430532407580862544327878653702237807780584479404366448262921351246011269133070901431919591493363153476634176779152679172300665493909885409541117981334956580076104171625108736647053208815864976338721760445678815454562070985500773334151715628561830202973281023816890675951314548340568502416149838554847722729888936687890219708383347966540675158944640023176008307973153279874102807231715444234257768971515594853061696521160707110718728863798465574171912201435486284290752595335242899226475046854286540312911491726194868628290202637966696949889343619654990113989722183550911144976658986379109247448161280805727325887890235696459601784678235777227614912688344607288080065882293057612822398684473414878450198613239042931533138595546743361527203533583849007992537886770443939128427927352177037009086538223594913361727729388933730404062857559756813896437217881533722108882540294050139820425405001006116380388786054220136984698227022434388599247473434817963088249450362530183333534131430504781934632176235357075717857317782177010579877332529439978866111244633228997846855271900718628477223388534187397208790073280104534925402699197927357960290480202461054054065506686966590131189845414976609614402268543102959701468434368631826663642670698860961193841011466098573094192313327343713211489986136844067888941959728994688999382200333918239244388800489964114835721227758702277737190171228824856931556057461306845165685703279169694614605367306100604374123567778137220450943784336772367697980281648131542825858126307833842687443925120255949235112460675374488286033251276764363027049989775687479565520341299228910257808315704241453973777319652544651261162288204449065737822489909387527252759911661873602051785124977351031670144346939937624184311909811995216640140108611209321713369547473782803297611035980434099423120791574951875469513816307337183213491245182397501008104938508833368213315230798768779484506881407704742462566935116357712857381860812419050969669716153261172438438338714533139303440312413777261593833500418581689111386606513521399446471558813427070216663136847778608098762117245377920679941182609631478581203291242844408306678930305445449055712365065847536586162846076425662252181908284539998859235960727891663670574555949444703506728447153595846558139825102657937870117026045642784841701374153959409723468391773148084962264048218609919251604337734391583759560569368697283763973606147682189338772368687098832580161321524978976230439308132381540737508713119627475932722832110145217370410796329123506121768327694015283093542577128786448001240051960032445948553657820143730971694065392934405194044904827670407879854217740433337099696211351018790656406125139818512009187024830948887541682862880318662076209255656128001868394096274554942705398110846165834103009213414978869296063491947681995494555449695643235432485218362866552664255770301507551037065944251579007172816212265663209672919476908097974223127138840815073620778194507917781922510255999107205981711509641933269636345770818249915429513009100383060346389118958349873766544163727937327523277361016646722165767989460537255681035909960692520664556783999974892343180050312474389241872972639821582742875318168396523059006784866423774211832614895324386388603561299697342084031353038098905473289968600398990721564524950346530482804721323890369557047392993819233876027336949448491137214623578097680394547867186085548172734914933403723129170327537856635438036396066621080908927684098739810164147893914193813071037535580806571850218438824577352843940640682398885883162860205376489544273764074162722239912348933985385934261104989473548492449686040076428898540113855602793339029930514124505966173175442473845769456809451888541462308328981879562241213046438875876323412920197958617527940249789284707987052825705305532208629993107959448747458770355580422188588520838752230423092311063150073812273215377459771520717028843606883959345477432837313125038582245984527148252433692675160411535072543494124066593257434419969973356378008996158351900581410561879951981570731411689586383044144165649841152518743445006390627801120372869418794968563121081766755959311217162591462129536783132152200081569726869337739275542995321575243601172131892222464060648368364630116641833987655134920925436933766454584318776570005894052527798860915345109182194280040542446516558006901321738693604584133447002119949667068423115631780081220296666066147519338405777666385645860762524721316724665743366745434252265919219807261524227592656939661386644540711445136664902173699707305562629505583178907771644880611887842688919900183083327075291091674347693389471006112627488457731465429105946471044638088452664610139269177934957770276974246408687780041533646341933602694382291723650936736835189614689457852473592240161661632107372260031129263422176920277151802694932673039429804926877694336351807965909675971208686731587742265104323332561221391183934824845495608937423092349418915985160757910691425339516528609644224251018479839343442240087574697349614469454645396689901554817593641312975854769973672546799542734012373883317679424600790287283178549850818570760472872145051881821881474772889133021410426696946775055182927567213376025876181898942495377238779054412147070391947564463486377684682857476277585708643803949403286306290887020692830076484117560838814707149764628166386296111814867230184742831144813180069508243244014189827909454076821112391624236460366866413957834925974012909055730364289431429801467100453398994910202643238927523913419265463958400322106364956125950603068166677574256828283856914661692951811078127225033392187176905603778637876123903120134725831433984200869223225953779259740769983439140063089962792793412090681245688016177384317166460766695873966101891296347480479893380854112149999819801836465589199619697439183968785424376902115023690118710327942379154302442354599261297715690599288669816810261383177872371875511598442332392437858253018933839843087465741103966148653070374471404688912051607037486182866135165928218226093165330237161758383848482479330057640630623143674683678613640619697049051728460787322786908682204789524144587072511683000695105232844664825781836095154926182239738370332840377992158199460198424004119954003954883891155697496139242243872733048935641047656154624097574097395891596711255673259322677468536828181970156211001728157816589599738414255567461832592365323522049684445975158505875444813735754403217654751660113645836085328625774417831476594270564602116370777515213812457296665273056891827997278160865169789272498226060843728295559992641335068326622520779334825968695074332384641480001063806092763387515113459596271910125061845438632484528887615485539214280477644658715160195283055593281555800364473327199302850039965112592037174574596075210606005087689373358185735017681791463861369311813079209906574108434922612273294078455648965168214160505014464823113328063978353364982769522523694449352013050460800494748160105534845720796639802513909047238646492886527631996136115830266575612996945323280961528153231279570246325815761043621639323573376292839988207038518475829282706390788440065703065031165326969427616444729050404101079023294992244664881992517029785596833389900054423747984365519709394565992651007752887102246959267580270578957788313049643855907555709606974365491174372216405441221884437796207401237706871291716556670649746158102293405962269725063026719487412881199175326772231449517624737792282342444513201492465146666757294396467756574378766029594973340423733492714709743361028817078671919033970649737652497222558683332784630600456474451507941163244807535224676131819528117224015972892099529951764941265072194228350174440468358437809748758403612175538567225592268378677570506837132411056570569474916379758289610144301021104499990305197492800022469210254748417633555570114875929533090721855048788429374709628146189730214491312713146755098535303900984348141427971601589642736840454116739781609914681229915270283920985645121127791572730031183664704459794206452101360726769183936627662378171699323372181220996120170224923666511320813823391604641587428150427065245860328243283470355783589839632073155413023042385820256706221810578596515154392736426336745907671617541718596075914795890238049506112747128746887679106249080188878418997429807381226337199028922362274890540921244314735197827367602761602825150635115382624615373650170413261147276831923348034501626864922410415222279648047681284742157093318663754177583361502316882096696848476606780508887644914577751528593048770209587288948354356613331961460110170626550004813595756114152212859507147881306654898191252416485937658736702930896322515649408634877464255764733487790597337412693582738382557776215744048499667664248214212130541860821249852252548032618621439525294387276827006642961134823882096941088940470371169374545515772004948709366637122330475315293923667496440858908172576394051641286099416847246317921453045027544609088412784351071392659090152187841599047210108742296304794633432590643923345201154071998017371762875827513463620829306698463715934780411501058074453416234878060161931766150485374567227518358457485390016626300441936715781829402725045816962985554118951818311963790421419914789882775075823807192466803830172033041429879821999067786024867404812086651374017532555216310105321048662649383121083461179750288229604005102986167552523607785669244723239926065621997938477234614974622187497594115560557603769237616037094751179139482354370081306986184656289584522696711763323426756457936071786230073920031212315957390213209992551240810448707792273128427259275409886255274246895317947981217352339416954462594619781429558631656475767907957111045300237296703294089649257354810889063014306534422030399611686080041130624500742146138223725292635327560559575556409020340349039854414272636720117398278302094960131152527094871285014102309230563895980285109305433887101973668565863944912389544536906420643835687535009490481974527130547499617909404273552459655299438793059675175458035545813385355956956647504796149252513701618315820296081358544508038833417209788322335450474728381040501456991310207796006728433142947875530390033676915437721655631481523548126087146317107853656088524849062383909176852967272117843180406796447023459184747865260965319234639425045168881948078046752018078928249606403060893345263455522441925207678385353099205080390141094078841872463110542344798779178128720469555823600379441028984422608416571613087952045083721151791461886048776486842343756456931485389182196096409852115936388168791136583770546950011528784111385943221340944627897545823036736296880603784031461671414739754117869506839763133355623599096193389853369163581489533676876042057865455016871856756187749724164267298653252958205503374437579371120132993184133977668064045581084613074620216241464749947330942248374072256667565389846722742255705944317021703755351398250200304610989507708045744455776599943639545613068410595780717953139767233933845296701276852690374622612276735949496986759356428389843453125801262356636021656905824169035563660918310824367183309718331202513365332737974438838593237091049865799389892655381640822895024369855575807992031841691982663810870665580037195887944298076249876103761988865345245629538431072833440832364001978970010125459751391342550390153829063507483193932412950566737747750538310027134625519738886340535833454023115575337688209356972288516826784766320128442145630370594134726581394931683743224596559970248681155312039906797490780949176947333359163645918801501786742891535808891001064567057219633339385199354261904265109712461306990276169463939385146704349396888386261220811892021949435316278239962161821642218138740347654095239902360113212785042772784365591193423102699889280363400081917626498871052736607513814189971404551222321135561350979006925007275099312719725814776590229205324849942080653270794506470409038638770375276786931633669205836066227480118224638630281407502561856978633626960950631255044747546852041667077217380411405165767510758362345431125961786626758639288778198455162784549789755015513042881161181355400407344453008956411101047396667773681099648285356043808983464317456235679866041414145157471645528869407722532092116919679024063644592513536865390997583255253200699772852240439745945142290434300480205791329379468675744588003263050142801313710218390417768109768172076900674333255044306121038305167594243484476054044969927891164030862269275760188857299446910197758757248552659669876309670182292620747826321940607434346126063536865191101188106065981386459770932897889474213583729082906214206975210633064398762798355035183204708229576287859616075444528334050240110432575384173041256787480892663729262292482608154841006981818876324076338754848539739155029520476800432665220915036195048320626077060587180840359142556755384520326450586702256230144136086665523941960017081505922834218428715146904474255433072984256648522656451530368199230283439095522386595581552907182692125583920226954548469834319215787741405462651444996814850874598789975809207554080055832433468330043244235516856854372944931107573795445957608847516195364762679118872056852059613156341909024154670255614458908503857387588697941360754825244577022616908392864819892394217527032736419509464194787876896345326313755192233139649157782010530629479860436510376292895705646497779919663974527027925339923239238665012532757427019711653302870159160740002683108243764512693139431308938319968079006413506848332104800194703755886160124844194327985625563728289898701438478841727300563662035935769434475149729727586017681388096033472537092781151358273715381325518201650705448757668895426101832760050947317233716181533305634834182704712915851041020502490027661330529049176656473590057439072447660491841726963119758663799892924634035213050166423861900640488698680323891518242836475737549381941810267720120437524290798737246338436069597438428371075027011167325279312254851410069569669102086051463948296004732803474426813212279324764047271035204634069563652851415282001946951908591618512609747624136466621440494458352116371859812891084653976323902199121325359849323873046058188461827935204356428201140216313633867690227004729163353225204499653028043572627845188219338649918936851342319581965633528098576194954562833880473135443974217873322481708597249786724992625428040114743518832102251230859972680431410194457006671507891489854678422595371416828090764521674930229489371248307070523761274088791682731395867491116265976429716010126304381513828176965388836750206293632225031746494703415266649393776053039036582193024785504586541613571000051266351666893915719281595613427619737847399663727335796127007960329852828750003399514060991905068677889695663327062512474168181031875438756241050363930870965496531566121748762359822741733828085260718528001674191057392932385394801324759552636285079741708529345935077437202037926165656795320651142352348485323065426924239237115185357602567844652928247518590691039667307640820259434605998506206263745819192333886048771937277018052069604303103560552943977904788791276784553716316379834105619160805053178022947966633300654299069019327262242835304188346722755200972976954325151585378268629762490965921572433767761213750978089681314701216319888713694100467311400151004864528207636578792571733342091851857145082586487033392967705489438180060584383715637876092381551812795823348336495974578051500913723050504268782456984736574575651990900409178709538572321500884798315056781975642605537405442544200321303666773627866669240509694084047276192523289009810478988842910473261841488756529598166959294901182494218847164306521668156102319758392698155226741596366813507305701183723724613085071809591750308004064289421441121702301143525972274145905185868735586024809300789101090069308387271312189125529562402391271189808497363593268786910627376051934315227926115549974015100703129234532275351961024162406492039280773345161758872799013959256793856795397375615120228142274457764334708017058192989200241190338540238285231024444137383665040608332229360960506885606045144815989813362809426902366279438431478102747299978873515978284120093022437031436777537526811621208183947821397536599550238722906836455815116269136335646330989533199829121451475437308871338317732993714634574573569897587110193351466464431976933774298556204426300729629107367802700249600375783786971219891243608275755610288076151096191443133219243645860696391337687952065832883164098929603517612016222564081005944666571891127508782727839767219834213394477850769352663568852830950933063459018031703753945083934705503212319741111635909576842781853527495186216605172761201788373013656947935828641904916429112668622810671436638300100732239403914305365371587552157657600540186998109728295998167558481568824559144604715865337750920008502289692783476349092670789139194575005456481947467173969417616436315310714109298847830733934510663932212760101315483573446802092111879224698760589613122816082000903132260766304464499257918551235718596171312361140943186122157109191734620259956908763242249661497890889795992169424223256871116602882759988945854117040351161661044212088298927434390954479135819950985475376071196359156927021727577623390644113994601232099715888401294060441638700823534213704349019137701675694742965209901215043711453778134537976153991308003047745694494433411120213901795157889730140400380023356758037071391652923381675084449453403865815681924912311658384764916277625899060065228186229098445221910882889142218003541701669127862856719995018255157098966536562670935186556747632046649793270638874525530435405639228746468946283803294853508419140238995400024912438752371352611030745431863372556127504541224381624184026655654759220450876438135526365183371196533698418039147696207104238504410648861533960637038180118491702698002104729998704780937386797616390828853826264505210252734229474456350688644336751681467576111665386724638798363334810748773746179912416143245256203349547174349670583633866137045346361604545475364215535421235002872153693647404068102129183806007969544414145754472944227632130304272855147468977667990335022422455023486264502108115306744791434744823039225660409948357819606292929614072247279616555690256109874617458737856430835919016399660321941898376720452975666153937305484411318070330151666092027284100205131516836227316757938573343165401969050899509820556946356797707286263969743072065480723935296626631055549761021554871049626091721973283214924938235749567419228841322498332977656803792271935369540126322828757091635964454731385976888288364298838238307736584408363737828652076595034594737562752279688939500066761733330894201026991276298348822648890763075828722126770536381161568664864201389525217640366259411810553133621311264177494866334266560798551963988108247983433018273563595507068705616824012507884586875136573799816087713683014812119103748392856959685956950367316890598814236713205121555961699627650804165135519792202515271110144441669287784285881622123515527396299406158950686778368590832704091946211399965779464372719109578822320701558657992179940757715310527551548089502577653871084176323531296557265126354348797405729921330307865151331016470289751086552418792932059359188660826729691564324981558293737686149939816841772101277163178086659070193398737338943530514249117120143021684456928516270461037582280932582454352888849620619209702293068619449510638394244006189683258016653069996394609435151291973422908189985898218006208240284086140305124052514887201725866819285564976468934851300735234693389008780624385878286602879501670804615352717265103064047034362789239860060535270525958330719112343699609034585081247457491516852662145761956207335839707278720398592266771383554710997186350374653677339663900901691995795112125736956895996895096922017309564065469645814268046269236108060090332387042653023213793032558954254510396453301110376737939116578549422466119479908125702351747908713465021469843259396685151687187030899993065022287120374638112471736034256174398610116634115646931080537091851622173615558722809147939619302771514728130852540402898566611248451376446427884382541008363359344166057438451627675527481850471501846829006343232017207859096517541388626483389292008339011775453248696294192173656222986981089372017508944352198136324382695441841103563076110076843730768542289602981233653851195501338259525649656210567105449843809762662876926773208494908650512424420747993059988342004934283490948110203591303183376642921328010568818516214179854601375086323571611944712332339410586746870135009014046434784462467809738043936923085410126189003481330298156864131530680547816867218767094313787685657777786689327147442916037083584173419333016241958152003681447057942238215682105553581702272912554650437196858679284053335029024605837286213057348319438065771375466221238555277085307231156486996885517354616415691468289097250131775085255847790359398714522665639506546628254960929923964861373942816184024317175243983131017681719034313384472032153187354410688980327399451282484209222475291968153925344087920283396108343764920884981584186226691997863437089009119800691033234014127850345284497901751964087056934453921529244904742038240729084760606731219757256347860693348286421474385115198198265171891247677601296008384950683315447289719295511982206649447410636559655726848718348845166494654974734059701747906147053914197789187140466131954350156960032211631176912130701541739912553517866621553744049804566828445890170703432607064930854725744467809502509378905770213384286956220474680491228927381507634615756098977827532075424074746947223772303480675192758458669007153374359395838118666655304085295754686114508736419239382872005221425056229076310761387339823075705046118848612538910563821165863123636590874225893892116618115587945670341397593651626803618567133811287066912381964209864164412182555704426488661001004310204710790427744985724681048455452158112815641862107681078475625447932097070276740809703459079629773726402855795100573024473419356299797671048688281104965880090862713646015229686035713352281815676623315024159569466891689999368889406673588391142561820588361222349038031929466552744862606662358122368250117512912203015555583053186855751704019694759403486146472132577092479908768356312955931499736770034913577315883843083863056804957343292864830187199545556106428756926732007906532478765510299768529579692978073836779913167199954178186772904080843614533473504257136819773782069362751836164957168494599281243371513511992138894380391577139827565122612427472765974131074417548251410935207510767861332595249204998014963264465254768262134244321599180914109068412692092034360254079511404180779219749332507792235195526538777081258418738472462673722458237878815075239517423248486168239374048255049118917147938686711248386824318783606092961914084636577019740562813114348261796993111674714721710165301385323527386875704773164477758929353770584284683946894199072530544952271250302230334908069553664016934969840892858428109670554864510135790229307245415950645781655120335366442582202006857603317797412883783895682909509619919604303832070377956181563784054145607063308312887985082402023347594248693499124708533725136622293209314027855944704629846520537363796867673914249431060298337065512454773861450657961845041055826608416225863664307901907107792377805656099555297905469690738463092123625960905030242846212732027570034572455080520254599081456031225929898033589411275461909030998723112430087055414272292806500616417358887653743673016694878109455254790712534423548344864862432922117858517721114865596979584417503206405149517087566092366636762123151562306050097022867396669703284397221285031479213493588373462755709313219703902043854474252150203406324745257143415648875814296052751327383934024758308526475026027395730950230127628795964211815153777394340663148703922429221235782274392180574176720089120887349182027744971841632895085576837955716804091337373520173461751916829139949285859550127736599765886636211276458417860217987158248875373890570033578601483544742904649070073842717967897036674755443860990578999965715732884504899623467392637497671369185362451420335658833601978059318027000740027455390594286245259880283277110028575756276194142786438801552312017035206145714489991076434719343467257879497659857196316983772655308247500684292360315862844710666475862666272455847827046268875130501796176309646392243545174098904656193942501895768662557483378773964247796376605346803693354824669491439402538730003222182741981892464216966018166112691079789598991774332840019563522661971030664788638023005550550054297690049763037859749550573996996919793813278055863004088163924009610944591689174019040148196900081979206311932619982216341075285695043095945670360068855665598107831337575035637488250468802630537967603231028665695570569880671266435262071104402580196003333142157703864179727712822508387505298770213568671322213870347471318661073015227298769207722702013935097695409784043770220925370412035395966351228652082723496982931524460379623310791841023136428544463671038473381440121993783489152823793566944566288098656299465236250440128949036028257306017043095073070323897003220047188310373738313942934742630222445796791224685620552826684181561181047480445623400700159293584406176032896775836861224298258058343750245707844404355419999796772498515776629571230200452656230727860088358624181400650153065311590698635219219627936937414536150859028293795690417569537860415780961208036747469734974708674366195846407674104457327964837110782326530745852313945762401348903402753344347373530563978290200366015526569826104936490519052275906466132118164331741200330407587756774441768144854161565388970066093279436884421361006511301487985878925616104980247702085870066789907637633004234469067872283730909357932312469194617881173397288692465501152598931019691796535846565854755939474271923910640563239604539172566801562327596873130748054605525379606927813653216481375277435233629998913978903654765331240960684797670436146183686692413203281833368871547800643012981438218144461326242405983655741651922421849243201150005155648725753362677104817109669274019404984527998569490730991985101936984323141810354614654609373969591314517509914614203925893779262091821263126632418679727414353621299203995011920062712831794869586977958497283586284790326827782527205344399148428364520225563343132915634995353308922480805348178615668133750719440188781433486749853596395235596553077913753390889846912404647080433724775545553811012411921306199669771206539788405354983910952882334691457435420729837923496870852649872979405573447260390321252816981161534644756887667360535058393974406515733636235650095898169996460735794282493338460377625564636690990058753212422392537390551776055669396425412417039614401297534112256754261238995516986209741191447526189005990227791353043429506537220900739415929979057709195526841156435209096082358560528008672971701509281098788259833840836901385905597292721773548364437173023667395577717370688009800511537342237732276276908251082006622345350280521381164879302030002457544414792865250503271703948350853194424595452813197154701428021191651486075972019200194720137808498596163220497698065226877300966272881544601850308124410661349700043062931593616670504300683940299820808231689235096832535926125926301531994941409789244254491105857404295806268504577242285971351508094304333353079316045861745017074228270519440017294403535218016875725491222555971350168897834998984489431577516217883842583311531006562046939903995466239686001060118287912338969549385545640607318260958969618181017388115203472728597990972306534287226187194900235754067074617019672414249343630153870012804847350320236166051428963005024858608402158168474601864469626808717173964055863051584681380394561665935680059383985667207595877269933066239752704862918017339891642427093949081835666447064839551154646179528314017485232879342711655134009129972309405581925290401172931242718609872509888786387522921314721129118462587307135690566488318799334526351605495270833196265400253321314465857676155418535384023072855023370990715496187761224549317970373602062516664436791900637124124259265778051779287664001348105536433605547302036888493225958084650749652910590901007856887968375533862958399720076654589305675376246607113461680330042825197011880502099282594534825977679899407606010557488088252369653671632603928456765554344707208612766852749047490772771250213629353882152783139303582216627838200789578703115077062266838385419993695132918359407090410428992837563909581826269371543696125131995086893867685563605160312382759701523645870540495034935999208049223513834246195688156976731982396850895963293255828220600285983293794085065105420073112696017611598230701894804297330403877678761418254751951542364783233196333483023131836139017946659048327231685139657935894050309418980388216337449096527410876791871559590425829318575290131003000803503483045305604314795425429874256929084530018256410291296559112089864664983259714593326890863470434393466336893113308589005200192925045061844888988087926564859254330864584458295618991968978325814752924655191050744884502220697595668035635610407536275171449306801139939441081859908169796273545977279082474509702571071323598688995407929432344566363623168477120663778487837488288522006713240140955939750783347650883245226201909414738374477224490546043488623462520479342609193868403670005370876293969484518490675002687392513926595147535314841986245574596119431047809150354111744822992232106881552078726315373146484472406193117429232430649615371729759056862515870551914151524305040598564380593478427261192426488327083283626741891726737998674264899717741988526725132311148699359221356004795234802387846351764871578269002957006963066761519711373247786072141234120659566015111132709447508103471781529645027290372932654048441833200074216963582695382472668097696342785488746640569581878308917506085763678119080450531673218770860062504757561233973516581483963105125817955767219629510509405723291225893088286955285991429793590694126477929809010844289284272436384396596461367128865462464717034112464995822663781927681503533682298933801616936751276303634320182485854649137094469245484968929322759253783184584274425650453219793140488050018416421735035935342851754692172148549242324708142130439075378775818759540583307270895395775792911811574284652552084985814203803580590518860563824820490840029648397677614669293090556219183868562326719644540906575460551549429028816110178989958687412683763131450443177427052944405287244129377105921884620238826416853122931378781074588500375150288790793481242433222733329506697326730673548213535508956419188537038600710665327336128378248674021927194424835092179520788197902026025318830803897633226060439711377848163301201551976350131069934525211816265539505779747797938044154262053717523539434748602824313464754500368444831804274197530830296857257326664449788383595717795438349052267046651502832148190372658603924233728417686770768936981876138056974840437825930736722448537836186548454831168583731695990208229839791215256769680954810986785102000682044356544303874320632215264578342083352307001161585597568593929633383397577444369063749753807488439497338513103002619773026104109209273373969660690400823441958300953111331814789942797157369373719122779596567176650887359135223677243914545646739088322576893025439064694877441978149162015998270557752555463350383576136405797547096300681823554271310513409610642089233191360472490128929501957905460236673102775859475498286117114155249765405400967151660755778133155230348499363157271261449050421745179885554213752029134009809489498927222066705271240485084067686965517293894041012148009853624827398533438945184509573697833709525201425436889207406800528604664674161386451782681045889021103977236707145209827013614811292861353421469414380539144671831550344481883971573299105551118133212796949490288245439105727473024418325903275273511985945610953866443904629859776563151685756309114945858330656265053128558303026468331223072321111178137025259517159673151882029970748988174468245636498084694465952714757535077698741611140901422791227949641282763683225169530814698016615221361157633401892033036045917462404387011569233441119747913564386314003451846439767242449913063647997979185085756239712479404389598694384406734207201918333505985260153765893796690251021843393500054417821859078726816646864140782446743171668011496497127238871687050216565554206891054453253488374853994764257420816902710821328792880993843329125032053998399118652684313250534808175200465880415042599706359057427552640229169995227212621081875172284927223691347891492520907399311775975750397474770609576038168975080559292948058787130571880393522408836525491236670756681494689847851842228968947130958100079623427953545707621327322617081476754406064194860885435399842956453351772524031039298349400628609159700741820522231851301511759471411154146768719250996159304023790954705759586847423470211972931863902072601359469055861862875469933010537992701577688245264089227687309166329360856242457004662070025159051693911908694764262729410188188034101725284460133345117195672307689182622671335631863826338604277840850018005776699423277532169842644642420520963431241219671419342849392155527483675315462341072723672646735507037530795213106401140874247863373337284108878969524382112814547302981087823163268936665784831389932287040365122634089639943724832713285598730831407280355615349235957825503921094610355854969047666002969908037343587277185550162286972192225242554065460852045136117868402552978210052220914467558323378168725035359711454594049639123551332435906225877734053448816263936137621188238684036775964108768312117083599398976730728626856913634048848387809464137474461896614980741290207564820636293995544749822233741017025440670246818765246476030935131296769988979245499127258628385100217964055631354771310741904292970787298430458747454322146329045219851704732681388961690857981277122770331889393025510846827061882051600303547273497510194565463819214707499081961891943741982258423966003518463182415199191148812025803845580742540200186542745832095145299704038006750433213728048997157597980118003931382291822957992925868867590562458536460428698528923457345231372962907256302572518802295463523820687608766424525843272250014942182957050138724806085177445218539511574981565552933911655195351177674952627824835491732378745706675503891369799376218686983148734846324717749758375767849230433217553766806753820882055311681316919167385644092718873471661989231186192786298978178979317861699154966339041513149542388931034999022581454997818084691862367115408218090258579021809825922337618815383007974282660268422944461862936974998299505431746817396575364483465688265820390282144835751788355912525826209526729586671898218263201594768406572911977962176007185307478901914960546892091323633369484129625672267065076850522222309873750137873303209580894244754694793035560703674784607060674174323286628274504581525668589540093845200245617580646987826773120909370374657431200218511343862734444605484744776933926968327957136244687788849100322561646425368676286040951073875981470381074951916352842792603413923316724727502873682854489501549226081063549916819397452677386379303830735640766134058749967755024125124062921966474852346714642340148241662979952861584925657979793746081741432363634559366995407561419469144009303428884015499551843624573402637619274904398970176937574037658727599399375255251678582465188217823383797790864183927622714855320527160687529610672544345147822272071126912558341905326982514132146345670078770537564504745226723505019330596090259062783374588343515677819979151159576804312640132682034356786917492902790139476742977488718637004133864425848653084587484291705370512336078797875193429552871702189035845294997150245868897307823524685291056485053853428206335968731889492898570420253062516556072943543128050585175503450203313875735883065016349599563047969063900036223107246163131607644698751016413414237051150141183400528504998465043302107904606533937344584405351410277370748685478757128332778709800696635275847166281298168172657266921025736243994852762303284027306980753324530045764516034273612421141094014430000690795135438019471651833478809723364926626061919206448821393108282094169289949869822597079869083061517713329094299715828025628901534273759711300652560557495937205787352263475698985730750666324198031307521714767827890499265632189529306996108780992349377475227420677956859365307832793967835621453742958455368421397868296381921032534359483235115264125769003349236696970369450723181523261066311309119941379789784354118746120558921865140696343134497246848751515929533708730498703588424390864940365809120395503531998215810238802604852859184926417749218958255952576945674382005467797482906926692546439933924751026017580677316549904584071033448274004019408810554075956361284778498807666485540733670438811061613573735127274249936782203726996850941655089384966821729879462898342442932236705869422050332793190647083391723721894213593324942278574836292748319199457068554915462848766335196124567352142552535911717690492961781481077188157376696182740545240895139000973734368576539565350840425060624007503102403195809900249467870526962192476055409526672199227551499853890582173320178541199577702138619100787662242777183295699921012174836394957473347745992247711299411067904651110555862038601060997276731326293802439291461354896643884057740353750009565625514083785756135753673620197312140151155891690970324498251089815951812161771166709019052404090294603038144072380955185361865994436571540365966043242193045196452089919849937560696158441015562158378848399805349410198859433636196199200855353180950923861374487028924954461434050037301532821722489152904022827458894298756043511907354230724129277386588490773222435530258330600176887460021961897915990908831770667401218728220672757473191714645315377359794956897596661480613998771894926826072419404426343972738379709340816841324043698283144273128270690251541564121694217139684440774739883079886494517764092838244277748919468005120747365117143747056106375850186650350530595653104070147082436284685213187829321321665600791298483906679299471768593081975486017811612498056366812007864279672897262456827743912609552300563703717474299673111660565109321504652621130136687305756750037703389456540890710445016113560118149463097270285283829292667681634527566284400185894158077874321898052304528121790760944157406693609844038580217978708430856884002257651553254612233744086859417327709324314249966998446841987083616855976131648219677837071191220468582861339885610413696191785957137346263869085520431724631764373054729133152277918004360972771913679399931353262784496220311404121708488263148683072986738822323151618989412860427123282990324784671547007707686162344939741176613556580579805093932641912035235944990128770685453587374183139140481493049704402867016756404160130460995961000578064692180021275809586265507790942116798383561254063002347277699660843552361051807854437741175573861058842850814766104681058520457043114497743924619488205417453616545208055373114360433052648487493375363564584800482712666747034835507927433418849745492646541163198072691427389601675155939817097722410248911654239641416902806037920850096259342730415942011545548938282545596932136079804138238154483066542070690806286525923587502215124773795843236929635555587536704501619998840620765969234125393482429997776188714947665703375497742160709050539487727932779420893757614326448632494106276459678252655478305926424734415035914663540122749816372287534303418598704243781420230826347789717616997652870077367614283237353013469926331233870667572149200054207146776917615204840572244547959695196062784120351904590645389935506572043852944381254314651246967589917745506237826780114211345268417576111504821738637881262595352441071527761276993099738012369503277018515860371783647855147293588872215890113966742532285361070637400194496731294116824338403053444688244852670880930486018761077862706682793486984652194793538295814180724925211546446286895532513273110250183825478771025236030641896491506134904392521970958184521068732187891327504606264229578563605330677028890807510255082333198748630448181274007020151182493070777767575868528263712496597378897808582880718210644351017840108016996317751970875357422349925829344145450376530008744001994841822537752688214206288843585691083873556285545973282129126720969505226883745066355811003695594944130040311072820335467098287003896924948148155458455531029019620516884076654552347497606473590982003442768404746929053033114242621184020178789801528609234793110430940732736977078257089599006945811641689963751491399369100407669953382891269758553374915924607196187047338814489674091767543820429981407241724117241423447024420714690323813780093181156820232548305221290292077453356119364981534430232797042404176528144764090708859967335219564661798426806069319626684559598518053320451886127159136635368060286258628341261233073513410028730335776356529933469312081075706594774370169353867380498047090108457383071366884248532551488277952127823059300663261885558196302716294575971613859174233594215926230912430222745235149091982620979206318002705192397149667109629129045613685619850506220396001333157710829890185362374395440602017757653382350611072136917294403958300297546001345515724499556031076588535079718461274402349839281710013629599482182641255567414626113042162464344209828121715859685045126981558978407826720143778787827541845742099144652528441199484184004815688359831773055064130819597821977534150507559008699405696826655781426624331829801871806861318767375982813148900407169123866682727587512507509800747998133027453352622845162573896357687394001953682174221640331051269264773280090112191582331147920518985011633360553577168812092802451938874445191369409796464201718103261616744626918613858738905219873675273220634909531272359473039387709986487907607994054521395873176404614013898666775095718906476309193852917161583941333988970167742022919238583293805098182599328197882222442289447379914351890014184106671417896704876340773076281357108289161343277986932437238066706825683094729556077100902783683141372376832777162329858837342696820400621016112303117432693717296497516117800597717682554960782278763643047044927426252700729076606803403735332698912638535929004116176036081773222738002000891081914637915511544099016791766971640959194004536804015624295390534285899206059787220894156617913483992541487879278490072036314969916823561105772575393476928061658277597395203120588454990402559973627745269003954693042720323056396684377013982474320553037869919203480068790400716207646257486557613527428420800798830185228913153169977317155596674216436652553247234505465732427934914808751430211816221455665799058991193657114954411439814720251388505082465296377767227507793379062558970029462793268277052799242169400066265553005336370071492609215349511655726447922968782664447912141839831667770299141575118695606070577646873540256952017301910322410835418961886703011106865555291062070831305022495739299296409674533957371858917042376027835702340592368377407179141548605713749908288379809621827952314861841318960645305567110552486182618784964256881257681645151621423039465404632039586998405027996044592683238026650141612533868983324607900681309223165555519893411614096979806771740391033157832572203473120069552145800426939206886705216005288908212396623378365882364638287131024171222521506937640266552113060431500254078015734593737201323342579222244485818803911500026378159478126783724173121585107591912622081404363549072533743129086574500109238875041197288205129660862151368401831800947944631696540458383035558481430370856215305748660142275647438862549142014852386885306503997463778101616919884620758248537476211366243087148335482162716162215626503998082561488362395108999498530960801343557391686429637930612479245266347054208183944254773251581377324495945437307541591680084232355383877777204004183546919262276007474989650931951497592865373702768580909489344767595013166421643702956839643218672615143295789688767587708718548954824189630568046748021149563712642399540546599223980144487540466712987043801817505296965072774412105402912110173664640567008286830407480479247983985173833825381765608411277856215093572134899227674698189152912929955012169515199676396445258447708789532955908762439888285736003133506339593648673274200284897147079433250820948983662723670534238598551077957474220779590862106452504792177269117937978372941468418026887422496779938543073606435850994270685586836992182041871409891928713916596540104067469118241590722975011273700351762223835443457332128057335293304937893741474508098818076923963595427282738221902947345882319897978897252824010052559630890652141397968848317029466381969803990603861108797468162144548933015493919087838591922802695463383938404283357440780002094724057126058158877398761628103709080453528417486800999338456178416947328467092021429930078769396370198498742398850211256972775121396654242536447034622275926285913537283664044639902651147865576137078309736282404410111386022592850116863199043653082468279152649447746522328486427655163035132021119295451503864565343615210067056405794702842620106390436426905600618024756954767031440706939888565027481339675596752660935698905268747186669541756061059725417087649529264636522831741263007372805122045690022906822866791191285809311999445044784897681233973349513565596604824213873289702852007583679497136470643777948745734120140283359196460223352144512951776083696812897910036280085535956806258243299059165212374250399417431854889956519232910008986706914302942442073645148887874354710291249854629877833504776085154091915756513556690314989397755632337983462575620324002290611191958178533680328421551500882160001839907632646417591439398590061130178238510252295371263587897822943336798980489253498854661587337392508909825876914251570845676719296855602848870175766329542457450721926687230046834834738295164824496181273187054989745032217598890812138666126979117731674630608968186208105451063501553874221827901804233729085175709845153435242372516096899350789566711541582953470955368829186083467545644338159777103009991455442988828486052325302504228620552573218948928410269682589156451103908811896623862554662778412136798557402958391278185007194552853298912455140547901153037684652187290143723951223349829377355744674723102491283515947898800735970886273736971906782779182856834319207822462704218448794943251925870649158988293831663892049732928606403615188608749043655948778984096518757155720992578176996313828957023512824863565651575455218735175805449719290347638102700641178250097402438654388230186047319918079471405211192432776659187876448289363851521091073659054836703525216590980777268751896442221935795760899070961679584226547461973147129132370069322712109690491354541486098632184553348378267578987719753401337439730628432636643241822310043985926532072001513858796977157632439445408268031264612985096227645054669129393170757305093786758307787762268706387219348439197847998702596497897436884536950228112486076596683987553083482127372667934829311884802497140506583772826985101265367657149055411092408936080884158328800225483155693684081969297768595662865154978401195602236497930794982318737572072723943149690778772878210910997885159521776342238188755169255174342231475966584929526367888034679878240984923253933881402353149026063002179915997241038452421628329086311233932958363746154476267553442403544323714100276048145851251767617541625214176142101836393488941513990838903925510498250178837096098764452464054802943614272617444680533418730410114231703076218943991704964188254927979086879518366220231322318117113772589730109625962502868627490859152307304365653277197706930625117510866203254939048860423285265256983597621886224375571581826471616383393662950406935054924341637059062565520832338961024174055067596275350536138670033797065526135902818770563698521259553448308789672259118906923831251477085139189207968661795686284259854582270120977954446945345086313955313081125833435033438607274547096530781709145091848557134654387241986875554044135320868479487993411423570625774393216454832899093748149013852000988046452054593456865077143309321587733389795277183274843784302994503020970246479783425668361792573623321114446459582378807879740230030065317767393085183146201610906905703106183142210874538414667040974530832603892567211805477031136589374350167728376163993029587222057952877568997315251749195330782943550652302770711638407748261440674698353438121894684826179745108339800474531428855531017781356087780950762093746561529967294317489133115291079763708206497392851925937966760264502780182786445829782426266252998790820474165249918605308733239603263088519891532552806243324042404210321342150686109207303546536681565605375220698878421920255922479378283426857409586100867418898492124146564959235875783551719801744618746488276770114012861285592038822863968037613238842015515574150653806488204193111101006706520121676022570169077196512777494467709433582228366200092228464527238870321169107232173373966749285155671605494064636009699841557566789202994392671909528732139394527096455143146110273430703888113995345703625721724077099761793721150182632045131294850616285042273822647126941337809924259104414171983256173766017221846506641143636406962364304624970179474829948349672103311520770794754784199473831296078560155158063652897626602659132279746843266047063662980797462343052547704567156848759491958000033929786227978141626486032061365478891749174858891573774748060798822257718042531601433903269569055161175635749253218243052460129479988417367491156246114355745610556399524406377980439348397759539407088077890608928166993615549119297361946273285865717515008842973013909199158321123543801419286605704362060073169121165108532610342682261786546135203487992574361051306224708758059104648823232434376093819750187097620821837473392495041686858993125033101134458220774566190742156599130505314345186434403855101878937043984677042231927569963086228166451779260469970782391218264066742167244500228246383163684519553884827075219523959262538110133687794388653465169135787360489584749079602432964638648448102812303438100453028895675913514217160157330823903500259466748221849322437797426846613063217551549607776776960822610015198198353751709601594674615227146280709837476180954927139369023679065139343136597286087645398572166613932571309042789837871378608546246614324571341074846112710441705467043295295507021229410541983096823909503979190931084287656826658144649807543592020788094575030932314115584662772205754265558154735922540905437925101283575387501616304455450802435667823559276376479324691583765412681130586745823680438322128403981313463270190136447604615506895903499354688476314100335381990798186683423115604786798229530212949938746514508328383525110915911521581235147672178139654592295405633153563602729319770977576340883015397139505383284783799000878466820120138563423927424870905833829043514215561073407670322713527182700209650919972254575080191698015979803175014591908341606026304943799445858899698441747359775163503458309198278984328243302253885389474455140585292110881224377513186185980456726453951980989533010458307761781589597333366634530198505152520873691224951578878945192198892220525973680755204097879961809503368302789370861453973721727783573995848278466272490928400151294150763748275215108489414871993720015796173999237703013750243678902487297822013652804010607593164538787364993884994113895085960647718876870327684487293414815018661523404999828236162696422512380524607273200472424738925446027974160660470432905743706559461489880358515771182482275675351926817114258180890786198563322581183325804624942016667258876849378465501810696497778531919105191700781824545254047423564908760653293145181249384940167537548578138437911063767594603349775926930666153772152708507337886529581552226256906631353724264045305276413079658503880389944496760876230447549513261007281602460421865539014853116168744147516081032474805739555333277137496327705353243512458921599949873629001901730395769032249883449036680897252077645018063428298650176052241400724718399710624091437712533525655101591965699617427318778917405869886606778370031405290836203313544738523156574643579081830376949152970313458727536474351269973919383472063311625056204443873746857276597128140948592887346155421757108752555235509865116115570559429454966823843912938915124240843472775629237241542470802977557704462036576283350732876001461562195630167868538455887902239429206498263063311606247626952644406948052152132479714701015894424951719982629339499673540331174191242940345524167059924211542039250675609444363263341135987368072114701497416708640474702492784629332136075256982881425470029816196897920527475242624871378352922286993616796973986386372431471235134300728324125079462591672943413049383409022241756135464486233663982911304904654467696629003021827330869305663840964368883305092372527493324153908337839838414694101495104542899127122684602473404042807307462000104110779039362750206893263209945553576037505168124936234503855459698366612927597155731005924867416481473336220463288652949737960505605876299031430927859821256078500604058057078443131058837982060350371351946883413925053437263626559904218073581446428312822201184252174585259888345421897245731753031908984763275112599239670356357375624605828342084019072536261820769896776725518006827758158800455241546465428018771561387286173141866976516308057902622554319004219934755391804218842993783856897064697791989821799069970324396673908882249350466878983084734148245144663393667944373077543873616590016858784949502602605065445777080179923901827822682563550836242616530275537085403998259442940596308723455593307636361546257602475592127274748096224435504822883292958806793686285260871875902706004737437223667422549685148860546476807136701792260011280256998561978969241472929171704177726295124106706919425285320492026842589742448107725903845865487088070005251425109890049690361828899729061662555020979979296183763036636479488108255236965316148680186305133901069210620791760269439626279096255523577580588572222950986347969176223370333227307419896194987234070650224899991512735632244616132901407620657832984029834567332335021116841310429689084762123933952565396503466355120920569081244156772540945086395604864139581302774919432404892613779327201457493093418606725105872720293372538889872317201795673914206287515140375569397425812021893553312683103964735373065062864717583510619204220387899317350772126005070769815719327901528092813401712862923465357296198291235351370040573353976901773650808005573257334528470523060029857195257550431852417762047818267286234437361568760392034738342377438577809425619339505417661406227599713292757349117642548867205517365070422941231928097669257708616675284610285154471500479072487957064616072226984172911214540108937003538273365307369054729139517182604545734507180873441450997563489299327405884046327825247243235044393007493328511983868082279012535260989088963853641205698421830600296012126422600310071145806094491264539341066115176776715433140450561048530490730672819078942009128451039303056655817629097590758606286762784666259616001451377591581619850773526193019360188108311121475352364764671107355640677353712980985916722529077466305156690297608784238225248192882240936917901350485713326369176093773459520310581292296601248942565175757419566384545806642548275291300098908470900114835692565918291834830165432594891957295158872131256791494173490636051824050464775708279504605456914322590610456746054510700215238239959422261628892897643731974700253717941742145631733742682389437581554985172921900937325189241838259174689038513094246104387712180077199990565674556803914721316051907027948605642701735899745755539712919951467765605164158919308802376796041128291023315910872112625211322140768015587013302830886400808730685716596442513192940369713680993721951879676644358333299157123539244671806983508953330660167040812493756608208750131765671483686751581005665286627938416265139147576364650927969711228867373158125579120540771727370809771939009457894577384550676695706744011508636499795965600511970478663429451461967888459412678273457987164459257550470814895895324877388112597303812346144231822925537573882019432806817285250184240489206833072239930703205801402176640731448781011150886496176890794780697313033965629978107484666732664759002908545051947001357947982173073981256118511472404142531850750093807055244980331164893345171491963480665418312318838715143298444310857903345102278177918991819902359927555696083962469112281979611302253590733177022309267476143094662362764190806662071640823524752055537460733629739270391853154802902541639448155695141426359606839352274468989658744666560277134858831052251372348850490477887879124128892935684635280106155621349217910891546855302237517755682838409435571611180978242963674799698474284295039564973157101371185581415935567708465283358322251847955644837204951460992205148138296612402332859352136496499306687415324070276805003498511396786710845758608399632361338353313763390844007075188596056845959872780145535162827463934589295566176473187590987036789022916984353991428741645156543393668335782644235920462461069438949424647182208946792404928009655862972388940400034687415366209317096038943939668220638981669472935790827612519222130441253905366066689602785362971236040411180358552522751625233023338097890586734133484346443692191890913858114574429549637640803050674912983139689123225664409993018759156339140624143215788231098068777071486427612361461935368185066920354131315452567304873105786421580533955632438822717508198378973141887533662499179327662351730272425834195565700351603653655876372305431577524490152477524835317573792115961768435810174721486147640827215064275939587198173942753977730271911783167765301030826227344266085681898660164095643812538968778939498449165074301208000466510355371924625909344074243943826170607074171565129940903111612979065965283350135767797092853381207302185731248388876058147218198004837099700525032776514750510009246926581987031557667430816260859728071783886496506020158781489346947479857455308797255483392529120846411015159638323949027304290110130678929181633401576219946177610252302812591668344564738662031165937200741215735380158483289578908495801027095719406197163496841684411093428624496844528930485661207042603891050055621422305758181198034172459340261709112786676921438584552021218748823877137072583793070437424559534388188183532497308351008581274648649011171888917711440201939984769414605731296952381372392611411192433620526058468591779252900696553214917342782666867579285722761490853233221683715615406551332238066168875456463034673877204476146903932251033406524048942803642730507880417418387688023362098139835126512977193767045151451574707041272273328966441093716058274578187583802280679499387650441099168433039961914545186038077346009450159748795764627425704344881277936396247502177681498497356577504797046605908526061195727328038532804972747697777809001167497866974451124007373343630830706960242875166394288602336040428087900327107520870131971879586923791123096298925054173268689449009021095955965526548243825241135884404206904983699891002443101857473988873317992361148284629139567582417612603795536400279104537396515608850032447017682622669534402444783019289122424345974008456562744144294490050410169086939479952306528000684704252331969319969991740342305775377118353251931379073918663485716990652074611119118630617176848538468818445936435997654445110530841767793374265850107381613149564917681549708237753608096855311991194178043666009939506937684888259387739374544823413758973899814774388023604966649984894393522743835842664090430425777325325474388370172198289066146029952380167433242950644485196394320806464505652227350497301196385709188760324134225951466825739785916617918067324170815112667225518344910795752594020545369587713801309161775993772122760931422686088052026818341502272767329465686862595756179421466367019453695823091429735216723057883862822358176342779056143825340411238545428275061773853419163013098550459936749288344640070203273013485889433483666237523772337701609570859291676111273640612599231969348458716119736511176778893174120727415198680777324000838594595062226692729602050142848081056089869859885154162121998459186729474916002397593402294809602926697464057912657545404669643122460542088547854050843414018001731527698169229473946212123695307858843673854240655842620803797647210299298105679176048753504754470142573092353854500211510316229280358959618172769233298864301513921754215892361309646613029033219083541522028431521239058818904506972779353874567502138344642344653890777720460451779028735639296775585229812059771212139398587617758514687405144573764771790207608582384803043691365151462727030128428295144589583949967110953042965453127370072523079083397386426422124824685647551999516844156143005635655844480836537553254340218753742441340027211283411359476873123921144619504852221953966741814951489038632360791564288479409309870764399751343545571762727555631182416481012275682251080835870582140812581918553566193417484514650624005812643759249134127360502255431244169699383770871460907593451116904384818311087278613934789721379411258547817871314853629308248005783688398607054649900182013008133158334325036868130021986549968472005908356865497142893182245555682862080326543219612870945270493885226582171617385326956696716397647097048748580185188402397912294118014007979862188278954023451467117055507920944956282802431643566026904447158811012965384217705090090664968840833324385090158711739896832211149149617442753465231421133915553903562015915446597905401646089781536201332640393997581352379367357147612153077022044950163697216817501893709841175668260497943201171893728074048555234458917629577159551080739260166889273959426743059439510047464998414294258944972764758687684351426608976111743074018670047750132314550198691030597461749005819118153923553258972688736485302718155034718296510121285991585224923325678741641273935542337246870180699324387477213131191896362926892532599537065320892616281717104028812314544550202400440543057008341619935479838734739106954373196241547532008869912645161279203235607946003729138589057467537899817577941558402016879273846450440234101117721241663015528502429831629684036914543161785822202794968760180369121928778469768394862264695561988200895053476088400621897543245998661393495939144950139220840871113134701271870724945752389632242196553920921759368175750259706293921394601464131692245192847770290387362739329694177023136534046503394823315856704323485365430632074462642887342462357060209042974795037145710607880628546280336214159861286931405374033823240318582847447419009953193114654475435553372112832221187758049548674015875928952730791221032047470709190613863972989379296202715498266993296478460985803813482888228155583046874891099248123834134861054572176731278888016643429327616365100139094211964112153832577112770874666082741192186074263823754172484443281111158698501476098843546067699452072203049130605818748161386384017252598299346916706220594499042974893907864638835433090526735246596302017060394127083728037239996044545324309313289880158351073412681255876705635328867666353392019110710160187434665398377899639094337641905891648044791774349146910318687951297656824762565480905996513489111903109598337037162049673068189191111879066164913441025857491079503747103423845217855814061815626105563112225107900288816723757836992517686193010677289077740684298964254228668521473740971707225623293255699334049135350605139965017639762908820117905082683973189373925172927750596372054028616854428075039936136000475009418832946049156840939649712518624810815998136151142501999710960171024846633867465249158153523814135676129291605516945531069297291035738981977967959806500392471134853174390165048135473124140349602464073811580531079052397164166991149788082233374448266629378209237163946799197849515902072649616204724732646265827458677609009133765389784267421900721255273161469038879008277899392059831695388556748978314993111237586783856082443044295135615630756813867820100362968627936259749257519445341499122806363004787878892705248253044265585944100622378940378986556457356399975593767592774328585002769232480797871803588728090751263987308748179624881607773112008854443979013573345499417090246233221586188625676227574891980706781854203771132984173472870102325543220858787632054518660428308596465542074134452209911050067656975397615418253068348564728607417852166122594735737123445449275313124036896242997424334622351060745056157433323995441432622332056793103010240448934698093017272037438883512425546155517757872250154357102335622347014209655098959060632722675236705631811121025126439879493556222587056154730448100845926863019884699547273071440740183468649698459655307594682343579631091410380427457288426128016193315920896494395171628602976242230476431968398228011963921414143548571114614118216048459987063740266863077713997092606665364218500554323902116815468284556311979716488867555420418013620636659771687530855846528476308373705954609861495768225480958844138038066112759359544167180256846721291056627891731452101986102757468693183235071864817119434909052059962273317005907377548518978239007246304974647365565524516448149953984633839646846147222707193218943957043116764591711201331583523928494945552817106088565585752591643069026023583172562316563466403703232385821739469693480410354412492477821313574749995325769795328185435652276449558164975401293561537573206224036113079205621603898600778419796387075325463155243206305924626829368782575057352706537933164345983721511137157739984130916845064077378912573074292619785344489468708327423482194995910328259773219182962464142416156621000167746468032149812324408737528998939249694364730763069611654711117629419968115368904617871751997233234155998227124408530520797753115005351761572775404214246555112133820832133101495820956601528535679150320496090496564730506060046581286698064486544450896591297644062473480480914213672300194804045589115496570960607082254120193364517088434680503001754376907519452497906656335939472674260875494947964314557616008571584094919632206629678656419273163200120098511083227069284670317791098533705143389352727713616715595310657778097466853413014248315566862318928638439986001757477451243309817767281444947668148321310573538371500384807581535113311687149394464740922652417649188625880871656845609930668251797208887855476799776101015658669819456843418791815233305833920381702778504216608927728547458524133110033654043682047884891318133644309492694408344677698022804395190362340446232739439777430850077435824903096896106563078732489585036464846710379409901019852812929164820974037977495202462261087286653327628063467985536623419448717580161890555521269414831965918880364152317248766456528366416377090654770583566620848113334605513457971784807458020086117416025411049777003055976410227613905416392048911840570339593347975694700859931824754631453316259015495120961588865057735952947048072552538819052794512920735422377399972552111602027625525770101439595670888175510313962446605436942149751853594701109780094244445417857539351945233689239298475352020353177442999961482852610639637038978704691704134013898284362686656770572515204322405156447560570502526690446763946066462832790519822141782752178331410756494474271851471769482019234997749852046152689007738010071439843223585153201117348841112844340959473907902791625917281191155281899810718861837146764337983368073919132849038645482618805026958086419577832632989841639192493584312957511464203168938940318368144945307468984621072136931794216542817352542303330977591033930179733484674824196624690242485860273687105061475876547578617684273012962370933777015792896600441881569287480644148451942462962088052951338107353607667143917521701975775653059057711164570267336310562654512114420682837169645229297012372442144464818606463836731689524542584093467279367615145380149128846654024063379263249355378198601960564639896711874778598327732360999221012080772985765536202229602030871360604309179721080122726772531225485946500375688730250515771252228383364983400377828991863985432708266054087037041973765204664625053258362836036665829553866584819190084400455344591476194837588233803273108587288157372598490050401410275857627406682591260576264957205003444444410015016507662823854021408999749990756169730465843860093961624431759549992236906600355457020354331956916418739181883973609895029302928137519536162219252708922507905291526910844594397044307609059543681099579513269864467140538857555042100199931657055869717895975873764347333209729565866677271788755045934165685752748007740719291156806204040393911496793639606800472803396904520969078166662105418993206861565413662905325044295417076450682275681374909710665677168118581134919188620938575734882314542667180418378240454856968851423017786614916278305009009161940218544542038402382805081308496860611261619517843839089594746108499511269299064506483915799971612631887576393416969302310485093336697805410940494511588082391831582078668036747636805841224230789281329340708895180059554589127127281237738223648231263022056778074158481945420236982200537213995947863281484347229157824902460333271943872138098668161669170428558747781143807928251310698252417705849862285811165190294760550573746049148672895048287504237663353795164211104216989611481383613518538267428866196021515936005126369051634552636295421896768634688640052534220302186801326410868398770115358760333635264886674347603630610843005928921580093454619355544400914654017894814272735316546133308089159006511782424651632417219954110637870510503665651653353962821661541137979398490351588758351039496594235266130878397278897764617734868171731098187976494162896024399697807946653775802341687740067010340515515574198675599105506971785597423849755498431598366139607504714750995347506575923484184968075356875010532048985824398453668550966234911172371677069934851882479128912781501794153161271811417381364393400326057458273985035749236250181767714737198481155581808715401612936625078740240314202384721132855504870114158827961974890635406249351944782363519797038486419308300445704638123180209296850542027670765600382585567525545460000360321280453335549797805849992303878250013695515532603270088779841518180700698922249875256981663931591406613017861116095301252286461889973470073714643417093731618289989822762589677513707878111928134976067358589988717282920312143748838836345169257702008522161752268741668050326268146408591994347017282196096713487173808976323886791748406188554439067255163540895642286324939596014400999151339147723721465286958481092464413659672247062980096680049518867675691316309711754748926153431573383492974419325503175749363723093461681493961407183458842855384331129786004995775454694981321502393638443660686606071863634843116170024456838451587866016407286536479846895112732474965624090429905014999437169270541560135483089755886078842844044088481942814627940463194783125221186637581258800588504016053573232896931636197764983494898052840581217709119527531083748083960102951066837624543087202343555010936163566731816514541003847742731629161661012659937875857028676876267610597734512088811977743010571552341261361175538131672776777379926904542822257016718922568006989705926697765965406344920717480811211779224507507066136801357472389319579848240395052068303984546399726403371196473027819425882225846773119123473346107842426524509168636533024087844420196114228180409425527103786683690143221014127966364687160498958326450603437931999353511198535276817585775322475506623604111199819506559279452347989663601683829110897657792306171540876567307371412547281108959755033263775620054592448209484250011015960113264531118183077778389267716619748439979080077241721072207331994324335696759809625676532983912516119220686704846481218314194419416155551522572063889176666337339826335657363583951320309850620372690836165978323803833443919983600650690334373752733022500127461271290512173463070429338090911680838831580018108141090883347812709852240032404077029940770589123609905842784290906973767099030534723005132710212122469042767859068790874205404743027465253582732540929584370742394783887648268284053627586767806179191672363274298743872891266055439267267555355528222338812821202817666094593654723359637191697540113454267709704110871823403526778922608700199309785665312075065429619136424379203053441669778757551003613805124150208821031501089728569691408799633912381445396702049837322830924831683854668615958920910891134606830729290097250504166704891442236001918205795208078515495847901506765814240868134614330751170891024473270043042890145347590724522074993907358476109460339362368239737315430899538917579742451303478341069869974162359900845808861151539688945589738482719368955257002568486570727815543106874847520965164244917614932968740518412495621122883032503311062937634169916959515892126096040683820874829757743650110476324332632823747138061791024212062116126925052658611673160912492801657309465880668138536412260934894106143205802790561770735315940492635526256591556993603683925665843817943695080073542579208671826657580336855282303407257956655944133699139962032588079822960017875190125670949420299161028355190811540672120525889973231658357510935712845861900855735233428615101809625027831375131587654186494162829096805699114027481509916368912041107390885591681994897022142999576389108946647599111418778799603594299402603726920321129057192660087771131775631107454144311722309077834046323970961080245828802089507395024154910240555933806181853916329282416019580218193744572936194171928299530369771557060432294070828726902467687675946183865152818795198594318441085461659969909015317929415759760919107699712940060712897280437977485524744162870309654062407090400584459905635399745699069932872346639500218206216573487375892213112542257991773238372982885285348138104093372158752951134652649347736062137166384373751035991522822093438575123327702487539939562188191696354189110907636727492122296528020331637953709861118173993369664868819864863011476499268088267748935979062947094255220463664631325565024671247666051600053312534956433576755926582131953227893631811999475452917535011819327402725747175081678618470758883773806171484645540285595585516610993937457883123486283136031331256639547839423784577429672351805391519857705971853511615679612247333369542199277084678486036917910720967919597318704061385791226726300635177331804478841200669220183580886195043809037687272329841277318824695558126314305833871834355562395585618264702765524317035182964762261741627507171348902051241907306492654125493453087919704842023827965034370697120741975255660694927421878361468688166141967632208946389711480944893816271814946850848875021089857078084456272665545025294486084340923811818949186308828317936093714254507195378152707983429729435146839507024249139121902143753430421016256763630523546845979335346443340778807881935427718511869141025696215572362647340455751464620574104947519307922430136931464578139885747539436788302448015553782306221860487027060887608509288543428523531125271832664601598477176615665735116257771558759686171297034139602156763295945213408410868299637372251897841032009991713109928840635074850697931668253252973186023333990436817938002726418916850455197857281769274645933216839076641087546591352526595536103121035588230318259184145300834954359108620920754647696996758357018315949836593784751098084549916855733151925742847809765159842705411506144343497118901672885961249782160005196737189344372174773864942152648554542246770934933498703772215580808983290879265800754380411357778087650443865478075813417290969051575754870124898852097340523558802883696524614644060095883460312020866596811865366134553814529767571471943912178980402893391492259836318471101137124155952364295784226989021275740412004654492051085923371146654478911826005343625680844149870368084998618119146523431113598610327904721515875410157030423315681138674945606786364181583678806414042964616395483732857379242581486892822614678023356840452091431521688322692203656286847401378703932581227698631492607350428612252932603966122427768306588834511227793067483289217440433327054198731722125495919511808127696277559338241946498439776377827877331539386478916609600417048453184767138703510919182559554513478540082843171992327065724388048210715002833017295411155410101618876559216841751800662999477235059970099450411358877502661240812842604965356323499253065045962859436694233375647839841075155030181021545850417233570972753237215665686214333620182602370340932877327956949526146751652583508882086550008575529981021400626455213282279270182213449371363559919801030516514350408264757298879809909626976753502747492701360189001953150011826451517305767855987757825922252257370718842474780700224864806235093008448925858043332428637684712705441635935930599714913618151195087560513800957383476727732736304213691076057960869921103355214570812709051762083680773652958725343733716745699689888289758534361481167498840724937162613443546924246271322360812790487481177859867695058029545713887082033910092063669624501548720122960611009000131244678739218831551312990280254671713639829636186231014745030289631081018546241638871599977880724229259020439163370974080829562364869701267607108339739986891701435131215029699762287946257315636490620852586831447899955284903691275543455302723605757525262634988008919906294698260487642454791025483958513475964248551736984336076140351654236514528922485491159796244685866829211170757555296617277994852056259885939556149596067219290766862245037647502356331267328908068394957008471649731598711563081703498603398911473876573064068655327100843585419359369639913872126157645680717506075122666697486706793572646942142641742714105305472844538660725895965398985761765656458397010258350662467275432721760323899377556370212812900610470562097645253160809105740624973502143021135719835293591549151619112082417080935200682452932754459951636345569048338645797598455194320597518734716015028364120389102201126215339586815358637114813282637417478482936235331253514243315362673891057887031746485361257343626834363278895199600269521818436517542133209594198343443824521258803521968536524166132094443668880132659257810329417510168062919144144934153442285968733123978620288520542420333975182590448870809216793040352236020311105586646067414678354573139934318841689316655792049566882746725246712944150507178018271757063910899420112637896795525030375226201859209262807092012402392121895905003742631377627558993699445106439048284380673760014290282897185160363860650445346278266130142977544848453003061227512421999707937697912335079319277515131667560484549958705953708819730709670746735980009228355814848789348303857381621375478962684153571593791656586942348486867148811956184506328906313920046749577401646959821525175438077047508123587958882123495601070202997742113554358797749740857223641985636059256318663787336507115374605965737574189304362105666381101890257824313398515019822159378037648326758249770064752042250563913414671124093811172200427078417832308902196311382797740024906555093806369736130625564522833831040487917485776761894217389495471968979623675510160089085844482444152669370648663695854986141376321821317605034876369047712348478518918104312423884202075521791164755533770831708250199522718434667400117687833433077890815499660248977636996991179046940716219656233599424219732221991015324659846421039674561278662206583240438488294423059582197608421301793948579471421607486830252581705963465260725248321463364449066094255463774347055206461786098223640632388588072750641549686344728239786337524816227044053194215748165538890025620200865064127079143915648045343699681415686929872676321865370905042761940662126647447536101733828306446516060214324658167367848457146731700133449863450177420848326584091574580372339071066900324072630135455670476950540532959850131022110289090605585054950339204176361543160219932479904330443642584565939352232476137692632626667579006818506309976186415534169575335842684302911613646323719035927338752255154388596228718998251080169968816170266829767681071218346814285758353527597895697499536472894397422161557986311488931986773130215118067889428747807205907704331111375118759368317246417215305596383045100324547024531924666807341668363594824855314821658813649153830502117323512430467226850318297554504463460027163338176716786218999174938872668070493251129171176451459044343403687613124172920564763545226311124924014412698332095882534359352132468997408879088138722544378520780960052829589823365484607212743746101946658966697568194384689919106643562774216697551264955313729137232484605540629252006740589837508921281154093865330186572172465303502428453238921266490400091393145202497632989172284113371822973635690422224447051310694661112632014699457529228881826042839747268670013501027566194914360487800565601655944128005753004634608782641791668699666606342342455884989223532970388782876056328685741405675118944274645853649280769582526217917185124868889861908893902128953422953374863002184891829540730290277545857674582381547507066520089626795910060885595826764118470968830427298705420587811594036019644720985543895116384992131620206591536921206021754333814760084571829453706127790387550161964807703148017627102575770780819063667888839815061701675513427360086196676997220940832313578472328820022129013899992721090776276105582324226177420732402045407928447573334922960801978484790987216239907815205982055368681369733555488914909715551783830859057352123743784800565493877790355828036665323972034393800948362641869672946403778904035836610109115283447923610435814035740216932242828217506838941584252628813522755908925778453912081522174151867985785976984868452937277037471834902328031640336992834511481332345197873603596338541645732533780326637464159941067057071279922894278309432879632407938393244537501098574865853695192287678851015966025927021141403438046347992511107993399425206866085697978628735157967508655938647211989377338439951523139855032796250319495137064876559399909850361237416078757427401600546668523299777304442728418506402012564829805670646785254307776165635087648032804318063262539876433271291888218233431230567232098898533515457366101988359820218280248458208599676470977286628795493297778532604688663473128493796024132175687333731013603429882352388671689611333449961227843812005481282335848965850008119146606152362247279828871979756130689012397040178538422456355429667705290418685281243741487275068145766296328080718231144556523031973131298004690224747526852225011098951668644666412909968981132451577187938804427723005356748597833204762511971331407724985242472148040654742155004390667981151839695581149773432493846901199521191703295132509341465984422694755231205160760686760256297967229576721084308242513060565274711398262002702939397801930395571854602525463280242959638486453816625996592616649480716757850370910012334298867986614074469345107931768271982981089310957132001471456469898694957413169902003153738497647480385268943535194263120631226854902252976372726024486799558390303418569878067461172288280504257237065574820627010473532083224937140811276524312087625605579392527886164095711740303203453386094571269933976831726613239715390739268146322236310225428583053698581274823103156607925475422179638547721071814845631117709284597776819345531416911519231837705612792476843969888601533686860200091786607325475250047833784526493390593891558074440198135325612248622555054962646285660761397730647928688678969229063083543731035637841925509109442445516857418808181597119187418630649802515649284645267633304530893922502910538518520711982702710480983917445494868099139182535679577162974802146715102866842357610114699260763697367974051193305771554209474474667447500505424536334446930024130922064782292623226123508405867110007460231897515620492246780009353710880432513993728401705704886751692524439979585756943290272232798928616175173952122902021622497274476295224809811659911450806210127537204806510395293400561907701918291618976067673207285028995099405293305074917890513553001299826270115113306178993532418310294667398995597854806918054890927836806525792576490281368894370124332421486404860471349568519589379630589279029698335166974349339711442192532880612198089239486753731864976977287208029016926607937008376490221555618246820357250436850109028545066426261436828424071326651433035398454928913530945253140595103780332165762489753733638673337639923850734440411519631177849733027351920997023496101510346824315206801475388367417404807737723702641675511085768200870334835157567386465562416570862772815731887573679796440711793828064827973498662249013727048092432609816525035233705237546010272163143045677327036817267943070363940602206916747437146074324066253943099662824587371496479002787279287008057860921184106423663195279046398927434438756560025641321443088098060277189235547991084182247518222898259648678469040463286651360341936153614515117799953723992785750179442763579585292746095733874705341441866339944100847031588948685536939864226580732172836030717705409684690810196781133081786766430382049284714912305774100034091966548019718171651036809728038089112928939035757741626985576514758151100221413730879444604764286504013248328053249771105738359467301945830162746800201176750402490606078404815260724313310752903784786287158570614952575390144723924274517504934222269904076435597800730922601189203622880686944320952655492714866028818295124226713951798782132564573802184825566898694834337391037380834831565190557321503548317441357613907456621239150157795629583378731258460806696554428571378095733008908910809735335384852941522041966584808193691194235294305887430790295547901046258237507556081054568570806860666289886979100157115488954239421308409652958071958731078925600674996981486890851992348419662907787269144014095977527111133626491923387070830829847066037764615564198998310246186210959701652416517625463926222728451128429007918352330362601011290167276759395447614558479680245053863695594706425013934680710808015508847431189484246525646861755611606215225631740820027710907726236568213687677598430213232414829810266253414769784273857777224614583275385028915655871111802338397596975645484470136768597571441152498244300510224989313395685653479734855943116319736379063414009877445506758989094160859957561402489316298409166666699214752035641713224441421588872139603548752781542929745771788222281734117348755838877553741838917965513685440597556457963573964564175392719929362941664669856634543019986017142849930161040619681896827880170914657642938931726841412733222562072230853512714541883927544034670662949010275900937972282569863874633651932235499177461975753905243682129862378877484563177931490534061102177781401484907467711299030206773696064098675418294280547738806543984445268235828771382114498493039633497230751127968228155013126675015623661008182625486369952686909439326441523235125485379717846223934685081273830341285271932538537181592789401558409438541369484004785013790957723317908533355616724627584514420481860691967079731450280480728967991085856363304151001020920466408729437699692413066612580396496598339471866087667694909080554097792777154912626363128851978141721117949705745971806999841942067080450267248531684940445870073105956366790955309389983519240204581641203777475596418902127366643156425815556763952692625845206438186836708081290151359212226307849517993813746675065447616686703946704756500048310152270460445419139798678624532941368361922764679687640267692531079265960500180171766875384989367382128830330281062545361899004981199844229513517048454638930100088094238886357831273253725515855408210127903922438505737748901681154487079138177923249462639453711152879178387973308630782332660807770474646165711558312887534127770377805047233172819230739084733614918379771248034660533034384331355441056923887063867875407033233689968920068043347418610627429432424145021276995268684020715434708997381530986596805147353743571295215672955205547309796745249744797904952477769749924101333654200300900673613214986440052205581149339403176596545074543434029890999636465862919323386441344185842314226249202441940078753658002796032565879923328279018981620320815170986214409965129183630929501215673005516510445546821758582941784466782990419338248969102712983395407921618062332937592601108351207875150837969113053267280257472939044207527172305745475001359295514274540124238565691431145878488474594815954154724661938019615253924414843353461769367618706774172481259855368085844731496063992718356406115933071548758749870416035160604231582393290084308536103605940137360743665237702360600185741036166047548234219588101710209350966065884207127043371730995637931206272030356933468144476005712320782033295921870387033293084409018636800022448646995380572016657431932426381236015040734756318713507956309742499879076444203290238397098412462542773375750103902824648480731004464261871825979421911943686720398580852748523920468847862763898458379033831157120017090696169745523449329039914907572532662896054741073148725448154643820654331073580303338859570798176901677448544303724901627800599342226647453892748698111746789098120958192789220651848092903397270289688373940077127515172802386979446616598886687299716966996693149412939023821758212467063573143012120900119376200364697006290743416602949001686391096437872545758871811996624823924581591879624484452532202937874000044302558161800410436625775416657979325954509116242979930545477793584260835722266296509888481867821849821137005792989775642130798988409941326635053309778488896673700137508938448645556377813758907044863339848114866391216699257638852326257558181441969333056657490144309237029266966537345788906445537414857467160730916424952171992769446418861550086290428869416298735373338468049420456406146344030388551479312322453485065139318423506934407246092471988670675855243015287078928666953473966429071675466752383856416868180893601417996851771722392612958707436150681206209813316428030337010010813821418348363976126932887916618717203375017013704757055123005999770801809735347832427770290761285155535318876844239051870314944134712715508472291740257158924042597126120422408866658597557096188446271818670801387082690704420885969559731066496508094107424495675511080238216594929230062386010590476878863286058933491545162647897268868028033861215449616311241469216465875277330517547753397473698951191325796950884589981082554971158875275075369431099953659600851477503916194788361498084408017990352196757299361044396972248526286345870421250947042060350795559908197133243566707942565589539592542490536229598296349818993668367514207897407049942505560549300451121199420358514733176838335487051451187428061220000199779797650838919905058016735003388383873968214688069647731121272306794698009077198065352670298186260962894990976711174058853871404486924246680136078741268402787742112904513181681339005494388751816249985082759634021228795694005808802515035989905347430178425999275569691600065803287282297929154322062431590309572284566028001585310767424074329957456228001632315726148772577148655336549871356623791037364605832684298704999958145425822434963229590630024720036936822732758316529937403213013972878365253187788585927605501237785120072313312947003211891961064739427152921955214977948682094790527693642707146135015712731144995610645021075344392146697102200490377211558769166816006040489855403144940400041538186638862817686041798150128224570651521052384210781465249132740872216981566497496315600819815840094927252834708317280525799428370220353755704824320521258059491680011643682771967962488595024330524115656101093579708960827901659832816717558419082426246379310526274570442355239072929083688244563429092938910487542851250131589000365772847730246206868091364189493292644564630790941239024736205622012737692556473263532560158418391329333869449029824623152974928429739560646766606323033538894144574262330055383418861987597576400890603120635734648219522546715158393925348538121235075784892306595303542566373224507312325379069003639485435377771362769210101491414402717822530333654569065679903671727412333554946530112157751068344126889541654180399089525495906041725915755015605773431311605045598011613249502615957281729561144545238048351360033409949659144922448238763793211994746245332069373227129112832811284797250478293560911627678770329393821360997983286838166104447486320934864594282230520245568649186053828244452168516995658980958406788011278145546729747174448230070984126951918709603722808517840573232965991363645286019394362068856273472627342205366218208510524788184979495226368195322426624983318825530963682435665729420804515972824292097146104650256355155416134024694806354356168465447398861803676277622861139658797872941605590820218790436071850472905741257195751002460389947895846288881785400382678082674078238692263350571422511727585916961437159456455007161623308581445767964357308525779167150104415609156368879531406989370861454801726001246600768410137551326914086343597811113819841220223397977273991547182756096585786108979251062734602433270845404697631636463606386639972409305437828920800187621733347443306104602396676682622004177452258829583182621311905527375146051202780273043041425599875931012158131661142428127827113841834958373029215881401953406224384222020162318527324667632653751372630141836769542197391361519235355476847863379295210863356821179682233333153428353814644159284042182402991944090268333364618967010725217356180281975973670876413309745000869664778441818422194938644942186026472808131806642714102874213858279194860874361700732555750132021155023405006562524995736851088061029879258815517877153473151366323887133104204573034295320022249885903594523372717484673831251966079075235782606208709433873899402900562712918044219518511662078411274888546030483128835825591834518154883763145491625159615781217381358994311569839804474266272621320580397027172982944261586797988904484628075083790023278099399208371899054923799178892820127682962178110927977544196747349966313863165005546739673105431156542354374671935403615898762022938685265589278266531808764760842804296088316236576479752226536671799623566102539676416402197743427570191176316157422366603904225160029687264534739696726342727482176431117792698346955445628841005061893898181766238077263129131015833107785968558520993404117243589993216536196676811059660996558688759568153629781311397807005894697767311951902799008532083409841115411549501241275009082249610300894459496158223001959913684313907238884462177348626566463101350844716991856339868552270532703796237232887572499500033057312482515194485242755172076787405705893405928200168218973550202068039959017807213304746891570369686839681332845416396026585734628759746121874765025900397520932080026545528898582330296354375125123120116607494038456967901535539707807283992513682487037684488528917489932544853882444894536078847113123630533398597394408895798448454394662461264153173895723603459112534486086859896830544093829431751758971950838894340043574375477531093658467635537557992184912473082449421241742871995421519148825382831601041930516652065570931682502013009075626811175471156981254810184441529577650731588381067857674021069033809931672920592748767426626628229266750397349020993895543420872293935205645752684140126633504521464187853298714240528018142507783338242346074301421987943294112728748587151164305304091557369423458645259096760982485399571190631613610183588476652361143378964338437555804586861262275699959447473402967469817743472586241916607797038096777087953492194481350324393429674275011539457383625775953301732093145819213725435070605338469930398537783417955502226753614488550470906005137766574646177914905263925701040706776251658772809050050235622798223444191304108999859255267466501748684357924967834974390115632575198143678194773854787940741172354201155134205411086279639066257996500018516281250449596703854276553657199251276043248019293749605865976236502846052289664205199958301180114038369267917900641415450101683395342113259099682299173777161330215233419117751877758734317620504022573980650351939796615433073097435202289122216713479154479974492482592257863343540168679985076515273941796049357688655648080542174841578221371065906895761084448673245313114642968824904913539137518932792743603079774480074812313669922391904791433199382007865688454846975936665950095823499032643398795272447751300077157079816460559963851386945105110328929649715632355017757604523607342990399070434988122726935269929692332054793656473231315810727095865453882086714651939876784217964863186357679773542099528194467445796775289389456068125220858262779744886318506771161638077834579583216387847875493608085874946198245638724419815404122776747653720765120531896518697300433438984741796119605279364316573443334621976382745164312570109162820116977491003168572556441761994508175353837427442652383025776195567187509650383261853058898626312207869289821010524834617945444830550132601994470706330792888369509242906245538282129747915399374948730492612279229452481132929847726882245160798427403199722731764295952615061686847622553771682747785820312102517931728737222815064204479859080802598326983764449511429676349605055227311067054390165694511856784334362274103096553348782565622007038354301925010119427310960997345557647801659215063579109531262213184427494108006940833774179573877314834226396922823523487689385780848423463661375594293233931290288839969254677673762284367271663109159753051468693808473655210663411981125785361911082335000284687299354301209601364228209098469685491847794113196928186636925908667379355152808757660025947188882463616878524292002294158146606203946935434769119887004592443392819146738978775266300931673593417467038907711576363939800430647961235292955088665465308266839254214967741093968611553502373863827767794009006812339467468792807431251597335561637047790257158627422143647540530680823421573824315413380764460656262669635775267156479186747921778829984720420397917823156796028642945599062439686884399252551110573561999981945685304477557666375420876675637826317178448824016540893795027555478005788954414893319028040902480292324048535180348602109295342936888554230984359985198110809709437818140183618326348841634897778130238595288227392486833615522843599623409589880885606309466894037533196454305095411149368165823700612585439781580791061317157062315139946148775506937027908465161827180268661688909193817605099814433264104736106676906442822173407885149135032055135964972193179952397135575428680785560772620572877169605038038892844661760143988725949531956705972140249290783167562419614113224952244570767320832093078212203947157164899591911886200404380872899223609192496812798684116337526933538522808079985745480396676188447280243639703578668467587770477877411446219114565401714627898779558323210363477168678435387052372858708338622590746254694755358285250761477339861941735245280823453133261758680707427480246313053405488612589578235846605197844645254816360186027416555519226300005345507660840636566579815559090314771449215564323135037620458011460026099724614607931413136189638732153426621387668989872995815063041532794862668506800276896798851531704965446897082300787142834486011312187203954429472727376878140131748318549897575618892459003093153718817066789518938461613392439148350570225541152731924105311859372596510955977862094439044572865014562632455897679230577428392399268808778579246160695868360007622263394104145874990776859525628890327684315640027746455113191980203371297241423620396399099029389166671412972721743200906639218150899238042624412631068954313454548816194103798902930867964599121768102777297912262913379913333326362704478152844545949361433826452596294609472054724115918932626211477326324518224267159956838039513822554243907567216828004063028198192410223837050108566574587179082278688822855451591477003485924677345916874603102876808741427154800197211695821211276053377265027071860159019513873590773159283701073100708407211876304014770431282120324081691674721556999595949333763650485714948408166222868137062103815099706792723229407438084988648399655916293229530580565595082698110568646729418155656931686358063802803195264806221200030217714544546966379637439880365970182611023415114709703945237675612229348925623642051073336464088499041399229305874523734132438633205214922589222391830195190990725287125723076138724047734718300345278411420856310471958855236230410816632196227986676817513491916004489701296828024521053360969625880426131007892431373674368090865377788757538316504406821244275563587730966326893015638754696705266282434377481633419341550758319345875453749951771332089730910098105403336966559913382702615593207617745561449168810268862742354936224676807864647308130727584883173673342128574221659350820664248041134288933145343872519010681069776959938252190417257607490223520711965262887005304918798645351619629123536478537637248245665767959036221013895542962682488241957053774075144220401869115890556364053972729615992001540025103679074667085238399123171928275432094836345011369852332769159140464448646869791877223017749467584572190593283539638555465799480850665603798823451249544239179574491039413457655615799227407323624271291351533504317605276836944181982484282925430388335904494972050551919434556265084022130998607329981170954609116276770619115788142386161687203175972503430074326270919622360884790849936834890172659673821640186259171704135976061045314645939632874553508418067580836123802010473949123101379972955782594316116544829530089338453220858092849903122161925310337988742423731931613139220494201273266351902830731556079355289084207521562854986894939748746616092127754220502895551804730307014675867865546942702734011492721539353803342588081366427176559529191443346518529593562959548328305091421888661776212583946739967287977611581087488810253711547899784566787901316602827670417960149794423117391423246788441825536414310561165895020086733457158188390949531602988017523089508399544751167344271228384189168082776863599185521603252738131774684540035318335348771806704578638760380519690101037606631004154333657725597469028599434829668609290378109636711946053161092313396783597103010942249765469062963465541211359695309783238612803556146849107417007630636897171891341127498090613992693333155377433052855381632768040214439236449271105020064479191668835333164365109736580175061870983091038513814217309664824854960694421781517278976484119831255342553395496958234266952555404608409219084729518300880364282405657532814614817402122991776530334650004806461818398629684274111411353709909588883059044520718352952715010694157571922764584998790161065579946940359302076711013876412038159387339314401997908452996270638938406286010673826731330997171796066710808619548564066119537536613346540374656273347888039552248668547382286176002761693358240743220408389385599893839714107115993314050424167424085037172274745336393048151071021237012542306922668677868735315216783999602968590125981743586145243426767127895633659032131891925723149710910858054711426702051824311388259680979229237840748420972194109004807569500406394450737882149462173320195124572202642771845989612965420212172162308122709419473832134044097575520047285314937593241478796123517255444534670258081559605691470824104883020298319254177746188968965043789688133662409170104972111789429909992326981419077788054100437051565356945256627861301384860533371608371072167947237892828196892354797551335883581946753815273570703570300654090892431645035570031921563596262743338162219850243055266063378180550087960285962025685983162232575926860843946228468607462532197659350622260854394954473639588759535034761375144764679807356901311241997966084293547592153664865716488682018959203202778589336162681502729576800058221909562946322104740095059668554281200341052212885915959319870219308166400051839871650177566490860527964203658343487401349407604495251304367155727725294110022852191482030813258197756111842853892631394164578377876655882937738028924402994086281622090510060281090138701879276738415950167685116117016274368522423566970836103585946426662226963592567301601162532427845122840509503609811632856642111557544878384326658303870026970392438291971870083152271639115667532756541029675802231088321689906767349838602781016868123207255569827226026267220307011166365375110182673261320591252458034698148871599983252431384687922725958281577677702716966967424047907724371096947579171201762421978248840499376931303914407575526061655942790484804434183743485286300373978221605999429468776591656942274873930241172532585145184906807602335309679337711743145936130137088905751640351025164765045606293127786573449570747053145427237916404475578953520563945904059326413754353858495269359105547754644687606985593107975104727876222287466060484556182102310796821895207443066570907142497791936961608160052780795081958403625328898126204248520082254458110726237145490376598559199025687273859122027900356193061279855105286781627278600532214586631090507701922492058989618756164445663655895351566311559648698669395181136353805831216317535961692815093476151468491832655493698475127361929267403387668030606157947524941773039594558382407008192934265353270839728698643872086009942403500640878994433191876866496717519559515576796084667002732794067393152593637294850158818256839479351884071287462568102893975099898396506005103046145232232002861827486259765601438293576961488914001878872694564969787350340967124633844386521792929131439649729208521805008074554609290907250584042267459211981098122683211166723104637075113914438436831831800228077837081413707012591272294134984478838006009325845870569935259462110680759733349857726557268197464789774123075441296710034701255973591585531574612711869704057874450145551257583475913869258746852145620977876375574264832603789936132145837698099846136945852595218313093867310190056437920790794721372679440739934632068909671956272283978837081709873941669998874523105477272342973319480560098055081954499651101033212454594443403318604881585017569576059656935611276449577181701372376227130271453905851674154825284586863299855234304445877495203136590292161956419448930297667536937781363305973147419953752104270282791607369228530865996574077779292639217042551786268956048730054713926514017668052116592559953625306909338549954053504109615891298456233643152446850414744442641764035586923890158311319931236742029149647058931003098611414825525816349500217791306193597402208419850664850611156502148316482254629737553429253508723900188951039955939871338751106965551610138565010975250128944084520771294933431033588555581155905892340590302492353435068879077073458027095274869834253139509590946667559375382286977272556195856300265266549220440003186513374353091546690274714250804357130992998272846400272322265055019904309630839339432194250869708093018608773263702673564062078500235199856549283173090836591209191210118220543160144605714626491780552729791109245899935912789355014450806970033504252815251242564584091603348383417340709333475312551282654099747083923643750092602888507917256872596114814910342063745147560569687014830019218936382267655090809407912038194091099011497851727805977551338932984468927548779307814283621613984307542422342671136170278582377526701358903081655656029800405085931203130169441068844216610268608009692393582327152997986297522216991220651606667333955634226360006058506569838685216555684823034234085185267197009002784750964311716201898562723390289354512420251214011597182901588599799730556815504052712376433688203021261032359246937417539398739787120762164516426649092611974608854093225941803405935933099559897849728772155729972591743295712710524507779712133637519784698517478079503424413061186157909701229908535069510003065556064990320056013851681691651714872880772053547467202703711637448884868368025472171486466421500303186376067037276679084092692973572340052985285887545266349094316479921664274714358460465899448651138490605162964317530206094054460392117642871752768160267077582877518061452720557611379688700157627932858310425319711176753147030693231146424416563619528736676065484696614274186969014016237093648445668738575298785808590703165739269379960756290366867692386562701181102506348043974717489362558948384164209432697510967392584765135021190021946854707132467332662845149242029823615084726420507496790509576830726502823859480300942060671730098939749900542912693059775332967085688325564650574173292584986495369841863292709020504210158096853373137638667599055290033095598142804345689253563399627140106909113584683896571098635885880721884535020869380045698253076070401380048056010731491135418342138271700486048660835218226892242659323630292660721853967103060757878102135198900275214599806202617045919607965220954335205694224270890380595755645333869565011416731661533369689027199762369706757089702559266533181508254309306804519061807960004353314852285624875013845702505319676953061381700115157524835459437563624550924962253683320185381430385601274502562122299331950449872348765709628976707499574105082538900628323340534740125260903264210367322064325816344478098181074907736915326578646430946203999466939318377608892360987507404587771164558076329728765262181430585808110181784404424571070175064079993508503828707521809158549061698476768986937499091427146260302008298283884521050785541114016093934992182492425319198979264990298801313432577000497536540245259160602437681684364810378984271022223952292980720107801210879361928433695877307837067682883865244899884940649267523166959003390688779091215456013621799754706136770101379872240003883687538299521479618439150278595730353579719067487742311670817474826530206194597653782204830465353811639498549269050422777464384362161520250542557890933912722725606919412222385921140990166237061322798285070946177120245321361078831041119430503792860433001989965933526988010657183105942025192195061334262361604387255959175812658907883861900420186305915505316685031996313069194526086365183707918642856714049506590570908604935174742336886792203128573154334826784089717390988226958212083063327804002698515889681255865700233205090555327469897060132925464006289627297423405976302266957475475897043619712329644805756002285695995099040793242570299491307841901168383709332662281694761235137249395189835044131777040028006735363358637643743171940652099703661994718554132017141412571664201005225985591250832408995960653548606151817398070100718565316608084795095817408052342366197593622520072664765931906125351655145180033104636613764884528655984329191039659621639109211724897442389955591713708553109305963654200911429223431883767378929658643289143446296587868034031368597073169936132238465359722869795179377146523962671982820726423690887734330963446440441004495882274988597756644181213549628339881980862667778014001454012766874289885411795614724472684479584936194483375892894676319870126909732258845638792246704096088272707466467079685967616628831961835255087638808862916253689911836934986088659090675737294439058459442075119115459328150842810840656004153645030086148545076024523973267957592162211533820587598837975769689053215965149310671897744354957296847105337748781326944257914806952968102213424729402808012983558476407306347988039240839102189413711082734434711459289960621817193548734950414337630682967250154400287896013152908934555597679794095226554217819620658784532531045098603024269145472821071337568696204670498469552016854277052284455279419407857132931493531019206019338263576683448454570855495401475142513852139847528515004200106336634204236105842806764769144166545184766714738751966976441774918340747692835028657427385749424952597333756811766911650096507162488476882339515752364521066640783779145166655150900204711455036005730323888118000748279606336785130239045363943665344729677189758927666391881933186201571754054282672403244563295659374734294154973285624772608092532768967070939908639018623418089283849509680235867995835403741731930564435150273794084682500767129940955978153502652308469875998566433532659449180046084305782114018244547116579922824913464032522594145147027245198595185563745911367999635959629660132027311368455717049002160757489831645730070904254243010270535717500471477208911871357443466666788431231717690631009826735119786742831924243586906694373206051793502624932904636469641445012021097997753089243217432646758629577848666793935620336627020867924716405899810638642492916744916456048946019749267707875875194438427077475663933887354763723148255645127625722215369130628487877010469781581772055143576208038448606947065514617997879213878896598646724332769891041398731832803501900150418104870718626604733206628212001329133411622996175631752432061025959911934875457171284215623030737424147371815465610182468328614223719695223116886976049786293401459699106925441723010210269064317390799194146938226330472170494876692961094021634646897888078284351052847628522328677970707309764901187808767081980947508562299854643386214082863887662668088776798401810210944771874657758402133682403699544002630223683459299708705927574606716877929652198731368155513423446190178117729456097478426192975567944460135805801215868329434467820704522597830598274742261231677219030679905428856559727750730155779781256211477285471612454236969410317057409766769082817572872399162310959025458702999316495131721448781518536942825105247999369511152264623713656710016912259820365180563706399913072288962757016089593484634234378412900947423759340460560514818427284286293852205879085195074970414776240247022504619950208866707829686400893621329401733603627524319262733981111884210559848440465527890024904489685619012974788607845785466971467612916037919039739724867736345403378683253069918055867621041552327159056660935774940517388864866569316186650356620967614694433602558984494481994263281042765291756462718282383210983252255990121218112698565241017386792038800322567975371305032972214362684070049527590210044665544373097900363928511818592695929622037607664704080584756585848811272365943484340989680444105874047719641985446835316237477654947216063123864065169571342404519640968866302605879316023071262673000785957977361794496584015600216396239541865313051543326035923627876861036691847207998430151179182359992789242544155316824544976627584714874879541149560133168056862090986152356156492317494887493679959366208253416324836742699546557891231933997010782715546428727305638761960448802913366892360986412402716620092186970548401464668348714070847799545872914786964879759776328266203393095714643282089464949823638731226714357749550592804858879485176907626063412046873144502457278870428943796378540887660499647457281322639620213206162807216383652131814393290846164558268832101733200095553443030901519247423728290334652352810027500023423528432433641056195188052654285685111907314050838134719041621599258019447579639237966104522551494697524588155537030193060266658081129991971934726119126313813087263053519862215002931348614874513203929314867788273793043124005681844832685171432029104616091149990674020946286157590558060667676404220144510763054495168871870250538746408824179837326922074198409133131854610144877961065710207173897779299509715507118280364222198307738677783543189763947020830398123452509732476255535913139947639041821046975766607897521385367182805212770865243836203571568725547278526639404915687177864181363940227989166332754415065408688456716719605584410344316983445351893627747306559582963617988785025636645463540144645574592910240753372887388585166058316771000028362933166664817282663747996667958475704987128593090618360507204318361939029734442917577312556514757314999760697365769278111740746624555344087297668991519166260678316157345707372337158805022363881687037679053403765100834675277713734598023857571595716177151060214529242607109590374064819904046371776273107544279894868501404058071390381733525959892418290932856704285711550706264697760558498280127924406861589170156663691131229537469113689807811614305485363319692788828227929013157027210186209429039446500373802324732607071323367871144597819814351839158618033217584525215110977031453657600587965228982642250421482120060240666485435880476254353961436464862536414795083828917658834424053495204546889359077859341834755898558768430996515244153360917292611621918389297695261179336678388320266430005435417611881762312167087527586090066184670481231162337974597302345763891479403879133485428059130953896185640140861714174069670055412818403332393823743693413787845195166212686504630363978083342377097469268826863018785202783370904944890063286349158215449634444635371872930001908057253556722088592853352599290512707908757909964737600408830535037243313889319148415322047086259410516178547556743773668784533991308793121327033197160821985700702446981081844116752253993113137863346553251445597788191945879020066181368912479939843069076771748652613606039975651782670315155793143489321731769898875557624974527523218642934036725555241922644275445703204434952851011531685022741813053850616766139337688728293584040334775239706214676092026665306614334141153777729191162220777286775646971508057132432057497603062306944465455551577250564596519494469984218771677013855074919411733579197763766671460121982462073949272069618908134752342468532153344958547615216181111736905613140040780516716791470388692312459094314915415981856152230044951070206271239412732909198496276362180142536976832822964316273599261587016419093025743364861944700429852589189107076961916227715294139965101525334807041325989359349214341400832340984359362003518565349475286564309697788176716196714469373374044394602472224064944851884855632436404301326611507445675851984571042496486713867847753604641703510371362906493741802924291465329980853576381263590019566690583628290271067310821034350459318213654550613952145421994911598332574471801885317962515615966222862554103476803325573576987172919808536233727510895873332034987578885392486226405764945526861519468847100695748020360750697101544304481597619964123360207083982851352044337369072800990300301671606626993502132658145888466615083833448712944854729484604567777482575165952922605877854233694045811747929218272217821171008410803215130383007092916215023535223317184312864692423519890699246412723094044860775553706479640080163284257834757281836192014876963998903344635325863505916791714730965270834698624390689674909657283808984160310099840063246837654065623080509438844888306994840671114522433846877209932790318481762324752957923966862785762236338337377878726340790646359157159552159266658235952968429445059545475352124199694540077057477275168187031037386538566395827902062049979785802825482092770224676384604509092111222852519756429323715719327806532255277010422543906077377156649320608805497209276298178838888996607550336888814070514904971191233738579329524346584676641717229084800277162636289015879360958941217408500581554003588483974364200432439940774015813732138041015318213918801099370582243359471461552524821308296937724508655530390731906821792654972028136791699319667133800896544478637341200672572661373835944150779464843483616000837898576065786910539169473094061389581789241288140480444368134553545466784048138822690485472828117985071952888693476736600242022424735855242231317446980476653754300204854970734147606342499842923812974068680596640233744766892825845219115357704484915783560008148344927988653418688168136916227548802846089054531049869558747286220477995153397553733142434430837024170388684935851192555649322095347487007314506992909915858598319340806002263536180419253422403696998041729403975924168719935063911559242758324381134639752373537383390416680030856217788616721516268084443576364662829172012192248211547398101875003016343063005717831917634266943019342587177941792893167470792984891288410773315089103375699801098921490330148216280926182170370403195125053102634789211552053265699948542159922238556778840130475611026575195255305608495531511034555004818704709388828116597950364229965762306597024032225145160356304806408826723269843101851359879768711089784224462719635873316691293764789609831343617173829591080752546543036666729967255338610532479589757570182913082545096758979811241395416728532463981635959630320747421875569647498381693055411440371312248697685507336855503810571465929054922927510052499287735087650147474243801008125025835212855136851109775661159433487536835419788751963213565670232358108504255587410870142732348050247499974789616768832247768819599781225526645842172132236283429485271575940970557213258548081192513944154855576152658699258554035887407271792689887863912575535646712189883310222196471011742020188607222750140400771455646751228433470826211120814610594175524753839890990247803705867360590921836929384057376029653712445938411904632936057927462768378770257219302007340330406771580066168299924262571624225973439437014865929493334289868730463473345440582053281691561870149998724377004232466210634913765339361648485188999420191554589370480478468147184639477435616328115313213931715169268491973822247062416242092970446476221777232155801885838048597978534675526148987581985340816899572973955135212708159551483601350841603650551668117960749846276241032378045700528174465334335686544633278394212838772953298934750249149503667794759926013505407692477282171771109051319578997219782633971958329961375751304764122822777262292491092622028990214979019526729755576946788497524414065533109097047870121596110896369432899303015402384788552628229523833683714610489358477700613978770958792840075410094037456565695452527598506606950419285463324276698710752607612145288743440517506651589736319664101615701770498105373905654736363450638970268416413715401288454710523589078028096310742795287664640548402771306497088466908161749735393217509348260311335664615897516076141031980615980518411820267679113573206845584676400764899550569007464855088721604042118861418139138110277689753192905737140281266632177315273177762412273901923876533857648175694249918104663176521259223506370952733935094131469983851591909720492351156846465179339452692601520336975403366602488318495656740504462425057641102679172872317022579936762678286572038591902784857191731350286829748326802664866676764264939519344910558038308974746869671852533140515349679408783268003859727139491311016393935617470213435587523056224494306240909026577683746338255809214420934841215581898627134279950877890893258921417925204589624046225624458998574682172418465435077422072904369955213424284021727968362337308360866300388263033234087430465771949664575897766738102493628565845889450915564715988844974283782122989450997062747560492351293497196679294840150794419670575000489294655322556625940491398254971155806928495474003119619836386889752172537300217312765531814682618874005714777603368170667416343008322541713995967817032148208661017930076806194249443603811356673838326969877990519589464661721614875296031973068476897484843667676495584375402120747933143807197929778523932462508223413437416949418117963477281071667427507179341652403053296343087769773302792128117030235914261844445520744553990962409581459119206167265927492421982897206314170660451790293934779551357233345184555915239902227135054755981551046654465836805711288630545448448244202165105922146755064923028518370643756196332559833984218328953020390896237515122162880949056350518477698811145818019086763420956489669513099334237006892131542152223262410801212799144013659357928914444724265345613352017011433970134958262697226450264827287422599930731655219636624264401967635938557504182841361448650326054753332103510569400925888653501410436858863372389514226324308001421655937942845667132322202142694097865678549452492022768672503165253623615194753359864877376634864856665338086721849852314505082865489694322502067343341541307156676132896989981889416170869513393484255668778466565341171108818137623530801124169746182810976612051257821229144514681556088776729517476101147758114942676120067329438279651270724794983444870461383391665208404698469902306578295122798899743697079642879640551157275149129013913044256843747739900292415975709826425632835322289489675293768330399524607293437646102354683286392034638355214371073597567882153826537040291625722648321350916251876474379308565070606594929164447746713448949937574774427571961242266489790843111353563247827390945568067282974404539103585142204930056187676753719162919456899321028934830366376629130487647814127236293387872346165255057791971646259201793441459335879616575111203246622638650767001837858006601486733034691671295265674389392177704549882071161369733024564625874794263023558024283692685741991957161169873840299972716648361536091259916384274686495472837400626081731941989931338603670531187784112031010066070194025867566402457605929457156917912630533177614733596805492025021389878875860499332771137660286618468866230404483520141574886281672205996889669662184485582839581354481117948751853309304641168216209491517461416428330381223121473469244565974316109492715769002289770634684856486149750574648504668884646557816688472864496243462891115104892936686790163611200564336057394558117320791627302287957733926299688006283843792307292242564800538018408534427383023081017251879333652075548773455453105571559599090988278043752098512421742367373922816494748227379296574943076679776959798314812704233161561511038093356891033825324877689119163929176349885694123285226016666291567201146400169682429512121110007657800203858571538868334399290911286505704800586847864351949641714581406982947092630513166472012599122972899092402263519534518813526992776182681444925228607569117167024702252540226926128815464422666568501941512505914906636875765156904476221145280764784750861923576587226148407157459493344237170768303662860437942277980964343213722983500439487167271421536226570787355551332387276788541431048022404738194163555741932618228932197825639541958749687458237027260842113086692403260053266526959079937475473911240674497661412347967638867201330552885148516712947948114782785707634346885207379971397335616456708950948322193866288351903882947608893166668172345984705530429779473775142484401193864153593075024320816816728889884488207930028425296454357492009669644314138961121088262674169260078215682524997158808308903663853089852954780250891032447811108496563926653942447053832646024029261614425800729898717354721824434635039980408237776360200720379990059885607006618930178800185896288057582497024644709648801518103263120801625811921520406965448785040575912063117024090923655213871735796983641655203794109818808137094277827701465870133393668073879714268714205205023327774321374512570590344960240668500615256315673627954357509008547743613033650012679914573797437821378597615779048460651927016154545855114946671300854537247693092182544134533671446336146086345006251179457025737382049029317620226894556202965654325413329420995356287880422597648758043747433449725164139290091190817959213093972623537781034903456267601071688712096529100934757426452217685183786067066961647151510171982442105687750705966599570494080015131176011234511298248003823539650498644954016580039584180429639236189264201088349045133158693140099008557500202591188154705322416859682370777278681387948384646908685844629247384333211525460506387778591368011945970369393205597877235787214099869302086177193842474196909931234662473600610177453164666391412653006283407447544449325708155380779701994345680806447600917819277984446036257024965602988006903384117471515439503676478562512575473759941000881813560828503718680477441477195727611875522661849634178502084317049925311217282002804395634780961268721168450541661542560029929032392284622851049032805662670170723230203656187439541759524298911165371511600790143070144495201848441919748336393319909440036295149517468848703919049220413204575298231785058928205746319972383186613868748200052647356246950894972655112134085825496205900973577330504635585058821606450365654202965501946034855733716652380127150305095780622252513598816059285753388789513588293198726984173709467093683864294638618858116099465537180269304864913182816475472014601699432770980764385035795481703768522666898164158130661891495405763073210428249412194974822450699197116281989398113244021233462979413525250338430084228597514221553294953935485476572576673525175680495403656018753631087664819635376007584859671255401915988970958775676857705411854785598128608720462173349056653647927018669916637760942404009795460239643718726580480103072303139868854973846006681561891900019489783673230939831616017425688167480811432618992643982836464339565798717506816307203828409700954103086329344619756418501794571394114355354270056528230472070214725284915303749919761098417922759198878331304249369312359608426111855460204198492687023977389702994680131488198040842318184539491100956603013432242944388436356054305476219879968218779692753013919124022369202072996826612269164277019047049292245072326644649369918055257599514684803443033953993552475424541334439163058109817487682077919574333603966866766962542297203731447876057207979893248889462282322711055767654108049458369948767528228472941025874926073087284474363288191874757876425290749816815972160445108842198242830334921679883879254286965886680807177890808753662481105292352534518002434527787684832035558382954209407442011404748311593609078856928635655539631506985680542294079280757177980700670259324968788576082069554907989309680791116909281896347281497317146826325090961991469854647113987039915365581434989423937943316682388819632711882683485867002782841826464767996216331967028164664230770393106469308300098522062653799163359795134947027401753585851015133167992510249464698465384162413982374703454553322142966477768991992366155424993243312469850443134202168720604015150055426405427536004261239947792261033477287214134266663429642328908904100287011561423263145275241503900011744193634903603212419946725055030341208258597407587188284399369998365689054769956386358868758609092526707659218928780616189528194170900596640043904140927470216596223289992948859335245274460710221937659358330005115921212913837068736080301572073540438523452752071620498534155766777491724130298549679024213051477969979573621136684544072819828603878669139983719936277930638645284884699709545942002799427066752363510471757196974675504662251550271777070544371579826952329024467447611515372029883829618609879309517809497059596408345523877818587581218529735432740378251304718789054973939178134941568701566787822933417655684464541025085223646932130740849572260858055304351360233016142313840023528714425914906610964289718100594089517500973285050762840866899974232763324012945739116522638198065257192710079239789106295157197823631752701469682251337836224564025027670238077258890844447980009210671101494878599052591522081372910227318142072543519550179630000544877429124488069336522193097581410581911125502644832099688972616689900385365654141967384359573432138999349524669131217253323763062886163247345109039036643724561022587096980007366523145754194642395492459600840258665014553585046781949091747493165696343548727553127233615052047543535270766964702341410258365269941911109360066230378763141292142176569868884938285158818983305152672578158906772044109868368930279422253718126543630177756705363236847939358862959206554619502451273492647940913775078519977724638291630807237847666274299244371708719322496124882047436491057902690802783470076058859278525845346235218671612433189119613577564807452780648584255898771350825043724382201239926397128457626348868677139252000220201304189094012614882215147644623984385597739995351341139118798881241347201835802119939623193506588911310346373697154775999022246251707141022780496554371312072440194338042859830529734285274335881283766371259863746801946987331867255413257267107012319380790164665737241403576075472903413992069136959456069150114302298759614635043766493176191896654220602306860180468572444181058744195892401474653222672314914766339207595198907110992290098660973465840729986104951418751375513810449002211558082078935610822160591688634844356383687525199164137008592661815788941439171273068880008908296940237614653643664451398477194718583160382077610334012144004652428048200554408407087270259450655423496043257267973727107399319718614883706786934371001025644397434646333994545871610189094577199964280100084502361631827737836484883839378401409355650873737836479048615962915679914350520792347366152884934876557979163267125838520965224996384055548207721380649606655818626328232817928886677941051472876673643656692440368124006485785704368209575417776788834686034359413279694430138761292054133345567673222206399572423679396186086647968326751827144188681477712025479910317987905734940711396452764835520172825017609358333075554276934494109749507102340118719305597092973298536519834538463866105329754646788998851839277154858507543628109931506589344256300767114042122201535434908165712679807709582550972544816681627575296796126441105583394102510770608349412429320885845867481290972731652635703020698703070707180859563103949648881446084806596589998984433282582633853436818779369703844882202164306386239268829762162600338048838179906117032065591123635467033490835416491205435312824522130425917093516678501461506924177205791017715490580254123106623390121958240798345084495838195460228214091232175420319913205014011618651842304087147409861302850764667295728681185507120133223656031319524010652018927605601784121421224251655618453608092387635580515208175730021159653188569494336519449586144180252483999779703193454240992426845559389123142767157580493903046784386688123246744523845883812390477704551388638258530454166536967658611132906513431745375308384483749610857168885692301126229847413357275230067254279127715310597748562134770107203580821842888825363418458643269837657385112078144987758462430969512890932934142332568289264601425515635667220377263097158134675929977398324556839699822727375154156199772812257583298459044274678868778249869008543818900260047538279537742301648787086421709955678445817215721405776404860672959974118507798827550005945065105680307331263364124989906793954976153668811252870466706239754671100515171974210464586195597139437616692648748677908204053652665639843504728907008531237041737248930561866723692517983308313644886843937243980472179564221950923634245407505350727869567564526692172730443930017554279371771590299238687238977442573847043469730440972740992231934564288709194871638798102398941019314216588724885830620277115611864709843558131460683799117804030685292389417384194177051317727384106123931480708482835173066188799889311925771952456033903123992590284544277907216126686758922813443009686025154594607037574163669599216348505610256020785431316349993485462354579796980000219421487847549653515123411106706211857632950694311432433260822842526511660839042901322778349202503216704219189272088701907619128428498553490241702125146814610176012291671961029530600778786875655888480123680572307396403229531410139839197578616298175047484676798439030173437612420260730163495145943808235326628255997363324170834280346991600134217925657882603767560950109779989691699926905429445217091784817598819339392099442333542042234582893791751752174306641918379246236186357947428841975614938135640466360971524608011588937305966273877277272237073664006670264075538470380167879730630877619790222311540696424383248616412662470179821556810941963446355263935121308901571150740661049593197665514199709428686836798483677228237358625906070149959136318865174914931738366973025127227713361556560088232059090591784846438432314916753454197581500689622665070401835993141553675110040522120560607409623478964058722379998492993886002698384495470187227079994593936990508469227432223866529684996155418263823895625541780197584126301186078624553795049187391081595782324800449550167069802542382830106260557477091533348143076119798681426610128132536646757997148624457451051382486621673965204604220611705522776304917844235881532565062851424026454756181112458905273428646352000328289676290121375999299734620405552103101730825957973256984659619045056326032789379884823332005215394770773535746474219124330846555008241659743240767198340363574546984740017284717292075717057020034727302360113840226458751661352356130331847110317452724841615752915456831511535108715378685546360368057098179872933462388640312905174462961020987823192885849571211580995626137038227006052923014525722703973940498709562097717958418793508037996126708660941375219889773345709406007433075620633915186344501465850289067678987403963084248811035517813937416655898035422156474529816280935692318379599305112709338110797648336081968088666699654148423068918736173698949255031896615409321140871504756264707257669348976246804513761161783704950593377088793730204157767917611857261858214105670508602521741712690988217406858397446273333403879528290366074849080476711544792003593491483490265922825912314444079439543257405148404062625965886128865758547448029472412163261753624716399705138389567454844266665161797516658713179983189155549284945354314267163626330746445061091386363812089415700992179033472024407200989910371167994393248748563117845840093620590278635630553766901557997699614738987675129380389618601195987167560748735705438064449974651365856465378061683659078916496707066696836140036574386361328817567075091200584355210683366347408637369854455497751479249694050547276862314512288993268074413915950316382701270239551103918946684567421966595344044377546255212587996553761507808126624710298193878440547210386015022631700856424426439932515250978300561820533876022636667426146173838392328560463926726359197034874294598358066407402848501996119717465127585129405746239920598123537922772953876666263703389628160280068898929366343969868127443671602629527295741105002568775912440025562543457738014770866861880980593127134455752633719794335824349029334840548898719248094351896033565946452344269785417333301663442507611224806171009697901775755526009123685852891751287979240922214710895441264945176061311751082845391662798300257490269394584589270528004437528769386789152819016545009274439223002426133674743035606846254718232589710053662429879552348192375527098586138961321826114473863016128160883403076465349170798813728097801000325672565946160771536672860145092105483194418357988226938546934707186473811120212159169846299396061934461975009298628883543534150996771174232822153868244169549513275162002912076552434511401233221739409027610892925617924418234034529185377752036908976758074579238185468704308200808360233801198203183331359966971060174557559108608681322227481855698353631183642487052319869106735632991230468027238715040606007911570745178417992296663819669333715861416778198725639045532794604113078101666065027006653933141242014254333860492388085193134740359365748034011112092526689701272070508335293485180883788718248116741283643610488461381416325403069227575599382899385685940389111656377252618725765390084875401765481157114960229713831197862904549517565282005039690242357561808751806501562348019863165230788966627005198130442782674477528504562032858384681770363083945161423470706918820981933221295320132556487879395623411923476870704041526520958144033247694541582412600184503848793475876348538188153413568349387617380127185560596020087431742221971678413823980305194305258512485574129300926524246316608889931891718565010715783648842069088372192335327492684484039191390791543932874749097429832336087799840338450281577393933806763127265814307663169567629235632841999428583739431630589127822953444634082031356023220264423847336539549917210307969093386767659359755318217169260787606797079757064155766539700098669991348832549025641433196424075722335925669575390304397176264004061691685552177522987274139487868613077448939403207814211035272077342387501499009842864571224682607534702781532576159172376410650546996121895352378831689981413045928291739026532791365477486609744297836461805614939043308274851537294754245825217179459145297686415944624681078391033344174911970744674922145005346747903708196532393442354449359545307517150897381174181530789269471490070774852215809057968466569144679598145281078458042298807262570861778317633998432685292757951648182794264010188090536754002192095548270936246294331554689897355157363802960633327468714366216426995071393433259985265574423428919515506701493413925696574944152698499952231821741220503433588714479680601014142210727003139463313148840368450062075556600354307702205114416615148395429590759300388669274281586426712390273047232284837645307993693701864780563126161622688717505824708703051602502025654605731594848832673917578048615851426772197151618007448209401037698422857531089520322173358468618045223609011779328547453090296108048107400148713575980214269970623484991809986223425855779701773388374070023702965532722596434427924432998598241208515723914885583868140375145706273427749450617115830978565565420847663541170197289945501760740373190952236369770854443166234470713720580114058234953355004532523549352063437344610126197679293585623357489377243202561337087851203641190727409209671957967897044543872511703999974219960598306452055041725982140157866205490537519447378429388345119529532132131582465428161481346303706716323314806808948466485907457343443323018472212392396180822840647159445350587961979749536588433650937030734722851239068337480144451837402176346299028117946022192015117254320730960281861069700844996775977715390090592145432073319475663055568766521284147193407753490736138586211140449481278477991385415757425625043105011028938286585818761956678984212695180707761587612353277129109152480260884980998963989460030134095016836400796367357638042215909637792977675242537145582061739993550838042215581550597915199901398972816780636610238040499250275003454656813505701401419880483529604225476218320378669866859547381718541300327446368601811784429136921131284168991575182032522940357707734262803530005228860254420741609557532333069759268424354827237822664979528003438087541292350431047016934156158203529282168428203715937316384815905748971398130631701349115606488961488536955820310127344557722762950334679405514204215329870391552040693262636107457946953435177559209983126629402541940236308780645254572530907248059876051674067735735452824840985111687034750817635283520162265816534302285980195435151354842187595678991974252808301296511163436153890301762210314073406484046176854635877049067218857165242197273569995576100269981128214903505119537998191437062664431251209157324599570126081803485678745360589956396033677131742936035322897531221328542500430625899146837961420357234441488779533944178119093267253792945847341206951235061484259575243418660832328775576263969916826750111634459109799462131762869144763678393572869732946195878944083720500446684801045269784743639200281793008374629512546995477786003029201201636639627970561808785747464905807923977854911491219133269724244433789668822348740816537781356648805211873899815816625095756030645133128199512118836395384681733270510694271385712405657890470575943723804852817271711168412045319212659923866735073640795189954584998608532498985037311557777023084121055813630042143085376084363997525355300605771629122523052758366181732581590754595132232934672556069136730992170321036104577682409040088205571712227763096713416632460958211928067196473069835631377698509723871336405514903207998711633025604268836094894111896629059688501001351856258413526711010181125346389642734199321917068043978903108520986376390466529114193155755945218450727076980029894280310029341574014064818792291245304601349764970373145665492401319509996554972435777363341687688676761292060159948301521269087519706157432206829570405926952386401871806285223427703156676208167587968632111446720161646499726065370126091673619071002583112193642463931909642656766318401709423716347423680273471438944633123170771608862045371687511594774667004773610125137391911232582368363902555199525819974931140633957647421933945610392853945040653900280826411502879545454259718245701627666623802372642964662594484278003509215841245072230247310540034483404431738672326264397782501622827420724283193482885886346300290369993874289419677648826803522205706179575617897144269647461570132146812511224681036484228481391271597615414161465818417910262970545635625516927633349699182982458669434054332743068541228247671786820084158193340443015430727106970490261168163051773462771060170383883043096562118937627571048478944203162278986831278522863883807479981754480330472447833241964707458180206669297236030515488064880407116086338990087021492317712542334539264657021473982498824364793746055587859364873456238294785388194122493240228638085618153943231705707962971550476170039655389021408603707678742325503882628215755903767439762802673854720257421552636752149425753529807351576265921038339379652180293129708800651688866308594792731140246211117593179986233994040212543249057914134215654258043886000662954081918550321505814392707650487382051760374373683191637126447613296515872147968258869867187840041507118555760012540564375857409321240685127187577498943418486988765873235014742579090851483287957844564927806788300751397140897872540319590201503929711223466553832672419614731034045219179522768788899133934231624402159436856538247102378417704043682756095324820248210669527369106144636871664645629544563495968569716913440555773094924100365480904306368343296238994146514081122166130243822785522288449744043886949698403894957788739581189648268055027458424861647030442214156655557429971303983024502723050007193327788667579982688288762920005604046326625879272994648824117425552641604813265129330162560387611162542107526824465221152732686553212924096851286110406707696916951654041701955891202918375363386072865015660900233182803259433767431872636217242430112653280364270615168169283457902189826340812147011625511680816157033625468034645592793103448264919218951957291642156022934720855915239103484950497829146236770594873226045446963720280570468066396167422493791398998292279536973609344640695816359356600016199208209950654546751582364617448350479443693027441678379998792663811995834450761673270197068949881194376829916836211997614330044879477827572532427865616438105330102788245502966285403113973927698410715415853120572641440288530509503388913457826357047292374240405721370155617530307216318404862857289665228700462347641739849574411654433637065099670092538941076097953967651845520472839960355201552908871611412016869162684096491485689668837510614599874242148347518960495232458486370034108734948654732736305146986637577450420716140360565623374606459256963378812751630199829634889914740453142161000651808922570434717890308185237416925474554926489898261301501833259016223032376655428045149915746232913935835293201656405663759407821674295532626864670373386107249094099052645561230782891604837973438164440249904422603039512708226776639527680120214192124976706123995633979435657879351216523150650683839661155842701090758951227803068539798673478287019375889016326111257906279955246372133509607335984024625231385432748763222546828527089995778889080142849801912416375622589644706728327990017791569593148828254307236117733281248345519876024062818364924299089835498496353616854097022699286183819126154935568864772310474994304666406384327135167086529699509776550413378414107928159294818858153988885627523005184667381855778466730620406485232380972173822042319378306453402757266054937352296901944988582829911977368977769871733453009603815373996786051617674478108796788600235490850003371847063007685696827137503844769256185451929085244401425117583946868093541934368299368623056262246204592979414814849600327998511222357828271585892457072355690834097964472902827013868395492910374860855361917732758594011520183294446487674469052765149638044085652204183348466826207194997907913453390224049559986769208570313677752842371490762065487468233201674841438445768254987289743025109448948870852386808973831913630019155084768603553136218721571470022040429610586391291435489127055484063469923374328513625303268403174887975325727712254976571484845127093457871185331027435454431609005980505340308307132195790211102261456955016863931886376244755350962166830091061334709174154290927798848988280750653276931522087844158312648940456856191036540773826588601560002335496950067120355127002026453789519269276943909455095995075205265068260705837467105300673463000018166335023586578717524627124153089022226690552973090755728921276425537025677153145758677074614640926017905164859001482829216760646377129309110124241920411175440167846204860401337681554836071979124317847216034314433854808643485391655945180768984789638960975910457028058967656127110198952615664671914139947220909828033502200823218592684050154204967878524312571517431842194503684474266710166261803077216007790672111345512435989647522171278354944409274490367596827863000251929175439262359414171331190897953855199675880979544223740725405005886558254977628508854958515040811795868365443598387540669447464562130070142749995827260191467549047415236551312138037842476498819651157010545894954571944118796539273332662842368378672626241647329282187252262718620850404322425169565256838931763553798400487481519410672839306647112390636808439963200225633489901295113052246459240822625346005018179591566464082264068875517686087156954569624822864626249265494042481454268636906595513827704428955719018749538869396207240323036220979922113780647536996968072090832738942560841956119618856978742281114642498138441609507777160670913343085533965273583296018273516192955877017679874123576617181927572714772893539972974009479301463077670348973230983068764472048368657065059681741157960278506141134602339478740787911178926459779305204194103993853326617032069443105068797325414766805548252896195026795029113203676858169702899912153497628206972144338444298589680433477011960178507043102904578415383130649897542726281187766782927201425456601595928099921739661093562899624252684812109324186746650375932357675179566059377962070877027490667342091460797007186332808138269821566516177711575182433510976298247461898807349693389914616390807175593352187637257070256919798375174506858952641931311224200995366439601936581341284197444614081190739070080707229183319294723992346148748618630648252866487955985276742428006465120264967805840385229041874748588159663690129146952433530489328561787254052388956759711526252222048084829072838222877754890713476173853228961856159631512047520775411993689922263202165763582212966213975947728353060514278246410316113787703830464436030088905604023083151833336617831929388610923225534212154218019362844123969011024782444459820619124822805565859592386038293962096668641492227967524182973729165574533562241092007674175288166177316244362134989737273066768946378148730250786150317123451018223714453477931164909569443614905880098939298863288069010403044432408676535341849786714279164273822194863505962974618503338404036977565838268685650139115072009113726363277437167990126721645046435906130443487768613738837400794160141045636507310659356303757310325985909947252579268193293281393694282603275508679287322075744908077222800734639439650887492397654219012775977705941578005020421035922730591568056285332711284153094683401013920713556900291436234867746301848264643026163510413681369863363574687765891656196890530469930302122313461961179529913959468432661510309669562501862724713520112966348523883391891325792185081660811700340108024073470572837037506131512178110765519834585564398291656902777068744567449804663799821931038228095999584582434996789897948010332949829294177790066018389790981964100506612365660366642958553220728892344778188653830684465823026230297288806437480365022544204917191587949600526015842258965361637333347872036595011692158532437628755536780009036905228110573925774811567978486064486081760913155978096717494435395182527660996613752692098367073146252874134865268826483537711681819477829718363481367183671796972186040103720111131801940445157244969840611035223314508006249444204633691926643572145063477102978645129658046849447349550729933388502932056657367974988582110999763487380916590024303869276385364962676495197124590795042707231023305419362681276353735336709496307157230083648397189289137175867343136531301111443288776746593950814844251636187805593698428221553635771505547771081174983743156177138388380589426139549924485895089284468380217255905918815946694552369684364461738875937378212129072606169840426053422919260538583620028642883138173973985690936064414646987744717968150319891656837307142191508813974004507265604909114001861712350028550847027549478578879201111410808863132273965846516827476156889688059297462921702664653966226211954754553782736984616928404917525993170965426730201787090238828003108439621509874105867987239542837187173362314500630834548862951056997634384573169300228719127125018093667679449179572742991665443432886302739799240576293716913582451265045106583931699551302445466007845908265868290650067102599356264949831363031974874200480844712329360759657094366972198081623272793706965665610251666920395552936843142663290384898770772099743462597728238515716444948822875674227797394704333324682176598357605952820910064595498819598855069492138290704780684264844262055893595160657043409511750784220684046926075415313841403234266358017780274386952038237357504707771633376717819900162620761679445640180661224100085080099823216206224305197668629612229068785164394909216790880789955126986395087034584617913058886215035435095080463817482305806703923361407150024354246934548510685383705608282623222817556440536606211867891594337291610529233087462271224930751212417640085598727917067215106364931779580234577487543593739839029464997735634852301446532588298235475171259168342402775870048865915030513605059797919617297178007611646234338975032492857651636507389292460050310477893830655815848017893078677456096370248741222415846541789991158112513649340298186036002430397617243370346306732895109922605785834981919725700878999817878022804431482854869619215679934467717473816118330110867224260945089537711034578006604949263792535465958094882670492938935828495202239206925752418911258844841467015234711299613181632125339472623716726551370540573482678426362423255937369090141343952348018157314811875435574283474416480649760761383746948733121206766143760038970845965826591823510711379680192189084197837651158402194674945412022244172071262842629083323240668838611926466373421066125586461195020954922022321534255256596744317733893881518081470138779491661614404345439303667810574190263201646168952576247366806809110273266226085884818001624619240914564906227963585923105983715014291083073812303226174572292679206770135994082302678988242888220999175624746561158882315615422056455200674321035028458390805201648230116588959750798268933720064073779292664170788045924205317119332062759287488412320133844618485860689558403420941819245140098813339157514743561228358976740830249020452107501902687763549888853943041847698491876985810652698398747254679410260188627416345660448637090195902757407400320194857314173484920349555644658968174822976066004037441763928861467668207029159845754866754417725497891284521664140269719689260831231361306840132668853295929402691345706191503246560410412169156217492672050762536743679408247023531248725697842993281681154431917484629376311032343818633273303733905525485614008715219401470513523044263963282055558308196861004589142627495328296149315045545986464691000764724778802859286773261008156220019884817557082170398514545611436110699110294615226291197511347863053090911081308077017863986010912335159760620498161685585483265555788193412345801732234586987281322402139604714019287662389586301007729708422987298842226063463381968350906520253471336638262695302760708792359780591072989922855668958122116665992387586355181407372858600432228752059491361517103777711208321410533960412423268330421416932831891062457432655400069346773986826548862498515086629280211171681140833799495089814838957920490594790925578966167489716699126681278803699185711763431618203299955625282961000472698429014349414899621833922045038831150438003052895007067068429302121491214346889148477271768338995004263445783448351921213334367250707374787841348316919550465762222117843442713223319477131128445576844574461410510239242205271941301582232274797065863508419713608219483898816063881014773695787336456501165048704837986855284603999882316604103840516985028231028708853674875560319587089831696152833087321117822129004401888576201047264165080624544011540086536557771990455966992945647131670381806310581128649066603382086227730558178241126346967673255666461241919878487624093640385455143958055017675384987129256828438964678935958307242917556254321802379615280507605864351992515916946276915676912924950406973726909531852279623908008186394867240258966368904995176867284912957434992377956028924353801049050458887924900242362471546485245858707872865475858015037767191061631119409653238688454367024910798174021486761711547253944568087304506866140479714584666130665389338245158877139677992410999285493873898592638535319542883875631380743231431675117098480135866661743107365238489652333320097744543781682269257928228368504592785974041711767962263271917486407013064053540684054347097402231608826969422521554627226121886371607775312291582384429466187838059518687413612262413854242515814135354890459161543974570499037457210252541609844860853328533534116538609737004876600365213225340056453550580603097461331501423123729722386855812704880673526169889775212932753354468959421923639533769052550567920722965305046599996744911821968112393222186308827188752235163239531237752618191573156964643562910598269744898947699626644413091783605720737498639201746437142526993820181879488494603823390636007563747341477751600316840979169927546092456771446495681892045490929800002612791584113814077571507188309436936506689308491273843954211921056025090780392708993784445469058628430246193088858914626398341229168298595251995657513311148149965724577494422973179311654171945294430476611903288257258394948339282545675182851296943491959451689689666216027312533519160748727817453560962911729925725026518142084396774549999464285352501334568481933214346788145975824761310676222132919255643843091787041308886330404026155626106254597495677068206521192086385921405391499711639257858333579666247313447958629475666873397515562701604565120184117939579355826842815093258444222568342656158241923902615411783810124240902309757843863474683400878985628900836799850796547813719516087770353852831065866351244962808376354337796383948029400804249991963730378405242023427239661763171583470357184860756038078762874420505783912569598979555301172109050924244949310039104663067061757170185065246542741788737053637683660412081159193050091535949418726504540713383600185460072399268641548031717090640294784275082633421544583775220048421158780639407186364480718028161647931200948663170114113289288812771364927398043199067177666004437345364760026233221378051692104519293573230181713223202096845988344447334586380808035596825305888046633570699344752103897063867100725699366931283024414533304766546025220858453442097909524013296347323705460992788859548011154222830161266001668577697383148609843028627871323119644154950764439640505395806938960201196347202809163014294650774906263504504451621390686266558044609988843052062234167391915545670796311549979431237068038777444011973618057257520769666412473873646279814547006003194411932782058642235441595034053660339289116597587875106800728874714882386963610518399690561203952353291216169288124756042074757046288397656697506534717626707437836526321070896257878579574198543899077208074750125759177833893889816702408811856514315067328002877306997047659758871838098030700990186083412688634716030994570901820386932728643479291528236390919209067665881306075252646456001946799151079541540264383688881657658964771043994672680826434103403074230550850113886307202857389481464118540179847891812362051781134930432220670446504139320783307284317842964334354056844300197515059634940445356739769725325625201924040027454208005656293952502201025694765419780783481209643346854846381697878855970718134128388712342721793292746902498795464933829287720718984185503678097409497313961443438759859617759656991704861470973597708050063381715199631608445662652788921642287585957371434420449353749422720918374004495614096264379395192168955213585280117641647217932369532959171519283555785652547344578147187235837635506602746537922676477423010230038465082124827961488217927527532535336018452444617597028217037880574837311949828302710359490639496812898698349058000350840734117616738966425792145017347739981282546250903828583292187534605399626564486341149706359354716711250644500703995609661116307981655900953912759593686297431248280627360028100772758734515345885248125302049763396100621393102651687539274018325492847548874278002811171966923924961787188899807459503833726741523573948457177874596183275344127891892081582866695874256063608605198584832621069983998396716182025249871328939615751607823834085525140053285435705835227741872118656410171495933741618630197024801881288659999118737126241425344250371513676720628900105272397472198636933316917155565976105314970824470938833688503063966868051361681035070887435592388052568178017727252114994297131144127586083287039811677413596532826675289596300835104231103421148990026502208827656740153743630447458417285790948998392813390227454315737387195670498886533076991973214644174093493070179920356397233988641962975516583936730194639305396254348805239722137666004583142970674719306615018695851739984843208729351672180627765822186646589527411465476154094256819554157008018617733617304239568427764390136948630468268048036242092227686435051030257115695365569685046368094064086182909183251186501878577463036452629620387370367678453730384959433312305289468500975786653686914422251767961970543129566413732131678871176638193565401086758355613759543808850704509493960784880118877483750203735049763265733413364249774708728302717710676073028142834665458057666762435101481912203185391039516916852463982413005259238892605513786577220103164839928772342510843121856548801327730576495605693605366497759036704087746991532862478058544322662886600286046842251785310076226772913600169001059776862029549206832753589406117630997283009788078111772123814924783534267133766854585062436537939037533752484193172896703093557217241217942018673807821490551295190599769603232374767227989610127455523547887653113041453350263973385435831619982862842585392185131792061041755336041949217320664085450119360246294098773705997989643373691095667571137253457534452539189020239184250366179544420089455162776668834870312106835949140233802777203104538309087591989937044667028628060374079793108343558690381215309417678759143807655120970082851578645927506192592121120748008778545285454756872193757200771231375468446584970549527986807525474158102813379848686093698372362322764614716144923118682608690495084144016102392092349906455042627582298257092390993360990202549436800684089642261433192609220625561788568500543892126128269247745178254341376093369307513756259282205384260850660207810362956342049541031820907984813923611485193022847212070695057817304350166304600172000197337091241418840067185526621933705599020837297217207204298700170314688660675969661994413540714410976549790642410197898042077430698841358357660850169845274327382188115625109349755208546867941967127557944249062625849530452920899220333204945410083380242253034794665222267668725941785122042215008504231159997365680934268202729620586523178034236458106931639350900572334279227928781520743790546847852979122584409330494050961856267148374240106343847046758395506936131219009048464269112511821097005390308300506223970476987721516024261803895337636419909292719273305851290980977249554007275237568184324735993079324806228712779764987533188756160897367865695300415849693234638393638307697053202764730764226220097623854798922835992078736422589074441319511435577910860652451392222882157810482867469485842868441855465065650369292081433835464539698040228005820655736447851399292770022154894326193362862549446723265032456956764676307546791328666316789948754473243365722054241537621220302782443115604610147206655696858340021043093766435407286398173079260031404646021808852143207432738747587192411469793985696883972276475694854230679867897514429531527913672179734894482610896068267462168329544589531632191670562524923437445492863833276020305700989010026187548758139422577757604498220956190317727885941260194601427945856853286585404703715067359488441511371531499673420346685123780734811222520331424003185152402781001676761638271501652210901337103774803758178515575377088627094378098543825537202781216768542578996724553135445173077967189247694707184063916560735512160015327317982217478739411984375709545900994412050937295249696438184781058974325658254715988180814306182789474175894125199788760456239981894391229437712760025731564119817182456391169818935113452995485234345557628928647713190854241422675895415589675471837006720861206830608569522607367294709151177634095184215488754908026759702475197525797921217080484186511139469114509101504299739999513539321396484821569492301306537443113143778398301102026410082749648174970500483915349912728607110332358575796424440201369883419741233073777281469285565539726190262959216545286743105414849048683045971523312644216636868077617737228840314520474998867458488014995511139114570377088890293711739408317998049252968492334930852753019918049301697506605137082075402461109310651428212203392295864550620744889747258583231034112137041224147084807989756425544819609607893201846704803109199149434162633393676969163890965528672562644838338186371097709994846946284914753275489717042089106049243556671806893389709818574279082187098277829001076744052051303204117422984805106881370722081051090194365773205119578000172425706622586842783680549395450470053151520608403196037605724701646111769451505350519227027533101931530693693673623413764791928017688437974633265392770273732939643896559860033505777212690308753002242778724918235131769457440165014604492622829502683339831197281203894892786030287690697359653237689682469834344379473730137067069236932856400736869230051087421413002539172344792574732553060620318480637568356739233742032957296609802015348490734282327276874090000096179356252478429838877411353540078732239936739897708052457991469296054797863768035355864357712079864558388821414495072484929072794910573207766383754869725304550817878951802440969126731798731768701003699797851071442053183341386609192971878311964105002444679102788354596013367107832638133035470519475448205523776016453524495574740693095387176983161590668224690525971081471671219634451304886354418313906078381846578697100680272193168664453409639895384257196281036338676129060096740055277025076779703955600279204248421659884165402675793296891630687548303044124557882687254969605092412488003854653694838928164723371456288671341779140128456694699015271145978548660999523418848451759192937389365519813789881533147262396148509210051295962589599535593443051744968527353270802090557181743029763942214460999753977723166277774869546759525364746752051033597333440649062209599696885250545587518258185875605265981045579847395991925742428029971641375732963570077320198026681403353071146677245935279173923029240979851699007922955473087839022586251266556240128615111845351590741178290104264677181215143992246291213189240370837124370021008746446522602678666649895297514978329949384300107416745880692963413269166369551350878996227636350945078070346626121314030133674362051101329502842853802934273474917699077154225089861563357284496962316015501656100221637266520896656813008884724915424324265329963460454299626660907906639549369052746015310512034081889088878183059302326022884083782429029142324685737890412047809971778728594425514528947802236974547090714634046318650890817715433976769559472538022796658204993911443924187054338112911369061367519823910157838777045496133935845750152018380726944730214527477907750848448402985260675828554228012690766770492216642343053442852748409334177381294117223614799039572342652016476439809513667770148343692273549633231577285101841904911767321181842106412743366343956221501180700165738580025099602090726170781078097364498770312452936576289014280951329006162112509195839095098666700277852983776998346699218050569281819935235355159209708022310505363587748604884440880338662701298287825630890216607500698748608229114160616600189762803740580189646181921370748693204722990997598284210904023564999457818369343021847510312786659945678838009856619640116211284740478036082389169393113701007967007056571668365736061730921470996139182458622095123644764043526853632981036122155466249913910469568876425365356082985482820158269735515748169169146818280566359222467960766508009922358953371045207047757006394012501013475800382381048123469319935064470030012916515245783751980927698557005611996903718374941478818277015865232208180106640189009567661961584575727365025498010473210559445111451566491685271665860940696507087181744095527689490988219645400340921070157671702365930118878031604888326068718545935446629842463913599497627493816988171174719687973330584799874227139458342820660334232150593774095400313744936287603302431110018538180262908393026721852010956843155716345599210952201422755710743784300687427439072212052063233038190173910816412651896850113946562193469047604183489795977483579226350379346445967715474016046775970282821200027914833544521031585423359694813025050174530230775234893188635801050854864766426623889328893044784490729227166216764310983232022710526823097785624593772164735460136474842784005871746932790236313931129135714078104592012140846821098281508674360650267445202931125099120635266110197585513642275458921159502940012045107850156907850134482062585439841630198787720430751950908380703288695283720096327449724540292851846292246896895692682970250586169379537629395685024458482813112054509829896127615019814834484784071422424980290199978759416696888654632056653095356912463961656777961220703714396914249306204274184774362129512589222164872951774681669391269344576320457110991846283692431319654175256587201420457255474986440443248548963584392802683487353029171114262564191336116801574150952579661147560704261036592576073750049455747838578390216979149053620638328819294588137261703642767810166258739336528173944756501202142029170956515759696146150454902943029266028963585092810793779468344685076362732190444382061407554387087957089608703615458466495267962749603100422258002904696202565549463107485829973837218097389805038601432230541722802721885066678197614962749135615600195299605165464845505333318024923466373282983464943841457395414839702585064177337571050918017783063775091953312589677912951586748106670935825875898726833086722905670263926259628071665494918012885475307788846863566023452848123056352375779711290982348411272492946644983298833600863473517402952211271898384841939503927682040417437202783168839651316838789261092312957263317104248450915780032405309030148190935146947147946617026569884836626898885685581699506793861698363427226587583548416117718978051316713135221933362828005444088949894102010561115300267315156396307131863534233070130118522735632295540640588195849160045173154614005296905893593567151070944315388510261653266393604695591862992469832519537206327207511817329489195579612303375313462250719236573323460765599836129238186469544616136325829377199569485729851352556306749012519420834961448463192568060232004121167616762085189042325052297246719602647350826801789687646827659356466460096490664544558524081254002500309479992678932105409733989541510594196539362556882844828832493817770341910296297179148058617376266259342777977863774055566609240957208777908250443555517753530885578149848412455917173851605176378577429246836072906358912734215242556324300232271675350635608716496160914024686897124081772245050652924391886198524547126524077319047416705423750241728498462563550372849119747320223620373667873553224939179253423801125158453375211982491649505750230850413411550931524591157704088891860714923570264770665639402969942893003089894945420397566934892572259741664063981393693985735136155781555969339784341814562839039434465419350785613645097670464317571314050219866016213239534357674195920482256874763262039655477349415036646026859688000138134236022103006454484978011870340645862529750817144565793000236733311191640992312572668995589420703192888547566734889904811797360064831459623060840193655580754606675970324764923130847199168334492812271670816904004487898179048849956111414207495655719965529103619009530564963853496645371132048538827775293585049176273994450550229987769817461031251290016507919491972527416351122027731362530156529552006511960738798410855727454522261819846685842667659265288843149504982232941734278131111582129698169109929517020195885661170180161077395058709899898496230149484744086631336411975210702297414201641399646920987639498780609006117596662458370217133046560976164309791254121083676779107915679165598466553921507784564427917366751431969280483272489884227526793506193875727161511122962941961492908700218180691783635824896788150991111412634212936190413934941696155756703474771379569718014690995848649506786756617096954141151781685750149104511931750213078363901071996439520071082228985109868831748049083993439163448299297646089792777698725585852844016756665127301163643665159646920036171321575430507391337863314522738249083746574158754327390993510716234837070807894959307108629596340836880853072605396841616213340152088659208035932940642316522576778194548874058374927330327641110088557443469805324069225811497976059966054312593250823240853063302560299447334227485060402419443888026579373158285357197118422598613357813204917051199243953795096884588355070321737393302028229559727187785380422245590009636412079730271043812941862630283193183491811509818526242838561968689913484805019172964088374062475645424692478551814880099522135922738433900238680620918281048403985233226150424130199532758863046772871440303705674328593085169940133378678807543030776161269444150286405023145619563048135880857849233139854628853858663812531731532639594860756220761483398706936551077320093335622614551983055013853115023553382298051825536436833328343303096236983262313193830960401260676648305452093420576533297875729715923350321824474234440136977951173566459161117307190477758302681118827910520272317207790840391084150700794211745742151446881923566789488946012554553321612581418526661954376272025242619050159695642140261662680201188471911462686023829131827382320128977129866480303399034901895292370939644947653548379649106176700033079000936580891371648791116998115703611409577617560187751922129141213126840795660969956854603339751697093873102800782837732835457651149042298188372510773486621442659294677488395407501362485501525254265700744899940965862608202190867438401207753226083651584762960052639632876341559148161770132448774961120650666881068722187352155570454717661028388728360998018619283583252579339734991074583492540008469751037535827813907942469161088210443753651917069167360873261999907199548359892386380953649502094385301405851065006923887384546459273588591304504017007364171574599325213875522127917136367388340940343005736300530969863459964504730014132332225120883657816379350068397996661852892534050269530248792703433709254877278153809186721553960434769465209833418724004031175524251153859261357645155533687829114935526712872443160868273850016487768231422446074829724881576611874850167645703718845265164678631034180557155032254179888156560317432666797551584965533544822723057940581176478402261452496960707331793478144735353510566999136460125181331083447680664053801344151138906026159453396542987181576860779591194337775062021649698759861655705911041300727320985702332344026246767099786945882547814244984836518451047196135959926207239055664092269695584930767428937022727233104772629493043778892595636588188209101746230839026651191188299619772824492009922444955772582797327127018525888990854100466251776437289544342847562965865049789275860784571684479788213431898791932535051851431289641110510970020006504198736666469997776887290228774276673385626749422309077726967395468299262078657332694057300421790984355901797128390257739021548988310372181753284323265295341500098678550628993080567251959344102013906274799320589116143415307064284333604380082651498727192726811869734685873295140768159520689925328933503154418841282429612901587807179679840541327036278504812961080777225849910489402948795993288957070159334726710053081333641032641547220340900277123701450518005264049450671825948955890481388529580726054106850347847704051007996789654384546936060976834534467484490234556635886320511093861308813637830312313811635768051510999537680459980359351442808839436012774598780198820719844794881698699584257686968344285296983176452064431182370740571124933151986914447010725436432494728782029145758158628081131873033517608503376722375809372939291252261520059395770869761070244225348923037634381759729711478954193931019907165656656894129937795814986165991968521064890855445300101416302074292866259017036790375217634887693169284276099610558050912452130929348967615137546386611319053577621922072021034755318142110144078928090335128868738433907371901116659383750196285378606742298008353598782073802103157977407751273368215234651281592605822581370910490154209578071998470780656723963845025058694529282409608345857751973062088452949601081836236472851815741351510095159437661971223266350615485779535924452571473864510158539951632284928175776806203234902118935604348595452889376128887949363116654491349431645854634983444737964575926021079360822950920848806024100593454382164514282422048188125601109137763943407044828895077530749095137186885503486502104267844623173815278918109188685643804050524859446344131104754463799454023281611711179505524328535752594911447251867719640650402015983742951631549094403027861814242210141222960343922492232394342963283724044646303174244117631974305767750440123727477790983009717599015398855368150443695336593665219380080364536363565992071138982715049816743990225211772988970971310363431663852688863937385608430294307986807392349397125009804752757668180766927497712054695729048250062460946725183508586843233590464048541882472789863167939864239454910906205512537251213735394893934043017867558988645921046671500671015662304299420889888349127312233176954546999932072884602183305261835291659873733283001457795210354194848364197846855612652393709409675345387034999093190082486849758605007382945894809204490410062706443305406282266569788164391724045097896323201592519838334787515064306559977678701035079829645145222908381330606978632028396781594834419291370226232844158558737543483775813422225916478816185107553926855953555313865580817034578484002548845859889152741943426217468834571140231888013765781597414805109071609087106166087302813116435082873235882481304183680326497890899884897060893075245543266656320798822051502684419115890689466391914366900524629267799858620563226369136258693510063110703994977799868416408413760860298368479543120339408107908915724250465786124931939175431348135632509146036850262759576016707797473303297824732870839252106744579535958738612917979601059521663064402020864165783548856857968694104934933120218656040110407217105112116636363250587416760113732834486694666721730708833520942988138058406607184946070417403332627793495470638414657822458361824168678098115662114481665395836594396559419296028274158330269520284948360143872909895518410776705941230305721327850794503674987086171734813923313709313849190703094208951106174923110604816550062693496330141113774374944822833405810599124278155051752433746873489837623587892287955978313891692451571234274079313521008414954906057906579302890811310910316636531803859620224227078181801183577712410043763599861757595644106695190408166939235477966799963887211110688029198673085250961388435309321609773422000673897378802807069874363562344265877446192768572228704691633086641714717892366576846072520005174884032451519086798355256825703178792989410745242155899698962350186685113530628447379908366394559257083218395824646140625130445140186168218872337254437189260558546255454075696750646623919551566783396163827037023778163325609288184389277824320417391927128721657246227362152689964421719896257641183318951573244682033137305404800882143350401701389351827160240303202555837503173991402503128573541154018951924057666086723849072280868512417147298072446596599384875768913662563979078859768598750219988301904226575736762464735672624837599563488890648744696858297026267151258314264358644710671870837273468554348432804848548615676019477152874204793647832757678016965795564340931666355765077857848982173217378747209210241224728326028510354225117280840484724502301753065597605891352331326880685523135597388851519710076783806203236400244115082591514056821893690686390103939681240923276207678366059999057708762405298662223493829736697980996812443786934217838507386330608578206606420204479707911037172412197304099753418701835070955649662957531586433722866186661398610093130952423681533689508065449472603648289574174748354790047269733276325515565967051761785342978531601686331138833527562253359822183455059937485880960428443153999776820981681719015232954323537954674064027669192230552127208145539697774576677358844565971825268094845670735618041246507326076055270759352030482839270668094223249201371278122531051723922342887043098642505044196657626719295991969046999911905763840226477194875310935110828925491935016224879412407383438709861460040321856393287585388680653764846230776114222207223674382766276182795279337573672941654687363028366716389790648567742035537391516174963931073794898219384969988199680267131089673839921060872149891023075788661428622606109803339830110977422683908595095239423885646306484261435116631022152267807196655709076841532323373980313205359734828893483850132232445541904454662619776656345616027318327064197861557229612527565148527173037201302612912446261048029790357248615327494697936982924070270920253457407684282517734991434345956778194801988941203249314374819758048418735507773049501746570477518006084987793364392933499066451938608102377714887815919235228946297741922438873216632492477082617713529139457105113403945107536914440103343196508842178552759869673168661950448548635662103596383648069794062729780766281166990917384414198586003357578713499959559176408614420999608242128657054899494431627203929698636142901286368848878370939017271360412278643648875908328660081511056496709697706024873648276155713904567848661438571990365428525603089787915802205779875369968847117585195775286951873921287198286432022020123933412169381810476613349566570491876680027337319867727683685660314138818743444163408668159868737676957095811571336514433240484285501758631529398133827472723547368025988873385632628357247815324522927967615602576846432877145149140735269059908808936803855123317130906322344263113395238720549934510596338722946374658038194774597734036439663647677324947124554157877402456951969917502815635997998899601448932375031933503701659676091346862302821799997701586027513091551972413625586843190041862373657156867927958527852802967561333670638089926779906334385589533643044132622079390755809109964802788369053955183456196475066317686556616326654636743565467195956372801180362337712573356968749874606588058807457348601733780318892136287914526067798822519151760049417586999656586158061426822635892831364964825423881037827773880959977983029646972671745140391832106527369556461691154704758430377126956011549118078462441451510855319915392002987143342041350371026788605482975681746693206392975001312795642598716319667836382969485675115509577454596179156816727608497640714421324894791950788240513058221816330650082704456058132252270909201973875019143104497510313814053340686637680415403214747508328657779253459638104030823720309611647319227639076833306266240224128608740927361119213740952794331198571655328466014936402243766162072799288719720921180759365525527911593060507248137772429482271998602285897487952542389199126587244144491339878180540389675428331408495971222646569262542864713633255232736673976937773701470394960510694635762609976080877334151535840351474280426839922647577244872586486691822464950032605115826594740335338685828343175175219274132395491137609335558974580937165768366430342941449753699978554584535069789167082678312783170367330403824118143003803069703570819967982751741976099174176053689263837823098332648651101157030523198383656948907163896331501670283495656148332815700425999074186869868808185155509569735287498929659584898843920148379225732737258652630162502019707692153063958003312248479741680910146983663120295097166346637688333592476476228223421790121968776708706892558380825690272967179007958598707530764696934117609409423118150019376629524617229561881426940369570417020391063401693925175652250233665185491445398526537525936004147547804341195951827807648203746180505351786486830875164765143953431216180813089098354099173622391820224700578540001887946609785708420175092701055618183040617006205010862836321019604876052530410924060233411055331180313276947447161832417204920160478518367553771984207101107820032147741355634783149384310707434840706405665333809722237884762226885693425087015140553762522900283845532704963916336560018867633890513105069446688680446630119903518146213080867062439010575216059740338064195944594238645413951884368147444469977639377991847292507542647404481451092411926474784934590902933404260202968344082757246665577993505171628421516385888366476921450554920422359511408468530562316091123169498542220971972683194004806998785243278089039083892106198384270796397653635835158707713215532487501977297230117223630757536936602616805873468311689577496716024013333959414013950972308016048164179939972354406052394599463242043917195104172319998984131287796391446747345802278148940401359435802703414631059809051808604843512754279012719055181553949217671298872894095199405709883816045771502288429912262369378468363132705261574533341968275015327992802393437150920558203040648615982896955143249347666472835494736778065874514051285387537890541769362324621512810682756809086652358221897161656025304653732106200390062525664000542461373919809429229140907607730698207600214243777159171089387867472260048553904340877697051126434612843921200370767023762663285404955049702451677540885958767823015954643646308703302306791243306343016217920622639483738947695644945415335096632506599317588514215420998546540784857849339276602495663525336332094561174264093152574419623332955998982855206228066112082154722230718385858179549321497029396724814332358352330903886631514614873617526355870176050666358855765117649866981694718079013430375912640355521655349959780065480719234383301329304607285328780873251811703968124044170704296650339389964899055130105522755359496443867489592304474222858530055099040755075989556234595627622174827235427689531073040560777383879435200584609751503296550139890285054500313430059241414855790466849097558808447013708061119386310369838105488920880925791769506948626052670019935891041004344155994480326407605882511319877901263548419423236149880395220929918564504371544431201414176290868100430287836514437371327429550783495749389723620656328687832301354669634728901985860254776830904680226274251584121782309067720787620339168668199590225361614081290901329445624912047918758436459800126404116448206056750331929005095680290977685308119529531679480909785249164259086434616197419768754569287292823330850003635249261945298945801101806251580318386896171960156053887288207543745045958647180445625488799881141529085072740991010074156956262416455952018125337807089167063176381576463808323146735567883818860998141756207137851239412881896035435141162548857334836734720240157624349932463852587376388063051587917778269565960489862366021223510304895048211366378291685397970764915374043097276461806325760344004339798244184958397063322993453333644129565067186879164326430637311105541893104670884225967168787686704544615569256725637249361884135231325935824113284152272298635154654771363629866515272307128008531809248796788446792756932334371308822802049729856668596174725127944935183062777068647582485916536741887366849408286166148952948139249817610004043153728452843423766698048989126639480436802816006696010952117673595585999870133898897585297332930190056041462284591901691778457518049751711763653281415384639630123125200369481329636621621878904967077409018911027363104323859476348558753159486251989697332835750721070500978181418942480235839584575466649296632263419166151264317003443651040650932934387529577743448605945788746072217507022170485594024966845101037089803186171144159960499025894868368698829344481477352134091183844914051884788246377125898271004150671953241633991996394078293522892497861435667063346139572303999155923466007804822185829976690795549745093436245171967205437387599655580548278309190549972273282505490690284272135457631595670188380075895696572626165545363424594453473662707089805276761703863286373795030209431224294951462016098607622549181767377243003971972582881154544972596559722802027674210091346332857132893284230288046856598005414193257098861408327479536340130882258057996994005165640542263644545785747497373287558404015552509372778139991935593806741068196948337408500179099061004423397756287541076929713994143624921299465740169691194307229054590282085904522966164709068487633083426658701589596104183708403521858760979462618856383683940630454482528570298109113643893901607131131036317487050219779831608892363533497453053089872827637813521706006400065845219308762088052338496438749655569966695417944295126520862593185405003219992820980324155079633014551847737232518085878375152070226888962933521229480555824455300676044524709903535625005469571105094213831164337111824729516189341931950532485923440316940810369426925030484231320816533859907930217099141610906836677623383826178018449834168258598507724538714065105770025530222374322576335008873988232026539654658202338236879022341001381211164464177493815374085483343796745331340692201550896387942854903651268390963403043633868789274112846734025074062362136231238450258849775007502769674436969397916480218398261262029303906521799184760437045413593668325863738699277830958450825261792403880319547479615593443154630073083253618469586179934671676785997043484942260844203041032839870845430048834536730808869685864580094794732086294185994082562032426584605907806405623784387682119563534870329146154217474245124281272398911169090870051144676210940378581178100646210639635515200224923580319226164361983486039111453487990604158730154287996860515175227961440058950579533663497960828980279276342695616709271608722528685059425388692888542931061691278509432201140797612634585092502296980822902587555840006753722020544104694649835771337482506444111732887875580010713561949359916537858456841901168306211013787901007230588967698096110503739850959443192474967526337001786745259218140726105832089296594822525300760946643342031920831132955593491135448967775168521422233630944660260578604089076806486147064320316893180093492798888656264654047950382447642527198832556245870894864028412412336138431669307971560692422569264680511123720470977136009951350907841516427858892344672451896476456654396178093471766410938561085048909232019675100456973902365513200282599299419267401469988083582571588179219748004864665029361432673583830335559337485576249811653943714417147472978095202003699570499234414646892297747255277273350048499686139906520877353629658249368301535291208109759410848056513368316507021579772971552468073576726467467974496918653804182548360537036285547449145248826973007775856353184003340117696280340617997966777100405300570405729351838042031108698953122204740279672018723061779203511454717178982106156120282066064679628593096142867333356470706405617122204583770397012482679734333428452344901535160203158944612892577396109603582951208763764972243255805587014343399847780692705069738574171387520033585860151533400972059479111713085267387261603247269914437130993095763976158745324608386079414213394520492068579809362999887206050049367991698512594906032033286848796522397938930749172607027412075064758367895824777070383603783987352180411433070653377869758597538678768038273424290287061113587877769123176074406729359259880672081867653115062592568546869289531699378366748653740470162943386877134259870708755597527415693366523923902767692833963774842486896645613950596186480428567074709346905329386532681917747616913651450014564750435114417195424255045289272864415077147990312944376221418903698134700807607182415809451035286675683797500246189875592191350154395802442792371791587083765604930187975420877920208516233800104032614331987767701716655991234205783745512326399248190360839171984197705467075987465762961064791209310896303142156965942784960841796422910332525873399603144063552586681484111041083714054636075592867219711807714656053827126082823819456835338624446458295393231291434294156339288206610626110599168465342453270899391251288283174406838129771778117775974141870454905118989178219614764100663520803170360946376584319873204278792854368743995892772690437755636023840774952265461999808795821123899409670943933283878398593469345474726436088664934758663527843162781785543746149271778675859824431675501075133727995439998563876878989055917015253988383643799313388076442692336399263947238014579430323553238571632345782231736050197995223000264437882042721140412589881859859011253074172112898278510135195879166153355289651099791837747073416031985295703680666293837978378879439258327449146804165454223870668738561015130307834113337117363828405808421421864334558729300313257384522489806295864748077396371910334272385930654980655391773431306212200596327392598243056016287102823285449693786879600886821157088832932774882077608456583881966126833205606425922949381640178159295967847788118046177234249958145452824574767905824788643187231778118928101357498242514476355588468530462816092102227335531463655305815065643970880651740989201597593469025959322200442703385433657669445413643962968051788903069611962486154715528690607324924611691181525917836873272641685486780878241549013304181251501746609317495410492660922757823621231988109315372397885729574606946785649739554485343963089593864622720461969455681029825047971846254091551070326082714059721599397927188076076302395786232767273971576610144094935810268543290932560367566540830443835771441876013421865815759140191918640965330120133799261652418295583908160919334545676321821145562855706096437746384982058338738828629518124885391446617881724932586794676684729939354843110759442296643667863638321664813067526302049939570927046994704599028774511814025742965664414557130174181174836921637793897936150191516575140451287724013157659386308649832785139023091641196135059280483294204763624220019782077186518777075193819280026774917548566586898508524771090388439180776351081794170681191529904622351023485732455265945544202825603091951930177355127417301068500156537621372568040147410964809216124446976458527750755170672795506285984634343797458214675803267866505628611584174332941828799357074490744144465405165228096768269881029127293540564080797575176349454848834582227944024379957710735885291082777873472639452198600576939864241122611076363869862010243725511848708565584428013847118953155896497339843959794127779765170722671716937234311583095659644514233679870382921802022412247674266394926733401088949967037484362475031958965973752966028966063097571899758790436829253679125118043515568175340004387224928116240579752798167970504377163491181256114302993447693491275126382022861862578659449543129737683629066031603041964809884810498730650960575763300663793729124507339964305498327531497679424710531206652212626619874977751872232552099473304942084209146391785635445333970841800204204724745373042577043563268488082195182370108073987604086401295840567612359281954839088512085455447626361308456032273448927113466968297488418332791643064922401046759590410437498856446730425020956219934702471913314729839027162888472629219249660456294205881609684003533322232833276571753215557646314479903392104406347953239924140652427619630148052142478636899699172870680932645612966162125017984056620955599780283276119114624729652718893539532940230147142938828352410100300745240504259072270964097987809151004227375684805288457517665877348137056373541262750346504270523659594941036862592034105381096659756047297163179755743378734696370041104406858483285892699463803744591613633731923117272603403645384744958354846513312905437202857429614794392438248697907503048160473002917145962020448169665677589966656596774413528833699533306644629432524076862728732900266799809585144638297002110872629974013329313904200284306937478162641861220212668904197778440147923719193477655555077931133801273469516106760543237338836946454838363547740264105354133490328494223184145118407623006980435683017246526735050498523988413424074735009713411542175114714004408624393431405121378551773586142870949067281066811676152998128341225179808871282044729826133583929777208741277956787853936249810079265543387549702655626834872172851271479547103784920222889848759563962821480828492607821697301748212668390765426519294665823440615655155725559244926959505239929140674016195163993274228539751422473477676237206890339608908421558982216380884217447854788138561744401613433536668156397267315194897315805324517929120801322783953293059960782095294067303831577998585226750318944122293288135955806199011301206760131578285282346793979442849512543574762377439430309428308581673015302983989765613527913350802692127202719600501323211394667003443655048943326751851684790391808670587437665827676928101787550023661537340661519739699873063021028700166497658094814784243673627430327284609389956842566260690762627797322215401939622403161039913093888323046889216458095791535464190719577348224270998640538377966105555274260962137612867415756071685227685383485648570535690246224719470693639454611498084890491335193453625853875407153523525295915989019069777732785669608867746490737377365594281783730910089463842745170408083436216827090653019929994820354470111194604481322658486875684141597039876709447979595974589902759880251074465828637186664825397417765664007645755213130471336187565759663881321602066738915116934613628510550354042155157584818091796198493899550725661392928529563822805628283605010639746590012018313559392716178030679385118776216343807727562750852830050687609430574563411938643897986274840369033467712491226157265664754898272905309325468072310619941804446818870682332773616493612572189861514533950183380008684326098036742528938079597997773862532192913912656379090111643488028420430763755519452996101765842569111072448829030002584567267222334024761224716540112403103864378405738694094941299038143449510543789734683200939544932559196013189214778769235103380505068627266044338040411979668151056815359298032968589695116532094393185613746315891887511024283356371227321454013237441455080906481320143059015996597305585092518207902660169514017945116228372343280946116318298093180340398861465217615300973042114467018548754215928227429166941072089365446058217736491089058696778208010139507309256919256914876147589071508880878242449213076139807574435842726632407024453991660428578687626462157854983927461521287063167555709621028404329907094476581478229374417973108411829266873253210890819376386874150597677122000987619605764988504081664844929251026349113440614122629074771456254624937324180706085373676205532246976685971271774150644366531095222234737977925386287007789622759854345193700183146352629138394444543525099741395445866814987461304123897875103611643998967523954324069554380125562723913353359100430041645446758294991364207874613769095145293680966623701878548538895420862151714793429471361211250694726290171469745623467085859358967748294038120552715866203242482250704105041903502425912919932548944388519298498781864567766947763953843374053119083567822252542447819024435215702382833464547895704293860047405159383396454325941335708921333822560166820230747021637209861807453346937380257258059004832620330309545835243639954831868526667005343828982547117202175080273542435446568097628163002053907362484712614784528289414337507782076884494012667361054935034716866832125367051557178842448403841508286559872702734228257638074360636751119135834550702870877030111647122406733971300825897769915492082888709234779534662449770458067302289474254479606466979269939939880293084090403819068812012194822060926663527695359100625994120110703325978897057300769640762761169482888649455979402059045934833062826079649914432654537203640709825465352736016525239459086333588117253622756729950223005750993669751479758808632135811258632718498142535080079054198240935936506544291403259928483395791734394064798162995879113955042708574965262372909520680785220163336841070233176085856012559102511161060105541226200693107724892923687199485704251654023157686489618985261032961113419243026873251857042986624634397299543168301056744948080750196073866722163349474568266822098086322549445397339887014120822161041780183314461273658690372785769298991551839591307571670706054736201584174499408176784301136549886900588882661916532617800570313595259128392730776966054383043748908819830303588033774593280444779978020654621247619819212640850186171322009417312917604676704894740371717495856384803848457174937518513570058339787171385851553794614241046606191480487448466090746699327943342318752628934116620905530358501057636987868452713214149839407055683332482885231880346946589140808822332372748185310591587464777877814133005507769550051528807383489308613385835296952751908717924956711003859922516693732287917857942400171910100052841123491781010951007023273120822385875266598561018025120206950450312315448072461541626106105823197087543861591309462383939601327242245723611015062692653273276068903859219904998749534410458179654968189135776351717736077291067791746697910595556805934526253500482786141694265867441844645918648621135584671585457120765325758357684075165477478904599895024664610920090283422509209712691638152858889279938348614818682578255024286448421146829626734377722636956098211982280892119930648202519310613443496071857084587325318678886452950445048345922206533939502185644377356733290585445857623447390934590635969682035101680013806422875593322451299761336112914712540295703298753560621917080565985683020478047660563040196395103509157203170844734700357478208542615890058871433552784490981191329693981139887340353527024056015475514242228864051603844304399479403388158963589770915652157916948981729901945691836863674748039198266090235507806719659265876220990055627902001843542106193162856646636495950686203388800807181075941987886341254905816334727991958334948266419674912674048837011659133175682011492340726234853093028306841093592543394697152051338193690199692430851892214122693459169272359838299348913309344747891133890691099932780749845245932166834409895811298538073315044741263192748601099190339833679692382610600773019268842990752869675163598996341393330910678559944425774049020744447308202478094433397220839378625452189706223041043983647061543794266052884109362520925292531598903025667893692537241207197511021916658076691702344699901432530059337227833898704152542229142287015343813818937803921209429701830207692601898911923142696473916744436486314547785530247275062155982417775770757027610380695630863035153093179147834301443742094538183917601463975572022852338348210043193999719479784790033750904334151350482758317824473478643398824823389248911468757180386892954613507693189273085799459532890108432233601326661249553817233612137102998645657654617099822228195878117608490894772994002087618018576647636702029570810722963958101882247580319693409343710981579072275251248226200866347720339215648215918132391623091601539725999290388768168110351280483558339292454533693653936726281625032302584469341588308426020652773250386892213533675353275314704091383073854679190108153219913843989790163563473031645476493624308466059304621909428365739325579100032803015753362087443635555145216508971540140842469604052486769860644815345676804622943966533089948444921110144559234066281441546546131557903046269814530122074239069739744796855555988416942066004184512084727612057055294600248179905564683283190909622499757839485850400350604167088415558265477083930864243276442994938012714415922404280265588070356144432864808980379281811792909606154758237403524773609114443665134360089687938269823283800895858160838508892216844914583744580356060725327020349750626184768572204840309864200143685221454953765346326501761569583013018478445306048729711668588250635747522277568154150806226413383575723328224916214777141400189666958077348038680801971219460661650344983356224566626253529411875376933390656025567438837637909899433785113116364916107626218623466593059200438814387517861407664661554583746360054878276144569855464096252689754357331655042452277994718771354332607083579585297914321776360075723703854817139269675776059059855038311018727673003607773538796774730556927996751232677788392571841157265634939642215413973787370836425597755624335376341723869165029217869697875311945984622501552318838220184961633115671056922639811858002827056973651796918018477502858317338392843886089161241492030095725534044127928759063770241218446701579894639804392487664474721983880295368309920441671047882876317936173369555297247820289302871504662184753697730737560854770328799652206691998518380673149427138994600045779822555666643792968922620075294055686866689932960562914513854485917370320932339294279910201806844879101398972675864462003476138914020990772884529315453784486617568305435759496930542371125764632441540552407825190739748459910033587980064092347173876538118601807107564392469321565829733706893491387993929886295983768422160558613807914050611506423720706921721914894120663751337653429691896607746727822006621261999188190023242393507316755098539138559991677160138134875057061528217115306683630418302037282318584286319714789989737199074644516589232894137891395393716911170708288206067145793832066452756025307019427546334826146851827416620750278738407532774939462918750825280096565467408317247182569654665124446161668672010195481484553647793898950181150566997279058296801600986463727138088367828376685906397070927800473946264128284958181506162378504954997425985054160327893679615586015114613545160729826570078045656873573674092981356735326631073998154472991295537484324424496344959933864027539823806454813205707509266124653630386910624637604792091416208471935165077187776759300978329981064604331096091349755068626324404038581050263405500016432686854180487775258716299447236374472119440907862110035272346640242325606131342166383783581686735786234572362058950150651420719082068466733970427494424181089908749577881510675546673274653378703507723469888634184175107084045144746747775713388036543504878600969078283266899743187669137072774900330439328307842362207854029511170204993582569394126023755378689312380062110444972746036183973684394838895580828767943007438598580767063547113079038965916455497938439542932237443949726061620578167950701493987684259059440875967802094753752007166974727494387828194583676154620285784593738973022601229981451081932756602545764717703813093177798831653031303609834939001215436187023185449683391570609575306285518694009761047170557986512279090728234151513570443780961536865177755413759064722754726448042472835652353120031837461996201999396701551579071208133554302363442174221636926447739688286782802633363692031368248632002495644684589936901215922459086263814916599192564493455385174087380386725604432555751471863199983310718533667839749701570179325929239927922536971079547772858551435435053644232576488918618018333666301698038350545713642029104007219595369073743132053551124874474511436790558417286742271143268560976143441833073189879947550347771840655965543808292177129926306523164133962687994931779406978855461856055923461723359775980550150421188029204297324901021502153769587846927002442622584228317687281449426799322979996704133399272549341673836315415844529476466718172062971881693262684460399679734791780088533893006176332736553111476981210155380073224724763707922762370408795143348299421024522985796235110997917711306846238063255632361094731887956388803999371163192119684815633012484337457246226996931022782137811052017106681024791356086875154563308471254948466022326728339851603801919735469928682176538382084816503679634067675624390834366361671590687202909389309897535386159727386160898574365354433549496834473088373010980573446641786144830657213661097582223944340054562572953496734486805598682705762981908541825651981822306754992779649545283268999982000013366829865604384629469891506836581544318449206408657064028744786679627705181863489774505484688283113785791661807794614922054643710491551915319681189240916689243035777611359499754509026302422313148758036518815144926276534112524228631161652911424804617793438807667497294210037422498714458890362841871977140545834541230750756501264524988634853627208462155312670210338608249028610341262318728186005591593856108427355716905755300326268611306718908672438736524419508492393293801603924772028121326159802662884293207865332923043761816673484358839154533432139153189350777831752262206726750484868646272663642761243108209431306987205947128478253472696725139538360621447022662951433425195895370454352301582931917888427975823793315768300668285244346098483233553720470608113275386384970264730734528095338065794250094162162547031154357244378890679981482653358602639076430052907697689607909622433896546790615161477001633967545900371590977571219730127583969663468944491689778288224645476313734434628405663128060097681983779812820419520943346844419359210145428270634244849245165405626899859829402374235859660863589215436369921978037491163562084340421503438107467989726835051303637782942640286828598385887169382303468916288202352665504024832212250052092666967387419217265078450218003400996200166302501844303838214245772845372645536309219546473594949574666630436551891808135555913030792636185946973568968944626635321104596785379341089148980278871539496182127571327383355084098735502773137021083240340118762768644342044464994962327474013201707976881594791322234005876743479211032644472700103495831488849512567852794669404545058054296770842442391550876765488368666533098027079481613800658504408580854513376540192549052073686763197895844221716365758159966882422920098404113314749028689107308908356497314819139666931141255453983909193797996228801735634018177644180067770018248834558508003632421066526797866749586494387533189257387736296885742119442059271141383794451981619273706852792172120960941506524409207676625796859600812691611784707131734961676561344580736280889976225771685615118952723446306020810589741474267594590645620447407200780459207710404045451876569174309943275035600540614631576348042363031614503937069192880775601705405974710332200584020717364328515937966508611889082192985080673771472097650428772343895955750208853386112438243364431407201614696931729052785276963007637169711807922837254876433607197511287029270291455467118597825685242544876967159265943480400486811925216170083415401657375989572831279056621340707542383009205005436850791486224560469742302359440920773479523178807607278956207769078098630965181524038282374447683963508396515572906389858896762203971994840589182406543401577298450532064481103083639057554719513112065474243863012858075949547545032554258309971376313384756258801709855282716109194323453405277336220960686008844541509895237370716225285047509658566853678028960227572368494987058649308705452106850064577603049782215641705041274188652779556622148090066749939930830932552228341169309406684204140706519247212687147489985849474540542370263689128364307724850002475629034761602605021508012414492152699651918162814748800041032480609021521824458333551859055705378398071912206739306320272077505502107778613961796455502677882666602565010501296767394324627892278517243532156620036608287133171966304028901097000019133752144737524550423359556025369276284186164275748747825714116012941669948640783764011528621020730591055455740473742379632716385009128710910948991451124264539568798403059680313968809196999926468902754112281595973334472003514677217489923984786964687826145226259075291863995982001889620233146409874378901889890076259660433315747127617286846341084226128443815311461931950541100055439832046289979624064637518049274677331133118720416644197221575235151844346311670871755200708190701455570781588064524926619034136720527486209284326361762319419297916594608103789466822267960355043006094381277203684558718116000111289690059400871883938506558985493652243018650281252360957229455022274807347670828628153608143749182667413934925039662202520942409634302194298773129805966579467072529421736857030970073538002937694148961674103945143400674442114830606241424197623924323996389217637904769321010051848893572064513012680042641464893477032850082680700025682553899345813173445543106866490625352136810290979113597932949508337262062022556987798296984745785478765515917962916514798127637638599337665601356096760049816003078557481734916452585783311067912975440222522241615870482575174382004015050540499434612500309119953260915153604232736682880725797935207731995484391034742723721328886017916387129977924377996384802199126934784693136085453940176478688712966531815993566407952860761137134743267270935265281099377779981939367841304770905588518924729411469714694474820313781734907140561267634593848854842875418675595378756884482441793439958804107278763764794322920415624826613202460850534939630380816061133491017484895947870380176442032799969668522088648701964939724890821116793711652268208834825213324937684717529036648648839180136145831912460745677455995995952202209717461687322836635071649268928240054888546837795147196239450771229765959732906281325544773151035825265922605663282300399226640648060754382812876918005549258443482731587109070240963149193594978978035977402940286687485718133880545808058863920430712645743027382148692600856654662028432676131075374271467649786369703690997688346247700362704752449576393873588913491880496587321514681781723665368973490329807876776606931876482727712620450686059278034498539454963378202352278968264710497600794185577793579681764375985950250730112584703600726365836051509039338333378859841029738282371013587970135613504242835743367312871931049732473398516089185235360665396462149001667998080851874730715035219755271990796826605049868006566852043754885640412862156342073350553820612932030951709280684421723743518453133647436347985947643929979619087473750784495991932534031617194910096067896907910461067492132822652654748214623882076025103891669447214070144933692364534108992591346274422363941922634003673242328540969902803123316692143666440323053639993842818022680050141942425479070945212146919477083616779395617178605999227563124242443531872118723344017558106553597545041821576849730220381762626850963603365043690932787909387498712820354790215100947554362877289974233990608008055648656231367971528735381085969257672467082361205001914891288785314986967895813585717119352382149261339424250232194044921913247765052943279646165928168019792371300547990475935192625827966012547747376175756585686826262500883426954882011725733969031070640011000473013062934395720628978156732718094991077011806457374924448203863369295872312821148951183386583779591951100558827874085624378005835245114909965371061009053483954128811571631257970364257000001597014361526515223454717561460028085744514225904445004493689219579261779387241264122306101906634756119453582929302997315213443644526298090940094778581688161667407417729383967123613520060491807576633838449663530365844266970844908507650488562100660439919392549930945073902936693564406692361613466793248014311173784116348319065065744322195611833932476387596919073528809502167165183437951163669435677201578150286850589455639430773377889561485766746677790108794983164895615276681527213214484757208599163165920952846134783128387396241072572968186012834171782273562584458056666520333969009322247323724066183606163330551881275948230878145598134375289051665343647631345371775546014560057898558150535186121262802813355422307702577403152457023587590340723473167886688493203882259909885318693515469678617722170072873698892935317909700422838983492891216392235145863566989952843415318027703062295457729036466859354239540799974657193629596488945787560596889247770687503908162803161962537536553941096391102577375839684472836377823947191593959955975573168490598497478579659299765417263737208058734827457284897302701466550916156424335385317017595178492301581935738633466904787077262728235642054220518573294129198361702079386710198459701368788412014026790309006195980138153211357516188181055258856893871995731810328623224940401229161631156777571600350323026631921597177679098085548759218273521514820319983806937328507682250191700850288414757278793663209132546636208095525456146776495024029439830539687780535951341322636237633614355839572578145200783608635961642607037121792101105952873595809961943602974850660632470740404564702487755446757087458283567098366287142785537833501543195738860211467381897984407770516931462961338988563541799427715001081242026281007413701638227696006549057186704655474198937455962650995483435041578753696192817644464317385471196897864685826227078034426858261596463376459736927204534974399758319520150389978916763724367614218923719845661362297143269582037058097514303287869868775342876581892672359713207683367837438355311953031609551828448999630980052547520063434099494279571567250796903869138123199333179959315042681103813758893175453943504596935308985192197484543840640097508600383203894676892408110619803856443556600145350941577713233212053411754416453033676596667893179623917533590376409052733485143160174732825664139927925603086987680954066634456506308091678390081860543532057278711691670099402845476855097366119743060634611670514719188562310418608652896072879999043566440688113824782521027513184735810371836153489090399248461357283705807885719079265998770058193011564032512298357266019814024399288188173598833496175780331028441076598094354511298120972570105630763318848960381853879737666090748874841723244951239337260787745589026908665146863556261622969768997085059823846994481164068103944349437718392975957916580353486209273450348608053646447344397664340664618313409395878024990440207677470347525815645351923370469711042516278071422510439642633171064536630326979076403817381231055421345685327102219086225529742204348501025277250243535793935178696295175181401675190054593049646251791302173516481479613485515341603659339753823048173324098012773991055848067744978011141954021489374420436260036984141009859227188720426774037131272169022102785981973547753377036639773169410216355156901570663040480274311095927150275505012229529486300241816020480094658716821618687574430089994100325010937833595967439322701915084930911541565114144070850961995506757392585028949356952459207890027663550619281975174711374585937441261033937334422978949211850766423774479796374774591395561262623176235308322933725180643724541293896366425614223371044636723990707794077443809893379624733112607231755884559445787041518289665590260111568671889195955920818615882590957092236459245043790963090685354383243584672317363115898114952809249380929068744926498197618138743572626117438375555704785408296649281849661238809629154690942788883434867063586194369615901351170436281430526517806070081083460282716180411016462253777829598647338436197204344249370029226276497213440493238055474664612167962002241115570310554254053959652891743525045554092482171974176402264254785235970803829980664847278456588517898584109125220323399482730363823160483090194752198818575025208537922664204663086420177646751205503596449580786279576777286535183614231846564396053952549534773703087079122766105341003825858943039629741650158920048672604181137372216958469919266845559587073354734079503756789030968455018122388392128316321795668165030616722347384627299670851250276147312626622504147804817483386385436008237981906689157327499357040919472396121473013452889783790965875276079560092137389158913168291777823162863164594479537688926518321215263199795998587078268912928073649449151054940147270421827088874850305451837881694435160312426080780088604720136534283771886975465424093674601579171712920762920355228429359226820492218629269226419981620072513805694271976183975391753764427198195749297211789547794164154418125098796393817854325401604849921620152773972200385220184989750135098995525376084958051045637631656906134964047701406467577054125061462896568938008322093462199340496849100729976023400426248197585097325512318724378549852291598959713189680839327064529967838425622742096224760625325003494224588193373183439594573573167910031782504400437749890884119282547106847598399507386415726162032007532584426751149545948574622547339247089455907127484185453995978425697517380407932641816478489851168224629371433966728014078525746971484387320282433587566380958106856579399273433394473145105312924224598522395022293329059840134637676450082151244156490102273996411745041865768830295627159865036055032341115206563583207940525315278934086651496681205714667263200183307648999090852538622346269368832477989370219742435075440976664057256287048796053411733840336636915144214715995061190470167442902588771693535519630443230534130232531343999765982402163879054056781788522707717161740198845398922359328603383513908879219307888007512108319925380540484743566928392804964430292031126427365727502616173920509927211017502263968615733421449293770179319931667078821899730789714720526455099803210347640600921839069700821661865026836511890640863781816443293414650856625733435708765232480944561986014539977025219774098734035805603859926492919131987781859378378889278832186412149583085789597217985837239949003658129025115283848949518014710035546805076958422536254141541418841458576209762285346892417197529372376023333939034189374057338710312076985811195944884888534395241380626089746396034994719219549633964630634522968660996305855223911070612527493714577572681035276672466154065152883033833535525796492398730108465277839511191593240273077509403582656176224539245891864478206788059095665714701101918597266243207880254345889813693186468562868896868038725956042071561726673706500679452135939790770563497021774139158148392961444415426010133478547229497799666450094911560798525970932334897365162656660528156103775998790923265326976273879587036870971305115110611617016621295707651572289556833730404027812773919739107624656021369087489730305397452106566694848481658386316765403561604874313072036008099164252112987763225281808389810694635452827940735921130423345826428920370163873330219898383671967243852564647599901908913270045960977719217866470427028248588843003736596184442057909524492783900582590563596626240053373328577774810787387586436640475938623655249208342217597450931772639271583603994599734592164520734908038352985817968498220238593589547367849872270661080423342578616180335197834979954304935979997309180775985807240920400525026028315015239369709919952220480978603013634458289392243654601359130995852409743151286600878000258656038620473326737069603279828460309628371875837839702562506375278136376158260740786207585344558450508511645749109060269989677478525674061577453414121055196065981485928141713122068882360733856302281945553369688039229970153878452988438733561724240019182174041505587240620670826314301335328719202029170551455184357083952304101218189589737931551470747762027144761791671816730056493137308177689694453150407532548934483275688147028472422080249567738803758780253248330137077410161194602064526013064719724965854271229084626218446257346433742676275094702763161568725139492639323133150785958375832458091919967757393111419757197056726629320115064220992219143149802772479349344828682659271115354932537355072476925747564070962921521143607804037671938670809419007603204000615075507095262602676099828758100506211801469155235318184674434309938740583150182115160064060741481840979812910881977676501782988372319946733257074214412188164579617490948384756903427757845326439585390620561662141727355978504604521732568457173587615171291552182340928240710638230967663082385146761787116882952805815270335181243665808560919824682880749688073337381961029916785978062885465601306162228258225154456553209729097389820324404780859523548286732175753798558784926830968471548282986698170818918442172346912979333346821765469419391296030804929923633993004285841354890694144709292447961362029567622594373108642971787168438912512864644578014446237801377425531572676638315964952794907171265008220174536472455596684333622991565245396099660242243115804396996290436980607027381662279382147989074988170889693227913101702219253157595513281474531196753248592789295714906897981314653349561223644736559882378683116720654027920260586680667411367372190220893892862300895343630122173361495337978281252657763883827880577981793360779439105185551959971549106433204337425945226907947604023276357761020393448177261664985257992740177149197096631482609837367098643419913017028316016018861028046302334174258800763339229549714843089702034569595957032873401772457702974078469292334379663941604270306463472114280512419624202961741099166028662422424517705713290155717346923493274056226470174170825388244806697203729940505456095152319841754805158209417956844975469772490412060846936155563126959181580504564186257270922460195689719753498610436484903869600147536056670489937671188412966976790329650868085338612134172314725841413118963105166552633445265013293277576639833245180533611114560708316272685768936538480662792067302664207372801264310718944353718364547532775431072994485661302242386658126254225516755907356220464511783002983642916415374036505898318583889567912993786956170343375847145959499013589427573365904786347664981221779033162297625391754224652400806939068985346184393092945265066149479565015901896760110481494057547274560857161260884603208038992868086279804329545727564117521385026684049223194143842203539797836423939667950438354716464935548521352416891621410386567718372789422318213149535297608367120951800324833028567258726319066613758200718442051016100268959456219341095651957318262085954780388915808247528076109572902263633726727372082193195864471420517007435501999976473901383072330983448719779138139897030979272295644167299602993997350562628941890168827234217322934343029683341096067506637246767227958571664695380269700179406625317145730375678041356747352156812862266689038347106184254945966845662797394980171868561673905046040933354798867850767913442648898585328213341181920061305370310692909490428440627305539554898259800538697899971873366339490880182692577689264641266920317586557426278517080453258603382207196871415472960199572258750562542887118685454035225451315960876824703750416907522116830157793629262403336350929250422447223523667668617140103648840336950112874264113900979352738670441617793381539440184724588582450178863366524179349253355808239632237271364477559791973691718853999328090473458066595735141705382399634947845108590507842903290820249696809657777630904260682770116650690650102909639526900986522953959471457927431126635228269274710943733525796226940206523029711787482757277786384387822149702746131605045033426093044107277285576723004979220608427783108673354543577747790388331606757437515194424923289892607913696183214417438991938238549980078979778384126939511551048079178668754557517297570566564628375761566174187943096226707309633517793787788657243828402108188776881972374464355757802991149850633985944076146859607040621695015475342958068861838856768753196804604945544130938634896033910958673509195949051100076724214932178151990690932532090537312988326329719716694542993496964102688016038082342438618129778288063548083468744852174902151354554846081777742741188309850274021329151763148498132265970986023387042721901758168514813904742046124024028037869300739721556362028302236548398244445412582043970400590521293666907008246256993444080923822198958441872590612236893536119926922248224365481550614977112639919262156001312048248194012973856901998088180325301864308084396171220010308875618333303875814655625516649492646429761681473050084133688957199924111310688283551109246843571422379195731455051660997788175554884354368076151942219308475921513320228635452942714997732972636767218384154360161345794610982171169363604336061998561719390276117291963632527395928054407511082681908833551273932684844190859337341567620873834211902442227536282306116818346401119334204434628721964711260941543966510933358961997667399962719958714365985316566211333506020529697035075454476415430285174229773548956768418423272153773568346547959803146546327216680590778350619024201489542539327175465931961124445762454961213521903186793920839895255198881515454943343552215187643066875415052434040532392189971338192898715535758610345574691083082879576512619971931442518228643262265680828005428751864155120815106386216876419537718176336956296057436257291749486278278361402921238736700812135311335375561967322641093739304023257570666860090395108480492705242068751400307628857160015542365317932678512516324161552001290168994478501188965141339712187522702198045748639891845410913361400604712954437218974523648067390821125735428068424474124545295179620618425254421848463265726234514752817155321166212388191482133965890409687026243310723512872207498225274025822403643026445181639903197203132839186697350442558137402339495678440204956680912877133283222303158454242629102675953671474239008627925036089468582342819141146456628771584674192899926548975421429150525634803251444890095834862664447011609877446441358819828264508228582951950011842623359651733307666435216244637933972260391409383372956903601646473326358765450770378290017583785425285993770515609066821744437792176678402160643826124160587142627256607941330372875838600131264197565299412667561772940022836140307583210972507321654405238845681415919657495843898570168018082510815419390709520290612130229009044906006687206224606778020942699342053938455511760181877348552316271295373151915901488573772721740677900327890013775305655302506236582695775686024882797232626431093605167847554438435965507850643363614158375180540480564596950559794612772938063848983443510711577253065632223599777952710779527954807922434018401960410292053708223359754986282281955316448719077036788401063856091274524360479628352903608970282385640752409861935816623635616051546710199009823876889899707852021630005307930346440551362659019146927652915400148659120172376814898898666410822692683840109253785108648690493871747696366605011252376522509911731549335914219115142204440012058090024021162699828814867023612371680190997661845678614830734204980200071507425476864543543737211649946123898462726694556736327858128066061244569036447238976001894234157747908352120717041813446672209126167315679921621018074873769509645313433738132327292129722624815548626542847928509416579625700669281483014136516427976051380113967259161325514147812490613630031836041729127308561104867769751121019522116382778146983630615485956213154022225784858395468309971062011667633297500163749061003097556307106231775156389432024693231787495936590039583042288442137813122428064964961297882933574171001359326429396228703840141004754534271597420895631662672955138950562439316388902688256433470631489801908698776611730053710046802308544661568026446945919428474936796426500565643680362892398521200656876971149364063838737045104141573718238065128228935005659378362587919053013639437430609040514286675990002081492017297793668565837080884624551135685866064680194261608485725491689996027583526071074675519315051149257365442684979146034477561163298033657530609731917242790845843474343246854896010683675327240834208343922341534653437920840394716820609739932317549333336202144167737742867536658414406742632650696541665694531722816357696652678767059614257629107143510200751280616136231435969797180842490869728265141452924351829059615809742358865719464676272558047191902746065056620218772291454217630190687325371338443417671072770393719252466196686080258275782858686188966599652370979880561643706738319877632028074900166036083598118893707256377014901720818089406801331635127696728173607662502345173815718956105612369389012230085451144211801523392005894810666103785634081222320685212336541774640611914531815111240301768249349931767719165268146927115853739310590848959250065210836458876545750253901991680333819102619657135318262398774344493055367590114469327379733534695023049781276539674363365185111430736488418005430405545903938216261674222231667221406062897959279732751977698747319305404407989154481064399072156010312025935794731247095088778007023381656787615921008082239778571557031533838066984756993116490228547726237171099227628342194380181114761158016588704960001698737897354130562140997092405337211426503200332177124112025780422608976788511777392654751713771018531062731346174782459256725389810713957488327507075407527088602067901256833714661416013665972900435202939643536228073850381189636542632612853481568591450350327570653399321363287169649720143134022833210675979827581679071731550325242326593722805655524234235302395732329696174890929444584818837625490603758249523417680463705053543673218908971164177244118492134909108196158536629528579578422561254322275837973917879903369678389097398197348514497018625889088022150843400160158750823912198887139632375803360173211290191820344923041789924227937325330778572613858041307165991961682623688861483991548747600876247162299638810146783076569776967216694051630589688878895307504581732995783727086795720273182772574547895960210944055975446372977866207806361989648886836309969143936385349719785828171971946856131808444041536088022900575956854645961123693789088129033413261234584252276898592627672844617536931334736493244618672823714205154745766554510278362868781284041758809717454813580988037314880833114512507568114283815035351488466271395049930493854658513906909336670902497934176891673061145254553939698979516755668452704947935045046070953959154378337438312869927626479627677799972120046020615236620673182841351244426788974205984377711633437765344859647786778759256098229570602147191858080831892510704275704248904024006799870751775543358701713930221857503593137355766908460685951423688284080796463821414614793076479524730091266655106986979818611442846466647919605128760540445479006364945311756847835760420343568740949372401756630066129978523454309535441357629043040880843268096760605656185397779599996817256498212791273656322283431619892708152606951969868033943688865101703523586606064737985058756842743866421424911538042152077935067711915475642571128090900933892218115893189369839309490723442039397609530786028983514367347334213881230197857103868153862539443512564129743513459374285282750017800575628811043516434761716568326675252184293661408433215777836396203759896859551182882676856528783228654222945721790463412555092631871025325066903959155559624159890323819958147071874700327308284480923926210371474378315709029211006230157632032739308836319025496905767344384208972620427399607317732024653251138123028451223880344282689453549088940361727361610522882994864011789641905036157629142400691738090668529021981729243722521591614190230090249348109353519989062579774619661783062692118566396892191809213405436326964194980275014688311925496220539762858304191572451146135964608071313287772349386514474197961723973358068784260559829396765369272265506802175515997322203689380012869141486659820427085203382134655332504860482176404264177326587057712249979335088798332333886022795450839588428373831988674065083580816435194694476769643291286185117196338390301076108867129778493829759356894301240670589135876705825038522698474482170287676312927514994115867529284566611078045565041596884773678177050805939311126552905221366886133840386391991266536188553555524996160687644045291229840793392586431993538336863264828377037073500075642037667589904407212247073450000895206758052968189131447857452382559790525240202635510654349907434345383236656285606800740068138375997886116831347632117725466850473366704671252266946105962097169734220395173541776655122432968645395729435601822889331741186995930966735186228553257201677224802837909954484381075681160049875197647513030344101212064454628106582053044741050004429535978190235681807401835255213309490912754330297149593237286003170331798218546979118146193703925913140973265769542934384989397698243716336937660567013295639087343128462485731952919345326115909003267638996660599493837255769615474383418092504264183864721553455338177209686510664359046968545413540078709357302129805641342734262562887147519967102496671371369963825410799670884819249694260324775145240546208054741349144909913333376621291850061395209124308014266173909392662631519873771227569454912411687489295795113922962598403452207992494526259997598067268011004739572520797475116505184436102587592832405760939712494628103638895107656001869536013026570433382253132368249488962700803569811333143693276490542866787374596590826215944713060160695924974556895359688822276465247271246979573132961044613687726876733256125239154328787444716890320120544527944288100402835859782411769158694133118104838501589287905865486518927969479652847618653358522158839095440783258148293395228206362901297698628952485266346731327859292899769862792802080454331869409682421219931280401201471574127971034724202031284229036664987743421592859682939447184632879010668901909599876303187829010269781672621227492535564115301547375561064106152967158678476921888517104100372426348666457568894547114009748830977906846985174062728740601558875137344945706770618790097960270153928170400251237640857381362191531874698034832862590455115403284971711709255007692143315356939219165513773954807234891482935436795513393830441234188616853053886274256582152419479830019577990069250514111094391760308101323870984187392614088498254431685344488872672766051068719215427850425807895311952537435539104268073093487863331066305072501922053114820507932579959719874342636691415556514519495133471052840006590367692818009110430944454303352716045228978623181127869628637119862936237833695230380741374461476207024953988296815679043089800120457811956147042815791370819649193979186999486931263666220955161566487384768969073389300127484227505039917343299068076393575266661685363013349936790730589671609736189432799601276826015013061242528643953592714260025314411146216425840395852643353262333073560285033590546584528223774834386023665168611058940626878202334511645802803055187636825937114937914554504446966056370590313101648528018756385605379195117409035475300770163360543351301507979979729738985185035669458810244360757176629260196943135778068153683115619039584063630167068811570675351373801100827204418638829073366319684370263862458374781104407190254286214985243151003621064255299220406556363351327594082353585935159889293407620890885080146826726592412177054811481599283751293889675271434087801231812056088484109227113335822669118412332806611149953774602020855907411806965308026894691890942210463354723766643309874243368190713345804838289366358024236358046364978423323700252562806898251101723007814247142831635771165285597786008077027553260536165358267313773369435535830911740293356895973986523951046317945943164494440609324461607538661667433271676954188428842709738455238301684765590187000304304888155345817961594852412315157024356455505671819965201634753410351819363641695364638292729783701454834166334403857082663392457540625378826292204613882684014803781333041897785167675932146317082224171558210810927711971924819946078135731403455016790096212557980933668230193366332340935811526496222006960697618948540295511450611600035676421560227572004961069967094679985534529541122232920264469666322480530237072831582904694317075053987357254343563065808873672667090068649024421487595434774930722509011141807415500764205196977710435596314036120946560237844581748190523521030062001290673737114501522202117172606965654831528016160233299907724187672804602354107674891677683220202538636345389410854241350382003536002915726597487481545548785970734657906546133778310288344022558735606933429847865164060968691444518398122366249130154223975589770024277873524824530281180305762700048217793202395102998197725657299609854084506016545668647707968463836749010080082415404571735453682239427372879459161399198305911357359974947327542924775952793688694563915498664764801387974388542541503150598131650736487625780365316158704677800942413717946123861296076799514152437727670031905443152746076610689021020546826658996168398947241078403003117375322925076502236341489381548918302584282083010519635792885203871286836702315273684283998094552728525720137638226165431316334321170186602369221495315766965900313018716988966521230157951503459999075940643865319332622783994295195242047316132221289574428572258479138388380008614122619772868867065429264449650908795437988900406300160294381590044686440287419174956867859934126704542353191880124705775464826845463790923442294120893202049582811291810493038192123165622386303425107178764434926122734811386859792991301929227848021443085322578311550498925378937875874837300614096426906214005263991837765126562055454624626983120379281832981204080481576890395867696725220620476661387890059376452897859218080129331103224842439075883609463857410894985548394749887538229648346641000815460568777856296829091777105471936321919059306003360343920616886820071924501019251200754539668551558508622275467293018332499376344650898819204621908842598089203499785368056809328588291660647745276651564438059385805444528461029905260990528493968808906241200246559472356006141192050915010847983897626730017099614999262918147703811817978367019688020298277073781783052222518941378673230222826228599527439288376620380203179648433457224214256736883773904044498799880098858645196753276164877603759254725268694593644738822029842720511012682471398605487159538186500418194216014735945260320094465909441683323922279143955176002207826136726697079461608148345556509848799316525021624410303179711349118237144089487236338623173532709667095400496220605828668297334952167171106745889787093912423044590262901095253162117617690419455309709454156114812982078822607753104560091737638440426466549642304100516688723769415564781514327158583679895689014278449497620470270710607047427661145160282994235076346300046321751720085738592838456464226334639969313545188989376272125476687232588477273555469928656384128801684151580554065658678046790464064771539665565992761138204302723533314976922729828739344654913211184481867362946976146819356551485014521212211890660171603947838208845908602951498634341605855369887694643701370503062598801360336398056296769833646498377472157305660212949659672966002021914948549754174920786715453876663209430650390601117275223965500330075961251963813878970914691031327386374494616708793042157260709919346841576234650978129351421206288341232433442128198418080876854519123265982119475225058088231870061344226060427244821435715246441228796700801999282789492924019192087628222696514354652779458474657158265339812956850055539649718651171706673793685866303432040329045155689715157015986156122330938393329059510372448891555140231598365611087495127359227649782034556875644364633206962413150222829521528776042476868416067628287955598355584556898150759277079212825104632428248501506512575732670659917729207426974775259175419892570264583144757557787018012296045245418868766507572771512139664505499315409790144679809958651552403854879440045103731835884176866057942167695105224754055177040286747792887495290643412255069432538881994571946603829547252784641763501773978039317560116352776429794066545892533319593294609340602002412693616044234350257989578355410432227909675967019941941920688277209813136445359544260187709999606423075594628819762699392094187949125301150597886278493160136817557179191194820233716120713663353068561814109239779714737117336857456220349924845617307771639535352484871090741703684570157659694530616808438653357782342627850913571351862148890337114993811911815080287542671933027957086242482929283709923724859881619214979935944865386262011122499203363302603911954569380052889950399832926923910677250041937213321494912918737298902811658194235168517014190854984175620748238188146488039065070486156386312914541656740235434954014520043567283505888923860326618186766102249603725386183343432116485389125311334167372864640920377315541911797044204786726291814372174222202126422754251106459996247599958020220716908938876901049571536316986361648631100658336488261764771754844064007865067098081133450755412140898328746081874382506354329041047239840141435540922493293475357284682438542003346199394338438537639234579063563293652112550533361065479724109234659825380383494699581991516477885760747709147386337299851472585013020566873045221888951296989157340368744832563858338801969552869741636960991822631231299823561565914731067790442130814020294848851963425527053253940483031882662371071448059247182490360286637666228264791549755611760740539340965124163144666759107628258563075879515589588528600050682429218206282882533331542404179631412535209493078559903616676087340671994080642926543138448310917601916556806780382336374777377905915323441702024499718411528757724771322647645022008273896605002969358943332348770005103065839673527730928460834183175651662401915901987673307792514492002219499626585797464134242087502638876141851864398469681028019267102782530837295866591723100464591948910921874073613960101447346356933387653041418511134452992769081025838388878088413971616629654210585804429914061077531067871988027074746773007500109692472833081703940849780671176657482944361905717162193183830696430454460800671502389283220142181304920496942126519083442062667751815030898530510652788053763459824775489005331509498363113723675500052590984120516054578961192383794889002015800457868620217321233573151206202701611806431219621099587988623091104103340937139122393717476291535321814523951483957671077871759724210332985485598223543545690447506846300547504743873621110788941710153461033129792667262268726853573207041449477859429417847153208312450236929427017233068451591031174332594419619127071699559873905324039520843602858580196945823211002493793799086585303528253226305720316079833184764047922860092253687921085496864156029941489989770078820832178121573851586481020482675193552046780661890248528406036202340802371326547340386586638541814185890476760048229909485416448468589973007862373607724847809152462576867633125101740270015407608368168988700610617973896997248034955406537698642408077013950293020295262570194656529808978481309114151765887669914654176866595613536400040597580939564361109168627973746736724497137281135780039804457542688540554194890860324194645372769364764201132446842635577209048252962741898402195454533429932006047723028759253268283952596502371036397029130108946438248004397463641482102260942141946183643260795301550490297099087242683669951124255736612558849099795623841651300179408822898323074559766058196075477874043713645977953907023974717328457749724649318255247162976009802777788556243753301095829904246190961963918132149593154356822968816280898507436011691510717049138244520917873615182134823309249578332104683435081802941469108703274580784940265576154970587123770588925851376016083999207909435583136218907721554045783656392967128073603881687410435972879622965170855265373121155875397694170475385562689242621322360988602229544698567664130345091821169791783717906839950026146658130949350934186663141403358522953522803069354688710599097789555155400577412225690689020619804597372263199201539143477099923353316234997944603588352774745064892871820188748576506581216491853008611911858550069975808737650452356340139382986000507190751682107319783553505691240767236117243989068510950035305364014553532746754921543381599880007921871020042430628915895231994750281408138557279845504327379560299919646032780679019697156260529176544995155810275481606663603722207632341746869461431324864383260432790248652502068989003091775359046893737891045837749426976135895871704737451573531094319322807052792131517746542201786474175070988595740007534551307023498911745626973629896120668798862572402525209113938425005630200181214004772303566721747782925016816224643535521526706892887506041096275670238211978629862376127248343312688748323480774049071131645330151492633695343090102226219381038516315724663777912377738861790764787448712537658125130599119649244318573107424807334349916335787864390403046590277572509791135846141321815425538099369054956784519081751659814991130252332035346238868494916807192786350515041600966179629400507299138905147685715925867473046859974125599564000561842607737786934126592124158541866856342220617281816096632705798425562027062940455543613233750801562570030332191831792438489953037105204271566822903633945041327352131584133395002249087772871606555799553004020071363680763697049060072069340526598113445565807593018012080733193733543597760213797593768295035528754555175922671277465747642502520906005794137849748275128423488568708134738116008814605324991937455586530562884372297401928448909561818195594031836517353099303616945312050900884014903694475521569749581315699704254242707213212326709285019804730341560923968712444384084616239292966225355556906215670454282670583577236720537674423317827790053070027940840105283895573032083298622682502129760682175063750521986145003759431203985760313815604229174793474935129938756304883506364747457072904190335955976423707686834508627560679025076421914441490025799249709688006914473919583425113730180733955082975457145782599412995641283044113882155532552150507623083913443859197382353817624604724146119317843283674806479829173239346068015116645431531094193110401054053604483440623665852713424392425053370302938058388729749263288959630555138376529426165104092688185273157260301966980371792872173042152257941872901535402007924200712016467535569555526824956473790526236386914915102997999826666831305567104438634177515954233726043725290611908614360204075460484859381790017415892283483936038395165872229225054539761888984211004301617874299703162497173295444899199151029859700486559953947949430737429867252403943605595279747004074008106702001447217334293650139526862473526491928474806449995716715168525378515853372834380492970146459990426443159659417668783220572598218667324359377443929440662789113250158295377469255368088128968031226797749635671759373306259804917914931201470369334397897871708309078870190168978177528112433156656182550553541970797106072906276705848289709422873180187977792630283569967805480451266396304505353844528423871972702704841603768556460558964864810362467782807791165132616597648521802555462844770518607126115535603032078157573752460609352357185323049566843417552859123393528936624897667027560101670256265743999823554682586419597737528666839730427062465524705260333817366494337870701168377742297529473374931224451254416154997446307304775477101743937305238192651698147371113695989098543980363643309088296009825698049965934489240710268048359148971581139705143142221268681252034343708362748690437460506635698598107633163991552163983005569089046993561975422504334285062944931555410892603819219713199595744043481295214766776421805727627797681644765851888229143675522948465809713789719841124236574016978255671263609110439856466060528042806014979823139450272623340237097630073464327652373444709100918946187492555887232080417035328858819483228118741870445413969416519428034093592443511796118469711243368904530355888108209908995421301721347663646164429884284069517525475814033771056754680322360338991274543554524643790193720725355866386468289081526141761892653560054352650799557473759297902762729722824551208161723457034127911501045994100282492680726981399224082351501921332445757346086358958276500236167530409303963950089587251653059241276949068225883396842520631740905929562427004026072561849638007654815577938541994336000331980690709067294755210202850342855478077005577325013054444451229281594121058156231383275403193223705503807830063806567738207124233265226178565788899476391913081906957480785696841954365282137407598751823088005937790536270981751157961254741885999705300328046906853346987068970573944963354884392969650843632122218096699967549549230335191823811328097888037316494504205757687202127643234757195982418484241987409474641766133055617293674844043157694836763841461658325538735921582173991970694419784477897535511938953798393531294791272586651453475181297284356552959674997548815079413310387367343720949218621564754055958572082859471414089642452724836230634861434624589971089101508079991506454441732201873010681329624967215733834314563028142797533645612667917060735692448839647843259615399744173577502086402646821642658109755545417531740709591612973872970000215748553406239590798885330264134502267875282994181564888101429782345247626087255093041848959872217656096571868094058939548555671358654215525711109982686939727732889463878973298424171444803154770767132224351657935119245813529786074952931979713038865510772168596058622014083143335872156733119162421561005334099219037562519533841959339278862953178411115541005093597681867337934160693887356066988087797564063143206117926369353934174490871636730061236106955784609776588012544605078795671293698669779534798686217314300281805422507970931037544440574200648529651577735938001674409702150079052020453509723372171801055470349540206252892918082083637251669874307164599121751058054749351751269321655375363329051808901846367106961045070540086064653122129662435806489818251626266722724609540439963400377671035854194671321312247325300824611846296803372002230740507916184930943384382023121002847027216969845233639243137347940358414238437748294027939145475557591564863520258660601808182499874785855020757277896352590269087297280112550822485033696823092682226027957896336156081156752451221613621906372681782161975254347618723553130939017758257316183370358206747231161391530845794918029730930165242495934437795937171224237743938474213307597710010369079281290679776453659962218535893952743642015568446583260720273187181709796931473981209696062307163192878391039094251328103641862642538120797622581513635503610058639514581955869490338518794332685998968364046053419533737662411027809527186621099593018253674406754547770083395110832415006895915136312991207000636968461920310777087621765716476350002410102245126874070590184294572219306233824023707189943607840275583091491981967240182706710142566766106052422595385269572338758089545711020270077843918483914329509972089259256628980209272355724608279603420325014807225248434579263051535046773649202243586741987942031434871279145525636596952884453485791841555688071887359391205454013157567941760456397596981046765230944575212099511776271350780233085476000396553224503704987581534314171542464510440423665348325678040043054277301939417009560601548169384161386282863812812869847700675475655819940678715689404773176811816114537432341258218302920247318178091682262785678495288572141853170753893085509828454630318194113343698566643387350388628357462992821934129442239695551611665546811913883971754539286299814450093479211318793006343828477366954108396813131504413330864297698044230866989924886424080118279789504211737616270931895499853122022143386552768031883436448074615721527984998890796353718799341449025123370735667607487408665954169948448374296852001333408676440604680776480865454606248223364821196475717020332784833074603423965267874260293026456790862708821359548957087814344865048948404350521267710112245753433841778576912172445520438309747330119683398753211168692971615545664333839246224613513624644976895921008888229762529684568816638501242835146305674753413698393114206610359950990685854572151837463647536095324219954949654002721649081482129369249503731905930415122000150322094430044447138990072169971719860943648023231470724457763472674869502142851584239721773455507844365227282806824638997875555811642376944411571643941523171300675915241006608532655785503877119769696021589969986302484361485644768776008647486953217355640546236967371395098546701821106768488973935308428185214043269819724959809766584360357092526474830756060447678821688902602004560867852711235382980008982806376947902261913046654662119458248931867576252369423446326038563184703732956424675554569387273885979857557168240068406905146696098537171936096808500811999305791404809303141505167347706890456790829583435358635670884940883912115859710190982712496581893828386975998546980493118274547408017096863407036262253853278975691379934899550184298909917791951774021691338943854355154586530721818078170549596032104440296801518305264062338881076272650583107946499195771144346118763164746699407623608397699816090796564777955097754587483245015675995749514913219365283878427390849722149927359757102293436159649176642893239654647532381440881663720225326507116734689109699962808838656857411622028817887947392419468945287740627593826875724424607374893213456679241565628947666576176026672207850250356844938228840092603525565684736836943969517976691973197800284680671479704014232325306926775419817708541161571643281905543644341607669987174906729614483742099455831127729932892120288449310235761193014277032533053592129568547380211002748488619010919556676045118262800552757544894827648130900237184073814937896946042132441836298652647371515372890148994760203312168792232017792800462706484685093334767211471226088292066110727579536213263208260013799653118088877354112582019386519682252672255382261874868673361429688573380868700304526546781210197912215214107999823197641057409842648159521176749839883016897294370049543625193649169174232279924478685358437179990840399369783888392564437672341910734197021305844600795464772539372212699494353336722422746025330271781012625453707864545948915024361547951321380283660877086619920559834933752998405730299606257785989303263512499720179178325664670705035525672413355041223955817063049761210527966886397376605302480786134625924393944564715637791054095376502715461559357478238697504950126364596313469302004452410392338201298002673503606687710269263331119622599494414934900856090396170741718131027624402768597478230667101882907180683799038477062643219216643423585931381084379359800208953228924621021654272511603885164874722127718530406443976345736565062407354893112764960319367345343869345826436522558503694984381560269538688337207137303832081100322773161306277359826562021569944069850294498989930327409482713720144078621785757689800350644049169310506510597114141003529169118562107436437890925858114259465892255494232669951367329610827848024734274604859881968735012445485333848800044875642774592068979205741669280139608267635346185516008615799438335770863610270942231448007960771072233206808576193229666878225745031688053601454366119765616389004596317061863542643560659139716277093265263114612412781806125780728111057954197438828554134160601115940681062182357447818224282114015182303474454810239569415967086571004279471326023156070649936365438017116998074397379783024562805299100746891544211004168108645312014844890458268418271746477683250429237917442220318658018778093928968400935271755896332890940896051598500898412497180641593962960971311845916890883747913592582137347455252283175246801285449220721728761131839736833429133967028406543599351471021737058064145755622606326484966109585880251700174922262755775948652527244905785437489119505832948090529961739132839341143423709353525142499981630992828409854143347531194050600391601767542531678833184092851824306201776963174195598876742800597511028843713926827608812704964372461447098233269583014028443524183040492087644010756129730503809850990167993590803625295129292142335387485248870889571763460889180651235588649535464018617727700561176590415128159440676781167479863457271859928925174392179026902467941289341730483210302211135318151614314355833472699359461871056505937380652692206542382795721063646839005684394986580025000308538805119169332867565322653526032470388013847236315405633679784591177455008348159784896007771219346029366451147487457588362313667423127716389637610409803269677622092562189414590287306446484602749851321228296354929913179060733403298074141595974914079365219703829929282711961569475091566409213114143223493671347861264331733929908461264477573787771001985342792916800658001538837274905556323406389039784961826815802909631910561315797166578656667119078452111894737856625251466377951627070561006769782464258910447018600799560007489324278102735782559479245512220795765967781585246251169520245564578481980691320193618508905788895810439464522898035366779078919295271830748798015484321028414335022559131486903146908737448884650908243791779423618167969022001111961035338153282672558184589614867720224991198100953547726317035717662526153394596981709222518958446160562493080214682826930338393792217559676695545405388739399630617828490127675190615366331440289265153076091814963472512249531474202442124977231095743190480300300366643174781992672221367959651975845741041506725172699374079510504175961531982235230519781751270197171734303804783205056330712665000969805745414135873786112528249430200392358556286396567988915727929051774996652809356075720382763136919626097996426272359772661503405313222751417696958653657903576326817566436558016351633410923129300894955640833296624848605205540931688440557186858463456851596448151841777712448770489968809487544835836153420523352972619928355177131352912210612930424492956651489451439881940939437375901785942297687057829692587494732726090993327028234449596598707681060982962779350278742080492542190730101438753147388849423639407627079785000640745486107412773087569050799752401626353590502026630019894133049980864477656775389910953194107727203129727367936623708597032193987998613779360830532718573756848928707963799941411453554980664050564100764499208265360293557469558642317310477603150717500945374007084037703461677049096486313389509571833929212033942050478827057651410730902614724458431354668820313056620317373753030078861316867338754114034011142503377495534361948177839129237297924552880989767090582635710447174233650487468711449037911513637365274482055591814170730908694662415365702993155664357751240778136812383497607418327132619009747953213095410690034793011425173170078669262678118106354390470825884638077822668698245807009559692597324569355099103004572390793116496827684314431266067579616536957520590017360265727599283779252000526753968130383596125223318249435610112655870740406990088643164409929492109709058456196147126891102413398264771761544973686775017004216487617848662950392042609417418756198007319878039846745415262064371787639885323659919819375106245242721531883002106081442450231987215685965610666417605361639002848239575956029564714409916634439786739922188940897006739639667214687466642402693946322926912182218057689710539503479657960341052378516798680855699240250175996800007322883687075810986485775216410030824615158341982890598152648935756589687573598162598559715665612513550629933242286210889523725136615390113899236763748694907950392310806687086768944465460133948007633761241112648903325684865781904150113807518825068604556868784545907895382898279532349731544677150774592925055285911732418026337276240601738944124833884905359728028205963974718859795146531989548376074916062886163995069912829444887373649311605485322852751361556028928956144014882235879058906977238144936280051473671627386679409385262866337177302814212482863398660420735517170511755362437861348471945918809197160822259709851340677438874657993716185769104999982030784005819916474980316895264274265561116964926514007761029044738903783118624517407091722590656334289689799381365586032005185420956810536195531168917942479926182201595792426332957535110698846238402352660812770828556292706442165434709366239242333681737820779579326845469794018112233696681337927692346480492481645108548774358492513216440350485859900565204109933384024227848567301704359930895838360597497732777419513107420374104514706200080703614072592839254351221423528139120874630647248731638000719525720617611585345852689331449590271234810256668517531014900235274152883664291446368480289138114293110299122029146703786864044200075473023691966385448367054994329476537269435626234712784430802533199337869421292535695560042603107669657080873040953177064770497228818693026152647111557249177699589218611225466539723103433623676340013595520690408459893390022288184968717177058803334755754566598474076679146698511104049959532966964637082725450312907878359785996198344431790705276742104046908601342390879877358212149807560411691070408974457760030855831430201433500625535654569140874319173687464309645666485957614251050593092419349565829606524401703809147413510098251607795613108688905897534598404101829850285330909222459329290148434702596732574679724914417495414060758764275349914352361083657703101745147353218880698813382851818869038733559889159857485868172326693668992400058787882813195349164971663536913371781749448902736789961560754008351028732937824625446178575399017262533393681018748947316036456476986815058129526929217621623558815640965960789307744897260672589644886402011310131455403962727777915501918687292915203232297886124655012432953896367552111781558365975837662763295563285345031574309401719567887354747383874189671078572017152336682075979994233542604316604234686852136667255356769842426868052730562480053161351554314338198988998289718274334737275208970792941554132139868109015558202541307040816379538463478355638863110840872530897134414084702667418171236743129692171549830260042519013365686889616052030501598453180935861681058644985785947005980009899604573147656625206067615046396551621932747846518714618808643183065687331932755682675114254023058002652266977312979141277763488763962517372737035285030455956065711475422308240811613683592697875018375321202337983301096767328763178730063147225661236678138768279688686385406114910639157941512296554968216859202515397127316401199128727501514869949243969571835070238619188752873064164289749027169240055248284139727240239646682528465690896200553682952474125714331854116460726317036732020291214637366819162349386684061275897713176619851416820126029774743187017886445569919832846647290779030987845608248517797161196987677552506542497486091611956267616147247023022526731448412372430117733135539928333951072099958855326804753961707690218708403381563197824365815687355591496792978119611459049809193931643818417944023606627188781028916767763353006071828112564191446139811410952618503495189365163115250208772185218310760109584676597537066200723063406825009043143837847849740508104747663128518057844536889927681882235157498342500577885811458839761173481133761935975275682808424938020618506124842590645019444947135046163255493576754683810724830034948681457891487753595228284272093541413715882125931392141934765928754250027182936602418157462499458001589757656494759148991379660688634550637763011712743453198995557196099594745880429120916156291617112414949376418594724224549169366853032143605651563807403810359750398550756329244630204846290066311735864188931048938770013713830227510792020063626097835633720382182405028421162746287435521904757823487623323986743488808772563475649169787169363490209942671357716391523526589430069880052479747027350695435278398877782558206970637702048384131259954944584096075543784188682229452334597021094672261804122107179421720102179065547203005461266405591426458642304959862439396200077093027316254671630493219679721742364945038956740311536855869770924621099152017311688145665564130610578908855994212814281325156489585123763695225258958597838314677645709137839005641029611543486109751977613362564801828531203238943754078056623496689794515520834957408938769499717043551654209315367724594902993182265182782048407539644235529174632973815346514163006922171472431066475462038127290869139466845097414593911831090436139013192610955037135135775578990432312394438520680535073890709977430751873169743288139504555225633638655929911346130276486215318137941546648513315521360345696350666804282035391631142022348395189180195256521015617657533647108583885725774163451455062711641122954701033685897491727246990090729436142873437015649074619041435828333328706947906134711405329349442039199927885535124724261565669421214362984062861286381558128294762415575797160677894952564827376670504902301316512675662137987101312764646466497286601646821997855567319616330458445991638644936328366394102943915569409465767042302362027150886608966044182785898339387986542060005102022994210970332812876074027978347469671717424597431586378419931285476672179910118840775377414139187432496760457290395489945316566723088479424943817283084540566229987041689418780637319091048969630964205446920026723446196402025860833346201875720488755893697390838731014334455936085821915798808050200411127929474779651013731872961021553635423264116495892473565832366132323774520691613876886518123547756731668426621619814563512972424303872651256430991955409299821972296512711272887418186698001936312630985733151886977908399044377320691333815157121684312580435812568761771790876531061894310078569086693114854608052576001854861627365707801776825419161121734493722790924534204553501978980147658252417236244695061868126653956055843144804603853841892184563763999375409044323734488034261791243431533216821630500890700997196066462018089675457348663410019230140855974202272207985415511781069302802737059757245634706020441352903842513205346293110411166969750138538515818908703117338059175079788219679475659187637223207364187284712905372065848094668420824436499077066284221877350611052713308088468852402710904824858515546601529206305986623048139862379276093756924962772404666502328387713544770769571646941464360927863779860939674725192711166638220820925061014494702516872087362471066666880836380017057257535109311326049670342347958557526984558730817875975217354542161318883071281303679683024252497695572103487508845489989523145701665006161681445940116802277217788250226956430339921868343442266807455080706193109951159510708040993638568904913529037091198538227260831835754750288323515760930594099112092734315371809418331509668150719057038901179694245332474872402510571043775847718643397888901992068786722022644553963270273970521925304044890417041031977809092806641814000192911944120010405583845168887976625611011897481421855291590480645134783132977989189858957580984782261364438003375054265112279440751066062561272072310489488349694597463582540434999901346597045444247880191038967660634271344656829759586245088715906312870629331383311499904422296295621373226615396094296822632340801848289052030369314038953645397903646185684446886811685042730372614824064155691593220920321312214668529269899040658603062079140373287930417181124800889574862332009582015824526740392361025703080862519620207044332363221463477104739934589604769978460671200733663296571805416605055770794168797380805845324409834385355148841769053734984477509935072736875669412666312091232951917986151950258640482466927936575966335894819177695872740781680413742827944432265703642157462299691132294525895038160938857632793102372905387477444686568814400723761322818991232324828839363256811837271369381676184387138574860266678949041821411883923017085301409322785652916515944860901204622342554394059070217600912031367087372804204929055608967817885822019265988133954313257416727822053958873296690070897191775510087904851504288543759389238269249061186675087073697565969642482502999883399110642899395155466949734799746838125753728257730134356141221545397048166069705939123572268508153437482347270985283380835784616617437297349947326615944580523843426423117064066603167036054794598063245947245111169259008520339066075391618460808947436827577578702700746820355678302723954437431860272477408395648201410139135692295309741151341420185109557175411468546497608731337443551106944136562709692956703092476595003249200317470282703198478939773097823933140109925907818273724887630284238225810213527073965190713096059458525768078708083379291375840154237060810673015076127866144453616736772949269092266530748012067250961166134378574098467834415252448818850538656929402232528117279427272305572564328275432929769332502140573249872373531847720941198478397540346531526562027801782630244730078098040567232211929241187324816300001257101668438057017124594621606193025429954571220943668716566089698730416076996693061855603945290543288620947540014409944553028677688452417882815110621266521489358227237597310471106587832508496320785436921617056738481425021793298347397151603483582556726532450829518413470777394360265909723700146860840223880047537579117302623795840914186595283949774925631456304923571337113618264340701733289402017373184712301047462450952240043873889096599918794461457457253908044818308366617339268711234488505217667815176505556536089932693300416101543704044355233832991858380868683325138100088230191908283256553980511452813584093670767598391664971661882894631502043263139714056745091288918904482533579582705821966624477021012127673013876775737440131843504396326838797870823138939063008806092232929679082686286160152821029454288144875094118762069757414677748932320054555487423311304235627531780359743798664244459521985679378785695000833463102724048987278212811107584781136998275460009642186522514004203734242596784162244080825288315610737835011353812802969170821556862020672592561787394816839918708439449983777185963775943766299530413950248740072715067177358422521511392348382651214742827195382892187288600894967573660687212345154546348875205067060661047190959173904011141648939507399983246032992286192211963115910907739352298016224351674970416954824235981103900458893354721570138500020522780509209542088982844419321869253399778615787816824192346540773134719703466893924427740650501180153195770255616610283774629571849263700925110554525606874122274295295570144505643343327460828589247789205467250256972189237957658231582191005872142760164336459558662237425340556832224274844610870390901718840942895260729444743570463146953240308520142167366459307796490170607810433485355158736913439481291733294250668601752974091234330477996988047980326082667336293391889964953415379066599630350530853341963523114105940046423557140143786243526109971378244785175477804454145016667425203869811989338249250104641914661905779308386134981049193998744880169504140097683718488798463858989169937253652145467313858324606191859894296064175317263917194268457113889289981251250158606629973574650536036851755079572437155533699722168419256408380141930053886090633340935785909752026699721188740302903609136620653434451674706450148369904303292859025498380578834338239675430312010522524157279476369333681240430169122607689252093432308683701049909066525826977040584905832194201750809469789789682961447355895871599178721673915585820887388457098579273071949232245669229509578269221100994744473256787351241483959891288553974783764839719774684790809762157510197860264385226712895391879601548137770625264928437697650796149156019796684926392372950052258470674389294551484688754798147476706532854328398237877308269868712293294773563115044250854732416502786822402692671726911420926935537472604037790807974115958562682271680191592676874470669686839338806133490675720439337084692461317848625444552995460265114339631996222606045378234573497258267170978451138285005009025708589148894427633610557559223545061520852210415391749333821558668366003285730674975702349582233306726374981291647985470737134703702267897796946318163142867369326679919499743427457667429439781431214308289396063981266808383185208047564464182851809742032808632049795690406792997039084621598563168937976414472763184482698102028413377770616451166811685555752292841073371532664020026941634257730483612776504842910232472766139850348793102703536753949008204957893914394110593745097867013996331087412038374101947596881866456076376918814478618081065298611863121215985252819874463100515734487967742235519555938240713107684940415171843394919537118844336713243720108079607286588813029217869275750060034438007278803999331123120491915622468101539277125394851781206347205471085163945382584759889193455026913027666456501454215839664721806627845208956558134911129305670787462638214506974175280923312834046075225428836262745306955277954373334166416451496492153382751284743715139932554390420877384441416777658755029127902720728704376992569948539640951614810702011290214664468095642400691086654683329924869644517275862355340888909506098697100078896658863541078442923066848774101518595864015718786430501450610737319487741328536948532750399218762415381111741757420746672825591212194374763765264390881422666767400701852220902499295889598722071485591021718995194389197977866172462242576060438617149698646799902017558314787176388791321227517116488216513928519829879622233585538567845178883285884625579536363270931204103530490313110086469384600782871209087836699523361555246503696558003771392558927947597448610790910416146929150671597983376516542738005178540003323158957096637900302112812945817328122487723839834821763466145749474771070330291502236904086713768523372436297294127482384364019223125487213285378891617354940646918494733767446014294267988730215359968327907275482893167945293041221061577736922173502891793880691640720179713349132745205878390212108860564408752437054426679609766951225526624115103400134703863367476727257771484495988228648409483836990395449285138993519083647794576452945887251141570441883525440944008692707019396663171031492223379267407929270804600786114985343039500715668833483809632250225459154609045645487944747252007604718275024377300987445211471760296652129278272327906503100980486543479036464740627658444977382587500218140348493104079439711258719582642305100539843156111550673292423020108014709942991606248373028413338712260399584391584984251863162630194123393491774203960444019021741759340245834983602117107155615054937958533150967676899903068866600447207994654836905541607205921630515543973199300296297145875332935114783170678530600750555031249677936150916416850370277277526903433538312585373854858374766623932481481167041789502458346681749356093448949190582672439479740110173385313847655496635889586448559811034969817074243791683962017116795814761277884313041952754764891970957551514200987954916688151545363547426074818515378642643904620881847141938108650229035250808126037677989991802244160527657402926368207633550137755299018963740294210031104920487523589962918278101896636175910532329575595652148672630683296310035859100210109155080504660855911992750780456778979650073498539240170538576609569447245352724822259844203158869646992439316944037124411174535417513873418646598082375026731356274809419422208055666815230415081100190635353071695525706214801528400163173240434496600815383063325399462743650558592557612427766299572501876374690115456889681197320853325057697696942405694182188738359655310418784382508102149470632458427479929171074247811151555592057471501415808225080767020245532111847576851331021903837009759372257553892713850317699745037469261818985358530028767913657080300398529110877809521994443908209162591038721787496444971875348451848275136445299828267637942604443184409177566833959166453697323776665335501719769220955024376701385422712265394895067761928003272090632233393636933999027624099421400566608870521318135808498344466459840967880367004816291976292979177729951147833086442753646061531041783617792184094336666596125836125370291491648239818186164317197197692632918929040215132374985801616177605533966651697543865476522814227974926660732320254591237363143980319609668710404628854233868164351731679241461353514718583326920913532760185014174665194641087696474281438662747247751436186785836021101831393477186246000730379970846749769324439077569134779341165664787523904984154805713570805617921966073172768589978980645383975344765188926109708877795219677814131053029753308421966115290739018138000873847201406544409444461213511548441099381280427553164230343064374705467654383439262854467486960355523557675255287713399175654565905755462800028369509497531241630298754682169643564862689917047389450426729204210140248701529884373171404210503276894934562783135619845855104310072764206835704527876828468225439050377086643219289999100306244068979623948903384759831595810931554161631413655940736072252154835573821070637063047531972662048506406514158064784484538138881901654418625309017624565239605963451684704470317054999874529570012861837021682367523536394858086702767548605779856446103459499806540141168520606612827281767339993499108206157545805928527636108208545463255581470522376228392064142576753469503974626820509940382888322927678822545472470622210733370221158491950872257573891173465415927457756358005805870471928752418029803331596879240116289933107331264417633973360536195600858815205042538459495286893186762108497578468683553687054799167017488430895506776410056667052621594826216528287753223775009362850131382404647371251709278959043918314576774787671475683200172138451700253301119385185725671408116516234942742830996234966240424314614120922880726012629672310347092469941086792068829040531817843300401784640746517107315754326416302717531174810056391814397128809697890048482497297855705322670861819595396246351105463970989054012709580530786744023118914064749372288177530008783967008740851103932237674761612071919393637955227194572485834152142366727593290284527845201348414632878036021376601497628419131947379171018973496065350494881593522149514060618537696585299664442226120080406866737550634848200167730614596316184995105544492447016646375105928805276803003461321243928244936496123181870202692063661340405457195646301637331233145760057858747753922018950789931536365535276568054688262296495181759776056681253806049132298181888399612091330354467439359461141561589595942479164873186817203232566680032690957328185649649264679913033736365400215467971176676909495294166004269203224410501173322936546097578055097561210955817446341071473986211103783294569874504921094407269247314472307611206014384702423057526161045167083082076541638061043844983506251557389273759792869039831985075868058544564907258204603900458219138312682111167682422672864014776895417410909953997968991608471329487511670294196260002534580068504669087615001032033419216754427648949143841395154731133984727059992718898521178304656003117318413262270425059161085259953486492299697343186080717160070721442660165288017748729067784726347904234374754671880777429489145184529067640597271226144972502088176814473464660221868413770261774068046386852557450286680040808110228664838997436081757500670991960147153889038699237961250656600221183163536812013341315074637647914387742089764662274989482878955559900209584737518212093660221301193302129238851897549037532877611155308010131225878488008143473504353647619002343860051616661314145748451604519893455262612986909635175674015010913747963487167880861690214323435985253931404838944220494048652321302691743414190388250802134059146372043406970184495366051592868957307143379012188477453648822792118853236520990705694262512543389381809531451642242165652186355895246875500502488014033742181049976343755426768998982160931751641519536351419531768897585994578848050420645522457529442820916521596450982585928622599073444641893742227189381962666766768466514142587319733550304320100386213635584385708186816740958006918446783136782461379159026368092413349170589522935811823070093416613060365113021057714739354136742443317377961888659030662474658647829861307011653064959010726036610745312997355063001552530645490504139694290847466138921537681209446453892692364432520136724887830583276306900752008841384898145312873047883510264371369876920649787819882437431940941042166764542229841940411146472253343875426694631445054441061671380001662018127179528236948387991119971069926649237726485778249859365476310164293864280255116321538662309988159596875822550025791673430645337776706164142813625944326168512949009060064138506609345701742040349246815002895348518283897330024802713418726690855744830373356553089205758433498698984894736928571206964348669804192483805310834833385755158252171395531370960690607300573727890046168637433970057143843860858147404820028972367799754799727392560852683146166042179981508465178167637571912768611855936204530050577800789537334769066197498019211698511689848391109065517840821466668875866492179849733944793804229964314936661705389977083527775692429220519483321884186888623009847435398085114784734636957794704856311723518953950441784449313337009785041224527471142890226021712253457415032215366277904837862437693709700355700471666595756118726289586503098708141825955899781392477412796409562018681802936089431953816591983624684106575842475829062090806705755453393797894658736233667782055154218190163874083609670789749607894391214440300343838954835267096706664040158452309455971196798167388697120130680480738746761498347038985948898126705906755175187951137837273144029019867734849130194457729800784976834889387872958146666386524578690357832073905207693180317484436093524984991522795265985809676083679076500938322522115541458721508470483699801489285866362835939108374002968167498508051394242988481951105846571599555750453761191285116398918052079474514884504662496787357028211181896457311328598571339762606985327290764811393223753427494850006813487209525114839655920004932405917673462183264932850962968480402086225333182743667703436331731285763824588465657576577130967390326473895321615903200971683463555837749958315258597441150452703833621306925742276793076703888547535921654585982124510186798616078733195874231702074261580337731146701884682538893539427358189198787030885910135566119605604954316479407538231808212879775696684827681011205225498382743116142105819239312661719141913186132382109748147429173296508497642877160977249544750712275215016635203937462539479862107654361419188571314639438259751575659156893082340466741097229342502255576615715794425230653361415827019502153200051079998083386144722975270415449542421793194509500617278368545206984494003851660067542043114066232766216833221194953431091721253158887342519120474662168896409848952911310406625821133426881968952473341403089317971649947536861152639898866313590055555546507884338640538768040016544698251837283591657921803848258800373950407982777780090082252017155297209519304509345583020324869820121975078483030567154926453501214207065916132440551984199292378090011086935122355147241904408430283592655978304213038040496543708274241385860431042174601879851009956521328343368303931128425002813497314688194165412787082948522176409117532461045577766604701102695216185298957588998739035688388404343745232440827473217208439972790944205784665416983652086250396741857159034235703541195341767712657320772129516429085943436656187453833364393749806858065404249227105268862632101773867367974433445364825986247711446059049260863114419039723713215434515918967717608846186287438762741808927029730611959597038492583094607952978002665920454566429983037709813732095613905826449175120582329067081197205288416322881928910677586146796205262416241620734183001116778869914237037910529661638056564506878827104712293512680952872205948766795296823938129400604045579544633994398863448399171331531803428299211556113241660883161578079166656661457102607472643087845162977878592031586743787638287814989072608498675016199348160668522930089667391591363158715616821584169074132268220922353958522278909427291452450222169969912938868404919628614181880633169682809022531308506812854249222326424452477664726261131198958830443917971550118050979924505639443021800047924493544367820675652433267445119412352561919310392557973596191659517654762001096016191226653971096668444890988012352786975566465899150013591661101419983672017722475869071118203399131990113035092889020977882142166592706124680232506395503148786013413796490224952458034153448061928780041465721110733606090476835705681083870397317164201714594747228510505281811518823061673123494218927629494184231820529913123202411782628199295513497284491558465941045117594482061411402784024763689992618923507646493751658085805158251938553103621557581062906364397984541007141962456941655317393154256051299001149360902628753157645512386802273903447311916428177873485839442898985830285486491039920290266341028920231631803652430922695955179479779913684447751886686043340030452362530052591277375429795596962602181762988184134883430764237762850852246400342780153828422935379246554821075545310312047952335589418068461829324056133020417272764024080130280856963630328417077466938337073510251532157782335157832830241073380272982174544839700838950527865722334081245000973917103278543270358937781676300122549674974885464409875232643871801171675236513975091694004554188490315669209650537534349030261867839972872271365349224697846166351982237353762046215853460386446626459241302238002983161632120280662877449349643327314901869827365818318113434299996716938380240578909568347442638389899547117195210103267881078479656602562640482021913560873488637969226201922316262104472160015041096479774587790892849723841365366453753595754568037607765169675803845012998339459317124310329538557821486750729351855088578744042097055090429958487131766739126398092466926691497183672288631509073233020674931377659388915232480366737704505673850482771611273237574593148104706160632560922164024693589320178344541200508291593698096436815334237497834767676528330138858156144267508260247861325904551455240677922412297597749748482505102203271423342565667757086722310803756708062242832684234820857329574333610612161637879733685886329649867892051237147090495549432163710426580310243733417533520510136023815359877959829033133657430580484765215576108638679718906661701465627274341131092527367086812162793190179169733242808637786609884821706845597041633235070154430206150674367105631247234159582510898436206899289246132712582225221061210601393133847731943053646960533809997568513574479914324051624497816583771264190884766384731090782000198522344037456120249600129783931240014273362980483551743712993991215184400302371741614007453821569694362066841559471706323542982029225383457602701130426221553477714504581369389885482972220605602264313099668664707049533709677378755610716089545710523077791623267460212355889232988605273120895055004844860104172434892780898261665561700092207552199596254297892790664611687875273726256218553140215351832730610988973369610567766049963336152614786152401985725426705918667524277610144050606787948398030984638449174415331059243929587570948142519215937483213548070875720530266022909542355666333557998457838304303475757527577710540578361756391336853886356294834058552300996988620539015262440434328117677120106115319959891762198712554107833218903016658825715395620614889971558098185908062953975256426557311370912040506951608958747923589461379241713005056444472103822334378813197497821807449278242459060979282196312069512116423404235717197623384502904939667029351683552878424848763210310336545991750847881345426053284037820368235049982947096250737351480827101460571660702677705872043750526632185662079894913859912074660865836362000031322841593305776078547396828121482020077551999656486227813070297748462698461582031237450515909314196161468068160879682143718090940060079285058839022583850571773498015988218400778387722193732262506147300026150140120954382322266863747760822629934286154772017042494515153630358818273288950282162085853104000436209325222322891986645141042366767663129771652092347091870881206705834355810182718483568846584455085007655384917468689752283404360232601877975155669661213888562136530113312151521131628780027342706287788428176847167506303055805268930842587621382443277139372677449864292225219986499641214960620018668290095635360583942503409693567214421261296326180530793304559457159208365302524538921534279420482057114833625211890580350201049022140674161354370030218108041092520976294323688903766172798862622156443920004828462565433660329150894386786966380825033735077872799479345139907363142350447725123658842802309888347835111586149523327258564138892316770547655145115006796470268317614110044852944382578362381039349398177430031898378522983250768546837076287611633768620010480242055091313087663654386328869730902907513084067542676699833379995471410573300142409899425887312418279587187881725632542345114860694426864696128949226270861735616005862027154647332284089669985609924383495159805293272651599857547811223373788934689904557282850474725736181284221135834549503326535505086860092016291665184809540262108058575436800063144073172349464369821125517655220686148318865977967970913002884942050436387877302033719426092353536984283210440552480004336507728812574840873257201517316723010943796505931855660127177697280437597650042979675927931902345710849412920512883407866987413187720548916407411356013968535105743588771463390968114904276835013192795524774033094564336382122902909214189288826758109786714257631728874001718604290601591190204549961524928118705883012357994629335290412425955647575555842457817717347234647880107923439629738657092408950066724757472819797706418238713124181723467981394588787171656340001688933777531365282689147084610866768226322594097765043223056751451819873670175388413093463581491025013223981742177098536387891004577280202739319177887941424771154497183823017506084916579466642869007975799285456198885809571631245749389114680762868568359037586658245140784451219143372637246789798756677498809840286647011892421987096000184875384890490069630160951001849938748858130838587726854059266798245466569887468290253343700799307217524661722433851901013423124250613503635645098510288511901051488632933502366230186869985365338536085268677200707911990933560808116534655135917911393211015200907780228244836967941301904627855055578650898793525711170615424178300051417338893096156772031387419406908968894276613881825723129678206138783133163919452919691290643635481297690567334602458294739714084386217207667037761355413096151397921562457960255553165568138639171843587528329904611332050243246131058032273958335953100509010304903554932672399863489920688720310252894256599308809292788177653114074154390465753000939196205954271439251706040329236656977957243403185496652508018801948405582051981539612909445860839204681396804242500031275325397089708091945785852830352056411003043016988935065886632696216262996903478710154820995740125859075386200154185585851086976997425196950086162278943357955470822500188131413860978211114538752709865610090519720552380145493372615273521118936948182768403077734111132386894940050091266512730009350084828802268062181072099243414880359181712134114067596808365272741925912381275644302525084988507411817162515216401853160461137186591661857265983229021027798258409059643229097490170982580147123174377192188180667815622265058669515410468128409913257631692358948028133182413918597479577845640990581883768734326322634720906473400355629755117366556879148424526018993021947693028344471105062466291250470217342000609162008438945329630496980118596872950704253920242257404038815412268378524215132978798218723473308787289143813858896347312161573756772266798799102007262213550314548188500063963034349724994410959950303165342252957205565857459965323787777787023374220986992839653197619239768843814042676788592677631398989709576743215576083128477951593401008089838658255240015201957996955582552689292937933833523061798218352480922670646318758517048446436436337101340917538899972627522251831175310953609061806311917863644219592816963722833037850862499348680987001916745664383233609139226586325955975969429147744956427214409363726283409349165542420910691613981360167572992519349487102213225551817108274429156033962709416012161769706126906541380859244777139779766685367560275892650536561992442432386447641582710509689891476350791364748641715554969166659109523795484737485410464600231818455358123701082862237466602926953225074818278068267014901075289891032400544206350846136662719676673031861888414435150900132652735558343935335457310108154790792494942341335094809756280496504923013791266968203956036445614756605846644003797081420098863604731246887866174766080004479030526018936905333423017514805965631467049996373477076866513325373235101718131169996566576475562557261946039306705894471746629359211753257157348080667854592850563474020275055844933211706742706118334650060560472283840047916588154922964639025526056743007943866662438583049082863430209014098492707701701279806168626263274911420395188434000761145417209104163866659400408968408578724241480193259428716603410543402325300788360040062502315291627758495406374437387235497638152123733221714177093016893034586287930546424283194413418250816306106133787855231047978992206110587640119133245051939331062505817067388531986119302710803141331322252073401087751863100033372396637609153244140319943890115659848232421909136957270101740979029631365631992114572616091151598468348762980602511873715335285383929604360463241076082452051334975638395947809170672013561098590096045530020672313255735207645987433728785564744412818321794719898600073193757834830322058110094836722542382338560971065274704678696350551424680462694427294279553725281833854952343874539795670081497220797757158561840726134411181802274673675413039120951369428994335358821095693580881876362916444198889225785678902009523398835023947402730078983438743871379652662654721870307028020767092345483074510033550268554930837615402141209338150492949627155997037805999622923699996489117021963992369946431203810150603542948734947429842324902781970038924747806418588534092655401572094932660683517876408440582040025565117395117534178672446327082358491768357059485355762323112333812445768388725865732049168773579101558799324878502908800653511597867641070543827422721301520566888964158760487188072166882075231986909827785849845551865079339720457452330798176846439211066062333777239096198754365277343138447045862225849658827839304554849854030940632549384268622517513560410731228753062376222617978364892912275430832820264410473148304746641268398540389009643284693059893905010924783587986813189996128074133090057441370763070780176597660520594793752246134649245857176656218396107516389639207347058349171105250123515606966943633704947539545744105722655073720057323042678938895836777193674581169130480368833479144145192958978846262354683225024211247981762654321379063387281132785624077801751632179949047708059947220914821350395011146802140474456966564291851715815262727153522622974469322178496634351613034926481245055801619014249596549688876715493673874618038999950246975263919749032779975995047022737247494055274320249327504810895276799199819895278183928957856209203693416839466957657105619667644367722154479013009544506158191963957711405072852323260070981317099649082160978826784451597420758840629348504285592312921234082639744063755327888995968483644617113395017438477808253713912838210346792506710700027368624329210867397006595926997259004366977397725660507006493208176655844381948002492280338178160192766805348241959418833671225054695549075087773755323917269777493565330103622418262556025570411894657475025688466084813635041820764616483353045151288771570537632065073960471439537672711929096671382958657725419872565752611758133684719787726606200694469328457845723399100857404965905306362017175176784943985805319416673795970845944780958035543263725224680155558381193162503489755921073073396354754115926863841616875679169024070633951226706814395471844146060777090225101492574086262644997366220281121919924380196808827801401780240857719995670954347041429491397259784666989779689672071680494481498747488966057400079460765036379391633823847587544914299922202816514144199659280273911271684498095944452948069206194954741396814288079825923183735521477761663458835113518411170975511761120658464792081100163990236320235002976305341797469509030486942918144183090771619653735975449990450982798291178983632535560624773058273906932239727163100169602630081849452331480931066496866563666166188342497172588791421640136251159822141190568882134968102940939141622994210722555966997786769399200152719759252182039376565203807826793070163654375911034725134630618871875065882750463600611649141411650493253031671407297216378136789176963406747878355062255587937309352431556885636087364658777513100494493300515848275881955995359225661713538345135597458623878248365339056226236137985304341362881596132955946684993636481811122354819474943886668286023286367241592702728724810892608873641693096754202386611414966157698166063394300717351963243311657396878107906090363629012156526837582391167221441543612913800348702152614658891582852166504615467291565219282472729728751761811209502585624862885404628815180627726343196989984785938881941536612412874606537934892685274267313168269592498706043518270822653884380055835940939108230562918582902333989037303109187446364219309817864615783982758328555517270824392554602283220744584696506482081023762423204306237487837570520226064014270835245628256415081243827732622704765721395050144725990172815066982502685396180292417424942783708391839837710168156799304062536157558429837794497776595749194585470788441686760530057858962305108338402741892224886181603242454658983224254663578946068581201938581972554792511289176297106688981260959414254667458597232171064729935463928849797616936031497442919610861943719487851719720967388921766314441523429476320106041129953774067336475728974751608369081785338273129969094581839816248074414383313294441889364211270900492486438998536521200934520326969480039679152538387771402754673719782131700041840811075481220075446495849822586309192418260218835331697196790095323001359974027720636299599965988930600871493748880140894096452807320508996850760743309585566249274229023507878915813056312114460015186180492851036826996957208284639340309220505551806472779889988862552390167327743729487104169611185828715153315261151489687892749143114082745123876218750402888091304105937188444325010727161593402299162570836472455575093242376708548674784470227345144444451994557214271211437172431373036450470140830438815637649982445586640184189914556411131718069964911151335993711306793511408990023458323901524234313084855598318449937989320922490086264682264253833144981860674465151179212930991028354968662759773355050406701060202455968946040145810512795788938437928666409254691918486700662129195442714667349484381006703225984406573299349458782409886771745354244662720222441835053691745095685578344797964420491721583940086372546253218571061112148952899206450533562207190019813180660327622103047064748366385480955337791510969331098919028530718854182454253177186800891762538840183147869091952601154463116441893388668632893346344253070161701878073652248309182178443251126252208588707731769880481999585608525448760113998972472859682391967192105876817294250973296847026367970988145496267954904013391167379534287739491585122430533287723026622322269021754521545581443016033216085501339509766917549922930330874187057413086269881231672860945799768898811998516236665949728480287429708429648866582787581445253333201433275955212298624478124326677340393472980525895876769889825286214189008764208085093980947306869135634436000318404544525230861058399884267394306935251016799834548160505638251929778900355545199308221466335778271239153804732620261288762508168821601970841641947865495974144943397051768070995594277644978705637737797206516694007651563703941100506624622627230239616202584822311768092944635777501768956906402133361728052811234605491217309669334435853890956086597980437121049811920537406975520390941076177446429483682125014541997893566925840716109291295503283159389386462538219591385230123033914063648673696056818637306599265910625791671957613009333188233649382136914745931948081541897922351820595390862510503192757657407404844790908908096167923199953702926617902477874597663292656493689419891326123585002718066165134242517458222300371288109702692740937627356559708289081672961709827962325274622023447524335282186699773668714204739878842621776721332416072667696841963448362537170677284082048217322725760063138075944055358507241479115167838561659754927924498664555929284405625807789852052694631777755084319569920377701195766323797181297292609834788700090251413008804299723805293165618123054155647728880235721531201656048175234557260665830584119430801448793926300089968682493565506798261248062430831951465132049200653413204130125766902759299084565032734347016420797777659299292318928370984289279210194223032030556977155663980130967917569647120425842866302356753223763278894812505385445659413830662078010222671404389538651566928321258217769827791952997551002043638417183108526072325136096867605946713690865863452347319194060895180616903938467990031233417712313662151626358517396500321532066996641269872806819572781717166627712688228752916119770317859126093440839859374396769819967870638077289816894354601969125377096667906824856222892416628427591442563872679860074285385615625249955966930755153254065511106780120998797966895099299193458589123282566712304831531220368244300455306450731484123207204394027898696753556874512931459258533326349197836019457960297309850536937055661008779680890151907232713219054825522425390857532801994437056780954571178657774011566844736548109769490075450385845108632353165668027011233017963315193506276031350300095551834454687413088889704910790876500201395783128165273829861499485772476991464992799414588381150064957225083133676998542825184877261847498924142140835351971445786344549923858023963356451752278646369663697189149253745468345499829653048796747559579027649210978697821314795526737772349722683253796069831326628996121712512169276469169905392707079171755379920443346928659159530835906353192385162592305862144416991529675538831453138051209400294706330054100215003056155569379841856766852869529229674656776736605912534805268321446370438436202484889479696935416776858149084243372481167607681420750993021728829176162304068941830139853774511651507930416671248146312308161577402656287914846204113101818901013315730391946518112777229168211669654242283433551145679301247599071394304349993364344130294203833267663153215777512780750662544874517007291436560850540591349723470159092995772142341372508890846431645561655945411880521494251169729641349875074067609265600447391297579867648247269463174361412343443493043932469327706574153719876192405805308133436690784912478988667392953580152534195004492325949973172536258095661131609959120598038968229579780625777710883880149707847657719638445707917724372125159006357435124273767116856215219572390573474243122739295237578317386659856879837368897230673688769754785208146352625632181435843174074493193005710976735022478569433156834747225229283625098148292654565978382791784508333230603905829029396347970962350876151161321550553579537540769746719844095654104350463246167952098559038990675685433348600652069163592772523481409365712193015742588524120173768075133602782447801965349460317881795942694189062168734911598020648663644763375671364910662208635145285809717271322545057237158522815046763154663095358237550087150801914388362470631522168396442953715676823733773779997541497129633098904760397024798331479248449197804259611057659981837973956215944765443754339476327767429606669698005344653566019961598649462875879073404256238593302363163381964677897665219030516090709172609106780156447595886870590105216054652695711490023350398088860324752530716741312988949254286502263328199667247618516958418502748095235721032964513674656616280833579816639120217845281112331909594952063912899682262997990815430713993234210648427968448712404175235644704171661416368453126250606712441421370577990980896866743891425507869769231630109041968176828760869821782298574291150224827030345185534157349655942513974977519252117465413715279087269150504279264965706981523475647303595941129223039084011068559560799845526805773350920572881321528414547954345304548538478000092332457973362284611525265683312173929174814344156050783191684805505998072692037600364126221192536019768322974548071084231591131255864477727973654303648815583465106154528266316394786016539563237966494192992616020307500292672988670047129577958243595064746624457263290381647671795941245770470469505372407827482411361152276428919614252840776345813228034873372389044010526209669815460746766588322987124849806683374303870406528495569164120732098447344430554269221148841975208599826544114867060811041109469754972164112725323564894570017750476569491432955777345194017365853507947528822863031145173306853068696389180121645678233461899498306790790694351792566179091295308727089694858727795461486378756522651114623726115285127568342719371728144545378970008429368806447307507632236744316255158072570379833243761542788108743279689242254273119001978086541657143794533937844682911355081414333317329522563562725461948943195269142983224343856584737032032260396265115377209429927936351452227458108239652273585106311988872862536342117297585102910093537281500560505528174081650783834964716345814847143664568644000813199110699165511831451276559181938276610402465056381417982307607781481303174772733663966943996055838522844579021130272687129867222349481996204962211210216754486222949045847469740928055927370634313507672438560614105354689092657146414831803700681997594789933127007949116106093056086861253906255928302824568798070031916397553625042486027767515570339729541417588928381177925393690266188465238187004925938460285712570256092332217204880470886477417777567550085056628359221601709001664406936156556389965978508883071515851076210339990256895717491474916428308342445076138722534438871603015828302151084310051071742984949583396567518129899481340424462298210835497217681651473071228825337213675975897288519512614896676601487367795581634842534965751742140049615258412367621036923410644978070776963895723694177138300866581177766168950404184471653328202134562763859554437317578546321559450384457619980928875385875431561363330154722275375003162143439032616350594720097869671963518715123248348962964107887628755627187140286081666948133920004892167229364608905728595234594378220628571752536676691258456027184114477367266890863440660615521778147319693311136934801997511606789775472176484499574983615873080146917276574399010311171073167891539232976418278897549715888855842296789600301250051707821625156307728486623190830143846230155814817602429880532270238259452600227003672155073338657859168776688791458062651712647796717323817419364424296957355127986427665342187393909282735631047397733995878182460008594670221321276950781242905159825837071466865395276501184813839470938153432049556707923453174771130662318332438830207530734047116131880324983310288857945305495461721528751756013809104691635505763939021335577189549564955106050837880915332445565752104658582013250148860812536190557040669252781987285899458921156317652160916576881336166277511341477996419272616311720010591306036326922257767427999025660753777986226306671370141856958150578224102715412448646152305513948373353518742529422396726935383578810658307878153997382605034569849786572844722137692896226294290577121474001843211055858238561768754297060185306595598100744099831040406244108647765928734991322859044191528264501712500099530556644111887665535601831731543512291486545431500445544843153303995353024309845347183099777447464455710550950981903731165982919551044231727203812992238724346454017224745592469023268272216115751787331331913096361440971112085109900604647204720785384631598176872816906721015958557992420096517184334523214471393485217758737913370693231183481832416119585685631451935143230367806984819394361801788805624820279999092933287260257563849995996014149612389517031297855582487978227092886782843433410794701375427962438785411234438133447116152171066687719741707186136698514903877027823556063452294841873831351359427369414731211714621177935629309659777975733508236242243563667641418948134919521866903591205841901147014035564416805891097724886906687142306556820384469758028964115397872648427709201172336079359290595125477011537136534458488775225695484913679255928880632488492131597047985115160849889216939311989863967626490354874446844269435436130528907248967774396273661478422127323833015793338326554478777095143162560279849437536913166778220951879945754918564023416511513996989861459794260942246476512250214912340111826131619353518511905149839832749197764682774518007829456416900738761031435852932142876129175460012516136259808424272803472677979154123144322166328823909563804879855639360404701015728128159157648469614666152404779542060138190820157737142754925975349193170222424071587246427721967688325312058316688705315319786367805671841564731942704611033408183562166090283381189615622823290411741104627000983950245828476033089203309237437679618236017020766122770551482124914300684169541198168265766165548304855769776427600926439568913697577688637992885568518229179615736111559571316096213639529666475334799985685605904945808165839093427020687890265560139505864301611750848259248044579239486843477573166281094314676542902288447683033339216555126911321842082984501224586691357203036631557261247364585349090548016322685413101050274668307227199854806958256710853235616806588946164255865716473033859481730587443440143024624788015600342094824478622134927058432017297133387636531954757191789321493730681698211189072760034649689327794065882031667177502659842366648513952107065652729169888770429100284693512785260693453046362582281847333977126999939459722715073573357584313175747065554879403486249885063466058132869457926661279645796332175956628610891788539890788145315676945894009134248787693397210558946678838305730656459788700728861183907074343819118987497961403281840096020464772049526793184532182586423747082553601903788644934142521779493295784771230402886345814029903474276519796683286330666728129053657022791155345086051313871088868771457230597027949527380030272583339875989753463852659193168713439086353924727849692958196197343345803153051004238064500151372098078064776519017072151959176057184934399820443192044979059309209575336759410212832559885587215676835601184696114415239690970760254522262912829793891969488580385555994920308519414038228351203027146087243662472600522351435632875769642253663237092234800814356683360810098834853549795215622186368953939121157747181872850401595513298784905703474822348026593784716257664356415156322880839377983402762117405713327454083180727327353741718780002647267600843775592017327800261748357290693411783222159408498279234290014051820050877913793321428345975890910703889218159707414310963104645503482294274128443508236379187127710434487613149462024651239137761756270087945942274451799005015148704559238714157135647608984945514833176083781757222759813614827856728860084576664563166946960337854901062958399195165051108426726633884417779215737540847551739874802854701182778650199347720802563040946242013063881172983726659889471779237720112503173741234994201763961045767778973842352930296798854040194503974948258829111939496813429820792410722766542205096936803978564568423820273905673262009748634044841032280009486794714988268402425036289517813104115917581617538439843526720348913716303338955369319766158526010581806554509907992838840633875967255872867544921436046494196036580001750399063292513234996289873019888478033743777273709887085628688642710821336816829748287333783499648395250733740598196188185489632506362833722092538025429620227925510293915472095035489613492973610620359626023875336731772606675932372071651688321279370403053896892155921748550619120393979606638381532384464630026025277299685274972939731190124877562716487214420157797079141942791002127456251346825084909649161139111309416184376352742526117040533388788417361177303713201011806869574552272071780233496389038556746686567211245035458351425606696866797504795926478690015478921265528546543898381564993592893144235536929588415421770918851773115683910363219143012524284743150571815766622179856070252172748071946196369501868805503979908587729835711731245847233629063981794913510844194608527178839217991380052622295532774909320152419825570302891184081956800727096372506093472957418457288317786964572639199738394756967291755184390517400235732233923874306799372705384339016407886871723802084469679698951391716416125445140538251855785713430469536698838375682652546183360176794894436379647264604905241626476737380705673859386286757526357380493018048987905313276548503551087839638957994919495084204723911019472526161283303792681380687433561242094255727631249031725008164925760993133352740707955915786584512715890580279803568073293580592230955554184312849338680124881623957923251675780109746462280117708417398994245228607226824898225052117872032586519336495609359809723747618248700244547710371242008462305148392686792589900614221186901654886965865228866578348704098868706425970025914780550984288511523982121648187822190347385799037751813250242328249043679056031451010748119743741856813084506119215375542279695362294141120213501995893605255059919639731319432010350264021874908483371560324566549734580555823516566690174531067763016765990214386721839369158815458338097039085886700746534564031579324581938674481580682639806625919979106584862326133468761551115786237511801935091129468368123230881593319796233028492649658809480436463421577413355675584827942861215738014279530111435744527651692618844301999950412677046701183898668917511121174697173516963341750932762552746699585023430605007856894206305677600255330362440047389732811260949852090409701110494816029703015131978221635272845050186413961892048747494140282444279784875823352301139973338063375039997239726348075103126698226111093563828911762446516731630257468549982482244564359951962379897703283573600257235770890621902349358360763827040197818934263850770136630772011866785809570231555847875433671189849001918809493600598223893391658882353703029521331092976424170202981120566954535937489666574471194472589997323161774615590168808949150294696501262583939808908962688327417111217938333986147025268091639758062653441995549679023615426949122779114185123594869847706411782957634894756027787276214987492236609918572571110399163873699385463676738839600431617279226429612848216224892199493405735910254672738778146796738116189276417582212888871866557869973662237163437237464593911770397888715814387670386356072114803789393707379593436820737720564818044666792939291415837779179774853028344220499713165414138447299686614953313345734327607674028276267178547260839038079636732731262945453114376583044708885238109085061878510069500599057384909934367891135645222852967263845542310830522448932843967285227151673230900361182433465767222256862052711305209259108260365464293259231224097353116902884019185563558154882312542927715807688724028423203925320750267462079899989187985502992772175614526128643367988114161837304720207667555195720673670285438056246302201381737727630066319812639722068928014856766153610911468685171703229480413933099382987154316002331810166600590478166621290402695497527413367273497746982232016451586844276219446180594054897810978090204148562394603066893910156393495860109924779686655856302572707815239354543499231814088493589910033010545293977626487948805262837968987430434389417734903348603413665086233478397201986346965742006481398523610984301574220685448238467825108951725764994646615337663604016979088352252553449351255240635589955973446682613637267509289434679976505207418229783549062935097596866776967912432025394139927369700843091579592093482179252347368998943987530392616855428649247743183408179075515855063413518799146075024148433725871383006331095867634816465103290858858814379521495283922470733542396684628643040760644301703307280730338980605393569685628253325232645774768862150073445813745438105411658228114555291748272354704757134506841182761928819819143261412826257591520588763211373802362712996031013411333081374846812307927376686837067361897412189434524521293779164406838700993389907692786611268725891330593944449364937900802692844947436220596515039957405722141788638620751858186012807488971952572527220162762837460299152558228027524643232479217287155066966276280625685210029017173522014598614471136396502879268877555046206546536774765949854399071286008127663939472649471045528021006957425443933561401355567559439314326328030235328391917412519826683486348411231086027122812458912242225639241102082805081846244589659929179968308349778312905719786087889286768430636572270143813208631101134931542675204393023938141167444257726742886644049770208753053963848071476038682337828647044242341271599711300044341352039494076695719174656323053215360886361398322199956592376262774860179131352590410209826935479028331447954758279360614674482942288018754992806775555389377051678934264112252785977324812186175597498064728237680687553256681935118152181608016107925197294411925811585797709188512121244401510342525655140212776196234853150327403216276016262983702950294289043135407412591789463309433769775262773371626907438079739843508054384255955436083448375261533771376295943262305419678251845896371580750508962839595959672737040239526981739881031570896667253415965685878850291308346486272365602646795907663261792577051038766406371817343607213224514666237133191396952593266976093112051635898253365742355553426508001051353996798254993622818047832632574435526435925697941201165761596575646775864334913035832460336633128052463292653021303246907762784712009087977863373303880075408030193137636377419683754292136393115200513832883384953045950637575942506522530258768626439281988275155357977311316898615999464914964773003817108926975908738642532668742240424565680571987049270816781748436057871046102813650876324251210864675741478327144788762280054554180339080663896508425194327220769932361145162574653306810086547546583621349063654678793071183401201894775815884929507428533227337555092154637151164331898918099376416435463274091532406673463380721309396560474619488851264178074678236187621239584792344614604951495682596134779385527116831310072344048853606870465840119050278438332988652689854362416849962217104106055289395284718373530312044213847904550096642590305000131753388625696121092651008435220720643959468785826395822114527429811695090976597101264721628029016677164137271637564091496959176502470478161342027850140502433283501373955678131719744247921048525344525769553273604572111207166947353710620539217862373099448596051484326740277692153906767115544042605068217857505274682285979294404365623028732949826915278952148928589447163075094209312592903701636338852702740881183351021139202607847506860817037440238658450766552856666549130466898913329633770337853994250882981374191582555618224814636011227755000799082960673743229145976197512676407135743862631439233893629289228680095636060887890192668408873192244973852419701717286240781258598009185586400944226529391314534312022799316563910308838834728733184438165248791780382705931594427752366794439268331103336892307011465304599642176897627359963214453532186791780885341281268660262110295342469763759817762204573276805981675521858234801113653056989428651068033781508287781107431911388812197748664993051808802679058038518816765912953324284713259293443571862749609537505058169337607172020769002255206471149441143225447272490067689504253947978477885058380426839794705441216099922656658111045161171834560266326461021916816191618343430828816171387777562477452177974706979982851962168892505075508886886211444581753427904717277037336797621184844247048676188647927042772207995217238019624796336673777892213072363571982408780860512692905344851950266236049005499582649288461680024302095788754438207779023485819221246334845800486992283705179719824008254039723974989034474375446701101346969465881726629577225418202690766449797789098496892922318025260867303130392068837985795287519432002970790670625891189890978924134530637336601057685365658179030200012490466639466853616124017603826626791404456024414892943031204676976833508544402148277504185202535390582614431024325842981201796987381603133595735619318458888784134526170467648600383736514859665430556757475418281739801451633275156098370102197051974018472356313560547464951693734531353915545335550654644152809787417299737472478737370822124570181904230626001374763417520879577541010422563604798523073912363060570868136059890556782034321890577079500792958282543389259769249153471220071329165041205481270262488439745167769867915556785271970002696916284490739812745358806043197455818475106779265996840002721053150526242026692673412188548534838240479203403290208592937432163069455720450462383949092727363779678923291587558235261505406783965112065455641292654128394856436741926337260131140947956831227852657125571635989909195502544327893352958746572884244047457924856045224939669248805223049378423592704434831789470012442938602369142619433515620777861080363345134478345753434893893717820419130679223944245325824758669157112058550358579749912288883233420044384598917831568307586983793500341841562801373492892484609491317158292286257259128048023892689042863662107899013794322461326490294870236775862591865613577064596098771028000665872626379619112263113478102825305509925746878618264537611829328767206464668662348345275008752745872807820119849758976401158584912496009229441157576757999042556367869443877182836435614726645744016221703894163423818472730105348454906468775319877341615548710217076281535727840740318539829755209761221648533850554064841068527295299207303898774419870717670847225228677230128143296125083032863129776658630728496340435908096664632662289155934858375907636855565473750730637445053301417083632553404210143511221044750143171331077122585646483650113965106143946113606527906063826966225561257245013714766211303191213278570903164626424280350807999484554464170842385610456734392568608118949577456840611168525113007350478823854032892073742355735641210852312359147514707075517086327363072351794793977504675998471105884721674419328169476091424280171599955509504173897227115340747021033456403658568375590326908048263005917368296128866601297150288570879212470724267311743905591970024384991275710192152166215374786576389179187094267773763000673238370290898294560782290197068326221076308997234523849380014614123122583674099670865601686596269748573090360861938556725360438150637871953476511628712964871274189792510457148220489009640114253864208968868073004272213267923816439956151245712089916063010276608588631765206435719126313813743534202123460840205388765019826319878200878227712736988309988806266365613574832564973717704651786699443727783903165492478294958625856174088931456641028296450213256332927067980309214766969058013750941824608069828572674084895215321098905207587681278015342618561483100641960486918314300244173742419439293357802822319368586489502914464931100935984915993053353156389066032966969664803716469942713639393520014952614650611519620584645148320220536256649861021099369803845048270349024097663054636871579959565937428780472162875654539824387871415560968057564100907581848308950847782324506911441422415208621350016330007039547315548161877773236656630911609259852282878989236484208187730099236968945122458322693906534359692008972699549993318020709788164131264793847953789724948514941345960339723266579970502667130546793764019412498170203724293608776469527037042784520746777434707927741596115296624392558151660978399299802463984709349070392140814383784477811271171229120206048529281306442152693179792900575950877530959137981807999091268684377040932483371252371527825791175558543593503522111032206090965566173066731882027883063082781835509110047412817723879812328113048174889603528832367166642379631279845487061056486966684955075233354593025385065344386705657633759901259525747885665332054238229553074617004057336993244929525164733261850641787550338576279764801420284658186201749487492065066452681375099399414953915792377213324031787773263298779560123590375213949082029284695725462489881831684268767418708412008344647765428204641943592797870534425247688911077075332887449314186457202468891593224503569891437310199136372146367306924390366644641892844952147274024309219813650003380299014434534789401045981372002746121290405887033564070634305775061410938714471247696866335248898932129281300123132893169535997905833487157248136495986825167800713313909764157516062892252415462931053226423304951329676415654131340268351602893439468507128784843966398706865565553568766743846935627939027427968503761663120601604254230477726340270019782873178090092933485818374790549789621637123445441635843559256200408294266772880205494790573268715922423712378466982876281245079466078072431987929006103169740156984232416961176334692498976332430317220283524448029717976134527087799253148278439463109782432258332083303940192743246738013676425748483580411201872480105873074040744407342189235689339273572518701005140877300266221723589238626894029611554335260362987078597228357312889496927284373338995769011217555436192056368014159625483764095274705395361196390916575697688248429082921743600479921657010587663193750500775210874069813798487358566786981322074676559689243902841318930882876290920987816789225480382191059294441040959746786323000950403705976458323254010230473053313639274758473732019809215596330162279267746488985413444604850161804213472925520640811929495743211895288640786690790754537300816677610335065011801897946007851621830831788441849186093244136675389212045701332611389226900420908027295799340416733683423913997969945595689359805071591651308810791733072754769055138519421236833066980666002644237588283931611950645618538842819213559236863452847898413031060819136760822552393975908006881965181076765462709430527160676634998787773010654630402469085807570438156454165098160003943485557566505410885601462431236269629639692560960397980321295408018633883912333001852495741662956114379118535234349428449070186679965665845187033958424221787226262769981537409766972891040377230775120613444927029423943094039053103665090366749382781609639981833657855866222196620003908422970722692457315971225946044943177027081781470449135140880370397528116098761876802559416870811002905070004247699550306778775548424856300184158097136007936902462691266500435517580632735635697637131970399223870085687343924167370230935480381401766031720456884603820378789071822842126104646463112743925605644067090884720718975834443472238005518725834621612973391601799523879891842212159716760504608861037426009509567925647903190771555673268974887448663544461081639950513854821341468328956566143109348044945137730016121853745178524868424470360327510176025748905268385725917140798365957735032765708388887482702338620488453790034127778231488709074718999641736413203592920653210195049711517090450677249969536598743003042169945660896558822417952106792920817225902039654033546126277321562894672340608293574216027800908566414626788466935523058855431443395124227063212247353008245388275651009158077683148580444783651555860009729770671128608498107676910122873766197821498668887898784088984613119090739046501456013755213096396924329243151232529863591687324395224127066649221113164014922372692028751151306874998370491410812338713582939284704540883302477746698047025115513184031231368982232758984040140890357942752556878870418681749698184366365128199247001569655467113553904503577915616029716015747545464809764942136805455944350987086854797324014416132304511052524200080603404950055172020495813418394274676413349824941665527876658341668246976419424827943468619515298943344927554652939558385786298083713468468004084625971485794067977281141899394427353820911280377137091336619017068064079634120273009966018130842154040227491589176982245660369137462689394248702773100269032131705070340787293930407461486957095825192333970267113133722837700598135011929336224277819837130131984828420751426647030027458355087238582986770948176692589904144558822747559209874456944654120225798750169681886762416919508103441607733033170152731953802693628969456212743905723894920333045191868969775917666328810899955477993712477529836061492444042932910230593112770470470622844702906286388003833770921964338703444720101967490609953120541899065934356658413246023026441133432651086508367264158754048978008205002041051197187590998784195120529864461405192405952690212012364614076272810168337212422911382610398780750640580671938223751048451472607538608407159977544318750609114509864527485527464708621588316917353221332516937496448330911343488289419214607136302590406107678478676376878391927861542977796426852948961225840595844354656207341282435429292187758730746571043052266384506246914559875889731428408199030834741933728910306640151955951793692515872196465452180907403075774641730172136030124632491754312114536744030486624560337582391509854611619912342432950592665320716008095821492415340484582582731120516739862927811000352500391511661834331187234448307157779864166183682573040980091142238456244258689469007364824295958586886765870506251787097691630437896879353872810557353250712630432870035004819704020062075659417076850647237467796426420829930707026131524129775947301683705844763196900691155567896170590015854922188255448876088610739837782941743551828274691714807813084110166338781729667625954982848396972065596731435789684211355820534711148040375076726415258348219047944912126875303524044733165560926248346256888851496635121166087701385690631914241346894320559447675862178194258748938532320017547668220678422974736454287606048712115977972035590246862340896466965927008015165574535730844693395512035680385990837514470330379860649188678360293203045871002705616291616662828250501026727442043377617510730997322379059760591504209821679897201545155730600442922809886279479303083840686658923510353780077113053215507935946862134939116831317808024149324793864125554269883914755895393504323514766977067690700935021126356905935287414013540577165110027103087559809129741042940601165193229568018633612005451723353482821620862173958902024881015750020632700021882853848751759909217341094947314347453233644450504760521735436302987596838713072389342354684234417178078892077806785943085718363045600776420377362312428372817617738822492026621272509067328012001104911731703609190988666358633044200180028175864806193789019173260194251558142793007026522103005022919659903311818467709146441534714781334115832356418882747026258556205779549061968199483558430009667960353935769290223046496464939902196054613342828048612863008488550745827550140884694243583587688800552960978044314241358823016386497059294388767410563259107325301176215391807188887951196073472952263257302417047597117883319827148975911877749393037374005420532727447700157642023683453582041536481126766557459757755348424303885113953272835803760332611878960874827627567241996051131594489742674877731331686519379889766267614983077565558798872234746209900797166561149851189117716196130856045487323054134711984594590209122342444772045143365508664791429104960972749354426803913778672785121944589907120649115711831970907537147468107748024425185847626336666904834863615723659123177938741786794316577414078410169973081455478833314972682104284416848474923885892708890160457330640095134277924093968327882853930792279153903981867597723030493936293737037910904977370032101186159943858267001060925679011667321634985655782254007072717831979007189085086761365920287198189276397873783398475680442789074250047170955671680639221399296519017548754372428394279368188601698156764285578859472017040084524003202550147544654987042387256742331200851591177686720124844516068255847969221601549599435860389091506253725725906861383984761528973217628318668415035196798688709278030134120518917178495943454558236017392274858380345380228973617389240723840850570034359580754173594871166402073234171981260920541970813415079516600316246474035712580456540358402236740972309766738178789519276281558205383587461177347240444357950229500796259405463798441481651939071094513246551022363124357352031431418376915203955204706734590270899169230821880596334742131117753308579870573040556789684304563119457969688052910267497986939691195199786789110342967883419859673436409138172252081242437846004003631749746351075834319755717244348050307122018879174697739904722525227405075227029144315577981944428565578600287664369694738432065965255071293600823015990483144046889992488213654854709838117842480220156961316390263308855726099675755932245987309156351085462585415752948962086367840487104405445376028808573655493448946191422512696467400932234538263296807187154994590468345591791342258800126517786033579727814079608334832311561941388048337529012310295958811018980295758821405141422648099709775810779976026607086034090047269701118582683288616702281215336074858132272417542857160284397493663019255339397872960438207789247850796908267902376170158108405579357003417911937284366331705811858000135176287979066763113005260476731879521211443241404591004000810398075994942719237503399133012082384977252323179731864805632034741200120994046787375173697202669778766679113383064195090519399970789596021672463367042880490132814181337384640550130445719261513271697656153239768381455742516371320170396592264443806897490854627982428390856554566789371335141913748291588861617587770014474837850551177295101775850158296609251809366306419003530572733870590771025013559573022344678977377485606502607066355284427485318848643529206046172050500874765638258118261851951752876527272858881810439744331010656541005487404628037307129410184318546422234332262614006644813886155797250002981939080939064268782809762525458059020433821836659069025478430075815636267922030029825305166316047231780997105045678865107129499178898152906636784255218458573537536177196483297768773336360261747198279841543406121940721461454632033603948916276269275156189890286726830255048712072749640744767103458289756247105961651980141009575338961978694590647092026165209168953996974099786732077763571308444551626937928212434664412867529049093420087111609277215211975262273871273691706378160950968890940450054684789241372322408428490371180749183202320727135572096532531881027675880120831247001955895301685945647576819586117123301219504524719940039451868254946735614656360689676710758387557678454203650697728234839899934007629557961964799600228814214386458524408135914032151198410839346801833712474591122688463559830596430330729924494529061880029453406510612571952797852896582149746532094842802358975149140980270266947711386769563992877248176557607978743506436893085577972775116198928493186564660724685930034952882946176090950626147476179890210184312828344216045248337335335163384197440499505424238390023905560165654601734239678114307705493033032857268772653036863835244389130191216252238215465490669531288452467148842443432909275593585856036409767719147380145865572525266300860337494428380677796348982066333143832171563225411046496898874189722285179101559985437784119687279952253163211433443601519492474337301847940907735532268307740995061573269301279591211285949767571775445555280303666255731788250483003545973409708659928402827125250583051340183210604988929529150243114160278134071639942073146087715354942431783499210350113481778223487502628145749427918731286949170969742856843704389596049339447461091628885291662073499987438087580343997774901219872567705103115407983087218623551134390251258406413453428609445219455583263580762389468183729160906354331718979214025405211986789073169602408094343801969988159719783553434953913591274890484901427544781811099575294219203418288371403074126661504184238345763601127451621152832486317138265275288204546448112351268030085287315060148873109123558295717696756173713877186683500968075348929076109300283840122662961436247845579460427467831332762113031174350301917727571346736698483023389697368931607608289815355093422969466207969423503154220723413838662234271108542580329619262118093791073165731153767611395704888801325857559944200870832525815290923513169707158659646833084347868348604940354491984675112813128538184002137231760188540885095994103564569857253082623335777062722963379475042363587193382322664105532102109550232523667311741606107429684519614415006438650594712179073055216913259969955892824362390996389221328756975769688436512376608501262794084678085463905959044750505510501063827720885749587466596119746366346460922489236732024090379126265775607876611200371660841760464275579093681750950733230742951480571246125870243275317414212833782650720387077687707007681815209330995155141159995481079081109736538740361030508165641452227839171125849762580651887845378369388295785611693641234754590974319020644581339584956181873923842045678572030370807937537942380140573696176711186984595573906229626455380587054144488332585450091343090436997128528164964915207066075299843379414116748252654539430890843241655520057451845362686106759345392619027859427391777004683958183485045690819502728025721487364173761501108450874099613424114191178537829961443994372185600824430150671720608923083311018749862367902558698771986618960573602032030690696844552485536608173450734847323156492500379777965071960668082259844582586166941129948911625223288714600758051158428046672194069789058803407987846752841543589065461488713316474807965455701991959826181453221810575903650055227924154567258716791669393554945330791442859329751271392535701689020147552438521054366077850698201995394723659495207569683765697514658538623767310050814647277652001284692821220458707904727615660296677179756145515172818771348277831080390824778921148617787769609663056998048669546776220280440381507601192418323363488577237823613349397935251571095278894158570464526959213918879037062936134461326339066785567901790730944716855564084058860221401708238029340231957607220724769799238049002873895312035427490633642697033689198204730293726382615084080005645439313144818642224417730695029064095446976658076312276391329242271746034934613200183825279802464580482668528075578590531588968114773198759733002897727641461771913610534106888405913853113049907527205902328214660369329142868920537873450091946704882199596241557563391387154008952693647424109462059938325487604277555158292521162831591359796066105180258465436984179099360648675481254498400001707101193064023539666731781486888148631942092190409815498906494805499430135531757855469447645176604332913050057648967095439622962879304640835324419799088131215020598776177200748793873188680404507551032780325826701915031748258349323720938220031360506597500409142882273254065264086422181131800933678881658659255318714271734426169397354378338103617693949578735752811656196148872623257775538687545276246042760911789950654548425468625007690859942498588909798605216390614042073388341218522312077199587267435012548164650593598355938929555283103633609139417575445179304852301524616834451043642661812676428102062196218594357974002568569221846036436123025479808315818449496206680627617015234531453199105553484550573666001394461629080035411204094474953764878745971476002418516979909901493425353307376669683474212374730044809327829709564660889566901191641967053586685688321612847967301804418458245234493571919830404328152098244141651964081207947922957760199697893767626410983465789642907135455342122998484601945054137137011733662159388055971966467667986910703704877509177135665751025052849213510851729881086104455135587589951781350246864745421964463718171045980943706437465211132049024152556254855333560231526511651989880749918461304331216918310048927360688631357229368617859047078604977173235146861882750370479158939625871824674677111541989040539988885646424158666429150330001558337762542293063783392417047609787911017303952174801132652649304963063614693904432936937608012696652186654513373430210110535363650061349929743844550638982592034918969072420247573250182616388642103117642330447808536680265876268534536352528153889185594012852581779094753420023546866677709814846397264203754652868589216350191228218789044039657274219741591311928503011036892438561058712389384777795619099317738042820651410421014004506191257191332000862267302598914105266672630763926731229537071258036964731826687735935395214386562025960449674336064596073833480813644122513180455316817012853743508883463870066944045708872965967866096479813733351423853228870274015719771085930980468829838152483523366730036619529181880070944188678083270071267840400988489508795647300949363716920650218760868660007702577263943423705833159455010777174031534838826515474431215751403898691295298482494212111339749428300388063902786039036784408636691794425928956771198062962952559471669928708591667114132474542940662615337888505737556874511050470057176595099546208510495060249593102309297582734686648528790435954978336833799970590302061888908272482119945879217054385728893708618255401156753024612002324043470281809915121896282626172844129552764600453953714855251815532956648512932949027877486762891728533990726180552596733051402339925213685141866735151088637514047075397858499734910281444196769135912813101095417162897549900518717278084208157066087064257151143161323395322005829683733090074971269389670593367547077143303667099574653522396346874384072479113127075821755674470013886114698683456488355680752236854461742437573513831334161065917830402205412497804488475665047486578849126528831125724973566552203498336139423789603593189406494070422029864137633803546131050703077495789423479873410310585472856561302357812182986424411567587063484759917384425893459272265784363354752200380526031724830324472070231813019216914835447240483115446923467435867173873698480443126043004782981837400342326173590673668662065811279977728668520917360503094658796756773843716137698486891113656619449676348305156454402825752702352619051944245051802712617233772475974821988911996190600094841968172710782724313847355190928501005879804819316264345036148878365791332952840014023669203178946682486841030029912819784175998515010841065794761513869725838884019762132535701159650322902493335287802387949390903716405707803539019363528017688177785088469049070054195862526844240847372023687740711794231464543008542337462790020351458839245066829476409180818716129921818067942494718214012412680468595185093656178937358431061467802941291853961649122026309968726364212984379262522596367871461143735891052902862824490051599826985530700954501554222804430997770056154503762283846440391364253057885037399828248641817600659121924760219983701079595141274064873223498029714058745748997722605916194341694084917912060053754862840297573815097841840656991471545570141176606692721138640993203983810588470639444166148672011396229781515576153294003552933285443069005331742978705261574897470835940580775835819961948911049572962421756299017920229943022435138751518873816706142782662288675762931088148735587031421491346100579203436253505097684081629397018790153014204783030598795014453775871645238251897189684012389412514521467009068593037114602785061136457926755616774591176171942977672891486758964832583554758516572031155019193373551687411172839328901312603437966506280277996664159383117716671088620442229042009074353964907383621061575525855232577994663727676361534189251647512912010542973995851272983208885188767996263126591410353195294486844615562501840703524941640076347544164609073020591956006108661648653884559411902394311261461139157086338369222928021829856001354568077648225820080881269845460174258590885255377582562347623994642556021572487866986702637144671620557068154706473796820440408106517166856226398529105958751016100828441803731119956990586605260604129887213270112853040805530930790019329940686466843403599323087716936065351882077488937197073184041825134746193617177543241222837408121797464720276084970364800364720803006769118421468665262498713667711236058734428304366462164628869887280013888187490495486467715542681391800012373136771827396888556871107045874196872253816630955266699413008230288604721078277723957423438073405243239997119978644249112499923028102240539630324536419587231195748724613132315765420918058367503339834602141715842823578045513059833761606069085302811476937690534393578536989713077521732495838071406446478083097201331402589795144520013981453534884421041205169661208659442028778461940405006752358076078315108709815687150060409598160771421854394593611474358438512859633402242142123752814148950950350072598190758796926459152062311003611189594880581324161892843212678255960490560018826332139492434752231675954752838877330036399865934985584966967366539218362469754331759509846320689458943867302439202433223627946729765503242213183928555340619665465902377776677928713714583630872261734697732218999887373372679066551186221210877496373473084122331168996915205823236030721693043449403648775809626043230150635996583016233273459458510573369755776252088261895246902156314227523651171353184889975768232758914763134601647570127351384540306403856398906002099628706012758130213174032486548489952009993564583431650992219612289127923735346870665507565068608560891026078268296264178008383956739534736880628040534927465859896094204657411345537438401098371710462101758488014251866323580180579612214929921575302647254734963443144170261728798928333887790858212033088918598996773744447162126450180548747028586279904268366986847476605859128208975355124239783532626646494458095896396112989795108169388036015045428854297987309919805327596874677397910828357069812300491833127868540196158991388534922306155801377353485833179734398371777129133245526545107672593810750389458641752821043845018310528827674474943481863709620691487057659572123183105241445314656931353138312887321695022733929983249743109586758354450448441426729604462553648704032863146267375702443757173365773483285392488753141764549447338317348932745565406958141788195289149960096414512238109480311236459055586009915985891207550201941448764762032780564055916679607337430031145709231385718109096913102126867347553023256022193504905326119744706856135250288853156485249223808188707443915207444493667870737888960127684691191474812707413890467591765027993143471558901904479769814239507382826542298595203964054752269781166054086091004419474380414412263957314751925429641703747274510251314406031597595843943747223636348402736590089298874546567386032011890306880517521204968878413993011469022060675500361479706935657269774223230075087311609095652226399135302571602060009108206187239941854404563811292178002032523442419827677813561361476856487680651364303115461094161535408654703608673206709297153732782854724974498724071749452621391686346677230173782743172567069405071057231451248398063491119312111572832042800270213180004659367726693098791691101748635865069268975007539156310876959727381757185628663600777732123883436017034562812920932226591405508259642038791504066554613161594913460763256662551759365029674811481942875421333639777684428706790860014215345495445016557758752955039445570363008998152116330947496594426236305574885568157467397404554741122228651973612301428156489208982528329643324716945417800857609001490527466142436876808347593176735575018869206798942375141205852496356143460101356625243877595317723468308293230989437298128082512246400984852817916495876504334024977936260633075424612222252707542735212428062857374653625498880754632985613349599575808274116265475701134577870053208709758011181419361717764654356843422598251788049490344168820261647332445401750127753192667539619874744175099182873914356068497110366255228723789133800478181184928733671468053889100901721131575852958106563320195240768281501201074896740502827375124764554275284079171165995252947720538294888741030671606294016444446974260227628238400888851351366717406421761163128808459524153011608793130342521119713656230867777167552230062811483097773076138317065778516639653038844902579054672880146757206305720562722697528416784656598818217411653689828418240717344749366552228250723156345225164997637731358481391933474753117847141869662890504532701112639991711727014473335362332491973750975868848275564442300453794453491390256812587130974213592591061287841503184101212987918580923351862021465575610677359238521086408529645326540978674592287791434109650289666294617714411410488437270388619397974807976485681058644393228606617864993279557796965382290107897125609283128087659045762646398315660859176081377348780127110644571056523708780753039864098216341669896442393603991925516918028654256557672278315608259500418795627543131317296336315027165868514186006026803916147750403809273838611834598668093948758616404681198273904526192449581285209494492847075507567585432665563438898676999329581766960446461521054699062574897449562422263309947841218561016559927470929896183758838362602552634910769567465953637832653822142745013345941320462588670800258377146382033088083996298705612841224032883703454572508272557626255867441326636578317034404489815495330676696807747408592919091239955250287047773279183615675932432340651294556075350659628235489377518791968135550189924399004846429051444557528371434284418696394661130991021425606588108643512824985434002751769763638532921369279090767908866482127269315553344758761476063453845215893333703602594926942701694683340523041086365876373127989501099855282204391244073165164287762141638630469400037527555003353998211941725262431436759368701490159178881308716988675631155871429165672011833806694866508190637052122271498569661579753339866632981325567356372042488991919201384353415692882109032297079752471995378424948590665482655707642755563916630949863844367958444569064432279654686314203373003629511160096269712416542536055570065449048082597327893799813651866014186007867918571919128737153678092804824135923443846209228117797652116215506141278706924711623136368536796412942487456640542209947467234355162802464913408810038584202500735588304110466158109715802074900741414043533749869504050710862942704353322257082796773244738452687166350271795308818099302903965006807379860570311292048387748659529421670386280258061253876032792085719877412905035814114496724325232609536617239541589119554292847615643273644539390685399234374016957186075553772394300647748228095650008776815280517708951578447122933494039012830189565807532494146262387491655280066500781865406402383816410010869772026993142444869990682299094648902982953661579736815577173317796485082964199360374508462041698636706149737595248075588471550001499849237988071535067970060567567991245217544992713893729205247644216437654839260076078688452751387710857785988837888590177920929183493132991992703592483366138894528134799274767143270174570273650400559165574450089188744173472067656710030204032860215761122346104451166097930681913570215264117135097611568623270536472652929861229875407874633940242692842504850961209761676682716011795821335691835996867920507889215318895273826949630865161763320811911518281233586039354249566771052425578996104611178647754465585462091384430917749353331233968482223936239901480370557725761263934960504362071338376898993603267222073955071216376633796059144340833281410259118358525628965914853113544574292452702880353939099173662078786492487025226471246120062010261104327168786187373024391397837103920432833437858613449982213534677968645822163864780337872735587395216285199410417707740933410355022351567925943747730213304937254830453267854895685327821361673240449634532981951707514800057208842222984505284144497289247872204975795978864028595586682827352235115216787831539839097611972013356046912054918623063378551036641649134254329866664953248581695966876300699845531612476473099226335597145639993547985877232360722431706471098550778392476241991530458605288401349149804312634935185810443570607578244796346706300670776765330243146367066523800350249489879679839387105384364814512147649616394206346405305999217150449348319590610394026774616041828644763132454178482712497589482620486481668596877452207919694318405620070848744127576609300366602487463248778881444716564848751739434140176191151703946403109726207568279624354340253354603825470639836749392266885272513453560380866825936894481267903497364785422516561867618807963243801283809851066490284950958953967132398515557300474487903636204616294265325191279737855968729810759163477813915361756072414996897782417976740595662741344978915834961285858556576096279023841515582799690170087351981453613294870392277651647358940768491019397621258615661158769557310443422743664855016271456878295316002939732655922996342623325698933433062010739722240698642720864747761043199335023858616172722982790381844355542089159870473577349057644086098248401695240827122372066807899321165434587612801887113638831669181827819273855435762203957126328991343586333905268260294994645033521806319240956327242518784789235674348285044705765888029736357611960263596736025971584414217604783241013812843127845770547435883574583359877738713869406465012867320623309264648207712895694779745413555358245491025996638153203432985268434918300432453242931993126345609772086878847850606288064107266332177891721912149648292329892477936738308957281156246988581794978818171868543877221455351736080383145969481430339082097905948455103940455566095976116779616458205359174424640047846077057950154293818971582098335334823511837449874364859296957044364687298233863819190342568413187292789825959151709611948701666570289143642722965384621467979936579038047987366142591932640025102745701105297400778486063302284175337370489941796971712418604539649298455760016588265257461716426847736851879965790351599792597044741902884317003214044368719889347066327089732534032770532087176116191748975859966466761626069927632705068381875377740289125502621093758714584498397533172002039192361786600585680101560313206995321115748489565265029708718540537831612064197787398349222139688340779005805594752675905686323347566206131567797803340668936501525157431079146167313641611628780439018669364795128332086313792664760433573382902929050290047984046274131354769094404035204248053650782718683373958404261835152012327003786783124024511386742450165686172754684555274728310222224169824718078856934544223757971360511735411882615156354989068214638017164839923008526803983048995252848387720073092040248252788259968024739171779239444080585961246036628597121185879881897610328465045872051842062545190236179482771053513019596007135686656900365979161490361366295288292205976294142665262001357584669573070412881172314605122979273575387165348025793555737472250431671794616138129859003258914758557428871007405467823001675177623602065559164958193072194608458737601286746644164321562968819163069650722221783976881105929270179976085014976915439635245755636988748028401662115184260081185664853802220524129619883840130082659509315272704115410039036062657821415664318537511945555962378433081325607806124955558797000846061034820260377476225587415393643516838427082322745079576303122778726140799621540088579483483549287945198474752400686541519990904982063702635945098265337191470702128071165473283569550207685477285357526667832707629794413688485097680977607319772785467145385460545796562917868385591899079486585922726843262109868090227390566416235647460822178982900169218449882814652782159923677750382880800572166457305916921915495573510055639359235822817043245738831385475701467231016705204402737662006572160854593671333935220560710338800760988616968313571373276784535832109998600445419020273715857587051670539254135419862616321353769191141241878532643679143048718061815138988325858272301252858010855342868991391829425219939298336240429016917129722996434448168523315319701269775664453352208825365138722690720250764190877979235992930784797515591699083679807883229863348878423255042305755518596144684156872207177489516533454628099787904818798366854682961707460024011997641259721458432368771310798617176294547538327404950038609946744566826819804703324209933547839861034464133628697515485563874467497901102718158817019985244958185936397237777079473187485067558922316702761899388161153909183098438708955919839226248158400877438413261792662041147677474863691201783481129905120209748289441169359108931309455128367834183315053732141330647286637605775511079682981964324579314696266786239920187478251958100795306374743832223162041277655545703162153437785083700659839565699112995551030411585298113023723869327217439576036734954362647884748331277410866470246554306752366210639781107588709932398630304281816337819197144255560055600857719534629540540212910357961905619645121645860955256080177444258809194048521507514506859148677161512737393753688440930165454735672689999807596772067325019043771431069462236554120290355887563444237372830137627854983434245673189519569160264297037632644805522709315709057070238619073773738171397089681444141750837508147647302707379008751824968491404950102023054499555777546302408783811274167407041127279864180602354308542600981192456242969687462485789994675486708811147776974235222202590426502467501053282694646236948082632340609821949890132353393687690544379178538447832790214122222203602527720279285720212357801566563105088013717936230689264659513337047565831785257974443553083427330426252813188369837799217764490666393256710755213398124603311136696848552012743683425166042295335377463274572253996510723684769165900658578825024742470031954711241240512886467470263083939668102356666684354521673983931163671230314543764827924537467308601553572032893377168078765251343089322119771613348686806447704449505592038744149947319251042815794656407473665096744294009325935727410640528004557570661484528845717601065387301659812856161092435926057399368829249123914246775191158147663939790542789817367141278229215300921269663294098940134881424938734214122111191515453302174778291218196317169277904514390363490228356118653891082088879926965823146369283467260249831786004985314014043895364672665353789721323146552764388475240513469953313905259302709263554820233623111717056128307369178175427124315744139779706504742184808645664787600968674774717566713192370672730863027245669266245631098282076482095465653318960642567634092825077104147583654401267359477362381863463353174410172419035960404097792971301162265841286054800791883112499549286679605093938810436382484756686540487264427171400556387325935838211163046983618733519971972395364749144239965548804275484406149020935004657832430715990520595668200311344058629533374089654016175848193850870651863825400601803691302696149074472828094215713238998394874498665885384947045535850293369775805796567026481486863519460571825194802771501761238952555290668226068306660253813855103243135832481143806596721390877856111280820707869726090298799563949924586727673545313367538242348935885949184992359821912342903269438325892779576803819637111359838716756874492809976588171642875196965366023026584743606874525392336101240208135937629105336405216667933460726157252877344600738938218748447534956681274251623890645097914135734996568748189484559930598166816657912578861501224307079408233630040134154602152361540535209453331087522615464898592398195738813280321320136709562451661430548285564419811795779239878511631164980156202489084690035499558770848948431383929439989829790988783199096618019895908918926737884308540289143231515257359006046168278242304816995379828434146800245699282587464402072662310384213228769434259992760258586829215250774109547881274039237446077822911693609066449073054504315586395100877454666152486630572998634212788932877540307613675448630215974796509786592591362038394611457747483659833172285971641613985623545863588064206279927161078137337818230016190182483191496188726022062316747037257363339323522676230493357740657629479586809881453389631259361098761769164314452696253903246592897804314558735209890039054714075380315745761475766842658169047677457055247676939146381234095138457781494395877962099853601212806641600732209278745537104618694082545372218968819006946089074778505063302437235271676068705565504354167352220345038873409891606852155114231708056952457002556868077954931197472954073586639424573219342045981384775159604591662911705108028562043731022036099379421888283204904221101598636591072191010357540264300115716261230679912019854737550014660817076360640116924245006795760644610792335715602362468355761192558234871174300342339547552521011298031928725826054826227025556629875534490392838069020278304783235282658061840716344179007810736251958908822598204658268856698274039950883210966418372260711034964441225401413021585370942208244581163850609040179106936083304186772098466815640483046692424048627306169156722101057721366153425078130624741222986139608710685967587644985116290804845894636208456153453226702001476599276734482540697879912464682351000845651389830359043104220777315517166162416843847201604866725014314497057975474551937527537849071136711329918606868857111949187259701876253401297915343673011234139135782886361919603172265110359907796325718467618252890322158492097852335022777306930351626606381206369203216258435727798196783076068117765270692521148407925534845827265064429087341180799196416836597876454016470714565555967204355885086737514408745954096586108961379324765115296818423651986025164937923297212940672254247716282278448381204898369817208711820068618656396316399121880680427208444284574181205057483245849138170150748996862658824097651234336262662201867683783548412484081987161103641403873608077613112462706856436209574221125131777295299478446053592379961035537403867430820729743034657393039767911185583305801045310498255451704259825126778330078338329893429848953481436611297997627901443546202744781237032505187215244297854217928953482570398536061531184056768137135258201745289780679295573758260982785982987108909593896638294869179901782507359291154987905246051676640002723490477945064033288810994409105370988050468558213237987789397678798578839182490983414526931665319806701061885764655403044293065560341303522062455490831965285011000134135929315114304885818121308804851579668147624420234518460389643993770913872308709690691593108309309420838684357335799422251293255960451900298483398255398134006641604907175205335456742273430657607734663036146125031152552491777665899218825968037042933662243546319404894242409728549022028743003290131181480671155896915288092724663865087254503329425647143259852318557672814436649173608930597491420117628693322737520401686241912262944010718780809481357375938547033531305216960055504814887467709008526772497870230140140161313009607317863465260906319576854527916375939485141489409530972093545984759296491089497400640351739273494230837702044078733095327788784425933476810752225166953900862204585573752037877097147956159956827624466134365629398373422605124579270377709129959278055097349256585776890551187957402790999066321006596302529962870891203041949058977393294119810679136815561281764591554492174141980003230666717612374557146929812656080811900405345570412965920159164008117207930862423559312238214750435880946488978888631233273207819024519145882456058344331517195491624046401048601284255616172328673468264554860604558490143301601422803801904925001358739707760609745446408977707418830744986378237506423886162189907055607379781161717892308079930271180607797959410711112102502697258354060542307105286907189620054954066473935091762778414771918587532160173177794709713484538289619617772471779693566264358824942073249389589694083127609599150428389725234935760304715848883140290586229752485907295001494626848295682155537595349526181087167749500517701852697538690285359333769166465075745592053921852000474410649037957780639568822410062779410474565530586094115102933406080344722591415402253289176378636822015724772423381964658234945875754341455655794865940869858589305704041117626821830349145480885661920717606336166032895982545758639104063246883040533449476205195165910511955737553386775779653641413425899526283351650819392342383181554050151556213234411944335549040391703996892482197376269597475019808711975225865421213006843153041776241698695114637773701874540442149071138890400676396795988171374787290065865433508582493436697305995573718567819809421107287295889270333484184297902950811479724253832938901711901535567663993266891117869899433716980234163617346251714031471472619143396675778747193341202493550376799082599282559321398903991351039386419291353823231091167831829927214552207647741677080529186991799113802255135094957034362307917624018855530441976679925672229199817908581038568253678317507557452034262619956381601472861632033638161086373605258368477107928134906662204975967079492626318319258542642848112580344835575068126425521723105090566545421115113391584263669199919948705247580727407881667688475519815100206257377524625384325051013895524192264128951692502706153072874908972627293647220314924376298775496723981384265363568037904033910722119039757500037263440966209537053161314431795715170499092438599320406850186886052594363544786472338707982291578139019077804967348375856545948977992566448426810884857301454708348729966022881087255971095117050008777828957979673192321929841310978601438968233672113970733188254453697573687957082629317128535456908784350467849773237552065598265485520374144889872241921576580906309562887533083906132087142455463570847879699016893599878119136030715138873128401942668527378835722549788008940029006237560825972983087223052624368522523010657477378406667501522104790220449557694238304057234689246413764305109231045088594075502306473055789205895783884104635960785798527677169131525038005609162221425995806066808260675437864995505596845842231979233437782355608531081619373099736068582445719094441551203032105254150267469090601251001951771752665675869747384606409916564421911333831246686235527414084125666351874520122988847788074048306066620052020491723785763220106054706751659581931681391506242294221157420113553159159543430300354004662482847982839803369222435630725991243722984144706627496656744302056353307867056208968899782228764975221822335940959560028032374384432280899446953380926029544882846861580665183839576450501047190331768348478873991801017529210314631695589665375881622332583174466138098653092500193864657109447723714639444423824826017434815440642778571962354130790448982298075840807086160078541600899680489634430740488307587240297613395624085571510572297148453449466289391797995927054823266283588541979758423853244827915819399667746504104084688980667661518928571133751937003198274447404592665208297012733471141827964398933506786877158932004337400560771834643462240599128007712957295923764792918765084211665731055641627230721913190903619270443741430409839125499806036497454421156995263968113446708687323890120650770190510193265218635753864422891514786793507040690804072353170071813071997105419370791931806864608280279414208519352750093677485671439298896894687539794013236406348138318989823323338012110317865194936621796727843984358900269487646309651115998495822891950593660047113890712883842345186087803307637076528836848078314758307998312076869271784302127931779749863312571783733585515878635946102837679989407208425282854296573586251461455353054154382474472778564867760446574259858129598532126456347423953860480490524524592452193811728018449495362540519566433287740080341020951711637032632833317880875148522680884498608324899524441324736637044798759916783870583112466653361496819129425553796639223759921687860175379486765339636386227416645697637385838341419494341168711712658780447244394694492978676419407694752776307422088471203148268775340543302932604619789991293652431619188981689244755342196389892230517958598477433841833562173432260252011708012640853553774769877405942717311438431690054676967948300210284368916652898988404479954671967075280987392251032703800301614390377502716130594603547842432781442131834123535136191725211426532502460803919811174733900502463591284425168757449644849755738989867120516824349386819743399809008335861296725853731494208537660847007556824349441641219713438234994349991672188830500896820357918507608965696750808522347085716333665602390069350091430182880295423971542321954700792305599056917268414431742076497746553436260982614297855075604235171842903261812593499827871725874699657751900435711458092571906237691382113124968555418866948147911228136346509916092951408942271168264445119211803182544464040186979328056536923206821225529903211319722830847660073046249778095642121062504438771177236337638138052133131560855554418114164235527591060333198859872856750287153918111088753946285065163694039098124809500143322473012404962534646784147773821652486626136304007149011695326945770113656702190786446768504867621891654626674342485348549007700934877807250589642947332342302151907926451475004421991218989358579905226660511857586279938257225413300207621767604563706898365163359127223152221319858692834533167855488706327911602457477096292703573763181062065598348249486387494459152347902641478489350064350172457749486935320107669665477507035846583719403086929856000000919699544901644895957172409007650654776538218005983592912354706886638459853250346543814757771896917892918322612856535747448220248213716833364959404116746249458505517838781786036465846554547711939458820718422264579135830235824833942975292840829247840928470103009941121701579869426155519054149576223766663217066073866815922352761590654027692062885411280511750226011969715401594911848544135906874716525074739779880382804665222566543225573559161270341976741804456834329014421111195642635794171786969115930279835214570297351349719667969820201534111219225863682556465047263483398391545008190574233331465665881516652285276714273250001178404383248972754151041440739146778404320481017643523441655755075136102906841326285903285424264321890866133362415882816801936817315798987791760634576594258499047203816072766900097574117387904808149729183563710047679331365132104557868491284133579203412521945061527353041647669684236870628350799007324798740598688733868573936327229196548489629885527910604744295145478159320995119101380939504799236758195772996989361316795088579213495967605719736457892800682234654015849828890391185750482331001183945079141585895425264339012867346130497922886866475746243257616945649793915022690012407937898664742307403572208021460318458900633510160153395020320142659682026969392024494100190056888520741007818620892511584987972802261671905315698962979896454956336057871600239983239745336316704913545919523611442647219367850600004051163672034742733425173713232592514443544038913493532779625982809118414058501989033179018718394408600067372879633650424544486618117694048246277814537292178723231426187429532570168187371517178986415258223783648885718853462813882320636906750802034451825053336825554936496529572732991008411318226103015886855795772604074475359745101760857334589218284120900653414787318065236622415879005472618768676816357322639410831513728801470298265027098977332894415086071670193679575157283403383261964918032607813444136071384531910721556673464506958171886931985259638368016209078896456555690919668337029553955993146467913581163650336355554618136269826718416745755271828177596987630162052272073702017203829514331968130876934923877018546154198865957165709730336510944023340958617095506757580150790980396925431876036501702260341541430290595472700731094178725770510098836916341946255768474047189558643913665472385584848973462695095337063298370777447097151018622632795764634341284511617888982120800338380158848516498896755605042207917126029703347624861131932002570248361669077387513072111367717507264429850549728286086263491610434818915347432007155222031305110349285539581759075962738005613545283694349573468846786863823984168476525420391939088094745806379483501260298934161355515514693055101631967292069297032045468813620421208920255955552317951044147062059189219964832761085830214717485147410295398503611854176778209493707817122087909478285588949606530262367745374194206917582948542241423035093363203082222938077008132682253750198911281009908831321207990738288766257389448750990332511976695576858167752861901548613616296048641225468571425968365996000501889164979560141762073286043345227196179704224728852066990022780780655537290414244347582133378052177916196682017898337829941982053165068179080329669920005162277655252507804668437049071154427865958927240331878160109710307863807647776749673480096786801382083264833793556318154935088602729672528250629773968796691844016414393423307477996676832492462143368531802939648217401176438632114588027417469900971263536874830536963838662294629088053470531204244490285820811022753614392036419675722743698669544052632041256375639973457888831116424880320924642790558560354380122065833120271771262877501102749852405094871727815930257831813607744434473546319611753109082130221635292147854584499642750922895779926686724093703463564650255361192941153984768601325604885102557556952660066575543546694645317907516144940728734559589995591581786319428299910335456619656752548456201732086817356224736416511916477821252350311465852135760994316933864657372323708236411487588141143994491865605628340564036152242739553947484108193235987074419339460178190789772451701475915308994792110400771837055374938638019288442030460867500689292740974849895329084757342027075295156042882536619835078271331400033525393390793962468614395383105836743974613807731118125120065692332855248742769824805680307911554690922368913505531168828155135218791996002072488202394136946758989684782029572728539761408660577472091287094916160389783098226663273173066103633934878496694939047415024738986204046094729511039784968349738808332927239079590905774997965875200295414496561083808305004103495604088610951487977704270982871072461024303521187501159346893505902459916574669703764318537615438588786833079865259460531764431728046485475219251207032135440780807043778870435698151754081494746917512485674548869868741747943653023542049002175415457232876599334911527898709262641639082925115489470704934502307694591109691355859991303576898250416723403619572301169098941992095358430186822065719306116220228484326635269184122646847555223170160077915181893634077183432713779463383821300217135157125525187035852383887422298835730971211884229808046010422753828489672090540054626856165305445963568898692207484599935179321826116829308494994677875267582984126823497384132470422574255667993753220719232233536160927103244024810569828535164450973550651518032712170168522288053638924197840093768870705825594500996882816496648135215787299852170757298675468576104256019344599701471527723857920412464098366686190298783722678866494783600786988026058723035933696833301086269253144096291363480768255974886314281161150061018856591368509469599526556177658351530858455501836755891567291554204699272254378708146305027607846831797138528078063040866028100261668067950334323447087541585388653107565384341280974282963085866610119686081997034214960469407683402257137230154803298892019866740853077555095371818420450284812456673418950569614065538775191780437386080131417790735488658250233865240031990780050472566507421127377897184756953331983842395457021097910824667184828652265183794000082368954305216942433880620225032284703651774465638199947587662543413392888914477356872557426748067709961023613041466516345774287826284402133664518276091902893296105126652074448725581738581969883613007512554683806670041279766917002900906523983548240410717670896035905474236739523134651098278167512409212917891361891178016098661342407933499311040572377572987595511989322808761384951291135850364337013116419394558179451483573312445513911238411797820940168839724037358702308371085783613054817464061626236279772971302656110169862880368468733263633933904780708567085034602981694130554602950592001385523946470285345930780898663103837135126688352775966920998391027928244247288160144267433329856971698273799374563374984109379999689635841701782129525587488057279359855035571167569557611168670905897966642533783214120496414425087816581796779315432369281935912920340599095596156278547990208969123427280433462010861015781420977811716081213945386335550350065805126035096173548231580203686477236024702551584215027484779625041320388555628935931609465915728163128113470849169128953293826486392236655821141104079418424033148643013341360049490878475987717262530946461377442158581101618295485094408025234795032899985388560101966328440440081338721498066069292595833956287116620747347532653167457813751275799379295911240144249380523683518199991447690795529849973450504595072687973888629489175990871573667227850923985327658861725648006458613672735250103847875005925376882371574172032660265219266251647232589179860108372561314753865716568903846509412063111702414976342474998411846488971827362529387245284867200075764462746416187645535863519085175388243748884732090734433132600439493991984488120504814209234236275439254954954748233890990799768444246799611096923743217031116261665671369503466978197962172912237250283835332304639512082124118367866055614327220509224053544490976293666178619341418933497477575619194263449441563732553562345209942171422882163255544114607552464525246551437753232593741481606348908673519708620640794308464552351213563199401920157466704180444920756714494591991391020118527554370573406193600628142953557259191928434911619697848065052655051732668284418411947426936780357676176052222539761139075984983170077344697678706567820653090112948307013686424730527975065258200015332031700269456475919054637546090887557211112720601066879675262967751982630087324921321500890558015785959644789489509175690268411293112483265234914322579976061294417931560318457723329033249865259923618425799262791629863836176859253212526310197643567281316721282446591681067379252720933318898558521036487735204224983538893505850458721368144897284971959146906325253116124643068992206155255769520142550408440028972411834062757275731574682390105436984436852510164803160831160126275850957374782569426629757316042954541611797882389453417952884884630244742191128829744402377964817291319110708799673721995812083367767881229796471768374161937682984634380750977322791457952392499453505733300479129123117734226991690373528224698627876628667574968836005430697027809811005305744565577356764134837707548050763521111362337704808328974604827351653874427104317075468166969598672537611456168293440380674562187318050237717507580398080258025395454475422866661281052734690184423604223484241890006977675830376580351286244690311302811017592767022880241556878976929243570966982281889722381695848254442120773418314441037765367743393473220425213860593005205774735606112997926074252801906896288651820544497280413124365422162041324770106557988463456319637912659939611661810966805100459129283929841406994695810218524389986586603904149217526435712782672428007929958614474117574715516399454901098268523222568180531833770179263739252902737318683404029399282471340545130261008851230004536536486235056345942107205863147753202258215408878334731396480826919670607614046264657145127767464453348836832601627996112142648244221398239931573082792467932816521122368410490805741892891160101064725178889109395879380758557806599571704519463554602031013400227956261277478583323168957170886035689823723285872472075908695984667194701943687024812712506465135187254401791984598130861816348979419432189989541435396305092276254563774771491539104014617651371438351387433544239605134042509701324560694364048985993466794372900407373257010727127284512700228987956409474281481234801973049686326228668508235353933992554738679448161578108407024994044271299781657351766053188097810071470935837289578572156555021842650018836210422070327030344088881896874006784758190263924593513988676083896742478033231688585995782379911729393327617960178569193911720174042653780749668819750281017689581736084597275779856938302762262893585475755605251849480815741596467232923340264488000569793411617872298957551855686641977406930732905144026434806074884517901101055839665314882616241480724637495432792631848355434623411714082123531524847927424084402997414000559597807608730414112822871903175531563865284154860210898092646257954149103917426677689401833546591136465941382202352801941116021501829677962357445522114444311054869149055942427412556717350605327788873678165739074921912882650376592407048854577172658754818528018761245826318486547586379388624169076668871600406028589571221931727887528018107407897403995564700915890390259931622677287159432024919692831398831531825112291326341502558702492811853132714252961355848800702544247220378811483740154046781794581398099421463953079084707622851310384099797560898337524051102019886191830571937372372279992779104643729520267536073186307188774268683723592601471931148195819195783975881396705507417012950918550673481749763561729368986532832999037881825969483591045415827691148440898892833965612513761971979176113602871610730621550130495213892299646694974895217626366082061052651702942928758166724781761380576495692300902501299426870408847608474256575918814860784002116659178189425147076004449412772537571203605402313419603850042233511179826189623604430703835519752868130727396398086300903203677031398856268197255874749977763358363989592902488335786824725948600884407863980742319011913776877258630410494860189807291383623658779878698591112979613252300278635980353451870064516339160474556886884359377157532787234905549853722635163613639836454079267747431009139031101345286287564188550069066716938949727435048008281736720159497308120166654936268706099662007002494916024967277577487356905072602926555717290044031228030572264826252864288109688470720855693033304010285972442580842648387857533827103577322250163984280476285531901612084707650774695814064714935771819066887318024307322862840113243589467375120794717158318557139459993005183284012061372750227820291985835538125897822523647020453574360828437155656400978658832763173439146488416984765128073807206903730206586300279871946262012177608407879405916876726752529968263786652566753474882769224261038545100261641463658412963595226380899076438675453103498577033563801106240377323341541463647880018953998950842784896149059214640981098007621446426772342406235194940173554698377948897690393096500908572646521271773779498179427310501897684197622007720445694435837683128801288152716384604396462559798990858665472240180192366383610955496972978914335192016182931589740010795570285579580650932542367090429787213834242634965451959926811354163308611641136177726205294729543209641384589818657901087862120932393571330079418390742104459467279064243168540797960031612749689556568759732938547500717366045501259431659486770818147134213042662812577979605361925898368715132461675431191437445565815526610485797444059685013387518348269009277296210152794100355947163955306905086459896955422236880589484132565830596398403163147982560108365875061092412190925334252543883606084253626373670839832253885767530725164956571305902077878544133638507155350538941553710044464968432921545513263213753077422643599668072303625574979412331446601401011846750795185250765275560403256079998276560112357404167157535330491282886280588286097790332174269630581596287336850688186482091071614269888480474138249234192791942063400662446524464901710785233614787250056822112650337439867121664953287979288047602843339650425932118074220793154598397835915340921233227654333218219501675712706162585154936830705556569485705772740917658184804251885355514704423004420984312786552749340078037159812974247892976340750560726287482154398195230282140397529934779376603213619047281481023830567077095078160412832929767541222855462505587240147906714059002630934707789599488816954601521418992073021534084701229256442352935050072855570882488111011423484011131094851055320525054146761109194777359719218007914914569779739799215304171809701862203857243936806068784197684741225156357433574266397034097073182138865820458762616890636459611087389589446542048946823125768232277515777615957169373579663202456124370509106529650233021282877893237011686815361684579757357201939507179067271490849535207411369961229973956412304837125400585847221543987528906629595905429893513489549656003019053628644184398842957519295515728193684614854879503269942251552965550951233367193530423408161396572904344118192240297006158462898640986597067133561727933463149722258716159345446408916386375170146859540012332717628262554500026747938216624653494556343951732103824486007321089533962903275307218665718005895836554799246281994113293943879672708852788354225905639735434168537875746255263114723793052467255593728667997102059704289050077545916563606245266613487974298487681084445698466846006569596844611353436762369568113511431242383860800041738497726653143965620106054172418925783391412795470295465374533824477326435929699412301191886279661804902450903203587179692432509618041593047668442333502745541448805139302500494495926214672482334742799866209126483815405589971867995234270459776240453880953763525693726582583854097965385334355126114126883930440017211617361141913843112065570334491821140380163817633936968579137077047367089365742969429876907867074372754214641744073562843432461960363169301663808486738541706436567848969836316714677523887784594165424400593755748511317756019317647235426581206180549620801610062501295941513974704870148052386992926397816625567838180302939837294035077174554709381733887480579017083470926378259782588601230709133637503062357519544344050452959934810952387763899384818181018508830798778836568145867315239943063198893806868394252192528849462354874636904040469775397996429754691160858093009984761664970372233233610183529418083897963016895844735812123194004927753806831620840639672469063224875219805669797160182930101104165157162231994670818992792870493837978940284802869016906915787193778701563640863255962758074744355081037218870391397057026057157992354305003348076686952308413094217797153177500984080738113717898775937081846722088160385620262777438875040758440109514423053942375759983064562196531676022500078857350431121009406408270833241081444575628643061401498331731514027844626203440149332590152904584489611141161287616018808326119598836785169158079895955600113633185098705295974821454365427652132866211727648459931865776068989976715189401608469812517275670354425649120109810390431824832296602952975506240528708129405522108518522183560175681158619754225224874692392048714456531391588148244315278913811009877112072811798976191952853299222323812594596524600964460596935984632760711336421388428988068050983767285986339282472013317587342050642443779972468354250792955383188870477856704357007121132354552687464296816482634935073374861875935681296533523828256851664710111254285197686316544774374466175319599622309094550169123394222545786263188381882263685479861359484692503498559171909639008674933892980584589971341624199868881701490478538138995055449603772784518362256490130907007219398351830273982911592164348139380532362493422586131037493245671334719557620907111272682813779100981744716600438112500970103793232943908028134364432839024501244718693962487551182232905168394870571196284516822915912131030761713841979213270686740720591931572563246085493786561263137815858477433741625680421028295966592518955061941343881807457776183780206787741459379750577067458681201099153203958488159360136742931543229029591368630419265018405405210655546174741885779734775510288115979115846399520761554276387380925568263502522418562865808292936029703214860597122525776155667908683804877073273422122438381621793172429287399856775964786525914473871435855076704765480047382888674135950585453068543712375543107897142144083900417243362956311750590995767499101836643869619498605805617670263449300104545287008135830480765308432028958084409520827513966782351683791166992593855644736907626543970446958932828929300636613769499931061345412242628915998113850608425428267875005916045132453328838060295727911279502908210685146353420483402904694521558499804156544592695170177830860496284110276654542429707140172540507759254639992811157927816646387527707468398145439332108745173200083807478781907199846291017252139946823169682440244899759376059666925116198627193966798832819285794181396686382050109708137758409645876573984248711243616029005736775517786090694542877477113392048006097721631809104351818095656095090740091681083079026833292391517955905696923251545946529536856053188307191869672128412243180878660325181237638117007365875145071243110893776531871636332027966888978127623394311680618125351327539202961940765939790007955796384796226430127661151150666711933254856321124751368148318819061863830268163596128262576598769022548217853453723856046978691416625704329654716472296148570164187497913102482206529605308923177278757464559576956011375301786456644972002833091325823877364435925530305510458816376419370468351475856473573333446849444863735099353609034131729806144769502654412205751992231998025556732670311747500772240930352902596826804069280650775985427542835685083781426738520840120332471710050738334728385501115273875779296534454502379598884727506615302472865864212404380163578805891924448583364604131527670608886434322900800396641542272606106929020517057183293951610247221636920203365809906262714930853407172916239546477788389216668605153167318288629842669584553015685685399227694316514192518944237011633340733307485972436155840879767762961283136050634409481034663757852621335911847439492942712708736884223916575881305237580850261641067734468443726577620520594860775503871526515603989144903474765815669455512028193681705986167158071904272223101116891377995267808701480857585320506689557345756571062205557531207253553240140327528062550522365384006332264251488361193589007381626896340994461662487846670890121306643339967550307293588623819569613723720614085326166036649422902616624258056991794020735511527524580255210853588792952845040547095226001511238477003779773858476350897270627169041051323088316793144102308232267460011314116127791946204067675637657082568451050709097975199594232977065992813321654610580727982856871473786623140941227442652333333301803231073804473819596602907891526349659665681402503893917882349657747208350969984289137675048754616422171172456008168134986095933372416056720893760801235137403803666139031446793018897126732482953833930143058096136660676640905570267837291602735418654090196200450709850025139580533959123379961926695888796741522455273316790595138445155817887559880738661245842328163258909094324278270443938111006760383439903954478593688472182809654286410868498395173425774375771602529283688954455101053447287881456317826770544758326684447024293281589915690400889607455511011395398232006729214565637512324525835358023806160322683228350449191453042517839279809560788335439603882158299666245625550326616575785417916809179347651974707777369262371879490695286054251337069717248420876838905359711929012252787461985141497914242990306721743631265524406694402715698692206772394661606529748396137931642159068212240157839010514068020315876933919482824989881623706670203127522639240460047194627721364870760914514681357406138067953885455174356205958469548504129682813000583044454013570100107429748638371059370917461019050397534011633343837271323114345420072131157948760681457667596962528705189150276481772158705042554380227779797545106524155988429575980821223605680584203383724894515136439571442508986977655503019998452553378599372582236819939881619711189153313232329497957594074015741781611743137998166496556914675588494413018739827434541329947439451652455173062728527043511361631092803265760394979273739973812315595262227889367752936920954158850976045465093955722782682871763712559109184211368973521579271155521755430182844057318297339357411457218783042674956169054443045746434040017441292217490140183532651213481801792232600932105926969008923747048891668493645274385258616297581199252917613470743455679057665206075259241085689907504562724671777565801449040532279096744461877879899636678261245337353863947350640604425296642472603847876086462458927509403550116897418226007357546604877062881965432236920430854635013383717976450209625336243430193069410309946023139403838818462610866104553400383047832415491747526096963003721294272034811971458818973693558074382579517651821454314367383107287393639690339808796878620740450991676354758444709005013018208475364433727688668999240110957368015924943208487632647369057456592744444578267504832132883106281507536824966514271935904400207089248377889362860056534967409193182603343272380708442311128163273582381033758511127493714947459644965414418074015973979271329942745108863508582109076510442805553288458834903460274366741307759654174080970367348049844025502868743618672178335483232086541989996135140938529449763384514123743830367383622747212177627252499925408933517970569178793254920513662286391644060861220403586206994495380809075173996358053528953932939177869624627074654572215538151598012623547973951066737947935838855126527902765979115368981702895688553599091693158177801031328651250209260360996896624515397122979720785407115981086869659636220749147158161375667588787493718375949239082526651581734545337281520245535980928389731705456511581371617129016634290470613593103900320565685228642254396493327839326458803210308197693686596122352782011645064570299101121940024598524687048307336923472884303166647209834905663012074108417384134156996377548521753380856840335111825209127312882871753658857911488934328111007569870625921983641830403069117359892916271746287052133695460131351645307255124216396306975130288067557720983333355343832411520270139380426438942186166986734507754058110173078531002572918243180267413493701125252936778408214358115195992391327639289803912210311951326144345758919482028036137532176226856095029790552613766569775327776241250332214685987437962961809592520030551157542165504209264680158153790497250393197010808115257318053346814887346538946643644336557265187320409694722682624473945978702706597424896514714780978038038496813231478823149261841616374700709860511528484533009856600803409690553636070719434454419327681637114654249117407185449307609918007145927244865823931639184061283110132577981614240918762740891732308830017916172581995817591367925159451744474338065260303232275793180635097686648185106624894053729174248917090320765253477201670801002665354580490843654614455594914345210422250708117441529300985228548862521347708242109133247188613729878476008810841840815112682555187460095735723993598624886660513853721776085873624213123856070226421053650482798564071172246364150586962666229723953958587576205229259040160298732909183736327466586389039292630838977382094541959360495269578305123023487999331380692689820003779403000068062511941480830416245458853380696694554261962623456026913180487877160355183881732584655558971247882319594432348589901622712444186395652052185395420828551483789061685113080534237949693684096252278654616959437697208564653840298304044830024944593057279362171139369452239610485700219618281788346354291199899478744834684445301399119470520202024073581397168917719882678301484164253031871558715892460476407842066070965462024065680788005156327157993138647424035145974993487351427360841912461141004291721974108281162424880124317668703575919723102670027828087696535340082780391668885259929290694223978804928350968159989101299281557371679754404465315852981313201135805225252908512440572458312433842757977427299689898633859664966497414298714010590757377425109126041044977373830150973227163939003293981026879677122137681060894622338457865029695646358187013346230747674413037563769743133408223844903650505141799633031494205298616494803800515067438192429287927740859668985752187094072780500484899475921369109014829957308244072611125881903309623900708346318258023665147186148418418926264946841976409824779627717657726768098851264268181412496559628928934727965067911544852433207281284360419969512692830931852419309461346383081257817293088177492454971818457377358996667481337811229763292517854329749051139584217646216515084231391435659553659732898832266197697734909956706237970079023567612132669726534780947680233431270870230490520248242750049486478126892054589299278140469744547410534524738421472294305032376021333635500533239991865102769787441230181455189226224919871537672652634667262048065710996384497733364570499196243246161536776353220242723909688155134230012326045369577707645278044620487954035432040001696267407236949811268446209976636507375956236699155626523093682774381618522221356383011710261211229741447315705240732291830558221397282541286585388347467372431355769546489336749665830142867063654205793136586158220118170717248219715143914547106680443804025178090908554493554054131774352208171255237928030975651306804525029895365654537771800029013142532369732786041450936834191010073886240326281164786271018730197477387669359200730127252468757989994218283655925395436469114604725718156220947034369373656785468688072070740600936256473429917996934196008754939711287357263616735277987236580818925567354839075094030025889274718451875341622667766934327866612482794083897326892594095698199609122397855824857766554521306516212634766842099221125469888015062665402445265697871494044557774231515871840131155628848603825672590648358110964403707015365975343264776333276221438140672746981523456902638843099102718075084021541622004991699622843975801674133236726349926443371626193341959767684926724212966702870874065545269876132547545045872274793555251815049814846099611952101925833031274032452738285757586523764116985781406736766864108466506165996783617661221192379083978731399540688372418517998178544764190473594981651402788815068483494707675874716079896802535314724859617084918575838990720922930161942083704943025118432312461066832085395160505174210892077630759574809311242778716919671984870247565019155647171092859180161715650072779646286278393480482626135296889382223783492454737387192374487497500121982099659240149562950905641858785405588084034707310297133732113369317474652029446755960277114305370624945247556406280995671112740444465572317699274774573872072371719812089945432884006543026902676571653759479126553037529813167112179786138348677327705022231706211643177780334583845316766113583142822440442700397006538578641312771212844098596396372239216705524611431204800310836386235264399586999893922807836653943193923389990628033742697081284370288429566905704932924628074485093142468245494144969727973233191333176561667637735084212995276372550576471480835007206313894433371886504953648366389046987579289847282103249294312422497798151353920017338003896462545297509781078637856993483692937689088769435274178916709945662254629759017381971031506307952279792946320451787437333066833761633925945774134402493701155764818513752339477689939419063221345123762976590819823680832173882735748221486752050817369941749537502211500623125283153649296936213842879256327688694416645791100841556980955790605268119307306694434246162697351035601127095259322402359190659432343471173612135068773799326348603678040644860918599659920784092338796480503939454086594490543261529958736125789171964115142879148130279027390521107025946854296215287523310260378697938710908373737030710956985676794860603789352219066882251773627738052003164874601774122947805330548758632248073963459756976315040734387497374890789198988133639025523537130066923642389303074117997538623310887873971244151711523410619039745910653702784052865760782691540816148382991480319064587617984269693372693717998567450267365586516221735896369548759850013588177060728850688084810566668711381454446939335020641256801359908838105651477558233857937711091903738093266594209771437369110116103788070372193800750146199521324216433099616695174304286710554104099405438868687183802661407019985055652144755164601277579766036521986789939591424655387918421951062515368645284345072658618660913364730649803958135805026875824694012748620724310107388880046902517435587209567097872969663011805925540527187661565276241798670279398307172294466119191832794049819766340760667572713154939925242478298023934509258549405417760949738449156881076549403596997048669829287659518278930631573648853333465227262321635828670333216286091904602573144637406157354316166419304371535005991238747415940370357646787354085753169577200020573539879665714720501037531574685868082125147253281327433215300712938987416873462910350747997294582997872541401639646822723503687168655348221359249583786224229646997580014140005731061461407237193811092753780588271679590395529934728793337640673342728499983890197086944418888971070664957191899621501049605172984502201878497649333361467662184443861473931267678247138902052290764327155478639746429060590034468904134902118791490760261239298621636764268256228958139513708561564707541927807188159995476854429703071562765666805308297818901613732032662712366802613196751044969373616922958366625207345347093161440182308148777069830307248227514472956344159165331610611370358533405965859622172375607733403078133383905069024266205781845476245352344509705489660231955605589898959090515106359475913347845782556460793863016674897336509237526986206465958816881725777307323001440293349648655047445592188264874497618429011796336275704205331715224330652487309603796608562709096479605876822257071567447072261939801816538841218771631631714893219349321989153705332302884202523392936030576515613819422118339955960372572374825803554698471567696165647248065844776802505955476047128653431371447788360340511166871520228416344640031416558034965095214779486534247996044720254354837931077093941367462805980504856277529235334866787193715048125035472405637145088924354853358578247359374213723257794500877899900220376437538708570286190969430123118853386202572565208708098092185255204950793040934535610522674570883875737177109743962661371650970343310478511244474038793485664557046792464340380832358371934506914441348440973649788769257906545600749796584561933811435117884082858865158310968583685687354428572088047938223034248149113628495706829841443217652333857448594835759978055765730837940495688904491647084237325292724722560290204841195316464709325757752767859134673702775927118822949053314502746386829424203724079863374802095103557346287989351439899308138947581141413484128283581276012985865302945913031482295556487841316075087044461576460590239221918697718491721525328575589108840218084867583655772899403843105032806873931281613769374811949609293673636499322357215090977579979401411874778716284834676244157204796993133921726073603045480171773972049925857585132967137652901515065050044044105626753975022049789437798093533419534944902845470900428305303559567157157071817587408364639015207834931012462090199437293557532542113981411180652519913641104552739883751934975295257880560075886028280940309269550040099045199488742677662718689596346824948537140276389085676125684768674570690234996205602872089360062942032172504428798001730545692161929276187988318264163440095180303814895551435952363278180844153887284267754513018931230580699011582534735107961680962751729703360714106918547913729717638077225290547628659999447585630087235221152756223526343049633569016638098857280651853348725935924422047846334528924086658666447811883237181559009512820244639680835516010948241695994615776668627726134417947579414635932629348531812235759620100133625114971201677974003976823067356008841375914119474104358328605909812718343187169077145595332183415576080546821832600945275958735821480713093686453351943700137371236073152180703522418779780852322818043766359283860858602912370857580399141715360721184560105835963726286202006629769451491308054920923874491384155176597199232997802183078264979976818472285725877427856214655394394045822971788496742926461297860483772522275327503744645933773863555145886240670864959948073642109515801000113434572966568652241775067147806286078947188726344653827108791982016011184373453920816560514641884144381671741740492484670181575104825692022742897393281097643441101199042890539138269163875007731911803334764293853020430139706676690656289388617242889025267292425716962457040336669210286884131526040940312328361825289184599765011447660243164758958507185022278687808012836112317113027014265469804153824344730612243005459897458045988938357606851060704123814568517904617923720524037732679721524648037504536389053277729280081500389506841534416035372814814193218583374317026508730171916681701286139590173868780205312586908898335952481246355676315555339103763546740201111636638653145718519986663866306555687446069304154419571117035509563422419556826064361702705969314162396386422738638090773149721646127011508237454352031946644586424286087186063452165986842431648486735890561037391993893586356768815564822287058968801810150382080712660740512400671710385967547926699303828793371744761043816014062758988329291021545154801552794247622074974312355353300941120496678502630061282917982665000140607627398039471681106687359872541896199264718425031839415633789210800463239391326014835746944271095956143718235573321168349915563448232450556592420919970235460444188847976732457098116625631159175675843473286998285838366457024368551461584047104930635585811122776133455854948671315550548578006174836019042054088146796474644652353574442782280149953553712203244996540092136621644165794689321437947604950344422116514571968705425863615027302832245735654848840031730901760043892579159643204143533103422834941162709531507965623679225712784026229022598872645259200282426443628493271229372622899246980066931840808992382499247464485332513851190292937244273330214952424669072903667964172361354065832531899313472356474174211103223190521674131058364979717728783990114907345627242280380785365213190449904677642924050876728010260030962097273003301284593468330126255216576663578243103530682075109419093964116222748139589900526684245438025622918534314248115368616541886918591560060558214327726753367230052173016707153156432032932508307303456939073645422021626150679056219140468984916151918073187838974329351603040445617664579378148583988709631156674372343096607390010305612623503470057047493962804805373346960176164266498241202343413646404137853512064351719990234890050900731082197471627743512823514952193054178526464976602501789813418684118666869583959068016859446461118036207179305188022146682263701187630665698303018526561168618851942779828190479388702456285193141402847310905626608139442141442113891519148017550080128535018018622709036511528144382101323830406619213284595970982824381650925850441460735934055736670321349127132167479494424620427547733236081529918421179928093074322874195683468054210310429733099613981874734876405183098125350494937991404988927830272422004598090092740277522537267541904992572486731524646821250858080073613616392288355809130118056322985093911780643012851610120124915019086445847951736133044626735353619108108903615984301687270620895331057301783553912314823761440623817572257508959870651958974277604418438039389860099319822192002147143831711777042643568277099167377768728954565964840317657984875669972737266040692247352608121309486619764634889946225232170215269734125895704007509790714667147387168329380575246816349762995186573335173276195087528833566753435839150908148204816064136657518619075619183123127202283960209675109422240054784264608489719533446267964722878368054548770699953844652956125632607574037391985484608580508443161209484964011176298830132015298612832926316148347636341880719284641935157500814747757448908007229171483221477444677630779874393638434504837224902104541815249934274062307790918872443073748733348704078905868953332430511871248138961808192308967889828501968566386851591394836615204180033427300052062561616836301033243055417174066475148259351671698432167594083005596053972582175580090876371093739861116610734305220354660949564632401015479009931214538122166665456720285975223346719965190602164124269625082194650028929704987656544437290567933939353583734761089457824063515611306786449747317946951412401550408074576863783955608921274346215671499433313252078582105545619587101357190429252126982281238304185679031769873867199752558385990873866543951581079306177185770509778512045221364912338336530692295538979124440899563492668476735498323830364894556997010311874981882927395301278767346487783954691079429608555833469581379462282040494998806365292616109933200212211705276808781639889080361842740229161060582647226346804331198424896283900159262689553551146163497115475051653023326923394661184992058067998543063819839658893856268639177583873199761192959066258652194303549213114858124764037958483881570547876647431870836995352260868857521361842924766600118143582334313318655880055181265060219364630113223614524457323729486786554672956701470614880392208550937169011993584219422727826664432689864834981234523381052738982495168156729103952459263293073565075977462809998611911434461673234725112976270744194745862736492122655570781246787298623462203776686756301541714845735297862392151185499848964834051139715367517683020346813846340055211370606915655721215109701829820176832053374926382246900030805420761317269542895502394269774718768368931293751134200049085821428765431388962094681626072042527215004570575764342551850446737514732034738631370329293246388941286244346245443248447857478262501497473632804128440179848032255881587721429693688076897102820511553658292323282268507601902093275784552936011821065568194151025065463610895695655109791761721241813472246269875095830392046782414549927847183624636505424020348907925748511408515270930798960565555485024221943645652091746520879539579073027960888209970918977107167769301335769078809037584755354113598532531192383179453983136369347999410580969307197918731747301989080092092343087156607725225531353159602500170980036198163898470696878733684324931298154754167052549077537010157615101756619500303266771591146607449542502722621160788040892653389218720097826135880996151416808075534423383418065489279081418512439952437492912846427893925373437602643564956636714967422871510812755565214896331604448293042356032135736955762636851128922017166487463514061082203727652923014308390824491774872921786516231454431945715681004402008415366982408422333730535287445637690208901229921824337863237278291777925909166291348923380653063143457910380345825290129780435687547263773514115823112025799271327625629635769325822751225605879705036058029613116188589652971202674400680921670324668361291751234971000391193418150509011000376401957174780761893284634461202758727275538728120658962449614389407366398956367247458069525320028807589944798093044085005661164775118015841326988558281241832864796166249467632089181292010027743362759359296339301947150488089378257097957941380632883538020480679720800704523055221438557098097648557978090181147758844549975809722098176911823198635596851478041034166710441994176194123366521335750120169177662162851458049710613892637653840290351911073031381817236803366862314156390157222679146108804688521729048948202225596826985521809086492972943221746163596157891227979115297937884196839340504814340030769458529644713362765334255173393115248920976633850484614420874562893342580659468275248189570374053153061009214096688591517629375322630803365262684094084311333568697890780678579724201223965078308216806329589259737165428442736473316262537567498608302380507463424675122364363721367442893461906597664956914356386032869300153323860421035488638969455464754821734634645330108916596058685580863337553845804075634375742204480455942295426572011256686601637286784738952688665328706342984464119174764025268097148717748813577205393390125889324055730887260118476493731183803781945202310689694493775262835963873119061082308536825204384751305373973886949769394235428881373827457258581954670833254514196730789351224920438195869401524637212517845222110231371973397771754934659556978048245747673631411443032788660766776688027207919106607720598899562438904491967049229096319456307716716058730852762987535347107306228553608836417549745365251600470336780257907006239732810247138493787638968159081796543526798827910097922275253281290043747818098397106229306885234646103098822367217914134669113250017868872103227963305695280934508973526421083207374654389442702048799339207203058999803655502436112811107361975949335289188644991510576389122919654155648235423172778003307395830360379684281633532553420998283576880503523300117745169583360464939092182307476846182831146983095242473918746172142026798363913641637499815849410077349098564788467467676843304052661723081680801205731413253538738420066734852971428436760775253710733035965049050315822120485161319938910785260300590239394444341382266826252021508795704712071881241899208351048841218701285068513029500656966566990523851673975504301148201213601245851737829344491391696386562070208893795735960651024010747178626484606927234341156021960580163853954596820189190498223446756484554561194241749698324631699314737307006598104232834939182191713220473378721788612395053025815893832992900816633897623649356627862236207209157811548177469394488891604581499838824373712866089703024935884920106116137964279684435108057023820493029293868914255784908476317763960747763317556040831197953441806704157135218452775570438205035875393268725357886237806015840323294498403929798315499937700066713797463168005681361871689664519806620929490675181519590210256170181788527923899686318503827945693754819600454967240768811775634865047929658876356942805355261370613940277518060299873390137649937046068088645981908809894635763881731421916718491906746921000487876102183812679714020069472047141325135238059329467165173883968824915721703174058123179515830479944291129444247010266710284884848877261493572932346923139416280624654251901066204807205454006472899243704461679507198954016099229580175174464457263585158826699156681698845887327294433482414709862045409397086738685233664315513333591789326132718454071979996857725349684646864645658015581181047170401826188416263596983414393696465800397487403013471244855553918871447022105811275793745716676009073565814175556645092328494818078468264558191363025666304684266096020140238692018450349092910234685045677989000374179785443179744360215129736088448296117880553118018871492941879025513955260980181359960657660659175907725615760228914674197452479969761030250689998440996916314825545533343559682600282976818926387804875910777210293845399116218371443870809879694103334511127571246562738541140965001280482115587383437757965670886460689166201644947766474916434610366638752612130801709364339061311895818094385221279445226141270166364106467731214859221028590642370652815608763892080334706305964838837883211717844710591857908161580124734616496863132315375204815765108006759803705007080156825262534432580164058362770894664205908767585329062815654121706603904816371641822732779498206728577359428404960322740518357285215294964969977045318519966773458600736402535606356855330444110890991114055063217973325418485331728215684641661491948660504147250980420113939390962511423628406298704655137259118740790770596431396389710031460019017438492938491137323382825820556161931630631977338446028908134223010245097767021398703806857472758324377499012365386530769297915651633345838774898530119725027883198815233499248026191487545028124188680441511771393714549074411738140932334483871508775339050267377970365014461865320213000497186666523243532452314197513761668134916355401878575442596778701570508640455713631042779165777373477638401541666548881741842920367066582109328771840765486746153466263025737034779885427347190630707030810249547419531639545085254683913896591796533468394280920058153808512613060205810245421816484808048974133751735360722991140660533760583207173701251562793221008486938130080617137685686784074101874343315730611356630958205862327821416759451257977492473614206682603930989410763197115130771595678376089863829035119438227875375754002791733015632873338896191407260039956728710844424095325015079173488066203029444602757294123839790182778275521223698389298426389938805803972560707922882496120167852783044322648578151977968473180721690808107779222858002200805749146737353075574113641218623327307025736991458014457748382310801906032982010808309571977484157165296794447263431279933790057162647736609862528785563100816475237866471998896265946983750768518386058010117813314359370538368040034467058125123632407795219102516569838436085249261723326983631353889074364959944877192303661323414205566736183909542373301301869248070518196140178915976812219071981081992003319919277557235612389392331743529507024817638199626383405379307814319068519875616469517815770075745917782979482834887091677809588307827846559412633829783484289726286008069363303844477214392545172676959614775011577557965810027363450240415679461522636995071264481763953389755307770638492230859916421135472064902854943957669768441831494252148944524548326947890902939121710349162684401348883349051633002379078047196456974300210820988846167150359541461853195272318433902522651691814053221823276853638871494931055037950669646708151768281956104873423383416368098905398937932532018346034733222306766735541934085048062741459662703635210291718384501978906702830225352720197061044251459349937368496542046662056887752890606654349525205138175133214511826310705369185299278582160588486388967848842337727213188714312765525081813946906120913260205309108769264880929514451505005470525618217923554783657015753936051234752305229049990309344014970439234875621868020613202776138354318031199714718768887368075680810731780853696487600528309624257319532813163033680393435071650414521153239808709845904512770057304048883883669112719679116519218379008318244355875209167018624802088593613232386537357770764300727939434198032827286235258009252756284133005596378670046801869582844855259308094822749073229571192160540017146839552975111247832647670199105818825540300666338699983617821651337028866555832707518393497239774007470718050211528397644207906596486630944118315715184460843347562084818780261102140284713183342588806503315102256899555659052566823043180069964479760422057590181106462072772624619987277498798421251552152759830293755767500453151610360002277965465568393736982081141834081029040287752869838762966351719389224621291359670807484960491351147153577036643994715188048293600137982954407487388296753191880014758864570139091547376066303182560473132064348778143144907204825850251250696916944288004970093599367638923054899823125428507185942884388917773214437530124714002930263033443533314009655983109182031603037297841618535717086660081079252708938225780705661173427443257928738866054166513212542717889265914506881744925094626668371232589434112801055015753576951082227444520196423659837332715302161110063860495856080431578806410376631505194177398844891512998296807940959589631091756280705940584867628355239582037947986990664741367465415000868230573116988444987338985651152237029377758127727157658444807098119598621455791226333827200686324562546489704408362789543683066834021998597598902951361200119700299527887721852952380616191659313298820207495040108521651426355004938900872146953452958111231582572392239699190410186565963213831862843362758402101290907213689563712296893934921028137174261959349706453238980706251195606521959326307552603346298005603160956352043525617590072580076628443421847886771503313819330679980328932952219934654277171067581028350499956165781544720810160478446230068651959067182218167529322982994683376484559528044147980811393485449292846456324729044239764219733705294796352022564116355203554122782442460676837538292014719534072711800168118924519375988737964964548905264954727412202280239411782375697570285053739812565995304654006063939727381170477845958942349491076667493256664244885329954123121810680452680871683811511138783944704535351957205648425557078035861008243215183902270327092492734277230323412857570496557126714760262885800687030016787868174207660677664906011612397206304947492920559598330151228645523145973165508030683607955198491701892234514956248683025951423663617641914870723081119659180606939486257575373375005798934162181609577677055541905957015633287065972861049866291293912927041473446978938328019479402561772160832453981123504852740871202981783664433222068341361295847402716134626509206562083498624839155729971818218765791438611935588080004776945568731607850542397215129347528843528361694858093960121987770946125262769809850185980203811035386353066343426042904219055088713055032619161555660710005607859720076337475446518291065992518027102495722966873538415748446049634614017291394228214856798863202316334504607523322803829766805310153509247016404231693240020903283629403546667661617756958866998105608380355356713668730893416328459620357099234800614934409779514612319208265409799850592920241396060175246346061395454966940593168192249804493232493738091726224283573966395334727174129038118586792979921938358454023245191651703186803872658125715774807789773769063508945461569568115775876351567364676218751873043824831478141008363021562489753302484806291441934072278395402254557383756433499692824545765317802903859471395374970307867152578850183173683076307727344070133114572429005349678614610418433032063712317910561600878724013079951634411873033433079177817433971578964539531331377497050130266860729207047625617688344201241102565480981656870875447813701478630549949188684431190283865223991699587949784387938682516858913881961234666962431581543478140500928868968825540987887079719917298171685854113102608892410709886721393500442893351091101518311344225712357846200503355375556330258294814013641496911935929055880562770920466605983015080216451205868256878891171380337043256448458072151691638573838824789170589958826818313797380769923056208597918166588566190569976809407687522529581494192601533875350529714345527008088243007417210321060292578632149476300129039997482498051722367755640087870588764011865722179004911206942750527499800634787484958110029063772669311886725896032582644205986656221738718662633272818965050069690862767339572398461458093086210046822667142310193327681156356445445449933669875585577577267452397843310515913313587470615550157712575944523517484436568413779266221020835597853741665515678768520202377353573943139992526396336267909204327756250344051829743724697492710892515929989287376442454580058793594584915066231220146307915269756062417333725956068357951498293416777533496272536380353034624398301818803507703803596758437951916075940039464180935812467895717542444392949126920189383386734343818560931293126370259047012655697735573527902159455266266883009418417435710581555066459371149216807671245563565125149443044620795921828491008466728127205561264813952607872802170089665016982268680480926106662533111943955775171221187106685678008712466440253745770982371357463302101332486305970044341021866311848549473350584602082727122433650121400896824662864052346120483527274147366392732694899635945386030759153384548729482675277684041748295541092892293637797698245358573842488478702332718973537750668048599339334176617533067325310379188838845368414214470487290839064413032216421145228452742877097865983073070173843953683592069158268579575320097098413013016638403271342104505700248724072896970601682945593599966866111816887574323089769389011394618107257019778860401243955932774173274238704492664660724156477253414587888165079439954528178372734761385033080535901113712547673189746571822607740547536228714284213535889025638224905932296512972925849380592592628626025858887807089590240477783008131221487042861934776465921272115446457123634929271286891019687544172387777058371436322070680217085259975096421564846219670583397717062097790247598811891657526508957590672515376508064313674870404403966444913116128673680885017963011212278219709405169697705615773794932569314506894126487098495201751710644172611821089666579627173900472990806311507073239564136064731680487156270653532379031433253515747166542762631770463879024577072943323633358317534464129088213181729197010307646612839947845337861835222577212092168482894598840753276457187279950866402579307746456511645182180972604638300551118088878758107117256480485117494438049957529474202349064924123923784226395361426221755540722407129213334841017955303463369484850603155507330081363120463798256736019279826679044476779358944989711603536703672662129051537253902506478525290616521835016621927535549557617795994583696931525905418832388541123867501273609194896043155078847444250715242267462071769136003902402230247344895889579409151126335032572211334837262078886788017729032781435501347410795444613893021100280650380081687371718240749064768083396063688103288071030458608483240682353847171625693124407841838170761439229000177975781458221161029782250122215454579656321068596260966202952869799277345129981671375693541460361241870999770309023584136272721337229151169325505622967198754931390872897447041103102492343082476899073990084462099822100020959460844974601329194417592547957974510437688843439619967004776200498975176187756732041962311252245166891830264751618656408067894953926420470125703155437152504621912519618000666707386716622011451484950786256373475678467020326087846699284557472771080778589659933679191701362277774527102177259853035441366317466062858719600105266513637111988468759717071422205232212788851970989764530392513458463694357935856862499088630689719769606595314318587130497576504220703958639457100291779499077606447804011688601852117358144616528794269784621028425660291830336553871694123195896532253997785651287494179730590242300967488037623995401511568930908278844166593455610567696347917801520351063346704493740033202226955688617047040073753855491356527516229757971430012766147456610547229694591445363401957353540578668383301475212935648536497186948998642909570566255661843921980137678911590217130256209010310188201487523028633793254635533232643968733591731966513676368750993228427331831816858576637827124959935855824125081828790354630198713326325370479545668451866354461089084201861147574630712215082162131400087939973264405980651596791429233018951721428528095026965999070527879400832565529235965553829855798329056669780966349360250847204039228003621855972496303179141749658511298912299332867489223959305068774476739833536086621138747736309413977309516258510182280818636403694239483626569117795558414855156254229264046201541304558007934689972459633270406030191957546844281957997652987566758655223167513025383426388092867967289884330657742878266095568868041617863993758745571003417735612651272992274574846936788991765289225816507997132084635304400279835290228161298743250308892672851964753968808780777661038618881612127989522028998366605048253481572621506708790712687343496610753712237851317695775779965303892195170350144445415866625536032999159161659961158507199789645998884090154713560296259858770672114113064266474342966916954299450488522663712483704597449878120542191034493592361651490809820648794774264525371128918685669378672923365906599845180659773520405358295334353716970508261891176941382935815587745086347167284265219992524309346695225397521412931806579045708506188884498910152776326310315511687258447714305656751329244159322670331147812982750739390981413599752199759334380938269438706914712940746100047095341044001471357807970595094314544568561650770594617272692108355293338685428313677096571662484098025119907114297045773662733376192252746477404449962430268417631613864545484818063148202369161612635459062283619409098349005539750283853359813880152325040016685758574766955048045768687717637597631127213199140815078796340995212929671982649150893582397372435101446738471570950406012484414419963490634263465044948127482143400534295889967445110585858423204134930174503596718964343048994043028073214921875755680875337542828439686562742403697698624395828851652505587851448795065673252859157891515584656269545761493994474044108207076343261929013956810418785318006437140907625743665229228955727732199921081759329092133494750895422704326317961116033490038170018264171503837302866785251901630716840436684409584916020547881857271288687794600251279084368893271218641513317713983279051784365317937523123420387821821179796582074694217923586942551204836682762448825773573395602011620303124218235545870636253418009704844466757622845450138137385960535057507205050547257944477594554188452210847122287226414352381061160108434073374822220596624955719428659237231051644204135800450482197894956799270274656833645087315137759089051408460511242402968911569529677883543595696522605334649876143163773230265003197078846603883027375843266744157992763087954030924474107756508429698062711591450751538734479214465400234392877704235056196213687733032048707968062635073026282406509260395921948634439375592824804770370647015273065706444767702959189147743201649766612127371315940760524079098502870414647580213006439646629606447462693046907433988378910895514472789696228719907933066647369273437829918485756702248364577065043056529023331802898160018467475487106040147045382009344112330809859737462193934562967780226139385881905058149309956581244318765876661093419876650912884282622451593681461594235885024693136340795050466107340534856491350902625680263106118839358127745845723311318426089305049579109834510864907220220970420336618594951458407611754986423534932371840153813547965260876456256460452020837119527806213980543236601834648177726092742493312947931459371756991241228435775263425205458416628897146609017173295743413331156798191747627748266622588615447287327901493970103501032284288421667266991508798448834607205074378699398318379435877503020624314178849252962339956374916202302446273940857421820386470066013111691435652056071891477058010381554761983195285655008191200517469271463043223008455327798887272351286680272635502921733066404577447936005709101127144681853047386601143956817098664580713229716473500758500738049185385755836250351348224377204184260660271776377516543665815133385740615778280985158892291221993107712721532469249306524729279785642524800145001843534317676388109537569961936215043125832077687578595777935275800065125542685714316349323322483182551684826081718450928686554617047596484773167344347739711601781368228959884044644186308257059574691289746153209581083891291186664597493105521646006375620798498753628352405721209121499724693069197812829847243308963859914121338187620972966443262443609548835034984237539081480940236366461883403958288049800540023583844500126657422699660307539632738693814184928269586927553734544437037383560631817936721585061920357747755735657212360046306885875118841574408666556591641947550378401280178550061625821792575760571079553230615889216453853188413064977127591186351219699920091271567314065546128156660542613226430956750274449492133875351552567356761609056035168903091875308672095787678424098903702325049829011559118403442336372143231170720070543540539007844218523554402872931922802244775288439465372890399924149152880623556720233459776032535500305110726860729159463234727324726973326938562362343928408099530496412291843775021083970311827660312046763853798039643957186172782170708164764979285539552237093813429891766633555270473954466220655781497821839794206635707391360390732329715413192629381359036376920487297360298719241276351790587210399713468001225145027311392155571326669613497880354015063701692520230469401225990355949865482060061641191636164213123455558780299514912200807545138801009894951279286802702808040357415273364052139056570136014066045290528962099218791831190208748112740153200986164114259365363842160263847719202309954573624897914057033794199251958473756625253546111143831384896389765851907444876318064398466842627541730138560143510080748455267832651350655069017070870668025737802091896057250872924727994436111619167426721645728501235162201207056355207974399820846841932231164208089290088989259486005127088339857453215931354233247854663348871641428911169591551039840278538156329767073515998181713037769416905402785686860936464575400103702200748493579374382539817159330538020187262847572327499864644458263425648611545470820217359227722803989911303885380838037548815130276734360909166393836563299696545435125062493001949624837493175104939788741627470010660788836819750293839231360006067505822187368672093470953559929168048550050117935327523447118967634406523949659881668875292400103384887881835348658215801579255422568111628265781699939971507159247531487767917006801589875098949127184434221669447390491570063673209995980490454565934944495641966982313273199678239384962279089294500225440217443197312146912069154216162255748192349802075938105009581049314455743295355638361138364062073909919781457339674346257300521315174229702434251241466348760840338681070810726646300527324931750421160652405492604336647193822276829651715273390000458659794796212829414834593686135129512346433869022590757607863921430472809706681445507467263499901160038883053262611200983365359613434444885250333420762941002172330071902972093986378909604117548844229096953678189240918231461868631434339387559369560825370447530567043254867525222307607690177908692301356554085381018247814954011200359962672880032626294359040652567632255928271396462472079308200506694128254855505599583910539079397284779777692239157579990625242929510577637521902042251786744513440852514288310489122083776153649076118884489163240400233297111883816946142227740936253879238853547653452937177411564107592514663245870216215112313575399902833144013451848113663033103358281945479075712728514135394143278714196263081375992162892153764643449849645285206050063153477415608483784054222820339727019281480458817077323528056059651593416078611072571410555208022318836362951784836656008317672136347726307863286166113871164695935777883943153357419929765077095369675810416022734606551100795890209485552982651861889258076694259650316995271011090054487057231038066300233484954610256625233238806603751558167557850926295278000444616583927259678650398077661833984745176630842126027081568874278415109781027396300799642958135035594745039005310859942443789259312019015659092383305466689930793589681024642959683987277855470530765041997081877571165315975279407287744825312156619182048623170565868451355980777213319938466784443191708180778698908321534037847326218719608871967454601558007557418802127587924122464273531413076306117251769393233782648407194328284992535615981629747909214037972571713360831716593976279194083002415455668008346885260795708269592467461342783025564987234109893504237390656987637823836524230196070392081929655410861033077300194651344908269079290661678672200512936061408374639854157493812899118254191837372479589568422547221966816818678497283702168312723655562176324492057487871413147437457855003808511216492215289276473168209567072518934052164294750072135250803122835753645173249248349342043981096732719084812133559808168155661738874205609624675254832475274697561524680339674506834906701447690166846576424133182168477252729903378633549751172669072028119248574489915214643421527191658860065078043355728306549562703036933568232319695436215630314778502571153038271704848144408004264195798620660213783101625921666290269802829336206676833052887126143113623274240939175951798829613863207158203993221688998045338574784562378671566279419859935789593097894908798258853135466300972228199265250672957821260435726270522838007699136384584633135988773282407604549991721210763946848312015756307754319610016867725142500968651186350999012962408584979493829857554488429044593087569857599539222187749456064733819880560934362230590824708941632281715202755550907973343487428501672265868293784417624986038830300736330401550702705031266510256717243977006703313199252659490718683553027071696889469425000448013815856007135088275198907520908521947943070682027142125096274897883105863555649050617324290917540107281265219415562607321963545393307821655356571328892082485681642407087087502464150438432605602871866898328938358601858061939111857019484057659332368512701147840997523821910355721862837226325647606826726543984723572996555461195552226630484403594711087952325490734168865449124886564589791842679982400790888541235607117666654962431078067704164532074848874373367040538842479808846811538022945385156875519606858783805159461463551413090033371771322888650603296093866955864441788941613486997107616042470922654985825967288797631260352751888813378040307557362826600402038009547602757682125662121380870051025383264023285125476144255085571758798664311353149698431928258071590660148402276320472303358131219825860113809443392244662148895854377774982194760615045103632671665394846554887669927804623856911096205365055335263617010122897385206183043095881160691575716551608194529460558555107109534382109342346306805769845694352511407182112574937658450125642376412849903143779663988180835745241970075396128211625736090592411511216754122867774313706886178482716968764871842737387543032409173534403477168917142282114629870408571630421232286129835087780931402975711717264938676766957954596975736850729243221195256692963467824988447547821860271740214803385261972828939029124422881597782654572246290323341335245363417372187550542683414392835913384722891657272817400146100730883077126168647187791689412839796966673289687083252548461980427734703540782257898857395351435348327041435747025682614471505289066466709744008089679008355699290527688330164116309892064125265107763970577223888572631847514168329728235820160347743016582951423075260389723204733253769692270623498745375789074162563455309287905811035289345361509564277665188643662563004815256874833897179495664920040021510714636585090447663344586373278016872784477601927494862480308315665359764359806212240746901597625452453375688559855548988441620031600306695456452072935045225996894415964789530049760691359338015102544141206178243874207675670682718621463675285349678168948154943705912284267827239973863132003315528689472157832644322802841510834847474426697767884262331539849742401074680135273807249579172582301061250982525420731255660298532659328008424751643784380463264372421707147802577776152820948468137815284588992414956897317282567091912565289966663215426147876343317557800026054613289767251985608561142430397756270671761165309972903408751934090157208223119389560265156548216008496065701148680466969201144382623701895972067303350562832950231925106116864566572529181755993905723699099338185321889376086802523300417718067760472427044993059623902535029863991847762453692702257008206936967557004003765235250607528537621725798761393884325890151954983878266266944871982571019261030868415460328784821567006560705740324584540710203744870788589626586446209031830201263387311392849866984569678947527468943373362372019115374392901386657698335988636668614200274687222263469523645464161119237915394951465757947418253956088403584235028133440640780921835114384581831059349365942794763084047162914511483348299270518969920371462920656933787856029526601662853940623037322408559050596259947213343882500353846900272178948422139663396559282931478096990536908604130836014036555502184032450879483070205715592739825886373615589535834407997619552275885476548612692900881697750595234569544490521781964328385284902646476922517549453442141950494340269962411295332055210470058035568129699995302612029073840034772081446807025425235188129064109787113233274408062533639444122166193143295340770673061355412913048428068516951510729823396015227166885437060032455571780713764220933647847440933934292272907267233848552791331254502392949340388403329990026024991411966102805880574535566964811412438426560057310004672423780578091067845532865862599235470881127027846621986593797492549126823872849985825241019934224531954218123707811194511343925511693272511834902583058128609234468447488293908265876630827288575575369416879930190789043542062826659201468824935686316399191039068439720090578016737057152204809833109369629704297663838255957417122440110419772848081442030293139756133501563348800934408432689511403656873118340636168051170551472497901164103371766689766077836301522641441049130500689018859653703794684633343724528127515398424812671475830687485375029981549289577843491175943723626302993659594025778918381751392407060503921346670449831146250205588238729408221713986324437263295360220010159602448973239653917970548050809585981310149359122550059140357325139998542309001758397476524140104271282802003942782995728192745331123236026754699157170329784404933399884887075395682843238939216972418032797037510931497119146642220194873020296886658444358268278174078883037948822217507852206301526009695365893267855441798188357446738140860040284919772752933719200741447546515674116756282992101401267055109990076617986745442344128224237133130386592221441297888458815218745901904388297318989265125198648106232006351276883015598331852347122065112145443619220093932499552979538704435903306490047177942910236617505382948740583544389919982137748078378067136652005460939904120282482388326512901580590434856731762381614833463175607146269629030400427558932750523798429578340087375002968517213056905312590846945211321132811565799677444433028018681805621287155408858300613579169888748739468123888031532795255534158524121521951629833623686859692012850928629864150407351134485517328593000831394703394423282053427291022423888033888254302941333674315815629761974851047489636210690367891148625331852193443531610765269189335539214766950248049225255688465190936432886953581686888488077182144569884534987679811011527462077687863756352257573904763437502518900812394017213625852157673607076745402610341025021989403145743857033665266797426218568366474409200481523426387753596588639559792168662111372127928574752584388330000019507697850560810536722266558138340835204229910504806560701801863991946883989523201772480475287812821871989575106122541705943297504701787899333298710022932938187741664666016415515318824937109875599356525641827472644035860240583417988404181126596504732865660217458373961113258039651400874124531975417237508887979784472306017624820785426006473079068001806728759473559228032636162188962412939654246933273598755941903812396299408611880048747429265704467660629840086594983037058735139522530537337675982358379661830985572525974810345584874064202742017921450774891755235411289458158231616414767935313355548241631514063499795959417982387787819028524315292324570584111517873288466910175272114380914610763318849556644919177654023755042152876134652500337799568087075911711764706071281834630700091344206725912994821628988474395222429772473888383847891554704737637872341689233545521694562905246215850400800531265096125566424471142713654998512096321587413717831074660070493009791443458935394906859210172477304581921645802535190955848718226118048415193244893868438542527326303653400318216844538572356925014500548436144133027707484009058034586626087828139615333779011393017623286288597620144597567287199277551470211858270787588519180298415220864170970682767672701307142715025640150547261729433772766093828409105150747733209010864757355306518654463609372102141039277925779612121237225431417017336719553182356129334883521135795224155808959672169636563324488234388579636589654176804627958719282728190154937153213330696402398866863599056201829047463770960629715096168289114340473292216015821588334414374720931353560185707776241132402352387106450381166086322758599049337305448096260395865611390697000438387274552907160979223590484652752062257639661664134436779970295524107356099921915005080303250325088631837629745895463642642725449588215886616329278455395605496221724258560562075279981526419791254644812106234796540536639473539790483602169018798629545617504234189902215987279579039679603121933570626299909465502082917311928652105244908136810921220970101470299332784769004059016487403136792002484973823263499561729268852069053820967468867668388028961071621030234910351342271102090022263970876586299878952138846780853229365966882341427708341037482914184111960726653675100558048268074589444693868836939043686420948265389859036763840772383810321300285632080184062727923553837464001383721551248903937213298380528729397766276458972376640583402730573235857496713995742383102523439735266600350661126141766328209493463430926100582745421336690987323780436215398882002599137367015444794380456762778377682126123251119191622085182251594054095966846331672307958374958566355561398279163632188313690517967313504444992077878120903439258575230332658280163811002498467070979410003978733184698101571402334123224496602331432232389621595729700737509390270014725329785046492764335028029063313774992348168041851356083811192853581236087690116303735563221187780285719744093833673386998411558636058244514963885663760279268202941635980119553220417543540379427157281699669737663067920148329814020629702240742483086492171062015285039172459288662909545707516628158769726042002057675641911556976717861408405994805253086704891323786571505152101276866500473554401782004507497019651566297691719289904356574338283684999813514658323279852388975918180850038807050442037040713856400029909448072038142603196734305311481902573037325439869940179519649242621318391442986450849758071768697220641795517617598543074246352925687911145370388533833109018405171200614318715720791133064703409476904954853562885491456547845576755338324633702771930777401395421809562120573821969026171138525148648608314957773730685047866992876124492627540489281853077257520654063501568947715716388950594825394780348586709699058360563517379668138986064990324379953895836236620988617392694605161401366256246366118706749918435348952371881948834920116170613039961361304234784979411027568368038266754587424464741876980622804791524314293366182039140340139630189574344370391411115984880929812576210983160125706730738008494806738413924205246031473014582268439976161553293291083929141195605544974534998947513963710428572463438846537682935596919918813397598453941955524777233160924040449689683634360086286778075797205016640720475703020104482936129640185473178569359519450619360222331297205283990230481982933236130576175417961343894913311026462145028232138997177537062894001502264809243710808942758167009058970816834360995156167214476242775683293022650293704614518721427368346496947696714557248932153160430422194115046567339418461065688348101952996354861844690573987455026264332670398098276527979946249064893629121193490347610414324506874089734935668979362250480557154855359917572358725468452953829198606115218007065066035105975424978034449635325870061832737069433244093094012986867685658152243692818345669009750346295524489000588320889532398742600535724735168281767353464341343776414402977801380981813096068825786794593169062993485729392683104695450516524784330555113038364708549540277340756473690798918574430455952907464349848724929001470381610699650544190407957402850742865976236002455024600446279912239003189306404541675314260016695553118545500429381750036815931533503820718224657919355564148864318366923605731349996356200853027514362075251620532655985954125545119686283823754251117606964371225574253429830111323651743623050327538538518222596209771082833132244345998929886799231074508439729062035360543026679089989160105901053750656734864151667511752607914859603409607303032850435261461791651863629363798329357454998490187523678193653848848260277576237408800142814417908871774060177588694691396094961894039424355905489239836555245924511111080854562352203386212304277044282980782930473278445431329325437146028864509749084875956180758798312989434420424614698036963992237534807133692447977406362130104412688095802300577624307329954816862837228326132598926360375592532436539324698074247847243904787943814467977776969390419465859665207653198830680646021408696301971757422829492925814820016273309735538779153941760522915273395836491566313633241316943075242666353883809070088411165520115266768621081908831284283638959097849568505124522073460215903299044775059616674326261656006480984229618023875946841139282134244319952514142447242860286694891785573994756187343644789670236770532271000688408891970604578946661204004541209643933180603069871198995634774989411428585460375966577614352642720640524964587479945820092601052545995711908157608734201142794742056204211231981521850474978700191197262216449208400289939654220626799484797593055495126921866876778717556038916066767046566792693261972164399880121928509255571739047677482134737479368708607999947977845375705294863683888488464313831048624918061738353596227075691684738668470939858473716016125993678171854392541741563956678752752509757026032131912662982142649505458592716624053100662927334375125902213164845520321867421719812863370341089173885359344546978307061797096034143701225340696883356584418725966660147717070780098615355976046102553290266452990225243408318819854571000530939190040155561167396247431336130808476740354556505318574954268223715077875781917153804668381626501585040987449495892420614578464373320702093777575723482528624204590862077196492278671839202669156445827415651344049894768143568545116674604053591980942948352216800975963326327327891193756617293914468936400464488142840812660970247677959811206768922143464415060384734574705104729102568100573041035255344166156711205591289402432841378506547062971226578086822476797474694171192076691742703865003959877752679840483020141692776120884185493884208565028522066958006008989857969424812886947196103709634793133529404461300734015215438197768665040382243562331477533390014377859396837891869977675572066056275434329739195607156338375347902437112539048357060229173330338116058746065351723899284369489072651104019796676798643060711051824632434814282549559849132592574635128107719380948220888482608721657100571717668361344343094930716896469422207859877873085255659069555083705092648324623280949840734377948182749822226243351886976203380854689559479396687163653781656072679633277166955252435926148359479107678738328465661000216886792189995390226955103429034950725207330790183931848732851825125710624595470172887963843474873680838625300547182051763903453400184935227377254614311574765078028603324344655775907866349947868169261950361825671658271670665955282679297374482387556548576548059043303372076869993032875574071829205674757200987185013338408812791362742336923935104650046042532972342080638803164895638910635506192268029502766122001583617711161447614283965369271063275019244404601162291326796701009000855601576751006245242488180493234688502836287392904636555581592250480457928614429713703053772564685875603737087054176160631071840529409428927538337207526571622177137867003528566577216706362338527730902846375528773056456818025616114460486579448122819203313225160690993568356118402987289874902648801532715358455054971878914047849698017159543151914140304818583662219306506635058806496458019786335524366576863007724784969674171752600067896808372663588018569030268743219950403480122624714951921412320157733229926825298308294083971619505299508780574320632912799030984326968094306501942370980752864241079583429711840403371735988878387661948346909584482758723056967280940495567983619156660597309389279012655930596125601124152192951344049448062557338966303735911204265958805812629885263258889465826619387479353160947141458516649750473309387234026725619088467104090543870009347765174173766636938869148925346580710907843247012907873975736095132964719821331359775597709803781520099317369448709492241676675845062917892409723385754204527238149583304187701018444646349178835841567712244019508804596713705934136616280019038663292025690805266099162831161068553355912330038819622760949778287979595458748376762914979440593432910917252513280324979243567646917173148775802290614061906775906861057065815091046550226891505470053855079557490606518633482399570375746870778650432973680084721091349215660584172487105676700550361095665672611737801788617559898440542820818545440097291298927941033454925295826176331264668240003087369250352205846752301687772563940238189075494750175775211056489402704580350658363044469828944117927902204815889466566999341322338076657949542393142083375273679955371050532822836424894358508996663474863759344941114459163231178973192323129842260939397497665204370288814926014166629328624145376609898909332969620874398923561895632245454820960813764090523419102694282831099342341318883372659544830590220718096839526392802557699034055208619433374921608120708760819828130261577090662055172144007619786454053290576331062159962637040829277130695150108301850992196155520402872850000191526109042217506710610176525625946725890752890144910349648365671363358792096801390814406622011417290236519583617733613783499484571533705765707537001591891006871448095029664277152102854234072837118294475726410678085395267755079949376193527413225733524532243403988119123707197632884308386081217906671796431665365267364074298178974138729669353133115640180617426430366255182527973644404493165842708803445808275952805297262790678322191172057375922556661055192292090441009324396538506988888734793953217588871833632861870630112675900849626582805768526009416845074731759536522909467607070073033100148593577062982532787267913405653931093313134806118132591295456684550647284209981998943368036300035678046964344676792702461024393707243763355646918356708142814527157405146292185538918925052746519672789517729535067741215935529218469828955516630732868804061471495079672447739243424938505283373097895196555286700060217951986149089639406100027158917984806542991915835887022638400981987201416712828023026502291491215740837742482476392316606557374227510190554893102074870204965282949862452386225839407839875110832287952236770500633828610524631151646352244362101170837442565135583592695096584107485401696627394630030443961696846822604242897601878602174682735533080937966509411174981199786087477064585846231753645813174967296744410860942807528044188336067394825961261819432413922746486819394256467153014217172250951164562314709113887752631798014953096133780273805822542910387032638697756894827078827012778810553894274368501535989104411969802526323178313970892899803208756754000929281221960071328573376849976464594327182139164794200972248177545133226979443311489661550618473855678964846911583240011550402285240494844685725415322374299809652001139867190398913076855394705556991180854811731025869099749950067939076011839942219782935680607661489616327864972430809438780886923468003421300792345808328814565577823310881173390224975622133162931841568020417335401373022575612518365210958461801634740654218527316216874106536934348487366243626202632917126898431587442378237592965394887905183099723113234692048571523296123827270592309252922247188792542637355402846920190727197179278676256745409783963537605573493120783197676933721096548453131719569802874496062971302829404330775553279916471545044484822362544367548704044719124063078205516577653741749159140900543080695622444464788355429286150150599040349280700153975468955938642301566670088746675260234427812984453526640808392803987804821228921457640476909021022235292811381215388953535856452625753536506297163148336847120028499591114382923731416343271479808580899158768060570249780847006364262080576321020568638339667679138085882174303262751517564450500149028270969091560776369516998264443894230468214907370337272423673677451230435285555001093289677309826716379567567812836422523009871539592418790251514860046754390933843901577387373515399506138065892102512172785577606637225893969474601381607054400933404169855958876493897737713100237083601798609679820781372266990879780783929937381640980494446201200625860240234729459128236151386348132757068171793284698974255094454657132938376543180840046669671472473859436772956120209571631123517118639840811479622767949538158926964030379460042970942323563166950814334142248782797868201333692010660371412415555634266870326303198107543057820224472717539118825426740123082387292103137011399212707045685390988141229414925084708054873361085408063797365300245067251158567289705041187668928035024830996839676356228611680389891508007142393888317941156379544977020103857165501295502514758277341689465053265044420205597748785848047425572556595944920428904409846825287778663419164907491112091080200844693328876355954233685123824683024560863102975837490737455277159736324178138342993826965953887133708688551507295030528579305920381560918561923697170633061527911260065404138733556667863702038241697665761264057229546882327154528760288738122471565917938136579667564010791962749487823150805827770544258562922949604944574866072286605100091333435160959804742807580673960492345208826177698960484231062009097102329798485297579439695407896095601630607124308637905184491277272484406945469623169409971919321110734866419506291773720000255344856541074767060043475850794180658090790590470307725004559673591340705933670321312707732962445479643454739672361995226328229996811934092476000173126216101406950722463543403923991630987896914847263199175359606477662807798203395188622827937957217279966532550335298403491449142421759518088239301850202304054176749548051023078415097692649318678067900290025306220998691602437096744918821570961424641789357571892055134056304632466090499096728687134450841858879858759385012360793597871805662430929889225149570354157890417866227934470373867824723648416453962229871361829898465725134716551211669677917884527249546742175468507998559492722933297030353189183650335663954746948771387148551804494485319396142937839964691437499170171507563645885090639019412889410648056675702332387328400498123180001297231487491610426541402144963660137498591663719933788015447982991317689304228962000162944998736484543030458129304560710317220306120984121392757135241460865393084160849754996828709986571199171602451299762499191172412104227258408892794922941128555033840493014310963119625996098143582159292928905639080368519316107918374591704105234598279780835189224361927820086273961394372106589245405105306582414768136330489003393793757876902519741938794223526139479164729072196887523918160071101138974006218164937153041457431468443123073444606555682056777895402362662629432157522562815699671804344811490129596239023030230737584418661636570412415280527243019673367977568737182820499890165791666909515802519628784119698402247874889295788427427358073136848710241361866375322735074252927990686009075625876698410089428536782753660652923491014004973021531599658867415561380893929710343088099722640217582778074266721093093382227789710960676150333858264313275357709183069133306019003473007528375623124470011007047509597004308605945635409200113973753989992196984229058904748654196591399281664145214968450153551929670790722515861719235699200496919554592322008213866361573477165418976279055212911711437581749148360922123453261359036682429809181959806536687463999891269835876876111934259094932544673371378250511627782260728157549076594802991241033484291442832107038293298495995969202561324122408936638620217482477645695613833071226884146055553987350158370356114677733958802251217005507104485497284749925039887888045895687497932270768577950058523759085556494215991834435620593858694726780130557799309380938069373958301871942103887847939094755003166178682826561620779100563403846143481220633873647745390166342905856901820996667720362840706769585759034466941132427173746192685882846969351497016732887862115893182296672516378946402515957430449944250197557519839232528059767429357804944649284379001901885211618569029966006138531111571338725645985778155581515286282661467831451323640818695546403110424945757272017146499567755039334933351576984846040210792168479730913758462942184020102658904277476512034829854730161244426338030989233338193088736877605120012410645380132886781296724667114283795534107514470838340127975855624050908193169523258976808878074913097242814066574820191112899836248496587578199404280043385416553899501472117501306520275197476644071853925077926773817450805096031540361297455628760075500118103902092808731291475121086459763302507040093144926941712045064685925553140294082621412276922183275815196804789448638039973497962101768546120029319016835440633157018351523559510626029919403165121919906116571303689844571624198298019428506624755209740283521976889986344549746531319057104316694979456882947349597415667919731358561575845842174182259136676286326571236165867273737040835080905899613855737425454600845321077373015471309788225983792079280535074977825773371772795620209583972005756369741769078472771762580635641856858250796977826327378265846065845633256871432581358781711822637910351830369049018983467638942278473447330603125335904704442293862697659819343849897102472253963143197032037447044166603844409936754095652156501809409960981277809190099960637596909339155037667755441839945566205574398683357431828617850764737612366724279247757143570856961562205024639866210667609277793459507242243309935393936452660703531792737579274031680860281942372728316811144272464286428379236438175135116147595707281154731375103863963166438744193124968749440182746612416953495436481922318776329782137826245703693649345132273816911088136482467137452323415675903243559231490584262059014095076526166519062866730791277735378247622330167987155634906278009145447169193777878005623641718883289610863402506455849387510618849463191171940756151310446838262820874273214163805690185924990441057718212776190767240187003351163140396507975630303602675745823828965757997153186614060736589959012717302751651155139440291074230734600799187341156113914393080077850723612155135722700010841224528994360226986413923917300666689582033237151933763246188617635357789678834478724950774308157257772960986411911514635027077500944440988779429789017550780117683125367997649589807302604190764138719092841556368234297593380829148489743598484807758567351729387894734249932615260604276430631538496301024718370791239000382868350756027545448372502894351805955714599963819420105580433806185694793483275012547383608935572412857230385988824820747421115069484645322781864995650661616568194333425471721439745995042488708564988572994020284170034513762463052224743212480687105323952361352887788182271932784768893367609022356407217693477755827078698459102803447496109121755091260143809119987818584883237575600054718839449432547461483613573133707414996789961269530424190220113326449449031598373342274281332723148885496772549761475995309523340102515343517867923899432066392312809738755915450255244144560653221254276333305767837709009325322296706951410948380866741383509048547107973963911410155569356759892840335523538832733177584078994725304162560194015923000404537492186827433850996158833897822226557748937705261713933219757860258145866459281239698188369960298189557808301752550103492030407631083579754320171061121564151734569576808001752685042515143954691881514027141348948026285775899750346877285237482265175609988060727154200514015510512776835893872314934297403103992589709055236749516542669269638376818386656408734591966526828972073825088228668084206399671305305378265497645292232606584542224277098826730981632016780527759414104600975207730808742109675149941936849991702658774822000006921602245164887712731838649310551997595101393279856994599711698041802973702993967936282547485607228122471738322938639172083425532493941889018428529391470632028080396394145864848916010718654656459905516986248327929823634624239720283668843885939939542486305375395704325534000974242390739802915664248926921283620181995037825587086886037628899989940245561834443307125300593029463619195922026475516907539995594733389573222569003283037871483777740854393237147051673078922771748354798309300360682010040098131480712360588609770394194874293917935040776082946643674029195096840392899845277850917358935908753955022432592144534492476390929596543645665572640970439242498585206171555774325697041495685324108520171759650555995166138439634221948607124708068109668147466740596538589912171237278615572940980945632180352964553755939971729518176414695477267116199501925806949869075043881528044576516346853314997147916090832473165375565305543430038108920835191268117913029940962825454123636856463160693831983716477308861004816663527367668162851211580949102120295671166919669272486063661831706206666866139360695151912020166202199988137216130172359524651164054838081340209874940751439386762570592083421742133622421463079739723704019367102045751183495822732946087706837604409251935075103173038373758918489940326485071732668324182931304777094660847496777339059485127165927347210483337065640010705514671614432839336545376244824217838505891159497146453932260285892643150870024153402592383737136948931525650544260055899525220103528863859956666171909875906267102475105733051676974189776113183884701804556821760330163861308010236851988615388423771856067446677982887802076875319301918638044170293280277128395842239287817100018079972784876656652197410042636213992074964673960391775264784482555527703456100413132206782296946596363511423494794009198273112799861751024196793243451262176304777969863337126733839682265773978175949523967897893595723883569032060310736955319240000199166762396078534030872120731030138745215393659855133073403038776421188237975891751269604940113264970749735791117934771071218151220727675900882557434332949433283471056274988626762976001414819197235689591804172068480491007562383927614052924363401053354031855429773139251728988740391047967282690562206562891825225403346145384558659964358160037635146622558156226220669073196126176657267952921008046258831611823179363645440396910541270191212691688384169506924613568830751514160423242015791199521658553824294357033310348831273539713220478859381395712597589347940642141044851846755752033118566672967797528782926559447914536272547641514793279340783200769472652294775307978199372554724066926493960750059149331243080903148314859703941623772599069988145568555595053003549002832947331571561255344516443210492605060693884445199153525220276741461926935629555430671727845561900316673030096811401406355719423612845231648115916118528555439090811748649743255748187239447940810247264960458711927146903235771365560192951552201536709635882309203118174347654381681635397255099288727350156608903759108870239854736548061830053259957811799272234937646106546813417999758575155231469003565095621095014453136357053934700834700635696652592336130382131943696001818095142186821254673787407969068185438587113939222654351248704765974854368086231578299751174289680344128417294283502856885632573552963045292182660104037270178081928990132393721947990312131743099876803868935661462909763772640089514122651859707282566351047950210010949464672105179260853762052753590327623454789626615346028192073571205707783180896470285597523882172129071340798617284160598099828805257950461572706103906644646077341793607555486852541705370407678202888502517583188149711787419404148911496782549218860791825503298305040068475739093823263636562784104205024154169501920216786971392738160479775176949344659598631655363099882131640007672594076363723026671237989768510473481238398179182448411055875391370585692162713722920194029544000591998353230976832704424230005791139604847309412731786644460028176405848604271047158584351180853662729648383159141922417828551996646949760578005349092456851976078525132982263357303361591804370631760989420696886887299633712700619965656278513064044605507943369014934618250559406421460321858098521189433123429990337896250755877206252924941637539983795013478026593800627105625375504631601398768090543024699244452447494850416210003858387838955598984564209286751215629711028907335308463220608018939784768747271929744287579534431788405460456458613062853610431761931276410216298768513542004469860261815515254722435012614546635922998517234735889808467222424279008462930441533311793264357331763709606819269088298271131302498166045870839744038595249618188038572929048417423989778388709074390857279593309753280806479761561449477014312641214633266401552546032384954969873037155375971880367476769289947807518678055409196954572320126679425706084956662137114127410477602347632257226227570394426817422606016311499178369504826596231668543544702672578652974234077791959710472661745896504317962406554531664828367219120755323130029987641180804020982333166605208440756474482586184540615371934290026882977328705039872063205159064873046944160504964927718921934289656539712655327636656404748761151284560982812025070657960975941013483997391183058148142704055324173424040518901202404675611141743017268217588620128618479744574190128765783902746677439703551975457274991495384992507847590611466702323920917964274887708089441593955758144194116852269581049652820994990423877447631909576031259956982044148083670112357338448762124418500230129341446542478644005170308485607118863737024073395805973972108359671851330754907120117974787232478817563286709575879600467448094611707480873430190629102846119791398876934739672284731356702712273132884359194617394289493425784575258934541552230843040247135818588544100014269508097755885012873667952335128822318921940962428254334957482618104989095396646778319776615692026786817057079243797170271195139222594777142341785367847012862415122823495959699811574418425103663958850497211292938756713629133344429654484537334909044865276481268378528546515622667010001755875749083423850155951791902667356321453908427580237110246894665218818108739121475889957520891725875330869875061377635665945968167706175970035053953170978221543596503819371846024298687291628227291413869030274144611326021501104152006030206993716350161157005887164996785120442940052085775737044023749169696437280609253653204269507015528806652976178984365664211594571553532048909542990447928580437130100438025696129959136120680752149358782673988476319013966442307047990275766538216368098460203325009998478481789403710030795613184038387574574387665441412286700197198959971527788055532575285589212473742825809523428017280101587896231130486503204112160229858401402014474246369299662422175784538931979817274440119653804596197889029952683444731248197402987683373251501854010589102081736885359594198098265946658587118030097644845328973476359390261093969864539082417400311717458728678834912504971982430197499678708030974537944132600090481853836521892237493445787398120799767825021659956015346621258807020175963908925307060958304898466410255918975597270735633568677724886769303687641036310672253459387646484757879164424281819269230989311033677948989024988927735262938712419239297395444293267601766330817494691135187862365832015763810219420225656677626852306269264284037520454629499008582676579117848474262909095071985571294335541727359281201421352650527716404634358587599072773856432413014133629265673958850152453918798067461630777016621269354637381781077247155273802640613793876067460839703751384463348670926148779947310466819693802257080214871571109758628882329949402381729298823873317029405840374034828738130025597141052391188889464430252384217537464670406090767646826639644169814245069015091814590861880715366296870270150528790321235209098174912526376291162697754864016626930021747478840349491221067622440533187013527089517205656468592816873230396666784543763882138440716796239566652721691454982080580587193895451628406163696162971619029612318390416763948447433347834070329988656616423762972087149950642314503830180035356756570754266793199744930669285452505264318591749187718828894459417596086600005162585753135887995815023571225068358002847686497557747654438312714446998610584532205185352567757931949471663821531439322505215550315784874241760259270060343027373812727003120967171834701293495931662617400835713290762698821597161605110615779931561385565799429990965531273600744662469549737844624348432970994185821908499852030896124624325824988292614910365752587186879772093634396751547729731514920356444142936035778795508568072945994492823803720700951277182208003945985788104686042316276264390387929329138389639422283846987587759108641566624727662405629102548840492814326308326141784502557317699297039495774085017990130337262916516810628435381873502315085032924866884624288420366620983979866505710527470073461358069693782959932029025297097603953157939839469723183133821675122881956254327832082975990365890191605703493231709227024740876163987679737045260536265011692571566761836702572271828053998177447952865252886282469414704331489759504813610931211512205044471618634710220749381840303219110625577777198014899795800566194371299992933229384601102257673149980054751856981042607205547422454155897736329177537738442329908636145461809788067654173405762419802799823930410072134451088833994010382651341534579274859234073655741812869883688749654741043456033550311328507870058132271436228814108129288912159802821527835481413058941390471558036639741285380021609665525428119846573571616458792750026969558136955484649323597443757744389910077730496117095191558885594397155248343113639223487265272104535468920239138198058762915071206454307856367019061202117096671701914329288356244378794490894783375543719410856763884342179995020985683224220027408363564147925175150109453311723648566316093019611093592207150345087331078465838500828473406981875212996087381262514063533017714810602418955747855553901178310144355771899843503274352772403448570403455274007192410411176608269542707936961701633467744971385369983873553734406755324645887239223596708438620323170328439713449133040914513635771536081865763681968975916386911020622426142200658455919114817259195285804361503689198931035425800915022717877164642270985497941747053944926204001455065820622888626593530257591304764725928561062116441951268334801895376163971957295707858032280994428598346669788571477508692723557395511937094622805738866891361961781269200392900960025099705743103872344335569486469981063898103469242237725450251406467358398526980596021293213754465861422527580487471234930828072709071348756588629116189191709201456124522451000715512752295452417092244425093344657142347533240659266895514056130167179225573165684096769379407757885316454491991348951940196130313258109112080459376257399926440942166654255584344286332191461571557323592332436900503595312716126543802475093531247618109028807157754403214622900856934324628437319378534855940993354116008863904892756885872470093574756591424667673358759482713224716378661945922509695314107251862872839953212290457818570707610165282433477626388757789850748737971117984874812407484617674137798447905124117953575046730851778464919962052863582823591785221395402623882198321361861573420528536933800095429376698515106468623438057614144250521452594350675062876544960395509278785941347188706501719204994461368076264929326791898068141732838873222643172386276959995459019767645389996780321772921075907229285582411588375377220998998310280926438435350274197395394760234292412962111490905428563982824201853762086097825480981463282001914289592285848653702937089259111574338521446437689209723357268102419728039673697409719511274366113747212979919066030330565699188243066565791201610448220812846614441009456089073003968643049506017319725291626735556387101715582115986775965317845927583758327141579425227072690232695569766433290380811346987921456750343849687199064891698708174210275477773912111965601918900136228365319068633684144702879473263463284902505202372429619944934319579617975944630088212153439156358683775125252504068456398800163252404673687032889634485474327280209311942197452316165439607125188165628610140196822251463034863234316109469315900700618893445119352132732636978619093916960592809272071215998609918533933596589388817376572398823608634522306721361337162497296727803955421343702271645727861654851105786738877180454081803106960608716712590352329977304075257062269919248697737623940385713757565281891534881095416401823276765140865862594232880322889585100372966758788352038977027589453974457487302498269422672606700888345180400372245633268794261394235827212107645098768776291630224187977232935456392696673745817412689460965471693783545971080711005418085873026006617927601954367263093730744036338235135403443752569505093921057421956057492418197182475628959803022723302139390440326239387895125755684002010190656073223763847426640017653800865850557417191693184743942202575802167796757409938344984726502002895819872095690631735549105832577246816557470881263926175712255362881190009231263088092837037521006787266869259247545717894611226545996346177739962015375614355626740334225479075533946491632642305623743257352578990547549283659188399229947502956205069609085160891937472780714180993756108394062934531823858570741770835261523035240837383212568980131171881842375106813623737900075898241304505628408519489099832234660504374668934248568231602525129694328324914430293491924860667318592621703309556229035728027713471711467428258373956766741286834615918667657163664633360471950996106117825691872292533425066393157718682523764520523603576751306159229424342188010881951583810532647341962314558225202834007247855487524255052008300149253042342484581706068301950436931784484590133966364318735309117660046242086654639805492641105021816526901945247795747904729128504790243957113061732734811213101602959090795958219775476216588305768016608162801595597262532640807252248963923589645551987814031110278993674789961074729541597038566839442743152757154423965744000849756113618617825350254467757961199764327327926675182013766503113448810959780561673428715672066115571542074925203894475204869360563595683483850700889137305763252510335403683081945605984524257965772136142333381907004395724387641306617767827860325326763713378084132815016011713379383139455273560194118821241935480795981795243065620101487232808273269993106289580653651737117258602787281570849262207277092783190866000725817271049514778577427368135456176046525108465398102863968281063238276573604387186800928007162012915609701723350677996131459094325643219897456975577782226883351282601903672086536441552618487340043171798915654731146130866411319511866103626885638886537893901898543788388138883313475672376118739368303077281189059787347032400757390993496898448522901959727750062070536099946810646875703101958361733923956405564880594699337669391659332418055889104344365482475257571842082155695233429126750578152339860860003913950055452248889998869143859955652868273933698169663773925840023366121323667353018292855631519836068582166165811168212401490398026953417473702962643412049609118503830655985369474855382117329741849322571347572551989863304496440651252539108440208921951927472392560568244498277562612023353017830071729968705540889774950126837883111767134283004558465696098002682916616738722375280710077827947376553176955078075877017356493179452131783379077499859042387190870159813363277086413926369609851616747336167809173414326581413284395193081397643530397516945403819349150174943498991051208177063981640966016019412544683583726617951875168649478868906176535914224111278979530823834958501013269448498443904779439942225618395076229324692155794097470876462661475894346022606082360473533295914356660469208343077254239774001686380273258602472286383075401381999660844634553166038384156581999885940205826543370357734698825220675362400167782841727414064704738919005896606703569876101599792201026534122887243547560815990726504075998350945106439028582156064215722055658463074486612190100541851443426486760826275202294085193188649311977100514014615890355096611106893250267529826225941106989573505574540293431117778722631086127718628756104446867951115835304081635423736667394564834377248872495450494810374909728172025411691239550550696291668222257845205346372446445060240042688056130196002774381630047175035843823950731592367366565054553640408119094385638312292428871515011982774686204971286926834173145380369449318505255285105746540222007657972775504556948713509756592796792629685752583965711767622521401638771779370464789949667999302730992586552604044003543235832009449811722967730228109018932460524747369921119884894746003885012029983836943400301918416062435066015880906858664580972438400484195449814209013546609961269815826942256598550842162191146481427235316875540796036091969673618298856009958495214436414052825243195569262262679238225144144502034684040232819742168604680245202992507029918885859260600579088663117767519053205066075895042407148076798345183030752013104656911813711108032518553212609376155871817278876215261066865984797001601006978716775219068409289515179576698828381329427770127968208643843025428555038938964002182298254934646250507591579977328387404495069750168995133399548924045489151549259027272697351223467671112321011595736671520382482308502959853340024808183233641045704353997390119838851254035484168568037206230327491101964100061405687012122713965983685088101356912376176822715162011784670747159833731831688681817976661057452860990880979683615990051045362661277984374001814477173817531845845561059226328763465676739636657873133478645783651191277647466569792212451139642482560082776117511005268504393961519886819642917077375028791537852867025108647078212351513673945470313184318480794776401574109306675199984781768615178737218006840405928959703486418670090799888618128274306483770955211518218233102902859058982514223945583830234308839907860601018781344802632884014988382204566278842887116484859869343271378197029100320726077862316108877733656243922181300911588251449814372825926059354792488404845241735226201987566874257928723140654514853355152632998537696726159633215746589391051492014874679204471018388998294741378619376955533993225691321081298858623255556927581615144771338807011821285422064177905364279160726246363905918862483706659865386268441861841359871960955563511722144740861409441245085051068399880374474804061529772412847906871292835602660424574086292882136348616482775485485806966719119154397048746559147714578920480177886144330069840875068674362038408252648132473422000205926173749670466321859327722885406832092591097538150969684919309550735295428996520627049922169146350847111066076209756817385621474778386008399177115499857772310429754648684322282680072342033248114343759898383427289273187538861664952429494719866259323203228564426461951344921973081519538962182694346887411621356048589708223033569095058937368219280059346020379982305565912521288361049065469227740315561571614451275716524861967496255691274137879852332541688856222935555530474893135867540198763545468204937817510171592967385842230783428053439178976396251017624124946435296601312972321942540670807456293624527443103105129194587830920054043242307559670818889214538874991975149913187867350579563204262745570612392168499946542912329329670481503261171773448299090681517975439369683751621806512511945740959389669340780856255786006321282802171645116420078111007704222746435594602121888956844739542597706961400415457953858570801571976752133522361850494706828791729550312855290241002738951372112880984288360781322394506557716580284102307346350851274255382321435942474663441699047322050613699300935421766749134308790390773132141888351002836919132616930696988125132109140313080915013116881269432359466131003044962925940086865349553094979639581509548249721781327854053188173378887165213101055438553112076515173624145667257052318086342107690078624367420031142379017084747372408629527121540568345746494386676788785465977227638402295974263182373392875279738845048297316186805207853534627295044029744086547330834384966527393770846669242450870744081807706673193081527139882463896087280523447708741229407530092887829150606682151273507010942605623627359593963934039455360516993701394117693182901912297464262972788220696024274756746705978224517757390130289233237409789639525548744028259360751899108394560872981854005966471453988338159052440820717932688650000869653733672725535295722931802755986410690335892494313654575363554779340163329362587892745654464968755100655511221226494922238134332167680509389199683831958623261904143741624679653331115556771711509649571030703498320517972232337557152806757353853239505442016246597302459124026982855041180882166194513360179794672878732908836004844689753244910814403470931442880095104407418341303589848977387702419570561607056298000671359314644302627358655688142496631964514150580449350222330018659218409863299171375596945040099105304396858155705459153926820501959024863750391508020885622081876726413613213702510767838929934111567656821647804331124499211125167634637134262434242958867686780093496305627245197087153259770824894960164792773681854616269712731768220610436239920708809472050180230752283653193603970482827331427560290294770203410070672880954449663821671400846462434826166622323896894796612403193966323988385127516335179740570269530320792511251543310851897753365538575923094252675718940187864498614100752645002461045463208456802888332221805275371376496735056022047949900993098326222819277481486367589164211096118753536549474079146155539795743222053706116706533364422457549643617643432611823010333662488020712905883096707320456201087327358639390098527047523360333481091530709715324081924455971712329272278336605070114223162632335816458870650825834020591038100237127978729944088230550744524112963106967973495342984128880903381723751255453084591359917045236372118738346614903881772204878228782261162734074165650071884365040112159771948481777061349696964901648263050975826591585386594312932017419073194111313090615461156990295244860806635389100359576255264849923486476503153968665427625661170747090947466747128793961864200286940481414660060490568750360536287312582447532511205840246367806719203754236102570733147638111077936236226838243226021145939417854145987801180978646079500103859241656949138095477062072443326028605276512746916582444369716130119902028501510025147341391402168194530379825878134367755402964547636555669742011623673827220516567516571605169998284228553097446852317171026154267521221288701169559354644235044304009015380140218079197907877921767178607019404847998756111525829981118578239906258889577966388131018344412052240772931183422619687606727552987329758699459695546137297619295903432321155341724261652850962133045484169182885835956584891059500273842160357745499011939457667252499124858799630684300517086152820462238516878236754138406628618172694457268879140169431780613470739997750605352853151235009451801878078475521927867031938833827830012804824535835722044189945681562232842787087991721278830602302892439702574307809939066193599107713736855993572038980550810185633307802589877720413447137705908450408152775990483062750215359775503357378551695345395371160203789156940274849322615018554992195419192875973077190892282713829128517587558114968014225533607817419675735805634293737488993904573552538812922856286845633636188427288411592302107050708287588411457567023317514568393270483795156244164395055516826339642427699294337040266409952913469704853017450951512563967170964116019889729553267646637687757918888675409499779504359748446140709952695932427195566791864470293668795303914769251209145650973838682186951087293772632561533447779256809548766641003387969428502201138353996974278964551625503841307321869391617104861763449975597108973712606733976438417344873085827850672715774531977041020769320110101863674962063311936157222658783262685293495629986839061085433021741458289970260107783057824904222121459362802430134087793582373972465583589577352341397115797638226912714969235738960099862038385471419729819949671819393051468338587123512162075275202212602259338214765682687887965715029911289374687295703696196901947708838224829869472193351984450074987521696673474058296416231301109931936395527540673396423805491135033158948535253457276498033389525398563589377404792763862859061706244866142533531411359422391511441368235075221790398628625417328816837812624568023375084576749524191775949462152497640517572729751751883784220180069657019785929605038374768628781528894566851693018796790960760937436146481887754448475478498322908982539009293213426525472934999695065727750919318390861041656500590042470205827924135603687047538845925764445771465237848794757733858986177363869962270454273151760323346530780555122671244817958283140393361506660623225496156930075670083768861451992527338205854722960535280521353817661944064570693800356456699793131218432105181409988087386975385805412703689860745335412407632202320753999725132247963016153571579249370463694432693663252417975004517445888163568021109194753902047606585161823050710161433409425679870728509881481948356672307144157880118085833747750580934390500341143327259802573111089160606898880687897045878182486790476868032398588526232277433567101242998205257737252544892413841027475813349559717380168070108042641276236224320400279290837755459812349236416325938253678603700331523338224560248523175953538920992729436193780300474463838074945138821430035940638600308208118104728809866246907514580563934391409769063949631464756975096002294315262544313868970571338335383121091649623171474865076934900545779540003416803077265184889771028821250664884043118693313277741199263829108208460287311786442014416328514931656444209681084144479293997083928381582400662878542765503053115457975023214999029515861101316195344396227738398836451054639686220382211249092008322250520224515632331514090190486223870180806382237620095961388374359245857835000482465880113182483341948107735423682120910895623195206435693200327794651491608065984567109254040800884179773232820556898203266204457608866237840979363625201040604152652270168247011264742288173109167511349301431443632336560407971885933223763120560053148596319997443987178981115169549525511931650728540204906527446751944305844839193957848560072512031495904049093168496418536664755989975687673397309031576792490762539816836941872917822871423263992078731682694352629683880827418128902129359581541163205656553860624819471165525757387153801005380160503692070409190404274752257208003871576974496958400231749032737215839983276021730648723037540578306635716112549449456329109930643746933784173517905723672320203742804788061919644631920270782499440813191242721954880518029325499133430137861197941974784879374632819952755602565602718950398182686711245880932747258144582157925401690890742069408342722712500710434266375111410809528362695719165740744157148546755435653193728129601800284799945170197939472003165068375773825544402693086542589674114175876070558232126241572021792386068394927788959854917909520942075667198192733858349140700163103932025071405851764815753690407221805359106147236413229997444180062562998258149618136543402190220422297541273855976721078606139498724872517579210948565684160950129687295256535072559249388247768600111829260844400639893908045787275545028695777538021209109100514159419908008328823878466059130177997107128255045235298466736693266964698671347194770040538050310286285316156055357253025825229372030076003221171751258856167817497360332681838866827012182968154073071748881135289027598143808375920626885152541274702411143797856394220174478137837347997306626535482398073216136663583513032106122349156215998267859720658339390653322390424926533243720302168679006123028167529792800802105237764405317817602747971405775854113261290407925545699665056890618275121870937280560571483403260306503855596252234364576418582247406228553470067356953040442756428163836486515625857046011186080168247884899833820356979446984710824314525444563819938180242676367356021708824176572452698100909202736736993284895380981510755595169813707127181372888297845934130021790206011597771409647320010394445271990079397617241708339397939663744918003208202537607236066265154566408624134333673273840917534933672033638005809507567197002856207626546213563062884514762674355919771869072365333806551044613692148938030876000827205275461252952008937793847254322959430088763556562328063021885777750329527495913789152525946445815762683523568914012690813491730335933689808549466810740192749355241352768670188540524987957122492314593900110096005890582899952496200207975383350847119988801019367832548960518864294680793215470006709832296413799160686103725633798675788153621660434012787085195534344775205207409181694835976110075485357778604118851096174242253000495590418749429702573743023908769282319770047889516946876521319211770530403001086908723414091597919499647683161147029850618141704664912701795309358120085196373832644937888664408451424311478343458671228905361651379461217843709198957979008432592174144990047609594258813024184195223365362293430247327064610733823182284040619365751258307214508130982921014508989846268698669066198985239483004949169021797328651596458959351028499096095767663410335688273445758855433220006858446030595251199164471856335296783642717886659408594300404033292717229008848211097590484680247006827862526683809357396912150709721571398092615293149449094047111204958657234082719415883352333226689644562785897058695119304947509510556176809075934052181839563263917671791362834646807737388449678854613090949550166381632727898196382034106526362878375331660820639146755013593230578144451744357881364660323222038231027693670127761909442477144076536194898375513421611048587082959816332787702330802432848773339436730593367443752129435967048287506952500952829329649332770490699806730758598469936013711512557788713264930571515387163742303455613833603184580895328464246496802846782077724220453745953209283572244732102704146481956034293200974067773470645309378595945171466150969084038655847336954786709706378379542640370504936478388222728689538533414379699262753931270370077559537743695295151409286942915538493477274446315627211213219778786437514548457768881404606461804316371385623910731900374212842746511210015199756167650984677257543910784737143569559888041999193574280870714441137475045502609040410874179853341913027152767992261344705237053729780549405087363337492872170540026503025049493138403113402358869367875758975890504885468689281997249183415093745251881396496351775870204486941109932941524385207175594594482320242580536661940425650563561929166977142662988476907419022642787624299390240696069174515051594654943377694242466311944378580498104219722354740899229970642714630777659307446909068384598385832206980882990721585986722485154598247135697317096204433485503339811314620579931963111506133987282557251919831547227596688415099701284971465944842580755396844223818040391199787570198222177451263486008444390966293303071310373275133179299206656852146166639899777968491981000374341608067960398126924100995650416516586771328322771823249512955721503834602910243659954703614015955319968202469985192364718501048848513173871837904885378849210320226553179139982491673827781361883232850082263384298854500906171220253656242402877355150328898927990276850735263443871114238818077157062042782612598599305719553929452037957140414801243895384954711337106760297656221319476598623869730288532062395694608878241956529342730211118107354122454939240052446282913788500356003749086228331965609915760348767736368935564853961507711084729493881344006744837169735343860408987420732473940510375773699583899450872657271569088548042258868768662887797394134969576874550986719082584669129933437152285676953220296405694628774391655732234202961728014368705720713797278400934169708446073198800887818026739093800906023499202490486392288149612689841203202886926147813346948222730913986090723698886301877083389014518189895075050542789425738737120630475819090200316490344965637099303938897446703636219784022541624870619070259218550640395049794938348380684804445445244428802700477918110032282774420981259127549357857464252488329329269618023087810189853697282940051056906443127145950632158509353219482710561851937106407386519309590960824579419863672070058391192308847335907247104745186037570932619652730413846184508367493337479624611683430578866996538029417876116926485223261404715808552923083804322892929500024745066100882465699965757492039967080136098058356905991224603584451124457501397087060645503560550535123396834388002989176889381773560003059018415365874137422116363922293644966120730388612066346604359802875943997987700218041419277521144909755447652084596709613317623704335314174811150241184114744586419960319673268083845261776327040062774534658299621032261189041011974120943488993984670107777199185115003440779450555438993948743193433198241279089587774105896360055299817166836501101545208365554837089820573692755365412969715156439462186510675900685003381998959179010086718056519958990667787297001274318847077344072907469863157957480254285673727743523778520648157967263255142168586713903311143379141093393861437452218208656261222897618996791099203919782935602431186804186598747572080335392011232003565366435380646469087667162679985419395110029684513913146818913513152984346743276108314723979940319013737661536142677238605897961078525530492386453948853181514261267990919008783432781746198382468925378632783018077323526763233050713165284246895601425430181111722546396592503054243059074816228017147905455274930997828276989331812474284090579711105117349742959962985529382624520730464301173711561232568697267026028381566911751005426347730987253750692331328586221883710797717522304523052646793288617348973304930935033630652349950255214794504459387122266569024081167228892550382828508716412591344005360864425169260893893128784477411669901653326281924846642642149539873940409118202769808461938599772267922905847584290836919539864135149586980282421799224965541480266330778219711554438858325053674812580708713077485916209943488931418626189147281571640638159918592810961933907385829816060139904838252325089777889308456027539421855427474314754495291586906386434299754182746106132784572103115575376852594808245139371840156632265944801492428395151142750739226467743956859431779421671854714451146611014722558005239611042101806185205486263140834330523897645633967563547247014835224205743854568945769772048207355663061791522590005428322761528488331598837433916319603035592718406350875458782841756411770009547890794555151600441789197048374580443721022181155181399195158979686036346772356181463285823440350917105286885845248217652861125822622294703119075149667601029385769637861441079601629876703435594258070001671227872442117924939632118574882987055763670697359405484186767882228586345114586996511671371444597735189658188360341188545954312824421664972880880870123034914725247840605649802327309823186089853083292421490689844033512940299059443468094043240100434260893126945060257842104663231414026779701024629995914490103249642915574152621774971648976739636938799870317061275584138765149068337193051814967679163254171076060012037626546977865769956717783679259067958002489141278834259464670874537613658605533602002345807807052173739166983279285516066652649892032746375591170171437368565200737767785958425358417197796025071426769074753820649224386687527175717387374850089080485321263782400072311859192617955931703398604514393032159689491839558502381967838199756376666185450581992120121405043990421479310804629213390445337198085197476972652244672362149259512113405226473855232735876557403645929499646107063319268029105611600562337249926591190600164861376693633382253707968370169013168136683551865532343638204315174356742074730770747235848557432570352990924392081466998607281069791845755744832648629478809445664588628652819940276169436119994587167404417621131877425661958266496874077421722038862355556652226574257029786248350197528904148193055784079391843722869763650372611244909592081000610944528514579841545205209225348360631877236366439317658173316586122172764877299731478750403628443738269795077024390222081490909385476464443036110252306348431449657685071464710138996412700761450506681671104349020965789720484219790825254875444314220752843013393164738881440492544877783470795633182957799995326152577289855464748444665660197128910493682784730138686526407193794943323580047272417129755796008377495363791142824104611484350270577416152247499364652315893468675883468292043954847993348077550291937728155045012042067555221686214492564560878110009670082562383212758033858056862620137947872025738039010485938460519606590206082222500477139275141507973155897083446443541972620140685166194479185740581570050432531029246367509681068218472166267188910237417241595942230690764034185070482483948626792396531909803481952307635219144410634271788488929577056648629020519425859256756827806200351871604828604377944063631989854272301703289148557492784680298333212531386958284490458322681862018899712430019326561667662749887090964140481501923401096779001388992970131675649188731075402926317567365438980929065513978824964960648312715511034578337977518865373083136222719866595452927721247041439972791312166370434507572539878934253807942644641681338482999996091853276014836729330503129295479452050297357758856959551223015226811242791896214766541134826018555919492921845995621296119200502990056682674971099597642321485517736712684939152024269209948382363812307805863913631136416524769072956043874454282025305861025865806825416082359751531201301789181999032545150277859673859231425090775926424010763646677735614090852467034201367475627318228337797598601255476046174875552538564829290040414974857633151318760312219000426351377953217936590956254771332269941160190040270275222168577272666326547290793438737860960259968372189249746618685092161546416565264792626243387720657526426964143575557631318355719943089570086041316751387904268544302124650762405096925279446916620874625114640128134348727800885157561125647421758322573431476527922198861889356460865358607490561508879219600897747879483918991055663464801327020938790550131484741010090191543711068674452468262039731875951558427061004120208485015073842574630666036803521197230729415760818303817181818895984868398500869966358354738050589812226407140458014275719035628557013789071057691885401312368463492156630370735722160885292202603170896230190545977513100327944267050647059874922656059023129347475066609262381668855924125863061333035868222207662445154486927207623308802242087272786827529033638457568522567295699048859077488264312255253755834411910359926431121472215460068190304810492246653807960752721486678721765664984391909397936979572540918355971752873017318760329985445853834253098454326163399428381887013419174453216408166921056077257838188510053837982043409673347350404666864683441674427080413419661789831651243573368288436797004180681571421937255623512193882724851148746488116878840135249699067428565477157223024165108399758739783067232906914641814857910078987630378921337480846634512128044107279442471987253401885223135259071951559468507453259955187178297710919635653639197242414346346724973459405643386715455776358882892902962098089479736504062196982798863085682055039305239871696365262827980686789454505901217617341409038821769166116188102301232226934249494089915533607822091104806045733270254063109842568550668496290547651483103331096800481354297350101178762059705985494556263672512268610143956701105993741998674201637962793059422068295217668968925194301476922412262841112341672389995788751279333071050573864804975290706761848193535352482936607870053776717098970257997556831019895272694126182522914873094129448231367879172421117047114853468722820285805504425599834064650039150309562859728897949187496583064957352415904753754285226711196749187085003416642636852980673302186551521859866959766604632798993546694127594699680794882792850343857632526262009565269465033566565983771188948335063481277392022718286794385991126035818346822980981178678284544516497298057216182381307209314695239304613203459741255633724036815844362273488097104173806208766328921257284259343440835240127492876836293174284238423608493080362106465740789502457021219709703113281155723581590467089641173199035709004123074427129395029011969605155000163057520212153047264086473937920361909726540812167115267596875150364786672660402421445461389174547736555695167159529382470327342471528568657325881906426338206325381177437516721967467841191773247614056863079413278545776401643717851143991548688691134808951826901402783216774835959653361935516127563060540059831353421982429716847440405623981737695314425921191637295483186262595886987620759371984739851224263359963966636686293151172085158796306175849159264995197758053623284495637679658095301960316515427683985011795668732650787158820656392107014406214163615174738091486715865660699593115339584443634252149245347912570076199270249501234993901368279915277330341936525584959286539925022850998592821599049557261559132592027846958912655770419492510088240533992086242376924917833805548083292722266282100614712307333492499286964488586842320300229439911377601966601835558457003952879120851061058188678891292498654750083140291694472269734626603406192118159956571986805870787733592953631920818508700331375264905937522709666883711945416824124233678178505466690973532456525801695746523988254117578840759816025565703631649829344652273695339986365869326744026205568384738458959213425227386802328096553434978356478646442945536771613804646395604481028594988575649245547686741061340136200974544058348982442844249585241728880288595023163460616384141861920883275842022705515646293465083324224693608103629896390393963473540057080618537296090479314365561994644685170687590006282802847743997415739988259425282608101188940676640435854819711787017866813865437953674920903614269899199132576854252687794197867152567202049509118650690737079533156845024341242410784687373273222920173107529870885436469120473468974518196927658304089536394542022809170664791033575761950875961110572664869964190159343585970602425199176788070295544227558097703708610305740350499828916446227776219095007639271663905980277592544038913152641742094035062410840934961122893675754762768876896874983481205582346146338969944420389048951288668923461666717305326065367945567328686490250998445462089181347977688617217054698568313481729785233854820844293409740732645814551285112060308940672988733023146813020942463570579549144478689349956099162502344253680864032947823065678836443016496162172895164076691818964860555761539106242263341772181214402968590606403966444413853475441562484455431965924993081740807395078615514179183599449274434232436013480518693603770519775219636250690620461477204543909028942100242256263876503894801704418428537750900631305134044846286263513683470015377717745625870034277329624032769210132160326639103055678604270476490273563324346430995946812795691391002199640634497271090597860876090385366008511579262497886642626956677184417566571239458677102489335281176080917350638696573454797308177587781679137286686065271944929036667944604600145051410387281413134720696170911311035541271591033787126843198926004184351414613815487034782680754697404764683391457860178663244539042834407917862683487770330620458626393331270595640226550883273999265007350074339098002434319651394898286243897348183189313402409410021694367138561232384616095488150169105557017328426301508564313385145964021316664069912631547905463816087339812016278382909233593983009087204615498181191353003270221182045633160825827269812601366430048894361590414776773802992055214474162885647589697685252915373837386747075773497906164525796959123577884715029979912511226597304486850682154534217177781635787460086626580110496408466516648990843034541312387089396987404006217586845329540767437791187175279362325714803801713900465027854322359839807655196152113212295489416864817211031801064829955316259567315023391088224851212404987212790383000132215003330712177304156247589911031849646917282795933005259164724721946576028739446253730657972722760457805887343688592215756843311415785810880356949693260558994328400917224023927168255883135340921708849754892326503781670652023947965906055657050294945128789066185548263685792670661111496911956959096508624188054279876789071601970212933128987689409398013197623975007974407011977785572706220386363604287826972352066935028165297570768723142483662032692683430616516794128228230576278140454791419897692595811665870666280719336963605266222862317516527900732787966128814992139938671875754457868920910630736148536507668520685333206997482581250476225587983558103998751125909821048486237470719060472206104473711099019798508616098217054451012628957741201093365355199279017917517176476262576980588478023656435224524010919432240419062149003393422781007467151362365846074147459787003798996111252215045851670312494797427583946063353747589635468267448619609770675544666361505747937382481071145697515386516302474879465616279258937112050072329750329670057774782390958653808227032406159222340875718569067090203705785904845327775767638681232403357779533099877017886804034097253912000059325041482145763676028833683590387114100555628069494842079437908085060428920079790529827976271246422165339324353258853182119550138862017923179156306597435963209401797789176719670355712188960637864212647639953783057923747440666075269966871225954587087565238596900460404442873226973119698728035605049881541739966183797022167073183903205213180285524990522415740649126205459621658318223617713046023617861312824532081530693573505583662528573580767796667059120474176014351715321830175701553455905753989908983500987115910225578597210399677167413354031916821544892518522953401794800691965634086773363666693948635749971663683641559942192187567941167113635593448555677176895015088731573812755838784252780901962028980196980457285770202979481811490062028763561934951182940686913333288468508283246887865405514345807557944795182135354948353900406225392197096059393143467312362827113945020317123457652041885112835181849307612443283298997380439341863146902119282745504366872527472057508571422958066288075397256393029207023609848081432196845433047960950606000888985147731095994346895393451680581732542157451928433452493369775624264015181266940107950449292130449399411311584270565079617393382301569556331072173157556242731305553856066326726617537570048207582796006732161310691477396834490528113858787498432285628651280766874903173486817982118504858243607281357007297627052069071337539009727074141515343370196459974227138492423652942020958487533367532030759496719471858862618280026964319979136043828865083415619560415831142710105236022399079139356172790001121861833639560583077125474569832101633150608902889115836503597939203760001321115085078722712226530397589267667214277081970729381922302766646649981891352955628988063898872252320955827966387074697785537467574524819721138436149620739054068660573153037032230360627565692567414478942571337093165544128057808417575122818572777700741846291531547599460875993641071743230996741104338850594725610108833326955236293028237563548138643310575853959761308214857615568333392718800187639951822170073598282488130215597154316205413585443086229513649709380282335790911676852723243332827946721900993564275226962190078248941848475386616390857244206847475504127182869140581577231203935291364502770048187016297174778435872279118341180850492694228475165786850291978243629068144131539824387123505288272341090287005792199448934418025592522111131400299632560601563644779164842222682154730262553979590946158903236038918929294364268861032288233965391251321339545650052433181186585241684436581762808352901203038103395895817391335353909532122699617454682430193586890647260079396026786130583960278393460249379327150449011305185430511786963595831458009083537338942687573100333263324406372616644377469439817825593376775531310912073294203762304826004831103491620421202466065879972415505238220729671517749599131952282408525902027279523645434230690740033808399239031297983919684590939750205837993883738337280510027792549916343974948551931399109408659832253879894671703697996068413253256278182754881142264765636442168230739981718458399949073840343384759172722678404685814328044400706551329903575307210904766770859861395626596399072394030072682564787913554180147991999124163626474660204056414225302549789754772178232998480807984118413986150561950942196965458055795614635949517911859992372412891969292714019865149039401223277897407062320299053914155723718536596925313705002691883430745833973830736612887405652099622515901664492025336606439378587943704231558619030179328608502680945668572848767835792510099923138753609098096568988506474777966430490134059535316306538825967592486514157191035541808092424266322111386018543072806446635488457131618826440050209566489955104657873722758700799806930833882032494849520150287566369952487364222310749970166257563827233351648337149546049484134872236291954650634271056416698839019889274717855866666734288757063437062180442878434970312593623967068518704699080213976028060176503775111036328854527991052741994257952979412657642373708349077752740528105757432211930559149605689981146072678432281536246087252543764708804213998314057920703657203682313707666807090693536327428495591726318940953777280549967985856161978962271934183026851264779327445138643918825328157734450140897326227700857306661609053167451553886157026687704325409644460198676789756790536726808750946758410300891722072001208297274592457918225577895034107187974850248829704916485941572415060254877640318414857951755440967474363650516302486464544428574804898263713376700109578991482104218955229328917551636083248335312798342631752641867132198649692915589745553782742961905422312709919991662915879917860046148288281629007283985598035366465306828357087692775564086363141771750222245709336265680024439514656222877279857153090510531323208273366160731835358536219059295951471553641040361375179307765854186508110192739423143031904969010815072799025104650341769010278283703859475429977355495566789651679309205669270987805478884098714045269584417659342993245258042857684193547359605688940639897677144696086577722086957372144429958361469132619444345838075629743362718082058303595227516792599171234634762732426274329852565132080510539813804266890663822370458292299697796263050671358531871293950710900747052046388151696402654984543860824936648187681072457382723584911112349871640170908453627417193554308616190642581859859988480909481853015223921678487093576932895834436440804599349713063394568260607052709125023937214190447186444116329230143440116082254678079298946315407198605182689654434585066776468083699362479754272835239792865299448822649330307365239554987041896844768893713748538515059116497347101585048834403470154019249608738353371688953387546520432319929368220907346840022715069420317164170310005588578201021340342852682300373164688729125909412441663780729195236336972765698654536605040282260505136863235290950883775966968459881640838857333224957899087824751682139625271312428410876491261710410693347925901788520273325914108071209759678273264042894032473531525299786345015003997956895828639864373740114014927603985206447553125013482729274937631249030631348302991168152424413802559584912355334933309961649376260855046824372307812137438789899516911796377817045236645729580233028864251786501609366992836611762085054694849306826098179648738074168751214639327688333271058718059581674574474356259200100916942543649775725168444145936083674628782933834309385911222721499585072675388015011192507416901394855003467801103465231055058104061107035247230820989844490286660720450727260964782011741635739725745453705897431327368758073643209552842081807957340766436361407086113596719934692209820013207711870203104518981097962166004102600450969052006132116293609334538875910694022655740230282011178561060058654852000446734453075578849723076380099811596910628431478290725532387351428957798918998621204954828568989559932556105048611908021346478356150079376670548009821839971896706059480543016634322631466849467485825689436505749427875063671590132798748927285361119970838016967502774692888220190209016151893896341504601288416561757987529268503177591113615052714818212566834575809442965628806252840096014404590539960468703636620117814613034305746166055190303632560399479857576384529518341728139145662966359547723889753885857693509325708224567067633663621092747190927716950349481987419486263689661528603326890807048098788983171478581856669186624164238634759421642607450056881788523053400042544619558492715925952931354324171662282120027537193350190837120369497350881376966574526527515070400082981023700121621432109170495276150860767386248066976933416877228268350255231075324374940377978873269445395313540597233679241405106303965005055834090944207800450460999842411747809015199973721498860516289010920812510103370069238256864490119462455837106595903034506190334274828145700847292576000660409906706067534053603244835775323179725369412503701333013934772849983265226345435191303720801807975422723651478585481809609809722760771317333930800197547782115371184106845200801218053340108542868055273859457891499223079675727942533385116313182861503867745123803121638255099516859801076145484094476832854463299868977815606124940135699217698038856777526917331830379463023586765780368999262359513205904046291488731573259577932370644805111180358348922616061183041489526462612532476611174579964536545357308440770848100321446388336006640614688174583283103037587185738555558800281149257825070096064249904395610712701175082636992270403701139670537180220733751455339719702863930568786647799064719167598395626205449551728227946996529691802283600684663074403808490833583644134202391574722114613902770033480594437144802272004913838329281954509010932864300381485482989170885172126115591662153418782496242456821040434442136219050759067085942900788022972771518093610821576771174485697457471751371392332057280967585129888146347898586089156606435667702384737772372362361148879657930599661654491422036116731824341814380206548192178587998869921970846692522153789976219158110405075829122513231612425729268167445889024372171592864596500341158057263531899873475364266290989922023569047685246282388335491917211930268545018188491211400449149160972321487991973453837038384521591428777658009822302305135692175588273682430292044663073692595235611290960458740711710978224253710915310688728803034026695909153455520515851667646269367514980959205771792678697826073431397378502708698786667113736179451950884914378050164786646838490079146212470414171918736489346729300553349854552921737179862500353898066436104598511128331774758476972758373704087472152992743710076781244122058391489574417084331575968662144440007168104101848405704044331698482499464947562567581181278456960630650317520579270381140360208606073914859582491568981273691313974326031801269641791863392155931674990885977474067493342883265442691561431026939601395777266789197799839979865906668301927623118729871009046802192479326656215636074850502940308008903695276178397504967440525008064536098978987857853054607503033124630033538281167334094775061371110781999022936029454059754097896220535548291557925168184544967371533319199489671391287220817971818231558328158095236772346142982277377866454242664554128225449545448369769744320904567670682725032721385648703173242705331724027438763667725729066810922281506663427074245051497761661181898182583574821085719283713150564597388728161373074004690302568679361180656809780968380114593270946911712584902280549318462538586463613976628362523162808593825794686439404357210954138021691775284072174158974117354716046956778816167600983014367591677296279327246086007430838811070913627350386947468472071489058656661770235831026826549570133310777174766825758659291666333247882933311646444303496212511233598567287737596029150359741266701931953256595170395704243163840532656866926874030562266550018330059936443360949478342701663766421540081724146416254021776828158829644330807457324730991806388730522448138182211612060777129682944511502606408110468656803248556988472140472591674949088326188682555547345781565118420181034366302283745589071748526780961735651589712759719884081688530802463882262408205920040949439087571079629202519465820048656481283140598606605732273634063991879502574986492680324743201239345547692791527579696386558590783047016674083784406347565863395913020781261164472901863898741792829485033103730594344219019331984725105176951179852772380385705243257280062442100019731753666259730551875744770828490447210991272167981138153948278743747923011907345723824717918487474313624977142410575481356555261216261874875029520952239204720165167887550963098899287472548773107087707215611657345535794126450276779902639276458435388980902149102107619157668637488085375287255681643782158633213469766980532202009771393448083934903197379968819968175028873948274354374655705578399230875982722573587756323609212316734339437637552318953998859213709429092977279376125918702473180442377608342670937518192804541158668495903640451344636432930530856545536293923489867580908008459430820148910628469228027150678265715806897242366177827716628587712021865268136069956252727166699076271955378539594921125623922209160428726780043732151529418294552433896011704635435972110836915268863185098208199897527190159435741032624196355307046682873724720682071278112726337803655550403563307928524724090671731338593726132289719785774011551112637313873251150458921975350960729814481686069628439566443795081838368782952558022329710851959682251724959886624641512884068640960357794743185267350688185788879203300363430466013073407103894452168852414516457835942070191156260729041018892435797167731464834269427319776505307441838635895469874002713328752384990266118983972837172846218744303433625369676005871292261846831180176616324295910548046975116151568896923663568933715167637325544133354962741368065428870584326751122158162831270383717378481807314177564821943535962695394936606158778507548051650813908502688906465335514224547073425049188946725546185081844694064776022352441574864781452919377741997627751227188266169268870592746903958050791185226041894318827092217416976207586744433404711502778896878880982234928269605026248782585478062116057666147804613250445676904878238252485077040755080625204837992630511287891149141411577959169884251375467839428493485870805582251136499275449785608393444708515542526288635843143330066628131649512662699405329010516510851812091386717418374380320421221375564973375641640998890945679599307654524846052559858567781915675721683853241849246112002492310745055521735758666708478478885438445285223732589234747301721771868125068276144459864096868795414049384658270290951621504852770742390966684055796760505358337585208314938547799458661121954948519405756763777903068754309956455910690865572775022039393168176651909835734096786719065784998582856404504038595899671896917680738673001689309959325773791640304715223248651167825613500286111461262510787335756805788372721889568800224221371379355724569286608803693479900489805078145378379863132664998842811262206401104313733648740293279453907877666408149858861663356869116227831388005427127118304877913997423422401750222011316650410397829608171107035307330994373870706190759881129487994836448379874752494773297964368596123470438556068936007283690301664092613541870376107365866364327353454166424308677033622803427271058217039885620308415195961032531337615225808781533879365083919383477787212428159393113899542628015431697861694464378122181004191114387482127885945259500581336372282384084286889797956053812950180959547278896278762695079165252263297227613969565158664752736782283583023665996976912108776117658908921792976971342165642900799561034764703406454690376370885550297068781057371129626779944543180458534511136837460356012154139058032241181398233457745091274681984047230629256767816652261991919910323363779128657231826739654332598485085695180070036506347946705688302870400345764760437457663558789612142959474978670314767050361025262622539250853992500623319376842739949448767850299768587285612333289781998174064175167956580118128787285982313546215877327442374538587442191555217877865665170570996221153787828156952875962837377776547345020976164813062153691492579818731283095847729565461130649623105101952182238160636104392966472502246848149127440853947513608957422623850419954670324829548261477300345236699828059627964169565219795871862406831429450358768834729887919394084957057558538426135064776571770315675852372285862364287918695427714690156641532817867195661358216501309224959140990670054678220020752311299167936750310644030088781721264103767102637846689436161235307510672354613972069387940258030927738791819072484434792812754537301089860893409009646319826644694951048292137404485676244129148817812888316041940348421564170520029251620537518375511551394126953525077666352982476657391424128545130512767143572357962723348216355093247257251190926468254923724428605571222605326767755889885368578769646704440925974573053817295816189925623230133248540295647340259295657220367517789316384619008336247939847274004457176482572459125400393881296016317644238449925672806373549056677330145125335144697283774273667380459394886692687510050648670342078328201507026724306597854125265491931432093356908853825184127215220328427681827428487549001070802661089771245033856368465363529678315416714438418636559471231486472894920569664566265458253840370086729457468605014859531970098265127320797118165495604562145858105479365264251846320282904307883404638215397601813386417350001324077154095521359415005700743539442147375841887962883241432603090090985412474149700907440699304245711457719151604737111945144991227361259563285122603273283125028141244803643261116332323108758123515233280689307507686696697681475649116830571376836763357234126939932202812568021226747959336532064504060108610297365251808239996766297451627288023651496810560631609247597777986459704347259460908555747430097859577052447863805039882214222629207747011876062614845614923309676877561699988547169816077265059194830109486889675610031987769295305284224739111862129186303307450076461634072942978119896833473671364427438827670705105010462819553955133193067893934312035530715123661402560935731881624218510541998625291750490025948446629774881205161527538216366241279231039426316914764317216950365592645004684564077908986857508025135671330932750804530819702291944115367750813508004702212614746722304281019977193493435640043192521102455894868735303987146286849178189167954342234423631061373771972909358769357004319794592417351026657836180847748150535354807049002604873291222103883466919052187882209609073242044672996177353387053032526856640648323476029551937715446811366552553224618376046284574297727242612071086317563032793528687839081934185439217999312772866412629860821356709567384296632512515885939946295442007965120106238330068956473542453512582749220236928399651114485189610065708055749414694576994640174663340766215740477193324009388205833815578876639331998778701616566718112719678013867139695651906042797919138449319851028089987909974099974641675784103063109090763238481714603776049096992158996663543688192537093529778171406359156027571242156403377655354188558925204794744884441720140089300072037008362610967705307650724385115426572322509114788937131945383537319623020876950587568379051307929472895339461017808296965117358787260050732893753161976976560148849658344459502103279910365710754818193573735310012670151548763824345809404946196196961067373465144349104145584442398229907325632031139334017622431460116746213968517323988502377072132456410188627782867130227938578684195886879676309419010289097410420486383468462002638089968484935628186390117511966559176895136430433135602412607111972753620278433550865450160613725714016987074337606182168022158190364819346856534930639234512272483971716645910573430039184903761733552190191706308979813807621303230022335296816352601299111936505077440403326908801125528292152759082443826284265844916569144226031473082744714820822510956072637431092150801146325496888516595438096645366099555652974647857062129238670040771443575507448558723376777942419736444178750598653977665553961219162739644841404704408904061181131206162349031337997220783554958186245823214808941660694586559076751419440135400816024181764632278351946761751284383566571853183210476946994339405303219722409651196960483970997440366159109931873395998755712185490217191502941444896943666357528707304415121201576469009315658270106847548888485977537889631088069719053627104848588617234976831739232110321316750008049621544373271607079272004637255176882776010411942357238938445999778029899231209296218520385229164936668055025285112583983510767002765659451866356980796766973246319293328375998458351500162405045258167583061826043822931408085627217626222476695054450046711767649918931095938938094343598089651777021715454256906204473768740654312851207626920215621201101006686121836014489315722224298551201362839264603543570630501275665856342353480235289848274591046413421637613802073535637970826995480358336880471706913742376428205253667441677842104505435649146116814827550780225499183757329067780538055394242849985763814125042561189616276148779094990501777637398210995878334354160231924831573006325159842559231524482495658908132676405721337783850198736001254458284977173707359261194276204025548296085658620175808195258630963154967845424389996469605170323570340786984853267213597141096949455086241618262824063519688985331182991152491307004366287057111060054579473805350525442215959296852440274474261245818464890063386853808334995097527828324989866731357981021855420596989856434298157176670254824973908741258795880565752673572501156391342379521910284693112802933405611340798017561216190087921491857441199700708690857098017985734334243299320967841103652626604516574276431257531551179765070549753986215333292657253387902752647187870785166196157400930631144318785017301289758953083466701407157264019845492170155962778697053595519077406745512930169641347099789250358474904973850158612516571056385030513373038190870767709978470422283849079107398976026838750901861778101300266081707797173593658114826473043881103126709331459087126980230585057533066180118713079532915196019851042518705371346770925038782757082362848890159566827644138037705498184191695517805734694121687689453080600044966398919871827783887190418124638927386498948290166258606768043449475643707605082272905060833735030503259349967870836061567613854605856867872973825603692123967766897043723194717453180099952139890521194189545089085595557584248877745426274068596985629339166155393932444819778202992817326254294177568498681376339168884792673815731353125433849023564955253235651827993794332259397554358076948947029616885476255487279181534834178103857884860739933564252895583253024303965268829286678040744264163811105751490321171263552073783430230194664281032254864180294478664246968558737858558515295504005990216037960254286392980581349466501547428136066068353034504652903253701957414144201019381452143854277158414268212324859788297191696929609045029853245534404704616034795735970695337199235221484984039263963259205158232791012096600244958212797485408140561006664028104653398055761297657923345857534352779642404403963280663393060010381009819682716231691921201341225207291575613756483652482747622707773235445559354639611909411540968921360457027765121170334623566970530945763441921391927784969410863992658192815758589334097944785446985164303782647753643470372276532670379359632016009761754589730603858963543924155345899152745589987150437866008512454972984200987530346010775559290612418749095030246264497719747377035304723020044286738376351570100599134239968117502282809420012119702052960790421603982356174719850242161564876460332204113984167645757999454314631982929809997598456352536274328524111806842685322740767601422832290472357511263438435164935924054566702924678121337361450889185288061925891866266145309206099501950120165693022959487138947864295929138957312537197251089360491900289443451599996137905246633587589894241780541549029995940069870961444385341667610664719589372052999458884406883743813624282403781666858103234992286553889573220391732623274319549117127419490741708661622874956398079804325263667113846201873996065075419062176335646054590209302334429500747951093869387048907051291721195520079885652646046231882424648261265223781033478083829337522271675778288237009920368339470004176563541027902336720116473771772213558831320103890665892337304645400967526747093172951268482390532098110681912076005252427245892683462706298043809182802651629390558065299232564600174245101508340808315529797570105394579507292001043619496556228186694001971441072473984419766440615828178505335576437728644095662159197002842602940907101956719156566369098030177177387686370175259545815449474021773279759389828061409118606570202559265639166458261931536094653576819322296933897511838266144929153170792124051244286729084385820304450138624079391546320756812635150477890225737131284516287839310918704437848605958781600602191206535620001704398911154119957231837368841125753670313073046505104845623465107274432078399813892603305045645290391494823236136431421038813915944067796974834305155577565053605335103898386447760609897913248182162633061452245220809519384545858530839495438174881782740729572246432815730276947038676640676404471814920214587731924917317487831296356021407159025875416028469702591348679653552329796336814182187568063272932328755785237018994423192646619165125662238921567727049124163329684227236176785244951423188323568973675805945294641000383557425719701011321015451321396556270088648143565730302469457298987101478358706234717063204142210265566428766767840915460883488939786819252669773564035518673972663408090779773334155081961390785333471713958144241068837980345650056944262184690685224233032128306886179151145347979123719895030583541993680794640853209443529617071174497227652865780703662294628500765593697031996801897356721288337327736788143661620087390281463849277122345710819033487043096982885584196157352236059418109422609920519850491124378554008084134715147041242538683386247357596486009657295190003704168072415994598998216756372533481981264734634029099929326497742955890008324975912796529748571407126729553335747750843767855996307233230504269069988593654465867143478929651897736899916058773585297309728921473510528612942259356832432663842517189696645210722100635689941938131585078289210211576285500937731838848828310341526053242407946392446919066496917275748136464571401611424050142156378894509958891680433631983188729188877661128189431933691225443028593099256275235796533357845882429790015944282820320334506991725525141248424741301459092506269489702744714169224723028910261801305161151405307843254906176838033257395529810345089967869689026783584190933660268620269784729334736665710925365554969260178845325046552152260619501291684365357797662242235181919614462460546425026003908144011487536273668248669736998104249554733950141694414163109657401230547183886227346529034728305875454030943288469532180643235423538322749254629980404076241496905411739405093686475728317067814597038303850037981310570838101612943299924234479736950422187450971665191264709348241985854475983260960384756359753626546303962401645643730609090245394014886590229593663163318418974480600278527661935868623041589435510283405991467513389842771006005135339753854791860441676631265925066422760731801254574841041846536196845812442795652925174895361061542571221040891813974174849249221373923065020836947747331508498587358124803062301545238350016182774388951551350165040358620290193080566600492757120162869835422340179754152202090678234687725004821788125590123864583024218331111220081469813025586749825119505938016228953784705796481068701704001727788919450264880768604263702116313934570532439408746886299580706041936394459538728668667200155379471485562414681360534539799339148019479185250246853924059980714624363550395510280777513400964067336683764177890134345982527416707625352895707554836822130168906816858223092414228046505932524251880600020456968310181342080015998734275238235405203526687944220382325869521548937796729003412973775872152803378586442951808975982979910457577187017961959978344865238679370503786072874107934643720010826051330297688589012440859347915945108416370816798325036545424852072590365540719959898305202764485588012135172924096716890323745876081858087291570950346264897714143222859351536297156091497339779159070632936266729664347843322746490675079690091222828241232695239591696894603424162271488367070623913785779511393796213090592588020935349924167611953607203349343775742225736080289012310866108620046050258383705449720429293501213238671417593899486884399566867540058051373431861479046656691569599818973427567044721014815451282684949230107264851487429330567535224604369706888160781413311654859148023274927476231263027370227030409471949950045207316146183612862892752231481028863790507031184544543850619604739738700060797657271938461724568823010271547156526514321627341130030215768680517907443419992028399483586708799899155120179307553178031092601540786324028271258052844512970994471671937236190264162288874835465957624991570316871835526047378566473018425759673982108530863035803776455043383330748547956198532180366262729915421348367061840484894626019219476371152790219311258930351695376048609931829332884780335378937551699008643888625391933535960491915627157738638369355792066866781939371052679178793014652307862655490149944423593884473856749153387496753483758036011943365746256381293792563731821938539235019516130590885493746724261029716054042020595996511650306798235589282463407130296477540389940713409930562078921909009066851385265456651791976083183727971126103445001561828369010352587321877806399118871570227663710598081671487686140572436383266193935367031474555673549252179339795069662855276610236126535954861502187006393147279668169090390017762988102392890189376830295622787512934785921532717163144115276437403301259794519254519767401009993479915029144098200164456202238232581625257090228866318181256178297787569480024189907371788997871600121459165375872223737287087645114641118120039436337740239506460766198498728161721069231516853133342473711111677494695764258121529555241899001383769013121936376085621933375844019926086186973070297631884288046764372627714329460044724865978132431930467134680652533330152264431418267604216147856901640117796594873982343442942840065655881666629820253252438870111149738656438675916672736967860969078808235262224697870125075586285320833521857746051269703860198905285527959697165944765732593495502646612643841511740218836404281283647050930689374338344701076864231785968574852240767375316171399533924106216473130148644367860969439914191300993028779968832587844219816401423233701572982745679899231613337599698553268622062871950673233404350657446587662553776406079671738780544419434807846204559646415236419835071612319162613585387784508194273075474801864815914755482262490759974826152523687460933005752575362623848032882123062392485480218053367712254864562575773255515824625399881740666904329503868595156440734783433761986690818605105148168322958652324421435918073975781179182886685052803038324418566988484685411167742329212662270075522680744644464934220350456754018257906224602211048709264388609288921692729534710830908212962890804119534122760404654889285507254651522670160120714897495237042433993466307418348493653414489685092177845698470131010378681697419793980082050307243315931956681601118201943962983939128803052174334264303552534028920820014360125941452614900844887158696595246393700596105134812479300858940594275578855427120408535059664067605629456269370523939451380021050901177590423364688544463324318744164572753794062069735523223465382403193745333022346186623688627492650542189840183405937387805367318935558586911704257711715263558938038849098784004855688843169778865488098990575470966963955106189299703714751011448323018702361941746265166005041836966304469742892725387617102317729257858748008914975982145438803486708018559307606440366733694060239602541124877571920657485453999957547988324837348186573522948336693273815208122739241108528856241380447960751254958693753189424459876575231446944698659799466710652422599070096424644832229196713365417948208130334576530217095971165438947889065771085674388878079822369911054828478280382186953495638498801475761278660332664354025892379386038274916878488892451811034553145732154505004006287656842602305059797985174932333355678218847635576366803965053538123148174617786141071219330969662846265744636737586526689406847033263027126483764471430881118354843718609022821103203467324066525454513255781191703501452601000539879919928203380900990601595005903921835704054530181659372243490828627799144717856605237392201719436721363585659264907567683080772894077925066402540930362438650619360102861386400051435806138223073968632834083721889716620833748309573864059452623380790476315283744734829474405648801314517854589265829907542411738236771088920210808241989464140948113016990177377528287115501863558233207685834328368719503187721850466213686383874343520100958910443363812846085249888434187712463476136472269487269583939386532976493807310346598015578864512084216210506934075869751252528693388947257380554802287034353180719068287857044696888624224138007816693414244316833306051628734144979761143381639956081747871148709891122607477139709255415173891688456346879809425609009553785328591804086787578985192546018452760418710847561135296686574359491330148780685238804094597757586640103371564366211962330700825494751371008498070062994319924269983926943621075724524076216818555575260845528457778348266178486029020431033329821205153886605585224978264775452106325961056399715765916141508827818452957602062169465953751579992972431191286523112437789618226097990233660151486182430148801772384429822429743775453118292317521686574776526148735403140114732640343823339318139842851286108084472908408958370739269878000387326090647206049524459031635633494318171911807224173714468727058275414741848788159825691216021846473674222432452237892601743203860133336270362067959066937839880161185332575580937808392482523264308324642905584739913721197767667933322981566483945616961555275461508923588564302001629092755500005524899373082104613049599831181536405616154411875906440149036188214816156606791624705030377978690746407525296037090526839084902411774568719229377019696941820409138103879979574789346130051170901955647246348928906829334934642291861441806546314595168351236340613705275719847802568881846233101842426591088140692666300901342774578655335396170775495299672753222637785144760045702255283004884195257583096663521162751194740169459908021413198688144747641381361518249580845990659764673722082152760384103773240633676060433166941811123000286056611715251243599198788474602233914663454063474143212536280413035334443941788780484400228987444544674986362885949824572361252936464217387682934370694077440735469829881601760887618453306739830433516687284791262563789200687386301948318605486277830887136444445697096087441677676973883910494083257965423927993776735894682998717386151657180057472230205912134665654454420991684039185894869222907331519185715407239697638514410203054716756792152964068426029441131004602786476149185812049637393702472125330851847798341855372618837687748857781616075487871992710741092542174233157875156996175234388905581478800060694748179070337548234232538888377057350213078198105322813034623927988540254603570990936297064723393114113545100710244748369436099074885876863508108770395753891253246039779567896076431732747482726218990515874365116243531853942788465701577156095508338470096231289879284512830850958203864898073695453471993677912512340220528922038307597698883376358084622677524641268996888603119136459921801035711253569223780571039954565799560332139076312882595077862746513345168580360816582713581024557817839608559501879883468641527285538569213333981642117073953942739536649849364433875446451110991895842976367830967229625925140614914801768006876550279733208535357238569431335496735621939305288766543101998371683016446958862469362476332487312839742217171491957567817617767094247394946190541257332411893700165120588677124366082756647248409685500154687227455460578965312850601076299378656228044017136632131974100517151080167765197899882360400413117540082339130388467114342262423230639498792012685246727242947195443983201074301206033427238700184115039802988260502178881700978452064865706139486799348789760915459982617942137667345504167203427815337023489209749979375987354578859691590937199753502200265114941021445583916325011591614101358994235512142206291620548812822811085486892630779411989913300064774576365377473243774442113955693354510993334219706314219526742040208117848893114846858378277987072147860688828595648667299359038981751795276247680769071507696992599440224741978314521559128289592346078422130561524219227099856618692225260522588073161584454574758854586710875691999086969009121940374451894912124302269374844456338898506977599104918746056163901472751618671952903285295855259242604555025825695143810510678568683322166462647077181472996207936391269695096242534637576808908251161996445999202224072412883174179966224042592759443207418943776889069731468985526532986273564892049888394582390917630760821283116116658840236650421007696590104410322705478969644605333275094087090034513679452065098462621115592055535460407869044778822165664670233409495268428600593502976024977124567600778003805121134363976598853063691064922815000272083996878792667255901330237673430380621379541196280194560799056132570219369142215521178434887619361613872965633639330647790376687275156221508470777284767533153351530116903833804567365766793859101408494061916322446289297393522994061265706657403625585647250805663563045499747232246533788089524717369555864107538306798703238367306242472137386773590529625575366232267265166025276518142890656783469434677858369372118780571866969618901839093251285865605958372925597819630701952682545727972586349783290067119632109822446926137537616690010268014789464500049121750780039662307620072663156059030812350961810205682799416489526203277239332783696124864574129626564423910152233268099243451199196826861253804739276392036492238773885662989620382470845990907671945971311617676120130265071182137452171013095734951964045851658868855333571433565103427344363729379639792185385465915123857588272810656033267092785847329024767745994451311133418427515104160095810203512481114105285646451825180493499581476891941259020868462919778268805057970918718984503494698367389694273238566041195748339645424351137974011084985918579950869429061684365065973227279137566100142146345179040908534713417405251111599774698621801793130381771467754914776798955231805000194044313160914771289000269019963000776856214508161157787758105079971163065254854135255906951709675812045084289480546037978126374162728763961618347830298477335535753766754305422857773598347490903830639435053755322201728075270590163698304833319703699921160071371955651157021946410160170737122684796186049666209733891528839037214606994114623449584052965096927953511756015637023845768487588581209270545366814540969370772649327879549345185609686473435656079132346286962052685748046138016488891285486134696857114029534220255643617557636103431037512639903560006482774373930801278106943875146882561188781248527678694330260916729918667788239712507370285968478664731179382601801427101103699998130161338780164200660526797483402582451597826830322738074584714448088840559802842481381382552367188055003856222395265305232396148930123891025456609818897719392380434906345257500022003173363405305706293826723329329048223154933114773738752481624674708403354356179764865654134963811167369945971315778220739879785188937328968101002173828179034007420408800009934290801144935785491326354657989525151185726232945749604417261777273452075247130439380089506688877326756781342503454689661689346481471668533883401467123658446046248853849675658921310525659043206852538529647437864475849739196659408036150589528255198597417164080673500696984901283540202999961166473263471871778940360856379803446892335668072767614223542705934262001367900480723420661531532531411474780549077120906640471381925149727822004710464141959164665594642274428461602825381335485732381778288848915069949661731477641645109706668952971923739622026954551816443104357663031079809070420583141474175492425956882627079453422940270492521071846244327902957952985228127019239429694347827280779794900515873135165184929257850535393816366096128062041272271914540228235923036626402740066308274870090239167322686286856831312485357397130748334320739807168849242390606768367938684095219010841685238182875580928616625739506370123902897908765394809370745882874855390056218277074566492756991462765804303989392835940163002517403744435229240965263463024439623691555398353699961039750726653779217172329097643859829109151654980505971413172627754183097553147165751966302790262239471516417557053484309079838896161003277757504957581856338980073857452399906829945580181203023907839077596963867626987721724035191898759330176411583193182074946032422122869544471413879874354367138504560239219223931352993880285234359581488009115717690188477955226940434508181939307347248120035909043298543983534929073457256481928756811235655069892188186265240648583031932268059329599837939894010345684086604707660516829792216663934698093858436119663529109173444843944798745490345282379187490381083158691926745049505201870724906608418769902505382611906754061249408349713186572617805334924093454829383593264991988648424430142586112274687336920606212955943307210975039126641041645244996379067548030411636140104409073749393166393339686732179787138001861902000996665223535898261767931014848292104752098739662108123428539133602318423863983347481153044627031314979578052053692300450723825997369993006281935053276992488268563550214869681189396058842080589114586402776194405285639682296621366779007991105743120881184291400413235845286043164096062577869088134077859523292340473373557554355200345132401374168390970748022129743842870729152628276601978573798573286425852322492055187227326812836024933669121971678557412766403583488708103646368986708425127198853688785946784143183050838797349152016066341106656919204965069223232117739773655176280672311327058571072750181255596034067053910047514520544476174414390425242470981194523732091112547420071846023663070779018903155305637161555788571260170397746454871060587093644448014942975346029931961430417710785334131388486002837553375968680348574888812497945729252538936906455529162063758633384846596507558122119020213928917712962646205464325182640806933436350980293140168564920463213221906243229476639402109923182380573003091350132132320809051472919234230861728364665248251955009932951290694934053354415876944716624004958456101630884409873949066761837367395221741318402066234645808101864874016688495528550805789048941306104970320981227498444592938500117168931656279873059357901834938657476939485524865913718355604521356913782278999802841480177023503647539557011125899912082037596597042294504913872028368052841813825022048609674409256617140092548175865662171972223965829308046173659511839700938034059619722031189021867015694309630686308452423614179225889276200163099138629926203039243544016216032628466405223903574790340223654371121772578243746696236303218886709471257816678487409948950380497660335388688073268679912943327587119141649921775936772319275121520309881247244631729940432074697988390749676273104736882648976287208476150428850736422357673210714848027002286872095605947076481166556056932094653711987149266393910428194959929024651021667441440966112790667051901498937231427364508452007895924934686668032772336454532482692663868463629163707518523420750893926665727761438949888579180569514428961893146131546499975617636190857939333678193733737942194529383574345115134850272415475041772234922968744048722187149292160048288208037465810341164043325221217501028234102973289207106006648511997849748744413971572779111365573917457490400181024071807217614501937260006939094030937177506703883801838859228096154626435906899670917271249493874385184236979385889861487771784825815095304039211265989883841744622438984916219914081825972588035179137487710089605417041286433503021589000505002483483748713576131513439111381073307681388221621631808236911589089384521700355837737597510277268778175123811328992240544099570906891459827038384816548191713093959511635729423999571890397458759440541001962069145821797036187036295842215265332485498354921250558403513091512998188699162518220523782937748243366710614950357349130142575827957168603709930898818527651928614243662309640739296251183870870314915318474095552298782261959409017273773284300898824153284853725088975975083765872340307666497286806910148662299737020681976575340314490178976905911170230362808880343454286978363266006830196672308780225182333008359716587574473094559918428276064482759426826885722370194774252332652204544653069146677023156936217604191489701112361169718157546006457198632427420216431254455571964167162304336731255270014799733798546815544357136727028165481854137058043208544666678547450295817865038490052520763652511659611440979215509880580042098256089728776922736761148296059721919963768128472668625986392303499539881036364662874095651510899503033189327685712899681430267085275261005519749476627628864060156660263735331377261462203498827330857379645180839213300876582192328079706876057583503865527976168064969015515228744050941210481605595367894001649024807967026578505698542967083079702504867499435722596704886176511749773518668986991166910435277022437813724812325318045014214696607573049935665600121479327896491171464907371195500538921168995629336863356669740423407968191062037290265969896703278512297501865442508779945523582743011099996055722462060644503184372181112691097305730124254341591393236886907434684465941200005481627693496177556377650968699733079385929876917173459086917991068270646676874073964035677787237421083226694642911797055364397137524268942181444729294257764193215478573376753343750177341194851049362297160856281681485756790607835559166795299411880534683681482324506825384519679820622298507162230499380676016815041411594620903115748321367844258428111117991217107201343463314417717741085084325422436308980366980401010573208781907144860471355454773768550387648225698568826513733278558057524110218707039016865882585918942488099382485155139071744076279512961332306761614860183942781892217425728687762884893088809257971509417632017135082469808198983796007007175568882815146850495229567745271262365131104702926525046528080382844735435419282468421776948415545698430282895120946658383886853319972417429472894914300221632889336732788300172920139532236786272544633160061602738756328847523162833659271413541142834095864035888253223873698065443507121419350191227590722718027603525195552842869142877044200261792453100622838303071659687693906427343624882980753507715395430217272924219231876979332706524633427156605329491383208218315290291528826381813094580691220733569745298045597681106098080340289294942597490421212774463982058719316249675392541167860404360439600834625479095730778745017191590586157535338030412392453561284196593454456633611194480344621556107852016318056369759266265830712529148966383573053522335402858847662867532862855966470655569779161838254274473114916907481466556940832800867491179711026427972426063214599596975943051911556102099985832307757821574825468627107342282436636146279236760300092946733559459005521679538094379691869266612433611294233075090384042389991079714388402788555581821292954840945132175703088565064522756806699988365975208218775979360989731790425854380139092038121608219801733642979558979064162845989325870939308283025207218765033366874457125733458453920869987359286767791290455651609382374283578343953054473775516973021497321459148814947605238587020339354363673368330287469489201062291206103680806497692764860547132249305769447551221227382496720869500844697294208584928864267071410448652932525646212673622978988709875495594127797694902981224351124110892433305202387502129945676890873139209689918112359634429428053567723311912594995378161450145314908055320019397504973752478827960188124026942025011604701999328084358582380992038471480183506061636517092862057215445899180415727968345611511717367070810078675015047851014639265154366517668428994743647812314242288453317366780087846036531017187091120106400708631079559496387320766695234475605103742061751382170578966023789546860953903573408549930567571393665832321689522033751069867039712696290719438613723265886136384936560505110995708417468188996207762518457718771621364062024395636928582801149380072353371501447873299763517400736395188835288014813997923771458652943687850011216435053116210518464441431905545693040741081012832184358933913263380396256596357573565835709126073225409099571622143729518683069623599109331102540478698365990929514814701677456468256478901010812938284391424533512893080135848074389614717556680619095338125696748739667008082391197322061732953314154558648762543638391884380588300522326229560788006453920278610751466176802323324169230644041987110345036902445461753744090785582536876493361493426620842132087241867892129456675155443809849964651775145135828886772201952546254199766400855033424205232159381209301525398047320773957209917590173973711790526815951309024596249808314995414758212270373091491782968246888835815479769873316413130664924605098555459280670962475421667347162678217856112531639068857211119657312451040385133716738869971496106141490475304163985758703727525587170767085278167072118082022601970410965690195203962873919310781106046418947761733903794597006616822177612817131291223055748979079447994037239713116245376403424727249883988266519830205351545534778282334241996331293119799038219624675796153266325558900173521036122906488642711339050566006063447479122524175912495993088979287402426272399530625794469345776402318106060448183294137249482062895775672384563712396945345641113417018760236634243588310326824248886595330092391036661358716779125951941052658259187916747935432571206231702354159170496062522188403613975677730295217839580983792204649451905133301301580624272185679830933376908786534536589941695040300324342251329093630751589456157277170434065959052699546030598078591720339223431080151482453950115269711080283328185963306478313809100245742184487196027842878877467660318350557967625919377842839902086421357769905794017333925751632152005812736184464803301301364685332326268722176793885070852646512002364922912525707830512658847097758646685815615773213952511789967137772781772383096231674756398631169816354351280672455390007727294916455636528467452449199574496103015808548911352898646935905408425197164050901246690352921023188273892833735555525475593020641405439708601242915232366313237815210800176389942512501378622154657166658181692965585035341361733278481567163998905096069764987725378196735800586502170093431683303907349212856631414765853833372409087415194097645222507263607199191870428576140674022050911534542320857772256177029651619621840259645049629840786031265270934278319413563706181240211027560250887881872011062100203518868016070572494788157798724656060669060096786256372836173325245590164016187995025671497137636083969540801522442790534687704664604204987571747994137628685816186664499900156236642765192158669151870673584472572921510987344142090034261371470574994436443041449742611804282832560938845394417402238122557989942690485648593791687987389885539236775766114740644376598362968808638953532737377677027549945959710440270813638387689318929475222738041909566796037100517133494478683569712653708940759578413209269570175677972741095455653686042434519978913484561767205191576261480596002729698629224814285466413721776754013747770655038338333130378783378373730753094697614504250575010329822413652980726307755566875138621808904915728145464608366306396911024914265316876041343649251369468567412125841905591537780760968712519323382381517623698383111781132220371616713447784536170612410354620586744202624896860132871787356415764442759503351459910215305772924319844732841515975430753356207951701660106616172250875256828148114224994127777738488689941043919225333911989497091477203756309002111491097707179070119885227567181344147879602327786609772584118282064535082681260337342587948119199723852878928016155334574681424165594989432601621277821195410856935770616144835746982268226652627936383752918924904434815371272290558322315471566925751017188139126913714063936148399686656140682826090283468271392014778338312524235375174453855286598157059154048733211592511571084001172286884736394899022403054459908439917149980733217042151320017779119400796931189767091469833195400663718646362153231075524345803696734873956126293719989980066865427245216875037667366377405728923033945540579206776896618687536289402544814889967041317498789326397543128939578859702307981738082544107408642066164707833248148857798377280702041183413824550629105269243699959570503233626420210299985403654251904411403890748794070479426902830229369333146557796932107191996699540267372797236182515277212078224571716856711667705377589036872916399639122978472133796004939927129409766379642770533888244811036130168289558432897602037036609319923929283260191336620515794999376644443946396633710859796555811284801053316531859024745288244588466479731086731061800454926565722866105142377785824163632466912281503367727668115962008589563168681422346882012121440042754901702441849011908700085095111687589548749823695271666061539847162247662690606670582691892531980858888684476766449624747945015757310741587510829764924748441715249393060729523776821445515589639017805922535095596458420305706671482123525251145056578437848799076807895711765216067005498990578306745369850987978519196569920729223574651212932937325720178857592079900446347670698173217234499769193424720131438724729190495387264972708124633544990163252753498100095618494711787643605227002469426190901875321456106198215582052032670177145746402775881236210263489018162725107184296185440803390087584911703828927775341453585163093753084054006854068463324590515034714213358623487096955737683612706017659107647686475799412407145673807092704900308820747114456024776061302419749948284181648712713531881456455255436596843835685098863498345952050569458598688726841569751888867207986879970109501221579267001022576982240444914776665680522257578381171720815989306048481982143170281784299210099520509113474360827615764845805302835138753796008782808976951651627535618442027483260960370529097196071897237726733050192973320763961230701617627467665051630965172622965866251239010612425909425980756251802203328943633437757891246441577233455100450405950965998866107252654303849960650405188992475250366830752265535386455642194450434243805787241693629413021234359631270033606885531175243601091628135355560390023129909980213869816210762236097433028734611366884517144435431766666207878406856587841380415655772534364109762747175988813321931629626017978618797620874360853677441908915639355326662538279608242695852291868723827613345169987500422867759319790730929053947250608181871065543273139171859581716499955163314993855556242107584362762846840606094349523375496766604836508356344775494020839915129820143754636824378989910870364416978490099907608141937735882683941688065942083568292986850596016463376076342935911257161613920109615371668074488125310679664666932995950155713529476822117487672405395343721584164109362784808414611918440698682784837379492266766157062110451638993627209059796052725445604356845362288449417682556571076789893420386469531116204993458587680671740804152704538616691091267244446086460031595461913220862120419508419413600707797791481114850604697869300438166842357080288174217286628308594839111338496125851635287708555692957818562883596635262026198782546617014738114666333214740254042331850588289927767584728925035361772423312445371082236029761388818828099069582029561975385668487956077564294011750532227018856888670225102246560669531523053898099602242595822704152627096387947052718096491160657614112503977335419933458099231420138553960704179036389737491658263010771978129447867413506391922773944982210524520863362673852281676727751840250743040220489216130233334908933096109782719648927693960289442037487607017041110743736426537356933800507607128701063632738441669519304555356840443735332201527272323749313658803327786430761205509180438902129192026674930219993900094148362729177191243455188601143498821254439098535302932933943215085502444459369809039357107621169748833689083530196741602511784238263937906808694512587016242808493956167599133916020551486771867395424872420374421610036795999503909282803748779213587353781355431038289057813991933097297260257377345878923810146043148525620932784168117731139104951253172136424999263269438467464015318200989487905877525387821147811553993981401886728293060507225060881973254285041671636645915545776412184332082493414876453338407287059990038884344261404314548687567780811201310967966022910873947854880175271258758124958744394127787582268790594722374887774198740926569500219289122812718701867335483716325021080826859116121299188490919883176773719276587883098698551373950637060703139184155754453547906647238721466633991001740793130339306192027525870851274368359489375691649375686555349078769471163126906281405505235444588043279029099972685432721423735241527152662200380655631035809646394527520890839913163511696171954656959733838498188626187221636253016006075608301029998510019845463251331852942135864580885392883628530463195364106102790567054747787435250179925605111510447200728520386030811575908995590922382049099564093446377892888788880406732311863442578093946647108766837057120684412210910596136146278585762661370935626979759562133611185035433617602888695969286024973315876692788156927817870112064603728884036715474765605634231863407419997819636895661292328989743864199853653303645696323310393149728140203007422240469685566479474767150254103196979863309199526055631077575399664744151993103485601771739224837651971346440746809439009023460235350266148725109765385643632286907024540845602192595212046145397150366017230758827572921446300544997406213882416863916687819827476353343610003147420832836398572865768640475404329418106745810937024404328561365610434621133551461026847545738570862217623349381547888660617877524467669246251391717292479372686661190786670282010486226274338173783816118711969012237893508315297742440468093796885628744470426837424416632139029253665485352563894871512748180364342726802094625063314178359561771229521179117299585241812674860651760028120675791852472654810507943902831911722948332476170605017942377691801830018954177874012661906086030198748469571524448874330923538425377784545015201386923492431630589751156466412360755072521213860085992895571756655199948995967952971361524308095452727037090625569210154776813951624074409811612989207238640629907483804441514133191841812719459654154312613536571936536342854232422217596487579733110986096353912345999934725602431248001692262810827026511653002257123869068228778369316318267729041725490768091409392075120461753925545979442959476262954610698341599705804591251610725915594406482219888739374738934630903645393337265947438565721815618446909499029858765976541560127186544006510505424885174131527449722058000723239307670243734582194631874559591888012300769914029977563471966528481949064022745646886823697306154973674598464014069080461961179341298637091420450483886137274947064513835849166711256933239614249677535878585892057834639667760466929952713182705678699556800718458023174192931018876578873862822653898507251937874185337276701280465538632525321163572485558385386918115281373695350300370572828262825892946020576681497759709848695415520571613104487264241536866754801847724867716405240934731512339996264777589058923167258671643028183674533392156616882447977568561983710188004286172904693115434302031987306975533451265464921001653864758008631962311375009529614071093730785509820679945760764254814424449845397350291853528675006927450085822807622874602519053196751917040116350389979712056804298067820497776083592431674665148313552964851243672546052309965988011084452382930053465994756836505311632292890428601970447148792168212530478313969729915525903429539417207843125185921118720907552528349022659218753898293575496904647026547653247263454642699953625093806229702481362319014659402802439511625071052752754078857048109120328485696511935071538786395248652921535794603851062890769503267584991110085851955924385307724521406723929292408906624205603491008638765624946961907110664606068498429877404853420373362833778037409291579616870709058401622669103694438135916562868827760982387668656572574898078882081040456783738761421095399190825807681301740870946923844240806864932723342178513041145280497004078906789722909769395615990423845164526057456159475653065064006276084823794122477226215337479530510507385843443607570764262814935497640229987094701793284056939763752154616142136419757547649719234090180268037590975187483447220078946259598143968764875353464447476822995756012646163259309341857240132689133211274771828192331847802317762082937591812234702058133788195406616307105556675746066408155299947060614505336736811936366434416901583520037245280968978106884174913536594710197568950267122295887988461768544551804252929637941430928802695413549142993516536842993116575834389970343627256278913925737760993028792503075586558903219236491545112253125926861605918082848221463421742394051956274098898617572681237013100820722731251858126989219400161044987961729172617259772670237428163560726201021827645679098920822860568972828341090670899244923765969674229911765370742608706213343761454503553545461205561592300156600090046037203353138329424758677837187676896990660342523110011975039882727280620531671979382198633301682287427325899820927166499699886295330885028869475257764421927546546420169894456712077756485444688510054366195155661424407836404816046162612184215698656410717952516082584121673568478284044712791392264402308149741749511318354124904667184768815550141874602323488673943145168879814377816381540487673953794367781862742151111032834971053364257591275852671750611768240300327896101081594230966603836830562520455392748682590790864229779406537708703073962246341365591450416548383381241048254195966639799922452743513565766311960114680574033337202571923290629182743973475118829034832581781924435786416025125612433945315341729196765902407659293736265948959224737912449671253378745164704352905202178516628796439210103847367525563708750023458990456881486378116166057723120068190950115309716647473469173902788094417193741072723463130416115080833977433818834275773074590027890980324965562680319369155365981838752771258385341843326712997388152908323100729364841764633146635121904732535267925311110032470361824868493615944764143712798172113588100889243991925617814606930766510618140072276469131487238555097811418471199999725037826553231639387168535227639664924540856497325624126647527257964913103599519971048416017441537021739038410434311852663662256936263149840216719194839098889220591717402391206493756852462812719665723462951359038597784467129046653824817550381904480056660592555452716030396842264864177013715114411273448197831111322413703620925312141286947704028398522081858093120800872554210545059621463564643494824278821559379285304395721572396658311623130705660708573567133348075266618736782521529048164807144685932761354249183366702026594750464803238714645196829913269603997685438067585233251731045647829471278802343481785537110316567817393238278956563183183947773886835839854685740954376051011692499088214795963629650552514786038045537627908371819473730428549352445049097545320542918206751954950173303338808016938268580289935397938309082829613218244370796729792567998093887851740076853022675177546126884814299728271319392385896446010342960851873789526031725274898318607293156700513649961285008990542633221135355142068797113783073483466774873848607718868213029411924067252655316866828147121201384074984386198863479223160210959444345120252177739914926487552133477801695987978767998454272735637512086882724487049000001974841034150960781759244342815395566435301262835049630952107466660774167092717999098433932582770508234764952767576099307561020521028663565994643292176377468493327605230152873055059898695526615927314664840548535269568865754699601738149711082114695383404650407987117914115271062426259124449226269814408720161685207752428206595734890544182004815042047719714915534431150768571565053448460972158015792396112994468129515221694988212786360029040392643105101575041296265079232154830001990209652443429344812764738701497946914204697115355571817756693585130253998563859115580236551089480576312680948157703736438461218219142123902891505176543795032321573546623030723821430764265803633916726916864616421360912898491882322595471150478306903856321432659280188117177120752059435536593420568178129579323809054110726298633205426664081767118400226028825085023503573189256411338347371019897978185085526173218341743742378399370007274074355165265151037145335702012032227938826987922073456054401674051701167947990886214401741441339404745812840488453629067904339226620450740982893236045949529703507878780064701747025486753673764181777666750256729054611949826752430425086431695723522876082124445241732812902308609449281384127149190431783688347925830685856205385360524678531360663815022641447041680322891038741276417099909458924153924342719178162351884965727099288500762465011089675245213290341555765905151142062157430754256333809968619121701407350039399876426210976736347390213209863587751655233056516134671288459466866339882264968110074675665332303163445110866694718124713374880642133029448179871075841387395169861435409787823489533931530706433660928936138752695418363195554171673681354083988175331135361764629469887971452527368039987840274934932579544917022138884647223581547407271050472633260177515257255545829731714198011312472301923095783375504164735717004442657497431250541225031728424745041520717662553181692533389491207169630866776783392863564093973808736597762290617869414473841562441448231158258917826035091374048725481724969181601139840648577211949392698422873283095509432966516346572963257614670455571680955508919160612996802402185629768293183042050805638059633302369333472862133786765589978710412127286844375838316007612706094975365452288646794657329856179759855415245790615674880416311120787723238269327272369700934266741880017209716267103358734109476149881845558700781687560670750731567985768422124896228419240501441835411962174078060971599321963497579242552534770783109073612650888076407502132107391420618916245310920881132145981084086012756894841355530385311734829652654971516380774752106862955038184877235553729306070779334271163390268157349161216948116379465323983904019867835326767351767991917569570001938488675589196385674938442369862995783997768232493095964910345694468652682920747298449605839781841776455057398767935161619042373188222261552518611945224832864481185391632456111087385158572573631151282378776843619849211543254717186008838327448807998594536785892240720129415279748763157338087925870817251806534742218458623262690582698634966437697799992364283332134812861287346546605908149457900453471780792630137563072454436394348797062037114121856886068351472052204363208996566044810795355336074752744306925704810398351575295068529718340560448592515434269990610057127440236356475874063865997978337103466711489931287311484853845413359258106148304173526366043333815981068680632235261713224285002110127776993099523102725313314894274428254744778773393304483998043580898075849929617990429722543587248996770777933502000326393016671503313620737646720586924566146231831007660773563051455610859281063568147360399295567437597337968476808937582388756118408763978251827695555821950379749282136573384448659167107030943070070502192538234034930935118372326021635699803354785337931166785860659775265987064996361215257639361070729450202564837102685541005565455227516310460602353155277935606317289084356449691718274555709263945423710250972577126896765161345205730365116567265348543145660252672086346430294860000749419818737499205647150744597957974214048645862104745555814413763988520816501504851457589281556999483761713420290635606085079059403342000988894950833348485366220203942076678449387727514860663053725710312719923668042610557792556863178388709259360799513046530923137461234969783112204501773267134929421466621573564482788161614854789567101558791355985781496803445400974656390197354041786170689178493698988388979373352676327808148492311043335003582268943475747376228054432508931194903869726758233399997849936286656725292683434755653299675881467275228391520369442495212511946097353397679280491123574235921444124849233667309592232284325396399177291039077382742525110386450466850120140907957039337109865853752042978215649564223839002500056176205711525258364967449565416615110838145221351515279655407704812550859373377494526615083969931837543495570050217991007851863127708677612732553752478540554178765747414475817786835212739346315142963400869950296725090355245107818059077616667150083648644414395449400782592733516911763583871066202615497306836893729720926586301985357801985448637488082118289244743957438166997406310299495178177922354273280825050404153455786863877987682918619947417280906121463734772490035968778339094245673344607908258515620471371116687901344459946657355876398371385157315296188640196209710492573650245514593328362368786725704850470383687128109319464949568460873821049948631633688720918102030479069084962247023973209534196820205482308283751572550610798923615147083672688819719254617888034369563284787667982362335203633457452962239273562109216483003599322105941495062351388965981617822875590737042025550591812033126664842573294974340315865239964394567500042971366675981551223035985167922918278316739448471908916000797645025878905032408683779452366531984555771836658392676272445308240610567466087389095731365565564321342813159732795098739021944441301208947043104346640476235457502185794103211470106597347156289827277758226464067075776353827566256745586658843611830844770504519146886751017918744403850520318517995230928067416571083700906603868155548907699512544728878572086197509151460524879490183972262873199465279105563241282237724757680148270165474182333254177180751958330876694512493351492019852678105546632367649958624904439958868131409022503115773676357875067700716169179546462809837208116965797810898857285354368778777736092619851141220550546676837826778312461226242074108013160130118712493394119454719769409396473104389978062514925109746939499033515778278853230225505777953659734296679771842458622651950668412954202060949542549109297443401181241895184546172524225597989658251602919988515551300799681200074595413310117903540017682303402158828765127634082533834559485616900486937384047328347536364895675415940807433447986125148438065028440937618494515322619941027540376676203469982092750168214392758860297048026249953132938047387229970201284615804678150924911511174886362410850656792607587198057821606327405673241248016981824205673188268946201942252980758074841618636125547670730741648897355782461820993797807203373470280520662675661541886950388744819107859355936997837588153037479043040341429656352410548874279490886599349581421542722208815145653147566229803652458917470612026727171133539156756596228140026826771826565501081643968543065109490745845039714870337957021653490497378026266068951655204154399602689725582787890417096707727267111618410602828868678704833063270437776486959474687450274622779780304775396753873663861000127209807532343294376671524483849107932535134604396991685345466409221557326233944496334734964091968115262362349245412915552553745755831381147390243110846294998372472171679906320379223983783722733080076164980035346348444871273466927102944169637681198253068335341783446581765591863535301920028199588770780446931640798282805995102682917400758487417823910066184454165950660483881825362877682221262810074405534789213107342040202588262683691471470631392679170208347636658045583899327970220353956254675112097625750587457013740851262847183825236963457734776443192429050306558892091711081430910291255827803334396561860193417434307618136699188549510311504879674983709019594433849803018631758800024369999897545022477672918654833293577380361749256980386706754014945077093156897659148913888735456944155526145412721510820547256317007195885579648853333447044729029069533154703919122277282911054339197042480859441182127290600852503850254838898696905891529426163080427864017011911299877783838104510268159074508419812429541969299064630704139250515654203931646003755506842430161780465737133042699132226463878156634932055259070195606848732296831081790329397694938043438685903924700508550030182484824694106442676755645548394640280249173202861942270391995854530223465465538805470689021498261998092383768695801001490154244161380811165504597936653447335607719837527479737070365774021592303794891696950978954015430234156837477776803915093956209628407607095840346288600412445520051486584877931762571024196402255497852590644232375558407991897447220024916391571871850625142648342372128970249511547904056158888628000640547332457308966285065786354807057256006115267712530192063904304600169857052546047310688005550809169964632199285112298517036378469979064457752278391335075750674522236964205960386025736858778887767982291224895981130442803660833683114645762000824071246726086022812425296707569367095142800901274932768320299785120261242120407030417397800319263126384002685129046999942692644109338158759341403386954714779299160550091700819416613149892783146285679267933642948594725797667604790247962118651260182140277998857170084686101023902412549495128940096188850945346108872654868688734008596781075487031893327265540320826454296860026110579096731196546581284618508065473214496458328532672711292147469283237709595648998188613252627265122445080516204301957696192766023096353787455388506186387404476976944500106836587469123782671726213473716868686293748419751103655653111141719973293621253568047981694393802720623890912116040870992405888135240285570368667127849227348518019292891904808255555198953397028621093130363014836990818778047417827699647657643837695646102390902949225014751690670580233361637374866932755232913758781898916584109822475193415933957379993837168448068925187507662756507324004193907321677921458138945819644494633932052117248439988361941865661877612683424827703100999483017671966280081742225194127299150850474712371739284239940806924563494047255344756405995658435783424561827812967950088153370572199205353923760082357801924334619476252454490941059275768464440082287992679719410877062499207845531323591054271737848367289808739747191080119779779085462423374880614323867048427889200638261212599958806012630488795191242809846592934188926042461886583104563949994658726964517017675176841140514774972844403201143050777925065075927789388103567799926568955447304129754015785647488318231798216271903507611198950000111554794924111691780820758015189997438444130712580025009968365555391722904885073882504588480717818054380879665901987786427843588763533562749260450970970936721319654157222493390784910096322030906502718526238281779783490433951322811545040411004857272298715811444510386387025191504753010254189015015440456343243067336724134905364685071077691799624162226081559792092970023643689148334084195331760853998308755346424312109563342009101737501107680823479567999694277335127440047515808477055625300023521229118632468299295656913912942176768531252025655708827648068558206283183592845701851971809880588833736595176274157131031303184213958894093409893906240348397675943950633432784743398888552459515277760006765723125929464219455151942857303407153393527195586822548506986717329217005710603372297946264741132036473526651595877884093742782040534004600988788471350665725234818654887376186538467499737206786175024388940831836514122034950097392025835683086314915315757945514010388040457011586853745741190458094559666657600496838257825359278019032181019066000314334523113828366403918980033865237265948121480490177131358921749046760224084689937203282150697616105001026989699157097048326045803093651687454431311135898302650250015804310227314906655598910885392956458382035921424328705674764450706730302045510197243213512816670557112366398577421490014395222053986313670780274550701827714597430681452628739183147135261688322880547438154460695956785598694878884338573836120105927510984868356468902331620308358524621545161577359977522121012400113983739070065724741499217941154983797383173560974592621916164591989865864748385525742064141037410896922369958520734250433719019088508366575103945693317815217401733025668137154813843559162441976782909752667621081301310306252626955194928383045606526814719853949775740435204177694026555627433951908120501773079057116848741377304798087301888041891103797997556965261279174989616727653646464680055190484192665983574936816935882624587106302649956877891529832824738409131000135098939784623319260409076234791834096369588368810200883938234263691304868258255486022431215489661468966565978253683095951169015940413385895401030396341786691815363287289313719257339926240111785350225686442635904253382299021442243824975245628695948955162774810361103191508125118608177683530609161923762083104875929090829005930778690792539469090511654619068083418956118787714156298769353874226644675453806520767146128883269622776313887679894735089547060117379660140252769925135092183917480525304143028025670620397931296557327208449027376813404084676397812158383987982211394609366688017765557218491632333978690474700777524694795668001051925902140900434791897608849213471344056195605419750056725342623632492999400542131266671394844136805600350409246228215366358311727507947133090526641423673448215297891996870914855750744432823625049773689998320256627937694562256359863909361113756705335619105408485440699282917006989141306021996663370495126853758524105271031281509165287249962385856324489298726063841423986065310179685894281154470191732145035527907155597137206845783148592678781720138987103277496014818152433063356796912392595691597367931109891834258257896633370302586087982629792397206601644866856275808811252009003262140122784989095961283239684482739759236449332642588071156429281253969916758960049645502151319275712100266518533277589862770118992428505328338186505251828207981455490091408493382561748212963232038896679223444034096184863300941921424277681455646587175103753751553604389801269324911828686807710550004685950970516051013495067714992887844820009727500198545957417032797376601518465446792564804178985591924303865458356945866881129405796754284960883545724392531280669779892869069050694679197540701975931961249014441202896689053098019804756722946851847760283928373388473865487993148830191817143880431573220335377264686794833897831369659325177739726981835496476703010819952022182619803375787216621922597676673325782845759978709296156402188918513183763890691194866203878615933188340102675645272596813942452829719661595909392150221926447779572116005070695096405562059289497948483505009607112111934961676716247638148870074262479120651528334573826622777572213698254697995314802995633649667557518864969081694434243053718476432075703390997183215069966181519850526947773595514632193252431638440146829209645746986903234579601714912878078240856451443029306742194335671480591402898253160645602497839207906428135225330869263020596317648141496132855588371258154404804844066466065191015474586211303251844871646785860863245989955509609200377475821432737364844603199160852824483973773982956811247436740100209862611285029338019427333534151443600154072178754143334297761469190632691039017051840258947442891833422636066335482489212514678864030219087494227114468403093930508564868157485197677934010148842662401954139131170067325027871805687749491361197105069622945588317123798878253248703679753143246972011531251192523163699599140785411365352359481240847011729753588674301936477251779289029568927519889563411181936312056135490315845290311681610593015427694145134811004188264995237314864929563835158429895658943342873053382470431057353599253068688845885498230625524968892102193121428393538791371190717511680895650282603699117042338586536661223113583183208857042940994559706511851990830371958095165362092916443303072815007955344372891153137568140157993551383604146423427406288398030480781612861528900755430316990893108864931859557924425238778413654945816157244310380985888594035888224818829084825033340651737835539003127258256757236491207256377974242985024306200456962761630645850569359299884177442883635116849080304164618096710426573493631345251718258745664832641806599835770259615262417695179609939317226564977168847061759919871626464001610024698976121458571122564803723760709028111208263273702438098773894094986099385322654577490234914132632755924849272810478028668842263117911499752492400317756155426743452056838922119396935045697722742085542785572827161373354467570893595932921822405921893067934537457905041780922679992411703640297470186844365835126604812913179120995873029883085492438994769739668149880778332553757258308316242542049318990393238247004817007528049725867717351390332460691403787448608090536940934114965735599790545139147802450805727130214166678801457528004885852825323637668591451390962210967416696072242187885115394435228040305927999966282766934084846015953137155206970662689295005264142560328295608677636221812114497586188962898617789733251123188177581964953607797009693539185040380912995205564629621209522539576196600705690342314876468565261868550212776173194168422958825086659164513286771630531110141292452320387677795404792787654293427155613958529745787643899810161285265777821454101029305880185942812540109475103862237205016377209124688034160452961856880679659749922087982881217713063162829353750286786228758775229228412797144906334872854449597371399281380674358003960342237268357318199476342381394394654215844899318724103002820476763462954791731713169576589648582337125652919060264095698254427284812929227901994347919357678875117417325402080219477990647456992684564028689248909638843348248874226436354129607774713391651065416519843657954884010800383555519453423167225916965764846465984162478555305717137853917337764538092149197015748507382179363898080632907981074348373713837085320454237514158429121434209275421108073535391534352109345813700718542294273068359595183188974053831046998611084134870794116222049416273414404349278489079827998542852809563361437757050901950611697139388525031193372332721390414727352512306094728818292362461291771813195685375483485544964999044230807683556436848052205145374645638300657833026873513381485301049057596288426402106107989761951641478146061484627823155632565103513300018179702258738995290992087970241886452803286949567969049111464340604113060058237186521053046743160160150595968657050963745367960281994962677822766796480553487512613242112829906892290212883695332306416304799817757564828759045466244965049202124152032012674546848423327442999180881395730031795225472996025618274164377292002274502991534746143182690250597904213167212588139505169819098069466869554866817072245519906745480209353705827596389398951698565147816960734019236876012412175160313925499039513573490064766825267339005140928283999969935290238870760116285819579111255159932338159862718804572376623257613171457153293856733163804463100517695197074660927700281435391069619805209128760653361152069341948692476343302734570486050488988874335029449344935073310093894539100991311086831042635782181000067981789157165416631308403567341671995665875666755298176896435662462398040502769064186706930525293347649806247571967806036947454543773841192029185823562073083828062037581398000215486207321597669063454011694744830866495105468141985116188435030841282083811764004428599372059970714863566283614858105005758857722521737654389728136268408579467972836933253940773353268995893255172151740877916901533236256022341470365369352685689447970309380698355839457912704810419103987498808935786989365079204400493975995777855426422090475511221359531994987039963193486999275121436572752646322198000282463338218639708329001495383601456979752176312021672144259165744291177169995651862970019429537387053728014651767178749343112058884015345648756256174385342739974729381808899319627862542803370185527420245962042661015063194030370307936611549862120545056826483651217927130847219021095241674316334505770052476260260697534240456515415106888180534135279321596383968467009142995827589203631038776118558701697933086633514961188687290124705994607544395277118453483275243223075238935840939157472544645975567705968699117537279261711685638401500668591819358808087558459856192872941803424135435512078674004849589192452572099832960064317416661144957614554053808481471183130619888920220635148167236863074041207591570106046300388947683734368701782405373627695836594263430846993079738283111804310178166374229762446941537705215447689401870101058142018949479485155575190751402740237811283239993748174010244356907629602079755343966290084425429800839192215384112973583837576855913552433184400354838753270836522999424832161248837455825417734719000044807007234221297113250084588447966213174723209364381059269808922454880314585785236150740044241123780744922892220119529708795331268887316670324799476846530119763374186990464062821911605401639017185966094864268982191396626518565416071021400581241658211276152155185043330248477157527260412398824961992866700640839866232108566052541065904062955999693103045831436348232679147049176653697377712411576887724924460902505781183198157659430558772769381233495693151532809527092060649600732615820670856837546759353053156638019465258880187636449530582972818955526462910519440353640096462905483283809916425800916224835474488010926668461700530896848358573830351582980311523401855620490326730136180025409846135376223783683650248030741237335492155015800914668923724379655676760580265715709624873518535592658187035606085262656256662351791281438167513952734164450928183401786742847085926625614411761096704996913164793945687012932173242797783481346950756810101265797342765902386215433588832037258975995644941977572273997559465568275714588755690996125823920532318122032230669124868401176878407485053533259593896934699870373336495113666029409067873296748713891965712145284468223364214754881598820857318314163311494826169473573753410874220661161099037585347290498225752793232035489748904254609213534400837502478876302128910102917298332167263186577496861926226378505507246687081334576922765363692177750478831548597915223101109049740113492045095053513901446131087852372074811612010752935998207746159206059883390065535640917773324503180978676224199163870107298137100389127229248840399747471858383456641813527888588871038658142134247984730561566330642968397817477993894121290810634443244417916918966820748944818423264205786866167072669391552252430124662082815207877021875373657340297369269281826751135734517830338482630515373828520621922260963234243119549112179517915898593059094398070163395076002057786971755373848978930228813083178995256025469282166313549861370267402532725297636020460827562276802865375340317331535243518148933985534905707720300844340959264042128744425631151377263651409104464291999758720005509110303955479325483693063033924721921338760084048857312856083934052691247372285209385203676503146958399929583682068844013723117994679874702235513355507757470606962613763850492723878654907038785945036487781229122331953730393986221691651556588197782223858714419658910918238514835771712129870408919114677470481659323990174859514301782347925363807410196564361430391047918905895248843811805210195853164590984105962137417610077404940970002366613117650777486972716227895100631654338548680785758730609081126278188197721442501199773156131695023652865508162383986412135128503312383293861627589448803059994561373198296817242867638300116096974625868225896724064562473851543941349800055795467088774239680365378408748402585072852287524080612557779140493616324842289050174402986130517359967523465228922988050429100438880719409146853952031640189278782998567006934593316363096953597511760178438943616477366628955847239106801734053166961687830329734494018314072517362074960641959383388560833597488859558478364513683884951371225471624393336422879380597067250740800316048567525868791839148080248448844778628120341584204924424257873783085066418495545296457458750128730964753938739742583931175228687352803103559824399553665253009543720789344700630468942999946440978273943310808449343754768291769118175436146475753950872889430692600484039879939208629661534588128455943470974171711424055555412490829815953083200723958634443408780986399116687026469403109420450634243487943053240152514831897178205259364049139284640636800449378961292595383970993462749569443191484877726405877301072752768976537801178097171151887907129781932233690744942797656732451161089736386352438855269724560239155938601388008983682778659319174673424802829091716537262294845939012208233130008592597534168562241316252781332482783174752719246513980051885597297742355551198597062797993829640384154758831850046129770282908179492196958242105458847044807420821431506737467050086386385839312698841938926876731537071037920953909420756430012210614053520686397753268210483516709731951297433024388391628463056241733789044384887989730752233240745004461983705223061715961167674547719124312650310272050056724783278518737661029874834421852334862260043952199199993796858572311892183846407997112219401503057427706257119139239348637487505724346775582351404698459938998021744154887834742440655157854861353991179767260663049692172430636994461812686161729248089880752952224212937613524804639983228447495866394898389805245595420922643736159281857368949697947409654337117249438997787915177370073013331268926686855600281460296269074686708209021842781629490539243794705355394204834403448217978820588542598811078607842726369373657401211575367241032347167625731026541867161888647337503488696398422429197135153316179960256004631766945743791013599565772628298251956544682972733949757260591887338313176421495736729692376635357082537235510031177649978187810544101888961982728432217087653267357113459481651640925341331553683059018472357704828092735311873802134746589662389088417893316876504555187159061923154375344991783324241043788295683980016762316900263631020653480535841669925197409443909855623872251430752744041760319111262234823307937941211670057438436499473539016693987401188802426209625613719506431713474191222206576678479780481411248768767451775583577910012143968799859270598336530988599482611768862764642474149495111408146411545393373097806623580375501833056059969029110838819789985509649611399007029033320824549881586960575883572571859648098367760597965122374080082935849656796296268025543966094539025057763490173438999060115862582500783066786594006839151833954588774435567315317786739472950228327928571416639785038640082971233210719034744282382891365035860458140642236588425915499116101394591170601546262376255015227011346464292211343975981425713503897595479510422809637328037271436151931171728586657406682505381558340411163645136874041157638813898109993221625072410498615070033236089936970584575507640151921174778570032766571392742935352745500069518655894019953962240120033616265799635363196757240442172031786573141104281321501942653732783028284316220981297564016810788378195879536021406402842697270149432842200216448050821669894929578942335739719106194056958746311913537098479152426834995814396862688439200734246853424153880948258184609635064400890818882284857378178969677201584582732149897650992347043493665845072121657712603030727814403333855859987931840468428795643150380845820702299695449983879283236115831572706927606757977098160052555823580784071835750219537307916688898122231227726926955704625221343219510445735297933439632201322860719549371697482111428826576147980752250582822281447457494403502233599137181503180063265881210565687782131853981465420046059187874311059951568386236370525266287100312982357937090077473201699989222124762036061315830524111965958422744387999230041861154323777624532823170471312684245051936836330152572403057098907473931817985235738549587529036132532529099582034781670083248919243287165571621162731740305995703523891374889031015143141518842867440532254373905535912828171499821370420419173366643555813248970293351255405682317542013594372767502216667777654734105333524445276573154416819741168774870490935500136497748346950191720053984827485703245873184341135673133251891827976926464032558472616958061748965636490307999676441472935601886914748961162595214125393650091076859109381389147507705338289170652334236779234329428995942412660751867013632269835978334368364445548222676241096125248558278113275358799329005060938811734288324747509844241986272834557812025891259370733425438471921348995205214623322814503793500476867150538871356600998752934499957566115439534321711757924599858130776521895427433439148272966064377655056738515191018849037070143193034450249640091737613221683174769950577557846218603225128678514184861491527351042516700742147183621048979820701102834666210265813310340319747174025225916936094452342231320249502064713107570172704034850124881968175811409814327138800871052608117589370886187619529081724896937402047616865449920286972636072108649622189638963909970298863180471975974109865189858403890257027786703316846845474010938669367490345911194036532016548337738478986779857041910817109635471593305533674935413558824568314658458012159343783851642763914596317123406452504336510000383032264583393747317728076549300594879142766897135605802597414650505471242131138068992382120267259607282466913809483473414063257366388156222696086769912213247803076552640156731470956483113232337038246011111235170531741843712337535267667434750594622406504426327126143012286072050572865774711039797559364846247069309339096695325957800258811111354853336901494738416509966633584659537435433271401120780790343783912046741018938501746232695479185187825411171553797496569239556245354656569635448612212338446691585364971581515032308858072358072416951105296675388967493853879469639002535405034121481158110229001560215133512131128260592982608795824085686115622298712422355272378245294142228337124882079023416235647240077892553143319032839307272580000148270541835474492728386457437693911714203738316418290849588818124709695755634564273447559413341982283943786424947120431385360786282986405096934560131325119861380386715580998391110718305806760663182146133637840259342577033068222699232829346981324148295778191657940805971016043434910942039318242271699605250570748140668679609648386293647898872557576807647412957523242104965505124438141897785086557737875500357701215185837822500864891339796165082318658208271153742516472581313943437782637824510611581180375164717137106651993919522630774603716204852000673723531325289701419742705792301840259600957670487214853200388584786617946208506583431595289083632890121933479612710276551618904254717632805495799331873199111668970785479908332630709595227258094896292023402779873112120373521578979572738286776369171530059088637870346619852827709252731641810708555333630693186647770757567358184638194464327246550189507876701145868339922332218621061306736021368626130366436851464646140756691041917734334501091965702762870276918887460685091913533298570788926800738812269919731738376563169446417949914064572049668494318469362692079312050543620101406628443980273851366425936988058972547142718879601519684065846389462021792304710563435244799189545350973029639698558419514003519905512928044079929225510951946609913793206495283318758461751173356526041156788468490272437100080633169716421978140723055884746814513367732204054444772660073772973593824858927491644734786809067449276597103203316334509206709851652952868351524156629493047873511641224476042359749034774159143223537253779692082984485196391108938980352602856698381317851424586929420139251174276605930317947357173823120640672955169652104179320932265375191099331369591696538763107224916580492642412263792867792060457469786277698098187713467923576757835875449192866588701133339064171104368839704271331917419399160430717374356314005823181809550803674396518550244340624614254460570578067973438653091291199490862707709598842503423866290873841540348459809054103538776485212500197353851235741487367114405773842374046812417710976501264880464595522051620809163284730413462530414910803283072445523003304462846434849233262024921242526379285718493586040475386290028499830366159640708616642174493985714388133177139713308032733713548794847576434945399502016081096078857788636531011022117698874463659245920797463243246746344718276291458390738488567441672813537023042713487451772955693530121505535420133447266086903949714278761540134598908704174293220886194105426962924781855289887645178642138376021544464282936361137361696418004879462943293705704915003596501641594224310362097189216177374561304709707110623456496244085103451961059410464893311630738797926163336881597713983045411195149600984145193832436206126916830870327998990312969842739108064695691510029232343978214337864302450032113651321434877029601981998861894075024605174011668187251475366304474991213632033102859779247713763739355560917412822059131523952995418546877852288136820274217227837070379810182721537134114081192465616911904368094288926355940861034327571040617413409942993176712478941775669445456827280604797085090827272231451009399144222336324251373230171081663218864347777326326563023127090364125773145016038830038338614528907682647996458723665557257557489690001519211887584609741731799161920324846198820739280937942019933755113760068184117169513289163861212462750676811244817007271187221831376915460408378582052196792835176220448078419398627062029615162678973722573399373023818019524656821236914331987877539415718214339578786689081025358783439894195176715564984066352960437860329509085285858606523810905087472532883574338781588985200341639835077968821499329923246977480679848487980893559416051680018946406877514063455678082438634144876945027635089234370593868080088796927831775790886449192126613074044656875953596510075672060345144001845063222003982734834524632837670633745749679270163769239039439075195403498446089054025566499680405538625159733011155019409699539395126699588836966263189880920481374967920340188131056823284898712218142381082704785781461142632875103408539883031890286263160361654632293354926373031468367027958079388251864180498368808920068732831573683734403287063785020740641943008328403120807913325501491444841625147513341431303000187531238528236836041931985250752574759861806987822266516413829809540953479181491387860290840033035642868494980298771904091323199231324296116315079181233161947122449364977034182115652171007821323452865598200363413888567041389443565135425019480450613438380884952902676749606565673083883032708055629794686614209382460903388455776758094653005939954024694662624534918738145913605622744617870257879059483219484260161995523147060612431338684812071732617932182911982962332619094871967921956953036741269182673627470164246211720715571405040071235398010025042367129030685315150706692394944547730420322920854901464106154336598144868494126247643464355269561622908191050486477163736900577744982217372957834155329401626718562535820298589793314171118596915652393086324978542373305275751120355726645658844355419559811927689067913792809453571352721284010344028399071698691339742081803012259659804142408694534634377988297814709573541701752218364305312826440662617987444141594241079062883541489567652032164339203755531883168816368239916614984770143438849557400007497454890725440760176606308171328320133806699641063955975580257405004313679778272113876290592862985832282161352186158772736155271112287926359872183518280329972364980329283441085711445063085007845932638372915986513987099633232798070895073088031669284268756003506217196751300246695834261512362244767890487062185970482336633802140148484961759921792936006822581323773428457884424335680713292999396748410397671569226570316120290240840221536105053604991517880936531220208901967729409481408024064323178432729493385958174310647201668492925374273016630362876292798790967400530941068509825683741457483427402957679337513907611113695432905683700486413305858069210235905123982242175453770231087113996660239597453414598406659354450614430874698212010058176804972167883208000981111403307898166597491116669555816390000713051822252418396412007039026451662341018239986056906146310343315517992431050097209506316493717751300016555943349763276082853722909065580929656152075899101997707364031705005434953708895296637150116452486819859739811164640893089860446623673484561454928031260291366277859468353729504517323362944762933826027311368983353600764582809399746501871898898907101084652354421691392668361683718040880374338900083418027656302420462304995357404822029510601806084597729938680945204544232250838519139460632660147615931773763512922784838812137335992761593371308163809448892581419134564753143141160655213383119377212719291920455587406237944414867780711761408374027482158189626484898003237621506905598970131741131340040770803763992911722530012461977452817275302399060575032303227158257731604485568256560951291905064722797744124641957104417386076321636086659964523870553305100373219587536691175274508097958511514947776970530123589235979394868420471003123158264564232113948805395908831176016502957328497001003632048177355533485209962720485373059921395960735081805437049606591442427996561761828138714351351992441610047765454947820948526930128911264916535708792227143462683299748937173233630885698934260703841267228176340297617348989504453933847998157040251609030217222088791319262608803094924685144440814271745760783245401691044776632318867506256830262831393405304657025445574975045578384569063359830755824247000928898071631720246610156540786105110187235626335069498086628847402013228635082388608790952891847644813745104903921360421953415337261350836724613314607407078902557676266043281435631412161194311022124642950742830528939048442263287604202723572239145010517569972733684797618906524100395643760272017998753202488585846600733273810691377597202914349879987826679958670253770927940501818344782844474411875931481762536883380371699784925922918416239015097247254317581349960115594065351479903677944605204026908797725287333087078719770498281964114519042513431376969463505773701075287005284253856971333325125221959246331639215765284991533526361541833000528453540281561415795733332749266582152610029707483063912806666786595074642776784726422236259231113082761424950064528599163254243631251531617918446179849865865066905873052162206066682298588473936905596341754840165526415845076731472628898695511439635441785020079268116982643065521992115985334378757344697229015012860164752094806825321042130651076889302287334232014001499715453471606615698618063533833146884855404897074581359352662255049120610478677637458728514536312538330312670165014411884400980854143468176121829802382100512770520765005710134768568632136105511500229367157379638584155697507863952722412818492757210356938653064799689531140226297272024516933770344568618322702206594748631800938688925554075932855533922441073817424192559506023263546648500436735482152650321469152204106420481962544228619750181099095044743444775378126560037527157148766391886477602981787480623532361714891877931814064977542677058075056038821184068749803120221047490025792974565940120642656319407831846660604652324855569717327271354425417489019085239779883377644814866609788409324740760107030073325910419411803859378492096465594012956851171683112751951846685772334009776465040951497553625841305568476255257843503102840140209260297663318794275249542017773762181541688158163549079551349003043392125974563392371842306453407918821339167920209401624446109294217567055547997071902251525880271911107959876013645740504700071227576336725356490631709577764171391737945983150836219312139928994142437060714470063028170246274828345280771898518798179054433386758434734121204790718697328365017898448225623067940495760479395121816983763170527173708803989081198256576985791297426327506941914408979145261965678721460380217641622630431387308075850635004636865888139960361801381168531776519961275575109222099839899134139626659245250654099154822816310843148252037498027470635158334389054515386605817999668224468301654673782475446112648787947572592321286431272780148864465698699634914329882314224735336623237860768155238209644583150629207354465819656126734143900570205817397449210239586789749062010285470337358095122479629769578541960474667427274936142304206616179082983207507738457380717171212575419153851445173237857294266840157318245796621743194947647058452975637528857324220144594142553823532420259836152313106554999338085193544850606330920609739158060321475397390261786968485724657797016049004710503274113786757499451454994333385441977990000654618432800316054787482693464517218590013600663044468469288369053232132465106094084628267899144681272722004963795399942014049029121425269415303198644060760333130512409246165231568027019635275299041687423645919093666209457891308995603484708021158448608604898966747889842152148659066943374368996012928187536598511925815677906091548527391877747605956705418404880065301242333814867345299453352729170182001815358396574138060715865606241239906878254627512105142266286640272979061191035677533847532189234151163465633693900387759035320470490546627972356054682971187870202586209075396997689360917208747461307545568589167752245959533937412617888080700942970440155737922208887527120353704229087618853752124901750669743231539733041090551873458700299462149362599942622954824998330879852963254882296005538188937786027968463219899331837547605050106330760694096334766053938939411949646513920461545786019021400897256338971191030330484631516777175673361295427392967410386899561905647052925103934403570773821732001767934844228297465409156103682441865649740713314800449334915616953521538729171312794099471027163866028475251781537762557907926447148686222072692862248697662186947705707897205721253621722918070451274340844996780481532152890193852376271027519995331906339829681835422056356233255773391270112333808126500149006768988340315546217207917516274667469052801602203540518788190664412110203691984355212954260657405483826355719659795691066941585471590577911590526128311056155106020785402558594980068210479441421980707437071473136646085063640558661260243800541611849793085052939728143133493388696153142920740016955371346944764428030639427679280874287115117079149934098241850784123400512878590670280866450761894381979411387488423581303025957776994758803581745355297588037997672836412204517477602567220235423428789242192780996905671219882574058297181850614776413366833640885324373286996192593738239608559678825174208155480063931436893739833870666633302326063934417738995665182231694945180925415499064887036226056475352766400701865101024959250127103253533490672159751104356738343082049071131692098088793466122716233861359011215145880279958922563935126017261818878269697149737328825512240067561975830121513520285648225375773468409211022604180508056588466934264666545786987229969370300109441744320927493562994065283778332106597509544571904961430764134349262395450614561257935575644243733892351111034524694241221268209353335109062015874821140152476157299960136161727645786497781143791033712319596980885393666373872921386741904430132021387067113464941141045036271269638104008485920222415375505412161271639815734429938112033147801027059968899548712207622237696356291138401838815101180586154770356018177249480559711107922560787709324871302831710154322469661543513986437564698713455732843295784330676154747157672375543118007558451250533792483907949816299970151142699848446729481897219622836844109598152364180287331274157709290335626658587959421049319749975999376721333953049238599205994734771041714842807894672849892281239898975110772713104025704414253261786468335442200571975898748604733129041688893783992795212076704484171507541908452210730536446184282347207094169797125950550013093277582884023689059096320064422079940618262296804524727200700069069054507652545505428688699432789882699030439519548567013203624485484354956924286613594263159125366563411407958629710355081538166213213574828546034664930893713923687375375445292491539236407695953491401700788697395400505290417340172583682326544883872965558215687783915716766534592755653180455025220389183923426833195585841137832855774786318433209988045132164800227508173640866362445862498848564544282434375920889363951106995112336151956743841887600802602542491721475733879466238528934068606270165073311658800384241702866353345535096864994917772608240588516123583160767232216112300961031763026798394950058541729957838440758320083723005806852074931362086928725689349390508464755941884801322964882767993200619765701209349123365644156977749709606640508330029385430632401199419345018029223374282126016378217205163109789314586026532935625320510804929826437241778533359087196739401685865908559080529498652569145586995168897084086589929554972581668864424342850939964046236941672130143747917809466875784967373385202582694937881081162621132510166171039860689889867470097023556993198510341398305153728720508410069151051880214492232100109492713134851597469711689193862155259488926050274043002255577264038664007763300171718474961681395361472211283889096665178340680151439903890276881664921439549244207957849991486091434383340984958562087024385507525859098332365291864738935918821302927651973841739096699027510401439699599458934247964790992199371068383540213796041069487164118456975470812210601733693138013255183874273492926897528381026575423694002720328481959778538535408719169523329164171594689370370615786015047608907648530991790020287480050103270985166130213146836048768423204008644201371042271942091963527190402710920097309686762759900100876624203661942957532957104684356403760941976498256115302291505278435881410674064114526551973987429191254178174183965031286383076150768880132231973201337012443504485398845041687898314313105972891343702484801218094105143135612826581384318432366876912469139818478840027202828344195020871432215225524202228766893144774127316422093618144306123683774560486784517474872483533421001946357748877605912471740533905369138475232673368488137463655259702906898611954432804831074621128522178898095359743681807640267866973577349162719681687840972372365416578623719931136314767331233139283468460173276772518552472498134623003680415398081062246438097461692599902528074923761808793340167029433415350464555729908713338284165344830476824937243974124589522093139923668383569359306178493729136904423819163066796022260841141247296998046751679106594279339173865587146297771135480220710540068500924342795734519839606441442546117795613211555404961757273130811952720397488877956783378064989411542215507729461875296759088304356403081514641908862292053685047405935804174091247756837592667220917312708550604308732913321197918647995584480379353934878078105049319933260433619344769153730281113756193529187264491251741518574963378068283151259012050767113912169537756528684544754365205036746224530569298697097526821755482057602333254753269132176094387768442304626463575792103086681531137815720781620081935164963713809876747523767424437178399583348872288981086349784304874453532008184935737039530487737786767965138363257630149417640471010140064029207870653839034473052471235840903348387688320731711297190456677173401972487573387549130985062858037970365181752313080041693007597125238828230312429156305186162204189107113427155131978572692067256425243131770928685667469078048181184844997941595637888692869223972461888150068597982437854981546583333984855085142026262277963577227058139679572458884311871623495881160772541590218143883493126977263459491504900101173773125760362511328244646752556463723883897320973025449178292075649604675704801941072435827876221719156089671644170124534524080296867290886266575212574893472206586496364190455678745220297335023031554170683728931519426253777813158969438847274571029361535203408687870291189642842894213873799747095878138562095440024836910319514995409774385298932940623419349482367646664789818090326634329537853705724450026265598896437151111190259820810049692390045512042943413987105594177054254544041409945958534844688013649587975977109021917030661257826418226777755330718173752128350541293353505834615059969573274889088960058171561543145709030436140551247760113902200637504043372550427400995616053783617263063615400837715808288884709876305796927724333932084022414154684735307656317657070870752774496899619757588614412823744928248447625082796358488104417486905209994192887342241397099101039292006993463391160990388465417061840963769080130759737915153335370814369479930684610359330552833122841779206162532205882735838089003022460053829748374270657562382996543659563895516550231419320636416875874030518363764172040706030418926202767042107772738955019195760914291018394564464224131629724825276287980868717612052111869436042182389841178373439670704317904118373634896460555288612194838087385415373728129546395364691429824990693855412069039116157631747487202196028371583886707199745464873803208749339457912398719745692732774389674624017741123004972043028554454582540841361605328369895676924952617538086174992050196471646493116054228801423291147652351877545933874978857983782601536773327894987891027405653515345203389521711314611169672828886576797701103566186292177626592083708431347042293101960596042632968990164071979376095296153168227380476754292696400565442764330805753801441589063040685617367483828916207133496347120315580778599327381153261817945737903450929737982090578730295684050177888363502090095263528512788150361121231627107953465068755603440429740319509737875158869597429981728529107445536199063162445939345332923098893590757312241709323182949864081173714570344852561199227711327623540086466305619438148326117590771763981729365939962115287133193031871491341294654903757124005201575393230840951061210027071227991840583655156705735647194224891690942027532389233049430647022785734004235139415339156223155490845655646096320482195768654100347802030776107448696071848542379387420595540829626274413252245276554622557512550850645899298952000995244937054783471079778884449934618286970095027023623190161093646354258174319095704509623586438080667464958590237316344026708308595878697791094186635060019565164814395659405884247449291242295635910777474623229528947229043342899707938687752317347349746358533088226309516979574820472650925838602250994429507734564699323112671374403101616494976281649368670339329394773669107317988886534739339342022786340800845185767232603807227049075096236263177687981717992113036342368977497301155748404076272568014840787019217974284005940743095015995069003423345183984100772157309678669272532610619646706215296539470548376248616251346018452366465198348688398075363220086939403821154759741992766547780874329925562493993900935609795737799005714018460523082481347204941709254441767972954054296370745218272130312902262625302575442247769052858503187240831077622308200545359578179575218268907694822278292349899857739530153462931871609729182563261529087361554713321448122548733251346888685580495875691892011067241143222038487176151154157477250994790196083384461984080521172283903169639127981141464547285427157642552205603406852081434563631340739704064645698434770200715018518830472548721619022567072961989971051064278305486466910603975781795284647079088322004118528485468313456212530994684577740485559979131602599369591828027808772197601068779707862688007255846962044784923151284470109491756286294138447386199321345649952627343372069801140388442956426078862622584669993450035311920588115396843911995271744050377500151105198888889055076037800016115242484695381633079195558815000751925244429978421240756855639933246350715200415629552263801886511559599850616878297012590591692327661467928937973340375106084536065345023817821287777761421024548647131975155833404550266838546080094028209639250897797089574813337877589831241253489319364835156071845973191436432324844920667189991227247671765994347301368889366638800071485360353039018038583579587478890639924034819035594311981770113421365837032034008604904535831821139885991630704798371667123291246435280408830779701962598559340080852914971081746802944390385040376110652581956853187186694591340582776895283967238744324549849270620516779099330432158213806242878635014675364590612716840220548542156615473204446762681613680536810711100964490079732855504240933997629523502044110512493545426130812272672746228928000659854177967866095084202765672559767110609092215453508788487674702248181398427106156886927029657196448102378296618870377624579159540841593276024521609895046586668235269517291538544043659076230090664505124291098860424048048798412468087622482448767752566635172725969525574913974269780688587004487909519547978115656797288866227288687873653052712131759908873444326915153269034833958673474988847390538821557059362783794059031387810492572613486841376253940353973952316480494709299498061621750370896191957417587964408458659169938551565221821324133533758680335478147548238651303095084256754011819252644723391050546097764325412497638760488414324949135558879217966696560386674617357157480830845542276064212309980432364795060033584256156171117617649701095326639816478986618382017208275341045131453683655353651105420730379427512454211296680373310604214173848397990602828074181090375705592334487976939844894166779225766361488534942964663238682210187753789714655635312384737282074121221158895604459639147404848154145615421722192076002406133392773859681841487956009101322948373639929109858058729786830293997286368904623298417692528601685014390439535924509352954097923745641186185644276810242458864720150882537024102893049336252036037499673233744934219647946488663501330533561648826440291074047541380918269579910489664983732084329403130825416594302485020204147616599039395025170759425387854385711402875989299041360753800538082775198991381204943918543732429630407366266598591682276266954855727959569417073176088697571062976772269148469979137840734149830896783959771116024368544004017116413108140255254060720836894241682341678715707100740009023574263322733267806030844509855492153270501608480662945239908714463428651109643930456123945331514305853147128101173528824446128196128576837339848360701552230895683990039264325746826487253583937565697286667849002844297030108548134764322937975430542041132036816708069423540664614550770075185071106384115193776747917986157060392167294215755519262811710035013950873164714007043540326330743222274054223538822208937793375045918522519425915575228457691771736929327545232597187120423375968172132193126603925707459173755418824612402841001753540190889109838068227930629804403363294238238168100137810582394628331003229817759673720402295705629123176106676629255438579137372603320861496568720632036207250779830562762096733422349858635570239837269001407358839195446695005828116260678104263370926176532412920044689390501405013003224584842737694596308454801760546909301598965164412701701678956484431211754627175644049619356454030504650263191139137093858721998690200686639300838893853061817023730161746010538311773417077127964009669398569578986897080179135160495973793843083702410515876621718251920018868113046250458728396494170756587364355900062094662887444101376320203404827052278338241850809462966593289948396591457957950782675535752796908759812900157147008264115379338602953179430402685235516090039158192724502491566931301317009991065568053146137597249015333237472425316846316724976377419400532772534786749664364451363589966011278062538220831896995537321373744496494108745080076622235735859931332469439813551713191472673394306472685145855445763260774222703411841991715943002008036446588021537377953185014072463659539625878807280678482699934332498096491215460793721321641382056425546382156835179626454648659283780056798109415433731781562182886901576552948352336864523843217369263104453444382730528482735339900208909691167041680697122001131498782665644745000694057176165155864435779895603825140249811048932877389394720556726632581181593655981124129817902724896180364684369664649857802616473683349321704766931936980237936549512059843158921837973966816680845535358130315581160248144052947131465902015722004211266690145803341436449394372516949665666684371475910383731804141684580370610655081199755018647977185919398574550908874030297735377549968392584430627589673015617845898396559966459396402976827818370242120036364630732936032643641092044439061127594655456538283670439506373941011156559180955022112060151486794979225458719115091390203504900839905593359182790993794401675698096667361321238879364641738862436804421107189507164170116876626422979486770729612736269512919598763589873036953208898367554023051799110945320035946133997577550367958337253651404943915757372721762039645388775027859713602665154422424634371370414233897067740806698833345250055802127526574748380086626805466686905548674827061339608331588631393587442277343985612842942924361746963386888926567819341959946510219048440887168064292852030239600444232547876728821143560201680150361899681314472646639832014451309569680355611917373032079488181129792502692577189546247578861559555064168887931374504591267991766059953375518116048595492296744409896171937680660922548648296647977039795458347200919493979211395553357676634382072321907077238728575772327045881273261044198055323437361978208169058605909955245252063411143801492711137279302461039914233744390791644412002129736934615887363600466577276872083693629926834554114447684079850493070646470131539151532589487300109926915550257110635654679115456061996187147984795066261117591636415317038512966061090568672263954847608808021201758337093646724497968025397858693194184339672841994378382033012937863480320400452871562664545323310679678929284987771040839505030055852558410692254813338613133667195702267714587571531686659401619845654233245849995863046030683475694264702430491217538965865416650541776525051804345278114464666976449158943935665378652266050496115265221139295158043588102340979925193289513075527456704806957666099985357644630050829418163867442725043923204415979561405872567704606432402673468281043189975215462402447830100761405664661910562497448349879358788448010825096191018606366977172205081904648314841617968163886574196501646177940074103625736536585297291652181744499749927903741870865431688081020219973896496940895275814804914826114630071908492218399685906372257618475959237527436498606563553960076645458614883035238464927194436700744712379355595127797549718257210536670878440485594127885900820952623040983977515525181651827393281982795064620180474790275236379588424345572736873256640534948459713344250801590723174443820286540050171551692009391409838481223354007369181450366072832522351363935149227662867743895229603654131005748970120063720164934043817691726984456301712876264411658758304791646467511911004514015607246998466523899678001612414440682900109419164349376883350006263178332121048004350380537063112092645280090322602152865926303215745109233625262123562388976849408414065806535344609604845968582293028383035801188288757082251217934818607445290900911424855600895681043498229054838133702324099668708476651886617193035570443401439591064945793425909598708676515190477930811969555992571046813284621422589695123647294304825824408985090991314579642189074241321487488647459876485808898817021819545144193772232635313709380422675975958096527065072758313753936328540333399059929569479696392785408329728670825086254095201066900723512946813494196189222750608965084079873467374781982450691589409035115191020689828926189561814635362275339315536589177233942807017915807711408766940369506379699606188147316394254438526788438423959519193886797691717273631182118254315163519916014924554622126548456104866222658147039309748722792961446964675213184684676521383463307511031183502384073474476275598912072958737731706383059352196557290515970262624336634864209135761213940349885805697595981979922722882948380786028860848252143375953000361578624923212058906867852201905926268609811804087798254895934348972903240382421421448024462997536315220906884090439012773724485509463280475470508516797420918835941104724839402378763141523009218941812172090892416031593627137942642231569062843887830695121984686995195277542090458319051940698870092813568523867830323521801274569393189979479149497478352116684077319186772568039442070470906855521119114760888163635964853130273889784179619533520102892029855705408137735693029662488277262831838720662803212283866212166039322999091962784875337086172078841790531048987092719346617516727998037876128634550621282948979389407979170507889752251642977229546796152938725568577598462833039894675687337036613918014637984445030726678818295537756943441096856581138946995589888789335158381984390743237124668714921581862417693647525072227228358834074839623185096985835227167483152143603350269167649124110166638975906992813036686779809874382272036172308255213461569266287731662620310955204574262960090470117109610740587391756522563948802531635106316090271409435225315116149554350795355604957425923289658777204425625487019664664812118450221666150519982805388202460371632727609898065878212895796636529767584537452455070669600299067036242841692340460257167402804186108948296947334980910171887733933162885232170249130903915465683312318514923744653985123539360602152341962581486802131330199992330248501614680292737221114219389950933356856839531311141655080136797547738793617898121032176297794704709806659945484709685862413137621733831378228202692695605984227461581692599480879377435705005620285046795570339387508630089054557507857257805057820549921527870946498519376259756660569655279635833512305621516935433445949491619250967250562037874083609741824093651575136095799823789083194440970601855583003821028989105840709459443633049291978029096717570611653155176750521748023169158496360218968304768470158174119327947324906102099207874978938383093400882682277563090042153277171004161169810032418056491560474525596903958589437925336356455355134486707783834545092167941725483183844945951284080846938706051838075052675057658850072958765535158672715093232327481093528821053461317126385644908489934751852974499685805705988542697885448345885556571954494750935432920786958071031795062289248877294703792238922002499787333160778997475045241120782383479231597545021075659243511877475683274094393618692901489877832467424753522927752893899904674793365195661998795238990284175913538200441956227995078852486798539380471386978522689115771377371591776252770402709137560252590702210735877582999253308136741053667613318094561711972352536182417389703765533113509591961122980581935640252788763774795610022982555837283548228330229834325175190871355224233571898188161364109844419694476169483876510900054238219482224086869369837235390280697924358742672671459078112706351484348397553194531218972922516422734060678603609942513275413083388991429242805188620307036289602959469771941201844012955016226847899758809696358376888208366515463822278828961636482191095324044505149539926731848619693349313139370313201013096501206694853449675577294448341263998015097929533951426679835630142759491664505349610402152009619646143482861291891188065059223589660775870832364610802856027403332836094463068400508168673529342723074144716819760869618789703020743370863250863631977990904506960962009236710683755378157734437544219601672463976823989968275052566740115663904907809903172198113997185964818272977869218765440675741831888870041907200814680665418217883735164489518157733190362552515365336264364293202797289682483329928041623711111581376023766889026384231104603866929286022816625670376823246768358065067454231814581404571838317694971751054030313029517704283073642820126945451396272210339650959294139942921501968812486512432161425838663104529691303244773852977032705961500993916386505270326105800221753940942222038373555400251079163676391854551801482963528366284784067345013136232175110269011288729879638642186547525228515563585750446611460906923659753701895084441918109591646987366375225488232596512969730741747188644740026654919878446377297715961337411599146626823949452636617214241355994498249920198129354180866333212543861083582776375349189885978026256564510570659805412897530715769328561274929102399330971592249988245016954315478590381494267622169496433457609027235487590272674292389159162185508564028823316157055712920967461427025786807069904266563260058112055221899172134563860935992211973972621604048172362307485445026884532722785760331882199304180860809437337071367026565467688476603595106832176830674370780711729808009061755698713566374831006648922279197316091316683762847583767807343588835805310958127461538854652161102218150031818448745784223004640733545551083329360825705932911979581963863370491983500502394309567333655397589109086256321019419174996242674724577277483714530246522221440267017535385592575163975271421359061454367160417226079329488502746245908086086938409997331361470259605950052470288381214141086984492384106831408779915987264024639510348188979244984303599550121100061250158483197931625564410357327674100314981886778571441762762085158670111157687423058193079535615550323022584875137212579950332500753570709677332697419014946191967534217602826838054268682310669728707008263599196056983630668788730006594514528717209482674652873124018010793613664161097869636301677934567900484729476991433079837017442371766383285529268408314407534276731990619720747184266621410083361736365416843212516690329884111234455837326922286361553252271671023299225808996975873406660962493578767354663476256577237946486629930263618790315933358320210526897989204585999800708304645067446629439210095999292447066763959216388457766661183282715341056159450926966526685698021828070970718433650243176817806595949753139244635087049714712621044929204981328551397170796323744217309727704398072457549326289775052475361322137333280684334277882312220260416712726130559065452294827331408101168081803011182555816790142796681123789880665731611170053987937533921678020412544392192847844352561735940500665894562224587710609107877822200138563556867100546924428439170555528238614467939754583017013042351157869608786819910657113593889200239248723364427183221696144070559135173457474339831705069630566558441830258358929700250190352941845018991631888825896658786506140145073968609648790242225413314772415677570565667803361022868762758799762931685523650077010859529812654243199161608777832756165781972548925863662976113739361887113965947628053268962475371824322307498661461652166733256784897763152655190814706708644328682521655052566354015796137626957280132527121273858264157863068010634378932528979682227438122361598463545537955418323553726948404669064853865227886588396683420458671432319359494236343755038808290188377434647891466188254481670994171411713593909555313489995876996835610674802962619583981673837970834115166422200322501742991668623346791865917687050232001682327968805799903911685710427715754906772731181094296748930614753803258198846334161372302201932154915059350906202829834640543818969981401923878221027571815125428532100534810310891432411489375710576933305376584733554977374785844932247292548489163593218170702078796382999988096928541923674568955787354137381355723435102529547318184134673412222779144450648531842127745592595929540594600555486608056903164299113859985378178022912644708619178288177656693648825627966235462700680999935110014894598034996500980588989978422240485029261746700615775644616278995600479845547581010445824286657881448280363188061515405960647566104495773051562854411375439759851840323911939313453471832554069873911440685628297013016792849674526299890978406516122008200901797486725587755485737598978426979238756174996334552239635785423385837802374341632417886589771495852737508934744863976544052059656910441617920686678132751846661876438331372458161294759268781390020011034379962793057095227904816552151692276274179663931095861495003571866261077279730417945661619587319285855444391164676283716424470762898366632853912909448777526153830263203626906218260411897278829530451228498031640503215678360284695411292545935461031855378685603386390877672355322962654266992936128496946476671468091980630176247923477027574465814249509460199977503984888879878087922281861393695220487612976234032100240987041136469097844654976192347126075497730049550542847984911294173323875382369806713193472881404298841834265665375494402028189579453194018900326847781142444746428158453363381814672732675114081765057828449440200113543965312172375495624304026933095160947597136387943649381453532006395300611442487006365046693371888890539190459581877950392083173242351126967339736166512977225958345913986457120285724961026703747997750863450474096241471938231268203694973949526685102528221537727117200793015186209392874631514966403486882624580486579571576441863477658686360362645623400855167850187280299538205870654649597748888436285673072269353519955254770331639167236409413466653006702641571125455573519338253919536459035559792010034434826058581632717521722534268976221140671219217644190735601231767795448999112431550907552291958305217664486014305537350823974604705354044032165409192376880459636665080411847237692294396311153884504392060576194785778794762229839698086577179593516558844283430339355343626187585840437540416473108590314898109091033621013781226748128862241789668060378028983708912363770827068086797482204622951520538332632350036819944933935438817817020923832052392173070177352776028390102879656538806827125380857324260063306196984270363378850836931499333025901062537890226643678764189212042863255468076821526971949946327457699644575814199438338179604781486681690334115816822862770991442019363020096599265720546054773742924264251353553918415619534580182305236131111573552583064130145432198197857893135489675667246036583366110129580293122101865571507505334549978505432485361768039434560664438114689613976716677769221871690276513671961779673443931157670457560931054802549127185498518381657345218701199930897936770984414912152582317305951776595124184298734992660243353009528499056167425191602470160737754672865990469745537740598897374402506002604193963373010191115908877341677010198648112530731683200604420846203400583152345995456303892427322773361680168891760499531178588889059787609707628764240028762668547055755416064794683753248405785830065097512143143917612076931655075887927037017272395957036014568181564160794932198561371638553309377735740501225276761729914362545440375939565284668003559973419131519795472534832020679954611050955122101481209317355446578634560502141299931209013769632816379475889538957335057421391391494655144904747787944078185342895174849198473752498555309022509268820714539498279298135859777165871756138553032407005612709286032357982781843508128128891775400757946741403919267943319302667200906153633974961334172550167739714445642012663959564917745035934244819124540832176714414579684255248638193496513222670363814115403467088625639037953526270850185169346279770360990305545588866391583770974417109731011518110159511473445857780994486634833835263922532134546819065214120110127699857776023197274285294920982633242759700464171301042932080555085913687381071464708602275941172862458860962357633951471417245648756876294800132676606338384659356901863606690740683317563020423541378226300398565396650668555852199169754192148970461008715206720427304867937469111530905312710835507758790957021138831792280142378909305002766016925006376757607898327155495936029215698358005575868233146006974728944101148278083525139400492884243133612779464971327985372443662761183812559891346780207840608265440745708553168543253622842226504461318223836303130598964156123219485211605327769709115255473594772920573985366646817717890033896544704925824019901237912522497909510840685904461222306822983853185566130482193099925321136362765562394780666783357571499754077877576688611425083694035410963366809381453287898531293443706759560468659034572076952289230867949526369784744592475685141881694949373859467409886336878301106537857648212244401790578622808385895220596885981411560244643790577323570228237318763090324635090638285861917319494471210399657820925792724076972832791991003839470068597615183789417922415436931709974671908089797957432079797683550555393276723004860024569789976748868966585655223924004784203530085313654411134903873736931918567403220971023492674972133524600748346388777676761802810004376072980549142412573105518142618549110210688841058164267329023486269608464383923680913675858497860175225913361042329190724848737852652999242911904870925792201219458504291485202451501793569657219017222755143272455981761860136190937017410600795501188045411220535079355321545183601683168007324972341157430089654049183944039200428497939225634970412810925702321734100087725386735019936184472156043407129377791096409273543430876497175393736109841237404200670127844776510044416718278690718855697874515242966052231886183544592376548145394679105788251425789679637923027968350401533142194720244730251369515823030185595935982208419165426409459590113673110313987283466490152417822035472414181786657371207068349819593707361693159893328760319823913356603159161664657363623811500381683758123523772741635122719099190064303432866232134040534901604802699940606489394776223549785230361192410685760588516376537740097993298464731895830738047408202284819349880261168240026413982833635153107547627417872913723731729114216906089708097390100574488601236156283374550647907965812369168349372545415694726494461563184867845667387552917346145393540920247731626945015683875334461611500004915240726715507669029378255231088184822189111034138670893347533109092818650908329080907268133438343579745588610147337146273992352102094633578530101122415522870192304270544046178791695598145872372549124952375599614690939031847289859314989825284938901521124846151021808323591184491602707237418631238941674182157634013842827920932477095309108389998571277701130863447604943419962668497772588245165101065842313815488661483883844983221380019878310483746242230449498098783196820145948045995756665907869357301640522551331823424819519723358152220131422595117778909483449821459487123785842705263073836717727375826670462669117336706806159843965246106873376334454926374562135597364465384441625454041066566118388762904481269171465456428534292343776304721574687138971250697810891412640724070668808449412923844217100339738838691305555655274692219851318597748360288564859125088159107113669401522479568819454876431919100022858947835696201709426353150561926360331419400894744475556418758797984951094527480823373467453956120462252765252701820342876270970684332697910985942980385320009417738159849609839755583684982399060793472949959448056935488222112791676036837035792634643362239155194459417559248398583653418573143061098739418256827219805007523528217232353674071089038575993859690374982843501296007309839121531729616946911113866940715804744935024248989351123143198837324200310722876150662702844484157730559536860908285522268012866277664093138451410924686952270653495950605826809376595495315457940377291820394852457603912091510671281971299701342706709989966870322567468354735931115897709280771700025611123698595333090082498843731983464029646778562059209526522677109608497501740109536860319765760726077260008137980305395661636247105050455979234614913154258221882067286951391174300824576700563732687699307003175096285896271976210909732886250215026519498033188591756195736315520877421086595208498334623023781595394742438422200061688661176310614080078032882383278712502429937752638330947809458327356842123357004490097916167303786265466688376655336336476179373710397529934250118194390040732425822865426751638216220553213883472349740397352405624783179297503878659286551189908150198527798286211551880889922976182961682822784468566337770327226701751479943591364596419358287429408501330997102213503464245078320043217165121402051524894753738928613247140733812935552854236206891133268003243645381725376714188476515531816123350354844036163325243717324112870298561895810907773951169835462752026570313784500508940274955551210217908201955852609819788688921931336475115312216147094485198792573138800736108912721524447420648739651259299181142734034990601794693763534483164260278938122866798512435106812119252410155321331230777745692516936769022280133264750953815227885335224294598379128750788390212176885754845524402944009870785416132801180710471481114718962630619905955114452273414205333853570516218225093103285816321737353768901861099296932110841656586703646406497753982301342708985963059723451610679805450821202515393153492282078117207914086287613868977351788889069150009427638741196272647416156142143013202687677839907840808834782735895781824837375739226148781712983853999061786847524232473304623132776744471783707238033440778462660800712803172340952777750146482202658058304519435665960856592841683060781431192433776517059707857965480776345410510487248542959808222599031614025305978928210301504051299009513735466373316288454546474658575550226475868936768375362934112490359796367654304350264554198528589999254583926805337022692784226965944110316787788165882448714818881042389496705790517254606741058057344904662505220454117540104076752379606945052396095081320701765627552782248698742883731593194914010236671155453118584577321314920014310190167004189078307796983612909814743485899931578666587860763155873183271530761518609842959460497561655308406776358770909195882772898709614798408358015984349346771619503730355652029885460488102189796786921507501756029966577341522066934777265651977177715225877214447898208363491939995318160864545195411302241813112720745994064116516512965015385198794306414675595266362948608282483111804174794595656489093490319391962539272410950657085629369222147267750442454075356588800416520070597492873252792608620828635372367449547196916793271711785750310531622656723672809110998952590804688708304648986231530404914040143296002286724817452329132222442541626446212768549936192160110469641865310123902698020805700540156314989393762786256805702855132031481144137366886429692228566466187337718346902101199263803853896977528224123132121287313468461067835557820048207081844690257370050170339836106115779681365309462638949360356472223945090736190064500039614228810667444880148322058687353800541326273800343595540475230856480389300175448617321823525057809927130086873603964509151041314863155623777812782148967145440734205606113200458359691174363648474380905913465837774995441223191837472040225589072126196665001647320428124376874186942632838990642478069966679824556342105206259490168445122583189008985930723981028333460764243820559190683065178489635249968507939404765649456496691717318851572944044499124357961783961820569540529444851839557399977309207374585201595325866957212248943500474780114982946751419153382204689117150758603943428175856690182767769205108746531012960256080813295523713504770402834139012436837585719354610172198177352987689605665317577354733906938980738332373441900514087119166656505451113854531299415676927512898869956243790584349665870605469605567599494702666206043717220083244116124803183264495170400726698066783276835560369644545730582093847198214857530121903182161147354520121649509903858246544560002954323125824774547013411383812732660506054953164038187134651155809018851346091169064122766083455536621880195704606622954633661242715887555003262432508025387869336349494049014429266535247684232463997123530377366877913227271860486729107313736215755819646925826919571814360150951482955130224781821533586152946979975588742762690166547313149548995177531791103984703741963516063325584317847124086707738958280503698380498545444594594670106070963996333410228644750335092976691992988676458731763509353143549610419635445526942358097842369628197800391927949107261224732612679890706690219588775054562819462649488185777789454265573309699665486077125764551658413353270655848302874072085719078485448350766900842582034887772269494407458716115088356431634406215873900147835811395458213583829833083492906375223034776862589259420040117204468262521654615701824711837005014637264215248936840844241096659951988152283939441004457307590887493514769020008684954788193214794174847443903757147320108231561763027023248123258072431556721265153729089026177363793212406784097366686152224362423404164430694103012763904886619596678345897628998910169247922438257944847083459857098314390370554163726322332692004422517654634558290494362295347808296189203973679172200898524979755956809259837131155768465261057793440584292851961084051731222680807111539851421183473829946375702827212265513374129903242831181463085713458316914749992361524563354359240115855242793056260388181707251451637445146059767837267337669243860345842195230842576757048725396522282794749893646018446093923962088386393251182264644726214951464842163018519407806398815848225549731030302413834729874305173078289097515465125167306984867784174450928188494968260552734923982661923221478795721196090597225315033655083279772672738599117450134751713482256823164868429980287803804078959898220669521388424558075728615251971651595106530161545365187975118595170348815947089773378936227688282633585979426663122080395892107782705347986622187592247901792661444010546925244263088234874686466464602532323602848958136682297287185292070439928353698237928002373277812317708140705911275602704495030231092291442594678807921392343117747696467636454166873819872861866616645808340051610803913614588399037570118739033605736839770555985755120140413294456006864303306522231491781284446848549463311927436448603903548455488279590520127604290026590131655730034396511815969918859193884734117136322896278660929850421434570710505014093296331157517399889175665854671737769119304010192484984627483414565558749692952049942075527569985110590368201650519213056636458026334600284444485129506867684114905446153452543219726207897611513710599556800187720613217594269229350560671518395670101516429251938586255410544386676422014776163532324230013753332473976178091877729558701969909193629199961391959855887367594738822927044502949399574245508442966610070317243743368925727184436898579655487386673740187005822705174025525066789110109407719341775248240103301734598401102922163602927165338791216223498910777094526550917516038971075658023150189304622268268995055226368090327884292508623041425533291722836921561077180784788166108427632866946047878175605271345586086217702933179351360908103584517994185765445448109859628330246193355269413834078843055362690262407312865556779496940449667544603726493036499916199970117596557198175627197823335098188181297027705697267592533545825226287885570235717729893057288202417600849529215486604250838126430210347568640237237835571051418915163071930165993377546322634120645965837596142379620213838712855326749908181101770523531223393185581688498953752087540507289494078918544897410233841210920713896064576779661998740367138802888142004926759217518508218959583216364693313964966327793999871076851512734620638296295410747200954139061487331957523972955243476865670013954184349745685443128906881660230000251106381842465912437927028241065622015761081641487011226771269664762081605896303680726600873756993628283444031151270893265943692499299752990647506916144395921388315576976991594940096055753121076541819570260085229479015155865482500736678876746503886514068419539063823477439380310461964075582027497349669034909548904139538206586978913158204211701490197519983499661487439612130144818839152633398031884762879223581275804210319872050988698883180198442387264796183175839996486910135264586615672000251264507127015128953420306598917186632150962913555236021592996217674605207222418857238851388781267043829033744376670455564013721219027827911632418251608572531500798912185287162710345586134032312854727923627800492714476933853471697263762329544442021169420810199152185169853130984696795130594199264502285181204590731696779495733286864225470144473867108910935113785062411777949866279260561798764391739688804317980179384313669891249883188855681686686909823706622339458765230854516643447811682671858559865044520916661600081510300406776595876023153945143045841351523728875368346121926546874328589887719425602470286356810294246559037320207790340507998166871010660828305691821116507742785290506784073313217821161281234468308371706897137554082949140602070648971267656940606421058420061580436210262556037264612298523346266530837140020304468113818608909929534090222035441258617961028370309375958863896244504104276090195541602797331246009158546554029512491153323583253803551328402266883077901826158866813964891087819489413619759914834838957221869918561194744951953665166483124077648546716404225731685288578822269026753380697321799017784462427621268213024194857800135172137081966300984485237254091580817793559238280742005261628647528437019260716503882655833975104714901591948706540361666738648839318970211099552145404381581466865251845805475496913666901924724492870504625609221179079251110405212164828549203423567041828133088385998496766669427731754290678907454930738258590597729847434288471415302510724769545462764449215541403664177725953513783731370659250965778877307118609132805335207111929608420143284161927624673231815188800686489079645087639866325153740212185126682609747643313338614992641699976627267719675047652891507058472750385662575180942494174907731968207561402673493290994852594912096233735931005285044146191422925681030606127900547880114377737921688128294091047071783569679127982710469175113260553173356433456494376444063760253744572488914376048280726217847664168097786462465554845874956449334724691571643865052829293179793100953605802786753919846490601284970486380518931035573738951013766664456592043310289567739732218477441530064219263999593341972774669507304809566922417481271901157371516824489887837211422190778848403647268707536484220319007234014175505225717728026140791439301682249490080242112832383836059830744312519847802564698870881851495999116843979787222542578908513604982924930351666394243811814116575375092641638885017765108216512525201732055500332660890851506678316008177205589341619783698704596686936780685337442010506575240669328264066629865019837010172787061595046191330699078038075238335794942847379306336436788421220911419111231836090198430992630863413368078169119200463697647900352437228613577585711257719523925720696319824333550191671669515513998697513826677071930286021505301121823706651710209185441657271592218929165304867849691100749492200309069162209138969750036107681959092480204732920057175455829372109102909637460095230172533738871358526555694817995941262081633289925694009736699591477808905103264971432778616215147163370572115841548191810000844093701023728090294483916189967298195569760422870161632819567743633454473887847479583022289243468047735689354850026322265067473887779619173700242285438954000473472846734417880292448646039508166433644416480536771170903934487592553315782108716200184786794055330358467173088220161285735614853935352442355141970757395823647029048300876537749401035257399338788232164899095988461789955461322508323920285721333309695054072247264306564150979586807527783872122781604055012180877133793347388731923427445205363257048189131447873132931340398875413088951901369018859906575375801733284461510308932900591948758053084352363022052041174675969192388559927834674258672666339674866003498407785235540972518059305599525467798230477803987077258657174220632278834594952391859184684164675605599273445532629574634120302185432227741164067066798159742824480361044071765944505923496857823752882366146894246679017085422521506224852636043826390817543060075635834631098239238353609927756725834570028538168908103764697351614109945720894670797562061148565277675771469074503197324372517624473183572191430167702186007752428767383804816223009145478661164727175141612473058149278987928290017835669554511294068328023571752782178592006759971907508646298483638604080514553611751474817787908033977276375617102487575107216246696846207253045463563303472750111287589778951333894299432662031701317574503694217170086087729812019260039122106208892963119418991456804159946749364237109059111810732706706900324794074527542042512167174465324932973529084708063008443164542254632542472023559900291166598019555565743373035306067605519639183485943583133097866988523793045621578335835982603848670774365735221458846601278151697698282900724055518680811021711640642110110900399342783964164113316975603100419095474010530840899645715118015746913119289903989134066085797910680929297056495037017045826351559406939118590010306709916971395093129103624351131361641937469118520521212857878180788122573210485972938379899941108051194854092932092217696687271695279069959589096401593302065914131539427588391765285028079796995436983662957534977481392400217737138473905849952891442861314700736343071335243695397738096506580695428278337175155313954222314668993507979954098269339475787876524034437125951840787984246856895631826551420609311283408684644230652440454761618954802284610626301933865867305205417913106164569817104464005471341450996141837161789502812366712902771023242120355108289276559904118152759096041856551620767185390866659778871279071440447766675839347362825911624625619635486688705846174122008299719262839621105717699378596370936111649876628074355384196715570742467670443716430959495723193985243186960858920245665925214826931108957794878122130481568065468019976829025766855371415568317810120075820232450498154333540380215436566434250911513436579833775983374100501069967330595406247618217000463546975471546373974926849337042426706778494925938249454578908439661238846142585333426240671495832242505597602415111073897227447424210166292602866635648519713429354456886502754840055620928862999713969826521952400767934234273401597045175794450551733507958991677664308794516290120943985005464928467909526117779076028858240960177753947148794962744937432731927898122349666053010278919123525721297905392771531357722370137510702789059058833893206161361910426805559654823103622050760610390420414577249909802269666892303726209667669128228641502484718487832384314458694689950926658245792906241261712072091012995029007162562829705723697907949818674742031238525714872121932419020040425603121114768793816991053272736277264405106306856911525690109413804640936540040406037093357124817855567565863758337537637073008363045137582851601132400534448126749785434607516111691528516110071554150848749406314872338691867499667703166993674686393792904536783520369571479500775131303177736214315286308272682910731227288572487537674507448834209850594817651488480859711512566995146336833362118745098424213409751009777101287155873001910927071199034193516082781281290892895816997476177392828023047747374158320622040491351053382158003718818714217389085174817575523494022282403241506863647255432393188550187023901217912395494029257159557570041035185151077853046666298830463100220698021711713522779210247921337995465972770969278015035886581256681652245244255927330059987548287185185823480252575961363328075305167681400594912119136272032343155772522944028209436935706639071420875031763414524810675421817484196833624733403453971037229297669916557388677192198222324159512154223463116920805569998668133162694824826851545180093271170104308743515942331661525772584579352286613225469664981968798230875694191576354496051113545972897838740226364566576901076983267884764808034872327728459805624415507933331313708133851400201020084926597599215457622781301380889849141865186212582337991980727503119105901131226577685756065686276680613296524649593962787936354352489672916244370636628737642525066825604059996703408140395928196859259938026916083287627445142699793461449404980756791269222421619448859728001040202685044396674771758205540250960263335289107495143280717037083962468530382753698135568695540271074947710976340568911351841411634519989785725818812570805516829219429009872599447167411994813597851250006281141688890274506323651737730462323210900987140650802966041683835525169566482781671601997826414625601922962968621912981750348785319077662607141575065185897673814690447872954105092208368908939152102088116102078073164029001266888009869383440960841219841188927374026698328324800751896593992445613803832909455115923276629116206627909043138777379062701216959061188895203037516868274610134620828695443763767527244119466826632396371710536033383932473550836472902841911781644152581098421787066000033807700472941195705900908692939825317954017825746738768137754492478748178880766821792695590290378283252346633201000315520830076905959678984472901899695024166914439393417177524365863280807405405554410763991786205989903351554312882719708329198650505678421623835515991990956321296936652161701010157569521808908852001999069991570774585792919826509373260863603105362263523080539588881906012412907709964499219417241276953391134160357351025394468509597715259136136644345786859087584618143884547632862108389072506044520126799395272063888253779719972450366015900591706439735027887883242382942106838752255565600311185928874458797196985754580069444902380164630789751762377235435371347075921270017315700109501155445239853394810573884832521092242879841090529494147401183455425276175719032738149938982085626933625816237205396852658112586812009082552647755396569379303367534085345643343794680064731692202143598868261841654235691183320838941659056208775725776666749704110711362606043855746034490818410177933217490740114233686574472953001275853060179034521474172014909679057052341773272180530581687210190163493965714215017232710740437092595474801268490144778090371067532968181052918446316064449315327207603859447098909825417592082893515298554515606325147635131636680622743699452224668877065376111242517029078523907849744895574038708525727128593164975558242544876885802461988071584360973659083576708865834728859691896741944783348760133512895610089169503967608490010788244460908365649012656334532649242459446303854282428741980757174301683931133394522899609689649683294552771340286647959055800363168924712201592835490050996751690891739495304351385424632213732783755734479117587229094041520834267384379127971251067015434861065584037809111754334778778151641353080684434028367201175542770474161308652491285056201005135458843558626535991420912107501879631569186009433416109963529514415012409474561158469029035975458903678016713924420634859913622888070962255968948458527484754044920320943863491002658862721930556078873887831899381369924389249343249233781619324198100975817930651294295075481241359302956898911421290524552075309820797861140259905425931019197737233316687178749826850299760930255781383107548002832455788474651872844839042228623915231717041902631160863934060552861012253332287635017788116321454779188654051005376620650993679528038963201307466853064388549896683645314405074414095090836498946238232667670816897238237767238693840248848446522417374215061381751173393157084298019382281439454969128561757826939097583675792016292832880708199478949978269194305579519153823813032727379155591881437013621733359269076748419973471531243958123699300741988394730841811565887098615553156869679309463621959187343164194748575711088538358581037396499146372668839667854915028666340306638246465542422789979655876723885445442678201092282128845522460997887313249842376805250713237494866010525611558819036845798824585038330788231434844426387540123442010793121122171796295102129830801975352640460704193215080542511477223845027031560105520837250001589709279860331468056289489096515758521255982420607105554604857919666682404041283219065624778594164644593542388687098781077480771177531740432837817612604650440939248627998804618228674082883806920682186563397066118115440740550583521252728745191409361394684467790961858369269503670378170580246971938219448943272596257155356718778410525766109030684221897344831663207249859489231436668495716354025966996642862381432489429375975841842537562200204459581225163664922188271460355609120485418892681226229335194162870681445461931514268395001533701386580576982620424010298907079048600085486141454291484671519541709157060001175792700158358184134146779308272526820932145536497807932404671517583465478257300108732598024923034038037520220655848978461607914659628850929424735130971704977573247838943229556937424359175035167567140176870812603013891220457564422117167023048974910680832676232648047792073209866841749895496582541182100288876147459321407424251524010864577508495403665447596795124254626709357970089907100440167754896207529718197860381793473446263820375608377723087710667111691378878383785696206925997221684758253692063466197651439726645479759703523326509267293877881671290086731058181764397931483340497643270840591704217570114900962037428773360130748864688510150078065962165399895173104833462990242749867460738760858518671993779804048065960744013125952482675992310383501600153205995999327576831569788955758908792730537976887374574713825325753686596747982444021097129539848138420825142405577039446321111726115662341023647173378200728516483381733694274250857414163504816410697694847656755756513372066269836319493452334410489476866489060209746156537391211518090185691495378389794007486237047051246404241433797711941094541280043858777654245075498331449015019226957029637741737970360301291422586686366657278508099392697492173075062312595140858860786024706357083161336266426950457602211226710618222423400827573215238996203169704184703052520793367134253390531842068222213655875919745307009791302396335479420137990196594469685952557628875784668612755229376807841944619022847670680377826280944195966015911509255951655328325208890074418479044507297357211983495789332719464488360225346853523498618018676811727778802097540806920618707004857993737206984900248851834131019395182033725228945357085990097819674858374803071971766195160563337334843257218323707449283888210888499301901204981826602630605884321433300829678797897897675561298040001258279519201305572196271940074222751116215418402935549419781241515882522962841027953009484207390465353453419121935102927786337181282831970720605061760320667041073071038264698843076536238653721079081094280402818787137969607477219173008562495720405986966462761443492824853240304862409081354423701270244612390813613634712001403726165044236226568086153763864031199478880654845688655695298768848010096975053971629946123320819489697181449890528910853966074165177758418517485889561146239043170526816045934469749454439753119619916176981153067475908651908964196733744565206969796637749558597861197436549636205437083434150561480127297346109618473504874399175510399596528250222012248550179833487677948994090913636237796323821175147840190284142908001532920446020889463846086928279331976568656356936103836969430236062995604885633624323709863612411046937771243229584020542758658992313476379079777259138324898733253060534218007447657613880310072532164280945830239613673948609751078400292530889380970905605591871001851385333188283205393757778824347965112368443318099210927399543106141265968860010057453905326421353927177273532378313526452608513549006154759325107966648693212743740509478659209330724675260298676805169869871160105169769775186811702360204405207137624808063338671931872836057230153797105083231875680061454502289005257065046455125275150601095340165701884001532679173481979204370595559043705224014805831875450395829238098489834244076493772629687112944497734576892804044601203919384648804998337296915535876999737425711869488788861342032912247985579673874083281193999932299765931893490918068432142121782321358405133651786166141328091795324062147859689197956370148670795980643237967096206429712336998176167393829928614254517858278632511447086568085152235301669559072507320885086870691820809147538303808523004369582305876406991752185959131717596250683682440879642969452523079565866323823741585024411541665773438498557524507825257145246930079740598772590766719331383456831634371563002549186797778267098107308470310131310316280513965492679988413946107767060035634544647047338175878820208272676413824193958568840665723628825151681280915919630784937236110730149804162800624088494807597962216623393808617752225342584021591659964337234037072377404667457821296752534293891778077518249564867471446994954367207883026337122413911067454721687951363624884165085751535136401077238216678325799181143743802377262481171453272966075500521054272421223450162646290078997741155123300337630274814130408535456977000576202716368043797129564016609339823338498074631529738927640574001571282431364063465015106796018353691390460383695876350874366995314858495924127399214496786628058076157632420291054703323549139393096352718720081522999528266345791429383187220070385697945918816493011246416527093080194229481758110571756541834568047334166985377479450596711910683841782980094939576725738177468601200506606968154874157641014704669873867464339181903756054307398764152720094835873946486549728793188310988675613171473315272436501903234296394039910832767833478990999500014212897849518198016670469936957579170929973881507431275334263310731216894437305440421376290912278891853892336386389631311667854826368953508746900791958175134106668167543626122976677291558402052011766270955881589880024089994034773955376742615301121916654733981772773840340626078522588645938305630038115240892399512861519931311054099791049856262217951556939564896302275938002715703469878402130348905626155604545171306682392146380581192614820234956592251948071877353951537887765983335185664360213153281414786140846016329101419785019681101831197293990452915835104704883614604586756131462412704395186973098669742381698901101438261750293922018644916003016879948198438086864181042647474896740446116694570480737584016811935054779624794855587076265870513385628776278015874956873572787701275932223219790018479338690884182916453374152712754387801582748091698112933409037622454658905021940278018940346086980641846719856151894113922695577193657732307378818008938375390652445286283943932573600845757615255498129789610421399905347301891745823819501283370232093650474962084758674474382947870709200634815472302099743412056045116156255016095774301064869797472953863056917207893690501736133124523201781641792618149568600072625225494829502646309836670488480896717191007836351318164576960660328870983201351298289141575490907049480242781457021532757564035814958650872074729905926404638234405532611678845205938045309424528395019187208585436307447334806741365913502366795318153403113943853459064926918388961569925135439662974077339906033833511743451746312741366748294045594009793039277503594695687395032089581724849608023051655849840728748489979883300147610343950584840351577832043708486050198317568624462602757601983450952307728747324783321820067730048539703591477948069384955299329881107699943678052298795187404678433226459304269678697977432127489116535622243348458028189172976914382080983395013586401798993507121105978448583414714658392812944645378318348269167799114869372664373977685876571863200686548842439285822040957896001213405797918790400081447107879497924235027394741454883994027079160621790552981580268074976677573760581675636661613234085077944446594487605962865219084963465675139353721224651334237801455483643587564885034614286068682281835797951696626632840120729799171148828238475245547606209936166180422836559113749647459512148391150278278028224658727438890573802148631511710788105557580386134199519746431684185475471284404811516064660278309989694245661026049900790656310962864089070613111069106369842074001377133274509785535107239091964097428912224953105672285943437448440703270809510366831800632769585112123754249868948131242759761532986922236399153601641851008125265666631426003328057743066082831548490656616620964513888876746860991094722303519007404841807087454676309050265144240808988906202775993822209775224684590893481453923930240835451890076998091162079575188439507013135977741734443032691655217042930081293631529568802167717090127766493349434700610890763521930264708740416431501006897747824108580611704810931234022438776451738147137976595650587891639048046693309333153355737323085409523705147068924106465280895672839058832435350373697621529266309973221767222464188795611815923373604095883463000717793799406908338407279186185362493589432566664533669226414017549293421124547259552814029487601132353112128241703353865687570904152632777929150053633030602233402559244108995316996113639710758611954107483252953225319240239197250227760608874851182294978494462757419082610857118925055319151245231811452495366165102203602293716640053017793523495442690665913311016885205872905056114486240466740784730767532282737309079278155350499590027922946333936123015285832043087212712942873860436418233725330911442830951655949495676977693700110997235208624921564077202251180888059163597954980971932705403020506513284723517214872953899785159338075018394382447143563714570319711720831245446600280441921631825311041108078376654236991811593045668385095094833420017839136644923895913520834501807198975635726431671903402188063949699008198224999011718984327104486776382322482293229286356584128443559566909246863567304700450075853118118946864112753879685643508860195474245694089780029536011060441162731464448363005655465256669794501182228912610115992895073733823974700516606564903202668872246315074461844254219174731769460758711814608199192051946808191285898407344391603701971033677859002831745956234254148389127858607243245785544372265235694749516516673803391792840001264440293133469107092730540361728229751651713757156643394099782800888038545805665245703850806015666368579309136057385786602612629883941077946249382631484414490675976634062852178299260918404944492366078427006100148468775743432853570567156205459982563664339798946860092539110684193222721429852359901878622147201433674169961741496115744480865413667428740544012090157287367291594468183433256038793029108325851558026683475954172335187328277179897329071194890197786554541070228118436400665988805687720433368620892492854754009625681621366623813481387600891372814303283567214302678364226209748804694934813714051238942544859925669832354556501098486606278228324238811069579743977953054611491099109184589947134330435005782759580197891940597189814042526347219664290250651009706684856750624175402291767406154745510994209294803621398308379094700059678807792193546358668815802797403432991928761792850666308883460020044790459010830902757173830833836028997185643016969883564488506579771635216139431624843199622927287568752874687525054175055282463081884566495822438763709341226294628639516353057394593033298278130625539184700077819728657146158451736275311002914113176970528486522885839638068074750420561629103455401145015686765618820699524116002627355818881104451960114785466631476231820648806340732449302839855238157475676680804073825877473002414532953667079388601383427487018114063268427777177714944188427199659514198926523094378196581931872580004381680454898781450915800475167035757447058788497895050235942802210786443203472071556561746038442259816042494708149411801491625867770445844229557339696025691242215963152891953648913314592745210857630114257338596776275398737269690406921569338197769305186898743133744059348853354234761633212716147002665916063474452729118525479212034348659065429394348721700130675438654799531383083883268690344975335118862848089842679383891577507787692238073532585713292554898390534413278941595471394692069115213736719684202567352470236281866346086320320042710020887243702167616602366734764086650967401091109728671595427201992249581581506711331901536818327452828490487436149100623826717291662026129875674963959672715514685441268168515333784697846998797139971568094884803150621265224880535020711856167504031674849688403282931548906244854503459174260398537658465760300271375272402166628377702073329007688061686584990932602678928167460791816068933101646341280415917325785396651443228536544823023963070781147180472938362351543672966836642304641658457432449706025226205695835626811560405010112440034469001030790784799255437094160158504675715059594665158640688280496521261911880061434859980816486203914880959515886735604673732827225261506303886691264511898606515676594046702599436366236854901878085932434420824808034587709511737714085789237835080595296446442843395502559484429468336150477196903628928958906851676859621674373125058024834660976216190170650024418486259962277888137961686148562127156248131867645558521786954159107221003962811741900366230168505327012848339603311637553422559530218105079402719581882398274855482309626178920510970618994696296326731043951249974063750532093873914508870088340763791086586867095448086719964640282313025097944156969821608572896807811661355659475625346274627605701187302019323563901064843278012246499281023328046006317179952050799585293951841973504734806416746291453336904407989545740928737531964975702508363964041791938470847192728072952902073435432078048530439199531496867580268593019820884232201883971528042877589155604227060086996646865453910247515632360728132387014263095552136214919270252376570061316016439516653142450794914050993273402591422924584433284120456048210476242757286095592756673126987506974250235998239178394704011573235103046814246326855984095197320035384409599943974194574111466551180066099988062071512837069130962822822837978651514905863187182925723219723108935195492411624754904504963260133575466731762066372648578344706184976146428734540545396403265561214904411055394645212895463969991698543426670631932645962270380211976225334939803797243548109165719091515844835262680012919030098468847017899278462151390626447601521563656298242305245574906433832028617617658264012752196940999335722335875508556786704186700432346645305687858880575349633278560642609411327609865858546608965868489862887016870671539795526933894824124323607439006563621410019026073286236038881827410305865651950824257734223924330152677868327075037048276289887170268527593049831924708728893555066751943409699787206047945969860412454201116750918525810005648284726925003998055989134197878705968070336638689081987755240416861900669855670795138566263313436098121100646474385009125090441440390173697484451088523210061240601059846208841822799105572064051151366559457111147101269264818968200447331930468521735220721706145697957476110469601462908730416882420756704206552715846275948366773316245062451271798327277558338371556324543244692149410997417077850558337980568783825830514372485076131620778204822715703443717044509315091634130282431432054635978463601201178784625454352282190860865540718919794454768549375132187982167328960097138303214693241450906048793092481805675466241615732209630698045505388809542750185641174427273087147985663592893564730939970930944943459725228595842730116649994763911541842991811340494351238533373620317407114482422812408460978111280609629393208806381730820836163217447137424151845129061757521064466587238119569147205708609792219921029459451860204435427280223265694432159022860525669440891245758607336484821254822447536403448877379837986660975749480542653784739083820682799641302640032988391066142537536952599633251240893161749578929731689814004835520871172728652681953161323915407634916110444637842040634386263849565198774082546159711779104151479876447567952018509030839991484657542206060015675861994453914740598143058434138819913957609729402938153550698920002285245146491014914441753671088719091819769067295493140807022792021486869248257334538517839649689573970541689420372981894080097971542584997529895874153201402875764083457933034136883468633125730825212495355794230003961834838449682624131030385052247105988983863432742515672294555055876712831411801330216153683813288755254110698143442755149384521834954078094147061299635228097660550201779159763780398501262722903602293588641493426366017794412530600848440960301440733269422258202904577635481293402498685737247971152567430113826644834083005873912323999051395804126328145138852889720362016597702671103149442929525997872603686592650534462653011138435592861061572024703647626212459204435535743485831111133063910131704196137566312548434497987365193875799217939784302972742774807539554165092943834396058592078704655716456634511791975781635451565935375353030287040236775920263852984731608771989808409590770815565432245406609081670164339082579274075407503332563169912916072088831574000871798015453627948686658995585476533541689319538940821377741131210085866716076536558365575355050155338756397434377035995626902287556666829970862875570827997680501982428670200430551843286053960742923923702351410571490870179804858524944761868878596277408520122685137258511337158761927465060160978625149695702053967301312202501269884056607582799735872223754626675716675593825189678163567102258182968262529259617914047934578537034704778405926027798759842700748188077155218273960213905377721460314574693852242419180389586335246421108428121585598139384402542642577021385245075443686555384957270833853586211944188280974658317026534301440687090835542159394145221949501258329473785950046130988457033847694876655316723964051632380111708018563329390439746412567300806702433678044281886880689192483217921728060634695697702666268058715820783995283012727933965806700433355674022789137090048966644367923702528246446770467466266028964896309300409468865977876719490036536518753918931865742344081493280887493830759771367577674347552675231995824909767044805402888716678285618221656429496736878706238683585625897041146331682842585585199363555627474138575382997667950638572554306263430087913975333738337499541627067693218255686942026781007616342092458483766807245319738923458194518274957850475007008851013169709508277742160616654889147880936671591797163399190554797121806163465076239667799022915986240135994108082614905519072333279191405830050044796149790251581884789165955362116998365619953077519994096484513941012334453425188319117921904228294882937865770443850353501565391980721783922600746150942544725418374038480109678658631092954273481930494359753748860869693550749191818404139081548142131473310784065287204430592081841147116131024411713467314174211123696941660959599331031084223345991713663147793908247457170054019613788296833483258265905385982469897619515137521532269543106208297362362477387267645045640543053822793215817656599637926325858527887368357150998227806604961197480932790459978288344511195314652042331336573971378705021826743686366752263901301924204964383497785395523392025662360912941768005810821216679230210414302516769675614519129200301755413336556411817328670566255829894179341042675215022122051193675163059445852154725581674007010241900953704238226005547341732981550983816924434371355418878401962337656696428462079375269690686342777154490398938308126751430327209686805297306547143075071026025654955693749427049353605300936784319958440612546577078442432089432890240179514521226840558990410500135069793442469390704278457624948257106542237422897059094521643602903441481659399013705927945516190504896337465347817469432037311672011591768214999218356771906157261609384813974161068178966382334314196030968225854035100227691829809288637016339843814536737304995489826338262789303326447342799422705817329970520413141004166388721595611682525560468263449172626096819385692223397739559175900179066381818517201525577846747293939973675066451180058807037701576807372336410431294488612201317763934788910376406830755458967824164747111029853105606214976305448278507860995819574083729051202312205985141527858128110213155724302372398726690851758286009565857480506878365720567475740884349311212860246426994017132272310913735003401624278119604234617691341302272475638162848609765877283299918081943055731731941039835955672271501789340083439072501766111963007167282521534209417111150706300610405393769520517012536428350191619627661316165303950995525717985348048387012372806849343439173481978201224227414559509128463251014067498169409462071697508099150828278568299822754992038524465369367301820504545989765388250501973230816357253317027997533208988523289935189386300778250292505150966758279087087315081440600873162874074816650888116651896718335485084252876873065863016627996096744106865558517722873307113428935742608829754039766278184060357092615946457139176538942998807258317790079204448722050889885270514964131057245659342010264239061130797020128272461219087159112431613770183166446108852526018831401376902451060888241708879551515406448785602224458774030211298281917309910631934930590550865141847232937580668694594154539107782552132789629098655853039357222088365779382014172730769271858280539552645921115673619308632204166473813824753688682422811333726931377035483575369032046077794025986506182520674789175366674772512806268688073278900945795284258499980755172161541714867304300784677497084754454367588777858579480814659615512930680605991030920983234534549093632226192396612374887897428525643265749524943323536103086201943053037259157677253175058359463269421715785328776586070267357420525380895853364070563443506781676401322076112101916315016570141845475892292326958851805459433544361188831049546129606239708432906549490855127794696620272065256101432193718636672458115775160090733902329485616715663798134524729921990715973842800571473880937057379267028654982796958250445137274756217630396173575724015648593968910691518710463781147223420610850699524524115350044254131548317699532073732556258330435783433331484806246322743221733233927029827310554606272746954756957488960069578298843292203309882468827141068268540372019198039276188586428092603823139121005939837904914078296886368293012797313487736185605915229460000009940408045188618676238649467639963663462516768533158609244899666041978982549918111953617623218601909831749414559797900018234372242488426183628963608684090070422453137989741913865408207654465384809541369668208669918633394620323306661256821248096843758297302432439348600001998008333136448772786584472691140259600241493740461125542934145189839897701956140608064632992064326698350506732323506466999791501553449214215356131100682982543217159281127882008823722048667326372710290127017402026442861393680532510724607080287597201800762585025726647680040465098831002974727591360514107568414946675968581976049315482226754092893767530734606488853569905795179065567995183647073342412425391618816361099933930771506085808100166823639252519435475765146382763345339191180861463633498232267615261488226143498767358827499044550625326765118892507273345650257143730979436102445563937476337939557142198308976976920220072428775520554015353351771159920094617407342590648102001364034197952340022011362476608816126512461142120149497497176426894842887683598003085426234845495943392933661749656872112135832579040516996577612978990772201746283304438445614024598072955216033864515287429967136517140618968079377393203286534254495191377165202952567945304215789722903367063992939549017970006584846651683418091245600369854140661361161346579924596976742553353018795559401641723071578498063543206019867445728311749643083806828414002944180447294367257133978849896024097457478132889267023238667868448549473414687339619425066931241257161730697152330676733810986808238255352676276191629733716409601675456525320591427709488169651861726601081706391290457819291989517001986816554080474796960475453972243775608472056106474743734892931551207267350501594809301548256366215227018804624560333849191010276920092986448391906374823670657470272929899054516904752172377582868401478220942652663657975324188343996695873858190447180282171854637256085700288064241203139850817337595190057891901208620322813317247286654504515100582486198298057856142490422826318434804045051119975291396137721660707444254418684137729561839071723744107891786387703616763954228239832989212380038342842662782070947337632524387414763935122897558362011574473767161433972662490554521515481829339536243626517299842735896409961606990118444122393721881499021417618804380120950638644579335838939837824079240788021665543128987948528797135839471829227241226454196476243771356589367207440977492213144239168516431267805078175381746369890144275053188948837182677833345863060201718719037773484607153996076165926296502623170826935176510352465161717483202375471446811922059382912743599982400688427282509085331636593496039291367615919894566724965717540014567219983499036210717863066195620596134653733034405866217954161597640231297640831460234395614079093056496538874251827090717968188768561622543079045896129277032365478062273500473512556991533666576259889390530904149193686379942434841153927155076085156010819426330236334487127403378947691950590650513743545140448421340884739673407881527853486926597588871583171404018687593844092522201114995683017111982089891306632966563221901649761733586609769559368358079962459307732583100625731107152653055771881471621924597789436077974926542591667455068619346844018497692193080255786936657230120793334004984580788762617339789826252316943336921013322755706207821728669522814167591188901519440091460442210097895736208144243395233678319229782105694827598384589772725029201839495370922225323329469953631266665685317109633773234773914957060538789395919519561271294402948288427413180418606888877386645411019083825575604794087803304786531897584244427135260413707854788537450281794060790774243652402075119802288700571713709646545829768645202176339781079655551539172768292128737136622234634267731187369366711957709980085168253966170449213078812500059236830542176475089978954088222875061783727560963808297256481935561038707490976687176835124376213577201412789662196708743805518481096317156817800251811682517125043334949882707098335763365096108603195011394064373673525233544468379224683321759770745516310839439990476446489942174304566719984668899671926927577512320153002494585625189640001633043360966121938283086748083935253238360175401907750262510857843168997136462839273678400036213755365020833734314552047152816287686414044524065820457352703006554455856014248422012065395783280261978217933751852885106693539751367296380478064186428759409263747884044318958174381742637575012976840966957015220809474872033657248064076252623533201569129998415207224713769026022520712486285350252941319334619301447040444393745040318405338374880316855115847004242304761446709138355749375615796789107444605914105824122053178798951400646540009505463238854656038486974302361609278804217546776430287007780252566599156357594888569558023979031278629809519839714420983911955851177115912510580186988971147776675581727925003687114774476307689821898849144357789235384417575602390658681321896696847241521101542777565517757113006296395794162229931392064730251896193745188620785992743124158855268389134778369588773350617950272193673931338879289738319798459353722962759552308686362261554284289834859731872197937091397746889591699803403244660474029934456284487103845065820035343665705922829407326485604902119898719000250587019193569339878786227354951985605047673309864672478972871509372618821550500077124926379908481879276176656550081998608988246050629500754200122321885586438083539880513959214134569323075195466261179503284693764058154866867441072004078656763783860576241782368233651629216361906685171935114108205779224028067024879103521587665738332379240164403241833064295818162035269706384119622456606491115918067381189081828207718521572327224545097471284177386766741398045732108331469481498540339024672075709455037754935325349083030874502949494710875259882117425587359304947053270141115676968623005140506179985932325712671561656756285847555896707804736494286082861781361786504996327227951534658780276359783621487650347454025138203402690253739075532693430269577916498337626600240420466421156329058744053900997644942251125966709386265906892793885861719116630224258503085438645682194770576850474687959823411420039994260908291752385475061636707367007126687818653842869675090456972025191283446174134513451072671951210657124027301355045984820709683478488282557444598142175751494103569477470145095319564525048601800931593028698216584958204926493710543946888831910016445885291323199114931093267936085726682570360875245954816889185077003585561226759154880073731392998517543460072237070695684642048627783035659313954614027150698160373454920705611448073558701878725317589294179573019134824385939159668817611556108997778629247246384238897937169378496186612958583312946824859750873716371037746299780269065800199213114852397647912979374724725189868928907691614539140906515044417995271888482402885340576142621613305093413304455577252675676359938400198662447157364574091380243404075155226034976677822346102506394886291807315551355227285953381806841540403225508852083903482638203487079247416516255820149149918251689283796454248327643193855635751071026510646098177583059044644875689895575697974370824582321654632248913176907912150467596242738467697871827218402365030445947275274965445585516794440625299383406955724150585564226130242612799835557668474281682164840601415073338675453819079984746942338262433056404267948645139484116771913642395881356486752794274975320236802689802292626061657151066466381703646991652892829906655170608024195924180304086712984424102265566832298623462200524209346049806168783322614341037861339320567289013055009330513345994230502517563565361373428499302852052446644749289715896421491567710655609914954948482449007371914452498954426888252207370334403820391104041372197959753545203789096637831054058059739954989707495487539494180049395896481959902124549772442700413490962295148376716539159055810821073928286294440792281435552925333205410032643471697548631802253750839785628364314663552717629583451613765736273804176256982520231769128286454608456978719057707669918035515388760812244369429267063256829936352624585600019225011133407948353808767500641596636785818991461024210982204246094827671933368970781047124216924376617921875420966958381532732665948016248815960808431767837841117083190155534498274343322260413822521332572973316230761955899530304262543051625594668682542235151052796131084508345737870201883513365010737057199620851077039933746717779823864722797542250591063708825153001253749239510938714110205304041849213176298210280543491726464832923954570344400165903963179530809512915196100602859666865894623238271821339595751351087649935114074242949089105041261938267459712413556652879571599472080161836782534413361263748767763772350952840446808497927465268907087011902263518698509928765285074676625769102673343675537859502493607785969795256485799204175075693867825442867204317108535820431878621059580640790651521634706901094046283877003920297982288260603138519593557447987486384665018551832674039056612198003075214668309002534737718293961341189457134472793305637039181718598109088822155487223775075208644951875758400700272092209831102649656312468913159459446525826204918171848874779939629347089991034101857350420193958112237914078989842401633023822572083425136108036891305050638881959619648484717929103648691602565099000371231198631482955505328996649663505757310585980183935129737115849750666778175715322417190089848546473580245562246267929538460283181639437101168592257469268121236942140157496341721688136357236619349513442899559952637047565384855778294058436002696939139978447642178596669577528102886268677143546988038112213016121295824943036882444805883809933517986778101828060162365731248732887937367566540651638008534754139972889505493564968273619220865790258650977796485339089204350411804213318676504563213729715101092410767993247125239587709489328751770432479209097706416766815003456461108763858056611116220876576461484301625829330954952383028832019589239604293684916734028118798614953500881377873626655606532503210915051962206942701018072242474829705128457135166637555737810838404949241680032190459526326557904497599426139192700990981316605793525192330902686402356881801602474760521045195206760821073993732973687924129437836621899225224624821463152196718728446811988491335132889638498564049637294048572406302312393256393775461219354890247888420345995019538694657705721017191540846867024388455057904064368975911474590687099773191215061637655612689612027617267805199081998834758688451662789146223758023747589814606910925321272593341406037284111057988951258071808751919670064015708350018073996312933446236793774107057887546915412811737000922841454206576684101623322769779256116922265714997029442020753255432201196966603515221260971044079136261197342304339950313119959625079251323720366504396161521093946919215019307135069421472070275213721265060517558358583203599461738958061327187203801098867578913119036876205047830172309510386703848946727813804698750220560256418795466693265067444326093944022744082699691678864228983235494772104420846261796412173613628434591331338300964709763302779157384535712184031124018966986445361918355120676249681747571553765512807824165380812052127650184316629867264981654669249930651109739139743806132160177668831888565885706894088744334615385580922969906803127341831637546035833999736326965609562244760140883147665115526501020500031716537334914603822842206680235807075910959161864099598306296285912798831731135423084563059791302347681265894895929264643890848957823933251589693637290835905860464111843278525156670555381763996445722669712103868396312149427944250189754595198422149932446208867655909380977956598529429203229267179030461748785000140943734518140025696105898276603570668510409509178814002917539968758154435189366531929974479260796294743102844749558808005067731686426905382830615365757524327561365375099456449580643227158614444116723524704619720403073422425164882757329592418378493893882672864872080303203802776658666748063457644672280728559140701095284100458806209249849652931944763053035015128072310275934860504624829971235997112967410922259074036247237478588535103128089149343802961318109683163532643201668902032032849003328582943990201697644539372066427546436935139816519333643788965210375252774817589474836755258134176633350307822641948856393312089364721874629894184331155423302054730154548193363463135214464134816646229311477317216266111378777153635611113028597727092462705154854241790133872004570485585849016118473497268958234159029037918329857091852533712619176280221173933978065516893669552457984193800222237198288431014118937753899821837208805085368674854490232422153339538903775466557587456914029332184662279485881100249115546235016756323811457003880155454924759090194821336125115838170475804349428812242787221921905775827446385702247530749280525057513529900407533396280755388344173972622952727167887621181535080094535021491544164030201166360292020911715143408433230191624491148327839100246161923036652018505691736674788569731656024014960930711436891470019174298901819659948917609489270181945544738185805997685527420568943866311368119578155770254171927514297196595823085470257864543507763505467718601642496863414868025522499034921093458828346056812601940011223272716065321726360375884624601700240301655088627204968816953027940297392430177635203550715391575295530449736069504148723106443038701275528293971587002845422286012635679545441792016734801481828485284445629284149863499468093179646691891324798940186617859106793497980942334883282705999331158565097565386533066703802875039052002468397685382527635799351196929056574333996202808415421523984581714121295475890030486165639238301375353585364337073127940183417598260220973973611994720500523522764220600029928345987590791211966035337683580761257945584237275788986555879075988301609993830114972314451212307034727844463022229441008210434887812266556254909486373732558789958340963129509790217331896131973048900297012869828055823867754031477943526772142504147085820233729675377665403686336886535349364881270460298336833975870025460779567543253589538536398645404282417993413195969171316558538941505482447231214101700513628865714737950426269907043295376721682004033447840527184180784286934075872062294980188955256846341536325351352149471775993855236463993053943671044792946552144175292410971234602438913498070063739666925353925563989213733736064751969597625837077705962193037439246615376405531977707999422578550906610372621484282393474461715764324174538160736431750574794151180497643835810262807083618577133793585053961366245755602622373217882564065155101448445746017005971728977870770073483536832751761567611413534209622612433784121840493634609400886932610567881698372393972719806399941909476320141751682217469269373928757601162620630588229512198659704566324273778647794729677117812528140592111474064265461112374025007012765695750727385659865824069620858512382853779164680971045362997735818227742785868574586825604421813618922731770310242380782182192424899552246995587148416872850161534857293218109125825592208783500335685035279947845446643969482031051646049118910560303488880640784628984651958213145428987520799705867103217473932421056577331466527125215753579080656597541401246460391113420116028944206269489233843166718373111147453917120184270106926950229973597273553618603854086205171457953596013036315730841105850202725581545239606632181469625055378262077259625471035119464512388797585673122009002674409814374422770683471337269247624702158115791063120840776101619206530154808412937570796338175735295165148715373378899039547968161259821244623456134015647203632534454841418468610914381345823209947463301475221036997369819323730789498594124482157641008310178575308391537757804173201397796876007846797198858946912819551527984334913087225995150148664919328203678547972653550092886331992447141310216433490251775866450865755672363101844247029006444736662980917440895549974597072627549768562908166255950932148343281726174033259745817019164456264305393167885385527970187088456727061836357451672596913729863509980229006683637280932405884889009972897523817000614778810852961986933951559508071387934330078391774949211900005267752321566044318452161272724432627606074958671960366516986256050535587291113576059236687024708012532708083091231088878941921778792780813231064742451748075060557795507457511642587025918457813313784722307844459023791769284486633792425118525391880484096922293842301551360622199121274075327548594431050006499780373006163591600378102889686432031606219453439331511791476554490161681712522796745266878196096083001739831200250961687583861725614563640362083430494348441596128496118726085139545554186664198874273653437102181238718120051805019729685735181618781672184542586424870683862011320361733454978298797407627870849185390103013193692673944251389369384697135357249553884747858357528795003374568150575523348815739555807552272833807496626978797428032401943141456395809397198727538597379674443458429727457278871477388392503965316619257137021449469862807591201046180853084154411905963133442741824802098083223795233131817691258505275520876844928048328943484278412485690665397737835454311709265104212854946294818684489866716414949753440794781864439512356864759713652080871541723065225108905775611740958630128946175115239828489353563382102592749950100731892529372819825393564581258552410388120848409774044740283393855236946087156111591669191244397639744576544788044928658504607952775975196189683702204090705464290081709805845122350834037766978358806577539444688874187778471932848223833388565712219705350618205443742370666918645733097011978358419710623260910144904398370218354507880202762402896224010880970036928263173114683014932955087431088044969514162599225818977239150347449696087062737957573048936666760875773523178725882077999746713641067979519781925964770107248875956427950568867218015376799770278617128945615515858094503221485698171653615539569557826782697431469023688478353149169053518021221213399821337919841644169468930415256662831406146000344713646137314071081978176078935512038294477110376317597649785777075439035032819521574446386376632166456972491421848495782705073424779661299167432472280771381090537764327124087449334965388752053297131788600447690571157531977884919320877460989305910358280620364523286058896797610067705764397510922680372291247253905235334449824438290457387987858667494290579183988490390996993354315492945913442670796086977288202451065964878132426708053332307400672050145579123750744153453998289759178687597114074079630420839941185097232295501204472026343363246591723191764571312625183998992387044727601662806434721314637130206116626534510356192755924362868886524188425807502979325607325194896129543568356551032351338862017694818892579106106938081128151025208160104024710701631668183114910799020014740653006740595541010740092777497343181208493674086679749552283689509544778755902548439161793579787809858070580871133731159917826121682262942778421613884725907017810256530655663186162337771209229487558352558876927193258876255588378529485575421402811293951269035848939013095426486128721538374332070191345013943166493128176085476365090867372599768031004521530657032491483053445106767417533803315757703925071584114766041280198562185867666394292014478597393009919792596758391235164448509540325189817700091489051543527938938408771789989264175627937573844641829943210509178446084425413630613612804047608079434926436013381143424387631302922485673595650479077480426020183784145374058812515860846554072167841997532591440253344340610022071089638602605376340743392145182893192598844389417363336566637535778787062413822620202270217977525962487376282984831455322613092249698504677585076008043722183001240464540351358143436160952214495367500139128082387314057195508920794582055819935917771786372313109471529144419995186074297729047702162447256481270244950190157116548784101944003578231279137172923806295868769349135042738567639160846781577411893778944021771631851207416615482758578308788705786331709011698744474625343389200420974819408775257606382901842225971674671343842835991132025426983180673847141698517675681319795346398081649985343723887487544286385224827938936147321171307695432526068415388149934565590258135980788968292889931431846977374136584656783221589034608945020360245699651971072064888721880181420588333944028657345622387500094765173350624795429491017874324487797573126116065107997992728077199694866259664762115190571217944869054473698374967996056409137839449464354070119762333302393097957379971072777983623558889172673536846500609033529329708297330381358109994951927015054582737594615267239587130495746221395931255083490327217307060329426770638154368681695923877377232554521945081154426277854049575237528494566459135580362195228585130120359061460470123973399857165727817328729687910914376706019912426833793402316179134113013617407851066794764215630842096899135684487388644348987384506301680824968687018796410154084026432491819376880965474077604825717799512633838880011199028531621080245883706960763536534436575613447294586267177472330356640546600688601695645481119403741592628529918154303620447636736913149428441225180832953320605430628065080913371657052381795400479061129820812304648790399334511753171353570122872096438348305011533083074476255107846017626933249375206652896817188329391568362627347128751429290029797210704083869998753458610069878024325168268988315630686381245900109698988757887178910842649263046062143381369620028816538575448827516815261774449114824130188668135845205214953059632440408483010500887986237654117453603754512824421547131758626285244006039944175589626334925835885998654067882659778159055878495219737572732398044883508243226825808492607114037846984016062330346640465263003304854414916589275844158429296888235155946285437925226931031834493391979337111312206542411598467674869361605973915973883687715671115776804148025607531237744732803462676973187771203183628464050654535854314265578721199841912420384211576301517234083868866866872003807551628477639975150175103232667247857804505039926353653316393377314934164350728623522908660032944384129353786316867518769364640295099004463391283591809571521558089966981340497633331868649375939813870747392127098677698202742569123710997536281283864410517248786632772790329605177569111239025464159995037776958536550280499942539339949642006601524944762399271203999449722556649192314926808757732879782675436523418151054105019835359131203283061308983373681613702280153417957801420212242996989451711749104386317150354862477935959231997851484979962627100691276613508350402577939840290607343089383082107673809777969021401525020625726008869608209800165520833808514535730987726954886863159570223543597611032401408902751269035174299851009501819224902180289470696854695071341001853545838904876592586212267725110117238751582494203984456878161539728299810450363421717299425822216996158990273378666305559355979202710257880236375741250838639496631035503326092334197513392030057020225869255662106053621331630423842733867513759163727718935824120680873499211614595374680756418451211392756538833461733639564824206524562982870724707116455430935006648128524299662360124799449022333944765261135607425183213190818929009365146410178281041036968029559281331576273126974207008297753080631250210286235525353223853244566530400769862685832957925514190105055424932361976529984803108310270972864937201001802075850047807493738873961052433536038510920908447304389871112733688952659310028089409137604423188931469514395954546453034931667575148955038740624462032406967282939598648549532458819347380621929009417827530534297569502420448708973355928811029903016440468832141833319314006494651785768249046455032008777197715203895650015044320017033339299626520744647649715302024080443301480195787840068009712833238263995108293955373723015147541980280648948410984133189125707706990478232653497282618508714947387894358086361188670872010123203775490641812008589901808573370733502441251433910387096849863152553031367846298223441869685256702217395537133417661286955975415058116776861553536508719372344616192453836879020200244925874308533628663999152732413090159714357169032854706999305325394056247483208177084070387365849794177504968070965344989456162472586763247950230277838925635076855414294306065156766563212800808226347572818528244526090258783532342703201533666834833821329037123247443523247102586385639141636661202453959154221402539885234849756194139590052695354379896693674985220111216919803024955061866130536074214753395672553461390031599771745521424396785654581933571265667808748111980090974957260761000757604820979101297358120922298592234740875177236062894783164552302462628937295358388150195446697489031293109013309762535670573978754467165909317661986130456903289900671195325191738317642936194620386661563818323798896603384981750347600443684859369154514995842060052339816110066341755900405948762727835343576361639463464550838815572436957787592886602147966619994834826069416546652677470339083902735890273935226191545057881082465572825670183739641977681216520514391140183588416850480357196411737446328815184112539635019432090462305877120076495298212197564210036392696961601874029841149704245552760495442737309067483115018409516712313502825830872872111083249422705440450235927447348935990916986921043117590201416567231780697485156423295299034796386346581400477775458215203018683551329823765628243351067439558456522736816959022669766946054832398428724308833883140164982281187898350884499320982168724934517450227522797161034365768933372967006760431725368104015195840137653380156174212437957915300209089929738535320348694746644741813335225957939299339246236114356947602933089686732458991464576720189357148900239439956828649207385523097539744935983435859608586311949835562684839438974351768364807341342842666446784120845783596083227185681461400015456454148491544671699745060359176476341288192265855489413338520447177219881962345770254225026484619239919532106082136121464697451562891300862220779658101534405923478519612732249555694471324843205347213969735890511300799506420595272331992826373869644548722940084483818638196372715416659899579669479093045606147489222117634230515631141313442432445382016671752792697840259975028564700600377489326949146867423889063735012956768788064115067032490577620851371964044865347113336711655942145525981054863939171987176134273733638373142473571064147923719442576546930660732055665433443706008741606730432519650201837800848994706451192237733410071267227920491487644064635103111561474101526270455573553619443330227230260360151779794231770357331593633864873841088304498281398693076772389904382616538469299928951879664205961014121200361171856676602902709299650021222358175477393350653798785784758792464001134180825329979188495924431248134996699466784762952066931150668592147643118377825341077814431314844846256182968746543608847403419466141531230644549902792893255997399040599522554983079512637070999955857605132777065150890343190149770567615280040976803897853580436186876610098789591894821564709609944567438771409283324818162854376613225139261194299340779316486305215709097207515374982368134470327071808508754227087183240423713030713938841671290871346755870475595143119614347335020720877920672897150195253533589819778717307063451794941996887057141183386359083937721109457530679584175678465157417608558121376345891075424620848748302104019956121017652129333413501178890592187236990146441366249564802233485273787138430777886225188075258653497456433816721562913679037778148399550198018730350846376785150541905037548309330666358266906876651198422462642331356019586397043456965731092192403069113242601794182616828688507267062202706479800669239192603207972838792383326020077292949111983721153309698515434152637591710797584170412249333426694194035471147622119690340902071705760571113789147854591874664334963671379460416929227758505456428270490692598509548204032576813038362774811565622535248446507663267920047668761955008867312537191287917991990046895965922856224206023615600485055321064178559245446965746150888516017720002188959778823371073676548143684868553610977346852157746156477846013058076785877394283041156194027261126447964696490368715429475987735561658864573133570715441569324876683496296528785341458346327990314988027098649769265599363061595558968813736694070412712341729571859052261464470758590579149674398264663743387803341087699761272653496014119339789419176270355992947937712614049199005962444732229032704109416461769742318392003213832262308907602367703696464535358372242838007489219332597531067008966861538386761071037431687128211479909836287497550919947812975165419012930756533749097633038518454007720142084522184709217889257697362824816711457173825110073704601015926024474510166081301965367427185042727331011504119556664050316847172583261336569387399335949975919445503315420366047988716294047228922871329028500660574299322775947863144370216557979369914480336097009804145267456146769148928948931377535883971696214726517563865944447958949279355452817781197887347142145030244026839185683491903710989882859615654962791292106784708599973852774916558973559924743726645063449704187409991464014312234934481971633830999818521663889469724056405648743897983216217794576290531209429822090878100285517713113822675631290220805539216761921097899109722238324400185403153384780122687727025920867538924774194792300763787101251971469733707136459968253472589695432676927262403750949600553095891911580763296460801682844730295993016636271109162563246591921151398200473864814098634428519545982037906738100653493547184468366870885031323829594001377115800698202812592185533428504336079836175765409298370633297180685416864295059144979396681360539126092931875389186524750525215183927273324667327006419922760041950038684753357374932326955451707206117547437193814342698175832451119288195879462844096679734429930048475947895137733506548709182406058922484513052556621001691243655833672010939239451267276757147627568006582409480878432117874933417702328696308196845435893798303321587045797906959804735711170859032317672762129175277251247450450911996873346057737200838478042079304841495022826001525302608172244940972004528081612970652035593783502868595653131298492896207610969207711838562500605488742016768248754400037352212656641751283923813933035325032258043551387432142598817784161540923076103820791906936531341446708903290096522278402373909547760350229765999984492249862876795590943548746623574449374749674021074630428342205788142179144327985761407208453837523027619209428627144486443417708789135840505521862515619815786660110678136152344687274122709355889299735846019050410078621304554053380332986808757084741419296858313378528290278046510029300680197636626106294028725837380585795536295997274569441066369543067627367457646147062694345215529686404709060566807357263052291924684210724763241118562236529185566572358041925739899936993909947822507971040888885593582299917514308860304491829676050765851816172605564604294829184474036242130900200295985954231547203033281412760814961409772286795060707566549164620589645141956545378493293839837570897200961567279833775606619199768114025619599175695242210248421672872880841508681912618314776717048105892316237004724220355371408968372951328171232862152097558090227587859478312523657469807537611813388699225442613769106119508654198294402982237950124671008367076055956923317575152162519263760542616240608165004123979369872466428615077705351707465848450786926278747053329316154988015816276951455637741865703718917144555941984475040741558091173518769825818596440422469348372955213898119827079789102711976184585367779831973468647132775967341562436912354141737957397239161254525558942958699279646416363788536128661766220775559513157243211278014522179247784925738319882100198122823794264271941162072075860979906818880403944822708042539059818754219998440158928041960929518082964688845485841129131766103544754634252875531193728211408042637662722979471415487597700425106603428424302112397035761776213517366770397250623552207345682504299824621765713423433016763368403483892168630371791476010937269446981617583115388455675097183065907861953881655287953055601427137107006148246717828878199457915496700960916890043060944981880421682298180705463356413222743673799228808158749076734695357991370175429012349005669383872289144327945747907867062532212749243546919942950152866140898238002316460479674781351948224142082821408610071906160337209049648831869430007388415973741084894847330949669186749563512326771125569913326129288160679851915013594634505942179169472067065288610516212336660458439283595194651848206313564652064120290061157810416058727858158845610774020236992999367873112084610075505775578380359416641122308909041217385588860056274068651042132302185489899559516707123253336732400289808304556320484974338754079273704075386162750525375944759698539103485755484090334618762118081160706385342995648569896395928726948359664200627755248409126690572042920440534263596149570214204686552185468890082032285455762936648680107837474568827112574296821063975409584084121211296523969562296129760393281675855818536532484801620024622716035007969002532866896371193969395790279774156390533751953877073547191249277433513871101414932070814557776828569109457390743544564832111714703283052063341494703140359627377991098626687759689499405890421606323349536453191571728515318551194048609676760076291236653306899576935188225219043941195815705819294970342994103936887401637405824598455521068437037935940343665194310326366708545783044727397628928833764913520155106797488106427623216112161278168227177031587499460387202987945386637911435819594734594440826298917252289024510479410381877171778762135034268770152943947420284722523513560848441870670002249459986459475739108918978437938340366240284302859256200407258819734067501401202418235661159044285090697908770062278731411924446326299985044717681033675029611485026716487243549497565816676473938813584007712699955950711836299442715068974823567134906984952099761134831126116783367428757623172394074198998424565200955234171822178119782942402808991176502033666232542780345930436131098867669096583606484029552004489361339467774617116974785527653930000621890575765938344907228164988805140841193250888331205762506818773245750090447149731780236449169056062848158578144669960398532216212111797144779922416704673339660639929620132451963904088555012571790797704263740990484897204564187891100274825672393936144323468985763779465097898183328628244280334213852155347481404697206892619927975860388659899769588919081644672865433874027058723946657863910656481055929485915168811056503298737784490666429543576084587549260186809205658925677204400353864977767365157086409035349500027328656393863262461187409409523021585699836829110236948543339027027843524740420761912268213877100915585415798344928498393001085766878265865012147430943014234904389644733854863167277829647618797991749791604118948062964894918267643707783489636802193248848134834229041197615978214511930916802787988460539685758426711920229426290737669450613584280870505780592772448670151869206345068657402509627122091304513629695387599002936722370798395130287172443216261550187238363176804237989166521844661057165162493771696186514836222646108919023744616862749278222608405399854136583936338754750197404744138762648566392712006380832476894769394010715496111403371326214482338786400417321557967916863625307679010306133248931197564871114984961970463056256105219186361829698086557554667925598621691763902151785772379951722281783594166995923618227877490867768762688966790800515114404697973693292037921877889086718168027561520973069875151701771210292616843067334565008922352975572919404854280922539632785270620615400692376789501059647221435374987515105669847277750960142262414967440228190437227938683393094124793036947516410660688677018065165483075775146686995071287807336835391256858505450135881226435630775912474226333546310971825540691415211198040207060169829647072402001293989872726282020320522032582104414379572954657393480755474309340045650627247604779622016847196591214903061554574631439400443927688139781301575951441808074999128588881586920304579986007963088409578299233307423952242288508157382905274750945166300174084679745386006075509650436536630170735365937370082966712232835944061528312432901798347003115531224737634834570047937687802664707342363944723359967168892759407649089336422752986184375924774446084388474100065478423555949585531663513327233563562143435778710994156255099995842494151621530473251287812288919969219537027043146361341185740646519546562494324297886807316886789214788622643723059624265775334577574057007322110636718468344871204272365195816941185957352635064980479022977039912614386059183526199294543482270634764066906739856516111033304013163522309087114775878354722457487111839965596052222533405270997436867403460549846361207537267011111120893109814592172484054780608686236153314135191625449623913281689131010496053177531939034298833222121710259721671484139987496218863220123463146852335724982194006277064307187552487126134033843997560943318700765878355300028516086565202998083781470530675098686556834917061070315887437085378860149583667372928625535420444684496636017328067851448841468153559364770991675502034595065418793780214852996726065131967277369656391681853554422201324125211999352870332250088813652649703042293905466476786133548558994479322879263163568605857940016437537181184521219902559636823733134366197911448369628240153908665282782223157382907568141694253128209902715923358216286243403795363447159330863589837184167198129373243335601257064389098333422635301500230036616542230267796282619315772995611042979838130034980451066020723706546146861640934475093912439867079351438761282929699228524479431269293118752155760270028636325416604114280532123499345625290686286395686553146805488499212179049859082785098454567093489211133978856146773654886790734696294518098665625001228988717278455941239415811472166011869381958578352807310529165248578725714374788923253930063383281812100650193449064344386912253924466873246882197303425421997968254247713602456032525463631149012142350434483644882028464518159428596253296639261209348945585128042818755676534530450588972041980098583907484918300142629972375885384785078121196889180316455221029550990865913672934120300342520573900797822928504258932541759191074897744098463527637844763132820324818424866224528568637830577519024480413826253372034353830437568511074350855216268739502208909814397628835788128486766388568601440306522995020387228682457478251749305010054038447331799235460279654125168565031926588145563153080132931952888727840287329261208794966372721469512066632293386207702563314366105271349418488614043182538386570196973806203288203910257910637834941198200941773636827673906607777846831949564017148417853293958722992710703656578850117209935034098142096259859856765603518545891769065312507876062143953002371989779136662773857652121210503830234346020085632658485665233366672897319020697333849702935586276930969956168745237969131080677796284221781438921099191892909536803352047517555234696989683486840897366974092155230211757679938387852492134520906128430453436861966640985929411214135283691269209950266169124815131696461119257474859730364321108494027826955447629611676738906730835187368535981304420672041439770650547883190012475036654355214272615925222863061802195602633714499831271555006644785215576182373253032623153560695583154540392691402013214797010893594402859706236385018518099334331202684944947627943516824349834514196601816615609440890303897130369798501677401309990818078557411906526845104835427452987436671636753911514323274481526079730303834906692413894123869896974430094905920052703374930268629877295321709732981441665370616069720957028736709905591274042477884963945112009972655043846842399726414473237633390895096704842644420057035344621522517684361958030583385314687131053903355658670458462543432531648446864400203823864522525540639885910518275252517478147517116887679578617469413023245610205431239490390984754297668382208957323035264405414904309032363164490391963910666366497881369473192698909424544710587238024777942457828894078462321023217261979079399056741663134633925345025600705916697831977466318925448797028014357646498580956471244950285346221222282821394141926031255628332160313603646242626361500056626439745985091238240266249966481997855213737710963711586488197002127698842857765908731656814956818053477874893216785989847573187767861466872448012255017180496541673625593151798087712848029301892144049102563630059553532238077996773433335064615192444937463361186021416880890925009953043160625897120706504480923596069970084528187749737818111732604549074523020069065043199649166140408635436990881458398209471910759645748363982758965384832819545676192054797495531213052637701907721744447233721844159043900836688007271619411698372063536998792335013216558369068797386045111917652458487196038404561797887142191156777473591672755823140602410031723878093604791587803680238209944687670003636551312512583199982465458860310117626993302228612672686289129028553523014389784808032235458533716879054706435246680582105623471906917369135254183724264188938158780470224609963557720397305902705846547518904829006680508994937890844075053961061340771507650040798254872456175718510752200254701335105253818102787621733605627407137306406860053114619970858748405368391007324662676353108190997080278204715607841260798768986303800241259207162824166450787640188775866308065543422794962410572225812497383702772922533868691611507624615461942758624649833776030855222524691798317767944538603425235720703572245016007962816602034991574531529919394763865240162562987585926312589726580181826828099058949866891264185087784134829462814788755392056182059317607997104099895500369050252131799650859324003124815130477309730081181868807819776077651530732779160361254798001608479302283508144573871659576450001843797928777286054291357129169127888017872825588850245847528710710029951335327233433165539836655710094078255801405548365401860878272879058206417266098626445405154449790349828897666158482913588688679526732276059181241269302244142182807954660395614042328330289090600301280178771436916711506445049896799635180559029680057657634739903774634000294925776993763271079086253901629772934007679396068158600536971392681536748510074296941082646511856349879530693943423020297880311856318331586520571999431383228002770309947791109537814983656283608565653460274387502317205842680474537114253569425245787307032827178294607002578120146595074644771062313019597212119499000701168153023076726446191073773480814908745554054051060007873507030460961510835821260856014750552572374372907704112311038603061889851848331868971831959489404879822116538496754112323756229823053195916862761341864645698249670925584247599734433836017927232714412808297719654915330996248191628021588028276044947957811032243261273023871833904921641537100699272631544034118561504141252540992455016691364842818931001282876181075955641749078760561860324857016065322121460641072477168887891602797097675294302729829717820851698484951059240387920678065773596110423318953017686980337822969298136878060197867670546651928923568158076245654875487587937811465366360422379903966100251419584091760944644718991057772079172314957868709384751172365338187782774419430128551700290698299745758055976396406925207360000793327141429095175871396290245156161991246836999823822583099046577369384056050051593986077717945964035527478383961286945525676919044965231367677810978841427883610911409913096268204480454622236268909792136972834134625696433932757503806317743840201530896901859340055268927024183133301460417060148016735756763048960861455971647029779913372240320736076170690198528481144473643479896417119323397383628169889315577601837339064949867729876334065671610682791541856079073314729844735244095430585797596503296742132772685400799746123437802368218536495165634276215316410885554383733373672900814890822987340502862754471538071614841752924893340839578118625275006500851388476832026979823870512748131352131979342161637140194338962061761801446976102255515409889982724365930630061609442874169625794272683056094637710348991198224431299449185356529311742288247082724886796683087596611192113804137057154773397640176005168279978654424107787812699667607068904634686031585297788749926920001098584323324753066573419946466856982317393192573241888231896864120191289047729168376925843056881894660333173941200882544738193661882885777983777000035476272142023065689156905028770235952058943225650128077166381387292296118900407702005210438804035283149093042198729698308481960321716907611512531994444225484912144493122147151310439261127348341665276811716026209722633018353340533697119561073417252268875774070911255144246505323105368238315223435645107280372531471434095356820892701399448600941374632622708764242942546475803073331651144408913861016423572838947409814679215073701408884666965928588742259615992006616853436148468807541418685817117811698445962169802756685844060576671184110786491860207475339330780501631516156666017969921593387300601474709220175669820385648740790714118847796979701986428385662671622717404531784835492013485198942323349252708716467149583173270275552696097435579859821392159755976312052988244333716277691028341950871056198012365832088693028803166151745469948195425852576379843833280354291836168617232073185823995593904744136311170300083708668451468435212185666632577635249036544898546107495339439697341963070845795683540490095985164459039185805407986548664429022556545723237203380740193329796118559382517371532176675128947141372031309436795767380675564182775258791653614808983357169788936022339169601623586756169401974054225045153983647137861508660658530363408162273396343183140543170156684765859818914028665279121769928972035229301596648907575905107753075015909644329762231892868926464489617972047421029742563126472736551096348999532771708127491965825618992789397623362918127281488403469263793219083292652699423499969556338280671860474819980897169284033783108491715353041180490586670791774454722003335011072589211974138804421409653411957880624955848911086022731263379221838577416549662248246247115800485070969778696454585251067542938036521794314157797518284590654867495310298144793191162489254397180797199553013726467536072497497191874580774262993922400166461693199995965542605934931732774448841124244919213470286212750475160182293555978998260905182407083245576264130178964010006458347200984374605201025613068825911332703605825691827573284801515470878887349056129457038943350124043066793592955898738170659257449913364294635524395482672440593313898274335783769324989885057531579847509072522294294081769815017990241287242684256738775788356240738034053893917584891079909128835505662748773727509455164829909539631991405311144548176218783901181912507098505210117526116999844076241973383267062578195338687236097191116076655666150839750052803404071615926500990563063700450975174842973474949013373260069768947123535086568634692535513786358400079375878020476970646087187539489248278434259832517295019751359250107137870271123662901345239884307391707739963675885477305496260709743531505487340097423883499939264612708227201721134235792840016745376205299013690961999845768916316816280080196032241111234490891171697155371852434520415166364773539327930197485908179115845841138824995076259073491296843472166060201894634951575682398692555584734416568922368052532573710881931644436722412453928658559095582330378108590749604966118080953916726381548540063161101022831262989145742301641816935565014455912444626132128254015315722043699311907718610663296294903645158553451189279589228771433319325226581468309721008234399853593742697858652690302667645824443122132541068088527478538176681417518727159544220114347898863278313769469482829323071994614347806378630573977396556314216466633282607064148107460912763168823102288985607146477195664846473928216487703012774243087208027999366757920096745127419427919651059741505057760087798604045014147521739714014740384773016353672427269867429652680407042445675359225019726728926305170745174431431318149535729575386552259220046670549570269002094168752036930315823116944786480366967596458501980664434125799004551703768686810814846112365476508081870893668574533063347523019842061376236428805186491885952670855768463290020874475513902411016891499712559824020173082768761741034393060638413184208111629688131533431344819549783447519022946707798245665153487926358507233640295521443481471153186279807084513910114238201549503757386986051422804556590944928621975843369074063738184062160271123879803094407291767066480574078073759046361378091761014969539805588382227652424150511429090590446574386901531054245742375465936142526022661167172820021400275306127172389860066535181294838192381563588871455465949079141816502707703373227756320858214435798202897086711992021500519460299024930752738255270842207084707808375368195582611678499740276436996554045256484283161945411795250450129336691273049221064496271508258865642656413173752447220113386625126389355820436335152049865011029827238985438657528548923815414372847985624739951936427802692072079478272500399271685648095586072258455381895996706481215912877892345361027897983509564076052937463377217657316529294281003751420223292536386485995509719434341665624944187657139674608109644867218379741942947301591162837600702722065881711064766564616186668808600399148206775453446549401429315016409548466044516328377733460125544442033182867294080230698369905933758446583537490882395261863554965198651924052516515873283955442268573619853515983522634222136756850049153387288693934884141591654531051365676207198413492569962314126945249207300847995972954906175214522367025834110542477408591991240048867431268632595994059022787659380105974184566023320749747470610256248434367819390313882301130848593080665297651944157556406618790687064612227362061793386581606227611352916282928853062652830222339206654037720403980480264996397440704651409427421479038553827496217812193932715471611339009852541764694644188314931698242614825154235300669511252637240705868432450646683449113737293651843288819999364135032018338122692907926835328352307938846735339147345966902401824555062012045869050950914178445841585687224586876534235571036513429335185432589515685733222372803392488745671882675230959202753061209850679628374587898220707073835725953423851055833489166535208083299460888053881506503653686609012616916065907801524278488274253170277651391289136391720509412442354090725860666652406726219107911923372388883927189997658816838527886412850382458049505400875362380789079113971681147051553370049365034166212599364033640551050443950412690039468474570450076097031046760703235780223088718315039925524323747292015953491042996260443103324545817488323646471467422981844159102747406554413040225047742207379408105863562788029100713087969150328583891778180731398232869091429196063437876029165590815290035545634513911798745186416503151057460232323852101909259228882819659589043568311651917229685196641331169202520930334000216012852732115037356988282442486335408504784356242011812669301474537988139960353083126359932370032853299747146136181542358581073962522268427278040528495651536225306276736900377245408537441778677148361167407914113822685978505938545582985242623887495293637999521506646311726457835848556134884783375313033551913177478098575942498355896695067513563894165077022920089901218792891193589441698689764852203864342819420647124795636575668598849062082480222100754591559657154727341326775129161098972109444975979914303958823440439475464927361961211748735439707401761863517548424267365231805228086544556868438681405973397847994569868760008134030755318784584923520240443366190725126475684286538008367988199590578807963622593079013788492980539281709298817781270534443247024336459060794973170174860177290821326142369315292177371083406826870894261948240343492653457158341695614605405943658724314814548843700834014970515905060481697420266285819898323806631659816718423578056186391894572089884871837905358869517353257103020536207562523503193655925311829546361446324951630505539458436384705564408824230858886115411062372146313330347823047480744662480499706484783970917838357536978503924138207063529445956077804710936331911147339086713944776211161625452782040927279277808180866144594708315380762272076430836522086223014416271834175661953692462857532730719113220092458312769810686578765244049025701165943392948972657759828457526386088838792942507642487226132056441420950735263004044924456049176087177615084593488185868232261928633394346524771180210109343897591669304203211035033753694850231126605757899074998332925497500001500072223583514196696027490380104626373070637148523246815170441626307409864158685583755276714288223630347014202589806630729883066301522787799242914941056139212339585444848879876517455502477542484481157623956454876064134058750300441655578058610414466415413217519090148216904941715772773207504081672093907346699493237651893054325420421381538572844621851894386024594646119115050384736900611591177164068926741597169258262920346174370615727288348046016731879928378342257313978745181783071702385608640088216994427817686816053032909829233115742846179881390258781211029172777391002379531307182278777185845124590845209537980104414065704168736497112999113260610949764912012550112924914323850350218832001775293435481145420337829216393782232230857028746495283358871476830826221436555527010512743123346318310984733382180532670551014025001926576723234489710908099531542950116322518028490561978341340254539809013405590084336685759153055837879353523500514566637669994163613688554377541497575912264930701810036183233981573386397256320978833988570220281682481918367459081399192857471615862455103138588425473770567198611113656129323401380020316577532888455052065340628968023170128330155323110333850645296267108068605286508842297142739780381913071309405479410185734460468994451499512222782674627547169668358217946300732879762744661163077820062190697911388760583337528103818200236055288054835471424525613972694111812142194560550830153612591526485115531969271213182089201126228485357365590924167679113409745397842665056364359684998661089397751322625684123013599184401504492517053117585583866129362513043565664651600219337487352313298745342549823988961630324127409598399091195500924820988354455233009420286112721680902074230208583921068493471455606645123686213363825895691042489405376130002901376650100968966821066766600879752426723801400412173115177493859907914675653024569888535743140790154838580320545114375372025424248708939093811932510099198478527926934047643547504494900528762149637444017113628129237254724070960626218858083557537828316414173479296514798745612649091660008115745307080912627434898820307624766887679621038211666473979394477874130403406644458571860766882299201335134638742520928789070744439480468095440638120695304835530511627810109245474279207084966853305324967731054166059947170086173538469253539785251640299346767300383525381233065077373701157544543891408957831896348718229283424076112929280115371584382725907268500715922794281893574783523865581399882469008789070352845024717137533424372769502556890127366900430002015846485376079671770967912547501064884766602598480532729477640698230885626622507991165834672906424511521947157708737058838437021338068777483864525784321295710718956409181427510472064996535066808433628734060933187223380724167601362995375828435360036756955884501267036869155761587338524039640270973824913799670334304483517143045682783516194500218159631043967698481533379958518342445857785752323999448862806091377087048908092696933013518387043922350410765863694958457832901830861238369289202238274668846927228895715199458829520943711127366260967715811780710259079274216341546173475921294130873140350663339212888948645505853461740810760762746650260457736926948048054054690264506185528893109896641886603357512095269262768472118119761579774662017546457010873252707420325073071161330157797415844021486686674861248818097571185335869903485844752920721365672924113661011774879668373569850596249246629793963628369776836356881059711125967749594656589280108365153648278969616704585322674123818458450666449334904094150930580189687216247169189251634373196006657577837064112204837777094949657067690462483715489206780383241690913667406807208796018663898217909208881812541570510005118990506121166856912399384707238103116580047285432544133421514635254491004992250477921300823872213239906609542789624721288605419220115991448422240264875836994073358150045719533094539907278971324796181865527994220344459788861731399117204690090259735184851404617374371137967032015135753453289255601490896455218364815269980119800618907800720274136285696630127409490807004965665123128075962396740719402394763248539344647579052053388031661173084815583171460863234490104263325395752157202738485229488122548764432445267566400726111103683850442340361368875244715605781694792973817284197908130994554638306968410189550357608674798441291222787634176169845919185957297544980137035956166832333256953095476896667474523497474289074356120716751646240905298731964266614010785953733560651117382570709143489118224148150853962413873753118747071726168651912205027199732667346405793939060781904968153237494004079955733560157494996026832163469976587648196516228481126469992222492490358052996732197013801534702589594556236949916361231812685772777003391287927433441477215178277718702875581845151493283974956555150708226743267418258300911278001026550718402571959613542085793749343450713670911016599215242843471665577657582175075791864751914662317685787036832699764674698084728899241644637907979206536366524992314318713507104573456300566683096992267796355569405302377972778565817637720992346848934935460091657385884722697257282667519937126114780349839042529445949815037910815884048586195931550681518456280693159275004951721824268197091882278089409557018365599332663361037375631683087799817235927023557826380728336764674090155538529013015966470343102105907866394063801204988401424288927588988122525754544395779700306723181203461237151915285257320944455061863873249450152861762511840578112361609866847278518756562084148122969223750572673518754259441332322179653971448938930932187482382816490013382941701856657202735216875749706767855894931090881296264340216107415270291780084385351175545135847192898861763209742507089885827585378050537510923435237998215908473001252045221284623128386953383233365991083721988440913713927254961682736203569575044238010232770582331132792345694622977380907293933076251373598107578240386425969600886205891711345895013809150815246487557670136723112860144121154561122301619764342049685735810655069994741411491022011477272172939711786439811840198359126650839111744588938287879999200383622346648809538545682412865572568126150889541708797071907987912369966241010212116511397602625378604613224453799851560825869176565127452485992954880525456081108749837752326011807352937694596440824292366331125025141310901066804763091624637718289134224285855751483161471088306418116356211276723962795800010280462336433524215326246159954541290003803871357353106941848962259654219656989818899783193124693786912410327698680038425183719664479251126375048526397340474378469754968297790344771673924569454679008216280562551322315454549766395451282169951505392923119064632397613554852723514015242871321142218744182836134221557104482527133390008462282434091767120736039644143796667453567441548880489440947850473937330690502733396759394316856900700664315924823441718849285908846962474043562523765561620632418592042356252118482766018547024726772851849824466281324948062014218423692849138875786975280072341124944025375011394240907644174568017333930814111862713385648065089485780227473896506574283910585543925490557458066670771619657644300235637783882892514907116094398338517411995705342839788908190290133091565982961737583707825922574435698181182649610357755128886362070150290778313395425192178232510421603578247856396954671450655990778092548748105920853546713173184463342041891708836682537716215042164733524646702461390249649183117555521900748192878112384483528959637632398625397619715689909889717865072112536805127000370584921205523250421162144980458667843824310160229298626942373466290421177786470498874026173581348403252192121748641675533066540577821030248252894666306153652537302772915785326289979146372765094141401783945363951679186208638084193622805420607588512994688988671937075718230266484885947706372199904260610575389726830936516392890999725550039228400812965583853202411321739216699988035111251773390679342853644088998656656456141082374522207001300782332699269724833972202129960623447337142544348970523278965742654918748865652196059703107520221721667670273772782289903886288072312826889612018313818855764411789107770483260756573140476015544071452945539863028364313814071845808150072977730319898433894166471201519325620990557072154564139908843783506480295644775992520611385783944931911488852538165776816231247492598581838086372170001687857879888982512184764322338007082084984349997762153825294937642802422978315790993244690956299651621428561821894512817022990109866862407425057332317855474021225543426769300218074423558860055407147564771976750747766479864608942586725324995864864704877211857481655631322253191375716574872892830706733258671470322400511067590415539027382452536831754508435368242349519646225099550915767542632243007041341812323948245630507651041604397754411246516622002899615161550561940077307420407569984608001283977695298013449743470500827291461642326102390280722567120550891050978004115920519551192684125337909750058402307516863668711355993894539263416669837040655684153346668263055349720381153960899888558700119830677789492352351389333529896542711985573262091385004747959871207989074531518016753016604827775580562266532092041379032428092465172229026245656076073906886120948963121656294405880471727972234492033016117565665702287240027685807358974908894814371714761254255523964714274988771406026631084876537857762851397298290650065728084605894968263158987553109468025539046982205923399642855395648319578231457618742197264088198215130246532046479007496941609043330831962766460492547136975761375535828294277366542120052668568374533400029747092572300674344423749694441767179240482020646988163413897463422755990063360174435463716584823302582546405124319818383416883367388625291589116406761288242284145611164103732415689075293152474613940480965658803400473100931565775718485802177422302897762683509723869583617282269169423996168786521386386093499790306071430532406204653590806933872525158082750954851633191056606185078662887019311934724004513545342360782381150551375863998513423498845404204459195738194554055249530336128657966199369136259273009418079357397993624120700803841946791994606956480485038608076482502335994917231660238666173979446870136137192440352716614641105207860247272973633709958612418742503341998397705733428776621126410289199500955851798681486108594881932865075848786561859709130948064673066113735429630901585738903752318496993500479791302836015687376807120466217781690663134414071446030505326464282656832183979845742185589011269520719744174224029760794003781539218464487302208864586033449053127183174625047500286826155581412329715569926993545746993038414593855233301256999859575552441922076608533893310709350529294535411093229293398832216961712633697693637945735480655920536659587013500400461829089213353004151679189688589236855883404607184470548973316147457198222292436992441615969534833422495990927520966735880156946800394297521465243429664586104046434849406867770311979618815433543080609149205781385482007549278116761469115433289529324667007579844962070121604266299212429910449085457506818777988874917107585760841121585867393621712966561284895294831003900888998935021533080164494837250623949939885385384808142582449218279128742839275038988181397968664940183161721988602388279818371988120123230324413326649171426395863042255625376125422646022655254004303928776157984037367444467941178316528926722796943245700583049890228361259194602868423498153674631876037560876521732269541009663625769658999189652733625181699056220675686182077806300461264926396395900891753256190995721465485181081732631561218862648592642371468400600674938446177978158471253527932402966148444241575575109356395152708377091874066131546407466761572454314345774061923629888895995345950998276623807909249149129420330163430174874018174827444756017214016275224321713308944194234895954250916806469842791511071527375940230554743381669226591863480649149512227087965398375495268741759311250836937612277348524971372695179255606312815604114628028301709498533747487387553763053340442523975595702634781494364843220546101251346776403698875683568634420479393574928544805362465230781410621414979782169136584486131182885498808757979079702252427887717991800790794755352717808953034407415007191246733028270810172648051102787009641793194125205054851617070692698345092079234634947134370498839524282924846812234864915706456367713343977104632087540844977135875882104062681788565324522775309946403821980649667790615278670175909370331495546582780829001874547414626837470442448207582643809521944995460630460193335915559717655902734024692401994969214667401276019990045387138131429846646587464285584411944351473354613022915867608627290806084210737077438671719933474597041401870906624771569469848906612423680992499492265341920166913979833353527882166164686960918678298010174662399534801638244022243818642057621366028554586325291632738734741406022083322537712741364136015648486983383662464072917602428130216801651877387062110992123806041225444615708498943656756075990584652777608383246562288448068994984551777300453751874482996699923861954883079634607902741018992417084591940732316108192337579483108375921171387365635255233199160044034218500106414286921517462859051418107377238312880739442818777175550032935998264883819571620746987709683584556948775010226576054317306231168494255562704366608207320781256343145126056421702816955194969975622170740962656612254912476477440403650976837852385833582890514659079796272452373369536952101206522500080077764342734133923360919954611383008085052172449044240241559104761747331539373287059375069537718183333214509411142194581649930837425426011461692337381553435727406046292546103531145625529562726290228765767801680941762233714270222123498541003752628864291995924986970928684616148185714162248827171125569766669440410513582691139745325940456875389728073956065810620762798928732924705548769909180192772729590312208076373912956683033615594562906921554693453117925642385836235300385445153703460090581341624212888523700692248697641932878859812150596300760300662135283504347616309545454000367427160105173733433554196405264667084433422591486801936430515073580012728163330395332503584790709791963897405955650979569078777107664524990774577661886025237903236523621531465209789484065335313564631294912171068232062029943515531376583332159251162042359917440098454188924389414847029780271759745289369875930382297961760632721777765890434072243979864432201279070474603071617335911814467790681598092183507719295231823324109583959774293996295118042243810449240049209034579222920220295587728843177709314615300034577282287413871885354199040925121542206928933550894935645097882215458261057930374049824546694898149208704933932673345139193559019829067903513368280249410863336412077819338766719686704969056793750964846924885167226163625337481936662959447706639358094305073723637375154932468787574896339585812934921265761246831686626684359806244778085837005884723216519957400644459084499555698785488241217426998497971127782547958915947256712160867223808882863108425468869387655810227124155833069400816430193800774282461645529584154212597381508642155152237771931163867874522368380632920972681476045805306044338596072230742582620996191394168732353409145425058370317612181864102534258963052176877937531853671797475122597628078026701121312453853456536536214957593586030563622116501527737115161921951060559902880923121598758290538057323062802732731939973965040425637830590185777325942546994875896325561005208150048562859375011651064684058331619907290050228343684626688444674609615263905879486554793773653325220691797477478293857814277952428221155947882732630880328740291848200877069613450834924971189111483173874955110401082766196213972887078784660022105598514654085429042558796101213631275616810144588655890310043009534098028000381364729253956325914253118049281777875047448323059113879133088408832746945643249406760406951096321568907300242054006768847596748945638953658057264923012085813068738317635813374039382509627507824982048325359096337435159970924834971981308687657466584029097136792497419149130487452902460831760977176033688330657824791766324242393070973797363530944259251366432839827640970383361030225881230746658516366007266425454155176555427503532464353719342549650749887305326163314616479489952686021221539627031337771037847213502884915929941477132971057691405684118973562089748143749905305242402770161628356866060259718294041963814630793392004701329387617993122539017369119463571405672618317101134183717426642057067099922081283384046730443355476382538844919282892131543482232269229997393471359726203961271315881197771734063643809571973094703361436447301739097814713671766611101236697275067328586592326958785350514630955424451660793282481270039276579956061156999661310177957849287248596215759206710866339277767887861498420464969833300183091309106641661574324456638977604076533364414590966378925282854969163693046540021932235125039183653661760558034972448598315267146609026955461920746842527026726230984426543627051523553845288896049464311782492583922664404203227188731469208498625025223779055021130485311580044863550885429592822411241901395177625206267563991583832963657501545588804311259954870124430293882954382756421273323566208543268814112136425529272739677060639672489214755650175463271505950854037477843123911131612562361351329128832230658601583372215966895270725774253900362790015154256796325452163718784719399292523352235039145275076002070435763639016675014990743497405946725759505441214321301779599859073341660011994772749101689992027926323210016481669258853428898407990072678128867895088703758333245661558357393013041867715766280745386497653858574668155909786503450735401670350975368564045053696309877235099835681802541175969189864065093535982843339001551133663426404188253262136575107159273806448788754271505611423813078300554691534316847259738307456399323559033758377578471264394645289229835991142035069240130595425818812625801382983185712480828388487371749417006431783987822936816845183437438143432805128261610949714106470591092614053010558123580589963040837250333986764719313043506401529570543715678968076768553045082301797760492891724232000021872140450460273341508331343209430771844465701748254679302328528511572807254127955567846016437946090993937180683318862430679562285434792235772173176338284052799810389548856625723378029401305176516648156061228739392357174073006753749549637128740875424587342111131491661420807264612916488774475904615159360191424334258096550517327636647235224931296236329233974628726062071990181190313014727211220532707453613289200791787683591470586502571064349404921132351707663292755182687090914951174719859285766281329962113403471318638670176199491240413893417800142872575750034901907925106498244083937053236121920280591386507902109619488859173543254698832064988859121672994797243821138038383583851273065826131965123876575651557668809835252586905840809812183168079086772145641174206864546220342165414886663600767227686016773385813147852631373240590190873780728154335665530408679143440913187161840234265604603674943860112038790759971641903965943181193899989933865832977468193320287504102930080215761768992272310143265017699496214089496463170221130702768475506941607447467652392101834538143396715811771206286920832322082278841567441821518466882005474738525727083530653825668199080229544132208267358804749005736733336931003103211453058169252922468667676425439702286189952738960843616449357502436031104815664605175765052484823020272003621521995018838605943784044151313781398311613481829088915241001769558761264863416738382089909751054770708262250051459526643808537192604669999553425453959811082166450600443129615508306734558035906909908967138119276305898664268074643707389642399227008697898521935231880949946393519385937184024885566772744215848461970363722554909066575486933245792409476238451780267764887674052704254658162647753040525108424988116824771396077214339081375679937850268560759312797164164220348548980939128296712670743102424227003161175879402131403853685115016468375971779098188251460813361669490619556702796202460058962996975696682759373890119242482317195370683212985882616322607373767093334630229045430736480477613338001659154505540302005614451613322685502584776968584116204261459196644488642146342526979718581263493869628318828750406708437966376378181503822030151500996415235013439093216444795619155857755714065134633775651752406413727858933883011241931130205994566107977254551721891876398283193116574388799119052065813943795407140790912684813575881216734651637027923004092710352919439909382632306596772698071807156541561228119640428144401873606842269998705264372343946583583177060271993143507137185886425261172869460129837379314963883592044159543287603552763718667207523169075797038491738323081191984610651297082646659959244839947033786660715114807906586153722643900080523893001095665650379976250639953049287923569119599302732480508355519776624664748640459658929350426146879235322281307856845969686795203342478806410068656324332353660283698793298756222785150363709697655109693215914174156318705233472860821703103088942635670918307249040457642768189037065675524738430191019262645406948574275834846995600193725034938846119671597328232523629638334038208295903581074528303842852434165231666567344928716372372119062043464036708736320920610059571483628338464683105804801099462324622980799356325917093778781175507768092222010649280711863010062888423537119972752084701772070045965765522181340340791497205523722950841098114558585152335005954152229444872939402639525543684255115578657454914080075274110897612814314824346457189398130734411727719368899295343168377233391298076667629064504204007599056790993584522720731091015797685564686494158240949464470636883313169183157005637728946836025847018134051353910378763595263717223258789793847234167938273032813784040656548735488909084140675708103307351062969815822194550233385350628228250500272159057094159221338730912606675882964758755426510313399702574270380350859330079324873011557225547677937972070177315283955637859568725873189737949267204095901160281728226269595233475757494256837988753168906215573270849522582927279849757862510475892490172817899944784434984990186207164495153142654162265325064761797057534235032467775216776555582240743055653715887207405459619321676382298506106647070865730266556807040115624146318248295706930442475898660453753253343689868446579047520239558751468653407810636180063970597502857093486912060719767934260387292432935053152508745450822888335875044014566224238952175313444199311555736966876189529307766826830431624918473185146181672128725908866027262660580132704019639124841283547207412853070391745304288060075127578752000843236079680511453564676877235186322002501505054149250152231983122980936043879394537468210632146297500670957727588872591557528116576537792380540133665033629710617361289976825233289010899659266359678712170609426593322539342259775637032454553930058289188592054705603007980950552394914662139217019027349586097106963295728365754489460491871525419841688518689129101940669392885714195405965963888065428266097538149017679651342085277492788654953105446522220387065159250337685599708599791138273881786105646826621714615155842966308368726154968540383006337104749786176774223223850597538701801010077943069371929180208584069381887081308056262408115546817827166295900970127841443486964981704581829537984945010020741517191026060505594776490518444372969570199111826298747536042322812809697124546027260764698805332704601958418876852174293340203669917741462405313315574066961703141710213941861965852061875254879561059166638284420425942237460510074042648984572973674606760774690702563678428279497497206346828813054724192379231261243377786453978251054470338037478807230001115969050629562539988901104654529956701754169045195105838211760383610593383742053611173149730830627258095392359567479539524283027108984784502432755339506423505935658325025330099166260516777145554109416977078339286511813304569914166674212528819337690117390570051131022972174619738453228320042509024440076008099067075003487048750725142692802090909982157373744730825592319000736764685155914818430186285685500490199331492108717516693704984070746697184792388046512363145925135079870342480253821500049621482856537624178127587771995948871610609922659109950538041168074557984408705318197827318330936700042008503992679598200245910947695881408744871159722228299855921818141604605016601317219568587270432916560330181488543726734709532657589566697936512293447644063049610608921899888962216076933960601016219423559253059380210289882628871912776534082121148376172770406464630323338250418813508592850621690274592234700614665126399631007886944333503014773666758862893002837195576992161767085960239618521027583256610270303695446926672918842478841183943419592976758766069888046874945280601965226538396080165614543965195522676863788550298979394533815009699624555400770237520626861816788947259653886312461813342458267973829038415623052767705665523938933006040353786455274423433893742889238819484951530798291847505506836237859632446497133616551219039952689477475601374871788373680277548691338561561364675180790228387343921878402422979131279302220644793823888044856177539983386131752967353434401119659102980951710774671131777411209199483408966390969920634237630063335379388995300823671007300903506806732941936864490680970663154259977383515097768844035505987718602189560639257712737764171492988300057983818112480139568905445618291340104832748729777026664151197872099764570761702090226735066505379089766815874462716907515986052466379353587489185254458459984188755811800883353270056908796149052069698389576997825886725852873938310325508893854078880356456846349531367196395627553296284423263630982743511880010515286895151731443390937291326512772649739985772461046433628803014465235179400235523112797027932119329828071643317849084837854856779165463328094099701703892173719887594994283061893242874781761067542407940894457633823798501523394023103848327260627605034748926139980478730344177672203503920774372754716990774405799118218299290462772803268956268917728431727902231621237720665797264867479185713878070922441701415906224268385863861741451911943876837509615712274327485097985560819890692056348920080739108549137846716841877153996644423719446327625863038671269033847062859490257199406174171724985898966330449163459671717009671894883928112622844351939348755419528554916125890757767931049786565534802904720717163966538570127455758499159440512220734371947650193802591618492385036451872786060107852826883010600546411727681246807111787431110758490179312282303827527451911330411146662740709560297580101926386373858601976318792109217068722010504573435287083640136303949832883069717728232401090222262645125385731763996167247982362731435649186397886059416410907850408644535167281793176669578819648437660091099799224192240807249752008042491594304746387351265490551263301420662444648773069164431985135249159902480353765759744262373483783255177088883161244626746120942526127640897358538180536178332462476076632555545525190903639872953720826132166142834920763230845584713725106778620724813592823374649700848452770217815909300385290413388513786317233642808980691847970182991720424079140003614960839161938525358027227769106523042250540010240106350701488661437083615188794868861564191788352531284162992319358945759883760063072131353427417580730879392630163586764796934407947162331198680600439400681304285480492967817302800884168851616641796734870930376645757364182046831547234583196348352224285381743983373595101371433421363505314208015472464453554226360226991087034405914231845820476141043657028183700745622945306155853219601876264424360245296432256637586027921103117734936461493314157571331191443559003015547594507257162626163457818195728587438454619391315025913863347434477331333981676460725333038719234958901049340178225761029156994084960892024895887260279767331965774189944564195724824072532628646259228526998234509721758370847324597120071436411128549555212836807913622332059500585734639340214803763473349082938472158336084751067445625417477422031312587125017651971217446338909496126520775182254935100230538762426080437605670393879671847988179627227343040789310599768645793486772678120071307706550522029953585083400803664451664635409100192448932729824111318964283189490830428098405489776428718519449218444227123197009715461592960333006061878686349872468590487278762970053152174655181688981928771464285928174333479880509894145597222216372388805351384851698419637697847460394044776432805976409300129428579129529624420095119615369149299607336561387265017708709015174817447205355284846538656693062055505704198903039028911697108184109376738095937629911731893622276558053396364826202906744296218859488037231667795742832246124908946064336778366548948673591493670845990235368596180085068190072379557290738643866031004509095700512299856417018825628276354934379128888627113477959500514243183221614359696190820273407012789371061764813531055322508610111875297111644882290462853837778160517659757736774706044398514216365120392801649895936542016633296873964942856163905123614107618454816287857626812438393321100456516348979238437855247888650754351867662526742862553142241810063742456794638955091102135182224522770457808263625509534650214933753859419429699596894831159999507867346708566272065888179906295841244559446507295574966843858364932058035656720201470436551908975610154936933676927451202487365323897649241499471449077957402402226116147418180470362675387598284446310877162283782980391764453204179178758729262210018145893650634802347003972308556322701822914403748482335259473731626403474576365077689222679253560358203576087059671311389156024036816654930344139053503184736947302638879606810690506765996896431783957782533855709728426862021273269676481743637809318452336610215353893998596764858165549067085349897067770891524432313644845204605220456156112454412253109567753612116426335763914808411015776400331439312736274542056629216353096696246292578078127176866337642177530744474452795389769164231697962190944137191243497268650004800525618598370420684079527133642759495911456650199487914445706919190727985539762735426830478131116261561718520133486343989876351739241237396665008895031718701013460700229699649732157143253032942495181574626075086653591048915540493623014113719663556706442333950979198145134522660315969943115872638491355685411680341489945981406308773243845567992993295823813894375106673801055187979943259151101817645140917261568202538908112447015763892945162722964323054255112008810009703150141352716766319008056505233094595521072413784428405089554196993925187288178667068467643302864894719559813935189622739450095357653223611430200997154642870331569760888773636416827582389788528852541636092225565897958579115486634473153111736562453854436117666047692395413336349920844042270904120833673954685960521452664472660427272521714284089467398651305320922557796910440478224666157328690512807762891927618143767654266666855611585691171559387455197287937289972889232407452452337562178621157066725141895250841047191170979811478798819752121697190190041800314260610505728981341793278730120734129336868379958471673777372501621578517537157090769866459165388907984950878674643156483419128814766843254266171604060135922210573364026657759115598827698207499485056284099406833813691351747679180242481061397145530940580253802051381008019171728690541011888140424349420105461431005308918919924661752968540729663105174264112107419160572872278925022244687829230667454823257618895374387946771484045819046552331739102106625728533892195054984084931913553799629669675303845532099654011922425201303663578239318865075652274307200423166772802773506375828941211414757170277760826913079253901317264334634441207758681448366073592957609170907384021631443973310795432965128756078709134530325181053709738920479282352837383042146898836088369625455381783741568768876539202588786830204928135073397682232165782648400077419255898175788697456307923315917278361744753331051299309182551542736388904174157535621303055922771944741663325640687447733951630550999000833041493571253822357188176063007632941478115173057443376803240489325250933019786197559670927011450601330690316606467564768148670262504275718157046837052162676839163311622539623306495687930542646600014201932653715392547029168218778810460818686488304412131375716439527609487928284678945739492235013700466080539274992027847225837017900801458961369760796450210201212814842161922939813160834773642971650096310193606635042814135307544233562820806508905761162292588205395109411800876977069425506461077566377068409300241068843734593315759911021394255938116784606373257965682435737713626435745021019958234961086126545693214272741437846979434715818626174295914705146102852370926550154914606077111668976341562180245378841901953677958396347771497295956570670605732929746102014758612517024808463368304980673261974886872237800938280925120866830148941831349297390123958461699123675389118685744505427572766286492569838481210304494907310792720169977266875587429216264956526489468476215875704644179977210813024298941172638672822796590297871614680629099624797330328760490693744580068400651067888985008764959080384066445579857493338216666220753696757458563327682484555649640835601370756008506433853969481909727475956273918696479389714513754130160806079689328326858751893177793099862773600263126615058326421314881518794571866081635539606353902291572044234804697496975824765071676468545911414413673802114887866838306697475110639247674176406079660015207501570513397093393347186119881332976748531365183583794221788576325319105971675588810270075127374182431499417360644310860895031502250795535081304152962530262158745109855258774845360664802655750700760546238686561413730190796312168966042927381742168538794205408211276885015559850027559971873837149443085399226900437610183794251516124826108795692705881166985190580337729435424024212372081835349460681832613466862696371761788095006833164954663625048240632459311475523009620894244865928184010789701929147006323683260998620032079921675946666949205584669808456320481153371819901133767687772124187537842688710579304227901233297458959851216501162196376826649072142830472235354640121328411213403696356942900952638151154724162279055288230190239724869459984560269027682339106158124579497035422802359461659311837531706846285373630367445932767492023838764612771893600135545810370311473431537861869900999676628696771875016151850707562569886959336178101281476085101530509942410443985618291161325339336690464225687716375406930801941767307201325239252949657377594706458723601414748905936403180593117531958935126943429252568149187626380945543643029401045157242933795997104649238454573693138553263479378749153766642088953719019818479583246776361908741480664815043087682768109120373343499554345337856883899793596072391934851479964880185432368434214909566060567858496557099360152729956009789589128525992441032282538581137021723154833160544865979521672128359635410517293552459078044179021684833190116565444468996617401715938693180258844618216397150650006164841314991679389731922604467955399562864228968245461210474597324368591390885389285326437100761853198152663211065874274039291283290533126005111750951137584666696802311591371499990925128007497383667762502197047169557278309311803601493615119467729397466660485562713113270661341837372284515169762537970957472152375122040037991994343710315417845111490720565976159892045668054815163797376831718642831169649847571562060407570333545993754031826461237259058292122024166147355895195244610461810859094727128866815037506191558056717918022365172784374773691789522474739067048599924092602581696240199648754732248722904306209572021421740715306326345165891653575547457010416433833634854101395911974030018039366360444908369912819936823142939693725120338479209580088946806395336281803089528905245129163241711469823038089961377447906865377795526849135793742137746707702066133237984383818219274628840093256143331635005716169996626087409188519593555041064511412708666352811202284993676750207998065384804698654185541385471678371107522375910960915673785715648498471445432461568394355407551241042822376055183092885369873526633615085426622916626454565571938053264022317008933313251886714247114723697996628524044170138385788155776754737334531946091297789755076505509554569053100822002238234319560724300751928303993200558227624212581022933715871259717988789182253449272291150257991590690052445798172326649048975899561553379438237500930704899114717235307441282108257844624061051317430382734523484329213136116416147377659396817640938853594442288333492313452398387428436384229941448564798628627174947642697615173227440656647228310344767290105372642261835148928697051239226100669948381520092233471248712511116154642097402261500369271333881326156378419080735328266164954617576246901428817092956252633476352174189707452251027504585051545667743382335758107638914452165135007743252994174015233754891505820193868756670072081521015208490106158794328441991100108824093031868435047110041014956147650273564421708455747474090933877409685354004450797512352882082027463406126760388603762654073574169397451605647909111258555804456627320808270629557470206413970634711270665538543403933757305293053648272264618012739852995703737305151247919388189856915471764322245264424031268899075454049192411220997036606585749159084069363412807166027829387730953649704029460867164760334585626153809286347285138323552385759858217468141716772973627322509009447261518611288593368739579727930964440057395009957669353457459613629614267543140093609394796589423988689890014897483093272212983168067926343423375052613612488532116769842432815051995946751271815130943299955322712532191196558612350241996101741494580096925039907376481741289449321812635179652986362475782096039679035975060630702191096040227601457994800694002905516462887369201682485722134661139154856875718322414581162256227650503482882907493616074138833216159621825855661043766211098773789029390428592164017592233087479347945224680581018665891124482047330374587616217112971991021511662803792787934290718988176180383150912308464589404113923063278670065671423571542246188509261519085650811312285626857001997554320629933183420707334976231921229845709430827279095889419141687065454673023734801261101657440517274126817028823815805996409018865933486200676481491812725017611337328047975535170493044837469079108468402536704838748311140992135189870956709728695128447073693092929758232044832354985154085392559379275553855024850351901019179551082944501503300170712983212789336249453672973319127930205612895210708354873268781798243699992680458801233092869719264920235577556821356189931655178816595517834075813814936129387264064848921007317718443665318506322669397241331960888540123045698892366174862257518149139354837321854426678269751700617926915379428902330761265602318244545147315037068430068826890712155137704312319704785614118077967684190148991980798896050554724470991523040151500352883341559866300273022122771094908114276011769208884661878875468914309911277403750014766972556732229863540717467175607903250244127025878456819236488763853054103853394533431175332630988546698392726941381639249632568592999497720338034094260284648105281371757686419050575605185668122091639791184979103182591184155820982447522800042152231593508176506545086118778492197021303375318090108701228379558791042291631729772856956705034687820515849976607459214241586094590946806958374438165437942284833732195330714508007502776380812037117650429232919931010733540952069225437998545153662246684790067936699461074233844033687705676222648623690883297203783501143055707957296012306959774348040503297701400870723996004690863690819789459920693824451565369256713788826957799883939435439872038660122811816114009937322252830309670282365614245962005216547522394323552635929463081402522425758094121245030220089334391700224306972864399779141549072183717251237424532157148959343290784375025483704070504571090624669796640345206788580088109396893793238757756092466394044972478739421696852654241804105097234029807253167408324044405329968481095029851014040271112922796682741667776998230628747341738289335816265529128569087350842803133156049448014318435036954001622473914709239694404816038251849307888945433118722917851842094290178487103327042621781260624035993276004573191739431535222593201061266157952285305412827615716070213615417518309728844338685229981882457190720253294341706951737848197147045674564212490836394735882383269641149843642331600050723144534077883431740115564011842608625354079065063041785323413227781504931219411848467267577410370475379217744175181594431178899674195878460053513851920694589488889105784311141094530415251680301657981442599313313468682842302636360831796509370025871974069075746048184343158797976269821218814477458847695975565758854445861473734490218109332294834342197254900637379719040675793689301693312933945658872169594087488431358658878178274720263235940924460557628581289681251720836805651400701103837794270029128762008223500973163087660688161895606331625978021659308117761201374253018104857574799488398203960034267601303392353945454792678836544788791606065437734044750700498899029202149447097419763321138338489296372637034060912538007550995607439911701976361189851665933181941111479083936022369199942605760701053921782200047222343539869929703575901582095502211211950459846455341820933997420204569752044583473999689698206644596635587235074439096219267707438571001815929368560069184260565241723992292408551204538547463572990368103473330061693030922731306643817353593158941850226641421204487923478800203213585563924251580775412662608388690467996871958009975515552519917214960206175722508321356959742431729181990515891416787758174612767447130877675234477816704058408094679492185391721890169838177949105152957432870685243001821057012697679074649874395738422964809497578565011845738036190135596830376553455572981797031693399211317873091546176692676396334201715060669045240989999427167220644213848257338350162952647245527106645777367384948782843538657826541458962703476110515342200519942524390558835796404790446694546324871726894011341842064441554032167722110146327355296629429241931098598924784457495712539044439542085233741468235809757293810042821216388640539436979608572075524757180353720335536527779020856332129469110125753658986594904461705716582937600761415638944389471754349047282504613251927375898979588047638183934360771513172762966242610592206850099755084124811364943364161240198940168049873745778144773847591125029057644116240567511717249528156890544993033810164055012579785763352896889978056601037200168557422146637814605985286831406301061918365143819014831366187397119463959473943638117651913455305973468000847283180824781892857285530986419360663657279604322553035230616113505544570812071030234096797592776674871496537051218857119495999113699657441310102044366892427667091075114927107652515961902052815133720127552736774623251888619660884408993062199209868765457824179559411874281420559804781424248860027654783676515079542777337563717955565823655532400491104582218803978784569073300215710594226193473854751326238882483735326807007853256182469255267785332835734443384410772969441960257093872217312176910896120224494539275358915788861325568641795179088873704538163245887784670635282715328915276465602479217229727415931065328191252685430103793017765193885116040926334246978514661672058180829597624513289100100650598914648649585525941158844166842393759188456808745094548484723050846441501925213801880944793297036663365259506186602733217225345108392286407316269628179553425154979433009057484969871515585961765464510805225956566488250055011557481456005190814974323405385807631901942786454909795033980270761866934155385045460454889299112925200249501995379747633368800148649932060400596441186224368910966001752054562051853604702117901337762961239430438568839794659760418392932904841141226397024719157516901727798166792660929214417712749273907107639274774071581601375423269185050027669210826670197217868156757442555778390246221418495816727018044358599540651627751748297740509877140443854616033586892522695152077019584408755395841035766746349107270393014814856401711318742559710412356623297342040228122323594347079195116966559490798125095479087642148221447925857979099997244878324405803738353876087186488851499871684715428976324563348853207961907279214818373999421770335163784072434337681294533377516370908791153645315297540513142332529620421576063851030822693427602312474101018096700108043908197641302891123972849273989958717863097775077610419524677655734531217737113597032992324771376943729340716755001555464571616165140075696637567105593065003260958068594021249551678362001132610524609346939021038583984789556740965075855916212466778624737826135565304630382096353802662042692130705356417030652460508781836209363552694056291346114168436837057640168752883273016545816532306757416071085640933140221889875832635664040012939818022880643956696691832296395599346170695549936916717344565365200183831468530946277715126377571861581466083460213426996203401958386812888440988918971340197700805218381221584665492822977929527609832107188437143506768552420396280826162312902790410176908868403446112273961765236329380620226246655209739816008325046030485098282514026264643115612414590589977867183549950372158763149632603914978575487474001511285215376978042157535848264928587475106393243882226119009295552193007673134969084067563962470338750963876357702401967747814074658626066669504266949252925447269233086797251831047429093800271190037297220335856870056298610942961426955625170689396258472856026045097952728390166907296421239114614769856935144732310029978173216193839182162388874027569627872694714588945042651759100829129251055776175382901135822968428299043492011073870395300936659568461029293135073501385476254883551177645001951421550992892592777072035519246505745244789465234879088727798224537100184410101425693369928227587507667305484144901923575875651235013291513862607796501728551493024575710683202076028888938812342265650543278594943525713959893416495094703892532107477203184153265122425052463949660529747504758947770231651001308884132676960392989354222758418296262530475171561418719388365513236454685783607819121802757277206923960356633955441095509790975940515638956728804329811410718101675883435659259272159732994042796343015554324235206092124810112510255920839960599962347514450206104819163177395149421001366376765659684590606587902912309529829698951388308927114093054679337351464394473287288029659365640150937398593336344655414406759396254705825546136389713843262798738275937414618369248799216952427412472837673365895556188491401534833514703333993948832457043564376508967959570097218051201830412547491234393795636720474814601959976745756863591150660501324380490560375459264945648742765388491819576730602800245522082118257934952648656542344196272484494428954597477278243148600833277025109212393092257026857787920445072076340277497421033970610539668284423973356328713765490033972200296910895155980224794161972885848378258051555978779055459836857514684761769577922185652601889534200464012910063816839894957917984614900171951522074879295180443921233140994362061490268317206301950343862591504449776178038081910252605980597788671405975584567633004964855412291678166258711461351422412210401965717848426487987255847606567072205044352651430304335953596136815488166337369401264288538918110277283144644011680692593234936432508600893062027709213608150043726836705497091996863868733288707831411697388335308046602395138145926656537532380314420513359112074609607252874767409464436981445279915475983080633901797244673214623141863238052729132646836831056218202283474484868047308841700914751586014730765960823909678480079054228807645677260303044152365468678895799292627322532730383714062719078359410908834703261364378552179204135588110257233260236211272900896590274522025937084785162359500309582719639839812217620340996025821506638573365304787891399892676803057992686483651269975996645182278565322342310456153141226727386194952313762045281806682722450459475627743209277198080488803070982688393068294868916210644998521653304539401228428761906804570596345322676246103447902644485121561838591116732978041268610907203459718893407529113910188771065084932696680151379340734762295531881534526916485891184190966170064684740116797593566238848938855954917523820181865652002441007576901838474523454694733516554873815523825321680150574205383743416177463257563718867425718695971488848749658330534977358663642363083687065069013070836243135034225909337904726974850466689997627602149639019464793755917527577962271654133143828120747756851453139304756220492974807666431213302985069692183570809741066381132130059633796610428231994899578844902187428792011364477420754407695572425080115406118255966795047374799035151788936572164862915328246282349573606393603742039475668317424880666868137441381290475494419086202667985627191698281611067952432086397237705722719123766455279984290949177965863769192855007870008700550563736672223431369024781591059753750215883696339244887051062619952408603057463113813110099455300268492792408412691759964178465134728184811413372956714031444701883358559810999906477078585394170781656167650845096376598206564443698849847911192050140510839464986464507107259226715946893998207904108541005962986359285306445856592880209047412241606894873587785713794261518441979176008965520894699525354471468166578112168789118233412619626263648219605829256263404566986631891991746464182705405682869421434441243148407835269728399620213345900158038570665654848499392546409026242186155784304659148244938599558151828895441391552622522115192270172123304712346315622147516806129007596597884879486205250750083896609590119857370312182812693999611705896151247569435317033586245930171236181703105815312084428221415870434315450363989651647444981608284720951917184614610523637816395374579985215297802023365622131403938699983159689966618186957917218091386302848268639897345680003938131907793257631538306939090260012106659372721051798516504834362049662602269915539391832193829221423059561318439156489246584045992965377899805421518358019945043441977377972697806635130064141392023774119014936686232241703730490085720447137435055347930243727835718875255821947359101505579158073199531874770395860566744514461239724783325522001868503820218379323500152881249177696860283284242195962575611656133851394140844794947914304930963619493307170515572321922903427728519356232282800624761798440943559374365407599116526507192055134427468366228683149135487329833770968350454404622587451376243472045124290316192993941797989625052218295900264204281317429055926389379877767983148800863788698052009025178074161870667475118234175181217633036728300361590422999212755999408345509180818026248116464929930800576880221841339411307569267632142262685171854354871078758704789307250045807058090137096009816752539986528991848658569372935678321100443940527161242729793401708952522373053809204901050240553999401529501954557999163234965818445155811487026815959776944136524230807196200187261308692893728702302052955722771614038530242332640016493888572434279330571333455558709086660624397157554084470733664003795021711887487913776105943056450281523260796175840666835825199899133245729854828003852128341956530449187530200932808596561755939742421677957191848477218552320194037162257756403050770345063460000697665091853476531677615998603554499267469184376253497900275285489136114848624596610127135298378895533496509923298570817701474946106380691960594221590198529740501543748292428639538540552541331039653406030409846704113246139358650295819229276341552237841233076011434499996667292702704966989375861526995256563102796526229741660425335868906084543581734263616636909073167037702162298360869105875700017637291923123894142846262368347277936591871294235531177999272965778381199901217553933751358724970550926740969618851286385363512235677587222907566755936234485395123904077456370620119204921370311033423988043218938254073649296065708116014862956284959478521715094330386951630042301906341785197877209541183243792467775374591483141543864401125071659237507453985696538631904278666864259890127585752083673829920304994977550677913586407028357248050632540008390836052485139254807276375304561428763654430665790520784376346023604712093662500979922459091784482854208430658186439142280657333460040336951762696246467936218544236848398427082412373454215577402434727481360213892382606607599342644351447473650497732707323831923605871015092352365260543432348678223035487523814923772144020590174201980505311916024231364808260773263842174496919363346301523785795383709520924833524617230913154011020728013059027662245269528961113802766727249607915351459219017195322213220921042669733943643267979377003552041223117168095997524332305658285666475961613879486153645732863187596185736896398335405448674815430157232597923733175728812928897815054514339629588215653896295665545332963925810885828835432181812817330433084939210134754379590002966173431435452507178751376516029340005460411345304155819990977621626485624342008305166928452433305047588415374547915027072116791594803308630423123134470496659526059909753839573218205551348547283732612797693384703846497202841789182867414743192038693014105194761455557563148327073679959418072524091344780133174858550922947479796697076304804660557579931465822775344518676419416399751187254770600147915662710728708442365667595333142080140677911220948921707533975385841968904592116051009138370649294129073675648732588219766678208870916424396983810745758404044998082451969497137991250573542013352737873269742208849292887992123658604500700854377853792628988504740896385707957259408680696271624871772700099669502838734316843476843976143180816165651030606386136387414392142159646323941384059119491834529755203389715234063659773472448179784230195911865370300448256273587564317229075191488926162057189508085584729407650212353514529745964945662804707433550579536589363842955756809292161918716975101122059549002568477017713478979216550793682581023290238085629324763580830179973414896821239145181749727591469930735538944125467308072586374001964545744000823650822275249281062340330171719380369346755433644362735546710252254963241602566145626802448700848974164098480018161928189636051546016396096967051412658287772438560646607893273382409259662756829986210292874311301941753278066514449180569749644734169055498885009062443863487343622198899766843498830140480377032386971327841723042667528427105113539021168085042190026645880993058840306875874913376616526328504165044982680840231553549624295279729968598641394829805015072867440002789467302463090214452822575941855465510279312297284989268727547616433037435510921644844395507880885512148899650317273999778202962097577050251960517860647110089463609304003909968738571878435005625100563523354256705615540439787163665814945757550426533749157953729482940685677879508025996082910516260922818991433655654440640312460456305829179745252265776132786173536191136991743604395110446669266274139927638139807879331719192827738083910763453350688533419565479487376309174679350229027884235219908109212946103177433887142698094051147999441474880588127173921500063943894830495063483912454986825228906325756687481424043100979773326229536007810089439644126535789112484725634888132150030350304520544066565475649980749899170947648174286920011585217944724050437681830468315905247021481880212946260683954507782127211213516322212948691569865740192653939235338714089539923237491009972110804957432445430256167898119092467693785476598196829649245306903567648604532210229809064306649534760349195373664777502206359851526191702424098026644741989880717106734963869402227530655806710295501538543028456000567284269397394751765099837263575940089427864540045535926619112378646137620965159479580372442448730963304890883646181845699070478003940028315497528220878542654964633906754865257273493330463030083042821573043926546779444081714712283999249293044112324435595581830689100340117196016756882871819804459213388079613535311421341504722092800915200251205495560222304153883977766565710399601994152796190859373254084267646539746572799445703842983020299264646195689392449152232839916003036220403411001739469808559109019177117075487858338871669248419956834555575241303035190335701678455327979006245042000593562169335637758089175841366888043997113885932979289296523617281489359687102113557495955068207766267137112259407406830842021331139497774722052550963278306117553118829425340426889670910855421701220771520643834051679555060119224130785878940181884728325028414036254405352099970491548585970986854230898537235387259216548474542707723904902632391514509053009832916870189091869758597197655852898884883994447693165839627960793821213495626074864199071241833482237356607641797578917693334773404222654441359882939951188378990370825927912257525170206719260284779155670469817227379011532336474965794740294473342289757004195599863463396924127313585087239831374436006102158099278970142718352960114458137302694963328539505592481559281886431876944187244927437395784982314085647240968801999240350680287913696404552780475362007821100132096879794592343388724000913361718390485997551382562524449216120346602588492738029791463589967040759696453832874828231820729270880024849719400330363397706594670937752031251350808992151073763295051154309243044996302692784000329835145832353714353485741152930785489191329773038320870698154909446883224351781325178907353626607000159643108613854965177414738552601360483642315684423981973612475323454086135166512856925637597637131947150804595221879899315969454108184032009729828336386639348037231125448974152258800829447562828607529683647908829323265541743124238135902708826061146769123625696466905057995861285202537933843839924097143837039240776787760493510769020587717272058987077266008882825310679526137453644306090778364850971581648309143529231034796882143254359780649056509438628383100657270145019754878589411659198829758712082233341758034812131870096958819574745910314934700724777322537714389881747640850815011670972259515814044335548375175691732481325875353402498239102324688006479901207500562335831590729652755086617909206528240135179516430996932803743748857932576279282044657307772822620576362373948514773238414076242708325449170256487466421764855691798265595598198782480290352006383695939111138354993465639975205245528615799733838691587676391624938538549107530726068147988373446166254888558031935696475490218237688565153082972853038054012776899702175225465457409081709914215706708476048776500013116226993475034180710502839405227082828364012047566990353920450569944460561466933710454739090998206017789714477917828936988096268322645209444137182746402976848554524659719889143259960002336925622696400190901944185541653161596365497169827949880774204918574813308894276579814569463135432233459608887663767171966950678001071835418045697480040274880453504118381679393842096462610676943950734589915429243489899661463355657682406256375424790575280017213932595101522847203053976959374161805548654080749480815748238571165720648199097199390494033366647274259057814392322314788379970969084866181690209117654522840325856260121901197522277233560231909253837728183569579698799409514963788328302972297993284745760545436698942283500486760872609379238835597390785576237418936326964297449599415131549582350056051578189617105761356593780452670719318543985325167571318477743380804841533274540773275697457822917772307204169869720661551690006805668488076892242615794520198937963496451061133238608233563847635646153735035645281598963347397380620196685109505004064423036957501707331658364901281168818533801149115699508247407289668735416092968309891309203682722681791997540863836859476587784102934134092873196245339570123956152682805469414542988124852053773880093594710498070463414913257829620457217863598776295270628495114025202549599175314388845693036334003186118650871424738792075317642036463967580165231936495787223625662206865444887842456133693567649057693918370449962246538885482872762942789268510599003835944558817347784238589946450456252614908984255989812103153220046501948129367906431632219221357391328983148815339039856687295333813558950570701421896792330535509869484141365082883154897049040190013157288608620655633349518557156999987360867155385754423636927735505693600919414195066315177044284424104960096278679418879731748002943932232010686227375591533964636791589641005764360178731228905162065157450222367937417710402088394197211089943608705153426325237444271981842563357921779119188972442740566709587398719455550435280744360720544384850809301331749346726421841176645012092010990018105169534324111474497167695239019704881888839505856689390092265996950234348877952832798799092212863085606593744152841221559711367243217142962956371533852115953011881607665838172349823480904642989346750675664843665881329569794738759298740800936420019906516077375268293474827319096888900222485084617795652938432082549466267771218585009339293201070876201280613776508032041226507458155522752596107579043666446013090445667422021558991644846361546691797733340260869400488837483301000074116733643039764822111937646895952923081548322550064935047911992122270818261756443988179596691405785631316477608603606334770316711560483209533367694734607487350208927047076508260267848449061383795705385478365936816699768137759335193056224392450455700790019512890625782947916976131768033024225893273284738135210086854039994913316620205806341876877655419414661349908114388867832301148440282392189719780170773194232618645524038692706733183919005055314208281696275218389761147618206861962158767970695531271131836115368942654112968679472847555434591126987505685407599599335180201559317563698445639854680784964887280768139578509764607578999327320136134693311423527213349887331444650177126107138692251467821998015057156246855665885892489829790510558008320429454102285052447548178117568851969352030366622965736538189729875339651590711040271913782905063764469190123076930120557200088459494213085121286930404932829748292799237117437939032311251810387590213537003425629061256710178609679607941278132429057435284459975509497186579911574818874566232969952810975889475583355479283528922382421600946651834788465458418834377950642725030350780382190423666063967574522678554328831317072334894158727310355329545910947019768106034350383355171165996314231261973185475136098191761512210308201336612178349488455785110465391884912323008661412112012429030589067167406156580948734373427959820653938543149953216255051657094079961090179710767754349751768251399316088372120364293919477878391478299680177353029976151603544315432462476790399410345591657610150656755129754976886820997464183341261023761044160647016217833622240996042893121194386110404183707043903571222423737681015559472830511595128986404607864277434173060227189525353251108290379099760493323858337984227042427844191491629663841819137365908486729862716071804277645387091324244129913094492436912807265438277905272510924890723044296400963851108342470456801084834063379126536127178353754290584853705399148295146335717064185096735182513206760563933306543394174097230287513559793162994541532953689451644392810454077515151328873860013743332490875679739809506971489529881209372765602838853738690669683618245501064224381341682225687986031710758640448742575557614198147178493589203209898514001852372355537078743511980716670255382351291213738986573326501914940515580507237982959975556442644643810227129309916662494811432499381802910003003649402916789000081947726091137187682045755901589445604997689821949387749374157778476461991817432614425619240401468407351211624570856727216726564710558370858527381316484413017094691390563533439500390483238241606907751758585418223990084311309221981751034628814360529278258103832972784256101361840885454157985292082265181130777838608866902428018062162401781343379055470148009216616435553932469460782854194179504373983762738578037362173751294145987903743745997644576186033873876384216670683291004836751286927339172408219905179951272916224272502522056517448782240007739868047803195597552124018213496488770804967698140006821543247605552322664169737582933546090965709458204488019783954952811524483862810739640121776261291494175785011574494347408359799291647888230935448139500571820498309213614723536997211320802478133518016340458456323371061003342743788147162519682879433634292559671573895975259612158110138178408047676983749476008719333520751337434892455268504973903125953164358684030405668491836567898024554636019050972549066022960795935460104567928615041578687851939424452444222000536870783357721925176091617441437246884633893449217714867082778795808425510246922218928910764544070089065930536860401936251316430634829132769731525972801913451059718511418030793126909330310708710804866324567535930175475110181408308611026494737528393196933157314655577680741462865777737672810461802328445467976582414987874941374696006831996771049070339307840968450950858008304310187124336216668278590003896561864487575085782242345210667260935602705432366205476392889744031948996333626659512665529560708013151832650130495040492395829823103539753320311383469864353746123114861565484682899096730290187193816037089306674939344369341674172424894411352943716048620221003610589795042248460320529059337204993224756641803355879317487163191859661044160354479107611369296785613479857356662594511015099681370379515065634658882557189449555295376767198396866689125606918927771070880680803516876524743094874867385873793854298682053398206159945600064951697429649379936971873428772611583872512496332394543371459120891063853684904457967911704936498598089603008599348708216914804970020697397342823823148974254782043148939509499559994608640835400570194684770046885822249448085791348758403443362492624166784725307070725206215347144460508645589373899283520334864118555315068251720383137918965566926117892920785188649763323641260979249200600889908654747942236411904471039870266162636371242723682808612527720339379172655134951896099028671620286278545948663677902557727222509172276907670602373327988145132729177943675746900161633959500182787008632279809411821780367362700749405848452090907114134040453473410558412097451637664753014676923285141071105376670753011435052412623131790597420151699340234861210816222066153815984038969130810390342996966541385241270373468760930641359436878879541810976016179527845654637645990303271990934423788934213176013764800145087499582169666785913429941465915485978528958187561378842708679475786634277141258804041126682693921448486248662249871414758142207467761760875655593784701871598010824871159251969733870411755466614220522575794833001464517977059244219319867067631821695244847848516571147175936229898908679918896790965889389885676389024166772013314701584120653386903085825740162107776115796509562107345898324491542340472976163157137809832762341436834645642371438951706999724542725070832933697197265719083333762800566247773929290443570761937524930678676597700361176113991948939871427051730717347259946639671415045300959953504571701614586046744376346098704991726761248150593227982667308217548418711623211345331103006047908534663908129882095557032888912830407785267937033882836525686122210085002754735900512728444268579180065461534927440199405232685293641282648255068316222725792198794985840575206208785292209671929996217251348353631484696796627984914939705545124884203884921528092203748299504488985710247877322673622961366961546848740097548049461871826683013558559182728834527436309014904940332387335150867029604161706911214819371375584750056903870832345205505519347647315763094836530018994657615461082505100154161853453288854093302855493565014946665294726877429351901726025055286117311361876626924365482577188554610591758886251135211448305467893879635895276298342556752226514788588411769428467767042834607226692460458757945684271708732912340085111892480364937364048464899483305717317245120225988339017005106509627329980140916811784133022758281438087082941538289247946465039441677094258467564669100381456420125839812592839458841869524770966742862619714260370482157667316055168422903691936319762439798832332345327459656533103100310437815193205391175702174583682489738193203203613722126090983885824918487142155614920783828547808227961799288079070322737420803523215486199130741388030118478840580137793872270842116168876124913648172728827256446404811974500997899506745593721441682603030107998325284754593113090863276071362372544676380986379154459760640324538400348001602681988617843180357873901929968444540905543111451764807720289379397285354944213751034922576210987942186436306234059337625460812032656139012849968975488887450279566377437024933815513795730412181333135881936121249208188234244448354201668978592811859432774177155780560833253003808837907230716079185728531367951208227348678080244349334729190088216098881615256142646472655991453221290684957237833782563586512374435631831223771872941562924734382344168247994617749139067573146941099519382297473997539589294261022788771249385315951063093400087466989076822236281799396092760418118118769187278853355651691569726760421141050589006192268949368293284192392989939237903901164065284750868987035098219234277415171344166780751210799890742385451377463576128785534362909166920105221913068816367784176087742725451306672162000291448495274709561399904082972904611081461273656753310943961392609439058019542510121850766567288046113059351018738999175811445336354888691771425135549017564757663230279506305477962719668444738368301513371546379509856445098585817394065942767446530960750533642173615834928822664799275130221003831115713681223577769685092029422483689878101586208337902770857649943296971083079969176698760645178708837499559208150046687798613631960123954448740002624235404773075937803958284004549327479036765230429215366072083075921866596096231166271505995366682762961078367851660458609777496491712502379096347462399802330859387327958685289737557460107866481537914004403649486147119235699712507992995526547387538248622438503775968652860774959945347407231379928842972584664120951792904767341174680719739104655657470665023596524453000596347611781181341797906017018629012076516431397402919984225816333007274423247086187584259018359158911557520467949037712811275031580456664841616481070110038627828399941191896273225818099766689135957557013504495081697070878177861744908411144018266948090926324181706610412320077381311992557163003086391580717342913101343912308559695582596416214834129656435335840604029246450973841228156717550023771053069212243787770744043295836849111734367614998233292619205150480790614292524409006626305788820426996349987226640846491408789164058624407421329311582346432760064197956581838118984685340683149069687710335538201886009668841854529387578621491239006502906663594954479845386669804296616886111483398619918303901065391453364148668567966066148554032532722136490098151723946661875534308387446154784137324892962957487639346324354719433278248622008238704267572845449051961189561646655386557268498629729428681785176569231791635352307344039792363599751266419237822712607214965681486230536688892807981658133939378676959988017852415558640724847526801605536112154407908355088591043740632748432693120538813630329550922604477168675783845903761339943466619386170911467307281933675751654104595032496594111288649256497727873034205044706961284539822976955489048216831937068050752346688777490893485017324212239435867616891722409032396567019926684494673288144771122243444629026838168986582678954823876702422012658127939230464305092692613551254118554533429331279817310144795497046006851888395548005624125513324096037378011270023614993773153998702174642849622426231672236050983938325977088163298099439801562757752732668506167967318729889143036363336731800497944757869107019491423297253318825845293496739252452950809521563254709035296296288670627420948566726138586491479271951738345690123482765986714905969626541489206608624898954127495222657989081077146742054137578254776940076769931836515693326246826320486654004982824525075280487242097441945376924545058582111580740182997284575784756566295002133622000860156940246236796792757154444910842570108427144788867047226041033002592837959627015837251906200686137149512668282928619908498899709470135923915753838214145525689062456434952042609653664536477198321809338398419047800459137943267442038760922651048022309479160202469081503167363959102817783422200025424000347088308291143693061026530368988965616889919369491123889821759437715393561973934023105968320934773112922152252905343383048053517326994008378439611358525750913973902767621047397553168612991343752584956605500480472516201751284054925374605731452002235247424051868095447536287367979852135940644942918259815223867944315347007119642172167472274949103542086021173883292090768482820295474582107338682129455761264083404428877118602840542717253562190278832300880844338106282815131913999762858631543108264247826121349209648592400807779170584128079998769139920562528804239699007936039109809584483484992559270104842897592977248282089227081290058528381540703048700041232812445958731499090914221164679537667455899709097083479966060622619604752441366920852648704364103288893768895611523927110239907896936448044848345533543392585305451291928742452557796177417655994195854718047796605829024407113911537337774226189608966686787831738371513010821017574276666038649194107972698595234095861617505066566604886088021464929237293187477898913689599777323227371633965514620557255634064179282217763423473031699763054191735988176743373905618409218151625460365442334723094336875843351667017522022812679417805224639764428911460958350865149570733179865562816246591757397083853580709641520284951554897428610354328921391207957611789285402895523097828447591586990774153156602086074426795147745125062829073568844971790952752736205609482693446047309661600281288034414190702626985996878248084076378710842378291548414830138852698081155747943148724852881442523475789069077615712193994727231127359366970352980685260921060010216042388954534668019864103614822207693737033864660686580376800834897296903725018176549323785306690507569461035236588196504468359693092054575486430007475596729417155000413730732959966100349361969358109697535918035835830350579984936760185211468152406771687511756711939509662228805277488100847074944815568289518724747957642601288242019517925579233334224973806191923726855925899458097137680386923403570667408502346479844054138606100744801941929839657481335957311481830464743154055192311120506316011633329218162903578295153046249243246311226279823482454734694786537253404653996272303946455466214241187556658283913925151656019235840033789734065964657205767808447976314187514017815451610787472260227687684089063366663579536047147094551697493652276790049225870762699776367867222398145124458166325620860026446650417481890891111127057125326081954926590645348615517336138260753879135500771509216222405829811583154753626254898207940277291389122289568158156979121751233665889896778531784399037896659672377414700489742645496686000423514175212340793038177283386855650975886161549256897199009536014523009936288943270769651940798822643829260947403917525172128915603600367025407474204558709272367750495969211186068529010224171024225545150332724614403437655154145324400342618620800493875320150516259565877872048188617379049182268074734103711016688906570347727482701781777752495516791331140583393369681310667455011898609793166218790883299013315738468358035183438559559613121696571928486270546441810457816774983190709942138906420745444081733457992144125831664638666655548153700104703662442712694857919955516160139647765330486997234867788331675177119727058885685540494037987229828379248612032842157311934487341137040979253545780121265225505387997069327281011247642587630134030641615570283931271474152902718325542887756430319741085196342408771696540811468930995961779831188501270417425685692624430371511286896461994125529941963867055146382600452206130169927406409318916821825994683411748916165910334431729165018606754225196468362878780156771894408144162945484002017806264654291429768432820426540428781611739073040604507381069487505235671205188206953964108765960917576104886040445547307735116874029975929533305596510565007828793272671792489181768788018864271277368587238871890116852861780863964614028853489628101698632002630325717590699550242446531246993508893101767088905802627572077096309267121303195852627474634676082510336909404166752764730976171253927232322114722946978885447872562254181278671923925991527737306359369271123014687754312869111154242500248158957973662099614586825711199304513386235828201731061434974455443029486435796189435170240862240161013037084181757494142252222360587280500071462799670788494563643449257155410133655630927992513352184512885100231709860925417229165188763655508388639069434347524171364509165058102206486331161236831602411281764811017717638371581830940286281017188811205869742688797008106378020189376615776098578920449794539983180620531520345374640875146844049243401827399615845728897818837301129286973626475043462035929725685847852322727576889471797006168126513431612260990531713385978618327635518957246958046276221538088664184670714940914567290036398523503051849541489897170601241750897058156385197836838585752234232193709795080218056302387065495024655259979671541281559119169824998596410989222344013714941581988194421570153892078676395039493906986314784544227454232599166682541578456015506776320406932055257106837554862788157360117813507769422325987170490912684444149069299377989962790977439903288515264506002826893098501147678635873455131272794003398718761441129827445970046965762547855753797695549991604984458826731183057798709239996825302251281102625314742573928873408663760715822129587951527991213332780432216018911878475741181112563290581592311335910273637606211246889350852666160840020351271210281890447876954375289517196564518659762932778805644656262903492293162074406674848501731985282543696633576655255133204326076022562342878433231884437109514599371014339492281273678096701156680604471404889244551414848941544243616744062240570256399134114993388015746161232560119101533500688713367856277815627491956126549382048127579319454815628091330946472030662849076282173200579106716911376431573934678644775908827147015128534988158414358765402390508951738722814341068659670340196458865117738464227537937569799288641490115211807955550935928769954503856689955800849868856997060104126199488190395087370779797055745870049895246686297119767727125540521858734649855635043089480581279621376734307277862330481759953861686029808025334010389314111678066465466614617677299809394557642263462384813070835332220520085409633319686321127244731861223215958542595853629323623386844990104131367621763882350337314716638274921960794231670960352302981806842628917604378355538460871703005461423880418666122740190849650365303189217045993491293275525741723900300809839335212187091878205592890757939914100748261772183947743734899194055563417597705678619156764199962510287686000342914794900637569275798053832350579695591457674369139501333730668112108103894559952733645357243791089288413417055624318426643335599984271333012112505389727988266722562861350256112077911515814954659892844193798893890265673395384485287656568104278994068468832903779442251841682921536271069783809198636878393760642195893205210184005617351110921234468925448167111390003937287130595871683115866508669067155131725892012541166340572847528974541614316225408063122892143064268850801626646186538104696367304556744126088356276434665320079879121320167502493995957846632899508203761098934493787208318622713594521124741023322803131341134329556422665498361295986383988918669515470247791806725589972108050743650883593389195884319005684390838429869921672507190882114921809815151023099074668318294704257217692935190868943237095357383106418902483288718627639856146732497630722286357855555711808934504058465594458712866365526903735013256373559390738937024408197990900671903835743493809211788904771900691450097554180141261161061531443026894518528939178125132302710378996058613827311469243891809131261173241029190620847052956738724837909134907195358884798277889178583679485773270091765614838841211599013781610708094395682212015500144239117750335480664810574220524685272566553689230402846986435610489259053140345380354744018868077714414383515121012375967775995750792500946195985483644206987803705504151201102760387340049542598819908573222334577985696881919951305547117707977334241643917688366771076785847598279026498591918060970913659370428812967700692284071717815176427845574975199217608349149787565731388930847906683394794760837888258123992065852768710160394871091723884024930697418143592313961803670601114071072528407756022497951063706419345738497531265800326746252465159037344723276652542286859384428046196141600606677949972558251083671661257274388966589108692780374430059604475953309988778339451187505831370628175272733630351014188668041454238679965496553401404938968439184287245297373650046631671269565254024378354386322428981940364471783560221871173286919617310469762417014314014863475790522272270502120421995306058305298124077437069119287242709416706566187894450614334221036734228358205978439311935853782062887088679759978680824080503247377672467853437567009209951340576158609065635796287844618914262341271507056578308799287161323139777544366019470343987911119454100677563836582276184733733152688901530849482645086895532320041516320778979673412167921912556573063599878419890225741592965411369589165532703851203576340229650503484697263645696278137960135342183274397885152979767195960566264371109269790467467503711756614114930225261976006674338299006727129701702622499375471693141091398891541197522017910405042384002735169109436909766214568878062704536224219938400253225362689389734466463726019471576346672249098116543414593102122837135989877125442085140563778854590319435922932325259453550859774597576026142157040924018402767207831514185043400001079600139684808293166729972387462086241230714749378724747756140693472862731147882238635638514322490993689282543237135645536625758527403455138815604656015225069447552873743056603034521031386040444451766245948316188128031411742809351613653845419443628628138628806743073207852291669115961906484165747788108927551181458955745145821141481561628555954887083626857833806417685883274428308413337369207815247785957151198502899124783506405046036190069727599572774727757268034612796254369973162658696794349524625108735921695592250978067997242879171881630856290168769323117639777333123366424899778572350202771058561904063969906451447659215036712676871237662522107703025952338743939721318341719718954565033053491620608839910074351504095052995801137892897639779597933457163066736183944509371893113041463407811616683392427989583613546095181483092780319455371692697504314619028934102160044029226217377122988064780009647335328233915898992622886450197432141196293725176496671348965698637692571427988901351791405116218142663844230840356983215548789627704481500583548568176169045664837268232978639740337969450676018693817369371229790783632714018984538534231997786309241290819088766343490055593921180977532272696928262521101382732146344483342964584853973774300127519547042200393105969905607717183208263192829355308476528436829508232021189840898942195554499192672555850389236433239373240356012674806099574700014595139591911369969411758461381261987012575861121778351479980893132182314611068150402429571546263244650746433157619307871463714322526994254786585768686227926906335831988398294229659338634247451740179356551057302595284283637530520460427769729043455419510357831385482534340039129501774233538064029996873391665833350332206615453727794670771634288808310332095012723046534475032716146523612054111989992424199551066930597324777287767828076814461412180405098413743942031128399796705553670684856430969621530996268888275240379868035188158556828971554428820654161315498575343019983125581073681701728342539149413438640867644784535004089965060637310363561478858498702718758929456812264281675863706364679736693955433247903398908257657873566794574159931137687401875727336310482872165966134626529585171976305613916012606524328622669376166339094190322781042988089527689337359733108752885248629095755098468812041799968504871418622345020707025438564387404650892419783188950616455086742334220370277283231494881016625719897474262686635064168605824261809835611889354197660425588323563911689957886999777986220552194004395471439593450761277659972036592038800327262182100365994595389521851928320013906356083542035707347505237621942873848354056003899594758201448586259045994485399223925802657901814419988886426819288357536950492095932067699415845098526764121112916548005892208696178612488603110605046654443008278186468830536335490453520585141802040754840649130270949030789794818565225362265878205000155028717908618752030710334047860554192549180618586322007929203973688137941912928884772813583394553158702069668000598357014560072030025248451245796174968732954836847496491668780217742293360332629269109945252298281296534229622389602747022105459789455033909191674544088604522127499917685756715011446085744904839644197921839275819037953255367400178386056190094664389389075862742896045907228755014843292578957605372578575766354501604433094532823137404439995344190319236203243979227767489989845399386777728571744986775209991161777901070196351787758686674698172793165374128750047592143334216031819910744942158771868329535825222129553979503677356393015096059954759098504759422492732126857295093605551807099535905228536239106917032936561181844422281964271730938990169081478741130501274192046768663498444143807506542758370049343469492193079424097554645691240173544063526064693787647223457983610814082247278025979925732896843855765157930947153183954893090876383724329394755319194621078400414416424857440689330711656992902254723303613083549329732697942744935750461154578258377205872442506557186497518445190905374119962869239199936213250503437497558268744481986298989105161554762930359121164260104533535533030051436414292902834645410496242021231482498675771159816537618057268051039923965636483346847862216403446905987916492548818779948942505300146275927623690614758893159982174720625030727184995956125036075649514274804328040096875387557286989124823210277841408292100847450718351947823150033187642377108647310369611484360682812982004313497222333346399062831459032875428911569109759023430415526273601560990849493460738190086519575035789284538933675102776740236600944722388229511800276598631792801585784805520033661816413709538550152763901813309229517852645123606196547137539340012802733928018302021308193808627563346126257192305497573941052068304604639409882014818946234363302569990357257214142106809936175524359406148218197447016939451305993143527825390022483510400133609544272294812217565794906227690640382600887579609723216627293387789433954339277315428454730161180299559451548546221449758862364881225713806344876657039664776856045885265292021775496115639953000046185904675884027685716925569481400279689238129830860761969936642551198546659602332348549613642081254618938984758169895307648915840159433257074462981014374789220461806970384715170556099573079920973461427049198891839574831522294730541511291295246388741614743631267856561813335312192407776481225453539867553524089517330412788179340828571484713836924160046805812577613974741063237701448564354868841349849291187316516529364316621295998086493052101296718421047151246061709077875132986715705208981233044435489551163630508602964745461958687802153132506945066849345601963305728943314029628859737806140376315683338038894210043081454177385945919502294556318914111960538639615459970530723630140843389908411625396584222999188471288912702335422025172659164525292307395439446933382304220788933812157068117375483440181038730264476846796787706847411803066772915932356933655365103225188585319585821650579466668588646029775877470194713860033318773984770221031537363668275067132047784180076749081926436220544191939785050294564444641017038570618377200977866275462534363457831728700892320316537655079672935352307141423972750295817996840364669469585766910617563614147854430305267264707727326287223303379614563431606308842911746305690817603595167012233456635033406695305303737067239141170497990481581772005942705752320892027018006371322680306874118869556818992053440480695742612290501481184513584326159208549867346533288997033520794649461825028808360601575823618571991954193546815441541355489621803820176003364653050545807198045145827279742399344725933469923935776308716436487325080444096048033820336327909401705578148218877547957169536044706311661057678691421488000906338786980376214093536141094451292853167235735651193397224753761794748521140133266626853407795751071309048904776334481282637633923360275298167040970685124264807225233663216977124691856361114615936130390153495763058951632228170575180125839593393630586864076685681973904290750344240551865281834375246381273556510721321590988723365408499563056761828442079197255703380551367143964227944032127131156642735803887518718188055293810103678817802336731271422225885159461379207866199188863131116182850922772209216899176231095001566723137924659969688432615178956235092873726283533305511861702434969094583293840919909115089654914235766820867726844291042133072063445270263205714636504573428623468265198078987155908095508778775780552502823099477367679749185391866747935178100642715991557461198860370318037785928786297973678629522416538903927207439724967025877545969710687738541659018343145268556375159074102127209993982936935076561760926474556575742787992212370215945868740914468374898624378960243873241733228053433560201130986306548697773377965679992486238345805448112604549124478032175802993616859427400574251863165940994850271714699317210647774841167320334725357586938379009399354583254529606884466153366905595166297742649157786186407801230932744276568591049807640062765967876980573544896337940011197144972164344624590431039173617577398974833362299561618799493729839756600762859071062889937068772679417795071315481252557083739223528938645108456521361254826411409990370835632933551962739368016559005893655775237980687376538783995456929254344851084356837224508908036126828186468897871595315222749466743249329265377623969329112156935656770944468848330508365276038030374565464108505657583187982456330405055084064044237396629059513123809532139539339547339687611261483518114021998954941797112270331903654266303432356363168165423875725455820114903697169410593220185236587518821840953957253087289251034342034056356926625863079127349626194508377146086319111640643468873162227756092595152936820607191257298414442455369492290258442172565888568028203626780438089465494849633940649141916057508185789256338224539343547056975054717429091334262176787285655061536751438379895777866673659544257869057212599338834299888965516505101881549419887550940560585201663172476157322180422252662844569131150173741904651481267546483692609744058900443632128259006860133973993250773173809771860879119014478812995110572077741471065926158420935536966904400822319820718070999672829536091579983703125712458913849589741185658044715746626165822480637732344258372293017917382668359428954212387460724934619149795533016998460753570609738379104603922839180797604289301958847941628625738684059827805541370896806395014592256312037424595857973784724044372309130356759964520588550698176043452398924985883141254036210702155627367325225111603722171879000045836794898626510635077111757633881646977619269440343729234929642348196114531091075373405332819216702722208970473947081800240287981693758383056618437836288396838252935686587606498323792369318153425685121578632456804362899991313487413525580715388714181125331811926439870033924491080259782851954548973249100334357936136925824528217125814299767321396894086451007735345808871441895736204792842905067303938019721439393668534393897029045918354099912940537475240428058437560789625175841145812363247223663247412935260159316462436169779785350269471792428008306476917435229096537905383920265742041050002117539357458590946991423971843049988262745306058565550747777364683982178653105414300902245304211145501557625709373102604364430912810177892675986626850352892778850783128872938433090138361982637064839123099154539661874648661792754037514371237258938379425037367266567474427575521367364870102015564675816286286478991456936624605920057408034216751668735187124339792528675344013614534773331897970900723458353516581551818104643366887468302591382542778414688515853985504766710188240150121004288171604004552641636054752879800432193817699517059154911982793541529556084326417502074450837530251935569385718987297957716780525956998434179526281701828557744348394442542347423353306393070416918586961767181762472945058951324470553339633936517226042528387614522480619457668988486802950173742232945717089870250143715186173264030591551251865982432062629541250927245100683661485899383373447397427977982688841308232434072117709498712090206194067717071955993810120144151604727115663436658523668693276242382831692229108837083187530644595817142305176337134982711957770838478277858734931620473132614188274333294006834900177228762165451214016721802978928387745449470115375199817502811950885325652815984627136863979734584479456526028073025876652050256154095759149011946400823906712420376214602373065556875778804947117172607524597285094718578128610987939631606400336007909794949599101120672696655708074672658650139044814713220574482652409047207573807513081646893965641562983495138634411743560724642602783173930126081869303681475238449165570530291144537950692701515635585272697011750445226105793474349272215009843622123885861816312724184841513294567685671162815552177638133367724712681063630371721675894583319984880714173135051953458799883761628627133372827636692731018732057889847197448420702830913102820301052935211959515790390929975862737236722381991316663096107070969963162746633454533072196474251953828385194259902746117499134050754698653062219874827692828988675031751549271715221076981096491003058004083473268332849135171606897599649456122926181288305709063802986555920241815761130882840331597924987358687718219314336425268020797435086184052765338453568564903783724009825101529404885616733622225993284122617170047406467763514082607584608029811301408303096893225318040806582159692318195324834514056642987727568276324942318289890156749391477262127747239096393597594877115971175637360233272089912355562614635520658085467192108280107256595371608478605137995656665525407751078890986184952542847134886348827188417890388643039689577559589731486377436281849013502211059072276471786853737660718050916294908602239967573960855889859822032196708915767019431991747417799221046003482533211645458515897604096283791485314015991255221323123082598835620505475889117070257830928654498187594839838919470176781865223915249597026505820098538770824838169320034256078474307644241052972902838938078687009172695404544579629212121759510953666456076413011402715592734916471219066790470115371179149973565107329583469702759841873186481268737019428999944197040245630560187476768943258860146301932269016537213546917761637808567084298352438240034023540285371744516990304346600628832775841580890844191587288471380878002152792097869020933396329240561521610811446506104591281621367718226955540361623776692095312124405440372959563046278019180740718541350239726234711323286089578619469273255665335461261739223372957174402081008462594661376579539908603480636770373275184169412556287438013023258574147993709792129244599935413540375437997356502042832715869590105858989302616419202570822923235013331262143537260622318387760889604802239704621232215031259810132794748716423386851347501624737265840337070221300611131659237245953725778589804877313228743938310570866581061491590549360822514931920428657110005581412565138843622381680825309020012015427826122595538109166503656010951589798084849939793497969513161787067252605618297394440298377872990415893790978955631324008464405120351419274532671408172681160832557032551141512133914264615945467763241924545651201331793484686736706847339544717031855977515744122240462965334022221231083758666352231015140271548187174927590482309602191860590546632018104108258374417142810594689651964401235982915543218113648082380240714230556482008053765746488905458988862735865078484339573172699868985907766159591466809554506904362767309524520703609932820323794073031725714498912349528375458802830750236722336842153390604697777037946295371632609082632104575434798712625570969387195390811478267441950039948803819341583816718119112976798350260109201045067743098829035492019049805351323240172896715393707133138213811365151367761075161157087537664060474794790555854131580132396906508855530287103968456765126334986310228542485043817603697737707592557274497624547375456077211660842941189553186211756427363582457575959126479172222182826962855981182109933529352400579304924910382286044799008019202550234960854917790859669190584994307104976533659587729995739094483565945613415600013168442877438886559599145308489233354595231896191855861037264872827396174695616414982988598175542958216238850541969361256594258141272408900064028246187621664862605320574546142338116569040994127102767896291978031896194694910030451941513202384460420436206141380971936937710179160108196501068737146874438702810344329258564408346616208054309501575746448201826994205830300724681546994477674217759246189163649039566247521512247269805067994158516611656884878477746833898480827141001432669408050873321048921942020323207654419794194599278330309998946825994684650612707925913559033010421694108298865925240293191664256392620469312310997443808849406147770893528813583310683447905894513346928609308927129808742032268806717452300775324791818660187823603606865954220532568712610001744576427821005136923719051111027997551702037616355353863056434736173879834431976722215277401362886487703154315924763876407538715857737037565647791497828152361771285681828248606677604575874364154509777128018392330144053671494484562413611052968468447650419583561542448170953656803020037856365154071032228930636842171629038828242671749404559459091357949445878116277368962566476795872550828176094213770408245485960460177491916505684057813265820702559881778409115640829671532944957927708915585971269837910499135662029685419864042332344225835637061773431709748206570811964539098105479159236144945467999982021467187619383736302815707234616710350312362820619488382650346155831167043988526715072098654862860278244240383478106491581064569237869551501567909445248806641249857206087166677696753403771889984807350826221995701062256826226923676448396397745262814644527361493564456324837694723650995615123302337486116104754679895538423806911676432020928840641119055538628275879601377386658400653273584547092239488197737466031626883933725658444619635408440199527321489902558738070094087440111301510854620951375501283961643564668144291901707887525625265555721912690818606912039649512549879679377583556383988576189163378583457169042109016254641313030974684716257765986970166336607378927458699823109620626795155993222215861717069521370363448762715207194680424823182267252891749638495148570790902078764880465698666679634236292089367191694210350889570895049742863963972249371658446278682175213843351992788835103028011227131159715631575170961894637686039144110703050504847323799164253355154528053368025973874956275670660903586083879190558266464800294671659086841825461979496816435528016797660346118841429000781649964474302722776743576748685481405405046920142518989484542177237019094760584198955191178839630055031514610574932880515033350923509624175603403907100351843242054795758694729330650811876272641278972253652963907522529228750684847317204911828067023427868526306478655926701596395070725547259290410183067177063551680879776543261185222118050570350432986721758584788888489545031368612359193350387596388466948086329097055161836591002465678259592504521454806392018337478253258916878848913503923831731683016301387027613036007306395113043760921559205607828231591855355930373225804855244205306837428340401155721685130031245782179847015475806560656161878026966300636110259523784180453808121024691762072568730067735332882261233597797194778314654861319828888003991269560394880111998815034424736402573471097598053300889796723522984893061316015981337673666828210879715207479699723978433093915436445571264226902307372111292780827724032396387179073567283251743054012501133466785252527117950241689302907087499356935578517222113290561579283741330609251569294814153484650101313383898532785144824836300984822960041762888562562638314653861876944828508397650115602827829165593232774401275346511327441923370604980481833168359839426682947182132204668504508169857612191824146076485089247222157034947716881336802046076064955532328450014954871632623487572398446011682481772584098762851967916548011218564236719464598424927399711028624927702229620955969126473197312942488660218278554973284673515862555096719874748240178877067428875306358973896837332647711218377537149593977299286001975446927188559269162276639683373766000089948111431108291385112512939013203498876573593911135078393394743720490373770861881670879262748043023431427404166592425954534622382110064348002680917263772596907132464493818736789452492171965309203614309038793844607140086162673168163967076356026803421914864463426169683794309493047507728274321933729810487389586448736035134413301071291179001620638722351345134331422111021075794011260033749359364785708618352792374957767569557833421351554245532418127951857714679361271237927473586568558258227848765608208015756826754839929570967615430184026168247914852838071101969158772255799663368408743530205743007778157719383184063366196863839889725545208350877514842426261538309755738888729504319021321289843649789953336954432725768564360076876638016006818928828561877996411404867993079141964141487864136778888393084529581052716752639503078424056043958199112416491995076054506401247969355245119757810102909269600874978522267693030013961986460331732877093908225458153751584750876215059638790617225570211316973819589651719809917713596049087816799960688667811605051797433902859985728534480135968659287137397341036067892747826350425518830255123536108110533785515618895268405327654635677556445939407191319366489862732403700331417339188418073605384298861060610723388636691236128322453457467515245953128489267934694851293890765007933084435960007914742385410302427512854695600472691472542304106131513821894420648889845062824541570528367335397650805719641302474581118394812022940644374654073823831152246382009523620301546511291840782754653680932308865581555474149684481156227636873821133824630219589479152700499043591688443560762257789225762471750499405207865718613161727900819889775104078814171038047441594086527322212608574412903716972240836280540821824865422021874633360107817564126584140632857550222385242490814783850425209494996820154007229598184041952025080774433611341412828098522751541961335042893562390627323494067462308663074574332216890131767337957760972560721236530838134372705529425664088947087805612928448336031449022576851603694589322161898202212264236269446258223401385753737579174928027891339380879768643498655897840816711191358102118733208054673332388804646775817462509104843624512285990696155228436232013783226732985552630986300034902818769229090158137283726558307216795710262297096434672981680155029332606096724416131361029952714691303792994279839030297785670871190154113400356027306823286966235921133187021460621230489587940179794690978523950775747020285657831628303883040047595289330114907909313794870274678686638153065145863298731633742018841006488355792533667788691993548518633054963869748226151737211375179987860675431618890527806600403497256366095605467760586159624288116418581537400960618728827130022472988805150012613123313152347052337962199466441474922456176398598749065085913835760388663223503040232468376325813365619247897882553684863375588502656598038246315899043251791506387162382266761401589773623938993601022377613398528987588740560649243489293176801888401877018607195697513028736860744490294183720248670409468806876763062971043062078951129965455376076028148125734242316001818937844058155442903305123392084066509879360924168269432198411662311909390208721234221293398658316986474154467488690617124547990570214172910463682514641997125574063748758305383569742487848434341129268473321095401164880845108765269020762513155329783176494006644542220491003130904274446562506676341399278804582501683851570334335386406746915440483955252955106712637295486018326300885758817191586421829346078121222197696550522169404858328395746570839161404316316570978250933054907714602463760949691108010726485335800589205578385127730613200030150513215851080350131014265104457024867448169827294335350982604112033470599918099247188852573714858804136116763822184594181212353805097977586522215227492587863010465277283647724187352500929870528028550049602857060011088380198720258665856116727959907539498851609250302202513405437236803100283943944506614892804385322070516867904066717108985799266453327871542335148924302566506249924348046224559286794028274705581298713174923825206507658422449791058697204081081160944401455901343517393763022805239101745971135259834638431371535121821988529305411842496151717992713641764341680801056932676070185582991720066100244200312973421057029897188808245541982267169026268999210393631784324669694995288998124491002309621431152845314102671891302505826226765331311157436919016009986513044942596916006295113197979567441564968256915752861400771299650115604897509925983911222983047739160395656181462400902957738320378549122974729178164738645692013980669263278921734826322938612297392531344167725646761648560086023214762545419515284023223282318408143924855423110345641438437286010901228730595578514612054970620083830451986772679850282105950559053296921050011346136039954020797847365765854359044806224645798472325419663889056271273389095856865903908526158856986127803680065744816844852631252530662401292893689143352827987212165483019971527149567318886358311144676150377317943349975922735944784661292719327067059061823380339009036272158873426098351488513991865706911540236351626229356805361987784719631471860364458372686667909939239370494831680783690405277410127110959943340390486086223735878780046158168580906299479799214783091163741200534953128606387181869913254509604499049992387255939073700550509093638370843532718066049773479292185589441976413283223673198303302308000471463794471798966827828821795528885298224168009903837715259594779793903854088081228541946508326271511346864857733967191902761336683612401711997557855152135077060590989641968078780805540579221450153998685753334957621350571138082507527149885272869645382456338634622502614034085618275104329724542699101957251080198302241842297298917997144461110299032377170561471112145677628328753688214637547415773482075060847143869920361838573244027843840958879942269367418688931964165477910152369615053121815204372837499384894111175511666068742756541468684976572128842108509348634821289181218432629750225992112081059005849464788960522933744371608502039043374036294238462277526163036086215362450027532971932871849938355131443235647562665070223230911727585953886371804180263333186737457751495907738449328964421914321042485227330113692604494424260376232037115976363700622279749959454502709665067199733693104500269563573673152746123404430328635331194864978412085620408718377058486469620594376842561560501929718773111084561119508494636722342808320003356041897870919001624673846774364307231217420003876420690696725862148698158086840876124965664529295714815245026700210434662913445394042695132384593416279779174684858871990639132460285408017993311589031246603899894646394543363083022311633307862531983450072358169975497164526071507982325540250391618572885030600201748184169738401467708304186996468621703415411924799704948376651099903037673064191998900238680435106514322314749201492683881640075956745103824913196134883246586225834806152658701813619018876426210676383421977822510012117154710243296660778485658305355409538445553258474559427923188924751001769220305055622085156476128045919925692055156926137670242594690112064559557039764491697860692480881208521170797630588723563831210631819484554206787243452063873485812458151862419949956719107771905749331964276561005798496458640942440831192784969349233595387461711405548578417390230557290998384979030462785929986441805234864794454225647562228438398342253285813725245986783465286310479074057436642103029905445445951327287727856400955146891974740019558228681083172661194434905883144634527030765040186870055738482094082229885891706252009232196503047601052270812260143602705499699195543634129342184113946280126948567386423705704130040981270213536580197359239560501353772652407541322987924000878204455101782139919082384673120932681033783509082183908302499999093833522353784870930923732868680790940007148013681298855378629372978219679319961901599804198321630834608817877552584803931768683601090693951246112722568696666139782215230763487120838365957242546306224844244830551501642310335407593187915094556698161056150938761283308727343362373685931705113821065560997603066462030755227125065535835201768241624777727983228236608627660069819426437994321709723140468802115943001496994419907241497986714942992790533256941173796310588432458152840273844755867609403751922697973953471588301003935787134198414843669766414222767686179022489011357699460125102049848478734446750769175591867696848326605325259348862640606792464233738730132063300453128356110671347618922882500443623508279003651590378056991127134703888584225988113836607783946574085230335733304384705490659322293388892896455511592579081559383095502492385683110937038497371508912382656866812108148160815585975042518035074881215640009159930911452830866837228025486722894063085483730322770948936058260069542568063706501627419442038686430396689906538835025531492367385368595066606816805981120047614445425769275232923406463335985198269015825024533215539333419150558910417143904228244590142053100339954876748262053468331823400189952466403111999549519145507483098098087175936053515596474984285380946101701178942123994816589362806998888145062091611233594468915392656957423629823884286660795256377083462626499338070767058598274408799974160791131192031203394879418622150960074752142598991760279963679390472082913277472427074678386906030622323176477742048799270194083400580396961044791689393866318707942715825874005928694603509167125776975205251593573591722502689524890249704069622511855572544658466457566387029865615942854172880163751495194895418535922582489620549334671167156374235381994406343332556369820670663430804672180089922138461574660247398894379350111195954673047499619789043461239818306500417269263648255252717291669543625479217135189275507798868288459699096260976079878384505982784759767195916569610920843850415368567393121096564959524088097840407034115178883309069533465291001206090665321612131426807579541709686557384796145332971553696560558893463533758302420835212103158409969792572367983140280020459911405651854699144828501349905316901343868345523313571926993321129590476737611906184020409596818919264374372197083289747277997964467736735429888301062526008973048119001595859154225725668474235167265987750149555538170803611488320624339033874469610394454833521182426378032538504850899792041379527284756941967536586479439255925024064076172947947163376680596792045437640516014470251120008920189172614225010997259475327793810972456870313304426177074191359233776863329300470674015965045502379327024884555565583953534205750363243442933256249917508344530426265753857760893324043561813038990088735777115246987183769412988947793152097359998226870297086719950140696743807968541921603616743563397256460393114591210665898118065600173769699626813738785788017496308826581550383523831471465950153114829998632971783827345988312325806780903802757856466430589261944948227462015764004772001085166098108849844880754385296468729614373655902966021484134076666825474353231709838712050708424993752722819496434839579146223462148167939365327445282831190797807808521975840564462858652582331520288995150213329976507847288473545296512553932958901490297856932593454523776189067790645271871420213840962473322755045078021155933474981391768516527780905381134280940036292625159309273658708278826698781504562156832895387969609328671886641729030314268684019513775353740704923526268066745631724718663541351026404159836529541561606264436490012072809089244005564585362252930341831671370696242084791342276838568695686089519760341976551792745120068095921294342828757383539633863100263007161964296044817775546136559747923289339933893489275007132033479289624820330739107232987664000693427784959185122723572753373690028743235902538398131307924670259086777555376764989245889003347527432550112768558106514807224403234047164291793768409223091706633980723300938452831158820355555111986242873411445567643906518313212479546128559271564504138573398268896163511621971130326405535328411443066248241685289865052523037103976820044173170352534388248025122008892105841569113474388013234153978539575499187056099420003381235830923679768390734695121313768369201960041760821329291737083673606097086426240874846840386840261698845176280088068159782389636889785515068645797837114377690660944094145335153739326807151834232945335430822216954616618150907550032358019028474756665106583597396468322390587284482648158399998533087877097948628567272256517325115604005483430270486226171741372665935763027639930179894855880852740137882764979196837118176062130791644017185048134557337963910363854536685807137963000276924984356652759019601132076581314562276839423022481358465496466750431569812994215844838140103930841943821412688595941496533134641202623025458200773954604203760290974212952018611119126600576136096247454743535468920563938042725719986237446287824575734221363006129132637783731659727719265932421692801439938183166969679451890078827460860635014382541546532496271920968958690415458573130931684844945873052394244001402319825132989158640990189288512621488431071077562867330099762195961819649991867375773514660267739305244820378914711067728367176333295931932087947759960817469520817896487481725118439281940167465042892293082764714370503660937041427432687708197969430330593165190792590424801627526195910197337349882836423050503072115524483161191518927588053130138716750662797982297312273119475037409920029561016963733947941223174014054589074737340275441517010064835757985947377775930632565351955477248345502765873897979972854105899304397079461200133673296151914390098242621332365428941726094135388411096545330235119374104680089628436384129462214841696725149032059203690553727130399884327606862011839852046995895560910140221798986293586590128572470466105205555356177492216000492832181065683593486124924920960390998463026270337955776148064046782919593087819318270453183064995244994442889691902839912500185213643917401365206364305554336117042244762944755934277235808047512982292899248183969969693116543892831291001633887316308920532638197548310680949686983548312840347252081976497107147773302703245582049727406398215217115035242438612311074353550714215678950661142845555074005551325877677648410053899474547322078827707832329405630746725354619648427771055302335827184949867671519534014835318047805970663600148829015392380091194625162369991430982834206580826309233139430851144043398866396345936268333388353097589039400727895435125522759834677309667064738602097674190117140953330166071047669180001869511915963031427613849781593265037019050509390847400158784371267523116162810227317012818697064849822475476494282381862334433754790208778534478366499195994516049390473751717952678301855797610736396962319251775452922754643052090476220278582299467237256699272890053123342092972528301625698890215214948744370600763729215447030170456065483730585165531246203879730610971548422485220554557539083267326683480198633253601144243987393361108127232626631495148355118291204676377541329954478276632585774705327872265342171883592140493429902511281386172403926481089380728948461147356007122323750344643721332058197211543277887184206876860184836241833502063262322590477374592071569394237406318256300988420268942615086553964635161787844323644711000084751008600022198748284240212799587056835796952783558060791959424719931837144265476999394107934981225427267767163949175646590782263028304179466767970850054674082721909520246215651590277126574437753406461048616889376095864030336775666518579631926600401542994117446203237841476629149784936737033224206176284131252085261002663332806952879486478984545697318738125999534084919244140416037341722811099350497123491253063139769878865666983632276938912712662540279402819730974634232150215063063385161694288952300605436815733226453119122014302919790807175248176183085755984822439459589715694757416337875513354679496077833898041325359202285292852554752574162523475490851145054219924754831896741530743230374427861028439922178332480306460465637481138355064424013638064973791011726842689634695622612454568490691754324518056338296878210790087393555736278532023299190505654279161254343685107016452461586637240163267650748402081332753816288854196075638911443207611035505288823334491692504119835660660559144451458297889833323776736221236459360543692367441152153060573352295710455376450253784047331932520609303084708972682301048743748363997718238337613563530850290115143596566242881103648375599380775810504130758304409727903963723029834865060105617878689515216543057452605776707505709324232858975866284757328597397074228226087228652547620641444444609881157990441298304474782075910940126621310214123661817450443803105348388157123341552044764110515319940454156968530122363287674997981734543950279888411650033016822154197778340384495908529360340194116849630167291802119959171140037395784355860185215101194094788324273862518224069721741222328207313859092545401724795548348570874721060342704504015701163827271226229008604260184155730389515418645158714308202628675660214340884010079631384333771612660384984057888859480209296343662507277997898691667711076399843123697906020743907049726764797920530965031963942296592650183566682807863708055104631583669071734127344435508163898790027463559442633969070143060260657340718888766629046789215346249841204124766939736197534841105129974455470937122050418661366024937737212845145876542261061134527036913873731538402689359163253425746744109954549651680217229220351864947061442238589454608292927148891258136467300592505998288483967919066914303802923420430944884817836494942775838570989468165996060267848194699498360252116682062253275075260562219864313977166840150817024188941703058345438589106912853860684382170889430647205490748121462776446352533220891666286833343489362251844153653199547255370679849732072259942713474937786334759472064558766229572561588393015308711605548313423324866900846725238626525371264414090770294613330832667604787389542298816376941068390066530144957401502348547115317563590757084420380872267316994964718954980022496136323523732789661948573409109560005166102932340711343160465329189458788288185242194281254409370447081269990598664679609755533687285931690724899040123786898492124995684102816639179628835125377844017052259207608723647250551537321473680319806459219410829956286555034015949919725947048975269188260993109504182957513232499311449365048064700337090346990447989983306402261279732584712751722619367876525725846500071233115713015417148844757800910690543507065064691343197831148178741710098933405408307610096815896123946265503749965755706665576502349146985544562165882305062461284073516101927282125196633310853458495204013914833647161230994056175227623777471411762221867682749193608404679733663041327358893630619646100396212663694041777588309520168430080877923319987564243903848470134822993646297510812571994689631345678779780921614054377328256252510131202002165609909721522526058997374219640365741779128463277061566737027140607813743166922534047957542298327317990990323939089442204557310743308687209045532504009953816144931204402485681676397100157531750279973008296267399084961669951840570666879241152630717057403981589256816030126661681590744743054566776965934258842302006675932951938890954657295654421039886118302909210250271418082370901945941291091789088699086546006214685884169248592123501993897375365723009940429773572756684829009530364248625593204282650716624434876780882075549122324098423182852830044748418976292554628037702289016179641484492628843229519649908346193525190352945063388892564877747454286691570581074852197621315253111829160089018219245706497905313082157545715201722444640040360810336068280820844566163738078624220140710889962611442530513695471061651711524587148982345251466586181969307389172959702911833486839839729942609776239397176229776045286399371813271716748454926201748063504209629678214323692112648636744076000300695086038732872359089218372050105291830539687847073479944381720154535890566751549912912539983647437347559006487327501227163094624250947762696367617281703055512340424084528476518038937648894793830780563772242992343738759308517494148425565974337808824964171593778859356569588055013416139714010197943530639984806691144530554805142953865836660176891854031954083864574958197308240867916036942546732273778289036427859876883979807422839605365541530974366703400929419754928150001095190702538387016351230229580073812441396479579566945414111728227833699254620718673488901255841400010380792032086707585100128227567443647787603357276946504895794897361132836379790572751847591271544073012911237490347887106350728626119391119433312974874166439644487969128536042779278703140659937972520623618002179162699061994915471912181107334536875286686127095658779551543741141181433989085231167597013367837686353029936462678770333198279662835735069361212116497567409480806861851473884359048710212423057334249072706343359105137716896696740393360299616155613185535820763860551324278460797021190702886237163444776716832343183619327496041068130537649732279872942047588915572530428928966606249724754231634270463889027589282147952699022091080149443126846399310785470410896243191293308589672930110680437353078113474686727473367202931726137888983574694864631494718237347673159094608445202129454070632105682189317094273086548557100949999211339875481095689377801710250696773652330172031088791944183298141342435679501749823368717243155516133284648026113469414721507820340137577336139777140325567278582851263622505332177731657667867523274834485198840754579886891343097986947441399211814983353286853859783373647552470653708041396966135202589601066662197697593126434637561725090097204337025277657416861817868639155111641599287874262545850945553629599516533939613910152230477233375835670749176530434575808690570523799166402003541107274556526520360686925210028584719675044252490773006719465464903845403863642366379065821883874948922965395123137254489128456046519283003967299413832402697375501807250805705277077517441492302990504160771295634512636495572375813852972433322766977920622400460815822145929342687306451256933900052744281873181128931469829496578404263809688494155636482528078298467293852652453552618651662988644650995057089191905901659787811725935381704669487855841774729849391618044769104841349548263121227596177809746426662775281152476738040694113051669178611338057643158834748186948070042594165766659995513843385509839627287177251574137276081104081162431215675708834503885329461389723581698780994913979452720161448507937278765774641809907270933247163538217189043427616352331683444357669052367667596189859492271181873313417739634510066805858087083095299678074140208652981022193460886617491390964620236811433645395219617334511707943678006606344955437059462147755907855296831129946656812470496690394848969883346164666952312963200491769215135555246363025334311917119152069579200666400024036576927360698234069485147162002717158317246287682653857161326736999499278478514115963973071935662220164559130207931859848596075925898294584860147386451089213281197568068731439808143950419646226225928212510904626703191913524216357298127066157601740910144211595998962222006604925584070554000958809290728787881602782392848813873538314482067084438751765801077066322276272812048828699316374823819768849329066535690446227173281059593515587404693214852496665715753307638285855525635469838453882410412954469941283847613708876462997185540108294992852649841927845586572392320773798737814330391514451400248233271472922406790611550239448740057683696480670862219137756415776504842478020914112794125089602424082857402475027868212449488890628373848382184140190979643564271474448407149626370861441970391198980067861138997607607005851670598767671159505717671714433582879574374548366907180487806237712338892817350727837124136736895593874502376601017374505358971121369787366915807889527571547070686831036409669852592002065004814751408856484901094183059442460446561358688847417941177030707668768907458058574175147291435512835421544588915726216920215207682306737776112253879897116407926471134313832235606885520435644754430717562448050210303703981205282085834142519081912478245934555812861734965697557183982169294497941613781094941265119217848560811678308046178315273531756673365456488720120361532873910850932712121539643780904610781862911083978303297818344148123422230200892341192408498848959490740136920016816772649060662765264362920960872524562686042322712373814578733766107504085556595273590073643949064454653433136962749564335584909722913139513146372521169763191635774180106371822704661826579463888230511486102912032200772772699848425946652430058306235339760558036712194694130032456201306213368485352230279425606977624128460061023656289749568244411367526027157667519311417106730646472726703916487817153898584485547013082389768443156177060954223524527254360011184319932079403790861678379985018919391653588155965671754517860224815178923207018398324116242531574683983870021294923776113462705350352581897268140103863067395029710532458581894950101153379736753574688690905289493965586172852555902244072164695367804326892284891906982646402004796960839688623658848318911307759648143569317822331764698479865000041730226098224571344470760691003284195729418194726408028372605508998508961757540214062576626357489613816500679033366475871365648263329550819434120915054798970659702826481197009362727988810669249706032342996119703992257404316744306738774292770554283633713525723050317816509960750359055521918561310569535110975587965994716838751122019059488346697395950912504575746878659157660366333155236973946040192207520304613847749387458444037371036127675423059593272955006997494201426510619838683953410207014885998511094949617772506527723222838569802650274893373227029613885123539043859270543772299920594567567715051900882560473865531556484032441284068162078203564091745096934513681793969782557394540713085195489351076783683714589849306916489966647764730221096891276821507418777988053542009190286365551395259414710308737728687466752732934507979779485451325851753369094149401469552694511240442299849866044882153575715828456962699516389802576620905744964841808960286651590248233335473028583647309416499237920203441429413715693516790569734234289198234037253249814859809608166158450860534346093471139861861446047472548633230967214892629712959621313931143695435124502814348933377880153411544284050549446183875305612792851217108085550302104450405091699311237336758561633376278850620011049708279450520236403737241352530343074186016074121476880319110910487386418152395345336970526299358388485446426823018048176326731666642906148594844367369045218199736044489059500400601689783473256148255974487238268418506175915485902735023256489998479233263325896574741089788970932575257663661580653242712775435688700646158874430699879371093592527112478621295279211143921361419417743798826217991391185827378678293762793845838631800213621333201872748940719503242687248446448812576906499035052405050409469582112461507945676031714722856381525941320983274149398154596801091288456643252708985250661225571720509052993481063501929343143533611246286941025009827471901585746180259198694128692090625537768782765226993849846320413062620416086542850431692968897345272255379350548228430213754936805595271629726591924749459784333435891979448909526144988274830364896412615318019561461042340389781524487780913297128726070642443944005244416284424894348740107960304535930948427439017123798724040551504498805586664730858580688510572521053817054341555055835990801165450050412743798930162532649968854818791485362695567032064461982695698388073915874946030915602213020548313656439094728436910538952668817747896548706841496484323221239914126400426988158531238459609762073649115318731496054946007460824328418935541324855348627834216692199840747752248229060898366504036422836399655885424026192454259076365933634251481288850715242247929177773982337538483887417904698183094167418855306361350260012385924249064107495636625489838310686312761841357414446208278757967474284703762956947700500634890982012451785430810160978772154483085412800606543946714493912305022709137108643977213396488044564241894771172189352026886279215354749268638123521267439673777596669992317759739666304754402336633364042406538205683787668253308395493753287738684633636315358544255549516204916026574437761728109636494017495954109616173755764277214127820016028565041192488461562041055994103375117260527404070326709639453920812712559043299506728219311174884816774126720150367785488764280653094928642199674073785992148827545363450126225551562006252460846079266626809132679684559436293311109851718042359215151960096260078413398412932613460680738834760739031863418607785317286794292646405558736912504952045891305773427581094524391903767727553712925203175712785605548971533915391087206748749084929043711348499114495331211719863028194076921432093838914097915101553200421746005272606148434122752873208648287163534275889943290293994535804451935152927907917231674921505554168360992453590056569157592139635598064449799372216072849690524602858818593692327438983779786565990938363691192295685886687129530665144771828034562288732832945700504357091983083405068440312556354163318805147206080857068177574383380982997345991769676538512284872148336656374738435626799669052880026126206091455431646833177736875166747769369801686169229267244135305388547839467787764212751495764172829440760786710512490989978375460155967138075518277987957108100974314100054443872123739040849160514982757428184093365213678514606332034603239498879637286769923980113867746075955141402229004803440454530667259027333693304089800141917955832243404011348293709498452687062928366384358752066839758818325591481336865489288805328729492149306653828885952876242220773910718833668364633539253859027465407039721893181914520260168024140651455151344419777070952228674290166047242880976864439528652894778872158922471490036367567482073112173057337401077688981817625677294896195655750871190733200630041475509533991032524348303119153119120606059261772984857239939937985790927609470154515719927129579697475893725540955804790212069264898191920110774685168874446388517753762853049611773399156439287586010423029063176534673046667530750468286908213772469195320934354012837880096153381017905527031754540300395577178091420554058117505425747344009736171643433815675809485831240516880127197405844017854405765937941137851875008462287458730106287600294697134010789211761388975420282560906087358409710267680882297610869487246674359811011443693325399369426231812136350471686207176376624643423829370272343553184813308240853987630998651121484683406927883469348694293956791201452821753009909801815579240723453467776619795789158180584803981182521382739362674550380346373157838618179654806099992168612401161428978304523603961100914384707223559629812898715876326503074692800219375988713091050626638423634196749862735024860983789068298989073061313594389217428370670204981603632171471801098234352495534519064603888544970417563006683433394368539299500950082935036607365556851261449278153054830348949330948002837178595124336328164385286151739450263884745815482322257142885681972731807614492894243895842704989960675596810695040272810790966580919353612124093131997023392922997593409903801442941486437655397647715500191723096585270110866583473674969068565517197586382897401206025770537590458761489748671765526264337151575483338576630350485142436423153243146342717122992049516974450029210846100853528907549642128053178089528282772439128650111678683399774619918028891679735230079186047223824751092156223269978542722685866610974626803231033007380865921879446763245627077607345605298426303564839833862981974464238426162342998277344737531780621159458561964704056496882368660815262696447531587158688652778950978761866474512538281825947884536373641318355501590443881326581097949949808164887515638013138309110038746146748983370611550639681400440560401461734321913460380799547819550094120834343160283248532369368620651994690000306995789001205372355977185145536270549804780584713829870804666099852358984817446752009577800673020633863432257837796566463183151373811270847461079713341239113382723403153306492768575195168703601654372257943706710383381886853573983729402747979587887894172984692650737098775533797885331365964046666666736600946728670225721465852592812057095219721426524585996530850274646172941043403724912702985262542943844466766868472364363801414985098362144776447516856848479952315072284741731232564376206819302388829098006674893248527963729535602188298689983441005990723832019445432592088832358582644903050424227346626263601667121642415890428548668919184560325760112222152298747832349817205207658729891053355819433028359498322754118521339554123154182679728761377880759103063293887878847133217529413014455226414105053004281132713485899082404151774794438319374862499091370008355421767678829671469781919857715891734301190137292628443687235497200588599640797466461484562236354183424262074819321006396953521103428726532714994905695995877327538563601339210557967708252689050560324820248620176122088756727506377347441191831903011082041692514495848490265098890448457026229715046560963033430591835332254672771532740343606749607269954771599374252274841804471180455634699417140282789947674412432097784320435268807781115410547240419456601211111720827841517745905031081942506704835688512459398232695301728063326171680877551841459585543138148521404029543001908650412088379717185504525339135155345298206868642414336000963445238254867572214339777852848985337481478446016212955953070944155443425137089538791241300060796654255713093068782751719986971127107788423714843328388106278002850214673305640307318115327995549492958390430521015108854391809771185940776604557363180837552728178839834836183894117076474514784982788095094862800138107235943143020001532548289266186857359958764393538819109178595529620178191157213602701881283677155274629045721817896757200417077154074545739007579471697537750432253609607673486195426520992092699714627009289674944390999769881726963263325544202508261772545212028342334620633243399452664934309235762939842794776007783153659786432546621565972909347248852511833860940581258127548319296589726303562300347234960594747902279050088398278770207541388334601607122024549173583151535780964575567883750454786986953934566506354471890430014419452867936044965772125056975598240564968061204056286562723315156984435473974572575028703628443244051664941806715875940002742851675958928753376322367101509955241853042019447600606480716297192335491570762680912732385193877415523298217377470782929039285274469732089360468279438075884494526661735409611619615543586092103140271309521455565980129686179430689793890295870317403488087868182640984314634134158659373068840534928692235840071202968175507966906719082722943497691337409894406440845551397721029767266494927819912695000514015118729879618780242448779329891324958181978878609264965731977046474081246051040904028339079569339317366936360750785554840387489658909962380533701587743782287485405957938828596182391316252004085321470702554421002987897777275019832780544395584071184801934319516527416595328144924453955634778431484342604247765957144177423634597031036383967358844761461322719610321029854691883862758361676572338364760135432832416738313183413601092545896021322598445406801740019677027063566018212767827394136688638943951762798789598986496413423214556377026410392457124277379116250010037308613344822895278983536323508184520972987522631476001553558055712093190965113605257921638166188404581375093963750788810439964993196247967109658275594462239874138117763394700833676720658506928368383678438594392060321346807957657906780870151217897541058686006219683446866611391681606868042600532474611771438531158133656749427066413085563231483396461475328059558016624652037422941295674617072615091354436415936896813839888278388865494812952865659121817801749638149692844447507856239142821812663088939868834762336442445828783280035537496338228987589240351939431441661529444604741579006408765871353397705205384809800634293842101131100402783398374110838959907291953783951287861520331176648540651986794771917865729080298746174402052178895862117671141114715833468191420410195704765762955268428949990740353974671866318167414112008207000183388949503113677097350172635967457953830524288577218547428477618730625820431916330433767379636625107688089543464553121986553491249744158990585050986496828942394586743124998277063254976035811053008921417448440925752057559966901037574660589432472633050804803178737455185597590887837859307721650152640917236092992098663929559387927181121937884299796192540093013576650912073496190157199554155158569143404442414820193624403070089666042467857173924592279108645884125303651644172640013905477326826094875111712590298146382504418371013016660603489185800549870620851343136517393439611158852442232935908425467844272473686714718145569851602647055736794688133504500524598384380467350148629054939826612546071047593927374711358871297213019360127579002115204639638978008299935822857506539404553536419850658506663076651130209882366490297336571063867624897513459991070645786093477733594840137467218612427790519687294153088475319959156321312986902935193116707155782753864757131316338831425184661778954083792073061366673220567937149488882897162055203432769673117087191713185482899480120486344987355503013732217058571265459436296025419011116390744959324191780923090382330022535114257778000110536989243450270482248870529823731875700426509803851695104420376269457787565770454395741896569668336025272748370192206673305270029603856536848950264297447325051593588704515874356601357805388924754648226034703645484789846020894468427380256131031105247797083744153630428167452355247830167660090056593817424722728822605774397093532657519068328791608174727680543232607144317656565001196281835627623999174291374999222696594397929550158055162156696900986755735656164475654534539223154770510160017062079492082170074795252910308840350291091604800983927162120714509660444475348092579789288001914454504438151084838684922954592414817691596603891291041716329682146967086995258440124606192351084249409232824761380281132261099810761718855483234173781917632778358790963782704211986334809704935651344494291091007668164243748720992794346526671051653323648106208362349055901660968175394219580366771905509541446138020719752529557201018779075124609818130521447154372201464900666398458744788106227519111175359635984391228692964614500342147660279078210410440192230988422126473737693195769326145198906626173592050868124778014251885208766754510606375320570344261097381116908709347919446718436408798997640471323112402465923570339788437889734520408787359199506822775185683790591054561176832655757636896407121922636197950126393862032908608104870357704573496741011526370696973585191946828923067366990181324035664066940019924922272252187342073471304171810868008576855486953187544136402098214204122165336810159404350751296880669711440030600675573555878102271553715443418654242123836159889242939320496855987274383368016598288563179865373067578785987544533167253778966108857064402064264421576059064331841913905189947620335177249450851468353204076236164882728119618025516587145261016173066214609277595008137914136976992375806325166385386011664211771235900691112058868678490464170914486593667617778848891509632950162152205023987067676966245641473409256176879193632486301244365885691438335136077526493100271544334666941648148020606957595097989206047550244857937091080474987297061201565092530647801389659387417754788964011053648797067772568638337166068459735000438501420866130762248946409924713247082268263109799802668752621815034416719947622226754474326956809178567900058764122177740575476568386341783378638697186054610235730692535903376788412522091512886913500451666304750573001748738721678274900036305015158455959796577156150936387493959373173044208237357386381824480294770680794979308622456732913392869156410576192328405550336483162748932476944893428005958831502588390842566630718116951590236563535635391998966844767699781927671902428627819328646594199973837513777408164935553463905132005393402951582429778446957011390851447605415938359285718107278883421090311895472846798385090503721359776826915550794492755564397494985333139322885432959444669077727361323093015798087079875049409010142064060117902976678072216331608363099866309557375689746239284637013154038076996308094544956585572254711787707906448270920718338532856348585953626487448821393416669109094696360551927032720512945507179435872379215987005126951367632622404965255983379198524488207576486233041967315840215469025010581186648375632749163663495344046615411659340621054946581460541521837189554778632059528924388064215423689403670761197111425443387961796936460383114051630740647498688059899806915264913927901414064837354711117423758652435808628357510474747705960405322033020469297338009000694467297771154501524691364078960985977354694623851546672935492579086619350064441046782463248743169391639406217885660013708194284930819304265947706544670061887188182222734969193958641155946935028741636934568559752373231392078848995446928460797717720740754349827669624393054874979691287413604884792495112778014014791639563146243719664861271156695128121841446680994106199585128145776569578117992030080363677806338103587478945667657816548699430632899122343698635808065990000520332353904332254451433753749892806714580024483171363802720696648230297217412404557794768398819265375040150124176597315423659401966907990330296877249970773221056606251612651225464404281342907491069025614495694280261261843248894257533717330625177292158680156934060089240586335417610777670052089842789873507282619533846990998445682821058587975751186345778225961621916578382208839924973893141453884279342572796390235549168541354352672782602913647912118108681871529702587696168984051073880566509408355425636312001577170416901050353196675889278549276418546107074914170057323068168405145423666046595344246267676949197466818058616532381196467636772344140924786648179344288199206175573087985138757280182104741515340828609497504424922487750777357976586551894083839074925488960491928609317107944593173434207092935414383238859537316009916481942696741309785069225345582340611515696901917086672914555171137498231974307527976995750888526183243952834467711259469561326605911329748206158895699554748609483496630731868607650442637792973066538352752910830135721369747981989325520497397148022965440586685353067080858327011907259753007765808797575083960557311808442219701149116276882978725284222820541876708108609339526943599624527452163635272746503817064967399167474239106406323375526940986797473908164871681975511459023511245072503486547906263700019811506228698401860329178207179387230249174084303151405126437658788634756130050500613825686946760479167457817446746300602622029726397198699418003728075572406560040640727480896791736048544296339948916726460739073950636436277403759333326614975172379114817042901118030987527373576929684277046827014647560878292319116021544268871655709488033041704720829973829562215613402655972320191609866608213649917688359864241148443962238963055078653503824740758030252684017281982035250360989686532872551945541381145405086902493620908025311939113407383872969205995382425931308654680822275111078983085346524916727103537610239172764521876472024891579492686647542787271081427117847232428069765632588649733531631537800620242538512210559765270268882246400880222444835189602514673330568586348057750949673251919599174926538249359179753915562014335734343657933283459930139986917174768702890617659254091201144777565306861755783968044377924093645840799177619060146769781106193641415382674534660676842676028582879309111690241058337232170855084315570412342651295404811903264770747152532656962296423862687723182905464684761240066350886547302746080262425459403770641509077241923925880807850767798346567542881444609075990521593826954494545644253673400192210212204045097948324334760824471997929131082876600320676559061302086769136148821376594363289761305161223864727865174560419360161928909139342671202376596462084235357278163214932512449624709232694370009520339841978197365172842599993143191131604437928274268148875988002687834489277184526821149037344143195890332026333108054515818907800244680370781555920917891595745950638514865101753920394841128352467600738695336722976022562925779368434444815782253872602346310730702431102850241557037156497467566621318427144255798259078018418108734602990928714349848987948217683344824513373026835570044413297917202303993639795339895806320198853986599548568055418330251013527290599591829962275315532383916648557748767008194705738542890295516440565357139596028280229153477109952790526496754322345131380163034855350253065635177555713358781463776951641244524556726244635288848010011145772470812032986651422650701664788786917905327328839384601131021502871937741924716843568531585431427608098796424274908404090678305566106867110754539602661504987081825159580236635019815702169303047173202997248267911860874084149164868581104860000715394174037703126359528702185930250412992178356772560989493575777016872731038175274344439079368062209739501384592230941483691777145326654244325847867768781180455016878534568131350512713867388841238569932539740643165175709999203456127513732288173224849712072344788444573052747397582479869623352247620645600733428146125700547559434025138119253699395819612747536718613909261272245470270707656529027964595006194246385809819991365913655433200004986660382732857933770915226906328640731333905645330550206928862198688389304198830401749007948642715358861191631115047477631860151732382917981786320977692736041029926262718376125595598636518424845852401003121063824989092052105805972654111835731827860978005880498811477238694406637733440022438800645971157538176106071595089818436441771487692496393410668914272395371663515589725555247354466322231187044252475658700217674524868958616017624820531128043340892339031329231919578850851710547502765504307082810942873458133902115380703626271919563445927665094779040496970987829391854965337158995320008427784628488661035431546695265443804993025665223647892771582156732559422200146103297591532016383977774451092118710411130797636836691093020933842833174307318306656828224818242223287184341351882618942235663397072769874505297548821655587894093807087103787117908509079941200037303479758519260269584091210288738416014500122655808083204357654730054238947029627153694967247848840170241947080633949605505054312272327300890766630129960645449229801017430168294046319013357129834883479544819589324143762306489895059328535220654614868231812552912539456082181523742806534524157889099627813654964686324460107710520782819888838510433241506344244516314754287614632815056287502609988894619285519116196481686324003454153914827882183518501114845808633242011076463523986749142625866482516852287372048107575082335703145094279702339592689537159547222776237197587860452265567899029231757289093857011832033506935673529662498840249270398946524767933292202109505747731287100535981349882642643252353567581625312150775203177005355716563583913419710340840616545389916994618960079355497759721011698745611136769664387020817857738274908215317411145430287895056600597847003130701759931436672600151996773797486591678341289200779355440598829468750345306649601905489083936414114392779388599239085788878160810923061733442541048590968542582865120481692385997454502526223083620521935238660297735747488004421223030491422721151520397633210124538729947846186604390231930774755131672099465429096163875067398554796305864263947877323292477842190327782065087357888033594755227790313527982329069082748061869381558545060788691721198864003831903280513337544681334517341580807680200958212898944561046944802718295734009720262504142954146003176187044252371175698199939466269955625039663127131360870595773749708648630612177564294761843841757710876413922954040469556538404472894416779303430470945032078335128941241549442656237259262845577684999003967581734247298664533402309994427988657043761997784213327438593607932526553096385350424448321971274903528981728380961672785058647282056355980029647456061701225160146943693644448650646283139753707092189177800771585884686145829071452423177207876194820249518291434713142288038942945055868212337059881806734529300710355985189685303227927535985375186891180444682200092581356224108439428982781102550553636658272704736102436394696706830896904685426450579221826541895717381862141652710837022906090572916798713822032149828064317679572990795952770968511625593571485666825051920438190106886404394980516429306341423225893706780436067211836806301160257170101848202390974882639112486302882077952182477910015133736213861177690820862235194816301526646632205077932968897380809863932166866552528615479758421045469522459811291430360777540781060330386194000446356553918155914228594217228214643096595131513170886699230175707442599953167492586219946079545423216431298248065223018718540770681762111255298924425580568101833198497692968357153445378998936878221902804090497269450235888038591453147035577484306336600596188153984041790566258989729551440019122789592404288815578359590549340226536584114322089870575142218944266960419415820565583922616368756154368736105287275926376741820548858144882734662609212570550670950727497403740450259362644980612720408781581913890774955282803383490212785351408030223180002403837019946748733875521002824291785635411350420457660497012989356561660797665690371483595479009471433449704337131394458775138541324568429927654107527479350822112880849926772968586670343404856335415869439265416433686496909824989091454940955511220050768595898405460547291032430183827273946542068444724827288283115205693600049573447401148624619201548707844294315754389113208260304385333069053386711636993392891855354798090162207864225592764046316768649011869526408403466041932521548805342803630146751800317407117335020157339972636317601140163373434085791390720057096322613747815069517116344793134188305792702845672431362140114240580135070605440879288617339623554537810688008577357615360312209264197386947814725675209908614666166607934496051834573439937079486924494099508564877522164760916431775123944603633747968723180120537194668529460609986331770013622876766137802163650302364676760782049443925893265123220512537881425139978292833607591558053477471672443761250808303207079129740973816988735441636623555202533171197043791516923504843703050309479298450932618999632738176865395428670739526751654517072578849646132921463682942328441221825337502259614850887493990751732442110719565922109282453859110319662222258080572578519472047660166783569310128267827890821889988121991054155942902906129292300819072951939931088724947222525515893133953723530416808433438353638905304295547579158862389351542465519741847508011128257806192620751712304933295565227221771490283071737921712075790886506703554206732284591689649190030396017693151704191245934228909938637989056939819306814359007133533589362799666814699662233246565400267285380772614590894465507464707551127636992032571610823428075523125789506475279699883537849216869673822995115829524162588727744703175180138895474068678458658236532011457962830159279222850631459478974514182237128435099997742049158107012119093125724711336123403265236385118539410039196272026545578902963031591920317923062416056211711390876679249391394453370658581187337802880260027980357492695178490246921154688311167575526754297665723465727733795582860470874811141735392183289226747900539184098918956098333547745158012052557622466141099036152451505284909056064956743768440964404714146014569538878717936974316507852395332084273030413450569011516698074300373188268440734952702245505239202493112345383639062826490798034240164959835301070804506998283805137201768757191579845760853263728893394183126984742503705892605972959426020006943929272265424263991692843418831291316746610259540865900339657486437601713517645090133235706757558359901998429545962171352921622490620521325581318638451732225921483230649304593387365235982198796335711160067998246308599409533176519304181594699303230720698310084719048045469142623404144904013451742621451782470379135440077200733316468811187915066121916598621330739542884970923115520216104967884682098271582530157462076547753338684706277870983137414646702899625028147608498066648849884102734513654520264524207612026873211271597412831776402884911140535507141748571183705489333226837925133159058549841808969010693336057950738420374997389006288325009993105832670605100818484610275228877649296611119115317024661751105098624059831606557759288877277060201829793035978258123658744272820014788213650678972629329889945348399827373359841773524505987707853705893844221050659798047600197811823204260211615597350416429967535776279318231246679899951659979524837468519486834558611384018388276819689367848931746743317315722419687646889861977036307048424924218549387381723362331662237583796800710893829922039496566084400496327299922892316435393332268718621110192170512949413279974776341116595780751928069309150728054608307330025299365480596388577494400335285392242671671438515498266826211643059144647211555620671095830159275472299690500292941049915513677095532905549355091203905540800648598591475906380524257953539287555208861669895881351435899370450822068326890380309920186895910399560955582041035243655574300204137880212112523524469485871242585883730785204213350993041863280658578608491696827856454997935434873393555935711693082808491147929981636137951264271405884813047125300459682826288764786007133036113228301401221066606081855726105399080936453864862313461354717811511668680697478893588269394751105029899959657523371938108729614595953368573924208499525548867711835051119161675078689730374405092240629831033839391968139731249416015330613445424790760315416533117066549933612334047435892203858146715176266347954159910967327376623553948325512722238182936195852850279240075729097706977461128613602813269502161803378056156701086424695830517934749076056363320547331551425256301357053839529025559606081292444982884244042712076872780273414914585817479295690364887702717675437598510674610006797317626698101949440935713351084498063391814768179963487463428561706653049521518547735177154472541360811321003394772355901716775877777367727602358117529944820228710772465576439998006427585734305642929912776230780367120417097450046356935363062167575536746742401457053966786216483719217847698441454060447913612351739875925017338970822089303457927049361365816068933737019879056343605485100809973641790391993414588578460002630590076151339057351935363859330847116537810797851338733441684313676258847869078686919538819373507697612579611564818190833441503865436367723396896735792413055686310012520168668688353166044167070796019778808006465767629639886431403519891295143424900751531652532126442341420987857775113420358673990028619904662645495768410681570902979752321217231601523071063479252307760589956692821313955852137768332966077929075814375045440090591868312565388299215739468122304487635467996469761655819065329447702154829491706904235090676579447377056702304256729564744272639081989145315883302184278054052208668205275596527319081481397485372320227177192767306777956415922641952748659357131971450529192473556921229192929110454803501773162267003368748846953683362594477031151540715448436847597785123065853280406209760393217046237308105501933446586994104258538660492354460467151558184212821494873497822897834072392690555884616844014496466135734882793799452769973643595650689971343453546637730315668734424782659843111975227508105665582963895776947512309244126347344983492712292407829515163864034694496249803902040731749496881625882635515657831399830224244195009075682827858941089118372068293966271342118993145934660554390580334799795138839031538743672043964278281218825749121606245224341443504011407507542382759253973889895807706384252471772693307460976173693102914792399603626983015471893092784924413972620303209845374778458803195053901239197294675388948774206156351209205967513968557630623715840420104253917441779098422257920331402553720713556144062307363619176295654104717697690897187414954249207141843872363734991818560160234618992156206812573471932404963245900717274054312516444424875779555833132957282689847280063353205502474933000846492492541971538480254566693007358467586646696004725363954243347832937209433324562283227493035802383291769129094556967414417406499188559450385017892940557438230918771362480076006552601567897391076121102038246963122628417279867425537418170394807867513902556365255188623946233295448061756061317054244392980625420707363785635977481853751005766714561969750995162034164906171899740050765109153077933053481010648926760303207221577072888735356382257242677253719514570550438072353495634593788375242245764444854129387296111260968477556849063757624919032135062622373046014244857269063255270557167806204494389278871174624563575300742325241760982182551141657982138764797094156322071798912181078210944370187113997418398910702856115479229481657484230404583366491000370310472959307186525567185326133705546247395389183350730770263834683749448025938223117220399246728955025755416337444315034616423297448504677590693094039096829429324582382202836480869954303854069745529131352604684932267884848515817570153923300743686404605662976679386576071512869861010869232632179675983310837148207133119879121360439777287786029179447296953520011806758255430160565112068250762191562379015367221565925205454599461532379583802894404114498513342074993774292573465640557118040282631784166704803017420524052707052236425128484363106397549788411048804042466740470319225094897507111420005963341489493902057443859168019209585135058559334655055238953619532849037075041070248084811639366306717658878248469138260235041334327475150124186488441869019919171510142637307442715318219793823154342263219203021962295747809891607722265896993552780235054745603337440673213288413384461275126520752121915459091094777277966930215876312328821999651546838031371736154537376523787507031965555147895031401192976170292194924358551463172964276499779213334169518065725804326742904758923522867975767467430863544408789754555117678888823123966542874320033869109121683083665117902594002103884683673246553488512969740682624553900451194630291735390737295558108140181218309390380944044379566422638124905868552099132289938783009312624463003779384271711373159720219261762470010386486332254773047173202099681478177959681377945998500507815774198850076157775796786174658262545988369909690895320122028452330589797867873015360240411345196998042673779534808526495934397156712245723626752326446277070474467556683098807058545052505457222581348589360276129720660238274965319242311630438588355839130923570698201781137507954154652991299627407951810079326358019993101409358927008384459574557590215807932085283053554486300726566839924074624193164802469011223128765235118903716678546717747233591852769616852949241449770359537497769841253617146828408135010650826126103623145720488491917540057099401134052733630271804067522783701769191631198662241886873367241698435493910881483875325574150104882202672240709965054653251875664028556732721740680117799956039630198098238026449647332692499385700279544411637539731670118111616705235040502869057124908264669694454078438388577496209375181224885836734085332533622838066102900265894635938086993024667009418462015774067734925558349749987233685069263486188607055111958062328195694027956581530204339655586834786855094126079605164152912354661727427907373280367016416996645548097197314559519237089768336675422778255990830382891165337123541295675177121280762850120614321255420407023622405038245042151679921123440427036923430339040857420898665844477756001327348964569646955131645198926684106610141471065582431873482469214823387920007766408535241574550828343540154438906402346751774074015433187069410090063738970741665749161124622554591203400095303384641435653150605726992621472418760875679938360694042759064351762723709837929818497084354399301158260244104656972943338925688750120849716572054860884543531921741057564759037492913109475102956182841868677588644311866612185778534841308377353049304665941194466703693970687466939254770343371046433676976415610552886517313657539678621554190808581709311151568783263915397906056565853452889820569948922100573108999773770249739859153618304298728116143500029588675440432414189239065527052299040116905435517204942565239711648521579435744253940372732232611458744639794661710280454655326035368386004385381252531580743937751597374356613012938738133552315201121347933971993506579629655797651977863385200270444167238097659382686656236183201360046485730449469662625165097476148092836560263703012205512816975447807403260283427631181852811806423659870841835688259824046946084561147058704329833270637290614029024542596686799496888092434961945912611836816983031086580094262150413033588371221255599965552641954102350254646277149651117954998923711113372979478189887937879233846282663509687319273055022799809902922218175536425221288795366730738077285534900236501261951010573308260538761603696282060332727674757016711196586419989786210665401412102321619255239369684604195376948205625470132886678787755227510654521633288730160786192998086059563003892779160855082843829931117121658117714431917637200054690104914979830497333302097582542188927301821655184371189617152029226132545729596017929905196500188223161149568554957226573123153768123618473472737350700375794925604924777039783066190028992072553812320922636921234114316078485974086484799221666960604694085687793974566489842221739986652662576520063990180554738588053667406475263625408643273429706543129279723077781785094340280027383464646848295397646632472254297155168917852132014153274154648556009262462731526619372663988271263528282295543421123822933432745127535797121673290043334602309092077821052325375633697866335382956353891396630362816683789395171384150824186338997863245070389151771058456747047935143926861500497727497637923778673611484998868840330745856468370517031511941574882910076300410625479960836950705506068547381213543486474526429624976277298607704417897871572935008948970986086094444426906000496728368708614463170899757572288969880138311736789219047937397293149208642177098027577047620460370216133708306881534570809151736748160561416981751559388303592847137641572381298245356531138004543785633835183827663453401803125103067922582668970172047846695834070607488222623203264792124964693329323651825241853168142745592325233841117151727066577217060154019294104558679376726299290114082511126702272978810532933521013406907799324537883331945625671594126812710447723298509542919614549493610194190242588380881330503536841753734325025716437564031086549204197777918498751642654746676456216953867894770202828035404381483847732483725243414462111712553974750468831470989703050065877671742224932908940574512608484585315473923567678462179048211282761473880807624964672006773944496402082704618830345979641465446009316731728135291470682059244998239404269823558339144882150852751561473272566510380969667907615050321614394072550907555356139459428529984905097087821580042377751046966709338630260545813515979097895892576608924419634965907925360784255967654253462395571742230156413022390525373429456613053384207690028250508297190004633226647868684027249803919689577179340947799471233325309707014321487771370717658341391846260585772883289976710577086970559552642378020870221627572658468270251920038760390701578673332831378776727323717769681702676991847858227453779242011464073144787598596812208671846775362844116684872572319353814237379967747496937640745531980547026990355756412029964336226340290549986669388099560900602084956618882823277028116346497245700541782851785447788404011117418776630090499495985042677395482504549643247986757879076614267192550227248429738326298276242815589896940635654258908502505143577265609659396179631599564143243448544267811449963109212072844497430995274869582401332735489264885536093281084357028587221077414874635589318213607522088015013255595138842918207351008374252868408942774832049052831161990085850430611361932074341477572976184068820930359376169228544929143284767206478784053826962175747327642697670623703415589856166094213155704826544176063541986788429110787557848505701701018205520591647793026416528815382054558592753973173256039251750184350550665095461352365837639977530303709551014025494138080141587139755765158649225104634604681481497166560539731858454106869163460432017156826324351756307353660107564279462107758415239827711741419457632560257215393718624736964262175256909122125481956246010758136741458236001552301631677982527337803977793699300866444596144431702287051518480722171599641932419396749180084153264455464819286864489018144685922760933274132460037039181697557882409637255153568739979283399814440859108726825621527704253335665607140429748007379846863000654816431298842929075503881149984826228612814528661659044788797058424126093009417683261925438858384973814782041374216203329987227222673917898002218478159840723038373423292824727528188278369870831230591580225870643479427506502484855551267996543160804968498497742461340539422630455165194878536661582216426749689661030071364333579402116064057701705246839216158194305680385272054420301329003452097043238337113627006397042800062994780239468840748375184803679421913537680451616461749185045570144771782426621070297469705506591220843383631208732542511367011907315933895000966849499571186205477621523402330633313383456862647508873196821649248037203217029207997042458741633192126954405530916524702161168900381200515751414038688900369249018210845140088545219416243143375036950847932296561201519211259127858057314394647983072034943621952463603113838615910599456666709471898756456099358542070286738664846761633065534173936003234667941392559700085554632265080740259983436400030010915207817601036897939383606845758666732748689434716739303463096678021220544856331942715370883847884827000386012837195173463319216806096999587946207897233358609877465477553723596224615084889349039310151073668203305676886837963873743364542681015334676493450455864324784892194711808847909259180250405917782812448684514670537221581048421994611649534209900025840331872576545614509625912207329521954085869260627858642426550714953533877675205845735840468350419875588209890473879972493799852339308150187857338368394404289219697862650037803349366783625505326527336157958586731402972115830212315845292615751330358755836852855962368250726235694318474474170889693454518820192338291578732568310775608149777564248652528437016545703624755176399866060796110982039247916248665542527500002041656640561432452875653920981724103570438708165047085939812050850668647101409790741471918806053900851766351123272505435186227148032396781480934908654816203002219383866536460758327255699388883188189564925202103012950856682597118013181482929768645264905508587444356339706673744147581474456050709731550080015039918972619103072853410468268176848889884795569825155247569598371259316422549953236445337265473576231390850448291742454023134259777145154921027227172175386841844672163489404226671964749093011500846175129480794222949321963749972596711208226797316214561296195833086506939129245630094615772961870032919820972995917628697638855569590951925807708518537074528883709812171550263492306470378598186308879946888655740630678749317904299953151367182367209520147166272592089214172619718755401522330480669946088415692078739088878007612987916235584107076191091962583042177005703581546251014502040485818733389878634944089195180411536296194021825330467965156082220906527752274124067684206977384784862412091524042031988438514033381132349033480034281383623285986662461822244623661781208614419579172900338627689895461158454410698860146157188428560486267028988098684819142694727285342717456056219741741742787746874349097273742242606985765440447001134155593843466277194831630255421024910578445399044285138894311807311176666336334073468788479829005079908942230702224832154930362940036264918376305273856641916246067056329798820562387002163016123103082827097929559276918505402991350105716570053881130741406211225295623072504821864297783628167017190877864056944527796024664653510819896130102450688398864296872508007247563724727540739516318946733197313074968421944000659819444045140660381449652321312541333182753422758176260160980626691123381041422794308851086148195878101336140468915679680929065898828759393563257655387177008503747592504968558590313685581505174575464757386462129514897454656485089121674810913927099212310501292878660374066005771926848068600305996728140548018811589860485971224333026608884999902421183891931461798688384872064009742374709420204981617643226389107055029221218578712643788449101276758560800757127303646089287767723254511413705556548344628980917514172165447655667089891724505424010092605456928719797505977203220703102715507699937008687372750243997722060282329675470558197413135236805554752048075112335874936952224530907862320893126024656608876640523186214605929965778373322453529056756427845187231687769913216896775855961858892668405414652576493788247941866546687875548604658090111266010244349339824497587817932881616110317120607263270334987994221412392192595598723329586050353519251938830781438907610286149129400416363428580575794737112454826251979344785163661257097419542515367124442113886422773752166641069333189732515497063206859206056914906361240614638411648012137235038652199331264074568883264893246898443071040833429350009976429387486326151960662733731104455564325993602341578921154904530362561530409065858148714317872713658800523547758813914038053463347792332235006141272199814275982651272435873443514376499611509763017078999944838812536944739668509794909659092268637467140145680265897329027418388705263078584482982234136173935050147867461062559245766656714528529952363856550080638459519166135863581945703328923744582828567763303788970374147315044136006028127704675811827999966353751654110767995339468588847150240904226621063445209592404215463525510242795329442899166354908764201329793242385140927530201594260623639770477720655336662264299082131097860667563336189346511378292032945886375409922792885072850556893913372765535384978459743440427702776537283823481750068955567426767004941270699020366141808391605282655005730587475831167130577758346320074346658172050899845970914767606210760595233659408433962659625222777232388381356502854862090125641641104939005614984659933071811099992662130085848239777387865649071480480783053810603049939233484466172283167597026921315961418065081758676893232667215568648052743590858339974473450053372059159222167716265554044631939825595167377595877744607909493414154853022683976188924821281670744229569153289918207346857113911271460587080699050646954629775707542305004319598934726349671152701085645494711535215756843306133698646538229613645764559910228081173947558083046578054170322660540448848859670953187495221876242999201115188745326306028756662834125093626556122767691079552009323971752161716941597518110196471703918034962131383504666903866656536252520728360651652763320843434639538174316808315508011063296224963956222715487914065046776626575901175413781399066818534729373481944195152859154114635725350054028304425172617042101071306562323733649074393078544445742135698363991126608628893245320235654267619864659811483948704108745409864530728033938597307955688211677671651682619995904680852362687501470255922041839771777594876767241465110537009012522779028681357987498585157867625131911646379660893770881384316746949178241126112597160025210567750109357006218660163880422829279204981982194998105820541254969309163294621762113278491631423619293689795020748236547041896711257552241417507848650745876105037851344260279408992397097592482306571059014642654680268576466818595041652345582845899327214834405948783078982519488522860871908752881788375234995561113446641178386939619257584718007649224465659214076696056500643419955315857518309092579117502668189192980008563134634906542756662414898644727803014044899587467163357400914313914851587632732385223941215688366468129548223455351179984613553534531886428598852467428347357715026193350494529819781882311849411202580287009558846708080117529375566316596238445381731827632299567487344449979834807869721457665283685674423408511682177033790815045810763497443449435187879839580077934544131121889142608926611856838006516838062601638929007674945498317062453144189493451137339526287276922985174624368154597419434455118869816767069162364067410270692450441423246877354720272076849731629743183845669150900357559770934942861107925671159911465502774697670164335770039101739858273502410441619441755818818333572728828720011550902180387734390376800701176772089057297349000398595140699326051384983567644693093176946889337551426889113311139790334089156176899869005225348274880975012825593894333063002540107124803576845744569174063646300842675999324361620727977325948472194536920639239805460805905718678960040219294808949017968335813672412577255909989084429255685981618785936522946303396925231689071306169033751418331497802046482226470115952250236214445616710518752151913248886022707593519187084185365067414577554599532999028710507570992102051114552527142965378562023015786104251005651345145712149849921125158107368824273936542035368962474398294494967109941997894259049700202917729058620881261858083091771368349052290680846280348097865010755856706753736753115973730923884736871368902863936836917226144869780138829450346797544238215938297356750477468317150665074721360124029436675608048786814856210706132115715605352712592195471289096456260011041209121857052704516486344958708359490687554340587117009185067756357001082730142656333335859154615292500313294079225197472465777124184346587325779548004610966754508864410188105434585725252209073701375397224671724622557787266463974334933156625303744885077738427814088155999929787973862336378378377387669868867781772426396043213068787636990366641422093868637987504640721811887837711108541327551189298916912694125448897874224684173502820907397046275114021911202621165155557824933059153256527356835231249183711701037805049890744778819594644422492627096605446995383308474108795332242167666880709573633978830607578225155751577215910215119397135105003131580684232277196032860049248074096435401971304664480156453493887594971875408981329949855349965443784061869252713281863472178407555237674372277995493286501814727916873304916447060648111981848740952869372013442723981657914234365773281121963546714115680097343419815643971589341661759367773575546895629683894913959756311649184288393682701210289204924436569753350347009590479684260110604139281415576580477937801077646980082262839135559986671017192725595153240065356872028465062914031137360898941415034307361169345929903138447788138360589960034816517506098360363786764785273789232035341737661908698348433912136418479796097707724509600873423881360279573229643196931087711120886689587223848314801627544636395320628798760292878401094997333255950051730233435169394859081797998443357845290040989446961231760203549705418720867983774893586147022808079687967531867806533788119504180525658200107655413257289863707998040845108943657325803598097405328223032280801372772291080587562791890245200793220222399914261539911436734391969867968492167877597424333650010423098135427460200191295005957598017974493372012627545672364668361979569904688269275769044154788426473090206138888533139059179921294398461148930960313787809787612451460748199833485242265780929191979841514753676636564631209337201140922830255048671574332807087971015568649799237141539182954977435929161818569765352824386127713390710238212387594571635219998522309511932546274688604242169704332663240260563623689641394504955961949651020830071891524946072867121807681861069178634347639669589000174799016209227544790535078611600557228350695997839971065767382210989849341313405150448246858812850400348846543987845207266568059602061049627836555326362667845133347958791396614461156106941740949384640613226449228508613221607432716115684875657061681623951561067676900022898691974424254693195286128261498732572652584769803853554927395542705967669989973582554753803099917475581427695005178583555006000998780886734776730648077058822409370937244776759781417114685428360799442980963868522760591277881344742542868776494470190857920953421401034622324831266653320894861105338129074600343335803755030695559501702029605042267054526005661686181884689211710187982332637367008013514209019361148247977117611186983318131109590206709511658681363229583601949222327916543389551492555458363810467496152547565875850030273884787465274859511925882513883096946070882926468863764938965525202251119432251151706405928048490805562975170212371650897365861422961779314922450012445827703957817244588769743219333709736877327618728594828264942120483042666108745110404533711060509748541645940043009730353286945865315622350249113278314192709042008836684713054264696088458426399296992450395566013094826524721993197992771817959714980539093099479385243076936750120198348006240837612232587332587485720266273744420571799747581869024940130999330396318652839543620580805512961802519903652049483020627955585176481969688620421176374100488101317016041217904691081799185078408545337000410939431346563988557586625350038003451737993056723118930395843680964397198265117810063529415415670705455940595112471321326495143531212593961011307903906577930418488585203529827068322466861594925423024854764337697428279534261950325517094127339511391461203095662449491769456098153210711116656195312262975539878866736170493424203476204784335488700852011398818083717726235318480270995548336560291254243900703046152022507668812798335000953004136539690514091994429778213214916991656800162253730561124747595969138860394169861359624546144660590691127334524060533845230712889566941061749619324951116317586603925502900878715439907847777384315185411645837015311849249629511828502572849505166749694770066835342507313166982881512369973803621568679201620955210498822899375957377906711448828319774715956918593703539488575083272469522475472090114958394733594483370354657956495108683154396501843903715321044626620991305282467493066481652101239728420003047203793176502762778831556725996759183813339594004538389834672001092948622450339513797845429097476570339973542797048495785515874661410896999984844420458697942652905669504364184535787159124172095630125777918822009626952460382921927523476284291078870557337360740318718504849621457621874601289304507699706512069375547295214445118912924289714283816869061361013972602927613138020621461803686084273443858952038362520077733016561534455520394211611157476681837255721945037059415714266738316175999857123135770736599485276250960989546524096201048079839374318279567335037102793790671292410595657837709494215712055310839572223763872821133761119526185723678486400794051872924569911212165438843531950454346919895373778400510259098658611829176347047436171199262162266058370034968826100394689305363348890767565810111304802577345977223883107570195243078959880738404032534705834781391112667342871780854125142818234372944389253231908728326101299545564588605796245401987609062551758020034098795075749076068577827195158286685980343868757576524331854420361875182912950398880470473890635517897908527039373864469716269910796917941638169752800605516200110058212383531107297242550399165620786230896508825596417234845084808325037659310105058230567973884755804933094166247849138113932513898600036832469331677059172676740517200682852067978272063070518561750862343141934339662875925491841085563719497453606971936857641737177566571727459218220345923894187155698606768799896601594416898290937904092170018675007970536272958757943937248932018788400157881939462721956111396712769376256848531459636993806744187326730586059837112189142324459051697732345546084017916400121104990622527325199784022853704869042474993783679139115120911897255403515771616472806380578036688276789785774113402801997943533036737885258620332494618397480237222892457549226487613632385615797310293597409377596118786667448246048519058560224449461257257789595903189752202816879686195877874898423251411030994251599973919264614046423186433722424509805217567445798562265025460320098075105215441654514066939326981484387416573570124977147007274520391638957629414970423886516476946264621963491058817403961048415629288272634439189833249255980169098254494275334451117251886564497928121903159507364271674846968183733733992139389601341356343884081756462680445437818624202009915606405369386898683074322110690478853419638556609492177215787172466334473878300025231688935262284894041187270316243918531577544382853942745809601118628157726528883949290826584441452755292931158761027055037336305221884561074022837842177695934920030216111509824485998881144829484869031149172300530925961183494548483057641070808523634962209984653649722376631226692152607981636306842312072161724601558839688247146068424918139242944512378863930411378293285643069451043138890530165739006427883430642345550252758921204081248750809625938676990966104927499738730918666971444649881360956238489739653354256939241392559816212750047220766508569533085571776023914694589124369718574272182007537579698157112084394591934906575713182793469433834620123453587238876568139897559746871165557583463994924731459938933525019347686594116004210451782081786213461119631900313878446201361678325586696178724996545733731660908844141061401861892209635407975873648995249136236307346066666976603742485934708576360196714411722252233400352724222112254197154676064051652465437450546524147506892436816481549837801901747831712054558474642795140021139397699152923855646953555758612229105678905127080408420113419513228181701919902508999613581602754933124204436964421311138811766155632940393395852349504933997462543157423689395582987176875434111993437916956063055091478408939274561435276371073157010304169811708527034632956756773164232318103003511121603615357833349952344521043264869186813578971833074091317657826229037753049038621980993593292316860304405476978997257664570830610969766743666656299054548061516742243423869870908301207356456838360010511065697720636849731765870634083990891443517829071120877147460961699496221853614446839272594535856951007210125133833834763106358668835576780527320291988218232964483428281364239373646330253914196813915782891167311534776395304073938907072550744697568428859044769250758536928802226069020170729567311258027428659445083389104594291633200351651753025398668050355984214812813911641776365395316163890583298413859245847685076044925962157750448984453617966282333209800394774406464900948770933881859203867495388049934725789273914928303456436211646228904304507192172837575189325478754936531611774669114161000093262269850797293481331296317883300790894559109179669449690664111373639423754393013898722618305112695611802128533169941132415692903403569411078844754409137396922848860804477485705577800287537312498517432029810639324355374717023978643728525276797242574775754478501387271579909344616007068381759672751654431781814039584462945708064907833288868831811536627621153949782572815679011724810814494400887072727398488316131993989051883884635337668912979381260911564571453106045129186764435059730132430082984206289337664296083626591030682548301298602013489639818387809565729888289917618108856783327562945179561348462677740546541623414266376294618681373100113690187671897442391763787935489466255406488504660267902201320268682757395256108711946330241608940537559852822724678331742393471880767384284031076083547419796018446599485504133024399618263933659616323327321312122435741161898319745088834837333464310005515954284521327372425591618148076409230073945227452441638088820460543365800777049280579709488633604885860959703179064262502403721058345714096511486347327323511469295096131444302916728903497517814967470029916823413779772640374812088113386828641683808318816993697141370459337167551076672055974888521508804800612120935891529809641135344190906543860280642195437556669699880725087880107573243383224670301429687986663646993225345197153741785793733244217473983958681166717427262821418259670030250763428114252435811784250812811515656664545604930982861877901143412623269755553600027106896403664769583237618582650121483919475339740322381511478341592409432133222098372981731226414517974126700766795910999016706522452261711272791377809489149126705320569427826992243296924149497934739629288366158512631156839658495365499529207291552844429158268416938968013244905961768968543900367461565803402447826891703807488987877099117397788696045586442358249970007013781644864867442941498190892271415599355428053436865626497848667841196826167529592207632226682183108247276735808209512315646923960863700704371623196391897105879590306051498023008322304735686848665551771639671472904130609618796880009437602321817005861160950204169073249430873659908060941390931803240812823643965747096217339222577456025654407954236377269571793252161435331913491131713176069567027142571115652151467563814810854231656471757320338257737719719811067700751849569801357340395324446450626495605742058869636225991533291771152349515193982138120330697715345844138796898030330478823377126949880946835453461200629689524064551549254604344127803893338998433914112681524010538307145365557551280826924142442533818195752224290650202761309180059753605213828393051754353447611389310249391499778126722605054469612215866676037159246729934219704517644693713022604499121169393629662448528001835215961756425889043936697871160855250466846644624042750000174591847407811045197914705151539076853072847816176839956337324412536642652457848824141407849917213919891119344577403024487692166921089702060437010269582698913919108904997658133475632393618935531130265350870656540355316027258744843711962666322326800550345591359387653261213616778130120038603522668762379136501797405112001344334594843009069932124536292925773858329323674274301784120396756101074891364741214725735162642206642992676824532879241502602176262931667734624987916581145089036047485443375488430025879605345618600749944599982876268303918154975245710820504890669576036782398884300869453733354535696372758914871098605521803909685359481239570245570735553780402253101977808448181792336808836306966202434186063811590049779594283473444416919567244923123760387608209202050112437086988593679047681555982859876136285716642602645634554212053398220184282810150125278078622378287927885266132212849181299918834766613645186082297644729940969796977372840902284415573592167370388520093132023819810052303960134812757485169150821480814587260981586366564641020065154281253494202874804369646594114942030108154683334699441734261650572764409300163323651458273181605968436665865273116540235612841242500922601231804923976727689119486312299785245647463257754007648486003148641304258842746043478595746996709253413740323541379702686682992245091930153594932158902398927219413822713959903156392248249559230384885554193258081552023933299610859377289285943696770704696911073823835200707398353872277178488746811236346266058645325105213529112626554004309663242815233185873475549983621582141636789289611560039326124164795754636514103440706636611072635618014007352377431624615170135417413950241762826511779227347863817312141562744573496330307388321792672529083372387596959849982814965528668574374276454523473518254830228439151666630541360732863412431862004327875065969601510738622458407059519696460414582716657875785636843135693755677445969320557401728468760687120497653699399012920491374574522654685672846683797094192299778192169193713387420772937598843769960767195379176517523316803198751488162011512155791375181642725914579769780940521644615693631076843160370945218427925176815157090992562422834112122878136706770135510383133088408467341775334507289864160561190321176163516553862234284429978114195283768678925602269341243234164354431905706538580722762979323325555319038412168835137127548320363040815400369849240390107474936415900441385972558025877637419395475496309644458264660127886271719083364655671121894483818448693218779191706288767822174364265698945813867918847776764274606856054437696383523050222786657728760536584104631852894589878018407183993027562238531885670907839107273204631117545340414667306958532613759087047401242960387599620793966331256820037361414800975844883417089974687450471398978994144185451704471668274205937508253449202717964853454292057265560469525641126730172789314650583867219011522604426616438895060424869093934722012676805736569269766128021915567967341040750117722777770242960111942449967642599538336349831053663141753879043604067632791122495045088052536952371594361158611037526728940835353573859166881701571296371757850146612922439676885587403233458668242735344739240375955663782768707171192796034073746217883748063241220702156823435941917456141049720106203129721001169054685925213350726111177578457856987432604217079852152912180160723820472058868855920153956390709124748049508767968706928727818470777375605798402506732662653813522397546374810739192211079367237184116634193270155291019890045165061697107915116059652244680614855574463757328439629039566589217175488986474173155870377880042518710074867034579162652282870180788365377369136386995226460268921664739790187175241048401862883882547837991067848381044026882906929207405282481510065394649446142043113260834101858922209865085397668533942631015297729329052035799169096997742315046311269622676256692125160544997068767592987976026147514117997937424563617709933274132334967881869592513920563749628908508129825809956343620900780543941738773800087413808042773895977774837822382623132034367379251872461586945969403794968840551591589932180845242174694688449227605484962353753121766271517095670216605458852320090494775455697440540676052951944773713786172399421893156704199758941802120290307460407437639265620819472463703085473500419243933413380529781966959211913367544518261219677801311082688889469988357079581616964303342426109238451385962121594306543699760561687394588392914227749049142929126922609378145012777662686181171354532377855737471626053115060283868766173048392244139332407594223056900510812470511586890017407615575277540295830549677136107722897242723215240921585878370620902087432709572218311744258779548566969996965676160953912915661144034643258191524007956280562139071540339919472105519359630418173740576982037315173504814967039080129709673840846341265878135223222546011776365177392028043739226118943330749705862717491092894525536501242932649920233612153961623624611753290199177949537818033804561821622492126420291385498617344648588695841520237704183843442324376929987232961252038729307897487806814469564124250901092529350137689058693916188591999433925118398323490713398920225801960632446758103254963504672551699898097195513461641221220364161094303876224286149199869056465384114348369436821598473916663013639427860428513990063240395725876756496978533680922290544429128059181703405961018217586321384634300940378369338017323682493951472870510587020320406086842570908466768198731179539656424180031677526262318395759256912559584727886040671901632632709297263477364544514935745932331635247555257038616935558090196577784634776331990294276048075992668673723252871143613983548541323433871752534080192205425874822743333551658707903896788380100525659426374535138862862079891303823633534412254809048243719157933551223819805527995469288259910706536980845750583932761436752531762613760860115436898460031663402683098706669798551627272735060155344465108495659834295469860526889482332820661204860847113241903989245199532007290873050755281625932794783486319624973692926833997594539354906633924974509529394230769867360918823111652953984179755491611969619221705853465953959423506473514804834978570760245044810048680419853173275633749295387143513070527022975274535884593467802544476586262102029015671414197647850600525351225579852465397626963336194986347163924608865348933855901649315171739500501519640114447030428553291809750688879553635686258610358547229584449985850192508644939361763982127841492328479498870057125125746686627033364465712110322912451034381322642605872078196096504627913652046785363422925461243861889834660151089580197691775100402606523512679762079811042021618706598694135160097531598360697977576055084074382639261503149608155538069344952189966333852688064852682276839679351513642126441188649720947445684432382177068260790940172102549979492393542793619906244034245598650279475622242341250643667753626815442806607640079037338014105481785863262031693016311309433518692169161547986681077407849273351934644963363045027237431582832014494227432938141269073866965283172605329544212325019298416049597365882505431979553057871874302978029864736718733398930432237929482066998208181970639869979997388365098226857752780025689785426653545037080915518469065503927398649504015856891575786459182203896342386716826135462732723280373331431189456858549540064223469597483508568400689886895568858356473448880763516605677888766742031915940846814417929973344818698643027909138771879167078416949400632199555172064499740998622120096376788987730009448941133046473268178081097350362182495546569484697204755468326431052926626811151723152021567900229889666908243978744363914141837035978521203264339345466961996726076729733098256246437316952586565031196520746845808875358679657086985132868727471423881660288925847049717722177134108230655884109077459331040996301913697978228415687484102566514187510165510085456336301325487689478905860832376332523775318858732063238808706381882814269961998673038360477618544292271140826291475544248922751608386735875064624989933116594607936556821110379544198855777824504445942655256620606927720678349587748862195664713305504429155211207687320706408083190210516259657473473449382100128050164900016066625285924838814681368900454836326243184033082430649058535277549536738748342117613730270433701608647192386422604895174246418917517181384513028076599788623112478617904458474508593461761813969395882426067604696936553168113650616122444733698151498601978249263250051104719343103013835002729627870362758499983638080408255615829498346012424313783203231897202678411705229422415031161315749110571291882515981105643380756938053849488044893553239971973326849846880697550205667486356657001709884389045686367015161769854291371426012153746164156384177992503001485330191275871189518218441887291908498350533507007371084192640412168666389280585628815045950506483886924358320599805346661294613686590694260950912097203328708211949192651121762001656667992165127062323566796155298566142695329521049866805091980802601583808083011879627244640447361539334635170817008499833043008433956424394811756370109490659550640518629911580732406023594045966500198195675885097600854879498277985785071022481251857463159529006013966727597599503191371798167156532559529773309453581948317530249383445821109624422721320508759584747655185005591902441608927851797405994422588434252991298305562339612115516686074475235585077910306747428404116355769711179070874438345834463665550061435080159436563092384858980528753693059804781884712499702632166413074498833521186710590591728018984349951789942761162858876831972261111491677610948618511358810823287523031116494097224666560790979095056088586197559887755396589419269584959095447827159122146523453236613908163847496581759334229566494385836035612837191096849299960448018012598080502790285989123186581472842717913900363542750666295732311002181042502260339947305198547572721839195998740356714777108624155092749524872364361177080262782290100871947288406417922964949606650161010897112384125960398485828477794221489206671695110847964463047370270213509067879812754614013074613348371702871831805745592933341791592811380214874477976579081115896284449270346273130715874807779538522349193070365458310307722046895517345546216005179736290142652083003936482488602214152360343578775564938355112472090789255890819622045217347934859822206228801356628725219680812845551786548972540098530062893391100528518840313748585000969513304705415796422475608469313225490341832873296645242499541325983869590158652539971684531038884376680947093964864751548645053430516970475580391294117861828368781080792922337792655339536732717333823953755162472754989293758114619776246145865755906821515527250928566974731879595928674780322340557016838908433596456754365979249769801153944663893991091449762210695691019405613661404766044198381660873277678613460702961007702288461129779308752740909927943022765335074734819529317953786676014866415166749107786236363522838721066986448127927429715844371202256178373769149349320953209243978602334092320510197592863824490154550184883085179385318412866324678384457014610372294359571001021608578474163486747417893733789491634289633309941302080333313401360839745627189731100205497832684763399399682250958035353905937982338455681526198255123753467270209037617450469897552640860608800421296959507769933775240382257963521078269000341872428262682084513950472339703245134948446061661276255367247832951932921003702954449688669900395984104927674105331375996239807147306285710091413655351799172134706675214817392229602308323439140618398785294064272371270799503391190827929073880098577074628501822560327259642364320874544788969493616928884571189523607061030454558190650703392370929602206332744909551987299412186539638198118302972234103915570719296130852681391842001625112171211365728603956006296462824271132762345324739117806136123068605264873265413017611008369044273668551037017107106828283662630625757759333048873803406610764833694769908467783812225317036409853395665518927731180219652976576823009172549513362728688976310855996719089746323461805189821850194551983776676527323523949254637854769480841197767886454551158334237030327420633425028208382213842712283675095096312420184479749299576058398875009279651706055904920668276369478945554707685970439327773650244186936352568439008158434896555128658577088557273292068167104010375602377371271733040402550419778270436921654601250778262874616918313102791213493104636944564214247848088909799495625640579529669844594673606101154455244065959744338897574263397756688561321405980289970223235526850073318212431218822388146891182036639335177490527285994296795787801227532630569650220278258286183451338923109869694765121546828798920386599991860222776879146962911465779545679645967682946199606141931187215270706921917484168536881087204820154304508710219587698589351045237303615236625112413644319119595334266713856071905303829607948849300564756168913540408463833291652788321430947032849940974924897186095121916348049108860549587207740945573187835155836266319498718156643644228469131437317200736910687006455455247014781104438648810699503147801945750867590047966380604107681899285148532930461575759299777825952741214367314027858370119293827293918754115260323013599651055426814214026151354217290864273487903208955466969153181741207322186915955794570535642601444820530574331018221806983167707981838811636725217199083072773069491636821092722714594092848541334847437858089352796375845744262889341585147284243888691544485312697001878239113847254862754104272446500672901838346760341180983104855457914869373106725825384944279470481913486483504755701379896206963574038538229232737070834373289480172692436552176009451934882844720598961673003511805670621008118134165437234236543379630298184899577991852593257511402052736303038426189570456072234538544506087205363599461579776334646070413548695632109688688612744806333047782062040658666340985099432527030815785403842768840108559747858894989136394688860474478553098645883448236576045320722510958035494567283291074600925696379757740082594355141858646251678314574367184852797805062002148934269145611550212059040382341049211102785797573914447902028645620345713686047512558028714369065122450897282123852791280713842619244872802216741128401204406708920081934641132965155563428421868029892861329141035419879264558543686692191391044100547481536295802367414348245444378704735290982195277701946049574266185700094387171042975423757854252171238468989708995219733260163913167949311745759100838353433577568673624421587973369548337861813234942189952716805952155958934224927153811323361362288639456567746110088685569629436639357278466324244273928793772464634140607194993365652397152203933529940603280350385942293928923243251552395341945032012711978469944903591448821902354135500896292657758669545633786906263272115608794363312876231592852052896909167625962525156593199995509496452894803540648573278817763922166606010260039834147158325385647820675480895433815372919480705672872323107902196860393278996287098647101586696684406469702563231120280953599689813831772088777011429190044251895264021972849775345981064269244776988074541003565047379578135908551947752011000943180971074692116780094851266308478116173263469858867699296834851640518380623835401150285726667798618335356278364063217818980797143705847516658306167638538816508832159025249804034872447584298308030220944428489586974168943525828273843855622491623084553049516351090053411445510713960402088914044858422006569818256945555983470313107925836929098482579850090333875872489703226163113094033328030199561387054146179645056314910359358805680131927911053988510297439360350280783959664096872784891538153507103094896139037491149014193115632416455527855053797122655076160374326163971542595561642069448605040145487172943331676234387901460238735089146726656619668868329623325270665333599370993639558206855499368114457762885309398455461182756682652025329201768795971829984036603403181632060598506159599541842700214846926332628790458849600689501995329892181579398489755721620038973078737991440353678857020995890826555745321220613161722139184966630795133408602548432680775141234839826925638782696712200146681978539222027256824882827965404526642577544066999784717694845973824287111977463846133601463387557091528613277872929626199105245422252425754702326515387576314694137037477215861237515785718972734375734720433598281860086582073421433934134106924393600739643446133001996813730544145845913365286614566355318740318755976591436770681134284326109340422532607685747917689800545743039219744187040642996705954367095114950685051870981639506681937382965032205377376302455290819919413620440618262825281988579610038402009594655646901255298215285835194698449246599014403001196851322649626975229121417211097674424384309738366335634358042336394788544065361085186452274465201800286631458222642860450519896192729233842081281346198527348880647063683926907735760579266392078051990486907224067383884863665787832925113243008837479095803262901200059072663135246516241386492234673938953297389841340629447019596555795154165379779946134591265611513020532281441545945764556215930544407342378175964078884648416085884176255673497516691693851826383981305679369469316618267486640492274851212338893418657017141718792790677210841594307502605200248520402887657542536266717076169763771185602181660003657271315503699630889724142345115103164878045871894983153842436661703083808545568334797393048969691537414462964388488121393183559719494557918672135740328250428288158076069032276780934966329657038544396747325894348460915232233174764102818460865145279312934329354700554004779766048290022013521104044495461038873846158816240148386043869826554803427363041406966761992527040987483282625077348930918734409806796579116444914725469218809416649592142598832429122785855481909271388537901117830992856019790227972428580023657385717755551131760565784009249058806067296070641489957530232591604001473507087238411835480118473500842329509009617115299587411598442573631599304841166863075643688363332039700723682524784974925995074044019620788157769688242682976384202312816962908567174492541915252334785275940172611664525366178781363854385358439207647770459633543619535580724264541183391413668090251096116422249600824559136127949188177344451472313365188093071748572936364172482851022096809324812254521973514271602898609543810465645680607619713160426312378099794853114332180917936941544423323505018861006031128308911758699318921923465022282220809557952941753288778680993944311312702880799767625077357550281700246026766732354591208662538873482949404598590642737083112689482475377550998174503307625217151242536193319749802433679218163403878013937662351976749659404834350687870566397105597996119275263405430822651849578424997675068281669617668639286856409889049480976278774033837161995067292956272014233448253380364812673438864695397816160386711866622977245151094700438600711398888027899170871152055701170416773953376167723580100011253648082192117095768290314062670564002286681489064191044298792995559237854186705204473222691007234705894432499918483314509954871911197600373166825043369276385660590574070439320171255324439652611596783236748886983570144197465433953161139837450743362361451328613814584876974247285124682970328986245706965767073174178128677370940922170569996268605613880888875412702762161333771172596069221979959573934859459008420078878923913690245178222537786527732985663307624167083336385097557949902552918360771009249632183157979411931412609009770448543729275840018886701849424340242221867515463615840225400286175781263524790790480093265687012976133858204085910048540124528180551493752253560329096781471957831781874803326188234270145690976626965231406023690105569255784787620406069119841181709727765756387078308831893651433231898339742699869357104657549593260174590339760774913821201866105721843585009871780337495056210899686291782557019801061969762402032947486558883256275532331124278647000157415987864068767601436519729364246091321077889409341977212139027274557336998673702445753238833655906707281585839960279497856714441042955420127136686898195858721014368845344584999010416701670628459811573741579029248660674825829276558214169331146294144359334378615620680701042623849353870079347720158933975568624668735452316319927033258130531757419139052550152906484382982534578818427428841713887398738172257020916604978349209797623129440502413697923631060963601360143881927499426570595350961907970215782378701267483272680408195488426555409523899724738336166432347185271576441713166894617469071378662521804595783835878223460592168397694044390836549197477118461488181046324343230042633917937394983192789572733369067390215987850410151290662875097100959309474680061600682318551655983078547678858454920597975464102364322883464298482608759578526666534133374301719753556059853269624683865036603416613053946208147748709960763588637783677504077613936549808914806242696072560934960990752425387929111962630469162461149543238371663244727592142832670643499893458120539165246161639883919442071769316663421688846220617234274085785436470708681688750565663819965103108031899150652811031636451676968948729864564082694345325603188298600495009246227968562820814402271246267288940141746150093061811546715420686522374021239704751830801147313202023142487928635044303335541174325254760105807324594021443712337352773496908538586070575838230985166728191965041881556293162335319845423152505397288275060146380971108263313679411132152983290954382362507052665339560859976958981287302265948832865834407438004532946704502825100572743187453505046573356166819291976117478669231135741572591647639198491635327413046724843982204157174450007270404725229574258728011970675960449392668390038160499281352629285128876741527107488603771367389121843499168232778154353941228924213460430883476874232668630456269107357634702722758061858556803545707754674155336443686693537186731997575674995650995663911302219994940866635655866791430957852394435212154576404007765278511647425306902475867565220437399369155498269368843829132870759415720279954128986301023840826402197981776681778173729374278349692692137256046403680258820118629976764178320589308013258719411626335513033827196768666206166152207848572914464370928893406211451034855786204537606729923351179550497706499778878694223414972957109912944117355994861089108131854585055635466145898844173906788569215048135269876145301788236215655391558171243698634334505558594699341799636341230329894171598061164046666089615392820112249349239803915076416873003563839862386179665916936583047073775860134201404558629242471751308049187770948665497577087655830894472649321853336868236367840480766400797105657271656946010538107883888546449946425994644661859154434620322830143307043128739224922976066711330063254997035030132156831213055368413901710243431468779960078388396265533745943959581437861081003616186990278034965371653657798497334787691569168002970175462481670399440535896982850316397173719858511845794245103942310127952355436772652727182399929089501818694200302326034414604800137968756941615607899163353877407666173850685652013053191080951368932249390471680276763564106256038549205967863292640439631375807390596190556836061402630883467858825720645728659092635417126571988164571348816323267633158709659397510609737816380408526318205703489396506141205865745534755121151058136816562597753745247083196516449480354740232492957418585405535737763720887973774859424302550224026755337767769690265815080721960398219097104542271692949076754599637784671780812933460524320407600488834740428625665033811453711657231959020910487230750415062722292225000922874850975974870991005023243187375510497690841234927543990136129703615990378886701222972765880020486185950896717879376887133078987084315923218370140989140963346911055681356153317519054161588263570216041490579720133001665472516671994947615553729714282568523138024318431051844833927762418128907253294179143032392846344005352214394743164082735510886027450694474668141774054763851407323918703922787433982158512524971701582012814542988507507018204593370112398732700894248657214758132163348443343546971979563837290261892929248915199937159334951812639358718562063166437606965363715719013889146282901905831577500472488200083859729893262718598904810592510355529826112575029966148498124612741140639765086710208814627546879889607576846954626663105986045470386052311182028495877168285890724069316103152788123790811161463076879063471240280029617566728722153205761458633704081674580215639781071531344284770651519264536757515950374910640491773674645658715196086619630602547048639960664698864795392493603413306360180252524992901822141920452272879189511886755471541173419580639808178004378482851850174793463774734040035707032908318243822621393408478436872213335139681197409278968562679032603535816294854612979371882605334288601770464654101935465767835582782514636225355471106493977770261509459769533001669516336827398674561053384975675176306843934461523241019555041184924121877637283569625925979842460861456774130962998432821757086675727952307163915172140370005971038334954971992077530106654466576085935944745485458357562981353401110421422164782674982116558140146713503210928846787895189946856636857526909024138077417500214558103529023996117139578890489073740379370557192850043683877649320427838621410469325333726977776186448430167648097474061876693127252840120404741241264415187390002398533125371061004487424194599528959230739794702322263678108352167491542998320301115256698158438566167265080030786500003497405900315897574229465453128744999937031457177100457368987495364835600248074972642486304226221756873225998669733918605376548799426265432513311678004311114891487331227458418605602545602755317123154626018298019462970318646547882890808102326357209983241467145944015565620160180068859893583149949030396729060429282691262211344027209169512040701887832837255398428325158240686811224473139050309180680463244440000036553464221799198556344311128758617958427836390571959802403716022177043172637990922603448659418105415581851088564582943587663537728193810350486609747468158497047027299723319159784107193479426095223155648267378797808516619578281204359284919459096627211232470520333294483474398347299848733837684928545940163968212992163920197261669170449196877931529758072828834505866008003949685062468407682930838894786891370893581915097919182975999895108071439512913705256847366705062186250413830510679850607751070929645990339668089345522701451566236834042737325446240257449010354989058601213644845595406657345398470438981961873745711944791243364180551764121566078367148536243526159881637039490247255090124781150548774608471790028938173926075311364093785029374436811470989375839050324622423019509878546348356798288315623749087418139455170019667832792685040939778806414135032410392178785710921989480502066297899269236951341043053167638778468855139964037921909675653893469273557647305019860546539711702978391924226742529317888418256328163014879822100153893679591088972041470933807704493202893093003160999533285381882673978404540701264990216176129508951654162192160105445032833477066580483134926028465367162896788120576269040055633575994916338046116097444134024796309148165356598727340438685244762389513489514309184421092572098925219437549792369659887276032217365440807200676934340413211635735105013422544365667818796685035880811449219415474491228455969516175330888532916681085637239112858896230517351168369586643175896310831541965710809043380965565735338326298596693395997149010005429159533274292551318317178439836775337779878468305135979948721060093269258545271607830769953362552626088332220865978931406389391623408005852141669151062491630641199557867268468451559196060613583301907703861644907456383436000844023555185785605601589883132486653644710775433755459500271472801275646282701056374498319525090042690306799919081849944034280784561991286678738066222262433987159840555651498166730608500916331532988384176387928358489951252387778226446861949643712595476394646669580220147206046055175297389874731763206575631765880793414876564247654143617725237656737053069203948903756999029243999121300707195550646083956690922784474980847472128794166676732031642264925450379048084305014400113982512528509091129935833599541335671257313056586345755629016144567169745801566130262607988215524834227945735613262248707711997485488424193319025415311034955179062247727346156926933550555072562587492601777405144482129881222318742415037463087622354570787758561650940702070602652288748403779518433984465795280346160230068911114943368973378450929647516614470841166860374128290111736596683536114870614847534174242847413976878229083637424700571951848354682250511406931521544842714542534803778077249857537562690032512291784967541352123549221225041853139168208897630382916443555325638119511705952318911186794395049719001769118111172066789511877757998478120097561277605009850252868415447670441708465282328094702968705662189785449015927546654284987452198026812496200332166387410956027736651167040565731779970819395314922532083046499362449124266314385472308595227290655871196778073290396266174949978242121247717097250586652988727552848012455643624006512687789744020906844973262213591390510735667333684397319791175354589010843087436323432660500110011556204207435328461556376833263955563159681864680063850578218252085594216540019856995695337312464708541400517894278392630123243584728905936538035963625802202770137939367133970841637496569033861062480926543627849471608712067237285252021237452287985053895910007258612265491155719396332626099710172970024093227181253944038121335005074821608242474801971663366235121909280412269631283812069771102492614362095479090342851969397860397651673789176229499984651236907160732733718577265995577752293188271062678037400013558762843835361816832423492500923043677120342407551871845121752198778653507511716350798477743495412381459570087931888282001103009169966315079548361069926075002663420724211134670683860957385829320705040240536848247085196024644973261381102101994204923776991645811770976837971723746523638031713050914064577219546739914013226772779188469114631775680533122321185673242323797614304542276280796990194012114447449954176343381618657225163950451871969715300879688042592090839045339245071284187616104928722956288730502912217535397053464389321265457685352462437294657299211720511704446402914060650150707949949003533780486845451302163770508804220734621467633303114736765411288328019555859478119522785398289317253268477064159446304229045237597610901751460817660820503640234689410742906287147419900386447316376650843625033538656410318399262581708070174859417717141796300024285457906368293042338471152781200477150755071845524495890831994491404093795789955759329661064919567210690710796261284020054673117983405232519587168138035350564507178091889828983866571867654180730162942449954525796667565410350775802304275243707099611984854096367753750626394773298986817529771578054950344981736755860119467390431866436877163943184244371375764216035906294121841556709849424398372062194079859587184095182339368495805709747548949492537302100402237763987317518133624608949989713882868267415250709626037728642989706004441673258094539497754309974728231837064741406045707278372853013216937800938990077790224585943138280206073295636065605776657269216889700898468781259681703514630181358753989937153817443888392673301809885304967795894155206755273089506408477020071886209054318871071085784917168022702181650669160765402682803638979906397760304242656490890055074276529706686276134861707761234663626507619860853043512127161123272959811545646252202709192673010127334355600842015442267077721534148976531213393143434290415813722416965941759067866672312681025932721072959951247402766806933365642853725933550029375976228110019251781941224323550430118404248920471242437257916236984378585880482189553528251647440905204742528450156641256425189299192785506973088077322797808932824493168802680511997429552624352090467725061483260827422052171941343394438755357518203890110102593314542083012653206936271894918436221963490177477338436936047310240122217995450865744395047540083795111399522819520807848068523216712452122673269642119983338291625662912978459692774138840464916406155182436159550719687841337020046441608511032171625246751337400075541734196630761096425187022275845964675293545761804990720813850220030266480779876577744571504339597502050137663380192346990330959522759072607778638142964201641384317340983996155829245759929930889947072560328225785395925463408676014203329135288264786227489568704021429684992449943037871362952475464537948569467725965987816131491897083538894640617853295671346166667646957079751985150919374197146308082896609080301421054256962553696039766500868788005772363494618571296533687637311032309090197215915805857189494995197317733795883078070819526313181189594741872009770197317744678303099020689496106853909867004901463257508236040295133326664011022784951647685450869666789557014994396200038543153414486243156924824721170453868116734977369644637456175725167964139107728267842061543821952983058219906449907724326305756643796425256604753219267478048654903839191673406502307590422918374774323305635494793192487379196606484139961562237300607438398873786875334742217205108984522779775627380237752449086762932263910547450824318626460191058786059037404439632338050674681561615084709596511810342273956351596151696434680081120725602325222618764768868065707685357474283779684082160030870481641481232163465411697888463756384985474314330800623870233042345505963677779294143730120427337110461623286058713158108669259813087697039003708114193748331022790371230954824377825476179128752072739327922763919833556369431052593264344129945196248015592979204604154180226490198647324802651676776213090312370850632370755421780849470742089551830252728526229255696358811550017777956654847555133731260944729485713064104087923843177758772408359201094773531111007836327919225225278594680379121679338920146241230535346972246199109913068067313041060649753342822437118934580683259084309360539705304079198125185427818159360072880377051942585392855914038383150637768424038432406599445653040726642592081127455631844472505740052699349142325153962418402553854934878542693669078870353446613569153468271981989508056086463035153422524130901889823957213016078497116947388674588485933659506657144824435711024050664356103537939812444521007328090704014153900900373960392276760428089823666413098456661176339581358896896758859053856679696118215142023424579472452644722170119676231919825334670109056488631823779419884319927595126909478761035849807096397966844234178312381960447338512559989415744419228007358825940921004514770201186153757855098153880257806691510812243989708138421897065801146644864137060251203036955851219217802163074238822166328237950303164458174663928578772535329278635593485841903697552829687632218476490270741579129464953373084194568489640253098278834849792287727985675169206627949759829142084567357075306819329543263134915354923579773728968127999203779331111986181871973348382416501723496335025005275974642253857337138120472494980606921311636859551412008779118253176782328967009644879880555088376362000170387995291761922860111784235628470819756001446472619635018830840548682625626004175654344027888001941125392711454912041998427851579826139235739930348038284385346981924627588632360299796649833467829940540968163081912856347382194677003901188023726830402511792350252995254438062725144918827403761171652075595590913382613778308907264681801455437209162354822855607367009743396957014196758480980029361767223814165029772456678851993754738908845038184575857992711001258721876031624362847021387229481882653655175865191385167783181559510990699863590350829499800722020669437160749831694784035298614568719259983281108757823684692889517696153382160013738361916094851105120990933663966836224457160181610618104679591514252550502039874258791521188179598425267504794874938262341135340486540547737717184889342941821683334773126386910220924640376537619767281037336375306898974895213481428093179227935724639841569186647661927933177020920151413651303249043180804888938639585862808835976437743707463190937178574829999514228708569026970738767416069647855350483797349065000334944665937371902381605513647841440205455636338550647159745215588640271183481806080022515023538200539785050980337904089572019680490075327346989324042853605641683009233779582174416017637204280128010219803011065361142552331314190354075429073374966260841320524803301224695458732633447690688400939594428342693306448461732220965421147281474019041658492298053276260480292240687830372034514115727509350159908223884099878759303840473419236609115060898525022391644438863338295240216159025782232034750002486073172816302104704675382543897687909248287956543368871923055077122582014094375081403252523587001731129839359042150631478710157379263745927648140591777046604274406101553965003683146306766917122196064042352240632026083379514879276787249384482429199000683876403304441709768820142134107137282225558389851874351884964603572044390296602558556290235725129845016715873628695984332096973812160512167909823743500981000900091472258321543200170410346604928371472849746172067982343383797361866852851051599322280569763717936998525200190266227781933300497636147282529367892483072948929344072342583500569373581259579033386669594504560312106607766198293119617069980693155793554900874256884058135924599252826772817716067640236262419495269026177997546492882170302788661032800361832210215708984003115794725337583990615508579502908171229386957921567658540528477654014814699639558571348988094361043030218390443907604794045097924138885374466464182373739345266842141818400559354643403028152698261044954380653680694382261769083383095827038984239324565490880428087248821544218418589349267899874717582285309970770307318983854962836297765790052904090870427141081941335525785588682860806011514731781997304801838850895230033304618431096163425824275131243990760457061243043237589484026841784111935108402896701854666716820685586985868238048686158137160648777381680123542940951353133949628253279500772415509516886561138489050271666581176142409673528376072870871432376911185374234756866442251042447942439162948404742385333868914362975117326857832981875330527206552081758916661355849823669346384216696495950426454331936515662925354733513567348663535105796186848831166074152507164036612611499626333007032917058710658791297330282512168838244035724371123164661153905959349283251592513662147569319610982779012662129699048962345585491701502435821803988098981388188623989794691905224074482778649359050239038907350267818392541480642411475565021573095133218163576656131646012593132192009614946852475104284912668541167490539324306811668790794395876850512226999443582227796252497599502786090745339615181251787683485892131951711186449478837963367824287838152656805601469838518317525316792317434766426506945160625334693258076365887575897068029368654736246479210829701661682908753231310842064356640429355956943530246556469053544853020391426855196446803899121547036265588040940353720675123810278485242073916147723617517703791573507145565094108832735525768815751747950591173883181114922034831765569490247474325648859237315342308258723291680766482272702671891276073676088180053286934760418593406308077599232230865851846357666520873066725227684231133743528083416205797069529381477646150182604627606706883461680933882415017122938947494460433057182087946612811952128203738413570118278451108888569299467305991088683914582774067781620215759208777084062702358691971228463998134635329652939245288964683586766557407617506507742573503800420118755638788014564410240457700725986055693627979026566723345915304540615698115672686432548235331658245587636071457129002125815321495642494570217940451394573324927136026714697604037229253432581559281244267655215286607556996527884685047360527806614356830768582700888693531545939310947178902046413458374938079180503681865390041491706027013849717706642622451840691708621531644079952463907646438099834206136102690187227784909173854683614524053691455940701948122813069966777342806055368116610822874103526546327127561047434861053341224951088210151751578292643336627294523300254514818928986701497960022165798745044874552649962442039429802423537160045776075566419514726026957213716717723403784774558315168250290316313830455090932910742787755494372750926925145736690214877323967590028855862266265188025642575665541815115167310477766981223753938668299674599428944946859969376831914919242451898746358785816941298036034631200995558600107812945178645360203091291892044256848361511597006283818723730796738870266909693243097506417590224389888570110454138682148168108738495951011830779861682423083765506809607563929217282313375302228495616242892914902310528776141298530836115750854685600290363517063024655354189554514205904288467426026067536351326910736580323894919914500480097139842515417577494012286240916282476267046231866564260760078295899506540774161503100968482802264721707778686801962732435423576270803549355388645424372007892521306419644519255303836006664241193046464617229781287357457977020430070236845501086280207270761475092600663232527395120318439987421262350246542535602163019697199934464751409581147829122408046648746665626213830881669425261883353024711155801496734845529086001804667258134166787834854030063630003654487651454051645773062300489365388144329386126463144732521951027025363816933499111890179502847337947993789444614948990629042908409391485067217591158300253846497439079391923247110932471844628200231081021695592421664872405516703411891227105733003195865439164891201619662035751360641184150817418166270546445803509739709815557783052157253331563225193866596101088991501400788079262075235790266130765997114174220044504248298409782016146634482539771679838252659112352469101354651238974334963710203127344868001429765994404349396743688493070445600880766431022616011291556612253426787450003042862619766091832511681096946474405340327240779859229334152454957976305816939326716095744322052379661836844295582194556117684616687229449716944253331388366064738415189030189491932960099126920368296239057867106602768302672390443399723609019029949393844705311421207055226756029686846535063455970125210635538068089349899461312311224703825850301387481856037916384462415734029447311552277268487023365877061160735037514664520048521457545276316681734551288606585489933190126766524114888212955651697373297639982416340145845492829718225998986604608366058685257134325257463333050988710506050313625211347509374552481659949494651875785778070530235853952745915623915281745874321043624419380433023391689164265082543494370649090554000532152826882078293543807663758199448322195077898191295166938062789090212929116343820197620139598534304211335657323872275218418357718301513999759624344361156596233844314938425836598435631996863205000779877731434496457559730540726853442422684742761871654357823285249210480531874875374298003762552681273381689189094826993161228616131372772833544157858487604093672326833165274467787276666085114630887750054736735160516218674714163892237743630449314094939323856382788373848438142057376141556022328783069932255959404681511613497282554658823082090990258032781956170611186067609640275141119999968705692344200416858785021459799164807167523692363851034812366017432986180096188256420078939572220251587742286544245899900742626271734616187298776474449816079649725831396945799668762917470704117579492986347481317391682953594798336912994022969164965665678447795306920079360381645539287740899002194891788776971347675102949620716572622282123600137090355978572268569864266420895395238024902647683214742965107339959399444423807012908675848143009487423685711723009780579507848851216991878743642159867092268837441824334870964118126691569986366995324248350400973782524980567905418026040564996123051728352906406379800007868333583765508896253125956132920696062098939121063152103504436603312811521305380503972274596926436975922344936300548225448619834465060648956421918891994063764248890987393715357597976386236831645710043733735893254352263334304392857451893928260402734301017491940946155492107185947136542018768116254482701791521480231762071829422683111161879023951448623060266353918256681599978867971529096228370772483445501037000465488335547230955891213098553793906947964728639945095389530597515109190402773607583650787289245635476159936593247488243003591421860926157161916441554426771534043476643471650394573251670311974993028875015930270985986861581899514791104353713236214020073304048321217234320647229483326042240248368585306726662581593116180971372239916379700890212981309743978022786943984263134938488562709733839009010770281844779974209289234766109826952891096373490714662697705772260972979023323154084486050237674025213488398727401869138817412648239520223672913678162332169546776004616960991970739655771012353677234173146425538536852766183104614822182191122890836702766282687224651745964280305501927459269250357066520333940357003648259487967200796108410930027399930874840797828070458973311607182856141700738929724254223647000268665990998338068732437369084765099365134516857794155546386156052867492042471659737968483782400963769865535736199866805910269000665535561696537329342155269882749598453481790154376233312939129974486843988253476578983522615210991097882056088220860552621073255836182572296809845597729365160757704659508915500515221311433689762383519697545017581965163018124030060921826576346724514187411649627443657173902001293231871913026960852159150828380140577167628101289782873882637424279007722484812456589284453638228668749838017459245283843749491383734651200155414216674746912790327814431248497586701228422334434806146424754648004317485023702078698567915466419883480169100205396866697285190021087117632550172723566578662202445336297260915061305220114733532019630030377733631589845334057094474438946531364434765636706230938733764172318302787267317634233791547361393025068158321495232864113292038709301302845565738912356161082234937256654645942572244934054405683497370505524262400415661068183146274872429793316849127130778373139274221691000833306112153656348739376771327873499317170074552510478525157948650391029321387942795850334275715847239957382237935512171507648149948843178715393443491052619834245194649014805059806067259617866140562815489192052477998875527209934816192728121589462535062683678225451245785395897780023243114975727824344630754387359002483053927629241927037754269541140801719617951584939967819790967461600143526413029230664322718903219077919943779859588753549257213516615450012119842957715753315484202980643961833069309362216999920720984923335135331317559217053873857044522020654832975360432618828796129167949647501428895766825775527882195663281723559664309679523380054303309915077910926524143800662933371080802174663737339213457816430532986758385618772453497988190493085395105505413466035498314465318519601997444878844471656603340031116201573827468356820681941084714049590537363241833861633290187152797654903159615031786244771954669027194741674957852502462996687641359247223883377783491687207428254664118658268161811148307362204914017022436171161875103389968514818320917758431828304698817795418750716887036027809313361288684596584489278565976320797093664139621311978032436694567611658251308718439471283983375883318971943199629828769004131389557512440016162687976192413951860475092601548636550688573209403100196985805285966626103554161975141218516249686362432793296456958079512913111530072507522311086290907650802140382156613472720930380266969339084200394134369791163125073380668414137369089793152114755697955177287953155309173801419392553216860235050043778610039046341321409414838556911176309461271457043040528258310735477688132600209950672065232656402427415277618261230444753528807644998536811107067974390862321724768128479261393639730787266831879307791839070294201414902076734680685124972598862766715693466641345577675884719423828017060017171095256046077073272741000530181267929171528789887760798804688418413376952629714026594215346989891987746153586362858848816624267416117777925379876083608881996107248380389131450019525920431052106085186408838914229516378530592969454792218170757259317394271280240075669286831450343197466249735870652451147837958398178736779217706625758841723684058741034911290374358383846418956635117317987849334665718306813220227507798803148607322937700837396374578647116622701118395341990967474208317727391623586667680007896023344940766310480476272102832684527240173302083132304563068695937790953431498704486758471578460533553934673175079645411507385823048947525831471177998607533255684861746610304507210580094847602372076084444269035959307401435126943307829394311105182470634498321283981486270501074566667465680030381609177363087353984557060012906415500416110075964190389232705657195695709105654108959520028643863629817957942759126677018097208868922148630767230014003561820820964222869921872563046686487608600336148033465171049235736838716906148453437323998156453229219995529726351865795675372066044704201506654493200695135729604074366189834347593960735583287298768430631920752693424365380720863919138468866559111505739882012003248608210003005287222487909688118600554477945584644056959973055051946600759199928017552215881327437429993306515785518388443318936910463389008548494544142189941193111778998527271189257847573730359502732525135260540505527012759453877385491018808013324706201328016401520927017625094068093085121573787287184786687930039811843162882089806432021040901313887861173977797336513884410597258683248561909232903963752556985956850356319601930868172191516414929705204963860971092761676506653987033439499246404417416939500836638757683630851755458121022543851936783606368381407169574780246012407110833560009217709920859309968142108110875714235619843125806663622724034590445256624893096718611804524884352140233891378999812410108724452321392948769663660161417551142935795404861141874056676300582991905667963123074254361790719054243835160231379979069294096249873828365414878605342487772186114333328947825329541669187627485002308631339261525919740690564486860396012023036047289228269468693659784578515932473016507488798974722157419598146709796908534889065653438935847633996451922362897275684170929043669084505923179190091685342475986546748336260725761406888781859715009797548113889459104423987116378687191721258967406574813889426378188128629607430805894271840467024593349147258553403096792392583717474030721186910349750420811211196548532812606169941341894493958782596248679533854764144982485993519499892311068669745375970924300081322553484857439450692240368762638664669110880650946767736848817730631889098763809139831496827244437172816435615074056071654257048576063374177956453644616517164431318839153417331811146248015188316439459860613585643539533479514733677174187028479492425577277168021849705368744213851927363314064391352597425355331242829373247928277825788884445196607683132650085622339017986528950629706953920666871667213317414196869660029404047590098579693221185960577595438206589771511168363205185000154954113637039145853064334615186053955272724930052753348207761674268616509087818249226979369321989502462077246974623747712471101203603354795439601836397878806790505859971187886086761142117689067022940087639920144153182263930758062283583990393741731608323618804781521219472456372003354033821240074079140880682823014849744119472382382199781760565332976314202951542409439395925247993613747194947788007140302752758308120483443606576068949478302116347724834779472450360829086276992693630831286260989693406845948230240993141018135324682759511492768259947086314267870241101274228390019440748638495119853865099946991330090596138107278414376939904178895826098327307551385703213583455659717334901654928108344921148821728986296645344935860679551791713788606407558331294685665521503968966776017944411144917083568385197261915175518207538055493695675599974135071329382892936229570380875097867992826702967856487319093812112188634672766371945081497132179096219696607816330133263451679682403662885478025115020384598256693846104749145685121305896298797012959237309933984457371535731341417827590969684691252205784677129293020595357396526251775405629198620243043813921337097437282230432565337841483193689560036431264807095109098504382199120915546106578570861412987301285107265895829340245978686084520366103648614406419030280119435829774724648625572627597132127565648880782744143377545605064042172072326560406763353473598451579033640687570481184706417346579301325198099187731914624947409145354551229736798331195201615979046516346923171515386556909664288720260851012511890564659588620525813663021082811851995227220814282112578906909946580273873837512170382032104677272979136050332403776620340378531723075526645502581762926271824008841696447284823838099082179628514696751301675415637049677380259074548288306959883653837431021320944497070142491358507249222579051285902924484272962186295168269748224666482686233973155025120824170086363149081139536388969235529001864079710442847745389818618045292423793176259932205756453356738940091794439194769832705698203944508771046947149505474325700946997744981125438609523095979225217556261552267280591949661076006335546656123590409229850561893443292497838630076007675384864731704996727427708414528516005377580749656576939555180446717300000903722399599126577812620903732087214234106947053461940691634932198528280303882080138218328612059808732360471149585394469914847836734589612723983084888912881591922493611855332254084616499906902618638828741291740204654639284137141677785505181343685556403220899108642228436445413039852438359339822109324130543621343949197308315272060060519329282162139837745393801738247381683103053451647406267328720735809967892905434834359597450123036126456528551868666505444562955626973338992973411210056883834276021561401377746933706733075638174504232752847299058747736800508300034773804373305352044423179300847002039837417085336492812127206867021964738878617898655845810747914963085452058698132678663490633487756445872607009039405990848733610264379951638233177376448939596028442868576073490448730880184040666952105763481335562844339507337993488522533721144433791068117708500911599364440793002971594741496904289055969197227693804452009969584310017641771358896922058621961288247101940887763889085027495033031578788144874289496012166901706271892498698565458390428090834743882792256449060868078146695098231799882676325109797114891173666842878013451712663638116847756379209471704694889329488753766469704275624158219726581003142949335741641098508344303963057671997547562271333319611045282371358419064896619889923850925057925127311419758668361991975974935167943567451295598525092446097318996653552237880964495388292569654002318145030274047702064997993471926075552527642456976597517132548235154907107139497729270375898406506722001381020668193613585757760783528264695992778984786080005535912351662005998339108144649492782969188495270851797078917727542747371504443289909650039111719683475778557219714250921230821479926518004547874398732810712428058781459640585492152491288207302319866859477116807906480893636343512832291074905234168568123888035919544997893214301058180784539817464831171942677194234149147900115116661196744070823613294936506902250468699300976685455212185560785585450359859766534450094984817767809555904194516684455470946754480131600139224094608279860533655021917418191379668356158410772615766660685973104471836003608966598323046416004360978506158274879810989425532463431012294667843563769250577108826738042410249581629553973747703491303145561058012367690825324475724486210941660001202000342811391363191030324220610046836111617123193582419949968643088693197982906497274453374076983148500934441021040732697880886662963996438748782262452792669212157994583725096887484417366602549277803550191185642627414319165008140312640346450873234749729933139716971700972057488328361976661958239010879821297839146860669261501674297170892680004295375763199310258783015134074664235137717259582650995784650693848205782684145688246475277708528988961661293169256327854143226983306732669106089839084535758624927736198771016182352117811199687518661283703788135070167929712976993910930453965378042379245766215239847588769123967827378096313386554153402470414683252792135751273943511424919240250448046218720408122668788381622434598474734257729663645428695442421485315921011018381774873888397376421942771475596902677905633648480441557803374015381168433615052546939101949659337419037155028330911869356582750219762389265824486920639779142790132218004283434333509139449311212494606797285247576169445708166216117181455792961730890585190078888489764244407106436592455316036023291281646050208821742872589817348388401600880941767176739823066724809375675045947927439407266310143321994459942713808924897792199165543085783088889280169809711733690699894678639093984949121547017791819929627637088163428103242594982099097319406252191265743738563436089219900420334136908204667314579307551028793971100045523596183477598133445258291452449863058445351952827641004281613287358805098256569739638710493122770275685320596795768595752375122216004788760363015342916198651857736850768335142856320192752620323670170687774651036949831934450462744251070896125320923748542838419225384958926548127844563335441609196206122938863982751526747881792874512513675370458676489098755258303633456475527650777558846492816265049541707430955132887769716518824971092394673987365888574730671505476860417193607676564919532541193972467209265480985410164772038908520197060315961666901177089585584406608675304700088379655564325026484209641285424415355123227158043593658244660906611609824448000997925440970230644521167190951910748472818172555312599566087681905914864968663610999278422972520436888483266629889589937411482946719345046252761818006499858500949011600392941740933556805346924456899278129915992875654637666049752064750990573496778983944854263393615785938243024841127869705487152196332994228010333291269154400378498496486154155149511106847790860280454455517414342701701398260670269134479978622499612794376102959385357279063879895266683529146864834080874499734787706774572436458834969679735648445736725892868339970817282993871439809297701378876704700012629743563174413646686405704341880393774653858076941113305197104160817976739205220331447950664892716344470561694801360545191648639321929713676034062180675555152288133691390223684866542284645840382480552585838825312968335294717459983447236884571124827579709971014892078913500045152325398238637482152754933419791875022613302785039626633414653668733496457848794468502833384623487595145491613922391371433837876884605063340524231699819044936384601135030283660955042372630069870422622503128402967877926083095434132255624195733674157962773003503385620017027696193103338985230364435611226949442636234893426541762868448016919347762250836787804139846498468641347861599399931844802388768539334674811138275799670124319327914669140183515919017839581399092284637611161050476093339123744129321125593037654631597032341849330552356675222354064973452136093908594904395165468618590940784924933238429048399227808517169266887797440938182582708146029245950414808604096283955711626262829523346375175334484310324325627183898449263697098444979144128720761317296753695250042869313154899704712323287380525888240565460461754286217118936512228975737268253500225452830377839217025675134586389976527822333782808672276487461876940031997648147841189420303936738506127563801864956799570000303952729519505513803543445470581034516962571878006738807770559135598922074645871519459115874167249460479208438514235329464257180562309481440805696432514190051074909990126636531786707861640746941731274512612306700812298406369531605452135676720146705347019776714310918163023303565513328053500427453641640268981189619005369155803322657933811448600213105090506054320004948417319540360947478793516633412266424079569005809851302896305243365936861543713926811191036765228988250869872162890225872849868690039586627638738454623567209422645843268443539282855888559890853428006753930797548185960094680725734940339031737029850567746014878011017749316684131621453572704910622800736773001038803963450379733077399165341634350675403722027274115464389528100593230251507784842224904044946503340091955253648439530136592747466581669976944620107677626672123851059545069024304617656076108921826770017883920313860855909161458835089122669982221842477646081588726950248187565162607988761498264956831320794842078576885730872778228357066230573817697870217543786588999250306689994175705345720070612542112305457639896541320888932088650113557247137727298901125953882175121997780947258569200184801397515252819575538333041701534743648259385621292811303942830608468422049189736246366704602748628487645741547205056745312788407635501821755655585493192542766421858724525856784902396515393333098033914447767232245407401308441012177332407132259582674126865791194201137123751134001039398677260923222121700529344887626791681622162027538168540365502609031408777943927796327381528880426859533544916368615323534702214066768102796108828460226470064516111428755612287935315589388203471444472462991753261693679828733713399150366630457076329330923782143115044076004757781378338336445641202396973518134554577357696704390006032775344490776598998329811980167271821714948245440123156642790518487735010920033008180217454345462812825164454119099872630661155109687007142630227762390925394924666334213481405650960962023335625823468177648458988689539076829308584602445757022574380375615999100925772048320924350439532835536191442108281817215091907038490083605296498640740410331330562503139748453162622234280156311654785673930912673234583932109473191243684943461432764180862091172289286408242745478789619966565601806238980973739936981170437972530793643816240291018577596172520021508099483757977410766161569305656266950797740534974907098700385752914266137722208510536244634561831135818302940118671107290280538379447144932905005818252417326037478966073808819707385594216123113551820451382897102855170959692780750819201065292809399036796293419200643396961127120315074346020437221190266027688390920938457650141226895061566008733355796214136437645893152010271307185451540834796292617449591615072480246986855219280138341427085032911053166440003549138983014191740583342518039335572333926866823223973543741893087308544021989713941521935383670553939278712596847043396879207713978055492562986419570126737228151625585974803238352109434040897407702803640029319502947695670724143013089923863754399090636065144601103438871106454565725321913592829330406038667819828448284027986686490212091935016536965400771772651077233166238206477167033783565281818333926829993117160636402739970707750994706975009125664796504653685470129347998166968897903819250724538484098137021349376865009698282894589897363233988942818894154005718793592721766032746813724134720494277028606053889469776686956836265392255352128386171729916221174886263678389133182539386838101645787746538542402533581423444391559256279545062908360659781119836077835888612895076385777969692900622180922338224386564300283297232630612221901660437097477740964239627203672985926437631839347306372861326494540868627122347855755832693475328668922499702437918990947548185816965875739949603516157642679563454345092183136896536047432115769507874355106558145390303087293146791819514992192688973109535203589802663710575917697515206844330584965238192634082581128651983502884185229304496985572062370746156967077782734024779069473754726987673064608080874657596513842186048665937000914602709675023580801047696049597208437592194296058581568335638811442842244460079860055115673250744942897577311651829784482197374185228137812425587743246444810328357733580270807040828994370877313870549363951496680896733278944846596600027696683185705307310321523118538397178719384462492135330625730294246843358083140637192448648694002069751439845941320364874429080165016527340403039518866959811145789681441566754080966795393890433524254126677363875550236635530881312136153955135381833258849479725516731337512830006489946943295568017298433622339039965175041864784791070445151202939451597304161004318599234945682977287750018862500409633816114509730782322541881852404754386080857842932925574753188544663600314824180264906235131723490155746734451225336753066763718300473974677953825106157263826579736220134633544176807050057587081288367517922919080822546447418257814383691305145570399976585416861493227017751435970213366035919355689544310899141105020908322208416430827733314242209258648479299230281221463648552270564471878484839133374134681529756410887616983573605742080268331614108297641447386526599828160606309144509922680114756250853816959435453056134663732121633884769438920897974315804194646823115768548803919126692513775808279867850905748298665632223327817095197849144602177906357982192695774744611079055421891197312292774780016910551582105044641438825924030940947008322950896809670673115895330320768956215604860601511218395677686856797027264179748301579685891433522960211576672907363518261693252766045370979314395585363557775615846049458729261312341652075940479196404963322062512158892369355642007858627886684682276998155382575085843981171299509099710328754537262469291755879422206888576397675914303093091025572682706895865131774659837191060197951787142424863721957392139448177626896475137294177699454202755991629266184572211400274206022487295069356312549510181555224015969274091611712304836338857224576298414299089953094229631523012466147379905798657726056917464731393568805516782508338736703085117448773514188077814729222950524254726365019002911894597744638610572928113312159548723988878471819317937531592756631511244410115450790868293611564500580294907562964269076558592756801806538580778320832633111892142832490032513922245705244383768969642992081116946949898149479896253608491013142584871473378066701611435201143925829599855347800917124472890540931863344059895908565244147192779892052670156338639978635629185446825194698117974877177320482660904475257188946242861139118202239551468469829553965238496727084947378155913748001816784233126483134837325046969532014696807835383431734826284272046742575823419167898961519177158226730609517728576635769008093917831841785924336986388512743159532560372380242179590248496940427505233533189618387271903050915313764459870188914099262406783971996293491928341394252172114393836967478194368464152838605622336230257107982537258279304189900168114726510271005839139197877341739653856645440917441595959348763497344561831555375032688638281778006543785014252105921380219299838592772832049903701989572558248463233130545739458613130779864022363820054489090808064930425654504587964115830411314923388170064133753524801754542834457902301553512024429054575999821727027462432079480637156941859910567318007072588950435882347275082349476988133451637331709845785741191823795510257223878868249353996573558837771396461114658255731300865647723101295974052515097732428303206062199839595146862527910290713219426065959525945826833364119502385632896463228179460391508942267552337595128812045980358934840341694532371680298683574470042784974859020865208983302302345083806893755784034902162628945151461082316491226597724741745844780738984087130757498591990954890630841830875299135919388109309899719555540387791382401615882595531854925151191553981527339789104689798731439792987402756143719569177579097637667866824078448675240397937458140428161650935747355208580857657235015611250958201726200062361472669073533020466122922900109953056556821160303022473302763327795886240710236106007729110444708623022720275340158246910343150779382239814828625091691892488453095404431698044718504836083197208479451904525081732492673917569673357444588957413215536368770657547022471683375329604241820224958893987371588004848409907730667297251046844289627782485605442243305115035495838140761021251158014961835877324390541493491322980499845874545117917473935009637745956705464600457214683138031315245244289926441303687552124647509443156245927625790895973036696118402630727404962298621586150590381602606895652252782873777955440303753779107015451039114358598799428809644256094415239608473013550501694360705791631890840914091018471908252485178995091078424516243472354599908824201898458225476823650730989386240588494992960121489249100850518406644484693218699486089043778806129093370361048779565620593399381444213342575745983493262646729855666998943877561259174041539091658146149471531109950171651633184022794707026730223508391333713474700169913416379254119511710652607264754024634969801468823646361726997988509554754063982134743127920813594426890733282989846580480450706800245994573290412136980771154702465280919296642777052884373060287417224549924582042088715314828523499708713326131030254021123038238423440628499595436134356056605817332472934227601157255177753810165247284863272422783708922057311355701989526467651288774871395341274720334361032662060016998530359045252973363323963464740244475014763329194990438294601515160997232378296413413756325218182460798593824861784906860296829137532373987095957835117653971859226645131820906081937037753742984128824242624989116779206894865515581416281825163698872091546837251284620640997654635735127143282851430086874427933767449620495229145563397887787708013725617609763514380169868973091464563020861235854057349047732844656890560003909957452287804319832870704717592036715474244419606762926754946369293199867405467227069151411285468469004459840548421091564145028789220807917562685994275135811203062149500966615774152620492524859828422813029480765506397078909817433586942863102433595408687130028736233920521589465515492771745583680754379906027538810636396200200592475466108647019144238188883314612280286834247144000052492592983581265190648126563781521835000548968910236472874376998004422074348189440701474441805981777320133384001301883397525006341996796490962712690422931132876467236871766715166906212200815939177559383764051196030227377217167244180109076167087669062905956116578562521865190514978418345297129560838390385750579718012101134456116132548166726327701114679525950399777937364790328928469329159554407429039673875045596751399804583308034164917488585866585431140400427436926998507516587846006030760569364467154515627852076321156904429989395653908429066303323484663038183523122659687732137657539463059420646788768272874611481812920943940004672573013255171309583532053343427127599990475297748814865838985108087555307948486461573592995301357325594297397474584253295212389180324274427850160226852304699701908895501545436147271476245716134145563593275734822867202186207040140251101168653130214866435966384584906781841785103107182674125237212368952087894263233493788107209890259978897393149976092362130182177949314468026460332793440561833345381548449101715076447981980669532417951539758483489757386496339400584394127218611600060078198155651862983446321789276365350216153275625371207955112698136479646362449296448818852677356150112518877935540705821900648291633252976587175016033059488180139268817620430655721933226913381102810784403084815037364903180672394185733093335618894625499174355301896247994830773960046513264935174950956052519957661460061762444442142178623343970917059700412512678872816283599470095600574053684727213105079154611599980939357717029693593059832457060303587896550211791326191931295484230410416574018298075052950719524325896449960093482487928963854440134526697826647049454837104180524589882301156655012413020329399362864312472768984491388725457147168596003347320414638643775822753682921553122258561167295238002492855765727131279323482556094159205968387131863215340666375634249440298768461317565880545925697405184746051017717302130401600410450591574252865405208158019377838522597437448793574627502739347147142641691397490626246506853988031901170471151565923889980286605772233233431685685564807179145118295827422996090327227664078691589350741388248893207486585042482584454183468771484942555518071378212084676677200644513195404719492729787667920950265548773972419621152775230230998098934181614223896962554981813048768748930385787318093308399994865028059667483190720304361811659004927714021618518731196414540667076666102018758873454201553519494601596842736511764827226315632563719914546703002778295607056840846395396885913944955662508415499554025439854180317292722906533484732456568011205026366773823655975732555879573215848771280439547399870715999191909262796933538671371551693507372595473441671712578781083334540050153735449325541313988208217899955180944221929620844946689538805324311060534529161323605384457249850720686440055284659884436842722058797387924334939870942079941777229755697970402552201189705948135702732506454912512264507910952853294917300770018444844824446580660627668027803329921292973551611244204072019398697889913274052803707183045336567484782896554292778893431621813910654858926968313857161815647798919694148621332298160753665583325083781870402606243346735749422775285948916311998211683846253866094814774929379291684032742885942593871927683792497080370243961425766044682505735093171534494843503376429011613230699503148872141108239113926413458261401502145812718042874465319651174157347706964410741205670276072491564647522546055873771511717673963284155751830386944941603452381136381117533484702993213939508682835964472506250566167310824005600632036979884918291797370748409573769070686984426195933012127948920455861830812152276956275961005873490272864045087672267449123141597950845771096222836616917773224880203468605572707717308669859893647435267980790403663630410052727866170512674626307227062897738197337107731999643167378721447748464741923673112832260538983351005543259983634312219587987697923652938409632302909232082506164142782102011552106741333376080590560640768663691016503286304165108593486636140887585518466597122891199900082638318473339868978554497212680408632498647578163437890155872964992784750583576931656775304592790562678312396899322214919746623632245021009030802609016495626278290431719218278008750193069632008985957738396226042215499834260843177709999229041174206866622355074674480448629806251738944856160442180937172821446845197678252989406626028904677235880039673871166046355376462694006699518004349626403043176013789977328231380898876162770483892177152069144507853558232804576235660342256521521496807593053341355773014943146634305123274074588205776377972018104229317261642241637381587596474138534492559504679981076528355717096362529603289392904932369019616288093735887572694584631359198493362021947362550507067681426559108874315719387873570904657243203225767869131041687608128343876709626083733463187415942032860453081383249114513009443421413910946080936792263913458475256473948453307175938559743741960153251186284108730910566317115551805883224359964752386592954373072536600467016709582220781191359752716228234059681448131541106323330427708124573434293912689059283439131070491083579334429202953469018254431382822180696677429464471907916986420049520889269801213062671225962277086781394553947197184040067728709595730714500362876837163717105877714705236336733410458612083500303224974125522783685274130185627893401938386343972677626906043819453633490087009619836323384731939473098334679811596717056434835783644183232841091223688868417553589411387276339040831689466037840968166503027923653875301193932734164327041640085036654297931753407780031278690170918694558179749310601713940238290851869574092633977372255807598156790021177511055649017798965351335640168478317915641836917465665278553109190142904702508718600042632193935063309852811548166600757351372721417981032149030097215418001507515549556162008589210977061943908109107915385371089533851784668312949160107688596561892897116506753489912141081446417841262217861629259346682405996714439978717330545223798833490023474593997915829402054355952614552001919344055025639009710201431475256287575052009769876025443999988213327727965059989921778522229429587042124999156575592088824254271393800428485107659832631207462622995345946703700872189842998269686529478893672604308396862627976147750524362708008977821774349802274240076076539335220900939095399578428300619669817538873421553941555648793403420313060661813650738863654515161209967931472365730965123265786003068762962934127836006068285124343153146471654012765205961655380718709487539863105260457727915644567660962346248219936710480265256138121479144525673645701902703294024065660914918059965134683008733622783071780040517384472420327832467336911946564415446821894103795852582296203480280577211964159578759715381928581109635898176036495723833790572508334609532381731661419776326479702573099395849790394763024990495426907540592919407627519049531233227328725912194232126259623974903220786977156171302680055910360635700887297825796617386573560816238032664823635075587136667831724963923747318370190004297551295124611146752644534768465136869840475749337209443304825504805488286199789784831423629172565123158154722833026978696391586170978046411228221252892994157814556463840972958168993319690241692544495309773733670680464322881297414952892424144917491232909425533549679574938911047564748523660210868400951671618612128001232281414995471615700675263594804243634575580671883505275966851732599244522188132028425750701570100827470739682681328757421468589611422998246077767976559939564811377851702154871533994809703158534443486623519966078665618578899955737190807697156306162493956433903402036893775039778801355082792759034972789021960345610522405786860456424084152088502303907351783903202611484860740108147965638539757029660893264516600607880624528602795750538318989156645270179414675363416587739424019809660251647418609612609185599761914854254760146410070156776633280050836795602951577410775879633300403478659832634051420354030768288485813084773496877274181359494686528078968615725307273302639390365167029579149011951466644881796035566900812569067509878951183153683894979637873591802774262321630174924898246506008234237962721238338090879011842615250508872330463079551758044957868304770861380618658148785381185644701087341408647273721565092259715568780776744137650634247932688008535553090702134115331902066633325934975392003102788685075991558601755815490855825731722643858955876643290498375966201463058343312218638615663363403878679071945651936095233386684756204229770341465694856504322231423192936691056691673101044609801037132985860783814260750661345583093167569135479319693122912143322475456070181748189371987666174875356251784347394803981406666733961155460988874977860108994456465414578033820875731348372082934528781142341200899667560322219926712864453632828307497596022995437734701439913517754662751344832803938056746002939133992833404363194050853176378858925869581038921497505360772608258421046403013380330128073185076856440890794703175896175967626369406036609730398499228824945774965810279190393634673292610738601325132788331968177916380514134221853869223998296052434973442009799279796093788996172515934872995751274081792748099398460905272936934798338485256387475282468338713979955996152654885808849902397071935465746222941884493626590749508866944990345514185844403579092877307746624940703514554177097158972680792391269060266578344008464631031769622697085221298239212780747213413816999863680285289739158962691553882743701144697130870649573258074302940741919398377961765500254356381560755462019969200160684041337588884241469656840936181392864088728911741379394841565917336777592902319681429903271120539604518018440072324929302002897673224726133614602149594344925551138033490132269485518185424152078550801515685167089929802743518023988531045507255188868828909795321425905239776511992473142808916681179852798546869116986827881681547465466487914044603822684633976565254923454126919044209687212530195160857082871973317969508987627265153294672689003913394024897994517146316905293245239244690785401643085720872049905489797259344802981866807234325049973386719804697350738836013186345423769665404881467991905650119045018067718166946464048526235286144103871483113410049132489821590721653807706437579800374939631915108186855292840017252749220359901453138411267313637044651046924071504919440747616321277898673881198578457565161616230531123447484841394610724521281767676451126937854075063819916734995426985776608029009994405951591294857315763428152880418569013430794910202373584724388591044382208415162467900113155339169381488867705391723097913916238870442273098705200311318764302026021348847247887870834855751078490234461958084573092645160672025766390672538571703727018077083563307024106794278005616525874722349540307201801393437152307507105335671326079661905913290224135197860416921891660789718249912373255413591048926813660702612690269224089885703381301755192110238443278582720960581143523948074838409686435300309351450798763792845224904521534830196694396003821747354431219516643468226290397395887591003357150162132085924507026323138637210653882563694663651837105858618790314193020374710719736138266801545828618087356063108406684610938809988069136833135079106364756039732374948028468779936358130346960558337044299943710373464047967396351067621990437229727674510386428052195253951859957630665874696805979974359899209858329877043017309121641522403071519263396477389554343856116649180421105748344875862499238504022594506517380205175399607108869179948644822194759692872809533775148688062931650989371638320863782628960694025927031072420966033594625234143285569289234517158030013200577750262176461422992692011398983160525758613660220090054070051044902922915310993696297807152704053374063168443394637445970955135529434629538133253202977268568987242134346451304861132228457688725552032312637327673682372014434077106465608339029718412350448293929203225347796599372980786636002095110611311187765564435096129338724454625889164724140286647073504066210718690715232375164500087939701844511727077650444623133647940211331949127817658715321823371382423822426320123659846443723751687338678322051333013896491268764757060357336887634600906381566046343936853934872442540165727758866767928956021089183612301873751580461670821321041403003274038312746275874689728802675741553702398158878106447937391832434184325775818987103482364231927910767686973141817695065765950797010339364969257472715915550816036161431052836361797143180940039480539669706389495396323488062226198731344654175862283957680487226818357989314828311525209750173704126837857545142845446620381016318722338159832882310059790539683429590856801622304528513422824822078496101397811183734367802903498518113491296452082238800872812952028298715026543229640720937618593602698850585142553560207613040460077640381248234864485262931802142772340601046043840556108522381502267065779092681650408313004765632371256776287849226549800666893182553377335240164891444515760785196652503161167869855186053302644403500186286558589088043269486281242531416761997214293602534286463118230574009087771265833032285603525988898770714326034412887648437764478123533001300219411250708531403560019932637998929978392641997843591358343127252377220439376967095305714078668213858286425668836763837168358461048137058727398949624751227680473709423084049365962734479880783239358781004494796866751257694303111780158787312494783102576885469202084192167312009347744123520544306512341704037879599488590132204019721525736790518949134812324466862933552336347147227022502721990735384319067564720690100785873969869245009494615972439983375306225055145518686611218774737432009514255319396860077784095695100187203563408441459107292471757690119909023096608057205604966137549009017704817218373238162192760843709118986839103806274114743703000743696013246549104366763470030715462344256650135522523836067906519056843716123748719172760695897525264511665676110442230512315362494399945781836708533750439623182942225826446325615437123057915229281451919802575749424537230047325634570484702078107935936517979476731654188854318222456705387693119347962447777723433416551199621604165300317631287049832102859094454870787315042075945153533258123812239545491988795642179548625463954301211268664467452109728598142500386485358902488167203910312258226840894154336879392340325740571069805670965570643945774388509003695817493191317248975232134534791525754610619477374595162868399558092319592105144191252508350967758722025511962534811683035236884903956629065899600525109665361282725175380453703109765206720092147773322121735037543807004671811895330221339720722568959132408524858121331615073584924156126061534684337128247612723838929342324325326996347828155032913681369046666024679125612545250651348571585977370928305058731273401356321461296720662769795099553573721073072983932680127056548430196239797304414479282483539574747508063649424000624865758917528494017621952363653443939458626206399440688421736314782578848934013434645743295024775887868971163087418267086628921008848156801010689984863127368663645835491924412622429499682349446325395214005449688455273111979373822153787193151245468416125150273050498935731361799736634163207796977499422594004172650069922547988762705882180011969841616604881061483116849349185794555266824501680818778785222432857202621842596379507504824673967803097957569480677814841320552118213662363745868886080347125443411527266956324334369906641555930800554038242952456784359703728198140706336406910690789327760367510499595308447243919335663896579210197696957630709608510053629801111168449179831032711669258892264700426398512811340206283127381296744890911281407012466565813810472790512832466270727375840557264413722322323882038630510257416861639771164123433789215175383250622746568769008372093211049188639074897289225632989415441066036639667811560204418090074049325789456850064064860657863388117026452997586716061072637605329177135051811655042476419066757304946664835288527111290982827645831501661438221135952855746009903665080904956718179485240912329461505383756182235535121997568220720671126943298398414122091365015584269566533680367052594126351527029548285566635241695280289785734778845006645427297511821807262909044899032097672859043291374620498257049973204298382124534666131779150678079043917239456459551092434523552040737894821664003054993122887176660935247316342712619750115293006832809759778039420202984712376904315243735150464864638252316224226802550462139784416270979910682931986100915063301121749418229857348928535136297104787991171940533811576012956969065386090686612226110943369309918849060561612498887463990129868850790948355451022494961719915419390008609235445132839564955348041240665670908749944917467190041823196755654462591613959037804855148490082293511896681742366913450283760060973752243874734016733311854642146673288038248316098660005942665964327642781238630358820441068791776336966670083350795218744670753389877598966985055386557161213663849529733567794114568422012293113602049131107898971019222604881624050228522759303554018983620610149807284503975400993563403911018202348872149625108553332526293839695928176828107915338385831714281916834249592788349594778172255989680960215452188818672159658846958542900038891244566444259108067774107311781326695012112042200534044853052986753577040600219398071862441000585992268956487347091651016360464982023876484995083409180251650535660731781858984899953706625693746207128976366304238584196640979050966263214630638180133925573263427391795876300596707772849174210346729740184520401800148571611778131371380714746698453911822063444590991896556560285638138469896404461549526187371088878496908741517136310720654935423077455475488820780960092645069898299578589873469059052176880609594346291530863187661157986999797294510795641280451217489001513640891692237127059305903110929394905002857807473142593127813598925684720299565498956537634737044471675659968788629888974483365726425381598023940881171756154737274684137370655389694890044361684313868693396823730616156097941748096297801316661651794060347843880805362218384943787902930085294378323903465477488617973846578222753977324915004980272354393437205060746445269610013342003318144927953293928185927228198101842755847372413929699263962002536765211408362762106887398238851946886322295205507549174638374104361835614339720135890231332833631264323078973799765326406646592872523083196823175857642220764644585548085353942271953409576753746437421696977042649507710203971584130195824779464671608607018149304424164680513510668172919373272056727475203386098980275099224138893048118863540519822722265409440154427986083739381484005550165742742569829761549315306267384120471322714949251799440099378949972804084098044301220363017548714809015688221271410298240930484948940002834564041006965313721866438614122145732628055498961389896253827532464957947406771657788480730324070497361284028783152493965721503860463242067306982815014996080337826900078696882185760932656440264331766196960903554600118525459313242199860794043805931403751474901688570511556460879959296532485241865179514598347880805651720086544503593464823520035773630057432711768494064128146244300848646132614657672228756258074535128403470542048938281351472300849587642682512575643188529942623259434029365876768768800428450257545085122154987527134408265446126741112211405930628706816867789729261805236522406593358908288071241266866206218294090430548377555755868392214335693798526139930976018166586595859838770471631541308814278927024195660088368901025418901274996943849114360024049745824321419390460466722046739005950089992641763849022750415416510338351803942035886673984044814935570731111390997452907795507853516257638058228783414698171153916092113415583791965648040130375945550784624379501948309773512574002469840686366543691266190448473274965954300101303551289690572992894788540002001034925497470296099298238449579876793873359710205597160097945329206748714759914896412023595994172815602884866314757691081380424027943527186250477496074212597808171935399035878987296084158094522875654385229457449429170504132311140516344570190820367518166046783762316195970244889152723595330875652041594535237025385241271719372729159702499778179879914966225256785147150402759102134735670091198461910761539736131026484215608030711970569878572289668202553875520982143112300651114124636060983844924471225787077997452167345094185505555379144649549661029329188484890727226803173020859628999800749789056635245399394723238646110278572417653448658538674870860639941919035128868782012458795224938143915148121740626651819659926272782119854841374278383966777556386266265923038632170105236065376669466917527722715782907740871956672443859255429311575819741074023996762521074187999377688182004060285504235365568117554403687501107258953023601994451390277176275610919484072609545226205970559248963769520364654172816235026928842134827563266614094264005500743162751370189097665677574152890084853352967156675056386105113546050437889736791699971612999693930263581538769229962307708967060268977326534557841377482315504699719644828990366154237187413636031159210303116683007649485211719354004909152825304337895170596110559965071616466683478014754986794140300975405102675778823642508099808623223075416051382682240208080736367044970817128244692370453162507795572115035538935465902356746078978786489312092632492908793865994443693403664569627766722866378647882713384778989192844803924981316327959229129320251854509768545683686641823975329813562216868457064473161712317405519526862526406626726347095131056010105421458448889676405878840043504991882156587908444957006981132917823754589258702988454455137228859985550128841615145968661454531673362850412577260550805526852426983952869420134183544208848947525356601857198391187240126209989446760768500253930227333084439203795823393970601322981822075816553066290445154868457878058246400939088404213580481756965106938339043571333199022031339179411954052401662698811426581357515566330726754268644619464051970779293147304190723294400821052236531825258502175399573405596424083435246720470346532924122666264759484492956298250856980697923923941679806890836450167820520969068163296710335238350304798402463054433925597053646513213236622685035309947564494888144983895617469669833395680526866749450926578626750143582203794004869205098319439712323981198530019370457814342198317376484905051842921688731380790653612981297161726219514077972951353909880122525241137987493209225118695689419511645165710515498387759082116522568186129571124973426308111448192496722324506129313515986219827526664228705069072075750953474527585120519836220737457908357319620639012105547780072615885529533805341074243081095966132944287063172650535394783291873551593444249864848462443904061902473034003835598148157615505216541757095108540921268070495400330170544491059898848193864962070614684371288851235052665367476855900339601554259606293004628411027454948679818499626487362748908530368491168214157182469706668928422891334416296195467460842173270640919431996248326839078463646700733661649440663646717047455494808037501578499752552881588452728136409082843757563987210624200699680895279874896723390769800906355192265093241282047533359185204546989190682945416486811581489460060718195002230694038753368242025288346270616647918046741331384122578852878828798262851036668535585041648543811154748604975514979826850255405531149713492769658229063165462204252063269656868633443693773581553326558842342730492463377835368090790824646888688742004619048447164802710152441543748554806125114186890587414232505561414485543682711312143387212098994396713658827104329436494829589011814516153489947953927312685892867897342784830429353350553392230325844258160181183737134580228101058833900399645791985757155806835066205148340552337152626062630936534459177357426298063879043072275105933428033224689007716077934151572058122195718237856029306873619189337633989767998675960519822790737187640455759303969335727599421901461870520004252434741852609429790127972570490757347235935950047788450038087808253032956577546708378469400816340152700182223065941612286946553641679110465213382309521581380170169338669969189583674649029146485931062921157176494639583164357968270201102238084955856158323070320202816944453594172934162828550676643699280575084395565358780239674308224836272895161647191930559370744228736941974034022031103914076693898372466964914571988461602698932472966927790694713120778264043826091638973784159959458477311879389747650866397165925209245640678933419799017276507497968324242945387810414209922718169202468085104932940111994480442209853686725378620567168414949219507461877823798128042772852419008467238461302993641512039940701277984932768299777805383503350751448643552569926400292550564739763343782088445953550754378022413784622751590748971569895635513421309654032305073909050794131082246824539035167465516162915212105207639053305663769927649465475785624697071642459273383465969195513185910236679199786594032911265077961702472034313081159826971333081513610277828016662434216263351154117184979368940161042256022619525655155108122065570589088046475506241491312366915692874087054292287673705901218295787961668540474411404287694142384134602123754606457018965215114678688001093315856646709948318463222015598838780338834742303682927189734439521325434464345106906346323163830256926048240342318652173132484211055320002540204040208393478115290362260846614472096754892858524616361637428538916038746532406239147380761201787857770792241893343203985673895767857339287746451784404031130527245445533412879091505269623913855810632571042246916755614710736908339892253428074779944726202425642132993822114563779092998601360576081706973526231448247709752635178229260391407964932635077989211722918746800366858862567641129993934546332405265249849933856978981247426750857347514071386326090472017680893581406050863910553464693749166694947168264991156277084438813706334100438189928385242858522036538751241070008123964885822109875813412987927210873714235232977280607118272782487931949526541901876288645062970620966124869011483770582619822552082580042250213549968562755755276847262913297211409572577508632041049006926111524592761949371878719667368995033554450281631266715454597423939401716588701228492277787947749982388679952034438010932448393875793111489060065937606796393295937660703065914989778743053238188041486689525852799665928486483000791352072849622740963294066799448913192962175853894407580326059972779280078819331416528852212564384851471711495515214654791114342972180124695253128639520440061512055400877907527099429389510702759240411490135359796346524033663125128799888037494222488872058309341924405469404906874997686903411551443092442903502599329887284351133610438713007079714710521956716269788578477129620158983644189218089135912353650558323136016394375802921272463931196485342786676128454787779920722100830763445944426127473859747342342812720048293687802371444971265612168714489920992533926475299498734984990569125164336372553020822410183001826155591545206202691475654419571878144110176967903974692378877598561232560286550470649174882327582996867651389068108312541121154628229327460061994813498223469496920207907016774559712323497553813912541283806456925144562747129105891327102232690354086444976777753330503522622469645478919782418961684628915951334989816631532342066835364737203363905860622406253652319298522185476384075583589066274339777761108840430758557755676384550705951162337147981929892262708059638875188243218597137212004595239378048152169199022849331071339246863101644059918576808261451794286341349262991619361469255452384761239286246824203659798016614100591049395019063510992088711373855104224534504425873104954017470923784804361416229266318789593219284457519742105795779763290268558937896333130415400093486752205587508440657217484362186040504655319024721420554378387606702773633584227138060623986027449354587823044384166144150807464270033310416588632512420604567408743803099855256756614016243586565902756752185427544839722549578085049710120309551023135650852886996365795223750962418505127018886235634683210369067186521369486983608589741014905413475337346174995325214302254715060717970251727554421160483241934836741649693617796900417098287647390496180889008826894694191952810119097353767367186234825600459749640302295069132470247981027103933568343799497225173373141408918049158673725487226478638193139516778650434820764398119137254877515311448445803823020307096433917150226489033891097261282308439893275644947914588385305843787925966146590948204292253385454642939640163825563834665087219163893365032834866743488745931846050949325699145688822219386445936219811955813415717523227565253458003429765021978906517452135010818933041868032654752009710430176525524439645318455040963234397387514120962399433137618745064760534290392774483382018829783254080363250441237121751069196248465830448920433740605950627822313940787796196037925148159205218579244264064596148061970265474031416692997508841647069243043018778831279173259310578158513672556052091377295806656356622352081996062131181341606296491971351743490053550265692743079519212343882064899648301057661086961122078443967724369336391918092720597564134529646498151823812368784593473955169848913360269940916107272720968252726454106535952663407801879710130271796523922661197593131841397052206735862536841535192977328226207558586137077763386379025991069454144035984653606850175362151266420010303905535334763807865287595332623162648165804865370260449379392091947259552946811174133910032962651516286870597699067023038529120302704494462922621989589760512433211502137141798963142165452778997078314051501454533709965685867054947215157468951356386239018782703734801045528452584919349245098416432502906345310326250581510988294640189081549792361039760015487425811926065563922487960682560511588890550279156654837484346269420928948427124641022558790351523511900701713609471741865102679717541822685823441606908731392481071021672475048576642592212490707376387483179800844499571739230265422532369670906741110495181766036784998422330914952372177800876432427383672369772283952715299591918416172412455254703009068701357616191100846897877207122125823098727372605074854730543970699439736192520254614351926046004747229556139588656464000580119942105115044857280099144922951967415303683688049276769409571809919922073331366347275782571237386969114230731050187138954858807365658041410274188727379615403699169780306160984771144906404650148132057800894525635423745690444564993941077197854968955347920216956035233552915494469545940788841531782764521561366673142837027732032668478330740974658533362958962882456563280818514379055498088393243072068406988745424892670541267685201940049548491748830208158171229487849715836057707813265871032924238233320335887432183505323741398037144845431439149304843337539654704572215953850736338693016984607181693253187802381099013540695316047177672646324253577448576370637172732202424566090387825469637453248859289673061130034421659383646048726015512951745489029104017910101641927709531905631491632527720160420214913862561311261062883072768608358631314847285565781822470649566598864237872916723291163385107244276819019711204552524990121227104374219187476671486863172945325360840005093473813256723747813950171871264375663748869412395384570731570654844654251509955409949778517578970681374942343268595528100956181552213407193570612881693898807062007341283758336632854056913419816738842646910284061839572284038518043514913875681724413532036450711700128036733807341193411564485627716793287719076336105527757127602896171174239428273604691503469874848755164212256857835581643261669077600313066540822453918448868959811183231104589347860950529853135547885945689341956747794066602398436679148335051877661337719390035519082271360096421353300896746682024614269765579464676281782236197930154620099246440251960797132501480738563636435926292445195371470449592901084382691127632490662589852028988358508085725018184729622428004980232033613784228974324672603443703459135647364327382639245040184272642222995884882602829620957490768564565459618565481096783308692584672067962501349265006080477139874666808362636463096086589279752319132071778653871071047755584350862643858481217711846419310308103620530742436943691090354300021237705724190858045072259381146198698523833502264624171181519697437150700517034954400920989268220262204866612315038149238282721864241445787268003987280020945649866915328752883494111461311209531620201535556439018635677000202485248210830650209324157843707593196216683130480930272874543785096428100507893688574468751879842085299410322921900363452236668019334106163570678383131064105444347605290888447047705878251308127830360588461153647665687422555640120079847966657039956503331665826697282741212211128076470996635870973102984887320072729859400164642501985019757696463985731241639705521244835541282354329102791640946556081527307981634953983275062148217302123073964527298284159597959062399469073992726141831264856667724073721707012301432030417630018031017942926514504405960210274880803991526682258023402094912525756323901118776180443631665724081284130038242959211860729280866675692209200292879474473723014951533722580067590775267460920934924288965101187799210725130202810066652814335480934286316243626387379247469195372933368376242529875127782817700661169817462050627641154989565481521384485575854531282473326416805478598100882224951982210675947772845604209532804582529935507390428659428009956299987914056371113633491888544836985778163201410717025849330986186589796342577773019597287949010649704824109230305745827678554680181957441878269414651612045818380194284591205870902099664658462723057140495615504530542311659394440299114359937280559305661764925813735362722292463937581073844239929633914571183098823545448647651410270764011346179736997436049922998048356666392649622042745552370592056918291056151379410895435559255101087463744326737900968507119846417507306284871052019249751160584907309078494448758562823550100526827966440831324693135343937215944287510446182807083227078514677785821808765104835880487943765149208287844571831993435217479493769816544502663509151049425040768196492770164007271215134884290142052890976860522278999012914856407314184186683807197282004060180048486766143412337760035467987960641656069551132922098974862375176937433899107327333526764345634000543786539294949344311645893073259541992219968969685827763970562911095007765861602781002530637206809073342093514977993176157667349568080594227031448328117705671978703741082724547744361634674327256767973393971240580008593841114008600307401896581348694555079544287096091003650018232780426310612383199603291077017748553808607144830034762277391070563726278873751997227017738628100363796036057965748023478266439257547554767101712113630201250219274562820398269079786887244821802771483963078289057876726283282337886713321782939650663751714886866945024673578999991152084064237415010614970636851962251128471511361028756247978739336947075260953395965088053214290833322498884944240856892269374303227849859384139675241131208757307100956805910763427442724911026466913224849681961291341684899901781484978946629396676439180260893024924354272700439851448138621529349419193970742572171392341554336701194721647907682150267145782244425174306286661457658429821238958165623205483369242041232554746374619052501044951752341358910200634570187715212371319469804955375932917453399081443533415708348853318502768202642475427374368233612212646393295045345279710464630708209701720635167515470737450432065917356900646740524931171003151161611626391020645194523836999062555903064230917184063964007966184236040194494438700916944764204236246880055682165389201434753186500926549378925464911314973927133003405321798343972458764626442276458781369028362159085872676147878320182087638634303808831826798416009456474312459948243456524222031805249140533621572445999157780372568640541134426172684080075286534635818049333146328454035675891874800640307772982368978372941044548298703665830504875558115837285900486253570678732878582466964366823637199367630063919577552783333833086929474244743620138823724862452149226289648673092489702779930355786506926805071498284099493782581847686441303885774905460201048365921724074431503179410493652933229811308282707130432743655272614951625462528494483200725336285702347300540057552106122843288998812031880291308983591007570291508399539679308407196012512540926647234254273558401584955500288198961650413026337575269629897193438244959225599513801257265317592411891385510705749921857247748540043478255090489921175549752351286047028195083131912432525402086125745653932125369666174154205695675175078690097938861747448449325076622835227186837410111377431506829978871528337875935532250562441239919026505411350504201769298597320197869212043513965260523355739212852733786539776120209076082470014412985084528370996421801559891447326471636643042260056000136059209235609088637408122099080153183776065626558108070216789948158058990756070248466589215597656267083520207810437036749747437857333419021155232023417557386885219711775686077393151948233405278728257870310255133746363534157261147644421841807987925617974679366298084174640111565220644414976518870823452651801359788958294116382134643547087827942373769295942871138431212389508829826907058722134171875743506809775624333070452521590526139110704839105896223963105224300457630517732563736343745819462372248911905052723853637624202028481858486966722928181817833148520835988008763596823378446218370714812525451483639128341988925414840336341807823707004341129304357724548535008016179950449341420048736996408692931243885263793421462700521825539342783556254388380632236394652944613429424588606562920204931686230151303925004711398467727759791798008714284348567814330545521183658842595224246776941783069108938480097826373017874664573793972067799819684167665432513301783472626800196864872454286881944939529969948938122347687062350321630109182066586364131826601183182583841202402823994320773403894981924769378940152409926346979573370222244252494925271299010617887744958635327684369704860119840215008536176544266646221412882581168711466270049783659200148118339967675687151359098245315742755618179851875441456235838695512332353972046021080304562206867471192000424411464013265442573694623020617979001725451080761243261441459783234128860840912388676298141967391406361868332363379309944224604404096864431636705487667131560620433643548519465909463332507794488722366020635219827769961943691033633767285088339190384557307636645136317341267356460368070999453955464618937243709956208126401995903131829107442210088636330829893834749346539483803266394475147200783604467135721525619964730370787805173127036236957283423374693857985025907153892461743599212931996959348969715116008953155003691595459268857466736861717883118020230840202886969927145104930259322232948751607860985570260988146460047338257035515116536221565356870678838582816499167796779398524411808519296239612858806874106687006053368839708274284918791332288943753665325858253969807369185054084122403341507318203469938005371259460476455687612241087055861052448156070657595762542253456444788893411214375136389043395670192089762843866947163417563233662273632071889151376047309871297699887228491245491654067256098088956975962614551390113400038397929740131781988118433483564016600753861062685436644513358719207769148227043386940316291610232330450741033440288213322847418920526850503345406504653293742554297638810608785691199098949711076760457575447306398137386395741835912351755956929670754354762412426806060786531774867233987396636874508130885466097612668647416441356870350264426446596548284766905167384741977093503963746729384886414176435029050391345062466711210796403467751584229732636495663445586912468971101399305753042470196679174639357113552809545615122518101741421538419741426997159080458806876367625428361036208461392466481848072470894100952882719680766466653026967109749302868353435894044652467060762980462890280276155097085423653008466285791113185138369466517971963465588642690483684728970330503722613805209061484974012380921758814799809338794877993855413453128985184026926224564657441418467020024997147296966965188924616655882408164585804175970477829222136921006875835656638372383655662870871540210840796481181753025782597134927022052062755065172892151018583185389473770839255764973774293407684370737953449933444383460358975491992921839832906691293275472899865224158799189961821920623004569133748117422764324073901055746645959791105052307315814706982447375540138989204533010319553758690850533081492602768865464331903562294389299538382227601134508513146003841693490074471380357692479456357279366789131355351030930902198918882693031416962743199515896410943911395424935844174241291680938565201733060851230884577001268028709529613557190548134961557165242828695475637745710519027845776500153609329015950570740538260951151423495197793925942658868706858914673171878771866986094289238623095122770062373246527042314554703346622672479530032423601650702745987209045912997642683799363963621575835868963265297416315170051669783487529233992862827367708059607158600532621239661208021583810078947603633324009771925313687097316516420317135774355457717690198671630304489464505133647520545815562913084941189235414034102753780668823755312413985809126318820564939357700234976879561422143448285463804421047566380703080866557946725149396720800970776410876261642079524841914824876553724616466189044134343132002888288912679997273857541006412654544556752014213152651770439633530892693364761418115895427351049511995065688193309299735672760979639696704391863163973859216569200491425477385781874538721442032925799205525969037321290184367320738888305612557947589993651814557957175581749864748239156772828448169711213319258963385231150090285783090396871204753182738413028585156655588844377371364143580919057958778647781259795899851471369140922960198030709770403242081056014768847566996128548886066454786458683178124747751465230683859666725532685838571596499322977339384206856955380379534698992905098766529761918872194487229695253534685731604086760343888891897387635343145818502728073617885188706602267966678454941409066115897175727640828761774254102652877579908683065352221603552720020081911420096214412901759015792414589680123343452612432317146674513085820918007593812344276192384542215251315636779148834810968795549254320256434488343821798123272538505780880572099666480780052980571386642771158057945527501120333762131088292642582152394717550011354943148284844582110382557565939323542558840960027134358171875558076375376250235568373856267969831211575964934623778413587105544287487739249469715981251856528220269448945144782645199329050842791318413677271085600380620794417527581069556823998486910687886026460173987723221991400012779370469607000099358375193057062291262224506100766211766249489952105515238680810873020852233071834454354512966507785959258320666184655940734362622370579678332720524387166657215765220558430613593497825047019237320742343904713872834989062435336546358117952534664151690904751945958801664209871507334165302278108755565285072959027370700284561017191238166220475306386412875077915009054939474887598443405039498476086694220413851560858661682555269913380832482076254964617171343451899644065628744680900263411914770579636260331594230563546323509416549186110825867591252426600739133135940509921244627064160908779793070863274371420729377156265549900346162153820726334953069489951988790950362945255467118888530039901462128655859284021405745629014530271545516037389506203177500123474454641988818967464400032403135477278760929742042758766550767835287962594492147426653329054499236316918241417497240346596795782077501430979735227557835098159599316966165689858776981363248824155046400769843560931841439634704131410660558242990270190142836099000146077986360320720252161450174668826043017257376027261406308532760493472114074508753514849842859588344170296013305024568817718962465990911322539718984334739112513318916843280816132833248505716751323711765972532304962782482708165033766099922315825321026616799347761343327652547446167093934957419618984503268207640878993975671913871246354416397677982712885625642120147212915976463040083776814697561365802028590849005087116041795607510882623965665254573463356523270268891280223750912804455182500277299580420321446853313428058100041302686608102309568051712627515122787653705926236101792567605213452606633188378686003604490202801091358720542184659731617315505025745072456645608523515097825508457855637469799216744957329670802382596919288335493449524791001730957170061796008978049575549970727791062308679078608093751141457268148049950448017613426704750929868355407474551311501181755490110126323064510653778965993348557723477843930555488700904302822691412606529829466106482072590474666013409857222316852443899892148698565331406294249771968772135718077142089779132199890542388559558959489937910938668959917685223987993158305664428702002224289897697887989929634837969659250006953474846984769505334983354967091961851205402879535979234075963159574532731923573977135768912113822321128375783990066911645551862205358175074774391606930381036259683993972203873546672242760809914201249943903597269624855638691790230858249176535165259661201201223492225653280020436580282447298269425661432133424977741817875845410150469946001178466618010701789910463002946691756551877760228732425720107650767476633462641453496092212882081538832026620435042347008288501739754437336119165582833424264174296384451385564612769989222396971169072393063146630166722593277022010451274350345490830238752718185319042505241472051111530216301194656646210792372970882416883801874349216368220121493970054000480815718459669720249256988362756004525121235407992543052877703942020046419061755635290488217124709652276973792535474016137335146119010511382827568257564595392835522941890433518042604295930638451595898259513203192424217971257977697636979779775774301593636893024054410712082790715031256162655856429334721825689796519563735818160048890563908942987996894317759308313346850028272572700300620394461458818549607104363656877484581374120126742335018497234988846157207357061545425989893871551928683938287777285121229504279482025084496894174473964909162480693485346297998001373980995852126935836799243726079303561753019164956473879554490694417045809723220044458490712768625455217298643085253132676620569212984600787087211313438643926253114433596936980487098949991096150540815292225745476995657661869615911254376272512394828762366050927993085485148263760557559264536030763501293149045055771523322442271179964063811689461059408849939513011372212570075467264582900624909104637413949130125853048846269305757994483933717209959379557667724681982566725594925934684897642112384168489393773206999790387750591590180827323916661130826180883529494263760373096815921444644128405245042196864675735117411071473780460056073839680825211857256966072960078607956649249848150774382396081824962409759954595823607933008318550771481892745169909274186909550014009669836243477457954460629077876004495967216031895267511851533787713775213727272804360624310670781912384572419866134832519395026532973091056568456921883722601029708684699971892162295525089054319567009878741447306235392571739307394755822178561158758026033110058285817132549701062423022490046360884670381187317301248265525163012756805511349769273418488544060111349678980486331822552758952334987329205733867434693218001943013869513246432009949873983627990879580869206184168721439395725493000684664299241799380727183579456474330430344101496075360177875559918401472728539322155187990185941437547671758393486056162279926376931714686889428718306624850889781748771206679717443682184993934896453544214382193150214163258208784306675916002600300820757605754381644021141146536282911924809471182730404700306687179268880553699645552969061148427455790092102379831297955742996450683516855215593818046082486671894982903969001229785789084875426916066138552895742103083957994868401657905756738231191431851712699077359943945463476336876374879151935503530970833804020219446550835650516594061342826649088946049240380688492377898456972127848606495006166694291381839085588195805342432699560752246276880654363482727041464274400298567564142263641190531116402545435566916320971761055925618808874076915265608817206279707152733626023002332355380208886829264742102862018740895539980690211082197415590443777324334212111621845997934219537957185571766146739557972374434942841873558829848613702522738153578585630468731065427002636609192722939584637997794483138310679009808494992811611877106149678152021968987703322042117400443471822138861609732338343552193129550123330761512929341981601618548838684989730419385222288378899423216227802523153494464076844244578308509853911666604988666354297541632463143993098374109252423466479476940056257749846135492761226619324362924598161102873271353576433820709888588464446832471471646915306871135012164766947933851381610308174244948498289226712249949927059757638392468744586042941000455825583876633187958443288745389443121730813570828294873267378823351681690684186276717866066444101402193164269187007334064546225789309509639818332870786642511383809490138045256139592372999538102245673081042676052348341329355308223345620278880249183411331096559825538265452397361537254747377500042390018324879906349066235674135390441904183026632906764409164581589135033262057802176151892794820781186466166750058008841088647596322768901665483702376755908428831712191223748434194758059999948049458730066094123028436586760444017096184331209565359817518306820666891387627538580119582107751306712829219592284845498548590071631433542648381621423541824411748813484839432425561494627565221729490150366742896704899923456035664763608551702321744654089753129481088920928891114276486096407190691498336662565385143791603534047708418156982285764739681530615614489571043824451329963690536101287513669621867077890500820747021429711940604484238723149184482360638501997609444361514002461340412191377204786654833879679931806079384156762806490269276941589378620549246298168008639451062769931232185120072512663357201751844984362887194360721653279988899450449598796904557320082461470382960344033624740756373552409635317997935959207686608317310289062675757854018310115570706476562007118639698596754219439845905732968495308347364461516660967567619678954614575537748569302769713558451676071931561963279478662609541049843230683481499173710352179284605464866843769114712064912435517755293440641657694750631590967113520609621726963098266203453007980407662939415101553563446406573339883355179654599982963866647285503736442007466208500664780582463045443123579910079000185492540405750447183470763144371880042935246160971889710699138741314959230602128148480909347287396907855537181866311104345972364796102780039797164609287846910561804339236498115075990676920142855281736987946249110027405426056416196612184275104539839239045040128632093720951455403348580116045036241676098673603741665526546670243060285099775108591230489736006617243718242789811353682750948669506026136885199330572212700263949160345603022332556241214888626980339878185048771232443588313982689884169979770134288760911128249378599310886778352265736817411653764117711974292807116930785741972546976798037429038639567614920494307813851643236576912458748156256749360829336812539834466561008722929746626085463838267008708573694897103927067177880830598916169722277801521443324326983308258497577233517681835663449301551453099670613338424659548251523848241477044040847134376249108639533051147594725613662587333447723735786295090944804619297354157422047280681428436074164640317438517495324887541145387039261204111336084148853068046387992188698039803740444001779267645720494692833050497427160807141947108956837777140939425966289525430293769387143312797908233360036987238040890484461556879012613181505697105610500687677995092447197073446298101638342806301501343513539898774328589793715365398776115455790210265172964689509967674298371484509808375626480244941313363375633501885914465383675092382318310978643420448893202177117954118958241789869138461129201791500137611345337485024670249671116940955024382931976713297361585057359337146624054246939109863313617734921033905998158224776132093276081096732396128864536032988780987688420629383347579253819359031566701893866810007465347063504017010656814513906245421135219259446451731126524119028258993617634653825629302704141244078593937498126340449379841775551751915317953698957761384151516257338181151081768161473269045342197875693408203908044094609957569150369198172464218484418633121541802344227801839308906814807375920123567770648561322460377813081867264862830998287675842388597746673455946140454243915104122426856360295301545234072693906687559257602588374929154934390803649341060559726199135981421004209816673742345493568234647549992112766400230897442867966307549517859727727792727806978856632377194506315314868225082114303914086437830607750033877802210144089733446735886633354199860051220628999982432265466768352440680866569811211262429667322856862379602545818309417530481118091615814194951824917153005371883359566973766304896397080753431235985945667901349699127714397731087896201601317993592069154251291843669457300429822805543039541861907620243779565213139685997353877860837091242635546511623567980795182675813939388671086661313098894764843271465919861852375287377871050264496172081441620634106299001325030464480156561784124033379836248604418919317212782086421967743987664945222297485180322054073002269855392201012525934477466213482616027623048295001602706739237473880635103296057088649635779609986206274687848882505352382045518129730391014724984699254159397623401341823328300322262291422662236136110864960755649363947744238329362601277267636941381403815537859510021006638022133189302305470465496201168841619646841146140964294397093380420652411610283495822296448896825938628580571121861057249772872557178211612303257440046563634395737512185642919310943429722832757088707422567563272186757097991411608032079024471425218608456328709729397720684636134014460301403715019703097426386767498270622673793717847427076165483527810695894779050093193160496458343250900785468939399509878841995123266168431967448140074200589436203206915671897209852997675496970153164220220261035376951993439005856070940439523167429811453178888203487442777770562743900803143287402846958653339546268463829742511056308373931579963805027574568365225340838561723052741102567646446017318368906078325491122262191538641078507887415334251791252670742089758612541312846445032136500476139895268797276943535324653459116536983431916301923920714458401692548604272443651902982027887519304416466727813147669851107915711876350658085764177170714790813809587911642331436344015599603160787450413779833606837009776582006953026735756990985034662312810486566495344699647985327041513074857618482415688482942989888100448387840442496640961515262645934304339778342851794532727442646778389175437667790169057042569831548895102835065424645257452869490232749626494557932053060290610804448696359528796560146352430842275613264609397904457847895096346393282031995636759661278920326698456354097350641613126663169348155228747241892960350032983508164279054958832866044607769760774407678839463729550933194544606821771705526375222804933448279211007491517554342968979862891357239665093773496030444097302138726148880445333888840230923945491534861927413770472425659457922733883760432445074014875139897772734509434644575088317946277899337212297612454273683581260367852763789116005217350201219846359243032615581545494210559460200033738918588038232263205390373201920237252735296567031038943623148031761061043002788527319968275010562639272418488510860225729568833039839157635632500513547938694995469471166811597954231260466617139335214662799997056252381992437870655530046807946299345360016546320625872033976366501161579858627935818553701465438958545257034991545335008313349412749978443134089604705446060560847162698615395364423394193076105617840728944349220726986675439604169598690309115345221043217724282657088403916477118829259601606084553092712089863280614759211397832558515621132033786177605859241031561927345079945552254888372864649061519666636681891586069059465866874708906579482832582949070714155005809662471454673271306989219168997043726349264572071953406289559557741679560186793956293223525699310892167947228677568021922049711815673098056221399770857543470847569278169716430777395540833529799347224750281716166542042167603818116115910433114596250678842598473919510205307260884604699518102694803548822009026957199544471512189761192508460309123786934735504814109173593140928695899183827458776456179584710451880696196503572090376092711830382196628434413014597468032249987999654543684053612234075300270757303843871948921638443248257855288394970765824004816817933051531628499947178039153278324121360964606136110611927436149361105272887176573345234558935736834330566476933214838090924978357546850097454108831466061750798902133946407690017645062023476854612377126565215955099002213469693491515635964661026634118204939010291390016811285168628831033117423745855251275310507026034315701330225184308288473034205684956111260090963831050993490546570964274154339140792972278336141269417303241902953392565598340661415343754960636625431536198355002781343041558552063992689798641371442242007210539704067663304879429937161992968881454615147438523107769646358946370081201050430762120955649345651521598477744579131374379846199210562915810164527772168816659494224020937143069872466215185722564229598641233619558575403433463303560707068388944002255600833075595628771591425758049419167664952307902157437111593200928275684432846471639196464845313973133157392721172916450192175149915367837625672386385426877528861213106424280445902445061543281515807959807114728506701166797338233554219069440222650904529033537672810816874544783208631924387907835599763351794397475241092107133652682600040090864063219587849387833199671783694500836126396314202545820425959454815681764064276953453899416415372183371873262048277867846201555961520324542153515407487214196057410849420394078453054401516740126026500240834131057859895089217632792263729959854580923519513230389696680223548080900628913154489582034551456699132539618819985962035007126069715082352496415911747986076307990288547400513723032697930516284988523867534411690688891474987949934126401303282534407093730790254333734025034169661139975006133283444474396364337908093374827508297006774172566122733683184583195442370620880869140190756371112809645016456871496552809312170164684780297065389169900243376944249387400022128130976618552743331588191159284440652279402662106089056085127360712144373522425971727300252096295289737550735599590911691316040862119012253216433633840818490575492434077276394652265004847212000574514427362127695962025675287961370020352855670781598777998850999242253200024685925234925297698497940842159152587431205366932531332326470169081163768922775836807290105235722333345401702523102299494090486381622816076036990202463587031266592841701706851432929140683013190234070961862534706392619556330777956370799043899207501744426752315448366158499623114753975721193536861707959111870432819599584226950506721030179982004529560299179583584143909481529791986136880542789269546674945522889257062625541251567252568718383561963593381915851021084113014803089461792990238694071692352095390454029557829118026072526476149884600307930433760266572815215796235716515124807225519258180181865758571626076721695213456572959557054746665830190493703230019225857019629166355552820637130497647227417462563242150626864756723398145805186096049952374842925387446576485043248471099007050713608826550799637557664886895402690115450905471302759699701046876705824256322727955337638815704683517282376456866802606008058071622518093711406511843648556715359429683996993899129329283239028353205787031670187969666198529071900398761039797803710571815792553366662240240105398480391906353649672415652439553835859654260731257317916085282044774728165781556733506531474165692077719382702318086661052245075242640152674496599111513562129861011209045751212373159884454213845788025279527698489891262829283581901769522706252653578790366383337687015843446675200381779175627010086039129992610897806835785819108725654439846644930297654314109303811544264877160889793115753261727764622300245951055387324317950564058547247024739707300412116337000984852587708789443417938244213412951947502694785302546316749665055406125808633294848825370115114837558564539916857021303396875596731196686016043766914919356114981211438666069590083310718839366962751463035507573751692555259048679251371470238786749517463354049649420802081555697012131623765513116586428072089936618064118092457471984197621662139535027648505062336529572029001336730517823508520977116482966484505843210014029581152229760093969390337134894837048953907370264037270473647801029932883365355817417334177573651920585175351304695471973746843683229813124669531258722245979850696833375477390372041241434323402081427013148106448546309682457686699912197105957391426024576076402507456380852456710940625195816145112775060148029238867991450390843606090077358542037360329025444452728043972841812176052423431868278187808750400101822647004530529351941349550792396150226059826552511683940817924196433058742615730424435884752201550883132044412926635961843784830657327302431990443960602143580831735306351256969320990441375563729454096373627048979194804814561900018021419142671705901482471979864406662865845739025000704548120934932809045452677940340206359030895772173344485792273801518859867401886197872456507356425822325075787295288436480867543922862132898213370375921525627119141971719882689256074246100838939848670269327952291352173098459232472852020973448744846080013112109227853361260324528953834062432172792747911621628960929283192630632147716835894050809412439705547635461953571628029968851888904912581996085236090718080281107664269437113850987133432542110259892525905641122026272457648224509518838970464044454893375034129245738508015584179454011114990185003119971066728809691196878665435177881257392922804612712561033719606147202228644597432377262627411833011379570753181902553165159005149042688347864076397502344797794603385178736475813878899199486375891374734416749715196929693056095886123858318066945396814570595034697608363684438163994643978505817136696067340700576603255991259753950877595677400038584504272735717520284636084070365429082545693216148517001245967327395731082000165253095347605733360264991953465895285449080703832801651601709845250000388932294995687975782698617817405899893177336472021350998043497918376889760594284205057564935247291664889925684551527115887051577776961080013250382905302048536460957891515289063402609451675637713144653474766754262068164987186330599825648424171689660420777084180482244193724483176576405801092795871749809234623257949024200756571622737166746674738644754922358985160263836483613646802614069496172765953703346259053515365828331671052930231757313065831159811160216342089997640705386449500475861961041085474154549945388726024944260294405263332508337568108755462641247385302037149483350613324516349454141694002884294318333443129226294981462449707267039156824419459414906565037928121189038028652376170814771319733752812001003028012839673634638795730391595971858848081228976553379787971100916679894569647463160179845194133902830973410332485040972192843549649384358785767414887056695795082082207732059677253629467229231943455796543492042762181345102181760743630615495333033403134623531286067574570763313697976295141518965330532369861434540267687080923899078680455113052923685648851399207898705237807789930913001748484639978022578310371329566439575497664827053990032325157715412415063682892073611650526123664571666236815083692016583795952463956462531864322562409134092417544843809637531559043861527669613502828940049874927680491028351901291560522997258604232478094587846060388931024102147284621519610201450400221964140915363722978495998533116077277467582591889057060356197907050547608639259040676645550976445277642994051106933666368111390102422092868096043909671873649486207431389442086873107746012849251799316091125567161380157746392457662644217338360606729810384946952796663915534480398338187528251423507077912555935567654293758767502660634186993943630905353248150548394098877412615657178459709131188569802100862867071103866961518420817868385744309363510839298615819223052262149190823218482362012540144345261920157809233592982606532530631521915703840869626666728571368888936562329208861195347005716410040713989357261367804618672887374722781153648665230538773777727490524167121898747276653811089923882616500075999370461725940183310284906026471434433112597862852112612210964462441161481152892056974742368901528490732980609903056460427294251905108073290945810105060474632180948551480876873920547082185812083534533986846831587960821534601418047435702760247737818316819941748068724363800951473426447024652410891305937543190086257023450804312684369264322855588221387516295441390094864139089262488200992121387389297487170059655968169748935228510053770408701669392626325714325078994565421723632124964947027952529452150725382188678672542607198137224985717431787062773011198942861735193835043210981851860860669462150139495826470060474638733693290567458433882442427314614107043269954624277341791315295408622792342509888295496447217090398883146782600075366118321441263617956355337663298202978820080224227345026617010003091848614762508037891290251852437246302206534678875112644570187453445109962822374982731966682121762403612668331485924323778579657377427715191104180157091774601212484890696924100981790360572889705106668263026396240866651731755514279744047374446483796240665511008173862847512784323862030317972265472201287488121573090452500054008905034857279512524979487622731281232909926144778360868100776572705668857519952120788687016097260623461994127948156799135377952713469646461154672663064929898095379901877734492263267237505616022944733863546315055975483327636207819190051668920698909261597417517017777362403078516634398423709609044935533529293835626109988636581086773448122536551863219968217236365807854665397682214563486682838382562044671484437257151860396110278519628158491802515890862789013389280814372050255131200669419925337898635725270823642312204478119197602035089012320043353811375022305034117020528356240188812780206059172145993996057407685950477487895141519038729653293661877145046488828834959398895077872634538073900865650776450216848650779291292776007701920261554306320326542514272214412509236521463947218834804642701625911208426628333959198575604814036998535855276958286737999750605950501821074178164325402394985755450311472802615629825576440449310549655562879833678047755688330471372348274872113249419895119921271048341119010783168816969648002522193469618264272572965426795633940619164589200316746499553260939741764166749450256539173254061879464821774396070195505434196835962193322093387368930587695556841757526576173076151387042159064084006012973319059165551646252063468166364967502811253168794527338021557882554586287514669701053705983282018663050849530701928941079412979667246145913103062404085345443253460238167732132918788320966658846609527930333097562221274818261295068908878243555329734523884510516074626884963489436367267978849791727939219257893793080225357494561121309327887361666622098155588099256920165172212879622627542511470001585555030578353351282934467049925589034785299332050898023886237052568623387471035380759044674771218477513446372934306871314705473592185442997540833193143579685212454221739925033781654212831046247239057112676102079121653500572298799467006315578568048017001724483907358517396164893767589719218981941808300894830069192581409494322130195812345012504221256950186410417058173611925292103744770985182290862646625084789396074744679899979749669747395789431537889726932771722577908003614774932034287124332764948980380078569747840334567500523792142244868102157987782635235376700692237443745148182802928170301635671860503671254749225970951186612493453279808582746682404619060014005137148447620397897144884280371092022638482441161166570849964096177774652969234721576643242540411676832539357923927568105056001418020140423075056639377081009064067891545433413547629354747840835560506811918452613756872303511718482465863206374285328990338043778333012547011337377774500030753747300904213338460317835948375833737044215765632387234761181718698678394337165576133318575525144379705943879210653299342183659082657498713442417551115092063385601776031417552392173248523096279367023957384392233345215006700305003322242504677192640209953371704419693830769959384686676170975795413278643961926492619398501709517949371487514748047079608882535465639155611630647820377311048940986769344898606644743596325864457052633533729335966478736814728190369227908770549243621809398079293959545564081254491311182291293646928985206933898805517700910041619956156827644873494471792780190944046483601955387823711881313953850778330468750965482830275572928413602401711852333752807510572394590463121159706192225071873085621869097817569918380784372172383338481799292391612164800512418319206028073122775782816135702274384197007378591067985841289017425218699615787883337079287271755343159483337629571264067786907191188696456487168575876758649273051759799232527422078622765490241453484340527104241579374211907134571465482042091418555819024757811306750031873687859862596301588345889025247156840744663447692473426927226114742788148303996584810317670526689789674038586147007595260620736092480261423455637039003861759000171491855249772672311074567470360471745301874578958136613559718490941520668328597672605209790443394839986823222189966125921148428247236926863666435291898469419024910370314543869265185171355043703799686814218151168432329215127353348100252367202040490203470349314944488655824804774208374090186607566369868556007198007755495642385266151266018491458588046042719699301255313888730489007055683969110796465846572662772138906846178583782604671456376478483681596676100441291424583635101801376833500488418214306283782862997841303644355354553458019013832718364573734500266802090337649156503558647583996271809375670381717298844138967422078062747402980506546193617196646277906778543424161692233173684625904791464232139012937615552304727109089272217825357469120788032437766787718016892119589765942853226667687500194848087203736199521388223227176762106971947476490985319434151045487323479439014479586283941863607136749991044001724677628680409748060817834848556781993281981693412857960304511852181355402652619130209806747295735429382378628592614171654963230881683686899166253169123937456104466133054931165356170915869248043045491355888046269694478198063794751841115449892155407948566335564134015279936539107122129248520524374741071220938792124396408771346877338855683987771209140020572632118729053343256236793743404484911793756905743904571850600157696876790188597699148928362219009093444732161072706144107800328239708228969102843156056907621031195285315861366183890059727561841723030060139989645019985124001936057188269588033899477214783965824714450838276906895185635178691236284982558849358811532473695541127029832311484991935462154493534412478840772686326239455140043771817998436578027637425088840652756102317582707190041733403476483454450039533034158259528778133261270102199623246305405152707256924653224712486449475491005113497859773114411583382192677351112432314292913268313477043884527280772321674911518090537134980754198528070817279225101900538557428144868845675259503048880973152777233631479299437326481864777221333329828004836088628765469269072103954390455723635990417629340161543227427818790504181207617790635391874231852267868899019380316571033741020453837305218395140833655148537891496742199148316946162204509822509366246643327443268072287780167790865268900959751512166996227469621490935199940770816645847823549510818523795010867449604123519500924330804844015137314636357800488599794383592662266267676416076638157508177247874670220471540292825609307570323968339615149878285098011158592105338033260467047909618599381214017002118550217118538645271417941923441305311787458910158348868637264808368077167982180306978030000039420097829572908526179123044706478288141690350773132543833809601115059817324215201396340864674889387118336415687235792826541687992324940331126167732115175661311334057954186078217658865419566578877584826531494550907277839329123500883645439462247976757264502712113059673855567688694838219175943749280937684367071308253530843475140512820288050050131045386470870153257679447587205706247846631299136238227263290033311251210449785843250500780114939020748340137448420835893010038352114236241529791049336449782413479422495370627862514383913234807962074470082652362563123981860524402876916224910123148325132631617379198795337457510640947762621733476896247234568910443110225725668835945128313916388987639934799691217359261664499493876331398391540031331597716812544211965487183357509226953518656818805758063304227104088478178659453116002048558885504410166044323270616622596305774361435203646437470780114478109008573298340388644210152952394936404130481909932842702181994317244709656266085743926556966164043493955925083507223480650933892741836121925152331683446034397451185297859767914597657954649070069529350880783866590849487001315450051028280157490129651016291404017914712370805440124614131827003082973699563511274415424793752248103346464987853352742087608106596885849606294736217074181549824407547136777744414488742529146866637760447030055095706189830173785437325288689113215916662134487036490322918263587117468518223165922901978992743980090486928238702523717759171273052816108112520311359206085358242912392599072264144509920066832744564055938621329601079830905644461158451242555063640304299641452996091371652569066878195914841708267815129027105987128514768947065713749905097366472555225048248006269760560553411082482604351460044187735903315561729688085784265630929125075182745576415190405754566242872500738455049485867511257959197477680156111069935696950538553858342259934141033820858699111293831177535441520393454920338699834896892662317968664530097436893311209118859806140348680491439316530809921887084760850632087680462688767652070935844048054381314034901634085301263070978776039690640305207506326635369728419905640672133052902997048798880358011076820327452031629125042983876562646193473117480783441001793445196302893165609804025571082878347738280879054918843306542238235356915494081223728646815617324259115587140811087282280644184667778650103715057233023334791286964694894726069018520917330989196009693484082579892455589069016390464364432564542923527589679712689428339079855480944031159562565879154410083572647937826449019089101815929703637937390754349388474995153518656888007970297557783666431334767747281323368297463545756314908729599304509778683370132263632762321255952932234542360789754887958501766463695329394368763394606015243853047220249834822643572808853983725133736672531548855341636323595712693786789143014968897988739189732439458174639216606951207180504003113839276322362837755317522223606304062773285912507125270405571919521787890319035700462355208522234745739539141808190164197744077849728304082967743774564213531001568193305181129552464440128919510199433522975598129281254039309963067659899833406918358833593860168181080283549073088221029237388110349829771319239479412656621379564233384266100434249064762048255954035387238375014599206346162787635057162010381958683715958022749892305623061008077208775163634143436952235836608831797101871052932785966564122476127114123798197834170288334101780536369810843007750245587126273810591739716295667012148112078757713343467205596347308270842807666078073012584606234907120924070583916530465422245525367060658365629473337480369681233509067667433652876876490746951426722884011255323465671175550421606051586621462930539247478620223504250733139493856427041419886484212122767956449923786918585221152658094146555662992769495285203788443981494558006359657996222391268112341805404225182570460063191957478597337890333429836137404067954013837538673058245804774169077261425908652447248644101722892397991791976952298685641051886239560580135169771137965402035833933157773953841538433249424599945753330550678036748304494109476396171056033627224936421148630908607316281002128498865738039829070163419172534971801660570743380959999213793335678455129776967301484401552287181781553530739439452386229014466176171445795318425712973767559918262468161967268062660715061424109970718407516119175508381946767244187707401667993092634474530883092886992412475266810429993146297197155103270931770664640520423679026824352617032695311500234631684618429699230110281185270139489156743058485266499041983920170355982199236785405549231644363679220504847558798344782205785648723421156236775541826274697599314834845627493536563466777871220079593902417320808331778007715666394578546795668659768324770902083407736071876124106627590173359835973094240753356472665805803152102869396700508658044830579854528639679509228561190514362504473430031452775418191985314583030029785302703566660925118252529216253839763934190963440819657886320607292615196631758401636967080592489302636026226421357159760031299342235127824328549922814219751045636848288044173199110548395807573117346032969856845234424026456645477213597761992212005147912626188391694027179372728535592114058389579935997251657105820366009791970499075668655112628566630589058328519962249357095492222345591668379918954426592215704493646173288893576231866904112766220390526540048669629510667973723515053944094455808247753638341388006833881964831228544154018150832963951158618459657653253342946966860326491764601870032176001795786955912484010594672544849531978006481760829944311714476348531746278613902505669646128633327595332454188465538415032611737348740615638008278091956591570420456591753904746010267406679608937724444013071017512701892781076752021693967694055213062536685428160359172256251842398944447710060871676043138766259188549473271507880253755121653006967929081419159768017620732050037917390344883707357328038758546538516895480048638376363141324435042606968135570726131895788740648676078155103275388842329537363609488017366202722893067942331462954026997129149228972290762312889325850820036850476506286217870874803318593138873551847247782477294516247884047546858027216750136461664085100896808283507658950433689967965772662486712334822740570439899177505410894211042807219415908970966353320465442694199083890668500840861254700365138455792742548188110889201442849251393356797792816772733910818624350792413058733797054964186945316635740056477088594397078418099268484464877841659451865604290074011012213910989674361756989929395673423521808344039118529662687335420209534018157209543831419259439072944558998240137488924515081597473999998927317513773277678794334722011393530781141882274764257346837620330619874718895201008960721996509490063619633017774702855322313537174364397736593647236603113371235706747438779053992814850867815908619069216992344861140742502259924624258878071773650787710110482198147340014514761999963289704054799357203571417206741333034598557963016422800582285584936566732395161594138539054207689232169598100208193529213261992854765318839217211967374670647589155400513021755833602852040434590066524770710808701669283787104691085218881174741349787203772745545285103118837535309343351047750524624969830146003600389823131725186213191461312108745190624235082932168408706468340136756438598826964097658297514924952236624719218484520732286186516591000180393046242753400206214073815607980114234484837632346320252911003976574113394812273998152516359279958929933299675928442551843539569938871507475189492124753329342876765144352968148320695474641381569149717191837561681544065029146703755056624583356932325970034542398845099028113790793301739378390985212031475173099666903168383585977123413935098640771119583417312809231276276228351377367221429103187030658200847291204648021629323926103571499514732759013004221334807022882491741682705538550352650877467288014052097051175580635718826344871633588658000813880264566355298824203383869976654607086462972401376890481162503595035000850866720640126924010908132948538264265506970608062509691039982923838229535140125908921364138484882870455620469972195351125435825269946437917241672304622192484509754741057930401162045483002974618439984010511840800693660508558721564099779074454736217881610640603279005308661290976211572928674863384335543060890667970653044363612147877819346097510097874239273214807571716600161845001614777222192213548467576815241562783672181575243927039834937082785152116456543919618304100564858045344922961163335273840384916415285103016474329752868906484024121438823119846011153528264794225791099115114591274632111070009886698632548609847285259595910106357217750839338784390918704629277714914792493494160927312938761388092305448797674495961612655606605489506881988357628427587780897942123274973155854717440540954093812062120800875477840302484900347725663234876201225749085984168769491193808438343881570129570939298852794602994608570351975785852975045860272944073086644472368898668110210498136758829962838513104101883725677292615061899859246091597302229842954166431449045619941345654523992256201378014849223377078251296599496201313506147682335545797955131899140256915858981293748093294083723475899241680015509828495903841441394363146507278775126255659132570064158577329585973153065546235100548650979060644780106492402759600600410286591376119356464184113071564778614712787342535399553960220480654146824817446857497364451746293295144062837453895223947464411234194253287985602268736800838898849414835696579848808957476262878217082344566214970230142491891672083149858099639272576354240103509661303160825074281389919559803412922482214240239774911597458741397547189328576240971168672240941867769583170877921397523867725320907467311785118311668692033016457842663533439616606158137757618246250038390188415456300699896904349387104287040664092754222497748020370321716627828482408868792145163653676130073235885767165723022416002027787146993058892675695958054006238922824930300978895937389970464465593378013878974685004313226854015401254283799896374616860545062470838264991312561542547625930219298956521680721161860361547682269754355239521368942473996708321133064875948842990083344459116814580209844780986066667021570314202054236096803969968037244365033720834284422695686534497797611590658006450774160885462523120738068264719453386014846163545343244794096918683281554915422147355146237589885065172150565074756098795305327741095642482195766301402056353872654737879987773017004046910842872299347907337527866207552527232197398481290871115166963424315128566763101352689571931422121204929488216233710952599059898817598407771811903673826504637804662317068436592293278326364901563854402419587307690362034856775266210886304229823593692696591681374967410533063272717052744410175470078293203520583855029766255614980808409541525713718972684079309410320587741635767646584244427132753233944763065519999832546408294998675208389054625903482542581179221890264013156036828776192009824480558189458934293633382489876930694483355862602690991770962869267770306822964152012915373707273579976045274501826119523726215756517453457399050519366006256093458301929051839540290145372589325958142248430912586720679887406793443996861749058872284976017368431148659312181408994253896007504130466255444682267816055294427158127614622731299899506991490525723448493007918143270970267327823233827081935388706735722991603110415373998710964424319548266717238083071568284604621953653560927361262293815149872560608998078909167497210060506439479190303314644695586700484018570975797216818860165793091606159637625734908610238086366336889748365984932125458971549697191423311580309971463999839101569844920777627032318024876283626876631023931253192154499304639254170119120171486711377917252552767099340566899607239596589705869407339929558710956364976809771173524666851940802914171770584830036344882759805873460542971836974325297640561042031164243131105641807673933711274198007977800288262317903207815719392327387823677227461016770918208196896044051438296319002378880460303603004101332123309987362198852725351578878741907408130541259255112194587431482904648397513311638564228190807327370852114315548753912084376886231487651112237830771231840256556282147931444803790185299652852687684403851231944326554541819991937480033424643155075747427699680736779390434039409437917041238925983322311370168399797225541280405844896923557823419718288563616056746686310209096717095223490456385344498052677586550775977643312993734578187434200793908393176068107123079767816667973032031509900447627416258409126785266040138356969167718088396022172469924130441410702417246218436875962442519064692090078225894031412238270529308847392942092590143076864946282503620520123270753887999829230533906322598107145095099057773440404208438913234746357481239355753710727748454841399573251277235987803589053202502072705212080059721140403138730176681340852297768201318580867680866180334005068541074396521841050551185404568997196500862482842464967323618796300268875863854829973563910521185268825009763479329867222866706773002122180254426405211947223388373213802351038775583540399197320284591977216871158695842076250706308355435882116699057622053884923444140307321340066121261939645180152047792035904495885700537930901460051461363006753251653160635576412180494983435581791281384195560705955937002596723039779729080226021358118320791166105670886700349140375128250809834142237162691914726556623120827077717949875138462853073496403343952879473676758152303867845346254166077950651595235587544052434233542691012473434675937948993048040568300172482856543542090340927653494990185999339836981726722925792987113810477057918941815622631132550630682547126456846376879544747621435971096561657629025733215913907988628686735286027379846574044396513397189758322195663080167366940482012909548185249983418996343844841296385303518364671184635714139200972950828258281799047558363299300725410375079094659449569106789865232356745647478099563730085806311583082347211967317453116244307210217849842671698294099958400990745443180408486137910831033735041208162194525787854546619054115914331919632734223611364821633027521681983994340850852148907807125758029135956422518218628714672708029359702243918227852307606510551406261029383634764840229364333713703166339675727588995511799735703297358843333703342431039413860263045291234096272068910576260448715778217930180217197214442583118303150820256448308037686079505796875328926159758921646946515117323942387156966196772896980800728804041247017153468914399224319186178451717258343796055219745814344613840077793617110888240547802162950712819500363241187868872319284012462251545901461087824876729636977140309618627871440852585069381897793171397740842541884737660770391691192762951705434844375637660152422734171271518320273830883568338461591321209856443450238643544097863545920450901484538048368230546400388426539729311983944551399721770780578873159843173246695826486817090318056358105037010483186276503463062475052125696552299203359249713029743182967632251341842925320684315274858283015365501975401454953426677709552583624080167503792784332577434978976091074556366195607706895727119782558933419181575322252890975369373180752813022964479613609358671772500137890010203147473003560992465628056200099368357389182242099501649682121571822559039264007699945465318837475246160542803179118672642965190284901230383718576729859545709828213345108138674073112878424960994515520614468803094145007695023645452309275392782417896588145149062266050199332903795746601855167187804970558879503419310775065806750019802023122704667943007877971262854431378265392946095050472329235888715804269717045511059963236204592399982073640311026726447784188476129905800274893168719903878969065617816191287291036966780962364628795925855615912103207725923782411660130347036138117206785607435395908033370100972367369222131794815825958170625000120402435497180880437144222847169932332329095761427182915433100141953668446171095388235241064430562223604027312918566965479007988502348286230016167508799625631598798448667857198689606981640308046235054738946320316308245039303077430608732087117514652036822008250289011613526319110996089259780869623008355855323074922604123516335867901536495427380979953114640738361344504672281364642021887699827878923598732786871180680307353390610360031961652112101906399990167312268684872596764603058762025394260701281290218656792921795059624338583850411156668113144159252900325228675770617184990447014213688518781670362961625523270100239829687060259369460060737089949340333999757751536908290083098324839030795610982055979880896134814930731174750676121443694672904106010261219382219268474191122502521265250260283280834474484273229858886557682486879086706250889574547664430875753760798447596406639026898493499064477671874818600087709438066898355629113748752946044134815095214277529441152863419437680078498641277657148984924790418702534243570793989141689683537149856402236832807857417974842124490373674896309019366627345256318724765702959825187283691585046882896301511479071647513047109682822732641746834214880749491613051636101272530627390437360468607551942659810095109186164438443481968208529045849643947164235992521644868438682827746477701246674108807177485229526745899582340459158708707030396464049376045977169016325082835284780116775065963716067814964348880425958953134427787870111545693670866208842410733237715299645862881950624317502289311590765202110131308208036393833039977342272515401766287996189104951141288116895831349633942363284962273785366813811413132985915802725238732982857919452213544103565346131539968918377160529006028119688512674762095615823548616879549069879129298577050305706173639221360046084965150359202398310442690217349609700406026200267760809989022898037038020851594813259784319968264539329930151084850470452911038509422206493648243810197450416316809354774164553243995524525274079479340164874312969452461222815451565234009304669806438572500017081483579190139013340775977268843271535106753657483057469405389648549251199266013468380486479527390259825260138566219697403112199562352117125346243263170801449953458351594935185149001416207788709738456224971945278088762250354144944188082802355171840176088433187024223340282975783411674426034892090198258650563940962234710414709112822468211083667431102323063813350562815279396611509978717093344168397748662557458669884471202445973800633965594186831237094296932353457147087615129568920723975065383483739714228770233690161443795101642388002756989260019232505724914027769248383869026847376163739389364447863204049878350680593961173246162654415666966352024819084747379639515879259536667046537549303956661625340012143150280503443364625182546044397234485152236013656129283434834385964103793119542889344400803614712216136607917184247393183910278003557808202767943202604446701315169646769648210646465616806398783780276840542227460415500786320839978639468195866499867109879895577254388424555774464060397767952269576062090281659157387874232474830273238548977644868979614224739129428296377328478934986215031770052669154787732175325502515727885155554511440791875486890071204402977942343616903297111124818941938121131568113882020385130565814092867577807590208386705779971410484781965362173382971886356942656460207836447513664627676042962337765834420434065699854351019805155603431355744036269341912032588263278059218514960050356483622580474456553750636564786765827894460093972736207861061207510653293939124708267880584183290810498723823094638890021782675176733951284851631217156164492494287947671632250634211885947587794287228320244916844060143630707927355164472930526885329132134251730827542616561967259715831219306944588258636027181265141065980657071179071729869400846651882291953212786347531828305180206637216671090089636393185137982839602452082466638279630993531260392698609657733669881257921099083833791581544906413353501673674218480313838044068448017093259770403093032977041046643373442861429504323973257256606519933295894659478374593956743984557478931915379389802232788901042323053752530917394609799692902708616610501693547127790564607868374704175904748207419561410855682726729534392447550919189667741480339014116743205187506615642708876687023231350880642811849439716249592955145747959754743470360479240356518306414961556278462627321550471908699468590767753665227800648096224218751297270688864355436392285271995702345656621936045584786771289802016134936538937343611071735942282009341602644381639903155790925475020471155268852050416807592839975051285074166430413075885201180601658985826842157199615512626116481003925199612656933491188948820485691782904311903403980204711588808663041101797697290257881970299737446597136213963828919994955508665162635523368435695439102396917188321600602739478190001801994875078664247339456950044811750467068442904318999133492273489613508096565990588863320900993199631275412036328909652797549047384966841356788028554530494288397639676209285385019638024864096897070842708101354582675689284017134716418930258042986468970241516937641697830045901199234158591388337511565955141094975125684304744171723795754420880902909994105584768833298419469358020256349631064263255288887005013648047533483593191547238355715037272669622654562671407007466606785789065229378474051562762200125889020687150743955807154552394388072014787210940798473980514192046896491144828980667681187368666301132949880432707234692500703334541271280594313469504717771016042238839755099236570120319045477274347310462824292074714995292591931667844422499122429647323920974747319827832638186936946098405214030423865133743444312155372497066029144799245059178389236094606802801030626141339336270301898191456347539828929892011548194819319149076514106831153856679395725936262519588502854711441603528391059462985319764197091110627783024435159738425747586651219285599669105831631258961519523964689551834512069815609977066807602925777925111207220445847205866087574511450056228635360525777142986745370058505260777395839691822580466302217557004254806116149603097513982981263429663450202728766610420015713439589510202267977138317011691033999723185192384744637249568733747709640756200082270932307075812104229510342021086804961941871673023506824329420668051215425480301866292467440728115989688997973845146513839924195286679915838757385161838334496239468108033257309954872705304276023098839775945612074785230076860301539711782005387400685492068791693544727939227663769901208861833565723809512603061811402466000898359756128240849205139713767384113817210920842821550698670175364863984132068642494197653756181562421907590971739022124386710736075027472989756183603818151018528393215401210040049799490268365510432741333760137779368260442081780313457208446658011156155625252923081685506402032916349947486577678761699229267785704732278889083576582755765716128503414043112719279013565232669742286416321290856231859676089396984707722636587850476328636345511571920467229468481969356490666466494689261017352615757458955738900138083552005505970612936939835974715754619883719666704623327789358865557781349538407679811244646958802004424709255383053008957108915065088636845941453201491359202014669355308938421262161952891342856730217228427505715378211403863496849463329799160045094211755083830159178583219714546309115490767568668248044725384196617441233385771689443568934769468474422098835658367675690974561172621007924506219577479216884280798746032786706804156468932711873490430366101511701267953111722942359438268061307161188728413210136094747097196844606689939503526080593207322545986429010759255306605118223161033981018300089616584702324438028384478208914697058898733326091041689674243916308306652097317746545993599165828283832250227521885552703885559409672134792420986228489357690619885098919607434525239993856618766130754706686397891105476337106443443152253106247181923934258442960242408876753160671121896200088171388848238605138990873133373659444233581171610240503157801416761213249744239607771737879797313661030832619087768766054836486511638033967659207617239252256024822727853198596602008854949125648817686091605214289139084172058738382992074271392890916635347162295240334970979433735195794268491675364741904633985623921908796046140612091887542201041869968503589409292622297294843362300641520713706915572618969489838265731557381144542138808434609064751783370667981332545149660834968723029270884344657409290699181269800931985078172054822534029228985877768875610322925726374924207878588895351838791316552597998965611252075934431467011620410702657100727215753297459192602937010043691889192771314779503448760667011875506658706097015076162340843339485753353124217303162745632599582984371519091384300254295255643489872384647460225345984622088921557004215251380932231202976613543890313659315389517903728016074674140583439668651025730674132745964978392649274745543181096683913392464549963502541873840581312328571579439873414969500619989814127831022369159124302043818688496296032409325795099398037311291040025012896452139559675051115992642948674072203407053175271847709511942202250241548779990129740626606154346284139521125930702133726787119987819126852895711841451344108418047742840655831282606159658419418106441209010237776783210419652327039993371566782909380850110863933152205417037124415430675709571777024965864658883486012199934979632315080631744766933817340914056172455573240164848425890063922822798442347403650030548935108989719755632362289795122662626603519559977599190424479573948545481498838495583732924588896872510385339144445957096478901676566126143247406277136006095781163981688374558326805309612406249321834824912860090774045289572631320429658211313267912213218007948948730609672903529206384992962272047882801972434580699990008306985673363611708170448040020909491465829608654278313512875442503594758904835861519320248181790563209214264567234064054222113099071796459298182285206121637062763461685418386459405909590149297493399365810739425621432843670715847604898713726553277851847275631047467212991435276633284299916989458914044023425860190510838384173189084318199311797885883232895875330333684090887409045673777815482380438049698724226747617693042209535091946179667395107521793772937382211804795054811963981149063687098781891026629113256357837261175891870123996600188917142976270716244399784306689129721399512079056965901047034838120026202782018484309525518597541472088767742144092464183884810751621351402103845860418142132064585561943308057348554718101887658933620867972559959781812400203871869039651778949094341506296804106549653923672189591051838578081281133322060960816472547024376861055716772686956983688385803895613714743156465943404127852922126155834442906596209416380028943123152716270739106085512006009076629363371944004387853947518181647460279894700254267520650359112263969131842893470657663189809085100140855194531253751809553900136891727560539786533131584704566975818304946473852974978679290831044579503180464137409456702200637050975477804834406490496313853932933826078956254140697488846875199043515019177031073934404364965195659558730926407481779148206083680437642069040725027447291239039078436686480623535238623012016223624367789293400975816945493675530221945402938910431703560523081853560781255183611631362972725154940213798992990951408029814247752182197432468049010371518135250583398555378626928774586446380088686705622136843144036368073263242506242285844165380036883727899606136186342529303299130952602882005669674103040753635545590481574079224926589765346609718680827046991553836162083543583529824765753564475281965270436166627123678745586675088552727282901450554359323446914461335988404683530586058812261742917476831384740866374494934421100746712575398225155427808758302245038888827376792444254607984513284116680272845864347850397522020012376546414656860368824240938351764313055832516257750160763413849976362455614701641236116996476203756638045921786498520109752556341113942981791290873646054104320238253084741372515743576380221761018273029902282159455368391667799238304620207733355504558094452859610357057699436591978915141031419927842700007885189682865446965017492932380909317201061032185222592784837927229155132644369052661222644405146249155094397512179430169187270534148688579738078176311093015912882633757907237257606317263794233318923347182887405966197659492641469225413377013462340437325255221989474955082222973474807817136945282527154822995011018602239299097547758508455786933919791231200681026037247766490613099435488508160698565977952223697458602550388954107608535494133800442969101467765389086043543330393372518465290933394667612874674673984451468913685862007303057116401308447440289269642322704771729030493597413957570260770435942821460429235508858772623231955343766407011566632799218566185654005008521161865465768594082275446427782309165405848398077949898132729112142071205777636410417482169201010897795924225664106153222470112680064721117090076343932876117017108384233146700638126110796288441173294711539041829532529885408026753505112069079502535577938813232230002264990717916831307611275362268227235596738147348812550224186568100905127708726128199185950840457053600676111537406783290521051702951965682844849499679441454245932395556282944981592378589288605887998418418527106067262241012853284933637845177027214401089739286664996430821509748270070589928376103401954023356278870854888610297373395986416775245002285687326334657471490167394239704194393490634590317669472434199901216520190491494318901658278559677809735218290048908512861952425942717961653529037610441224364936638523776342348426746086868271747538871236368450927726378844106110090396689875780390558928069953096244744037274835163004172954824713210044430414353679272489692051533972934855337422598526808305695341964220025424535151011881882591808104284194825873669649468256335326330968727359527255456680299031801963767338983868659185744722955482134449089886522184831271759889644771662999634193949248463350136802942074515069379472852804324725839005942518369438478255092244234052530063220995413934998056049413551692290455036519872935021389952954551670889470837881345184109398859607650957107045805505188366276444900378828010430469470727802593168178307655120178889040179982456294273962034665556744990738261635926561025552165951537299530824923443513632502181598682478626776230801151869073251478974610104120559663954562605045461532042027995946243614081104238743404952261280337662700336422426485450930735216765218387246861322297878923588943956322534969021371778481315914128924881620904704508638547185205404928543267365793445392383427748367756786101497067769100657456923655720728898153724772710379881820187387581093922188163930429405089615439834669649020399324232735380135620938455779867818434919922950451986357724375167837981970997041218461907847630982108400955297390599470661602418313478665826137003813675735436373682157644521303263273591421865808520654457277268710898984685896364454664508683964571617421369783210517717165722542521255643537544773714833792528517015313206302638038590876801954260063532188320019637944151147519175917072295728413468701553915548066286170227493639640619815252991319402178580342386216885869519353224385486339350877769218764523660627246576063371709834590208846838392252100786889763010446798800463492193824458389088883209356552387465515378580422636647232770093823771187485167510421209622585015361900063984842386731921652680635043237607225072642519653289740699634186136220761699453619106404726682367108996898958973426910891620783945404368396523190601670838929317636856155593227808166748202583018488459760938064102319618922832190121677265296328264600297908843477407273474581317874817765558039007929289725458492521317263701817315686864535527883466402856123603896986783760785580615100274388503372539156631344346626332393815329011659944531895274205418884475060887099246167684643070755792615983855036026569159878651101760302542345758680075516501219307287246503909694826199907527332533939706849130051697929148615868995169505084874377692804905234607558768122845095884553753879845839715336821972673413147829963802092998602774516731067156212669059496696400272967762491905855259175888173360750537730360335690286884720245902149713840226825415510572470860141568617045219774548536066153836073056421728007694032847507559558503891681291537346528648864899706375727661262365019646010871849461914950864850014757494444562529418876212054522458546724219040622679570331932023416539660755297906586099633585553865092289248950612063869933098528137954122521525661569181873126342627448892348945234291410488711667161616584881083745211571681304372422978344437389557981267275040395494124532326707241892684662613674093016063291753003908625113674632517985509217123711330682019141898096850004605026579696110469579468730453940154066487884563836345365139412260741910081633242767694020958354917887041651848741669905349513527839379396943091225031154244193911739257883266359327718104663186932347085472686684780056063285236768956667945095063456163743854182158871660390378863059043906177391224143083658476005276446352154138039645607163342969294364247732986925541560071950564926642892212367522277400083122619044667155031163415757996256404992038663442328630384155274893539675355115601176256968942529214574071794998317428262369498201527298544032987893255914086114332586969036408538131270516908381799683744137253355256344363678910865668914483822366804499363675944118113235916285771676972268899494272191019231915500098379101610561854335924471164270726749286410056795994555941427268279870912011187039543381220808243948500728825706327216157066073305611327513785052988224848400668112875869146207814452345545789030454609397654978691419280570925897926960091178384064141627865220947659754217225944839155909989265565724719497966415843646387428756909270181580916266051222009344506925888260586529380085385360299602971070508067932030863479826824303098994741348382877398890166334203917868461217571882384746302933489783879055516962807677768005067741640947665240215621977395237116090534283432336196285434018338695621147501320154438371756708574719881807425136263253833099692774832736051374076455628521066721289330701328648475734889730512892091120820138414751052081246518291762514666836592387200241110470840613042498091043427066131156346809760596685631643050399158141573553000586594109348382528596575813866875043378255529721397812732882003278310904627921231118037939833464992829810480105916666733655767756255836258431838034085742641380332617871430630007010492895741023052636999162065737798458096086651740858034822278475865409313752717583795920276590541740875121431150030490917664172068844483850695999401683365881247216827313844906519979449607814982885045638758211305738626318980648720746063586754061064771315399871813650990291927988452062524044066728471414453416147155034497709273874203089583202758428279827978000221281447006445620781471483334683867960662739305369487763545607647035980291376221347809986719518522700188683499546463481942821736744022871975417392001993127312731646604866454322311630882415872371548674347898698137029481324261273503860331155757947306816361187845998482773794068237788729082146169434332729189560633079383030085087256446836389470388979835723380816994280447154570844987394016720612815226602212114887184073212479770997382156035802523573502964922239485729581182198954766288802656069182068190031427185082401103898678602083516341858807785224248042022050051052712310059275396734486209529439150274913214452480262762581448777881204596468799674390489487449041679898414316235100456210266796311360797232424040361248568351018284428975014475415515027221885647814849398186387570609181490130919109687538346859890102474656894084897571980256487409352738493322565462414008450281129778880107570103170488730935732945614687007030158950482254166963003971937205888742668401783793668960780913310115845291583642251172381894601963243258891351490708343738014175172966243397020558793460644541131727650329380740544535383397819324180387866536176287480205668476114633371334445963488031999998614296140576186811570961620226891315215441301697592388586335851370767481565159311557213933927093036952484708762614092863445964691831476093332347798183662922173235402835235518564210744907188326569169669397931928790680959006615387138590069357589925903170588949511950577848666531156131301513826058252059677718801952002016692205132805704696969274398470643550156210148003258938334941935074895292599044651452765538305283681172978682598949773593863382095302347744341999602223193290685919045601324394917969744128646010923721104902016740319956003226730319675802262784456989858524886315506906545194717715432285125002583319145751870131882462161234332645552498578020950388854269806720764368227001475144417329002682131034860578898337953850763680885604328271713951533515148486632878263059817658993031153169784472923110454234569053330442525667103801224378389059623019962938898265136989563106068981164456062679343871414731196911568578386160165453826947621236570198126583147439965098728985418286650457364360089949986796420506290980045743218946253210831791431102743745940457304774426428773671850222311908898052637510138677124904566690104742761906264151998083576727315221254206462987228821320101230730453870543117096539828998636016428239317867156910809867798596740086304079375554378982879576449114782272236483752428857063338697476525633058610606044388445998331219801150995905320855179240075981163837843984880831644846128031070695507712231197265209164526060069614524393428049724572771291690320343959281597454025087547515915157467623010177888348823711087634152815934491601187373444387581529988485591167779629139622211804817259676201692988923349756221376597521506911050931196344556880793651474922680923768949308712601828050963915257844555670359271901326971092156802710031881260771895508471541432033920262511580221927359145155522090169772701689557851710240783118038258390214411138322586157605482868159583362585715404966817036757092744463643159785552362220654154933671995335510937910000880131336915516276791561439334778333995344217609677292445063411934462583385318660818079204740846276232775924790219230194645627618227286442755806157447273752898375075409037157102512713539861943042469637952942963965416940751694029370516130402701636228472455346689210821545902180220678739161020602281320708186282412385431112221035729332931867746445732747867763932857255675103071251194630955434204838415860088832495721715010438747185991067015253992140500227176023887792812201527139330644689625488052467072154130644842161420964990905177435666951089795031286704777684572958192808969825300105195247288595992155004007397022400092970405388091768946623399621949564215864029428092351188162404845768903271371305220369769856758162684149218109664728125536146003150383869403860750500675166763462483989767928067246105457508796385528907581751497306160110856957028481262257144115407458993446588975425498140492977896459653926454132721663170362972692448386198825208161133991107127049910103147917375333441184113055349837149338746146814995817139836797125813059314255029830654911591028575558440141574969512851119791812014110934774343167076630254168202410943526078597638362548070014839232622501800241958337976808479946373005518361481800504157797483126387019860807984774591276558353412165487046236820184228438627330365612005767122270152423954973870967162373121089998960745900250352039469400636585206108006321084696825322236448501558369144835972924291944490939382609434720563545425257841481898615263844895680868151684886309164324409017047003018498696479827138400544874443466851731703743694423712154996459960424847872607665845034095181732131685699645877606311282635361442719402610938083574739118887398794124859196421664776827554256882413658730928948097440121528275850240557541757040924795635542845017066061470241133353255839900000799649336881087530349971501644908325475849280554898298468205182048779659567656363609416545276559132588822841399083577404458061930690368777856238831621179999181937428687109008774851015863559694531824135341107135699453078251587057021128984633643480723959449617842204227231807581089133057897098299280173592956426494371299416133677628962867338567736399014809638572649506578647911140772276175242713877215248420560603926887055536228279520596419070494160506663025546772270867006620564959900968438337040163218121398167099060754288473326981058779921660147513179191238379728217607053682376918230380120356608755992374146458122559809269892017365425795109555103501330579854600620228877866448376426598223407600050497030955256686426365480822468452456387542535002659631845780501261983415130230114196008170767256067292014105685371664425635712655907006211257021341523934444950151601528071857982448692785028361005690029558257406343916974736716984551536174024166602321574335947631408683315959972749017652356373906144785509892840028393448723485135391612182695029454607258540658896457884068236102704102316497120314259740761159232184965421668138086316171756916459940154702439124791626111178979296996319787219800832982556530905171055730202745491149410486085981987887339904556554609173639767197071294529963047059262810935819845895130206830601720493156330357171757877336055325653359751558819900025406198049612781611022826231210878932136252861107369307586317952121844632385445772977845273942293438150607094500537817913798311990140174431564789792405044334178647930368153917078175475102110595998215044923123923256902245297593190503934961607730824743418086727625924828751644259589959368906944439854926473560694547818080043397061920744569059829781011837785726477227474643025323236684482727966344328526815840311087131910890766693353082971032346746023178055657829512803686253143609382544402497953817704391774050839835896921893221501705752373321129162089053313171943484631599169789754377732384229078891568081587557014729084037807166707802578848849058772260632873656988976854672593503049698855063168344906569866052903141341735770715698825687035317127369718893002908915031426587943630044519571158774437558714520601145625595689210121561994439944398038586659169090517659442967514934597466744295485225302908754543768695889940672365216706719003336802975510985816261640092214529240017258171146648726327088114822851752061453924708419719763143080042120065688359214307239717200777364682191093595600571101241303396299307540383647488492272220885564688389162408481037517909370209520201252878421870548215448921156112248629448023059223915104178040723740065165668607079946681465553736199190027017129081970466406872304103642187374117887510618437806523798940917196640964613086160593080261899708125544963498607800532860475073748640081933985870641464264173980914602624853426721126399794419038102845340328783220329404364574539667826710882242102961396298219031074309271494402653559785495134613871611267347501190959560210261210166969243493628771483955993023494297178365458628386927625922038957970262461989346635729726441215311579592772320468151437889515196464689394064881799335917065185115683961652695246388857093438600531332971792907882534239994567148702378835949764660310735681594194496034002973854224986088901826738781405982178278142577962010045995329107011372894108267905399901842348826495554906018146230843177179722015271178111629602866567020552285874793659371924345014224610675989304798323669349966378862735579734577487866469003821962313204204849011398214915215805853812880343045571987082985844116992118570633394890650279262400709431890165554401731629329806237026727801838864384293984169688372559216233363842382939030125812374928308561865321567264186625950663530447092769980880211346686260190528930295320944051467964576912769837036891154375411358310444253151958729718495383289908756914408471480210194100797933464711224726464346772817084182930987132047461575110934469455902588077628973896886494862364102345860734709034447274456115108779298270411960719465371811253135392433784820951280570068838325154651892718198621728495893063566617824889054718754532764734523069790580182020921602698871939344831227770383483062162820121435814461304269588271560089978216989228762054596377888754139803710731004912278413593826847952999182138912528430095806688170777139832773653443471307495920856398155887556659004296750252785483419432728141789281556247327407725582482861319291776850657955928437972588097538616756775443873368150546008930063883062419502766769263303322436479648650720414288150360124597771219265326496097457116173390059467350238194816859565964544393769623968243655166815118731549711648960133094320733783251195808106615984464116272633782827701468467858562686620157333004871599069424107722333791473532079994727162644602040965047245244934355124720131792698126313834313355006863733493755063803102182607869315188365420439823501523466185878786072136803324094543742884544510023049585481701821248035569196770986817204946821572536394921913227112139746702712467432030642537897272284425908387927977575481227919790923004284587376253668510181217768742833631553306703969763185103238725377633015551385508625801638284523626351860451115711260938779425985652401162527617354634876894873847815884060623924257334541833734620691596035899926356916149378583073429756986713892059069477049118479837691778502641859540062371202243722382917673359990159439090318975167323184505864377358028214420747171092693504264971125696521154189096268238046761947029573551398011535271847457750393803407814362353583205824118054195175799295590437762640551069845735856178128916055636023576877167016644600647373763228041906206418100494436118349360350720545086105269125360866013607173991080432299956482531757220171828126308449329842762033688577240088832366876724423456087504034075761760661119370552695749502193621087982979233869411471994238758032964748880611733353992459453713254435844592806612174344283486962049979917445713239344564548421176169771919537991768441624008344799973476386305240002339825850779362283099376667196029165562525096873399619772485281037819977011298508771460939794466932749855088241247151107672975307304357808830164496034289550111699718076850896385827327158792117797766121685679954279750354936328259962519266554344945190117481218791471970647055444425295543328104063656364211856472736110233961439784850404083933600894587815941456076089374810846835419764917177950830022057915865485136704921641086888556327303258204351315870362157788905558758464864682369498602095054118532609631071813510346441284856806939022164837246388705102228032838650636099415196351264269037034076212491208523874970377495227173135112059734947445357929498073595059837308312332432471851653644934718532830665194441256838910909101570018780376179732964648470518598403580173329029229787043378546838096529802109099993284858828248354176486674662674702278256991895588788757637921775501930834536017048646583146881239008918317457701574544389782242862035413159607392546444385356908064834449881965847084665624832691149182896480788525404637588809109993860034820049332429415714966754579742622232867114420585014272480732599784193524846389819727743430480504191350922406843724116420188152036822041060407322747429021746578194791333175645148924538866320074659508580138814238950736578531117065281106361895241912029980302694332395250118083525143713254634336877504743257271585122543807891929804458272674464900491467353105864649993013602236101628683785712373164620798620470897016738711383925314036843755020875285838514544918115207469057343769988982974779095159066850677431178861602144690022550753620357729705393508313840966773991030501463510559311929332555091469014291553314041535193798730031061744555883714152348498274788787076777842936467903065468333328667805102822899544376138575786567222899193600722041255300218162982179774416667536216364972307542984731169910658200909309924511224960793408052642607787185518006307125934859645059546285165649755984098791214977740380838769840182584638647273010890582423409140426977866263743894570453401437700028836382751367920100643955364607273333438525520971475246115608394463557706517310199619239922379318978088951161984312763769424013825864483328780159602326815054086034798710312230050650336942135678065194071442170947335130697649319178236798382018310488967016354075672628077052760429021744869052741273755583008006980216924329944191981809345605938658989588261987597674356987728582247539059137767372217606275611358148823272270555202371230174882507001995936656304942065064996289345863061657002707023758275191606120725018972228764935644623604773961680357978620016606170159645181097573337372319388375107183715783432866506052883360689365568492194590280423177642204580526017245891322638368495331101679588099307175184278756315754217166758415762733075062977219912340852053884245979256525445965287355239483064715801278127360388268006334788724224107000201857827044527664906931395256559701640301889671666359324462173344155911448005044281201413969420271358807477076731359541671152640160703600117937172878132672180120524443789539261855572347151406962906433940258535961312734427778998228432388383092540912903469559637330442493807362453230886055484727977507012333976035750786966094152735359641413478934480834092315387619213335065840344617235507013039063651867322980229438463762932838512034000742451923877254260857377096740971445302947651497220616696105632664785507965856502672495096181015716387239845306879484318568141438859928285872832937062357131129463661529546623488836993258776599382364708631870251203760270512496952859608756029391385134759250844075170342015694803764691178442476282047727427993971433590173415949720915671835641711038383612327863942996138161588925182042181581474946703373864946999625276024521051384354045741192415981614282593137669786447679992410111918589184891763425617826310297221010469776245919827712328965702374808587647313392239627032007835948665469704737142981631384511215134017104762261286241040835026814498421182497462791575227824168573261483558760238222115715301157682620498127636799108699093609806238361107035932316480787299925879972539168046645257927192843813533234233334089111723493755164090596164342137964795623728473145263814699511184600205921214362843709745270483999190165621722358946748560583949171057194210776370235877484159283239299995668559923228159917045061574524913285505488680363842364381596223126093553544708229917177292306661033433202052529831638361378696322985258328320217383824198404939617713020670448549964188608673439494372558533351232179146673675239846068335063265212341005264587078754996009100286975919082052499861402457642008329377109675607597820235394603352818558915470289391493707465203737714429156935896406214366352161158921055733919918806379681289629966871179642362673785158507142606614199431116981715538419777191885490139846834538027949704912632541842793466328691861257986233231658359972955668613494949100878161229238253329182410131576238726391445124015955447491880856100966165960458309136925134683046945374162361473586505290809700469412053723449550844088023134021608192889467377474292109093441438106420348476451066013536332742109474131086575016020411719041108717254678732216315665094621293656482852821233540063419663259339097966538465085135029615524131240873132410329400057745684501693407871647372466285841808346006810439380395414380067575189886886680277830683722101151396993604962883886836680375832864214906602127965519870081181297003516949367406187059753405002241936558459032444401329287698949191056909364662562471896756952876597536053709303855775293960967265904766352358915886885573871506372971841385834118833376094443363367949381230519250093861024733991978900097622207116808843118197630250950180872253312789962722450612066153947685070733281918949791273837685293098808755215139765293959666818159461486304718651697212305743914607008152139212025624576090106772048346234498568990765354640996786471143601514940643042127878109532682306387515025255139019730339542681241479710579356853497284290810876527587181336451527078413347507398420923600721192484210824835644512181730197532680488112174876610774264538370878645942081630232335213082073162915109406449647702113188870174767081727104565219778065728622655604117757112269695355256913852976073787465985538132497812626716553854156942328930028735245543223352207469732761113046299383079176090301960770607484577495634977714971953743581503378073484947783017344208166768026875699062494571837664658646140074916738120018507198398291991311361919758602928603219175250710030715638371551263362611903729665539370455974792916359984032179693207103461082782945764844490181485740532019935411469488300643278504992063899025521690672687626564375760336058839671166507065935391124080322172654489137208762175471767149202457862371414312739741512418519218212983926331517145197612414458358130641897127988132742472255355006326354721312632420155531152069006393980101803685125129563741358441318081101625483805534466017204705677220100485865891138906560042820224794166266740404706663398332923056161534583850975120741949855596831441600237117814751478168544956638885473853877211803980115450243081168866708605253303959565933219257517380336126574060081452434021555479060267840032849662183592797777495022696347107433684163839492763684629936306895059390921046248697045350933250057598913959888503502818651066467055427634287345464081149505379266572073009361350034824648717858079156341536989236244121081813512360441942312512203167698615942720035432703722374370106051718840178194562003067766380242171608107237205194847517718544711819897599733533886667765948860203839298757571093063358320402690819171584614217081665534528377305847683606837206646466939898930199724085904089623928811595639621398861111323299853020226929111962815781666742630939512754058672080454422206289497437585162877946720181567271880087489259739955192790673508497127760375137355266533978369881255263648779333584447758371779837979625105378083149908659880530279008572262483705691799780781453540251088198759689755012084524328805669841794169805442724490075478655299094462248261084395753640219587395756023627270964711820139041569864294341551785497949202968088983053822677095640843801158308361467411332431986852615118202564100786470389545074114066389266640693588222497911936254999425621430847381992421084942455107630906859700976751350195442243822980740464893405660498323382155797392627151507164600912547643664736148741439319209861919994453578111135530241595985757415555119666939663999323576321127315885172613540860494600392225974839227328975849746681581542144135615239325201907930028901688566716381504468373291641569320006079603870310788060608519775218554455786848170828184086515502317228183583787349466489855604151016558709210013859284234697767568020221731988770376346734301826664885116387527817504989913459910715060230479204158403468687079195006698271127933506963406604501408855472440274486523106105057281562189125915321124765791199640764870355229209490844267900549354234735544812833491997890561648981015405850520718128418401213479708622816233798311328496180015466490664959920663002213691369899564688597688451097932007387086498188538799694058223567786511415629262865169314727414565392185453696156401246885419687975346330424102532089319279526355995390537978886618713777196494253639657035885950710113525129840074593488400737117785074785996259630200166329318123713269379606737473137989945649651590821715420331673586870952510830789306744686864016240237272408268765816467543225681854026289783636314702699987219264895941252931238204030692453990987832742634900702504726322642940494896234898016576452243734553783739735408955950428830816089143465970550132692253513768407171624129005408313109680585569984521045241434570996147993099362565063820084598524479870343649736580442067068015571113954769894264742594839141968898246097671089127850409013270545150360330771456023839860995486727449131137088634357906297255736817018663895141231406782557062792940251818781429784904899682440251127831112513357144119621782844532381428506552747441795575865033070385198196755578807972086628018168133676634655682390744052689407409298134179805736750355949600555283868450608412839793409300467346337038635429706875891314451386459116131371970957026175710362922512895225253973669552098423393062885182380530972049996939889793644802299519521167001375218056051136804333732112401046168534255355519983218015928061960789483924840480860791731413896002486806290614169940994640263601789505512484827905018776332320428949409753443192143206067930000989573806918193387071843438883317338326223405238254993834003010658244434990270062859722612516947340673150019033600833210479603458601756167023376842860364139298393014299717051900587013160890737038166869226359053084112544199720254104379579939432671448219107759418573657994476714226675670806023076738044023094207025430119683957349261422905775446686238097156560751907918996702687553449900930239952421645942639157772822158953393870288377470009376013275251030259465570757313470703273074133053027710971784418762558738912795953045697787145433511786776440571419085040538119372922029451777976205435079693460203591757180285585794968395245988980381850297510153958116193507524005640845771356244497034348832061842925777142302665798660244583906529946306926524556502353855342892130149863522647159962531473963021838120901351458116514611289808481171897941122642553992570580535190520191429578824035942436563839104237424867974284607590196577703297817974461735860802519098989853311063963752293887040127538386442700410813399671608734265422335887709282770705799692867552607576281548624362626268162997704665729933277074320162290045433425526487928384353943687239081648651542303033729156229007190910260304481084810605955623603699335407259823062456110180129634318410203952717272906036967583338756256177770154240444676473586898397772367965051968796773361077302625877363914821862677050470649533055650735783259138950652755951735222523767536427738440052156728183804797113120422632101001988806076475004174098910749144736096277102946434760503939210212545312618502753517842289942733397950527224476760128833276390091174640554203484871029031276119784887477795383941548737716853741971803240885294571219060294134680907497556342545263398663434331920517931715311471141808800870944341869597606061255920976936219646163682683585768784488888528401907930529110614855385223289614678036194070000096781708305434004183411564598405041619064337829879819996527264713729040916029071163205361110314282094073576538571960194004810571503827369285585650701019753727888678945173247061049053169089133881146984125477095848113897210888629440249809142543410182780000747733727735665523360731775621543459133563949284061727717808972815906025734824492985380262304724739662043450382687698009715524082279569057030719985701326254400589785061990915255744206380231388995381310480049916648472118872652457047996507358077293992030218230597571734623321336500389304306496410103116948304960603772867135801160568939329594102534472646948339889578645639623165572124308558275678714127740941662563513120892863249773760439898673618482533177689400044087593457225326023349255952160105759786890360840344896530143176190482813948184083828486938163861067497027837557666960108740599660775089532095445236102782815677029791609164048327414564367336775919607131171307207849407711115466605725403280328246947871295021087037434061606708798839231449862152986874566741355596505248066385296888759154175564878376182581008001841290033098886657496104854309411971495495361103007566938610404213034695360198515604224280370407627939209717925060216755005571382470224284614018987862638512883991603688502319829523535808097870645695189719120927475863090463152815827649449579141151935106025984734436091567916050396717240620542359572545605089954152074890869243736632352839983918731427313259806250842680018594345117074385427455532694182436032105997654364711561975005561876493092943354705067875353416727868918831549449728018308164363131219032150744660038249042606022925454986564896674419033546846241646479013977445550773179094495949365315982080012043419344982852892336241713323417479015413540175553801994562505319919093184127699330954658719461676420674519858953592084982056597427650457198916070229073840129956010849562277970019088286138953992467866503782003702684955004997891753949390511221144782990810229695747108117548694252430005626382966086049816222907030004499836166112023053194240605931442819095885915370038311942853260942854029213407848412138854682767051051616204003824296999575007395246921555098974606345112203540762900791742682088987362127704180169793713291297912031142433191814417878398632492086782032992543657736764405869854363671460380917061277638997263491218001055633781443295045270259728790891406387951562734132765051782673613758530501789098816163352386355945358916171405833878891094446954852114837261501717956926171329544108331050744017909763390782990483248195537176048046132117309261331335767982385067086398701495624043607213958985779956489491571185901357735396182890581229519390825416383334433944939606348726706752457690368778362494718914434290260605865972928433238246891426672042564408519023330249684834633885994097946008959638455250107469350347692419239565121295566668323004919140586275401960506043300785418212030033789148564234514219872344332214798401117185938915661396571391857173874787550950893837443545445523903334513022999012189569465668655491907073252247978343885066241727182621453097501558679477968201898550751749453980709170055000246973400483304178469823804319371510055123801017100288160090589649110917852450864315262776325605062921730232557627787765919544947793579953272150474461964550656603831834405096427015923221496266878569361260043683287278915474205563919926969461834055360624181320487755391730291506539742514803862990196658232935889845021153035913048151696420962410446521512196567398175912486384978475735020677895788159470462608393809437814446558647673590316716841163855094856617209583260178825088307144918796272857578484780634046753738726176880795846670305541992468337428871293600335641744205159860862062574755286771452196921224798327559899690511826908815295676006194902104125628851324358499823464516491000881163410090776691526711188464609359058726660464723805451197500184376671065997009734529863856371089897339159600988564787095291622146463025445294010099791990683150890927436527259519956131334180969440564230896654689533994651030355846556153004562624158473355553368745377332207862610667005154737286660572981981988214960584245303216235361067622248267865298559284817579605980559224538364790606202610059915468539897760921031640192987646038213712775978250057500016367528286105900280393312474872109008600654208747228696999697584249805482900464024594527473120987128496330985996137199330667443893818382643556550548087419887491739328363127311567967121319674949250612263664934484734401517598555162107635079314096482418716275147397162726742983365308165332243249870574849076732703342968539184110176005058947812886324985124420453100238097011412451629511379959314325943743394433360739755085080552224835669461787521799713769613882655383415441397703708880986849306934280262150836223083538572909935234273375093420537324563225322741384759985311081244215740647884941823328083907541074727096643022236844895966213145821782560061871652413792173599753616639794317276745676135783232513659495321007814585277580546639477048098385563780672898939478437612459876047565695888115014342153585736485208969757196617976512705499442980157323718068811875612807673898960813137208932671291140351448392472852497436172780432793771225368159466688325710685737074201477242329928763810249095212088266298460757473909018365613729439174389796619340274682650170186240401947853712401923581817098572949677738231727462315922667898976665380544314808900304009075700544739311259644274951997664168408285961199662007214785776743539064888435327916046388935820119652528542169414145520597768300628929530913411779165216658742500126652156920156458233081365629605058656645297678781882036726683190624357117927455219443798966703934255225076147554100232923267218506762478992729554070119809807260777245732116747011047278148359668302524568024026487606034971936161595424924291259496425194295608703989779872602130964664888190676567297445036835965907945762291880691195675453006340733993917365798792860829916529169430671142404635763654654641973088074375465242665588515873883390222280218140882284552539754917223969669875301434383855637208726514138015452551117968040401157965574675995620571446859336125369439797439919035282469771672607571518298229872448191639172321388105951620805788206628521913609874005352042118059423170314207735916264210251513044940259945455553164757042453613985346786052572248519923317951632951689842695019277107934880530048839352629479749729135024326181035844619998318454531747929841671360006459330708001705650203783783565933761162933774278425079444215740933545913355494205289116445890656108021207305267591462261879457076400438482738817311169167572943692394766855253644507991100684132367658181616998359062424513342768430934730340402750963502061476427000660589725996241323811320406638988221919144357214392847403140318939957023622360796874273349368396980720639165841952453496905576530492696713235587532462647157322136867707249123847260347027091487383536511183478099992375888248280373174632580916077603585806081662575648728141586974972525206508458475799799298451359480797013331743296013375668298954642507055082332532539895444731780969565570536699604517075634270806328168352729612403565317500533212568432365150078756409548674523557185821810454976929562960368148856249720541399068888385131262531144739244023134549901364782436455973271665063362614691817492359189214601075745170818915935420535250405195082615958631373439042505674867237655479606734939303390011165840020200089731695256632364823716658614366308932810204681610671447458612345006963588419411506451656927237978891760848544941073590008355905607431446477013732427501801136835271479764443977625396168570018775036757508916000340673838644354606077593845371429733886304273559056860928190794465155448784778828240741171417169802995653657583552352644235490032381977871665817442310493670389287989823188611823397867937068097612476684436174187016457634786835579306820048010411117954174445573738536008898579980611592957988194751278715823601040891557554876600387844051676971303068116658644614294978044641230544363735522022663154780591352409677486471875695919766894619408932132491860659405270717793181221608035061868421414999849031975295273306030187077538867111167373826227048055059383740062072438504206433892933462696545175112474731895111899474215510916547181504492168450171528006230400175392655027580219720737678834862586781419981853316136052786919563917215926416409535058934301866765713469106809512118677684545387552523219400768203367907154506984557564783555219418317271298809173877017864174944619609670859865724847281914013340927678037666697522301622859724715835909962957916774372697022884582135568252520115221648872210799321694220876237338276903190719942297961621999259676357445595233023638804294915268481461601037466126270301708511555883125711681902569293252156431575490744807059959106828371604963552454486018122880062065920910253997936868299604607262508334332766277609592267166770518186854855332768033889593311417738691445655211000317841781002430210328551285444587489336973602987450729746056547815250898665723643704391781675614975409446330054118601048213039475503152778402298902024892233619669391986501557246790081390194098815576248259714490716954379993152659872893503251926438632785694292371025143509744320329418730304976280542294130207325133413003419558515355697859507176806893135417103904129172441211086622051075321357737007319051118052101331975595440589705634776380525512093354594825410187221177905495969133470013965747787660424662249843161793725959004975995622647200864029957483441904606369339546892488070256956058834429756196823964843942379740592610206817304091018365234962638248776701918739271225346342891317536684388456070883221873904921662213855255353024673027659397363532645232751405040813376305204877832452584775862508322517231913974451225635073204790725732592859452454947895316374170137570206754846664876313387981993468131606772169562410098954690326646414537987299518891361389354031832534121225218926037074338528555421410983598895072279433153574349691616620896578599456108379954566121145800041778873535332204474583136583959889652105835205295765158797235619374137005608379297339604862813001684980764290102345444665566951314111122948145323270990668941876478082710924083844295665566258671685250256894130042612886227887496562356772681706251204640753003397278115096531118961683566343159484195212701542931761314877336125461190309905055603818205433935297058905955952728500282645499229376282447076932343205243228087123330057263286377308934263839464580817479939537261998950869373526482120204173879978249350523462301524930334167334844355503518704867898976841010018121148248186305955768563356328486500395269465904922269937114201263915042040146428807592248730694273574098428077884562512358549808935484086372064818121169901413620294589901213719722164644211318612733439061347378666015447252292846120254981547766497976671989500117499390608389869979317135670926590996950972895163339159073415697305195371444775458102802898365778183592507965802885358784533354770319264637605209699340619088376465072514279524107298871689456282946866816856954497090472647846109637177812799233527107827470246616260099982996622614193289058377708607437323376308105859960370245945757215934181508863617828100112261291398072498099660013010282311207285853531150140811859258457812304034333747574081574158848341800626170230043447709237109944791383527217650714853010247526632472321170654210887794540928960884523054553520439803125695433736481047105459261778424081755396364643411916722076104637732248628006405554311232463334084100511659037728302472350813861505977120474013829127914658787645492986128805906253465332446776872991601332759474012007696428371120932311051876302967505381170352550903871984749633902979105639052355168464232524292722053599471283540603415402128713752369050623556537584966771279375247607293838057105163998361987157036971293588460990508257470028205551453215768702508252897443994309956083947783866934492787475899165306009939978013793084824611711079163638464868442291798587276741417284872414511034281980217120033197346706652381701185756021872192168207506646477164393045672989143095541694281177391984184981842776013442924207374619701339482687580961770831478987326520474706086973327093995585303106816387000479062662385691400131848240305709170166037127149251475866558443441465607745539501291365877652569005105929071938865935268982831242272441285496400913884587121125741902377079196072800653525449472206252871754261732404104194191602294884936232228870278371376565584628478974855734334777984997435760456464628602061843257132068367860280347563638539131755985638169282301388711751343170275162041655779143336258249934483027800525414662267077169029277647632893900928316267025405857896396042687344707550010216052377869836123001403329384050642350091271985121713951780991506362652683578178925934005215895434535212340404335159964574033397006180538444679252160231754711232425417856217243286451765243774889130439934239402387205770383028975056108676694323204073004296956672826860142853789959561707476925340538824276907209658895125463859825007612623656579213773222611694774967648500361821712224920290135765053234118959644842681278574728887717299205544765264304461673717356448746324869079144856795789032270150007349932351944522816106595751859877166130751636532240785189465546540005751742104998172199406174968977082862884862884754841476360178639170439450772029655934806697597628448073957367840853917819816129370717405818174553618000635728132967119534333857997482938062978904102509960023731221713532450163217486673860342224296702469579816184903217849071949529029261689248094721751994498107695346520179692782029670127600289345966773311313037621204254578538940355227378793655670615340700075694629346238977085964168811313343675934742506622666525601539712031434039726675309949416506875873980807146240070404838179286334343533952366165067046619080966131818859410015065398628285113071156035603856377376330571116076667247594780254453679400462699149017725048985789793609883053388220015536028839389393325497707119206773532905580425819658685333169446552608891121185345110167229456641485433071618769536734703603783165550821349643336217423376045776940273380190606951804848283218747371467749425062385905284867449689916587395008049730418466261244221839188429570295461246117457977880608083335179271467846376852850590860963813734239448079635866443039633559644915163620635279111148196328622945625080317935477049872732539305259786211619770161647096323455114252551534632031785518113086781264421378815556608332943208662821133978003791504286653952906910547319729647400207042989423186682215054002891834220605033011515828313920601421614249659151194930653320088294453749336677252064330865608979642345097163002175238374273515587604959588090624225484720734809157465886635758548684416735327111644441173502147369359560906026323527545919113209113630799065529009182977386248600931142010444233980238525659823169130816174603291606676743185081808283177954701336942262902038686532868666255452269008434231734729862352824304260297943079705114820166063902332149748778682707348558198607919412749070075130222607954576141487662854726927969575274799802652273347389549794632167315188215281160178443564602127689642584076502181433704312866233620877280888587501850439323173999750577995534977294472295126714076205316580840757998759172231997812973294206415994724018167031522841488765057969479435524462890317208941391800991879270542957493282230674321413737776498095975647109714062406186024058694320670790333777702069250747446047820468273350574736470791145789914978233914088506950686388978845023514527538159920359070984891094385539123538129464914061266303490130286280210724116587899088677257302556727070163603270223575769203207394501799499894580847417212043928691131618239411858848464771730999678871594831795043183567469766501690691925889355256053157671722595180696494452999998863191502199123014471918802238678730313468708148816829816842324744512104320734836288867752128970408243306633473294537853767173801972378054161049622557025915217985293182035416173393703192084486627743566446548363308691411809769898136046894896728877326039515821251217572343982685122427571400262861700326447452527549988937527180397897243533178680627128594089392368703340326578109326310271434257523319829946492852612833834624975285499747670251376369364938039340137219006095284604399325573159546759307515668988089820045628107745277173241920792137448012870242959223516093439795922201056378007947257673336149372494471950831188935249817036317893871232109903811276278990536075879684298238169943410426187461679219669431378431939677179984805042548927801460007095744514350713353433941482523326056020340875138083318814441222244117390253530115358620581098496702518619669142598241159850506548142619404505241703504408189463559637485215047977514427689679598253668778938061118232714618930220307280840725037379023984758558062913608112117585515967942146527235363687824646872649973431358548829908549003140628073768418478576778566009823270211625435156081741616744696399513051889955837876654871382849235366749666073534553376755609781543609033711430112530683408519551625112662798287694111512379043025283308860094806408928657900138966640641182334023394027249181360339456155008971226163695325295280744266371691259782269207177194540076124433415817528503774114018938089545818929882804161380884819749922947035431984462758474030792408673065226952352277195860923928370948893942280365954411961722759533288490951729600112295770709271032200156269508526270778526441882621225368880869479468660710570502615725233301986694148847638681224061286657916220942340545947519981163690546979054515400119267287384285829508827045205074848177397131396257771887480318924651130047725932242541835025791258989809691752174524101023357920228533613401170685009042707143264605243000999451963668311623417227030716091185675433018726655928527950747203120125687067682924922381422771530431765091839503288837954578053122996649555904682851542246351123985120782189143520816964616586783759213833850222990736577208417272712224686125172671227407362441335296399988136926638668935127506131596688352468797866615190430888950989171241204733477331301441491073485237780515856458772117013010274645520701561745747919946548161688490187009512037640564021598858522784981087174287983883126524765478114739075024558203262078071161703329846770580852254842841312775777893827068523197423377199881023399042826331164489946124132893811666032113604986899830327989822125647050740066677888238377696631288700620342657666185279350691723137730222948795092630774855147992766866677470830295307608016661908735621409397596987760796389669379220423599226418740985859361148861534972992196544386707968111832544235290307118679736964241874390077263633751328533889354662792656288683433042185307100749108269293722854417427551184083893764888905874880051997925878085346465620417832221449219765901560530315609420333716066266072136285327908811576715374285720218906799819903629336473152299437073875808052569701608782646589551123288658447621847776537475791431700042466854605866249208661178370695520647417582225792651643764149840511800681702820828250919789825646580456441008209696345096153730671757549985143267765120949362929563410627981264253462337377264167361033036041144755331554311364100677049262612785649442274262000564489551229216288916473049691640427562934497665955538364182127031402709896238904666954394436624582809538002180488104352145477770477909602802658379451477502407422820455415650744649389382560894272898256329274807406090419800372543545719201429330097167423211278526323092825853156385805097537180919244043136570376569793332676703775806361449999609415705489630903577154155033526831962114034430789968776631035696728803585684792493439400806760842951663398764885213978211369244793831524433473130617399971724640395649005024582680637820031020704314084081419893622415356885562625551924196715464202338082859997290609058606935224428937791363478263771746048956152951374731800841621555959439532383331569803390707118604532766459055333475151826039689834315282589258846524741738763832325145326584177628471488479078236383423606356129407557724228184221226340562151112514087665624375535324090845942503041577101426402874848220248247793905272957953693274436800225705790151079380300600778696462111456584167144151785844901891487151631736900192946345300941546868050330961423141117284024423989377875412455369048771859361550783541193366567835370404796717080940490747482962528750838149028688889026796213374790734295066161171698508656336277573523411152983320596755945598882940394196801876561320291106753697190533866075279077112707777605655783436951491576158602529654818870121724187583599841379455609628868711027990464361057661462620886213392912206601035973155412173561128090910769104663540265531298547344551378683903611479545418145563883680612341989481081175339563216391798773857590582990362196162376620669278775203015568865556536965191327444527088525120320808739991798815899459628373265067309407559656065728337244146986672790010016051079952393219060149742175838715960093195180163020338589207551455717059636835844814267684985002734677549571430636992774435242168115565401338651992303031591040974389236270164647910102124188283558408339954001084638011616215040585724489293347951506114428923644673008350968606757971900116823224411037666639285976397724467950430214451756303221474643754673289929827045906268925411901953393145644128357976954743915402897119321117055901095354724248661414522661836401568947720789089948831777011683864178101770980818360221839486375592179540136693117117928980617597384357335429992793581245167775825624965312064187423828113436982155623547716724000283036899037350204398966627163795441739562309550136273453964542404742684607058420808845372314881925126549327019801391048184436233584060917816502897851169934553325090303282031934932977029879460171938663709224890671034649507417629787631280016181991238570473683716844031227280208075490268997051553590365310034641066091606232624608773808827834896542589712820634580480281222097675823028403974041227383512522100557947847782495338602353859386955448731177567478554718598222730384429124792944890144036633414145066168807756165160889042573506861653746181296055919482260950788715410322856115726639398372242935058691699028610699087864913287744600477823758421571571693230250492188626034356859250451565230258667367498939024819848688982440457103291889965680763802661507583428430697787221037040763963405697173002854640409276411105071129590847351058423354694492033202814080361683768492962674438359439883165442292898217876330092283426263828482849788692580207292781225580996614848206868320487766760837108585198096090826222125249075747331372629500578001901105571730272257785189840259037781261834396966127642596999835324742009717822810801081886577208007502854623805284000022131770186423728983436777482707210277251218081448971338947915188206786361449814570828834980731012694816946425421874453488230229755562190757493074791504528169533236560412170867404143205978209147531262390519713245010631725313165520145255773340892538981923477044934923497889848746374017629308739378650243914709963625673201175902507673280912123690137610263532225982032527434688620779478130564213102023740302123444587954853547995235017750799887879201084605826210942285349545558364537695529727143350837524799990588658137618967985198591918396226548603720123303554166020085063516899360842937761471391269357059309458513717753973881938466514626777132517214157940420704875383964311981091033662240135655367818478196821989814087253511228874389375730839741939481626820307132860727507779335673526059914184982500587201255640758903053474237324955457599035375369169300469795812846186069501734130388964149331530679907552487244522227563928467457558406640884005808479305033085269310087276841010098571338224256832511843383940210000679534253819386558187897377863779662225750941324116749615012038311375612471502423543579913809795994814115920892372990337706171004073594554054781999087634195023046767582719800515248187963846961601906755170852609066640862721005422527906957983617171343160055422902818362619138417074608844348120312422051804707138783434065811222197596427611528919748871969481481289979526773569235609648937188816799685694949324998666827084059780384880635438852330479952859556015941753735676571525776943201225224231209617475380256798348923970054927988515194634070366938332680677204124192437392227023750720336693934653432334753217017949706665988649143225507199181784775305267952657973070542345148310676549294289999721862638395268706728028824858301724160580861563494557452688723405408737252201391068069082890218814075175384434273012980660111037009163501541397647329682086056968484612514011106049759848738709690466453027324348035892461426192751609580786127408203934412545078312688422487102452428484365102367451653639245154628284400492246453858823780659943800039305757497563594787662308063238423368755568309805508013096557735316706157289656549748668703954035663102275874675562611091217954048344054960191424422947781828910213364980999382558294190418064083063211071887118896777701755065319626876377870298177944159744145240523810840485086163951402976611548754290683240236277037920410803151275051496004910602432049275923985098065024968958218140063018926070855324961007517282700865495748735378124884650800765526802471033134677149194000034710001494518888165882874792267499973675523645972660590982004247767499192371713828751097961233425237373710063789624618633809800675704757325007518525546416779700223618234113152922805688628115098468375851218527071708983860751396460765016347245227756642182168673047392563540806171054357390088279262645567321892252085952136678659866628499393536553780581409570499970284840526020108862545183689050179488408382168869436426049993245171674602884010503469072107965452013877037785688962398105558440251372737470150656692378237076411919136094820932327236595467745799773657869982127249795341044148549095405034799592487336644367317495328165018318521269274536725269717590992489410283990412087070746896936538268746861183163214879325944889651841025247351189211564890154786088174725775863321926169238950572590520353220991939091218185694858037161965218820707019300909073478411589344920955765439333475836088179624693056457540333945609749296782369078855248437790734699740429616572820319043748852035878314128158423119842108866345027363577934251781462863368578288806178347851663523155926314672199595056412229740422636664053482976476208976515504414681923454499527565142004865297806597965070729235919698968521217496596080793351059662917271573493554480357821161986374293832154123286700659062463602000989925966459905885805537446610813728593693206428045269261807722689659104861876153941080837070675424109654163935155058255381571086944009585946178216946992777130108772914126690936642819310993216650662179095885937371487061719648767232240198666650914752327223278473613550413869562855189621115002799760056052898991064793573329757473584213572387636569648337943884013189250513604565287523364103407354787582900450706900908070930318727253784641206652758623719606018569927927885342062456120149791873770450659589234899000085811086576323065567324554119117168259696471269566372828618267762242211005613442507407556664929981483504069458107562455886689298951425598712154009720560785437783877255777002439716073524927834900166763595580797579264573474429183489835020348373810807947424359294280837036839027415788831419625107296613248322636815470800542475306107279130359518996194906181276652464417712332373710692680088766978634140061790117400524192950047453745731062375520024662391656509858456391071189352562703638452890731709686153533546471568777864235189491646442974754493456328862825642747097615809389365683004355385189053589763906840246843623940329615616658809476721254937857990240689317549214604246952411188658426235005698054170625589780318455010001141061161224517372536060780092720292952098943079842695103818227485732986430297500689175293132435475391663056576129997678550681122071731984374912373737860448405863079115446472729853159262029416229961471409534290463148680696315644428897355677148093818490832686150824604452751772661661629013218376558454083750656077732475987955948585631000973584806264650205552271825673776524715950612977962033971884337775956046524565229679583919473657492155906008036211553884637658842287231367292500033832468368366231009115312532307139568587226807137716594829259574307248236804896393620925832283821740411088584722668803914710501485085384115693689662915037844310720951862381957042211924498556090609106017576163594602140840604930894428892429349134617949030211569989261436881538785624314825865498745076808416615360200052540479193646406191047158230066979607934093472198642063613979583098888507843975198157396764856673300579853335875101003279104987079476620838685395776767077524566564913342301049937490943210639268863810599573704850667210519526475882524459082872238490143137572182718577303816701644605466931047133167188528419378887111042449400306925860884162360570450266122492315547481751911280430761594010826320110730321265728730839591795009088445144751840300624348046200559624199098375870730395247225064909572799947435645126351451006962866827573756555128660268340071110692711946182250756486739013747557711072968610798073232543825290397803669911386535495956633937251864420032379788093234180957762331852359890882725474417243928325609972303094106066688351188439283924811810577067591063763115179451802452838517201550302557094384218370043245714334607785132250580949380400191992587533697453312408429596294204745363441639669999512911199811747087589525988211547136550492861791627631880556485259542420626986741847034780583912872783528767784773216344857013093185833325728717911631554670512211443915562348190862020523844311049549568590753567152880950565165423603989347205801492232468192181721786818132530240260205670797352202932346418892509191074420806913309760172711114083536026318963423479353177986821046778285701215970142665898400057591575519813953518340625992673324914224832241778903712281268031428745991222876791381191658875413893115209489975633110863539860435793217835049500392009016459609334672975927180274918957201032340922184298295509982071372411066668064203548020154598956691139736049009389323763965261661361647323545147955980670466350702548561760215732265603557898280720659494511375321627837023446025540570198126561497920964045237685807957106348835893359201934408304027163216982572790149326603196989053510561611867238988242478813579689536606092390357631734017577760647845808861338479567943492709609328015985065277836624061599731447292230758886546806507206330270904011899092497290903570621306603205016025357705229886886747730499252856286376885546453402062555515969471934307005967604661883745460044203283854780787996123351581574798266129904393217056442163635256699522213114035034560053729611523321392920262771142708230958551791507322183249923302517395320911385231507634905568021250414379823079256845497562847374092215456718972670445349322812119673747185363916832908940973878331631569241307540922729982220370550755430463321513658772424144225272237573673242917894503635808187097257995387088957830624155683714640080530021359317131207172596757635327838134813229472611835922256960556199425664774720343932654312692629057716099477732357812318869922727098933198466617363841542210493652261809098334417092417245285086820379201424787126558159840710055478718945307115172234377390674176916154422200774988837966211756743316450782917547267862006860737102984820413776405091207043001013788502846820987757474031852842052549479828090349005079630283006461431860098774366502829201232899963533709068970070696596348983984440425145431431387809759494329577366102656435828276199257191947304575695332250729461868403232900904135199575962464812430822825548189086350840169323311586321893884549250319376328031921432172523311739196490709013201046816324429863291791092234965027873480677586400121276855530014146140486618966427632848988014842424648848725418808656797786839183959325432605615781305120757617772707043827069830102126360816103024180085048616829906273786676094090000327568234579643683098511648424611116037295978356302533310949163037726637690996521320159846675567523242544414475513750871299677786559825945797995373888180548036474185053043257095539958967214625252940409688164972445641017483796140094329071644139560894076753561350656022208717318000708003539573004342435193232410670879201389231852290779389892776261264747487108189120706604712153453017026483402988170698087101838047048526026879123798647084820456330150022492861420752182296408994549254195825522482305462475509958367050003167818420313455856335790176134286747579100590241280880725720837326578543826029792239552284158546932548458957671160453443717430490001884432307334252118462023634133859660110616182993531764197823086302977105825609197068663542430267883505850654054275421808551439826809270285412599550886030427093701912859859909444339678725344042663220161931724578561721621792798536417002079174513802847735906694759753990665670408098259369952958039069415374332505261879264978113788400659956023465625511096287005330355997591129290957961524060946189444851824603270391415419755734255461211636641412145191092105126863089234285702190089584624889728800870050386890618348601890140658609687254840011648352273032179062407471391037798427316645300709241248722606465611714631975177194811688028658797626663420961078407793315407147459510225169070260225959352031412546882839764492281004136460573060849041238995512098408037866949514385290391088749429431888340764034710831055094110703351155089309894867054376160995990554695683054945424781995578840699934837847724345195802372074097504995303494639865417462345198034030463078445086676949822014776522864065342983611213747822454306245219035822822035681329535006147269949682518467584679422716672475735359803910928589896787472382451359725510281718261984359507314617580911845204761868935192907506053956992244538266280370792941195326589865530747060775352029357489355078137280944897786337482687608874282560664562213270432700227218502053961402298650779514515942960096088056405487246944709953751089031478785898556516146435980119900167350532319346571950757150664423053863879076592134935738111681421797892603446760530615447336651133967114861268560667682126096201682893992975613701833068316226607721660703325678106831505293725706739698465329553068722676504832903374443842835975706919591565084683022050607009261138218128752415855177777287056256159233720857165581545866580361422433041811272870169043859232349333195990346179434466050129839851287855697699707075488723390044325756495034359536491704806777483172024569381161219184169381332410807052362960433206993552205300127740861356487635580580886665380958386587349964562642797933351619478680828381799379512976347020402003737457787728744148675957328402204062274181289853704630761489346306502286453539039395821981680084994381387465262334564959913940452246627217663492552767651807546969350843019751109920118285228615176973860667080971616145192833210215114489667000015754773318221014469331459838910895313219127772302771223537182911664498637445702012862237801691663970904764528506296758155363720451104029248116864519703466700829026438061242143021260881867086828940561357353462154186700478894291218671685071557135391392289369806496152175459113944350993167848034162883930979683386847469853095006686261289365320979536531716271152862014470093275676717921358327459517446987042875600461189373820427859360103636920676321132131976656717670315150434888877649611648135107564819355510988384827096945290509106902511307009768887405027500543074951223210287653232409816996081840976847073531697855773071631650769888194195471474772732785584892571524838117991193285412438520811109999859748538362773366281865803761624581016734067569188272893081034478484494106633083439526065986572497829345800103675347084250873460170292799683457594614571402368724078389885990345806854457454767202855989051777878263099010542297012222435794482511051361551508136246273922472189570777726291297199152214893360100438648452173870784293278625201102249584321962189771228727481120155221322439713670234204796116275690836831365289686368749870616167550910721397774522892172226731294641236015280806318184206353817956064943248368287422310137093781475953931860317391932896296660471769869389052274155520249707812537964385515166400851242730293069317635491660568510730538378504766419169311324545626063240480084262019374154555406558831303685002469102118257983717736690743341064382694047014964043690641704940557319851322622539185610820892982356186400042504763792486929257908657546168738554973002947918549261703306588455543995222900303438925069315749998976588874356775105982885088014232883292793686846965765323818105907264702196707367724151867427663000237985985647507879177316735636997075991541894091794936078592410441921574363002657927220147942476482943590535903704772322842655747889798035435224690315235528440280956311817247590706824169827139801604168728717021120920015738781058073496440452759952527963492538259314076676116389717621277623006100706008170941342492685137223005581344568519084786613147616409501708210142273357016702667914514994412873257316269070949174826916411800693117786921521545725741915415886335051915046072227511265747408372343625497611094293917952402051828375881569077215199688267305617575495793769936580907142281539247192290826042327541459034640859238251147359914937155428918704983655529317481356804114866490588760776874259535026900498593475169994459536322327523772102833839984519605332606327226142324349366845580673120821782922784795408241969393984746254760888372804129547005391043135200545033061427592883977562519822935621581648501392633652342906134357582973274440031839436051620090432191547704914522030091038412293907929373217059802826852857922818462691182769460590073538662614848071247452631435476716482631026197662056133565944812176763925307315134257707410387620576097334704892122456545247769304488879489786350984595520502847294619637603757428026303067353492426679271966553228869520247657110434135788207222764991786895245556440824912801468175616252758011221308349896591555563412822360061112545861451699351899276046627983550095309504125045246229683117907532257975404476114006866673685460185811257142044708130194560421778409045109488306227458506682263127432308855974752071199954183424386348717532970480549163480022696490369249304340602955706115150227711679501157897691458436808677434584019081266198434948627230028186370055653912599637870105419799040453588872175332572695753428593943570233648769349384649172356917819409815425162729537992018867570724530185951137468929584730615275975433179065770894934938055223576029895570175406928700803758997214707585423174613248681423574601541008809331973444731145951893319204405616833232686592766281894473475678744141123230114655006076359487841925888296066432194982461496486161490936366037863007012127230979273242142438936031374965354869203441416545908411895898538767160019558441769080635999272109652187742613405282632374142133876813784199094397809621705371374234147717780959208572228340078097160291976029490585829929022914749047621829791337064701417166773864846714864058235282040250120967566900948285416625300597787822452633542155408921183319722069485465408472129526196708713327906216951575280224034748002641045233273500917050263267860474569474923509201792088842722022790551674096679333853619866448143732163428984806788042771945759837983393807940563710230014757662348894088924251664720434078023956395202707530729626376685888278665974718904411930694927827863276063254789462726002506155309026257146852005262466211774335339419675270072328487914434412719965781088330680837474899666968980441370543069398240823955976470382878822498673851521546592859074778210217254376002094510373283859496730309040500305286378494848344771155768054898987639946253548651994602388042590463459702609799217818810971080553959173710523938842998821383433013961605990673162307080102598364805872845567445412513777148699947116245693395999577649840433510490302532522810553599034687286070418277545549698400154944265725623449670455635362468997310366362774583649769867565840465013413588204797684721572557351726278762413073005492611952196080454052624600977161651136673988045705717001543280148721473128562238391149528713032656518145601207693391387252384365715674812297235921326641473272282137390631341203910025054625369969564078744956104635282947947965584408017311453335075577190755949164085193669672702498406039143546208964427988144002617710165026390528350233186367081882695044290774304153879213082487855620971971710569220484440582505627270415511079363115022980628240044290346263081455314878463263554208220857082826665449572429217266369570892528263989543361591852295441571765316388924902542160528193877567564211296714287503909025961643765960148801310649066768347971840096527556209135579980944853029649484241545123048438597924603909048998622165123048995932375396877978267341748339219389796707204573055591620536469186801899470385768010128066992630483886732367619052707711855927336741545785799617302300014985107079821205827610050393763366669493711573711050583565616409912510398503743982122244328922060935575992417759751348905919164033280091457858145042036015799324451002825803110991160566210942783540096028378819515828863324927333999168759389228640236211229469469247814792543293103437284891698349461895161484393156148861467578279617542044472712298875453010840819642598269431236197264487545800408231010509132146125868893571603125991638148339959172658393731374723551236378548148211815704584384916016305150453225582655966740829989849355121038690480742435197256019276941960199432886486498387095673760183608751974497370563872781985610982747904498842447505159196925265784698384619980064523902909519800800943717359319198053147992861597055794225033653217525072619196412661177117986044007285698477965751910661498117412302374456954442204381793349231356691508578103269294137647236721537395187729502974925235943699492847198985728261365494273186976073855680038856880571551003792524751564387538854813355608234688416649947447961682824597098209421801527824462658725739899670488848386154724685729094270678158898678511887944327470987967770400104129924508914353086942864707672712845814074992670403560316302854690264276829869324632307076071316969282586812277122097766933347936685126630115780288306434831492003323562540651938600940069094060177254598472396154133917210606637416110028626781943029149658328590677673578929369056933252344173304405407406287480093391137162252955591823535097910622983457096234702561828766749704735249272474132579383079863297762846310362373805010604258561795359515672912025641937098546241265896534478756123598438399155887097105076071374806495915319299148536986670526483553225691120319913681303806727015497833269159805255582335739390641770307542936931553119768348540911027942083070612441525919028528610665767251548785192361994182999786853195064821963322297157680377913157684577470007848211398134379802082874300791264265891137341178311396246472411855790315967302659547289477855436313689657570919466004749718380834899249179441098663184585556336837399678367785153545514680056060570865949294549677846391952243813030381154655669857924387456558908370258711121789283606174653135042781650449031550574084520393641771595034915655042840396334484210042479031428069583937000118613004909467912928706227802420969770033937184238071440366690277353058457375220613521723649568944400252125227253913672950231645377955705520673337944560468298323028784013384695916378477182130091989581043171086803555886408079203283222413472339472138843490193486103144834388514241508466234242338980269820785595189164720518250168967044433774592483031255993718423242519706975570679252767962058994877869525101839530094997076547486627991305993906143746518026810838937484587049038303537179632915101337889267002238622547911110433872467631232498839446962530458173209782707027386586676565801639694487498846764121423037152681764241910853620684530095963324418119619090606690280609841173421610911019559313504197465529454865152027840853955548728791035237917546720476212629406297014946895429508235035256936917946038350302083266823779452682721171240281442916993407512382275563101265133596481278294941072010717730485687865049012326485017878392272174656590650802328800399051460428091444568425782941728134664208988233625052870651676636665983239275824541033508685430706953264446775537361923299443758636960569916350357635669328806721282744359613154408287566188025905125797351544257196133284059603243298094479300323351735449201361311475277476780845056560218304253167687657265480481977465450560114391583065089910710816900686780835115383223762868369504629749624880666950390717545506786885541939905447589052069644105661962586589915244236132721642840609579629917454861692259669170445162015893294931397282028150803994448864649869563172963196674010115820585968329733618248361378950616071301971706695519361841259434883999497769673027003870201232958688079250353628281371782733696113507665371147653261262228239293920292523674619028609532538283222939201673999001720991059112588187604412973962136817328867719909392492875369738683531331741191689054693580822593994180385082486338695675276095860642291604693976077626878920373465549703717836852253998833268544503678988653104104374818598936256393078272569945357573201948896394203010462856130823536627988463419805998366477074398347483831900754709747182796342174041117847872867672189900273407710793522611671272855967275804026982762548613305453545952035411099127177471896334248087100873434137018443103393580803454361279691054745328586334753732751075938179973859360491251877128049844413657149704219968135327990932202192563097385493502955683255071136392353373044540714868371431328918015727231299835700433220408167303288279180828450819827435570402979715753856861795934958845361774467081775690468663326184319726030663329270618693838641093303953330962827290460016702970539434774596315795625965453912138388273243714018447291324329258670698199045853544371348756821788531585751480324432541185297618436911339312292767647816496108481569892314769533857329039369937252916618342537783463587440833989043241383645953069854839171612889618469780596660184607093845875933401330322718379246408624214040703125379120518087711955436965418656528278113733538822074882840516501571047012732047691678498405345834920945038410601364803818377668627792546180205702880377999285256606365287109230945212813282352606440169514931731562830369532038395410972552134614110270372989673230291779035611335898858850801590888906993925708604537747291911552537136490543176061121859730868405534798075568053395597264258111333677283379866429185796165479905629526345701940768269551493651945308676657911855366875194527799033898294624055054735012994907885304591541154863364227206610834592687678579737661323891893203874038627144521860175935570819069792550166211429228413026806722277457743995717408543004295908483345748199136548342777254465538926203616142955993516677502992354006693086527221080770033811398259509965456141762135422114105049555406453841240650449666123245201130942580417029952762552430139013131296487855914025335736017765998415213625669292670150837164586069509285818853852077633868278743832086317173598793685193044665535823687543535928644444085024951843200973583430608352918425429206208948705034030459446005338571078500864575957742417175267257801049948032411983407996061774137508517581607114219134771760551251298782059374389574138642754228891650847839614970606111691123041369327668252878242411660167605803025700737867080138805588464146931689335743617059844892324136543992137573745935946637540571082991161583315105030355395982361900437364447385267490241717544733066992235990924919701113058356557609181377151366637766842996255838286649739751335507669904295351848657281474186183080125104053755334544364685847820996664439017224838041101763870911112280151292810823869545088948729147261914003926190531673197719011286259256941652302546427758325734695091973329390096688280045280774835539815472653745619685353101650553637993592870160278686162827101212719607192066720314980381969227349957455531677194168665512351546250382136202466087941541421439699256395375073907174721370939764578675870735893929536170517889199768694230957400328967277927263061075539039195344607287439505706451629822626113268552704088557951260806769062933218200959386783318936978778438652513069624574640264093036431938987015353751383460714755608991950891444828479679515873077990672230186358503471699057494146928156441422043902614939938762486686972985140571735455152669656730575387290104079117200103616579303865028824999892599960051279765863995144603999293126422075708074242688621472479418575024424151817212384764971450895272442096884494525531641311874219501773438709888380169122097420054268017693330778052576036193751185858838974164997285042445601337155578147160198938340098554726656894508913543375541627193641600340359322233735315275985702538842899333746721466787308692718665256638283362288088652856856878798013492832169486838284531274515055410471898668761154023917375222960376016931740182301561061775048012390015591441226071338124513095604629819573739268709473991294341392743540805183200364051063611187204321358601470233046601112230799421736434272934848518165333617243245911832650046785942540167581817074255076659247819257486350077297252580433135013026824672884475949710223236261853980865264525376666562713866970263408581064247372362717196690059047421698710996923301471002531895531307348513350974905676099991239032013666777596390379071143564379349671875594375475941483673659438001405002064663061265229437916632560931875305827512638974163122659097382379897501772595959573637715817794901911099195950704198634485562265551910011472941763080040359356592813537420898101013559978583579335997134381624389060638631040004399545515214962027421474357122905718033926272771165276401415756580695663222703252421919826062046833834358680090234230980360540141914890612514677060084440966831160238900362939643898355597549941470553241251894953429596229871120903763892301018165364587381437997782366967637364868868433115223482490761446993834197787595290470794535545809365532712847515380906761292979066978534083514007778786303789936785515722601593022549296119360763352487242844911382367334910288443273031458223779609092081741692012437545879252710785499704352993110542865680158504317313429938954634411428435006035280023551489450814007454519732516410633163686994467737936728830769517101115795209664635042705858600367440420677407495350129379413995068489663534192747178315253951559336514831312497903496833027163227037316903050144821939124622624088767059896567273033552795156575578646557047575543034402632049554600107900053004971347768884958866891061091779153624772716333365705511048243483778905853214434126947180244172650368467817767442003023665059645385290354591136683817408581450667637873820429762992744802198015629614730518749585453262027012865013518160069918186739666082594958828081397301680018839490185722191113871523098003756805454902885216022830322791866793406864326704588166540461008328831705646557607284171214249818772662010371674571194711174625176799905349578830918821223390430440371170556241808615519863776854862385920071670758151708011325870420655214259862665217664274363563107662176253433413139017209621075137629021084031622005478819725321891918280600687655916927026149104647447916028501042883402970456582388289571972226829934089845847304407017772389281297780953421735518877274500236589365570024629821840787332024155490215459559305514579768684691224657006483880633049382930020881775756363458058684349230773328489455353643166140129146628101460512002285848208985117455299180670067090897252764465314967587477918283416447224590633397441078912684875296086878760684615421285449382827060570572604777561897087740620695624531004215415913339411186326035073991997279464952598002867411101469223937242532836260394234190743664078095395423133925995741888750790241379915907577654029126278477490195920901494545211493764703332820893433553857581394317005153545191966614723607517617240299375801512010524532713720794172061008645644067288105819797874944227179440619279996902459567793446509826899157724751607048152925050113227806864125485773121700325698963589863853769309146219972761568792876824686769528021318662415471809079653410508145897380720000217336261350105459566024409517834092568230293537635422798891676799575475780218873221598297908898577872251947633429175732591741580989033638162719702139401053578205416838394367770044752886491065581026082802674371067508930340425772850176928348721933692778044366819672278744166758783399264388195396960510210376968240096663590130647010548332888800653754055844483212486176045727889083346764116441476994409750819518728254363273392706317123737505851807657788148433225114413915337128353995884550247073735773941202290970758251553665530010863897035913225061530084498589969449648121324743012116108751392148651504452641491794244395918229131741005863483259957347229401777657694479123935221159054487606412675169386070533802706959116777128763411218084954503059559152498798159555053094712732701434415261955573924617548318424643787804102686298094920635590023268946457383259537853745472788270665557859751706420730831206711655294726364726794573698451965451426452622308657773748700735076859678707913507310050825849483497507143513056508649110402391445634652305959534274748231814763678702872898174197657611138228348633973014964668520165166342783526690590375084383745460744652405431005644918655189752121747635682879497256118499633021639489315794018562738277391361046478735533536415032635405216824460952251199680714006385912128363898643790178014876887599315945457740064472819127237774448465221567247670409382160774277840032610528216111652064774738552510487784977958408837620716723729957757682551182338144961715769227029973503296066799821961452200056432866502896766052322721350388570912822494780099935103898366367971921594431206903117451156923174274545465046870860646366935930540941569889697218907319239021462176975828965337950518596772359101666677646875174890148823557256789519214975203330592233506255077486457279886634428468065081305394464000437473287816176529123226484055057186798010303173788445033506497586048072234654133184675041456535084801015318388375041783877473092743363193475597988525318618893887305175261860636907653396318643287442717074818746947271613633998956733518710541957786492182556800620039887964193301286097896343839869876136298571313521688194965630150495172121971229864760370461956254535409540720867217935930531587350752671793199468875889084681054538356288724411161538679682717288700659827020906561489872083787171454145431782558756571783704884262631818366555959152336118099106909602866642653416130644283109417197116250920197787433190691020351777162556892494707040360403362934926658220675446455531495963076443609332104330855136554818050583001189146406212056538700511961612714984720070659466422238870735861251336661836760906809945963214664240383270579184539898140336934600754342614537470782660549744670077599745096747275254226439338817129764370244341439713653353229021566219486676058399239824872427489718163096028282435392267620655769749023096004584508454324633533570415373846043895141660086989440091924441351357945445169852348268303874615062197649596081207487164209067614351736585282537632149086577646044821331193349546858775470118088598013752479515607826121870049848087438680548191211129459014012215817624538633672057203424275244154335358063278765825039463719347896795288921083005754119435310888714363630552645452340290642275839137113979492295741021351891236721179779017035897928737177984126567872035335587983945906129695473969410991118426241089511036042456726358231910101578178247985401914773637451690199874147057889099465620976539895720101837810879406235933482162968492359186018672480122849982602256588109811835306163228356622025495065199418120972733284901636272179809388385802410114864602948073193038616313404088268091551715288954004175744541728827820865163480963002626479188340283095936738506311491944993277555213146660462249304184467422941399430877938926935647132187880742602566819689065179214192704510287936389345025189980591980191005982775189327322028843879332839498073377181027764916597107089540800265575641435271144963823884884727979133919855020879915267559896910363379786613240889985113071223996810308244916312605318953635348154705498683099123879755674428553110387928527967452609744748512816008915010210418967997701347827423290224842441533988690744382432361382560266835756922128918006649271157553192429088644115904091974919589896793565365036110120284873466912933824384527477725115985890215711718319610516434453569994758246604416631293588652660934131860261740669206955343187172781912294666421352436533034568861432104439818193839738468768704335812467231865988536733744248737922935632042478309552889508514552841891167220918174429824120547603760171268514145722060006043436614119400182952231684454675995192194298742167339574506984407086188571252089575681199984957309785849383401192242968548207659843288789663229581273091665198349079779917043124769677116209840570774441150737072330240817510483318249408507504934840377687169224229024839180700048036412676052006424219711932110068140129855015801264835534363391207988510782007677238614611762692936278487714098351236315396769429011912041595706798631153164963220001771866976323994378077737063260710776331273178321363025806336280473171424931234893600242198440162135518518275770212250177786433500670925140668027332789023667681996421066920702829844933018724192771785579681321816294736918214265629851412985986784968416350033259033421189243238992628627563443119233146019705011053246334499135650998085645409273585609613451115645444907034267406370270809296089043696981613879612795565428251264282236525753643265820699354569963077575803673804989875539206334582687459501578986204405616924620988431650725441110147140616968027946526820419234725714075245741513543904799911593497415774558776883955338813131761897947846246069964169188396299286875935168584341485407828242995853518316132991276401436863688673192334530116109009858612680492218487119840307268451010579813743222688335954076462087286799112452645217364141127593462117236278326693174108413470440979257929819218703575754367540595246187849878588983605651262687145092304717718450717346897887302159352004587473115824877804590623788433261774105889975579921391078676731520529846591617610136674244852753566739419973549491848580897213065124771112178198119298622313635322757393023685797246401178043901297987825420466661637828636463175813962104824983343159539003468503262099782814839344715417149193936797226075937840801546389834071834270363715686593134683185461537774135073640363881926888601566758152871655059060746398745331932804866842710401713420063846428884569602921105389286847009989321055947363459097968698416557693491382957505668782823260719022645414698998222850482507459039551993826297013757176008107508307102788038585382470419370808240110666492325893895323242084348418437920308928003138692992838228868948537418381011337088956688927003206920607391490425523260828161608646557664110036852630876846600046478582243106034236039235342654294430878577893524150690910333262380597950008294622060619623451083910973227766402600005675910706889819400071896374514238517754900887142938703040583738152132194120487637480796685745782870049746838780862402040437040139602287919734267572987174392350298613605288565684779476315451220993821738786500021510892147996564106453925038064059449679660793109299869392417679880723037654621289501823007349847031483721222242910510762815703386279991996646615929520395333275640847479761700437303556156180007266027045148453086314489775305980920415034855842076495644005513783075475445893792813666697125840118701695460864313534202253110826961903970788120978914998086855597035474279810991385698699139618741617173593370578103873025237301679260717978348168316212213166794297789655569510993210194149278066798217127901362695677244589285185137150377399184443131997713156478023868705236761997553473220789227367541358810434994880946339760821867114701244435083865509043479231385044984484386603690925164133327296774226799461154587446312832794778969461263065543459859125965295390004346697443101376150515823404838686754526135388777385545037263847070253307294316992877017411695961678823200012967991846034175729871089170299154007329054890717678889435355914229626713118479048643954916033427208481061577456842629277480993853781539844049922037081741870837093162265267362696316692837288195861845980640130731412850982668500422080937446335577793367798144768594713623531785778329566784726387124429950154164378855677129778450041755968345958572302339313714844306961858002163829452755654128418578006713985140738699208859662259258989742466484796211447636404042475064050320807220662899163223736765070941806989379433882461319628537304046480916768324144628289971875481795525623481853153495257670181574010931264897418362263674602848768901114971916822818132897058918364997965683551855223137984700969063754203070272316532691966129099649054577456846299175269766615618056285710237795241906254881518382586115514207536031908806528266331226549531216031427610505041510778724903887439563488992399331644094348435791097499336935673578793964109779782277112888671976061305583463955976928122005856769060564342795804713768422781451426376184571063301998993586513967997169394809826066574916976674778165418657509852697578785514615345969542219816730097216744821590953771263389530187071022362305153630510109945811899544394164744994215464846374890410096364142085378106495799426833723136533063059355734689972528422166334790270649285603009196291765553141579614070432775883767535872686016768504729156859712643323998285892588084238220071173188300954208983360198802782520395384508032667971264017949093620141159935369373599017464269129414973011026782729470871025416617515012930727640428712375575598265180298612680331689951730583774572079269084073972784167706273987970976917793477907885212575802337101319030423097882916846945449391810043633730029356490455140262486338008884153626914574921320792333396198038329754199541643246557996201152630438836719039141292608155311333381943841886991956755665929097714854233945928885703013650084132166800124321311530525664267645233535932525418276293868844550420613067266288066801300712213007787916868231358995080545296677993437491994424521355956990161030456339463056126737189552663463820018436353303605326257785687310950238822423680761077076687271386928981975970918746249745055468895073061420824365754467464927251593587912118778776484869894894232247421701770469526702059917981318372195193128191355248084440209218047212907182089727757387021683460661085353667497914282663553672659324235065095609506776703504823474831326887342002794503744866654868889374306068152073316976648131798321328498217063398216351224445586940312695187247359638536171078870480379636071348562382115508153725145006879582653262168901940667251383391235867238872325515139017940732171719434431427997740772435403869778018868428335802983544475943517378093015757685175589278377435369423927553331291339608891765762481326490772261197014548994295359940851597461131630926834450981473127989774518259135290103782882754666784213487427509492452812844137278016671031746056822959304846527352325457444945941583523334779312999405182786402183911937948200024415682070117671972007691653577800467660160905483173156914752865869383820921367140743898888325517654877613642173266421530154995239021399527635869563159076015163025079188178905476397565701209581783349525420682216315181560992163362395202842567973517850602915709767137544726674321695522324780616876596697223765850973177997117335023932057639579312100992062547812537863373401866270558466213980353432827575706317764693092322576307450934273144583532103516102739622279530581108961893076801712707363852166872119627493905879714205929484703274007964656057115435772078179976839385206010364118762980770584973818482816829847811135931982444076311932042675866478181568682523997153800530779424308562257191393767660594727593364368977433988792924799160132330432647942377032046311526070746117755526979119980335509868028586759063314910873257957788241437615408079493579590878595366526120254931658039847354816626887710599792282810310696264462706262830666277213536729203060077588107158197284165417164290859726916356853600901586487029238813131910451955819125300745907015957034518813273188591410027367499390526230127204570089617047069825971568282780832195142140796664875029905378122756102837358619474646779257001149994450664138197853668478576272924742053631017317159657158656443691484390317551577568968303831732598585871536855689304654706471104221070947142536737023747573891469526468990246264984185324913507057149694796401170438800896461655166749488036930652354044841762741923867382498316303894221393560433156348525063196718026332959509160818152384019788896148083532545582823647203515261853112814373011955162875887684322588663079074033265063487640515641297630039921509213931763545712190786842482796266792032839692674556754737875550614583056600174250299443307053289154083340160513303133138629048339527084424845179537955105845650508664888956071090845972407279555064197509579008257873829702379793940626307568310240687971558669276944062604195654754612517148640113773403311193155475956089560220595949003665082747986231799742413287091803263456579656346335050583191451595105458479270176838432654244581688240046403695966433277171039763958524678318787805839905237179498716712881489721806239732558747796977166758653809288359044988888769164943641992733041320205432021342817826654345253566986458107038623689943842981916572311906521689731153542227355464238946308658386710070645041317601356058010481303108078136662564532707318848026104552480919502160262551384264867661166253783597762296633083492443075044784345356278805963205097323751530957771877631180125621639537388695040611516525349159929485540713579865134667340221476242251727337397982780261903598598012272351524382534127034320969333446461922261927673568548973831936161543456492954517128382313027828183492006082610405901489470481364467591518709469422515923755526169352201141847753145842621014164197819061565065032247848588915232925205187534712677076277925687405252339236980843216155584273703738966046380373176902257642399923620698367726829875277332987439136207704659570503713416769207478847879028051297167857627488055792166600278034706924740783080362672708782329644476752684371461845697560700883095350604718700495869831323356903330378115128263337592132635002942751331933262452167676848743328303005809035196803769640158508596675287539634920928046608146662674525162633312102568188822592338461717802665328467708279794044022666327207500035143634747752247576964645941010878780324896201602967703972994053954095943834091284185517358085064711492686036931409318094392511501270591798403478173423396486073947003594219549788923078409005325288592968053561922554709810221156462358659868158556539327164107798866103509354910697083832863146156465582416679794865886459775981602489556576776741596175340751070884714594132445037055939394196257143463201199874480779845105179172027169064802434430378842347940080464742348077329946264597761297955083075932670618803998788566452777646179754857171689683825008584452399660201043655681659572371665517767705868552923143949821860562365409523201460032214332205260386007210872795841489653243154564142436324278967347348403204012785061477142324488070054910371085487660186853498178356186758497492913951278135516009021469754841928905068223323460980063666486051837105855993652136663421183001309371321240161227752869653030488071158081569840731769750896563214374008831313786252903239587838151441190252445357564898255813499781244125660209705563054044396071637369229625341861979992227276483162254272421398659995832435553831417146003161033962094499582153445781585276056715262203937520628073658512598324109777056701180588661332209653033744917277931666295687173001639290965067588911311829078622709145440193096223765399891102457296369040427281298666190161381833067167423173628905997999568388918136142199171631497989035606200223285822223579147619442970327752106026476071022507212349952169201089242802879379406318086634992612591034713962717938845683428063390714717524881301674925152532638008727607504204290243890919914652599371274261287008336074139962029859327181557160581884890966208842563343034945681808426541580284117990796393297273418144404432194626300247013740140776793598387688452440500675382099172692279396896085977519754138098986192025175311799083131032547020223625835839111310273462662010484494386372594669131419087909074625693592872299085933921215454702474184027461193034748539782659441783077048605110798482121068002536861230759820219937985710053476282644986276245750028164656544981146198192002514991445576197891639818165600985729466010271463599488537089711918049764295928320719297700612308242851179281710403119126976898580928767564315044728052537002800875824970196164613653802704429653031599634621868227363629702179171668432031157495083301302470491755916140276745564920885642302067856036377474344028574783769399729823555611004348913076122496149926441643064135762980224201528155899661871590837021632001660768166355252547075766789282317543497199978079670245491088798356724057062441202495918305012234035492913454487591895697165458798368416364917092152426958396861921318430095518091548773731898129802923412065100022698271610216513645342872052441708238830588369255367892544365723681364324416087630412031969325578199266335817814577671378213010819206562709764440275533633262889276378338645343503038177086505487770332051287403514464161897872161654798631775071024128264920044437518018609566857022135167372419178195296189674606302401425562629310824128575048165472549096885645488710408613619861232823071452065886129625099621283606841376095847482136847183486072803178236037987270307990460759723783196382178770034783930569962295179816688676275328821140198359805952923666707687225270775115433751758977795220996826350106041992122450752209153391790868712987646883684420044199616963418938140961477575855345787062671609632388815670360598001736853048530233819531359493944608969545820982817944088541950097038740292629487822120818622380047949901453020755589684691198929193190471827620771890175817396605853038977426863394877793897232519163258005091767712101358050429105643194575980180023637287846868791587184932018501632555536576541811863590829370681448876934434286904594345513408978064767453120444136966889667407954276879936406861654009239139743756880490070802107814517555479261639265548024170028072048472267792730198375683266146152125990369495413518529642782850862749485350093431222062170114339371873983609072903155313733258554706342059359120734643710398498134715471922552717166061939269139107268514860371485631552956040536896321383702811897585282953411128750321710566993153781528931871673804904407973493995394133221614644226689895386564855986946368349591338783487964950393148044311420170058124331743298505811628299819427461307692405592385109688853968068221375093674176224647380928245122160768556987161248054241471071799249756082985208572851271202751715456005048798982556243013968433821483329427490023749955837968197840253264881758211524188403650205903227801870449927389235546803428141499992123484845254535005119300863969347807408342005019456100910212713722652945656409489527163528885122658482938013142175479266621454093290509617187708884623032422571040632753181135945856397181034728468931445639019332273225999418990373715092000962928895561112408818703708665599859940137541727122997385800269299310193759447628782601713410198599389890827801993664457956615667729797090194306136822685822438108127251860368446120888246073403692057605515356846479481128070227811857729961154352818503365911308346439267497861274610289511610016691814712997706509517598796319817555598884656029872626464188206302519672041108429295900572218832424660535481468534616392124598507844748222152531012489961537651674184890013455240112445421595958219617479212238606343500450866622120574884901711055874848004002562399587192727169367439681809356474138895141003683877577654328268336786185802328534003502523791754917642819856964462155518291077952851001867097612383846564686722589906673006826390748698344793883389824500498573360146476526744949878937265373760890799808177772125806745827921022168953629375671089322351641395151479218730805929788634092890218633021938062678308004581960172306476199910220613124127889543607080219870745184654633470682009803824852297713251585060669283244959065148539742510684968621705056052922521555547876572504652148720369904095694182032614074011170322455240224592289147471006974954184394979907358296418265648332739112214175905305998048304633946605687376076537948332070764250506126862634373749413566423337658858007624090609754990407095081815081883621792488566806115366561894971917695363826229800222740456756424511279681917194694740303825643365753667515343621848176966854455674886891232895982654317195935723005022468863003678081218704034439998690714928640489843450027108832907045577365829129946738438711934579179536024914782125496880954087054855959993826742262170994974554354464306922013969817298823047376223581380512974906686234509976078448904097954329660263230203305447277605946072343727013672474158889994544350129403098476373094069561243092611390512961664972296942878555695678821433272903519643796318088078716474290284593499630196711492978118687635532171249151886605232192715238199336119411607262771354812389428791331787806993400530415622081987527711846190940729361067570330305313186929582320041081124064002857978964230365485340251218612710901566664419846411882283295982339393739147653745064337818815110400970661764855310524774262237345481942237472971417034295353645470616342260388864398010708317750733788488346666524722638671554272246771001248155786573191484749656450711475496557711343352796034423294313792458163404990280709105418442548816342745687659158570911639209879983842384114635402984101318646513183194382998468521912832743468428098309944085228810524543028778456900821956613276636155630793769431616213875502821408315738888091675188320711875704093517350004245351412541241584003885371524698577885372343720695938740720156059742697016257194441979040491382664880830572391163471268039434762329723560809084418424701657264785264176055388693680362102525938269252064171257775466078592535734764706539945042584315595777409725439807475192003423534052826904683230933822002449674419650387358818438409181189338162676902558752196622031475481590737066870253683232099357569924053097654576029741528703357814219621614908962238967888809727780978247208889969347764337224204290167807260739888981947032788763942561072998524265191119784078392595497196645565734999603648507647355189356182786301511003534965922576354299120247733167707129221298227016015477672031739620692540037627677043039782204716342878137629981310110849477576873019102507030439969297004555815500027354488392653336856526889673469718155642687548270943960547881905703181700024227162424728945329425133827853326802384675643304370430273976393588355495586656785555044411141619066176770431714195499680229811633075715748919113132462438712486466844681857632370978848126406898412932546411004264523512431986663283610640666323531372016641096389248234449512424200995887072507308454436889599014739214813436214441904286048126791503440857141172517521751277207696270406619987183955925030942508008067786030823986238570954678686500493308667206647402328701880804501118820048969465984191818956665490822294230408634809042385788921500051713544650612745335611371512401428506146347301077330419495348466545618658575446593516757530245577621396199893535690280312897711914622288961415326436623357607434185071464427072643527809095768574829462942962498737447117299940734363444801583567726770889631031077394252981062829464001324003158718331467084646692192381006741739311729625063575982557273455614416476779979429731852902888792824345070350883477243719137363146866672372683885160114500072452975002248413942964456782090447667350238019028894028511020384846147130332712794707941364173173235470726285770732262742312888092440813331539303235700387307633188222012416483074512449229417534049013897618180622955584969269216681187129109446302844528105006587650962770819337932563743425458912041325523791376242295464285204959506206083376350224804327168312609027181889939913537903779302801371600484814543786876303565270263451535783345477047355563853950719300405753554459405523560921276396630704072855131500842383342830501775722568329197040911132069734506189638171901592630361402670876234971360336129762984114387502107767332255294294871841280877385794239170678223424488770541513150728663852527113685230078459927140605850223423155500112931102708271427575091637288240450110526584549280061018993093954736340749379828134671099927082991978435988198168440199560837227255506924570514557764055659366486338484719226241231157861684702217496987972570357346410063928838422241152930524330037743024087080709211244310753292259933614208325072466677026181198956147991761511336030571128788881214768536333967215039359977021398898550242865975015385783197674369946144604470828350942228055141917385353278122934329869177026803635418475901487722262727989344453706440918867116954191411278108793630865259044522482499660699820997839887039246042361327407615627238031984608968190199808257217426766203775907862232961812289674286910529710831659221395667747201538912941112444909698860635422403980116547176540738444479775171673020079564755472838197330518035210480000205637861016797314204906966731986025642741975695016561577452739350985235318809947813018857921767817931573415059211774852614645467238520423359614054231324085286939745134189780645738344392241741310598796551728300101186826675208118776631399250708933435423294694780834065171097408412887403808281597944432413692169529559223987743345870644949282645729447758756202354440918212724708104524451979162789811848924368896108830496493042840582428813928844900299102702104454672177490344365812303440451527610753164191834708102440353331311124734363686577473032859198849430262589405178825885619552420187664469654522962765525789878778808533720533185129759710970415097953959012676626598734542615858367168945129256760572355531797633698681077128214902558161266402853271541347457522710825014799378963953475458141155279201032103256550889124221466524662158368746286074881827303516540468605020387509750346426163377080455395438882433146256818597910257540123502653011809177321565864878445813234517408753294519449003304597607434795383706602937606780788870024880594991616541316278778198940466908176277551394984913863948041276905068508651721648655774334364768895731045188277748674465308571336428102028862392283399479730872520478930341653807637621214637157905431597351715264210909450225977990719012154598741775340333735223101781030360450868922093307042646208640436000325490212498497654968370231617986398319247629981307617969241849519638160854824927056100124299013153177964470151553933105525993531896244384948798714201608024576845552205473210623623149398482328646881252436620161955462122213465887201214859865232286576429789990359992766715390236964070135443077110917300188186338263530106186322391921244766254973648273013256003983129421642258054335897497195857720894204670377201626183319777527107901477876620998460173209392522668181916847262920344967352346446613431454971288895561981930503571283315123484626918516557411793938317338830134268470451479573630934383335379349267450805905893969864279653292102889405318733801785078050372796780598945899905794516528592333877946720590778403379009844902823029242445177992252847964492182835026632409989157979982394849245527016593245760914260761935186735227485600691081645898800391218447974463057614233706515853471339856690193249201038473194161567674674038778858321667691788949329806803924957887864011678095263882845521529476755354631320424592612576976535766148778538208635755154527466798690661667335837959554733070066610299519571013371180705807312514822720849952713198229593632637426656230016785498801302942073466197771741652852265850017341345367224986983483442733533135978623004401734182831622734405857589812666374448369589062995322916728138929630846598266473018194238048251938237242659929294150775791872053581914769982602039284199227448157647370119853315339592607218680112471984517824384738522191328953531401723137664132575296162628103427387894614174246400594167999826145776723523181022019130849160069826073996631025460700969464882207274411094921447656816003584415921904945341501880150199539377375730319631707850425647104782062432301650433870458065054362525376532841097070221517907264512784375281782446991250917440081098357536361018552356658702820266769262180660063662519043829536760038856132472048820458750649613832475987626035580657552976882527479171903757386251266434082181841464528498002525619071196161428297359765838371201147037640038143703896972990350656702724712972277685320452237179863141093656185477661549947252876184664203068145910862665282535195605072973615633739309890428046404117903981818689148959268750992545437622512079206084279292985549089759365036031900790241219412806925858279050252511073658800622073441596620837368631175638649106586655401055780571917925114744654455828470081241361562718056961101854294921079110143296539883920412531423974692819296070525813789692899676297098491690744532075250513201530018628962199540200424369561646796782315032851325907005484284755189604476239077369665445880541066462897931741185553218966441356693292726970225029979979821547994492620882757831998181460683905780808744100386436863749073689947219649118807704947500205429667157464619552228825471243712204136081795496419514601427603339150842792411450658602333973468132975202548543327798906928611677719370058743270080926067464712790118827689190408553783778654498328501667240575074498229601109155512943278725369237561844460407920024629513255084084418852118982283780999569420039329286957746627310174640025138678774823731530929087878390155581583510047365286833245698541389247445825319494547475157017998689563653168890186857206560571877049257822508266368329351748864244008561323900193450304339898087322309359978270540240562937797842764399092759477120651864001386677781266162703675337040680985459534280453613785070191991808566107138634934955315509878707633956060516328580838163426086281079115701297190910148276938766076664525702822444633513405867452556237081854804842343404992343655267928888809748168046410942240678633566439356441239972427477502659031829319242726026816768786067821999010855909714715673505408278469713985124844366666325635381830399514003239743794034809999943102960412182782237046195930910943728174970389509830649146267628001093061464395039570917551908445025913357472103564240054484917436409541078236220871077203796373432115486810718211266256651807355621795343986215486264713503115023307930805157274764175379071882917372685396292772373931874760034252737434811484989552593206449501296202211735424304033145869018479626821417332949393416871513480851463554710221107711184174562513456204021426827863556282077207014862152053151834505413912743161543493946791906924027641883925921875022438397569971978480227007423644044470686810217642812366480387460940635620662304660459426801815158017940523248883286582887509290017065774531278879505192829311456009053076519414566771847019590014593628071167182454634201844928002529211411365639332252724680532091293402414131290053289700604537414160938502829421307648017165142939977659582154040622067987473284102936619945235208825750454202982947616899875592859411433794155356270066722977181953080120131205121388686189210698312348876389788136129587248278458877455533582379618838021105672021746052335361658339708135596743963945355440060478267710499041680923046463600447662851900793155514394474570544749106836500571891799467602724326996563837823360320181097078145844928457005013234036528371312301443655150068543340252806007824655662849218104472131480436508851605569361138495029046945057770873691156954549322792030422816162984996556477196711430700054242224580238264024924599087531781310029148032965186097989807029935220025057057438493782342603656909168813527628838490108379817844144107301663434778261432212986865290244173625333178869574140524266226029386778311622912217857493046998085924250982793384752512898128635512548734315039444935189494485822385001117161461191183279354461698140737798035532587203820656033868093385374925213989999441419208964020203588623082426009355534885250506546418894845511702930015730611086213993188378446912787200269808929622489340893911291877839389249507997321364238619279193995927685119373874660674160410639736586664785791391734193960807820935625688924397438104919590988357857766803993291890389856433534513221783276655395715059948310434517927673514702008294807689602395574333407849983585742814037164185438840443487880648102084663809820292762490990963079854583179516197094677329311704887006968750897288835126773410851583818860078029998339248599925422337318786165262115499897597530029386605106630100893743320524406015826912560257224459465028060960542769500774694366363592113577066916475936518083601949935652231945215551746329796604887870231287799554155661367776012480756120584001796587690512033670302653594994074181988324721938260310573510574880808623446552163883644614830333969825219107603302527706392334339491021027823451632342103986025778408666600076265071894579383800356225094302142667481939310085558169416339125305641462552733830456342903591043053300553263996387515496114919706921997831077985349001849449324774184701346571640063334626022753730740017826675368293938538092388807891619131689494794180142781576350879366580722959642709833539551594375685574989784537735485190034587255287126703097256070609675112200417588794592486474426722053443827378111166856260967371459921025996915840553688693428316745325453311913633043344489489458475898583908329507564700537529121014280763821495814498026064122755254771779699712041007117939969130733182044567245343166791312523029227876737912531745014200548922358368238953392075426140911288620893328917504577802762680755520282999924890336792091673974155101693118898559940339929353345546343371857520708980915377527968152476103441772194777563968958175030709681790696553595778837572614058802458636332856344537297915406057273695846425475999248060057796755832706711117509015930631770741029349778614826967496984005296552852137253394574132339528372388551744343847740322856283089083384064972150831601585153088980595044255182049017769871449468601277354678453793091347260330813820976678913543525800773625198999561780755665104500416013628953525008718216956010425737758771059358751724397282325956081477841756947154884202267853660065221708077940988740485237480036216818650622144374386996210729752205170615410996554126433087251316293768251957007208454741489632064477813828932429915130221219363239345266143359747488938512556182885686837108944540372616066456923290337830349086884694560966747786774830003208740911776904164257255460946455178118181312797486036384508621847317662009316806614859180002934779861009996219266331176851889358965997263057989952378667889277671394380877547284203795953842772326191472333826050751178613127120810686675284624139890342291761604430094312462204354115477141404048786339482643596460809903843284201959970233141891845428003714175488441217854077419488609366973481978905632503379486193331568971009517576239551646030111902493465165589047261659120221649323638907664956861995442532175308680468197136996323397468685704575069585327084765277861551481650603961501510790055238024429727456420282901527476776312239666728006218843566676925085991461543514518425427430917750158240013198785817222111659834714239100870896243257743297901962375155786699280371848033036622008467891783271780230362574839903889212355142983725734837551295217678595221294291282773207239770725951708739384213832531845711403475900571779671638754984110445873794021764587251728222090108183805375880372879820691809956692118524692061714476018550218060021535780480067713854783847106447704125860157874583771023686193311940299512901008124058429720518530807076993387968619345837721174314778352614573049940495191477487464673263748004909056474404260507795143924779944779768618846373578145253777502692209501136763614107485116200074915659326979897447675914930285237782328797001324896520111892377205222897215425664508648622799931379952902261469875849775606071585340946097600129713396943688987218857696034185111492118598744672196668584211296051870271785988376496662215092499467255609750159762429576875966485158188097014386868455619120586646005889872365301870770155550356726230236895263361253332716984454670387944367547035809946057238204164019545044790786667842895747421289053536160623988541489192579556531946547188408282210094791280797094752592855354389475096116007016986961841152927219729317465780663743010385074890357223717152229148452216197244978678215777532024718642262245384891426753591410186005882482968560873158763341280848866838609988394357860725034632678242084891484969669636068395085222749394914825149376401492679070982356140697787711321248586727351251657781125762658167086791020927160446562025106468376815359658820630863359091848365772309338529612141356627079632481167310257794195153598181816825534142765837040326927873286718625112399563292247327776379134679416675616665706964384962709574693628017441033644571555353623588532894305132970467190378548932490719171096436728062394855438853118391920569616510400668495858997872856121756222847143448738059161133872483642308179985581869460981071049337410400846386544503191407005397222358558665076074650394793495039773252176150085018011783880055889667582380458355263099313052166400952012412263315950435166415667461403719575311961053627547407544087502120181219124213009533597496504504953024769584480459304099309568241841135074101941969082245213124579029609005388981109646546383147810195641994144072433144479897766658965686258949853443756252138466965321017664009476113511288043355851155470136518605589144339986404343645436723421128295466290131776530110112139935709348314774447059328730610066596836596636400028036867130543123069934915618963910859417986847122205997431194248665386628019519914001336212467026158509140562036665446895193088184010846569102570980745849993697210847275085790742614080520276367193189063953596735615278826596418736462644724355949224732640736472715366459876851997757696322783053151005889250722179746317292431243347917394647294847608750371628667403520299086407674074537439914659671077245137320618265124069080638107012391413101553282444857043653549538738807589321285845353183204726927691830399836175213356047728934360735190220993493057268099516882899404605797441439697025129258577364324157237334950255746665516557943803199503287559298539656364388237774500323428467876161190499435595728509972827345736103624771366071410100120223454531667748841071654042570786852247751064889878338175117747627708208923247063466692372906946265111944079623740585355513256637343440550950930591815354017361700708066345060022870224689797717919852815619739353439891504514350261071436011869998097671658356658011401396978481664485258031632058599388340464019385004115133116373592097311117259074957838839212420570663013599282010037891604982100975811235038705012885657062066274511158955396689994826704688574118811596160964210156133748162861970797989760381561048400921372073602629253896597461743454414336541691530304829471798152880766654482671102212990734815990748971217320511718598221822142629521515652648157852807801837947371921863218858904765141919516756739375263222428860441724245286553728845650943685123931399228147240993295427730067224724709690794481591914740953181078530830794900348588756588354824667955554560560617151843121490414588960459674059369922891839467001989165836971079607929946108520587537382963502763336490558961517157413993121258688577622294605891496752356696506957496245642207523404077409850898896195352606877297878567617042439860030399165761160220664399050048012335383860219163204939752344296066338402019057219834940753198005846129006208371185855106289071717515700962734024264408955885764234065965749264967266313258150735641876540813168466363497730300853386886395033866223208924613385262332785035008345873085130296554971049856119926680884247627577693890826107516014189576881082667779853739116344690002752789450922386640138672859215198385136030035021452277476092718012594914015351101516699850945105041451241396200212578884226063432905314751223859526639667435693160570401587269558606273638332725263191324916406477315620457656734426216066311920165579354318462901114128527534736862633493875860159929284425337339444989458267163399523461375979463337238565514226086191691497029993180803734174080446674446985561432425878189553780587841563432932447537140713959988647407232971053400264623398030017076364981899379500136748289488381151097807731890728034850108050214532101348711758448758441397877560972653659572983485427293673286512782005205601676486116205822626531686572295849867427106677396805874546064478971115634822709992562458413696972924714566726153977626162697676200155350333372991484853313320291524818246903296566300693828103969245553438870403599373151696114397404111440621737453829922126151714487283982827532560539384158081064170362364069359542355666444747585291913350138555785030521085464447697502546020323332528130404887963196929972369148023937674944877920205351452959119471581070618921054093339038844296280700860540766517896316431083752160367545764942262493044880885025145149474807290540566310516193580186793621771158482506834378050799603137614075012519357985692463410727709714021482620239067029757683785661341187258525234023676892297567886567060986412786815323248299387364380377475545953661922771684280546343464848525013830804509999594548588914160177257739980560856176172346797252850275533885435557814031451070715012417628820871353746144238099324663990826911941597103799716915970975281414286938611078346384153696709175412471948579616573163908905458804101171130671941735475268519105626352701730727477208377752716358078774253481866599987806397463426682336809558722743265887480131093685607357707871154444190655805792883930678177358774973936258459617066250545463006980257429975673633934553655539175412909093771844796438972526088060741086908383412856374984065205303960369512568603969561548520559521632780005776938005734521805607955059100616133547289155935685716795094099275516198627465071609447839132876782963021342279724789834384494439640891313781945136261233304453151071457738247662133994566455394907550444599647748701222814997708345088499615274184458299403922907915950735986011379380234554440521281370639653320290576442491110443685746545369627023353757069164267088652930827467152310675777570272734027902441612316015308445882325911941458242914266094867074884498720833159558021359983174481308070546947817172667544521290109958938050266825534772516978953869941078621609874282813761527894086016749679336206432984718158489052359938472064601744977592009243298370232379532126249620614646221408306888892750652332530834690795641985585246918828473459688957040173416493424894451701766353307166957479281231861618066336667695112859547720432250977944099879277233701816743041306807840163309570834694485227796438441645829535231072125372500831394182681863175290927402760063097881931175650464432723612186665398664058635367239148552909278162066839271882445569928332889687832601533801774011836223886047792081232800824428911410656491644420304223640628568927658751201631647052261780995578372813051276754265239613307055161919660868440701971260967679322388535455310867416874264184053799212150247770143675791530459333205511001103667037477208809234104023506146374322377187025513829880465337930343929435996934549281798344485759384872181960080319352597301459163862728785885960949761501968220200289941194724263682488586165668220489932120279680145902258835962420099721674976116041846971315038513174455929649794744566108570195204167542315654436279894622102287468109448078088916903494230569775884222375371503314397101654359390012575053318415217210773177422010757908483427410290945578454481637844271967654749314928283436250529213311832844517212018651336679478613996834669020012579322011476384364308614592658370107759858870529783567488930912484992879068397196874907412103296618016386533272797625452741059193738546563380706670635593329515587472176033974522487544836557198955159439027951991419295165331510832535919619522778990306767301933386853980552970521953114745886466757950652246187389627498550749636380076714694987921469763837650533608822539907044196166457076092214893231062679326736604436100156722525220758302293801533937482748567854026811565360160106524812708177320824102422960581590979149811101504249994755686361115652641478094756382708959891041417693240703197716098439361705961869683784566480632888776139264080288322548611312810408168000940485954220838481195997354573874003146673208672609286482429484323810309991245351759604070412471071720753560735575727051816471019665413225265720325378263990001426057332946658337601777189243282573662722331797379510084030937035820889929200108959199890685327729169379555557697994675044634799782815439171539513172173720665288409384233540437510828195133711061554565012248173745075916534223424999493155575657685339678481259690115851733412692677305074131678780042075629375308764661072167976437106773120427305800638455819306103122525291077321703442211420784611001860424438326129009860418915672090725190017737616324805495482511897781104395744617988949355549991161612453717106880175826553581127438587880191029989912944364325932502735707442248674644694131376233925356203126471335821758571687426001440143494649343927016697781251503163650899689590931339625042786711640525396970762187668167753640494933464152577602780766732053402805700305752201831237972498777278725645613968121763254489188780210232556258250402832670730316179794942476436914338991932209340821931134000087262616084642006129851999315661811610903058195220587226459451256372905092816972735673791605952780987335067421189549205634144010113529203282778436684191778188496898662536265882077233328607384665766977201408138657522413254176150031581302269869134687175877598499605261958451618540645452561352084491073563984059336694003959181908482021234531571744662232018727019301330176922422348051758741640305983464283091570888512029775590373454797078919719473410363125949064909330114616603079308207995548366719801913079923298079980128244905384667359889157630105210489823535726877045979015698833782759645336357476963483367811741486369107465645105461885239221851378065691812919394285718156560856004142937644433306248843312658076137370548350767173339136392384171366733322952655927628270400209496620238340209266448945900139970434679468066150166846651309054637264435244076192076869750333334596673986294751757577479720265455595856011952596965591936375572325912873934862821406373899249531891812247786190202012963490836641062319414280650359664812667584652087971614200311083671696619933747850603480514476601561270889855634892311088077577118093599148286663579752400800141933962843856907655633249305989435743124189220282042185340254848918435428779618008939152188931867763530959578540799126645240576565822193229417040084841191921347404801369984729409811104369836708052075092210306329736443058056069535366172236636970557559804421466506122739031150520585933015333415424788397008467862525869616098461115270106224932355855349208745291154757095391010621989978780813292110311341918409353556759240649662058361982886834386695522021758592641168754079064906362245007151981001223207434980050848609960210707009841825188864544244791533996058447588464725203652467264293361031676992220682370017402894620441247994926978272872755458522930069830197235785660315125515471000361383251611365406367743596982198567202337836817810640920661014437698675657491617820435188820743291654850240845964717191933932943960308601737470150666427200674350929541648887283243948754664261087730233401935875149768923663482460506473662873876791345498719843538678017822691679372239789506250476197779081405269053651297379879873435630214708230621201018380833319020781597984219397356101234198996139702409547308985946500005594125999291369882931282208928703619393316114149826816965133564842254929926614105102027643781006526322000632183151100466929358792674184702968780746574026449118385863257217198849743683287123532080968043096291835166413612404550407530522790489735294302920721504021390399763159552023909713523583782856232537380703975976527985270585928854751220919339731043583691266865516563505284493762741347782700693216949321459500243086741047595229075983755656619786935341317309396898121870299002260024249560624577292435683794396165228617192592052218000669386964990803387273507229254751982871027279783521388220828947880932616020068917822909998415820510893392573049343424337916240117428645629846586258035101165464087863368121245361800474560596028444227978823758852936596587621025060625211502172029192438624487827404625678057423494678474724439086244970098934923612451670914547006830271679621103990557073473458175466114379660342535851476480371519123576675918307295095543448766461122678597168269834047787162636797732267817787683065237577384792493249103584977382237175196440825796626804547686976240146198883886920454661699548580475672508858523854166541184252242864884317625833201469202467227342802440388345283088525588760074603824118117647838569451293738049380576955106396846984545771638293837810376060444303738435518037685958572076712126309770645346198067115915641038969571316551239083507868181564873089756329923877559952378180129620388553109306821995954047214688148273987949801261842573897929915420779389130299658099013372930860653488625705248576383495243669497767343793847395262470230314442129468018037940663863568411228097658921903308661819159479758254973490567165195859279402394842158019783155449930449010173661564008628172241392364469991368614481116898610253926374811108335018228348773056301930533661544698078523096062798890975849564666107769724934208241206821753687520456415434969780574445968906200872952943844234967421829173935902026720124126499078078522298731200641895870203176285282806823843780291257359907887102118028497195057064459063348736398848961957630148652975495172753088457915642254342419866408359319362310171200926110538781445690075353660196847799006532301601855880815552868058945803111312652409506014212995855973615979701263992872935175184644163206152116691187876261258215582235484154255986666917174170982483166541694985050918872433693732325462540010496768843216438559810219073221927310565083396436963880760094448845496003683532771308377129913359433354279439447282356079775693188644598275056674892021303671147607619752735883039126403208585528084934284518134208986099302464992539202399822250841305824057682978504479251234824154094057870977462056285861198911817221777854554715296997504963028192864147442926281482448497441487434396588643251800898483224756090576706206317394955931021281818743857380908812025250841145385538386735046424341340071766432507317473932564973490386153220389178134720053864102060532920193716514702225800570803243128677854130502743375059217691828398624933138476673936674878640694968919567870893697760673319319076724044839578379925184895411565564862573377153257705884789365384380314247305816082903496129229612647244637320835740543119930547198313482298562978801906980176023700047918479333841321038937107816774140732372802522975772837277733621445889024131509123905268565007547632720990741368473212854302397891327098075525835156920870797454435498363263671581896173981856638039894992320619743751330813577751249782179049808050327881568643107131154665281223085110360971196280431245668155833794018768499264017168414631885625197768631694361779980908772111225488056122761229261283143575166969542212599048076736722152646789488272595870721405790827143175575288831856400541355282674154508707560414373194791193813406660912366456937017628042978980454394952019623500555391306191075147202771974625594752721023961913192454890106077432786488815638584202353884765777259841332757972470197294517115819532152838616658785704493022173387444157848905887151032419823545357750289693342387233844651447601727052449334418976153854855522857394304646422813295954995951194235734842536235242515316299233787241395131650015105492231383507188889196451182143328707374021203393568638772954022052351832335195833145840042393654566434384198244828199491513414527509605301949639179225059232180855132690685308818809727742611628338224243579850069095050921853750453773824974765179813734881203039484047237403050602985387003679588095893425659757972053038696858945375240054999688851628912349888714763336971460022627432873057761861841392150808821684626710729303546907538097393422719562496848132393780794593405823647924537484924461470691063604956219922649703375858877467192063343102787089659536246685099886293726583390201293428225308018311921283550043225525062392459493584778810494195220814254477568533527354179877865188164727847422146777357352248640081692663768676535369058211732003965640488723080505486179591566472411844669246064978177697174473987155244249903018841386128342251586972929657938141925405198155422207107469264657295393947463097895974549795013538096644934275091599728536133798274477092288904267412290993762223216206617221952504710568587092790502146701606669575201088521906691728520034423540095566648939666572078464899401537932301713411588549028931641828824037885408642662037886935723374229159070114870773687347914341862608965339344768008500813065866949586717847456569522270231637778790587038225871181470957631868441823901186002335486829732659781029437357233139885412285749862581272861641218566498290346767137899678042841552669931638564257164211317315925840347110006583300984894412154600881590881320926863737172545461275939438690278696131380145702958248794485100700693177100246589987548507096219175451911205284013200604152578118789396883892073798702667526769510628849196688551275616119440280579916647705795249701509617112759146641636675605398563972368362686332410415277949076755965448101147967383951767581911313935239409519769627306193453333903084707750063603023377296852787803166767942498834766173941696828475856169071617741867509856055008285611432923904740952779106347774306495482985783981864070400609749835735264428566050537540173426154364396797615322127544713595177615230667421137220820479397913977747684008240685357080716015108961429447944382650018571532057080144899024495046938890493971383538264165684916975069349587994617898020599385391870540925763340855871809400760471606291293693904122777378984385837324297288555794604595722406805819933482520941912825674149570028185657264412261498604914213792390208027644321969143840168753611201912355230383186661271331910120503130187642105252620154638458238092955174095474520040818549766936477477408956108207218518522411165543268329288535911717243727618476669409753114235970419941068589779217921239933707869148456275995837093528526528567241625009302044959078216728496032272574095994269148975608674931031791599764254370114515856837832040692698791092941465557917585604158180600934788882537402095675671447493419539750099881716776312878243427112245207514006700480841065464245897405564793451549690061704389055227472736339554208946028414313022765916340775887490275483944232886855123061981731389487942082411852270463849480100826424309905507642519928016391911696387815564662092561345513163183569305837613772436316959887015760451127132904540149349768512045896734270950527602555973235638711318247191507509322564918382159894035337568608340545883271702638031424280554912852850019120432461359436048477505204226049905689987791807727415194538776708760164010248562863326964139089476211605581126891151002329403517546677379902415529440266721194801272871266368873726637625897184186221329308863271289608434830173673194393158423725465364609481860193042952930142038713335519365027669846047713799457048072320507421523167464797051158041230980471662226030090201317276887266126155419090131973445331243523489352581666221383276643636334201695160808820013584493913023166604787562101643488097147770730179864814937199539973014411212532735359196127960492949485239357623211179606654638799179240510091681040476913856607192471865779937991731790220954192920888604722558074197739044883214654811273712526238772046407576258858957859037904137528916348710664352558934724356534537044904860991212034902790707071349634249123354330471795441472806014942544941857837452552132340004652439536790579463082234163055940407192283705489692924971402216722799368990931002705628550864847047440724245148002916416640499395727873977049035961618225487101319439126700245225225417375763864917025842834693289671143555773250093570868876374385071130045856367805687600425185344463523160354888229127575083606646099654959408266957337831806879556855351889083507929574919393372918520222016190261014034144198435522038816741081600090537738839951185773681360554496659362779193504378819451199798328717828913303232177065271675263147192603334547755621771327894295109643377855678245482386450562733592436282577624293092226227010870669996317271008724469202266377440658200393939964538568628365776394828606068792779945727673759516849172724409662647976452279003860817672897280876505685755936004973783567738382102667763700847588039384878595898946326704714890051328904915096076043124519991869355943997197840977525053780730841816572388862184377699090001464029849784282107738984283539449611474607638401991160755754754743091645560523891553471769807862897116615750673256819268054758003645426546523280134892568995867015239807315677047006557779493709348934397597403144010533388029106326672428977549478538394566204638378194439501991257747600246338655865716511685131404750199232017339781942915157474643036774523229744516113375576738382148597030116612854302852457038402902641099836344910625031984969760792368024408611186248677377251779130739062403380837972490753930158820325149284853089952156972460019077665727648755293344859067949562357772611209185210489525544313427057191724652170274617730795097391400221488726322285084710607310029886479838685858722530645742252174425074687884921524947140650194554607574655081837098509553169116871880569121592529012561322883196603411345811612646663122914040015542178549871077638669495106101359531937212576456607450264083430711432944022424039822698021122731981829284831500088357092383724298997187708671907597308400861844897905532207965280485540909627591527290828590165066791983182041750671208098986861878610115461648907938726498563260578009840283040371541827089984926043119279844683849332652807202076834362610272282177609567516388946565519140263820312606404470694935883106268160454630042124137172831514183168939443611625704865417840692160297652336897425701590156593072037492332156975610215035135933315237882235798897314140181821088179064062329394547358462821802511643723973919845228401536353399483561274615405715174309072733150533534265531203458843916572508817205020687780719555523190997372805325774098344244502664672579297359583047235125979882547432827610972816856674071609374802226454666966430981879259131911606949928806252699594697899660758728789625065089079758392400451223900298930500601312751141319172682950617400134326537670252764522355917994291031784330319445975409237734066605961118831263186009488203271504945017319192879996869207417533279817480100489474190192759480275933011512328553094114672418440210610518185037174595836116760272491610362115430725118256216387444576479681244388996401502056031091627392649053863685595215396955068506252213120262525301615600007579565496109652925111103754542048620406817579095410796070120784974164507155162557974883497956864925281424935766858974276708607491562368993524581335882128902727943385261634177735361260953722368525817565876134601708867904538999867433087048055125959954484781472834525546161898856499586745033097282041524558458246450457045931940434718941677077961109252533965290114991394842557924226049610133247806149441214803016431773722651946881492822680775816418216126044738491614381500921481001141002045668420884169506167173859732351491828027977099941094882621748488286254692036635642736590071785298920277452543884620732242724643439404280111547477028759612562492615063320523275722026449021205262400873820929825217851709166304408026906728596377929895167284467120224315743687720112668373876650671284678257427051989826830649025203659746885014338207290974421116203842473983911176555826894958359586870761264389302043777419638510495653165749747578929070311042135419800912114738289839114039097673276260838557497564162571753932616628940786777713068280613320260278022269169906674550241689204672743108112803156495429637209282457020458853918888400639510294968745166195397379441559234444652649228270994372911867018601590553917477154795033529065602923634621197777625071437955514959390290578759292524949995616671399520204750324358573327788847566975898843066202841282559012479330670383447511472399246086308580884196859036443450722330727575171255374418739337219092365745880175755972745143110289988308314036091431535508712652411500905250979560491381539805824812930471267386957516255674202211706825193755455958639152604106895101839130768187204455474234571804046428751397475658351405467736891869103832786624328741553862671644272852368541098430497476986960441489377831268312363438315316615422153695748109463133397679095413163454268969023454826402310797403336329195530688819161233408024334612591338366982376134006823395664511252358993848580674547930417244430457071306213711142446362486427000335221241272398658693203799314958494056427421598169085941279009807702795699155473980926252906624467313339560320880487405419383514665971947626351027416493360232171086688816717008692231269917712484284086494781234657292126201902782363253030067637432149911013447410274091928353630198753473462610137884948818348965762527934351081943800972468247082731728839510480980161352260899922581849676126014326635028656941994174901005461791707403322210508773436248037500179485909475883223385611234169984077655099688427468644518648013453964153045742790684776194291289157074976423858413002688184182792359933788908426186562590200429174419582301679585805798914968766820251639466427445849179491056257660707341788400401275019303257844445933755258141393729239894068754443090684171620194871235329146465746953465339197295915277177964492300237465647510398324783617421705125821993314397600053318535758731359741549275471238884623803105447463485384498950984410280433583931476232574512040632794076091559510548966365731274264472734967121842918240869851096310208079753812855248248987468732155809702707838261240182339500827927235488486665142357281971078529102808142339099519504244407856028273289562038022391352324932589227716609040043137371019454307773625837597872682923358372748204449000796532441585016640704844815223150751041934571100243213354024462932687216086239249489790725304718976302890842629669683237967397875428550165893394648422968747368563208591920406802271218573893141717574637451724476821350483205723675706353477185073877545190926543518342801431289363434437383823159816221027631597704420405143448713462899124643044865331487736744353735539129630404986777189952129477403303395766086527905240086421709757140728921569469866710407604285981798732405639030073286734913088839262046194321533318775615097562031543291716102808593691773613128065275947738651504277265382443750519706863944086316301335874380688034484003613919844625162687938449545448919725071223756363659674792699501262605428730008347664778393744057818474386132046583884828425549704012130181161704132972019765286478045584569357268497753047775884524504610258530992457461907148848763714552391719715465653455793506226752738599225744655200539964357076653687020198852177738878465891550535738664569536772295417122536647043138701849465080351650978701549034691351735001076116008253255600151958109027422208664887961350909777840059006391828257830096243379789381481614031154284971681500293721631376802533073451439143556867195803870771261282856385437996359207010510737997770759564023688313123534756199392486486803966286855222027965392566564123344826204644843422985545268398718662055656362911115628814568423997436755257628057274642644065154423088457188284031338060205878399960521335296728397776727275799291897045486116553230781105807718612797398489048642416133328590709408109643027412991208828751164999133137685262346273671921213502095729196901703424711778962143133052498721275071691884828168024428200177555084594948164985030711179055876335704517492724883079002577377461194940537428688525429024275188668938159031645793160436277515730359811579875812706267611201276042355072198291902710658774317691139212151141164182160326620568245511460549768052820924027058361982265912540480992986949859382614613938882239966779855562627831616099904726297500580076220562914355746722975635815813576075114692556112650446557257290244257045150577178655053729419909142643913305347289046444927744593980984523906843423266853103186280445989804248547065274869930535094500455675559227219645322418452604159008556664866747585733307687626969029266856591424812012167754782208505754741883358017715608526272177194068629395050407683612384216801590442428604964854928016174520354913891438239994305829034693292474286707873097308369677431670112977375943932094976141613297863453665276760051692961644246893736877752041378506213834999203204311242699142638319852546946807194557384969232618456791133129939116292098692006102557682751812499957850095292958406784194640928472466660719115851099089893261265657523890594284206172901621099498047999711647844945266467336638004584120132999281584422001201531303377982863365978431670990393581058446125024225675356479859647014237369038937035774533656620594795147009960681913588482042889287905532593685099582171436308919519042120565305938171214774356394422264453774073140464759155641276245162651404195679997660183184159946900665010556743942419536879565707394315774868302163617132408688595544046884838447997002422983493251379269373302650739215148977779609220120377809750998202161575144900855775216876123300823671650743137137429974501219712439954567583849445301866223412259620634118987237676867212232457473779993102352594355938208309442289471601079447018235230543481796330331255916425601127095025337770583679979967263000898816542281859576973817227897071088171677138309760368905928856612707653293946385509523503993944618236914448600667498211021997612783951024009145813815268463898156942974605571168916176251228292754028255408769878626673403473275842233957225074396717459331527183871140531645141955487016830561536331479450905014212215935500060685779310444948183477531744046252223636392316673445865144253403122489030024379545813652189241129543478257487906672052010485770171355344214100682342071246274480396173938207984996083878160636213085837606143494443049009226331682477066822748739158752527002982199170505937466625137563444218806401040024085624573054381826925290264211532557711420375986442063669436989687526978157024728619049122311183863822524234646460289635261460922650036311739964918472574429686533817918737859515872382908567270471519861956953219517840485606054089997737261922928589023923381196018765185331997251456733396825635542124960075490301909303294726464884596194689163003127655395026686839708412792797395223084381316060857321543320185120549987584478938381587008894348718465975258408679304643018880225850247585994383011247622967036319693927977850383321255782260246310612866888384736344461370098747480260688014518566103288450127456776321080993114278750873718208713995137168505161505130199572302920860208806727861724939756718807276886552552097583933248228985148074983323677698786933615321121108422334801372730239447151791705112553905682861891646547837038228128180818553992127709787932696347791225980324219420990235364343830092593608157286354243916171631334825092522606912420400578412289635356356328120764255962733117312047636830805030841869838580403011302780396924476856598673800780359924425012025466908898871087911409751902462253333047519962321251341515310377558111000198963980842626916744853597865431839629573120892988220394425592364096786934053373407125417767766652203822332481949233530485306473893942417189496405681685788887486552803128380429866490016214359084978609612715920240028645728893669326296377250483355936201534988795569950671901127732231029649194280470272683036064812954131522019121529614559567181406062382618085423882051187204054394793693465028607683217604707177595173594049144869407810561841844039627210362880638318730551226310469459439800418451503135001914273111340888923470529364222604564784691374549146222105852748157176935341926396707318813878897507554295348210992740002733701435316268431748122884166849619775903070607438781997652049568072838290873430681272626749374893716638253604306775060597101882329763380977696042982316369503489746170304723169581265175310742280465277263845400566423849181744674460190005218384548554307193926393189496825108670284377628876993522426789557016827002051388421912798369600578186790266944600473881722462939351980033755198713266069297838914255891080487804558792272457170052252139492474930594078594840922489917473833386866938167801618900745451885461439341183933893638656449596071656829153437692803203435899803348283072489781887980613694618033063201903187441910488768271921320441984242235142943186124520714874375707762521589638827325738412864257234935537541492231337589674606206294455196601507764444310257220486783807479179215467328661698330793758372032497918242596130063351146552826794237992673166404644181695167273255981589764885315205295783526691219917028441988515959130205939114137148811989675925577857054071282703809005958233681339037179748908887298890344234908395609137835005445345534817609758538616760033971870140714564243944683180218530085105547208939344523315369113609397174176622947805864415818485988904682531608389086557803541068059226797998119973938631146876203930559033339281296344123285642797395098235292559899106389140581946439175736350832592152733394359558874574355287846796802797916536884290523867739443305319395036311517215344930604947333752312789459576527260871197944834006528055248042411588939057574496668622333736922585323936746359991489987040291632921047306652540396924569746961446155669558849398096065899131174301122758632068290060145927345022698428891177657047625945381783605938706051521859092388119775979434128764241018465525391785674110755330265061570324490917868772575598274765697186060773397799632285528932459109859451656499651664931210828723185579139753885243732474483840014726430901250409401723969796607770771029384943869643251813768391514535537781061756363018075834684620223036041700021644459357264485087187467078803427102821684668884433817790333745547213204755905278521728227673894297205197755148319240840630148833512805935416637665752876439253909252636065397852231145410490541823907143178758116752700849957916778985090631154161425373179249914767837676627451944992909337218041202385608676914602733709074032532364138490873763755191704314633388776216763695195160764170169098149273426053399498219614222776334346862694459301262188688818480180244783717043922032993235386341002269090256694081320704913611892638040883197169754720488307324688390970382062556097730193073302599168300825618503805005184805217401582373149383764438987063345779966383611191471798888511356039986862361455598968635793777295676303119957707606146688097698770263834849969474929837889086388476177618795953011338526341964416534276547896030386640705311848542884141493832614489217558140320871682692432263332431774127181723540970621810515316295900676081296553368582090463847321647404862390490030450877367119160061508160525908002641107016393501386151545622431750859872073738041761316146928754423620911815102374664301741047523736333389419081563461872483137238617960689871898132107799686644395980310936853732670245294378345045533484943397162916286082397305668368154282143585335193447347907388412273161771553603667367954903022486796644980097032012544284308218052960871943133017947617791698435890475457962694026576264554218563161967774572965173315975214450744653429424368714005898598930577823915045553450577699348495414068915139061407651279573097536443487039204745326978140827713820904140277528466186797456963720367413400326172101249010911266132047077683896757547196021925505380790512442324656372063902859232807933381459176815332781659732617837851468888426678381379791182643467474800648016603297478259134933366200697068657048801765955645745983422942422586591027863984748241992566713472610651832172395143290382236831163953796209342779012925536523771455378707738160801100474846559457747071210514745561958894705045566890515042059493918719842186765102931105326338712851141860368337075667049925104166688206413140920317275484671649490292859165695945992449211760930058679813601734542520881078730805746887245618105292318222276594847424470863607969703121275330113791829781695449082339790358776717957526529490249075658792308009706746421476876212969148309334927602194571784034736305911335086852510385134280294324327339487734592687543525195047680490874667648936443387467092059348875223962976045416828357839426027002917150648420711510965357336862250673312567443944170917088823537978651983928614846314638905848850209469510782101115141470637992504873697869786116330718564455552619939763427098120660909656510561108659474196377303350244860539029547158928492956849332248562863019795929116389499408037655211345809273634215138514478754927424959570750171557896763532381196658064609067590782479555924440365964646027942607111376996019540493248871316068874052522958351558171997249529414789954237857000128515584262849069864574452709284205728769546550159513953084977213139498713480419700398462296713039223469505752555612528720574452332047069501713350803694938509062842525633356649162094972798456635321305054366405896007341062286930473887292359693283821440723823137130644032309148950330152243577186088189452183036093337282664310544507763815819669784213301588433383958377535575433511064733997667221670848375767366392867197346054898156539999018444648075680605187988627089238000431019143200417506189173855729338397698707728968271416234406065343043182909754812132196115732446277067369614324061379892180438480615825632096180834825665405287662720875283748321983094956717743674896709945650515700053635141044159976566165933939579797080876810681363660893616180043859055278118748852782331410851758370818091587868483143211388256365797340968687216576315063610991927159757891898280441611798808020769720281053497344728090316639631934912272008484336090991223829143382298570539097393921415929862797536845579035705646585073995109236793376873469766814303419936311696756342802787491991049771753774668093304955839410073983007123610896383357523377382858505107553468075702370618929407609679609377926040396003167516497570307945240823446296136417901178926695011010210253446811854748936892928561685619306614876183905327970877355388636892989121797936280720940953504276373115940040236412181486221682813434409477856769337596988059388971102687052207498455000493797976912790093581679069185167191924029435269382653634556465550983277269169129861439507426688630241037312751643638313437062833527374005742791259952253443960187255513773476344108651873522730338830269862384583861898982024115820983655046682723711767085229478579427134567862008937237173121911681655964233893708471763247402034810041770555721441258711710328975057475385924541422064379978924137697576305114750912502680298579810883457375053703347781908552240697193665672488273831528157287374413903948434030062520890810322186478565792280080835930976370690840479259471233308384498801072419442369810307586471046609710744563035646824342666628316585129406224936060711967023756021815940975857739670331058344703288996692653194202802058692106623339467055048679494027296494168189792782229714879802333334284622805747936976170615135347552087077196066028174717331966071550313170267532031512625202682921921508551939265246269423689796065763670374098507128692796705021327197810055474926117294232813438647317082254882562570238752973664285580967600672425366844175840274759246535362494591367945713865577716714427706025784000470156869193269967223492354462723818380772213114628619903468279348232581389066897487802083686822052950836793399316602140064311067043010664425580385136003873098946521437840137180956241145594025020706978744000046460912418323468258501896774985466595291606356020949748921434965329439584225562570550772924730725359505718743278948177362688483102030462891472057135633438532893530311182659596398459721014195433789447461265297291245914455406212855591938141899088656573723782707944663795988435479518651210357718216682961925797266612247506056755048412522759083516421757511460751220568896678084072746309601283725029585750582844465127023498595547498706359803010132865663493077631875445604168992375450386882376211367438115254483558655862264666938373543768704019432392506042554183244771318010222999445846547089358816856360567864065889154460013394898036947018616101999641187947779969654399471269789270253689779011289012126011238694338292429996452773710774424708285692946437789331104376398788253682875852727554767736373409848816885508562965688150330388366546246691170037842985664719407506750920214937817885036278878153980761652665672294140834379102367324072649853252877164533545742450094158083960132478282197375190335344333219768893116324971908984930747004112547197345860591822089189770038509513762385900067337085188587742900742733680175286920630478748573758280923592104176015268689549154727102109846046493486000477807734556734510293265260290613754223033151552904228328997085193100586142761851400256424029494050123390561956430156839603686718957635485149963045821776729938145065006560442906830351089783476916495694750384406068391822260179376469429724589528366249592146509313720100507634097650675960923117495109952352516363169924388371728603734076190708926776450222754517120597561408061145740657436153304587666577200198433204304883549780311460589547088131007874052071145064887684202559299128745057100334204729129270586742299933369893071929698785265772213123786767740628071877937942928689529337933028938911823334243544091846473061707286769680827428070134143043296936299035368735562190241068071246693845145510387418843914446771629156208053257019428791926937507759881762938514811197921761589753176817437905949404107603585227868360248530444211074075979279182184075020782932749599424643526993563619952894319636259009269597680559240316849755462110469820816293259078378812326282867690360793874663371238966679960650868861422878564754029180670153998231475217544706709164957413361999306112197041090463548495619984750860244662867024122562321423033252811592536559556258994952798787724552417018015051526186740314555862918283295514906386341924858000111229676106723990796209094472977141953720311116146202767959108963182619264963477698228049601435371495786477676586490353875678072988339342066638972253982929998807081138538878837988891642237882797004402739664503210093892758112109997998329596149459603082008216112416958839310653118789218926282657207562487184844998682805570529697971410819861227486434841128463565660873215702341994275555095494533833885613815683395306982275796150154731530195116981406844830285818178724135535171598079119510956589467677388626073070614505908364448606695827508117116096576020551324770613071822295438926997859802410275049664768943312800042145664245848873072793364647164615737265865657392780092758424783468478795116483731632122539804304130731493820713536429964254912283445045504544602226360154730548314328761386193017590557655072695756192035497404228855905942396791028355681510911219763655322386455144482843235994602469125905175192537524892533368976736392701519635888683749249234239965852909039167558952196075225487032450590475059372558208606297050202142432748067958169703174265196827139902066600405841747554944379302917513735760744521688803637738235898599556941439879853334503547059159019844675128011943676917672200756473583481263056200904934770536092662722636002681829399320432550946787819176862582114855302084326910113030323074720226529570871672832993434037444015256844100221936655516819009392830362094879613643319071784076156303419035995372625907382417583607275116972585025425884565694053669760425787306544347109441215564256567708917894499571297808748140843476310213549781402173317507015481464536008290833728044638409705055754568689884340589304678167726797858876205543509822243924981066091357732761362443686285548327645411780190039482270730144930684404690372673644417846240153051401962366754966535945462052475962041472838654543503737789804324198575951011066252716396242428330892705370102804557756591770517233963024918160089785210476348608327802847512282297634695833424742468438950568404786513430591023812326705947328612033834632745647233487755084615260014901659060830225094577840725942887169224321837860706724098978703081282449463922714544410541799181317056526959106724136727809823728357662252898358393560676313397464378206825049556572269299086685564463973109527812527540364977396567214489680672068606185659008706320183119146227420642447063443427618915357141337254565317753634416015710787158135529183915793970023607901694603390806344862228603202466318546368228106732797693328070132614585677120466838005158518534287390283419895405211734339575285287896404076883013580251027527420261979540070197366754654395695305481015801805592784171965455541943339893376152902413351800149904124126134845542426601971355056623809512045404436497662340768222222605124828570635303264185847910374703395931121203247673661716879344060349571262431706757657764031138543266142961657250903764080660236893083897504736378759448849786584992464807746205451272031964426711591946892091481643644900379755924460773833262394314949545714188388119848727430813609206176215078316826192637624801614975589427632244639988135310671964578590091867906204410014817671360617104211103345842082821194671807451757666529550249808135263906498582403186689851281412989386467797612545967174822074145097304695044317883683026451795631921807546370621723693861233578575261991936957793161939565164334000819528204024168378953296709771938554237079612548106904297288325905106463763586438189575674792317581657621607397347587610840200242170973469012225113120289798671653880366276370284157428110824036431456043606976395118296061090460412265882126025931954365449353938062590318064714650542132627817459460452758136028440956517924827506561454893429592942353039042468170803471743130940143135994245983856138963313269615203284696451630738773310619229609823067458351674402550118642501969191886736709120873248458989355678504035143877272363113919446647231121548791018279671086107836497881843109478713700918112956012689865942390398403628428846843317457668176244620081020034688621952714089433075121987786047142230857693322214420005630450353029461187700110498723670075203936902515182139810377094992581311538559690633031549614688824260279561201717369574204409797169828858731887123122883224815356498081083358081238460159685849833280308882294792349026285481506708585990322298024044314328054200096286573148084097400576741858251728394976619949419344442401049278035224635718181193696370390115299657538811669756093002520519257685992424458414503145678372979283527393428378543936029870966188228936908916502054887018069852963222167531785300113526940656013916128188055099617153607522750887274469683745794579006675930430583101902268014671847796073735146340975815967662329456846732884218803989989147108756303458264400751023321616411315999445309732093396879728735852760244089408560870912370957000788559569136307021673183938740969476034668432828398473745055234393300849179291566787837864805033412338350781643660214484173851524144534862416705162126837814791747509359532038276695728833472803473047156643227879127829663071159988356370090059522534739817800248385087222530112797875736181302415584660385056615964823230689094049795065965378003023477673449992057431390750894445585319339982161937058258824236458970611432163364288864381329846022172177142175564081914861075442270773677009499530187818630624820885225763805864530804410806489334475375539657747623231032815267809156062388399568114490263078943441225751649656352203440070209652437836989718904662641533324971293055998231933455741849344035018834442317832704275227368918508017285454337285071554092668131510075136551404898533037209992437233050259304731127380727569140061848591454833871070452786118238342982377933264044996574705376549131348688187693076558277651729920649041241920895837490266411454773772471125272793655996824240456168740458718170191914366744207477902811479050397870445741362143102724342508569065430795608329164976622105182919464143038886404816533943606381416039997795022216931711858762703678069845954185474557752770771160263338898170112858805324794335080262498762913402675927068246687623343622877817449587837283769839552483962722695784017005028128951054848287866053565745998489367704704485423458538668085820069620443981238276906142171290426069527320247823659631703153391048592635892604428659015419017980874827711242398387458643998343770556391053879152383448522454918328760383091545751356535391435030555752807284637528994165353851012549775501691095791589569293954767355019730243938422949803645397180725076404468060350660687916146905331471932506709806037989793250023442453044762934873749128718398171820562116247131771289897443854575740081411747581694347879066053032222539801283462468950773438835152878510738411327112237719910536367263272917559246600501078771775275622878974294702341565059068226526271279882706102395285114409626155343906649562438682742507385079550224379471176570892611513524964909811452188233719386354631285942201265789218324522223195856460013063358269179120070314776801282780511001140918057529819210852239832801533057213267644371139537148766844849551812357287324069228680540272619134041176698224232619155922577421649335406615096898393598484627156735079223697306453575701778691853078786548771168291749597506979098274724866326925087023773014618459093453604015952374075689327346337179539663277682429079896598654461278594255156309299790783913464503218730013077435522419947514982732959521042818183288835750208405746071241011574616907876109726733423699144327396167863703795416040873433307587279441708729473687891448591438168390564130882357817167264492107526604532218530876610635339660945782174683582770048765819819974127266863843840597017746145135170603493422309636912203543848174955400182988907112181186450793579777214552372557959821561213595746274901039848487907534287848456414360564717196660602386081490916592470768740739398916574245082536267562229002674510345793664923007223383949433796530470004271455100347376026273377447763003419047642257115086787789966867708588515025659041533029481369148240818939213451903754620432282021652591198031874907102926299118805868160854089398119940725322979740354586395388879165413506492560795188023611757375644592193282453946992989506428953076056899239695520395408375170707934555471228697028888958535992027777825191226257615074790540960035549088210422607146627136390877112573150880264977151460806757494541410916293135927538139388035626824124313142430530845920657935283462818737317625096755502973683685211661275897227493880130141340706381814675506989547947269149315622193415764428952306341086500818426066394169500406408568829082074410893737814510380288491999697022536576458516949433195497658535743183023510244509742373084228743470681245802089841622739961011801705899819829852560890006225112832129524996215861013320798396187378946372245743985978749855650456593414546749679333754745250729042377398617654363320467910433797993904762676323663407472677926444721262941195875123944667335105331894370583021284236872691165204836984677570882579584075244810050507479030590613600897653254648431963502793937981882333076501596593227581865039056006001648301215738873823734314735734499468929194024279752708106037157793943020401478591487084164129386902349717659812071014996329475348221965915134174758924186170585303824385359297849028215103241290464390822706696812368166872947710004224930824087653578007192005320903366742925206249938307999438335166806375936855857572991548065334555881684148391644979200804189786027546607093153363324441116427798266073458478209416211138030201009667090452705246864780356509198153891302433223219953496050776161484038206764168192446323342599972179372278109475805630306624041438240642136529526141239829403375515644354850199041878272957559991693714599022595172727351041744517150181508765452844242022677954991155804002554536438696931550178674322643654092025586098535737069168958824404289785893063087735553375158385038578719559221046278369157525194059469841373713690861098079119194525165365061848657614989205561914300021878034707507061114536289718706111697830085013735637440677297892432511855555210374394844470036398955880905860909659921510053823122657266848487143299964142781150114783135762175986749250125374857405690692945403056932406655160629513434426830074434521117415245556742837282013959698751182129033349746937911828093500324954710407361807972187608138632705471082541414094566657215952800383807673087983437935873999884099220014439218205071181116465864617069738722573906410495012826137428312835114490324488508959956655179765760589154129299341304378664796601375358854936982524164550340120294097660490955157071762515706124383608772578719110497494951032655944765137494711283304048695933192928882368908584053557448017899063735668866021732048061817717075931643244566551989001568024233617119984222262793872249974641012595721601565283829603948141301078376648349360721394837707389958678095641184212256647437671265980754236221586769340102446932159899415159812281757884615166496807537499325977679588084940011396413030164608328851337824905863513868141771801613876795723633961567404787875753592259616228106708109761766355254350646892229572993502767054117608088248210374133364077913152324739756452532400064348865433619576057884469016605546981970590450708821254270018879510730796381291889504923206306519794588167592944057213739362838150451051842961007112509141627849916173972062798675799299426602433801309709189384233571904147111534357103769981056032113008363430730966993648357495997959978792943943405423763867056770050004838782227629522572573544055873988297754517364857727604194232676830950156864148474996236042653438570845291575258488186352438576081594861542347887191055257446486294769070695957035504970374190866189558123816005472359289035262128266786387066399879368300506633098258641512437617074359670414803306729327760649037959326569029554546815437378137170756540011891196426100377766980046354745311160582155115140306004292847108912458456662329211238059272604622042659013243375459100925472932307527560771758285466391720551097395475458099258621974102243656318529730518049704329074310032154872552896566559526787250208975927432532163049845799862956148550142081434385801485455402769560507270355780119954777542352141682379924282231644099757025698038007096628223974524106810502174060578510207320363388737459135420643997836245514484073925204469353658079003434774084364920851109756406313985743862750872142168680017058566048338857446567646362780613041453813096155650387499371724659609716676770210337790063053040659871085374264603310661386260210970982139154266154866303002014042674563664224904610376412561111068407962513158106249259909828750748485185473136227342813712145863112029365669581410986233376717067363779799508601514789146704430857364481425438575293771008227804375969247141078797718050172802616430168367178049481669076746683367877406670474550355376812932631073156956034303808619502046406514064797738400603891438902928155279697681217803454703890600899643498196077996993023804779022135457278778943495857241733274245865342451593689000518867886543180903282190851382356077358371714186797493807881147867185697247037135000196306574275301556200344597797530254917407886880439217641189491395646840009051892747714708666511431227103896069891647546384036236918365117966669935522522930173362067032640258961831211610249052814944330900089962817346737197546374238888209639680857327208717019142737379814092720509676552527138687998747683448601544538606255632085433497801290128461467815071187157963935275490398350740397874398496516012136767021021539450908540095952321429013267470912507279040276349293570193897525171813555109801638484068759974639222502538304644470346812105110290625253276959643670350847719895414817272331679362332795606851551625366163937735115195685168565685563481056100129555056579016330226726579289691508939804419090543462389940772461303703111137527296198805154611984360577744692206000655630220295819774347969049739760450483818923044203694966255707602343917351948527329871854204450063916685007725355456108377662064174430792759139004988889427440550889245315172279494325298111621231501139104737164168426515834946116119392641655781653338334433743320986039683269411123655071589503397275403504503439928099393145277466199972829871740509517901763610335685769725436523737112348806966166717518072964328709772529649295642148625072280999714510989482489944813150283087410618006120913875548562752276945023071177265708012173024512759415452506787258893430655491675070160757024465106879476757724080882837207720624429229836931809672382523185545283335974956214514765755199357048585373260125829847441003763512443825171632378699336132931791435364817113131975218864902400651981425680793174118050667655342149686442093493137045196298211069679475332568989342366637125863573376451919479605545738065485290179165116523236709013954613194267426937272078128831426253299573216760061515125035325046787459536643984932611596124837401969732102193742285239178922785480076718766132665538678113256185334541154165582928858436451472853909973817467275451524996792777242358795697390614009857941746377100296680336961736474141734168707029387559866895469864576336659896667697648920224781979364691393003339192657819467095471957142752727552459041002374879110982138703147355561064471157646476633930856687355378369344162312393228917118134747586377853050054317103628137149716819606006689161919332017194880498781240213668012512712337122809918808994127556008404710799572599321386845749552078402428005157700794750147620583761828731030061872382373742407898222056890029280602595899282021995696898525720453155208754874984420645520950897749654795645886007923994624313197131141951787438516417249049791022838361789619359378397136091356446220016564112685214715749423050456864173421423584517363633839701043475927318551889326396380307708998166661298590330754602467172936982608610689155568365817287981699351867326227586636637263840845714987842146458032335013315648779514093653507187282792346378432973043860677548192727463451984548577453511139720966779182948305792742089262112838364673182577326471920814473984163006794895986805821062091527182193297930068481408505162810786393857026116981573815963887582985494456499315286670522830017578287541584591856392823297248230741417865152304266515506222620300143621079289042007556612454950585722460346889686115747697461005823522569192102730447687150549696958732780966703870867065471884609214368823664307345939135419527992547805433776499732291885158346681444464921016162936933051645668220345404719424893684883230722092974562470542782403647655278541796617142115022949195880640006856185339456078945935385779117619991131656941434607983545402223687225601582269006803166874940578049425781297658015845387195852572695782460205856853314069173869204603218501021461093618395083527212005863512335022616728698674612858672213612759763235722783489130279661847173240570880834115150443925724696266455063408386626042360416298033847905369336294034589757233812482135533220191331914579511869563256266513350069258097139940147482655741303391907643830949147426747633632009985438442508580283765528981204283143544968381413357294136633232510870643736446817655470649047883821562701998549285582860286503377635039194895169389848169581415299306153385264355349192404423403622118369853181360929090542889449034609569778193135671371295102581099968701575679842057010418511085361727118182192102983312667888368702515837076981648411568155276051489387833138824104659324385001747343576879124625365461959251620202460378309238953682902904905418677430222120814404465668765967722452304870301893696513288906217305714206757206381520249807836735310211769865371135349956360845117825845614131702780298904599526976553461629007832322787795796095497801329046740095000663030526033441613845231245997028667213068484747223661536042386129942445401170771024007226348950086990608471972457531552350038152090731103031206191266570280825767942217861315465695901977682691043596459122086912871742276640198971080127823982238093838169741974574464647499432520619469913095156283864981135778632385590652136798509698459868361342869183542043765130792626711357835694903810008420628304501623564217392684581789083057377029998975887778377976991317808470387041489254389422774591558196969937454269870171735284329304461897292164528826907775636170605327207116718799558056858509027159079962492020558293214761439773394303760071327796608237629045391214724982882612700619712862584935386926529360261089910871820273674872715907390784652835290299841678900177024409968853355986783103928202568750595243739894344769651666373812016968001365302493092447489371238030774815998720096806037210324968899817316794637077587855232776996909324310454575078136421041169963811041925838039268615965403674214542675783660519712139777919459565817613562315046561947499357764871306533349462288871383755024963327065926198221372597369389950169077792905515894050365692132167103205618965813800673513080005821335908738358849774015978604725577420477994097189148789053330853054142452258282658667465903750174092114515631737119535229870587317336802882959046786365844729684330411679098603129790056404693368077667640597935969399213042409995130078411707313256604017778301968640435299547038902752333238453976117877186829006099716476758693990850316688698437922727170754881944034612038015775250523016840498437551761002651170859325616290532770483439387423753308950533977431415715223035557607197038662853494452945061705805230027852184239805060858410880614798518581203745122744368405154418606897820942252757685504882088620778444611946703507000548237446233906110694500260052326674031928615280546165140597081898315185100580799423260428719222993057819453549513518962297651337439737716153604794915622657741502485368954332967114253903932531655693434689352073016466822268842417113012145667963235713152627650508749389951717064121459268141760292460898289983175137157711353684317781138152640316369399488845316816396668018579140803265683613265452907138969891265526770623380843004028054956399123330582245751712909012290954679803594829865925566229777615407687414711432709146394856710712387003790236518321524748041891434248019244970679761814846515892716432441219643950847445035759648565323460012360093667261720803984096009422985610256878852984195931922876034037268153265965994567166207902667713361562280812955868634860167537132530840668867377018042513918208285260999233963550004235592274166290622495618941046965394357809625665759754139243692239453157109254456734623634651473570035936100047197033507683328536069245524519208080297218295102388328309760239866745172719744152847854007867481555498357357713798473890331058314034648830488532764669665884673651956275551500694889381660624804729791731579783426094286601609887996152099624678507282470830234241420937769149242060508037628772626979628387974977256334094726426740379835616819857107073065086447279720411108059785652462844776477734660566689767518917787804945145198870624838149132741722794133414566706967995817060391859813474876344264391824670219409318882091951767610142222493102158246045834820569761914736240497363503450126955810986928966455114569496970462357275069742084263730398956252345563548663276715825156713698120924729518852791355752517989032454760353418757297639721269479074173708434988562914431706109590269408158008004174292039247180179183008930663404268926824460185394770721113009104752161673347915681293396923203469509454324661471179785067912548820490328574532574966634248655649967299073064812016052495744620730088580113752732603990639682820658718161178362584267320585083210251722530975388251483405667086887197630964828512518391547025780322182055842726862249873009919370381315583591071664878917374413632679399505523759461920880714110196338452741915268363705561271260379779861628969028195271400178609273368276600148684976591350266944454921352024641252039405722852714434000278305724286101285086531312820272148105234872714699511808435488903562076691723892186724258553080832108845006905700846791573054398333246134193621217230084619758807590018918978562660704444045475715738400258167517677905270063161692691133881793750630756209907346983245523233922962808163978657397848128516825077468906810358933043793803583350432759471521029396344534120987701078972017039277452667786492311024772366581056680764299429499404927326659451598458251863822099955976151007922777645956157381370244131655531563157701736068806040915360133442007836613275570488590630557690587854011200885299049573051760439133124780327067417706868524141922400373555085333914475845366538121765850555452963034008198505672230041802585655511312008931283633442301507502365909166666044203120617750878686321192841301162946359773900764122917681975050294540781144342766739041544407446324092528135572041912006791397139543929490010109908859287847311789876710209304427734633727397708636911947865716474326731765992312676124149462296022372936556102863311044631884520401849336770366774348737879227203708922540443002314706779045726974155182095878937916859043991741621292013837885970436429055863408641702746334755061914653220819468813085134241949310282233994273459485698523983263981594072831132034069032131038548124549010298371843497953959722313037463416983634180832720179992482658354482133092188392443211253957368924616358045606426286994398505631089891399625357357705109700543253443048051284587739501390127854479233438374354253124582233799423536055253957331236969348438272495468812054759621571976099623792442250177612356119757163313542568123479454015630370415767184831717466409739919437334878418292628113620869523968849792699335742643668292610144092319997616583737563016748574373347305517848677426101564404273328373449750891987953844445665629774806712804611291249728586893370916975169035882417793854853674160937532629642313681928078096113350571840944403988274460605272758472356083991511010885967403595461234913828833189360210034806371560479432776201439998744154926487199824643379529172890729231861309012350125770245032292262534359099349171844176167807081296449694714475004094619619833749648241263431929366628736433910100519455890096649227520132699244590536785898916039908643774604658475838370282382077407200926768354226636837983896638190978394360536610931870665493620065607466341255725389168540938970555367404109695978515596973036497037952114440442576691357966588184537349162831427327959375340143541354744181881912334553587163823330966587169890182700851573167985235187077993880667233479879636723576235223273444952885301845471374523333249907272602917105617166276868591076830938946141785572602666430224039016273835169799432269956513563274819245470816550137480030550953609800446089432960564430675003546573130180344804110657100940928566289457938717856594424005268431779562022480500872257228536299883447978029758352505730878533259995235913351818231202387140181682745764806624805248496415088617907572011247644813504492469567554599746931499630320059004408677991473012539706568288336330756315686802168187479387548867193883961690949467237719098378629972218251168708692157424371388829163198334908002768589302552652465963395172383761153176088641151047413963966009766820868184449131599017066621491378529511766222266614106035683692781759064332444993900769501937637495910385529074316422884521627339020817227657124493468508949584697124837457997354127395195235062286088001627642959112741347159914504727429077792243062460013969414392746153461803853452404928527046445191525280796416874004418154385699900589875540246121296123714607760024851511909496118436636925310647300839621224100163170834119166956041081156269325689034358320967662098420478255790472155529115278890216419429189046192569119355287108572430412761677670124413139163830403054614840814954941419013078820804259139860799479991972459706959869388043280470116474638349522270487174739758901486040795428279920031043471081379826858539606562011749861590590956632641561987794179403866465385868442408515246902639392138053945961369095164956929852564927431782619281603747010931168190537321110833751598227966772948736387176968220225461519320866681882475965053765137166132943056358985876993064754545746143237801069178735749268936225951414700151031751673776432755634803270021898472427039279059164435654311022240778126448122329444806736641036477455244243595751357165432306614278804182395729885073693012393725557491737228530857092608885254388524370732849572015320874720751333938822046437085150901260011482675061186922776375847696190637541500583224292480933104750678256939932625008757370842536510613153729492454240740401869397308946224764383859598482542508547569664320959314137435704120478369391930612192143800710447387064926418895467466271210027023550929400612539764272552750419200844948969953562782254009114061795608129025895175972084329859236761178389433225075974743903931034719836172475521180201865432564890387240873264469963588086361885935138795028895816547828908340380762860128344599910294327419318056014076040957050059720130156157498923603297627564320172581571129074448611097687382079308906174333133688554198249387592364799212983543529803888858094265774584099811327948471182380549021341849784105144626068235350811364433843250291832985883502055258811297357492568165323118381145900166518861052191676503785294108490671597323016287783582021251953110389589849910501192674566605735155212449527704233766369625796314744799320784935956709458305961846991414903726726620405540529034984978460441244024289694972897850150141093543453377979065736660960199256336312324340526313018221849695194996447041775189400872162668450019097682567498575643456348704556421267723460106584080031677697383850842649547628510515746324475359619026788990315468802443779552919136978905526830674505614720642561685641156869490433549094171037574162977466591551688452596486852382606212393001439860281895531262677528324266312894730565815803367295117286201549147257342778547111728173009879831686031424505436443914706621899604168899632325186068405180123066107227953542792932989458860396775059836920937310010232321614858015023408479233559677941051732839592640769794220167929578425770930904016222925737235661789751713947114439017567938211531054053185707169056155648336965333483830405833933345976027849362744131218350265210663993752329853323015034038154544280592677818228815207415412192918094829550322384110442839202042000684466452214592416743727976712628577980349536277833976003821726460642279705560231314200201639395909203642811261443153540594504332218098686703727337866263310014875961384929532679745898714150182309760175059221098110654871433732143967686714949341534575590662489727925675750892722313803066475021869408842207107372912856297123654984390765965946888761070219603365088760587783492174683754564196923300895548532984832445967035017571986257558768370948996018699503527216416307497404242453018190975788782376812987598681427659819120248082369874020196113489940685728583473811750242967004890373896241950058528278936746147374529205960071907853659697465756983715445196186473035425447979223108653809770271676914330879282279076691448251714142400190877223189029709108853663319759992327931327268322194588316565383930835172087947289167147006016699766919400110111594608180328704189350777169362554728519106814890831644779325711845978658376143204801353086933516047408451867117145828528822361557705652755827415143700562964170062830224824587477443342071593687841055757750322672999701173002955801149538298311876856804141537463074003861476603040459882512311277052976597725769741860436044010021956267068333423370035237606733004439912043569812553688466473695355842498700821681261200513077456376022326902630713542255708718476699581523475868810399848067911326552331970279839455916911517296986341575471743026097750083811560911350121272637400300280776000483334327001504061036600324290220029007837843708482596577667739125092313100521275804554525696556742217615664747409508341183864989843352306088004881667609474943785109416127228777513942208188186740278173298382099703401010407983773091642464613061982658691909260193422260491003954419598560551312964178381867533075952867685747654179602017061094712181057679884939597776934450236725921330067054200538300990790940271245293056465943839814722576520735611578829056575228226820234656832530364897039135758152968388914716950202352384143056291122824559748231282213105794285834074428199273375260477508473175226157723682382291206569482756720947865465915402977963615067926102835101081460656781923087827653622596686848380124629249910264259465826431178843970275661460346971436000043247354907692230021588218452608614859613234908332335217305927540819289371639903321640095253418414285842719903879906398768436034632271656052470917677251867096400934880096974197009543042885985819844562148622583790284415744652274955412252667484559068676523773138418924305229452391621173872346171441388975436560489845417283325078794262100903124986543231949232212700141812219434220889924121791583110445042918832054991648447090669964716412421575434645564197904947746708367162109496947420025682537194391727853266351015417111979023415311705156927528637119607264284430677982315886487201293721001933590767645597758014794701450606287029057449473869502712148639466585841950719083675488271847771011152634265339735212864730737813086241831154329888011913629266393018466559686474980921648838518775701089351342961536318295116094963516881380216757819140886407781629776409394354260549313067699606973233178693809927823368511989434848769226481683193596279903704958587487637019977029994346552562956337029512559292450880933865736381868411449852506415532664947162944844097672616826927363237450095224561857391664564703193878261411550064703671127974198441480046698723064742416254790256919892711762566486214780707814108028700131660583282698078256165992431385335709302838941393686995722138380787479137151284813111027219911494314583775851612432935765573810685671206884010708601306730771045404552824125760026969244951279135339425350193232303864883401667155516668056529676796474950233072321496896746519420093263566553351996336770596339725352059063844218637814412008598864922104656255091689018615798001173745970582664678553611801912093662445894413031086849505322703055711508428842903824333982050446879966660080991635959086048433269857550237748780420886160766798506965216840286363258627018261161364839232613841535372930848999624591250391408945085438563320266983344762219327523697393122800596982622380560717826583604242184491402439910475519704085770290147134479178258857090919939044988246710032271668746244415549660196038784130598905691312666641387023216034923178190761182263269788097650002371132610085854921612975409658559343217608937292259152798192641648918109052459454364751293092430866522463488506918989975215752085535387120678691341483578018239867037412429755494340541811287160779182609791480944544262616833167392022715265120729810744743593216045172855647800622053875597849252933060011863968632289635141700487669916507312545510702517499625971416647040125092854914150164645988795676183430925202625733668639767820656879964055257393957023538428123720240427809164151781451473706063528654239125844682883841088550946099819390886703425359305791885475552181345294026963816743675071885995745456849101988824227373860630739343664075236994895107291584738085067447271278438313623218783743490520818341582189900357347833113529382815785423717559468365189525736879890318410167213409112611044280477089914176686489548870520037322260795331783690798256624262796642224271807097011820944034193643957063358947177599701819341272927135863481008406058730598960211368411632078386194041156565189765784277656769749065175709292339998685487036772497317142002737719177357035122299353129033077668771888264726170519904043383481155284763321025937747038561715118585560305955714259981107537287925645081573525509346970111086161532217258056618449508316846391687991424925926897051855061823702845005118728448727324210524022990738671499300731204662554819044663069161434168463154146409987766491179448913030959232600970036939115974388943093874586186146561120030065241573259069836670122344752473049774690377298582630699432152560272359922902473189902921527828734738797947984276784337606524289879948376325822954394928592411854148603088425053504240639933838178643587740540963700840784828702118750923499180732391338055461076030423333711481722381304705437579567712294073618569313167221320860306937593683637248473994691096016642834612788140430395089879249062723324515740396101083713388951258643860251645914117032180535170299513522567779407721243083604916142247655530727436997610147779497349724946743292176943139336865336887834826686276670926985215150327216720723959920058449134351095221571021544805647648037527491110979075013386298761415870346836299165754034761788672105331890927058926030768782335068454302696323909947659050082647745513474904532139076389790264811181713174900694062541799869850787737292725559694016736369584167527756281280056881949191128064054237661657429199160582249768529980426409670805769267336849809719277614097680342752054567335304563501653705435911759406549934615302668443039438394078694511594065426863352782182483212373571930744216320627565859664104431535009787950140153210228576469977739745091337987990267766924700263601219288290842764265242879411404032257726550477219893114507436714256377328333570881909629672857250142199025528006091861908355183531167968882382586312058532079300178865554654138733653707229599173138492138635011344827171299159549072694106749707404800989679876926852031773981091256474836594943590066477174786150333147887100252829614880694083757548010273236518498415589396838035987196078965976485081425214968672989760376983060390985373171848629581012575349354365063235709132368624937478461141970132810850072152963498477606383263757033924707987959251447355516056545187843063639292949188501711373715963992299031552423898850152466638627843595550392793916685545640123853545502404463989835502984217582353872099778882133621844799424045015068980127125407521283727462289988431250436375921285354669336869829997940988980249748362513394113564647020008866586889338922502407637967887778045212302633178482146209945852477740746557199889982763688619710751702414597937733571641027451625113709258262939153420719155988046066078169260505171757450852783215412286623703497250575535234217489513554572214948985640227489269423137672412306146270113321703258448260965966365495329073688863374413734552453293464413638815920230715122186611693751019210299338643422015752541057469045459462248055185799320753434881029790476336874263548594269867981747773637089237525028209263325515987163509437710143280937646878212282550043943004933520940827684965032011062994913795026558854511901077719889717767092191557726319575056950226818700819655242660064551748116458083805482870984209311451649131362251116558569530279504954510686568734334030348748335543948084869889386290710883646704276241795272919667708496778868726981373608400816873685154146932235886591890150684884551010823665060015875646874778949778503149396905645585726675943168097188152243937026458312211220423210108811668628385537815842265175255346639924389418181600674109309151696289223636726656794010965404190975462417691068665835926305379659686992851864465463717765579310086653593187453598983712056569497501391142016885724185523972706655057772763987839114948856596617488244416971772863454319225573276226616314058137328494248193041727934472161314939032809955359416061715157068696872527537770340505652105445878931291945036919469828431947431857291956754829434245953098615368787963400179834620342948974172340478374769215091252503717249174792339468377589839791417226854475465261397949321379542321069051190116750100338047944667145403605081193847347003675544909371677128798563794314364648020709856011115260770360107189860808433269409563067197747610750340839576934320615165545088841347669120570039643418181581009348101947085476924037352995814291759326004817829837984263082970144958711052181925746323335735896139314865497117117812774653240510075924930663745074079965881498570864375201890275690502906631529116105247003119577100758623860801612369192068088767677684420145414652822795555033805588458918335383533119425260545021798540266590830358609455224963319232354388491124642600047175347578048285255691013385404616014166878420392601944119259551850173354119308776389804659462539821998855018307145376147806439584226401215902625973357941389356322150174718322096964904823550121777208621515707391517408767385703151279884613983038518840687728467254970588545829114910925727752742577404434756881156896010936991124722426474947549197988684802073176295554262958624318881854053622896875588768432557435257599223753351865464665207811557990938792403670003818287478617009254594213445425249181406830045878471151332621859650704394311962050962349683833319747592737177924745508112487856290167302149539999702095798643955135054665300703719827532464266199199106259834439974050259765168488564099842413680698066929836338775162065934900341715440757342992819595208394822144413831642055073879938512275271974795462979101675480031454022923715974618135577522903056855228174253059527717871438747078349231719219169232266286855882131832497728122760597914453350151271900751461095861935673013438061883568612694005044382156877851620601242836271960187031433090854436824895518645432807347163180051428391622725550374529881555889125293986038182890352466016699756189372307977594343234896014377712486058500194340471687035434263515055444229159084902855108376514019548470330413265678973175672457139732936915722714574708502729993929237355079738222798723220463705991300238356205017017374545042151101151144762860795427675209123751220717158848034410064666817701382602369231502913138033565757027043500361428326428170124524703707858567954917935101802727797816651184951058320512501115064996514708256494211044145104678758990957627006179960555476334456150294828375444776077303930084817645770943382303099997120242723775173810132430252614291417346724045573051095183896556636344945074033369422149489885284053650933322588488173674189279898837601882664610049652112609751228143875364558580745408655548640740687800961281975260802083617921933575408514681055922355318515181241610310510267358083292566058263935921561915857652131563788455111628175416327467161553935155308132072398488738265044676235541628080929310450430037325387590906219724640343094810295448118559761461220972230433110604290163419369205434706574399616158983905727207121170291190552257010160025221012946417238000639067775408411031816572113186048832604937357795022640798446274378553730480498730461295708742047502488665568854980353964800038084853714011463125078889493732294097854979491023754338480255866463313950563875567750858795089174172440193918755776862609717421232073294441605482971610974324436017629408521370439146287819021764602441245216342745401627794930767368127131726637600653182210437953946380052358914216193716500168069602020704131302164280870578152028997514550548750723863617471955206660134592078707140999199620929714141863047073418498920332963413337332129882233667163623616128099752761247866650889208494103824756479791680725697086698343373602295648940992646449917306251722281262541150939487080167237741199650141147970678270361590513975052163836900797430024912117921693837818365704987259506474139106880320307333605152357541180501032045219219280244174507658589897249574069715085824236199929187032690718571211851090186973359270233461036172859111211988479312688225692275387773866887114823520476098828342082765121551453317233237048086103371795897536244832440075630862171902687083955180683153179917969313573560027683510782197693206855057802314335178583641589098197654329973624236680990328447140408119625517426925383914866650013323553808801181136040354226660036226939966606848450237383789205607067367782881480133943486603238185943934105487472036465268934744997001049862574726911198563589677144700709378593838629099538841600110060325291941070914530139825685230818707677807798293805237933096220331589423207811330390603647155242061880487436690140766071816346273037391527877418409216723991214364556573164858227211381057724057911385478798075407474782712130391547823882436804925283638212505121427359075767678612543589711075985341796861080215552652796408988488579326607890384264556046501203706729957097423876324734974121656393204046572351696660531676684463048179112208270296943138321768069015451230075422852844253400526724874644642141915987673562016271233917836503330734638246939328528992423455283538893213030163518155331820460105402134465263103216958171879500247739872328313677280460395549782012958337882547356985916698450361235539345628379405437596701099814374658787363560653297639582874293206563664904063495201610895421481246164772188921747016981933305547685424151044442436142977709243149175025175448598632613771109558042944130488176887661418853361501020647507099498761806514192121062757935025305285859851057427252291513253264210309166829876643294280580071953618743213010160278218990212967594298649056042313372813451760285877316812598502297646697044128572730526394315228768595022535228698323253554178568891400764233638128495097623382635785405813681540364148528355216877752867416733442427499265227563332153667464095921191955488150541681790358361615269322090157460495571502580376585573019453702239305085174925531704497705433075126741373019188934797948641290706531993394949326334902428648307800244619133154618446620671664227917364701844939222371107336339197257660691223185045522279088492062246578904648390379875695409615273230745261635054930458761451697589950594380296867090452174818219514289104745984075562925672512016405396924113315818564687296379647680355678308490559148819380387650984479533337988552252269577029061219053352611391871188747010864739639365507539772890986046952662795668621250959060341054086217427920313970463626608088407948220187481885200957498627464845775638351259075008523211775466068887706117596606096732940783993227114207800391972780048991429963980514621766756043804736157123554421883917396133177509870735913026531416289867960477693669910831529226286178296508013800687974934743151389148947718148092211611643802308214517854292499825792012959335674193079048861789439117260433084581164559273971011355231392552475865264118117566800937618065450700728014682778609645738858513385443683945076922397210925271585448636978956946191619178301209729225839182938828951274029375142547196102662226890885151084020684973604253116970549549269030731059084417095867126847832472102017858020829815402489224938991716180906336008688522294706040779664732965851107261581575748787859469885907576019797765070531359167371542295645875715545263090250275911549402425704059443741544473979028957557810203096032830975973783349363337382977650079107543245383271448023309066347361202237461802865200337154950739070373919314169130532504617035378545323225373861252992613672081775715958820776408609795450720297024925383299939839884485734873199150832263971320059603013805051287983008451273246474623709728729997241126236582947184866516678020774349742042635976919060180096913076700684982041133246634243045628971598697590645535181238346384772844969871020371761414346529779345681860940765857858095310509501145499250908408280261513525964438384519113538717228646213903401212650853247348826477448573935096377005348357334734971309112384858143086428159533915826439050228089109943700348989496849302507609998234646229999230216977186936354755494890285121808590233826245110651057151390528160393017338074108593697222479842252587444683178799651843638159756032414104451782477014782570086757825786413535717380605079446105389801284725778772312879115969316320207558710196755984419881649146084143989892054399621544900151771379360592389343703261492860087626833292156328349377529932494535750836931311457971476311349821603692677035725435570417974461150508862654938549587432584987075630004374749646961691877720888641015790305450815409035832053563530984302083083366207256482768573738950142790791359863716419339160576362196543416329380911456365790062327966288530115892773768026821355244544489430056686702303761364898858635685044227718799041405143599153028705484922135975401961956862913777670857727334193818943883594223076010785529468761950732989570856535328107596881095261872302080125492456394593604952329133486421537948408977719188526652152445273987965092899283940227606859813527180388377188166758531642979533766625824609408160788755343676792549116142063324542168561407898332183497827004940475436385165015376731763165365271480871099763981942379837308965510096426442195792163725309202669509803299229768443602801644215214621068288165266082260805546946850650605776738906107431527646934634273177352607666490014581653476292944913042203389283149043197557580707900452662013239653250697987932251984185834702234601264552957301556354225906715071172624667212513369143998904909653543482108508466831063480416968454249814222912089366309767832106187124997241511507004124039970918299186748239936827559045037447617200872091592420618106103754086308918033964899629666680923621769971426024533286933589935740120736296812766906452130405261423291619930109351518507114363040179076989261037702406321583022860841495638142946718546894351208079292642986405446038432706174825117014597800373410873745568210137461135314691920144820567680078554465890457659083079040641610057996213767122147476760911777236439018255507692390465080182614124681385356646503095134337338957188282460889775478690436155892368849919269441407821697431445405886442974572114982969765958464582936944004712327607898197306709434519301887405876658624121525271556327653813650488769315221439863985810757342004136190304836907312354164414825257933130923809463646686140699897218325661139795414203064159661474475950823128079300472270315531405077989133646788211870401070474978887812425918732801012054260134970870159273644259992278837104641936053764130280087826036597557178657326129621743853808217986362509904218703729509710795147972218551263661219509147848169477201898251283629876146366053602994401794452175250449716348060329651351375970422371276823912403962892900517072888139930364733731719395970069033988819445484981784748220070604290472251075653864917996166716023608991324077296249652492246300085225455562975412568075137026550290052612951812670335135844941807926169393807184456839792959571767029101535914819470873319293205486299354949388605265096362811875095828977058515628694291423202907288805612741635324532427645488365545146433464274479431575073648813945690837192940158379343940491824877958436615309464838608464731902240860498016024939789277812622595578808885784398499102474868269072972877834026428385683933765241515076602526835175109982605543338659116920595734036708163226630410431993242788428014200611434914716660917753159875890941975076506645765132089455258337572697148157546910603636315123180553609893103474040460169787938984610537973491550344153603884302437564945516115815371697590769901202292434855681755273547176830776586119949827487615546194448977594714844342812755031152071708107316446361576781447508266017761994654845256450353395963910944139824901194037176502250199000541510528021807053843656509820372743358348363478795563631169973330218099769360563839730014864449009976463830875779874877310915153464317521695244592671601963022898721803739083812313656634678542256548500336343422818155893679419996995364129874960055416345661949005389176978753778226744441468207711085751521770607623083732194560797556283948037290137323868248972012703864064919375086469616108791050816496875511971618810310754395265148579854104557582209673781258687977387066203152230760819910278853536259833894247469535523147246588859515242127405517437824605677706873537426738490819525469704841912642570093149120616936557368646686196109563571538304407944161888488070769117643562992702235104312860014284945451150852966158619916759281256282361552096362829173851206185635380187767476206917293794772600756819885434300267446763220645755772604894302713146594250712296396438145187485143127991235685658046536599606801749972082056081405572077235261438742405237879800957208441407979309088964768836341862720174353610444064687792379225563326579599154360529415714295625934413221141306641050074795797880735963369982729712004403590584372725501000753868158186199158581358932412297402072096385413093492895379751300400266715396431339858631315473800960092110116741385018610508138176795405194448925392239164188195248757788657484465125139774467756793797399400312485769864174015627756600875098332935807798664694193954320559947455989225024423320496893215736615839266928992794537506956624870948084226488961693071876462826117717533393776247279543563712683162075455566623883395025048291335027048601535303037524984975298113472220711397415826154640433487452707733880310332544536719349050950454963017884314144902142545455003962907635957172189509662721097372680606398130975527843699632484442664564811432079123562807336017671460649138247752040164714898691930802026134929249316522999351181292891857419051576302262125334819454318650846553230269827238119817145645133102146180010336580294410246268707799539008293515206675002954643864271526662986132547202543007250189440677982350279185146520363698634990208752071749539479953444980662734677862252058648047764565562173589121936078481894678784031998071047411055636362823166778405368608696244489926010006554957522849261808859826273187631212192036554109972917592990197889187146006743050454411790043211421836142934962996045738029727800193855720264915492376381093844772924289061379595045957494342651322719652390926551494641305563324475006129148994311746707824029777068231179610716310261981334958321315234102910803828964992429052375701333437293991220864234370384471900999693581706287373211698402168606039352452187770451969162963836699382483045180994872454242738939514050185789324575948527474844182884426110159192399902402584469235913458725346973457887825158584291103640810575904477145245898023127722761893874020546225468823400650486137961781599439970489135063277579312645074725969029371929870622483883802321042393643771616116151536893581534928179307114957410944974506834361745162015497394213999697466906107420201002922353454423932201478084755323121824550048341185076592296880230341924730846582965750419185013069058326522608601486094328286937349324804813143306807175267544236850411977351851756829874822386420981258204116602722691462146208407310259259164532495212135523494490780441261635968329139438575247290664699517452081611665592360627226317394123481252148759582480516830623708774046670866864325355196734089786403011695076746143634562483723125638790818050455020249123210630065741335730119835405493287224874016506439338638662999212572720674109206121538197600760102400885939707485743996390582892707424671706872671007372889953312766053699940204892600574402366036053369558259228875088015633361266693136163146699129599247135401003407530347560024114812710502558322679596914443058981591623198742131382053405714644535799377807676146399585785165774650714944270431134418543109953273191754652568538404860337795860905247267066541082626292750208823236086268280518584288475910086216793381839070264547694143647945546402735945006965064763662180679738267424153725046289172207989969650057501655349392311931704426258048884442741312978672027992568815114478641137257679687397702729762826356195310738298401924610481025054060621118307910226521410602960253586796256646032932294578137471168287727655875899588609333687505300940468112423300392268735107505237436740207193764004155083018917613853611204330489457461453087041590152078818619599201168494286177496779720564477244318844494423767751102686566619181366433797041203920639608376543439281807889658808505505294658200987248673343791783257859047255081325145085873633041811344114847141708882821548255592160737088211613189046662292363749518479179443491350015476136532758333777008891815410502311088219554822759580988387571960941135187568812748815018246100602541510576107326514828521540758519064087238572170993208981470829228828131002151074408586834940206516174291287661740408178731124499786692927858805258857000049241120324971142249877451671408558156346852380418275684904054310750945567001058995696101545417629196170921950270667923472416672405502594855889500133287523798532801614893405280966401742481411698594043755384845210918538402852357428534871226528464574069328745113356488497483069535402955076733627510303516728509167833692599521339331593066931248368902738963190270813818610707657094844075770296119835791604117687738112804811249582775683794578969692451339922514900028137769297102321296880002407182346204873205774401140979964110379064191947693865894765545673308069383089021048922841327754566074789563197593803681278110121322522576879293769035023498305719902943402980515203828215241003708941808131370885387974529340018845090503171450561518896809152394520832035144650060843910139561678559502617470505153402584093434647157208445909614759383500014846897061491201318667719093955335463297109043114094320378906941550547341560016053492247751650074609954766604669030327758341978248266568030236062292719259212246681562363184380277673081152147448340239234560765267472699749269469243682118294102435794968899621825521660026539718627382165651262086660862981256887693925135297555805927648617225678578589765180263593079260873775838383445164754526152436923200337528518375999522070236214269954909207721946149032023425594900835245914300121796851004059056475118456923398581549616611512001511748989040523017580684440603686476084576626983752754925418709131746094061467277237694642562776018302386833399899820188249136958196142090779989285491733127341334115125525321823096840904421183909577923692239625907218362207053279289732271973309556857517361166710018354184340731573464628604761498225337466764310371165620800585661348990660128644671066037701347947857244234088212280038446368099456463967963342144251104131667493265574201144852316334141808480906117485426320637587624328377761605989956828601755919287098131188146501802998332506440183209224845122657435189654661520785567136139609302044313042045275283737124326152843406896648117425464997801491173906109102335705274436512420295965890117585096930793449607442496997014895633492694765921253358797078436971719362355353434659579611793864257250244498999074361200775034900154392476891020485554073919803214776107287446378513644572338933076782135898081943258464932069412308886146189178556794203125240893609534019493171944262452637300257488667173731782442232499074381841724818203901589359548833380015634414982536410702886487633917862283224862705000766123657053410127024206219148480909591802492166472769845194449931920337230463871300627865244912299352717213477822357001990237470085240375425074800765573891453179048533518677533622360432246860411751338677585812756723398407640292466426828377730149206103193087707719135958758027229542622757728859365457121652537493765140939489190648940236418877033488158672278752638911139339596057561804952315131452954375101411469961895984513491002418240228278401373610953045087035043583190799512887320419256737365362497225389840281767452927122121057590348856915299695663521109594284502232066379636261450657953690529751950539233186556449713340982378591372466844577349088354453968523112574612873537733736621569789447125326045421402720638908185880073138574109231697430724079630428393813342842549659264494194485102369013846770645661269433016735924955835345662890165856412937076583994778348485448851230484655471179656438273902923067884795594360278243306289494975544534682154938472108244250386498511971869982163504383900669155902152444907786225359328327465713631869413390757171948184707989820925266701409986404574993016884555293702450111980597456565155712345549947124157515636500592469526503991986237623541461620076654460758571850457163819071484120736061419239489052705459412418767501377598075760907950949097567835635251076415106270997396240017586748498229456292467392731579175866978575274024339183613396669944719210394871285212121176333667369341575058978340118610544541695153553985855203989089212429223812200164789867916934769899939763487187662662987817524486538134387309529273504791336945203928715810896580731517025066781639577359792542025411058984595977720693878620516375268721632041326400872121315906285652647520333912913954313897205440304459190266322924161363562684456985850306852495077966617877922375645425374842457339763415353365197850037009342714471491227277480999662291373101589915625547627621856852497175076923523889698344532238461509043441396972136089375375423131298481080810739186207367821285351854123092763290373904253369183836180919151777655713108014954507948389886106467988976438215470524081065152138520447489731306279190528915091538570243242102677825831734259260011574135420526800636756168104809494065905233875293744455526200316866358266152441399474625095744204288737662666732813326561891520670594870220197811715371298635687555434886618827206831635612605631156123965744324706725574985694402069009158332738880605720295752846345436604456583342782590451103721090224544810402857585416510454702632547771486188583439673896461486229426514651620009287387664618828803801372133932961192312185578470085867865559575379267977700952004935658723287598107954505013065605229116151791264805672393257432886501770770719348112339554693837586982152931721315805984870752035541651742673432286101516749061961128888618974475433994622753519771630897884895064160557054900932597491182668995073043686208250565216861613037515366572328413302296113711015250274891125384885665926383995297552457468325488039916416567758092726935052261491925536387384992302860991677404840630874063919461183680987154348510733288475888121776435739376914261475696100242738602765520315275860401551160305666937265424774566372256504235390143021202539355782287635682379995179656574032816052182112005622824354403652925657694277598484571733184942116497480395502157788739316411625348390650617476815496287576260964193577208171941432168285794380337136990751697896584961310145594307934053107033571077929782063297649196421811313011584880894202632390691114529323817975191796188301330389630571718893965098061852907291009923924114797996198621080448530945397548329065359905892758648390414220708917949807171939647399025706492132328015742211835050324008138061939552386311583828254465096770996686211862306250038795412263671014406866455848634648319317409825523802643975500904905642302091611676955873643004242156919121083551708725904801530474159628023527143149594588994326759024608722770570718579822150949839339789310235552473069406622356189167049464487178639274135550340930851778635864166684272149764108132690033953078178882167087316067862101717052594298615945339113616120140610939307265693987417651978496748820825391223807835612102726889855407436024145665209500953457676736675431982654871215561996962328631190444218824710094260896198429103437463661576527855175515313538583209255621177448850793695795465536879057539217518868905031234761466949773224500764433046440969913808177060762362899983550094966433712600185475343643497197922958059629495398974218228483407410226910556841462493319781750106008703369803922730365683253110677538148222454047341837028378917556625434080717326935196320308513304692662593774130231765048813054612841557975988794975472788353364047105827328945538371484189547572913016083693954949797204393609496352544658199087497926591163431783958972704970330260136013655379198342374342793226970043079274895675746624558371663624057735475725806504148237610054593193605043083119072464997086313546430718508847335296751919288689369298851704488419965443121764925183894109578547967747811564805463600347993018706047664974380559214246683139203028445776400889676277654787283250597925936821953561268218183005186482132727286104230399374910190488013556536324884051084234836992038487277499781103537743327966416662467101618302627971384187006043784262568454341687975560318453177349077459863484450080655091944145596886164015665714044029621932873779186767032763590384283530288620711260949379943699779723937402067650150824486236481182740133234453730200299153835346778519239000527354539220904540512034238071098076149890111344304043957662924118145763912800842801139627195995957969522448378018250153101690704354355249067001367369929257178592369950456196390255078200745754626434807094452503701762938854035181356061842160116559660415325041383198239053198390718364580482067940127803025351206101837017254598084587912133146045884837853735311893464018718507143577671470210583781710313429324325603576526580368996945118184051032829101512251694233271586020898389767665511917150095047749277863083645614459526984170108201306255189939508631280092444367620238803256073770589151141049934247969397827194462684507751205959891739687331872157199056797480974995721395596681228524500684138348077472053484623314780912957531991663986160301055060683283834713255788680213765638522668742337826529404923970326563529923506590367190364556112515342438216305526288547571052102844460216575196106784286303412175766616741270920471566479735351691653880980043191008087529714397025303304404551377065559834316781353533123600634773258151551300065151102004374669437506209868893232858029043625758084156504674951322174628701310028077144210602781832877606183477009184320948637265108842462839172459837526582147397649108371602564448599919055795220148759155275286458610509569510439509114662265772864909246245863141947580116175378099174602764164882055449115270506458705796862759043736574657163866276465671559053753806588442505820814611208259091349099928230155367639140781523961497446034562206195130130135171063029948460863828880497666800943840912451981949518546759193658512633151309507562206216407633492667696151336647992901285919689615305308981130473136301272121898554914012443991926389166114032391051440060249271513993541971556264708113236458951675087309358668815720187338371935257737444521487938246530162473128803313911361884040761093466452442848913562687368489359114117547223105493101386018509783238127289223472847869411967140592107484885780835397972391475375926846631717632871042017741535834896424907965016776912155263986221928211193397913576320193294429831649121798601579505805962199231435167049574151697018915185214274604657089851018896805746728717713097044741971409324213912715943575420634385079023634884960275175212508368383561065268883073932466177185867604563069062015008814950711929749266828256736066068227514840273975909794900100728017456565874603453137283711798545485056209171530108749424836495171644400149937486755588477858292785796208835064698434186028760022153397985072687421020939251250003172302627887673961756403871482080222655342713093446471091382576074151870338926504583443995348602691033549879157265687250054296698091221790338569475031316719975623270680889680433050590726231114789904922316542765742765215768129846658680777158972509432101108247220566230334749500816944876221789242734798963777652063264158774121410358365678654297301857910387235015553948509434535871690013387236483543108625047286654155431515628230913226665358673143917475013539176793990588765585770853471124324357841273598836178270450826656804489098301813633672394715111839732229374848597692646425771254575971100299594146765374903217045321093503654863653186360934348470075729564743057041697394925008140536774993158131353985332194151207309267926443964663086390937585983999136200794122849142218688676940443335206393877641773201871428745039495818581284265419088606122924048972559271173281508259186471060116346688065501965933138629644443348223831741266502044843097128859350645137522679059851884281114762020124286192541381339828803623850572084603963390756584278772275283430990949172817692265894608732190044531554739727937295284485533046339362552256398929119892673894461799174445416389358627423524097008826407723293030056002490249578019749637284543974267824206900934114892013228552897499047534447232437993624026367139445177263089759863029628135529404487926552525357059164228597774818845796170599188912919037255305748865409297783961037530077604738589028502166778277525012285660061242065276744855068410246223784568723309098840447935880240875549653627968442885254650538045736958323314446448063392567399643057495855490185988867572042821757535743045649014042269424066912687440317297916646418086299201295699763445299121871058102416457516723878969438393384943766964331118093832465702834601987463470394830355095774565064469174012470571321645152265495919773979028778603827629350089116650776974151970668505836529222524270942906926526555153883841903874515086687751960050746729877458685897805067966754162706786497391298346542792623101904265651682389729883435621023291021952994964492330578668948482069471334116255880267239482290952085559533747777618212624551386677758595717447587948474604809167761351158543684230692619951040789530764453864643879965696446648906696281595964019661281975547080105414184408394474000269541779074921619162599326449416457197180921104070221826127041440640407925898762357882939240423160338358266234605519916305105187817504177630532489976149929659123376420854571905333069240808377206134125474713056933506250782431064991930974279487856838328012487822558600556569036511200645966295443272681411206652768520726415493076410837497714585292791878087499332028774061312543265395300568742116332569998054285241785630603858092148449256962162515354611257731360400067890553398284466768462728117197987880829323507090879561452575508046325527582164527033859634892840668824405418430215863347641938098148053850546391601987743109048815556033532550224507831950807289681998427129236896780722793060827880143511976745075472772635939228493652005894769772001026908805770626202948306514263949240004465720124673831496460353341432091282374971551184083701877007198460841736757091703462528120489864769941385864129278280667920675292964601663578441920370737700814451172758314417377582051893954900955836984773988737257681543773818114504436379144554585218248604205758940972564574329226069675989577083667942443056575520373995365677265990811503232785394673047540114679902799948959037696837164390364147001028641624600431441119815383291844996604852513817727373242591692275600464687485991547846904367546607036091794588701165116266434747209163676860550456478723197783067410266618123796073261144705330881054269394251178676721117124469194451648977554540148469165283309919089617624346079838948131766532622542936368669003443398836574256008320850195942561396636009563092648201397736518084743309963966087915781654386417465199517647829741474113845455662579314412567074498779299703329542684391964540178066128804159418185589155622472773950931301306603719737616870945831073221887738847933498628551963102157682816401347694155488616679363260889535930601487265819037998402706911159890621239724844191666389295901714150856140012381077478939107177906231195765883943934503990032530111610253731164798083295516740558766496887807615651899855720346854885245198920980130165273810391823481550056563190381533257081293723857566122908690280109148575112087471521790693626094379883352720522782193224496939092399175516134199352110440077008409388217345986989020649830682586438000052495045211127421121082811969732425245030645256407435483510071622833835246943611202444302794436928904663407779828604520451080860193401457638684040974390115229320536481052280611208810849725586156006612453039204258944746220544691940698687667153966486685925334012059498730751409265568253714810893193735374645727174076323125774635176614916978845733563266746622027569607394676295213923908723912714544599252670166615926584715478147095329468321928983752291701547494192262407049688677447411552085297831141993987146500904030224844797617063336500350208759137256101517315304337839255841469099007039879033226246703461630564761445373846243142006569535915668254102868945589909997612120522996160474684384243842450351438853672278730221660411483519975028892404531310484350898265507896955399745978234340480328435695988736053577035712063985756503522377999098105356094489610308052541082344809174793054284104819812142322440584374771767972839659512542103697592011146330113565573419784422100189945626077399359754934687816363782830829113055450173390404966470095642196099345364711523219297182232482155944706970858219044779410324730608734404722969491563519086503750784194396820152940820808336456655167591183365707318079958104701893056515803539135989434414840495109618040918848224086024658591985158102400238905942958154168419351297142529294375793896505651233340858106477633786528092569212976505421789281711771778851416672609399756026781497440836319252107615594365897736717308332368294390702821191444090783990046879193176159392486458053875617470179426590578971960576828268690059167886395121266673166149116053124331895042662449742803116418919919460721711932823205928340749011516426123312182634754965739151563989608745343397739046303384365103737009064045866331404880921173417260376056471927936833980556156686026089595036056211698422051306942290214207643185344507828012276882084580113249166224146067813649859716907527770240621427744366187081323542704072172620833483471558395372323720057010805064407185260510703473440205557771373690295063410992110076942485515969821259391424694697961195124828895480778185599961600616854417891939539573881048052694449539911877312407044170120190091490340756948731030274468708152323044712078884655138537444578172064022195472333748730756814791996752729789154844193246425372575419026388737222057607415623085600823603707892307268727866511929438575508619268677209427353250977804801485477041103700458336881972655931217713565480269855829344137192812175521790908362933696236158680684962578404087446319249970466021979594743182797252250996562000529680573403867015418430528789657497802255661354818261218588420420266756659249218247498554216101912176033631383520924872623717683802438388452756342757364506131819392638182216036983150912020134387744053066897852593286275538210553636860175073085254015983594218025657688639072190315471009837649446090460388952445150271498807547972603376842620425338674578698733146090603040562685349087965857695225284694288476958913758144407649082519357792887937073299333636414610448025399252509568712898593854708147475506769737825980058821183005843682766893842020406552167864491881477010720445362240490750967498771196512835056676160492182580618208008311221857496092276825029661639323579688230937573340679967162551200661597454549314658356955736284564195483369460957933159600440462881263623700580165899447448301015163679893810618953207592845102205214541078360663512455469945805738707083282154355728049076150740903645319180058228131015684983563589753627463130029735549400363207305518781273132407995330609494999938267964537646291496417584090764132988581499562432700458539981184863895354161623818468223854531639541316319424036033903752663345474658859636058300835429215609896019531583312267987236527496178106893537244917350149105828759768696218127671766207947379749065019438934143352511548750137531477820284123695484020058108590698928774300735408107681664042963324568157301324457069135845547736248094117165890945589828448601311285871353285469892301255372281479504990987876032042220901418141949691755493799753825691414094747545503988547388126482641729963433413976964076594443331547756598499746282377116315878202852376637914939910581542053381955050014842463028808435269088241488875711831633079748923731491991876408154580849153213616948593810836666061885000118744299943600109084381761707631035169762409031288153910833935705087806945766441610743396271462381234756036088354563685375635210800342904999568862400642610305285481283460843582135118358488720424070187313878686570703950169017656409413479526020285024804315025584075525581429231242011256475263236668272879624917850815429552522500533615659941929677180219886351142686966870047559356761357728804975423836608166173345756802831248335454824311603915478813818330694674264920326410024630837502811644043932018560185220524789750510617701688721829373534490425885443241802990313397378311902956043988473032112071306188496731097527916130554706971765945462014649685448635371821809611188270828198483597464535513831811822286767014017102638874567695669533723966571431877453613670633071688040776561750850569198949959310393799939430188830116611055251539800673966851905071967861503839198526488637136592939689209751049783146191267778127452141024532598657988481772598092139064172052639909108761279701102811228131394844405122174480213138433796003178526477932678380893856094824917505207928342860740250015360473427637719322123224912555979406106224463482861985365734518715401967010999478478881490922756515955120735842990424461656916932132383649420380566655534726100332282016217562182404676150763769948880956283543204706577009018926773003060421714008888710377310267144393392554156648153955621671338706352952293161733047384226693410785756616587230639527503300299167158408759853417490981370301577027359110686347839793671862851255299410752863310645757763373616707535596134564921431347176301065685030800300057414586427809578076078881531357757173513854720042952836428919745211109652751254677951489303779422439186914929448544007617890730330125938903583085618955413538127163365770590948790429338914036673248559846567200026645119909067292899885615042040147029278354230722013451141381567692798075286214582043861706991448017235282070669843354384423523250725886924512777799759271848434388138790638860909916081147167104327426634639167905863392763359802460772104924136200362774686668801398728451445028270916085053157759053485116295813502660208669710922825195249340290656696524253986895389994870008366398770280634987338839026002859339398591328326580855993527156784161838005655341033649400454744735179304260213324980223681221910574950828942328714572595819862347030144515084725339986581359107769561386881149809088016998228595467798388520263151746725215570244727516193056054277761430683932594395137260294911590316676972172051553304239189237590167452342481263194871985935029616160666520655772597900805989630554730607874973347651888187998910379174374263241361377632972308851447207089566682804556580106682186243041426413351517869576940371266800124232954094134970303662662012813684784177252066868398165345996679427935780097561393985627168141606654793226529738734744222923387518713689857675989175112920314477256709808914417947437051860215614878751160216842535492327948243346914575990544651052194602935413550633139954633428025284288492434189240512678978548767566019770085314554554180936411483723773641392890534593890868861455310833826111643170375810350054158504747679442548275658314429443755899987245198469961205408698524882628530386585016464572270367424839658197547340607865775532640043842448034588485842500044939352917238739854444412601710225325323779620013877773624273208132049826381481281326465294062007422364480010556161297714199314378454372715312464024269003558373687158740645542763283656646379355193643911398315713870614392249941960240419301682434282108553695029712241910271813856307909723645085526982116832719066740866654524367970703238143367095887040468826135339618804213931628082483393975530122843543744206306745718578708211144746437783851046572386780116433645357305786552487824801958029502066861284652615165077370236552722370551258648220863283296886485023903835079100529608098102063183981139481303649766228891789813515673889419799700260453274755824932601386573316941278007745348128567985050386165503148699204065432808861648831923358275519078917814077116148259414886578705009804945903918663944304348339243761386715707519205342588111131996283424332349282907665511124723456373665957452730260646738769166945980327291358625969688073415990032632239979924364179443321273594906304965265474378376657806262946839180478214425955019708122672770038254802805820121737265460631953926879224424190149014843334057616016561899988238405498427357117914448101146105371150898319865959947579205508472104413747944204218664974170619261253245478798743582879067000881256829342752046083216898986072847275572947266632616490419985295584069695010265795740250137998131581350045440029465275217287799797066119730833379279750616385749434510237606780565151036389594690683770539459009908952229050003074184677218628640879512254980680012301074325617048487931169587675073011109960721188427328018803462186173393202207211359891035166054580863712506658986787232595589411374605125430438544009206539238546975227162518511704343460843381072890894463256188200090660870595403933513852899365919189460990209123940311800667277727704925473896075329628179745378468715677051091580448061380163857298860805124760964373309093081473878822292823509472804714676683123294603436196619913817442452956045022363680542236522214602866012035964331424275780589667813273609840312960963745124710659952455254854887487928972315131811979890725869312045522235684481731259601836583015334294992243473483361402432313313404515389519767506206218476987718283157632138336199395386381618171054461684832213467928662802216489981964097228193815285593089807495636971187400616181944165094043532125448433718946616243786895532125553447654745756852680575221255981984165529778288721736939607477094753344728132418164496425025475830683325878153575974974077029987606090649372327225818442080435001463223838798658739895727478245842697202143762531735742337943517198136631114828348331459809045138003698119771027517652865850642618063532478040520108781084239142228884185131227146287691563732764815931780874448243150395062873747571490983299915022035348429803953137695972222090058953800005537371245698494045802785999826504669350296932373474240076113665306256273151511069350837455701034994773889909856127968968252222191284139885595888838998072640634711863538988731106876117968058283859591920642708281504145830098820083142832094384406485085656348944929176564469396421154601469643936495089887425390353818185632658189340113402264292059477905522393022827869667241891861625867627073861954757155652221096459408492769182073168624379558253648630739612974645550898754568051781631488562697044054524740905915950435622878216990183400514502622299966902091974393923291105480392675896234803859224652734943958079588099373874154890600177546237897707693177227861495644538875030590693156190890688234977927214271860505484338692879422679143682432942740021628031147009232382182988561271401487720366883551867088888139414187254139802205198707357776597202896618297277894325914696089657195535929914692632606939994936613359408957632900294240354072533697346065515572251836927788369055099005208294678050372501344541268680799705512992097556658195192841227776517128025804844874412557328715072367605038647339442804003741190629047803806566883019152648430258345564766682103480215918193541188885413612085363991473046836767316115609556689536373970652142589005259041597617342601799370360497757107888480136131431653291510634633997125521729143167253242650736144227316021215040656758101198191605896797846059829341557700502942093693058254840507917985740558202128056557544678140269373407872015100313604582208838887938306321658900143465441077238630693392069128992392309513752273406724251088485403915615082297756902228352478077961742864602182720836337468958009740120465298960163795884370241471338043093346397455009414483484919953895606521051433847200620237984535375898986639483854867696663444811071126633527305544309537466685847990172172084531426098391347883681673180526052165107875440973206538199529004850540872138170778131765753719166334591291395969187414147482401047695043642186578106494600349316644764723549874359055797630516102768637046099585103743151432507033910990378783663903238371352946826859593982515604641729203714426258419904827830869670104235535744259630987499998436197758642298562887688760633498442981103019350318365710901055340116839481085314719242518193955334373726567730566549697078258495252375915691027177469766202522965628481893209201725513812072354020055404802987117513677732648921949734131421351176598104132131388909562083908716337778032815896188244034016578191900228719115018105584719430462510859865629918755064252372458282031774430214794830469235259700543256538445555892060208002377846775564612234471578769329508572957383851896950555685967229967509396442413632437926187454686689928084741876973208924741605450896130482927952096153459818546969243201859472578472728624647121732972802617646329900642047579048670132646887968574211203244568452925886590338326999391839143992877054979720434683013153459904362724501534633813374176431548471319962414844444246141717033313034369165400366315896370553165692711877370124986874130311740526523342502122778081300187420955820403170609521380713310386834129496748701370602406265813558642146254293320680985555318137126838530539681069444510702125534851258040382921393221003934538896726495727052611954057552232122707633998317619900490432379225327499766734334330647030348145085648589709063359620065692455190367325004365761290820969717080719601897556776642702109482464881729205581845837470184245818728939391141323767641901854904117843111206444295507052021835077538153668301343411332456327045538088708844753595832588160167042352946231844548117225658557448050902669993378939304747893741618879404667069777589234271052200605405180454118839156813090700724226732663857389036525224375946274849518379525945986199346157287104826171059390900384152481955968228401374876838170906077718992339039903858436117881093289553732393136058905042276363599857280675710085425291892831299869376573148544879129842852089940541387756866613010377107149380797456714243423735229578316170441062608201522584601373914508628006550729134870430999661217237711952650299121831658276307827193681474950521545202906206995953328195961055784240153104032164037474842429025493915894733572756947480923533622446884968366729027789390407422684896734480220988920540448347876328641165692158844796674431151341175043303979236505736141566394727643860778227658177333113310090212062542771207033215916059051442113007815069115771618250910795237304364691725420360662320293939082457130617496691429907577083607651513644737376136036465197103529594484895555729470223687284832826196273370075518248114320207882711858293842492520213141719645056985452977437862440310195955998023927040704482066725072038205808204501236677362882129286409684733360947091023500759674761833619671234367766117185846622115684742741465353445652931191567824285300006358053395397109105729990574650702485904924410780048141472708093196889493753034819948844842627329700068465032829625817803913846342071420604705288268646383626267565774173682200102346877615199173297850920407439238498540420090987677384696073249374011160048183486356370627345842881772609316546466967800638552862042718279093757998087858549294356840724946723831708694633027917607980278279574710618931996247394104311400605891104980605795780455871146310917703841317997466744267090944175874525066679161802207313392936671540794184369092615594164184156860636990769736447948199132025645897194312044476964615299179863072426449051669313950932168951269084554039178010021249084715657015710154482812591160854605497498925258088450395450920933445359456512541276436854585838010025054744612979100720784591940796240197099078870494904693331382001975626841985168831184491626381006360107851078852025117538337306141696271494519448796380196110597507191338131329205587698493433290471325522511715737429141133507382834661846692869425577892751078990562625835389774779748270928687534419942189953496280619567358295415933268120756924294411566433180123052387279177493127209852114735387770446254731513711351304071394269330215225688197085744459793188015320829247984515310580463893062693656077329873813478495853749388282535748006770450218765750176654584833377655404928124676162337771498257109017960976456300439117105104768964599306476375017854943938042329977239461106183085893618918690473635273548355951570155980991041223456585989652647530674433058264199633636730273947816509815324431568167654557116693111136793013415135615143456287009469974193233865211112863630766403493374256779267497653127004404366287946227137895873831184513564392441069150879492525466929266732737066491287532539313855694646414350985506618621447425611599724448463222048540301240500942557674500135819147473676365463217201659311990091726172781090652404825776231594840076567798925828628712946784402622766561595899071284728952553667879262515872895267803388793036446789166875969414098597416480808816573620963480522188281738791346320217505817184779007423603688597815931959934140755549716905858795949755173181419584472712479565530816250980092779574755115086840728949091639586609107933244667008329347116873999714163146945279342850380791360276412681144829225096664303983857669532514071173785355904328821606589462870591908180399339909656044992727768503072394444514630496679460489925477316666651987104241425794017891169507313869245892339917218664712711368559934755003853812243550820743616207911442490340760882008348342800500641764973732804301693458255533758035508939635926801662489074764189493760945638445791971939191505331221377961744026738004624520513429971354248243533346290982566039361121411610480990573866621873570413348242246201053413025905798463437426974007792835540987072346812524938159349199437430809791258511802518158205300817892933959084599884509980745320096938321232320775184842685332116168462082923811877426510410043858359926557777504366207518899255805089081890419256244877065464068025599933946335184187143923244303851197840271222111394826950489574322682471178160693247588456977560127709871534577206221365424239260626807492485205277440377790702525185101024156328303239729863406522018889080410507355416994807725050859501032601399590727495687636971533443709735508955893842033026806810779273687466873065513878026618311321982237003074700089767968661467535398621842924409069987553565183678054187805518192307309448020342267348396887411481746387032508293842909030258639099833967659873017285780457371745001953196432593749466826071514467551404082897968981690652129639101315908730648033821295077024562224539900594586563046228945311106280983189614114518380212168540137503104960505999095529339322944507010550669112131708676304501426607953160822822144852464533474760541725701629941673109824157484650032265718500459855599574671769138740284099369373055376834539147921576020260596564380609743535228774286717319221678114719569519715185535281045214955407553111043987571808289822234323331469713422088786411080539843078522173103143941947627254165707385910799730415438554509644399804772688053873701824462760464741860603247780013455278394596919886523303597995647020333491755394152995036675961890201145724875165931940024375792243450048087172864604962089380529730485053795515830814028792134859435594283317289565042754733042150135404934728316178396079456172950270246388224945872757772843730601947189168084444881934397986345672181084407470042570860216036336964477170493262830028400312194308082079277885961414208961101834133709913188433116263031173628402748271421561517465058469283690440744587850220864322782200734442116098746196929899213824443356618929143942229900398237569626646434197757155531502731924640288507719875228833184637171725363989101982386573497920151036219296853517509945110488732148477228290714002144173827201939962002879594394339356225821373940543301664419585476265130679263045401931833330140755415545587558652231263001757228925467889375251006410651193638956385887454605263646213938436283354018550571027612392945126895800714467612242876341162415542015652055743496222779914157197710096674667688331459992912667058810223978254198380835470323613266441457460581605456176572172709804935897619479500497846566012125874294700119341391747173969529899060075813264470383478044815045536285436568294225678697941939832320844312303318894858341040757921137173852064897043521913158766421105057705592826539443516125335260208105544784244899989729452048049924911474557833791556737005644424839369559650786982539455967592321570522149717915871194658584345522595061186112454401869761192132469650128310436232682289308064660840231340903879877498788070021438589285165132361084351015248204182544568589261114620068858797107936454812711741496384535401973408913531057006267841086684997838958823578426956211355320735257940982892700171408738632058332574656136368533055670776266546379854601382410306336082692228903904214266162169460904280826195123421485215568462097614170033543534289298216371184376025537816105680700209217293241982017847679670713618839053861906883081331603494627102910199359118764104601115609962851448751204086364791025794944907535621884383624670868925060735715724258444430400481329605801401518618883463190574845269529147425732658281756030256616958933288987987228209646254661332891617448973805489217365992554665959598292304907725683072523903684316063343172794468529101171885429744953424368584360560451262588739380833797745942952216435402198366280250098762505058386253760752142100251139853573061686437106222536734191584555425186633605329441696634723573494616848933933594264417158766692983927256207033442335369505408593824235315240607259650792968412868460904781999996806270456565343075169258308856527722216458791922926108265149582277460104606866429576666477291288879886781142659227648350664054140910724455341918264064999724479489323132732057410763558282057630417819870734788024089865411410046172545525903639668298397860565654225283266731391291222871970558674504571879055095142535059906828576872928700237864092311812325019048337369409835296619693621090376958068941949679164628198737979640303728314072256508461277845106793297706020446563783675892728862965411503464498145364978485375830974383317054126200216719496619208259082858989227809427907805676706485224428609593071126298100939751858456334527678659574320743055348753222397115910368497298646085394538991172984730947506992771582289022728509314990822553379835124566151395937813139441243347376925780868542318841360881290344213578846286965168982970172182055382236625505508197298370845876580395494492730845708352631084683860161947118741914476934476010946309808202731232906856872083222417717911853573013827520755196179623420742265012434032004579271127121156089659554439954905491796649590137977947096817331747742031673098845837373614886929377251520879807148378923341453834427459351469210661390004573450805204314108907633729376921843200510951855673951615913386001756569712340267595997113255171211459593599295149415046350680922775547479995135096766928978615334323364281175882112759067109431968744420394488290258496007662908764422943606059943968333305692490565006144331406530273431525258200181551708150184011178719653015183162099491373431298991219232940039730720044827868102782623062655807251696561343888125811395865927623698158230111559921298617787347300548048227619526960997786722839185380206929106116333916516048431159583531709073928607342920069192820016844198920431766093495404555140311597998257832280037934523909060703220671497104642451491033832534346710635495840459437925702485865924247160881415073851496453144454903819006081065706250344886603433604892678551532155566258179024752997235037909302266939039915518499133934726950896262473593544298693587896402858822503711102833915009095696992527909359588541687001299258419210043798363613116030810858298624200901911970062581188761564340451537771556718598907980544993105601870748187168895864800862566334089353278008543833410379889254749322862531125877798621589722967758985342167255060131856742308052173461012569626590012569736922807432108273595367768644581186919105917118141719526690664470627940880829028485906147761992172517348932749976673267285365519040116035205978887008689728504335591149247628970838309416033327870654405460186221175169544223210679078980068412249587587117252508191806284330404472293662588124576884083465259842393849025702990140413225980478500125365436914835386007047989236978185603493873448577525122113938256467295224304699967460502054033698546637960385314511376812770189266501980890327691583671677849781486096204075686071273919486791707463482629621300507617367985045807461957433654012067809468153314655497259728405121210663698644967620923677084891948263776256985855694791519348478375356669327763388877425072490906044927480803853874412185223473904755560656713814559645046968641633310898530033905399893763569098108780605246358307076468780601187531474838541377476938498953088723855541179181417846645420763973628923752411535158374507697692609500366202361697994864839694527706747232222593044508013867506833014770768864446172243620547437869802896126216480360923164296501993389711249601113518359132207032428651182151688388307657635363208244156777687154048040826731619095871734894940958688157067628385225299694901567725765839246725653358789251158067253972147167812363870941861749961157514446568062531600831852918902462935845830622992867773093719504578333838226888733686730117065574741923299741566146568316239618754658933624825524529681862418368619439792410928830421014150163290187161319427501626067293605886342531910289003379444153489228438399263863941641290567800316436875819641479535608883908089882541076720365667546855129331458243598227462828938051794170109043302440765023861161332859963181827132693016619084698199208509608843390441403460188125384138881623051051161311660580019576553794265642976323723384133007654198388174549865384351450568189444778292753213136819390008078327429588382769974300399358383997886939526064173177842046760394788930784547953175497537273197248467422568772336804562099992848114738991855789002067607459853227754226445069433991382382680932939112917782187644758686874564402946683369776061004744802664458330273533798195344109062546083402957546141088815371454160811797839778332631188627145853547512133771073571358840232237033529874589227520816623083906951679330532682954173156594852940197299378131866337805403853855251292190695666482710460870175339733192622460490608633605039441569966142361029636685794092553223090667605688466574122437914985972940146416001164673825309895639693781975096319961719497514465150210565237915059005763652636205170852457474765185461022538755796898948381509204984450934717839537992689196917879141152476974897161060392927248269828062542027575576250717133360596523698420882083771398673659528376471751978577118401422262906432023328802764980617133609870788707828518627823442089815528864130667502688472533211139699111389172159168841295387758879259093638719136624756689985605149109413583649738032529881119541151470057792918905521431697694954815140995205032685411487026720346170353368245092058780801789502364978774725197858195655907055862300946819250756378735587437481616465230911577110851022368863271433375084467328678913056562279166602585636010314216258680295378459165076940134658173664868640357092104287448677980789494192531186703034044191251909594584974964680920212303665826956877236260133411447729145434566891416061048753655143210123192209470509324447172333372720565261343069593842939095461154914054067782306847438988535577034215846741889862938393396930375917821898086886988770357252415310463282600291042329573598154520165306806081330974224035229414826863468197383620855612500221761593141339534740506167650477592749486069379425891803002034302182095233199188535523697351341354415722549350862044726052553809091110884925468050465332648921339841015388161823058636859934956107770470962584708390313495024680179946684301139105552290492751257496327285397106104370877426345382941754965953130532338418920131670837578039734310830575581616807576059296803476926249249236892991540203848400083474156915465038529528467266919280476834580895787945850034750833175662325665649371354093464177287583621169725459585951153003782522160703818568136037506307912428626317184465642859717780139100044147922983955471472911951524585469788681103526778707573789640858247524496435334156771652639358383463135523283932790847735421363032550628706267729266560781419208707558569998237478884975836331497180992575520772951444702374722641659641965875805801843496688497423670260157005799963789622458593493526923380619494304032777020246780555812636612039065687690734053376839118163838068783750991406434688998512288848914134800035705490406163697949979891054333333322847836700093562551209088647656729287980230857082020927185618857030516433030945516645686308111317595065146965480471976618611884339582828331909933973842850929244958510547476731871400431560810897101532634348673956954709420467433550210258451122056133776806220930242545327244755253018616353384194814930045423840074901035734854229309465499580326803382011809170513869845063040091671123799298749041927420300450092270960321759624112899341282969654486776345692131421402307527495085787030533504567480713901893774299786674880863303144256568740756229212681246433017297127104418785119402649835368464513474777457194876550488384425730553370799688514642055285341535325171880125293225939822208243752329792192828412054243215270820613764745897987708379748367422224483885672021343388340452895446897049175454802781658274870220432345664078749470220582067374746015756509792560400212577214822007293626028418685889346590444907271238104175766711576006154209820144909073392268459434050377394113621069930602546867864805085094001547945539153991598113169311350165378331696677743288350390495115764763093690197668332273540058159337420616842405423362318821323768680044734361325204093825970282456052266829761544741375061245255670614360228380524279971988097005000387314620680018708160902380914740056382168593746329061207065616320848566423812170914788317521455332097361690188831687205760005819952519990014065887975921583861880989059577803006690112259686726120764374875010269893533996404203170522435249781826272073706489604689905764045742278626645898401194363012995847844804412244187516835516389413098423495085393528997201978014128053475500791871193738156380411914743399928764657720028549389673458626197260852288928638174685996792681637610110584252089828243953481533477404200900551687448278839718893720032561908755976847867367445402181187591407392662518574289677549428241308605365646383691849635528552783898658682597908601639883144502081568075174304287510331562446746660793234350180709419140123939001720018297861167030357860558169301052430287198770284257449414323405975978087584657867044829161932015105764047095221032409884144091291372131412199277797632248265594132987663993905573348731580164145379441326786440894522069626539594560019321830520388330515735426751488282611430214424396411417432218846202869715204018978401682782372287687800592598686062648980166587994620801072292666590449655066209899127478268011508147046840040111684738237658204166120987637626485920119917053900462261002970080057248614408812111904312469199233898649847433448372128055489790749756052283964421641621569133944061006818350565989322244261918722739633342963795532745098630155164037720542377611340468586727204340008732946365037593667827052646858671921638776138471530485137420162884990905867477972019217861286508989096837008331899232079717341369999464260495618909353315077782952982000650414409500331322846641042545106804582433622882824935115962237135937440841275467411895859161737754740400390754364805855189389212872982264181422728784540889371698143456508403493085498134696612728402829787373872773991565067305110376926846228100110963114709184543257819086604183065591663312162899427172120773314845996229513747955221518408059037036797555711096517268058218423115861674051358234854954556106467363809300094905583646540874990779895667493347444179394950930391832582056352387272647720306625865838758026502626054466034993178738638975374877937024426071891609306348397980468820381128102810510029963350001075065092293452181699347870036630609204712031896858869720043770180544708153685496405731656840902633276667072023611456998600209466704695701247530880084792276884950557138266634203943221317510012366476994049290703270262831518164773611747048834843565484280482762821232578053740954315265401559960935135564131514055465650196425072020948295721156553545275964967790623947024734967290099356561546728997114408161478122211228581194224243642717836267798049108173734752046332908724857018912456486676564149641562830552954608136962197439468743202721418837141343586332474955293535068983313817192064633697504946942546762553549730658990635741742145149440378425829396849281358041553222448855429803568544355699929071960974342346560234950336576111883016805460352568917144580238959938144693188739332748221295518589663464171377649687584960275781654064063121585765740783759968538252691575078443195248799907016130375571485161467029617478076549705606249850866561890838827479366358444943115543659816478663160424630711431888926965627615136452187280942527650750823123213487479421043919039060544390607300880689397866644598239406331410246089691741649289580810745030981289459436783746922807915353621038330917397577539892664225715185519166580889697881971854093748043473851918037955424225764111391393593567209859633828477436619897538641214256537199512153647662781880110502910001959399439750374341811270949679503061058871676916291627178844582455964780169039545893279779188932506461409991819169139910319692954435114254760523527681397772085983001826053680230204224671052066402630669775887860331168678495003866008840180397597942993522419345380525994588767421642054628799972108382761297227489001141087930952475080403419287600928459145737159882392601093045886117692085437672021077027749900317053247732561650663061525938619125732370188010966873371246606296608305591863324381357515257628457204504380507615641351935624662799668684896171275304861422025250546289872800778735520139196462776569028327278736106359113524846210230665986214109843484610741564259467889462824879594847459380663850678378493611401365245449646932045219848141530530236706787757336625926764452911514220177153146373978373678158457674763941661488303573177008194373637602860343258181675298594177816889059457214608177270056489796324574804111056238007330983730024013391197867090409482783475379281557731003131377471254755880553496016882769520072849099472739652323038098718254844010104186938118489123657266514561985366041001835512059198759259025391265761504096180300755344740930593754900951010827395876853987359995560026007711276638175289519372863276013119942972850809814191288968758533649169326057357707718560897544157845878201537695054481153783175993805940966781911984786042562359146655638569201788957172114884310515868594058026671554175705681092549944291646513141436099238209000705621311678413698004172914359257982448472655578493390913623336353728734297536997449975448630149224164488527907697273728606293318599963208157159631757605489252705640183795682836863967960521072657475229162517319064116769564517769050174176385641876240700427021453544322224932510831476732349636797939870748271961077524464818599790412172113718089662825043490496258208257120811320977645011069027985686524728007061848526221537442194201172265273783842337070199861026721017701284589422882104376154889941909751116943381692791173640662650385899007004272656721185745019898084090884716242344183332636200220492165995547071720863864239793939961930997452304681756280637639282498717087456207006049572761931463080377632250752325223887513018101631444102201180407829651872695412427043895857170702340248309181532217527812799301406467787589617525151476347148242460476177175562230514444198640570381730656277842672236867055855739524786848165552894555930485139924365791993205030778882101410845804722327575111511060941306088905835082979909432510030659010177218529462283715041460226916846204320935094603433869007040108043030138648822038354507273703954379485155228464255558738252173662870599971361684563254152494175554061578251183156166473600958152210389970832931869830126903038087029565438449226650339022413285014920523028373896858462870561757791623713693532884315139568301722054031556656823968062601992105408900876335801549873517683092345685091125147025346301988648129241589960196169016827771314516410277156910325769360693704488398003669469097988513083150022260122282060586788846266986675078866280007475348531807129539680131928516270027682331429133080461953765826079529461959001192835607468978803199004682353833040396314511978614323032945236021418512038430005756765279502232322794937627047296908899274426081769014920242014421257364815118314819792374222236647686758252110825407006481505227086260685596019972467585610934825544973802826264924709911839664854712691303874935499954538680445051580887766468089581691156576076275392848494000337571190931371115801213022726955489583158238159068575297772495985983786446166162548415311729128263806640899947946495825862370641388752702050725397455333861854268502843393469079998709912691181643559476485364560011778160461703304355135215610787487123742358922045026693060515452466912592568154871936511891859759922334565434935476807607673022149186525388913028125085379248985932824490938833680147778839984289454888242636159511807239946435513208875152602589293484141034472704379819650211941523601061026007927114671107171164966814381311304888411511435449750305031250533796209718339460730907892380076824616065066706701115769301985405563441202502634891903825553627747521171712402324362551729120291925432801631652563665237694785605274672805661056396301373403864930208590170448089881271980441791868605956994529949631051624033158505082825573733237241943358479997420008957240151069009476699600666768759018052635543043745743616308059203888916503874903329122732089713010158427371203082273091830944820542918429255650291374502405038701618248055201225363932715558127842645271034168997795056154975082668715397649319568803439157762279086467055286045657660092238897521279214654632826559862039175429665120877614201663839068918939045780415299242750425038396793562121228571075373108501544223616500268561275063686444102148266364156863059650028052335093893781569113582365065194375599909168308131765206683669336206019013803509349470555801996876941588993814738077760554236272853669992496171822320677435730817591151705821795710580021630136572260364156764944424292636841509222353850993633959680154735199848361618290129128606663802899747939073213748540676921755137473484810103357987187264031523353029567901537300577015633323922727074031492432833043914174048879696898448500069068518948050219334900293695975011342727873158938057795606799624891298202058798612913386482509739152415250126575154807424604495933002507071089068196957615188129023448778229470188566796833205631996832661664246500325463871602646400937737226012341505335554151238119217231266133798865271189496763180305399098421204273928401385832664629187352628864489831076167631556790940362823185323285468372428778191375076888731943280438145355704448179581069617281136785218905703129414939200323549138178349971349548503694055028528070716204289365252742252971986680523273140863973798589066033931460198342493354097966996895456832349519088955692733855269570879370128807468487271658115773111231066288213944596827510099806003918131651618435309026835757531301561344069476749249992773502269960789026438444058396114810050844259519560930208917736075497833051805556790155120172472511053219648376462184223652470104144081188347446884130700272101807034047175785517254590798078081951002598872475492182334128338644558050697089927922378334938835793479028079740846645420590852242410688341970260058296645170156482883865774497084645703871331739635892413567212434583611001637901624475867825270497484994699887113227113185816338196203372378911733609027873009481663534218820556644121822803004170964054689784608662462984950109770092468688323521338365442896766602383925969413254159781058166619813004074094007575202707142415996797210852254808761374131968473383632052075570257580324105488567610676396323290263817291685359391591435988217068770709790359761196055537823737922315069988761105666437838672762132667632442826698894019651490725892007810062947236288323322361079767203689580626031758925910791145480383590465499585849105870717060347754254747929699278573113562892219554323233498645525676813608309227793949683468803261446261515376101586849451054050331699592473141968042984265909920963407090324925170639394322526688056848892642898346069726744909718014618794860104036997556467977600570603240693022984120239396782252158815169728179782322125777379877791700872452246392165413440631935927025828174305286083224619651534775031943871402246823492824414701230613131646564879121375556936495578453468196213073576317213562121435494896835965250648431382760458349143612575583395800116477937753402471262161179197467465587937062971043799823131730044115380973889722448775066461404078126681504454108655569863720629313673785239484643496469260680276962519651541038241804269841137074130679913091913412965523761041059458057194166955436968674947743741905362961601075484692557870973986572702100787144507834820612794720800052898766574745722302009166950450713259467075807473853801566481299255459680303733814780265394569671155426796022277089773319026836867690332675729177674500298142841679489924780387614759395786106757507555271925540451974123680375272331828707020185536957180230413942689174712920106499551340035256778089461059803091842619040984860812211641315816002672543074833901344486762181241183399643090225368187783065737495165884134564893892380258383460721695139025358790333705692948433015630493403450881297296116849481134403618601001820898898557090386531968438058527888276126647170562149242793250994498330276426166077106661671109593624131979705165716705910598215947047893773666903519624662547990661070621612573733915160212192187290823812434542015028511157760289464630136331516398843641899698906450654783714747137760960268894531323719978879608508458525358680314368758362004620930456479352187423720388134340283329264398498278433717166564838889130967597012798945001347682970769469640529406666857788556215784504149377280850047161308108905443318724224989724999908420274347846324703181936165828992550504821846680626618693791025023462147322542992672514858064142742541197919303965684523698819386468963777704586036352344960327947672611700209768219297799005397278330028530768720710282632178791374469690015889555197341135530484244898800371700849039978127313071210234382052371217595139011952887917743590903486161729437410145973125373656330311698125466696897776510007502758738043039609372196238295757639037209373839750095980533068621277216151452808194955750887977908691401914342507390858259645287329903963797668787594313957513773054208823606700140925360142060677590839322473663220860136779040091774190759507144392463881292796801880066907923198870965969325649119421626289321774237938219992072190472189523459081135340920772495043631063733892797467681422326654333088864538709923837595791334075470634659727371323467071082471422156783620378896425190054489296186270996605136435776267849867503173653881361628221068972618915571977678465490018377904180863760725654194771023193546789894711249646501425401093824133206313447738185912536619260063723975803171737719958270866740242034581024852241659589629616652334207584560986119555126533914069626575541773790727900887604018119483646039379257202790252997345663117863906650814950395031400338160092580961877115662201176698858776497132610080594380578743527623744071951379010413199553652635043623975821584770347658409108762234211356192997233822131114791372281181685325391420003078606311038287010017573490987134635181435756851828017163734054553046017939252926099974886273123281331695185018843465668056708360155015470082849455064038946779969247434399796577531383581619110168841842284267764887213032772936489368482886435659618341883828602276130246903765675598798025385677384763841961873265251541306430067042423481561552637786045018944150951514496147465649854111002739376270948210254005615946927823059018689282875093461109978482139942275886041232857695223463727927302887579348532361613505313863853910853610633867617575124719160796328692839526286780027408460838810145574158508931671500651421721271030758992866447746810802915627799192812655288476084666555448931265762326853471644875132440204327530789645262583553208700007559770335573849483253715436251555389256818470809543638738142929729125737417171736081218983769008597565218204865222773807895049360907969051295809401399805638065794316624480983411705016317824219922059767938438492453345454051296798445587066036512780163132007865127538275947207418491719006181207352211332990105362295715259020835791959555091307268971681180345569803628830699555536318368241533841023852826804803775580507778652670746379461067669212824616849472901911896543638067791346779739629433820362799480503417330927408456698187759320485916052656373733388985742929927089447412740438059381786642453000138673494492943914069985144036254686122811442604525173987598972299923794507840787498448128052820696130452710547556162230948809574404370493751192818886397258607533294321214018620548594955416542489693876399429622004612979924572841891782931785918140252135115150553363118197485677695608389488489043739696688789916733500972024037622258574839247565191247545335139494620416496404802971481163177697403753690295779938826049277254223653816035376459851873063412930831906115160335156684300398750299905072141182732397169489177715118685189897318285563668588919195234629354564244581812380629901731051881667660389161167975329334165216167580717767126516552447620451011876195271477059426608143159909560398187616585669077015942793985496319035169438703415596339949170182540300625460067290606292566497748955737047816424799610129479684919595453471625337002678096417768239255667734733766126365815802521125817244300852145494640136181290642842324288310898654420239599234325397818471955098669719358586854615212673791745193428118463265617769967912020242770723913460103129642930732917321460151270936573899360578997028967131099724356882635323814135274341774113496684232926272402658089284360218513970469292698021479311956546790123929725442584675007060599079409453472528109875027490585311626601937994048043082350709083126146086179840503055101735017574744858578187981623927831117962801498683360945396429411889914273696191895539468635786992816746404233050913197663116169793531040826672069085516543853925893817419629152209715454508803615965169422913841711260427073952090524948570519520116773144273678187287592134764363876274289513937085609450565840742163194788303782782059030098015023407280048058060320367003187415412157109409170285796602969913674013445588389068631804459829479921407300793506210443831401066305283436946590017559964316289981026113003860223071532089998861062243240430920766890937486505684471078770475776144343555989557765074528222781771995933084655408756470317021227786432756804278375885426104643517614772265420362603716586676706288701696522368173805918186836782083715335256740363619437339668967438016879030139944719407960831716378666915583776734074503979104616466725133916180846909962103419854173519829760795385883477374372763271797745306979861461744547257396989633209171025605335915334190876846403816128766421033641295593908472963541503244113336235219850700457081953089152753415677050110928430871926590395810422526102658359082461951133482632433917579750254435828547191471082809904014046768608061532265277873309660261130942235226406595369060116723684589011866863164971810063785182434539173822729999462900180717110863285761327672570014021567975317609019104859642509750309193597981245110185388507090661365192332399187951426771355542242477576473841367105939314314682351544745586695796325308372326224301211708854823997499363234526017132379840057284539649953691930246730340339713610314558355652357630783516757831479207741452669304607985129945723800839612277847425045423652705624806691813959302238051494459642604114647280369440114145741409518510188370978457429872743591587599284519857598651694359643412241288461265108103948141632790284088650881493463050957839560796877381462867136477483406193632972620907201821943757037918896658230788891258875584455985985524745872013019397300544600556705841431783676575719717854287696384014526989475372739485287438486477211689664342134703339924596875727729408602927907594686803802798085929407640445969856001623754192043945418890946741375974194629840837044547592114954101618961558206148677071161672931028639045962495945507244834218487141906961007418382564717452517823668585893798628442185189109225789724902575175603243711660855568742908714944497795978310391333628679453428979571570424782141949577057327882431677651967203507479413792945205077807241654409582705477938735996692348633621201825850901215455013604673499484212253304857647482570191131042368303917508546422851995662017513098332837550438103856625678304213792353134394208737831156525837278057855920053884871605731812754419619602568584810817025534649951693072088529898923281867061956051583240161187074698348074707643140682883335306328527673762265470654203931227933404808935490054755358548177768622465977501097012371212941959547020722288612043253143089191338388145501067657797108824048310290723299221970281649372316644086016406296443622953362193283416072012507005840015669024911707060653010934415968638837754818499447289458975278036267392559107414737404854414078687293012639506723564577689045049426257724764421933495336818729773236633647274899046939009378174011940969102615784512698605327005539387298913676167419263508070647419976268953404572032896465387367904204742725160048458878264280533219826828901599612026666808107304984129625831343339090862841351189876910638205601462888455499433735124541792644398174865555233187655478691021123409130363996029127041315470328122277132521027137491787253015643418067484146130324326272910366503130415922139162947701190090078629633862228944717033719256898902244550775457533438790599910977154014796519003593190895018620484198085907083725544912903891400928848921031856947498942717641217505814738984135002211257199761718426381964487568011169725663026330853381783603756790462118179948439300663147348390550457444254419439442050810946462314330118066741167079675977320680909643376721760660163288978297300016619191153356121831657152456269139728759628549332702402518299480298538184502145556595625522910890320386202152951273398112418155329811943471999159642241743138112914538241295334023322121722096415455591817287441502183262785797694342022031093733451609272759710984387878290610732242389381814764362695658116080291659305205762244358780377283211036196505691070586866089404416172125836404962644631856936322622489913513019724341082711306432339030465964007924184536672410666452994076812901961205608997486861485690485037553766557832286276396875804970765971768514779335213379204159756903977173772512976191065515010066281588152077779446673328099741660687915076286402142504604909995387648164541713316958530062758136377054335999615430386057379870821014330944174693293121371132121486702885103695682600660213885374414374120249777061103221728065563974938327807184620514844711656973380670370231851609946533221442530465807243290511754154705883198681344478808862139822735127210435493675476080239705336191393492480509215300103616983523222361042960154471752143287163756225589697914986487947297870922854263476201840588469573177170561030903032593679430839057267088122429277990233820676579723533379552289328652202342535216688554085827961207333582407892809978063395713285786219162819263652474985463128192382470735272369246200489324137970793437035936800751792864280026100093280488093324895768632368494398921111380534000740396301355263659383033159012245735608141831463396624258510355025606703516235217629798040899796532643866806094840967343167964259400567391175753580272884320122473784827856010930605866268391562771615418790548121962794997684417142947221840158422952691204438018855906835466010318022488204049629234417033950476334118277938572963143878695084668946529663421321426389255250830457310872369136322775662707341936599966130813582507688419109272072621952521574684843874634229665774146094323990958028085002091305043135369269852891332224078367921893969063139838590319405390952380856255897095343957153815830722552702573783229451855942832731137125642769072907465952996329971250490094354876195560959737959912746411822079139644687359428641702255777300532070510261338722083204364170102439078189741818107739861007551546969698766222880158637911466365464052035781276079797834347586170167962850086963008309077081250117826596523916801128085246349705649606564591918888219634432785169503033563420634589331791057247317370661695076620261358670164901092295139912661315615839768360919373155511142049934948952692497841162115539673379431192396203798331369529095162273982732971567090498303417789384676562691919849096609939341064306641462085128681044316705687961663791704198696003410573535313947182707806365902357518363978305807464271505780330607686785668065025366453569806916992277580185710991314195209564003729844107285345275899861237120293090524557109420643696770193536271436991240565102819388619298929092269254296295583493723934934845542249714102627850766541240697595987436167347794764776803599842000609656717020606779658119322054383321308751367322195105116521456468339832424372999921956877076795629689486450559566485926544285007521839561173129595305293413560699261361700956487361717992822882981412966877265541064991377170621422646878324375059920404344954549830841900783040704992896617377352522720603956822655969813727934239637081522326880810360817328249469611730655394001519360357257639162352514331140882159369598742847885641532543360016014609771263673337581139402627882886432694133248181675420626790248899835864267885927500348478118170582656263450121463381532302062058893727856737740688239946689881434960569946080858651795188079443553654596450442162601763196542687802971621234445748841164207419569351572684864091183502132264979117846510369524181176108919946399814434170791007626090394805981825213873025489497542128467840468899823550824349224675180764818627920091805149835920604807230589074306202239098541723439659523211064660042758022947611458237666494655121208679379735250804105528036602020809719728218143906886405966228974088477079268004795027452790606730488012605425266655263472373215701503544911394288369663430980381356841147228323569242389822686175377721029617164330804762294823314532307621678629863066432030872840130905643030240458315786250525096546376512684306922326835612801160643794519995329147773937538747892998328370656901850720451039948799759442169310366813254396842875901229132372959275076283326029262339753237377105070926059528054000996635013193675761084422464675268098783929811089149527204500472517474131708570091061146828151641816144441299820090000197321618065666984947245122093942392248939918346227488643754234341768110247219924882791594155751771566652274499145193334352144313589511840675539079741279855719317126196083446935231229057455103212839777038952452335836121440372722825748593273475138341844196152309644571675733248083503048367358545078666912130449352800546588313092063425680990778110261798201868409520519296405427958882396259316325242951756763919160670278123577756094682756864536350977542421933138986033034551167096321645443531829625983855018331006875272125955907965358515572752813257285027578352785087177177865751074585056161689701748319902758764214069710654956863302396537182871475090485141724026175949300594861494394094739762408981715085811054683131000492326986286703090808543529711469807008139237972828284743459476873465231743028735349712831149560073174022153997257694727527952896118397046834397197081760440549873432665648415945374207181415401692878557909739885579056453423398663757273388570539468660593533388714921461287437677330826443201920163954632444990791954929273652177606770914062214760562386985641907344766912784536081516873074623343174342856281816513290258272548368745798245127571893070279516748575762397375541185664420645850270752344617506875989603981471218419786655573037901432986133422733771279996339203494730091470340470604715184815607971283657179670908814718336238030386691343759514661516720826194063786673670251051461275809514112703070082764418038165573580504214611995291084569833929538572581394632584015902919451824441926696597886576102034040870247228273416674993162084847959489089292799394209196557632098804023875728157928756989809429600908146980804942356207663078927957753872846112246341052498928216093669156977531107220903961335517717085841688476507783293540663152043182039411557067158110115659163748598408180814417401609773748767597046550358095351857287314628025829765992393598424276884656547037135638155680597983869404368131782512707270431362843309450060940033357623387126498098416694022751475497743826188711528049936509272799621043810744529372175378500814096680095126938367234468111163604630392237361702287799278177211381171589530109324492463953337361583513512879123104856392142694544426029308238046879946334702282910719464327543954714246712681028435442492559518193380123687083012824943649949115679354851173644767505654878268847123085027484548008598376478939535453107814184436420097761062112913168570276069577828016432625137164994269077424278865939902274549451099332305861801079823832073849955048841797189630107796799449808219001019962944371299816973980248762653560103563733692502353356171273367943117220340599201323846040561436490334305593811545655310510131660239115383207231691929545436079238294969208337630654595629142803486193811193861031136332025690604955893598477144117997448330371364014407819514476160480945497104129110932205849626937126875929929203525332199441807430811768847663240694512349910140350312687425411209460435719136380124289563717064488622975930209986248138549388023781684135640183224300627070206570169857741433977830024392593506535225437554386393783945200165298576514876344169500031759577079098647089560949693114589518902156954927904066625808805074944847422513968156823057381307888053726838387638668227595323777141084234357863704168485457768006947940518335986352692288393955596505184782328499780780148608270611671487402751777300615981465183465253548466771330746384387577726756962777688733180310353557135969512337648640724399614112948190906468175957972360150101607543002602624092939677509348723073757968155841897900071107707907740473439098050212897029002036672606605208976456212672563800193640158597045871877349201992416924195774193975304283702117677157289108182625405216328073958550640125576657114359815427779959346125386210238183970415486225266022688526784436169452056093401792008967812599447140245173215185838920051720705361786336099319327560043929741893183253712993088298656226149065136579873521123819802409255185964426716816766664425214114575954509031620975291629058299625593269533335972964499535611252907637956728611832018248474677827050932761299834650714463729486831356899357129568228435486059271192970152993328217596000697697967154154057063981410289335892441819840915985959391603899864469073643793447358209559828592072333156255209908967336417071716079459952033652788778689685257323871677524386830089988084420784734662610222421945696764392810989685274824680075639814075766113124891805592956298423087717101899226686184342748147196497193760600330905158289095381861803555637265234532127141559818303377248308604625010739499565734472672255764775760448808556671623863318382851683425962758862033380575005826190247592952730710615789943846561494721701006814334007594088878544219858714564454657837523431246965934533649613547892467969642855158577061136729881805927583895735863254286012861143218871653827334949975208501580975015781029581317569400352451547042916124054826816049339865871069085745690123719329677896513176551693084310996374525085711529842772766141019831453804539167645700653530411271947597406375913050364528829599537744892731169178372863739571038328291103104326592820463009752801709808324392424745858742000696993102075154077774311093006917725415839196578071841858198298843032487574003865977673186577978977037946443564445159434553033135921050952796578233546343155467468854881710134520456995913185403698069092941095279557213537920524903062532138932173986761785399107128829311747952459113820414918806353565856830764680899545375686492376564997940595705461791990151722417361699363552525021168441442977803771828071734923521453446218617221761997833058379896142302540063616124172205399784343741496939955534096400667169975876812368788402167321585468857157486953754104437366691723570318575134602472236061960212397242305831395739606897204163872087097969616885976185274123469285997777637337595684673284667521793525348297714895130627109291251700872355535497416600708930901285548621488959175122886596959160079020481459499875781787646004556878940933715195476346752438954687282219635588718169062804029370117343483025150343597076306099696433665951687146801626603375197822863668663816896579802169444287202501201819191141338334093121540596650390089559175405535090090488635657031935283822301165594179309015952279200812698535650418775761760047772422568710001499298483020665431374271714205054616143568055266758186876264364025052712805614394635492456045771277872378865198852526591089150333931238749696973354649340199047357877469725051442526377326989036925095323151181478347217743429869709290372232019062623547372546209060675060120406057770656393768236471625296294709393275259688300383619150569538913563178107462490647024117859031870221844879005541058353626286002605977661729299146911709988639141630394731501755628724186645117317717106832750583802454795063399337785703067337944776685032739310841353489554819919335915333988384632880820028796906003857410618365422657560452659579326015927041174840883359932868923463101045752799758041428175478514013559111536497038514488178290695999576879345810756329126706933270006871377218013685261597899737714688958064617132022124814227947104688451939660869357135213058603311622975253119858275715610102921491423259896648910726057493379358537740212669303898765711191986499432630740452323766153939749650654356597725879191472419742855149481454829209098962035253259738960204400267478846213926356807200899576603454270671242422644077108672961916064007470522327017037059823106452942960543260978606921948664061121677608707960269523057066988450679164992610261125212531287750459919759728054236299453381295309909950832198241793721949174891581229274134681121615601265783153375616651907956408523313943164859918012376763306750087386435442777731596602144369625279290579775241479350238020540310660042480190457639217074917598909407837276532026922055503595982429720801041794565116232760875651627469166734535725815219218668535700018426419763435942192551909186225742704537627781573058845880090691605906992062025677071851057366833999923424677945640630264469963779764189560505001608436746887154493128625114702005652073267749959027187269965071389320649609418488685049753378051607074412354995794837588458526707424117350094121579925040574492781877182575261987445009167298317951421869616720464823077002188768119262753020436985015274188023304238393054896421056946890584650036128142156306141407006716216587701221234137297388671831101574743241622143417163199288387072390978834718630827385516620802218233995687869416645442865515333238348264956286006761654912570891769522734520817229275665367081106824751629692896198904577570867416320765465430329502762423815275262440212413581133629691622212283490985270662410405710560973117160094842628573227683237820395609301754946414848598807795615168381962226401919838996045359586467618036816116746981734925896449123693165436807469862856820893974046916974102780722013972955420916327849255526135626701047115720271812665740395729657544465920191389616792169589465950253455210392907671958476708859319411481941717835883404310714989014702887796324276173354806957548991573834481657076144334361454328929480224695754721418868533380445564468273406024430089776346433541125771193931192497644286108151033255839024880337627711208440825180656461838627781670836210808778829497537050843830252513443364251620909982014703126878767360317616386583842286745300484551470125163179417594051130855671577258291812488214810390033214990729277002062710209330224165148310481130487189189772958747160432025284267064902664207702763336728917581539533245373009449592511472438143416697023442355314811214488590819040246858856177710321875311623447567408728197128250550165026717170944835908770004529930517569103423783771121449304281609635635883247385719588167573903683315660567267289255621052006260670263136100968158180658765783175705411879987186224912181629486187677597038701782697274239370611981930344700588776100909556187727346901541436113530607773427881514841447367677265413917038432785235186289106685362921914727411602266943649855806870280456295006951468157643543624418434642134243595911661828623752588853058703505046383339007875020005128265841015150437913821501389242267476421011843536581221561764004505499343693522657932107534854971390480767735195238855219798878194798303153006153754519816287957789766787681074509327040374794098678689911680981681119365362566065104889418788960418189445335606827355089080637898783908137210442426800839106878009289786479821294465859788819653139126826880985103584020030268545364755192889305459949928978198768841039085222683933758533238560297108491927526602917275945849625036031654433353545312451412405544813490151828427999819828980862258905058454697140747581305076109283647427353548920994791826325130299619484798395068525835336635527342528945187520089802822251673972380119415576537939471306356679483848569986304958962725983592191774965101787624786820364462749154584001495859861193914012756791401281876184387286404132046139676320511329955617068736733473381096326715799005888675054364055303691133075088192884541550189620976135139160062802906423620258252533283871122739462996764866733074977123016926569532691470687750455211728784591501889337199578835541666159887307674554675399327148268866790637382732398536433566750898691591979769828430695439726700289554638638599319416480000112218878581441874925900811589265836736625648941461249708075437711747468194069989315332430272297741293385554566760251064965331493859533857144092141424974708717568977363215863420812188110050600008984624014858256581641280130937465525229578484100522926954052089490743386643241690307362008807689596417818313484433233663411878035357313275222999421493882683896050151409044640742863469133835123615601751693873259018966883956370881771925844972729558995294384900059985061102798106766494269495220282809782448012810148872168825601457612782050319774527426703983548032774912452863385824396662421129274724393465805850740148319134729989137836147881349586089323746407878776167406281112483686371748401051623416695418198442936048887910561068247547056833628041737326642991987228735115053162400285054438322215353464580940394192492204843311194578370778214760319160800236549552262654683328279039542377240219107885923110945031156513472162025819306586477149912796798179859204097348267386757884635286542542513660456528540951602362921613045609904730714420034842333613849041100883871992313912287209867164037438276726441342030964700807117151704782768553156151324223265148331204214952291931913423970086619063490222531122801430829699479686938919422092674275060135717647000861015655859916957433184054938994357968054140311762107650262350116831006903849688713134191723351302133132594797590863005514612706760257539296617101504026542783271111230277352301167558277359699715175012295163756705796732848084246895527996133295836407635462888879226690215541675460554962053324328247407048095656796378845721856212917394166373758696598893515900117551524702761266887375029136781431187063557455974936826896942970516001056457516108926960176022841284637210003935562561793038083761936400844443407839998272642025990291188392090889896306354970299685638120600638484620798397501830378426013786712983626894838847995593799881683861575342391029366706376550082533808184539924205913592848289323175023440774152356404770141924334139203575918294239712114765139340880462436638307107904162266633571817389823363121056476047429065373153078276711779448811672549218730942799049897569515596208229563863607410421514226910944448405574868047012964074943054991888210105909812600648556896995148268939211862849833619794954841627069118968041004450097260425071804484873220439024545343109890284492812299162272778269571970325916900944932819377405562770496799783618332785416192195101018145537979437563028437126402654643709595523954135666837592419648898362942153394827998725941046281229396723068816274979840366974460357809751247074453779756645933976736305194032303479163559379914086340969290254207357271790403853237640215958886611020914286795047080583930201282617865802861171969284224323945361403506893542086188774326352769469214554254166902592312620986992999651478759661542015583703826555145766129488673546159519690014357215684316084435000536534464063917569953113235764608784584695211780648102809591103378975468255644628863289900940800338337910820855264791657470696897348613848581539654261038604103909208515369068847302583461238504082068939629036354213019223198998621665419891360204810661968415839510589877609234712559701451139401511201413600877029089729965739104952692261104645163930341194658145442806075167587017675646567863400656246016060139009784219598481856613463768849142148717240817849173887415246182804570895961157720376043709316617101858425904675134121281249790177598979337997982707586721409149445009935896746271391571569475992414903347351293871537093155691808807035824191153224201823539746037169554755294457905063358445194273855665128820304667693355239193728828266413330219076323756603413600368474246093179376759258592107688978936975457618679604095946202063886295142448703391212943296497940162586240635821947376084260719393118315945153538397091659332432767029304776964348433379172292405780602116352040301898875617482756648890914389862221532409032930422906060567157910678797781747860759408271833186601262638966453435741687774309678136287607111549212472736874565313571768132600915843427894130130682278121736505266047429565977455230732164774276274293993439101200112561940139655594908643369819918241513086783576466999265376737445250073263874524585186432480795907839140786799664571068015482304376471035785146263417264768924712801301995338069582892745114840868871383979085190605838193537160125382338398268589485247178213154705100837300307075435817641930701797018579748940789979712057966527781516274923492846019281112677214179790460214610981628011272588154541462934391385630372070872994021912141692184381303132650739696204194031152336120563067568992725429511315005866764107636844149668909774771264025431178269141357967289691849926498123204811118683385514052439720512807278357898849638865639535618874732189312333610387503923473535330137637070173629117890494814872244362373723907186411981210153423779254422065896583297187713674499758690262019313865552604665919720607436228877188920606137192759725873215413935912053189997433001048748807273176752449385453411047170513598778087547297412573006646108448608082762935437403352101456503710859139363560459840820267144909270391738993373576658676123362269011665771485142651127944207348204867512327015157368816965367409251203131541925664847487554432251382732370607293609710058492394490827033573305254340520398037117809386393387482301789153521483901881803930059842506896927094554058516341930116273159171188637686904055347047808280938370544605743454395478349129090547169152400589670396328416445362801879539071526929674360926185011194033891034755921409635667617169525559864428639984011693986759862923955863084527306754512874021612888391938007244641978993906416304690941768580180520173818370416962639661524205375882433462351404606144620725952181253602913722818251585199854291971103226737091839102148028198833554949506312697513817269732096923218204269783149142390172014261621706185561121317449732167606634249368276170615777846911302757976378327596591385155769042071287315036454972809244353438297339462554501702909917847886961086755081070346118918222364592866689980101863863611240008172025838692911012273117874770332355647609858189622644712167452480405813573441043566980746772526485931008115153929987507258481289543628491444529488830133725834689122452934021116721048409872328233981999583260910449162519099975161749722407988854120138571928176592766707248465379617373042958255880470948716906898939213595032748301024454717337163578537331002557335870022985481594021291114630899777305352541486759338137508964628711548354502003451416375546032087245966003106894255295000029990887017154277548328652700129374046549691362901916604478759722514455178875613898603658424798498007464244526833098962844978082264311715137303205531819087811776662291242056186514680903160284948313764929804076869284818898670538791660955167380053861877484416651416905557746419294852081480158799298845253776707631477450818218792117118748299466443213744643538387419225370373576516371836695612330632853807287525133075393402700665509520795731878899385081975443931255132905765553762909351380316571977572442887835166766981746539758996502337348756164446170253869566164792984866829426203260406851087422884299873949796622158833250767366055269708218948246662665147950280507498756675785133227255215879198452488724944364269923721172326708810855991559163343259773669871429841597926636585416902545824224041711034997365394736330853885876813086138222012166300623654642983489586549685106197838385091831909150166510046130764616180026104715046962420150947436839385318898791348640873758753584720331087767746731587068873282414904825915641460256834695531736161134010044361142701869097293489209177881708246024432705104465803063326983899141002406071285540090621989473639745661745152608934336152070352865408506301464124548356645165283335442569673886684988060447889848999651020663954053419999188585522095313958395265469723128491558508908712857031309013639315634824787987164304445260402032066753723010987763193731593626090675782525796958033417222157216371123331826372487742271693270925142131901325611608070215953604747855662446378654387189156123627630631923005373457031309776479713550026748543706902432271912041632437966877262615786495024338405854731117458997261730981189981426053351257580806303916984227216208472632953465888683724598518581250957256535099538330723426293350714483348603124611943226087006839260913521626175900526941143790735315055105730597115218409024491371415312674078980150542484322789991220088354500546340814912659656659996753918573996242447376242762347325250869993749834124886130232179552012881672631103515666482625848073104283713484224817293825716753600783868225979421012720590665539414976117057371899397955877193964138315317962936008899904007044910427105117312035113354458755699063855309716689027061346930137513081019367531926053342093076508024996632833457499470294723736405158043403750685551823233620042035875960784181557379002356703805543523296567289761550624818174431733985945415023731534789694092746686078245986263454428155222500438532587692012481991707263382895249818974739530941546189648865915071804514551905039627052072337087177847229474039316219784126609291424819320806153952620786504623734080897413131668290478125834259013318695982865275716259854419049185648373954684618011442104891309835851552881352399979989926284006707510752300855416285575972860030327058185810275464713839075386294858998961198264741767759799774894370814818403695532515896310846411007144094897740464283641382311304833320318477441285454243105984106488443639829774944535096482435021592488929730138099973722192324214304866129408626231800614143321873731574754144702336701959001076130750207303885843425241221220023803192005643761064105496271459291021986301091126679081061599138731377694420395511005588822674063533992751005484941258930923232393609374736833547217566062097376143300025000204824941558692973827457342339853951115885986475014909983453764217836110256600385334142567207025273426256000819482607172285193147653417469898622340661116936072531562517384280237266227432928420436608566196627210462564631366028645846336446871320049493750391997795011690402317896908874855995635015611975747977177577967850299647555440809257076687452904291552528746607589524524496257566368569716098734781921578856308134281505514861470109538468107859218636570490834042483308679379212665023596639524841859673957597716737811839643478460566912396199687825753300214963287717464008153323893241401413713163341168628049935599433340129069756785564347365348940210079041977931433366797203807697865890042145767728873971196465219475584265800406839961969093263757163165508351779382789393191038373395064083176673851976195598959683405839765288460897293489859799528495531166500402993560307335214015664289674194297021824084983415359944582959030468213763938138106769753596922846206465855750759014116559892295430038259131091468782657265865726357608447778045013291790612596762717840237831163599203022914604861669578063200220302119735905553955657022310836680342663806555670052685367318548533547069067980387445084867133287980016764418097567229962236713432618784468595392505093035469639407711426329870814025306537066850254664794237615743339625059511428068096496106735966846233611473698203862728992791183325370588605574291033789030216274396731938933886775134629866592938186264146128416284805212409914839473296601688510890832964500830463467547363316161274800138769689455623344940961625555569757556808494554702318366929530883366142663382504706601864884850293188849425745903157946985273105446269596254399848317304458464219451145694762971519715787057753005652349753001382170940904813372668814465137403050372656442348953633848367178802707838737917337368852447192142830487690102671242018757030110694950742521549358805762527043115136293990655244761212218417900951096981666285830973322658587237879744402832226227891314531260703897039856487255633489082059036708633752645440244078726789624687419778209399254462738645095990741386880791041315298982943943851918100163119525775961880551771012799072630321395378229013479924579876571732822643055533452907497620310019813883317617622459947859298807494504566755915336047873821527339591476434620652099592169549504599211141034176472524335149244573747067687843325429546372283435654404087581382180768539835207304337468570852333426327113589873711666638582801782391833939920905116680814130226247664117568686190607060394490853005913602060268285162533187645785661051718576662420000413518935250884153018709836107354080113938137146401762444446124187400394736051136862363472474576772052394639884345807658939248154054067301369270615077297058943204294660911078362984168806352803011557742059640422926910448928677493483904226467903955122175536674335167076427473061118668094985024168524311670561838999753959620849079744307404199894219263184399919084280667267690876378714493994197107131692754906967606193271827698410374748179181646219300637671701444840524748327371372587801823608389725642239572767631912161225726392330031936099356510475885916918893017177476737192614805105547054837258724733181475609935339189144514170632740304912967914728824744067660003119743869439236957126960305390510809627701296432442795697078013630068138809151381546170055660074080445120580548702086008067632187698983791781079241243456770112945969331131518955276470467342675077030125958735496770377494978401516745240098959002593493981264504946963858184126647920524300544305697629572727553383273782424319708232931764145854178164210951068642371990808243849860433045061029359155432178987267974965942527230368308422174675159457464073276753681825132543516551434077917444721851625729896223409867142833902376984259762783342068161709666711587775998533584098039057274045547548558395582147698012427828476197284753261960134830558535762073240247796406077558022640214360361853364019360114773511941752588660134576975296318951391053315922368689796086222410540422139318561461060442190417295210782462187283993844912707652777367252251121618899032824353364216592840410963042606864245773751993817785002485016077792924942354200929534917339103104234705098130415526406302716600828712432610883117341174497991327079955700522315835277751671078712426620706783467737999533059283578294678655622368038780751300998915824779896199986111560917193789422608704764405930960357204520993470336676733426680145446709859000761619187146077169297127100554695546669944373825861147760869987739558489392319415445709838782211064228508363757593107966019167420827511530131782146362584309947115714451162183646403906528671054769072495896528894413945024863930027027160177473211444975658709922992436285236214010642900119794423723361433195453101245018275430984919533536453259715119031986616383094200560499638769805975611778984195080576076421860943405444887315418343862064753938172006453951292713825665580506884789957061359201657598828003954289039165150239645584759319081447319305682254439218487958103831076907480980992434793772197180187202089976402944361550455089909837161971645320693907096684666436563702203255922263445780574913653918043155733915266621471652813454863806647212540281146280775903373780015331245641283622274027619720228759117311880459711272410052524758459143890201051107114470389082409152832490175253319843708004874309573188985629269633679486243598601302189180402903955523425373731604914575521256646776622558673434376127459164749077954310540287226376844280576299143371247697784669859565393370044329050685990138698645961182528706772206729122156020608931608553177939170349050372382936740315927927071225378349400346143814730797054310664870386834028401326048127880899320018125277960688821303188650972024174055568405400832753091766396365117685794037577712262028726332661512695535639010276814854763427279914945199094198859178949710819732278492005192878847894197542643441824403067939594637839412285184068845200335643345152454568459567911050016197197064873212064541461805509312509655468221373304607763977097955950763278981611356591333046195324807282722834292833375525478575817861847569730371626907924064115959372878151329874140509866243091910637346200067721695496528381231061231068971211278517344864746145997880396744190201798580927823144868452473627267097947295702110654202710625059802121726910915408486307682457947473430900464743498054104254980991357458960906575654861809537467791472369781152004854970553493148920251552978029755907257416812907479621468785383238308776824455529476136860105214497219393049423815052589709919950037466951084863955979350053018512994307709829391603456120439798760225753390141763648578512953695522351460121832785694289718323744168814017384480927194213416292091557699366890769473693112922721383663951404793294046704811013984464949861448936288949081934998772091514014070293182391474296317033263553130113522620144648526503879095192186803334899304107378094534025506870107825267084397773992976219069969357661352863811552246307625526227671709221822069266651248733574518531103082225608878682098130833157570261456759327254486781824276687053238558363320256190410555466820074643241297567178108647041835620669349422858418317662862753399678313813852649092346669805511968965529690080026000123796739225203834174891442175194869902359773260190288246858723578856471070925809757216959296114969992359963932220615166401001962760216914433304200067595131999107185007153590247288836749761868963149893472866769372302867362791350540420688422988819047310112623155685308281855074079242742503097631321363952932187839876073699323258287355741071373822602471625615063698060534312433278557214331660851238653006772678932590985866372931159520991075808562450798033527912091698308126748605348313511247409310787902221329131895664940134145936605131570884296777772364013916016133100052197644281348877294079392515937615155869164888095764555765710992139269617284734242829321047280103251056993987722118495935662837952120238706080572462870401869347060331750399087295362529107378607662849498616636803269168224799176734210065745424196505581703774773597541651067513325129442337365341707627175518842904112278176995911700906061509355355604572920623534915254334728823718375357213514006369241065530097372101473585493031429888677896856223787458241428474279602890242507490812854237571885442289312065036230866341697060932214823072671581917608885245288234607462369321746308697473583333136810422804145527631538271102501230190079456610282064041661661668664866415956982305446303085710323342471849851012733519507666441478108500915920768286929770152927432000953304911880761280584242738188431043749187791610306359440316180942312097927743245208778255616542514918627861087643673068242237472957608519806185694720319386312164970278783587236064520075730785651020036821321663921102203468829131816163952719879272317375711135226950322597413473008838323299556632976307114525787664235081122584303121514197349569804784780113048742315792061537673963740711595446614280798147635306089258143784726433346648494433605972339177721113733483363332711141476445005234414043784016581452659462955915681962415662112591696392864840682883939344289476043471255543999913428113195195077765197109754375388155475469216700269526023238533298628450344018070270231301532912862053880715578205431312556460520714240472262041040981689848106340099584916206307884255368915897572291133793532350368915885579981380478271622428754877502413062964783427406680161043821890098448944894784554356323340493739763034191590573054394646653783016307521355862596447298910971561145268801070442869322592283773734270388886709444800863385677242143629054372604443634319042727160132661881608528588293749624046423106596313514958216513240765785920599681281666710170366454602719745643695525109497135373393607322850408805622870019403567311782495121178392194849615376252749455875337352937300197278441498547188364605022343427630965189878306683305373663459438803134107313044102542045894576119340304065596920942001835094149384359266479779603667467906879033487634285611555093414614964583951746302009676794481190451597531707462865582267242235362200955405526386673993625177893215971122203471376852738723144578671364627467394738734277205848841456917703941079936782053692323524913885485470252535916558496625726034770444167829015102876825879604406867945276357040613498557657248403522306343423161101343916150948604847405528500069279088139564266776690774801189195738248691346514652704484445596569846044198086561546451824337935088140083833005966528627479008747812568204001502748072510857323659660374453545478404667385079981822524003010895196660800339828164363900607103195589676446094079168709675853307668438980262846688442566613139205939410650294916279332097831731679676941329487840306240752714211265971222137728245884029220486539153313200294019564435693443284169702194135860796946150904587381502207046965628149935273496592341720862563939996041226379608576570851352980577466073117556142967524948809180522892561674010789547597491963153458128501564343856544682106696813680024302953793703276604937470931656402928919640495120052821215010782330971737448856898403656412460397835825308759758781050056429365852036877080378860337098252035684293500615617297761639777396640464594578300634593330549402441675103171482939773113150150266768874129636460232509353050915898772615607600932766691078280859922410614049321841811201650701561733789838936469300885073344161846699091000725975576511788628176420417677831809282037906156827444888895594179563471953928145725857910881336465940351949519876840267463474391946260587798353770754057158880872640615725577395183367728177243166257724270464409320240913452851359243460891536552246028829092675537277216528703076887918991674798250022365323728694189105770697456914672181988793640586847157768528958974569818776237360631003410985411840944424390523679801386904137770336739189862076943846714775095793763739229065947515450626503778057094119621530211829806760359490991831008384078164582121200177315474052606475306001709460767976149473628293376209755318134897315943826397424911721270576060688173513903032558493118926594374923412482955836101136157143417273173846815237515930825189501636139453042257260068294573252528374883331917201177561180121653020403847779647359733254883491423598280257939847279030237963830688452996369070868995088829418837288630625777288779476440085101769173511680850253698987903883851375674994305506962519309416953183500421170693632492390051988497238051737058078343697447669749946048576784509926095106160551060502783530974031801130346363654215857755624197196194006057707372753314092873076373203692707199236140136803479252487600665886128307451626587360758695202435754404388708200006671585412686700781229712022687673194484683725121231219145669772090008366930143280295394471950531517214970065886611838266713712010586775479231397437668261584616438557737990561305724160345124935638795013659117393366445943832508558794780460920972005519870413194248932186965810114741407024201336570797537144647721913133007631098190546578712163137081375668492453604251137656088106009086118442150985132862556051669302890757799944286816391159741830758785710232164558684767361851989837578488756898568800148117160543557355190536681894882098721159406593040901002286433911877796340065443725770343863692809084056775187225706250309452215432804995345095015377683637183875179302527077407062719115599322525620188687140443152580962094718502196886090992809731072701677226103542770612546602483431995121111073520512648611880540928673527801370605611168039305963269328457615866723521167991151980639916653052429084533581521795691755412918730744155533281789619095378208459100881937672548174181678339199007809487372323493216186343850285368889326770307438628843139953712673369220412441081782035707205042250244638822721172222607185562976416579288290370743100759214452446427186679590029880593814425834521207167374251565502596664108573257571301625286875915701630568416513940080169838745667781290293946333459967537511848016438109356855900104839603697913548585909096866647366557585265986862489687090901309882565729558902626883784471054159163080136180915831596330513592389977573243543001389674403123671858349050202006581275532052010130388336824373010790920952162214563793530996888689848527552548413779222387754620704953930671347647284360466585680503989657132634419597941742701060718538879899116723501249418745151680129953890908235750105908048453622089865143936969878417820743071653833444054229557314174835055141747122186699074758133817792053439335748081657264994787547426044560115151550404085626766236370089396527264604508741350389439289844312281312134521700996556367604604821708145220648519359343129030563202954944346918549942844069643704409642838949585136353171038679311902800503218087747037940722952571017722556441605635748450935616333772506292507148243584935030104546927781389394729272923519106345305886636270758802717639177375153469537379373193069294108549528378367990142517135930050146810947276921914396809892113273551143167027754786001345329930177918054855889503359277667315234262668807954000861888666439550078494689293116474232666627956612409102356119982582063032207232504780263997300905993805123466717572351175954923967241702105158803161509715890020958820346745905250719090011416734461141379538378496215916707455984736262623139285286725976852903210532010573991413437518538955949354915054757816001033694335037706299732197839523182987153284389635544611800434167100636570392415350851962600426580774891043731695239293446507409720471466297230772068570592868752553613871923773297698084984074289861543596176919509090089749172781759651013864915305332750168754721467523768967406022337286606528490589863983716787260314161496713112472375671590283126971464545937512077719218458962457697773118895405181265219000962210134521873384153248358969722273606979681399836156477066345886420544865787942265588828206144060642511981468738321019503725458643382834130861062855766053028904996067635451418320673328237939781036733182383251884033925819391677287893992003508381152852983505857954887520350093203873495410114828789974789655932822204132765083859799287502281632393037086937533528895778067205390232391995746857131825734798534652186759063643689429653867424898023467673283256544986598708365204542142588502377179221724946017872772344008630063570621390024411576331301974641976514619474285438053202143541935173640943470639793295660928705887444273322427411592418151636103062093298295178107583879475804991629304569242938080000794712630196874226517468666232250492338802625759245594344009993468157472849530866265018269062929628660441563464807214460690135290969875428788376450600977933278875164636140853924470200152102646728528578810749694036064386197986906798926079779413406256918211777487452153519191172958958450226909463252836487256710822843186736048104311407569797188701000142670439699669837055521428163083561730622207565630529877982283952531844263341858769087437745771259575199497309818327366434463726451762650007658969362698926663547267789789091000047945279597549090463697354322112271776673119617216224518021942948699869867872273914346658396673317923042633705559963300468580886007923514070218174142961499688046040974338755050298720775328536792824849041332446806794086824877402878640816109820537181597374023727619765680674486525898495573412807675720832366130099375201237140130787874031299173945617829526409796767424008373978902928191644064293550103904396144707887906943249970189730437708930633569655407719231481759458196423556408796246348601972896757319686527416833056600713093078308179002558775884254507522531055579151959933603900713509843468381835234820912147939775604836097836818302098215438657421811312525402618311241245601812278438833836025277535974748917918594730786083273315850714475475168892569486239082192812721776432216010108941464379119828034273879600441456873966282453155284215011439851282280443524465372250928010789395346607707137746357094940666172106751649974878328691664761812132077807998141537208090783457572759187362869991651261948585507973700165611120612700856040142439319008806667902789064559004449446927794641480419749281688020686819859874800646996029648441903554375311834292138593431628878306807690104289631262117918905168007821078209826417247422323583952044420305107071906098334919281792502387472898548970501948822958242391371015696287522531671542644856179999754065679515808052793221329731146056735464178374382088907773235147871329602561159732123124147628790555310935261031284872666251288554117023208891560536759666544159470723439951594053936610169614860588275180735800245169789994565340341331077777049916441533449560721325163467765906349912484203672588853054683000560583753651909449555821879468243436628553635589322790135487357591937426468932768656560755663138554867450544419834345972427614305167216469781561926616491999002123893187291776814419321891937343146381525808479705684260648398430855006542681207164615302937186009991564266969187936932058345085014426021232057408007215529708767027305826482732709129522726873036000599946528335279520086898774847804218390402102492748605177536844592275984010495689057611097470314396644417027825771079323321194789501146226288358885050935930003453797368562994529465310224050350995215175488697149571035592315330430880032369501044679240490900905657009663218026465412021719099982772124551399393355357249022879581099427288124121896296439651837126989637405631742954386765926761828507299122986176427447872873896067101968118156010994776780191538242491329351538520967085765173705158773395212737384929909086212448164175317115386728518519746578721474021121610157516857888944549689563176834182698148949891681535921601598884174657781371657846143192822737853535581261280137582302331146883326624207487238223870860265075040215516791486884334870655739358984607582609185312975213755063076906228748627972593956770831963489635640293260336948929448173923309262986203638769990408251689853975161059516941079538984299058451137069520473553581313962663300194542534214136901274715098487202723609875555920386142276173716615558354759509942790016068955914701171045271804016105735004427432680878708639503385607399446447202065738354432166854035794408462394865923383913505615328114397475258596286969524655884074737660432043305705644666204149173028049592320363167329865115585109846557946475524369432856874106568377441123085707217999545748503004902333926881040713019388871195125209539581613954194810170555785618771683906090630657546619345724993669932644740346173342591605759607291122259384630794562723440194678525481574380703092186936014213905856747157501443178889763598107950797210166435829802039247695603731421981523433141559260007117320527326345194480001477243444638337700918786945954493214113389050047454209248937341698016180798188321378634977514571941303814836621914577778991511502364152032627408876942597721071036727269560864721060184311978691069873772085290218348784484758040214045596506741577038077541517242668023820682019465884855592323595638768705188683721965857647928920740834433298741565052515883136782367577489771564950131701434823951896099788298316012450613517018700723446840077001769423420197891424269267238273680014943494365520898340246630715310551417565531695469075326121742868030216851955417203403596758324120245301766293959556646606084038964904006304511672501269184619390615350735748319959354870432604101412109380693090725280115526707159994651927171807117073418623785392232323559301401703046202136443815384450767155158696312765363435697648600694902036924473578321692515166511535788082008335151619900825818932858271483676625920725556535072009392261752526838352298014604507484035289986245562397160422887963294156606497267147393275203495508322971284936959208266831077474177103120307154585025368869133818205447515244430336066006894899171430523395044906575975015830895969328104490262856386260306447014127408893720755281827643750890526941026686243159828401962019910469456820984241261223511730241219086441575617663073414810916061401851283753097055266345403075771069636083421771287703567568051670550724127512206364871630012219948763947313760900774486055215964409217608073674980144855825250501573290873512325053748715101419585323319080902469236679076535081343957805409967371394457906257258786880456045546947335198293374618609716651884898026088938973436392036067878961475147840992045611114335197386897566669444000640810993108321871132488618275424807916493354215754539733695756026535906981666448125165165525716769757087767946486357461806830507588693598186783934111186060552512978090547292776564216634726463066774127971184554525459455005878002990101270755303416556580892786520337585652998628290353665744377486427565693986286293098839629330184296736139988847983850715757137782012239311913990858885345480603413778324527163189264793938582644911134959888050112084005974478848217128612446081978113026342388053620435327523149254649394451168498040038700733909913966146646960680975592159545851741681020873137400932342764866677599555402546088956683045662596550048012413257037325024441987619305626230425473642408440545313807554413758660821033977499083006141117806663056703392496684849155625476064656317275229526490353195340498290855057272515143695971537900837961175864730215582138461524083458172607998725073848222432160634283107230845285282528916688729292189156739324891687800162468436312973451207335824453790947794230923288341241997855495011925701870523645698911634591738546889305582978439049092549131134552657685113009231201564758359253819657125005265457321910225252489324155441588735309882463335439957358739291227824222023718465948380320542684709277274785210944429957274981626766663688819997365644088319800308472823644091534955362662862203877466869564490858406861167283851794824458478496602995664625562450728374447286725724014694498393002322919606507978767045458660765655235239092800556969289295981471130176453575818485784256807331421156745883675330118056057931784078261378823438174589143036815459974690819846003681613706464832636766347152441463859644940006066430271722476226694691130152443852452369621222194920062421575195829652826917264479612641003458597031557438282979121014429445329584580804225377717369087607177927846649400507567275247305727296897158895832786432932300582888310736426232159811289695786638679154404028532550964617212876270148953191312992980758907973802398771692713066150019833082991950178861108157699835090247134779164925972357273801492967222190197222229310055399634135467325560739468549769238793661311061880574816856918223876460226879459660739880317149717484101826960106265282630878503852224140956666672010270617672749738710847977172392139354762873564845955714796712238747581422489698075147642532102102777892381456013621484780035462469623308290105065690500591888945852034698288573695589111236804703409748230932276432147639144942315213426513557940426618448495195745799454782681794630083466469933500876516685816616657776548750686104003740050093467513720208610198042218741751080711941518095578978633906283336512476232953543915461347783417990569575408827169061380543891073371505375069829560713416550638344803739095324312791981223492941510782297740994106504015998108816073065632101493098883624054563230025805156043872054335098418739605756858364080153274172701897328670968236603667530651161966755988439171131783304823695377685464904232662686701684436949181926005600642894359422089132773047182451147450677583903894026351483370285074609685474958722227624204203085413373359057986349887438763639875498276124752354906046190480391332176204534679040502925839677243362033895892423671663595842420352133049104625007237178214662831714795662995879881712381447910887714686207085572968859492114861446295717034916571272907500259918533256128884894226012973817514991502999247622251702839993409960574965257951453700202208562778624021362314464968239678914791893437757097802697833249347371611908246094467992526967226589234971854626841247698929184874957211321740081100548668179064554473087058236770758890818776335695535887527676254341768921476013770201360954933242296342933366566005543216919384053849798590380054159183046025631720320718930851565713437874481908237629415710517769120815615061863026429879092333382234225648431853280720327776810989332144535767823336356703510591519052531010246691731104962460491355554523204492024316826333390846212751410581355120846205128743630305286037335973580294498692182651312928273832776657032468577136939141576260204680589252979638749349155953160508228776762639130255997111289971674369836945311303905004690452301798164046344946821211534078348378485578719479454181672053916360455455884841537619916331197996244347644107932424249848551139281769316713526475597173383632603053205416803251745367792699756281768410334279643952282873810020500803581823084273902606730443837143246966111807109818437670702256946181681535882056914329815869962673297118400081248373115933932591586093707484215261436458840951621043037928338952949864565975513920165462324161584391785328735634109618122603254102922450903694303561542441133618123546157930779390625082228974498322820050536177850573812310066113784860490640881354475972698953219069728924724603187391482062817527958083245014715824283997792264989748069858822291338573173096936478449280837313944210246679995536155640938895374325167300703292059806412627521155517371722065171077981754421064090681132681610587562217981753835830702593280157280638305155772387849540270129559496363653502837865816190681220832025669691719095440310403845795784419565854670338193658700013261446597115894959545233320752011401194804677098301441595101487516450657295493783221637595880049473181767449876864044433020066013714077217262676870001265048352094457015774739676352760873281129880432409596688661614793473775837510062799585732496438534145573688476994883107100811200998543365297607273510216964410058043369733578442201562665123277067937831435487561344687577649351650396038481506926448445472483627100463200550063575275497845327896193798880532503993947144214376650167866986221110659935087281265874990266353759907181598594511784265306064863532522677199953508453997165099411417373002428446657259229366706404076077939397878040456445885862127157608844404853188339567062164386820893846110975414775075673362350846045993650971017557934721222071649357326308999702177769366173556698685479023297228742777323279936016263320768467326722605830882207335314445534049754706880788861415057216141485769256825604244832599366270126977490793971425189328706196782525260684480373100875844111565149660602199535026048347905760160094765160110884159997848218741510750657031857591507522623675594383563659876679253792375057518733106101773045406360265672053708180931261982109946503537725492984079235417117950991529034052411534697143781751319160152729348216513640668713222902677216726069241357724207958755723966927896745725264394078465485226351514251593726710776184952629311008024280118520619357939781654042048327362669845182851444316968746251133106670665495865035693776118747148590733645166832340076063677617860976801523263563975096227826684172262234161213879101202804249759797410915344459783042217286227843177930307404332183687680486745480521428134650623901954516354466455209147402789830528903758699561023216254962298950433117398472458840833438451047662362753971199694919206014348398090718948925630790481543340086593133102784638801278742562654736019233297932622912705664779442010244224793474231962911449882269695999683440919252413512185014287073748789412294440469690790322707143466307408857957623738113535576922321980808712049739589932009157054116643924125220299227624369859661763612635666668607194973887483675859795285211651416228212963897451329323735845543299272504271893871303876964529185595774744794211268958669814295011287827273606485499635035232885161487943201816214790579612757516429368173630941285205380705916895024280561331945635870937831523375544306953396853300900821307138736373738628862192281039323452236928077486548302581488163792773494856215252642629574854321245821242060207389343554274860925906174493954159512559417881532365471622343266397001738747201564134220049247933446867878305286504534678577357182199368234223172211078638259582877762109788618966867986139923247035512562281729034926464565535333191955665444378727862138764626123765207247176023666525877278784230611260109511405292110545242772551597620594747542198319120909424534214127408163122396231831500433895654738293884691945079707215676057576411662108874582935617254119308838299630244732438628289546425284914807416957837543501615708548686097898860512602966893574214501662831494974333940891026909695006278694767528452866145074859424332760065164443772736859268291279724730024072596719578714617037015641584416817801644124846328097388535105338379780817301838875621093448490960763889916689333363727090052031962819374911883975187278275038074766276324864999248002354510258565105543395823340173707875733533249534572788951472145761283516766629140170934351144799841101091931798079839528171556104827380846573395463018300852414106616127315171587435172230146305565677653772173162486093040499744460466903432605674230484766398725231861485912583566994497800624950758908080837577899525388736707933441279844633209739177219523835491472349429298477895522596297517385733926823603207279339701231999744899948036402380386533710976303117483691927225620721391744871532508026316006186403753030198413039370713393464321517919894042980498713597019244904195709796312153681268795281526275347517912075834673712377824640009420501475691341641297290312536574858312832687203717704549290232933816603022489299047364711534988293113515218378452104533883277376905713570876284385955940739133234761806259586152116708136357602139258915197411736833409097376192072613253461972193555734592597316956807173985134752221409385121174148271187166910029128670519296427481624454063659733466367802619173867929694401983148504923446538059590219002839756983595695942505441051558248008022312385968266612052268296286482502627753575181514505369142470712856171666117246316504561696832381849244808926124560456525313063716723129252351598740512331811632176172186067448826404013012620521964725753597481595206000738141165481962711943645966246674288265592042656911299169168015071776431170722908185645863827749752330604101491833712301581038579223433923340398284822233208536264590829251680367446422900006206547127186244583592596381186769240206355179822500346308581728347774441768614552334815191046505712694035767753624197643388481784129397829264808084183849686336980579060178167491238018079656652092511920198400685993829570765610881577223653488406063758519560456778002203729152081386421702332898270128393237006848518635487449260763918750564826561453347116229061898649518313595212819949236252633425573836895064572227443583897929101256831816779958814624048693904469090132051108634139995492030815249198118126732772044550587406570580394243329619673840730417029418624615844278285027378645682261895031886194849376753442298357802901668931448718990855865798544644506062350310757899725010608661933551073933440061917945762752068079473352112174239904712978293365979510420643434430884384432029956375117732725443113665322694092395158708231987870897583985174614219944837168250374908731316278866655589740200918039930591966329835212459766740329719888257014278782894723941464340501800050583696992946884490640378942711708880047614726133807821984899624642454383199888154548418616170154763938797317439668672554470585482059115745565751041023819836866523762379739771121330918408762357162793227680644820049328143996165128511146270079366306816237127080153374297876529156284262520364689245738510185198951042415889522180989542058987405738157633856288856184309967095021579790739258421005925785456762447567136831644090147026924488479618663775341193424338162322205985163974477207015107384879476431483380978872546660922284235617898809683592744506543727188629012644057008040550321627305810501102622956643561815293506840506291833566340897226426592534389549116633742682459132146508777708722627596660623363518150440593198557004116764342914745233854266971322017009290485710265978593825694667839881898979324711763460160703975523062441612492935631628435301408894082900354252837689297045607881913681418063615258081395686442114643064331244263867594830346440202655996470313114453645056842465469899413060469966806172728555239864514672143501152138308761285504416213133010762104311149457739256420824524385538723881038691531629842051722247436194500145534137446081587239886140565408355935020762314711720276950727119740816253666883864736498191149280970350871324591361827736664611966857236659575676544516450115881939600371472293888078655553180584135670399014234465394698075891643562904597880703972209230393426090121559126033224878177923371228527940932386177210967216579886817256910055501799629980400922298402151165371267984220268106643372648529151851835403253084096378081223596256704214495138894555947916988387703662898662913102912571386855422763562315026500201595710761792238252839804804920292771404930460961595881679022879765618588909723449961969151885988597229209749457093494675809813604392945585381178910687338697643960652680914617641367346798167069168153145709566570412842520426987922137115136778562645338832185466841730929173665271055371435535297386968095122742976697047613639184148775553313276882383552170111010001211946098977184085630367169703563603299146130554292053350102418200406244121032053758458980350305813811711408213289769532433941373042917797923705259246523287043388656933881015924079450867094401694405536987279666511240797485762754548963254647284045284048114195607377242258439700551253890503783774143108929689552829643277739396857184117304114028309561842042211188990148170050133007030193807139969680489462822689160416215946315802378427611428127382019787070513746074800053721035603947361314139347333574126942277457161699552805917379106060623868773705835412915427536175708591484832282472521710446694464119553472203683685839110793298468043670246788280747891529727994053616203988841460420215817565679683396609277836254027824623791509447035929749240611886628817233304432033807925736184114032282666277269762712905369458129845389862043959438640073631477809659282488821495723571298262071073606889761711052177986938379758315725785192600734769105333837606478752885523084545965515217505607874841664863369060487568031523569477529541827662289332765080927940724901467800078491331961416223959220137453599657213729140486582656354198955176975324643637427920824116138046013878418639966334079211753599577830009857788911251082213410211077046773430034895643175369711648573050228415276704051433663151846511306907733284866723874601665119279131757828879723476466297767488268844596600691215592210434650496193575330790733548103722291598700361603042928277870606750145856096579315426743289194769618534846903080892770039888807181007372338325722141126683009846376153284043099472418173032804932284170199375627768477125083486779731579640392361036566323062203094825427831808380193270123358570720925887967932165295291457292619302380743564742865876748757394852186557744954371884758105431366066808523071678341863379591806882676649039877361044774079879358588700794546093527206730744435863826081407142173364085965453442317451992070069042625481516143362514321150726123777309257687707713447555249826727033344453014807882663196082244035720736320039847711551606226575137675473762970395625074742490160808177902650292504658680962609993700860618993780319757330995925772121422053672915117251569640364703301157283312825316997785998596578236364605073088370308294427552780219607546838132925777546076869419038492021163690115425656850293836724522623930138840585835110720715807271073299552333851933929820668269984482615701334813514077554772151589178266271199939357097786434419045779679824298960288872240039935858779619359007181535886768040018795872502386034313830276398249277345099290293300716208302569587095643066456774007512840129236150789356903445801102496251486947023372305696308561479752938734634879324627622763407042617471932141926145224189755105596477968736398040358819525008927601234986536662703693017709676670326915189840383211764233746355091894474915770213529681688625100926549621809203773209877630666686618960561520950102451600922111745999524622016942494388797231583246293220872989168832360253939485202204416646821995528407222933941091957067161722169094400195626946337658796307017074593835696228346222969144410542610501330336224817606272579105401984600616535593643093004950255214056157523511697123318270291930637852143980957691902429811628910563481568135570413912117641390798778700847380929523426991663208798407175821298113468706459639571802191537507435601333201258473044808615455873162263931007141672702007587551226417783378338350491220989818850806430951595599106708970433546628167844489827034640127727274169988401105248148352742765218499562519296591356115978217208672793006563799045098454005367546875071795567456331871229509645744079232076342691809597257034393514924388013550070045230992466016870818332176452346531798619558674904646964162160653933017001071754111732460362139831905888709853389153427489658950942326052384263522198520040761645511409664709167950368888207831007745729049186438493616584624719155501701909380559493892559216073870371485678165122819954078562705437571424349328916918130851361877038459239735830361647430502235194803957168150385941872181040285950865468947934626422516212040314486421874459097045772413291106350212026068889888977668083860209311437351147453193072035761987762709243533987701825427438234048731996806416458390235726407856986708278873761140999629062655913707095280260747812679111529702657684883646538142173028021416403227015184652925360253123970718542796479917417042433362158088456785609917713716420235208217038270821454751598966303682615592865992943124758246849027974944457419855883176975365860271537254839047434703065244232950853240992213418624927712905826055814021487067379578242996216841387745832856777565087802937918202282593142869007699782218460737457482468083502593624370777585844500141361087833224859456602093258509524688559228764735488545774970035105021132479884229787144462940728362123333959935777837283166892210030186490344430220676578807775721703979956496260536085471931916623298756751161758412507784503602127578912119597831997957317400294722567028339819172738204984173508949441762375419997933404805195917041659924936258336178918721791859972692078111606814893865041762301153815661717161235126626730415789190511332332048178115303809099076970999843434719187540419983469635740394124884494504351268123354150078193941130094929848072480537287981761188634184278142805153780981361590042980098244479614980183740847064318239341945286883042806817629969907171299067217309716289664882751399002447627626252902753561691514392424246084573996401902496936691146417923593598024547098310909117415292919728199119737147313924679192265114361034304615807465707175395020777195470747817381574078210737612901453851470079645018809030958887467186797952388439948263690660336594838770261660789083284574830928396985854299133392450374845578994310357476169393116416637135747633357621428200257566011100045153509771580774294028517441869931904059676400276473116298977704473393391049213767029558514385596311672649987407872744066576231647026010808201210435241954438888432145463542050810338587168473580033056936854895909311299863297485030693717764671132010005390772771718243485089610522834250477852858029715652158971743379769576161596176790972154898163197650074082158374704659302535858463255260359375986734849315363607265975153146164402384571989781428320865365652792589995493087406975372747594567118779741128208256819275137009184952606312453062326587458143874845862371931936185474957464069994904159831040626467062602466950293289274675208454160405317044663344479141548542556279725519032092229161074974266650682811283857026211285463620640763382995604135420922717560651665306809105965008727987020021267317994005229747530107234223324591393135379923366435849239185923351645771513589303362734715122101650757578428840911601754072334910821058949176640629486720974274434344631107840647054560175848461455945003727058925789551201996559722867924462151020423999286408113967023075152583943927650082269505917142908705391166694554932137503163592097792807396257680942625460155289799365555432719687677295376256732015125052421484503865433288076461917173118396143495378706091830030063535047851804505153135105459859665180178764549584341414865619266767669010620596400516259729795393392787535193875011151475980221405718268536193947046685273971488480460987807033395169334756508231289327719824359280803837263933878888301679676285496342869623182724451315883460661658242069258711669417363797774273628798954269338608470387035301779376879067361896760528627564012423491953411573664897417831944766093662508321995204935545610788436435774658902236815899008432853267519147465906618374815333096485218177404338154483115319122268201510330949538876151011522375765188816432124862116630491219568393274244872803166330603206991546996823674776020158176648140846978895412671931398161091756795388791460707748692121324814216930557058077472817951740455713197581957062691190065388544743977309845537572756137322886198484641649446835918505655126584691577884676720289012023495836048565750877604589806958792916299177003963736906350572358397090977572376078577464811278054357346100106248051936017340317242635947009894111140227899968330380958208366610572986105366136058605227690069758415599802417088131535675473814767493602369626588730984346464199517322286992597964299588174193754036473580403143093020556389710137817154389282719123610028742233617835564757254122752066230661385617646258397148630994366221616006290911882053433157609557811730559614681427849484712253108955929028571981568710463428345770329093320622511554930817694478917911125038301576136442832604393324820698782504405603727071384988888074904104207251518756867220831997150214549381007002715400850302873107781923988974113943768481593833535282721856708102383792999228852309854607255501277076067573493401787866224727591671176582108343897005818459821951962487938496300486341353536227159260340425125212669781546487679159098222726758136410674293109856650247771687832714849205602380324628189052210672493725676300240796156130248904566607470410829751110839360379740488010086552109313863152353211200709143778786399527563872599527600249598412361864380661060966506577796993724543266556390199785641321675604954974150152124706805068758891137960486753471297801522288796729567214378966389275388029699954981051812769603143343301318455946296220732611345614746271917583340457998633865970115908110819009931185869291848919958788929969055922404041068978412697596469004175386144097464560928162213338140493986791627316522232643307611673664223694520149012456846980558506871872070039154338049003846762241658955813570595655818510798926298450046834687339130511426965230211516578918167871427898507759626127555376875014207145273395424006347127806916336006265526911262513691488657335039472153921392650175415809494220504532709834154059679719117581402953578587536159750530531963516629137864960503841088478761190226761320462505689488074756656211763325773409481559952571680104278263590405581654147268966049356808804376731578393965612256222726837775017844963470996478735166185503597920602229361650702168012086262701580694855949338921596831196807983941703850834813372888706940706099936031226507932813375330851993293262753915641660252120247945619075102854035429421633507180674891061870117178948406226507051299861291436221910262320665257552919712799609795998691887818989252386088742812758869212216333459441441231880967998886067274824922765733877588061228445069426816094555656583687671463012970201884167090418786136695026938843068892529079012284450782493673059863902046243008967187685162814822057868559805779111782210816529094935314347113984071393968429507045588232258286831832782351404887030217611393493993378918006717967098081683188452224702319558391315285605118265075329951248877432200907446148105197789731491659478178034313948609142773355347429451584936222300573610456156690245391491599955776988892221842013123082983634041358022502774966655198897951346298832683973882219405502366870155143664618490440965009011861751535928915804074802926706346293739673829367536909362869063720696128278482552359009505950600852798039495923015490605620959640612836826418293244086697621605942981358574685381257492943897086372256709475357161450448771975817480520497519429818772821673623890951678957786073402881211008398646985265641891989617919142937077250262630836461756118015916419660489436062687787076094665848468855070593379852911924640681097203627687181300037357339507786914696321854736645877784067369330333927754361594779783677947187226495712142003272387048093853872642741972069627482882413718674842633619109184076884393824429731938179614015179502337080658523809791874501929597466503754476837764517340303078854156111942837133692976470421864581491908039387844857185136197300227363770612343713593661138861645037604812819518163352219777014175068299564659392883556871246038945224624938252807762789589686856027321713222918743593964806959458192363050722796851376279328820197163009508519156182647610568650315821375815564448472628486494711184066217291901523414114598423956260711930798815267812324453808477111759590644209372790861678335841762179645426606754779847496400287588562390459290433658239538497710741138936609042873347766383215567703981836236910796118549046790408562462155784263351029304177458108907156069695068794083304244969033875852066380363594861028760515107886341565880330277368966207857769005460660713706345647776789978487583603152580638669430205503131606265341743146808636532899969724171937799737111120829337657607324109604368678243907949009517184854447358743596890607814654270887352402517628593788199378416914250002363962562166993647928558001581997494159421497998743399566501611717027205361694166582236554626543198968087495042012490179786804847968322604940544802316511473399524465454472661696361640664595139659926646701760250869874324524192525320185040236188398488353706929350173374430928267939771395336716708994281461936841271689628730194254858997019547773538091625743790094177134611010197442397106051657971213649879389103594179867264279161232951724580007710885113215405882167620417553582108497016065840045187757369981751000452127557199508283447516293076680195776527083514221249005951467744425540264623594658838215282638301313383739589450115964071867712797239048944321026926391136513082485430457169658743169702658117864144585647071135960910581080163465093080772067016485554868327036370472347571405729210453316098087083072272314049814705041153219877461026777059668563687652979877467758158947239062897147409269302281645612538354316781348743247535473684248552436812130915889326719062922790392584938162747833162777022474470137063944791033431295968615928529168258231262351294093912792562421741041667982630479308066502885615622648944110600177416917190540002540520392929106301613374601324910973151788187828075374568617711794665296640200538820546417498469362174902532541446898774489757446953418627591852461839683617093965982421664455585569844054562986629526873736530043439843035415824988767716380237046013863536287939451541602775784096031759138923381965587406445531290688885208836061799623301621061264513275558349660471140441234691142152071012269064891701742304462945115729949286547114695854575238417321761896497069206941920931552045071856987127061495059375222010538385085273323802332225392560501273191806676243252121022449647826585614402078166973936401597593818426426873326627108143925071185014729886444209152597182359297599742005813540326465273837806162443176700824665262379928590730557862047818440404848830371296530295862560277678805863839534428492808340189911058550961522666543993883322047783297778325128298112861527236884798894127013792456608260323134177726484001624509153005821504283400305585186267729479628204035075040556436681203725538497903963480378037974054650416165025907953786967763386178163757105093606910578844703777997760794631342935170227709494558486021581844459026862633122183009218703635442700973012034973963641027246588672783054174921669859621105814783490085663609172249157146247684971332592406910162532622796278384994862981263031943551507099009905977360104194221455951565858692890532293933374010226722767350356372323256670050379698952412763146678598234611794128655110588962196052128836162632837879573738408761665548821657839046651209449552322433501900928362755858525483000086686828438257525501452334404593660916428060891402818291486264593944726629974569789275741173945712935586266011814856636128645293230494996454433882469897253978082927708182982485642311259859928185672380224902306978749798206649597694599543136018926854059299470174415175764841306376448694915351819019154349874183212234950833944991042025224540553976150169768471569473259839456960828614742843620946362848960873326702692921347385743869398756566997988192251239909974135374944715770646322368688435307484550663902230421642268494847073639835779770592968748358882322964879316605842457258192657725955442580992785879754921688176713865750516127867642322975196861039519039111130901644899488211167984903932670404966455554257162190183601455823407283391455192198721004326745894583497460679796302467444711508728268739725404549095961803952903259225975452349581034299176058939066753908103970150565182830417367627564095254007310901852547005105324234248192839799824135079771152796831651591087220394552988599293254009037644715442498450268769668459287568668731140843321752418290782133613892383009561490947731149981490125920580473616604132007815181423808326126744656658248847584014165490506218961387003495298154291239220145772411411077229984028918418695861354668160354330332042349220298189316394247323868673116546075382797120119340205475758845687818652050713776616268231054048852773300349914779268963868461970725987314893769200823878701829900735539847433788932454854990850416583645431778302056475533151668728779284155834468371229245774404042557647764713720183102618550874892591631059635870696214599250649008228794150346743301146964664522888199019169435120217719386021183147744365563296196922083756080758126956341665948724791766249368224599625018412866660035509158645643518457743138077350443824847572080455860377132454590378859857185047061341193375047623893184617006047371810182857567328650956272395542686447046706022568010593514071160438277587389520016591669821924656663251117418964372383301992787865350282858984238241241429100283131846631725402395037243591879599814325235389937613387800581852958865283997936544458624109308312855401602030793370797102456884823577919935888450754776417326849837603485928424163919483479840454690315319279957578321619628105615647592796578709065900679958361988257453260069308340077600073463767686588047155852127681790064223638352137082239716953555620891162505348236964947352854866688706881913659094468070890845278866671301374673169565654694161536589955863769440988586803401853927865857253165955017170057891204467528039747546361468824002879291571988089894460285981354775689863201472161737839784026665399250606462439369328598297080892533454394731368031132848395079770975516422821957324217924522719163106779784118132128260146401661417008431360343888846365090233802721742670444329741328260185086765392459143978040753757502724407587707148420799978346370072515314058972957209702359918585098471533522450916826644551970488113419683100863465651947020508442105531594085761521488907584647225838366428566792134879838282364684032405281723886309888432622689455628991964090274754276719468886661868600720899486372397096914815586713283181875356782940889810046176901396155888171166495449595524918839601223501594989212850596270453588623500856070462936915304868137445742523272969995328919570953497490388851237059539181647382629074209872521020185674406840743897561352922711490519337305853133402928315524466168557711441254581277143318829853913341255506943675745063047850736241166912010230573594269398398236108239893595145529199435985770466906425074280688450300835781977904425294587008919306147367174124508397929509549570929715516121457223561608126546215801462434049531064306270443198985232511025093731529114073947788149923145486684459018343778103779341502412201272059129098441320910488990030602397262688899433025472566932598706794928546946955872991943757397589457034669246217280701815209476942136741710214662134485375492633613876259723910522177194099352960536066707213007079500276173810665906506639005594235697341079048004243959271057819615120562664085825093172778006115501755678948865079235310025188658524613051836079839754392473334540941072871219749356460431893623208442420168038712758335309240905235575739002743899119430461036943147515961433579694685148336119167311196561193463551123442304732524250960918024871967498904897829756040552517401320677397488879001472917859426279262496394354578898038098599447995466180116858226202725057088355593505773591206978113209445337727181271290028808678070911441851412145732688805753344933142523665008351099924161259674932261972234832081152728179260014485918879971242144527156387356868970547654539693540816493235169422769248930568220466043286232170567378297574256072511135812067380997735720383596150536168966564825765978076559827727389880619115925971741043601682219264170073354746058735598038490083932770848218639874022943661673518098463670319534193470766317252928863123675571120078894290803934269851990871489635578941103954165924641893207823111991314727814679220390848096465557513697858544558979956758798752149146652752403460456400213137249874987262412232721051511673040212936636068745000958271093569037971589557430396835265451358238790150807470913643621706124036838365645428705317057506918154292368119323565181857017221921252291712448249384664334887050593114220840433524937489874802429730536620667240004608620846240438451874301392395928274360934519173787600430988929706199886742073283159385273103281652693224732385989390128512193310080538003020386918988011556418473210048530339112383805886390486596583471241564035124826722106376594029066892656227779900366609621359264561967472072123384531317895716487330092848063658405577950391016036496054859953014009194895685458111835212593128121261432186187485439798831928545709767747730150334921199771045514946123519185164538308153596943147982167311987977402383741899835208495443404362461853205415324744820945546250168240384216116163243722608287156304366871064184354673485509715501651824707902046231862389126286679215027791499477288408788500631359735809710623570777122242702522782425365765667225802417388068006150624081116931302162776051826670895403576881005740229586441671795365144433765828610225967277222964204010103908512082545204553111682428923326362859867670315481596000699405465536987668351292502456615018101882963464005516663008727201086987668763613688203310376830909098582211341032899821935380492711585492372854294013479546751002406099063539826655396276557936489422157340091906997420341307628187057920066845350268991435640061417180499383155647437629247831556087541056026651478571297691473547540106436584071498089320316021860558387015657187781653996234254409451603388784487283367026561126600132880006346810010135385213967308815671841548386354514066455423209108220171667206431940146781370698581925237151865980866515852798214183266638418032218974181212100297925439985315778275613239420361901102484287731242649491270548960365443265483497486267442124171190723768364936337697200062877541525717754251458986911620970866808467071276898955199747305821834351048499544711796742961899259451450094046727692267317494644379809117208165339536782377121125140763515154162938551514833279714589852813023394361078600835410826749592836519760651462029789722053480688240498543305692072615912775553569393929950354369145993034315419233531704256399138494872665399356224695282745197445702612337463254140131760564961334037179493605036833911145908068898689041886635014814935539870437418590633363295147389370438175980043378303241773248511961925252585768847473093640152790919750397982022495893772303737761387934629871080995886166025672225010533621437671510440481107235060408825955644615427143348230842133705051330901011955758983850321855348988824607175561610836841710029142083919674969551099158046451457282854111979482520774887327420311057112859988481531154080961154178918522189560395043425785782226008401556121665350292729658178398707575258040014755351060333080032240010692717133273712144474192183247010955687516160021985703907819636041884326150008237382912199719897151287762006769604931351198320700854316932729550497332392785789002791467603089940931549401877406408788227069292535168591862461186269461345532162480044692905761640692436870449852508535102018091637085352686098397038844130061844719007517874884580979839882738109936389886766532514377193895199461887113038671729477760483023505465736366846852952221326990521267199306344252697538942241708915456291146068383389919390652309330443217991795620283172409156700097826902435883077107563514455952628931963470941248512097796596729139680516245377144762883346161363350442719693333487598261274022022335197942836333164290277979159267350837432112739918922786596909586768875885195154021402934132228201167702666541689736164253634613779352904116226435218663091216859294764408585716985163043725431431616068920309487651914766055434782273927177418509920892937678037457601345526033734066395671398037800451047717214924526757461152633923624296310883437695192383788234477833865153182791995629185233844077167849621672603728552522010952696689145542904180653411627328852312955650360768749688505729018041307983818221598052337618761281382593519583031177404834831794094519577828923456553197263853890023478846900653957471122275381861954780652384689202424175672847647792234666273698153841304105905965123610705812855641702087183468940919510960302899190991569777018385602511054154863167738023190155235789801468374165904351599565495191500738739125651375676349081111426108790069148461451496848561321499000332315851861229843590628208698406740427116008125478402780008283031194355018059397595413846431466666289831990001949133446418553108274622163215123587370141135357105101184776210128187677192469482715709853048778080478320098878412245591413662492891804310635614418736169506306140017010128185373552519033609447679665821933493354677370892046842591112763626112934142517671343251408725894811059377327053621426283088127525354235805574927854887691667205581920961069320247762872770324817596953467893903900079004980698109530354108592510053784655481626812872593572468098847213179339093194593557438410365594956104006211060264095212409674812056412145301026542859358508838305955846295138096362211352573316053575008274660404157766808437020004470763749774295894065033075760274914055418852154543582306048743263739713058764139215858059690806528718270608607359222929891424032973741024464064446049851583617314391531008298424848349880766535448413722011453032940748497225268582892397416964613965449015038130399366613785279622027993861364537609651730852682875597236965434051958124232923396414393466122782850606395795795683484044122544019067529359741102223398102194824143876936508661222366020061250526757675900090198904999206159127183670068231543299300610699393375040945724780017520767577761018680258740089812440299193907517180841293362313403070702706528808871835305840784777431533527025321599032637767655287668659066771870662468108490732591781052561012893884749587425829293968884194148826951721237317688920305328599210263030485669864375022815990534218734245485141954790565482523349847357652110861995950103135399195501892687704513719202256961831432151860049695556135187173668263329632146568790659084788025469534557329094136250511016391247637926760517221457826061424842386943923297531650124677135019621215049277654989730683734106874004387628472616513908241326702299500716312841448629349094568219232909803276478024110881241052731738863038294475256269208902077675582705465492431653547454727717704206635250315557506916775869822595305125362177413387119921528996022034212693017087377212617909283172412820976835597912177141359667953019008138554401415444198962110685465615062408916816751469079445185136476623776497801673544995489440463772223158961651804251842213495580335684615966973986807035494193176657159853721562712518435368476986973487048591402103266970418308565467760482305106569669927330305346964542555185677199291848451191149971021107692519278163570463408580260082412716662471419870891889194477554120789859890650997267053139627337923602588930794797148745409272558089422953897801276162103302809416250945879167867399207578529588695652077538400804974695059492213641651731468590564011880968791731212407037996011405573403405757197603100111577890486623520991871374020550966714435500796466760621866474881546593228131141681786738097106727984132687934566278668165915106737132249064828200105411549803606223779607422406010236169349010159023459439975429877648166397273781676770407874935265950612563976103419521585400092653351987142901074283044905241547190723029090323103869687458059291506044524933354747835193250336409840763707560539947405416839269212441358565748154941542691405192708834562513420095998449090633092584712145437816983789817810397104762650418477992487002306011436473788860397108924924899773907596037033287474098053230373033229680492100883135082749111683259768868182892599865657052736361397370189406962310130912361175113001989109866727924979475358524687317918450922592043126595960941890991764254333345832450019056427993483854990713387359827643340502618948240996032294547221783561471030010970924979944286158362844439854400253980950200622856118792775732898531775410106352201490561921980613262520630264839970772567244404747828498724160283302284812615029343063375338830639435882548894287147642951903358524472022128088797978265085041583924231740521116995111557612264124978115239581220617537576109679515211959286138226186235498015819912341253457006430828641695497864749843044273916880853252904563193990078102609746879164804406957187972031205973031737587670233131857279053188014161557014082798618895197135127769569251548300896572520049303414800310283904967114932501038492953312131089959891666616648893070903649337287469291467736305524412673087554858015945892526823658426522554376658761014247843481668942329608379235168964348919679965342064521834661797708342755164624282761565453419456643685774773414266670848395193332358934530165696686981564274772621032099739390856695664949097631704378563378464145053454531832324908356846160056044245316053129812451733039450336794005545453974990618613994565459715027960179237886818588329790772245137630718977478260305449754520395733023950551163518324139272504660774261729413765515087666238784936944874505537877757752922440677185274221984569911633772177492858683703260320538713942542691158069047644064177290870258260132880968841386995420386581150695668749620446493650409699383134603121027005623494091297949784918653328330071408148894079777205529195182920954795986966558116790464390045642695049858669869711587836924664756854764526537467617718262242299178016499789616521366445959507714637687286885674851745769919315438258099081420897229487090791455527546109473223534171148810575899592617517232070724547081652295722815269188685782751075381075209118466851146674212880340392942271587726018745194684437805983624599904074163367887748695458804299020001499089735659079797454183228403492848051557786242260096409551234908943748242048175945155606753836895106615776007682333214621950296551867507704974038587540958854936128658319815001480702236191865780300019900165262670884399673320610845296295065126922499680313950342588711108159486526879362563445675701251849509757910355843652722751813356414221025984612586787877542318900616845135822318768318557406675639578040791130674351424714674765956365861687043200742506354406138178230874830325597642565501513113147156925753357651515286158494655485328250626859358499078604563695487259658832856067169227201654887531720946262618253180153254542298623171485270533320811534080702280766303816104080259588016261179533353902942997142029887583830647475026956431209882453250759900839450096920017764468081249718460254538010331200235455163934521810353956639006335596962896149363716622962615078286696557019195038532451489853088313743813449671241440202378049740821486588494871317803713313199761251994211786789164017474102087330645086640686063957735466760976583058311180315168167144020173921931136347726692034545759744202641760470532089121059765440405790929898951365952177191600766977266115137895543287037758181800769712173228101124412425301876139104941383712925624026064171270311589181488685403791762222886213049186530322562232555431046034870838878539639716472240116975454806890093247806597017226678783091746588926741033966972941885735590050371658836414954581825050134560497004579914353470968413527255881228305562335975336670982873224985742392204707108625950035997846318405477753712712240870633702320168249722657051684927848586431254077468078118095758218181333429606292919710115688397049910904890800093841545903804731273552508893797461008949065496206270655587722332320209249425064050254904932478707444725079211653609417113025065571374618792396168583968916090165338234836919611423464048887772275148556217835906907814149771042023787722238729154094382476190708249400494594939019242727929372116310485846223970883226080220422049667250231337068410558807114797346245639275755321645148909694601917182874202537945162537594940376205471869006394742809082546496389795992945735541737760102574251409819047203745088929355274366608858177731989909219951893080970847585581353662861750643004009346287222674884109174443935512359691774464392140583328635824525929477995351001621487833530777178436879309757441730630257765153457449872999922104797968977409848955906308135687699561596139359045208654221639978715944540185258548476117676508217106934307271924095128908327944774824202474595410233681312802719907947705524055644301054429169876546314324777463009257913844787800622746744694116114028542196938381185191269228471897336122764818029419196501213850265299146347527719917280719547652836092435443985514595979019835384125212569790469686139291316173810316693090029724456603377947830295223533645642967926649641122686002279669253356670553012670303007420238477514575452583802086285409564221479732736793169298278273355686736219906267294750097981325015665536843811499472283546654836986149586989419893687778736681910125958620970143441455920809469701700480849977981324656227152434234692242916238471680377661874134456207950322484762430224203101111184121385549677923395047589037268377084598186547054334916089948093670825869522686214682953076342544177569196580658450836944233102290872188093806466120130250413254339436953129460346614518579735370741786011932519166366538220568296220734440888669968936860126211596142531844320533769840841704265863036854042591617426370061040321311832051083858487672417636597156247347493918881319478065783047806710745298807693499916054835174355723862568156214691730154142433506232191239943859387422364261336448221536757145979527249454655266736692417698907747869813225597588380026817145093198603871159576469114789790586711868472179977374856708320321367828207922321126723927539591556393711126101734332564425150696529150088227689963274022825685626408592741904551706905548333285816113764956453821653691213176889211575746298811274015365218698875833961771819016313831561177801819696084630320725833644397579483870872534519258930881980400209116115399510091475721385120181427586529460362799125994473062990334526742569517166778810676472022871100132584084857168957113383853134782361188157578981471535547058280550554743168657476587710103516713966390620119447795072955136175283717899432170298423385666428305472018662236640187396739315907348656093892915321123833983290059299092714290739605009909751430606984311469267455610579720265262848396537894785629388304083044578206177268264754214498116868578426699792499847169202698243263669878648712963972995188838366331400156572892025361770994709062520619496222002997313280178048111255782391375986636748110341014988947202588608165012429825189065195527770272551585762100496334929951404761562336232323463871947478550138068702921245407273498714113029540538663409020887570480750042328835961779488332983705723101270197431526724528334530893693210552158601987671550437479200704399737723677439231350091664354635282380824180470077891617812473559952023716827780687250779564714454686654675399017759545588212016549993132344480999661101259836322066250596326086642387938585174129452513739528074915639494363306735405823732035498830376381236323700192496458141709247504068978386813592334543288586181244248591308399983677862363469986887262874544402318303016356240493197303089501420974786750640635832646817884242360389435673751761099624385421868548698637834781470252567530115381496845809197433399166239126122052601328569646667894664823382020120922765590716144308693198229891714118633381085617326812339119294491025622830108763757567858575257216201932220251410452633651362422153821634999258136282602994889823865216893967861082251243171678403530678071386003824942554429388712521682301120958132591737909728863233294391961607612421783184102926255872547116894655719532484552278003963203500612802930322179878782932980082076581161429311649312398313484004163066829679598253014744474090883184294007018551664306358873938186697613265792537237680480249601556928129101997542829525849132010776495644922095590128342806145507197025278643491181269083907028621558545634468665704674309450920749446743215924473304052399418286832578327934750527622467079641387766173809631230817554300936209050679000987978877851845256165143319545601958873107630012070915787920563782527171087700789472593955108347372183028622433538325568176180037673953743418405391888524877562929589620289282753886349347705412175076321917589244398008282633505134405616735518931595854096617553631718692346854534087332940546418208069162638592260518173935248784373481450236910600590331742884745506520214410570309983898602879246635795478862647848854950541523973024155420711822464058057623315961321671737413267522604738653865651477901266063000585757989246594103351717569239931917320800622004885864058394478868297728754895652851691514243011294178152543107130719371991741927859078120104668564198036194351221208495240264911692426165267796495292977111333099947893782072001337767126600699253157669149995385118850603975512880191641454266910044821457593588349371385384833636185717316749805078177277086432852759607523805378991311928881354702277372955471168776855082677491188105204068317830184559027303237381696709860558831045037303335893244265215268805277957552283520101794937389825561331685868312963862090361157220191110947614426166906524658544048655662064688215152916129094204805159613514229858884969392626936354668408254099500066414047803237618872716239034886632510888381219765279578951312479015064502966491603908025017123622837597615502823803597740357806930063989661144893976271218884966865915793044804693251959983776640110985747743724054160418221398004222201519679503962170711005884768354991802031459887608003690349144837803687980304252643751289472447228655449731981463912421161941960708378132576132580521789808879033210278954255565052662959835439742347110135942230955317797463067991927578016299749224549491888840642948782041432583945189929422040946298273875867170704798660251379604410351065148774988555789073488635681681319169709564080685695163456191375478293178426449138343173155227632175903228944761074485412526160833929486378275635474470692696230954539981064692356168920718674021098795014614295446016709843099073574326255783852246609032142161922075917667404352863422829928600444624011837223488914127856363527315748726577859150734284036118155761682932974088630579094052414019979458335167349907562998391458915788803741465512881596216097944515733930068538966678886770694430123458216920065214183908658241865752436318723161339116025784940296563431196660790849169933433681556444575051261279587833897953326173109479432428876183906737214833292068929524902393590973589552126050148726966814966719035657019253045152035091781495611003801288456554068971079169188217000892500061660390578749765400301951113853466646765833415039764048961656712092332671974090623471653563101245106442718587788898012535722146081714230378703587897925061875488097300951248440040562630596527515050976746637264860902051927785889834829187975814308026139447866295609465045033045709287742840697872879357582387601098668634343599122829092697193046124527271394333669866403786980317532976724427821780921892243508385683266810335474925578640772286732388108835836483326295186943132057167608767982533697392842381711509620074511362203894274598778702703105661155744486447043601651078555567663834799481627280151217198295401896719030930557650166162433047551457864875435139713778086389409511881339325518970236261772838500954715852296963816178844566234225898274845867565655868867491489922786416610560144867300372468778730878893674474246118730301781006353563548903781831010507168655014296378732348219750703942820999063029158666202789514736036184217331484007070795466480754103216313267012465325942673577188338386112857513160752253603309344000560023702238386686809585324100869415675554865267559763161967222523141946784646395652084843321536620276991154959294333321321855375794936368567576915642569057459448432314965734342013304737940412581769201767695191481132151418147990137928149526968458220686714868170795271724071560283417184598880513467885520768088647316872102227078568254773915842264853040339340148421206483011968434014201975374031588790515286970136351697597876952879505822500810824692740102764285529870156509389207251664443203110932809152843892938154676109371519769152072647858317786281824869425535255278245485011314541886432337457280265865631122982705491016491501189627563401982638616471319449427864446661225934736200968642647514058258101154126058713169839645798426606469769499049327876786500990626475695325238324516363082716935386166603149251621877877255206226514719361330367267813260884625630491561679390266751631513530907926069403649903171946698381695295015711465923063721641409333585545267337397420693143944280156052238668026807522128204224061546506686065949631320306196814625250470798605122061673373349073921645314331830294880972820225959579859560084280916967660545165995851900318963126726768044454305232628767238005519794596679955852690275707760292398154573367353309180636980276965950986639748786056001362993891717530456387502407730240173522737419655058147854818573476037502611467799973989379644411363317670015462093354179132751052853736404561309265987734464773905047099251067764212390264087324138342459945642738148332903088372622683161499866861339179186240278560528419286503626509931093330001914382339158212175047888961642790523073728986141235371548016552912685109108641541397578070246536970976484220292248163379189477225145811228366188458999686338998871587127496851494764258266942534412062471702190115058238695782872223905430597114591381483898585382274856110434498724827772501415712222957055177448586774510974705625612604503267695447758663721365065772946541075035249713648588640682026326317313768851790245378533114140747751446742997753348605061588074315612963887533033190547849812039338665556255434174509313618379066266284575254444954254232902830201875300193014352583709544918816593395756199572047614691690291766071615653720540129075776282787049486723414793923803103571009903673013299017013329108299282005544098598482643568079918809826166522758806020631261639710580916748691411411816283309303084482254628955087610016150144747035590905261901860348377993231046041955570045329448266134793077087599732308229628030223048353423829418298671976388385174509922978580530768991283671675191127551622620120991193865208723233367705400062299302390872889786748082967731838291949396936404887916777077043642237198322237812341681892390255971440266131907540163460554956994230519440614234203367129039635178420725587177046966954751126882825604135819839639815704512527790269723673272257668073824871965615329200233699950070744958603354818912909940628649110573869597209575645028276526558125906524453132301303629801231700680021433658865153991702405692790064767812689178237333464411758392726646730654894566348211431285244089306222898580668826921115219290586172609732673221518271922496369897828207602258876202586874307396546401689279657990839654935843955971249411592500127909208135065229310950921284460092826503488533610617428106205948488449295896096949564743221378584761234242383803037844133775052605730768683482378115038968408680370338004688105820542710434229003419232295685405038711479660056300467638565055733518554810610424722145378518729166436782167940443835582520996182468459915041215454362174592946635422088052384072441954095788247544651244593307295986137052994476611783427652944349516668307554482879459874026390896349312455655786053535841658747430908773436171559758401061373852663028693264472306817022945205530498697639259830230445319853411708581540178149331631603067223429765167262368617573693762241248663487820416955411368650088446914238612158211084399957902060835777437358826580481830379725247497013567085336338549264078905684620658717979164985753219685250429609616887331203469052287368553563414730948537230902931893891917320291860862186810526346854880297122233901783317427052969962382595283256094320832965702035281242222757068728113790672579518562578375074801161150321806588982201955202751748831816305774135803271322235364029758989005163083111424818459178150094636263071581493831216227324500913476672420941351709431910441688534468224414843884976243398227587518423727930868430313766679867265696474168423988506575321421122146382856690193229819491567259692413684630010292911246091638008777933687385152245412907228294470703611897555471916200173257014200604967220498078175638784837199343556013618047571439916637751099189725120163847425164707941471332375795085295540183134243290729987214348795263308328549353227265962159716636217832972161079947809545132111953441909074733458356327857545045987078954533504774615126483930773080415603063927049830897454650795922951802266878781773894251947807101132381910060312323673586839674627843342122459202135427357408476187975423193570185203817894429586268310422791729402561326092398025352302601037930534436331421131667965867678216256649594853737543484429544769317768252117960532005212686712063712941420602673685769292630969661338093073315720096715161623437628321670263158268886682097983974506274427971111268409261097039628525675556258890116181886980743889444317793011910906798413963696069425226507587052726300201193560103228358523429476754953554461656035251350597644671583784748171211695097413056575046153265995201241098288870615677937245829031251310162744590956080883622809531142055861830665612778647497524346159474718336204956448380579315668966255452013115038748499921738887971890481143510999706344599059183044253301039136714211654516255305133737424880440813019453105620773540065062530344875107541256036242841928773873146032364879742295732014404589528548896612307205456294924304637161326892398959990358817401222204858812485398399177329282841397611905077279749308365910621325386669448211828776904805117459020215035451761613792421632779282500910719368654365511496807813976408363491971113598786210392422316369044324635160781874597985836629148027825253730808565399183531994636621288772266171003081500824069283452719324717121072706171989468009792598850288956418248188638419678805376953796409206957840810351271409438112259583141250301177829079789092792234535089771142826916993937759046791158773697611560544887676065316228812207331845853235457606387286494893416232316377437643510038810788408971979618169826075414116970031277251323215231288928780817506562818867527781292276959452375878422103969440379711961958103905747198581579182600542992189698681318124073479601592049185195876116927171046509128190240418270903193363701912963278870446871160660529844156577165006505899193369331256647075534010184209166085088414249387126030772411679841821467041202832639104935126841169849342854162381722926358138322957190290055389925372059173149105446014049823637953233389380564091850416729239541293644543962888303333859250655726827646467711308714972193127955999949872304665766832720733238415285769578341287070652587749442554431665710731120062112084923205139390113699285304066625140274799175395259340040123544358700118919321049084093753681990390685416512923218363383245347893047441810822766281509112456709719834392610890776301834083204851919378473075761059654696808966714928270129509735244286781206761500617701755303036435531074356797836472417818598298184014474596811650919435264443694471324038315994569582734425580420207630368581569897315534793760227581550524100757591489109034578445198873846971962903628949104999577741454264280797021972096445492552580980571713658552116317283853388523898429833181801113700049121042922248612744466236133956802096457502950726053425216533106854205446678803803660292744994944450683826854505531091237350363071962574826126951659282427964873007003928975262152800610553509690851625114933625812018191278049671403710240175466151923946387308422316911459174402900500278062285112067448368240291088439121589290013525017823681373272593702892609304878735476996602170737360957311964035854037320041318319532254703553070292689096520475933511197349886297563301805358758168184664072112050770775702157840009193501503030995455170275871094539373849252641477212958360750893663468580670567019747492753683472382425512175280234711821040836405310223714506560331136968791273614318446657461469438155830798248903241823403140337212705850108501404130639812976269663861982213891293064331092815137301527411457893645297118918847694374262817887090437770126738859502655375535015914025356126476176321259171829448902420963572634015687003196869785548612699995138175968686853160652835108816957159829582575151145657235325885659539184994655521054661056371024371767610434372226599683294623531901561352028938312348407563436647360328878195094462169918803618879725538631318771923145108779384417046705544130591208946736207600758146346450120442058519298906134710261448396901984729572410201738704012756625638627022714362457626480843340490737157287542152523376404277022288812430748599960544043027252770428500646319478551874583861628505047274893032719046207465366995327671102254378989731807585125083807736037533174992849532798124303829515718120307017224702734210742623857366925768677287717791105737866375718297723476061447429798800041084234583055922156591103106928100443295993299851998481744769560141875661737912336389839202546263885966774015979143366148591239336052291888729619728493639322773626488546554993853994159673123275144836469671161231834397533615110464894134332981781192624859252261712790725839356320991647559102416861089874152240442913573720502341289759750046638500657573793863385498357182312476486742506934539763815997529000449485463275911475124982298856654269584638252742916390072958288856942837370203435612658399933606031725404202656905235369690031498795069117787832635410864442748551008085364302997843737998506646796223530118450095864398033281461526492938413269274916490546057652109742478531269789970847601283493260004989839026931968557965401475512371982864769421434153416804940239238400616704518761760990655930811848356672003593261419565586989941823171089234618250618106990884251712682390608941366792546383206058748004946960401878384805107083372598381193390026197395328605146020059538462384992424078268918452954899815102435596137690142561501752381818208252283196093069472964475160629584584283726373144672722906012900741482140145521637249743569834396596007304221348596518388453608789273462888597836432320075256213089646611691472364749560329083223461323793581331723932231181781363931568639069724070707282921470878520352501393287649145469250021512115941446078261719841513408895472221887718580697585693146404578785460727259356339740910701893063106161161663109375797552795637809072280424207386609086450478709948802011953895506733539609247814119339697381410527641629971286015195676306119921665472383362810272091369146201461686150033743056191706076040833451294859777401561836121222489648945397726866708422165482320416049449094994227429500679364537197060353738027479592421327443079393370353154454767943941096929099312186047181011552177329776519293991029106503580020817942449887200269532154781755873528258925487570324295698917155906012403193041705507042872796368872208716260899501733369673356594901044564684262120129647361906344765374931448846410913118937368748010075904049018238296932166517852935817653889000520019509070100519980555488248150887416511814184055711912089570493601891653812667926014190072377760721449922449204123070150152585200691045668737174497454691927903988818723042378040642728935269908127324394416033973439363228561645245717076966948435707377691446785096953218809629076104928153569073405492467428285898600776507691305905153797551598740247582223304987990418262745919249400563260440675087836778388550316556012290210313329341196344673997319408767803052606655541743871240818601532491181959754286578198749779773090180922117204337315350498251335982855521510033559265701933660795428191600899214640908930259262556219929080029809396442885517763524040095473416269745930734722057799496945693357694183748518250482728953194182800824878196670933148067059642960137655746435733968914310394478819622291009306038520015992269593298595999479793136484104079362819938521850673754190966249495179810283763238401805192919562189882436383962235042137862545633914576185394974619896358456026603149130726855528280251631701614927196685010510751407469409504486226922559531220501171807010282514423110765053776570971702906680184183492442460650520414500335549712328885456371072838565178581062394669647318407589463678587019826592675273551994241559370435626999968182036833689321396806691070301379174805955518856999107814776923101021173220106783848941528558745956975832350040537552536665027467638791510365408293046382456164902551704961146534643864620214953058370344072661172229767129545035930372997601827056879737204169358089019842526077713555747594307835445791958719340231633981945250964117152726577750390938411010693837334479597541842082592198394491348237739761125703886191286043062325011848870125444331226041962273654645321277779416683510477384272208163018543250370609992781137291685101551199163321107357286213307095253566500139933998900108438319805692634696927840753543440309993632041484651950593443175391591639854679606647750726038645935455895390364832753350952446838987904837179194284455001415815936243830877652924539411334498685683473265266606227712228813592265441870705257011074218683939542570656392942194248834699069927521448301936136161158384403583576134583793791643812872385714620287505185253119683326012086457565939808737291021303201869465559690237502903456891823902427906895322392569591226987575336203613897658048139053193182503877810510796594130146888003259928511510355657472673942219402020825073186767172232416994084771717410335486487755316513688773040802512473927398147864973126116836743660552384436339437312853684032143937211967983257899022597739366645700404125924994139728169396893473159689884767201768245012556699473585920355676966246111655238801847681422945798476997940225875860133064674926844388474944003177225617666896176344824903350996725017046261012104520175340171910554499432042941671026874749963155328786081108681111881665460592414248507612109550095867569898860586161560374433185093925031802005925282398750099409381518212101823178992854551873808867393729923397088812491664004252689032993920648418492710065782349147413704041493960861083688079953677549728185789846272366298424785460437728037061336329593361004573236141258330271033808986313447952807121445201998095504871527242123346669487769670349019867581398056548442713429664408724164465986627739228335629267417640454316069506666195460843924000827393666210255521552853217443837614226790035377525528990587404398752984301210128711594902640869617261643145004068512476441768907844511386712623491954683739709434299090758483298413618480912597590075481896239856329428058736063100943779278552779529053931963826528129992537382026485551145205404172244133612294849537501583589667409730832445960181633890047434442741523191724354182160590971121755073126530642372389954262839477731429073647887755515658714744751480885315122288456461753978222486737962466932398290254775597045509762390191862581673669272180900532672563775554682207320815438288268025411332456452955233875241790441808461071715948856263817362619811594234827802036417650300327502143870044993457009042320298040909435950189208510150154181542401647403149999402671612074729457116135198428990418669381142001353220802650654240889108890941396273263819864961509431935292957317389495039154798231544021082292989979724396060365070502686960801818836294495956512577110350514184114706141928211902021216234281471786440693802909667375715020278777910658546574030278002078115782138817288403181067512616578834481800344575187545403486665933200839799465749135200728481347427128161352104204499953933258853797759060532173130659841243096923813254262841880603299096211231126252062349711872422976010525020826973523913469585989602216819291475176754847891143250018010885241939720044046141049853948227050964429282085353665322101128436111706401531346357929271839062345509181269647385019090457930503908348638634028996659231615551384563962325108774669436197316258609715619999532492777904974187234141725483003530234344634047319782745091786011064153665044310734020037631636065798318180511232464085775682993652399936370504199299995532138287154141247322081740217942138337849349611128757603142849146821018435962371783973769749962212230067433260208936085578391550776175986757089823873729037108388304725500295544513984935172559095038191632051444938458632646373052250631045276207210037471715745054484260569253901066697098860715990222067997121354583832649307274991086675312063414061680737459397860777554853223996775155246969789887748596421657901006465291294377349927450824178711808379713689032758235840304473485456289918990574928279945075686474627660837539240748258284815630311847439985111781497004192640410428542361734237000211927424834756406627584270371914088288836907049776104744000566803817909379929099833402489419742494527188515651652268124600575271694710225677457381205613640138235382633895579179142400852598009548078344311192309533678067822731082752724695533067923902476389976815087183704044091980503642105744395703428813384291383593327610777368492171242335303662318758820425021937900467978508276481566778129652824319567112825778397872347617130311130116517826686258222672681855253574068704709498130877548909797981383540769532197682905865962180405606993093921037386774842093711253373023342110673059166351979605754822543556067554220436347563017597365834370099111682700519975632233220232659195263575341696098434815781725244984356301876038316306383387090919089135032939417774510156659816539577157203605082486497390634379663968403218104018951104111408849939883889244437813963095909614069635136554783285149566711080094260899679162227394946003376303371257337499276096368737276219204625826845474639440350736967834222043108276359270074762261876198037788308572657774698464595463854123816397921577759417939478054754321692935479252861842926146077819657290789931654390066761599863034195156959150778486460324256316743989739531645165418846119490718664106213697566654172506983996513780665651709495627496741654075921078905067833730077318639541279878606068452504425980610867211369834137700657878225151331981004376934037867921915986317343396005814120095501441891586800918808215021060348295156065054454601679948257711193895270260941755712026504755561575149259963599215679985089885314642955886232013430428085138755260765919184448258091781021693370423699585765216252638955069688295022339765445082633289136685389376337716416270766511982507510915464449666506584453211358078551705403640348591285413118285888134720180869773148796888136487977403584353812816306083125494394178300027405658432290475682266828215304509468908841998119735409368789917644647331190456955163529602247399585468930523953180840425709515724908619938482658734049702522014066157433609267983942335852518206626088228398098893883701771244245991645812247880987254710676706047986038897939449271661135487478635828997058506965169330414155061321226504443762896362900318416755791117342966457178501098946872974695967262552508316562830566068438422400629199952691409426803864142587227099976543832648352756265115240256237279635957565078772305447889714659363912961354088113698072967628113678976869655490517662158477389084860570560302950460796588430154079885507044249195803163098684651843836890804619682852390863101263438699099206711362192766343428300483460205146760844351965247245022101507617700383039144683698078862075385602749865539693674302506642537225412762705144046457335137611556420242158648755240053408414040998945965769617603323549108833510787981566769631482083202512671253336064490850300248142206347283142625033142455147735815718643378458476970496037279630068358557713931503750600211994224553808244247606390136109202313383325959202460310369539130620656601929727632774565967750129508946772748466323847777774479919408693372543873330683407977265686725617012186585156696034586047134992118869999419084528326905339786204227819224287151537782648655881179706621881088656646994531229052256160220243325602407005425509880107621982208579052579636127887355103654366226749630741568943796556696519600280754065751028952866843012129600798273354299152315739345025889235566610094639091388444876794570919416608985069694140953360176018727528283276759774549508056029497671219432908921478337613898422020086222607034180933876709898168560673624853960985535500812744359399755127370080364000442430029069236855612856145367664315916938172575001316662749117119268550765219559795124401062394556102928706855516223788475297444158065179872067130136023315193028987229515154238927012262222168868450476198593431490033266045350986773240873153299805163261793358251578191644734588585053407129759844993849088928386799055806245618707690449416230714603560617566231282855830186054307394735890377648129925212185942559988023047038270004745535733507300397366515491443589332899268174804816176419947718286178536296142642085760324744149863351379097264130794908142755245799842219758713319961367339606481808179432537986584609838099386898004419932242520970762458435222820201728304771033063794156003745781251194077307993159665839309473004535583567115643204658158139295579277468236374301131483368732302798381939610114509054649691825722519545283022525416259412578842720921596176614584737835204372449182158660355800189200133650660707935178080514700979527509767845254586845055920259927255622092063589927790754619567843755510191410666575892042151870652698468486523628207070907073723541971681080304290107637918519693165826236000440694182860641015769893537583926352407583942229882410531795368459719560653329661818876170257480714329693371226993940994223771053225949675217335107165599829044161297667505482181391665660189060299174166852891283533663580022452859736151914207604586971300232807641230679064559903095033630586879893969782492374605559843703081879580616475795251073897041961114765978481594308277663601229108418526526419417431239387338655936535817647162788143181614275714344503609454220531829009989729193550537511227063744646909237051499978770586509552059499763057842339092904569390230030596705593932375862003992100337595954533365456911236933696219530433426055989992435664741105492639505115826418633247404149202131438039094252204296970416623295702643563537284806900445629890014895718354627271638029193733518154412870797884128386587960412744306158888274410742978519224231702356735403688457858818151285895532531623097938593137970768740702397186213723464922953074193073202942745104311330152534427534757561753553604152900139794769948486619735725525723093392403651356726297262233221097573597850154332758326477706430507771778216394772762874527950625486731403639968847660687398512197606902451664097305011858412519990010992751456493719049319949121890285892002036010128675679325864668200374746965949705897209693848027211759371914133294571106728481175376999426427968065092670548913333022885080676974842715172603024900940685462877535551622837427980419454367524775334572494189272359180156806177549600679227408943985044609196551371052497178456783185928038457825905607316856846961629421070500867374102473561663516081976820025897028866982468449011550297570925242587730989377344232392011476671158417594374144231537671065128702085578700635690853018951859809216142742540491819375373037931998233578424225928565265624135010268813556968402157168474362081109222479876746580196526761385599304411167043802947481070297055893726383287444696985493151944293661560667904908669972356577900815091886807100571240953205144118562086621607264308166409239616956541744776322192467288775549630564566005292163347923048242008056583648982652885702505548774590077721183629331672959525976538222049641341168370844129003594155672624852398078249263527450671152882766833427007490488898913717208511641078689259071404623144219608722825226322320993126594111535147878144477838602260732821203675564341162182825384556448075226237686185676690180332273271721816603183903486633040504962978794899923182263885006544960644145604608736179127606620394349251593528245463979438750648988116454252469559341149051153455383815513818557163079331862090807557171251746674613215814928608232103921991542712028933897758126831288082296944255909534969257327247914037947641423171747168140544398556882960023068945115331534933539537400024677328801132905360200946641562810573565558157844255641076120593515256427571751390105412074009683179311697738744685205777008640725650832375106504553664352214482605031417108079217369045298960399881451289567504234196942263900067918932786548629185193608047472567062656882846891058104146410546984802842425683856036714229067245395210389663965940079715661493353985425817831035802644932080700410025580776397399139348218304949977499436571603993085607683029345323115986872821766516943866392352008204111622637001368631115960580246216747663015633832566044709417418208449912638578205891128047198246174526868967659216968906360056398716236946078916731385338814159375803225204976845240546022096145446875538716583922418775851172633731694086699174739456636457191786221662811967255995515854882079133519224421198500466059000180390811470740857122889764669558814001171352167174940913774377028445991686054166006626899568378486091519912749464321960150595405246298090003477757226804612063411122057617404818327659026344205317712207704310511710880102436623415691224479698544417969877115571292046306969481206160004866273843118534415549968711576327012482421531695527574640398014029552034982754489415148176575300376197395931893782099449176496305343324451544994376082850483677051700195565856583693215527795509716575406232432180161227915420819141094131782378757540206672495524548230704683132911962192648865387412921128802139805527052655715771886853005647808992419749671436328367936004019823712915638906774394036775984417304194908869437904267420073504641246534037362044035655654990882527287985514303010485271988715303364505415108795577007268509241004516578450191729499326786381844284201067163773538354150570549925469521547261729465363555964691433025126433912518363995110458009776283819099443710075774777497754945304011266817297198209966282663276941327760634824095411339295807449811639168117576327104659232957947848101030839185250964116248080942674346839180462112638932019224783270015505796872358847302708198522452220099879387445838751626630587386652700332405221662176316769035654378984554023259201344887943426435116525934179529994249803020099687780491304692312610648963322373300125263908052317297030613672068149061014740842447668108501271409754767309952987652629021479691353337704925608043041031574121762772243566382452003088279179649510004121548334064655691208511511174338783583521773403869616707771056082815522746987328434110530424004585908819586797307927607387648211463666020661657626209769634634200170325655704526015350439582953527487828135513475857483814324742805533268002081040813193741522255346525662298621858893006975214567242839174879363675464738308592554789529877671040489502339366247284576489646257166737283608769640642032690327506546277295617659596485418534331306609639048269904830977718466809731474743609480243755681427675027457360469013814853882713500388894025836605104840534115893785529912301838693208082028717657598340810638821117813372127612034610796184119952239944665528177464927585758881543477861599746600693636894322899252840059884204923985905951679186977368688885907297089402951303472150514937631833566325716456560950279437736584776822277929797001995416700961452973608792723154381098740983723930277220073605170497795861782639361133578076427199193026045673648153394362765545252992705321578402043586223660610960166572992771803999591383691176353273831098363921881515573672906980383883199449366292273588248238015656494795298243009412278148950956611345543555766227780280395699366867360891920594930728552290369899603026679523334929807067688581914781516068391385926012888648943003324608234160076532866952198502686952975176567629573488028246809890914113900574560623591248891880782628257793133345766640538260499417777602452043555517687697610324312276750349429306637955823929205060803672546625686284521715768737937669381930044300387745369119582002807797411622562418696074554238685815053029057386268881220359721741244728987926154336538069011315951374940320533892191481208364033352897151544743938453726059317009032383605196741616518772706339602018800558317655332224666811293119932044807354928131428273834529623510188486472686682623203341595542714439347815689000860691574894986869004958592187165280259369244132849439421708481023269040176517519285824574192235755957722889174052623977165052802524598193001481921860272942919529321838244012307852457505060119166189877403857477923802436851795966849081614146450499020400382693911036953673928831457435040256083015090454887738551361708468513104736720168952269571122026877164474797297349652679391909567838247722680776566207745509556163596017511794387552734912781081136520419791868133439413296533142065439941494607110832901619444115892087190270484501221003095342206070508821243948377744810876198009164644277049516021330656523906991882946502109347419655006667855353168091346871294684504118902917237469169149039279473606618126086346966165398467926359657321389746705280662630021831040591049533897045061944007294686186631230413320452213100000413807345932983776836659413637589638262774111877761628264151792676517781743675950010918768883267606187525078552781653388125860196681933461452965680091978197448924882090536211068976558627606789306116172533301473096506285429059875603040467140168623821650703460815704035018823835246511227413594231433814418255735285596117814131019354672726148415251002276931738650966416283405624805760514677655679203933072562176701226807098023267133901439413559971718361264478508657692231593217356478763542522102353459487379004805252745866671734830622019484952371095978613861539265395879760771483794943225520394177374128182342776802342328188947732656966870304847718929485691837250331734235223009427607854188547782492387878693015885254883755285051714203928864308797980166509173011156700007032818879151271689476811565351430887042488416229127540952180554465164534642911190359911978219511664898623586164517148866345350452970619515961946239832545918597139787963353204676569788828454703289362762077593355864046391952358324802457944113072923222065669860606270802662010357282991848245919616718262520390649188007910139538905022956728435659473359772873349092573162874882398434867583740768456588593317614862951532215907185542669587692164661393049749929674153466031950615277570118352477290816113478440523885109247151723329593831630297465034527120573781023661896703435484155796354970485250077604149301560760212453877765497130984153031220584409568161196760791744719335883045017150321667923049145586530491809225333044907584174330851479592804846724248424972230919855384308508644585154381720802860971752247134162105223463723966996411058603934258134031782662376997045465526926354918734833033520833656416457242387051479049760460629425142382146467417568340338786365636184470755784902020357564288446464659966470551432031067505306559364093544332512904873187813103195368404658309630260348749748313624534043128420495335840535260023923787365076757007165871958531539777504588400824929451148588117969679768877982606150875475992876065313089709656971571449094230099509168378796148615190987156110602861511478193863676127744524792627099389180542520074231564111385917932208796757184370046686363059780320372647543438143350813882482044804136958599292784388681191450605751144001873606518678799726441133443299127210060192518869734494873405885930364166802630773073008321324134284950505649714496609984812088167578336681093847160944045788858196116871250883997022527942618254302632541522822405801243032365288236026791966233531007321994610017711105693196629866552727950680819920960923134397746524563096214362875117481445372034298782245028236482718411290288279776772179477805135926724741969829014620925680511935157904190970516566009114727510960411579771239894282840912990406402158440043929783370249293051918603415127809027383129929413272019905366978118608323830614013941009761263580778911124989648185854254029232515958157415388561335877998617700299894245621556823716655479758614440418559959279237909002729403669388722268093906627936539984636221014965247104156175860351036518736677005912814326501156871086235552548349091499897757238698314833147122591827877181923734756895512663628216044708302178585775726961603890359789544526957154559328628439000709336097093987466752090404331989286900395377840268914928870336051349283025699093490845436566992820642243025187445512716724190287075948110761884382190110031506538469728396987757384216333502501748517536027910371897060910251766505665045734905505043050967059686323494914368193011073753748321925674561457428048014162485137725217887924753427702016899668275610716984785680263930806887912639557854290163128089037513409908278768725801078447509592671507561439308038285822222555971496957995011997807922645945400522264176646176894604063597473630277977422105841541923522852522339603138721517380825425492646137826271863728432401474917873263398401000282400666088072849156785139076014651642960310811367047280898582763019421897987388841923413908023372884261000464968562821573030125146295214037003258220912935344441349071532104643561581001136180390725976064568995251336453621641634765338361134565024687512868747839288235694897035117348213460731033717353244961042487678835384509170565997066020970886831879574727771271332589182250602692949141384956549868704125251581773572827357029659875407464639896839620102597124727165969413879616417698478404915972437830502928652717354720622037236590170395011790606695422466157905534367370112493820563560021199226263265457164449815578927384233314018621069710111614963023004622785407733177100952198152521225545422930018124762716829334611340876337669526450558432860368758591937830554039413776718584930604710817464861071158765005217302540102631922255906479568489960463260134807236446463820207325744079652594762569168453400690327566374887116294327177910259277902756688677039922227185223026021352609960804467816102244879228533811089845220611030622523507050237368496092355448749376385886537094366911608612604902034772711578886581625805435882172366368617202678597220965885433047035112478790511494006727997234059834872858202509932956324268617584525835610058929558816430443080331506699742010530889134911009432623588987468727903728913526797852410999328285655440633085167829212099347874017752058801843969126677588089553825287115573816592774056292464565605230732736558522689802384064886321444313103408634376024590961709648425666140836082572976853073082030893973709374864735829993561307435989348162477648888351153557450970383658687718608414070370877324538833999224243090992783243427927437720119749989618808292074120613890154962421857852401544666440917592947744366487628365166106486134471194629301299930325184958927723312483498233749741068877597818319220385935882430863455584585763880753237121898321508866497217877708477561523835029691621873956829959462505946815342251134726008409681635248552887062377168158158872257256506608607498757635085834577238961310165518751865137307490081230697297551565142223189678769755975962662780559589399940365293742061728724524747339036840679921854243837901275697459575237969907080011847465051171670807813700678150530652100705590854860829498054862097604233382496039669127957490134395405209591496773963287819740221802398547351950520052615122050307879751437687946228579688758812313725457015239547837689166434421963770243581170104510446886745545061345291132627412172820457737530259233899403685574439992241566297787920799591216916690388970887993381964001062102463323901281416139936944109494387564455227117386221614320338868799611113932779454595770905013314465223448857686740870572363673429683126273886224096013274264007213894127504690821234423364655898772282979444101383955529947215537323207799904313283375052587342716971196110372549014619012245173371827353677936813834261787587627360082740051890395227848533956702169448127999987984168627173301078780871312411644473858557469210867216311847123548686527275796403432845174377686914338156081801819666751552394755931099115807294669374734566451836200759684043031692694555541862319321387950528230521163683528698501635821307774214831932281892497580926093049101727734100220410443335650393991603904741274394868228784492433628717963307763170262735587249005473747295855223610455845895276847541171954959113687592449415926687832134307728656574412505995711035270422481629183617571100390146756328786026055497085755022867174678093239152225770738111119496611433246825275632813854092627189349695579305687186732070880812114465880135680041615337941732075534756463865652389131501166579189785210555310116826482944319408347819443568620676550544487831768367179153658198784941980543411717666355118305099048333872150163921245056553976694896792314813957755728636838013660584762848187503790421475720724758367896390812959689855780821920928115296877791044638544800810076365133265973795890175360729085167923016500650253848687346495760910665238192201679695992946320930699914950008661461502349827409480604511847737339436672149405419199712013450693118025010234327088323670741359245032230505507516570493172969647155582297650036479254192444355605158952507354110004407119120336502807698244059170070061766916206277489053422957865767453268530104036253034991238742423105612734288359350723025290323934509513507172311192315787968822839741474845724754705253575014749303889098039819691494380304656026608600064584122765610931132032245050552819338956808917850698184537777306641732285222428376033802882147786556130800334405931099703055352382460295946326197644839904735652168051282131390058846225172083727897282382369389237260253338525981243125989305910045934722254682404044545888967821678645342351383470544236128382617714793107880589780959418781386966171405630995873116418512319632894232343054441060214414205967277120105615133732586282243210283672846213760009064437018749036305315632126262611122111229315058043801910016567376277153429693205966298816090312610052493716326980424294889435211003277418213071274562262693422416075235601187193768793803836937317906665893374192194612569953280481058224685468295135596428955616735019249071723827705139347432472091639941984317049570402059708837820906615556581045888363828209858454388916342977712638336785752919103918220863417362067605023210241450168053587849247788285441200180130316659513552851368711584326498755893220384586749621737726963363989638848649704692462254375262895871401415404345445703209867369734417275109019456471270260691742318720598091824994509538855601452072562216695320518460539002590342489381480043912813674814141357595494678809038845986416291896231122516287714259828542882630284313057976916846995809169441807374831002960374736001398660262397866000833928222713793944019846111798528196253940220667153720439820335339813405721014123417107185110967123903919237351438389223368000641478222527818167766954708551264433033623628640761538590577603206191513544231983367568768149356685959036475735215626834363356889425777410757047832770955219269373157920201491553762895722497790510021689075048897355943736115823024239240013928498960523398848508393082421180199434083281243164515026524226283654011767219432966000646408857771886109314106569392990832447896803661369610352436537350494318683234868972684950927622206926552055847393654554884986169127159585184013807497414326436056841383298830863794594472870394477332500912899715363369696957583727458968294980081812468314729725664389741382473182412476192177103604410671725269502010848284268992573598346105529272777043229771855297341452332810315323023836816757466292205518549097068124623429224452574192247466798254458473261293772198237895304198537137718934600476712542551823146740227009855522444354990352304939108763881942056738790613220097996508829327535518494384591729114199980447193817741943882677588713981309484832876215939673420586605281798095185595553319066621189719744180843483590184673974718709480930284781157936984848389835159566556235272221610697474333151525238629053010689550023350727200462751603386633494318105544640498939603467684981894074223645363158148292491808595601106109881667057714258491039045249014407159805275897726546235050051109318417244568069419959678000385639943574698735406898747874060734440049501615888032019286618002859251040917472624418772332367890228920716302074556168123697864603874111182705214295970722469861848265619019464288589806037618552165835631736514219654818288016272014568018270846997723899693471636569384528183480697526447524278930902524276731072763083420327348804768907476037444317022720826103089911252445132651413110645556009462137076170674874138805976930991258688874011942387035499524056951121596816413722210059866175616974557524750489950913306469212422392819924119526354106738800507896138127882634641223701585344313730201317756754593447728346759796416765600967190039440539456896981334682134144919972321001741707066594119788312115943094578710021737717288436032073706933095781388127354741217800930163724196172346563605441350415856262396246256574562385527279415284857029910131958371995029904483714095913038944464356309087722374516941101849397161344949265060380183948022549762449533274751696922430853206812808177557381541199165906596576006528856848721156184411182517840131613706731043939963541154656615875558954027916577069007481379327848934034704376540777742549750232149286602490198835960681884077584670425614721945154685377277644718879491202350863559735242259786002351657892590792711352155622897910861894894526408370514518868735525755670280244426542391326606877911844022145140843413915278061649332662069214114689823628440673653437506128758015478209767001534521187909310991941269862296484880823473236709690256628820841526918764860521712892551333558298814607559840357915316735518003983762214121278962757131837349596567100198386588454890946431750769594640435974038881967896657974134293703211674211982616146341145517318449423052291048973975255056936173226352734121538154770561506094929934844599618410408906112300148141647825886674310468238486408818424423062489775521314153736174141977588771531309281175351878342223127108746326059116012970083670286247421674021154383930199191295076082280364156569734047273077197499446052515765675233417045674607654841969583041383995691132848741611819392397303569831221688704320119362251773231481198904958372178664953233001296487610073445312330129858629939781997097505332672329592996437905384341350884150750676556337607062863606786703380373034141487642486951695444965551498166320309668670579933533165212455057941483611229119991603731209183793976886054180034721086592979998908274807271803523703976749056785806650580206920217627344179965504019146096199579266821194151653857475482082766754816680903015937826928894135718210129413263105454518377838262220220888291854575020957203603812270854928011402519713677587770308039177221589555857459935686480706378890709918481543552424523530825601951898748629554854331038029226879454765281866509345781549285032874173409665549691663330321808980044064928879119226363923569410791859244754247549019566682323446911282072871498218307659560349718231787077356115756152506993002499253014234066710929562011549804370852836635574127224546025496442207098202037515378740089579343832786880140404848626942536250120381994526618306077418017132920973968080592951319588080940763273782375724558803159066062162327576042200346396941076025001378950497873932890560762274627356519929184974405750957430305243236817997791443339050391639708289863890195931374204369882715899238117595300229227537341365886567670821755050451532640297781159381818571004615580688776555292372468448060893390542426180739838159355750775286747909836626352516321166664936093736610974896648258290435764406030501689169748380525913633003444201384704512809164813179300069067169116531676076056705621376026275107186042014170828554427435610799433410783178357144636948244877763165813246660625015746733493774369655279801559599857099914924833224686325103765663109092891513221560988149506266880252538979452639701292818764929374049673564904745848507070009220560728772573956788992567279592189651732255296859594887603466923267317049256089171992281339738111482590136841642062161226001354003915520756499585826542045748168146828975254235866889220280486399339966327325335680048353192520755200969362481507346939835441129874674949768837205855892434465254629240437471828547346076736093146170353614438180541645170568332655412966394578463721745201265582805724590968081357349742978108325031706182153239370724186687916631208574321984852179738758040622600907323792195680902498930356256001750592417323705736675116704119548648967505569390681663457701861877751548572808155915243460647027288402219104663409491346088132309517049155083919484360766696638928865828315187171015430485027355147862306667885875572537477095082202651143787705914637511304369407946549725570224439954335586552170801471239144826097009371406570217881915190737073363806021923327741014777176706268654042282898181460870235606699191974318023781832846770556395205051326422909046079218876006468495855205555649153771832051734104766518077780358346124576378699898410454219464667842465804547992858552975647280123327604091297909893805832119031402277232130890511886019187064571769147998351300281961572305461718768478493262435245203021301121349305959179248288266552141250434411212656592406609179596009842937536563342461273678219877100722896494427857688818138649025125430655733363563099309588064493230575814287341982562517348767610463281510967097779987083561110903443544045481247886562220548882983134257623620215875041902234682105629368170430880645097299691717504408398957248738124045580588991281631968590822772241688733628359271862796775401301342241493019390904629959876815278570601957439203808456907847679548756996212410565974299036870734927400567253746463581258739964399602808267393180707474864057558137090463624015862853365513981194746483803517621056720899433430266311833794356940893714382938582219718163811010524146074912623840981142331105463226106656567696770858328486240866415666755396983568235832226969960179722536282065316785136569383143936862968132670315801517919515838668712519409822661799247140646674899944515999240104585723448924823497712780371845951483021990201474053458936951180867682468373390678957175509764556023979141215036105437168129822082823914965961107387419289418525595336850797789393149366138964500255920556346221059600499749729011805194540736817741523995803441680353855299792289273142118391164223403452416080613182649909816601169366022986424207801458680498036682533523470714074644721487047423849310302047395695182899724660103964729826696216343160878837807850848892614110903018405230074377596670072069607962191739440217796369713230740752121471745250441823983847414170217885555815958712488036599987241815046034285954817161637572773976159254582307848916751733848233413689823090921159156782042444073663466200434044646223810192283387169667162365028096927678558374095056557890161775471313161578381348125458646591764387871866181125830570921510444793840665175195701097898685497892168165594962259823389772737534372331551021349446127673998206386738774082453019831115147929265115598223560600821348680714970241515909598871497788343464070945354190661865748610371786735362029961766903053367426551057436528111580359280562423664897201903716399955042436897523247431433152784391424168676277952201445318704776812494561290709733924370822918563286537699875348050013170758144635954915742863579270117729993020932680320511804857038727264946175012251250623166613422953896467267344869836285978239188249961574398108404006869279709240569019758961998929793010447845888096241297850762174231630971678846564786183506387707332327065034200043528816227352881081292791729642674702471574007410865538472455124039071109424674708259312017078493593948807844775745465136180975026531084401993926805487487803337626104138324142695515660087357251546801314829155538626342934259385706986693386325420470099017776589185013752288872731890887318403227973569708286428754952886330544054965395952926024035735400279103431980937743528545478000395802428719401637521062498419835936721322286952452707656625164975863494720612648444629797090941891627392548540836402093440253759589487248320754209665422792288296460499811025402171861855001776202363962890729090659691859466177514249430527890688402978182980435074381995957326044620927054115041882724026050968893833269480831598436946150483665475973653823269479249303428114129023416970492716770626087992608486971211394254347863599975404659262414368415343374843884093088141249093313887267549688015889062165594812530159264674934739314446820121256114074954540019129471499440868211075091164079204992293166598593888360401436922244423937441168273863413079152213429818195486088342863854529089613173370392357693996197137376489806653428959645176424958021900021308616582283538275138804938195669799684103274676945883776455238869122794819663705757103859919510510417605472719014963750418099994785000165851632340730349637740056547068047587976826897103019574279974651447545178790449674461592006389259360905353961048986220785284245104980330266390933306370558357767535723536695777300866983234654564418994524596621273334484335858923033431908971616770176807772901963788601422567676269593943516348887251741125915086778396825505594987056511510904737257710715437821635312179417660442867859067461729668715147199011717623442971896263161587773781269770963537491402063868910463714277169428687575975863573795485302143929353636707718266022543177395608360818718000452589134238904347001170810061012967549964480776632770838904695797103004247147337876853279280379983177228057864914756685022120949534652680209728599777491276054124501874506726307651339107567789683726765596935968409526405250181575950039228227958327074009453177053685285510500190975806383438431365775428270100539563051106148207751335082592146615482580597621895060458224760802246182473462345303657072017117838020189858137899446079856004456698749773132255215641469686085065536103544092018744186471046818700928618443401231159009237850073079393180084489577202680900014046187130632088535604795889711826977703601473361487672441975262135106899957778560156119260805017204860961398018104183718581810203091660950432795495979558097450479886227707514263119896355818962484367315629108256034812129883967886739020806081032944466316402836975370867477618259799226159446014233720811258221475772214263871007024500465140234904544535367378480899609468025314788983425348111588777484242683807405520536095886951067738880618062593167657843793022533706785837984006013781759130888343913793502742937713986697468159113060886477113203167450358525697938146077589761956976357693491275909066817697155692811274661333348300760517906283204638469790997711811746502701648203812186810970583243477812034157397688551533362495646024946669458891644958978304805829914521618566193456539266922387921650611038430370561923385313537506136382851679181154308370703810024996654718047450563262071643970023023505368004899328874760344792060239123289087032818166938581024638454991173431998667691567998760557336061932723369791895862487812458285903932152942150144290747378901943910214056773574784093337697708804953994399805123065507331017360481739242113500311174009908493191670880360470368605910009164307388230561042289147787604565871686049601768411832217958007536891369898972841235915956747343123517845037393368766025826907356423097086263257460620637318312383095175655572227515532793005055662509248945893299860970954677856243172407610552194597243597233621815780295090166278676732623629082462171925551926613005660168302392360999225976026493603925970351669784801445638409845720472830031619403259621205328331470920435821592631537565596931610622933937182151110790164458903292829884829029108479401739716881328653546847999660177349240816945746178870733645195179533477364291206591023029123532448624721862481322859398234514398045026779849036633752299815390133967860344595840331700218758160134399113444637669201831745201295933790667056527226673368485192641634231017310024454789050482139935534865493162449889368704445806672912255821871754292687879628578686391666211989156901441008372056407022895224154397405854046785404874130044938736953268747034138145570993332147521513259794021860966113740699357958981693100510988755446779380975193988588190181274875242466506508964949345919725053362946334504503706869209009948887939813382910140971416909178304943008515006312923832779170089661500622304749074643483829604355857896336167201969100918883170253488686279980572198894364799054920763107433231980346357449032057194459998056985321426938081017543866441109821953545784284748682263906217596634108425129211745885150913318913746696660513255711324958918349648669661561901287716081448379791774047795531611863656799097442629783036552717124044812086144591059693513000854881104937620165981112427543133543845205578998702675047121255372484273869048623731397149945324419159557077773455448412294628748174068899212979787874048862107659200930417675866640539441905720658897916643844705722779613152652992369102220001761619873612367848811148444995289507568141577145149003960899361384699239460415991427966048578365401354358037525385237452176867167492198608984622180924369041328536606075994895105072125726625494445849210603383397691507321538447150424476523344901244978248932864544615815502054872699412413608683079740370860888354724566857266120658362384777512552703190600204641398169627007250866825192678427463423683409024686783094024906977839780822787726566152569869589074456071124388615775322257406324334314677720212531145802623815249470541644730881525365495426306449641720515213010224214797232285135331041568444952374007224318716104287322881208415624625193471030527240863709446973471381891506306261814088665374529520853287133719779118637066160460798992031509082052857957575324070205552314625949166417789555343355007835950172525128788879510969764616477318934327002906002958228314114742584771412874417020870636023045488487400489644861340513546022255322733884375460114897070384558756246067226376421617896905093676828075123997114347953258606612580737832405586551602393298578800427345904514906803418845595520750495533028993302468333283928681836777690767034338043598289157773895145448616431240888905651625696939309363452707018332131697094544065018495046130446928615123454983308002810214922062195187905464069316741474556528270912195374024222068058047728953787026837779006980647842494957296317551438718299977413829389318706204734936931373599341382211430606349875404272829461918887883027966304666901270664937914416205178476879756167222011195708745354681325035826998706875624994779594813053558993354186528295642977557694169337661725447796293452365944034488546939003192875201427537559257438821879122572691971257265780903444141585722832739569572526062062336271348436670253655166711254208105818433065589965961350560057327833543765280085711791274430835279733391697464230694740900599764303389631394049522990051604979903005439392762201118684935880666428869408139128932887937960759195844703847094577940691357538289011458188546622435144000585471880181861478874087969198853903750438008732317956253324314548991069407910913640065422545372705325201093149088211641662190300911516268003574481538282444409578999775403774223320092237138883946826165773339584814310826421476473857347163340110046535760679073492065686674383633585336660343784783187626293443919337010477965611554178533831425967885763775475463761376687437328671937747688254825129017223691150276412297483006558196985718294954304088159962178132880335064451972289147691490550361539267453154407142343486454645134373161076155441898211756712219133713294271715732054983714114873296567492870442852218339980117960333099068473358880905797141403212303911197822635674992903393818657847809390942163676678575166729754130194240461255606968028982630671193995217594924062060208464875419943682149511712971740094984829840670316213919492689220085260185679240304685969200956116422631476466625818265176756958105463800778031926639728149945147979829886829696250097464677572327004074372367037863535647742590500491645891785682442968984281945591287778331801449300213085203682540850274804632277174816966245628347767484997891389846947144570482721348609153509951644816702515590139433720651320120045154131490968206130436596870403697441320094294904790817789315944665553563660337179390035985606319823746772968857091652002014929017299059061567530135705723096570475911764599847105098365556747685047732116295353254549227587734683989353379037035917626659077937891937500335200517016262351227230076304958939258258102422696431393703798479934840105472945096413649242125941690964113942938504693685698062928719297545865956463473126449357200503256046366310519440086969325674883804901053278495106438221136639645748680052226534176869565093188773573767963892054863029535857285467116155712401663443212756466368729429591115716573638098801866977814440489049083226313434221775841790186314331776909542304123242921259501912619303790952020572111308921606179146895677851369567596692358143509309841222538384068533914152744015724534651641513723026494452459652863983551024218455911552393619031805589901491625080438668479408168918366886658603334547201034541667993902478431168772917402733881577158457407595573284281636697037915304399365583028874338926684515731021881083882644170590932117529947526900604368560725957168289473554330757301168560590989518602490380147225954424201196854129124973458292121934063401724870788216682865767259125147083705630287089262643190730417117576144154316829346294324649003542546854935845275348713412280827808717590295974199570850571845494767318061182716608817229597879574207929255312341857961258551387930862343432997817885590948427282095451939668120811382447209738229786172357436382741889327488136957571889923050354148540724665743949113845800911311226007921570030449436310029940623619270026219737968201080609125953199504868106154330338237706235443934471129964160553410046324795750870629591987254952381272539047697788821838471610173421289541455279766250990165599893159740789831070401893495878070610785773200948996134199216958530007346247032900982901584571140019287027056233452211652024530760334621682762503377252044244496064853242213706478845134829743448408593425862174410158324121044980023297042525826382334938693648505547478386085984199450685861567810261002325266961731954015981457012228774875623101747617371421905483824259180825052208054276282416266024303018483304918759509259939839352758384235405611636902098574250924672839524389704296958024996466051949057388109370571532516811077308516399736724831750309930108957973274749846817794753144867783660564222784214720242589431290511769173232005854604076034463782147919177434497313050256160764160184621336416664183810732983226806340433775377061501963952387695791265394301551553611780877788248413440817816170158116532692901246819198758598759987839656304262227137188877354844636474957185726004490868563039717139497266648550243745233689988658559307137221580378905952448742531401825824578839739158954721970748060042610895267449493711296877589836774282244963017683491432566308796923642032951438149026365900932408355052259930159616204390779115583052412626959198358872528926946596466009467603475948651298532674501509012336774918123922476601859758084824457254025403741481453275595790792105934019464679782182735073428172805096123849836832291107219702278419820999734948026710930054027407074718927967274490199643072816323597023322477958583308553074972175089906997440413332908392098130287794038032267520685333387186593992042675009868121302065393700399133561528863620190462019795150923297853943459772941979109933110216676436845141733381566050570913081601215906416210487826152208890771760098748370690893831220570319665482529188623275450193856068801246038948069434286454877717451523089393560104500769900923077784462179841851192247009466031458194402938054818326305154843547220953608128181512869822961628027986447460109801658819581156690498314903175611597304438042943568257036988085596262611451248166224737459151973972221980272988935001720743392969226902269963705241071417842627990177801556132273828249804965482682385455749776270169867523134071838222312653254318399465740723441395101846729458411379647276963214431502849034214744809018606403843126988489248854693613569834612793070148222522900025505123191110777807244456510070631790107424973232383074871354564172545171424857523270415689442592430311387731740431824613696460621139744190892268026802708915671885863090682974646357774946368810656677434355573679035107967507461124261657130306688613244805098689104171891730765837047591510303818372917494045958868904159293967946336546953908475013695018606411156742328359585594022531765753545083186473689115234417819371579835057382290201431909928684923355897105040297890601407720012492291817595073286264863824069161363821711048396208777466295880724875877917167052075328409289079004733615359261482018290521928426611842126011519492808198266707236070293687462156620033519173946882693988084829419928088227308911705316156642672801434534246339045072504796265217649066565407819371490560151586538711767496566686546860085973081511539151558781695526892098317976307200898612476269144595391002487146029437203204364550551779439423373833924386746424284306527346641168422329847193048701243317676919875264267067860431121972009762596470449906591560916340769418957103644949321042228727947702193432283706405628621639694342608428563152957872285299295960725611444095623423078817714489764401160127715779051667093098501861806360100694346475546327647508592998308730229621262520977308657616448483514579125581165919891413736892309679501640722247978721229523254879115674223749300138755960783325074467383841808389113980116010298025209824276790131254388763918116530704848749300214389962743611136057448772817851274406895082297497903995500421209451203443094910104148361554968765241942073443142551394843171335375346211864892427295370677970825202955913473668624423680878684869183829231144422081498677285125626455698118482295328311955077229336039771697880293621157901899760622287782027311856143550164957032962966256672728875083691512759767484376643040882971213113161553172722850977711053674771356431027945618468629383360620437426262459281836675900273110630460901775737375673501308294966382751829333494842218269567922906789082634433087293550706740179001767395519153847965162771970624860137979483593889453645141270318171641551998269352288612180137356939942300253508459024638350856971135533770289990066682085646739433769352980151068177565509470603147875687494272979102327283416478988526209879823264187482403602678484392553260637548947511946035604828750936299080833039942493093048167607100895544109987749624013158347021601382776347325865012884661486239105262321716698751599834187888869701181545527182315195807361468710232739077804980947308645850871744309287441952498436837068931255382585334364079170725304143400114149222016767729633539807249372637006180512324818424278368300679362608009855969359345898568042918586964788558100985900365589651901132770420713772836198995843068791620128298847803181759607422972167756815939675811590488385699140994857169317564425295838418698335318472932384316942515845370787306189617725120079691451395763113867553231164189038804740502662847078871326711558542762083239260610130698813544073545390166279684854958408207612880895916958447550387852219201877595690484385509699222069392334454637499244353769109825199270385758335370628589142399555602095053467934311043061841044061672797627364287443252181372830205468879535188737676174695969422862465219820956399483727959418297227942771243916730340563115505956351080254876764652118333389708542101246962611471438867774218559794027410158144592225896990941028758356164691183157741580604958634479056026031127820818224952204042195406231664235152585823086086959237152625957087497170409852727458395985735761958247982643320007126132958502784870550236531569296577260089681443453020624472424917854068043671431175466686719403815759822132713775448161775332267015668295671616072103744624147861631543548256569133328521757407438847712599052904490937450910802789898830842694559703913886649935410238669934084560405562725900365518405655707610031463975880974890304104936095473681785798949962599404580466170992959062838610159910523534321484337111745058857190614271482058128280537078743224025406110691511652495197023681577978282399270949879378338663772645853614892211128651345186416992897637562720019603023324314015178730744448438245413702163919596774968814961520369408641830470560047612845948900802447658557638776020025569769713340442086720805893518627994208298734295898339466950424954405358368207945803236067530524720014470522695657473722735112221994203974943070018246850494276948975088757450904580907264856756993393533376375871781319383284020944567898448579439919533819532941264504120486393795732734319469042100766981191487722688503927935743587490051062079064298286669271449673851873974856890769924002861596279073135274224842616526791235176716585619515783913224777853244067631305361941118229004118261703763618408454383433919465790280590811144348066741043356783100286417083584719776809987657906858659476582422956941443849232966991681149178979868851860272076805748452160198353551895952372379234550305696330283926370283477373710093262695363299942333064341264839562487866989231896622399327983824221249477026186564728196913194044446358031376604840166741648132609672072557607104998996209261991992732203959586537608807596899299648310601341840331232899208106374296646658651319189033612016029763077170976351425660469664609622162520581018687278999342953752122651408814494796954955400702015531568790337854616360029479463894878747344773908274373587431983942865512015367874047875547255954272561104751700996972352507773681287122925715744268808447872371806475814402688465572335046372202322069927704127259942701712913067519547119869968706354406897133037710717658676557989861750287104802423848184464094580077153670956958737671504896447943370043774316768846128322806445633839757520989744696942344451681377797751436252378477014030533734852450016711217423350187457145528187465772146029735708695868091109465653722926999783369167823864926851773602217144155791867591577158515638609085500303873928087098428967159089787427045029006148720318057943086318849491321819050451032473150066634802949294700006660342464470638094520213204175750723791415555742527348972616323944192268994738770319009352932496547899572370855575927451685911637011940536122283438702214931230304700148471479540064702198586835711507447797718156925573609885292904981298563825460329588924987701631108542420532043106769488457567206552512845249559137195794343425771636087371451799259182380517461426704318810101099291271715452355464398865169515101970590915650084432006417453403410853653893977238731064056382858355728748926591312756690279124260690002257794160924423842579125706211428783341316224227686878070029574907880721780670083067031819119999970507425731913798501778880622912190965804811586053084673241666740050351896322588395889543712781028079805723163825778221924443124566742841226094982449939669560163316006456178308299938992631464532698650375854851752327091799237583731662581281887196564209294583911794879394286284872484323229826668419378884386372971434472059622061825145913242781573457086529051652107519658304004981160182858974133304868973074664969618202889732518253105681227599491509703373308022327314758486403823582418183458510792783764285029625858149000403262780513333509565017337908287123283995456123303038653362768988349320344846169762605089032686031630743160288669893918541198855207351166451822543725250618522868239973083202297252072936890169635298631639650140305941847912779817403953936666240151168676767979649888152064814684466213795780357046204449833545063611277115654421633057598215680147455189140596631359418774879019714761175837103004668671841623024720726074533049965299197626798208365821011528042127949452058295951750609650843248808057632668324227694465481575204001066139764063642306368212752336922936292112974470646611620774763625028050661745110543276758496800375866804206540088297829923688320827673150088483767691429014309107481965708806073725269345027743976951892932378822141404938553251544811575064681150420341546638112395910751708500673264886083727174203635287207136100746614705628598097130735603132204041933228531071283824890380647638278747097139503912983387925921104137142768220501004900303791482521774260943451383795497469869521403767948826900652515139233643268381943767435576762412869334147236085140720753696868042644263425242963107409018980889755707814608776867554011006212797935616260204324580538768601812659166641752653541531307635893131164271767401209533528745970568774582867941535475164260162313839806839928439555747758151377501386543768184849331542122852387123939270855410546276915222482776482962519675645509515024958206911558091682081943179421484248489829342454000376154629779962036763692190823412693933544923431377118145716545840196048322458907278739734834460470504022494325017050718212735403260436589284548595541348407394410793043872302500184495259515415697553247019205655371770351707025902945346163952093335753520213225176091112239796492966428858422336311471153235349427154086093683884376748334904077968920520744046257844294294513367909550410602403058931150634452672433801360714898780264817995645114333680619760669790327353530340868777533623510479085294969598889188689244572081432600901965515241418598971007534344140518496293523570691503350628580680520279562198464124927691419887331722580607744806108376194895437805076969087913788282852253428713111240144617942525091653580999320573083222463331957723711400333512685579032720470266516769785296865726318898787611712445303216860493730372736087686383482811179060246667277719272315175307417318009063958238527598706212492721269895654923470345671934813629864864108361053362577720081290668910408745384177652376902282143104029870974452920358251050324957935454162862879545701910905837902803186356628980406870033041679994465799623816999433026337217374532882864773450307680082791973064845869559907910158144406626163087903521865117856882279943965568938859359854919996690439413365337526497628216876391949726346656291352569081050211318132402152923957703080206863330411767240348342346487455264500050427040797307982214304845277312404546288352509774733325396195472159909979784554885756629540129382877246449362441592167028523331097336848207197826706577232719372067525695202460525484563742979809135216459379409751734200818987158503661321711809555484611195364640224674555712021763297368457156774374660579737428976401405524779093473930713572934246127731807971814813882671060151180341470664323837365025427161236413932878703394548788771893667120637027645346139528933900315588853935998880746480413813183009855167073659190646035673437694142235673674155712336288689353197378749207548020720043008552672142635001443174923006852605287275255104923648426027260305589692815528634010485721436373802709824394683464664710992275994168059159965252805507699160042101010740271265327921622652587498789701169855720268323342535533442764712871859378987997515539657998391274442138951683545841314909399421332709968440709903166886321124727424783735152849766057015331393699631210885999619298829841546996099521002280090577958055542181486655656113023204890995729185588850719358174809942437322956113423487713099164444103279820707293212534337690662835434389471682103068151865190576985922833102301521014036304286368797597119797408474517790228629424991798288316913768373772887123093909451142483930748496330460387292141468764840643890549430854970481944331474855060997811796479815826246628808436966909168031965642412598357820581728856510750933979605526958605419531017514720439468910355257889275113958877155797565729682961075024395564704255553535179932471990106345714967294525903257378781946493775484285199162853708225199890668502851990108696165708416185304229421180158957964330541979531457594735894889647034675010410296432600547971121706326254709551892939564541827618224770641052979626353872276839405183184300524471392065896444389815639405729370371610930059662148001386840767667189117153674876939438313242063275933796976585476080605802395031052418774002936363060377089192866720896993744303799831360363903162280119144915763643710538367649551347688599593729560501130735056813374693820163500996963860067202114280437707972204159664246388287415155254369534031533302927499840827718344097955828141034982723970215377762543660626381389814371327661980250300814591737893241928390307168548193547944860456841258687750149004815807071719296774130449554810199056962163227165784093392650190174783530994249148969750433423156129039961484212750416269090524769362814331637203549592390583189780432631721428324060536673260565179044391144589221848424917512344121810633461831909737701032371169584721245029368125504564156850472441222480540476518820249719383758414224297026192760611359441113429781929765412582453472216546635507594119518569319096499183887941180974743877837089370146591901349662786714636897805441003940742855179584755991696079003181336066822916918505354620078315153107977302421394051158742307978518138253949625122209900648708784819114676446567447589731343969550981520624827753466467436066260405361685785752658355092956997790876798506040684886233828105093947513737905937583078419498502697295832138570407095481629543799669146246129957212685282724451061110022960525890645920051509071706875047228476235023171633081745565057262038838339746836504848314793348506721708840460091186345078396034594640845835607686475461024308683492848081549866405911482048706963106427309332713712154865343638042020950327228087835064973315863225807938081496737234399416735934816562910884607069761545031575532744291346712020970392067613485973296722424249789541653463491756384869571138137139296260761476446484612332617220935824700576902379883795851042805902453559383853059185188886682102113491227264585475311086643429959379851445596258929363101665279726945290240182012138585943708408799555956479713295016768176510317825824335031661719291720872425531344289731204183573548877772036791557027398310759203338638651619311316214482377594668918803057978348920345742395179560424514329424645218133740125066844306973236360421353995534323337656442799802509350102143883977568142517019096102437891859107172670694759011543516884147563043233919459046106221456299599813110462383315740692301919684173233663766914471026249013578507855258222842587421822604193280439143919873298422155682661930051044091098515117017351245626567424439040578936646274136233024354908449424869449695483349823179940261359271004278066841490611042090945158553344507875636360714829860376503891375852456269509993259056721564359190738512490676085026100683371302337289906936023137085275372007033274722723278292347238471490126452771859432362471350541413204678152960449570071819528215128408343812185733158285311387833482445798631958782152923679203227438511890340254566555761078801827786867807278179006292606938317888911645883500942566764534824965358362245666969919660529562217643146777423628688745169954207112848587668619225751658914382585914374188590406489019564102390243144179604791503856732963804149444555282783542445785077238209885596076120995073505923349132022807706357714121944105830724282803388081252586688471538020632783794782482224937517399443202790688459863142328043934374812237795972268161370649020802449696567229483437343800156425199490592254845127405115696986126534888031098393983015469442060206776130348570191911993242964815241485730293387146612890312095864862266761287630492545113696181388210093822690181997147864061634686445085906910550571345822445227602911436853134034010350212131044746997993688981152426931008159830185264392614397470745692326159667501201000271742808552344948128125857186541525324812155592281880297338075793491839813483129567519883678323823014126389478187006175823930507875979669979003993960333010837658658778065982247427498266263559576708110524358070095661861090714603279026667073167063805028167986033918576374782562013829432252489170422065840306780180477178042783895279611453330143984277025399396345535211487871824212434734257947803259176895289753717327034648242078843742997789350862468990931327639302694345739497607805735647279452601988727138917719243729475251320707693966182455459068329670326134409291720470796528649064546138221297433176114887810506127490469891625983334577207524949130386322518171648803640506069546871697502726466693477716936064119020614937953131613939603842772407709312541908608708215894856706526616590111911712672317998231649786772394573183450685164010873756830120867567670734431353858216529641348006056345310847993305795265303504560314453608208451802160722459012091604468737506978795927854223346622009874999778491084647266890286279979861578327865426252710334368582133096414152439213456807029340430928083274772012977017787494746255661493703655135410425169946448535424133137541128053706168697729890284345611212881973880896738938029164756077351333596771907765532891143368948419136919687889704822804315117903855031396006954049326768343188938692602172964363296697102466786058911867738331225249624518196280046743298046489781512709735880661684255517472261742482752211966966724534284199217279804987439896969683109082343894621255262643549775068884594502390617823847346456715296273197504432847652298569914868636390070146759840257889464304407837044311605921245200944371129330425190793039814367045234128002327037576235384659769629154712513709290469286244880191057396403447253064254454101211401763709737118146866559994544616258552754744936245197396095214732824385214163864651216961035921477315689529315150198588518382873696780487064203769833841382335580249121454940551523632090851563868717718599385587563473662978495115426309099119689868434232898252109761361159277474831793212271221621987194534389609168134851424076121079849905120439592395899300794688691442403487674828474894695501326234027790704674063636216739932935466135929693684374655810695523773047196734578527941596392013241703871044748262552397885966327657157928675053267433871160128710889118725810125293366911217535688077990685349265686581812558744434080653423563364846262387804407041681358113917364697473525697327693613939470959891969545837700579703486032911333527941331785227013264521463923822275585419207244175691589833694326437878436147475575717256177075685508623222650086723044175802343880977016535524001184701294650110518662928676950764003409892339423878475366303952372207292603257607811181844564715205241243651079296353030403154897542519920820085427368181649708712173222745222550803428833505985449735788192360396198009587474221829475279733012740546695504366278083586755326664111461754705620696786134979679080019800647867850130364447590798896759611906521832643138338294620982863442895268981787960612102535243291348329603300170277168893523004617341634687408520874513506690202913816015511432436762284170941560074223853695995025079730676209609380168439652407292888876558952494699584696327962491767583241344228518357597308375806088649998578060284090835193082566411420151133586489869128114518106403673692576046113318411012470228691023760108274192569882217100865929859071740375593662310288417202601577384034039838373465087536779132000436230464977095246328645527647632728645170003554477983910892741516415599257625525448574031531667792158353694510242987028637635878735554417191282867551830528199420020668540315924518996068381808045309105470305273892825931367977090496571552754382112915279157963958363216715470413736801966329310539745655971731585189001103056502791135912109445313879512745562451397115852190783515928133428107508169005886758913781025196004954561807621500765217718828139162428592684302878465239203955431792754594419180424170516904574014446046015408970989363790054082582439824629280309495278958116392546106321525021704107913644896746600051026365178308532557852530072311128044133737773655651259440396817677991781293429618813859355629092552650194705822237594937475069053955996310740397784184448080225474910357063433416974494352944012344614024142736473292519226302609939659127642038709823695526836564774591015520433997977334490208961364406693169700733174998352341259582337506806881806004868335230086043961164554227124593962280191463717659882081280886839749873658106636473492650109887433502736487071274782620303259477777437526160325420566821316571142152003012681349633880279430965620407812738272148098331337033513010491113638764926762224875918587026822650263660673175471494452553956630921674785076331247272983922340480869378403571069704013941021040458576725249537694348838738016983836992736650892885147728077069367358941762753866330027362127591117964771947888761717250066520712858913321196012019082372581307443711256789654722872860854338868091727788922732447491554735136959789291913686982199436837517916683841174347239181075664253460260988739867616694290892953299893551856474160721692859044568507301963142893669089179411366701609914226125345517528914850787708182684429932854989483418143565137736304789289190833437960625633376440432246074931925059901092694874836027809394844810803113969075134937541763822605161811296749969323011178149107610652987814666603318559677273145300873502376912703925399157629790994381973751109224356934787058761427371318672685445380993361472009183859614607518724526802728302633692580989409783783475617832391883121473558414302708590004374324917620119766630509099085127912692991064359306990994309645042135799811750942539033614646263895686012528154916328894648260747347573858509412636134247862375255310414531482457690770355972871655058608238421158202442466077535207601344522827582394522776389182297660212700610288098562550021385399506866678566960904053998914773390432750388958381424148117515711377183378298592605240738992354545463688365775984152846584310932346460609428003490359623047677586256310367117097838188942047169075461665957598659265279153638707443171738229979049570158755867614888885546332012665528289363910870410216321455913118019864948716038774926996619913215385932700236963432144336425359501435863504812525870766596505188265240004825152693424885091642673928448181238204053197504428595943192389854827560703949413128810361200877516700368743373852340425314091882817713145355961097253227758561661689643794776832398053852838850662041656194255177427742006798935340137094837221703110860364132847894572507443814597824493006886233855922575409656009157899889354849945070860839980554717516132738772175262517026060906173850630133078951698471509897672565158629676833348089790091377301415015753500649861389243133061389903056967638832070092694886079417933652672996067230127478544382423929574717010236685169255556747579534577201574372056780931251457091059489017104840600538914360039441655001517453652549754098227809029442323772969828719547049399497068149204821734533948024941762402071135693369184944636532027675916723828554011199857926113029928274646532765952583384067859215453871146656844714352359987830967373319910970460847008159315907283599818289376055409905221790485342886560510195250470541250210635839616894004027162029549852072040806822731995443661790275561030951347027434832375971759881781768263515162499642879553422920767615419625934723837599134757017777434747816219098560568698592520329879405985135660504911743101862146069277434740562700727107350878762706518925897728731204347795911146004317810395697752819358378843493873644551257287318999101805824097508105757967003753496117398130205768057738141871593213678137850703737951787610477230465059887211702015586227869267361239325187481507096156806280054294734864631532113948483291885306440401690691228340991484377460567313065684396485016056115627959090581580154649542705477850948918559099858647757361151218465225587399813229948643141965185020174047882334091099922761893533701662763695082313131553128573439453811872721080581431106787927389370333865192910161546099149234375615173450753828857236944486803183792205151292756616458752731766101530307840833467452389723192721893400356523861383818235735421290267510768787721087424432938333700797199428185199009416431906359028182226631611861102476795518937457064293843644945761054449025550582261525655927407282088807669222872200149769096589893261154370261901139944438702479527646594569320931048196760734199386825653427652787025851600945137013865592942169653752537897887780907346296368742852084865374542304607038540369693503491012122513683846574675208516234892271513731413659727624314806895447624177431024187561738274227319722491731763306488651509318432618409147611918587654822710764661644319054644019778552721844880036937213797162003370493941531576402797505126708995613782814447930381865722061409132743426789349641111599739596380382020933275499396413418183281002747897028348330136670310133515462267083933126628381908913622452329466429011710320312442514719489423927177546500203871702069721614514506180478393867131317113677121046999015775721473736924344396443201881902630754814947527053964920775285686214107839730114475728789549737985568065966892474539344744841941488161489327378744491852560556635007852937493995279624445549992594141061846640614361346717821198368262671744227625130537784395347793359753328099779350288055186586656264476294777876479956468967986722610285197833134693823890059367176066901652933783747687687142095101984737773021193574252614047435172655218072237137695287189611767637914593570435023239228641827802264257276596998174084511585667271742526361575827482552214946456420200785369973488346662872686743543597726816742583536227245199927759726496691130323313440879956724076520615521553901247251969241801368038545347033947377693390182071300572066674846090972001076409054329666389084368578483987708682458776232797465796386399517123815139187073452764538855963953062806486617124994948258716480977515306251704218506202877071177806141764838691171497771091847048931389695984340455606812925426907063949336710894997598003850356483716500553977987088066993110689544669658454392237323814177210988873512770147527472467258658343629859224185198257444840898680577739835256067085589181756046164156676044305079530436466518298295974979302291664520993342088244536409901090778311682724433688693488163073504595565360297766737066764676798860923837628786793364821750330767305598007023058862226289272053210535625541374828827969368042639437279234917698283887076241165020680985355201296453053493207912451636906782822896691341173197372331823202413497116146657044715228327008476458785851862527277232959650057025043131829981631503914649880030382235492309915567764571236567301295403567488578794390072137342490181676487089671847547056500417352142949434726732041899650793824601988764510310999430946326537297329687539500677113887167235202283312215516785574401228721493457029658111271857705776355989242261556821265048057804000681473804134631833712129405374737674469481898160097504777140161692993672369537957062007054366133684414885749374853480476230066133671206477458231720754392364974855672404216227637712771309439931824573850398621474314820498426278621841262304195453713524201449756971582650745972151310613284857959167116653129791325022323563406497273274222630357371954382986746593193609092040652998678510954789938966024128370044417587330102145600204925881971999648492807853637981692983964149402580373735255966033635079809317293694089470081706089362260595998104205525230490858985701549594577526779809566607526923167530535763453253380886851454974622358202122624277843091898514141026853020465041028645056111849841479586400667910964998043793849224883038563703196348943896927957636271942809463362660124025563864467574784732253747697914952486146967374027421860710221848805319921406591127649791710830111001151381885919457983648797131465850530782106312203715696238021798768657796006509249487573012161794753489529679648317763009288250686395991136703367216498209489142206029933519154161516989089588804681669767934688637272009217820845607932346359534148770226980359354049416804922012737501989232695711565994737847695815447132409215235250122975767097968335636768156928173436132945559460053898871699976535731081285158982875797650067529086727557856838192023878319350800434220738153996829224056373912552153360032819406403833159545363272481651301259985461802667481983133533183550454336496951868880065670056298884603321877892577485194687389229378868274712282977246435034202796471975153524582226343842335497061676130145744019122365454302211449536335570840551271540393989515275212626981503807400588300046816909835586794314937395296695106363218542288833150784018332033511893696485754815530034992582120032609595713102121879294567386860934082998941613723963253855992875900787972646875159988299891389799904407264910795637357360534652047444127838487046590976361625547123464278181769798461969817238022548240883523579395307463544201556687951705645068807264173607846601141117689270653783807628037828049321074363855274464136986704705238792898353404233569871859157586987067808695609227404834427798876122361795090683306160293265928515819134258574133307429855439634245457887510884408357555556498269707118523708826800407376284301490443290420654840264904902248027235918407267875647611076301438561431181506707950556577243178989051041243192579484312231227596239551804951903806022352825029124237117684836035097023227588038605774467364221525482125629249637025082436282815864541736697587959729399211956455192542645737253072786173936429495263116136438224079317564943918223270360483480788085831013311789531553220731017603201302015803335989064607120583553659387274843221001569595907635262133802025931832704348454419942932680243173551405466707495092015120289248736717191843914699694434586764449683544747798377104581148936007398999596717335053139317619043957983557521294048521457259538628763220938515130784622089027737832356143176933980378382111517898650346550586846139174090328006070870419581329280217514142585064225757037816787482771919392540057686580917419914302915018625279253031124607124575793628870013474783032657991607059149098652247571856269705067674265318645318864848634479003560472747722293804565156509669091154122330847276612691006038477469650854685696163123215175772588585752841472282551941877386769861260436552265392967618624374042255887719747743657970288197214836504745148965852199634809984468264685463761681720248335184388991461954924288988064883447599324994281522744100917698463291543810281793392174638550802296006404505009751929403828377021413769497056841739674784687668108113361975560345428066458461673041907555097214817187396271482690394199410309618573890177284556905411258678845793404359575171856526554412347233902246070875532488485203880776530217350731393290091800741388596997505073587322771966362053170347669689220793245395631636982308834604217725404934735994426440237758080692487727776919580019816232485483397637814594233927328009187197463414974712174622118683176969843638231702655963241708842965397102081993941504316740145044182067812839442545786726012672822848695926962673816699540679001984436349767434778086399284688410208004510486950052860168585305038844690019939584291451946530601494942727333246610944830060469608647049548015630274536920223905770067081804259237075188121105921214163494169151763120629650591575372762508448306565536412654389086384957735799887786895793420868071696229377064631363780741825574017456698368090599422391455699356406887416386985702563316702369448819596438998510868783748079795259414724707318903192051529075013057994686218116584439626502623862216962049152843402277011024167168586153186012150104680925857913577995760201086471673532177777277359509645620560938314264426053255387342836400492114117718471446178186038436127020562304034130805337625569766693156835611394723063580545114488757946731221364548389024105759318491584662536841247555355671864730663515254283792128601280958199586749880808261777743139691834165338479806348376225608442360713765387196490480261589531328095120533485255715657174867523054838259039224848887893775015171745196293327682634741562950208258804059571254034739942840278215504784303390010160138888219179236166109898811475921587055583230735871698906241931961991718917108245865019913305050310226512968834737588164383368151192141285007540431430925449085984595164831903565555584348665905161000157495717331645462010374825981977306797323245792564904353039620065467813873808557876054149480647320218945501235775052171659748148558920325535917926806645732939634686352252248424340380213558688877613784018120939561326765384180562266865955524299932684122186606131068897375198563600804785164446106637993708988271068136975643455013074766776821328604240793279088975111967834510675336721494770303595854565702282105092262358073996518828558500176942657623640675510225166840988974911301876243317242459550961389322087807801560904889696171747551635815757721620234259670030346591272669631401759050687605600299777019448830420731491590454502627780943492720843524597482437497407750192246923576684900544123323098983274409567106371984567836954559968923010039162876501767920888204519087034514528717257865545203303969064621881138884601554994388305671023970400094969251262875494142267770192237852857675544811645333095795623663006376661905963399998487916045364322829015504989742994240923479295649160109857093188482360744736588861394329930951329620453349652956573886036090986903491084751193376030675551242746096247439098937276368341676091750826447873440638862396841961795396517929437202311342350221281859393388135851327060032397906532486997073254481955065072011815596261231137333191777504067887349128878942217497220333951156037958248962691233607144079116619216453663068524771312174323969762163638195894185518797531269893796905803441724087311262685159053750359958460650919602762939464465716051737943072547244542364848564760879348981678086971345829606590929382095388093891213299403178989420446673295401551785689389494412138994303223653779466780047762251893990462638342270764795963005176874634234166387035085456270780337707720582656768666036542406285421801806091570716176496031033181129728766910339910549029527512302467127683582238000901727820012350863123090507339510370083683130811526498214494047273621206032734055125648944798236251847742757281590670648843443442458262277617605220150445498945086901666760644069173074065176959626726177527319948446972771478998336381128407873205058990504932371563122161631245130938873572022292989781674360979844595049661829936728817951231419971906166080562449207579030156882707308937133541109713522999684394179957930713435139236258283861580712651575834371343396985546985976761347999802514530190588296365721260612790887189901419519889267702673423038635346328990869516782719754762073677107736226049784522681968362952820757004309861512806158835873713888807958697308077956678703361556921672500180815475211775557518945201226817819291822002441586747206544963993879953795765758506015188650592524322634627270543419870286341392269999384467346550673561963963904160539895773511216808521464819423687661986553559183400360524060026617346758336930261149712005544611660367195173692807554014353698435189115352415416922046421731799782901741249357383781962792530490760065761659370590265034178889438913923672729895293203439802212899254549669606691665333939046610294400721187744663707224429194655046996184921148020243529168227072251685350381534107357368770361632573656091052204050973089233746842096020721073025173294160026189270781722154050249161825154519676858705348252886412371273308798186115195557873542811197653126542843701315525604015711151973356237337264323790182935169891519771191823286078531250460416532275393444832009947106251408721707014011896396213953669457734886373761500951343493284580971007170671885630811962657625175643445054646414421649252551625106954849045360085303776161792920435189816193959982817114292075371993225882212207593240493880021107563280746058501889115661653316087393503529440311043310701646416774389910999035463155334383365895788501255571241338722223532138071215833180531499033515704690207509174737880657779052107121116657938845869264775889164804556836637976886217738649517078786710903421539227399264536707601524790689723505554533339621487084406432004522804860167496670386423661688688064703465305612207343652938958583263993732525121923681902361694776694014796620176230506498831477359606783695095249438221516965876607859728515387613766319788428798773539923862454672196284298339945547713969025975355507801039967936331493612613082760278303772818688761593468391064647870992697464153816018325472331596509654594946161174940233923899945463642153889636419717480529297079059433788049908136170226027241480830214839760626967998728413665639010161852477616078095179086061641005170458238125496703050969926847956633050059237797316238831809087910796875500930652627964028245126618158068270631731657373986890707920618047017878091271231726866085562019603218523784087779166594650880727175110733387931261390480810175642698795257775550091059962118649393955827937980098335865830349634676522545340924873812327865057085497546542974204559120614922091258010794244171313720456453641782522273972730168591015689232944516754600995689408472556105449927572954818732569664122084321613898796647427187807424434882355471003193532039029071302599999238402365249796677619703505133321046833245772338666895028004019825524269164878790620298457111446669716322011343808617743854602446929939520275926074429923409560844245519594038098305871467965790626078384522154440044977047738917087504775910371506068508147473502340644274511111363871707723794850103028634787041103345301858518502472894157579115805109561318225894466650229954599823656593155055919999044136134602769668532895202657241221954752989218407995192756186827692341254942368320370286013336117088241457845344955026194367656871302262508513987060781142692213300397268144877060111864704017336793935627027685850472057048194800165992823111106802927510162633151167143567817212284562277766821982539779595246164713672974410216604193379313922072476592348411821252610838486939780360655781543691603207571089621382696776576990027261856948935673618440209559514707904334697727260309585860408147618785627907822189713241065360757754534254944381802890692464274280999599168847719959117233599803397823897124622051015467618936779563591991169798701316780686655966134323296741866376599553101320029458580382330424234998108529173163339190475172165345035727683037717253553572481467753085338287409713918667379807310235128888584233217071817889048975901115060415096570566918040675224063383097026243978173541029698810840787030840232014969420813803697974265397528707521077345753805912705233673643643648928615539098237163689646800249221138258641344461928625079877721459986998697320726742995733338893163380398509224054487032915487112800465677813109411930248914523393287285088894455694672523882850219177140542343822155221382187289171126372620248780179587216026364925652822395442097388904648708091392721942565549792625834743244217445044550184972093554710693358931304818691817803072144276224128738736759229286416604529078206494069232541580947413951806546958966844332727163729803139100620118889037987453630395122559979672483553168837852480267645888063969273012151062525010200474460628059762650869663844893772893175045425211649941643427234006403710503797756335442083060018379095822880912798138331304686084004674769200731627794525142889851121515313627060027553164267971400492448755285211407777071548692227871721603805911062184639664018618726300926517035519775501841577729955697895074966849481759789880204542406711392593344558503749784142346719755371626270020339425165563996620028778618752581915855567409207837349217636332460554777132407639674603626706012771382804697085432246194355971880161759582999914906098921213236694100205811236404125638384481212493288785548806271507598220250195885349281924688768845619232126118058801532067607213163039765239289572369537021826664909681872219290873916285543137457530581580569267209281193221888788482355271248153965120890208570920925843959321767041423042098387030440960461005321245296900975482558360776749260500653139743812629241257185551082754254015057685181293680305664277995325793177343358820582248234716559963163976108817159134508945331437825695409102706436258040244046521473437133541083726683187940014463285367397024929655367872370824946282872219970377837574378147025555230153035907972281723296495461297827746135654874822200936229094535828505131007294628000813401161417273588704143364487674540111549140099527568967346921641433957843346840725902549574141657409043951722482072761392255714318854137066440244007385221508976497296333070627961192805394354472273198736424697348722477051795387500547433815608626570434085659321392835147137974729931190531021605196860499893326134286489635003040534468740240384069865945233117912081217893104529755149152776724682512843014180619461696436454208150303438849934454971246113272937303451970955749784682392721042161339821486783661313149797920070857971686795664202437042183210495388249206896319859289968881585775380398668625865411639395223625436944302049514937828951252413362810315160665499735564489852879109112220918725958976479789900037732138896433090641370894786905436485400455857220134704619516344918733469439712226694491063657771586399699407062456286910652688243757321793820187162462335320203321361366117353778083881599618669242263575825130841304763478588679234485654974013745644313100919283847964719801727779672059559633930452750313287233197349764569527843075191133163978478057983527944249396015066012108891395533867087822036139797082895847584481061783102530142463090933569888944590084862709579186227013235576214543120432867896045857896153676579983435982205203140664362135738768670558764575150347409797175713080226005032253316435330044789725083659108721251831638908379420528772552406253664844987962635866249013778193058320874411181735478553273971108607107863754014870717966528257820085170715658172978411748443590654370259450828667005927884095458459520393740606446138757506840765116124596052600522649793040451640339291658321274126205510518297874268177933568416060961739536365947470380360431611538625899947317943235055339130412159454939686600159105005852739249641538389150757291525277245494993199414503145915634992398243838874271207002953546300477138441897248722144569269593569350670471388725060748315966624318783753593394910982141483701007835817825777162522577325653558918444693837207242972399236741070200467985986230369055443182384582399040878594153682059321276039388731347373018508101429750942049344225387680031213566693840229336611669670559428197492322758918938456111819527708558859210249355338012345588906012164021006973987442081164159811396892608154721022067550363056198274239908604510897145156535574376629033073034584181530994185107120122605914703881933423150354030062454469001310212566728268004041560878385600708399864038551959043387920161547515617144587625252892244512636459887083927647956632647624629470179158593657839713823179225928671440065333566254144149940138699423310682172141040216639143615706686658043149470401116051065129576857347237667360321512422334630253491607995274506140033449798875459947694071279931564027205730270719871385906352026658495225597823686835612109514973700767443185398587891126054258948986059445764996470447188177543334199098741756298740297404450314126453319193957287720758030393489092819384039305226109944865028543838587805531367336631596108111040401748641321853323194494801993065233900965514386746603831447255012114658360557999651275274799522934642597516802757082688366679035286247451888477545961564119839589008265531315303692535310606754129653790437795325281918179658400701369388036254903920156562067678821566039265397239545772824346713909336404624709040623800169403596481516655733107093940060873358775794161031237032104979474153775775439409563428557236061055372627202167780873607061465526097714226726711945425427424998956009535381703280257493472397495323733480913994151631830732574614406941969914091976821208366239790616584023089700321599861262457680975211730181451639118610339443559877234007808289188016211400429757272028745547561575646483780549438064780830874536641934749408363267495753882987959059708555180564731496287711812950132892951290129291310289816240372187959898587121766455101627615655110013581098759349779476783492788936056205153659571664017635342634190015110331795697583740001238335580606050550544300978918560584292830656992585608448737287697820974288099859729058741107617288746058932682820373293342974442355544408051892797336677649973611283029352360788449213326609339591081150394517165713099316639010507839935249550851418385989239243383916786939269643753931220109062051439488533244095499783524627419411180816037660905598892909800974883363555961780128770164727115866931214160483034302881260805885708515139327562442531089403525800149087193673498375158124336704388202690533255823802759760755408788648061628280644722871352731442117768987675358361702557064406155010561104385681510119564531173598287323718345401149316350766175635341498203628335892830929919351424196259160134863077929886367046152315735236210246931977569690926422430701040461253276069004021511910190989863960690856176821629542356637862415333289613373837135663948635674318488765571064064090583027057340672649818181743084084190532851041621653878304362110693287591798680901205559883307866209284144435228207930299359335370989534760618436025451495128809955699848831285952984928267522066591785181991501907352562370342980088840792467236994038867951639265552865571829658044286848144974257468015410597354488945061588081723960803943834929968793076897134755353892044623749226751953973008351263649804778129570627583230670495080713244774289971496676134644685282390715225645963199413963814175156660048660485948326499723331717729008963193542876164929579101227109519231719384861220369291346148160033018383054874018591412987645234047265923063563206838346952136699321876947920061014897572631484930058585860826674992192351713441319307876810971983142264061003920219646533915745390958022970988206445048998937892007949314046054987263059145608789491759801961987079812469544448726063290890406812008683869324992664493206241658763014345954074964939746877810670968443636534903213995483764406191350633664768128918844836626084154796877081487332412538904965749541513685845553905658004274908394940110802693018477134388474761423135761681436419415439573079161258236969485143757423415762672020738345826120951636330296133201900625255215978874195405099607234129801911429068285255791688221682143571198507277484516510173611250651732955707722061299664489129141455002105356678198502631862073548699474743015742091886568807412142834720774878390381496374967483669497160828742498806440362571204399220896401827564875986432709838961886046239094288340249195908827268720467713213943572341817387148806975502816449993977818045977279928384304399049805471123312326922418529481762602823148376944437092826917499535098709218832675234156693500354276955318634171099072649273368114518573067615617666712848661825025955828813889272360412272053287235915688115188471690283890203230377929077926274668280981801654834317222297456063974353794546167134259867395225298143385162565359654480526381804218132800963337929654884661852950097283722115949078633508073908876860433552252884426274782508542723384179551358099282294840486961858709904455348684062415689334309797835405553033841323204369744458956181053351145484349685108800197235635451556048866966613454617379778700065202424490203953696509892687782226790534611444372545736128237258172544047579431473073437146813484293973055526145935538184084278166125303748112409701223582717934703872974126428018199326833582193176996361137069164917498037318778001441638063738840281458509329040681143483891237337859716982420829455771738319806370859511405832825143446226039214527734805735683406407411528747564804155043560654276874376942523098433534532168311616658114046992087748813587869827281539788163242227483857722631881334873069422822182265470092329740177446627279823722401252108471598064924719081625653939905939724601036960514978653933777920750093983630539550548880111076240030769510327240790420120074755248390257640871820542746539786882821544259611991656257898564339215262961927841344207303491636551693330131235581520560545963233384424654721974140477438755219989735269163086121708009374688262107887394505729221993380775785954023764266627312898525122456290892117512014183682954895932030040834906368229078969573873044909736026556180390757867689741457832452839656950059067611678196466929628421507812113301102872627632455517557090020280825618856819094555940273788312340516789450546440532354585834083742499254057475975608117596770213348028203593757199991346319309376827037022708526581964051232637069054741418899208707901303666451277706876467137614164254902885277302380557378672044824922532244000198708280888404252502107888047170768260830197703808415458276560570502402558072343331518796284177584713749730404027142151749796982968194358152275261795658667592284453130688319839639907243361392407760698988175209125833128724495072599002140961166249698728525224845114344579124991861245943273132853823890088164520649024644965775475482854829688000427648393669797109062978942493619984507708749937844342642579215504387809051295573452869076061506264209017882510567503207268510610197349057510399299577037240973382786414024598442096089533815283169435870026815636485672195835866620057714612584310406267157048950785426875667966898116129769736174454535332302033592102094659187207254219864945075587191864550612594993242791988921610989718770387119768603139474181533404070158517190280339591178149225763839764903968546433822329835731400139075924905267782216930405817518775610402696692890039611541148882631480847167742949765132642174822955612702887573294585443865575683501451884802262870483872128238302108302337065373173217178465144025643646080037157851200608010268566755992314623846242974668389417499944021670559425035913510486811711091963128813399575887961604827241592239002002556253370833438060270480124354852972883944223124592616384946375017719250639634279864982441752454583291518471749694922611793253998236964863919033196232742988550302680872806549720380433259473366441014133408373297492238222162631504365837810890340278317377108817867395020865180492822576190888965942249422903080630055734513516420773044244516186933174725008810693035596380376759715330766923009412324366434271949280643016927583472256705011734413154264075796075318843005155161050425553174862362190884441377146217575235488928911442622051109758498207280265071203651428275864177564219031036233950165653702637278149184331302382275841322745679861665889728080905781447718955510922903416679228535323922340019548358269149608704094642438214259889854209200574227182947751566815925963024205719897606062833439751400941450758598662806406701678533967437266377738309781589130469031753021179412658053318695079161468981808104422642082866547581325533081973315059756433811175108174172884236722814408513196737611746054628373445475274954655843533211397135303700008796277620111802469593460228199696021157696412598453600988645554738159358274913085994557679189458661086172938954275930914706682190612923829239686232943753169371443405827007258597528892640174469699830824601606990159125230909912273423148383406898238914580900032653840889844039330654735552860523780509868802814919193763905127904216651963719266960914081659920037213937859070947312544706533710557382517599578938207677083887747622261793284142793726200483205121313474819103592259111611808909225012765905129285070289619286402246379334237538773688786341880724532439813196004235957272539035791405066856715684814480689123643046795493579992867468110738681897648291220286728734466551207619071646667471443514591663790592517260079720063490990931248965521999524447966778397907994115828220285939784945490111053591922885836039487448861406331770650328440850819459312469067645122968616473076123500123848097330144835133628515746563592101135296175669164257227317133235382910535058979608401405401545519580658123532005640867949788353802820076466029778994141910785580601142667201643420691341043632151490453054329654181712420517780365084557912826317990493709989287723603337496001796249186038803588250627435957571516451071728055115571446757252952814214726966737871722114625106776181351038282377510133049345629704894316041923741293217346050861496233961878026577979947651637329579916418915056839936310932991416942955142669859726821424770983933308868641442975122685485000105402880540677254897028713526898941607011106566068058163110240183686464454392251845982937952849432478513540732027714006449086118279112020738653247021750511962376233066894022876476691176857226770994416830186914771913625621941613883343776589674217113637077577165602974643633392783505488393841835667553973490901859895856802587385483662976869577282209965524948431597121153142565522100849475673429376984571681079770959399256961515897045319027463549821840137415597635124964631408885422735271877239678583393067585842046667861542105403931706542774599461175931241217106445896569701715289524531868329463426000051163446950877580490222281814883886338950759456808150586015648878510456277053468824255025218698525549863251455678535211646843770554478314126331838023802569022301886482398164256999087038357229516042935997449409107663443890681994032374650913843016379233720677514756990497989908026334627088442953580138585091379891938294386377932778120672384333358879566715019301438971201247830933509238013262033474678235974770453663824146762355545456251728691653894760927523338085936294149942323527016643540440563078579166691661809484168957853446190104952382125490421411576718260949280408905559149191495111049662189497424771792741186616010276674661513869239932754817432460201433405308633929569817609253527675126997173544578891152110003474507095484683192330623252881695450553463079670641858260861873414140364354924166571447930220099741798634643224544872371904416096501682697741049687950921545531028962207977342054582077514408157289087392473113635697200967760372827650804708021795894607875552157603733463759852026252925624240559113971378209869474073512269880727964110077506883460233221357338612660040311737895275094253033652916422264825552102848081390270649705979605244347405187439589436948187456194515582546741311275375793332246416503930158599300978948804606177724959972424008508150425142373174166802488311062083378695740604905938156182333431705600794072645096316973670920102298133599858078583662170567328432383393698531949967980300630800315727955502567854284701310755344551195700400002157373123523540610263872282517363707959378150875075758779594674582977770585730005415882951163310176150098074898727842950056315055748319695095672474597130219148407601016615415634277253708126838075829386786497749047678987455615358664549581336684894742090390209787022198158051014690645030482585912884642068760840310383644212346767556023552506603205217408367342418282043767889820772242751758447483822070478984304091492273613200620830510731507844966025669987625376458450318994212823729621825380904143709614017900934471801378726227300892497199371584413649146775932963415512965815045429094837950160362699707565310644453725965445373913588645074754874190261871082602000750209481805580304769544025294848336878728557394615235573988046095488780451449701598076231410461953496335522635101364938142791578086764266236158853293372577660188506825865634702355600304718136201117231408015519679612407111163747910754570106472883599511939354818192378274960313605516751133546553877346137904670162189387257804085952883595034247266452949794119163484743533654821559847823814905951428574593367930961970748216405656278250582680997273215951925671550720355708662149443592563438032975307990311843151962650695738768369437310786074977612604945258451717285134036072663269648850698315750008498917410805878508731221594460545544292256339953917062238716876228719014130172557642260657001584733031975438547943301695464622794758344501632749909914386573837633034737206188525538092056823903631254235222752878372345157632558426042019358717384266016897802411728974918795088602743752532980932013901168917734976414019330825375786828879764755013614085476159491964836493418906796625913206651021812405388151701301770821931330734856433377481930254816838570223176086084605410569397819860667832825543148095882121735280255036500479373294153944874751155128444652202904016401324078909940115288632174085770710718292263979877274223654984480000007733301812836566051812797357516723989481453472839135172270006224349990343846832290727957095702680504974566432428954674335267368218788476384602584121081297883001033933073594135144993166727929105034122497853365651568335786145931070709642132689909920121831397688559609545741371374330302426252742991074170211248826209077136317392424369431229846034056533650682260337616568736981552136184958052501314193874477704589493431234554090168015305578633829107807695296536677451755166487744042250650209213453662067503204863739056611515269069182484949585289291294476408459002646382251959403298740460401828386362451496537133878122460161270776279479313773355024067043494611024598281674694174388702941920988740453345199146239883566041512138095024922299236055652554730383011317821898533985822734660996782716103072676381127195674431935057048101956240108262360212400123920673417035266348274660587000803091926174236177840268710513974621902447816102519796591615517437538438051634401277370697545178213541099185792626787804207035747518053488758006923947800540985132338044178164411256470934713148859412438218770371255208405760089925014625818016856319814544177232296694570282882594252010934983482250262919839657513730868095811278690134200309166695887173355562550086463218699556231201207620489064992904094951069793703025723406525780849588876838347147310027132233818068242934416532802097058216255298505283964389082330721059229791750857924834773454495210223570841705513639457288771558802923354429789373903411367212113535916065637287187961296055765795333441781259984049163310610863092287492655930604359206181479518986673673702698290150423165611538406220563961902661497266170951805098036043362376225393831338646226943449425738521977454270555276772858735873822979803665644956272531198221200212821784961242232555684322903657574343615580308131611982750050909658861492165728314604094078851674101998626006681718692580394980768157517674531113562220130084933364822440493121350444538369619631503433792473738285878969084351000324729833520908369386563019729517426110823209545056136196165289536640911478621592813196583558402702987366814501596452933393783560654270608076148309708368205715354464302827704685363526849973403424236707805655706103235044950621540497305394732677922054431396701475132469087437155065263640858689196646042650810617798174405758406072868761560400260567180553939695969464456028844475197988136121576896741908000777574190614891770306832782688550907207684128780416105429799949166990963078428220715951030292722017396890051168449194168075558720885451136432914708402183894406688645410173221701725134177383331825611209631175222232905517067648035654474823327835462478624433554098407680646750826986978205093511948897875564456661752080465709742827157264343870627282882123666936685348573563770662880445955063133457956485041488314785104725128900154134662406012250568163266893628514396275045693786740814387998211802639349035696512666634952766366418537640392057906501713626753002802125281880969230091384891952883522752999807321278646585829977555520347046218033789621880150811265305518092437680003725994941255724435408152066455480925784195044766589586787146998832572554693340382665174615398980382112306998305607340953932953525189802069465111209799886642131107828679202764868471332166282017906904614835905042623117380751633290928297627455030601656834407894882053825412188059522590846806392675421940379126086868004027308217765672739947140380476084777917621011450186722771153969128683826929592784842808032773113795153942404747945820276983136739788235843261051161979246925491269404536091894729274783922881706177838828641570538193732779613999719773470058751265419873355264374111321643172460914827618758741410197734166555249155734588279724561601367631153250232840615245213143348593929645304314677134464625392336463104988607091947532583514199200951527529743658918494888724694644511289276555050756661360573668403051244973615320138539728176551205523848472238113302576378994051940906434500758384872075187433500089810082930101104094362715889675303048251827039987166773247279722739197343161314402591181740390415649249073594364696542727933702499197504199772037233585068257124230763561176084319306667260877492370548708876864899043221196180744593751045782032280885481156005835828035260615942808932238503059947929806844180857948936446331594212780662685972104930485508867059328583464034914387669878825646032203297726128896426611381222271585236013224949435717808984927148956733836557467097672710081585642737176202187125883099461896796732832653264985222460500031184082510199938732688539576059348334882566256628810255783703021673691142411772885129579106169853364320887660460227195117269002635901123718133647788455341031392165478589698662429741114774785146531050158257183632949725985751711568259566045364901531643859762645328466860846190617864534706058153023503166432408698400937163064307048039632733708888227489048953466317731151942172456068008425677729013462958930972959565676667498918220408078412085583575995353293453782252348037762686085719662471506899073657363392309589773867548825927459595503773185343069843632627951906243055887925168119310659197976364878891615081839546472197015808849213867164376664237358051252686590032316722656401963089718437249069475162722298341624871762785370012109877943658809782287905124198052016046096632056461672759508835423656292033466823560528707839235939899802268863282285888679162371890575318427607278624784110669856527806070983171747896990192301640586691789725168337839576583199740438127481682455899852172272909459059118538385040069262494570927608494686192545736668542055993581917745229707189928099225580829234511462749899047348277918591678683287187517334146808000305230079535562755446464156694566707498821773135961481344552090147878295656464473096869563124362866369501803645012577628971588867297677234216515426090813655657752162844290715523413968047750467739523781760028456307416360231145948931178553423086822866925273466502185388031199852748904848761178600571954818756748450866423166863416873626360095400955629437316436636554266210974461418110638810568232333102960081741965467529152963762874720107230113128177278529743800783587761426283752324591526002162032629795998893272953848419026530115521647301378067235728254717843398514235900032374634970503776822466974889125392860095270485370575571541772990638236316645176118643581812626597266027353693623557777721115387041580836611935098866581193304380072296471852750768996076858440419081407685203748557691770819414491064858628270222039993130967192908910603725622829772870693883862504266993862742891095817766487905060769747606356376982455557828592576259241041894854362846465452459338148175127569267618719585485428698008076884057750925370759979569762646209943208050894251639113932784557502900437226517678250148638369308338691845010786772982787747695414522450394062499776175973738959012129474961008910386153940738435869408430802516936168751067716531955831560374415642854275272424104674328480283776579766472432991923426365496504905927595830704571536649457565639625579112594610577551898394035719167200617867490209705656896255004241363523455910924765442701988786808019646212113632801977038295657279543800825344443238445672600399131735458078768232661017399173519212601705752728098528723165336307837455199275245108153305435204264305324509587104819085475285008891563870827975419535010203414217870409593711917447148990811635794972823111036625165886590307598537386249235725175070046384242349742448691641250215195120382429721780321871594894014271109070055673891352798053215855513117584016908994349675183372078807304810277608542168899778712810855865941095123344429133848834652050289659172326293334192082615692885392869129817948896070092090058467216048452684398052664784203841390389374943977159489685210175471827153463602768679965913461123008646837468118603824285602385912933015205775202008642969532220651489036416362423937334408593748450989762301148804573091979880079593308078967420068221618605248922435026370898684199042556258192780654033422960149278627908273526765049863640495573834158155168955786934249897104103863212664337413691653513975923612691492392664336554086847656641560576378164902586293069423999380722364542599351544824828931369401193798874159428559311476477899335481188253446049135819870395489379491252053332003487017962487566290416304445194755295955478121139913806604354913280880495685382151007323381637215785980922490440059635114901082182392344116380206221105676378891705375040144851329733923877982533897089215102517346650160800237702765269640414282329434543732263271164245938857948136455714562721518411197716266302986826638334763056489804463875060588897909599998621085565872454974720562273157942692229423105306685525482377344433526585651820949587525993731442808996908625165926399299578587185124137741222783981562244944384657881974657011408133245908138894819127022831209281515944594457457686475407887050321941875645025719416431946980387570737458755768976499150302396298127466092617785150802206428224932822120300855153900710621741391365274052846086336582676510193613536065165120948074837764105728774551075267739691922959417095630703170986035684457905403520770719291341004268267636254577143044185442808016423940022372362802381127944474113670778260078099347106959116932701991002135478153776777800141327512049330498728166735888898754420986984995446647696267999780194271938691020551674323374780760427729867721045933594258653603937557685107076143435313260931716714553019555473889540969671766142968581193763432351924155229274830451554091737261391026787625760470603459402651630482386322553765335984529705967688891675272866978976705180975751175441682589524913459978210314830045313912944662949156548608850025051796441525869706343237667216632463161485171065036571248660621724817486169781885194578307016155497943989141232029109596716405219901611246006973105833180561912043081534625208516966483966278615943495673115576257656182633843657463108551137037906308720388679029400058088176629645004140450654821790521592417347555177869966954212334017643834976113951202627577676638327557760882243922244860940475800399103035704617163666886416047552118844460094466518588446768324947674706549715189192520150166923478836076376485828175712580090261467603638726004767294243045517317047610982788074616190336380018667898950205770408827784899360251951990277466084561031733008477767731062194032771293736304430407886651028120072777402522955470311785208946658013741186678264884667368990538402742936837103354397179527631315413872947493886520309122477822795520755344422725608990117200320181749584605326239151912625670136925160782719244315884116986706486375068159285021830638208560442795341382151519159658854755000112408102983700179788766371397973369421404132743069338313665963200105697154621544737758596101547531176069050606720039253297048668308808547743724661668597903645553412641353325517607391918201632657226010951382274835520690232787627336751996001425051613063211046005265748034745334789557416841401337789418243429497656650038405981477140517016372905411597980909450546561263520287687095524583995525769399366700341583592361627513475121976915564616451462700340562517720486009787555544093596594354996503609177017952038360245017843013769477948542679885341632138018122896717219377148915639561621171776600788093542514913777951100467481030857712845672626420224429844677771883801002668166175274024572034003201010128197158206774165927388771098333196450264176534267610046228942783311800440855824337497899778893911166541502247133754172017991861120098964559608707927929472795705612010642669548098850324003098565553107956949640615043965594878441870871689460699319163273097764137247920613915253589482807609749369940828008209475102467586995940213251431306188120659437615296846120796444158031570806565147324387898528040204840413099842639772568652147977217286727411282166807322492512133199203059119857785928175146470058528152782412494094594379096195908205662919086390990499975525829196146161951221079149339391359147788755958583295741730391781632938433641495476217958680841913741253831561732835694471949174853179964802431597429878753451416556181188255100639898044691591431640266918822038805383296390777807529638304097131748877093696932896677833924215876800139366499189067916262595812750926615564015947227533208778536946546418848067223517357131549816986591921989765048174863622736054057213290810400794375692230151338567295997187758535042717093832502069233001052253694520660657718835999468521682492561803641615605904508191739629468567713402668321638107879269208468840774281485997998211853427653626873300931497959563158057785237440522623447955403577305451534655820599808078889237721002681788699457655785961468039829821959556515452655922198400135757147347103032835179419546249236956274945380929145134331824453725706128766216102373854157067535214898554412134596091682169821631861871295456878076185095643415248299077750421432465897164945027697114657602297103654543069973583541012741038017704000243433555758935301698599130741935800042516937955505991280848240350868444203654304284689702308177610465126493178336395901026958079313997763249125477986149644830801891611310629427279097794235477563308137553133605320814208140395593763379323206785399360971957447200543459331673936727323375213159029204187367823251595714344510989719476878026987451432757438549152590867049370847504931962019172684956061066368432819141643778482921859817728335717803901450051708948558337339922032092920369849825688804506700725871435682776234571304584011360260075711165540434252617883716408740750584914813172484115784118600612777861709631896547886684459522551897101350625133917491484219736441255099741903567373493549177782668383185080756198784726263067053236825293141196937234957118126915801813998314976681966481549267326803987017809995161485083460734565128534984076164737728795055475598109674368923473128540671653632392668662373397091697761775237406680627032085843657249840606689746927432200307872989382896613214002515539389573213490720330810829394260095241186346369617018528178264812627446751846036065117471916166030597081290922212763389969783742345118838114566903339601852920360308260960812863964366717745821702579453527354387487890515380464308273125307244633020627168790318605617808273853873514876321321907260734663753435319621645720896064574230949497622013555162591742465447089457865997539868803331739320620670797453946508129817830383528992045387913467427578600413436944345352269239025632198826418854139771692857246608333090847157532095680139810874175064301496394635326989722917285961960547299546492637542435930536103319080390688832207356400756457294742066647976450313453121501307321573097923474588824037421003118962533048422239721203013331882312311968432571843961200624006580243299614702308827671436742168570333913725662732482358170827980854403138120641333032400593787965696124177540010483575416851166386430856116368889700891086214807567599817824460309595344262978211227635365597909236806434540641358676432968956294263655632863563861605184280300528911116776152091220898210369857822387111580190522785409424598213071222194297324549234099871795471321918797031104121807024238105553182896825213125569445591980735360069593373518225021304425828778791301684713763383718686325666667894622197467715897865292047596939054735786707243939493625390284629777070217158090656275137727502380082300999322604002472019019051185443909057913613290126612878510329064835580483110918416010939749969096724834591878021448573822273756732122239634215562763218687769180398234920800788149007171274268549902755183178798470371352276810751237555290119235569645594997695374431636089860437960142067335509219116941066060352075388154829514849749274952741019887517996742347017228167778089371289456983215801657761607383690397952881764757960037563399339636759324314235473032608970850000096587721466963080646708683531347998248641788957930568820614099207487628543911858192285082369891100037157697594105709959168720878982320828311546029743712981272944787061356143199580513187897597504383873273197217561666704782060439012787573836323515543037838485917073510057530362971086580548514073399284879189897197123487296855302376939757404811881679315656347669765244183984884891185348469893661505611031651121491126765612939564260404299690947286234671729643284016168097293028297323661880308722156402696932452959894279202227166593354627334188420454793069875538117506379756207446163063902469526403016768393681466240515166150285019156524428308094546424059902069223215544864163498829312167325133132922428234425496244188226440609391148495546524970593340809186422360891069816527172738625417300336389444342227207767727857829188977407131482894648146941357152335648481389969493166405344928626187323354195862465786423261483124472305510325121489916901094863546024433062761080587829081674379290706449500134547311920815381858739223859407512117569039059202332695448642507410795718869889671686211026913904846664200318441003543032218629349192381024024850827253931047723193388058443735481217172892286386516653822340979098955590651646772187349700814706713485918707197109340361359507600680097365019474732661556939918792467122850972674982680289086402601668033802635594347249626701808032340751793793009989861346842480740016567621032698572078364915555301922228298548614788386787065259742037809366533293260850812185054970766845279986006479165955429977802852219252830320327053077432064381292027115076221274992774927826573847969391643174476808016854114929763226726612982136165489931821779788015124071556438013737126643993133384314058982743724718341279794404804601059489654868333990361230665437883415074884404209545248708454409188250197604609206781437101393922345158956883980006618573320750409309851214383170235012227706448041915917092583737166605509502351323674616020603728227589017845857446746703678869020766148314384719614134068257923118655249263482206062319614927410902736873151490920566190446243210039868247184654884366028409112130973038545374776919422072301991278996403729444804826698735179830410852128802150026181546278910363263724784175010941020079576397727684067387096034862862574275782251365285661477933549733765280221787985423961371774694857130454809383237946782994855194605868855014489538876721664046478552371508302448283680631371499538287259022548611751074819856931404245962642322743595586570682098260668486588292243757855315134092689998442177224716122889379973301406721566172540795885166243611855699998964601231590919011190326464875515012106047612396736907491441819344761592262182263764875270126631636704939996209043656228081541413571525515773651911818335935271561413065174808094020752586594313154702084011989202995507040909517887134066815772772343872056739631261346640120709236234013257199887303113366502198608907873744108149863764596617890247392457912551404097569227657032792653812360692897891398431512706931394770297331258473013958279059007394795493198008807808180913640388639124472007364087634937541473947742569188963264345117736335781776785999695306703551819536988632785635956395664819880951576335029098043405064426755524652848148718688858377499168847802123067547886759017973887874360679896096112938277128077611381196484106384628926680811605603886017701663348603205122857309310396987769257135269996968439778593220607860440186551702857990614380706214585664704159665766136801992193972731236848596517262261358032849211427834376861511479802883642763443729605568021640238392495577629306411432098502870096194087277128158593033097519930813470882051310575701668320819354839699739725352159025956069288895834168809465633301883039216963474990379557939358587138816405951042694637506290233924705681728247279729852133773603084213491900821352198146662877311861856743960781237783000027059931655450004308213102276927968763843820293794641684045629933448315750595346512227643899749402234890514211699339032737606928695170475607010486762815737579145631541716710721766327784702038636872699519455770809234245866113704295668910910383313163719467322840346439003609851081315771731727995462245254905969578068479494523650095900190462847859012819841751932668997897710117871501391221712929942966002795392649843123001583596888871484118413656226642011664498137938114630316676367608042910517476073077139408673706164186994702289034820397700032670984061373460958264801463224464436406391381364363050635450809575972940439374987727452361945314666751034919584613033218097767186380787340865668649073272866372804548446652278303229287696639202674363694918228224981740162743535792101963672800720642197783346142821805863796218105777593906820950266082247923590173283011072198885291878991405942564539473550516030182078055443834329453757866056313701518160182551453034579764743469440055019052161577119157001342311314324121663209371079567386807663032064176011785786028035820117847999458252726146836409558892781650136287127700150223546738807024197731662962904101452082486662907106208050062694026335422209710426277563255610781782298211080635244935146980674809506038231003656751311009117374221585653342212776702439285610606137950975064915870330714006039642786540548378246136845056476727271429560577260666155580309527350046837718126791880951843471190386377333610611434348475497031516761821944869211773012827879755776236947306002349584081085010286788887541807585170872182338424984342601443232243259199690859199894753932812941288514640692999693714089366410250738409649539837867716659092929565506721134841708411645770509826682074611736752932023243266525241445597984515885643174844615031592218326341291052779513025136044122407580375827222773647586834130502113890249897818923335299782225652521135802681975437795050331689414677666181046251296448514688097175314675057702609782294365564083055142512985403306638986352575027766197959006250453872484004682872513163804553771360715013312778186129582106888226070455302185427159634005659661167369117520921286809214058716872407157515330057823178851057391348192293669653130473560660870828356618842998221049784174311910218549461087631693016130159958715933632722313615896940680797114095134154016209963808371117178932804660157328936798387797632679080764385679832208945965812116097241496876740319656919487309271507792459477522356112422948264169687706385058008819983173297415561682038839433129682579235706278541228478264599309840052265976727404664869551891072859007867895931649954082872335618481601464903674677221743250377558843867009240523302728813851270733423083491432280296174837534764486856309586110469585315503541704255012820219049604884100293825137052666525740943409092250041465158168175686079570216644014508552467589974560666840337058301925566558306497992120293696779257410813932866181919743268982872658254724492058957891506029380899061046892051138645471545451281266064612815838628682618790944460259472408449492276943410742674596482279708200110199461673151599824285083392384108995961003276164401294507996888627294560989452998848623139901337084015415364137113600309669162589826208756726951016420826768862451398355360179084691521174949800123391813494385508908294034873082789662023395245283579006516816895845485749427404337797695054471749296310291713802486498879670913824504723398271996996824252372666148592359911043332959376035528077177031436702751235257234225289189949653871718064399795280802046367441587178777308928717695696377212090527454933299632994956579156310548615578686095193547082586767442630095683822490286863669817617567903443269751101136095949052490985159650201088872358442778202992875733958169661958654479856329495139283025047000138808727158567172869058190113188845585315822298300748476914372212060081949040887577538064290638450888307579519328007532162767389406382620514258984741431446226425342124675536799276224441805710085840802068912250996106785385008328469680187589211413925970205963152752416942239612646507063393963804892637998525204662069153251611139053602460786639355245924724473500847094858443071107979982725861895593520032868109600186059561665138436233598992609078607688659336206061891211238971702535372827583783627298809556925607167517773371481221173332394636643312978931642574163403256597508563901453746103689576747832316941949687993058919565600885995476976188924118243782814443945616899023634473793296304542597779000352669557956877035856427739882269946021208556115419646632279411555217661993654304770916980353140088451012485189046578279035606288028290611137719467119606932428848494471213914491521618879017434594052733731899631967588511074448623847274845206810535403462601233178269988810722289376625152665509580911977729984985963705542484104263716314989234419860340464157843460213755900777371689032900530992347610620508382595090928782892972777169772838340515957515062641331426556659743599795356955993136201603264745511891129895703728243042305068381481410249788606437226022134073758864932064438209371925887661506697742624680663510042677180613647613785793778709841714672429914999593520811462117077087306338244452422935667968773092807040759825594048032092891391606252308744309051532683844356886212567163191387241905469323236168525243321674532774327800361650501236544270635829015741175222053344090707764857736635457751218665212886769244256765718065139614514042705773559804893299661271568823491864182598328059796403459605651905633685102806072354660271322787396950457156809397842400331087699270228039185048736526238649849859332993588917859283156305997477086670934843573209298465800830951483308983616487131293775400064635648637413446669339741054323572330768446985359589085126696814404184281220972565267279366154550419641401558342548851351678835955671441588950643272361233791651619775386288121996699269312980398556232218201104156834823988250208501262239628445469940447123775821964430656672228835844846557026470828800100296411500527964573639505415937253012213541361302377792426690643480194280752718211645059300037537664543158290371378501390771085357451311625203503361019944496912534642810280380239766056725200479749143157198618590839974736336191803805963468522855953938457008874636484409072630958168048264025430688488045245114917802344195103991614863987523711658905125855754405164717634411951695898660687742467303538531020575313364732327566829003514624380398475032435706515991654691494603148331046183108458000600922126175552488055970548385879886676752432229548513982620929456482728934298758935893032838646464717727017623058259384155974644475529065947157328153716139086998091751380986532844193903033209587149010596986619691048673062742702665537746538113535366132384969393778242267276851567341824079592015312583039532857952376634471680681985901858474019138721796990601527484546335029045581890015063092002061974612498595117654484705752993184827206587244704245288271304484248887656963609365170090947908754195105885933224484386975171909183413258758361297318410783370837781162001662234050509971335154741317738499722330681128366631019543130196485661426913058992694021215107239955142705930539600441034300554235021847303071796852360494271570757156180544902973088656387597186305828122746324654811714705260841729206981592548903190325829847503111741487579082117157841458074869407206198919377767595144079911727232552316649486012216350487669376768892741047230878552521437981974940698441139521314187037709391913707926000809425136774190281460157621332059723304132013660061301180255105580461162556195584460439931036623096450931161992122211090528357706656606070231546171431499489075994318541379399151226583467516415561741250463622996416152068706047444253945200919561977534505027628637806911985302215109896243307066059849980717603312616028188368191629210648573827248753008024776867536919539643141757806513495510704206214174509977573114470597653950596586629810780301822765803858964978353721501832058991574010638898563842792781627033332220920567057116206426726838192417378082966311249381814429908889375768233006878273064998508550976075424566938007213839005142863728133759421730997714749942572614722792339666238179119801819369309946570727728459162159476300774318519376432443201913328999933716673185728425397890714697569636430000995071486958965273919611482535777179731082355239413990949998747772665633010300035924297831041049840344365869197171689680231893078882547713092552122763434834063204776253294731204444313490591333484069911106692056540359761452462499947080317865376895403517625727079204666272898203824281578786287978080632789322216283450931508114277740359289610857653930036729111436241290058860008514040198618911860519281391003428038891567184895040920810798485271316610844290437619059803294105217616984666056688169611560705797555789103163022502043541065701364747020809415719486253814838900425160414477318834248900332515401498303450074095930726193161482500182567391001010735668490685166572252021070974213404736620939749630006958623467270556563626003997909884011668124202676635254731640982024190676046815430099425701581308569290586559915679033291191766082764606911842411203281188055317929143422155702033457464216107292662590449359094734130969723176111053631929587189112156014238982091175288911330217620190109153447510803122031877146472015713617718695696005349620705800017406748796319398003172672524371326687728411235519125027100099729754075819505667144475575623807355765303483106779015852196437273933839579866489193139690747906401028138340954337178014222913824024616443795312146516670522858551336811114337947177616074508182396688533122933041351422140430197164366669158644192978748515189568193078322795807279390828667800337882026963049677541236279553880297236444205228124845561231466262185630084356166494245405551705592673105189215759863222740499560684618241768184818044867182413030189310749060292103332157991296108335259012555372867059929854078115572566045162256500670598647435139687405788759735689448391074270606288730785403386262238392258995763377615970288667249773959720601674741080475430822203857295359431523332108241788375547430044280009718670153751958850543478449518269038995243102657970257957083397781969435907400244893693355273273560013763580672994044287663724667616118940485957277759240758052633377318932010730866625132228117808673324023938340830457227966618360232279785385315235936656544163338463245781565312005437598207717797065970937449126970096391037440920996900317419800358691125477191357452522915712327865888580712956266865687480293734319535506315650122132454109986240316499089454594739383634716630344092733270283255478154393266079658864876882451007582316180394058931910539817421082702887891888792025436011615847265974835518945885468724110704741574269983861634941373822197632066654956378337619301578137688351510437743720809641024199328282844536553786474175970626051134287723591662626643838061241253713857258477072179591310575685244965887241574152421422043261916851282762731751151194453709958379006062711490588950778404987684191781182741291916212760044976404888805840762024606603685935042034097928585459648123812208880306531011699264642300122876168608804456695025730899501409556322588085971019396343384394812759312981158201922381440369738581804913818421550773115805662868121882016005650572343007361402851317610221532885045772427550300894875140130817089617141716217084052440257726116808406033161090520600989963583938258992215707608955815357020549336487940539428882140958789415273436376868676880551670336863698650027800489597287254103928873478218299653407121342994818481482382748681241675671018108627287473224978440362746692903162777087398354163834443832471394141146634260185859499779405351732228272518967922577475677372377440276050485366702246092254008664968530659146506900072169432825185193908692079429510655724471273153587979198643826720318481313551309572137473764885662563218314197338739484574160057059949514184138834554901739548216825207873453673161738342243469394311422886693123175871974881596776387725307231307539254104651795260089519988662221088404640873750312823671338989068852572724087748811137095357171050122084294436417786842642409994214231632886003751632687594434077486222646373669167435987783349016180339999337886113428773918553308978593421157278500332226598459124279677952519125189731007006436855333280777709719638804293767454819964270714404073691604319690492630717445722463108575303783361967764870886955906202864014674371391153414777700874318010543672089836571659797013464885289851022878501145953376670411755110849357124765117477485970474474162359250318168582189118930850638373441854241450760943832468259062449774570094982692444584692394196438585107383025546148683271994004440031599704248734160591082872422110416487654444747542465091364154845364624636717799724854794308263062196468638867463717514704381646549068224018209893209179184063497463561121560002917115594576531743606620049514870296789543102451236204098324475962500189137706589187255026984567076595661495208190539800725256638065717876514391094939456797228657697955566476298436067524528054673629791941328814409954099817295240669504296411215363401389367646367741130316179945448981202964565131719250480618637575077700404282127029735045208525812751738629756881415447184164429818392040397273195787963667541185461723816928792444583229924322731658958435076752635268545131614040201810518600734490981141130225878894648042392829862895434817709616304843501844709485932509332256419611096831065928818299263615908074449518758429672404924814309695967116005843968486432456507098730140147056829839304998836127939667935462951696203069877849611290448622527916553890248177768350686738905351676808347635386111269715903160008660394075609047144726000752483869788272208377761370708058930355517052177492197019630073349805703857272728528739892384597576096216821776361337376886890378249742589007875724887724881570608654435498162400296162583753088765480225651372656244730710700782527282881814577103177745420163197084099283959862499403182746063930999863023279796750170644771227040192675989161123477840323568459709308359127594778684947228519312783206166480922901925380802969163924938803218651210427685096705982231833330780513769487450721023436733204040961099953836612538754719014061328091466516432576643223567049522027952755643382237405943004275277911443995793920746676210588337812850063442690143977093840763116856207125806015240261751125467696187375159828907362824843843583695107388959380973684735657289283405048736089278350286468716579249260209620817376312992543182874264349912253176916652419931704502695482430637071536060101917773729666549876904082730690903254132740204814639745707219221503124031605094185669049549407533049058137916670852585160938415903715847660377620243333220994272814253492300714883472749559713620867551057273250825880633226500363836912269944705021542542079631735641154771913077351930999578678558285182325325843722910493917995340808745607874716250471270485274530333474062117331555962633799286508392405975230998882080593337926271882318880935791122629213874496571767240015319858708213469341659982041197978100837224359338627482644505939341424524029085038547288240298322924933267799420055261769309112595923607248222360287160448478566676302465402836123279899923601464803884165375923371332478381395246880176627106067985792251804674309384911284445575153862659362457472368699411973254069256466538506213872428480413482850288040390652965210593879893432288936210182564833131866320859695860366992062590144756170306788125409714256395194793213953043286756931920131411083041215610634672201946122572613701245640274183441926424410033115755294918814510156658865511134636974844978411127776394074057814714589292655808188988170294740037794039614443851463379798894150685569545810803093179752596099964951070315937370020301186147202343269748462777830033953983613717190995183866643679801204350462193972717913253257895837322776313204134934897431337008750534979234071564524099678624162267249837975233384012500903786829994882883197136820952587859231292127352784901931015617864625182534689366757548862675022527293280390064448108346142969740183773468624329889083778538632597883933712707297483465659999162605551831496277335697516171267782405496958114503938068787209886170941891954848314816814771426994847471569440238229864869931288782142078423436240078806639503030116960124724400468512775370254585367740324205671021089432318294498088351831708993305114547882126453880228652491133146921445851404322631149166408366924879169164531080417313695568822337805863366954250621317931805985041674298167005365257634228004159087173066879617601055409483664795130333298415977686132994137669056947466331305723090351994210101400762164226004803978540246952868362298263773268242939068211087698088337125946448328275924297100118037845542564188079320414756774732511041532300242221165716106265948847065007479739342946409507306155650615727224858239037501082851290354386825223834018907233649856084523214390955937607338398241445302383948568512252185818163165485218951985714972990753694597314534978014878086325468414406828998710918461887656805291178700462648416532753430474200861028841433982922929080769053796031233620133406851636557498748393633570928713270610199555200713985681792044236018930288020322530137967663874994061658203021020846029771466769575991747593197003318859200715913418092024123628046343291156276851202632858974304861041421713313364910812835546018994873609886673041869065472487452261965589441198587124173765597178539805347572634281026114706848593125813518709143672764447822069349413496549159715824013538647452594501726085584686536806583593774655920358865645209924504694871478009866428226223210271630701004247845484909325101547336417605765785183041329244005818296967360293080927159392956948705669695439089177592193931185452485734894560475937745394928210117235779311157462095264623276476464444556638979665168651749226279909558303866915633693149268445115010654915639620170618810688713154611650935144723177449628830475201823137585881500818120196066970753632006384109170874511791172623601235073097606653002089755517321873272872128208097676811392134123411184700772355901725176127046170593813430769553236831465944366026472895511259972617890701178434622595171565529639572919959835394851042695328982598337626293896194870009673552119025326320041564576098371366053524268930602672721235208079395399684353535668705626374732075800190540833793231556774208967321231879832068611256596053684818141978254240365766987461329439724015721733769550765435108904384188729548077917262146482320713493854732436018904039512334874281918778756060863247079294297722357399310444119510742548049740423552737921174270140550149020399171361971335330625935891183136272709080015929539374637745438812944491296009764923819744489213034968216334176606973695567630242493444500659135404214877549622199382714186034835333506048636987360093137475038196455558716998976723268568409479497127889438521172046849778536385415314297627412167810548680646927679153765069186631140137126487934056687114697016436904978652160372304535528489470410919947290608781718808568610865809272533117440309097985500737621632667874988283804980599061158806760244756531599584988505648966672030111732958214322185975079951386968997752807162784875318818635338950700053773042994784948847200819459974974291922388526856406341076664385583591821360061787759193528617422876157022632628461873071681966803547600784219790101573917319701393704765624493685952694548853526653163326681541261447006863266186749141763712572659039442531462202954965594169184662974765885528921553006250704447180314707238486121463463238083950967936938217997917500385311527140843023678160225135273164586393227617261366439802315596890054084594046723322200004801463467709864578485865854800275938815065696536131711677382122477192605201757280990395859971360025538974689578576977817414374130616114594635341810388900550406103830992030497115707639854976724200178791827513591146830808160387434274937856700512503303816353160502201154321945103481305797927748660382022998114691141314503926070489295062338072912332455703122499292240700715038106076057600108499582352146721742148803593499954323708734102689303120026561127264457614779519940701287021979394407916630274803507373305855035876524488327506978952510668225152766502099816786094274842578022576416982646239351819012814250673794590489039679237209647025856429084723827480047072014949951085324705455806342594872834264477584931398823614272954360021852572793950845700500849524452434859273369187868798425282224568353059762095819619115274414172983170611923938411136768991564500307981321783924489707375819983928497015117175932131481301778893679250641447231530394796271999115140388524514711191305123374960205477856081592785946453430748433275104382079234290602521479923107541857676769888866351209557858265679128093506730180493146087717581496845740382976076207498743851726013652087067246077006202593136728545411337568356421704714516488929147566618334933461337386332838437998823506383749634185868159081893511034612144636077913020096576232347112184686999362379775212180071601038361831621964750551125758664239788301300262715061716428151001457952258523871448035520228141194494348090899516800848022053670506602312521348137554884996009584498481358880099950487618954971817640595279350326802624414960725010217559129212657357398254102977074298273596361479935179857658191126460106779335165488756299874715726943892483919179487692604386923920640303798270802529283481315885300728844933730815813425790414868516195684645159951655483474189129169567790164554530417316168799008062135345541153515231511070149425194614982204795111154263776800460370279642628513669283286017033815257222064303075136486484388381162287490229390627335591516105112525266192067072142478393046542042599384550129623202586181245433839990157818190852096898400255679245374145140653497522600774839325270740353881333178567327776235962524187093957242398103671361526493514823504328569901209008498994489613260264433477750360447592480870045566192128689212110114998532348965478372571975667000317901473718680625386194434473027587481946506967780402419141565923084818813456343458452897707902069812351224645690000016952357539609635858871240237405084231775593166021775381515618902503254815091717594295844543056388831469576729109136268868520913783488676132303822334300931489669516889828142134073138018021542188254665910253083687277651890574722488188992630753362840500413692173112748787950430658336891555701749180882598064953903566241721518144247045394073008519544548989192924317888308112227918679734311123213359752760266882121332774691822828449164490771663808272400938449642097850900156938138535100079597698017104905234624224362477293216118300773214088636066753932480236856136331004969722413366853135064270351466131280364867668676398441355792835006693279283061209865262938760191572842561118612168797380159130855958839502598420266609167048628527878346991703007793567274504586087296232913906451969205936701891835994541933945385031870361771445344963541598069830333131749195899652127008707673045660919159325004863531233244456311919973982818246008679929899695745928776097376894162970680772433164522977412457724283476217963804195736699031022820452609090520949083892819431431117700137996419728805686011051601502907769439991669118170988339886983740281583850104684286462033163452258789583072432770862389980059506493225567738054471291073196512496398781400173617832209212162697507236671229513832677677775327284562034288353055746645329866727985174130210833254752203995381547175267312690717228949717815749875171846863163400259649512386651335847074433527622195599215632094740035449399881915181995843931397904733913552721319927093081501650225537328235167770821683052176358703769950705295984493400166453725437514516876145816784653057731845794358771138332257916765048524355990377880748598354357396237641164561252635980758514432954559989241317053767521636228814870753741457211740282437271076817564382648453758365321391795298134353504783885783863123620512702869882836037954575461365005258994875509273958078290986373692646846367224198047704521394126270271218038203763607215758987340471349556055803382050478758036837974542895268617542231014472559095129217135756025336748329791578886827995742832996213478501085175975748098547795628412387756814381442407325864331601167701563084424837657788400246283005392326015132815393580843379997900123931917644582196659043503698537338547069555438724624481191197566916414439217092850398322477372630330342655749710370190289029966223086344869930723746656016928333075169033336489223960298080468272216602273205288384215652376422808514296022882643988591170451630033576845557585059703157418750718504702724950478008258151383082687553536999613132509734044584931424706900808670059352259800209379308372037156764798394396843853122744821326500997998149104210981912467694982771839796765385207518018093594060562849411954493070457798696353181306684903387723711489454090422561338291568958467570079629439327293998852561351463418057270474074816629133336149394509783768287776667883507278051320217383916662570100935540824813613007702103978905965036276424827160984706302505289602444802269103474031311888930604784482683359282216083292211479647902469705620357209319017135748054860589820464323246956101080141870972896755768725850168317727889725922534267004221726845112053058279433271206741247313892327749167841585245245262561949051612369399548713370654269515769802277611578044303053567423158255931079664893630691802258994598411842521854017294052468315310817820816739973607608800767528736283755032043935330369833379091992257920117400261651347513468097516790602497466469179881466721687927947791991905890209845614292397012326649108955183101439820552907535734969545476483321405594667726173453057655904364483618916675343169046994829013458545980038565038658715058911746082015939668225627583333141280534740065008781023535959438596694811304389755626805673857825499826436706330670303869852215562495209504879049977954839360488851488040636415351219237128587046879255031804495051394798669770051270438408273422107621261188830445507371912146867286338376288357758345658001771080045566948028144247180462232381151680553411904532942363229926923065289372891024787605883522525463344491200312016812318696926476904268453817763657397109368658263149524793479522279157283186618255322423249196334055121463020970715016338618304722213393961756521935090867479004836389126109098463215570573447774804529805811867456635056618227453573799983322402807404747686389633504724021004623607049049890840615246145275962034280421905816109779390996487049869304924671861385718364345809481249445278897563952069253032479692755971457568541682869677230951434037647594726593534510472294867273257020359351177889626233791503893195122193068058344677656977626045607101086840751581544709261950133667837666427231069854096799104305297488280176144990575908691015859436800304734388073542151986914917414730151717192604403867118577424968979601805728351729334671459103540292281628875328365269025391033503983017896864752713627846774269237580668368583395683789369773352087674896960084865823773711275604236082985934254809846112056681148351713465631684786761286233067216813750141519899919431214892195842504316656104483854725892421172039368603662663494055060307818506088853357615983474921147212775257648771536710014407196531027639370321894595956530970601608482927316618184612321631001142374700446978222533327699664802920884499209569401940777061725536244756657307672463521975224876699637834136225849493685640038077311224218527687324174704076072099883692826005699041769757106513635199791233085029421175470957482039118921232300807618990510121052464831266431197698989643237119444832953902945185845569086918423717506486061146053406232001214030493984119055761677830079840516392435144228478651007479099576144323038141456603139565935977175399753926840673252830416923503031283867121446671180114315142684441596024579990105131410225751226744224622728831063303236053604099972895570821893759031108343598132496096764428407060670963128243127872253231952875005226395346288330819054321158957770050131121017697595683831755226418555150620757085018799620251273174078208270948273227148214166146892812650210565243825940189787825493234774955247488396121270246107920965971064875049538050193143664091485208471551033867232558632015128299356306049379495803848736914658517115917610822300576115517866341561348399147604206862342102454579260013233134537900068709250578727052030450463367839803358842247121222026185569394556521434058412178992027299320178218952127283124049809205120275293483912375530205643877415110537286585944377619387706412915219296334430530972707875943635830351857252168031993121636505736860860712732023540736599641092258765206507810360861400559533410605831836547993678651983014577013466889027007582740081236478363109874661683179634698185484576776048510750667816182667480096416599690674701779289263371883264536071030961454878536972371352765370613137133270895366373337520811905800311765601622679054017442719741296327684084076620453867583391582535176079320752375015561803001501646857738619676883486692912435751739142584369802725839599754547280984166157828539859426841326557690085460974624101269661119458980773775341074295424099596810981926211727967729900386106409084651858933074526130261608963778576325446685880566987529153651986144386525779584589938702960494326820683698780970272995732771117124258989418585605861519520414441845574312296844737169131675758474855331109364206701677748225378472651387536367895748821300989008810792408008526175993318214313568380218019879222538154525282708557690468197214985149003466242606626181861571984146308837985585451883067939718100121125911230662878883536858644008829761107030388794278963025900970907488765267181613257871160493332261682433718369852828180344310242458060038529627294967935898846598902535644300120197607017357971909683932122839266137462080877522790794418960968021134089076301449066010420708495909111937735261957447807384186182298045178121046261071747840809054590902740282743504548048529762403987703120187950371991602701971271576239066936894689557510253154867994077654194456485662364741898692553618145036481437878197372342756122125738793799249818873023753075485597445598972247515040273238643853113079657768704520519928728920967014690780964020823640023016596846670009249084340317258785407138009066970117973134653464737032239677695383614932348497736190522355476994001807219532871308227235461809419147956227809943703192999551169628625208614913719061211023562039859798543601777020009018952062273978645967082053152723489583102933980039269616281765335729273395349419705866767157466103818343669938840942016479569118639057280521674619549066931807276369969598932653973223056194195767806246268977492719226888222937200376892311105451680402877328884043015873789498270793805983964386019342504226262043141854386220224130390912765504347032397653539562867921447436917729728542329234192691637333506408853428027022793317492415865981735702045817450017525926070870807111033719611559406056303551282195004540089403167528761238167475083195940498388244435564086253788297027825920742413361675065885674681362493210828071941074378858786624575927331495117610650560562548606113626879133659896211722962769643807892621534355122679606389837429180504991059614384504778349505612488672756014528428884453263170779675997945266039167001944191181864489739453089872896068748503017227122698750468656521397003232726023637402671542989329499348757216050341275291340927432674471751237017513486135141003152195236156636963457456076044995818955395005688252123729976400033817223293317551948493111197757936464654895288761154047694296321671061086328580647666664554967263449363510661954435075424342739992011304532352065658835301249716262674839166725137643204831455634569739710144706469460919527901947956895343632052516274632169919169471713808778950859107643399981959663671928143709228737614604670907675543905198742050127346669330684813664019913393162082515830905230608526085912511369258758718863008131838544367098624712364246376157548065822564113620681113693048841787390762105349807220866243699578828987926433101407807593756777530927751310137667840817397663043617235531529891963128023028779552616209256767623115778075296377598306547346690128653076203975754393397905413012982982413718318720694782568342872906580759474827593936165641833709626346074626597885416997292907784530344562043391155048147597318196251787809629331555696946213035721366041188422563151034968902125458979561316217446161561701637914718445207212970761245607162387718464476415653220761998041173080196261050144936567147801634848792734926358847844732729886744313475820865761660793949392963869499653710857283534015125559617115441008460948136414265379039652692412676367094955856951274791969605947804084671927867234060691279517124884471165643021497893997586485297843857712301397190553529185339648092440510653284819530845411991426039827878707590056062530666038425505436164844397222861716973656768101559201062025152794602369144686109916577815942797752176227762093204040270234460409135302838997219030659115381242630493576629692609572615353387556652445457242759763117137304126468880188125121292971679833855429131815087009901320144859605704230454002426143384218485183849786660097942980986927830842981828158166022678662734358454640386810881768375834725262561139808247160508904939861298208087578362576166742976339814106937572954270043071364074216438922257987220857341169744127083816737111492211425075642147845512322161442119259998582018688153897443495025430145103441044655096081878925404685654106324240868657994623009661858308065050972299175636953356908267243862297700575297682249319530113552354103248599438565362976738626161156532620649028732089355225701068084955517150282663527000999172476334935499272295756758611931754449255536377466686718527217709069145618585689566535271673801814440645317822516688555438884139274559850643702567257041664953617187663975089043556527474534411747337451374127312061555198088821477353730571308412347592934864063281825917695255444395832198418075186871202545494226400450322079463943659356079904075331213953657081590521173499508871830952243346033094207903573825902406443564856123810592588783313634362176672049695997893552205759682385562044137625143268970031394886179006368662598861108906747232939786150621776675402988888371024871286398083722451610950751548402842121649968991903682861998391381144931628461952375703861453882340372287641877038325678567924148018407192339013767323480208622447857804595598034373326253711022034916857106390110037004941940808503783059556406806518325476764225258939349055992311089624100329155023209848513336069361970070990897047376720233835108060156922378247534583063984335219305586118176302005613354304710126608436887224519119339618164842491584536991227305672363573742812695239621072194299522937530306700169328764981485254333718911707162954836285273141449256354106016292561439158434119522141137964263092285235086622691486947608217444836939220779207627318842628457816771673128322138208624542486167855532212094620347598372652490553092088986198626110695533591615197719520472789638284615760042904964682485679001186515408193085418078696529040768033500073755529555544505385635050895226884542274183471724815029092493419684307215807835735521249744085482373652401003825582052121507360282985235717063493538798587914871221981715566206355603390110856959033548889141494339160040977049033636325597718804432716893425914202823642982630520563247632599335196444771827547974187925404771164091062288980224074716911766470111448735053759027279181754617776253595793885827239853438607626003822106651113242079973357405046272884733638706859956718258287230065485380623486957703104499371309677011476129952188561773854049002894634594784728404144729518489877226934263487380545532159364002495321024021356210456269022436947126958703524516119204162183781890524374223216809864864459957079785777072128779997972133535891425020425316537712590310302816913095929731962718210639938503170028463464126276296971026837806320435357315269605994173216109643095566644137870176128228711813136091709269937825905293298918793026432440409589013713606445973366012834522608777266031048745064259625174585251439455146338437949511063355739282504495274635600710629768716249634270116788813765967184785084097641669818424182920102171326620728066509481812769996410415897075286283933914372489243274581038343158302911098431018732717623322819775563624938894430161128149919564996534538320500211505734132021074010955475823843679600492853280326029191636104320004352311106252492364485645107101198324375877057391675717554700446346332869383212199183617735429736702029459244431066128565050267613156714718357912420702034881251290242001637898796619037845674645346133896269006130692405036773782809485107967547370990393106243638547899832389695736986661192128939043588228859443869973943593369137470936490548728371555574747122931207265417095825640951199054137209201205841865996009827255302799745923652973534822650435917853592420537504518443223409069343875592744995583092479010886569304376001074499169617798581859267591444820715605995405286689725262971647200250175730638102803134553931129238602445213790716236991584154010664757048248006769384380988736144038840876907116722809277393272211073834442145785098238018418527345245188723423369159397586981768626540608721883849662955957205277821615532599814294245929423469493281516146840979993935075449543778506570713837901569935138716689532177921775309519249999878835732570041432679868136710321910432188709856876538565376664788737194896361760027349200229280060476294242917753911402154118559512026138202888653031891026663971735273768408667528242750179232773801198300936139443020676188629800889160411096976973986467379615070017915904076989888223755928375176465580004678200821353388065654004064297555002225057933783115496705830000388901848663502060116542605925956560229170837544412408240150772246429067554803387392121486064614772284649318920103799417439086096597642555683194199045088576671656043702194803602880175878903930948055126946948120102687158915536516849836615383308610829755552617721303013690169184023753873851997417351318091591151764173147998640339870951177431160085355239875374988441325626511596118612101094278257539505490903352094873033592269535038338441547877565622557621979838206723607190724782834540777353397446621461524862784370984099029737706323869779478250205470790693779427637111965591056061135350488514310048132427258957792416034201629492719230061575607645691151243193068350103713581919481798462131470233600619200329572472991956630694075789920065910907543776566910330031482251502591117023194030272182055790027678696902427716226069476756210726858913697535167146906013023038932412646878005148267177668572200463393096888390218848362673182339231128968305406106063211670699258692345420669069821396734303831648064082846951601809803780008135661915323185453595360921152428762775945558530515443992743624988255436965381746662165462281162560173437509174049829214559949588742856532049723897269322129420388817455503796553004139615075889515659480011916476653369739741005397561404880871066547283507230193255193230953983867527922465584043902880896045661084014990308392283850423724531853577687907132861247106988870257725483560506553618031176355923527450984276818956886065091195657406582791376942818115783381635118383012486058407668855597274980261126362117425445578696495964517999927340214617436304514095617875666555684610297699545099634423235901777501923040934299229365169010976028322448046745472619370666339413958972518237837825827106114058602559446638670725131853536408838263192146579601279487898665077147157732010961881673437758793202842741079824665435674077318136809939163830691854739429709682074412772052189629906547317236781773650906841750720118475891209614614702314898827687939658049623978841898044221185208059855210265922334254847393004636603057130196737127584491832197548038655090181017286979281684143874761952966361650476251724760739414654239208634027277390072865840435169220792858204088427816952683906894534777102466899260676101209380232834805539039777503756974213441271870638686073533605998549635855246606555373840163083602041744294718034663736304526301007763391421359042983933359731060077805871380574461514703856989209875240046930138461585546229112987325996652777796825778013776427742840491999169492463950096489641570025935309867594376941962092322077024661177338733231958292128776311607325449389477203759490929029456520192258623918074156212995571962366143804985667827983666018079472983415575409701578105776346834229936209847905047469551066284927494520906934010302440575974156945803271973918513056168633177189295691051972981923069724107475619062017917447991809244860087175644807761590366756382620060335732185017850488168280999013068190973010223349974108260156489261519255508146362572319813162047669148243451916359795219415425537083155736490554949593750454111009120196186253705889882360743428303162020886865181551585328342227552339445688325831734565477845833544750751794933386195066484503154447724517411784174012649407970010321936682558171154565606218412332849683525623114089105184912733766014793822470554916878488944253215411438129254231960414584024668811680839814194586847667111186912970594391596291003989323290437825901699428321457176556489668718331741818650900946887636786834957865730199762820444728812544549031434317338521931655330590980212202963076880432723309645682166795083466099687022491945329348122490587454593041883722752592595011406369308498543028962307720525251733401825292124105775357948221482704573678578991553029806631772561790787280492500296483615097569132087629113820671777449309431026720848307699703846006444712922522657035231875479891731714644504755369982908473934612444081845529444232708569263935020226432304483201851110340898198779704638320263470834410288862498612158356226106257976254440117773935855419812313749214126731190887287787316060466015262778178348178647417493741737895709371485609286794485295193700931995860836844932286670427321190029005135100724414837930568688629537407166700445787437126081940004504828763966555019642380654663411147981362236506174317113870903584564657291575335849426465249365127584076445628064408862355071497350713960679964726683341644622667278536354012695938263644936315962852994138020350271402950816291799505439041322008629102718081860551758823263844219785391759262822901933180005040880352581802608549672388038811864578150406382976866117205130880574044082118544227213174864546482278504319872996942295263101730093793928598400157836894531129690761609624098509209027553892841274098170608814857175696123064276119109691672068504243439758726863312270976246170896106428178415639708118613552114063185041246667398264196478087067881734248156221688898245559095085704919745542249835169219428555339917586463497475412050555253356205858481560606935404527090804223386488600207892072961796268556226443212752953501553091619230761502687499885540398643762239086584001301784324187588860945102740617853109066308689669062815292693618584839581045668764704265620890526056384542733799543524060201446628740836641838837169917766461646679374000757061212266778112534879049135585104439249206983395070331720047117889005597538716731594156372482960111802407373905643669408334362390213709000182873341572453055472300544310275928233854057099575890477628545228022401825215226499923548507809890844230861425547006614764411193477760221330253626461174163898134340180543516638682833162435095708785614533102223799525678763988020730834100204127703833949509945349020630038375584094544020276281042224895094458133224289466240276483382648409162594486622940023773801630634268297154477854935666395544823096653567344639268688745699156696479061401127649056485363368788713187805496589920423643965353004532843866719790999769555867247606790112605882531001508770140837204069149571371804478629655601658388332903439195315599781192660221486040715258104204595732475805326870399440589457074994983717414849388606792457123245386742177180876416056982853901998253294401411925078319763993515519279607005738810502730959207513242428151072093865242135656874514221001553504841447092504343996723240592084042189150002862100881227334928135629310691402582463588839530205459146434028748416922047392738958122239360422040460678055734107743355650071722850179646126932751731964259789936242881261827504592566341282171417215120148862964360887115847147315892192688192811180806383865230114938490377372197564212831853857302250383425579145168310071482640113168181223463517526981559482875640237241597429505754927331386794230394133197864289103851664873361735378717568118129185895937166152756130091629352312650426972589490112469356782650464382932072953477202002493655111833205031949230472366479671706180211125941916084994599104945298273398516684978823516225307063814123645769724750721014673111947381409223840119158485192390607175900550207846327554722249644371636586861590954537149145676914027287975075662874357824600724185594614173284559318567529995633815118710594735103450823618680774307613932375351714953203197808639059914711152894927868558090258286189793527423530442406692659144606771598313917986579096697973199209050572268156453376660013109845255747788449245233369003709815603966693119004389703517341061850805807144359722656154722510653552662196777410180926523002130307849720584190202208025589832720554401940909032667701762297404809251049778925738061429936766100511158881445309199891091156387710285717082117842883366431173098515945296864179858769189806292628447433963886370244040446897325366535241472042139934207559611447139510773058116057843221073364883262682980626921053767839124629109843316899299585032974623547939687202345438445012614150964679930298675256555446475732500772455347075822710191229968027177302443851318934945295279745355891910287870089990638058148314329306105313636978346263255124603308257887376888286897609825257700679218186350383397248908507383821775107319639884518149189231322218571979402501864042381782058720869456504950288318124664280091787652800705998229437172333764777316861793525423796036237368651764598387196958038707344056625888564809031665120532409227921136912971190019971780272989529544417571892379460494027596980620065319015922074116533097254766557852632269034860257114181767293248097876176402520850143111569621752204964278031254617766586424748855720010237816080388783083858623827539281502506990598224574759620534864223161369485338734901294964657772458116172117438602165322840442811213279844691590230715456102473839412253135440447874949983087795667934857788231956864072171419772621031601301950093254517589243018752310308658596939806641757076001626004385553247317333323031135133407282152655551495653196555437374499228299487822500009233306148294275235057968822620435931932860922201088849081208068716442947972744043591256242053085827892173091159294762288338829520523622667239700890176109745112663531692643937873170318698096748477203153755390261864305156707836604932187286118595158870809407070518520245243226893796875621597718526115528111883568214984467764367415140223781443422917578382927082102190547420626635615914157151324251254285203144877674474548821074925414878123430581829770550678937446372094744414604332620112860915758037675090295793619002299183304521677783664914728120743417083841054124910577597293329990831861652637893521886791830507233583318541134136554812354553830803660477894223627451893541491868744432551972248290993491304793072239820834869500385753863767433348057250499640621015568588965452658567771819400608533552347718714692016315431961677000814884786734291065721085714044161381950013487298603036215845499701849313286896970374725301514481542424874093779759473328452531308029911515570690565585302191357845117183376318700638702587230499219982626762563593080606125554786017098708278017543567079378960324623422062178106650174996647893931678592136372824151434379552407315713740107484620465675999847658378233175588078189081760145992867863652675830243690228220088730001578531509052198416651375797628435766362359811206736303140679188699901253130792721716696056670247378156438831823335565528540405532141077483596612099485900279863432638620359066530818815912203714884317453261908792291342044699870650793902110620021389846257999506583071956205127694327310167222638526575476423118715225739971857585987296351622661853543631397076519278774446116524769737075548007619637117231590903395449233236721780917311019644131185711314759816857002988913296753024850899097019868162924197774870147130422434751529102216570387780330977369920736998499717889868825286933546934896674628547118912171164656938362314476107702323196085590956232759600685643003073337365337663970748150509148481666012544829462750425835326549391870518273867178226057415624289213213450821769438789145804003368537090391811134464717388550730261695707162613573566285469784924606200081792951425861610491681136235114675584591728372105742568318175728358870245270247926606784959724119541596003423810503737070649387835228797833825277909932656245915117496754933954738792656750414787903026128541128942392096005571519085479631546583709656092761348435499726644400011256437493701253902046579681550429007991419566463520367599896272042208509488709391997072111686121466684465976257811223068187276504222329930455970552810779299076799338868700939527144017492899843226179422438186409982251588522473811775198077103518281583146773321810148380180699359015724536798359531720537852666111117305616102637643939383820646147970421942398006475117392064625788360523649447429542647525938143831915477194771358878475871844765008734397271110008690897673363150486874176632165581587583863330114171125853738228782358011114112808109592406675712856698483785921868848439294315921228124155118707897802984487389715607683490378559360332742518926701770074785296769251852381808567187662813757718833976361427814717025568458995911217189010483548323427118736714470297550170418067376684015628041616800076459373966532568490629093904680180698902533920715192512210678214585290575471934651036340898109649062079032856933791530371992538602141923303023536637438029426043460151466820681568118605448550033720879518463882508493290734154842122559632406661817292352430941031815855010822214592936751866273082039805329952170915145905511292406196820229566935681702055920349123646370896855474502715606801191079908822774220039095222636944235281417355855573942776138686425557935878580863577732340609807459906325297685325454631295582713179804440582041256196852618359864082075519485753510715962058699560068200114989540272437541369379144780616898895572843303150524278936583817302834707789101418299917572996876992639531786514099465207838026965720001395388468773006881412388530862959933620656821393425209310287814292855204848986114719397483458189261645014822771362587683322480739193733009460553088462889403729959447182381531824897076205129229006319458046630644140203670325453555709906874281858161810507310794965569510200122207370241032694078118979920686741126268258874751618409038603062029586493244586904709085553928887035804902568065895565342682097419518806403217226814621667515631205339872243170374084604312711988279780121973467688575230957816104666212920627523255142392954218363066404513012886776974234704447979266007622061669378191712253601628197532752912251039559143689046848806517275543426710946617231841092666252021608359513599273227710996066937578812303484476358038549238740387066721757137555723014947921915196071148587468684137093240955023765597079858337470698932742303721589822348599267859570082437744641447206722786189605009500201337441030743591376798662503746024995663554707170160297134072443959802798059296555108093195373692247338533605987613566440957148301928607963271616516841867773065387118576464785352237765291897456184135149273435259073485422832482206073896717483991361890908540008587646430847028990170236989632261595664825277771104261231040010565713667573180070428262280524046444513085362944156213341664330878582031343946504522505864187643282234984619769970906425530109332602569749503368954622831012165405179132583158712429063334114743130498993172094235550055957757028908340573460592087502657273939614905050180194642825810983124910611111091672244900642678786069073307227023001793692716831070718300528291129160322315055619828836259966807598424263089728217491206939531417060894630296685042913897234736851563656635077400059383139796804118564413393002839732885011788331750643308318841833950501032201822880030912372624930495051005511816540586779197622643827709400256395568244625395403294131017995212822976956604458460660279708263470951351833819574183233180990848469368387156255197512438797479010385993685427441351899281286301954947296705165584325010440393852675327005937517140101429480535000415303624630605635557244889994760037744238155898673062027267897507226108074483112032015383968249362365446606757354832107225141014340910377385488255069893064169314051787321068094697155623479111729393544553544655560296716399530656580708915737758004686015850415521872071723929097862825949522686604966741682326951469827654152642597326460260045366681207498964644782721929429017469021511418394310289643345614737342832731015523449005141101997871882878596144150210643623153581237417613838188215724885389694745209549631975683005172627958103616286673574651259114903302755908061059151400152967215707859842656712076132648355425657550680090893952262232776328475015236190569301653145125086803060052232293780279503318431125538947804109794037444274961087050499188202340186661535296322168669027834020321680664677241554492719207690512076204283222971022948193660623503761905260917749516984810156078037551561339315032846016938539341038128393387968637836618295969140357583034551203733398291377287793418342649981143984938326244708984907383131621889721430963381065410675000498706893664508345229860743808468074986210432706169901604098919738895225796293253180183291379180368646941457882849734123744730535479268747362132173888866801912294944526570331976556184723706467501519412823007235093601093880364524646865652599520765767771184020005841358080294028923827289951007771393041412054263520405844484889250480400874720224646681841998633196091153900325054384122903602246891692342537942372131775152945131249973930556603464049212411441548343149292181527417605987266541112927470080448900401825677046176789910477606502934569411625416376068943004213297015517259119043651952245756785132989388553027224378212765609921250517261960922216130091307192261797954116284163646133032926844482692301617968627271715588937593486794760599444433179349498195918372490395586075555335358348723608217238968199469644993269860262071190874216030132990175450086164117536255199593691194953435231881748344829112793843388763529871231927975565571316580772474949161159463968796995222121237692672235869187279106291556874200297217475659431737344515082517706148263630512264989061440227797582293722164449024231253326827409191520782787716434270079372064954468094633608248267051861971243784552154083217576340283467148195938577926251603642890753250566705148358024116507133062755539831604980678780517652723022735305788089203542146922500530808473262598161184008792965743396886671179657918397647351383799528279435817562078892119860335010340646544446439304125670040524954979394701729156235037504419336841062800654545874262269908115880694087476481008779442358327711174629277565372358339277644158965337269674223637602612182449313438912070412847544713327702663123490665211840719988837847911673696959381735063599929427606437238936152626209735807140968249308318188466524683057984706868412672579803670201389405683956209145492124647470381353526560978058974549146425284552387334994910743697552094598600553476011442050554778105102452680528465524468734640805676806029232593991316637122077486125778218158987274997201932981313313264576067313019551780374994883750972047308293469480045709958340509979350157832883153462050970049702597170091621435817148330896436927802002664671372594085861291426499694065987680243929058408247718378678685224563587617475895321232082941313501034879326393122178720820093945000055668785897006027512092458058708435353274066724396645758750024321426335143531438528577759086809649944891049036259540673724733132033367760422559248383008805233026197891671038794956595588922870281198986045066209141846515026789202292935162364148572819510909207309085611434196900846326614987516960209698943244911301646765184861942252147378771292369311719685206649746570967037252112406531045218605125897642026732866771423783347156398322653202910530400044595262672897890557289907032096740945201874946820677972497679848529681361375979036631892783836566103839745807175657675204769468642460806475836360194843244450738833132776853550617948015776194346820833355360270478555118246525077790986033350303154207534009155448928707149218283282294243326541735989818620025225202329197408576618122884407168807741919595339110755492176084412446377808658931178873780466344511384167383453034995743745372516444801896200868783688172356662892064083116098737129756900635002781206499844350251482385273943081241535458968644800207368779680059565490023542752606004906636836911009262034961217874695773308407283567170528304071991098453293290043707095004145699391248273539257610187233267607093141785281967524297452187810201057965791735250295654637385049537445830732708917485603937866071545792129831677051049888063039097446230528666132680710613178276202295888878383100052406025224877300050874462351454465619503111562498509389928307783112034569914595119224130041512164581393029129240938028791879676547922036913391760300262702170327925951341076797532469077094495652471234623076280237490347276085435471060993092540766072274732258243868708824463297286667244412795267185781389972797111824819507675256848748730513416229765808703238249893538222632927498172050008579811637024082056086152166139213801096791329369527300995923455452690424364393660293763897081875863959650729734623418744251568536558625006301267624314108563125584477006883709541231138135659735898066676353933849084035115383453126373824826785869137741537788338505043514158795961611551284776457522422503454225940836193558456522033704167695708755227170436890976311714471096269831206108985080275394535526784704869613211385241632104000668555361204700112801634212284247432264331730457721576470522362677973402096018039038933862548246685216220167188449977678908750032639538779957453002111042973261101288994894651627945800870619742817612156829194163073398227152959125862060765687904594570563178123678948207240831350421044696516375368722682795828075287798979979390909261561585927457960539482760803835279719852852468813143100358364032050299706033509215756844474324997001458921429584094267452916445866129293468303582596673092778679943097665841889993833157844808494606459227143513373130777890824992402887579421531892674587268554614777192189795418595180976215839459885026450993322157474138764592275682550285800256575377328108316274395624682955518832412846172795627889956873294512192794060858711377122984164851417556287185580450356687290717336894527352166726915246121855760378677859489862508964163327626644117607582677195178532707441467221371352627965257131679039508180237539634175217264522858622786825986761757087416103406173328125105569817237704567059574900580865392103486998301721155001099645387986875740433933683108660929120794186332156879933332058561811949247582882739371299176582722473202248959992192211538469523833930821345724521320901595421753974042722679642288939115761292416365299919250403751008374316059092773787654905442409056770348894299191741361149492583395368520305651430754948160422286799295268400282015508495325603996278675405766095858859843470904577751370314749436378041787858069655488379895027646575099116601019363312803606951037655122005104261159369664206919164784859251547458641220904866572193239641708412654519466919812054384171882754045983625973911666424544159487964518211265129624881229753111047353933502909101686090012559036019156765379151140468626335491408866989956206113635255639495305753264738398523789899591518928225738875462067792645481865696140674956298361061748696082806024624491078969254910433900416400157340142816362819878070101704106946286775761737449935335340017261757484213639464123800192993890643850227299739929910377200417253360559164676714595718937481214204622510647843308020073931428301194378910844769350595325557679173644224041127617174835217103280257195124789332580856109535802790235910985225331459605436320955975464138888895785876344527451199078868011843503075361644357513984753000565149701102340903694965831259306120278112594134544304585938621225122894426371578861740370364242292437147166499957628353017723066817531470989021138320759610247982593948554883964370882395612922021187271412041129365523434153946392575244252586518669455755839683692708067046415564832048424270915506501193880561595983470551431206355492949294945915348872777387796948150133407695677894089296140290857520024123574494950652667336489984337187958425852172124398016580544445761947802013134617944799441584932664424539056063767321352131323295455416128430385585551653283467218394744173867909200128495919172254367436019310437394837342731856722761388157486244529685477011600886906912588097023742455650161974096445404756223095710719143132336418399617283829880149440650737216305348122602224132529950567334871935700925476318359885784832849551493166034068597336499837044121893071153691972044331682077866981372725877938188727383734432447265657964631435875189120887564429828469454574575397300993032952507091707034230289319532770520332544844433933472338668600875064968302269239794998665481069089651154262918882578789688722013663867694803172168813690460708678347213260845093494290616876342195089318600686373263502872963006439625008039455738760706185121553527395958040932680273840145776239664361834418263256905549554788086722638314942196158374715007713122651539534319474869469075500954779155397866030344159147654956703396920074869972157403871672132688844209066308288795185967296899620057005815506619324272844218939868407400200904005636857270729097780311872171141925795296752639391064290338768984129179314756065161507751880877001145424402509599390519196923986346033206099842931674679159979448947722006932140907165660519723513882133286618325425864478015072243525250140827941948225248218769478230537049567086586945896174456790513335343911211068924107839336283240617707804529119210853369423292174813502418908729384404757404267778349599600344572762730723648570310669836176680159529863931156316790960010427170101273925184162686378419096655255047782416070912827920222806746872826641889868128536326023553129352065118568399276675058266631853575207691153868452393678039950711135221745904477352174173723475032729958901456509108270294879905343275589775577924832185322825086315615566602060466831486479989372497078973493995647805458956484210802550422081357493277991705341342009212445490815486236437318185689095716855240891872371611761296516508454496658647909308178835989166916173501058674202521052020683389550089567185197831696816266556157153317128447024460726440771448938230035704056731733753569387193816903350350288163538942772610842502458913890939975897908764235816258975254215276704711092475843221079135502781080102950877664267747967510701264007590976705762213211588812522009036971802323583945628700583932214011776178931526906869364090682318994755635503235735337502559749624756897130176702571136638083746625082153127462076319721491748194204048420280737691688327156164716857499031982393624021215788907180543469678415171697531542597243953959585069257658746874268023129685512314244598618583602852384182599061537711034305524987890858685227173250300522993504065070409442291516890678995406240791228808787770561523960746832154578928926979726139598756442029215875171558961080780134605385289355530496967894449089255363384290016769193848957566725916665242406651055667419366905199328209139559449387938554944472439323686309635214102541707602136888221570219297859601566071499893371652360508581905723341892146973496121704289210258936201163471613568777560937843462824513342912785050399615110764674467363979113975283890325510908027968385509086438135021365831217940648303466966546806739979069611730064326049577927200892724402613079858751826169258372032775022444580883630434661531298565280617432092930017840586035517663016262066768658121754793996469283741322320843230269416747392363176065817591384175816430957349169664596849765425608214731775805053140736219900452624658683479742639094626176714966991546750814882732259726612137593697667617500863328164542836048848871499306484683431275082912038792613990651406374380817954664421256579258430751517946720713123351715955305000195087385681992907850838268252906736924546084164906802597532177218139424604630952895648080735895803723939505655357288347241669323077428302237501399453548801949900657066766786350247254183423099664732100401953689321693074853550637476398844539800229483360149183567227911324238637678923996856238443055580031220300577128663469020623273589692312355646058791240520721896039515789333834335659513032085521397733777361585521891804410294096498172683459392177258842077107720930092476342325082874079705462099768666135241497626266552027326378500964650307343761384940365553548164799806764408129206646964927213192777845183301156989004166968917753391989767951373667420251917323406214169540291149086326831437729350935582094312739994599572663517903681702609120600827436904971687124670836279775754071061853916745738088098468102711956185724415238381428642461047690285896482675556212643202370557771255614360246717840573122378815512022215261838264588913391978361148000799576223054020207432341522248841052186932057915553901114318520557750501403708512791323392418460211651599829318424891743144037088602171141520020541186005957565983195906083172621680072369463332629319881035563222517699433957515319674391690650880809456216466606494687933468447606728638953122617827560575096246982136302827335627796756521083154791154733780897134164341670650374847601666577706586270035530966197071759434487621898104528077789920533863113355442531720473517150631532161494027134060120108068268085624442407261361600241241299191736733163980641410008967782470493149726871482722596068394947783687506165074207570368644381645792583513009250182463068971181122868548440808318344626470388663573979256621176693666793975851784439171613653008203556457878897086234453471345951555118717853206051889834794750699263501700424480313736470709371465143118174135360269844905554157724943360485731435081366366142153227187872947501159445950041237534664819007210740185965299752745257856388676584840395880000060219147306890416822227176065005435605769988648626025676071736092519746332960525693942828420792545218467885367398838370927313543325805061013480772632159531631445971722298285194931120790299487515367368116940225156395838833544769595475446065786945927049808302296299211021687463089968086148064863561750599317283422493027279970531392081050690059871069658819750718234990780506748034309972577093465278386103217495572200374623932348135883768138387687146330016200370023684457809058138742584944151173963221592341091605876967636012224582288243597839928193463623898456603672318728419514169234296650888561574271809840842860117358304396594705372262345796578434464984091693313468472373862851001413118893092792641490376648623844671034390012901830965579381611387049866936731520077172537628533283235100706045639837066698957332824342438797687663791919813516085351727621336978345176131488554015068622582665518562833977034463398830164964972980838447698246256006180631137379689187710275964600670419325297636203120416121789568049399289158245288811536181121126283434266312141229699558643697428703980833200536462652283613626562792108155532829801194194092849606548607405412880241904622892687691593457653412173174655325552724186099195940463497669495468930262975052527113671761900160244089852822550501238741869065719676840451846568821676595887447807839163200353809729734188685035826393795517267142991434554171323057216171725539083078357295023665376286306677462167070594538894886552439362331964034269479446327470288363768245065455027028793109592572583882555653155120316869092653743043194746296574035716999766809626612751498992848178540034109207258684501831012870398941841885922187146664506698566601592641448406028348306013726435139044867883247442313220400783884223486058130998306458045164824871809921604217125231661441088057571120974818442649075208754688601023280450818265722894038507487536393626277069426214520756102584718525750108069270660006861198639578033350224645227469316111484878981730676303623940889407828735415262273620320121906265269108192707462957496881431015182529945664017461597091058971528333543965784226664450707972573459553002630596219643695920958617998098999844884088148238301758993046900711627523346394325599982950950764538674016318259708885365515909380315102923270998678701004197291097533958506249408964942797324337177353439753340037716638152603374545249075263821417093648274129813488339566734156509713980715329832396496944309837636141194754202020180882520423592061834604653734012075265582846156756388289813853047056605207906590505805401330138978381926674697445876322611180242667706839521585555811453285509885241456525320037955985420960420639226843594570637995508773811087678791821442744710304808627159709658810858222770933375776848576740237820054000884972349053204547793631684417192107570962074346219009778155525493611508272287611335649949204517261504197696733705058940878372168304620256207588308748798122636502192926780009187604413275102382950429929668031853480350398373522261763754785343050077674403756271727852063705111630461936158880211994488305576544334148543969969615614950008228415617037679921095645575700296642578177964738402205891755421706991913553295188911728009808101894555201012806593519485297764630791753011243775085622289089954463028076619655078855196418202518297617852940020588652724166441008360902505224111465973180928213149574169681882600621745759961032560183153051402214606587493185446370936604436646712130389353075588762235486938197409480683985661403861293987697300224945307519125586651256977279789913361595280185691408491757990940116552803323802680891199601003330040474353462104386365442422595343772170767141494351022589434462616476192733683389771087583229041247588669052520133879448485530529339592856937764041434295518616296896674419906274639134002067482169098723657613417608892043656836909840621222715600766587294931912655215694987913773301413426263438950454511705820564519945056329998127913329163711728357753146284504419509270142557735117847255818032283751270437567880301496087451565561003526994725335789970284516758429426958089335071045546616934568334822140026830926752468506625374149982878400251701291792431021764664609386156495664788841402179604686858041792476596383826174504905191511206726963132563760510734291734312274458207799580694889041013592194089159058334992211393947179346148045932647352954818440344947369351318124743378203845746784046541510122392691363207272609552534075756231170747554025232674240796123268453448265533975870619475815687402253895479211379624883300615073201742735404756461146725175858756350238219285674270949154992252806443407698825978276968768938284009823343615827436766181904228005622541521261146164950339138605784007764490474833955117967487910741262803320987979033539093421743851210025254732960682770769021584286559432032651110194779523845498279509337037171664128639361722177009888289767545728894227300716124832418567682529970290877634599623001530292649253904916196018079806881571112254454486397229914284482985592523447684428264129056170818528583334228153743702425670059567335024846669925216170779717609175274786105285944069681964088230678487657367786927011676989646385875215848219775929816477167525213919742152946323530869495364004210141841078440159991629608260232197153560267116135443961420257469930689992841664833525787733722809934266003884443797842198489018875115578063000594101726330573606646665686487527575000671383775338555465709192683458241463546643382587932051832764795852407609147669406150812476847394672170584162084911143494697108393564425885144390838496215820357783598614651175941329037654040602941096005745342040459436834998516510771768610064311470580047366700615954451376960511703330339295551567359690055786525270473685850994278258864916070022044399443904861349963497647972209428171278084690353736545209170304185961358500401261802897922280257333204067884511194865979982221418737626963981307645087486284492015950179133128295298581160640207846928148451772011034658329999177233611717654898143314832596917201793440616459776301820370870508298794288267581909386145227853735297872565344219001613375162799777543140281151900187784009971995108331927302263424016227521535341305019800140895431723242717382272160058371818577376696076891124747211786404063613256983281955990485034918015493563203407595606864637921547695525152134034706266771293711331093100776589799484615837452385588482251834440561179532051454675618576322237840102658743261284187406162939324075175423389738760567738219325137192066676570527190634859406275209181666866472245048860962959506773855282689375617011789466697410723718137969495152720415455896348702599746554362752835434512108756765918336031284366713614638901543497832608800656953513853546149459809393306218959557730874346030515813519430770212756454725720819110933951316163824567771470381960109120280829470947967887121286814958861150482221149256666668292904580887033666763285143774875012421962970350114973248235259265501966887163758624547446695340125296713582351453695185180320174148229253776694198232263130297842719753288801069445385159133783668780449853961686913028224229862500082507184647818019182690332269954051428736412393678095800874454184415823626071972209493535070392228961144367150125600189670972989869873240646575223930803655331793698370512572128424324874390605036613303341747680412111931465974614756341946647682440294386740360098476098863698218592797601128762356169524624886645967351431860636829113179866678026481228953540519968055714954511102109489771989419105549587892228351701106963173609248717212611936845007364108198401973131160416184929690691021097253293997601616824416219251420837953831001122680436534094144404857043213088443016653870196038382165148105625946522260754452388989775040754057501446819117607371472777403489158358152218887229611223319451656188135328653271320867781566476550343698889653922438427359188355292997349450804627097887667082128461639636763959583520347085617687014936396366221151183137221846444606967268603920315055642036523944521930099376789195154140941976599470464461683572841570539943822638319821395556193966104856229031622583639694485339759250370826762765425750665949006328030536378995164687730180025415778967109738871105806131484867927347410896015706474706669249072983603201413681157485786861464973195369771075009664504077805305202733937519426187809526612927879312860160513647923750531055111699530898334939920261305662285590103263963032648635443700694282157608762328451785261415833202417962678597972346512928691735998182998262491842082740777072870718722116067322336339405323280088488739963472509070630286394578329415081276195685356292289172643958459828550013882474090056491222952528674596479303184398991610578414554779681586786280633094436993009205970312111883868920362494394081958519578836370735070475632337816665736999407328077832045012277938751356674138482864881063013406451954371907807019356852954932279812549598242446009484026436702678732500654608337173439013209971998121395237422669589825859972116807305565465022589634825034450062200979656541877638537140798427911732945669890861957775104077486357643084923527911228700429048173077839254788554608453669033399046741529894189225928948565174290646559244716245458495161277024540754554073656027675056838008039140646006874918435238625591053125021547533142342571113190051001819411816434850891069954653469620009419947566759515656012946969241774370134209457421458869227304282588314821590516413734108047612102570486679389685300485745846292756792506078394432631207038192671742865615573227575595131759113428806676776887934790892780567486461148786508983080951908402689854746720372793636380756208238653024536023952900380345218146635731614885212941689596838372671524252705114922259143130305462792953813737027733258005659776691670484695933977261974975496037253505076790969958502362058647620635638384670718824910552951545725683216171522473348107450150275871489618579989218393624875988631871688120646857059802438208498418972196205951462293507749397579435020563075246035253235207394933291951845596395207415336560434448885700760584445885261449714105021401612771715479848772493933832503074210904166863892142019810250761115311650142940346503995948296828548747913566976805844792257712205765737909876722294994142722324717332234078634287175438686315850947595033918666715047911233731591063726467618769468535328024600450960176747060813556401188011564119396737660904978417091618702428713816796233124116178055821085471923102769080004071934310576151134990575095575585985321326114400935916601829034244263530723840579505641851406048720518713740613763374828121885120666779044241857919314021001181180721005912908079638597555695757732151586641349120107620487646469600530616511787321373920986095714779204800669316126983947125235322292393479354917588224618350473825787769014581549550492320169876257698314099821529122666298835954427522005069626582901014320777658965933645654051494778429650501214147619377053031936063915934988104098343109963656656611972914136927286092432047236812626653170407316571301584396982966605010208226017872920728390922370354192949324953358898750328699404142863857522577125140946806657859684492662774388086586509359788959032317013887405707757140983253210432161419771849424017751318276234869018319734569540058745587302368108661951834901631135508018980631041574365130780686803601323718341267179243519625953142131754136528223588919609333633424876351360234211066867875305045943136124708552821340314461864023437245419749841538290568283096837307835769079545732899769601199064003040087460817177963728481657894531206316337834790048388771705817852740098822371240614503372157360806860128345289461288421091195329854767967735285231748968005351100879644925598915429278347635343945034743097401247191992077638408664625768167940227347302735766451497027083958980132236864398170587024924308665271583559600381249293741127555548297415498791704745401514619614302079104410919970620380543776223947895806814515568248471696098989835448236151331431335393008551721834296306374596263694560461625303724087629667537446300790742205818442453081028164577601123961750404373944146110710338710284934264810175379856478943991587753471161390679482355104674882747593259900454340173736643972091059879312713035500911495914551608813536505591524865709154224831625238379917863675723116825008316224994869350778640677748915987544696665076070959458897539290810270588890155520048430919599600043422104567166039733023889453441165824514802548546677632219428763526379582638762586581461093831682633130888787825793759040346505206501119507681687938915270461979015615348516634309439499947604981520545377511882952432645197128995254791418638549277176627952740713045275365827758062658734331986325902505032337700705045027498552535878906818859542403886941444706114542974542819009258777261074033908016304583951571163069952035345237726124274388363901573726866955962959512878088211493440527485230263316267126558904424782191815352484343862067072753113688072702060174269700759462238695062924316579037423227978353036270425090940278155567975626060384134677020868786744533299676500635651089440649550219416337699192656467999574672340241330314229061189476780776856650055594988496541808773276203602262072440667994115971914526829683619290784531364934953457999615480797519437826286558317669594668219696975731748266117355145708361873492887732883800017340223186251169923807521836370977809885867588328024704345214934765820531658001648583947223858301958049920515074056625028999773230596234925490206254963634557189417582704690625810388091553728746245236834804904376035254915028353015115814648237658215972494626457689483644089408759177214342541461388164755896490708100555056939972936232716737003187154317611472201404088606209631456128869859955736743447228972081687346841808403929568936303352182509346036620234832816345648891160785394578973059232144293637856176911970082630472323691284746401104919462162763633620254899967939317041112157721427847915633909967288682309555265267289507061846267343323611997042140388168264949715837327193319881800864118702004120908248679094417080386975743876165449200096961771081817658179323847354769381140445534030167559930131269532295837915662636915086602453390195408686816843779305373701704884213927488029283903553735543366256267058098388851828716205128333733157935916498509209111154576343605785160978347105271083334539810662557623814185579594127288121202655692172867454768246171125542270243900109402174084814437583850274304384524075768693153653200978619768973339581948866085976420409757055701254438357304056634407982266596856456886104699082017409747002593752215564022515530984524224009806295461942862978778065584015081147250244832360684081705930630426200905679436975967955774679460567569179571036635350345733545005461140362865299226733966646853706171919749475963621787236771340180313455897818003231307529688757931758993438604758387558575442139009340139864165974209966276051597747546403455688275023995429159240031580144436744521150833058280059258915959696048963320711305236117749955662003977934546077783443417853675503039118176878276059744867363765713636870192640657180173690617326766891484663656158269743830816152290629700206817319936132103949884643110297775831404265386030546824775897544853662279552269910166717803034173772992695728434194979369198319456166496294060800588948488649137753970006708074690249635113914438873119765124039132955487263633268781644260941649242653236718427623954443065888646380006550243612550980847800113791768129931202607514283241364623768879256157252140649228186024243997661638247008403946234456033877796837046434386170207125356944148803899292974955643782659079813232335739834388648320790894991253866047754404610397544514001849960622180384747193368470494825540051992809109788194184106360440681945331966664582186601283221398891904859367668291556586715677535867937230132976686046121437996048822146626816997086163235903022055046828925430283201946068037244450223792817676341699576891944054136640328624281327665851512070893432852542380399301065604736858604972953542891234685594681751824653123003504084339778860959660822022224857321398181313063969465960145771858209070398165000999176417053790431573429281485791796541759788657224090830066126505150847322196510123327799357127439908762189290688996993186827486963463619146052931735518319108814330870937829508333415157589806723031926131568257297132059800227007887502510839750343113286094116225136906319531192799103235099912042446556355174601432245598267322959228431389565360853226536403239552266012119698412356826866198626621556206228880950525796887699777979266309706103067411473923691937018466856688047959577099289868011330935086302025492863423729031630635535233672091208871176976170190821042957084233014056326037085753412826881389667081891747956549662623878579378361984640855110301890564182591102523502443497806448125403447165280982947395430761237741714601259976987315328278281169655222971593256549907872302662794801062303667247596051792105593083703807120383409761213295163472483186021402812824032917525215549271808358855460654265028176691596660387988262334757218256535630522676772622496019647805532574809193723232028611488499972033643358002868948980994464496225477188404898765909689711398401755945827252748599372372347423682160845720128654406756911823042507434080525707096678137692644510177670308933465130085645670848410624714740810375549570564631552416874503880333100782302082436898222533326094990008051513404464239333658523988977913333253768120015793576720542565404728960513910767989100240174791000116397099469315308337079260327278351547409805084654732679061050842407753400732418778030219960135936871896750149716673947913633224819409068930427460200949145162360024849078329855883120531183512562912514761115017200211734926106740166465018953073895340495884892044425746789752919376010005057849301459346876113160258538769647875997462503564578309971602218944937603084819895679572484158823402892383081653335128398957343252699571196636159655896997267123361622810549834215247140817093388743769893927722821825379322109641196738861810966948355314155111747294773094247481985363497532766311953195091633684396056754983236716802530063020465563403931499154552860017702209705516082434242752608925042434763285826756575558829200952632740167772425113958000844336268012601340458757746741782384762371682252690635051621698720805883134914576806060040235437434229841787014105005436176521759667297439497657902215232230151730183137902738201131928372376919393464213008004014885575581490684822755345095113789893917741378412593215252473168179871418202315649561092862331258398445963140979982359367726774298289178755209436068054759176660271910830288765472909076027752152664220531773686827743997162841425046920529129280438100237862052008452248274827444400559693384386453195456999626093000576452691748425536940434623017421561448719636491606824011117245160964532544880818478037444879801600940471060119795680449043224114234793356932432829223204308390450836718057665750080371330267719525729106442995002370662391916578325834504205185288722069576946582583495783955369601171938171608553756776303950074280663559017487807438328959704313149439772697478493845666769951198794176591221673924184089848001873048901167213586279497050892873329855603055256203114684696225351333429111901595052406162122665398068856340948607952532611477848663338879372767601607576887580684244399053716147115796314402738650102525061838305014851505057100038168998506709237270703380971057515301076460060419181399397425320736449239172634988600938822342703285321176227889129174488151856453300541524690320547135276267013684763761289677800512098524684444799111718178869555432735277303170292707740761101043648392867036420287758281928924859826699285370720203535209806074081869166003638086725467591223468077095608190758114389339220788336806000225397061092604243529543832754066992381328889600030662701214102573471757766003414436286328455232073543365591311718002574042825180464434673165460037194568266293560300159181286169196055155789768150796462993291301143660802974230938938094994930075521663346150242821101489863995770995004862054403796064736609126432938965277811149157720242400887067861792411081415161789721384391329314615280390701696875846481337232899433559205732371404814880702092034340015819587858101492024784961499985532225218630780365621005242738551558102829084945284981881018734593015398146314169063692557131607958753135891993015486875204020217171809601435236314410434046143927919707408501190086304703387401454619129311606322501529363319277946029125121615988585679878652724066813632417580014494702354771930059726709152852528680540460771930186264970942747295081270328337246736740074761875422169922142281774898271295711331822022878859058875612655915328978112478817635301294334972593941429014284693560817774733981160582543984856096963000562216293234907406483884172587000379423087094834278393850721563487346063094579324974591976743695639933003999737549141636875370043896851581010529577160768365853354149789628048890048309478008378985171117722183231772105555313237253161564986800815139304203891567944858555991692187889629011728092833064039882711020653636429178355939644361690423656610637362421304383941822010849041234434745371418273048990334944577172124109329019721750196127829902276843987694590444323440697884247972364160048805519431552047920044864003553428362643605979870815247173098453000823451986925997599769415793851354900897322307987394392797801115656597717418431748553430214486947848630733143816660865664365870532777773068915559490691052325961596245924974528017783803460844234105440536536978417013034812317275598774883179161888504125044836960023130948437655810745848754111168228856198660589498764670311172563657024232181526140796543989295211828845514137834598111490499512771937418771482972848535955991712140400396193421420230507532395478284970854253620201609361574418529925526563850935434645325508593167653642808588079668460323405309036206451121704632126314387566266294366921342584800976470029896328880509597790414286250535380635492489377991135943601672672153110848690422570896347341871795057699573758145558894114288137834185974377152816969322755051095499690170572504681041738749185132415847603500265919488699722585074814843768020022528786105386623001705668131861340560392607215994050370406948575971425627102707522594572924508665301583594403151025834957325847494940390235840604965101586901791718899322583683680999367982566328259955900903888802132871960747750946047888632735724270356755601568771214856166904553180748593602742039193212325658357925859621752938879510518007487861323523572918735907758143330493866433823460082536973173594827779385449869031948682691928413283973120428529656812765703213305119035130073810845304405574928090004572466185786179996510977273725276952654680306930796253496514675831575492500362379577168312336914297203543378867496957523665128476755994709264381673433470451844121463095817416513055632561731793611963707992825681478950640360447052012634282525851824723846514680681082765405115411718065796528671262141984608049154061764253410813245502837623399364926739561092621325113623634712130981470860681122387703403448268083060158758608138866489551407358967149725199522074004007706736071468529644350144811446595421147736874726603398100185046098198933792865141806275861229285624132647655035029196755692826431269211966676656742773667154077360603364589358528699372159991864934270905676061719030423936336976571371215036667004895480844596342115658631677334244814304618012417618858747559069098513345653615301019813989288024608308101539607706042752190327138611515647659174321793601362978077034630970956669843629831106310508809535725162512402044261464838682086583749708983273177899169165963657528849367092057760298015678020307641690803676112348139927370687305643199371601253918829048032976275928321759492037553017853692338176615452854618887460434641301088637904190696516316151261864843853309097612469294356629364512839626536890837448381284657186001954748862089213920505792708414063387254600170665863030807276313009772347629005498310856920976362765840158093921941057619792613274729506097440193366239745891754326590066482245976635656914137030331669739673774082156538844695525948184099711701095280390327178788887528024828789643854316645047585074656879841292793139342583897491152739852497413914550994113104567126463904133342096362653286040683640096841822859675116201653734541703753756419231785858991566243659787662212015553887207508550101565489396685742875870321657444240398529203222754445018162809745292975108526794726912830353133819884545246630792660262738492831395920881038045741558547616754558636529660487961603499192234113346828644687766451311057267548457343676283799768153334963400558182529140595677187450390682834714071046441218817231751851711852501639278304520804342334551425185066941387437518847268019451310579830114335726408394265886469197249602388792641937334401589303133197767515240710228235849623120470391645255456424710413315896907603120725890811776116286810442562447391260054813937364289642574460952052930495511782268101303390548015535783379173361777400967884125535201024869372106322938109753708430373725713145484775358841305707762584686467403165677430443721327749436855996756777751020448427823107299286580079370932222400719577494168316372743806068778438467781526132322032159825263623298384802946701181658098673336062691936535778765395349563990603625770929463554203537070318866929344882470561582537757293025404997038067370614685451500678284376866689422984223425762280031448296223916784628065948261052231097976893452512300301800385142349281922778256475022925048990492253272426571459819947647412881222405240012161661930213893374128289595096118252690183119061009357788889890220783083115289063485126041601453358905051793778957388160938243426998068374727766016521826067317553897298584609532318234512465102175080794239453689422178346364402339763214375235454676572843604499435275926688409185647671862039115527901221111315984510883309458951998624878447230489327628621523274742941158117026467927111417075577980068736491510390254785192309478198034739771505684660378180770228764449777661594585917071676371564182794765146948423952856339659563542893597132653778315312301707222470099413549566440635427866858023677356192974687685295156213234536314936253593095713171825882119766030525398413071103425868337440050344339215964988932394867129936362743847232824078220010383083192050230998207912543418006269470153868365019057885699592559937506470533321590009472166623763386238604313711297698141170719484266563748233324616418166595108317751166463414987407811813222789559568280847565011294470402625125346723901246088490297709083694730235720952097581692840724901986523888941962711191200798236026531537814426299734436116399801680992843023906468527679707661572109488827971588516274319767043916749056777806588026007306922015597197665080931385859836037090105631017795831373234963716868094069241573699865778607711339766713386197157714545617758813637507826355083880943985410334920016354264142760848355238117026790472111728964703155230397169103126871009357243124873580442369198836554688286260492983334191188901896348476684551917848873033034694785978720482214714054633694959267806613792024218199354723052725737583188202042085609609594010096430592428009781210494745644295976248415626016563510398160036725993788598997092327802655594023662383191785990891740771848423824867663453228046572590706252996348325699653885381753695020298413489326909834196282040082136749942724667097714104133172460786867026301905043921670005027581574642917522832872893012114110194454450888906026275046922388555627710075997699180401673902597863873157414373983477657266399295019559029096825184926522243504006153005002274814504233735145666059677101147795480085958426722104130050432349129973333366624259853159770197166565668009338405899879074771316167779613238137955337531454398888738054300709179257550960345215770262139690585521905884653106735859311640170847627992532702274161278748966530135891317286833461409630777346540106485770452877208322300192401227626021950444294765799832636108226285508124513691652923176333032621613675134938656670493600063230252976751677878515489824276128948829980931085378386267627890411954767410808815586836461574915187138083685020621733040821344162924340679996105422456146319218492645911832991064887275419763528736648468468467340533965582470041025866525410234241150731145345291845337099001013948628044038759761737994582074099220023948633875514156246911888807509173720679156174375052619468833158705087804971256278470596741820767336343408597395336082747278896713812781014319779067344792360263854556836669608932368054362935955090320744050749559426467394737506089186976535840945551546600242876821390388385336097382543213833152517011868072215946935522040837161829190309350857069870410162924776310851627605562728329732311636391420810639192085460227821490349734879306194846902957721952991303847022957453257813102110954972635090238653939863803634335580758340103323207530859050493712803923600568451391578577388909944173203301664938410218766796325323256992270251983467930181459243555751189161531398920977729597945583024086345538162406568449713444992733172989313966131985398841000213383126027847054975294914473955293745073917121837494354056975468237379576579213507035059488097057562031449066583352477458827106868515416086881624913997957919285674451261497566924451691035731888400056543561784894432227218964692443201718171459374053388126574996152681760933248681574631807321870806594283832734227888690702644673071339204603717430276311985358246939511407542152868823196359527903438167378584047678196761538849221300568625498786439547249517608201990174331238088461523780417552347973682627168119909029704503925888327964971916402597658016074152124172369321076808482047333681526491710224361827361808263981491699032935985433675551860006181757124351282940929916916350451858739881453933595829164008260811859648030641964382668090491838010300377773836235535083026005834618951204353049754998537936254264838869934525819393757047216985378328499888150438624406099493831303240785872948728679253481964851056422583273112478433996330595327198045397648842335293395076831427030476636278083784733894549319395069192533887093904972227385566598663142630166385424339122455360323746784975263137346110074493069352268443916613008867639964184407167969622085674604767209019056868904331931400977819401558863270955995534572500675195702228964617811105471133096846967537147952763597481100687759131861291155592214475360264494148378123710588149351646319152929272464076344756393583929535000690097590687565512307892304268978172840471534275994653804622424894716612807979296541513496035647570006000551828289346553442611510205927464204560374249480025894949043227609416594337283141818298535608509104990014408695641579609321424377988686529334853508161422018807346910584551709538882164544462452033057909701112559555996241227622023193993867712866748527445632037433006976606725257263926303752634863471337293200713156400539488809083899830994611847860121734514920246697587144053529412946238325733843107615861796706879296999333294177543446907470153684841074298328091587705662729679290389102296418833946226429519627955709153286446710158710598340554793764746282302816088132484815004801161990773198166457891151984639100709766652942011076062789759383230464036050172443070839920239862879387177104058861651014691048257070257762273201362136978019681202869793545773610926580770281317789808637029639293478407519226331868911047834809933857984062488566280095090646684651320473234377965800388404967334902973886013968368055742678785426822454477559223018109494404821496775040325015546310911841945906098879993451771831928902569492250640809184332862137448610038310058826329477039561616106884008093752510272663372405617634510590146122599824911883966032104157918662608260071934241390350129265573791399766888230584034024189989162830405102278505676725398349322867500751530419033714909798119713643381377768497443207020126863320157700360610641256788135117699757164457160429788345865698422438711738901878350679342751184283764794926670865222738645514431736754947112768386392188397471372898722058992863998199047244250960660680343562033786144823529918907658835120152798320746425392198983637141748970434682529078379430767299710521057507121225506838825862465569140940041345963568814310529796340904568696611992325911871162717921972120008810014507391216256482488002129929898536092993736786684154581487125543917369626381338786154434818025480455461557774288651825103573826577262280066694980062974034333917171901408896285616438616839167985258576675596349148483495795621499571633646073172271552721678179686530909045263198856076195142402695558963948987715347607868085770483811890133408473160266103150952134312168520505680804061095487375188153064831179197182288708279682960838024802903762002657641300109831264675974856174641709387882077142466517884487002227062191419812034285355292380226363243792773319351541022387969271077556653318573853434084769508710257033647399537243863368854793779681908236305910543281806849743889261048691994547201980511711623188698839132870670167141002240644852302496810168656845229627720163892202178431116581754847692567183988780655730787009222978893456375608076576358456018436889424021838592884671736640105456556636006716857636296383131946266451646600309991537631872155845939962760647101315330891355978945333125473310433102459831698686838037543318960073071160150191195207386426328501039569777770338481495595644400597435688027664289088352917868952720208286400290640584386141205365892734509248737260735891525930117101244634822536579042551332684021826500759422863702220655177813064377143697907929130102746524233370592664476577599052692771053760092551805732590993179021332748289066730981688380040866278386420691766335237261830410606015923775046341564558361664800221924342477468902368678297468228149757458385683900766114515256178116327570832076537404176406655873879352753422234581090479074508025482745380936562122117504386092618715786846382145916842458256745598153230257199549485487942423263846235329883112027432120535269446580790243433518270061963589070543595452248675982495178839857286536008407277926345069192662847230545108555741390215241358047451357819777650095544184268601015181302890956858079441401910450315652397093355262184428610657080206778872691207808595586327219416757213781177581445747879815215660841801041114301014008222684127763576470654377850027791842869569594375750522490258231221662964775678329549014255098770099730017668058374702106397200073059611095757933445293220082695743253611827599094306960310010042777362225844591007838886333986859022375038956982251482242036246042285071852368168964754550961118890534218605277119113527452971843248390139160790081249729927703487142864219611809926816813919153690764207772134861986377653622681611783675068577230376837131995409051482081308242597011350660252969551036814065902285938782330467448366778868709071677172166298947790596860909134246768602532068522447182469021096296538064012649704022198429784311756063466678066383081428464583025762334971531605206645127530940209369076138957416590462388956920843123853561413297113054608166918670861585160597880448118143770496767902033903796351170845871595628938758061668313000274598340510004956442541396231774253023793841106803394389065137807156414075545435201396995950411349170020639118986885447360666055258839124312637654994534888831326574372877895993887812467426905856051204470758963195765891077344665584323100391333704806973420329359572299985839650303731220393969822970217878898082728815802988585809990327555549774554318573538206395511365712097507298326933226474564492408491488904699714143255331404166840216085854706037778606262878690576606091373968903979745688508485645479398717361626091731820355042597665986674012068383522394519843085746043474027549339088353678542333918477871674707918532851952202549181240957305014710410751548266055276219716159421755327874111762570319361571713824479893837211589108074778761756872688914439463548354122666513441857081931244057130757001175100302999918080963547273462762199766745238024409087920893205955192854369630213229587586317567807043902914665170632346359542756757860145169823811639224834850985393413631910603836626234366331747579463776675312383346005822796334422429797927779562470810380934185922658555154135728141521821509872646883498410031241180155606153583054391011718967682306037521741963891206251562333525538633167734500383648212846942523354622009769421898920999749855386421135847882872574921861064276808653830924240856652876542452443300645771226898407501649556105845531068824962015832156689852025336626711151914587158138523791532257651879363349598118991813583141180086501870101017102434833186977884595322829596236639082509339901439567146635310661426999089620913972629121670469117698653390660038568186098385408207810850254724858693444384999632011814867171044535507057832037452304322026892333861507022659109997297806464877409595076652928314633561994476815464970920097428558267645061686579958655702483438947749093317491969716667495666855264835869784448732363312077756230446864961940540443190439557018498124666284258130179279619601242479511720187043794949203729743966293044980170366974401500482264236896981699378120600743035222384746313499722402166328265325725857171913727948058548227000226881648487665089084180869007515388061769284303150616501843519948201655213360677675991083023113815391874436547889524611145325994302832345896169490760555591387323885210012781970208869747782275624960300029792720266915472945918250188128492430602711762670393941475528358213597941671392618183900196715878301555794358647643012538545181858271145571581289223098716108263350178719136514065634469141510402068963646695993133289924367119095281490861843644094594644245207732275920353295347191117962436037892468127601502376721832517713239034404540523109098139655896818376184422341914067553590494568415641083568172627975936162639704292037113781093588063384464792659015929378765848177336483459640540676545827672804891361285571239216002602640806865930471443553341888942428943527183108796891880613064401794085460915688348892441123828907015655093639070531529143478672062181854911207651946224436014825175466794896579331513190254131959784610185734117749076789710242975166244397289080975767652803204400332265504127193037696726572724762548746171744031066763038763598260878666570244343741951386140459726543252173597655559645531024714493645214962375763039668671621031045855235887676638018343110819266787634498173250959895002755313720574845126027026007871482984683537944928475641650659360524254317969540013054562182710138532113668498446840750617998531522262099854603246450902749047699229847222366894014406991203337850385879404928967854830241682742015195726923086290219805046039131879644332292587293314872034295836810301362693767929569666633077186858077890297848845771876781001633608929451609902764301755585393997317579785298943546314265153979908611147098604667111067918789732003811832833288926960073066235871708676166844621008759784437055313276399340133019479172914770835496935978918601512341668580283324765617426004597306548874255529083060007505841604223381238516272873858471512791938534276639450098794525180489323698569846990525844500752784507158138335740951214602501040210432278364723001998178100650964035321482806936400622577439957001031066424211989029488575546583733644050225773297277839049206212810212553188504461440984774415656287299385760439229450761333897564175731427237764151322704055827098014198440322369340919451557289939671423943957074071924620106459404277451638086027480407191102021239716134391666717877814417685441997315378683991344849224260409643980355831607710798375704596596720608638136383265573839057183867849740602222965819442244547466511089605466086790450445942295353031736080337234247294888825141157499288104934300517989878378751886544368021797942383036295164700201118790928431964464117315105426055488250673540473163792748231817737792183057533493989662225745623540290756290601219548951287627499929996099884137035158399945146633232705240227333683208983751895253884475864667438390176799966412050877080919047587204577205722356009881407450659561910579486198013603250614932261719470425952986534782703606338199545224540954724294183145453086200401229491250621884268532400411834065327871253813664532329854280487448963590340415922336726263792493992763734119639361138137292181121932321992163171414754437054505430957840490833351241161378708460043980463861662398818190015121422180972347107706046240491992383011275832828285296124653967354408042319613592740668905561202307655644778413982004589179078739643515137853612557916184089522018861107570674039847372028293978959473544148710653450928510657800679452903957156445739519417655643110703659916080792607484041271711427378645914275567800974156144255945962248155227191120448312627887217949246694091395358000066078575674815945970132769037407418297104696971218154660803934130181077430448311817077439579080982228414643144074177805489506052471274628922738984780500360547219833446596917586164430254552245840369064048047499687234032849335714926650532271006679566085299685380649856183088142540234155426268318980976814799323765815918547755158013908096876168046398116879375868157477483900361038796876468246638134630736391588050480217457086051443579471311828015946749711596628945535155053349326692550643243227080992226783115861463741467526279647218560724115394770378802149663140110787961782234061865248987054989218491842719175457249789926173602958722959403296422585275575034464845414693012362407023664003582996967481405878302497287269009801361369832973659892990289735086089286088894343745296670701294412964113523969298945623462616251633866600520426176187012888368858251351905525573515741106239582542408890345679298270597269564662786364657584772547156491235913623804876393619257507089231396510451397253611135515712340726666960540809078831906925473095417487780960491812185884127047116526305603714666314843652727833496613970160048187952303135483911272727456526001746486205567917735062515489718721979432767625624042165582813508450689459469295062346322232974073719783727052947378097124569817713100378931432622278112867945957599139298897893264579427947028383178009118335808176267642172342858434243064717110055774584026122313547921306180910851844630289234807883498297062218848172361721365207789281910498355766125843677034011949534276086502934129638525918346731750974795497968501385481435014278964057556305714842527624262432832795583000112036871357270576749843104122242469907098801059853390690178377594146382062794722679307119003510779804624427453200980647252582527256291700342462398993736751001404686169659678308126287897345993363414498224159195125500310425095499565770348429608750443306102379983425337653797945671369881641879624119824226570912377645308448915007095897854599096594253351716871737429435079017708663808880189551673676519837500485171274721116727221806703974177579744885750888997295492442009874276456117789351955555672027303908873016475787886464485786416010165687856335283019535022419848099241532030287428031402452435648185163683813837379329095095811516269694660391824220348532517105485329246414132639093950024261691488974113483003289062876415889221060992328819666433545015917983430873356791384423900757923253670972396854823101017868445649292226302756569744529943495170212638841258674474241360995218097748122519023039574844623033996975172327657938315606346609284306465082013042482814694351593424840227814708272839880167742373268154210477693610291133471956966673829615500417829683107462172622932663292472444300700652585979335774313223819345830725059489413753728531501386826500886084996141041353074798647775851952261113220574606931033268826059042115544796588011297789003077925825281349187733944145417144715507482474911940442069104724557863284045192685779900225289361267867551256039951508502502593060053373555502992727731858354681223648336864109451658503551984592987504130070837067490884458577138971202012313044079045912276715667261425363957495881276093873878965053759063207999939139750455593351043720579108898549336482507568021991596815256151247600870722984248567858860782201675330439711276336567366169367226237550637767840051360940502333164535423044587131665413132385321806981498957223633780749103533154373943698024946734037418233081504656278746698636384671887790265902702221118134337391423763071909343604735046113182373608265936520161874059393336157836828908139283738139200664424981485285660672580816804355087900411280840459021907136008692219223484720138434923349731626192271869061495831126721084027316572866890916904329224058386456910927651901673428571018273837659633882556999829499019699391052254610515957955906575777421380033757187264458068728676495537100065353010144319713545122889086397163733287253955159212431554096282710631897040519136399806258636669690526326053982674188055799678130693841709451623020758989689761421543849033234767433950687516118254113378174882060909786225163498407503396041884529284162122807392981936493227358037784295714538019133673829590523343715391425019301722198556629826589755723021959450879433415457527474811641907026866761216907774264463244756534333001101471045627764559246192057644559521498085803435264754434759829793212676171326668732715667643058754081197391626695783290457227770493960580238829329485331086994652865735575862979279821356534683257273332476022075906047289305089170064595796725382140177894728706420106665218776089957542589810041117450170206415903956959333740870136925173109440146820806666778773652353240032087094027982494018822011278579285274953682547502301616818456068011426361550044139228401654352880323406163550098812914181088359563693273953979429533990987790114801659986813692681616826257611493286854481239664848717661405779314475150402442093675876549926816790334303951148346736110583127626195868460997143016569436707634645528584605172137283691514951489219345220404205404460058896336663641432894693329813074791796389010359434281491459453443564098042656482769649820558063937299984768784729734557799674763097734557758767230725770367786043834494280495309676128954008208761008316709672425857549059313687334697088248700097348437784698726840892876082549317768710445880737645451354078204107596835039316593645757569405509840231101208423269783614200678422870740727916545746121511350905608942026666273947377754550486045542672052745651360645188261304365049365803117650263967924725206069973106825484390988523255561362408407569748789463831136258067533707068754508174293361286404099659608418976590875991718113378081641116917542189169444115777868796906189071538629467966386040739878207910701980887995311816889667703549748729624704587066486346728111061026874404426463556835905614958986280149884437301048172551622991404572773690399217204885613666224589886715746969627061392878398128588761238873073708269667372251445465683126961916112891517252027785413086484163012380895177274548717576056825070986007960421595727149890641073489757498505760424330769135236078522255862070837902833972596388473690735567271127896580594321522361479931323311592254521475040296492037198740423809054363583447095724393333063705869919850583807846047854118904216104330447660436166564725373037113456172059457791054027355212206173809306660283621058678158058901312835078150346121937030882779411730329229890303347362632976902237390146107319509174623163191126406728637553935134184729034404879192515482000939043472364409672607640003892620998137518285819233149483362117922721276281490869196302814972222970250985041728542622867879229785488657672628577287928394760393893038262465107590517133748989045852200844800366391468070582307635200043340796141925309254294704860808883667217722497611906519039064321387490324279899524148931995537594850599117280995253616046579781478234535416024144785612548995683085040363947728177238844310188783929994945214452060104548510556329582595840858749859707819900912734539768490737802592701107060234960197322945213542784429562715504368731316955871525737850519906725157148541722081197788475675097681348702732434609230657906049778239113163152145717948617885569437650873804235213714949697479875718366234398176636888035764436897456324036911723850321430788950113421188383425654292444292289329774398889805765613438989601602942220573998396091173024523174365956444846028791810599709780879732699795199286134359517959522747030441545892778526194288600977737871079110149420641813607808848147806386771225676379104232854497951582045501271183975562514295343491783029238433581717171886975552767989759459463756722634137811778480254541767589434068765232514448729714612742835612401860942444535484852182338732638593224521925375016183927260716269027425013907356213956778401746950264860944041690822740173989665021610384039708178310411121785762448272791246115111826666761576787960098298100273411057399025702314345488066163920353514743061465787042703670190695496410494691666837162386943246869875530345071729909419946149958013475215243884685268452904578409820913282632325077774288316774134477629396703992793360811429104610535142205306704241269521464400899452989491378962429175601033134340404443215651663115096719490874008801440550335684163976108692298260136520466449023190722742104300085587015688972727755476112018219368190400990000989266085787722266643241487369499903879905632603002329288242010066558279563729662795710100956875171779170880947713474202889674543888036876606873321523779873628010401111408790803582896707237857388738983910098691091409851938266221140349757071982051294711936907942039868757250070462874156609882913563517063186452968249836768694421257153819377372208630384766128846600358582944422655599163255686599863327427941198190073703556565028748883518290801259761774806411199894087088089408482091386048456841824680174361529642695158168183014405903527255404652196537979727849323247745686370042815781313683610668110981675615913082516751394100138756818297169262973667885310713004605132082728687218580193019707681056229272542757575207282359306719753936248291065048640644767225866716464677182176970365589537833416312577285763544807001690711528663847999034417076775805047350754439121705378883872084137919372747153964645346086505055552849755230213261128882744299252863419451543514716764231436732898992575208058928953584783577423771501477724565724513128862678990677082731692427434720317305076635251158122422798552388292623963880102404400447211285936235442983877352303957256809216244452235989612298350154775816171622879951861905724333102739442703948680117583162523696368119264138277376145776830529260564130118753398501575556936710640131249101247448975745239499869859678743656135080402554940452543215263507638869440594176929996768285995945474259155700296074963113084291582240301258248627366846559081466788756868197626273735228900048347063842704792524057077918012471164540693834294174675508523877093815543246222143517266694895843743750622167338489170962102608595771944512336599738008095934221481728914045267829810557568561757622018263805990520327497191298081588311460030648003277475520479511978575423347847305262149512378781288219016826842942052604433468139554969496178510803502930877868587925947541921841878255893010221052374438952488961133448166763188848208177915289439289502700344215641810760271458025541831659429618565543526833729510692282904847447293913743509073322646818024001775058402090495100088527351807296208597370367508808624621659192674040379218619986256352180209697779597685060814803758776693853712362507976940645812534885900362774434448834291480790719741314047739736679566403417303979884423906189194403257076776680738856239939822834658234612461442608146789109871914520425474932229466319116994285042333021757521666236916620368283490755412885325615592361190793920192717406468336144205082414117257880701038120979294920741934216174548131205870273412293371813390309963074938250818361098435888469257508138803024138596579206191114946733575188425813095146390126188160321801428984797124743672538728642097832891279092435594409043096788834906760464537704686984914416396547967231564541147630484070022509852202716847967309232464285021418971238193066341808329213230916229430107398394411601275825385477943590683081423654442270315944843506145520698657952900243879877950217854067834109876884499758588690125425400752675814843990547678181601760758582441122740037121871392925904082176384267196352901025175035972288926891124333986445941878107300354216171991463168005219870883112634852571029555001966722103927190491065027360212067938096185228134805447723222338728499090613481091707372714914928984562717769379369939166542333203463495900427133218855528731476409676452676860747997081538873238856081751547186275143656480770297995717056007779451544422780049778731432631768304442232209417826586795771204264786667716284426274739804135867706656645054790636359557455943928185897429154905090304262553260630899577663652199413170374050667946823498717436291707521926648488216713490047337214523488739626440850612860207047108880895183330779219062593326183819700874371676898331209675310234461984012009954380911936452363390215366355585923712994652501643855209188712193023456611235782119221589430257891718080097266741473213797777067399108796332688829232956882734996107492296062694599319032112030576517156633321657104894088981461141593042784933137585393688389830686449895836802567599842999301406872017392276854551127715326869586238438776623758016576702362470563583523877147876422716522636565187475715317982213251194347160051164063394139697463888455283247627515792517815411776568074070914992491023682454907655122935510912660438960106128231304379286758631973984910575782197716746186134173009475615473584332312568954023695790125191500823880365016948008750019868409045275686260157349250768680126767100353999997706911540940193821185147041082978542507595562968932948749750833865325468281497694486656356536796870772859014020080418619914467350844738207665974775968411817439499832455091192498196093020821945362006750317272884424294979437740763959038590766106134597549112786017419154714093838990009059387836923611667278672436250717383446823231785799877388090998331598553648613237995935080433812612620050329990273810984966194964880140018534694031640799759571245290740823998373252351670989034534870521568105386793215190552539117538007276356564214892055401814510169787792474333378064659437251781339474694123100924692414285775662058623998648843420432953426004890544498632039701709308173489931199376203947497426992564549437717710412851123839689089699462297299734416839632794657641431587131293788364145526717419234062926406830619415560876818124342058235672885028033802824812209253018786167137156621079542625805714464474863734635714191979921593559548925521373963386732846710297467592396382362022693954670710989748493000804486316170985337491523833463842470091083320033074342946701711315094405014736349418323158767407070969553392559069937324329267118069621315661663988785816709280639796900136688699458537649213999507845611619953696801856282845664834513844489455734990742591456043410055954976132544779113708872466804647632188725604160410568073708490610468904037459353572852945361633476600238822274957205629598346870585523977408338424463712036892005722995358605799260248727951388665654318522610685725602565284274566365062629140946257717824173668859667054860689422146149032295302876490829430008042848786280568547267425972284981169563814773883782892347673424357893853789849373378742777567752151137439337054935107369389756794321869152089214789646095969982609052336802259992748467709200520426128240796190071009086882127698745183341868465353220675217532350482721124390621679471488335493788040989685784975033489436594213436499221308579248498826862930418652352335733188238242616383248623318787857973016227833174640691090979599590244563074706464112423433670875841600312439329105160635999572264664423640456272334225002558624432611682234410767026962406973683046474022000611337462126736509979558780123059674516022764182404516545763877759990112706357859721733328003972103414414370053294743419565034871049694253332703139248532910490057563367772469813855534270868573020254230850063234253928936399898448972549811934421118772533537813320141943491902744261236779121154058456846403856011856694794388575663766970940796705826447060984182975192877412122716754822913881564444922419988570049074082544639393084548988242238510656330522769428355615372310420013420579913470759592167284270552318002911808622488797416940002911105376827366146227284127516773212052970355883343457596796448946346907797680202321538921804701494652441108600796188714239310159102263002828184578148616452677532700099324339504174867602403250272169711516993210620196513878114832297436783134232820914060644722114229227294651707048681052443816448125420321892689866770287014075544556585028470670959066515482304349600033017672565198786349388911412828527542756299671216554930244906446095342951305742861293916187599548228144577755079920483430222582745116033169482920405997130634567793922501389420055220659135735256524497795687466813005539164899593518544871301194729449051396502280945956431013529117618348927493196859828354229678043158484544796804530402126947316629481358599453253171274486965261988037037937071869774773588324860829147384933773188971913386235114070076045926581494586013933059327091328395577231631715130667402067567117987775361069837683370434742802177891848083587557091524547665200573735468632976592822235619249516847505884533923680943972584802960806925706305732858365052265402075765813455668136892024905802974505270115545681628564383039320429928531926164343472335877111565310098998913892405357489775508043649959406755202243269205130598968864066903224206856823287101636559772408762913083493087196490662697095570347497249829090895303649985028373741631101539573297714731245424187139789378204938495387495993323756141221449246989565481742540118968751924606997052404405831187314879422852064222338528563929289281418148686823149404879245974770703385570493670390409211259377512784838688603842113779858715664205531736552579709532551424736875856441514107522689927269219894319937757506343010625652818424849318981677270156940439428136301938502245587851440981551191748886448259393279798641728376032878871298872650910977961063634257558436244899412905927630887095161938884973668166343854968830884759718900529584190877613222273161148830937972221994206475521412814166634511278714581201437628439777809368824708128896283012384058636480424467222587712612403016541526752174357325479353813429125119883607329653654835911798711603160834027940022513532812143913719179461501489885161614597197344373131399038008420746018349435736992953664626392123742900178569887909714237159346554672439539130477080439560742635082744819521198652440100186520652444375214502868141341332741649208121086375692798118636784912935495521913908314775990184913266862010972310409295411059347728989976626928397986262618725625901475874868896762815995822737935881775791562071323742492901494049334829665214078442999715225245957469035943457570866661377354703281037180703177772590611523605317678541718598885369779093254904215239691571520031947329276260955593195486110910423024104747643888477871936762034732006836084774465369393725165317773003323874376646146614697300654829815228280639654291306151253665753019206936330336856479232376305980810841083759495488685841017428996277331222830308307714811479233955803213486330325432491358765610757070933167891824677772339952211875023976935270543607713288767868949767146606263014079807051222230008828244677012299446229505346722814856434468287262801077981131205046840051680053618389358533733202454461140560376702607062524630909692090606899020398082026440342119660418743345499858255954420171922525188330816455059854801366909983351142707780017026792871212313791397593143297029424586654290824107589377547345998367345784657511486122737285921278134309696183694949687501600433581360872922949337819902443447388367200838940586702989526717536167315520019580432567584912764915656657071744944223082651356965779428112640540564021116772402089558443844208708187845016749226817468182259067573695036647107883695818673649919165244046860373239811031626851404038777514433643478896615257867864109104743395661891102249547980112306651346370512448112502665609112098453448834673884002280707359125460326676143828441335037780951173399662718589689911482682740950566363011814092565190574715896438630532580981124334026542341377624713240313855288476254308794650442287290034676907416081011367964256616885629778922430591837721841995750877461817992350640633341979423678023231982695778151301537493524696055363704471291029009276569174853080901496226249516171209242985523941435334230664282915061777257609011240020048361028383199626750749829478047602355387195269840097202679373104640774092894839047289397559037849921716779902323735694990755068421188037614282871311082624457704351530961308135862280488709719203406114075670547709366313708716155655808583675204547572532974424940686942205837720466624759990406166037641345086169558488602976050506334911535425259824699102491845221896399607470656261299081054051726695864997905173345539847622447333140158487672424356627771772438840042207084522972691510779989343101248614352229996853817938625173244426931270501954556746874707404091125738553770640556284828466461996293705170004288016147089952737142058867491606853467489051313018096182277135808532679584050403510426015002750152329947773333386100486306969814329006888375943249769744208508234232502011749897384080848119414864499091889035741184682988609877159669494706079256978248363054881831968342246350914658650013900186836324322454039579570462237837953477083604943823680259810281490153980964729751549749751743125947123135593231977933840329591058175370548962053472055860316466198760618766324332209577482921869174644855323164284984788606439810531228868122173138350179075331014008565023892762328267272601375682924978393998629251034411034900895053514921614021118516377550393438006343226336696037050193298552884101902409589000527158562521840847671635919074378506724955773151769969102310885440559874429028784821175075121558926166990399214724822010945182593699719832228792132919655220125082921859225102952658375264736914646374659922795190457011486832783468928203271904219439808400595439370627414861159427172684680887062263363304490392070723296873693053067354201054185899386544769216107344469435542400371357350407166501622180120326288499636896853940452286083873475272895324561467223281246522131657688378793817098834706442794467745240426593737005208641192929338800839721147448881711047245358389614120859877902236621051046050242041811945261327438920335733605346452452971237148772641898756850588381865152920433432174596306155374744852168097069792363733539422747158254339613034076372024529044409123027295221273698421803414561721712559356553986306905033100044540238435938645966481559593567992603387565295090975744642083211557811217433210943078847818861211642001576838579463185857594660535549756902924467320339735386565032940314184642345631087225782880502195077350758138048973722020698972294579544433587845040021089050443535110437759102328193809997068560470669138164066422512698450845099260890290472832092591338240954340403521382844190038106904863195577393728350664016758086812116145314097555007789125837630631861032386722891987098286569480831325599939757829228982792815884245526536451067233082939040832963514920234122634056524984546240723015983985573179525404029335446031817090718322480265129782418775661066474524283891749462595072049894331843478912780078185516389123511399846555799283092598377316458884811434575972366399896049244883924014605349975946437377741680876281579168281913960539180629606957430931326027097661170013727741261439305672796806620660598306577315972035833278591330168038974795143482099768177409532375650747075933706998356491213418486066439418047078542754327271402281882998171075389597628127757200775745469971272633099788610481576966253200378117399415494719598379428229676677734839219457634706300691764408474610840762182606248324255337674759012959432428189996118733044551656400774238004039043348633327211632315856462749480973907920507932482750832055959859230264649574652823772462988904967237622797654008786601583803646258650227605684821514759424684777500870277621633899859365273215848374146810935425223744517681210898781951429637776008291143955290815189627624720803459838923070202216279629189441713104609644728452420818541743617909682206515185295670863268206832964932068695972457985398872210005169628596834318131846411890809984851404080850481425483298241656428034647695545134229907263698268862771138440814829800748783045940166742128549066146842309807907190181624907678302103261212614667627096337132272755737269790457976552256949102629276957655925590296522050648239625822846374532016666312578470933998805251992386956853055433626809907259630310180141801576973357584995442571021101493962675629596077994464054012115755816086024588295060960865011315863160421400812754795308155887503736496198434094759968797667367098423210890468380112501379282789597028831912838602314573189082078053349789357757401596457850520589594430729508698969257281123308976431857759321350390302230947292413373873213858017306139676779458037751207792088709524979110794617870173018167398166007685670653668950906220148050612218456274205429306851418887982163104982231261750172563066897598987260370296442728332582129230061112502629228973502371330513801699278824873556454923890266635291407418285891746959915625068028481296221177397913002289828631071951642543367088337194835223330951941731815281809802605012912223450526886589801723663684977537835172337263494795086712609526546726827398560305537027410320316406987258188536235981250260082198848630593780980409528457747293680516550201310237520808266031189569189777527296408678854627657962446132994955015990632928218533995659696644633103359972038034571508726586084737806633670375628085430972658158026076086349839379906615416163927439536206727271613895638682033814465969716336174008537023905191254651962591604898388583194110905567948633083672997945983137061431147230367911260285791681354153499817622625319276704776734311585264139751530025244011933868430519792672820100314711164610733836452981555332266042179220342186725802855818085189672324594137424545118629580381083292884642365835464673083112744654304812651693580065605996910958328180406525609929290974088296248921890483585666049214496989537644974694046556076945974312107303710296161035934694005548648484032507427024898186004769623002897507947632636973546508730202524856149056769464598167771013977389646310708453341449875846231364388474126452141602606934645296549647390401313505643414214695012446611579773818975166181896024838530315139419854572912073354175737735130566708795055874401165284885264672875189698825746002729751095802018119939353120384795151604386265598429388942035240408879222189003951091760509669597244875018572271800606755278753492695555666424000881795573993735054035437332251628025849166291591933403946811991989895431865129509505968362902498963339980378258576047701494168230676889337969862277748938166950188068951964074760802775253722904497656517234617485982505694140193100282108556918943913741599451541302857184482894550134593661583005761693927515309330766895277057441355860727480609325650166488674059408285302864314745028983353806431433935525178803415120771473074531112200622487555196276537461332519931526691785013596620986292130833517777063172923258296259557432351547912544540520139510009802205052069331553779811209224314267368681411358569715640638046414236698632664883851474874047984501549760677200743459595639130816969605133579531602892424715850528422773088705426583759282508806686492048717119314429395124548784737485613965882805262709441484510133963721072043980785957830510528627415364149421965269442797574888371368651745280478194556497664669893818540804150898204818041441766183191050281574426875474853606969262537034909657949869398782163731444464618125498224306217405071940608317664497619051598927802827922656721836791553155828898349563546560860222270388409700114091507233585232486253015980970436469429022516896791632084054933136210427848968462000719876240229107717713144109466804737102876451537103169958518772729903185077078410468195133578782445163921257589109401471885801426885490028909121914102038193325169637831729279828454753607358484431265311493054947833577050516920757278043213041827731764715350435112631094537658242577120996357720839589976063384610021382196477586087290760794531706768569771995118635512462165233597288599903816867886184806746166805616737292455491470464586736305964165995120790399524569050342028056906054611091596009225142330211371608676610326633712588334220183843358067680366492058244272982209986095728351407977733740742524342694554821025430122602941103737540110234307781091248717549755562924326427926002503291898259432542569464679265468933696094687502161382222598646396113991824097131774347349515341827702202825157643178003171226651719158773017821099186561413562716521835156250559794361032240826644396302511203818832378417202661161700314514534045848456474625122292740409999466551538524702331623655995649827476474760048263620279762998921146701570570752097777021565191369219419976291787585328449033873216723875009708287071406977213825560426999735535237105765610170097914090961063613692300770982451625276550774561978774244364975822918067980945094053194115970135227208800205471624763871697202685450593041460006034329937058157280810490942255206091900054860934560892872764945649457304273003441434855729348269429895675155715492938528729470820829358914814395317023483325692179612353390261795873889688355376335050662567734309426847535595031294837518553360137108909456191189990764031706809883858117755299739515825701437619449444995783412506690680857901983633710381460137136137970856596976730406158342630503096506339019941106830561035480881664699039784946806096454756724846573270765828624836922763177318495167312260000136405659124248550759295768626945603354841270387775585325368956391880205555338810167926736989661217849876297269017222249533264703688305630521273940458792607439670073070151164261428931736399065585173833610080864536421797788760105871834700481248538331727517513978145112118183839022279236643483138575002439975677000117418447268980369622204151843073774634680832813056870680729820366807580129755756024051523671168177291530416296111903851883694023140718413781990482899490776653369880858452833776115901396428207683344232555912768188565140700905832695504366356174823831564765681378830711776355636202442552230480657679386135504559381446308879453757728698754796317389488635277488785355051983433639430097739936881849905380755843571083168742607055510504264676702319379141257560611808068658690554097057605327625454168783488255890265097234344233002473882655089133639485562591419234759984601902937580773940745130125739101338445873501595889098853149878013151466077400019230238602280346015488639622361356003818274538363201290465565262563821630259384185008023028340076968856157136484240546497686031108914871830280734610154404404689308349492222364829735153731100942635290236305874775578536556189650839855490784650419802197723494396765870362036639089869819083564413728686329238105412803420205383581086038772771395766166371049385847160647218583873028979786271061909685389568275938228646010851540948320254375427616312163423861301920164169791931079257393007353578360881091690949235682911057053778093750474159269051906666408014825642982615991239848689476927187370873310314566378333288746010924203393608394996513532975528627748977332509086649279021989339343285820973215567703503876163522480633201596469981746867357606668905441126376006200271054389948518120242931948098791906810264344053145258491304618930867481179666603742910904878211985272179254721889438662419731743793529030774008996899272901288197953126062178648606958415390802149503669871630576197327141004966604853108399583749862969857365860756585138431384769758158451444726090057858274442046415458369927609072426886346352773616581044583708013025745297054414596096773963207834655513811919120862126052415779330648928054120744980616813923913634398942569719978942982067107492305396415181944014321454252078941442144884367799284853917006725646850225935017192029463872444701674663421502614118207052482038139737713204064079007968121518936549155496991247765698752991303452402380211809158066498159595742381519841574253349715483783987517446398886852050948218197379057155937404437432490895187614375164366922265897778609600782571642985383602582797229812850149230137568035108107454911164999085993294291402744665056993512288171941910785919522021869050146223781611784003698445560237070006451848242430244675817280326647332425341120918766130787964870214309642195499243093102174329246103602261655214837300223568356838034594626242899533547950398781332312965113891762866126951638838265694983779914613310062440401494803989506618577060986348990220435119481789236407272949573569217918972829127642352116476283186693927044314078708481348317496376715416810470614813692382169854657057511010521123714058054600027526530467427588088312282601757099732958532793088600577886026732206958198553459211575208022260775612211778397423115303286679996838687655320612831752353310517444139454831321849598641610991896066311177960177765080150620332352847674560642187421395842279403360506323255349763889657810955620326772389273368564304753356196869134556685878305233741932991899083293293481224411434269736955064010501215536749538106857760810988055383378699768937523838450823105215160495308274657459912999478543882454509935393868449777175765051625597021307462599958204310645086285276018919914330763538046361088827218161932559157521736187168167259565390046177427836094152013280613294761077243927458043363744714447622421584084788696310303921173561964802067868275766448104855224878735080228677837980384417802097871413980244164480451819939838112414090290801976940275853099481302261546921853757910426232596855740670005574752566312052386664142880141619886413788466868565160931325889987044300061855712791418981035482304322686686044100951870020796194141534176324413325671681977935188001513928868553201689515240673210080251536767760402541943737424362699048613253267017482883374963393065623443427089778182996851732276693838921605114151143374602437705750186191704627388001991317559869113294434121037923184039242358763738018697486907770625637930634444505710859232219117717296220769417079113677167569737603137343966473670211045292527680046938190136659072345603720681501771049678716092235247887706999098102045259872623753509747243925294103943310200089403587770471196379523572428436088640925722146084116550329962838773192057122385018468932088485057944979604152796892321217374964179267439343215743905656691870334832688987801936801058842104090270059198904338566884526456569071208252925409481136733079330290500983779504787045836808010367745874580286548138366878870393171228904077426850176946655234172213039062828372185472093760900296227528987057425465237562834375994812311386031006519778893289871827875540098541808597454854767699858827984012823991529958828021469630897393369196564172771481407567828019529113150542317709759038406021431448547411707993699736074029347509994135853292256924548956010194049057231196418599808235808827486441287974989982936856136693609978054473684105427913214419535440293612954763536709774906092106116589672119035447626107711624465579429310164504460317069098704725089782809876026465734161158120651000784286092422238995274105396183848203614112636405518535872806784873340098108372117061847557593359956960344086406590101146065989292877623704379952864937547902127690614830181527640277825867186566499114290292146213907412655369528814782575912346556370878237014677566283213492723911466315715659275163881861232643763117078337281615319705539222721872809263231769675473772288256344244900110905048430104032164635539602609897273634445567411645174441705909043737381427033512412912573611582837350984640247186495289119224042742522412908471951122676856218488446873551670216713255230749144621855832169093861514425895777226260043071490841965293069343460630578127082079609390432135695822580660330813012101174754287376178168538331907025785550335852622955503963107978880029037927994317595346174778775577273191194890037171895796696015372913637951844527325754519227634224438536990602302815415482028774176342999572745191758056283270738244083676975486764533532067770104966624793773287313815297894852793678293828233699491449596688665331029254633351064739352532943479690245958040987486511390187710019911738497398296775012656291352563386271095675206337008543034708615309852365846849056922364151059881804774384068796193927432904725228842995492224650008497060930004563046451566752694512964623182555835848572261132207998592311580191432274932456962760295886193754361722015184520283215802050715178016377270600257862769854284446191191529473812490920737157610207530428225038895199421534694317553605387477475535496419641393746056858013314632210100148166928028636671008420497470537699855349842627812872538346647309909978839840819177289416234708745609529594206100443541252715225202030311062053971602638602890695012727674450478784821684132086624539132437232235787832006499291592812683489197032887607921936592944399574589535139441544853516331329299868024065371402708070453466661603346345220034645331696504242388567729959701018355753929016754910532885480931689525548853471990192800458905256841717687598972225227953827196298348366522931818829298383665319465991801162721055531087852491401240817406137004637319516992333235246934641422225299510037540290770826260344755704063688066408797641596658342896680305035690516018658016140054051239922768972275786479778241861691006407594083092384607052105329069536038321624904123669868782508475327389773028750099176256794790043071530223951492479614518582957026260824250427940295184279228452640241916930799021007053597086749839424067544407069592970282452156680628070282989903874142119203808801864903512929323977149781199821290323527301620270432708790297298124157947339533312798302268987040152374227855538195408961433424818627170166535989775465325025787286542864529607262365843657209708266447888771110304824101608766370466933707320386772086503203407382779076141329339147723728278350908511041330097091342347314789800874061119363431809914918226875393949991880308864934437901655575004757657693990148633665812962575853779424263867055850676824230800022914837056740955462530232622451293779189591041643783307510405239390249642285647124090081510487661214916179604869126349544757158809446794954477425958121173751376811518423160880491065320156912054654944994314929424834139361900959026427614558728769607624904137465157242330436921197024753270002185926677376562169361654826990483213159019296434162716521552607623459228211193114316910793042515045142350856240575187733432631155524288742239772367429040074150792121580994361502138856011577086278983856630901983972079363611010708197577583692354514136624204067127818840055192779232406940399720857475498048807870283144617714359638179679327111328927108359825937803214634598460998146483765291162952099795182063767336012860712955582043510383088410213877486124236590148439119830679309546938109499041805801885867537196955148286567380717820095587970384603917217047968818222016944607098651421978268955590919424045976114324181835430921235238457310592294085813213496172027261259644315500545503695574831279797844585766610141131613495330424176504335728746180402390410571404316851258486898984145359991877317022276877837345762196583223413361859103994613131944605030374770328821276305825359614767936072456577559502200878037949317952518112931203623272870640521976683854464299581810164658304649473547257723968284977482640295368973719050752412281127970990084244843353848203925274156097744564784031778941201212058647629209050455127576408445266075358227857508392612371717616294089028629685441453859217622495595645154659830907403713845105775504454077432633320955620018662924979002947337986853128088760220555041248444107656825518194997720022667403726063773287985202664379157277751519784365769135921667900580578002137657686996901412113633259830833694633756666722218891865683647027420213290032883218302601190749072384953204350364091484687203446185258968968136208823901153581406583014894690093193270621787685619598144559703500686178379747781378662359869659822069468960361060948370166096610909575114429640462144920810588055144463420404269896082196511970091220729767178823911308418463311590117260959360945578248435029642077762923442086413578085625270048088422028857003803351994235326444547058029707396579800575608111981066001032228805429838267441906777163772947877488986600992208383871889022320669206175451114827655287409268284192430444499967448537705874273982314359655800992519576301196521679643104965346575196611843394597990848680464163929778046152843669473762959976162581598271962533755095959468342042693917949030216070332582731398424646334832298439046942154979973044231269221750582986136467021146600442254622090844517040872194793478658426599112042319893518703133814075886348745221537469965843967884815238630917365528004453739844788279974377632221839389659632375882686958181832933868054149786958245934128965307301809882024536294076465574307218735039816968964613870136183221796089493730258837779349631746637830094036769850670416886026001524327052762944350462822406165431755762294727867830853324181210251288739170946059611118390575310465482148087406816857757764184020354230131040134795489438867149151827274801979725433058213273838401663042709628887187997701820667515489184823777186728404939258189838439608710548475871590056596989165830794523389271780249837786091949236613862891386365919760555148421176423967811749285945691589677527673059552978859277898623987162137498128508001218873648173629638175389980667943679921181289636945441827569239763722815404777998207806656469596976767670600519918669395110660353607711981479055966249527835327241978426286273159224072728357637722725849292048110642808096786552042818024745236825899932530976838243447102956380955170874968170102745042150139071232838739578440749225419111790753301685921992021805592303472656382349248419794546956627903465359889779961561564992972404049444604859237426627005037915005023729180557463709842038919643730958404586094026480211075028945984543420032787716886593337756800085750058510745706190482342283032920521662639332953470566154685060647360662379101029907383386196912099972336366381119522520445741893895567843577870380867923326204766608099816586746762864298944779778106405299434088007664260275477669094125666445842033496226970369632947627289650771183674773036494312122064885477404013821949713635230287563481625676351201059115893579188169078020038216212754283042214520620555612152311810573951318053637896753707120274696718088653270553114114876255694200741464631262219045672482264153171081641030447048541419154971357558040942381641796351573105527571331606602167802243435358238822702099642541744873492164967018313726293461029371375609703039705134214900385155088596330451217168571467914767946212586090894464161973451082616144467652668724166185457438833947293997005873920100087043273990203052508238239262488764393588355262260764946632755583481815457192289133712318593084373631369244434962841983663591659959812670261183240813533436511801559597414695164479138248318881517981439803204709862442074892946272581521240180252104185427099109192905476598758180874307193877715887727463229412724971030203895513799802205342527324182164324814877985464485288954596427464971276475595143192417667601790117705365389096326116946257604934608586136178356995453968359890453567436065489792090821996033091961781206143896138367854920343336607814865939745517521364936089755621267131213433839380374673111283797736463626479160249088933722783039156460603170697531029023412870200036802725564800195808973530363982454980676207622230327352325844828659500954203781099603409042167011825438799930712874272539042775141442653982557229516651304011978729582535705552761821864760046953581895562759962002471945194644686333872675019125739846013536726926562454996729889410653590232058794510968458681371461348355222302626371041778185169243157123913833586384233444910371703379578761563470696700927734710571817409312239107370775805464488639484040354172174592116014986158476499807476192254649687008668835997395353168463158716850695170854691825838710138471277955631147809459544936259974800884761239127752554101792062122520079692458829989113534961299602566680709615515788778243249822673327159482577595773496838254106457639727793657282688726560179689701532535069762709203773234413745689743156332735823794454733447776096249029030884986059011326034761386428412977730819165459858729321339353727947776639996658505808492278355605935226312596889541342769643931050565744038408391181998856743506673031166181275870606142825904199134008724400851118918670582763780101952543157690686409235070474482525858888911696751909007012706393351201343371825722657854015122769374469042548703892837504956718963054515136420994163924566353602648004105232108906074860516535339244549951615783602538687331694956076205781810289277469366174014102684273528848258430003881315516179665698113168046089909717350850347225818530036282773063848419109143952637913944750001299101877329587283890447678709589545897781998618459766875203904644469698517186738208305776301670088504749054688609030468090812048169164258745335900893078825106566246429527412397516830834552431654081281160710138803890246171725053342709556984605013990450185916169956774492406812025689614776487573779106693073392711284632384227733285929505343431133643167277246783156447276965426192334412531803693941127929948032096120640751905329979066074671294787517695134827794099101962027495807686104344830798796264443296430791399032464572546879355990616037426519436878406914651040722588037074330853924351883138664319888662762958880099521747485137334724501815062690033996594814803869008881771196681535333535522225493440947895748203953886814009810368745887352530308212450358393644941873422583166562852164540598361250435287196234174791014548568914231448363593988594452664426068362965468272446196216259558255681694447637033336279882460837029044871654307908793122362948732719702767620004557903941116693296961832807151775976339512641158825479985210389489428532076006250561139602477501630919427596055976937814701273712636385862897628765684503945730164536804409227840634421744540723030419276661422856511714583227751220061639527025418798051878968005646762343218658756986698450447577505530401566320193794275731017992851219682075076702537814015993968901562744267280958715014642763200583713926219545848635539486317409505759935004669132814469311438691805486503720502701260094965092036844649269864934480994678824595855355446116038157491677629602858453122718452923441976852891874980168090866233355649640416595217395149483707342926293888081163477909117718415711133991188046374485989951104517570774999776401205011979506927551499425239766380610529061389191969508519084246650843520903931688793653779885833194422349450924488603232050656727375835454186339322796540880796821865862390242404296124627384344797339092828326034830562847602813355864783788375787810122698036851740491967655324238021346798670747452726887503384634161202602588683887450648063172086878574986487524942304876741416719894060529373936129263259990135800316917547379791234547181321613427183254896841110406352550347975090911825047473573134525345434022839881042765236394602319479482108687773460568042016857143414956469425009097220933326649889484689379766705709605077455874363587391900480511813897788017161931324290034328614881468029331379937624315097834566145515470905771579694647847480614047471143379430559525045627126306451923625120471261264809049699234793620064323587147445145393534882985523696072265509377338009345560555523633353818114323250718658750433574718554307693974754730257917813594141472113791014725532601978603844048503789182113831429745123000203491191344325608561652905489367396321784426545924156931048956791637678299371657209529770324188426153294241267665743780100823832583116517298667339698298865047888948320413680828926862212927822959362182007508334615782643736138106656045759621096162798690077826749002369840675762232193222889092685094021868472267333928875471032694032009896612401777834808090795117965575859951753051217665187054038313799424689089433142292489473265804001529068238883048746554618267293445369537483307329996636563749320423043436990082828496149543504069783573228566545124214960751165466964250191983319001660215097573827804152907505747554408087372568652689351715841991665126522981033846820097046737511304353008458696980227473831446355661383766829869496215137388399069502525185112415270787634951087226184341072443169126259337304964654807781220995909766007954403850289675392929105708227192640687559832601046948552489155343690394540626542064835943888784022793134245257569519381329612680283420849899275276013244367177427580480416297122177216220261905930831365952124221907289732609320800764700527308108341546885784469148188607439247417275740468142348848890224226253173057527776547497314588691003265661041204260787880303248212924963256735678107133225197002792453122461301553783468176837731058879748197813709262054643639363941615210918128338832994683894711123159237816118359194843505759189439040881840944244189757102166272892752205739303897597630977576120053883016281380945686242503505005259100003527094037822977489261978975091761100291556271309858828962528170595876061123890133764787218060975621456455840309024520867319421939758628535921909543029729306100389331547153172971758603537031715877095587163581067662034607454738398665596532614249670934269773956519900933304139873973093116700147894171823950508236678046899624245937009025442673958370067989436406257430784099771607046853431563610412088396670707970278306955235200056396312654578997239260831205260441791665865902136023894780635423659843533240977567654630359258916836300873966132148586508581382394912766343976948421186870495211460682134712103193609736823706321283381473455249646213556195164206329892427523559975130646125626807591984405711535530340290515769196245797375116829820000599597819231518874508590350784164462318226686517592512395728804607701619995345197784411054460282681363679126318398285653200943183565334328817087602918134382977900043517206298337779700119591302698517825883808831119492173819264359703547541368079041876011528231542676702392085954106043330297942009381974926184356326133436219665402948397987192358986158925028558580241921269948238502766611669251783692514316957056862795842451316433333690764045014654130645713783782758214865520364283785084163250807226786147743600354911730118792011488588746459296950178709754051845569707197578103291735101015888970862675750141140046545968898493652297710350018301631374097929236772598952358055163801503639060876157148802163987025103812605436438219732064406276785327053987270779701415143247840798254806526747112735972452732757024976255339995071208285342905812748291440013337305130526506453145287816291193699099368711283033890609741795640919940839911465930136029964982981599951205860435505486955389073932527530702543808581497835062701532098289181099258731846882963554621408290741490668224692149343419426535224485287413824039537153299612397567697376540760640791512737285410328841063100318292666208717968898188795524663787707146352482046560948875601246941409604631523620289653101107080680489094077474865801083365702911799111058348245897840896736179073322161187734269973099831227215674076619575196011578350430646950127790729478511854992707905828242134021992293049265193752991905365903860268804151082241533639064120823037178777505860991654054811726234465802129430943864581639943785565335621320695906311867128873970199677632905179974689895290511692509777842391652313406709980324156437196814995251944466258222250430552827158654496355333689441991370319596247751207284035986035862982576525823013886696948340789577571586650094833932092406875354873906778351875928669057997391812648228537943910293835329371766475966713633424855125992308148449576222261696641392144631515392789003104401144050037206018870280449858994224402718467811186098581538480631165493117823286848463130814543855598802215947943137626060900390165634340278509809103499555489792988310738663752468068794608187132497148405025509401082956156959094982155909649271413619196650287654799225515746569880167420595805463924039181432833433390575240931612466547241940945083135163070556124772613843540992359559242380908291534230162874823888724239003346513639005145429051742405469508526222804231300907559994965701344335575887390588818651475226649777913259439718641185107937519775610543682923141830377319729508890891088045647381865601552169955064851272819169257976318867064817963936995059527713097605862707487178391120883048135280709619411153380027580366484868698450901284414410756037276280143249992378679066115174368213076014253065881802080171942526213930090124961377067979916371258929387038020642303659737140951259604919894520270452195056985221984273175918397648037288943240246737105137722677367379836313533918534079705549219973125493151284941970598320198491580134046803553280031093580460718592735281387943471421804527332079267484010101882010937668473624053032458163326989594554023554236473208518135098303913121438750896376959267543545595439544810085100576552283653519712559770294944177680982230870269175442456428072418806395779778127360171087955287156278958783523031906254905312234843590666519895062257351197512994584335103944968341171826077909529851424976639390049023743308525290407344774498568910639655990340761652291631401318016165256855722921534967983437107357960911575029712891833043662013792765211319833780369698348521153752038957723130124175800941480032389188111859015903833868804919749925367054090330202672227629781407059583575678584875222108793916275592442075002676998910839596969491228831688681452400278624854049014705838081151991000440301652942391340758237996155484035025887439534859615826884922176966729838370130646233115609045741566362196155759046735046150735437013356930014974448669173008884217668706986147457981485867694906567618823557195606087976062018073448576786237223337462401642825467783742277810038136501578978895063138620008229097169652698116706421021681341882215827038696548292153728833926581607305098066458673668611285316443586904627878330660839721639891709350857824917380641419859288709846807509407513513016301800735910451570423260178172577913187945002931991154085092745463889558387802486233073504058065945733986957736906131036851161878688656625635050215676042543087169320004189725989440148183601782039250061422991799183238010131332689923250472556326696974200519800712898269013182635582651874014891455837782960303909151908952895097193100424395338337519201545355234295548013118162059832240035823432835786015360601213227577081647627368627283421457087747341667957141931693659630482286287278637105089041580426185762109803370141200984636860029083027804998182503545994139907573759699851051553444835680828394820392181291676362972945615734482480215745531580610166428076257525733583906219875941165332291441644531696597025709246245821415025078411536936192846376040823562496805821095168903734640561406517672815639687854603425390584034670164024627580753091024246268769771244788198046504392534887326381201087020897466985700539664835163541520809434972289270444951835333718158143314666754415759679157718202135258599531252996474542890895574412655569349599391543170429456606639459979143205873597966440555544151923391691504304980607699915503482296677623326815529642564416453997361692109810534842776282499946578707764335359526309531275425090584558087771240970717373439818577065256219149944879943708041615079249444730629004266230144898525813276360867892160955701067616759710863685349800080269868096524525406723163385756022062305191867608466423164375214138878795682573548061204684187015692322350362935405255194917504602706528074943931639516253369569813024967273537835879085999232799618478491667901398085543090673296429233792989494582158313316482571705495801731041677243208487931842389522297001255863679049455319714726486442725830826395949799362503609278042521741487681995276118301155047892248173193508469983314557669432275233230886627074767994813310470455698871033413109051292557265274912841919810282313503014155219093056726706535916089694253977332165585274528964243650466832234243001111539971495155820489225358689313148120392876617281810270547691590858904150937600888036478309549579771285794597179284332833464059932634130200191706828329672702821238602291470628357977563323060181501338401538176114998733779606765647323072327651002535531713337185229719824586340000080648896336103330359946860285051866920222428482075931494676962086165812122298983308886280885305506642425106874772590801019937811075470560356745811681480758815458384138605887195852370175695534487517309702085018117522179629289888895013870963527672896290815752461722855050731773002077363906540989446059703826568516842130414079795696493116156599032678219768438623132611003662141861487463954580134047871834747125937813008583208790976812876810105881672747302147608050370625877685561873287882227463933583260994402693000242899996410158227535083599148313674689980549599754856321856944101042928774394070000706131382709014927133823432911939029107835385969422254838152897684907710784760804116890736946472962134594248769008988629057451662071793463870905949414967204683307943511937010697951377690197496642537777539928682353189162779985816124686276528157689806041416712031158951307411125811369687280774111593412854938348020491130130855623781702772702099247146053030211251060771273585812070366423827941670362012262359888587863576959469270765888398301943409270029709309635346213882574134383452444495303309281281794744340838686895961089326165152092012629159044338029047830403741992401063675808839631035626947204807466462859676838809139358305426994293608530987290997552897099881054602913915593825097695452160416376069020652235293070721341406290762474014795614404938921606967991399168736734750978328146247198691049240594611848487756935750764524513698886260545967872933446550410573645761426713787001011204135623442604432795390511060167231557263973357440257046011501766951240814170153850758781966657478966882658683429648390677661103746836874235137209786469072561757942176936180639861478611008381591862106331441862336072706275270757179454325424723209543006583431880270306492698565812440743347386596579613539317603739929060114849054983639194868555935211815280523495663333230434997978045260050295020207152741747025130317135401337734528526928070528921281710637438167741936498110859455649003627099073877795702979747016340494329330124695918079560015934699431517593774444767646157874908501755611807303805363827616359529854168878946861748863604213479768607251357584482975368289160778813326576538711514226233550302253586354476485429285711498634768508344856777903192273771924037920127400897626767475178829758999438428748712400838877496865351038819416442182195641506147593004179768237456985258057284311021440930566419486320256156564696034581055003462960764599829005471883024856871172953563329881978205064177908357801775305981542503690928146544228103140676788800193687766073585291395958490594148676187590858946615664642042715825904468545232146194222276314238025929600009421849835122760559990404635424418658904644128840058423352760044808044920991825041150729062632892601030930798949122652383900945771683659087083914250880076731654745839186970554275423329440611113734293257232630508570772113181574446339161508759083739369404465319983637838898383466624631231299926586348375806807899584713102071089267489278461585196070480567780727932027738065841714185723905839734807074123600910318021708994516303694116274748924670123052983457620831818402445137779870398400478369658025112233670561568702890703174520299210449519885553894037700212586862723714467470013629070723195633904294379252857799731418075155134835320207515692943908127924888859047061000686882676179943675263939336363360574609744180648279195960895585936636027743961460279624902635987432681343255856873440669318896610892300568037591073252892727029261431145486189961308440592484746932729463837195813605525133588320983437388715461001681656529148429474601378739853509320324161325364722773025895472583913215063665011293747975864874274153163073416539886119173636716309585364017875516585240135697181421858364712923308417130367060594318732746166056602391071304801726619191942190079636360305151970085052276386145055100725667628938929843215925375400233655385189299177100710820458208358384504087310144292057422377324332007812508677917089011769136220884217605830787013882502234301227581115592651118038914457399763816652339630962949270799521189206766340611576652565565300415034265282057134785319650640629646025158920951024718079720709643886398904820853445072214570614560057072741509431893283984194632859463792229449824315651510968402398372397085313999345515993732046852646413309010328505161790823752590681843371034102497882240004925781891068382181596759353756452262036750758989656283806757775325617718653488306671046295630765899237488834504089783136410306002543206607493965046409181066892174475638369813094372968940281072263680591882105202552640296326838167930522173431424645801711535314214392743252737158222240053167221427174057001437671843191292391734048873627865982751679007118910577567390997061710713533698523191275394693221973899476110083877562869228227588933993635923783655075673004133933320867079459420721840488001442107241695605049125366100278020979769851752330734622454557332872178556529668317294321669542753984907100114941458699633124226090702276026909508288455980692338619597425707191898716251286879501340295401408600670471768236208649775135990189666691073989742990874760481595030001883348390946885763087956647592301697630027909314521138982199437166638813803594686145760327605994435175877743578325204337439954188107720480114028027024144361588824836587434653334093785086413097555193771413909237712193594913841959494455719043150806969567517240079039134122305818825153085492796931236320971846776050399468702985974922596001473399306093390615714364730113417726679926480917818258645190858439741362474419270310486747017161908302732247123871523970070637997946438272011277235203444566924491801490890811064415916324971902575951923464099355415758927997984651056469241172081747189849845141151003131589968726835938111944070459923066826677999537853590528171076075767014771010659059260003862861588240108349862869966247969641014409196744830792148399301272171755613088084041814619114965836309616860475958692327432990319442991195218656077635606759432827108957902959398630575055481857446896412912641764122985941824978558582065288665928682633623210352158921671136127580095351063869802118732128385180036229105039052133674433694996304442157086085820459508625606838999433898964631067659836091320554912019483761127337781847659561241499225723612995489590567125989311067745393069007152692286860440699808952343399870268522082382008346806889771003474699133822151799156932286739888142814104085852283828647567870671357405038492511232123282698820308362155351714403105775110135051448027008934191663137861510867110821149106352690431042972550408506031756505869548244778853290885876534823821397460160488765251420783180145067898165957490489175138345108473696769772468113518105478232917229595377602266335908981623429431111278353024112625567060831059563296624149952651667322018768897052411407597731053527722215374050965999536499304960466345417461915876303040555047121275779596182794393441174694552382417203795444643489887366124774732358588920406412946613821939694832572059034782305379046952259456649967318921432080075790844580834636516469132772807491988936826531236074470664760723181344517756058611602695151390968688205912976235123124496600488479376320928795065402551967873002963538510969426391950808437851892918590195569173627013027478317796909505863191528035323806440827693813139073147534298017659746567320039573352821983917518190754343974507868392457625818784704355652506443817497639446765584239465963744838807523690946013059555921282784213699271639045467254654847904537031521994906214310261795309428673169814553162602515284456296712356303009834428992313877474889500008901439244905663147679997192310383220462852703349478642102650838260507260035579317811819119597797845998811975733172711981311234595943418665882821513809963574813697835975308869803721700764824448657010781391467730191666628816677865922753086849383805332960380539235599672700742241064122540118645985477241011549757166768401737836875428014619922868894255174349759324434636033126281161181950130803450741845548183998585444636377217903545556350286885318331040466386745121175221108930094611795393654681036286039868681086125242830604542558756300374256966540227554641865783585003888540792358802323909123192295352068671937647150021569961827206834016373258790761238387210284620782951742202595193432745748870261001354060872536584446004525654329997102336571392046837544570245713951082413654657431300557526952132092847202860374228385162977017973432386716872914267323221875226518967893707404605405038182601416992758963122162815011180441456311432884199126476850130445276548623111020055795453547804482223011399261352417057519094221485267569710962709248313083287151476851583225819331547374509829565913377394042438607991649073002146758044434688612251160810185769866435089978685399202733793466865182725367773033089159373003529799496292113531773599475640507898332859535832123492021167826352580712142776955168404919938920284823339608663224998345979159828797873308578270994946698423408978715031341517634341656094824294947390927828492953955796420670518075974849195464300263274200543700314486030742835797451152439569597928256380239339492962049191449525703388695378716888739970720123499388210954851932069273856198381683158419389094798194116157749234070670575799463395877611799304422245708484199674061008121512274209596028525749753635743251790859942092697216305602228016357906683409298207843750030728614060623974854730340505416440166190426404705635171534229642671763677507024109330223143941194163156888547402447913068237937220543773087820365905018694941256527947066364881145166742602955370643553105955870224902532471277419427311674838163923068849530185382891764687809731832061525710229423916623616496082425644467148930301810479089642461543254716479527251911527302121911119919094022879600928662553890298617316966460580231459450822615075378431156196266948480298899065206388122204679842753870604798399548785482467603186358012432581453341561019940472535694677531353294640533952415702719036746142229314170679006796240074534436560707989240538904665637616609387228286569361036604890466318095025887416138663159758611707792271566883197005377896930746061489252460204851123854661168294064611019983912810870586129436662328919254896216153772442271010136460235194955019167893894324903610177840745044772035782940785467524352543781866301155455890770668221449292861479883191112184604065877065791879129613183799276737265059936164767831017160342829870192340539345034196361386034689349582334110858938927459358796441151398963222560430821896620236976631597932402738562393747234804032995491187403891685116673739559410690769568606235933409000132440352703888804389659874381965678375816765463688068868149171292021388487957454119186694028527295830717075254195268496140468969669905837610994491174845904100891800701849788617053152249030718822246205971245863158319193457544959834692217121911900781870940929393559972436910654188950624472216902595595381573719632868292310376628243208955697124458663779949370866076976582974948703283605473745869501626924281168130224309584910859485713299659658812204990430332588761828424046003393294172482557441681674721190020375457788775019349545346007696675810124351935278604282418365477310715762391165046511855178459468219488697772833710394714559799468158235239450236852417032162185317277360239230095267671682062347884216724403617760228473051563099701925487129963752759323222072983516754565489774668435447458739287089231433185939340967787942410571620421900426549531745710449148773678346489069604927793703904020100713077908036852532789633976312692995870891544898869323181075451855120629768102672049254088397310913916306033493737638975732135408080164197558231748438063672683763562967805548684801085791013168233174773485902538691623489317227018764563958419728001739743710520431895945584461066908404652475700881676294486884352439333699835209542257279303240743896799591936811287604235176304308992982957194921526374432723815587707888018744598648803241129508174189610862577514442446787420441121938991598841175146316493656961633492813712714429039712484662831647903817458951558609622191629123939422429528055361887953025875524127761651082691636985009113648141963049050446629990851641734961484597842856568142643078637029917347096340045544195511841048943951885816001237326180300090046181626200002729763077060218086636319869716497748146213190659857147400258816711530825144141656909741995701074385306757721577460544299327288205456547152848063038062394218291969636642877563901881956475731439956192788391314730628373888928163879821059097590346715785028693855285705363125749202505938149729925963840412362097226156106285451949212072295273033525678567168036226895257956898520281247163961720784745360650618962861813183738270390960656473656822747117437683021191004320099148625921146827178458045528450658335137110906696938513569833842198132405905756873629190592838386742191565075891788655763482916277527830721951986023290578471317568629321517559097762390542464369760890755453852514161375393018295435729902120122829598187303624515780965022047825155172914652183780350555872710568465354716756516321484074880250781794426304960860621963818854231188861905268309207721793748017714410626306350441459926636761343541725850987790617534179868177079915465294482357151424271359740480406982854856626849745828327497913240497320749463904215205101374480955589178494798852999536661584918145915495287352629802627465141784726791653041297884768717611584398838084618096896190421413424866957469471941824870036544980136925611408709780597839674139655311828117830412432947548475980311276812944957422390078997120988145560165884172170062964241915978954622356948371012682326680834930477494939310937839089490125072910046654301913845543779710433718098767837250162074104946453809858930207384172633966046438652890120105851517136784288748665586627309217704392861978043237557974232747507651813682652052598181548348225460960505180324784683714095235109227939137858992762114037710577465566923914925223249289892040084646730928144539269131057156879300776356963532200882041556045920104542729082543275747258400717464911222079817352323015259967700423866892966606930958771370079881181663622967469945735154328906587261886647455635064897246276171272430549618254126124549867698807556652427481313187890111207255758785963630086356150316646603131341856839383298546319021629808604909451544570750581816964427016931854458955485917901938915405229161818618348775747788926525476491099192423857876026973185582138918652643212426438631185437238485325146572037484104530226613134895489950730841642355108652395058101592293870920900277900355636129244497834078161209780241251587654114069773067979106927432587311601669251499754978116286627116591529999111496104611949220594994282642989539993314625938213098390604250645749158648030172812870623088020843902426035741831173776611885922972209889144093577908564357816972677207767337425848542096569162967681110382992350787193167638359311422674501357782940797941977893896281077853681470241034167048877182608600225197480630545728780050045253728215722693806940720916022708107468299587792858828516304753490609092856671716069098557484800380177600012421262982036016099290106668998854250921125745790186597967847922390482202737592903133248114920487953280112663128607811883684874869488164655545894514216961489093892067064560783400417082214180564088891940405850473330682763947676862919870596894960604312277518551738085240778797494882275740272274028627984875784626522458260379569892398508554859579530548212634908015113818372326110873044663861361106145866642909840351815231911024171267791048006355463175458816116758132792461997065557874879137985829150391935649492954283935293622037995829840348254487893927394941946461832817964562583989293048941466771760836333927883838331313826242591378912047441782001474760117133857959218988016054490296940522326336050832451070878728450118459044178235372830522789152537480743872218885977609330156311663368804930419417713932793667410785270939236664042551360805059414696168241530418893830324499416126242724485243105486042615969525827545393263853020777763559204700567294564960374710730865816031212743512666043278396168632875955525268472622551760920129040802386340572491040254744804730052818625620074189658651834119411047235002485034812401587977891928300507922192415362576090705544891919102494114730253710221122870060563106149417287189349111686173916555159968839641203956753222293017861149982585596798412508855984812237709429596656640301453527939231032305311003858180152789526774525520094250210101604542234108574084882633404114381406663665185519667956124053459719584135286942371269977798770225952854574042132610705165775478693740919099046432741334593378187865703065745386316334389628864422275733230932084636706370692699258690046719211266166301623995449172608266660612254620348812774661661930619890255900232884183474683675907557767304989773310661592053761421326066454336401827569807497994370083625762377362561216597960841027061169122389804839611455792047853423059779175294723501968367292510661895033004066927677742596979718334091925350594071994888680287172790989903530441406663487449728415187948620533383323087894786700867128586512289857464728923480284463950539928454171700982815874315518087235374556145861306508736606280681394723331965992911833158151762865623726478913471397716479988339224611659521361668666555447591955715696941258409743331652757856072394720388678591177720090180989132966682752135199483413124856900185758569088651537936964881626126200156892395596898355476073475431210056551714724397701388230826347121098492179353207872084935304321839070767967290393758788847569620238524467952194090658423589047173463162221572269926155143502971747284681384922987215187206650360570346290377531228131126302013321267987304719317179802292688190791505574280225701908465658791658642579630909851060705228733264965664779001526914353306162393886771842166612672861883698755031846781552112875832169808839124659666624849370610915577156242789354924858968490818061061660915680047497459073062510325983129893935876374699307143644631784659422014885385497536937894796565602986998441283351547318796158492728270239025086152077760553876108667748431327199370765289947417957859702091631148477552817572897393386186353986751256939756805294855699208872588789970256864135356613519639477436172356876778722904828142473381004943147850376721219627261734281015598635790731672332306848848757342679340255810642937941593403103407590455583464183733454725012512208141368124692573949939675293064705654325192334748019806613922585686480992042153377320027522250222667438907541726074676737532662638170674861236082805054406919992518185737161277490551167759635135250764501885859353902605921434764285248518970871742380738609748775901572279659225631380312135640566837566452475996424693034966024463862475940065980139198028810095579643499433412986446627843677599888998963904841025728436937548392837411360811739520072353800566376845463013766604647523419133587479584043739099331953894265650392154979846931444516460797660135143172219577501010958225780822098588731083048716485977165686358700558269544229044386614150645688374543590537669685648930928454457082670252806230259788145398841295141314148085948794068659323994368766938440196179167118396387325903213014417497944549648766461741633373741606596193412111163628364313850524127823515557001201519611868647383047225788664364932174845709791538894477710352950012700889825759770343077341771574181099315704296808616934785962540671155481051663795830068184344942959316433013143049532271286092047807460592613139933276318783239905959934718238849746492137653757535033645803696912578516462636014872362592817418909680525628704335361735043281861363619941214291586390394085530267841266384192404150735830633154551600521193708757486818095735567606327882686032386993132469583890227459261477654423084412283402481298606217601276210757840340476904596079271233135976870611192302982597276346371107240076473303375619240190722201988462560688041190152168792377649242918945496373919795976613332228842679504996248214576341675917955236558360191143904597904049526215467865807601220977384534126998769287074951517246122840249987534270677871837006956804476417819645854792918457141546404964361343221435347310931405074126442235907351806741982444957532061366032572619379803920524449662972847784886566126102408205883973452120512717527313105974733399412873316910037332397745785015072159763123491620379655843282724783513826700945543564274390082958630491720891788759287073390876019143038050649642037186364078605452319771924978586659830284694103980254841717394794697289617744495060484016045167060316198298937692294469569178627953716277458111287746526698803837995880000093307311259328096123153379540831215126661585129103269350181935417307272819649444186241055672808794381756376749121035519368989169249729860755822074204501235345275226948458557360498726212303539711071903076517601327289897397922092730614886100342646569595601616494780524074652690091836184008919548436929274215606736197841192305153333114714164432041343565545287836053700320219049196720681323911818768057759755395134464071376876622090321034276374184354477825464403394902983450764251422733009453385522111818721702181829502841108222715508051584155382107501615216691516779423127675257268619166040548077064733097520799900522195831416340587656066784938741631386442837291633478899962465838026531809922810410323679960236860333743327125866864261892498921319306772810745425881689587555564198726110801163006862611956952311352780548502739461697384901604006888494758507690813659453877385521675550663707240008820814879260173012400974661714317201735848488268197645112198657860494274640882099753680367816888837697922254937701822185784241324895345157370337008146999879440689960560989186498193870039895607693850771660835945728138524958274763569832374312548810567995819243715178167615521239752878776657233048488308855015453863391761803826877567537299904450526946556035386076056423344157632025150781068001265207816358086690062134456545050605023234028432039426037785756344337763489688640247681056450877774211803621371386006813813514155437710558279918705603978260596239052759545007968152559816644648397095166969051210029907305895997365425884894009618442167571995172703771129924168533114005091011988698410490429987444471182480531272036680285300736973216164616438660152264831544254268854788728970287817347261207266046353483907867939140831361785959306126349963064194673003386238092379753388235741499057458187017076098131954287109086161859391393138264962580610899659588351660543633014634961532588287259079187728716175299501262877762092513850173293987762721754822532148285889269056239725391107522704237941760024545885535526349001932782838919975654058392182604658347175393252961676748229704399779252077518690003201994485116355005091044848613514629053340579475541129070423601049112050735273890353531477993692627320088419382735287686019869943291814952036106002214748842057007394928658307672838588086871240408712104343890559897916940590582273002935522943118782831826589437208996315671559593237227108219138938135712834220782714402615254832569392896142209686585757058797565169712269509403529582081971169962568441661161057238145746057677739235287886312422318909822158704901076273234743858703977394901127129454897534462469664462366431657274704181518343596080224264551846694616992107231084201364291889554271734182882005859774254801204287820409776186451435936577149753884342020872338140773209793235643621477002601636950656559747494727860689634723847641012192845215020466962338117569687559817609449984060243352458011038653660639733941763911505364402906005190179951210603815497493750516873175148742543679765953144762207402186144238643828591812016655342533286922952068545501779393088713621143762864562213025036301270963640689850869288844960588074019570460689993028365069427232244319233632790163908966319448333113156003067684307539180544629352602587094187639805128449050714796907698091537873690627212879163686488186844896999218371027388627165811333715163574002364663977479343464788383414919389822110215812478953970298349726738205432668427839556030129255605518794098801406125619900887289925041252079353319371967736489760804714621144951416743090746211341499133860399171571871445437524423448786078410915954702011398708502919914280751628442390450298137992298683936799957105973658924051928688453618325299451625689511142525691426526005454820251974676979170165044961545684665895978437420086636628967149698498866521511373024435219986355705493516722490668536506351323964391134233095295360605226327995256863943147675803061253643506029030150478680543579321530142478920176906342355166244691519599544627925310522367725394431483793882576906384129157280735997965396313529886912971035646019890755204705151258371491164556901334724105319038665785059808376118358271830727011840752587038193502209982216495463272056577786175372122823607529951201697766720045501851214145335922589622059971312649105186716417293232995248129979135019995537819417476085576295137033899899859171947683580746056642853122776266623188247756802388535034144029975323529040277667313512717782493611275627019035611785102141302864209274710408476574377670656168183871765484891039190362761227212741538640940154280047578378870162691583884714056213398235095492416166182415739029486937361674564503627383558861877669055564952318683315188776673881497530053502632449617946922826375885425366594470864486487562948627628180671077464283377923908015247078463901013044299952079252355793718816920737400496736874892058605157644551491160599977636837297596413845564872676218097657271521028170214981825117834286093852514837916080906009277825928695450537883601082457353581277694398530229020251335057193624912681796067450606223563501456183787049583321650712347020634322068307172533023985067366501919347026452892214873997667801379258071757597937367483457767248960038314340586058411534814652485453386486523261508930973400714137186574417531271033062585451317869996276358957472739706577943394546789702737207438685676547854340857788279030184578095577510238333047379845900262397387474546462687696401444655597666896159558092943503146450499317220729697023123722034556931691871403188135023776895598529827063570947489666754259205832605586815450282167373947182492257084298020782400478374377542912098658023892434572956908589971669514145367742394357209031147158312928022838339555088195510466077142681800758995742876903134138743416258090993699023753181815548074577577606111944037993539603422763728412821990362044747985732136188238146060326967025160702233439746877372650639654917354459031425111552513951808313327784474352660120845185030603765809418824064688412298267883517146037611732465285490990373513903201652039953778608486565771953553264874539383420042926168813489461567414841152194486698203375499098471369267585939264871387033082965972060988343068591972460753772967005299874399379047068692788509158444716534918991898882824678376962665795368244401216052644044088086911908657595647081630711320233797465911014774849802402122194885776055532050748912117862658655382240057623938666465547381130051158566723724210851469149630414606777315474664520178663376445173128158770371690948973610028259076025713375433382040688237839683994273435235923861453884961300412765597243527575183868233611003753884726821430794664755878243973029799594549151933182255699317406833494383864582785443449736065363961430311049681034788573687610378438483040398072044581732521024041053852988292151355715792910976354639058174650991531890782378176388782031882724682816207014154775327410773558035415636900707555314135700112140690440925669697154055903695338746202700502303044616651014239808129958163171297366255847199495320847054254067148943030412156323880395648429919431259909923003054678031594492569070980192804082077343148770476067974772443679288585340265164608787966043753305282865806240589980732694914233417717969688169691704594132410111356413362816046023140177775009167486780163749256529329744538817774664478920581214022563106121203665357657125921793425625246840076167432679235561923965212954832166435830548113137435188929473583499935640591681308841302212996015394603217075541596880776926027123042171661368890082201235816881422794830916765153599247526650844736954013516792430383346255632500022923587978227068021623916111257519990004796746939634766029486918051340133434684869002171141044653575559160266210255293426855823740450950077688924557786812629689808711620213251403419498022306574061822534855415832928177761104696855632765991437137310803459570260490234886907091334605270480434249646570136145512228787314340175611693407349857979381110791057947109403120908427818240738555935302494213924350131501787810258451935086073204655228942262092837306006262602379188686861549795627139250086599846988578270423181686381201374539495945563163551476039381562524899181727082256374411828408500506695173486409134412850500644428078234832173149659383058199140822253703372308136385644922366168267904122377080909804745859069697174890156938823051670518797786693587792364016142666324332461428303464292758996345167045647731073986214352969104082028484649261051834574238003338825170792296357539253497926634624933877872097267383619044876245925254861873202570947309634134334450274955057018994210173778922970375816325520985654620156974065145659146791772308428895530194198022245004893847035905421340787839891402435335028589356284886969612317720688241220487695974529426554783700473293683720727882418817417399931626995603205970354627770442801312415893453564702073510622106464620470622584925946016895565973174122431506724194983649957406824981503083755352701019584803920550473682633894612567730667090758105442771593523114695991201829826152730632830058439087798210166874143072314026818783867795910631780449941618164957094229142770336925159643783387772730297321941430893649771265559711103177360235886181055397290397633211149635417883711526189735965316574540912933996491661909050272489773185883601848156673649924528952750282821438097632887402403934887906808721246205246397123898016607806093005391558064298554791255326777426876555409536194618870947494683215449238651521330953525523708531338365999570116844552113771145328283392705621306099080874428930624802589548735363654703710177135309483650898551233609859135783144731427797977152020901126085977495665337045676649860231379098730516464139867259470755882223056559784804645137022303834230522930488712556765884596534597611300062827851515210598910672156500339211253476208232532913063480001048213363922910546492816928085634965635928053455103333774816859136813377400181756936843724196655679878259102794425288521575323845106484953180313743826202477836702202787633843064586195384662139946896998548855320946865889108580667400294298910465117651202630952933457018886168426316764954922165049926173541859528766958888405942968421786110915414662474789705212871218330556630506394749619887728026985554274777955549135855222779607380385868409878296974659174734266463384836678448602228696587602195528222026090846606864778356506865762423185104690883353942432829126975184083811094110440175635104933728751050855468923980269755456464948198402312094813248570537123765599736543896394166392165565759925715288190517491264925261107508214972632078227578607912031677810156083379072324896644844330190961243959907225560680835266536770126779779663656436676172092601598135189160849558490513307921575492147856224197907454764313559226843763160621839681929000624078534319834710336920741020439446951790555489912537556768012991809954072924310724395098781377823169969595576984962933968539903330168350553949855094708619330916399173031044562822448072861340595608274348240134365019457510456167739505321090810108388854548263852020627045531378786725415890169035289778753870573994990867645039258853161974520916948588607913841456769290968646349316350598093711432120609417932757227914084856304276504148789443108060206165005381302999669626389011094109179415530783340714309308554139884053729730867939243918056198669836875201031200803575628133221475442198020694983503938813332386641708584975325743414840165926840056441850299205963902732170719198936421803433940038250292769099330590644560188374483835527263651105796296450867114235983954858407984820014764384802068731109733185577351499953989268673545890729804185195588033487736254301504376765758667998699954668115195349656658045101457028542246795281482530947976849106789169481798416259649538854103735511067537981351916996204817823242092922926040824164320658315776903579735191945663977548054998414301468666591752714751022679374209043476781754748533154750574004042891542173315572962835799745838935279434454578348027990783452958557014364176464676835413449469262325856671736650767908891016153887136361543798046088352032582234794959427167487339990494407695076124671700494831275636839563825046945991467552916409552018618731455405649417126200956097585905747097006256092743769833159310011413741277494738694631327045993802616262033418945583201080262262996625551108088771738868238108903241255649068015617130611668478392955101766732659573134494127275596634476108068668835718983549009076934556279832568368780291133387850820737287329714944956243498782804176891478374093190432350779519535600227513595813120593152832333636302100348973119479074505371224820454115576062441349280161478474412764809844752613454824433860941778420574181938384413917856743814489037472403810036281322209328176966766060087244259218127405860075139817871745733780407790581901156210881802068606918574621678639722035228228360105788832638122044483681548710498031774506286088938524116999341926443816823569541630392417395246532772942492344794168114799331982161148701523656257820563534464959930589287539042895005921524727017929346012432705309907458455891252869630681330633568066031028623526419030486062329221241138409343838842790788296693511616789651272249747503700377441361782299135036029064497705148277038412903578080957450746564158997422778914445508512842666479171722686321795116893594932072186657248761996412826456624557486651553520278366619221788751556417209530501236960263929578586436327729263537166948001712924904136275258864819270486461867734532388610478171085416011119727792101340039061933546634281148067308221855243804134118210614986622072022559574281323642972063324086359393343677629011617676037517337906894755043137418259841722932561491198129628465178037983912648308700552547324981382284731460524414721320827138017965696747815370302826004179733123603126679590851454884956197576452385280862177816853701749571468117287504971411938419889733617688179302478176437213125662640483881466697450658843315090480312050982192941864615745412000989573890578564945704520144524037151317869556128747371069111190700157941315337697314940963264017700275508204696029206022844024015532758208685814881586327767608042884998329999930146669807114888187468725615542084449756927429236820070986391692987339636711243678265229105993408906614262822729353846943157415777014255736456698113920549466067932800815304668219992027688055429453573511727460313330261139250471203933777977127533375901193017972592976901785029049411296660516145463975784501570598602841942608725647442562839675629411219677395417107256384686720012578562852792279326639047727241129016462717269602427049489367803005011771268236047763786617101717294876161573677099748676029126113026165280413968049011323869890752426190189184496231312397685748450771774117305862549063088718311845923401993514992872670082680240494291915256365989127813004042542502446213108596700132484874658144483893755130320963803965916923818322944727716026955525884518703583583907689930550256164279156823424869826973318592115049099446313454440271526221913045658089351568009466675531190646014021093908496580217183830539676955871234529314341045133288357162018266289049024412819999880278098906479393592607894673799322658405014501401427570373996879411560445949266144517942892737105762652649751073836390860202377767362826554018520959419650271430985817116967028334832547976238549638845059577851160353845675913363938614815529334400755185545288399158222931995195876886270187785765751000823941914330675050542719462468749286172657409533992997832901799678249612884871128371081295704616258631835947287184230543363394338646860318372440727421914265376891357623927116906430120677131137483728753659611593835443096384629715671357862145774447985157809455295279683481549079021262945192224791703239361124932235518741773760237193886710090439169335395875171392686467133203130932039319149910579271212011983189055790306329714874741609056866231983339135852997546899925712095868781111000005296972799085558631540264371592727588824338937483223768676530117949276664166629730429629853553339827156669677333014424242376505446921137401017113330643879585517273338447283431435358590137804666894439898377811216341697315114456251302802132726443806311564506635256083372838139833254033514514747847344074835960154854307982035225133595324459015882500793932626852914350489793173377103536130764955209586832638113683844655152735417940107534430089539335320133669650967451874787894533549051786674425938662517972617040178291474392139208494024159048594329348335478563220299588938873861695376589473584719995979647557367173586490571335204969590729189132440238859223282236231130652537511288592125346462812394412236633123769206787871476189320565162537064527022246271429189894471848357774059761123788832112866165392363919834143001648822301217040652148088492896295623086502810914715919505940681236364694488324454989241441695872486675446079418779565751469977146602597204583128333059261681408084124503687310950900114185598983582786513740746252480370022995286113874313609096916768427774338554526780562381960915794154271983508217329164662700884434983260366827316236040898725548300475697712697843255837501987609701375360504939994498943229502011112467452461676700014942838973922563438191846782978882288750568457945327429167009280197848531517648387275069304721640569859052281154164202595335740801286722122425716856927925148974500158040979844288693486129283540803425899018249504605991345874461357635880079178716440427481987876574593805636015297205528607021821246351610952036727948230939596483963148743655414987413518611421748906283027758038867216767662239760015620711688236927311350888998402318470433147691206602117831706056318624586558625183826204854807085570832374174051558002043017560322513710926231294314977405286922287833211679517282028100027061393280500815866406932701582241598735966547736940694235283046902414676146793178719079603928491211409193673035968040937065045639316151920017004271707241083109123738899923765410040061571813005087854787420663436520362461364071371284944641061556006511654288222543044355749557005136331848062905027450620979731622388613986018715961504016332853055647020966315049889153810047861294297309219744905548069979814354163086451043338479207606667502163581592647191716282044745177473064397020135645132958202732930729524861433554737399502067774217808318746909458409091310095887177834948884116447940437179639578159366044991141939001184184156509214080464149622148038279438951162607161958574707038063995627123141706003697495153213923167941739950690606265009499452578554421723705578525184974467521137859193572935812038469566830942847306402780793129636131015490574350938855763448279815814272282795991909464712236257210472714413118792507317949166559250136904960299724029106084012684201301132191215550749061487558056822372959232982720827949587025476997397484846192499402863814198630280947005527981478190601960052809615969845378299227658513422539997822038397169532091655891795509691954396429911024198173020380666514512488963452180863108274471779993421346864313300598143053216875755554232380193567582106080882347716046358964677378838268536470711407462901930085186094753395148877811155850394505773681953236622840378422402740557230165331280823311919710273012738436629833898552223894780444646496607220984331227300963136461343062481076123051540681500127053659200188846388929111209450867564338171846700536191039391142364782808952513122486252180005466208778390481616931235078388878901241872861163214574065927261281950486265664004555829630195062611616993462652087352244737825114283179276793999280249995988074829524350832263500698665834859745929628443050195179795628864218045761292840546075911742730106493865240837895241086388019924302205923669308372717292736142115592061295545153806417672672671269896669683948263785229513706696728744530397917938172678492996244543818775761507203684755501851909225293923248623385093385401882827109744645753089475544700077182352799082223850611264996785407333010544556327884816515861578292887838589929321736501031530613106409313466637238498808302577424579576723894962956639971598120200972358542488440996933131841411137997938332499392975658442570042440263267322346549191534231577284599466956451774519848147696136690769270343745185004934210363963592769614943872051523595919654874778596373136641614846992622660763994010420061315783173897889808210624255556568743604493898340914675372316954169142932335370313270475730972591607052164820787903032856288688329061503376144674469050541961172242638371859179411723436797307588254851042092046228740076737158017207025248169092160915320796032371492530737153048028951494190565226484697015981749407793958534308274777736458370357342775105097990724848990427161353046800786188168435311611985423431551326677042957134354518382936658056977719778989287735087173808288448843815121141037497926544262958077194866688024761168341020659288791027134220481460244110992581821822446995833705693787982437245797090479619618807655395185523599465655239638923952690032110413116579282633294456776514447730984246179162324769943697558519627211417854934796993317481691302115466113150803157658841905571790242297206258563143114592675339700027070224576743641005118041356273719505025251946203445334090219754011095479619673126311733441608892869285943011623228571905288692391157336870130599406439246678036461423731951362065109186403827257768001790530931789960015728820313933685113108979266730451329208204851364733171593690568690470303521848591899961785460695421991490385519277978276266968705982230917994275411366998559684145725595095901151078937803012944311475819623935851149940994899405580787199752331991934901754507437155905166093455835445941221203508428715337594174324982286474539287845193902428589249250295710307523554560169564886786216575374834859673434707133918521883753665772551729493588834743569927586423465802602077000087999318206766524278005095406444356977612600327092734005249258991337211349806543485888320941369076443299020126959926564713540904295809267711099992152667780215244715673828369977274005294094586197120277826965363697088366362070862000233540737315516418996311850625075386089835013845907837818875385417508769672666762829556936987750940557921293389883881294033637649100744899060465692180235242344289218225177812905687629523544378851281398847671237098877882087338961733862577460203400052121069455199302381012932120437622630144590639269147270240112428665959322085755551972948180653079963981170812793743636686396354989544208061428862845724696237846118044739321417755190986649772744168770243676140405354245206249289079605979584868202721093802286421130216683612605326649052024930966708753875064318687927059213352588821352938163364771887847213846817639187439400405126346124459364841491852421467987828949456057724081977461897313874383663493028342796008155821503682207138740784558803469776426409420900175967528830015861104661448716771767862775835089747698329763715824987146162044921442891322089201006523826744223268606875554898435074896495239672461183432932140351430018573333347535529974455050375328297374019993087212582694112299111493131863075727677773060952992230574313181437554881423150506994584294553989254585387977962218967270360096545856880914078569929653817603755813012316951316715716945680230103706663008260622926365859458654866176955773893597114787156836874321355008991910806321281832380978988853495905712755110913907795191502630980096551121934572803979414892001115175374479036121758201586118663262089334814136924512616036314426998610150321334031053111707193077855162769561508547466986367373035770392388618449504460558822885001878896862107416384346280989007973393243329388627328069376615491705031751775892441136372272740784059964983280200423733790081000337140941163847547526066150262855331812195696044765930307085953684108017262365243635056463439013176264532016950892913803720907291623267340073325725617781110463525127440328047846532372027243718039475105673616143214874287746815419922289479024180575549272835970827807841832629015794193818398133317902838375936626254913811438311537541951017640796492085811376537573197435714566917965781891336088832458377195752926164906395631446542817436812635602135024706028106204323564743231650325823146776843751630203349260471612537111722785787006522260758340617659803807941446628525850572101583092888748366556972374975054779299311170811750309584399487628419360840251061842225579521570994675117101539717715355955031922920158464178214565695222951188578178855281940492422726744114519002436944428194552905043672354397242816522973481656504508479489718780474463064392529749801253028953346043837235917510368452896874091585504722626550038460556338060041942630346136314046770654783401260496400983579108182114570736388882631116738457546272998308975210227265288126015977612599312033301136276149657317281927356278033132715640885534919086105595179866363498802773530151841700837460333114211688244223301573567109527007613509887911708456906444077821586327044429111543977199923534226449688183426216748816308361559826721269419751142576374812010854046944508146032247850368090149449856041352066723525453810297362971320617488735342298196204234034143098059710468868449695109965329154937583943747689891364988194737405977390328725170706589934156434175818259686449996133253556731810370405064879901828463523296805905075905182182265728384700935561684170648676862574476318639215264949251929455002373510372655998506048495793377017874289592857596587336666186639947047924935069083347707313292795548467088941981351807186139066753921479793865501992453642359875525894162939297797095658119842478901953252206390675096980470140694641383271955131376558424647660965084865148978963240739767360548537175125288689814083389185411281128985536210080754860684645070073459962342804490412097812315442623969032346857190866104547700866993400277621174655426649825917868946074984694971543758442256177069957999451794010922672086002239845048759556091795509045780477304112332166284539157661312425374843571413820433902119099568170756440753334636698845553149090827177974346800674554967624606264213330327744399904455033356676540096825730731069975102440943675275945087588543204922300802073403496266391148767926913700581832201600361686284159558402948859840732323560360534371092784669941462220656695468354718803796171741935099496111271254317902176123428672864413059938576443791164807970953525159322845480911550777606844127000294058333044507155252529133964260925062524963232839360980554395478438079311452535528252677446423593366730470390234795384558825106564526746812549115343541268633756922488225726132588635387155957513276343998937938641324673099146149183432001766158332478746232663048352370432714776215180950003183108555461047414487672273645632576197389963647929399566723462979396801082404929418941560819881445409518003584783456602762945773393112212075586268400095137025006046805387824017985087709357409944587629163244619569009291607171006184042785244550187109542701511723698965175857277661562686461594032924468499471972036940756810954366500380419988907313094835912525692754038236310184988434240351336293760524155244777255753991430782486690832100251925334097348498203451367532790445832617618113666152219760033525006380722033262412509945029254777727133381675576989724254236795870797736638626314926862120431713001963711627697312009296955255434355411292045940677963611813772028291452515477963526411155596502769049511445803864903886593471074852581054514810415489279734455920685463182815846811288918398398919495303665851701869748436638331263254056217141202233045426976122138286568083016174321021590646540617861344804934197623174430342458191827174485434014853236496383910605478241478603954909628356727106765686240026787064649159987451728670316865419635159882507990496628493179034711883322073251290864165885521227839357183348928483334204464890806287370505048687299934091345265779023800050666690031565076764741374626289577512955883370511707680079921275033341194019264622769893991618312935869775346460590712347909235382892610595638882885977985626241003851704210866644867496181696212937079400103795718858289684229621166162850060493266329894986801965996947953847535283217505923825713069050127796378479792687363719342847687535870566406839352485447676639002395259379429479954002066872475119449847786657340559723537901677618944699131471458959696988878799501608124223200401674269915035745057079912664382049747388492568376273563623040552897133509979893361689941817712979273454450825649078187424645869631290039325744158147214856994131279777233119234058995271387947728018756755865359454961657348861662657855120892915993097536972381651019405953924864086167539873928487428984463161532833115567795593098507712189454862528019333989190510524906392301956711779201326479746518132042082858662320666773684025948307907089599292154324009632271828594142886785987975494466608835500663107465655515023966108779198573784129063410036621198851012887698405697078447620056622480534347560636426536698772968390277731323303464273507147892844248197149872752858035603245576659556289231897188067912933113887342861132427216922674918156481187811227496473815675949449890048957172660522644909645799050566182062979917619330545811495996883954725655303250554000538009047999151306011132445335644065486764104522979086741660484041904459894889817648984566082730123544066218097792723051480738717456049757220232095586774076496927477349281984531614785073222931763290095408756586659694105143837170277049347416149935556415132000646871614807763479998266140976170694625206756088114978243626941836730882249908908464380535754558446655960660411086094848941267056118725414257835052545512880421742561554613141704454570782843757374437507474291742097104968935541012899995555043243711582845607256838475549582301621079716278502525566995818559318774698093922548955573122964419480945380062567400462997846392031170889965665496406314939306065996053436137903295050186645820710095872811677659504887967324223350985088711824498859909696348188637885335669168457031599738654902048568233749933305567878382079623948030593245854754952304106269264882237139878493916590682989700147462960642278129280179470121979085067936897382360757248609497704447436145144830002626054532317063326722071974615481977605165947221005245556471085672832203425771960682665404447903750589918051492723842820770836341092944619895311832285728825801999966969270600373747276254989948096042494278610473155682904970716946555041974657295266249056790273393791756962270363517618229037939373102616138600497279073326174605301473021817371843005439774937361245982213195464316657217151762255003852697391892026434774391796483007076815822355457845912857681740647213305055380326164311524174035197975352725004944248902682991365091643715146419086013272749486735550523702395495512683878375177146180436308175627360211522643181082365521936280544881158388904803720745548289732670327512088851966251500741604247718617020474332065683457860510380269770488673017482275257870782136887523301861220340120409700796544975158216894680707292064570216015831119131940577917718389436640959273293758936916100258520791927308265666330403835491076255257189511449156848098386123973484535948484146239810244469822731568274311469676449795361942258346314151412155672677832376085741693448652268850595300843391427308999634173277679529556232104859808204172892461486778126173789725746322205648036739638543995432772651137949209364964793347245187249469675762299174028891851242883950033822132551638245856546421529967338733708089444977479034470764100934329097113434988914085195517214105994109981438412313375394255692388123920567040425247933291770472786354849062147478079952809547399184749747489370759017553116728520786693968102301876714974084150277438244088399667546163189596694459295307666614766066771801961541616102771133351743470040820853530418539653572435017496985029810512777214735777083366909734692512103351204629864556628147890551756073513021685068095505561583181697069562970620520021894526654470488620622648627296819595323081393290083141033731731813430351757930954905802160515593443949436441937787678256707526793366990661506679566653922259874486533377066953740304126531931539271571121877217888931282329050822452732497397283761421072914798671439550212725782550033061988094894313668607443662523872733618064227383333493447327453435230182819878598736435897821715279244993590475491707012831251189905549759729323349913005362424470495501682175034445714788314302300984956086771895147428965649578183383069967060387686622777545001879841956888778176315483037812950115962486538492428865291959160719665888573325686245596075046154069163299334184640952967254187061673800722197327024719606917951809666216770045279961539665594435915927320307112823699084568752810637032569498538031104779350859503590730795662929895194467028537411462411941851758798584014762376846488654898878755921797164465673890394164230965389223578916055696966886135228631658761110836926898405910089667605378883190897069772957373979018027343815534239316700662956330008807545042597726032104431416795187040920093626465023268620573301312595791142696718080705978095256772949808508244164646689797405208723257170601806905987172908111034135947673149194586994353510648596048826532955046729627220043912397673798796487281830988862199346289644493636471580920552167706028559239875596836873043034901683882046435052077803080882563915662737438493308778317336146320640931214116504650980491625220206207240104882685413044282268279696258465087822172804587633772179334172584223585318277583282848454883165745030163218900133303853802467531650508785900952491398177659705129840090925724303349528625096232966407050344087628913040811857596272204160879830411761324286849153841959550139558174156136379044683709548702757836669624380375948670651085994672315592249654916479566437301111193813167009055648433515141627533837396712517117693081772884073446804350370287627532669106040707139501668040949338297817257307298081947044259369783693229484756055778477603780740258567190003109356379830147405468912651739327244367095436024945046399226879069100929636402372646087344926063784617182923699272925446246768142641357177950222313757918583072041059989487237480050196834613835979636159007079347571115030345868346436568212002017944186683227448012737773530132666332403055239244969440092719428858608224232596351144227038047876515565950742318078577471091586845177403736369232012611898993116658243163931449260825212546808291151311964965267897129165207443515636303209913003486229736998329312454678165492307226823306401192879628834369863614581120225730756771593373062091511232938402556319987750304103338188837161616830981398557793958358156817975508017908207241570320071321200139469055878539678954267795714017391605763274218979004806578941502179082625125535304858557145841639523760794198991444233202444132509295262737197600067754168936411256177305282504579816734281973231513062892335625458588618045595877503029784920050504456021837082935875992410930402877307970899343517614160309388783989760645653067916460671871973345190597313398655873559896899627347597823641077091967885684776561373191460774450263201602049665849430789019371928258571748700043950818207357058683967894047696206999359979333196974280110494535473465472980596430190619479801289658612596979345780841274070291430852536951345851185921714020550039302117786469138527408720061492854142406003161510892330936131937036790275620337668222838098749953515618269351163818546066218947721540698506977975528343708338492459368015418940944434995017002140282384837025048521962228536210431191059583538958173392548752953422142595015225061824837292885243256025997592008808088343978147867353038176028378782197038660968046411713399987651682740017763681456979514944487826896379021398151703092437099931581004193726178460680169600600324439735063523868859492678180252517742354244158280525410859018774470872530833611566578257802869454519879799195720649689237888064771763820870363413986475033009338352104906020394010764683206680703747817507409883290880888954737703529211039377580896069302401196608943092586004103309458216662397106181181062315381551963475097983578354795056639978621343759999067466768067645734264610608588730929435586622280068939905532926334500427816913309551577789818606762462527423604056883862638590664023161395176311245286930263916366282315714748058485969390991721640245041000816610586935971545261429156256724073735807991499220925987763075424487310033950910994371999806702162918310412457711317523045464498588418632670112332893446527877092705464168220471089483492720888210831961437943180586670392088637107833664999560436895624746121106845337614930989362691667262985873012147716813361177835140727347049154304215315780358743709110710076611820069809585617714737905295171953090866359646857076629713135500193470126743892630295255377708423535681371435295859032865418847941387556901837671103170996411120701868318137466979337207646277895310957305168853996027562957648185716359095403889988968957257206463297583032935176690039156702344126083952810271892736734629918834364825973417741979161544132748271271842736324867611299192841895760817858689538505466669448665288625052183027109835150582552490127466777542646989550668475651258028616210442061441654113580108778275621173520016997756554414361255774141550149098785368569988550523468493982861674901647217626020982026153712363999652627283567398548587730476979962190994314362035260174869194949513424727478070254406032823572343911197493874125256372307049069007981992605021541755043033007952020914975546835605277372659393988745142139693583903238806943580683181071788101113488612375127751407781044999454247447709321749092876416690988549761840229876447622014413831446583464160351704012572222873095088214563148951219480369684015632791827787200925654990876695594000634562467963837904061952966573150572006572709652028081040727589843811134770766915752021918001217755823229190515510239163839867064247018867426703442660891099242865239106728008775208437242294794797816599369216500577203295921642089241112710681832116661071323062478676768116652536841530923774443140923350100106826923707059400301617335178285332960969041616042065561400225401116972998129812717536040632801611355841749519477105614937501945154802057214653610302535736969442487380854957452872840844068467288640884720054219210768132167752517309693042983220590945720834851911000148355038527299343951258151735561920551619027870832071339063294865343908532210931286213743680232201704822586464756126710356694918512468571585240646047812492189695088120103040952047402138294077976709969396135513259541570754557717715675653318765390891673199421207715952293144836218416694192506254167126502365451559889632479217229158633758777912760202004028636806826673173447753675275871639678906074375427884754843199904924473575916478366860763826384889436768038817884256850189554514954862864703578546541382576219879958284533885808870095602630688775636213701966640700054187603698737411393633915791929332991685274842027316469098460811576823951186127422356437690498380451379658580100128486090065249677533583513502146474466697404529568070485881008324516091068581631377084277434254530459275695807614437515581362801898591660411982916755836980026250572729638322346354299656501807539607459738455890222770749753145290651119016223508831467582233406046600624168671839599139611005057067576117486671549597589848143318266125421228582133724805357130633247764696068620235976771680376855591781908639485917992068236646668833119727117192616072945557814323738369845172235806474906483464772702676118495329961127930392213709332719984209956146958866072612135203262123131268384562722811329021035546124993824617141753024514350657675752308480311407553336147339008720064982708390091448727205931882843163365821171544246760416748220289952366251966799536937323201459852090413189637755650814374881673353200681768138134007016385013562159599227580534016687188708676815602269309940879234999796984279148148858919803923304192187155697470464354123682036339843615031990126447060414507094828205995226422070431937726894892079655965152267299601821783500072736638788079889221754590794200239378001198318510729267645404036659507124866224544271922710537939002381589513334928956018493948096572910627296341197230681501244639486364066777333554224363839257282428517720308906376435804460756442697285024011577048703892178799592827561574351574200790664260601224583641335845253525467218107536996490157489162215829395942577526560338480073776988589388299076195844390190971909099148377812349706751507489532658384449647704126567837205882486663641908205782906777856133346461910481217973614192965773589759178731664614712309993733343126318158637709613523266732269841341989599776406236131637280414156295885754677441325840528354949260107349197886132616136098571874009364211767522306705479513384934303713765086829601863900219012705414943250700527381058409586217258964242361662507475616882708376531023327514623898004796072523867908065306993739376300908440215664109683871928082460969856975509955605402915803676441809655687316485161200009945853189455185821623046838103346133030592731549048759016283862780469180494521031563379298327825178961117534540871074462238948799042903247653339354110597657105483868707954260790675367382096293237245474104517478862214751696229020140483671945619154773550688813090367327781856105128797765111056962145202717407024524428174346559549076819507187843297774943872561787577387590293987541503813591515862399894467102735216445947256118688333026283268087411635094896203084573869209152229697972735596961217724402965796972578661698526642788784510216147833394238531301675828516541622969667327346221437221997197503777358212080560529997626023906953261697181144063592249186445581287892486927658791388765244529979554817416142715461902213399617416704796441723502904219095427299282762471842636499943925302018246473391780819302086441267105469493938166938208046915657077735280008984464943119719088152490091511047715782969549827423432549064889985753138157441162846838720715556617255627361881811105179294509130869972727260797599733476388939625943110678357343303951460699381189867658728858958845852177167842331220632186569219049883848117648748380144523819357550326321753068963349001078768201069187619760703390107145932023265170068856281946776322401459397069350634611376029420885930315299730149983919899049902269417203881238663705181898137098575004264428317960501239086123283461507537634760251663719702884638648289092415694681926766078363359849239752458692293231046869643069411201997080296910229459405227861678505754367733776170502063814274901718427912979286062867210012056989696798785736440660123871580693455066958714123182568946880582418057635166822715783717387201972471153702479642712236827695276024781487149168582489413499611013464250570484126666129702490684964951321738661861832858671636695206793805352862788834827735152124547238896386088344460264639543817098311528904877313966995379722713808534845370289208124399442520749826751090335823644436490234160547895435448719117768962601673054875003025819686376307571439691504643953667918601316324122377092080781109891416583147127982457670592435806910217880560217740693686136630976073548281944901292223386481077944911584222756771698654968776821457351274916044633781828072813438569027359330908829358237759718762723950279211315974115408091999045001830707211628620665646703473365702137177485389520665565637415506079252984099245505242981127156692072588661768259849625500437704711022771167264234380829160335089418182713860138928105790540923261660980853604993222600494331441125185971648944431254816815678567512844730314143856625709990184908894281324643211794165374791178808076310160040848098537352548981086033074955675540183352604348391483963983160535181194203663474922560621699385438134915328518369491776061961836993172802526571959192660575887595613824163286441581540686730471603332768820044994287417279203260297574873079486931801338744714713713453280665480771098966677454068300398700963140630268558716822939448656582182636780143747091384978761011038222470583028226167289519986061604910688690707125922684472576296999002442217385882253209043802111237147409905715010383416399493858710291547754779228419385266922252204077230475481752498495133718089410109004070465993577340473140905396841574203170363270386897638809690512708211101887091829390405943108764378324206416162277727571255226526009172400067240843076440247387148041362908472774500258598940612436868474955403950246234946244611423010831407339975031445971604770528600529795695094825348493170883048814555205816468194774821872213576580683554798995128605367934734583067131332276522754927451619391587184392444868178666793148077970737710337335240559651525826889238182513515682372250294794546309964894882108294077717937998982073794362245326772278652154044751394165213034438536555652433073350846222251827056579476342855642187463820653219886045483584049973410364999425776954675121417568709153571386063342912660218803212621831387340990603473493698784051331451475754703081623272888814013160816852203250048168244407795060063767496857362213820680790581960700300580021719617854357204611920845224394648005044368152782672065411718436730886351648512334773727523197167281181365487310924289426049386118236928468896801863914943936269328452814551568620417124329255420936089481118617948729968642731948691047367229549274766318442611515192403645192910023203575829312902701623651212437578545815075002876967540463710728952304919612358943225645322633504484285114241861875451676678286771704738665146549277399305475352669964494698110961721084816530661279608821705434091310749035690041269216167416173075516452590406696886624614853734705932852292015098504370750586067485017492728016289373267270990716788243720670237987173937864272572648182643663956043331269384419668151244628194136661479437392342308950504365380947565644948085103361427248791854963791414682396095427485964239006268968561296954711888937697338712911313026852887681981854140228848360889478363241736865835696313585839739641123503362556699892168220227698242418751601345752257934279902371893114621022533203697234801334912666229659577822952903931699565799072214837688064672951253392171412640464172348304370460866542266560732469819305692584008580483340479279300765050183454930291333358885706504892076639261328613195467298724251580495465375123014991949239389818062968862983758996774565156938535705305218251437898035973119195222033284465973746464769227833242904878640122904688578816117927283533121845401508350364903828440700900993611871878206456691133428376503179894802643241720482179342518216276375414497940612553709299364208867494385341031028764591419067074806584924370073209348017571226574938659893103934162357986261187923076404713383280090307557952107373515183149960886119610409266593432263086908070666397821033493240817683781901655487484685178685386359422465547732030123970395773249268229463195495926936018628484570849645591714999221846204968694464503719581844967364824109757023224616437608984684711290081655321835327562575665192370400494113404773626827146136153946831835083866528021118568545747681371141214240040246049025486595237063333922316073190389461739968921864975202491654415123770343462947638524741107840765751898321450735500915920996889588280105010481936106078846795104034048544143633367712202803382061245570421826213708167891979428292860610233653937585115483547349885570455611274420957054817996943239998097562248290979420698048347572481789804326916065327582208778455911683459743597399909316096935928012118978102189084288022707994418733858784782685246530031060062472737070125498616320319269080124633000810623103257406709498822295205168650341290743438941554900979139012822629584170299674413392525735795986485335635782482264538638485279121410057330396943353417666330069324278219861950827042637212162532325172034172553342904849963048907580358903770537871870136059900526636986274392938818490158131825367198529825408051435914271208448795583777592163352388362738957174636690391190211283783985747901835569277305164347102521385051490145651468405050944952182733330004894444176692497348720116906016866541527520024645155654981953282432924201930334166557850652626939642000257851565985447155938188131040966764013652809921189176101623593906547010258314635390682723843437176659091863527904916104126197199477027779465341132505439958704743764079043489203004532300510462393415063257362230960545363638707981199246445221843201697244778316308350783601388103225793213287060406610955727887510991705794826319449277758548659302710369636100195651534745746745478261571698305265921388377245256313681821410417917686582563382193780293590232154619115231393217641809797595551910743328208432543534810812957586871994666236662397119300065157702739040745647232120612027744576258199194430608868470283231543222235337520861559312663562314440058293856412708024186699491045549796533023311415802790347265785762125046988471336895621928191382073672961403740520901982439047056554560791083185376746315267063179802653477824472782350734632974675590189912560614618821715864795750293484060618546232465097307875617886648542649409142977488628490271842456082926114516390030594520130251738278668563753581363405176417395840480193318640943409829126709228047548741540562492782033833021989082012290935400373108901577969883778452394924042908541034059522163694615184250251165433775896896110361421890753566028385872118331800380987062599489998565239785845225859419369043217040993138222313316475974687178782329819325575284911832015499742069986032467737479670400693998819169507252874924858165184473686061787605032730955647101289273769881604759089564051409815332671430977806404098281277237617726690344398702281245728199029179680796766475339250029753628255656550029967933302704308363240102244700387688100038624414667961632587881246992325653456300171073475230485715076253413556805074818678877484274432748931178858470805064149577082965705504145027309404678930950895704354399541961740662912880725560500024313787621499448250820911262274668350724404387045809633645863339406077899223550085008669562639873084767631484092262783468577492502454665005858389253924567832550620337693277525126524257414689462944910767373068674847678590836434650675852133150108981825939998522003958549820354861042179654142454102288248426792287195845852742248117562120984435984255912656970791325735212215325052705492532513777043689271451199421330678535046667288524790303053905551850920584421328867403244588553917530612976976417764842833217312561680172444070941203430697723709016450921183109488734769206794282255457695114429864123903932894574539541042770685411891543274555456525522493176921466032149102989795683449903129920578036671337653823139974105064505666136945808206096172053140678054086620825100316633155819129474057607581020666443112485861093907569220072434104174358914870457079085687246913155280999585586478793961028862210204375522110053666537092344890642787608237891958381564607269978520399083836877444980928084327983712190285975285303836015859662046754706161059373449707537134370694454578606524277584345236902720077719698799702978483833575665278451889079922079614657723123406996019960821263627527072543790405042282682205428746200901933678003052135500819010812144342109073559521058470692007783238959782140918796885347178755712868657137366329538391705699057110880855375894424148075316033199585541758366356396624725649627752183442128768653412912317989070387695977086105939191877207664396346248165463748584832238913349868277660761501372699631308947101156622844084452709660702161389254867201841481003604066859473317569156162197857454080734624789869390170533008604022500029609574684379749983419003652476112526277917848868859012688010142539323874535035951123027761039232084063541930317434501217879502202482859069295235763323126603189620027363386963643732328770172267583193074578848783548209157070857849208138852641747532549516127414668432033670399936426476423846097513101578975187546335510923762868296449593575577827416621164012789772245198574940924295165141724295549460322586130147398368003752729267824620330884594309870540822503267647077408953007945482570716944010548107215419082988426256942669599127728363570609986631542525894268119797864270427855195764327648400192063267173846633995855416274834377548176408195626056202213792314426127739029659227200132184244138102541011659465301422827784047528726522047985600183837294260068293092548789906556497422223598923871577006963445960439269651665995060937479180642898476568553205259283247087180237082884981879034920830078512568732056276708483714817667405459262675721283892490811234405883211939172231446926786329180818806810818295612425426236044224167923276873966016129518502883349908119625824493828224876849472649441761453109985810438930649451734874508072241326561440845314359018934901563152012905229471262106782825916689941744856276300713998725642222322891308802165937969403430857608562928686015239279134017876000649019305489663255513816819654043837260791188636095909251409927234231138205694815190252524614141913154704047550107017077062555224333369933179379676386871872872116896747515624329586623674522237505834434735502391117297209805781072084598283987753010594018081258186500950611538162684393611983008384653969771287066836689870028730734184137194457345816940262581100268749866662391620385862261504513159803053565975883554051470723888935886450858996102796151229939761189415123100030529236474227884342947125303737373592754039360503194808883448482728552818660342191862217399325944909545424903197718553541342219772615741377342422077249852046649869587660021289826111530824203199062813881490648353465000592643625496184944341179800574829791138211761069079767587574641173812973485084870920220590718001981229596354384369667549498378700607096745326476209024892215206119809466085378539469237242868702457241426700978120757488854283893657541249787642466656132504722372653715094321540369131006557379776755242954533787486307971698588365954098314277807855676366583322522598565536291843231393385761852087076177346159773343102262442062801110068710276366914195148042637474411273776228970177825445731327420109664945265542869312560708094690581285310036959978646173743297113350846219036463153583756281985538600402837522749816497878300321108151394553151651514424952322439117582041534605397697491095468773156831821693768171088522420427309273328583021575392604112641156734967626916510016477061579380086649298199777806886742451825012938362574096170927006352665138918935392248883028890241893702484330889935858226074117913573471018318133302929038191995592196753415768998224054233099068940280309340216197902341661645427986036805766325968867388612367786919125824795074175775047545412555968150855781983750133489629636327244122819982897228168235023031776910228484778266421131684235034662485755610669957062770600903721306342719001502661015781352203934925475784831155688156204598328824060941794466090643254884652241884609379061007524393732071312609194367731170244505240714873795427174321929843055445843111420403811828380185000332405087449940061822356804651439706490281196386691479722277670242502810063116627917648524209575880629794502950566092736246094214621529583977794014922221658974950283444231301609569379449065054856426738109337544074891680379430216448741809485843260988520231564200050829275657314685811417539646953125681250424291122369375336478972143463844914283255572880444375790991286765247920477218753228067157701443597591517842346914035738035803283569544186804040381632745105016182901836027896352470666928909382201030926034730748552187339523726232445153692319247124698603885823316498406060367362940712862848106946747836131387382599951791164084793462966256229318195554321610403443491482876685765936918831587511684970183904987762787499884825413766608595026680816244179150392203268763574362198387937297717688844140077686723488668243595081098303620382094829182777050509605558837665224737031712083481501768366387172333487229990595925685079935503862667855921117772301196212554298499239399457512241526153545729440218604690480116329947311196354607968774222577371086789948718658835784722413962498091777836105719205203348086814969701426305005700470431528390002188751782713122138582127092243423916822659430601402992024361665398536966941962511045241854519614606169630466576168198508763635909102865972426805993327096297798729831091128298015280159987706810125807409394960707161218617703313843978884865585300012959265446946269736222349906516957460234904699524940513285476949558671051068610217984075049211867315454952397279924231611684910182423872986423673840486987905820969101736131673133357665777704992632669036841532046826439844539948625518992745458123690395800232403270463529916228998336408668555426564999821406973739521815157684976838381542986670458776151811554747777242239742321568759782107777537470814532590575765568788305706846400546938996557018354359559602038390996706577652725462644297569784846044208317316890408165697171369658777744785644147770073554925268349327466465733530597098674230951363585178432648799556081465792601306826984655740548322942535025382879758604887625009945432334543021720398490946371059222542966550498477691520510071036863049171754502864417588903126439909000905909522636567658073489316083762207666616062578129605314956835581148382269883393989989693925894794536398648820937483535454015101514851387690646093480467982884928395875225147694594675828109328862239742196830526072675760027714698435582714930226515459898046936069325450140345930596319264699205320688345948788063164028014611208405061414947238423014956083508432160308230530445532151850775318163227875717278907981117534248959222103204666268541750456205357323473117705516406124167079051272512714509468044761123824085378706797249207300476751734604198230567476419809038176165941843093450738007540457766059908512625524404524827062179064648765319995885426105747439343070526186103880402233813741576341277667865918253550490090941487506444449640582833991200890203189353171928239329888971380099736181127411121641937279756299428781131573210115842585370175552390734402563849836283577968994022558010824865805203846038034187777569672093793304016697601424464448584318057906394503468228389687769485989411162924915372349588544684995222186337687494944370546076781442636156057741513462618068958439438699297740557451193071872447790021879816138102380385308793633376323275002227196552206494793267986843239203441502458958665151264307904519519812350451887765024338096931669421779980700232260543452131199466778896328400473981797539482798950426131173344384066626820109357262242825003608093022660241037316310954450544328379076569314422706723495898609622564680102029941031825474741012992642032536114763371454432292482253200398343470312892255298187737123397912865457661716354576549387423594098842652686033485573567067091401240391546381332410938277488928644559670094396634153905720927808916538393895892884214750583155318321072765154049286879230086793122197922661000048856663622062482826094490780787303436523491921407424770111616629222740442880777463287106584595089002692443594861865146189858251604216792806402079474426667756879549399205316241851065955423793556466814585074272775562878201275782385387496650796201831990997148493847161481631920204737384277943879709595775299742997123702530573255004356369732496555340679976673653579097660381732792986178061396686095380862233872093384242127407526764092231340841365490572162615797074044809346062884402003121734129286839651023381521839712119097234146668534129049330423150714576427405003234148195685858157399250602180592103417354864131638215348315960064250223901810394909050546585064032323875636828915693614353558834180764259448880420884752655747081769220693866035423631950547985086166391896544942493995460485745246754069589396503913653467382190542437067608141630178437649777009099355505491745183904421976823719888105177386316910299013310959190093024728423317422799013078243178350920982234851779767638121643664461817080795600227165935466359007398098499258074824073093318801872269471838649616841682851584658013885309823240712411744965618692593173851040461561713038596978496935322407650315194586359755466821014628542666882986704382614712620993313569892374258170951047140394987572835047489875755974008277520853890100026726719339947133336881007127441869655421767238377355510952155406772659571858214940833029395631642764998333098720572692289938874729805365649521147252226213143592674595488890276442631634658117567599013626174261415357298845815264869403996633472478535122381564872861888098092979074349371831308297722709342116769286217996513255573155178557697388054459899999352815466563828906146636416620459785166203358342269421686419420274906614020693950339942620667439498887859825596810726205013687613252604808460311299595325817144678789149433037890849983103068244759397565192244585053316203904667362980204160627227915505606635386544251848332546389623121683938672953899753507520738380313030062509402822604915559898687520704181868777456790425230685243587833868633996690529334178238900117319939948995090724859133213570716168718210648634434715831278485434068782164103597755952378636255924307589154056329970806599131378714451087179659832124660963810249454516399505305813069964310922673006926332196438864142036510646323531531387864133036063759093232291771716867801404713420505841123186719277879909991033217020509864473848429400673216239150095370919964753411295756717767800027087092852885789369172624054907496428561935810279917267874221400298821150026658557154852352693843286492474159780642188496902384507476734687438804468217008672503068950731004086271850387646526027929893838702397781124768401276632819836679682604098398107768454067489368070164149660856727693713265102417103431731482200041948851227765485092022896834014068529042737127687725742412492797979390406889888881213269108095378091818754178883407930511225467101273851317824251231617304028672990846626223234047712563269422915746963746343334178212521513178992108925268596218932214905533238308622484768254049236736707707284552228699858004806185337715720906649370062490586518015085613020839463313628592767657131359364700987488121408615403095468947919616140750063543463496536966449859743596960891152702440337956727815481417753523227692535515043944621214335924997261013982562682402780223626301726114822900059229371126513302581138977641564088118354022550698059500491536981044907790330678048025697251069244034195419918720312620312724350180625394451808885043718183957866991143671605177149566407562014525037494219573776838694100528348487382205140487101124858782725581249698097977208232948678088249657603521185835189305767237182545278115686525655611365428804741295987854761902912663513170340955096803057183027280299604616703218345219437620284485123609303925231956171583430109368765862353640416058668021299642318579462179379523724282975427765960510290730180247073418303028607234074652053372868146772862230875831844764892149997409811505556780980367831017447421918906948513936025094184131011580314257020750728391082848638206650513111242013730783006389558173446460769754338284045097912266481733595960559159678031811305889281236468289803818851931035728793010730537459644721503461170010740749089389460028454063120901528173471439909464080740917039086990714949463155485898092319480751518747128993821562706069928311867702429535499849301326110707470362300571359795280571179445267178965658073065661515423466460019815555826844720772207718660932731299806948573984871108513680827451494017748668127073633250490225304184729011769127272312371531531012241338289344610056996260856998693746510840184985643931360485677113179850795913565346598667380921277633041059962835727528921365367923297657897961936854737857791369469311866085989117273054620023859530513940261675578017292288383166596034373210273511863633293344339830134544942283983719534168377335170567660176839927066791279564004502383371618894407227807632828083048025284157581078200472189406646547199782486409071994926744844049667639108875677749598553387085119320095826048014953444999632463129456819072543765364690748851622909347295350533925771207146610015692141227286800628630189579587691546696181583268229557334965802944575573242893743153130420416695674803762655083127482144691729029425824532107054361518533530495587113292815503376419872577539362026638313213838978284584969769285175994263210972458476634756660762647225280259358412743466303211073183380013226561297349609730352579134216756668122645741338881674147134810839834106190835102946955207405879424867295274907876983485527654496139648424609616807617697717922330482839935287338357529856445989501376191819681304764415798675068050813440624140321434700705521811302398412324376373767796112672876770194087452934421477300040026446743207104410637309888578964832756497250332633893625209581162576481680342049722212607570569719417467559314224746848930434316192812100775637771053854299481890993982562632520770460320942103802940571769363090530814836445971960675556158883080485499008046112097079558049265324864658208269671988119973646035491189945817563797663215537113832353708575139220363910982728611428101016712583691769482704718380451059145174185872555511139366015596350778036289723582630895038110729707077666650797708434969765051238751732021442865644308968610775358856223931819731140233040298741365967493590646700703486511717260785600043399863260976292522459816936480828282137296969350653416545522909842850282027138270525786684829077019833305440458998322278454284804178202003432463078509644973927191582457941835859572927426087713952034209583075636140421543531276527295471803120385288619797096086036951360470335818367189001450821676054244700864660422127382230641465508299199788228891089967909576132971445045902669709192618133004243626648939717367161495823536939164473673385489975743129478011120429075660336521916570325294009787120789220243257902251671123529496112191075696946655415856184230654226449385742777945974829734836307531282864173161025557929915848598374827837618477908476231004864617154011870430950445642752872920607836791596998210120536021514446162921242672615961143247443620200780310981832158634620685374814571410215071409712171376672297466242610508711457033072133581110858518785212554129053320451886619788625482430105052467789310127304839096397949344454179798913063096340139123306675087093146530724466252633450693831516362107117242133791891791609795648995687882773701526130620465284908658984241626953259081161006886123343308376619837046808402102056862479590650102693767924119161855629433440724177970577909320412630448934373576125842878599545900748572271282860585580562959918627502705170320025175634289083621190180246713349710529931405146467342377774488157424973252242874239254282523212210086281774615282048076563459903258837060297030712770851609328528042108636601118783399155129275065189998913306004819175286294674888243771830936423078624723310191045636375893327124354146359299044090963622336059501337863872212024280975408802313864014095321571054725120720335941812818449232208085180866626771255260868295579828554420881509107972810233533308936236750683105415870530726381050826868395940941998777661516464610117872500806894465810000725395207269375549415257614801368808265199530051680289793854839296233345921678689212162546948840226761128311633055176386546470975127255940295901355133410045610661725398066745111292696145057050778844962067498861443268358522976646270651757951020357708898091265033994728598868838190447983256722319988700462492464329629786570731086875235964263357555162203123693901319239614206990786617673400850468585178862020918993921697105634122933606027321403448764386920805373487614594791119804751405116518533100785196677785873415841585320719455807695324460437812995328117165990597918860053117818754500201196145741642441622805638045424106528412259861242053166663341017304844396532120033933331453801794622652171536769280228578071494175231536066471457717407719628421698726639461926784172011046599013536809913066331371767819473475762410137360036962794913765777304264219221495848285928275730430205254893129978933752338614739025487165709636878293885881349102509844457762510714874422311935360512735194159169268089836283185053332789532110870982832554541213943322186620739174009395885030204654519215328968409832351174612155894335290830190414146419947807303059827025553726629471721335377618216481331722010696533356753266605189106391095985138292773481625462878680517642648149500007642906912241141400436888997763248516982545389212072299861793484053649586028037751621378673719581566757886817844505360071358264702016909541811279521112518384632982742910615483880057145804931974710898021571097617381817884780710189641768482760068895627356895513819591511376494786663310322939028990941983190072807184557100176317126931306925905006979324336857834081259628484214670701993314912648684345925642485695166886007599749272047394641986165899902612286980592116727627512285043269308031544481381610002263567504302948221055736171049035560942159811467442595432359992455962283846902929279323437699049475504171764092966152666100681234712317976537302802648765985372121563928218886468612934769803917752098795488057818974277785858545911736087134463063528294178136856733981282446165009732564146136588907018685032584683721060404467070152228498954477242690689679210662025099488663728139452558724385318816675561118433483685152964279818440075607388003157627259451218309250718635401822372691591197991581800517429610166133583934817894796348739762343522982679767797042060536472698264168961882416176888765099204687043873398250540306224703246919282815361636813137406758127659764388372142137606959602289960452178748752734167723332396229401903113189316088139323464667286046017987389767360455553020717547161517126085160855595057431444723130371850193241684404019510875552965818793300787334320385779639425521041519159179044548406574842096109245279262444352401749584712523919874732210972521985370475418643270862246104198090874259843542546550913902929774943541518314790729520163426701457876969999729409556355573965627385072450083615494043010547567223610529962098831361017198971885302858821187135260434182515900297514433727230516709163616949730110764582097877020645040391719718308663595683029938683816097852285003419283138065484855306685222440300838452778931553783108392506663687539181319293563580039017285758342408606468989678323215988489122792077278842031264884582304959855691888389745070964671908599364416332950234067286510402888245046378973228156317831929768799444122043340112218233519438648962055635048045797294814959362808213216292461828129810224008020089308764561862825612314773760256782237337557969268037470172988425325228887765208349638901283910463125927579054394470586701170120644944034308175768289734345650697087691205743416074167681445917384671451415635318079752580940391173562083582986108183625805852995055694006981103388839480620667885289750000750287485281700962103568193342709179631276807515167947911482061547316604240968121008937971072357070209989264832266923318176780741108115545327620715569368183230774714702683910315996008249288801534067800471092615014366951987709735480572884597994681651590036929621394654807205072509292383145626955579408253732962542734492988754472181815309242637338034313727616442503348859955407312702664420148551496749431228152874962606362027310262955142742923956412140882657313716519074211008235394306384726051520522761020548201831672504984615746811515377683699907581971960601731660669097557807185598741937681223952133397868206164999301536135111723413403832769245568018573636575827674880402841239607772453514798756161576146333216427224430782210538210345133396327537403289738367246073984517098360459819905970006619041342658466380275523849593149201374795829773550537572532315569748140802029879971890342492841610714677139564437709917576310817933283595512166050295265655444569311859983197575431670454662103091939202176014659230099001067552020702099391851397323104399368729030498195508091735458667273407447793507217644030593325949034856774007268106188712891159961840656611760967959424720959097395768908438861356972777143076121915329081545513272238265741378569884520197051584542431363932486768402201970824749463064699973500956331237737199073795902191114849307619026032949134881150559258521990294466628003687719431557784051606938353944429441634480509143904438626069326039866469664804605621703669464645795100446024515565797630436766326833319346912968086383782176001420723916438546969521088676639424766101479755831846294788178873880824240974941771483573186105102145186484838703561188131714399744217468259138453853609335901126501789432833624087967649699373398146847999624519198538542873556746646881763042637363498464828256045939899293410913372525555054399690289159635406497900063848525417995896167984519112829322351827827418704012505368641552665962858642994121234430477981746503864616364784852263200181510989825020206000674510646636908406362322874173509131986168087183191548208208834365729472224410795827488652383140418744029138363095822315640515376215746815703292953811825223355692657436711189362065647475497481378076858947833762329907378349816749371274189229970495506965790691952718166356200656871628292251624380604764412077516999092878218360867402765887398691923047604341539363447550270437075934439877845201574692106052285295418421038155291443122544379643428785628151262626125149236293426274005916453221825815501087425930054561725893455681887141901340929970606759288795713823135379615925159456486044246718708334735770171732548261953750967039432721971489530451198091674640607694767324091242874698849513351075585657096872878108405101934537482544691399391914990304367692064382323866276809653225692779353187290660148302840204860574212307082281188831396290617758709044205911482479697516162499776616572039048316099996361452287150241735863024108202964838459881345436745193820639446348830488466491657897110179297863597135664290842333541393183211788487231729800161154451986214549531723731922039288786317686677052536659392867361859100334137909336427235385653813053658979651900689770629508719251851666080210224927943856924489566014961762819751438043509708593939749323468833672939943214224606452459409189805898479383369979839507331848042303182780665932338259891551952736080757395602695490461347983734039083161336677238910393632309208908830151247355423700908083550201241857907621984489390786267986426890953445236131998436250400683022530112272350936425737498629606443601829687600165939654814556755577683047703401861413055513386500664271951944230296531984049861703072749096428470540467520861502052028138601679184677929333652197688757078801069166899630506701015530109859369865233372146250172237349909788782324813964679232019297242205785372447802022743822368230687435653346866631858079899304498596249377759625613947969043183153540022484660856363453427489477289537568970944505671797399175256802271838047238605994665373891477733325257660854381326978115857678974670829927101210138475347767950229364842461820525830168256324440673577653121756364306593466244161517575328171980917293831866668060134579011054105114249821917559754239194272165234509458636106691197548650458633345447312807011626634614369001281761691774000361357857663494218037223508926489486966103565336479319539709774164717572058845549550768601523147304212946771895734085392636018885240116708545100633609739851174130128341735027156946690540295491829719351586260876733171563638482375259843507800489544079925415806257236161738661422474380005641076919454047021756673512862551030483896517285874631012048574278102584143477342252632948033699992059869157004550281630206843423125851021842952104276528116354555179017541819226488394255678260384075863906754975528904070722700452182636242233845691571076032749748427740802676162055523681301629895279194291157921366108959286798617678790539903996191755538389419118681907212807227546851276629587616419351316163929515542466628563734079630282665931496195568960733592294795593708225846283934391083724692258226667896274339296112600800147111659324234988999438097248992113571585772163405756968629352227331334410419240585146114764312922077069619553146575120371240223163004248370682542224924867224810446407652875906066400141599220473313433620806748081071189705515334746350231078241985126342625494414531591655475630001833234936566374007949908828035304707199093933910894825161185222557740439643838696225956524281831853412662708231971645098479812636064690860287177468600919976326304848958656044634946021425213797065486924578161368603575731370221520636216147326281271259566057345675425017286945520707667915235916947316316305416116185213607442130967117176946258683214336400379030533244748615807470202104930541681352900052370490045848897201424123845513211046349171076579894373601087471867386458529440113180414057269546311726785837306669326909826090738632185971973587535705364982159031646704870492634719414441495683234967424546292401882569764632803327264874375068608471309426854514029321442801813657197926323364240328338457159720482294379403827447422501156081655672456882205775328511971344906326646293198760699462416269961781867311916435698997449438487137017346936583114650363573077709652683524246457130933397032100247701787923780011294805740975816840061070167821517091185442958360803205449575518697586627880563577479337402084433193970973734740906342874814838037430273389395764014802381613250646944206350507506251112785224267699071759605633361261220538769551348692680392118400278029163337542537340293139714294591857609404538918442927322876630053796895992929724844814722517693124662623852541614920768260001656599286847166681157826237199305111078467420408977684827894178625341889327470975045860852554687225372998139842358019153599092820151917654329144261890413722855966456284929547670475884499114076557381975290062885605706694757997172808385393871690997994621681584941747700107077997893450689183507561788549360265565281936927081758755604294451957667890393795662157895640001494712013205227006218690200213561739897054889017870209240215264912654289445709237283965811805961750082953243914723982679710958785182777202873185618713308455318848615757027668633694049441618307767838132289892198187535344155535660384115844943422997951510191448355631108356849253509701341258252793345066834276814347531858902277578288375571303740602408303853343488222425288030980704463283724976923695068619696465092515296318232067874992305919306759009842425840664124095150760290706825050115984589312964266684992882872758310206430046713037411151897633597407967939587061629106419505461782664674178641808581070460555629014278489528513612427603965182979534147469179699758638362701132414505189495730142555207480570390121746625561557599880140107937300909427519591540142678438895509965451349998723499423239269674456934175684413413283659155788658265962895102396584319106061108627627866580265473753888329705972213226476713693070562476291147577649430504217642412070095664683905070519870609303114455412289999366127295772877282706278919206289059311228667484877211986312458275022166138400520406174361043882626991425566591886213475325448606466093962687581445493230151919012861018714851969700021579696788164862624273989100075248996426940011896266183958271802864399023947361789185013424545488560515322991060679046368679131639043836254283473638933529070601372846207703789774954136398529659066466526058603947505888980001621913288396646433117581417581734311591249508895268662554296641046156351108520147415642343153228896802288243823528337954522001584937141409690170273882626124602081269160728825203458430744386648850373630156302428934217383844675085244963685896886560753533493405365247227587072328272739464163617060360489566543711022437540735283324906204631408304111471131446470344626715366670168437859853164485441887363910436772527271978008951742843179902735349397145808128132631360122994092393140784263811785779564667222808440152404063129226576042973083864801078314223015926067722945837973808872182422226281560199709454297561852496020078055229847762167741327223393137772620254667882936349163265990617563993041788548988384127427963525022441706778254030272506474647566326114932148213186621136193468968191237714034003707158342254550686928847362293617531782471265777509199264258060706417266563993966209383848000323413743458202970922351548983721085543189021954697277574683340781954198717318931595773841519740790650836735766126348783763616019231462216865036631338866737871640760934968118671795994751851939947851877391460102676200068039310076977578937281367962765225847734068198396183430145924474328206634560614732749483495437804361707898327097022527004387454062884815862795068275999552367816442456907156474406225116410722684519475238519418920076840370880408975037965224350385297466591278737473369433864395978461506457516779343917964818537539879035565382406922857619922965755887954533423396144670110944326622304948279352519028496609028052176050850600101423353614531448520119922861359429698650405201622479687593371222489117024212283504698561211961955275105086611164736162824131259734586411727715322067864462826633527660597001436526491162818942606581846670129615208521420597107106609878071115850149619380937564887317772829658976456726474759669872253121116283854633931503815677567804666884886918979798457895819462035669741226675092484935369427018141229630283201217738227773283982461986804397424233610414146343214575889004726892675847112997868684699154971710530032844880614761945884409133702112247163298896564311646079244923718696902796835823493315686280129725646667301655593030513464530229538944146756257515485816650355427186687708497242732773119890601093339175662369065816478547931099302483110318094097611041820030442064829541235745510413568669825741615151898371714156213574549234998789650287967300072391513651720257053996021603302397800405100260450503853646967836278032042678893188726633461650619798600779317858654821875265821895484405011634141052110003150832284379756200027113356542762877919246121650518213463925567642793255325258349655660186838799276496980174583168346666615189337356925510068916062579784661710351687589479614049463654629108462154922036081055044461825840551448448927328807830390615733095413840111921120662921176335587729096522700053226994867674451343505820405968150025766784987798896763122467812338299826502316219941927672219719157338767615049620356871520779162805616064425942133220067345979644597117891888886912305640754686701475490973003288884239098527706089790072535335086489826690645913943512907142109699784386537576275159693165279400747238799142059866137050874844617410496938971152378995965191790108354189278771276116197315159684433357176097950721139233179517839141944551675102769334975668081687220672453440256903183459691629855350145693763635564250418423007870473819529818862626653983553443679369403074981969112437443870819854221619198198060192702381664042188655934254875984153210834995120968553114591168150289260826864092855076237128536306873789656048056444891908812638922500278025735333942737744930963233062803632006380299639073984184412345268762798838038721003843266894543625110825750384236997242834960482315647125581288981302861228571095790794480212573513651168098409897757580813380943645089723968034838311155456121018575204838257460795609509528050961415102432361793446501410795245111650144469448122393042286432924684540749524736591058134684149078570003335354316536874125502639764467549736355213690350834865229842958758545390576866751117511346333615051556629880443252514036427096494804490479910167993636649500880494020740360151798930760055915299431391202402453269006621119004717052283233255918688031807210240762465910357921429234093639556579461696843204398310968833961706702174259676429266500714562810288567779918443999254298547820616256541016222270042641023360142859945791207231632498930928722205169896978318358151296638039109072592820392829014699477052580880664912429098064746827226243618587198070142557971553408078839150358301482644145151512658150388799753940013980253861768674786563780495642339526005460002803641985185402705941007506739479654369162284194562210343805860852522269524589655116037778230722883195326411438094706571299501480896757947935709260971283398710548549612405928763363986480526374308791367635337953178399906032035027492899135891692720084941908557575832371698709437533662976924250082888885579488326741078933479177046204850069283534725236084795117786052213470230346598695634637823594411522069886845713447353942379186138602627792901258307874254773960101539972720566115615041146607238480018081207121819536040908679388581104032976096084798893400731174594430608355041585514350227456606116021239451049918877695124302555155046477415451324293835977885917910914389558402658011637349193815062507270594377791888185140963955194108410148890211005986853134146542053912558305989180889811500627279743448457235971001301599388951038172803820737766120694137817038660741586827828722368329696071366674293886148246172778758451684588936170212378323411759092819932840364164003304790361743287482349282724132178454382298460035486612440110320906388654195439416354815406860347471133733385716159360590460633579566007420988881808240644676726245290145287744545831608955648642710804399923736523793555429030609154525210177511398419743590808078321086582663687284900378246345737062743838833733856674469406506454398410449679928213165082922663660167857800384047519387247257956767906631540861131179440324086928560881176347929605234530195194262960074822141320559229777375551250831671178589518411199974529714897671812159932254381160393583600124431090971026279052302364218894295957287244284298336742639400571054110711812965467184630702668754025741863586124799328336882080175803530655658798398288699091165109490263974466955364608853057098792391749871166809741579486723456740207633511131586361482687363822789530602563435502177043848028576143551080216436587428935821527269412726389973085516562026275838526178936991334107922902097935897550945029773149825349410518089785726326460168598158651663366055782966553420649273879644897542623689692599642122768357746242565338460799077969647497381707099793769648829510833624795119421254500000154116196041775300396893675822116479839053882155155688974298622411633957202689072380031993074389213268494354949812729395157023922301082297577896878491679842839677889820073107808915658067475135746537272076367640098574935498500984063197011675568162022828673911039745002786033854354218458630500989157204784422638573469831303046805138410136184655150941994479863143102856401669924659330754200584139418522317604647609273932843727649807424804378288047340309868784279899981448022337558159813189334420211759998465078828649048863200766812674809085150141507820945836592787178860162217185976694522659467583166475698201779660130319975023274475497825183964119400999858036618897761295150924507745924229797433425605941330268727800275519279014726933865218714924867666399555277272380255648865244670256796626820160284793633460030194931356060292545554538032813963641680211758883391292261075357517309489330241044304772364603674058478269209931625142199767960211929696222577066612490492689638554936844083862858022502443619997200741721674369854981963969396543767303576928973980490000701333136348078378791651684870248937740821918222908255771942573354300672596698910063928238921106168706109528215616584581403716556417280772251816879184399940438453564273057527356907375152700434882129914167387918603589799231963378577455828989584376547321161999580341657342227059754011958038162626339370402673558395998803777732446700544785081404285501957705032882834374419273245690555847581672659990228752353322794316088353031181536432016542380579306752907696489415395887525386558616162440779519205595803569784044846577598469432257341615200772199672821564939928516575559928904364200207210421812023008474140963689181899273029637070923680483940047541653539278524765615870476598053581339712787182062713870814113942353109871979166119803960716986664586517299685169931270062188717064178870185873894662704389652038857300528138752267897566103732979547084281849303213800510171416661618898979125825610830656129647971520298190742931921382430746906235156403171292854172476836527198216488019001445762898380209817669313128443180753552379894877285211562140050435740357664936219809308386186603036713550428684846037502915983944878871573920357887258684310774646137181719565309924510807411094901082580024084165995658267949788782124047720388506538482885368668573594466961099993722532334558288403689002055879405862643189353672957159740549259996679064229940229899818769849200008889193828056454172343912522529779013272985683890201054382985320290852024939107380473280074730491667919762861655781537004699196041333918933726498883806439093363551108299878715062969329996543107834944589134349839376375567552349808270040410402835253351811459427257020253410744113352946919200146655574187640408760442561656040127686455299143148002579349988594092287459467410204576512624618141871707607592443371495840847842090203317914917508182027930113043303373097200772777616168142410127734671962074136491464692762240385915049077130511585947309364742293971147498564516254214135223076944230871028107167528934838567433314359091556959663985020501664078076812090330277409339114503127384480808774456158333269239453479763555935304988132926798979078413292270874437539191509649893386389227666164885274084598139984670232358493967656506604299623368203116689207047628918838462382490881037857562284210022763229741620742960176006783969769045502542665193601415313293566377493734126829927345909581848801788747798365307329811558918357119788444376791808336567643070134080530898083219775315922340615949347849975848113638693481004517892219165168144055463089251241600545279005971399922588631773191642543767014910401433217858048410229240605512845667293229231066876127894845872944751300877826929399545133393575285861808709782396902813065674767262400050495649543017543550244812356036663620126611272314527513006318755069739898222928434356152549900665725950028007030080944969491906350939908084744805341546984457061153326704016228325700762729473347331036048563660125036809669730565405090512067773088700190429695264759072537963099041197072660983225944278518467937947664466868586053694951138624934027178973315668928146311937583247176201341829323987539427157245450643233660889671408883364892352338116265848066225621468252583545874135205400236307728445314510301517101256030179905872945445836878264772256601325005895638163560559626239687690888795212187658692971816206274232515753663157278824418261995650128622960609031024287264608278949865572157691471119350727685478311224222838303260721651413226660878123951376634622279450059297792340302121194012607660828199709581201548004409739016671021604574096531536250009578892289515736656933371973123392264912677423205221480772115969792284170959786415211352360371445001176024830594498536791602252312441212419397049236073743150929981621559245781844520305887753619484339743148177894532461147505224817945801935769930976819170784141194617876239944933255619229320084851621363511916725778824677704273648517586362631885495727196977513170603848080173273035339210943433942049685250258266076527505778586286267620973342505722509689911236230046743058052933278069432957725334415079103222031987656940504542674009507660445900266291964748248038679937104444553111634920795050142259785310159141556844267640691144052168487305846083732508649108169918124759763014590651285866283295810721086928105062125177784275653530328368433705381323168230445341068238911352534221161050843575942798858121235730203180616115974854907353658756660508169736441320832309627625214685072579643570327048372951057427109671347707692829453303855986494190621885679628641841471850840686777283868759311680250267797208264765263540294313601263825795159997759683427976753885640391571143175986956236825319569106483063911783589985286265065990058506940434256402872179214729064931943805246622672342010295634186106972821955375616677245747843542698566616439100489975452972237848399074739257006926470070175219015049193508185115672805295698971950116455220742764241315892345376568950357159411761978500224645697643404879969014727386305772973575105000969274291304538397784903248054885453503585657878747357543666742945315022002610962661832456861463943651877652892655357910929845781291115753830859453102132002542133583150016980955472629180518002644293530449712200335109670097570268765605400444632638339420848570129234971640551608186543263620472241325239821016802948697007502930994860286519677604681812568470571420343500802646570944708936711700182853086119189537086451284774485294698048988698300683411759152787883583767815791088039625194760664900287156062388336454735893083610541349316978699274760787527578410079721566857566332726587229297168613318368880010190685569590297095382166081151947856675809548371545684061477295283137769115638255265403361052723516238339414898403384633908424340232327433151992469480476178253112733844781893153334087179408454836129622847698274110779829914492216250795471507469751057545104771286997794638763263242184678329075248582352572613310651922110939659872173783943908665387395281449199504261006900882081706538163491485972142407274926285404405070077768354340309431542837429848065464029915043885019867824583428189578310882643748440857740101002406717693501141701576946342246148822987507694660813283512048003366820767343414247229470236731345668056264414324573767675996088276612904305772546117433118486370663058527190137018961320543406543870149920622373411038115086481177585402087138605726844084388510443860907893515774520246634591749398980217343765191722437327298111636280752274929451499231222056720226635151337801044772739010318656685735645672846848442447653964832672522867573067571150786919784989186293261713811479536803181514323249285720790057516483480085134955648882080327197663197105218914519292462173117883182682495996677384580276258337430691291960357950644685812182495577491068130091234066507430729307297645132038163794955558945651657091024125928795296449798334836721569050191202342935123012815743205365950728964251562253499401025328801403311976921284558893607137862233471300513756444941645789587935064466797301589159001918360415568529817392147817842617421801966663167559518393714392349434532200361671210620895870005302732183369260173882211602598182860460641978995529243407900334113456768536996505318351388772762272076400028845233851245268487456873160169582522241896241276779768462198109361641536146453649298681448952625892282299649288561115839227364626650563790106258206824485855831523599464261833342314325692931017171105737299052068671010570015833780715494907937938157817500153638210679815658944998949526601193158325392928812927996305084943468632430735930358656159532659673554925068106463111130200766354190029051366500143775492428864560986057468801002734696484198735075030899655516746802878923707661589312925377558954132440773293643035206526096861974944301620024415030944655572327950848380943100891627814491297508958001947567428831433339116410276030784031482379163047384768394631638087059572820975567490909530480707015010569808593226257409163931761995095435887332542464249596961522256209496440545952145855446524660704850116286933630364417510435593618022534636266736288612114093694624440398839988578147542405378788156985222099596936035899855704781952467834043958720673318488832927509362628531607024400788238026269973530560410413759018622224103764914832108061934615446887167327090260370017845642101148741272991179454511738797233943516314276560905165724171196018691641307269130203409343791611341441648941510742752704364214033589864756082065093717343438532340891914347639303798214169645214309373893964314902468712783765366906871109532673018883215143858513437612554608547181326509381540972303549178988652463455412410692500842401845174885829801328710432066908949518612700886738636158315185612703595559792349023308399163876250862049063405971128879087549135230181233885060394908563848383705280621429779067988049646999491768208055159226455558059450394807877983048480319882149301752672189661664720752536765069875960695304249047481609207925764319301420601416202514343746510914162715844157514230936172538965912163619883895887898231127921895750210649851627278837762123678881655050191249825386841277647172077552449491485716256274707776097166651107668781603647875495928834436092413172779493904412990046277521301641834006548422341377582318172701364861933212822508348445479831695727903869846258662632497912237083735808323226433440506299061051237998962396411071578250588213569364262272566556602988807409851394480946882481171797363572644631702775377413881913511973834052605192013262352356789903941839952581911056549549604281964972923219592757672125796508949693306636004033486629855707784586771696649897969377359464995358740495163577437364418407357628432500274087383365504393107670394530061707744488124583633910906819217753804227139766793535955066764679514171295106690310973267204096974612189867455659684677586281404587806752512801229954310738445459601099138013136972126217524024854842750029823920515150948300655487678358240919921269062230848223859749201807178267175108592619163833005822975103945101193526939314782830372576663960338926331634541401212810627638909755215287189535535856900819625417257466020502430938810428448124456725573205115530575643266481851642306765801737832371796644321968205459655430718338492106120869510312336627898179108889179421104361857091348241251570837471525228629040828984693847626184970687620229703947808298506698370314962590117868159155648915240005932830087807019681881167746094054345577297306447618197091058614317157507287309778622707211972898588278217192989324384882530343983126475141883976541908663434088066860839954850301926914130670225904672304221590660377567565184001641045526870056506143692263270046091227636618461758864660083894225213924578497250430091140201576800541124187537432226899720889296441800671505991942018795030086369646057460416112706133200612221129257804085850280803299077691341273698953751042069102813754932745117430884968099998255799180240315337639110678642058505900378947180573432860825169769011075051401530576950861323247272772394116571913646865868732838063860591184581067552800337352313988610001715491455271080348793108033301301795682811913085558153196317152304385520028157442888362840883567284549833376213277362922346010731794300858616803170538398947643723470082404649050837835112521886054672121975245805961099858690328809356360258842023855094335125926985159612093180125810634313055577525045031918766194583923719017772385611280978863539202731099951595919195119375136265589010938736004681898620238616992350696124635437932814563866970919443335566189360349239545806506597229977968135533460654760159626075400948583406730945858555137562543891164344348137219681271836343163732610053190655523750285347499296745946244915993523887402765663650185540172325164918697063466044384160100472121202058406771323143938367929083679056340527360041560020902958255801694566153057092875845141562658955194575247533321581762027041929667503967615527519788466796499359920572151891976498200292620007583192830367663880065244179237110573232102655426896078099501169234119771808358924041784823525383143309252401925340703794436961455020023462190934975817948175233422380782067557668248069076096088720786725081130901430432386816867451196691743696961257875768290955304685136280804900041126015830891583153142165030361534396844673533056314436686282966161527182585437391352783977066673937944448275640186893315348222999379568032353235599795434029984822869093432103423951298367401227620977395628673253042493797373130358482579755061876764064878926635067885258123889399722129960170869173164610255668589972471419923944409794569840433554033534414402477606349198554726999609440482035056913509346176817846653539382959296864638628772818528604351900677725893507705585716060965409233677797555279669153288693266691285828396919614450063299655828028022280539212357688706344956744314511926003144038019449065832355786822072148958005997878011823245975918004071803143142580425816223086944373939565445062268716909901884453309137429176796074133061389337532844428586111606895851024631927655065267670666666659021129138256827741214916641637360875681780345403472074766361474182658237335172177513954442317559548798214551481046210770896025513750436821568136748819366332608717843657729538381268456430010745597753815712550736517725074837257718029510014096255416782997542573573842675501107119229334800592430190447256883874350104379612267427449841779840783252690401951097390191132659133149402296663604913061463713931583611532597426952628588529795987787130291453629356559074805603893080383913456606687960246604236802686384559653232027805137531494698983590543801030681987152368333758587483902475698834276373942041547190829475846516916119898700119851901082637061462641561919073166475167464254517596409965304405054358031254586681801983730730622606655367415389872023029645462852808365842728170240952559895539995757382329913325908028938172858949982986846711480934044851537567458522212523644126745730307460006809478412167461495727076070990312062471408755420726757877164090502591648727549145609010201807686738650103194104987869076949196557736515053487089675977612939776182075374973529813361269860569239438359917147759183333065537140053856532940712777102388802718842831049748414954147211394834779369386686912459166107208279098651393791526430459883927943185171097304710544094015983105759179889518656867654459553981233659547935932839336151336137923896216445934597084072258046003253014292911681954254896863517012974845588953163189837030502157710613187546152821944690044849109452483201477407880483716902122891512584274822557837872954150517312029935069926591786563279091384061340176249584704902472183497900213616783228858250350879698889900903819810484666902894655569560601373659209398811068257555600519954654203538730599805019922971166904266706771619928981953525493792857531275633729240708135634386768532869355036538356212441769534922546290144808110833093288139773409943841473169608448001103310580162539969302493170075590659178528245570799704486763531812734863096280876359769751173289220542403988771416449331126145779862274416151712999966754551189243349333920678395279462670520756764025330435633822998209983879160550739760273637069669347271544535241707590055544690367516586057934334394522822138505960402107453570410669763257051301023107352349674406777458546730152157335708898452310396289569974677598636930355977259683319603675091183176757845081754749675868257383925623189019835674214646058814402767939761311061292954344976366074708689669050249783625634465726487876161228172151255329037198129407166605529435083334885296098344878548459256999535834052012906332651131069347820234795593499742006453897727142383872659180759037334487017562386267513527498798886959244170259847323597733518456881669299591371114687506256195851222158703415102877224759969708542487217231010870014511558066985084257991057868774536233895201506136771607716010442404018346863142770235710718156797616340012271289268612076906778615535110676920154936323840702751406263077902077991062170417434528725609114047732374347877561363121496029052588628674416323396619852085401928996979080990779213657079369840111726243084100363498032959274505536278945261051979323248232123280997067471531273087843828833782374920657207083005108483067059268609715627768426750638533622401872010078810731809305939729717486760972690001805205858382872193178671560325304357070296053737322965065598832766405876604413350231669353668314472499694562960872445866322895997239133085857889101457479559563398361505895153415097957785473606506002509700400199606567865832940636776895656282764872221681626784176320140110569574728228478697607563664472978063089826402107328685863775015562735384261464500956028577104654420905328189749245335225002101218908963497300407053618964475174378096849081106148269023631850568890760809717285470527877796205873683654819575469610198640594509671889161794382279748931966189035572696408897531895660298613394001466316999621087789081061549200352512656129627311646659779904348992545475632424566982672545986868079028648420877839619829034835151499398747065123494138956340082657616512777522517721241394957829055703733047534435712350372951560707959126052499259080208739205825468090996894575738218930436086646119432644594051109877075569427077513865488402347627407905448613560220086259802805170125115879671884596457768577999280396111382275397867859729601892890838029345495559070381628409052700888527746340084398802994206905177794681701525692188626327594877103665929296126882925872123906628627157013325798488498945472672798825619312428690075385764942889025570322968990495183194794403932378795053428180422902139878882403317902387483162957137324891767858010843448448460503850057738941005660319733047226070765093912391106640798056358884584781803987678218875317024035386048336534275523466220944421916276595145701589548827535131220182270842317191255284137960650108712210082713956054627011035619246014334296741320922013105930588852046363110260330824086663727874057056233460439317499261704382818691443221186344646151557891898919817109535241936826682016415261867599616718471481852230828383140316391548474265107078142318974454725218631584584637337565547637118203019431533489370187092795842364409671748303918014770067883681817720124910045079792474531512921563225908164215073642549864171100471435336566962155907530158796464878622224957821243595915954663825793690106853411295732760916760693660800216261697710730544535624124082183236887058393233912526132648884156515852850970976731433448239133671539525377731682117890696129792688600062950261412849584813558279620835755712044448245342458488863915218660555323873953963250557690328460319684746284595278418158253433108941399588587663496864222991718657482329414491844883881765937612541239668425856812929964041121067773341720737207970691053483728897754783123477527504242481745323252500448465551709232573637411898522193439753719831368638937492826401009152811165172195521464678075398869445220525355079444589549434033593488113273158518537774809708295082978180872551701051674245745355561388678364930412696677177566443194031622276211809045093009790497869040074321576805157011109742440213693217374309736441779228314834163735075320765211170069614703134103517036528140887657003878518182950796639511703397091775650288656573275933579293896197187702402718574399442254202186805673868285071437350449811728322048048135945876822589045838651131800728389419903571141444235360648649864203366931288868312741538155404438845054749512603872388048366455071212786195516634924047109900646417335713193409524397103618044270162122265089364622289752257474941423255972244225653857635257682466577737585466765508035340855694870442641737455923546151127860913694203236374522362250399097562093980111959131518648626434072827277212857924238759262149550363597239210794042807977711570860007048620810613298852753083094512738683234032155319784001624283963267243617037833045791581673943937522923851370211795083685682507073616518264335222947497748189129262307434178773092935075497957842290838848226522139967209865229010168720767255180979432525768014375693989717714296114144296774004742495015309210742631104486127269952489753818115301662341586196771784453520158524078190152292619003730669456113469890409845551305403902841390778675778202248131149371343409535535344267850582453210615472718621001027236952655157182484022370026398261940140978962138922903684860292843167080563240762391224435964153462517296358362254955197348293318649242660169616673252676270028565092698078235858696616128343157709262550490211788565073302528945674567176864006826207266172098067121419313096001425163484577846475437367050342757205959778516145739516468726271419573092302205733571240917424653403666260025341058976503376523509465339604800709974911890436739744206507289776754134359364479865559672694652534170124980248188541899435973036426711792417517102893737009639714388331554246192469981194362010946708491472980776377510895262252013252239863848164051019367627486878132357709254688355508103925857191880214814789921144239939636659031836271624880397245442787808638970964401874720804704687878636539674753109175765424526155700034209955154162322146807687222756969876486550571316299235680880085559777959033914702511517378115644578140340922748138164277278632166394059717334447005911282318422785495718506541286759725465484665634510091007521650546051044705648358425503993127897407485266153858788391409664154098985011714388533490745921298278832357001983209867999398719271669618109610596756441344624757355200300089952210108588908004792784513176725241748135953252520153242160756055542757372683644133441317581342596265555292650879241252204974028247295976957392737278413118969396305639526138141370000683254461715581214237733375811888834050346391165637226062962890725732291858289155887919559922332708667780295453625465433183890804073691675716844395413209487193031395871718517195628796196274887388276694834235687116170163840289341099036815789055784027235816948874260557229277124989804903932066473449622521140823653835578189599917802083757526733686974411793636515956748939966907331505808442269411714779744793186439461403653621162356723158179418223806649097741037516229984964047618742247430442465221626028526271890280814840114059545160465694787474419418216932954465043845367503164099724623309696184960337053179507176460824728442124913414504594745113907881283087316419113054770968142092270099473435509582126332001939481086479140891301838257368723561787771553351836221925416679702948398634172749558145261993263685959227038973872069057646814194750583929775405985291679683725834506789916233297685269626892696529152629384181761511180435237567392241738988659655562692974847841584405753405865850298636845309564480395000457940750871748296482511023873601518273541193639539480239639136945805991256827330056574407710968879595203001689813184746406015284220558974109166855374745370467533034239639872245263506256461013546383654762587460319771491248752971666187318555213098167512720836467710441014996661295545098352632252943175440876549079412834755580789888188948300347120768585270765798739556159833403991095413559781210742154319820558535365089268865862119496616974215917778500191918707802137210830407961367877242924126832619193732709448328019124841019720548155498103886766723382669673675451252114710887588343768033790632672320749214445029672973859157098217458924152227207329854252072104139485903324783251978780638917863207346792263021010255071515294097039671971017299548809244143954308878720722965569833456844613296809390837330098220188935623316911524464158897280386826539225335700993847532955927743671241255101862239139285552049600117212640484338970961479639178953939454953464549478252008466491208546995590655343934366480349694231754411866086103395191857165293812353500866606775086004086421554759506032492549743566568809257323915106695384827094551399575566392242324398671070458752614778789516103479107462940257590815916502081202734820781776583847219407004089451063582528268091233468695591834005187707322841502265230442374069389897477391734148450804514004545005064740438161743270589273257779459195614337282787166354457061902815371009731939844693433105694120896960813847951576814782280612698467670795110728906276645891479947459088170678708578753729983764631762269736754247959632960632512453417189256560966613706735777470160063417738226976749915799565068897049813089667492608923020949968673709599712933025426521034887815241567362001988965590291298929005418594786403315742560058705911448496392421598521230527002896758339613889660494354092455481781649502070725478664156522306879956882870973124449686768099099030335011806462498470848217497397458220011381441906738560366039206404140617360071141997373980665920194475672841759262738511775427100253027755486576240926237342163863919164455958787173186963347517511675812432762412425170404595695553454887693694971945988111816050562149460349212491650449312498062987091405709659146700476746733036292469576401722430440851131075090968168048890708607582258308920784793216609215837517545539495353994326517628699025300365393324537189729043969016815186420130322874014402211218636136770930517932618550218273155220985939414602175629270889741283352417828175310530584552851169515754138565305359627083750129746941746896827764979538167642537111035625125785984891835667801213954681616324759957489151555515161437890902637283655310696757580993419911407342405507433184595422605291362950473098196549581687615304849971057468579263666285539918222791689125653801519596496651724650164957170235670363222537567712507696919332985800897787589256342139328442534618512427184246723175397280052401968680294217672569600653514290140040571021203815786169571505075347700319258301005003672171998415071818473069701030282509475657416805884648764746589486784668917513054729900511869105206495741401397540407810071012619952341271556928508963806563528892245438586720296595410184236394712159169180273410828667238112943107495499155636191414141522001502529136897860578624900397653504812982680826881136716060463245837986582561721691356659731968698677889370727918814354766649400144060795274088401018257076246489722745739581348491288324916017724231132259783621063835776014044743983395741340765077386181059141039223169437774161381903250572317699942276274043898271241869442350647627921149766973353811449246403687950290467946931275143890192146519176107251303898165661666099695426998232034474619666903218682716543770994940854956824054308716930139085325612470957446911950812076545471274031585316746014754413295518289845638850443734301677456809948761691568128514879885829175055591266089794264040593466773011368671917660161853084307713052688244812086929909880011694241537941135970250896838355163247310495539663386339677269988300241468833529768330713958834194413951664365614996458631451683905941352236696947904052130642164014460055869295928753814634325214722928530177822735360841657449923817011188507740513476041775677521136715782505490387880418053782946393118696237349955305210273099418134532166039287288861348717089554772714876419622111530797797067747004011284802398596280266105778947501824037498372333719504113826800005232794263897575909642480446179070512814555922404138169543146467900034664306956469853700214022565478987158207688909909122784383325262487810603917855115509278233433485356722557414897899076151642158587826381316561078489301420005346021374880246887568067343270362203516185564645890432809248075490649426817232236949154147948103541366190297493826113101460656066688811025035125571690596436676716748236054664969230756999165224341784054828915022758692621774115576738515553262467792657975054676659779406745960292333388002886588399069471027545552043716227646396427210846111164298001600941740242574212898562593104144393279046090541151111608695767549178401515880113766640491524730335498913756037425115876071272619884821960819654940156703322210528509722271130858161534114588975041822148976089138955098120956682984945476826268014441579492770511733923864246667361282351023990127372312686735902512556484730100745233968836428250334862070341885832637961336148297038736409063821892828762426325511025840687877199207859483444725157027936500584747658008536629936649979962298232618099732051532272965147583322740031549019879249930863809061367846080141358868768339375867149882675746778191638745386031261105098806867540059252813956701915501826388984547108639775626978802643717804140015434055680850982092737861904349697486825741215022318074384577209753458269082034258513427315163610606149664289368948429127790453040720895326305046466139316065084152150355591423844748265174377034805730519446970073854914553936156669104691519632697694558912103558203090747172316827346182066640410698731487908134891742265458559306502290808324041346277017491206429949623445736677497183319010147879045687989013796611154973934353093675023988674543733898253358734262460332486453027406213804684091532030037225284895876911528191912122428082917074308141308386688716815105459165465300782580002154048808440948429254943969520226652670241120461057547859541408017794737804008782999249908871794239294369779310507412328373781670974341315105693003834141885412321981472041967663856350434061708641823192489226463468979653962563458538339179017478037008824192144629433601278602834181319715789478507026597953943980115696528194798970839271038946009951327353859587879325065025779552612284354735277232105736974170144775949766959182696670786085113351266825210552382427106246618278007915402376250766747865405582247064524990510278906070350526958887541760691376165657447770295310120289709430365024769182733422484628781993935014213798397460806757016972540498979030690940687832743514449232203032416979694663470741051081693170281576355831153743218132096865716852699422056241553658900174906199698572655865071287839977356335513837147942321570292855232523272478890056358186910423389470062128457772920259963110595194017558590814494790699390226980549603212315280093602423745419694362294359334448293134262682453427222634384396676588375777844914153602786113317365770406055329692060934720721263768833891517056396279190493491633708761304667462820551602837807742475984190964280832687866915016257459187901722522343971774476841242237265747791087630653109531707097491764228357517933941765957286892527789853040624902955700853068310408276222373981315408403744771101253182434135950273192811232114498348489636593824470758880364250265404871030836970273815732198656276015941237046746082702736383059049274000467895282404397459086513680840291331841623690701135485678555629348136060735398211793072183945928346707204045722903223286412629136121900378793323845924456223392081133172876380146602746542740020086014259878085344151152518126173096822089029136392697803993501932986036606102757621859024899440305726277649575940734581333374343342217676338221632402966018648260600555569217417965198014167394836923259234910195989107966676262794694192612790442850568426971274779348109305093619258813721806281534811602186237566967721443190920863552314421999932921589039484594163354679979965069738294968782717750093481821136775280683347946573798108997312431502185194677022712771736697934986703988316538628775660995019293061834920257871506150115859280227511523746744699692072064732945322939143297905481386284193780950681261074120134605921090671038668436431193631765143600336690921180366005984932287495665951299277416871747406334939904945683441567734686465929547064842672582221762089165566064199071360055180870381289006273423140090633863207070728109166370160323591004489848841513128201218280099754719473759208814142721561654532757482123161463976725793707369009998430646027267515786967483778257319843926303895640579824862482002680647792928096597742294966969229234167563796431399171859195087620149993337653887910357070130848370711743715459493532217384843124012738897699653984280983850246623772418532961761782033320319249498392138324473103206048950818537753007422364609974275373527422079038948224510774531249106847294924913138491884704924659702685932518166179479459382569253268753708798343741320668466445712242723137404900309453761048584788899691669980281319853682491994104490194767893484126297168133189146810670491637289149292336541653020123902435536121343235647250337895700186576150779108145950251056814949445126874159298188682052506265444830805872346129492876911167051283752499016646822052240216256692504691827418059061566358984186994948962549687577571545353225102459526864866727289856542614996908635292800552759771316345249841321930071194796299795796586401036077245536008884952673142697022551447521695699535526762631800366651438154332648535472801314747724651618461386970895746466395681810288981220581836069182046489441035311576106545105107154341366497327241997921639497093194842526101852421627027901110798856478957373584589997391646163944610896200785515677028565509506599377256658236602267416984396725330231348189446332397338151526691354728669754111261000896239743342293858608665791971302599770857890146195166929316941555824620400984120470743242393865781675104769873274966509233986789696117371866631635731621114659600453871259421676867632434538330039110155167882500160573493301319515337643324898924376037746559965379198068698836399333246657122742101092732164221672431608139457399837299413832931745058719521475914354662303466626264042472721712863871605757968895020354496837843974273773355694625328329526674056214370691677149459571577929767996946363271637571821689370409223877816379227927881247000414840925956397226039514260889688017935512053426794094475075349226249159739312470473460986742699803302690400546980740374496264280859276592267690901496295995298495651725341430618094909463504314059163319846522699930505505865460085463751124294209276540614343937953980876841146609573735072953489744280879812234728351112051185042619998123599490811260192117158177554601381367602124567976572271107781831674398199539487229398413001463068918632878371003668759320542921183484601627895354905891361129879158062582501823596514197638148968587086194257081210908839412381024428523364782535759811268639452942376925953458082551827566101477025574814893923667072473093100331004668735195841886082902198007925291520145352005226981423203297286879260866683913956160461499431812532154061046658209848277297792192591550737833797163567497077599940884156991217287422999380636046997779371424912164124587524463049848578432237194081107465075165619358268112436173379531280480704450010542045992290791797895229966962973009556719793873001595570648561465338126497065577469583508360471509710745000265250765591305488918026012056783525898948948348099843623959113705952974189195855544425394372788583704309772370478437994360910682100203710604538013688777300983674241168374856138808789183333731162864329895537999866729836198664443409236785499714085519677939667471599327118603453347993828362505466225516204706989649177567016305062104573774818817625109813287280032239578747356443668047681411093963660844495071153589898029064706809711735568803473106157008169710009071836615991749191228947553008897120764357460992198619010530245027467854368486535349943729245924843840065773414520374838855391569506259893138118338788292300626017552783839666487974271228982098396055554105016946484616268902179273466622965923350234903295265744614335232451597622548066607407001659500668504398218087831960308372594279823887208367174566146694930440677692621489493949520228506205844379002090162744581790925713347136398910027739361231462522099521201150421478771915358173898424766049562520899975405820987938352945129241675188266147011930749452451607346079890860878856471112350002160668273806962424846893057525899510049207163519817485114524538803027566104421523283784974977171948362781442279554471779098899470425279006142244988958240243210268486327599598118915811007212653108471318359517280918059572201954603531299140286039869422841849848932197375628812146276736756447982937064892307333300758504276044788396756399512730722076564932672184196017321286095013551121938060827629331044176578378905183149825773831587650991187491960688372060455846069524402872514362964584319558382431070195029698490249244584103430754471183523754852958366674503121338269072525717639662961500327223356609712168663293454038309499670726993950888009605375115806238844467140882608803738599825226084625611567999587255409978490848497130494193163225792019819858139239417735708735880689785345494562784530164265097244511044645776956734282816223404755287976307932915511857499030191133816619142374960248539725837622688326495582425394110965011101354783758143761913099539252355405769201981310518047074845931288421400337042353995313686907384340058485522228666913723562336700771805679083575544923105003949587784557780047569710910197770160624249631683554352158367062524406586363461934803928743030355367036395921490518038790699810688508888886680320973635255681427502049052092203312302813728927507886038658523721237414336729893302292395291831094233161369013359468140965555933627819775220118965909018361138235123839790669125943127260045623182126234704792036395953124362714826697584160710601842865198305160794919401496136526447681904509785982640485838064445484894208143131738863224498239121094442073215048548314750462101069968388783831601014036040479526291035073355313673443240111474241213358732981973684672271425940094592427330915992608990509722215217932655761752548895322093958302291350944011454643333988071050146223664785022609826110230006822065429236209896042566815782926401821040098646811316972140558936527202416611679021723366965972087254469656808779027136205112105344996600155826795017610983653172262466890135295568949664167914535761468073016736792980459267990758382438749332767634510528869368589813162021841385153954636296507380877216909692450954605585116276356274189620082173144923803080266654040567490750482457059661889648183196042601929960341178881114808477067904650707409201284029683414846426152637457180880589709561949274880781307064070010788171321427983925466361024581402745797139515549626622548157866106524567341239012811986538866176024529933239462510576993034134027743094595693229742424629767580585070089013441697198422699071959310436572846151374313100952761409502323027021511403034293811586270361763891837664184010593887858926089644804008335633805999725701275514496987975676667034655991329738836978711244578926924090105832985498747276128063118493724712301240606976725040081406355036667728589529835349872060197218660178839270507001369478628321610359033906301155867132125589054965525681138964763776122281456314328123134060615944395879686855251728192180966626450489144126109953991490231724572694483190172272057686924554127505959216429449304753614901134168336799314009300979382797871068745493356586566742295037321986347282800885190878697344377083308219883691467395332548035075540796810446617522706162121611765078324729586278529093686529218586987231644279875063893000347489529094224689498154460148431741801642692090378929971369173484425948614877896096037817883552247034590777599341264888915993453238470129103137872928278787472265931128231874993808136261819436062409286005670205555036748223836082005181623972933714158225051964031251665759230590230615974309007042773058173968601754735943895481051622592363868258126476549947536466489774233996033733231984864447961628184876504276927231407040603894039008244326042809753512225099314860493928499149320657429302145926684454352196636406621058227523725865055910652025271662000178950345211568873661749090739292143794341956928857381676455196532651324403485639171066937820849881412280673264677502117793637221497070203646352053519123990757543317191511127961930716942545290095191801549955306265354088860082797699419085332754520460283065401297010234322726731870087600898217904863759141808941179762568544263871866352845503384944579063810057399338682894440144631028931052556171035862023708841040464917700486060942749691313256437765548765202299125622986445505065050337564240492543369792363608034804370069508383899014045956790193322937514950868839319400721701803610460483188785451393127183963823057585940164969350939224669581542520031231180929172162145527051503893080844011616606673725794329264034645900664058731023669535279750403685342607158464650645799840081665586111255657373961089556409408334696142906286302002144974800870701481345956823194532302496722108480640921770295021661910463172590360798542671705112373859463746876091187072759845532441930962734700097252954540701240636194932221475196740188834368866191597994825476133527564508100946259086986909774733665870504806774409252805097634457043861055662827732407936007472014081733932990058452306265794361800949149586187983615533138061407419170211417712179694705539508117614416833005821717184172229420975049109668751328657750957711041918544500823747575555523067466568638896450994044316408062817162995058623523805625892859598343913146328108499195406908737033522802563220840052519024570842957968979438374861467208402187521933561470065543128182407002179449652024333817547285044059656778318589053720715917602817495217726284180145193370554381219149055612176710976545082033644285765594073983823161709314622081440118508344768188329283561300547589677590171298762595536992643833068282334560707192902776177715283607864216182202891495696098993355149089529972363042652404510158921504616731889253082050460861187864594791601940685981653344187835406809141963507190429544295060739871281289753535034232999738096250317169752163980010931924172844540474000810141534119298998683527810563425131507061963485813574542724449759922772445649993908530526893988091284464855728569173652596033817154371312184065881627832947627474388373710356561420223561683840064715792437427225038974465439111769697073397630609604134677404545216042650966337702138099784657470572954106040669172977536662418246917039407071285774148134695179009734432905132596294840032836518896043556966414759283229376312366096204133311959341839040415041083835010046373268715308258366386005829713977434383719241080567045205980012424713689161485430556685890285411140527904599407395018699936760123332820315688304115786891956730909088152798693801070676895121112190828511273628669158411349401001620059648838650263911889037322539756631820321753985470531062537363981701998938351781822630652467282728258954580951318078473001398338509032052591088609562633332770316238951915590058980963674033062945834216624288615746231189098666942829577978011756135571316642018127983187917660495735008828787689883562391063682678880415054682050197255411029968909295211285115107891578531003042400391015982994335528613901980288837242659580969399228364299786527089395224133304090236284522795057682027658653355511900469068492082221045063646152795064580413056738640480577404012162433410599256441853226500929081269896839901620255095092327133321250037439791539160564076897782966615780188706338582368392739598237268348357113210341934381513971655513226819028264742408778175775472941474991510751413154846985200682345573476964311302349327827086182574470390516154154618116676675682422046320598370515975815635575287818296183676325874185773273325186524554088967487597915992051735079371402345818387170706973619763562886113294624617458011364219029770812408366153066702739398513282980285455094046443419370271043000176348593828423842705358626011789876750718918297381722567900179161153118533769018622502454826299783443321636324777508083712492003153003318844641019072322858384417719313006469114718154699677429955219885579584463771677884373259235025621337189626144500359054161655721668810042689413250601943047525703745923228802177669842534066724198906936766566294308863700043503296061394150412206332409741770664753873395934965229010491321615700980591728762571364443287286452245622385488075011917196696206914187044564200520366549952897797815908094066074133285771389754897861553429843955417125492796326872550207900295458137133484290623525951078997549059931010855933919625269586087012085988134051996814508891299833634241973334078622449362381149513586268275758851217124377692382622730194984582178499716657698606350368878291530707520885026765626245473002943088406211765874316572597249274863175615847786295850735083128531405534709622156524215932692442793964770908877034626059441583975273941783410572096499887497447891895812541448406440303018064184333508322010490176967954478044188956703094343557785382679602681064680497538469243874502616482140540988911675350186266782745303682445881547815031613764511118768879595854001180611805334498349526723274208125818731935798980085378592668065252402291159321485037694203231413744161613163640610655640224760242565990982258747567091820680196482746668375228223071723474214421410362903637835287190621320304419921576800919722677824393963819494350051063412089135865003088871159801995025045306452717562764438181403964110300031679627291076212848164024406207626484519118006787875925230697237754733105874699071699827747901073889153070185460964351174697190411388800311570269498912200972012320133450122177012350518381748303128931808458647387032239874300052008427169880166411697696869738559529215546552152967250261461389015451313221456505557959022929992977049604179298882492079660888394347726456693703934622200820994045277803567185377196349669193252555524395089695967968658348109143168303517779129203222314374983496569115522941308128758151659305511701735361376278415381809241019944308393183125403815225634569472004315754341900776399722596372099008524632999004976976463445694872215468619488636295614936850332040902766086490208092603160984639692262573234365653346405342901535797056217572885620932357522750243316092281325889814909995075440802024481943346822132477741977471349138240209264744093021448446768385864877148140128781651682684441638486107026327591786739449777602810386801428292148082750992748908001990876001551829531480057661287145826009526841684653057255365974764461588395046505379048920161271145031704156902185797582648380912891614594887676147892972646895538850794745760416194791305192545726856815779336339802164355398894869156119983216132268677077790758178914906586002967258113301790481417066615768925026471340834153086978695912514477542391314567276959333040586117004670094749680698904626266005893186846237679386653552638128027984174457945023145408694479729924370232687137131415805825609790469575134591926520544294221514478086474181141437950757577932854540780188615103746019466750705921404382033544704802807982454832614492076849790451824535519694255462142283496899262438458095270681572791560994194814717076964311296612173629309387494781329431400976027755286649828296412898511104806875022849020439250002494752196272223801760724260657004945052092247496360609295895070242342673863213214253403628994415726623011480448149061391408207991072197759852443112222313318356478768346578554792034758987692904490716819072068243217739105337411668762501572314959957989199641546536429354843184881680005009250602112266234068061228099313590091785195808410566815690452697429421752320901880270896344768524587266021612036971705379819535900871212612056602351310559882682236950202639831033920130577440594573661719479026351545301586668959989623271123526544456354649717175431204924763692243983974432357837601336189312406963138564708408830828707898301139395746737991337789199278548301392957652951126529398349706668622926561661128650786718665467881155179284509969143201898457913346783977150617476412880186385671478262905864224578939035813292449972971750155907593181848759778784568027948357243984871187547956889220515692265669657633267779281957927712333354428849942733061869296997402642462638400699911432899162246280510971177537837990377646835963062071560462371336478213182342100487803173767219004309681890205357734522237687961034748561860860647441974111749533886307228347866557457928938102455977726650182471394505680080566792585729534357373020718716091039025965308339095580823857694139674295433541874451269083509334413954554482941622358747842666377781560833303694519767400891347348118576390322760846378283078849879390591524106251580639787335205719538725517730139800880016690936318191665780209475283758919864704233938247111070495197757056902140948887900692736593888096038912793577390458907509696180377244622427296755766896959803291577165883510560712881872424462510703877493783124514620384672719023756554757302895375112074329799565461525250728947081251029474496502620881044588696110841678006310941782159713723984578678096807070229046785006536208906262585303509158040649772643928370227720928871696655521284775533822571834201498142130451114231304257662789544591615276177189701812044402812885522624642586508147891267520512616326250736362766330588096486516337933207516386363941628501138776777828266483109522766585957923457467030722357676283174168774046248101075737548728503930637571187635377168382148188737908040105764718338897361768556661260498026158820336135168526371015986079749133997110871610108184152291477607692012524579939530369625564105207377604936461425518634297591576901264901825674003665931571371418223258258056786094845437114194175054290457789242042169168289046539891067120546887557240233130201223041122651277521608593244442090943936032294492219344517792763869101939736426602231991475941864974903731951520523404301582754554294337481597401469130460836619558765683361665392204326041012832744606019086649778002624481182856483244445247048380725457701317111279213845617935280474558935535243936715659924272636781162941560608482518430010168457727028708580377646805262477744053776116501752077392485602307323260088710543431177428303168391076945406915311989248919477512759485733774829924555688216297968547067463120122893949775776751030786391253612227312381336814095676828992006750777146050352976232465300668498721470106413619010533847097370651074629826007802971085372619751988573061409978186847963396005467748628667305861137491724221272467913655568131453683456440035470170937676406420906970022566783335976280099375882006915848088216866379757918469342300798569571162623228625108100459655530418198371206421659857279629252178531292069885260539803550353433043294479651907625897195604971881869900049580310640517123971829600545442794271869091589729989996749765256393713915995058272986977320403158419719239076783769543171163325780498344435317665631914617828523057286690837251761242660581748529557681695470644492963351680988158934197650091793602000704326911548152250181500702820329563445371014473930270327647422147677066164335033733469127021231789655561888541564571763650153132349057921648029960170862067229102856952494322866378390817255097473145399799863300352218398513610139356248929889928248228934335963953395841803997580784748175792898619174473620716751870287684752476110627584938107196765395829257775715625533350257128687229954850631073687219711776824724721957782122904835044923261638845162538233365975051498268246173401921978788788118910269434482087901252653543988543787774087515355778949992809949043025624969490431518561595320002880727236498606843808446530698606376706415343821532118917015250269440799381278992047439105283782813802969936671282092497111607723579868912795211938593603818909455810609818899765464291804207601182642159425536069474881364671364417983488127879261516123459194710370276122140138103292204911593525676779811614988416175984173243985387028241842852385206983495495156500870489941843391717099973412849281549561686370290270091817806750646894691969430841321509210692954742368623430476109096678809508756426994335893251946521427122716465237615136027318859616885126083473616503656057698596766884347889555520638351447226242786215378608677086519846812831010960964573078810366780341194547091436999623949181092977580520665341223770854431032828984452088152919364377933608461019567366573954427164641795618853219309827767561245727929134502550161330626407354625277763802983103694133117716780369021722591898339603150443570402893303042727555332038672227500993319715720872925904037840752839262835955766397125615708967816007030262491249200326457444288985879684087616662892286459431015939757668356127091556214544895658010446045151878611310760596106749048337499252326858332475816247262433016229488647039091478827595907273106709680565422226739310981629754944502127838267137617722845373904176176105680039750198464616392381967555061733987344143546357412386845581865160673020640321139282944007080371026833129094911285639022516862566670857712694374344607939618156024380776920918494030786808976988332815041189113175961032364298106347757790101420418020560835683720456823721455137288756689142033356423791201969791502589800192326979557264255060890878706189624344526382006086343935683060169166654700528434202050691038153612198472524510427217053466572506860097435851751169029896882610355290440150383252675790117911424993731694323129387596859487751445180960124865437225546358189395412453689351104581006072632853481456764801306763000822259613033212328468198640639143630770708634327474613703315297707892601378699919601799935246475327448604444158062713587797032629596884471981201456873214717436360790026900927568918196505207716085408345709776011162228997391039450953317270924974192126798185824267065572288824943938593702453714930322679480982978979074748736388879331114706683173202631492357350848124623111452489467466539738315267607380051496446255684405884383619822783848508029402553892684839365664085614088368555745974354225050680933974897813771291552343071693214603720977161573411736537566725620203907751013334792735113522867650458912293175082002514651922349888904684674323066671898579873432412729748543473781479511611143751777563041565450624203173820108573934326767702682360681639099824925037355593478913351591310486849110732327352555688278168059660922829425952869465309332024520841556043930370087119148665257408000200081638502893366804497235185101357115063172532144043924589718971253079391589359585599025188372046654574046758797779368464187840964251300508433840516946947749067120041760153585026436659647143427558781489186615031777158661427812038520451482259889341174944685733947130563729574215479749700079518365643861311776818698043847531135927999813282685971496322695452082631935602695081351427189754664479617571534553066932231693503888358596597760028293411327905481788996513358265914143584131368720869197855000719164174042200255248140027336023411106351316242384562810077704865050530965392963233292059858439537989536842363785117843755654838932485838173935326529884235983395898087563147771344395781521454150159476360273447734150432407905679347183740335346405884705756872195955209349829851661545607438710048094655508750890067282309934361670666426971914193804859069701960972284266938368245909458933370281663648809853430660154393562691250835581055055851080440982388216036882690545172589243841936190220592158419997374618536451155650030284051603206661050435499217245049518380087510715914794787423376928552721025369210356489636848037164351137485622193946994702347879756770583975985757036441950935710989006903872467604120511641822973462584127890368815987715669745757045320387906912049340965302267409191351232915815082836500606540260277041674042114748619785018391254641633738546081026073459234930155529156299803796802153629088619687173639120864157317251080234340019741676077055180599665386517459549161234944757003438979635063050019412764965280160453900882877245477940943339775716000357030339643514779726203294245010923383268391834129022406250950066912167613085863890293417342925677629529302043436661233360697471056997812846615968089691628677211492320295786156145762011092560825576979125519612286833625311308190159991467858011615088332081302915562543868929748863433049653234518840880065143905610606838169978595342248382970725245722293218286156619318782758261093152982657385374939523322077894788867351087528718948153795877739205618215103882711961923322086834862085026711012372822041185909183757562397204041868975483166278641427031679565980095501525305103880489129769166059549693435284152967522151170314777538888128418974182626599870397700768945978390213790448366796950871166031986487833362414327851790584539369111486486939017696632992588703819310448015464866958650758549794193376375012859225161598385398078119903126512211247367089271268109381097533874549362686850824474948713127196763178769631588966708716535027696078418711901939880370844815446780502645825093023370139794749814837448347465711771566385783100197897538631075433762808187827520272198877128841713443362937508561980029067395678649298718870706774106104631104686658520047176164645036938124162275999507431017320637252350907157671084496212270675614798134001437809553685702713466509766315321447656663364440904158194514061701992694642193923719261627111733713729379785104581491247927814747386068114193198707804854899159682375673117273612346262956397947325836010706988300399426079523198478285693724431652207209551958718485584516030634470101123016583300576100684876235805144015972375270916345424586716345068897992756955572948510741929929381072314089947683650362290208988232848386336940765394335527495514603332317083158553582510534018250910946102188768949590756303583948502233931623471263230870448847529105708600983955812818027780685494584852770363894296795692876869248355772988795396579953315080151424785126877439907190873682826288929008345248984573322534877702194980096824052872837770540220894585128433143189256134501976157342233165886749630999182863203992244567021845353838992264875667051304156429566599071406523993548707535727242353517941518291052318427711119164543177893390828320391163689766333717589502472236379176602460521405538107514618554964529437073435570296009666520590399381742329168128375870250946696876264069865630973384542686744602382301318267292054509143038046138830936271591286627517700255266347744865054306004805865343893532196469315735968064927455757258882395100128704783833629563477248768042692179946703539737108804263761407708168500854669842658844170033481898672112972479404626930392214099685981342945845586635507594254937647933498407681036255613059722164776075950644678263094752897401640379998186547302448734737398716174481171167443068903184267428634039230636032409681169726886369130070364393434442662636515306872085419653248233755156200270354665743230246167736641101022061532828711640840302164677181389130467559594556330718533930403830291842651840407623133771409971644062216361591014642803862771485369838470650576679543963418464419349894236364735551470759109307546018505007978364256184609892422100642560477587805064965972745727347094465240944440865243218743562455130925604701988765001248053651524677458627953815252816088640047436434198840565188174573750329022682526019200825996114537949767060414816379449918382301761598327854254619264854573316666822979279371152837975408917746860082442693063569025301953185577169191197741399951840109432491998395049348307960326162848570148640327807539123842970329783933853778870167481457212786762645212734210464990289785979964077358516027863421358983761771501819884313871124230598242693276482201093176163813607622599866989371611520569189789836484950013924274299748871477349543486191944527107854999638393058011117475589774949824724683126556925113107206441237163173559826109769950343992417997168875991074311360169747219301995549340973309505738852712199927440384881769126143894591834841727965634065983004933760479804954335800982568108918182875996611978125926437674839334511146663381334453109008019634686243538074974986208425220124904844321816672324763582507642791057035884155126296983593907322821090491877901826606590281485005098613260649831065947312079707637065905471261500866556766089168464373471053464825656930300076988761330512011034293925626234957767558138797978136214891457491522552724552399217855169032989117971937864032563854172062397872861594661142352365618193672090073999776235808785112576622093729010350621066603283921357174695353022874650423592317489984990921036412335265407644453503133940210718804842096199518406032219462849403179666285099412852223229410077374101992176765016323183513044257439835399226820099413458944256028682683488611277168136248271324201131192000361526285296925115141607880822055155622174228424659074052638511349831489180996929973759899358707947151659774707005311095820030868003542012330243798216121482597936297349282553043423069740424820631877379829472075808078645145057622517221389153735972695772160968998341736541063313194133333537001235650428407915537951907477438915213813564046499279344579516667026754374952364184208986300502311727380399664744331777438481107498560357561705695867362893354594514994222125870921370206124233625774538359316586093426905354819625754695441309956561508900448334846595350919484313665355966474647056341728857073054469433806028523803881735939451970410301436792852610911623261712252565664378263327454547753189476063071302850693473518076437239741447801041447913506071856513870418716033963940071868261880121652513090964216919128457750163991510773440579875479334425104574197783781433901906683866780487905168265240509033140313565890926187090277897910766070653446608261793230784853395338084752210576228680440810627004005564038635678216807330263085214324262171153093453839744231017086518354450170764771313065344065839781512501668201271046633095939707177718311676125599753418231471229032059166137276098624715682782764513751976297321064387218981476578299412978164278512292874840635818058168802544183994435354195195602352418519213991626380023585917282576065485765611541493964073276693510726736907603726462556139813319961498338275354511230751520427385327155533408040078483692210584944796345040945481835965282681566196634860103704193268946259244761741666057410970670829495440319361796904338222133531767281593707064209073024375371804952736944746209154816878329397239312210239308509834021972838780958896144350588549714768621029968124711713516359016858797643820741050727784489590839186593574369351886031361456945025794686550884890794686158425956005160387859995278019553532554952431914333893794357616790705925143759178533784798856049753528599862846790221744379773385997830945733096530518715546752419432718526093578059212303877197698614344739417273602679229191752728189089012081377092295684252518973135682039157173751077267776697681523018465799972361811201909253688931200117340658146899303545989651487768784131282613641464913709589818813009434292564249419215156729783186793652645983681899305271976629937113968237940313366329607357697085209617972955134202427382823516794452259444348860087733096491653632004328403905485092093744553497580040733453837141220467078723965264970142351381800558482582485850924269955501575531574288412273955236448961342310051580554492767300361589502404017882128330066737358708255359405060336986067007512772395973069030610597078900521148450754131921867056488662222798690599111626830112110799214564146831640876827454616498423737196258369284155610533839132673941010522976537410200279964528766238852844936000351561172649357699774261060647025251551504136355706055799832224388202844985798261509761363620585467632327251765760222620813762100023096626592172520355752885817620178822777122231627375142690436908515334834686103135862438547123840302210560043913307876402291047139261908926435661814163561400797565614333712225223973634137247745540476960650850054276175653006415251663331973305034519674409482872935797820486499583335210655266024747512287813135241476572363243057699835111174145527069748316862842523924837335973936885696027130197209795003517188807171247764280040562410322023389263344526627025674798810839364635757016285446873357797488065644340028084571427120004093886160272671623277193890593198114534946068305901384374660220855801358858287645724848075559291596719191972490525310685431185218130770891505621242974577072167121235702019122453623053987093051890583941761233899269090788488308856834478842651302616198909486729020374356159931586097605213300005567609930330898826363188157797783435796729932759853957957288949583415888431429450349845995811971830543711738805515568314939218525078436829158539771632417629428890189670949538207003244139629179026579588998200868705528530734030937426330408799539572775188946883970093971859413316866923183692730175565416326397777929244337473176404708440384647687504785116764871535727258706286878802225444561639171784691424903094426882068977506531395769726351118313323493664303225078112763543707926146355980733733499330349592753798743339746988992640098902047330931124625432170082019747118818890456730131541729599523786120547060078072983889168399324382221700541641053259466201144925041162906630892026555746690000858225410649397725723370879655056799362406790037335009957829467278730462190164485413212761078396169339854793072351710772219611187607665710646007389121217817987601057101950437275588549587633772837303498875107377017838765410453185279786673084716529257904857264666171920763369601503358717799008795814973903186340620463649760983035003518452412285054685119947458880214779347941543223677866847555667550616869430658605408596083001584381688847328789240095848889551678576068319278575092164331309278054554855028377131991607966028122147687470781525831298307734542949209382587281426512759755003883550412303153742705368519879832169607176668071271786120261782128855203420564297282133626204458259891404954187573647808022921937243544332754085519924921504611668949830787271221264107453856386998473701576729432604159056172908716253435809735242182031441787160056101518115659988561067590487271595294001534867236180741312306818497146956057796168688809827319166408837309315762721689995055781159060364814752343584005079179035996986823584663350282920897292791429176896954550000183427661941561225103609982706560901458199811834338247816854062997216676178591774073045401357860415546267443148050211382274597054262036216476721459761305066874738658783242119983221977122389571134179938663659005887605156038343418869691644120856685061189570634926277024634294901498483087808864238390938071130848781645241775380981237272569405377964890996545834851537043886575150665564622593255606980360593467829780858791060046830312789194372242902084561941810536625197477524334185192822669765632543698517961284483381038457438836603220853462333007851057991082816353387578030170839651990056124892511074828252182919371444833373544117182257819586821310497334678499845531519950216311516598159103006244817598901366930938262664091580896594870350702811817498716620564952027099207289070462642754585473060287366245720417639457657700833725714536569660154723982208687468668360939344084224935207784333760634666809398826982552427242799317841854104067912406010038653210825038602671437701700955537728987399415646979219416048660639373541231562082553581061249118901483140776276326366187900388882008341761126907689058408046886622050493830063671356866134688369417674876097629637190698387232749400553778034321792284006346992796055663251250543308099749070728558605709318718795334035843900747211190536436440485325491146545538352257972327401306553596716773644199073578855044488065381189544034140917233757564695419537024839031023789118781270382242249758840818788526471829739499925624345284008681390515366151485084471762906129823582543827929423704096093946104090229111350705887408304392178884794299720149832558306869472527905977127747250646761788840928759073712282024924825517423107325406948294036115299918164429359115721944603195894175290152406801300526943414417268856569316761734716415158427066129725698484716687517558247051696018067398499364761623089100659073339884163206222302665626613355991994794873481656315109103326048996571134193916343312640595081729127875450441591914130752716758324395383372166614701280939069215271026735114163647001176214477716104095763417823315295128124034648683820825476107853792661615231102114753151386420072947592633956800237803836684200059302173020659442272145522552382302046658441082932583416395311545482311472292939491425178643662165700921777579492011769481166719140970427698024024360321541298131083971730656590908229930754186231160407011799905415348621523372056868052153016796196822796676888115709097832111934355159023791685119245988033055667448391944176058673405719731758927341004160377242124379464474691859308351899231802088142933089021517231838688094633732607933755266871622494167298125656198153601004170989282694986917561327257233587728840485880704703345368420396242787858820958555472745967703745485708622690295490565228647575328600135452810696121414698504772496452295726622311093695318156743716711053907879831604129525908613466341283321294641324418631503493835236227017580745853940274515692734532615489078164375428136297214483792558974596842734046705361927979682279571570742832453264207520278563616086107185261769835158312455781276058913043763890857423039973404771722474796203213759642195367313465557651258999596372676890540852004200657610486587759819806205987061778212307420563430308524662449218409406877421221148523734427950526948512431741876934428224798647182776806279186820185592569624059424187623415288704123925348213352850876168696968613080294183909615161321226103649304440308459712898783097042236255861269404428431776428478706885509199873555738358341903267184920803937539044935187997509036990068551504548761979304263595227834775787050489691766101714063258575624678011044191859897544574616092371651520277097889689973149284773361437215177360671665796689806235603470935053924469904785859530733206514368043885327468708616612083945837456998882687227597331082364421808925187600932437614173212006034983258405835603751810462766703184902500983658193827740256083149333215088852352678256403608802602160221805343436625760894228947516833966316763214174709073864517554473329286395981399966490733287323708637879999903165925887961749999786585567709802432146799839292368256815979828573830935661694039927912608857525773661412130936992356329597852870656783460533788665716941327874084308394008750533934134235946978688067310875463783638823912331094022749212050278494337256707751102486227884186949039676897023289351062026725184878960904023644650707905408700553865135907466869565644913624046532421445066643953063164215602927054359171061427459117515155064115797306490950107147338450866035492762486065009506232148806359047191632095599084195483284347517577090657829682893854190870705563996180503726296425517584397817616715153748665275912460639865847374580104800793435516713330023534761658439286577370999141318959509768471993360837829935939742099003118334578810593304212482184621173710305199727586373542282861733782666215193900646662501431993949621649485606120196595873408563309546568881650821232000892249074303009750870844410485686665864698306597322644079285017680908611491561369839261453087189932611678899736210571598925458556357322525336481440810137918776379578708932617472572962663219217263240495800656894674573577879986154065025713815025649826964593520471891709458179182570763650984868577069538658069308983319169893893438683174695896373408877237983716842178933679807054492463207540070593689346818710715082274910669824366075061679211736376421327418615408035740527954409885448381209326242875466180053933022001191741758136578928762620567125839154594493075641723409360612673184754959333128829446794890797219186994258080298051693761969983519739489194274439219054606929158044448366195189349348991375112125948465807143535231667800929334170961607134770460239221335356398055616585884334625731702002790318970691683875744006203753898438099127816808465847466194351759848447443636313159810826426227576041660314058616698515118229769191924912199895333460550758760041861520660298763826120642075227068256532920498102519394986564999136312833407697912198785108737125908476031431836006860674957823889044877504061195595978504249792061538665590994949731958535866885017758008512868451117271581336971603615331135960362366860579154269447340587284562443790255115024237598144250184874871558268533059704134875119580669969568762011600412819162620075645365966020328671829522221300908028000395743489493855467932345666638845046495427234047391337147589626466193480137228109859544571764119070409053384692990794065280532306149601719268112216171930686456099898119986027937040473080027241638629381740666055753600036354292194144465585603163734313254187809986115059493557531401313714133154724431562395945103793828192688510293731014204521585049313885107316729899154641947841549134106574873058014512727574738734434764691756069216392301021950773110967084384577022014183270785567379218103379431566040271542791346174908028322449296957755819853714971504696301191776739432676794657534761058804975443135427109309260958757186622996418212384999354026971623541001518513962846079307216640526330276345513957855324866758954218196128110264418040994453882845443490974435940415918337776971185240851142842447459920996938110641468747966078719612978435670117322355174552476570178342017746001700895211794142802348422426463360111306882657550716918964104850755264155838184590454579047512817886673570231657311703444160137454247536762365104952263131065557452501245344528262725333110200537227960732730066670698023905373178480086580806515814375609917961819297656230226900900312884380121230276847794948911282400353081659951024908791685595916774842483357167601901109424405017218593905601735098495035287462825420874644272395313572430010503723917429570847907660749315224637206254191786985630502782829988478988231340820660292317311004313908531755839511438367588662702749564980359636635520588231973595799276938954999242973916036169870416585142552861180735815794089057080118730988954889178121025745330000394602572007254494228633917232906754777330576978348956738342303543392970132620261086306642888701494126802546374991969186011185866767861005744333366037314637110852994536286653974432697128390155872988534338392979163679848559279860919433333199639442818071043013263869309637569148390968160827808827388964528497015827989097027940240700770166256091072120868284971719319970451645952661767408015421888488870147926875853612443330962503505929433086070527426873108238595958158002048523391702687528059434772006719213775041416825484660642683610919524904595988039298231365076678448453913993674995159252077349597229149696581583317640493203194967147306673936815899614391569509474484303465227421794709226419134724868574056645032836250586108448802244128364700331360644606828630703488049492956715945658033409897006403009660793810662765029517410134133749399803303294840355374973631066170923999515806463109520434328689784906644165778459883866294957306864662238414682099904419740091547846043724116164219097274358623935524674054339709652152802144056727475053040865390715056763566912698139583960914114890535204784167747905196730016093391363104750909735782884512162367256689796769733066571654497842172722498833360988552988696641682651530493565203374788121794745097926580769691689642533613842584008778949442095748843573742311491170222971227782652184759650787809872488939724544931897872255734589359476193092178244410871169185713571695864218989465429084905719398566643548317522434302813817879248363208045800092953162655383208445404132619960642118260530282364890453388189037152949296719160622638223631696263934570885462970825632579017172957389978755553371494354753924473352710983856009642153605187091075507266599753186566624489861596391745166120110908531739286667281175326128353118703482246130213772210387218124313239783805032396174729388435444833709111000454618497066311290677606854112143964580807833964709939689062644762871602533252054175253894118097346887240301577777610679061487653915760282559056698891246564538999969749723953286716455638135361201409303603413129580257487258434397104773284325485089642294903357843112244227997990996798204248065046701168236069656392866786295883161283878635070078156958011285225402091160645507275256299821532848322202078295632541314037872814565664356211186636574730301177191390788788655748711114412019357449583005735169045723541250559852596031903823089747562185358966207617968328329005012911081659875224184958395074000166019682079874696674738248933697616508266800410928487098220648202549401267144281899923265985713674446602802202163019022838963751610769113344781589352411289893296245306876529502341255269481484670469261012363416250640425573187528165243448343396177771483271627197814083024528672027221116410528646764920418802632077988866368135669445929761254541141648467215447547969749381026074999732513774922077668394100798815802518278202849140137149527430148029235719007720066392435648961443627397877891928604642038743880834950999030280702895611052940506399894311773276359836849658881222936760342150554040252875359076774679781752594412040974078362029484420056483486788461589724568908320268218160080346570968390376755697582412640436255771205658942454097204852921810447998701280015539952687056759471198961024840155975920914547500311070504312150523943256604759983875173284194431679368644003826730247330727331090388644514652931515344192137927229749147412778451218791548906980816445318454388208858880497484285641956925376750457920709441644104145212896609262599326970122145333653977700523500385934091918837744157792186538536834345473551156004130839468394703735233526857591080599094989386111011407026901973364433313162158428071831262283840515212924788725844603686985312297004538473577925515926474767809446860556026009258271642744825505048485977528755074086445162763421940563376086210110066555867476742618981089471789236995588356590209955937697154341640962007527893622190288066939736245616882971361504447922995438865477905746220703438318483921786572060159228711770259867597369070461432512975436183605401217603902772802049385611224210427571204316381430745095026630200582053809642815589804252124497380481272777681749778963551660015702236504852448448378479335134037880911116711829796176982876495476675539941224632955613423901557395806999764785837780251721233045537462336094025449445891720323251588355648837057166455220583643028592953493147161883545339544766233308619951965979260233839351475309047044097407036635047352561551161119122655529318769795820063391944827366745494328626625541000536912681974406928336682489393697380226909613959347863771209928697382250795351655718639218260112663619860031724581036381073955687719936449305983937949341037280529832324242414920121473878004251385820098395470303136100608112580458287463499443103715976210139724988965704023589371637178664422512062445528519410064007864937659662825298071445579694696442529403040116832214631624444941455484079019090808914581023460079364314442914766715527572725760449119171185386684939544081880184553373775344417566798043874426937240046280879471788300099658883937800054869673900021535953103558535830323170521486917096186294335707081212904543861536870487249041733133593853680052379020976068046002538814151675725851810998355695545246649798264809282003269380756814600065080802511912632639088494525459426317281000133967376312821961873302301411301195881485559730368112522204601914327546079019409665050307372041741194566935669017416872660320907017765754006237118330309032282963533194961209996984412970819014727724624836433265778003937683503708669299563070700788166124813318721591830599331074537447984498096292429397340663930939887059827859120223196738417412321188640397810292922045325373083678574715766181037136316498592644338895412513529932324963914557350500929337254848785858951513788401326861593892760796967719464236718368902255911615438746951172700742886504275976066155109423719239830679328802886653811384504784843466803018032251458009272427154221157585986442748688868871247356521161927911367318703998846834392226845120656557651274483481402773259134232699794884075872870122266624662396065919203171821785714418750730095792983953135013462865987461126275433645734640242139227424097880164488285483093530028352616224856024949065932636093695855128348518512428143149604232048344038284644406317391527891430501637503755644513848977130977527675004992535872617045637958623483279500586453650929364589648361829848037082234888018141953295962099278758091014121218203645717866450466892110357024835814570619099326638222992321707060485151457617576644448042779537587896987892137423579674729687671482076458284729976300862376361632659142397734805423271191962428315048258203597987593931799610820597729847840150236368442733852008229688515691053097321225004778210032323516872696167263948622749975012821086128113732861571651705803184930839911602437957560146629929556469644914838825842960747298565648793720369152091918128483375777492244634449402036818149389764631024022239951034964487591834947832158854738066076948588777160167496095391147133583099586954416358373340779887952902023732276843731246760505481364331172731709989512544985473420343945636304992847523414268841944622488371943019699029909889136820489438685939650175350611996970727204303175988527284496160016622566945018940323100055322586112806987956421420931604884243822100728140934249771158163654347634934420050722469254499147640956842289629913285937676937647338601482084905005007242772234915419854077044728282391740786915055461753146553507590487114543285423245989018201861984075979388561850642427441521588736606263603885303525400115609711378850926035870182465904560724016235094602036795902142528385426791534328049669858122673366870410140956501213798753944187525664335941534915365027241683561982103266459600339184913010744631221577277337860812884769651464051321290298576128699561015922391014018185499697034414777344896434823553076271900244890726029616268738103620793368835161694118430261363640096679742810373282459692282714745414599660322905930841272681603301680045248975126432934485816963313950126532402284967244924576454800361279535577884031772247951730716635722433646190976955936369610343097695259613060531613191512201808838141363040170236603539373639013769829548926525110495904101546961290595785903684214319063687884411405145641853340300118276624395773252004913878721364584073127684743401710579296546068025537832158638142676795453217712124272781191802539543826066919639198751690891664086755595373234280367979978412161976775334361628798270697816982729315402024409844109821071760798614057885164885550143491896595764137607237962177660882117903920872398185786792971950769480591403396014384325462323729296045703507881180608378523008712367810132333808393637383957192101306184682041990319334211742089719382317873656013306583568498095991327751118987119198036119488047998429771022895230901237253975676442924098546399443910983994542025857606701473658683152973432565760850017188524781233827775671356673208710851206460025187066537440484642750630969885592156068969996979140752940025422665820330908667201045594354439220912264266937459555996994939558152311228361568532218040191547987039853327395297811767638479647105266988567375559087962766282845475203784307424643586618362119109970385305231849660431711491159457377309179536279974598235251398786704940086922662851323961158527578077766168910194422857365202921890825776267648877041479039508962667721767659287509729967631268943567965699311719097247570808766214072409202782541455709981649042244460639077253479331208142154819311285735777051186044858771319313129590224811844997719010188080699972130339209113966655625692943301206011257377135376434709109822751811250260871691881122832019070922265412377533342254270304598042909415350049418779181361720039085053646848265513176491392796418051274700248955970770513128149641522314671569393517632210340455153676944384268962874067703699587208020226358364199548665305707091878353114702762444586019519546251481960397016788243929816258126137974946575009340177629951929596762341414803504102430767958408790032372649085294387850712595325903321970346493103034906996631134576352290367770986301283448104155724300956545083778246256932614557319172521572902673849033519509683319757183932391877456881255418376890284275215123358213171019612323737263715115505690000853005626268305941457138222641634084090511522729125780829954886480728086596252736687593095519818274052433876212448268293459811145519909160643910546655288618919874438641576741741319658628639918110021276303763299097566198937133881187853396263228506454401980255054579415695941615950548692952203489115433881652691341093650941814724423992245802770613159921070374144447532843495030007188467758257693836770119389233117406936641669252759061346376318577499296191929709179096139993989908070325629422952419437186295064639577486313505867129338534925025651321055964233249508758404791067544357301923255254733312581730840180993566076019821014943534634576333070986020612126308594202432010627030700256682397063671149568166883923043924483467046733258487971336542797236595541934693332420919316825930252519787424324379474527466550457331736360221473499807171931895153850531216311291773244802041180964766251059679799861995887043341608721974636090955678519590194350445731954082411081404678890121633275496600483570352177979385955588031829249664791750010735407002323815499651228627220923879843666785829970896935210650911587065323955121218605088796281186622401742935408917031346688771023344768262805245892165522281804235625862291518030331508041872538001391819127575864846137053155021284290578774554828799194884437034247752859259110979295822313492890256746984089063231366768990023572703036110318427288712676141604029460304418648858930534310808695444817006320257650840428264912051939447125405342641304145601616656418748954357998602991030090667992992246684905508653937592350148898549440469135064857799133704123733086897488214465756623709223708712249762296574111914824889524640494530474494858370966445416424727940689428985362760596736460939719569042303395572735407006390761329913293351667502301224596780330454649533716568563562335065532994010932304034021372982019413653680722880978607635995233930245908966575460778046398723630010919742223633851817306210872766707029568855407788915916462377637793119800989989526863012735596355699461642970205819303182179984559284893608217728630870654780036168008288346265600582276809335394555818439330385996149786501506498124496905669974898677155135567263539065225654528050332682562864279792105542029762139565045204613709732561256951424371105422206850511560536756362846078674072827542877109483498939332440613084742299476639465997150642399202614586285261533473273026957941795771694180786186748176554522017010827923876088840577484927380908319478060438322183707540489294842621691669221236110606832979986044849448301322352173538974489294344038051612355356643837620636648642771514908747612819049132979061377995816505989549373823447161899988310273515813957226668517880738751703834129168344846698055247554979947953390682438555565670911226174210165840887016201571754552707950051873884668527326873953314606516742100977992864375279875605392705846011188260857226988052036520490100449954363037217915765433457358846660549533887993519883172344972975709518645349517419535090412648352252640455468385732224508169739784849285525348854527945560096866402963413040705259450797144674267308767013468735894313345267431889574490631411368513460945439052191340661697379298443815371565858554475591763037726011028610243495251108109356763015266772447957896970976367210615322197416084508143574016721344812695501828812357103780035006587095141636878151759963548600273815895794944919540830159438031911940546352338044662691577278826192469105465148352051579801036131383980953486394709271211486246420035708803034908517856335070305897804126297331609639360027728743602066097055601249960158200789168462005255523900136206768878879476226800917383863791331077384404856680578106558682321823269927641466673000983644885410888303440563871174542020527956409370244824743251531578238453394927745366127875684486954850561831545303781213530501752019992764139639773201883096811073810875626183216999917483067949047394763360257742121193609912795344103378300674944734446733830411215296513330590244827002912705404442900367426053784552307581790576553699734084256832470356826976681393171358812809030077665393844837092248694754864219249268217248430685285103985428695945628986155775433172029773631957296908821730350339459230837073643555782622082837104672305685611577381297490365208556721247486354443215381465927071784689809148456202625641825384369603712137676233719007428065934368224297253477512683276005130735357974218121998725520712396998529652399684649017166218956146266803497671484653189674522461106677036152191490848490553378436529255623870925674183091733402194023241105783416212547265816224323526095112652986014428503265760452508397869855538804918822937825005808609670248628331140645532668909016180465550984150138166553646047991489192501164816414507463987836505030267883017903995079763259647272842051566313636453791759307735741011250692368093335544550640463342117270267591568285317161433357723915671438339484814105573832498992427653707474239565766813782140942643125857579073599898644460564532945224488229507353496255691054110506548637490777615269894156426849984595279818571061616047316428880600914844511073785285355904827098849786503736207606472355930123093309261560289704632795651393143306034482569174524572434530475949413434437699747905781452929228986280664949901052726051530888656691774089425352384656516672360586176762586797263152536550296298695097301417185476979734845374610868812444491754363831186599763002099415504766482618049517900022097901180458277068767932978396004816167795200741082098226543812690612170005334975136763018831883326509112177599157454534715973973414717638070711338682687976076007980667045029602005686137891785820792639280265308313127225558124506594994095094841726742301359946105028897635013264865278565681595657442870898482005162147003970135846985732803590750605493300580246967596674558360275071830312652391130880927455983266016141044664897857762755575239689302054446409168810373613694674121783563631725625069424027635760974800131437299678421667714605120437735645626667898297564785729592250528900036350844393253619744565958777505457676436670372564857943532359674567794276960686974102829250969332715638882493656066561023456648802075573905169689708302662836065229295158142016291683211358854917986202252338681871165667942345893009063274816845310754214264664776010720703057974485928143914154548470055135592428678701622228654762980616957679069602505786439038254553208337413077472496924242383333296271933612562312204295574212995283703114960977091581041662162655710162704044902782107838109466193816340020963149684111948955429115440300952446876102316743813649276099781776043565915360698897631585306219029974360823593752220865246010777215983682876731172052716471438019960404345166474187939513951180938202126448136360973236007903791893461203263633794999025347286888831539800044990650143003823926984302778404058655106984892720727089514798422661991020928851058533105000717729926306472846502606934513842758232691751381182083180985750693629892627199506743664073290517859118854285853219507911441599776953810232398465953900283453886072928603242933767374020336135326891989947364474025309057192571865159289455410633669567910051268742643745495698397718945107124818246256025926235815589976499800342766599979485684610812733025867293289689593394270955051329599708466506635490416615503820168812120078805183816190008036994823438312819213194454208456232480902659484773976869502739274051533068615222010923543935232333924595510480326580046096496618690360750308380750200230383228016996869884293115686256682308666179590632584265415764057607147340819312843045501410530563992948419733453385793268311069513002181401914150150986202502626084861451182908541650852880489904297018160519691762192775991417692899102067180426220397488319845526896790050573326473566884375650019205321269876170373510344886489102650903634575051208184563345364749869169950575691597747204123382603989265034750484626897595580555937947349510731077790700127497149803533852001665425158912129690568816715650692732872524763639400610079090609136237518886500368352661349036976562086000709043689339126688476026931137493936519327780843906933675278689581323158300319304069243501433964846616711227072145308037991787381183077336131824484865377973881982459388445351159715378605174405469700219780774974015397676036899656702315657355768793536840833324108131077907841115980551918591839574436365874419770432468948263797130560257252908025712224202063248934269295047144100555715261752798322867444573913065576226386140104940639987884245825800248491784798560237313243423266613997600021799547767728724178684252858072967641922815992685883639393888498671508122201645206646070228077631446334105401129613548195397338560457757414316540237814604136005908400804380607433391946983710214515758454969828666748273177403200961156223522878060420384497021689245424255766846734581329002356815680908691747311562731730806666307319495929283880951822024863153148622066039692343306927038844841740678668939991174296148914866234146492859803230757055670116855199490369602538509511095004186327101069519050668334320742655037594194857776659957606460235610649733830870944247167236810851382516586664062454690981699073313386901446369134425548533739992177759761808716461388878810048360550801415722925249831627759133597239840649170228254698390456200809677835947489145585522117599633689863397267100790099771636463986942780574314449785904355550397634594830152206492795638658035785925954972044336329979683367227983329366565016491978094479031421204303625235582192132668525827406194591684999768170473654531461537457844992905778171983273710589044703691769304208358692278678525259814507427574706870762750275628721606547698331005069776482382543725854117644090038623249605134402870774178809387922297661371992723191321441383088211365052748458274793522880347661731518573525551762521444562090093729138434962583640361411541775828179804853857762321777169442165791520912903475287825897554256605163098421459646336118980504883233917351930275716189613202206358493778756596592231966858963374081124622293901283236004427749758884004506117038004278183228631178408767768112813190501938063562702451912195208918043921940201224192127717977123781125893439453639796088335612927639127756520993673015633764799942261161820530253597882622670040005064109866828488880545365228143843596042285726902425424907846083806249938345748474210573504379037887293871392830932984764904895850604448968168213009295779581481856652699576023009861959889936064858909211967466656681805475427972659427841117770054946810879132522718018746024705327521861289489815066039003068335797642393274620036725371684179985129896324335946978548257567054558024527995963789900685790027390588036350433948943789863799548286435961249511960884419635436324743754120120259173241885841383080334066840551391620873557354159032438476091339728661743067825103693890932879208887008789596645493031498027866143154305743165961283339859830518038296385010680634473085847684977563967736288657245873421560567914039039688642356412527755585008715388541819711761918901531229061499380593939196778674669149444400889394805291283512692878807165649169101641263264480076151015686208080961116562975803948982521009037086416651171015868264865889629982649515421127327424224441029132974941411121390727959164878218497634918582443069264766910982570204919897093929514983767557643259795272811654591563922550121119599558688738428006221250794000306908709545881669851239616580099319890362670049713690895051542261967208853055652778848118834321633191320616561640174036924868702827130093087241604095186093143178384945924003490673443468138371047854084316845100374397849901586267996886173688550771451830847506549190588762336440400212636972594912275597372860643424598754436285817157702451009951054013234460216078508755281412489154679443533768506517770573004011131388556749234030575945631084867063605642940523750198709615018460637628880057433690482998806657919054898516742275735454273557786723101510124764855253132329734009606806401903405364994335131704149333171404875881566560230683739536015006146876499206222521313462630477798658781901373521842368136850128230902414841188425731406071827561758689841720800888673754779527379059593102800732043950000713152708154791550720949813037209648037750397760711368252163485710981943862319177916662044389739515316393231824323758385402020105736993722213525516904546874104638705005159421266572259980748939386929142461819702346687533813899594418683909566689127562133907961300433596512720226617614520037601632683498780165783724591783597435936453574452963033545480922257471742533602007634492743207479191521022009471801036505755574569533691718563350496100559780304156704889753602572596529751488951697491058361194781837973043492533163204467638758648527437215532835243559600512267908613969060351092886225741095400719579736966207548743649631474919826039543840883680602151379145864765114260419624369774040195857493545000626469972632298203629745804758413531523640082378350039760692204777389537154369923734161530241150943118502784418457396100150006947934183187143973947470250743514844933959052124780492581038364493869356108213211421701189535732006161984761973396921334423387694681396537392108334365166118807463814530347502018626733096126228302908227875501725871860150882303964948374129965881076435063267179033451421957179927101120143108279699802968478130081521983130389142005024778507437779800662650755682958367351242142704540004481154311831451908019780686957069667659892910591560504481330304181963553157567933600415665945482567155149017502385924731346738076462736441310363211670068273093518128440754521645117312070111188449194912015234973016356075322359094975465386030492895753002800018294238684326130399522236839205162891587229810638224706788509989227070638974699757502946847225778213782841331713482620336810193826378434621104875222957620582954912017789630170738296465728525358473672705328200276890236929291420843828034859415322115915982084892812160141226799197967768801239486966568465255099013138885175961486021372477064428436968438140140622165864107480984688895231322342141699768162869353907923186267094472744023964086146991714135136978745095261670421803175960392748951374010434119324325860495042039531978552914820303768167589933650269198941829233717919141283428041262987899296409897522465379898163207959253204270406893741513474085240787501159500925554943915358380995188713148681792786942615047695521405555234484463634260513395912224294399671869993493848152618287813070881287101635847938246256763578894547665879050192516705188180557244276398432830386181889671460937073812289559347993674283344238627840765314966439583893684641410504244689653236282588470500111648415922199710057996025816436021525932251363770333299376542763061072119984176819300222789827947446991992218990038753016639126483018632881024683763435377053757169502461138634962034833459367219797281700599021353704194373268462936941599105501617962494516362117120105739867076805782073458735124103901558881129171143125267422404799188640438361382847898885724341994388383568196925961197987063599956349509554251047908608401259357679720396304304464053340139616881862643067312921956499499906062902934181383558744730915997341541445244392140527523530069577240177357181223424830979333369638769976287245375821082417884505674782092887048106309010025414640779209499318085455117234084337575900814315995584039696313501476717353988091339186166073894022287127505599700235955569108169002243580692899171152427789584557431609676303581645361023435308806268541239780170816922551281119495693152983919557694815086796850683144108261198628180108339343595312124610757638507836601439095969118378748328964097534581536867658209390576670406663097762564103297979465458936180226195805622637812488104156439514293515683961727965366741875763357624287613154518286038034534506268822192175700607377797914802015821541480540981055522536774260006079873131597628270011164272943893119805071580959707717563558544533341836644299640166748104326229252897919553950110946427479035009961304461745567731148933137192260120014936655379660929097867766318579077414560460689084837040391342354290592525486165654226746817211679353838409355388623203208397804287771421824848392728479222491763302326599101934200197679992077025197543333177116415724054540805599519600696269061685559340310560530746560384260396178501495045149689451703258382230812533757484859312119413759980454621022883390732284087030532422467904646832440082728580932227300349929073024121854152103417084075090346332531242046830063208149121541917716565043121618442153294459392109951979152281039792807578388513561576102130597538632858974699964856594156381730143363421113017142256478125509420804303810788578468095367479862115600904222410142371195963297104284450342422873073417511015996382965656182464454234807774334090942931119847128535373247063159416490788199112404003372089023999844241000884074713986953688874401605213681196064663102400754847015336679247747931564574440104350715626495095615565247463211235302267780179929864829414719088500628635313278447454568480482699829282305962657180955094850735126187530397712045116448170000685803298105923882506200565100372648101605344173753886497642294192228721136315997644096035056501431058649981696123977705403159302460531009662223784609637090847842133930772158779861714662618851044806529106165544722279203813441965832592657970965553980078546437915134530916936013572914083783241388053329791650882964545019324649453806750450181101113353360975990042217671871013601301638029615778911708253805365543977059801221563025541052199458913915071645670412545621943282289369465396059656230943505998494346241596641830630381010374069242220401629736891621065315267379834926173394127033987481534358659357433434331987158767442177492606972977203837283495379862580403750594394153436516624391170210339504331613764283640574868201152037580897846051322565055049384222537619247034583502277521061904298929563479056682572956052282715555846277200794181935440082631241848594786485658898256679905754057397740630910471703438578604372102647617063462414634989101476216901678000282374236146685853052760570734539129662509601417239346304717222755834444433985832720784924425152416454084535943031831207204246436053096098811079583085582094464218971747722876075896680446137172791704556874616320471452892149356947201278523224037415084550577606345756329982268735645292121982177454862293391887423660644010692491894912599255264949102371423921314377037282542340473126487319157733752828023070201411987896383948056197831127369830052463082464798323444956214042900398234839620705467500234248704106515364663187609722315942141059739180227537872585666079731055617354966826567714006077513586595830093629628169306288692089139541677725389839623364003687390816847553821476075716111670886024164816164710400659608056639987605056302803846624021028014254906101358057541339632616530314495993846135246055695733095865585839865621851833048334636334425042444886448536939944418554585682709872831531175674594652304138591497521023695746384648530427726834116159369978241609005513852759753120302243836110566821652236621227780102946700491371111929445419895498751960628444904421464677974480853025691187212473562672809357992271251488541922036092511859501453703363133254622500528060944736281321352258184415131540626323166878161252115782289585989567743145735177229816413580312563647288592650471798998122463592016595982195577419926328290241964998698484093281362285649915392560176483501818099713397729844815747737755767140070194128554764276611032989746354702315903943989533147075511242211756980012695406473001390285626845180058589588363094608152606077205483907103087793425635276867536195546516907959219564491289675116139559120694350837896351652985305860890325065159239035956309735538892416501011114402887238627781391044709230271275776588129370446669025635068475369447098616897726226519487292187321134021328889315655998094145716119218474414503764856545089397495363539384024021277284231942699669983579591351918958393013518183042611480671904069183625706923316673522924147315178836170812767501452389371743779044747054344888087487345835595444729031536261567471848640928423520012082069858533011304135602216010639662558335354692374136966079482125143270840981919288854586664100172263511665740586134844960457953767521800983986116625112405722858561353854019377287045471576441409465634160509761170828759459201881709083457599426947633396701633549242799528124643456005887125601975400734318329349487462774803504001461734284310274435642737795168408118929240522693080962462471613969342367505502322805009648435647910176646007616336238865915017756777125644645608001109146928153705705909728191146701357660974695581116435635031370041313054857498559366340954665778063800309808926112751451954557320113228132408422121419837414159616321345095690613261532903573069796526223917160798397650094024022943035967363558011691408043229313467184797222880793048553528826537739141356849709842588079088831734920122916213464370540286439191433098353196050685270117683998298180287926717912275579382079241136515852108365263938872096474298153590867991844609183377785460162666728849803771810345656894043549870137136456462512156360599754777648605014108941851500742555690149138317310138771532119132763236221370407259071473672511671501093178905716900480068445626465339042357724658729754447136121331928722838531833955493034913260407166016251131424016419162259712822066019594986084520373833527487143824296663839261195330266825558722409080981128707617336799842952765408934116566929319549407755358585468668355651569670994013992883332610987424601697886505865859038131498876082631149732898374808245853755244727115193941511109766330102073976730832668994853602866189848080404950854791367111757109680939831117738973633541770552446260357111689719896358887424103685682693338276066555521989874694548078300484430540200396944505414957869204234995162391501458024327408789424277792081240401989935412997468066361738128940627246424572163218716455233069500946470935253658607337180901602983770397211250421806559870409692046146091544148767562958982883913232352601123266698890589461108383152545349587608887800762845348657793349673641245769195601226829809736195247506338010960648823870795771345881023089031009334520784463778060810577565302195282264568550311338042765176273978823073948628740196658798903279128556425165547843808842071905210261514708322434434731366224653846365375495122651244613855995411418609344621361238720127533538295520401037587987366634741263402109251242227182074588901771052297710416714508194780507463537946076663535485893750158546448326186449425430643143544262881540266964577596456985097846781519421372319100014857520524860125559640072300302236689969659924501362067156154090193679821671921082262760530111836422029506824055160029219110244920792745558348739490009707456568202456041720471788069218542371927333199728491355942689777785179429126293975914460190447556569155380957543287220701401316205055356726607234694751479997947563756239506502521138478427709689263045235733985440472254214436023551237173884379795509398505313528839520475364340878245215007212566296154886837310186611895095127331851121976306045134627670169156928917744314866293950255158005484987727770976820273704587508211262921869414160943597600070850484806949269654779255561554313060844969275407925454168867318615053670289953580430731553573131003473960046155129205322213380605224340828145254411244936332193212795001844470074682816995106157268615254695871192407261463890516708991205187539897485172067254484744501524361162290451434575372883546739097951951061525234408494590429362633844191669061658326939641064114422771511531766423814159593362916593999072891684285801050045251078743910273350869061890636423552008342748683125931638841167545711272641727395054038984372951285485308149979453440385437551253863516043503803815060617241646465504593279646556176549578841393808214474053873927119451380156508111857525141228823642216626757321874174861955172378604051286680506363451236376246876035460111759969462486994431267212496964309857985122418799606245795218130415539439853779083251975422094782206104600744299145581817490876855177320909866376781747866976137382710442396949963649821946338208157710775112837764534445710910328551222594828080933283505150467765261296871929031751716183996491185229347648050552664924861633123179953346926097506064369618411575242631092904256745464210320188695316206888403683865030328543220822525268762635567107711373591651444014352387218216392647445793026165683531891526942333404607053457034987651624926889786337069971111197582635279646692895451382435641460583126409734502763636487162636122681575727871643877419244203855387323190228819361444666484484478496313587829962686734075658761143126008706623680879523915428908068483895966643667531629997629735156821305558636617029574030748966383307026378483923129649014939990481226619523490021610761280906076560812800687101492298057312566426810665917988022356037176620096663516563555447526470184545384804537546666221617114639609840359778657237795097269252463757850643359346757126519340236640643945749830493652017282029916595886843534910743128135855339391619747314917704716265484905360677493952220174923610381198749080836593172009403029084582825697472637635768544094044191189739435281072255607294496991490832493021827461302083827733246418141192485128148916332807039460347137052676280023075473170193884140368408559372377850135972158727992572584464369669228038033326153259291503831662473004058423517262194945964138821501676509976639964914324055697609522618555428486108045153410207380804858082123839288344939005634135460948245420590171141559298153789445094765506827275479192340611539115708613103015361081601051922046346241026120055088913291496226528574847285583485183700840325968129684744080774587108422447633751166920416384659156262174427496427415105343882490772303758202438471504662866676033835860133731342401828909347329932991814011871279271049728770217616512461387649843111922767156041109983150484290984612000567132090463862436795480206461203310787172033917690849307601476185907167223653839949160708015881318857443524550709696983280405340061772773493967940927181998177524783435479398614306625942871054169354438321906578117000910109425380388640391292829907301033652828119372756337305200470387530285275196014869715942705987405729961687517045869672262496700346716921314709752387604016026112921417295648225804362267388083405698575916429269924746122871131755095499411182997619518586562794369529209647026764302573582933820065221917843942397482887605222508103795622295072680202979803685939537834879091984019025318552924322731044371646521085943151223214447012974654089588365044207599763938248738212534539779291470477176068952411298386122006619288513982814904067214723843516395261834748516957713445548928033270661629082985691620253752958564211750524663169418147846843138427484512873390930899125505330879065936883134517721639614798035464624708917843726288683495823605888856276228603475362562223940078977094763876689292312516706760507547144450393279188714633472310099888230588864293770255674761267613230669428922163471724063098108665985063295670292784435338129388553649068874484820292381070494620268323287006967819436129735769908911660519122235043820341181048211018603533934706917951033188328885292775393446596666293121505123877217581199222553871149692099875846823721645884241486328970817292706047593384834921609828942817958264648055936324681193347713528609934299253975168757676630606654168853799492081621494195966050524537432044897378364797647897287207759495016212409035381379459564367080396395818409244233109839226858097374811581811612174114183915382546756923889505881126401504808460897372499466898884424785932474484234064214736777577559887123759218554181645014461910456288803534861363304585830340456109254297569030240163499318610832760974332958777149330391263604660368114952966634625694576784251972830141079791631489431444941853310118776663974575627153719421081522771874817394785999444727988615186391499977651662868063170785245359512820886314075682753030141768213798628790350001155862939725389508709861678585049840896744531029868295410287565715993099162302274933176890145487965608262823127291622543370421404473674285464149151683975457788686914957046671720879384875611861040090469785210710690274787071643036226869186237401249635052073886905648534456665083560498288836617625240071089042888778828209803804408390321305864056128832619660340908651164697333439020400927462644296734223578766660432513820434441786338250695923842069557820867691934486880579929744968248386847908997377786238698330725455903563055462945415617116520935873562567503890208986216247069463242848806952576804941021307169237527204066302256942108781686591802043358755457893363440687413206452011875448247509170312033648725871818211225815527874816007591926290699086597235740517115088354282855912138649932668127377681765394327747124137638730034153020539586274951739338889356601976989496361964910203970911875587360433347272735965293647582757564237545496681760088812120544829608035261715248816502462355864911176448616514217015375920171693324611915106820057951547862894650266528316158027719286586434417813803422562756975374018189210529888007413000248890743103180651705730692311155819974796178853863542203925157980760063788149215215434682134081674073124147174379152002831108315666661160064218097932116059085408754665544979417362813217752202656930910785907650052256143112435357233238962742944316305201612879159936175035248035368232516600458110550419712209991918887644648021659110801708965451843162887321474830018659686522256493903091542085526162373665002502739075980343731866066137477015826724805106868385297712266379984757132488576591436999940805711267018963413793105409476735103968516824601020339493390706645285575405728920881736234395562324950014285984828030160294284179945750148356160810554929183352690960204278593847193921213129286856779499853806038271622312010355392069329213496419062770419132073307044830316469243808747399131008339798234917852504183505650038450983344910104354667863209629055323725258748051629590076438407130327921842232582343624238540868448621615335734623024843792273363696467503316891686214800887402792833957520279981723419796209959211524799378859820490965894764478944425904710017574560374039428280981441897802267844401136867244473360419572985230350818457409057462668289512021951010531021114520315877240935327580224822816259432291903304796175966360466857181508293326906787068295464475383484499012184365355876429645124083709395734435757798781492003605447176247232335209253409404653015426963855599537517884130515010910000189883949329039831076831321886825578976994759008619500956954003776847038186845484980786113084945967180903683077498291062579055255793495928853810092342330939384939485176729163548098401273447958688344724219705841480169531083857126915849429315329501594386436879923558787536237876673537125994366049021896803305695192049946110138536133663256283380183231029873886429463158341048321081249610141639746866121540675097087338978424895637631031310364192514509862430829667913289470145860118749562676141856581469913449783669509842974033779461814868896177408541299634860701525370095896417114668821194222793331608133134689831103655925941002273309417095300803681529863764108365388143209541679868771077873174143649274893565130552408722225699766921470446188376345221883768293693089919785718335217195894220734618642148680599084064466416814984475100684974184437536149679290958326785043545905009722827791942674774211381121822776338922254636588349433490082002668056853983687727526017777701262305172156519580918594587650502169133204987265303264907744304586641013456781469540757506277432660597760630517258023340309528561583947481384467710953851744273176093927279025698559267056508791215588821137101613667194895750024507583833483750497975397793941802379890507818923896110570449382248093332045978171403352525259268800015129044329997750815999378988518006246600348803396374075095855453372185782603365492638021271614998259696597867781269115760941289879192583573898053662291579407298740257529902059223344020606371527063674686317451131844972812432060553197787689618035663121563348136704244304949713151468147484325238409494902947644635170436768955621180608070789274608127697773247469162930038900845436790552931347578415978493585318122399138714191913778618448298106700446745856912589736258079436414555193118093815043573802717846041924468197976013537548501356649368125386712700274182292969627308549720247485436809741207370471498546171040788784417139258287995863222024908106116772539241133322236766781483383466744703085407338589278458518035271986051852531085196412801413717167606667079249245943213011305719267428418855526523080627124343402279780799725239195382961821520982177297260475141791185101688597321768890925494256905686436731036702277804336138043381103786795130196228640072419644447163556230999251831659816236960157886787034401962142814946326847975673710012801017359309297957071609581647132746848986734699024466699503657227918524047319638444888549911853204197740979867352414280827147034004302968307538846449758376991178619609905617334538786945070712007973516314529548693474530222905207931443425644727593712608534400810091886429877062800772044593749090727864966941021513215604843370749776082635253155449769478909087785072396063996147056856914923752713693099262608565167621493874721749782941010797703702415151279507958609876617904874709584952211972876423396044871491352229337290001912598665952951518492440915463959475588452083238449246308192681752481017669899161600332680241367818333238378877653204561700787080649861362814740033821533826908065347200763306522107809247629726420379555562300730982359578837033886244907717108875822280048638104400073278024478502630054331997064239547438067066980187288959598083668351318869324864551726567054214757141623261267883801461088207893480435688377264352506859673146747348654468052679814121248954793530675025475195015486496357275184545834546611832897760224688287625645062356035385748997526888813130045542842582558267817632512144383050880865389948169857907154742625647508016253435664703589342853368039269341239565133416378966057621164506931289898348158264055331080031102552276017271094012039333551691690129462886604521832669364010317949885652562668362999188158193345845747278916138630470819409923772347434943634570727451608372490514387366199509125964771421900029475866494864257573994576068699489676991686629761133407758041719019146752237764731537028442006336737790337287132062134848751505403080003820605457880042572680122145049575009418162592389304948383644591414272795545752377300607323294978017914303208701809314503539849029858534160366658816558491290131517524872230269842342669330572193806380206219398363797401412362764907551712074161049318252104362511302690517965099306291301864273803098859487960726506628764815690754090519675198269127211913938135555612687961255812322212958291234633832127639230535094160695498676374272299360134097590293518285184110255280372791597072816721800069967646581602884082928793417977749147607551154962855637560586377224451387142010645012721149083253501228143051598013171983204232381593001884871188437071502695068112883669611563352190046697062668209296391517400262479775153324490710445778288720643864414929273922103923594011867748344255923182604740778967892597473402436653187018112323801150586327691493721158721595783964576600023676776821539716254896491756940925498002804466687787863400850181205328646393398574262512119526930819512541067066795414802948103942899723973265088609897895603995258899899977199528418772587906473091399082528599271060092106929778504191984546353263956983561341081758884803007458583138674391143333495628449506857308348554884881239361883246119732164294500965212064106194347914959964038686086001041296372525921404498689236886944862243499423794832343748857955133207014770016903540045926790597653669995005460037589056526386746079066162649256671628433578173242151463182827649367195657346305896549470331891909440868500763783384629284836361821308663774961511653381412429143043585862849533679868463562190594286367622101788587426159175136079144381877712477520427832228138509026731764978775957528354157775848466024418821431350234219221670195201663602146072464733564477114886532414992856765503300843040395794097661679041172861533969017057662372557035255944770769795048765804627985147054161961458981340545112911705325323287858265740910986607421271809740220033259768717346173810772915121447090448610851932982671709020376021180955355626257979241982337667679387727593265432766202441898959905729467872120340725299746223545900023694128137631504091334729195727781102799500123629755330186527737735728030037588338219181870655226243848836058474322169576866791045733631977786968313867534877421464869428728156190831694323139638427767445649372124143106237096306121593110307689708373785084084707447149831429711113497138166590556843112577666568066034899390202282935403733976314714190500611857264369845363094311732112919339830889395210598001600552952959551247752475378255292541199248729644593841038288834977293224298966594431275922584061362399205449320737345698870046264490480115089702281133702685501864744628781473956595439418671889917511626379773632536264020479823875050821054542141492853084054951201751039074220869215146230551178738359695445863692054862922109980903057268356691599128804683329208417178216393963672696566203805816804458564455152428769978645294329721663139914680114460977536398088323864859634711756237076734053133526952187801358661960945554574994830412059883098633946818165974036528012024524247011111616133077943669893219424425895458103313153834707145020743810812390205083820571455996884672527670492614866778089639311851131619553010985122546028855246234391401539150062061348500255242803787704970020986481412808346531051998982248709588761853379685049403116532763517400729022419063347906790572179886130455327537965443433449622105934217431122196328451373698747651929615901540349165013417549116625516582628624721007955818460633681139564840315039505896219691278336488257325613082404270712272462446408703887115595252654094225210968637331363790390698723915112554650633148789227789409679647959568557677356199420572502336643546728834120370645000016590341360397667815431232322039690281670756278793902032906186352330586342097879434334750152082193324967306545053816075621647634229434726808358346686088437027103104163305570261345151128764365977501352753923277049685607274014695620665432277488879801082173763642341858833175174564405945263666886235958881657498611781334870930013113763654576416673900920435257412033300042688391511834125755927176984529228238940693384641322240395951539071474741891467833412015055309131732924076096301952115909314923777752652656230606584101503612687810681337658889171688707977683548216007503559628508651684448719533869659132695582764985679747762019476687263796047624713147186247906056379950311679943394302501991789819950007899221279534094621983176831755438092331753100380788356929291940662727149144251089706486990378482370696523805278406267795813812727638425531706228929025192442143769365883135264804815892660277159188865788625183635629454924290121077226825213082921630371614811190559699380570937711746289792703732338840918593266910003744448050675755799548058906635525932160999530172357645902826376247961055489178719925276389017238613374875574880318921000368776232802560213538363036327720227807144098155327968791480933901387746411431158527736215793182391542424754517153136643862372994785600194351676132272752648972124006636034303747768125974521565331701645564141683670775888950366444111968567607787801977673059836357444359535695760557752048468075495387710688206469254247422444710701309094401899056866741947000336028799004661490145316038943470698718245628081191752636590021035357719623552511201155288302411851677417728698048997978067917079815566699953807611877733294141281890431136243735173421968892566844315330868217682961082027419658005802129586354226844330630453081281129278781089706770769618517018720954734779544572797535491439682650853480102133557075942950367338339130301393861619258586422774913155713812660395939525392267939080469727893803493656366473757847941920411883657340101073833228539916020254958033156523016293162566611389786866465888647180273012433499344608021338408102638366825841022030400588593445631601919165130887585206354064858467863892361801025022197422205722530842996508591589258041692179248063593927710702028737030264612819376664653700980251823433067052598108544842783901210453344788353593599936251594391252604756939853544965370840727808230651242893087012086486646642742430979687962460136051818922921522985769321604504964015716020433167033533084443600462244391211461514858414456681499659677264246609290783665711285374236932645454028077749354320982272361616449784610449483598133720684244075759264836451893397482422055790208487865766650854048335097786323426440567814254294075500898202597370866734615756416719434939118103787183264477759780116918470432110340552207664564822920275189936026546001474848505416601316294066897972009621918607805951811571458174195250246148642900894913569562092688882018543824694706534616119855806807368960871909868867651208470811540812399114896156050782706133278901729005568755769175080750068236042220382596794300150205631406423575231595751375096801164976229484386357011533304099145345904390789220227397083032396322597694168465599281906297816007911041843404275992788765544220517896304191372096293676373281455329648914456684182710164373697250686405897442668531866365750383167450558075492460778132660276905469677135652219303873654271408038348060228245890589820022895886713482423568038516168917993428307942528221127588016744681607240282542231515833192061910876044841587361735370011722467285945260513108438714804439491215114030548349867677017659907923034881675515576737502034455639905201894145832441246712480094200029600735486272750083366324627251832005309208568724293340574384219052059941914643049155414741873978227411476844455434748090582079470655930267579773963541245305018972509314651693526742974120557697155486850762627455167107081121656745103897134319898816470877770880365221234626371320830249170325858742940205206264131384011214498218994804004872883293390043952741550999992710773132196807721154849721206869714354050632364025723096324845500391033638615392600053130689281462166523264325872175861302202223567900598480750695777040847890442686405593715525304445510660204470306929483907243271586089050001776275343994684573192981235034096654202059806746507791042710344511591899888759313625962322770266820658224910185996311873501242396644401093714267011755361156375537140186830157159781413269616428798383384759916965575701435989195024796837957348676276486177557831433242500308686562960418856115880124235764772302049419860511277709146060325255507477110303143642431984100258175924809297421673254688122502683375495354874934569131029714169586405788415000397247864094755430156473195278635936282366301510912528354645351480849016725923122575783612523934313717888534201654306951532078361920532244723672101170012791827063832067008742310915005343456751231074749351106170227211772245555745067574962534125802102996528476903941727162737723888644930459945409283057976974486717193235838946374480389283419889036949377907013944486794771181192107337058022322549956790986070968049459728609480444882011234531200578252793405901342195609489617230708233864550491615802721037767146300431477517052155850846874991689394095526266047704296614663887227568436273266590653021137649711857498688768463147610544578213438188083286319886235758916737072348210544354833665866660923235824021856644915573102829123350599276321010329202815420708256098718469970450000802291638713943718673615263025286728700160068048703357147097630013072872527521821535203619962552785288337140610928019769745099982017697716824501342198714845151931039230659242197128101354001878999191985633764097391901465509481365330775969434725812399310327283601188719991334589724013890219812029444575889893291896591414356499092615794594020975921938042851177300975213637519932812685958714151285815981672773521026965679948641677098189563498040209961888846898640800243033406560198268996315703950514322056372229087640283923470051592396440859329893482062305350069167307731705286744632089353702757677115028962700755443319271470280004071112098509112644868938689089747322288609941420759985626403746516080332459650277999426006174380382913654479076177183041205237196808632503424835702107328801377484597805192487382680238958444738676959103673584840137476465163011811994646597283804542859220176567050278525251820258020047110666230002826691684411684543161800501287961063411180532299236893749095585678820539642374268749399612094688549843367937055821804416488539144343185088003767685400432674901528577580478712486166486499612145131364279117635231230481259152225036079095054646717556779967580210943435388633879061759597890526061440285422299817408156458342440404623927173662322209425788913252812183062965729676876564201962172702622018946464076113521320617429946424519034509172649729220167744765795935687250280311543654623402798092177849910766930681483785030870733288323427966833940244926888466332649877416498057922253920627836010423242014053714817638112695605301090981723269315185686897263491761726625873587306422262817435048579861988050944478874160755827918570497861277881494863594548342700010782466210114660652972706672746034661103640336875645849001576517875302861841358999499974639500051723141410251770940298534517050617900882143573915186310489658029123864024039214510582912373972701707294106515636596652628306931374361556889711155926038130907766944192645492311320934230356562929880890720457400244429600602899043935022253705115098035824928846176089380924877054544365395003580980799386693968308783563559076654702627859928750547449331935390695962652699851596202700324036583027039260046397240755345189914822341456954354300267482603044165864736906481971311517964400219469621152321964385292202303518608093762388371975610337473919037723488139337244783380671815056076288941333292440622516213672498364262975318467770460446300567066330388750799332770658173424747905132248985711109394984406323726968274537362183441403989918678206784588442989943980512524187912618231428353734468645123701781448934714087771179818491386824400311233909951775693873353025457259529485590865646876469252362245210245266310271043336998436491805864180494684855533641519660298531887688887035925740699415686492644536113143247666753256335121491336521651774603942201990896147082292473495553090658259896012961368256833184649082730366058947434908895993737143092953375338981846434885550567972220839690698228329359035901905806624495797068650683931986319803170641390671705871967715741751865199172537102712094783562349794732545317005199986303203413129881819130156526606661876025792159190179608440157726246298158295676720090817467889696162920396568008875097350845374136514080727621125136665073407690642572873103534816449523213614278274534959666777164177384966193501996747625790952534392063198840191951016202682875697674800863367498460903410748135963386475934387799790850449333957778486928200600747016741491441700480640432239722986960643196462871298362875111445060346675348066576343983172872002446064435288169246553893381037939595033403435270766956913629023646232916133907312809624188801944444688146568143729624150887866760810303094427039360254760652017657567285180606488123648944739016465477632098503209042351467845986082690004368165352620282932436846687464881537144616555654381086035892108176140904664693275360070861275980740640307344048558767990469466569556378394902924480408551592610915129227914727491663277592304577120950756252806053116251950642216853981414426147694629051931535916713527184447002770188274743775791133456647648066262306761864917226197276951230791014627983089631259367546154259579762572459441922418603447528172227306431078977800376686164222575213023240122295563230207661251627045883723723085561136289655725018745018950403794509862538157829054289482644391574927122214391423572718195182389584266452771152080333782359277135854799290382033119196373489690691453607456887854585425123307848728278178088281860858074611726822119142463249554345740636337807599020655368432901085475408781078479479054459100079438231545538076237458002693249171487796768584647104331833350327195145979956870268135677716154407662209665218798139414867218175276151129075944431392444942810698733948999299182115868661906654597625272754016393185010251673953737215298873675227660310958872111565051445883961990844135174244635772630260140304879724791741247620003846444080796882224802320414061496509436907253576998791288046099121758496664198771247335865829805420859802233960097804047551239212665556609475776072487867841280682942065364765467907853198202427169494849847512376328495980709186399577291870082928327278357460926411485109531126060555167634122542680632873298573426941416520545047075784645868643051202271153098308602068361067755095593114936851998845811844082786424990338495371753207518308493550970240520297111658033311832747254832628210609594063899853431394819038530848981733333931090051239278062484965817086408182963191735938843497235427801528490138177865180707546167098758330395110693913693844806532917685368596631213085324812375848731106727386168106802958278123592231784759228128479946163169655854241885441944701608461872795087998171605919830111663455184920288631304297078127782244919799045391574418851044671471821934103513758131686716731049845180366818937045497540893259943896131549959388529834334410104358828153508050160986810167428996752260855525843828115344523507402377303589784882416082337309578609377302512738945212919844465719935284078048190913838485098666774425540943907293923451021135446266345737152875917559319885261831505926474498589298907543182912289122758382680230918747588390154661201893537242177482684232325683483528975134048387300261685195259057771931687326749729688151629401450048732545726826372224295390183197722531413776940695638727439102816906573741542678281517804351742801625741169118182938901060523978990542991951767860801621054208587977442375628766868530408111584071006972909244399054676943348292702418056102730706918846360026080529694101252981849670049696120900605348959374851853514672121079247520814229873936230958979297071728034013190535317349034586684075121768583348415835173259261659733197876614042995124427155523123328659517450009801383489511119952153685926756988475562820884805064663634637949625303744822936091608762111522019826000078759737395998261958049474296972835388052219528492287878968079545758595056952728819268232928851627181038532755883050354938272260704209633236927267740077189933499565519266721421996034378045885130829324423860130251671293575446397194637191871799770363059023998405185053516036082049381351478684379420511461119535619187401870219690982463963130698568603153288230354849431737609936199020270376058697092567602849556490040990940354030895101136087355562399204535988265306915906939794729568133606341394118722513554073574814615083832754115151331160040090415862359148649783885703502141587011846906534805126212432225715133128048327510777015058395572180482697384133615899861113894979430722799201587837149397700369351950861804702767025170694201025045914171497400772341334683046065157925226463780688312699542699230920670252403168925216870343538983059944700834210184563200407382481106065645238200599032699393650134367610835734368108549869058415528862535447838857197422476184306066834794021377424357487235078020552391890764837398750763409021590403679611536989398165250306655627332160555303794342291424061977855061910928775557421465959069208142587612116357230788275044781445430932352219874548472990929626631042179816213398385542949501998900224374528584587014215547974529048417120171860012161442503616467276773888770777748689701505647645361620681777940903294104549251839063149052203229911479717737414556905961268243003487092515767958748599298285969944503769220563647042866150674199800164939607972190164220591355542123578865220825041570138158179246114012726287167775332563877148670101584985209742446226112189142754019501072138009344650134085108057595428615642246872014554940348805097704135321081035021701310388817627520272640945753698375237021750481590109327007260335693154390310224700428775789568708389993136255146730795881141744481752483077718893760585622699346960702524346952404530852613233171536608197429048926807786170443963258785882291918545303237828120520818570736545802140685195623968987024103166288734768194169149919187527003560895999339878677744671491337803504390814989973731206215249153549424238602483623221607547954786729553356165354299322232473192345826216577696887320126783237169848290872070438984029400276784955663185710973624319242812549014646356912981701070794778572926009972644581874233316260796381630214962314970948680805776104955022896656164327156760691634283677567056952527975153989003340928099421562506376028374556148146922760173865259816965261100793120131478965754458682751333328448742474960373214953008036532546432848662207800364378605315804852695384370775551784806522233790448859604714729122514162570219223788667984613644295935434894778997422635867851612847185767631691710362970502902471719289403302092063146993591082379101162651811126580007789358388003319924485612313596334938254427832886896759690432071160938033421658843691019652125376408138421843550128978669811849053937335491376939251744342452504255751187615857630322695104192567719377104766201726787948915063093160475892356246110323560008124698162018072785283813022950063469986912444469885582577128010223938947829211308695274819075833212969055618362926415735614225394636561230437827787858126819768660058658338823338126239766367887074004980341539204487806896204583353515853292341249886264840592988799139122810638741771910454230838898962267951699175709037281360605772583791204350588112293149651497296911096331616514538997706974019595886814328726255448458023495876486551216549967841775730319395710325319780439540798152376208725855707413600768351800053668928834854714084470484505115977202450698649219810613495503940269354530310374785452995370883432348122495781688789927177450523968034258324994747714562972253762783312020271463247977666075301781033482573764666869748437321976305807768216717364534490638735620464682940977975736664605109046442725197515885829064496055277296443769603742113571311286782126723248055273281476778451274624010325857577294111050825772084635891584289488560845479560181800384342015315369386310301945669020124488372161863984515448959839676331021207822229798525679233204737368726521608856349671675525838959232999546375446262937811950693182403868094132889517668174219662811106509361697958865464663217539894292948629615716417246053835065585057255996086025841320144436509279237550284750090665898053925236250418153597783436264231916442514490547755055354469285874084232155839990387803917279904755716017302903983196898393230222565241587620615634288592006273422178249850853225205612754636785326209223000894269594072744235885335157011680197482079970995145164998778098555694489127753154458135525853705681257898810067905175034056050373804573513113778128873914864734440716191534159186979639988859916415758172068558796008826756109716304371173367520547043466583475419304885520710694051654875198141311080446964480933675245292694810847215789018715056280481394361050304540739808882207094741269453246302639354746994863044472755610140419758039725782273172276585445103700892355044612732851387433267538880579649792384464530010948070921694214333238167842808275605254682384850561576128387148244653061977831023127105330610045096737698193636344464273919462425941288029320935028224613271420559883041325265275856446581419710888390765274060582666594087498680304649752653082194650850580082988546170209814737011110239396596991187082443775066624040935052549592376458992658114075497370403614836908413609268816192399192281399233814626949016299252346103559238447587704350493748100200716063288383961733362500208182294570755036736781089934331646480198804274044334628496877696669311868930800020115746525152203998897575212280356915450015616951054931473173214632413245203051838443518648435198284200983530437182383703244351252431447666836566137276632908574333970772621709380566797790666027568548114819331674011815061273768012508326688987795510908548473267922646183277411922474252426988213846452817388998251818896009568938911203308214117214580149778339577713274480255171920876102648069909703613921868436152404955106535700583316908159862652445551481243874143658688643951614351584559914009704009637064683973079327675566258494656952033180249428060143324767038300005724607407909375961352179825737896490701026681077191864603856394641945782361536694068292079751198195620594779794267902508792669552363451035924271294286556436130289642344940799796364943251204262598070834387354156781048544067033945216294771366292089727345679059790148898948930108291461204575679996276562763065263264574641873939424890834962349648950992090651151399379407387654877884125854878557896559314003149362155344850811298701109342085764929531614665177787095551344062367640155084651889896838140267990316003234361566878259238632129066268171876195945892760812134025078779750084106684728160997335217929282660003873856507467841263280664251784675072183910436680721484758105147631612560990505917706269803279468029060854566593176705765806156755064131960620418903559996098184092713070818236630581823782960932736785128750342012979333608608735333123425768261039827840302269827568021643701800775509424157088658225751853378046964382773794909061263792499188836444083741181541243587173433867657340151585337927785672138214497600348051122527802798090133998258611161984938756271360262825607663409584128045950029187362678241619864730779357391448409800170761904667298258073874090929277799587310304675293147439081746897194953765677207763116048100628741490345470682899383854851999071621876409771468558776655803179511900263381619288622451079534845855448000849394793632235164647240310330169754696115028933583492998833604815042204894463229016664470165717813911405968512423731164200239856608470086684001132172714907588839123949109069221219469572943574005859379123577599745134699401075923689243523049837021134995789902834619987528716509872788719393107219702307150788359919562444953348527521844704896455036858155531605061515827141181104700205011414282877794094507764505645369337164951387466945661112350694658914480159462566933117866143800261408836346838753988239284642971216486085250823052373183403457286881170329441155712879721820334156676066661186429915667162039387954882565154081974915329223294897717010267439195355400268720101249277614753909413852337700045914377161631809952308197798115954069467929055268926320703834858899847580801816352795324456327987764297272612392130921512431332699550543287096412408610177501690178626309101006020812931029441729710680008921921181378183632264596612846013105108006751517968319679567935474721672559709211007399542803405173481634227493003627090182179983538860814899213135977842076230973908983537913868059032549829471185686590457133134153041298790438024968690226187819366411905000010146738376410223989967564226415594729840984220574744767777070671389065598838597475837842523255644294995659277253331547295079997427410395958544689004758724048197794638998112373664999335719178437174282296458891543937277083156272897953540710194862958745440787766185562206499244009443462941753862805064304055547657489043693722674577012050751821079387612848989724304103110989915293036333744469259531434290876724725525250726803444229103534862287567752457591421351889550717925354926504517651541924892486995897291232764566773726031845330117558319508219797858234450991883896485372869823139239797881094505173803639843299117853791923993932362918395854456451285847372973825549091182629536811368013982845253299567911115955813629744429713446648764317328846814883815843729230259183023484266038509145176642151297647624914275344933631365144350638548033982554841204025070552179179161960937216525531221443036953694558901129133181872590236944551091607871949886089527310011135227525829866692659944769787944072454953225092770609551297910889951999904730509212964225794111006739907643413528176313911280676815823876052081801646150995972076093323083303197096556368122617734610662500755974117494394379809953590638185933266988637475374477358117560820477950306872347281255723634344216024939169450574776461190438356315612854928668970295812311031536333509278779513499708054344544168050818292661101816660509245612779717781030993494696924050474245195966361276629342713435889143865835033361421034536713799121879821336286973349642357706918900318727880455938619544941263007265861293316740793433088337044252218668333293340997841586974572998574235329507495991596588270804775378264021864092335402476480620084731105642731230025554436410404838796468914748525780175541897272890174126353730374089066760346640070572829495830477275634858142208889190724856032302655590600050608820902648940254808803724560289573811421088334209637718998965886259972908452223155091802057037162823551502177986270144433895176974811787992812696813903189273572400820422633254892631724434434309429973579813538522654558533067519929009117136303272703355102571911130034378564968580094820111146362232181847524173381625216164193566388126066496703894918672950964886636578237412691553580217512283078993195885784641293093780620186315867228223083140710474080667265110065191565742772762110265189994023684211362459799322568917359620010294931711890105664181181236869843041853286656310644338978151892339006559540619354886385472893830147468592883747815840965557211436062224164077279236748225913334414473424741869886048868481447520740907018801517480763197685847258954050603457812372497899819317190604613659246462920819331393116718072044945706745845877474799109063366643959614957303271269110330673042940047936614044142747905118007386169996520443645958978323204065308166457759858824596555408816694491616889339855103665087232725656920439092704330863590557901316041000853103490309487846654498076406052359878607703082537852118066613818833599448250674322088980914801955773149865922751833400942141766245777238650650761649194454676712519947588540648741472501663690154635557627233738045780824430616657539241090988859427532007228919010650835668828255572707305644796683351734068744404193237359253850175653371016532095492598173446664328810788360298926564058563070229923152111652337116236301333599904783083374336830064907271516097932850954206283405643995719772859563191167230693118476435124887250897517452247132057872984216537462769468943590175093711672777742303884942740017384955623740913691506019960906857216160416129532626750301260597598073035945562772729804242620690243808181329622882786017237473326826205468780239387711495320766521709129079786010359704130596801727709000029609928187220668432860676625569533502152305122080211694907951126645922061508324227801602774435304122007636149420709176492104622213469435734010256713982026390208789372175077343570923566007863204399785771200539426221303341312028801197197002050640442860499556264800692775105800851734424736045691679768118760607317262304830228821560811450641324862796297184040493509034866144036970604532672153165552884941386838419374432528821610819880293727281236858790394308285203157510154290821843461170020355631967726989790418449748707705392625299625468637042836482849293773239326110906000063880563872766398836537312713425418617104303801583752738930615926972142394694995050039438325823239991669053641609297411867553441236317784213245501039598094092806139812081786898844385233807222120233647791377703682186476350589049192785638821633160486903839812529068874750407355141346340904364350180111813793621342758241619618335044902159933548928819347266418763753086807482047603581739331506705776029834060082467269351455283670334090377586631825565707819206259306195550734406550936349043638808690183562233611719179483204290437340009859560094304466222438673745867481099638590898155271427757140436630413127195687576978728473061259662554751246297089473117436235431902498395371614367606723369354556423606680449249833828293325577067779477984339896144634749384058231275140808080040073905953960161874030252165657749252391958788231525642602899706817675643085341647967243689967085033292533841220851783306242479183277846815092868789590330108142605609657156468225043621660153367108950999083887656483042610603912117216875286708483857302982991227727933554283077408248885990585198661723608912446079369542486012361601782701061094070298170941242017688914701210346942143160983866698819931641458495356817476434308365420247491554992360599788139923395048974425091572373222331866555744096545624592727766017271172532082989142092612290039139839850702661159850642717652153593219133434267820351574261555398279645614097736712302493830252017347133353535751551691724379420111287477939136087067128415934568325219133300967444766427108340222156433662863303378225922387726120002057707941261605226395373267437374764002609230845193863349004429433368143776816553353361754925621075631102048526192865524066273973307335028876778928545956905968222593897001566631260213696242559411936732302652596748488224892529935286955708299516407610834781875993520641462062352286004109514785238639960847504596862143601386206570808197912203145370352599954286929164712962862449454408656400642519303869588556419119435712552213953440412541968558967112991861661416060195526853576034970457279399317804193290024708459963468501772973034228880517865911081947336170616028488836887370216850753307302260657826855234980546706485611844292758320587801294905637480095979715679894324364851880239211648593136721301215470886473427457782496129399340244136136994292208662591975198063222805476162795540481158762642310109456095250719901135573498501991255309323237389186057895071999575679945097739587334092877525056204894232835459951480847255569651910400222717829835296762677630026486200668981996838864548484345908869432461301019592689787285273415349191441125982667339003141956294478608814965582468756897609640170267694585327054939713775011270124350449284687923857817214639577518591150517063167407659204822088574063422359498309856992647469793469457251192101293539836695388770010625557403493761082917442840624569283905210302951275079011744239400664107717060141766866927368307196795205232721810079048458763215196184928520859699681842830016142798856416237896200866083385646439847961762718363983205931306527907243457925648228530880570968360475793263718898927227074221126405498194303392441027161889361002939351396513898077219285023927089767257294039033117437831769357087627771256117213270610913966841643661906709621309506435959113509730214311822721090607052243005906269935325372453135102692106168071075336353322043922787106795810419160000992244906552922953634062237169839354209210546160669306785685637568966999708929654458164810723983966738971893348722978454961041391780943512856855874262999735170771385933117429662879380567599516610592862057127053925585367338155142207753940569373111907735891908166299455762498192929892451646878332415853573007453383311260862061984092729976500842773542295852974687278406547948818126246922181543628335496001076884624402956687833665942579932007769712095579589165751728610442714051005126266300055479949825857560743522014883698324635779735664731302830602653917202596239548704876607452321070042532477880000606819772320994490931625058655557201013065367252540761873460839115460888629267695758103487249351596235608713375100634529117955309366918278960209702015151958761906468891390356519932006152884230866358087814019929514217860012766432010259288734356479201555088354948780233358400614266500722996364284977640875070619185522295196064185709170022414599395065875860024547799395989171524355714304515699415711485187510268883349431596449195553168516298220722421211620754983542901708643525036173794875402546350477060325593085557263430543616448392986006070453381144781160822026830535681608796902228055587239470316984008100229205427829522060106746983640574160140744751785171410598836925265828293468800581862034680545535436073758228846561203619708388895809422584045733538923383865320239832333839601215708428834952897965831878144679462758609863407062208183835236296571360915288638251383399926017025868376891972478519766806123585673448297285028512829302890263813941470736016141797626184453816316230669105328406204625319587593325646423174009633106303879121565844778364018567132476175580305182984236734980851164681012191692335227953805025946953735139547902775337624755480001565259428188241272000579629932267222821807577767579857309844723718537410397117620780368276773391729169167595652500450941249036861172536584396048110749228822872043608522798350880704126664373738482676283839494520020649131621664644895151822008602539422793079808931611459774519820051079670806766741042843078433063239407038056522344600240734791840555879321699926523794171968944880403274516144472416519918266656101022225019769264158137033770196782446407952790021531967636365542221308215904338512968377145314808174813590702717841022261139908597101237537363438086827963774161380982973728524804906133565443074691282305636648239653856801008915324641809296370183955093202640305099814017451568421671925313454650176177048254054934301873956132851804204038838956372198982746254964869507858854814889639066354206729000366622817056963917688440560466824123610503963022509566321264826724728914852140565457952623135330986298937244558073962363078042790685260709070778529812816319846664983588599921926799777459992518972349251342641753015267502943693550007231587288507931934799974778320125507222732664391008516573534229714973314476089117422425131528626393286371354649327677762150506612424943833349816833311565512013689628110660664238131285942541258479577397696870701039797191053246850955218571647810590714334461505749131099204783347623639988893936277387857594270052544669456868753566048248785742654093654110415073766836409417776935350413449075889910867241064171121605482190293059846177447310804122008413275295334033483425110084149210789793538321166964860880298206854683486539411025135567930021835962719054556430826217074477935713853807403117804778405113022076640424449216295656580214080898370769000128347363783656207452169332183700901999946483504214422180822619068512026124859701418836839779767302948439770402908183791390723421553665778270607210468606768406142822526875256301665655238934311160469998767189173203083986896610507866805263644449880067370649877428484988565630719162657801289797353156571283742328755177800225663096189407874792268079776606343780655095299696450317742868536125575330183047377646095913859930163053209057984955619212864954164937847251406544996258778573703739181310912297715779855151405456275005058308962562096997521142440611455336667929603611925473054264833216753786122051381255733005761370480743286081359146051817468962298957982084537425467040408665405062032452940801734407095425217295676890008343092916157777937251566005016964935251233902733700997333462295095025204912361207273786352891980056416844700055271358442989454710142500188597085396439987738773700531086363499856610706378281878693114319420377567752400892746131764554440072545670444909617693383066512333335858305910153853769229726054674018445391487178728070673093522441456897745162611795595084925840077441754442729751150162233902935907863293923288905591049734310314692868226827169425009712637643891551658267105759799219315785416299448911156700271593613149703904410308002611152926984229789804696782135588280888439253337372813287442522906601411912912739621715848351046238328450858848746878306040177780286483632683701566834315771989816371956853915002168235974766150242642739000835918443679003034033748100093267866208013624941541829708602036231138361103877483650629821440000518917511207415057069508518177139444168136163847012119776444175617756115507790898736507982297532211697190865788346947152408397553851915714772254296438427393025802287798902447018994025375884057776447258331387006241108080979302294836498126336873454011424339117503785102127611205732254244821780421195223457951425550395513600468313547774311397760411681398392213329930307611140550702085365844398792853061088775263793422955620954060881661475617710904427107782015512854689170006836999388117979417527771436247855672896024522133925388661208436856338073103942384553145342092482068095470713707920012797200869033833492885667203446057976075172469529710890779172745386213737242910312884657532074271726911578005759332097521550548334956129272939786219868792163715488563718715846032919528600574596603489638278613339013060200923183979959836669940793010599291624027936941575806169366708934689338539766802867847497095998893536692069270429690742017166996545322484028909577917678911714528813251412755358189862667203093228151659157450282790572272510714231821960361549281972013243150424920633023354026051311682523786262075427918082217188545690786488783769543500778574322759928832446653694902824274586910599868016252088286446724831186949574751990880713360791078807337171767167631715149824575875384071264032059543627632524608137450072951946282471679204604579175627511550319578889423529796001048260076547672437913430894651819004114524921531314196715680738571207088794515450329388873167586601405198526596122216314672363220303486221543966352734131906588426415169802644548505237513654650653697799231135373632372531048787120470550258610582641639731339134343968615573109588239496765592597130892395959453676740371141567956967049106732887894499896209393369985017321168822601912214612695725409527532387533329182551233209234218708566724923760693909501312585337427000963999420995867404813926900517362180737950246800573044445579134303757611904968615324782510574935007727862181872121632221907105405146498839107842623198226017426930632420613780504318917536550443415617210682248797348351290799721567830787668368589530978508399065610066032499301021608457484247971058104766546688752211490904201871082341829772195156955419409093985021792469685185085257764243313665106063869665603742952070738768301248534498983841918444671100414964477516806205377645441217657308647370133793532211604282293755535896013925404661419056090463831465743394657114024494453825583574373346495482296467966779839259491050645532711087681036353474914951253278166652368523757857642329886053385695725997347336896588734669960934189770612055866053990382099310825805808240170743998932716984384560406412806252990152950915199715613467243279561655015658607005915509565088811489873684408928619342090201701024307068899571368630257463652744113133696029901151932490649883908583186608085131074531514921382630159926605184102714570550980296677997293021417896339460795076437312149904078511943258513729591174285088737816219261688256059381937830707666155218034702034131457734340462046826524651321801353740656450863498652128406993025170441619132797007959228383915213364963238529816600036960742602461453522207408361648416281236182541729556694557665296702907076381055250408997170471101670803976131797683679937350109119466983053348545803333156732787709405848223772587402376769726134708881807839161105158133393767830813677619189656559749790669409107201204803182543095570606893848777391753382115023035174168603963551022142364308746109255604145502171688047717718860082105829594317710698933663862904090746562066904662308721918413543380140944616367288749351067727538544999667984549822660722393242668994294694417277772994527480187393317564482784117761619758699847008238072416500462326198750776533082352624860666713601951712426045214705487544224888717108421702847062654495667894814364123667067283118107914281746196828572244258417565836860096734097402365197671938865305439654312568884282732757866241709723654122903035031173551566551463903951826553953202168447234967581835451994173172780874155350204502323906597245001219079503005510612558744446257753714304997199080325734412030619957528610676099090936592717716187616053901820838737340174699265837330185266902851854198732626689263334796372064599175601638205006978164052164813252094876840062115426977323941769018551813064987709199317511356496030346885864560228540917650495710619889956996964201537361810006476386189690732177022968093035369871395317587754342467032152561502898866826336283124562839835311102450462164185286173714000375403365019487932218459907109036355473063265190757335577170453323453730512380519503095299427736771503511252020677582998713526217974572149522426664894960677185978890926183373888118012695498584121670692811312148354633450296125014273303929949301429343607397240278227714085594960629703476049561720392962353553222865103161389181484485123991275638305989751725645181541099916041542932282902460153656454574265494784732845137025490651099320985694136622243318033424490174824314715233267204254918933535157689423398789831104094911484065523284554385874874444406584167609767222010533697638648732462003504048001847696884581580110879275030533507284526221235040779999026916369761061546820816278929215822000458975483660865789189182809965675749782512740965939651394559849607034655576732733718528362386823483556224179719095366935457233640888696086264632497936946788916636615989789088398702021479580958608928223699374250103275386317363365900802275861694074046019810901976312449720688074821341236751141302036703371132893961364305657001449381642504784043283287920386658059785291482769226989797939735290523795785739961061465617175965400426702804521443325160127983289963605660611884652853002412293712363627800653979755785596425293858746681557332810322890242871361773348304422496370556077158074801413685814616967862987093987452032779148131873620659670697052380609652964665169200669618920888027314903919935625679845085441437763054496399690579063685887034169321227524327971999595731855334810139178393622035779171307844063742174770669687646038022883081355767057880989109534240232593259992868663699497751131091849886659978108675818469802046082329251388009935787430412267979169933742623578019111829943572059124704208919338168550554998281251637079268348779331889932530858769622448600021795935341341364955827261199432760781846124370764218622582848635909726272299566659088492926239297681741245069758039141206229691047131268427515097065183946659804961210369272159773687534813422474010102174659110956270924275884082490558242854026197730273833475516291943790057202843094081500999807128527225963148194971159900559182541786282813404050630621639747642101300181030881432270384937358810069759683988978386709944134023478009102001152666774998607998548498631661560699374259937008875245490067919428005950126881889954304622633764268010799834019216947026129936925349976575214664165589606151192897616835703667056913036975521434017233285485708759173955121983522169267949372875063904461355818602788344120914478194104639576428852005797064694691797251882731137906888408975843047306799475094617046820597856099934608670769621631599985294248137109198600525186600565938783451047729980310877721107796922926204363094546535854958035424394520281012636879071693415417341024730391957910701212978356746068280369377852459948005306801164009779086620022996100019285274633355546455545914714418530398559593733421606626127864592260167361356320721610822582126249337065308687330740782003196210596979892305434459296145911108109759287423603284690403521556991552877881155210726058622958632859293140534965414619474472321550455811434358403278604546268293359999492764885771276633870202044796066327121763460619285306712404237222988683662668782243188406427623818915464346634167917251187225331110053443658024872635042212541152281899956196835212465478368334426730965898137646071182430902086364223234795927179010211030592413907931094002179445466721812339757849919403809888825146611327789783872377057369654004887734622862010898246849019866842348635948804005591157352636585182928519374408222995485730683319456783181271662426565961717009611110216808054138184151209272967094713823161335538218426226298349283251845601942328945216886608812357675532936338046190974816711184425721499681268396506578329538627375600951399147093455847836624036276594997740276609982831584416933881464235424034923474926521300982004114212927931083464899392481358070897359465661373186362469931781962590342688361486814078549892867465071373286443094349407461740793016208402061652866644926587482007449694552081673543228584373927896251899409849218377434503829931334883182954958200569938002403959784547483842956040424933455721149160061141995890930565363055537492382266202433719767752715702291692773629343951670810433102023113404961590544875942986724002343178430362853718903963076233088058477882876750623757675357489976681096650487321346229288134292242109997811653165320999834829938670766495834398344761052191364408943395341633285426426162049125212530254383295115182659069157923400881530137955397226314669435060331952660193688918634728011409717003290992701380693378334309237084017919237961227311216211088787002404794172980429274733300095704168392795532453817063137463893455643026978797721004452154761248656229728994675945522560578525718735905985959357659651939474205917773350175672927238038250163403889376192571977965604489498069618778735667916459872225298910611198892854469682381818831757689627759589642090091355282330405007316662707420310635117431130795597528763087978685834631671302070397913808496770110487376111678266428538330067702434956530048274028607872914790687249075166232846800706166417076192502038497210158693829257911947623370038571178386114331488054014375602317149039821533603698889149103816218830059251670097546113929882100688419842743313513714496657274006468860984080141610330653811457170630427656352625046838522394864317030606601322079252810713100169564856590346860408064678688555985826533958114448656689700141026925381903965002057332144475432417708460476059596702697083488049742159412934400342931583385116642761010197437377819190445691794026015658336581599114811296528996808912867254650414286224724423239506633759989689103269169957212029347927890649563660491849602037630123659464584924330994807129661765520045468822031240682864347876875935583969198604320552544501283938032224370046802445641572562263585653769026225703777509076858701945752147893284718289852572784597880556118397415031045350101255779704246303462806629744608218385472772850216137484999566141991690174382542772217110398686252428392219417533162528172960924150412273234313704127738074500519918680882345251018638673378074766125895034826451451461897293254871518413598201462406457177659184499664904340894777703628165350119493430227306151127137735103536583702476184885532798436595987226572217093642709126559929095792694959056826064775474853903135905142542934398030520886201060850242375226359207034308467792222990549775063825153897702706378225219119687598335622912343383327551554344509578626355435485732300265684586939099836290088364344676597417247916729617425126127126238394343095377096131236623391482466388150298981135930034666592832032091918241904245394115598668741452842750820415325676970492916243187172875493548599902864119240581941013195770515875192188291867687120895659694015981392087856534488270032681259426832087607756787953782721391381313459102461416728828227955237494739035804655221159690607845654083448604572592961902798337444491963504685189657593552321147844083594533107118509466707687882517369076232333527793384525266362952687687362649813726204577904658802506341541086492076337821965772861921093301756184467941844983258924703809101040968712626507547856497007510960632588265362270812887829790733950314997673142700524286249205933742480357180220047025767355864752267639972611375182548282063455201531649726592912781076329784811410076101251207843602678720273942358149943695426533513228298295998104288075138261546140317883165575163647790359424006782787489106002433560211423740783985595617867986699891819854685642585957092496114319331899685025340454782062864267022864792382075820657540351393571336293067755703100670379133070458087645738540079870869517976107539636473718522633421074067361366625532385837203008866957328869189916984921298384204790982903842861032472458323718780667264517512134768753178770541832806849827596917375567948684537259865654619296207559994595346218542941457407571590184124360973840164119562571621685592660130834108581632025706059748980889890188284583064797410580201500815672215741614967086551889688526695942167955549421447506090352273632587567559225076625550174610982119573167370979546371609757436356216498201847711005359184978902013583973530469794105281975040775246663199542445211013160149288351852289354555276863117940862801101049014314258638964941706112929559515798913049964012351344758242395089444788340494030046763356877324052143972283775013338147642486034756358822848883448230405154856230219568798203261279806831984149260814792170169666773753919125679435909915356540513390493562838321097361361899310911903810838142684960306187505914777264569880525680804874850853461818610027031246753410262140068805454989552323066503512749809498645360650498253839187025816477345487157356813441422565494720248733595390308137842578640569601249395843082215732293095655049875257403157809238656185748514916672452797037357849930026542004459906755218004819941701810365351030051911628390237424651727364784327185067281369084142022538771771036162100685237626124900011016297594546769683629330247260491466558747246937765646395915392165347164433373104722794292783761336970568001612656596610128789197991307650572501342123957709822506666057738650930130005992323564557596064953280653026286323249155984733058579176864174132502185919478496635511169898048568383579913479334747427179328182247399799600598051468420171488281981054337554853464982844129293689460977136025567813817456899586902556355762586964288318217603468848693024244503996089090910203232684416976272519854439839279832960818724582141627547927190069868155546425663561585484456344396886486713917754602351075127669681071326175220221564181925513228270112389842690508429182460057609979689956938303151787271599350343788799502377697945461687146877083111966484190737961458342354688869090067166403320253610157827807750885659356363482595734184108400242701713819171161247994945488586511374586810379088085130059136598041743736673195102943821503723036170825548717649769854725208962979666615922364203243808595369003505759291160548680824171928478692098679265062348288446003196876756184430310644070617897427393481273090036760116408849593006712811874780288648547697473709621049202997834436032029894709406082272499127128067725616600530156844105491066110423466712482877531334672592494254341834355326990927962155506398491015363632355176637951267741762790257316197381733779229182052131064318660207723882716348699487417511000125465739775614111463061798453965945936285314947471815948950021138175374451955205209940332729140311883560877720483258706707874365767141151844268137686149676073500313123602086626612524207689205912935932190480597820504204411154487935815870925712195859330410627813191213096773031986448982198051406846314838620904301659417914827855561617184974016589496990754285010894681250918762687798810125638453824618637521816522167289385710174100835063199745841673609971121016007928835583452199614787653276020672693334571283001751660337870082635874508437958356612182112494776234538103735794618017883635107058281691632595990961728333749256713674435447065941825054098157832002879302664154495656301424533817886943399272706415876413392784867722162147207183786381723470410411923291434291102590009090161818301555990163936735759711173912092516450140881091959647718301187621203816174799658458414961697020794439652747638879746360302027796135577012923473440452524678069134438271307875155296206810154294068432624226966744358122027302953086546264550784982713038537038527764998467213702296305902963388980475656025990435348898744533308506203387703770687734975605686629342794749211530241118966660768528570025467430598373821798814674325355015976544683680418777501898164826509050819886343391588373852438590286207713952847204862195650789241731190319469683196652033098696332293432394115020856972173947739501213728723174514151912874810765445211701430246556104445508720751582708992542255972785420075211047513803006957129547961257659247093377169869348128939942082068867104376503108502266782751279495213441468790562279970031140388515387787175036056468048738378016011682611207248266363603500978100449130521653468493162259373969560220263991048259377646075310330549782881034681391939796543409424309332703308585244162132049251574710634311991784492829295683936086269813416421157488449125275410967721588157947100843372357556283810548716294793605046447693245283893034540835298244020497020165366864116353332652032363853536847233575733592370454891095822306170931122880898990946377523148579928322719682148258776277947021299206232224161224515461715807706986670457072346084631865818778026098068897498645977298637812230286225715821606359072691392287689384252668285238414647579754906578830835316803445457212670611492748144684308525174970287407576364996091307390152810920040751561378407584683272949256180452597075141290068837075240512890665465662250695798896669973993529641809056484615289453072126540847376617505878508934066336794948105684947098991028984734081849518525826183530601048916588303562819486427614528836148653795946205492406388522020410944327441059824796979192901114207710900045017695442152959282256866663054907715980861185161584921839467118160813478958091809062981041233450641981358664115043186914740846888842595010884831001863546096160896473449251159974321031559911372323238796487155274946921773528444825136058729093568149241102828919934413592361748783809944855000058095887603035019973403980333547889241048633049295070550938450181052269228414467976770203812288478221244573190015253389871615801350120935983344463618683363484737843568082001608979137852713065903207718015032996285764660514376893694332569995848667377825466337459293420739729654396470252671152511249821216971803445807892740797293559309927163001423733893251760426725488501335339320197314723662790519076108365095352901840933707707775528469228926826589363563103109065319430987319967940948680992388732395506897846243535714606468266430973938077017912114609312453491967186443004210451045977524126395494615569919013952883533179694539143493355844103814189601642420143906916111654584028350670236887408042350677132784302693699550689434268794677050399577385597903142907613080287782363348212065912385270372266247299139079646364024563425780671653591753791270674833713359844518070854172558610936879550475491100580999765193152328863845794481072566614940734831086242947195421859774985189084983941502671497444773734212324731375472798799842849590525543612330382230307619406957385482576996519534073526498553792026857654254733696331304570203229163665224379698615214504615296999809392925293811903152698394265051041325145923602036139650278586020957183704339605450595144982064110155621149112903627008197962927876571362921084065261210144247004051467874548307354523848088758828838087214460844545204085061910133065077714411446684499066029149466415033321365503595781971706427270506223139064727719487754287704026809256937372060203049299410939046694145806774967959043113249471938382314717227561006645022089130025226013719561903806323798337245348996726255980758693202835659801078958161668999117935165849785511507822854979469592505272381021028015927970361253396084878641127365314309579417403088233438580912717673379546014322710058669381574824893255609511251469771414772452660799674061199278498810834102931327390326048154830844485683698305268749798470702210873605066100069283433902600480956170916602825489773750540649154580524124211024249352886854639551290376090829345097831237898347267482712994761431528615908343548154318367766683799097119852613080365063397234967149285088791078597255220974496728370284632079245255489036307833045161072059297063159300775934137401462171171188072931622562694636641700757601336753170046569011396660352532996257362146313781619179329177576844657124125220949718966769016230204648718321678304093635427650951642557153269828892780077830023717256461694651065976117732957894043622163718311464744685041379996114545838542158472669213229404153769241408885230450550898356961410122346667887203734070717778542251910037169153921972288013069703975988421634613632585508573562609659483484181769353540784654774515894642896085819982996612699850503421497647602576636452680145879875273346057686657169697489173836171982312474772942252917180618233987891815393802926613643952313045851578343736886800684224732908148489086979294108871195524318638131159911741776755436361609182995898083883057901659829848504592798114220307059085035330112626535835856915543900231921854786617678294922889022870562820312388233666653995650713631643583012402281629707766267465916303638729595959012622637790770925791597694080686968422006197504340779850073746877501989453356530585600976429311864717997983811560999328505869275570334551823451691498581070911753902861306984631951865927838767431722249859707706793829401831925408420532539360126730573003007574366573931353722374818950585349164885893236087008726770503395727373844090335132300535767031103572150188197272513939582218821190320238332702853505001933752700702428439946044970988556805155356663940940434429663036387151371972589741066962585815074780895084219967823015830535909591490412195313052306019326606331664597500036416815656228297526418937255336142891732465673560895300441120773898760572850372128312041707790940559266244496632420626558123895656738335747518107721392001042318660434351902218013650066748102903638752327031844838921163996637286817620631354114510618366422769168538117846686063056130509224950342710297617115910730332611651384841379306279054631944652463827810433515888916120010454067305593682300533588632735624985713668215824825937315767044637198245636936900157042840753963588391457586737074797012770618508148406480639097376378389736960984428826345947660614698486224547674592510865896103441660842972814711549744602204595717231887428877773247033317730809116748151514508657140145738766877082802940929160227445501412880349924217124567752216695377809999837599133261398786410537447847715458326825244875898354608958410510168531483109529092296872027431383958286182733820379249814117983797884556417578669943094007818213447302857584123554489288644359422216303457056353742014408273247548105026258427619344138913379967200440966093291787094278515378663826645105273338273331135704758296036468154762957721710117943602590219322082095911875246924616093596916448053387605990104829477450815339809192641455840132560245484209229958004946307345481443615488757867292398615596944779740878724045460226136391716138453272491074266420687524117004912548974998740732340085749147077126760724157260409400311139151806183383138107082425374218479923415575136078342377410911917230847466868460801585689746190792656529251192501238835956685468467873562665353778575098529706267731631632337504122167047377172237524411604269083779467893395876846656988487752318302727318038975750766981279518993497625103519826486726565197724033260299934534505899231726325183907452470231111602221221517461277216374068469750108573319627457523515199721966374332604282503973704425325151966786114227135059726894876980781839813947609441519324115122821253536487734740164236521431327584763475049166233143206308530848328823043900961361653501906673697864669687187851920437191993542175370113307915168705749775242857563557048714018552383432063057980250694811870848946705993352755567852025115434254557420846480474761601621830030577655707508953084370747356847287637181756835010551637341481279882793095614241790402251573767207125172466961055998715365909593171247854733788762399414840253454774764612849584891114626616569924795150208504894128905052282147560687987302735807438388841742513134206014008088769128994277140164665164705007415330763497936983754704948733890328395678226218569264053073497620930046398374602715701968909520341896997235089055031588500581277493512349024241347551889035839413783514083635904445587103724930634622421314186123562399341184909131000813301764002629278461076199058108320665339872000129116234189219458334956175567875232804239359486612003314019853923150273685018011959849195744212818987731476561986376527848364811092545061758765340728707970611346087827454135305770107910276106158470367154292477612813614991766558301377645033001638723650019588455382719775392020215474705244114358593552035378967160945748149739762573861776883807476256187774751897939035969185386088692353335221936961392859866939133469842241121565472988826414431856128739951500874420744971243294780527720149598329295180280467594630896583526982602520176916768123860084319022033394025178776965091353163592781346073065147464904061105005017950078885556548531527684486319586485116035023776534852708756520416343083066905198830939075148494959249657648401763260860806725483961718760543216850819148877270327035423724848237389071633168036429121493311909651841426812185837115730319866954765629988515560887031666621733964827967515417078343678164977669106500884610959757067446857149770918419178296976393261755150038378225208538329599261256095374254296358617056158726940038339320363944758277613584462427237043169303275158291318962899248239661028883466507016152006237118589063851578780789869358660143530414628424804961417258203277177274145911295577566279232401823888870203790110270577251468578132917118099073504135100267249909607509479199484940947910842086386988291510742259894645159923711727621428624674163208281051377594208120817208071985969384124263068083694953961519514447644620364739561792707788745417554605168346483141949250429330869580233156916105399760592511821371621062850716126233223340036752318076169130375486577117024217473358595258388490247931913158312787664225504108763230795844893846706543443197247516803189650961018123063748941016059689569207998413705623055347760576046031823201143240479099806687596536662468089391501437575451783814074411605265356805711437025901629921373105832233489561465395017420569808397654154491240565797408474271985465460800507187222608690748219334028847462231064482774346441395138925523179165539427550271833080118977181748684419814702273889392705988157627620453306902137110491088448841798123574241050413905492976249813942726106339706140764511305188934770326600459583687582670388306452661609412769899707324431470908611916720876073726385393926215911489959402971037449357085076348892727548396280101034706118657664244574496721041126115957466866557623725529205949636055682398765853204289626944260689493073848454333291841779459593854285110351027828467891260572818691942537413458302221241588960379227216110024536905128474320118370770073633155703519836066276437433681338496656627898074220296066326964284296006088915658907879460520586148944514615654983540423239654464096032482515014016253631305589407992544006817903917774670296103403555251296970914223606947553836072230874748491491273910725971645056129385801647399175099045644019135971378750096532464718014651058120349278720320418043104492206666717961255082505132173653191794329812236858487511763783636401029257856474577317516444410539842669742936902773373556558734644431145898101202562101618940491374997981968859547962774251347302885123794097544868821040647950961353170236574162785548284832038823502816912708601872725230345927844992014855806987345632647468511108014815358609144704513131163310766884050593323744864840259085038097046157222078535100714766622152587032431700651834027438669881290517625099736637129566857067794053665035478849237394377775302686831155927364389471800624448804676573796793637414246228311216343356501399606711571336494035897911673218080930728012375023620273304933852349523842709957126453425611015594715300006576458922894859569333995291811557121404435814680935408127375283669990045761685313662942707745856352503485145811564382644086044870824563680501313799992865620258122956796054568017969599266696305858985003073600251986808574837822172414696679417017022525164610947280978889476776232449121755336980583360680975720737705968921755315260621669405454900715905996735391795040002372709081125195479553901354381601895666171253496954932599456044399026494137286595910686029706145718323551659986949043077311490976415761938070273128237517600506652246849393610892287284809537374462711739033564133607344250140819284198498470172221715947165358949050103515640538430763482171638179660016698741122375732001845180043101626922931548136726681134495493241443607176607021709066211529057249675637091061860755286644398306999739470746738727475060091114802401998734130293908820862643006571375501759571771997421700224422843022289529929193787122168364256497895091903932299660777076665773029910237469383948221403866492946984469973402038880631027493290496694074352633156592642027827223272290534643293290248601190937969475931025922214656150280785674993466256004163114857488657823944024449041517225457120991046782158923783762749971262486826976589296411153216298761749396613802115185485895643965887155073956197870992315955674707192752880879277165389996938393491390952335266175484419488779287476937025647453735024652671075153110464823627766288780355445341025013479745979684647223256872460463224765864965012072661644244198264091899471808242258448217023718623149815603080780399659250520064139140696337018828233116913303977737718648405331671903433280919824559050702962048288201623111136581809217290085575417470252682496941418851579586233698652327626422800708635767657800209915170395502790173955327989182052040152878241804518868707989678531693105714642349219261472411723447585357051262068075594914897727648405300926202264241877080865356792060356605173802273595022289079763078690865874127867769823727776394718498383283925830353340707984315825772501899127449015786812414979221219326314970435011440027418177264304061151106646532663594468733244936457990451430454697990936284029677919095361182835114450794470323790238714600471735798916754805904512735429552101045190440586806752726267345898448012338492196408053851857785841284952733373034781566203907931076611130696456009484618258029332561871524266195925714915753300191930028238781884893873600434644247730867644820869732551576137061810512945769070450713603727404328874714263416894454251922950803380930784508225758195760047703949345728602760225026102107025374680128450757111217546599450807498138615186367773117025757410975918288165741448615251052781696928817747338948416952903769066511676941126683113736813946979867338640286565019757172119320653679933372887986288312871621553515812764303835763638521788187258281637484543637113703331806378554115054838203873042003398364552745244374868461539914430657113823561904381083849382004411586759545353698411452831507931993446172710769782033250544325996438818677787856184170727811957820049122748478188201160323094226329842663412417306841842704741073662740416374117540634621266677520275748600899526784295519988032132092291009137981478246547907521216479368729649380298227057889108694312101134853778185349234659647673294302786754764611649051185101558460656027574166514940147341575031498084577112984959315923018663885327563613767121598435545468601943726242515866059075907793064456229870695464113092533091346602112440523244929143196164640106237392307595061379844643646215010278625488561335636344181061911404013794980386697047598825134936765682607204499434204031392422511085295683918762457148746347286264789405311152394634420396167992228750211560143490823800730674643368441107599586206625893324002676294545758693188312432220593914005114104460910654798509096964576126051226708977962718030184651274474999133834104013668520458624767067516032021267603309092711323313146907439899814580692641611610951737412601718851062200684211958023888258041312821934248176777194735640548604034994069673183307832919011486193444511311263568314614634691427659256696883162916860361558750058754780419763479558375627477505834929357276546891710957305788020185642561353278350830448680643917627440850086183265379295144516303292152390857163401327559962547506580543921236431762427144488659818397562258857269335312712415940537930606087081221945172935626838772606428433816279244685163896303944148231847790506223921638860907687654384960062106790167599550405399248724932147418227684394907613808732748062574922676897012339205862990283387814380465431880290087613427408466641334471410845497274229744721660219084720538377821199716469297722978096470498459120681950123001322023291847298053732666214432882147642900590664474917878632778883699888751242737247404210971564983958481325161972381191861961933581759394207603872148642976063349834009204558673547726670588843737845688463107060080759306219153843814092743969411368977999249028305439824544498261681453911694375765934623829672042541249072742797637774936136805855084428375965601569736189803054290134602568711046597764168982806541537847518509331887162321628895170921091143844681074478664784564234664970444596816227863128148600723206898653703627825528206742907277376276446582527909161480504037990817790353260465960366273253135497822409499769467090885131798488098165788016041034310170488879621480260894125436605274662355079196490719335760027640626495022889164697051826762979380540153258874007217264684273868765476664454619980418311057982430568386435931630830034579623278265099277395056794404916286961514555692977034981839094181399656893904214861502675050237915785614340456980004947152504616489855982141450047445286145241083993877178928213021562555856788347335064065469185791537765003963418686198554136041737240816080607314450462274175597581438214127298817564133015161663016734144894594104942292904144545450946300843188953613400842784812014142210554754959696297081646146502863390771605183546230505732478554620574277715497918425455728068052764511101408422572487830332021190800030770898142650887656570883646172758711997532787680085037922816305627683716218491457472633021564978794366058016360333000346009101774851038372602650433225452133893106227320261552922656625427366160432940696373914312830481032305744612655364653984039488950830642361997372974905159176017934000872563792453755805497221625022691652724049365356756754647649230502210032683063882152417878126588580317312736250305663330641885651153839504611792472813731726224828884963289258576615877561155040613338117302553162137925702090086662506181580758149267062429295279419590071893020863742829749481530781609224253282000978624919116533567548907284898648369738198803959783042025474251485538689057451903227307546628786109992523153513420178953307977007002854531185597558007521508525661896224214841650434944798015938291649397505849074835764724551528097347029808582989586602049559578694025827575578473437525534650529136256068802150933169269373504049055025616317461407453491793743807995214234752628376576206696072075911196796562212999500518636585724873516272338874664177373919592927267859053949084215315237667962583549831207731338403333815587567502481536899512216745518343627067724997882367017386493124857334668429593822216579447089796946466528912965763689601720924598448676823483492217660586989586267622232028251477308136791467194675931526953174590125000122178636613357941455012207669854752777832061095535796107713764073749045690251285649767779040968481670820708949966582550678165348911084990594583935789595571047833922251753067702478825908408595318272447347405782963957068222368751783089825485897179566335959843253908767733075083310981091394024999116226702599889920271448682235749343705437988145519705289442963739940838475592305948171518581656288393300350655326474592519316152876331170572256806364018297094374020940961329239992476904283510687623848978108517753426762024437272250444880055749476632734991549179256604458338113561058408626561900834935130585206415419743765397981217158326400374400034654825679662666858162351099218476835497605667448538437032810164562704425658409610189520825104155093733156898314163302595463417835006755877655235532129629261836001908786684049325171069405173973315515266181847259148725827222369228914991048312573019503275478027264765177508747290135646106199491774047079760800117895272972736642313083574392359621542086640019582145641792876759838632471851615820763458341538099078879838630641370916829705833133501829348015921291831376780504972757582559602231445056914329390778784803329502621525921677320186520228018113273883723124225613698763529377662607552835567087551791779523023076860764532556566038321821413195838108698988062173582428430944409755716355719800616404920819490262367453595998523865289865221021467383253891377659917146392207720857824498818960789893829382358306179079344527733784381825993615641016865225381320382922888294607148513885735153094724619560190301930095855279054827445653756617908516250370849874997509491670992505148358828749776669814048908939023111906718849354867754161079223518298279061549320621074421847560475160998442699434855743287135741738157317484832928610369470453364925402233484691146233244946338301552088645639982760136394538389792060872958909851137031218656025427939073430868673828662784002845161318780127476972588401987508740977897214904955361251294378190527262508314831632115421986994309174264109706463729006698676880415052587898951613304171803176857375816155794518214709156726628627237656095082203642655670823778858816909027752178844721582585202180846777087040687331652021732542716936991538401654250570776485668846129000559965872434591479941013320776526708952444341470538616107837753680762019589677311158260055549094496730299736507268627302796760564506547255096002506725063655010945562909499059010581609802460315659363379306558671950706809335770873413999617527908233193418628776434372979301140379534613755957007848425497817941474373093802119116121872491380898190216728819162565750643883041582351046033816795726209253884203316816908720920316478477867183212218244603019953923906345767392499330303081595426482095053959901874184014399633772799610110758712776130496103731204627551786360331021931952924306870521416200080761137559163921959661082651923302801777924018934572275426439938685887213936652505890582189505925219050912185057131551894070338768953615104253588566067879848429082424948116682827577961907413309419816163234891008404835246674769084028547331442214921864058645054413742463201927061038584026672144472131637423147749074201848941633636557803758867427200414726830916784861948814337136749878756972924921472115192776330363435973056188848053482083498576539885699669631795542304957574830690740518512055025098865797652889947065098340106115566720840065583839840360877331389043771026772575451202666763555861333847204418170422176851609365359740408593372404731450703024910307061241929021373540844331425466913496447535438624592372108909153375879578422927221965103588793236258640804619256691534987686379310792760189669168988395792912373145153286308948088382943782098294483971116841265724350477166628752137018038110682237805752588151258721334224772766256647983455414210853973717871934365307777546657033228030668661998058080457438964157752057464012987840609277587681107931675938371182810499607548139937742761880426190886532387841431041304517805926311655547528289334262308903403179111977369113776506654898624416921811977882604179454534686115918024622331857229948300912341019846923216253431019685260264741936694835774894439458213489524654135893899112152940895765309183315232895601279748317179996833530478891464904177415457926522036806933991050600702952934905839211545298904887208428450607321184488311258474251187587871523508952696489832893885657454898858429612226348071518003957610766154251999625523944879284134160419256826119124651888966319686380913269713004231510789334951754720980216299459421238546424070612670844653055747256401455863354949832011560992112101761590473869861438489745556472371079866859949806493310104965213538950170962690505473265399473129229560854889622564634396685400674654347120165608291618503812789853601134674370020315223838857355435639440773050394640794306865207455703413206964878056435339120542375940636588293753775822090117309815552790528446440303642658002212897475087862546425433753062559095554666389719596263296632735451301353471569827494669252847352853825528885130372212065468110785921616384099239516068362060977289129642446679423413680094085240700670548917567859406174262268605225686350648634186444528757766519517497500351122241080200721798921200514476490305657214780845313676036247036117383308200466417331647857950541044018789840495062461324236848430665628403915741897256458322040427852887802767141554774550381649504361570358470751534447178957574294303681952913366221267072924378983989841114365284035102868303119850186629514015043901688174510763272001863262275358674936653175413142715622728991522115433194398729145015013165228608708654718042132426064922942612375638124622257911036231251589495327507763863430023138284334709291572393558872458899898574959636073963624557994351738108593052788966958058320675766928259970304156371404125382315488457913427696609742119555457630666015774446214935518570216198104521192721551661661327598348307495037029822405203761354105027252260062099550104642640768032831525085349776953650933413269830445808039155493952028454979626158651467189101988501080621465380596713857667600954118707566281641975837646891610189633840616627899998081244247065603067161523338366157059045935030438547907515818550586114989011039748510458111360368480758073003434133454517500057923313569020877194192700365471854656763676493501040208990962514986426013748622222386290137251435985623598052510699573783963533397846929049511425110856276890272102784567418740955168538545717264949809628937019564677088884724382158839748168629402123024703260679737982736268122960836516673595066397432705131199686515896199782039020621781907979075857295901344125617053864700715870455165027605988283598335243745758708271107523400294688501544758730552330390476108153991531680605789228688745727253808569324922694733558814282129448472615694299153820307230966226045752294346070049732250287539064947861812918795074436525152351945046054725245854528626495743704962179083218028922508347956466689303011352633752864809463241910294128621466715020590742001672107114557185925416995695318692944879583943336330484018622340579660308120184370014205524786112770655047410298834166530440066037477510923868213199073178809641378285874800483141439682956066822086309757287806375871912871603002612979404036234644844178647103943305221301237855221818946228509257736904323540901945068287175067649256664118539028750860406951464359405368256210278708385913384150975917088222595912903941960771319860134166687389043358492964156906569170994132256936954443062038002765767472214976550640739880105756740678202221929165631591413796736148021143351913293904071525393494438776466046598016824475488327681275350819484870409419786573574249420436602318895667569650041071384808689259149739821346177937663846340703983154807353128814301890256431137955075749945959817613372435075541669262849853678875750179098952455621491613306024133973680714814027336960384304407528409226692808799501127891525616362392833663642383870639365910948572043630803863165733623990465113205063839600021415103159296447245279150380155336165000633377328897666582190796366953658873865839171097187893486617244275499596486917790201040867082379974557982611304070591653602073341125722167851444138029719586636944334674588160962069497746009938855394559497437297670637084522187468436014260451996420369621361481316143641682748411460002524683357196046622158026063886217745580615891768910774251933442685555826888586720785929563278184756006415243195902035799688209832198430000868405361964334117758960715629539699690235194106662004520361257727169844865017971019661984857311013510794979764139115873678486668085467407647101071692151759005396829552411264021820884272101063579976932578674765722520402093677289705693444048405327435410243190140550849062934417006475009869181817735375159678310422431837610576622265263127393158327905727730267682969471464739932805204394585487448108192802695525469489167375554526122074724225625270434096444583858462149134384746637607283469119366367354226887791273678978752850849387150566472487104574592751998090696190660347882365297752399028377155457716376076320968173573426077308716995895153106660417336870152665045157748957255877088978308139768102890545612142084777927172523650852195188923549025905899129358308083740003129230084056319595823117617385121601369564413187294738181312612135862236466240913753566702443689496108225828227446345742556905981688026782313265085117580816414123667443706631633609759311099540539809877827085550763084957598940791952997019493056237043578206201773757086282189157457208179031733192740860070880441888564828138070945920393345697443105040198007987262183779911732549181596702149614311992368859305786540914009264679513665408203882216051421902796951234979886337027193273904199890404115981995086285174575073574434129387848276829653108281491404620970382857397185101609114854870058122293806077855147843178529103973812685037998274056565806300251578253517091700551369397309698442034598033540656086371702466842363687827717333577469045542198344938657041017247927347149279181614625745184894179027221643474230661652608816894976907990463581408560438222524843348194370016444551476029757966138718019854489484160512693321319014563645641045879868196245653253954551340577369082141388138947556955048471058250039419921301608230775953440150462712523180949560094880713961998941668502774615402249838573462008944452577427569454063824037209632776324200574149955943302169310671443261393266353340740664034872230196457331627524154736630187329704778049618495187949116909247454416084354075180761330135890782617436221750684954774767684008226967258220024651399562610244166352768705114606331418165484678456106735489287675613597047194054386390105343328979245743085889157199894873198232288940987628063171683405833508955498696680719242591296961755788244785821071929799877414054522960077597090809772082051646524544267495235785513368482958485277037301913291703122311053596806469432031009041708358957239214165819083712144622575091884754192540810234094063386914824865264061546215927463728063901355629309453537308977335367372118260539432164416456943514032355206167900254126159313232376209326109415325596036674812055513562281377259012819138589006370889531460978058565205003245925680865754791308108488243274227184204026809205332877949027436505645054658506926919857941801626885514402005376068760532672679833721893162952776348305435854305482079523003238739850618334991046336809407841661700469756597922216164157593021004991646817330313086186262274250202713572368860456255645803638984854022143666083278686958875149280825298037644515724596093812670714003115666602279019965249866735045445162765496320752930012536402808500393317282209120221209351984323391800548102611240240103904703918545523324629859789733309353185505786812359851892094912200168503252749787799389277698979573606030302428844141517529439720152630332987626817119071622465384316861133267673677737555988697044477524037612860993641047622174342656025542849660574985928747849402727105163984566857792498387147161814006330893229674483454401858810019498849587662614154091055604513952374006386502233404833904909571828972555760489896358153172553781048558441476318507448923644510359523274380432554561080665799969677156321125830922523589597930248431347027538606454115820324923895945801379077702613577455971444860690268233797702326451162350947833762255526111217729969792228492513568025661342877607881948657555978136199978557436882579417298751082768740635025563861451788106899005486087762505482971777836848699844766035167570652036291588189699839642021547402718412971915712203592110276411095712428472081781135025131163509918069406414512291763436320731731385855249129716163718746289950774696301794506146985056141339112067112219193925722099139638218557187994989734499332388164435584465166238459787576668175267483342958073903822847846648591487320511000089231180392469608906316005105207945421117249019190454380551797195444717359255665062294876429764577772175901784650121766278502833689363751041140247114631375410799617722572315204077085983562967296172421758285226896651650885892338437998495138875298675726855365537384959277692019636998880557095883232943313353425502951420729329534684950292419758795302254666344656033440191733665251270357112527165823001289963023582060203162361375758156425460110653008387951929861854127018447428812954698374961126310308553993382768905435418397684862549814798756991651966391554953892744758967003582970116469748735881815823171339955277152042712522006011506686284527613335713310697334483630279321786470925445101171067014248671774193821308751649588722881382604311722856500620084118658447383818621413429436434451610983054534323745461193252376120860127794836195957282237348474768942683612228369874609691111633091757251989429242155668459686122893459873519114445685235512278086621737402648219853522568298206830790355099745036673974060347360522604289835255304157028058757428099025203684644292868370789463582898152267142496293664033456277305177566542769630409440127953351384934404769799895833537638467379886814565459405604044219364542134356383986706004280721760264066633725654215866988560846124092941636012607848312415115664173316530789822605475767314392282152132382175928604875311799128191441933148774425488075581318559344239569110305211434861894570711432117799522647057525758079502501731441199194643771273713122317561576278426374966024855779596633479995107021952394523812459664829547060919639428823080995725119829573261820542498900588778067902613351505945885786336040796345081421913698969772051153335056182969437471271293617507680259565728069412494199999165136805062751390912019523518740167780727973573326754284366798530501245683421815382110836676462227279640607840387927388974609277631099311755011446415611951811332213652741957112090260821809519204154893986643583608669223515454667248083891345447792163482810554654138010943004863426282174554101876577191144532463110513973836270888155193459272863464678282374035416731012992262401330192112715815706490763136170954528564630108074849730274359604026875629450968253728919128938267007102762204806319161736056040954650922900956244216452546470982661102678768065246725500543660337266185041261838926790348309994110253482869375581355897307293385408950689037845587454381610971140693480082475032040429950312136614875901049195099414321680809987417602282805459808086317406348758669098483988757134991380732990847493064948613713224026660213821472205688978164077052405199251105070564836027032013358951936981047054577431310279674807879453984238603089684583308427260939347811443408165286004296893636110085607054598392898413342316852393306911289645012960126367285470356956496035862169470043532889110692549450042401750087987104226878837771711590564641036144696501874105235918001653708607052830413658276181337547177433597474668297777882963824072475732982596302051245379608932708707741573995695102313856539683838936668297985200752219119403268639291201163261600699187225938955766896430802366683472325942354632864034407076323669476378683646305856818626199686214507658627649875778876758745997911865646284930639456961586903917024031364633784520472994513602008746230358071299772959279498519828636001857965721812117246129421066694927618083396119819789733408313410960549746001561660606299471236795356894731512266182119006961305528450590468265735100395636746255547442657477975200123383551027134232079004181536528311849464258753982339745005362964955723512848955188301940439079153870298140622393074387032160029000991679997342341121730961458311189854514326220831120330533706696250452786047898383230151657594708834412833875456950112382179421509097365390927307302600042622626221645759463358375481108718244882338230838822226802249265855560544970315607463558297900530998870719382169674276900441466862446784530817669840222260333474806451300425203155452980593403477387512339197829433221063538500451160361895568821803168127582718673225993691349840385709777164039500385798275437399022779327391237007265107586904610969150265986506279821084864523958885167378659354160171915895754086249138923631917074290276072964627375502653727952483590143475255801844265505262749642845080677929005521789110306088723024278238104691878811862888206609017542923560399787134589029355328537112939520347785171204151630197731389377086226539164043219068594842231371592887929711037394420073645764538977309149757156790516686226922082071019503591634230844711627033690677377525821796003374640373296188974974932200449832628502932978570942954949613855845044924011298578763965567509264539755025571195869416594315971284828163550614981772435116136789603417792199127893166286470649182010590340912605682918688184852710680479662450028647688279938563617917912380269629978884398486405862190680142136546155985292295158682781719515493279214798509617030865246840376752695963432323815483632023297709826725011418408409940796565926969412967746157567710842721045524856082344121554885302610233792476115797518556308292081497861439803236904595968957650857930532343255311549532427615241297311709964073259353505268597652972253801914476059479908410648744137238244483102999669878289895475861263068526902964700963324159179062635457321205391618081464365617903378869088558886086815442848886683332591304584263570301240996744927771563172335900840998663575523138557692229476041940937621439200623270876116247893157095672422210058030455278048680641599953006342378002056603865110177747654143968329106837907649722979704376495897527284397468416458000824854822548619368429428186651506743174646700560948979411424138597284895370526490687914145578760053557517037167355149049192069158127726144605686572416570913263181980992765892719251688118545334013942672434270155246455421934586164318836894581904301937946266027840362092890129549015951225679347403299485072997972961441937052619285215675109612667677307561448369082624562745993942574785705109678482233620585136784757482442125877242570790200381317370498134867670435049416884589321428583618590337031861877140080822819981884317660561417453950107147068356564963429082270770895349647622917613977972557308491992347813423790962789266462622987809174841195826558606235179690063331157863399417887431565460661906482955067210892293344942736643665849713293253668129091760544031949009070515073361980922333634883949682883437351474299688387059053284292024682746161401758027008594465865646986862870861719713873169177479243022438998798609118567291624437805810978423929169694629613772693549929187943723652040039344233437873358775594024947655658384524763953397284148070334905624623873325628363339864535507270275030885181052485820395589947236999194378453629704573629307913534279846617594713931278208827480075399030935029424640596229809877719199524695953268802705201328258228683832965831815487831198654211063206693642061240253931553503692038742529570318923507150524937864598395230436978926692981692781066479802065641949119524022656470110903522253925638533105107596593691307455004189404067525645243893945989707376464390533257083648058885159814400733834869457212179318587482142602160140772702414401392968542432964207216047202706041819458530112926240590899585268617690092643793485249485022851158993474511529950651797004762575205339714756356651304616454841941934270396907114143043393220766672814236723191502945367398569679701751405030288101604609759829738921819453388972374137250926595072292224364234538304464096994291261270847754512681358438610362755723169547776847933701956689696106649220657497591164563913504469006808636037800061212426375224485534760411638098914749518551138248405793602601231379150451195044113159563696838090824284932494375558347791445102668493576218303842722505953796165237205796888730030565921821013143969925633426371885139090948649063755331100884500835144425354205389364007148416021019040257823996680693787351947114906291118656080014257722888042654242161941160252494447150834646213817896371053287542275751149157230134177618106936242864718462477848592067371530919145058437749920877021893196995535356724131081717893988804784379491626027864980414611517714406109296645061190565104408195031752102221158105700864320797427221677765805640465879434497930332192555278380733609702712771135457545521558046999320520626516936697660627177654795275296058782121002307033232476663194098543758039968010855561833520833029299949282869888936779305729692063665976756100325351237436730039774955385302042022571300029801899519647856441304453684766522206795025573204664955910901983966565120849344739337572649107772844105124757159493325385454404805744786973563216956619034312753503921646892404960219838301955211286007817948449917869088710243883014905197932858511495530293623467057453978225235183186480422981777894758313711043541850738994421977130832277089346575644142753194398854402704617304634312874182920313220871886868964826579936953472945253131239217908397205523265229850404032755288367291941784958922443354679312511086066049873499128023509386649402849189586292934453412564425033301715531914537786834839692973956042188560085047605540609215244506384195446825904064239252986368274600569933423135687590362442943927409383561229436870111702785866483225871749935782277463306793606154751840185109783246783169226593339547736996474183032872260791262866618045524365659609451422681577086866710257686645223061570489334446861845764603074262110355796858308650710840724140724391737860479899549314605391044593867233534377962911299246948880873809000901540875693486470198532155764184125010584053404925599864688099630583697807729224846041142825083907061023819996063885519429061461434323454698708667271899225571022041496993175546675722942318195997589230863107164201752706610701491363557592388264212062994203808012445838519336063614963603168183344382803631689835485911248224841357492609191417904138887082850479169154346698782064418635040296123483240529757116423059927583040583886236830657674432409703967087222631137515330002996304411071201045024826385161486629372863580578030019310506238875520993212890760798790174657800058524289777237355716333487983382672250134817778221960082449437022157590968217775168117389525279219188171297183606652663948267163648941077919745969604966040963506998395893925590745075242052913116444830565166461333405814686775779814475468540945215144847569415446070123658932583711395470875598125674452298251917879441593149915230887148284374397953338682100812241479459889519099649784059229195901053250966153093181529624945292976207931668347143296051966369387401702523743736360170853067247140376696455722986580600690400952051592874468939903851079743279610996015845623959062090094283208354902406884817203959884195118572712596264010008630676022965742059952694699814186693291613586449604521295409894790211784199618678592705169876200824273682625730901386830592079461757859314924131048248685015401258693451573323148159740520701755602859808398419155739175032234293611617581853746628414801221815487104406097633947445385920554734255561760806331703702148970110709914591203265658437364826676729589602031132457046816337707822773704963703954241262374895316551055009571285101474957499640973945686157122734768387347718237078333709047112125473548224963765814873910779395209271651116389643982371654385723892763083964838598963548435988155576353851280808927267849133357291083313791183921883991486686057924936998441094527888809561707301356886950058575493362417824487153753612213983928682399580117417076000396701315256241682327772328462334528242487878706733459701383984983854969252805604663666423531946810078874262861770800266897697897546164093298238098818395204951382321262109132505204778541566340287543996049195512051120336525316625786890112735557645401079844613514668069940434176480251500348013786878707168590000463124004210699628123020319959306918361627332524233559912452484649262244844976813941953948958581388627927356361317291663850125947108264319109252443315798207650803746934482740915714332974935127709919666210060578399553372016193563560758618185020305431268399184597719510500903124419551859494933793454789647986164220060236059597754749596182708955386232730318188458791086448702222557567800728600294315548055236885714952264153842978873903415979909567635062018897924661761682179769370218317030278175033238005841592886574418546452491773857161164450694515372860740429771142258031739654523680935441819119898132406880225929100801606088313816356103076842269080565315657229990883315166989547476703640485944100487388655152238153409276216180921095610558695125802832716881742586682340130305603264545853863676793187179311436506839238128958951729006822657723481488471275355439010976364029950914682753846431264779298422575924755632946600179846635234531668537827280986199903312349454851958694677781959054407026653286793448941091286935461753559368392892545592115355546531250907389572833465543507927963509991695123958755361183736474184720496189187742606288509190375070078057813453371522666080242104047117473507718743992228250101077659599875851727553725921818004612270264486110992390071352698864557708115139957190991324518896140087181708499741613355780357701807325441633527488507829350855177564105935743892010849800661917679067509129455846845039167544614695764321942997468598496055045070485676345072530375350426656589959378377540992682003643278822130571704788044121219081629816067697822093371341701470994021462773414730901278201009859354026658617978767576056993704127067818568008913121309446279675078176486280030055706290300666340242977908575185687991111009545335076654281814557290399266533630485688444935133858984006639172937305108237911175505158554157735088756058892848889325744832075555420986863606183133473952611433286263201929833019940332304447111107232942201835412045297878518952245937424616054551223713828804658613376176833057265623128128133248338431626215424772782779578156195292443161834236958752838873452074559399484386853707897187066028093003187659540832557131011871597082074542246645578336822520748925770675649306268282650356524118453741558425632767957936984816527650016630790919893269041424704798707921700974361790016338551417535335529205576047820113338648175686120907437707560559033452479438763317563116448601255734948992234821000009322197857284659821326354447280314168960220497112160081949287239491187265195488806209182548073870902928458738521141914168640983312191959525148367088379634402206219804293963089813705832170844569984318780145925274727004757466375125217079372197640426176317217892033301164521051497912663511741336788599747906002974535194309782832374884964409352754512127837956466095830836919961328629082203318658658322384428408136852070060001203987347579820965334706335287395036548844530970810043941176146245050177932193858076706712155669137606373439066995496379935514594760729434419707430481022946386200129199499358859113547625911470120872146686556645325763481516763841540383056981240181283634960589472242448609342324263487627945859027073040397773842940569433089092755014961350411724721964138333992685363293884990061442978402838126872674621815060401686177600036846770549474751349822273722728596587581748427325949127360872879980175825977814300083936888764219242755567303585192095506582504878975018082913102317307426363329852893954099224081578517461556551530922610598790979249239283587605319532258034286451383771430996412153317094503198114527114881105896599980687499757165180114091387918472124491944371123373556142582562873530721186028899629243307519593867835073858230053492933342898356251056664072514930274172410514427184680569761261566760114666032244418229325760834044342865333976683682182435341773601525756054375416764586890899505625191022995658499156207405278457644749072340323532392900093236792324082038243571547086720904856382633777891747150256711070289090112283407945386856920025287716847130149869577633516703962853577621427902051288520158785781038930441741048143554026317810185101560473270849509772225711149763669085742473487297393183754222187824881683584449190352401323167183619090933006104749076848371758526241198333105933049919030687938449207166137385801995023465196903543170534092100605191503722848102976519168084675936979958605435923963300469967368873643799135500838866332241732614950664867522124256132691647044778602657577307887392283981791491790296210891574094048484233987194401876825887188638559126813978709886058061112862392707025231360997439819026460298063142360124875255321753140439557882845124743159045644063449241560176465883468622642650429042636372451676836828799922581742690857655871826801961654083377368942335322568734034331481666881456881769565362013699154887630135527572746956897127707442620315753779470004075539969250381766768938822382051489287697110127513214884445128314130759528389054408921062614524932326758816057649624420808180075836728924247560715382375595550126314401463133072479137835755547963888009152006571489282415687398400126082354720000319320772179862994934217433859764493963610161878828465684983672989579260971606394296629148375665812828467032856270212330132179170526962196632299467837228762619882008524100734283464442620226205721386468203878166804080569895982383976695505158525267093135320316616383883665479195032982214542180112914267701134348919588862242215255723473442343736792181875830238061034895767544347631975169419759157604505623567343028044377200720496877006136153054130597657144345203966343592678443272161446267714906215274095750057101899402882119519674974561267013781615837778725808275961233220756543134223363265881097029468979169415509052405862996425707237121210841147867354390410449539003297904223813628667664352122048814310081478669285192517327390146077569440901454893739892737353980592146562059458900809241998538927441273307290474846178135203658691996287958350379347458560925508008070578035795394380990002113663358645014018628296949881488888883692399060053857934462629697114927646324008593816239969555641542121555203745853910038400748318823526271361264905868263704250387125108362601645714723667546041077895186249080271456985465742575161771955714728270635294068577262626258015750244187182063656976965054791967748869053257650422135418370696057918462855522237760616886044825274085059419637804045571097194774159008741834558659311711747070345671861618660886275822433740972570533674147567955554426858497644297812276990280462932350999620917571692883917896034930350559843104760499917218237704662426379207263396609069041266004246932471814583200703727555844365349097212980387824659105230842394611527651988533832311976617520391660540057477628918803453933655536283589613968333646474785042640029784044004569009611591674090261319583501993257818157726174086871060289494026426556815765727282581159843819790888590172499262572760083535869315261752688302801400381225545722725712043370877688124739641151974826479495539457700438944299552128569939379482641461783120972234088642575123032251381402274776460951550911056729816032057821808499933737656824308849428465920463113741419798817734508606177608132343284125712269851451028097312460595673019859115816034417009623247608431491873265544125972339417771688769483413877988775499453422716367362862164045334058977528809386136834668744208874716032260936536357896442091064500486419642675215756871814286391585365410384070014591836505833603464568668247117461872289628327017601246489642427867179614300106929260585605343941478930055209484344404754460557857030535645777068130883771124765858898442574122274975398903116472749601888464523134006430769544203687739729961091339440919653851749630906949731620577758336341051392460076790096573106860993184754261728468140037915107521200071462821345899218988701705079985344923971745899570523103464931036937478037837857440637993442022170297413899594046121368857289770862236347005178367202817556505735384421900696006833007692137741275405134008738136139513624232604457825593181595896703936583966251934093721433391048444343477991880982928629670973135344166189471527622930622996919603255807150608001009631968237894464695770954308838010322034396294988346212542351854820133727476096349547291088702373253920549372454946373374674833404190852557543782651270639027542072478729872096531433052784615054032749238731015375098651872042636704555385263645997870440111752669399722614602853649290071105990580170424821935673339069705710023366229888082636115962956872435692057668199284603851238266765590080989497932723268108560746058760921542402115440756373643600051683631178993394983680656645617434798607026871492824399792728161565617144530299051820812131538324023166667649682911531989859264044534842236713838799916086023925185011102453770583842161715772233121977452534147014953330483491766066524080304132849469217100316860529408185633179154768500009202985480729957081189737856749595906145298924459284639665153184553023813593962124118708335357028513182031925924192378320890937214663165762780299090789152717245592179014742452829889594508281907391511756435939700509354065490959752302857087334201648042400151306260157464017652466571297786156309490335542303067713757428453776794261413503735089671031046304778946194494716225586857692817523796744345172218703598553502620133692532110526065369386964735137787709123759463296290550245853041258082771600438216554605579830823355774043402946334392343764963112428225535550942240082565419686593761850277639500928308316017017343353643705464733115151431004571031921732320481783655263549933253682944252164140203186300912756030016291804045078534030209836471739362036640263483477653420464336169415084053098803088681351210726313831760805809750424686695611906917035579605481446055925026028660359686239515631750543137492564747433363152990554159497402706562939999369087039382677184842842853190620521117343756702664811940724184877551379471944739148448958009499541512477792023580674475995507347647908418976894835589877964107271517008183201278371492916630215978309121018585352762927703322907859194982223121377093323765717911617317496760219339747046600130657499368600782174963042290310586526816766798217396059870676821249379442373559520624477064268926172033722137568311650923595330807024977663782940262273597638354759690988486130918490664395588876744979536494652677769194271824647018355286059667552426064085538999961516112246163885195029718710034150257691216046900594870634163431229477055655021337863970497101881727777756312550597923030737560955803974786485028071683999356338066671221204626980141881647420638606474176818207178907294465186392174899636978928419779434787332882770291703309244980882372997842004829313059119661951208337237380569533262653332787636814502665328987802882168816730997542153874877452018334291057716520394045895521776563740507237143522602573433287098684017289647997127711366377958257330426554414197392866198036735392090140813448206922803516026226444465986863327407846041817332914618192421967448565148653677800881588896789701442636548164589901010143684759525960498387410254374802068085133584161734783286458180349368201794681701625897151016847596585761380042998195234070680293564921056759300873788952116464366585818759371211331101530488159500991779395224433423566464204890201029295858601663337954264543741039789650688281830113263369295607349865463565091197672978310840987886863027537983471610035809002585292099155081415790307866487188731721445466903679343258998569490309884881939378319841599945704116792468317534485283776159283026182661210675526516217623831839555355812943376052321281600565245100140668442551659232846816648298278390333872473377610652122711809990352645507578487554599503133822649094642563746400979025117509626519100573973225971119988543006132115595472839845278847723530392297892127517405339880149281167980487542850651085673709682437134623056160338773161178250382131340544546472912366683887931733258772632767780691736475024849755620177706595982624620655203986549311324017912163432445198215187871979510621151344766507467368630035106867474037972891362255611437111562712459185460929329804446462448350351191705535099016687328806955258751576127186183709211034414913772842859482303857151603655954473105703589708872596702900754310961210181773432002075353150984556211907683830062291394905712533446276776900998775576128920572103776277233289978474682814735729271642883099665487703746176049467199385735452223619868809434038211084143222997108700541954231851807626281662310929832934398029012993523750148150577735103732327835186698181496582369474072541828717413461077978521334460630956990378398353531277623142446671680604157090964020053424337634888860186557864911895418680697224208738111007031331290263614501571947663098174200528406554076228566653577925995059591225265287953950244441861295708514159161100292673054509219507354406163056389824229534493872633889944579520262635458471759786865984411255216533606992449422470530964763847381427149137741412291663335175786688110449444561596555744930066552015800869948937741761988989778788820520222051185318022765748526144024953889680924489358291233830611860071160134523400173443530292861563450392174834344600800763947176059295246709800384136512184128788168063009231949524593017075782814992706210580775744330992350891346676050433152814661918723971412937453485946215056173198357173722003055142334321698284042993880556354900930615640431436677826898265547907014232131109298942012801802817503347052747203734105922042602496245555306167735499424567877810663465074093513482087428647102213356738822463326767014244537894306832244734074629726901724684316161478100459075700978864605333290166209224465399613348082334792167427828724863541753297419816689439159029638973578276705177590617845311709767282631360328301521730312935688343772226245889076832722988597891084977372239474548292096237722547154537586143283066574292326955173952928804652316990307846420005178276998669126560392162116184079190033027725140650226717088167884794778383933480961857089481117217817739953022724709037398614885961713650169089916580267469623344464646649319056352503391588211411433947183632055603689653324896164461561928878721669600923825369873573337474345994963396837639069201602075385665778751176647905640355865436465557063357628150603541853448181925460518812873943000123300719968625429542988720268976802826389341972749072370570909723701232643924727225430213524947899442659796444123134045711704728431758830267092182693363690813886408825139211450966846191030973891064882437464168012466374542902440909194815766349861898310609681869202234817509551582277155761379765218089904369345831382960314075917758387056901058549693948766661389916044367961275177188830023474431603391729994365106069248522304426912493683950352260241772614285507444991544909512077779363634570616250718318823993843938730553077628709098848555948269798257347834365147055403449561391515566164608715626746193127390540017604927247114934599824317924859534450643689368389605551911852226061426995259761917131055446851902890882888877045048453017000043383060944218565069232561246528155572320010078867635795565191946895641266733607530021176231188101805580702714837210263613708979274593277072486682547491739252052850742703033213553253214987384447884081837397650514052151942792027630998337460854909956221701713192290416449430058201401764058240889912107590035856904802191093517472159919456458439611625787439098891568103863517647816697647459529005616307375315787506041527854593649525156601231985599905016839761900295625976453047895948752973306600714723952204734973627530735288003604926955476988359763605780860654848436766283425807107330016900577676818871334920740341325391356784026404719188077778984650414879589587007793981438907863402355173984898033587050650915494551968980619550657700918074055431216525210145617692364110465677578188265222769810918161241375411863546083483906027225853343161570648878326262341905390786114294359096158950951669096634504003167220773530659033089807172218379725364547845654707668341101328069631171584072957401265256753455860085742339636540648249990906615426970030760047058153393654147477151330817228071748936959448533013304395023629280264403108433261952636193101357819090524428963976774144756713088940902569706771119650195859574422683573105215076988183538095094546298219739676162710347243276214275885360858967255918933645230730543624898822207359275133037462032893922442361495553153463210025064693997768845952008921751563934358277296923602349997422960065510340990087752000575019403737802405405416369626730691829711582318214142383549983867086310976208687402693087492137885350395412629496778092233049172496427558820192785897666338923368301252035625029816765262827368158905578920629909813358420527673985097615590597311922363051576161202119855959441004412778557135761988643186678499414530269064206852954840027967609544878806779838077957696396706038127663558281374846468886298519389637869150393313235386494483834075835463618837005723926536995254302220124611239818778286579485461408272151216055131642011649465042245315012586956558382988290816327541337960301794884107611865606355765903591434260783306994125996281857949778143355557850232794123887858637010828400314354624317173618117924697927040033752135863451879181606095220876309020363825516266488132881020606455675577846100334383945418696227789743634508888603794575874488357966368448344600243778431910467114012378509349836060162479404128310179913182276489360753262379129118167439772646513005802748687963558133826546915521709332713654471143570051097506741530518833804902771676538285919196951333919352628098092147731643561315648073309677090951054894698225257294300944535904867661527879027463068561531618970362942138405564861359958734700524096059101264995462751486994574839981680265716715402406794309037066736411925188311147484024447503176123837487056432681419974605272296061842267871288620547765292366694127525896552365364842325150591323283000691614052977539018565812734402709836822339410834872917894078507902486968482820382988688507103651396962927880685630576867738168813648969610114329862651341993330867521000102055387244975744820511281107591937189803112092516004722742834536733516844569622310893727840393183880215557068892113667140512252003059394072452015767765495067422210135379222879854738764637140488620264612751148118969062898367573359112537092047722201643317847404201945774115768000277720314826582122989975014137237076514619649075495450562061383914530713778030100168279991708970702279955904790300147962042249714893529703524375696835110622144586188127854587232960192773267737316872826019660568726404584841972779785400299290750300412587516379515753191100228780493355901993368116967078239948752046991153232107631145934373730197239787376060365660461996670509094245626562307715491463445205360534720205824816069861616245857478682223488207872367007434829013266404925121582156628603065671364784498040725098715268351615493512337528606123643775197668426262603654839485692238444828084935121231999668608921451510603702012401032982236306137935695739234683158829547163820631892955019303104359727338460709599859843016424391455557846778226149926965827785328420931132768194252523780106314784092380026057457978935846203597460592315988649124549644873651386424861283490977765492789597644544173231292009958446908518167736336933185665705695125915977602058195501162094574030511835774983857159760125002195700096125414246690817259461518314996613861220290844322583142255219763441866509606587013830257381622867571824278022803403249801370857759028371856656822331773760840459736145863953988217552199993435689813778534440328995945630199940230922339811233047472103466290062842330657908009600798548021602092138593190500892144601636073740854733821235984552163797697106314607094747921841607322319746766387772346109579950015183931577005172927763364435791433863372183568100234969737500803134771849951094001273010556150489707814236461775279465141319732139821101626231022974389473735060825937820098695005614208877821724238927993132476095916255570613290087051538316123560498891329377013253802377995054329591972707172388246518589525391749134354160826994020534724117724424920109067342554691106010563909151152735016601509831122690870274595019339822060371241604401237439005430983287966733201768158122028503565163055220503495414562308769163118281137263761621327484959948355851625398491591849550652635986134361463884569492956463563726225346841715241118042297499398967163363566390543667045124125124126960249838621718389829013179323070885514355546130223725742357230353476921711938112357808266729148356981800685275801903355202087305714017556331323037988836111515439739952836595293050857954406467118230861636557073226038884321220534258536445740718844280401371836998981249538269928287010975626985118203672202784441973177872371893909046827439005550373591607828724390988288296284951318088090039946678921130541908490620884522808418310106252629857928219653037811294447936246238359643200353153541047810515931761643639587627107523054274115888582163491657603865416058024518212446231493553954639394697334618748999530644886291703373628516156446497031182243325221135162373145219861939298131493203412659081661180682652215837222305119868272535590713732225776688485378367049407331966049889348768821008472747329904703996217131295371733818184836207739018470640224464854945570768977003097596675782152031948697070732672525211529381923045842453936150972949292051116946623677053249056072617326711956517206326086571324320007236611501151331494677877312443873228756520577681313038531137403446708503678406409994124532295711022417353643224628226856455005175702731110555227353850560165229699613546113636095316373173040326229408930162964912510907022652805536096714261013237398446776590242055425455789688656300309823720234069030140056713481532520633858774700514081719158802726835475183457662822425934366623142004304975239219152719783118218112826194163064099302789035715234185284678537398151960455352717573613786681009599407408760524887481900715198889743942586317772837137970730129810692673186641691176916659734919667826695146454229346466509561508707291930061657836864045335116038800520056296525286291162979080265496357740903603475740823263429573489582780230910728030964888818178144559243638476919751983355702621958187714170448880553140790798515653728812903461077339519627863290880400407108276976956097443188956598560239834114334962141209788494080200197161987822868805699025199584317770172355206464921931343315227410865164843254845959075422795494145323396623194032475776838729559697908462411605122626342030415413929889949536666756713786757557350109041633351629437496368237060950763677067907116295317415656770099626494924303106357399483301516240591131161703570469701758552485194148639163473356650147642024657282717253885022470926726366091471169353953821723243652618496034893726470977220700472761521458053693491783014704434849955258247991637445154558703585184059864642036863536954052547527147063231998187242040083905173997290720835154112251427461244855177867635656139328541977122786495905958380957456239112065840271839042056330419241636270298919725724505506988587144602760106388882771314065205774950239549971719894638994559882183598063848651169860305549051749662524181489867296579476140024411215307291295541983670588701811291955998558900049152852187491670779577625064073263910938597175171573456077965750228357764982847074438026621899001661597992942265634085839356359774104280994908844794414703666494351708554204401385808841549573880944245859696367931872642795115304399527445386751085256719226814470032191584976493318870850601735103539531719568411275159740143311189543355207597250530752346040056695113107163367942447872768255801173229082163557466784802230503412115835343342766765265031442245498672416990856331412308819020401383321985394027758350201032756973686269707263445069615591300535118473847053297554254850638253427057190255912462708154210016565221585086815517800374995863381383827381555967648477344346802866128208469004326810124074384118455763025593624584642900926888349625174331479767928914743185578226895835324418102966593983951661704055227206804475898598911357856215746990994572557810866583666076061180643085871619665166372459453741784488612939678937302519391658902468548663608739919585802609169771604538579610577052215650782446297527146291222467691769292828081993329557738574754026445409883692441924275220977114771642967882248898190766189138597079112523248500245594786930820254050318062101889830837403876738178500451943850445126885908419084555851017306312177477285077405986094979125562030620725082254500082258058200570723992646168309347293408651554076121607045405069664457806019433705093336263283488674539683249438841013548783538181827289219666912560636856678978474855713106970918712343402738206917749716674911846893330644411055594991791279489514677088320616744701784052952863543101611713151213093038432245870496321154328975550097203693667734133000919465434037318781709159313139680866813908480901629833558139433039237234278936849350568894443575112529640809588889524895978528033701658420520408933280078350362571662692915484837792486613012831616781361588065171090429771303221638454248390341287962527348175253349999858012194137113379216396575169511864849758306842996391995258984151443035037509852636014237601059467430617620381355434273838316650071497145043890554634627442851955962378396694321659379371194133090884503678913063780230200133443718880798864039653417738222107094564643270118840763300266960156924355736435386544870760649917298878591566852182054693802131860718483098990530208376188356616840315596262616362209186587541300651183239327555957936072725350519547885235202239153943215170649580927544924135150359513737441824040902612436408308368905130691376619418522583808532941814329544828759011466445895885072433133623357858054359378306709092992008715893846717660597845313833413447726049845261308933387907406809892031884018599090477521612184194944210957622527178583101781363161521729769988127074963926716837218081743523583033256537120471403909392667239620602723315317552882164712829544818924041128538346726650440614976157443116404097957911560811015722192738836156225634853059419256605961198934980228200702234850614644012211126775797451764794053179286504027806444303641767578764304566898294392880546419838417641972016493973386037242581069187953859066272734993411446358869887883088371356575942400471188731580395809967396671795023289600501495517147092246936012759794504309393275771864778105327747290433658183220460904513824475621713500030211011762231383330120028472374565270601828538546999440138394045080007492219126146726808536574533976810753270056752747678267222162036168307375544902977125108033466844250163256967262075830864180278637716897820008377569176835209551326027363740458002559181925412803035072185210719371739806871760272941274877097518840872414999235805801865545790193253575125757468903530119313965985568784728982607763962831781768507011590137626457532014757567690541110181097061101406594197062889195574451924827136399855771758117983486800546489592077686910443564591947533654364392095922614742358848829800413077697001838551327081116638498204848638366135393530914599651729265609333735001594560484697100830033714939353961961644076717166343518066650587800225712724642385907537486621284349691059394290741600847567581047808590827307270112636086532484809808954766909330510721579034823727391805128971988724465146654413840982490004968738984152116360609805738045086749584055281948282734615801809420342315726350187616097322369503425849860208133803242932239327238448489606045022426860563441701220573417433583628294491610879752193654872925075373071541730204580016314396360589595381166033713769000491804947211258212494041085947629904811249866331809933332206964247148910547821560821262850775680551085065440382281731208745104990676551246356714224561569666636473228914477653367701169582081253710417089784250282852703579769781206959651691302782038945038622864917595892225176396286237543114142171908688863316787928997931251340816991614088483344157905087651365175101044343205378617457357142285205745325832567019994822933904730306036930384104194021006375741660208588793836915449785081959770320452930879356868967449515377758842962929504591567049571128250607262004367841806035055324827511711508383956610976864265127229693383172821285441307842090940640105277707500798418085191949602654334940483356584822198208310126712526654338840599752403738803446874706111253271475495467692210265962843999193670118975731259342055467284588905409792302016275212897882717131427858834348418249509957016610611735643986916243244689925868179739569456570467827112593029109412977845900460109170902510416401842406404502204764155334529917001861638781183039603709506981732480230694055215788691738231446305018916087201773165461843981290739546051726686539787664072091465807654911588610283775945520869391227921456220602974388212994763291399777719044708878382251623095232213905069614932271721793134199268189727948163156408465828131834612496110065481945501236643076104661818248190565732803198736942711769115946030120105948925441570332597366437475819736585732759820322741673839920750091334549596891127533012057824839986961473915223218124287152320723946715459118940380875206857463581652280475543000454622022167379683762046774922988203306909478505349072581661080832539103291376843335214320690994593520351697947764533933116459821095023755533762954493569357337875157027959784738999916416089654869535810565802007342044348544384512676680545729866185395697168354577055260950870837662396807425235249010968661335122469459370384682958818902978903068889360181968674547305431789627970715747173788397587961021526403545762655609699033634711406510751369106642763886933684887702146071455573758913664901489240384880863453604559010885502930317776329376734702510361933142264012448872257020692723658626904145442765994713027604714958114889433310040384971846085170913161793297056748035738126027943394610757196894512174130657761076741300444266112566474561132190069221196538162053449982314038276582067545579303785229837747158405469736668345666716677627545844354242296465914930835595416639568002503943579329897085028546928475661044533033715850246410120453845484069095510604921380078149386326363258035041657634296917182007202857258253144309955014512665174086161120697864193005250380295060461959197496881690690148105787931653068878182143066694702589391723140086087351181710281798710548463671012843230302613003501783653334169650712063043034146732817446933971426829003852232714369719711132495218626908144901933351976064232928253648469995260216195766334259101839022295859628453012453215597177921082347723383516897841254289467643261846280368904067248467724660241344783114683793386530101425764580207614961114677453420657307674184266440559230297206165161901137593902741035335199873944313339844266245670241773744660637502773184129977074419881153610038890352942599037962400397477479520127883064462630568867866132391804642957012959247814498222002088380899141994714978845419671132486367885157024273053372708005428492802814162514149995104339662075937808477069365636281505701042358462507434569832129882039084373630878534357063013784335177249849837448758521091220495459968164906294408711108304211347651983813531037620048036861384435241206769337321833761397977775423542172426860587418531082122478049492154299243837187734342346607737611323721901421504380108037689755752372426687104266708696549046344073364988811736143527780976550204066476456061468584631352540066986509858072698550158098108650083271787364880300705727039167971338385122126582051428805982829189161441338795337598213320151412091392664659158732777024785484706628361267538771513828299614380291805324320955769404050162983397324809236792681305932369547603204596033672195357843185625734341830744849790448384330303937137392302237529714022143409391936263180735227052171419455055419770104636479463195362781765759110512132892866629659704143348795477932513934771570364434137831486699762767451867031974975177785942154090938076832688453445458237414461027686134958226455215383176878707809641506742496175358437966315376552517438949736251632780110831376199244684501031551228508888205683623267662991834669512992659639424282041688551020548512685162893606835262432744146140070959259217940919594485830237743921749606958816154654726190599349916875742279239732996939760761136536312016184966292891792784670077609817613803487887998984075622000329881312431610057124695218430742826277555982065012600731004821688688783137346590022022712675608410777760321382557053874473139531127917999058162985061471686046000311634465700590036477035293177593803990928268523522137115250617054047940807235852147349464044059895538138838368625394947872932253821200996031360613480756986544039262662804897354106516726390198831799611555903161278989098804407559323703564169482429290598191465253104624500805994987440760709329817188661297580662442673840371611220887905179593171294476501268564410368457157564037249210652375887986938413142968417311542493457602347511020708732288453464289436003192754814921053790161681955156729897184780645569083060838662060879499257391710033609644854938013100861757554273175648242718664845389717331275230321157531699892976631819172430962243660388051983095758020844033763736223642259142792381960931774518916580684549540594333080534575702484875794423158837899386389377478341858832020443785847053186170709039633873129264604280794523136209475894918652869738825558778113870121877940144441787393540708229757725861226413208234504845038589180811076973637508148236650494820689576408046907965678722239661735376866678347417485417614973356476771352620146687274428802404477485701940957571257053667177140934209099187825347163916952960574498540283820056955535087158929225438560644250789932834378154156811034210025330543160489294249004437516296861302266063261758234877087155961222768092639807581416395047030151788117711646863213295714503806592543506506174014313734650909782303970220315655835906479058857887506572213369053113906388017780338449801644767688668075329911270072573244188187154314594965998446278110546016214002567868374089667755450215949999824225820611283994260562714187123999569820232000903373049740904060973189830563548331364301222590795567199337523345107672941516624765141992104943273039684983674911694484168653849683794478243215918025018860919676798831881314449470968481185681300544144303169888404002563927679216864267100019102499256391650435834595539936005410608200594261826614827549952827789858404957502257806203914570325735944253035400951941739015933906043411513454281994487989698561340963926479897767592258904505188977995547924272708833459020616308143039300702382518418353555473164211649334325935054461777814714068247315107838269675684692666332577776103511913388312741257302746756627854938011858132113037047470473051947482083249557500721823959894821624918305152357755131180639277770268778911845587669880480108734120683374946131824352071731367817786494920546898128730299333310670261260760350747714396153617361885656182779792164069334700041329825419946930327156437053607302023110956225046158636535476649862579806094381685484380330243181583547378609098438086312406406639466108582843226020701547705910975388118690816742324012285034450026521519903694706383881229162470120094538617352001281561056987381805605983271082070981579279976918379454801109137030134619273468713466153790416340359320834550358349126748632968486670130131217168317645234462035329148548661155156307467011807031475646096509486165840812473188456069110412635478893506279735441508304372049545329656195198828913944766220844502140899593962217011439043575216361714889069054660280155639080979183198353995610567462939328250412158467268554896121710149119447377461874939033360888243479066072193521248790005636331445749801097029983453160320871279822222013273831140138208250906200485766437258772598274302222501445967266788912613720787322758299014772014187801583371495191696016607541828852712252650058674545400293828869983335268824853634931951142178934136099220628791703958606457421967992454524030994630850174530902102147886319761253501898694275044880528709873102816131751185161426476557941503592742988042932275476039884781553270013078534860350819519279868109201128101175058149333166398954701198067995331451382676680030668371691534305112944567464289914287024687671912523974180621149185464350670878273423463418424473236406495923620946574725647153578504771524508024936668661600059308679468545915020134581545787503588055567556259792719629762793685787874332690850025321828947769209629686040460430998994662776836128685188893932654009275974546286618592679820928234370266368802814689800980074419584635382864258720885910823064488988250238184432415075267879774900098265002746627569396087227209362073512346384179322106206176226825943400010260010601992262891951813476194063415801831301838342737364914767626186466286755710603420219496511513950682684223819308730985846000952615536023105207166401191894262071620256051243629977137297827909191663539132278072718216778698832468347062025651590626767787445352636892250952114615546334645178942503103880043508606745964796250538150159983259181349199199464830377628618821060283422912426219349537109096420706053236119698676504489176088001935846549408813622021899667464058067952623173540597422010985660299680154843492140751840306674505599377324463561164703051492654894020577045250591286257339757097385091692909997553382661542781327206138485605931380178072904743053162743279847192067861924268307800073136767266582145340547663459726298433309430934545006721903123767205385526436567101519404960576385487831402786347916112657309341813905150744960398025372366615419878408442005448332492971787471501305147549822201313856580566106240589502768794166238725683887728361185894849818617081915773028558120864322839107518823834847067184055031859322411229178275043215355032935044628785438410511752405597094255024330572442501648037363695641163603865969185306104916837292615185072295831637078439276352652493172031084908937286207290969067856884516646721074243144123490640354161684952485390484564952435617033618527399915540424341978067326010156880255033567309363118033900621333671705717525252013157420522208901519237484838359717368680139094385926173234996020332973629018319185928183646585326359989301301413542424614477672111674161159758131074192328531772190412082871939204858763200803166967350040202831945183633025359559367756628062842571533028504125848298985594954740713498199618856318441318399139360954263400825804692422605943645627683788012499384460572980720768010839744677783847684879122282490491191599927746635628190590035747466148477225681792425052562096619282431261001275860393423439867516340099510903724794645067707646520413314701373132470404154484726383645417759959710058760640526716595202707452509337440596714991273221937268129687750900363428221730330115851835759311783093271788145376629328458458996196722062564254591936166909223444929070503583344648879072794670069005299999436641237548300969646633982090761786343070868097091561167214779909464758608797283734000273596842605018678017381661407779405835489142219877292460749568131398274486757006902528245798488758680219315360323148980362800048721268157856158856707298875074449193212712886508490618917487849272360520293629666873143298790690407220492327155999054537854435206537895342480572663721873593390272038637385668258479309293231820496973601286709689043084684214065850805914036027367533025821691509711255124441704307346441350856172184170840797422151910308126451533230209308880749440473597144811764179395182514127478702953873018922033012923210885663082808870579170363303458640960491464090711219563340337219515058709179864397080943533591580389437583110383721383703656006309528065552269084166098493251817397181236835106279075603383280687314097263105716674480868969865304378099364165842723651895234755474736190664398822198361972984633552984376097722403988486632599352317895933751406153063980833287242275740726617806702674979524056791844126949404754809697777467802556963629537192874496366252927310931139761835341996514800842257213093477707844254405241797979877524959666347007102055687419435132349682124232419007518554677514072662329714325563081416449832394249525442863463658483338280903752145491860168354139697477858306467557002618505139429419447539053711222197020753347107256600553556924238828254871853557904253285942538979026166201486074248429950044802604784134133682535531951147558354611772650692809590011314569780561418602283409672605201767411193157403959566102586122065172254578725139514865169124367377521903259458196306096417006806911396934878292725605484639057789242643522339652928918413078508032734162972429826887916545983888103698780848346864599268030712400220982231354375185233007838667803231551082630621320312558936217772417499183466560016579536678274292138354694121650617706587410594975593026184558441016738991972176715508451333411641500088637932284466710595870476237018280553851546754988400733921607823689681090980073490932094806582246341973357282925632893962658112835984506113998463070579047650835313054285860781993825896671810003256715443192191926152944156495397627004174996998135773767978046669156138522952737458646070986406906653224275357535641699574658241391188512585418606790157938306529062702654046149426592279342836102927245903299230388152836458447037606912307022900731013005176564194707979617724167389379014376890247331076749599528482939602099494411395182157707887430895246326058803209552306125720653180879423887602851279231489852907065875922657268355490878328986132175801722461429979121470029525738433733020279884933208898569745264354181800462162316662035551482153422537251087636165805976512712662536121582221285655196692469476178017530670410093492994731629818611307407687718715918954218946434908100321844147697709123561930775134951026081414692422638645732345623010335881141926939638306328046552949495474708376536321079582956140556468816295235759322089162410936690589938389540026602547139432528348239859606278630507961505101031662301622638734718733817554575343927524222492609938158193736718700282231079527656881550128907002668205495035310654126102862410256935490042060292073332610262876039265745783108505424665997124195699678964457244593051776193531420598406783191863171958201006830391868494553479811981020285830550119326398860411320299289021313207491143528708995985918139153120049887925444751011430473115039473995161403988454673242040408642167338476639992533843817352191503676840924841252595631751211059789580329956494319662993425885844498348968289214368844202933590036336955135749284222433006113793472802638624951620739063592538508923210061486663737469599021928020961478720437912918267802671998676881022855648733808391039200057396854654315086505068787086613120250162406265991844133784021411837621773656013897673790064440753795517478156103506013142169832365854051523480518103454154432817380785196388495616280685751455913595289881449048923629058485024013654568669317588528315904187452941585937677323112081626518805569071511614533651375640305403954102691380469288787342161112700940333501755709999138751064998151822174828832657257363821956051734710765393647979552110106423979480487111280006489994255283072023499025015384380607608429767198443684709300980194562417354403791057641090251391703409421978710188697863023538273368957239210220374833137162102713590307267979337545276280905317779927083260723517640480194676227934178881796230252124872029644628895112939066629709704370355960504387364213216610492512560491941857494148851992522138507547873165576605536590268307517645337858348309112011633977167756496630323711071872703594010448535099449283160014906804535336567251413162911761820206424655165918987621941121614147211968493518278002083325380262308886681518423863965878451231160365778491246459827804217044783962129149230033558148926768401217380987785462162675264027482524614328049961804029177083733443468288629259813249046678576088094578221987675288875005326320403173269876870547078967100283852001015912127808939562086059489920073928618659677346915346592616357470974523476120004554089180059882960198440226631620100023314998844532476866062019914101735981612579667040304985563419077036753498443557305691822354341593919432286377125019527841667736564635065960433927229142100533662428852555017236875124907895492454493927570260390476850762650765092759823874534727565659470400656092896767386940233608439503652857721282220621892758575182792087265166830574302006532852529220809803154091158866370142405265108213452670425277098468290276178387577919802722021065132328249653703782482171026362371108114110190242457825827548691339408480579889345612092848883687337873978292577297283992419956918271737094624231840017977337613242299140049516883585513548587411229340068392259408785059648999664789794444669268036368159001128381086533485074894593970729776194472055067271524411643937572069597233185113578288154415120042507819177506127296828541227961979582688210551706270370031452078679874403667526206733417525064803626051456440527327484775643473682445327811749713743636284442259976652807417305050143058225697297427664796329646281019083385949983384405472598870855716707236096348993902678927270941817917055460623934584876991157097716567575572257243890568628494506255135368154356035228526749220949101986678242144069269361498579129920497178310926892594059292769063271433532421047013371178045174982736810598686323810354238991276944665080631690154677024529292689466249768767714562260067803562182439226528560628739061037624533478513446859341741731879251662223153114400027034043753362816598629325155957395193925584387177893815487443334325134787608537717798769043472597135796886439427818444438224439202798329370069277026026934706150025963451788809102795546718578980928819072550698248431473932301307843830874988572245965440137512435719563604785970391055490274342353300536679093291019734385287566646682230799817872720455094848773043734490342918832085118377511587456310119635290527367307965907209267822081333022598477177024132756244828782727545429382532634093351229105720807984529530615972447812406746422863537378261452441367582897788106607248883149159071200513822090714819044321465869990692268757216897957875503273081274863490739102191004070057353525882623634108855258779079519126032998779862236952633459261436315137808831664824813418530625622775289370209732651835748255787969804739174895664236022737630086919481713810082503423713115496387523534246327848065201920182310116024326434065797184290120292792380604030046956012022798806653860291094745376057265924583939258512195640133238192095208393942740695033297411022396356386163838978353092689889471181614911858599100775415851309116404600889909118066792379352234504081705618824398547600107849205944491526567384573079899292492728983028753494896824031399896427661284710678330683206696581990827680144190240309730747421735791577252664276836745568447984775807238929384354924482275007646950451668151826408479057538918098605303337785480581469970739095635122469176519208213965031205958210697382277720485710780144076233330890305390732612958343532143463111250617229254627888377127340615830754490596430408640196746974578258199531241488573411602975876384623308811874368790883491631060544980895002326733315018374037003960232928395423584236150954917525510125361140759992834258236678540135151562848943655167329500313195616886672347349523939969745614402415598505372723090363501406879711853433027706316138683669967826876706567371701557207243109791776200443575284319618851275003195967516902465819444587423792041023423622338291069657078882244353445792739844802173625730480480388010785338645493861257176306260672136110660875503588124371476342938738446819528289650726702085962417774446950908295751996073779117245158462311528046377143595478247289155192006862516749340027864198958599601610619899494992689315799085639412411960184584569292494305054795049403596909784791152789539888710991124704815840043797727281378335076002893883472054048547548583257735142858625233973157310705276093405067893620828916989634998831708395098671850120282531706938368051734133586044587517568457867480463126032503985820680904652740941246118351991829539456765800795015255502669536539047456828459203389665584680251232282107605973741002435575627064106271395116193715575155606192356105265154769339619166924353596608389169610235757327471718808461400330249824571859382029811332955367205601020405149477524914278768661826296886733209715105560194668749286437207175820261333728300054158347860915225133962131642499332083703460832062102222761289481456043917251693820037116000279670932459847007738302799866813205138919147752491141723790833413297127284071698982545462893964637554910199016657134106817151864606253062537435171081575526160757451477204848089906696711663530703689921819767722147433290465758805809402016309833251946237288989891679865429541705844486422727179121416257394682814259558528805713871103247194989882244466393208448726324078024936545243026152575813774362854666591489931919235040800209569835669449055777834029485051291360598329615823120699261569449183606015752240075896202849734291129631819825855187476684068474858951465181496771192251629230876898462822444624629564896385596170537381996255680710184188553230796715242224134406055614080784202331778451022539126633537376743387739617548787041029831721579917903893978225620833759883154158311288244392092551702185399073851504556132111529244880895692766172924205427316894311132354442171628521437266181630816873321137427616957076801964785493439887883534502573321069085362779824425637665384473079745702170678557518536882351131530741586186371716844746657731423128873085529003205203010335303288075943203832748217989041036988640247525895889521915734052167932330256374090681568674905922839269985671368112939403262455910623757196949467403223572130424814938382586070635608061368342652426705356156898358026558317070001982227403309681581383224288466772234162016047751355745112739604028261819738461395060582265366375839452517218113631450117418860196455697704136469938200768412787063020397977367784095877084851144541892310680719562574978821723574833898281128786309595576940725242373780804605741131332042581393385583037990136996204438480230490435770901948703503586551268470508506086066085299239762353350229208609552529063881343348007868164597802057167040725331517933131203011935743255071960221161605319222725841245856534443283586482293204166665314328733486589614717081926311170503454287153313480884507071013982121933869048702781088696889702136443719760961482848784278439170309272956972109900309659004965639749228849047268830871024904915857850143644556879328814505308387513412978308228337656730933195522881031101497418004003624585345594794553962693518270146800352031865194324066343883469424937186907791834761196348596353560565395430544994647571455326684897592065677129866746624539121447055971563460162464165369187021988944404126333927532677909079792674574050968006689739350164142840366567612582744934382536834735035588501194852379702117802293331962463807937152453981042384376451491715972083727255367081945756515754418927635566835320037502331473050315510777630555221536357869902657939798899682371172496798567008349167900535234569867011966822197851322691471533824992073547342818385705360563312469679074531015171078227718048978923097771879953531038903374560058321488651338797449875794647798167849973174932526364162877369262993913838839796808576666610859010357995237727657584484935679641048587695540278261727867419006723176259566448300944911649773439251141025053498018472259120428346080701972674943958656077700579561037514410520118581096462875031879190009428227778002723633604003458665708377983381780870547746930168382708457383804259039986833724448501972092912380472586549360869299725596106575425550954745889161149469259335230149714471333711405417243176706656980518862840748859549864598597577852412852675646294600110081926599483014853559308990890934869930688989234691130378767865187891529789600940727416888564823661596509237978310741028992466482981422404428742584968421411913684602405876605476920865714349210001850752729457816221043521188414764640711191610216972439043195900130266145971239237627725802276289301862096726372755688417952047045787746551670231731811519909702314507957191455136622860305921432065406673446951386852642947818814406813533006937871889623302395865508201221016592398368147280561240223241228992372102534466940342342460277522471794042780422129627680094427799282358695012034914960664848114276889677955515431866184082168031593819234389296817932882028825494132909559504250805440822323934479474615045352867398350547609422126600732872551321225722694601323513095787568787489283936654996136816733346080472871646743622757106782106896110730390256088343182155503130784066298737346414963603295572873115054024312288480663436234295582345306835559713624218129888691758939246027234316551671052910125713877371292127845732960740441710322672748576798919316976075782863819905737002300949146877422400188860743530826241338463270818773005451660688561315955672382986764811291184116586887863001941164012103499002269349870909957571917834515197214900027283713749987280731471896638519011101865185157970108181915521321660698429325609893686920138157611423789583186016762552121257880557717745555911644569192208581899139848470892603437073515684804657707946704964514538286385874986057770914224167833020431664174129613534687794341624355557650307961229611248536700226041791651788568346415999395268139373818752882921541153056275197479591839239976910174172393167032242450954602958365082505302767838082152744473718164274321067666476774292331484282932805456578974131058052585109452410217822405413438139868648562072588277179571058393595699669453718891611451135166810706472237489435635154436842828684828445698454557037171991098607940313902711168529968793038930910529054179973236677366649239880198068029704782600384100829702173390369367094296222215442405334095725987305363594435167826027542217424292117697750413673813987308347400918245352553671151686278212487456273921247535666880239172861521704516271288318341783524660351680294322326581549077878741907487876182709572394537314798053181105326121474259577325436809934823939489015878528846296713840475734651288238464587543473434249705851260571747984530806712005648256659946704226728082854659674305486727578523885323194572000466389584293730637341960165689067128528330757106821956701108849112757114632486019267405727483820449064742246788163344797988819668987199861528150117629249586779986320394675142072783349615208901239047630301509617636323598240590552349962644753236273872027658271765391814588951080873127259743595157566716999235849222696369131334303301390856609429719272469883745450306888987706098956590920474702057910875610703285110642815610126575726530696717155789906135716006329131175392796740693748700482265399600496122366962934808652990600672514016892464156390689005090401357950286910202663942658531163301570195354282222172440945077899015495421406193482928312878058085583269652848305791963764298277685231341143166997730422610513963425353366909395995830665514521402112228599642626605303889996933239270525839178073018057022951866200959946759309230678694453988171770538687453761935981184719460887251504264760766196220772917680017858930080590124920117614922576347748534915447116040598645606550179701737663139334268163179286660762994298857384702376077472141267357351141120199184848644344506196496681071142275374163884618205317962478171367489439430427701481078954842935585992779613652044197860734086499645739917668717837462182560228428602722935484054391901161142030653317056653610750753931075096717210772191672876249790119999453604433697568765717344389207058798420598544363619171579068039804471390375439972674227278024486638355112105761118339100199770183964842502659762726312256059795427695456899534492897802028013078871219812868977137164230137028944760949932551048329879595888539438003945267573873649111094356228496492286827650389311818215586461789855746831340100011165806827659343564560589732855303771147165677100162181825090086899695364291598565335631289456473316978356981174122623444707199937279431368810126118479355060831346714057871304931910521291238741442512993056683261535157321078480075770558892369098388378438984712808444772997143309224641710784979578119087149047067378042368836549234997943249964680945384259434230356298545716795079390451042085054462352719485466255218264141875246290692962220232469320430893191378767639986417060908175366700730970635099034757705227867694087173377311454074368784336362108284625071964245669101652775444823018379474617035957202304501286312614461759903486271662120434113104320440512059189519361529566906302260573869882275353836077513547663274536449632981248426803405280368962316249016494116087897892111277768509636150638469354927161703789720855910275604095347211364969266995228757634003523694843599537840443232232841947991598797783367486218360266775515977942766530271591404813352775071875391019429408476231894013746642890034613099270318964684538953763535953871434890429007513850544889223366727029206438116266308164230341670914962841128173227572345771231825745316621860284480200383056231233804103124204417398191075520402548200424729449124516481272218753923531724414376373987614959932757753384952354417676431532623645267649357410021202199561731200146852941187678851683740775243240622654833053851574108079340080585975039771581621094834422267189228638291499944605757506821982005844821955129398589364792475753550104157214296887525209160177607255387713055209184114942104140734987011966871107700020343630694182807597127742308737825562183028317546741892322037100292733647156470918240533454765127618314958337171024261334936041723379847154198919357064505514609427470669534947594040591367913512671629041014125279108411245134307060286516679552032691137864544802631560043713685918821251524527302860770258261177559573389405899556903936015497599695251190279681740396519521692846342736661443641579084155814106375262672026716137820926287215749421838484767758175732335853714266827161594032725505126461947582837892593273987104700365445082240213485377375824990807567519660919797748831347621379680357207369012706654204423488513598900430613070033453068393313169977951606014850867700584675869888993037116984360322800007754485289016980528504207257826623065428521120848823558353973678822754269412593043089147140699029492210041939704693026885689209669006311667367156226045946031662103048660700407605045607881944755806784889886766017374856788485259720100550317028129982166055471115539653309961200448627433215774740592408870309535113185050910757912447379703395367462270868253996476868634174267608674886666087365100252777154252391435890751357570670256874694988249417910106486188046689767066432706414251731470815619849255799986845170902434815318354105211084676078355937147621226963787098525191959993450575258836325380944204464065067388455949231244652472405922423731640892980032608142310612669405097574220347320795230853121207497237216463406042527518654203415653705630562869638217985534286670582744150469718982787272988911281989226958385976130604563524336066061018035605123160833191373831003891790517088254133877060792979718608494040744595936378422471740084764531630957036842333769672973081763079965124302557003191524704973349188218733436164017017030073354479904878403162352909214616230468573332854325194688901717134376999129375990806710653344022551026895449567361393911690842659066738818223518505885935701001955743497322615153620256799748158614174354619668143051570498888908554971344497423685978645661488521073487248546576484053101185116365606254920041032011995245032951365385711379751457807647921931084726847970512755951963352081226212688547351321338062248735074272883453656320394793423234153162253621297940392268955882124661832049727490881180007745664296873094930866591656286702973763692060668585361981483349438503208367923354494417868077354748991719001696595377107852374601160718864992556038941175617796379448732830333309708296899924617112561638398200998371705709660184896005895209072630571043871674900184306161706898047567695268191587320141029257694688227628091240348642433823380108885922896996671573605627411563471256587384277739150551556788537195577146322609123768675938085550681894416268415166401551873736238124734308942192136264583620395878913587322970373286831334962158271503537347539309697139997011955519889923677573545167568709195007579042885091458858608080214905997300353543156034961753910229820487734576262030070081423690805339371627996950065456590316554688075220661253528035859651256316264147213642660250304820995939426163036127151864905915929824785950830278391675568137350950838819263524953011652272118594067395284413388828726060505359366006038338231975846013418778885810066504339171249898410177858338279073344348748971381527190141815810910599155607910977170706848304468990552949613514336597621388394263747425050648655253697440811660466794949561022353288949140823446181972741195175088132314388012364328402489390559466778803175933676553253438169476083353602247536187084991004104420792598267079473674428797331269845839430541311013826316191108143011054438012845782324220492238417446388069402621159657006064103711436309476490790392799531298682788219268569758820184628626693150306740240307895692306317284069219538628823138252940265020275931690741334656583311550323192367048917455927493987089955192170166152888039956135916721027345015847653676190937788080055690407006734849036866025136951381982011547286277634698292492530597722524329417984031400598929910336761878335776919557966433036353088424414083233373238958249528722216237860059426392289991828114261217585007270585403291281145114688458600552418326658829267072813077300392885003105017248172409197466146864973046855637049020728601470727460634403937651481128468161552403210510407522075895543083969757394377657181331697111406072762178117734665544854089746732532655164165123927418027324053012414337199359210073789736842535898668212850367681201184259591471743578011074270485279577121321593684389565602028066557052514145197530915445306640651666246464718561480244676968753604064783666792874587759218160292681323675010636105267776561078286437795541478626906446361486435118041679649880792111213805806457371757685193603407282838309497457247462399467115649911274486323573682720319192354422062547406196288948982887214890315495278406180440673848236360050269535023314295902331609127950313126744627052840383661952308951285432234171233956653452626606480369383643834982729949597795824595722731285481241684966856590164651323845085558761542260828749828839241794933598878965500595538701868190879831301564341726538564116676433879889663609996701084854665105381794557594614008052576982645243756848159463567911663531638352396179648750420548550927683756238693290916964659715996020468512932376340952021776913014132890708741153550723858357429928703774901589776800794508590153895750152778944946494154324697768200737296772623604795201021746877746811069465285054819443120516903640233555942144701271343377122271046553890513614952333753707846296966897585236185033621187155427810388416457391637337054075338554649204975307306473267609003186551737705177379583844074543531685797852387134392423978529966198321220011107793830703596511199348901367775439584241388643500866896612665321385782702001457254055482049819343154975423422494726264947011423309316967722676125886494090953557731244745571573700793013645250027083198115369278104284584376619870572300708623430173222744920602950612281508577207270712020838131812232607709337869577442297162801018893937345759469060552582596835521807629262011889552271925053740563169615763285625369073167779056588185075842252230566980782869551555789641247828392852891028211496586566300133542157012807633821450042102989751656485281438830668770592920091089283644716789581798360944914176032793229357470459690836965337439171454845399238768359392375079674767633038480657332215623978927460582707514636797707021634911557194327393029499913226678722389969777567292971035657706479245969220865752192198270336096786632391999339268850922574988578570880799772764596577041173603038968887750784208655907770473954341808666058226430318985496509170920807739546485276787929392520901116374922460757850794423144613804333593278178711921806450069471547533510058640290236364576075954492200960122262848011095791113128545461314880025013100086181750187536302593887463399018631057892228486016032727183537295293438173860422650338333768286843049712171661473782030864066097074344209127234699039145611459496212316502702136116108339243139203664802758373457642164594784465858295525696534620316908505767745770491838075678893596814537457257257540328984029058829481493332247338645135638025047091229408606344116188045856003142534952090629659445229972184712172673245242521457297197560145714139660804685596636908101088079715867205254202887327096499429293540746313648346483253766865617761988022440179344110286041031204790425741237355637869388528711941458011407736759325626371643689306783353020943187729544831763263112048862228568289422495980301351125835559109885671875836542534921844664640112607866689078296661122214207772390702261393431558960096379181337611002901914388562313193880819280680336727056813133533207172327143412685299709319012841243728749819300887771999280315242468227109835885101681239138321172982175513276623006570344240324090999858407756184704486984531238842267063558382004628727539982874403157630694482168421004720444003807415953938332638526615816930161601277794426455154172453579869662004489115605709129854942813484184086740253770562379090536546868606622401538724408347052052863882560220132866369796676150784189406879894920580748406893060212992812962855789584342611304715596593835428467419446196216148724604147013899353781775095714193713571030004886415980076720944100988137458668083880796806923692253893641336912403986722706683410171035954736956172444723837378205910430818046141969115996877755426564259923762962243446048829177681568564322142706578090964892806380110619271390282590017915667664741849206276025925483444231040735114890620982790279960112410192523174644250238914168775676357976495510674445051432845698389622900802258176614597560762089133927117032117805379667241105545231533275143353758629158570893594344552064573563332535963462427268289415907001861439594102624935978535759460396376446483657216383368795130901093408983876417550977738588857822301822531232887284452418364091233310309528235019463562380222038761256762909870938548442289465299985505353458450759467759797962315841164122329623652329377424207553085189965464754630812497613073541050926602976902641509355966814472379148280824812485979368684257352776062967953129263300449765480270724367574328895349009869439947845806028050897480495753110773939615715524441464593452788646053674063870683008613404759799745264346791583458696853428755618246512607909814215150428855897435536922962839529684886129938267674483270024149902969487185343564511697728268266655697885384486243203827400476290857540328581541030814600753707333378006665242235714343687027576261827069337206290831395370127432591528596807833251861174313829699730711797409597525122681430409191552215429338208621669925695976178934211704201439000550505572472252036095759651758214186870985559755807988701375130383924700866083061276763825062272876083937018225524313091560192527108505876169972241533394635751012923776577556477114589892348973730364631869787990485724028692548067884200602544969707197137492739259058659081044746735958526689671118763467676250109556557290949382656280668524770530185147045114536374476354529404777183437198451810907624548362350521084367516801326948563226035274030453302973795586156310858075742212032595194073881170424430314135219777859764454001049644500360440410300527541422600427494951458053456763651343761879999243920097828697793356483792026004906124301987672490637351782504111863400812264286707102872783473343248208641496505910598187427747174505208946386963957928857816459813099396080733517370038788235257355256528905217624161040800135871898735051834478303738038120660411303395638860349741854701007612453413936997018165055638260898105184163816869563306100794049935772120651385111425630388338593704242338980259416675499386339459029956972181382712848433009208906829043603035973980008758757948701788553441534901235344182895781872149640601906649354931650341722921044874059817138755275242868336069177869695288444486270851359497876094785953411168423194557876609871723421233762905262042615659134112222694180143048015216732967806218615975294642589615033144377674998405401554753095852576511973510107197730770777694180152479933783778692604378599005694158314663999290872689136882780974768820122184459055973351560661366076108709667778575537518017202036408632968266701867647122067584218858318596143568698799611741577494271878014654462912279618927978436304321694730555109939862885854338624863104437376226969902297260609144687354166646081163566298656737370869494826935152509594653979476200357485987963548703858279815704107094164189937820787305274510289739488877623430360701635543429459519884190990247660289881811048048512987731828487283681807545746154630997880919496759007858886815270671365539828649300102048328999242548146718943859402085582285456396591413542242504639767768273299457626071848777151643035351584440175031241706496302551212514138348042005612389635051628419318841519869606998554238300263867642731782056274029539034838304859217775821972829077701168390743757206441298574372356208321001126015106381128309652398516729127957028313673345157008260017087773626584482599269602982804546865298258527477420665520737687723424079998152402554010261390766324747553851989393301613977065267676212031046346212962175471088995117050462874062450566448145324149144872922499721607059739299737037570751485809113122913487848421622082119751699169400897059806165083671238232489114905444594058667878159660611387810033029192315225983864207315441517418143927577636420060344275564389075449550933455433904012523765442704885874148457566868858259799998844594857524775467174328661923085283130345567855160249516147209886195485959102737324697831771216359613039755387491365585732379649577363576671063956833722296362629786813051246872495785276556432845014988130242400166409606620177346241238432578035265791950583692684390515040928495455396489350664211890523971991932971288363057740766868786255653197357839544581143831737469361805795587283520732629030794901625920023295041611126315292073960035411583872324188286466943381977176105340938861621673005156918622937835792113992200752410631841199181381692392031716707872536081340346178095507137465545049281918633033698342899185045125060829886290591032162176315221969073236981078321676407545956052771220634028809418937685449831019523260072864614570912112525269817868454580137464160133198965502076238789523005656786468221098870407790689635014458192620309412672057474690482487949883121640848277111444356729546645189930994035311063163078557260556915158076953676901830889430907170904921634042828216912462651433192169816036302100251043511700306394984124260152384952221589574272930580780439967984805837026050665938110270806172827442743818476868604329074907397621828974047908933218870004457188953781452501091541908212388746876216335802742095968096770262973607254940910659141665111517643535720831418559595839451980450204468633527884539095730677537041823687518246957478635673923140696354147783985046799884206413797679944872865415668924652350630824833098203961677289463922214638870868620427198788855270744533882806601374977963154809766536440747328870506848938068996310237527834446738237269416715043983777830155253524729257667182430452567309989590738129694557973833875577699750146361377831225224683888746233204360588443920615426895314861999475748977418336468328879113068483391002785275556983033892214879820864925493157030047952562998859737568914295773763517227206900523266291215232491270987342349467701696360947909777363721933583306884454450767668429060940077283592717404895796065781823115326165759959545367112196963624662729109453751944144494552665481753361927350881137406554068675876436947705000784942470412529408705335560550145640583740739053248748144592073358335644217405119107141287503345246306785194685781872827370812384335138522981629851278604265150675137458126973222212396849863165649023461260328411149057933368995499042918676765345422699602602946001204366290048351304878298370570192551331237621599825974591387951977879554330493285596379400686300892374545531730078753275221745016450378378941602668595808414081706022031433366214748610893819580671921632560011041315065518308118906556550480606929289648966193696529934389549835211411730485808545699923711340690112721296935833422123047162626100081491395885959163032582561872795193099225123949873092831840759900200977277642528213266311400227729314411019407843979826995028704514608444407542442852567955491674379391970023650611953760286003827425965591281109386603073488919642047241160471145291223349440038488280598974144376872904785495486651342874929605666970277079680841954343159073439072381347606362305349056592276811097948474180945700739735264667852287892935004715002243330648319457502259088369329629978236308997515719833699837137374661936225930192057048456411846163164889697291276212199749915599894969956061063747256929713168713768838236839638764815775398046873620458936111476647313927746077618817604123762112813516421818432026048092502626568526393445007942799327115741664159221362980033401157061941534779403430370419924975325074757160977247407715387561459404942926359697336857511784358968299605474086478438618482551905181409336227816353350691700057147636353416463702483258614920538522322424424743739145856827850047416896483323993840362915309980137883292214510256176930942530943054512440463203437035260670898122836248683597624830809848959949539458424249444096059216067485898985831182892285008514854769053884665778030864311945764624847382030420843978602004382807002458612424316393890808918650956868735263459198249727605714313589682859612583176312151057060203789700645370726267049079485513584986841781657534565186716036163160788293683176177079244899048450495398923363480810712341992110150844512328901257668380371461657612259497218729750115568289414543103609089470855641285550708266502806057931550183368492011591532839993272430578646209148525664922094610440374159887005127280790024983004565939564988737986502918013539770102481936323637532117228818745978204945002283665846318572784423182206556851734365042648281745753377361125037873476979452619919044468006663665584899292207782249249529456026764327292446244151136213399163459837729081025725687915803674186497722407566970934223726377862288285511338650733237775256797874433535117606315480063833148383147657843889701452860304881650455238715758956231267770500409002114626289222862742172276719901740828420739389781906056821366333076261670462808933783049933659609008041238814859059355117653641743414139087710860470702650139542710128386424279078868061617201566497837177734704727757843876547365849320232547015211892641887637875108265156588746170702384470764776681716788513344547108953671103304104613563645605229751270620872669983820424223344365526258119661235457200424934557758976095130805251908327589774755542330027100609323559593125368238541231574431865965946801567841053603372450125760249721806572266668207936176777231349296485063957172386158234045627821666724678651556453031520960352726443322243967113414761602067997829987806537298534377373686870331194854465870397244514068724094940895309360525733637771256547948839397385575295491910185620287424850376691765123483017136562780980848649708268192267838352722991904202715913858171574898848352589326270380680943724824528160045357905686072136205937659244544450514432638563943596485093622194350346356661664332943884186794080020398090469452557130469652573847671959519903403477184137206272115797026521118495653482889840156500951479720725104914211288996761422528027753831576485647413849578260567515182915154185969497747342532650687483304490722664444018693037804317355610217597790462491335138319638494664915859681324513029088314392160906067821778765215995597728651300379165276643539619286645071638213758549058510046796534181620693041594311411258344284393329594043973351783902114370047246677476045039639913306596124536885543419056503721767835218109084993635286307918552850908117953925463657501732837271385056917009650041734320813737436817378059212522823126837605109423656094661287226771410113925319529212846297250678737303971624591213837409028768075129745913482624317427688078940131111557405980353257171673325352451531131360237177749149036182636599087833911144105255622246109046786224453624569074404800150574568367785287506867046587096648167904262602414408112630754663275675627892911906761636237129068288638773193717833890816115371621933421053267814943674805622144623898759002813626812171022482903282636129602244351564250089525968142883168507012305765266355055630250167375479267206849386321404181322018281308329351843376622546841954270780354894611814018209668244306332995188929651726548735873967326835054139220844074094324755861740467789769796857773263326816631114305690199966895788916758095516782174038826222571560903700826095490770340668923665768856525927404727061784545398972390889209824846920342195486175134588383547666175306135988443137428749740317214151037314815550266853532171477186535455566674521190940118638962325516224036153642267799730500249281305226486024957500277576797700487712827338067720485246837573880892185587052818994514137637547291518298095599153438359041217358581847417539202991949980644728650951780055086196283478554272206132087436480430524656446830135446343754184744102214336225558384280591804523689627281447553199350111833956546015514879166438545057508305535878330732938831591718529735474426553645710486509481905985607828638033327970130444113704778037173658783639239421740840799369310175824900331682956112696616402497267113174588713584693180989552008506735958072704460557338419862759834427192099260708974653033205543798222309931392621655268165715513702972286203716661140586471229127152154661236847665128382822132497128562548673104162808814169582698992718396891526757709617975983487209774897923072496527482889784824039826664229795845951875488622317184181846098139196394534138042250377266581908922293305673837962626489714261923862820852970427878563299179301482741986843949822139294786565496708612061971589176482818290481178700112431754406929885467759305271267951771933273316618567766551421920338464640891732905874536257041399324266927934149009832901086528156363282961549113282900359183627082608322867207878309459390855804928577600333685328506960687479243451868910840074007906087338446696248420862447393325779726048146819661293819873083513025070966905450855768832677975853469444431227964094373724779267966667825831198101427394493441232867625248266092441276771932839296958277889020482271782811685745437356844201573781064393563453333282706093232877871889391583776828372979183738725949331575798884931750012223120693478767971441520851728023310912276736582143295964608718138425540622466373585088260635952059941977456979092506510600402431670052431719006946504336894132741528752679356648354384850670343225530799964394307218216556432862495885161466409638494985887811891047146906833257691595338892144051456811669083452385092131873122337034474475009822440153007715562938286488154007328402534100560753855216694671656193856593156772919590304534462912415699929381462954459479080147086322082134750074217683092150079467486496946087589671266788345310350241008982857361641777581334107782527083912907748628591911032449452169026393149002644546812638701760060010175749573347987987695526957044503212523077862375222646395796822216233103634927522893393678721709879609780984512907870568460705825773279295055120487589056557995909200513185559424272005173283311699651505616105110502457352540494723922186290316705680935729823368147699162212825781216932783673392330347091661119588133195359060445433887965972971834756914044096849041430240876479065424027915496283258471303833500900380145149094266930868545631477359582439882952654627249079783850161354274803859118637502974315086378559270448467457391611164311732118929984954995390795462216574082020547112369904626938831570790867100100861748729401829678446327368413771975857167270182647733176313543800551090476661535774737391426832220239849887844229447960551033947591364607271524351313129195361566525923281503548465911405048875452247079922048100781130191892033973373012946381603136730124423097322310594226601865486942296821909916420039250476322127672044113019768540802223888636397133521561203132773318211157015473742727591121407315733248064770195474606399217993626252605686940094732914182912965023900595003700046934278033185600620606451612809008211754027906623689442386127029902577787745403439084397287514734151484867889311864506215099113365498010250763408700495326306766597584390969688067487992050821103081409442943062858675225233859371820502770674984310809801679255299433564292319465943804322055619038723112595916531197000446014598858969149137786240883245475327134472011952285344054503936927688070135599413025134426587613637215169991370358703194067889195247752011917776517298119548075732481114251614733816965437002969346217695034549016600827809537402006513964562179217222319126889501482957351777413007907552695137551099759666480530951879468356131831101118770313154618379854521543221326211547836368168709651740669235936892899953959281132790997406920578942035675459270383558657900120552442559635340981878118289796603927512408778124690677219378093693264068836121041006584168650299899148805882254018133586514000812456212751883100277945987528249667243688034622656465030530210121911378187800187050275252684972877539836285043394319841738469524051050405687028484576197029914828466130921373011088637579880788622588260369988997942018315981488850286345011444562811293369684667546832949171780187406694140829979687003598941039777437934292445569207296769628691687645711663128150948440662041616464076083305655655697203900786138165057280414803656298826311612628343585643976156365715702124985094121664100942591397364657142179375897125494251133566244677970667666208458334652911348521439931831272237474548313916572144282509380808634248015183902558406627707006016963057264302639340594918097683915393296254796346336528386300163059158831198269180503835888533766208234284880516861024533016550525096041290966593688779934853197998199330093106346371052072837746570168987653141611133077090222375982102506545180810120658430092477167955660336363904064213243969818675399282421155802978361177432451751016100603638748331321902567703476302839946801409855048836092574391396108376076915249629246133692072898901538605666858771809461652256539326320098770170536246338320660096206076873501448570325235132671030146445441357923620671164228656758856632545340706553156640415164388424336411056181711681414465876886040231437103987844742733522516655539560990982387931604611795948590276547989144431512477132311694602208063604922507379440565041903658071767747187177247233066347260082190105538904420755445473099476449658559844385940120345722883303555305119535590772937258269974349090458578220122248958449374744226869288437784185232734325453577995092295954581268527048961774300612748248764895430853485116326383275251239261996907817633775675739823600581269508172830897144507601694247792977527976329804256077261541912254736800173909390617086997117517257150097741443899608738470969938653257647319183319014009319156135367572789427852200667913650171068587425050774181141426449783770229976571982208507364849080307294478135385229474802112800607441002420426214023423304340642786037874928592526039461829536454497100959646876165134058614695633707732466242165219965948681580445687019757643895160769786758526528445124126249995515004465281646092893016373961985962486271165524696863816796798989261652141998514539271654610871466425799827875023943144669024524827883001435830699295155565194378002452231513034984501651352825341097581675080414571879068219509815688966940154057556043048954713178146479692058699611799897126388736531564345333853581593559913668626084862270298656682308563913220818592052433492234189846647982105263462296862876649515069626241605624275201300452308788083860012754008114751496913646624222976304434816051167918643343026623869212978502788523588894213372112340064272017375544817263248538990548569368292370090889371435442648824207842546280674007279492035532638843953101768435359026146347630723302996904546520619262621314324891948031868424091340888618503237670440877047193079665717842568490268974457016817388167898611897064304457206749368190385781502079346615664493135907300589134275878595072447895232808191116291055801380049338634527644173139336581176133278093919550342551971728283022970951540553329080485196925529733830955012841178668237974942171919707393556996299874582926024149077962259053981173052758216783287561387249273036534806757064724077667385739613244895824886482879777931793137271080271098994610741914468979461655202494503185708174888998967989149716377874890255902250999917010027929184065332447117349182770730568481852161414584300144125316169535653568436176085718535262346020338296362231999233488403078590977945448407011703009695358695756494153798640043672551729990582799703978447481697371876532874261917053582890617740171898116962982393539486059042870408801178881465636715203806128845836438315622355950447693380612238224370363938972688165482083358108333092383911363803991020672182463578618940204407988345935018864655136432984462097535722799266533683985534627909723299737314996171658045068227306297961417218475226788661670249250940548877455042212541149094828072754154750927133341563804045043674612954902498309793158792447246027209260746488322899151864785542685448635593063111142445803485515471028114634866156997479445273779943398219482250846720577871281993203878389271992399419661293849762711306460243991232072918710923908076637723325359308355565971963640812279761946132568968357155695091482241294282517984882310057297291772033766066228975727522614278800209412686282529406895517464977860813592698722882404715636951269831087114244436679893787056468116642689940088251095210809872773687032955476859686724735508251206813358270708138176160717219627291439332412485115019976598144244076557222224647874935587377820425279235779256572209546116180230770956658780975845971918429845364072745467929498494286419944378123372903976850479981717153186902494447184727903985483899583452969438312035689344298273614064340433603796913649700844383126786749121529688356403867221677225384097970666671903115856141291291575584827616517968600043732406683517519870297486342833028317586690287178620949590833112779081337536826219642588014927099947075554572073595939680470042889040003364808511296312752542888026438108815034550972628280450753535508650201298268707869168659807759423426236055524112292379772157550054477781436092111732700522648668771826495942634782294529613961092687660634562005504261064009634391870165472372949327440119769358366355862681314579093798945757325263079688244926695559454984686252900720936969543449674553548596426579743426597873097983668878103272343260664480138322003050324523359277711890663765904762728159458432105279258669409741336229008625298167039137684578253599153568908584654145034302898102322937254347611879992631319996097738202490476768774626552162017248332703089376807939353845572797388274485855963534220512795988308256578282567692183656218669543027882065417606673633034341186672039266898702620522860138945008226714209427009818507020823472334166759574693972023638113306435536360743678737212276075191809405930346338211261622536025174970504597159833141922001335293423395438788234297251278886646096151581200285071428897596350600588243686277568659602660437870058756545793860818459218020311462738039619292221271751862934791096260494580469378393125709527568980618724250452297695542094973530965727363698170644924253035760571403250948386677759274030442731629580402649544221750533500121094582948304610825563952019622143937522131184921867273448796330437583319553931593396466794781595817270337908754036774140611386281817749678910219153598239466316295353992641148160708482890630154425945092310071372502999870185405272502826748804489495932745974304213571484071120458764996229903917506692418197313656806582415401322628725010805688570104708385481472603907228341580755712240107819293991232877035180231194296169956971788896785537521026169417310660750381587861658221833730350685646371202432687205551511958298796355945894217741555377656773953461552089955016212374110776991228032599642583729058877512638006960451792237156357920218335276262349304073737934723929504574783764159243585280656821778489737016853520983500654764674696370835044088506203975987498810138631756878949169940160137465147227389752956464945520336211641652990827022560916235970312493169369717131953722812138517981668864492799850035850224497611292214840971760123662657154742584193049827548588508292318683792923957441152964693465932263635926119051945983270982933955112360290191010838930435266118967533008962031864651844987666222097280071000824322118642138589921860929214364714065554114115064959520064429853338070811032451395170034839589886992924067257925901804711145433082710958109724247137723464746462924719040801884529626554739411052022591756243860872292843299439842846942882103383248615146844185512448800171940442336710036210955928902478144240455422976339640357432130943430014894769178749459806314514178160491342577390492350968363138675281155373506957469897748079438863849247759320308633885415111832845593398770078002289699984400618387650680979078015818926724322075547460834127301513456647673631422151117471650249733164676331112668793330830432267514109216022876519685716343014385731601102214458535097760584368716961035761540713595922493806311149825916028568987632102503256610313864118861415645392966884699338228326163631564923872713313197542277552647892932591741547955906945149815218227590413909021175319937584272652759137878690994890549654331147796693816970500101991179869812508188084233169090440179309765662888922927096890239305205124928352777245673934556593481797772078065591748848197911425482596378070015478239413995318720600458448175134705747241594165946561991788316406296610710721344439998113494306953031255476828268717117712345994643970474852697220278208476977438552217118039040982688574316066516508719802593731332582287577801069029521465169612427999198459125252741174448549594831437603165181341495319083907813570019922880353307009359881585618870876925806945086285854303034324200183209110601098274645291687719154942547976358704995799364527340396555078099818025791769745352769853131625873422550621258010347935223093838330895652271502118981816165631254498907237066304215067085467595818633770412432544931860520857464850745741433404925877590299263347335272895703659043635053709996253790932985754346774998023653352368027357811697575434617706756272903799399490181781532838737932783926028609195759353839495227825872810492351511579485792528971548520810918929125028546256606453528909675359924839924375098364655305755538219130458087342095212074371372002633949179841234942549999443056856999601912999918929150235371228947526544683010113686728666144033606880309242774615651950941991808268989831492762129209855165153436781199405673178446329498153118511319941387144277099941438804754752759557434415171440811566431134292766618717588454896698692191709295403496954838907397805462571823609429084404933204187321836380466705984004804933189756444210968697748896757165388791407824010437936163767892601333641304500689762116083857672806892640021128436497019545128489667378949086215259480564899865444516727794899936658065391951723139210287719544540373967445701415071369383249329308543960265007256179181642916600424800180299574912231840809576672444293960684441850269357941583147353433669148471582858223342955712935131637477440598577108372205951171543136584754049829819505017841511658278401352877731195845840051406229838302578605255777181466195921957640548038310695092114165628081141462758520950597889617498312439699036998947181044688647115882960559748402849914442160379074814789341863972781611669452304118345675869953253331663006290435644049607242393540991213528474874276320171543676359670249646536299520345703932893035884841329095112192858730029170293581930503554397440074570956666743229858602791696778899534727206811551192026983366297928543991429394879151068625960725410500094679568027343150131184860289685645554672134104646918018473047651843230145623245618173661330234550501744408383496922554204753627356572399075463937193847031377985209989976467607878773153527856722641899486445394813515059750913195577173031200407061920103888269077188668711646889537227231326697467073073514271226745146805903761017930198337937184623053605622607021798624103121904083454278403268562378251162746385115146767901239482250623816309994595947621534903310586767950922890734180343053813111592331279644002795088766069830336014398691625825664707750665638549398079629336297955291529316309900757144801296233273103274808132114340304661421094434283112026702162707195237445044726551083299334877497657213328492174242043013887315420065522697857133921626348706628399289846569579011001760090194425077263355134044513870480470599587102323825787526232544893494220214216366378056095009065700801852024062276155329484168948834504122713081074409794426114731697303260457832533446338785597022553936651871706444540948420919813977248789196777736445821574222209739342462380641259750410769086810595010147105728229244105802292225148849332108609355403311671888437235831075841941460409879405203087861597886385860342127139692334871166295297048176731684052047126605304093517534603718679380575293415189470336226282178997103852918449249770727964502004426950421099754848902899441554415029448288864059694715612738908499473218190145937434505332962641953669957784757543984128967113506217396901213072148506645492689820889607461959652808147390344279292431762914228282360089534648401185579346322991653830963770731319321496516479540485776032159688988398807495554731261487158420803429540578259491025676137981782592290048748572799906221969853366404970314544926114731041193626429494393987216248285181825995302199338820570657040562611409230640249372044927174957149584274979226527534289064242345103687607862452782646668244578719372134992227981856057548429198394178609085113955753401964186534566891144277745795887315319694446278161189969612161199742923122200752210836675513644583023455066796628447795116489850718137783843402003835004906130282525708248543171937800877641919676393522528876309340504982204278996049940625827134246384389351949113994431297256745931776870160075983618465359714225137172006047778028787048380104922114157492697947383942866468759047152446681346893015098524847415270208340472613187411335718618456696561621256456932137303633439025138567792107444944741745921693619554255137967497631455355049894548417981274939600302940963268404530416355026927925822387411718661710467022286071531176435181368782130716515771312972481604760995651586492293943182982841776210480140803364647815521053775469377401262516349773513835682748324104884303275856053074438530073159766818629684194056972984485080797391571524254064966027897727674116267935724634661625436738059468337748800988503077937194884455288742550527901491537587994252733040615964535275162721057467154860050906666273252021173789833310225775108427700793320184270001537703444240293434817379853023238941942324301566185063094408929203746252927225996564938699946048781041716977150624459547317376676315167959764264116116691920226695702489488160443563718542515732054987034456504432324858689534265593999390360767801018281563073637664268013811248316748973924302162179647471271772566894553767130869109092007316738473860410019162033498274416612993247627565636628842582543762470986606796683018880165128895060310969829867678124311480637335779396168559292486932542620958269698520705408881605649842630464242366437415152058458943374610242387156392607969532348915359276888852565705355095966481920097218376409733650414089392981543184559553401959134318768629019578171504037281949107144606852293679517881740149393489268482213241800096081609192170802942300478371637071540479083813657783953641340114229649617771071883235956189261704372295139726435621162663517079754610081969286938573589181895327600184801108324072375211310087737865194064132383525849307679427093260101129034473577401955228612438541118091214609111811048224326529421563968987014243308318215277640084823951518444224666342689556815543871600592033650004415337623456648662453842792754485899009703439195984823643460769862867214111690018087440359654152335328184996740982596643911927526624241511084654118173870728639465363685603910040136330245910419537875169073864901355675982448602420114744945949454025565736612562437257701493110597563973525201240602466720821513674019192545894009977862292329401872941534738654760062100330456117084385141742119563827479121165586565380658649509517138112376697282275729400008419796320333189668054219953480850516622310566601101771789833608978563352086675790191198239370871552642400221554618574671759907085268120998874779250879518624728862802658004686347714334972153195256681222308470445719423611446122013525933920289497298895092092844485051907031450527973960295658670630733957597078235714717478322896945893055813873968901581102116545318052998611463308840241765991718927524515101593129860257521353666214102986866802796798728281991279344421938190518351207819911157993083527771034434460911276562174804670699731693595448929197464617321770464504488583332496011132660869394372049786382090686474133897985358872474532686915719737049976929867396846997175085975635853149527694451638263676370415050910820139725495371245690546963935964267180728834653404348215165235815528336757482352589268078459988611751526779504616895669851712023396595375901815972415595624668412786565570640070322834113620876875213613648412902037079815145840721530846536571051722343186926577286115204832831976009458635012805298993547876379804905864811315410010136698689617815131654426734981314506447763017284531668080275484418981389804124011558667701680373587890801658898978267629811245677065979405390055899089848018512277485218614156454212354983035021601824570116193271618929558152540330602082589656172632542101760929720329843036332444870203862715977431259606043885068454356184037499788133921350612583027573939292126639743757675108851393537836834258386575185793027764899667270923076683529494551056337919181168371289196952445253662841927996271353550786153448471418886169419297020066946949053911814534217816737655656240885946142498319480958831362707700309621171953413632001764973461047706359999531972345420066842843099449557250144478277780474247664224352769621235895422705194719860249312282666478341996285036821805154658546922242373127117192293684961346397147400642019102965764483792518527074257230608297434217107486835260256067535417285137910767395984537875829707723514813673029358067649042768385989118125301039937322152260443420926975490172655548275854741111389889835825117645934063923329309867493061723176802905095684649217450475184761977482461679060490483504349014408698259413204720920781136861815402437869488942763102693489891454511209132768734102055908088637359164702123011935025383411447609431252458347792543042706779454772408546290970045285661016515726729571383869947713398087732505187526243781783764112210411349458812392652052081518235678004021797548944026555156889727330147026859301272067011032517175704696374850571048003827645162949427950737463748971923861495878633657042226986355686550897910081617727122101176100596468409775424571470331696514729391872983561130455228972816319735579209914315031895295949279192086354280149270613209540283906731402122470228568584546453747155124452700962833400641919671658751727941502606387808701120351452366847034336482280623237856836631035580660252305922798253354781519420911944384981747738051975786586680005437101683694195685046503842120244626009974050879627728290958683398573551602539599081430063257033967308065522745773831687869530891941044273106643793280002837179812498313252234304642697100060174595540992398396793689349822510500646982728602128102696925228987425481086695543976612352838570476903871437878353470408911387031114326540188863121522955232314132505300660737064633104794662727591394964668176697811135598391105178229017714544087828204889408577902271719098300588802611597078784982712586653811944540884642114016804503740086755898060071246877515431925955277020310098745428097316796146940953725052408693586464250440757948307947437716913169533896091620484924426172706686811960964346191555589221730540393595110769636893362863069730453917563328235203156393194739195654033529020336804536610260498367333190476019028790721372451658782824077688848749405715961548882442399105128958389203572441539282110234275581862243030284358235624945715936587818125493479781664445853317567737074682286983480317450041174350995931636673182420197197693159253094881699423900195182331206834193271252342496002138578979403652992996129616376503656998122989395677956334810144870316806199750648853055758825124573553725125922396946340520980920289546021749128918759732481487836287125918587175655927996459087072865612805971839148325556963967243202946338525789599936915148307970703145780761509972158978166000977707019357115241515043339112474932939520029017302663326181493562243588172139163807279803588566840399022171596118324069407871583151457721390281376480657976025623439197023573671596495462476511879191535275482055433377777560882867980803807993594980476945795834701619445663166882157225473105985953888423539559619042407252942563953202629885118652001930118425541370928889128457842621688863454986125594448071167842836444179919586834124659491816658070598598652248040227321695424374178823454932161935844258903818619645338153336931107911134054321434185476395414166853136550800131199260327783187124774077984658913957767007601369929655674191050638237853529900073867856855939755752991562837169537574387618781918167533746681228760926771616730037687703235432510283177915660372897513245796276610988240348122251199093283977929701192191528134451018925857427838665232211594383439364708867169209354655623487293110499436175488886753206454031429757895181156980236095534383310374381607624540334675089901562797169137214534517910755361717320356490687743414032387620539989856123567114301350151110185129348701889753584070687073111914982387260834282104561034977186258552776228762305686476896977142050505186517588864892407502840720569561413812930856624260398585651055302312069390397649516246539974547495059052267112270265739842988736495651528655223151948637312896392966318897662538187974804272858770472388713835830484877619429485294784504567138794420698685187342851669901270253343294159356786098394866557941135326126712076297980988709380234040883589274845381369860062172486351658460887142443750704703989484146918427390952118319920589104764549923809757569785441741319284657961048652497829132825981589713465991151328139202001169198265570856473682361980827739075116584057679149450028718963966647690691712338288243828974720812668614006060299362499231076121864980718317923737558657487462388305829257375867191478248808366003843451603986442045583409248955300751829152567934211033487183608601751453926654427529774436156624648855120943076954295639718704846641674411568853387556724197731467887997358512697708175543787979255932198458757718660944714043335527544782453640306630382064258191311163007316099622864828741523367115833208784551323577536920353700284557945211593902234494125937932669383124052169585460975546991127119534348365069123028891189453947568626140276903000428791138104431544303969866149259589790089722357409535122660510327171964216084569992663808246604532700245188209906548709581550893170261761245038571675892297326822784983579490237958412289138829482426004863174905132078999012624528487828469258651620052177040726158724228788427749386035950020427876118382890296066996084924410404321471161014499647898593139864807059840193831818225944186422415898810565288906637747962710542910619416156304107951346661719044181189522831843978103099310332433421954133773868564224830295246146832732128367786119969203406856434650659780694531678554875191719229275933561907814915800868449150528289094529626028949664406883188106083080120335933422665247610390436109316325656946959637546452957775705415672756871785297851232777302504111562605610257889118683451369901049757776284199973940159740957734882932754444568962939187279620204404760745520841750813144996505708481622047345048632049212996122382437145429737565595723280498864813657478786501924633259049291599128969153427570843348664623735485246856002661383913786223632604801185103050882188704512641285755172457359022761289249864690233733882897501537846667432084856010954057432501861772796247452996393588646038245063047177416603519613779537381458708962486415561206448350164621383922585430616940640605098053991982697308689483973917813089189430953821241165362855552183553720596482892851844836225731457162075481234553646844031009872976822936156011507498302936356772909342834997731086329802587671019724950283317303094714847688257071502519319837508203243637920788543047040718370304611940716521542282074601161715905910873682316902544293039243234829918300093377538886053862767191481767231011931588626322916107336279208221915722645782528889298349289572868301353995834699993424379688235018204821278903524667067669908432437490655620853531096612262472597020125156786098432110350955214042064036901148703590597029242412978379473953353335659157967906168232372315523171931416949008900289024563876199576321026811059073894475322109845928949426252326510285062245798109717236748232360038405126105125508218086733210944442473037445808826180709480770508483119753284941061457545631315517434791597467973205221943246862988846015666868636929563061195338165543362093216760284760072330344996189977822768465990200200544004098484989952448139276558896921231965854434378171775190052662851636658820571572717648147435060662000658190116613004505548498022010202635066362457589820451163098609387866003754266524126491391409260890878445247713867511663438410079228953296553207847876699177215854584649475320288649311303068838084062505563904162717426918146687290518731594771567052348102090283993658411446583550739687212100866395248523630340280154092130714969554261441983324793409540588799987282202776039107067154067165213280619354912366740107290588864098944789878322353494623537464302561630447506777321899337943452716439862364429455330316356932892882945892110021029179274564540047543463157817629889708316736916274217834377450241547929716604026666636044900424469789557150408826483872130360303863351002858152020806795599240099090617494674926371775066657175401230180658153627736001820866160175348304429312023394233801416506901656611693323903954103802656704229685271049995133344350935876534781147442747313478669183719520998952705135079831859899537126394315690194173295718568793649243631721465779833635900100047587553671055632953289207342067181474242516757802881914532983173739755546554373973375546862653649162233562292447926282872440386143647070788023941772388299028207866340471865459670401279299046368114430941108358632094366476791428316434602605473987297718638656692351450450989315937650306404052951968799518993864889930711030530987371201081038389429741949174723610918468027534789318625706552956702232938990251815592763872912918070862987040669523831311752579452028109238963871870955070383256521011751195847065300095406313362564649722707148336833926449738121923335982743684744850192001059563631629967001983318559623994651071465869727708348094042240694603378245669332220927001697319014219731214261372921346099646676871255566058447509273486182560033258903470456667547500948804302012124980266481911296185585836842913939517027734281531212709388473939668675379844641968924019394834069172602885595012655791472677744185995970777737123839344946918074105759753238398730140952516966647186893441270077965231016603935077421898348596123159485054691601168076040732433119907078877919970895631096561560083655134779891580870531954169539317662920419790645241665524931917265112083129820855854935116407369524846585038508377924202285566267324587847192867524270209273208260471941682363783075845032338825666707223979142764494405098047255415060092982895768872056331338302769509168155356411126407429876025921606943593275313031592044646123035067898877436812789451485214659539463652528496062805564957003959337536672077422297852287345162261973273587752297676080436471956262920710967104558696849726526457659157025965918855991756112645387607782911906447313368895638508162625880771983684733610110059490279530261296960673986929877051441099623031376285071434340004663556007438751798018047466885695332797950268668245156614730652037177469144939536206098992580225709754060151121237633524532983191357239406601126947178803651797412712310119226479742545827514739474852118404936655690579074045464705962542221025421602073266636774041259381274542819538093809403166819771121517020021574564918307671761027461493579345525951671158631002167095575834606033335757303693705103297327279585518203136660001491138442482432752377177251634810347934838061292965526545398548323189865008621819729861445179370078388421334235188391391489815369177907801563602721281237197373732917034200738181360244747213560348259032689564621037761882324910679777600023280874803698570142840253577304051073415964122075752946777912490138881399169125534913178806285177601619603449417005204414768936224541222230471201733344398392397555498641851169321277586075881484743241907740408309249409704612147875308790265686063565398848825754339835893678179707536649480465436473941506384713798894216018435176332008819640297414439484070614901632391280524039492961565660419264071542107878452104632505642066245124153342916937956219029849973869187417440837243892014307878583105088630406337827690278832091055982185280740533109001503602802440679912507004852977464173292093900711374268234060551932798130512880470361214919060537486518286965688635066515739659519356252900041831305604274384974686058884867791094788388741277572950459023868105969623676409748640850611659418715675849943908641902186700624943482895770618918005955971376038158897575966265482279140430493767939767271453864399194211551449818434129728532976972394047517651229682071198448091083608831689041571088076969779560673829134972060714124835812130950460294220832918856306415626545908428698950151294917912428029962360416936602419421839488907930504098656319187353591047677945717811294185875760099635604833258950252866849724588233214203119004679411223931093771715615063165718993394623949567166877171874326919329002329749105772537056911378820887893867486184290862862847903240616328721135441219779070236861376312508670697249635644953693039463001005840123261855083264514882460549790181721058467192588409639983552416764421451999318328772986469485438162355226047475190641360485455551288173153648438886088981860094225608921063634209808524606959741837796577024853817028837112735086720988094545921725057110527399731672220606727989994502250304117431311130945757931944676207812377611534121939735703725914518060628614698100235022487232957317030379172575141596580876244973757157267922729423408999876379462510021277412324784807999226264793744319480079775627746242795083494647743206959233328533982994404516914701477454388486797568810485248982805303539746224150832494469832791233809600316304027145164590470032051558454710245766683835680962201089727123143575589037132408835130741384022122686229526990634999898211474040382412205614624512796106606394571578436917549150930510331578215857027399005909753369055593390491796987241247001356689188375009690752586240895844237047506412236840327750202473421681193633718184062011347092304211290575013296046106885129262305864275009886510182692616397408662969210578137883911864138908638323592880034536515875468278446112497047291205541399274955920202343859976042842243588864716534449514324376211604026004274446887763490511051636248876292301316011062406786893397206208132788015226041584721946203227124455294835923549085480635876916506241184230421079473960963631499087418403389264285841635121231114277515932605751350143233333919170002484114161310131410179971326816596095994574411313213306641965080086897452430317946139281094031943599090365477547229822643957057710690766715384530106137435073971955974886316191969171757276560273391361948616995689407885309614782992583290578963536052890482782803408940140842727385135066062477758115153021397774986646997376441041405778007800723392847655359050690313474315991642691304663095754729737584270041391830459415368569379417558677868033304888761255256390770699337035106761600931640945471483716462901115747047078387618212027187122987371505164155820927842862399789441650174482894067134395403812519535735057553023412554718842341925010638260790111142676635982459005142756484425135845326115725189390653555026062392900609106009907648204075019917925599814142204468318637167732989396216109512023783458674848524058552176221145300126424548230644271159371536132776076186572598594558668957521942245413566995684940746992793480839820595543248135829159485580987716330473709284811177441857987130267270290635905849802591816356039797647449701960142316848777310515710999665148044662662640652437662251381190825069065399896487437260999492874029042547390513016703594015325751383778247889426069234593703536118601145061423965790135677464876446631187382939800125958568072520059103507846427771303093283462542511398941251487970263921668159388165223056720262893975882123194785949075957700780753173398655363667569727874109745713630055014089951774605465105597020425119666520967103923023095302966131131414313250849198552118966744421480345541458364024225243850297513516160815497127693174460955774618055703848182887613553493239498267388938173073125431935341338416014189486206831906604735276922871523158771772214015840446098850683829089423481479507537343290627372880037899776770224919286397026254848144235941365746255434680254682984764125023390897600644185191957622805020051933691967197631908373762161294905424298638443337827423076164588514407680015903451559055243273127629955402172714004921233697399709966417536548052551539799041461642553602360569606469978046728577480254015740595938758895243967271066895121570854990144703179744042672260910202251032212460685613782391120836087837284750067228637246079789735393585414234880154581245172268100662700615756612183905136601420945681634502163260946305964665970157283293761064943684609502912576361861450813739677754014862855877458663251996791121973496770288241732934839506118924624161042638402228153121267657900844260218684527267025149607281841162835091410316435316027511464978129099239757116438064967070724491072588377181201296210938449535349796004105815773841967718925965436404838802364127704462641313957077519485990818633094166081572409665980711064309766092022571268015719269434417833673919230066864329721683323483115281179856815547597892542854917565085136132877964567589550667114046315770832975203813009946459311269782395712924815411232296700846664374862721367852042298078106187262526693045306334810215230387163078470969563550385859967872953848396189735115934098198666642348651291513811411970553666369212944897365941328584428886548605000986336036243278062453775179877765699451724312712424084386908810155522844376526868219181226925937656240145956224481934826398974778399302762976652720549227107461583750920962897005106086083535170046931722483079871671264303375463196578142955983537231285873569743795819314176406356469685976750534073449179776381623571937918655680813449347152064068027516354388860546513698657499610719781462623415501441096879877925811899636352106774387071640188854378561970723323311657715476046848197506732222034852765535299591371818476274125226756097979223893449933162450450475949752012109006102258266946414355585702192940415955352681657833173479208658741641266605413899658421591584811560214783497598884912081058439711696672212152912717579747399860700314216751170041856771318095060799317092308732503496462147002785307165931222041278838155511070389873956542506816866352845669066886333904165805654268560885277453924562706422222215552861301143297460613056772421935770550488845065613951585294558921036434907667836104157241644344859215069551127127651912012502558642121720664482310347384806505520945337776814777900556849446257688044984268661881748858393247118107320713706079683014950320161957691526852332245082678570361743722270783456652008487909189633493478064666328233276008809513718761892767550338162187906687975527878938231789477886973005627091813153617644001230314781729471030485154117886943445876156534333132992870530156082053000984993613204522018303984274952519231370269754113335286340833012654935597723927217808941032451226809367557084137328923274486583809635574629913933551562778323755567749920681859748908109557006333979374153863032911811193584159639125746962333670670544871645426313183768153968047872900162346503093725671211029315117935074369926928251932462170993755211430887170894593335576819299985294900359126600684293825474819724291839148083011849400125015255295758397038502308645425828050584455478713230433264185343858865066518310284321404550221828243561059270483858905922375398091068344212462053311639653232030590924709717871112235056689153185146474049970938894328342549097030264762949287601179009489928459068579395381633563516940290962848213306537346999056580054764150262595257659896417814116117275442103549682598058279805980024250997789104848486446631606132624990564509551022520676956387707917419738154258600975405581596581996117827223823399189664438774371720794021848907169271277483232210589497482294057096949997228456474612746597505708754354077529791028991249804015682450554245836436250187586641515264523576331905950684527582022741592457713430658220949010152479664975288953597285883679844852812680286065776636587520338028352603126480772470418954033462493472100432710911657467045495950032764684504698728097112246921795517625126984680784450488052863614361581999776892327934594161863886101274532688160487955492761185566470655685718153216234959167659860253835095182184164347813424415885987467546326570192078271423296783011273507810186124043579602215870937148652403796840752058563801429952160098898443252861050286584705206286695626980905696840095766923086171905621532090390019931702782378654324139469928845267022591880363967232544878289975798172321389688233761619309216820144036952387316263119367356841612256140982941911445518084731997986049005528475762255750134010379081684135552853993182438810511076350787367045850066027880358806564401280053107742644433332156455052664116612797951761013875817886690915669935452469322469787229462362594601732638639707871501086683355342615048238207683228652132787233373609390699346176041935485875763696845197630271602163501393298375460640233721146731020924180928423410401634291019284639510977626115457673285411310467817890492171315019459671995367041493475014797715524569416401452356573488446140172895997937242516694014298701015830119128998949175532411462345055174538327286209602130003497162904663297508367392693954515040070614023151520838968680085935224798814824872275357416816715442728321217744507350982983424841209830347709854934099805311071206189487741700345780895399219586913339425648754902669353503051127401173396837200612918104389724960367778880243346155494185352247294594748526868557585033504405930928106355777259996216334469580087498190842006920770805623433371211115792122265526991475127611316698647078928839171247986260489752909766885655434931655412442085315551140938123673219061619420863707249643364146166264498447305873159268002841780066306935766323945651304230956589129332805948141429777172695032176936269887213458103351364935545517368007939031894442312035360249965293343435623262083256363315064973175165516442858659187622579523770552347678555970927900400143476631022830363436890314167986608923083233376852182122800625054472191679402860418689757816647470302865564792378935087670983586217281530760519708132739640557666245942266253475852440411449584090394682909830697108590538362977856376946907395505525070305124377150658792054817689337218290277029238045953990498976666604331033268545711575154371660957508044671903998787913865973088231073525962047821842491064291799930767394209415652760613571276266282862631917451131544448552411740610928603478322301208227627092825007643351518294912674845442660826758938202524148560120016841123500198041556549386703368568177736573515271463869406285906929186221130657157511438130842778131992916246044946265109410143341916001542798934119223289618982698846139627399711628125641488293182500850349304145448845451960151176976066665901418412295794833664408336358911397677507170635618720872564353765333168916411431299626207073995855326876719476846750607538421310983471914461952199937681036001596930119559060746582889048067303968762033987899616338905928621620409074520846688830524536217685298857783140847455057569997264202924215782027652918499830626252845374818132026373209204068101116558578811971256664934329737270327859060341861140302383733474627228349887274562879580658372264513656351229169238716171415205199258114232073353296512930517244643600863251434503312207894858532456820960087022273440500314504768758359379007395756554988436700645544474835303971495474402613757647597154601395145109245647373981430981077712134063255157285876980382664506891053431029471677574881346208759319283348817384067813755670730698425504754956456543070195915588164251970311797798442566894162677502346119407106742876966473334377946470276084845561932032259238861153107848216998827622304408072489511150214192813238848328673221994345613052363438060461786341326548946180077905305379653390176820510500843625495698576278739868878770762886891519151375644739214715416831058246799899568926076838384131676561740952184770771944641813351386384732761223950338662983538674217853541519240045980860063947298241250755609212072775660661116371487788475570881696682850566437774417002003710420372102903187950020194665171988822550822100972851474916001847498625698675034333532945265643314378303147185316318209707431095945338228562113878966757084451647325958102384794361743715830636950989120260373689997073085700401707711720126138603493921825776962311929221535909555240357985583998939084395120005828320584090965628529957386011706756154932745725627932457765362424514865084399801132797372256799771289469958239868552787755308583485486604229134609905601148271402729079910058574941180946421142721738727717525971882329281446640663889038240347474113596040149720259843900247019515194130746237241722139061022608471568072929230414082604180822333356544974192857600684726898851625515885672165932429244680358948002880135771572528710946709049660064865705514446321401332407559418039746581019340767940055833464692735769569320671188512883993639282594134626311594408565555396302209063894590556556263461925614852427371909582267977494269796755755953025065036923086043541694830262542544875890693691608368185464799025580501462339777956954337008654982396537662210258333127739237427742199993876317804882823111210725759794257884370066659656633328597800113227840069005137880568400684172729935420613558812107357577589724151854505328789663622983358241911809057151184997630100021887548880713520320041203088715868412583511949780629871079093026859766459382860292055900096902407892611233797640524386836735724747013404185231674921677519585970950154602981475385689465648665416276743309175301698491584009799491909893708952284245660474717508045518245844487289975498321955749325026561225855425558474849342640784813044364237581221422085465978964648047110138629950662725437761491952927650226176220898049687062921043082504040994576847049650252595940422723766208330425468374104389941844368722696274814499081146703586158061578565629693091594011737407834556571788458718904703601292840987690707610827603956847918536566038848004657060665184668493209676943388999643113032880177648351124585269542605118528152091910186104844215991561653618362779742397776590776196707701916410238556045678937596415272357879311267448293539831128373316376893577126822802470502064615739677918481423281813137587644494811041987251260234812110330689639003065260402282751133730631230890485880990074740192291659320024201461150018500460340930806707396609710147164830522344533181869874392334506545937722624660696086164200567788772331259039078238643113813113563082388565057486377141983205504568812356255325632613539454910784747841888932406747119303094752795105944544554715902122635631681930423977272056485933119288239720448115134445188373218885333784487884641932512742832443828162344316129428686776701104342265271141981212176710711133751831049901776075041413937260851146280392334733047714144805294545520763498958568571695148491788646113452169239641104431065701569290480926787517244146264878280556419385601128066672650723487166479800249912963058470780416116680420637098768391854203926083018898124254543942645472186088859308384968760385073482945465558495761861609976497133276483986365726325915617743208638939222015452736852827101836435620096806388647977829862522187233977264626489874346081155971160427523924166241962245850839205936246074651573268570994902174834829016895958626174268199681815904252715308295584470215231600099804387062930929632045605805778338989199219141884310230278542940405187406645668058405788674528568300143703369686521111308013096385709982654972853997603107409807944726215431694749220396704885404565794561409012343279846070270795592926385704084520540383045330096133079668625386182548213946211696306191817033049445972161267786849728421784170861665791974893252364006106585945284555766920839628839141017833648111009709770327560138403676864480342909724241711610866974487494380837769097023013307289863753305232599869317641225295006911206559690595649824036501295128344560304992000166787724316462666594092550647269061927973397295944523126160806146546973679237861388349755626373165965526692294955063351846474253447869678100435331759568642711830985375124254814569647547161308718429950259428237132109564426644011292685802380113637338271217314624358949149514289741561004470254758650244406938822949856065797114243461533911659388874607387238523924047375374884211127090866664008533766805276156523350488265426149856165264544539693557448214024006349856432329774327644512643101056324485448629134774554105244272412918806352922499050428258207326464050979536547420858506597284816406355378279866354247048617314516247447228503790001458467237640197694507985885887811226108993931625069607623472798771937397560649408052951723610518936612465528263674090821271279520427923953752864291561982797904989858805748005738365672087374620164222522946868881249512074585058699296394466031148360723438381320022046378818706022672054902835924509130739340070788861247706813586287561841394994129282712594492292455713319266250257651530836498472378742276993367395508407554599852665642700380626100979713193669874468298731716632078510491343966579165324010725314877848497357587119432915260024023421319764749446584817548668192060692105158476495551469666682438079994845674757017187722749042680496057855387472972691106060004921851945236164228061561275226629323445305061527905442491819082912703429974366905688602489474506505252397572622017374674343580810358392690529112560306742747698026003894227916600264734075365725290024753193095342124058190632991510449778882892883106049901938465110086749443354926027804468945877518037113511421646727994218100078917956973188463371567990884325211458933995263430830109820549939701966838301326606189822599100060508153157959749018910407225603455296106349246773244485397415035862420467211081609123284088958633600545326737850038658380928060836687494742530572334403713266831625775886843111281697257333588618198840457406950776474467428287326949005046340131515847838154935584497398488623834695928923779723527826456421885591513510316357810437173638536577896558906109562113358924642549982366926175893214171813765480485982626575751379447083152764249647924617591366323814761191648322244374781961275029970084869961562482683543620105588944521268471852846573438228000970446127007727733910560913874722990748934633370339018567225418774356436237402536612016870259255725492524139204498421403309740583979059791797849541430240444277956578396040691139662775374262845135181485935096964847042666690884059798402379794556485222381216369558866299037251692322894783944227171854398916344879389445481004509104328312814862278634295516355798451237495377339653694508150306725134646343338396187812463179725134547490739628021670389540329218509165774192037452063488625650558439361216771374673545307470368803717257572218699555071909608739491844871359147143823371685003660326095916749482279237844661704898524492220514849807740548131658820972700640720695512004993417027351552178434983758864871431267975684780772521255194878373941996534164128044909559104070706084990149907033931683882138320304289959452260555943695995152466019444002021173861445591725558425155118089189480293139984576750583486654913287293702081583453359006266387426080446022726050966760539641570449060943936696920416006567509658054758100495123600483296858999510910034537281126443560607810126542794074136742151014818564200199429920084648581417963622100535035981287938860568639037413808937724675002169219413440946862677189176746864408528388007766916830276922636994636299352190320388124369448668280553125070781373234827976221277802153780991400405572687575928775437989851505632352141696326906028560619872297857263866714023047068643907573687870119689592685780867250141948969583363715974848310437212798062571801818491494174266489028075382804281294289735698195615649854067619656963385167478341799769928279333402133039354462212144976409368963918454315234340163571681125556660769674809279326002356079045866721772101066667278453541929048252910676941634125078514543373836326170509253275618332813834273461255951837154830463271085158623095819688165850729480740675327279757711190084158439514375253932111524032944355802256377487571983119573827718187147398242144766134693175509248824923516603223050103911446380781309670622743101328467043660572891428626961392075447967188179999137365679134962546679436665534030586611427861902203209751675015670885964452243722542531637315600762939346436080159621160893477242095855420242604531867971527962546011385790233033449880334072596806464340369444229435274364045480847298849405554992786323804711820978182651019974907903492314317953886828660239203735819950272431652433311011823987498715897209822293866236561425635488654524196347342718792621147161004592680514253353650790087564623611515493995758469275394135495001084359796987714616406941534728823991721342907654163499640698859999388793461979849268747864743114632361548126261185008003459412104157330064069792157822259338776512014481764485509503180809063087204060309294591981180128306637123426607960533172100584389635824857384020721301803399388359260095311336828298594071886475590371250223946230092309875884207687144927548981051371874203771902353724535008848906239612138257871654019775574641225538557195005497960524317426858818371773481618148770066682273088065951830291573897030540699018381939120678994601646697332608078740348918256775797743316963830238031375355902339764008049175514091018541452330734753543975125759446252310097594030540957256003482172084707060363418784531405203202235507477515654019984946044170286259615616899404839592671678588752433469527563924221369419617603191710112747459654152015789218264292998239187086984861269986013311448370288705647738765325543054273813264299174849884743134015963772772005080201667135079302948530235832803054250030729828484435045886832594626272879494934213823003331548957977453714537044429217023356608493913517042162798618410895685537976279549446193223070043529426501272221551160280722619300218943214573745057942614552842244012251097557685090078747655140141528248125934197009701714706430055695060675065197138480193029115703056321009096882571671967635592313456000836871732377848851249440963918579520159332290351651152173872001515288613864585215719772370873760259463984621377751414638144416281001310672225427139476296121257352101287945723647693270881285241484460995319393724510480348417849946864041325831098499505838852696828205059385400916337581151908969199155574864054722669850990464528668169122263091783718433633187416944669233692909676415724384741391919860049955102885495849397389655085229952004900380305019436944970670963594697223648462161843897244409649490158942966905726775187544958966140078890985005165196802829656275371541639442608898679939489038670312314394180491876561580596306736868473951921232169793119805982894621324743280205924264180621426324882711016712637676418622851991591311386323998418908102335735474108582776095788908783094894554291581890769877298830999574337581347602053519789692024761690663738053457020711131744203519076464043398183318773856705888260757186908329279672378790047184016100946192089314579762003792426044253103032026803264995268646837554004358088506597206449214578023713054562572989469037719668569827179840864281774809585982809451876688929349000977483042800759788414664476702766098629265217093287311028358092610661572424939531463812684479151825772177712252372869595564771225146017980585957702888751819455076197552729923127449700119775863967660361981696304322245796435736351354328219046795514116304975390194251052029946054959045304456449513250280371795925885670322831819391215830943038445255777072045580244044965252622851278122978693137760348047297034856649246427826628848316659319763697974144478868667474255001988158369089268773290634005348575136677926057038806429056063086238255449674564674278218192229740852873590646775303870263450218723061224160525667922259482164869331452177687248484863740098576830509793813787916367636899396703208807316649221835609201928304062389368036597764145066386139029757546206863335761030028720315518847265343999043937573605405826865551973323259208311596730898270157167355112659928774755721891525436484481688290006665161205741586650385812401405731895241323215867774421202426013624371765075747119001889773354919227070587657342103644371270468042606723280941182645334226346939044773738811902300787546162585262161507246159839328980391580446310767959167848114294047031904418596476131783514453815386016973506830349580063249745639217776957548410890841977494541154384336597989723492873611428883237737414926905407845005011190539330039274822432562661700066757278083611623173408862226738691162331590282498465815269355831923537383095618500135544807743957894837168509245139246101993493544003649130323745581848956652929497293195891413856331022806225057830592451627005193872261694964133623317587787445530823608135910486228991260699381374707555068356761030252068272313988580303605502960778719040276544162192355489531880371363395749799518402886325234763883504693585830007084017272179394525664262037304716213320056043770715819103604111154198020503211520481795638063633877031699987191648206304026970288235308822723365492428803025370071731642899256325923882869415050159085769800948594955102166680502305605685037480703250520348015346000610901025857161299218341417511258035358820604586539948416840885382454864947589273453186741625392080320138254147732194451372827976921414159147741691061236191502834619072397792096567161271391748592059125795229616180938481430329990060680585771399724811409653435101622047253779384188104411568899902384011428143133011614132831090778528240016310294026262922389236184335993535515927922250674155730249865388234214603588954409147148986462269094989830835551873886326081017540901129600560822560369736861364517530958585865033454423275077590181493249802152072906933927181237308055137557915918693673877945101282226631663306410144881356701532408517036933992000864597731595988451726422657900819155490412732639654088898656371028710026448240546957355276155717881487701001015477557393929874010565860719148261290389117839952866136519555506076924051227566277168862475445547696639556886628665647365584031529952310089834840644980081584428924892093968726681333022591149836850944596698151552080279117179338767140134868436352149165147694316288291796988277905878233181483035742208756322890764382198024539546136874376090247295522466142943113466763331030164668404208877759220086984057210977260051844321613253740576932977985199968167464935146995609429617956318204525096432329493658723700661936596674729054417042073490483430030950643360112506741139506083577034419251798191877637556431839761820819277109672363948869863302739979173180814663590854304512294303003396099906458704970110351989614427385942114491093611852108961025608649410037350888797419268443295916715176950885682892927306444484702369145920336256689652863305743460174305984413625838285342344121558133504418052487996739703348947500567445679832963573109583081526139353967154066667076355479429245548345809181446863135064612988801942771940552310637664504125370278615414219002703848250592573859311163676685131080866626243109198201685359431498745214763271635910485684683329540730523349580799093544040513493198873749386625882481050320374338697229651627870018576196817262242024877658792065509585474606072959607065169596650879167794202595999493126208557632353261282212980610634946365462641086453553656418921974922451875278628943026049830719887872693947737927044341327063254259624843518695893881998529480670671016775896413398139021534693800090275656557234737879009406242185607231230635296904326837030330622739522406773517260436988225640842520932177605473583527970110020303665099278126841062265010554052519841974497328712531878681952077587249903608823760318519430337918653188727675607617854092154598072048452863518356329609644241364582978007567376257018731031158691881422978596489283045930840420948368910498246468907651036328846504747553559578682077065606088219779189611923839180574501636623580277243581694896567798224443144517473522549513469547075441049560333859390047663506343543989307694738830522439187001858901809635224815948647222780365906513126532639562185924081367904202263915117863917962979880113528791609838120385931101168685940695686197663522906524615929621606660271522461132440487597369021064715717702327020556609865083164461554600836084766002321063783833764590945077753529821869366044805279342887044034211523321065098774447195263543256000001983595092254527046054955995868511118466650189930529189578093445352728437532732661981288448657935912647952076572732761959130832219895904371327289452391418857752012359021313764303589593574360693468518580406807836877721859746383288979545378888991484599830889970224904295550072769716887469328288516410881471587789564801289220402013785857477145033865404981620781706313338955800790308338796006760254345457946639324888276439507213322463756155082656594653076172570070657182083664650691097743028867455516778780497798892278612164336640694736993677103753531422872922104682928049710116802962573434205780995083182391046551025117988690109498669153732752386388472615802805743224197585222273214596266171918692675638407469941728388084943127492480944157912783055252686998945245010250125176671305845622831546689391901084133281088039042084085492031768609444041356195490073149813953063590421928222775340224198370742988403963227230477497176583910503165818915288636523574237561484451124605570250042483991530666822574500789747652193290265557150770816389889082803576760726013026566774635736542384847141826717822212493177192837189478748899060913811141911902277967934976674032498667607648291982256499129298895463366054276178802716459003944697421957744285910973083826630431009230783607720477009591433384172227900328343286239499399051555684324057950407273379960841026441116784588016053103890326943058539285688264224167348287718468842513502652266439798125874613478573983048704710126861512024531729308947096749938140741170998539625871022824817138995102850326920898044657228105607401465822752029018080525455095031708618882091444188741075197879778989906168876482030861846293228929004468942448337876955296947101168979288844759182656515644291856272698339607883364427833200555958271285113068427169063252445639432020172488598022712271423461744112103427032738996638201368398728493551031902585775530984197275379661982455176978871768035410652092403134514185887950225344869633416236597093352433147106635956883659175189472804804439259660841664056871427614241360791077712145656261750927952540333874157758987335509552658717829878873395592277321582457820179314093375322430201386307241699081557309698029626101108818487418565171502371040026217066891577829763402479905332293072467177854589040300782717698485198903584222549070877155429632590889718866603340690568819884691569514395205442888862656556668718424000068988763915815668488342740175198852210295490994327019981701641790478324932739778882539172529551584389378660506137592258869601024117248121469452631878383639859408496833419395109971295007846513872200333685721998703909669085423863331819723666562685784685436030588057964611674976349675524534413100594242729574337262534164747717981591621945073803326634653429478457584247094165520329434858047064762459431804595582747841422909026667197849988666399123015514176035674321931997235055221226059220671155452928202308003796018960456870629841972227775770155477324308198737676823616282360648029549486753247732550643725334119431850099925164574603961471782906340631235556898758501583962514178132245376652713167580595366557214382588896665481717772179137124287516234411617907103551411829529472380418869267979401932149692603541588712176764157070737672091171851371025234781402497853249709933808460066407323936235055396481199790684610464522070088530903817826319393931261375561101039723527403274329779986361886155045716145931792966274297317846863114476523074442834437236585476037202445084884222584275893651801323376193340871784533046905158882830368145409953038799599670247314529919527376878880764213011443768447608866632237715540668036768777481136974244661745234687313008123792823126314684268014982548540271640122346368906032396013470622315135466091962734875210207083152462196806586618888061417655618506698351199522186993869195728672771306700786412459193649070743899863865138990940356646128893445095464718331382624907539363159005343883931759838958867743061740011044652070160953908766185001510234394744221924431290314285573812363076776095452355914526504403030940294663387741873450427602894973064867542749752648326074821525654107514360119807921237102324866689709738447413910801998674510709382787731090736140153290632646238396573376219848891001418157098410913918653185716992253395940250362069113230234097727403373724695140223840930990572343718387759894246844831415609393793277980743019759421389318585803850180664016817766759119478311535517608720611093299235016633558404506708926788807786115080864555896093643522494909544447625643430532831207492601141832592851308397471017571029504945316750044337678466304784631923875534764907965078068528130211038155133440300742912827156503826632731610910866894731531740912249166309002502437360166988470069190761637213326815067971507868260277738749120706333000788110839867355485033823728851318837600302176625849555964556089655049362414878112846676332306056357629548816187309741331368506008708603187570223270790125320331957590801391070659149784799528544855178587289997300297080057261471022973357855284013288757508444697196777303458786273531705740522622707439025868221670825858694559267466157218476028518306233907723990323550000956202633656560897604270775287323381484162652551492900806270207242645015327224284110492122629170635558384966218810132948786603203715982742176497899529966040455745112207239371804687027291886096784459717638587773579665671233662256558727484403203630446577038270835384169483167777933070868380115033394174124515022125234190727462992132520635204800048601033918176705004655673017910863797602639230440858130421600482349285433326538719653840241808864307263635201563002744645395978027241698970472374559736120254049879381759193516953986872079567720564988134851864343684204165103863927293738174497462291210879475040947286265839887988027524916290257904333740159117039878115373071014737302745594921493831415581769456586689805035184790656108944169882411344245985909290545943102486130072263070617589585224631035795930106877616093244804988546481374789757118335153441889652847547666140873450172500915265720204457938507876915414579087676612034612795825103614755716789907371743341864022869010629533763222472914597099556079102232676664451695843951482310647467806915720780692418037956807252040614815463806215110683043146273423848973228562734616970205749383158295415269142039587673592602493208036462436700198351097165159759238122763128214563368884032390310595157561598097047635672394608618041780226982435275434297121043638513419753381667510166613557210964079800311428069288449169528046669623858092565388615988559846652230158231750961165691214926788663310373755357168958476934202216208294195450309926711427338593853650369399335790554002918197653231265387293001890914252771285898516590083275518645602012702475050462996927111286810307592187399503288844347066195936508817933786426004452966039767800178191589167412132251250158091516168841252763971159555485497082490814113415965258723061991275790839350709980366315829310565289312512566626690984010614375806110391984035819329605460944562512924501322107425539596581741512919137056127166940575546018709409116507719751226463278400338555712484650139301394647605334824283216308593393576285080160280710970140005777668607988683382850417430604594150555534085311237566411687480974311272563898281196588454380466689074473234998434087599905209987426301471947349440643382917174136409182310091014739449005786671034529370459547054784198829633435835766121836994948864620305925611856060326951690663320181263245822308008046785838943880389298860342616962421762198441628031144210210217725453123021684499308803444812666619692744835105283315555487274297848269569855992125487361734810787854940331842722652208826172719582497791028319606176419695760157917556560830367411758159687739195657483415271228492045628821023538835431178966456429263446682083226847777073418895915469479174874048502506286737565648368375584356756793118336140627644144797874160325981151760096325578259297807943339574569275371649807030493111483097068622074979451282210542467046397091916728497879480625531368720237938976064893824432935075555489983493302866815674969625165629655274609728841934988866639961217957861029476737003187123087809640322575308864613551232306190192802308914447124731577671264075133519676067171185719841729857506713295931805533615955710519583625188548701672368420711413979872231736892564054969293514713611863999856309993229576330106298267433692315238316547109626695469335785483435790289157931506080826178152544541855354151578067720380109297698682546079413612776061026043087094392556164230830899786593285102050409675420897815147225784913268357315250010967481487095159651445596982883766508734921931372642172940036123848918570966867483404294360525954209370347594523351730267972506250760898735258598490932124187135686232371945692626982669862312623194146975045568602451519391402186432472862518464309716409044644885759453748933534309061557609668436818596049837248941916397573028674010632418045309369141777391358180575809429362127111215817172217943553523235586615529161941020645074665414628353503166178868974280957360459427840245981835842727953326033179759787915732213409715206317038885553968937087599817418826685125002625365946085563064783936187383606025004529959478718353824765735054235628040464731128640722795168650989968750678926203031014045200901363590693975191076232655617179899950990335902025830963123095303828688443355060853729035642826597199584766072014920058454978847693309732739556018497947742419165379716271889270300183243027764889612570527973932597485989062740384291106808048794851209879888401616774370093920567448847406424658775236630599248567594005184923603344595165592724145111944616825911755618690578524747487614631624379731988396997487149588003528892859407210366451180821588355711776943993431619765159532663107234809403627052831992892448467349855079906486436305438829414851036021354239562737115860778098292858104465190479421060175103991327509050805658496644822965289370526170973144254924449587319872022693000939004322224170045167909358229347923098188286874988808214749818974744594205158536872298987839930803426154502871175209045114824278729034105496524825570399652495268915435843804694717440788218845357187378842223011128451622001064256386495709030920354117230304883781980826363498754969464866129733843704013947989746574101489312894703965948327791477620400770057446958392023375952970274412394174706144589776021584972828893526408602156157305578799596222685806579280515718297578139736070154581044436316718117513616920220993153130623225136239037667148091084502204800481948473232266997792708088503261677592404920765768155335382729560026505011894808966058053584491349022068468153614244968851400561226321441747474812783300130409057835963150999886777244342934785031322403010857766870309342219911662658502557439242285473047954981115579333983701687408616394369927883779551188201029037428739790683913643867501794988047931590878063393764963742784999594622990549297079590783295874398247660196268584005092356981865914760956895381994569228982894375818630030634967893481466699329062914341940933617494772561056666513754226954196370955515204295748241167257236643569235051326238361683553773126782288424151558513954022301215597787556345459290914901563008895219769640853319312358343152694825416150923686179112505195136615767534702078509315450182656167305020087700440064557608665798768020762217052304104419781236756263176541600792801757146941809539756026136705810217278921334552648923653587246310967754357194022061512860714601805496526855413698606329467725504306324252875818895777776188787096867988147546897853673439331026433200770553510082267141059606667374028855577562607076594898906754887475203351148106851759913206543084501561750926955129572514290849293407667461178852583316618053882781791947151732409549568938533215084324642258250705716055173289121399041256996635558927058605365736438190825500880203046570014646319484066763286126032535678295184276216988728180313757422614047206271781033996517555901829223635359476188020752962916761493502780155990696513033478029123099740535354771283303037170539960000418349565712024890158487606336392882273015904508136008443289647849375379176277923791695007719658542450384983991291571277075683227358582292063136624975282259638943414423510829521535480205268781334225358680549982726338898384873120855060710364660103269233825037438551168762349989845154626129997510351276167269141899530270232324650222974574485565948522162299762663875743778908907884997012034882604273309770433622817402382115139179814218604401990072190262244791412604046100081685807999363829645704469480399852855492302086939295300382929521299472158287981115955572744559339860479997339096658020698641361944428665550171324835949608045929456306283793847895806328704458691126209065891374075989935908317811098185744385372719173015901816317973109141778260261885038253854449248095555168322181836993802892707661675919821715477845894566405632094697130488051833367590229763317695812037355269458562268490056405840756301058916277712909459216684155697316655540673549768434429386270587548869457573863107586778472472574045861517203346994852230368083403969070701290449128912186350162621809456269927146358403764142913869055203775598060875062082222211693652582744675318904340171657106901943730623398406109946252368800022645924569932347069544337790167334526630690124651815862428274647821095850374353545572788853167140985058298613102811655375523082423407459625301659547103041203647363359012919848566049945333487389796507976967916243543445121911437865356082247337794576061023832833136581689054878252952045157521002373945174498651590524121762365501822699274941180940824753255121684256476755986730571781264238554516978861437105663553406990729955367580043246604718523798527257923441128989664015023379551013239527344444571858211294334889033436130500256854450829513646635474565486066351691758917420962761986117617440438487824568735686216062094163534816062766671150332845659806077525653188544428860617925963614764640881512417879528354530338221299147800858268487995707157644054539633527202855830170861978940376906819116179357757723439165811951416039564255234908279727548042036096187498793220608918957248264126527245142009679687530293490490627367850742753393687632495384401661220816904637868417576141237923763943839968988660798115104236758313972929534537529990419731506892130288877281182023680591561318027100107763956141096778159429149048710919618157097584533547500942231840716956187095827498008855972498321825431226275335168118349668897890769579033777079121406238480580901470405937022132330641122330213465927472931359907517441423605392048037852753126442603268009152378171030006916810764615545518575876135992286280628928864963375718822107854943189449486188676075030020357661068807596183898716928432042642525689300301382421320045171852924760906986596083629042902864670387075309394751829293353190976607224710208096696550334394578722741668206591708344533757887881517424481309221150863895065422031757836623684885382334680164634828664624034496530741839984999666914745885235917288487002606082288587770501013624140528820768556823766993209100308489386022081226368061764267751590520632001579359070235696125731592280531191371207836199836520502333156093042774834580108219411070158129227441927415411435699964858279554420849603067061588417255065655642354125499209663175440560840851957077411538819382936264384029710625581085181514359095609883206061123863024829705125851797732710934915291281547066481997550317550408957853341417385430308966434813653682074755155372561957257415071432091653152418438694016169089044491073179507823399750343998930191703857154237330611851657036458845954316679823094712349056545205238398219000420771857583019347724856381970941885412983645350731195817348650772210163455918120716453826028327109909685560590340536089878996720999876941560093444544899938205090268276333376334427592401046143993979095872867894258984135534911741900765249158840053596703417394901590124743223593022270545431599159226451906235960648807062139583673162713013119855582491242600765047399544719070470271462418574667210467851876571846287823176266487312406376580671253134866183539365586853710942160188501849944828663829708477069830394844598534074948956333691619338936843799795713886568885498612669450766586129467039514492465089048104332073141670764172163835846819616873768517298778121259503843046581163894540050812466046105030302183729760130941053973309384712220664739946369089110317306919286458440947144861712577657173243981512881313039568245061878468548592775709507726074922992951353796019817771210172891679584132731430322777952624367754616732439788225261076000004922485711600588756538610305215720916468713376959923696888209425744236694630129573876362165079616001938406640995285158233058438185809684128700990174295414355633318695142267330360728970071246972027794147810608514688038428380317365976909066877439844284857669204800492605808613747339017312079417862100435779104865549502658289246657994922419070104634002160482498274051124606965075112119194573764820906314330116876060301487960653844047828533511555413046907170564443190956392502478239027409253634814229593336807208089011315588820069794904618348950095204373941882664132031109453033205624752563070525448571340206658089599966357944338681122580587345880456899298714158228111581920880773979380687305698326406862796776791253642738837010177748496731590586932370663113120252849894206867105981625709627753416052491007886093535320749433064787320242119613320372717837073467934474848912322779867940725077029253295990351324429008541607794669032723809156217218659487840999436547481783940974179082538673785010879663285935423126655737328226087821998956060154985400659461617273284487093329498687145213956393904174220505585829865976877186470302654572786120901731694278016675132956435649410165429926303612381205201899002687840315057907324600787496229862536654067084695602321495606492218150214610668449235368674736656986258677572481885753554136518901287262947077234496570608256398105406914734925190542445912747756267242457980875583487852979361069263872343450292459513969870959721534037729086025849134007358761977410667461545525022327700425686993639317615439037448989381293960678803832157941561702528995420136102221585148396139035353547244244744497201882658227272099449624504369715267332586138360710642568668905850900814670955089604649540727686267448404492052022749246384847633648370538214302411292026635738658055890254605888364247459386134353139977645194999435201994782522737607115905078096080632617592945195634308374597838087133607523002026075768205051264548799105129665080628816454719574176479957365495588678898913900617094380562557782989701139860696826696181633082591721903497200190183965108284042572113977309180825893959325688408969884060237232933905918581404029501873786260115036612778569144385035021570243901936657572446863801856385765153910308701192109625688752230127951664370864268856321796053753416477893530381672687877011022330614026906485443958129044201809323985218143693717720278505458454331511665025043135776266672029196850011649617628833861360637436200076123330246255193266060899580244594293969334571673518920327836276551663305933650816240254343905770382355470152141602830108264809049205727489997884065348049413162051996096338798705607737698007334622768187884202646902228690629600382595596879776863990860206448461031274043230952554551231418761889256521269131423826505955648349544825897036777989966101008389818585025244315796554143274437665583008138397696758532397471855026631657994914088050611444063823901233511864423117679693612050752961209095690542125337003471242267851362043806881661199880507569056594712909181826059614845884035206492854662523253677320344782475031638538810561499728236446295756350368110494720733802260010588673195498484529841510236585295193447197917944166050316333376606978058455596814646794867981395315538177439818898083833016042825475759498436066567139067051267034727941577128523384500194679166488663412664347633091246769162608703165610218642014875568288909685142938713230467820126114406472275126799576795718639316506985279308355184989907783959731994783234078578803096303230607686795569411627554100065120972093634402719021746013448602556524627948625010172293893476073005522752297413536149218694803599283163369275491023814701051253320334077272439027052489604668444387396761568223259227776969842232336680982903845905048581941147716931772828552050725756360834725212182943809723284047362803899448347836786517350866131331655597040482350658100574449609092618145696055910297667257747978955196320460343948475630357098948440123091463593293538384883617167393355503151423379146177449517828172251044507609447596487313679476642264078372413111448994377540881839695220540340250661952101222421172946079630492718358807703354843217306961288568701937368062131909225443279966964957542826317743475993541157803832038102174715659823902481770345078280849054002217841875956747106584963274956549129699634555540477773562206344664560195643267244003365882272917706864997497170780648316520396498802574151173929595247316229707674244869942237463943051881914550633258671156506829449600289425985785699922132067674292964291629251699871741085207423358066141336868145783417813246050363765008710083811316617300063773213279766668671088347208356409295898088196143713896958395930060262506657313421385495953999444255455614375275972463383444886898909227171169720600425386211087662155846953986687140377363840101625790013069246945424175413367031031709179587733030402434388872221864174840541744476705156593180531951749092618412234760292322929080725945559018720870516709995890738641805984147365022848204868415428093545768642857502999539262284347188773575722452917665075283198634240897181419275834589354366185045136923589048297807664255062313914916673784094589595846847932292990309069251602344323285577650432856508028640311887885327362841730592657943965929616170949360597679936886921838780777385194441175511052517827139043248294232611783708780071016801954870321798089222534202718212549130573835037031539553604956726474463294799834634927564492545059416274413900009114796383866540208598422594730983614831512069847894524829248781658496077643929906138790982476526192815810090620601004073545464175549297460550776960390207784222877252134880474894627188022852441382140976415747376784878024893145146003271805080207524065651716407510079753507990828846851878437682426928625569068045626643627467038926827772612217697064970608863889939484052449493318659310000527084212746781075812636067045611164201392154983602469406255887347568120515215075860373655794116994824071627830852627492626703626834855920969679925951383198140069391424021387625791108375142076710015409781273107726404670351630225994200242019143708577795489699129621089706148721698009772580482151595394719695159613714130831596041590550451649217435408262151594392469976086852672522723469823677697384990430891809206536493164379309506594376059628127062943375760214816104918752460220365423567220559618323125905871839321959227492787991873071370005886575222251051595391629825647870249404818300304823101899416336695320843664450798205267870966654440957484214565372282008895109791300112884377621486516806414044246173121853510537898251080827985876932633530163091048003242600572748168956485823470643094693213595823780717293065696606059256565070549813656933423365331926057094798674153026675669804953653755460929809562687314087677368720295236306899517631636751541855137793571219843105289057147542197361111548275741747471063423328121849425385711023166430609982294181809054333658601371459706941434069959877997370233442441981382368280654731885753915283249697283778408518027123912332912110916924266637046597813674731075207061755202885908221318683975424659161414141703736196583095267542661370345070901017926160820884914572235729102367858336112299881149526784246923285017908769545097294342902103100267508296270053039757865988226016279251514042659759234257438323955029269312639731928677926641063269718373262115368296008955790034953485012398473293664180182263352049225888415525856247156293675091126717598277635900929418786425521012844967587913426766462291915866515218779092514890291683886609482680427749679663886189865731867831591974699305597632338672878005139523941771509896212023124861899969169758329258211798583285651009720849014199803615256128233739943263581946595794375073633967632115043093860164475015890827727040472140803992749197333634147722080105266039518749613691984105515416351444085261684023137901538556675941631966144036188034233170401672362854823388064486236703817808517741058104805868620156094891946567422808963046913318057900512601978538572301898519190220768224895656548036172208884526052517479170743589959971490214523985649734052187581744987016770751469637925712810655371402767894659144123914119659831640105016064489276036573544296844496263439348286012610017751421212888691649837963653837710875694682937101259306044545347024777958955547962240237744762439679295844971296580826263573154733637984241186357924282234357630111177449166644159641282662278038937812125997141693149268376480113231193843843810003710258734569722962661879100601254237154281255690787642382769532099260822879197381565361451153738255454087781938554178933802673619953891432373193345005974667211181462604646917634890614940866501674560523506494341755537677795535114374687840703081448346336509086821045081007601542702004956417547234790383000781339239214292340631635467010145606573785061277022920170736736738754228061121314705538653477953024491390209937692108500963113999304439269940877211101005000133172836557184468828467617855905527778580478584318510605910355185017848291177870436113551556804187413924982607345676496760483912713662802300014879808546790499968822236166180385887444862194590659529311754592490794064219504545895781009557055853988964236949347214942997404966314751335852185427068907860807690696584360612278450341681003136287876073541389300914736542047103642619132323881857150232204466490021525259893691469252559014517430147244721366597934080352733946946020360201017460366495843014182931354162100420201489587181140176108438810264798689156644492136678832733706885660372117204731429195989285501215654985706097895520755423507333041897586016198415310932566703551844118545686268023371594058363622868092530159547929549923268578677763701118543039301453660543030410167748558832756713879947116786649874652297120861297550882750375934629682997133766099435548533115416376567713008576888268152216467899577984583906934028533863259802382455168897862824334636677400294007842433597265847570246912009923604890916545291754515547493608275673830085682318559249197714368171559970760617712620595600129087480725273104204229149874900678228995861912871426309265865017754289711491267896201068831530805247997691209679420045300709334129864359550272362565748162549771243651873215465611012092108998636004714045804241322542226184794176651388594576942743990757581784420249819080190387388076875113880447251369644841561258022977287363562034206250763500927574638772624086534403855985242260274119119405566142977480086193170312436622845250407672191174541144937571555570477323178075185954384570070706544102188850219641085430618287230050283261732576708136392951816074546745143572625585122518684668097199005761483268304316224229801192429491595837361128864973356152733073156681675691818540278469910025546480445517637706967457173325916199096577325384290941729976907411121228516359307212424636162840801726193028296623398035416470894352828381856760325916427879269219270027949746921788821842373963496683752040059405339244553047756979153732261220017650092183963127991483425255184660088705999495478368203787585746724683493442359692697420097626788354212711142695903639380922795848668657610376700909640312458761358192842325269568217423299427907513369127339755658367161065662774789842939814936319460734070518747129044029538684109614301387588003639757515244043940201548803690438308392873346754355350861751358776722853424730950157562416935469509635561283679619845187998354150295170251849491166695480025762964824481756568808585444263428789752463756613338504951871140364231202758784993640167109346710527202447748217602601538234663270576821500649562984050399566163701788303499838738282486442718607519045602781105663665654331792640932357045630453900163015248794964843144109219691523327567441804026772463077233270171534401228706956001946335926868504417604870237984403100363687656507251205355085602415589771605178891100858135225855947911769148970515481655197322965146648160060241305677009431453224006604171315312664361098904368876050653007707612047474910614074774315462386557292819166162674876181293243924188981421135583997911625931719142239438727794930893301409677182042026181236061475185871763694260099093330028370714828448079392209170238399893962510302649445460360325496392930623315809748823074775254692489123188589801629823667242961672499916304289857535539733531841119704063024631029282013524440446228900032659536189362831174554140020867267435490771950133260016239786363985725051660028410027251935339114656396027817235615518207824825746248384055522453522957602716188254825677389685667832651458152679495470946383702387062595655247385254717988751615052313062923830259959534952659758464218337824919001264751145198625514347710921236390376956394181014054283135946570805649423034930498605035662607298980794331451763596719513666673719474449805369029569846926492569759869059290407553409610679470758616125561246161270421152329496370570241363697687671366079827236723822154062344534095087599567699021377827163994057058881993116873969469506958741517966835151104614221744295873538766506766458217352961133447999603433354969677111209414301366917233264021457032576994868820990585607996537930859175071778644783948859567225082621666563704743317886893301387946367977666371137711618513094786601889537643952618317834174783964381948358518086918788652450204634147231921475720320161369895395337283823186476449419296652887542003615533802656147771988782695308493570101167394869097348910554495910241334945976877081810979955376049280180648361796106076323842211182001500954195659382389121282899466103518411511885981701494257867174254413083429879612966780069078684180485690761005822572877018691078407055038399060419997901277789312288521148859558810653853046671702805690897948306610570929159545295287146628766105148033139433341979055203145680559291708134769020954878005262044209324464701753653034097210163994292650315238453539952095485095752064501027437764523448501213319701960936762329416561500997354566788553149487770376572536480615879552792188300808953904203640216807387120474504541291564930857786558013436231930172667709598014415102408559191513473252869669451108068403533896012734661763770141185256346959958733102719778631075769217972871642141804213767040049043421385435025788685392544058873096033227607757436480611031562658603334579766653482933189216571158807088280165615543905236331775524094027909900742295298380801162407920998000201480035414236760004753219932883233971351945515264327372315469706212191688618534304203762458306836037143356435838133452040937205767375868189172478983462489073621359265297168191176604469327355086449896951064513255939320583591223227982477862211622388281417945780708665426190920877125559921338976758841437011103044076448690128571046999159880397914445779886351344667266001332660196249142213325129659624118357929367179790220232657537412765530252066165835588201795516839460282701825281071109036123339633482011864586061060962098455723999467131843465185701243505517206805424695595859487360891745089496077219838733991586515696865907403885825760858034358563072819542944747269532919745710852022634618814677859218269604907147552786245309202131631679020584659563051528569743730408503339152875396935991239704701994251251832032400261125585730443019444310570094393457786954939261417434430087672757751894083315086006555191224379938961901329166586707802244973589861556416817785881458120505777324778390461758836074450609280024938121268911081327431440727539005540352053969603953620643906642992163175932193078599695352459514411933424210098529039500375192674760366035331434137449017036004561188227595516969799685113838259656601177722651694102007897365584407178859118087408546135572133231546572152504700597932747619335634901414565446458014715594868634663526822638772202439991598520407926661349407655578855660316742295964658602907411014275204044251839631968309566965162265779526174796387574658268338226567760510912958712899498161583466336017589868134133435610653369597966703273798104383545471894560221464489206873798030141297706506747168675565070279362116303099488305456386859652855783423575331879153244459902647551829262220802731554315859254786420291874652158297755241106658085143005984241771390998055861570719160924586945932858131284817651747273198177744801333417711381775028091338604237108918799320000091918812735308077121636959502134749842168722593622289147578848895047504340289460917905687101520703302804310806595138100891572712850962269616698787768078942838253417960164460188052222338550463866797237717941818945669507124886938175455962039239182491878419050091565452366766601669703190810448352305302987282065123582148760431694590428783849177731435655140078018391328906491132674763413990151110688573704710166893053443676333525890784692430412099378434785263197347433171209706059359547540418119397054973341486326592373221652315975625686552831603401004082843335833600042417434670560629116816546709019143068377556596652604519158966017068583974577968314324270098755767281091884261245959622029050686264392970203696558977614090278834625631394475690133442693848186834264568055633475923259239740397092719813284530664929910612771154377230500526189014323421951854565907266253203333663388324176077204584007529630110040089812607797238917120481900954382793797114846884079446416637160933886125402742199632594721589236389587261334799417421057398043716102025668297629950131080265143425843441949255898158183871772008997382572081976477479588387407012127398999420839410211873577073660545915499495618628085524876164175122008431484329586552217483218377864839259345627187448278603112061918398846523801532228504315884052106776476624556745378231107591948120458326397455154791355447625326339885133849689272055513622034911095567643871253497623224246914640272138362937859532812470621580753703625736642174088427272118538284246989644711151444491294377783707172194977292825438912329364406059705785883881719511762230174984268953477289297674868758153394859551103393215288495813676930813647167934121328077173258696033646155929892136244097757402840851004040713384823281019042316594635439406474289494203093524987553947477240246865423059576981243030400815334621660372320988619973827056636742510027372428441276691520559187804256179069548114317707932832706957182636007173026241603115520296141838262701785164501747479592657177498366150828618468036492254984280791030774271502765419513154402533634573058354487866799964347463638027933115791865352095364950725300771194674979825696419073603572569191726310566552426055549449674156520725098459044625502100400078707388522705950007245216611104635733987360211879891428857171527943192101413605776489658005695820500310205228058967457505911735239135760880805447368444569493443401549316878180246451976561132530090087777962435954039042061541901103805290385220851011211164487967583399409422392177752505402304458082093441679450799060906920804177677108468558467139822439606072727805836268435772546804833254314601087445694255327642590363203454848490213349184092268777667506771918923637703682421376172861112757017866063021014583182372853704015112183727490778746200159860161724010170104043854762533609978944239030921615836627138607179852945093375063336859300507059773227615978623552287767554647507085940043062983294676106082526391328532836837798433948283392775325764253689960233194386165146042484660415568221563059153020478115028872936874838754057308991157675339518719988948578399096423396294643729615481403451261457099013609678278986257370906911997738894786917932299675008594107642716439099227406757396874039080254150658087817761996686083153322588851026074777962413807746210610843010646914170009872173315744232456561969168479551698130273842976184781608697579335037268709022429514450282802874177408798430590547379434216542724131630605713584271589700799750060151732920417125452369003356886633426415446931286416746168160169175585079363277613853169003241389298759112089583860952711695985513854024717234733373004092766402989160783517139775760508576355375394889174860430354126859775714746919575531860913967696519691840630185398677746891749754335699976783912932577388556772354519503271758158617502669926710744325913714998296684804401310844900388191210935577580984924175834287962357674734166493576737250916546361661912877000384203952373505882462824643344731445838276573030391886026978770079574350465073494925746575424180222006974998369949764017418637186651336182859703412676715596783748362282723423630314278209577540835277791519413731073588513610538784711193804507479159628849782596751182205225583806282333977581263788217027382527811982043118878311550547458156922170208016735240325774971513949941456099408390633849628254290812366457904788439277205971640327068314619013167446294581877536394906327352302040387254606204759449993078850681152611111446804191084954239627341050072264825232922363363874523523768831555892770747581523752209343852757161086566776778385044821475903377267937835708834307823067195013261029276406564248513425001817814507274529692142376263543293542044810455572796241353960923068679221590132723013729385231643627188458982426095294081553170086922287459856833936008371205593639916275074976604334418868662959618094690564819497550763182166968253070495766684724088101249134863754859977186300107950777151056950374980756430589775260214658916693984550636062008942522450329602639236370255837383704209990972561087103951357811839680323563407087923067306810252044205004529859284392433723909091787811748733447986799381453083239162984653672810385020986997701769401506343112466115138836186284994883701538163599194022539690698783642992991982152559616449042309840834115930599075481983737743422956683818796832298723088453102923013180666279806346192631430057599863519580166423925462305053017823941609951381483914922073802020572751351407409588129210066525477491659100065508027992325746915466206341608892428322987523539736809941157463427602800248728175002047474426742320899376430567571914539399627804455531282885175295259609500564927593452912228166945114130578299444848314469778960104514435275294078363116438193234351549451079914501285775493940273655833205211016472876095757424675397433660741335757126253625812171009344221361871391678025406046100654804184240033607265525165894086487505859926288384614925087964359222916457914850662904103748988460885384094741418009960705331540029538308373921487609803031508306670168684235150053232345525925810444897355744487038070930800370179285004476704797222414237715756538538249032080130459908322084215885267075751681275305900752748362044786258889470034999622023568454631282870345634784150637157979850358623563799498250730064234366828361008310237664187884333032901490419135148472911160954331133000016716528856869391283161647427213582089420355361795871607093971891102780708060207511355533070893456853394452466352801377579475792210198810125762248593001447488315948619768639701893803165743609824927870549710328607439012156611621251919890254145306096157711901199627678689246297241607315784851641227925415266999769283546752803879648607746956223834058995654017490702832338225565125497111192642596010568844353259329198077906109115339751153338332064051784384669693611419339297467678425549977034647854788452477441834671524340866303402739912689544773801227486105298699043125995688971218261681727019922995794616577214288366746133485584988027432791574631305388499086316908616000683446845086261221103217974677971967520689780970297941196316818814323678338730635137700670700080748046757728987225081210924923528405417027981948990339991327089232514249403810647296268447389585811587900869049540582802058424368952732015702264102110286356665205109243913388224924813005859091482428664531639987548057556538877875033835658836433472391605783409162353170398286164835336245367633114897155816120357121190984607809071165815751254396494194943957089392913895540195948570717994549928482761515276301180050992777377872481529776481783821538702674490428223817431094255141342921866271336810355921395800748384987551151647498226737674772557348300907584996396998386630492173317980946273933201264654618650331350513386808174253220692669502666148962275065156988691844235092031788932492346952158008937303291643843850383759045003264696822135658037439283088110682629344942621161059710362219381498413358042483356883703863061870434722539684485958295974757884640913759063309914033827051385077991970699874435103147801856964794244635351319812696074199555966322528407406745015917159925298255576747365591777053556055657683195971651504901246190653189299989579910838426369178291994864848850586090462304008426140827044879797194345224749616849113119540789679278637106337217810707508223402856612814977133015672573792622781406118384352921007659454167731792598479733801323970165317626489791341868694695974028155730505022627126906322480893879145328159008874341354154094263410255756135887515452508459950891194410904053402801508543953087764691362916175159428551488763410106478300572899246838963230568094211295351074797916681979697297404585666540223880452158685325794860157689760869206797649103368626875877705117403835829146919181639414666314343178287682846051840252576225936348872771869528720810527845370173904062284030915682090220842422516774106382871238933298451100418318249979389668255204625917550315778514811451785457816663365700689501394565187388048825141472392070029542894842139195250203062560401857453094254073536818670666354543061319897543328065057050459539050422106198308261316398392485463773367348514348078378987479790820263407698138309694384858658441487057829422185823987146153808179271462308258793064920374103084126247217043890348402069265693071871618855131359607774873844136413224552658140718101610868150382190320837868196101575796062558092640717068043854217838560369409177341815241850401817750850719869648144985656319119356246159086251363878023016098258791791952926029367534828378327499513519699992250538264496284718644763886014364530685780319032543081200188082447993469829180887248289517592153921551305962738948717771615964249840370825709781845352370525180015565106067732715510273956527025816544516632034504038748298850525819316795771063208229500132895381250942876736692561438471422476838366145459650934091369367279294221657182188282107761522314227490631839107203653860032270213269285848918081932754815951481021425513043452530699682404890227563154461237584510761174247358882573538622070047093585995916318239379532181229780547370412253041235185910163513210195249392388025520478940781811637575429281063976711103531176607111457168198234453248387393246217113779016884574158568160831176475965418942228437401011896270565795882188716336520209087970362908842359337884217753391106878601888213503353510576686885722672950578573737766003043134584205168137898061503530438493155309001540817102119786449737309594715458338751932438266954477623788699396215198043070497447536628641946212619978168756612037230922062885051991050578071468780555971179169339362094096042017410738515538983802572447018111035605821246031604656390596037093086301513379937423517164843376650905987133432325511414692169967276626442828020968215658623752126751075487981819112360723381788109061083614963357014169580306139922321040842644523159335495580650270753846467825979221538712839093690528988601600745836451116932651483819932696654515157289531960611726250476381737802129757314828886038364341561480259012312473484728546230252991063112432120166560563281659252867267941830565660593336547222270401117380421323397693666756100989611770273548508203432619393881872698121377478259817219438621067887413235667379291478366733397201783642300793365146101032615292304968784335090900281770031683147732276297320128595864307886072625828859026043725079534552668880008832843372194022136914662162898026593262614888129057396893600489340749844517807198353113204458923413722796656695538488002934241358336511426684551945890121514171654717133466036271542706687470598297996169872461584188916031188082423148443289581636539886954878412658926608080678303638277893465838707154607741951669606454126290241031160928573439984488041242865985565463134917607788720003236083264580163888371301912654556028419302155011386265748252730912908425498416819605996642744871163309775784876201219290890321937856396059048172222247314597856272931555002078988407076705582477385345656398269360726075999048368114545206200983308177897738349883691540094690714178522553475563986574314973952437616432799710562682921664324979607797455040027092624108319606821945974600448013596789773755642372370453350231263054009787455951602486206809520667224004955312225791764669447514229015813719331353468715867473925303381630261052053764897883949977409750583641257713843017488289716721203497779633648235683295448288037716378145080637625795286429713993013966595341440720891494139855089977077775277953963270923301294324803750940797043419350698674634270571119558884156091062647329036582548366217983535202784415472836101755233221238111321958025064166319763749035775075071387971203270935910319307262649678523130277776152658420012770987352085107117597934483618414427204832894125927299385207047312469761542014696185708971248125511466526782088633638633976719213136760198786768181166052342564021697397523494828388580341419700839680436186996105091694283753268881904945552991548381282041484067650056470319225458285152227993302730371138773239055248755637867429866161664584932080390727439103748095194710783867141924534752446855459400435585477281677081733885494027807703684259905428181870329894884085921182938922570616005706872208903702263241051047286277359525193621880725310547378332239730508316090919257587110055829127837056386840429223791598413045641112906749008131981923186363998140150039490106771139612205422105059913331943815556762994192043482492516817872945451026886574264953740662827191863553219974033689243091138591798763687574064503295570294765258403020335482374307184352102688657305380651944438884708586632265085763978561962776311048041290969145717273599579697152578845077384164061225828710256476458135809731049822846943146625471641250969923294340182567576443506404010084936884327955471612616975698074643394383211021221726884754744462297587070946442223967652313548451289725359365444471839275915154457832228630881017455305706517918233638844303408106510366369144399616320484103233315008400983959166595319839228950317885655185296180065910912078050183816157155390664024253497655813606483060478192683860079202408419630186590056552086710622462961057173628748001340357954209039994626581840055513661249038536519768787655507553148701130866495740133086913390011713526719490214073966346276352117459833099208948619773993229498636923671560593987910277621481822386243816251740350511698409105558620393535656706442529481562768543030389490955656113927260117214317147931832531985973261815983680059350378009195096317204884808198926515440716702678388587880818152134785974218874732269825659205129272635105057261789026092421957676580627218535144937083453255889810375915476442422086581696225411719032985500020927152501219742679991784695056275006178167096141706924737032919842776219642116959453938649683015854792349876906628224455589157085314277249820742166229383635771719830668343044312116108805801870230755595542748749928979375806821274933881280620660109519240387724940198601711967111793244380267037120168441050535190749182837600945124170140039265026027198209275993997900474061143906823062706398627663582271900014294793555214584258567004349668651743675463730159905999535938711012026179512190487129271471388508076885092348524131685592746430130652175449597516552580485847027086056093795586831859694931639907702280880721776348231789935268594136011346702862009232228537574194164257910481445086521197882400310056726234593411811243346458827134214352559698990709775227715742650746543650190947488430911076613006782813577327247234932628790904107437626280274903676112186423564882029802686186046175216516137091159724535561880204578745852246443349823885633462472014188761995755036624851724106891366034971185467626026558992608587626153473005877873698424305739871913474120488253386174101648368105318394732108945849213379376644346001089759278578567788136619265458578856273260907720262736431186398715807605245471209558381602944153585732409380433369077452883756459305252698952280465787805197510776881882036496848702953373893387441007817568853401994202840070046133528597714448556396741274038742954640213694028653854820080354774254744223738311603621793120050296436342321922472618207686956927418872717111882671190078955691644736913976324599120189598331082710699403091412195052236425392049995739697315337021155188576755343258823740281981983491902761676067173554492525592849167464798227559454301842844653663142339418579575426036137500918450198379928457738893617874921257733446573517077132483541871376687860278613806004780242866395571176208322269568220106040457322003085225696753766629832284014724539070285441737537770585161878061437212143931936190524927731006026501887505941835426725844513335339203923531241393626999853244057520453210452251894516810578133875978191678948032666480279229302758379118990410763206185776707315776347544301886489001289788262793708012943786119992538941646520130928742143168503894572451232326781614856774505592387530269034362995241420213902868656971378973769599245747966913210762956441993786503476255622716628826463334084197786489272180034166013186928211150623310061109662012994955167527304438951436267922459546685006424484127614276838052344958334421026449132349751120978725533723676862693332328814900074982141971297034510995219524874853785940668084558300972849463320158409998202884995538717012652231682119059117594787076744696130592833995003176180946766654682645061135915570796685746307871610507270690236832752373543102091511085199542333465057152149565374331748896195924547622516957846745207902626436200805095426140506383442656602822551655403508559763221381809174945390858437721135139362834172824893912917229474739409670315405629737526555639259456627441617855968264536107308959594183813286085762386164763467657245494385773786278497260985932711527731961884565484910248449244200745909457348758324605602091244429098042845727352961215812554380727350991068316366209945507108012425346417214650887385087133094080753119933261289989903486523996227380956697184580588655738941528658665347902449550863878460043134718966619560795754799228132349634928023914707868861988849714902616202479629967986625244413873263320814398533409266528255121135931083959665512415522226250734909924172744037520789370195761862933001749698063568191285213171471039139950812962733351178456672598756306371663607091836029382324981587869537853733142723795195900427875400310058062684167519942886445498242419815790297622177809494722670454540553194849824946544744764729594155412630048423605515104162970513026943512655962501176454672081293236470056127939790416631334542711823672663970581052845984263806695346952290205767383407064894213839124388866578010055018611723082038739706954602113100450861337318625208343751408178665554363851374610210324344373036475959442328375642305206518820099601088848646207615804203349639788973103799589486561193534444589475713085799257274706045556737937038910307260965500428465386920456077130112708375908984126701258629488305375925778881563662620151255462498574829843792176491276225021208750665127194323737203222434358907266983750076286286802599163007845193575518943448984798864036797242141876067953670787449987651395915738914736557501998346217599382714275327854473677182707314660682286150026398319585951219603077519754930071377248688998415727198487738190657858575958343097232045936539716781681850375768104183115033322582518989118954052444517417568483357355776075192977785848494768006754416498936972147520389503770340943181529295190611581663719081341876738988391205440983354375850553004605257840899463060818503992960340353713955203177317197094346123574105573900552152997577338916956660659044897468399961028261830722261802454137829068749417486485504324025218342607225537300312957404526913738113612515249409318917161243579650446824881461049522050969917714744481199744402444575144908026008205888037597026089573372370693467657806414584550162863452499914143947939771346959021334147620867061559276009954972004335013835115441388862000390589552858744826709002280485113410436933046082658943165703031038818503090855460003753430864218987020924958659033047133538097536752818758145943240070388899066963668903815491662742050469859835440910028318636192840243481416390052576468191770739790662515194679342027707707271260088660494180833228118765793322817398052998249225201988939038094383321223486216169296183549686115641303817289416023802453531010026245881865838228263868829168808184933880196229202604903260825221191633418929760842182818362869398321835525922187066060419367460203497978397902899861581540375547098190780828806580457592537808654480795838804070203265096889451362737139040781733629542856656316235198766311396371586478678833390760949492165840337022655064157852822873312189903120279028894421808790430122158174479340584901169188884393793136002165193739470761580823547386525391122812605575004902725569696244141584407183259129591586707859925101339755029847725398700769354840232047405385684532165845795555057957674105251492405064355090078381182041232096523165618846891736263089670434873776994678207555766169790753464075264203669671940787585706652791355526909821741269639402994277224413860453435130967415701820919862627662705652959492741617861436396271166029314702439469304111375985302649605834446473519209020434839992324424466797185693483904272141408484857755324311278526216795436436390166350332477767808450706745409393814365491582621278254262172071456522511823128629295586244448646570764915664942121242330689396368809802117426606701885294630581526445048050959572556693860033003516233661675550413474518366867060501727365131603462444039062573250129125724466588805753545435196503778621075934927094257709371226069882877576883764943891514701936571228062374469840196441916399361808758126548447339160890724534383687869527890912157251168683379358184458626045214958860859022526794393502718191745404800768819707366244390297672654068964068370939732153338783675161547095618287115266861945775143991671309543436330864900693991155182827565804523339113452546490020160635622197974513444665643649170341615072025593138752476238857060044692253233674338903485082806608132857186937044431617575245694437223505192183783338867685230880029223610848144686145343993369931283850416445199849387210217909577268758790936275864295853064341813968443193742236186310689357056163159011643080236311704271958519411427554631466511546383069487555001092627270365181786826754790713181426294877964298744076821825053552275394020980023170670942364933020403696222343792601850897590530510087858679746695022838013175574477195660157653245126188309913182991175998375667422870082671961566680439741847437326771531313379400077577435941458623726702222721717295874004312946083438445484512145580448215680127703545870200872007482952848830962497294197867613805708975491708425515049209725332930457267686447977125584154942334993052320565737790405766109706943740471252017781658891632477116682397292016138878377107660625498678701290551944141708335991851319617601846012946691029727335104269382572779557197859868159107487392411427892840214761499473042497955946192436067615253277111740417207066741735338737923623016484276249496877551084074261764497127405647995161545810710718769287623346671924201244264437831260113867270043040760282657418541284372789129994487029233836314206667581291489555229609567446113390130517499159980710329366227519897944239965054604306034451496785631648354794805784283542936701656923444355549918584840309038761363321751665049091235437312843135684375300651689804158967229062288382605504003751534479507473181978571733608932218857168329122738629490794011483779384560288783591385792357609649878460562450036839389348031154671554246637638909542625429819189107376738480696474404626893198672479099387362447386421570768857132969415709623358297736345347267480872592843089035291732603878977971718026404082194521015296488441592594797702329588138236564308868503764115145049945661359597222068496832479623650071560507849073377474602633938984150617016679968213071461186945255791224341956135750410844226412228468368016852007065609382950086620184839271260918699886145739735068079022756329085058197858350118422026468133713742948157609161172787984134753705851885079212420504295185101035169455172925635412036262118013843079658276828591984725739664085205967773186499331729405652536986951140044253687841311703894228314486502887775482748040012420257079580875005600396130892126498518793260241448644838316149223996309010602045831748215092523404627639806736587612315615913694906566053256391858064681053907399274683478139781065430889815890365589717005188099225444899272852313702888575956566213602507581530702129713414615780577239245542566997919328915146568999022300545566591058221616128405512919243924027320751615489675272449411584097988006306576773210239207058471674165831541434679026535026480307833302557656663170146376138188887375654242720285974820117347381423402174617709473446224633648923738859612966641548112540623017898732104382612674013512547013623620361985959746386505799503127819033500367589230764498421769347780593629628762210722935174017286275019164639093134934704508701066255134015815221700338086271880458373874386835064693046061884316704602872472010955209717777573542411466334170757213440329896337428056439624055100565130300235484538851664601484361628230288943919153863165141344869305602421269655551993460671708060696952893282152859927650628798207041513178079929254234434995768987285314935564310214415364169050585836429974516525724211028397411247321863440343318696125426730951282041019970264917800695738102266571954263352753168502784028160047261826736455011846631965733443599679593153188042364900821626314070932709409650944174205755962347132860891004067300920630327473043067947899970441751232828455154655118887970769818776933411986933263514716983076538886198229784818579210238965412919881894388568219657853649408516728715799467120663442103821895449590452617711470716704472151640913732788194108882808983119082690602206307579463434604832882541391639963915561740540398922389940423082383854148760263882401220603288251144546625247145569806353887180586634716100852239284249427215784294927233188397251017712844878064459374741560488220877995189367934136547774567248463083485645831396433925817197263346003049371522745011898793278552589357897723397144686557294389389062335839861444691363548235621945727004481443137733122581640886698485996922057148640306419209187733385493819982928666446084760646604917658611270149619084981348656992980699157531254922875292145553608625711596541480396631949315168971373694503475677971740390165953646049111796550468362651916110733690678902045522174339414206740005897256451715835477412572202574396967473272046840156646730232902646550981133721901961007169597917567585448590037628039145856613243806814478166586618134336985130230970368710056384348596132419718281673608403281111178963143331075667711682328093146923246969552483379980383464468853880651158220210636568390358433067745087145301586247816923689273076384450847403839101023859800194799072710895398279884246655357803225690423182101420776228074131486974662669725816564363062988442121716887940872987107959822910445447311503670845229539063566903341278848401165349975543227602727658906399500167589562886162212970500498843034440622668683553273674002229487524184200726248153388996367462729998826591290530728805809552810426700030496152785909610106446284053660754967613928305638466188702725509284810089699956815975033701921220731617297955619355902058239942537549379293989299506187386957096767308682764053892581702017862598923769736531722578616139003802472586054420455766095932918200088139569340331174867000166931758209915123327844962458745379543542195970859718004428394760866034119024949939952993968188141746920330131700335792409457905046104514180873719052471704540807433977081590409115938071560759701057650996616759309937986490281159191321688115311484139001746189365448250028528454959819891480089960192042418782647469774551375697167954738499922907831257117377632201214401457004942972670836282352597569737683184249469576770412964752132390569744018588354915024318373191907082987295497638637051175790671115619807723436821233830661513924936104591088524174610631249435805263224871971360967169116696427287231871506901730729856344444789362081997645423693871938867128834212863131834150897582714623735531067968631042644307009364465845388785565661219206781741952685687440250580945558034407455368325507719920583914215438126804085520703984009113135499195235301030616439375567285214733067029002953483563364053168639976555974151103302223194994223057648239182740999915386668761188522801503159471012893570669923452307867543525527656149948954893071121692929924638820682556035929089387673282693512270434453042101359569387610817194660347408204333276118854469931103553555224483025733227592172625003772657721773901217961838456259305533670376908670101254775699551023914502423282737657848557861325815780877429909607943886332555296097119137245638771532884809417242450054513910180936136840018013073145624287151019164466328681646776356154836491601969822813298254256522526649536486973871942165747567260553028464654788055297192469556325828134484851016181582551035594641444587800600899645882124275359410898600069083952211678256283288376758780989358657755984416355784546715763224413458732591168151085048732464902157697551406322959766977982065461304314152063753659006878739182152449311466595884054280299827806775776704404367064458397404348393939863172645527348355076033813613955079132301654610345912065332899129227523863189772825190890880003144581367406881997194101315368015497781224785673572944707453718295995526650436361465185541267772634052838041885661103198823780423286612692829169587266946634668080587027397326782643794822542719003757347760291747038954217274202687454703744129994656076738238850257776198541646234144174273977475410530182291429277416454490433156167236321239912932229468124151069210296313367285203611237758041252884906927589513695455904589548568390617657892564394711536391534343951812134013971362593458494838915075427424031927192792056950926161922492894488453795350441858701661684895025732083148515356907507612336290391740651064916043311160833205318394633257217799803736330376539952731305050151778178809322950509802749192358313985016465487259102077477736965262291894308796780912459064548196496611631881097309106353960791148301145923785474056669626623627726827649929334087841489374944930267378772521850886307846899169056602526598376016947370579984388353694389638122698335066379872959418734536443352888429223959779053448017759321538785370971906684484994757673151277746150147129735091226313124576188622510441398515505556850920571455854116684817172720344273717816230401874524500540194440024611697118142356264202435674156085096164112015455200770991139677004186504303941576252222325623391506365333044348166037770111247342327060184939251445345370888659890698353974224429216879800857968468521892638229163373611861895091463351863483502240223992513306240983891618859786356832810647958176566339165846927443900712128844992090659849691371654636051939397225341891156507401533097414797153456074874731196208627436077988320887003401703145623436914040856543415882655290814406960086501504096091428996473506900761516062191650736166401685571228407723371840842698440449559664682734692841217481407997283218434759843460100645754705053460081191229755891597182992409146560160139954585109836442043812796418574377395137778773097586890823980388900653650132773776344129497554890629036083011468537991984897143727435867885637542893316758522975233673643196846283368912446146371020878144517269576956307668218135746914447669248845795479908045510094754816290241670714494103883757372017416679000106167703165287804925647658537222246161024442775519004881403558593434837481158953547261279215794068718312635974602352834424600480673021641493994617393125492742552590788286062987512063876355666366317699401859611986839644693686042123048601193859077214538451593590395036228233183422437705736013723127007081268948060575541702434823345429400664426139218863663925785994639054140925155263463031207467933598392407541820739764643220218893529406273880242816751271857556510954928887217626413728691562047539477110518055496887275872824587249595964609918853051563839218891301045485359911950403242964714555092608251821562370451347035894264758274121900003210717948039738336328783251629102279284818530790677192676124374029907469833419828140963763727202151352834510708119969942365387937350876637176336272741139728569976902615950710934403585547086481965146408883300127875016028894666528456927811630754661193676046144716751251996919005802205149634659669113487948619553326808380532973834550030094310294390068601658661565108538504844471052622757848560961074098487134815787496568444496601577749466460495795494654752710399627393876954369721225499641375379992046825993582156749665019700503648728968029927104505754311915241907586121648720444172960587120014747741643160473257871805729606310483737037804851042573447445110990617540973157551857891937173240254019266023322083555904708965506391717210402889552313277503744373171606649265622953498416638653922114285230606901068377265210755597752502875865929331511347041448631675249698418324879044273732045459145821467998802310428983827578489119520555879300290445179235874584810214020860418554291659335376948158363673529372002393092918266136714684017526349794111305907957956418084180111900222151680483389549743806186472002401919785105433592946101277701119682439632774340569470261570659735153146665213284264540350365481270626533023309778031469133174985021304803380740839241589540970357877923410922658998001146715237611739205042959534933990490057415557107875026530723219008841269262955269462131183143514558169841244473067241362572333432780559341842682171438956042729031170199103537347321660593200062768632648783057430404507849954537182170123811696352183283984137293788679959651048851087139189756287133876671060810297166238897998396652694406214405657761727656893964092480284163732745773091659110747612141284745995439206211138818832332910741077997904870869570415361109229114068235081106815519827649773051669928429074136101878079243840616722174016085520924022234020269940533011675811166038485383393210168588930092648961514357196414496884346531065717975794903351287384308409255056561436814779000897145769614507007680529789469470188151983998177070155068130371969296257171233849738561654762780064699225193545714281218959551246225051130613389223947591369528096933134140564519803410496420065697126526975605926813241671473060694859409380391485578446551653963863118842747521263750262029964782247462667652081060950342998988803217423738507754879072915335178067376685875643446279651672101274568962647267423097655710793097265485090029985006998002469733596246710665858480995139880473204016763578723309744043346038345192799243873483598897791082745439992877208433564744289738101155661931093054821469211488486279392010519114069039088286800217765538470459352297673128948811446041046230735519321755257047477445218521945826024797449924520900124333097400569554940049736113014662962019707150073216208254312008750375527738545680778859834712024827960988092635602427586950690115698059562325731513032919992862380089348360913855182397746611181976720498851872108041870480833970015084931950702807398828706486271734132170155383838795855195690027668211008108819801551744611553077792457969080385663712579215523105844715306722009584554153965913486440840169537290876873637449780453792448434710459853427514306386829957171641178121116010900951076415204582952108485425764428744524550513538282583616752333018688107147931680001940802465829593418405409300448473952682993164645383901990461863388904908276345848780345583169730746198997729365663505839738467397693952973285945519190489266909828243366868427422231928767275642274121345838926387571047780835794005194785494324072537947390732487852738584876880152930613716373400975135154759097477187198851362805380962864572058908485608817565911430547814401347708221997520049090421475821993723094660662137641107431409582732827193894375486861008514417593708338539167912697701590609063706857541228658584233312510093713267788188964942944194784382370717784090566418048223678370906731235040856854218090028176533511802687812122676731531156794234494172607292231504574028268453067178901838183588354041540174771867791357671210897292714599807240747836851192080052209596992657899131231791826367555448208375046811506043681495520533225023630950155725882977715147274167305346331028828910335749485703772713512363369569424773286523596501064797083026876072663147414858314184127334659388686284675698153497377161951528133859254173819265374642506857169342718545959245314290147209106459246933109306669613231327414987035259812635850279554817582077064897821893730751438938493233732674526418698174539960527434243388340327995027939834217387164081478288945681558690849387866792524020527161153864961681460803433303857072453755379178289948287167248113221142667890236633128200593119687594058624250547927807672726613666975443010764607668214123262642983906206259038298677273112174879394673523077510894055788032231884902705450128799628159560540997427969121481345484249877883621371641489818235951183428879546393718278655258031446479117102151156756142311497265906156821442893257208608032326197266706342919068218548208144107707939853386453912736160216047693809810227430310714519648442739509443504197587568859399532248627902269745101438454274973517570963557196249236028690401092865912104334269336886259851549898463980827817778185972880821544448242041947341638735170079016916170696318819809310214418745261200203664602712689445695299011825846225240797809178312428467001326893663034719842780081918235016547726926926233925805028309971143558680357990479549093672929665230301179059126205691207458191072878180283978244263412164560187236054690703409405284595238806771090723261055115238294371580270076698125131469937695398358509967848526641970607498411200880238974542073141331066720556339578134459837980598520998903056938005553594843130467143154691905651672954697592639455610936740082531143622968134309661277478924891236984509901536328560705943334021003901453951009336500346014755901132752282041803560136636706222000038562706989324841059534897407240585962559067885769433267219973720102866226783170652465637842192450362316086724876251799891070601295895060974560394050900004879214534048656150019483017277348985073748416682390270004301481294162429964674254060726444569892407373148792188265885524815224251583977340454901096132057690648244770109341826190305205732184057538955353520144199447779192925664063217941057375194202587550881658065725951969542006678570659916376328486267730570877591308741357580708804297394553452716913007864927269297372830192086307944303104592246422880091463268570622991160958544863725880457364707757611141963323801313713108316225738672891641649072902238117890687557788205421990057425741605150430431556195365532964549118167686202723091428980597588556190801532820793454450890353527123639626401003846771064680174844313498303366230683865565586494746473104599689396338502845246541963215806359545618876659634200581581934331091957952628161790222040407437006548745191835455424191314502076068480375233507588724470509136867144340962713411604886155633153169100352866506959264524795226086279284717699461457185068652228771602342518335078219206718481258480488403013892880599286432036339111163231160048526548688943348039527229850415115810650744582965982069568555621599172482387342213593255405611264476170053321467650347883225589430481206890712592995633428205342742238836038392088179820673743628347284678784762798920118887722370532371340640075253752127820522914221607602171093062367670525348537369413059576415353724608934519425695338188352238361482037454557319320541160336050827664229768579936178845768885464923459164032026230780002518824067389476061187911329133711460320549884149316621490183073285888664848232755646494478854626527998300585307507523912906116362526005930516246397969466234058929210135928524177223977204772364570323872985495406932035358407829293111706093054899454454408505281600282752425681232745656932864979494672183849369133117393849458698914818460853485597841170396099037034138392221276896306761133594109877162321088847208268271237785389374703032495195136909821530760469273725322936562066054794658769708878299049200276019270951320932409950601508176160130974878612637816621513527142120419861719811875644928171905038694277632475225198287845663568336323215364292558192922367711058824393185412682725426251383779535067721668083981446449505193994552599515643310708119498983930209229573077387194832952865680785363487791393533163524640341005700194312727723588549300340443485421794959395928175991464901963525409997616341898187143104832766196581678820125609458369495667600537117984118549343581713660878346424512298854271871823200306889958492761738694246386661354186238819874225224385424050230878282607101868673005374443489433084021433565666962456970360695722241832180749697500210032259806895542143748085285819203154964516387356635643516589714093317554562752392267879733815543373624879563363171430506122116019614115091000997830099713681957989770020182735475382626141806627969453551838438824413506971156250922165383425649966237944609882081308959150071821711987608117974050722127478397601009650951783547276781900331367629297071310809915755741049266877020356822043840180239490474454840442163299540791162889013203466754046054886030608612662304760256989920062868089943169109065244451051956766193704315482880395836226587231502911981956029636081013429428869650357151757485654628924384656173064573118379697698151659897787051947881763057893176241191250163035207741591375734569635138662261018771664940351452243588027139452606412821143166455084790100984503030513664441440453027837831516637983848705881694652267604356892010311688388438469577979080420177656801661298807240781843355571540166853070897452179214565986628862257454280990696786757873575502801165924586987201034250757282623891622397962591488767007268717434840363036476415920379460123862450896887436208682274615000586879170567917626867822106249665844541140418832583707511771568867908491782971389297304079557343606025407606148939557532693966531566647339771528906032701025121377081593787998856075359544135689103282920787949955678934159206654625703619745682515523173219893818743800282877536504092561341507999326113975979451845016049144887918145075037601620409822900859621437428447883353576605646824865265915254074339741915978182176758664595418346413327523956299294943767119649222242833996748528047843734525257525602911355861989776774362050109627611277625662312654680929291887446440316943869176897540219493649898343859186541475295444185417288900037110394153004001235376122483565335215485565927569395751764313234725285591810570431448894176999839856999883468408043941920336865821710636551166057377277314756649300475323508167180689993898718541244613609110033136203486604914368874346238758224257853580996156300828965293274916367487528555469850829607342322885127766796334074595050432171927125474121086617407257963184972684146771531208500116073882911689322992300347376541880130832795869636227251047946182760521736630705785811412910863136517641808059968547330920117276491904022218855458589340469851573411995658671545506234030543566758978891336923380338826254353915434582761214271493744796515461725265519676441725264318598982786364926302522889819566178554927721594504008524807707929636860612781880082893068782580917331699641391273952621593296076936468064932519085590061167103068811772017286636601566303338990737240695059004706776236201125453735260451484639200891109601710008137673144712924093692381720079885054170596750395436180029241450439179916091168007776920393662017092677540666597375360527324873348235715632746704473845347397501179996588658014462386242091712416585121345974659807536098452315463545378578973591618875988651299104190940332952192905239208279708366683244661605311435946505141999159454377261256307254051645980720195432093014038814541823489288014337292136368945097250753680235151871611959088552126023610176201996900458270180233953011705706031061032877489020806233023236401861995123313081394695429103459609197374965497674981848302167516927564761066623339383135903940599282872687053698271348875121473984133550971375333773725513250066451700232181276890489047768712889397773974640406676420729314283914969773960755815707649403795885005576550857470164423656012852547695885527803273398418171123877208106538064036815123531124655284692128119445183051150214284589983621736206331047251882287252102149686159668358334820944220419020707128946011050974279891200223482970052298778610562945993729832599213400355120146519877086598913544910447149444770034839249540450033630179099571872004814085367923357750560341453884045970066019088273188492709455318826341953100414781596461116086723173711776967585242460338640597218481998018853015965527769532442377502059241922480017311351743000652682966111783152200021558017331288399267480951632239192963782589878870812599818677802677219352048177100703725685920990684429308463369660675721281785570883939299169706401653990840867669093213280100307439852454498884938265161830544542942012813586658799505384633791077397151945514607419172062307941525163386387455256285678640431873102677078805514728459679278813464321106116663589440486228599441483862873262862306388829553525326417029669762952716158688460788226805670051917960751759862345549482903743428553869188293108097039667774545034260206842577899095733062151194657788685370724830248325110747144012490633717407315538462099760235276663142810612896554094749389497206805888824649675210578265148646067352892179234242279220946395993448508956766924828721102533248559608933892088763058170053696583867145821473576846196606028729635146108915138468910941273885699140150946515108864863172009735800520243890819189828916352281630656499194153156272126469400661300331284340178870946632413983619073235853815213077191688182561093310778467861149959968674431557904545627801988497968467242304229580623189746580277204056402034913690554475149511139660493435253146513518447225112424051268625333737501933169334850026154063750397042061234348482244234694949862563030965186172707768164068161059380324977061121157125474925644481966472777623650068740396504728578303812803847572071376955674371878100146109532152881270121833531489944417096987528858169827547318921203884393699494031953199611923429228290968354462847161931300162057484379536282142728452973363606207335471665602023642590238667016947705825104894113340330431762390000807993365134598469660307855516423767841357492142980032140723158763578570256326520340419206294707068729256981600478622012032543161130573583149569929112112868052729313333418700935527586692916420577466713445403004185185073960272571932784115371836928267506809295854593994155229164493904208273481031809866771049502391622673251573718429428639960424362905685072018263150953678362163628415971680658818808622749478702627412840323507849942354569416009177250671920480845817177790081244141225692425478756748773862907106880406854814383072575308914558888579905031653861619988980360022259150803221131279879319900224183977528066768542882203403331875805274178063943470326336816653406633281954032191053704740356901027339806154508493268354091554063356746245223918570244844659868273133924617629611712392006934090326382461349598741812815855765210918140180924442254473108771094725916681157320109667201436627679136168081403706279449104299671038945978160667342164883678552328878496587845745890291837671095463072290404121352489899001169565975131402730332597181501256762153169065971857459304844241221678484160441467997385698763312393535457608162745341942825617975265584426073992170740139235029033784175658433694960074814745572792352440498121946180317180911947743934810421211585989496498835396774594938266340764872193886509633206168735595120287588609350525379767955460189198711331953771067372243399981769999581276221375648602672467181341012940926178469596072997832909447995535426192611868816523939072001057531499311094207223311085183733176482713433056680579780355058913977993967567377738629308962345528675332313824510909675397126356729390997566870103318135840713296516571798198488358153416849123072413690197516679511182164021896995236369470655159824107796952366279440723665479071891837606130569613405775809467986225793089917388670056952927882324438327079756798762906063375911811912760855665860079005566037526698304900417758235112263751031286488047604961014362034959837469869054456049112381932931245740305811306511902633764155129817246190034824391814653563272458525928768962650444078560755749190073975216824454349315454962791352703463154619398385742956392391314448562790812769327680678762535029258895888297716739788840159445244950873919794943935148362069087530148035585994536824262738943632727284027660196733080312246794219520557699975778978854730441036090776848306517717880632598323756710107934706426521161035147921755817308358865465934591929379946937302780010271573721798001460357193426386002080575734834835528641049345029573309237268728325987459327303711661286216672956605993135987349337484980658452102782796409310776775502931210112001535327849145024193244364566320216268608697842981841797491675278498826550853817345132253520395721194135215459692308095564865416721831233071709684494882707196679813956716051059278172778114893693976630795982400494421909600458643961011994491662131227863743729017404811433693744151774463192576428050379463769474842851342335639755184021405726982547708249441943588489542236100771352610444713240433650403178621753052954284759553832119944880585362561761380941484233125944269547957047039432106790763554968005999889054051063803724789041427101414169934345642391800956103229665655136377721662915619408429115942469127099952396778741173781507542735339490203893373301167526113941243268345896379186808202664072025219070630369471938612364501203518128065764819096930888693056008214890367966910356918345288395162412550636940560819220500461371767133644673547849015268190034334642013333568880201530800771664564126421809874457188436277455606477040914201739522425055854517022387753167244844756520857207263061769448030520897665026142476660397156152613525365032297220159864888188714729232673436967181536006322606243723735643995314882881961410052851176858811961480641631232955900297875147667556463772694414266289414340022949913234778082355549672076222140866497052975852384845366190817235099370133319168423228120982105502738524220287973458386165847698501152795150979829284381231142519849757077509001228353087220438827573478758414464973411676279492524079583242463501366817696638948120712985749259457468461434832805985934412618254517471364798909530643095652483640203016668237615081482016474981923037783768836538815030401554033020043694058785231073292218974039124415758846685036588654637517197142212732878758975871780486184976537329295448861718614758790028603076751355587462000676300981257190430681506195307998702099168679253781220152906111755518829849859460271052883455030814269644006003313237206637234717993326937397076089979585501827943457175962305541797432208636139896300107909065863125764244076195888743424595329375712060420087215959130665680329879298234115806295529732151211557071306203395896261187267996035542021186877726333122319667686271155747797469752457991540919659980791420150464035321784032491575104199564575967602847567825176248004005906456023526338643079318085307581876989737351344449501403972720880145672940716073913317884575499194017722345600753333550502501747411772824830043959914888602439359693293426350763635419367908741701085864272416858539085601454598737623812183192616542701764200867227967527182878990979798138145874233184812602046030458356232487588893649293622420829181581042730151248790783637750839188770294158152644309287735689787489879665111994318421515278029105123197437412314358839270412256160480935307337262575278567109868511330639024252587235943104217007294051543820530339408431579782286650588577752085338196494878056898797847534869819817819070506684291665903539835650865289022730001267213253564100484310963340508878772167953190552698182118555766389023210094751179086849734751499442149472252489606946331115924683982946769726249385897106420416291409510707337283817340760758929999854685636862963688825207211588714084057288465240492498922932763545853618197814363047896815940000384650687154199774404488498664986888005272899553389756594181534255295859711848488623210487062813858243414993781866024805822606009575859793871976316568431055097688765547700204431697157203977182763730282812800261249958256383140170454975852008462944557435505696059289334154415532813002099845913172080568309789064092715942321878625720001716966101324759986079114155909319208480976861231524229092635780456191139524924454845957412431704278763990626478247558147962883745974290268887724421919490026124226357507108895976425689474868067844771043326023451323472131450621870876955744991922945704642635257377365691700232132765045324046699061186949343544578580883132331127958115789013870198161599860685727095397915951903450943118621824758976313439339905725882899701579842548620203474849092946107229278343254466384647969006325251033628220861325774006897674233759838462554804440270410711480563098506507592220775068440611930791519080664439609486574898738471639590463436900956067761298468984049629406023982930107004285796581353057244156694539147045249194121274261679457735840325064097528337278342026174665577935897734335404274587636100822157825618695226317120779201821844606020306690277686487090973180255670116660730089854062945009962403399102148734356212459376025003116161934259322107534135644365408008878034010163109693708291473112753895821451353325558019995610177843383624471963940890215753861987446973056432280988099004627444227133896822741191781798825516518917911816182223016636059475695643154785113456232918080388260548212268975575059910747566157726095012825204665293389060489419784726111274977394877029458886728671950671404363307514893487956904391232227348946433358246078185174540198683366443785896345547657826661580447564518242371779197974944117696059325381956787434013000674610868154978181708514247562310432653585911154193047556741210786418602160078049593678119856472869078945885851367548174515701940230891347726108315614985496869146466781533869709752415428542859266541394174402361290114896097858623520223863676602345473744024988640959370189282911060454532807569498698723600600484208262284661470786960190044829678880928421484448319934594578582286968763037249357298654061708037044106292538410272612638262258971612854664908097912963504140695859680070699817987667097544909811395758819797209521910655631367984210458780189592058047507316718836345548534904531933903938646095618262467547171124562974544408773254535597717855704635799919777474950464882728048169348333574085590859282557923505980423782658207075080713619409399406238461266938378038882932179792474357758875140282732962035450521001801491513801418390352634905117807532970634630883023607622154168662769989202339699682310319379788919780056735307296982405845903256412384682383902195315265359644515532980970305076184950381529286378623725025290522249019622621049866037078624218509946477792079362682405477041650443771803532733515394815917628086362766379058953995484024133945816009770493525267009299046408017317547383354883876707430899061561962936443140966698277765851890214110738490414648425901315464086397817165870508341873534460991604606273890334686200551522776954691802969006975181467398386946829725508372013778042179802969256567540717684000884550887895179718953245393240654825169471920829787525510167636465915260595241914229520518366603953764377832432023370799996129068729244865914157330258082182282958027130682236874594651959238815768449250722609867599713728428636510076053129395669289996810656585115274021179180728323938815823396241897342398505144995692087426737267105655438004654042504984114056541413942567490641458672342659954764073880860936133862849398227136960050102477768891033073424940982027622708945871219947458621719531528488946533033469279441240990347020100759025300281278871527906638097727529198338241428102886810874378235846367522815939919771036012447561783480995667369611850312328120241942006139280647367126301763113533472084853053276982395324755346821887874111163626729942605085949271778522421537447002261236419909690633596947554332694629525273471376970379358078097687219601549548800081760367130367228461577291376876771732414564941913318946106146964845398816803482847467557314441954848407592034669775233522571218698448816678225739423232344679028664994060881652280666289034434251423580989188873859192738568507935191884947680344529469661050707515526736521423194134653344353792706896072613351786332069670987039200852401089468543343198700308809898010519792142311620710718967834640691112801738517100420618262002598541426445127664990431464728712946515459769787108497626702136487388131251920002975366831067635273823639278936438140154988273473712672605605292251784639227383576138164141385983585080585064078726462193185387187247734890912968684708848574951627751175538556087313339766129940952930122354192654266384176158999135907981113524271124404927714138128104766873389608504807594241006832702316248366731608831662602037430069534752061494279288002525296918178222166729583939681643783137081435748521691643490481878464106891684663360736096187641246807487099362745023706555098479581544698763075521428579383284232795860882569593549434276531831146708950004769056729075131112424305457252187064940251507354971543820067202950435983136287205703541986729060983115846583292813637684029004822584913687277758824955254014242436862944066383900802099687754276677974127834364769020200977207020344414674764433329182376907487430339538027216037788964720171620026033636525240627409036706982351595585779769609770014455975576355997209350881288906630626641771947183911598155789929934478291124940188344659793456450966576755058634014642985561544036722919931677941818056809347667495460635121880280714190408398285733026037321784497564528395336116815517721161983858027398295900847108082328432004224948813195763475475254646969918000485894436278716574135880122174567091356464864372232093329027321942462365504689093086925920938687874211085454084138418630146604862649254747665131469076893391388567333504033551670329790793447597193382322364854597573323951084184290107701815127017620183273465206432201774219963792487976005459322535011927640920644911270800069226502039884798184076113324626315165641276517638430661227292787506206411580668022522100743123174593029783782724201078839287792178720372840739119837614273916803681206673327066410530643158180986374473507553447889384147845056862184504528090546758082673656257905144084417772234728222218174127294337338090807858506297945834235522413090256493546680264943347579474330951278224826488933199773736212393545708142353269460889555327664771776960086018271580611877753460508683488505234828291933420362021835297206221585847729866496943950722853237900521344548368317064055050068583822594393388125870231242744874872634111934597995156618803993427269361068429943241583463180292918597549474877088641498859629228085793121485118178745880130432708143778443225338544463115011305648700762207140718392121636187285877018686868366522393810982294501190883670628111264232618390160649464171569915199619301772277317038887638609879978147139098116711129166912774139441476527004238277931312024941817368017263981375098992684041624456283517499884850343962127205886816027079170348709217667175132877193810791555712788976798065584717919502983087792264465975287619098886362609086653567253446734244815549885571931034682904973380236760638529461069264648226964830150913210726126018949989870395985258301372746220919498244898710488968359714661737228267529220831273447034577295832060418188855281912358193907515585821644009849708862366836133029423369130630630610413408074750235078293834023080495239061334709912341878262616737546456725354239885461035147227131262884698965372669037339365750327328845367635067259631688763810332876145468685049818393085281114062206440068701726727601333754379543958575901998577868848501470636124473293112743697491953704466714308250407144878560732651866971143760843858029090327233271495127202359378409669594013826582592346756481229088968540020808648489636751254971203584671840688370878845597283232886237465391752142760351377277676537886304436328216427581272618753716151089883341253600177930519882742325745094325799392927036549400008394126811062588367804430633151731009150536230587890303293260408725793376232785301291306932580251769626130762365364519747264284864792400836690911031250776576945547220821829313862831728651680432277252798827523555141823260919897076587989565525082975155203577299991303344904099650070812750723274041381743305743768168562824151846297266588844137233328852578598624674062036528020185386504903749835645248850002861243140247634432207574364760214273391135901763610208606348174013129359959818890187671967206035342306988526653225400763333715317120157200924553674366846061456918909654795307616513479955537824276890353442789866659382799726085164756589623216179348164983098690584374416848100790160585649279798351166580500820604368915741208324888799792246096990690652697547165671812299821172881550738182156730541035559221580350212553411164230095994542508589461843333454156188517176210318868972347333469250732634972698233423007651618269573850313211252916145790627169587725238772428139900342643269927650083163413833049955121401202040008034361132494108634379217240320185701069970981670675156127544154284468268203511171132064548389588678913068980905334016225319611648892598434056222611104328857357628519434196564473051029462957906786313462963760492706515090437911984465270297543833411687156743238417914926481101022285002508394791140563681289988808946423179314392730544282678920228101577718196597544191495942912245808756118971202381361352554643063250581730857583119324269884229181816343106797861560085287309364725696931057370757765393671113216809057740890969183996096241719419908698388766556556087198138922199901907926444157036177109462216851742239303988375883962943432018401481464924883978005678205651223296511004807592446630559300088043951277539929802142302202861993067415857031579782372437234450955322573373852519653132899038720889329883968877589465351751793734885492570012020757430731055528132969563180686769443886069963991485650636708348906739246903510197316292576422950993243536321371898379258190476090035062758297511292348462345083210039043693647132999444297773279420343345298163326932003051007802408473641797277453082941558241407031540734664315864226044210630016199378592017680163339403617531590641722044748909249312226041378620865907175017147348781715350318521723780574172015855165396216054590590573775517492761715591117559277015690449772959602666210365598058139923399917041232211210954226992012310124409775808081220322924316799205175486235973614579431881184318257724555613565536147124571419050887720271072177214917244290895944969920309178310169187192895852586592182796328299214382924677620999913550608646208846690610164153520346322740583798177734364074163043586107647617527703529172012375787469554337389658990877546022445748105227008255429587722408544969120128219269914469809090875382765264806932293817088485181520286466118866678681941538828521094665513848039940409571044932257955478969343421564514167882774355774803143013590600938446159717698464941454564667375291355913412236609249076072934178625258085100508513302965147874576727380485517989282323964200078882843227804868197008435425535515639520902910552437637009362993932598011093916885785699891670970830908892128321312325520040763160636728555921160974204641985046627951002415885494457253037686112312634816260247491510947164752439405809275109315822772829101297707591999736632342849053469836292309748817433080521344627303907086444796681727736630458407361543475188201134625228832220792421311785153298012741068550688157880203063788322806037086537637977184552335362145953921080557038383684459563238917397446158230279739117468868841754537424102362696639387598366969219523036530238944133083120651562146522771443220987038818362677393220672998328145649238883248734133411704354777816353287955346748676321193906807885130778492690225523734010244416563605941626196458974273651508933054157544261821101911271523485801609173006285451697453193231251879694559576663566266379015107340206753211538246619088076859531278696178246841191191182272376001744050355261390150373061229274207174416595169013724275401155421951772635950640808994458736985808406713550466155913750815278520855970340640073056922581448469553708248081569922635967123075020967017263328611222597694338555454771672025875689661097849739276246381015942422984559749952307966125245306783797245064009012988474906436224727477054544231427347350058315688076661803859653763509453908185792914762013512978540027910284304632966361357897155801897543484582488506857600161108796929996191548503246335923471612171368969382938749342347035100305469154592458595737051200472458903922346735842278610519346781996114614655997415030264831877603378475283113745613601741733600872666654018771267608276257391264753615754400271468777519333014454477114698828651674244645451198364968223104828950172759940735685035789887308538400895931240758240067988204376912022653260794577473729001617176230318049721088201834542413667961333967271746847726937254431295521707485455731017388474651663070554284103930922526553395394267502599330832349066473620789713440736735748729447302601604592388501719572733810274912358595348624096352621582500744638057845007092632262598963102764453801013517718395148506001713339955466704878034930578837399466344771702318239379250652371124876643069286618976177816721884356570125255430074668917340306279801277789151929721619076758143013939178982054037209290740692085677282261557465772795392834263771378771367434859013591091277335263807294561415011234161970537413724197120329690318038203717770769011110990525300099092301682642441638510656192106951271727059414578698309604597808406550716273767195522366036384737664240403155738578894925211833293162360520998939012847891975641912859845262411473817851681542263015480260640925391829964584977229576283930986804635998911586247826998463230388793766897731197905486884777906513819156717103319343160850225756199870502140411311425112783145597873064010871345713725850634966263283022243197803023671183243363743217948603533976249714475584223527634617305271470691022565126856048647112509164259605780262359596511555462367036558424376396907096472903255913703928006369311752038379177894057567921515440957952006533735611489095883498381351743416017003201152983587611616871201336931379432707131939245638821591988477929466690031264597710956674019462754964406529102438451478259979751491270329336991946850467333065276742859260794670243316660132962867028046504559874901966909610279465307111811633603574253046400390207240919186205545215489628125542864587101124597167880845858988278465725262943751655472283088009354892068932047900058455931599144655015407040642316607524478376517742971057704010845399812437081756495836533421886310362988111461337777594056384905346971428249971495764587304091297015358882904178840545034807571703494145524784544744132282824598560569270746210274678902577131841053181789218977493017771886214365029397357545072912613048252109770032986308550976841893531706935581070287832336079915479200534420418771987293830618166572202842082328812189055980468451401226453306807921910460389407732947528782847870682196988601304080140165918948909117511584586225380022162637939959989547240028335223471535889021951293024288694602346865616537099504162106156966775767281277991923523857423691451758676752924224033103649384811120134358124190092764459809138291074961973744098003929377628515882395813856577675014700817319225059723146582509241457945324615745474185808443470212986779099954588941364242887643291456161211569765782038295695705715961989140597918700922430185249734981924303193037775461666951131830123519051827429385416786928091606607419471390310942540092209334143625526730396700368870588358404534770714331946259938726292533983741180986014969921960896249165840936522968295849567293960426995942024549451027997818594236159905995208662385684825053811636637627615661480983772060128868145755946065720589435110806828696382738013965340102450534145988923636915629874393323637317412187402197589004504151231430688263765908009334034765740542757033127770428520067835640010367138673071672250268533090022666430076250960294935376692114394444121335862077219222084394445720519880923731383103139238394060906686092417149993082170899504590560856933530788487344003764918564307116206587602293562840434011804066043407962560739390076017909969094111490922223462984237619049472582813064566645833324709264257556801615554768933488443917109695088676929423916917253763431139984217619787860556576460596402452405356400392934110935959892279718873750629116444677693485379353935011673621102102621416140900857962819590567944350662897976503114424494565875136657111344079340607343238909427914085025478423051683551369518353829470378323044334532198512209221265417734270295905323955120464734715704977163028782358266515664425792249142645449312999543202516757617140518002218345861490313924474461284438985352226522312063440821518124167538199908764023717413157889118349638271005550878247045803120261264914822456341515925999656026137464383614824484435051701317252466990506505212485821351422570191285157471107230360872306287108908166033194825026317981482594673890676463809166447296819810169286888998512052795440127462971225277739834579709846988133787201665628393185831755359410314300209375717194118751775647130325168799633006171400056729259363358301293522954118257081145047976275131591541860616237246108811437881575524050784088070148392731042868832656635888737415039519489611444861710876468225719008500798194153018552582486242915738723957801071384151111861253180080626866389590546960741711489049883626184116030404697206294479629715965801288637485016791006366474612229165419240163160374979227671749464778502522896051027968994528361647873185410173613164632699579031580561918054266876890777785948570146968592502103508186294304635206613884909872306519221080953610380309966139857817117523301130819321206860227133928717754331626359528571903102761817414492411363083043648674410148058015117161312021070941207511695152312372886833620708792801267545615067794456004728298947442569602122259307813549821103953435033989080386176597114795894064033942994252705641444447800206065824816782147995983112211154003410310834784308832260435836701458526516006298871555126450037709655528256369420739370380840258254489031220358172766489008559163722616678406468230870543465028829436366475744625558566415500020426797727583375590909826184120624146500715670660612191971258128459123203474473889321953733469269558954763583672154528271302049261060426750256899244274291831905111530477497282539314210670986981411426567666544551800308188935590066129203922727817087952093212237503244987475443337165675959029359538521194796629168190690421929261348100306101165673502846373457239791299212729374833060657080407825565453125303140471538079316741421432782922368330684891586154735971723526619102785344346533264411283883740728637757255057983130429408111366197609578541892636337055264585583719391610070795353666316418985411301547806758302024821219404506448884269756956298349330850835161638994127421084277475400016140450417765822532662083439041271615532867722825338613814124214180977324011592863123913526641199758605379854048042681480251109326976970682733131463016184582205588931651873046931391417516621963315237788403867524982201869769393747465746742466750469680000094463182241493273967830014480657497508670701909009354462445402994738282789976046083581123624360527680959678633307730435505778038736761338403696225661803431217359447900206394798818558435678209464779789499277558198779104270721554525737590298117595536004044349596244338753267238690165499161040101229278713888321993918264242167243946928655829638005662178827396590928138117914370668320870128646213497268315398045393393008743181944508078067917200298280111712506811659064082985090934427025954303550158231588819180494381571304072795987683742872193374085242573158036641644938790283064294819247431812805984677445101815502393545194340169107841469292262060750947383984219633674905811855278739576765657442746532588846106475107071540688721205452363346997041406291891084178844859814707719442177149028239124724752129601705879077335276084641513096498843470438964814794421352451373195557290262576160281850679991326194641855207162215451669448618888911283188904737763841710951035360277319180435453728917072068616202921673236092041887677899139574294633802009546331635052612087041111932579409185607631213650910883797892103506601904501713709369539366369285602236493020530044444927191974587727346913607328869791881981532156690267894600072840298266095933284141752209357768818774492008852963023771975777874511648984556852645368222776640394527020272589712597777488502467873285877208821157408659457906543969913569833993484801917712676652219147828908492560862738117005563636403584982469722820828084467565612081335077938603782120765313000413461933437157398067041906862564402832698621312685325810632762785022013555486884735151320651418304556816162978793029759384383580442577136134247684761675354275277520507777997346554511706025775450148741988894964916539302197967908362159669780346833317900686426657922725087744838975135095917642219025003952513111214131029660232796186378828497989311441176168109798367677586566130294303566553809974434722854121456598134614394006267141869567484842531252315004212371028141353138369407508717133018203221315234792902527666313797232181096241241967011673209523558220747781502726854702021830924754967087617177306533324948129896303305295918730382018671060977868738343170518794230931233239712693629469163974848511080397469192215240058616880656115590054767964949978602233032968619440036047445705416736468042313092335914627734204609688520300143772660127209998617559641475144294097379111634082140089101684194411712645243289213941664054803023534353991152295131132170153307345889203454622191896346273040734026899195709402324532572563732388632866943821326590975517041079645560832079531942264368984876800040008257006160570793588207624197184751176124560173866513909543305342616466996834701337034529907136766796944852177785854957695268252804580228936987485933565570936410115339788598757687680116827030907500769386644038518210498731544336686504837274700427628267879005764420667560772588001796944367378063047221496301107474643018005912082412330533774981262391951854082333905675770744198127235720165380216189622816903025019567121969793912793010305677062889262309326168516822927974048659175122370516748649174425253538286898373522033963897968337410142566359672937203210396059834455132782012936299764887343903426565095012732201023459683187438641611918050681045124422723795881520724398996328490400464279975648701663288271285684409086157662836519897239787477878961577900240780236079602128648435066236841612686783378513504416250208906151359877404776994227242623325240359938331249415527336446490650078832547113984602694771755244229098139339320817358265524866398913254927886094805819918301479991188575461040345539086158932162612423998909819284485031784969395546681171734994396433681701609093203370595245831458979265632882497687684418566995615144756471583711084948077011614215996547634221226643922447506029985795108837927867385107964734283845791697253066673641893080105006611519458838927016444255646491210773537421226734848327223241937803991139288687397670538313456909936276000596814928082995532562202920618760806593081090518861725690163571716964802114008581753591812138597032120951201400102100612803915225037535473529461881054078472743769974196797060643669044452686262272727681132922885422827356035810457738825307338325640367216608369375259739392600276472401935463733377257702129245665770471345492415605078024265506241737802363229121114726497814737181587230080778608541259682030568119952865049280920063749433395146015020961467119682254523821372254869221019794652622760381693943156877000540165733296219576118308797055157426419990055917610128086290443065800670887855201444753784137206138144313672266533297029864828278364130120061887505377417243188773604035455381496697695051571049316689215668340662830022195855882267725959850265375491519890963816754550594958942687433494303623810456420347912878267123089618006589454521067141260826372350534362549044757172810544593235765201695699337866738993695172890399875115547216402220527837998985856937403613980273324150502879988924921605930560741363831079768074310979698958371349054914895055279898190000977168689372984677800931959999114916546911767920187018697548747109725869165258545724316108493870632585585444981040224094899867854679709842448051019861141571827940686785151288318380139475903725674298206366305119268021651832899940065479726479557003641387514697424721184957142515383275412576123595444016959659358500730946829211872926570452846324547713518593500063049721502837233398224349431452839479428025763177700541868190899785645700402388710243215604025872409794731628261954428145906174903230458912539935944043817781573698905702743123711257649841886015163515553435331515693736078422577113418613680406997624414214892153049107881475911550874233819822430345771244848916862806562087896861917377649420382931360422900631309764624918839251459204804457770100261116848452946691951406733443926451354220853197691710307346455585426636232783137041559230402658846150259914062100896312882947891386807321896384048786825693548208422878290041231333505393692752845157542334506512326918397902959297589745855711209371041703131453968694976288546203293848101045296021977529554541075108597481214124149564013954163028113876200635897032157922408985666987602541729501542362972397571990174950418907763484964465956615633390065997135400720413870566978375424331333883923830382526130677089726303938420312051023823532184541894698637399736481752489875833366858390873258862247406581972194117500632850961860275851395115356668923774756854760802822365008823819984014075629736790636889507064757632795125774885758083463812476542213136100558600991569001301262874846069061869070663731192118504074167819329165836659919660252984467275716997706765331906601163135099324389683765659755338591982293905464430979438658641434353319545637345323534416995976301344006780981890685340110525113321298273506146492517367147262382456873633003839086476497356498133702451923546890764339527744999897278129167669214452539021035985227578068288972871099029714701227086627983178255784758674833689783165432115175266363528602125754347316749194697219400776463692510052470922066890614163139751013653203210025620659609021322255627467996036979427882774323004301713707909497639343770397430866272894337259816153003467724827992296128709592955320369910146197869078656475071154303376550716414004844303203477786258071044162145425268267143063950907846827588194971553200495145359454406495026325237275684020315277224881954232685853257753373200253505320263459703942247817267073364994350864799607911712646240821725656445146984497611380840474382624988790698959834198139292906249932158782411059266383431483607791140542930030169165967181051035748386986013956565986980761550045943717262357176187595134785169526102624130068167232197871402427589312222438066961190315019049352326244005664132238443111240297575375075784357196189108398020556605453918714335415326918500824059506271916522097331774627221427702148965278134790433281227372781066080353921306133664654662340811229129751683416235354216549309882191673545809873606203108510021198905470324127905244148027322832704833798819837576888655835026130891557300810797109292757422110743515432131437843518411373128312062498142320723266915695363569441413792073757139820880444373785036541038357342659402801976252960666562862233093745141918976903388747353894994979491210090007147386904950950719980573790835659477398354787432788097359404341745864752803486989431463003377087906310465761983663817014291102941117973813289119190000124512766950660406583563955179669926020946147871189261293409879990501521373212346064286543361044415136900585269365968353035196620165347584517415630316184930186175045911326805687325748882155517210179424677280750419186087647926269125914473200391126440506620649938615298303126786737600223325979185306940201133721753757527124395692817047206022271596852387997486286377047403003241972752157289127431019607192842456770603414251484986712156258868053562955884669303161650370865988509941936941847040382038135003906471065339564632085877956265041043089083380707485810817616709663731563243763688023061547795089758067718138924843453934278457203317811797734031320127947539665612941064703167200464088491738558601779208624356792822386002617330717157941880960663351104251818423901553312342934187571787016550453011599049205878428673702536706699640528015521083803664047375905588974623459279761387182133939690029826658244038629353739109804176262027997352400766801054351419792876427041684540145055493914015442524220817406568472282206112584820592345329643476386686320456839733193726512596215058836850727571384299868453392524205256397936395008302509307691722033133052788482595811030515616093227470758348376838897423837376965758796283816099984987527884424861931169482471221011008536940578764948984574557219886795123860398403509592721671761740710121537022261637781382803774380931313560211100129818523463927856733487538781256957129490357039975012943532476739848619125928876351207671411181286008648963446739765134558909999366123707311273195644582806207717327730490847831430861717173999446408952175770278900249226029028524390743525098650278602110379393011206123347885730695119729454644136743550051386528074427789028371019162939240369163008050676246708835039581475005102291539401614138125589815657068191995415129545506933869161482246544277092255279972366947481529406601822264303800491829438383338917314464598174026311849183508892006968468604165397669575203420269036743584959911244361605664035086813033609765787607250363180019657712033244520356052327768015884138227123886533354382984122183367550901833452052489176768205811501734790938462131956644196591634365173348664708647546279322850008881271888328592458486181733576547869224494574235103605918844644896994864965494014565726556549680137382253369247151455034261457724177168987475731587114598868741009922293602224507883231252011340027123870742757347579648224764621955924875315660050212072807950417231362652701186550218360763958948097321087583089591410279140390023339074816940802579805525989212005573868225515229107017200636768136642206369400762699881510579643450788301146828991334588885734179290779257820963929691722438250441030670521208931802776974036621829415423243085520533682728158792568744315056946394185046313461779863383643880838968893880791512476726323776842520226292595911130224786533998846440725126319171150433648884419304533167030386990228120683503569644434606652815098147220971324381367327290756112021521834012386987478776609454855157754052346335205177244872482609486723440614708886199382012955682113555871903764172250708819169393633848258039975351366305948495492802764766572710190767555613364832337066740384775839283861945647540028378821990453016162292173470118609443982219122657345621004138126480687775956668005949636845695255813786464947357305247623072439567704957669766670947875993815652992519822872750427582547624426577558264815115966405438000434474809335573381164314073265609457150228718103317914006747549030470548784110350409531269099990854054416900522147838131726755059502788492187087507710117224558653582819950634727340413355158159579717457780392291224320585973124634776505754863078047133054641899954779604706534674879806927467346777463501420422360041648025794978234568081439332192283255269870710178847185179426397220266160034542779792626113327342308914439565595123462775259943585610187324934179377214713894210511738460777903577367570704039818120772696284062468442852923460735356325194019393380665188824479093908734013122099223632415539330703107354860080575642036492874424625598026357417956300086991308185826852328735912049538018212012452656915518248100335545683644622668547302211182860399421241814892543916257754416310758681752137000729767294433639704742839717320904262518385229740564095412215075277925258084542802038207537006989262132678068426346198264296444140610624251310814702537687454189608032568486689652994149890960782692204970253402732114820399422737489625999920587921083011411417790059684341364382329211495786238826709989274725985562883119395781050968342687950496000859846110584028207295643470983919430401877410375737772902727539330096618419790143132816228390042861140156455899141080911282798728005414803926041794904318524133080545737404834252324464989316340264134857481734449791319768437067924825091669380938870257974334451296511966382236028218310359026096288205879146935088727408935145619701970014307270876659575387451010709495274406105137216760651192186941665874900152727871156147808596884223669733033739701893145914441674272758516343228547287841195102831296660325479715718787721199295070760612331955325873310374932400326801480681035378461933033574130711899515717548819822573176577390831518708698084422584812982933933776821189665781933063463007989706508890470169390852215876231842885076048427424156740926986127688055769302582401822308628781795173823356320201470399358990948555493984681183421303703626597744093881656631581121015357255779058153270957299320673213592953324776248970983004839000189736922367497411304078610353944354000407902188679810210700865899393031683845016203523719318433030056867347110530047460141923374068084774102598967637377007443157573020385855274915636957955575368372739744708015642448577687426350144733440544195652236110438523369942765848546911479306192946992716163407736600604609465420796746629595635336008982273701799947675591625991200223988602314373546553933537344680391474758685678916037888560050589049848184968662462271141986809709801353368420963809287539663204854206382675952581489112878232928777370991834481511432251894379614060295288903042097692916698187479584537560074319578935742234068206280263277477815099732593577893179829367491875275022885309364563784781012810780778010860471290065701776015783942428801806022214880735447477966037492815501380008832746155546526450522389908552727583630498128863200174171560606895213946777853302433742034029239227264043640230215802320380653742139979557012938871111042921879744035903973769629486675619479307173814660592389062790549654917017658958564248899124435689047286831195238091838701004398552662248194555298872025824247865955668994820243454622051766918488428489684223131867772379559480196097731086475793450788477005566469981387971071317781534993039563631901416035072323413505999113674052281244937406732892422719229209943946591970164118730870122129842900917154183506599135902401010845258236359794300251569693275805161374966740867607735315457045713414142840734556423902690945860893668594293588494008714071409383961471309100053325047855015662706772790069026519035728659556431352312831136395226631920810610865255041147892321206262352947206022024154760476924181411620463746606668963012482728982663399462002209814715871674628136541314680169116687579303429809593450313646204998666391379656569068408192369473210557938952422802763526266936878488401079286022104355976044647421280195169254304239898568831446509698504636986545575919540777262220849454780438907892699794458231913362195551339848460110377381448353698403644564933431518314554838587227827611783093809642176896659329961186010782735526643037434300866129574504967926981904526340598222312203813410738032336531440713780594446017828459640016200172735632926547312775044017348340713716530554671082722033037706458670497956367216789870393154124052928315017825592095589750954798848026572056169936821289178636453688923464408695429924798844663234119618743970997969101587689635890482038656040437853655002554429763924978295168615555665600476856051710974602148897741796288837640325168992360978122568017972892302852345222379845013633473503310300523334378299134573851166757545776416409791297132260662061956088785137827168743911355087584559436273431435150705084183160493569303483651303197534221774004452984788695353629518841620225522642626065254796418527299392366717735334517060494087424386331023478874478956795991658944489285605444627121727662093846655537504484224785081380445405023673127626045473182762632055219493343926376595917122205403279770751519683814236899150915231860629536801542545307952270171688781054704334525782479850373611378011026541882375788677102201017242391086564679216398226824010033454037687727235207062654729708150186859869191226309370906950043966695545836561940663921016200089874393736199022091097675414701867881373266432950720295530911876607909718398090866204791088996315972177785143285035943689892512082191678019185334314770592056595008868796189280521850387552642919101801722865424563826229253784215146737780898097695158932765993041277260928908706719211044334773140162656790899540776590099571123658018057357427697122138273862214132036710381452835184329479050159795285848406119595341757971442436808311437145633264484065352734911833037973550123769175244175481979511280024783235791519129986125945296832666992098916545596113529476319090334098179822897394684551136949089355813316355473888192681222397800257406473975131257821463997474829957621242570953636986632052420517455862189943642932110717235220643851933675020041143895809437679917579076106765917994219388147161209801373171032960526322995070180275120994058503666887136152750103791888384089876126677384624151444124972580438748995972867932827468251337189496693373906839564352683877156167087314635985391996273763239728492526767794551326959864007732685301099099587104022573429848281347925526512127847378902728545597973507045998592150830388151478269664338859904665688751304828564515653668439822352969841819002986840943277976831929964456190806276510741457276855231052298743914018754791407877144682870190980323637509227383252801337017022907115369001305133587881337296965569911548929824545640291009912754431611601997871565692560643339436009482404780749072329158447291778295774157841180333879357628921030648159119978239629536297399808437106724902203846280443106746310052917643848611801269652213016271688473078800124018276560191759756393430214878565390658697713549699211763222170819213196535432360865251963291937280533247982856254527107442027360394067676053255626485251391545045273001769483079954159932838425444515695834826882262193126888981183973198687156818105930618036256789567672930927575790958854064616149432859176451204615008655242291948632082753219201646112223761964497821877009793031464857625784218510640466653200157177282257978808177685699032882935883208658764483497784920189787184231896578204538126530174036865029168400709811002744973192670821448062444496739390407187588257117122931403082527253818831280940165572329719911202022700035576186903046721113224582890357169893398333637712171632225901562794333127432032612882108407316726266045749890615864417867889566954051321771395818998429826963603012852865390274717719634453080493021416389103304244846808666501822589835894480816861523260402613757845055708294161458381805846994308671033969392510429648088247780973937743877307447814771838787437837542251317846837442374752126507022267737933357585668320858915950171496396544365077900443600489030507600178707751510214434711432889143281854717383106297825530275868147124371909334102277023362931750646816333985098949567393629550486367559907274485758030696892333360109733465999341332602390418949315480195269499497226272681679803405946190500902849722613984855478852726166486389098884566891074792069658900627567416993181796585393917051330482875949425535533050776963986262523782831067356771077522647123866034030552439035604976232811314591805767297067634769739557282585974589084636203095860011548210266203568421744028716050443264413050461305446673496749605091454700865954758503899498063566032932147323701590498830099710756953499445106249409053899382277770294363355810521699613950652939444702682968101773730554720348082705153026702081255783505377629519991386116912140731296298763911247958325237439744125872724799013424875843371741412226367611339419154947380641261615867552631937232967934981075910749794623031145857921510349963410685025264627497970662926540467049948510253037790151117009813510612517080722679494661191322738900342367366408043337948469285844086449838348991572279993520745795569595785982948819181957070395198621176450168859705598950407308813444125196135494610685731828984290281466913904349038112792469967708965977169149829584097524897721342602099961934118038959434384175657668991650922161603061017786419449586022605267990878548087046029442935198401307968160561137902182610101875695672633353538787520863171925375856877212732465787910882767766521052558435950449816002414774507043110883448786091055912870114302094207014159070324356531619540142807980109914102466729805801512360701679210001287141036163193284829551501767975936991871497958185774139278379933511957893807922292352095496504384445026814286442559305915313799719303222791689139123186072752382306405533812317810066234743478570491501443857366522384937724759478186328103835904433685721284490494937190054780146321628717319276252471915348843489603062167847357291784692945479762463302227942818332485584521941874476616625409832541619128081122860396371350583868710357422093341707250235048181987715162217796243044527499685102787663008610682659302621905504725852947279556160794782828757645782322832879476115646521587362390995409566976646563679017200456601798652608839144741984662789988249962359882292905769387761154111749897371748699394119652862986890789292197544635038599866934875574189424633315754324302599985003756901902577337554511432289105345446540471976772523413379093150677969856018765614661152119625271246232004455251482847288386216488768034282242889277849282167560990941765839051419643392366332647017235867028919864278188481233550057043500341608394956724114733217295087331805333063264197634834878906809248315491458435265182897022563954373035061788819749881516544924402787558137586239770100979190218525248088989936477922886378978062135764451279223004800594474475885375427977180667167689323365200189256105572736936017489088855747782146734488562117730388388037148706249954026828759387938599163971656972466099713490753500218507463515923692399037502550261131898343666833885681859358574616972169670797768511459518668841878460035781170550841348407798696594343425908004577523447932741549241242139752203092551211018643397527770086384524238899366235442973792326146048554205051693487551266559495624069055532683702616083693837396478949350083366270015633347724977405362105067859708250106500271105484079133952084616500501399082014597040241854610245205265409050177691420699051529857241721204053383757243837899748062784043554529246591940560658676212333733951637881015631037385073086780392175376375839424726786382551796906903672280633144108348776805634667610220162370289561567130974952173005768107469359497433992895093530637919273073037040515824502835120943498236009685182553470648564183501891044171593606407524018531129768233557340045874271475779860848683207827033153215298013861011351761018729160864010094804900295740272732418350402873256162454024152406059635153845872300842351129468065843880835922452957782152273156704473397655902074363562299159193459300471882245356684783468112056394574632582658616170630592799268572082097785637403845171903062756221597275350958720673553860212914113664645012940881895278772788860940891046076172336696563239265300569850710258169495317548722269465167143421746652274613317587725970051317986567707801740690609429947404025712922452203898296853394254070492859731644555439035738857780157162688723197883378404108775356349687050439142809607738082162160785834019733100531322625634609058860936983508023234661397019575200696198966359399109921460526963322402545917664285094223211971927738142334303634579334147282201740383796886536310143107275502092450983828666475836712775529625167948757760068163587085638844244377587395649827410805721719976051541983531344341575319435499303042054320235687838207956735056289825142243696675095174201432670989569687555824010046053065291258642460585473006166745724251525361759976051361939252791779737053013497438221184689910007450357763407204881212188168489705246488868145292637817233925196924569373432514003532558186780160117825436303325202853323171346375865691443204167864642522821987317856371202782051247809160368718725262589175590441206109843517478451281620520720278689566679908650592145899273626347023837240129636796421300630202022005466844057241353820353057238597449152824369910839183147415971218076411388496829141872517796311900467652479736696795173576112495987630364737100924715642481347699561724260260668476265465961444698261805634495622898713770023577697855691982645250606436379775192603565730927138988645108069229390184439255678768753598477004287845853627735121434651446608765459742206373900086717500231838637701625683968096941977117638371814948377087623071490015068796936023890598334221458853171360418601812930762324566089154298090119794691114177956356758858409847284119475419377925563442785469660003399654743096294707677781862855115454179611026878257492050183296699993695327328091875879274555687637852677124910374829699675474750091361833138471553340745121046340124311304151124546729972072402888734847639009831400129882835323859927805623126554003668334642868417735383816082498148830427300761458721688776779689105538596593858911020547977450280188745525872220846836188762504390394226647384195759647859396480983405533969772712147433423844208324843993604424018157889549407437973614666876990274856873800131155703346660928129275705778864832701455726979573854246904229793078871587703915699447688345532871035766943883952726360319169593572902740742465975185842241368565774668210244242686318991787642383997927688257910324214948384560792356732041637327949892236037487788106756853177429216058210102604996857334638983719122131616425009743652895760471939875600833394507998517245220915020590660085853248467645926874463323611344021661870581004637108451401418851243114044431888495286005386874249956590667551528217414928291155177738813829748534219980319663156523584170872037718575982783342703559227549350413585286923416877303847469535846027216688877197662942771803137543303096926320676771630238044160003510965505029959619182270995532591910480746957519743971315047998523637533282785011040410804220598992527690479960522578788033331994324258709632969427270445845210295506410067665168794510184529867011531074915275000748346334295352184768294888508141213827355963776466444287863031740781967692163008239482102796086925792995951926612493383345306220032706073546774349079155082890042256558745460641323773900350554735197316189079719789931794009914704422021097932823873368495921507796778193919286232987894719898358993890496395177447112781434990435015898219149473936460435272315892485988728895574651100431684075244936502477891709734217295620842533458441737253523475320873872429986891899188223041764215994039804037569896703160349651724217677713153582972561122509468827606487426608604161870930416681842203030858031473943538579200007945966724274188500401732118010063153296639371499376008124360622588504357420933465917552987887149076278312676506810127314215800935354796624454090567650839448604000596522504588006304313424013219913845164617617642079595159848703701682639755192846989568529922214966738117989574268057526212010339853069808176927721667951203848155815718048447157833145433684091900230089077068740962262426892926465768201388223551703123141854208933051577258700814376029182311083564768567252609469766654877442362716526678744417022963838309120175574394266274006588673982961783620176938153202035186678593153101689097175666573182325839460158100778974022283258426803858091485525181864361853555953760849110969973846953011574448020662086336669559874351103240316053993093051854418960301946983752066346438736511606695829074945508774751431425166447405797050643673400606757914870697544233854912785430737637528057250258479033317618426726053058564911280764369170914338854239925085756656764044438266935342480115664037888486439009597944716901599719513143962920419801535827099483836717898390148245304386065104964079479965252104827373304168353050673943823765340369128576789288891838384789978634843439324806016858713757421728659185385915600299110492230536291136448793714158717200547956440709806490076356381603320554876023082370738973965853209295977527492638991327860884463809693107346612163172529320803491251159326222871752927373339927667318913673710798866192324603409656799672341349496702522140075434713975173785907517111308931001847066040333866204065791475250870541919590082746332734348398172801652074913929885883653891901109925915816780963361869238083082296017958351573230329450508502011818096985239930384373445019391854614107815693613263558789129418788023015548221929514931600003821376575029517358453471412948742766361192217964719906891155488397380155272158885377374564913358752699167163022077858192853034364311282849922229508942447249620808775720334580966619231536307061215927442735247901162508376026496519970208627008510530431393409782186618093232965220070085020687574278162797273355601887097819642495525513580335803485983774878935272663553758922381365591340489089359562925756149112855593146557038142583767190222956897816196428244723465766463628810578415072228473023211505306159524980750792067038820917078256602081431735191062346006354155443443821179562764882281995996327693050610505528418377676121240959156807449414646525237687074547665519599109074814034903056271429910861241119610040975295065705795538046469516695115478596309138088288269106288528215384084213864590593113249749111963606718683566618157167767189708841945753082583702829480889111033820266352262333323001231886130419138818124461174609179220721870680128466165073152451929567198261008285812946663180147767297143797742079985335969085315925444407840038982108840473231357834858911629273750675529183287903437361451031766857908985830292582761249148890215985902820130433055202514808310728324848183642856212112097694504856487530177105927934726831004239019808495004802586784564019529970433027010151729855890387558678241664256757002404515645051473364195982981001325925494382639958549421851080793021197781718154040985160986529543705839227493761228683673997196237794027435006173297920525129449167449804042676439227482832355812614333432490892223877778193577449261942644995526365349517085192170122820051111281770407823835367264761607480908634942391628273315027309148222793326879544492215532778723694707648126417833231884119301858562008843408131240890286628484686773170739827649577196207136149759677288238183900206346387639270540927072979096210200431964000628483512824331799061774306088933734302624232894131999584895955547018134427261719582848849777905675399059641237307875911432326760771533968513317958935080954102794634659696209067018315317022363797642367848702284073686751459814554335932509649675823794922320570943608459858749762275336164960229059738498007592692069351647338898105789686364409298837463505223243920260984280925543200858107389615185047729057021176876323791169072755763735758956428557139920321788636806237633276132461306640509932397267865595269178580474722373294540628862991793956445747812736252042014871796452422111865427028220292119092810636903216755661147075609295208311350978930932718833664879766059635799523518500983290130052656180336116802874730424300916603739514830049990563214323505792229497964968203185143689993540071358096216701449728259830861279019139547883599946331153330058844267843465834061343689273496416101845172203354496191054230286866591651215307138408260858982791543802552743409101453622938485064409994314181593857960487209799720436944959465442070535060670692479856194524952226393952864459610918848061347766815187340823588867249429057481462069648583191614775535862224488973911016498981218359979517641064093573965675528969401522197512142471319080248358117745441504545378453481262705823763586488080936914339719991835612815742693547265541500065366696184438930067949779746477562115284090168077986299665520909178852527352226996737007049213320567100432031415988316182899791226495641985816160758370443452479026897058120230123306113361991028411727792308118422041265167613222691286768161580670914540576733756368793642333589241323505037928295455274194353738474477929922082421805321214342251306863916999787348623914554349603605257654849854532484058837638569599949327826538886438636555862190207535722193737841013440827945644575149811754392289113406432623372955686366586756827413468016783300677484048776256919345200571571368381050139112144440734560468260827350615361984863966760108104699382515244372311576141441342159013760459621160445904489674624394186218542292039764320910847847845314290164949799991904463852333965029363895476683820267595606400132879014636096929496396542154816925948568999523014971543641350549408984717491753803284157628787454578777577403510066057266991013470226640698415994323268783702473692426279438510075283636632393291731329547467148320917650738461461667417598142515119183005114545988205522481498515081878017056760926624111136946935018067774773829913201317679279099007960363130964463789537796767585002668449188041862315207637537945404692695883838226727064361419023570788721410243776058141586252333095636468871459130334112202909213837303114550835793298486213075054020691066178899001783256576525829747206605676340681230965367111958484054743857510659653605060815575331309005364957970014541106042534926916010834619378195829199556864750568022105494319984421412371543318065735059630855432286270438948797313800009846863249068177610569006543735093110152079992643861896415431000073702281679433023615943702595999605128968682397063875628513466676568326730594488382888126404055909894734620285256590944703539522240091339004333826403509524415811020793014974816020348495498160652357416991387641745943155044872402249455577837942677695562564346142125714947565422040477911899046021264487006043864134725817854417543216445803558576696579527927132370958584992009749514376586012185446638926467520762444324350462406151182589454533792142438298039328414488308132253547218066292270794192449535709390484018707272678171171487388810035089253233843455732036578225208935575613382548005900538248806302878234853367579774112546761413016342199605322356290147766449324622742380596043891984815636434367368527327765046928411043228192750879696077501080321910077129028647748056874571997753421933383936115440225453892116571710436244240264906699440660289871562799151564944119855662706086637651421635748769187963482975153016221948539328945234566016803717493291802053374049808827845644052607483367082065814562570747323248119259156070276364821021701716459839186510375726460726882541978883794756792507764129106427169614037646792225786275095330344101648649308213316623419572715208914334026275176807323482186336827770960968998422324269057972854280142035443777831219202967407755063126261461450808476335970004818667502396573328437510477805803060326622670058487629221251291445122377611727801147131307255990483671964616151619764562305195303895016430003184725763247394075109241968439841248890978661126256867058620392200253877882186985643240487717194510273103221467119419878631463751434782295161824612219282183290093889670915646619354877270819111976806621801416364801367038746937297092492402445218360437782639403091162839653875676809155210085385433928499960957689168464033206099184813475482267123052777468729705766919480476932664120819086975165747097558659363733079606060083166508990496159100470123922899001801998070610875740301856638772962005885798637335125791023761094292586765148848340937399389911352574039345406031013979940244785438861376750980348240485541977546610897259156886605793306911717400829225269811896226066130334604015555283036510761915227863487637772140932078395175014251786507608919571000610276415777919811528850964671808043995215536748308594203658873990655264494703601281931210461529750266260542657540547682833460886604733639022000670876847023345012355403489494535236370565729691063884847724361272160576474453882227055207759096101332920795759981151694527271559975187240783360831508679618422520624435027042360468820818922981252182503543433107398442040891144705678432958542788267594525650888980441000434765036265622906891822030822630937794760998729203931088249197506380841269227794607690217259214219908271716232642929991425884007556405577111970536729110294326016108854007927306665591686993111556120732230471374781979599902240578686710726847404484845922547735782780711792731229549500869006003746837091601282490922705021859830859273867471314551019207417178089335716058027341150199075096280646314896307376371427448351571578859789892281869857792437776975280986655064665316387863912830051384794518847365218207346793811408747621900514775405493100235052430588138199518813395718103498437569106203662666441698468467642613045708567718957606906543317149812495415517591706462237524786819111536978738023081017786684658758572415905706322657574684088576999458082540000935763595254661491260806011304775627854332184671851710413073557760325007390122390907609058216032887156680346471029538070974360946236839056644609941970100653507034139465432727512310098507734418239436540237123810285607296205701881605118815192351062629613100537723913906944124558694944675821089602318227590854672277152216538696198478411745207970810727279623538130963198358133300736484143563818475984322123773739220774047217189901678849093921345804266112921152264834228979676573650853403049746261342614138760667148561430479965399821544593499949257426524973267026364668996128138023141017098226051240913856859208825032030706360288375816587116723507978188076653454403423701289924125122191749582643154407590170358137934473204551830425110915028112847863663628313540576211739568780401221768201466269606897587612968850806941546273104190123006353904436770877191390031752618583552164958556770265420982375804885390296540136486524791315278889732210131780495327450583471851909268166349982148435770908407528053113636493980696298714772719124916206794498762747966063206294775351688262027889184817866409134876977581929045402565112631343166457353694476163078022707098411129933674033769488959337702875034648415908309398644364735437629365475554402742318081684486023031479346834699912696872352064340746074094959849288877840146071932551653315950831868142747083566297239201859237031228813223044036338590305653245128980415543325642533013523763692887406387282703852339290080899615238317294295474317713061787661849383899548413084964769582177405384460990660168728739039839713097885373435894226398709113025107541226639259036641368831567550155563306156389817370686078339456881208812370915615704346470476499580333829433836318702554821107215107452336447891894921199356660785120323319938316813898370779320065168438489522844400678542829453402112930520820356005582890801115621301441511454968673940279185878085088679882547876865349935339734615174687653106476190417794299106406599970953406620500436223457219969589955015341766889303071106255856934940837810421059516686216255279849742283110240205525112036588464969444108942398636047617019070415763307189543160312958012335242271274621140481184435007164170249825511599952324048505958146809517698010331427176646133776524748475602873355385675392355231252799243815988209713403620938551783610940143120037560348831397122465598401205940588363838127869979946848815567716844502044174968166259952424310651675650352846916202723680643673168859962689099631061236397224851782542080816193935665790854720419081299560610630511189960534308994233098166104437828190022195458332551084775503260808436761399800845109561923994918879225126498147499508818832115034629901713714248438631830903346756254364722341675108359693754665168753455616322529859669683740880983972795091209615626237728263001617500918712142389313552047269987773524113481074226418048119906461366469568605802950550332714424549438945944292026653000317686330203241391126513894703555135843396607222691505774957025351601725559126761143525846232764244639633872739328020648806848415303311805446758928933162325313813048101251255093191983018059965106191214407495880282164526858308606323402606381172809428811817876791122949930841552724101196862490724390838165223480690673452676697763017539491328637775129360308467922210320011232865777416937867028568875498454270159049232902783762797935519293785690985545677599431611194076518425080575273781994954117015123878516385489238082717897496255516707595847153222673949825377206330771634215912913067094479437483139035416477093684638557212670225842743868313769509256755623102762787578195732331397666829430211164499994097512224657836388989332292853035497010247317371529358008154344727399182481813897872342932218066135692630151713383226226112994388950280103104943443164654212591463214569562647060356933554761443017501392373008331658408761201735727201795480886359712122784321855391984614893278380960182728844738166138063756694642315045934869314184536929220177968302796428194202805249659386784913796412645857696121984723553006249654249326347093326451179801737019844150609757758293888290095444284742712610285054173575858297734663289560327116253636732108333749161961061562699845948886515865409316748279317788817857497814533941160172467217071613823870605089565092213834483114429082177336960705337107359418648189348030876989070158452432994216094908592679789551187433112118298893393747619086756331008776291907845104636708630863927946627446731772326205677970962663789888419721647135645311230809867433440772685927463448644370872986382487400469324125717141745292785411268716275081287179819088045926934511576578763260452590521103252125437739808509122810661845166514835816170615762235419431491489689931675070231299445363787074953228493340546987846280069318156568486798506873856564356804770688085244671355480263779137835624152333406415194387972804033896939287244186591738002418175601927739573828545397191310332031405003594493803806672629904753384098655766522649166906187611414775685705492114078238047084108259035639081017836558571439849885136457750679635228209417558003724733655158829269097019340427544434915939351262858748007019882865826247495715070638657977833288839076356371255150963334471720184807334651567912061105669844061344434338311701228804263430747396225877373728747633255909897634882456347378113891241960357894493202511987533502967698504542167684863185515756099468543566126023720392021849819773618282816105748259309157056428305049846455424983946024572083111220500008042898345310558863474218584814970638654451178348400020822914585150938964015440391669050979686134396061135308872250206107383994193115459498916505946055401599969058403044796282594335284460198023401894031401685247745378879830219842642409624483054426560126549328108534702223545313518336094878290867468662989281027710126835498448755536576413247470269605976550694297088738792839091693922018875702844814737517668978112754116353400469789401078299713958128882762272949108788036725817538361966649766836872047320349274701244689532995875337627941324901908668878993562459464137850910605630633529802800824783530197123257455379571916602580752659249279977267293563150175107437428589829635960325471095097798131520458301550807472189507705335225384782083013918591474282748273037692512149991736505377555313933025674270038295748658353054154982136249476666033028165863011496413574201224497451569954699086103955871059087119982127463131127213622575296995542506712654513130814665744362200927923497747654436713469575400278663052054162203144383376739684936683881334687078924268622812764477992053794479455991943700798192651196040870308628066525002452957328692376977578566491424577961590421273079243210129244130540153573575895053334096911609757930328347053997796719454691532451088516848981855863544214900452901162935593717809029350912668198070417240096290502184371504995457464508238847119025750337262304626768497167481965810571523828750516403475942042927607497998403661205957899942934970971529004027397832019736178125418827961811111689459171159124899608545281221702762695596493509663160856267911354440608628780984539519243321015967877568330246926271935326948412282325702198400477659477280475910600776951594059985239387458718461332793508002196026832478365494397257654806676701920946608511702093505790813803749441643823926408430540190965674925178425513486834675681171027575251236669926394332210006063215757924287153174475527255610820428542592647125117649214412480618648323253829761486530548656831752971580836965247461333376548899119967452354725741601602474271248207488924347325971785309605535892810457880341833119938496854298836082420213425678447132557401910417032126162023491641349198124326908413728531900156066946751943318620142071486457524960571912645331070781465177765949558464333811335235251688049776021799398217703121052170808626890460048484852668317371812741269819328323466774416616887615906717022065638314041367500141479074795762392323512438480468937606609769667642484683670565653388344880303004388965476153631096714266648935321419966710986688092407356206243538633145798969985358493738414566274543813956401521894124444503255462438548368176696985396624455052838829347320567430451845879705660653928224484553621058842390035575807252776480218418768134960458568541199999996370863959436906120215185858764006483077443189529193708997007497565443697497218669630352025862340808801500646449763422976284291202999891873609224849322942950513025340271866999924719518142024796739606123048450692606213012547035547746390861162535454470216087073203016113192609407743481944591864036318874470986419471479811801606266135009393331670845650327933108985927222864755861724235891092161258193859261303858677357621619440614371978408164864759670811930074967797690618340140724917940796444439742746581208406133410264267082168941995709245051186159369472289360398906878928341527828307651742027240075112745752890113860627085661609874534420095747760269226355900269073561002654632967529948484035479888146099716360844657082596350805589986282787392032987797861198522243676487254199729299961074864819235753918038356288519053062222444452347105341725030494939777045017319079733975849592714792991725204800519551988937088877239709884133071836066909926176673020463241711233729220655015043545270658733483649569300366459733018137762516837119550767968962667101618253446882870280011124311531264608868454515147455968596738161695236976177744840136684049784297631782610069906647418650423941081667925967840133461927924766119937554957231516899681942092707717325356145996617135986490997901782518295161565740084040059189637336066737332760091422498698214713128194669285555028246630669321473270818540058601656864970526456679117157841251758381053546151725976704079466037634502953926849993264272032584575654544390775951469182426175559373798932892889328983519926969395148348838835387674661288065196354496929951661067792086532532098246659600425295431573509540587975161156585570593265753045254390822084152913207547726293222758789073054150412236748156104182912833889154434516929403512999746231981243397214353610494984965780907943213424647853965308193530415424939866141941577930712739051882978433136484893445222406952816379679168381777271873247995729418370117592005798608709068793246230475937531627003500218604580380507004373323054145612218635458900163887919560415647047345609802977669766649532658738489249258233956569409844657414608739855414341114686144482651909775570123722580987530630887353657188736498288060859598607012375972494234576971485174829025503932488758194014188678604012853873452101452757943709213505806970279449999823070006972204587207625096782188500762699835440830460489676538059169628049629685419343084143477249840409299029003405246844777742336739088523998199299374567055080976573192114826301178048903449606502641873299187244971663181785161029376915154062764643222441890035182124617729125374589729151426901948500586427153819565031366462531240082327581261203958233198267190943859863268208888865533129940739473385443841937052494855778248640972148632134580732141096975552362694030616953358564618156509630045059927915053488915452715651983466336883087110742003967415338374597910929136515319446386703700542759838597830980842895087272295972951796725256397700004733742516928593241246980594169966174540397163416286034755212900994342978391386256438179713424008139358571845168091532521518745062536024559030112302267078571713751013810058102014115013849544346919006035856704712560714925655419213766491669228871924717853352170169984787252571396055350844467210171127922581164107028656954054875348412214027737966174832630388721828980331395412302896110987061820575525701062553484299261586211708564121195767919020384365320415257461811637660119528222703836152103167642594675199778451970170927977381384877221567462892066480270352613206239076695706344742336023228852856499966541373555673991839589649197500047356033091513795885562256434599627387772188159941096842799324342631882220406835363356081159965272766502979963439270690064795251953333225325711021878412167917279610179820712621011026157085724094642701123456924070511255056670891701889452651898210661042743922907050040876631567032052294991901287902394138007188681372102241172416389891951217711386160397405993673335787037714242021483889753335536277885149240423578768689583410995102149059627548212649561132178567157475411067750316787464511604729734188433094704186865088937455479902627559749286480484261708686416523584687304889758351828473892819993091949987680316786906298964446401171166798257783741135785743279213545450194119911520044995863642306852595723760373532851205260876421932547551168550842276189976139056251662074138601642211104408987984206751275350095516772461327151167765205244332419985301872263578927091696124952005154914197277073323191213461898631028657749618662583202308512605338060624637791763698843261612758010511665799367653270033283777628965955787539805830608410435545203360766729237818493268562146246890368601739028356583663887465331651801379428587700107391842438001333243451223724856777884276753580294384130890491646741990540946508154912541693311521654471674844685392025451513002951162534868570953736551517362121170552211701579349973325461098597910325537979202888139764146444374349710853067072910567523525580689857136461941278859762534013824852211242597576049398481570464615712637440019559111220760125166501143658915739917784205323433307266461958272415755120781126265362055024910284596100614322895400450220219953860895399430843028489496597206804410739104398240908745171579614492106042826518121449240565060621718908182641616204817922789419736123100752080913947999763008523573248354536229815631547634323545390998851716701270772110746493813403085364902532592358999826709486989155778961985561945271381345515814712703218792640445987187281502455783405625659640099852003148436530046801152374021771235462876049276307467923385469223629306139454104535648276525958544450388078358701102931601907224709175700052656590745436017455128352540152678504830853545741914892024636645158962682858514840948177518465175819892066166314679622909434531244019171184473099346230553488260221604036756101168637134961275859039415301606520049091626334559096730252019865135663821887435868308352371015114963576829106848221644514480103355742070345992981661751199380127976744396004371446469954876554813053205330102766708478209446383222391884142637812431761437496441304953917027805754287046003984593678129031937608005932196084440704638765623392888845857894271119903977747157210047799127799730453281107149533140153418593645762751201129108115256952318591852996609164987374058616349342589715891038254742579239254935645459667412301919367765871425929985092876673207505738998167001060413396892680844809074808205528244627281160246188895509672876059339000252496593490940485487117608513164961833493809039891717639036437758607150219522359104369881385705890865704106505709793976280689420923142612907998274784518575983492067619353140030525940175461121889642861926587389946904629518653022002843484313744115152177719676702620759395740511722842826238859184417134804943394216817098980690120801596698840255846074874044575334124532047973718172621338577940619750787909641402919716776637312432744829035535030133164491553364084689122122881203203698877370592951770415968634135558971096567524861309707682241745237144659935207095995252323204830938473637075650901368261432609269891931127216078341312287138873038891904584753493125426202145482849163751590897728860993324263661196385993486514749778485965746424865182613216918473321376549380001113631290987334707757208152987992396807554662357138031735034689447173432814294062573811352448258827612028168698943728742716403268837377244659533340146831917555658231440545206299351871007463883757856455269521033099828916970426417146402488784639668899972333521600600381512426648871424843645101817251058292211242256633531309330261730616406286281484265483355147357693291250088571102499377848429306052734645143399632256533974797379341362046782412570092320598569240844162693911386282637128875974343611070869318977303559245018012873412435703043751115489148047863756605632914465120201560542849129028582323854703395956945711269836283324421693462550317739179335243432753148174355232892862680981949655395822091891386353947938484024997639272352992142547135769141284456161000747013201592268294915878907026485175383597216454265312830360274493240743243023408900837748821178578906619778945834747142748759054389574878837700435151766061308135568848879841269548858989813049710102957501240582785217940431133770694158477127212970803047444009490078408747302422503181320911918735982132003468287838324885878558238239856579979192025571976883712346126134562949398952340257992168146791445534086860543667239196241750075075761865391706520293557266016790445962509217105099659162098828428828319546618015650366371507007138229724205253254415260089952869682335340980869590886282424448510486649902552221293500684063755474918157396455270487387813659412252673759877286702265483357810396650700026645712357846945716202328794959568026319440257383904401682043036188166456092970629685782159798577034556485920710100066461993706694288554881012844991448100678455355608884027942814009488233643629213375108093157456119899384547481832591793369078577646924415388717916089860514544017761264007793151880143278378395279612375802546443302645146219812821095271340093085793779773518133721628589573722629840622053332070925968088477788787423823424291382627247348053008751657475750920876464100787081615697181103805140766641934321022882520134912119276133154082255218713319143300048872085083344848575672211505645618857396927146673898431473913591071024509657469048871868499927504535666801262180393857854175334919449882775181612791353204762990040500688302439305099468248519507152266336383311102600257067824947307100826149138930684481909527227227675047335841137178811284118434987409550543407653240303594867722682887944111973676702102314893090584676260576533660544720770350492748509919239674591694805744446627864576122976161362303524981064244378595282336057546217401244208086597424599456481083024099342056812909831376808549903888865791306009679896641799264834121960817422583218902905713794044427170361590427597341556085175368956343343800352952792444231346631302154824590325888997803383291277021451695694875558232304925160972402398735944226304798086300200516589271292030950517762039417418184067699775577473769189637210945057565544771116718829709195267165863078870726662687073140001814742124232297627501220549926650233354712635898101877890698898426232754732442341226571237536032416179467758407291693034147078091600442522009742142873094470366868880784486021768494181071577039611019927236346303609477934612337142498271915847515223020000743535251353103351697329519946671985153742966824703813233305706567090371851895197691934205081749011406154467083583998846469112401228664543311356268550278298695735483358507891073113337842467841022636607334414431017308595893653285431869970581994007552450528730823216679741740076923000582424424095812330850364565358173337904487485318919112276821327442678427379657573070444274436861821899991475215552482761926393544226808135015019815424198735767415938490435659230766509152749966083610784449222641286690610281439910220809354008545258729907961858064467169690181535751962410446533671258059721073748022146146318035383302040819479809924850909330205730116918701909182080783382482892630843946134785004724293953423777615384667077002084986983012533951002361706155406195760214644527090991165278840392956482026961702267187432995386146216077969339056714810234295307068476851265457830816563581591080318672455347076656161217187875116975580753348312639952610169830056698465808491753033845950538641837978014679991453600231067370762051651563284566190985400103841168933516402142435162066281001969106190743456896842863579956747952278509728562382952322505859489078742124808116525247776840021674527220339992980875870539767624289003373500740691277501918671895932389175647416103108280365964017035948290272658063115510796167045319692970044465041224120260949995770513425762528991058148902992523836371915011328398864369311554223176935164283871122846874536707881668124066874100334714190875174068168481724634221775187923761989735349285790188598598271833558741964349865377764970402250826023437923475690775336297688380582317884308355798564810075850753874039492437717622613447803378695970942901715016556580445450453525348440141538496198598411492940884060904114366777583845559672626955346262273999497368756603229686029918789490527130867761862642958570727327763234381505683447344963274239111799839490437296444507091435195146061739147862015455616762394827912677834538136353134133962822110472994332847909860389611532538433194496554364680915220621875849020107033859813084239408073348657350806994508358964926342498086411106530051373688907037482364153696656622933213399404123054922157599603082305755727646048413449018139007122079525496021737173701818303035457211426112196394049254958597108002904142019168428625606536276771857323173622516700163678084887832715662546250325543715560541502018890796583708526484769468327316333960873592421160044999570081173588578257889917878715973757009179580701177607979798238396808423427524129001772630451712441220447936739904467992335551604817313437415363060353388943360920789008011134487187064249677466041996353886456127029983964392388025352737536984194889560389491813100612988906139701715932436479825140000762373029131375826067041415966908816981000270477422988916373108473447699133525633473766697065451600586008349397424540654163921224209284456878270621884198005140200485977002436264088509682156165364329273027726032643759104867265773313452105973137504873661924983404781598818710396135833762160822576894282277326939808587934872255428087879563427511426601054815604666749078617183672229096737329856409596890791273233617461352366847357634106075772268876071957271616007266295258587078745033194779666780278627783357748680397258275369028246552754523647162898121930652478023950188397611795135701971576642975197589249569288573660292218273623898504397562408755731735363594730872453962745302632169540967641348611383878323785723571858589473269429246413599849612087979064520916713120170525975082062520837834349137750361600345754334484468435386926769446453189818199872400492678981234575402905396208519647429609932765932467448422229332528110053036450712547948396458219298128778532834431600929682436983927474322204817528580572086965733934931914699896983891480783391839833043591357234958686892903743378619662261844684949388449629779678180252845296404909430079977342880851335960045046684275436959196282187024891017722999619574404590206239889674212962503731296934452288115690444994662262312880593849517452799284820726510322810651597406398244473894197862735799334910742271159025541849785634767935301679454234430681307348537929772454815194104765860972059704605275334372938449831488622444969073545192839223699407554304201740366518521254657619341023554196612247215508554091645618138492856679714504001612648124368699353296298385895004859334918610482130468410079037843480614248662212978056383374623285316181749074621962773523372793527007979476490516935443703517648681424655622890066002405801026242660432403212954176226528086765344547012480168527833959546099459308098831238660357314992476983381930529066483021630514985427686299415692912058143841362630952646516896244184148920052758975696703182460163297538517483816741028790208735418057389235173625728931564763229191264554285485119088615322075323565620365960877810365524829826485626809252915911415678666374410101192413036656585389209338469348316078569487955968109957498879303583638735537740325824892610725757076609587270481546263219550432085979389577917521333412778601961878818994655772198607952763878538958508663115590429451909069218907898560654665423949290631646044008248636162524943133890491649579673519553893457222988608505195614674894385983541165119604651817353763612195658279849987359390637181441306166971611635632553631546484168571922114149766955938543366935857186899236934754287389544649479781809609484821870290324708086168402854910976309108881227405156011856827919434869331495332514809276847544306358573178467109260616639890227428692826088394056784614653344582378605735687810992941555255281330476325084151558659292320230977297461970381984714707560709937299512574441139038036262259714261080646845395376848162789507293572588762555831598907688138776506336109701984978559548767108662524456049846771307195718413170601201826836193087896526467620336287814982793238883883551464543063012944661317276414885606013745797288993473801054775530606589583391029128064312270641537973863863382042261244779464934090958686060718696901361666963856233936925063279271128245389698248630741804476977311320015028565057161974532585942419103370405279476805650811257483588879958328069957749314159163297836720622035696469440165184475976551943462619387109938060439461907851761134061306005747555666546451769533452807344302792140796465769747553073666138438046059512303803264357843625005459263938991448834770217220957955914503993778146984302637967493300430090488839853027204624857044650175136418301177849114538794979242648058116008933765419393146121956694596336931315453727366118414330481957185240652235526507441007936067741503999976269136992060168156439110342542757631915909015094285645890661133093958599808595103654806089054470999251046072434737186771378808332170233011746706665910289139009505208458827127442483714029352845189860060251988381988962238753806611221511585776763042326972881285562672738453381324935716920367011807001329468612047300930564039467057239711705086684498519572939739755522196255800182449451835342469888254799994648170261694783499188830334322004150248467822303082099783422673927225933432163189396254402109017445083412391053815712527398991021206590664638723749918347160326221616024191138175576199748725439988167342233349545548064506165676861690794074133474013912820775654931219650819455048247892462693202402341731261086231814706720344364012936477181296099335769227244182775608614661717399767049401082999480616153314705526475170919720693805894179600727437231702802674310168802463813525387539493651224958903077594122487693605990747803069754301127067371202335308558225500820613347291117901166277063239933523684801241945243942256477557617851101083899859594684441268728676282642788470480662380366894752383891890640464473413570156610479470937636218133512953688917264782185068785910938452529517331513309530700733978971888761577266057853992117818106515019073456296162256091282712172726348254670201300557260803693452541017256356759099583655580105475091492159779345669395121573671948263043167838861180995090886213522066985207144968531173713895357483587165840609492936917687166143167224755478807854634815576716255265840823972745443261385712894840590306227130837616668752481336238504190631988450005959444363689404242249315382438566307259875144246521457686807745031080859724259152783784931332299837752319171360059434875074123393782563477427954181319387123302489490800049259002103360395123784909818848157768469923480436490431873256941620146238730037983733594345348862408935760385304411904583490837900096307255991647597306628310008512573680576946482024166256834407156374611514546687380883158894435784894239537043740269129347271934463045699073190422445319709253533319026395379507300949031498758201661917069308325837229255541079946544604335872273565832393787634406395614975353038803380772380832497121877478603219482757264339302307847074732202881249062187446198893234145164502100684646088883974803982137941235930488421985873050614743766621872568620535853672246771505265798716538955644019245869199883387621763072666377614577499875238892675500841968206478521847471866529472900511600171757796213067562564765629286496815714317847060081951874963865968248096339220381090765079349507119735595374761882145707000382373086964470889989812562254932111863614369810684551863080506158231602632949967568974376415807565762263945100543409012323522851056539080770680885317026151677410790333844017530317545159731528088533086475264024514895073789160362816745828307101577510501527168330478880508857237068121910794885840086006859235896646608591977229390199540168746832418980938781092491941647927357499525480724824865504261365118166720777189354213882059227239005483504288684178165412051779972220830469493752771878012382177811393444418414745074344801201131150730712831024555722736256594562242649800926093699172667512711660003735686211880158930930049209632175865425249000602171961439105119655007218018114878357729597027208119223038431581596546881836616017060588821977303649375263341776999544019470505196661618866418546943959836219415152068762146887607492854966857561067657250716091499716274390339752451822246790064416951189868309570125338001171336610885640359911158402259987446627987360144644645175626848010397655660821828173723405701742937017142140035938384163283518043655202779487089509508613236908783127393874952590493349431066599837390540003961631336712880922656501104300634775291835173702869123065840831091109970713630708998015660618943536942655623062546633929196590555132082114171240515020170441284046520075987655533673187709794978307542076570440134852553555195462182310797430800224304006349890604173694800233998226678094132045359565484509046189772082947192639895052034934739204344284527905914198863743229199034770236034745522657619670486738840435158327838228071741770742738591609400132050297421652458132797989640640121059333245294920788911326274335252891269510846740079839386107043120942755262626603046087845603829833345346192920925541426202320790423310484129787660837396695486503588905706760540078136957412520538002172965606181026636167330503719941420988297966698441493644811402455144890296217167513345119976149558992072841343926524295220778938019785646839860906249971649027238670072156866673343697164718358762081674092325026167406085039066758714390982613685537223496537721986936568953497473084800288451688045302217975762565709696334734422280186791704920103834543852471220970981170435615786798639837352452421168432803461938065681062208833207177170576675461097340902604508346131722927787338864823358610453353258928276343808632602116643555700725981904568397330559169081724981971398692318011340895956392281531586384285257625888085022783778885115081476767008831132993317181074772641450300263179047142013235951258800991211706405855290014335133617551938561932645224987021827763205764863030048843926819917761015723746247063421063873006908016906482286975903126929330139797233715907499449073034603810697772461708158965426930828268303811333718189830240402099752739469980792922938971686430364980936164232477655470991070893162603065613624350505388507907615364312360284596340869846574364918307150576448023219592065187357104329484063851103634137502535409459864630020079243664347095741253743926015921269292715490171960209029612485001464653315582958604482102972433303956189230210225886841068846365241766125874594434933516042261710804943207130783207847165022020305821717635791203360730052104320463629757174066356807134535846711336205052413155342397533154528993351819654801690473034246439318662789896977165797148052783603579528316542443019725057448896066515637195108460095149101569809107785771129150299534923065373944931189405867924781329945259566277013003438242741586135884352718964702357131422804111431607734918551246592480331502821140200983573751496934545981950870244017981075210632466871167682214810945744542653412853614046224494849448157991657298192221171700917056508753594510040831710964635810947571684583570110252774293087664862537061731276135203323182749405039922955775726299961750356318138390890284204685097474840629908921067228264444029592895807662632301495873307645038164896677814230752264947055940404691936703759546518790275560899972531877116513854540312817439710695256175027888437257656528580091280732159250917248288137214288259176797828149609947302691329707945534727498576775231999214830746028792584210755313706711030581927601443241280848482682952003338246981042938452894029847352515497532088708014795183722357828865898137522413045273525655161016926899906756948790600648466362513951930755522447181986203948116030759708327292153429699952050106787855356015794067317961138626943984250116117131323165459811792165254460382358435217957421974248024562008608319861671191531140680354971438909737000287552086167351712830806756589961715656663075130364067258334794983990905917297684501707225412561961075918162734613305931228460828099342400185842644150881505725064606957445428785997107185528981708562810429981886979466117977379419287522935735991799953049590380978577380134295846520645786412498876782825810565162905607203585347793819021572032784463976356923592405175821653443044201491330703759973283730019804124183055854370170793887306110105432696773827372161419584789786274914630840016000189112087514652323883977672542670899809596785409383390619983110055280016931416717903353977142489496287972206984509537539363422408339065220306432190272186121079433395015899050277963977679027459898879239010721935959865873809556230613877839030135173305203463848651916641865035300664886499109749268641453541070121280208834935082328826397691095494218537420936500957763840684372058746912781754915466410323838893510114337292545134146448439703859694590805945949158537584390185953133078371436235451632883258575186085282856442253402396949623646649536308292946166300590142128281601065702290482785515337802675794447711444373613961642559823819531208903010472814132694108094938153237788294481578245840038950465560423323471944696535070927570470972993002281142262696812290445450140255489284722957072272445043984376912853615336460984921827074608105185642086172221850641100327763833007283377133363503543612717973613223383773064576817345912230497682374166363798023486443130510463172442025286510731784927634974810526693131689291785228168421760928406466331580841085592736680779323378349864072693710746604809905022340909059200015951994447890442171109508500890345724321861903433612289471322978837041410222876846685827261418422881981200139461397544804428819021673536877167173119993552119631412079373490918122509256366682962317442741719312522027168996899268727349261909971844120131320058004465049945550093696975813038123871127447311133970278435198319869746996669872251910593459969846185383159419558990925507007311550506842457369637109703735137199743729657794569298779510204964808360229008817543621816986126481706086092274586524633517098866117067927206486044516897550421848459591989160938797887753228230587049229153749086117228459832085720176564182134058864999814379562481560055889247070700742260841906272445579960942923411006563811792362148217118095325873186860807386791747446929248277742036261409306884826988963513722082084024213729687348328752662018841284859993435676603642115251350113876598946270990407688084784533936913718778087531782111221168948779749032532676496996106239160035528033703761235762878764208781442557306306908324200276990989102995020807304306850382118767283205139725387427629762547366477450136723318581237213347965897829334009095940240954156753428471668841292103755177576761020075575682987846523355098399015613458441145671303416327895779425273219164077827899222129830527797187344779980059427760934384765956972603373027149178488541265888954147666439037837560111131906225306214309260056288092330629984785002458879295521344195644095859544759527753754939037018169116439804862944459274521895319111971336057149666866071511254271922127941283893473829653691301535704716299445180420614181844249795441846475516592185243894037832937558564957712417272691649367459495400370310481309691621257686262368349966486780118515002915549822834469418912880595867382640655690896618425836039429417203030835667691233728146595133806003095675467985315796481918939317726770826836841270133784977777813796010484931814268506330418307369998995648926782799007919056535000269119267636536710935623189871629206383456116474661294642293659012295609776526481924982471705942620695716840984931725840390630428774243878432748218053053780669339298451851367727576549890691948025442450766454788904804231922996615434743076561660678364241690589398368972885865338668552725470818826460745170203348800177105207038760618407270193987971479368409954201541956883590434548229756103483694716573095997924875855943864671837388063252586575430611599193541329693089529489438766622364330635754711087500726870229038021584937511681294641740481900062568234297143455299549078945770750827861700566141388523527036589318884030436812846216799457294412778470858151743902591575549435139104968801278158153305135585299475028180765173684489915742491281870849842466399097760014583952595892032508469358710437036077868843914555053605383328479987781461378494534686243065009075374002510788347149256172922016155855540402786652375259427725808930384585968097476997134280525859962922064636420510886482514302650690361962306649390131384884677313473403962487864741673172922351661151048454527764373421728963578353504102917377874087094519369556868920117125107797277554500056452251908511099888315803721759699408302895190222505842723828986754946363120768065293947785370097419225118179905436957583849697373227154209768777448624129722421343945736976987999179282424238832596350144501850114442556655315713978408514805409114800058921365581963877165056335771807884698397944894593598679848648418063679922031409803220201802526326753858914618925909218383471306112273008968491617583665911931342338294060439137707513719195701623651411303466748258609220089825016079140165506336627550240002523853316592016265409420757721316297248300860379828202374357041991029271231512674164219059639706248726752642376500131073402360355691830534570201631877870933053777812384189525084455863013137291463021087731193304251638079893640014033640139119520218732419544532631922795784140631138043129127474239776899702696859301367143366161712790647093909004397980001521711943396438259704466899078662599623908538564301463868907427539372323486826644925753894387023839846354073611051596838972692151060268093232894849377259852635794761932258875064604314872522170533774017804062573224261084362020598729190946890683288584281898060224627896337535288093562031406767541431534570195822810471648889284827392564055475844297595303712198119848008797081429563846362655264417664443066594684874633426921987503359810880984140661355700873109429007280762902426538914777829501453547552686340555845081872770884685953040099856308735191087712924597347297730128091618615949528460806305157393806000951735607010322070033773961624696503970767948113532710301465717271887869517181431327686659890254900314226800093803808613978954078006890373850985512296679755434681033803731698767489464213025092663517342245396841141584045932626314997797100890288463655545936158252749226833190697553726558795649698413171420151199720218786385676678328177740777546630189548319792127421256697470568767154140305625545006150313039894322764987280859653037938310471316993230467586515373052603654276792338907786385362089581093492468403585452903585905149025537041652313771069744601586204530614584024137340947936823416104116819622629319058207263077081756873966163955093132708085579080434442379137970862127189711763215296230548912587156475135238209475530139655447799425913532267376212910931751607827251673137088098141006113226935493517176422242327026560118209032382813862933545074472540971257038108976427681409175972333812067933039596790013611323525611333566178634749277029497576348014790805742360946785829538541385701441314244719468495388494192266817765380058999077353117377651847837144438259040281273237222840489169177392692914071652513292992033493243092165805102865493303552705490922129904012532215046437349151306283546628242155758142167190434777001253662924093506900301228695241929883784728548615620628194805913034426169436724064685006133689306149683528442173269079951119283931128468263858656570107743861004166732418445404575265233261884167400290165596315935142037789956934933971871446184153481673016186266099934081292630096123672291786425064623984420720285604585443577843055205237964350949483373307092833746709314218563517471522137728516541361972922384021604070633979990412977450618588313667155876308937884851910335749047871781924491788096040492859290798167433564120840514693592068607867765262356176090545827935373154256081716590729228031166083369578534468633890856425392389647751848692205292949430303422118151695033906988808414023251625417977098493471000152188554818035954854108277782279892967123265421379245551126057658393263461827503567653283731370931983128274932403178360802498523581319460412829478513870649634044708182338826917647181500665584327091746955680101385535351987579462448361175995695042493539934480758543115681665922757400320175572997474384662966105437906391014966544235923835294510083144867851536281127034331402660096544473237005265774952278299380277335843702503400013225549357898017701064048671535464003199456955027161092835410253221334830468804659805443321725234039434242806098563351628824928605007734023859288203113855846540863918977909789280269661216405410625599031913774301271322330102803292523590370445679780356223431170041827352139506248005147553275279382794759979666769897471143841338961915677046890511010883902776165987966361854297658939202170129111897033160974563413142291779267746263636401545993899242107401639518533921824785736001062908915548721974730818509664624295548683340439749440114359187897196226059670719533018503484874377444416525820270078427153542267642852614240348504783389371238215826790259295154671711410005045020810959545180170005615120787627671556083202542036808244774237901644387575726372728316123319812129152277292574540141774362279058212697109591283305547195619837368739607535511375429104166939513094522045396812695949141932218727278209792235616299900655404204195276411585483481128071815333576405202150669688226562613240101818793538047347180960520585720525627310760577525434520935944438368778344497165389438649380557890309288603076787159818979597784258139459410574682368811444344340602535815560992399036290962924377228310710223701569353264037482363709674426157881024439818985514013458548632332805519498607635951966233944823672286097320783004757650118422699869767254045271953154757705983977579697382343944139899723993321361146218740531074051504163696051362465456079038068122520683124379249832636396762619041257898108585893109238200409180196357460330764407788654159005207934654800355547536304097001210195239663322002421106317024371862143116072393638435871710128344584791286326663800566945915100266861267573249894064891545239515841496765537284385024936293989225697991591661844443797200424158002503689767317941490422022667877806294004085882578034623497583256498592702284188050836618594272046111244305102700993903612618051333364691937899734968226514382512757545732594944133464485978547583946304352588079906870837323488883904987535090581372389417686254254248477284515795696665785865337067255534522610891903237595170250664554025313448193708137145044843301962612119506450691791677238254461412496923346932846242878906501496424219924689391960664972246888062667671304503905946391450512971930362306538745335194956798113543442900178574619062942403413252861271925503256031234641560001562236109744430988241551038021253796139321977864173465227139511246471996434592399029098401911932103922056476438348352111190900893360463151424500180794817718389542991274245219509389554638586597014598190816959036943888574515680743442500371950022510854218721098846875478723236792491625090312852525585949695713639048685023378524615915297378258941371229733259761039849364788029121149608073056799305300012504604150743386377945671041962813701650859211464434558010556133156695333346101172687275513935922172589585137950582109074494375539282354925096950547080716654768977163013571736952127715539410848621511528235290354061786067863225845087753955317572055940824913156576520953270670535939933415222440167366401423791504688167180557635173972429836658821561006525430080775797385045771117162313139012485732509900069110438934343257043402613659143598435398919316584542735811668314770738779573909855503384628887272215712359979659707818626520294847395767243496192716508666819737429956308881367718800758045057029782943628825220084103073605586312734301874119796739062924697751480594073261144513715104755987570575276230894100928422272288430610494718689361813656407886176861375534425625868489968588395210636891836126538364001718992053749461986648753020045869617578680279117982126887328316334125762024342043372991228238926732144040492849869140402704994356187152723503240690735591611295244322661618338472752175074142858199091729953807278446673162441862491956492934713060341662915619320601914705482950088258941688582858179777492820968247296408397726258585605707966410011470744155805749041972534776829467622666783576659969496815874719283651467720844028456504984972730815803313726067892489042900319408036715047466916700837614813279292981043357811135547338206353401760704615443338565500860500565445429642581009158096021443763273894845385428166815945895609708358331159343120040614710254720870037880196526579019603419515424178473329009800564536456201812415496044417430764464499750361371567026419670227209207755345920733557743157140981011948007883682200297199260352132195818124421519743835469665736629656896534395019450178527695318489566173052509224555908612565418067260019761220328157245727455605811008111101502168303280648144284246924503316130590278949114460663457475916082957088470546328583216773111022279743820705694985298867918598936327497558420992509121540198668628223260848012484737854677586310143475519522027397430706681997202537134648245209068323877437096625518496123299205660169972636114548678190410039695782723225788632366701487740918663593006383421501252284709335128636755085448429196068962576672493527291974551531075286584412528100888126287707486495873561085615806650011105089985451613600827793298941112052424466624464903135737349073185413284525949335949455055227151747113655443821137146170050996901992767776262181738580935159133104974538180228981217244461638060255267129573249682987951565520123213952914237230949873121749800589108534770119158584395221709763637039869208655912118228387761231741625765306564808825023747185649102003129149948518297198442133041344627470652374694306076029995748674789430491879035534999872355496075976321603087046947338631375578981064510166887827680294357016241375785991582274423211311517269024199931890357197979435145210555874870719880019818316978918293920391439694576167922927686915202056440784984984008578700506248461665915377259163248984740442603826955596523116424932852397748679323216250417032623446959783364601371317712917166314178471816863107848690472211890666938842512056101280338673657359327647422093540721218581171757587991310210388318054262469757885543293332129176540827856646205342916281341203474721534967833032137442392025588636007062847975834622390402444560863602743005872446064193252835302347486345633738858509601792803139671458727409204538585023290092006897296389634015388134723314080946382950154905215065574527598657314991731130001457119880927738820707364189806706175490214922282115243043062793709386184667554647386271181488781103774790747626400314792785298794677984187008553776826884788005718284769041187303787102282590922545642558883151488694708499922394826933307293075246264730174531330073658164601194104113711855883995757306410428842342897374457202767883911606112133230892364763444547726998956409403914975135999381913894683405768411901822816330636427235013972698638131017022206469518116208246108562787665825328454172805691806519178172507728420381364891507395801237040781645160956352057966630020828383137577736525856023467474093350912692567239480284302283443341093344537124701312565178687189889026064398596101744116429183264418648000460385677899632753354745542939038924373133811166449568135637868777420244407550141202784989314880170276806191957014401214079777553176764886931347625689232480969789225880725304509296380997792664185608708410720173462557849745521572876313581744575066796566331199154659625721542695932903074257264589250922355296081912544190350192149037773650458305598776164274946130849352746957966533521718849914775085905739037611539864664929904346908532506767134087778595589780795445463639745560018175755442218296716669473971019013539821616667128586521164773136845014349204281576421576737727794202754434034852215733454024542226852812529160398616979678696088226892442400350610989760718477998946924606062755042335746301571144095843252280630639923358290354721882996498062999170735336296427077627357766699638864584044889570598483119169219951106483335919927212738101774025575486557563743984009554332746129533072327581305158328076517072421924008996909077701976518407794225648774338331944215332161334021888614848898957362477227699456445013426356570099741030425617031745492111759440250320588629270111496531295821923546508475490430743542448372201210600575206029679800009412163668156442559687301118619058295668056096414329145947689757246145575502034328792281118055638133108396659360161831522101974673224197606333437689140259023532816996949243064638853287668746735057898846142164077408764136092718358354142100160188579009952983054465631501666660039873414428013351942174148776201068263593805070881928975369171412653875424550064552332492668365249147660510714491148331260308328331945424309092348546099984073794481836560349475057211153011638827467257279583675121150785505276386182190218005392029453878549566948609847484983363724966489879761003338769401946634505547465939530968760856081436173462091626342322348925600323562665464245397059279099469103767878628648255634287551036637937188868377859746885939881627136963743441993841075696566258372072718011582387731868124404043693912088385622302827118180411093647531370385873401537921946565531857290697925898829506698626970115004714287245466710856684519879601085056063877988350582212756505273371773390731553917836304760366494758554143917215244132429897036857626066610874026020789633277253515976742468744749729043700744453313863645801127756594482634366203396359803051863836748563719481307602735656015460627460850910742357873132806617357969184476694031733761898547611446565400370538430021300392102984856469055855703508750778743833423128783442182771239022219486988009436453093828704900895547761811466047514951416867464574831297604554355751430307551718365877248257749110069484113228448808514530157246812499826124211439294535348733113851016040273681394233761608037773410503556876832473293732026042364010172691606230887412301882801144523855086795122231371414689038804651729510392733485329001412265195284249769240135193844374630221856228527315353875589939145138516205057475172010841866613824753799870486289554076355607681510844614201823088544087068105866408458217630519730014368167422262454225768731959692331771769092628165204693806119692155222383111671665472086278090120862911841913481081321367164724538984982154628016136591617481870437837540110120289102418559570855744230965937799855262089412189277264645173637730055764670608625181271446339568731807737926574654615614658958008338015746424904243856810740324001285323536616115642689569017335697391196920188783505541874839158696154395546224848311659367367891645725807343906266234155782971734820031243738206968288758192478234761559263544048906037470976748100021510935761410152028287633480422411239936968507584991112808087828837463172121812546740261842461950332337245517783061105917752823778674675231094043326365020702771253076213765624914170735622915817864436601056404603473730986829741639846378868499850179348104211448711666049984284545832732163918040474283244496164192764635792317434301246586345761706224080637017825444978506386111153302598745823700626936911228255845775933695864222336895864796948808507315679592171016383537747788715122910518575415923686201951668939190051275378635285178369470963035478561558755447148455563593624873180773947679341880692372970032490374226431090950502607435511676547149774559315398531254771525367184057155035952126916431960380331159763017003532326795026335716419009753428353718170965321432046706854860511741651924157457699012360681635545936272683951551260440570366937830162152022542657691713926846501649682804948229059529130924664945631760398842213154208514673680635414482159150065072846427236217193125951030930438801129570531246397731859390223381165781960985120079736425606709508624810017658802584628230430323566146690415543746710119958382127925570264835871128852002445949501888467400434412456429007565766336896994176110435749248980821566274775200334250577194861900977638909944132605630015783767584156652723768324312163747915900681707358924161347672957888187902726072136575448592717559236071474965672308430132921735676610233184004700033730697644891273095633017582464917870298046223442318736463352240560636844265261527357863666150764504788998966640172255953174410334194121002649424462316684640283436991228430792396333149659901149400753700601952462023636176291182779079365141702000379114512973541628205808923759780714549759827596247078308006289474071322312360642027407656267681595831156598760999943403978938606030174874838027675888438265759060664328005283578931094320693781562178301464643954814181712901162632439411914173990753510210154081956241683821067267869773477839511568078583691359939657144093268000467917668960920564341371344353241040356294446094873966957638999309589209938309819052630947265799908440261945533068659506679916535456963461036384400196567275069815780234788522912731768583161004602453075241021469941779102873654963773408233495242672259042666719947989125877725300211278076934490306814598912361935227697809919558535466232252548246847351507486321698451371255795799613152621658848915531666932571149337109905028798621038190272987196761263792935669949743507840154300227411732549819342329231943619076516430454318113142970892268934054773027670932261045314778455440257340433371942084903964621235342984845947292005976924007593552596562712878953070259619990961512934726122726599231560258257426063753868905359400522106976196082848366220088124111554743932435950636076543456508982089359649307424137986935313186832721774989124517124070859037137979651013460342023609046453095190348315218863024966580222971626928779902770877617887063448786453769299325070807462017288170301349034431996446216733621641608858714446438691199171926480069002482354902224660030894399654296560164510751529883933312396832942476825921373453464174822348067327087987321036867094456202829669086216672990080182381855353188777879175209154436942417914341061828418902417957938584500713419183871544303074877835385362083372419378395540683734975610369655781048230620216378974631331753983442094018469657088391921710743742492279903020619256608782887881850385139168168631175502661889272540525458852116758430095093244286236367134005950229254271634741338213832777373641796528152518640707866295105002558571599978428713456998285417149710557209846406257282473173861095352475487046597934630057769667100859070600580759399284373730006665492973316796965141103159141580379943510556717518284201695319234740043481313390487447090475154983618987268960386831129976658870380073292601333673476732118173646257438140346964343424343341978639009168700972611838674341075455139599199879182414030993553567208297588490621057083382021497643630677878864652744787955922190191243192441195003389439806069980420546375912054552889032097600234002684860754305654171376675380339769144070817788154485449687184847220977341385736143088477794171106775229802670430204143379304575667741271525006865879585806052774853664194400870826020253596189693168602446346640276649860528589328216791865793119849145578195526626737409554486305069307244668827910994163406883574546929656145204709175318212530422588269388567930677455175622626537674079670649628855997027517494935733556381947308876936921960963912006037697149925202405636855735592921549506703018130546728206268005946897732596960309589840942439795423013282846728659335467678062452675986774839680735412794473012532765818391869318720054708997896481874575249374089581569338909098668437172531329773074375850759520695180825462304020135976237083268257600206979223784103749625972834211379409673242207157305811669229697474340685154561370208855026508128140226959628311976199028931434787325132386419951616933292329745818344746082649248069601163189348790432526614203676467523824971682171625988464679693636442190287878726698006179605674669905785117128766428692991367248813216076274890546766432681939819796497366910459392711835695179968100023323482800963520530930115386928477089222660475630372520850237324040402981431797641708281018604451285087709770090698869052645583663689112552196382378128774264364838452606231712217308937925987522203314944196262384817843271079843781563579287560192299282855817466245079468059907334278845438918087697200217053140249288269011848143366329361116712988789417799891342646179266095209565436820080267017559458561048588708373739354618362949901122215438658362020100945308938845279984946224416920024391823337045627726282021121748012196868238274778129677473171709587999675020278831323708644915287057393422822669724890943714602777482364701342004504674405598846395455157441530799528782626555064131606512133288360148205014320163193192464661917276971570471537363920556165739900370525430212465958219051464881991732480920336076969381444248794536273431528773548606879537765541634835445950176658945586356472421532344584271447256043948240516088014016571558773511540365307146691845304760654474163693159641606841986186987226142603442488993007710805608744875132705817991470063372293870912840601127667076401769447934902944451291625216270805448621845771936234504532086890420092142999454863964751093982252851588995083962679864646736499425634531749607580680782166192831550523334413889777570580864060919859949215432084908689864943481942164187166331290352555974583562530050316721314931091325640434894571611451647845601288901192076842722041022688521081941838884471011104788302049529143555370374334580885076282416223367783240221936024661429123928135842573119159946844994128247377646620586033663651570030670739663641659845341537005409741079128963379926701294620657493440126520808776902596929893703620086943634169955746844175886110704975938389734883587948258623420738521806909316341930473091611223055415280090005291397107074747108143902469671712795093674336768354409037120727742720627060511717031414342004875866337271453489100595634709275581063655697154574490193021039315758898687965932614650504492071727023022734665597219489965039092776525187266377252280985561582166807767063889233039294004938058238547102813855463959364702624282247684744789780755712395539105861944731130343155559080904878099774162845517592307969414788671613992382321361740219145755697467430328522332400755585791359478008706824503637997745830281725203157681390732615290044336470682040518554714485372209638348204424439674964652700087643298812725722921471953361687930866864878114577021958836136103793192446029070252577635192198330850923554950401094714178204582653498005184060511140051977836275728471753203238014043488042891858102044001019505154656548893671076987966946768891685856864582008304145030105300241220563021768602176607143103446835850130061077086510318807035482574680343150078308922144478666635668138744820592268828148794926318613672976719180806934902070010924429938755458964935438081492518986392241574627010604945789226971063588172478137064221280666579688382600746038622238964179228634122564018108900762436666704918263149487589829917297007910312067239852489009739947658334201841231179965481434245951196250319612756746731305494329308271146388194743676950809749398397518551719463075041635094990930107272630911841573485507629208155235139002936536228529454895823291721635930109812983996793266666503799944182751678029561353601195130606131777027952061541637071413002763998222881151370951325501633648254100681957305867545176514367115592173332666487501907039685119755286674742345586149644922533906432989624608748655787435281546815778967697661592832489496962935313471580532650954247069838600680836305515403554154780157384861170736898658445977625457942594193281313536685902772756094664413399910523165948373062851269468931435772749660520575096812323959331169866254111365285894658030001634127582967203255556566437215735100998331848093359115936166522661673966053807550809049503113346174261072846609365479747152731809236694513951020598628777225814379847643987151015170291067468262685937989107239769069398125167570360690121134844903721476353160878950710018689777493892604106789406234188576651442537167207318323979233525804195305839978488762578220514360702815034505602992140467958084927424882133237310099880274452165680689154374583442824351164085777748571101965089441498859413111214175301583131538916176326594094122854572395725692142464319445117442884201125801393001062875806574520270301242420435602246849464632383185422084431271802964430641659506408988951423055429539285540874238982248196664485576641803114527994026508848286692792665025832114523451596935464741142592533041412530747619191348566409257495435077242324026244121274066385427766319597748962893786769566508866997975897046984278391064045215219516394452629114860603653729252639948518299030394262227317504499758418564660614742978615853211212540355351629415523163428149602887716297762255917121908306836209332181898283407426147718916103688364814447954750620740264435781980433980506653161826845988963206480536661640202533750178951760925572831888582486116255628895325386688011961790551629661357965682778680899689588732155198849166136859137365519356501719589379321025555110109949793721920384054772491853421231170011250578202818088552500367537242387176459001172647174262327211014468702630455184498933281577734256079617753696416247020020180533335748910725891297239976764002231767686157264600071326552437226830059410020811816793677577033341086199536341339827747288280690679883606403447473959370995249793994812839346180901799009836603512789843162216407551706127327129791472444199403865805797375149337447787967942323641996467204931864587905255969107997424200079340762202854704496590095283297911935784821154959116225436038934878413075684900031412288748742599533094533651250717307083021989476202983704725963410773266794693905082197363990620458553515679334835055993395959161734618333519212311063827501969074602864229409596398708942046966033143569153317402233885675313775199436338298409783060706407249326779111695996402645157259154558695903540208132031919471618000144622621228641949727164265220362750628460243087390875776214406596530717323953979202342078210677829659503158152301169434991975690834634021113780785874296292099636270183173271928348799411557635044920318373505388406470373795084741617320765918555232904463180721620991165937294884005959355106814717677734352011871122488590356000313013191603484086961181512976381167069868260103654593162609453619480122860430208088714046850986534061769223390527421748693385152412983543365363476927144027585747407429412951813853628043028471736552482260387565957148219457513639555802134393018182502859203395521328871053692857042556068422690771906891319760612842955652267940819110337633543213371394761967513732921596449014313007106308226256341268715313836902526071812676091943313083356742421106360601966774494405539909478384474532940747002281144422321477964678577752835909819595574460734706349929037685132304368293514031237104862533162999260299309280441655838607350640139043513385282086337635337891602751894038860643490089796462257438956803322033868132091953897214953040207768370835403925512373021032741399657833240264477705177413595953226758454515106534296876180711359442513656091663538512815617120233677227479816480319181426203992083599830529905245647615605230907891245406599456196065312187927388851865299519284686418163650896398339793577730011886483263043710089326000155111246367932004756289000989756938435291091180674706689015046319061233191271415497375255383894822130510256159004179163322292449549872069690108546266372711860604281775013520890541236356761059107203892242875383299436252149769564680107889785506005716232498810667331883886450410003246980118075788775181737527391799393487529548050433556368065396447789893799737439677315676209467533650201931433919317990573130059030845382670786091612321612246075803122486026839644886252698904023032066931615171575790161633169089752283205142669750745274652938350633859307198738950260368572431218009898259489229256201081280048493977967692489155910715679948903666320588266202848957650464051639086558508739083382903267997308951951561675565471644306948812047132836807060101060675242279895219043236112796181228828594977023949995119304565273784192415886692168366762835039139695833640802051612260597751735181608230613381994746587308213706659073226562353246329073872269813862373886216741399209425033362700706726290379241159336549311596660412523845021190846568780904497564017944907889448050973675005201285382375884087131704956244452500925504098558123143009117669768191540919993477943214175420910047560523141603303535368451176399453319402238496270049782662881539414121200256929981688311117364443188499633926284217414685683148857631838118430761195563177598574429276286382792373424066754534879021424667252964114684090738619316396592059243890116961567659614257628314089855126777810901348391681714602973317871241116466335807022792833949412428048832742237752822271391798051176526686701663484556689522529873779332314995890084202345473083038839516335594455506279015836296811452244644001726455762111081207403171212850747739834786059265810739668953495171680573582951173638425344645198157558183869229251143186055473788567167516543263867884466630368935385405451446132735575831514058611196416998631908950933686698925113511752285305672046039216575320146536352598003782433708688226408087952988719000991714752140830807180081598858900361352035999018483367545974769096201049598844470750348992237315879989686965989302523463781872069834635977727653511726160495575796356844254458201784373326441714688646584605665115979133788970925680183029410382898481458778147702812377519552608308044024825509798101676482103606366832989848735441993817188064593454213716135319399192298040678796796499833216306453232713626092844305068261424271403360188515236945736584855969573217001789211680284424284427696524252430488817508751839673700351392062278048815269510765302929553742233362452209097769812167819894519748761593029945693481914434720207815668517265925083759440548319357913455664419720330876570074730626643947074040086938720302445704278696165174476591357015063417343968609088762139545796148737909382738807546656046037218007041651993976571710847576917906107339580482497305395811722292911578396032546403746413607896581089228635810575792925642001574825931867941255226582959206623676840410857455647419499035066665216278991244003859956343391974512272347799136776611149234410249262295528751162554572337781745596496395009383676532478445282749934565811478519360686733430897428888279016718360237940599421823231466062163577478308416669318430574138890670831474666766449321815067729852363066689900530422997575923527082308604119819913223992753375553615791450169774426605788461665159211544882108840237295994886161061462906459177844182283858753100054134597925492642411026467654467368570034352162945819820043347310179298522139723237770277687760546938778897304902498679705191130062067965764164783221352155429622966616014169138873463221185918417782063840982547793372300686738923031400382476583324538669216331520699091278428489172232213939712083028545704752147031979902976145334829361846548018981004822125672914878084382786591537038449851142264588031277477158132246603132783116903580018756698529258121628104165857229772565889982675787127422457310062663695428788096473501806327714722009695383836795565192350635410259931997510120542459412570563176491209779137109867776892764225382667612588294261136149074573802974302928817566748908969250242317024120474962404849135993832490910505974404058352851109728625572252300766366258049497229213191883562557068739867801373069219203691208141789441981234434613854051887024403990665587237055455301772124276195704891454344673337466941344016858739207809475901912547750610555882251257651906293195254414205613524334024180273776992177895100173944920774362246607699715643041839933873891293268641177953808850609228730698778456598039846598237467872369058778085303332408948730674467433497305552497716351306635504470267201859871356668086828617175236635920495543895660866076236040943871167334989806864710677948033267796436951242113346908028227121281311837964144838364728395965856435952620995904323430116579615662171239081725945045517507577337734864959326926258648913766526862917867456397940129371938871631079147297722573424905792761714299810079820136526194743719722986539203137551711235133544473035334104829052387422925020919517659457240524506400356799819984793375422417485150124309813617344846426350321890373010759096016557317803466999982357526886118142481205650836303420445930651542317481666018161478827139724748784470587104156756481864889270045960859566829159694462371580200096234212120408427751416725828484936523088009432697606358402184401085461111588793538154659201529272300385043854884563250974789736411934454222891393919103912367838672441378789017548298038492075489237073087366880599724600790953676144541416669586503304898208750136078930380830483316291392910258109561342484303442309121127445787006576834433322243854646620116573716031393114445131232972830253139367658172904484728291064036188677016777909835776660744087589154950859223936654544952821358525304583805605801969604929322803678779021486238480635776950891958114864848802054457316066696170100624253798536746317556514366803189251442565780593514274587523868395814051855687065763853442478867590984825163765194050057450656268974390117583001992864652696141443131882639314397149468755751974672850949371591022122227521229951786594213871388299924354286833422473269732450365992188446531806723654356846717505236875510330233804087576183977201893992814727641687698817331993837956578213951290653143765151783256962815485526605995551151976775916672609133433908275708177773913199313666559373789673176868501425180312911569261165888500786770745279754602099409091915700272652679746410057591066895869386723324345118462045780833463466618593509889851459520012235422280516602622383338264651128595811586587437457595136615064394533440712205187583700475167858062249587657339705416868665308386283957129713164868501759465349971755654949215178530258972238622768005737400403234530975741656502920588860141531635006094176150436208634491331245483613167078892940412190883839448021032103087086158844700583803573125678321890765984751940851322992999989933380808973944369245080878279783697719484042912962931303997110850279194616728717452722480538780316671546453128624628729481148949193074785815560343890448718443545068241999596001471448033185245187152648539507784388111084156337016301663359559291623870515614162456362471673360843210910417735552399961915581895736534888111915906955472833997628580032448295670315854264185831720628091484003162461062915206254417853048064570907217078614466628782999112492455732292264961509175530111951340450296431052475710084380303454754131068239478613430022698003555704739640144413217523602320981306697632784785849024344850762038703010235344270159567312479601307348451562329409036996666927232327983804843186401789113476225863709023026101831694499431333636316231945975795488100162953328537448941142391152970687589525517280169948875022669553870487046029977623499603083625705085564462771654422302179346682013735020255481329216299610731539223340638763188342768637133848493388274663939038548054493023193206794440373908391079122282138234197830089189347037629662778031081330290174908963018416968694568832115280394061471999788534574867495539249005390464647716948054137235292029562427571237559215242278306088453288778579509052349527146211082504179819287691849255815063448120991385708034784644253843736872531526119527983259476581481750902531068829342357170641911169107186304422208262807020512060924426227235337736466876876123034012965151454049776665516824606141405594263990786817034751885063916797609189308530420420996128791442030670131884592171142257159715673265578048189744703370572311472129134388971784626336300525947018646928840904342514125402606045083263513713757474851878027311767410296990032337419185459324343237859132644836481861780242903609561110858398942884322970057914559641014880354263343935499483401157098757800274302593132117456627109847302971787789761765584235514476601258478101638781283437635086035445305673656388027253851306189135286027698122778457568616299598425237728948495063436301328756834705625186003387983340190047731459869673859925202007208171679330510991702277075700116594527603882443862999488441005197592364699322095038069119660256859405610082498768345587377939650663489971156251129299109041678913279870231225221152062487087682048370607584803171208043428483914971953197163150008784210892920941205012935945025160195062307816822731457735175719513988752439777229963057978284553026456397371912655993695702889633229671057487419947747153210565340961242682888576413749716335496658846787561416047303578161164661227000907218553006133993487326662069160392884600008448738864331490106723277141425192878637734338589627808740285912748216293198249516150590507706130857247054522604450588657976365396433298816364939791553810441505769535529556204413153402119508869116041621516022145858872504473209291263771219587117652093657341986836903133728575506386332937632612814267702303463535100419962679596307730057163349327977261712203755370586491565199815870441746499337322692063204939181156524594853299357241035009194517535986267503412258195903734190781128477751704771710224216572711990258674412648723338378268081861097848630874574044923040517465693860643861469541325051884254786403976354359227417338890897418057195992927122455215362555336677336020356554112792837911287129344800879780146767953571687840702086927681692015672049291567760936966893648656842370113231493519145642368572752252510094102891554819479051031219232238106626457448148582318408732661376746109032226766324796122727437993667886691169446071065586645148314264832792148884539292205558078713077352779528972862935469609638354458804249892632388108166785484856529163509431169373279374011796609929638618920561868411123273562832666354635706845598895176525253731843217593661471967522945626263486584365199240657163682397038618434991913773788726702992635866617021431319442679497143743219424609191834100003568318616155721115540385173774046626473850067943966106431839177465669820736757327472540355199315199616764960131098052634856910140198528680068370066182522883133462348336440796071916886134273599117737537441277325026646521346518014792517506628967919658356191172557351365831682523251771435951292412107484643009068525731329492026463280679032941788420440766850422697830892374279502235785482807570174889654907907177708695554489935783389839020988366666737983432612636601360449994790030642894616356767660048803761884403668151553564380954721418216904904733191427884393717767110738078452401910377758077727711071940689305602195281949393222567551631800909490457927399323771762076667163390632362946247115675974411008910135410982809324687708368006021309830882464902757967566563190424305575831464202000355936303314980874113971445192958851252940885694357826070367793238008424552404825768152328568768462895115632098603955004454721543906138726349500074437047111158969505832447762995212823392439302702584002853381350340589972849778085387269081027236673645819914047298163281658618160315776223703950866647053250601508697762797968110303575568526445024936731850819000645819750943698233250463141175436884141881474274055317412303594042998496544022539926571554011208255660635361455946390990778913493293293478208460102668549315297718166159681415207069298928594597502409054036318932469685497946345104346675363426236676595028316613560013434416564395127460887069600748096026798971257067096240259767247299503331603538827249512858819472999256862353777674606283047208108216124295050605008123309575984522122778290973611720577166074726712900900554814893964902938208833157774560941792150382448166990274214455300892168431855760742710552180784793091111047384258005121450867716117274669413909178774960636437608196670752691667287772406340568434180850866394405436957369273384982242085421374000037059681289073435215450602903982735603692749945165953707725032912251882922918510744548424315966837471981175675778647347151231543792540100782205373273101465294756038427844810436633305076631090512603777956309358291006055063378525858741432676396410914442345217836545578193386189260103492290481766401668525605783889127826322247208700474002974137633772668441071959770734053697791922510575462144437107245588573736794249113811441689268010199935344239089775334229313170379628857127628640903127844878874648232461467406947924128804340381384191494615502315785520360502979607140885924435463162848836260047031097431123368816850223562988208979343039833911567038830279954338242652818228113486343810724916899139135057597553139597999685376212079379551830092954586822135388699545826848958442310720010912802353354645898844741168987391660097558955791421411866762579440512706759763373006466018080537750118718548999470501375511388600954480514647311104606001284081919461170869339846830406599038788892437783520487867778193055097874434165647284126527994557760825379464479295657489364277570107973618991378482867796727669535521202592958648358016863368745979673613804495064036134032262856482688631067067256987050511363656128769687199086280867229359544243754629690300036639636112652014995785341668228508705574117704105572674929536277776010657958755446967848698305620082176645300894331762639383921881081635374855916887225886654118817211318633987719438883188160773793784647578031325139368048649068616377895336083127437553998629116088329588132559468062349685211569997522254031110877780444863990230801166726969271639767690092747118497812778721521063172358961719380706515280795267572352092876454028706464110540779555840574336756014281688319687742786947545109685815958915185514276544240160248924818998273609871011090027432591123875580640231591553896301828683240706566567719137041310872966008967179623075119845237618223967714110728223956975172114621251510498281629341610971453276297517807916243124430983167660649726378526350068207137427555183033503319733401512401292977436109085333169159605067418212762970853807042812679685642565854760344568196122779423101147634616190593566385150639550885415127717704173365080117912700604018171023096738791902459618888838199609818587161576539424031458941799807067695137670068705408396364971916266748199427662890430808852126035736085237476765225728428757102924404551199888715747131814939501894704591542782793240032254595880542632771743046633994657936934460589826436568622011909314570723123552994818926546764927150310665969952839857386587572860194370357124557914178176703572385369076441036763813233183272343170152205587604964485658887797309225863355486870081100514727909000755519257809712134748207130722528018683872249621821914548600869771859538796883894787486903194147278778297775889562056916728020181536334310050193006469668721418199201075454543221996820755577476789185036057747432928146322697989692175043768231792544198072290442579024489785364834679859344944986412547462891537139783978114281253361465129622493915243582063425706817001999767100283417121791393256763641019758194483951083614492366006867377393277282022403676914137901481305617559547185201552409863545586881385502574122158857092676775945797537576869798793646806056131067795271693459285998425620636050411412230823081904668171364924299580771810375589306708156659823745532591003795034913519038759479551995800136220436937868137205612502993623165704038628966015367643184467850376746456700112019060755056223934409564626872644235342299837969757882544585077701626604886133466565158081532959274068701631046819311675671668411533814798802721936732442181339763522691023197739728416857123353883375266529834253567475283837547250088596682773641476296448624941466560770948654577110666089547391293372941987684331236305913081202180282468611098691092838920698914544595623462240290145839319881395948429039177735561422466665244395989129465200438693187293814605919990092676096576597325287639490369099426657333123016299818498941067928217629990226824336830335464516171946530810830677704915594171400020690094689115359019092158673179204302398061521244698628983342996542430343350589252721970719837786493357600870862115338558730418296363763749363310394313469038804023355053282497846058833876223790273056488088405962782503192616679384820013282003674129540595859357403916785131155122426479452524178568438833133478805289428554854214086447750980882523236064904902529042337744805667026402382734287933508721103555888876534001238324422992348938092008811065840920887994576433912353080372608098362983494129059220206718233537075695174173265264203070353729873449089078670444338474206992118369199763833676950951026917785109416777806334898273576236412416376617253691008645494202114615675596137203424872334636133769183266863524038891120227377185516325134958740342090448042806684154099126298290691042078127360831234549772915766585052936979011835319989539813125080183481562860291118579892857759255892786848846778240041436434250393559976248134621493024703489130169506511574785725544694467147274815513453821858097006640060803947465049805535447986244930054889416605052802576458385365907830187492829183512320732067495948141212157924610046724317348532816284908496089787018216882327829476343157392045109592014583141460323234477555792094528031162941553927043406364148631901192562063478380314821428609990268891390633235701392461529558368794043147710188160288444440844464050600969269467706024063926081007549182482666168488287469380444740907232300386650917559770868520692230023006863176014907509966926050147942324371668714900440994732386598977424468552774905142117961988970724802091481825790031328072054335366709005949887413325542971131611544010993393870049262502312434193775243270828557642702149067125879654694331096510412339950542148998086590665815107479141298687475017938321384048273362018386878257604069264359991532302067698411775599941806653308212745209235842523404434601971759628733990672522536038342592943687878689387503898442327894606880219243909233219697282675751656207708353214885534555762808032041657422988757651213035085387143553358991574971040656607436186578634807116819015563373181758135713482617839446231771296985374767636721375520603448892611681334679462540285451789264729836097320678240038751432049632952149891796589735319985618849949226690814910003347978021602789519561600873061227397228024824903110923271190983474277220854592081493756774239688703931397000061075148697456652900281195879936418247850662284593906939403954044778468668695631146197776422563284315495823697460308578128361348708385243862671630644666628491447935735723262819557114278680847970664822130129548148390290812508726635538563154676963168260572295332350526434774305796469492208536574771359585579299726811045689221519893942559996785102382074755199282327023294578722935510987267960411637786802327621260675022684203172936319259264352519034744507567694532880476250734403944932791340471325341148305207153166830195355683475968874292488235554570340250059121492772637950784406645584597697230719814329683640805425225535322159877380501197817702349108680308191876697148200492190462961366778417426059287792046768577326729403040841110165419921452585798797015026065850244877287128472138640049296262918896848796519409686849083719049311370140729173632442212047527672332981079805827972373029348272715057855156499089866894452649398709295664622853492179983818425418429053917481541753599069286473706705415317084623545959851601322608666809052461333234411573909357664754787641671967759633529090678161084863224746046349420421511809557310898036732864571500080530357985149902310028116377652273452121087798894750497483332429579129497361400813259980737605453997236916146121673999239981851050480248416109067949763036817579185991006584507948871410098553448784792366905003717944356968526188696215112798634055422417859772252071977500753606125808749173734218590591093572253483596400269720037273171173658648449114383134863295380457619996948568203408351346745542481590391170083061839409241662857218707672627552025870284586410892549207346444024771545674341946643120375339265344289370994336284427085363062640089738154189164850087897032528218290838959841942901598310542840204486901494755369874523696927455454703870505824231958004346440867542576766903342836183716771216329894152007549394207262106029375918744909259114626943830676041911344694521839881063994814336800324012965626056111201506774277058999355928076539623631779648698236965503252173527823806233511309948893368388922011361428841902101702088205180411239543329111885329598058752960131550140641037844730499855829464660949998901212421311363153223746117444288539367897108408783300229362195715822794889853754527962974045826045222879871640324290191192278811197871870746796327102093217699262347164228966093757717855799953043917968059798772766202915624597804957090899010908687362610782283394098257067597866879845363829333362173628414598338141553866830300968990584218231987516949076029017042145077003262915085184263227942521305047257189417201127663470257278006160389583119642434897050406633863000204734770938278534964319876686045229101895190439961297944038882488293305247338782935131892021149555206848364274196393971456343304850636158995638016915747957485516761102730863730872379091006371232568086312707116545805293616350868753690146849538509510363625233396680172161192629847116322828752508504061490359572133830216138744643176535619232819621126712777368556117329743224598045689277601451723180482534702520557516716369169130688495719567324307107087862770928230073796706974411235241194520676999042347819713900643319712532431594176753685516140102359221650104833454137740525781399595246446235881995892010348857546531202353324557414355306887414006297169184601950769380205700119993572424616417060928530100185497394494133868136601810048364289121852095902757859760797219084293328908200862104682470973747702524355254422834717186392027178269517062811150564064838867443359058015662785699759887043311683847599546690618786290840696374593797230669165604841262876494676022593947618005974505565780370131636796826747216687335308890207369540376893246832164964680623422866140996697024322140743282416068881313120498555439451281944139450179826253904615659261186807585741638790135504943599280846300381822285964269071001743646207182739051555274308930518317365149318400097215642426004446041827422387254751188914712385249608526747772688948829610160913543158388202622403202227237949049108249569054326227950210163028050254610398180489156456047380925739176304414994760212799141024269240017753508529145038394479968331103998250357618407817635884553234444119906850237116387179001139064376381597887214976810120590517435012665735913812168806689038647970294270529968579157911879411986499141771533341040583722229454181170410465448333999452001407981183396732340201207305737524887529208640791250729953667136763604112895437415393010700060151779477144006564355142757764796617655629648665595888584748564592628648643168058700953079116680151856582628066478578944183603344929335938733087006388349116671458949257999131671731857009046011851098580662681836012436589680936360255259609243134880887259058869736355547160180321083081906604362046076854220283901738862763953232154018846621346185853457914472218587886854249727265715875301165625514322231724859708319403886141140886915766768363665675625474479131938915494960428677679246861004048118088399486963695688258815662843536104519513079811642458386377432798476763054867024348779058109325203023274141672221745638841387309540629474667665109039163373382564826623984583738454633762098732919017018292315029511557883900428204725229200806729178699882834975644258106503290681493038969067868936344827441878753507175505712928411485985622358369939558765518876061016685258891463496561471955256379875444562849219340880852322327780068854100836632669319236154178095790428535939388135557088449180156550633846556468672383654511650339746958606912817388501887959192603846893528022081472582034058032417792954534069689103034202891602108298368981776460909396140184187566998284672499863824145522204093439596716062104614403273949119710739185282626017419115335932266456351447247496120954398311033228191960094011024211258121335854191131016528803974707351518585135376811955531613814410736530097667467054455850819297019760432824783702500998154907324354381254032916681221952564361661039491858114951069879743524890876560241828177212287184513107446762010488925554349120458411102519098026087915971523841140595012182840500682736919111529846614856675488729794858317340932761935804163327785044140874205972251891271906331171420692959580455604175154040965620417854064334142742839812000463647462783831887291526936393028063223915536765151935405660738454575188778724009910157985909494154460794983669845353673482523270517686829466742205446425946821583154086717530294298498876348844799498159213554955896523661077439399224224293099305381171391661856685884122413756684170968974471781633878669435139751306028916672571181910565839814548175366128275441287761655189593587306823598030565564178843528509991351780572016107892443717088719097446222997731553129378274187577533693801742513442374078593887265041998055781739076416489383628648270712270341558544300096181920152414395307335198264766325810054265072897205466377858693676165749541433399882068378553031919508045804435558535503932429951521747868200871908800965827099610063175053919785905107987477481015325187221100853040431113514383429260389319390823133812071344408978608180562359830207958776852701432068159124192291767254996783901368817983544260692811461408865682996927037031038350512980218653145644922300140430213429138208275106964209321218358102963176087096620989351650268380841036917083835078275561996154056383200759577707834480360349859165753239341841051815715087737838025335002080803412232599243374836346245100600764410763119313327646757903547256610660465945203993069959276424657624915067379717164442882980958977188290806115698463721894136911358916129355827280188515092739467495232401772169811126760387532926433729349980023456332527264590376796046843276201849115647108932966852956092798668971106507837447627349593358420108187152557038194530514263351132182553874778484459280308452945854755027973521313892092618154383452334004338437677066361477117118971781884510005972724374115043286906477441250841582712570474524635879290639234640833832247346324490851850201971388292285761650749798262424003075859789914737744970643659539641828976446359371093271595847109867106125685819079160650546216215580507747588582351246785897908477642409450627674173383533137358526027181624571885638586423363735499065663577065686481887196596535410963117571569865384394553734593276646136966865829318580863062987871690455705391810314097816781027149294202358026593565180790780133664592343451842671460733770349472832309719563242576619585021488432653601794460668443424680930637761563711287234082690915920445529819477734712371975898503163679886305364338688735116386640887956347651564200313133113210907594936521747220208798331674082021577107711637933471253944851614798965270738075447176582390438894718338301844376746182319862865273356455118264191942567702363383420470363095582647957517351324287524216066858748624160025489944678098056841193750219373188201393900357241360268629487477858039921892120199517845696858059385344252952514398427243121431765286716866118760977833824543687288488148672524083844193858525177960692957718589291935753604278251265880778837187848415551433695429115497904362462836616603934593536738458351262442474647729561389220876568642028018662220722297513629786151268234302616081124904806850494574410716486373235934548205109940137618080549613715818946297242166689065505042577723239286052101075520880883291046737862015851633307472062597448982361956595258586146785320343428052222274795396042585127864883131082677600551909928634438682324563107957680221563772563043043826870479115401831999059378743235116543410421442588332321131238668401661530624238519300015958638224142323005732015643887531138326294829189875591899751545257475225036156597632120052777427830203652155265411922048301934404075693157105651841575571019254413188988681063359547498475683567857397997766907850921766102236150081066530820393212669575781389656282904196287473166956644345677714075234517927191637064715927937275354202944872036516525185546021489715881506331160319178887930290658086560706407763650796128892751692464238464837846433274402573705205395672533711227683513671935407692995384157646137504053450828173458804463312815084702246191973532816227447724951322084057784123378999217674104237753688813371121286391918950377625168350699321949840044146217539470004017696328255092833531379806229551459197869804353324895964624902372295797315393407616590983964875709294008030316076992878579555833659909587240593324958750713075584761142674120857361395412131466467680177526874155984597112707936623760137102754946983487813383194711933625131776409699764780644062548082789104104748069335944101064037246855577619000730343468399518887086726230284745264453052624012726986856427320269676073164161001476180123031330189928553218385667807534265234620651040681429543731429965808230523858456644710943940561207120415332181559654463881011070889100344641455410766744395982555163479121834570575274732444089892770643709948026389374770877467517667257651263688339341589412130601100951398301610223110763435376676939051478170178483875179479076960770618796452294399963163459933729977634938901493309724190855001028492747576311772848214055088019468041963112479489824886115620224858938128405431476714730317521550424774263512859001936928939855800679626632802319736135801766151101719707483422291011039923819290594838199660876887782582328615980114673524931638097603668041066595562652152044775521230780481818247553139293804693073574337557056106698143981180744724199709189591929818645809412321271589327246492334769131003318172685529658838098826508064355998226271056943088763940469183541777750205458587003804471484114929891650319184710782510758773425001973978861811799773499935942505679980695249536782068370516081611631774759224406663417253551100372005311885308473331599834189956543507500360875921331228670162539383057106157217042786783329497512131316565126488763914802595789194495633205250761800562793528151185890681189493009698376830081988855167658698628204305217492469602973306974008298900793406958710770070894847147069533523790239802366562690744351962751003323492069150792951551707657971527004391525951690927207044679427916138401342477537538066681138652316548669301128097588412380285573726359080070517057771881632592141943667264830016686490216700617296834599277589321935314571022365872795793757329657075206685114938389167612627015973686504378839741256370504189270208186049539996747565936010874017665399541617120844707750532678591860738693636067310286866697093256666394716992750839918743764024032279900264800008849739306039204326443079917480543292212553979650938127113837657283810414000888593709897417957162010227851550683904396859148768926579646033232050774370610229896554116975393033314995843261687974684363569508058937269426644164820339600492651415667837566839019880965485246967115654778541090727917510323427418667342036979626113426256113814192658997929753612324674710425784834574367278496185129145481218384459201854826505533009199513787232006433983758544482591144760386466755064684385289754344894938717417636310632858435305221284723047580380208452727648681000155331355385755845878189503753873796050613141146647311399755712929743575829040757260598099742595036012188267067056605879514610900453522632533281182694380480356944559547807054464874344330642543242806303152823026594267389211410027867497494090633180102588663042021361006973638502723017861602479394934907709666162499175589835288180947008186793446741599068946604970860882500318721342835380699128376146768396124253125721298136548853690514197937990028901751976659697433868809733473955539470611535247567734723760307617447085690598603490487577367805700864296814959092364704897418475470196729043576296673282546421737102530613278271075240052337411178578727328754255099858003010861538082034153906255147269462495362458592261715333989402157051608821908743255950791660185841340765945169759209254255000262050261504239432437594806737067697110699165041622058563034066776386313737092200257369287809408549140016786165629682775678905133095937177453643605048205966253504810201386804253305938300614316411567485780161654137806721937394245187953685731709484422335744022618847426412622504223056990327702142558797991830007027649822589924870994157814334775230708057610438589150080086693371746196270146989809645690577153749322115422839699785111077774725841976143079601545402048670936572693994296579581493229215668473788693897019400868270762125314673337888081507132536143767554620642829469356426743813614831591573781173162613225901184492924308900553795708170100581187792202003763662284959478671552826600551957938293198085118567081570597633038896966733695110175887998550945646018663809447453845735051648135917444831713087294011488315049652686229763552613218784917395132626828756468836454851836267425832412176203212292324533624592290988190519586899787989765819930230425961335187059384692847788527023149294592010524861203961433645562147118416878443807674361405098686309645545622035724243314453735496645167311902041828249434000867709758771159142137522985300614147797793910076606611291536729496961826192260380530020515354676041250390843508708585143480771743558373193348180764803017443118238870812984547828859037432285670372554342259908196884104013499666335423730540099760778061976553521960367244135255930059676363410335771322583596830146652915949374725487781221134138485972946523076019714601361757634057549024189512446762824917122215791943723054726452145341254158085900894583196025640567456265400581592535658979445189968742181906690427975814844576498629233951750015389568768664656074870273001326855294227121120492333257898353437774430522570198943541834343846796974164011692343918504646798604893002115631424093693681364875121191528328032002582469344494775924476940481211119321177176515858250707330055836165609529056048052802650253655088907936829671331554429176455773139529482212838773674244636903806776748255435084809540736218558597669513467188307389435674192142673230975167746272634907451251901279335357664345256987428792865190134499693248933835932247265156903642184782874412760296515703183932686714480969171982500521821378602232851325514456872495480924794669173937940743807371057503190089265250819501732174974294165811094649865138481244625859876034088776105156940415046701731349686355754143895112458330334592654936685179084297961228062714318487611882720328556171403483699470193531302666057131776881360404354773336688600025571986713227523469770951196780882601424696881537632894582332328393613606235464644222769293484105568656888240940085494250473298588637163105654812151366719124198381755772623890523544557531380065209630340125637570293637377467317871974295378867268635400643975567454709397099632576692775046174213535926184110220336883552854041765698561926949687723823520940038894247369481009457374092189666490938197440192318571407230213081836520206495956644027309070253187830175540494749576356550319982148763841752798712771082648594370478020190023236483030657826602003963115028532675279389300897777139335434185197033854148425344515374651364113041954974229005018257005032860591038479649338709898967137831037787015706658892410542059571456205364589741954769209383795654084814899344793959232659669403809508358441818195003903352566068402732492343318228644744258585323801085017038155993375935096680060808228293640454315179274724539713950972782876592120949004002908086777551172148611134317447819348524600360607081871116812510311436011159863398921797822985329334361103351041838758796222290703528869515091436127866653066242611855141709646240734919503466162092134394322215255389760689055904959909021361641971564059501638923569344164967823588123261153942892632035296600076491078344692698588516181126530115856494083803504876584256037252271719751608623589545656869853685731708706447418501127486050334266269040903430169190142269053007748397359035402981296628258814675889512394322752288497628092502406457522158847755367733681522324393345454444081532859900096881755139498961116754053812135633561566211769179188965087515951018666580473612446758179328356415642298729673177500637490467680724690281704621365634679281714240733048354690945419690192168469876747303176938205848701364249939478464710239278558422855535462540226389839784532435892267910892784581933248153657799937697713685908108979647964597793662280586213061264986975022175178810859474573144766624367089639468816610003743011887363239726723990167326426701524017921451267523189246047213419548097851042585917548141789713078559470559451572909843247874826964563384635782761716968699389665077419613781629143293688016948166856302563996820878934613175460482479875395239455759386107787273971932815477590773433225199527261621267314976575802650163004967881224923599619951094453609919690718788253052094277101778445807504418805798658886467773565177949634836859991643273234190301477613577156643672269029306011399322847426634904211584458434161926273515715902475979706511466314141950883124590887901969020135640370369411901504385003652366182769638810638637551007648278763239201724690708840820125244046246240723747083384924375736833648972338991672316334253058122349483703477329653294722000731853361499049516778854759473808705339759910461457328066962723040501592049556537157358697597552662164191280193693611450140195730153250282105159392150053814252593776685050564231075397595535265296865675287858905430381861099939288311235018921650254106639068737095518269683418083006793046443018709582935750383036929744407928681124179038452538150023954225143681366283909013768873259352852894584165226143845290094278566838468003033483799175652520945961258499569331011591425794483438620365287990186267710621121562711889857095577513465815362808892720785798312539172163596003607465910419082146896758538449719083050379870269219008126633092687778150994984744257546112497973865358186231148573635961671224305290007646077117319122699835355523355436099617317758086244942651772272918224213146034591305390066311998820687214931828205330081248678515251382448920720760279964960902206801384992556482859786958058348178256655090533697671447810706851650599647746998612873125988688777318457556436972791346247613382836283297174980614835419462381540719899274142480267415506013340623380390800137944814734213646483022695755765400335257296077842761592008237996207527810721803664999724757618076117109582962866528585494413173951534418599670214257965108898238359160309123181618779689558967630819956897881789398510896114188733562660549287819495468408610388645191391416056196327094759711792334489200737259404008857380006373449931486009259554702911793428058757134960736761489980400513957515172264380729465383812672120944264618916852083515647575660379721271858574161238515059246142707986418270583382127393491928711871433102948614358162989315961158536979936403798326469200104263055615861800164774702741343173538645632603113790809206462172884289607383571377818037848633616566838492571897940693891056040031155160483183636575388247309456413249691968196226972407214146437202450173436917396559451101450592500680781682723101245380440300335470991366775880955189051911105080794769273446157272892268830686363187012988778754517069630654796406490490206818155077457661161950107360604646432165446154393449058530863457396713569558458369354247053050104467072177470002660058850479283603688182069845626818819239248850761222974883046481285216554786682107968307186111260854516096675169397824610489096527420515751843975789194714715824016136031629317505266106587398205472202670823142986708774177450249290837111586418315285597978318902424466065539632729241719317102713425085442263384094364292370661909232183249815778213111012124181438684280093650549858683917894013224573594490282962318705874554368976157932341978278637987398502526278765382223958233967906282168480559601631576181733609978793480868093702385032852003296592565892200966852730791096736912357768672937301881200110494422778411477521113396813871578485399147056537008871681797888284609829289171875239842677118932925682489495823967986862489248817548439059540996044276617150760433679952910830923737734657174924308719583734511345755523548616274659340022863926486494650700176108857373060912909460274695282898797457141933348537155460472214538614676632783834322682043709665551515295772123123173547745983461953178934022709628392140250269966886813618139922040232219882376866476190712639486068270945724530890727963026817980122233135904954280127120743672887784571311825823562992065643354199464624065543423579800660060523729213578734208811758334600322055439688057725199281512764065575989128351376642094804016452848307037011031271763882082444259732296559504674100839016141717052092387421236602143422272549445979760610054660898559531479317015307831320337562934624629912155138787265886161436148230595293219034832740778123461108316655472210643600319927215702416238187155075304616525595266319876914500935608528020983231048575894173550969314283467078277612343599153627410430799322436626519885388606764684755452716151225105104844205782947402429685480083326251949331435299146767924794000891789295726452538371093441237835363387844330211593684431637080976664443874872837953182622586638276843127757913409753823308086421886944620398084068498593338824398676002399874399760463095638135750500054509426212329804750733622748070548679378724028173863333112310503951546516588471804498129987111924408263054361792638929208610195000419770928996370419543869098275728651861916557895776876414480942661792393923594749221559427361535292772953667206689581467560321356099448006363276489018724870420986067013012670520155207822039781441966326119011456625079502187631938449324473922851836868470176990681784059391704676690370844184475701022193975862471724944144450535178730976455636959117463604357243611748413919595018707526926004359404287892703463958763381911634076276262864394198954526657340937082123565345378838778519632340110907120609250555473231954186411313481142898990681247993629511865820425481864688868114596511142717575493624982948940781693353402979212509938006716291735848792512720694925016935401584138409473604510104178924116065856871732572960019833598743673247940169987300762631468468085565462170223754517171805894827821802563385105540128647270119103862467982433569896059031563723413923295900953691108031768254413243534860646068084968789377621875025243339874758327001529568661289889114550043401339222361911059245848126817372576582007373556804583638934605691857170411665998314460465860736138795490279088261477897406536962259218568530454867292378338803245589739222605433629790033615277972449490579653898992101077043354909819689574816648569510534302299199323786330058617561638283439829179666530324477852805286000538773299814765875590589529907293459926729572393558236277280806053415577328097052655400931793910142062800304490262293075971073576555189819520764138200689624596004376168602011532389572090248388684872453322173920152588213069896735348512622562730284285012193101432316877323261228151698463349410110375762647812571840604142889599780875721729199238184634596406480401460150955233096429543253445837970256945447006670581120310019572148277799336656241061952913508969018441792208158961645993247585723409929916182182986689954820448046436166675271558119854419912177907808630059225060818249117609144375958559239770980155871693695439892548050666600616035037200707998921514395011824658743914918936581243572949203759399413634673338700513646119601886034323939789635930842461728926994056618618294571492949112448539830262477814512091861814041609560721899317745681920198515473422567693567583674011537002264387037754394569610733144625931001160732733100971710131147320830516482492146102205964687128315193291628012775957854887379097023207983237997591853823649635230932232102109137970459151488664596240813541364330684264161638206851356212916501170483256697846913111007414690126674160140717486334689119238519802249306625393154045372099539970352317717183338926358305890310830969744259940938299430149291063817902943762190363224373558119172648483982894476908676893525684924792595424293096709450858206602594468466137473255130608793186398074836437150361189884146511056678510825300387398900425443017556013391508342054476618850989715647421770409765093586125087872892265420903705982836884561486240577999180125528906878725340884994987011365165973605294270538200917607028723348608937319725887320998119796896290704018896956255494801855465627236603796778573786563649367384835041230354769361662404771283968424397478587538533411391986231921959246818720562837356401995544310421773700730470574057083231126494501267789680928472946684291504654772713390773668417015612148171871083069399244881186991675019800064339168159722026671407165535552808761677530858562707005319776176177918418131180402610376364119407150412680183100183324624216635155256370494312002090122576452612747059067826765256795500482110347743990625545013561653480427617129643588823396954074617977797582380443732235686371227951747126656358076748218606371517333366565927575378091830321914251898868504787152229343779829958880440342766353481623454805776499077999517162275095399457907427113398554969163339371123713910678560828710677392983601832539535322259469383280906927013811447097610998309998721014526662869096205747256904013809494711304948914098983033409699627379594832301296367260672271461926384652481726080192944580627933831897674096771480546713008053254302908042218747714014796968692153571573919057792324337276259031096134396033458400737900130245613667766537713472948164767450622690431264944372639414484172280741076751672389754962107266159215589202021677806534335542458862524490168530332561045001306653481372051773872272361077406459457409776740485455194727687350966971013685637711808738925431078030358327574554407410784662122692539368541978324346302762056364659418954729357989304593332025656291953565896897040778494768650116153640308653408143925642604238287627797879478740684136088470219615526096580353525615589753603544408702311950229442034051319169964488175787898558828720620815005773160160976363909632018201253276155792847569313762770239600569546157051481728211278381071307419012228475576378622394804921119916470968010657858651599618771406743865045526023520937678198620920704882652325208541623935440182104459315234865255495244433884740523952371625345176219080485462262275583145520954283189873828875030513448829010703434425956300870793039702349698355665031307844061434310591396154249384298312274475724145811629177035619856835724837270391505183588633381964241126171961657445594440640825635660131611280154823359338030087984145199391737747051564220376709123511404198048166740445546556924801441006839740957151416886512015747854575514918412825869494805593054551490785032897217220935338913908479756650155685113982229693066751204305899330628234075262146226220917778570999250958338749758738100788270702056375723541391900590898551305699467939098137863871841484781628448597516137506097648955474628038494880346060335101978674045407200580115200161479608119374850461575489107297001828075415947786652592412276977664025265984334355352814762053038094286054442089768762645707494077557310110017592795407884730227135679273398814945866001969119965116307499140889344321368930611554988814861549586842275551696960089624903256592377343111194552160976132422369922445730654141910068050901003114230941418283145372215832695707146793882268000610705501348076261208676192804926674684367946965945425996508292989246564024164753565067747228338408354018835086576878450007188662815495631727451888608963702064396690034991620019275161800913584228977410804785980787982383047318985744471608170051903199366595587391145003285750598728489354075033620623220610140378146739909653492489377441324347801742138942423430697245188216597832699246971662816722633044893704404029425900792829020689611952836162686888715608736460919017165751345680829609668601955774938563407919867549531144059820647459001094892837143950295897824304015296522183601207514690465832622920342825590024247341532103252722050486141360173388294979589169693969354887082163893360902494013744714411968343224208311258193920493634388332464094690939477397920663828357471881866283975673719934581617909720968103154168354780512712753103004283004590816099640273416929398169848715076823865755530944699974517397691344383208593418164981807531076276127901063534187538224255703888018444321401641205453051395740967076490321716853617351246722361189847782048845276404409127825822366858665378832305062450785680165537041151066605036955066791207840864781740169531092614547276691340528116636556909340916306951804163731016219243106031823437969037114015214587302807681580525647807117211981041714472659453592621679457623086697975558500600026965574324945510783611127127431443305952546184462618507173291906502231297828002423115457587833339338829993693417095179285852338494292561703843973308487615321524320180211283959147246832277040591700254935181806213117366159190412716868022561413026322865510194486600451026487994062675228458146066194328031877304369751276362688204745788873653669055643143223497621605135063394561725197454618697644265111235979693052491845953758324260398573377130800918513550141591041674743109837789395670807739523544497346115149052685611507903364440738027363093495263555975320611415291782060241536436243988455268017618076849790314058588583535101617172386342843564055023059834677888076253539756232882323462053361986534900976001632613264621780873222019691186392242444048462148107351287173759636151787516783862680068614248243175580167160272338906047888311845043803214528664255805685706830693174556227320911185529194658585616459841957211933264455268120948427486514822483101690912911677518728257911362088913113838211900584653508711562085089863330758643895764426963874747598182732268612921079785900462849133853871967401922223509873739331035856742032248634037950050078659350341261159857198840989126566871638470121486672206559062900819928342894284183349928263388237443570567919061102338759014215229748729736389637761842605992700830831561141135439695639302249012657468044991188705317573695872909079408776044731086816111617148711660396958443871259106251758947517416907108525550575385607925151503236062555682022004822309539283176990923872495779807786201372045483025494173067419036969272363478212370573750937166146230305684143240126133602663989660026591542467101285023954500812790147081431933226141778668380335249015088768011262372054887815798904555581977610899472426860420549113468088898445094629844257198833121404452324000028151247790102016232169127034212152990032770586785906857963464047591600116864990661772855235098476883249291193561032771751937190423974375968697683563407459970046900395696464879461994622355901431571776242822818720272334778983111920294221722430159763247830586570265741143967569609180397797710797870091681446545031122332114088589319572297404038602508636963740009621135958334217101672079173895696885769628355409763376447519969180797295374422628154878392755174553725134184610434965020405886695725569188922303288619850828979299068729802735361999267515220855216061652056783524986025548954482160228494166068121630690728583843316544064315623119411315021846230836055256997933593719275623711557168417342996427319733609225473217649931756321868944166214329453368933000388967384619972597843047865353758887747803364039231658348481434009037917644686055620829301821396610154981241482054533209701692750626423947482790833043644478174815167798172011654951338606730926028903939443058589359171327321764836346608354087690605927402314340112408700033423715055009577079449190012866087880083001377043049323427938127288945126184906487728920919188005384345954154996016653944688504373463280111243783608104718949744392832231143949531565855553808086997938618663110881067682274807462435875877176482403873601214863126671902493469459026239461055782988857560330573610512969886093431913925361350953255884514705882967177511447475502102313455956545255616122847151742563108322923676743526188432138652036737963380763632377849692574162092627638661970400347127581271159095594943570221552675778583409196606695857982001065815992314063513689633068777443705457436128523065223011314427649572362763451153224317149649154168147042519397955941660773762976601935588933590647741730929158880895027087657397544166620652855408683481415817913826493073808271625580217413811777481784064502844269826687464336095150244736938313894482975820213787293663729139785278710706232947364933550612099878739004711963663936963820219110860517734008185665895625868336277095388037616359368724848794653756963941284092053810336521447058608181394363379086612298655783168645141434625345409910306997325559572424556238600693981964327624747992903238045441511961478157737887981795484918319562970419550600586484831628991842525556306957195996255334409784563122724471514874133946389692922510110324111440194685936049243831763292143813397495130955396165847796882835732472883460423870184064073221380025242122843541441817059818723149371132985998840019428565369388546542076402107926354565452247110742286433184606984529522020168166154958501475449929143069283815064341225070252583251657304123865325699398496083991728823017388524074026672799679227742483414746816941472882157628499469254201378669885599662832534389581992840122306719211827722844907249034617372738950074989661336995194703811016374544838641324974947946178715578631666483576377002669815897081923640792395254555032253556931773072672000407228882973147272073136293066022710192859567181464191242047719468246212250925912315758527058303628759922611635952860634853247620622327414486124720617558309915523517466155741430344705462899548061635178557116774744169668503455044916392001894954554830434231025967110676765965594561432335000237330838234463121347432707125446680259605899747427300251723594393642523260256599804383393758848557740626774023458759073641189096605578725627681352573613821323892384393124490429624045857802952930273301562826503314728476721863934664149612939460540177171071581238440899707740515418691591410047585932237169297460349932877583307066131181761339552212713072404508096248478230758190564483771496808446529914228983239470878231209260109256446589539712831114650515362308020562744446954079487766776672060557876923182917340018557500401368803275198603200779482931971043595257749650889758477619020962992168709192094672482536551855333094858213745236701142268788071131082081695526417176995912189760748139581454632775799896784018849221245162445506469628794765538755271587404638461954917426321804797618366855473820382668531514692438739105193247894292586130641268584583555370279555590393716542308059471581009937095391069088050623635271424112723940065557376968098597942333101902179868581100356073734174970941596919237429294270708866143241166309850046209460056608524191162350062139506863560699555166407685049505459687564094919416238120198894366094663192345693537180586836629826111971303951391415774528666254835380761026653885495377521496709736720122305621901030616256665892810008463169498929977536110187764995661395027802416365015830873341508726382896538998992851861954366378965914982551174879597631813092799830177556152326691856142621285010152419845039510432484879975682895373055575779251541044166945303118261229578307940231691083291342503084180613270608336503830363951937017510586315338132752248579427662837338262652240688738513941154713232462634359619371318041271297075308692850340217928337165665185282326988874926774427425736469510882781705067629060271289531276895592359061338343039977612058978394882764253267168599873859600318259014544600806075039437805528198018245739582163448799564921265855136838294766978031262645041872976614194119366067156027425413466070994708025652215317853637489561891939934071987700780704736400450808835210647773127307032337786038040099063264139864293347462231697025351869644490812148060772061161642183053767197947225998738812586589958364885540138123389511008714361019458566244321482546852731934390022842371618071153301052369505027706937508285368754663364096198782619797942201048421155048315377332365494325993321509984959273689994617103768880711503604027836922906714379023779751917794895679820859040959133302200331169192605035120966284950541111551817752022051260679173089661816915928763480396240761917253284932515649215695481990057473414073443906942147065742842646335373984234055324695798713478398698094386706808984329978866420773322115502732653997511889333048991455354877845142449724426463797977276895998779374792257405900168946025160381384504059975713299686137571092529065362167568500256379399496098646999855568746552442477801895258471325371681985593100805504759213187554414552792561330756340475238706402887002389705484773399321236399811779957511269157118643221385349778546456938387813717050687766289182682259635925709627432404929610356232723715292460279878195964224066643780202310107747179068731742048086077110043615954720979663280137244653339179636468020003749157604391241615312017067762357590400826671200641898037094694839799987686651531742627842233890731933271754086291623139205653673729473290599028267422053222897200840760516942918529264004694206110082416047987313297873570857408981228850083327960086759750969926605519238371751647969481954187967377890242751959408719948332685877328141406670929791653763798626886347485292213712551822252170481462461712606316910073000752535939478410721557708818285032455055521727891962424896142976838036234975080210147227283258708595773882219383272044050279686487584461480998070200986977293902710828877286632622779659187183057630177844676235197316867555328190432196638071676010661586381534877186487225287321040204183794133557496452993426365789875230101536677652480894524613407616925186613074714897597396138451765828664953743479809646930509833269317335483205280375403517149134374870450354606805164865033572593179628117850109197366546736884794279855658775016960749091119495316515987670825672728809988377685218412264518465500893334468648904870777188570869680101805787844366184116742348739788652397097967424735921504502869283875726237713421740896091373582609217717187602089590313978567827768718297753780662292094361234455531970640934520708560162980999420531126394101609477197696377441864084861804088830555113876048175049070158256252850615705396340268328509938358513885944796239491142139052922138532216063398665033438448859946463692887076656588153996629776204184173490393846675137041362900157157418606896594055317260446939939852548440805487477908376211294540821754134926999879240282209036170645196617067086681111117133111098469751868070546511002832748322705833490134951310033696681544396484680565210413331526732984247395576949939348049585937242367155078544793654372141331660647652279132508611468897245667608973183120437415726129375399558373035172922520276250337244165716266397829347060865882164541362183492529247975393492957063348559543389616029183014346871741989979761010425900873140284632530382081294463213764370494815396810990155888410260957218581107825638831686931051783476674547974983044727512982374486789397361582092140118643484900816394271349538611797794371085559356520047360714894675939693420142779496476536900995337149624402089398189570658032434046469150410468818866561155553723665346068028410872358548158214893018897280992380867264137684797476433084851186286785756364600253435027772756749136735100748882252746762228298573282050385958690930155299822309689709777844211526929734503435730748783629820389870925726171480134895942084788490494756218803380046344121080183555031929016790710458614325156713949959783421111031878136399600615840964432750159126571951448711844699105589120607818527416448984427432649232338977286088909764319904926653242336771510989512596550568680512763095228047287751182313402358149205474675414531666255476988008738656744921452356544061158233901235540917731208686904898245892451445844002804238846352905010282838775813686614203566427827203874441006759469348261138857746921853220686746425642135273459589624982817532759277735590220068643347171004678206000045332678874709238211011913768312434566514007489067215478276057159935513698753014020419665417031138579212673211691040422535082978753502707025267582110576036607256945033253061012636019293141683699991174218042649668539538480932969116490755763415731110740444030039023854142256377053060751971912885683855057472299868059063357577391570445031904018913065815120855253514982061373189822515921869856103631683297012885773328541224207048680126004986999576144404924213903075201820402835030340867347896537910465682593112426717247274128910114026050685968247535537828448755819915715789930014238586621058069357300249181723402689398331801125799504274395069565139375622484835550092341941195175846510133752310804286615231462295334833581709954707733543841104261586253658298138180597093824388004769992972067021998239921536122743037046926585480680996237462020146441176358866220996465382343372983258811238816298612335090164190662364332408818080749358736497485840814105852672479102346345638848531411594664713671484618506525993873254952510047738424095442736183629448084890425768402956397051478888386522056585932860014400157293875997840642409027252554584230727624660105268721997651696823904708261571441535411866199641248179145772240466951860450234915239640021670903378757553261107371002427663752955509126876389074878912948246999335634537900339109267669655997706296223057278584371747338456127342565183938709676436508049423753492739387924585106660056046829006641351643786100961623883663066338883228257541739823197703817719694484464389404054320553205746027179240237569431687529523799071757493169253455734886932765088622289717279411894347739144485928793302936695312011076740825059840506324129111021857998422027853438240811331354451339615834565359290486404801468585975640278564360718375307019313436187440028862448335649805902264157514565874710655424783247135880578924928644670784552772897189202823958874070823973807151297226394896478919323561215060999819934191633591418703074973011816060667132077128175336019444926808506233579009963256782726015369718521884109852707550956328736346402628061704261767812941773216815602452792957168332994450265393846441569694644232646882313558397291874704086628063963829244893213190406617494314082698704442438660992384582719420035170915273083956763447859400349448317285102292890033760634180956471188981427157442336298171656370436082512506053082991707277665001165314460127983612344849200903458512466017905548375792344156484260860901289891669976535441506398937454024961595743663977434768877075869872923980437971332408381697421218335571194098414419233049198567010555134925866500409424425650747605986364306825499695217832499773217191801761150820532800652463576830761322572295133271423498689222232380183966333510577641815457370885001481209172467852270625773435742656728983016798135887576634718690172487243167630031873341446222417295602977957206898316149787280995483472581621605181577276720133587698823492520189673339704767976190104594804019535933680459191112588502297332709885157235854688794088650217464067852954526964419414342324082617617755104130058266702403930389203615117648252416521764861444812741095808427361443767866982804171352140307878918650268065799773605429200856756242237343578191159542314847739985569371101804985884692818017051059343072348550016090504394854862200724216649615916902288260037433327469731078613508031509311857615928646065720245882885088603175219295403896354534260200654800604959642893585913002245241196669672340430683076467073962437204300702001470615349353426537085050637027082846452944663573158852776510022957744811730203505618944518892383828588330152928261400235355291441167658335095934048176963257923367321305739412038366714670887024355389543649773886655862957861781000154809964302256631898259912938136654391923663901146953319335136938535731833586221326679998634522565512962890513029034421624460995212312851745171419683232495141568594656990216649187196813564318061824842968045020534924483491832211318686891047171624927166337374283496220371243987484944905263585678558947880155820333192498886497676314732271167437630192433576517867490149204509217277782610790826448171233567923603138655190587501114729081671852319327921541867720838003245476221817048677413996753290139190236301044479788274476058580857790696589395194049597860260638691021468197927998523902148331641084896004628287754446524820830596438523882833555232289923987837303870653144351515018232762071160361562620697931567220544972600875835134255931155776615850329823358900659654676021424552650497511010004185772326032319222217698565976853526279550942045709341804538183732275800128861134636549455609948539819797929695150966108055137589725748169100561054982779191548727918823903744168918722776574619930138416363324679548149589900416458038132217812223100132316756246749404720943937092746919371445052678754185687622713512593696331424306120893214294190021883969490320924073768727119073678039432064097854268116310108366646584622220546272758114023036560676014652092256279919183091628688907462922702233407263612481042315607272318816712648291040995573448910151679086005582002382907859365057236369236496582911953756951932904153435320264175916198227118128552670143595391629343875924230164864404515033932133094476008837774721609128774825278783200110043363577603064971234082190839511940531250756569155725676094047826498603177648497478114752973824140278588923909549642303746456344502888351061871387620021913151825460877598311956254721142159719067945932626236717484193596160615317293092696505727388377656975405192512237883926795294659342555416417278448245307261241896872252476916112289140959583848914200933099094626540742221857266479439384348845786504328187468885288921614750640237732672200889701409452384202161886637270110896268339171632690780202893991013670394075591990823589786271510671436370414262171217727422683954614804650297261429571489651283775712440158526283067595806422898891664103869515814848704523032988274700587242651699897196068982712256261676856059705231520978330145047119633377281333139128404233183019326970010661403271235892849408842739887255392076889417037516726556306703592160289985110055491640695373194050176749507009657516490582141749545168634498647565533202215943722052445198660226804824246086234511386975040217997136322226013782470546917478750964212420411733779529493385092515334509104942859412499252515869014769703059696036476560738844917760362788657270078999849351600149027304769568683450491647284546486677290790896853350690601138233659694981144212273634666840963241729045037387250714505863078981731253968398069165085820150451527108824716813560490223592391340091777914101194129025221927819567146445828952988717434457809409911584821367581639115209896936494496499015344953241493446029290720776866436781354404751636181766398643144812046942769659080460238165356134823520788812044591768104927131706934424402819519267206448430337925340227149458619399785005573003562296503742864741659086774296054314873904434045615051143946729295526713253521213315980988147119990034305222959745228911523706843320031149416206790725244050176688065488569949796906458682709660271583666861892641626392721630183092141165184368808403497343958430890759456718417520489067908090836085578150056849696288443989479848662618029572448569806238537780083532421747195787431302887062934993297170160698677943875514814157469587965395395773610048674995890218698452495926318483108394458315177926254100889878936795247955237147630770032737116160305616463433779611549382504775505310336234729775204285097511551742729287044320348451790044969590877196371714215571907530184384694845422138363554484079019036470162659004256612399360308932148749940117243374779927082029224741392749794692045653733066836857901671324536750070221873919853631465698822719171699670236915564263190588296149786695391488900784900392340501722395164491372496904416302801286414690322623226680623699987548089839104890709698100113989236546239472938369252887431946326505781309241150990393269914506270255727497441000976673303386761042393985467514559703756573560267264746484292462777550501902554644511476289023947020626005969002833382825988340043511345520130190623860801079498835929512218257380020992555743127743750747734891883604019578873112418400777146966524187204143127665839537605197295650728450585346149088736638164684596709044677737356786600865632296279352900428063740496543280176578119042643063827703463944955098848819479316628146018592240153791708129331751015718329270403829891427657980793500565826955970768092459434489395530896325681928038822620801108126107085733359850654203514762032838346566775769036645674899858383506655978748999497209720059156877736240791222632928198641194917455206086408009761486251761672941795092375630478022302622246079909569666592724054905627257229603188753221170409348374014911662923169533993299178108700347860267867551193749141086730855409671643214532266771112546550454233680554000297159578974234510815331331126262666480223552364905116263055938406665147338511233014322451155318990997176001800902321353531854087505111233932037539459713685164532345147960542511576505629728396477053780949885586633233549388409599883885182710231711562163992357033678419600619027745156977246377592486511734348573820564898716430883636948498146357814536979018117342400444524191862037564292735834347927115223053468353473262046643737147396642355574136574437153270869239626623844143931183337620731261067662010056126895416912186441091279555522370305953693598765781900526716083840184096218457938713247488146465165086609547205448483471156011501496844815627477157128530264230981196628887302707846094455051714253936949816217485384462851678938040238904149066391432980857809718061321966664931605241307832797776222771466267039506232548597083559718830462105537141241597207349819698995886081445261790128175275283235119851366617090086608114911824253001131723109731131164720643836590081968991832319066084621205228244105964529991231712541768755195305075869933483690718068226808485612722858247301972213555785040335510946949594996858713128856976184635319920294920238628269660056672226385873427137727049059949674300856660416431184324014405098770620365269784192556208568440494436061054380979500911152654562761056834647590540260042150101317344482702322856482618051809309689425187590588477238213801611666580891104848447651010853776408387401536896743104981458678690291198146692106212916020257955948435573344021493531388762406811059015517516404743231182364896465350020393427508666795133287307398049367517818407621641433025304337755983443199135495275902443746203966920584256818005249990428962846270779472683320052515898151104979383346149015767741136269756144043903902136935172579796906670926457046976762076125893759627281023116914546423720223272987320274788776733909419260725967806763316780199187073778979298715446487834217131968552750194589655162036740425535002353909754232803093034715781907991478555237740278397855673665940911746448968741767178919777382700833781884102056810774702278356568129354811229113197392934896618619138796011710864943204781597355920992472828965156278113936021751144592178472397667055777671250004341271024551856207945186508296542050055741861641664485156015575828822820195360008305971478121927780918460945318771736349232882423901428418089783909289511313106751883082919482389491948803437706091444142583543163849663383714245434957872860935354339490294275744013942052023718602505865823593058408522443380242813281614649432020211903532582353140632846950493055429830048457131054063537625098148618539687413874821719507792374307654438449266085262484924030986213786348535158344614240753748483871372852047890890647307595337751165333091310484513459527025140904964941030659773397855490582061035781320726231134380846395028600203300888405832312842984197382208702250136982310510572789801228745137882990885890497824305042453725823213337648030535191523164784762144712805307797353677835203365677811453556134691586263227064353969051590295398963522818830808926102367903447720764615129255951863868646410788554965399826972746602857323684607883601952673098041502404129578840255876414617382283103240413641911839043473128160324110913459947935827940555068969753718930869020864125909665947506487512320609216581833925318272553811821915876613415505746025822717863299245805500258334982082302440965607125900945205989224519497082000322586755693110005464587303226872013141826932471285250678529479126413042208549253270683328804665693476658673125675596413819415004791114206413016018754645288665078003015909670611548853279689846101704157865568039065554984103378932470682924631280530226049288146135634776093697390613194874200253534103916360341491984672081919986863979359667648794983928892252550002776998683150069387521102992541453477515341284853252815958715176018932512831148488693934180993359022394710376595806178536215878025573534974809659004176764600636151300385853426510446208577121727350292354849378532847448729405914472730775596669042649162161088999953270281065463606598899846618546322090133137313122634394685695889219867285035953530082674623359873956875479527324576468129923488382495890338321708627696454701288474335859430669370104804307747899887047946220424633166404448042757266009275771066100825589354033219200574460547160716359362471275587838681941634305638106141937125883898706227202311939373898327982460132949030996278274083172177538760644345474765149687416901351553739333921171057991871720144320114844642474049626425365741741431266727155197486629515056710044232502612372921998664004033376429553121834178595881144600287165838389364579469469907419318731803864044549895795683602943588580065235588114600155413332238314343746522248035948355018050914578958000881482497437236255706857094080152854106561953496141340612037991325292253635607390769168580960926107131685269478686336361035720249048485937945246461653021815563195283726083451362430615878619640427473298296403319766540141784133893535647820607274614814481677653107857530816608994061790623541650940672267775716256403200629854805006693529819643792362737252509665415789150690750673463885273255095459211977517321690446273553044403775260880948575060520478013819646744774852282435749733278268806996547533545458209744870396206064493617917744186194145899568403227025741616186653400290000578307665028993149324926275683576291831434167189218160945399242725054590317075019022561247424098209392639344310939185923642405225305061237357944307549554972945133975536323427451084843939873399827380070905290061307081346095883629861610601749012725637436488197182517145054496843454150452617532178244857161965135320402552507611436929957694088929548708436816092860788857705612756049699067737167721158613923230772525377919894749311156632290322976604818978080354027654135779439741916996830793297404545092198898385900598704385339297999944412119214480261956499704873143559716441117609328348432889913185217399119926295002144977269858598694952809518643060477657816355115101737027276529493139410509944748801397107159428584687328272952461925114585767496783947425012859147848441665382987960196941284515794038497873219508849477194393365911045615765556419732469715759887677524191821303755629662585677298731960831624627216038961326635466664805851910144631054826560089798050178888580208656984321108732384900594543160322677590246865160230537051435628179938578849525287452307164821160046830522940474938975348997159924691978698551843747065671827472855865227370360491932238121056197750450244193133912297287231239943696725933372177501903355699890624389617867651531503372474586473190630344087319436451703986171699305149863902569507710258986762157522007831635295603725476955338976543522298994101113417621115979884072895590696686170398758762591173942877496557103334020445976089810837256107733404037320265468189362650698487848209224435223869502279409523182716079810858113787443923206365006776612165654778517232660464977797899973471815721145737895393349130178884449102941239367554816287392964273971121262589972372761550797247195094472440569696392057585507371761373901238160024683462946895097240366642418626224244881072329854019749357694813791262825959722280881782201559526604613010483632942221344805993935790908635990938441271753449732668019941628389411767545562058183983177276024733437628325342724790745146105123462089387977322811555466059433219342739969191398060714342659910808395162654627169930829428042047260122304033903311383603682995600396070367652586103180026630537059450544306952499660513647523930255264200925258155834164128533770092781048457850099206665114944845967840336728883554450513887502291856370709640157549957388420616912921061165017699220150213134032956141703604133045304545852370116370045271632893352353719570998935565516320727744648256354186676997898717767291987408829935084889057199776502550773275768066253612796618883467579236836501777374399188919068434703607816831217744482467056563340298917158540135250686905968241968796988384604107366907500486442175686215634559135842416265478640666342569790689214987481327554124384175271455257013953508761745804107215353149240160598005258482858316266731962828785085884430562204706163404575071616798647019690831015358105516070133870623980950840661153581046969550437607016563064301450871054058354106842798324400420315405600538632915318647568984826144701120386297778413806461829204483298522662722120668645372985799099838818230252248523832562621130523347171176934345512159101549222693655477689887000869972589484723658395006299813528390712805321580283742889681069642871780279632902204342168764563752815062119829954511275167366315186566304661297683367938274969537151393544146112945947501827150617723789132885784325168806943094945624344808807085007604688534841130582250472039331928103088627029986321017131474629874322997245881918690782838650316381538991521389340935130146193000924651581925541839255341474267959589406358925200477450718543037926697806744202082756023400135644786062475186535332031058125413898277466343219335447242986481325165464019335261691161109080640000445908491393953866289662934070888424502091604481069103278112615188344318193955984130508189773290632690760170801771224086941127241128198555007810790233408602178567505680169172323171204295708537267260992158531966994951802944150628969872617846703903757689198953650838445057131600358994434747468647686887184720431771616443689000193298245568463538030418952464333113609421903075631807144166571049852646084865018591172333451886271057072381448017107343799113776821004950979146701592678859555260618672937898624965039323383180855225849037733554726994498736857971690896559884542767929082416726369196689147530779778266847580454813004456259096755978376789255123032819963723706563724887574141846095919686551479458572710125221764801456509832028107437040736332486579824153355227995642328790614994724889285270827006316229995204488527748508411636635413819996633686976677366751474191083951555421013004373930590983933796019363881345198212823451225972358007373178059404067121383590693195349573716384360803073733656324604897514282569822988398802120022008493980488417767665617952640391712788428137747242776671148627834050326495629939586750498411532719560009525049000753205855573180790026084540433503582185295816507203370942679707270265037981001548063663695352047236662695882415255624389092555124003552832661983056020927812710813200238227877499904147639152353670488084470929870325247191910515886407866384767260761128110015258115912167260218360890171886842915219904419885049179616378731108849557583006584496536274526694719405031019147010039444825540987566081957986320727585316750694239425456845841947139864489268206620044991359127993420641035333208161838486154994215248643413105095852427961188786196013543647540623149207291190645840543789221566268700278776503502117688077149310772801087922915869519375301796437605606277506522837382451963307518657239859736813523557800472896634423483682748810446560212732616745243200711002583129565483709236634608106519897688252895124878026468511032290597626097922602478728528827285324957130811949820350042727393560150854994177789715317071609971091021230306121990869859640920443691245293125024225471406062043543964954201517409183986545419170204533908649286394528392398654122536763135950354737997652756894411395275862351180485903192455154930226367939738131547094765593744377347177340394497093819288749115977130416435625844449258477197318661809177091669150867353119708502337145066069882874979074134503222968986094220631319437352594473155833226773638394416915509576800231803612656074199619741759377240594774594043311213186050780182525081390172036795857124426607359316269062532870606965642658265099881741313721005606175312841092432758211728514618349462672717604113956126669510363356936324874852440044675831676018473232365961731129926765966311420894475259292470593922703674265962249446668008186953577052362405765327617045574042483976597500393806216493890242113900874366508757336221599269503481103493192583144720040838766393764899941878647584945275823621587591170136445591188613890002127644246682963496972189119058541041394579225271345104324092354928036141528022332950391771122026472367375252139169560576779654150748717142233251313984803653785608150606844191862669586975871674068294932793743671950911116245545808087107196422500911832083799419212061686536802472965993758656813145484599212075914327803093204650923743932576849031043285484248366959255415443399893805990622752245154722035018562323543705188125226792284001465534775647484077356482794872603675009084708743442098592705775909651191018921024163079585048538961652403504862829952399887494957158095166458903336138658951889272207659298085086773380102267863345864327163560727139404746560284536556186675201006504839132574484765783595801152512410059719038990495410650616103242823225330733066504551051944584066024067190793383357270117918338369274722807046382961857385684223349617275878619675238048860539025453297981712780134892889019086589350577699094939017118410178099770526139979764150033385500082015196521466959627582557460535780717696625402574411612434791934810934028015983416939833146688116391436485469963081613364040695347047584244947516189304154350554641655018106445133557560299776429027872602679257353016050186186472103344851539427334649082381050471053413012261373389047696964607758104948493952413311517648466001926164887793479020766477984123541693231159035511280447114150082108458729731369916862246796832086175505549860496124984303223347167611225323893753564272868530627312968072255856330370061913307699167304379523500082588059993847316750628656323466054886406146920885972823410995914817333774840045813569103798421926591058725373364582037456669242489888313415566712548749115711516573064589314630745603786601737629713007224040411005746507442579303707523516873630462683374350583175728734052896554768868338772331396940662526352911840890442006670926553733846444321299535629035465973674041608537257819411333012333984247301737893247312469336949324459224251712773312792775250225546225613963180586531251788262521379989583595946594709132193081110754160495753843884818649798985766447769335076499319869483125849181483906572065075706654136770188346212576927247272664530188426346832357846840964929018072470310175041767817557489672688118242279174824896153176798021698217700111407837000641073459800302633873539146385737779816001614846931001791465534693750622632200576032143719615551218399451423313255618461697940479547629698444409420081377546037070326262113513364465841602851508928231651079322932506468411605442333269297767474401496073695903172197821937452324362723111429194708380653286092584904115555685983903260472869569400422246976663883386545226502389362276204081225398418723062079605875407518104073265073525002456120807218707445945271643178996613719120298776579292183829323364973572179766454929174511955623922091814058972990243351464148139569065798679376511377242145498258657597608843329978296530710114750580834878745062957485813504636766555623394302031771605619266107307310620354546532617437367850063373164424118433190532981727440568478912368173008780233787542821830340314769428194013318857820011031903371822029705454412465267518605676451375954274562196381431692820452165077247541152097971539345387500521315516229635089313859704600344450759639537061853598355477355260181344073004635734587228437050476399741858980350225678991015161180323956048081239454142088427473863755702474975802862803283413356815667439693678878264371687958979649514276758016420870046083740795829342253678753713167195756675736135318184366390820143536466060155530091107763441573095205445271914546696893801344529932309000874253880005399581355871456657655432098573010257885353872292915360887102218717209288959749860548402173362426540704885345479900437082967710682143358955180323333442318495907709314968249412679578094650721115709141120016832749459306849586571541556296595946968762363174720037796364195596278251082388696716219269641123022007313042997645689951441599461791509307996993141756069574618342991351435620675985860162024941343134437146232348634832572313629222823442644894749775060735011480311753026782726812988450441840988161747922877233576219846114396132540129028638826968931832160939254095600647024027353839234279249317024869245986632940277001548109953130797924700683280137526808280812508468352258989936310649830356794643342159541072769430157692749873519412346371227759475187124085461682291808709830476601046474576171130438372412404893792005790107719288172308313424739426168626913860660997384635005074222944549906416959053629271806025201479979832007641970083395708646001891133151285641603575253875121933013069434733516283464397121495596868163766892868383435708852751269671769012495161805602929194417118538116813244732521870302436322824235665703345748691011260586047798584532793727387735206470188291076353668920387483175665616476908984803677100249788932928438433068542364703356688208210143557874941048490108820389211518167621843413907957315104527139098887253046361067209352545206833818324222702237151583368348013080122200416537418928995667965248394964719088818204062301535050674191515558015079290435011099991043187959234804330963818921835626575446469471435018996336049792171426932715647523922748795008941494515496436603106490046514564661788290276648111538967735289150032644196525844976346660836669296925776431196862104046633469485481907491071850669109023545911832820438219770168857177762095245423400954013952124568799990068948161265725009113142334350868625174434984359134326715695043345338074144510828988551595790435955156613818181717927778390360463711360962245662733822985399482354273226563323851934616634114490626686402781671966018624580111438286448555549690589129276559189281645686893453676630972474090407828358629021068779695958199890971142067157785451425789248337685761381801416263988432590468213345720342525165035343385709261357481132794234976704856289855241451843353231826092503026870369474344520244070601638829988332721893012495325282103566311917010763945713887294391908707512004648680925179040271194022192079539653726736617357146932578006732523414915749993564101939576122782877057528085375040058484010797273175306194852280211181823440414680541723012579279648043055615784268415075671197051202225351123499530406321372493437005803917934955179554359172117721719771699832035506472848750690300482808338321728130837867843402653640825435450032584130881993895454623533120944845352319977536030045492774029834053791860518917769259946156067672048132215730779126875435491365661100706560512007792078130886373891876491974666739163341707211341492452661783066529935628277097025869125489832332690814650367029525452662293307088780771241225934024338596590989671166907203578989066426863894806950640922977837142429915707352701757227598001081346353784963394399141223313263569190681992153004471401968853258210614163893505016943219577711236144970793699700537306004799637987774477013740195313135236790653378834825230620900275625565250370171696560668458808271646554028711126284053897072302556902514708983386961764081791583015390970098595380497130073859521239541048949667421272423549965738194996519296302965255609302518586323291822474125441093784289044762383757675596789870171835619393851283447155557400858811712840525837897874911816443741752807602144786876502062724675172091642629208805627571565445689763953778917227638007444617827287620297028096769820093317155872009029503969928419470585375733381564437560563917439394451128231321076086531442001771140233590244273441183328657851430712469491112680737306496188718875049413133429882279821631585758638151790270132900464078076174351772488503104327245915396254333367817469979903353852549586769623008614307018860998907163295275135210408825068313619383978604997806013335548728705726273590631377384250446278252975445737517871314048735811502489664024841958010811534338291585412659712227424085670819814193427378097951536360842694440838400070484495055334377529399136781374012014356484709124345647511950384562980718124001693973721857145864730650128098170425700517174283031612130028743644669135584932698409356392754244359641065183360940805120871882931046717233998855387028348044513087035189825546148300950459424030815596725025700301620799837619829322068122346966223307948265968872690151380519582836547936805143513743121049572896227955530020975300278543432544237991489490847068752076883211532825450447415858198115418976762761344681631077213867086768980347255526316632974525819437263294752669745172578414194960150137420993358362535812347911220151684737048917717364335641301507470355148635506983590739620358999762883571414133096521899497023114872349117834064724789874123511353702111941801603877209407807317486577697508780999653313024343193288429807388791611541482769545846377881107580550827921274898479155631632896498103082026732089599794659425687289357833581284517642785066018832468802531788011645004487845701489971392349198747937497906452991393765627222330835024189012668547582382656431880302975452840902467030011843187347714504717899122174599370683422589933525233363390879008393057875886427640487507609439804459711488324788758372481632454013396698739434705710264998375863558950661963157562549942668790604879258215161628412029287442211823554379591989112114472678646413729752257396193575659050281576368256579878028664817276540774036323546531017287295029879782566701904750679565418125853482630046475983207188448882313572106507372807663907073220971934102477261022950614848704775171645514417991137945984029126316161795434248984295125862319471462338422139121379409378501021654000563918758690257883137375356474947256963346538274568854892612790757029806492272793809014079162025960670074925273726310061419722470645994200612018471746134450529639236237067524805338764773468144546307042053213993249119263455170350187990495314654658311918206706698778662260501181007059564369690931083753128747324020615663446902925390835236789673495770973188251370197377304708724841474655689078409963357930413690741523348859259109519395270143947507399205902822753886537238514401073945369690478437196626356392476172058885374726391353020134911598951156372365008576821472640216630608702788173072425363734697941022923341997054060655698255277227525353677285044306150261038979158027690687766721195547319106032967086119935457575397234465685035783374401257518767655270172540216198475280085462215282223601267580407690340531094397076121018690063317232032081818539467173321402254744905274244965295305581500553374049190908479511007904230850062490339650553205352504098287975511163154288459609139979567353163409884902107636294993080804872377096327307631723145146233332667408112277246467931357451432090652230718828642107946514963982644852333048353845009619746659249826603694106696320534821705882929637673287967599500079804227246838506901335340376925283531503158184832439285768210659400210270117779413743660291363780368737715430752178053990756821560425662772786746118693994788526661158974511577755070865833135519042432170339096623948382410650048687327426126865872682209971472234528362215740913470887939596248055287770571902455278852670609509976402378691590999653178866658208568965224277650887522572945935422842883502037487151586747838595190401007809250842546430746532691857463729510296854371317079947923959373836934079438762568628971693159542675838005142082885451473817963049636750208275032103301314354930277653361690436507823625282575225916373484259755827945836440143641866373825601424562621777777829116910851964583885416981021625132141387291716232018455887250961493257847960668941912741829830071249307455918132997123877261641950524190097403545406170254260569132487472546317108988598050619195956913301893084940634111833734884711793931124592332938432114859427532005460294677401663483442966292457544755981928562547598793262530582730739432358031309205079324092995339716459165267185799386456209844020443651258749177747536595321862679740202589035671851049971965169188615572670039822161809807061482774086874238803947728267783985031343992117384524763153685333250328502873001383563895545427021786757935225401001764267933727613586991626153101603546184531688748271390977357544042379024101204087684269506084620798833948553704581222939512871062945014754623362873009676859304414808274258243743274714337180993831502259732270513449341156526054774701824563078033325316818627811777998821653861248565345266978420392700479901049228850257397068004539814758520475707120997268348098976024896631746455963460726818697178502993813627606223505323735257854365287831814959348897710936704979712909988471955361696980227251049345455863635166306496716482860851903844784901807798002679505830707262365787154819237207206038661841031939998335682510351829978047132435069989069861788965658649195421948422839382263452869566661476651671599129905674078124584195431163173544962868168411872701744600772325895842014655726989189387846050582100396273406619526873986677051247509497802092191158594815488634266878845726287381452040478184463526665238331736684350351362205171422413841500672591839413748481759865440880696760877727057056627919365981010924751494276850562983019517000555470059025394057923671717402067278094601477888773779784020916029561020099810076268725425555424044955418547498267387603192581059571237435577320363812766799164504981406298102147917095659363082267410983535045771807434803931129468136536077564842205874268771401027683482039543066515947105031907661261909344576793548278474570345417580291655604956166710637312331716510280179328928215199495939613401252948720042154047767829415484816864255240496803409419360827002898767946134460427000699801060313175314947127090273970268416153096064109277055802349655593301010456263552445913306317652379714960826535679720157859372573993968307713736589750443241979399997816297061736904623736891895890101770882677106833135842124453123268237304045471358918345425065719612124420348199415263580873033468073968674728059652493165031922896276035394740735587585479262759813934581129268544780113398416555090348897907485205616010845684232427869250367232663785291270867587950044773583500931302490461796267102630689931900868474352846484888217855517708882349176294670457491375563259389300575368126565061839013822714110732632686996580160370489860281957806305819277250740205645380386311266107110550377681309566527499476546375057068005823525468733404925546827608004357257298141251567915858707745865451718602274485100545320367571723497513148016646557371521125507199842157153478355439058022719826169239838225789168932927796916484248589236335370710587042078820944911707594173516785262288601312909565211035768686413245287077489375119631264308889555240229465348341842641197170114070413928134121202138484348347338524983704802430242802361488363495343624499812853023554595216501067646248523702555372986147380603493540519592789513664331899091152378073670315404214722482139610124861260989785588149610406287718183960006346316097199623394861563201094257556749674610003975589455700540604055838205727111814596963363888357293177989243337573052229258770800445511711309357742719717871949335528306346960579403900013500011486421649638865868185266637033703195025875938974258740164317242131897364577590331103219780999242317659388442704286334547986596458332566185191052143969096176816671148471262051993011727374397632357498789714909233792383906281323753236562033417280956671275423010606635969343462770829607194916522923140763293178204316789095566545287761424731075966489664226083726144775485681630490514744720879394044484061655808474293822329264127445487593318650300745703800117927942577882051885715320847071343595073379027928566653043934594824762244304895268236259715176151359570842400441875318221572978193132762826361757571620010913366233295884051052782894463578870983874671503085271274363644757083966375391641376111284527227853585918211510303551727957732950840910150298275395702513126539381332762794640004164436892720407775169952887743958876766055609964406183311286111032051625449739703720058352980564206516005723975799947085777694290475273784830197568260432145838610749440691767764272635317028655626523033290685661486112313694846453682785215976693594585787621423684505135467361066390344774676398982978821590611484896744960161508741059646548729125886819304500347450704844452399952806703768888996074826291756349692017887649320984078435646505834711450280582393350284742489089288678573598291561631991973144254291933975514215757888165316631848418150520874829765620056595510743179874626161757889890744412650795359297087354461513255338545014279247542805560670921447359205572885050226746435565850926382649075625887257570689010865204864392649145299400479216398224630112965902606356806758707957649594680678811057706160869245130868794831317896793539847872867191623846559333226715519870823281014086588983415443389498482967747048196230211989975259865242167388416965651256130246804884863881398119780762271536318300893301646069210876151082767355614204505442564361158232411945052502025540971694989832883411196151125494855347587924570374148400557474557063303779023662856500478246008573006918510083597198303006614089840283566523356585798925114635873072111767845166707098748624945143214644983949097483600169864412577392040317722391125230828291156718615157116562109224436920411336495712313486318896572878001038958091874855876925804750175598359841563066226583523928809467515014917274899792193851528773294334353240367945759850490510751199799310650223456526001813701656795393510617657207168196796474725539628490598181686477180309981233621307603850294878209150601084409967519063422440541271756980646402345947954491647409519902436406541607919508987682705340438744843159462520208299614402450552611440657707093277251196108072888689817778259792064347682546143051802848382938490037999322136837442560981398064100909912227145153314343880546212120451600507774055526043406024741854448510375610149868427832534463150599829758416455280358660923588988819279706496669345346128189960448084961729627101458573839805790218093282523944738596973656408837498249740779866398036702763285566727886228322521226277137301575985543363427586413093954637637961754213875541221166806140527252114054105134882043784827311998706295136792099440992946472305431761330831123691889126941188185804969725734998756760717542073370078788652636230091297794718989370800365888302314955641144608701721253416098402291866231049910211413395307489128606682888660625335441228298491207596857820622702627698154221443728990932030242363990835726359323917267643029819801370816939642882932999346201033411558956955291029298737945004418761318983877568099264210865802680863592712892500555235585352805535950960163843897087218329323436213775566511411261488654221316199501749159603661355154342544220967817244423088397261101376945457488795189148129585177785674913899338860778675658584075773695062561835895201012303224165244326483509132462838303673160674928339067036382803853939888987901207312951556178742083042413141871682416350764957649401014100398824901248945983116758182392320881592910947409911189212371470529925942033936587874129797986676447375656311409102052577809094619715687027160998429422687965079503276170249019134141459920460279878680994654151225598589173896779868156189445217505826382604397235047792778353790564452253632396852265894014561131597786748661802771616111244857888830682739663478276420611800192887974730948778673939984684706350302422422435311416411346032520798401458717122821678536325315174685882305767385886026364771895070294577999065259989707816940081898278860055744669321079046276619803620622655313459417582441876499827181141850211969254783000527689469632189120083537163011667639681479947757937437933416055126917737442913756643868927738661718866191358247931624874192153299614401868023027344436363820302902553254263539351289733203261578700102677344130729637551049661569381695761289468513208887148149051985664174369238724700665563510465465757832061145659964472945055409788182403037621758309613853010016979245239255823598346960943165317159316631474488112815371317071775346700458755295047557232845128239157189354684360856670933614994112030116743634796393754160692931195137596243812011316164819208881869175023329913146505092524422862484631826497523113484541603153912303956314365845415391883829467571143354919067417178480177683180572568259183608062991945542877727521787630920168744797947616796249627158231668378240805483648891680188838432340266831681016392271207353778031346050963948805160296110854518786592164489802354957949625241508708100185905167856175326757884834351458355081558453623404831655559434076750970623374230116468743258823720646336533181854789206880779389366454567635891196888277716469861979501087333359136647308452458623640503802662740715914228843906307331460973501318131436894216403603241707021477005064533691428227107129311777169101092188931841539508656250796515804817620968660503807754455298233572089341972838876401231794547545155722128176762053324030473848848974346854226820826188599106635984790458922735843595368990467499496624244697439044135857233343034554891749056901306514315812083126057186608304177628381172554078396301784563318668206998797389210463972094931755538176947985421774923713130800542411774844354006420223667431901682811177022243635779014158814583476240599607821786691200553413654006257144536676793850697297599448522275540114771926112018477186119199999181635290878903341647181340738747705940368158112654478203054257288269382689587243103760544113485315804201032369490699057128035352543977892086723238941673522838345873189445586627132223387911784103510908833286589841984216187039853802193172622948456475320078404958181511231231193918553127652422286739721711928391963180256776551843182085665131486174176257602603963718333748310609404079875486262088264774651550352780059883515528989807623959271336089382203171707983344042951121673999886797321097335803836149694547054390740137244344243441447760900798076559570941874448759514863715114900011964460604278432543014430982321630612577994381036366011510436219853614403966345943397315675091517535199990794863405964593972465075443527669196279721850106332281229401804230098056134654301538256784333672388566941428535705373027762013227122113778233664107527518841360240686191698643365097450791956312288519392105180454476308308211649707219364569239834688277101233183778807404674706945390415508110974798387942433408186092962701720450370994310341949189603452017745221924105003688927926176464427391576519072062947386623695951447708942664188892011463229114779771730566020045607156357764218380465063499770819677892048508715169168053568668291558545725584725857853206752415449138027785569899542793910911087024800227686317656164996430094864884504878527268503248809112985446293121064987791275885158635685211517438641682670655016031063958191895448398028716498575142141136003559715545268249932295612803384755903602429923989383245486118398070854754042985759531656338470984289829175995855580115754586527438066665235925616405717656780392147342167618090666396575209314105738203646500958896708341358454694184076873363408471515439900959877508385419568079163369753886554213169174190162291787134383097262853370958128757819132170027085010273810827267578358255350941832198484615343383722049704611326243890790534712925408696206472065978332651306259896327849716715442061102881792983549518913971617302347576859287312413094294564726466834074747392063960222341694069817681251758944237051563693209279852777310546248819659183676294409511852259816088480558538171717266903957266033437450734932059692104122712524585280516760299734884896023377676383153662857557524985058788264512729622041794314861357613958846713513524752101818859709905353160865033249409748301434530423656544176163159867730186647146715975944769299535517229327719906533168507831409508793277135404884678914408383834676510263186410760760295920240736637414098811333172051713911933067769662829405454396692926622114175066062431053703191640812076207833638569215355504232325094364118033547053527201008171277918315114648225208796817747651299090342721889807766290398824856390456672667479638807926849409005073830687849355740440764316369010612759862238789420378555564737157368920172174078832040783892762865504343671760576800579539432365854948588416258206288131626232522029070064159073184635385576013365131273614935230417366251759769129329931052876402742627852707117875000672071033929206900863932872148958665495543947491351547925796341605275085492505672595376358155351013627105845013498785293691680526348088096448086513364786658316739244335859497739139022385610245821944081139686721051218627121371518673094612145402415659181458887906173164769767101109305224006724786605771220684968074132912424149208260280187638232012976617151365375305712431831456590021243706545902430279438555845699814527101768969428382222226052775705631073334533982539447446442148394725637857429451181761110509608164727286081768041134802440785735359481619896794898072541127404580750877014762558978238824823229965561028292781317079217777774221876332604269119816822377978682595370335292906190422514003328539214829851375089530782095107139767030315819234202666633726003674372997257247646128127637452392083063370895174347232306597195248967151702808172414047838211357382803798583479712598653675401317191281300786126725434434206351837824104406244466885270009916601757372100625771399228192764443425112694973315778755030498261464538916478847623135285539089738933926211740573005877875708223118387352337159589480407032039442835695567599717992008331096503942703753990563316351305542419908599274354133106516373372777998171109623960657440596109819161708494746666672647673091431555297300382104794614212412112892989359032261164257252610500178095473956811076023338713377917892952223337927803270304021323359161728479261041532611799341684723650510420051832026387124335546360105497956032076422260318410182332998251236218412188329664547102490702679384615695818560157506983329608255634971502355465975067360859809348242595550933188589771637580601658024115070257131213282141889857729526477596392411334648689370772682279057961410487396648057728023370644247836341310112865125113036481200312218624167257489136550831896941922999339787060321133610927500834959320123453346730517114409540695914460660064894645027431765337046228069456958028270621499839580589438579066135486493375741664276705005230963128728817027161358655495728167461869297307363234242749397525460394008437425820402957512778767483177383625175920312963290854069828625609730485776736126397072425661272804093272905890114148820788108397980376131041647575012286300509434445684763259717603997497164209130225728887967922108567288772483726545416776783439681865686591987052143088498211852880838441171088878764021525738290728982926061685238954445097979926146236141286739359282858613294232333788576368378204952002582397742202389647490790358457940263760040040008090436517145123647980284380952848193913374324170985794208414349595267235233463507034766064690106968326574596364707958079851294679846934754789158660267845147681367687205727833787784371315910132182850709805049455503365121622801624332745954901319610511482895914932346848116162310344266998751364850371272101758898506259073002086429624548749770091483777957987678452513304458981926470586866096545307574836930848301449856700752355902720072597353727442007021021021037625646207378863677745390026826252913822229812301356537886771220094878028188685349486286219782828554414961579760103853869539295214809912138842073774622341352907138078647463363816611415503717736890772361415767781233370848955835405948308462955616214916352968659047738437370997217979200569581235217127036407208739562171840227550798850334791699700019018447537997061618664916928977472542222585246841670027280218638971452857404458803004607307163743590393572930313418088973944405259065161090693701504384408126056071286579731104052809311417932933372165633472551130873223984047905294187495025133607471038909194842437721576264560046319888283899901877406907498192395533360609247154842990094797206793829026381333364978329185956380290541016885168501567092515360833075658177265607776029373228618986204661126295641574075085445542227570852946304299128294377735345348124546404638433351047247295433135802114913721007814109436915805335590947746615143315466505650687248641581182853877653176061264887097038103265914444101375634395260605637953262900786951003895553748773748263002466101629236663525707553965980802564559748446689467916382888751639724940081505098719181873658020397017846054824627351798703106080943050901411051822687029853224876924215145381885636589426063947057985862478663423439497287677939812978946603129753187524243386328402069878094258575448493700344816064762869157185892111186261062781798964614664304806830698486717485689300820721522000434769036565628721742214007978983586842486932986521402268136538173875207070042135032238101390812184788501857990195966571446064070857333580534638780806126959901156274473128359134651094880126527095051947035084898358251893713466485754963680412848837045000361448182034556759284888568322287693715822847661325853221445245195506028660722922824101190974546713578635928862205013704041295268873295164006385368828687423515194986010686767689484324999450744895423876611220153789119544879993236003265107993409412895359396850050311651820455391401550060359294304938301283118823169838018741654134336593414878490162375954198201054696500043608564177171426184567678523209255178676693496914338882555824077894322909263646643517928117068143887321938150435858932881973396830078815551264070900760461954379945827743923291616735418912852301836242284462190750866748854351410371198757100529706758456772025596435061821989888223117487336652371298663712976136695222801252340749456823601402443416110726749379825372298807930163232368991475289400892476842101817942855373870930580235946653367056019496070974375917922657097791085657975765807028333249487530903440408286057150533248386857719825956007695062967532650749656653408697106170332266748379742061630211588846121313697959501207954668369544302885393712079913159731909694382973947177060700702058609512937758211883018293509622429024599701757115869563593785726240200877305326188931543931441258386770104369797849884660506058424182518328873360118186949047904504681783962546908403843952441930446342468953587612614789273627229241956271934829135453213906380720282465873533534069300660632194201256598606503881822618207252470529202999415940975739568517502878960774870339092321628357495728460600912012602385374672158005456461354524116258697313399295822865620262865841128420863748667315426396885044219739619061892182722494423961114504632871473148232773162577120913513847383080228831132811258664414094638818957489183460721538294109379818329909849395898686631425556458988882937554839595049289188609068178826977122345990638912741571770431830542382169118062727560596105553785663586610806064824712760966541919339054278575798673158756695300979572725823861409564924583990396020560563110433288188228479817431704285603409040975826607132998568901310153813945546423414894197198448807192383973522718424065782937927189765028518070620285829651122981881649743046527348248107121264376133829954468945357260139426878264981964292948376932211872221698032168930539325106853886309626041742020966074216130325121560812699270055177080338002821974724504049302223361465994225282561293354588112135126002442333394187060959018221186433748959371494760980030214219097739823959023896161756706877047691379346834084541078783115495893037688552070152787496232796119452172144104522468449004357128019033689688522326838291416879352492229872854449888615252410658217423578277172250746211033599361610641392104286942065595625727162166011232267028324738829376845029965163939784804977273159668350770989910729136509058704880386512244661303427964907363984838408998444044354368313168132788243932666447231988011566657331361314820716524291049654844744524944116979324529672113198847144814513589282957072069747161305796756612679397707561939285169972091969349441989894264421468320019442444113836802030223462485847887611513801732446199037156286962661384584897058864817797357277573640555939164737677048923049410188568786512215653607714499030014739678673649476298955967090096256347024136398776164104705227480305571126625178558457881570950527136275176346655333823073963462848016396582833910518168233912767674821962602076789305547474844813697907201013420312624239223705363495984441654931072165231639779757932588595098958241291778735578567120835805898343236101850490558909724008083816905969655761081383599386958357659541715673585039081345259800175478186488094586596005070900066917962524022887440160809889097169717830231532968522848688421159292594068638216754934199177737926056843322839006095588381128552075329101575967481023698440891330395913383300402237876303555209845946012936353895239251406392209409737642721243639280839542108785761586757878894237365601485262886504587691871470230109683306626560409905101896419991111435051305232278407702575724944439333090505623056838331631361122335278411250575828531214427505920981296416670735303290254247421896000736030943133005563637230970102973545763171974858644238575723707579878019408840414754152987806837899423012753106448837201511354656294563240768971096116304699927675485113668371104672622150759702484539765529401950140511300359633280306872003954709548176991896532517546765547846114817307096577708327753105833550295284268750884130766719585446591554023316273849578250295488430477351507074520460730045570003447481971507109075766888343467803375350750644554087492829660571291158911440844552833205002550173446257982926417307645344267701708518804759480299822600832426924991869693479933123313434132671705886649163984637471102048413558053642928359032736485995948708042764494970480750032990596892078824400914105941948373771813689940689690039742965864026794089821493166554806192400677561800518155066100465327848149886941701585311368106114365008095219934540051290248972308279752443931632338381739754994272161999958067367441873940218650179581414898231022588304564071138069498478669481539382734961558332671695204687621532406269559997703720715807233041967512780747403512958030585674053794080535921754147725073708680573246240917764480004242978578788008065143548530121761304558195819681029002159014793639702285107008576852538941316647926911039568774374286473022106220491006909223361348281428632286223195265538432519879149890161662999620025081845036671553330224608568216394197139854417760123840295004152514413847166069499323058582015457959877244325737527408681147308255301166004876245133273142730152671296627156908812303097019347808978608036914615809852624343172572366129302720622145588702962962420356342587472652597359074648111882409003022528041118800155483313891785777090031098901432791149904959683205275664785470194416751360068290664080948698344533509966241306035910726893293042223462221291528216807978408087881626233410918530479271312015908842840331503902190007163750622505639153182841274733657875277067376636104255387696420027677300290505210363246101295481674694540522431930012567367560079479579670497936876707091389181757276934085874688992108874498544913299628059140473898696554374755586223877676426540855008982302075845828710807511240995595897334186269050800963427569182591470178830744874470362555440557864740389537291979369670227807832207973865839883684746812486704043762686016218054534433879494978625916486948945990054725698247144990628435196876554082113193037638394369958224695402498240845802116367454876605010323016428046529987926387306878602393054894920612917139002268937583200246863540267253801964613825910351572640459078571243327778048991007208852161173888506848379546838193315751368235908253295625427790467488532422360606022607537620347906213548961498003803737492399841203175302964009783449197947585297745871340666805143384577824570613359794934509161862449980750518256589995200141774697528617030338232267042497802708627382277462765146958723522736886437394212003532242188318236641704683783439299368276535335966376714121077130549240968696949637332437394099868773636375876630062279711173089756851627191528658221262824969624544733088018267785558497406891471728670961304476733211408880902562148230479491281756871834231213054589188859853162993499493856343970246557816890650353393346530176018171308553184386366349538514888180055260100326670306968513617008224171807007196400505248495248041775403993639894248550085923236878207706717732677375452939389964646563401044295170352646552752748354834710179686981618541042443425773306259202092385655776875149358155308712969963967752669530898132294154192811392095749957804299483342251916033400086469629498360504694804940729498891761770670535077584343329043886620002363542611863848865113751313969115663297967870883617484894501679064943181038946109374247199195988587964197890769014902385999010520404481731086790745583066386688608591174159480651430508547029886468911698147309434240109145208676971327796519616888025088640496424631470188077333086600896432779980240713657526786667202217982659545749248546943247932447650258588112110127252697900338772195502407945914142535832516950303533289313379546367113206925080250710841710347124901085989049280466709190641908517517259825346890297206850864904265953076526989964469512214239591364783651523927032930465250899899690393134775192979714067204552229810011289832017458968272314419662185385057411019004522645079543222835565847391412226319708492107917408680785607351953030748822916594603324574191633290132057538900876897403197978055876524188742107116577906494017129444456472431297189805197946316096220433450752412601056405681647456575279043924384180081524242924659464093275336630342503296595296651793239121304639367870057841377457748975429285314804398791627775500831394539514215480467153071099679038022508879602754326774423487639613630060605303879518852425209800060228514305202797285929822126042252348930160064578102051767989685379531656115821053305722931357287087400940547112078756757985607994416996651237661377231858446969023922520294820923645868577100802576379065538082183820053642550550297502107378841352449807947515940893783063818849886371692062473488416769408008150894777938817797066193736821067538448888614433135569961396603689220233179415455747118205409586265456145873917358317400493247437463132678044628311606570009288590700478541270015764648892602399730018901667293845438675475575603521925009391655930312913057438281081032484815342404925592913517380292428256172965995127383202982577820271855083597220965250280286444512195637225476606225119237064850829369255629257749573049717019382773169056653960789519410956803403792400982295833158209781526954595459318968197002365009888864854264353923131230355005871718652186084490104258525243504951010323255130079131923989046958635158748388511155515060165454964405961521610502918259735886162742975440050849914870599063718264711461019134975841961720383008366701076144201333765285047917438494665672705159441277828376247995912366345636999057712509362391426249418447408508956288019140728035759035903990190856708287218853427061422207092145251049182909032727225626948547308136485443099325483120725556693408934054902056829268806911714175247154597734411353553392481800435816689318687397917384957412182643987206389803777018212790273190606781939656209315384328590044352255120201863062872768695781051095223487229602067814471388003517045113858201444628392685155248425696849031845240893475654590418067233286300236631853393955679198869622787868208489318284312059566306024379317154376908074021033821424168677988109603374054247451013836175576962789242158409443844723200558060211425268170417519130780900057763360031638694243772330469263698264732355140450949021733101574284803297090356568007018998394331831773910737573225745094294610297615187931501963312561494496676238662565801054565633462837088345820705103447465002022861908701876229807188752426118014520843494798208215658676113039242039434755073551561540833897335902648213182384952021877357891570064196304619484815677746783068176199011169450139676341801177973329421448858025214032410147960275289505369169756396969550727579787637876216299837506875524697782274875748043021638931598306881851093545049922025266854212699224330430731806414966583925826877381236153202576413042111261970817264528711970516760409155562102782288362047474434738514227734472225145540012464801088367034812731716298427656528414495128317159953816019228386205261274239671482987631632004512090074216471217976945514100635511912518164615032469696955172814633091289101110948227925473305000598922856495528227748186146530700317562587099808254364379146308308005686234992756816928635612197405715139937389026527177526109864248500274647635159209518891160735225684387844645277549404782197331234823322678166156591572751232865615131905101696527024511258377705635334366344338373327614868645775887398979977384757177193053513102343194592098843730480291766381834490917225623470404813754140750573598473946450467250557912318918615954196295797718036654971091375308283836786216005679068857694323078567137898768441024110017978775910350764639329478324588770250767693322422652923999575159319097686129827060601169866107480422091274687948249555287219030257282519815167491639026525867480205600390111255677881539465738920552308957431666109827939750126161449984235187905805038994046587441291303432593413213135468111300585032562220990518259300062298436854675930794547834963824459539103360308830922866377204112107619857772470166396401767093793421032225852994112375688998801317052370223483652455738630695615541947319915822285802413514152650958568123300638475442379611248496092340530365154230616446257401886181821087989715655767257400675159846497242750176459941103420088679762231724120095182055356295619967189927906752934039360657413400722368032395387120946738842756367951329805633730399766600828792464306821284489231664885111606964606611988811969464293884509777672699589647951996484115670017161885795945214205679034140823902593399145072727589117218198784157906328642261433939861078349650751054654559897211238093513808128694043487871877925966786000002010323191817111000301717502331126818265030516794364545311896957070319704383915368035621593113542659468365185057246120738552400358579073950658102494568058005766024873128650122345520596179344141595538827912695829332626019722984206810138293360361610897482306414284292127669308552948473873005306666994011760992949310096308133525323738956561110475763192306863112099301675762053673369375466503544285449734867983379276322235292985179870074716379811967898499256320603840266527829340027703629119855330190937675932438290187361634477807318040117611802440880822695619609249675645454159802521538475255831353693469899777910076142584847540352036555623017693489491127284860044794970764967747473151606903599834329985654448933249334893905170104317989976702994034522715506891957171556671824221061147940231410588104025348936764758116222367273638988252331016449747202045326410731996105847478141941172075144515161520881805223805331475281484429986655786025955720355897331907789621619643258571002247940200049957195578000828329964731644138750490864646685818858803626688014327178371781107751220638656177152225442566546529503344945602922485699656627687668200978494029556783756435162452275627970225284137534967673257534830854206881498874631796746883475337457350149587899004256184026000759686161826309631916930585162658869288421869489558062817049658783362544644357773979322893261967686826845447415717142756855312511155899037163224339656865899086566367802405782662525341723653502795428152642899446743179846749933483375185813899091486310237758922801921463267088649371711435171731642888971512705540448596407153692660269803199175685446803241516176764730416273905374013132455682154609600791261788465387193931255215381771029043870004552094074838425093902028798295155175879002787092476539424128084319136146336950139327867138251334503094252826852534117984185516644177165940260931112316374205682075542827949669535294024148407259154916573211889322637851687211480667058117065128705033018606372433917751475743685244993501260076270805035498509250907634314406606355539776970622278250085131194962350691693277202474776417968681214909562179367952756872074350113252977361786648871153083077488449639653508782826047758210766314699992383758913730998480880998323195529109327359443156546136443395438453639385518972087039483496978735373958105058752532239047585706758875980392623243624511782990483360948061191917798849238554173771018381209689806506984948097556568258762312983475250104662577925697420063690081123832325028566061737039565080955622370140411804225233294769345783266570704990103116116318259106105653527268126659275137142754198085313904249446745148988672213671642405835198939400426727663751388366566138254728973082850038068556059089434195910999024307672468624830266887036201384706431891439660405682251096839385379082571857203808488475831885681853868183158620244626754033575441708949329157257696131525449866317354472065665579214820660454999244872318590763405735425040107668758278958488667469980954967855555902778520704791982182714683420381316749868674442148951601814837412649664845421774692002333616169093262020608865221222349331774209926475571104033940108453802178561696323645529270077688871263472053395182812624046558394486038752051758068324887057141865573443401042868180965787285252059499395755447465284221535028087617883669461362859999525787570610468376125468788808184015086133814294197146850414283450502725705451351278917860013831383684222862351894334531727214874005478018018467597931867638465255373098520474765167320662406097186817745495330752976708127487008177967136963927771088231221223281929987366586190806437969922827475276486722608512308810454863979831185103611162630879162750838611213863469411936452791253771487071610274578557494333656639956330438567514392981347823266983531115355486596148420002553755570218738303281037127658755945161021956886877119140434199990892026545822054469704222750287299266599059661492053642907733565835346471640660931786679230794288779720298628822927380096683867539708797341323485383631681446853778640619138355197016601813336376087591159253831912970962148954525283335939340022843893742642874221077452712420566315159805391411268244692085735479110579328485717295533599047305814056887075909632016623292997648788113081960820527900911871571745826181059962131195601353237956331548056493690972776143752507543330347914213219733843751027773695131030412116223575478930357802160012256729550715919967210681466119724552713300305265306354763500974047855700349657620637689822858868706073580025844793443145432517244861439640477858503449307529737603509599287759142846097944189279802702448614992010691429863833282142972639432642011148810354431142585349317127466357391906369585958326459050502346648358528844277640485840384126375069232028438590988417401688815888080901632566419680062780017948714417235910681417167541814092053643148678367210225508017824718994700811873771558040247484861245021632264778685232464160611314224815993677176993395528627506637636362640483442009470296736714505690819015002921112123248340075186985826295318959577559303637907784297194376720133599083008571989436251997834214442501161467863590296637432657518117290710380674159947403961059467592385158775817827599134253865782802533764285711553311350508789837793094185901053498727204081237960793520550990691047487070393453456549987343095938494483440097584017879375112741996985892333042204212217458324111752378758860212789388391228637476803531929281288948568988315532406250992148940269236508545672037392075917122948200402768663895784469758080835822624634092129368665753035299233765435772466646946931004355673597315591425062263499144447935387713611490819242128970954416109440962747482699043756528935421008095397682720541324769539054419048313205374689195181917892294120090182174313538192107690055867553281640763370095719575481031141199430397858225815443424055219476817525231655882797235446946254946029381647405315626055832100426071297646104514941585976610473432886410893365416710786073571714131876255539203160098649805913055402387439734933681968115335168514293098840949815570415380420067950644473584142685955293997610703710268647765616296110678876780614839483827784922471863735100537369531133102304846375175844818082056575059375998072916997930904908679163425788725722000393395595099462116312868709115102703549332504521290294074619331440121311281777851996467232247594795595064757848569285563330064024555504557468246639790692725750099352007149209436689320810357698408938606018145092179424879092336271580482912261908678182385079156191920482358165779898920307873788023931553291267864234357619132597461588066202838343702739872898903274257404876913089558844136800476326498491934329621246964218009987898436409348184742884426207048694881927037443155948972618636625237852538821114304916658421531537973509080332478502147869675547028666851071293933644349327184158701978643413787750128516178822245604926548191309248174109243361392696419495848061501411530008998351206941457485666585625618070969706558701946506959581796222400770463700672235684270314703716383239300845322000357999248256807113279922057946861204042964812954723655143782261468646156584486804772437499121143394202415897567190395708712563017542007058384278226359283771266050386361239657015113213398169827643720058705009878061721563649615050894978177115730947561527417746005463439255986794471322159989535943099074112738614224361757453254444361449118063547923583839621951277497576741025999777605192976384239043015385797161256362866767194908326663981586991774934211969337145579205703374337371753190783384990373820644462716111318400666303760486711129915512583776379727744240987638770736617298467853393390815921786286403227447074040477234231126445512579912334222015966097162350245542160580196537943228252356817764375334320484369088076828636292972509976614000374673128377662025738803027733485522616687197550973074127813453706008164029433279027979636329125986097242127111127265205827465576652379872954787368741308176623425172549538903530414730928919553724047699735201295661238571979709813866960780389945041911969442188635882605060275192587721666530366126285348398406334563165316809698643609448576405897160663224207601655458990619535628242953142098476803473102212538520291230282584108688431467201575987648361789833688805653693474316645804447370802270545856974469710063335805562757422655635664807099794454215805190961490188029091273884358277948300072245973769351790554903727187959901631967859956030674903210513200755766676641857367366472929988039139734902396488918614760295515874971399411515496594048952443786762405418499925084316415938142293331547017601212067203775417091013375634272716498459331849007979173516681956957982069545199261773028099271609005105485317962402995140471244303420079283111592615390136038452047004998699055103876789551155463736801652009001131214806824712085426252122353050160445085787621638034886948219193545979921254864397332277997065299389331635681826347036280193812075009825113974830635146352847817352901307450990611926672209533861816011086872425302016268261402922915405976033305058192782144133247055119456115240852939443032903683169744319271301154655580518391314877974906462884804512712433961556073561839911099897066975852085583110342446341270950310143620981084431850069579846801459338513559534747619426798914472276229273844540793106623922038117715638463888857985635014853584116681650760447231247405957976798229315367204307186505963276745735476049322830769324375517561943621096848227302418436589172851661501140800619817840724646924888879599441861802713812676808482663588245171405460982439597594080072929878752927056406180975540145535447314389926564593862717443129034532105545124908410479303272452184240887994203383302834716408758949189160405751220167812977815814413729373147072700873528860499444212770592720081433598941879090321185030433372640227388105331992929966613606467153771382393811334074393354680423399623890620701981249244531775982191741262974586727187557781869091282799884875112325595229859109949355924402951340846044502065766695021404237278004233166144646573854486246751569359815970948545915945634660630990142527724882111454938400972375615000223045476892318377923680936807688250155234830699234614187381348471272023226809070070661240034469230220358858493789708699053962595685466804386281028324499620459277340098793314977490504480396152134149931290021182902070424330791320656731603998972660391918359952476296013139731509744003918428727639172980570776753805507321226287155933999757346892110060904742967859345932362569616353209264762428600684265713591334451881277571824869539707933509234122726603101092992196070181076110027674236138042854971360926880351594703922836374501231366652883480258387281296402686604068234437288807556933351723059039188283469102725768432946055842313003907447152193828773369118343943163192240479036069007470627261443693019224784890101946915438497644210379539048890717149033220110203563057983862017188568437230983063515075673473040690575875775545881306675651632962087786596296264391598747798162268573854529412615014486113166387907612393754857100650968233850085302224156118183029449655578818653222132692007974134607861013955290433320773215960689604807480870513812363339949791736578477113492664952531601730723250743769533896664740906557418233501018213441141197240307407045225495097096508329889298963871868523009860458341299550190365795131243400847754726122541199490469363148640245711020667098897407865498487216289473200481073349168292401997248017669355658977943723789439669776677593088692433154421833924946494190171469663825155473757853382556571784439171352135217264392154240371502408524915792044541207562758249290963414224836496027802813596943434897265554846296159812439835755849201674293933818671391701458703517561114489803520003672986109781914793652532476524895094335185186724526701035023118255477472839933313732703823260903981795587551371266444745604698484079245257783325318571451145931147848038578456124863686772061401367206105354868536367974346710291079997078318045964913540808545038278493474483309439755359979590116664643015680346581133936701265036011411385582461160371567690040458196608780710002298212891061126055368929989900439071614192410652472711248094967375365635570211310830476078314987487502379053411741039401684824777056795617599615915030930405539934725477013156184783145936535534444791530357702453063047361757844817342370164536070234710355705437402273955302605195432550816333431384384949132157804642215399419436727784202695422878122666459811165641007003392387108374106377920398950841004348114320405734159658474839125175940694803242960705003189771323738521050743154117171179336291870670673104998044790982949211161116150687120144736861771245610289406113280190024715422381345717870134010962751245918736511599209686860756921421053018649310076797079228419026288858345310388639460818519432584026860996719602281019654643072059474042928262494238397544019091007101397416696361435774361558176056743951384624000871322568184546700535545167664283216269789027672897035939683633399828386241127964923598218540014450932308850967139796263531929843601755334140362316933424374107541459396462710807207184220978762329089236838191152910612982920891378971780395453633526213833671848329936479324853371440345182271074512504114385376525502520203324572543086285759383789907225250605496236802887617929393476927165920801064864032998921154503594799309408913599762623694508300150981067798313212465972986431400322955579768405409627465032958992676954200124895558983827925289417871485368718586757985673643860066851069362287697974822426249210292327392018277279741593723589673445759812017529443239070136203108240823090164350709258827785678496096841800448820306267797034455945333787644344697899306186772812433206757055033474800442874206698174440834423339123473159753000996407216013930827901073303063888747371589288786907452576428191753977296874381899622175082511642637425452706425407485864733375025370160706449584123569763686830539698648942830855975415160525400740221997831833535968853379256855672137454646054567534986026961790670949471462349422447352149080727785227888154875991638305387056443692539751591651125930484981527867692875607908603546876092195915716260909585163908713542632518017795153718909223651941713301524686434371110895210623955459659013379822832432358590505923095248732734960972535854315435658583067237692275484291799163611878587435365356830248847150106927222910753320331272988091109736272394418405282713073373127612261865840455458023713136131785722458323794262316402866170623928319544642528921148626617597834397987556879259573225432770803671915008201189851055509703197978557766373031668298794904083723534212980557375477414747423796849675509125945231054487377027083411146636690014154252476051497191000056722686351481331311787155342074292947802366430949222623884486411614883484210253018140609316104220565648385270873181526927831629194809050310422700831768919244208024597262561551962570345624285612603602898651033985725812100449424886353206170935230655936647591415851391541018465057468316168801472375036873664836272219805791828175498881552228760476040660829053864672683448948254232357364565475902402260987645152669423038319264002278325755976793219835383401896176208612962663230961758444559734793241032283939301126931703220662825502137338451795822484903809591037029015846867233392672374693923893303702346004262068824712788239000066254742360208140147603382697809279058422834929084820575500626141469243073084608850420405401522525503470631412480505455289649768194078007464483375121031692145331599291752986861560691280010741825545412025751327276440854753289200648602707789724817661989562924417104206315952128628197204175747082254871999101650721540344679465452231873611783186501419843727353339947803448397471836941035133217157203855622886764999920521292362991070212838354832125597372145388953543098487088553177967697841701857424943635145796447033653424405554458894118048997233130620396609566374861319405434670585103085298287420401353997399701110002828838465955181091648789398614938801298141290327513889595650407654744389742557776602991677818953155246815595542725119264773857736708362836604925457550031533508602571357568015893557687551052544406846370245717757812801635715047011952289248289807217684565025419513977165469656582711551679371216912463016114976346672420871090235819071757582251135437767659461158168951579704866388946680335780457982572610546706994486850058056235373187488481953139999659525071937789757164853128882258217517878997554698078406998258401175592906940906729902173433665033521214595377551118961033033873155832686177206934342605117580146825944406413688323580391441682510200064981004544742394721193198979809226227836776339079093933814153270965476279329422153062696416795840935837480069872681503526640214419427329616578289264216819609276144887393336969171692169300734359363722912248969438731560143872450975935022753056094371707354032915977323430876630728417614651661814684560348314243487388918900362506053724985348267590965403023760381847457859936715640247218680505805972189890925489530300317085203671618055014083041088401025019189718920131909824026466396914547244038616399315225229105680866396224006304396088440323060099474805642797921410877405670483018911919023588881576648448502236100075710094245293152882043216131309273699715458148755647094555386058055658563446924211530783190561739222233067821801406674189424155039545934172653024633765731771351765018662551583683416604205702345674766281090854375764540959876454325637222609881896133259780021258389233333083914087458236481969917408911204134688877459915835611098596230567171947338094236867525306959497688919179303652091974781683578407534056922745426415541984955887825595134425472926817003513914985714051977563522679470393030445572310008663493252606857415070459205098720464464093865462159326501151992043254495025860211509677604307395868016411769948336722168241177458188788373563129458139991986196433979059762026445707097511926305960909391971289077427769316027565904905597768465646748718037973589558505276788481826563043316118881087220895974015965518167737693112856536990742272333353648135058104986841586302307547437477442620552436038176292434026857422369844705579509482734494179511683792283686974427007116022667807109084346640077603458963744027944690167977947779428324563281185723838340326133755735734313479669898659403782152915565035704144240327231238991860267410653650355201341993175252509715303811852196785458039521697687873371413591642517378982429459859727309987340481099572814071765510739160395748221439901879418383664230255879130330154940003230789567132149440364804910628779118184219614068805664686436070566393924775622330909182827477328978563557276609849855874054356569336251151231174118424945021671767024772145642061223159423048484067142222229246643224399004004135000847091050952624408232771024871405667126950716377956833966593327921716166066509815222900935763398769405242863346593285517554534763983353470246301756370658237055573847445800899026708667678177906607583486093058918882711610048714820760677240441457993517762007204717131827583379966046027995787548258240089121517416212113808832673740590665894907560534391768130027819623566940917744754723046860281282802838229473072247423532981307877540518906942916027411915726966641750256393987511255592160167925914911561438131797859932529988031474624638908518686885054617138795082224979414517435399627654901854178298914709253932057534459128094192853024167885533183311278927254138409741665150232422435887819245050793195863206710059679626306098743203341928527355459322407311553851511655063487276101740621692959983155439405968590130294565051399823090849117414892224007342153336266175293854342358039949901559350884303468722154129949313183449861326876205718799077239329451106430358376698041494311397203270614023661371062661305690812832251350993546348884647804807080402591456975429038857119387075905978157838503587705541659782467800241882203672405241526475921533120748454103340715160359667961370242293465568824898329664800410556362752085166311072417280268211109206943852095354937961040040361703327645150827872390814509491689464091438302974210024302844833178236820573382357061060483378204953873201919155764387829653699989742088807257026696333203178990331224255303259253344278221080223547278921604986677665273156254431070990664570409752742612199906375167298141268512075156103925917503082839409359055944709387585530766051750272306176890123430436105245787354512101201572754009025170121957707418918584487143631076939413754973737805289807617249177482721629286323167284909821305154481486691422801239752029874025331262517126921374451209011702858133743808498766182351316496744878257373243784875886258488274459369742459221626756282772963452857664036992415702477816205679933529649319796718039439432474417157448049499148713597695085198778327690404781786560089360302059765059484207064059377542959013837836215598164827023854492999494089914180198999843717155008549985827230082738002374446230469141580793360075067713098746484830415612700502345994111029772886924800543621757393773181859759522738577090605693716769568262210062747432360593557241516493837694578486690195224944397853708310060529110228717459044388169030998493587225911147521449347512048685530757377888773098322601860736285428786712074625109732705076115055836796872993130767777308627218143165631857230591191710395817075536679963180022468860705482770043663168174560271994612173468245089802314258725450673951042553161345657095605745523537022739321439082735072723775271264063289825238514508388292844674849693738874815106154521622424059820534646349910182532615067994062100944860681278287582117521605117985118127580784659042668115203645872612057083909529308883235335483091960287066326318074492970529586312237573526300329121308124232087134790759560399060933802825243603062035877735541729915924918159109131327189056541620009986163248053873278325662594077653482762615504954778114565129374164146058144561912122141323289498316233486394728281283033958146238103079431966248896183126667624416017432989258521495352072264732377255949116109737166881223176961752164903162103397091408673639204819855460895865325473115903656248260162074843439207007309013200553662404334441812318370043640336016373121322923604352691038607647641016828577816190049969614697491535103891669451876829233670737558592200444803332865846981745187690631457447879830709385074153429831000446419358657076740589020598954603703665264922751346403800238594596876481028882820948358744679273366967444968677462977844632524022833584449194301528815176280836608537025733013829551440851735870273929232908430592952334944188076799704548082672512330484501766157123040327050236331933527792288737339389475486549666565537199772378243113111425468351147374981935695205823144951413244966007039198836596185890485541923956986395594367890633169576706896395933648963084048141703244067242100359893699714315288622198681533525659009643305566866452777108366060210629053392774121631913478309687110434542685365089879073767730808032344749368821667040331509969261582950919402107466270140807993877421669312097761865021121150531690504346145876920878328937951770195588913093328193261172511593309667831068778352469081652364763640847755152466867627465181797607243242745809953858262528423508724830396230404668369871622904460274969420634869271702866270355890458796053783828122615984015511081422589771673205336497320229886029407767393929157031538899833767737649435260521497124527855004150925849955246642428964763081088150783369166829645449083397692843222161417275012417270322596298697101526469211644473404112319085340510659312916592393682977112345828376068096559496116865497736431157964200109189813156344573959332436813663041828073114995646049752847309739895312884563144861540584232864195898058515103370212653530722327929808092470533265282217865732788846870080700886011656946722247447040292713565760713409317977757108959063474927286516831249487355319794586377571007236273013806866566470192758871499959475675158143514772394441488723426726602689308087821024740338248627115921745481898784732409815019140726449486616045800228889788417873259801611396504891684953894397228903646880899649039196290694082626004611120240089850158575048599028893758829571623982779432584750931757472847075514865006768646768787100491102478030057423162764402617874569094195100460722275127424176535813851349232527979941378570013742037262710380767540406014213110699321739674117518797071004780444109170922240051934964102582431440674615380438263763084640121156428057507576504429164375207784842432530354903681147419645141464345391956427399069291359675024908627805050601877634996884432626899048891261583341072751188950075103921027879061545127429772220768450814898221480084885658355617146016477400998411247444758223139684595161444886664554044503691995881393739367866767356689683241250120965706816154745838359177763314660821339693346246460059311365327847571056850071814716075238639591374235481747556717831216839992548659276073241773657994372861652459526790401417399718932606467097441205690005998661297838876938684640069522811547303457546239252149490206139125998343303698884094450443783151117136338532562727486455802490461935202897128841398171800927071128165866279529939680467962983228633439322847143310017665417205468954573665801327282707525238630024742678361658067557414485590742983266981538967960114057298129914232797531207839190750284388106811092556398758572830283883005391753178895747240785418721994261149197860133633529168462797415455645326260664017926589573910437157856609961027230795405692314970416076197651915769355526886546495551457324971577421893202803805734589899310139851864337859562740971833281860410604125428991965603257869574525322338109073881629653151044884933200379157300022099291677287678252491968059561654352196992840412679449333946385846877394193197512481911669256392193558524127763686495706119881363008487128308434445430658112225751583861529444685916442545885280605639176017597784531484885254613374794321980528792923175518692493857551092065556414881065681872943021558608844194529476685321656229227350102235862466671306981290730324272954081523171621227435392227527196667229965272981119155573235299018641438916183519226861972633567948165757125673413515398187013238281631246818614528772930600613916075502109913002316047925392574594483921084483364016118517113541659777296224692865378893860236597662918986549067331116339577948528740215781692045829832931445468186859041496463746043676640197055767413894721257183930705059859984854463195955538989078350180632111058910756059381338986258894186151143855291676918977049766942659629531464427619258502656581567254247292531475453094915664305907414154382268400594594337486633544767454617463497270387466116526477258659517091033704106272570316196031366822175116234242190254016710507984727313778709692489738192568532350979710948221505266293655133662368861057725663053664648273734136206909973486605410167742043676229435366859982154421614791008229329180674414214045329576981464650169505039234088852452813694567792174443019094399988589835007938391002473669041573965532889575629060322318028659642972113051923450592350436904725612080274643954385406067709726257066079068657358431509852592177821326464965454138576666881850093263727730965793822753969729529707873772471872829577086111787815821136171677728368903455335105314564624183943419870519668260645072940603224416023604405558654173235963390599221072404953673223998367691613565207063400472645125048110835716817621590010806326335345215260964472717580410293915399133345159820209725249816748231689689289618158826280428431737073367429313752095166929536221356173117304246853094027110297159824319207199443694153981860429990809811256657763077470401181783682529475561009551705276272818466498111050266379808106234616633238035621585091725881811883214982288173897563165890681667183512563528902687323315669021381861800135736386725813010837663178826043241057439187343360097514928982273650154460000435341000514912347990606021865674319221338419908510500656821396691705465305458592995290399293408857296520939110826355863415961466385641447264594559971554653961188545011888327480768358203034900698341515899507364318203219694662335741336718098230353822613171165411091452116269461498344477429577398954825868231814816213258251135994751785889554653693333675529849838503097534711349810104781951445838056163241682891267709460740036830796161763069420536965028405820841490056793085547212938192049210497353495962802035586244097643941853724057436635628802929172133076553220605443265988293388926598963488707066054253898189562065135177937824489500971822833284946641649964931263128338421920618640935386262440257339705547080592404538303024979273686191507731687825253808364335053992704076280887625691699090768890684943010445371624473172670550065658988318862066998528355075963558162909031649995033328303240748022300756167677577376109274938250881468638665455800545488499740534870443820637267045496390475397524459113114240163352919373764438448684718653122138613150734021935839460407402614819123586463886134581873078851750485699844023133815254013682750602606505384680061959053861140615885245785182270708112309857389276441622821083390458054505737819128859951445197059473885482072017594762592693170716412246966921526839334233683017795375857286528460463928350281841083360090212615691223713741696295441760271138850150424742478779827564832316177409770732522295656585619950342492150513001482782815352646103012298406158098027099009607180411188199055626765975196528966029767885506580262137551834492092121304714049848772643429192669405166886956034517679595462670429243905932283133221853997467931610444702896024860417069082260609096636258700035434229741614815346660246636095429237472343109352918079389914214506613030535221604628522726722762466213785156584937611908601204674215837580059692175237148009489014523659561444926509150949371115696832648021509614248377311839734658975045706087685735039091794900566210222185211590181238448331369512817569481761627197077795689785135008732542882060443218566253860653216966789671746047896508632222971039009862810533239984794073447225570479724626212197553892338674186417716674795955306826884082687808371984435729008773671139830013745855757560810051607256398909793999218669956283015345424824437293753224518288968682111373536789113445986904107660930049912069569132400657878650358814377452819997278920816289479437576322988423219881679662153437648137066136008198962342069208542420364896691804612516110752290024848451942846392161672829849222757593210342609211184209386131674385505553013865016716580313410323324123831009190220153081983635329934925516132333635768471275416699117861474477941999941549225645270514453779381497453840361855204016346651759043506305419009547384912646108588683874843104070286026346125148787518188820910612044072299022480574713782450838186021705645274910846182474305836060598815994786593737899960502778360347668651717440651575280685794086168294489947042363547303261520177105498055743787476621465479688144499705919116834865299866917728099969087716828627165811849171725953481926272054540076114891554813069890152096358392831694092516207827719304272860362738548836320881174099138751045310803679910073836241633143397750274143120225545889033221523683545935141563109022513384781189349512748403927555097757611567023283296812185556535221954020654683877611629958733887034918947185877985986847993741504671733842172920811999626140412239799432381394144128728333285657726771905472390228700366167982652042630778406633503134160448692106958258824527482269135820668642852902196362877790757222268526831914823897261084611473448242474740970099017295658969415707952478664597438379130345559165187556814364774632572694261115581691064653409757254279623593763779194257757847477209926358603462699563018383625570124301029100998328932523691758183326187613661346868429517270177520892571885035994810055261562234620575953153417389529778203153771943288443523721640382622599083052269186784565996551960374111050840866417505775828442214045633969494970620814980395262949250096546016149397953479354123279626281458757376870224157938936779173847926876409175793290379899976604133617760278270003812532160406704548951880259101281764454145312184950408291483493879986742976486463933852357522511003818043941344399100069374976453681074022216310552843007181105590869013981141245376796248397306487226605899079106558535869037796044762037449100423525038753221002418785890877856759556718420582947754596648577046613655896910217994960769297287304942874323585646142270532287994826982737345165071766917225480657270175327945981102150702066666468171008690723706348078481904754977437352318777611607043951141207205319781329981994183604897208773272147783087395761212956940713859180719819586848167612963674465923299944651677332900564265077346810895104691417501160365287180801545776294525245702640980849126625111455665624328176879161439563396362319866645011740056848493986945703227316744344921173973290493160975033843829119181556516472760100538516311517328611706036298866519516040850392813577230176289959849169646529977901436646522809696583629394652212614479683034439959498806972743301710343101958775399557282407661502247634577933279027877179267547414910675105575953651498132544540094596103018089366482806645644926380039976643118478200861782160019764946446208230024263124357403619730257250470346453246281042470426332146768307909885780709901887120914555546097556841103620136791253801652149685028196268573426672436651096628298890993276257340176996423643418323284937881664735653498078918873250429689411211390274704125212155024032330279366951776939321213050255286303639458190448737283919713140984736284166406726371005058785383871579510478878165690510590260280600623295219022381071439301196518844422726404409402798389491540203676360193886483614829076666977693263255772468276481195160711933737165652401136341669958317853466238895613835483315231813790256596615079859281756559377290933988781993250720598030859071399298890410357136598039713662553353530716935704249735016708850947325448727323177891761688420662530434953812865518477569681758499622655912706732587489283964640504826357143672676519430330259003634270417706751616161415663834928495369412706720551519875989547566173874181707184646561484973825526377128649372266896601488110309846349066039797517084098350782174877941260638887316195661926858352320891436873179521623921444140180833435713944196969607525095783483940970740792567331116272101327516884988555601750673369611220173069455405402265383335497307539989996574556357474288149579893704672133553402068685006125543065788076664923073270499133565506881927447638179848252923612000981682376388244883744784744942132924685376210221984907328688630802826628556391912400076882181939224682697250938747282737420602159008778895611630844104346336994061432146660336401746135683947243759638315142810393299651695679248882239361134196189864307175615284755712169303451807175744816180035940222032410139083729794745688901401456936747910732636996133608658146078214096888619547534979375946205252164784919468484851737062129979945417252851295212714123007874004753687119654209744603545964960754319997339144651602809515267721425226548184835646456626034021672125857495630957904894438940945040383616480017761389245089643747040287447601485590975450026188742700933525454586273689661805746051832561726803698277244555264502506083764222005630780670314352022058155291542827514971996552210645124300374598386913391413841158690322944412187630531046623997446623721834732719010671770155720532448070217904844022438479493031775711429192769534331331821000394337058488837948272819199411474082156852778129945445480959846625294726680758087158779010055318679762934502543097545866355357438904749636171761656872241860470320270606312778047648314131241357989938737978295798288576593293236623527229797633333462449036800649819972559764491618348843718484251865543636797896199420484137911114096556810143267870734715307271247410801502996783228834599252620508310582109636231756443577031672260239440710903538549138953286804964302607557513219035351590367011063921718190431725704446123580113627108294723956604341707307568636252793074916513900533438846997943452132468695416913899410656442981371273061426739693752200779282937587232311724006424542798357156678101406205175664992506546420154135102927538891118026711161706605329203882016182892031382306088548260296149072171290061039503041052967619396815892406518242594948500525015732728746638054476826981715467237649779689781737026601289681750473006934264596053609707401297741464541717691710212140139407500649951645698051369938123644006096511735150362912291282550594585835900759955646972228622994758235966654089247677086699120319521316651754361156196095170655227922245872910594555037471143732901076896078532684769186989222969044669149709932974781357971536608280964578170352580457530675856646322068856280770729489477647148080905389066172889266742958825003264644927384282594559157936475461841846540065209772265641938178003894261571344394351459821653119236742375578697643903312432008117159164542388471889432895760510514098520157200971309837349801541525979364071288865578758564312159933624493615684240022035261911932405977462496199676676065302041183331833796304283950495730783223249844808505665142477683317957067810505052586246145701928806404397382466638254459167413610097477104148685693535670206226729902844184090695088291481605003936695668537696769890652365107227921331598795315005310106696396142140828531247224831810062481038225784422473291028646910174354850105977074249115445802685615877650467304849239558158391117333900246719889568704533808556251380585841504014916002850703546368701182400354104999127492023768679734406408592801635871555494928677543793922112014930373155472383836489335117775806854240317372598283199499543132324221925359851715303715647934820517629921186855825001697989723808365186464544801398120029271183480480593743464262804446198319331896789606357160491206825093958711955149156735496069330361294837471227819500364693522252644030902386136739254009744297234993123407068114697705346762622403504012715206658263428128736310927883487365728768725468102607423985371386040003812596051100232133578590561992465438722473456382469059237259009401565108000778467063725133541900136946976182958215993402440481567602002066763336497157608011675679470579117393393331183902852191766894199019653113339373754658304700222806385185733223048359317643865961759589255385702940194778647696107159724743402259630041444373335161687811026310917343800705298946528803741804876776760580229508137264990718938892138243577968505613700677670582882637234007044385971813851932427672130018547266079358065076412449536280506738462594429155644453869686486214949699273284462310664439195333345502420248650475040763372480108119751580091663919657683024315287989927276621183278937352404745369895237525220983634422257460596759722468842177358341740862034373940484064223544692662135176752898062299750127066977626581758935717414149151432060327902917836855461522218204386696303170938439857714889778156963984692263659252214745428114381200203773715810872509876364673606164739696058493632037583689138261402587504855001515557875331631432182974594336170006581781300442361295635028129485287912082669080754057001603480714917569247739419606091673171900793826975125497647370332777524963812053135189983717700772267767239620448530449123540635405315707929068460115776729674582333624175858144699776944935000317454772608854561177648662140942808110251191246967718778245218751176632033703443173144015184318197594363211884870625375509831280165907622888186900454729258215261302575972846471806978703346238843680730115790114884274361978070076525677716096025293525601478489337737773625224895265077967957648050110837266937460835856098436304742994213061583597330724762388857533979764931051652796702031351173774115289310572210948304077001553260216095041460867751353412636981166024546885659685831552336465382375764476257698633952154361873142197282367344607432228818856047359093591784868262652733730276138891133174462511276303015199225105991430715998039082156895740026479247265989696231630520473301599066396531570492618177245182362188493088392633028336114084702831092004291832831456521018503278691710714704283539353923833591436576927769938446230497933833255489052473695616741782721255910766724057851430372849642068979608779822260231012249409911125292057051909551418486803245243514670346793080171316635699006360227168001305306882086730181102124462453383968946379447616066822883955347831849158999488361543659850101914159760138211968290973005025699391428843299022862373663269154669895537591982643611637469029577580389428565557871712262036855176384639299205254937059042767954495716173367247980384095209000449818127132378348831174792441430526250653978217525453009403795626205830355225979860180029709944820700678941335692887497792810656409616916653378222851269983147096465683772277322094046714901928759495461191717177824920149776190854402578415374329352214121827367814828995165655375987895409978051981971498243461075334774375732380263245395992426446623370812364763405670376733449901423454105826194739640113464737961581370465656525664942956792233970712094597315974566528573844917192686628091455176939934996953508441854547862949305708436103486327328988410376219455913665552385536565530828383712126897870983193200602270680370475074466639701180490369998349582986057902916661488024818594265452972356160271632001280586601473952656237276356421447229110037996881560880412670597198990691343680616025811928724226098468932315818983345096816188306085474817140164964372612241623952770882024292111930789588147603877301581884589885530132132510347206949662309913120020528844375506121261630414555990878253351813102524706632787642310312619960642389302489544825209434796248562553363912001399838964254395966804307236000842171239304811730905662203766004677932034638812014931897139597407726378167126166611774276991358614982669787150640117951166874793787653755368363218881006413996294325907831053072825716795257892916835511469003510450113665058309018982760944660015457122797401685639851094143948960260621794776447181000715990423333100904761609267790933201984848864347744201608419695628449310270361816098797885531170101433584050656340256279747400082236789367601963346297193348261576686577039357496635523291758175881190602995796368451096771172753663190436568222879003485683744662011248715092184240747089249779894258159702045582058184849532826496526084354887001495968179892667066239628419784153014937714102724507546497064761033919422590841154792350455559667299676805623997923113533562019006235055205251117167525152861617885567339166435303227913697391655594179865637888500201951655492592233202026277020186044436164791825398521368543239933539457217064624744627262392382500578341725553693048690209316844430756533239225518419217502093173240948966537747893223082050363354928261016878689071255104534406489852531074076097761640481330102697587970778338893518221524203455958132815227299899570486174557752487140501170233605249099946624816518911563106700860314227731578442901720374974328231613814184707540965416068209624216103695754018380644462596764630335759688637701178864525615393490820401266185785638532669483535134757173155221498261336720056695221131434569769550129535660926004967254344355359595440479407055354139801303222547138001801766582262339855704946975214155991123838579711339969537292261182967795678125165178416661751763714997878807368239749688563304523701439232765766431994543296033660759727461494543435612368641155776016194944289652083744776344003277907595906043917170230217047859301804891076131441637263513924328473689709441936885208724215562191685419836153038584385456451448245234362434032528537275355497566802124353762156915018098931298289350871948768862655924167585596759889072739730027356945571922175995537952176182484557673151338633411242470820116964929965188801899339656075476798837693102977529730123085947696765514390658979459321841628671945135064341050349675676261109988307298092201657381251325976679489204701914624371817872723125716144902350952852767678530613499193368929578439130104502780518812902078143840960504624213910119657662870194127001629001049321523075061450148172545009496492245046888653372351162812905714717867542830387223710460667491971631066737112092611427109339865747973565913203303327977105578082349968814755085171733769939192219909998942422744999675594995615251612638850119455473611507619608022766040762864695296181558248103171189434312383928236256164119572686447338026489410922491892414912105258608876489605270939020423593136534997564896262454046490141623619646198376965091960886675285885879279100231708232853871193249205044990161583593321607996108533589394558134556247421397380783186331520632029957415715536218755027507927807480468370871267664552243513895242901530672610453623308810985991285245582804949649695011744666387728892953340357101166413865314344138418776109713840651523374994553320098134344567646793467387864378893701607873765342111473221031982856188668788044479098036746743134833230301145142365747423062303664215768101816730854905455191443933749901009939699189373562856010000649250604112012689832133974782970832889770713951762343766631719228900331141324669155760515026491633567963813424261398315486570530176068696841746177564201299756487008644881655318974878768620763545656695182096582539363587250840276709157558564206549679431281261172741398515286298775259038438352765530349407944437413359751536906212494516104992934169515686770772670471018125656707914712432671152786497009704678192944360658449694010301464691145345777715519542628284283653457020212661477763260800821336297214878536994266781104485522573578634388863147831154521751752276598962265833474471395056329469744593730032499940986190605988049679210418743529022530867113674651687520931650832164228611622683035288199191152606457485733380736266514113516991377699876346241503511458535673247426759213565200013916521485345029851288579561795092589417699119380286097091111318782597999802935330781473303029121146324692527207614127391590256605612096675896720481288197597832781951760973561118233742398152555821998147502408131271609112669655050723006806128953492277257541611610348298173582895776750805574240284311149437359433569327962019775844273787729723090519410485152609878990359934946207295789166565562145593700570370309203425619012989110301973472453171345925780168938722029474331269138890978184744846261224849331358437380825087573674226334549967988474063178723073984383259622241859470037860376876360288595117747952893093978344713283503939528311729883707569849225313226803734599017251636270956183036986091369633491480747817513553694867447610709194925835347605089924532487117883420997720636356888703495799429662744777573088204684522033494380716832427679567731094659950714693525384914992046040634777811690150848299417994716147022218901147714432696370058666459887758285638948125432443431306820872574283409593088796024700314209407013964416263837384379164955755554438556039597663319255582024028365773566931652106379808298945809793917402490308454137404697979679437993182250584886128400967435305292012475170305559465834394127075806198848851627885450618131987836417168292614244516016179274670514950520372811844813197289832250410072209240416497431676713303841330975639319325236411043762063629738141970519853650743996215592413462701842281816703006539542175456645897772223287737795107690891232671434991044901856815711931063150512014241760694147393685196578287565268743642466975921856586689830591747644303380508988678762831729248846130071147570293698110092837076049017922042720765601420646137118855391856662276708362212947140527894476050743162157518489480663281604660042892701388319649391402223146380394736615209926563436045699886252044954143815623097876969562007547093720712399544820758817625247789159259965428372388264103347149889653945150436982406199601950718928049267950193630937884988754607999067401681337709416514239284386439043881534006088384871803305571219411428596049038736167382699539198406017629689908199956778640136561956321917414971710999360369040721224785084757738722403060055214666772828792527770279070383952619979103132177276912340053423170584098362789326350354275415840957678058408981332921773726003186122874640742159127201503325327467001663452852869176933807570065683364041203722955247260066691074692275483621154669649770201519881309293907017181373390490543477452335017070705889685556597653250487480172668094388362879184319814667398070239611476246384904335187473043719982475643211195716978156784025740711486179092347227982722117771591925361387755930445374623094656196398278160068995549012130171263142426095767968128051449881369411934789211961769105188599059485201689960274852744763849621398610531196452217119286277973684126557773920381084409014809788694390378556938831629434093623165546284290121915048057606600464917377576566611435350412229918738159022332238886565895582610640866895470469825464788864917414983195389303672070839809276910986458137529130351591119010547215646593469957453646284725104319809110822759581597153935828515902840101577932464833662901277676062013415823904383694026904906486676899202166967566211763172952420212146954839176169534011795307758453141214189756752912009586548739446349693412198817805280634422877321218386530603333833780773976853441634789699236870679145910574537945158363198644807896901044436933464915098795702511080544350447250417774616052412604259103873030008080416227127811525570144553659983701160284809808738961122672115492276892803120821541870560419282640245997495400324841942964693878143757853088500246274966909412221178942873872819749288641904923173117971792135988015440531321189241589512311952951333517115523343104852666072440331313284472515627206363158211550138423231230258021632095759911302566751002434616807678313129748296890011193085691111270310165735317692884259247949237416437019004948435419887118668850013220723694572922053729371871423812279501224263037170297010224408458201726546126108280138667965200348904635711240777127531490702204815171872561855524099968535148517178936401927830944075308486693328270037687536638621567389706606544677730618491208166097608342309471316140348300356012725046409623572812486095974276239459193493162678273182483890459520956048128884429440743871677993523123464644510233679080378148151304817379915766699952123838850088438204911388222605157308818009465636653212655437125447886376732193079274890346168126082797962227131047443000542182282564253444249812773664116472377686188298237748849752145834567572476665149659974904976635803478822117491559149165133296638397181698661565711880234618343140861406964501232341686322930087437705084770118653297663209121922042840423110932733418071485082759084528339720862523708243763873997886205832395055265802861143648613272414194776476351686409967207039360919069252145030352445502406658242390595374431029030641622511077255236021748270204684317846391151178213898612088921252071417786303068222418061925940571815676156233367366421893418336780836177938346718621591100569806003189410806487532971235963738195127966873820526421372134095478045498000265922112310352974174514859995947463306738756879494589214349951851038733098848033338460790686972638128149350617824733484295157709827472555446262840545957320601262541603735139764225333607894798783741536333960338685309020904265586761782624268034800859586821897913753261419409578358709419196554045379137994535625291500107020443129960918342995725359506339220636893386131679967688318703440569387788634699477550117907554016035247809033972271898528646165179178509444806410730831372113208208597446944522395881558655963355294447156642378890500880774416854096707384177003481007132033489716145593707226762406860003514255861512335397606254343997676492029378196117903106352072590254336852187132603202308224647877593696861855583427704451977029411354657670404198949726796418835983496615156210729886415874449864538995323568585461408960137441225079982244749321075418885462133867947422072114328490659630312819553244776250847820742769906575661597801075303013271801563159370528018728516833003944203494581046511137174589373187514478586858510271068859408637500127120728574777054763498908482528303595261185421996578149396957928767765823121587538604686997470897343316616102082671958535706639110283777828061263357338132564508686115538370512145359905227645583189344738997688460036335798505252923051585006544995986996175463878040492291870334179306693563735629009895893812325445192312687624107983457460165294789937789383011120387851949052616658788047337340585546747463135523701605016000416979202087535961862710020309848584366355479904818421663690582407684965984939701364208289479837293674267802580116600739827394998250016856228743136050796790236984084557655359817497574035598166290289923207972975732102569494924626834389968692933299134804998418183646608115024481596888566461747137025082667857233929106615746958861511515731415949102025675346598378136210354846275785704785859021685248104656796525692205879330228794506791015630054273926874672797336497606874257053057044055472898536987636130822914887282533771270575066215530043946124095823516406398272205741509819903920527047138820118744579340002074438979963738303510930415926595530156609905180228073379147652810186722794422188370413465777108958334163441733710070928780337771440310182399395906555904552810865701590843579285714698313404735194039869808274170233136644673706289716291683891096089938774817958879215319291716556811309345587486890401436989374700311326418254167453589560780918263115295918120638038740814885127988802032235285626101679789136815595040986742128819453128854841967793817403896253739482447677828066652122397583139081174900764581853478392291472587156819075669728811252203444760940865886305161358670516419051989139303457817595625628331908215930636940819936085697385817873390682913562962881841088740518047554791085789055185441755795978174623535206580365378052970835082081492605514502721179024871676490858019776420904330360393282134371751586012174267088810659200490600011016341455078084596950993304387313553270622867813861968813928080987291763126835445414506482123790592059123382016851399026647358508845689521939018585239031457710794841792337153975538023882930336512308978236787561946580391194185732187075203197771523465340202528334901110160272126429544968418613192799946167137823421709694977243770320391565075423686358349648793898703532036417017316489603118677843646157565315421942195830237990767836330827022855349836028211253952976939787256477090353608145322023319114966342064454753789378327238691287997180559241729039394270067343487074979699571587169168728516696724072785009502374455758681382202600459358400825624132196312062236509948100803098315304684362310996627165331418342067837373763600277563403988755670445957616717320565577903662341575640690488419959030898657986149971023722529604173463737937942559685974369023018085634550134928660897739175269494284248049675960286979110279625979970243788306071031490859608523582468856749331880851810238576268230125500490258405980919033601695385518486159790972116494029272463123459096714345814140386949328475956549371939516497856540171334136093706977245197328157911184187103942777749901342245192326624995087726507395955883079579818047920406441044759607549414715925796000471366184101476765625886958758997640984419914176457975520873035743746914440950148830153205387499716064718491964662722069982907420135196077179185964138182143321711762561189152599900182680800578662742261274073772757112194271610511311049712888418996168877662417018120758250801603839668603576838549782616422312255686576996928749617997238578569348611200425151899427396926829823448843255500636798652259233246258674545043390592605101099414725387977839606821938482592265436480132574531172387746344808927025110049908739523828633139149972017099273164769863506948724918917347715549629636703599345199317890143587008145879246132637944629378209472225561529730904901369858377449976788447548938469732604337378598527030430289301318427550633335479047357251616992544140357340774440412453425225332304096881164471134481280382641367827114071844423604805120590897226929835411362246318165643431570882371692085692051720209984698827210791725143147178610368796116128941800879039380548026208135496971955326993085556795555165972172186451052759260019610358670866358341271932507227511570455461942213144338464954671892929009294265542096481618646192076873185993649880417695101626981304063611818618274336918236947449719112706178070531595532124405682802016325232262252986489847701931170253807692219961793313957871943346039843613284588829271491333244163593279043128476740420199321752666173761562938330896738531088380847883665074718566501248616079683133623789402216193135287606591409824108326460654394323454861072343993631514153967287262985384505352855387191180117414727668482168693709947502607929860745045128231399344771756374081374217125648336658898680615856834609162305143497408952868342690039268198506466973627723978246856584940676998052470770495432625877546534655148017700337068454258416132426194798116566703273022116909477281498452982194255958485786029457799485968540852660814150049079667964607174097462557626647352345789947421400974273862765202469480285663028026373118283098422386068487719175681791886236646967374312784368478193828811982946907954060857353196365972685831210353111617041877586125404422174599220016476520286742752263391512161263441892871371642178775360880775407612118924930149082250587760622133704139903187009057031548120774645348658859847369205552317003430636878693590537694297755642714759470334390923527255013297874534598569722242970788926126853652992152275452914066705683222844351449100053956617935139200428937470528290101334371346301400818674627922394984993375125982155219764252657400405579343132860240239636584128950253486866463025251780082218101949950603822933139321957741359282876503083878316249756353142464910062090854607647492345201551736405583269192981183648189683371870663048622842983525571959771698257111045129687090915176843988058692786676643304732178990723862354675235173824080228126216591957314110850687937042807082880800901615342637387206872569233610599322630686001750295711608687666406372626643125001346713421071613244255339980623565856311269551187412881421476266316186925823350558289240056301988845238235660964956678320507702384609499737619914248918819158674661078852093847664517983287434251638846645304683119867352610967451024180430591037248204200712117290753788859671078200317394197137444825630815401172039996837025503219924413783892132113556949230835234245347446405574076197123407648869578791444924334490608253210286442484274123523803569601984251751428907861125003983857872167113592190359256600431122273702912826560193342226894023996950399715441239924309591860597273276898753914596661212872961651130196087985020446792083865607680028075696922828202147394689466520870385216766321132134007618767267389029183262501003259934294272477201244257670584185182921343961619288704532061752160265580085481178073832440667822584296211678589632892863346012537254657312791579475393404003946483093205234864600677979857618690337583418159404478987676256951868385351954187962411070446162457913118504901452581572780246160765836177824071749819208121831147401636464612109973339649445865922776801894561661823767197977624214360903266099083717331740762343305628752734544365477321733295941027711430694543427996535526978631301177480773654285564399579719680269499037700516815292928397593842858328288416516474788434445562886492563097718957526453071211344945299347382578364483997130295877065108529261462831598270320906021531975498514968170249035468310591627215055605322414175293514626011943357129832125037482227766343785066403981884703404960782935344070167815877492471474331826590844645990592730968110645387439445600780134438183880332362320109158030512793867876081921994861621190385314442313108969007050542218816116480440000102695662615666697182167909816262315949155691543609071587397437562357440152613761701136847945038906613379306675595591564218018648805713936552764796180963829740165425051708264997149660895548791198979557504710118436585157273546055662667413784892152512158824097486538237882703094361140228120379181467641333742499225157968846915148816629045022758300435949734179663640419860132407749726073111846414432595850593511756802518149908807003822580732044210421871954329827929257270506947223954523081608238368685677267839677025756158928081706191273290053880112267735681751705098466380153232776526520410403176033088035699473668757542401753719228298056100233455840797898547109984255434265463599558955725660865484976747349507003511895637071617124153301612027260448248982546366018407655539646465007322197924794050704524192056179307616838057368384525736121262581455236440071579031542942205954421019870302647793529960434987363467205590327893481032827320762930318537851600856144122754142725995094654851216772135650509036363082885162160256432565459042517833653255776782286707828477597495163935532404185200008166886554262530010611822253860561788797424406194129370761816350903317653687676877533792542208877583240622709074751419488795477698389468438616660948988354230563430627951435519366905046516883767455097967264858615542933237947626577997098317393276495761244321293594946849892406262985507614974267848475415604538245033158689581782402920632067126859117531484636693965524674773532195873195243221067355610722590004559275238535580009816544317517184119156903057373213439307000559433972632547849071550359619853221423538147284510225522336827234387916782511460864384928519508966742974775227545055856797241335675443310324845178193170399159422370167104154452712117679008863288952814037004335979118371467132237150429830809816825903907028123817599810689353965232466107322054776461196580531997188690232429729806701999307182595810005018322203491953760780187831524379171339997295992819858547403979205419412867887912721335904408811153122860493937201229623825028973055773796802210900268919441904897696598254327011028970095565933179674589329574001492609995298300317943958886372866578688813903759463575696940592622773810447514153209438275715486212820003842801036713099451235234946772005219958743458120798139239818799727042217116054701614024218315680984317900486317268309615804351367029606924301020158914438748989154352403781780825711393314109974487827605558271320203103179350414922426079771265101948828043623051304212579522968985730308672163841561594643637845748682896445353365370829024230720416714778922583574006803063662257564317716557494578788264979984016842703095922654208229023941931121737576916450467517623927858823239836205814838158269205598377294553516209781391336338919891161295445869119022888694919539023296029379911117446236725239047005909396138335345826374484113590411225236112492726942159503420304570181086609149417093531858564297030294518293621374399440913500142987125435201932826092714535214972418162091578010375748116238899390614824411482833364756602136436908345131923414630508870510210042299581409542307536696989760201120202661121169697807759358654930527925576087033961569302715143814590501303100644302572771200826493939693895007077301842501046505313535258393572789197432360164346437277610193007897536840904962658079391070554099187834040745216542227922325607392570972092798494202771874442271289529482341388284901759344940533326540293507921890595906951632391894180175594078515158232969982495131261085561996276971499928511804535893378075917624600235339106074031088547215148533921249952964630708822459443362405558331489873850779269284615418072458054343848925775277842055516589977788001776118738572552882135520619948415971839741596107791852854519519362795344911333975360618513694865691435976617200571538784529451522950653701275040289773656502663188129068550759021279266027552276238366160498962146711698224252414090919446744186372114113762623043231959755247312285874035241635492660076844286334388292137617228720008153859254486083248530848483435702134007475409436121960177568279543851924514199554437831824802951221936625868161817774550386048469300552497753763791210888178593758485757983221418828309023266783354963716016669210483120599532801053272411383766392080358650845986510059635179570437777383076965656158408174723868854501162846509068470354039224153767664061456865890954144127139530407930766648789046088060154234054192959477961699484659596044300000442382051096314057996932795929424514238788728907379863478408337647890639671685591020646926909886362717137138136522816083242814653198010289861504505624737195282814128142975539427240618941485688128285617163454506351879703171625066769831193440471446223554806269840224516831601711699562578434623984464370412157291419658053904945242175825941521610078666184813240256105860343497406604759776926842351906802472333494689076268837013110500913458377250168723299785389858916951207503067067604897889370267988876897295973353409969227537860489674379189979565219980639864420921420994721715411058932852780081575673234009091753908843645825166501667237379796478743415942873459092700735762225686023737388241789478830486606887440035325638214067640416696196139407594909018458047888055055280681337152672442978954402257701557603952947545831606276544567465622044501770907577866154273771122264917099661183308756994085138086433397717284652970210411995789299001038054445756405155186574482521962212500072434258919496451328439466275340429588954722281091629848630657009377316003264916730258972454840159104598699630774950294494700308881147516155091856795977301471825710429672777089997958896233501419142400525057359051688371549687353599495493801102865201247920354167678031152104198235189631089399446962960002900208259905305208398667534515691211362981880575093501386422837592441069613064047924333141749385481553136843174806028991724057817360694209129279540696629334136374757637568468306235315711908523740274136154721171638127967885317234772518063665214143570068089856398197478899115151652056632519206875715108576314435379189486302141528779808999709672555898975530899723094816825428119304434295141311634819806349196744096573631455438591370065001568405046241065479632550473359457983897139222027915701008528739161459662693741686805807710491893797070215997962243148727714437655871167071916412141683374206814374270077558149262169352117441669338986813429488378678069409393862979761003695676950991565031543995639265020096642902959961051965117691536558741923133417602172389132602663616167138538721192262710747583898875089862367504853631900565774803254110095768060942911336748102511704195290690921567208498452673470018765902893414909017161842298955289882477524437587895729474304184381914448989387287519909830247105002500886835489992847888382649545057014961369477486228358635562746045942681343114803716989472482335252191146719808863152005248693924709109833584665669548612359649382822631674943413388240120319202174869192430763652291553783493835565263332888947371869002188485316577937592403506624864676570960588717705920292323016400841665416491052872220114702724999387881109214184358601318193310061933700521156216527535918847908724267418736926879875554780646184610730557074207390467894866480198144364653618152981921806341700136917770988730464320600715537051418552761898116548093308413595834276299459657204971672653564346418677908203682124716969296679353277685688621309921967142541651591330871893883056020086226077619051237582092439511321752015412312081249953951985131278302177983267422198232095921248514380243525945633467988576358733391814170858620127587999394775216873731754588984364502386630912903761989020571977467803555084610969548208406407469862491113555075092093567152421087455780538639654812969310333574112900873138096215937796903204363715337381822968593352041269486390410796729229975583334439722105304055788724805087689703947751408584502832983341489349378909862741571348123206772487335227326801681467657712971105815135659351159618393170380278441654822415305190321236534372124081334417189539617636927416458047868111139964053443189467944361743436889342311253434018127056908110730422145218820764624842903242406440152746724852537033438681725997261825412144927729372633279349742700671301675958600129205821719044013158927173976570525832151092603420292490349725500039475062897951170804851906729550191330301020757465909309718303046249222396926379761941624665807889521560082833546472798375960162217289825615455130481834437736091228351154359494614410255355807584102516582013109106476855001996742796821756390669272896067632417449549509425980051858895956179708999971597751260333550166322661180156833805302913984119893365394122241445418247681154383606416077791287437405443377544254035492037811387396470926960491288414059487947725595157992806904541642087276260449908177122124499657440904058235361437651602069910246515253793462881228740531398639882603203525792065622901565871457188031945120332217438350195852774309003511129024340646362791830337974490541096875904096276697540916251918626600004808144678340561667048612191969297869220259090839350077463619361186670400026192067232037165297962453462532943218524052546719468245127351482802873614957716838909594476494387684464978242610592986107740091911549539047125388631791097252750258653110248925393005286840520615839495852647706308960739343173867004213660969795491995155542951641646188371084829209542561305064441913220068140831506158344782526709873236979944198968001714525444060925786864171103039066479297608378740246241248112736190682248769104685122906819269131914817600644129026657973992754314685802636186053075257780619331091323187539137352442786657030535960829076060606755827868193137720053089672007558793635350189309519496392278839067686723937047509194324966850913822971264429480674772039798962013926794153851489962753847319226179331015394672549038724917533839378091562057454638310239071096466317393664218253301672433672321553493123259995983920208832077245734676417804928634164128201213264003658447215233094520984861219684780186940833137264785458657823292549993189892977492401976242109144102723781214432022944392801133698926804073754151305386895184513149832039973195708613432969609464908444807761286955688917508657672393952044411342755905804663500180770998708607967237973958397664520146806343517687816791524347273616248225339814066075447181613673840997715220892600140508875200423217314766428291097382797196747900205760383249294717607596478511895092652211662887945782007948143453302562809761980221058570234791158165860546740988598855442074803630435832304683415340540092497080772766715411354660269618183817770573095081875731920041701575135029560861610739598216905145788462601737485667062346452159554075372367282874381448794612674660808710406216465936152041222043390723910574571812713509327966920405388837331728098513578827905860608043086030569674905587170340726762634736241684563389729555409156035378292935574561137440110440103131936837302747152488402214133072791646651680888509898268604130861407103254897948589038502408016903831058723352279456764797858632555440727134625677175109964953137863422535149594244021888042044998330314975436055557777110637764962599297325256475460530849218393691402998106774394575161353071472365128744882616438055423102292768842328163744461389372831639093770945800799413968040286622137819620777792738361911621613276594241147446840055623090741410789316581842077577306663106131219155980443904389728761960874123382746318723249461158918094025759026349653765850978758050241782775693726109901245965440059306160557086091020861436533294669502325386386624540266718448920648783791356841597037728781044787127044928404123322288857341857794171647674554830592942444389250370729386245910836395033362505469952780097354879937072500812560555060867183002628674651532338695214473074491216278156146948362947685218316310684116815846981449383494097050164129296188775367191790221426167988254136022523981563401288307367238129798985544722846467457848767683785622128075331808218211784413081077399770795800138972703493562428174565894365020210302621008876862828337914653258104059080769543421672728489918265403067191396478374542614500726339478169076890053035896105045997038168590453474223873353395097111660423637789538017276211388597890403785515007760546880770678833975648200555514172385925547657169620063664595658692298596153945242844525769838885570954134246976840548775914109008509063661035054082216899334437908700370205998695305797017633209649292772407868167434802265323302659012740987239124249606050414823162052748219192082157851335337752014844390758518718921856193812498730725000248431696520724146905674292059896964677099690043984651561674258752330836171340044936881264473688694550042382225883512924742748312519521601654901968439852252310264703771862174388485627096871211245478211639210797837984354800632478979326949471708597453607030191179192877395621521457888719360046953108952659711308933536325350631810277696310538816647299546039721380441015455580654771064312087205471688295841634597572149977037635556704436036316852255394337576823931298392449329340454005837085503748433930162172568147403137557395323374064248158942654543249723778543911308178532857025463686020140057135995859543300277527462731142406169008405739278507872147037821820219568319118929922760110032344947639221873699731956609357438558668549051957935965448059691827584041781265826227684937717016720977596224231677829881457810869185266933805947443896759950201695175129806920979436859773630112534492021480661433518989916543255511052110543302709731104935895719712374712042854799387018147749457288526402901030825477003129710562599134167226448633779470821630285151233749059795706682053137576711795655863695060517857240429274781361887638620030174744017930087578120541965045948159515868161500913775188991445784712367755114064918476477457759701667124962497758070105852034058996277207874695586564433716997870932977013546665769821922086888467657112584495735764792233497468515264391232363249300006192697011594887267668008399757628192077725605600967592412834137140971855413593649066573055126107888121467871001491807354271798309530205594554797281383816485249150544964003059061981048417817292620633636074183760616381059523061978017839266120954651034868715483043212496410120329552809706008742192525993234143021920412689703988333072322234645923870079318974248322480472485593150060777063646476818843220441692887895106486799709463590436568377816196483907960397152452619135295113864114674738533403549692314560685542881453707465367745113758791339832179178222160991296576090961315566108706252931702342733385689546446915466154882584033588202046772522773688990549631080158431566599881691927388178675512065921665855137988861686273176997052861610339216923474186102806165132095271565763206763108595606391014757054358208647100636306892278980688808864731245953590306395240948371879155381688385690329539080400238712538323700544875723986171035647919557609803530325104782717537810533829455935119591672818628868610998613303058319919889065177467721227590102535045254265688368265671206799623565985558776531232618047897461079487382008054452731299403032167563492440827422513140856224444906897338184832415477554363828226818534340527242356755701443036929444348765053159868138955273552461836697887647438229268134969495162438842133187935903515583207100668243551352586089023476190121617668785756746765939299913368512470674596871815572846804446648360731066107905143969104999486159482287058396166455191881056738735390605912220552513344956371611943328114317739102474101252660006340866008392008918767633577013959326758523214142982303764705285729154847957190582701970438810273341536973286672394088962114457982215112927265511912917829949072173780636573864563172184142760373381712576015523933020772940401076448322318168481253404962823384260373653805424396224574644658813038619720107931797128490908636190536864128200055934841081661302374142738494406065199537920173336219107530901093026895179142232533673311366009232133781620227577517865758636517329227141870824313242340665326484579522523425751744978163776408224870851485987505582526935474098353403127536177676249766430955474383490015485668457064685931751077440850458477148128978084386749653452960822126998061416381706128170081967912045543009641284113988003992458177751828852305138382106613142384731682215734172553414818546523983632493697920811275870972247579913599312518446630194894936376721442311858549134068662123684228004618807555617222782017644396139993304709090407008003656666891369600737693789008704273166800424209710288058236251454842013909632365033520317325932132445510522213821287995270700194330150422759520771446606178458367221844614443683541019441840977220158795090095036661638417223435259422134743123759261535474166481649219925533408298853432389345472190469177871392227360224285981374121832302071891734141431894612516673144894317495067594566639035878368449540994509668139902867928289496661188604076693505810195699563569485350188846296639755616309196718588473853790058440149211586124444848113525288199181517399888950815140602406716854579520141689586217426061960818272392605127166016449377643420694371009318771650618780246394050851711512472577290921688112106849226068034432741854024112895360689191435416134115210658870814252613561809568300318821177413871379356648593209142520117306163226225721858924341970613776994214765517696199370993506505412347592507557255513138345656841109631166740695168968011848371079611704932237496449933343061995577801752865734773779207986577966717246617573065888243641621573280585435771936269125530966889984453518893693855531884000290077476193062144417389159916406380714683880595126381669130016192513763232597861209476133723077173180928409400103116186585746245316184307666594645692263812727964628561318014269233982286253951788942247034461300100937213770064961619317600251680385870444047772590545121890416405994049461702895316255252053011727321820759641745794201576559598101629603495616091274815589939110849108519032179985580976803385254943148214047717175795823322815836401666968171253959031426678468366168264008853017194369412706391124193489867752093046943236505840219712697794575471390831090034370209631118102791578764333985145297763336796982080254723443060974910590159604538627760529364526709238937572604019136823526894487425224357671100479760894650871944220736311189593218557884455561290428145584636658595980220739352023374496944393343209826293133932952624002337989874630408620294661146986983549183289222607800707747261304700948403980848179644074544869065130419748232326673854663051785859387321994073748823894138234382622801850935906273092814135191418447358625557257107578551004471616051747137219687036851470098565992081888810761750974170481217040730630763947828204074801281603821052108362546933035935056430667036520547310904596898239204284388589888063635097132010613964400959821916089519545351786285886308070780869278163135750465669764287175440514917175346899151124339874223321137548013061744987092650986539523429444281147988608142612601735290486196063355680170224549263445267374510236709396277059087294890925524232364236871323966658937441397531315663582744223662913911268058869338424672783604662079945996982248736918313115343965650364351149720840828139069766018551442809444491914236563547495185611364119677271388053552313127943725616571027000105720922168339365159585167476638253851976308987752021860102601760582164752368524585806615550333548089271527099304003022015971211450142078518558623992164857901489599760021051701864643074239965292064003801633878698897104709940661377494184725855350167337837051515916042069474413692355957747565581144332861370014923036764545620846058911440482880945201073827793044124125495774061060720165344105047562016831099953805376343004373906605468988253265340924495613287957843660995630279644055999070868125363967972991859721627741772929529797346888096507655639250606225863342572897316192360312977615073867270571303982502947046404929449169234814176416631461560863562009929127100044722061572813767611349655165277706416567980295960996147861145418777134623953182714566528478948633938950684560754336857379072126283343825003059449775280544934095793001620806328281921655653592161912667330454284696146767070423564168809447620228763282205072183596289021745109471765173351661102889063134933747286389373963684630497533118339109112682609241527362152548518086551840055761547839670483231874183270853117702216019486901327786534902424341242481609516112286837731368404660868400600020075448584997064729673416122673040099837835261134921673877333690051459847108959441604810611416404014589598022600246055134138362837662946324027137717994069737710770320583592507436315303634424664878130951975235889917412060929143181249756117446951595363673591417721918375534478106620267619610790464015926531859043951309648543052172243452253741145292502727733269242843105173886590055339857853594795168398072708196177381309518449604954416228299564929416659674618659601861795444419699021135389680820866009323238397826684337215558648795331014423590525813665437095051149810911098790858726624899860557989647232455175472393096248217878762767844918240028344290085197824401548689256238035577322702418483268184765204153360190243289075386719133305902641233734761904549626188312737770290888270688575228942102483143202305024248313913637808879392632049321320851234488196231064569811388446024061287989990052025932683188794433717324336904268125849889135633357244613603706397114272818246795724268851195775610389830433476923392583309758843062315392386682551787014343019775989288610121697801901955722374852461837280253046969357344779533220152893401429747971131290878165422372173541050162505050451903707815994678305849129944753581060614872684540380837544049473951743844614226296120044950381551739364319368726578543702745393608874826273760759486461834867303293987387415128703151624663692539235007141501717997203458370231848921494103946573218006328423990874273809267233912487853919176404018911274480025651049039975865781554503934984723149345896784995867932263449668398148762170416843260532628393785970566652046000389093046589722594702342687874731401947278615228451779935758939817750627460701484908495668801807868570461877203833814440924509156858276790952697355984212960691725297656498537548981366903397707103446793412142934717159725790314667343464699670830077922225049044281443531474472287858376114235267213777745586976036129484512324303482110110250638117303705015623104165882578666255704115428185092931991684437888208677550752681901395553190989414868627775691195095477037303608142124816444353084086867504819889032302627309801282221182934024922297485857624199429093681985698065143487826649038001216686382959348045982393446291007507051383915049676775445003834278415467406108691828452202744869797416188760502798660542026167996768947616963596663667306728520593950299978333930264030247148413843947711443723464434618374822799962517100342031294993673654799521451897150689975556171190368653081544208656013234209583136054055499363598539235508984861607558572187726183742280162163713287266275498202924984570000526710154005059340475489120149348475839121482779053157318423198568332195146375400036170034813690179007911514601420429956586091555582568593202504175387477952272722813529596432747509356906047597785380381189947355611981701629912852177425876656914807045721072168976841239444160347253049923315727971990840058429359197671318383981505670643326748326531383584218267201573023523635123088256711857422462905893973696137751967350961639206980669528639104771209394287342563715753498998752998487549560818796221957083053010609762525966917345904386413612697873038691095170781601374718054485474670686281343512621371268943210691596882094856628931628811376181731081937005869583750801329144429870744299958331477977869864093267928242036975308568809752613052319606443927383466790967169362753571831579759556400255161615618731351322799877315889168235256899121425521908310158170016145736855523929114714363097702446010981704928154128692497134453882565635951196051846535713388578016581565390025557109741237050073912609117375091592869762975191558891787485477811856778965620674043965531432905864169527250392640926312181751767469666790685094959471899289549160463949971949552747400805828114639728005824513995583491603202747673878320234986555264729835592229267924326945782395260356053177591455157790094242860438715993795048852420759891821612906955322970968761105102374670295567727556972388084752970354936206718750576540481039139897530582254315973181259709625037467330793607352383095632770896868157479071122136335185555138538730540155524009224971447505969938937573776762853196787208247097309195787668331427317913313519250001315381861630221940721604583894904849027409473852916293899960381425959978277952318369824338096729924010161863666328612849667710816249275965911924195879608641464169287643529756725948871906557726726112425205693408055886813126410642174010084082137278718832055543168026210699639129674860205682531421737789962694923690503094164141854326640946883750220719806921580302953524940934806157289258772519350640533188099160718980411151434532506049801553629132354937414797173823930595939238870684333494975240793241418970622053752553591885426042415475649020724202036926797997171244455698438143284022494439918895144929746598565939230259472982249578060093617050550493814986962684193142047963093135555409107637010674749905032517217601725435667055502658789457474605146275271939797590503753980021096868884649737062300611276663123983417448130509520187863287587179243985979172187455195165827796927040616185413283973013354861949182471661928197223890562399677252477928095117892290781824645347465216188257405498561049638790007825836707167913970536424241120713272780757828817294001712908500892277963842770135553972749881333129216319474243223129466141169556453807831757953723607202141084043606629420226148083178790555375547750264687702752159580569651595416920084659031219056395277666891926762132321796909955635733849654330862596372200753665323984543803159267086773165982707598584326194722073909299363384511661223687614751041525294998289587817101757954350635247910082824620931246381184759168788079901096047225972548176770967981655912415936405292222974816179973116725412840813524381997835636006096994619504403472448084792409569485796101991530143440484352722683541762819706363158388635763644165628813657222880363565237567461019530582251127320174688535368647999316852423182149067256638367598759768340481963769899659233370322217061567913770465833846467559556763056849896055805247415339941816241807415108478572227473195705316774493935298635193002137314062815027552946944061816669809906947243094059363782865429932308764783456072781877956012819850219744711093069853344904971069095892365028368507115566647143507988569885454447054593048315494307550429764047735000600782895198739626663176522374563282875781070504705305860727910872713304776291170731204231646343533593187096982509156843288440836068560842322282756857864545672879593090753313583101174080396587546822673642518727406583139180017160258715538463918329073025195072777577618751892244914551257965513057106353164608183616583766353933136719219719141376904475637128052107278507061422674359396891373119650540512431682014978467391262080608687552537047232830931917317096069531337414043450009061960580814474708913964048200920407623816595423745928061376397361319290952792024951648526092023653007478363337249450201733292926396760554943529438315466588769109267031087599372907486875496487311425076202334645284924799533198253585167797736797301172321070059170031841979026427520918935247297397473497582472492213977739379139418013390366705604972448486963317511612481632969480364989854158012815798851792787531987946717340192490659390884896830938926610638902744994682504802902166906567969043411834815643077420905862594084595298013356229555376606226417095710087443119042033811321371074119547962344946931331732703209495299357463803994900796282782189848316422073994209683910125210453312378203379068758828346723438780588616738020103282150213563599732991971718011564066756121578159498401045667417467076625468280914566982186360986685257018531347230184381166040981597096873541126531399592497223831400772058210163524696484857042440752017289822554026530203896875324231539441842390681933257189051872318213006695489965034773840192677838606839110762407483397367958734991239086545285061066484469132213889607914616600104662597445442252790637635679264084433157029159705179148107056588242075653783461493031733800324145976864545232699663297352645444315491953713537057730003097477784106003670583505831337101436244260323939454728411179317760051426319117236443078477462029444666542707052924323559600278531329527542039391957068409175041978512600686641541490821339860813304231586436420480779406538730082417482954018276537413960667237558978469220225277103195970644730048866883846726964054674921636979386123561878389270864327687432312727954737515222940057108591943473984738577430029740850884177538963943930395809519692761170647833884787403005218427633426607473227966247679243370921548765653630686433794040150620780314181457963728203769349366618727036167380045352112235173338379770046707817785268987633183172455525769175384327178884689225628136604797419016164239673765161656602725716227326127393863586777692528767606255453245547353495965086609288390344276587767456313640293114711766954301667354219460277554805394756363384631758931085105115201028374338649460690949239266504269262378461580158556076394193881304449976744280597121757580550059056677057406447388761334792929735156898945799787051110750025680421416862409485115036831910890655599185338857205530670202873235806959660606170048504080150390269141544663131563651309870916707491049873937723128492521714184012293038466902702965785197524554417508201577893911672352482925302808700656666832698776352195175520970426443369504705959147909957299844284770947015160656337191083317542414450080785010782429554251674361110627872628943218896707115618204527137706253089384080360905451997053007836429834008927924619598428622440326608775639162639722092357885755272295072838309867398953600744949484338203681235146785490630323594161467261125062901755368686428388932738989738459813947472034476192392193265586363135845308478348766428762473605570104880358626980856135294865049322567485544887405372038196199474966707219697932384938789551733392792005366984533335655273613295833860022487630819585942031195017882954686853019240160933899337166643979548596587049694690940486911533111129008355210716391201575005430515728720943876653657361166698368115103183209969165324970806948040381976587205246952925283219114714435564151516306369177322200580696777610911518457670177335397354983306867677156164233410678052860924731932486160309425367580531270171514044300822191597683893901831281354814832003563840533555883027585369685853042874690358747270088968760915654877755315215932849232839652367408733137628066718506868539392228397512539755204044018289993295681377798429805362768693226366594747897897853712784885862467718932300100217938962254597616227582709434484874433065042383979622382354853183813512646882040609100177570716695384126173236520769353800992448702492753318206553490221909875054598392463672852798059044492254238046999113297749675212265812651323169054975197414662301530029385916847242685903103296172529004293865564152645759685527519238849340999572116829989881441008839337609288047063029723979062110384780901866366212137663457960881090998357610749070191630097464787195432542177515685773928466468860639313409560967504607568733377457424563157429806231934244630898568969200953975988162052930236471570652707726423537613388811077127199063532735800547623985072481604203644878641539302980223122685260175479247316411167156638296282825347306098232170131724422805723426804172706056257814530072997152715428212879706926503894360065879164007097813970346645681070760002079947691698320434908593029615914328500088042300659429747191986195760719206507970629798273808133036250787039123866498018648425382794781865006630171300856989897637463416201167940770153054568824213787670866787190000526180921205876382322233602170647527606014139649967496567364163011610368553152608810255946014952734901024988252028531336305894883099483612158493522516270137200673484996845720290216072498709443452488031702200648633181745331913700610091965351221891276360971726347542418048618319996221184079727400362255141112448458615519834680002473902229949266345511875194877253574414453211649476227396860945723637046142734896625583237271758168176895134583028550832222931015582710118798381860950694059879000418596766613091971138608669121564136570835120608605339844677517171664512712172766339337466745921919141970531362294861638953582497245182258832936817516604200260348454457525028068707472842670153591758151016597569710204686977817995939369433744227894232922156828654110848052347519054935110710111893568163100681222858104764804129426802964593366807016835057033380460882636081643431609180643236911840508153763727308167992267624336733213955244841193183027650372422566585802646384509161169263181924002426145291993503185776117916235826135375619711835989379669442582481449857577946162252827555132254524728865139494933832448988773721876125723875931661682900424670115556977525063555711832584465175134209324183921407742914234728199205450103933470921396176688227204991179943627412836643230635053419466719722798520357862120508284077284664644539239175299254277433485637769201734258766484209412258380271993992321627396779588298762655602767672065885723464697388295690972535540269089130197159618937988284786329112821568623994023484718175211689366605922317777614214874859397275684160915290723778927534864920512599400560987246741326118269022584687438342052649311781335420717503634178957987274673407687964879660595140788459263309233492746114664417589389556914636353118156327311232735169655120869324565072294808332847120098363903574821189186571754884909751098247775601912257927247878923727959493951981831777408946593804428322850339332029282590935865320659231060901196909988410622325311884563468005804548603001798277872725434828086463102704127049734835338522357389890879966289980482265606211003000055210252214896103261420472422083634047199627797642526684110428449939036088149924238842183435187218486191307822669974657338248946255052822154154624822152497584492027056299377230720003401191630138200223812267365975087733963056542601723159810909289737433481248663460271052444432403557298218884760896453285793561537037769515518324028253972603385455998106691141996950947378200013798535039768352147219808660236965254573903345316151209225074631918614029706149843809726298689697921813357998756948593373434444921816307623999627716765552948708036553116918382000759264605660031506640213872584097522258756829076517297623507834775327707655390817430377691314296890569453406676518292790399151349798395997026932950561739042280469339813489276110969543236724497078966575686125578621624447169901553881183447589805419363638483790577625241686077992933335613709669986811557494071778981517351724889224554829765129255225457886570984583438208735501225623219429267339015748658192561113857589458533499620365883483088395741070631227031552692005436794218604319613469005412721813593855832489427976590841142418796797496147546737963557775187909631745753027269160419927547436571466237726043418594375047826267169688757301843994240204567765355988040929085436108999606077611874398421777394477992540768173117078341875580385588312036176625963328984329562473121136088438322512454639581406636189325601264583703366403403881426728517201901074931387957029632137660266123598545607492212975263523029856762934388456810254750104951235353043037264266874594209149089687420416570386872298167872815728044994945628271972315866360111614832612962607731895190934789234506566712544711044605115532946059772840514877083257094469004140614195568264427040395137736131370208048432538868562372054929113782497312449438212993742110638697866216247199949088027746520933945943713849395097133425560125132116417253553614528425758146170565748360152883907019280096876348979921892217686317425442328862533883580744425112690781694032277485188770263735904389679513331374936260947346206663287718283531778358623896458256485204392708349702042792085417351658392055155822866209277356662723184614947949056276946326375928535177331596055344041622427830014293539194710592737388792256747373359714482981734534466184062734089309757247148019678915452890985789398201919094932912293545214037064140144474836152168803546379313799180896587072480738291164889230318827579033569434851830932815191778111883067689271636160328199924555155009022136763838727310002877490699354546577582686910232307272486499264128924765127348413280765085435313055349221454084024352666969143721617264299153715682621206390846413344667612848854074376473339500926821463654230924701437909624533227526672949923473516510083127605897417389790486261590073139962947168787461939363073213088234305122189557689519161925354697426190864035548929711633322690426072809278892882288554656366647973053826500100473431789724089982244139507435129403946154204710522287598422705606164307719666230562483266065372746993596063736478916610248728046365788884329982086424414977397894122696872377062913765676958382129627302378799642303890660723913487614696073242825138882992759200752201858771245634159135036035694621904494821583997784062174090948809771602383252945069469812075976672843697200739988282985130136693668971921714423607033624785353589613352966765997932639220001222238958686612943388237034245275890952766668060396250538296151858676800401838661756509325890528382390335080228952333610884598500620011512874922359044757788715395976180935207097577552824034759546736791155279758403223507460663178713160027802015891798401542651970567521136438352441777926749429980413783730608949727917070470924567782335751127414094242835410554185540622858500608626390494039090337318673331127354507435653139920105136212418299203238912947519039531156007791012850372534284315123366659521983374295060706624450440345078028543056836547664212631267263266971750794481143383042336708979172646191092043904964785390475269465362016184228624134186407951108061160721578234871971757149429592934270682202139988918191963556645701905575223438122135421375840705420857375921127594648727341311505865766422485797549084065013274404566787794321559797868178558022896772502050234384513906258008318554259738525213952626092202025250548054422810742007423170671547422213437134536658871346809968330831807077410841628772856364946304171271286361608116248545910563079855715456921589692764270317908012992206355704591716656956679513442235592128531214080196652332722173296120179921713002007702984830318292439841832335219554045786774043274956856245068693958969054752451177243314734357965171583641851660624146116372197858640331997476688298074134241282494546502781320755809403040468386743415542704329776857388806700873907054907460972544279471923681947153233724572857520727073381750356040190448066150791170700879567299603678763390386903599075423023420029498381507283167654621003767528021053025098210594811471463727707708057242490126274954164480120258064832811428023242786972655248764754188800092105159515722265619294838293849182309636292972523264908296741272566225393174284880941133350033478531460643162504579116601447803767450307480652698558332036389515392182208518834896312428533806165018885187314139640668340997602063317550835228096581172488667286419831875028447222877412135513452341021197689548333769277441884524413208711298600225091009618499477710332363062680039237269475536543142747827723235951851012664508519877472819030785795956192188900736655283352712425035839715962100428719896415676793181624781188520465132204101919694658236174432423002052409006974297215455137915901976473995846364778721712104721791695384034985444537845272469223991033541298709471678522969734471657904908080501408937687454568663513145544365346947049519181362971527373376032137493239179375226208133021514481086442383314946068933306454642749540425620577945408102671680528944955443353117853474477480536394181124157545654640296344780836513294638495114484633656968676725021078129160508742426407335326115391188033547407458586816090833180679933741497780667491544885204279193493007093871581068565786940763353270621267078525935834990762115861845136380896837018201841905407922975021085608257593111779125492089746361573374341331014583836354425526297840822455212890615073326043464183156604217136106972868212968483057703810418747533497874474752901370780661197886284407119359511906809917767103648167721427441396427576325986276949864480328746445067769336159655032289151944008347210059177355567623392915217254109448451763723319839719912815750268496262786952682708875922966807370891173671230303327711903699040269183816137812168898270094317827454999578660343097947714322413562148891269868070861698735263370290742281420252517491919035747594503885726413326050579785157090811759294989069439423561273906385451185357628662125845356510751093758027581698400297591339022858911699257616072301905456194428217216592993344866425280070975998091946312322138038898358356635742306248259941414693473601821677160369970469859154146311310439223015284263802176322224375965544523588331784745970627232052569823280450406357136320317377959383960737837532126727723392245437065343777850099577967700443340790528087006145142308269790794598937051407811126500957277590439098573934701495253237083287754048143052430992862082079946504458447774809445313653186272925357252025139623481468311212965854135713228999861428935932801388646691949049559418930248099613351254220099720163936607075842313064667381591054297161696421879472396487026370490257799025424928013895065223639519468492281110044415252616760150585280735601442104582154326103954170739573022824835879877506021483348000963394244068286011847815365484012222545410971168917271332201447868905586794284172382369086580155881327078217753394459666596138741503557183515924433374273582864291884091216046231190335315914857023332900843277281251563070230567034163056536081306760783686285245251180092231765161442664456511815311275060747566411262589220039206818383156653017792084580024176699507538750154806968849021475250632310811173007540108646544055633684391264871310947613144551482218775034205833904700135521243177668048797055953354944364055602133902507176972250499156037142394869901141075493060752662821039351685319617063636031271043809863691756595253688036465316814023173258052546578641778924246484673974339042202633467704006495608831871796491328042817873170156480563717558067558549002201640152952008525326884011444142860890840967804752961890076816360402965428213718465301172568828734745781045404041511269294187771479228962221666423561522077828330506993092123333721454182463226063337229495306485628274806906015198417299276531312619719176451050368177786775089673762032226417409568594424144789908501597628939355459248935181941863623649429046630334338761196006472094966608207148794189223578378374507829307463144056097200766162082686265255304156740830229192225563434583636633073467290875243937797314262011123003828608638737166782882744102893150380986738285790936216569710348671766755295947682228990865450295544373589019539322976028882660939557392049341900993265134083428042773838006054798611892250457521384736260295579617868991591369263862696315364055600964204019131647636133960031038811715377132262882608715283074777190373801500647429040339331134121712421226391833945644142108341697818193162991126084985952116400351059610998452188152983533800952858469795263163118202948882160180880242824441897099900431603841239208896713133620465313694006186763885917633182138651258218944984497358225616620152523148599293849501207779859393573226173405160077127341952934145283798740695377400262999764561477938481305397598868644882251489469412653485455652556429756662756098416309719324525961183836377617054614563098630064075997668491689911625650060909447705896748389507647962047517512469950700051737190898883089888566982467981537315871959819157681244670329102937680739205446938774374364425247100609972933174817914885249679134803576065292163959270694840703236152206801477394197393661561108377815470311881755150025250674995113241019912509786935461649696913375328352708716533457919314630188327091447116808781891301397118487332605877238663485974923427514377865943397351083668729368239429573589100285375157006177483738509385948886594612763308807161759701563701569779981242753196144565336664263607233562910547115036293750108505447945200108704976351043816232952171240629216433789509480779442361190333634420683726794929402642241426788690665907342044465439187178046963234274753749512587829037006785983591572497781815091743190849876160898518248988808475023971085604457148499985691183814444243848782745244134797967013597945992047270013258800242668377467046667956101668968410143545328124849154378211601900742582520785721539631130053026881980863637531920699955783108667459372054115574303184647659117430561398136126775043900521188021625211496234780191516433110282492338699847791583059560151593245687191861952594686884021332912521804392575613890753936099487932317667750977522445284381497624211844214410013264454592483718673203945826366280618989415772438063576691674523845709436030141008732177523761638966184079325363145598190702221818886919050392107295753817926697653002499704007157692031124292477026460131615857663445197222243202302718982810221037509250134232910613145886497929335947383705903621717966158959080947311338578925855522119700169351452796940825459390829765105198491805320502145003686456183383780446626832112185272151673372526634797693378547650238913667365822903716489340904267050787035964574885022555666402144023833292919797492484524168900242894016673228646513008092442141509904141224269838682084065139030032667702775136979184343815027532656327165027883268987482961844947207788283910547645389837578555220417600255003481468393767475548993831060745185352770289899578657281818151484737411793899342807786088857059467719388896455772608655440568274993950880987487559889562835420576577998470030031713515444635694192150155243477931877264389897983368060772428451956653112093752911441618961307947443120221003188408325171418970387895735300008569900216374374544025564524674485118194105470042401206394875954914757358918787276821439986536473348632602019904748527724233028768435613017437346491021825869543061781722094702129974867579399476880700048752083695306910273783682215002215320217021604159825148892245047906513002517613192405541663268029704555686275124858523849241425666591740612593359686568389988538903485279119252412328825433728052832995618753542137082846565034544182041990463507913197614844350060701955754420693420005260208328484365389544140420221257420640234751889096994206460603698242430717499953802444699969758786478564931819153956025152890341868659650739110856664785026772438740262326633891527657601146801568508595621745178476903664478599249436246494085135686776099855489680003910634810575319261156199946349775347061714609381100709460953660654363209967798301996834969156060310053139840060438240069640880482934110210705964968598722470480003044395887882042730137876499584695018178027032948817017057097741569852776486076303642517366467359783354123037715244471626981066841202412746108039573574504081688326558366644568257827080006106080619439674129515014166897221483758295839016660993849643035966683461792273964696568376553180526768710923251213010643468259430538008669973989217188315669924446872357398491526746463198635822934509338919589690165765714842352947256825797330340036958413376199320526287919261944845076544090686872127845711035375014131892985216339922581206954143589506456646889151622882976199865190435626506729990405185208627903614431645055835012862314876503443148887728543599909179930619659068985669910619210348178313774553187696466412447666609975059861985909937867707233292720638614820359388611665812639928185620756451187980429779603682011162475369038197992481079692682106084000861766373170508596127384357616180441707791155941906715716284472185631225966497589951378716251213498647727581960833707837167999876591384380163772994511169645446255356563374033363060982269487878602715301672065120248227307452937650415177911205785274770663269036664099326062115323712444674943103860764237469958932507467237822578071871441441238996853621654029955512294934663121557707705536786681381674631739750909095816558822940633107041736011175606208782322128005559367342760419411859375614577239828929034786485445726850286705755509999463941282156929595267976166086740247027126999743887461228337289119974713502039369652366429930915316050084832677150207784729409139408165905936223143500961598916777542449670719641618360381994238814308994852734583656104018902034490685913353348850032602057907802200153054533583028991427101423542169398510083448982053310789680158324319501610662528887044216392936826655266578873614794907470661087436773248159564950348830621960574397413438322489858954178836038410645068380106309086001221790246233243228438366353443932892528904921203392385519864768243615035843769545964569577796150043443999292528672530223762810084724739076967664824429559444306337169988996594587955023159993326271342982915569683994537814810815267118858251675695072160133257136157832918995796354262892721498781344979979101823124905121562832935582771687576815270545824840784485689538314775607479444499504268857236118095276949016211494073879243325363332335000554840302311005869660336067685914691089005446880630287798113448670894996549835239803591292979002445539014368368879015012674283023142403224713296135557528613374191562119606556822051430842155634638624574394692773769463828045116204838305505810655271755597449001191486595487877320895359329785807941582699160529797264050343547243178012762640258884088874241352409962729647826879042662433243533476141308707379906249669461036049244686142020814390989481315710458120255604190364613514836912251468017822384125254276440894436562154539768174432833847615771262838125208646929437823557896199643265011091483850393542162312514323944344887852899767291544815709003028599952287447445484853086403102751733862105773928029968821209524118467647884568934033930951534655600192130090743182204796413130888282781857995734040608678968061764014368810713205848275152974465760626562552303316030935792491604258493533697325595234424734961578637989184054143744700763187256964620227009455789041461014959878647154400834299282743716061467847455453047415166081408364746977226281749682830526915107074662946546382899956511210414892183385969515791476848258346839694873193596121287763278611003260735376947988828044739080183342702109529207116533718092458587680003362694850096893747795883414322727022743462353315020328284327916941335027665747555344510056835175794582843221472107133237093571517160846291790517546796325141035221642133971199842623661402203540766476733933903160712127761958974973785279031509766609297933133247105367290283433188570297292611853001186153735316985943486421474632400424777850890661031008357867541074916553253850230257430805050445262165587911950215189027617447466088409770650328114060194052262723984654591784149061644224687086527394180609105208964582029121808415732516651496026621844088797391028960942248800130737856720655298112759367743203229030457508614495493285232999376339228348128683591209767639919930014286622415673004683290091272914612438745920771567662695119240500911428564986617688182311608755497249598471405056524148133535980722219477259614426744980799148065860982835537888248443361140764240982538025463892379942498304183336562211432089840505675739795498839536223631691999017285398049410381676637192439332647675086073907777179528621421442276737712999981780398561337464011173605553265442676595805710657464120487710042837179324272936210509942284304471261807549624090735854552567800242101318444774346426056144205468289349203122990460214531321499174834753487449860130984812090300832750588755455566312912919136751496210837537259001246183115125131865470053145231861296476743777690306214866265371809044775590136686841479439720172695890201570150143958146748578794135114459845182877522906450256244545430127898790777066666763044866915320644603342524900651989095037970663775958026347276423940505346464970044951610011658362061255593319588758612575436143975749959440092375741172858344303016472811985527906018953221735921854622485238513941458064686378021611797119561051010661319429270955110444087472117057818842076099514505257315823682267147259258678992068445847130009769238118837673383642385976109685025980316053849920888645011905526547884747121362530724275785246659525162405372804199537202145810718526779797304149166604259217544006405790630374831519489759878183027729776368558571327479003592298313375925031431343600073473423346435245520767438901480789613121667694113521237731671764148947411627094410545365273752651250031291823169925526459077689703027050484222939708469313963997973708679503170968113059154119331682580548669385389326188005541419927242995447805731752203669566686138717324562121354550683567394842221448358885697990604176888645378929097137786173635673824456342038068335494860814162332984711392643786437806601073257580380672129607126406401643191932500417868355363007419038700628401482518042996166359889013091942404894410910348592621514664294115576692436590715906780280047981555847565622492773160547633968274858458601887193842207973295799966839409987374981925769694273589287476952453607819270495519095914195829554743290014798474291659224870088231078584636959007826147213305857645999752863644522430021400536851019940124191420673006324599948239249621699145667436842064065106187334018793673913067923593956748064222899222271264472982350124270361232704287110749375835732083486674389006605569497319101123514229773077320469237584956170527827325501190099129175816500282882620421558418342565880624225954982792843565053110117469295885607836749506922519751704735379259773841752343965016356639672485702935796330043828422733414280580800495498199376792379925775956138543439108230837410341346786518418135752125275317680506962101683491493366255603067398765301935760390724624157430150224242610050598561458912457714418436361751325104931724595314024506090544903335611431974603979261412668124302159832697067780399757246522827884629187449203075271596038000777900400426155606074732376448483459810870755463656407042241296390843775330823921134904716217164651651713175642298148335002296070634866264889994611386473244833483440274927374734596123769683244393921440267134263686056275826678240563111293775488051967113502593946879996927367510136984697718523538050010657578166256628776392873449596025723276892152449837073501804070675581769096254328429193692915137875124660468662651662331658066911771158770335012655587781987661810750086440138410335068267954980064725347656755539641069570638642533861848900834472757099858952131512930848224067562045823036338192782442557805000997654830257156209120811348425637000406504447904389328455488623277751910377968146441775985845389215492159026447709147808755625257505016935722261876956249031195526261758564681452268711668995732237100098998289491105718612111715602706462268462904715712379916666343164727731041326563298809389167639360902681021977329910802700881059489918828281958801181823060074679035361527026479695420621228061968858490687226335769803798571407819027575703542497463989669183552871287807541064822908719268485038966923702345803138973640303610936055684858313937645084605744952923898680493772827983347264917022752865075819017821948894558519687343672882688656892396277983210138661417883892103390628497766587952138045693029651899627316218668836189183960130028981298186087751515886242779886777121718235382592906314580880722174801853390361369118513697146779624722899287658720762827914496952117721338093927262641013362143106850111284783443164230790768605992772338157717345409765528428627600796165592853507443814104311193222119720859094563489945119820437996966935239694890568006667105577960098066041884338812342403473823296723718419387559755770428796466121355274421606336340509214475970499735130304861885405411692533110228217141252070667890510688739340549891767326215817255494060563468986627480894028822268210825571630161989423880656763256407077592987235389400591182060261777061247781085659757930231445432665613003365032869876346209134466696276362328724959851290044856187315580659377841565033814499376420296416279831247342377308380104708357264668445056839497136000874608646141964650908489581105798935068237742804306829178868971703072856282938900269374271053436559512556306748033017279393009048039918655893540924585162463302583941798984441343503641146223336495107360119418589517422127497941436547422289923667966202773570150958629073380906663843240173023798078897648447332741584267455130503347980513776080282772836247583164346003434823743031088304327144727195562300662229066433441347743077128099166523224850665299986025272256947976320160275593399846205476561372753340921648495582684936138188418716457158994503088569841576383008490393811335547558178630774782622089820470913371798935417369658323989489697841019032485744912598294781606726662470346174155391493550069897443206345243481410727258215055805563400838766256578341172299197133984864522901537239756367256373764889298727710373334275267325035552368259391032637364686075094460419587415482779016771225586458895778605074748426252896405879013999069820848433367017969933684062456528744865777643776731237653714659698532746617304843225479221359346260049474417108932148700143913888864166172598898335579871186151064378930659062545890428704539227399191787518907176104525502677111702810317240365011140267820154849471656897752536019293772367376456358268879542772913947398831912396990862389515413799044540238873757056517713862541528806125870978694593793402347144287874663469449397250479531384985877060723583684584369404623154186318205084359509020528471427552758875579911119981271123599520374510435154050207811690640232374471592121836886852425126065858248402216916678393318280182385474240387950878285359123956988048773651803534429623353774696311707883679547907619901210679154854586609417276614785014479509980362962051693353315163580117582607046891124576860685711646237835733002192068960427435032030001071664561017251651250710922669154932203641274135284427145331970910235665110730525804396119007056376994352952544139000725717108479550186890844226860212442273453999897891154668753910406825782856762706704543072009071404356702856296806437569059854748717679538057537786962698602189711547978314794324334446556100949647882909166869161840362341236035257314414928749936293345952659138611728415776576175904135177733390490521796429481745126661170076558996275493997519501199361768993397126108000729057546685093801515960083625478710358869287475765316465230832762710712768165193827311439921409447471240100221611145356635085540606744004142421644294378897431851497108210202022584174975614449446751121998888490997310937426296870796776285695834921674056405827271579358065923345505995805808778104496635387062966002728790342915036119134546816149079312340072170387026516307573516809576369748221139411836367383715532348908447332310563904947850531658869892890902830912493487966714914275178556323819306330276065105974009397460408758686908775306139365405093616361321492561333319691122557192207731647858641653783767655796421016837557952381684733606764414021291672430285160041226631958233931971506981386893109143267292994209940353363337092596365446047367344845848157324065739991280742942048167779963468667282305320116959884441436063736762804932593855053079525151260246060921048406494808041229817273656570513435970069434279721151423958747248356046196271691831704338138187089189304721592213018767374318890123232329825668531515207006726749861385892479651758719218136324656424443972392654413969709096542775355928482053679538705224929350204378507829763317455929886746359409372797580457641173374412356851593336530298939996741719926665456361558312643202423696939569127103255182302718890346931138583281215807792332528111612345152056710893029133603023832330685171025551739803850403855453674698120035167956712129182546067263819124780402804916734935733864731027193877949687805095897428179203873073014226329302211257138706510448943497814146379647521088191058137425488133171880417457931246492350006735094690767261905151704598023967537565399721229435620809781874765317359993746394640925449734620655486001695981170904425803912151021949434381333544912787769675627473338929890238061075605659817671623325487676672959659979070029195145600807728780017519288125390186139497893828618956512553038195011202936034282411181957567648209797265123934569543283341394003554926106159391540228518284202026828088506109036583498554206764878829068355350104580501610114116185156089532111526003754475634313581343824731910346939684423482375775418300238145280049913525380536873520905932151216969832200025328139482499616399296417391585353882933728066939964353734885505418978738659251299874182630463634594750285476335289582600536602339149390061591058576625224213041780582988664868046401381617964568444922306707489572373001529146843110449832275676906892747128991739952757854925473754039384360921193335764262665882778134905406638464354044430912078866091677809201195463223306450042471277610249880242177111421522904639900791808511200256693559524455981768018128769782395782253329313839337015219353733545669837798118138044171884701864772197260079490352865379100173651828438108987230220865204189372260543916194200733061665207882139108798474231421993767637790116722865021056786673852822583855111892954546164897544894569643915827295624399733140124673909872815120701869646847985573291204428097765623003485907599763481234114481223623970753540668078748080239262087507230560569353177137270483685596550642715083923468937203554692298665853316029268980112131944904442207510814744134501451186957202265177872206586911829915086319413289454717420944131379529370265109973668221041918748819561611738458252864387952465126960302073679124140777269226085661547432369291580453517878012836321917147152932756005964172878760438272516980054316713788369826602085466878485469815770666755179088819459146923833448935632065771775180245739881596380643820696594069111977670379302573109622198779652707348291085089375411152181717534668030272272505236907287292897441299810538109913623715625565545756010670961747406785846603530078027504930484149003027287043443215952278879926688872108365672759921273153704604842863293524369433083727184360501500726328360641403696766576144943119814077546334309261631448410979313472307845241974498921267961713229856834052701414913493090152227350824985475455863625381100400397231861104354260376149420542051700205972127033851081451556117467188896487226155553735871227202052184111332048159002654953513793701796893083800775666504722720973361932588307111643686618616366764808243436663942680723260149161110279583459393495656979891213012432757903289142797894043315945919852351167850395249986069916832061945198584422237216404506217453907390255154051221172746808981608607482595140436951158560215568378617796670779843627921703000374286062474747185263321712512103770644481152231176998635267873815410223357219993186445222391148802302123236831293934932754805178450569560136521524153469829793474486950626139798914181229451604060770480339414491021301137497384988115891750097487573595570299689037053746617967778760877531934847551478162697560082584017817661412916049893722503085702150151946066238785290263644254891006343012416190655323055288182015511917236789738067895520092987503588447277978377415899390572196209941718176672937324062578747961266520185747144146826416778541025655749845546109989006670122789859722019088975839963172786253245239760009398320465006964698125180730248493225342526831050019459920265893898664083082399830230642138851274207030919486338947756920015992412057176790279901112943870756557303685299081686495987197694254191745551063794537763264936731530182149179527825503132717553978971664362689241829213812563945640139742332365024875140676724136009671033370567926703437450099742146750114864621946238373109454609739647459357873738592186233477109965714246187488811284992065675167543208117140686569152470335424910504486685320929772238566447122764243578481734530108077246783225346121630162781565745132887357752359719311249315101119833416537245247600313582523975407659088078217265149878782641717925289046056536195603737504104908769308561319677056203673750776534028533294931526284038714754311530564174263463202894104390227458995834972390018251468521145667143987757599491414103655988772280123897719128704207933804600261422864449562277416882268175460924484492949310629713266421386828880622720071305113364088067407817128254992719673783541504249199877957519594122728712556648787820276532468959966979200043879835880975632839747631689369477532248985381410804877425406695184243830049945758964977482844536696917442954036875441737120415875004123826888630282119131569175619383070288299689789319601311227916040858779952488371700073412217311624471242608085268938672016560459582193328723888004337250455685072666854976451330955780287713717830359391733899255666415012885094184644651592639138033589849997448518654760722748054328791711802587764761588731124667573080159591357421492933761266059993156366581276914926528675774260637291342222018076029073651692390884719453710560594437333186999829406503416084728154120068094549785938782864322848796942605318930984296926976709263019766861894381634104167064834020466629498665955319674884065470253326853147358941087936338524217017554619127332755565837628714364391571244188041230641378764710661992371539236549159403752392527628911052234156071222964030246838789927543439600207319857233793748775489527217470532176871077909992982277316832539191586344165414425252042790499697190810555172784839112706283910693759792296895265551752409065464162509974028120538006973269017045718919961004937236227079128954462124329582375872388502395904718744096853108277280497596522922608199537664857562882031385757906105512621086221608268823169387378617900357383556561170254578389554227573108698980634078345485557560534113162126234566043976402200039096877782901907120060083971799388170944621986065667249913100235382697398091014163847039020009009785652263331234297348117450787008551057509037335600543827303375783836748769449678874303120262067781119658048676745171114268889643268179187096719883040234375769003605192240682492702991277406723660735312178641136325223577961695288199624473443661321309502434911790167280438379255996092011825168454457259215324500468333302053652928576868924695543239164817675284557550081692681500815223439515881620318792280181813558012881967409403688301841925400899788159266768628986274805893389102758392363660916545208293830967867316841649814974710650295177558206586017129865309226648968386058620498747378191145413483795181003084220255613589828138184297014378565809826467045743568506893229521452142554675531573174730496618622723227743025927933968220200327137263254622295303250992006842456117288342983785681799359770877385690627913924580256097049564094853536771487382243323663637906916230614596131854801456619262771158902847188035700634046487671292622813973645247853696153634496940000580342269965254800274281179118985081572134679348908359644883084063799205461305456944689988907859987112590365085619868920605759148245030341591587722399404990207658693937134631945428756457668368022786248285004579226428270317442498192673345906245106784321545411930724471241663113065970544540288886751562610103739460363193348824276473878810234776782856279915256318323865913456487464615718749515018517710355531759330105323991388673853842401530426685788626533410821457935694555335904336554009476466218054635793656039566765551392958084129674692338236142907829927320417545479151848618307336321881105930937960831926458708458943072059238864841688049669619159664268308526638699191334483450476792331018082047781659797557540255190412099200546902708982238364511236791386024331025857559412290207970167516033052968234328933760248124967564101044292675874199954230946789192322644618623379674064972847563555030062012343396299563695371441571560940490562938848302588729170864939950087787619884418357516976456513374862532483710405661773312726970045167516132413970985224257031778245164029192133540367736572913534550531680175848128417027261870504107641122338899747474801101722176109767262037414122106087880923889055405059279120008558459244563804776070609980815777115505968473217868071725232349349169201396750246418829459426156643747318146366273891627551136466904828817755868799446320604391731003297748291995899080843671312865490717117265477123691998028481438911381639249475078438147350282421690219371120801846392500760208031788441921752758722073937974446857107315685550919008155553047520921176242023093788680638248594476997133912822836148159352490334172390520507232066923917521627931534704919331601121911459633857736006911787450237197306156354910860720501923648304112691750528941194889697382314157955900032440334215567366063092881252488218056872357721631059525933982545416072040709159083725864638781437851812836029665760876645246491524084501694217802559479434237208215635774871763139584628426599025914052264219853585265367579531300290446428311300993290449924725637788087680745150208278224655991190584796885126338161428905847898993184144925841696121684768540161359587689287625559602855668399791908739209714607339205676162012130855345915672256793465309836464649961733659137069726153258288365256454384177666043446857045210646524969250787363777235749019936151176100745680120713135104933578527558889297149802739723019570115530822929386544722016538993150075032253568696089866156993135627424451959561462796731444694843124157155836614935339583736635339898811141856291882011523024839927755413768363886326099054863785471488221538814178776887639445196651716823243795301100610259742549268038824070955553912428908570178795232300072101620218996544668252412494115237266818236838715353737501005335299532106118557698463914091623335114037612468262042727103185218025684031215289369964879941203256114853579568925249104527771495496551039147218169914607920047734800047746674730378809084818727629484727767574853405766847083612314500828067939391743608425557578136659643324074422152312720568133015534068891827790239976625829031568525135942904661337856097407293604475332808889290251949419156054664547162980997891186093369161210603400233199337154521038142301575418002700667577248649081745743238821610241603524682066121068735573464990232681521518056984650559811675572991867439567030375123350272198993606299091982060081298724162919086152720487995762461637343965463756593105706946955145484657266934171581331722080739968115014737544820541035771913498760770412072618123731233201397993927902893986164673919587627989137412425619228253810213564337937825105037025757188457225063835766750751764584219798182950760951140076665894039820460753269554185589889513451204500315355833401810758349534204135805061433369210357359980646324065992615286797059792540470671417930715873889117642768185228945454193625874446293872870108462614866980147815642986328066615598209313640483315608750786961074549837932326246430251671353495624874132622286054146528479301424977043007462106489950484872546612980640110704194886271412573127301544956365277976130807162331965795044839105084610986573137428211453890863401224662466264635923199490368197219801691647127401822193278095695774446863103520348220013182783202952043102744731080650776546541485148981521870034284394262129333298757635663693625222058060989818230047508830707843544196319678118095565052204344263643129249464860309236789313160243812582262667800954251925978688243149985091671863930567693377096029542656861246408954077862288499455391213709645067802011717263342516764321033588585379307298880911547206671235375249611582896450963974687723989288514716867824334418875918222264714554677246583687682966243477414838685395830694004935207614183710447345803281900196387531631516500360254644859465517948131729913491378544830595848843140435365732785574208941968066884763630138135187203828045563250213752123934367261593185789270824630834835888541299797771385417220837091014474117095266778704504366123655158408746180207362309093993053451712243317772496099823826582407266815678096582849952532290901205843003521360731486670401855446435589913474901191505422883081540039681229744721679056300800162258272177511629244484360370256743084994039231119058327032207207563317933027814278749336748020689091341206614698356877303919269760629307779574812597598966058827230863293223830861470334316865871828723891477332375762398734829793994896169868002727753248159234701742132628402388230282469937886131950096881530893028869450903486796095554916568165125705372768250709531839504170214186287928066154272395812513409686586193029220298442503582181564959700839884904874628907429516317125498285258399468930043040077598106824815046478090501213385741316002373526090695798302805808112732198395576091299586896537038428917481555269517543201364488670889046412452954220111490195541030595668491046082380521561087373150540854762929897661416527033521609036102263621219836006803719561428437989989292851599277466610382362018596426248605585766813828220917928884268224993085369168334773905249997536217325579096940714381694358273552819630788723601359395622949508585069490514372003206444293894329977262455413291374670178052492999283109146832511736367520490570554218133260255583526737645853316657019304359567115487952584676102552519056066681232482447366739367881609415139065358871085753533441134311814276967387229233764078460187523232582873859239272724938970546349686281663695372721254970570572093193904386639038624066553252269745116215624662663849833693011847649116207605493789528217098419334932073844442219177954335452676222032290588123351401903845765736722084559862538404706060431796951749988756857693668087092810211546991768756748926628557012810175528387681744303246026408460586587886650362067926181769503795027890623178175490577836558591556996319333040130844853402191849471370345954080503237166500456547431116139915423067589940955402894085694669349401848952734180775014627881678300611770621158484492493644198382678053204828176840413539413824176200689808128433308392931214147604782979904285965671772350075108587843270281783091848504997561813278082698547171611863151972745435928766385547199725684451628462136457071857274718765170818136030821652379534382415693455372301867891680555086416959710439856888432668334272860670462575999667589723882001506319327384195889419409631979311474288003922698143576931626464505649619702498787389037940964687290121699073814840872050679760659694389559379930201489145774351081138250212098159696435325516888359973858832528278646570882692651750655278546397735220786438212040526661318583209104964990817080906257473958329513367645541397751183499678552067940569666301094188131220106540789159205470119890656739095957736855875182746148671638600639559599169570384090214717803217771091724567313006672087451650984272970539387475315670737607297005342165986723324415264760101319699005146828070662542341327396056772216508358319447391453045811561547519646760247799128631368919803195292652046513179212544025194569684546291134692249720027189910791858738402316622200182401453514682734188538506901020378798185357051713736624787331818628214945967904728546832727875980903446248143877802983051465192142748226285715485467034731309096139542403611146178678002572730266939212933475090142453549916164908150766236389386795154083739652448538607568989618658743225560174482431112660455538947655487734883508889101778739727001194267289837231382358923628712434331648294147195432027897382865792043846661791790819956736946169569678726383604976135879493842753811167417135174190682889454928690724338624464131128032892838126780473464571631956268807237290088346441561450178611898044745040150743616555906370877927859200295292066678314060174148092127107829034224548769372007658025076441920264931977835346500195234428275160211328524663449051996645665951459838172498106438240451845350398642044530223366192368167411489519617778948575493680834874168954075093367059455048954173178781910455209916275386177701556338370000343385170741483289982041408254583496793226601832055241912605120889374996863237651717711795795574963033537897880325144555748572792689211913973177957389811653636526622526553449319678615053854603943929943224672198550895476704632373521731374865842789450267834994096739934732886367473507043578252797339579617119759886028246457110200154080560617709862010746811001954937738707738070385926114559567890561789782703080845920800852840078730980981431753562074852923877026082315973298074019721990176418151095436527815629197839728026738149749542907603266509212149781012402037393609630578351780891155896149397415404512334131582685898709653827492423170858571031394189355159211817479221095522123113346857997767342589557527847814419565614349919666294061957876248183216303429578953622173933192854648499087910626908251063992614510317802265789025145630248843077002196603628078971046379616400190936599309384537470055546917004577229090298772473691843246903152472841390560697810549697613113788691363076306638575207161903950642461232002472209364093884155986920631526779750213130888215923433978959447394169827413565218136568652439678331261964279621741541453358407391004199352745453613897104700745513411252664695252915739195655833850453932293892787818039265558954272278213155805420969937073439544067700439981050662451776677468794431539394966234349438479306872013841942795830773455614409925568556040619784290413857347104178832849476605282961945741063128265947170939805897962520740238579603665146163630805866567384433832286243485400045712596031037111314793572270105535089319547126271760097515950539989422172110099682004907949223820424870517401745873802974129719676350224655033325641941322464202125105998561700870717210568985447971732433664563514339187271279010852024746058959749193142438762269339254194237712439933215400269179352740548569210170302990948809938274845162863089834402569364845478676355558480854574409556377742937502255790652256978718221014684843378460193092937065629272422390665500906328952314404745458047028522996337558606172915345387873444956160063465724011315623253536692715058319894355173000274326460120025842564766680034051034524012666521194890831017665305951538396365823578155566246283909959241610887486133461747959858523823790782488160005175258719898896422591831176125312524000282898238408809312119783476544974653046163337703698978566237281400533888619847974922946140355929359907764598343668655172071648205238474132371419357117774852772204680272758529800817649929569414822131985990133348337286886738222303675552330786318120293365071366382017686513774602937409859221676259180027179907572124878282448863145668162807342993172266071869510350420537828275798154790761194174994197495612331057847581947128413428741269823386171155792416239027433418005820028217313822939949682248880069850476305099663262706069787516392456861237422175133793709297947501973206548506120966370455293591845124091165869172349254160457763046629168254930848945106317019777972065518776108250421787324201590739945895308493045558514807001710278443644046903197100898000822575398362764218973488837489982733787551525472249833590645841656515403692374494146211666825855846444799878625371812182417018849651336346089365791316636797370034264306990236912211023002677027192874853561391288009644756374364218076023913283595108521919387400727624683515945803444976538113374732134347852362031927927020650757881515838046076716784935766275766102597501846720392714169613577629153786498192197646767243844717021345923376134098357250678829436036126466287725146234926687389445386398547953494169258670955255750420966789325473672789264524669560041881903736893317990932281779528904298894937691965557082841799441608374621693843193813479755228967811251446451539803756933324672524478346781887150686682742182824205340257553261357720364782103891135844064492509599913159722886799856157487758545772339998791149029535210314700374331939543295978588196351238794087812320506895613570551594299914213778011257497283917136376231454099925863217963008073153443133158502370150914783998760342821312239566092157533191596424004971199232630060731874636793277610068683340864155457382476097320478867686096850369473177437462145378314220067644458152647977133431602412160490828934433493186557159606382902183503114628627506994504845892596947609356908372227851615889265500951324507268253298700119223059560929262455116333274518364452889903166431278966618069065515206876783550079700520216080240139337549364251688626568117332162182453578299319934263914782250828507962172364065906549779176533348057390855716100748394154805146186776462756730748440435253443111949874926853843139838894549556853638178169724633089830890852253890835729064991449945493724690720102397393475961151745852713945559092558179860691247699633175309157912338028418580086436058491090843071924037362266709037556789943168990921166644681419776604274471662506287931579762803951025300486848439408936550678442737313110095626849019282826073740893314869335713124629080417306105638005960490899870156802865942400488280999563733159756095691445703057220085241316716708807660090741078007872075708767106192442044183803085718575693366070183218302322315863791994462898919138424524699699146017450379757890884109384745676129664467354920228452246293990418191019765759736727134591952800673216559462098099407219249263853791794221544325258838676402167999736895840267096344180352615706849690131528584761962463944945186169325306300228502574248275328886576157818942115305234715588650438242620272898352108303525284901232942812285876773536690330815889401975252019015723682689920453146280190491701579122232836285874222598252563591783056941011496601709387400241858431031152066857779099786787540686390808504319001338235658454318665294138293705125535530395442144593695896927979293308459783713265873845745602415036222355388953071624871993224785978902625950340063640249098996489034200922695697429747696486338937487800746374546317907808952968945032478072566887123518035663456430330370038980694730002630468677621107379773675084181399717948668919517561077502632419929863698971095088036315753651275322720872119371946376161180082768196165668846586815588190059705759403096661108342902460655702848927586081060972402982604641003317038995056937629473160051602948654696134893479765769766511429315276686353631949906854707621009014801925697589700943505613143994420800053144249205399147565807284266561479574292411510731791004676896596020476188497283542449493724817927440667315734050306053050386606598041159537314516725271845642575217572364217195492439201574355003788602605376269447919717014661474805922753773793736084733927312196834615618513904627806659068536392539757091596826757513730171138766177942670686213640970658618101895537943456507530597576609342725761128389362538959041881750370885816210798368792225397921538831314530685195846734183575749618601677598900680944863751492078905671266642917348550406613445565795224569628398599272629631237494135138352101124575965161776428919705602738540795397251765246324072587066643897641057024222956212347197951808004202541678938830290992688456455024037624967923335276797011517013470161261809631875978387280777872503981481142049923334102088197398347941065859441681388007966050492113999764693632548259970249993624643156488023850557770500844271315036723662584057436782726106197962474976130223388633338557459570212523297520130337798760800161558568072235302290100663497043035117105554158459857299671324173377561676568028110678226201720352733248606402581054414128920748712626851984262529521330266797843109713564930039164682321272963483650791322264729790965575618394983377973447771780914290411092908915725212712052201473513754735402789856318794872706559626648002341557645950454656290524674663273082383867895131085753091386616470853384105342361766721622430329863105339743988883200753081172988746823056544910241793128334373581696742090090472009755220553225395359537424899296779579507096113878534091944446064074203981598210318639461247195066232410950650168088233760677773383581055234283677601614623370131483382721363230866435353984583901814191171805562971852478148616231075318472430828560395813778503785226116917890633346945903439578540491359037875757222419584301851673493300907071845287594799611837279012833502605538336050485356682778902718185286424969695227506233426037272129932472982791290042231928739054282451303748415505262508296127693095618828528217409068050799018967505474091330563656876877493624999188586664201472589250939043785560768722767501711282937984284579570974870737648332877715399970477901653811327942338571352556684739679446747262203603250313065648849734759549538777394687089064540702401174176187320414537794676549376400036691664114124376715003086616903284829060351642637930590543373433078918230881954370380843901385625812816113289350130927884619059966520350881243729455618519594520140852524648284122658832786266946137284962252615173174639212493644609856319497994468036640558268551731725028866825709458034922030533103754022658200623184994441874449898520115899301209482279175984913390986691637839988911375134151368998251131968631944911341206688067987844339326595759867572085827107893356711542149381627247229159736221550990906630505911555548226914093940313819505922270310732343452748927938915952793505408414226643365955982637622640681633359752577461210879131764288743984756418284323479274101145873695377286116530797633098374527310739508140539271895425561514573345529399347357839832902252672897254421261373714185049199181742074410406846420291683509989228999359941172184267843244455621711071987384474920143922658588598225922233484921486053383618386787142575760116244640655597353584184094874190817834840878399205744937134412317680622179238636648489545441917582292601040843658265887884290434058448780911793069655187454973517976244838673637987381140761814616875211317536084314277915687630142863573783834295589536331976761266059376456790249435172537575937662744480814826263276251380691879862951556436038405372847857684026608147135460168386621896197940970963396187227014489981854838256173150420346832669941568574788029414961698070496362839197565242695320591425507217579698426203183142635659782996268401795024350559205557951754338053060333584944951955516500735671817148783257658284711766643072356213752474241512677917490106861192985266322335226115995565287818408172280604103850110933416458766894070514929397605266935417048901579682828796990035232132117453699201759182826622942692986018959641488825809289319235736489833486657476069374885774246151931644171339871619240221219572241358194374322198004066681903022847345302776566304653566337335170594424099703867519098967770407294170530636900491315548324653790384351604063791989353821764437825426224488456566392709577169352371617543509192007434560537410363197024354580555639641812768444830837804993739338646429020136259041665245722629892208062134726808149678956637166086324127902997255585843383042911208076731105961329646651622830828540043505941165877841973117338630731673069103287383123306932001150761012585078417989919306379031300418071203081929636177085016348019060090996031603031356062708031676438550001360470817252906010749306732989032048447080768735561557452353004057273462130062050023047769651993933704248858867284708474168371954912909102271405140338680164555275237826308012028891984699193827375285776797494386924630523476282114954749881356191145110937180208788295173425253349889377030085807518609153437404611828695349646014458355911567095123803436809294788703073218783231730769913677726249659777623349184097159611326845326217193953932351181558648926480998231477803296159836210392028519716094744631193152316990816438805703764494213996436400055982989320563622711881455116402736669682986073399858380622865548796691858511029755109910618656561815586272646422241300724318869188482572104409796197236014352392543678687101012029794609814032417384467386256789816245498685120312769651457455108101750177570916261527706692629983346673945227024922330468592855830504158037646909181734026274512069531380530001446761030491622108114428574524190268030777769087765658009166547362986022296816621269146355222359078014915214529801152886819369973015967600162962595551001420929049728693860693543769091500261916313713684733943916027745606164070858841114190284719753916352283081142275384678389274559528600135309366193659267170097403331126080488611168295121573345603762276079489131102553387841864512798886203590874528301843328863471519584205845261195915301325908963225879358776366407179149566393487552656106134025391436194042161577963394537475215044086854290285719709570622816665227979081445731726267999937179189072361415212989825176137219987893662179240133058745351805759501799851146928016871308725017636766985518626943043023031106608813381889882494652501165956799047521434802669069681495723630346354792017619715120392203157771121068363207642941047689064846974316531290009072249532150516104195676868447718112168430088098865122060422600696854502484070926151178010244951380982676262637274638806935357310412035802468641150772167175053953318086986888302066471809130391994966355107077120714253194393193082977641669885554631837777315491776205006819555590637378890805198734851029838878297835605399525267207736464643155220414850882425376225908385730657577578606453820006047150296764808533068965538742996219584900361200747478943495514576508338025519586803228745545460641822028318963060940884649810679085084029094278885534403908579178993600067947801313201788130634021356286034133811102908176243240948821553231696877389343854985729474757945062380406147464250374782989190922759951911062463755390159078606890394806884568693295497346132611051645503904791436004011345247004641954063469300637370241387710093810261691216299263497860892616912041813597747421211812888566119763221747027851773508450336320217811973406896031265174561408061094867287490216896076053711272455727782419189339928443419360872559601348392508761352606451323783582980935515537513553089734408838875816869688872845962781693411875086938822907167037443654322882595840123866165637135622384571773095429644018221778631460886600962414554935731105211461076529512775189478202869045041333832714682829404650813737429716557209772873832876795652984626348939591344513027528363799043772097149058599771726514220099135491713441579112721373738543396265498901883096909314121949012274256541445426326352282481602124849284652935624927945065174860476050670721101065263283596317785747085568335773953406313572264279505448244394627263250451913935465510606070036429473131609133140250161901426603798140399549132563464808173567651061202619544021931878491356947307430696234830780440888608133633951810198808417975393400788563874927105338810482404505779420251987968852779108522432216023707131368794489772822103449007203634806335430740369013161838624484504772659190764097222907744869324138206188729075288310075013437130418570361926860532611557557174123931679371947033890036429501987238435485496089480904870514014698760013124664695344053414699194263669163232283974826119664520006102813617211906263397178677588633001107080119413168276184603351191686505687887387590641178699375779751001805732246914752214946866478537474251996916938476565965363247550700409796433425696129379428604851373226744122277305878656177235009191214054714579900620038930745165928116699347202234849686379097331370980473016566664277563393011694768772790009752952038921207122541111337931329317027798598115329198990627721529519613905446325139555288545940368225179153289840995175598710907029228477106827995170066808108546572411861008945490256142511196910848238684579023684637290412386907201216065656651548618662214724676318404210931910222139898351059849570032566821026594350202933305730401656361256692483634094294830950052296976694963695198447677482137047035506241757478633633478630362696541555494568293774243980447933466767081223899289620759471189415644134112705762701807332101903993726924662074191062079193223725927398157866646516488905155256764190305707814824900545994879685360558410739802825981729305461547841770358505574140759702088040266436915195126748265365597348519744811569323652220620121231469182731059335500048312149784680121368663561264036110852800080089822901915551969520685235954281554292881405252714479863747965067832696794038902382664613298043767572440476998722811629538811241145584135679800593142582742116501020671570156244524544924185886168366865430736664584723387636386805315215804556705787323679503284667431672311072232359311462372689766957912687559285477879505563288933847914661528749551393458949203415834143159019102280690818443517839016228028719813000484219769920892553534506026996352009247068488077891307010493749902126666003324136015783165500202226227748205969489276798030069448117085134337960011503962773310925281046638440777741118639726300029265964537544116564273493752391144244343557953982301561782243549355429644719432080199008488726752666522697963419798036121030946705378197074832044126278704972190283228511678108346137417664409907954339490760271050518216713862661947691515724624098949884677428272572602539559006189628740162109521773724907079255864669608295734497828012424595842048660182275388801948907019867059747400141640054429784214608848854990606492760633926383713666258147552326660897291707614604897715950471319840833972012215307969537703319451048539809456727522542437735996435997883808697125235448230213563094374888357458890970902024637852830175451948684184205972595949457717894811076175248630909682915445064445156808568987280817996535654770959999244524059025615562972053637984242087626716479309581988852756729546440534138900052954978767681698112144304686857884289275955582076913912365339350092122642975192190014985058360566832527470785579788681788342950020856024864142731372290028932064239864884183595186077699254651120732206942563431766181621181134379624857381414374194115438268598813748477658504636757752922968339728675769313012585682254148071959011376882186856302931547429822339042964387272037999552847030765082737169165872727332018349364026934473784102308328336258363972944727640870428121656252117087245049723887332007502571382611188848064673986529895448287328243041185029969413540010444175027953771874418001984244423837475894185476810754428971571740079437355205465590766695923017762417944225618896860987489815944539974468050463639504058316040865864254001743520027850768983130242833016071517790626162942238086772011824869602474749403406796866488479517703473929935176357385492648004652878624800533606111319597755064974331452628024930490780364614353350264855320574113810497931968057639169568720705489300221351667718709967571645993534401391579898695011414641539586068938356182141706192360046034122573996957503888300556312501874055173526733278151336432962864270803360945106984080692196587279599697517925332323476183750746997477023117820406073574910848159560746826924457627660502060480276477511640410996290685135261297345722657702411656945632460320435854286721430071222565891677216130885460560308716503183522964700689360088691548004270770545772280872232799582117210378576734508244359035916426475293106504885509681839823987405810705091802206634967997956417626158644083746017250142694072432618086049090993818861040678588598336527519537521782222794662849536644746903533498534031088583817265356529590184805842272986773579540283043171916256430278594788229559918014709569891967989040437948874664353515850886555379719606877469804598636829689043560304196631868343126309118102792828387013065265981483348140910057603893748186546599245502835613474389990715045160329397623266228907275487195298089307837189356818144996685313691255183886828315710212058611977588101693208333092434136238937542109902186931523570058606973912853030221673555028620088344976269109331053738442616495715640088126736029408205728544104279389863227500825467157222370532778034941916150463081169494959158398241867847534596576001615727259659977445718967952915247725596852374827660232571522456602052667184406815039360967814162952275324795191760170596602251899948976321848245979669997580117768033284172751614161001710725732307722479211520715260211253572537463928619684460324440749649543199022990601907964885160238685795437845257567702028403188016658497031351187190022700716240316634352089401376436469655703898709952385541287347883661905258478774458035419904319269603854135976487366088382777779480397373761950198434578961603680293774017219826608184932782823851979233654213703617834973725682874555856320006412132674597615568589419071647398074963322988400061535647881264431206289383957611516078670270875172822409141673823198427320050050394278472536123458580451634461272311702659222069516215484345666188764154564786398335128054880252873747559635132346426853787320155843934569126267811584822264931434944815616831843035510939002208743391716748292648435846880909719037646650001972431289656277639118610712163675669224259142427482697918712758406187540625446817545570379050518392810970992389158764259973565608821771278804003360131478019394271132383938779754861953571849371166415180123657884240338242774443044580159412502583896475772827359417058003158290580933079913556922323675089216062710010917664050930872696813440341538432152324697740646734904077421292252506719705572694862876433989555710514968928196716646215533078871015896544781327585278522696303146648330451252891627022945614246640337507137303058475286651141762767864282523331819980753902385716008601807285294614844001480710940545116415943005489269430425069204088779329908706922797862415349469055645214138433238475984261865331481029212485326296442171642642514363868133396304311643888978456523406964218626615494865971555774167066004672037346511943196783071100440056135595385796985351433418846529859522973550983972926081917964792846944036039135143984117189721361284296838090744549926332170540855669095806089496282876458424222335143293259723932411870303576089705555785353311709813636484173586864960361386149087815789214126971725748410642259186466553301562046038083284724605207293282798750208937143296406743625408108267762367230902502138501377251247919104368870553538645818603354229057974869072577326579290359478435515347507866000535060707182843991083699618490024308066636824024127224477157440295946492284645394713667293339730185421872065578447128859363061744804389428052743786555589458768281449704394888242011436536650383945133047649832097766404421586609618203392322244162088845056929828089008628315814948098550625434455840358142010334296472041934825845487058316757533210615653886298387076151949680763869762385608956148312570012652750745872975799850456027101367993053797770265843014185504944764409307862607720299606340849774424046144926881719499556337778006029009892761749789864239214476801334952515922078142632164048480366026475350976392642931095509887091467067803533663364929987067623979192653160060139657401395826547948792196132790734829403110401040844911512043719963031883614199958080706979513894759273927368329660072118927284186630380659962269247068966719721228074243836116556384207638100229102079538540326884362792379773625613186063851518179521370902062036470954243437174119009124037037338610619201538982673713407421241189493828803844901847776283944038833173961072175183422390050113104542248987017771789772590599072282003964552507875559355691784331906997373603047431469993097682127530163547789245305995709863186827862537637775437776201511798577724175546931216568386037146512114201352530034479849450068216377456926798770565144063443897715991591358511793880968062996055845920539275537976925321795210864045972083884819132521509845679916723999871375259108002680227312071609533673416985963791452146464662534731328214836279048586525688259067830436074164675396534485967021740770948295014398789365391097735713561602489268656204565153989623541276100371600901690523871432840943480212362028795020520190419827054146646993029492955063004090030702720752051458365620300839985683475337377462798199573028357010485710208513571832344776618796017886887659921973355898611918363658296870217827018359163906621839267927955148844957625957665864921994392966925289997552120536058219794674673520507777036752448465510096498820466174822423011899667691837265444695000442637293936182664775538595668043096058486164908931765181388797148037046676135288759331500134753076017689350678658885253048223231338034078816576206132603931248408247446210544245723763756162804671078717160118633968751531122138175287149813347960294596458336199618072439379815709790666174568322070188566302333439469462544826555981351820787967651241426608428323064735708260801043119141489206074609789919145390517997432834340489364866829194431195936493912757421558001611728212970904509229161036651361099081408419522072454312492096096343693160908012365503233980695176693923676670027594098823257272526777788600702294380233999161979519893525450846578153121768125240348859764356693451074750740695976275851114973858785873533391613859807910401226014776116100900476478636022475124363277207967593902623696703571637903992472401332560031021024672172300108827082269033245323652885503600988306260502818037654029458565127182228280777212605437801577520510743119816720897554129602642260343881262798582670500248376990741739770765350513563749762759092033758028686171158902140032763469289403120982685072452705255053025218970023248997185139117559661018860165452218315201690772866893039524867627514486141751902793306589390454331831281355019207619101399600638344550002353904122592770179723749760037321163626483801454832825878566035532441966065996315996654755372787769779094256981584747430134688425445669864697095795936232432644543899028772174508882219109033132082647348478000927406675423905879130742937459115740617393779830444122417712289368016822224918150933245411827286330551470437292015694131538730917270703721842688512635077803840420845835823134602411338508878178044302195831308439519445341669494666963627769749910813221374357428669620016496732468791981552285057246515840250984243856433108003395575571736343001154761976388324074508678517192806147764278514256301877247422422220330765301468672396652902128372365178841235223525484861594161297511582455164726536711457669804191811291022138275903628370572834260313512126816051083704754806812417127302164450085548721566385410585744994902527975888745719365376625892894649862344735953805809747494286045315187914259814121020084847185023444771156511054958345607884309064590624665760464059188076985466703282057726516248062848571410839032897533262365437850282850305198544474864681779746281199298143706690167195330838952108356868299600135242210050598369695656548722221039623364722049906456969943611040048311934830014642584784800268112095808464011416112764471059177743603403035768209026638165193537284443801566644819722274918934951929926327500354177110909542332719169766478804657588696528777037753176914483808005092711012932052615931599234910137754739437197248762131955158893963923469940230274115211563981050402063726087703130308309024873992768922375903258448104553456190806009837491350330746899541866058941409247565320902600525151869729749512583312569045354897354763831956857299901057065269207424474447569017984490361450124297270141278493206206513991209997423388832673611699508878014273950114959599750942503114396838668913183309557805156834087743738476925432288329658230004727131905989412902613163962246300218453297624353057055865905397069805635835864631926189146506515129784415147959765440984329528513053498112381856615008680097596995032798349392559930570651398315371978296188571883738212362425560380492455333298312883286492295429275607996739734419381916709909331778587073514692799441059154753420227918998462627913307137701552696561029247551685213472928375377914476919994339417609357153588171470044868550615946460166571752572861674621125047489418312603310504743628061189076216600528391377243309650999185740712479769222376385316409385564247057441229868063395810657714522476008795175671652623300698270041867571890799064614882338653967702260939717637979253480213192962407697978358429193273305414440279299200297694004848600308448413514376277111668428082566556984684829556445823558165535414944315286600519489602102263615603505041058736357224949549466194717340298011894059423086001549235227483690787185932190241248413592661591308707536948956047160596377636029877322456459773681142477911158632334913438653149239689478454597442373296659135613758390746990622642344009153850856104127589412775697190414447892674864735402372905399991385408659725067416975927488684902853460195973037679459994705304872401254632218111037443595842623000665622709708884884313898817537832576666676941595457435255531856465793654082727132426293250911519856393350330496811277780466310972116462685374300392385617116127819282968832562476890991554582485941549063064413274513209614298466499722076303973579484309455639382324755887729974333338271205951480190747158210920914467872080703754615145670878334644319868350275421761977032533407006734124738371112526642616221975525893698784649485312301941285342106754637515473744317978761992719080578471083872856118503367126190038606285143014061748677017817212371725530424067212003966897345512063028898779908415042167966360244255962081113874586154531036943871483467714251037903466785124157468651494833777236815822735113504060790983590641627019733705072450993178015742231858397541176538322637087701662426719753316621161253243331538382866621377458124763367426237163714701032529662003483609829234271144363287617549630424628054194798786112112094700355990013290240691564097554246082220405607364816586164750942666363801000159711474871818585447219131486215249349880756041635792482541259374694309537557929418131498900558694022319449753749180431247743055441261413505986327655574491092897437643705648036724192645346643110696330093909059191777019128449822004598802197499143505920495464690647709119173608841762780640191869741319062010481114288401743555366953289523095632876294815824503362267854053455426406467875000304655978380788969852640703654562301023314171532897352357620816001374227849001880860825166425973508012113358191118970612566293772763109798032116949395721550808734657046952458701611692055429815297371313651457603378839133329151170020356823357711323799615443876729706506538473825804385924187755849841753047854801076588121991865209580697600268153641126730799566713059350611472552874445692356058475408184254474062771500432076674342042240179473262954340755580654416542264364073092984967747731696838623177961640200333291593925973297910300541293144052539696450519061484547418373030661329284506358134968168023965735074200572127591168944415626222880354977522273134341801556028898830486455648811954658827246395897384006587602642768089446983563278308728848830092578247307400716768311285560872061147084012862944900180569608598856526315227093835811323861242567026551950941645042133677022264772646957521901505699224194820566407935187074053622699647781205644584687524354111128784651612304451248157520915190369172789843284576602593997289287385000885565236264858244975172568688920811102242710711191470231819106538172382846211844754919364078014519062484126712564087287683685898086062337477444231130160377224376739425284928571520221502044926362503212864510015582018670440235942314606664715473978428778707016050494727915502606616093077733524150317747658804384629692954133183345264964385659572397544943362238986839948489777443952610658612420574271722993864835184556249801248107712006049061840902900760623543318113499153495132231401146874013063496947943884530765610980236877556284821489144058746886086941771871700944706635517282526763331093986199670421410070608798725386809885308156164346324744850709403060065507198198163177340562130428270115424686491967553327389768640571063847748362691961493552721890345436907400591455779955949484741361350878409193872995052782532044476775778370710387035333434806017116314052435188886741294549964661444400349276042318851304633672967050319592959277437114737493388705708296907717557894056155651948089515406575056708463252020383148771121203369903599713556750621656496689988750030650854731508765875246291039796678607590996154258877039411492142484711893535559855045036254083712408165103794341835977803361625003657002073172014204630002305231800740324305581702785535070361721103644981575653993706119426395185142635698844640568807548124369271407449910451491948189885488183863338500652449991439344894266535000617902135051935566487147258681095341900730117117615490091291053320579459839295102057430925001205404551063956160788146725858238335529430659806493324691492261771088706174363109959700414129413273449624324292370586906112719697611332492921517847240784412987346185815162064794314491155407468154995529407090037830430811113678338173474401211672342497651107720289613392400441645818425912045563443040733875824297525045756381405588639700673978133555916398723971466574872437967760659671642906439212170094240151462419446654349485422504867639487547925578106396046616736959029684754308166150936620054127789404800787662959592953226999573695066770196464385200034757814991924221399651531870917106126930180099168959994565726729120201956908056164046876685759621935481178591698442365630514936263267198236123652209060568896168194579751939022861592841280312762705758381788656819244907980137464807485445300487178632986348254356971502296652599537162438050686004442449922183015171199335454066671891877249397791991084235299702250518055911083496839828400190334787876815231452621907176100421098495462562165294511657400046321512082136535583826273821255924890076992423552091539415773438774342983713275350829425328348692093373354537314414786452995654122713464417766799567142118526755623567905239778066045043612473665127485386897640499503828909177940947599008683361171767799811625987276117889812569747120671970580516441833823772477623541549555533320707874064112397629064122078802966938861432126092608737603117778804230094122336322775510604042775171397535604852220483931413080730616510978865259977175829039005097043389661802540906908770013921958057457706698130849902924934091827615554739599101948027205137337081324801007073378103257569659710680529095404782878227088939228230588792865302541843564440593394593436946197251006633434004113480954818843994817666025818061160238153692024939238805982309983857468422937016652222704068994130862022617382869582767020092379874010557072597638222360399527914666538743427750564909959000496615343202741517437412114211472064146716718602765856954726022230008115277934106622298072854037952010095702216789414900605904985139913797269500296767075076240881498782190899922243676249350441158781878467775307241697158493250689824559370619431926304695822036499813606334306746128370479470488113015677076369544551110458653950991679381787952923722239289994545047985396653823501829593651363147445747695071664399831086572097492232034447557614837315581755312754550443677226091210342052346770215688601286470573877258300514158640895399595148907479484451645362640015383561016047915352125846167217788442656443242466889734784775146205443835161648990327420548588464057498607959627353385582940261564365310025062752751035889284301400893012475838148212248786142958193279482531799201948620115962844014173722975069413851800927803407426884053062206689328030082546302931334264152005814201218056166850076324116607302122638502701360190548895025636710238143228261033481923961802704529025240221620514973682344728062246513170561195939846867004171478793651437867586501467440773635670786128365787814962937168988776321979697100570384410038460347253703415877241359552354774926922215482645140784847872679473371154463736904153726309082463300206158678507469496248425355742157031846539039654693622800891004347188866563428406007607413898414297113418909956279609928528435202217083901078695498508539402206361924291774422897457041390224208410800466231164181279586557589500093720821007484700781108872677388137282718745248044277074214890403049682656057086904777954304971356050108850519283006367118778035378960030617969390286410671860507320974152146970562907329865080503563417837830834299125742654209922243466087543461757295540993365055832162294670679309555348271623953263683288999067775059011820082228257786649846197206534126765179918575369199227064658197110785910068274618215411110051272989877498090199237223166047172466140330559893012320967154754377456623267406274182327860395305919441536892698409351317337253069347645627135079789075227918359134876521786152361460903395945415560848502141266157694604652892821133316284194513482632511182097577596268111271762569619089485086653488612225897146009840440825636833493782138018568072194931522724515114082717697067695054935388764165642447209107655739557469019300324356693691686373865130847594154589750438532273788646698176841997152786392502129156313140295276442658165664196917134181232737803688360870740468070731375220162137335120395521816384778851456785428849477528358381559742725501927903148000535490246106157590114196363530431934032953240721372751181505224848778775668891896858966179398862174145706452062335230512594798230662205621489814925290656617244177677160212333744724970647933877604015759407180856645864584675315564952016014954944428794846973890325492582343416195712674997869883751422495638851486553569215575020316148689095517575587880383131905802230516548422006182344861904003453723677142818567667317853941502758750967528178924089873142554453023201111431747837142528221784310541134526135743638664815728624862810477978696561795001948466198168368442670833354174520760371874877494086067557046425192156407097048391134475428964228132993158264561424294093827884365448851379304658341937997210509452168148410835760666342753896378272603697473896009496719805256558152591810846114171965118774250340981774784623218400764563018474630369003523566971046831593808983326748072903859684966448565825396027287431039211414909662373127678551436380104988729096397572714272188874839346718615057362182940199095223657810676955925482393587607376238678886124336133272412640835113900851349284780650899460862710206278626883797427575775895870306541598879074330112816705982212623423512423009852230963785371177328577833600928349855230509957677747623719048310632884389077945824949055668890312796938577562458199764679116110438624444145949567511252022838887081474902356884897360579018643947777298495652536231523770952495566673022338654779708249654288118600337777988615921222797249713362655283996848582293480002175745288829287363775136275097598169944922254699695192639911906770148436848192057653122171240203068547461378574221269169776120170756973319837964423928484354809756374941812667985885862858503601589200726395268937516170834529811580326725284787698569489085604304863508481718868004574245141588084419605131493501272149529563468644677020747678972375167426967177757049573259067208614631137363317423804909058766908757652682994244388919841294826885929178492579771629959623771310640588200122533783799440162892842965436485058083286252410147549145203210838164184193627119365409479469149942051109024911010032222153485761947512052813348004001200760767692242434836753586436978746193415104184243288249756510089887554690240827094176163905356975104982248665094943518326419217972162461254682415215329466936437406436590479046323565144259711368148123918507186958919552876520357961588420731569894762378813589796916701212235803803657649167658662761736966479873533553831936476968753402392100879846660857899021458493825031880288202422344559966699887438845663697340195672326407951303469428776063516905985191810696192001518193025751088084283848326057260985202610325492168903222496426913678981747418216969234590803714307279438915174163230563660544698804806791505110827437173433198188820424739257269540437263139480180595854207023483682922863370837288139853250052488127148660369880670702931076028009705632517806975281130234682760478260879797489875306053901167412533152636474568580381804408400935592129156515391834370097756348143051032905407169720211275014140847369160227215411068438197899478799216460934315081395910544030553552987056495512276460946300362781848699137080914544988108119727068328165616519038423348653786844318938030942697534440214620746156216327858300195191591701668702699437645015546905801395069750028334998718193472223472123142109442377889648064501914660258618957616193738516918860278899568423947467634371196294264076136811186110144419847344496149116678319163965195426445864904528339174249220250477429893481418810522912142302066391943521939156339467333622413829046355501046736575392118802964650243190781146741292128727774187662696759417550607698244771616457560816205867488861321161946685786940220308135738382886944142233811086087513456155272638327735139493483680885424656336384493775389429117893520611316241471047601894773721996273018190761264640384761338956081478678976000901684067170989095104996665135393332943574914194551188130209513922381664205656723664733468015985792068143571191369747869986814058594011476080547193728668608842186677874636924685097168611480881000316216298079515877911773429131393594869482995471322078764980038567195940817394984636192417367043406074493295945365828307566641124255855449626747655713572276016395578553889176079347163399655342041933330709475614972081399873717341849629915493478577918613931572469591851306603540633750034749116016933510793405266635260788100561618881910588352403288852838650391412716457168221148151662795375026707718855215856479856016496675087039289549774630360548661336547635886314561457287601402748215698616464641858087763526471626421774943834666994291655451524942999757993354812971020099372388523940556876835200745115341738144190978798822669869280454962700102950278709699333636966475688072479623305114067136068686391780614797425532588337277368695325116744964778209174469006864991249209638586445451925084810095045690609160865848447681016227952428367423680199562344879839170569317905704547873191927536363882299443408100084794652646128904116398319928288637832943240310734929246771092270170184199547684874316672228581421005791239925232286917464515061982846782062725203003581952975255464160089727922278573110613398651627305121144802777706911957292353355291078046470519721457645566420884292082437521287652930765304680192228229904591086700680700652385949726666843016810305232657728921261631112459850292067918059257146652511271660570589135137894507149930835968638950095942251384206533873062204260019890572534732224178108640692245587760651340150581701389286229752312627838511470930095129875679909582915493487791530521281758155166396121569968109168824417459194798987248159797010012409791652590235936743293661891848334770706953382435739404749011076067842298161822413774283432841811871866070983971504023726206258998716649043364288125523516374292517350266181981978182556289696418726227355598063527810828733266680150477101211789478011031361654805499753164622248725741624216845848492584898320484276312621295035865821068633531731366519990584540213679917947978477636560612045133487061509560148758450279911003558975529080282978434966203599579758514479275643197490547315104047795709576613796011622167050071223371193745096509517944724769771578876892936552844953908967833921374095075661883882630643828677021691684279067710404905074020019662565998928135849040738839026190614457015315739738330492574300463798959352388514868404789015441868305136872812288029315033830144908260428068459489039998473347339526932533515072965631832833580917635234472820942743679697610384261594178955846332184314150437123294592834507765725596420146859112221866262005935470013776142275876647087194789682186204489394589433097221086241261768945101578122419033487141413006740393927804387710904064245514613500579382276911032889275647161011403421812106520893483704493895877129187743677962112544825413762498387384583324586444394122440647491597442587226579821347767672090758606552992683768627459231385287496126177864397389749920520181028388609416900790262250754368009563455983846292549517177821186347629439350088476322477005713882833264271482719246805890259660475958059407870656956377831425848680329092031737874413617399429824799642677164279374197953658703318623825941957847651175093950408797667107450926024950090012408640898702073986861670038824081392585625813024008634176807591299116872111040642021051836554276698596934186777983430461362025328069772467350855615212720440951659559109651311278859271530553069227762832909710195362715967104693705210114850947568196888822992599862544864607633928125343437846182104511091477200416624671171234530755323901595384862888259454814450168925514079811862890736757500082873170471238908791779926060547373814399649253367323625921906133520241790148164449373293680039575351725535241920126245044639698380897529439175567901198249628526592490986324304417743987554120487133254236853028815671204999702249960381523626416807906602067723386468884618416885186341190389887808949636577292485766093348745602475654294091857952495479546950949945028342025904830600915213928572057229967415044911223748987282804208041644888926620404098393126093267998132190519515057536734007039657657452780957935700171822560809626381848875177098333770838416102601726913903755971942435003949086612622290434413773208898049762897999838063230675865804441822335197053038503586115079873791965569862129635626492139138223672677454863471751710550433475956684884155176005450032449313645936164981626376367834309369691465037855319141210276349771125351308823251667297313028713024500779606442329233429982160970125775907977557584662109322009749018934962845511128865756617638221241144216649744005594357654367912898621771702374823329740272743423478973335671237515880975607479091687938252201119632709511455766293112944867255612334942101008453076033970725966586931455022642682823266025599566619055201319081252526711855960115632007976760663918770263274844892241482752056558098973446583537303236724120985445579689088176948804787838438045688730676955031791325740902585741379694277512265080751758680664636257152489321912982051534248988810671006838685479104089706786795985590283795633706549773842073044630261197251590894278533227052708631065796117649845976313736889214262337503952027644287064797863721451300597801682624631593221552975648753412343977479116374462018633939890471928348161055072987508586404144678175970548627508454850725410108779842968849977344540733837905665174682613339700814273878373097047345087327669515316732006776052847937634625661420558130470268560130571251390088132601198469930299865900037363414876835008823146141208318199933510531922915253615021036493639078569895671435163795102418562999458747394316513108387065912340633795797274673172999744559211198181309314313400129861873785277002809458033679531552304917272464630883395277752915421219885499726987899516148386212166263970391208866875041855506957188125709276775060995099946154052269303368179901415420214602083733441956085800881589215656069732843893652340366051066060373060150440759642016009527507015263590909199509139138894842370100022639611840508719350348989606387501970609278514193570456582369975064129229083004913230384805055559840322370420037702935213119823883312536371651492544332366749908785400217146556026534587859324226588450894411869387166937926887284353512291795984607553772458923034426072940814972091331598203137681541357830066290326153732432260827588758720219380084542298557960816873121161787729518960396246966438910418764062075744756971795055426829681115837052236358676616865633073033480783675568296221106300150058524963839259205906908517021077622911797968997285872787079930999133914677281211453799080110765063067267539340492559300817373495105459141733140107936677857011420402246116785391124336761163335907198806052263145795907474339667717343536730878175761083661530103581984364388162064051531697743420352153290533554246393090464699999019674941248373270366593696486061492469531393587604782356379150410546763772929884029325638813218345178153843278540588676396166240820811659819862532897160135723372871785737448652677580066189848903396757933018862684876999882506416387945003785058170413998078204960455837661658889927211336999809551986426786947488698453485915308767824718467461934615454402396588840786171097516578039823916581832976500463710641917548557903832007872666686319056034819268533921089194914415345313969759758190739585761555468347279285228369491165640007079790984651520624451256071564053444556052669784589099833185662707954817441058090990093280843799114040518753225571729984255834310840151807069344878685003769774387885847771981578568949183651544567265594004733030019229985744530439643516704525563706890339116028107289165719290238305260825764177335775964989758055586008117294300969631480161450715953155225977876027809674312032520220422221714331429489290053997065332630398677159395360565420377357357871675814717424791188634565742997235842431916318105955213433389675329335727627271810550466338767393812876722540558049261990543826320716556883180556237219790810618349944642486312942172034445444584243917349201177487998781608415675658832439123161354456779659035028594033734023633431425137788749458100112404577195882632843681543834600827600220642308498149476541893441378279309636629502820961609697990209279277929377478288569973177883363310449714060991304200150652570446549404043541872869807658520140811840926065453260029723902697920787061593216681502759255296272965152174977195579912104653186367011402053324527236806267950427509762887948438414471507447279807110950408806622253342192614557376576186199626843387432691654723515259843115842708126870764977295780832298897739568832114026133777442045663720970789904559869020356995298710537904335155340179431273282786943982633949591497412080706292901434179752738854169342863602594353015912073410647272722757569958992492040936180250042394759031923803327980813029153458941760421535237877607811111354330954504345848705760658846981755240892385854703218120153582971462686669818712563269433861824149423143388407752978123570080506621990098851812499949433461190332247534559504409889417226104066934620511852793682965694812012135187557287863667508525149015773286426729107347081980755840689273932076812701704846321109099130917833548961089359295936820606664639434620934338288225657803817060650896118093058947785643397594770178410083755101846571209195030548081902048315004960053725422619366220533788857807266036430626962888391883807191486590970525154446897133792619545185144533765908445499213933093876735822865477478522537763549631292608384757219985384144673921306870370758248782290943021233132792874590330108390602452481336467031284214817609065936560470795706967307363618386123588902563880527757546258412465925416490428550895063872121954105888883455183315883046901458929962941397160377143277321620392670760592883901432672743797622864951414724394846885221922402507348941016178520350151697214362829499116509068976716880478376199811739889799519273851637974688637364832623502894888147910891497448444429804531829878425352161765088145104256016217669986176058347118476720122450913416043724274557876643394896286414010713614467749082034235525661261116024235801246457315480401395843843272224982596438530708615049368163865040931733370414207349199748462368356628455245464271806809406131439349870674800831105341753028838087762223972594547648744237235904057475709480202280552901655171012375127396288540146405433023178116836199391643285786599762352442752243776316403142150528072568035970918371120990757600089325445178662198530704040304774169036549088936278607570567682776336903530134441088047953805347120210915215626218483762057616500790239144092799042755681302290977416958341711990705153364552252629516528975685984455245942608072998582336267404871771155337853773114811608988752468791303876085362305808023860572235099424684399880531061983479779581285216053076160514598680940695020006345635750909819226527169452425988291562715021636918787644176352447185714354523178028130185641199275223267493649021820134346784978578283185007298090595208047519876941966847961461353471255021736530559043096142570801143416583668949098817008121826253057967553745709183830072467836597314703199628589245404202585779712296062586189388536888011523213024673649973450649591785491383377263735385444635155587942008618470561912332089871614033408213934051939603878181448461665389553562796851234367983343515000096720389655101361263510623866380978274987383071792466613117379546031992243684409114097515418889504255129456262390813483584380366000979496078135981888881502780145829161173485493212842983117572820631663255075885976813531974682013650358599153003871756430290574154010568057451465840745669290553934863123882924859742137736593806474634064196869528099384621792939473855011451707317043572832436218733263029881285894910940422129847186771242126831588434730278038274241713724058549230648568886528771982321739418205768708242626836290525519193788685346400296180353542979542455853811314378536332554746340162694167846271745658004226958109627499905080309741770352983069890526903663402532121421252236810750946779018081993560388936628762658575997868976481923578791477971041006108432378984744362298465861691440104075707605843004586657429819863270971353766719286728723988683915128915909415772390968280175974008613249463615267731138706345167478283994824044228199616730482230296547075466770217444841068847389478049079690757694531551378909799009062073804551796276733265237835683826917229920701799910014907632461580001941635090678701764061368786123626139887226395385157305683265251063777338492676571296656817527970167587051443666476209611146425859855033123343691638957266785953101195626670447755265484259769199738032485257166536233014730335841872938163630790394984047177952290485002687568554002677323897237628689272162063909974652751719993990846620254873963464424192569604124503380749398912287986596356864284708736533560114463331209112405324671193260655882727292111819038201167764192393225731416485375574989973802865834691338658037181073416035101230162375773119567242249507813485064397110305893632542576204825213506646619969052119506265718270519548773605750523101990222992469209705499312868786670913946807684646405043943022599236629468129830259522542600487297088360859444317900908201799375237878713533174063217079247219035905598988141846913925658067887210807706320795781617272041195824063889216284223810918288803964215499943789999657640318682614596376745593462277888294209314496409495543729335942178267894412210289350608157037008571972757644008238665555873943161312204353382796014727008754151981294084394386071958701154439774195918427166506582444813516944174066197089472641621162285920091048190554567912076705258355752098569517645159784123190742337048433474054067479275330184365126100488880933412975405989795651889779725607768623334794863998100831246227117296537137034325877681212099928167231282149176150915480542278808454493879720819669353656316573567201795967442682909321037859074927149506111364602324116172573085404705889237624879984972026872627985500613080143861234272845526846543999930935042619446185117294695852023632036700352590643808688986961672117197218384304803644602210130451909438456899701839207503040942235668542223917822476797819477896144512357873994870095036757803711871540503240220662510258680073706463508058903939702567150206122814911670557307256151370704051767365293873916271591941056341429275511787993288546354915247561140803150163206134944516413766098201361858436612425498226672668371995738558032340637112873357478432544735049120460652846977638332290662178554706493011588551514205334098170044473268540963686628467971227939609100448541336837431307605570994220623030126891017432235887561075490430568415538524845155501981962373691736527637671346083081117705920193709887411319874009208767415959990803002229584748193894007863428340389054588825679163858147060891527752704742456443175923004010564323329574226686189882867112989201528064856530943858063512784491099013806110131560215659765504955325890665692965782474185275850500223032568098823997363926685509603286301392349372385004694736022340888515650014179914273469138913636379035287504663553302309530674767585612317017991264594384473743414818719896466226271574416088302994398237489281896929804762355853838474594129589423710031040752764298280300467957734042936700815787533232930612993019261294876536802762923376040928520480230367586774833404603262039921617463913981725511501745637342688626585396055155988286733408037349836137363250255140321398515176470166264254151648457353511090519130372252323344570492281981448869269425283869472094790424361445810606378348593514726622318320514922275965814746199148038100436016677630429691025163715015473657852532076897307119675577562284644027643300887889996196017164530946700281296499288353507558426496537831273710149291215284160157112575614124150119252437144446956416693327009537045562930482479885186357946195377851700483028813044440430670391739448064151977986030981483176897702417035334261839772358001639033437269920515890270836380786895566849401616905368992886253105157435994557086135385682700647865085788263148871756333490318071705630517199994952327946541572294041017553709402003782022498573998977018818767739214262434220781783481940364668625281936710615834596419674093628261605728756693801896561044185571689456528484250618560547136920188737329724318813168014100978046779541994702591004116312750571325441203756990593488805102565531483161043391636508537063739468660493078099751151498500014831687455215269784850382829797121302436484892337615928592324052704953648079877008326520618806308946246135120011938118362515596813567441778482799998814130314226355845680048770041761571720329549174905348084505346399946828712206285912545489049032019577757983522577624071667133497645593896416659729855651844175734263258970531508536604538867028941965118071111477265411359242643603368849275629108717977656081214141629620429149224479398395520309079634636647898059467742427050392461212200216349386668352960338523604741924261427761942746384095499831615165399665801540907642461441054164851168277889745768815451343960970272455476603199748496508133010253378070637012852385651581290958101659039618684581208148327362584258188508106500785900159405718119786286687689111104469669122285590899081800685500734962687374418544894271545371256873338215652324535046045434127674119326135690210290118458796682106197679581707848149895018662849560332226771898203109793232238352117357561236829395380811565593628203117879873936370204063281590359812491087203917807060428369422123441070997123361759076281944364742248708375294851356643976726339636325365800919088094361625496270944938181691739956871526685670457532180876815307667391267569044594578481864088068102577989692820261830486480093805002525037168699106322694841259758331866309348252926648850668111180574064368403081045692923570601834663544266566543386040760883712066386086652589277933006409878900296587423697507366639711374231698635048495034639846892153673326968014368119111616993445106530054084708090339735208490696715755270696833494088650971942837706583821280194174804170332442673394879574804483301711701940142151956964603113300869462219814030753742126719411294053547676569688636888522818746342378043672764336484396042276161152133583495154048614089765734735831980620607838886903101048411250702051462486020106005185208244296929025065836846024880338675909805523838565486955703648309749595790407518853283844037781876169993075733154591522698371895262218062831184268216497886409019994881786088618286136324719729569020465758645542798176565391602767958554408484072380048330623682125508936725913733107339438457614567547009448096019728455403802107179771816005630131353194276867815763021386766136789936436088284662572771235922098059408373386998924970987571516444140758195476489156533999956905873976044461977405525897009448684444098790758209922808577507542710907405392039993330427977496695287945414164892965350582756891709625330388391531975745066925334931401475384349787086595185156490281925201381474655041256609355591261225068729107437025913339914208014668865798679763371077687144606741747962049348970015735692670778647686685369339144062858579903517017085358796436106150518025844101342571551875288681786421908256912993474159446132750613381321999701387454571719600872660943720367815297979451100087866218843381543289513660846194050008400641349006912411772281646021457038700890696233477627515463291375467720448974928805702849106964010075263725673233098207007333826161876478465917235230679545356000171767882314818464744567093785004492907542700162933594649713155954585498978544643592948134607937181110695461686351856857235176524846518610733108063320111309226987891336236716623087656181782941848400767734376510543616273700386212614556942171791466717196342498223260448444795291782495184504476676369819337346162096428641914764236323642731477551140677127091814979674130768145744502643536409645380965026655813757799793143048123174069544140967548515673568981760406382308014308750325952195303601645969133241574539749628605843854266120665650868441784912168410235706677203525609941507680422666451641305191564192668426643412344380069434170601301252742740824915626446068173180059999469500195786778428814313699967782605606414541039174264890228086019133512978186398750485342272338444033144349637223761683572434155627575419539568465951826989451517014013668481782747447404561981914329050931033258974712410936584805225761984703381490440335577617609994247643070029454230558115460424169001989372627380751435164504294819298648086879787817621177467513650409665631342605220194596566730469650204378903829485108773405352889767964624064228558134365422557878974775373792594037070996076646079431865145877871431506808251551728575277657667886132907075359672122351120746973568593160024386464014423589493838679954583741229567487813774302507471601193023525787722295382247017135511432763509243888759653636541326035438410193816599039659109413355733375485052214286383489799775116624102443205056131272120606029128731957169100893696728233441035498495542452074090907218822663830642576519134818398052022212155490179885651404614741610379874542246858605124327273085371383111324947206107181087691470362946953918561593544612595177039492545505582243944327823973421894231180866352719629186568317128719443789335465110077982812861450684721501423657199004860464827474817086313853874068216551474161245692463571204056281933576183835135234234607122981277167629567787203936246356231755564174944282828423135863621176117763279123348887307525644631101336448931066328124974051298160467581207336719911555493686484908915828777996452171977743828244403432596234637120294445127276212487390399254556909100465340523498257002252366426459640802617449532849084362425666580821721277004333854952817004656079688237776087372091538855235029425078569974943152832389229684407463840515247992427901243080717903176412068519004127732234286681796967393180444269501109271172429579859746799436405003399515272345314906982154599528924895795898118533103769355808965306868966374304826246692800616171954866555406268031092974614634030114892428710977688637994411197234624712312284653572111449471949809798885567024897039710813656513683042391585405132110987783947951397014792675325854672545310103712273999509704387510646291891018411728452850576693311110595413799832817517420805271572467781858589316426746428813406398537161168743653830705167576482449092926137540571012990126075990005568575732303348741790815475686722132807795622860384938748076113435168533881678453385520728306799177099585955513183065172422919647089641061470252473928458415827582945541073775029815578087817382415511436887267812706792603200658790210235791602325332677378512617319835298303881439707678812852045826486688505341134809791028514368085851209104860966891756499039078046718557805125788833293848858926830517684842633286817535208789558347760854858405113705699038446778265577886759942913717859328287481929115880719796697211652449386125419858832949785430554371412004941983536092221033415234531754501009013248731655234658505702457478326098311658951298035974191797113023767997897721247325175971147917649841790187669675359404516698496942476902938995065949195874656486742120982420879509843407798069828154267919534830217688188771262156726986541788064616928107860559350558428365452794552689010310539745155612964316900582669457439881983750398781077531263875370214216955937026922505438122392523389162301155262318416951968273356121946537003924913812759021075691524224243796941992715970382472283755403261538166815193661085822511473092218387057668241467751639676367813338516747442454556084049656663187091354394726590422495483264091867744532727231606355738407259154255667498783529009826906492578417629452970922272672393472457731465063178309393898940098598289273024188253997539120526440510413565550477174770208073326952322137581410129343926430469159664512336246448809575781764995481485126368781872162781289133079975076882368974500294243125610676317088512072531839635192214752893018365382634938551314707268833918531294253393189512935203410860678522531129101376983274280993103411437194256467870742030952483605015399574410274436103516462698213939270044577430817630062984613141030776492055535781113768817405425009005345520698334904614527848733732440950186743833443106060788938578095917884749603103765255089120295701701083387163395842712877801745016002317114293512825673348142435158828888726079628917192572365547283756425068405694443377763022058950783376376247477219169570722046405282109573519802674728729022782983188493127999274196272681826038033281516500751440510854057276183655578479315663354956275733390418759116073971427976170541032147072395334893895030006697338272295845346409061449355663001584542801937022082905122373769466353364638651198924546430615091334216721611510521570088043217817387803447426609658454917603438862705748447649113274068608821428497462892702856850520441871171184447153020250008926236698502649430882537069631604379582920696813040486035610766886172208507533643624107966569714103127974998890718581970633267042038659558668826527935138586341735304751407853069923171584062418900433219079229912347461442421550375946974624653173500168697669208990306741149158798109785625861424732661352599326268536843592268631991730210588409597103883605711375768561689587905078825013716514248145737518558857264679387631023883858928948734276706078453956315085552936947477121776610550052078237947066791616872368044598196901763061130275540190339834070053003486497277021707787884210537971155330750991559099846769778700742822893013787867362795939244937883254205018117623903110808739253086155067086009311152559033208206521710707602685860041529076726712552815100586803683851447671426788089521440287956551730140747045359150717709533671069245427069009287606335275928805799056372368129013327783457058666117297904638650883975750151074249983474657974060245116206929776963507395348403032114754767584694431238678269091974913937562379623669350605833841714561490143013488586040292301509557874211249120725839741802008983870469877571936010414274185567323608774987340472589459377777055458490915311413136919824958529379273349239893056306295583032108959304289092165020149400638556139798041108843063907416989926571394669612415753032857157998255746318626336196394362848033454685745007905134225169356102949719992367847997900013092672297657994692577969248920702008599977224446307340905290439209684907191722942484340513481482589830627327314434568164257890464086330209444456304354383021362986629986130766952289528853163458742931238316270764684353761767610318832494884895572828014044670802959138782381383753915859483366137025787302151303244842148248286237398250616234736460241236266344400057648007435559376520279683462125660118619583086783672692831747880830200953782798827215920958291980416810464291187093013616345555047082607271373451485656877200383069506525590268636406232014627446913933849854946863672395820148643879298203930444101577676855773725992632753878641133047916038521483222268011824806477561205708360420524850833607161300504729565063770308921538763060688734710587397454996825679434602182569041048658195824713926654827156128030262955907766359279536975558513334809975387215504186395963203795139903195886643506156053567473601768355320831230106766996678241138653942151063534358033592651977967386412312576470333277133973826868528824037358583248199972757574909619858471935842359373769763617480899240372463020118495705258370266370010663592458172289955480453270006837843499672333617820515224889912623933361711396538540298901335430117716259564501280907503123946769842385375139192978349564062097442752524652685800623882985688210274412073729551179695986979393603842019535587464749760969157212084674317655081410425881849598363973945554030380425226508338908545253217127109261055009941000971374889172784740596629499138499528562805928340186989092484770741242357889944745822365576827250297352006149658535169155996387471405375090126413787156662843624241585962951287147443628755542805151407138805843963335099692943134571626029063534613575960685850965256938764925906688357444251949982926986351550361088520419661130105871605457983674885145468217106092998381251064779393084607173973279283646058690940846414641902308279379193635433869151279415640751551125946514684461553354455310260008360976061132010705980680317016421370962509904810129668810714662975861975606254974898215523932260755541166160348935599779050586916953635296338849865698117656781405926665966353031889561285424132302675251027600734851243258549143426845721595092157447669360498909636656239546026154109441809712778667472936226115055833469130358126492094281937549388519993519881295006406965595984973976696769204327284076767766821638351979152708050355864133932061752160046349928966302618750486201237622988980465713354933439739430698759339001982460037447299232239022230141541891614558388300813521495020472082745241382698114273935994475868086296628074709982698792152019935439540381065988650677331856973073992293830086330434237260088726412087423389736464099479015967225482647075884954043127488886110034763399144554951152299951213201690359980933169394946782282348312927143517188945655277961853381090225634994215849963482751475726276585184581188119347965868508901507017785234922232465120339267933197549086067082114505339042513644140184028182585454223952704175394966927282113696147115703856626468603929604561986784857463079230019625972053670323703094513556571026648155815364591278559004796535240211740984223956793578605249810135037593081223891064418329850535071996656346267419271434657324831139918037461121575155489463220589905103123648953281396230990915350837220909869127395620207133093295934805781078572985075614425393118670523096897132179186482817014411303347683210145854488624920037282825156981894879878810777868529961340961939342567061594352248873824840889428681933332198182727530709298735421045318728604115974437371410736223663051495604080659880961970329775321002022335315490994508489183656242954815089884176411392331173424470035228506097920491346892156518503021049776916351463381079660584704092433436238401449841657460091596817255409867426947148238921364282941067109914792690868612738415626308857956566626678151069952505482341724862160265472590201725001292931960547147278130584037108660746223943063633896009025078517406140465219902618274843587344189998411855889259282193280944014525693762048309106790593491772767853443624112343307824322306717730754828758056332014625840367568057278531155164456339575291354021570138503640485242660835611851576426534728506813703756576797732144805218204404870662271090874127736676858103757974628760733027354861952008762615482252750530866791671885998152387449477360963124105032913388101948301884307405388997703020923001041885689853122870509919898088284876125828341545163810227088033854017317628557853418718414140761662989661568543423916712488016973303117377709801081398494479746282442198141937918380016624691902356441090407171207928881196886362732061898741220744704815904669958749554256049697258416094367961061934832765178732859285396216670215672516062156264830541200846641273431923171852747456644021238820437374890302361521384760619640870999682240843155209148825844745987126321570520376281566465034267311387402680643709239154891799979279990813364819889189060866612691152886320753993340597908346524473177835927764458806595130978276200766625155457750662242705040659504067979779337431343773958527533986961138217084032834109086582969241009887114416275954006768132666641436167816504461409453833713414848059249342486147552890770083721931584491071164741363369943926941084836534095038031007374251153189288444623384166244413814530519805451880850119526385767460755446062343140820276468168409868372981019360778809726418171888803242446873016168346328138805951919412769151481685292330342219165474835646551146513532805318420633743232561818877270573258431788329280088370507794593965552984142612564408546362731036671408632583621899365837843934473933972785191635708266121918249419032904102550244179868987030773111794859092183352078763972448249764184331332746097783855244819601691676600273875695958861453799810408934709310421102270829313052055334809359260778037107017543574797558812958952768504801036312932681158937257834639391236479666837311905780509477253537359382710239325627416468180024917808575575616810404024428405325114205808149832731769524575813895198106761619148599491426084214667063093544755504985560615636593245787353075358222645353709394108078465324659238052907823323326318050107811230207361576906995364681254532710021429350084159726497761006466427897271925494235928971958932791623598554379314374690639937857106232132240196495900800353270993891596993271711136183797597070268841252473950016900881508436688272424559093478379264533548568722333367210212206317732469825017346603123453911839464129937124219457063378702239704420924029348495287516770537403317217219538846676945352609436838763566717773799922131847998071131526230939069353470904420462130027384141104205599331507650340067483979004687996922680799149985657414044508478563494727178315242089572436427047013087637731647167087521305738458981851111737423957563262397843771341421688560621161012112600106788062385331229766496707656005582124410467747936403545136680860737835240148339423177282931789670729814284812574498249256962089976773651102209477224367195471405376280201606377739577321719172388708253054341679679597258909054592391078606153260500269437073824955573358301230297725006927147059722158977472637438643490371661513734005463390275540145056782954468011063706626378947944310321990378612631087588629155836809914580159168814461078285357982472695352323192381377425234675507001525767415951598298708220833950166276293900511685663883321092141373726332133405347578577157623493302438429738736584474284868824994458246911718301238691706912781674540638492270685680341931216884253787271495736757522099474545932031748035755708601851652230194853362421429075415911043672779414943696205483791818567877030435222761179345837043425477335189483508927675020041891246164373634931864729336579478995932530478349516441930419852235348746048361567178850321678899366819662684066231772367693847667388436038542561196595556932670427233089406624029676617758570327306466611096826544968941300334604810456083101073194259538937174119603008831293653215381641113418627991232638744452947699405678125146579749082942563923959017761347739108160151690182410367157051335723250224447132725730334095834864812229327214383057958592674028149361984210461690543816476102365407820820047286628039414035964566531443589683959892816858536823389125206068790892872707254462424283968919821669453167038005372085088308746176140505013841829642492400536791446629629995028144157992099598576419390898216163434449726365027599606074129335741104682207654036198613524925887476101912545206858161030475000738655234921820660030586475025803893163960241542125006060970145502562621291899162802004153300740313686517106431004641376472246359592911121637675329066797094681143375976071483754046355849570550791700908905190300933294396035435323374437857209539782096917538793740545955693569352500461006053836258850048228314722027808970573759944744302904014603117129169245218684581977917862612827675063064820545224644347363716903285648507741490310910418127967248515220682096011115025129747029763745108101135642160867198675729350942060185813476801247535605179196582198459811215935922656574270834803675793805632554561381164281864514856460718067070524863896769915011868733884515944846368530488687983429061362811360552574155879371879743832860573877937393774414226524679624891450263985668691353408019753765837399843272755778019722045851396490501862731059354812501479899355199569659296258546787459328202015069794006789724388023293655586298000615487687490899141491966661895806358028971030920360375724016012557944405359574546206648822651356543459124945915660038800169311157215413619196527692367361346700141103330484008373259561345426071296683788050840052838785280803109067477197691505432642324277503420183162145065915805668375892409268747424960465803292211527070235587138451759677657455960229888672969596171408156329127665885227057861549285863113768358998724066186463101810748873981613230501773871931364774805804058570053236232439927181253480464433770832984004646466022613685965959984053469949527379998302266656086590284778154403314478259690020944692081157704517371615328347248921717752323233801606768042108577965502112930323930990534584513408978208249287516734584823031687836689010494709563253343336662254770378655903915317956603922251931044499713342740338448249188195030689482636792475466577662787154768980448474975551686520818782420069680393542534196673574205310125090411096440242783669146445791317370471736913484062107750748549408505394199185785150700302505658445177320912936488090813967612042144958404089028615725589720629981069866139312293398112258143681336445378741701251657041061466225875493858576537549193411154272722704467365476702300558005496266851990170542101987685379451603368672492581501235168001927696066245583550463275243634832259197512823170333549748919623808522762119868726806674508529221038000221965264964551907554857254914397994243428520259990318803023555391745356806671802504808281481280047691869515271490655701412962211562503785739333180380877340134855286775254027444186901429552860526311708930019703753849809479590535475046272563999894408003993297259639459931932053155003828434629088432470936248204212331799606968240056050115142032739792312022245656549339228306950726727961212858804056682303519332492383151017929147749542087501892532976176247706479733153204727915159284045843067885796760542914199214808762599984202600580643417353809150187296128092124943996660833278085523241756650442889065899356362070086272310029195227375874733029782376526980272340213859129820717963332700789385731434696856167996337604994255841579978531802523012064229650346067838300088853156602268634170308466269487228543971638560575131322070206736584007096461217771463516626321235578066258257196195734607454844415608663442526675141507238607616119337968844837155831484500579337270584430400637415628772512345025303283372855480769930128542861868695269010619578803824353674250643535134416130017010812330436209067841984578444087801118204447274496725511909785079432326475976606423847185631013043185028335985015016768463759128157869222216601345782523408117696214191609402878691884965122710962188315301538558948925490633182671262565549834667727311557521149783896691677061989896810531859505315515772639853995345418834900605340479092267412389706979294136087363505468277566648651380101597931670104680015818738933377309938028297584079716851429507831176296519657688733795532740902459363575672212293693107284636174473224966553772530360642388201855503986174629387524739170030562287568983493708508865143622763519952086176694515196582274908557034688600834907132282766836035562868556226140138658138232640874823485683673325616094507346560470234387632520529139107532944606451267048822095918110069563088394155217352519384028730856802446929365351124387858033557859131397679709266817830814091013597753693341160744296819905276422929946347405338348325850715351801526947655645076433083265000476973540085885812024157044746911032601207312357564192158941830291152697489358861222541076629396506921239570526752969800907723728529139229169500723536270735921161194724182007052925695824870454571470526883094798746985786296458444306947502227013460317182559196148898659960271116561523966670132910712433997956982822832649178181951540624400215842392131671385731046109334705823036526243529642886440791726592677371342386987964797980120572843972331221460129879882449897066489153661816370472901157107557896607462297689843970461379576382119537263747770041719083274727122205304264283074141464821196362539778701788204850976313470898486158362433095784738333822322369437262046886143596592572926543321006149896579996457508685664056553987101813210124701566001072919372893441455186778525124951624800049329972405370125046231836152949833864445224039029660727202379689500986544177503604717788377987766961639476441360511080480416896001570205040954358774350182653930457240110742530920227786022814439411151802163855278005223772778413351826381208687522952767140692656949846314144914904560769481234223730036228117384644423640449441825626682938582202547156651701476587467502888038083634649934842994022423437162490790856767868933897685768799998632635796229851400208461490757318513018966709769445396466773160912938326608919661965217877220226576101016741162619793713491203637806998494152120325963929383557794144822323437916599265342562530333418283849828413850752435819725812908014713988109332756110475276618357314943777062093674726388871033860515023584962319046483029568777146216661968556614228813363646239219992984743171891384780650281722428128932533545374145680552270383135299204603074327202201910073131785217797378265679705277215631774817765763819133567766253351820471363158550182552178745959797995930984022549343652103115880363405797904110947599058167877525932506818560526332646659776069937990449808189366898926362520150953437399009506500595136742897429434358280740214134100040590639323784719304718953643963145578795549592132620371075263532812978708905749476634465179275268175736906650339108704325325011361812558706652761923828324158191550426785155916659585554432764152975594856604229685930384734485957828048942767985734406853661734475053300054811701831664563778761605632860127979909599366014687324057514159112197611921283485490979180473459972216054785862801452616743794608742793340329261528922202442956730707319982205299712888694372728112204002336937535981957863229920664440528552811539866212451941963671500106139556274465027094047485193755666250963211083045933617570184289645000991772394388637252291208535995498830634266550666097978243585857366536084758187544480160374337518920039194453331274045396002076857145612580782664362353123342933053933258124960816349473462424346649153825704907090846920142009623484290562817133537302742607453027204056872435965755470644934480597950027099883251337155495974243151002044619903616440424473702667269825374669306168223925563456119186416621056033125124657500105086769342124968397894209965728699442103387803235988354652457346446731399957511435752971641936507684088049978326702092996846073495453924856702634062840843221655719540640000539215457702730235683494708493476264308863461744052441009517150494051917095159588440200535176003701712028101170779436720268532759331073341695740034109261518976253098946314866530154085445676957034498388587094654848816961472265997876676800712734493889018106726106049429255213915563904045532303654362978580362434911693813979996276119940211944921228388995137775649793327899965178118197788863271366978208330831829751758039178615116976536763569718865847999661853137353408853317411570688395495757389078033063441230729715899494372311027630554625796510981546105926611042811236325837032028623639714973962014308194272182707109277057013475588444092811973377156894742489376456124883540693940743550380204540831617800712149791233971031417996810019811460472696362605634328690603852063507340739806749567873023160430787113058343848835780833044696072530585271453942515989354671111360974645464243335934150086810635496966534147751103502245391246609600553481576557201846653557542939960840907097947250372786009280763135115714639655409461923143847130739506919448120593468549097495283848261298721523116227750997730554018758175219813652626645364656671094859606438823557834576427070539718708670471270423765774473431574282354543489507397896196951859194899433950236143561608145063407377034695010235791681406734038678064014443150660376273920659748150393716055421635555191824563436599509693451707157731719006056120995303157314136922760296642685956817873643749766524438014801705009895855050680017386860082996729708466674896242770388252259040258819494288055547729754422682133619776513039258730867179157470433459529493391113023787519641719543852876032997384343983782289183767854882372442698099747334077194837191699024489288607217424437017781179319672869404416287392535827659604720448659840008944155143047590582405451611314517539366235044811903496292990362517792530896737794393072703709440665278405099700241867625040774644420981294688273316061803822569864229893685034368407331973412155903631458076406143871991930364514863836585791329803952888231729836814213585600503987540548025477102353289109224372633863963981431334242832050645006278102194925294827494820202282648407351578057918120124022295840401492926979735127150213562653924605404426547611566773758795887009057662248190009870950421465385634568678710450851325317557354782695222547800853494318567229400076422703723236505290346479031246446968738068912261630191315399312767972568722094563426257530950460181297302447637285060134745131623276942255413989404140574833633751423803924744053072208914455981053303974554436315627489801814184933831183394389234728704901093520592159630548480728596432438257650568917179964503182817782641840767477686724157209327328013989633836768334676314988708052861680677457773958173855097078653608249579863911219421129707933091802041951430886257843541528429856820850612912175056156996082196392778030130539381469349397385424105286701392838294523040870817040461621439275912155908785576069446779648979054175983255408970373748292767689680754068037624096461568343953349391529098212256826785559331265748973356569646930284343358134997631953045703650060359894228565159505562047712298022965674191942447860015417455087155123573011264475542851466791039292742388176199385895980873212100824000044434397695764702544564950269423601668190277063327829406602503579933091346761174367607016186310402839074209097078143375270480864649639576646424548176658670814159636333565684308789287863573956924777531606928646177061608439216748660588680646107573026505535193536608588236652176777048858628502613185616738552593584948670352622621199580347109885439852250948446192916980527295754544295797493340310559429979464397487733876771228297884319051751823111405478167099031422097129631231802782293836798163705095277963995685903294925471010770240376738981665728174676090238261356912624266209846946581344419301427031497317854335137404991800563989195059043585332083867070040117415306418147498955276253880945712077339692330884495478061121993240645093306227265215470267842467905245565307700770505704853869940985148820501885725083037481286364598643839234710968343887707507202181753057650599593731549300462092532111168281898640647872782879576051687824596057342588637160523170541437513035202530562897202458900218408010131698227759638396522624283273751823394473177032935066348167909327511045402644465899982234113489825110482287080516066746945451641004515874116604567677684955753319333622100748809100341717592245726727263482363225308256025285987245048197519513185078685935566096367968318023606584916890002474858425480388892341522013212019762201533544030586914272301865488831032017200110333693403499989404124322840623652922550252001570082171340408995094665334913959269185533882361039755643363375015394238034334799406318248255842448577139205957415901154267649425466242482425526696759478220103474443127117621562129605761136765995726860561872499396163767895715314556510912679969979349954683932992023689709449269871895324061627851349703342953511959108005591026391307933199580995261521510988303522609839781782244623781066808558488708705410264836347766188844560215345039444584351164016257053699326416102802569453827506993670220590507663339427462372315440896714348055263920722040011394452427107040805285833016262377751802240367164385013636894143210540394198759484370846051147260567609943549465961242397343404746948715441802631020598869704493696765934283749294521823264569274526072291808012959197974830970430875319615964061237555396845351432112478104006458585049584626367003846743548487892266363274436855757464398872012954537493730904143677000324947227891903207633698753513035128998923987759392535062728481331401390023397496356645145799602903974649240996389237270775495907967776610298741668053584535400587832141430263388909962809346874052878585913416910443324986747761093108566360503878786076747859252146880733030986815824512180276613715920234608488154136544179437562755469309729944254054730386128812723810337489525861035611590215006279742958797552359259930884569644788905358583812527062373058481098766355446112569007036835999750814509026467017571079832587665721779373857882392128978647653768710250514204539072292474277764947288401883443289174256862152456770166522869779815358800689889791355971629367236707274160916009768062811980218342994848748868254624208060217974857208118228547959117849859289455150490219733064826862870070882585156412588122155674878536523532858518123900213930181379203529192309255496814191536849966988612192393665753300168194929384526949672727855714442841308031748345246861268775747808881520408349606155501114322237707354519532407971397350516282751786200056325844963552335220080028192338410974201036099603697222854156092886997609435652992437854167666962639772644456250465485660633356811469300335813140171103138417751938109215663769229729524936971416139097166455457296535118556314719098142295033262044648466979563740009527457399257397483107852387369134815334838876243553790087057033437203758159978312810505945057532516839725122742065886188456900121709411171664101228483098818343647112136985301842437676006920982086964177150268326107411149207921092635802832846657107054946852420202296267445460778777598554629804488253682931806847829939155736211370655035680742280047303434553279184607130466817684307264505366981740581665478228002353690738803985592833492705036377838474842421273755850960088861030740343756117965540904920759762004388797917549257754800193339378660149202238084970233417681037707411971382583465844369183480768049693402971627062101250233101715755204899086741897505074986147502685765658713738496013897218119877004194706702730311766353548439938911196843996307372083960900070688621614494074676366461018698527838760817292769015406434838822465084645366916668150108009464492731590073812453475275007760086156508545609900670408633070924472308091195383264603340554670632939496711374202826172179538794312683867766791136723108251757209142911065966105610255495116057043063999267997345352774701501104281737207256496411299779621755445270560633826208919188982379162828711180145172225239390655772186157942641946407496385387527332913756194190561724937286481029182431321862637973628712637152911300153192718083485594847906601608777245822070098434969690981193956041489840209574129565087861056827090338165897056425798883049582384515826368476357314649940031235061343725012146204392085148898037809721216994384963161835121760299928748114802634248119572166743911993459830058779434259223309893866182018511891207748508735088211251638685727158197981692574708235533829510106672224760979004698706395003243987642653241822570570576882916828443406813118598267785916135774148415467427271313315577887179266533915362400408726615592542444507162903410343850255740960707748114679836826517975342495726367561010202627240892426953473207252765281334211822413638879727173551679088444970197795783734531142072280242440137300466740269862844382603551916879536295664290671246525622287866315918181407586479472984015359341015694941662688306498835935323897292786816121808844033795994074146156377220624568635412657579713034423336781445203771701898560453102865190642399896400130551410126623239988379174126827324851595507314175070119048269336228626181189848630910008967181724116984217868631637310622805819413012621010157994997433105621059654484961698593327186847401170356405467073066070277533438446873558595091412067425467313124275767680288502479851550747695787257594403360106145507143848679493542802997518523659300853105533974230614016549201285764520968256024459777938698761449548004602625878752388677891947997085367571224495528312169862537109221571365121698717186818268326058182418578495538266491069604160990698249422323445641297267018876087832030761727579549531014117045768521896220573845532398382037681584517938240351007888681269372113789997136502710565323469386915082799426175159532139466530934152208311378301938049166823368931324726155594329389977569427909151174313526634080519640493556831258813781303354272209351008644213520848682851484718858269626012876042210077172402590431319054586366550911267324135416578176481981205771836605450084439062378154279141307894577823496149225037856070277402725065506443546928754503506533509877975794630632763371932972137831786945925633896795911249843123940465476541977838051728878942386015991538381799046773413631626173036602040219265923881966100733212334881407003332442543044836294665149154878159238532891505398455311251728295886863709838222600761121575439353594671676872063669177412512485187076922739979000043529208601650729668465458895466215068086580566361622320731849009258749787433804913728162997286606933973091946198780159776457803150312486223019961256821681754701933234199443295982814875833946707064466788469107778527412835829683250119177348640659964924442968244422809169421065075901870523095922846239092147988289665087652664554565999281958444651785048590342271635269524605513956982047274436142087277254501503041048158282827829302749367764338572963982975729614111434807501284962823269879029140840415073247068772947869685479938708565924250458481282998413547974668662091174202934174533269717703272877343706851834170502267430235775070556011899360019481420768550977590648804284352594819217374501698347054401227007352658969161654338400515540326864313106908661722145689265184086554190173109109133426796719866103829633112393725783804772326674432970914224600553044782213646357302769446198314043440048840129862003074567285413750615529340380201963757055113806165773531164044258806431447598235032346222078375049210214038125946794657323704065482374513040123579823511651820560167134376580438655719978158125110573229740557250805402778804413220741536772740509847768069667986009834037583436218905662036754879608013633074186884197845499584923132552372032090875471955105519691284691686000038936065457938922003988641645722960485461007939181949138898360748054828736438030157777756058603360505199611593452178120370465520879564143741977778955248529956183451078213441500656200458951284967679204597517399454674116369091093047231858394205228274457526466302420012253727027319182351990266674186885806281462620329976858156778393885454578987003729925822932233113143172573835312098079441712154555164874374973750046815827207360699022199435724826485849482663058936543178253264237298991186792554542733501403681812097248473498209932102640581870707573401047358855067658583817805277894361974771586765905371555140671354232225213362722907388791035982416159407949561466600192301126525285532400621562497868978551969086877262396077392761772870066954848188012690534001696901477176235504685008392959685039019144173679913903822279929431945431508948630864228193026171600819122192148522128087747565376638633558301405790999677111691286159034593262489375337708231367285387707009485075875898665150674620857990739144257053100748945860032686432865874459374583784063002638221026114696473146079867612196740885053422768655605697771914356985575189573911600803628850633055751945237102901273757101913293774896535021266878014578986786338061166282617293134889208417952432447531401030757999492194525310082212305184771140776348058248274534686032284259983763257972453080821075902372450405351240867455889218762277855808687221486837362409232980919839229604312069196784974656673809623140905896304556690926784484394169888434153016992543702165858829266358201164428701770540841337232402816857452073331205363598731891949164242483834728861821054252850793994208819163574422977341785781075812650558036569567631108531082634740560303473724202853910159462672703383313578286737506902611457200559488009642414337429807549546790922605404990767316946946970634606963531567665479028387318292709668775946976649459196399301714273389434661807464179849796968362962013861367093885993658185933103000379902612578842291556927853968474327520117653733984432849029872381243338313079310200966779508042940463363471922591242727025108235008833072289714965646852162395889141477054654287289128908029374329930715341236674646736352637719377029664007181982714053012574154775924878447897902758975600601897992849995714707489959450801423034516179040559633716031371952372214666089978890677728590767694634561257270002379149629866423112260251404799520109214637950873843069008002661381827756626025216421266280156382425254843397935136507776505351217105674922015857018826239707667857543755582145943115933914365299337351205329180835576091446346002158538706352906174153040662389432886560235235745872020749652690822974917209198037316334709294517694390325161473503658028724422076994229575818774875979088979510370534025003769946330959563218420323786423437999361491796256709271111735366122255443535640445958302580897545927604729453508671801645505016250437814240884692007357791675546895492997565043517414906370886517063166951528741460899148020355879934495228328565813738533823961862598907807718204595000433145318981763036230749456951501106606795124900804694469131745550228945539415553712878828965288239852928198582990249933741146128286690368295337663211420214407491320842072113528294310048993746025103696910323303851331735429107556724272748830907756185537637888469135438691484391090868748299347975165140533040365938304570052009531921946035127912416837189088108079238573411025268305542590778919356481975565359937969191371509275501268616985571037393856805655107027798110410140810388522818741491857885751040313400083179553712303218801845647933482164937389446582773892411680611755585190263749695992451902559183265763134958082892331696898778362938374360318354016835497623039819423679047891600265995316224113506432667831572577621832084412095014445856504480850109962319292859950281253906251004554597102502859868567862943532563739051565864920873251959784919171188946042992753886543273607903445929099678275897769413648567945611984009274188214947160603105361842197980497798716081896437489404175449213612202730127296269893613226396156380483871364499911287832571672090478285630829130671403870006601397705693273544813827467293083278228904230000344575235067018034313705200596130446457155865550538410827836621810619695681511198495185078595860286501013626264715862407765343373943883586005250220596240660609198680018253302964377602175929587954125944092572769753334745937900507424507276596166755590952762245905775893362029844521246058497420531734992732207043285876784211425738067505492081056363407415296134573964702202157377192880430394802798544253386550768016012952686288670033675173115117284958090496379308613553886227789339674006661247808154233360122540034328882319416879643574670961212322227845210280130995095170921574895040564691933035890228216293972463842850020144171110668540954648072705929047161198499275063342660152426421145955256869291737238226486805491344336031248886719263887209402178345242650194097262256875252815673900066254698009194963884578860402768286773040813356725460593036309075959498248689364245921748585818912329846954088010600822129375825895129184433373974063559277344290684136931628185488531220001346336750481218668529149546125975329047290098172540756549986321694581825549018649773276127094235594262793230944455132848803257360692940231386715482054279820951489027929903128250967697323585062405162624352161671069041121841103475246518473588291641742673656348737946646779170813532433316650154197363562277637157643978769794986376848727638170516626664639554854786432817311045517182227259609568745428989845502513655328807291912724822851970394212719187944707392032872639510706741715640776943828047408420185234909859819525579792221614531577106162654558583504088160800940624773859112056387804569942941559613720186545792611874477851365584753065535284676161523324281051096836187523405934466064172843051015708349730613680883545773227203275808773422408980530238586218650743256892576126065899456793213157295208040116299559437858144898729247728523922170856553003444866605778466829555907419733577138960971194243697601728640496986136927872936090661756650735792959339875609576088036787441806007472993397645263088836883609194391299299817780603830249618027878999471649205637382173516944863988980819168919253759740497684611564893171767398287967562040139529672575344864778297776943212971542719605266311694230127826318910060534655831015322045630637767295138016563532812236285813898024409458784743042150568517884851767059921566400484377905530108200467266604220288904977642031638328475419175633073959201905067416388143612467947476758230532629617676309470460100771639134709490178081288356138441409320897722520443997097451809725999213573012692986481255241120632089473056048975409650736403214050454000171218176303956719769196704721990855089158148806069978467212647505961521785453800552312451794851008971943598724761785687866111671530418854672096165651572450606091589699899590510343848536425880902551876185172271715872740820643215471634102018143010629970458950137749170805328920484973555497236115112918897077972316776668410247079634940581003421688631946203483138241530429649681356336149312718014874522447680834652770242011210042865866560057648481885499971940812653266156611380214026756323006118633670373927093992882209514473257572385600080522886331242475875089959596476935572902885844497639058555312693334750649672811952261932274678646902011844000372602154110430912746510703057543382641693161244357171663972363052910756268407365905240951756230549733911881841827664003468026776365487907054012151831033314534840287825875618495923466680381333278015926620752784543064525252109086434705339472719084863702177735827620787396044480870414146728601073414962253297378135352175993728488580162968642686055172182721429986019461859262455361415187107725626943881171853701469317409660302904276270120204200142161417649940693072827790831956719443581651518716289574810430214285184014649934003737775029363590001061996075629346968091546661405283727337067922710422280736158903156879500247291244464027321163600694870184517820927461935280872517345171108072808546118903265639919512253852462865982563277910794646722506431522736765434983079470033929360769268536898500808677021821736851010901362994223784688179588272066983930078805696363232445665197617256534888508055365723831680627837017059970923770378148932090415790681370286663454725565889005509662053514906772324686137445349688355129994388732683036320011699713494310192712663898785215602442457378395847240387122106334148821016323873630043629983033180592210554622771156858884197818791787032796072313272085567457560154341876942469154937942807321035807949233650578774007577594785195396095445903304468205275465303764887192017275426834554383546322692514428110819705184173805667037280696634600821359395796952919533863972811961681955746552733001701751926681405972794775548347532723088319020270949566929815915576966467574363617668251472369299310389890562261378449592391695129700493507927933859940475943749186429570600838176735708831182947332836776976900188220942156310785227346889372857172338973475480593156071216722113058401148286324738977896243908887020566106412287723462732077712727525032009994563020124501387821453031789579557779358308049291348450916671169258743809371834422344219727551479053039387637959196062101177077460787698027998883219515259446868384231688875545879986058091746836078939453774457531237227466286496708162761173327534177124936823476857215969298630947071357818783982914974898586772660113242715477380164048544473410075362575810569084241267079916647625853480591725681093312765765000385077641765735204496711787294951516275768004789781052731975500105590272897332589905921009035755161313238570682946223321439669885392279126574675848394217684976705925544117117407385683335793966433075648615429543812120704768695733269399985688763707251115133379220716964550856979643010149853890436948488046141858434530702665447318138783400546494232438107840907122061611142951633808090585684316692433668108012926620895067230516819017187576762957083991962486662349279316677137483379150051093496697720857159156212821274731656868678646534846540555470330296111545272095503145372290258077207411762630654517995858482101903795190940116603826646953229727105188662897289042310088187575214212147943283341860179106859950883538893554539498507355761232423631956067159824581361743541616676350341028344399773157544777162418019422086155737505741449452140563539010283667474398052076767181556136419135184629950604913407446694411774120285341172734867866662461369749043063385108603843518500208891404646556933963419999120975761303741369345805273170927255371229420008138507380724877499866668665076006351880861064560240867754103039626579827743630771172489069285617020951770120371257464596851398876639258903316355719024061707762272211705776804962939621749215417786026387544742069950469656068521726433726472060994192761292206286446936371947815997850423611341139054086984157392514204277164394411164038963218222091634322020165347961312665335561946273709556047937352984108504150458701928255497846731637412129831080925375804192491949425229037567164664198790192667532886708208054470367410526715138698690639530062350901580570346103633526563434753052683174026143990266555132728294538717008429616128859227462918002946266330177716702046086600785561720608979069087255355868128895439628159247413965565368564682169422214716804812236934669377781484141691334825527339318370968754013315293181399113355688988446369939860323449680147020158750516819404741849092664194337547906826957499383712435308403614409010848112763101435614676617492314959777037034468754344188254147882734008437441011482236185699178187564663767644775473831745434882084775371148935083989554748480529588453298040811439025865257291153803614719873493188177224977342251377597912536303506342537712912679355238242733430815088604171066065358626359564708338568155026721469315869080962242300839003406469450656572927565751885275754002143836956749853462558786830813769699999644331575974507530694153901788238289083150083641452085980027374714484957575308924134159496013917602131235628351847308478341527352713800762819476059114922836267968796076373812006775950553093933318200869086457807831260179087033381509267457248735797990638146537623101395609971476956504428517149398306100552185536964135303007074534285167916990015555071978485836776290100122692193880859238322274061377837659638637640586067395206168409482960445841219541114440667100557344273477295777789307136462687864358333874054009064695251961367903983870767415898450944127212426743587564882428352790633411649022890126101900226059454956954674970543849106767013236235444019380051792146276645432442584940824724431341164363506997787484420105178504993631258551220549877067802014923683293158481802764810820742184642770218294095640083112568525688509547389904914198105722159415159069759903998142373212756170913285147973870686457485015295514322953161181065421708343199616422091330483304245067193107925001328054653604728197068579931344816044005163910262899116705422535095663874301174648162753898575865504685928248784841307388862443400096129728529060073489929861382453164177902519890462588339557863574178631278218131717685890936451673447038641899899169872842084165114702589499575451959629033614333065919646706356296065729892990540611736240708691298065082593372803383122516993708355078378568418447448942226053040457237311444574129231391036651973766352673309752873771521073470510127498329425354201420637549210628675440117278875730734735102334666346668998106111835916397544648041236155441389912575726514357320607244324403584904209898626251313098822693092990181309721765175064599054793444290710773678393614754982130169742343284515920002350164838405927947807362164567832420022796450513676409841715794033349242972359236813400771162748093426064672364248329484436491667158555198451981233762060347947824091142328514746007989794592373228175737773455920312145284318976627813517435852393015925040454263429076478282050326240681196346699345446854576564249876295934110179711178781612853176616471186107920535814519091387209471793072858063077464666340992535882001204404086138587743636632551389013601776208629450933742873480404373922288808382660003172073562822614371147527900933614719086145654757222934640731948989868784920005166961919031586592187784588876722999395141660877963530753071978527887644855135202389283110660578678084087481312761679753502872297888086595967626917846458525985755873268138246821529320500372571796404887091298565880932240364233694691544750484627009824875571908928511129347641120967343909737126198001437396742794340480635928258873906591872507070690323288016501097045721177613742045152548150191328401085893967875665102061471849062899784274685250922323293192245933442394768469718592067225398272725476066856751755653042557634630217225547047668443770580132763211626069222596484011887693176631556283487086065557846853997110643567314470563723494516390174978289100990401230166540763976650672654328583904897266222173569502806536976668848796885199163634807031087506364505018599903118190614826859892346270413295911887122610000557813498426639093616518755531190969368656159394294292251983328361406256096357413905267846879139577396580395807576193541195526020199981721183510033942504638167382772601500365720556462976142718175898290129385750512536782317394925229185187733877432456745669747053418196130929412076742525486754884509277791180061786597966245074050923363809596888879498615755386790442452895406241189371370087205240657577382141074669547438260314335946133190528378710886105327630019491084963786937514837230700897863517958153046362668902894762278079426141649002156269873186332045173948772062751211781956145939542482444744565474118019389223415788439548602453801481003562091652885591322335114807696466481514909550157753758024867535742075547697690924138687767402355472118421991105319001096700661989132486153830736226232067518135150729342039585009271292959144131008061777278541831979766820850387932716207404134379710541728745407379121870268469116558725358969864230867662462181142362150816282382334721838001031447343416674388769088177069551421018346256175952336307759745538602550087700653947845416003655458230605060854507873566800530973090297100084102530933297031761459925054809406471874559189297941827708690658756092948571807114394298917486084516435889762373991497321205987332099264353086438734547707486786669295646222035490825015348132461714583798662860027544528053685964790418724854750921104088336687684410663624417581886482635455447444484008928292412406404401640089105223523599032913878327026890336902142383994769489343839279976273020052438010589725334166981928830643342834465111849062378444122072330986095001463656698107412010997863147705412441477519662359495682119784665666634974085235316621712507090283273205913280241731532949055369054998751503921995205563916996048954521972618118239567162767994492572730215195030427777153529795435939063331894461197017736432316698812215651671957152447420388648528997524158729778650392566842969530482576937966787910563374039028576658371688958085806923499959106050827495923361005028968109803745207189866000015192781437164400893500603469126644025016877783130685419692339498159421055892140327738956367073577163255357148615599821476439644051595304610294447679843553785899511210936815219529651961697469874567069236601140610161832926638855089103027559635714466731068655624122428848588780068325283340368886646385812635465378677975053415432439951555809718814991810959222937156922141495862350014683579500094742782073123262509605330920793141083642994690317175117444955815550576366877086935405400413750337030136569829794801357946444700487758541205857982271441496108252343615976504153488155531351749430709225138587647229071572986294885792820429678806938761093455913122518886561434827429632531165124286391374467146984311538039997977070513161613604187604129968919169752579959822170598323724046273792241134762642389256120847344306548145497460038412652777038976741516191192808169104766753945646256081891417549034980536032508809032158064983096133578084524886106704396662973843997503583561964299989276887018615349819951214961524725597385021366230890329729672574816103868792256217646076878096727738716859421431456327045795396493341700416866449604408650723604631511550932604285145227224252885305529784786368282522841173761766223573646573780368771562529362137541509261285059332705494596823247496985982698267941146391616109029972222056957559328223609543544221417490959601454337840153419401829294176520938308558878286785207810335373575482150009187007636022209082606437583463709087235866532636515329361674158189687926119935052829179823887646242838939921438149921364166702939993510332719623693942465084286581828212658984680586634520558184123802759908993905351435368665584496595698166675869511350842993529545785369898323831228749442248653279420173668839756629562256244176104815108746991821981119631954248481028505251853586631126253630250975740922915761804490545928147804251283740759373226729714105900513911535919047548549308223998594954369084227301090609521474701592677331801761658527906804036382626268917904859919208216412882014963936005645388828056294622345523786428253537493610439654024867756144546440506247561178560054701401246383216891490221452305891607171824804997721655828008780682319834428094975313666473911400458057235854756974550273601496186712796724248580573609512029765515196469524343582566157213779563718706817982552476201088354299796266149640111717411485639561383183473742755653130661170714785270927133055912090508921081304124072130717660017657592528197807474143280651765619222227044802959812174268186937547759164105951161560611111226969258668439819509561014380006090090335338370845596660456320866332163301093881374932578752201295929042298497776895576019976754371535845454307447107056789752853033930115986897121873098221869685601166442303673673616912977308219050548578605317904648248013330506928643597248183220136526999919572166479849330174544303262604103922072540834487408742653684366793162783241794400043371731012757670620058666506183519920839910396911655509373035604369970285557506225733752319552456352733650873640053971467620959076449898117721363459097779564451510750401530775005984717236157395048525600221495729167976988603614220038902889570524907395396647443018918754786174642696089925527107873214006016303602857053751619629428809443562688067564910810374428015053293748181032777057801854788056968336828897340688024431150994529075083206189068058849382756583803139925059090753387029165653614044119139846057203743397495242345652808026538373091726208921458417731395767836927298892058898512945022105706247413108116774844601632782829831788761014642455530916360161888369414309331381608916847030654118720021785229006154063458040913490803278482718550122939442200931583499183230720225696464057531168031799985615038267992896956839795727581641782515351669185621651130262934506824067630034142395523900928952885206185847987139482323268109457986199535540326653439213961068808788971131977338871527057523190421119951707816579286095325540566854070968594809384665057847001483183168006968645478843588118822266872973288940200076619733030068627685770136493623367378560569360030424624775793576521423798698351941916150639789512009105108943492104296065166110907488618392502642831156879244473305475578871394661458220268782152077623861318392196363570259420803159571544208626145672668181909050881021764208202827610726388026604320863845892500700439553855628720425634630333434968376547091193006610326153956287090210756066045059698012221120751018675569512395766329245654794076335059293016654594698673878913430215826184919620233770355837963425648610831308682720589026447339893281175541950096932174402218342462736220595701055585181949081101321329804477970613456148452741628175978991911348068480964594534022864036272600846899274970376548981519351022451928244170016537790862174338380585761285802048774089708077769723749991629125622783420590989749887817545881727907276709426382020302999797154417053053043975755227067509402367839562110981479208997721271834927491321443796984947541858160513006234481448918011983379940799808703580398532689910305480964345635184097380075460550713426434252658389495783918988791968481518046699373761538819207643925452338324833746440320649921259812680651086254290864735389631855245199941998161711220322977134742895837216445118250890991954055996662219879073244612902896026054300647992742308316251686514054686764601601796988993653984057484461255485066018001962155871199262760224552022591116910294048622892123312993199203623822554369113745639951648764366127896988361330982288052751301461684282446912893395330213455323140556839012204893902230088281160378355197450816498263517387538378887961135465842407723291949627406039527445236894336358976947347434992477622382343332342749985863626241522199449773285097627039905240831774077791281400254038567085868732970801341635217734469482354925259998652195365457492768359155394506942970544803626207338754005433572137979445400098735741559114862690739756441317405970494109682675564743962919883013750408636077115686164359144607708763176523098773476728630056080318130455983179059811948415072726649188231124135526381177701349282980799416609972375033276608967117538607758866432666183468734937649184950428305838749059809781950310729592584751666127094403075642325364467326314982197100641571850450269260576518888814124997977096722735712399302687031938781619662270181284483102978413380886184693271997788533957485532792879217844252883273728784866324468945809383747194403198058704299059199799881814653853204858326064860267050655417142281400434424730115964481311215466960201688974332460583633306830468690060108673837202275513591681873322898099354911910934843395531820372131927839221904479778632710224030648078360026421330191925773476030858470264473501526081305016926035117044824283707238202648423968668957101069348544542509866052432677573320308827414850879992972397577736133170158588723102110736817274940333999422156035258554615979441769157891669832673454530089497698844361608273351931613918604717171679400025252076326593302009847000634418932668106080642971147977385558207856885928984662808059670619798073606937716492130118296698803483612191470675114376791160035162705515509742418488882471943146122071478450061851428239036225840844879629667392182601128897070589131916666620223434652782325510657717257621856709907066169128868946760254539169873004330401121133077517425283390012572648299048954880780556048910999607986065341762302876714642068045377913645600061714866627916064025607906887702744687992461308577275262796011258263903355910323718696145189000409122352760373237394809192144629344923682658580707922959047756522148271341675150995816568448675106574420160142467425403502799480444401915813830191390164082525987452638888760580094614459890210592393007266778434199753481713650957903863685473387990215475310025884105591031387561124315472975432252988713203907718984452712662091387471341255981512847636951851436026073486961851699181338610317588160077698636600859550986643279207134330122914665242232390815182344976508248865226532701345792307634541116527393262942694933756887655654791379634425483965559141809212364261645537609024291762850034073622331857279131433091768025977431411454894060041495840963189647537390511586617902144421089571131616393054293277236508693326422898329818576317355406735843353762694293777912212243239771384260847165277025982858967748789941900768721817141134728075267136630085528377985901830529305628945167311641267104381377166048246670943556446736559764210180614829346726440413703148974302080545680713455237867824017395230662971905353617413754882576391555444448333610795281164138486454947567794893590985915613063501305130084908536750585831466196586515902346682349742468854818592340788283783985554232755546811732827099919187400857743837715480263668983827822731748770824723547616427799676442214539117434742411657545190078006683667312141578131970699585375788769861406955709062448804670109125678157544266293903932068540352991687630178100569041239700021539735818677419043487239039526521689635041348307828199662310162227290661554190343701438897962018824221079789683316599386021042601076737575189332437890740914777100441816576551155108838058763592499869645131484822562484520675397252631331148664393918729933528220401875919637066990372544674076514770091547783433646681937906840355492983804434557835386732584127546434424242803944196678934516667305341519219659135828905511844761534525698174771270796458282718990977591182378587225257671389495082012313466380401203286228880151745159911618645722131296504683306642538805590810393133369573485242093805821124038581742000172337145662759130228299682725402516478273597912596758496457905268360467457388847784137840334831656374911379699803737770290899519762684927329539569840890820808079347643264510323715380448126255733761309563473016575300400717370599625476074648858999040779211820748786884338210730115705620687027321078586737521973330721032114544800757649182769451943094375751771410492344273819166887447756344620505538527645904916779083840168592545545371318090592856327910179276474215919357908375430032157429088421870083451172732146959150194550684568593840852968788182543830330548612808732450558415387714195427729492147248580416766743477251211450897755689065361306811349869345689403747624097448917663345230819471464785642998547894171515299337964371443419232213122064844820870828005483991551676485656331569672043104679027340952709718880210276275805359607506603227139095922666433611289819536466183682627955814498100656221158355440272807614693749869121622382062399275702118589721247884389986425292871797462034566540189381759460430205483034801003724748483524845709977358305183620396454236932807424643290992087621683144631514214032938371953103438912895617840830428243113201603555970156260881406397582622784544741039983959077928377070440682359706021158995660242181853383887517591008722183927077471431993825904453533524044742779641487354256188282816169595068578336762363359296668475908770101945882333411869014494148358781347974834794996410238049709242509283317462221760445982116341101693768944727328816001196649868482209146953660048685192825790886661054641847824844906643160505896803314724404001135178826775007003153555820262779658003906442977565861272129136113264923217637510125667302074736280562826315725188659428363815021205716320881052306481789109769969179746302618152704878704383328425877469079132369362783456850733515903273344428299738421518912131501339328183925334173727209430431021971925022380604673620447831145182206051130942150251275685561979455936296567529992890231353871042536715040952874318972005921166388702337033630663102036422369907931987331292448131708243271532355040224165688787939986958811930563362037245403196931345047989372236055341332711881730805538520012561483840733698324348606734532326684173592046075383846202827741958138342619487606749174626069717567663524864028609838057106851860406672354983365039325376903511916477355626121882613717241327543466925211244389256531768948695532040899384468283922714585520407884192716824038619915654179741635199025759839246895928492819452694225724285738117218021778814176395979227435454991468793981742889618525966282786519451017028148341576672666308562677680163765082327781686361355803818459370740219133194332970781507186818725619789325671282393752492828830402040155040390396120571608801173940429788277933736269479958747071226634444718185051756499788506944979062169840038649925509635454862479486506636832215840918536759204896160680976481765644664069964651223616975422521302831938855604458217337930436282471075931100768209413069947594151936458500394508565351984896759540727088041745489534501413637590304013057648521148809746386252916506161839121433478556391396657652217155783508558609254094759426157908466294571473601314335760161237255562206879757206021436001331505968986326755487626673164473795099718951086764086596863604671761759646653487184097752720333774559648585018393458961488707986041845433499896462652768050688391412018044522133477078359027838063593617257029226775769026263971325275214551078967198241052240419265697443392271027936350485285343411506913220756696284132776076321724658303769245987961449411584978619972438981144301406064971674543402427224055028323412312110543396713863743681995880870221770668543446846072881787714073647259227470315831194676687765211650792015923169918528745250097445426311640075534163323096895057855169741164617465634939705347728898396510502197147304736993432570682965153173988249117643499567848862319263901043565402541011813054660849585778592782305862683954075262813783306015939202660388199214884469388499885870910013005391883025962058565472185622720499962897436859211072760710204254021849365533884927547001805756893964552021127900630941444973817009402808829932765461452051697179998987914169175844632119395300733092644141847908047853551091528774604748382639151760289265871601865922376953143031889253995899524565805097882845800941305078868845763483093309910488741531935836785069557284542033823012434693912925397903230890166099192038482336827832756676866827608624568333198847875530037937502197167076197303260997511827263915276601870144020391069603186427037399306269922061080706065347234404765296070479998299989428033792676349311158334301579243908193912966057741018612451093907148393307156832441089797451733626272021513163128009260489560039506255504116225122563261198790218924313036787582243253302042376066776690409774415257300576280027017835489381828707206870954449431082429036462727742334694588419441341322021120049258624096411267712834449080530122360700838806114626223816608603194664683426452247029816025534649114689753383886269068689889108449370933326920495462707818325071856904592835096659463174873549281823003610646942036099379514494296544853479021004639306490800609199216957101789372130744423681370697589821455074837782557846471872025557543742440522207197667296889110041921074094525126443034205046996130545497012402554246049256219628492094983857452048443528077254456409877142223235418541244331778203461207494942722819706219912420720467530356060014482979307453864429447591380842072041298688650301568609780662082702174485381014960959115354395974142746289570589867940596091457393338887748504383357798009935383383630551484630453959153863382400140856118751991495480618914161868666239467185476480339392872355709281133356582513160199972854922080841313516875221213642527988199300197357849853958314803003821625114644858785784623330314067580950365427806049563250815014983334109130604356727400475706255801702793794237222860273250140654540006336941289746192367848356187059534488858744205507000817273191458847681858229601705044799180605626144133120359769382321435835699066246540872279567035908950115794413352629436165278343149962678644577794181249445551714049901913232804298470218745927445558354919673413617413738668923957835286417401097972948229178293644077137942374494922797599641400435867298603076262129349993096056221529319952181283218780405084677958339778942542676279070726035688775745883936003915103962774138281498259479570687961529699174446262334616278611522474238122853154943686560292659777834509168853236672150603369141379403249345625868966153127071819540095606262529554554969198047207179330705710313412328558867845044015475467562566177341802782590848009132683383237749689920681262319671455131749607852888621260323138049401359010889721145178339992498427234777038751201107567474382471412701484477815512903481533579582587595067038051781627842274124908960732015751091009466015306309498694348566001388008030394739211876003657367074891070904990491734767508057386574444515006144883374127759248030144994736395016730620380499384862427946137817309855805942941346796086094243002239715587679982122697139898261542746325455268642462407706616747395512590035723503415336390306250594953395202808032876992206906095449645914669531462290753879117252460489014080430506759054559685135555848356738835793081296053471485630441006526051466249394649137300127052193372477364602615114323037752743611777499283053979392932927729636191024714407278513304555157363561153405739120753607069397304404963958144750636306290084198780961886952966188798947279179818684299626988976761025235103602616365145713416046234686177494009019808701338420709909909822137652018891693784127354317269498264246788784185161171359359719863051349941896930550677997937469915925654710947570364053374666878837280651922593415202867500364693617840070126047584938412544306181404370371839499738757796216955733974928718753193312556663208292784707474364937129703762498779547052609863914105214089646871068013371099996516407300670008037242089142988704650308931621023130398664828177248823415013878263523802447258095828437886735357872281450501295340242412269508713748451858038826417986635007938789482616803171967532731702854628977044926954356947673482403504951768346106042848015757472955642333174324440563855241984219752986248998881863960481052131273254004941853644717181032042779826193256132174626567765842395464354768094731165252779457721893305236664781429790575853393709235682046399939332643292360456148057324776846078769937480986323195369893863736706972045487658556220916239718906765263172918029876299937887303034382035408165199942132204209434804473568728164072380570173067389418589688939165299037755454724762814214977865835473794484318694627294473658485252734629784286207393449531707606607703846212877120166919210716616768583678792540705283150468135950412150790141418919424948018097289317994808989743825661386474802476424517584952757186743250186331261571653683999955014740292594969452494515568624359826881359850453083413387012625275854681691481598502717199462867523210816094077377581972880429856380556322552305291616281101175231554060675287056187590434641365388056121380921869282036973535613189202088153339609216156995876797421380336305277871535378591885591530161846735403434630843786196181288098506325886582974140361540407010322963004851051046597326497177800794036945458450875775201778726061423790852157014702787413655689826430043043158406041568287597085979450251099226004624368297661553334551424014661876520535178990192524359883686860912934913349933369872747257971029809299511627696070408936100083254495265324628321887120215178301305367763508899806951850677750504761065631268803287578240635618099988118846340076005872068475192155746744033510182260146416711336871467857118770514828376408577002737189461128618589582385672880912032177286814940082371996384761328222959272984537088819339218849320898411250407057458734040713011626710233247491199228048437524809999205684668215108370317934095623413043364373726952361598653811974757882381659835487262446560406986184107198283855641560599744799221979487060935245716986166145827763248338172724848318286844208548362687468470361014622560286608377899468791038602520495898981723504056819872752068119123719720617751787101295851444310696547337483105888067951055223608714068824638107549755425076818857764275990623412451126484109139823376583588784292642190990833530336509638936285392090900812305685844136373740757431072220360473062142424998664821785643215642469122835068027304459294977899841470543762359287544933179263633125267695363310508269929401521248023539210807890790528885813721110640718817245998175992941354336406814736601245732206134341232564319255609711955538648610417420634933546598463009741031909775895757505180312698640063313772040134867287189132783814435492042291087973199626367608391536374717485414761583455158927073622918301933460583358661567276326085742986589482750869019657586150925860360286857215798351957805873823001825807441456531670316601305006690869536733759714522174490152100232512117490268591866567178129696462733991401794740382108855377532531042665952460510196071928316854706180030054862426117801770745612679451759292363338936357712341934825705807978047983017516236703288611901257536196853141159889676662507306536404268822673188170553484179408558532387589870129779444607598843452943910530714949443166655398341233078319295269355749473016853223389103561991869952701289234937773661591834370699523905927815016715157184192141934870142527034935180990183035536803402159432878701739155844972949984461738250350517922290097729626158235625859876836188126708231012003103787918261465453814049691163270581491941022759080271839292344510849125278338253772513823787731993359575253932606233877621742293072171085408967347316325330067973098833715714804507854627595331635242885130967907508833415087229542475604790708555247032054002927191193023324981125666544319038208307153427917771846272771373815874993706008874343547726745811914843638068300309449142875924223622429328106394666365664025486308364729306103421008095862148445454709111219798578218771039437285009221181308838635051295654367960068241278419281493074392141881258526631437798044927428782979343199559137786234904359932928144612018941916701986399314432808346613726630026556893379454472452072331725391093412472743641304844841218606566473572384030431741043342137247580974185055833370771889836621600170926827947430078919737243481481907609205766250044084602448817883707533534108497301766736710111165678338072083037596920987921454440559906973456073901062082449494610787527866634928523799563421202785355483001048235814598322354301287069141437552101054925963420950072241402241682252691260209553120436100169890855916924511514769216884035541004032098082534346373592471975257073444315634118635216394981484343244578737044200583055006519351104794342588045607249590463842899046975082193908967233527058900521450920729284563610347220340898616198663159918190189650859597408431670965795457547561599774970908886281812728076253850455966807388994112263158899060142159226859093281561648492862059171081578861441046325615278041136819363467694086942411949009785136144798297550582438377997946782902013848846768056643797166282493415473797845970502410750224717942696718620334251803967403000591851059723732914977529154225676839246320641981593922817995245606738412698900084510364536891055737153015192744030371020143060112765511233876375017254143663372687690406053029196515106574477081221699642106060201412714211577911091317391343721448945904506244777752960464042346747543312261997131186338777066629518709592057330938822071942141743928231419702015299301279014463790557551590487933431281823961917272204888081930896801492160280826473026206748396496982469053509137509514480055816730673344276248179739176395623069426512566265572334348584676788573741797405225353955893620398566680965906303989965446785095657691861073163399673458227537211740824422135590224834044900508772961618812697099010104685565188211247896887627008339976204507235034459189314455728857575810227295313012368681224272277573600387296872025211305712683323864769181565847443607571136332496380736737518799100397518933988747065811633749300057830134466765720899674522546353631916583045989606017151380167347603648107584590924950463105209990022327604569374220601611894834543934882294506132566945541785323234186992975263796828950242696878885542395808466016999786918812712615546523689385256048562243450399094270473620076586601040779559352475468596776467905198122652775496579820126486539018139020064403138275199528323376310549260644098284751343466287860794599283457208810097268335424389512093996207068146485538509941465343184672542982622681780559360443870139021976239198837089596256676993405319121868981886694425260895562113140025652838029821673818321528199301079267023628087334531443288172351178928348204908783749596390300685178260673698958445260118967061652620615988298999480386611024355371304843059178173373003209839400581469704860539193492652150288724881865079284188395191235236101139148789671541320819643645581164049571264375902826899891847803966887809196090475777335404092287549103598591145183294503162970352458427604382876373045543365403984041197737519699493844149014792822938165718260589408652695192397569439532867573657519021737834786441348629104009204861431015051979434535793056534917586761269271685019127400552193359641832266327471684733779429024497380105717967441955941086899998069579203494754789755756052398187672472648692753834060521537985700787638771054287650866750696504065736173009077900624539574747264765535055677724433747307239272411665331431258220575199305613771254244367319144483714386417323422159409647556465862952131835620734631911589271606269085011806287256669862196000121747581767803223528470379549631976492506258255578319747544189610636043546796115558037473151503972413497100474489480711823093488119835835440155715444389842854178660449787244564851425317138704747001150297085015302494403164583382917691689939021757630133733672189856596974467251196780304132216761356720115489968842605526204915695286990540130781407239476042670425636299975050591017130597163316428477343347575796312080502766154296926863158606952663399654406211513630853530839403213138472466545442206565645265852193198272676220336336867128223782990672077581172007837079727092701335060275789783953531846688176081183615595774650445887796248532921258549231891509267348242668454920754951609195249477601279823274536222088070545295181173116001788240153839604393121979263817515282421632782994205070376169138726509261601787594885877920647080622110927198838699267267668673608319338122514393716742196031507628530500303090166961851945913201226857464696700019030232943453343551017434568516748308783264329164634337279114960956181517269573987369588964010445460049939077636728121546855375148251148423831744463089205567718928168640270114358992340489656437917899979341895938122014437100849452944519531740285047441969299832654504743557261071485503069980640061912784436702885955159238589803290798567852817219160859124391375505727132812506285581757530901858497374925377222701416932718623853458266094614743728119637653912552162525542303587836652929059460749517401137104708782492237582471914209401790605934682898615827368786117876529255745629515712111418639390264632792752194955303332611588043293779728130353229191136782275646031430327379160284384460855054146977943203609051611980037528070229785595684872408050456654216666233178620171269303164279573487417258586568829839026994416735557385426700622876628237057297708321213603005735507539790313830118138744235512973482799481863338636115716593445385493873694808784828771439542730005179501375394261956205580986392090355619547551182041783129600129481164167630274767819771497468470593177298576344089267626600123173579524661652369393875360264883047469528464337244648130012711550441400359646201784842344175644977408534545652413749429738191363509005676856456723637394520855973608304387663062650876802521731352972271658314736752001021572943210386679910623009124161174975262977448416333583822071837226999399276468297192152547645618455766940246336758603887167755767240076358250640817517027943546497166027429359145408267221138394587167695328244734528183086073706690141581886304736184177614555209207785695487582715965811702647558477487280701520304641359683861236949820361025680694668151708234094041312053323225861412431238598701318517903891391045089695512178329578231912928241954096267062391480448512550845845954118197677826013519414380270689044420800598504628961586961934156231040610650111196806110789594286869607189356153882969015374237755959533009736488975352282075385517590786711813976286762969889040538027994778667096963233254480013061268810080840164884710720853723310799657903165835241417238165690973650018071233348082630828922763781494417344627963237443295205091177230268705748757403125988594507760433576022505579294723323598696038318554165068309373478044100744383152750495154061613765941883503173411248609172355727105163740698673646631043396428374278381452731782875902697164904102430495838649462893835842179909373395083075265768969721197591772524869256566135613134506842208661687525971035921620607398168021285252882369824482448025367391278370957595020191701613925851727319846575701828174160095210657589734525139965528352689253403130981401515574097261636531034890145294641011921753709559209654435003675423643268310999365830669455830500185081272231660945553926636589398352604230871790306628808613960687050066459734643842129873108149759698384366713855657062262944285869820054727765511484840510791088141852637472008777270506545426202941443075273375177609376740748678392836120015945992786478337597046678157207208542112330495887705346431203146905953067209567847802248452105828532211349221008715875754829119140626630124792814325902960834963852730382336492880947851910222705463285954900058303050732824564157131678133031208380322555925975772807443171989649924786683793546628096250411537726350098931523755523966165794779528060459444015400632491706668734850552680013124030064454818304660320058397490811886817792006405433244599870912150849156384175535495395372026923959506948058826554202191011488208415702291414582269307371340545776353147615623988178638283609903923502586482982750570923131354585836576268112332864451880272785067714215282065845504606196115760977085345683908494940972942729011841536088940238558896356341793673187273091453704835646743189987265032457642139123357380664359011538860302628414018813791388191161449340547673140315837452930581923687864665432738306718900604889595177261857965873508369097104432493007447169444721830492552077114562850183377337761644686601653279654777631720726037015089045791942380218771630024272087733100320187140863588012461372682176174619874828364682158907701055500151691953511212834333247161847758207113367262503827437564455685679628801578958090834018442810641843884227695965708936624618444069495684538909131724784359921376775375109382763227785089255979448637373816544307810979587467751826339029774479369940951701764879844193522735167835957708496348501872772140767425216627392127036536967022370566138051342584732593315538511633119594799182948141651661592507151164317514924869594635969702965209362408339616806720953858883124703346434084662375849802709419914419250820270586351691274789606507251754339001817826076967870807126296228012580912301648021273746151504058586430100634403013179027747736942849930159056565436156991691091880973926592781791079953886694743098541972430665278875473803593765641344927606104764624150510130062539968671547602983928517605367455498553016278108035530653344045648651446632745275994236029165917585223641235220726479797940478805115073310150569806932849416904972574790137794711589962488501224118582511408824952777765862401651953125033567122655100975840237978847272120515696452104411725650464139330795810341486021982861378692861881331451003638723229254717282866489248914884542632185965545752429992381086843857899360401816709799103628373503051289928673818059235523753303745954972792146362266208354176980193869824011829983962290901417837468173611903481189495646232224951171616464564022367587792813169066108976423064733524361107681562737834763573977581188414551154029469182713863601334424561520532236714657734168601975478538765824568945535521554280854222963139110943358611722318440565104626991574790110191020406015002892662936541218924448789166610521758958693406742111797308272238890764762110683887417470580959954809142510892328533791555496957442845707161445087610560424474795940427640402778373492062783459819196682011135330940598742600319582935498926899010403593653903252797951552490835906622606230384849888209979578791813673460968114090423392368873972226249375309341543196730961956281643340346835564420176473174526067711376825387883872309450995879061360319990072525048463741340438339227330864532523687814069137520924580270391782722318090119391717244738466901667778831019074203291795474162897075050011612931917789685282696619321825448825207190232510605643174825886219444504291455457952753285156306519674034213626958172150552830347489036784794611284665157964737011603944192354761427460673059483275498635088281737846387778388352322196578005077050188420714404869205046645049969308847152606374427909037013394634000491605674893852092877850253044876811270173018720417804596498212926942509202796504821880328447178911739547525996737668332997825169947175925680636356803387140723368990721913059594710038170672669508808689023838970814427169440774701595715151415982626956151958345419363546126400599111871971899889366231019904860198672830262256636013818568502158663386936005724997520242171486714723875246212055447028202379285251471485183047351044307989878801635628371539240281564880556408969861084101393784526159248608734698811408317223049591244052993860804400725728670883838664410341189453575570424710003650854236287918299903415623161922277392301405953709817520829076557665741506352354838117599507235422586876980117735283755622393682606553142786968190772031475735715712457765441563335943997973598188319884496308781677901151477249142124092090910406905679088080923374974587787583161458372632203573893771411296036979636005194922148732324912196748156681747130422833038555101860524328961857418120452379839408528464875018051703774603925478301274072361278800388492164447367552578589554166053848275865941449798036374543361929709804723627475509314727335728502031764884961914127584675206400048889684739986083962684545310446635954289321628428967388572837594992278739594737872695829093657476769378268791067521700995584282128075850170850895287174821966652948995806208942022335453796495326362568718243962438788591756269785344558576719100889935901756032454165413085493851711844157487415803824519764241391930521690918713500295591333926662012249474624843162403376159980566801039265670820715740548576174266414184776065513873666389956763742021933786613133169646585765197781005530205357269128934264101846394305274452077990433292948486712029354549433510725839091141965154665630862721385138163375167569501632314909639989144146370189719405016887375731355153323583879112667056727505248520033336227266599895054199930570106653312413586674981564372423673920859035168180516161790796518732723965307289535520286545974723609646006239925743583312533289475953678710640403238333500220984282307852074504939094486775537649294088509233673379561713356643946702093876494563094877050017004167432200658166702036148619177981497052896545198758158242092176685628631501590502243187955818547222273827997036439904832390433888208979277867404477283115786282902837091734204245245866498254984978291810719755595713911118070531871011718978485321611808755735293715954229165352430909196467209445170111641090255405973462232776843924905814791260110435264607069233542808751041104104282364761972005880645454475724945511409785205360801221328582807391552559559276440537224581219138768370776023707038346054813425821722488041758638311414676466748330627590852048618538719871779738533525553651076576218936441053612743208908690916996911681242834214092603857529806858485285065347422150159604832298358791637103788487193774184791935782959857855425624985574457868796976520099257899027676016914782144398274936440578132374979888664912872744698006736833187422762697760099825387395371908722448302881081158971704062462195970657720516025426283340390822858039681893106447421821801894887875393016433261013376890669557169907205243394581475777555682058245065173564674543664866538129966669981042673700005884955140375235634457271714526655464588159506489926737914368606257288940868754994991571690294846622708575699637416409777418839355690079225341156080546109215710433928955003409885167348095795873423277747643557611072582097820622331529840332804233022225731759082903990686177275802146025274826638778982616931210519826597735117218222666695036378794053396355394237903008034315537936101942267613777137285942693071165325255698383696784379955214504051969270545511122064615904497120487752962405597107117565900590083011625351133102395562315819022014905138173626999580545495409497726495650437715743393197571377345062512207310581639809557168892280562500076505448355959367121857801701080250420130465287839562852474290046600653270521679155360002344773721116525910272603392924171273254097988187538701714431267161155736600184661532526423349480985927647796346792053699355157983569815354867411230467018547644324743830377823765387262215142493242101094321103854892281577736466375325924303403919805256733047467726889054678833963842277728249441780256774040166560107385753684511942291261274891186879562745329829785997257716398165286192740983470120579235231816767449938034620431792235971338000627901186012967107301893219597492701987627873663444939583450636664023807873676753712875042030146692501722277910674215176082889732337480813299003963918234914366927127443468613456961630846548503007388681313259516552319413197824177007003468658891100736083515385015916945991525087652181509771933190034214176703685260518656860449812221299395216903742978824745315932453295195469064912623017038261950813770201889346743768026981769321000653098105675897530477197474287616554254073296857958945765962742333743208685446187127907651252959199054341908083614717160047349451095636361967216108503163209354484549398237340067908454798149949064559808087499410527475366403046888279012150722986059763395761789725504398076939096307470673005276751039162118592640384405508750805630415364964049724544549777846042969707988883249773284300119039367107461359920724391427486197681248515227510027277687803132457716660053709338915830002324487797101930777506160705010308680440869263850610675534453334097422286122430998456358579604271283041060894483027685609674955276344818100934448632616552823085742557103254795298261457994153778762459363656052882500520934298083844934841501954558348622235011492523474068337995881815869541825123533973590758443790647780582715481307797750010447352687774195264875276328018533295318728965827762627587561974040367740195911230969642979341891930515132003012668590460302108152550326175674528573038469676693605400638652852771999223145279276913663881409465838274389865349281017626039011218625668207068742140564052261241752045074834354810916937727663328826553865222976526941757844395031672267755939562818334693267762616376604520487506893843537304780906494949008255177023467446449054684788443856278464022679287805712538458695496408471930489401086413141371097507524392133386011429642229607953533685973160350624833363650757059690372689167814463030065467883155724163265550926828361834206131734940782679125731630824119627944006917067798709912833748112064574586014029906804558522616326521368716134911255273572051824504688273672163156583220000580395740205666951072751521529259711218473864146423455374866152621890962444284367745444873611865496722997434043403636860582604552085613208423081570704439265487105089556563947558960188047923163487102402091595110413258696167559636012320428909420105590693191734559967998310691650832274662355723286356836927289119955868678888382983754954766480757626211232953818810209672190293736988712088520914075886751711790830517218002140134551004672614624007460111695417339490124383485953582304819958936573806574079529879835753809495408321835418290717438122310180374408137259734773766242755955329623398285738138935214316975934154622142721366401573020145314075251299338088251643684434784944220399852013860777063930219146967822615280829782872576953290572418075984836476679205117797025501791040208565778926704495617543559658283432177835663193664267542036912198165579196056601870759117114096509977696927928637588391050332627569041954867411138169894774782533581195811180147605024143407011378091224118276713845732896338284433882809564197752777332279624947628115298595671710176151136259771518137750500969568049942304502205375807394993065342347290060713314242686126482280240396599177395589934575616527706041915571372238986331561169070355846037227420805362173167146257698450564695095316221552614792063434233837939607623452078884577478707599634074518580960606549280289559773751075731511661548745524205675189846425970886102229288374393631120446547689154043112963234392946959124422538659825295249473190169351958030447036467156288848812836269489844437516216380580456024710207907612777270599339927000445910833187649799433300205832791745386002678347859692120324878038806041290696251613635530300383238829682203003384076800023378810453121313478976887030933283404797935418118531201627666448864081000747105357158879635791457203232703800656481845730027992659913970865328077891344033252682696383750540253450761838282303839671958348852968271378303281028531405665357166797417662689023650283933643635869249573006031530849578241519133944469334044076923895389074203385196442157680691620691208148494174564167914913739308825051388660153947239333951162639969000239056282378917329363661913237713923836990733619254387753251690725630056184632268711361087362704654471197770892947946906012237340400586133350334773522119379493941651337760573903687474652690810857280953052738006224689101913749091296702367738444447864155820680631606706797832988031593313513838421777013536896576126164174934149144753145659865598391953565143976799560356765889232665541586747232381158831722348740974472534580805273475617608623617853676669127085659358849555159544244289005409598670900400179753826761817300991293453690662145268158099088312524749638779122384073737272368899626384085733819645754190359707322393062465575146097398486890264023054674830750012974125611286175997776346967290583692951226740443558892339191144502355126040330496849081610908375516835781341851061871089931147870616659808909362014225848217237910548505433861893821088569611254993518324320047844056660095081820750326783957229580941162132876055089714166809637548086197770630851083440752847780794509610071770446379469092653602874857173953275348380378666661478961627352200317076005932115368994049581735804436689823131319022199680597325649748865397855257202750100792546645249737427693578959388035335675053146189214459498052941477960497097432886203130955446340604434313191561793240943974942966595787864848396551296888455879712351830214910881039684438229696711399079776486317918157965882541108437309825913061253035463414791324374289070244788227351947685971914503788368458585217224873994901092110994723918991087425574933218254205818261113373251931664731166962595010216160049862324282323580424546692101008043425567747413771962605184513803132578998648015726145185063886301875898351786137788119295610717251364987676310235823726489912063398499957340475138357266941596084240794126777423504439443013751976545184984908747431759508982861349959924431225649138126515465028340400769893722277701849122202550177465665972939911218511668629460257753207059707695329661872310878663818705185055836659016640339027607655026988081987616881668297677398020248802954983395499210173886066046639708759932789265097225769598903309844907084675356818926532845679777145803577655454362048566716143298908905114821379198659454722767234639009946788732962130876677668138052131832202239110828770723324611394807148640543049179187032055588415282215586770428933589837916327248460840657168099490496278645792358010619637951798030758433552297111472817348789546021853933406443397475409334677801733223252569227019321256580581528489353858754856556025131738376182332152911871024513991762482011958992996270451318725316060422078637373520897766215704206020371954531830920432751387872624898235808457976312491406070471697425959880196427292211977537297616902776045334635905335595032457846297222171296823141255617576381640420009622533486659706136942957072006392628298849745898916270538729174655783945018686540881277164947449456040984935577900017941026731610513341492605700048181114124708906856630590465958057359486767976923065650821330563909478505735000367131546798233790966271452908476785425421371558693421168508248203903126676385265299213046434351909660158769379465503547206657103089949133941057155799772966238133230927225558686361055088394065112841765932174692000247184210843965907629625040928436706379143634283362372465529951890856006637308507379210256197018763792527611540440308027939539547190529591111741670640336150321298612323374207337118198368762373684534635485706204348359052323430063435532157257460493595367686390053376350736896335299701905818707267100217688990164096632393372283521822035455907673148167095545095277278458218211980610650648884516069067951044204935004070289478330466643241500730525979058866527892802967606512051333532273353353198042281116108863612915730719646337919610704078229574928930968010328191658283850969173006078045793822762671577042198227570848374525269075471261307665883517023870056366386427279773878573574694456192316699536166653668310351490579447218767666402155224649442840528187438485954729931444724303932937009420358594160612784456366150615475887294752529934543884088190800739192658784087477198862703263950249267969525750177442879843987237574152134404008023724273976814536935133266834421453515888941888853325223554478847971660127048285378235255070497918202742598587684835873996720317381152047235905774062701088554404494357339450932403972055297251420712792298255594110024775200540482484820429412697337990935731462746283492604220970984249137777427462394685558495396337769518466496691802246150095968646842866601467501896658222117138810050657446563197647290463005967682163946013283244730419631115991352578285964929388034909199451679734119355827139223783214564598011420460326121534887667516695825544515199552933073665189137256976412583586277352998322634768253085581676364484946079944939357522638671960947946770558962910283963398004731148887224250500256583780842790197375092346433300252346990499296016208905436041654857927570719025172407745925478287177380390236403974667049692612121845629078295292082741454932756582192012318207668773535966184208095577051020327176089425781066117969931844730643464344011855802961597842235269052814014107890719564902444172589073847293552776038644766809268814713842108614928780395837931485272163466219338617696706968387404234847770693796239370220406997088632713607161789280828849046777192672495355043308194316714253122443811920333790535875799530764992870784361494598388760664923466132082190591077640003341211967795258464982334689539092587451719393741269371593872432972677945771206456064988355539899174274564183617864123978162697533259086585284617120554075940150358506172699002423321672353870530703601994060636949528772339006629300754866820712155159184768425899672468963136753891062461502861080573569996919780320566836646535567599924479009893497537895149727332079228352345908466435214331537776341844128958137395629269500510104564200714513549293180544495425166552667580399009053522147340059714716634732597939201635448658281830717467836275970100445815277546258245857477854811423604229849180356729369312995196884702964650089651184249838920160582761354187226513323432683702830576339172179734571446599244990230011136817618208060566716659103207108316107279542768219831236618567816484195757253022637620020689493424693897760729787062275164172795817936772889876284616233828811072422756297916162006599695951570477377081247073574900314283427029055922876352968603011333782017162408541507074072945433769129016562087728072828836664474284981545971894163285534497318774193898800278239160603058863684178675089674503575895604949968993185939323430070585255070647331293573124013255262975666792718973417080510853264121335206171877820740462991542506582812111711705749240893928091261980881791711668381871821014495424499559992973256947821926131808711754693242091853933723096313021970026835516261519878966341075111096621576193240019540481720366800394313312919261778066967445616827868436811151860223923185144950713710076625597281932656019847097301388938795244098987091021088889713904373741161808916236377772137243852452491568514349635437069707825289538486424910467795644748583475336670382239557265420646926770916271204272345393904558420458061592238103320528799315600763957018950418291386125790728938781346506981142548378485627185254624990531991271930105286390533495777546479288067616698221771059393547866504611560455884702134397932699102964973359507242932048300662194436907943474505563488489025526371944521770652307241911205033064068081755151562251324042549871529207232374367347305626458423576337413837833484179677531131221534161615252411846368466503316544834600996331090850768343547995278551430724094764306734475859719237368879074027562193328919080570095700287968860786374073611308015201110575640835738295427735168988936007771227553181192873161593494078231741980544053631007594379679325864618551607304298359091227010820049495002714395413290964496947384148340411538888348785481085007152552137284771167972518816423010553984937505396311363428087510819312558268253956997302005133837830366884000357955529272995568048637962112955373655536742070561139977710147951169670526474610524956780215610067589687561688479171951845839850755365115658749735098256913714633718274536270415613576142369631025234842181243187569667623617675202678399681618121452945218542974490288468554115159958126518406622955823472621318327488605789447164484560505684674505469493049180475074459588021043988048916348941271970215484164847341860956122727318510607922594426981682284718113009385509928501863733649196191985359516658034565531213649451295099361347797817844326457907757938581731334086583224978235113375390355363107659186764539608589490691979265901652932107156980391000174197239270930105938030292995147588097643668216135888293878294145414022444521506052602113752917760279086704372629646530123344911392612119651605529701811793106218836773875231175953274734577825866281828527679107940507569349332318450831960706558202372544028093699619931834872047591275975803816014527722149272680731180288514595387221644813272573560533817566273421806173216057230216109429127948085640092925496756806219676023590694904349525898717257417023560842831426270475374757812839258433091350937588775696420771008584721005402677924278595606903992707495548545589036069348015452907520630847916795889992828229228144838647420281585213750102081910870195467349747937549320872106608761698103243940782980019568824099408217119706581585209090658013522214468624929846703325294513404313840627250077752983616055242328163918431499142144186367298043321962644816437223810518646552200335257452027105240118980521947919418590941463168201706297304268785731896859304966587090782744662429166659815933548762111298433841132071390422708552880481660518905898230332964605845686643079543108372078124207803801730031447736537261717815314786725009999986388924596389135979232090652914346996536356529154718057007112324463478209748298198844352505170034237344768267652362542522970084618878568191984461228567253051829630268549262706943108416038188827629985341412472185444071719994301747694844033607723539353188101116331650608473454508805676414888770422783149722446070478176468624100742543785743062310738952793971416416406314427012951593076965971139414721548200658919535070163888048705151649723180889948195789148175969249421681090418894785586110683354850011554732580048983905043280428247214401007711719796462363888340612336136730483483965457373195701120258724458806848981368906558152107365485353892631520193286699477294053095974296473304156495125014927569504128283445188479022106615054898231987210373412026134552457242966328615778308572628502700712188528034337149790469259593346557684042312517909586663368291441713311692027091648938084690939177641723914775875953729366204869805552722671730088970413960606850302741586649956542114893541511446625313122264487469804767119633774958446356543965825723740147120481102971243059161056444285688134490825332956338497868978157699016511374209321682673009216919610850632479590241261816231695440926348532380659529498625036197494986544702635691290466040452550475159329256204276821095877559301042313572545862830567055179575989092171363540927672349642737421749342115961988046579549041548379758889581454497274796190710614342811118766497946508604601919647969651734763376232177688352010806854347509327255045446682192444739073956777075816335629629851938637358244378395102936613224069042071287213472666331076919548385988628655151367804002291529374249945594989312709874317470915208926614497120835596633996479356267493693099685121937225433502681730063829501912379218682759796434992466242551561058938645993127474511203828836913721961632094167928485380212711476370448509014636258994174110083111339119735029528063441528914694605392809166127166969739724965317633978818458953231659635522365106901463386755551259160539658086727439653588278342198951906472214703805919441283059170562962722783403863315618090488107167934306359257566372571790815941098139750283073251631153134252662545857636714899969202969715455488858736873950323776127939356583311201771669844426983122430379877036323600264407990085057170648342473739457999169246330102287388725074731562920527282200366999244111303232175586880368339956060424111034898409464205364295566140758607196676844424508727553629186145666040447623192830622780423209162145509654328580699347689010084734461174926539246068079890526528969713112340967326604907710912568674503025395252542529064767912143979878793355664546875949066197254769371994606643878576554393365694344565803888414676949455844591518650417923830749506180360732032268865664131932560615531159844560819058791275683312021747570399322343203768127751440759952308691891895049229815452957683319722319676104539882161156274536512194833554058758279088955683739843417700867958513527016982520311113000422777805061864998049355201020027858031535172086289154368651187709416532067230503239798518557657771162547688036948747756504283280690389371760013161726653423174233733660651191684710089805249000156280572826933663375137617867429682419041182411289573193141575238565286058742971719046648712671699190477491361675799519166386489810001202515541873565952041899964245434418798541341658505524456558044837554117779538579392910220813497906323219066701176875795682748266908311228279721263067662900587618121865630497494461200250981707399737165121686385841582535765773318827819723044052837781625264015335663687967743572956866268068231788720044728333872151307809008951259457648906452395287166760883411476602207941806277799017938997411217263839112856716802273290256679255329313442255090776555873696148934831782260583319586733713842011007745604823027427100455885401482956982736079299017778890873602344774705257524427199780472656085520541817753220024383374198410107817684058386379423542916248984238358357431239511434038725404517778113245435114474369474785318024501505356381334934226338794211983994389388494443750762378830023608043581986036413548074540542766008076513638897789919150740217966538129202772330238622973704815661915569583508219877508718852308156784505629519661259520624144843326371631766861788604983404142487160370786047605563398834157927833920854932667199927629832440352351519159308427625149348955222171056298161877003052807430626276768842515324250830818249501686726327767750140353464657880936368510232217381336469821180284911459871549574939848175622003104442457777872594626139155208277042086374829229989955152621554385321759079899148900346851282677307598092910098978717193043438247739740028679329471960603713251279339768316844538613187765847128195600577600911461796481835082822608804990973280278440793168327767653717683863584835165118173324549682288934978866679634961964508176788875016175358153981619711167205405959883193705981962197084061851674304607948046201955289863215628349923180893675829612373503137622565680308438722783135820912199207276644779561791070009671288830289369470496983844438250438942928808079384351248782105365635226589390515288695214335692326492939676387106557474696518126054061227531579296558399257379293204619703372036898993761217774713572030789005565483659933817540107044271021650858358872914060687508333754513457425806486733262715822466453369968073136533475747131664535128677074537574442832943400673977341644407796529521546100671802272514943291564803507629629756708654943234787864623002666643270394456352651350839448568350687559676935435231399993088694605981726646980641881073172102443678228663642171567195659070281357737880486654219084847345572015789756126177142766544703174038273932349810254572360510666620897922405076212997556046245789626861975544182664722962159365496095999436376414120152992653420071593375510381543895898558553446845692086132206075582203436080784657714077983169841428289756876507142882047451829593470615647856483143343762574466460237500553195399408239713869651434852618436482998007854836558937000172163119526962328808355643703154242476021206790725298960015532973591035498820178164930023301344616666490310651621645797699705653486623812189108970854830145278378442224486915443807768141049485568784256106108025779593372560037507042682611854145941485263895910116137704289506090357189205663863482105907265825571948499684085846028949244629399245164555537780369939057900447356211534663677520337550400075117298810137243796210567393203164487330360719392175052921429971816582828356297475679812595120705634240532887277787677046902866160255161379410784859413197179481818223030161903963656801549868657413938362225478360666889433894452812767929313009952155380996739668698326266093967357971553530362290812747349181536476474351013485987332839384802279179348954740308369019909385472762611139103377305326156731277845789308214519882045538074802323908250592920818617337144597359659323945035569048652349288679376647430503520243910016437462410790907992715166101394811459529292598390539608540963845248333479457836279210611655590202441632283063765094792539352859501294903909478173653285591744969482474712839583690158177759041308318006176106567494772361501445270825847535714060239522413815021914871058820546044935642582913110681759905963252426689265933036573895593603361044706913315362091138787868864022127866205592423302576359514295451717710009268907020751458537586753851261178003583446198347264537091939677909631766814458786495227848312804751314658330851843862343114846248858341196624567468259523911912734371136046655054134484832326551824260619162772781084079026247897005291821859958049528262668434343115746456978011566665223520384548175721263444931501771705347222672292377275924756657052288483298057947025898425945102604027318892286304429186115516936131648949940320730961108950079856782308573408787394055380431820708478972691620390211654853898738978986718513957864559885617253271960937504152642126701621336843376272974081351289902626856420133869166907047118592199650283715359018757879275878120792931795590176798812199116030335385974587196859698034682529646213343787195460087277289025261484993736479005017052091477691578489355580416937328192417236558226856503085235349932348782254671178624376927438508139406697537182962800489936192197804120923919589001314573985610550222183954228292708937531960587740080679606999361257798960815013525641780001116068244311080735146077871574067917964106584505416969371903945719886921313898296467360476413273965299624809648029634316745687212358339321800751793815064286088123457157830764802807051569353834511634432833902687628384931880615426380612699418534911000503076357371327631267924247152136705442426776343151999191283128030615608435692792625147182081687633599186736796949369867656476775993678374319612449398418276481226350879021857868658510608727710941896415611924836620463758913225323273242915839842481494343686442230784322101861536996981963915914852033757644954626746373723499642372477519983995038168908965743931241722841355115564208865142445971239065935526354928419483067080269444469475509812346261888165016158360668939716649730766076342194324567501346801227319860222589035070624634719195692872929552043133920579425189026451390735643338972714873482376708848855769692240322776161380662632823606808216992348667257603594900027882754916983613942168590887890318478363795245205237009321645679797349780293112685234262727242950779253915520982141958433478951129018774831720470044788306078620832555826905883965236051068911514267582023301774155434710440591091609248305479033766208603103964281586159502943615170620140453554029324765737267441731954027815799373339290716297011789819621968160538124252362510427488286420553095027639772028692582013146951810540888653842257211206210737498544958866481503880300554304172126445416314148487775190545929920155751688333370066922477825028460065367281155529697283046829062735642320813146337603952721025033609497422553436271153941835931908613408366981759678061195500481559241540247337953436239260606227663334699529193436407254769533699246577763414067614122205606984806418828402322952031374803392142441481951398983684713117393825294535644555113131093952022158206013300330130615804324835300737685962855473610193894948183069021412775303770535052418183991220493539326779131382539621895520205904984220476406681858283379550217472508828069134614418592426797353928294327080255171818189680971224471736837404049585702123487967690039510521702694917577397801170278156100296473018366702671265218500390370867690588581875201972605775278590922210029616079279556076743278219768813842657497557072859026831959821115012751707945087402346169354527951103713286776770172380554548135467853760877127065078410922811163229803010771681587024173085330270367310400437193334452730095073123289600526409279845906696202213941351755865078573463244286576106369324836303933390622296600405693000979389154891936266668999915397834979262553707088258919873270814168275667015146952195484036045808171960897676191136601585928998644226039876167937550483386778006152149580607131496951738160584614549512646817771088097571467876770350129874289372585563742551143045171360135239146421277097706699103247331234400953250899262039966912020435663748719190621601612785388556968030464190221323418280408823645083694847651771063813940952395596112887404076686144268088373348587628375696854563736852970285536494093734500865329539192485176208679738221618938987146072189356281114536036165131329749872660264837315870872513741892147136524675645821424175578715610187763931803239497978169854087993693641031879722931823549984818109245889950908681074307772257571496252950149149610491917274580681963428050921496842232148108072104736797008556893820017311377850970214979239348788617010515789535723486056582311753703136163489565846329181402601006898227087966850433339373162057537577775963120767562090200695899328704342050501870287252328654072336373494863976914714420223511281948769144735063882930465853156234813462054593866804865722050650111992219496659376341315542827189267994625806726814854883124149421895654281482561207329948751063785227321385032139557729394465057218027119659330644028762751441109951448621549871856494857922048614736880121189820422999992251170651863567149618123658022729498720435930809223574835648979677061353068572409531027039108635425292580828132656930963403420796315411609799717423513070960282216757615262588976336140613316874603965798529064652253739193106765798116372294175683559417480398239911661226161121459002522765665110908018452428282101632294221073824096014053947355337330583700170995112600689669308526131640282518027102242402050660038430021152400130898039451694172511052148488570695378021480671599637051398582877526649061547839930557441513273220249966866461352559988899489442118811409659331486643384689671196788338440054866184569399481663533421894847655902108894930897110649770305934955909254281240722924189326862630015918129719487250046122035212165835658943300275609512297236077650324394510004090791582799746994860156286280304819269038711550933750736850045187832250967746065434233425012571539865775095582623557672594796731752362260291458668619194350581599890904431606335016064722380045545833096511284645756527595360522971025358340439776877337368712814672783230858829997423920161876341588912336720295473034846017006195499724951393770567326102391700385417484745271857222125636615740994409447306918901971236598904570056427943262992800592077292944595288445329579279406956479934000940160268059642798454990842955562745113804108796775638711784880075266993535764162007298569942666009098229492602676481832595257390778546460203749864977830409474609639188258068994296597867912310788623061983908269219610058024710961487387061827147413087254049680248339528620768532538206288464663708582702559792552479063884431899798157031688803004181251586932111025409828239055665516472106520853813716685099508779387660985870713984525299634446508538648006932896314538113447247840706227424029537682321429833916946232194064871290140780730167051842127743988075798958904393069794749374998538112268651486111152544704396980995755788993674239667548935400900588005069704605900392597434391541230567194848058409506079030912121571943969919253275630714982308705142603839318914660935238965148609531157362374496117907380105155805149150959988960496156389036254211000048289452230191511254501640493593845330987893380615034951351035757210572409990195137617922898496616084086221545303963642873262441389222920939942771318293505921124102811348259714784684462347929464587920673570418998585126071662909077880404447511260555879874219531026799999312561476161062905135142955041776812367304393969690500094049397137217310107399527567349757353641200193519602253046506013078676166969923220222827667798805957464134433255054973703226679392199498149608130260968005994092973369504144283818254838943435502874494445813482464032710407988656837983931042537041002988927430925219617684931461383930825727989952082560346108065921946432783681016716857067287930062602391162080853139800618763589097038384953887084595810968346344569194792606074780555198398524843251306500361279045589109541762468703067695484414403054245125697128824772685776698385860345370964561795787594400961116875899762559843146452751614633314825606856275331347351113196192991455714880405359995259249733750640259478993400270410301883224182612418697592115463941936623853889520860596543605925711919089549128292538914962817556592981910399157731306828081038039868035145570155282187628833088078273155556081410570291225104658985174177402615085435026060129453664194410631967155117240304908188215277688902607094496026524581103584706250944790446898247204787595628468637639906214981326903399866629622798831357882727666099866697555165620128410705622252170790115422952793095882423967756067351557337377134846777885329352156923595648177023561168883916270018028624087965125727549402034067481516335844386200029440421622424155371431904824252219278342435584896134781641931975399336944278176891129387655823677016161151697019348095877872736179000903490019024498014981663531218067115071219578291592090033770985021553571213167050053158292810820850433823132230659530395090011170169257593707118807349333933239739975609652202144044947172531345339210471108510951142651989049660192466483566147388729216697896513196971333266055541991729631744399944718043337555178737482176077478564197941555319366175737197971258740786886670655957301865890007792016614673677981391379776629569044288607142562929108384166959905000916430741339301572743292719701793008959617100473517491836580622884608224646367434938243003550668121058356609788230384773044750875310491989889671688432890107661537776042770953711489448084005710888382399102262900353977994642963058829564006861595330472884008181492550646515277971674009177107423772365261607287047913833647322183535120595232285053105795156763801113292723044147925015657287632589141746490907055802065215073483740352285414132468180458250062790092879074133225237366315950749090499367143457962626858662858532240415070588213266106666622672082242094383340715342834665952500996406194821546819721959149708316485001658609092378919633760662866018639462543703767595046293140026183957772597635195425311859238997593251027311141790499767230105743040159478646692753687467373214875981680646892392285589513119596628787824432618964851020142892682391738931249136719238363575011071897225706330420455595140982775757728306082883262929968236847430491412062419646281556330721850440436108417137614727346964493183407190304684926755371190823436016761997148248202141510245138786512534375479614107166144911490418784106676345657700889440176540765082715244871610149076485064298205707699244724199590895083276519939311933164039232309284509405915556139271857142986982662115434766019457677822441109118426731075382758968563134798434502501429489550404154717337862876288321979415627626826366180590582338124082773027262438803357298791066373985455922786559985582919678328391582077721327922592997136762543338393751573064159846972476915693566277088648083820853074092195634551144507220590174336663110733685596426294021092138855820377589357662224656295125561927771668427474372262358895716691457380056935837279257386821768437630994835126118971260665553730816234719120417045256322616081925649457856445638352583421383708953755060854710310386153494562990910761370033543949307130759177336264286773283348754753678080484963841463558713301097716228898976324145185360494665244532262916221201934968011557497799493145570848523781852469486099491834548139539190942520844663442985562905698896588996175730532880475067131968892021717523767335938005611360497622202005287378069827060086961076545965056631869021635733434931983421171506394519799623839482796050913784586857631628213330238902283156419821850242737373186058453071410631879732898756908042930374612110888022374428760059943439610286190849788808663857812648145693830584860906800475364154340945787506625808934370213722394134235007715495006187388549014684418127156113843461600460861667176985649984287154219721967390862339334102873208575538638105889614663738875516373095942186116957816149408740258653872667781618031720724289441295830665630150700912754655344057919283348333057183066260140649093713117715915352198852482357193532115124378276160812554848798994030611845770716113860255830056137536526105097056889887140612642442164169461497076097937613546235050357253750192254120937945332475585815819864502609825138658871196205236552371818587201209356210502587262806573888230861804156650677394845553871674274281224431108338375821106278090838739955534998960626671902429614120711830519879570904885753417698142990635814379223417477066566426716427010978718951984998722642994292384753368669653299664223006387608499342816341337446626811764305938043742909764662588729884236853242237674132127580100227005976827516829243329323742270729922430279621061608911526200049919223920298171608021632279445720800342439378076610656864428379388081979058105613114241030063206058765319550204014909993341507317112929402214391982757859926767997459108415271178926092745364790438293942130917146210143331617698230961884053038623976516669673588399520773921854673368148189504197253106128102991401191768697889671103268738139636213426863770318739082618186105962424916234841498655815435945926781459570815584327411838481026102924663269140148318164815581131518475626689831274345735938422481623280458914562989627059319566190673207001919011304914130312211355109188363391344481744112839430212681200260095019114971025624428583408856213447909793221846974398009775760036780303829160502778669634925845919812237039888711076261218693418459345298490778372458000093190151915256549299030567471872417348901341610819543720078195669678319797462690934346840712546154182285956842181053132408221135166550845908463903741232708410566999433078595084341957591712704197460495237102725539285791816695994256718903606222498753425560896476002725355017051098573315258638847678533327052328334204963073553835859584054834148025724837556397276478283631654754689393847230124919420689242712778744300245051474078677483370193342074434730190115116083457226257590492974315959023008188383460411886350330800696915399869292080339320863340989789414491993269139038062330203369408497244561496589744438008426887962657035463211434304392415006024353127211123831870997375936589412923374698357463365731375543273664117930305479638226011474438804951749396600384022054280378941893089537410952466102829826335907761674068223699846260422015674732767075884264190876855533846396368251947691544384232954821557677622182850913050206416329190963533077571176808739640982362454196116923930031112102310404329940402640534872770951610986829595009462201299646466013297641427478674802689636268472996613302737765161456991908321660056236990901827157784906544846854743633759623826508840109231695501586418846566950142368130370255351795705682912139404505280151387437756884887270056439011849859413444211290348733993844234053163950603508700378694799397170745589192968539132074447429326650147902756385827862867636880339961084282132644724399729382765808820368903299174072587165192657957598596469437614762013088900413674678490567694000210936422207647611469156377884866868940512395065292487141639109568936146170940288887604833495483301903582072840711710523804575770136186171534100052007214394834349086261151863504753629300436452312929174934668686532484887297582009605650447955355224277245954671259161354848794248840154120091568725209724894276092372997114772527818639627338004109715225823833963988882237037042495026665762252549016122839593092301774452168578479313262704589462452361876604077198285818989585466001057243372139890211877764445573404261083563341698208567342322610602494445907080991289444162663322054137905076981754154987178635535028990921513472252186127303453299404827500420845829884904171773636728081659862742693942636789639058180151739822127388621295259497845393506135123669176521688311652906244277900571081886233495562843136822133732570037019775297097624030632661949342772504941594666221751848138797682056337073667299803437449900372816253077810481635153724321513269874305350199219036525862042891558469598027799660170472009108406152013603400740610578813509011737981936152386431172686789510109596277129922109852205324894208213540960487628369685410830583710465172243074690171875959665013200370419580328923647248994825708875109004069972583893760541052896775041335747928196037855783008581663165555451985949081264864427137874186667314458696237974761632112342583791905736882857867949647490730699591845835306470158244946250452718960528216088800886844870275367512426024969602711070501596193508904656671943008765489514487943187295775976456313758214636872936186073233674421648788688255798293656536480631222296400767288144237021684196064746336447542340958714508523196746899945622816823204685640087730098259107366081567763003975777730405527876714191032676394340938923504263384516336804453493296792068170371989281664758890444406076746229456871301402349079848181061515772616678294341867427827555105105275011368798922329670427117323216751228055696908569701350305140856658541845083421566056091242301920766034282139816753647438393080741209191161192148468195753327283221754440544024237860776803305429167566118978022727022897766953997728854926443682003093834021834034492684889692144856512572838957291725669199163217967474449307613741227249899640790237413907539651783198928330128129120655815742647680871486130178444893566635201029230219743345683395108945170088351137248481129742709722611197319406800334236590728471427648479496469245608351439468210501259753180135356020825214040483504225830006540942452365965468999760601918427525396959348901579998696755367165129423128981034473591905991929049791435168980914879243739867837042694462515611733352048278569512308964690959295222870482711792100630535812583766822037930050706394434945729803516126676072209842896378024368030342654426884841255142677634285951261877637130039383638372749069149508068970355411565031200108775468468166459363333208762762605121672586559481776371186014688232733644433383170870970811740757595361830356420086545024313031116538976705537134756303632357839389859517214236307125763966329447992834693520085575731998009957417648923668227279552457401069919318635082315265735740198340712486594452631797463393858553525522469561024371230126542338402607617302520837109315017793009968050973289722415160391326847434046891116745444866234999973433473522632765404011915426737613469009063639234482170667720332476663837880596499443669143179476385879546389194775468344914725594082427250766487386376673931610406553898821118561742910239118972881921619731209137364102761078459899757351923434960825591398543526784841865623201163638323279321153392761877736505319477002751869841189367843955169665183272886882650351885892961222075284131550690269876564024320920285865215918425997196242507024947450747882718826237719232808166599371634415111176693617013231987310665107955206912798071040659546960064704073898404010753640180111152756032081455943064498457533669340260193995730034313690531474976564593075217047550850700730647263243543060876742839176145473047220764177703230899563828967310016580716800864525131042908893510863782061372377122819320579970589138142791122527359057501988988066352047366731694620997831759642008467577285914228530050551661667314809990466513943422553560149186209835590427588229950507208709132440214568623341578828257168537299466518065631903899824414062965855511600748849815523429682132530294561294859413625125585529788215482080557072201906357083360554627529956767445597664233026110895794860969061270342993178539825489891829461409192107436161647202141894018621357553363497919107728849843623564846191837761441595132374562817616489584687548347056234064468721830054381224204418235672255599730960441732238366581986756978637987012726141228679763727691003549963942082794636263290218526468914895384812549385716622964458743047292773541127301905994534733294837642465682615662326672127990121005002814382584289130134599353924087617572935157004809682633999508294853310944189204758419875950885004515459025056852908198852726543999281419075459472960130872508730654485181763153490277026839834678216152004178875152990901705874219071273356878888496209052913766093564597131249164188957352536372642377253589263642618663641545025326534738866311768525582624363594960518041843488456325051249073990974605587712979376013046164421554097107886480200516080111341461540290067667200738775289075689567656813282247125251415706786676599382564860989235168279262939350628461898934074585962630758689147165640178151085331421195179110979264367294665485552483012084978204637434135062831786705607669137940303034602372513990227497467608541171970019541098271487458346383895370980487679048106263777577061527420255709064375245154293010366595275470191438255867076870588452923285304379457643904592044805257991839176433287063762724115450045367304056500696499903978838175624410200388988992883668963262107792955427971021696971133069708669326484893636502105850718494361727999597118689679068222662260175878073051263036547602636466559271300660015199244483570719480177567255030517260512813610657642107261537770394137854011390832155826506653023465122422838405294051623813659967998330115779397584803236329448041527869105077479546960758279883927546368106403719044913243634512227041583267967271801079862891640243897837516929607122900972758356321085560063880549131985398474652843925574458360798690920318504467789445804980397552344674897221466408327708896224945389840593846170203632382089695563393551057780175549827360899917161820542758560747920581433006914779475092487865863034562108788275408320257990510671159586744253844009154693156209863320135979992434283166220720557836407353314216913022376949186568033540816979433231732244831996874590271533632839965048284689666416220738475201261065613906441714640952950703276414361706027300947368524543193662107459994596157074219065139040548414526155580695430518556114049723048893799824799312363212324321089451150609009234278296297909381734596814433625166828012860167586158047739255308806923711803861788556096993183158165855430748810675346841869030853253331865258610748422022886462975623212040490417755244584049607892940238109837584641923846196803628886566822029236431859947935963752455886828886605056126701172317426725528869775793320634276823552154061287080921275925296571257088592014137736703972443354928716332237078263161980504254266417604330796741049713708655964395436590084769953857461686760447381988665811249835747343021279802765600835259329115231719614147193806554133047161577248281414019562352048075527912591466694024649216726586809179370349124061084701374446641321238765127262681466921402562737225397237341951576743075719711561684858858311785312196906613393453223142895505732436799275323815455798355590410511300109920382022447683051286913812646890037333851261078209364782721314517253431147002402832950115569174867503482158586230817615454503122437993160084817798534337743397516091146061999764959175691864567650238249938359462453894016509948217986719696781772137846344235205902944976858981792814738716470686974978015183989957090749462857823523049974553033830520271692992195887428765103453306568272467464560504902616088165771100778765964207547137899503253798955529230333352846996974538267633047140230817918978375784352667586738392793684563612720203449625597991213752150390548028182049516764742543766613196071600007082504788299600284536181916473208752300794351460642868029980374330604752613573441028071563484335053213079943267847433643597834348850996236813020900743101652313701381295887602259011667671589199489343698063459499797468690056647632300018175392965347359076148110672946116584710155207049480885695936844156081752963749383047950950095316078729316383759867143927448418498041338452429135466435789599437465973443804578317048634245908625410486113319246007257323429908907624231978484120770872811560482105841433646572221781387417193422112390906713037290147356260981309925724522309441253503783320767061793746433005166559998710963395790964892153186704826620634559343788874265420487686969786595049384124021021574832008068131314493616620137434040823794878637351062076653790755970751471691959098177503697214181485348111761642101737009236174515714182958718771072127453570915137658367520981413123017226744958139810313571876222639744832652795541027834663712208466872379495943082192271033498944684609201903566968815783527483983735270335093277463458478470589184283056560746056948569690928609880181227242552831897951515104434875811757226583746396345618212702826028557657249100958484354823974710595530527767584762722170620164002106349025690165938325073905640478442267044232836099527227332976324382669109890624683540800642583828284131376519417230194187933433274271494033513960066084788553141574606601357452646898208388473521085024430554362196982494516205678449251165971025057849791899079047391650481828957156882787325204718759539326518755651202614494923838687400314450879209412433683483800842439539170528988297026967489088802234518306819201910009981693830252600285964875022917745501490142950466125742904934101102836664510091388169549952346229385552169320197935446109971124647235268120741763488388217059081696012538506528945773909706170093241416118933553355919510576258764803237138464309254967598327813268975294034248617029509959301252200087344311949613032953210775529347311805418187214293071452778362636313246265559268467265655000509181567309460709741877594926140690027920362178522345902425438341134981673862065917780436106719605019646318734523303007781639565489087627536950649177162045757124930895902120226736535450313184825757522949380798792922262619737852007024752144649043465441168621885263563212260698208101090281600195893643790823393608016793578569089827441441412246934350798989384145194165016382472950613110304759038997382929723290315157246080824572351853189675610682385866780724869705864121889713582784560972438766013306940313370835304417638870697510853673950685655843863942797270157704424004958823087713937794797264597143320647975183420610154831342320078888022172672161570145868435365923231996949833768483875424244120929563629055802926806837219434927847191018246629055024341789747912176120052782622172760672508956633311407023178004515915262261980713734195500953379744481313648238399748432607121981825545215518118748156724746162390844104391757302999083197530728369641131222155258452780131480585536997756252641149016932201580654362635490335737534398194177968823348051875478443352234680917173906947312271042127456940778683547725729664558910300586062979196635162430658541647860732357457045614088506683242603240822149435634370735679421656599274265128845157529736688884588329735665023656214216343397185286421722151963014089506481593689894337472553196251422796886881041917669780766829520748931860664319239053726850872278146176110055143176528262860562937269540416809910511517562727341284881542604709325180947724407677790769547218706647071813059588891867634351216433409349979805814537775724587702953974079745648530477393176229753101272441160505711696337193037523066715011235421318575477813319999670035524611711510390743946399368965015359349624453122745469458201507015680949815590255826847218044714180828875919583223152277387278836578854624459495615347939590811291128695801377901264016990785463660006709463877235029756030289153734701530867246093935657764984603396606912631803726503457571323874663279407672253751115911791074481765897827920884254086573988017884909912903290616033280151998867760149909387947191036741449238291765177837295927314135261615144060482603130630893578428058463287691376937451153010003568075380341974188589750740050588358488036140086004267200046804929729719697391877072199007276722592639376864828580921030077121223459749604998256842384646031663912275492662808067476088109795576170129227767437008010857198986144388842917934798239206467492261936900574056725301280109663264276995248388645472203687319949409514607176792950304649571352868426415952686147441450890762376384896066348947603821230444820195622530823272916345349550654728110186858805130350706100574703580828871975461677565362110617039231976263067744405156769797957267990460494169091621892250145115420809372375115859708040140073438140793071299403611826981891477636829418425985615892517026125126880420800020841055768218630242340894265149639521856783774823661596755492131794509277971917626494255629679237900486524189220159248466567011640931976104507067522931014179122988851347408894419721012340007828276059377170619812554625601299960357368333571173154890959599582225351522135299736365517292259974591389595753580433933079431053390913586658336475032097899015113827408735314081152385574150226084615363765844583156249609156448058721717474594593627188819493739487049731355812993468673861576661548180513817292422795714234198389938154113711950400560172131195019863296141259460996390337441206651499067489139784154068199959758490470135878863323298192011281792413226335046598119323143822505118011619841282969731976892890646446406368473522143099920472592675992009487286979743013783297409830529027050316395077654942120990388659940452819566247145709650690224969623058364788360458961656375876950566414354893734078031458561267075145607615650847765079734832527621844064989265268681365333341160257354315708776676369010072623875383259508119481430339836183229274224450199808275026471783513917497594798784774120776748001606881364078825212945127353921585169111289198393371960885646922103417846175917592706225639272401278802731822013355944386521075633330881452397979489713030530056462212154573587003118994859140542033844525366889531391593517638319088170985947161888899347322931676912153094742052220990304698702361929525441159692597618408062199255858802053082681148347663122550529208711498085754778423014687456753400970681020365685848253873867236147280050831429630105472739526301857154694812669149775882240191867526284363340402614579025708050354512775673739892555709195415020093110741524061144712483919397068897443197523105540028750420467896521339830896655497879651326023028058048425970578588387211547288077528192494629333410655492610276590216084159892071923656130572781273393074198919213417161912458723011126513735144284004057646327195894945733964042883241490767093898185887694522200816652886248410734462086385132873625462472414806210952590182052092931479825315070592681964057719682139875605010234162616201078918177038656732111339810206879611650790676263148182644183862066925048590603809032793473679860668702991516492979101454637587472136180545253609463025140377737399071812099882230455151920016965025718887282526759481859184432919503787183013746269891173500763608814293819201624538806209770711158444166079243768366690909147316111607459424878506628051354118861941601753014814569254415298677543371321982606593870799859416654243243068128083256748627467627577365262949076657942892984597961322111118144931075307256148251728287260545111628675721507218650730318257199244197152372322222313144511879529840346359312478104960138559071237465010974274914030569874051467308970204030450610068863840687329644368908849466541178958094844845227848983252800803048739684468317049994648982900540481050956144375346010214517044307721718199708448056983377554176550177380000399354274040936516811176665071401875353588914805099821841323287537165206232696917187926825414718524658813586120716835864807542209885203753459117955172089756631640963018968135349497043027220480038805855569813036050547337159987033596186761711645147586106119034181807143995238035636196394040499306582091758282256805038094446949410291695091817539089836184839168609509645111446124456291056329348957877280800844366212854492332129526528176391978277986371942961519877477240265085942243279172140017670497686981964671761850838566072160190114590215053334740542649253816152248144479540249725393967412964378933065851730656850878703115837200761010765186236527342040251481388522527817546225242722973537283005136374591994370940892735189901370849505952981073234583133620990574921220768373675712843796205414751805705677402578533392563429209458218362827413297934283751805634058177591683097486959982846162822446701647941121577450176123874591218141875322384249345790918578860768120419785608497384523748808197228075870970742414840638140854280869738783911157504434626614919834315317693633430891991049363028589837046800822826944410940899254852789678684166228614659606845463792175561122386398077399495228830809122727683185569046945150310339153011717412550584357532282467059492855052945725415549639526159370421243807966629728327616404271766085974229527977351965463903395369601832365757258257766227811314030053934191523846095137706593519901512289058123817433086097266952232489176541395319266138671533885527525417286897490020655732317580438353970994783717502397506312664333400006256101653094032418129726537628824134149800559155646377008231540515129540706562800351133061242736477862356379330031444504630883840262389980459599101244204711366850102225930923483146414528103811935596614591855978266463099369890378126129210918200557249656528014379466731769635434574984788663559941636956457921213892195720599403653839303767118093864974324020819514213835773568981957366788188379820325563581034294608251889518629274447327055343803237805324572693516206296075096300336195865843095651678680126380641461711798396220281992306526854565527178177995729336929017534512300648026255165690920388548839164050767309112902472546463557570293494923857921378099850622166285658194000580381802273954998275243864735352587287185390939098109181356908404120289314255676413402761495095157312600783149868034570325646538740424844435452034649627253381797425222803427188524979120498650959277537990259693722405882107433297190994551448739762481765100205319203948869521213272462541225523337126921040070359227594126880028023742794948782897557393412284333178522797290991135350871343765252226872925038147948092453626370924341403774289534066691821456581824097894175560310595114188435727929208402043834654377560879740308369837027007741138667615772341645079786093297737803344806715712420228748737897710881395978975153267944677203545004938295181534250690246652993396146350514754142644884911669281009957011688471862770640329286636789189177027234381620008831745410582430103884100360457790303947532647753387483714778167663616680825348729177250467547967008929137402371808334891290180886932283908288198488053016777874033224706878216181937918005783037676526009447913799785495775071685668673319148946055262449007210054509924472130642968060088157609391894651234463282670506611686980308213609117359049620377218545000471764184974632022203607490705542358663070242062108546420666712276082967399837088083001490190026985665547258128272420947277434748637970279174066642525097315582728602556617787610148210176709904076263176801164262717001321585414583597134286653573582579934579632004783913621626420381333129818626179240197191842878826718456239901124774014287952874768821775710917968015806736699247857751043974497537535426483172234027462816798056306258164726217021719370967567076273042407667771028007353156170276899478793436376226975076913389558091153191716507173853544932446967500957468832721750624665133289580451380185656712504348849455796269936431578560399680564673662016504531326637401833153626884504193153662931303662083362580930509901322128155655685604267919947265965219761377809448295157587960068859708793261436459004691879431212060943429021353643006840801660974477847544372552267825165835934029632903606711185871574303830974619115563838716106053003124488358113725389476470548418980618747270568450966677707251490866860311654994656170490755819287445361881093978022387920885537994813585475305087761094750700802965186435388589684450543691538973348716162567388488601199160628267773173398559130041521467083785047841473614639962871945533194281221809484819113113380525933186014730176268955854419130646419508335755679469877215114781466016781176567816567121586359382298248578543965466146087521677213465796797785421044028895558611207563705874465748474041120485487547408739618899124535598766663400799613590621680554932493838076882577012594327151489599840173765342374411379614776529054228787659015355924142723326918328366147885760506987636587246169686022235903805389329285041277402175117203154151136818405042467736390775371906254235853622844237755451545813130212681615460787853110865156208130466930968477208143360379615078095159510704418971588367821766397643312992088666006415542469353344495860548795364697349118228976608933521369413089815536462727448140368029738364314538727945398829604995194844305776203248498122116319140971325818242567777120952198846125840837650152545488141818299827720131333940551626399316187895543798920747169129071489220589370621612805537176150781148651212089259524708915329374958182974085195032368356951853997794639219211186917791757539965635420835008526868191687618609963830026153974121131516824180374010844087763649995227128354434213185426165749587812255546709823736116809788730108944409157772434936920519544147292996392520602745732618355551078491605056972225947007457351860600108857540399818855386524305352909408336664812953841025878863291815860716128252171633554122417659509822287675425995349473658115359608294606244211023180144748853509740165971198123312942062426061186260740929334043690051005932236755035022213710765234273687073680843733449849068686390379999668943277670220158240187720645751140743936113904305985802166848700510215581947244800453407410860399872808662578304116255033245748896333485249161132158491166622816333581648775373886463291500185739783055602048945448368834842577971425563288112460897500366675858037669019910256583274936305494565874486021799270014329732862357772668614448955063959135978265779220797129250448229574920329919131840136995817888783369611345377207693900692384491218167831381344077697049797580795261533621040472419698837262967905853999800893976293339743222912611528029761492286149577122042846017076524752999561996247106564232089404572254501233096392183396602343020467634559868457100153606540159498165982167368371973127086887226970172215074287834362209833644238899518814879837590591781245464910647000264714352618144906737378656750972701191820600963632564413878266916319062499581536714594306359720673378208451082930559019096975924726332257558290709955475721630221213775600020729380316356478664427028319708348667051772231364562311390491642291891212490275127726200492783930014345814035053842493444475565954059515254352391403750293601997631362061490294065587345089289073535844757682075640402273790767871654976505547164981712620320420031679958790937647607642291911823832453774380464942974268451429396234412535937250467283873912828082817908922071384816794650154830174916443514359569073677165599698392383189927005830131472031413947820301531763340864517838837589632687927177118873878827808989015608509081329455095534065139537473342602266885661323005973087211817326450486493929854831510042228590657548308196664144059414674733138986559366786521626078727225510568451113315639195971430856688981992782518320691779865461491547961296118784085715607676820465369139820967926320403571705947756392836944379107580978680117265927629151753650667462630263709924726955886948678659227054280585412934307966773724335057485472107883986506223176438296435214080007888467281889130944976189218339712649485489976119577483282003174268040085641835970632038679443926697553684787984186393298928410262437791052381801761885976854862914606472312723573798126380812498503386753433557931344335099575459136015066545322653595926319132988213725621002797520207724247410229125514680016975281149624018870494792153204793986148865590781964928156266458994974567477004863450133041195517628955320348496982933444348871208777783167846337261145722284359938005927563951987824147789986773115639464945703785989816266140088528081991657753155324598993571410141096978023033415270404213564622408336472447797729317443204750782547720230911509987494278564986525029115533438296123189521581542323552709498922337503126345490370457510497914641056650930166951496460853997488728146792725682787951166605924956067753165399817633397593593861019691681330297503015134420141959387471416257406799895975709807974231470620206618004416754094958192946450473923071195525397842189547218325399313144702955052902204377830011277754175272969954094073760475197925331495787879011564513139404727305734163175363415309670954347630588872506433877437727250724641154601740709682418849684360281455058993252000870733825993030289132084494763443266775205418203975454566394010282263390158321154782121572277674213031531292240859419168561228845861055840429811060898534996370746068072520927759014997054948119721133957103735760207084856597396655841405752837591491551969980893339044366586453904231023361496585592084797644278347715849885780415261199795536013713800312054645167388183230090345442633155728811371615695433845462911738366801155269286124044186264965284525405966519074111116177598258957625337192286679851100377478486726169604344125641387413262498033012728697429343694109710576664291930986212405396229020506593457411806154425650882162914041747600920330566129722720094622561657146484825693519247939973326226564615535526809801359295472896830357914507637305587371398873992609596424739477830500788247169403223156605330272792766970688586035968375672709096224663203080440667908217102457731466019595723568928703147709630009510559618579085737408952599457227108977782611730072266384376398068577312596486049496498063903920520558930823252312195458462273687539253601323238200767467594483904917065406143579610400680853834200511124342203339581243621458151894656302931843796146082816189030742084298135973207775266297683818274222045772412799892114465079878396818054866685855398798387446224405389966485598028527749841775487782867479986907373837117284990455908241757464883251850558585843265480090307618375330556867613138504038551470108408851184749455087737348351717639988884324260013583115870040384361274102012167382885510364071058402412262265771014497190314602525463172638033581798693658991029196095357812285994078043094379226638393107726276303383152515459397169538911806734145610550144344133105038526462115457752361013259038158901165966354253416940547381017837235340671351004818383903678221014607283725884894518397109546770886342517010873000314538265834718594563945510913553997637302970362133826653115707219185380947830791755481045540410409276840053978440415873620170322249844511976957809018899332541281197916309536625166649785066704443431083957218547596185208674041649439290628004001902124112803190760473398884447355502396309707470229810136096170290171102779745714705094583952228099343153506625100294869070371023564542869098525504259562598133066634335340790549934913383111344345577235935932646837546761859735332485694093544348159229655161310742257327683399499424887571012390915275953671389993629456421186911168073067669134102179546587162488170316473362243021089391046861249740809394137379355460733864138139148854626475635677608802076455565754176850661389589787528632806943166506093350093950775566474603006743221959736142178187140664445337055053259191369812601660504608569472801842586135532921933413492666169513031361504206210094709703463456092112931844224979005191056459473128500910665788992680432389964631552597016381830523551321288133069488979350254500679138772189002160491572625120369923272631949827627428422573848367655393865143436600710085284255360728583968024260832110460786838765203951476456627631148617303651626122033611505595825681855038741184303571932780522126071771338906190610182770109323652581825887818197995697527766166203428099760905368607840765280486405821893685549078840856874274706759516564071508426211834157765248067760995318221389903114500573371031679311394636083499461475827141300417718425209309212491289964755243071414301983427819435900274362361869386306853404262896275403216892281103695518238406607014604311047584177377556555232147362660170486674691537152321649728274380333387001457546206588415330635189629722682672464083205007333976684613231222197715489811968897964858328767213261793285031089475872684399547210664616926471664127105032164325017224517268943090708648257864837225339906866516712621298854988313336073383486500694682671803466658450498879946518128054503515446291293011864008271086010434332506609626415784027536482719320870182716014883200006929612855260449121917237132367517160445057193288652206385200123643216821994825021056667690787873575386201407848110992223872133003365255162427895626256620527442781970622954632339818310097387022467462112108164047086699232154905632479930955501196818958770671912950646539483727866989438068011209644325033866716675491534757308904632253331773005663638413874981212013056079963483975046685976159935455827379170617293761102074491978938112851245364346533576109047387623392186599178055215988772325774918206992089520229878721284003730506965414181047990418345326467467988809864189601725645141295276680477378059521830044107822332418910770740038674478212523393567759937797123061979076803667441132971648195157828947401694050821629144220569304012568068653147987234875901043874102831761408869894490086388058161544737227684817446438647905575464860539648925611095910204302835555562949486112509628186692860837317339937131653261365706284201898374431071506771158660776410585113433120370871322612563641814695099330484890355711019723022818052112954646841384102578377699993965026713383313863807174346659965461265207461020673354061759745490166734332812103711975647524031137536642197977019784937491007520637737494114139790661799560947606166727733431591538982278866809398458485167569203632206259177072099605877619086034090654484325546312028032720586855513595775139944939424177679559908547807120970829736104474454446325743784405967160739610142260183525685124098512658924070380137502852813021428902978264592264612991160890883526638411090224787086118152301150448632148992270529282962639407669967794396668643318402642908500058531086165190186167456605536668978666142111033853250522649883482959020214308034080306355163678170602833370229331768642664720620303353681606465618079045308712519003413341172756265107209693235079356490888417526793404228151809333318540145061866553031427643218866661944655084645576962677889041242536142471886786815166570446579070349587439735885784499701515575824243511316839118973741903270124383880353098578650265584133031529039018612359212232072409784907624573484693522210820610374368644795205171444633283542034304715676031611742384094009033078009212093337279343740073983577221498372852068094592748846620116704201448295418008497000787580600348369659755915099636544668237215054442917565916039999649084946169639715198776512501803117603980297406340958467272867651361786669664221295014065509668867402244513433394872733493917141147529080407033978597270987047135400141830137721660872236512980135295473196285610906075674643158631331518520083441131632352862767124654762951051524037237581056472775583494004135713004755696561360736264692615774361718221028468002379059995111042048921198891668738737561582096884650466764478719547920599783355856871607691334309048499944135072403118123171810162222539246373359413670656902469056060640407006930171596790393420603474634847872341356375139351521273492421091782409309190239261537945787899775627543853387802133232131153246176337332417733921253051991751854634326907919808981402974254162106011026177623487126862137934873474533360702437946958673718324287736010319519733859122299355683301498427548461888832765925827145395780574274765599414249438385687412279905773901232831035399762689458782300218463572981858892089253068067716559475509039627378989313282057248162535588777577496916405760759239364917559478824498232614847217780460831642834195354383333007843709475307535621413777349423639792096803851452398511592268112796365864579193060763242878571978633221849775443510153336509470788582092828108524824115438372287407478393311790922917335263434697894946423235450717852126955729214523541068048737336564314050365241236599861783897224627176635097297410863125285316056378176348542533801602825340694021867087161190826699960646482973112161234681303564376205492764014330901482094479626873515620603177591516759473543821390368073746041143151566796221330993352846122480928975856257349272719285457615997058913546855497695222169562520152379234117393467918632329954939907630255606325204559068810611002506963296477425094215082334944962522467966688966005935853236629754004846784111429011104315871405692795840038586640216420182616164487062208665796914017876606476668692222841388849092192289625532379643091207724001347925272746803556997689994702246600559404228940018504899778401065413566885314583745345831725216057885763313389593372262733456647842185149062452561642912162011743170885490791631189899017813275580934824918781584461077988504938621758000101605251168090459252979588474031992543587719792028393762575095153327305989246370263210974012679751530644844701706705407381391000488664911775053593844835062837630989872590794714808629890038946691335783894289963915317526987885960763201775228926605983667618764739145572652947902472008488753396279652229556961225245838946167589651366391189938577831547047485626576341331410375433627336998714266138442023978148140058805472719587908841749734301481667068761863998050680292742714371008018703482841291342373718022774427347066555158860325334870965712543179090429888820192007488878846447496343878681817994428266984379607959346452230871408907488908025179529485955890173915998539499803188726646272352380489879708782356365287840551328070839048794608775282960649459277849801886948762980333589449502471547634374953489856944362952369831677516945697162384877539267850875077480109898046461924873041278848285396633231619495384500288830208447712333659124791672014480421960160469788261181986951383128512949663660116525551392696698557109313218045238146034626542919823262210806848091777543762181706548234430834497690011942184886354776784948997345813011278500704698162770485598674462692106017647165241014458582765671962916228158439995733313515165621688436731862303370412543017510396358109813939975750600052930923781828865429931122494175525278502641949938940229545281153686260233447517243423633431575570323235453201884659567080252619478415132717167804489701694343309341480510215094940359730723999712448282386851504166473058312744500145128264417264879481147486420232172201786867655896317709758425812714612285465985313177031126524481513020096412744999515963899886285138525166838264515638128058580455796068930345905450102085420600440266050481953808777317952262346207615891221115501598506581876131216091282175509186104680693890841793930702222223165798211811976970492815499653928467662808941953353970403217340418032864300076191163427940618218402175975552139058690674500339685970541275427196891672759673699474625725116863374288722891751295562884309342035740032579492336307601441441166564834563368286331371500529459416471594920879495159534970074543410204485948545198886740049394977344748658431503030218706866762996844217050248773351682175806243693681580220708028107474307420734257819196645849663975161632557839649106466996987849300797325926000009823077924211870447667033133159282155118305146481780408029709022567050024862437822227335778341149932729865344228549821959599026853577037583954610342344431513087946870851427626501060466353768269939309774933488097239034898873984842981711777232937351991234964170817193229256161465042071874911529469459594433665623742511051145721782649034429071077733962872245855454393592738528437162179322038212190579308610701354107084811675857888350551180897472807678316320971348366767272269391161350037321022421713981357998566550726310131162492684439356297068975081077465981904943205338359020643025639728018937555577650544110873258772342942487471433675265007927899294161112850320638569180538020418583773818750858945033475507804375784645936297487361137524805959890607456996275622664539850120589054168825499944558907935026690312331241712701946317069645353477760226229030045854603053665726087269000282685785181082686349800856027716413405265523465162486088900088050004391783181981722253986719040430490416406499222603336937819135321387469611786370951411384360631653695693801727294608619113352384548303632874486993481728827365160863458452951300272341239121450341969949429489414960817222080355183010074581685083002795642774597902660455376154273305193546709488296433120682952010951514134992858001739937861226826890183624939221422542841076915277096158947405993924215359341310923392887072141404074041636825438667572035151570409768628196228681236460315804712226129800134394162728373670735050728460031969294682832627163769709469963719892940234854449639004893609710800950743030559092303806731770578559493799593246025315929032125827042397168829909154272915088222907784556661609811393596080530147201055380224194731147842685822934275775251868715779528047650178606025834937258910683756374770658257828793819144299456843891591369329704369803141100513427486025733765966381754806278017523555965248300766011792509262120410122559985777300832615234523762646646019339196701686449084926341164982702469777365254505704781184853420089919958037181197614854644655429522413798153001185207414058424453158434511881342349568465359773454729331168206915732804938345318924188477316508184242122105992181791569712431228333490778575538726338368112197841478681053902871602551679125450151048418043696812216829545442636592637204451995299536039697840691036889736290680782462116519407185944839228005528665541236986844854449698847983447997589026233714232008161262872722650287882425894153153601618950475492203717267283731004057004903685669410469522957479511669267856718872486793334524184900098642463536653077412739260417418524417295541234885463850880896067779425080893565066729635404006688209450775512201753480814880756559880601831995442290201772805032362314911317697722758210683088754263787335096623748774162338555539349460141257639621187183927747453623232063764489339196085937080281450779642204534735798926002325304456202858318196777799791742955968069800968856914655136061150041511645574333761988224632564260173321392397454754683443132697154800041825319440255931064960240409706174099324166838025690291828266635082686004384971950970472739932811070143094527179342642839894834195846064485837851867914155000860997894786772740855399391153619163273452107560191823190854000730963445323088386943188584577900204827187785525080832716471120253555655730752913051964887988912869087499582967885100139430496366228031151812127080410203580969359391310983905310265170644137150233010553850353691833273110215223514296550645378344716355761399292371104830696368321657188398825335469683296491988781129891850528532626511337284888018178811625947244540113069310810911388722206516022589942147345780020525435888441451331927208543813970422468105822051765360038018378946311948889090532634311436533826790566372323642502794654107358470658489911532464273884629555376899241839917375971990098018092394396368070982068163486226826931431259790588147140120020292235293289414876550516274516876050198523929940869872554901166672657815609522239746119288115422306376795412308323111217081500346187973698976463529115412224386239810921984865258277869871221618999104712092571497052550945817964152995606105617519757653938599440277470812864641264348457784995627578111818786806943415864290605430169108133233871886263378848253234729793085728205799425308825096287021888939729974371759003948697869625224665988218303288835806227227178370890384993659255039106250780700750019795402789973060473974434631730730741428821295579850442061190092843562017334823300350146648636662536687646338905313857102047511013097339609821189479689109691826919531208768040497591177560909014465528172509252677666147564007105541449736056111117506656396521614985454379630160166180660151976985722226530369761545571946406491990621813033409417123323967559266166686185544691877363129592496201650041041808923170029073811238356820764331333526065879470334611780377267978840874417388614584543306539045116445658958468409206722676941883576940538322848522894896701330331643503184939834194489162635960791002591366389778827901028372193142817254329172349465606746991825320100075882857960390924327351258160830158626834427123820681953110008795716158386010283275574667992886985934415912673461534975185588883856100602081302661914405184374706013001027241439030409814697783229496208856920489555423434048697513326230375370709365638731384434400533493666918637659857518877414323242455356892564844226516866259096747447511592896052675878762952202017596273294939305237990492688747987746267842300859649386976539536356152143578232806655638295799006604173580684443909886834626175952123849758316751373501689405850903355009149281331532259326104743634389735777254761140420503153825072597134684612762002971307372361394878438502171275263316301926510238980425452051692258588415489767505890218148726293851510958075321960679949942032023534796785497083071602237038082806864310769456916252490493577051621256093940767286124612838675451537493985852056992765847989728986698642112999633090334942609163195768377974192031101237352684919414125649170255903658261477128532212288465116893810075030057605586364913169593655509852704023393369716957816504660554098130093169203573709260324779392245494677515726085980517481268997745820085313934108767870826348158463263176258069078777093975342779628902946456830448933917608393874991381237486323245032816248132397966723907714479266657672874554910427007340451354187502205739314996638812760326241104377641394777906724978044755445027465618495223391055515338924793823425324033584594720625132033881682841498871114174736621474773080375339409390477722742152982887817487772776161131712467222800060883570311744817123009201657200785680353206535745555322642691703636434298789323382557004166243400085485539161738419487630843989316083085589930538637041698883506267446045412601378610149874745253677996062222710010229350850151302123466528663801831903240027544734472733464141328981086586530314445532470648900949023357983091478088397401268394813235161104522310811349051861368950793639227876678560540007835491316055958192613375685010845311552452731113250525221291443922427989981271895398661155740435323241514512466341821879775654747372284819158941651898727910088652455382077380966851542077862435930054173089501116676447521189889104717444779775605901221815553781316945372416256502819612782461942517020546291170762603335413882749491811050196282771321533903904711622451698173959725956641744334459584381400481107223372420986005101831897092283723317005135314392927606458270480759004463110999165141130122882713161478178110344417717014229497485271235882218778813069336820274924412125088956499646771376921296931624005361427930354835371473353859316640014791087208867777042959656542999410062959398015336179255805767523262177119324731675231703289145587521788388285740139080355473130525191978891618174531272972134428230955851396389462381138685025136393675653472836265897535429463802028082918147137802850523930797326570481587569583407824991331240931953565684776398886273281081315232338744716804542259459611752782952777665238944737163090607351898188312515139365828626008241484161255611949289287954348693819372730638312809744145743444889688053742459639904625493969667658505044794084390259091254110551863971992172443861072044114582614300246529792460391037890083649789718321756849953801673600736043315459598558454043352818330791221742503148133565039591110296926916894272585960198346241633755218091565248772721131450061895587810131891505430580590816804364042580862101679013048160200703430186746192561022624141164984607627378696081587459802180429657943933614696596619973286276127473057806241508487288399666089524035718076069483168787369960269878642909865595986549740165184640873999785707147886230553359100592202002320225176513819767601741753455542319654437237161395194648621669846038601614991248640865690497482352995656763116687598609127502066267859307037168047734345004151260037312537666951105212201254507197842784759083419863451576838137756276881090277462494619892096523470202967989663549846778623040488423762055930592992241499458660900154380464068567945822032229527797539514848430702870593420361659171754740072318545733293512463196723522724247129967103149799671946719084202837598240625779834426874088006983487364406631247357400335195041199866720610197138118509282826583832209674510501576312562219721995564745749483691300678830605353338400426968101046637867405167300768545214059342155101669080376979598947152148350996567553359385780861639785952398454293681563484560381915118777616201757966087020705721108956138458930220599687093823654912199635686529771735534007666863652891524006648482068693572867469501569418971043559213488776536628773598099178899462802929496356584083383088875778782543416703640302621320345740481004923501632984071503549863080660998672159793106892377764056683914310035477398861917577020775864532324625780011595863789018565363094489221307152570019242777189809885716738637501938579328834670807236371731337819496003499838571901804355656175657884722045076791912864543937987385603363702473242424693154196937449710177842986715330911704807991365632995446753527444483463580813142140206255633718069656347256705703873699244989116493436617306002106989826698555504579557513608391283870707352703623269804632795194790308115750785991581814357432305546490939966659476021986712393094530217024933317058458304780313618225321126244744311938104361538699353661363477046510015480152238339269018090297422579079724538167149388135968669272165871617584239562098347342007977056683215666062664915493315822757312275762618926370148828760384916348612661772166838271030110207671731319595344801387424221294160807977867057470612690062047597620409226168499793771560308908237620699466764746848829827092418140025294178346029808646870999610483251641687233380058422108424330739408608728502269881895418496838155797317932429121045081868712397839016399319245701776867053298222819661905980574660731239126469293132829229954885271587107026886981499516696237118366708593954711401107856480852457380762092809253415662015743467239159697566955152957018526004382462555012235303982233487171519380846966297752675134581579574078479086966407520038933572292475281269013660112186281473447445327587183823777372771633792269644318870013825377413128418528457032169936831399992295985799312852127081048096415217427255609575094449822493960628513101509373241723651664073052327407780289153694034890197015154172172169587071871534649598698643005531761075802175716950101246063922989507875147755197513721453492424714595281248426336025230532844326063125380907489835503900122762086502370651981893611830279971598337028660899477744927900464723226234039613822040576953180289012890435368555434038752890593148143488230711415460154557977480612320740814808146787912045434354315923606225812461889242699648673020012402972757907715859564964018442168385718914197584502054145952981566713215892527574147449898258782695659980678239475423157057217537496172881249210743957309792041433329225155947585797498676658383414311674921609008025085227674224181371873261808660661930416398545292648270902941230225022506191382489660156703694345919940029118763636347952221784228461481479808943769606754408997692013238827857033381919357516667271780490573121529518394904675244472086989552097439897925835982130888076306654409563357129310522437633875979157008178715208240186665946128189974623108622026104888167685056102759930087480864745514275537259127006218646393818881705918150815236148085434843914316320472486184898703235388524639162249302757591456416865682721213146008061170094375976553092925803323549157470798071954357229604525035879077556614518071615885819259975829630442757584866978331317143043387595330879156896830688281144764084709600297819610041661029888113435055229865053404890843246233659504870879190092904386131830259175669176566943965244119761217722336953182582588105316248794398399732987710123673956769445586692479521399544352930438375454520477106205634022062191210885741546863899901248239185032927964750031044262828154011046031427129349329772126835720463704845429089051355957423115689765626438450412805082732850180980295577725936147394468782821055754330245747385324963732032435595057820594711480964134164228938111215305220041596724088800240575858063345079479472067781246481800979135585037227382870027476766637492098624221853744768672686919285111466520847365048714199207375135680292889408185583857957686161871371351917741412843778342634553328012856075579341287478530435319363575220255063300696385099993069616260492387098961555523093741014722092126877167175107248770565035699723769141063740920728738155829807040498431001347030432219156503664977949964309983146396776242238780393578434116217713670215887825178384738869259487475392704280499643428170224453106504811235166924769314542273784718151687382862759553989483195099260846463355396652123409652417895068373571006841193084072872120741294764323398968702254312245933035925008874557678058665705064332308943977061174595048828163501372258168394873469824202239909312618758859149688965955199065113290007301196594210716281269558368427762460755582678867936706161426387243923047235584412227368098632876994901226626111649017293090244888097954097843269055870212248073708257267597677118365169453990319291631905174750924428356232253661384615878087932320150348209292245602028841132578633568872834321077040948500622166190317158461510181163927776654735412579283129506802861340752679569907193192467925736716522503366475039553789517658551013811312308988973428712820642455274361886920408043662163134385133679744245916859012699442564886002545064334755556963517397883244953542312020391641639362971460335648773428497859329945016845160035257676931764300066644854947691658813090606156312787529497418425904185644746028062973518435327699092766127353862022681173384171979075510874215813410861088641125621133526705072625091559363479153365521190738062555805887562754962648754865388613568441480051628642989306591593302593103192594578825890015461100659331330248394426744999695927068574284411135939591075742231656538088393894176943668349865839443889004110429066774839850590117048566019569353006329663598381597396047620882305488649459384979945772496726838053045109667575374058967813755200898641800318115867756016008466520357211744045454685998314410371726568133684630652571038428416897310225544111183414083197914389026599770781816537274725977651961815810384898871992389826046355623850796203288302894038738319105031677131073805937126920598354173168388474471930875515146687518176096059126838006145920820796375315233185136869215564225113149283414878355750013542734557100675961453163852034896819784125256422679419666096902787822425277302485888301593392041537014910326482313869771989187436561178217254263968999837666634892051538267876691615356182811758937713575489468433177314061265525004565597255731317714938189989892961437932825087399596862504162693425349466210037670838399581110590380657115704620549505943161024131237367715665136620301513393935315186370616319392532883268977305232683702118428117050551054380448050146224061311663191588557465800401918211788364376399653477248249770635179196025449074648992742157887645252288359246118848823588361543197694252696784713941468470142625622460312559646402464019549522450560833539152110434231889326490396530534845029136880386183993726593810461625484800669143502681379826289214392945533351749546628042344993802877786135382660406972043799458789498510498775666114051454092779116025879906066495122116352514316705416495138517445532431767675802689829073530856803500144690122620253211928878653287672505840508727831330062938962316687666432326986945745312981736149956794539804030316026916437858911066311856526214970210767600928977561834451331418343005327111065942905269401781378676063764347174677525229036509398123393743013399577538190581733167280669093219943183006810172617349840109865106729343110242221644732558289287683782338086826417574244653188369580821114753195327854984667621334089584333451598551313859460724373657926621341610734361544429826421182623313561786749871419208115225776571827536546706630661003000306295999777117792071373707887812720831789245631336849781180522191532164816605733061494014060778325935240200767285713815887238864032313045595688878204357706801519557214291624619049662123042614118156942397750747392184934134083820251627687106731211991904449804355707531568242058293808825822148476710149867511716864510421190243161415082548349342885790304923459376632896219508319261668159885148196231254402380764263407117806677575919079620035054621707997323422865391159791346389846175297712840280567629200809076216727429821386544432327505066029745106322450406766934280569325971096067614046750382181652801475350685545361288630199511358258353497326759483623949798646082747143529331859736822638895511843252173718489490178793857794825206807217841385688071564307693320532044566486835370480275175800457268766564207133004394049013616290953720564979891520777735068604776990983532966072489474936088601839351513991763598971196703102518966973957235365225123631328114344354230931520963236356896007100720726636814552772903578822797239906560758568769899570632127059892818225903526175514435051020692696863826316237788574158764879893613312459247386679340642368760418856101376319395317310595720772104947679715991964758220315338512540692128925142567179715580486520718573312574669669922537272985088298552186110331463754310028978168377059250365338273300432230727019919275050806630441154591250267921496548131298079834204749776008278622338734183705921894295508118028106524333129761695579316060615057046925362910511247818968696124620238929036094872635229294782041044415706372730267043266273155348259394993370419809744703253731997073619076697647818305600927328803060381129340003386758639546460865010401078034882510993245484650537333115834517014253571174334174069653566430759407551616036738707984756665378032649000076280264239999922822976871844703137282693375918039682063480783044223544092677877376756552632981335051194025756785566823265786547198567676126906308869320805579657272080160011780953012980584983399964075562622732083954153825593991229374348342556628476501001826008788632596399956927022865788918844810584943752664551431293927573139294474961113875395500101192612413238474509116958152934526377415526859271344577021096819194023393111909527411707170438728421671489611194463882503021267582725406521748563002441055348113880862662951149667968312367884185158222588083059888862461038490772976265333261110374751008394864290820556397389401305515353388481372247709313791511665213267536537526858490363885320670065113505428425356091516822460698993956042797507587913349501676068248161825584828969910496254739497084816832068743278023276423800688463947071204349150632546141183846139332026889929596193691136235066486819150551039751760243027615767952272370838167792455381981490083571625846511305721442125009433477576608761795271327527396736553862892394657439069037970949652118693405420255305968722492314776157502807307374706316112863789025894711281785468548798399801197079575740262672660105218909938151904180848568496755941830458914432907417763348374827639064979439818408763653174846162820064582558099516597579634444306445673863570557845168470512198943528923903564414885283219467485230090889643564501942852114130770176932275586840589508711674032027155637294948950171073069580525877069905098517243856019312704600668166861327182184174296711729871961116749481845136395217297789227367968509192707700814935056480468376423781815943900938624963157501459792832756608438748431049275665135735841776924512456454283423442892652881297574660139777400067907683941023921648848725147056689997002044940865984835387187740157264275910736813000655067629441518508797698541656351725161459223006412686191434957957092508495232250009897507824714509803521907087505800475071822463873498251756976680724555927429047086955088788354484297698686945703973785657904351750209083708410644514608260878565926900582940707629717500762974868520616782353189305422700686622161790795418204034026186055746880311789590581761361397478755204099746983555591023362705928772469457158491793120366422932420764394563080684857287362035177877375329617377114194892713722335247886640566543374150838567619243254378236027889878091576351761881563635079092939682920952965767696216485708415198059815611371639256801867834752118425258426651404089408985618173098720243835853307611184002012893011520174729751882588073723722900386056697230875257859033868342730589866993224208685680606872414527700789777857405111184646759128975955296370708072046852178675398172141390611913176782781674199179234521761460588340655531837265239595490045350258574351727170185781316408713952922378731731397335069463971752511091009117627683287031860021539616116994426046421532541213705022969077388168795447311391664077544580150168383952031834938994900646790931069139274317104870465683519840892607145113244508002813971024807912498204681066512092620447490703354294126286989181986564815402163401705377550385875011184064195146310903717767754663997766648280040256906927815713509409437915322938780096340827856277601457048646752366583166596999262623553167949525854482453276655150025107224280832507560294025962308478451153866806794284615055064059344811265644338290238999265839704135716000728069529037148199591983843957704932942415848338291628021169768709900279947611354699717964974131341168218737868859079042647206801996773663843362763723977196011285198045354977232885074149271925393702580052538172021856024985710513997239944619117010020443706225431779630128002173911407287975758456242466345470427356254461011529218018574254377003039275009346342372810482269115119777850532085041364177592118427760387709167659133591870948298598205146731138879006323991939508400117597014395348983074790031805206540089033878077873507558327218756321219635088742029812245326914970620982222990489060373231891817579293791694346853912298381314058696107758878051133698497105468514859486885599551845718442163399420173385928281635428192157900565150944353743812420215058485556929714565190172161537400903534985518488997249384677106614596492683319387271718990780809695726730191505588562887602918626827554832450730963518025979628955027775842341841279657046747069013023278600231114002842848952636618918196785718434329261435916594805330432838497831554443193912444939176674802754813415064291177752421014158428335748789219165462269045029686201383292349179625858139585909805040007736505491771477591220818676039312304552583622905586976369135797361030230283767587472798590852666811334383598247183187625540408200815290798318250008827885950175980820972751573562787662897427911348860364942971357848877021715087412314787169152599275114791965275204043646403919697749898763251266866293521612891157692774185061457920767307978061352135210623657143238774795808379009098564947244645827952751565074469352247044671337799984748969069016863956296906074071823856385965550417206740162149114461312079187747167893556949032852060837776962216460031502991135895389343435544707477961202922411035790059163051267707807518648946700182717468950177412902654845367816679434144956481581472706796768427256786288180598215574448850407689421036015106805171650139711917337600643534747138430314976317942052978431546948170177127495458196260753115710865110776828608520694731004100686496018796689893535672737719134529410283261649997395135401158446248043680527592259189435943247783970602394054293222834032525843692292294640542423717590602295605943659057317840702424483556862500288442141163358081223921303289794352117351053294383814205172225760072366470074680117366117705455569972864558362108424150232059563978939087277901937342595888682146547390374617100931812108512899626333345009202808236313676620107521556290134134988279317055475571604489218998960775800671216061579120573885168409021805817324126425091642876699161519617525471963711261516308148265706054973429411024880467826345279805252612968971877582989010644260099107030758580959232699846750849825492096758186177779953287125874516721929736984949663972001200519484878332650384680854072301569296396305921497837049486234366264638623965131514445963950130333957612916155005814172043475200497371455148408432767390376305604408848536848602424236016176438100077295642973841341372739529857513700347947223705480250111071394248231132333278520812418479850119930893045016251941411249737654315191428296244691367873498239095326035738778251422799466247635885635957052940071508422167753076503382911399028565085587913177676633707236762536146222248360420466938240642052273276377796557522130955284196120430666666209355543647427079611536538564866397764726868723869164159448910048635503111887691066266760753526190767206044076601033344355452347870777372902152838267047395461808883181429643422378569228825748088767152899557769861622665859160924855780675293655916006160229374703686753400232095169977609305511429986732438475218587208693888659406624900908433226706509150496438788328284879644780970961635882613351091255523063692903736334578941714261888553434289839872771337579709211819540988978898112581360921095863476641595127255939587281391193503571532378492617761525863202082982140729126476315855539828646579441097260282992299295604536428364801447012956920138047333466183805978742596406369668637350807487855843403474489087074934616608817217028423141340752923739549599015639150666275824450108897019373887179464174997483503777951353072469982258810282543841123895539068821751829738692038201786611454712291453770270922632787340538908701537042211888166262061759659569598846864248829431083793272929516659530063982664269883733150969352284273585862501029065134456229017076232369441192749802966294768969907331037914815805685616286818659641820905392152679743216331022237254699635373544664157443263335533142374529526153510867615035773638744423497229802399605382211667959938972096850551064842659482886098370041706604786817745488217543814339537378305559348729633669869662458652482828777329455972026335922437054187607538235604335686162487576426810124891175927732380102200664252047343234985439933468798059955324261784971060286681319621943134133237054729168742105098905934423273162092863653548568187794789444848896399154695288113834686867383327207764820859923974561713531519937025746004675123426952423593755579615176975438028380907476115736646301267187546887612424681150053525861067812184507129313475229535661319743424342894111461677245157581740161449932311179840407559339123123314225388477184800349972925239582281188186187603358556977080584362800938439748000736043121785331805682606950497295102986372597654162812626084169461866340094922335370785071422231954476318572921919907573152866700978459498931539198146471460156175241542394536967608907883724397988565513154425751601185969474447123302164728142434050350095350131560128560779134734304350333710947464630754488272378684624894095964291676213677481735057222380162158192543955346375173380593392343102272702927379232538699779316928217687968116150060986101768739601851431277441016148024612227673209507396331756464917005124535305151388658253469535378649413215990916183995410813919172723014510203796096886812199886827197084963460970911346913164521584863425157954335410456245253862584066581633588155892900697352845178305612499334666934418151707545414304874708761195580047459214890980762435098374986508842507556795320908842786940466203465826480846960527655160896173092695121941472488684053961616687949996842356658627630685492843063717458854642297510746237472547517576638298074625902811859190209574852848902106405422857136138179357171977749977661224951993927579763512698717825134124876206633815407381988166452634882391429134353972918509342888699955386964707930103163262858801647723640732745674538145848351467209248675158423367640009801116967418947872643249962427310667570894529846221614178788047947538938263275114439631587383651328341874954185250446196105903201069854179156942495025530177875453502883029384106009404917777462034816807398724652813907631493629342337650316209422981055944129231165361931210176994778754572686522143268688683441974983707581130735409892759671047181263928285018221210293036747242277585412978145867107000341161947345368250963460766658026355873283265221774610825109661221615130486740889605326872871086868584834602296710554816157693614408525371085317727476598434710535746410613097833477519804749056857684809909721308686701163442163246309087748701862024719286129311582301279730137021569426285415405163871421720614223927438335821609178142646582928211873474198901395470147111754205807160241708832441022640056844131249777097427479607724330338323315225355559804591284876933585282228769124765959695178581756774246410494295655071267309582318211068165198384742874937362955145427345396905878262497333139368912092880657540065275631211690897924494543147387510090351280549307910785414605731401951713081526240984626804042570144390563451024388783591588293979795636245241329638280655192462318894168613652197572417578717463268616925642011359341978926292780119666524654191539565312455437810049432965657098215109259804915091806017933161780922007621462686688457796459416913020288112352808386097329329357842611446401376449195340183325314227084146655989426836240350473705235375837762739244611261698230913283955964643536401801335733443412546751084251244136514604218117133057550345209874165095504653587705930918263281231291279444953604910419905795156151686591740639110241087240601972075797410480000800884796639427082931417346067435645692026868514775374729731551966528366795822413670765662778384160669114617086050190057924840375661560371492758094440627505447624419713532072004970538457602301042341075134630768489273521984095772982797778241853829597097505917401598285266605568606229479734225368195050041715140491792175525565817366014918177688045402848887131230280455755242169724438354911385760243073047781005875527342449564280674289726041248523497261404702932653113950752360888700966510034216940449099047574222889799540593166584947880646719806052789763531093065455208506765200079397975795957551298432633123151617040507440475646887055922858745833909047378856392379320711270142305767972493445831768342401457996748336178084549500657577003781371036538705708590209682278396575275505815088284614810359508798495808559117714204339794356694413825196131717997320903189543926688788844747732625674032054391488838081183830356727333034571041323858508920200029467963104368198488457045558274128852785578979386295271463055559462480808361002217301566396611399827756992669555686713604075315657489418571500480761577172658724262902668095922803688230062578888313457491824492474820864349846093852231675320566311511659726868513463121311543288345093805534300192069971384145802283117992007319417405335917083781167603215505186024366595454691566638376233624857766226712452005052724238108472905990688590483322462285186053723950448294953085429960790973514240264431244246575315077469706859924452675159498223845602757102980296497945856584287515703911901741662049314414774019070586315199938960956998448552547124257417193732114306237108450190582404776879879489673107894648461097143822103677890738922145611976835120130257389814904510618688026960597579435794726176214829556098304773526525281221852019979162287070461964559826753763189613865762517542779068937273294962345865013513169543622971064409825238269431110733852909871373515947733202725181192272089617371915263789062787269369494272064331076137264156482679526012268192810002626542366229333750913848905763775747602094033611728483055529751465865751401329879702578298977372049718901101333483195333004155874912095852469535102113053667802974088250041979156909344407195429157679394199854418392758240976611626236682650927428348902665794079526071140389914044221908061759602897757451071755344029592387294336888209362687897691541272873533194274901648151924975819432612169421312384494930047694625182403469553796652227178780948120290584335644317275419720612751349742167820165458430800887754047734652693557892539370468581822281034139917689408739934721018557728682076200116650748068997618996044370227067841567469210330992644849762324261690580450180772759953186942479123626602771369780515858175365696260585152651134304832318019144675813056029718267162682161372638995500660622097606111422731732749052911040195125757496953388404104297529968645090460156702582588703562474915957938905709796174038978403797200318779449610775944914253113449576185599648327383896356831714587705528704063851437175951450885562545978825174374629971575945344272623536775742974941988898786433006062295620245148191227958783191744694642057910754098206420577050887692036998497143999441885700920741828666359152243934243711516841203877327961122299752886920572834238610294348143093812320749571124646048377132417351831927220776706058403710955806867248825314997434463454021926754610118723704333797847401469164774420305757508329082919505695578963601024663186823251951650800636467537693639223349372070325587605669194455271927157457835825847457356431924083641081932699653708328621786110604379531227443957124791011682483515833080476118607012536312907790764133149669796248979924676790976308530119806191160738005643538844946969064374926939974344759770838514407997832300289431722820769417594638695794503911479319427086388068364385837171440866788194683110975037103636314454593238724439115458193601590803656797420346616876015543828512865949393394710922878394709455802279809872926496241280054985487263091314969922232025946591124376724983682302435663775664911650065558938200903626011026743527789065498687626164986249663861421011978040685271173921780881278068067517137361601023819133002438207664383160766430726366355282854743468129258755459524010128333857881575041026922710540210996671294858770409660195830633037611828296193445700802111374629636766329832560615176444085871482415858530649551586829581291253712590307049089817395867400903073757218790306811357388568922613563266983386956887019085658462356322235632704682770933081121913649929284368490089393922344418826778598174132844506948818473259781294318009838937858975544775461385657661708828407610058362740447612659188611519894228206032462411119723355435362657114127867113677810748044832926860035400159714194145005283575538780482696251553475430121683807572043100437909696297686234745053565458352103444973323196663800083648868709852771951911423327121758242470958353363721956491251253972833083237094521868034611746138327635248506189579253142712555120702645753612735396891113750131286467495281223179809507593557824339083895758891277634228801986127107633547733446242877785659587342313029795801144281608080551925316943016102913076897281664043466473594240559307258176826425316544242371421148940605477399180858570145663266660537902245122380797503895944535258041406019729528824747546483321789467273602928365063646356975781611672387172940631831902216622165281601188481534532196354733589551570839922680902522535908712545033884370460364108306495517573489214226078471358950383646734466357271628748494277933103880939835149646148983816777989213573681411296841548350558766047341719369964599874893224477842585777758785336022924359459306511890014778486356233188089196567818314739585116083510609951444906754377633030508166718848403291097309583118546455095517025441973353682274769220500082733812261901758504644953106899634020426492370322214022185031444904722114015866056899657510270311577144714189457273224888355302651202478816581663687781337342562542224367469319494551249475926166122313267846149532476978228820028870688083699265669846302036959536780193760659281833803185996730083209515995297743126017867211993864865291121680672920192303516446230548864003953545269605394505714524906990850271659613432164730399881296137030988792418157365542254066278884261553460478114479495904666762315694439028594951964896812427537790637162346918606533169147859852723197083072308979126784024111919750170017914164135353082770816939213114658868045519281793921469938999414012680624686943600188322548559812904821030928869089682633616670879019582005909400696485451322659062819942499813717810736931246851585375365319373232380314134335842924758879718962121309518382849250680439606282638776523743022282758678854474541134530175443461095677558126450810353952509577365995742879507559253176642787685048652030652694989363918739839372821982001272225925947198287156696003031582229616325386528355360349172165587236294969596402810182340688198727133884963027946821575052643288370165607366045461258209059459273109492605340348769107974763946785745415704048048225938298381922923671598089026608615400759072950129071511290828147206647606766854758015813103700358102824899723270431243800557977293401796597681223289634632929553547325368577594981182224256787266503225372485628318868152983069006629978973733190250971851509540883336513903223038749927961881438993222035226727156858165342135718448867619972967269750463300354417507576146771889196094787461433041764056721735143125908836401481900585879614103444551697373133608988992561842810909140513274625336183387721640449310016906654565965252338570418707958459422425683449438535663921173928230752112117390566809409525433302294333711805723713389204272502333388255022296156347613505804026488868479952456203172026097456481254246322547406629268522545215762169380377121975352468525356286683823085503502240550129669289942025131629200082163253397087903370946978656783023351662842625663114511243986245967290050409015597142100035093698263635198204876013886613988492571780942649355306386525101798524602896237043789532191772643004292779821814264632520311891978522166913901140719546887851498336625332158993487217646186759158115757483839684990962540752260839121727143057350118154307328542152768417805067007637280138459774912908121628578048752184551935549221118005056507882291142719300321390882839800502672757734172851067699188226999158299700296196941871954525930982435109621695830603929536840182773539173754978450865297498805708863875243632196861073603701973923922390296417992538985233991806305789674166762013852152633496668238426086091393856742167824172720546095264635860261413442135012043722720764666100469687440702464358363669801210792374941973792953402411559386746043851139962714234933635959188193383221960649042428671079365668154526374000463078930368300870122638668370310836640130058786153909314833014222508866292987561770579795995221718333665546506103200111380490365113463496072163328180123451368092047896600639461325233503977937460593080830772158851922317380405730848818894953035231749816432647679403833643555514067992271308547294270784304011585462373082104151203124055693293836194699899607059509898004662385199471226555437549944852133325158992507325444172331257130898981055270170357515593635183825908398525804217698762960896970277496061375322041360288672776913730692775773116261121118288659365652599984138083925703543986508403888545050800482214719456341779895830809558522917932945854064293940076216300771505189018140769240015271372891693164127540472662300255016653205236613257418277379341675125261835974285409209523341695154207135664018530392956725918524809522903240006961467258182003751628523862233183768600915162398579933410133422251195180294411438005551486361663163721879637681562829144966493075017223729431904025716842733752262380773345773285010750802768745894475455844651058382964862553571358938182763809514655967820903868772272491097439695146915632338858929495612202022041235584750044736094149149381238405203861328863453352870874621048284325309880858764225219504923376656974755384191788498181559615543099515405810544464745285546823316564479931305162299780347504810218593050571577033790141656135675644901375937892295893564911774850630464416906673409346657876881284261220357406483008671350543231725583229661315714042301189387020282429146081230191124611977543851830659697624862930803702576344360035188321445688415474797742841527398277670670233717815221142613085133379595544097873705493092099317418097190159407693090891038779070244792956316261557940466442056785821101890306300485283944206218715060839212481371609346993945555478485294510923858366803780996635309693564841175326423890889443152181014054092239432436425569921383327914626221365121137112077558092243268988251374128499170773021792441472623765244601807178601911791505523388889312874551867432319484366809406807224470099482186382812221663530960045102889161947886073974013550947442999056354335092736916244594413440184368690730525572627170495806766999236581815335200931416786214952033866704416225598546570390371128718288352829538631932810141501006014923017749857275798033692727929978450163151228695945034921597783308328430235536884206392830024371620988526646055773276733950220165718639057613796287507890435914619111151443985371504038421260002306901706924454984133681275791785884548047467695969696818799973446763767842328682014771049822130655745123372659587382246652072176802803876185831238251879931719271769217832274730890428227205995696621514214734463516397561800441068131199929032573100057262023693475586259893881372937512815546868044246075774372482302271459734024197556456930294237934616270808606539209012738546670673198851767825331207009315694619767468494461354969380239277358580042440728537029630618091419152966066223013058266675682607291726722851528608938684543861238998574351315059088338487462051948670396265240157070708667269091567326338297676437170148179520842582219596868208807363233294326788503056383241931909823134536518350648306569141212097944289396400965533404392372103567302790452541606845312183965716025692063558469863762480938799410658721326678568336674282905495582559501583797249944643537952598252173884204864338692387216054884014813877080155440076070798370514502079473459587261867559659494431743169605559402409899225891316361627018379755300156499893644098879440114134506695019901558681020786048276195439628286557621065036974544218456503222549312207381257816330811743880700217400416198999264090091739782590458813379992868671654108392328224001178517937311704807310723244663523848646210668787071861277906182903390464677600470915942156308121195350428403484927767213001253250871220832018945769031626970886351825011143072424227918006623591751087663260269924723832284863080447755070768705743527083853633825147707792564030410318242896241627429632131207723452470447298554637897168950340984478819895164671988245786688130589900059638967968402095127137673124651600155792628133149444721738634265920851864937110375662869496544220784522881042049499361162667925970324251649577966659545330963099765237898362502771383652308265698929004933040062923301133842324540583132208019053349047784275390210916852629510995646989929257541744492651327365143612353753941966110261251715239424182003607925754461931182920099972470371003302788600152202253516365351940264877999532955486740570441470205206281159086022213188913486136173894105998318308277867397332909111275808326448707741487274259979689468655190015820514469675947469679591551506302442085561678702477223356418093222327457516819092866053938058934742162946808880533310169270447851717977160227956727045643471870258090690938417141885396734380107842402889812644889635923146283917053043096688091498066586429563290359743896575269895345618930965551732059830811896368458313480354993154181987532914942338613384097918964750045399161815310843399058270992688219355563782904644123961370738534524475249077490480400465520339063390102694473744488045396124159071935812570542305576887882910874170598087366438638446316610044450072679433721112239267161522896986648777114370603264771241571764105928122276821020369112485977056111718610857077151573327975378916135865557478750914691644716840996868438985962884570462712299112745409732537009886234190001116308186442656375838550842252969135509975089521032130436273746670293583182234832736803709836503662366467083448098976454316341039750861859030533857606633005399565579389894021401659374922902182502524137901993791490297850750112888513944254782802536447844783762700351102515344593269421068167406927212172634390172263340759595789918947284708493479031490411645371282436863593719220520374748328199130355907883084652452449209703411144868647652256887380886891516687138789637204614409978653078232888668206067993027980084569233814766242299062159399601493058432933193967601282387606818189375513643460388540414053523467245076557391973969428661744125510792573661689066421522188811368482973657544549938663334019869294746720433980779262053006774038507705814312767340572925379714354130554012476065407316201412321016429919480357998007601784962062478764966616397874011589186007101501129667635195513779779359692968092857403189308086910439844193321075281584950773377831926987978005393972490085818377573709841740590228904944998352047415910506328468397697028856568783585116092184259893511672909561220929911713397825901942091925787517187999315469650030577198143440816756582359605796290564959540039696135901474564381735403483670778335975621201750704048827402695746621114819602785343663773192815362038706962319221182128149480506597542574837682452401009434658377380926454125000176520732225860886933446026637983682648072823776411101246567538457388915213219638687749513619085542270129119708173509810937050001447009296923777993823434062853660692858016528031809348769844561799554331034380952661578725262445130928015411530948564931004550533780963523100575567126303135760451854350664980181877501714923893097430209932319100467983864502057828324215270883851394299361554687164464686586672772871609457610102974633166040540601796557667727039594238523589731444753316426546786587488400848363289791954438440955979740872494463455075533165205978842856869043170461296949778279766484758981148730867324379421693723631738979818832860091828324706565073522549191802431748111847793475538008644971949656553035651519779767230327960235280437336009722996260068802956621413558582981607129706603358872900010468029364833926831860910356264219041344254342287606813397552616697573225094793902603326003760851036542257516628684099908267164475366317615533097513050616757168962259494869770940262772765148273239963264792333200045350423586544155271999192135955548509378856387432608385007173911974438689274021618872282898084126579255991511788226122994013968536578434636792032748119623221235324783625731482127841323075488986818619996603633645654574557619271540621280039544568163010880534908203658393698770417238979686318919106505565588236588790930869156910156167803802039459168641686645260375867703198110059451704651934473595713411817973360192756799047072861729497302198985762021060707575750324706917060581104476495504832211574380056042839088202777357222014053371386210108724888021029389272763356807081213525869953559680654767006666646747789833193343508245731821637990072334894035089563966177677083620622414157498726775518065524187641572497259298214931648275507026780296849288851581067021741300109763939398869247251908112858619723664801038990447314438556636970456370561149578930362612714343799276786089147932590568281510462069884436820352140234737507592468110453419997716004546589274070655785991413262207902741907504754304618645820683737328499153669407907693437473685021094545579433214953174333795213435441620486127811002291536645880482287893148069456877455693870057992193427720045752657406155555468802173598569591679595447556805377522592075430497675190370894394831923343943909049008981745659228662080744407885051546462372893007463628555435897034190693235386893418253625508579034151716784322516795207787756449609783728585017850302107901392120163391628409200587340889603726278824072274484110449694381807117951675848512010317927607838256793983478129872067240332281491560848872603618315410293924778444002331881251861629401021526987874244461778105083149739203797455531310376416366716832359195808945492283028702849552358681532110329239024365487884528294131031845617822463153723049709321068674251935067116430557965931786328744373766461234826051836990373448621221317085558356436966957162533008342177983589540448340272410486985360349111546470028412648133413857867123226846441418597560936864679317859391243624069992041239483618062785142165053413034773604071869609105012462425368321512156796320130873763915965874544831953340707542899103522266707970639140247357869526476567280080762916896398797590215644955477749599350329372196356272406235978772975630574120307184683499351770183485788140489507463331834043919584252932305175791010617517481909030156546208271520646328684278502831422308158917346685041804757488276762785579327493524857804151895508180427561169997461970754941683534850260336299972154978939932223667542473039008340802367096988375164604001273893009370952478756073217993455840073017799932303282893960864880584094496922212051162539664119764264854306568447958379284222010109541833154590773975679599151300926058626557127827565005981608007980776786039312176805277127241701400547253936008037555682077015213438353707306090453251543704908153502329409602047541545839568449681677357237388758437086053626474776244775934758500559773653215598932777921331494281307172601393959726428910131604881441527165603121796009427101296812929642851364052049841007494104598273929344086798993882374631291450853996317116871958405061643276191958046805681300955108541136039695464337650737938550378827710794155938939532902376667279846572883313679448052338220033003757713738228618525395857117624841882246762308977858021946227168861780242741708472082108185381588243752780476381347743549922542370843339689825991285529815032280640543674548262627968366527491084685351770166492681278038040966612554890862842661220859981860878493287406308380873044503911582863495349008479556660730264725655346118493257811559629372603379477778753388313793979832313501775289935221972137971101806201807683038038355421246085468856536893588139496891108859732416490550060026349296518353536374834826679384276382195103955846366261208234880671459970469400662330574104313843819752391064141356684482482685375227539879676752522629428751862232127487131565632344984616373404506620425575682566979223432488608840451562826658713514681521991042650642334247637935597703011434141153761564464367993237572203393220209926488618512215243699037593322238068240248622762836840714945751356796853504399674585923243153272623759237837797685385889651657233137310940910380300762382205145900684926976323294370901307803688550443376627882200177242131086475408044426957596439900702163318495575614888917870256678850410326743840875268274336116014378419070527060029397242054037981402727705989721137862588700723872195540367704675721130276626671033332710690784686225753220295636783342363976336540635814244113172551414038888439413197995685339207363078905454913401437817695689942136063738932976840861189425527752245734910661570712206810549814476917229528030859102583063220400700282348463775185723606186874328025661864564683319403002443185477545223023782766355402623546154923797743222639837186772324269427865716456859499089781886640732184022194322613346929806357100495112488425423885921584920234432029221177552597847999157658975053483130308747190381520723293632343700072635641405150246824985908586354026856200570015350923101248750353915407466902951100273725490236805310349967112154818297894362689333162884915713898310790602284010190489521558258828047753600698778667606818964060989456543312510047215819180769546056000191197595680475526080351281081890160999275375958636407169314002527491825428645417457353953998870638822870575454102879964370333766291090420146572357524514204856180864765705047476471963807340733651905773928573368957112073966417088459584560339881527263044248326412665595029571126478694150758393043355405122519634682143880418428608554190880385458365200963812113505685609004861116355582938639266366270532852488526790133442922464528376634994657037695681846139496755909787058944569160270124535897778809775042683674380400750737183148655435560915670241253111730975275612591567166001701425284855922853569445810607689154128161087291092320232974711605654091068471170671486024404040163658824447850446053222657458774725525142046718349016449636170720583964896402151462620547180206261341593196050041517520841238695959567114365010064567042666115123225015443367441038368958954896776265640959858204876438671949982003401356993385573210325967444236907709705178945924478598411931211636577199280412300887291763851940364035511174964096544718215907164008237960435761262980748016920339248266270062340765215134634576322445411877368531174074080229844241516483710750334929136685654663456902751906668992689002843738693057430879464758423653210713579345892231560922348892680525012393020471226362585614512547618848005327990260934198149327248626058414660375569131564285338452547152949246798006630254857142801137755389041222903649446288696639464009695263068566745816860443919448562635051212504676473724170451693614629175838182291854023119777202586647734095132872155376185979003605633545370455998066465801005675774602411593116662427145538843380600296094567881038055840903453348805437098901256903354195120352280323284581841300041825482614072743330158424004220495734413110826865523998468887762362662727110279923546972631437980841444075073876144342238684341664858950148279719605425435633314960260838698454493723510609205629443178667999604608943766228929483125873757743154829060855821568074212224789201449232844671139079569483626495454947745848746436288241575267603030985330190859866917178293931660966408577699903234760817161861465385820776695924062387226209294216213213079474375999514572742197191357811880101779299608452357391343325904625655809348216019610324140926622808976764428933803544105533073077937726525544450812849159925924434838680044276450430741056970858985924003036535390406771721405369235450207159201382264848019466470791408217319381065277743125897931869890723490181825255694210166142754932150701753092586699759125202619930955590253765380177126481383999075289849197093852949311164314608579709240615365612081558421947440000649934274840248508446183635055775718071408430589006174373504743264752025844581919344507771868440382639717163151398456472637418762142150152734037416011943121854784214611880913347164081895069883590741883750717748425158197934740690392636508230418378764753299973397505026843133079438341306559277548085566705251174424328318196776027617620086764987726638575982531423089546000316089081632848883478103986381241799358263360615301324409322264007712685147276823440753379928162765613391209856812927004502280606440582675370970030899576801169430348528769772613680471698229917238875378617504277544060235704289841004412942114954423703776838342557970222647128906074688326432429265556912239209248465100207760889531085221162783527664441649029171000189107388151812914026303122282688311741117544664800308996426004175582936892821242207239522632736430325647202136988222071500028082930565505216076253430008368452027906044822680207503372952838036258804841835602710694067221465180036257307216354753229737879559786539764109685170240548962684762104803036087550096309398680414115237409322101252722288884871474878491818864340573586747714135203549790942869166210492065964439823925208660482237254312966936322277236239468289573940547103399392317106902307520207559475939791138389282692262262100345006848203502707039465580043874891394643094738144743688225080307185021275201001155224575662427203357615574263042866089700431188908660387270537734204006336539549030058462619808526993238550247924945044717011400759086561910993237709033775615588907508931158586258914599785663237893455739287875825685391466689230009034140209230272056851793022344124678507197825390836987658342828660849511126361144667267217481421015347996143032408428271970462241202368541891240417430349933358674372515420525773865936876903281633710546296863274094760741752887691264680102975617013637033700311249415895799044579944544411152087379737717001562328203726547258490026655823647579006073510284791290045025792745253770848492099903632387351091760822028618103777607113550964487953602496835820365028975069061375714513668092088649759822578258171232244322617481784937983357703048179022391935842888817763295130965796056584636533442596910248563402659303343466044618725695018300303733380644047657585853079431434087222284910992204775857236059635326629636868400590833177288916427920922045537730941663749140846864326518666644379796265136272762796887717016006308804231501190389187648294362982935738869407748748218774785497999536430346110089043237585485156914669148630398358822483088465102287183209549747977303818337244073121961664373587715389240600507262995031916094841220421504203280572387340610144956344310592361800771000432185218646274110646763812146150637120385797435288588650403843420111029135552389301100837220159483614443745456256304730809518451359515848357842919402524748954971111716605472918298320143146666008569727260938427222307075247878929478846215440099102314413329050979737749354018049188626635730194705392342922225091192866410274565987518134180309790534290410302120620559416901641091580718457058822527328545792620145760876823026772060079701514709618603571644877741561749342251212601520230821595684481481102813447852774401377623193014615857848818047033078431149011202065609504110542060172983345658355794957732769007307593904863719550912519169122899849703118773264224194383532069969871158295745889585155229472727834825542854205422401955446033898278945417272844226915084841695454177544200462906530879633189760288314775875813614298737397708013316221515791822772740520907384238299390548121762198327921829579539570265074347575579299549700282459541640994897246620094111724920236804402401864711876449043993410040469507079282055257974704407112018713644308749418292552556883684719946895371870051993222086338980892932644054969928060857708464871764594068099785849659311191765183491308842865643348275373149349487831478902083073905991822658574532470289690648043025898997091057222106764157014784780240057552503306629523413466281888293301577104105697819392903679975089198354587793828569024514476778424631313715673001656635959232196116945258082279347669659503579352565227264784304249545569324326450332286812377640815321990345687602388999554512000548843315268766221869786418843899994390454786724763933775671858576819945149365227386482549109569614076326088491584603267302205891710060596583013948507859337368718835182931410870138624317772906377243740989783536001801710995147978814618755000439575892478987792411511966129558368339799330632553292884624387151008695121530833756382103159056611598088352516386650746573332023600409945925150150567647681992719193504059788451269283697717127983529044627325298794729112579403025221617582373514443667726299338718480092251188915730372586885272263526122280454102576180491601812601477080362417760234993958222499684340590595642256922294465694278677960102091761093577650655163289731294096869614077043969903254683387214682276325932248036149704246580014232278370945301729199371968292272274226805837754041182149164374228477506870816436068198389529833727267077295274388763003522606385632091656539198898183853307169283448194502549786508694641748457324299020829211235136834880784701347316465521871987353391224909009641324065356462335339742674916795951960182352175107149414176710131067164442795580791313250864427983386108287382014356460237055870960141188384162062237969110668237407039602487406073364276950778033123402804445870964861239585148154097867469827189344779279449885975013462872150298385641274080686871343294294061579741176342554797506674243975330627271199590922929200409735040037698740404755644653398863019785155596009699261436211208925776932306717042464397853351862879754399489176671020835980307369808857266254593160263091742076446471863708865816516926816883948054579234367894052970566063773060908840134794073286435921023458025339300285122602819884264199887845428207238737059497426358677969419578861226311025162886252399527173698081263693820176881344386674587593780578818303773995381824425329528913616769527420906576096792046509977594056591297271218344029695119308203369955808112416395877751042172990588747585277082511594922355853584454980024604549837135672304801250779874837049733965745801889599329207982030600219255142210951332882710326334309382258048499104337991777433626377700017032460138503383175640192601647453825818721381343128714519812548995450861019982969109283092822011331895735125393077473145813469685934650970646708697967635204296972187123622000932922748317516697993298728277051151401894816464181996007639039031293921526626617333291373440040812492451038690077489580948699324363284754437425636052971465656614207933025443351754939676649644168315882872557845516475980624952234481956919879894749758742941933206449292030152403480466848538762857992761812200781046557333659613778740239930150742247455439588159236400760145576830925300089288706110391739535906737274612230597270535472384133709910420436020024048048796724704553502307545428219846906785770650738463361931558383163226467120245709125521158424405256459949718663848383711399568061521499713604803579540280043546274307535032925409814452583096799305590939584332156145949003898312391143874794551810641988095286950134556963915334637580281247797823739059614851392377920750306742248068847627417814263887646362367770371631720405647411140138064256198064902717812188533758045384616807264644016144098350417884797281941824147252463521815418211930625723062001845620239290214957504122979164533528274855197164938965678456078410431764962220884081070124121398147563527622257738340679519051283405853642435460488877216401486671993464383231863567521381783954944483302116963467467691725503489038680094359226204011320157901318814875485513855595798673087368343871751740364327144683551240606764035661328381510162595312883485794601320063667591507394742392851222649208367214882291825438179944509035496878232196643070919950456983795126379738512058730849499497727807655636572379356237469954900871296991703083787949650347332482782594882195871989468608475064675663711582606743793167830285457771046579722928025988258380328935195278866995465560519157444582465390476567368546259095912363027421892391557317940743278218929658733444711217310082644356729379476752801276304319414683806627715317010271058552241626949441142457714168654753343387999052003815559657990832898867428619476599605893321612381827625684028642909600453091896344325586153942553620710659700995803221056500498595563545334082051853871567556290029461028302525600798841246798494517963811080116675854771857293544206890525592755347968693843598444918641583790252518525322389166434820925101883084520500635684787988930146328202249809541299882460396817902575652716741826559574700119385194587940018633388619152106998091997245687200778185037201563889817083081510855841641244064176235612253110336168378430330286990410655258309307929642260026916916937271457138948390560397344030289552022151206183366932985633292909503259173185699487122867303398995156069787656248899467857598517213053263552087368780829156549274218569213171175371964401025698283926816245832053802639797702675434176517629110875742912668269470339617760248092079100680488679378296810925774488795251069773069198665219401108343535918745131775922102874934297180447514107041995892693093922455831745476932876355677941488743391867548571744010057587073276056479417251828180478796140483587332221793063976053778393447908898296808650074557279588564214192429332963112849452099556866564304680297201398255446028106986580507449269466565049400726739545771446732047127570814678714304173182005730541114126725688011966828284526108251043739250512439459842877326169594914068186776149843185377401223462580109079873230501610639390269450138240060681535582891801422576816247910916968960733404044114091343175926806705611459409692811791256698738143193059837534158643256529046628546809913055831101540422340387983692485014032534196815090251050814321265664789721262013834742140101435238462180021996970813291943192817851097972834805480876457775718852155208503807088151516241891362952405418525567925746885356783369250236401626869649559375788190834043285694911430397359862525401385321769800237381334776822165204960103737117788895900775713869478666937539338282846068628505552951371057688031153011171051420282688613161284508189184492471477737621541465539118059541849491257478031568246534635775129177487396973464596256844354165678353045283977878770269670750866381264151387948688301417587890852452180071856477810561322946457512927023182893060352369563044726761392922319086154266280017317008941269986890752168080861709473140490629416420743477410446721544317319604312197188024665799334067501797188346460354165469547365064479577625195377618204247428113349748149185217439627565030339184505511806682688178612863667235961814170850985298689311617593148469701193274541705569372432314029395656831591654847291319489684856569772006215668141401618617616289117835132562037335584081298205699406194702210858333856744514209304060685798053416223944041143418777090050867954957825107741890316201713772026872350250445389909462079014375969749061371982047836015597850719743938253255784513983115011396549665224306744348181389602174169368680090786737093257464293154941324114543398882280850390524357339422479137630219694288287921569353518267560014252394890779929800095788254864424894232108683745560019476907166168365559407912508754227426932187354396602127324959156769235489326707677236799000139600997614510888455714736446179215160729930743078727841049082068849368035346792255700416207902806102415273386180664159925536172004580714272726334795643870369704867366330604380380871917446981851522518514149719161868386380271849091862870307869068282945978440017080435770699433653833474284277096624414555860978650626046531537853508735161812834888643357093517997031485412295290361128893049637987456473166849549006761052842547644453482205975702193669988863189900432081575218878103021994581902402632628285913168306778288694187550487632822687940094197386293857877284979762808673874632769950452547989770231566150471717653653505812147925042863869430029254073945463638949153506352991288765044647413045240483507143166581638721608808562541518548215609132019038407397450597421326476271525464705549141707782337794668280296326383394773365788567307578806981830578485132822718667067624557594511866797715892571156591890765706323002075302745330324516403889565940787388740541668290379684068299681029823074164797460999642689156267367426115993370673387937829232302601984913725473647837086282244430897513578152072449925373213008632547106021014671255644742585806897970314221579381503244089814933861295385037255940052446838751487808087379350917053792858211427473383052587477501823782643121596297916746276501431926518372478387013755584089844530786498837167414580967623595106078037935551548481362990920109971380015888140599952534348042300117407103502726279555084699262146494656059961906516042661790451811308938850030364642389120019490982356680164483598478786455500141283098668615812068773897297141730094690843676034527141596403944937998487256404540807260525549235820052220674864352978460120361368455551383408251780397665197515173503468626275199647610786010606950535846604343529258644733424793341515706410012758682368421943542916331733385849301692750979767888281571466416341973927135553473965893102536091479257157506482307309278329041542826212967592690194668615380769761347989768509307448958268665770828150950487817114126790960340725727997285165993559180719521339942213858669157157404728901741116610130781814182430953134030699321677392791783629659850295823970534309915557749099656825265939737991329832517042026038209996642148657768608931207806821531266606152536598327411144887759632643517207522828140817828325734041642335218816525272607300797209196114682955840384996349802185478237500710230877484041160945788819775599542436566044818034890975579050440051708690903713319389442993847075648218509716836648010276073215386699408620725817719611920058157269895346086023835525235653579545600164271855002461586218834306539809748621217546082262120304717043104044718124291594353605832843864892570385992548548942398219863658340663796857899517241312172412722579063186218487171059474433666841596846883806026933244776707861716184125905584275401825171339859425181598945554613855895223511099892651108245062622617179740525705353491644911076136202107554951936812041346535586753073954341960273811450251197090080107561537403253528415556878419414497975061180568524645847549961984629736815001126260186867871379485161285772874725055094138243121959826413086420476945670379170979694071630245434030513123372776851322938540810171115872579075287310791757028675638724075988189441647821095737173003219885514627175695562319770578888307974739808915014570551136927614610255308324518877101135472208435495684749976989675203109904624354559685844675461876820603090676469959556479012110676187279288174600346691595644654146343728546026875507055528462178431734245283697005372910449998625838463281246599052570096881356603714472746446574885131305958572101323683202881567025129838714661920599945926586375295651775921726151469998736870448221088849285362248437789002339917399632185425502523931768805276719061512971635442328017087178345971373057126385091305075320642013286830268140230780338342032794231050833912455783373777005547911535561460824936248887566849021388379315856528268391756197595336547836385917037318220155842724935938879359439863584249556871223210480451113272972850310020181070516102516526955033147437716245245893901981179431880896009145787671586929557774506219968684234688486554655961510990494452314237223664577022293657500232607863921602973448578468287648676195636160488045469895868506179507089117950845993865801633304365627062989509070779209804178368086785589561235879019685648982764184662353297774667354276862450337454688868757456711661444439711651748046729325385726250150115960755160226442703139182514322924180137604340389239903140697126845373051637327633732872336785222028715017234264778981676318986763199775946609176243129351350394288937271950986120381847534709610164052293706973114801964826799052574150995429319920287240566170859748881482921351861897728691468146807527196684248387462021453779304799853185917215754012446123736726712063583281932182591522843146832081193303228157532958197371191004383590512232050244784552662800284646097804910542890674663639153029864589470695220983025172716484427679396201746955402515923932046479317194771229057178237774680401934044800728450392453046393147026043831355204118479759998698367089043571710264724357901757356541641898880504586086969542354035117931999612046049665971230637125144939959779559703406929270241727326607305999490015689878223929234855283598791324181718044721439231703265646084212337740189996986360032159358165935375074720417128068357857714921656801860021781257078853333436234089825946189481298538930928994867889118850896942364683049757351978336665700978598316809243616299667807191291327779399595364060399144382017345745477844220801994874337373116487819391381297457848419565228362708443941131711390159504326668778268281059391852458236066311410189351887554272980480389427017825590741171832830920986551417630932351537215732465975776425485283795861184748583419231275541696707421746759245249608428933320198558884617894997445638843519194290585606582293932889109284471949099733711188381233372827032767132411822831759133395610970230487970190426553434472596496196222014822947600961571086266398388043737619274874594879776023508571950575510063467305813847322516966423618041973895619211785108381856947413913413314688208298922372047634637718327504916883809836140392084697810756084240091845775031878074542407217829642562866440291150962243499454346722064735144285063988807126325512125285875193617168746509337344702369763843237321149401300309642021920156477177412990992097448051646577500554490768186804793504151760065731036250026314368795069719143825878915715002247676882900879282759334229392861060086395374555580607472325845151915422680208835602041039126442375251998076961148120823562424958596097747699351074983861267051252185129484554940994670396527220139864180725050179821991357169475979760881937106487391523810128161040313618826940382590898119100359127664182005019544400515350455442347361124123228467732747701961096696773188565127359962688993613810802585192209182078152196548281206156635776447369239124449567549871097202242906834764221554039018922845282314682397085017829898585846188004600308257008917566175230061721431744556955199586956971011059868504450808000403064546873666027181671711487969278555235051627413128084922328535177679948851365548977942092818856624530865245172617894086703207476582420453791285060921467754102566367535983967918546099651061083052737176090644139450106590856640862641374693478635677426496626047491890991940937066708628821972329142929394018618110832609351310674650469721762421993242565253622255524301536157007089139578308517291443629174652392363113235613021477889020014866890057385135043915771399111112473419119034515705842899416691655435043205758710667330231601470729572989197633133151317379515282520646969680615521778448730522812147852958048322894959016053158342026509433828813422731514367204167020128976025442211033377978614064378211834326069814303894283040967123701586452298162959110950931188040780689956757352935508176243911667566514561244730706181304041244055193494882284138544743824780634365707140880015158926993767736153074677988312781929958993733824143616268203258193730546496397643870744349375043473311524751901013562707796559756767013937655181088819814631236770678716991068501211227494913998062255988437185536051365936226244579266454849006140586712613867438689910235940178648674744422078313204372389761915505658954056870036330172626151755522771512586773215930521841403230064432576393440313410692395184537371955117987782196106712257723419369650742749850265977909417657679125800718918397109137491735179396073246863484387398767373753422238975428432106310090930082972554437189745263617766326275157057451039210122736764321848556927941859083438707058960245712753708641470298594149649530732188338305426893619282605075714181966213064024258611879595919960442009707553440760215093687174974282828172628001823549397040519779585392537881573462200582181297091942074250984815346032223433023846279829976248399449052042278820905045279183642305289345792153014071308543943878850990225354818956801150598008980146636479327041381171225711188594451610899862766699360439541751683555493451192356900500925531727232965862070524145757959948144068380825535207538410165337906457814897434851193513106452080872042168150197584678584399754159039838225977206592002538355444080726917183535841162139939419956922466559442325542043752047240827342792243482138543932456233043893091376495978497061047441349337484441581603158571292969438725893758927188503483311766052643579568778134996027846983583990681045527206595692067218628130533000319688169018071258357474359093671037642165223328481681261141424728792240894192020983637235639852447284290224519922410324348250743562817372859706360967685290692585137144592976221376375444336918159107661495099000911019650370110711322997591475064970505097194689859115106890838261620712470503747408194497845576328238571177201389733053675347051780082235648483931525096308567100863632894572129494429077785375824979892797297269454366398415333403913274946849217223015421613467486747246629907448563152146243259628137605105743182298036642762811159688754415707586204024269684829362808546203158589479862964888622723671846526845652596060155969978347822408943625925200129028127542436504903681975089848695938639460644479665158068937951822530961106029830235586979349005251237658796757052565038342862695230429332649321129736345302601277034094520012315317713078752894653040041673099822625504928956096027358793216556684658904085377038830697337742524374806276087415259053087712083838372441437076853056904750638977402201857335893905658689082105844992861516527432269318883546082960555750939241904654463728659322098006528314829744294083643264437745886014735936875548189403965672688486235432133600039061858461354880796787363952488676246043338467384744384610275564648561231184302678577823081802018451242835559018366590351714331826180696616933502834558192313566872621914043955906316223341484577420972533632492889998607870376210522540425758922576176115250026093428841746133717472580259864795712195039131113432941037803490354252226167338733781524069772468317589526957601159335544480579035571250747689093251805277788084576299776437633225411011681086256420480584224360026278941071659719634265269322920234112484427355243361941471166330236930642685958349309064346580441405916105476345057053286082941301457906537524639232363500886682068919039137481910167075331181016212686460465624879156985230279580291151645388579715842573286954122318862357264235885992359671976981500042381119915033312554518515931844764641853931949566836201228097623482175965226264491850726909610472302552915177123215117497364026580332534364158815487143235459460658608978374090979421123746014257708118251837337157841931426205763927602450607361488761521186670087865633933539801465197141785742034859140512096597107531216991406065067401809702277628741398164348578013742870491325408007100642099667002013226102017850179659258421197315179643576131660690139738704927727453581734181731979648617374139236824747931632318348289579252078677478773246467586395985866549603940879274428868748653430039982489606985394619479937614625322059442359782731034409289947563992711158481360675855452697330214319515597455977718500792585716081193978523011225152460368680693537579161047883746134477384132478516718697428765298542719434496823587211155879401442812943994021325322006621753267125107263155458983970405674308465400080238372953974401753788458426298558369555012316338581578488549139617854517535805853956576046821787371328060812516448781043855395202472998672844306538352281781008584566144416831596363155308957811965514253704573533303625297511697571419840063020989900476782223143813646368961798087208838410491162229924858922223694466510903058248902632663105580667509375006153142610672575884823048113620961953846079393201272391307558033174927572498685901078318057953153550436437885383310747280469173577964380007644235149162223257764397428425869703918929911249521927560334417541402525149087764883141144822406070543500238245453686399775044990149637610832784354533077737053624568052198063804137017907818874169340980115164505804830421493902630527162501583983095952140236237044212145147202079520435729632344729478715184964011144429939670256432015110584910269981325603511118440798077110091111845548408733569509653337948630230015797280611447818219595671219667448401237947167647079515577867077296132339471782338162144216498331173711426725879793024386186987866547009391491035788993670131779549512834405231438785508732321718949427545394106766893954792403012056647205105846867424932113792332543549343539934606423660703818056540915920937207146591111245030797330717744519414527634794629100877022738788526901231059247941699902162882545577137619300409790154607660511714828653887980103908289711958659175725944016345630143796277024610483952950443983940464220628598849631571227080922272534365044429991160738501206077038190708522726475393033209677388157574311580866002776187463083382018529432390979936325444798484860422122893897458263912144790692271876386787608780514839611544428865782113441712918017099597253793186137388183655177678276901290729902552898651854395324456588473176019427710480872097144918973095758339016938580959614872536054387945108618452554769812956006518898723308560167112731073685286775055966772727688686691814685327333917894598616144594052108609897556798286753147437520504775505818281440693233710721868459468198752498076560045647314884128028520488737379604005890097253455409833390017813880710252649755161931473757828068055869235688552775758765802803333010727071866476275848226653905141322138039449536762175380836961835426319606454317446391430778623001843788770301046352160044859173529873760657626636598823525572815989278138508538691593717802966915116373554117659135833277675700596920233292177049532187214924116852953193598213345559194708945385672311887802930574859077935313984866258756501899409875800901147525126580952797618898141248919721921134676915015505020332759880003264191134119067532681912246590576016723405501318726204355786598538962713071972264301372290045668892857904298702066287272481841305413579396478571155496945227485746969478466394704623864796244472519574059264762667070887308897620039339166728541337929909376260639632027583502604342704034187320965319698321162125932152546063086455423123953684898694668022292230551182055814772022483152751331832636404800789113710060521068663118684394816150711051318820833435907245681126160859432580305795604273771332521397926902325946829107441662116854318005116026638035038098369338458520977160967247282018656598992106402147067548946706771664035382443124630885833190027660872733924051323598010754624838413999141234725003752929570288414674909829180542353302598747510965995132186551338554428043490462312553854055841387883907383724397693796672102228190061050131697649675452692888401841491671409453620722885440613341243018650118163824310836946706063045551663313631577630099178643490383584137289831910470391459449102870821909766531730481894508027826849185224031726291868975640189134294454840420805493369204183372824039447543909170325408540096804444606915610252781390142014836015965267192575288972092986577654901927811546823542582098060125530904040357877799738429583083334905150642131834902316576212911266089286055738380562003934212129366577191227937135790450585356911857659632795573390747881121522014677039050708412015620432339656762581697364204934166298503669296736471123847299065376764573344094444520425313383950337223796271229827981270774176835694971934719963090176266521723067354051182508286254093168044473788284707166659547971083594986154964320427372734514524197758874854332285686313685055334886864950144838907395651139793918663640313106276943565503570228220566600446422007674742973745201159112228220455592209724940204759682267631278765120102794150666949423428535732900869783796100713160371999353627287237257265776675573242270647214778979730459728303528226249217117357596221328611885060889985713892887936637316753796965043332852591709943146383864846257772037043570790806086098625492162210437320379008535729209996142904660597619168899568514147831241622181444467785010809807373233141973070496529739265087007215779518027244518397624400126125573121802794522682751927753822855114442098227458535692758730944512190929800222800960704345918455377703814851402381658009142277625432328014411143163904222969307337395164598467942555544933655794393734608558095760615514079430255636909583945851310913531920288726261237993616085640793799544365722899268472662761347350560272309573478415083217679159285725585499873044833819724773588520087420268568264107699927056468003158295910953869591768142769211112465291880505715327536025778726467472787626138565258512293179229339470438680885515433965136312557097966442999206246748044656568743233291743806131623696953819129020372205553734217688755003142846295219234448772320282402551517798275778044033238528943854717875995387889193280197132992712608922288248911249847451870403590383938608813351440473305807306938563978469822292430403088928165386776297433275560077717516193630295457380122192857773123722575122423740139437012305705046472663544784326317128861366496770532048709250839312319522381440179997909957231452944453407025316785218162446786036143305710725051295843651107352033006320637807099069825767746404413900696748672472482424467838753305940617574451384185884495008471938100529908123517297681715272569979168256117784147055238545552427788839516166210519075924471476388931679235875671915048773551792443715176308111925789707227164104033400568136776333881432748028271778760848778500379105668614547225772371126641760559868870998236485804424061293484093904322186308978952308380810657108262451519050411257989022182390739332142460743661921173334876731354544101257884151006698774939045008870449308477469098138300567863705159740313114868187585005688713138719847000628142908777020596681757184697140196634567648403241133044113173152138151078093553314593189956000049130548215694952076763129247076399300603657944550288963641944497808040522186999318108711989043650892669558538769767270829290459755561519736331502854824120335797557591092556556844793181259996444544959496186770820580697874923727722375491187313627638478435915607136600444413534554434920790635952870892422155332311489038316086998690528671689284417975885964072967093866320194164774083012776479086133372244548955027941076970853631929904364800869852202439280585777973891481031150395948302670449713656588194367125568844312663730302247448012355841889118166587568361032061744199753905560254843321704638653221934239773819554829712714764002184030503018540751315321773069076486525483106067762085738405977986407582202715438544696583031343717982791488371293069674119513785552820145384073036901348099802156305283282830834684134861742035822773470467056946257871411392535941732495576708758482785420270300099827283287094107945924506208638507676184833467018049231379246679021965358576951254156210163801013654000294191687781407428411055512641170341858709057689695564738708985829548834325899876202748347643379262401174281822355989207047857747106710540475422389904997937505349530580025603198990032543134401397705010648243933137913559866798679405807523822653347056594584931430333475613969504354268089610327678651513460217110918344903789184670952045253521110854111839935234524642123381913406543890120190986625628006090724340518826816501487806248074931712244794130416064666713644056945107400214833721169020763340664965925499960881780743577100532060050372283209233575095579516561636849842294048538541814829062184177041568610042732697991828136398280424748341666313281236996303462070558088847472030089073456459272256185742082894519763002925141186723938694385411363350602292236099985444085059830189088481947044579691649021359459373032482223297065844108092225375665281071084433674590383066497778485357357463216583245791943061695196948629366371046925588066383436909144261296966048968986066253900651554159899044329096487436150513090832963420819442888396641648034232953186529679535815524569005935323534888728313409469865752736522028613151551018837050951310695764524885653777578254562950925748631560492689753101182424488324248670241962673289631631371268669613333615800485700766258031770939513962448675099681139696133472055560702070128422782858614580324440679140746011329769438043597366352665344947335741849237099249269099672518474474584497831912864978878825702253869442482501485060653689765951910968033455527403427909476504872067864261484259009189435389366955993046430065446169200746699433339507158709350074132186883227347613668623207866354012104687867971912175969975378208557163638892783890627286068101096748586703774790400936104363366264131844555067271798393701261820517973946076453304390027041086009180866079448762571024847000211699704087891419807305919964059639535416287759744481379286666730928394460709372312505731744939357417345923371400915751841622101506001780070480692624807085338355576383424121169582471979221452202814461025346647995965956616346742441571061472974620589063716343961351428778543767069831537022310759871710937026459673165846587908850919614173957189134733734400526717966816267798656032562268725922399465580159343550281005176512752674155491404165826116134074068242063437307121521765607259818128171971660230148250992745249138959265199025680953240621394785417854066323149822494915240645107341952240058998894638419650384499537818601275808949145869309862426060179764615428437511376473592224184558020871494880801330726628629236370479049449746463518393792837517127888583723388559970326335175389619653532536457788615070173548448820324039703447465290701090691678299163395954687742178165669789943175305886557871443055028610711244778383718621844099566692669090430337367159766547974347838147104459152985324190854334276389912627477271200946012371306832110876371954875458117974439391928292438238507314581090290351786175153056427394458076883089578568220847934725308857999837087965176621052909414586061824627752707166189972401911567371220141671474844618071316235625695536307225646590181358641699888707280263875310119135136587697495558805684309375493269648574395210375400981337700954526889554754690067635546924877273995530663889111487473331782371877892257031357230730471383642692470857547418722865124356285714775545185970618717296241758245837232188709466368859466297799491267065001596714765927716884125280293207229122352237505590889754279634729304283500692185695384508668033736615291903041987770610774293093717758311312210796511717867760095843024036566866335535205562719297253894552101725190785416661611239196277058703048789529727261555337417819137046316939377805392026057682132253323962485544391048935428170766314713825958103166399964393410776966743094078248900648003951558745354399396600557691253042169758300228058226678262220514460221135563899485612315046903663907279371128141624293426562419147003663181230510903826927714268652727151307293769834034065403124000859143632553883455038682993362734663782563251432749205139229730516752036665428405322762476044124791870425446952507679979748956436914308891402003572108806431764613436756270466215527239702083315389889381740228319687896943315940152002291241324569538104015076153460942615225957117445338215556198553847397704930588996361016724178427156100254860849450343165084479193944386075057812049493800538104314664964816735840938587718176991354069634247610724941649191482408039384195672710875877339992205157067248305941935259335765581167243972562556780158142640503012595059057062667654044746222005618742829045378778663731054188927879497380625345676205176804744135053512084074271953352689479535177558091198151274663588828094171487591273401168716360608336497342172000049564524424348314679102108912994806663715865800216417884340898204109881289444678991567564492085486944863110860436177764916371953784985346044006466398444666115394430335116466079366031928776899811892465791245137359818941732685641951884521613969093844065532861461454701377599047851835455072334603712108889394840482688697160014091481664810009857820987676215738726946666561020759916133294120992238246843235257682795123208863281620705018046609015518410345898744174985736431951515782432184216642484116962393894866621727126194690288283607578896466487762124926793268364305232278856726036569228771581402043932222464048919089802926902105110774022703779725939099143503021057153697806649127610808014296005167978839939812983513209202384315099953353124774372793138649600728462867423927777495520105361844987446060562784032583994267094339406049246243359375249938874373544032662439172150706107754918408977623324648469219311502491184573478145522907966290901574687863553412325518668127471713968673624889978557100690354424737515921019172725569658050642103572103444516413798228972615769576861816313729814266454059947305644533705608756451369953983580530031520988020711081295994655584660865681772862632912750161422717289194003244795139947599133062410770974528996048116857343179511218410305757862208102455006633131795873690282568866619848257013645834989179149638176994633202839780087070011073388260778432949645267309736425258188155625695288793860919110961017935778622932421064130430615316038348955146085831948289914839786021185394046651072469829236211188593590259690301716969229629751361850237690424083095781043996445408860694088458551102723454550889921117336465331746630566555701037801038720370155655741164064392922464117710156841671856592911540954141873294667386145903876375291500948044138445553269929897708051241516664698821147062884071371953188149764250388265622426981604587899172727266065624521797872338982787187088070827528989895683878510666970230941530572766587262415566295462521653984416660392308432224891420499413094834623513633867269178182156001918043639465940501402800828296349924239207065977513550055441449153908785129793934262092033720422911095216604542992933154374467852908011533810902781730990807907789398446989809945122232476452981625518321009843113693822666257922279167954920851969018208868246009334505965539242167823895482049987824850679697648379522250343656976284562079677671359984646395555293105022475638562160945500347369328944759595647354064356175058825664334414964601084589848831180730620990471671415748168689901374364177263427247877031906535079474378066544607904865825290185886235582136003216736756487987804846824830572631425593773877838950817413946414088185376733534506974738562097239706862027661277765698481316392434405637076836741460519313584851494448210291657973614375046427441004734135409141818933981204323113735295282200906681850705795172104149825882712102984450053531520947045672740633818537359298717074640294999737554915415849845098062285299053708848081472844119243675471174581993007517642807744349126626676959615541765758957997242078757661423774750519294159757935465131933314261205848315474334849158229587774625964776482175927670889415538422137559633023789340001093359863125662712981336299649532119486477329648446200633202965024163860252628024427557073359203182444192422464936765362492541624596103875900815141743778167945528113263382632992205697592299197408253623741891261681030673048024206766373377727414526438068480892999862138282780996058613020211912241680381753333170181577097593293664242894397810275454095443868412650416640474959606528840649090952649848446648834952196049871479545587896290538395947722678389845041644244827551198637348992508567330417281483386380089956633595291374182177561610803120693941165408956661825980283702045529722616042711883932489584934189131977471466244643650412027332187525774064743571457489758553778419477509108946170617470516231119380977127403995313369191470415742812696522959624804261332850938741359835339728987788756253848929629667796137588879562947410791989172962141847635084914480019256503182323207274794820849281225307848597722370119817791679764538083425513415268213138479430490072115412372568199028616748467212698525639804415190871728714139529556359966857227815226760908401851262873670384740618234061187198887466639205911576422866987927296992242056170660050553947993295122185978527033619947895151465754237189229487500539561476556933679506050987418730489705110417473915674145154192110975458536676227711397464750938598676286506305382675609390133506480954116414246027020276005150912493631354236639498992930385414005240823089139358372305528778432309367921994768988666220831551336288863245744879733334329629463761342604173329544771767529575469379453354942322798586890857420125295590633220191605044249413731843705944058545304061099727134100140517635672565145236042879554461044835330525346611036358201205931074289184576813957240114995281214050521314556537445641779216136655287237779638739430417759276278219622081629612015187472148254712596391872887077791886245752303271906419054727790254146783184534009183175464870693326076767329381967993783513868856498122451044598480834798934468599028119399897330343099286367640336211397853841853300974076042397521422845657888779790066547950608820238353197143439792201090605141734440087679867919321314570456881008934369793383750384512373513020172997468173665283530810059605534319578307329641829672523318046800646158901347074342808379758845105539884152214500684424785102145846522448556273790234640558581922161721091764548222292016773530168742410708327880784562381082265645150697985567013121817393665993132914405906893347646738264459818203714009785579717383500025778037098906035900105347625502910375215327251732951624474369906740030751797255507985546675281354065741729379632969996206847008268616291654170693899126607734975298160515190122658922285456809751064978462435953117446658753228608340735639568493682216283537093576390926431116820532622508743749609031657177269110696951799073431024914482019387186895940163881954570286354812702244830342250061443908466948441170299256671787298060503693179055680200781314148576763224638597108224839153089223232278698479762684503515493301669770742277338532749627540024281316936224572738964761461871117945293603480827310240687340267117608761620981713255401138011391799322273346798807470055215549769304691776866842755797376455837787851830688914013943346032863429851125540456966227493739516928955516223081408175175582184608262337449478121268419299589082318638746884369024905976059045437985584597478423190541599097280120380934329016594793261259805485302004926047891643865462494776500742815461132956873594896781469490460743259413276392825548576392963786760732552592946764402031370916495753120008508697085823428385414735940271561583586877861170428826840000830964208455661798291699118869665597812439422536774488608970916194111750845474502371203099350707993563578525388252678891727807702563602117183244154970503377552369878802600771407335046304504694931288552045231150130745240076917342177599991428393779045677060627768037772255880895980646942047045006498920469223900812810934656723243424488409338858655639669160444755426649377350492388823030402032496614647689489797916044791259604131574807792778609945920434626556790247131010723313675022404929990357903490759759175994364917743756121708652906767236534330650264682902200801134203859563950003431172995283671033628561114258811942569503133355111625449698257222108463411029431380212172577920459607431554236403610773335005054458169367840230726233226043950720507864646212876436962474053265632547212899896748810731189901228971625128404940559411688311313286130055205034233009986538784185238283020566301677668410608077583272068640850828466939176091844452412769894082591629151904445117133387390812284256758030944496731290917413009294096998200030598794490398281651924009026075251280977363832915610496536014202390389107620992004960645865513565289612008563308916794744185662068654025589594540797394450238492644210548347483400834104524207178735135743477208013936064375041629487848324365556433150805074407329631943228860404354488008760971114532367095061621754584394407115942988327437457550932909616480372898992370485694925659090075376487215029158348326007734539334085905711849025726963222099929638636622044518358369670812303597089614981710974283118631161656374852326696531615687840526379217414377713645880257283631623589596188773744813962720339468457514211798320333685587584315196842462931863539337537415752369226552236003506640969839664671259240863465693998581383437234920495984659625268342551834893623032199605993885731007608410877683058159476197239282951342916491210456804253314137971186634370320859164590143046820033801112118960589080152369215487163129158715119632704665394630131738970511283277107329065363780593291865279158207069265636842467829548936443020956410991353561839273187256431324466622755806256766336152911322958318470095843031230740353312791884889973016818946836374771719195383206228441483035692160963655132876238606802616938128553840322401658865113938820325995343740572438686394577136129362902921177342615779038221929622959309828924281839337370209390342143701934688081702851726605453886650881023478098483796195847009206659186945609217982732333444811264282479309388679285239700481736897237032398710942110952109505943978479198714796740980952442502160565464175748774387577756704420863755743044707983855946669986226876552141117765995604780169756671694465537363512611785680495693808349948891458786451694703213042459626165664005016662846564530669766477727997431897881888854629062000675283297045756950445889582875431354244928201133488012625056536819247271760921711428217042411565402840142311246609680821007929680213773931554963462285539042872878874152374254009192360534785250935852913908371517518168033449426349327020228883726791568793444917586444656964926366869335337432573111351256117102823568371752834022991124841200824252033567406939010206896100578473637861909130057294379936132030841895791308875023038371861365932579998334344962722315093317691356812246892352549447371612838336463134812960908295498501354740876560512899815190071060794904732281731529024613826160850289475360668398240322127318565346829249918107696722427079159738200988956322671801364241666232163219227300915388492009540101858033025420701836020207358693003862106453714288952464923916404810852773691762424942222059707736814769686261302340421534845606902001335526574070944134842512799453881469234268623197068439599908598554835311009966157085541328889318164189544667211453344004356934177354197631755610836208455959855324570769887343051322302983712064035700301378554315340550370484437765302831216436259188934645548190950371748185438354616205170896541452855002421034765475631410966587232277801424231094077545281695748506131663866564226761469414310377347911426222295441871282599359603130890211943645457786483602741663224266383637081243509924392681155574464715088229814976533362833484593148244962630788109306769643567655571575166782492184838587245945543891307889506461067975476567461832623846934299731190656723949111625106499735912421369496026039241392602649992379052380120034409938006427986929128598862584466186477374282962388541135417183874455628480170996547616471090878345611632739084859710015843894820126775128028498181958511112452883856384889269867125757590532929225846436636982757211638616039905234433994093781949561339932065962925847113224964564341644130175286565105616625705825052630880331290794805579878625578508784599710046672025042978297044306506860891629306302712811000192719898543119776217159439315715459784737958403316440990104472451370632925402500115183859403913204234296165219785705208216117756296578473144962038320795149797803718172155088940937380147378130134480880422644389848784404988036559591577021108617913005229361021896629824316819955275599968896304460062006645123844916424040950947702999998263957554302589615173672867729253493758573305137515426780724890473818561767645041702364226801232346250863114827113670765906126363732213305020325094214388953605980082895296418345893924786901697450898020871909745564191251628980093835420355012794902314165750795140296279629665192831812685758163150909390118647622377131013045581949190101830849235693208663898850543637573715417688933655328001748627501061919181591226335324542734475418794062018764023482651600042132366159340242568519926135063115378489795376565202507906832799728868239174492204733769266036424749500895687548776924244595814198351101156838372669849096067110406999726160089553948492592048038660281574552324243131972663763666669197513816142222864981588770783404053727093045956662641821699350283327063705179814387581772412018985845562006934334092269507058171727769292429570627045288567613329511275816798575294774881205554419346723188470415216741164121914466901898146894682995126239918253563245606546437123742138043865304142813080649194005186143919820791302491659333888629651388767001499538086400242291705053242686845551984516302360183690097613411688739805190919300370836178390232837374308169380878669211685722409343375620708206495796009401716359452219855809408423251226359117351125846188641178037670506907221815989001389513335777099699912769483544919402624174410752394208701748311336995477758707705647261675930634136065240422458466467754792724755435522072414984771194218261440224680733951484486832100271404272872393028563299359659527802223300483803460468941212623769561467924362235652377906167403971528807232302073645949400168711077381886094810194197065257225316228946728357466471206678554432696054534349728288647464827704345389232350961855743045324957339625552636685998058965427148871752996208013037362579090608098225370906977114553243849400955723905478012206697791942769552084137165364625128779966788210638595809872232628769059643037661674347111483752430755962550656362006326207969351271670394179243736717246852066146722869786480870399678636055274327876453314092949366849238793039258945893990517609786566945892763147595141727410318509818818579275641634273426711898332912416298635845373658988453735171310263681566456510759040355630124033126966282375029576834587184164436901433336234601098939302751574993720693268926142989786457647047552935557478110358679771410376266542636005234565559774951118574581914421902298364486501160350187018158149515258421293569316408136356340979994123484778848523549912623047645672095011240645741998925703032264197440789205980571392531636213881567697053888001984409596899947101065540777448684938063993057188578884636383090846098032128275655905861794253620556817592332044541022416190131218274091212508621505943912992278883339694150834468966432987875990779900966016925113608870536462286366025361278913516149718267896779262459958308088711190395924530141202662626137201397489218126014063006187751656977482249800907979186911430377768597729094149106912955690473303083642383597314001728874473386187518951374013880592618043285145228768746284942480798772146428306286846210598625186246137547619745752843794398110362612998326000258253739284318673046946287351114308975318616129118451471926575266047320389133335482609334764324286775157544471771728557075633205525673992169957386758802205965830748316349312011837650941013126700650352498503747021554599240560285522416428329327787219771437920511210362611916697401198167036472710324843277208373477428478063653681668692644525763056458649109160348905734090956243407191331199545191368905761163019259349912622991021593841633759311988000642203638649286482694029396760750330248735527286505250925423476089503390908863452777214316748440966880150284044275989739177630016807009824554173485512215826753547570341792787171162072850577800424560811899804378400837394149291369801589139530394063506403620166741483868508237587720706185992316705586092995613991860697935919784660444969334707802895971090396761192446892787741871708960105574806174925151164720272298259348074528638328646956581688486185707798347551021204305096432715867482773508842757297858457355533062365993306628204932238095652001584234078381616550273250536056399251306064339840472258923964989692197887956388436640782682182527156666497246205264502758089873157108452160995067214025776730175731850276497393385361140753118025308430211978956026804087361379843086553733902173592878800877164703820588282460124660005434645350921864861080532349058463968211445843977467399826422921131670720054854685784361047315486980742892355393101038308195121076312486129112888113069286849472513239711319376291077246403728846256012362964553917439241537675859771298765630891054601124870648921592788778917586879314409222671771816595796034016074714722043124105922679350567269399499370726885779725246620037693981562712112983306879836619498311528449394454679026660805937978020514235448490031548123582799013341211483969573141272532035816218967618577265045566007037291553329423007300415317015722969242190717520664369729271671855844789610157338397257807559282604372942047704840821407472766928296916931086307981506751070422034882298944760028030635429881700738448183143652565778208168063791417480762582088760748874852744594907935273261061544412670267935961626049840956299787987803450586903122391559727329359332862524027972529904773876503544775190786395856104084275863698869401534835482117139657531075722049858773646312034623333714559420604782239968908522910056652716210896481693956989433610256950733438680861363975452028860661803003078344523989166838667889043458561351291298720048023188003715489456050254670903604050248630348137591996193942549470796834782818645558171025468996629446859185565010722523433456499710850515308403856350268745535421046312886176429535763775007497855824830649306562441294314303036136041689693060335878533728749015118928647139197374605046005999328472668070288996063753645278707991052332586221633347925819385943775861032597447322967475594835181770004213237914410119181222192571056281394334114468223518780780484192762940108982972971774250779043064467420196862530296968556189446030400252389592658729890868514947807517571849913466009648311935653042718279981390212667526203429772167403794440402359113295758800282339098892107418269129467117349179325740073918144892005116681841310340997680556549946538888508244318410854668515200598146394840718832056619368587906116419770652550735603398957992076235971113433623236145733448363079808837973915114384342533147395347556376799881693167403559999368821466610803730126681844310555924968850011358689657027556634228552876909629291099596376346949298770553262027937830849462185734392497940234294038161905927605116591252433543417664007948765128816608503728096052080359421907896574082864321760924380578078211717364793113706782962335043039731938590340915740996482395801124167762373813119865334231073308313990616681215284263684632601560201282605849191435553558944854352185423755739195708808748595284058714021941624038862978332107495597807942307447289911717814107521758531011666943365478056868683156031621195253037756283529111168390722012099734471216745353689670575823805240402311125474304567709440732325612630693968274036379218824928084630778719569186529531930750651902517933546072008015631401791873811624306439533605873229641237222429008329571185016811790502667245395635034279479697128916434677159629573683647845501572285759548036265320660979042388841497028647718140027978989244109307031777572264127142099019821095790383782088553360802926816494062733825627529539878397651699551002493613357465726570483843522513610080244435863750154716793992268169939344396262564206804181652211196464995566652024227593749796922837226667156022675320121125843422111633196151260213827807415532854803704320862656713305353282240885558252931185234097745541269739247400526082371781668758461437421978390782774168879275742434189770174281197093625863258399278934938450587033479341696382201349355859605083744635811237060615444231970435468979715792607044190888377928978275751908269351860544343202322985800237253570840419094331406492490862535449846812778831103228707604066305344476371934617867044156683385522393427235034821468995654604630558609258776081358350869947370277525365791658809557677921160507766302790650496423379955146851447494954217374202714047208447878534126668795198375996915271400612787582105014374481384297396775217480508717613510602124548542157667550938394264685128000922423197010763766732981057739208064885484140463683958918069988785726226346675512602681367900304877784774400949861753621287964168905033042960288873883904915509226536534422422713116367572384079462817748946536474923573121305515453990464914705345962703501698812902396941763577487330295610288608450652271474216100636301034026953922054769665486241455245211607729789192265086953192570364967100353204302153865346358956299944502584962712181421539787999061455466611955540916233035638833455092764751755447989508544873521088771662292442498199916720789737045673563779411125071631649762956179066699466415613239818223932241764317453524507327989613159444701949904710704786212666427315346298187999609444659345807488448553958277041180334730960780990218517471830338226242721416132930805244793763885177203715551134460982334395883485778503916057150465042081873128132249898180702086855695836469064166944808957863500974885401928776608364964218945079304205735672829877949070974957280214341458610009851631716073524063627532773758920502042427300571939909028449144692747372918292912112522862360522055683630646165946532544090990543685484931328828950462873909897801936737197703144797926926982078988477334772101862888611399013313951167505980864486400608329807744983160909127668052112844092700486965241504152856635090181663240298959256796956821426720694311878418721936536242864781569688529324087100960541053834576335026589668267716674729766011606872896368859218282651073161711567047207455400215571812266542351702355923564252043455428982164248403320626984924302873458750696322263935437732207235274062239831411443213085044685483469095059679655176474388730749806814049005607977551672956392313071750729224257759410751078737891838017737071031219094326916227900815577507241101531919512746873890262107069714583707667074879500843827769695219679900399800258425058800908058850222719886310247090478928220355622159247048836967246039018683221517447147052708039842535096146240172359009223181071699625478599530903413544595434190287671964617114330417537026652565939202013238103373251250907200781028343679044257879346836241113312355170797650677883239707009248199300828151775455498301675712812002910136155908640496050074064184464966134421533750674378284176211325389126654095165699015029013261882410389872708697906847419407825028894085372866105233381329132534572748461082428814911677884607372175595605529620995263969016564384088276773661900822578654153608996804728839775063140706459606161450710683635449447156983926535243836707959031393642509714300446182093367960920608520752097060120320796372991804427740658085381145442793746808317688312065746133425204029822036192892999051787844258578601777649481782794054786385081886677923668394959055018200302237232312381308023279081590169602535906871367099709244385342444044972573318710376975050760722864157227880557608938634228239204318356650060393072931299357202330191384838387423499084215614322683684868192830264860800149386482795738225900040374029891924226801564869591102878532079202874606603962171591451159581217400852846663106023845200816475106169586134567479381455208033843488875096896678326761193134328629078030862510147361874413648682152235343688463099671958997904272506408165734946361585554948945995136704939786626869529600460120294007250304626836935989114094388441523565380253828029564468066878433157136499834872645078747455870679940344552234186182978245322239372868878346912482376001185862783439192642064642596341035823640663060373957941778329514602980444302743864427780515402141023747533067946486551223322651148200553473431168215003154723047215085136126182543051190832395164972552768867808739677231947877075316481636708431974118007204845348152129076615413009427832295961707624252516784288204634186180067428466441846298631728361233850812346719290301724752457664443103032493089192050069104359997632985010858678955145700769291700787004818404866306930296087553581216853178629948106828090817717306377432592825321242524652699413255162175194946094024362153202155670740781747383385604453865240918490024380276383660618715392305927840328014334710063770074499105025101268429423002111914247854442424342109500120165592329311292033537627616535702840873180239420885194727433058821998442552414882612303358178607937356385585056263066701376935192850381497345524402900337094949143273341361159362314937489805225373839303007042200898644715894975060574102794447293250291285413921295859692725319591681297849691046888576781562290639007784690716351597185624981247526671852189427223939077322189533048752439667828252306493291866650386056801497477309084117385536411470486198679962288494083055681995772900116379892690592111156133898871894033846668949848471626819300922452688887661225949163757209443395675377965234509024987791362889734478709041985546312241332217422417625322461008798739810810184429814739450809260127124286894072296367037712269903111378236886002061822803023188146548770801308355203703158012237976454003434741877683594010906258402755706860346637206665755804951964461313390975288748273608508178272534948391578413153973836136581499995387217907798742980261384676650514360906726540882219273418623317481378012954546528637441022708720333366534318952485695390771596801936426969208963520837016792684973942131057945492440284591525792585212731739182476430529184318037875239585389521783217966917004798109976903598100111507111345921520536223251972175180582056804844810996031442646295589244582732375917423567155625309038307819783430154804981680070826026368168058897268393906239276075544653146446657108538623998347064222224250292473255924651828811814373046177605899026085689407760362974419340365386522324280264690076384549014799815359516147371773049929171387920057967627254768886346232947331651567973564793118737133667875136537196581192860526454297476122760231320044804605472294119277927099983270700839010812772156189357520167031392211809197720377241376166480431558860821895799635369746502730439180747438474800762076745847431032622416692049236763516302049985289379584206593677786477491436475992721550405573903594136913835333360551160226691214228986954276158119677146385174830329360019041076878348865810508001361891332259108196276023701889594799545244423990248208066364947461620170712652866141530757759850399511460976268244859382257745247906709911735936231138060805134404666418136963784518314283187440902797873097695654464748390004463582865296310949416778944239991530731642998213828824318003847381801353758800689229082305206601626352538031823030134090878489755294598049205639031789841684647139856743071723550239954401823228495789015458722717135836793108438314841474658090467118393453572481506817154083172436857040257900508465053258758863666413262475325890463230769596183803310442784708936809207810943086177925517154721708918363143723310383167433886990631600741977845979428481787156439392998663031315017892818567495489459978439163550405171360164845692476555304889347303076867119306234882152883091407968283687803544268732540467401361717372907841947690100180856423017767575503457763859890477068124615774433241061140252515990071585690235849132224239895523782513975877900572373174976536625688565490660109034573986557094448173055356792359484511096218876510230678898733077017706694761914617745457730497843577174886631052485427212448689128620403079027759284747863571576754404084576135831871329120966962547595383755125758460708467699288509218864503399573288734059562146583198676791899296668667221537068578414620689207919954142361590423922099601997693125360531831828155848449474393657406525108312397068876209211485850339320008893101490201141798561280710338103742669820177860653405894793172693754586468535549132950877849157743888489233425845062400912812970822385840558110668059820575406099212835181160927724738762920023616914385534836139628136182967598285836853745769455555367043962718436877018288769558510487974713577947539444674956024526989211315889933710412271476533524562594140351945723626838168235637904607508818566197741541924496312332033814377015959180387874539515184709045490712565597056199452613809995742764427024977611781486601345223768434831292001001673270269285696544945818822528371379037312217321150117042224503533317605180033842109176367504150642299998278916814891750778203852838618831015216847481054838501180316966097643224187506413793319195686446332500301996861454996682605530336448728740163218777526677719557977927482093773492903426161090420383048875576969858433459006132684124629850439104316763898634618535020396696415130181762964428935540136984621026719244888314766072707387157308163101210517261555284183514988111166306091963376869002860163417135374364871436439169174798524772872752672516480782513914116338697624715029771089287598436871647297811570429536284818103287435056649810073952804450957341390874229147059927244206005178681249448054507673419478566628589829648926247767899059297587069381556154775072101580076111249654565707152564732535498676129155910625321371168740479917892242387252108769173485771175229939010394170154444539510584364160332151429072399468003869242397470114219146621422455445913673769453670174862617876095683528387218787619355406163188149762936071773179128072661542023200584249475419080653279804666875762189542036181069436852410203236901733819574784261045560578691411242796557746260608453873962849679799543613117774768476524690682940471647592056676598177737916248921318417583156394014802244597071186225117588879927443926462934258394915342936099932470673288662346795191261860863224882947383474858942555191517442031362766962475196891298378582213743581951518192753809914358735628040542014840553145187109491726374034002706664816979411865738075623208388826003977510848717338394748348801258213532911563461538604246125075358825165958047966289280196147606244326759533192130711309918536378710161518341498094719068607201666758181491229208970684235382010244689098083809467694329094296095419091917553964023485374099251853137100091100462806958760013420690332493122808943006128945058354331859743837602490172070701322179137028681261156280893820690058313572046980794386793781055902809081032360295462585240210749425786528458791526385228257149854520541722962942597222364857804378558438339177568033551406539165915657958859438099234902130569626244820704844368969756932971368844512564674256468451374234020885882203315759777618282914388196448297151513883486829402963828167409343531459827854556416037256053132943532502259986932412275417165463497023625539902050647916421620163780475673248056585568593000575137860860199599005653520994058500009307894226411534304693691176065750874131817644998260546456640372204855872877621905008929116858141498058516334594693321219745453621277473915642046080410902523779757385414642012079573061604211243995514905264759391372932047543696206123268316336448993688240935309354608101712862568605591967715279757960033962936124680175912280404323617013245265307190490412926259324034111063396803611353687023215970774213540019001924779611324597443110069413079081158443537507838372735198364704957353901215531881988571775850412238238825957294314243059765140639377890074408998557673447787175131491274036093301826586855417367921169203657176711294650802658331015282831186112162041596158512779901437688461569607072657839556921166016466841570290604685809512331304976174909731020992780002053913417296939316234574403528374868536961064070019300406455113532049595211642739153735431591340018164609518015696252392894848835694066916482198388062729671486878511282749249981149686601742628927005748286429927566481060840134458969260739050869208568967798443711619437142211877767132515761345580143931850272112422343001304066190425876752464510176441545648678036701987489694981707732124584324055181710579147091300778024453052760828959375707062653245867601551228860732281518439391806606852684999656868170952684210907991580715149214739957698019844123226076681603569238731849327804419096138840400966606647304988521235516525566638145369208577768583138046381754118958339984261488513354108877254684757827692511492746107394102175797321062649085472001316382696219858992341561086301953280944677460831800004298280585599054907736915666973088539570032229481770146774904642157152743827960385294538590325561241849313740802641911704222512268462754127649590306121218285163135188576839045100476108259721731286297451790071881440804991377552087054415793401998050393679383416174114739038402930180422465308695050880665450987151812547115251517246640827580388202489537962698154739681307239824211694724458261477524732836910435778383504023415189576461110799138092827668157802989624119388810581780095304003437005824790425642359791237051016184358269653548696791367592289704071933005016589468881500320588355490789407471372619679158533389241129215326896970532424986750494780322036389330325593329166528113580158635680427578263476091076002855967984460744407735943520189538326707788052978288084109264380687787830199095541292495263240881881990725497363263255257116679923276277502291085881452236243803645223029064483275864675518652908789246215430013066375495797699730479766842068142753458001764952810252090439243947483855207667113658179843393829761852543578990096491453593965998656558778437032249859312769847122660184396897372902614567355558512804784167806328915702106779952966915693787793493585425180306250529592674869932209798053151878478872016039947276427995828401767750621911921883897073118011841151356639943361763992681180819562698391783494271813998302028152669305822751001644720045990306825822051049985265545061311978074885051069971047111196752401195165011168356827093824116494611879951983459404234658907122221364831131579860968320192948431054335547545715079558195683695255765559984105193263234501160273601174810021746302232504496270564408181722520127383051277580318269979180477683853201506897043356142384007919419424564237879498734058837007774281279834779477520737244513511616972328868151887171304068957999391638081400306905829164899951842652963342572495826721375158064169515890791809218096077617284500730905785632061539114938509164045614609797639429979991957102400000211440526753479693099144837526726312537262339086637815643892485760538993481052109077297003224890638025717423896875901645875695611430921060275364335950501337452726540943020251906478391489215902885451931645300955422016751142219772922989190093993779592914676346976347923498320440247750019030043285173002058486061739561848721982720553936567680352010457946686650109649261969261130640222425543228212348262586619889503603696063736450843037307143606565367587543172745255352051809944954295084192660494561035020134236534365121176772631740551628399543605693490543254501826285639188526742484929450406106473762913912512168569432712785574642255463677854579984601435512236743765731183002267409043010632266211562247979568880768541698942245858523888611386826570150201224695086155251887347796998331438343370448010440157770814167740225741947047857056938280572636216530137339236070442571529484089594875484221228368188681757028999446480644461450357661425858280058517574201940665670012270830785266481508728054284487559058193516653358304988995718349623938845419259677264405449286596259476887981486213966272389457925106185847279330828235599351501706866131962398670711703529659560213790922871788940196902983993570948983186439262426746516069888741856258594110559074935803567770176933545502349177858842539765639934609520981322656034011595278681905380490879024427195451802654042828008992267548921858840834130890822732790672458776680693923670239092020489684318230677886939837258783269501410510102435364865607295666315325257513667330602805729606737533700675342442207315417478573291447940663564402831999212994937760010369932595085290235376768120272375467735722588147643073354385540941516502296371691548567567081786531771731514998944284031904929741071043375350823330280444776829937876297763129064560695624764787018203808644612142721751333033604347398698150523904209121515761117586067173325019851703359568511995581887588778189859719288227137720477161938517349785782163554369307766638777303951604997144580270449135040905643582041954287502079754662892922791378412151654395133628034634436124748710772072889472924540310168949898004477987024042809446360759231607953272583685591603583026141580442741881972213169925602794736512346293060713927565545592831062554296499447339823060252302744228039239172033287985385886909386257518503930247778537144100198868047350669190277938735331650963622194485714655118482483466356590511425555202299481094196736129045727539155592560294677727054555959384471363449028258595937696313093489316268431761728716092516766963880880963935939952234449980150980398951870284125382558376422049970332316263809735961789568354514486813369878686013313581336941907301164158665770987207368774983385592800209202602763546578133721118624041928178906336883558734004928304182770380210683437275572479779264149036153739360091754224761080736196522307273186068304987596532555147599905782969349232065466845443171205253044024638218788376545605577435072730304816787859352096166233530639001365946450446308221708069677017953917166252837482645506103849315510233140046959364984177416368567804076643086898357432859577143798433362656659692940037607224984256110757019825055557240190210773562432086323294532208024272452138690746286678623697249826298907850856846666060976922213667749706516642947234831201512508732299707908159651309914685762839067538800399263877712904698696535256232324993757684486126424339107560471463535802888238748172175050227054439229375473404342641124264549272896766643664572384023377750658526214449859950549550226070281593437352192698888360504514670169669524551601997444550524439707695461548018140308005120809973933914013108076639980877590147693252745188807319555077989293716982859560253324582434480769294633691755943684852105686826538763841995555949583357701217734531801066621750471567951816016412134325084548207724035093220394552550122581373038736739346290155354607644184042764433030058455818935061605208788655691016370601141327998456911290108719377810892591584793904016660732430010324224970500568152417464437286278211121393187253899873348103045389726669576538993449830593503387319557944771839707408241222399802660026924959044722025961396628763824590860134958456387647953586342666230700173556853851760743742179971934002296929939247722025101476570539546641484669132194626104711759240936282999490020607452804561154954123957460444366005656638722326077063156012812083640854599722578442428382501731397770689483480084595426903299076952651735628304101216807708004439604245753391477174888099949639093298591147354671493002198275495050525837618569172899697878821893466021888391649691722317341024072380649485142584325040352062432162519369259155412773161350006106821134741697158914793794896639767181598810052881577730197786089212247013554543903577018658481078288653489086224814483501481896544465811557577264792439341013910738232689325253669517455503846992349658384376771224525453195654911280067663663638092861266008485872734770245444513631314603652625084996195512443176685493379406666261998352117914519191293274813786420838195673730403188196460441883751004849281349753976796316626344173013726850862589186191322416065771215894479312523416223535782348517419841454661262234930837450209985435163591274951127781515941303491856866730082426565335710212220932407885684733357187845135499242287716031674767891323125156658518861288128648377316952504379807312679795149858645176672115419279526457757088717757639425672520616766000804839565276556158651670863449353724554005313878875257782776451360741167305791755018828641321739508422587903211666668498730974352902710394007449364053382080408253359878581920885666832504266904454874280286948349091577324415753288029643345251249384263659463547405947120989505446972411619963670440114687191837439848218354247114002860896270261950858265931201599214770365489395198320803692415074421698372463480735634783228505242946504245801859490451677350699776170040238017105443571333256909906060019001852944388730033461570710522139534190147051065408747353436503814893079412068588670789650729644951319529412400186718259368495842165713281746097739777740734439007319438103413598762978528465040590991209858667406264353013530033461227139278548167975916809009549644406589596885213313430081182176337736360789179070268777636177705673485817363092061278901853551095436499526995315280188698894777845373829729825982204064637547616266045181466506357298599685320243232517918675532298314479979238984141760706431082738635014687832872222911322872940072169358782732002557995663577959352989187035954459552182164323524240668698600053710433126193035906268079434322285437716811627737298247908735580330744673696151855846134623166524713558697099479228009732626613065902971859793754725740601901132689165823567815730094486098411068712362665149430400686380491842355442345464378291108986472058097772754330440239639842666703437609838649208114295718253983488187690105212348018368657944792188812434568361094204600258639251687292953838844437278819483165268618425688459987038649336431782101484441717838249918705772173677997774273496355118259838369283828668368930866893500367236308140389165639168090459534905766238174422500566812156311352056188936772827565215601966896537110910943569410678575020586547678375589856508690863671155482065184404399759201172545323864635150338682151408334860703394280947484296463025969413714062773512892093633293212462045130014260958195583205417972659098697647356344046925590797517736877955836687299574917790498477537860240530789847750388190630246510731540340396739842005882308234299818100062618689513731689685909847428382630368619324993570485602361585838951282477449324530371287891716751476892366046413802777174543170601398783675936442877855462196029506469086227410994446854352489325682350452715810200424025484870879300032205226524315113466775266773142573506773051445489337387713888222145417005710939100241476133060381501081978203798030567885781851135133360438620134494112183933505411100297074329101087195721835858717938533182467936929444512680327924854478655984003571962632398665138559670322185185195205541732463483985050289054926183290561729338633194427120927576281890077843187119588795613630739915351878780493524395910191328098965570173387704412082635140122007435090990624105107258084620430128430483400355031019395653200017667992485622030838937838574757460840659042118861674633486279327195009893579406140033772859880778410656105557523756875789564271713882819552050990634695176796667289461198192241061932167938598688707055117235507086539848333951905076446958386221730431394609047797485642632959052676390093339023338968140509697821673782054181835429365833070373177920636021587094833525382336116104446413718491694564797962979281766699547375014282153716168455076510723591309779749295854728878016955295973822672581426187352499748602465973508857554424731361151258942629224211035999018116791555722102436559535012164273892809586146683624135640933865525246854366678442986790928993669680324287781779438921660626832011486246475316001425897499904322764337951582146977652974000815777016342982493032135629609123711791152760602147539877092936729235191138562518864812674323534194500055531028059585264537529216046874578660450790273014919843670077664017291102108524670467190470306798104715585506537865842620053877371413410619607349462699497831654571529984115547867873493773953532388650011622642424967797815206502595229806699809868240377229086721990714217114857366151732669642038530276229880258890676033075572729356841089073549839001625949772279914326848995871165729689302419171762919487512230289092650465885670060298455464245583284875178713938106504282536612928615780282698670162207788682638853453585944175186569241536602778314187785414167677982414051027742324735798738109087929126326909538200206078395338014760691552537170311552277591189729079821664134309198351854013528470203129218157837199787439764396285841040039000126449450300747034522805380895279667671729603970324153878313037044046642868934535621763131829119416518846786559379137479065532845692963346176306750237704039751191472886925521406423946540994888797823880012634553640256340192164087711102349142980798607301568901344615247623987659220605271004245640774639475128439096425248234131591352251442518019719837054497810591984186908454082142865851060454796547514472026122350892341090957617488690795453034049883595538921063241765051123952825007322590386436277735935508979396889550155848120024494353558973234483677374431583018544152823678896320795745223791069998387627451953945027265897861585684790162870024144793042204053850654644476173562705580140860874059284334024510850294198751557675374314061783489641118310271787825467426472963751121021085843571169132358515351411568351727904530258312133926205828404085303032862529329861625040877445713494307912252875947212420997026604760339193619547520000823359107191467242530934414087128558359005342747014961467215193107330141820846106110458903198090722363947906370685711178356130336170286517772781327498620649680416832983815506468238071207336895272560869041498681681036781003873994506037885235058047177249064108962035338915589554822935725409964855202498932785181811056243662169842597747121321076268761309077155032478995957642611558706236914130373681607670561895349852415174431584978115602134419848132186856838530476704528182704502778143192841711024546654585578147009639984163798242227283928980259552988991637726574486870157182817752095200770496913043179262670124243038716987428655642242559455960000542918207116230127949256995278430420010693032523914908889043221381835136337280311444366406482393333345813670417915507805885989976275902784807847922417729254467668596669504386905182219730227089720665429668748625149414582440258712801637708361626031074872319037931937788874088566915104986966071730873786560930872311270188506495830128298529909426986612881993879233739822213594720113554752342461191076932206728285057545963407071531055480589409717759119519752100988931332265476769146505758540243126985321675228710849814960649735212976452564870510279947621585962853457494843327512817541278014202048149251155498923325032589909843891100360504685170488102317966135232290017401574484258637215062334457826756566225844980944340398693990526670390922560080089340572712412746408538272687582704630639368961296631101030749088329486099590408205304674833346735719446727919342112400347588037391949718710438762192435156767134733242478475363850638953464016608616073705040934665846144208555094128035233457346964034445405582267717747338190261465875908616185800047611061632858969973889550089397063255763940241721456795851519712929073142310519595370027637449649686468784127046192063727548344878291881488239944214466872037973020901076721590051290734472901755790943255508633961651644108861291652706724471155710435745034581069397079133139171181231310954943594857749253730180937726930334484664790320980682177898057643910868534751925031500841298238655735416096263784763140893317540844065421263791352757139147292541058096786062532364762559669805567268953407575057563722659223246719768092407044009177752701538555402571907321590831283000650646389324073319779451641853522524372408924353169174725397437423881511840524539064273443265003450721908181247833276639664529728448269628703232631674484723917783044550260960311650215560429757587904972947189760152426967750229446653108476339749623784849473649587130291371367852491076892081592046778836459476177576178198812132750049436296451388856624601010196564596030652414069548277504141056405591300691757081001922604922355015255122468503338630708524491405334999489807854239655153121392819417217164531765104723788672666562405622175553054321454308978118622303856500866118728793327701890167355876293106449260795022970454363167207068658536875245410746745665634163227999706432708714699742176815115300871632544877113298004829079338774759278983814397471780281383825982067885257928788288423073286594641552445290366168287696287181677093046042655491449168355524531973055993547598318604301009616317346856991107099193629606647100899148500865510564613732732402840567946112417206913321737241376852049408433359056824452036796186566029353300484231347601632207460363976326297266885168373092001050974925162079227126990954612347436124068459856743716554871549162542883374631852412684941656779289058611044737539020117160348965226774141413420964621249660819712805797462620894825901627483585361361182916947611303657441989620004073923658049151432912054561870310272996999359120838817265505922773608479918978442414120738556998212888760966518281690725150836494598981169057897932531159572957796411220909805263528045961260758349553834034399852466202828188929714317562840560203471456242525849617625227940248357435608958167173026470477151634119420630092926176803713207706446956122697290624051649522397652593784978153142554866187612220618864074054022858687299088541375443562381621927401860662180419701017541911430991046799341333092998579915580688617699462453738285004183454591740004760105798447329766390222692125625165963619658753594674996373458986239226990100779453882896543516454599281433088397010937339854210919277287236228430470273574624874892148552546631160346215409912538615720378021207884204295257703704030400441726377948845220942517604352633170035419327879802725750296507759656141808401088154149575133873098492168830631699048371889893668394165029801394498390883666902139640530118871771193445302393497233875739382750060314826794576912414682665851786498989202307366028305924594322721079914086306183498530859579516848794075203844354107866940919556454090653821527184321770656187033565383659591216188565381732571854064397768241996796473080027114021622957496239740242783276334676827587679687369950183558053161015003134792366210310589376278496566215038514653133217389419391795814738757605593996538592639276715949257806879070547255298475814456346975499929343919118491458783398045588569654867698800426102308365981862286434567645120037582058005975877445411900905046866146716603373144419971219757347320590017978211346187052769961075460896812669303637650529852906353798508059386603440295660568444917725693167727446173942333213373520280031239636211640380302914752264164976932959845098818066985944428753622016364440650086423346390722080109465087129284041582926689681231503194843211544416749753963694782160414479571611551016091637705276589053309233652348139807913069959235447393052717832102581315240089190816295753391284248928902016594411095479580593136960500958751570166107708343504488427834565847047232433353690910557500704011385844324996778346429795405431990589824085799052519975383497946835600681899595176939985680364780642540450123338061047173830560702538573579838208970660346932240654616215790032482491522809064699202348648559382983281330490740768852636748278774781245996044570657614620242599124239711839219458319623691424406169425034841206307853905848412129819395214725309971537993107071386692068863817858555533274164986241991491178467079222788329972037160224822704784688079800176658273528566849698729166577614705576863468681421469252939574260493353778045197013594240475211313781884193970623805259406443232835669678593673176733828261233460836517541699502322775537224305842856344628289724709589779034539906714622797374124578393261117725773497628327936235714222761938513818529126538920048603152879376627006332587234001895400081023507899654252159994404200329825800735213698753262133796930002538077162309651956706233239410808303172661364937285778133225204824320674031988599414615337089354289939549720375187115650483459892800035220956483625441306894790602469647586323455766242080739741307875435341683010103697891449632337576198457165370605057934473818939053985126869818615687884660088787051472999867591767416926057121534257349019992887792177107929016870867188330045706572079353060945620528646018978910316322985954172005648925307352376243016325958605379393584844739725174461959930966486706165311963774722945021365445790038503847674202332470443347355113844467391459314322391885840223247465804088948256307181733455625964581599517772420017359599653079531951786563165491074013515884229424318707134982777739004384822780379590478822329693797795967752202623669382338662974135623106868647945568192067936018920784227883256556903307686280016492820278677167077870438461705703184807203515135524079392304843644562193077466550314081798849413915250225280760019343515934121016345579983256565274548566454850674614852928720193979435339860658213993264820107072326117249332525345561211657365756025870373510386485811377005984088160585059197175728287460364189771177517271765856528035637353079172624039711419182249695368349863512469464107709217591673353378560626789121985295927160518822569507372943848699396438013381602100449428259484335457183663348761203486215904451712163450625420406052588593840730592190054505720547420487033396015049979937875440538173522508657351778726443025192796619415404650481997789189677211372235806181289841601089761684836324431638212016363689870561788322514007358191687400575327413606847498268418447583589478215164080465338817224415545335795620265719845195348617059721673811479260293652741530953034852258110519101781725394311858476224093318028948524554137540033859663905163412527572233902716374011606266295935034430621092291818908164659994260706409359059312851005923955635118315786357805596229821309953388966323376963561984788541277670244887539561376420347866108725036320203735512078605679403659923034790827488733972777947509758229033044922192776572544623100810566268704324149976717657523053836029412225640658982587634950783991892658571422657041181541267498733989329311133160812988534613132365961572740474700846900122971850756347507361152614555065541545076257763411813261584953669867442503950186046608319750702951981215284675230235216353937193091942604105319411835545528506133794812120741990757481143641218330558189888427168575306326524300522280932338776682682039318820543935935423134337687218489044406179074727882497407059844509414844659198981264668021980138189169246998889947492264236079515926790665705604080765989821903105979410044065437786708599117829825127388973741010986976729950238336372153601116283758974400075880762229419882800411242975282033620968778848550109596102079983361575020311873005190386410797646746080344107912038907383336727183111403109184786387077770871803662844534722992880707812719320697115118348106927439324120015535463521498699903175620108676254992431787644697587866267884815078814857485186135836012290819393343788592877093229924728418232165113566702592162831818334952742609404181667727752421725480205296315105872059459450884114449643121988818775260151912303636446472554835249843532752261354191834043247199199706389838825648156480660272925128683276379769853332492986042133600561062514996784452874670136359067859014275258154807116540909389048209703755295088145714238441340964608844469454812298719093512053735754463285541917252583531280835440250349753044335362608927982114342730735071240895770952022398694934154906246040519537936161555929499612624708441674434645280907281998991700487748429586835522012846872437724836338144375046247685950295913806554851447385800940828466378359220880413657138337606452221101515236582008145284104451051509160564129569356441624587579891113958637692643441643648544392318059723269037057285201629824071744239110599031560470757006590256358834489448835010342181459525324415830834893776436767613075432939833378699121374930594509042563363919280374121708771350344549769922477232484051657173388007335005491179412297381125329043532103703601587641669689726908792488659123159489735833014306037764763239517279247267497483831743962734720511782892841377545690113944027287005501616141195911393933582628516164899286798733157299346134337016834469689479240698537636333929311517622563099937430218482594949935402893648450857963914439252988648283824273685349898850495731915699162726546612767182855259989935949527081062281366596041604263315274496057890967167866338872573994783513989167914063887851420592692714254423230378000425583033429160781528256535557404716997104196753566745396276435747885426063199197852249932943645061282253656923586537076394991298065832954239178187112300363188939591512715729200901147819502173274375543333016697974894193750814187111230198948452654133352175650435446105311439438349620757591861845710408793173619684596519352543203983682845499292909024726866740675939743996047047900036983205258110672606961399613235127823090983720725005830066170860521294896466351581836201731584496973833552180242388419308687622710403225267632715364654160899656279659452938901858419311553921500725750627997644597817320869555548766659437556464237231724387959841035405011368015329240266143128788483808851763847199104667004473716256657152413506265795423254894802663319304198010212147730626595234517839028898329784893973973836855170393938168378150191455777804659186766649472519705910556264837115185646167910273725357218179844555975634356981715276453855160989891999771795712549678518593144736783801820223239244570327138829987492218436016350863137210698691794321056896808216230586023597315421840448613005046273291573426061446603812839837138326623597618746979919037162113578590387634482116929592001957611643453222179892608013903991604152365894382754518049675543881201966481791704659685404729848708809399919529083463313266984221008636575831706934752674038536205437472552275515025765182068362535257615153344244384495568695035106355331952111802495028572187078031325547121801507298032920824137022044015782369104539198853070258753309964223280285757698768101173035798408857816328607982441054709104462896294240215966713723274993051494590720199475135797511464794847459606182048552745357298392883744110741991535043496216707652026775236427318683136455274265973828018468986164035918103099864875365922874686665389219082430178297952471770877850352023619030854587197840064939778498873250376830839734934885064460358991093170843723534503245723850077587361439254396520654295945553394842092542111954263207828022673530940258486796092863579024795185946627438604615308442848316397046823768712553342970304033367922884177598309334834055413277463127054157576985514018660194552375151962732891972812916674983578781717838951878261012924304933692762953628309339678382297837958670645984426617437871328090371891025862543450967720364987439029228014194122153468682306681558194302011031875412463536370399965669731841352136224299129117324417895128435174772702414440466419612315591943804647299303545040696960427142933317124060080771865308777902495205050095569321680961224547101917306261961604429837619984758925342503311959789571449290267576129791551688441261851286940547272769941094551497028019656206406904066720083183731888747435343991607083710351087318439699796643167522233045623669287428059286912481032656457976432234459594107016348451414209533627388895141596660827604989065261199984604337390975299156960133920056227867006853020691808287985543320554771092435659891532482503316501873433040757537437667894927699982807897915878479871372430786294185649335316200009196037464323804964094996400961137957281717077222091472378825423627413743641779374096017234866294460877103612017258103196051332752633017716174261583906345583571766841944022476309738700579021602049350404660249274961246679557316607020924195937062661815709898678903095630613102633995385333852730818791012466748983376824059262281492469197695049595124171372722809573266304396462584701743053250809958570597240234789863119341534183450976593524311787611271212438000410811675117940165703698728746516283876792705322653390563248558321174842090394862054384371790657606720345691381991642114129171308098241392342845351718022595218759773359529578411612971119737241926973706389476546809343137607851693137498570097510544606607419146756101304486255675325551051708699803509063983365508271973184560111029087305084323546303332769361102302285181261170029426682529118968632055085268331371760379233379257607267025030590835557357426073768240796843576877609310490474891203766924088684150028343301321056703838751103772936079026500575269853882896163127428841738893897841514670612177166653344664790522136820361570948501126596358779329246982666100071265912764413824073987478645072665614993237903555209865099597094726082234274306469846875032852638416721686735678451431655566178691962440765795011501151694206300247890342721252348401627634916532359273576317673088481801946812392588035534244054004095376627446441662722257479534419213168204495492085629021779751174836041912995672874329992869687728692047902183261942262469135744835768025106236586856914192367789708968733544067516833891866975377731412086260994129953493551001686164188107541336841158253145813640827269825958463812749673493319875502823966910014402372573492750817192186834892882077542921503484846866719436837657698317359985580206283452327744202577466142031439063084518055747154222522271523786423370393966817225963024924668706835926804773522010583891859308209260623138746420621771121028396406930026575939678415001396960082666120949653817721925123617301896171162705348831202030914022451910230618411023718616034823524749665987490785555560950615408524822312843961735359268411236453802297991136581433182259417345092523846201013906560509670609374365153097019266134112316569870580173727844906823261890553406980301259402756536948670730752329080216066135878443239768108891471303817631172055733509006667339322961412581831737315995523140499910352304885088495608575907024583203416043835260884039324649212508988070563272889343222640413261518716754538869661383852440252255403333706169602491255599439204210890438231773257858111268617703326748382145922693704013974164007935019536036980445472431151243980139979847932743429325202712461946194476645740150195687901239850251831105200063773388565047493829613031832452512937747715369884174607527085953794716786342130632771465216185036488516551779759045518474335942030436236068595636987844344889635895093843824504537272341418728085989021828702467218965188934875093551521540904044088425276813712752833132145656920334455796419067700144601504148096597551655913149944280465154213606805006034982898458954741114552466124972270082026217754425231796800091090565760407884072466359745933161284766302933778686708950319152985127186321826845793767080905025193839393726015199318265196666574265166992871359744367405633091719204334945348405849245234946928901987194065569489036333164360267878704124662973654932258292622555311915493386650332959550586436120774438515598102113099734413013501310819955433989204524714443298966952217314801515945461226627221485602688189304268786410742588954859414527719293404844440141469349832784415193468263132965590431072323144768285409650213854954294329021626991249961519021707452197601660520014922608320338782410472951960001233646197144449753540373112839094268367151655354686301496396460925379526686711710220610292595172151919756513382223480231707356150779280577948534146341403371911778682640629359885733566410067147153148046571099872244094302977761707624155306772775093149281778407445596679354648761372435571690818259577652214923665988334090846571761991125087627790430286038486355527232614609538825869536294076080678908755266819895232827960744387879166611086722423484883791491377169208460359821934348282471459545900741293656395279482845176980285897869409036709692288791807028003466554945265821013591053693826970254360688596071855099909002149379566407460695968702257771808683904387674981387966359214129797631468663774309163033615089916356343257846168618926243218040223453674389735273025949755728985007198622295754969895616197691239861921664878325349042358331197578275138864812874980597069243815978217008878419505120845292737389399351410163270079417508703449488234985829705863175327384407964394950670210740874835639085166005337473499588096895192880599351903915639970839527857803255401731075995202239528963808835089536168188824896719341661390237172662682517377786122998482055383687108658501797043686425691608646495111750739237097469126417840594512104109257837184682230885753874716194015100673231802373122927168446004774639268212590595305187530937226214002933134654880500223683849760517238383508181982664440346962401015915123802432081227132185085749428542643743072063789045136377486783667714757960726010153689444277155650380478493778397064215312250962623081713928570709265230980536383833744499579840536195406045979480786105034383274512933980291015286675087915648091071786668479468157346711321427026130455775373793433746738436464707731968851644411293213889134932249968991339165943813688147688654452188330841682554102484462250665264793781406533048503633747715222756745011956876622615737684980899080866210294212661915335142058556486941931151427183391200536234583757067638894614928666200895402931603283617066287932005898578695172865535120789659934988899123408030013177908133593616678514443652978113645979467438780229021956495379334146628872553643038965296295435199647083137806575138814590395759113079412900827334874957141233641613537538884709024102747870678206632142695411989011000410830659105727978527249286890614338049801452942971058678901940643813140618310008291684309257502758006126576631364076529932958838767709112526126317937451805095173563616252253101820393140092309684065557600952471379191915532599203643507878556098634450995784846341500094698542643946563522308321932585372999127749543832679549553355849836568357779217310068177881132657348903138980693214352082636032642293661213303594936396394944513938539267554243873023987686650087700763369295852911846883912701702130646420998315911645957128414596555262370820847165471325740058561576091058845576088230698535752916707991164229956747593066731518852516564044502455171753704664351991684568792620242170991702922195609642659280595923817291839695894970129327481913147091971845129213814158821549993995335821110986211484458702269843530164252495952921406577444999079797747016015394054937278979848059276692066541356059031118904062718924386620495659645272465403016668740934474813075900233208489467595539550908708010836188566436544166619402054942279144262131844604491047037121115861523603658578057931178589965774258412672784883306431919396413553526782714207359555328485686123347963575905418785261195477399020232027713632971463068633657090874117969018467229747331951537806656165205696677525354564174195912799540827300026565995325375602042704131928097138072619472323269032835209415461749756172733760579944588429812769750550789231745735121066738344440861125074097109487748301604383563223077311030142970987826597268106165441581781408762567257304296814569884258463291873130398810465326057170496490939637624270677950428656650646284676185042446990930135917538377124068563565286564737864151782984903673831089621913496168198991686639702536777669178754409701733826868470412083907552222490607403281446916989967345077412482857391316534391776992189197856781584958995060087743670692478225836775391516417742534916534608323323924528982720075304365463742963744592613624865431684767077608044563586245804095323287634497513817246784933672591521864431768923829643557743010537975680178968636610553207888979831916205354675270467912023893757677395663406824242003960332783612936556678522841016939905089359851388005535818465027905576323661066705977289269502756322615449058217152103326027157749039851869517236276301812421770133145265519027814588392560456964061219371386495902951152762525195441151017488776734723663380904316271594094604547769334367097905123460764610206032516468869177297496867519683559194186718987151779545680573427422522840411821625463802644971318097064400073946228484169610474255162513116904752684855448628269748187102519209695251193913306681366106318123829756777043662728077135621077163198854829780043756425440506217933427660766360988531444258387554600919110059978813545394451620707394345772268408744014563699363168146042301367808242848328757006087910053361916499523349141696963297185160780368442004210740865304428395719490551656751757660039139338184384711173986165574301101465376219244917436933272694078331315372753344211172387148984307751083210956107399968796244396993354979370607034588980093207860971707943475796345188356870984754570930367748884953409361216889118280440392641946233974371069647021505974005673120202702329920630698657080383917289192646149422204803271535800812216862048968272379157982300259427928252795290286384647869161848136704100505249829051694848919253832184950524061174491860965902362392740980843422508348540806461581792056407564284280933950554280786983134461765866017437176873488719518753682459723289050408709038717093233121126069230337379290829145903543859253716853845125549404043001397118688188008941068510304168770389145918369010605621823682262461872033338278306650408163564839202229782100012732024552184470473194495331671454351537401495941445303598061522989150681827357728133186062408191545523843822451294379587149494388834809064378582456523455749014749470239317136876177955806665811274071717267451126731394112393454052641080919185150064134961986584468803953687962003646054773299155697747173986380124970043084507056286144857182639685848729264037858409951381952367411270540736858819934771857801947438965955986663488775607969380949597320984126960239963871812433505280904915617147357178779582990671157979562403035671013028882600959380497443589190114918712647373479110209644882211686447207610412184912689248935456052923350630152462431670962570422096653678456953762597129413487311472204205016204123918616659764661243413419039187447108942040882323030395156937006761195660330190745963510211970318565985448700445081527081898487654012813082740587347334205373535605959981637141528026748471698698224340216431809821388982021278210672146977139448126178757009404846669010295974618744893305470430171781783025041877481778971693622532249867423931134486289306777792708518241641217595347141048738595097254324735179585029310040274137304211215589263361360210060606006844182120217848294425738817561483904426693355720668111333995512151068670581412732722159797187979489728704595613133295886123693839874431559692340263664276571629284574006496141784493761056143893321831718582695207279089829497345154112385788327003738344706213539882874584425891050419189415216846928800688532155260071781384559005166996338955098699833182585596122439472025544179346356038447200694101137143362529852825927320164645713640360345382237859283131574605212130942398495175011337473369476232718927909171786806960359092812763306539776647020940027193916980537738167441048791350957589822797348620584284709477733956865719669381827764953295144056774619330661064137592511224197019725502281255700733821477660785062570746058667356151130934314307177736365138976844760273766287453199646498178161271307346746691368144392858122837761390480283311085115107467960806674304191789133994866922040908543015576961441902773207146175416148161628521329367597624152217991131675344823477495128874405296053548546115904272651459835992306233710460850094942204486179365343577926483180312097623698446447036829602747161082702042718745320988526765443807418706450795336464824508858974515951236843887964476489149419080791140272740245681495267408033629219313674264534220283049799230656007039063902311180106749186730201677087598254142140079127407882448751194925500715389783417463690363961045641092379771331296529310620258958812916306413278077591350628502307027701055948654876543892898542776033482981487380893957508627194371411947628651968587756328479991716779708442711213895096097009618293126552003405519240129114537547329913173771300092660546645541929254724693489808250177201984544105209158007790011164290747190028964318827037865754819030175974022588184587377291035759272394036317621084716755296448128448435049752808355671651486066455954170276697681784399647304588665660268036919846437514518676074381145336093082333086504525702606763836022653284806785080554280036261095586161722250241519132635443671760123512893286767627407847677361093197083019946917483928307885963368182623713472559728591486831446036871549234313365934367736093624477172162305683757484538756789110262846617936855887698244264499497345805550702094663914838317443093995106179416636818584954624948117414484389796505548180721043698334334698038063755232348269789432771125340565681497105765774418650684913081285524076300763698947940328378133130450545679832243696011709303047525039783417114947498172401206046932712714614257370843878242734913717888386825123879487734827040313853213739512451547068134132154718386696068034465704135257336821069856892275645802097490084768669390913291257696351494337593964301766400439486660403241546870853777181197822916782281729453906143519347165556781045583116974954021371600976831869942515382500981694196540381828121597472778419293436927013514848918623145159149149908761673318141222905491557353974444658997600235724986313766677808423049867322657880846218807452714185401206437365801694496744041468474803842876180424375211906739980387141325712944895184248982014841052171126628693532360742086746418495967953823790016205536118250494318324282016534213536852458862054853869885488826232828141910619555629656774897678494278783724039471252826014465540162757293501199494186145903027521479285932346015254181903216954268381147234807377876891179672076466655419669262348718772780062146432338806562743277185112761256938761417473455304383201817134681890694052875478923108579384550831468801516685595504202175788090904900742444122003264293266807684925014840993291450804530598268118216427283513668682786097318786107282933338589792646108250243522491009605265461513646307998904465637464787588766897265999043002282446832948558383912375921768089139049642837611175513316992913926858068941225316878667748442966775322722176524229263625540287650264380253021160421761380543116637192998097126816521222889769702065979072302888261899336879776131741777681161581074425313436901184930517293811687237958010047081586638870081245642952210532281667380077948400923721735005437708854893955446408781968353758355265349667991309508680116652547442607553462496768784042212231704294971999349618075726362470881792853056561522808019360470174720831715941024153649494896280450935461761000143422250934367117814312592324271131283790405702472920251868318349155810716429282078760330686869895216075047669275012446386307391786945793188363768418457623855340310508039214405577866542692997860667544542450069332305559855831888988367906016130563305602614465990341115668678081434395348820324976709731908042646106332065524000232019719260426201066995171246154661283650673515224892587211610559552020637823651952518179115072580555261542286204922085732622580671307930214750562832945114335007879605432841791087467598174643902757724027074515252315313596245449214998933514953484060494345285999757949197509243112307174149710398998571951801607698136483739079040495703024810949329767737137296417690455784779609276106741129603916171606123760387942881423663631027495894544484896432236764852060548880366356205168515040294795074003076004886255063740477949491836634476283974310846916809216453540048022401297743227651968788061932406392183937083947619165135148416095676846944772702559565077459496804860467880975464668209237768720830372196505473831695546887584745957204144243870988323528418947869559988665231922147732119672268066762394804298476195351388219974395082083907897035951021730017164897118682770194859960283210785789148768401906400614881776139481435126254507777702176410475570826892104689133874679120461165598699597069568977634791794921396353699695382495362755874110458152150178376233340863476668437018167115052429033223887664567326978239475113270726439788322382190009099947236446073263261445645916186554391665629021235692303949957795491047494965420421266700146568095501458572940644398334683573868223842728816846307358717464271238529845286689253996040589602153820599671591740090911611741787803656370134772762732981937168076192022396563976618073994759957709474827802963330936463169494779023068054742690806137336778761830139372700631289192008777262102070397256365243422712651419315245787271200263389479665596037956550579128313194551332909033449700166376304491668842979948293163423008244922047183197651814956823670545935519217183323857114937409122169437607430642804471447804992620925270866638500753527306845088162507992655478838074243860890988085915963648487821253842311455399142015291206604541201986907867931601236120108979925455491727500765503624273454182255046445100646451794918984620217851611177274535725104392897057626504041260413728985480194964112859200317772573734175312720001102739375868108012975867175493790567919719729520404373860383768174138738268678252269953529760545000667503071100782751590799313852144852036596831933643603228093474103645341025357788890296293056360165185703925911371248888673109764330091907872927074463998674021135518624498896256062103461563617683534343609962021774374221511421295379117070642636822905966636032523377099342903399220501228694865124540628710174543776860136163085663325527749244172329819226419004063196509420134321069525984535471962995983939255685298978073263287075619549251127894047912491227646928295031022622625539429638248991931320919738639527146710550425538898222107422049133008268656916686421544647383316970214411146398486817388464624282430051428857738208480676570899511355171150011398780267285371354275336375925900913024846002951289429021424272496739271559489817119908473025538818761154221351779697625465342759762647454550557026896501556123338159703764635442552881514171862832154117509748220305174533289093466720644663692547753117427750693830946575735592474531816711180743375241783449623369238738442783809454765943740490153318064976739238578543612276158808887726169476997883722089635365047306955876010438300688022672894874629092337714050450811440952138662127840128247727350314696208234177395019744887017128729130520379891342541156447307478962202962533314339116873803318240347611275845947175458686990336643758972385786168220302639274333087730955241803563686068302481057321106866406401662214430775624300069628799866105246797156648663333654241185018877675579245278339898397674763875042552553422757237036064367454853529709439320676095708469539124394640181724574191291988866408409357438314167575522657483088953110883794137813054501358371898439501498386695987847173187607685958275649680447682196366161321688199181143450635704763350971322481484638311567079990024479344880187190376743198669705287453031196143896022850241258706092730404102196035832865438081476099619309644920999964461770162223042374973990687314538089453792465091704604626077359017726547121704460917106228838819075575625776597769721533181635867872736512637594598744409757395843760141104660812203595571518372528649000521972205253223462799412305704180694986214785532417029024863262997424557752610370448029754123900556235949249030220734481568318847120970989010608763620082836262727155929488818421601748195987772678414574367727263924354338295597994142712757031780620534495053488992359043609109738216231844951454364771934462253182501566424883975883054946137188348147654792455757539017583048229395156612164391205202130059905052829760124359042646033353757854529150732388674901114286603792608958514235359700532919867812333495358606271859333074543155261645173529378536987570161654511858140527739336170218753530267520900754126970087113255815603550463879698569346481509299788844329777959833305178357467637640519320988631368926512803717302863100681696152672335941173501428532863538999490095417863162002331597137414905799295875230647250012325611542165959699005515665460550249029748303091943774316483087234094382372053535954216466935663748323684502792549381420475086941359427608727753043783998939573733861361481789535212915938145199635181005116686186666918278964611882070274364619042654207543025518196243809501868756807718504549514427646667694435965548309913179878977601356152604540091180486447453424998801783820420625741002762577531948458372798343127548683257703410986700082220475263072841237581289939410720538880745569628413526591956205466522652656571955529693288538621499747710462293872694992035582103102287800044630798699507729411959620080675034123125110796521751890530705940420168116001480363532258637397021924227277672403683178547397409027055000192404415569450306341126030811743150994068631325394864163654873625363918058120625300899854105678828972972274898259652023907611256051777364184060665018184540027513761353063978190884765969131902481440373516325206474495101430284983376582141450081653497426635098171000963939810294769578513040849669190989252180700087853767817580652487693529496134078652043440396524203783245037767376701569262602240804278063173587263363313310184226454525803565841568039100364142915596694924002628837518767577145719788844793799170159281296668216721909913840563618672171495568510356516162086079212785153023454531875380220362235681254912400764576777142405555361754608189843355613214353606076015996369208649195046056276834463982344665451371279216662533301553807132545167244961901505033578380390985132822685237403862335574807844606639960400522476340965017687148504707513160939298238935584992331014189096297202330573951632188054393292923055653330814486985017382520984519902321652306586644227231235577332387040792144301778474239421377034173401601332988357261110538356334658407561729635311345857563867657696418216868869340458635302857831671606820334559391310749547372158916744396040727161175309310920133386197787935538157136231147739689394440022196483008766339766046010330560584821862353025691144445298458289695989243638254722300620966847054705026231443066926171732683152119837043894690234623457175099365908039581858125729482879545416500056691666905604817273178273652633151797400444219278656520811563263678793755454887647633569106748994506526078930367175568687946783593701866422489531302516570309431101874162480977285439765284216180829832014263484556676831382489037979872437685653893614467423264010975611028403066597564983532578130409808603410518597548493719747033754294642301254713387944552740673422472887106064056210876950629954153712756142975063908313258633489301806126492169492205486844291688065946512859228322780887873556101225852628492915624999596990644397051704517183382772616170755052342661624178021126475445093759651052565526820500081138627461384134663907714323603030663788669741520779329522120687865387967864341410375180169391966040577424216926235090865269858158039169600089447206298759842325161808186663063440933956436342942270519434187055859465223715978981382914395804738672152063430243475431065590759562144070644741755382878399256668678189361924701410025623958783188275358859296316423120059734747905763095979077206905735637553238677839482934549421810242780869694047359369203141213229304257705914085283054083116770333391019713050658291226687971403505785717441613065877526287426261292531672905643768256920516756921276631573089016253927301955740865726315081420691069251261982653970755555995586868715775179726829556356254816939398036677428529954271306826618243136324434496818039166686608860624311597454966398991427055010435449689491998324450704446676627904250774967546744359776361237274727945301296170713272055986670451925390896741994973487022131333462943091271772549487583385571799266340055313040693267712979967850575879829598095280745347825515644948795768548460070103587226381260216204748706038784117518157750042468297963388214916450727311658079367111415740705929082782743414991272508132200357062759940361832756535469145286491042937077258091753779444039977542776221717780507295388624475181363383132505545496467782307459323063282105792397823682860983015411104803596011229188513097497840744780741633668469965873223080760191938060865435480428757593836427734775387713626542301415104450838004637620951346440274641535270198526099044495086153030277310904511245417418349958902688523728031909441090728175849025170596239253902512747086216483652200886162844132685212212782588234248852576746675498921762757865130058784834264741165177194205812266316666602247508684562832838117298139803783590211107239606168148061481577989280104932692712940305262431828214552472168694069693066670393433320401512464257600908454072093428725376008839751288496476266374632128018627364996099287218819598045405868144571741050470767328974552655569983070585555939868555713639517911785741714529448557604267477441577438483753268692106959607752024045826693721179748073881572118388447723122109398977984439524708160688369872871357587833037282979040842205250590115643214413509506753762518273197110653424688213620213290392537968333451251698781175608494568891724206411727557538528454009850291758339635144768617504871074700625249514558051811688906932838044541795966983023500134379720987073167152775423769681763852387604764086740419035396631170616951790130519242236594670755269553864629461623973856868088709869434618913417042644280983454075959708665964041410335057368387450685059386644451127887841457350114451696072905431941577364215063446733605214654225124998323868162476735727348846106798965546160953092043936476041200278762083459211380401120561557244929544665001710992769968965946114864864544885512405369004085398580034279426211376942794160849820964881295259262576102574955360407537551869351035843697865025064589084439007127343092795361894483857475056785020088761560149078747661498691723131495489936526002881632470045624634014397009230049846183979175282082112376817721946727034003559808761335953845632183680097771481963174700926556542734594345766373901040355553404170935793929235726201781299042317721365889911173842444199357050426442704591122267301550216787881842062669104823465048182110469423148746693064995724849559943688869414151626116856713036408937725272741593817845317090889408888047101366722734663336986960202797941335684758057183877088114227613003531364958501017348257783633041101409031542237705480136336984979973019728435801649906188881269749600659474706934588378735741376601614137251549005626214709868208106928699462958778927363768214154088011449665605398432517067804136708137415000640180831731209311784446509733826390795937682198521749725212124931020241142489937668899221819048191320944146118417908040448090923776912969964295108033932956876303143068239134678990495450279389282069267659744213502574597549636695916855313186146782947743991538142635773035973638120480104295273166754555782875166188787326256713845140462197182989227120654749795689522575670059504720356198541970829837361526713244121780122549818096028720643811827804126505194287922068815453001143910871017670743215905749684030990787794686025464169518286754562800629486415651436946127615506232806925119952867653136696666586255193543805595246808758890526017796217628316813735386306776143552970272822379647458157970561660939965576323339499677122752283879277084990668512237326638656530733350147279333810389525455072658642688288526616267338514830510062706844815876400120351975437559166177451931666863507079956694441852565015658751188249934462624476507997412669312749709342223921870720522426396425111044771131051075878619260722308549008295800260381506145696557396295908987657880387397035810295850719213402029996853487590347782186526772313696250952967305122119123432769764780071676633037562132938374129206644114612646343249168491993844554926476354537711141458628603128470371118292643356244878069929188585003355903598390014978621254021179514706225518827223112890215962497919150390404700809546162255218911153657001806953304270460052354389153530153007120379645595797834126334686030280995212072662131911087367925563870179640142834030613733062077830578572227498996947199080461480998420479287491896960004652207265352176089457983926089431676201508522377350543995791824925810891386921050631061285948788639719064214490715227812111046893800795550387170734261501257612070031696935798996958153146290142200958782974702959550058444037255371905233781706172978054340851104316661129114056939660905382325300485127618395610767557610061188780948335684287277264672856212457328140572830163243569772101630665917429253957024121036233033812020360522505211570777079857235984676396927760338906398614671974527670254913285084133064738146570880989825962271091168810775023214760675547132707829249711232331834415733829460711676976247388998834085286914594943201017795335257315292374092716119119245998235996073592662862651312308586068998802003111266018969436271749430077699017740898156481661650232585007985070922604363009685180420629527964473948286079022879357371981850652371162946972146743024027083912918746782670951653568887185532578186195989420256240966880441119177350871711796061499644466511851221227676890444631606241787708871818451085877686437348576672732395903832996601052581266798198963395972503920356779234912701852434650311956445656371356716027029428255041006434912516850629047594837758642531061620228924966998597236305104249813565102461724309669153564518699196609464128598967769972760234634585441459063635613791834469940232494835881895926286642964956642398549391367509170103438856870078862270789080262135849965028739317789527843811711432703224495691901307739568920611632734855299897173540866327680667322579530360154870869505530658618884134792283379530611402311546621094010494460364335836552858849834771637786431489542565327722724891947495535252447830289640655907894770899659938876285697305636917396770081885491347827251574771898492830098141705242138843029653990796565189702170725715516364717857216516542465928381093208570350468010931565663464584919838378496145555971541494648520344792983578682053305983550225724995363359773735080500731087951006254273826942288431388000095379923565856373249299596846950308079125292260956453746803260203769714849419709630645072691961798909594210661728680791501930177676390617889266054636975519963812832042203493788655630538578077000325442862314026690077459059818517755643754872408609832898910228030411680776544553516128161278471567332961381438759693744125701848358904256723687565796129091676320194729814144107654573774097289089297477837471731583602586606443809895942893317463483443235013438446763127915114905502557517977229577526335198435359123710070974257806795011113483180228973698168411363818389740514867099065429593272602194256823971369712639393261887364028665163537006415476964763117135786347687281648552601525054978123175384717386411428792933103645745887785693826670166085321130289720060071288732298581144906612037427716674732268735372499524948903015734784535035942067557194409542353941324872018390621416605470599033947513922196144503973858302663180485885639295971394061201959526634052197611724724784634567295195989750686412327991375247202619129695275024003349508203674412821601111345848295151309639308801719489900814582515723989311785218822542474183201786825643663241054686108107001244706249952117834314264028290471955710901659139745716932743684061451255503060300458236671822347070201463889114215607010376375983287557811365885944588543780035395554638037272549520694814504896012078747729696659975352088642445872431695456652584509616897628318969904595805923861195572539821176359805865232609652839922345911122487898129684639060449542638641873824156949315142942275857104521594257577373633917620029861866402093220430236623248857487048172516407288376599788475448912998119416010888539584842674405556201147913386395529268089456768629480138695266156349639811237508881111230813220413975039351236911566720196585004562853106075049632697037550423736571850510312471686022538556328263222382388019723747213372882360644134128584990111108620481087941545657365816615266486935274057423579387892506518440527780846327567794968745814691069615164810758625023227415867169496678228629222297199756202006964465403096959408296254644469260151234999571957701053068028316565533034797125392440314636804151765004698481514684343612523752118512835591959184950465076886591775409582831345809504467186629325903077872018713486534046046615321570102189841823378772239258645103149280753352957631209821276511030104188057026570922912362766233157503086858975545626472045618414825649491397411483705210858361473582887834451542051689567074970885860942519165677290539433353923090069647898455030450525992085855459800719446645634606890482677317823070294239924555742441537269982988408151010702654369134616350244315439341486148955677759572254593560184844107176653174059022783056497116751312675042115634736141384795515881573371666758366438015648435248992040493724294761948798990167311589906747446221292744203439943509984225124978788218776392337784049764699016089107075006860764602172206980669214959762383021284466610848651021217952095369243304506637899303804777710822291187274846651604939517838415512253992069666306435827199519282424142901736878540785980203849494763471451512779618459326550467411327256252306768966565875326100938893290242887006122162357636300931333041303240879149177176629727193695020994132456767093380679725587482561340415499627159782867412948001587153770170485488731195113667719404925572179625773804735222252081980285779032489487385761011775418982296737277199437693343684276039059326972478616107032254436972612966348056060693055506590608307090282784183617781976369782397530013598996315170925974665869451837135875071023698411941862941689481677138318360284320192581959817127619563793586982178495125643118341828620497523292010081339397855185069302777027856450247900182328049754471368696716889454590369334814553597516973892213329132685695237046098512849003638836666183529139474069563695003797693465650075427160130734944002093557145600177765774082400511385788285970205463995143547732639033156321220331925487870412753631450920167889640403818137064138250474824753357837577037361369527319045405354553888164120213316833593631228865999554891548644733358886917451384481129063602370972121820256741835249179310251377012643101309679099480385156460126421142622984127898311406239333855787820433240124311612045635296512848138939289998864419845662218704596521441929895126072046317714442102713833108178316058874982971799638993090797253915222619244771790188556186430784035160359032453243397577815398953517932581476127583422049926594919759034267224711430805855357509619624473773629262839595659094054961677955641272584115595670142678525991427974590549817074130524277691471535529767946125819812935422928622287953124725444898808448907349142278004855203558030968823653916166001403848450694585888866267255959935839500459274041310995999836960858168734602122021974812817977753917316673516053429782601370281738436217945444684963904938360037481623143478933102382029349466220964926516939734926091821831755344284964794861170367005816033948899625272832253152376733362917031039047912836409277945650424253543586558546611898167831253810170649743323647931714715239287707681571204668089541997429443800552571910215446427006560962145146302700415245966260695021303422985387333041227741906977506088314927329959669443359988348040577622951386815940791153410328012745837473436574215245730743411892536530609789868685833138508647599854728456716481513170115990794685720968273097021189174126909677774929523741831883856248619963027318063516162043400599548041647453791420218364949131219202321008686986229197623620618971889664085898081045437800547268655699630821770666389976916812560220159507024982683559556706843527257766307774183899558178378961902964694368019993809418019002476633293091914983996542787894199151951009738866609515243496361743023866387320021968666654487138396232171131843003586327765690811083645589245206456159707353030115067042380388067746410193976410929044382330667973445290276105524324046798049916822481944300628685627009216143519074590964145983915278917996744932190150323528472931952320488436804288086638912954515714384216640753312997740470898324996892482824980044618461605908903212627347287668454135576527858038278217428421280034779538412919069208835455860729331172858416628219686873448136305892011760675962487464466738491404440618327474122255897129493714428646544541976128898906917331475531201814995103536555743074143882456885591112159392206218821548188835334636163167451053623823660157316276264616570002490261294745862795213471603726412663478179840374166527059917406593972986991086876974585545227604872334581048858459115665520338377629231363453875240807246587653342672255916897561574180094268928805735558929271070795056808009510879467583355666583023897411556621289416020001185602148671710267168465112863860552737319428572300259184439449382444302753298529556197512680488488402237464398972790272050440757205450679888816527589158216706738134792952322609176262141934326216769557821183440586829467895128288076950360374087103440218131055838052149321297387695262399000391628893855998381194842455023450891154747953135391461992031282681792650098902237891197691381522979564010114165279811120956606797024698085626472058165195532147227802140606557123594571827132973985521637846063157578423600015414347971451636796297128518221536061490547382524931539899465362106279417383839417946283571850401461851230716816178893526522823612439452725426407858691405508436209597414619234509980559584176698379817269799829619519866481620996569404567037795424334019079757291446995671307765691170357796072872105479525545819691438954274905225132838663220592916527343092046869440384300790715251970782049898968319963184271051053167208426406113968593722568467784275175144068191263922392947681472145737276527786007981606851402493669262299562113158317944384308992113243819678504149051490502937163069601381348375404692892359726830856685803612867887391396556418200889138339592865239231609750584909186604164669846596465484065142273145009587014117193534862467136024595629266327115452159137445656806521558820924104948090930222843796373872731136123556138864334067797224540779647842114841070574590453741875944620571815808492407051557882829552389157171025122156087340314613604623751405088783420225921123271328117737317817434108719881893854015324857715393195146298650165526586471797236138899063996191125989728747102093093684763623197652865250581710543068698608105108217208924546285118625865510019428923957074005318586964413560907638783694341557049975115604403482260348377641043172448352497735279644756882273429331592524961207819240229241388363256776644988982810531691124323633796184267465502009937979377468115196261009038813668978801000348521899192501007056929281878533962619209774783249052839377567644880044280105149889224145535986064172811550081917317275163681982363972408379097763266701931705384190420485189803727544851699106598141600847877562913641660018171146393835426236758072199455165970238996295041815244221673895263084631443543017473937485907020583516201388211107868084701489270897116885879757423685718771716764540624223185365160132489329252528715831886968902929973639166376829958403441687951200059341621653452757239816279842186372490499328137581517980236844508835850305138483333108344089418743232569670004089869094993972273955074880024636967221302940745506575434007780224661614395884548497896728650714488087810152382584681635197776835760891521203700274652180320502704657068760887762095936873862988234643991532739151960143045037489453849129616985357981135331568521796942223594149108945896188273253647159822431366451513028905102242337311516852976402028610086434958916039623092919493504969001384560470981841954898802690532671988793772805672154136908980131829740949253845962903356531165239606950207658439507198767298466007839700328016270472294287442552040206489935252283941298853909417338539428862468829309359886197434550977426738907667234933138949910114815222548939874677094341671931179240000716948021122533662437871368173818017647740692148467086666373092199811988890452731574811466929746163495505057187675725953993614283729981538882915645287982999129964242779613897874702088448465617004726485095907890282100082063140587949891366709276387732953299769490425095458451810995717157788337391748051002549687860219130492347143045246724879955327660794154270849565633333613511061497004125489313729865409008303157904326481262759673091977915829318139978150579547424369538265768701405250187188805829859628364338454079199688603213553725599067710415963460877057008716694374205761074715829071766262481993054274038847981462436329282304649504997595349301431219792709185364435432909852754151005223814059086507334990110353303009032438469621807184655040030472665982295588446590912877322450569112998306291932246527135209904213047249666777389205630870710267877966029506914850294531522374646555518737550001449973135531984378885923350315582877378824715040309483473657232476863662883925988490486065547817980606017725262262428721640356601822147769712035574462555168920631292497388089007369736699293410599583491049265557736797134788643301589673870726957633951788442503421189400342027934100099110451935571916901349052213755071770831525988118067065825704934103256374215614686034149075167232431342088535203419571740393432306701557125835847566887813335085408861656233945003786298203954404397941565685343131862218120375345915553858808589443247452151866665687281322738066464220232087748172838076658688835943289711724776191093127801059355681011786733162642916291196324938014805746309144598159659929630466247850295383882321217838658710417396876259346796570445263697193101068636782246272823473529483203213529110452505593114895137905803460996737726826525148084386632181712306766362907915414392275681745230096209311156187918621908752172070554532912004362144152322843699021609731857720665834247480685742654401740469879076597028970823141605876666264342148415303632465792136600197350569573922985053860908575648840986875725743389462485311470980468974938295769441086318419717339185245196170573263712619421063136605583554279135459886997220008997231267016959875260656084471351484296708475041328541735799272141337907767970244476010432919282252991843780325046921240547724608684128601529234744375310976191881073613096215698216321495891670804498925956524003712513555007877895204925379876141685537177706874339493952171797692956356288126979946476549979384908201397649677666381448542100250013232514758044126051772488213754346123550842255201470548233905896761877624655763255919750061354450393031525861602029732265357251331552244158966221769511902836155990594120735173869619527118479639169833056567238018261307435653647281388084826708572448834874307018523595640762925342467076603028799425024912024995366522821643731888392232990265297873049720831134428032368042183406873876509604105484718305276698837126028554263433181498060311214321125364178790530553624346297704597473245460704018794682930227221043888984620160731699900657714323355116773927293992161361365350078523361327201241719868442653870906280347995823330827633392662283986658004788457773495716110432872329555815315147722202050349593048296506612350300588790419875733183263069407365761193098733660334187910006869224277802145971068997353877914651840958325207422212887844093007633829986517214327453982777370768501379499705667930172505868684234240785757739071738711854589395018330308759565606406687423648307773024561727815341949673309134712459673832327566475351809831887898379796096901981464573871868044177773694097608277364100743204283883755766244796188587199107716949112359286602379772429820828184372305821787964336983428657336050593832412689505827981248874329893797250036123973171424997885354376840997621636818296295109364513305142294362024868699251099446514483459008784752439828589171738489200832025510560550562580198010388588266754047179455933381660586915504227248372464033161992346906040029912108622422751714918195649578305103752524419116333274442657103683012703030527657366309054415784409441216222112936979069561855435907261929431411247126336841120787055163712560962667827154599196009319741904157913971979746042548199490836184429488573306729253601479617589431848735912770581565717865646107797555813623079853125631523198230162497032927287038408503847172351981825487551934217778718506256303635225824777503146779386349343555290554174249659378935115588809851969416890560748100498285273023244992206464573423061062707933724476808253095903530623567342425924168612907993816006576358955411158205110606023191283611634530507728854943213458913692987464592687966245614233145895850629563916364035298325900426935004930982477400861369589376912334199851097056065825605828770823104200634258619643423679687309950943552493434873677379083038506873460755798464752980387458923333170046348666659382638525740314721783413223852231960426701022565330084380574674660711834482919021482785738840610832239041871506050216096968384429923257908248091433357427873595322490902399730625018581852793423507169378537404395417741279863995953622780079732274338879952441427818335152582008640202366947614298172475355380918622540192568140242631911428642322563556835917868290936572437467473894210701856274340401160788858164870630960990396614370551309115717677657268057984873153134413736989021906144925449861956989753443869765398182963740790076901004908881373570805467566545939714238585761125358930288770716350674442405410814599858723444641715962158396808495276170323658288291767175155665762712594227338180059375430708801272557055679143179077710786805562446356214720907062051827677479110161707215845851073832727226034898622171327845876835904387436107323103226250703281920199180057981289196830265779382680847520449140485446013904810983429637397628525020418739804055073625265510016757668341929953844617960147655902707978859483140234965616114730052454258789116859585217879855374089465319494399566753589176905342104930536005413210492343782461167252599927060370796027380821773311333370791498689555023510918084708319525030119152174463332290121119018065297324684720776759435610425232723566730060904759390438296041949063959229434851991389573655620806446013963742507742052136766753824991411788058398120596246921083910428333371945747571403312009858822728083349591014555269129222998703100473947097556316168497200845851139868721415014818493566606983575154941429127005176568505856157090350675717689751189234098527311838489083264225235777181793287045067048289151837329301750925984483375675255031837228754916744171109141940838381965319830232325195447338330367994220906734806279726904511720314439886533244325387819492645249976090424329572872366283721475202578552894260181963581818306600641824649641636700728048977152261781153269912872792831505359893893008539370776983990243357659312297871256824960398079058174556414705178422296405380504166083976268176129199043847358897258103453624693835957162919023975902385859853124435424607724159759949863126600261891584968510634440297254395010370258294931731313562304063854481188418938284892065210882631291262236383929240348636756996019675731498196447189918994367742370333016103098367418558364279881593984232643870327671413380570430102024473327464467435786467850660360332309926712656892634096207552544341917939112805019121345407092553246199244535115934403546695177746749509888979556343775784981715623291435851268537684396631501660994810832936848055368788299291921095966655611168876279616028052708782568932746105422687646599759381697378870485698936451267798822337857658033395367574432746455062020148966764372363344052008686704614456881070860585958208835762823546245020557249609476696475110040694521484156347926211874989427242036913410608824380924493195245869631709333032916588224836053782489904993538228824523468006421753909012081084880902084489751065373933929741100990093699638957421392003451818426932034935503873562084872201708617213758366691694586727922319852455753957878620214089623438161000144908275290123885643469482194868633677358928200934957273510255142616970582612837194088619879710061284498679268162680525328662919473849739809051363024973909065313283192773725905860909377377267870231393832560159301305195213789371621889534843426730831008806938897650391341796867546316268223082610311397322348271237967696843188338152074994977400608408359116512696284931233769440686926875265676015833796279120520904406660885666040361288085248202855230347767112958793506591597879335624886519931532567706831998896600045404921375729970995738568595274370635721440857876124504489898693208320034946368602757253710679757807900326223596574214484507800070273562641637283242200542253096389253361234575037459074493540105552515169744025340806627362984864679321798465740446727912671701890672130507355766892435245207432399214197083690309808176952361147682864823497937187412823822190432452481382726752891418469631641739823902535824987219043578444963842499612415614641005201399823628962735615028456524845051293098741126530104629722901586708801649873661611790723282433541516605182933825483881104645652159191216978354180289405558181482565482308752689598996766135730976509736180006136107056146858363500446862275468874412125259151326718903210727855375463766244669387512000333366831789398397784201628753098312676844322892451950371044135026504137033811032052519364696958034674594839866921476566145296926060296517957874952158875896434967099005968191386213923068432739588771923860590758461711841796103189962423214763987704769976611651298590914421659756664922149722377494942485991551385876341740963044892442525409084761765665262864076579739607339982022536371696729302973132425246144702225645195629746031365237968886330018889759435362659096767070214933606718126563906052210439632100644310986462094166397664746219841792658687939792062735127354046782572169975662933910878513735729167027541697995073767935817304938687995473033893635185856687763898518223079950182623251819126835206355817941864364282981961793165112641413916384540033046248199058937081537213006187860800722282227527929661404445684081608227389894709343509294223365252126212770538318349538709079620486250438700397085006468357845261454891564558698290898544701824077027337030727101872043327558627206071615302085406412272793001595771072560726471316884487619552901241028974680964159561857509290551295538887379137026785057249416107350788563397142805897689430974504643264929713538151989200938934763280019760264327669693664941802434530200762303783017212524962656055093575259662244091447030298671615065012177202096029761214099431609483155545480063812975659390136964399693869013599757587268756647126661631310604911546296559476432921788456484990563537975582661715033088517567953429765245316807300849147133283876681599620973308332604781392333066755015546238329484530903474043692935852452120162912953861922756537614023799791223450508593333748010878361272588035058594912960072230704429157320681423284012819262740477310325582197162817873404746700707294617069236585835604266215717805869469967869529075970062109173065748336011852309270034275041252087859818294508406817266979233315066734451628320360158390069538493275903426744315685540444701539997180852407510755077199537268027371326256650609831811690465279416452438159976040956988326529959310697886386445052402905098650587384456214196509790690110248246522595894835359042367433968772196368755933686017617765830885472003454608882340584808392125049834692406946878105708014911036572505600536792855060877711453881153865212126112868537845358122576318507768948918694179328700103526545454293361635598770228692414173322690126966245283947013965815280610174661862527588995705211126656148002966958249164621924013403060410513097634732541260671592068221057345491477087831932070599394225735201469488736782839609789662091281087229743428509094950318061418972438717409878802290503802861231821868722170311077436783143296366622389523130762470960944433965355174156064984006476202929421321252960505594924404022484992313940804066811641592796956484992296026993401133634134145955950141036561527105354583290221900368433418252434333473795779604453289812488284388591137654378738633671927775986386697594403871972765887860566137534996295518684523585139673558354162963178947746304802132736406940597669850305305066126473411661802823508755887075285310946862351953423784076310218151396436656048257241972710408194514747917825562596772800578646566909933777261181395717671091854409448824545078408492319610440506021876201377534781844785641668069890154989523944331058186337853543364517319932068274940716230945038201276602196119947560582401280925776657072218476266812946439881884410999889411069157099218273387298994593417577098479297147363656119485248530852173775819044059693344200556933073798341967656748566599570582687154244001934155444849099379540789032298796634623622444216406798813435227944894013537224005794614405028577627756241641029503731476794788611579942299270189207880739490682559806693361060467187094783909855719129631324628782387831829506064236161177524589938783825962004997026169277841428059481103781236573408644356997614837655260636531944863824960902992891200001269448818968371358124629624948210289495814286141239561329673672638139421545666592707036421485091006007855564577157209645206420841823186772570492351270193132146869461543253039262394776332056900810488045707980178991440747970059798337810672616895003168011654462961479300520432251057647865040824976612850347022226391550656289926583979319244558464821956998757476294354046618216547827106116515913019776315793948996417621567978411143957355370375375765277623060646595797649137103105520129267708495551941597024815751875785196301919232676988910382913680004157214478779457241320346725854017517149662691376660997596629127406435655789409098377092631171434109836492935094361333797017493699757033541030918776173946877581932934609291668479432898253728615160929035641638055638657490626161768902383719875140896700774260272425619969107694638740661782659699799102245593776141154640394592766486184116762447668710306922483056818821912306549856584904723567101589795756935019076500968593580702314097828208662214580161245103662165742104680260162586392384526750958096320931600323351186307395346876142937165812152666933786532094387515287475805907539243443397089929235444594314257930527809514178486406911484143115214967788567055823558105598438326111750784639865238443286263637169798611632987494703231688342510712570437765791521229231070194749365368119608745592559512403449253894986713069588931634664247969733127402814521613726220319450052070667594963700175052835701200384533379070707903299823543412722151654955828971009783761544931232343909130751986198726841839283427721327704967944211166175945296250638766605007723568980512216940496157912958448035330797990408320590043541478219411157960098841789022392609838008875365328504561526902474283927806220698024710028790957545883248527148698574330980458223757416351328889577782228381426875825464873553457893419017458295605774068552152304168137541126820358043080831478289244951581482757276316664231198440004686559776159596855371221812691631339111795452587679467257027730424496907375515725707322817089805515905270030487290356933863306876703161782149839566605795908527510363133027706536774139546248802454874472903604164706537804495632276199317250651668089154012973599164817741384293232445308137376787247141915518363127103443578355151625069365116580639656410436058479547323504616316589323697245455561084227449643458711901355376487842860908021681319731754470106663521548371087997933722709484675646686438182129939878077211773367589437135564777065278560590969902430648017059688957802738137842635050534766922100772683368847918413609744593965069441083002567292555057986016196406909180399484854940235446149234021608536711140702048175501387095048355830135230997119073069133227188622434414032824708206730052763144171313600658652230427487802334235775494096898645030984513680751042757409101262457205070643074615399235321945372719533729763418589005683947485025938544104796091659763712487055432795740569673062010276913825498951500465762773244222145578260394802802265276691357289363277487571075810140933136612450643165010206808785720000774569898266365528879799504001274200499106114775158392722179602540700895545596534279633309072219715189596058626315946671696193945329951642900050215686779364210376023163813786786510840388830589585864221703021746291568164869074887966392474244968812480070318822021933216414341563257794513937140877640281494798387309868045250262931326609549863506663420901849787138846387723971327416719193097176082411090179792136229487463544392350454050510267166816773877214832076709596896907723996341595499661911248893294794523658924303042280656865302540037993176973243178556490807435263811037801320290023345140362967366215897474478864111491644816698119343333079899605805983200319310935263004005097820701471017505066149672173803875544056140915194832056446423747084384918321876504132540405562562050831684936951347272854330676992762733512174183617511662655918192396508375825854671712975626842297256381266735469120913349280811217896111608060945998016949378571297721001743441213983394249609077430088252447726451739550790920799781546067708631707317843355058591012442838093834443410462385216875254933667972501213612716312107021170280130506418051573106440910655848408107948211840489180574140912665332985368061595605085252568964157409720990705697861686296488706994477410126775831257502642039002875237492063081128285602466782170894509869479559124890792949567425485447951336857831874752695114536736532839298681271709567452171348020763835005637476721477858281751457836616395426701805973062529431429701029893360679131211013908054217788055827123617123207480358471986011185970272913567681797717825298569475632438280927165832591253989076563337456295598824023802585842364943698981481013774437934703717122840972341922400384207691695931994997088732633371680160505754378483726625916440870181309765794570799024560660655297548424967458949043500435076489698819686386816893135556941028174179427834890576327500367722522503319695411486785965255503398293537248975627152447179683337570593626286582630199287782419230667631388832352270802417011199788988826361308859737397078441604543939304494232581666628478462795292338303912987069091585774496845868251471057885203400343836646839734801174639735054415262120037327554668887002377349965968848326431322586451746379541876879015404038909293555944346318330791217417086766760771711551845759833117774498301948903553304155908369850289191563501609563803259933285007245101124879714828380905160514691159949019084142458630623666763277405877130373273388131637647491808572121973777084287114304828052962755140636802428644360124445395779773185223113678742657640127404672382569978236738547650976962684213946239139833692225981045019502646120630203476766084556933616103346634388319598817565748831297214658190271948327287432487848036213339927451834063393349254496684863222410014202848016002800024348960937715582054454331355299717112682911434377078675402261739011383869023698233770919922553401352386934109271875011661625666405473290330725689965605374995711622034857909816647245138440588369924671205543295382094192359616215561847757598587935537845932456419508655992963043538241326563167499533345354613159852846028081310460065089240311065213483718978507909603173774637473263394082735015911130157509016989676012184842483405935077558947419166342725079566008884300799364367406931368914348007590733710080695034054074499362862125343558101483876117156846882213522711345213405110662702773140351609288561677280070291855367657888673212728381791142880038159527875927380920263195866369180906640069704808092544682988293313851106144180552499851189134568165009785091152919728201163277357293644689514678343722674896166534628871350274770560302647792414115056664748779783161899865976042335622081769475373246550299064730741986797414936764385021418342559024576207516834900783891315956651702378973472337808675992114625216150350278876091663098818758410482358462571407618376346178007984234875246307787211559763460597406626281632381569366303761216869569217439134286685572147846737493632150876045688278405791263744114458714264192962841712181163189806522073044323490292954037824237714104513939077133266916165603731994971887851607467564388572483437262406499926208297570426724977495520566371549933526416307486435596508185518806160985058112469067536224256365652265333409298751809051489393888530520414719037250209461953060592701492459655567851670093897543356532462044281459653224932150469980897688098696227185503471703314313794449270648242608872430780812596851945963696131625125395266607673549687049425764972527587618617242351051525219939435363138368645212897564833521444044905753533593485831071513252915082595533645669205636999640633188768187700074910921890366852497627143401441563909993810961546648807766447924704112347441241614327072143040768591143947864730894828307912638721721354838290410167672372490736526798298840405869710496645271881803911974980850216309661150036117891519719409459843337832218028093101932745972302165523262677565118497627674061203126794060505113408848362011569043375003184941635227701754651594609316258476193088446310060882313802953929119847967272071350354630610068006777351182679494715278746586012275835050981292905130868944389885298132947094364912650455556192860996707034584374436539155867023647082913826108084054613928639261450095056804092889630916049806231026774042602249369888385296396651462434756195718459404451588203942484278339710151913430334917661461840067358861074956460397651163416330719405172831400244495818859634008808363507208987267932584902740464251967034146181080846542945397964475339343678426675065187026137074411727344357202436681315962879678303534449488052415369377168381086616385977970035224819173795137323004345941100781887472187002834710109501677340436521790122294873392327814691947065519509437053260609675523604952935563214404890889212800478717437433598023788705302811641658106304230927185254171038241342031832060476661373020493285883849577019437581768613543978376652245269779143871520705626747436754452342962206873377067795288004365788912142326396103915942886309050101871499934060449817996729516897778355272122896612562907304924305394160895961706321123114358820326872124384885096609627817166123006679366924954601226436026164500257362802565468354284185069001317647515437613556296612794387838870966017928038915967606334068469289004477233295321356236329794744642086345788083015423402323279948152597766345304211967239460674451029527016487218977196128754064783726275817598668105613318367955778800554101441436140431070351447220464029698120030748253506985177920824727634571111927581480825305426745179154327884561602921027728741515260465520187055495440723113991889268245731174803946913360093745446267495288400050379159853260430393123079624172395960314543709442906728788063142181320775174785804609386068405773741703899299324632780870852559487044170581660159654122240747710800508969307754833111359668064106860723517971640501252212181010623086855260108697758962181143158613398674443671318992106323867009630327578659037315363864258496708341465274486468402811141114751280852391392248132182308067931880516610377279002454043369985703199142935000618363393651268388173493594732429048674877968929744664783680372754830805163256437407249520372989391586008224238207162336786431394684104096741125460738580345906153309751474252796660836393484553079655635471466631152590055599552457597198572617683307860558170395947764628227299117244360025461185409741284378012374971566444253924562567711526608833076201190141013640027024183871864688085839315529643394530144393737391400993533437468422515483565491846988901763220656251159946865415619822140043197869067576272244154004062304448219514149783128121421081534915900565637476691555673941097828828820743585872112915364273815933549722509308604829052393503878921988581018710727823662530364386702908907525208450530851638255519261427400154895091888795191892459240026861624739203464740990269055130421190195945326224865910991725176820704984277661089504827676278591857403041103906195870134122365171085722679184623565097095176416415809477146614499724499189519837531453925865096798214082647516443954608083180883931794490102663909941615041599772785668243588703680140432514618110996807385627581574330647727243263755848801588092261213593301842202752803456526273985228528577672764419074877819684146984584288083159759956120234735652664438939271310249288361319598307682935095247041513665925819998171144442309359014989555324673977352590667846077172499839569097586597932900850030996395938534650831710161272420277145666905345729989035824620672328748992870974532346421117664619152856262706083161685161251786330954233484849860395852171185077600608326244072773393179293607152907577826857483329335610903591861140631254998238562521499703741953289620205719448269375062456745410971451923611244376483312772288890929064509299176547566948814487810057863204807947323631720067721094316362314559005456333956489461384259338857275635398732465859254652122682494566278154015560911423923036316852283195780041503142147941728625430400302369292230055681694042281151593296073161438429843719326927605509277727454410207165414167328367292626200837533112881444284573648214710851685446159262696349872606261468797182782965795962731213568124788155195765420186311953520439230006389666845051844327801510800192412817513950878957837428252082236684872812452878120670418471367975949966531115529371304290848212209164450526651351910691839355646662582639044134149016014088601158213067496968450854020878408058543221477985337122993478667387980204052471385621334869193937900393243950004648051005722139686558892437410189669566171313497126353094500122269322634073478461108047812332738500417293771019768259921142673487901299774766937422116336326242842619022793981215241037066925007512389771132330511855046677371779447611115599697171599695333921726879572241067988699024071060381884391856190878390875747603634047924981160020188594030868486317390001413765205391898566648429049223075669894277327030447991151347181718104507248668147971656324865643743043510238212726578052652442176576395670179996933374275224395698735588959273681541412079072637154269783479151868970160232303175883897730895366608648671813482306959165308582328156716409728080498578629374202517770157413132789087896218794510897171105087681176819315774606318780752855554970651977502440759489609796104990112069653184213297143473659590889967777861260661387359150025157573382693319580703635341013156300805051369141506821541706143227134555082239200158578514134073013597006354600475448865204597536016297165732124788192966677039276646798272379430483369903536342392344162279810893040969716851962719867058831945831301662153809779066375528711527508094698266912276383507888491830057654817037896695273900354612625859749337855383556675841319394568015930899336575713218184957117366733744125344991206348419955041010685336775409160101918257209983600382353860655223936625284194120843615655263631208693368474482115557045667483826717281438065302645062583520038226723250257416190617007510080107340020917659562248513690912067297495215012594761681175171888358894324315014525335356721444753485704881090403982356642435711939861304865174633661197365979806627277456797051714497110311260847075003762000269436295721218355786167313274432186168369774400565213334696186385940717328204520133546682690376963157793476027078333706103387994984744539850004983925927451703810802725375150585723029882725687794239789422284572365222633851446248197807919835825523434995843739446243692823006065178476093209731383232859685416759269076135315345494262082956072277894709026660009686524990744783062602511350889732770102065022956642935037761852672672154739579861450403375867285810710745609542493164656147762485673355925474087242165614710128562143660170553722082452277738047875800963151295450730605342180824439981098456266509509802441034441001085527223182630305529279054882326663617372881217261156891133142352343520541004082865094909128668479274502842007980363292285335048144310702618166501297691641103178560729607654673469744483491889766406690691463952719364298461428575690434538767042181009177060609709018533350954375385512849027823775115741665979420516148543276081237658152606235148497647240861374724173175151358644779659670487587781372259401991665515935224120142254901423230910716699153163137958755104304115838145552967788805757814159498896967919382504092789447189105712945778647731696445697500834463332503964271758476957808032488794325975971428740988928238614189418986053361973196157898321764102166835468207261018937099277701783946501936928580700627886491225798244363620798958129340382770646133802435110234018517058620355422220232263346729652624490467241903325994611141121962453129809926857164307565728721132851880827814732308861507865388380823418405520923253709134073417890686922634177166727861466690869366247675917370012098949412868835581148409716829033613428993322742117587750242463295471902436896665973241364473948176578126993981565342306238373617358223563806951564891188271661375702532192902483564165251318373739950687563629093288095334825806679284826212467628085279799496906076353411859703665350415849180007372002928353199989553733610833700854634604005729553569641195790282908333657079888166238117006269226410875868680263353793348248521939975250843727236238762116932457173987063144258485525192251233941028194390619335046227298835897546437504114082301601699677262449957167391280880240359117174980171123658666309657826264551515744535458083498405647614252608896262546853166841522629191505322652781026396692788309672946833161587268536357593682395973305134001779522816352530018138664231849445332288550699609981432928726229314352393618888628014053649151956945333605704333126376119202532125765158193777003583516957770937229756540702644616638112469382115150102968838550623872057475756156549581015208334854720046686123467948403700514514503215236275915634349810565246885833127032330838068052722802315502476312946853235155859464120966638278565036500694363396861893158123608419449578873054371913018945967640873841167164770563256482970856748720230368479243960555994229721572833784322957352833834550112224521143605854900159628977632724049279268737429889665656078942676688077269605340519835617062752737523992684205596288177747696840629288883248006490495296696178561290326917400556211017477132859748062232190866450489058345635202509046409333804148803666617980159773049305806273709332413750985019660928647936048327516223757466795724818858289018342827477410619608000353794857780752003978487991943243749443525846363710258766779727829931366928891434802308702128220419701648585391884723444515835466622292558192524163426220358448388035246295578872135042293660180746113762371140467660873610222254997960103840540428633090420608828406990623300256482442588143819710950665149291888501318838700157113054100907090656951082004624716016160744641883356264330716469583038092403031179780088590614815715257937080798513716675253422600092331742114154297394998206078903205001778456127712698079298221548867057023884839890255437242480313544530069460160529588675565250991909362900194886240920248390541514252178302076719840626243541004137983742507299840903304990709435474493696054073298059909198679074773117710031090250628501546932015919317853389097190373010751866786551250504878104566773212314423200172054364184649312871761595686297109179396544990163355846183578582476358065713769585434578114251307032830400469929485441057786276747431008060394019222899462368610285073200554780106988208662315922799569333049587913062880339256564113201568516960790817298540506448310619297361832117515635637700788416435845189250728227126298896657858113054346635274561397271216601038354153624003640389353483187286168189192497980587939815549169519623441948653845820298228128408324635222341306431568766878769722087400830610277530102695062005334667920211691279211609697453627922794107046549751056940184732746423669861698048708756999847726694748964869666574039120853630240829890676064349159433298504715118430834423619029881610399589214998162186357133148664323525973957196007531937291156710546469028688003798087990010791134285042704771270295502735437145948966668578069037322223960391072328756244411659911779373763982436199893589471665623711816356334557836204519843120633084734219350466912280695726311254636770979984682169221269446681266792557802044454060325883499128394990312133320815660189029728463489818219828387315552552015990195298470649136722484987870051962218479184395208669951986590603884767498899545636446782382969192424015564559535515605169207310607786012305578249602803503375545140635731233826134333102178417208318137277125931735890620951440533250081160536032380013983618957149092829808758075732202837462412675219686288613331077030625914230198159547105735731339746073782705220597686739088059742932528714065946087636046048582815027494352243375892648157349980880495228387891349306697323221361126001808534680323710790679724881649749973745007372832223177372223813332534899637738506663422216937842761633132427228864194050117447047632365251747624357951408795077786454916317537007727169307574992437124837452381937640918235794552118208126681331331913884379489103412631642008094665609321329468722757020086305019943201069809070592485987510949834600994861952698446958121458294676142616738553561149382934793570128498241802756607197668829418771902343736126052279089462721725108177645776094298131961551732489501679804651875145073633521368632515867145527008110191663246870022633426527952379776962858046604242495057572367856569565796433940812583444384612150992538724573060779264820923719011629971162371246470587977762035655934103496749847591706323525308722229762496980020783700401342306333563951542284272220243613057526615394776283899474354672111673079592562106890954268788597493665748970728493106550749530895079146458790589344854093755211069921835544042521813165551315831897412842710972304029735617996694887139632155767777507919127530681262038955527269224498102556568399068351829808254096525079932842087813442889243557322562078189708652553680225912138317903747943579193062352575674182602808364619887091469770340435783865979636278276217481483568779452006263043993036848393943915324777040490938876278588177882181118563078945205529487835568983426122543176819821664850465069995243936091251820588788117703973894006213157701743407054521701430411988740999094243519679344767368875314737155268082940081934232675998094087298718264923768014220829360256001428270839361227167078984595861963115765298355617808194576889962807849430783056861002316515525637565151461319950284485620937130504844134055878812808356421660711076100563874720823171736648140203878318186696679404597747563315367340787093666965891306597597731204985806554405188431462759141632658501027368544963119430679802706889990774990254113735202525023531542020482755201177567585191358434028981561526012355797073568498897077173717139998966953335356641590320812183064257563276298011077490910951817092432637224503337187863271884747730577337990632875894899068447309085383461093428129277644401704654299637213977025702633305426322270549645342217789720640858014912097558434582142634913152955279746153941364467425363521685399778710215868031593194099558611588456986229662675719855334036745751881239226359469542463795817671046634903174442704649286924193740288441804602289632851573108103223537836282070190395805576435223743951052130244109280654953227310953067766749456238053336666876669008566096580143395075887453229135453781788318423921899856576995400619726624770701132383677069119873486828958169410853531613370330492919468974088215628657059170885042134335420735641770840601257571693401740284952632988583205704248719857898152466858681206219172065095319622408318957570590309888784220902593948219245500706820059079643111945722583275864008270198380775382105201330260498460208004157074608322854358674107383153421034959151929215792389325843271450029622418454955902046336480008149613611340659422030581738264923123334171812087142228100224443879352497942670766422117697684545724388691373852846992595909109268238922842544750529130977643244635150037746300737208889139217723305886725758154325030793732709031471847867627041995101506666692338370056927677363618625866800504081448005028441590815718158782263696860127712589324752922224344033331955026087575667706814851519624769092101138373596761471037743127232113297175764042037910123455421414044737682583069582944978072220148234899148535841858695010497570640498235137027471395287722555464862415101716250177986386261321947184070874639151620948704234235096566372333462390133925656746531039018073389671178625884959265647667865946416168943591883434082820510648953469719261627375987965510713177004822276003678578681524876896502048912896241173477315221298675015277896820386133351754860627629548442162744158826421847561519139937371108530592022390818849287387389284421642685706603913907388728480815762619247562301818671799886011195484906676567612292582062596536132424860049964240442126111785864275458218103052740788172244486622940927951784988574886280565983263988995820146365198524098499385675761660223643526072836808983225203772578404941522783430177088037199035207197429473462147432439232586969582924758617805669677144077012925998319433201756006539020047719183376049462912914035211275344177157206149084915197163182569085479079287096441757291319090749500883471877565300733519297731158167871750697529256855100312019391800409839616508953919908098302690123085987517691966118885250032609965661714470857615009688478984424575275237639348406862810360009813105520476653641555993008368425398683714474295065729888807311746640104499953553488359170779900867028476146250553720474312069693922397945950811509935458305232517723313992546044069428083915352031647550727980717447914227149564034448172173750276533736142664449031076788020442641040273301476472025575698410263743464017237823582863395669560207383789982936221713715237199445890504523508710344829102659867422014108628846004927435898476036330552764458775045216690191297708136426040776237662065619870277979587039222506145192129688366431649901830046406910707169165248814429795218348707958370225889363401294115640218490982030669178461545814348827551234300876831211837259369380358179442822293046541193143065394220881014957867872642167513384001960529871631901997618341874002302470628433620592681909307089140095852389696613988878312925840593996865362220761320725228703746950506096370779355144326658913974622235125843718546664892459466578353920538609898009450737617281210388152716779132963280273750590298238338372821476541697933111651091777676600849697179327076396631846287559865994001557060641013008605319810771270235366715521149975821862061174247620845141000597132243859587838855995661978342213775308036659578714302637301197753322188214368124771548400080546511259420671823141761674355003763106877162399590535241434599341160405163656309414634871186590055386728979535985310478910991130928009061185293693914954882614372526816600088197090079028711597306297902861032807424004055415781604951336026766416564656334309457706836989301537450253783686288798741702976389525409853815949488636314897119790996565752506297951483227382100799071340635826020033461672200754666088023247849497033318217667316996373527410432975000784796296137094482255164833748955291306445437459350125674678865005768749510970942983223395368421817620254197872493573696888381844081697488363690971951356496043447968808621168521802891028014768456688300374809942878186057904692744752537546495813147553592155784047211179812924482333960232463057957801680242075885872111425261597767009944717162958481265821324460395723401127473336066893393840149836732797127724535152148990286829224188867244060882225167257586303733491123255760128052207235222083179487671989358445242624972330578337728813363791438154882469646231319379040900950447674121827141233873094801673673262542833424444396582625163133184424385660831696706468120918524163121652831363496989094432684728082367655714694970227618650077573116090158931587311384346991051185378753567746546981158159769241269160651170471465781240527698399976232138487568108131943594242660659924401971643593231803638581321941327521227950158209059368361015501068350383909452678533030784350630573181872855506825265231042398848534529099410163142479599935025514179563760454524600391715196293890259315858658447665945586518228771081692318745948297224715636121660872556336078760106340053981154226954284068316427713828259136661469497150489702802103090600236013287814571553401948734243238266937291249856334052597836553110984105936030530437691036370570084515138044339221164085267135330837320520301648160326696366923160060043816974316101195587649585071324178433995983351651441302178176054560815838903518550803531247872893867998385094550335088553239287924233224991418608055807390698195748817075686711574759489233506204719737827151355671571875027989328960930349686519415673497378348789518452210922682350213433867329645534492362934625853200399602250394325857466419346890746166227263808967795796844406717148120537098064993072788615506722698705494343167997102855785354878502623085614582507440881946959483439674928489514151622136045491234522274771480670573590554500699563771766255310083886853162628426872331112089687871392205001426740100710526893250421572981615682816074079818850198226946644009746536593178020200750471432936273950516786981614902565323541360252904689455372973177239393055763148533378578552562853353749275188264798517076047632740995248461822965660253680476174234028843944442522884319552023023226696072527192380441551618108817893017769092320873843524421106100936572016231304077133507804391092402473483358031405155594952147550329306286894577413621972502450387562382478853445028462307662148345813994658508665976467582712774868530297071284260892246014343799833166649701978405534582218692800330775681850811854517184298310344855002253958828023662609735634514365787628953829563901257925834788223430932106300893256608362556292421281790118276600059350213419896180616434267465823056881996569231236755928188774743237947949042985580842327666912213487245906704182713121472615870618421213931403178860485627655124706421234429667970356999284981290063232752356559335130825498168959091684916228615273801902352288341684520759170598918967884840026791600994322146734182667884876288494002469262846979829857073739580191927211902219838046733288609425184961862200911135021976384809076462693483372521463420285975746718459011596896638945703448458913948794799170314915038377776312713930583721797048546367987904783482012170959449251280860561089875869834619484597621076453657347683029437111179213927359445867265200976484504086021498503789257142454005673999467062966765298064186648154132353498828412009363703335434096480000287893397425732409788769633162175293559151652833261120146852485728994579656973514425237175320448583965613222897466741694690944649627729518014900616777235204483130543401070779947318050655464136398052797448799948031295691606935980873045503931637538457405760207918678080146560065483123937549479437103345174439091219383978576648654189390583724734435245385978224988363726640695814078203920422808676019841439037036570581494912055331358303363411612275334712113020397248188244698171209354115377262467045888791253162042148127879766608964419099741190559243631890744045558247924244316322196365184211584418654335103161188777118219115186022426138873507182744073899211568048258282830444991577629495731192779671770341445622534122225918450582885923230510949262514139140193947796299033726361936361673753882780386015039976265283542398005267181047516262727973571132460411696176467330372053300161542223857616608751010047867142700426856331555622569839863239218674832914989617148094474017515292956058965450851603918902948704832890490537527348623787191922582575628400096401403843138282185874027352256058481678493789462546707479993068375378664432942770183488097461050495572879599238427427622496849086794868917048783126082462788348896208236650826298918120114257729522347557463811352276950394503589479628004784259738553301239978644440982817387785487658373377593317813254487088934969349410413592280783235407724291240810526742895126414483458061389157055042538129352121662502480985644103585000640100476642843503270223841641775329390930023069930869698413654084198036631023076867226591217393080149179541344244416038205727869624210918982136321641427274565379727330367221652306789473228434579865007965137051606469295209047803915106582841507125012808566493354621499623678527770655932227111103280867900041851594614253692851377932636231310073326697637301896104873212969335431074449978190697029757675862437794415134121995796859558228389776875384261352317202322275189317741203065250285088030989400313921730422575922309566558104536964629343049698350734757135966120122494865720891867521109117876553994612400854976422608637033222991997572608657095336066504397906624278195290711132343259694849788537954410870233012644132408815429728505388704940506438651645640248821979434058319804224944609715939632559528131046598690038684963024101277667877492525565088149306988236149587895002369712998143304965285299334077709820204442215484323379391940349053664350954945802221676741516310227522498804172024101885284440964277612459869029230975508441586035333281758145003977012861460130976635861300197587990534681418735865972606340179647402859772764355095135379530691690629548612439476882953045435326533053189791026231933538040706914354316942720715193174514942861224435457390461850455248936259847123855301609961254781136113721893055665424823739713014794674642308905372806219934356656332021791401698531307096422015983561862874965050053749622106389712180534931817467983296461241100811843196069010662531509936690959415677768543930290196559155253044009190399721211019195391407162074439931162956232038369297820628648167849643998059209009946632691027404263480027016230376324551243846367874666760526991745606679524560637940390779163695316449692016833110368233658593401305992458103924256401725193750228577991950975933397228230455881167666875779250823567754004111299463910085478104841778451711201006532387833915864528720660097554039253397786219936273688884318057815291270661523484136126144995150386999203211704294571235138310149027779922586947636740206472337657507539411111529468695577082870522913475309616983651189811691537655441587720090363687521075324861965869544935832540439969045966401767770128971127364362975835412298182775640258533222241778232472981573487111399719164151420019086548749217089610913713256303120022680811616165790302740273055007257459298949926865657640574654754830329416554127754258316757079149713967033156629443579333030767350040195348192189143203665329762328964474917521672560403341258298342705702718815156450299407356442303904258557792379998196684831518697009408876320769372842004352333664974042780214304116276817670493558821278396134946943123957196967607371722400989203538345290539413720556480744534494707631971744441830044501106929047504445410394485583974524079324256441415021700651796308431588105604874509774039656658465936919502156861385514279768027141957684360397808854673932033231131442011810219702486255217008634529160548604214000829165868291722236142100089444600052353841284874384704796120385119896041354028166980994610944992886260973502480944211154062724333324532532370052633435274888318289956902210704655430266094261363535093642149742677262556619807227272459951590999486493034174417767287832006460682254415582525838117892044239254972164433720417271886433475943052129792301327277604335387309230381704205639511734082785739700466091474017250822607298846746124320768329395781239536542432901831844658642289895257059675742942221146832811587314898501747261498612353816886865189273310191936767788612099404154677214131498819291075199356954622524170865759515074357404897436215711734412360471674873907827439760854431203475928231807578699940737844892804797502814121401892816184772953669664509252137644171182812355066481629790908985466990196211511664826834255340794030795801509080477611189140051603130358537356794410698707130107520663881083849757029481749688939391953174972620838912752306271740280344127062904457494406979456695044415975303388771072727398432156738010492077625781484864535211697570704176975037979884942900992348304444990370025456100965256214417845780833064181569756144577516281265738406910146994212548794631493118061666485869788538622665534586706913890678571074851666048122261263539571184845401126940297206074440626914823646572409757423709272852781062621974889613637236683429987030080007479523542051092178358424064393645342752691963002408310381848697399662356450258058893012414185916690436641119141367714872149922588774052819849816615475277411258929264159641154044031280947703750106374170799453375490493893739017634652954106646461989101987621394897879026474799052258904911170204603734309924205945049053459657890778215983266809798999088641982141514697760074962833475475873454371398270041993234491912951031961149578589499783644173687021654766768542950525518566435303111177045312424244801114323671010223977331574028778677812680084702632243093262116594360835266773364393905542872967021876618578593479656013774920286663711048906899928142645695017421270601549613670824810119580933022721706328323600610925531929081704770564694496591682151227414324271934970017005168076820154981209821760213457438407042056648909264139896630818115305466571267197146562481408819750618088913739139526807953125342218308636460370183290545492962209191654350246911165272758416731264235689965497104212559536701448041485072381780694710109438420156747795944083344246743726560373935632837168876975151069826028440385263627072396384319059293330602848259810698857355070758980759645150171577960723381806884930732802938248253567630560029116821304941649444410847030624432844489862138743744230078545269615732874613405498764425250879660683117334338857279518417354312565274108141279880835653475107719797463708437519911749347100208816066373410095133147281552534663092516807524004735076744748169145435971685565908375266752063821247943876219164734131292641782064923382650447308997753127013310323030727660009410403524359347051579666904781219126917378608849960397842911696747314529374149912950707818270897378399852659831454926799640239868499735124908645044390589066835485434898378164464137495291464722599411540164441474058021519224126252273706964586522822068364648663938953644414535155372946524741157544578283165249722013225245777838353185375592810766257880045897384237683302485665486913954310711460836924058728485259715039668408070117276041242110543535835279778362337268287429558887915101254634491398845124913842918939392546937981433016512550242973058402644624482191938608065290240521507349000379225081200938612565080733465907339616294436294073367858726717228663999491539376581643511867538380378099096618155567106137269665517735154203960730232601410641109947942556540279070764004551893257014785231808822931606993372251893795622358282615138680877093047837149599913587427873463501541119396734240606865475016123531534680099429401827342702822025342579296139038130783682888824563953275778467527185194964037498355869865789544571636849861183194737139445678013702567728788872587814980469938638109115853848955373252024625980886530596365138732534380392744507709735963506581987504931753409364851886918856976923569135788212502653615527769847716802594381012627878430719081593537046127333481147143484279039686451010978921533694974403956773407808618679966473363360662422972640190060060462352897100702711834726426507204289264006038299273998384300337049063634249044948240412704213508389669438528973361870410352808875379904156584300066927463843751178944137555532891910716547731263530497473554172452090031966250864034806960444911503240020254228729276782682039241924419942037641647404982923907363281033668889692663414572455093697228543490329011048328489296766774688864562166468989386220916161138433079309470437614312415466819798542192857544873641986780567873626866795524806327955941026186641003322299686689993682098351359533137134625440501313903926753566597972401357719163624321001694971255877338823635743655510597760669191130051882885771817099098485621353701008284497295280222615421911575966245363312257525137166265976893343334253827433833400850416804624816368740497112367696036140612366742799108710348671881723997958988119937261518854934275385687949275703348721280998489703582276482469338681915860161750256315429922503294394990174994116521093566073912639684151958024604811859923292268790530785222156015193118554971147303357000429372634600225776658370487070448823860874481819524451447748229140312413730270217597530822573726541411956508154323896174147505694382322518127861045713369912501556879244896833847022014456639841805776450247864306574210889560030980771492073622746973263831125907468234613426777486835465648890393320798804738645942333253095337288804162817308681780256755750631625728242138501437379406998346392385274289115533978285378396718932075085777785771263636105121419053509862717596576956736374949481565055709042421317954604943890544416549681357771778532222951408647772406371722540000433548725500458209199283429329875368763115210373592285049495311914472266159263313881654315610317671966489960990876634997482385916839036646679454640641404681680284216121635768033662184144886255510335188261278881661348283406895630569120585349387327218148188318980556289080548754308897453624405788039482911631188353933091353607746405294808843321910217443777437185752604011821924497646174915071930393917427468061601786977718595254040366216830704863907195796288875506493493303792534284352249552191416647411387526447224618596647222289832047307141940316412644211414810215242706744326233988651363674825808993185928109385787722205081074230831240674064708868929521853499794550784388264628985368921093707835606286775905278055707770011136558369866301683444348725330552219671332953517213117204196674525195325779304002873155391928332398932683430751979557487766975409805308337015877920471447593727150171203673071897321994134321808361749061735605054476267529799990827728324546819779606624748786377957973377528424602516859206721293832441471838956336798807128060736544773780065636924307596179856186805686894797195299852537001203255106825772634869876639250444033012055067094956699752318183220834098666718020585715211934714258670466076543200502623778773627124492340295545217626440292584913038671541224017066053296768082576661062773452684229914942057745290903676431234188440272279825460719972855880852542491286170611812804702273068246092895098081344698067515010409855504929582484019428972475503724957246204584454340050667563744149000488269111104344834105253261861003264472110662132222610864943495709968637194959926122249448672476588005560278588116126406951308905748646678218727992401438107843238769797744345870926163670236739137337040930320197579163526896822028787769426823569638104439686842954754856989416720017680272967687524015389801868415261886965987453360112064596738265184284161351027923524118373753562591220663352868409183654168636167025647920078967194194175682856790408695022890928623120546518424421075127224986760455878594793487201574709476815990727556575039332789986155593334502959790865098707050267130554641127573372091923361512846207911473710249877117804467128466417021812333055320329748475719823391192467980112264781832024966781986211061533149329189845453251513492085453409544268569379168310600390019697385730381364734821955510076727934223471396543132859392339838152454576578458640450707839456373234992938489454122549516639596629633507884136959481819204528983062857439438489521129965569419165949493272022188449769708674157789016533083362927933437111652403047813048388901461634642754786893074496395641790471826952650828291667458497776369858303509043579194244874120902960077806409863417395341162619393157616191066785239988911673540978752137682135399191772032188853110016739080655619715174017654853901082934097347202378519386646019098575027088860739030396612904852948957385140675709683867526895567671797339907191886316792312385562684938105546937483610705671737194791426305908317767379914691500141223149907699188159942671114316005804651487145232065116842514043327699401427267603169358140929480957630934548702663410182465279515085081813936990414597731852588901296644088367304196701207723457993976568398709907456434381634036306274935066035994009449671224048274574965564372217022578481198406984780422171320497420316013584136106105933811272320685681072767922806958994570137127261191613315613326735153365428593896918851702227036169755819084499384868539184787502946964019050260641949841018450131586502664515986863522472962150112256945731595966215006160948214247774096979984589413487917380817304423817071400226438929317479016131049452410677927178199252989759681179578460121322383413485722127779296794935141721081418318667145496377765130301411546868324848533238643389780055931809671732989724829052881531370549052536864065332159243301500169797694355528677777733249172727307790406482043291128494253206991687841706378531818867758231670934075378275893555781558829490609060133313467083986674919230327228198726228040763629508116719707801710423225677550250775095152067516758416942952299664088867021611850926027600766765939645347669668453282536599381360250999118097777188378247566347145113230467051589378146716701053357624725688646585001289307294055146852761048202425117268038733223332497116780497899907435260531246816862822125661582732785331333027181976133017320466774492043495692563315962168217057532854954605777987265403062781164212325613445512811238498732963838228839623456952793380436884826870442005550496425017354324289937835126287826526823714685748831835587044045711306513475169808022723899400468886407999922916749296810053892363766277742200514819641888415275532000433981219950570557401491664453993374714082959851333745089298516632129687559276767327685307041082826616887681335402244951018632248290239302999099015594258824267261082365687902519920928912536263339797034763315666765280883325901492691063907181824203718975405630110707206606577247767636521571624293823953809751106819376993627507337764435520971671789267561759694429026674243686797616320390066288056632960157472627998591568814537830412748602518774049722914578089922494212208506808584395728994152425956351597278578989335839163843676982706906535113439754821291030604539822190886388921531417154222473862650827385172799294461740160269451884158466375289466468478626200258423233258189959033443228741321766420194642313286830439071715329045002986650776827780835030969645694744114425721143627524249945078212093297316929774883902430548383573957235765350462384056550534377648957800829326270503812306223197261197480033844688115727163553278651382880062975043935339177428178096615037010218420008255808081957092965501082960698378615098851643942016729797500818202875216290029672050718244818798647744742634995995478193957931445210896360869797805282391273726007506472738033094881800897028436622442329508697924369440067053496224823807973164189374505130732378310404263470436490085559314421640024308120060458128430844800186895364225791393972378122957461969133810383782556923856645357129077879981825547609446457677361832175967733524550114107748169650415138064981081682488268526341928194374532162215285124620560562366983554633404406146284038212621647252282701599879894040102530837061067282390788391005566726316928579413747156345269787512649034697193223300540413850898107502527381930954968319979510246216983343320784737131937471376480351050633871450298384550077003264242593334800812162464116578690057353218523377906029923500058625461864419938392040398988639722577904077719010446652628040652406132907907257750878950836372498459662281046400708330385705951259694723868671068633298983515768618667432035716534614211612513560477905038555310956044040904801356420307872459846041305495910129823023393585152508856868028027465785964075315343372733024778823036955702334393485924151647711121717394692127382230142561497615125736874923253494168248584174034287340669543452118644760248310953727737000519397246549411404821416045897144651798803592147877114190358787807308394069374729067044005905970763045392767230734445438652662126651968454012360697698333371504340495696046042034822885193890545321986359244631257866862434092093441218133945140686939904215554462471534739148567426378802183909202176165376678505941989331717775291412553457891953088684887288106992292490386528172256373871963906554919778440886134185602674520533615061789689956677256332103658831055805765520052718586844857079057195448605725636143872575170264443389887825473027426703273699582576265522771072703038195359400917787284322146218844056056293415054881341478892772471778900993038517013747494114145314184266116191730989930982966190710767354838162280625466476981491381979424742586311722533494073213876881179521908346486865287230290862415425264760446089820151838966346374114950507130689417489456954974903402107608817774292486513071133887396904301030669370422891611531253197621139816339140515507645907014856265255487320240395183662674741136639697857764093411596152554592608010651635700316926328959317565650177181792833893727663313906380070513762734613978203031701349317872625204999568528618744384519302356886481540858985720638538722626423013687891490166717939872786897792911220792552366244144294524827120010219780028121172822129387334280798844734186008124972703687696864699118703494924705992398785767772149765684094101626297100864385238232694578466402968658049254619119322842293040631633454513936637633688647310960198326760986034820101797184262567957096949972572603797928689851838283985084670071285818456300186080117841237277044663958542229251078637657018242004698619640067020140749083622292180940078096900145697110394811960017445858551506775659239454229717939870190139503083394067358530305769582809743402720260083761297000459501421066810273713952836087058046384159419445662183815513910441992207790174048236556379849243293378937256262087561547350039271611414694034613764207910489091754333874891835973786554436195962683757016019525702441540275370273431918147382205804364193118248645438400061374634604257114227415669888981022629139681903665196171714854580195026969762145569395149791020433335892898708893364274596032697639870082876246396410912789112128245350973466348575783038380458563039323240231982606205401377659646551021068484371575789111424969024191151753498085172484720694785925906242972660225477313807113958244472502704950326367324723471026956436446585502858145974664810479132667274327988257383257297544465073767454912938651009050434158597121382017232659367691894419693650010091355660044237611933429456554715625082008487270246047227413862853948147026616332772055764122436647944996421591012861687932478505251721613081896743366914562085599657646464818784637052701931603445692971195238300151768901975940984923955353207830658537686153757981946887627809191045216136047503277972230366917926088235601147892487461906213588373491075263254530281204068821042156886921010234640068054090118421438787480834117666378347182338313187410834101033765833940841802335054685431576447014998545886165816144541915718117909096480795927052834594353219459009895573981461131127774156521283140307910817965618826656700280605773757776186199155356090235951549649477057375399453646586220100868135422839656489201718736042402123418017534605589328001717978397095369342342629285065603150694753124431539629593311883085298883166975022129091922169119542981525537605383466343309483969827386398674523809881248513485989448563516859465927598732621313557199977397646628170059950905476909331966857237813533429235182309062110918958380204648535263598725335633551413953005596129142023632322177711525407021191792686820007611294426326790033082329771065959480765787677773158368533453246716438354129930533157382012374255099537533464570745535886564970609811788210497294199925478654209297264833473119620443944860556487915179236677088208141795227652841033917884503989667320949693636523726237942166246483026246043568538714207808101000918762048397217971767346985488102961483321260472808151397883679500521362858704345217875691972571885951829603317269410989662147056271653098400628662243927635922224239290851418624021218525493267001405592694221355593300173138027230234069698753809830534635316895191182694551689279997778905050997800748542334675795188276910299509148602157448286119140516040134538206510070806686483977764523977699165307232975513672287024721197711816237060654879937912236736801286724600239859653924067558425759056428110356011403592286565695750977468505914028460074593838481463309508722848501659562614655241973956357522595333969348170271848647359964970596540750198669285083909936669143465364543568416036632213848836399305082840222002138307617394098898001721930507242255006757730377733795011995282196694222692303849238465481148798808948220017367974454176505428247020106228723795164252603671213853862861136382829545466534465534221891163625319816820802493831471070379989777841486164237879358620298251393329347941792508337196771145709839333139478761297879653870699533149863476581284584416737511756351547959316012262446885916635758614969729679846739947810485392938685380672596023542274216739787028481688602586808877801612688287417619547238857211844497807684956452400393092591955500211147943301540709587183510702963925289515970981966613591842931702138985041512555770371179539157247300337102122015449796420950514714667092172234073345063574309076219328768722596213329058140381346564775343402202121400121987743873579230128195295358685040964897668192548470503211610980061595052084005016217760350876786102367489225056568929888991520591194150938585498338760410731670297050646606961570739650996391649898246980539835857883956871563661895928300767776202496979055846588642029884119421158854294131110555613710671674904138353665733163121337753300805828974421458804929471475362252433337295009723352013334634606359504974477167781390094198090700823123513358029601399855818107031130787348973033284182320676402700781511189567289731480327479401713934193043828682476383575582526132262051518185299091879638385470944017703560746467331390927684186134856662160757405409733667803082196240998622138418185251037555373747786690562393786466496865803635263475373519980600476603804425340252527789278062744311628976867795239688429597345677581318250136393836491049211365162964607794695405709125337653313127292344855007959790754743295686799533971973501447625966305254782073888532874843056619518534419225977496529306219288740783242459735186087637397071483658531938162760413109096528434721920949815279431678681873048639861193541348587006179618405263030377940353848560497346863245955195761992792294123224565305711119020750587877339954881906163936617259991680298079008363627919192328655126402773282603906478864168759322647203212292505192272699742693988158671407697424582828846725007690998176293974461347795070851825228772428956604584420440037014114675918419519668360089757042403874241842854880072812594399244363949759591189238837856082795160980763355026241461078820996430019792388014466050244590725141151085799535836876463787135629859142222430283916658802512979872342135581573424661961883927094853781618082962748204181137334933376191886393525849584614812503510376331063240141890391092124605234587847955578129365548152928060855712036528529292982884054713819879797887104048757361095625416988126996347017684352707824802043391717323310025997033812008601941989998470266512256384183880856362261110361188336503100953727081588232638320521058676492135307504962430663771122170448976864596147920939692228273621843266148503365340000562910293544485698478821950525931132489593568338362163889315393582658480936369016898395323769686595354132393806115004493274973271002158298162869963385582396851304274277250000015873193599739583285520793364620847511187771197777629144104472985149275853362276436273356206978216578213482067855936633011517071237205468674713248494675276005181788110994826950462593517018757704528939373522824839808819117072709387539962303324575604009412089263694989746765352640021371119803607304567923944801891880432478092603100555851032407376700196025910096683264355401692157648910517021211191675712482727083209598608670188953597067451425096917846224313975665406649709363704533073501324109304778771806015516044853321389202824558178381561622823021712833931193069841280720466475462648926599815674638088976745038244252589061491085538029771982163479218968673953897618921653457324667580809692557463462618964640898177141511557346002481433735772335325178221489445841696845564529060025254664671575522154176795736280077260695679263442895846160572014579336545894915938266117945418098084505484340433426532458134709256179758616202982408000430517248396626045711000387587895454469230687517227874886494323083067440964984738979675196494084275756741972044066488827989257989354061937512019584153077440755854309997418652588900769792535666463159857015022560209562027767136329127480457327204980844136626512256646947425458052474082125263344872982723490443661025977135975520297499484745629923198028549549093560977844973914870347547613445506435425851951625322309004155068860721690305048463022498224637042663568257008265186841691202923520305042884725211338425591813098207785024156322834223141249082294559181417854517658535045822744237452097583903968139420123977538553095898561016260388171868391437881409332983864411977783482864596888801681814013411391995528534334924727676001490208235741743948421259548978860371543123403327697330263407034617718005593376568185885761495318843492941852862944283821575176298276581516269287077971347621313176642475633276537678508215637687219240412003340760035245050330233430345003297359807685780768031100437066748076061956239462074951775270196745771373126589401055360291926103168923844455571312656921429125222028226157557105348205385638195800454039354684375164442891560870765533275353094803593509613616035261567737713085162480742234951973700073437240965834031308568741877332976131813551184877749596934641803111455525144044767878789611520318104047177152657019796021453182819116904484156468067770326294169380430145809444236064194796799461775749781327222463455511640258109126842545889605920003068834006601217542647912771335933063558827126142536670223684370436710004217286854590538914030211738507549346104314103244330624276679362859403775041191475583069245794971974995012774675947929449280195732871005816947722866908452600840707023189350643414666429522032100462154188561884442126950528315133700280619939902080916776456165326219706496114939507100398454911595465143191660004472709121610323757163895097924585790726234102980071717954926904055067225928653626250819389097358575711663086441394767853636299595965471491045503732656556276569413894841564907489778099277142827089276347721167230216806526485485803154629095649284344205730509236084578298972355011011657529480053788555314022569362572960899253889763457812076427948494792815976731464138437293078584546770339223139190414519024104202194194089340284677744639068948120023490293701566514322210055318862517251790924364510150688684868786818739398828377357473854258904584648340544650452683363302054989558362740796181940255998164910918478323342072265223337897777714196227081022867984173635502029942624629146445938964830516394178206788051996820730235229827157998018075589458392167309584379242501258027257419817482382847741154282650136269399835347884951317142445263191858746673325094952015269750662105707521119490448686295794841006672666539746600781769660946985066176553189797503742403243231822976124961128329196178923130090515605636473237258634569193937843585051054688352478892566074778581405210428438869547684940227832929947963780867680718429780497357666324288256484257540150647602397781669171147638215524591856960277905342523256547368725294947029507548352097350050412421256845925967929495016694304698452759278299354444544254419987335128032543896948495416320465063164256262407163214809890668367801054701519959121269740303293570026433666480645403805015764264026784826053309434540738157061842172341933604078304360771719076425004529905635671052915562082928496857712003249369247197301522264152336729831648256697727779652249616893234244300828497040956795451340366067208114013355193867440513299970343698685998679636349282027685225694217857828475782365407820012565008198054094905787390183141469553141090051158128652753902454755714470040537477480878131114842618478779333972054538340643834457623998100972767326254036570960086994458104372965821158787977796729944910599716816059829098792512598739949980882900902130852273920744035246834335790002324242104835385513745105762949722334336891681625946392743626488385416943650461277804210207310717327868323629787964774911277439967256684237243013391161894228532838883421246872559532195451750935759773029939875154730585301831577987522953397512689766564769213221229865272430557307586812879326509689329258879024835766742858423671117928115671393466804358811882916162072120297717461039701652825830622624676941872417214577179775457274183341294180789610841966017057317682665962077926235832785306703553320535060615719029435290111941753086567413465125725385768590732160102133226321121097350692556855616580159522995142798055146702899403718696269311239249977007769002874270235044310938100464410610366307378133577366719687164242421925526607445161465622048908631252197832117778628591888238789332309019839029610976086120867884673632070198959553773712333727858083164099255670233272260985403519230564832446892720471923233900717445134729748650157753727242982213073779285831847393542569246546442229693667050695086142961294976684216449469005712280967090196948616454231027753666005569845904550304780716603918433568903239607312918252697833292610868182719575080953858689516528037474245446078386708094300716474774256395418119358465763649716290572292885489842344660541502510786021269504992070926817821616613022866737587976463954586519781945529889703433498524284858854846856938983061557883937140634133144844575018300731197990471874215214482654431309507460940579979365897719124218942059721209483429995121853449269984288967950335685288630585620224005177915209529172656593593388813962013992531433203524256786951542003256969354122035415368029169590566945414606895664137032215509343752097707491343327359730363240694295822954533299820128434101930308027407760117916989181003831900362005442458385727417191736887590757951225309356050987012780686924213323974126656975022790607762141725207298458139897334423978949532288469472720771463588107778580258033106676420474175684114866590304914929160257502014803219844210411455724453459113886259682251483820662947188207584370154572948711916464419173851198002446253827120086996831139976587920111681935012249667233527957273968608312631618323639136434040198718036910798403742455724550459456801007957174212191486435679541541301090381086259210911467588688327502389045351300284481355848860493289842900703240597812516646541716432797592339000168222653312671392240740381792165197355562282155813319050768359638349819420549580734704171881264701302311586273648681583047593978442590652432284384026956305357065467722877153613915834911794959968754629282391033601821264624047395346598206104471130719963213877405168572162077061560514153411728700784762904172570258460801297817054547377722279729309248745408815398439584431086338398563404714613053976911832466625120638144257863452502971302654349392826389815617836766668482723037295146871358160265239163888661358148899595778674481141892324946248926368148602912903683395265600887795820281696227337837912741904252351101373042885493189385254747912660635940140778468522353155883141604819121516998201243515547073854758994763827194043148677194971959638558183748431014712243192680410365253541338260501966379952703323459529976596445032438523181675593773839734277905220748602866131224053515886113707383030252265358582505356709331532708520951176622317545818428251050572623212003529968430616702174106959421344704727722107318675171036293876048733475180139422128365814900899572534894812628694026210482544758186815390834933062012129110660705571126072545413783295035313270949586957863763559067274606233603819379658040548879437076181984669954414844690994641799277572865211398515609989835668253898093622288352016625621832938110349740604496279901326546726042603553938029650350084027581450967646202589541072726853988898207516901733057957141250855473758868827133089899472053557422129919444801164358551528828298381932759405985003441474488038110439653459591001426278439262800026568332612139080117129972269560902388385780080525633144579882767442343319094958104555187696632677445481790060053731059750461571992863911706929797485621365580711169626738839806615982783094579119449086320046327520570625736526085260418897885300682803489594192513195366560992736007999849107854642655464387823681421249074863900167530585094610114774022136122579240605422393513599434123372001121064117442041372924228495594260617568824713332075141246842837563048194864887123269808163409408197922400520625348093607174803054365597216082761781932992484515362901898172546218642147191753664278856043096729650214381106670020390239706650322225907168287551384927592284504787160151886446853864349579654981492855831064370677766289305559363998991586110636695474214009719600337014809397022752032294605208512825719746888323308235422042842506088806112048522768028970876047207550557591762901885378990832286106041464512958108305011958261337266030385279065086434097986652055679640679048976104430036556326027653329247164358952384858174676852166382187467234153169594231713464749879389061399241683350876105207359724485093305729425073587130976367359218363295462955977257076517455535836240329433993857740681837216036291271933910184557365255856507557948907107022786219240161676756878051425081940599365470797815935781212354296803426204889235029311098875561379180189851703154631293822243863120625999539567065317181658775688922400817703567478427335267692188202047102148460138414095057065217580916244610791361947857127864422754680669556915999840231722679657171079663391108608741449920646880590600906119610716275150976715195388636603814386404070909544062458039309523030622324708846767266299932925788354667522425961888940968597062603248463400389169976205357982324588928716996452621960748750580538258972899442715444044191705384064769553089880629709751173633376516404813873307143128209660484306646698084303906970533729683737852858117656577013676411109391681065468621044701193911579285946220061697530908591090257955284278608307879560639768799769313891949215629802747081026599231175381021443843377136070376363948435005630941607067276146721181970750974810230016680733193700706581402604297261037361616145527854652372724924494712154578462157606953446364235231976397031701978744214948428091509627892721846230466563675043155319643195836616463683563207969713812124423997464911050103148049702283213859284743295055725556279697261765371618636976392065333628055924877510775291944331287114981803114550053780298668134250974390490556213369427426007574723868436199549692902220649839668319248570659428378583652385938827171700939646657687271788877980002343001378563586929430230553008461105709988480999145702053588932003915941467124904533814489391576492126601482226413368879177621911518371003809980821943390573792705081176093839066404057694182591593515149448771731500205720326671236370157201049081196071808340055837690712075502673312153731331189489308299624972770120311220743903559860105863691731210893258835094638699878411281513405003204910486032107184505426087324266700823960609087164907301551900595901744635668927495084491039976973973862346850428653805061562630392888768780226541932786294598375314759330525162574985852306449174958914482287027576674362809673967892968478091960854441578351548256083041611232377911272372385337753860380332053316590725839686819936356659005918442530733908011559801695081953509321053190590439123373140050908663977741068137315093944223539858624286264017424023938665926799837732152237296271363735332306579115855567551484995143892390042846518338671522044637199346053244184993159282086375495800747932143959579465053891869107785677030743161005665512881161091709652569173722763696927603575178376210276025995046684471787411248759689245025416165251464960985450875354897085938087695293040439195261699490788255560629784767056957870206899150773598788262722281336097147693963270511394456706267042496014024588060766691613802586949872610349673645262554308150456758367800301437956807161447587753937861754374511660224302217216213188492483177647714375733616679307046241034333528661397787740000677585532248355289836859401141144296979186744235102848214578557597870268632419783001386907658358615314235400628744970135116494687471843305307967455784659535943894757416097002287823536820386166446023134451315249562028994136136254435313143707754510948809378952635977714551282809031521959760665036029848465810271251281325086384759842247821699520299886142694520883383739923251878355975836072679366932714396841091340794516374290034211722537101853990838917730028077039112745743096539165769189068253206423028512390096755917385608566372291656715809287101985244827215776855328911147078508427196059398397727077415245472160566113851573183490093472738337120012604763066771866571999314137033443482533661179199240301438425003957524723725925786957708657057964775551603404340872938350087890104423204899448561513127257026445310473590958498051908590309882115150515820123781915231523370785718295272712834608081423630591837907662057729642044332012883217254400618971898215507275305679421847182114431251582139766837418417851861711715405743928511198918438494487362498023020266010685909847363461508336399119443369220800724878412571449654365144447439209135402840222110483304753082250391824616233828195618787790428841424578435747535347911143337408717819922677457626767466340145407450736710201012901264094253380812348144732741029615503586164044932507803984316579783172679620994130078270702827985879469854442389830696131901068914801327808687017412487064075143015228020023776217555255027942961080922964635109469814482392753454372438443965093137087580430718749545147154851884557492137372248520286982308175501483432407145373946269815561640298585710570589694717686726461061341029577791565139652234862562315120741543044603443459805761718580758784542212483967188973941854569820434028328580672358755268995774121298697303510517762172624319901213343762773543015430997103936297143709824566971431023913284024926106283341041519247632331386394174666332742027381416433113705853274840796191570033977716356051419173646333016854893170624187246606684053983334620649061893035825912195503303543350536860558982786281830874481311137781705543139999289034176223901875417403833309330398603328700276082151810741120385595997296404589073513927920292272122789844986612955041339595008977782377715233981542771229314781217997216622001327764257469109887864930162044445567620526488262800773744148013244238190074544478928190315710496839643709342100759762060284044572918349769894759653890746949913218984970941127308468313368881836233055705538025039240040578406290110993772562736639852770851451268383054618955648312848872052668359707715087525821030778562783612834387832503477764146818004069351179752129963968994144556645371114927805598263900799924865932401553572824067610275774620101376932194717927136493001385244393847196430854987739196344019854691072754441312198071622433207940910445609439758719213033076185651173713162017750614524656616618107735493172128877017418506983635660496905580273324546993591412214214817687672318372617301328778652091333638935821085131889874662834300308284971074308677669077705174105453431167650371834042085384191727354022051195456134975519567245021965081852829437939275468746040409778262175178661536111762579931451709905707233066236424656847071213809681731918826398585508711346747537343212803526903308822836587786916752150356258545134941995329291251448066617438746094710896745107848129173746342395636290508056585828052234246331586860391791466716322830404846733024375774754694014696800146097274576190962397605098748801279987008448560741169227358920265139553599107387576267445580209762900259452356138922882869196321385018093551321655331866299809707397975921558933207840947884707515509530508589520186163535024536957245754132332126330713400686925036446204536530890547355040781399308350964038314979032281318320420701013762004643911418362875970738845996367273070617774381825374096866564436159121498036821305427379522156081640068568610594496375113834904300529919739662488095336016521766278011754468796850668502545767828944208251979921853224052188475979757648500028888486498352153637442106202828232249476655784487037920854867881452898487531476976692550891369162640891361534448439438007269473321924940770025633356173997307210927907662740336846382923480823152059266918524671295773504877588562721952193186358768455813558118613856209098636777087286081284939203989381836172719116485033456131149738774817673103633419553261040438959309264612661926563148772012662948544314222861505762567476098471984543243861597430356587417265408557091848098573441979176672492828778790452024731859173419234339343367688043973244651208225529231032406254323836446752483196160914532674684899627339306961175048375717745455234419628395481528296262771642970349100730193476807775785634237093194855711490900304383339514000779823928503615193392107457453426809823562027597340190113724955047198049308026553115299815281531711481742114891931695896470718458328797396263986896670269108528903135863219792175870539685904895468872047002787771424271658396869776842520245619572286650996288137413666368588745323942194027640263807027234515948566403857726198458823456540199730111027625302739491000651580234209417195272713118106752795994931534949368317815486744603243182754513761281636436595524372398658386524189692987435237959951778506879947162111464334079025272136442602261270066988839002809537736211479878712445617250828880460140728378568957228791261817678597511672135192417539579165403522899044105760089386594392850239154384269616830163827492154358347686569325564461222041844305532040085595233542693463600140173976212925034172787898065535200115950893842591946132109717559490180651864777124674459353698564354496154528693321790315103466669580900735852865645219621620567936604805240268905268305841414261006285304326247528860880185809346151073790133631865755635963298256528241656553898592253740735238474108644443698610496000431833797407587565296506743932872018895353690065403339127367529358246007528892686131620351878669892392080000535197705828823226532834988205497781357207403678345551638986668486101846714102557337627148737008911701610433196461892587952948320103101921057945393512673234403154814925722726162829331660270856261147754077746889979662256478786820778960804408749162072022535896129029520503480645699546128869427827856973657968140003181869991959191567906054456364858870384998612661241193165399915555547768169617114932365229549909319011023463576741642053745018438142964883968883134241586288782757508286045444809003357586173573181257013114973243307822922398073349483649065324906949608686179870194542332816226188650802700596534176843360330740364337808946873100289691500411170790538123173385188558109655085249224750059027783349998517311678562503976356692159868610933596315303036243569924912720060664543662956273151844497937134211115836267852804071795914527735052829173099371443779379678501357388160029409129468859431715215028466894821419170510136047681899199106011505571999468017154824146688585539699968625778562276350686325934733823934723817438917641418895319107319573463047005272017861811490153039018731507042869645611732907666857163622393194310860775182341957547519861520047329929612852839736827752889435589426828033054027931889848142652364227710525513955271345838771645316725714079606698077144831051535453260743868767206141892605278629961504242812720200253096643090969826403883026325150540507678313624221442676247245061425501519840933628473992975596601913231624332239922386660530467721997578096047364888810067380977655468615562639711844160566587444835422376517594161433331371786902732360617681986505724987754057885104767957339739023333894470307141735278295564791760729859846383924458811439387469360823346614760301895982595163850509644138588772353628884069711139727764039987250635470678248577189979873635557513945558407037682245558348114189712576477415612166345175013310314222256575573067698005318814664755399527677110169650756999325892661877690284163168468349944497661296815006808411727946050736980031178137223729063815491680010679722959518046651651777568032509244567550827200976739424766853324270355578627065116037860671920417193423648257771003262871387727669958945528659386414187450053684952034787926182973657707017217918561551523563083999925489269385305012143530597237686052557986614638680742156329818356411414284163477240308410580005317624659493189099528194911028823402171111441503548662479137964199317689281042622896947536352111545293775016026210513869652901787989652540800932254975115935443316820057633180189925842707093522795477658478041127130436514727965761876981251781477686981482891842041861951962733680079490841270929083311703756347441614983387459739059772609029739853006222243504652367779074780039834457766819741960988581661174554290326706127072332437677439436944472173511482424965260376687031490075207944968683405232798611191498722042067061075278607797130333989647460862086165242068720315825460919597074828923053162598875656948073705300051993335584412384490305379351840091846303548461397067162454876657461586113147365660595028675496389078862951864246378797698251461114395954969123029643338831417985658290819745887155406076919902082025741309886202405405640201212537703176106978646303030590957366676110707690091774697603160754882877858782349496344094031102401073080909642501844072384965456718994827737172096162004596499620333723620930175687916883775957171147745880790815272346703437432715086323001304010097128272915642510125659801159622997553454896704393848721737758967458601145884275757251335475784629421791869225439574421719282919041861104140500901580393104848715303210687274612144784478238294235396375940228472286887932185629858818129057038999565025081269015337674218998023773155239884859096996220562900711744123203054827889121997238594093310017901888675390951494337486086117450920202276998404172014796600734510759982768291590222184583496569630437431575722316175504582931772019541046471477469861360675741752184547288258019681099671812295453479423768858098484457532211920333906740369371038702192691227605981495711389211256341759258850767892664355949671910462185779836578149599633952681238968150429097334077160856806107277945443525101218692766379838559912293437925364696176916743410421511482570855515789003821635989992110649934802257354837878591745644804950867527884210230190264180173762006410554881265142648361653066442967114932022858098638340522027646959912996150295869933917066199527627252807420771956515618876894492573485144948135346307259345877472146811195678187125569724158791475978242809848079703341153321695789168224717561468399182967633841159176343141272379030903706554996239825781714858523355340976480853803886056754387404444299865802589631608429008206146566182693693924912903531217867510177833658641434019818268627446767557909617726114877972590594494066999676398071706261547307015372347575145230640622281285287913844996759946955935271703452863917642474760744696657457881747044198947525423717423904809935086031310750679273019619459574691044384120865728825438542959134822074089841109470225716254159422825646169654251776960172907351443543310696035238280267016616163027022236125896582069661094761651526873628614986306693440545253119687359801649668771184480732271538229481977201750267424652801052503620250407443541659160746279399154077617069403808569744808906006015944190859627787131297431010719179041435616580497623392993330075290417293981911406694570494733437297703756462816271277892799970861463352307832735340432692372712427789953054531467324239198685497444345036539435718837579975285251675106568611940906604921727490773679580610369731702320900056520689785440866946331227811901811089239418779685102433914280506698767096332534023759901356059592524019525090264018611300178895737060175955734736428567048471004489533804115369242801374162444577848714187394297925525587648626403235005260666927174818989493222754350687810953241454609121551742586412415249017620997870197578769605356109163148278785754326823415301275426952781102241658552567663936157612044602535761286895678486881170027213432174932192682514215302033734313194618396291436039941336718156890404418488431925775321451019583077197967787238692428221231115065622175468658441014806734625047828344908471087753565121390168188411144417760710782725381252302116753948273120589765087135069140905787803378914640600902400755573985538875644252098440158654379725408749878227631419743424971525812111195911979434869936117551728162065139599832707156113383768035801029981080977437741530144345907296127140317181065949174201351810508322548958736734297704044492460667580980516179889060572887302858826757176694497896137723356339429399673988639225460245507867354946226241162623723950553232458537427009295068797820439774642421516759217583619395951366701028062554239876991613558201153835402742287493777046450436644663013357044967832537776287363419820729910579456105460415858101495482144450287450086898847434843833190880156541619165686283726196051506067062871399210867911253699348866225843348370021438221259773831092532545715974720287524367622981700870712636200986899656679850858852742846318993121923323773467019255867637918711275627453200707914411268008675710025474021553993711341397811317390464202083200094217756355174772520354852623347487739922051228375558014449968682139651540480032410311432998917521894102759265443042998508722361882152144120221949873447043344941278022764271639486295300052902010704721761210945376339076385215300945323161033433224248484300407368613150139815013012165404381246506230109718169303880203178685403512011026893822998273620823634977191244204982954886229799697324545156495003199348402336108956307765406804949036192491242621803816300889014237946735093429627496921366845297292939307615679076648448921233522752802411216275151453529490697085709259103409720641379524163645968547384993118137170344511820873122199706720825596985262311241325445037019489406352317654871562671688516323346749704520552934441997129741868033331505096340512886643918887958373503195407719239930119115261170864931084814207712748244414229914512466859933273157740403491166939823561402185661016291203445579806713807258154776101929304209094077242737852636865196110861724730353892618129363833284689273087539539943958521872544878185161112096402452618794320706324375249580932233879722911758451193061648682480121385188827656551603343035029869467258212045686532388762553882430845365919741639787352413883905844110897798266023145434106574926443406290973981107024528937737144960172168880593119957150616847758774492266960156005427917913697907778070639919581953955020602374915020437736343850364608072317806564140032280787052363974484664449912729707153090645699284019945073654435853584774814322003488963647253752959400482173460011116988184756994687459152648153163227159251306923535443193932526814333226013453736008477574353879571138476876158436602791135898634059904357597245269233923080096788482205299092826201933944339564425427230655498800460821190522119580353960598092477758640818033085116159133486134793176556958205159941837563780656725799005887992660466201846786025736005762426552538147211139576992888478358655157174444203876576848722738059924081488561328132326453805900442877361936327493893198897311790519105848731123879735045941519959938017282224208115303722172403176914029010889356425310547092738663896822437757410969621902629055643920123958967388557289898822344851532982386837429239618681728801299003822007075210234769668033433967176765262878438124391351215737510595256780645038156379169443045835367515887707173655182443915214278216099748506857670247756593803134572544741103544271315667667901674254356064836559315821502686662768582025588309701845585943350359694066511263221484822556532194162057301633907407272631521138066650597785149997694900421718786186764100839458705142997786364752317857941781565598173734900377551448401633024558655402805536496842527596455493820518479822320640224091415946077344995510380918683619617231651124541658855599437221944298084471962828064769978775905570949736712239278257252557004009735299589940800290667771290565128323988157731307990690683917573096488650540008987340004315087213361167350240978113342124778145788291178434102233624519304183589088313586533287808691677300470545010765881162076589690695842580249414903058478390332974845620133667217120324837188585891329776747557456688325604565065048840650616796511488479060214565778328724458857304248947374459032822742127928096465548172902685564038324155880981270700083079485978816789050199064711916724382794688611902375518317963911499732867714552964722664011032677160769442959868265971601917674240223759718279058620810975479040203081053894462441238254856551910553155263220222985051120761316105478713426946178073586793013694014138135965394110133237919016265582287219547968563743773852234074612146114194594322776397175516309368461145064726731772538148677016759383334484686277190632978875459395829675077979403950229410728264188603383288907581294493864911697411171306888598113251763371064540594405780218530804427104990163261741279999311539993394482682711167612285954495021325491279865467336725775855843935844668069911199769303413276487848277174968368527579890885111752438888220995119095974862141602413853232645088795396629955858189687752613971114657356281999910125477666428083634527101404554176539624552200979697977589540476632250230771130638207125205615359418554028550982561042334021309645533856050369310495024788259094534253966806819722102772078576823984090161618551861378625322303373642988542401694495821682745107926201764076486987109169275153116589921640401543061602282399489989712967319948984491326159936251588157054834844427847860906163889997127446825644678088256882361543803962170611165799097065958072855017887241203178616439802314820417533232450908762966262116098483326159430583334842464971851642140622582206508642822463012910313833001986538044929710640508356426215590444278606246065789014433642432801259198391125063653117461019087746817588272048351420318425963419793489510113360059997833089452062395244853995288328922322068152351981490942881670631704280935918011652400471661176158946491745568420417811451377046930918609366721551435658479818060707983030382441510543149259374558976387911228367858607780953274765032122430355577171865421053902404502653495873099546874038800313399327846171061242346779227947844024872286387703313521108567133488915475873265869385930904172670782251314735345062319074627605036384033384620565180373744539327917721705578013318511910480044590625176492290630920356670279700064592981200741446276313552311533554876542210791250388089290606870923681311251552854340069964892374962546502761162590161139028555298919579180744954414815026370817081594334324391849977151481712972468176723950284784523517377327028766429885446427843946991504750705727403006079510116019038853693126345366456909640459481754444366335912244709560768403905099475156828812942992099103720350003509847167860310365526144153553836235747772323309116485204914827378912506155981067287197851671032955446218534024366725809976614973802869955638781453530333430674780551282691923499224057166728695037023642856427347785235850978388521113921189040329120019994232004238792339662031381295518628333233816966447498507502155704692513886179821650087524394950728005985538944010523961138182611984596667594689735919966597482779071399276798700044275433929003077125155827376159428674107845751865717960480560399217805470948442287336732093522247728022018077348374493922299010002374944986465744960749522437581014811701475451875575123253199592419103242265961497512042785936088904830509093936616389477509178802938404998214194667398667418921891827101920263648704312696799515181210613430175743750736876784539024708734687813642863106218143061838670198919429614445256758443736920124532945310916220071937933365231972720066159470216423205348080773375543840719923074633156293234190250262191901462828770011867599848714824567769036707201133224134864583263967856179064543580065755090293211387416426120105063174802059359824761675617207428492693214639691180933056478579337422883789156258314339716739686250065713000047814132414423359622810783051202625879240244618826837681371115724452651321974490973896749788910551780926779123827571102689026944202355562160483408639630575120467313030776195436124164353476859028579866081581812285746958721054224345708835279081404597882586737606814419241564040137074439187742684747802980003418981845102566629825732886571819061387852303685785021317671113303310819620154685912301498066050760846853110170533816163742617487028610224737118296349938880688067524327041650633304091664624915465954590320710653382078203660399038745823688264469417409266489210925460817303968341812877353032408461307611411319997494523150577118218796599794957834149010685998007302221664301955468836989879488319471822858915802318954822056683070381857505688960956309344742323016786527121481112926228671661835167013521024304206949162482835019603147156561503218559792965057423543332438809301923406671917482555907977591102846608619963966414700114201910939926478793664769899424886842364536236930642151277252106823796215750028817164558565809148313192687465559464629261241106855040879461399975280426556257282794695897977371668783258450840544093832126897795516595350151928866313893452772700004875172042885213865934029331115508200609439300807192753129846356869360027627362495616968737788521980198991395934192172777551985131570130046283747931161412543930564071914580098067723038486637574369386426361999687077762074265623263496309367043398351744858495778591228940144302464671131609728845567693396874294206146383365155090836390894490988090300250145110187794666453577219937192009014999173862519006029748820394906007821026755424660726275440354312081434830454224081223964099798740327761897128494330676420440513043484055596006985755143956675593413957545564920007138306701625353992461089913427776868122608404978658186541178073345903647461849357235040410737866203109537461922347906249031408665508610427346330025716292619716296234914389164582131246143269858276376547480253593998145511119689336189501703504157467295002842733384333036454528119420658607640695269878885279074405867929389536388450838958589496998593264726196222060589988462501536794526918974008355394122828440198808398195979854354379780367202001042431967256753450501712582188242493216076846051852203142462637460175274565923229415621887451262797758710260357065810298143775424576054348018895895404055836070231569772595470337378779177346436345484849266242565864975106992473502965788581995574570821377180571139209166245595296287331592526641085089536679833288207653269943554798364567311343241407811299980746607050120368690934061964490464156642590939588407988523021043628536694693215299995404885166679495243247356467861608894621907244164834994100264053954343801390038265874781890142822553265595892457192523122501269278926865580906500881120565575377745843874069165953407937677071159452762374503938018289134764692758366653773209375082610807000690608069205685333990429542448925850346479909057088864963752595358620147411232400323535491472608335893530474318035169520552484202314398470985085426598643290679125468948243669457305909163433609922701449445531303583181758025768523211523408307222339031629258202393763172604407132299155447468174128865125695623620245904283450311402294801672635645193691905308188075984584986792639855527257141427308414782225835464863742304799062902317722693346734174080898218093981922186711572134990978704846294718432070664009331322267580890895093268196758858063747779045382438552954462160097197895973516432693010687244590927823410666598012447788388727771244621975817752336877222862559596792548204837857139618338310773244733614500679948972181048572652198718164543830991184461107948923566998946940923535891142672484672709071630879139704053057293958581670464798502648611397471486108714551056175798481970978278702933806053347674423466047143216077412594500992167076194037896658970711008862546900132181171965748192512102926278685501375543336765839722988381316557276727629530437762141912848324464300928068799386264707953097902408390459604705945418682883994862976414963528986856489461408260642761627366021444795524417227376580939186662430042684508607150998064999050735204850072896032458988624470910382698111879507615173749435216331835359681888989581453006333908545943073755901802228787983562451760192491547698604973563251675542748931372523099774166907699793286996419972890531312429116761926656564452851272137436037602935566036387785119608618192431539688999024287222144579299175916313124246151545394875452068294973953028153218335576998039782099605696819338386474740113894474605748973650080886326004518035716791961499251266280342827442488398456955257678942317019380064112125530996599122493345818849334027369925870666675423512164748066655878504883930522178093925444202871569544838622966214578284123296473890128326138837749392546776315250068248916651044599554391398771178632398500952488849865297351743664667519885824360723231654941703797445296383755684488339975182017329402637273082415994972998931801938851817756346549856083193883139680687699437327035125021014740462237166788055767123568260991216245710573570990118678455848306086792287123383133790467969315938095880525298116439075978347537810992945209949936098877881733966957066946717816355554762879832886043413966554533012857923758519733432376596230083687901093699204164831967202781493800396212896805816695004403688395603754684996589309102185013602562827382465516933423459987285102834806437208539156851850903822839404629878293759955785664845053468214876680091381839812750277994463504997155950178603246123458255656911071029477581908447710843513191963467588738764361900049616288264573216328008224970460665296363224657816715850387402900688687910157889644685053275645379407865250454262531616417517452547746284629630200701292819840649914779678074397429677315053360221242497346786827052037406794343110524249048167642348542101627763139863667016685686812147440011402745025382250432956604581929245488697994926353201618082977629864062940915929624917912925460039807994749726470586394247147069551474813877241818571098370826750742507709370699722421567173366386216321994395765277273953746598378082373215070548017079128981850543186137871956967498143283424004056638785516383952447755649529083771496725340871307040957340268522026450534183784171516900764854617786132231641456848714740202931764046655446134319237659788537207082673274863011276427417940985366958199887187448242980202321522470658461641658136808524685323290508735276190213730483617181761829459645315002115941506241111105355464615415312198571195070602992461019867831995087105417055236441995561244551114435947628427003841142792344724951347371742898385228699629984863185852616062862103329795494269634576221698938924273067427820688053358394880910964554892079512737961696942217251581487725168682705088047440817283934591283032625219835161787803353486933203815643994530697392221785505236261974117527978635119163693729235192999617559267686730137229183001243112961230292791522950159805951127914767482470748271962131113708972931880276229790799259125915028929006805121009873711221888242247554181885411881123608981040682578996723660680401150280554021425487059265521211927361741556285663860097140194361275453003368717910177012336526144049802385953994621405289753301939331473796364565099073344712924245342163251690013553654685888602675916673642305445644734283862384286416856120577782787169969082246848786790045964245284149594663364221122361044068010496551997884661790157094887916940045756625216141896436537967725163079070947357506495120078028713359440131899289297106305516536461406186899903195590577772431328769063316355289252934753955685819343765538211460341228754911440340310212375838056880317655783921049155539018059798586491193915274281650974871586257576686652920645523125984175303249910544481196465420065803180690834769184848580292815506213174496797332250275587929142782760473265422038042902291777162655558636905553136804074238638973592604250185292398813458145638912813765883000340038061423980907517867597267616631825062610131488670025481410045524849788386981085457360988308658477841328487793490615673105428195431784737899806657254141497214411283784182869939438615502472020166286615106905356258698222598179777984461231043903304554245959709860890130393496358046429340191632072927656118605741550662462905163008902902861907139002073466775693553566022322025008309943637660932979660231083346010155518016389731281552542902913088582170355530706509097393810009738090968063752802893243947925490637102415919837166028551014829821115584484771991175290770703106331928230228243429726894461490601286819959706444089400861780812960214512997511360133305672711405100180513920032908394783147719457402604550708700891283653910485627902132371817899459664628209678934973544269600487994669372384210951765887055552314051077101633061510145627361151729118677035746898632613318781347205815542804133219839917540503831032592581084566734818684281539126492412719470018265042726333396130156510192001382038626617624554174304284467921547489232971538843427520075372195150078616555325797026174319909775631884233264376905041853574707103800004611109115840871932039084201279713971133255026209270272266111673562231522375659845532111406111651454995546191881794738657055266995651505956324083097569340607574516780325420918140874951605499524132642680519562937625653960629645240401731934562880015854058692036299687670872883909749278323976305081009069485528783628948703000302911176778532181607319304639173071241897400305879288549557737584436192453691147066779409528732442544570338278567674820059889276774486585929491987427571229655559928077734044757712337890276613818787091596235881834172276314954665366211017314857570676689520160621286052889494348442916625324023970816280156450805072826698568400715737712137124953314836359634648182801438619263410539847972168732267886890864739500338552424196033174546854781773165041857986542648331960652773840633390853941225823931346359844936045503954666700854478787398287856511329347672599547296481778260748544160716811727198239656052913260939306992520157392653570576253515768822105259247965646755453733270884102037617955492784908622577765490085768025929222714723855361242807326945648814836276312805301794073262056105201721197450729684694031305495192788354200496249159972825879646446536169793176566241086587225070971447222095271411399325961816010583008941563048542702797104020066596047442194581886428338347560292190973068782317512107455452806423120842019301464937789683326103855044342832927097081160744257338523092672415325939915859018318005310831298303569358718296599501757992524966402760925852618688548119650622116679848726477889650676140901765330242160307291557514837511199588925993587873389062612831982627623455393462986824881923109729225539724320106995849485611677971938723366889775688226891213659713055469925943307222235899955300793956032932859665555104316075596124179388411149533803397036552056494354103814938039298086502279778735515116592560320423950124192299004949877961061364055241385935739476022968062414293628052658085658109959216394275250743741601581263091700279137378768450973348654383403486402890425040351842032914000120558020738959568213809116150642361765203366293188057618145448663083731888584455972816639098148285464758362847351454821293080260145287109475617165631584142668929845766769315871280894778989093451960828046241549506763233588736665671392751463327257642594702887156429515478177625685280005331168823764023444090735064615481321123517265783338605263937604738319935361141407819219835292689566590893970898390205314792830266687491327526438359726993123665748144543894597602229837129716251656579256450305575807849870675960226754196600292679071816283548533338672785865844544493216213701825840792063266882987367830103425143269340890106791590760618621802711605622051132104640556747165295751954579257037473706837177843620018457963657409205209640512701602078172623311410031294149901888600214597698100363358180867483699139523986932087833044795937014976736915077620627753550128348153752752469945833946397322714204597919200322702591922723387453889573668698847429781393337899800851930446370197697244241242452785051931566531673554573958716957942583398140815014381214853921904936244695457808505881131285620631231232027633666930208785936114713480363436647033843914522484802818726686931920440987098031553379644632121595694609504136901080305145350086301701714641275967335444802869708438487323436479839917358793145359564246545580154132574775854013526085027225020222702188629627922478670372349090791614547647320217322420857677995041830199007522188740221136758012993413920462736734337033011784567451069636631620867331269478960155670699253657066404435593164840692820564486293131274371301360748254025198351481494425328955021201733702883091720726013183872590788164775845769937116128411942207513488885396455066918426821639246973854236875469368834740802702220803859263020403821093673645589804210679831801176383758162110039887799965644687023577586575328215440071481888232146321011054492082221549169776262833462854200893941898709898073534505380565046439693332672286724728508359204046083839467813800895825127616161661912639730663956928106103000865836939104547469451679707704637497761599937392027185581171900313504906505390871333272446249407775232290123540605550328100622031794493499487270782202734237081390588617682285533885236833191608336455140435604486044838038286928878115877707989468336085446017454057374841373389960552393547135676888564984925799974973448669498904817928368823565278884431342269347817827970266309356933258061062865214972124046221904259773515632877167610329937375560210139485255748111796208321559454535611508601389739764135599853144991792132704664831363814319442348894358745931328438851475593970501026585940370060755442290972743303294594661198479807084556894973207478759942566125205616818574068737159141766569694018665756000939375257345188664139437656000111584050613056300325420171303949228745033375975872014128164654533628679646183858874427282347745767913472901553647150726283685296234994922359164141420911353135303956932845222963042204219217561834807513195670360122435393080498004396094652917701734793473668898120105310924422252430985178135521186860407074147779419788948350251639262014575827324321357974046242083451204257315641743867243335962852638247086335831270810887453116129192194500262500590011392342373275633014545963848292499752756754869641718562815356561013170909570941863888808907864341420608342009097250702255922806132571788891010428305697549476614126612346073897570019538589014166405354979273569666856437079873721651451105673269511041606599050850840735972428766515440031857219153736838131090300131448331688538326964391572281648363785935026935527321704501505497237354946356431387503428913353826454726368834808747364560480225890724863192146262520332139936877801934682419976634987383943999693578350059452407430779757610266506021652252400663574747683478500763193431977318092338797778442125275871359650295676124743736459525201963827686624119701144040471714439833272783857057990624370005321521518542154621502586853769291921703343446821268107777796581169945951714499954907925186111645207764924818912736819109668195223879119940068236385691590850039246415507224164127700967412607787136554489190643704321925620152730946578576208003651703333242386753097742652686848810585866283845610173513840634852348396483296997508809462286420722428291725152675121523515030293794954099666560664712669954471875134512162274681657790005304603760438768894091735298337663760265027168499958388845094635933968495604884799637795762177222793597310776152669399032863681555477636581715191999906917198985221754819535363519204958181807084358655103849782908443064432976740080131836426290647129929234000028805919707977851530418553769366716849814400203165300599404911200624296676940195875652796288458373934671060479353821211734801157791903532440370441118652436187692646808405679846816093882986041654084700214885843036316251208577409327058496591847809709226755281453878610382821448136754047382347918316629975119697866660128481758109169732481859163091617843619950568501524012251720537849131215516094818722410185513180622824108309767954167433857546461425054910705783262148093813175004229339706730774832108356107865704955491975267690806282805178395601100049328176386237267015338864788278674521956668832925959769925410258442319753600813500003595714423917567935290561676341861484522445949884603723394566211045629900025803637848745528922578224332212517264204715287978346160583531895260636685722698495868181263781797184963464286476662830558995636973663823261648636280499340840454188693689904319149158422930777240003952410456112455207525711905820437234759743667806987571593406928737872200778642680799115333427429846079402522820042367438915693352234320364535837438684596850031323905215535381272774166653402587507303667977440798279401287255502882563365142718283186941376030912699498782523549204457219990357928912463003906955466173693117829428553347686772480674420503581934184508675175731108058343438285647057319203734644806812402039875196776453612894902082063712335976739829086468590060108838169492114610921702030758473852394830883433496275828519622211307653824304784180199906884602219102578295433342463737649256220438689915656769449130745714389841945381467137136686816859436924723053742740959908452277212870136939406464968497257897806349659697846131375726030049523191723972486720883849074992945024119587226636952537911883772061432117886490403564524396762200924758119621956545585757826549627374456514154088933678166242117777433780631465066563220965014062273028160342426479886589302890715723463112500977488125005603027411514363493438357813525347948871213435568262878087707685099574830404362246553603010307713351083505989093032856975318638810262131476214417552992813957158962700996548299011595256272567148177165976628156225108439981325517806634478575421520456134041744387527541868888637404947970865910544649820232771295190675990481413096866261630437234288043706102023716179510061121073183486276187947472468045659728614363046759748498294059500471090518394729849696368050033360202722291220889950355917050809943438278062995307458954492715527064180328427925407823322270446645408037228552513393846184933381338731277261276659171506861530493858973069179169163410325403261180766371290952892671401914180612252061938543311851821164118326347469696495548305120803582023432426715532123225012173952003461257213666904165230862787386883928529607845816449870011437411359931775860181962179422121732935692980392878135003304662744578593822649384486643598868465881210810868710702824219554916974331490471036747406124447217019311963170474166962456430876067010211044656112897099024560300379931155974233233080161985812457814835150914359170956555075244644248980250754536461606390186483529021273333160387722289017238344897684801068181055930299495170647682407822817872424271070238552922297163747646649512412558493665789932516133211649949281605747946257905922155383463851946952926087008427559141235357518161498492249258380956754584667518047401589727838175886580877916243242194841621272234783362395748769478879865200937427462424405005097061528147377423355525277846701875465325569034567324341849096445906767595845994736826701316064251669431799766427540718017492531238825600454383526484545189915602970427348295164738879709298962047184904727715948488798456426977297908855458209482806708211292998350959316634595996269124503049701517219354462468675916078281080809011900584449100930878248843758675923024262374789661084738522483329248171371491252242281870470334197564175111665375647118019769710990481840054241676878511886842795020581279825898756700093387759758435727150111890589878028583547919558160165020385883257176516976274527855708631822818811087652245212204235137883472846590316347983738726104772095530105011340902369565062408714880647003570539104617542725423059611655189044542819928050024824681119144122332860836465058969849785582404115219478352470391078852542731656615459622464116999107311673173459900275567852166394606043050404688240262603251668100867773503098393203011089814045516551229580260599121767863841268811807297913269675122246940753215993226865009521561468245865624303836252504429433986748661693748227207665511203040340110966845587160792164141224216983332356175340126963985600444118850374921447106801338914505291254747075678569807180827441006151196379101005102158320185633844294984649023082274640564329472871816979124645740709374601938075864391368740422233916220015274303269950044011378113096944054732706535262384351397221244766370879376066787475106154320954437159829065937056634907699193674180218060499780685233989345688567659239509835643563693032892995010973654722613318446149698227112708505579018582754821625117906656179115536832573502693667926110397656008507441810708930131054460826067578823587125374614386299286561636213715582607027969755502788066754104755881528555113257803435798032930781541012523646356300772288958864780781834846034717803847374797914541736600581347715901363761081478561372607614160240443263165094800486301337972664375275756621444405327423088333001900450652034113313832552096117195668427159215151947157186052582735767130799818499346094320349208975209237381720950706181401909221229993077448707554652918475517891247083522281087090283126920087294728491480553266954791713480335913618616518241422538070676070274731452843528675167753293646508672866841286065339461904935613849139011248393842595583073417522916929107399420862572769193943468672376802640166281804147778342056169009850081293905416941120712372079406465858746978254007375780159241432922442954051550659997460474688268179322524838351453308110039260964735682668048100147688633054018165047712520379011786707849524413081058976863718131611660457481771611611661006697939981608350191447442167083560611696226816397477459495520468418646695038914175432384168934451902643346586916732699175075422910059630872513207554402609366129240737550410253304189382635550549574810905017792004803738171131825690881489416908475057324053652831202052203908943283413020491958156798920334652145472325360804417204416908841477526958669639930064349794540728761449109696925006784785156512029588775378388779845349638871205426520397771079474040512419402702167743319043643842490809603444150034035923127199850177226554829446916376686245048918847440400120649766931695156024783259730252762472455080844402084049076027750875174751808977017589268747287297431709799679879405052185187559913222009945679284643639167767718211518048935400879981952732399949146302480156716271659270470093831450090561140916270958580695329960275883560331547671068209746514350428726969535003618731867040265716035519795358842709670587187641483493961971814860545361793577924225015367723276183254290915440506886067451144396172029856222255237398104727826812100593957220964922637575927942728898593902757457818193042077064022897742099947019214655855265918547386144145753185808819087576863980035062428263952175273599949694622682907703195799684850016712759900374791124389883291470105248659950009285229657443103187942964687953137873978390687313273354029854782506231976467925894561723625299912386742569708519738740432948540426381321788957608265442643745755888253692452004852833390627765933066952240731899494522416690399861625676705198487147520699460069586981277039217845887437730769922597539393610133316909647659237556370617507904478298616706438268284471540373043008287527730991185093422294629974233012950777297375757411732071098157113840725316460031413682048532621271769091702901435859816183345204205492385378322022175448083151058206904443984692981491952902892523277347011759688433824411386100808028287629635928760309785093273476741001559498464784617706770150230074536321178531762148161467215252080334439807913135405572028492542273148456103522780402522153857056236139414912955983844162592728154114970887214968023280056008178489968058281571510235287783126236549400885428004930788673373883138766402845514449154697388713712851022889169249728157530537923649751965550911479857217441590979142412392383896268153338037535311249694331372234812511367866660740482143492005121635592982979799310685285198504263861509855762930614131191413637441324817705415354670665816799357247482039936545506742212570963505266082477702115335473509369751311649516542701777968048767118997578846206229013903103301239899033299858104677730678485191402991181079099492472802632579831206788356551149544514800561667219998318143251790269640951968623785441832528108281640160891897648257989903015373283652735324624479976571681220515349431170449097678808978348022994697478013600154061192001692424300126726532673230655780932412391904375486107708600817063451800338912234310220154643451438844436570310993450095239152491175033448252320519005693528221855929496549665870704788009291600647431370078887093047363750350433831145012826043352923231612529444994019496519155569851748912092721178633892558212268322985149938342617369595885045592393550167034706632303050176134800658930075899769234775584984392085615290813340881460640451817483711544531107970834428493390215449984798491814177976633896437365206045418260773087600907538807690582832830302639294929183974271238270591067704165283380390783140618131038203329303557451448612467751211625828953047709712457151712978151063712519871309774877864556279405014430074950351004359862276591472980948045216336685157153452564156329837209016987301971505011801509222603899712913243018390317418170770536986617945560814082864140780552976523753660631077165791901982431134721656232566415704526663790556531226248332281168437601602488220654274590352351062506561462974018615933658365194236275490126616609746064167847769440728100776251473260775832103793916377373931156108591705978472281904904265657057263432631284363355813172996244745737201341299271405923150272847674678835419825851135989977695031937266064045615005238043244340618906094898106692304244420624998823255164036235558122213085375363962366372363309815762982184757031246273171621603013854382907006954652702199900591817956946685590171889449724933631616896725255650663970979374652674704777581942232097516208065176552985405817452947586465496089537976569700961166229405184801736854638089665680394890188136238372271748507225028396404204441046430483021287946340268549998272305838896142597719676495791240873279829348684870308569469918914803579057345052250474710788461235096361163066271601481034139756968843154479030629257187174066077606093931605064916770000467211738788100416018676110383836972377375047043015091154649153209919404111391343762530840358227486365618497137072682355814725187968082561373514567815406364622096678001250387031321145265572532263878184830200229520670747032319107440330923136625548629789305264941065726436373690093102922120843021316995206219894064599061841406944715592844210227703067475772025625120093741702481192281874849984210539713175880824771282959268914224985097731538723414709202352750751422243112533357908550788055804115203271276759876712620235514215090186978216187333314737235033695321379861889961803342366418541443181661452880349156893769993822848337209814761581942784400203400048567947108427662897073931542123716005416443749680870389107377876928865510545064171118593889319552858205905382614299960006055042338962160211660306927379367618277117494743594273275498058224697191136723690777947262830576430033727749812890288784423126115281353188095357015630662959703793843242580142273642456064112106178623354306156666164887901893431258528995536845197300262736543706628047642795005622026158130091330606252819836823165995896836459509543301591893875731153946876459525548291732530668960859266270907503499485338464963498179618828044960476629224382374997003881186848895236807176268773365330964505895533673080078460255218314301569601396859038544936858440934947724424198105318392453045456259817408808179898458658188661995291751482194858601367197403810655332455222676899105337518156682039433429225744312615791363814971225020458713720948506285669996529510448613575756873204116174540148196739432429345861763842210214963330080873694164897778382903784980993941331549362047322350474411396780578487032014136069898035554842004124573831690315089626972158791673073714910696540713283862855725072778165952768473251135280819992493677928117636709533548000023212243956155022100205834514598091928827829869277858589600579056300042764229487463958212504556038746532446876546528160365747051552076661939778429141973482538816163525895830957207000095122146792405139702278760923828547136742059151664355866717474254841955937653128884955411154999561731257507286421542022743332310441696439399538941476900703112868899649021438243119203753880668343739287378602110556249423823541482246959382883877390994510612394836101737814438521407767023040086484678769593612021693324236184615479793488827712358101783779245800488767692013762034633005938515897129885200117684727431016848928521145692955826975825673564888399113709376563203062621213405920177766425685449615094320095057112608262242655486385927383977500805044057579857602988858294159232491675040098633756325640839686785420082991184669448242174358792124242241159918338181748843037747178234473464003789461815579783769260865412944561135595932607752231121305079884830980600495941897845462573667420935323662131107476906967040111998592783831880240338504754221633113463470707312532370528788668409115464898511035667157980478504923514608040337425910906109786591233404809704456395388145708955272807007629841172821838221508028517848831596646844604538549677150698601534161886217249837514432150980540576053452361410105369332256062675558299307801416635411696155387272153666413705331574293505457847775610655238324830030351033044402959362543641534276290709888329884199355436941624569921242703529710136748588875603021562520739573006157106493666314480617561311171042621972338248424168468871237115126729839490574387050541166613226343130994263193361341593592004358314232420020830914902350468868220649201932807400963212636911498884151310684268560789795511452345179971065899668540388694441524637614840890062314870951428705011259902811197975610636682918600552300891298130157265265196814204737571063509860234187020256026862587073433958496180976451524827775999397673345047249150718880359207157660684300240370682142110866861636098146215782503366078969171312011854196748830583846488593285833482739652242668242931895712920226633148231832863486008460003723128085193098399519555619590819483686279813663781515286943907428885540602113184633126188012490911494319058380543808816186681897449365817500347051340071132541835800986250128102756396377941590988260144815504631237211764110059679817309679328605725259828364470818960228557535917265148304177841702213949134209713166081701825192110255304291783473720834295646475825106462256808196031431447042792874890524730473328179807657757853759463256505684238676754892743682352948900590229170378723471161778564166388857530909557355798880442844183868206736249871528266457229556142480062915009963745680158708121782077117512260786916991382511675230873767799438527536782485101927579524477945223599556455360008690300130429744861522917198912550388641088387753947881070981696679047657624071868222308703144560134577173941148293472534216772201245823037227868950802818216072187160905575488899918154076789926725438076098664541302847377936381571695792318371746121745349906881025374003871958028457678274850334614995120401508214711554785712369519281011830169213326690555692254838118322401981187225908540787622012105006228842756453542614180269390847537229520493222517010609725932996526582777149043817806714894293128519608496445237284452149592736689397005600823464437975818993859786488639143871681115791288792678955649366200339833460381805665220287221962705893966460230171354828165224732456215189141729690733696396910435593874931776474294976171745660494656985678873296729566838722817411066579947394597841549946082570677832680187928457180717116324703734924332192342632728249231809029117698650097889942674808487855056223548930181947403576741310412387563748615648629092003715801280906638798036550967458734076310435976141723082175761009448153727039775645464097558640340419730921922306424528093218737909586013869144954792135442995494704036372872730521694462905973453415647604782559835167774902514566944135475100375789882794396954009198849971105304563621846915074758210026059999145947835857489150989105223951983646520677368614623856703808181829488452554735236860844752838181797442699191977359346275511480214498396102390646601187797133545129831395233552665944017893706852696466919239648527001132318962564506436951031577872193854057121578286559381849450373254574237401750359160850200862410379473693061825695143475359814224731528526684107336099706994749098047168611803787293386422979392501746788674567936137350987938730241396613702715175296444198205063001753304618723243623239065118369295590415933546334934768485042017523902238299779365832343196471376055509757587915822052020517634429133650790624956651511661439059000374015843604180870065066833104724197401725949178183623981908002765850531011113065985314511566322422481704864647277624775735973022396699741205939353960894043055885436266912344066651651261903044761773691481018118696684518470355089647912043403050489019425599452828427052348176832959713579758820069077137396125054901584207987065858626501176888663248889966855893296313479102586043255624886444493271450807090010760075492089920530455312402205527396899275432069468441532615361467505265914778477253725908975558243642782572687122619931877221552085735226564857587309127550019939965726321459926887707555764817635147115775638021691608497565738819889387939184324258326926664370090806173694317916364560821069927938832493854769453138135169187025457085922307233869680870642264820915923314681730271786107807323945846758816847451183672028412105681746539328181491008295801476445194604583118783229921136066737546510801994590400696587565566071916434711088217496929923362224958333009590240738579139119279482117754981896599507595083226266182560260201859648816410660472255575981341126287404048737079167465863211416962715732600443340559094004355242086265109035599978412662880026278436236190393744086894062309952900351269920236303884217849746673979124745461110167888365618055939473180724951910764180765122628931866341364527564751779922664495915707318207635790765478923141522664479612252745283610475226349580736652712213989727772581859417412568339211415426629601167204745057043271906391344058451976380976430353353021796568235666615024910206700852880374864076719634461809980885176027383831552537134751029025218678500073067075530447524027413958320184591109813263862585358078855112348773697880567472355500623036401489723036158713268675617301463041831468449185506577400087329939620569858729902671217134531096729783154672668112683228253376334063712947750010848708030239315422043909784483924639486058614944533515520707809480581924779178510940135142181935898409001538887217473244466763990914641678844523714691226171942515227689693544382475672631782045308360007222530991251362523672986955466312457446774770762158458741465458249784713942087339648616736374403098082210012918582915151790656585905418060856965405704921253736052882389729198381539107557259704932395811764393392985931042837277250445809702100963037113236037383827847750868841721947887475942719097521988097688806836646956367985802075623957518355093727472051425518052525540429958412810202555706293496397098476243151103942751308300366467810644735997835390356224223052861777454065869593919198127546976118748699721091425450095959700490849173996096763156532680767256746081412353099851135729016647809633269495599072836999654894112189194083528345618051427664879384705006872778810499539773763348879770953982127010930460616271851064324968989630616505387387220330364791403930723683190370723264347716667398071360109461961616068709424122457834140958437793440479026866481599634109670497033218423010506733957150024502181741372711428918243752719005162621275252915109499932886968988338231422889940110622004399910720345290277008239172914346088351726064494222070118927735114619804858131421673948061489928041065103186610130760572888249035324729051064623329905376160590618537582411092729093493743894493530902566958489274589597287233205310576597027072637898762451480419090025808371333412431560785057340856241060813019522882574432616480669609565013166970113907749280445935491173881060767184492738172533388997093808049791000421165069811508955971904978213588687071256356133968219479087825500998832584846387530273302829499899435866148787756502472753213963092133692121807033995362998462394967385003783530594645282675884497909872985028346059487412209439865474367235223183085545057813894889112358583727874505603045926264992223060826620449630845870448094767606317187430876212052260243346740113938435540084825096149075916483008979660200705634374203325716309388213198403030148146903978813563610943072888446812966378978166840690586732397657224887542508990647893337483331574254711306571393832959775539495220590411375821420596065418087705554784381344274005314814509509346406092083957962015420720327832916746451337789199742205869345728761453874495271355762661158495254839401944847250122881553715868752151358028481636894293241950818965626803778698903399258571270299191706074404826508815082822359392673993379134896092059801304106947363758922626866680821274157085512422052733429041454186650816355595183259911476617534764364743345479264054119942142991938269608524588195173174840178154517921097307221814630797399310145265197698624313580871795034643513758771338137683970846879759077125563398577371726423282761209439149095885881347079784264560997180707967396100129960883008989173273794710831605875099605342889321327990797944501097889126445217647670788145019266606669120658899729668526512598758453258722361368924415584473806292128928709629637798620807579916725189315630102853217013840019285790679823508667673572037411431671824833765330945044424687295490569479483560536790973669009674571990497891269331855749005556385045221653115509242635876719089055142305138174813462851908603200418328590039270157608513982060456400039155029607678818737488962908983425130562640981329534927101382592600078766306213496421833818536853795393139518364640969183881754948695960018084652702053672474766017200244437845456032860921303530696117497920264005470571514631847430596141642413649718222319122875886560556593524586951417889929214672395371178419242717987728726473016608996818740812309991505237514875111991505567619721013599212271178693086155133590889531988226577997096994271563552428623095791939222385139463967527112931895646409166520507938733970426837302218619067777761655707183256675237730056691524585936033945144479116784312968741634957361852929407027103970842134285895470888224248434341171731548404922600606892169969206593901337130655547408231456766421564122073488478018290522133429435372045385635253848214833949184432918240214905230092520771399738970990581241339651208676651615160270159931941887319946564029827778039825401114294536054777263986673693966605604669708283047827336682872435869212624644429909176711485708813077723838066928870107295243268423820897855478251081031483682067528733358366498804767931333058118185811115152067211317337528126988506817452303845820091280818947573587403748541904486872364064506958298443530829921330528639099233289587742450222186770661588218882419266272594206491853189803946741928893626070839058772324299671932773821285298068001539260438450292332310386243755201664890190646214623734466556425158158476418452235156828101169972136211823006840901215725592711645994914293035828834980334375677896163326084119052554663897223112907673873511487781483275334933557536268376089276668790803056660171471744052436216485411429291185111537062470428932331239324023880344491283227291874869958918502434054315063034476464292914421888179546170070228003364313687277075702862459861966619277889618571449383527094941262825831962164450432098240349841209976571155905781854979990362199508299588759184784369455893100053736511709384554359871897415568947722067939253268406236605822701431130102898860300177370496771205142324738761800647898224167183164073533811583782380669981035082269515431681169408898868171700607391824975368655183680706719972661062786995067131407372229883991396725152624226388719561844094994644371187963627843567536655069643215952684951699755812481174544540493270717696005988067744400236301655770548298215268418138286763133630784316615301701976887371595118564644828794983781123192732780713963040110380869766177455467413447998843993646223847798721953168837527740544515612769326184736708856989907335695526278312876477332018938681442538966626768992399260441853546515889753824102740645764841240813030194226069081935618857531988036684169449583121285836145439249050872390117239729317097767880601515161116837298334473440887230837065269150632173123273379624434674678922555572146420167295799601409011587310306596960531599897898533994061803059312614368101257817347037056808842143638389181065264276433819620300698674738100107617317300756563607736604888178607436012365934918068230027872482810583807769592476846382659727958076221365347732971809757505609371895970473025969150283459729090255245193203608819078915357171794983227315826751324000183572821581517176932812405021181078751207273107614890156611112538080961499620845878880700052327316203773653743187320480865317728427838503136714691046971386991075675348046839528023535725400928868225841704734336030495552739784595821558764546444024844261032235938117868432665508519209132060380622549906619967413041152104830125602007139370420554248571282030401755936401382826079537263603067132536413650671977290493619652753647830179035000629526962239179403449829657726381510742813416127971467981750988860813914450072556928873587275937584860044939352873732544426686572022841178817617280955808608251693826383543520241443588763527313938886777275754627414507875523259677493011614063847648302867504233150390834630140652831001764212085357111237420646299822655251610690148062766765931526330107848778059081745418246198071778029040766429067537716823929171481554840540677813383878443072520972545572334298225502202523778978453814168595944370923860748250269700450783000574675181359107600121365943022481859610987799749870961734507733724349854609802698024628763301081375542878581886510551616053633599436443207139721850024225208516167876971717607649473653931302411945642373998372487606730914604272051666619858264651605212854838376182327150115221174143161145140081800209698788863727264665082822906583340196844765097600208539841599641329584329400342552659804121123071048158090584927238264270046568697359067208908110873059331145816701875113402586915296399418744381975089803478507313531034385287494507636199179761202863458969911087503624753203521639246509635084152246844630429303868336359530312714343901706986251406954616108881311678552187098986624282673573736044391022058502247428271805622950689138391832454529865308105626111571800839805283002785722720829259608317242640727144812331684489682084701341199615389783343732186539207041873515053604410548000459234123400663100318179494150175337080200339994190658224024600406922151657371341191572270404575724122117514109276877172471166360274942448618967967360120910461172590722687064652173332635773073630343643948585560646288564591790214819618053085386740569211488337094039322000328139717412366603358542985098692372066201091121167609123282123630717288117457031601862196852847786249164536750169813648733518973640434051706867758947839078016800906532943474013708053109435063959204137483732759305144442487082949247765346671704497640204675730138019081648007453436947876107851312176296610568558092130127079566484562189486083627539484678554262533801771875007208522486713003401203518406351369978363373357880955914987874518741865171579931047076115720504282164584297353003372706564346956504887767333251863506761173197782855052984702893163981199501043884989690778154857255085462391951956421178070231639292043956306498615944552938415981490172035112210424549683947103519340142873419416952800882798167994634013840005454251875490411861687175387842224329025807884969463786220224680004418829142014035666025685797083545364842139190693749367741278419237216907243940059134438209619015104074434241940634012488201955699212241472930563928334278482182868530968631390453426845118547121564396740754545475424697382466977533472881132394072360862369574226456388343949647109582712260891928516077662155228882661089665675246052167041646371176315873261583956045748146490719533554741143497556784035523322618637912312774772795266695602817441643675049968160649194848520269793230970577767440050297552264691087967308723710040214319196489610637044850898562124871698211922692453469573713092958403242168255010063930956011544902650440018671484868986821648939678477673830424853958874249656010879361027774118569876888906722132290554013118383364927423223526228935799123300565934635696760603548001292087151426424008452086410917847841886660597558279142306761787274239896447430303293015866048050890167479154497243396616331822636407336812734889655546904664232917503339258861856662225359237580528623771791909979803104726009546053435142933896736473364634909984559698975682008950670452641027282886998730498314573008911220173343451254762533542512751167084040283776671592786591358265984880266319176838499744126759226736997083805583316537534422383359871035301116885411250619512247548454554349738792356985540313658980476192323155061564494518428476126710887824920968799007645492895155723423829378333123649676046616686121048615632721421843908839786625786534342877052636261516071480124420662027316036066333326827255376991793784483846465719958217724132092556940961105043808391879037168607770800075826688718107638532098480609340569145516089827606949270520391749768098078821719099426442360139811494555439911994456952815613733141102136974249999271927578237065906762904454217744929914913522000024764001760481563229625822430771143332473705266991401494196686843465238368879052389136660670217922899389092407170174555114898973252718691823300947202356969107594638662049530777348589274538158968870953237901611895058035804294752475933822577587728907308935619551919529819867692685143307339806405394862806953430659297083611077227702239096155797266135112933118944226077255370301946092789238119559377737700137545762887262153190356419839061825373464834184653337233163244648453062519673350772036286014782157604688371809830812357901817261393947059411835406022037753142456161920023912695915876175706751754528344279584438130678149805468038704683200551848503953835394167654735630842398161565379694603470587843113479369620039347475583967185293808476697599564172456137117788279663938804543781473910366522317859521236107737995823131716995695048013537068862829574564762642474253173293256367307387965068777876523575711370283580014702962735616877124600827177002817574497475013655463528952271197093570107888878281261791056870559385306547252941707610314045682202447271445788684488833743376679363698280845800467698009028291915869439538612735303851928752523622931029045273747321481007651278498968524202500509020033976835815381798520267544110882249527662812596453010544104263831978521327216387497006557591122686020946105293050767310077056630436886036377268983923378745232431200881064000695250116694107379694441711060623461976837015314047451034938686846610600338215297699124692968725113223457349948813144753921476895960137745457781342450181299760601475003805476738698213088170630578704753888012858242185890857323766955939400221475618231379016943229745858421117855849430631970559738155480289583798339974187897461316380068898054589229961257475492231929361365994115785605735035697176778529564741916664980222472240924133156085287563537167760560958846689727915022954637905067533524925662806394721102716806440379263882681594251565789046876592290749521847438575221134812424923033546463145393742073744440961180039575993692835972788290348900379626291975401058513309092559995889114864705617382939543428244724575588655412942533705198848037228260758190715203656720379962615916644222670768299235906629205357684148582445597654790844068914855454639322266409829942473513851559658058698263513975655187245999870983075339074492314571662017474058482207319753571995882808809164517250512137084137269797483424135551354991029358023208859251618671383240798812209414314162802861867676611380250521135215657801389434374442472571132482815560587108908126155799706043177226837313424538561592902208206490904712268820067769280957069831316521477476128639555975232756168510740065162908966243631017435369662382936915073369033329857102275059506901371868458631254436824335445927030331646297490045228188434477407841970582348882175961154825584557500541475935100996527557710422859869912329830599764976831382575607673611289015289055656380687319070962134693254289630728885665569493959344622371156749288443188156846211697806816618036840951071583536543348217328712438465450140447107621587861870714397218015131489659786238189020228164349867279773733273499929280940102639043393383310305418880325831772790534104208625459858031050818615029816035833715370708827664519697726586329129346584841711465850801727609031553729090367042895225978694669213136981148552587949399576323785781219535540684597501625917209846505823305714541644739192940751566284191185050116000790775496082586116327442087519602584699309239809162228536975239729933740237504475216576846511751025435814247160957552261041550223607377396477534884879133527360472164637893198352798961344007155860033497308999377011161705098912961006525073964154793577998503416862247310348412630932151446798533979242970175436736562439634374053203961625226653418036032595688641866852877213551707701253361472556101943838303083218118540725827656672468610829457611159907010266884165908671398118883653869899070374027777260331670484973916974255763488005164420519937762135833932466073709157645193585557341185773215349088555350957857946177689842025168438601761411060710717863452075259025913594667761261014308674029388190687110742081114634905216218022225063142222597820880038223031680600787238153115955726825652077151979499049976858908168404100913076617919384781539772242174128312086352408114452939347517605638075011443443094746508539543432454569602423507257407355532307207259071901585210262602551410391248361711998590127307124950461427871415551585211124693477580797389335159363805453704767869974156141423294831271141938638512939308401658327492907792382769899498769694496610562074940745267239436755954972148824780514959323645814099814527598677081426857286035456908521492118741768400473735058226792885265829667892011102232356146968782554059470713375392316946939947572239262017096220176341803043484847324212518003704786928538338975414068334505947866290748730037558141169354169634865440515600371522151856015402178204704989611287803598256258210788597755477600052150325119868597882344391862970046391640293166172234644591300231076669323723192985503916993940389157029208688121627596474462163038996213027767147965171544203421876392558895824257668270499999030088326565917032135373783391458514592389733691959219385497996727761867151246434604754248585106341171261718898539231448294472170460849062904220359329299592082889315311503477377703438782591016985363726601249223464694011750198184091980610842354492540077128796259154104819896086303804730884644797336305137293055014124512509196242948283461752972377401665585856027315762723174397715019029627893527579584189024762585017315862271991788485842326491319012483106937975266882546584108660095412348481430159709571683534707903317014682084308713500036653427406039542625156684084836121432923839844400912434487515309200818234019970640157509097706792810821638535711499810724376312740408677135755716232648574943217096323439208906549263666270540658391545035401311295248408875156659468911402321924599982944969398805407177437751735434025626290722387080119800612197103217969148880314019361558076545132008603911105579274309211875288030465022089434319768381745223911940902673724990595417077745988156283230033980883171465585123970794530316858003190721278877268851351644113609158227947041563262032190847782522301744128285316039384807592087268026584772838110972032195029198479907453856183484859056956622262286547865018611488169635262491222738474063533250679381193990271608196535462038378331466009388253145897656687807702501131182037294720487547720843604954877007587848547223316770630209429366966481731844461013840290959924143368782955366786550788397084335181267984991791188327618693875134475521151880957520117382328212088549040935138500000342324936828377507924420458991040572412090079057796863831684161629986554178486447174504913486051189077881899339244828369804742228117534351445048782963151947144989037868712283289988769462430622726802152557219628075517663053863667612555462571118568061133690635209697021146621516127738896287927676506339324603387153563893249928979978400011148548013459560239603229759032819726607288311697806014234745792622300409534594583837369462364330191805144914735526098546929349155492226373083921041869267081977781077274775027228372041226886497771064175863235478472668820906036663280793113588980461414900087977635515254870737007796996331837760885342806292352951446722691128755638937359176919870178379959840631580603232793693344659869673652959546959985110785404221139841669162061896867268939521497086799716312701523601397096513581102935924032768307019655761886606989434055537820264287103495408744740271640468712980349905331860155948137769163820733784255997844333486269438275945964713491049232124307440243651723228238781044378892461569109214454703036667299758970022791155198729354330708744993145876259210900072033991436998143042557557695440776870141757231307459424246411574755042544879554286356749483532322841860393592237448676513996362598959300654477084298772240203825810707558028983001273895460053818902976902112778333637138765195948351075307347363736954871964062269822140820405264395829201907232863144319624534378948110435631089244095850953853084788115583883602343274137716746234113821467585055713248216904861065728902184934517242959033164028653692304097384199825423296243556560049238008677094689076978797264795685070127290021811536974419100974034290076184041825398108117988169942434124208504165177696985373973728068069189158260378488888494931249468676665503829182594960202898764456379103367620751658317578107095481107939463905169428920993887059625774758561535339158745539823276474499018612693836797777726796142914007991813300301850794665448118792378025696272510478688899030124984243071091733078093379342957537168793035952171165598259925125107708908153965215910069019802293548578684633055987956584470299970993670827390281009055555173252089008361800960403392070668686737574342257357558442824075999516336077860067736599898345418356297994667971457681226362107459512721615958792492490831308247967886466819596552838948939947094812260361452960189343537072594370436396728367052971240105230765430762676337222605674491539871620783292545103061790234173650514731280897390643737095672239320301815947234166171862562195447299676301068538965951908089831902799464716352186257526515667864216653802422503656543281013648932431769093765270003131204755605751052868771356564542721937940296800245771501920389232321963220576632529031991961606090834869682879946241345178115719454892224652313538468534872076115822219119057718461963042645455943633792142283412550220086858985890607942683662784324233289489200100921604028902077172961855730671853522002785794937936006071659052288168722634621122502691958154480479256106039016980980969633684049285411794262036813908766791587198343615869802202238004154019120372474854531306555195273128221604841061602427800004417149544330640209862365135327195472028749702183653033541726996036272613605796615223792665062054033778737170040372835719966300041183364194841993191700391710343776710012962243138282016559250210037844305614593362301850893240014556594911405139233433404587291134705443098123985058176680810065442788007835705711703611882413396306368370104222125576848922088984224649053704336303134151078237312896218456791762263688987790756129894619871337476378840632089904023977829047860929154933324699577122989708546986619449661330450546413792001304427786784085632872460955991303794698363984737846199424321500967540233818733092788362458112847485411244862682975393888370199203876595120570335858506984502861425209447198872799821361137406100227051729574617891929053747840236040945246411418508913251917488109951848558540602738316182461571271447261626740278519476218357832000829146018304055808978845001823450586565459791281622453650681030165883707490001993118997412774797347717698942514889764947210941721212490398397494169359954258861881334580911880788791769056056688319863982778081210391772002701188876328551682853931253090762583621544396608796124535567684535740918973355700398376768361877021605920499357270425509579734159524104160520204722077313281994085920943995470733956433129228158078574990996778181198659361548480233039609816824660349337384391167899841398887520286338691156526574840450688205322295464358013101516788857429082667560283859854010574356146206019133542239872829803343755014693910779464438368401250707800524617477223529500499934412777493890847076016561706649370884232277263594292529024528869295718610861077754389479748551469979365059356617348882375256587411835149049051752902568613573663600744406005470974784532878664216814023818301660475288021728237693426618336028154890038558275418692473088985050813416319555475524340930153181261699423187227777869602087065165060960391967189740582484523784629592160675452867748722651822393070282062933346680589430845503521113433174508589253112070580948533129156779881197484200923561144993569913167888791177948735450517163576286442151557209558726128357329173356911341725783376857331017487241701768531092455659893918125220968408132854783639909169264355830327485090786740796784851099452439066846329361812036631166452842318758258713238521374539011004008609160214892117507926662840277158455359741073579575163441046763876393001135445752716688548511209218269302465270785808810397612967341304974022195125593325640184926974587098316747907988957482897649028008218838994575705071524047345400634553374028605636115638651434514836403726072253296068115190822967724577315807194194104058399098417720066396731558715492247454129904884685040223692506868122220894477488851326785668633282258701575639479468175150623443503939555914525698001447021915641990527725690886446478270441222300399886552899194514326092994897863444442221893287016451835619836213311131288550458921074852805728602239139224979039675890240152015384319196739107421497454515329536771611019146638592706176922253955222991458924957990130225272388328720134688260280716771555736333716456428873896308040505288748849078703112719763130786821621570124979837878013008786581283282796808408966363265943339992815416712219312857705351110180106740566472341224083202527349463324542026846518562879462473468596833765982918783452124376436866420096385397078123634918727615083769880552464204713895028505382273996385459144401776423547740184876679810284137732801799353481319209757663839014535322716382868648199497950249824618788049196103070779339256085840049632947586047626398829749568788373541080538005088232925303849804028744612018961993224609939616387622473477274466173817257994811194269699327832399910032191743803442191922906073772127065617887493511637096295884899136688019680817734785464892444843877933818324621261732712385481516780772024417902397108829271096513491512643345633552062377559330908601882004368054690050834816014028202795421971180910060009500184971642311437298922367027435817981357404377875411375218977292330192640055466085557538218736283796270867597613238154287035660678364888422471961078878352202399105518387043660490346247565706677205354670100990350869009481459924521738212545392208595991295802991718644511388040230485810570767466347911314399703173865842857837812127220653274156448183013036634356722833277340010240964494318925669942849824683861423582537404517758040580384064264608970393316862504753037578736682839673914733859776149476192641292853593847459358431221857754199629991131628530232191785260083119242298759709486451320221152538602604955347879542437197781414922406089180917498208944572980630772027637315966144390475028221465831835567168320046384668908683196373687819146598219287270534047695724840401023438529088022690726881215218518496245487122530484213491439238701934311784159926648912837165853139648079826106690486022020658853383323442769610468282149672605276764623900687560578266629469193868614191062465747715556362076065174294027048644246178387803853702810126386753103409913198190278457030374235397158037639884544993468144340416234877233736060163529313392668631227999189754706177119211895651095240509780388462475936240036845757847821623611582928873600892510650008111550157047924079610070402366134480339010570911934297189562263914620291012948068715262895021316227969291325006914694872589112524171004327541592798022103171098859651168849928655294097782709867168850948743324795807319184059620532379187702243005054106325321201252490024453327654157927448302059081870458428887537772820173257366063184842920747520239714061274408608757366624570419543715397044448199625413724499675747486124213618837739039303785207480493405652865033419801926482200098112382280658676717432195135388484969607062625075956373006452192199753822269404573232481063613326088149268133624292610867566769028891576414050820908523799304773932625096829320927831796179639868803453918130572280527125924980521474834925257553936637626517487910172107436701330534563502711524986231101164706049237503768329663350264677033118716552456119192765163962287457306233191686199924467484317395675484433161575661933246088498406551723018899042324360403958217313295761670173796012843497347162447288765255193346314313216262245234865199625723795076352425905995253681328365599890646386277512092066098394523840051243151540775029280457808382635936614398311315053123051930098599549809635674995576244279055171385752305937928674676431912777646940593388475108213747110007020903852296827989899743353267269776782398206790460775816154345158880429168743614438078472434068257349824573205838538373290446145957103029399610341281307390471832003828266828858555640127407472891622224060122465015536068282129472844619037939880096637444046839786237073101925994117380788531726496244565852679303701063545180153878955217630381068785374019680774213553741785411388585353741900846049829831759014250765684961475032470655273736864013391486101249375663452032725864956010057267133830564724585262003423864617426214317551912608767275982413947608477061361708420434616637463751499199968260566388283095266631490081582318276127342333025425614870634385141019190901093895718320485084264704186358339778365529740357606837295336333974053106465942614080620462594237117562862753950413421664653307397663061207769841011829826266612698723893910347419741249555904121718049374210887873051270097880523499937725577939996874936042325586588525865350397039019289184806182976072409011003288661181803030559472005819281366040448053506402605305621778732044325231327942114457055759452401715144551326557918360506272190965350154438374500645980245513505941870236439756761921764586737084417482076532949478395050412491747516027076583679011476202537800882084555791483694357076554972216042536925245451252285641869014374177431740825452943740225911676848588454468073228925152826683069343033278976952421376575087279084311847206497167750937751453549973543298564347288813657542939502647011328545532615223361073194704180327655121895567580606039601335690122619993967198767706582604353450015588277565767602028994897368710961792385076789617726307592316250560389316089655439216681068401353860568576337113029867221384529209449812992568953677685083152806051872342131196617834468137817120455136223281952362708571038474287741860711335406976654535563245958863482534975040407290549129360569846637142034503030501249923491641271853599740687866810693975501493021128843247623393148112296695668325545778425449259950655443093580970157046234698973002252344388075358621084521665005982822279838277498620633743752865150873560838350493274584078750443723240059731995589638966405786215349681382945744947840661240064468809705879221398438474591712186584421143350924556325578745275682576801731645383397857889656923589973403219317424866830419900481177949545974407958414224900177188123504654977833535716022575777916249011054582007511539664990084667597056105389090365374680136123062250849575815522555598884295056895373072886113100950834506594073292605870014181525206783991901701606629870357247373366156855478676719947557720651517131613490101782486818164232417873172653365449057306273073556982226021915230100025286787974743238871537328412235382639299182319135373790818601124985190272889450062691621528797874958268186346933399455637755394698146277836397618413277887923744857173246457757238469797250370732320148590797946701909217190267107374531592022107858102811031718712140118371123348604361753351580771396532781464734205335363950168205979105402471400883741885160186287634214946823808050742678284996595896637588786961210054753270758112190864151395779318194544130738630960373439237903069701865163531555858673460271959931837558270488665602265654927835986881824781351045742778718771573204948363990491400956643627458833969143659106293887030443270531703682355652191424402997273181581999412746810616442562838110649585569441930235363203587454909362504034753319800154539022527182109818249784340993714005030110253703684575029707532502217015528909362838799978903242131057174119877066850142534430053231745204408256244625832407271789909326600536818423161891422925612072342648047909493373688067318307609566692883055976900991908378834069032523653107879213793181609451800164246731800439510841042704769898002230274957166225609051448262158313658761106559562485618266009705298633037896514945992909029366445948697425540464003654530983207932799624954574994075303514184324346758858733891339121286959837116525807370227905440159183829913619979561471202459859928320413592841879407456575022471173651133119557846115558620060660609946006904825510154310765993899458115617412958019177424791134803506332564319022467913236819482906936422577337771641783294115940220171229095545730783825988505549574576638226771702399751941226548067224812464925824588370665115654580865418195737123146596645253192870754468628194469298958223181384563923621164692173771632246018762797317660709843320711404507241966491465344047327310837021251935379413536134684374049770004318641876227303212889455090931496536249535697180969553332198010082446937533778770035446094318355568519184961575270232664644692833037762265534585992993972540162127155315448332368408313101850016153195340730898519525937160215617272969906955977404541995566013330791396017032781285702322929305425228334913881327668627985493252574012055681684409841104155806944637403338701359155986355624592786066795919022528263474535804254327127946508988388197764041012782295662059558226285259505683464531456108064848584506850521591011480829459231188792714719560632092057585798496678705550363788371021508180453645440083094621845850313238945020604707969942284654785176208127637211419751663349548882251695171672351257949508773226584140196001001350313775293227447916873717396247080169892951978235886632722984389750848032262561007926602678574211424289383153155183114453545841291389197204525762744325531451591265035752807049911841227233450892972910930934770561336519931218910543633124983202363869234042485067876580103431958918177824247144803647329234723347849786715527225797422511057430794528788089556852514719656510659735334638386549962444451880088797003382470702339882832594837167549261982846042566821664682200602147934576880297377973616427326671645100686389206228039049084701882744938764942605176783239742450885180617628062222542009255643045745011239581666978831655112872035716717598919001414367976762487196451061665598111225962581764122184176894123496081051231667448086238477902386909735350138248391200814047016313855239298298381836574385066499440688051289790748106757975791233737203820829317026538000857797427582830077354686809771525838382413933583190602367652924394682368971593967823700393040178523239041467310320608392293356220252048911022954158456710492589394524415618725197492983139709385916819410246278675643568366815035623499276483058800272265310635819068534643761296782751877927440202719393949398369267927912789599977951610808510958759303290335369286383906402780370758508665988309416893293491907402777709648643761360271315184919124237601097820223181477079417310943533325453450713670033765902097809489480758927125890255380149729827924132906788441944957187793715647624764095638177648371845559577469844859673672908530418085180533231809357426567141527277850757634910683063146423802389123173460687939416004397929220825692180614443069292564165181358936144865466297703812740513837676101449137136082576420624329495897814560341608786775795891994210326742445559145256893773051143183861446237441734105625405558300387219583944216211552764581565628923322772288961254524208371849900059597790270605808430625969753781277304241502637483673751102522380281047575167954027866047479063207604285382564392914936970026814101019773444888734100488319877289841437684860471402014960453434948735669517418707088160700583505860280707720879652675408590184085168109118782148755303728655507286358847976806014553590251368811107760666729433405051030324222130202524985273583482449356790769462863240785542992383297324722225570866106923899860182885641134487302794532491909752488248124892075586501966343923938335635254437470309439572503952128679236002224863404103260466588475169429577178221406667629720179742136736829391974205681877321315308881478928655547592396435080496470964990035170687795196566171362731033581334022999304657912786991492522057145695682728043492993846514789693935146473873824167519442986317338666239746604517959077921471779947436763241799059851188898427525897271135812724071861613086901860696485918247766260555382779325752100792181538216196927033999399920893255931756111129617049019967069729118354687606612913195526960700831315421439696279476587592767459007277662895904445527328410315644869589243733049120114941883268332997003041978184709677421072336050894093698351412107427573947948069234813960356398432888620443927318267494734515828762288939032325044322431359090532539481681920146478768903353310568767530075298088182506254609642022502363110771040708202134319779027924966840384888596415487304519256714924455802303150921645207250583753242839574561382105253919162441053606055389860571531673229586408715347353815000585686421248296538832914378610798401691548613397696110238014349591296170700629850769875323896752906104950583915324288857127541156845629573958813782203640818105181353151795005778995553110768334819057825642678232457666797627719705883115827244207610380542876467978783164251435850147944620753249252297836071472879171088323459449480331992280736469633676122503260257120155585963332901414985934082285021981572759475442913936424037752851750096215681514261341922827527310523589469300864324478791289098385106491594049794299301869124966429370213950293432800757795675696899195484626832982198895838590470368120803114036983274910339759330098217292267130813584356190673594425340978945049203300635366635440736433616450853882116243554923138887779721609829129940454764595678918329813587207434285871207637758875434719335076183966255208592892774019003818566641800468528982610662577113675429627553399998088109651668633895658414530067521568681722373034344882573899681731975315150643024792266767111502599655982172363037763111235962183913989258603261506364380975254130045598760112328681869965859371625133435063126547065536185777420994694495106009079103515899306123960307359113249647395996116317677539101491600215948660280591852730124576750984897680670512306327613016753278639772835454246786905543925963682789315057243819018402446129994670213833539547280228349568102869279130610552454073169257531106751775871306993022449215769758981342384948408801537210252374821498839361336845965158470024352414082745967725395780403821778224157024103882629804239207258910255772762399905778700143083647588723891334116387084928014588406128744342567377578672401691996924012680630711207141800743275972635021340647949720516771774997562024192177626136465974576151587633549504985419800534760146013416913038568462348320154201943863050191068964593594002810924639997280439039185381322321579477151932278888409686151544640389531881623983983108362743230772600078877133756374541563417312978041475181095833754060167118121440160888649679854896391718224233086738244794973875004589340846075607333299611048633235553813637280490479153541403757760558131646983568596484635498598658358079217486994127601812692441912994267389885610744761409933192435377033176017131323644655184615328519719304747156434378161031651019928407138013106404669966983427240427527694376341095173106175008956167564257387115363370718433762769336628188324689563064912209199459200288328126624602169213054814492695611169596868247774480842115842073848299561719695231334366758417318865917166158495032310196084142630927368598292776963447186048537738591166577315366632918525699847511772784279102606544349402510010899964523010799688870887796146486901064473631044941439767309648060876715392742960245354639174073289173987999202765287666365470208641786469759211720687928856181612354620518176017935464624823447051751268784991872726159008661903423777628106591839752668924327615117316563006973170090667070748491259908670640739392493570895894465936078632796330019622568478236161158965846225812943946954451961608206347355975240567703855464295975878237883004505215835477198761650277154075864558015839583501252869851865704825928888846128498254413598053375162225958073476187783252394993450145123438979911472880790287350924775736953302344457664677600157955820331922766415351231924968999107451248794543823027677353599414440859432891425077076864303287702611082912652280463630185516512861892534631714256983534989060618673164592671589912542953650823779740293316356392228300524040949355233000495367635592274863024144981481649993805093776485445668311393585344730550929528458660673675307027426129584453860831208623904622694267216276823769891193321253324780839100857535611868465165239671960647250441225602139296349443642852396082725595169897379804810158416011582151836441498543818052302409130101010052411153448941915254045244195203744827253438177871657390595987259126601138218464949215213605886014508032572612593907502726055401978410104706923592510047283701101818866259915274200769107171650901563061722531073702751628809917644458881534211895851700279851257204970679317833699493134218222340464327617853527788013758996898991334501940276152346389122000692147241342523159834065350966364680403682851571215117931284714615240053156379906036865956805212157470911061195668040976154186088552514023931742304961276818114580059571108305484283281253746518690224506992463102220885333853061610605744602354688378689196323501133558800357082753600943631787962336073040272989867893699266706979474008064702521967875196707540418613231794673956212952552396245027343274542276600819891027847298909586360069825019657855020415234846396109692428618441263582997940892345177538763693302856780085166656297270702734666633264516067836241069406934562573857542161739117903838946144240653659141609305459679552595330555059918283099438344511079991404169466810773965899211964406540782052707543486030629134566523707465015407224009890442610348467750750102597950386255726604575557214465909102492178422981363991668306433202072490121236692531113166939468786578784601413479117050836266923722409380787761711055013473324793477378301699543539901469456329035546547196850049344903085933838325218550947058529639014966543601053659715772692536602452950937478253630654976985671513609916653009677872703592479302604697428587151311967930841384765072570522937586712274182258911738228868182112388396211733897287296613365199719056402192189921262960745771182111028133653929751606697616025821896389979678178169983922006646682174160268203913571821679161064627715790571122489416210710031831644332862086944249285597631861487629988338838433894014955457683904457447994733228991977406746361562353874487963628093751240628288866493219428347095426147508053713457251749114190968065338984637712809866240888626474917876417208056848589258953668973073018081219972413376751045614210281840641022578632086331788775809692967944779282773121238553991125018317040715908588335968726434379774963194126479107172177888969732740948930715518416407497149733110828387596442779478723899838511831369554006035860138179831635409754863706224025421255980674393920133319584748666699530493643068819040242157958313069110827015733083160373437815266292120558213297961247664074028953231612150767499580487165228975586389017248309296455327702691259585033673156560483096160814408983339310036449111203836942351586617735045179507837383896610246868947823180658132496742068070645447699145878954749699217364326561737803788429954466955689492532660388707337723526693365525664756947427821171588987652754010593515113361463198468135025112619515459948108511004418128080043556791597666575220639683171391916663016497322066965626647059087976209914490712625068854042514062804916126012140264437823324912182894159040238584663904320360004943708034250399606386109883100248555848792851472066775463331086990388734464313747059643707385980352411084024168736398720288891540555064183883396711377581893625437068695589101721589201238409320428749735487846389147297536500652487947386647374681592369778305281877165450066996063723711451216980917827888371502958468287079142803465249999858642537559639491427394769780030485974128586715575905904941440972330540174739865020138436082959920213560363766364173455811848525288968370279062588421623134030110365236716277670153204905675593179436306013561045815955618735508651725799751771595876371529423712500970097129222617646228891626843187770593745398662657562439998650516053660304351442837324722691533975955899761135870479582647816837894884601987444779780109311415246078185747306081607906398544125445025533470919660672726439758989102090362434182708584351803805434560277626744121987776403697872199450791407539758817516381798688107159369228795632979403277751678931870875902546901230906240751955386964395359195756010297376945159387798175159164159282358985315440525190984029266895129087887301103559395823363875823033066354405743244271379003060015906388849804048957123625899307000188996810345918738557065305040305543664531654601588432125381995543346351598666906494085599537626482161456133156633656564361475254280936930993479644280342336932065394986888373593045696039084502640710074227196732617184565115016451765673405925810574841731208694050857690530306219451686911767263149552819823200797132550616689645625151053968013966317441116187950344715577336989800468761856282535416827502977440487178078644797781350618803296144340954972020904113577148668233660386565472924957212851783528495809337798608998629359865237434285067095682120383465001817776780002349096067112828240972076229575952794800014378774557110995371819463045989960172231219339417350040240012046106936653707087807268696488767365542558565126374304252075430914591020355171669069911572829576944870118254461986996403810502916629955130547286144518994435438887584981789413919899152278738178651549748740589323127325615953379226793936304174880343961451946647274752464192532526849003589728952661927133470209992764354098634856392412053038153571090047484742400672180872615685364717862941516971733497592011803821352564526424613221085071554227404621656935757578010539335779650876857829548978306435719332354172789577068576555243655480574850904786700344708760572360315833378784454306443856961633714701730010830959712027731458781477980741610039964927698722354154463203407677578941981593715475191919060156258387627707430667487723912626833703358487625026011240820949876900587054173909375492707763460864498264891685790007404427059337497917288920366148361777385685179672126910808307193722210083816284432742464513277595546967304549287432531548619084793376156043097201104218443902389258199280413571229986950742760189193909927961804212587334202894089759893105035692641157026633121091349961958745831034637060894917073968235570595283725965974515089540375011942893162786696388022162063998333130353060977352409821295544634154101261737131657966340608852966603383781756185902924076191293042930015527669818745493710475743420669883575361039998594871274654837405864298522177241729150389784980056286280937056360486837601244549007054610584872085962254718255164946628110287180930203023379800618337624671632027006541719764942409558164064324907357910074492375808042049820774799863525140454040433298987946249559475070632962332234782513108287419389203856687767044121045234647533119050510986420738629803757639525860242841715741931193027111842790694982533035256527618289440880095324185766527353005695301651097639896151330846971611651197876811712748780470325932160245068134022042844526060711122322874635520473415805047822932067344859503573248342482229951622403418841537413628983144319233393391600552538842830012535237405765445775501079463281683464762754342693711861286543152464115767071861460114095661158368465156520020732665462590274468082377253940203167334026882018147410692752562613863439614834143635115563365703090137212217423174386492450580681673155476178470180261924600506541155916051550304126483758298495048199337477182557994118268490829212383378488384953128206908527968803198540170501166170383487412979712211508440144121782601904019682087982103882961055153583445581798118055694709337930233349755525307423755722773512309610290182922546364315030694751911640705979589360086036362159690917543508066983491805712832735505684201434932325286653089857440276554382398709083896725297678669073082992637921004181886479221413518303589865252428961699050700811827039218445164415426957598969245647427522460349819498391605534553231638956997579326229058533066980426866066953187890837763253087635244864480422098696852192472928147274432037453755516033833297248898565243999052798300096989505614042929689688491427075462289302892503071330617058643606490571936263862014661949315105696874870960011431935862139645885858193417224946364196953834758186622908965384772432897194551131064874436115391589389471796687847354218100525201177248625203588307285574785963043556922836336799182002037046377539283783357252400842173773111668004800387012174801241063563827766050764078430492250849228326156503236702490383132931784498035602809273319474791370314483925317985865112207053694987756109348050722771851339347433909473419025843542351272332347502606595379455737950187231526203840112242301316153240710731846153173147596260132741828800622029613180230445284010418660348289907500370607594683180018700121967788903527623299452382927527794948967827138638410457178964972195962981156585662474897794609783152456868020153308420913448419369668238860373683048446587044003720928441330452076922484657656137062659093568796965999166953435892042782184718703115339026249433752257727243625437800815869570609516142176062922459758431085875546353500569106165594081346697025843218635837446913093972669555192744836010610193234851530440588148560900970440387080176734673896419054376371590783025431826150866949288045229810414510072627355738484800345522982309372252924427922247319939681630194981979355189454820894746414815210885401897192111452126991481048087360564442831635296846966781369168230959410500214889668774558397231522485578565051086738810846900037403326289112166425290257979995906523428122281437225650676889250153993709928814867337268592205438491344345439503225710315355663522833498348963046372607009909222575311333990794468685874671078570360772946947107976241973427244643266532438846236160078405495250928835645953813289140696199525117223185081543260524442889823618234028000781140029232121181395476308399966181104121637537784478720601946014197763098806982957689490575812453855019533748107847405382333251431679787273748345144609727191855463980618707562956616443064600699819335646446672482420344818245258646734244263270756681521065127285218435929063751382771947445706993774837022965627059134521759205143968935931095149652819817280117502361268101479444597358503955171561686490477937250288782583885985758676500665443036482919612564228860982473202129153526433081283023566876567224111440345208333070152387529081561464478028470309165826981401765331130080529471631557446504883524258666953262943697980215006068744667557335907782286458625951615847575115703800641865296775686276180804723520228284960017099511957712671591990171222662982157974289432349255947706617226258774864757436252833052717917223429323711878875876911309333963869191306591322949045630654462049922161249144111878279428166048102123821724343461072563474260034767819756347068308987336902734966338932693636378480237204070781025768744392190735671779506143357847944266715472172407313413825788615451849681022557318492624791209209494519225761743922521606646732376429626034927748662240241515146298696427505521681090777162325606414545831522691838617632803026862180737874774524794523604871037979390848831711941583091703830310288569839114608519034412442620825141243995532360530783391121702292036016269697379722514018101525568542631796842722582598370436194869220811765023274641438765471193891702765078353427238640966515319048304069673708859515431152126227198311005840827313140264368845212827819138527296173192877196652151129723912605467848645215112807539224412167764415307132348475102456187283797793622062578466863579161915766925587750620635948828442348430924159816740725638672921797783179640433735542573698138525533648964726230054993596259357660541437411320888598468921118343757026830729618597149109738354471750088057051594836785401895070158245434558167095015764007829085729384660954753344104086284367019958352560840346611506801645759158304432101655378942103882817737784862354961639140711677553807514687063453920976245998093195652468494173082594370640617340175097722330152484505227080471196144853783119943374973867170635448964198763870983718215020138858367238071255071898345088007740532648873412537973121266070022025437842868216752430848928438840408499766907401865174309891663441804154974345840144358747768847733014871218071344797303239239325538430425594539280128969572795357847673224125258600846316069038599079150004523999968177958752625426094419965641575848109009300200869859026070777570412301383915143220026131754993793920804219572125399287995465970349790653075485705686129332762348700580707081412055145587270387248429440399801548582876117050652548003090085966624825794826156194815649050995767857921359862510947522868743983253481399478584070445803380776589768738300950074952379716401758768221481840536584002528960988275447521215958392260831023349594636374359983783410099814403181731432414928149210921207583896288059756968654599021165950170622293539934816852969316638048996365699766036558935400388559592617018862631762599885074399259515136986283642701576868235359077889179820355306872942598702573840169133524390047485281451195207333244405194341265044536598824768500638275128160962951070846288880377106120989947750251686594171369937182797430839646072874872297854831864886552069962749131146448561433616891855772327512136033926574421592233284790290039216800802078646524029259208178234324170666901774807907852696900507375470886639333346318131325883655190932216624482378217228601044977780465296372516901341459974500974471380134851990234411964428237877478259302013431622294870186738306351635208074899562962566609505368511009437588841656090709463292365756545372752666541257128565748332402584320221276386084392221588165522700676561505971057091865812308389535212171832182151621932076276419155290394396349838110989736844325893538899352523720785135997985098691707726268223515169573528030983991707447521969290233073703515416401118603036362893217677942134338340423677494364540493671712144190951178005694332403580321500363387403031224051618925299253289419994962478175741949900376056958716234043002000456651252826192182589241755415526968141384962619620684962803859834977783037226212399307457035470964989062953269871998049088902769155538342846434772004693390475281998911631476314035681535627581361078848356624414104008607298813706360821492708433202688499263478888601856276307576927840478251574176304842016307005809327121845199977292523434464534093858319683836128147299368894995946326510850061242485797008266071302441686358633909786093619905368381576464454508526598709819387238794335291396060306178951065041357356844866739119591937634711470776390609332176036172171917421772722120349053838947226923178960840185337206798735451613259068538294826560782151744514643029157890866853109943942234232314519968490007984125737602686183883097342890937851061919994315237122057144740501497900501989041708444818764415269591682279865381638341523035511082341657237363161680960972759688973447217909020804187061065093623567799921168378369335788903361078569411191677565326973029636709660602996562947152597070151487456830424229457895479900629899421065566148665604822748327921467729581119144507401006316559180464102011667278826641952089809774999025076775776690979454307929746988421738998136112944686560685809060094237644140137031993426217765211681311602134393346313158780237725788521932039445534397305640716120871762944139714616237177183348530508469299213474009243530420385870806490069245340383499662829083262971622224840086245393133430189089405602949811399320776144748823359596980960781881609674010830325278865293074926684468033234483506184313208368871850816549104987047899383720127843916889549296852649968261207076573126371927072128119590467085984376586135515165064750502152763653313559518493721359036283543993269761240295115763080624502178580447987958572966687473030594760273654303117197406053353373287121524405619097638680811209591597270423032682847479019963084824483166060409249911700494671778984402265297339407367721575036737320919037553554451935325961247751040928566135696000852900784618321749793065080886174607947723595893010857937047741475803500934188890773130205992482795712177390607245042372428762633338790250159910420187304932956896867748127768553052247574647178005393680777974763768500756515037019495183089983274170302809253736920027881670652470295974978951249393011688886982837570438086357514607592970756766916205698518936702477206710495034264139036732603050691305690381424113915812955113255319793147347037817694594010712670631962471253532749536747078062072687616992251189620942811228704985732403344702225039980298217122445368502323577357825338639370684304515120536132563134134734571698884859333332734030069451670250611463848540472711365707212908508362609647530008396018140888098910268801778575943463217633097974564726526714545531455031712452762654005221786000723352972126470728925238882302389575881682250576671395442229981425454038447454115039910495232982841965810496168181704057272870789344577553318977391430071215897845322122798454450900398871413727773644028139808976566324223161038101055816966818756979267509760786359958828037792542576199075268318579850803682250858579870917570257352369491815398709911231151018945602225714709913552540289189521459754680076863125663668818781935025853284570757582983987406825525434341295721989839709640629154871528887728623680896733200350647769737733498945558876544882116590401976397846468145213747055234977152323165426363272207400035183553090945933130736024693814027279534606753407859715193002087945114870301695093996063264159310674813384169259483079289807090566433531340518069454668010653089602257104576939721428669460603382897305172143328890871614389379744858873813736863180836746381722223524542780674487093086130895704373144971774155192201665620550014533835287683153723267986754214768185936012307385615942070525025856877396752411870487887190162071051033551340683658814994345958854903900832985899031270238856149841903919457068459598051434201254662704025912087838739081740115788483041055675937527252297703991194150955374859100976618284271996761667261692418563269594400850127903331604275065587218890126799642389024169604085846459177576643446790131250569189026237232511942938249246996398128873444817042029950168169682197118356063729268672058564307255464654337554502324283935292180912388580464830482318337316759980208423796726708010777243356589967472583263458062075063673125874751123149993627844396847799174181292513725612045987806804317271395908764417972284558540090148843404416205248108096443293045702451438120111372509457285304575691303711235928621325462793995237153157006048905530369424011646622333992894355927969562580852003216635645894960110293097306033909688986584712414081515174057066758391849190040576913317862635196183173438330788026279262170059782420176366393722446891310730408994025160123039625923992479994631709548733128738888403091268546417162155755158868590641883250837974054988210283605075566939064830859954567309096288974929029104148838953715132602464432864930006293540034382402145987307302764187366492161771557959674715139293976893564215491568380189540251743661302480791502702555290279017716072729074057912538556737720190716826510821693432917444051126064819744238054826051014120924002659845753984977679704241983578796572848383279973642642984215827285724359857647687242448276884898781351683883853633244567554865953070591279344145979724723641577856240856839394464364467489498025332335899267191085504898465581490688528100265571560535526770362343967319801535293692878844393205722643076904583000238681988543090932915303454053804085143790151387753474587330814361446124371742087045468504011435600589694537388778418350726882458574590508141100502025654946735085824244121872439791869954880980420794839156568692433820099247423867167359540394269585220214694954611965447150515419431320959255969891831759328502765433857808257301325637436932130832925053100322711600110027184997572731772369043360528234381167690077748205108521244312476723764944844343903513353408430123879311547753461735170161803392476005749420782490495417829003478780728148655309816405978892125900146268116287853406034982755390474342814024359351673027105450278988284998463700194102926053400576434317039794381478948722005219167666301738811844938125951046764410447985498761767054035519599819326482442000378593950637639919974508727677166457460240056229319548932616903128944709261185322376957081487321268443947323530791755402700258655761548774686043818534387409796726761600204975818330270142886565692106175162913645685825128121473713604811266467337330580014454117809361132736557255615186676533149231404249123331939337053068339800061814263119254902414751428984134122588350059223318799923723767785229456311332521987474159065834167195735683750924958494962767002856439015447106468339608707870635094682709925409826084943730270814455219472689377897702782567674496128425900220742281812167694997200214569381026055785171675048310956313536177010938200735774222729977296427169199374147024998225407846675617075306728287566846346113539598001768260649573386335314427477469987014935767971561600361461044167819966882402462792405731020811696998343386696797133161025942702909644964765409601046141508815962278910617372690859183132134982169191465313845366728347910607046946075957304528234385669573630519385935895645970187721028298850396139854371192144708090345885332614106881424592220569227825654240365859910555247904605201520088192157541468427055341127742899169829532340913958163308355130648964199780488806037506510104078321238781329377643905773066541659999450938475936054023605858128633863901391894582728302421569052954604383470002205447088072613029529439855498246894002678514281221724082493634366872617712980532589395772679164026502082513353406743849306187596161364988222205897106778138950971409291451529871094827009453416216498485039600977408563801199321165124124173476618915910535395706594740552773250021653467108621248478955984308365041492883857428633212931674117330710790192879112958198172249448920590226601639186019326317898680364295762820780633290185807832215519985628624675003265407977824468664772092275547198119305043328425471950145389919900519967877017763268525212748026945036872771250452269251457806422722507649919506241966732824441511261673212796219967467539151161692627052554012544787107989102922855549965250014612467850613356486004034009058534638323223550887465356244785916070107036254640232254800231850647322496519736237960706354067760462685818649205327371672374955008935255637212895055103610472232890435904968222769069263818446247863152302912662552971322235486558201721328041063097366540104288879782681379083949795329424971532723908918437718397246338153353063066485535999785659583405942469038032502658057011430843762782325578101108096466170638533701686608242393008634790448538408499909529816732713512768510132982097886187988043063060546054163782252649793701935387988457812787752799811641487937467046447296135097092896874723395767340462343945940827549724344904277448083018403919224122914920913395198026301013880666203064590291394868020615285014309134538710049902984471480040791394327332055899545234792361318382555271166558304608946146395944109770350004458460720416135988253637896405412283998288066271584146232251274021347173195655505234658369773688537734702229650945950366031322313955275293238133542299727489889251247353266216051471050265126059608639181813933151534293434997978486157299010745011513677639937908158349549143199166547926839268230228788002005563538418410036913333998755005270991483080719108970221378918527161127951294287691936343702491922986298500775302831417592735098413241480065935588565236342972366370589485521294767233669826376096705555367663116138204971821633741606512435990658264936275180360598938704020530500736723236178578610041164943278614983998130428941161728705949856301573018273416916118775520647830010152792023534888445136191539976004712245932273686552439107395443030031375536171805544712615975761200813388379643270499593080053648934117271869059219457814385339976350083488439723134975595574601063173987165870052699274858770603768792302634798135202068245319707653062102934628358358939902072487972867165304567037052456138628283358239781830679451969831942826129118416984212342326524100252464085932490752188855427593012395715855182867421574599147537462681377854660073565766056824820708575315233490681799421820221020888528413575253904313876981427371421441135028372762524786439832616025404293248678776940560424987684084734443545116334704769745890407288405759535817696550083819965878100857997916778556468892087372886988948783867930197985172830155186316104851337473573610099562855256284872817397667971126843654321419423680994648328358484572718776246289647426933135576884095993101119610722464229789724117611356034370029633155175994108704770259431594459573237117213856235869761871598267834187809134402699249582896164079995929799619629197539453485854839725377521498736344329064797862188880435484913942150134819622132960167005131471542863631111505294620719422516724437925924847555338789872836181130190364035621784925372854007404922021597879105396641063407357754115747441749316585250584384787816397106213138500061463493187722051937966566466035622848846428042290349285843624933812958149508867733147353912496462520729477567924262773046945064630023727126557358000117772059421530214508310335337436260854927827282075073331421865323072907336120691718221916845923530947197952112108452641985068147830774104460596499542690008831313512457489551584387488654312189130038928677674385845809680362664876343029402435664592966699719147203305216654478248741313266676525575499603709716614252988926194178596512080606973071646006437734181467385525809705341140351998604739865021040625797685005073850018087863602534476562916302646220010433132155031631052887937067421872434932805305453401932849861720954899584847409206352545506235181557401849910146336434126399175357977642270750752923653043433232565255357191842590398098977146130984526924700553475152574177839579613252493798794543365396991421097135359941436562819809200183609535217746778850996995193840627985215063348824038211559201517643622619685346893537124100642349462940666210102772156073312017823681842992377632039735867752607017875862108020416684614166132608569464968233442394171229030858375780093383644647309667001889072268932214554918526217405461165509165800924618791254798785135901227356157801902763204738206458749882337761181918220263355111357699594455636612765877993694180529035733313458665699154568978944074426228053080538272724212918258894747858194135339030174657518570688596455634656146557585874709071598646542430070705728629034656028133975153675727143474334218056880424871135044040296450197268569789517973595269907827260381989832545682752047958387841878119003478137813109344152146476310562361995456390614418693331754414311659543851608550223861335720732538116756409110817844818051710469006089404026653781029213626847571329846161837054455074532204564648998831754564087565855536217592992916634713983484275718941116368364561504830196079339962533537445133830117797965658380421483175173473242306926290868557270708764291913951943951286484887713478183151271469633866250412507828316210048220151058221541542286551320526791986257389720768387525022290043611572539655058378522739665540905950912587529867701525561693950964356835547706711320565435040374571939806441984672901858271104474959315738108969629834922402012711600161226673419864193394176276223242216866217534293461174816028543750316498502754598326936077408994408411940840186060531736214702318388448384806580968406599784459133319554897031626960332665709525983958410821379488308694090444195110583590087331286288054774772210101525839633886707747671425665466331542774234259070835023701686655380623026081476767818284668326268203727802777493541174233532202937744104130993122754392610266715548777348704859621266302547416128868666560628493414462405611512672459686999114716323192221403696178948172642386581913088968415909907839185458316200728082653540217465767017149722925169184591084230036666127692827048866823106255201993324618063769990663915389500014630130167928791589972677489665872712945657561143212868970054943371282564157637496408085111061308482154495129860930764885078548926413284783911920444905198553438202228629833479333370255705487645507138578901212074236701015948318891324450661497187609128938841995818806423396276396943975792871236039627631053695282121087900015049981405077110128703943761378672981807258181691976673695148923013616584673862931658980617734232347424841468335653045336373070723594832367481221347851327346882943438809471516794943524375718005860678541513228586009390646912872931277402952906216298734227141493991417253924098497002510379980042959676831322476264185918240164729054046123265973233658920061919315517915098081597624436994234159040149389187827399266906386705620219355842099840537292008219149090830399759737003610285885424117659721452232353738987531961484349212592237807022635028167028831254607200234641173152491139229117647592569298606923275027818050444919675443030480716025519191987665762059244783854462100311246782027994816788055888550709888203468742354035429101751711463650539803597713011327004129730619221983931906766979930801045495529412517455457778397030859838550570678336009235068692232734046245857232009531851730954461029799301729649797502517531934203325967826660622049827951159236975454705774998804158139845058494644899449712491917024590754546959766345989716951815493419789013911090129308189732013770774562608602562981856133701698485545046550548155086793444116315063128716908801587739528701103841419042635268117991342168746893022367861614138829778300701656106840366227682902745012541161110357679546288782165666214941256210514916171665844126767062954805467442978708921814467604995438499189221545412747367827933202364992611671216225676022145827220690540715536194906721932263925515818185443047032500599814939087358341359128091631998757598920952564905809018152679669629122178000245660966479412830548050070903014598594639511446132773309499774230660510310632498435801651228980252810005793531589598569130078434011453646489612050303897952256204379057486179100195745654548671011117080626334350725665213179712199552899802885184965661485048130570726882114231664611003288659263403731069930298366125977626010896834722523781908983989419867811747449163355997113090991078323501374364183329297304426186485143189748141333384854204741773611865755223704257899570319400940734796760077545922229825789763407415351842556536843750331186264624777303243127480632369519487356742050055964975004861305335458778374851140086278691558644412751820185819567147123846658656828268014824295139443193843243854793011760348055355381650701820219274619563829650386098509775838494082289527001699226592010922372498420614962512153442260757950362132748520941786927522802877501900696671623338651172500789582681563221880348238952114119401357258561012097524106104139246209839604059376443003210252909099196401276895653035860697442738882278817704223458176585473558010782982755239986513069734739283357846364797747611576573472046393836254595438937952852820400671621315278018738465839061639757851728110842142871358257923475476876093955819860904924594479314972187726195750537573732988375505937411071441048689255379585819325893931143330286080086180464185110037555387860632521731218343861044933392304860169885449644372735651938826863933711302574394711447617739574050876979788836811044568701228559899415805558460005933509890347907258765741192500071378836644466244975822825669731104027498364327373097813509000506175935864526496847939366431564355710004095811902689306701702307033876384042499568754436433215776805034395544843001538423915604947101771353801773135758016632863167358771089146194566795157215272586068427828886638964731605985508932291637150346557392776392509202843443453509601063312639732848271107412509112888779870814126289021391770184701749152451519899771261591514634153430390928235021712060896381135612620486016197640682061418635460876534480536394272229074645675078555528675969328139842983013460304543248499013984131281417940130652927285177025633694091455144914062515511609130947018141434906702443932384809537395167510941482915240464003793796332691066682357643533056505843306021946661872491230671171613385688759795631959276528390577103735795933841975713177869682715450002704918688840428038306136134132762543351315838636702045837266825871316732813369277957286947076056184363585784246426803394848735930951993986768706519975569936108954185089408060278546573577506460923374158234017734531390759300343659299779533506359529082466138985363190547516434739351998389139781561137668733996338492373294477850343666265185281093179349401417373557149614567379990882829710543463031827670998431034346208221810206216887222228478827153553422885063761725592590280545790595284699699464780509798035903615048373475996268836001290562379201684203158833127172782698816661178948806713683109016683314852355170149351026048764433352302512631493096214898278968257998353179206872591843007027624561594387289856912386770788989249955888913353338445773423801474701365727603854756935191678038696208284611524886826711792447649599619019646567749157032035449691496156768292093205709207477070202472474192664673192841971342273476608622941600562293473370716552939797679637757552568381742202696153863809818699449085124603572871432295298870231941580750924081151715886215775530614550593185814718244252220053835766835608160269703422559865375976010114140178635072033743633375530256004145028728691704084597348617118014843866980517129789648320107300620763975305193354294095861311159783057813781355661595054261732386747836812260646465672161267368353703949218361190709382055823434124190421226501881311882279358993391498464000649167925104430107321497686509322820682502870844652023371950980069823358286335064136178565695201484921295170089729231759613074148847831262948372105929569167254727076287139606672845631262670731238998317699510765543694338592346843394329474944554707357901175149008678584413619192160168589070160411195374168841328579556458099057449108277746701696913716093082107116923774128951537172891525582729170811652650951775175622569041503061697681383570036256498999102241542088848685092998657097349332856954788084874492139763019771521755506118401167537919229920170074046875481547677907675335309790096478766403104414569610874616466837248468455461695411602748430217109260207736823840201848484437461585774330038981209148337888706197404942206888684343128340315971417228336935106353077586640836433671893818639621342579854973124568738847661076878895176590909678151957964045471032189389380072570022399780008702613466355427604848056639769310050021485099992744616500674548730153301152935198030097351206670524068915116629839013103821065114178195561069692897945603584549238748202635791447747781466308103294223758583005604126409059974292889373946057039086405432344622604270256825881743478482981555417295330824996623208058005180628756760636150811457180297785878758214188376354966381338369544477538515598540732848195810328456449716205692859947039797367867467972471179859413169038690948163081739355942393500653865585443195883259283326904944516746653169695445838140778831111516123795348190836602725433412716768131120343584070783551849354133280074993871331152232955177938171462114034452361221132174867754786487320976503017263680627800669747671694244483077259776543260884020711235721840802467983543037717480727702012814552039634458846203021681618009048766489541030035840545117175679252048043775562002759923147322222449167177474660158540858835263467187061918455061860089598651302042131114956851817008300485623085070773245330496001743975014866035989760114082566416368807544112492595745694419200377165297854947862078042737422933045555404365326661127456956158324845027875344292084925611639432171908282463607447397128661195820114902414830983353079881767748533252204731912159581470058429982013983614069031270279587605792119071760955359707746652014717631918003049629761561959583822916352933378427740451968584513866457184768184255459670576701335784504477045576871214515806878652819712857322538028722948449877761656957797963240501438222631192378307446736929237688293706932470605534689623850097311301854362772047345115846562470540257082476081744575633922332218764757864941740825923978962463273827554959136864813295978304216278359004060856959802397733784067291903805100216965296137788034768940873186613115463139875348584972631450698460644225610133015380122767213494806853268148540709129610318776444092728579059196524681985742837092720742198044530034655822362256433193429170727711533657834550265325449658253264663795424078407984251048888695189404110190882081616134645842106447116544463776311668207026952629242371900742192821861631982390857410702165593482515935896418926790305401957684729592587744181872262276551879924345574581536695835944219335147722563498774457193555152240822964027234464347973986497779243801862716363775284218281144007511534764759781831306480341962348888638302710171771006359906853677981822083542014115685645482925213416406365346212954093240957631028682525818943965054064163655044850550357139284049547201135688561473489823022647404492978327374591285229405749944482295247567243399566928285623502202655923496645579302881141220529745383568955430483049584447079702797643368807331774695946020873995696194589752319316765638040052599404962110449906290286062534284309859957398090034282881268390958958277694909659084636800015838961297169369923831272839745875878938945527990144773155095205916572991442231321467838732808595095774642267727308200548746279790368455064939450963333283873116920297665920709348407043823749224582510177618432528349885688064569846129920673898186794494392220011988901461086549644143404310448982200374330233994846313097972232711402758522552004300387058526360520923429915042738911674431082379884425901897963158052638096791709201492515349843752620509677559492457526985752845821577447402259373096959949094359679585997057250172881655438826539232257997640358554969285327441611330108652369534036912449906902924346852754257887986101990121202099813876455372337831344614746527490376528057702514703493118687712418759044120057847365265050773008889908667846566883761239247701370654136916056654349547072108374116221174366879783016776352624662331961941701576351136677221419060470868954566864287469242274573666119871541730666268320932888183854651997936955471727904463532043658576005657175423067427282046293757753789971835756857318033859099683480601310205045985533908904838171935702655136441099166948174713566920580353414870202443709016683951658112813825053953578842467394157736145385807857350767084206888451882355845334424380183932781155926781489000691709194232654531530219149069317946411648075800394455895078954620779895206502689384132726506934582166425642251367574326776056542849693855899324471750740399649754440313467093793673003833660194237291006867756123104504989634623935561594570833621786647066748964437076915396537398030652779676242517667201741992300600961546865919474590043323909177688087643511732261927858378736768238914070235461982391679115772377734947561824823955434161138264133759347114964703340345966966719284246159803404774228989230745056918898081890197190813766723818215471252669255732625384752233673066379044996070183856823290750512969156014716571668596948681990450370639639477079765427976094565698102610550032186228124225371695511738493844164051454308133628888484198427087781045125789676784375007242837635985105892852250280144721106341636013806895832106460026863562618034690581621563609214214731992655340996522634265524530353832087205114856087170178392310554414498048807307026124265280995956275520263246659807714731040659063943867408366646097685090065628984547899811850931209744285126539127957020440409284217544909997554413985694639937042922531498838573782720962273126902012863975535960784839712556323628726226901037949535144786217849671436797697766738545441198090715636083377524879073462700176336334114672269323188683940187528314697948249050515269071529739859999727682781367837462650648736658798333652482732955482081038137053317728604280098788160946338192076769774184394152509101443298019595686371083093147880670371477827381392858344373226160002187118201410645469688789206255900119331912565949845653425626251501615192342355553629358868813639826519591064620778925189167541841122955474512827285214026117817368477536122220208976245708903698405594850417976856766665875897049731947074858517040306121321286468730289322270170945535910078578940982988649968502738659146115925318363495899039958747102580338880074257008357611746578089251323418018538747730716452550388724076746730996294162150417933106360320330551254345986659890849395918617472465742816456975517939799900043756220953619409078935932057792431931848060069866630993941037442072713157105441583870897727410781785768375694071809263959905531242056197838870551068110528072346963974889238749620671746114297258467890575002476864214889827024970067695565955427061746463252831428559878978629676824516481849124517213300042847012377388170880282623373574227538074893112818382578347797554107087798860049634061776272953678387419184055837192661870550208037947684771256445030065608468717695537379703993060057852416433780719138997123518159680239533344271372965142529243089368776623194782025583464704787217949170680262733458261988910818303759143174579933630052190520200147574608650053920504819574609125360149020616897127359013661080125516182190823634391496077613628922521342772997108069632686362623196279155972880688890012788869183021753216248030359612718580744769980770293938143438028045446086653461350053635016348290140112337465690196343716466197616381461970074886025043529373472198138204554655398784586623201426304503711473438664820185679365877243482342049022350831000210799248782514090148740933150454149853972402182975754637421106762195286281817880237702652949487107741996453953716275637344669832122680427392527014030927745454862467615281555925086317381137239147927762032467711077439767285735514269077241953128182894834074992426051739976133178017028689500446967298495705478310321799162146142887578388726458410947951030858869052444696548638306093391002700009599099989900236125284064892365555898572167439680534404408776544410988779676075188036845438528169898741387926532467714477613347182015650596502575566025327779602387449261643016351983767016907223850695408995958314914780345841259908358843851957627730562938070417450977241761981664763362875173516682377697960180633916059319184223587347905447981271423833011872318995043429648927767530028048474541821629048423009326811966948748958739994885471615653733555145192642893003270334212313497081828190476463537741003534635123427633667382904706970449510880517451605061886703052155636098133794619858648392637313464095476289883415475944618167768198530341298439108674967559472510807811714942930053261517527361647920942378792888604659853460357214019679921535509813153783228971015193312519599081262162786001447690917127304901005270774484015623536131006749225762630251827290814441660842057280646473745908159630670146215132558336749240615826051801405366213907208619677214371566410566138031003171239076870315611640499750248515196543966074076668591619981642897386150456032022486956243038193984587895506308244400608689090905060473051245861255144168316398485901222809465586680979689442779311564425078130362843658792409657155400957069706038957636727944750941124358222215251414427867587590520978047184975739751768720637957062436513598204267167526214686269161128821757418026692026988945382401495635390299179145334037203663453238798749917226326636430108611791697067438324359809591016697808883025499119483882572995195319959546260114354164247795194376886673601457728017016335725907596241098485236084622913684189535005902385716396251718011676097733501280759642490933055422605494876835114733239778178256934110767735429953119463285139802248036261238343935900831644280833501439881547003634613210738573688881489006404161838265280569505714388272896555783940977687748583751287273633836150888973479080201144392013998145345551097046467961340029244946887424956819109198341199966519210882753746052813064128697082259593473498628717956529001513643729815804641919743810519248533332722548261159804542098361705479943536980537361229114630889756167293107613515320056824455313649374487084707075365944683136356764977499140868687369266104581588037438065924077955619291479280861686688363427231047772767159057964809512544077619933040588011155672597952940736078067121450054853550500492622356351673197196430945753585943968978859092121836017675793358984645037492718553829762077003109300056466119861679698068831788969140329138814416534502549917693886275332492021856104423922927099736278641550825308264130133274967474416453189654414398242317508872029852527716472107941103738328546697311363747650997480311908895337549884314447744611424657982828663749193297912904275086039758832782277281891368187679885812133526011877300661687328657715232217611620543782511765588692164980178480528432794558555527738451221279322662821012122958251963700646835000498264743475437690211799122359609192471924835078696360399434963139026464299606871108764546199838734123840636395956313122087721493429351562570239308550811645738993899555495383940436930461307255894569023726389675388075761759095001870267623561601894795496747298108253385132368255126423065437892783607088202655288862310551031239737774176245795129693137016399575307741864366016121328700042519635315002719497856974091354812512287815230007352366038704002537040845203077088529663327622584539796154524242297323091745954648814477012567321887194036362404700867825409781715301848662421834598196745445471447281159190985770532895362207557364519345388092829350978056410872030157364504903352309628377347289313948405350557264758740621538160239667065904738417877536731806412454849456601313572664457212279621177984971432723652907403832681234172084895391812634089764010361944605551216253794211058516656879684840191331708049053049422307156826886370825616289420989113846716854108670320141907502684727720835561549717232891468305372915971228224907897039197659759915681518467122663842387310223979832794919795000503348433621534820196843268542229631803587882987486242644220969691607091958616275984926733289183860284557690664487949845234989712966695584879918760916146958772173341366768584434700060604315903783693167182079440097233432028400685166650693460365366239594970423524071570803409852409701643299004875851831870940800384261013730838343900619283585563180102870646820483999231374248114775140204664809185494928430387924704539188709838781659275903146348448996251980791775246651686125945611637446333362051930469784768839236119170262940951110533279101060789427353216718148048927662109733208637099558397418201719679797981553878881697568354024115356336627175567074333464036611773597793139594766431453960623504585464619273192955908095330117127466749510301002502869923227250963665874763006013001334624532053697632944997426713387109704498033599036603881342878975051132816867784702212106055612406877035481022556662388230474236636748648095108460075853442179805663945039001541529810686369300771282699682683036008511346704379922776405545222804977864907068030177838178966590028469277456415903742892049437540910997110173808021455699596513802153700553676209148403933336375291473568344598149820865473529812429703279694024418771520322519926349265893134590270612969511696347361683224936431490801255318738120841315841488824475423943527598943967820998494162255587062539921584107038088748955794910666691476038267774930615745224120290976537179933409922321307334014956497603169904059084654445570503650552527128185221069803909873416312396890219703495641491873756482637202915823204558976480396758662013423370678341349912870706127435954320239450765286671629407741245176113984020826831965845075699820254511263035075453109916882789963964014425063571854773691744458296913573072398833233282324502022788784204781682065171156170978892918687079310850112068855626929518014822584252401532846030334415612354975453096847578764885017590379737489484566297740527151097018830059480192604053460849064216038666666870516362508019083095279967362077855721715892920083820148196033112001506276826929417299074193237818533269707808806555486387860163433623159592741287139009468799219767124092159217968020851371397121497443974167321357120304074272339134355271399913604078332599361140592516687676501845841358014919379170880169732636116484168524444619432197755867798149146531839674371060654878322707416568095486170810695985307907648726884327592490386839281564950714743592846019580952003126828491635403564164725726362699991069546606288980420442194502532585251261747684483626179522437878545041832996784927262642202374649027398314111479116972753117164794393433917639158001228263383184997641400114453333124924851524841692565940065045835285718145566961860176544209857731933470460287411339106370874642851269211467121572390106138271461443274452310931814790144221952579012708421107118079285440321435029546585634131628253616528077469177407244558848114818589588279164334314705793181590430769161126683290290696133522261630281908517489347835416792059890438341858930984327836551510188026441505393314080182902505985633863961523533579103622434284474304807998900929170818227632214931421804632539903979852870655263058528542251475470933074862753680837749962120691810661295758581092857640029966702159634338746538049033964214009487282179491601657968177685426866095670769836160484283229988911881853048198567911980211597485303919889561234127943370823318232779002501201582889294690982870436553390261606353007007971731329948160561585523009943775772539140713111505356327136286436992734512317804177273052563554858271701846497227840730594314533993165844218983136394785261756524954268914119449643489961020110988388638293234152566784994420716414903848871746505394730819303998649314083320035541329526627353006662135212257424372099121172672598690571793021779209377841178956095942123409677968400372139343600057372187365187885036599505273406857866192138321229850866385182234425253374336679256413678613622166681935419885472224659410113854923570130983583428959935247148649851595768963935209882208689995821645755884283874218469252393662553978209278625697445068783911504967460535162864083692238299724399596657204156578302908189200182608493050219521161562049959381913025254269476839216631778962736629003523172645064290066365861206356910243760851747522166462911187714013446675796450939521449832020151159357415348118595661181011764496240360667819371807736798092367184425111595924164188150989212346670226135131373405865193823287894356584781646263204298047618024632097121148490596669980327952386316278118727709992440757873560425878111660259806672736107456611098510016924418899000780428367372967861753074172939572363288911120025830986370044185785029672115466369579015657581168178187543169563918246722426388061409323028240323569912857168133589439289514301549898008016058533157681442340120090957364250351496597902858710854418849394906168425752874355868999621981400454340686142573790909736905322414746940165848963037658657799512655735373514790184240797644819634303650860703025340404261927459844841397613299390979065618201390703875256894426134823900698245258919629173114728694629948555674775003207121533635325691315977458248885592542430085130650513570715408704217752398603446534629521325979101859804756869100734195881917164587828137678822367824860484559359847171625227521968834073961437745060263945253418685480929680130131665871351026765716731575906933393418697373905333479192398177644921110503228297043886415881835700996424808614349748918804443493740419384233942896277740642063376843553696074969638953793470492701291445432405766133508550391409182334843943428232983107830188665971741749513015329589205115617296398813263823236203884082222847741759849307317822542864746658233477959499297156345651490847464715986692259748441936336384880162740264286135541397011610522215504195789442418206092163072424301490784513717962098677456402372782207099548664314666872241770933438137830713127007325286277062646987086196883230433410496011129164810164511737069586084560800536020891516154345024953516639439301952055292080014850066398675043876323425184282790694399515902617837285494182570205780192952964642849305072539733881190976478444708753754555569948728092019189494709726672662973221524557311062903946695404983969495903072010322768937126626932807552452767349839870541401882446287079514206321098549012001549056330081382852250808941913930274504935153730118983261792604156421843412246410316104155986939930998129706099658780720267040394707423650695660335646510404913216241153403420929563082055691516973188832535856030438611698905131607099587549181743067429777139993385046140888013366179808847914248114054341501949403481865326344367232598431939320858163538702703049878280571802791685424658294807124543766829877181561369638859591170674611889230497700396741286489747133625557078991778996533134296808431839283696043378591715585568127417714740956613888257155033505567059072644628394898303442876671932516097733480664998731307975705983919328438679781681180374086628738742756503175382964420745460177509281792783770609140685182657268679749352904489574055915244446680482298464717270121645398148889091122901696406331091082876625389793123706775821336510406977769546675670973823205909599158410576702850228768524322849766866204239161154517486363460439628058429999169789177857366094240627416342311574669815473171552395764618023146895024926987230745325293828047042347314065281530890252526505564947748242591116875204114400941094453803589318057004973023906123454475744242051806457858011657319649946306461562828598354472210706989003828580882977833968657465514332111773808113265056741550728484074094497640979732193564684596091708781389581971939068704345643113834016671553386378584782505273972791518522885551379221989835979569187202906930519123565650888334102181310760946036364161916445417602032998984866838979023236255989549003893544403115333775183177459304529826116818270928535050826275039939310120183263835761553802415886217083022549220652254810855656327422428931281526867813492955611788755966424616407270098352198927988049972663268953003835767974526555552539568270641176627828828087234360186090705567458660364791174022767970825984072469956638198622862947175209765959234936694950542804715823400964272492503270867092183888473277340559858927638518615853303362013283663961297684701775295253442795011266144650605801585204114970187179856693024793844320488600874881461418455229901961668481405167956874865612655642107593465663789887394055657780934120223346139247640274566346888373202238240712454937713744442257024789537630396384098846777825842582139556864933636547174619291336696407872584996595307447955474524491827527898801021654163972241790577271048773910878893521966678893299297366514973723056900319816404524170778093980661243940998432956281845265095417803355279048615200673695740957201935218807474720876545422607468627392274557807821009578186226532515830080022323804233575264505034419409322150115550075650602155174464992609743617709660862613082937044455373128076825910148895202685143442517162016639366248014918666758316540926827625924371906678886859511724175576040340197462616024037590696812782062475956074284619268285305302149904604116994480462954224616066664505776605850832501465242419279245261110143837837381802065873772377260592362863914196776524923726309568688539483333182363986703267339665104285609958756526591725839436465263290014332714983095004600219018415514611572251965159972353425990781205951515122583676659794383845644317797166498736837268221982928384014722136677779139211213701084937020835763863625847864094107871878810177912420122450570915580457487605290664296290550754282933587150545908051318156582505208693124945704371549699349431001874645944788661608896760639747325688504448244587935487189037042385458455210167041600632213603589797016128393905009230878358213141743229322610914680026212960654532030461289357510563323138959058420656981335150118441439685895138508458952225584961252657104482315981098919944293882888256426564294759102674763720044230914631134810540360325171220886997073043478068696809424121368151190708190449463504377837526556092058698349043047203716057024301570737915609514480451336092713483868657385459244274483823331461540616733029498072556487192751021051371962862065444025464874252335664679573990376465679925834815517709115144685449742590447655789695039907486466823878861270782393377653399941188095589608021948612130960817013769878751887219937994524760582204250344822691095508660692378115131020939587648065107981605296645724832020532664047064084939409957852491484354300218704629231463308564636346682372236946679974361028521580751510877584276842738988919942173933797304725327755635040331768261587955195263661825646594253777791965234950566148362749639336713647319496409379469984263033639276741200340808813416575002100828959212172004945274448647577391533086995948190237792328770491096653251433427279297155704956279277840970310372706866586385836439114576942682558438766418393387454093423604174605769833432591757109550934880314250003422256014954340741576121719116827171995292500567859070026853180135798365833013881006911903902287278589065074032988488984916897992958953729106955635593115351929974539517832268524825247410075958222480765816244431540701663513262951964645223792270745059065839907195959973668663086742040094118377373596866074343185095250522012821356935592476807503520861180534157824573420392250371460668568660106201347719109071931252871129156965514224389425054555162260233635165989540845643133692839387261357232477292018120646500226176603074278470997920776863757490614120115483794994487613268890926079854066456103835346553352709003327365150900776939605791558605947052586410407268460832037935274321368712772875917526426684261810121524300921599712181649378891709509603967784879318560565331342574143902006140442992942343681750809870590062558543408445091378661492552784378099368934648081996746474557871533163460623362393123323653935025327507312301874728692179707282625332249615324601667279796607732694681618300817299523517418877106211213359924844611849580187426036689158156419428165217081111257159874794116514146498560514961281452372638542142933889540039275235170925012029939820357984009263415075515719714231432831055489191204602362230332213076065524710214476485014470011940103502996728277030071286216920215693260120013048840168232895907353503538306895265333074040332957581039358134751896961487029754936351196810462245391146021888698541463759299979314767498919352405226576521881173020479195478944998996619767242877957909014469461736945913913367370112913370920652340807439495921976526365445463788165128148724675897696349661387682015517857048396322268013513687394697340003074680723351919190925749227370375035141862529699237657271059273423558507646102355480334532439705571056788800287939836930988875611722309792762402670093233956797383362177454672447965861161809520418132504015025837383113280064284403300220038076471551598171423417439239410913859641025984347381682699881085386166958871961234979149102284149152222046312307322374345324152994457617883044117919106710324661017976921078103392262721164868981207589724516188631051393271562740753728543606542738330935454759085721683299158022004981618667179876263242943069001404902833400668073320292221732774283845300674490053615259951942692270336165390051821420120443278381382446545125642924888041313968838435425943919490821596131120687725427870206348247148759114488431948578395645331212277697023374400231843599865523352522467759273725493817228097693181897368276635122761053127559122127304207826259717668219473167298883527407598857946633033457922411101943147167891073140500765023019564369999662478421681667278926136650208807814290206854748831387388283680753734077603401851894465555100370870766891459166964412683417682073117987639438613158636396849628862678791492858196578078018245737379967744306805205328842804913804237491451941029286459366625936068915002519685101534317957941338263883910168541815144818108412483149331324742629022123352491189529446031171869251910921301734276142871007555819356103535296739331887850225296481539918439662869452896088595576155158714455260484481962360020104251148703107823719945092222309112696357521210048251785375217297230023670223841813792143318191584727746693962231471572279814884943480341501036381864591244375500043017720578076065004280055206768638493288873726636718110984547407921966358789408372575034921983139039037147671367269652069630997120360546901241604214620748981232857306197812732369622694876655864826799987696038099998172179349742739846907704157890583788684299128012682738293231984904231251518634697499805853606868734768792341527071674325740194882149819480737602135935600762445789421343829298981578750306187225590428316131986724966752867620722961390345356513250314031664667857627039459271650339432163243205274308149271544302376261492700146826862866674776505731794542370278967182053061888925419238632514575085623162475276341476461917411727178763105846490668046526583285654685572723330219332524372987059744416920352165068442778331897080507837781986316869572541800716620908598965313503536723788919390541815669483455423450207655817697383527512433768364039656292568361595570066844101365944431732190961315088668710747781009939861312992689827246503362717739426634004624019955698398586339246222675349073050105038979154391347897072757883884544677778152784564457844032162846892882037465565732978883349428621590609296090213753419049675670362527641289908935672100669146282491346761725404465199020977201725886499645708366236726175937916117888021430361777868796621362394559160793515040783997336347485445516891671396664762334791598153056392044803118422766702488059646710799755069046832050198907405496291331443270474899403009902397196735601376543741879334787396429490654410093653665983563585033040539192488989442782154039890960254118751563972209867370147481381141415618075339390794588532000281281159127556598005994019373273575514309836997958210561587911237768574494227486065797948704711905880972280057503174656044829478500079507371252364409276883291082109679334978762653746649914875199020034862820232551583866411638866707166848794754844461858488994309028223372623482357949910814922445536961309310294868792896734181710174656460166920464973584770167043866591761907604603419018380952506273263082572982256266379150755381041169046146512259193083678995371792143128857737211662959748586371656730193731361519549154104992792922085809452065339343935182734033868066113608491355078682462219250932987384340124416626626723239078254044798046119766946755160054882257389876182731146489596234205100411165315266322112227834065232122065128727974374390546173731432922777846675349691985269768008324914431852413572403151100476852373504608608242765328915514412202710605755155157555656620276999805729366693662221895204461968296953612042072139643931369322143756332407245271568519938885824196023485801844142585437459633729839875288640102094513443054954653120334008774199744118041833753299055236313124524620426506192281361978901049886485222280907178857229670992546374038299428436770025389376635176026070643186643383914459968811006976563388414091959702793388278304614951164930810176217469737980890737424199385888593928398629528324183153914828046779563945045352891666224094591487263817691554005551849725623500296597308479312882140744034055904865821227209342183134620852325000717321135825050810337433743522984099373734207387478549077396802870137805776600363662220697923426493061820674669806789746968327297548293956407481637666299418242412191721555467709989580811318928751182394294901785659140466124412110665768980423619444448943291265911304291989966881238034088504962100308721555965239124591578389352751344631470436864931484932320751220238167055858132163009233236654999407203615391847428825609981346168205485243236376923062250378197401003745927384199344224279361445878350981648275177613730987054574359262388535064440628798238471505282739173082510902765581085220051162203285735185686415295626938775599991505505331766971934000534741526331413649252546867731906654803415139800445360098597572444527499787438651976522026123598907313800067875618107474392127338507659773079104717299107161866290845908653472207713070110691387351091276902422405698237758787440610129566763803302153139498946714269203100996876079757501096613084432578241715996165253562705623848776658989110929654697536068762727212407488105461103449864358101199962884942392141123893595663885378316731798082419985805388796429198134840174942818199686773124472649705407562612726049867390215822432537926470255637653589870565511966696122000840353004261475093020616358564499110006897774867691483964167723914358131578060649502589484719776792796498048746681467721314169215583282497759629232784536712760660631652498580840669917519828799328631229887576077849536082529670695022303379832361806239469775146008416611305949858116261637447757858862956912880366959891193148849903109012539467930739170812393411859137438945188646932335440342091420541734485792855415432265305784097361468564726067398545273316869746104112780260899650438194327654961083723635424864277625780220408241195449060605288153993444529131045972284562041902984079163664237058595936428145671641848264798806357621410888269437327009540079352873123364319388002498065323329627075659868636278992806909831186169785147788713125223227525661850477866278094411797692378490733888435371286805324465774652615303974354222414176305281114527325298192956684785445138296686769377134970569553505628269861153171831871781237938518796784401494320673912920975094413966857288206198602197850914444344804190702257111931657222954491480624269113539736616719272184464572623234107724082799307712502141920994449782643811875238728850717891610366876311577809864916085957238103076285391206564951777191944128417570191861230132965217924003174154656743501066025213030937103249319978151112978409726838242070485259900179070737634673206571867314388351954662710587821796770087412256379388404891180901545319367668407879983518647734852885646890218670545870113164205906778332357358309397102100415911998285001047113221276816845477888693344263818366757477868125160293242808706919169480110756316400428039955306645058426309743777950545822790556042497376065367451383092039585572650265019708760253395271531854956318681041980255614235376525273419253719015415731109052847529003907132400295014809405989546974862385004984910336203988215975000392524034590755916323859286837327379089533791617302019531708889309713812695083617507999543910584005667933581283835918671170019961188015538282735442674945000291453694466934438648253032025456061574266844802474034715603325898695613572623906035480536811722452002649604668001858922727123723151299236406241201741887741126038567706536952103116917612301267360891293980175413187201214939230399273099635724327549335313913906364829631126422585074973848910713713889254063451076940766196357406063482851765530425831946608321958122719479127587548706526245128945189517133523222736052115770751506488861725714850524318835847301629320340094481874886853641247721717457678809007710672996783319252489619044618758047229642107956840476003840317078159979250405360427798375807892786312370236186340400755221890164590424040874953104842444741602613160883194241475472318470471291630470230748450252076660990298593662163593959532646742572685905628675847960154396724404259062221310519448023981670305358277297858627189346458495128022133155260402579262336492257546791261232325092737920003438050274966450587755727349557951990578534042015292852776888305241868129933637445099982262961378671978267579938413274742527803299313712348446351407954611089593463255753524982863661322912538643214124542356606514549820882776942695914769267076736171546356128012547341293020999855181972202443689013382246924535720505816326310511547907066501847020095525870542597248185326164039083835784533701308179086492685372762028168975014678438559916255230164068758895784558967534262825023685127516479559568180257109938795199615416635460271689591108369348653484989225782578785417911053268055271130757289249711389399497854268187886918834196743909749090219105963771262205433862578317544946788421348170918035108234720652096920834058378231047913436511438653593981633786672982633899132261717258411441716206091556554338985175141320446170516444430165937170987421270580403525230609946634414388588698765201152780138797677270307036397382908319011921644903022954599603695270073616532248555517528352775490835707612485898352426982498484381381339504510341860341723674814880712349741457005809201804853142779327591952325842572892918439071845508105236565977651870873028808612337728779165451990898665235554585731542867866453692340665921080854669463030600245878901352288778846135144185783190922197176685132732705386752261413818814871672583009637575184691098882221920996574265797565855865931596245475676817365337202723279524746779448926963027736624807111488649428001901111788746409722589375286707832253332683953340700375852600457699023242706336651990142563784118659866081868995569350951141934430712434597487367009297371087142123484803995725195668531508348986240741461129401489715167951823628911481054763461034168582321870883015064303296074734442588629095960240265180071230933919253091804594106483794543651425546575456002687874260966236988063763892857564733646880423650574545163923720685284069666343305245231275288837918840804479333895069612238775350489004928442668056520954663675170639829378003823432637165193077105865841813429283189714711975481956195471831074515648849907322928605135194915496893390180591187528882138830769615333077753346704657823737188361071773434642207988526539961841446472086971654685574225336626401019729654014329710678185272048207763171538186610339913059641225372744269236237242976810626262619317919399162423795807020976575431629555483783449477702087387431597485844066847008790460681201704078926230762279237411410819783105244976197865455390281635234928565283716232064041523189427972130855522182388441104634401280621001543449949016834093628461821556978835357158527243422378801092308822634369162422432255568239254265383090588353362260841607135040523508647811506444973386461388253832199054512947364868616756749036718866718552957638179483965353620867779717099737986174355667255236194290941759248149374996373019481563714001996180874860689062501167752397271335850348154610723599401357580059021680896234183962331713674906386773092283083958798448948897937489697054756600017503544964907653789732407793453770081166141507630998731240015074968770953946381977748727201341605716823640901553946765039174104555972077242547224572813302361539023955139179087613081259060157046976858031440285672205667005819741073290578008087771685257436488308855001309689177287768554420780989164166213357521919902225006949264754849458520194906231544607076712930717877847481909906844524064596095346642558044680527967337588820706183987099261890080717975600982483816498342965449710044427452427375681681478656897975574454209545884012128743578274146914150164871777182550666877388348406122204195975960995943141516354254608201624007495323007498467529693712077588232179203593573177657562474269176602421502678566622085300832880282576003667252675406708561639511826577209240102837929058873553682331518192780265069621016957717061450084689486498608116696126860284589586517980523906870725569819957599767508119208500465206783042148853630370024352371805284553685539704782032800319698269641677784262558721294808534839711512495390380996699834856170756628460388660238424730904535556815496918545895472385711540087972188253857750495412839299861796401144304338185394671174069167648459196016918815318030860378917434595154269422055239737229713632587745963663009869544894294001936515465490495616436779449746235088677659367841017079313183871400367644020415033015373545331922332569222223967743992699340522394326797104917949431546439250202861360309333985346993220704996172003506259262511939821258341262518207758510764811157981338924286337007733519655885481850651099810018157993703863074469782095492697166406939825020947721431250728184455569209990407640975980480636877318897395028834988099664280579520350883862220252928962127885445649949751290308784475882687264311340522392035245456302789486852791922710860547387846876877829924592743808948225419277250744416559020439843649595983233499369691014002663490656628342189547277540116999525121258002387849594105511827964530342524245615321971074177779039323212567181058913744663186117297886895618028031494869589365337421291083623384108675077619749063311612625978382523734724668192766491630550989502834887225573816998576668135023017805420971083219936449823755887707785823962225253949534307868657184177021475955885772463971577026271310942791994836511066492083423623392117230333958312680826702354641994609444668943826712351316565303496007242865432599785150050395790812474513051592752864655234622408071797358508804191340195852380223479420260042715798197007903237377173524238933463314383291784428811042250726746066014117787474949419267069786905179793387314125905865410964214695933668809708491000038047712188497996392528903915645138662828080259037639151311952039430068686261010769168569633480264241658825893915669966505625936704668919444986454382209493689180764334843976665929725454690126435055675810446864487302840042867447400005628608703632539858083946419097851589040814197536310101148628811069854166040737145081803041839104646481765603832105339893233024367969480365071938567380645101686558478995099584297163697513650027352642163709794959132583585350880454840668736289712240024372804648379203944239693726439358691620937937317111957719236915706852509030017835500299442061342888859203813461432266614627696099740761877839551129259995156120305589713919390959970898315312210406947346894394228784056927315016343899645790473605356750802525148138935452200808763232200083690609794062753008373957131338674838756836886110760195283132941139851473201208436217405444336884336343999423483023824790944057895622140168316842564076972576681385467593230428289688259165920018524160983762359243268049181307094069455543248907114544489158677703246814211575962604753836151650119632440924673156668099960641593892448827992409559702797330642018509005536891567414377044054196138566489585175525138002809960813960146936428762504764456275800025032148461211736615634616069564927877155850663886522855065252703895258407821798750329473660822965670848378125133424552102810802318532927955019900470835001795378603804509383527334615020720205585902674594830958345930432212162555041384225445657262733241871809350557657563921650427416035521557060640876760577910803850339756024439023592993472349186398758054962146519863510792568682396663929783703287383344059508343128774996210620715192518313245095588776481658700484171374846736617722274392909063349481749544062086741616628448204904712601349054045590997781977346183070938777493822343825221670217105474219826804872585070936776280770051337779184668832850515491207314598214427379467355975945648780207777274214416019587566934732244825871977181403048887305531237419237855106880458536079694045095597908152095291836712185483256263278726595079185783556879805157083889547881321395638775052745977548604178637515694705283591971450040679358403809689689027099445389484679258944732359332333283543501972256026912028631108892535011951788149645282357085901116296563849782354320136711641735104308563004253634883971059554525773672568582374626567396421592996147812809076684660368566995333155352091445873743228075749830947786706483022088850975624535372008811181498184573438332651378307361795196498044037334344520097337456316304676638658906121056874788418351907158253838330161149623724277873831770460699643613780447126301149803867078393007419837830219858230170032644447073178310322284194471407831315633279259570519660988365043935319912895032450778338183100923934325374436503225204236578798247109994148915082056116072322206956069395966250711560472957049697233344261081252255617475360796919936241819108788222230465131953027884009886421282579839911821917940658810206857975501261630409168390481240928811492756682016840420501298340139886854766371980900448295704475035242738911821851047197495615589049783624324391467350454078807060999570853878840299253284710511891567556405819279681212122850120933960881285615494780064263252808849598410828469118231577345819240033598898605040507835711324539166927362661297278921334012256665144925952222709424252287564937419426501449463080292297961923413031722380899891729776451727815862796122223776541268740664967511933362125631840339502059650923903133837417340191020816089639482852231654682379965020436211326676312272067158377593518996512817380348679256380088292297259265653580736006887894656115480482404615927898741478520401305782157316373101148856623192616479030624687612183353510974477869163370707362849325263245068463352147101079888537821306457642192059285681082455659977420145773175026637482847136855477678845382031569548969401377876389073195540541823921909649304172119178267131435479545431724462017514170398463504915171289587702818423216233822826953129255921099048708459244027836180415345824713171695766613671861508886830215509977878943669194846063913732006549765825940571018644165797265928519375032654134643030697707262414871531075673783033745777714697418360361351916647620292568313917877703002643762717220125982002227573825393543114821929750506152671365400552554895495233932941595450268161735515253773206021332896932987279989945455296072405656926082700512446627714467453563088640611808162609236516466645701058586119704291026084342332245761419022536329857118257298126071146606693223241645973449693973992388702621836639521660610776249909119201365644114213563396220458675836544969212730711933363836104164684207757655943003191527638397079138599952845864574555051813508159731169345898491850548737618182101530805409337102588442319264497476975076095317115461804793703203960117547394537097387010207475549180458264811349526778902230736056368295328520183536751228871436301836128474719542943748957192937316539842232209390769829609928263090432164333194379282718294813501047918654378550190405903156204635206004114564534673995873588883141408881879858097209126164485819652999229525569715621336372131086907749104981443931696828050059713113481668562811625453008690649401155828939442684345814444929237118387008478287233634483317485674483917818954679714291748765585028747026954362384409262011578175633283941501648008489450899812390910497356390582059796306717338826069653630297025456940359822529140223328700514737105140834744640919066223281355109759033098661859218210979618747983867863906019289787979820334936890222437273332287905368370593856210895557785635696431259615348114167141304683091123136213446636714081201615022794676507108886825249409128528901441825114056408432946784352418712846763552242790215506450977945219681368799527948686958881945525706666566586055140675220472850617256126700606302268192287677298873342698570478083079188019277734539790553974650601877976896285890407045650902434101482947773058600517703676301698453015098429960784971789607160535601875037752771213176283485511277913562242735597003963945473007004749554823256728488015530549771284646271356376018358438675855712456973400361578042574312657693456271834520831569681516848512272655495329869322285540705344446483963930709432257230293650511099812074775929459062170576876752012081803268600065222360651027308035078283107828450411518827172991771994959734091962366428399735142299662991074326163264595066670584267699916316716918634939867530519585059249217570654307692840692982945314293963926109702357056487685757497023759203861044762250686697092552694502309807318735416942235938540287371748573403874269576385635288805610552482652504195153416071472446580370885720527524730027326798775075406103014182207536875499865302716847562471743758053120685582001529280886516978578159579821432177194320292910084033890814676723790565900734584294157995774537007928923854711504823257035679974269717391706600384694444096029431867166220444397082941194784320193176167100119736483288494346780004975736923208195021015110661870273577402102501146679851603299056252439969028791073152987155156871880962846159551739447012160735079213277513589464925378046087184023037245706154628749933257160925031881341800703998838389188965833436085011692885819078457574573730700587160239972315246785085169264245270771749060037259781469304883900933834123346806984612020257221220746816300343207934574189069985245529926009520956704639484925063423210423010612348464893341286895438266506800310341683606277026351466030102334736933406097149288360720155508826978417091723124169902899759782822932715321418988635019555779533670212616591565857735596636283252739065586517827181131374028508748360259269882368504035250160821855768927083000233863831085745755276077856798830147405895843061222310231871432477762615722798545102492991186476422799236121141785178425383710696529677294008979844359256639993915351978257604364637226859910904638636202488921860373985024363245097413389712788068718856945737258236168801476223957074723624375763250531396511848865653418673600364825597693113604398552295691455090006780435527189040957971796877114474428884952797189600653738346111953074182985954518092523744135978696989748461623588729303711659485718320563054503508766437484065166339442875689554336262418629783557137576895616833503147573193729806737842447245634293602482200800932369306021036352603675451281046649095976614424255877532715367041840093323524778175322564406738306082123524809229193601886579883687293399653184494208008468110601874235909165734601431921179643010229539749786878224907784661535730904877674352595719570047885996069742571450143731700863627442344203079909350952641789570538263777294348329992435080363627709226399480117447730360347023436929764503780499999361468464243883020431431933050137894675336645157975629578259026952610127624008893194199706598393319371020831606854062556824365259949428069255004919431849759719636979029594344568144586867075058774196991724839712737135087324120578921670824624325777872533697915659938767363930751602515027998675555947437851022474262523177061467672889242622160268099629996872225721038498723662950663765075136787490363099205395915848250701569558167626960452556734494262115939300748557683801052196240449530493339969049434950766728931492485227950760246890386651768941249006831768835972599869985275999958958286579571006661676071986735983170925384449748650596944901156818507968698025833618267427485294451934360121536949491468722818897768084637398119571706891377761193626151697394859822060705729687411115778085749974960281245876717637135501799116336512217647350506957632386193953920122973103865213109430687899345657955467899172835389641226997220513896035942835227382242859321401955822421529615121613029206038041676273397457955270412480372599008078860975912066609851280340798820906777454406252514317019536244131132301227907562026843028292935193674813572894844187619393556728823309496661506448959321215872050098705339434366558509539354087597841184661622712728530352416048283209227573717416755883774235954315958148979516433506366727476216586558223524807911595924662978603015238968493842936140525316686132459405437752687938668967960688947367841693089312734994102806610951153259751833769570542125317234637273815257575607430690752912012792883665007198314883255416730364376393037726780249203110750273273110058472532032919948685582833413590818986809787317294212991616635086059443197543690185091743596687825574609589142489051837365721539297850840524019894045578976216807607911524749414411458763267601642506723670677384839544376861002694144787547223885433243432594667445697406570911196444656369276230902554402606328880776018959637092105534153547863659941627490852264702316507056078923783125057707708980323866506575237153287105383273112082169158267592968178277067422391679465908853758520826749088937479249712215163809181392383488416242639323602346183493983764523225608874113663544321016392641838363653497721767797797994866982828714139183342410616825021983325887190986101575758869499770518722186575279298820780138838321271694630574021476745226550560970581906182093207111467389690613726922809243431389333773755925585771701853262874564953619746377947357945141843848146694320122714791940305080360838168565177783277967500524179742459313279512074679672388439903496744752059839851934347991061758662417697844072055476903320993716404228218428995081437435879158186614518336817457643825637883349697840246096224686477845067054590086676918926937605467375676738758458249984689381307987517231742367187610870596524144430539670974622860284540388615599995459159437571970297639655227642164041796288417074354737674973338752111574401930380925127960768180814832535308112880435708663682781723950958988924288572749194092260965607150131679956701816501580831412968720300464782892897728826304648049646799694154778633198172058502723550584660096329488167115888387591841733855499793209658274754543948084319787958749165598801339559552382631508441329948369126792973992776524814308688825657908973751501899754213055053569646568636694452895087243948021742707968609586418860909614784938660187538975309392655525980320225262614713674889162796027001305996622731609033125040997563116433895028309330993207908183715635963227615024127704532088786924639675584205080384386507984874957381957767574442842483766912475875390819740208682309397635665126169067164757179214113878813067269743270188134561552572229205607840386611438066372261102401992618169883454592581458093257623384344455692157848657843177656680659728342319432256639795105120265375750700947437375684700929533434455376661796821680334139026856883451283336981151011369608107498527422574982768818148140342599292859430916289278736036390134605830167866779398520568376411622742779664326058312707366871326791334396293413160628633250087139173657703339624927443956314087059159808333653979421588176650553363953344884939743028001885812715168347363320754177524212339821686752109113025556012262803120035200793970000310634726391004639647203075172599311035588891478633539360921100297584655978222448309287355539530577402017247949856302707134996973810575182469377844844951542390289933201083522030136228445856161432790838044875863057422774868705788782479295778331370732658985851641689333073419912625583652132397241949398945365519748761855508181834349368936075383758150173777239307188403316370002756487248188350612363859972073319421598751349816606290075737108478053148191337061233607289693109475838283612739537279673657828504942983587093371095285980934059295087305892087307502519325953863249938709860130932140449463057487873947696305300056503119111497339109764666539872985168353715409817133290121180817857986565868071277866308996117674777147087393537469642014190402212747413235025822605681060649292651899426528569988372686655699095069345789672106127789321940868494542536037741007065065429181932293212967796614632066481811457754921651110727307655921388635006106853499122017547748241840729728136954420279137128468815907891172435949320660052678086594467632305487419123092625911676078589327002892389552390968584888587088951396452049393781892141371428651085615810800446699758082068911444191083258233639042604687655265297831655055718134009942373913017232823854386484248515750368685971085824426561726372763737444244892587433289063353443737747715930023623327282573188738444283120026889728340688560619645064884820512693066013108023840987425571515659959728194739870131949125777486717683431812996810309814468003332631330548856525944872357075240737736891408182308908541867994037622140713581599597794524567256784466976651204561841392218231326929961766936215288074727132958109573200517081534520544452041194768409022675320314036903302898561519209238982169711882922611987300297351383511109476000568045694253864449211326726814038564313127105811724389467306440139827657414453090680216340843836891461878525397513501552963054250645496430070965111228540146661414447358572827298859889398123544947231734301123253992885881466333613366021546086948773879088622825047532965208958821144866120037931890340503953523562390209028814360382154909194246552280095548173562636941568802536192690234983456146414177225150411795450525919342736790763118868217021460547041853148150739867499292954428478588583890806578213989675639020203831648369978503403445972464750210768102654239110302007399557931643265989815523350330133868843389436720724838456473539166979097948897996376884239766443397602994825649226749602247118313682668621022173493243734498102186076476171781236955144146618354971887012989761820605420225122818214793607078097214972002336362364048282201010810411793673929864625863717091920308690563146960079686424001421034267892052137416784515203090249074059777805008748839837628526156243263256745847535417569919682853473310603659866067132918111790926213343827523366160625885105084014350824777232630356885299547303631079243989148449343306218427211466789951331994545966596751024159619971171300553262643871529069933439518816760322449414547567358383236139044361233216927977565579959545257991558651991912350061240894446368349691681797172202758158964973194624846876666727085740663381845851186256606507791953760831930771913175368826675554302176393296321679962833000290043658434643912263502976304906827969996782582133879221914119390914065857581359156474943464786281100848408018193241677318815348393025449362084604701689798948189048353243809115666920833375631027735965559785520878126758902123025960327241194387759313934578942585357902498049261063658545667791580562495154961132200963577888785047707259187599136019814714404403725512173235725413721462461266344350955502170820126280685207321533457356305266483578867085208049669214858628523145142940900194868700376539790661875483863431416867737446219692512308301752852121725021633387376340061251587165251709630334235346631723074090410543318076894024965935967298462768573180475208241430319320197998726203369375224747187086550768632750451667970777990717149100044044371965141475020837326441553247427105659913466662584711301596448270852666434874466133824682975907644587343252218303038619587978004188600157795328678369612557194133672983421782240144039155785197135991818928451550405666732060538206555510947370985388230521903354265693262209292531408600720163331323431738440148512646903407730196957284408302541989543051533948964866109299166927835215445417512234458607588466374305325170144656861237106670038055573791723643902072454283255642818348315854339495452345168416605297350681010676833425881770269708940066944249849533201320118251298147136598557078237926075020452590107066117881644649974979099312137924070940569459951071734288698098721762581200608513350203944676281993927543285645622003649154706010818948141598503293909411442079652730041131314075777494677927556631681867503490547917748953239862594143390837723516811654093496638672597095882955228881609396852288608024573193098420568277344247278385232482745689203204198438740324481798626519264522984108169139664919590567683687411405865049270596461683463253288424697748842106111974855796985391622154010080351564309230105750372846363324880272045080469764015732912546934537129219204445532317189550093622351968076868207604961295821018930214543280342078393608426014568137011486520653409967690959196016259989921610878426485662844446650639677912823506888290334725113484429209756566833725957994856573539540483236520649344528658875896414216007238851484754457178235736991501423361224320145176320377682724336577818855254978933183443657803997032785651631949089475868270843999082053322458235112438762360334813810272711046909304366329208919430992846733863546917695355238617851730406956554400597423589833729367240089644655050726020197313862355286867656098908979760936677774118750434163709941865302205508815176992382869973524587423638799296742372463457221474353928112481033514897998604970161547169496213595699982355108378419863061908264184201307120123999489925175844904806319153506416553836620455574467068465939368696729324664611366364754248687416700815764125382906426495961295594949212827820624879127913250217246887822612385632336973145443562178343493570539877847593163709620624506651337924388673351059092604045837553481982744471714545651840435479484845691243663123746274599990890423335949403594997461353310185955851055892896442158739922799166812363350073692775657170721712816751047043333004586334595208361677041440870818430659450437619871907762864906302951037437625414129023681830192629247712377391349675010452152304500462800133418366056697314522249959170215320369284343979916458934705546537412449933218695773657269970419586443419853414356332248587020613554215224660823733378001191084365355911716894618078599069562572144316067304169210365145628371549339169996094766130418325128252493830252802409071541218985089532501698648122907895540859171296268573963959481612708915743740354371651430600903491970779995004743592780991683077973147148276831018189446029377531704239721818180326770220691773550533827574652770015400053021974155443162055649491840550789251521853257900485566788509179480384943763832827825532348765690751509375272337530823855883389737042431062406326438630864667914497515715881030701304265313830268302401533352954652356900613954300038290716766416763723033546133355591999286737808569724867226610207069554845046764694256100980761526253770680151568916787151034673075273362982567384266871911094093992031323313480164405082012373556953847175547029480459551870393986124617662316538910641902426183734250080086472797898773698067698542507138463860144002960409853673595268337439603553480760229093072098609953568979277096061403501486826992224498986795928216183198671037542793696195131768362337238546000262025807978201651048750821971270461518342278000766330892740747470130155272268437462201519481545440503458273760322607195379962650533663040070271353898239555409740618661665242197744111633281622015069778404367549698317271708214953381960675629774318282639696879513604280966949123579763259062419366052775361281088034367211085458179471314313189556248501121688858530343033514931859956605413080589777605498797706336582150827222289011297339458431600576872873270997788606341734733525848090938932228450990149769575988112253245035977707036214126767833703234515090765751162066170402115869028405773248056049186563506361057799757053920980904920013122111157346250225846925979349931793454591433851071196974283648068824828722261381005923033446097738947067934001802212299204920306341613653402623128254083802028087700171323382197815138707216805951414687583415493101678894056647357750730481433639422985116725554677320112038909068444799789805630575263628811347588156560686047465278355733446535918073691266775841529257311109526504350644091278455101592936187393337569408948214269945556019381186164612141975172493500118203235614821082703122876148680840850211461894128099709163011543024959352526260645573758254911616934809636057747260033856713350933905171629339347241898217545075603319214955719346177575843073772963721245179338898801938902183928292903490487795030861355989141747593001056626365733065000344889051846205075484659923548281881968956654665559986605433996186510452971623564421822236386945350236639473059487742925640524586782052148323461858900247121451138559516994545862748926458408099432278293604675733604052298803129041416069404818166175082393914458683684910999548927983111254861734903973409864977311398828255082457820886155934146237524897738285996566569600762190639860715736491562870589677532256146097725406394063578116361900596334153971051816078877690423561540903325754022127187854822758428542707423831513286482705039982454773696226999482178377998614886590586654005182940172387519555899153715191375796570022910714367576509804098647845571431596878733126323899351462820137312869284077927263810538792513283837415961625584629864511463177762758322236352098324012843179776694164358618629976305302806363872402376048396422804608329554539808734342428081867940193658749320768765169336519082059344809960761010429948080826975733051043256958672505786432026868111208677086935875972939312305943204520568314525662212140243977240347693568727662877252061019921508581135402915394400264817644133934312076990937353437518097568208656577768331504824603676462029559679243447287608156872308045055394198570208321520015178641784761389594180188826159891209902545461268300070963978856348173308745194093495019620358260110960884982041508724984868106209562977796912200440379916304261438469996783520141383845542212095847742448422975939990336406870143602714380465092669751118531044982274386072597312764260961684205793493959473173615330198586416019244982021064677720429630362958059299284795819034997758967008141261673073898274868020872087079916898976540379768154398522792313533358092235510339621105482551547026940301581669189162457610157356936037810988401455305529515824344245266885635269174556353487280865405698223639139055589878588909308146104844787111832518410562016415799454885065104509927079640989516683047084505024915942463641977743385970431892523231206326709075197694386493094864547653530788327443345541912996901641454696436012301296233113605639492082928288617214117718286123257977980330411561232874576320512986233008823105579566896013842141071219059846888176446226160279314848230630497277407941534234195607360459194943786781933488827876984759070033458179634826201533845002682040277278409394794306634806217354041757714555883261443238695731300384084124273515870224282132912894496564034413984864018067689434676322028338418798192456708689008513812559227190683865662094806786557284012252698563431392801398676492213658513658760797019634539109002757085296268170348355929130454202148342878453636283050556601717976088520549617060874772371851855741162036230743644911750166209642666606202771423384967328371300637268135182792567108447267729392727240249511620530241309500461517229150025343312039951714287082909123750332806887067784471376579488653142005055804298081263115022784984126985265815804177279633110517001083218336452805218503029332421520150912524709575348945462884158167706916705845422832122659780189001449154994161310778579880087962718022183923007346548840269691142369402443601383075858348457252695915005076919325288642049843447568476046315988462914996287836698588925422965303437790654551798527667020770856707272814965051593631601983770454262810079453095891436809226397502562950393499284183120825268799446290065835402065779895515637959568724323473783485710485635858372653268521150583566777420940806584878157437868289909267277512267614510626471723255403857884053404232729917592153126272164772000312940097601592574284625047340813322639992473233125713940909630101046569098083494261022931144424934527212019790433081970735861356361476228066206181544585276214016263203646549698453560435337251129042661998291020406072278501984794519791362295392734543925053517694869861155426706704285537746500656022972834651072190524662545246027429749841848582168841979658195695644012421589633815005678849853139589226018415108914984134208141723566769994982974568368976882963915066639625120100553686492359869401729218130361672356453876703407438529333649614308942009322502479593675498078886079350331021090281226190600686954840631983622585583309989227192466304371804052798621260849614433680479855583499297817892427979516531674555934870645582373174241572913853862154794528872185454444231890556244111493129875030572341113959403086443810864107038343003333525978628033859121772387771272800453950658801182015383889582633758291934804646136813428774216570456311798026071288797121625195458367600643216609203677399414209073430373050663765246424230900122568405081290281201039301790731012362536673180135343994282810351816003017466957917664415649857233012957792714213826357997376759572692642771088347724975227092552547691005160587354085063388444633669269294507597533622360304152582201282468684652704420282422856259103091154712453755972153711893340134551182922513201369139884883742896545483262106517076237654973099958557015365569128754586500556086177522188111187279182613624075552919531774630197640117924904964137165987247716319840949002214127322492616004906782845890334936353398412688691940440384942145670725887096675202271891188932753533474354161039920325495580405734827969223382364095256643971804653969931499568922719301311864402069359885499487650340578839556885871171733729204790825492926348793920031294785145823556344666986618408834120514085662940909825887812420630157850848647207154100546225617303352152388544311398033458046638376570973943047911135074861646599175146934736141140860141790881802286212832460233713687627752343968612442540598155148691854527980971559093712005909030727727867781705979357584629026777267097596911405679885436769064221597618410332114036267762869250405693476713214431289589291857851846208967664339007431708899699285405374244676198128858797623315249095920631516827137605891633876247787564914573911404065473996872236177094798415984668455139991333971013789937551445122308054325207423636182831293773997850787280377547631192513685309466836279673672811650196233660564449384583333786903192099280771626082206440471018972793004345349667885181551564312223764608010362627283673570693273183224316500517306103319872059291950726888770925989252999923950297506605195812000402916351898559008533761647577892464025547865342109063383669309647929029180390257645832775739152390133815612922470200061275506464192491463049481250412313218540390706002573607013625719684978632691394361116326020038082768994617401001927844592833858680325417624970555168033775983176085144435575703469589190875632249218369078846081087967258323833614327435055562890749629362127559282479381135501825515484294227232868505184756288131046174372390535983501486763759911407491906349558419437702472280384869715488702448133496201675870581031144482453662800504028458723450260667192593817575761823218850337167338052096637459526708341578628381757977118727502939172561931264545709803748409541834537871642040429800423492907643459231657562461084950771768988339723449286320285172371910620033658892346296576726136892231444072070882337942297230208828322777745901363970139186021784840725693194849221915393535896092419151396091673049073007149809437750721715502609867961376177823337835618578033202316657319793351042739609370690569218588846494438465240207015895670699573334821385632829764750678233051403982228919780686440981916541931197422278392230421244735841902474676839623601771531345063419646125746523133183070791279863396657915703317038700972188695075061206900237482163707818458170098573980133990892212291085426363823751099104192066697088732415036923035838380388655426032679527040696252792173360863393784670537135230628153018065705900568043506148543715589574766327097559306074732924498885820880231277151696667849460938194063702062553750960760488211584525277469017877394718420389608610849424204154358233272190440337780504675759842137773110700422459159805758562658129588898103295993065431915781147804145112109006021954689145086993458848459496892758396445641636660938102965312728592494816730165899868364045117078820764139719132126301353455873894728151461993030099802538011513504973896317343440409660968110403161854939590646093806230277934418894935517846961006231328131286974286313516878944742826580001556755175255730225452578233639287496983481899202724887539922105677021291603899843050733029689273316198962468079063838794142764246846913871921523218009690025156105650237255731509377380993602744825674178231933871055323021855042847384561235130930014857698430485370708170641750558388508956240927758310452311523278673033264244273593168808910932786010554859507825535768488764724780265311220334880204243025692749777951723032848672959621617051684514373035682915786602907827630166056928388853516993861709543778518467106584774677969727865833448004290486208681498645978348576626236290800410399370721031472386534540886706736822754829466893308582580942110481804904098421216723689544365513911934002298728697153478183607064195013321362456928229872238904212517617287984592085285553661223131959103250134958883769138579658298384999334535823400196398368512710830115789130322471376918361909523435049462099690462012634888009005526270874503413392321507004377570055618153359585335990239609160072335990303647976544856511759796227972607286023755538353436752173271545017831732125475432022745368672347124485282333347484135866081889952892248199208524494019148103874659074603726088596808297658419334873406422710530703000868800229619379590021583903613751122422034345194659293204941834652152263301067501257550479933141565348420253123821535320437192596441125962933329821206293643301142431036071154389379871420393540701802239050356701139318801209106121643364395519789675809471012055286866614968454677350058618591942912763356963869317840096949656450031363275741590563479077096084436569053804191671089540984960168748761759291568888161031920540860970288644633642251287636087843008801340247672786502507911546124668772660376756112118087066521457447808674899051439292658725199308005462191239879815977542108029337763898901735239380921232079124510093531301188802206044689604661442597098533371729150058885972898290556712193609850743848455760711099628785109366714885474141900956076153313748362308785775581880317940459983025693101954474957562529440158662660052480352326168540370107610401588408526870044110510375980407459298914862957629410100091122576725321678956926868593874797880164649230571719664283787123478821843437822610668039461073067304841644064918560756676003119621606327038617666306636221906001605332284033403155145300515722850722725075078185891580384233106013844907817546041809831867958532687790909560406104024415257675396255850904535394771392660548365974526739576675316461914110113573295154083374037924782381429284914155392592812246588614709648563030413599249599620758296818654114980073599187716887112813995756444637706947765615345923104104072493350715468295873848550297093142540891652288885172738263189329597794098602851014064993249078074966717540183865503058883458451499475728789617875003240046614258702953551121420652607185728047767104430846139266370977105868375293825755987906089726358504379967774346212045515994667188551878815339174687720703144083686270387920097242026875362402402857148729662602109312615841048283840531425726039274313784000520906531468170434265038243146402599265112879887039678866954488879292401078610006143191661144426524221150041048377155425648187494667244690489349206037033346579448121839110651173139026879639713819762384549380690705399713565617996916065729242178155669823110522110345810370543442747917710000343222956895769016171701381604440063649335867757695655667168144622695117612046566488385230172511882470093196651143731852645692846126218683663059870665075977305251501235439288164193733006918385180600002564534713787333302924366220381807760247368950561193723462025148953193383343933152711803679627144186740876559220902907843407960726749204356962680577914564310346930475186809525600598409945396655112946633417905896903142653208447506546217851846399646551827134307046345942545703715852226757961070159731309350254115077875201238566323444110514731710100669319809135098395777065416351873308246115137503190671216550997955718601457887229176530931188053958739870414039727764817857157316081294087346277656329438853868317685300257224751784925572190619707576168295349677729690838034312145587046965282420416120680325852182484796762919520406458367428288318758330192532457787143875919024847270884163360907548650523501818191540479646034541409385706107414633453869252085944217707911215539354825824622377733932193544049413548246804966100866113267075614702993052811620570477879370627237241391215882355461032773074024079466036148521375237921628615216818192090084990976526637286870606120057491240855992573066036106086353518247047543744298499962076761259696874148606937538659599743811810629949847011430568016401686264165962069525867243505955377778428562886956405439458798853032622555543579247019153465007293262525639747037009168051917625379325750707362841480825585804754318095516821620178501082128184083952382620237135183911770336709003710298927336374874256491598974304508141755787029614434176402689352330654563051169695257524285102122585463552231913268391506107007646056687683327540292534850920760347410550711870109181970877614524055244290755424324175145989917013812362072976331503745036710843760072024961247205299690033891770883430243284304786138457595539666391335549057272781135056484700984717012845958027262324469873920845894048868285313190426577240584794051936925607274605603394002671620086529747821774698629015482711774252360223547324246583471696536129301926860245862692710520979963089411276099485233510875569578825941718630620139301268135081304687378217589061188318241641852043150248664804575851133636216941899067043976085312191034101907775986697725827865089579279404953953321449654348392616344258754563570241070044792714618624880117725634134678715160253482992360984066532141578995478595169440763593945447432988501217943218964833062195069803831941827605600135902890527388990397391892055640728109693116240526196700123079873794054994568153501971300107728822962002358647984996619659587510808378333263989454909891166405123904191410654862732736407177616045502155906604272063191304822709946481920141638233161592706300656902564021262738395630132387227023113757052771995967382824842762556986389668596551375600889098228803348627294710883958140092467246897682023850562130192045064982483390079984140288424579049879320101953901046611807367742551159679175849564150358412114518736239510544247147155170657874420035440464906227502424403693915656480976116356910759602021998786922539091389977934386502430992471809165855488673507713083053564355474101216520949041145662368468221614930549079612003752519925449910968503803377023401087347924472596625678567396724632410784960878033320402403435006247541023579834122596221871018235656789886938009381343868735443220677365181240171714286116703141548076027842647529562694847591746731264326141666721415876937342046793995786553730905821333846984136358304192470091669569960037041166940863345956896339352418102507079959483968265392784841769674348494652202254338685290301002447075197977411754139483590781291118318548078739452298343719240417125900046548607102829004568005253935731791782175703768677411504660803793228053562233789677279141355206205037237510596186346698893327909387402461414776675389069125873204972940393795117107307460123892116101622822810577676528074476256410974281859272882870337771487709259649197125779216391287508695318855483449233517810098398571878721033561776636257440634362466334679352991036258908474002565969545916481644806819021011619526567562912550042595421363869259061038058326648508782886324725619029567096672443023845997915346715498686977039379046715559768231846558398567778065020388154198135975813992812107333913166531627677207164902600207681088333707406527147879876024975755712110578014949825932279398139188489711315745451125659898426597548354113966452970535742708061629276378172579961353815937461556329069462753750205628355706969162927715656123011578535497533303238704039197622800094938396125240549763772859233294869903782828594889581876354460099238439688951993855216638743050997650707493696527975074905288712637052265255850996302913447778804791129966128438066132203089030718920450590289529328682045762865466463987293099130780863758590679848180504578528244003103937465926185090829230684369101595244505570051031216153571796857410554546354854890016850743410167673943551781463243084736428590684582475334542170407980195986333076792916038424378549110125826242306034461090009599585348220449347216271752520383506550706381757354190924722477810990622710032245571659857504185221163959489191393431413761958916393021635898181355775706441805420559076711590003491786026410594853419830436149900950377439906603617819351105915672023621382974318403932989946396873717859416410948226788792526220792076924914186964589567219184324967046865978238228486309275336797942009885785529567551362421248681677650742646847507690568116800411931326991125132949130497180831196793853695376852555253504700096755865017703028963043348814917323892358026277570363846203432410013260642108521152296158069055455367825543162376635010450418554639345537024059080665090708769418986346010557193682966650089510860949784940990215525648020168232243151847417805926233239827644395096471801730634804786470466030961814026822936802042120175271168316264191480296073146607968784400619341659841733455584830390824033635715403425395927364108512798810725889051322306490709058337038928470717187608023273099270394579725296781789229720555947816925472911883180521132541269434583839815303300693831960573849843347535645210112054205403048934429027080826228554208569177501229395461489362781069103045680828290663158346282865187936472804485071836812617649892595467327013238035741351202082731889785351188232346144919655319720480360092109656557381470351632785495979627420384272250996080665821770614941832328891752923966447065303558618313210264192274210464899277877076876608753037643985742845331701390722834596820564457404044046474021618165935526797314719604671408583951697924300671672419352642555459169448463259341643501222943012335986435788161740578693818404968312931238665772982755994674736653538212117280261768378358985464000170143302249248399954822462621731845137300866291233789842335723559646444348326877578990780445707403722243467569649687120664273923160297789289107210912906273085952521821367914748831250395275361979180879908444384388457666967759541242496356310593656689924715491481075436155865330395399086730961026554779771302701310455627990782077065451125631872741093059774257177179048533479009588773409933150777436164800135010483604055871284112755462662672914246945892962294026000319378783547816633316079943291429525313133582092377493771145423944944738784845718756289517827781500714895570733736524814031673937169774764460744025591740976046272427231739173557719613658757351763826333744402892630862244078955742978026181449278561601200229614688524929441621748757464628372932448787572423096856967614953852261266961602608305529238843605362176532448571137352893598029302104040019124634334293233514853710485172777266037756998563466051531946343919153660106862746366388507269268789920076756250315800996349100316065124408484802524859803000947685020206421487937141268384326372395986943033937647248944193808465690301663382231951098238863897737022873985058875457927295712230144955671055404647681101233606544435597710849028089009097103221587091086189455207879507208801644108488021757375535351709375937608238054258329097668877804211531900225297481887915140376539991097322728044244135507892967254082209190990392017338881302199117961456965241571455677981924753211689618374165231949293450218725261234041527433950840837748429155025433256319153859610492896925909409589063455702223594713678018230953573176457523215454031421903327578369573072197315469725527544265352206081734463125951551639382133754110265563432073209047725455301367676719520789219598129584429186816624465284796906079662266233331971332465217812605259823412732796817768598807231266706002362071710766377902925373388602428926080916073888893348027950217136041263256426097316155043374129433354292894754571100111091884794130289985198263108293707152637243832464136989791668213924065846225069194782851116696277780162222328126607669688683281409818597415870329530406018841121903359920033636653348081752757875602629603215117086621167678046368539494143971477586035166525938182459663693233373435753507963351013685149092168510629198298754051350748567250774025291622500558682320512503241714124340784495974935135397312798080063194593964389663515111080096422818263846177021455691633058983176058940073609367643472536843370475529720430242870468520948666042373346713999131913588673964812283078989576993584759193080316154906445159331260802183869543087539688510961813544080652914087675020235616594199754047115152906311617632078462461922922248840434130122919355604753177228407619059107143495519542171078356943394737067772377082496927782581401680370196385751513656127665574439552648770230051165884221664888262556169982494716321369288668572142927175487695326887187954963132036583999284720804677246437897912397904136998362645501186096148933278316108462265474985532154446922411444708256223781168561331093756464717990384255281856644929167752299870765906246220470594075125242691144547164511700429791366284640852876994700359410139096402307522048340897832049756447086854255163306437754170321826287114679872162577253254156905920729358070802731398136473567778546883908689020790026483053632444736132314920200152151995962758465781677350873538073956684231644012257635194094372329800997540766046249325856720829923641508791005662410391147709955315058087465198171187216618676762281747640662647521683564332280041474218026969660921783571929992502828013372257097755586778199897853355865387228117644773966774939610070895012292036719445491504513135693535812461453108929590855077021817530974783068947996845862059300561074018462486634936037429661800114709224218811712053938551996789464201327726703286280581692606421047142259691134414507383198914251339408983704255998550451301308737376509982337033374881012226536078757634136568689296588445624481345587283389087754597552366887023379493505661446754558397155495003962980013206320896046549845990046052728679101628589683299310481375343860298348182221710725976053841830600153439643461889283579101198669808552774064051026260125974750921656878825910384010399980418916851506728080471415408401492274169344402912695325924686685583350926116801772793751885604431869701527931583642073124249675375886474441293850947699785646833269065600308833365102189938750835197734713860143613181840522524117770211110115915939807584343188682358806408608445770068032238941708909402071393468127933780113469430221356894327285797313622449434789282335545630887775188761104314862145794942062585500897340656987463743264328131125689158606943100853719278995135897708344161814753887309407919479568046124819717522904884396416675336838713309514141765721079175234573264132351264646673717443367674268563071176954204283656167037312754639911383917935680992716037341137308441499879330525917297037133763325498364756163605335202722666989292412974659253725888764422593694647033016244050440580308239830560332111999028072338926778921039768873727347343654631106612919262957904430351987146419942876470905708053447124530962784085132104808926398458246977713970238944692527848608118650236518159149330982868838661327037827593211310893649600317790589337289157970047535257240223136473772664632490148663883227800421526132145091699934066517849283492783184340269178205563777712283504128548455793632646736690589030146817758575073945407219710506271466286306877119733553558089507304849010760706169108651823712721465894686486181375858639838553732264981661858983802306724312512921286715002293554327003935663537898995553518931558403722180524239174573353160668607708939736034674942551179421339253414027670901857786982625745789364809426552399989838506987324279866939200917348164358087650856270823713841788214171330129507858393790604792965815210550462757355110982420241672364516300382957635641092815640510698612510190893793019103060225088513525366745426230626098790332918400181343175390984898220955151261525678382149476800940823882055926335326909225262827455349862166016677253391112672334040005595325443048773678588609817301436929066931940856415073992765118729343250105536163900651090234399682004689973082738255393753741581723774345633464571855439980298362323040308335717856867050568833636955646816122394616293111975043265644050168132416800160859746486408175105618962367430263003229819070612327690530097416867394704579058678290703847832870298977444519584551059904639499169345292328306815934237165904295793755264372218225913938005647845408657370088842414945056737463291265860081317106454378296757900021992530227373932743860004201646520153043524680383260931179323832088334261074042087091410552599787946106358291923634408749459812839080902616019435049777889554781247118141195713128795028508031334585978840970180790038049160688216332628017376806343998258865176432736945027463112042582157905523686661776663644256475948709886875692018790026523338352915345451507418597762167057794327662032136908915967445023745080168447580592291962339612168152221045730606711526828164180952362164687518951320749484269543152672570022892606679465319821632071945156108793856675314520295447974921993837571546139431440350611039278513376207839984813738146767324587574088472708934598549041746019514366572556375705979981115332893388356584461949494614240444907994032433987692251283247709310121605029792015757154193066225163034102067883113272721357924111851764360972385349627740507119641471325375001767286124960118975643464231164960109935054809553539080104427908069625167829350422318934192508552421123065029302458556645815848593365284254798116913821731601593995032634052047644663722951432386292567497125770866889908183814756325068491495643378613120160039675455363107887391902420314340279272136288399673559375961246490467696352138063447785580711521898030463541313557823460894076562802703270044162975088301152015307917737503294126758193329176030562185056344607813833411518567915370423356898401802653775693056561315198210169966355598963364124745501557667268407318182012885970736583994661535131435500041604903583350252906569953086367975614709773526152371253472946183032380920305594414161937678370530954925446432245546248210134607053880739613853692510536887617746414252116735678656208171040191855496450839681187114184883722926953721305295916608922818760673632877118143085243422447538874752242819841741967906452402228283680496588069724406527183175953413205967528609806284896798550751001759233427236851591595049613511668382298462128884200563558966240314740707968992927990118001819818480478744912953251467969389697329295582363446956210319453383555090388097097642280917506451628840988175683805386572811332492978623143685604050364567923494149684799437307365579665139339264244346341679738208216864527568272340707625361523022291900313780975630481873425780519401262692336500994162516579797008279851759895288680793751665786541161901093032831916828485846134531359202491981465118731767035625548539163736243857749699299547194349682834140131283358358431163558109836556937559268402422403172663572968536846107166951380684643835079402830489217491833069905104936362371934449679776909997540570237071417314106134741091040340804177146496788920699469263949925875937125217248140503422779284929009745458486027103849026453036713872719260546472669343076216234659877768572437336212288538564687062108838705486575493639756556566827078269457610469284509714913935112070682925633553413292880388435075477355865355194680244908543618066333396962888969122179414877199039319346284599984238702558978959910756131463412901623948170669682421044381272283866619044398397222953661551089551722018583038769475925491112965646844186682392601908353491945158530791536452223185378489875944052594372258501186831986464175611467886526227467298714971130856424135663449041325712206878482905314636148461000940769401071684647952928559150724517792445316790711397354057247299810854378982286072140250126158823207829529635642967234552597255426210304638343011071705679730467188624929865062349425045320827049233494146419174698006066692470999854659467398016053959178888150715855190037802069226678727306919985268370493570879512765666761685313255260166378761200337504186380946074615881129084300306701455813300036969477422892453314014531026862723294043711482197998364686649924227501514340875754387532144934718597627019202680762427809299449369630230707097436891096913540896113735328215047110986951907529171296882437176797988574778880230812590827253272810093959976843195124945019792611534422030136498242311180196310597806320656802537250580889026400643467256237934053612007934884209324642489641721285127951574530881685135612926130418971977120490081896982112886066225094204484396799138190628867942553081118516983219102395425017011529584324473026157061406435140857801732565257547996981236270695162261982480462725525823697606819844483817402379897680565480293885234923608483367831137924583860517886943554252788325955830307394892630703803182288814999919065170565155414858761460675693357223295438184903246191773985476280515420900910706534309344306685501250467702725663737534173620238983016504894969870828581729012513672297822421181884738823694569242343075702642607833848284619274006080776413070788497974793352857830147443033317909804675288180838314592222292730277356349009761767370580338817530263737442246513201723976666040957421787772514747545668481119562314411258443771717981660397933969534192338798684484371303810255221092249093192017583903909253458321985797150236452178342094013085663950005177756465312327006264188665378981305993186618657507537197621122406672782720503888901383767210727475763069233166361851654297690291193922240974861534391882992395708536863883470050125321869283274347315503144286578249282284182855058800645178398462657809769264282935407394431419654312498781176803797015487874622737253660189105591257265711369312904992276576027277610574839746597771838989244080545252668894939509500654937226006127473485084173044207939272835549748973543508420225891642967890663103027683682614686590111313134334967263902514407418823923876367947103522708647687560392090135124824800250973568491957298275408839510123363998970082595923358512158925565854930096830951422112021143268268717258161323307009348988106173554696672060924369983576583375393521598315242768026405429189867514399531763176531087549156427133508162055487184892987600432750135602489583115896560878931295260393558924231488375286021156694949212372491598194397147618165681679511261454677102804807532440804851819307819754729131875564921565789119063687739893349593466364090337645040673174769403326820954204797925866966996498796595222931803366546020248019470965917740190635474222651006041327602628746926643302677423322857059979285692195875694450917108188011545398459981866758028557442948769045925436657928574857693346825847771032189355623570531995450555810596778218348923351988615066627303433841122247356874599408981386968864754625905135217011869874300713730002369260007272409790616580276414911830406268258506905622876867011022339758739482572431294369018606982191680621862986530894985337450559397233237395896522611149057662683166532855811801087364339957661374476094417179729709418246128622821894344771232472302428081460316713901804042011723445214752986502385659614397904241818247209183489174932638383542105347566891434810762690571159839572360085101051835825855029991751938015352471850722694613115874891491348299555010517422508838733102879289782315591724564750540938728978067504955588020675910258524903256050157660194866035403325451470519677947025461878516846462583945769715582787159941343512446436907305648463314952011053476504265886964421425388248116391826988170960946727345273997360156330785603914066909531581456702347669052754393276471892489273064460738323635664328643239959752372967567173182874128546515227925541338611670001304340850323113037641926260771326592491695782857821423118734950276465681183094767638531163606261104367771988301052392871179968744474802714336248338920827114153529424803881390757388474727574091508847308182593510103137764089743955131878789624767360298276892087744729746387206365169520139113146135109155447296978341456271267500496991611702367306199264546828304180326645372601112764773586956651184355940207192298637771506125035510337719820618842213757694301363688584615244765386891916313681307457636324557580886210448614028336045394535049378675852484993852304855305415344980683136078786753872464277904843741178540691156745167221189081183402826970521921503389018603993094127850146986320134219595468114997128866401806978948024464469595957546474238660188048520404222137026315627576676017069592440352991891330424782266069576903951250238845482106523334418414451577883043819096577679466138432158435017389542637958613825355380913004677359862180784373415657671099681212435158145536343592895808696661796480384071748606114191157962286694550591138189206511629285136686792694660861174381445698025086060316993464634495664024805739970103853555146979611142672045471409501555532798714104289870244297765393753824141011113958996925319803698267501450132140963254707200996553112019108524050215275039141347991811535381668093008159400405138908120492216964392315079170449634616373105295465052202421407231586402043762805249773036628183665058188583953814437784681779784359134264988439559014014650550448526065437638762771316698391893594266982476197325896572412782374129890840034771035608803754720833182566630462278064692183192923306611904128834495036950511897284475464225533839939545710237959436513731792201937521984055230350702246903053605017566877529995008595478307508182037865108778031704096597175702463263301548550394661177777307265830414926025026277623996811835580394409901177177756751826281614324884987985761392002304404248001625209186762763872317754532315684288245939880335008286317777072068957976654056887535316171068929996728914546602986495062238678963475812644072531464832666215747639310628560271931680896396019751809692123487957844946026249457063853701454951084122952814257994964242148125799829691940094387105347099779277481575781157440649005874904323048380350513977459411217532039072015203083433503882961283538971489534686132742547973776731777882276447053863225300077492793006854718579899778947342103443063582883286530950619747331575967571153389751982139781650339302361713528059569391995879933098545183462326533034731031599429284624537953707498521293905387500959991422884023519118688442434065410926968787922013723072951450844014496744514973587474560949427354831541043340398272870458442353533126730247838134436397293370806421202020644881311373216917996405066451933013818037942861998072094579008692919994923562400842860256162038640896454782776912716085672440844654871293983995964480121137946796579425962242674180580453218693285672214082999933688349995447336218508317389712122928023494380067660591505758288729004650072147230364691083695991577377667777417180018549775651754573811120281640451187531332553283005755142919983946183377574097875496204872346391163286229198455321485272965700904483319980090788788275145386632504833149812540919422000427866432300806336272744606582231661496027231519792880423257301254036484809857295432543170428935746466657680832167941215722403615748176112892082628730957946483378877178324666658937471851805781207829295980345941426780645721003838652366152209841668012435546759833718628410448064200504940195348376188525437268490357676633357229727091943828690666006434389382331683963227047616240267507994559515427100927518707924314369130412956650067119380967347433285643377736772166559053317138141639744114068117627879907754251630527462199778841233945929330689736852003692912372471488201323736797182489161546481578936185049175771725201107626955462664962554460365469183948968462638579994753198647314506738274040846899846425421936686759105316747316855405351634814239058630562768415192884445300765854055862790235435195291898125119105366845864624643221306449986604901986165269665709144367079978567283710860109957783399397051866029725616654531028934209603263220616984534594800784135228957396570629499113981918749737342894588229362738050193875921360165744919048057153881586156468197149842055015837449877413463312329718984346434414477820509873038899642850068990682038780179203026339696928836229187203388858537036038817425780311403814755022455392453320238108279532747539656374180810785188750275147928024820405810709421536832634416909479609828200822532428059286964958493313211249617606402860476633750246733680532025258732785996175839696257740666987813967475108685223895600080642725859660670668151007548572292182540636326845575023126630071546382601378000186212415798394239295061165936148265802140956052321097208152623819487419670644649113419027822893866092980732296909434963487749744606181977365252303864613378970543442353731730114876495451122831087685017131782025347359063684625122668525492606624448203347514144813863663055147600951193538820753592393895238209961855668863262213182826896761002443545526809255755628426970483656987355050031121094409423553302530268594404962696542329211358499258297400627777003240505783792256136282338709815722211347315748325899913666716032683019379846185544864430941671377137439730546144076981418589602053093739118971950379429966983726487587058300673811143381275939168076820189084506767551750963094456924730242223172707825008076701086645893520341527116729538156680915072813942499812388599914631643561258811805228832910716817361446557524791337736604403932430950568726385375608326041557570977457693524747623113491378384441586752953262457071857707488431067677295890256043541561988109404965742473867898152433442415887090991889997567835119663694817776090277848756233045798827889660083094922304471073310841641974817455057761645694182027059127616952263450749215891189702164752105783408924445013229445799703690907598021117316270539633094069213578938845469772381226942751865258615886726724644083937220162386870234146770252628609649398463203610126981714880531621027971890050164407392565024578885590267210170038087798553161533827466059977428275176873175042436229464345580420807398036872597478817393699188456577595856557525731446904951815294686840387508180848310315887405430301704021861774949819888861301137616433428369875209164655370875802132573090029118145202692071618643975317378606019184653725315097976238145413335994011542239856136249502780404581496647852383526608326036699297826091375926035642026867806670128310839236443878872522162130287971098174142492808268513686200059886999517563864643076448766216437132175869897622394760819343445745233065360763501140231679551245529903543918675718177277133178621336252581168301123120417542993294614079526418123137198237340170651030341637562432453133607517739839938639130734754827693537970960216401910714958450346672293155634410537929487790272507807168001654313154654525390550930553584423187152890059983138182730552180866636858126724053073228799391385866005899034778418373428532949192833215642784062423099865430300803314524778679754644016332039329570265220570850263397112936563376786464310909888169868648337771812364984165436041460556359404678101510484019483489987678912893501106836006291550873817208502394947701927759752663090537887605523920524254076779675251281713084164460534746809673366904007141052881876331023521168590265795249907766581476982940296381716379502964343658438411051677948015194003758623460203346116799894362278173590355538663861204738929290562461351178663272745287295141959840924762690612989275764638558076651401808267495378966696546047206570907639451365405024952086227681184949392911432601378169522117360805994047267820747400885088890170535975251714351333190666155826710487895293126233429380001950594958410283614721778650493367857026091739502624164429183896285237776893254584420440615675847898024877693123988574444249883852939460127495991836230409623665213427612233206022664089937357496787778912589596065747341522174247388022006284113955937637954567322740663392313485499373806551518395528828883886502850061510554254190584075396808543539052257980402951378811893643533534131631277642244858195222971889864580387301946316059863333996099399021930031060094734451435226298750389074652270304835331772953644382442982624123727699731680131598777889656206808005699538625556890221744719543972608578026235959270415030070566486130536274729080837073946955665036888576032541560024046459592194443776344950235708459081286818825261819587481458305695307302639219925100115672468280026800697164330247720055407005352518970999030889786879833079639399625137812392394454143302697616047440250845562784017660632526142427188634607794281464792002609725091831881023094803085986761079639234738139758369313625618360224430209099955908187794526206057215898699339235622338526953210404089923922016089996216124331915177699484397319057375773706481558125054644504674962655024496167375843311655909044621007169050460607755781240501228794854261074657610290323920480944374516901017280037562233346049483502977420031487811512240212636994463000002640140470041006193391086656112978993106984026285832182646058896703806216526574692049548463016970764454762356770501057908365225508745363334096068702862249629565562686264092186121589612386964643089825582369508774467891884425545130427213851916898446115840348955146989754992210718059163381561047401558301763215699894286000608956842135316569161278755471992542901214543936516258123418195150384948274088257752823396461226347486093853206988658503645877213674986655069179368164851296491814793467562299572034246328862734868852093448820419795614270867667772537209310407327688738515792464320032368670490315833314146028750674092667190550181778357499412357693132245007157157486757392232471204782511836534817888327146874477445765160487589182874816528663447630436221043832584346763102707142706542582304219806176802128479555062760995160619425017208926540674340081448708857242384845053124816908373704161784448562515887159232750106984473696284970284822804240293473053825181278479943360430617275051648646608238822319559721588903030048718837097460123708202149035995986963472184295086737492649755069912168455426854297390907379976868627219648464672309047490852543827035259727189743494385045018057242984347264957401917052292989049194030286700794445849499424395674536890014624592867985284971433488421527246892130586973560284044286703003250597612004675906670624119341020499906209849106628117256558232263291496948993215925348333729548145761099218041071476996030354681847030400085561164265826377601092700286633472114198239420117629836200308794938379530797014086148269964313839355212810797685018418789485895531055274229327263657668043901677754342894261327294715392860874894480794479270204570677561979340737749939767940517013639206385612778728207413451692900898083803235205140622800297066403748516586342171185334979117376268532071239223071848287364783996738146445681567768211307235131951830163642337117112021845179595644830717489788757307838290564114713900451135768753856957464137385983914257886586233909611652334624707883780874483711919053636446551209070601576228658321177847244043851121412529665165444348251840834106583366903533487095366376313366514689325636023394835084459692333356467738728625742548679865274640571649202144812500729531181062710863894805671017228631325016168693810985221092350651562170521288997441025425694390644395687110134249870628643645221791346552776642071250276068368141182375683738692333859760089412617611565008554946727415317065117968106931270977029447330460216599076043028054970195357006877802995594705429631068356535363440561774826846089310690246119952894751382033045190968720950281570373483894540393261513815093840977632063433416583487081476835055891223283383783875831885395252681555531961982419988292759654402856278454796523875523774863653333789837374909237199818888574648651827378074464993457815384855454460384911377193480510537520665792021324273311137916330195472844144656819249183033988284757921364565808274589559850254527424114413563853333542709133896574906467336095141368438027529721202312879961785282989625794320066084306702552178327064671788804904543027443911485664228003562882314681758648056189647515125616835212245240806380930350728704367020785645142475900196026422112813465918448683730892752754445321820651554151648148976881134995950098470674245139426005222342339082105410975590878551953512377540788480259047631551763141932999062023969736343881778030474488871713241332443658155815568813227278520823551757951119941541908870304502183500654920445247901280443446985998657775178256135394353755069112302760921025778448079196219630752136370368343595783254484497159715776053196424828494677292924694171100996546024073132028549737677257341480507412425316429179046858108254179645538530927014480644849901949033932618759582678093811588187000421618932718310447679157446857338572567931392632270487585503095467279691356161920797423706523439661421995880885231551318185528526568605509568008631991417530344127287658641303992244973180498428312190030969381223075139336698984530427412816175699203053904402910661067896625996482731007460585814076456331312372526526830950806400669727553963568230598440983099981197060247109899863459834375092205132216518937092339584045262951474560895545654095844004851993535971414262896253820417669833791530124940775410946885793765364526727866523088462410533734179554568326656123692128605413366386633539429853812985573631077752485238951876821203345883838929190970867586375910624747189323326477676663288208634442899435170103496294975111440672044998268832963789310393370570457881180549092836210837386565830196573763583867524877876120926430989228463892785609884541165379477610683274200756613367624822785157268869159266643753831137938258320887871601372759926604078576346657724134521697857540667121446973449135806388085062952421786360881532553401929503327448336387683247691554765586313156380147216042859223729735653043446099975552619134986581715952733008728796024274261087676091356737825941755482819400282313134705567537204991280492599606241410548277951750564144834487525593534148145884975172857924119192144175539173361222302700782324702427535248278372809802948586384210634236096730684132305866156595949707126271735943319005060241624079973361762663794125932519050264707462237187370651865832397357737581802621545786126853174105121321104127998867144729286968527653131049956801165306485604309999180573367653221756610232003096920671364077468760763722659662120867491330115111282002136576062153665876156334872174316922174728166200106635893307586743986463223959428451020163481120745613833976146643226608195871961350776232383546138814976462701995838068689341147301754580547216055317281326544796461828862380098155085616740827377728371383272576115351797844811059539462872369508925919348841624817740792756637551917418080375369383504079906498893577508883994531973662395127505910752696320291706487342288088553156258463118825616929082177195182967672676102986203356506628940960064309813814523959674961239945682429305690486510033781184343071500814469532323995062773140663520160369275233286555260840041158700500789482605342579879033643780999380896603905526615329834953707718593254402307779416343820780120800616182977486615893374202623145831226247218511475116371716058635663956781965713109295789871137419665583382717491546025723579006594690499550055382829686880792912154917731894068274720449247754673701187413801306458929006490891672883578806094591953225828368445760501669052336806417765620093984969402595312390625680062997560689427619100096407383131692704711963373826442206533234562439647066901166281929979013965188692702421049309388612958970363125760384127406614463901757858147495243840504348847265358671890025375167835091300449028130010018139959319191246329148388319459607906661871808823515885252604448659851916284067431983910215051588621503160492561167018522759461916007423245926784854770692888759908059453640042505751754611426077819406266379731198812729221975173077863983448647435653777788734829653016703194157444132551873106295693556258738553917777419937411376364274069558916724556051402752531434548553049298275013388351200394975314476131795119882063539374940225442769894511330652302212716531177019306416993935306306275430650919108443131994905205576857721643744451591867612231892581700362730889753056095160137901856343270773170077108123223647221812738513521198258384627806001411133934626704482889127837423063080633025991312871590293764891244981851864940114069276040812033565704368382588701137874433704675764042980387794670946708811802625994237512275477750720405506181676869493275837698070847350322017937068173604001562335762449929940262122662159234297887437689738757015326282969137840489163368544741673388387140929153448862528021756884422543580001694678897537033659480519292250975866221925179669308695458474463832780979091535395211065945456167622525668228078603197308274305592052972786103980715911469484921395895142405725670660887925621565804553906512833110963750693908759032599553632102870639489277477499448375723982919414086185056175858379591078141486371342554058363879024869940931299496414461826272994707110586323782361466063891560176120849188847382423593823477488246433479144072483204133301562172566317040410326182985380954988304652371982922077894509416983335874992826956268622660462307133672745621740307991397843404932750721187676950328511271282535503120474226441532491995441781419890759367788027871864482497419029635669606458312694894689146056145599223194574170580827952621830249436307399517277384697262852065042124693883518703975228700658548701507465864046855242249792466306855773305544053180943939261630898327207453253499450594204623252925317079909619782464653904718381299423988782230169495569636033173014543968953962136945550114923515798577300101386197827197385356557900950672139047924364026230599817211118402655353765163726310856569503073228512071726386130113990118659815508542718799054933977117515475492426646832467845221132729590884139784305276760898497396401600735311902189581865697187790209518422130598614661626861342829060854339437875923216386778583408739738599708669727245521212686696125368811358868833254385293540926228282789945923613382301940387134376014081283602748267986325557820214856703843005898156747641787539811535453521443721115780064178079710387145799868183739287429231080504453224962924463563272178883469851906124677791840982202997639701492190451409880932796198052007132179380200144075322144959115956179178680586688008178522331765895117751942252170494380751872844566572247787445071527145795700817257732408978771908659428663762023468937491966988089471006343611005632468293626468988663635509377969482382614998693630064288072176582730558148741450046220293570395740572261468820034405927045222700996493909614374947007143429891144491560320354952570921486412543371241299406531959323881921589172548392412162024362714058540591031847898564395031605771948413641499308182287382948389670469521263043899114301029094383555595391329326721573283424813961132693388798496741870095178332456234959391223968291952677187883073256080627730545855162235816433503349165540316279024055701034069244664326626646753898104573741499316517976004274503910966444340224372118780071218637061458792992790249733669620862809777788339368055591224462071037148434821796454466721928810859299011760935932656174731292675722050813758293058891776757248022035429736521440438629606247202090478139849933765580896933541557829581232193457813844913505079172755568930853111084433721747250188271133209826927944132409405617543073009251190827538860255927511145680006190016774400114531412085129773703150472079720319331970016965306125238570337754795412007661538495454250570697094387669637590628203930219332651310349731829178698048930705418859222496293183352385629820803559173230244532951245786116148570704048878159745603427398591325878753503181181122220613801765872531332272809918264769685668719314079510442152686096626725457528737368125073417026791503198258616952069729474311003239892200578483901347564779557285903618796223815548707041544013130931485103666441529340624435901994661642889791865508182173947387142441286819944194210836047626175807861960666164141313510859815730194012279465733001691660312703355668536192376646230327752442238096295636099506979628234510877197497695952732502602962108759899154998056702358583591780386952578279840221406719225562340249915381081356638475422968541967373035012163292760435593465585989797756666904997166799981152672658230336201944872128769450180813040165129805400250590387358342239714640768968520339014052222712859656434861679553592601157500969226962508585852505964432222203858590345231654000566490654769421566950217364083523764358585627931721644382696132210873267766029082302264124372047404380726587596624790681745092597564997077623238737542276373745083041676340637677543081037998935864797500851565505068829108448979895990589691287138324481181407908863243067055779362395909809526880234892028783217637009927892705096551941883947239800998368871737033948706829665083450572363703454302305913013396732982647484516005590276554316452423124209286077353341500610557321291863023220062462904552033870199937348629061037088128819917251755540354011651202230142240292129684528679021581858853576208488057690191428651231227247429042905711717711564101254927991704909019653282324555631522398195407814316036326542930959542394434248033856671697651340658016843477712077544775476070606466114594640338838536586754250526114065010773846199710144297743246392733010363051125642567769638262764169972684639806732105337883721775901710667479698014049962398949473583943625480288387653749875402945884375678281381549049258511742582611270688788711057989388485625245934734270034861071341312769066180107122725398848447539049605068467369667299542565921572493289101314550239138036968170313395976588214550946846507969244859895109511765566810246965959814169731441046775300152331346447731234935512373746048779677006272762567891805375211536881756085580442876928078348422265854171583422839035070379279453194258237255891062062648202238864662574292948785965450618258141941862312349698454156171964251123282331834957025402223752273404370194296290385123270874577222473275524802609528565156247796074652292338179922357217281976674301591500697650436092752550990675134230422554797753798872844809265489550720101363197112190128545623168897644334696336936596198037347528321804142181431915833903637329384145275827106172400114225232663616265457146288305133534799324148308061123954905571146065441232870029490793394874748130076288234132681230302487348125246237389086083603359761347041476037515617198527042289246708039544564322054354655002581672809755889329176662851390538193700500426796622293756852016320722428296975180114082159179666167912094631353937102739867102200951673670800202498653935514447506197915266182235797454106069403970846497509829827678768958955431904965639248449304966173083171833691173742277679753528937465893021210293301274522628719099916000015794434347372596415891044514863194774294009652945619332475030650549807955776898108710942017863541126015534147878719580911110231084365364251961970846015525951416350954490488253805450390990996728041773474203274406165988933086923387633116434228949180009100476626179001286584491080303043910603957200208292127428483313484266617878012041592271307633647384382687069248486453465641379607900453848888963586105665807868461150405626226826137557898578021596138059955027587034243178292438028872037724815682745331825301306732767521892722808196513503467861616924959615705096309027639382927122870646425199445509114787823654825941906644355343396356297554910322092146497988030929842772125787034586232014675331400844576699736975310355608590737713049462208968839298238499733822293453123044864089359497633243271698608457291906764187311228901318933567756097423303824190834124684550185414805516191594907551533034422121510829962587500412860624793278608502457611141322055614243360877286232861248434596126464880962555118595354110389886648166286915116453875027132822626903110910128075351969934111462647246740977769181674034790118011055854513664603212273687801637043416898786535550827065296379074632876769613599788162215584497594044894114337541643937311277810248444876425046843423321846561181365586007668019599699418523318189279072731811556906726417220777125472838292807549736062242102714795541427979854798071750244704573047148136167096724927871554503950532246214183719994679266027888068991447968241625023131113547897368673012255981475979906853712253534901617417410100161139958378280235448099769621743677030450515837066082648038905957504008489763763407357340748625002557447575932713840602302138642495803428059301711991315788375629925184681247265141810657926839333165404662168746289719926774048112760677653317259463578601474204673172976284797742846891556550516365327648645012392501673958343841795871600668313575472253083265542430728916268583214285006853872684181384053124663038583736836512592599411774087374496059234651782926171717249285745717436212080609976259649472766102007539535934742260680917175275534801425423133776120141036532802113183352424557157144114444949009399393165170514535382745524751636991423800598962199057523286681161363709827351755315877973859354033832176735768363636731309641960516957102731768483296132082598870891465297996147534991204380423010426342634853591973271435866040716301509818242250415817781585398797362212770888816352780958232165860003481145884546234799370792430616596175335350872492457900860556662069317853286774968086708594554523018157059357131180047286162400439122342707183027472628559350978497929080667767888578589984925079522087949877994598409231610226546851031429038127078941904838075142270478290882968341442222465630879091865932111390675723968554665269469680781492699414530750761167809279995791492711199309195196581556187433904026070031015610996010827213273523801813830021310941270598438106536335526492653302065812337447217982197967036272038894450110218488186980712853283928510027527463471729264236241758675058332398416668476403180136871898952522481421880585334386826404849794675688494330257070458421697183771460480116067917726011295901605542766188913025475021004364094387309891388715105418089828140834535407362269424322846851125234431936835775739450733314395731692292985162019044430593038722203683583262991246951154141713583096759658852663189337631708143802780927859651852176236722166899140708658002967952059901701559675054074116812592825673376385484684574610248464140121129353889071952838759152490130310350653305078937940623560842906116231327193153907565995294531332761844983925887723137839695672419470215111355261497359463336244839714268335896862779208062186886650420911844024116733462442343684673648023855918281970568327430032105337014482185072982677721569842545537165354275605853732590248762816113292445323799912373609815782411557198098547073334599383408192284491438900536680326977537470092658855403094203849102391161355361791226882452707042572324291554189809842505604459721336071616624428764320499135928789071544472181102247377948331249104913105694274889185379497004452569427584461182216288292331766423409138073470293692724475441806697896459370183275463800810647891823966201766485489372522141077859353741438573742216272406453734494840883863973321388720478553678148416839606989417438731660178267080222003651895988868710763507356107977608409519666016614001660501108440174483315360354047226415594192164419220765846691511900622488150519255437068147296734606404654344889294738092356934630019856103678233658185940873655707078383407889832006393083721572350991776577093567889882119545319719151186755401725222054100155275360936299518266125273380519755695987857061278619268642814028830473692399419146569534840907767282678185880242203376333308391215757959688822963399400288079089421493485729198390995137711946954573059589196874840364043256836854073306095413590002362584504418287324039438915394074016155169214690335011679577916768242140934711955147965091198366176840504550762101937670740872413136956203904312982599423774863820897256748319489151438983432158892889198727368067112735182246790439068293801460566386212143523636425086685301653507123010469707181663075607574006679051324637050036025873525927556775877909714971933121083101655209009104684370701802307407680356381248745043173849275174481977299833039173856961847551578114164480560974475986885528670110146845295918498281899820690865729001107798588517296886053936375079279089546455809689364041458686678845625442392282856057283749004014050468732418005527605323920440430318316181242902621049168534234699308063492465243682195379092435315458106806667411604193331867594113273614198259299051175071434109923571768945530359000402264704223943196730772720527626931721144469674520177287107411800826974910511396820155445577791302984281685096433164058085894396388938727385417612201602169303707401418795760757192167376750818439372180560255696494631013665958393689470722240543088526737184661241896546420336713825416839085924842251525799678696503299381457967699636555319793286974203595370780208062183946140035403120243151851362526494771447397055241935615129255393097985083572252519449617835926405378508023480327292181539139352808925228400765625878500080535330568651999860195483225092157451730278211267457236718039734935049841271420589404720642577006254330615931865711154740856716329542120288576533607658776212235732683457887982051138980431153182163360300171202329186694475839403922113262284476119569041405931027671532549119747446458521883723313878821274406543173286044375998439304826247391332860436715579492174563047151116621673477601163641887860391154079160343935337344525850090657085021998667760099784386865397688997207714227198025926115744618834873096435024196396532134831680768806953530733637829304535427386890409765318628156954077755639982943078769634373773590232963290659908640659770578168609881936491302364567945463970906400356240491047540984732345788371986836742669478669488034328596346148178151583129060071390455503842537160207449347446526937859293687820969467836413122800464230350213507166170569442581218619063864273427616253981781286105187609714863713505615612084816792601664574463453299901127697208472592862458587527513402896778335245783840476199863818124835617689120335362424543107751185915612451271537813563156088707768189137609650648551553096038718636497684029138506040489596137229243749034779624173632147482764106204065426986200327244771065234386079983294647129766251146369568136709012065534200678422826721619899891733579891199155260356504030775167525907579323040544057024397759112623913763650762128378320768646527656911273991814084213853765577434144449968993351914053074728916286137294332521816486869479484066373804887414909344614395029179678859862265582996114066984842352075596644785210674952799642626040290231494557929132901410277651038930543718347503768946387326073741461903308079056228148137450059431038085497730313460223357738154538320565602152876352469290948231802407739368806049840499022902822143152721309877179431479148361636834636788562175622913127254996188248841256791312346403057037187143325394414884487431852388231932349275804895332585790141489123391380031731843427937336918869759628232285812447283200230967066676254735306342509645135263381270179606614918193213852670354415276462044884262400337685888052781001232684603800194073678724734956148760799536741395928171063003562080781888940423257628254926298839072009136809213327904394539843239370240721938582379165351640817881759833761895600777181262736489825988121801467392639504427761938217578540657925370863679360753110512901177605147165945653612814448174518924729724316520259394189739206564191476310336134503456236240472447043255490832499282467351520923747585357661981142596071718364564146053701161159555060968278054195577272323966344928614780390443381836888107707022597602706438248226202048569829139647898817566283826999743290761910699692680998732742882075095684342142377230776995849685647425359299193531590063591057616669192131899487128319318823370838233587991395034158933621141623993694923391893159673935272754220298120631548579118216171106335100823163096550858560198464793072472821196221021462678190474799118610087618523631549461814149792489367741615291679742966691076574555406813942100040768204710830071503632883821036260111744044736107833072353598663524044513231006545952702848165105567211479351982499132799159068913509593634398247637176241909091669566501767122272474492317404668277595448916389963470921991514300396238038369729500306767538731261068774949990793773706283395814919469321416316501881747519033314266563129369411659780876972784112340062799814471103747113900392339696619229086418685223032361144943716555258104227031126219359850380256245851975889416165680710481273162480448934836938084539975605416418618555344055786168394790705905644481784571555840015460803583235053382229654446221172178432387930344134943008547348583936994140325494470188627571764912923109228780900787133199784554334172233601213784200453443173709087679492078553240686173459032826933275156388266221450280702239082647045468234037958998059696826290003653729081146571918815497733272686035529016901126698241195071097093214259640907602662465417658310192247107557263827904299676780345748874051180557987573452968441864109786513931292918627943561600394617902007805407133662674395906533097825605762033933333483072351380662460438429526820180070608558949663018279105087147807771284868463545614509535243479403576257045152919458141634887029182364758945506507332066383644870565546708245962308608965269581631879884966089284563112955325336609438705069713309481253515461679549928087816244044592848969843979079769091905052842669628218219090896533198745512513061044843371361892109105128596123428612548984996620558453219743123944696090278534950154183858751612784414540276251474534672932064131416351576480790080096157961285721412045993406156811226733054117646551218111060394997908697726821635954204106227426458739090138628380746316830915964321975142702779965905600709246097508644759504519925407754183597749616975075500799763036671917105739314387907166123004165887340922101125594529599724200001998877562469693289820524183298088000049878193351491588128227751361757819019935213033087875645124669298789825482957202773302406771530496612655497122814153564437266176985239325690606416150664221665898657269743623528110548735437181915940544292718672346967307215575814113788983553635491903740283930781370040844999629711896161815818069472129223640075058163603687936578222558937570089392349552732683601886513718391406850281529928962954145653434032632825116873939264109642788493771333852108238318744710127947909082895931393233470242060616968412391033677993933363432859917972072955576157284042820132621488011028964368336134397017010723642248733643299754106843997808635875936541947829363913133432587702078727515472386388617858164566173196894148121622118670418700046599326240734127700778932981936817746999048535774922013041273068208357003798340931098090410420168953146974000070229518732127666637002796844787283847418994770747530854542984692404792276027244232525217778268581289510635415204654953613655788975952232115970189850045149725309715645537485520346814021059232172647951985851108991603704431365838767167373366553564628075118475786307192618509938611560049910965576366694845440909801115303909154212128058391237374236050174085991779470423395295053720910801468908878233074365063265024036293981571084016331938795826911915878895336984574347073378402213245171904954000711408354285685186517340791995548644115515196694274289745408215119669224447312948592064663275322929957464520977172901152568477679558466170640644279829412706217179485949077907034284184696517800425955173473704885810668981800968776395627233200148416599256718892492688189239000168996841917519377163209975094566113605036294540533258932842327538068738735554749226167019245803394865967585761852722641196162968048523881688904706415875066407669401636191965977462270137986949133348318305855028829844953303640850984472545919735917882390118999033396683291119611515111107006420182037997723767601923583771798465480251372772755459501203613315129383043096265424807587069847614205872652730312743185972718731875436534496717580611798153730091706703485733836898053921904469816600654646710166612529054393665880803556871460913560000946691740102579454091405881803512055218945542345567017671577599059891841508269928370603381546778046732598150539047524004722451531337289257274765284925278771581222983216863665852883923991208171210757116635164641127789832906638731114728451157651130381878972921582023454489175619910043239733352803506894951977550927229496604165754347590430082902944621676230580680687716844650369499597585448036055311834087281359498759539013873273039643357597901041194175926262428949338614611707579762395629373946486357332188460363638185797791709612280046117239348844770696460698199200037359875131423560956849268370625744890201184105173075404824140073258160726690161187725358665070773920876963544312732247176857097638115812181243160847377662996365202731468527115830582845159758239636241066528015848759941200877443879825032050825718930626488833668133120882485941670315570944139501735751036462401356203045876305373586337419128129865562261847693744714318735489999524890142633700047837365804139391979909014757648049277685819288170089410352820652274230498671029118516796815107766706514060054452725620633627873754589505066170841735264267985795163882871378428048523778420994182831744642304453271756731595101319723359697843605390203132465728848724031849758989552705109238350136656889514648532753858860367332699706620485077708015321955029448954288499998286481067740746113343764978302702413368638962108683678821639706884527517952212897162891447494005352029780838311122166660627791045195742455173270388771942513750344835263831634170377610108916283793408033802152198114272643065467082452609778876922677441200805433866791300050927977203632900076784896505201498609922652250710642030289036734821020081465598935670791082676355204778839152796939892447451577170720642674261558294872613263670030216277660417751929578148703460140305321770839144983015811406742974710482413729252360045062387091886503792481473394904166204743894459357737388941805846441838328847756346861220671604616403902570781138039117179392928521738013870292741136367016565034918913751739933728755437462121242159525073439726998530070103277439943304362023623084838577121245527229186153262717530985202523867428964913260899237345442249652748499600534687473504086756235006283314481546091348105122040435804070922974298592951860615766686696331930160551701825895267739308817542563837929832276999069707715951718847886192347031765402211253258143515286142976831906929949348325022083310682527113716092239300165870772417999026506925200484704796273971096043604298702963329179554474980947280716052777300496803614846635172096542294008208022449836792302735576872141558951984802042334687080199642732835568526240507304815627176517174761971290768347521503723208733594745872109406062696032496557079146918167839899033530644396556250784114130968700805371502525950028114523913443021513473028473570470590244511226612317652295613350418440597773121193993839495900009317967899985858328430155102936536261066214228068675711186305410158976226170263048092377512902406476352853488320658906075735913456160159615168286418373564654893832517886363832458850388785819943129132138027257781343291896500746005950374363487804059380206630700055265983922743628992837266634359923613022442066189623166962912609729962259862940821884453304202451663317711055277899626209209295240582996054281768687222540373620455417791544216684032791383256014047873366802152217110537957132065133195021830567393466803067274419924795890801446361298336062852719867082356442625027070138749184553930645550256019452262815112620158577052403719196882603477551941562879030090762538446092309574706288485831688549503351180123239197907200903871686844420023489453796032092612180478674897319620764585087552356999636457540832359027875315154908506596286233168360445792318437551189731250045562539318405192480105548914494191078037240313704838898097756764801048338631921921433374923970583574591211357158378968587342665857520067549482408538223311157335620043851596953153699047794256411420750313290535803736147654236204023531138737149218464019725145900835200541169194698831518130042357082567087948849212989545734605037249284905372988274946764007863354926483809653683312875138378647224593405881772528064257344672323756712686400059628702668550114980691307806062045433038058885288199895798426380082215466629136639612014277903615430114893377832423811978478079137950316882036385672885547204201819286796956838578930667231978544937527414324443456976224534090330372431931758500446683084199050133650840304727664524048850612624504577255479749455239693893344758534925003166761972475341015865099869493625449597293692994831346812143937683146441972798798428928329997562632722585732024809646934484645934274435258449754711701352008105723493912128260816304309779300363528740156102637555250970472785777367211782270332057019378953374112912407503921569332894447805549690361443625764727711512312857315732458279977588127637189600493269815069638415199558409573439510282771816242776648518459995859018464721875867089535981949072225780834325224354836813924391665281088256336944924704426307143729742208970729048613891186183651227846462869763528068061084733674508517139754183193186132765903529465886818349523567571628742686140814109930037383186558567407190284316605726832770841066405061097722803580714843994572033845279781172434222886103162414735035415106800138597165765203593384479128485086773610193900677067589883115560001367123036026242130225946313080249364250281484084414968027823869802272338838487607885557412219467011007237628318007715869553008819544192572219573159441120757065906213601017282428824352318972167567346411211549184137379307267112938287520352069394324987811879825503346079253610389451213293824156911201254538895036834184001377358532420747469064089143548731477044093364333215433220586731991158021152033020947595797263745989042140536396134707384990202546602140682474720302667520966631789998079246302774509723615684836409990679186380347920600352302144836782857958384298971523921072909850717469785624194079671885339281981083745619915401839595762619200665095919061034788842854472748800334593680611196348185542909887572223444533757121914440599147430613609995240274871369352918480965570371880681429651977027425706082757506170777219661156360947988529526480639050276597749592000479190896384802573787171706852790773679511252748860392391575690183503500821910377384357923172186004228536166071906756095963875774098053457108600662026292584550220813521699976149031263210920369337554296932139329061973655791062386951511860236389633273524122001146503295494506089508997556333653727202678412563602631050251599969535311880235089393117556648904643443689276957338021647694657441107911493710356975718513736687893085685695152431064874084621995045287648116036173163350776818125037054910569068337651219574278837400920844735870887171728318635405376175721739672636017574635810254690107950184448751654069844853002029340239988517303302577856034474932085105556293258759711366582041105004596268530436816945898369124502065604301195349162151880538514351569046043467266032598641848908528487681985284932018487921930328409202572087146673997242343056520826139284722074981165994450845249018395252283156338098234339387585042647668968282857458879413844029400866559305963733096801227589331243305555454779515409279704194087359450714964421391584722099223370607394182997487688529111840118461166216661934770941286366724404249412189557219676114075120723260289350989082840125312208594866778869529692876121311146472446493094846634862174750948787982854076926787037464062668394107960223750647026096368305807739516445102295171722837749228460216172910333091082197490413858638359940827574433133022935514179545847790110587965584297505978143267578657083895920232057679107609334653444587936361566782507279992689009354050852684473768987748365370194546999825867114328487036083641385596675849301781745025904963881818709926433460504988367680880267916719364877082762290382310616323216288739521192070273834216439081816864064390733035810499684024891292514969114779670410895384072446248363452401289388610103857337346113223143156497219967211519839579178782444683241252651123197676700359363602532755878621575908459697400486687957489852331274856516370334829495068609941641216231961323655598593541192435149998738667053398341117369338545884000310648958072026392206227300223584460082876972919223499313418105805739165907099245704160268731519066627048830194629166295634275509051751440506641577570079559434008404572042119563193681816233916489505453503227514768544664336016366679062029662522847914203898071187004145254789103802228017528982049829184945797320598472973517614267295989618616247425191143591105895003948658318056808218254840782298621340794963149183928850499913020828730572417873890402226916583552177144899605296977375311652011176263887702859707940101479829017709026289014527717505089206937806417446479490158973558287537279431134009707318585596126592409301229919546830386125097798556537514749008536996296794250324784470948100191740936951377863689575888924994922806691993807088107540829922967813848056809526574106995467071170594201304824542896568230076371688496729820739598374546052539483362265712533026885663894017665164031527597893430912915957360268031729543866207602301675729294152391044003375058114154381510410565808927143895683493659654457186963403824926861646721646802424213643998268122904831351241684981264391784276550172991514812381366410022520041323058113288875774450611354621705383985599815501455815351023074514482843287422170394396133636820066334021825489859044324821516187680231472944176211535065635225221925467797356231197925297006484504702549644358991241253273846009127412441995332085025684393576789786277972369622451925410001671270690931107086893510957869517472213550076834239947437213353171271960210757488021328148824522239762995492004015193722720874984949183895395995327689510739381614756349069080213302123487899721227929184560204676294065407808539146508266912570920977546439089485922247712130251931712844905709881720793473099297594414735717249556900224192648200592403685733803170949094022436302923624291593611703250492288481726129298250638810482029725513912927253868874961353422266267395545859115596741124900244989248232253905829400511726066678026543587541177930125146328555867238366576276516397874630956738938617388954635198636477344835950174887696697588162762560864607415432726785607284000329686947317037613720435866937020973463862455206819838984537022496967860294519217312213207508223903732712493051901984358082187691558456546580282545792894542363691390463293160405592151114465044786325507236369396948717495951417202238458397538774007206974526999725711580766086859624753244401677122188291419132689061507758933252580300301219847209727448599945269833384347578985897101489164553083336101146419909430276267061471600422762823492980886101400909256635868952207492093987058025904988436896545503716122876692213194193455175331758609036069358240232683709258826251547660251878060600128962785167650357141362598072295670922628356781647190861823677803117756002539745054766027525879096028611578305308922279997447821538961599319284798212623086035412855403086274774072483352219299188355138264791581410258705069638346820891813761077713355690266342064854431547295485906729843423462306682514954770977916461103111979943571240254674423197671200736508994267942007095650398536652311123523069544771144311878124035016374677478743073663371322750933186441614930276230800857928492707672982931940235271518374195793849607223270257091288245043580127840289462664291427831850861060414905804416190000508809998404381904656415988793369035843250857744374579591099152932408330949603284437171244802845841486661999253958825346413870382915692654134479950075153619994866511790748442972990096250375404674019367128071908234114716235651639257694495054096517084582010828088505043823949462910236684067878422673472657950065852903262531492185163201968491783030385871556952702233138610723859134942896663828203075091235551808155710651707363827756129670128757588377136345682194437312921142071101101855624954043896100692691959313324575180731795348650700319034083037657995444087137964639323057946373415481887555902129663568302148527371421563789413931985679893721804335904606414294656565523147233634919547582041570354066520109180485757469851055313472474243798587755347691407119878833294246978145123521095890421185820552072636481908075728033259690615075137236230582122157982782161970879070570026469879883145930743935072275210224826176521646374580533372255812427057850991100029141598945010647465275777734077480869956959710004536896820597886242855017040007598330731267314896174719890987846590491008686537305214069375113178950363009320000188170428978525784595568363454853416184657248380448916465942005604888912741458076525864860001191670792610667535237665691853527302899117186623980941935358925846170942304879046670490756930763171459540726475908946946989102197350028759140836676644600799978229149319503036793533517662672350577959409244316267077388115879676247385116919053845970437466434996214815552798496063272303341591690650971783656945634654844235811394100361699289107803781022424506340510997685584563502744078497227695519196887761838197023826664972002073705915090083646144417871856854553065091461856113567532816271994553980367615290356627047357002175167587987263127036808335014122456041377213771315303691982445201333172424845748257791433555957454742075370609610680195053556581772677146979316421608654406026992932953051053496513497915295021751356479441480685348456726524478926699019318760923042089259472411611754855093384777317680982737145239808793700958077004298503787389456400141853275850969281874477476246764760683150826011845121235187901797502733473039886836441273628636722583677979008232503136100763962931153736481088360778824238639735588352799031236878327694607294225436505314564586437605365007165969742295795766986308919984394351196089055437844226057112216615615516861179147409479395565540434793337604519619763792757843035567141628766868351487152373689470358098554723764645487119485628987451611475131377348438627976017310665749543954275531219085854781691936306011725367030316157111529017884972519793323236561475017906132305463422415272845155257583292139343721870925169893737259334908209923726494145873390193138577979875261978055983312663413929924661702794966290513283763485019129941547112888498197745039271197686441851866563771063365953882720116936629946214272506697577847897568488344512310005786888594772517905021945270360977176640044823091853150139190163826930166516420749578577028154279638069346987390582201002514114881463763347660213646759314201877781657880041124909822670112113509881669417571423871617657433455544608757736713718849237603604663116114089105112371076154250372550568283088673036515498404644876219473997757913140179033089790853326669516187732827050163714869076678654030614854474887415862182738091845877474762200229544341434498430135616130528344956472739184240471482943345718142937124916155237951236492464758985658981147459200794337776142872725551026063480063292145918695157354031923885899139704046073982325592515904660418074582034111264194755525015943822419981958113287834587567846457755250864542865661058053819927577253442428510782778898583629452926408398046818478276210201981240001399801827540701608721016833401691850725561212209933059745427885921887669419024411023191618592077175482313379254829790282312567103536909793139751065730031316228433153627980429718916188928636991727928556136616746610377871544563230389463099055418603166235609645139186529965879095040384723330471129030151926246181246665255690390809126359513958577030228385043996858429817244751020338565999594156374216432814518511740893961168526044010790667242543752246063919690268839491210664216755937721254327034762800283988261676739695437400875560454255400205555773391314032965923552032192145856054315385560201115734899920134107173360457379489753052712581706529652015656569319411076904760760425005636894570104768289835558455253478295403210552064958870762263530050786268834229039620788398540157712034720916141950209056253654134942728142714010308057493807142674938870366732564802341511910058878394809439888919505900385655239752268713229939164668254988106695534694434250368679488607037862183492035025635240863603212318457172098459699787080436775377034307503670119789700703071876476878106486413809607647439952542792689274200025030005161735016512563737694021908800984010745227747893795778388092266909143590631411075841861908752480176865030882559026498311668758691911599282843262181755969268440724597745500286141769981622502979685014318077768675320191720152868060861344660294654366780763094709875500524986151566999257452669895122396185195346216795013192959251028095380167462021813577219993769422146558812971904990690308461696068732444927366547976043373866420150752655895837002811222058406766799796362446188974041343514596710577699020702388962134671132148314326396208807197081589846283960639454137778085648183544237456586691845882389703364866687989615570373877726293870402374708296581425506553196207571317490016405058666381405129261650373638140159198664229106350100193759376602730759012509225144674186554222079252961941783472982776496243635084154630028173061085391890543693392410877512835013161842921641621552724500362768404425530289947465580042292633230457257523189076881144951972466737571491802686019802406558250067525578766480069976177536430377930038154082838540993016893691860017100228341995341415290667551578045935378089914461002349493371881917568533900817376533094966677375376522719344519007231967606066656398591630984637630699551513513095772717440711664075234223521567815505138221262651986069409926212774797780489521289291126439823669773296105506500644808407268011899345441756919181330127769649186531609181589951445063850789916781860389612926912134603411500049742558127660477789862397683899499993460828982457461311841302967613179388515608964818032742413884995034372697318251213015816039067583159888821036331700949381802345696006455321623533008248704025145206682410656019879152401983712277850242714540062665472681126206211844129419883219648585697640184261388583051353607212004126266661881462486729974108477821437920185009985001481452773073903333282927130178607312515881726021563917594655892683885065142780219744050858507295152865046368009459504300634859028114943314193586039437086428302169461256400142876271781012411157438240014978371161763308819873646622255296601289835313581806430631083976227434089810429527537631407664190140571858361806548672660838568651226201543969627429401159009605470352869659979817349816892360526122099018667958942243859259339127908501040346627673683057805238935985458888377083450722836997892435679248004834409222528902857798967441753399469190965030624810428032750380946779744741722784121168209161938022433391347918538590987573832780970057507371141572011982712300766264786764795097243308472119409168276707454354723869301345310697057494913357823434678536786584796776216705416167802357134879573270939351255152754842125585557523061242412543997568375279117743557421555772531589150321203416543908808233584111641917604317324033216591401512396837358868323063693158545073361497121555075614849036759678299304961826731232530999620313090475049025062829016571166198268294997256177474079474857028498585032982416841358651405495892434808890934267209882531632848242934590691705007347979811660912595005310992050212598164664456485031595162361593585609038538320774686029566610588414921338833377983554584800829733030768321582654469781194778690984419245148289196695342958388478264599443010439648808207460254380382717621336048625692563650857026436817606799611045002125694297043974065537917124587955909597960207726866759830942633018512394891469992270009676439929597120285792838314166844282084509283563162562968754980335766632214390108569149636859088654524177883527335530869969665409098105822078441061911149927480303528765167302339559980008680330792538988011346454229123277932989580651328207336918365394098116551604845940495147362282675644459890391611555512557865753867485959634748089200464675005575046867414478947742237664788108089164659110272399107226871575974353853287392292064264323847720882615443613773852240729363843234518353198770488489871268243615083644439966240201036129642036872942699983623749119499892459414073326721159509030976412995501205772444380514973797990781404131836780078535982887214265124775294493637132800383991287980482289603795708634628746825910899649736333387357429888111212992034960326526843110011043606535727474349922716453395440506767728375639625302988234518261327881384740892569675576905984708608293001477804479502963355077316654995474431838342779589763932265883624497292155083627602028899577203600756368774044463576681312535539404021449892451846457655352167038105931724346731866872254606125179088722987325522462092677283706788411538296714373886524757325257413406082751668866710273815071037332363241042552870417776385444489015869869079551962509308212751009687621378289304318337790091503954399016031664073563794906866831253260423156270632214432882498219655670709223056701174234174004056964204751794640579635243033019964451428357021429921212306418099808593316803581634412380103234187783836664790106168168164740160477362390756950557088634767095421937793617731338135343845287695791571560771258967316972169227267058720014596407772416171402055282767386017113894444175873209940569494746555579972715536972978666094912936953204191796117590218095460537670791773370593429485635505179305949875531173830779834406904811935629463238519505596991731199876412813322791928044673560384022168071224887061389232249322462254152808342005549488570698427822563081010618097595076501633677165507780067631713320015931816050098832549570975213896972986455423917885858842290648022917442203258265084816287930492706990286274673842267415723095676082419142154568763843380295562412242101352207622730986045823613374343990118203145400758511773789121757397713166492811689003212339505438016292180217939911631194779868270147272616170803204133052152269579417219547613394920513577911047635601404062300640069972088729864762705776218726665220106164852407436352273443022270427125458731602648432776071298160754266399068028746272901045994459821482325896787007137517884035161394006437984841248028392207817243228197624335976569154021429552630368271960779528851418238010696277499344365692507838585574905553077878130812789327785738568513311003078093817284989062924194635492460201382700617539371042395325183141164425342942980687311141809347649915655582187054918319512019646429874775879980515911480182585235981695698301336603594868266348427729652553267425583938902597342186481562968184240237639340998812125593992901978521352679480097103286025924015761105344542911297249755350509852546982006823035642737143674392532196888708595770487388794834570574068652991757764903544225983733535912863515287733072403782986925467009321602652732387830529839747539243211626182446515339894103904346951165131655555920277072724028724419311553041868036510706687641407486181885401245536786128994472732464536642526904183451502573100161681454065937824071140935398434785765459641992636336943722834999992911407791234610006872665852788466605219169132951324103516301279748162503370301423554716526892517645285520176966577754292014252934458622328068140446371520621636953149220702633917639436199334451271365687933160045697512548540093089265664467990813011755253571518393577247969072300059650553107978205864535142001670969982418856052330302160118253990036009601555697555506757883050365960499034566483884263115003295603728514676019272883072661376445311570004960544662209247855969658543618469440997437509759817744281381763225304353604227543677846446743626537161570937015547514957617214388567217223832069137459669821720762635470299497044165596567698876456894051682670878219713117633479607618775902369773928153262336022127950711424492583568066367782743280262103630926540110387323448456356522566884209339704301084132734623027637309472294208861485117629312152101486280290078404108281437343134857100029409421488416709992645642319829596697668918985460119573342456440997309138157829862052725142307498898466911557702196663733147546075746398313552873061609685102605022160211984793458334340460832120569745873519711513169984008602578535687289130103472727013417323096499225583076437308109635818236727417053069018963688245028001498908191361908053146061634097409669678111657198103729949640464140477022644803024889040140603382834255756417830765285259543524895759336794734611951603275265831655997955838089469116643512166190082064075953702726744670245558451360934951047011538498992839259649300144872640910658171014936345420231260800948560185766177909904942803305723134430387264127821377611381142070802352444926564066626861876306667321431485537552380822030903486768905611938196318788197568459822834958310600388869963554428213588845510268213793834307210404127643720729596456703664199303703395954367946539092693118642144511441546682706835692627377272486523026460094480198911860413217979198975831780474225348192396707592228867360269302228863249758364522039675130120722635260510499165818687025686382213861815422155130646609160742942155352193522745304667820319422149691424329986679063286374236568373462448964758209710930558107964120686836527658221218636405808040453971000422461702988765495451997140084286193667638005872960393931723288049840173718067145902341374266995681546673675290375790824564551152259224222170826274034599406558528466497025856533362235604316400389412030614536709924927422113750361176248306254619136931369679713613273475599196601303480099572326065564257095008484912702665758950132396500477332955578565037968742677192068256285164563828526428319083194318845465722417145964119017056161040221482591645855913790118298577768927213302960179541762671519499617256634782008390200088200134815731680574574392739933343433083251679920352252024026657683040096112684895324007173907949622571274392545096296398840249795410615575556519372617780048608761481804371528893672778619339492218873232111611660628632435003493332489805142690987065329749247390221466987190895645614012733257900895687101130272353039900540713953376375865923628451842200730630465882088856944521954432528011676640355256628331884713510529906527188169269194377538469136562476510693616334731946522788586711597704541777256313206163178555457397633162900656441485524328719873354054886952072407305749586394676818732239299619893380321055674705461939869531958460772784023558749575708439140761676904157459118960230254427864971039800756693764518179382559783330627700899037973943376189642340822782187952434039373459621623494428659613847303375824276271805727240762731764853080781775395876897698996437820981363838375185885644624318439618513406376716129463130886473949420745779160645597997268584459090748154728559201123953794176822669668699637082197354949313371599763820542843206024646402399364882750357998213986113812326313228721358611787392526617026381789474904187277962111316104083107097822275931742355110413569636357599476242916163401620750542088549444121728963000122195187075364399888191784446094617731047299058126838080214004284707417989219378929910598600855643805594143055732619000925896018001595797699133266905808452136846125558106081214327344507685125022866997773993933371640102080830660358151877047756882281377354148633531682867042240441202326273681527816243156145155963444947267351960168519281660607304355653558830276960952097610049765545020980625753074855370425976813060427579906817376192268796441388837273541697529795217505886888445880148335354104110562637822187661812496001095802428215301615735524070643129689526912302491265807072896199148460592340141415058658957343947579344374197479705537699891008726293889449464942824128853694396446043375405457743416190308321875376337098830516622591935129518224536423124119505294623373781862625372162892845313010822902091435189965050927261208830754635798834428177408922956078325706585649349855111318085913539457602789417454302081665132831336335217545577315141036140853602905714602280282022435198187569711913794484055755934954144740226923869463074248726472657853310355374185108620427711580617624108416612762429115162536231643228719641502987244127223929945161899428916809201072364484314213504784346832099399043135817457112999906490854122186733954620786814838269823558356782750580338601192359268141838315108564118643549935503262739656642997605520381309368249064478623739230123396662410329835420562710920957912129061856703985854980382708629181473830116115554481815417436960074962639348951151814037050926852253516766867756226578423439843751031647489084812048681346174607587502094728601446418875269355854655856474062291443328141603047929743099523691494563117656991422246475448510849459887460323680636178742130466934652012297864927392675388919541214578360354106952027698264456867216551414427362334076996866189270085795502130958369870301720379782880263547615249376704816421519280927970025817598811403455043195456367955340638710582002004825846337051292841384017801043460372989563268573848399361682263994661800536572863951928561573467417399436667812803789761813538749160638704980357097475678711293476794930322040909122628993948148256755819981622442503828218895624660695842296105814018560244780489506403552734017398209587301621128948981853010753293837475000816512359143557023253709889778612711815622481999385856711131718093418586943746372180083508916722517619470785970490122107568931670228602046772312674691490692244255523244449414152777833770887748963445367808229544652163369883331809439605620239935990119506961171637697335846406136977539224976886402755721009595754157498804068273065785188979914146130772704683130565153811340011478424898082311548454095172080988691016070095221980034007295800164741696029227503474440530084553382949608776263929093318644752639024208047498227115893752489549426232552511293387734950417864287137771140645891079046610398776727940218280222103439532313943753122618903951409662652948527877070144274687570406305065149546536736555841058864543999660781286152736668409226116526056841007036816507445673655257421193482516891235465762319088198941639002291972733463302196529071023656039119639294163652173503349881338974450027189659723721005391445320221839769081589508191381273534007443095536287389480507771231891424618785479107613683417208159174584109186765395591482451161662006533793883372449299990197641937667828940050846357458104823062076415926725567535235755387691214074503380574589422029607046103074775585039946263121330433668520339757746212855157861686260670939800632553051237829597172875331446684304475469840967100273339808857249220458667238534374151571740188899367317835024402504972683066968496275099050385801489197090996753377566304811416850761158082095817383081138961073293475753321229856862428760257262228890296964217750574456891977887412857556219256256846610004148591902074080980427609460218117022421877462655557767417390794211677651807301116043027786044247204668603623277220823992889163647359469160018962519686950429925025055479187158082607870505727762471619875361596143317405307762242535166672630015556902774377745284155265903071202889995444447723835638655278282963456736995562673400018184295828312091858757277566322562204189290785147651228747946077895322706282350379478191130044137284448253652721027528973432627259661962793095199769248117950318217177886589239767110650546191779659731386046678506013767135987112443336032796992059713717979660602262041670245394945318490046206979723846254190405161464660033512331002910638468079183755490263555699929434234234818583939737336514129196999483354779773181770186602746678746301508161572933677768495005414225861054426724508282706453843347597611453196770520254903753492662995503685769975504763075348481801113960826901680735268935626605679556721497743688767173360326430067071203812403983985304480541757508137543025926942162845956978839080425639244565794437547193100797887295091672820125015120649711443239126344863686253659097687787509386704596000008334112983712860867909998356141946600944082943765783286727154396614456972447945861500076650386682284691234379499007587949784137843368397665008222561772015040036196523403842904819821901222767624247773885025448522228498507377882301856490029071092805127753057915063842028829791005597891471531225332934312354119248737823782353220709122441577539439309004803206129270413219517904923395574467000221441069156794264204174817113622561917337217983495133373419077729004499437635295106743948165699004599232512470766750512700825236987120886401509327574107052416495303925167736754086149895712903869916141624064850777130660902998865969804930135887441762918075259822016166117564753798232555357801551596258819889374919506906724436409217670127490159805590264971539724801947547161765705526744461225299247473975809636519457496106938142721060927165578091280778436858683172887855937017138078648779734534869684190717611473655442158072326407083088842011902747633269443132923789810358572151392911281781864805030212097389772053758910518148169258611086264787410197006570074117957470781147976582453692622327068159313569835086391806883450856705828679589964813760641814757074774084275910016693214666398444068620619289710081466145051902616563647867578366583761940317578676977867016089284624413503454383018025129803712763649888417921849256862989932127217620137344853932799859003035537058671507034148590586546503117653785615012729950873189692590861846195356797982856591800642086244067268218520718571661111780856693596730480905949036440474349431261213393744178806749518751477180002398164972685366212630989123901974661709646728331254721629120200964289130794693131320937412985229204719127905938786875698686855236692531104771937751825632087858863980381461745122059257308415186427125617417102432369216777994619941180005501303859927202503740337836474409979542253049436410890109341647494984778408375289427425874430894436253297049523270219046718514777423664278676865201578309289478203615845432720729228698890969552426473197596414200020605783692204091549190395764739197071047301142071299148640034903923383006733416991999892403054845799032148323377456033844011549519375517988227977160255356976817245406827138852829957471560622605565220884644838974523306927602217871114934841317223275729304646139716341325789253902050199650398551651557660820264305051149261069283000467895543237611236070936277279022736845617289627190952770105555457041979708557678063079268850024801527004964738680724049018113282004527825293793552131697449807525730393630835804435594244091819803988023325266555963257884163569212693854799965982034783013083215685810230601640548514497495572204207031227386365411519984183801028702729297401986318629244546042876123599073815908382646467009175575817578433152723342497154084134990174254265130611661060763141893555254600180030205149132710580042206965634204898062489034601275527788020631213783141544463959509887706129577588132848547197450256767878018353829699966578438662478281060813571652856452162943819257460996883005846151122240671710148303364279388959022573187182232433938519613254608102942772097015441512042437722146847404454993220556076475047178005059196660504816222843808289906167393678959511941131346758447273955652656550400612541474885661706801211977800796541253725646474534943781857324791666001744643850191660927536803536173099229117207541207154646847863647077308452757850805192964593566138506099313682410458680023881687093161281136545663396204558683900841464245205161542890015684287103401971906899815747050388495819630745094696773775621849636487396074606312944150661529308225858274786140665952911994977942688291406536657848529011797729815585033306532549896738843763318163375533710337965450198896559994195714052310806735248420364281722009533539851544502813467806846806620883234618446126063840041263326826053432112194843290495430507552028933804439238286230713073144644271693929617353418903609003065791733542884612760859621052596669060308248616134499864455300925759254697750802656851049409716256704085369303871652441626863946878276469340415563551068386336040223667114811049828788637488208389027326546574905431200609360831383470199051007670701687505457818464374477858501712303795214291507297217264480761106341036394402143395333271536325681011971749799506145171669405531880543526761849674462536157379288651032404011507763460066266234137705911823809209279182709603664734755785886264897630387894416511579803465556053896619421280418876985609972775228901783772199330794758155237928614909815654244460306111907260808715386198751070130816150312946374869050537365121805366368061994338220903800174758774386480136637759978082977373489153124510802231618302298604493620871830631458219162538127533426480848989393146765538035401203585731000644921182272876364036675829635733792523323814346834315260470054221722316032729018317175321372772162151728193718191127274857868573419136851070130269775679842219748957053013122336720961362609627191560390362289700349947419751948657485015285208343532032193063077185341940143444645824394405285337408613394536488285899429154470249742967786508158912788177818184386730967358201036369693644634480270798673378224577594320019451224851351425094097442743636451745715236134530288251862450747745949159944257878150485882433474804417729331898284479794204763333008376245725738025175827863736001916258286824236935539194084901684414604152074207959233334009820430703276712250714539941206699501162825077104221863511324453147286251024450331146684695646676978367439948423478205728138140860005032196842843696539302514046490656267274445736502100987519167928334880400473336308166385533683976485215079612773243421351549113675167292478352756072721786015071905555983173625475996884752450409062332173230537284949840526643250535451666547507928428436191132344458438396881419910696419876261016387444473591891256996681889689517395067405799815368871436154100111159799758863641013779882870770052563019470591361905143607587150531545052509326030617401703574334996433837221999824483879165741601182191574743159949999567647854604550929896472020682293981091258562534110652300649773105296107581627786466747065165391609199075337133717138258438878983754306128748181877790537833203806881230494673541225371809281471344920068212467674874154981916823077706868842867906281969896882637845844098004478353870463900344036261720702629480130085248140140246067842640594276767246502624659003612604633106358337730358236484426131322277626205828588614213886383945123584609990689191939417842972354342617642537662406953516495578606557076278151134764516442974061430901813088734226313945107738863471078888575544403157960293987770951013292455945493771009499027277434164535343920181406030137762538467295083160174531781321848745686233656607442433160671165373757675377606476513539316504464121772411558120392370259160717270008336244644334010623484150949215271335346463540840075396234579824886729931500747226378381511104687750448617480579668283802016346586960022673094193323904764871128479111875662315998151694797222713120082861736817125026958149901711633055679480576821193560730988287300274912819719326977033677009086945433834143415313200578078025644327017977699292176567817576970101035969606058504615003639537206624490207883518795561272264230245663037080671970712731726438863739558887491760110227929756524341524568404859608326026722264994081139844804606562002236341894055808214965512530556719910915918967087860717816627860977165260731791995542634009558875799977795898711096719642780833826537183749361077703107757187073762209195014160789631823933474199538046233519363360801407382385490665711332042733401250046616058533222944375964783713617538353719691578225555893938723032895662268063130741449361801129335918446979429064754283570954019760203771386072556505568204035418836561210231359408995720340852358360208298747542753525987578521905802390416536835597941508880219490440823948787480014416338965432084411193733158751832871862720533832275671911187186597838793755583382580014195433638804957384659282461222073529647248244851238099290096709376044816244451644969126393612599264026969343629582132794800114243908542003938659588654082007093648346282686432795098122771461014466933689877230280309756782931815838497951602160288136473359398993283170573744928397354219317319388528612520203407460545003178184935014247912726863699933880142543382385132959398616365817993659154225226772363142758987440966497173755018086796113379823328703994188194755838342964639389366412534992498167368402356690928308979376354325866092538630254922345472476987571160787560588252829009154177826119345037175334809037240224759983956628482069231761591808666224840189165927569622922582648122443617431978702246033402663101245106171627616077027775056194563631685957416166169994888702730897740881838031491352507336118386079897162005378254743150214609111465632191958129679661540863006016255480738637805126800974308583577187017188065213623549427367353665896436970430501387603478483545244404437406976724573288449626818394946185307965650184592961831382766488806636902598777691123623545987441735296386994726799038189589038558539476038470620315627143850926415460649253945076411291591736853541121668155915747082063641745321744277893259041769863924320836345463898905354425144749163363573675649177484443018169834342736225918570194929627865995225604915854330727244741509211455568597475171765706278971491680009624021998840262262614584018221406378764367362503690745985241922949199631035873283352697646810312405004336525820438498574455363898685882501831382937214632382996558470628001043612314680083436404290921089144965504101389160215213864318706041878526703014011275849001491193241016553682381109439609389361760649519345554162488775986862600792815896382840375945710157210494444026950328637530766133039857726678952173377690105283284300440048740970640245154371695057094290776628626612777421881914535072020636408283073326740101413030545709949675139459755613455143775220095204117888611959154521654457127626238669821469481662158448467469141221834419581889519249660586123046357563799874512814999705301755073701795603865126250446802747436300849455501136455652570377428777243713905571557873534164661024310104981134828352130105577951268009844649535207382627747604990755802071833035314568117583906645113577413331103248292841021583016362778457318004020910992727953177812962834008330732285856260715021945691730828105236687971486358359019510435508075908112753025765881265042127652910761562028987786139772088080556631872724648954462236151786099918509427046101700610733153751517501541650196376123807769510135022620819100769593154491670095303404641255494853728943036731049517353962103982156078529128526091031739004954286834738618500371382454744544429860564880938203804032678722672157754902779211247176667656022063344502652436115358063801187415557018133336553497665107333410195337367308959530145311529347960560432780245476326098195997615327756117776886510861012483223609440124445210707594393726936728306508364889293319078458605950170764591477768805771981144720985968121793672730258069696373568507537076880560463186768847859251214806581007591571038510121453304376856810380293251397920870980716659186303511968304542951005797405626441341316404787327453764625560170407432760534357322198857762774336065897284168255230625595169279954443667738436762977955720010640701623942502165357010959307008624737772157100383308665668912936949407796605466453885274253914520935735904679360379014434177961452996107103610553391526266916902541220074946661063710063819850094401418282021147712153302413964323011748889455710594297573961189736411071845669576681175787239407885979953793943596532277797474126579250761306838671650408922114479832536234245362081997859252215052300358315508076229680744887551350443078924951174023516102983558606406036482509159537742615801654909640525228640271527754043886128626057136230605760209922147423128427533795097226067469156789029824727879244243752904453558295709280383516718686840266557304963343217199038254466442073157886906009197099732650336255464160784740375445077727677122089224770672753299831415380333176405893034329971780610492421559248308520711278927514025364355673740656018435376293055169657601982453804672778977159720929240964854998174797395958296094559922481261441942181031619817464481249667473474386731811660434161615000665937720616824642743748821907363393802938853610992236135543029128069431764339103367226481345551019601867299974249349590836053755852324217687278070063576931119725046675402468412879522175944574474532292455634148930973658641634486516127659031851130061977046565749974829281809432442758030804091373754044915541542145744879338185921918356648328395213256014825201038319556702480322213352307513119502624183955905070341431218710896474695835729520683213923877464708164772198278998873171688504384001517457146145427705424746209631662746079417440644349212916155923903728562105249586712067295299656026518708941304578882725548172224219847004019360020241068373901826822839956954574816893153523615803638539813506806747756670632129416372893012161637861995932428599049736446743408473028629360564042142682641663207363925797515672700661305718630731223615744101608116690848241444494755164329655379697407796054554703373840063989721413559497369177994731010280073370362026307463575560582626345200112507502797431144635239271327834428697800142054611699388564012447441841457231562352599733454931445676041152636174041124871273494301104344750186531081163483053331497909331395459813880083537127532306577388872146850067401175708947051928079180212943021368733978686039901437250727778946048266793530690764064817560981043574627934145916993320989180823824029118963469448541442565551789576972419504564186864639021138696170458650140267705359069467131809477542065782567020759570077331538332708383688567822610311570594304244501582905536492714860859407815214600473462038121655693147616723117718434250870983553456737664226687030853286757203653275892132491576157356684268093958462194727963441555135645751173926059704890371286309681625409713085034996032514104026713374647915059901478663344303754249301603875611187105551087547406510652206306557502354342194380562605224276036854095835874791769488531504589562395297999151366781952453358892837070404268977570628945442808592128098685671223532162668120807894878772414854680715678151141239097611245203048239086374766655269661782024285795176861315283853518046840587117341294065778177925519096096554132264820864422816959153617051516743101577037532336054257401348063298216999610831081467761500847700610596920130113972134298572209777441815768199925425281773695026639846550241783221927107963314784550735068491516572351379242691523718621625062189921100898724894671266074568775098401470839878261012023621462436416152766352844357739775004479505064369896917252544880679506300699249588369543347466946308191402097254667482931567814711044471825953326545122916045022251530137231236930371467156113011165787675568412486222656264318878070535537358703245613070435629988727707543114220388434060214043439777230919903899044171389953010271175658251714719949781498876767664321586171774303314634714952351095301918932909976396411672980054252944623951033066002138493937001216666946795060273632070332465500403871212960039595686868041142441751306236234876379273821136413781112842867948357961272674849531186777698736010768367931125815561713057860169598643155612269241082787741727805041944163648994765889580594932439714570424909385953202922828079798889347674893817122519763554147196577196894854577726344624768567884134231101536957915264791326064388316940596099687876270493440541884628444608483716660023441372483339894028806002873935567640966345905540303998068538083958287783532594509334774352209245127644714318637674135323408679759814139306489104391049445308004733599895506387866399950187814118405378732483210154382063816354138888208151827262822247252003440846949190737689386890320501110533112668337784510907747412827078935799598025568215354941243632120848815790113394483000865217631531011746351578747338506078740457710376907094480338265998518651245726169033166846028533534598157286312484209152743192473124254433001391814875941693069753462813566377063102684627313474963704437530157162164925709689358273222002179184535751901426724100312897210864684048055248990733678030333745725674622739824741617091678290746661962541115220633768481189256624390331118426325175414418788488007445103450505417348211948742697403200338546279864555451878708584874448089797964004765190433477111723440633646355076107974479300330524871727230295652541841317509779460812958680115355831610746161371715338379865829278842051603718066121644939648778730647698778791171405544447433524575817255405151844964361665289086245027152347370538251188018270530562334768818299275759624135599467202895348286257070694448771722880816423314700127725033061485885801935594619682004034469388563443118459115419814961312897748627405451315918433514112897989810804762086014344500821482775356922371342532130189913556637787325517423566029877791348072105403073726964001198682525312091487584934689205760504759823584697120039059034756159344704558500550008334047498645654554200116233101717989856922358973970579158477201856175312158801130843427175668494498468015624234724192057211994562698235514667223912410372966061824769484446511714354011151400803590920892588942848529750495840993591625658329113033443087144324118632120353212861177021445424753134586347107822965214777452684238242616560201031234777884592723664954865908141149174147269311051368544097889808805973814274366744666697664862210695808735661087335293578689481782847221646912226086613616755215749775977621383741242819365176666040285017955548228820654879927756599759406816226936126843627360857607945653110643488713069324146724272627244831995207948386376710472510916155507387939601640723187469792073808866876644175172493030925358920809870955308718659041886721099980644767181076291126230442145618570367759232629103085071475878986746992225323654080883273553758239913798920519996240540843609116605337008375939127945532198746900415176815759848055745131984178913514375875857459107749648343070972608842553093511228850236893647684840281468068969492569250659699164622464984876888214261548850755214592707037109324802350445960929500919414342947706985822491600409793124135894935589068750421204420511701579363138162047175594361212272389518312870871817220160839037350697766044449601434072189856914104606237244607183044612496473153358864692702686153335674694295909921496901863649169498887716283961345887955711383408473457356136627152846074434110814105217678215852026356612540751189480201187446069112725045125721775741451962492614362425784526106118601237425854001974200594633190482462820488782992385664915731749911729054894836664415287989898418620159605811130826603461624038136052660940001356792837639184481121871814653626932114547220620147613914254370033179498933172757202648171462125973701281499606682883402810096649579065355366725352273475417594059452273496384091727755097473305768958354383374365498724217539997557215383760548477122462502346949058665807469392205626969934063961762333119751515532638459281833600925824866941501342503626077058777589240966063803632332296263502044168869120425171929483986409015682861561652764632139044583812104508397613930296183371802921418272605035930875134236921545348122645110137823745032157189116154591945529580802327111597581087151873338031038936952857056722766095921907176738522032238322761216629539158610146565215804451709424122823736657591333342387878585871007125879454913345964968989545508528308246018424170900840295387817120712241761452014193022585401338670995667948962417344476451490782345394935043681049981075629412350217475533212639984526274396963285624284343890420580042778814883176005440757024257073016347164873588068109973026392875132570695107467230551335585096550163531944051612902538333677549293481321007399549852396462519288503127700454349603980412937026411916600504317116978294834103356400525899811764445153511089123565359291986096402215936569142312575976359705909174918282579974957663942326448247005750733598340831279125940648011811669418679837108989285847312267806588792111859508252250890557312193151126281770979228943179673540857975360199451597564886419422591881268820270698949694923896020381104617008517972872683226357197062400912752557712279196021982841088596033152545483100828887486721134593518150558373945236523185430597980867853994888008297022776346324156392966632026010935064702400320788290850307243888173806080190976496584319267503532794600352588097566204633199709813690473411527351276219845201666439015540205508545696567837234129642646556606524330706605387237221927743268683044365582398533348175259369751845482692050736655036071428771122959804712756624009811293986330278788345479276819728397016760598256715945569294115848571992124585850767834659464777877057549279751959026729562734440591559987714044377770822518867710214802045832391331984332038597202533753828097867568825741994776543621048230006723379213915622131748153381911154315326798110326706169314080057311660670414291270075017172360707173846593176309025224459674464520705100380036523814004348063802731345854456715078989960495386069483930929469443928502654429622506645848164819768353551539778168180622345970903651669913698657521188538507071302123446119276618610353866221641198432137687239375374230929917954649244288350584194628633412386105029437488515253621969030773064681918747755334269641020543164476208413924556633477203628501427467044831085790941101618779694098077925137144180613269489690774784100823968220082876318205815092740829022554805633033081952058847896554454690813086268841120787760759573618917816378998420666978557412715637411002824196949597127565213684290146531300419173935319065276272787576511483829370165555535458896518154589948883855799991257560276128433148065240406169144681093515494749085020303135416735293952653564261083201511755626011278825160372198003191170399688354648687620926263885060478850097175526745673343608278510764370530114092278156208910716752829097289067102873216229628691967536868561956494118521022901653857783413931612683977052865154346359426030380412706865866727284224068390093593509212069696793272863131019887369198516582539192649013587978491846814828726993613814198017883299287349849959953810897416284557283249143547494257717953987888186554489162995148931609987343124208125258632717796621950346335409751174062385896032739590747400798435457530798420513446539800450512277525805210753539176912232186943100383402491875763365306639311106370388740882711243560275205114731634116286893715460540148570609756313586125288479613689203550840685840189376435576193195910274036599395269182417748235337504911717764370903314747949510059448261740584135945039338842584505969671469967264374291426425476643963712360057686377662595813246857458709179711743437014762063431830840077084702416774448665364317862141975764476998871893598582684709075489636641932663166720053724345653530459123232077113392438838272345275908679443716547856061711119198097326473927760412246038216904150789724196749484125903390903603779781355852991148546102765299683496233627585383182435019467476117877839954210726820807106287819127401921689646571644856942479577165461783148084506792019520627727880052559415278501944497143699425565344824807367585926988388888704187864053795651398263309236329189483808255126270629928051136351919819701358146233988880551639971056391891576825325736220439412475697381596858793931016847054495949901320234570735563082911540203413686667720929310428526215896669983728604227262201002662257841190815091304695847189249984988475026481759922535109416154369256338201842752526205199750648314265370231314363006828962607982031942609089339043739286641357475329790948236679367305667581803427591306851878101730623211355797311009620555815790331375182770020085218853508235242661779027468767211887029923512468561425570178998621659577829227837862529387329738821675326840237483224388405556274434398979670475729915159134644272259657203793325655230175925604296475896523068408317151582115118085923542401560250612021914345546321964489355799933547885776817605292453632451497847442997447867281530363442014667766729998856979828652091698438709094522236269242120379943854281516431287902963145250940039337871712567174948514261640441156866479530849442425584627535347237508304791193290011061671763657588815441457554324475978029771824698216753859637485235794725120748104521260460334990221583443900590561534853340813194668630983356421722258749660770721461517222084265400150494626660104313962966529139399148850370981179071367992486676684740133396913200317112403666852694340767529351850329844763505703048439625556362878111507949029424164579694256966534127691242959301556087653083472555644440231713582150341808551715408083408773431284596472269703683944626516547611892083500357052205487604269750855479375574699594501471992614576156252391662050827685282438359608935170639398567582090788981383880402028908483219472263085643363458946032074476468851967370982491224312331586956327578015858704932015416944074546930880587683190662788645228287998797315977527666674433536380735143201787458893316628034640469061480535954439788505383919137422269173407240428659465878951733060927598054523033540052086985828151365661555068170509930752578053966008836095997923895359932177057627476210240469131847939979833697182139603644871815639233687715301157827075325430811275512409871071623958987969042062555305891138698772663254713949203206914340231285227043137448929057014198963535082216248771579330347089826188180177102498869654695443415080795770120498285033097838700478918792155009987610902611681311144338571839909150777916175721037150958696407742982733165885961244609242769469363201870333972980323635371694312686939989890807496985409987559637001152727247840100290364218185360143827318431584484204852146778795972710953544050156730029574013855064204813643140034014784330836253490801040880763763612446922952095025685644692685199967878122525826742328511698757042735306740127193094592796628898201923999497797677478873869081105145194524460972446905047672602983914436854745150022656341093221677296979471164293134477697310395112916679175034719929774837182122383404436012732440659475093524787373296471610283791105461259725095627883590252352869660123512019501863527690488079574214680271968973292437175295990000219951038004745030762985307275652242881070483140483900209670951575007452048635397161712514875822084376076637068430432512935904324528178459843577599779233932797024086062834106845834017863085484235690666260426437976113946587390429311344495258107921704800048299938409445917101120426788646493184110448414892666615776353281646693646392795588532191678559768479621305741347850997226691295096329136623449370864679657777583484029804326021394018490690421525427228109069691089024877614434925760547716821391620117014570589224337282875181658015615554109549238736529234541855347255526803316282210624478048629924553500042367044966004939616659102422084090424516127037242135076663743554997748005618538267289555643268267137695984821000537340029240172166449119961821685277222577278843125429296928159593169108244878312694665743728886365679407476532205278404793510486618454297710240146723676710575455281113063340463552718750785903052754117864264923787897162654145509579018254299203862357491042443364754322537827253800726537094396133042351163719265900687045129978542146293275648748591027442445064281136556604712703849188850802136573771079511651409341552558012810231432539937344689466744779004596565058200391752880011821812436713999414431195300060535541044251558001153584958576374894616193370142896252843712720741961165030284527146947393337335088014966692454482712476735207108067941383393663581907888906099800496042225303037485213757611310332272068318437923117341618572885863527527476944312044539054829693151699974565264278581734345150680608821069855877843288703593559912441846750729833438397140459607375478757486704146262393685214865310573061485407715712117091961066909317066698528805698232939698137369233302742774942351385076408153872106373221020031574351812140860682126472319388184036853205928522995664331616142740640476396170607533681637516596658031405706314812552571193049881771714932409214009043766223533916394054846677750634260900200749769498853869517014047801013606491464331593337198495588470778001980705813695861961054774546440624611406893967960069370053590287377723670909590369638944631046748748361187678544644078833084687737974187203742483038237865378564521784083617228236339886680203113852602841565564522552249931939689192291859811049141780470360129473324621836869682105236282721089682460735684831788692365389921141427897173262776544179261641348584398127670645795777067042296652541735071795590402310628665678915413789650145438449090002838233090850262353636063517177014861080128185872775490439965559830510388465511175836327718750828607498020091108176271261027436366022736654128699965705453324920222986943536957526699501719739875377151618083597268281775222950660040504000917842482906883278981796384203701010602781490130578366633322120585317861567519536529228141123793502061055735042394963881490647539571616590922570240126537704272565661708779607971295710644870608396590184144986402593743830729887459492758469611242467985172786636297200418991799379229169882868946169484839409974769473064844507263070976740993220092522402039083562174896698356482080710655097492391633964864093299428875603846435855360602770527491478071474827492811117411592426918007179109763488306791723978323365538775338359941015648296841868963871785194732289023086862439674620187939886097148990080689890167664083861831991750755361367640000668476325468949777410725647730741668424089355663446110659765758507723621232157184082082040671889624243055642719513744070509488509044466810214071889915164579612382594020011906782282483638822032063899940697961892037672479716564411690698855436365913536375176387594781469587151373820409918806117673126927259461210555232658482653332913476691717626645981344531313832795653953668178138698733528539655470248546421330032587754828226105623238065226738807610090990075735193070805479703231265351431010190167651672356027379768911987808223983722627375079887584554912503270012965597813399553919436613837947128673037410239705574315796296012816366660475438233802601506498991533324849503362422483225566097018801953200980139436875316825722944410257552314079501107651697224839644176293248951569844103136458947799480676696236900874525146882739058824548906305453237961795073095211689447033049784214540361091621427922408049109116519360645305832386914256193519876483495059873898564067000228346507057255116047469970455943585725431524518508535654782039595899065787397555285512106947919097415434699561211094941054831722740725997421681990474804684703211829980464168976500975662429152244362049095512829483923325618272422160023320101808256620291510945213024078600966571931422596939264285718916886120312512058342298479044159897807426783123270516424960624391142436303433125007748179132906731295104459863496328514421763823215793103542154542612594470980946917162806022057544019571422535646516714080006413321708261016678331210896540895707670557438045357285154553111305686505630126028128195982618204182503187088513215889494189564369075755945304248179129427958153708953142198943922418250019383553258314648870751296917395704861129363804153955930876552548699609350575459499944822238238682054777263761944845022085787718736853224287325619290383030847485871421939114655765328442536544848316656703611386760927241510019964588160951714547747408734728046484477457729504844021626847740030665687712458013941857095760175104395312130208519588606398423117484397434916268448119794405347309127925039907116527531384874576922490149990528199693990255196201992717540760776265492103098280423747558462321194736956384188866818084076062475307651436176958411911744677652072973515416247818619313807579959339820652450991194302529205243681330287675686813236434041412691776906067550057660971694009867331292580111243965904700859090001452480762146916947108515744980431404747941574030559291103623119781924643340326879958851121940490422193142348582321948659898564387320695651337843982360469633290118412002787907471175104989216214484916637181496891226259990057485584126443368787984863341396917570700008593523671471198837472374603157498102271596832408311427594864834226645978010885982348979936388718397552037183542060194800757479864222247484398708576302354715364221288088655961752177547051156930003724518188164254607249878152577246390985251809819089025698426079559714138790615044743807437210665056419747308984681663603333555969575212477975490159288960596604093954570960790028447220953122743465841207605070420862837435732135077130144498768106075107364996411943299284240352278529117514399251257530620686631222980787308176569627261892688532077385658545817245327681642097468477300712465191886282828123758094049350951279583633703019064724639456613330116206991457667083735520110602901741086728528746998374047738480648041248260621929976333296427391260665729929013171378559752935326675655164607056093591266261382760739368588332056860979667045633116138541504987476167802449437299431282013343153049194809782350311891050513947259101970927122332877831436203884825154347611999354536133716485754107218008901913293997410503748701656832355279305714031934654747356862824374753432258230877972981825949094540385593562949623162087022695605861441765491725532837360860038952324223602361606709570045862445211607696620341250917034696554894193732750464900305894901430050958656188620768577878473907253524738516310631266863334102148227543910838097596930911990957227453754636777263271998593236689821780919657491961184369686521168576863245996887141239870253726089979263060053336640528133635330600192279068647022450822815993885047324396777377456629895203354902046276520615677937655347088701541508585661911311091434939359060844301102426366549325909503845750137524614000116732599872429370479825156755575970086868804220372630809734787533321096548445776461674509643016443210250481629725925746237001215697906399587523782832095954045154677503876975642604865558216625137671409244995298910329414483142325968561109543653172452832163717140132483123233751052769640780649337827481988270951852669848099468818864270150855122074459259748521903396856814281522767179339975074489824879691810223162578810362296960501664795806062970417837599828499833619367896541730209456336229505360569700708069987346137737215873003245035095643370603388528985343773252154091438530680898562607355729282139396402772365296564738193122525520985783039701393163483958045386305247141815392888049852913079648887463618217545895395964367921923621517613129595475694915369245244837068538309925467123553960513330655496022133674701559241987203375043278317922439839141306812351874580776163232295065681289889526757156461273229024455705071274696284827619532037693570387940814204797358845576624915633298284939946650733252460159966997547851580663261992664370030732100566347585480546129556428175197373857732343540868097094214275510443700430679641339673935404888143390340758328345056264832218365204556429955477755568509352983430877214450828992785968495839003764548898630127018282565441131846436958220372283766741864178279629040966375689683206306990125878286809653594901324060844033438629055539114561728118711514381372960673592316038793972269378298148202491126833088962287946554243193731913184163432148729890374795545725298031036669743155021384988500472761019799256849053638514612142198748409961119106393811531984312258695742946579312246286853921479257084900869029051307614509924335301217518678452549280604419408000081682973360094329832174074696970240800629759581516429135557034317350508731543093393086255911129231584466993318612428288449725278026646447299966463536735982941673077653872641752926544609811215671131119348563460297729353261815325820786460188748332403232813591005184465493065854715979587066493514977414212025635789409389710439715273404844973494000724287351055319204192620437012596631309129181363484628381119248642331422672564743707905616456426886947796409279620460159895944536279859135478007651331371154343926501112654653843745163930806461846287427318564969005349398074630107050929933563342434675096612660339562361036010157932428758890852070792660682683765846278626214988875760612273626188170518195443821218778774111725553941651870879107979808940850017873315523534734954158498759417417122433531902603851863286322506748480160324220297278475819451011474031546936140718851839155318937769698060219903622340832288632517712262777206354176638096972120517604072132915502108929069362876605239172160126835101301607965328601906928004950003189459091182949936635412143700589312835526601822864228388764443156672028198239266709473411870412300725080282493692541228043751918282016428512473643764574088575825800063882984104494452418847869667813511631851631595219600838503292295096570012254501967168002015374198887847476176384031614858849138686137481813306064934509977885314337349969879071444624525506390094421564322086434633119551484918755229328765734010936790316048335510692075031404192585661948185433752654908330990301507185546129580909358407603960650628693645508408313124940573812673901670942959908045335039892424050977298794701130924937078603382418511028274926266969463648956321779591479785624844469689346989612946574873492792872884285934584753365610684690571871740847078724386086629395039251357523399126365017683534422264164655649116911673813114628548146114861892861930783123728790647037758456292642399921950963549952299817108404014208160589385996314645012997642513232302356465309112064735970689965843349279525014656669920843516640159197741618488517153424058863771880722721187050157490601582487304934366271280993492811338000040503335865074396925667030093534202779132963310233471239118659382907021168684084397234123812105308942553633818253184225603818801402144351671714828514843098090851606081489504492536461548398418448711152452139805779169529435772139007836542933440602650290098618563625231580644621849287972234541261657504696688461693352059032651963727447991748460535187861137722384581655384216192027657348995794494709314282320854653660507885292588371758564084361734318134860593140857874602047403084714298484055068954984138531848419860941843132809066697457977910041543490846270489600869208942875282472764654717281506264479663162289768195248447195594580186881760308973962469607001209319447277231944644099653940059424503707293712381176031496569024519298626837579162431485651938182880592368576535230405389360823338828919997408137932908299345918203310659891592893669393877755154060001473443668830453048293001130361303067742116083751401697819860194125722379409999553740572923156726549264637523472289491522515913164571860935032385491283798718136407850263946171736164400812603464450137663130833667191931180035664989793005059091433026305277691104672803783154220961258362811041849316348858502504569507847748360235727494718930130586507275460665227696802231806419083290395413558885772067585118363249957378247132807929555402991565739285033986128015525783597420330817737097369392222766391570259843869410120103748542813862426869928633095248380568496256035658292846356885609781564329012446002854102195786515767797523918709151115652387632575894484786292573808167865738794772452928900315287501805700637815152438518191946987210875744763745461688645365547745726556624770698967878482970904394050153805904087209310607699426986435070088003190691724501366742778346486953868766613244961249915308245290607855783272419534154832638940832868515351471631146105469409813042093650027109190784268213067959317291891861371568351748264968009774642022392033329513184302279475868690946688097476488206241673692465631672379299180621357832778585901886923371167687527765542432622038461433270914877373804791276921455192078765852628251651548602253255686078586288935229638955092684823833558958724435519812817945440165576602957629717396013785617683122721567760177978258397173978977001591332595882812857131669264698564212375600108916551651674102804264053244436613999592369770853950407462459461680689299889763594041316335250613666932568566874975572173969302058251583349587620148698428757461282733283845312053199163333676478307994801247614353019595688024990585324848488854880231792601585430429525661828527049633057461457987268818999372593492018020614365958581486694603490424050890340051668072746301656224204047795528438034979837678126263648832628690180425009789015333989767936854166319192618671834095848040115153256531186885976032837541884532837096441089272469075032511618994975778718643525243982563464052374145367393344461601037386421534550484726249783529851765299726444505174253904691351807360928770599745574463651647324434806784074315843725705244285532872704485867573821187888894037006851740463821800390430552952493065909416890853773710160827305966892092779181091136916390770197803303300035688707702314563557907159590007326393414686057950029791822690964958242597210678512147170663198079176335586857995637074492311141289154417719072894180114282169697771267623964731963874121154942749628758250385205911497275338372581579016830597472752638420273911476338535829767872276290567477391022045660071911607973303925587289723629753076216477093183757884300108839704505315472865846734082777176004557982230578465472188922617813558419401903871765951591302281691244662829825896969478772131450995793162582939090139183493609681192828373296849945065587576573333924607313763640561807752853472781674204402920706694452402834659128799799774000096246278860766339799429642390406815096401188164028942063302381424018335827501377256919302748312964855025258591823266022844999996696272380723798398230499815762006238721525089655842177644256374226321904095760852360123260777260801261611172392206601271573848689526102085360336487035911935409491141951212466531447278739807012289700686579953865161692680860520218974684880055766711257870853679225305114614369659312242980962048388595394249618091724258307723352947855335798499919191119714203362660348335227850399229721110054633446959782368753983672804413885147095316785919070003443073414835749784872652429282019896413298439256379960876096726993919717779605344926482232578472155856645871526393150466723362460773716891675996089594705311965807088472207980818737387722827049109309702525367219820373278683348628884855259980075342702309775817379535682365602934148465804196788522692169574692774881395086039859172648209579180888839863551646217054511071820076314545156294283321645873684534003565396796003615159547438557770270361460368016288186092364035655971637779766585861105489910976184443841687850996889468146397944000733832001492220468660011561814103125810485382868314951145695003828789521493165597865454607039334444107857938787366308074685650662834027169908111403477860563716373198138811567886957425297512077231022149770911870880089817449519057945638105559094028458633359395878854781993215974862942419111677272683640749716602750048981159573716703763201167347274843030747788962199583190826950985428944147365106544633109956471787373576717735622887187994426404750800449195984296526852607658122887449181127099616406310885283612351963222556259051705692928873222111902053640899512746920957117772790726485503428470627596329044284543992481628829663489003518499610637207257009264749067831747068996222616396228977074428184348370415608866599057340272701572953484685163420856774412069567603322463774524486054254754900821481049245486619480762278649946750807477933298872987303392220955452224345172747519613946247151349560901366020473285813304955550401560440224540748941086110922692262002937711338921162897138112424326004466380880937576243030915894509371346570903004451573807661337486495417231934714201096737820231627262932739471693325523309512342765681201295825426037540172180722405353390812542518010497538191016300913473880245689601097431769341828260509028403720667832949024935072865458888144995393404973866169111085073817032966471221484071517850454262657542985725872995457849269296837717643773459817352393810266982010503007601247543001708404997530054619743581418212012370053629380548513718829924016431285925711421604130746470393755439762122240416875132785389640958467360605857830025757233516231385486311737532829152854420933357269293696451598905368704655222115052188802280088070114396772811719832932316941782460195533405226788073345712143928856899011576674099729303048424565672560144666065386574085763029358275234478491292102107813421766709776020839458596222057934715456214206026755900961505766571096287622204521919768011773408943412160647187631751560424617591211039507793409266635250161132456828706027820852052981057778294815118156526588300082306816903839605532036095135051286857259857526337615317765776240517039648082479014502412231456721907006977898569286538024284735453774364995676097955106675083173934792644672683500349228296707388219939863164562546606604090847421719751488002385802016790087923872900025093956851706729918402500405853562711366715343619528599498648274106277014716379355714193696711377124882162827240738634724412875169610688016392445690897580608408564393871004600413268975123477648660695802101805509638953497809422017377779969455388290072274639401811195025730047907116970149850560305810926096076869513744592839712372578058629796258358805739736219086847283153158299066942635636750565886322062871287839214763963885126642411737367264466720849700564584238139086358548758237720789044033150744901569420992861821283442870124841171170670548401575999155147412933971385012954983749709575080059786724534606290524230826730367654979717911055018565324741765870122079946948028343954998296087493163809022831983546115391174597009146542322467600527394681915942647016252703306597342675984104936126844503960916577813292244211782564011323038251874042310985500418990513894855744039052102291620722251007651740129320456191977578758578778337674208735806261257973259170132683834213554902886593082798108012326334137628177406301651286099317642483310422863730891002590187768166474424795613131965340525314220863608347936599196566885549603195502900668876745336782053930739518980079968253687693503847054946900045597068179286825681674895374115484338068628759342943698139861038946767254063539088307970420514029316581535165096292034858680272635236933737602228317376039920374916339560314402939272880891474203272162382506184618174819529408116542394771806994320168674219376621705473821962752934195498062970099152272154711707882941629856944015990604099412670098032773050662942638960264076965284340343635740356196203510594757865321457609663033703406441947723009448765958849854427796222621267491725500410811808134273175350522191419311622236806037342047250725215749849048717252765059450429277469773488093631408466730568063732504803434090207848481337611530017418778844840363673622416653489298224780028219304834936670468550979421936721955506440575791825428485976785230690536941379976882745794222143015696779022589635729534912359760754277136085148678878739919982951783983824628242291870726260876554178821686398329283734001261656515777372294180221811693095321404453495467672518324200962412336832803074955183683459064340782898471231114577846819560288734364944624531392779156667671775881293019384010211469887798784844617914972534255082250980004110884572462785624016129599840737472154137486531788027295335919700757460812892928698092874091451166106610277000267126476068151726708977935568948411820269917066738577393805017022574383726431165286417114540460903978987775743434936244151232131428994120572571097560742721611152195532283148573525161050168417683488524284734680607817556753956854243051716384110905335314419345240216077815420145130676172205107761606085020166286660538222646751509683643082442863104365128099258400940378454424065460839880355649674063895352035121696911708466226308483235170746670416721729692739199090312939467596581718979147850328137117315671885087316709655782880586461164450198601407255782929597663732857938559658607486066613706948213421422888242506121426694810966140236597104170462205587351536742484149925882136779120553148539855143217942214556627369091759763263483425283066790600103069984673314247466991437477463354439496184696944995816132972322785891831215040754540773001118583623069358331145162545276819895947543057003426861654718263022250641048239463008993785916577871000773497483948782804994298461186422405970731067705329724718656981316613695356263880982127712499368087695975114396076532984140854456506114421094991711583039736991965020139665609812435940677538241666398358727530141169319345848936505833366297768448589290087224940253838090453587429859661392787790738648643658840826597321262421221391767826126365556317758171762278693355240345815475944525354304949842329469976340643730385412755977319263837252975893215882326860396470437293408138926207543823283263846863351113986194143448288841653415150816234979195143408205174299390110245319978314087848809504604708574246997141078253887057981263882666110226076456172512168946457109390531490080026361245637613614329078227437564028892693240969889983109262583129934613048431730388476398385872458796527301564429661471553106464037413687017583491727375210596892535710941399653027059019467845050336669752124669213549701284249280987521066408172737698784348595506287961568931440472353238709682404297725969244878106237391527912228404787684865177234171277721056273457244943539694004199172659315302239032755950037110740045771933759305648391904317500862892621085856593612708107362331437186959671690357243931185732901034924866460195015129938548040913269360495315827575839838580226985343556779772864654253503628521874559518666205780352404400415500581927481624477908646149440221883269177263255268445202425018052086167553382470518412052403718340383560695586173111496045490109248489078542499550659028329331850426518793258947724317100847107360187069176988101229286735452615678162434403732528542794877795189198628644225442078513753590896847697902651310254117505240949186604447345995911616898739379797498830001758419868513689301691903335856343928119298610261330119379676006064457431736163382141558512795291827341620915703382094381205757928046883002998007603426642533442703912496280642266921840376783539617046434465176700071805210273387429671955981624961053257397823461968155883360596914392513920249202241976683104928143709740380062708305316625646709438604459861885330242210863030062228085848975029536835917764737140519755489521651160716618396612286851484373618077325472357625079066576563992010104696102979455184295218623471054748858928376795097331711090008401211741001558078671503781058800365265928290507106574235367983641588212777915234575363841153351735352859028550470983264499710657868793588254813491411881817601640347335645531028597649002639879121136385258484677788421325765313284385141977205323154099246484636771620187180288367011598433315037770667952636571720176043152896919081253393730285677330355816063833775837644925331665324179018445339783244134807886034239731555285558543225618490781257180903575576669444803768942816614090746273637932921044985679673247695154277872624321837733290846723097501069249222940701513526070895142072640519548089881360374564131464439191339614861706918285274343743227602671659412419860078590486516494333644640674287505052248700481000610370998674093407645107654851373809666985511265666929928939122074874220476321169577318804905889274276392825304541010692304046595867883688351368691595389344359052050402737038074051550415298147807964366351178181358201334840729703839433853407380280279659278526895526796589532466860523199634001184447561836172585144925059435320874923715406948010051101468941097964727419939331353451202123511994246375140697796026273832899087837752298878301939235425635270393869734853291328766154931786095747567264198566707108327659525534617469072678206460280409027692989874104474175599370814722453826591386747168028838257302777934957165516874607526000183069633929741691498490880501780976447585460396495519452241632059251278302373827730083535382914000290698924727307825494646663457384950633761920204902082402635782999129661930432146651235883521541638513558177319144637858980752674137906947614983036695495572210852515205682016477405278204727948440460035308943360136411920985220142829297385561389290885913242645241281949423855715884460399442412376780721801090947911886630590053647894729672833260804669514337242737021818419408133423159270399852138520056843211622625268398004904581709965757072490812287079836658004080050849077209287585120137838368053397917120964172883371611148115450321883911909477588255014102966186798326877381390047402572144910258085842475670127945459381767053888307092620756690625383765067628108305329798716086862975537175981559607656301666195837780497909669199186682046776215571958769359936276088571026116059401450444258272637795862611860193771252818567696965984175179269556097900423275375842888349405684454696187053267915296040694453479921670028816404115404063392422333280911324280932465471708306795056754125999678659438219053736760389525933073018159210965551845834499533447291242836286270613353632294137912744481796695831263037904364614498501937795648105158981246262551038175668579108333390668271374372257609710360909196759165483398100500951640526936738216810676634882637550092764057091706104901071668685367003799257571325039102695132971442518410252323824688820417458350704799312128409596529280133224041176561460879081655541436599010701512570764675873247885960055122174527163025463545878771548307659915796432304712375812601320447096515838388129590835696459560272186335790961573834379167638258914265004792466313288124067356073589302734723019890595154805022632357475466318961671441026283229711535978825346251926803882368488795801937716685010953272264344217338695096501209908473852610290247189306832921395646907820276671481111593309198231777264454891410387066396037660228249982639339900078632521019434614592436472966235321750925226637646010100902245443533600262085380873229562573566918557456536172566594488603967695918325499764462243736893298697595788877592115358227211146788425898331907161287774839800863070095640292664731650558728845227600309075715636178904585360203538519161107494222917716392751278466009135034706118014992301108257252772796756437997244928644611267496653339104152797885688811350332276433571622769715895796399398606464174757942044089955022938717748780647917846804888023641917571247223388919542811545499722566404664781895421803938064514322789577953002864453929224349102103147894603496339513962194977925605902416696508015846794915850559085127131305427297498350148032373435832377810428155547997221963559202216511518272913810913137259873229070846898701162295952329965444654771356853944361319854179454055103046394242279967593376372827949658571187936556776110787243659253588429513787588471997034294607381368452697985060273781906599406886790733072713933070868178491156824651248967612939807317583470033817328982337051378232733029261750386227712873882293675283133465315287100995050025097992615318448573913430518811616687031646289445791094726943813189704101124975687551231198713413430465162986360162616181464975939116517002381090133117715060074171088567491093561931841221821207866270222416715432519916666087600913797527621503645240814512503060641247657301129143349689284702940587469198638152597133903972531694231245720257538498227403375120596970886710171066772537675653290347471164865888293502737122380710733921141143470021478165121550787393325775964874160755249710361416570987714411082993201381565587674161206359400705196104801994280918043071178873529454009868824383963152182370591558509242632330643431053249767184914757904767435654412981026127492979410593827044500852387538004568407184893183772704765760313958603604785456508866636638959286919575334250041946780670480280744029418623149944203324562740193966372101421223127432568657252450796215285449938696205851146620907017002252325702408431283999894328042985123680425556889513559419982234184696439585943357343931327881370745609653676320532751771697954634238881976383228859905999407996223884312120643119580511885868524019630857924689946576733440381002413955322216956021604682329213569665439384683089102074551836329384263584067250670318394508963837904747537499508277301209032852666398624892305587583172012641905843646166736487300766888361275013638922719310665365590136146145500265852727952337162372415821349040690008449680828628386890864255505679925438968622877241401834934649754412010457973724366615397225186105644657127746218776281852281692430792920733918961186982889530539315603931017320136153421023558627320552090565699306182364063601148830793936411996063758977697438967331808501760668997087456568567859839082874141095936052515183166612169300465804684272527406881693095651082300052698217386971375957636553623266014554928131894446034427238992780652776642493184354171318918084736185801495531856905772324016283574265603036496321764336343246947907645129957822854848105157982677748103081517741076327792893775004693858341015772876518049510697227492246479827766405141608990124013921078127740523909445209647372841858812896037303499712928084506998627848499210659626363340819676034506008982672092334889437685961383674732741384790953281123634314957136644307236929024211237912368428130344261265777386902011477803019219747428466445089486606031804928772189557747229219555533380046711989389682963474709935558267895197320496632333355871440069182945134998671274583711663883894495238594812877108542081284726301788733082837331127847538737451859598653741173797735702561185427745569953454165332955030153699793294173914238199987729574211729231036962792279385236007146105506307083980249538409566093383072839724668849202526968428401708727658910046146556332575427684791670734577829118730614969273634988394008042655789710396804715034284535302271074823514426998389724981447341336364665527048963185372258697724943765003767837960343400383041902468513437087824107209793290950049414087182604258762560228597139704936659289853519690477641161946115101825353544461279337018401048517829209736821095228737741677638216843333663388423041629533729108114749753895989266935543817100953252146931298666115593755302342857629746437580058406974940638354169425521350624576338985474112236345846612937593809754569552245081137567633197004002339604354535041759929245637054129344170372205634397630950185053657681719830301220018194646143475793007172108166014712097426063252017583691959205201378871857192990061806037174633549779311500789095281352842987088507966066725900200735304322039358763396105298679098022259271752671748751662181275344115264980679517828160460395095693296130755805530822648499156749366658287209580928218897536049514275155669653433993260803323380585885786157271261809388217550248664464346385248990027101971668468978197131808902987716768329024825232062113019810026063195522915003322529822680771449437516878509877313368639926090870918435934868607233472182666520785182804844214362928706025472581566100588015241496638401477007581820890419024465139931042271704182007177414594174047207348049738295940308307316136124111783930140716631246324565172620815168085874131129996991644862076361723919907557864660715870259958090459008038632671720201588245101728938093104840626113264249947154685342422932227353790785687974571201896605031483997981974912609451677328059749112259229191366124110305099889667456649401475562407016715400025333638131087308654244737503796737402125822126262397571758627805981867095803158414752420666022938831228980233181913465917816731440134904569225857790451321691335655914326398087118912473351645873511105303886757074026662544769519483195066650525411630505476104915638316670053427375234727961063922303651887902520403162045625908053838059073898342403988955785815443510390594881220777877042167301664501693709477159289087740300245170603595012377699353444053249217059667604592553328674841592446567077549166804711942738407636898184345611305995096997538791756979710907795979604866442518708049067284324453585938728618598310895452784533350015357644118451234626793454893761314368693417861724321686178546964777876603935460139075569271969618207285422304747249662234979153507976113703129536879027949064034842986290584470624736846834912126726449087594772510871190859160764117608186242291569103330400914918655696570271630498003072720987858914731611842557127610309536417351626032557381854664530764854186819886652224297160728552553602136542874389105643783521604110428405016049784104658661276852273501093431847650544174309429476025926633984812611533018851823968343572826686152820501406490241583689060115805156699078841669963156749613031625501922999471917710913894215111623397545949479573464215303659492220918027273893892999862822930743635826438591266974767362492315081268439160557396857593149682106435554784910994149712503901956441547180763778085333671472866768597762280376015039442521344344944105536055368302411784181105882523417914564208053735682657406464606582565777066667945719545694141314012560735368880314674636672856919993162321333990218410688588333838408483645846092237419767099759513942869931707412773573752610825623497306986749002946300741529658160913605992322021775499612874380143430757728096572793531363088452312893177864922807859558310365793489458540575320120635107846090946847624859386629298227204023466601198220920048201040516922725511534160310072979924212566168135640394489543918824930063376589415240504486839214034589426203895000668417182366598635546264644932028934292263875114254390909903433361860568385251755356947531165292718494088502658099853264922409255376710916964414033319878804719592645845203827387917603303918845901299662744546884350024012082619801485640141825976882444364818107331458405635011174194399005010495934394693401622135720497284403806322367188213637568678261882141768691533022894875872197138075465732920892179956378557975338596921052998470752813413032765523808861578140456764031289263759526907698294420605061451892001229468199683821966134948936538558291211545681378239816724252476327209891340929355678453425761601354040065774231577090253691314735942056886186836875228954279031750752222103896642017988307867225689800265575449261644192346623657266003057271961658304281304875114220670204245340510365022999121915480451040044062912970968652741969121976245516236847494667676498355406754923052173472993473864188063720608873650507425866435350635554538508180576691486162075593387095303506682951258114021749676430108816904354963159124084211237014856871328273135001190176134737408031307685339778901731435610710599378252111642355149622754746578904669181338209657689927837922379950002792343896329719780332731655538117126218775506778825740443146339171916079430844707711191067061587211834048973525024780080623794071078824800938927260557005300437637917498587528260155318161850824753610395232523030731446216420838489194271653724249679300799844219575151121739514707297278159340685991826279642516243492916077633307930305428333735456411069342890485164000029980570037718452185384281065907308036398180936730608041192104321803925492673726521370822244556244759727909240173132012112539725437182578290767654752281795547014864394477777666211690133385739578509818086065897836339930215468578549598139283488856962590808597448806949022578160326669884562735623285259534152720374288111898138566411925884403711305281978856622392789922892310706488896846709286704498655666873504590502924739787160041546636311537905778518036946027186817797829851010737463600211107196618371796517887348850236295545097397271218956625372299848341815243518399914473387458880728883328192163822240153351299513452231277976422816504575662977889369780740739166332691086100846222912685375161404728971264034435634306109529271582516267697042722620271982608217187677760463751740894807403713413555690350055866068612824312099706044089017465671802426556239811165282387974851123779016087351658179261548902637709004363120762775132100227402980917301846906108736321611952667777297207190347999734007848558303455200305241264619306173945029882387983756376874403723960713672312030963250568834983865248112177578470735941991392176548452126301791801040226640891729272773653183676808967992077705993857976948607297271384143010411177759399154058286787726504456323828085470453341649305169190770130858641853236590027498414792026994769471767646741396947389879786299546058460921791755456090068450987302004715750599695605302208761578572522553103874046304897631366323234108044800879462735254089461441700521024353594697363489114644949654306126796627465898137390376896268261225818208709295536827585908464968091747399841622883874921801961842575560462251001363582138319281678434188748420625819294135845539698441115994704478000624746186012039409963178607853205740130016242554470372611135082449422417349361798585378889389059167188444329983808918078896258240542633782927551754433648080244080734232988057440316186953551878352548789970239987847217016509366560050521341853917352863237876272771070797780659276722077031490667706197495266194628637548975638939805505251629274166490662330468331814434580737323284703742737548261408465604984800301363483986981454576404157826306797335364437562111844223784271012018716319639835070440965108663135997674774774365916547155682639794485559214880605698032657471348223030350651201477425550243724577689082574412176891034862711176956606795075239496035955095896309712160704029050012119822309121258616345839965863598542842779837817535755088761848853856372254156790904987163458002856666284067182782659768249815658891490360807832945061801327342901263035608546967419633252814729876541160203671617591352766911044549798171515803492453768587445631239165826727774885766600149521040995311604117109780317899040433033033848473391669068705637480170518838968608492898131058783352517848662638269792301218457902423209587575722340954292119223445244194012640008235748833342385663674375066042909370535996985084358081008543748226902982070283126933860856554524667071104645777645899639195003915053329705073630967357624118248837690501606491895982879282927413617556667293776488888346823519806447440657664451827754755030000934577359343531297225962176540250657518010598415740734455019287175777391570905120296532629425515552827986360833186339153728581694124359278621511827696458183409212530225683214981284826858020770978582933103620344476781842685592932022158563818281356549016758592169299972580292821173375997237642920931212713975589985490214442875628752194852837028358707186145089621148163348155602383644379371794682578928078102003933741282851466361634588055569171097666040135553676890487025259777746054417139532616470953486744271499577077780672963177169321394506325880059702001627489759701514782032326057738928360611962970727647914926862145493720958571025862042316354139895195435258344075913667587526683390440200976292451962412154982922911688182207053476705947155455250451078212744398633144129493774348401231130957633663987037299974426153303508497073322255464377181612029799600617173933828111126067842261179698713873321129527874943884693727383608228208707946346901487081394241747764757937461264115443221124272252053265635696202473495312986973814377643953237386244952502498637731509340019897994164688678175178850402130066381333500403976110002492055335797852808006701262867347117347026039833066906416899411803523154337177538997673707927980181495521951044222381528516869374945245363701548900324688409931232409500416760715269524543518634131159215642522326978500402073453264442195286240798181244191125516868628902953151299431708786432811823278450244369790393464752565957329181823318531898729801463787536226124240981823031182889090846647226407961055551479022960781806452400002531512638265260888136911757796610576868624220057647408621682617401396256204873310933694615975994926990147261957754325581456000138353371580085862221468211399192069452153748019925524965629068702369831230204078318300315562175775207880114162581756428450663115238289517208136253703035532808015577956509719187657280589062069641255025279926475304221913215746228490268923056319128184546657257297515219363182507223988658578430491190189916529140866440049512874715096091567713911687809657538131926479855418473697205266967994180281853039498204378822572819401921996603084662183852490640782069443301225341476900831869080592809212179070863755738029585863240921438833848375315006898372609854910644592935295214094275972092019196785198242913297900909891226324143311545282426927177717909835893945428927488093064464066120273461257315922418613022066283468219041618458107143821905123397289065560296924774086466505267055369797274724555780669271083418010158852775531523815978064414982841511515127801167100841353997266285636908012698702620034672488549966035248279403391755436546468474604063144686723744697045317203125005808067320526543671544889435574845702394161938259873913172956869358168648660439280650263676141166286367853057300960499368070532259665561222592919536619952838904299794217574496709018933029206452272626325071805632179479578755144410761936885369803706783828097516646810272627190681105015384216721978938556974793120617472972896108194649431555198931320996072145589174426837114047986842573781087307402755563377140276790217364456133993840944736531582219372392513548391851977699520366614284418107855058309150705161610883938885695623152167957941091582235999054390367448689955485952237723445034223971185572573300025642141898898923475174907722412690783032577150039332966901990763404166984659518285897370984729066342964176115195684103202569938990488480035686964328953343066869340510825430630027582526437972887630304941741424140535709612539285082932962458512353437971099916107839707566905682057132559012743672051687215168732303641213843253721377511570598497913389055856016870451561965327453766124053571464952711674564179370393477420670332363390164931628857994693735598643789451519315085085907467190737379916378807510385892382402038551160466311822633384722047822639471622205524761984814968456543505380581534180821519044122948001827545571814035732707318685629377032491806894565992955175965020326002063874559480563987617951544346496988172854201437776534483444098644002882496995311384624325186772096841789860674519543421441031056516208048358125919308181735354685730731031909295928863628013974582488911037327838101461509386868885192146544903791355869359915588093058113411716290705215004962679033726346235406730641743957231125546314824509161823840234638136409857727684915433343492136451900194703318118940971867070779134494616243182477872340748935909573370501059261461067919656860506474928441359712787137078253787322090704988798235672826816040900054553535804014090103791595139258617047426771710052028379264461961457714963642526189651541195387249518714740024054221015005614770112844593409912569137456976102245369291980794371651393787070628176400549232167513515277495905765960375852398526835089366223573549376828129313343013834626843396269126589937574216987569034596419631992472880923754432383960971149123990230277004293516557531831328994813853944749515678942005667909385476980685173181024964975373078116939861943571623791201940912179099064152407164937160081417299261973164221850766259714958338740859996787515818619488996725744229825995986804820284413572087932200579070645497166799782847402487974573380187802985421463002915463560323781462768472993774315499320514137017297478973895865867316112719999537927492220959661067235213614294991874329934383764320291688836647099577155855113141409402125775373908921710275478062355335022296218440076349259937500453302222074182743210754753136845360498985943181907819054980969076108848074899673855636429564148589562572399211666463630715612452368643839197811876819495856104064288581849706761816635640531060483480841381776195643137732517107068157461346041878731946747519170426519188080107609988592347185533526010475014370508637540773270957696558319975933098623255859401248936551829941938789050770495954010484797839693673263204077818413087465309391547251147697340493569080982510071647458394852330365678520480199352954164965395155477883453877592381236102546379861388235422710189034577867626926881420960887645255966775043970816689453521476451957287762725652271927841033065340453841262532912420624308954710248055972303696929672375914959963010952179614733691579974028662395149230859350096602831214734960395562197062675962084444853243819119046607838241372295350904859360560417467718331459939602345246900950009544437068974780523117989368159843183919630810178115302120561084923936093198625589467090935026841416794497503184569931957762691251182050798759155815853952439968281975915041789866151719341198383935261180401383047226960018569283586486229580168521237265407492489771449364050202609483174754170220156628393440871258083839458824110272271031904158396982623311297706051142982625054613868563444502019201070963075884387737028288163046599233815027136981973942931414692219288861670749341191337109541460952860863378422869966888730505702857640200026937146026415539313979917906360563975304394045079466632703750233045099376741344746606126387895669198477902223046047856996704086849645767813094386734291069682657146752802356316637214053668757580553562774301880926836364655564345705383435505174061818790802627520662196991194609995852182038485193977275628602531127607217626392591586980395472346955348808256806064434399246606135980375193036394254956659323735854539316748251367846740620947664078439082334851111466372967559097158929678825694024908358267365101498785504348699897735789360418800304364826492486620505727828903884184337197463527153236705374261124119904798107351875805399144966010088083801380423519977941620049914874581148767798293727911111643174192282812755695063272576271488070333031352231219327269893839458673362969535478073196153528887287987999836619093612510709545743608901466149372996130836055860669222979997033591739922598940290186787652124103217450498621744066561422794182566758120911689922456682411708657378811628172875578491125802462667928379010633827583270600650694681747371037282496684106737920396076239649827255637732991806924194475573301850948711826832357459572294252136598956750271870744243710421383242436244480413322823282531414536977076500156086999073690733315317102931112653381560303116194726311652613946712834912397370643357895504828075487097656503917216953352121026937335320660714448765409911744798882442577560214712741132041116617135727987134809400375814668322585751986649431030144441169320231087647955402693401116353301050304341391517520494910183291763548856177307564504482911138086535779783423432006447125588685418188307481344588575766481398972491854504707225687899572605237559591005826401827868017046276495218402353172151814378929097419309215372242525007887157635974295166064548847237355445197502021114753260567069374270586351342812750872032150969228155557027438637067589116882800389540643800888112070770154361288083457377749872269834974165283027162948742393566544375474040330182913036001519513326731630307278669115954954826827559339503437117352193535691797810891014938327431435405606410265340129286204173888775394785301560242741981694566116028349724991878198455857018011050699692530863664176632609005455459874673367381249405967652512507898423867376010015647830386309481318384614096219380209020403332330018173296386245430955586797436567192384351876370004065300023293700427734646583717750379983065641124477458165565760162955088139485484574399079861544822902361084192317923368988152486447612092167674861639848732932489355505573236676022660938120223693416730633967080417255823641223994774478153046651775504517128387612775197142333983427523585351008765913771047738194794777339010473564953370199004973407083915337996898500061305939608257255525962959876242514584382634966174641287774419770460054763683783578961013029142150592430070253964071132078027849856130932670357620523136367533233434270997502626875032831418343220052062613643716692191938256611160482474096096157240832921998461233790392906035148159838518883240596920027282614293904067437799880754079692517236967179111936988120300511082133160753971402856076332258622620167642725953526145247000498808536122167701926426370445486632601850071501809094180750528574452338683718792299035179439607662893775693344511568770082817930547675602025705431683042947187763996422613559996264105286810660292221521995857799149421994385357248620357898774870099344302152754600636279886867900450483192990718040387318140424183870001728402257948226470745296376462126299742793834762130178050469455120064490350649693500417771759117211680643344318166303483588599591568351748042913642733924112829159672190071687596497709012344953979773572419434024796295468052619971938828328606955731304224226084708873845910988355180186345323654125496146885855918307332656805498502551924007816229364702388002399949854186414042873102112753574828974840263730341645428594221298818201108626090173717492471442567122338820521245256240474493778623860382268587887137240994685354378177114535763219740519839416532820181284441018842998030704901453712874058847408200860335034603778877563762695125685877750612504772775784163880242566411890339712326406417101765708637030035858817139344366199641600664677230807342998366988656268248277476465928142520353613838806719260028160602402014480793411951801626188625024778164729273397395907796542822847630972791315604478405729759694896753935882267490215728552198481823612220228839585187279866196196608671858922403782985312279936595517286056642242290053467565739936147899375951150403895642066024768065107739022738299612243923932196270233724467785133591650826659870922604875132979598600117811422213342407278158222472511381897515818000939723999487110939242097623203024214678305496433987600982113938773040452737942954029247474664757769750667920074070001178197834600850854415212684698899844098037316552550650637688381886619581037380529250391720735227021648676114477109574531534780174683313572368764541658972038476791689495534281299396706649905613904352079206139606618399974506503090648852578427560397962258932883283224761103942277788685660389662515533822990403811625683571320499209494810307468336174231192911356581724048744017800257142691565152631151225352459737187464754814080791995484071121382592068324496415401698951268300564720653066293720232378085495667373846607634986270844493778381692312773670520720377544529787253995308126335097873786065278449038171369123973958102997797291813581694997289230366034158271433049544061431304229173822159175758004194876433664705166040225379301992710540645469827756156284362438512556783068872043693293079879064800155673644065886938116622813615036295688239349688575351197157650436510734337575967088598501627081947967932120172785465095173445391751633092172443597078458578539770444861487358274243844475281583536980948610455763636680288442189716665562275941634212451427522940955113127357345655387629741166436667851905399181103799253142148197993093855273695234675591828497793059164713123275608123036794101092455114466033639646237878207527201681814713018930546274035688906934088816587470950963483453311662273613449755700386501023941210850966729227410090936058700881778057730090836428866921344264107659258822082365519523646652293109591159426993649394474506171400587630811609704007902732204199150952373612482930375318915003171038002027451139313222267857041693083157622484243749559939133649857160180831167801202563381538180994593158872419060659605471121126018292755712656889563253366417890198608167099982772669261057264733812696401160660292631446833875458326681308090107190721592789856687814537533554614956431583766040695485165002312077788110049573565734730624999601004274744926990669289978608134123672131994610781461486649149003354007082207796689841577403511806568554913097628135703093120419603100031073834712273210726981640593348831824597506289864700452266200868239185053871080743606311874064794108693501393341429620495920504643076596445223691416475159181626751488149355459141057608742682281252998127786981803496403495159061954609370858301250175896313689597844207646757328207265112428377708790421984943131293166209293688699006243199165726382775099191183223135736755539523736127778991296681724069147175739433126080905711393708554430291908230876121581521729097490405531322428698492410542644330804203389279351304146362728359791064288173882536358322224589932618439574901230265917078632046065848003158007688383134131521274442255691262657804483452901896051795959520591328969802687157683489186813944649782546656523493807580469771025008028547670097489303658118979728141197995781444117777998131538524567278776793010856445085934597258064950549842111644094349043698395953764454341982367597823657219839011860636094865419602570463288320956144957697881975466455666313303669065274959653110792890941367345386367264901836931008529241301190158514108719436569484411354701734277093189830423251017908632908883271143854545796729490480875036967740474397435330487504800924605183218044035551182970379282933381620755379285313252169634496171814020764251143845439992557382748379483616380028510715028154058154717776180328780724374943027382941437580084549716495717010299760722954293093896081058718890231396623628388433463968879299004316821236437490214305866469876858450588676449102699365142373328989846045020944801993188785691853121793213966018484601603987868727281306069251522867081815792682689078636275608956985304388986119321897265303873451217332210370589858726699190391660658846041091572713194268090407233038198871569336770514380524613984520840531761281025551527833165871666007132940827264109930324222363207229911988702547003566970370289800498014491106517506996578716945096269831074921860040435561650075190614425698188720217460134817991943116061040183951147225326866049679213530719590679386679730848785984190286199142113275892306224667302684947092090126344549828573845082057366965819639095440045070289465819388690627218395584858030533972331843723657907698339843046158969515392085200539654905369375688384511924712895202626752402194128896909369262275657194889306544691321367207160012136645579908667151201983083020118609524987787185517141877230354521395655426074963290119449829362524166446088404449146742362232970297146722563752144167385507165342696315564843033699432931238172669572330897986658409847314473558671062044590366318549632988465190972655393899410727455886654345191171901789459375695819949622833679390757468260467870427788106864621737589992193721277220058190165166706916623699457426512169690062166430290333594610250484267565876770129384062493842852746219127154418121512866661719795776062057761396848773480580047689788814288157001846924815944828440492993518955355730978559965485337308331126683081441789859644989161458228813285157354254324103229567585739414638941773700525745581404282387099990317762059470723670492022393519583578611465407524609887424336395805410261306460401504819929985896699877444097148653274545629392102453914461920037090228967485381194344899980192587024626951611452351598723051827457138866498967981794304507508663076339561638841647496835177100117133468944296050479184456343028365854517928188948177202421554551550868615902066365896586085827485978415415307793473224614775668275398726481932102942263555940261439520545326956511718799025149932177715898214337409403991996784322850747798138090203176347966028677902213997221492913477703864105722358604489523206228574843375018470936918753164533777221937939414502772889257969555918534595111654298266184804848586361906281000687274253505228688861772386338758070101902767958350791891285393314373602845034770026704311069966936192459524960437224944209796642795450271508514035871323176921527130800675466911671177280782696672212021833628053204052351367279956618311285406772515146891055495392781412823734339648068526156598155210943796725181119292855111528607664951954007518550723275919692288099444391613363355736590470015769304294920069972681686469196409070275024037668617235886751721998746180720015562331044215477119313238782971063477721153058578591342073133290434807581964773789418909933495215377179597932264918181399929480576368771522144402604220440056011028205759833378914722521299898013204451399144238794071128509021011492604271330212251677436783365371119310099482817886163118474202341738202655012363984621056171267191442770321799054435473371705809022524314943888245363114959186955335976446353168666436637637499814361164412311436644520175287653067515427960804453296893144909319027609835016987816919804907235378069313459222894259770821873866705518171724823796893498113949705406109178653116303957181826944586040413277217414207456626953089792857171688670348587399053754490116841442646963875048023549993559111208317510193379066400198248957671732972627895259756419744110640576291892051231974707819795569423952482765190496384502466083626924995740690215483835290050787853485748601401712754768412699496854414222957826361885751409914258344557945291195790757531386849200549685893215751039365173520730249517945747917979863414738680078993676582723133218352949991287339558968482135553627948775517998002062849277914574596649313861960340308499840844828807141158665293359924336632411670947775094380168944062529210558536981422788118934560595533958565858008648744802926315411608375627166258951451068331717679460143463624423117770222529364105663796338335008123091345619510619122294111427372826747764641574096664269943076389206620573689504679461012771887201054119965062231493651239132614499044554011417497142034499324120360896718115178313806995039740772690432112242680249730241866580754292408223031879013745374737126444899168820038235867849767491460932084125882280005963629987672030187684353577340177153393010251572494611888935273699689008560806770556808362191060485205431555049759767027702557162790685927715157157562807209246629955614281138594176292818123963442306819809158211803160713744961740267165230474911395083538329761370396144987375127060405168604500901297020724083162600521185555112945553461862483416281597025938602878747081598320245089521704999938155099964900834660962468274325918757728117494118246051447237444364483592996339189917508488273248722742977832382417987327751633606662997458827017532188265136457250531594318205906550281107051924195774332315288551613293382053514286548674449751470800412711143682994695674671910841633708852047639170392906201201168072099795268805497935716308984827368063773312387418045202220466447278106039798929272628126253331850051208391313187574988010080142427797119262247464718707646073068035286476087032099261090423205819634072811806209503604205934765426912567288143103129991085157928381699837722698382880738239256715962958377304325335885150852645830196601385469905055298070910616552022670542444638085911649550491498561052597827618396005685634537702151562465879500167664525223938642010967464880457696082122740082531131146561549941055700373707771845139688999139199858697980439180093629674129443158857691634547859877289714531922363407879055663680669592833462738188221204738310917471405347835275768207830517720666654872515524677651819082573753945605013034448181671167113063873644464581439612318453851353935924359836462886245476766252825860153900478137391301819489530638757992557156980991852622788024911946624805623384268614784003233854132487921653380409207300931779144822839841664912125509390416963012001907978021176293894677229050517291686355499263353380390966300483785328398130410792692226138363386484058287281212247268289038690711488925301493405248161832307181004128197857346324739355970598018059411590142252988952161127366511613304059098986941275801959072048262135759310807289651362761509737625519087854539792510133554133927147403496779580765974314582911440551328251324821101834153361240125054775169658156860387022281669504632868145598787734083499613809391222880235265576649892721208404480273777543994539026220300176129501110703940820725387682266518565872909055436148922269494682429518686846298925955741424854115186659398330343598903479095903629186649127759107081352387309640044488577866118356062500679232798109480642142177781860819817953592696074758542225173234643529782025509153235161792200984536801285202890595382781048802149185437607160505346190096274706499594806556327978160180174937955817895393518835476651333186046974709366606764999804577814972568960737572778949868639332136338047983432892090917804749945348526050375956706292813257648206961552472091993810387756651511871939418753239050590812763598149481090573209424127007265412856124606134242472501191651626347563776565125463884528079414081843078422691451110163477530154275072332869013752793656221044609202537941737894043501126909762090498174135963149821797561787512730230771923750710218127882367245725645749719360301227754429370534443012861089136712068310343141960786103763877093322873338609122638729266115185416312913221840724900009623607377125862141360866337568199927805493588119033912713211242585406700630453523718067925476366247661956377831426782517792405242965101351652462046330626193985445445876961920885762202518072461192509649441867132667654299374590977362718676517666247974897220293196269384187976897727903192376565460517043286612108232797534533748051115892025397366818664068783728471395860686051924162364926855750674481958210087782299573405300006049812957184424351526015991217217943814405228356940527203401614860224219436781085725367932903039552507287917425059927880419827713859475131940589126433837127731223400328081096296304378275309725280088572891489472809524264991754786457777590097935980946201843442290498324950837346622150814973190254817416205085163420640004465767125793652783349828156014349234083454689974140367663114436882016460894307168591074332725245154241953933047467032899628249282896202236189259731903185638859824756174040866027332083908474746487013172355456136958141124398745371618359794805395666825772705495137953016234966030881204943306503629155470950090874079669290105953279956522217488436404018211283638680638665286514196637617447121768503360996903862024872487528340897554181088233331897746977450592678025415558231984471016646219457542832744125304611506031393072574624210655917449483794698884662215947749529548267778750495895449694859674814739037200441508991705971504827629142807517342143190381913580453743125066297875308445637860620064061062986478184257284375238698560826020887799447296901507190217876235022603841928960310346387167099437280286931441359410496675328762896800940430572419176086270190501020487691201008797647427176832606564459203396008628550042626575861760781073335946581444689072552503253688033670190570342331187875772096204180050993816672107905546943436022223884713601711906197937186544805549619266320627298919766215730920970449023631259059714987604078580932961921206765809073034714638578201591234262192693433914126168049991219458757705080032684356342092156565649347311237608975725224921369741731501187487778729286673061499652890090960206022878548671348178039162380102227670351866639150299304703647997920745085705718380059658058869240783603589305238350818814017541599778845128755947715910900563283170585441654706075886476239083187443541534720120800205179454245789466644513915400045888097540447809528334794050119270333999764245137046537406674389129345729582291148807597743466920312219371121716401879996047939872331268494687999666792769050259703834961362156076032533860522623726760756502329086360613036003019762426686797678965098474592189863170948769322815790082864962440365790401528471613305201705997857456558615413913960775311011562629441727053575647792250362359828755722629743196435347457914581599619135852772304399779172058655372374352481275502145646114036446375763006064854192027369786095957811314537577490844968349699659270092598644973892126661715840612293672515849684988483707779990914168377246157249643179690849068412654202550338537129762155781488857027944657415962727791381612259650223748387472361577751777292509526768842785187259384055218146446011691571636659452715112596205023692521345592405171485010700342890007898312491319142511639240239840501855500741262108950720128669420524045551048864680720308158338386626055472166649833500689579878384528900842070787523722056614370056722042879952661045016308445620356849833474069277030689477264442906629701909673414778741147806003285396727858577744499109068431932096707178577382017252187444970249092477411549081232692432298927620123253834623210197145020932633469710321479378532131361148709150844233583039569393216796419365171841896871206870108329895627296913321449240578807930917708995104675848598508214298122987008889048946501749042087766943895301371750707189038515025158612093472004368447479618282803745220636714253496026730834939182778720842456053092994748850917999286290589296255536510594218542931896638504026413431183851731504593364268433222502439493333430780272038557968846976590245265821284728900513245215132326705912838017105892054029424526798690773830442011892411833368598691559495797485167907622894479495864472529997543894259185794803721890369622573911881554999996219686476261407426022590214536940361633460659729756713510560949626536169734921248185622800657798771584293572596132680319222775327221754862301643678689322700391542381209858397135639098602487800574961253059139773339738430042490614383138003189721636376758913947810142490704236698255578276318219910766453156451034356028401769449597607747671401421578842003986918425138920002857518824765129501711026464111419504007880287291286632664034784125185823637457082911335864309520626868445522875510235398314842451779018722834761110485487601262452587593975342734432038110346942501562896602988031518533946689991145915540199340734942182342216220806194124159100147113322886988509569506203606220618847418430015161976891487696982966426104174080710050215699579908123969824241356223693041502788045129981261550532522236017686323149075086281114395009671939073128221366663400589404620980743111151126449249821762499012929205670751452661820806499015770275828846178544295471089738341623858392133058467750421403305644661019915132687997269724389828826506715139413283311324896178959705756689789088526982964581129910857625504835334873945507372813102444054303970288162960091579157037189775637412402837340044891421048433643104024447974756098079796422389164017874056138957555546000209346301828382184924158484384987779297261069354072132421829681333089803863265593594194724689727866382050061014145855685913023306843612640057041820532445666214869605258591043078499950352790464550178489608320108457752939506666630861106779371559703318303619648877045573508194626790576800810200182046215760840076735613900067205198013496563098381523555952560621796710546140167427099899738521468894163106410759953503818229148912487834876721961415793172234851189580612216449059050203203523201842047917788757234288674092216077219786325558054198193102547583820114918188103669208257474730635720849364867552604448362851175426914815045843060859371481850918410387261323240707010594075011597302058051207714244995240818405367163674056715409336945657561590230547500791138782074631993272870374724773275993025491839707140821278116105477596584323084445606167372966278437142717569602156534026853732571787946457252716155275169059771259594944994000174459384448975643348158011225329712958061212126549239050258781620500379955330248511834546191028468489030693021838556926239899122256427374028044653159507703309294101663253957109630919677856775112677969354042488171793284588570607041857723556983955832751326431652204057426186551790586313016359360776636579991760862505290283119798229510021469465588159814565918551351424947100520869580013200745125324144207061528089272747663132222351128843856486273171370348200061117994528960848481140731566265296973212163785862815499095063662560900125987670694528582024053775959659345023787576458822130753603904785744588928643926259750239472677265694299274938150597230296523688275988643636635353524979613376235253008554594321046835978178121296614105530391470087716002000577964170751211420499984300259010449691617131578833297486461013300188237886690499001391511874700631109624056731868330294113857124914548585919105719803222941068920031398221575224602678370547879042461263075551654187261539779562469488873247942227251005127351842223636791329716335260236846471259278918482950519806738897217500638549497880516383165778764032282579362825261246493619578357795467519628031007517869421300448402624212637860521583862379138536024933464084521064757213738458843428096076219212713232357381049242962302314551764420195279291222687402634932637652917340725854580522386783705500841835641091408727398248906610686770382806312782832683344504230454823264003554115857407992218329293881728405526058434258867982579942644086768310999614950685991234642400574139532595836409486537647869310948861382162187491869131435224642410554791012344729552228865932189773718071110088670259405123233146547109375710153310194595095572554374560258482442459962006878612468930890356714490668895314013230657029011819608885380449164374423408594909928904967021568736290032334009937712933387035728611209798914724391550700827338550040741374324396098109539700479781658305702539254091791132265312996361607039914214455139201382980101833972545165489175488319666353729769667465344972505327136236390337015675397036830540836734737835706594312377294470861360533912638445120995320938818878612253113263508784947466970489075504615467408079603937307229446745787939362512782269775367404027455838399895611203572689864953355029165152780467277040125402410319484323054703055921172374896121413163029927415391981351673027772946742865982316085736700737410565482027097982190879304827398302875572861947350740021682829548958448401842649896083014879004079798033951161304785286087853405803347803195862699017047735919342519169216482346230589267311698916491643190667851866486307170155814875144509138134456916795398746067052558516109590402027497798263151471483081094452784640597930539617697835396360425972381015582529006296530275939028101372104434650324755812099026797950982651763437915165957539898835648972561577851458963561870437845572341909479814258660744494650960050403792135469745036729949032380709648919054122012967646122423254721872894829538746467368391525686256594627194433656353387004319671682890086117916926590719576813989881379186284260318175351752458801593147513578571138219196231801608893393541583835124073991317052448112706881384762024646696461228383010848741060413648000356857953993852902695856687796855226430645823266744867788230323712057383763372883172569150052150085517324186640680418124303142666958018925397244218360361336534638896576697871751105256167236428579069595801416952899442777438702719944757278897244633757509310297265715817071159471812870791309670404481474956025476669937748293593567116532366880055979779626884078036145503002655156560974539436763602433288488984448362245377423818747121567764968452043614441085335430320208365571187372047535419133629228835424568875615410292421199359936236637936369780684952957989324213391597993005069282231180617225555104673116625116581321319305135838815429924919404061678453188043394046965569124599457449210189422607917107949333824819267375127829814971589424366527942669665805415149454418326404675048640923428267677474007827792606299000010339716236543160641264476971473613450342601548689690955030224315929170896158131301129249225225729902411766185866423961880446570731181322703242314919362406623192273558942674175265884284470170797771200363794107472180344903571834459094172853517774560468581086882545840781513015685157341347310850689309547022499460142278734622375043964558022217500140357765078964910042210875278282853133415486071444241563037702625858316320235711700229404236020227109949260775131516083656815371672876628119629280347057422390576033647699843692123577447101259161990018228326667203001512050193788161115029298111077745006349233136856316253146671569048858349202783674250672671175382613699378827778872876574810130673996819770647912013527759190261674017810779751939678634854823179383799315577600830017775431600488305280929277829474783740423839855087568646480823864562644918022286410098273858600877139255903756020762082287786852613362057885237153321695291154541971476614205851331962126682339209720477852019914191992378038198732116728521390756280422239621232743858207795683142642914267290295071155382354338245901996787635870949543187831460564176437083071465512563132412414657091647263613980603865037218449549076789542520479171253943040670697012439136310437545125576520012068718261878651697340806147565296347729936124246445376342363737580534070065162457869993742797687337137005414914621331848825357004619294452100287266549888473694110893067837215554200410419926862183529531310536700084883004528604353676137006335384530783843580496703647788670170378250529787801817321328192648636992118561574938793955023243503554652536971441235357396997527808874621446455989479381636850146851894722746913293605503676704570993488268969155176131549412284936200023292154146333516342034659615916874242555467383510195951091804972756230817397178478304026210501217772122243070267317596913180967138728674810877001427344207529119415297463981872610833346732547641749089705711932687401529700244262789654419092529458547189522008897335673550285557579020973076460556491924363390822826907211067992460568225484634308707802700107483254935421642296989920095517810113944208013880793562371805731935143530789098508835339353625688271961781475082626843173028458078319110004470559900670537665731955562836763714089686233557345872378779794500999250071647015938283732634304941959305863382815873462352541704725505169455477805151694246945751543275373840998908509324850339315041845165571515589016737670855753126093643523905061111807528356269833908285557213664127371314685729667548799403538355472755038543090071612747926989123542560082989619721223409872588440102107237815048159656191907808374187069402940186475652453459830716613559976211325820568936446344811764915021706887811492549501849304523205652478724175103156550752416023253219038767996467036562483953852329115570465542350205299168123115986110254004988868534605890968965429511762485756938705396300618887125956086949759853146851522464969062433196309752797671263461716471514971275347242007962560984572579363181604472152001133350329703181926932024697530120525856025411327389591415615117637233580235029260289093093529399600950828900821525877437802551423833450772709782728254995083590019221307819056683778432398697222511093154951436198535864972525787705994248397152928008738909433806461611824347133422102132935004245937744601331742748718665107650509816530223775867972627506510389045443553431586250125999751171992918848709959960860605545753831343103074785312250581729672502222744477238375380203040011940128604006665551125813829311004163950996648642054548364914067113937909911708093774474842883048901638576093790696977924031883125546340782934484949684181284741638024298429417590618446311798914738408867497776067329805578746963089764140237293316787205895655738594049497308175331899838163838449793934865601834138785859405731088007823159361680687538446187821581655914118315967969283516372787316741348639035153300143114673223751118265202983408655780725355694555771757588403142304538332668136549329513133646667548504449367331125994416369749983918387851625394301085805119656180180904224111895677367296417175713145065360276926726063630064041390716720728496872831122875807148802401892152065893271262320746452151328570796893938179383340591306039851129088711669838007464932464107698032913273382286373507324663485986968125170987464686218943660083297576135065638012695099736114739051027602547978525216114541852186778885893617617023001167581971425784660433243695730783209063203790742785378692082740179098878873420615673035931401968292520183028700321438925663392838549314487233500107530396151298094781757413701723311815192071979662497314215484899294508465382877983607782303837680226423914736795267909412407636867402535229326581599546172758931859452422526582355724482417982600791133886547914053756572601682905201474568473109653763416813973955398363539266951343225563975917873103634675450614341407084227597778087627160823581771447802751583601200791919735732773780322601834609854117569207017649439160439821971089529840291091568902615915123885141193170699541529030544640297747942197996063362473046840174087341207479598224537989687213767694535095920591325466241424247547656752678684777241505021295372704767774930903160856790311125784878550765291393620278540589353225693096014955880037829528617505879896585439519041964242169397149243893441986195145032544580225855245819652705258083144610941871365817428564885587873184023267354590898453544918164664616084880554072520906079343367499644426031264086627633112883366866340292291929580853091827240772387786343491784120689426778136927771817455531617817123568202653958549246580863170949026849895638768372913268496737478237235452853344283902580066749352435116865920694566728872579480131884202909756281228287311349847314239093766006245580842275475991843067468788864209197465284162679709269095502581650100987521055225131150207794943564921854930697660396720753316819427199971305361172528491446959894357936927224787356855057024085207718775054881764398228180150235567696074211892462407763124241596355391127645503239124477614071736066327943919781428049849004788305550507817680058072732510275760852649803825513730142166594396166569687341961778143037649201355386301135341010944765823488440435366809985191228563830433114224164246337479742107183051417568291676462381663554092966410565303471077225076328957588633751241650601951491283718737459240171610518812610441267943470805842807948290037264646845818069858292929348505092960239225694244385437977885302885247618300187594723867543559998349377050975682972093143882902228442590862328959430238556921360952572151681289045824072716406922404738468407119401743045040975942028230749725274985165896252900085786324521487545454577320429088290047094821939579992032999633492188524250001566005003640927750760484042169693105503319508991560185952786874744638065632034682960724543145004951924761325806947808934424496096791015502970058073128249286478651938011419959490095169556522768958615972560417625438423392317117532202026313299399353550261354867158530750085596219499577020791790638118575762015890730036106288937236866959707369496855845462559421102448315064288529599904425074126404013611177980414246652403918036586214806748743276674313478340036312455599669377864455521024313511708147660965846195155267244297850509159284569045666103944306276601712848780709586072206431708353170896436142308196823728738014962546546952802701061288894456307681425793831773323432684308768840273148601773898742478875371653114076856756116292247406976269485685839283703994903776715392571387892450426490023622564013941258670720550292073790123407472317147651342398871215314346351643943842478256242371110493268090133083297325422225771552768585438848034862737610583902045026334599128165382981073251184841846312159220905503134695143190375493830380450333614969275275739019339132945170476066888465524346422384483201656969488637498076559961237854539478954511136345938418387804312516325022684357722471018761473178601816759562967104492500349968589406955182224271352693760350756496062686669823696287925065263694120737934894817833643800841771904242986392025163992248276386108633598027027820885358396697233424355419433873310336511846730940111971663467799034962714063769778507608899309586354422261304625177574255121113269301234872380584251448542915239168511560959698882230295250287521725164376396541080922411354188811966022822029669373299476107448455177291416196892713259855182560377038528281888278826933391213502496242683978128579139049236062406612209898616012889434679244530050004859114410901462729593918014779110430091763049899024844007260808349106386423538488879012285242158336083590329140462271142121100961640229639708565124653512424344566169540303581961049163034111959501952058555754934937450120154231325440481291068393912819036282997064546362654636216822644091710217370640819830687336931447318343559956986658393143015279561920996162451104047144722561764013957671435233498356190881839755241161576711579659430970786952287106013456598414230500386038345925925191006430079489460993994450143163031621293817697301116841631767034819277815531412745005805062153191873888402062153585310591388950928999132874275774961436524656964944608215652602765075651906933254273595238662703175451401518997477756740779524804301872189886118874982782657001162985120729758383072583976148257295029920517721700813627948549211194228904182428943966857612781494167455483696014228919053679424689390791099921720390731044338691735984096730600925442599484167508833065699571667243078199051171745182788202783378626587261464319952553382463891489429911727697375924343947408057472950231155932863949197087433903912568163575027563878869861789989315180892319995147146966413398599824961805906325381197732437433043701567478797925680981394210221129781291922374581039361777414654205867982404365857835310996662801076661217164385763803654658872719287715807403032892271658575335515465997172831605172070546661917166719842555408440994422817917938681711475403846415569473194857241817862814135368172210329776378884914004427513655826523431799152621684666985800495145679451451626069378020689888247947175875808432573711928606554424101027301893674853430611807229036222838851035656035331389692410428623607593653507392036083236847534920225118332516286432964423770099879731303398211471326412561134781961901598898732905396954998449325964422799719297672806344803117595818397425829480432665684281624270025475052822568732426290735211253038521400784343093281828165093239976823574931311429566513451009892932294041624670264947409902078451254442805441980735474163668057082384190413750648479247917001406633949744133947171753694463779709634873000762765078079916862637241044554895915679291909138775303477630470459731870856182758242832321298401263465896628606666903852305292933873955717400792729397784562629744805007559121275342513066040569842183337589371252637124529543396458152531888154467880577220781545663766838775391509691800477019952399639937680303577181759070943384711022836501234873822282237881351461399996591056868582693527730851062490982143183026118114959694683960552697750148759915053531654610942233052335853856075264038870659250126156704862321102970941463117243901849590738894902604720346141869763424565761204198445730847544553886562901103705578803697526687888023233717381072812637254519063181545243197043982053695523099092695704423940361801985025849277612940595076823215906439606154689138926622535466697617829621012581634282808650083400719374269784992550383838744002280767466447794579130326666636887480548264799583198734196061760213472550595592259456384064720693416631725590158020732652159460929905700600614560776448942711812495734664322702727750079935291494474724418663686438237966935051392609439036410666850011136641154539173974214165178045537676201915783723662254194475130367643503875559668101256948285521804892083939342519706093450760490666917037260754212834772924288526503550751905583372496482904366066707951544440019388006320163559055643607273929452463167963545466603894165896361482013643296290288219264660026572072484621815763596824775133629412443206871353499622504470477132403464913502210995413924922210295692998005458003757553168868947959070774003883984138952943291758392003725671234172826326604114984213201326735242564596391997872488540474633251691343793297660423032909491335103294944842953471812209490396665708924676862633341565728925915450277114756654509907348351517476727309345525966349338549606868722762778950836911429464816255185655010378414745599174369921953033269374898520984066937603016620416362542675159861703227916308644986723030443510396336738591685835686231287541406358354615726830189754531191786850053853398582683088187087821524949579798646974916308112998177710421430810231834876868638734481354043083996001662413463797796763997867078952980471516850819667211583328817598662810309414909430628200170995654538564748975121920263353555599613361360178551850287545852982471652603565158165610245374329408311633361463386194952399238968390670893785113063569825499745786457553112527374845162886837985075396349304197656853253370292532362433832919578666239309954646674512183556754504219114738795250809437196299804804809024723243987853853218705948370451964741129144909544909153589954923319402581127307573419248083394542282801009825518619318248877195427840482623390430249640660593470866081092408851440851866989792255895417783883579115454241383914668258246157998295753119693758189137595235950365921214447302600079252240453744874980548133744004538487850178716929026112303873679190947678015457944129552324156486193380985026430804591283185546628441993241207792861990950941433365040006836516041493262348692205674361798593222046920043736667157849602178286346213586906931516749851976528320841559869473776641877794275282134532575866568559012991650386718470710141142334755051413830317772125155505892846592296779875930760738329353747339451099966838009969965864403636782904718468559535067372862257420697841093619311326594927531484777331155847664698123536740093149930019062274330836428667352545481454218816597588563839991173121048395134107294414008877435684641728675531481936099626467916983642513242832060622524760821237287337117886553943281919156294235331260462789683268705046896897114872300623510566103202115253011632189131885503272411564111461163987552782266125643686967149587615999821652311196777722819275271004139277362743071624337161779449993468158886274545304098573720137043087187355372915926035163046589701556703314492931618531690414532121268090473872672765318658685818964278166833936339511329032787585878665950345458010676712859455659157486142187609621796532016710575429326417498321985830419485351746086803729250398439741632679416642578535528969511940432938980988209229291018510234650182438226155292255865351908861814950258765620354428399199138453916236600576766064703738806025511985473578288869463620328337298134200263816604117827156493678277994776484405082645349997587979574773612323975459293437300819638777095850973642384239646801447550952291289290016941566839050401248575667982448898026306070510924000222159938159879801227381867671994569190802172744210707838078270191671130780502572329270821164329784566475453788738081155062882880008141860350687210414446026832554484679006289438539398329296015768422147449981642730528363414405458006496589901727052670971065547068655476456096189273158314118903584979028277003618351491744820409853511353124337178546539271872314266236505037181994309096047339183270667936596273873028701781707808008881660015507082140297827888631172090184917641977707488176404142463258476597098711438835184009585894518884332887380055847684528719808865847200163142219596136151611696575886866686870329651203400323518874820240836203315560753924745819016411548279999643360859294205491004961800480243220472134194555684948381560099228638840962721227449392038790001227628879814457759155704128302078695030204070621472875627996580452906629894681876614964367731133662158009465450490150201871906630523764908753826297231742859291659011457818080007079947926486152593830181556153170597965265047064254306502686399259759250866455162935712402355313559870896296575743057458804213262855817016237302562574395219613356275064765735177260067856928308257020916447426538855311564525406713600620667545800250191559615381445206298456868138479943397569764628657501632017759555362357632963096501924876802822920531273222270176677155921433569860042342046790418900048666643658676898841644862745124428980276953625918131879378297184768529915947771765841240706767403329950724183582791776791859570342083188858340476739414708576335090548195304303882682932554350317584039674494247052563933022912809580763696131490600419800211218849132854260309508312686474464885440379892556036800822182689504892857553141471705249691095043843180122264623043761426615738811411320499767470252070207577631728578868043194608866343915146818953420273465327649919123380215406728181838812122005592309444309021444922207549089196229116192590385746312821846116675341086110269000111920539051940683710613431417736420351755101243338198524372504989066644397378652288311893917948473407925094152346137860161685869846751878797409062556283507797801868642087557494205538784715184225478768238110816969110623815742207314116813460027669045537025808733367643331507685286277355238460843446747327100002705000835620251405373276189525730037985468334759809460053041230729474715013545589118861989487824137345734128749231339348352725721102363179226052962538500029679975883810204519855557378902316172719181624471971459790977245612052467459249783532749508527014711088262165664024853397695172128041045022676104816703716327392715471649221741885309283815037321996169718769610186834341814609286662590694498207768818212141504118255076237394259711489332504619910525734195754088179294352757068806742081302404787989359031486878936084758460839810425380690450938036901328054006634298213834908999595051958080107263854622047434773372830498207297201445755175632621971777112873446952321116393306060790377428817804719371645262709394710476909998602129721985284768043068882632526717106724635264509426376412314566093630792107646066897196749643860122617805525489747289901705562539771758393730641493759924129553812765460293352010249548834403490320611210179089947664022080596874321389216644989095240110008511820576488430116127392680556378385534368037972503435751309456728431368860541169760540677325445603316903619657595584405146094119379162108630023859106960574487414576604279671631263911092680357365933266080898925141954739312030271858331518584278444562028861129956586483334906484624394888799012579277939062981189277891699306329483076506231188578439038750592102051860697511414205649766561537847128952042343956501689962531958372955747470107068069442540139329678251050987424951297429458274334745821831938397924740539244569360344326143014345744500261846341275515924553816867654114306927962382629904672179923148534100833849675754650653952941297576010506408708980364491452603265509110083839025793121007824047001342527051563626336293434914256980867282973115155921449962069459082978133706569791502280933280869991500975218067701905477136773630118643842090246851593896866875226360354484051697625017903137501611107476669935167973722094304300554940641571874886390779718753595840038343242304059985948776475491795651950964086376940480078400712198440637935637509099432800485089002764001499075943957556774915918342534851105799622931862787136850081666962671606649445770781627871572111893424086630778130026069593262345358960884591398465941158390188112771303279421213268571509566809605683900578168654734098179070332204292288415831805294035355204439972384992808776921688473901198287201044404273389290391854746462244723162673787753922481165025419033054282321940524915538940916617487320812837228490827241002171048048865751640340711261013861670728914860028672266103963116329880261670171470921035246940973775684161157164910435521865591078895483246274010887740116881144335517406064810696859421753282742872722479800713014629432821674756295636390883900723276547309250358893524435826933378837584208135197873626561794009665633104927572140507678037016003879714125942240381279474153989991061435151896091863328868272475103403923797754696154397490789920046121540363432720236588253844066536793397250869170191708507372585874246357263583254013730446506173538512842359847946800924441222896087432535764021200872044156764773314230068769030288822390665425735047072224431670408557272509702892911737689206237274313124226942118687171508628900864865464454431335094945578660252634419474443087217235106405264676781774343708341980964497340658549131071012486705167571599174942169267673097512227867024453336049227975745565302014899440748843278282522118933233478835312888424622226488711461882131860183444594332830195836681740504132083622677466259547840199565485359408767093786939025171807379256160353266395925625357550637858460855380599154182967970903939469095938840959183219076730563625490224385345930045488631320596969393730176317988279175451234612275175841666539583354576107288714059190152332025326248615379856342657788723455311011607382599185875502469356811556107077843787149665196997662992674545432802646087186920813086916759733544306243841682084753291000514983970100332413619064221553204977662860943634874454707929787273297912703630677343078699191392476458428491969299449408485873636268862744397040794204427265309944740577786754562243532505437778688255876860031295945929452396422541178938827503187592485510718811569465042889210060652961591792919675425181153158571893808561775049600431827786738484233796680651879386964520854151307011439990001334660228470789741746734024899782068598568598019944029543569776955871782774047622911125092319928054766029241997796919692405289024320411142666139146902125762933878170298423868484003953522207881854120214127145869700555221428983669684112776985033293444669924760795803082459777270920992604038617997030246342789997942612997695924164296562260326113506252618382710082884633039787188054915407426075560743851874621300441490115650727014898768637574222621393911400474431299568355167979927144308279978736374267328116737858889095344973853893969356712512256695219974723187547931586262844288588128371121944468450942478799426822720988615255589620091639230179641413525933394716402333688109801222531955075104530934026279681351054490708575918984430547148996965796156467260936820789394446754985554191102833616884163131246629305543533688623707900490567016003587274257004783515113521346442858442671497051052721601194992310717693242661257345041908678830359048595894475251718353761193971065828713973762721734520834242056143743641485076657077409668755947365137191462474267716013892509786489302628894381295775900285483765822267497862372628739558891967145874933998097017173091985194469036484891201860327104603045028755933237168973317495849747322286777503285323008809031538490843791752715115535856145305494430020155215558204476051528858778322308610021586659040469138669367823846843044279101047679572335507748757916885620771248684091064230576626555159357764263898935873226128815447010744634803012771906009333882402675148005867853549713966226646669564313726210319278771829963012227195132638140254765542992169722619076340710538515713311082287371274419387603501622805753881131737221126280053305277718631530295503135842361612687023572918082378505821261181264496270111231915885376035491899095721950464475617180259856535540163999785601974757446126604213417618390684981895386380594053137950416155179931992943146285409946683109234541802470712235068848962236512362206220421575788986049028441785599963171409334932794221815469875547370618490496247935438485875767342504326709858121804740541028348999085588246521814187704598111793801220579948595290331415436488027614857150236915757218837076434811050023756003845500095782078301849928118144085397970144145010380423595454479554683684921704420714554085752896646441153841587732128224359776027110983356459718201537696851885509333206346285220929674322996201204537652606598781949807044921192295481034528202551660549979623508954622435231921888841733723596480794797889479385740604579176880361451260653132960790429188959689128379832776369732905761703545386987183086995589213681617086376651163112093134136518288850878887897967740302172987074714664171064933435720979583049052082076549667978989767420059742602593682632188528223943567639729373270003058463743593263709225423679102956111556822608669481077034056643652298268081731590276483570191314389694934905836906707596287558320999387657298649212898075041284379483094872514127444073005188041312011569526448724375265149620228585671165945224313530569646727004564106289666550758247737608183716778510420586315770445316617084557797532394658334895547514197475954596947237665494349137935663072412691661623322246389555738963311397564635741301138586475890407241923295393194215189988913583766490476500080386943513488406824874503950333234505526975007245422877465834099246693316275662776146818964236907715671394362344794439632300664203549613982440604483946759314706430127799303454407406063622321336625658327513064523066170400829304190228659139985556900099714429513962555515184242875618366534851430147706563619416254063022126365333165663068699544848364132118686853642918822716049568895022129928585055103404199349677811184776905407994194077355697879144994932759005145317078958449325170574930968744811085937769318388416238146384395042525806526591862727002895277187987017696896996733977598870719000380901124766799614396925960370008259329880447476505960713527716295691334188615529022478983426980177127554347661430387686123105513056719794433496918855688984632459851561405653616884543268614456392307849713828240449128702618662566029156227043531779602850328352884093318109740376569922765398291402312853846201490784824489740608542362155637694359161669538645594489765960924949281723838797757857699710897108697308296548877850851191608687951933675719908343078806331315294420908675987470282017892286333897802765422360441094798598079348767200491706418361717479045066426059123108097014652424037119315068334697668758989151284649790848057633549400586014007394161402102123766957131559797567985476513768358260300886689424189601453512670280074932631296317960375901680685978797654150362875292651331472798079679269885213828987858530788181076286668573380648077131326453993418395327417256767016041085797279432711666832728768044586422507367319478991330205285094333478724184360278559545531052577365032419867806592118175591761899390071371587878534570512748371530634082288504471324639592382153459795038022764523654090832266723634610748844493790168321348462498435601568459894191611378225616358294595919684466143768667375534318853477085743533485830082503103186315297391304615265041957631987835431762658583067019151044842523696111586336161309249880612788397842051091442331761362677611227312915081396175782386997032333132869848733757604326675045621343417502126336529664619179206666237907015861221590733210435483713342123044742073533873829070105945009074673250962894390706760643593541095810205199530506857713884878698169652066728286928242387154847905832138745905445312528088851921008560766202690508509903446767912482095234821917737156047935859561043489362340038843335201512266182656300473352257531477439856419645316843877645130515286916297076334666833793389655337800628520337202565471862968105718323291191910642541541297432949597370437968509275216710568406487108597906880574134934735757243471540796454064815461706502605948257288463045630555234121673648035689019348870755028019731961906450604956697446472458869873672267339357427496377266746954694308212506420737407179946492731265822898639780226042613736422716854834820032959117939240537674768807176453827540951153083871980098931629767384222873501721450775609020564651294784161028266196752844789953618882112639015890884547045047985901176707291188153897697726587898805491452349256116998913614686981949460602565555021250659816029677357685114239096229493204343863578977088158392259229739833005850687141514314680139127093427579532087611188686467185674756819119518080670732742388268969800746452080337025178983849490079891979597133745192729117408715441543942791529632370794264532484212921491669968211152197324324904790018097224391381853898632744337476627092222927219016634803819095130146560868357888689533800722436862641913043741807599953712860682475453997886290380919031629964571662167541002115778804921198156308223838382502195787183037379009472379372089575237507451897209895571124560748568028796995487564719661388580364181249583961293563422928199099522134433158716197739289441812891106953370609207267053229810058011594692496515361151291896638463033408004548665926015454541068891142929556928215371948439329729930822085121685253298740366414988485375262147334043582597281180743950814192915822171054457166584451123097109919841619618197488484658997073712498048753428596850326259527093184872818559586238480233538111589023059721168321165797844495911101284875765278623869019622095325943056070038170278757668079523196892846418668812610399850518169869087311336165034323303911660117649296634912497600735437987652907924075372082568579770248894758626745676531505450678829966386291705933735108583684072648765311710000838647881933936997136954492160430670801206752230956746230073224039823662445573831811492965165820933260658238037823844573913075746643358752610531356180306573356272533113244406970958204012035507981902319271042528998185923141126559207404525976351190124434545298078442583183206401028247732998140783276837738617811081773496908787167961356267114670562004225324052008521427888072155156308879551823222490787915566982532655418439685985227924935824132818616229136857843083417473612892812469825193892609663702867234761721095253798548151981376044976154134365462456912158009104625868382183295268460401822646925471018681849799992981662963390057298832909540731804973407728437958070636813916369033839163231649779879764300036731795190281263657753171887251805260636294630110361787914814031364807474527737921530319219690852791367139790435688119413159004346062946308339707079737348204182676711483799441054073492658200169591301712984251674763435194685151178997256056907042569831771934758012584162948742996863706310922715647082004466075752916723894462500557875487784809994812747110728194663285749585197752622652504684388839184197528933330413138451681405563854950340617228032058739175358597692923985020797907173551261550603700009017723758591313335266227414945098544053431162529987104603655019055478989065806854255084361682545333428031574971517244186873574205643380493814046929312632344106595635796563309449729335400658427884374477295588746860596670897031976411732728394021806806558514575626742165166289831860371459126220376130754160017274488907901145566586682008261814984536635773963648740863891012506414744092590022193830945236200327546021629872692281136685407601837709883980118837878170654342658775043326346671591504116668068454533921232348010908143276458680226560697336686638042558711827799360709598527126252578233052911937239181384920986315638763671841000219344932770241938147241076485031314834723841315420447588509293377219421181203782770879398946682424652144584176749536260611727544302806551132267802617817380042806124505678428057041573120089381265689074610938808450449935321219922948766739263355365771745571368176703124376017632651863306821686648713558242758601715668964126546922597626597694701007458743242582907811523962786377798267246174979986583857050575929826810885939255532678475160146904031523976738295009108550005293625908897878711006472329578801875573020982619188831383778820415224476488265910125470969941139080288512370431930153790602781325817659416860627075111718760706678068735805493664534895212183306330299167173383936189256703107608935413413006285768069615623424246772756657024911437179450955804810376683336178410807519162139321336280129355844126990510709684570343955902339998082619667356483426233008718445038659092942659223697332923145743995786462283122066359893934446652994668404628781997154953500872825040069544654705985837016963663115636676567884937586584389978429688525375185708838857539759848351839223973425331053308196924964840984081819287825997411112080293187652438547644032829516875198389922524667121525580837937088540502620726758384987449360802109103687419285333105871412344192022534703689646625124515306228938267706710712867803806570297987613476590813459986356216671796366128801874994826211197331517760503681359031389554220338883395171382223873657197291082171539211684553709714885320462051605439357790333468493411803502388142095507058968301883485293424511735900646996111695571211194942198026935189870255092046468560573934338393665042265545630177968951003183186742374115853133952149978116852409744653373720252289754554236545654864618980670964868080370470707608351267683494461964687274401723723864896884144381072717030810135742491325507042800941775140212893684510447218790613177914983277945793340241928589549310738342583633281858578852143971704883635338934419490549785344442389469719472974482716896368500580767050012332350458585666091032833344968055231984074208972090881572028390667670464412363532583203861128544775393622023020417326408584005506114048695771693513311233120299125082361298021592141256971111262109219101784505580640303105487990978636821451542634452169986105479109529413836095558141257406445078906416511186642857076052229907526153672870143785946226892833657424091822303006816257257312238305994283799045964466091909447081299251941004103161249911391355301408032743550282201037724257011232489665077320354617892174983139397280485651000136750448790888862262247226276574555719547413387007421689288904182862083377617416085017880025347200568289866887422981965093133773422254294356173001500937743970565349065763527504931138422195156410258473535028688811140765468103254028872414402589448155927001920737127471160864520488761648268620864960210514772780350371808236693160871367132316256274952873406843375175125170682856485022604550551259967852042578226396054713324139729706613642272314274461511936513589920206246072914400022837565892717098438337821221593856320961734958422684183964690217846077809797085549248481958716077425040011045247688311154622684639821361971779252135967253053155670431937836097542556903718077364412424162453284737162904312023517590581602756265203640877617446272599785001845027807135133744839115423540605603211394939687749709832013686933284347816233816817864783656529054187598592350094245356140187912824645418602473658373265650222314371277669555396379851065444917159771916705240906822926537841957090059281839085299363812662382425712938784546068213908415165042417008982128314016163356087694515638971037268607851696346344122049610075753464029577016736282157879152019360608909540355523560140045166626365129166895531895337378098735663889889013955550750138159988288759843529872019387056796584899108109104038133299009285372749797497331388240490728827806950139056836947890904836821498155013831782971018323352491968230636141003719038851562432784008941667798254188116633395604618416312323251429438070649303577492412323718648036052869599613852082331405947360233211087490294661574257090124221664106227809631583561404923031501369124936827985296763169950184926616172658895120543342855731930925349950080709420724341358367010028905969297257599030349654866097182321836754776162299423166735280901125128434822698526016178936900586792562500636699160124720573161349760713581191537621963886179462058943910918493624160367549418697054729393647846076827309981007525078285835431851984042814829859836135199223539863044987694401358783481363518855589882176796226456896909759921151346219503148340091113532936766272947926984531432918485281536882691561700607405135737896735886749808176102579886260139263117355810756163808638629419319779617482132724541540738266413130344200142820034853684502901551713583227342649479855858290893587441171305426932977498258283429527191101320682848895165623622841658356131839930022858782621056623426574996356251274488642893199949928601033697646872187943393762088747466020046730436288026526908555247836424374966991014846040828551953524490284011149748231476566806236303084035047011478042821113786778350217065269556536008885479597461737890185751493702389866829981441794216141369727616898391225953825461750508092261145907123871073895356354561654512721697392246179932054572016694751771701989750684854087889862086025733784715149542961891045652293632449032868823984759784264930280131714459699523042727348363461480380587446026474434211187034018041408454254160552260512619565565528963309728089540376367916182404346658934885520863661011944987472393008171346905377094498203919523265609976044220254212251735166759738235489190715223972505464080568774221252003725965109318216078987211055609112020689609567442022446268202638287613939984648600965287209688130134153735573162986891903696256590177975311934939814765787957465436300233388207268557058688243114325889057295203114610152780866398379624856596262436877363932529604936597970785631817372960411569702544317380031414967423745921788061850506530141040660404950467659583665542678068055920106366614515900659544621552371802448793455793460919162478600344848382744297665790525272214154702644174338595899269686062943248510383033701015570495584441607608557561861154683874093178074709966149930666570342372821570377950158019337194247284708584758775717006356195599891406675895846954580494977080857782696175166534122911801874697453801352093789344977525025416962327483840511070568676884925696380492070655222136219953469464047072477283949303238494230565707612307221212122076833602496585089563865130792997447960438785752449599823666234308705213028117986753231694429024842159743473258029179791240048947995818922277198858424676028075053305140207785455804114291168854776372290592857592315043787554043257469720761400915907303578699061763186372212271368211691658589807510072192108678195558668723670259554164786969912421329670680071027379839469560410786910145667535965297516289841999783443701505000982984318831896302871271739725658437457495294219413127554070592479683030398948017804577225232488279592439484369455249151083212926925003878818242148957717114840049934628191535545285113500732987945022539144648529525466863610072702624538728166564610495108058018067935491842725423827184060899480001894966807236255881975807939398218284455196662799250333537024276287440740712723656094838515331846702416719853955136003482732374715139023159789463765974026673402848764653973152476640158403878341958089568967901614403845380286174452582177266452941689455762772898668389159122529709009587520944570370496516861094864062945332435364163259304521412907058996787752690930921731233065529460848773465543196400255342287888152457087956894590417409012289100339586999331952955315061898351948468677006744356317631612240987458804121329880344504401974237726513823495604544687306219021659441901593232989350310486606058150293662374797913298809558589785763085393491863254137608748577514095258865879097992199070843205176518908322608111055744615714414454011882653647839139531049060503636061999784970791634034262594700706031690987667575077887055566597244273824234052528965935235370293569315691763179041291668706419217279745133384521773667159330176629641814216787915453814918810441090058257631322701941507133585591200302044092470894874869961384083080796033326993155509573277302545902541525892423802082636642299928373531314636768458537521446919542872125607931206950297812243629764697484558875575078547466048287319866723393317626273550119142344710165224620000337643041166938958448857865449328116914623161389147717442624999746555797888658882394753020198854907667471680014849180680193830962702332701031721852953820028988881900303297449264484696580698223570843186807037922492673655790039151160856560097256198347265764278331598830824597396101684241036471504648300650936783879769093904339974348016636956112596755053838829704968712841227908047671247047338349136203538901785668219334143852518032943166449555700181070921405676766628580682369849289068621966235686263619081881116477010870225339640944995561704668444274061036817271595290678714390092854906491833815196986836011614893897855461982392355481822294329263343019903133437386113317312485127139251888923049075368873614532806861208667531826783105751229805063789225780366475894728660547927612025071627792968585939638050770462070133624940056141737026162999085171554507876903517769007152494544455818580379410770260151965637261593087604728000233410300378070895384995277570081901328307984606261963348373950774571955330362102292428335792470410860444190478673223819667373825118682090588637816803917561284149792731236720023119255857035779228994744520292081177439817000096423425050992846379484026458575671136669704198310129682765284071475718418692979171605012486834626693500034466855033440817890656647587240638461179703321016878990667866972709602454768791462875944469903319736472681613895844880255892867520267353002745171904264977467960210640632682375865681109105859551840665801622675307750825764804817622844786510290204821607603497333243940585031471680360778149087502419273769911640227326625625726174674758072314397396101454553871891825805326205620946477393967082316877340575941191258824731941144114102808115619406081090080447982411538123986119809853315832475875565693459593200572955209994063067684533574654615113133837887806233555700139874087469503592362959402328357705832021170932621275975429152730230019335283155893661914330884664267744074405370685799781483582035075912353346414376660552571841744244941223407692973823848928931710692410274357940431964540834912712334879925728232607932288601703001308444885759303462241484132453189968592437892552527343136801632700957616305654855417969441822765773495121269717946849460022429097895402710993047763121554651136739371906492399807545915152736145732021179024469048147336234810824261909479894017630043470355813647555184944452755707363460269887630544957754874905127833600180933660576492704587382783092475293534643692208116893566978934226234325402091949281423656236432620106297535009795125281817603514226582018031488627646266779171504943983589563140398789625936391533832516040892752930185867844457796331504822748339034050149324860969764416303169923653500618622701302481047918985235601455542879544858876957042824964819245094269444507623445101790081890103082793734489176332438269398823915403367463551376292826734394715397846451455886270050215880315473011843969430832496313493639026128233543565544786430247625923727103190756391467396454584414402547961623652040818045974649308174140159622280353058851473600973136188644896501844955879551990051233620774245204101288882358580445241119681419442899224644885308269700517653598894300696177935077496557456008944810393774424017446436371606505236626763161510216427403268849220218749424419524752836506244316706150343966572851080886112714023543019500593543346152018672327609512649904680188666990680495874196401368059872084288810277529007506901690185687187623863850713500725094302291610615739419637233924565325813998444875219013961081785943583320434820484716773611848230047980023181278479027603843669074893121786974726737591477188383576050961403514656740217466079715061876950865630443613197262053937360812647243887540701858878355217612767154885738181261839634361765330188756585661369040998720499106990816754567117306656538439752265639372067902279107643339025656754348291866144928883291859272743105592860746408394858421214552417970629553109375664579276583448443611191209950448156728201391387867184290538965891413520244279504397545558944209665135024849111824615058767488521668368988125074172533925040448806283404765996976113310885853757534331996299137134846826467482939349435588273506410987135228865193112463341498098730090053757734720595347161595465576477545816452165369966672719254446382823843633897049107873782805021614365792757314844104619597675422817006629495258960139340353250895924058052795792241538483441888324811555271741444134738965970936687268935090936290548763312631653331562684271265304640435591068056052076504706087152635387575828589716364321471653501837213912874116472789416620281258496993751348406454294157741347998270710112538365137214842855643997373134521916243204954558300216031892877057672720107546887950284817836417061620992473815852297177907759002903339977834211850184383972548914490133913853705805067290023122002887117177217319648486469309271718026335505468359940883147140520152236629788056509043818043197037711177003734599323603504172703585736010159276615282881581894205882062169187248098926086383624632563436544357041871916487761329584076274111010495737397524643571983039041315089378394046627330670503010363857014510042052707212902671914015971957727702032386039914154964159817779288652822025791534866938376574290257028060937563197408951702306474587877990930447765757366744772043983054042859299484200779978715352662719012491103529503515241875600348339136445862907510460926238177490367034572251061344103122112363890760094323102035245245727818082793094146749819674650824727454401761490395803418117168941018335777251068379351501057865216563410919192065064229142797826289484173887227307512770505495473482743658090555047619454026684784992232088062572035651338477287777121957183468143628725217910053806037848047431980623448766244052166691719757830397238343795187566591220636355217845240731568197612519959661555534019311482980206739878311001174134921843392844866049014048499766480699515282198461060787664691726091629881858935045714279318598244960117571500681336048985160087163287356013216313526249840644438293273677860191725781643955541036307524892990823288919582007657357315801866531854862589416945146471054886597243276518730799389743989680825787191590851113134792802598318958397215610667486274311179827660052786035225398883432570454551137198362802769608380646127920785395802623988943872361688302110235530831285964552474259095380917157236638448573684618135066825324651253628856540558886963740741867977619195624585560920386618150495502767374364190598365770761663451300173393886853252234681689031512321099534530316583490739043787200770322123469754747412509076722653031677078727972846476241319153698928498847554359662862823289794197318065306190393816704076742679521893127066159655954779938234458507730759256801683811992635740525142848249723415943292442648916633801109936076892504319818840217571903119104896704154566142564197881496982861457671007208698990604850800750975237058234479716484788769447159467957665819766620884880666246731600396581022640786710082198083942047770647375284096331295507636963788487864783600419015531668002304579979212294018230896158004124764633905455749510270309190222807931538410826739243705577855414714138462484397240531343869395219114453525601205237298333345496749396571167692790592042687223650997796671559265561205040049408816567119600168445678909352736182896271287760164730001011158423800933774697368642339409142286077672986473074040079669936058224429410009899701756171426960280016611326181013812475014464746264230302106218261685544224011650516083914615881110947676444986008380033516130248971834851309899350769363716873077229569130902057221276756075141959620464877219043813101566108148322025157454029933074788783291375262777239499215182535722501809027252003495441357286838271056426411256038032908302965236449232373507941947232022241919289444306656350773001980005657152400422960796496812073976829028799163741839654405069224365939369183968315618736768472570111439134243835115454066848649549763350706567143769513173227393770683030560809512502917473642635212626830678984623719295414326791030757756554836354515071310570601290639913517606992875695300003483903811826816143265947739561484461814285243584383498379075509717967426437009212772188805781314215507024749516293855299498224271518019649134979507104849601207670794959983675681365149619680092799254925555920292045373155593697690127516945662716814467398175508770066447964689157173557710576047572200852157548792470313737762015202806937778943621321334916422036123239658892990278488698391283901154512354677346696504176468514912099001602404093242071685508936247785713579473005911444288554651686275125570324356374144712837780915498864615635168040493292328246990293024977408762148475289708252151338727217064835988814432447744090700030798581057483596386593630745837445082914357822927464144096070389885115517971926401253496868659190014727048578751723014199541861914531130221293632128832537705860008339854463815648524927958249869269034667665178695460046077272754825142953712788926124110010888679732183422140751787116076061280955338732538776565276337895148873153935743951189181999245126280479507291272080799003040525554906795262756083199663924364336275958444870773855881491018979755449847241600774211063257650402849001335280418096997634759594323885085671343616974986102145430029375658020551714304563301676986605330251548313730487092471875326138633365632725690516376356306646478203179555396170529573634181843268462302712718166673237737018756185875132743215089045280462461503511984152302612226913959985251131503422962940013603767573000093754163924938956635356565875385129626767358674446696337334019708329731009021922690415468905063472496459209608195376292320684104703637519612203432169336634498012842401646482518778961273804222490630771485832830222442094317184373347290265344648541685341355320922157615694226142165185905839863246228777368348789148130527128172115710058407267806165810489228571489973976782019412602264717734461547371004301585914171251983863469200891078388322916619181028202442168038327172769285727320673380458924051127090393156558192698605039172139092084939306334357551387011182013217260843826125041330570016101799782042796889436551388178819971096693279994213000953351366373373756667245838847388962430353170692692899417965635345230099241036410910798254039606554185188315923591292669318117389125201803913133998571488526498510037538215090935343819736444484035404068332726323250863107615911992135769776460613845204539582715040350000356537030323059829791860840843369102058415607172928489773880592466792626773998757595788432868439139157162741523001626582361030750993784493101222016834033860883494099437543043720776213399093061338232529832589812236427179779433388969022867930678048128508797440287343440660008839575568120740999143392317714946232544975081352923508103734826368550530195915271961172689351774950859298170771852271407581289166218038543451387026630459736854868200094980730651902163804333741981637672782411990591033748780475003997825015745128316988243179527783363690807679593025744426795387544490603976578354989689230909779930053764973387140415346523812155095117480225357819810783155994922184583493225294819366878325984327994530212669039645887544132454690742756654265547905838203881433666941703664795911758778795992130270978435976979125958317318524477382506316576507440141712277775592281780936132934948743971390388332848471187782398404988804172611366141147990512982389628247525617619572504026818007381046295825382845726058754510702982176810511386989945471130828243321627593292988796773909846606358358072200543416630161975156522849475450933724038317339017136577716139004350515371075526478710537576405318116579173874737156711009761217599376367106496677486622453097854729779896313730025728132622081643704578628350927465533764213669700774866925006191104870386237279008836594584144098485813830273663241203216279004904584834638276380424990124090210977029646084211770087755464783685185612781983041624721623861316327004985482053889589779091391794847253181681062212539695957151724028331237164030838711045556679527829512270702623098138450576560943193295408759968396076358146148593573271318169380673481462195757888346996705534127678828810371289094583244327943745906688007528295916363237152279666556222653364774223281965120694353758527020024864161728478886296360675714286723677160193279242496685095443899362662178025484465355529905152876400985718652790624844873810530671683925220332560482765690537298788232553757974322509417902339066890816754651667422327989514677563900281868408429681393177818712480464485057810683470083923274357101131220888519280370045598270303604449932243912656214690702977304809673051095723574041337792084240978734939675478421954837209976858230237793204020595527449877979096093582902118672478522083474291239825710779424229406410797658612301830956178837327734775534241100454619418802582566901460985143399259156287712242280947029152154199151631149126758909376120043278616101181344728274387194256656079909279036639116516654627980158882814278843106606068738358709890486601131435194876219192761169725341556454676583319790944853620853666639230782587446787887715296860163939220362971611476207262192675865749728854925419531580701145637538952776463788722404147904747763058595115959564983875056659891027202289678669669441974969663348093988929740187260803762196591127834749707567955789138920567550157619462918515348421149862745238597955857787841881948592183331188701690535099631387171923255688765836365195863433469195426108413981746607609119223229297842394171629432207710035350083278019728727721692262197661432558527222076661560263720156989656668394293119350568098487682861416093296826324117111743061813055292051774907761473542207206134033911094172072391418930240865422955867115278958230608297594729883569370326019763937301872853473743998707773948123159897632731951403525178585581844083082669865899991681519292208691200490208465092627652221772671012453374542332867630668069199375800266293352502997783530711840704324177515429463219337046359966507909902811933896951774395211320378977963123732343902421170843822826756105650113921811081718037165547885359033311047606512413299244847498019498111478000981761533901779975400125507715849461889531854831327541703880935304281762092110294505548387347522993345660327481143526553839159406307785518061931860073287941632299448134736514358294925522898284418596340333828175251218638036420000425812626420171910229719746751953652568332058625773836779145440867969210344053316941036672954886007270287639287441420089847666053427005664891869928395444110972508356014935299473721024557210292290041532647469778619497297749571624349860073506984619539994689515669155983767229979432978730828619842225391634847605098738266866074716500554776680676211400335797491836058190452913942798976315395975226946270181165488721387469769082991956156653717842615560071680777224661837701649782848607565542400065115758903898175137643431141864024651472423202305665150123727532926757143682830189465917388589421323828930816186324325774171558368094495675752226925718020271308703118210833428614591038805473469554386892135991632271085916729241920643187479323713421115035879937022010149595547257803931918894899065899942855247963484394304295589541487363780192163259684621791639302690381741444834858904048367379389345734114160135674287515317949433469330444091354220861645588141136937939495834592257866554934021346819074882147475003796440610840468256440596625857902044850500459328223385684500552794549159230335470309941324647896785450544428468405972863552958714677099494091379842560393340277664468969091964545977184414710133982181125163989497759041424090516743304143207642251434376472627200118719892148851178279080542017835553982469148276469501548923983491068074993758398555865098204136100892781287743893602634735643998754870890585366622005499296186106602500031229292243404414367062981157564380139388326642393425463714386824490143251920393672650934931473592174777191744014450456142206071981484600153139147320628996354191807942895945101301849137154411500766353268702351671271955670655248094280185961740267618801087969599935573719635825883451759882260840111115077769022254832633414773155798110119738015583806170774740372704676058198995129483425165851467047740738782037037361538590371465423354397828611627132003256458798054314796251225043578983200091930043591210197708738231175508435861144468666597664773280883448344507608635674835845300208371975993932981300281734665096671631994105247947037183792531633342693516318420532997030243017737928172349586052225302962254187432342100418445729164971187142138749189381995773619931772909350933432354349876620692919161750252204016849293179907789753467136121979811480126427972276286375552573466894446376385415106722956635991545161831506109634456371528673038854268153691835928517082263681654828999275245980202897349493843105178908362712452342454315185066626892017614425929481343099108888491244787558038764637113179004479996305395562207072155398036556991509405627040041774787580359348923846575802737255090172681196129093431398418413500627806938140496177146842003405853872566316343454294149244695852256659162815975943501276803009204667696807445727924407376198533190350800358200724402604683252284013742862942335572649959182198027696343664477508244221507564211328572020904492739946996018771314005549246634416770540931307276834348875623516363106200683460600119712358175772663596373326168523199111667945493453234763835022250043482445341786411841138461738185378229519620003721455759131184350765552004536597839146192636375695384378286521379234908739672584419811671315122087907305127765132060965794541395733682238793704509323663077428394657013961716198504265941363925186864081939116680046269048932361128868021006137927941668866936415129888984947854100659064415604316613336531471634868516257058928387373693585309604387307710303678189885020548539383023478210286202518417926198749420254103023467147071569419693573072230352460573971403991876409297976018331074344786519591542397678008074929222063157738729089822826027271236685997068665569461036106354555138735894121919473280237310662178573743846015958068066304175230998219287167839946537389191839410011005524386009456758757784039467491367498558360249125560316950204872696256227011942536185498517897692622301178958950422006086407994244277024230628842462541086515293284003503229462773107640238759714967952202595875528630384448142273962244424289383776721729001329494573792689759866916192028011862111611984123680623578633940554893325233627991446140929443921196376598549231271599626023675456027670612261840496315125125072020090382783642512051910150280342227760362465346989587107965852804223800888923814823937861440076466135160524475587038629744550912105853487221977170326053458260496366278211502657509916635198056809791841122996705387532201909205204957233756419384693952100448992143980612402617355724465986312537597714511122645552169220568596360998996797467141356612661912941897507303525879809532247689598454630919884941334810082862177990203262721883290367401052939457554066119413611419528244723883683869538682550712015338261131136554919031977400312922145970202418570028598907526348923053841454202463610529343739721866012039577716084332767451693523127003859637826292859247078598554627915209982003618325565525191099021254143703313586203473351929105565499826756210670292666747082521499817071974209418635769597685511918262437482326422397226143036097191231927291507222977708656578767194207865218797075551739227455299818385725025719894587270305978329481622966265692332035019379096856950106784441212371743242598435909370134392992445118020139615166931419132716098877089986305842395499641536281244240564528998982215741999144811088126947241465176352656433515096079678769795278653456810942935782131695640579089833079224435098343887426221407757017995806201584089429541362436831698007715335523609163935436242359559270902592165755666875988904452983011514377596092938195903203907626391261573828933069565475770450260575223684976747747090356430770126989638969718885662624901325090806483559346018028144998696518277564443733278022714956971564266915304460349982039782221528126096152770110220806197432110808163335576748458559730100582844795753391330705991551996678836968595299135768324968435581341873715421733254637917502259628559661359788373867381654376204437107460405030651178241583660457229331977230048553594669707313621449900285453098901431123542494142067051172354077535223325177436132694242070264110707791340203691470974763248708285612722514746205905195523989218809331347940529539115251352396406347739853231751770524276508572056436187680698648149488549109286692920061692194359551568092493232191122953591635027304797723618312842923189499062965733560559385438652822255158646395052544196108777667207698342268435598778207293649068812270508785897898521749104683945412950225151428194108840027319021404586795990029025192143073206820514994719287849296851421780455473389835795118526575747752775599191620539581418532345691065753332707245851964264925170171297341104127569559733266487806246211518641011302224348050838251879474732823309076797196085138240557277213743259953114271604573053612756080793128200621838070193634949408401620192823853154307966364080572415834817940035729351414265169371461779622230167775070897712218979907353214642696354272270100684658574866148640628510593231444010333321659015079781033988704525452261638847850417843024559890885428378130296210954330248418556684736954852030905811676108125527614027362314587280328496867694864757224547889776758125880199761004714387675269948633771675671580444496550789635501314226225038590368867430034528636231541640809405080701814948428988297452208101041529275876986100601073651952061688904717265644223654584026764715305997257940477994572645928474157998832846349773433822022041205890811340993724447439125073970626594182659930875233093861888183482620837760690797873942495045735437296243394189517671314657211738205544946862423878286369593139646058808834654487590168823145705451964889174825323443266907967707794723365483063177872757233141099389095522776589447506733014085349955476378571177607817021011614678553229447862281974524294685562220602132407427470594044643938320390936235470325884729283107738514541103830778206628722717556732829824495586579468841422184848376246477279972133260836365170086211686103625233351553169776134598715556601102821148177246094365674546488913791681230686172234218768641662614274531071209987257101894265434557647340452340196492771149859684034115642413528788712876087392244872171214290170587850867322585988182182596383086502787154975195472448877035814561068217834883443808887162440757888830538685659654583724053929661149577280975783501769473765352910523801791965263890130805623517947032291260010273521281232067618948915854715167213483435037235731800771747928357406054902916964687382512942184868917209895114998376356343784005768258762917837879475892454670559845196758511001072370403333089558830157432930604678818936792385577340679268309378320413861405635362553095258521100478601732117532803066534475085806717026642525924003170680633770522103054686318939380937054231932122391497526080361522603304461969248024689600507565189404415680872940775661469730985121884640900558378691344879495121920151890131578572206565331606436353408852205937905766620239151773517230050487297068874486759263320190360666833292019150727540081887576383931433925211536362190086287962920258123536305031786113997523404641147442109163410921037459993779074774557219342117093590488727423267228295552856978359824173882807075926483089270191314544284174132653373082629710544694010988392674350405124685010560256769043283526784223369156721346516047113340857846442092943229991850562787108741265068487985340619719399099389173721342598063664301103920662255684791287159654271983353572438809726525042285554434566147137354900455461871664554397439256707289506018295889929779566080477980456635376527561917400665849403170999605965176197135212585852697335448841197559542465639313356674134777069026980947309400714048089091138808643911531634672890131093917955423070858679529444445039084146984054612243152424311906733000853477601582170457842496160571735190713014431430377914186832218584726559466638944036524633026441184258693185828209141737672217530180096058117725212229006255847729025829431327292836815876928003274364035001219275573460467409960107651306669560031758220888527176415369787603937119706361167449652018993053600512037905221277418507674900476204036209206391329869090893139181387739541353800760255456856267875278555331798459700164214710140091973243514375612886441707946549235078333876300265672138079295180275042857401133758367271511837949528684175945147446240260955793402451396237129776744840303244035431004169975720527587911574348533710866601348333970502761591680226328970732366232554850287389294847787387982844310649117782161196603642553717397512523233980073046794689604551720533983636629599086756819990415507018569049448240882807150995120617952891675706679088411908148656039968581415626425493784206645265878840816401994622046775051542401202973873597766931649228097139338759796833527597560911510035581369815674096740291298044212800078635733800655645657672374072136912479382650028806140580689355337792305502046827470566262764167328362128482036856106296840545537014917478177998900407350361054065168680375171929986624946761346310674233535045763712304637201234077835492593819748811388966483900761860530126114281757278278565554262001009269877038809591277105338096184757980517910614201543849047373352638123073387455814164720638851739504817062227457654141280085792470968264536120247227927043802040368000649469952227451662006976175300721011754621632467313723924649861877402763374543019864270454189665131733390535571075033770442479109698504102055099220097855173025854731561668703387150062529600473314884636569139163028461623875304011067965429566589885575931603376893187037873024089885687738718533007161650200428445203892701906652503578297227051010007381039323443243182346872454815239035668788274695694606829082329565089190340391158993493818900389556086943441976723941462464700096589136153274546912545978455308125364042855456725276109180050780211242206217569333477468032203363162502451740474198206276910009261734106257850060443275553894239942569215674793158457203078890233285974112083231358763758362932122146766983151927946575621834194747187086825720492120088692744278384576710741081334531606936153512322643460679841274394429025015406779258249799077826593453610476676667111110756886299641742458986415374826769383687321245831606307680854109130325356095766337016695939437424595181484845534578618020095895601977745972078496878453561642649808496177460082989807629241795199786369670980930090687301826830969862905224640069233256143699598695148213345366067178241868372699688665071292193541924778553114396212045139828478925585429139458633779609836468172927721724147199182906183583957942735328617801988689515317890868106846360177047062938559078558074513967153670588500559920599570863494231550318340018472446781809404134515170282864611240416373460538388826082710443526876023502029657641312239370276853969136220217334042566249523374801054132779569179082943411037637299205234011718583007848631856327223204993775054585878984273355073731275393450667719139680724327053049780325464805999179380610518445954056214736876800539881690519731123439842002256987406721115494135876104300949410103541251927776570403319552926670506594419401812183266517449759074203466039701518860632930635339986569540759900716104796948542914881374117042903324692309100976895731667373958819107245183745555104141169898516977868927842759154540095046452904319111585585853060140758737089745641877627480917686487844322639632610464479330447183958193046854084050459154548586035444189760032463465170109265129125442883501126450425966471958821878915308378349186542177542726772924318891473089482136059257332187250159514571181487383120602737382319220155353362071498051979114053320079686516933504572709847803779537497569431645644120377900428490097445193104810658620017175941904512635522498120477796882717692260859608098884966417230734466329292959744270340071321389963662071719745124614017179381710431756208511399142985849733418846220852105654535769135087349605925701888405672095125008536857364447111384216614042926226928123245818232194560744494614362654194701371023227017189482724250200786965767071117898117620857748182986184645883881107534275313937457078736740129644510651784093796963571966828716010352882337183708414462909142943903929050288923889227266804428639385807501860536105670662826281797623148658249309612878372443338029408769297786084878068068968858177881223388075756714391171160368602353632681414451573933646007095793303087362522871023172492706561736931740905048715335915031224557374201929267240905157718493204486237149661201343283223188245790508788422631670594978166401228702202917121657566827762376693590137148697206493811089087851780644663553359270748633498681107527013645642996426995760059487409364108694684701768365852315816632683768608109833813885885280726554203371242210540482904214410183394294075301568658423584285968220227772764576830285543701733800544132742714490969128367617356648460215019026293105802122210894284697186803619869359178754028061557934723167616895049541404762446280295763968355643083937240965860319189784635476845262417549135818617072516928266400124676235446530060091353224951635158044403483229086714114307851329078602988689520674814220369396537703376235560366141712738867885556375448818182829504827181704047446455655661271103382362472094131506706121323981936918864193740265207621595750839485389700573530319643126101013619862758233103422732880334782150875805600610510303427920243535226321371202750124012254589704046526928823570173645307802124141872992928887819452173263579073986143208603238976777246736396248277238348531961410267945908307046827822564563222755737965592897753779008714060666286292841160193236827924576704397972617488050109298564301352038337708773705107377935884878288105972199754802183979296223680434779600006562693802312306410837616836503110296282281197534586388285227008889836347278279436861223056671538522811926858299522065326566913490667348784098281561979704223461931369818478910940645693203665042645289230499023500825799129738306950599666147195420046357267805082709929095071355226195156955880845800933007679708634618007262634980398351050602048676360499457729691075010891185178144014194631286268600242292687853903610284464526655846682768359042639516428751778000433962574832414740879041020033400843518042196567053732553680203853019701084719669830015492924758819309179190019697851815984241731986614753118305590765368886279195440637778072421888495983950550054191987359267069527402822388557682988802344096770450511085414145910937752310160010358837068260314418363618435845172027870526958440712911199263138928935175892416850708187873571348371678509180627719318366862039816399838097915981210630604323320098702171772501517631542749244951516718769347163596094823335739905567795538196147035782340690943931008874447206491857253634700278585811959615456897375291031204714816410584061458719421866052129387819039441272335465164213090774740157847402394062602015140433171535141716621684731822761117597596586898927052333075695484736825651055797086585959226917112457319167067355542378665185025670174251609731462169113707733230877575473762862234136834720256840662804422788996275757896011238460118736075255473048616261914507263085573476919051383612100745693902337449819466823141318286502381743677458399069367974796995537952679977699196324609389015796705214373461934574757958177907520158241638651205916718643504997321004782449124059281484006190166094211268600254098846859339758300568400529006581457687386827801958813086751495809889500327977323363576697740039836336055518332895079147277782892459483938432195524407415426036437564045363873153342432591374740746859642953523228310168734585142117457337656374663290457278117349262829016206064797108427952762944249235649055394667161379413740343010207083158357388242510539956973261463053802146827906267050113532857045831531821763617159191547408392701345457107385347977147631072617115410101032758279244209123446109248501201520580888539985710331251026248228956054188130094366600016820027496743321993127036022190655688805151432067109531110038130390006824812981288284639338159704655043815768571954185751648103191795275642113002050335848865274929028221534071476087972072783378052734755447454339198373682350463933401740763133338539946242321364109144908269955263278870664841075866586360776804145351924219015201904722092991509028113691642271565925539337604299299996753407820006395791061613294475676213634334319732568937134747565429112205333017322538534164807438618984800061192846942432717247887617638385910491414615093477698738105941005870508832360775899966554248427063911846823149045168637229700718629698897087566085759122632688659025613616193305596473047491644871930400272274295627900553279282250030652242617993668200383332822069267948349345360685070199602702986904493515968876555947000082413243137375555523107448414084470891590390584849492554087705308728788053266187641346570015346309342715761596288901213349264897788908640088395218123844567368357033365068706444980559575594508793797193070377295184540192639013273154321895392066009265714773092479522105949022961517999402895816231156734900725293400786226976014365062885893462893336311140745214565262899931861398393448265790444186218058740855336792777852460916586222983736304369146782206264418236712727194963180872367271588192744828824279116637680267304772957132527624155218991570491600427536561422512960893059446393593479409274153662842693130434650985246130689145341382284863064627951448465298158632304484169997827387143339410806370560782004339072495247327670565379678158785587594338795122869810412500811369060161361957577999828362407277166962351398753268966491050048584785064609810877807567787278073530939173016500954926105557697463110409174993266261846795594093357999844710667934948425193677020788324815138422457433136893323655558243524336337888755930655918706386481539910904812903604209207791896098264702529452903367607537403556815703638119537799857354238714111696422348654768723496610016437066037637101892307333582727853227196006335961705516052559558061556859375822629006125408439937193270982603806302417663709796489656557914899197046225083457608879209866932600940175314728179984190318405180250365624305568543091689305667971915906069331043437842106362552395340404751310854759532076141203509320339403152487860758268014220444256466864434755361409107371042130563657519799978915526859735278025390874389721226524894283941946543651374270380056411543949726966309184611674188908702565121541923844911727242977985858507608308500200399151813836739676905429165327727905032802123600318626918325507318230638472112044900924086059323848570490224406400562732838711547924950141012723885940515214517943420760030682241136566425266973553186888935449946474022487290383891817991894765567790115520751366034840466556439744337106468115338506180895217851756683171466799213904209610370423612405306776486839243398363229501962686493647633900475581610355158171198190380217841137727729738841442769240854979606177597787965174765831409544969451658440385734660701704248335879842607998127915471936349487359742192993564084347801798004036764241035981457180868078095070595721086746941757023440635167134370360880551797631534909355436178776297660325324454994080669036811840148332476434678540241329432005450905882703687936650070447618789514744530082718698987023498539301100720658645540971672054042635187407485040224864252909407556442206344745350697000895647841875214986268154842835235397290601342834406461477524656450816011375469556543217226525177678056406209226007670754081163181088415431639773869848752844442632065149336529881110483983339255786073639099073639628333620520605618517718592733877370573595842876052988941939889843341253766504644672139434964030951089960766021743043818876431310392396298450845986003033970587789450223805935278686189928243651302596236330208937774590554320415943096893154204647729107394953711706388041707069631659520059547575862976368805740672815458994383376314384629384572285861438848235206184945571831147790257776822286050650221195287960614491033599513891324187852963776128017191715330096715638208611100261524011641132076124280543786926780067052829781028439172327202665904742049413098220880092089642339675903313202895355886595978741146608212622266388396184155361688448195126850822825497892181248847480957337610622346169588010776876855339096414421651447489444864208100501612513513842624666573152256905898492089122305524425045477773237395625468981522450015279317210188538027286198712310637354019294477471596128951530327306115463117862039264325730566765777537735299258522059114899840328142742109962806099732038502950581241048133294797265929034294832238960411348315330214888669622431676677179266569977061057923691842158123926958011067829296601140771616677472610758421086194127685103926577640364075177534383121264167032920042893891607160188569448366562635867755947964855112292115578920451875692794009199968291665290559164887814646779543782870162647816685566933617961462420732377451642140846914015294091961176201329838827577330279924840578918031836017776823418207399431711140975801236748882792701511326349769053194105807447951433721324320816323702466740980064475335678367508011442665927213635416219690164774419051249774982119007495151630157277946526043198607719637684954525577492027846693865742584530138273715430353215654518358533305719084817649350958319604771988552566973204803528106781804365621671053670393683320155795874544393811104675003056863768971421702465203974853417666067569327979925988562534144386407381764149999927146849205113459663468883918289114267771268470228820483215570232895031030362010266112233871525580829660605441456950596644158149082166496039850883692045801657171299941918296779707516049865826578236148454373409369535560634961042756250398037642061110687371382137829789063538114062419455914414595513258807618271334453953045633494657746002005982921950728398251481331837804933471216137942145119845226358447686020943760668307387576094644020052316778207986353010156192779187417783126785214492587024469359885012857126358625661740790107128057069041178588410600995972748661482978344438452656379498942678763891771435260226199463062009476581010455098503502595212223288912884886106082069722281327629749576734032955637986796449731803720459330633772404953562240235660158679166479656993839152243723330629471134493780471553228514955990283721388748082091874194621570372301249026197526465896451154384050768964657145107419788864807797228512628657432340175050536977782414913635105087170087774741366271351776309865405554506566888110159495697466131287228268378547890018602752006146354844352660955307369160175729307904780104294311564177744548825441719731757753546215340247235687195724909212126458914604044669454631098917560234211470263674980775321958239412304433561395544110246122263403170380694321995387587566791880276663803103382590782559754438364329246172875350775832565778753425306872552284801150639109476012382611919079593820724537184575230092034743340927585003427978933254567757292082181173839829820299649357240397152123493001077934618575677211654479732757677850627672391863096938120098324836918127486474984456258575654919134918581881241442550289849240975178252108503093229893904825122505433267059347561629135225067794602633097425295385516619161936859466950076120312892178606763647553895923246252347703213490403612940230098532257125451444676704053007339784666782470469912204656710835153308721488779159951970917555609448965142682196297846882496610951018854408677710253764879095344008893871230444765156133220069981172215475397702844174125988603064109744603060477229221822655473408202804174572584568147164532385957441423412171352626843306799342206291081196180854139604449833164780713650195794471400274945826891111516184058699982319197135796786479560214711238036867687866158498324269737065813081238145456128037614478621317105451427576441418823454769721083180215444554217501770609213157489012144956691846768771209897987898411517866240480691099548612987673215355763285517533427383674173952064468521441342455304987226852544500988200015481754291472156851511312225657310785717187330266173062349391606746895607222013002669310346425677891191200130467639464802842994916278034915260096289672728336885809103563091092901664903040304149552799982418445292193073038031254812903467390925749055777776471895963113109051231782746208755942811129986563254992553358353139120345152599186174044264894922193359475211207213497786113968476565017996634157107923729541671312351259266299436512364669372333751014497215101886293361479381721355705478420489474704536539407174958941477461774906188347708118544533679587601403887593732838824673402122544022735745452020864122879099840721494101531345934155317326040455441013480169868873854534894963698090410937379215846100165088956955923847134791914518295891970764856625753548219589440940847177709348679656869483429309442903812763726155861098932624689940913437386294071481404169365370402365213640488618561303917004665468465952280795500019894147805113375897671769284486377317903132247872399632856344349297205219690462390282001291540943571571409568074492199313347718747293292546914654016026435698726752561036032051565507443953931480467923944102316852744219043766081348940911934268207724627089186863098703719470688567378947208614459691347920905691618130620577256889882430525467306963931757287087325494282091700424596913214014001028782981110020973769825686505136573014636605090825950839504350143562928267301220867991212377090468618072394146059403347576524921729646289085607800326825213637263029449628385778736575986683098174907166050343412629501268911448223191573325224659456451507216372822944453718210180617590591262253231296453273624485313037899689000202701451070136862909640141733997205948983637882030845102288292433070927187149878335375251923879094405408793787110738813065904497961776170449695935882166136442363691122959947996485216620438318032414054162657212132758503258762571962525648761585319671801826786134745446661650753362922951417275156604485868030942282643824945631786725093326615614402428844799701631360574013841298537734905400377816867073170404553964035996636845105198455574649690124113930329732896546168787581355802773646279588146942312935735084064793688814040010390174333929197026319400199388426993974892507779302825811085760948076897792843332918800008682330286683457120139672891166174774908514927173892428794749405860755699141413929971139792603475093283038341714031554245459958779202350924430693281286042725514531191535922122148819422861021925721562844973792357872298120224284069642941070602517270769442384198819519237119873991012667619950601243041515911533704228661023926125464374233514655238462418301058344842026851946616591175793667990554467401515980774675092294091290643280446215417707900004895608448927778072572528132213024609551932269231287297674526536260346255733155844306669460315368321386658621650603874164595680890683761354582861858865092023676611706032286438486744955114108639816647390923282335621246034870276409422356165789214218443756335598488654192572123545212633507385081892496528677659768289907008135416049774256230636993893919358160209933216711468385632724984567219530188415619080597431087766537848642262513522482013845419165002022668733637224948258106101077991340335178162325704418252604193772757901130413641333095219655119151610931124551539298043511777238978513107261605467274410848855545962280812560245205995624283674779481283007211912309463022284941967907487088996403880666325088890224962796124547202906193796083702530994889788853995844376201069634991384095205181983102472445869294027292820271424419239158287900996368324652191699745271078513651612008738802070907346756335565116822469492629604365407216767859399754148891897492887368717685750656002541501780728452007034335644545880648691654430962584352263952278997315988870003499343556651566114749613660653712926805677223162685048065464604894610896313968661425457246208134939359773402981341129136986937782631167528820448708016175225269069586484582072185908591441003511327342040445879070299218064648207551715130073051206011954124362229111651925549497441185566562176578834731423896431865981362180472971844954044934411591762491016606463231714180882139520359066429416139748188966899172986313088367218762443033678979234518210162733495584740587987364956187491394542242952607284730163789795740139792473620211686646023816293408446562495075457445954058655522135037796318881301508766568800375001740665046911538536128985764151988653780945373771414888977701817598307154612060564303635087627163588452996771653459316226248340298134092681174494778656309981992892452089832684969920410791708245148671498746180921638045533697484917939240064045489902953436728070030516816615117048478145302491670740760775800451822520232818695259640402514869638485569359221023526391548637379462952932985150121677600187632845132304457029536678473192809637411362689815519051916484234666077745981135177214789494753391112135755282834233712971290208262620574963877010146226983706246990119976659935769730272764317120920795029558511662412240409848595936691920984519263076047491990556812345051612373096657829483777194396997016151269509759227674590899516309546578302495515801615222169432752593666232986818700777337196220286437939605147374017931544645485397809201554063973004178873877011166467942065927509436451849475126652875919371511196924327336605265090654178190785454932231187687272969367073561866110761333233458194936374024595019099812552741119182406856426880049452491387381007288852340473176466925665548561244649719717055266974084854748116359457707328266049380954672585784921256868484318641409029730374958298710711916783977741479448473399451139728609486187793404290442323577065631061735789148252869760446091440881464821567523608085371919454642725381389613227664347702612282325805586680895208400509649217315016730246005393117541483607637915115924585337969329502224669053401806446903307163001604941806494216527436566182381991747972524024185471576679273801744200426339841759273942654413093355543851354976242848327889105277270663788902274664521731350682263507303963778366853599786897691000247853971556400284048787052870768862198852335890398275385909719302833498485787221096384622185470803298869473322925665819366129751186918393698999059488573722592401609170369282450347766453138232345034572290211956286766617408456027577005498996970122799873483082917125653861362432505008829610407841381490600921035617976695934248236750308138478087128586698746034464906393287671275149225071048516656749160807223901295571328551924952628264572030165357168732295524369842848411440325317877538576910062092551141618449485175809925755366573190274204477301945259438977186399769089982917835547288446302223524296512046698101029502551239033829119203608340341579434765074367663755326663310080912456957189492453684636120568755982890502335279746297334841979238942797110855262076753595396169633928828364330586213521188770188330429004734893763647131003813191085009928627496906429883812726156940786008745892778520703896909304144995064100133151069505288392387962253045543531806045059596458386209607193259384614446383545041991806803997243742608811618025406010435378711453500588265597370172244586909331946818650414465347514799983523240779896412130672057592640315549536952592492339240629099986118303788370985034216399230299832696265670891509625787433940545078648015096857465076110054555900104023995114045664556309694245344099425676338453164117115116224845884169558887424872438408772579774097740179876554946724433246506940382661393684585147791516888346244756530530287361929363177310820980001821161567973872671979040464198989888035382915322658650967104705107031871667099932924821804461531121017197138163372735489490339062540840149495753788886184185379742007080081628524642083379060279192182548577449019377661444328818318818015546650606907546955607571495762363871830388502924433865725723790718716369336761995794760037884247047380528289390797797312004170505344644405442908442911986395665563776337547064083128400506663472745806684871860496967338418949110057588187587905810045408029427942910948995740553366149378573732177762621937966223617046729011368669946727342096190593899291249703189386549210368725585467235957665412913210935831944370975132491207872384944298802933770656135744641189154580939315446882342947676768804778381011191378924654264570947025500703399028216810067562542840487750802280590046758263282493447452082614871282500716972965224786680381751446043288048730056889726226038947786493297932952317625889682255570484951968540039016079216142433910861644331423342973653478555557460581625283952790388150657844547274743530185508515233762911867974994674060271600202081766314719877335532074912520287868387466625947848077830928794187209822444336765701744850788608629633117957524995464934295764166870878782729306376252735095482088387958241730031457489150481351385796986182779458146270053760216340900761324299845743900959800293923887099519810561253603929690930785142681843376765647808015023795846223408889336106320983887620844462399742586629424949653318361655063698637723949004110237458472205368273275703994327883263017470562612369418127748452276465643237807703964359178266330004779668977208409674836230277824302171353544392389787351276053792358676681290644762658151370248269459281887170400863864961820576344293147668511981636702627296981299106490662386484401463534402451502148884847789808558672210604381392784422487154878857028330132610813775689360740050102269703037835509290614888251125653284320722003615921100094265142883878932984730805361644399568690714667101410470047781044107977914357406193421416704496897050488923872302007111117622011340143614962716923595004469462077067164170189488529155143625208601510010357523334500805484427569344688132211711025411889035067099346595266035273012271664507053040225291296060896578603655050917538570494642416117095538801237698595013024436808852493405730600001858351586013776323536765022539650388352447453160297231233512813839181797899365279334954212516947282287793388897752909136574333893953558341438765052099058824752391939724698680739622641685359614995436396216950867248204748953873634727507621144308010653555039398577717060055645038179755099958662534053597605372085476021185364563064727735859256381352650855265177101418135673521727159484895917334367355916035671132849009438968980627314175281431222302675468861534780219759985511999950857197138691477771480938427432935853203011824077025190789956712696570462710315223808518783005801525408353232922990527914262223068045169469203190175973637752379718314238544063823869542131215454026628281529454705664764418344347254928506726786208429378334257336943350087230077810147934338944946938885927587633055664325818878880815039164678398545381219607103212423927605391257282088005280391880689009698038625799277484399129571271113434193924384124767710100906042388586178130771616650588919345619984365200519046690714881523474592424450645143439149662279828604908373311309230692286236877848539958268413530563376074885825889909606559101193529411240507043686681855466630102316773814103475654228357616442537281382519474232166171044351591234533138640867926445107164059076270304916569682948872651698083307573658659295156119225768689100217670358601994686574097939004264062858092305045370866629330548597446707992670668906868048897060547126559550783783639185689763490244387654054957055283016703832482371270072412821238582879725874334130754762351048312818479271925849179192542294600966361797623654298556091419956341706092912944205056069954285778428524717813637368859493614736362694298537525270114177099526220265507183860463408506479552114001388760001055988617261463035327050087097002691449293131861995611564184494878361347914165301403439144368341060887211129950657593558922173176811962287521044416399337821816158667554891221006816474266030811354137958575794999315789767498921477490406870470636978160956530096496936245964954342133597356464336403623437045579863704493429932816831746355611857748386638241827214143203238400103030613184195305878997113929003923427817097262826705619102825430700816916326915275689523834691883261928535099191772166866707133388095712064738496674836873780055342920438840330287420483450913098479340041488232181774834234335224395147253761396081761007133296500060451410084713251110527485365962535629016296967462807832447077827767452825072853796882154345736640507820740230501999710938445847715114718672341190789164068193131601326628797096445188433952669942564573544342691975018011396598595845256340793731499968721141551465442769073601855831286810594657632087490240437891527058234305480822204256073783378858208636952115030994089898944156806536852160289921898588251350628429216912193330995348004564968906370990865746088068785113315206120999138891869855984099359956498307629109349989942217089348375915637237849143719245972103923152751457036676867382057885386275146816094061117205212063193813131100293525176901879442078860098651534865447583978478289646012597505184724457249438089464346311353938665573276019649741105515255425458946592530744265752102528370328943089041452655041020442468808400191009942927191113394798757419194291219825088936915051877233325945065082151005190058826344007239584940073429853355948531550467127665682289061950063416946400277584741856873075077390533559739219414308026066846491677445336216719495982345434922749606788033671128353040728116646570198888556292790605012891530498329433909904072012756040164952812779283143173520655667368883374800489308266345652943181895954002104480810693746708991539697095466369001791916582700552613085154732832838389688936314503839286417995763041597660111852759783409473588511836095283156086046681101083158814045005755233308322805948391582789337005884507159349963798560462591886740990156081670904520585800402387996610459767833024790315654761821331240258144448787278094191390100395866502448160725792161988431414912972912529534351550518375105397992317902180400588974382744441066207300776518686188119780697728269039839669267457712575524290911336708353943209927788933865642753423749569719703195858819657130884721120728804807210296770501135151031793457100397520302813965217658877776467348700083807055800520087813029512465291604173884733305282298158315817228156183392976799218424899657712701347609387979960618623018200417162296956569816191146706302739048012269737223811631807924313394163647975097009063976467921742631478791748166448946877997989873464683678227338993261184405670632415676208175667086784874435812452143286335453802498296308446367998032691889475943625086127121650390175618447703332307151547142550534182561246864068403699952064075121645091639540194935585329152238000685139641099568534673531394512978015211180750785771961090870588758890257060443682583938512425468471960431158475248337231142318757457837466786345584774410241044070785682660957828571363785942701982063252605977296262985352511774539043104620131903133673849379563470368799745019571224193157855022731346289451283823432319965627875156794894656150442270545162073236311747601502166778066217622161445539198964701477956417828766787282241838996091869866127709702704035613236289490185741039077112468338112314180320891452741435225742455508690383107515970847133337752432253055379492900596618569676085033997651536605840786553995219872023032139586986357719176109512076767704072385610011232430464303621351664737791885433343710945565168052048395214851746332780179081323628154332222088526699719038783076412461189350550969624513980342865765534040641891344423335507048799316154986988225730868609410203096103724220553492210251903228997164687763391456771164629936386797385824183926683917715696173747006069799488592610883951434390858107361413205631864231288317354964030997928555273677704953438361511089890948414897424034453481812669100956097673012788072118147905410563316508879670045345103301562874273875452695079856093954586088071490135644456675673670918438567937878345748446419227021197964792535363906598735604836749535320776567514137170547228527035007691739304179203856824464759845673856882697959018777347741898198621773410007469286799827516221488202073915732684685945977986013391000019341908214476491254437598117839893078353947736408846760060110950720191481026686692044718800749231889071734036556097625593110881520049205240059385285816509047451419939669449784697016398050935062053581086525123350636588350130013521202402772007579472975409435761516537776834053135597304009808822887276167814554376437009718128577653223758345907698669191979240395798406602137514219349356330181662666926320160217484909104577866947037542804550573317233491404629710794828056694035315092183790415696190724220827149106126279583009520484194010981918266665969212300777726420251679693833518399928124563464216761582321726804401749871920496939417248417056751629155729218351536819058252904785349087930107475268700026107596730216919028216937062617639317000948756505463580817727491866207029158138676295120286023504730184531559157036804996055362769621965420348631410729621714811296901848288028178024861414468742343567495932188629154820932946735415237698988961720752480688793273003585860419544474073875709716013556160703169497100535346263820646034139589016038177116307699146879115999198834864592322397170683767306899375456187750535706593497206691760696639913420389544541204354275865185241761455650234200508745761579945931279350183399760823741971673327444592459112052569380181737518442018779806996180727283068475808334519044991301216076053205887153634266200769479935233401448911611098956801137033242709398239705637584567008641971253468773962169970475029165766169882758349173949362830145112799346565330095672770885012665734336351599342561880123801009106879573564996034669601966825279224717274599890414114247361747764399074108059142387626358007313751196994803821786587856897380684550229497821117166018122111037123859928371602319325525088924205198059527143700363599184765421493757960271173229889191008517738816246407950516911638167549216043692914933507889260267295216690066584968737016188315030448949848071872453055248898068533128146723224792963919194466834339124792705440963907672851786677436429459812532336218566921660583331153397077899040649801480630544220414807962157459262886999400272161312150559064828010723875675161761874970478073889860145295948527339853478866907289604317215668856168048327161462531627623158036108364096744943387388927804523945518847400141463246086425535064552886516862179328818092640801612735820586799528461293082112326406233838710153995831767829915147751522807423066635770139107526529776833748746633471145318131426761219309139810189431742346197347087559996446701720488528643666564813857828353570582624601762568083436327421688423255271728689214745389271139945995266924256503232633066142224401895385063355172963861392580637048217708419376222107163805793913148138151418109071147163915624627779444558973546836288063887969211025181444727026704063875566543808437327486652870097784660683734079163637646244925028632492729032948601406086667446307760880270198132216672492583234317624181416597380330414335122243745486167273248845377313276427813184539715477015994161187884619502583798335146774495133703567349846167219841371789097130127955448671250927944730996689294535952194318236980776772053932824591699273635990896105265732201069196742856743127464299914807822412270473102019598975440267272294239594463439801029834043723225169142245880696129782837322451043094093722560150631342621935722831944152571308627223136500719370185915191838872266119057271706233010616456741404942180584394011070006929044630115565476282895413906314239191352176659233554406498826716099976409451261306333306103797336413359467051872933011134980157768937121338964206996064409296413756339269681060487457286430044309320063666724343853314017043063649384811306823477018513244594631862559651577150291485781425432745100797612492245598254843682342356470561621538132406887832834074306573860158121348536996603943913632734671704604688976086996415549620610348249271399011020600104742313796040837165801621356325797887053491016918662547382897027878023273370537535193175283603949997870101127289179024123058476864349099525484299146571029852864037797496254987738793366223765105207855056667173161864634261429349907772792062941568778074244655244967956599953756864678861822561353284177122720264914181455450263981461310069120392088342672132600843957726502213424732946224050029797380357269383396821522968589203111022712072167275349882503706425744154543672455329533266642689577135268065264531011715434749484211672789675121687038821343301931202228405681331217830104190591113951462248750186128724255034152859962538177702150314354863136742790758387396050099374382688001833821657938896334880303861465411396406371896432142173789701377992542471382058821689794122758616864476503774289832802590883003357670455273673799490562532294210049047369209490360276749075949659831374285151912022798563512280950665606366356796298383620250044202535593798646073899370681357045791284787824756794726470257361085094285140507607703212170987097168753672029716487967500333622115722094721414321676609227827745356624705303281644166193388761521485963968141943409853867469112167350432640807786514371173053676917466028413088556796694362136271200661249957685508167728574497255970230993605541194931180959260385187286545623479421371132514890140636301846695115359449668532878940159668178201983382534600634504590611551477655732530716260265889409298459604156761470569446436095552125433529375317698714704585896352674037353915292589340330245555220727639007763081429951632422931964139511436629287140922260485869293594030107107783099204705888110638451362445226805242956280430823472487386089914024333027481462697935782232772395986489459438565320605337764198201698725247865190483613349529378251317006329718153158187737187683232447678284146454997350847952980334139603583584209374679340377493176738660707631634818410382546705292397681272544560510978559127061662348825170743677194462877478025294102971465190012046797555648533735903844029253951177755524639662054077210184872628858444540086446486216908766148459974093438671053804127550215072304509645221608658684936894228023170068261023572413557366197739185315291347853065464308597860627622223896965438074202750836669693814149769246320566882956489142446305425665115489407536633137036132095710044565969657176678069343892432203512956881056006436551271916580779263502442725809001434383993435255057672808523732065576253913541094870912498866220511090768650808384081924934177527198055618199929661594013151838497033365195238373372019497182947360363245714991857563380417612088108743709232997884514081090981011741111708760672178277124092952638216180422842315084778295495364727931138270118791600737556274393877583941490052544346881807482837686920919586172199681256677526097897385744368442526952367209676823311667868602383184140302972080117713562367761691380996977291779764410293853096289550543074191784846758988316503685516334907886300467537397668804002713079760081862582433819532412749253263145577007313185321524021261611039796078693132083035483246642074288796370180204553573626405855364510551418511490611010805006928919931568279225025427245218891055373540097288387663704042220343115567151404929105637871807018872249919729048896257092936496132254809959548053933776089622662703189458672824938413554209763266185673617723405192492557465644473250035090185636998945878558689422120907696119515220392899320897149621109921585466441762508253977666086287706934884359746539614179914660692180189679844157990588738827533574644232333971244516116766752619442449506286811858145685247402588715977428964294585883243504575470547627718362958669622272043161926263496431342047677797849400045726808097240013704571057208775098991715260290314727308637266314954254227420680995874931049997922567128402576089536612404315036313771021886471618145236010016434041554130853726262346015166067432594304113243717255747355371716508850199894025296871675065365403235839592851366826689703974284149692387194467765429455115320676084250540162428291014490308990774397686731703818646278455523150423052743053850227928850254859096146464156242854525497985173327113100082962904341945038106924240199495045324553409808499715286055117584332577144864255863023560220177057688660136494994626330561060504217542025049206596599129199052213404074019479947204054340411171410481149677836196149175680328361221377492819366476988478078509033392804207869815514547159356413087308201322816823470909990007633321224092638475271362813921109477500388643958967517176816842487654403765832715990404000083378175970334555035264285491719916017129615943253235271403932822177745344516003853865586163666056694567777098931206075290251667097023236996998039986555009841836662338951491264272583762678037307025871460252907007554694712843887737966618139293572490585404796684278683492652983254132606388825421338841860082790299733868957374574912567736603619658948473445005404819756391259930393395162980893291080013225583687644643350936029805279787254800602945392057786459687063206382894386102879129132733996961829182467811376506644214130460551042995743534299882573329243053298820665867710228436214917526013737134490727753641442716949156041251852463815076497204370656079094530720460624362934312033961723015464273463029738932041347767514442539020980784629544984310403276433805893271194701694670658012764598696126347751825588563407440010052915992667644252123290124762351619145961100186705594031674677712654270585922451407893050667901328985325040910168891458051155508318933623713439453103440528769529922917135586267663300758612453052748373072246753392115046519494023463133664396114939385343361116112181369179616471431874639040403143909720527494440724005939470129568364988048937373324768181039786418653670792690511271131037710274119383980850184892556455813970339502060178379196378860016251271319937531025932337937787574305988758511141164220637901511251542520650859463480798704302671884457241595479011577730180261402606178432760316811827198474418853484004871822514023422234341472431519966790081893017372618795242667461576617151670182034734167542944075459903514264033877126630492799220599423153184180290715240408831489995092032577436714018576156656399056214134964672447986428115463993346268976103648991836961565420764574253425216677718732130938740409857534348910499841718870483291223101178536732491862958926575132776456675671926155777968140782395733161931007729673462537483065521378690322414646795518113176664053510737042447689048064147929995596118237521011724115587859164046591207452573105529737826298720179627004306782676549855369149481555275452986038897509860787430152589222725373484488127488198429363100881773291194456851852161350924106003834300877913294707506692791398394058248533502112088342345203455029009912381453227109249207418473350931963122801911485022499743079479077292621886036653425893396681768781418267551103774136616182451211377159253617092790439994547201151372546446532989122776940942658155495447632965120587522856881491695971669037808614026540021096836425025450622505159749006501309031564553474425287730420356320092899010765239631156480247773872843377567973479196960565879758568041153503170976010434370705811747473159984014479530129081637226569201750311348382476729111585166794278616894555416428609748112306942013345478407177984339124542503764675070923992799148465994953853496748559454479751361970110299554876750915100391985837304383749424305386539932891825262991107691308443876672230350977448154400518718816667435620965620909310678505369150186165714222630301183670825713682697763439711140619562104596727445338313570383377172630530393446934845048335101882995724605683810744760844638834573424589284646489863311607508606030156202052239562085935137341350066808041526890118111239452754736560361934209116126453749975708551528838821210943752403217772271604377061707060517361376104286385039183201893615189978381236419452899137902413557260616363904747123594672841867665343139504559537031514202110263287708428630005488208589616041636264465356024918617322003574268943680724763903393011516442084139500270105625441933839921778417396824312918089792129881675564587786778592572524051872819534030498723564735157864997154435315631609149755467144490632866722399786521750256752081437178227150894909106133944797801650445902849409959191032107794742447036321627724463504220371218809444872152806422310485524074922992781307218593983894407021509990354848928686499308284963925282696806155680106149476252456216785031152892349405894894237476309896836466847582347053744279505671920321676842581753309379877332378568075378885115389260714627020488254008805866179132944845256475114674227371699559729117445512308218250962695366546349336648717293373139449085478556145391896203461409331981903082155333027289764557856276228507942839235294577249952852825535554748272911115574190902753873477087784924115818366529582503501884536052634396862820538642435225008074701072161813089508092359862563032980221223024543701961502342341007101070491286838921093371522655114639035787392425081514037457798260437188608100363872405859329425799840675571604028253366880889552519994649888470167594449777073661696004125815036887817741157077691181221361181683130386613935673233371429409005944227513577524799229020927731525927335803286748283351151277124092331906170355579908085534046251672872516457314860629569901666055818021197170448860262430284019623575116115907837623143878331145356439422929942286832773276285027689441973768180782149857280366278573659138684443103059893920170915899875580455996580823520787430552707140531242563316125156962310850378382622588894563546701727163736899966630190270985605610924517121890980656622525651579955726129882298200781893984841787017253401052375942805322121216926425725234819885262160893953573539015896665823584487286144509779638028697780081883915336246630252963552563214598739285679112793537210887411194242377473483687396808152955276385752430420975698810239515075234211844699756794260776793523574976022511266631497362081416735619445355580693734766522480224815143008527457418669802916683811759442651244622884139028551945048086005817587525252783145107365755877243863709903658749813925076608299419590978889376226008125543374563136360953192846130360229803500737505558243903489264743087689332256100921509353461210801075193420454475524784317698783811749986248061635044853143675099678729693977974497725888806273014208701459738710294280577604946123529414452469865915458562039788501575918905152390185091901805717236552005906980798209390110863920746643285883145028906068385932719193004507743784042171048957947648144319467267669193633879184152546452725471545534440524295376609547501714074238093331929114330931930712825868456104889569244403353722148432130854514825833430101183299736268647045683496168020617985365784267920042264897312315360041342674834923420156987882151680114852287006355100075673896508164604670399546894327796942249853042864922050029720914947421191704922963723391397304230348904786503901095054809794490336838640576414644775925025505697951779383760322506555385689411887192752360969650825153800115757872209639385631836086462649611862661684973641430793635696304412430208311260285421609987394588681946810040955482658359201530575314419695823200155832367364706053911705366214483774938675422643331315664016916252255512668342324618145536355883018795076364026174759810093932824427463239624309295724529452519736579820526828945618684387404577690155060695527296814419182254754127059521719600054395841017464841016440155726073620751066626941789484969180980803920620417123283898099438638941515195588120559878916081822646446490452602206943031603723988159055836381976097211834223854535500454936771543776265905825830963125484366983684312713579928042178640589642396105993130868709960831965829022918825019714609130758301593826954573153050524085943826520719412247066112179407649772996291496181719732118571410591633880657172580274828226448750689523317359953528828562749767994234676508830632727439117609638384271335953491910791992309272427294838524759351377168737648117473083739066210383473163784071717200066267608569801877149838102174884891798350595877446270656707194546972643344235874405981728966426251784724822403473032582396562336942027870221667670224538333710156731399454728225182399530098312860643794483749329683084980009548350358081428819086961477205696824127473231804995907320456663604007670447741784349634475416639558363121504309894962412855672339911347362592611102415050825145068891528879573821386132590130851558259838537056601850883020025429371072316603466128386299260760721898135069324873178866831036264530480617560119934517343711186143702523805525938186749648181587831610687657876182610505500753315712842591663032506706613432190661517165475577372334717541729787184840124550785687201480225477506479321326235593233261744416626101024747989537693987493131923701008895942521069342361764822555324061366161145823937874376811776556548239250073604374488763475083812780890797637461952336129155127148402371893130893291643122351625284473333509570410712055574461642018517898339134506794348292760794488865858851673357460632728838363654372884820997213690286277917228719798572887443847319451749698660248673805981980587793530736134356453038271153044933140501309479267483189252420444063740340896662782561928002709096556551318400957737119311159856660732299219845358768379838173497437596540882022702268265991833818108569175041275526906671269086300967458415678152384806571573821609263675330278911383561886747802361123378009307921894121669497878139524385857304511769779791771903693402399286241746441454462115537743803167394210486216437303157537497925319321016856675989074377870445775860291973890933770470337725487596141190665505623390907265194048534710746495122021648194419711753182769753187412915818706248157198424716994512320663263185201145924356468491851359761121187529261271954875813292436549644983718193988394145297256604907487812629586687708297326176377293804942321165312403564337007901829777912400506323684020591003287331622817104562360394433907323313207424241233101637393619249847302732297853366584690426932082996875422172229379459522248229032069779031616577611656460450086315704102332938279815471610968013010239710392300806932673662674994933061581837478632035528216130385550899476449744759453661758481596435829451438957333372810061834101394346691189221724684740159539571760098838350758591685268461944782786528365520027690468060149967660450302327912839167413528437910573717848309595238262840188650650512240055388092447172971634361241858863076195108688392303059870401745117315461672944150694565802746148591772759068238914693893799877683943864329083270833809319540808735769021016334761520734985157073743568255532053932571205468134339600814226469308881331862653384105752946475274098434960454241620766590077270742510164650394541847533090354093862912189838164487311100045517371283414397021513594134279233770186868096507541181987949447843921563417186159179261211332161100037395623466378727832346324989126624005612025087602586076346888189394693703645819125201547007715256912557274056166023724699939027238057421834004834589219946873561548522663145313140307293957799056708782664523584728650726047878777796703548171932118682780232820917555530594534690089501349467176715406870437064299051665294725550349573249767133709942069875291828600973855050866089858260657223692146043576137357258314243402049931019246388954753446992540326525024675100460775591558465353930833562872971169093221800211862967384779378920654517742460499149581356900246013848080300423616243511839437484052945719683916138798684836172028312653253749622418576392837629189302832667530389713662509895508419814205546763012625336994539711098199478587409335891944203048146211480244913496021044883848774769011723594496313444029826467657884685176455563054301759032999543559281395969371295999602186748755598734718801656096778641235715894292835314036985863631869649349692907813587429660455718434200321432161198091697259378760904564562167055562393772019222051632252472361817194835778979538412259338532978158862899777815202726062699392006437925003054761116408708157458968981110088328956307944122649569981323235256530572422362465898851075203056767150241686537320176304826090290480975961795114608761451930697492982880794857127749730241919038246299648167664029330690573052849788819014104961457071549829574381997256662460128969950444771565021937640544730901478472661467444753723211020955554998791842307663364226814910154567501160322505826947110485328302236186471546487670323842744486230050157657072845636318996619786032573291455656626908368700411711015634568268191771725137878674121674077846892554213149181099082670708966536930792562362700678332319339061982356754650152387761469501526693138911920400427358322627172064512327390863845144800689534390568573654577529523087057041374823007287265608227821740746825678493942675565219498930098453363111943779404316073176429663802546866206911916360173822382105109455418850953771031972891558664506465843863005674293270974769850543342727086131901879812553906329059169339565389590346274076682874444151939584420333001780308997691638150812624971940662050737445008941504833588721845395205553289716571611277406796962898825062482064219291909199254444354887481710797635975281884124293148389287305381682094477675805185774406149616038174904162049512419030369498502629457451395958204929640313955276027992949592595501325726575987896343272575310229796253410481661619447063254688916902525996188693585454421191922842412946356142535582948979656902119422835530349231426487109902059725832159060924803395522129306922184055440210138443610980266909943919093625933718846863452834653927194183727862926001028528548991813981557638328688083115949895511991126956003252652518498314150769055465107144975190772351134302902981206671248174994398192464474614405070197383043126965340780331884591025168378289451934117869956139172359976529362430114571927785053041998431932838941689502637832424902766251705360989961221898395999088592078705414383736595748494681845794412836820579290728543342866239292735750202439739200171141173209382941537418839378007998778921376675884901599832156279601270571903848871473742349937140374908955595991063765034399143387185261826979142816529048372282636759973672057684552772613513353217295271640940450913618207212439029149688783099718681775256983455260010997394426006707672533124790472462270537429453687611881358600578712111841922474863413464262874132039992545919260836800619413053696168855597308682631843356618144608671939191094575071004675325125059711056147254770972946692226203967163488648400290226578740948636127655778815051037714401314215123575198682641353136302291934684062952315891843860365794269447164844244497100837739625089562123693163591962207692360998865724782316956450722715211476101897862376964409069610456416766379102562283106799109150839052149222068686709036583735824019650561076174281749503295363965515176893996954533228300475492948473983295570750691226713853408041299376414096536309062212852008518888530313920325880382426681560355113643500369243250712465036505577342236341136115965526662058635557334491710961242221785099213774289284785713209364296310201175971234583323820154049214369194184630656504975997326106015798467281706152403503744241723647776054832175203831370078212249954685167019029664956770223590366844645188136443577246138363964286307902927693023041446548879312171470828422324012812666200524898034671302144869494566514463607983951057891836186031449613322640752265106308815705277628628736556735527360235754199765961557577488236424809115034295655689456348231157638037709969571190020234125530795837238422775970361292048825054263036902615996025570672769430168279964652609231592350847714028137180230465601021846367763610021633525424439398809883441228150158187460164662490002796753929351825145173349924982161851703532852846965460178060180324614963928064436875062070359357501202977660429375787596341096820395038280422027717844267901091671268871537518985748790573035443550137035474812100761857061900972926161397283110841433897280729822777155231890093913423449973403227039584969816145538092209318571552547401964040837654809946727991655776801026748348649451366388180251439257265256666350697401896277636114366149032398745468898272612414964215492385929230346482496461818245184691221497656148961003207683790104842993258492327536972720304447415343285690568973224291671963173474399131079137082549235335523612029943381113948315953848485144700276882998903487285750759257380301416055834133001760083424208221377723378960795251258621980156397382825273209754434228271983575929147856357563981641024223298079128481392346190613234015573947371961958631720969036924063016164388277082147884799016535357328948755766379172405665327375976627036588065399515142851464930020944871729715872952094112785182986783659469695336481395070069705759046919877345721602612042418767701799162091307056318617867961109046059281480442186293509137519756886731353668724843047826017756078559166376069191883671918270003876242906496051275764684444112147230659678800216533101969768226530614342127514920950226197647899299525179645138149650639296958990931153302668099042363751113795545034668890107286210751815523712428495394942475666965099872665807003219119803065415851530372752204820084244219846039610260880897438149797065531197244621737165108472535710450171004625234906789380919928911672611920733917199490576223257720976709978615191379368492845408750507232345182720114106950152221097435844313270916359566900883400700114248248137168610434113486297918998359362246882655941540552417465296436535970882855714388791741787071580277004460311309952112969137848435212997431268140956241558940149995204483260929724299357329738363897940001340165034105173339989909044666236102410438774588680463958262104213206270282392645668275858105772045143152677997795248723048912367260235101448483189357466522400601666750945376299881789560425336073772239257667707726668180237857109696196885420093310902390098494892141923514147461902840538999026440253680172214661537633390015582490589402469464269146581623066586353065028763033104529640973027562821047543118149291636901284506187714250461934138683295416713486782632032039602481666963290883090477602973444540209483922628398274065472595024861869598961946940153510438478666134320517280939921456077385204028316958433747873080592142821556984631576066275599795322358659124034530110530108267816347958199663660632458396366868533750835664068399357437137746070230933394003840472798489294191355646357053230952365899062032077146006281020969295426438199057879137744429124607273820030274622865837883615173331895862427783380407481292161781774004933009051852746408019305499698167550439493256845698172161649244123390991209365723605142175247830144173897552086550026205612656318352483988611778056508262711383830734262126867668851484860686096302794466455913380915428373045972764877541769862171836915180837497856453842055417239203417861263902380996970036393696775276883027117858387389579789603988859752082009576593777708325308525342857724286549335239248031247529950018171003563368838627293330219266881684943601301990431082498263526433351360983101620777399398445872837484606120174043294418923955597934190631239462899746043731377005812291427433345498447340965098596164754644812522110574626974513033847004353929289267994732725425228611379425323007725373983036701418855800063683207772268897508474427462454890213905260819079799809722242397589891111561151988917274487036549589583918168453989132961088985021358053027249631387430373054246755484105698338727205698353801492933145341079381436598132021529009619962714038247595397197669300975538669382591056276428799214342665838998252586887990877995419625386907606546121263601217018916189664724400322764145566725474441032726777524603492443498579970540486934734794418036912022629623716542741940654068180232271534767130353189946231970366059110884748097644754788316398198432642232795866113776340974187697098657618842391232613850207362515207653087433269643831936648239894821945648216954504029073497276166954720685831154815276109072440727975796970114006585907309264382280353395365858372299201017154460982747196439739101342526452295648099470716968346914539146415422373915062877046284308641143032677258663033615830601808629241611211926011367628777585433838277905509973922517400984551926426374405507109806150689450316814793399416961443425237198755960426575824090500955912453486159352608067298673867499936057495147404566877874320905387693812188987979300862662612900504324275630531343589559134853229411902972569914495006580509794349315329260406552203367642166126934459547478422623630233692338217985753956948289885082829980466725089669214597750050134778927609793453714151458946367926529455971666892993117202023476781012898490174310676236111209000098392422838720888088060627704885512689815585769549988795881744033550030052658260177861830318637212027129801879591277910538678705494346478517140518210381864612938999241988064355870678132546338953755642648341031065696290335406917589975299957957706693234937269347174140077739518138521775255753220291924372922698647685383085677144985427606721887867144587247555417829686858725999520056207167374712453298736698036113327640138931036842931984862493577416808099176863934365610947659286317044191837477190773660381105723651712022253198765453297776688601585583146878706256485609052429923618589333746688024258314838967399819252744898619932268493731868992755243667954298885202820462529338408840804152235427693158000984364399702029238435354917554627631980774381304620119473226046472747929064810878582650875867682072198065332063206377977908274801780374994874389746258019238700711152313608357734416131919895876197859950875597400574033359773491075209456853319298871266342271022305161704558777042019762260984619060429781900639465538108187504816867529907188827219465007402347512603282236406055753663481941476096433199630618274884467371900603049656797095907385635895094199323681949322540390611564779138729954002844699746322475387720946985401435371897613247483285854542595112763674472589053404931921893252985246295365208860021926431952112608266671599015265705053741939747583035184068975419526525697377464526971943081196411863215838491533871426236146218387889935753180898822361176088952107052166753984784359891303497011564445297731544838591761077366373757682487876165311571177165709224000875730834475237831465676889786320142656335028562680210694903237730427438913196359875589147736218947186147008581173956192421995087744948878846218427529515239958006753468905882424037552041050224073085592653059489645770350125123761046425465932327534879354896971308802183537240835169045838323563768068450241730223898966534891746441516245514898533993851031462927846622163786947852469211532140017096942707762476297947132335952137454497152669674941417920796105028072132875671138648597082685031887216661805697745786959925019532918860901826922617141718852766735441173784842673231475462975912401553153272336019082501796814670860789861835131790846297181239786778191161318481642498880303397787123959222633447980598015599862919156144788472223005017036634409488334084450909541886830885189260461008464318353802189861229651159928942168651633894279866495849712417113378621177742559476939100841426617134185861159597574058228504527990745413172142107394511487423348204272007683225110304236488383291092484836575384942404539781286217961070229465491416515710065538537631487184810955809043735563077448167606386425940989498852377308650239559986738892420632753251832789376426197914356933159060967258679169710008618857550123348867985193275145995740902891570005814708179303988469781856343827881583761811864956031867733818494924525002902250608027137061286880456343753197851522361228552457544877732468626320333475886629183782329412382451896362996403872392102858580142727130823647288807532322385604718642261371911624650427208800634022652081947521162447790497640182231054167074891067308092511563584183981600532494003945879230684053440718495079609979945889850885248968825897433675507580223870092057844796534873223869443347178391119866301912860171219824188266554050454684251828549992234560514150391225411650881564901274907271444938140353000504764115140485466744031251621567797329723735341039430069638889500847667832468610783153421904743271136858109034466270765329313115162728433014803848369175946377195136934110144914241760850695489224519146809463206435341349383719365658592770293774524606984823967622125190539798358532091303777338157063740054571842048325763347904112664874782728013433956056209491127577426046217976507063217742161021143086625699908367590829626606391620641674913503766434329677680265874541278075212783443641085822351191122631079909586397283730896943058077640267034178446812010885103844506857524078305216209353080232352780820292322472160020208759753217152809276168143510914482203374934382712784358813480273847863479704896252475946170640007384065981306116493143134690213414595462158510708122372727073601885191113221703297594224650730288446541291948601091680561523468423075063062713610376020062841519329268317882398925470486226628818545491204155795040675715159197214066257709734702139655189316186495562708128575129307739765153467693456763287659851716009074770688548987915199561468486140526281141916450661537250597113028423547420125200385704106649834972487819133728132763815261016495039934718452525984030949703317186631060425990714637825757622144267045140741428228433700162166919907897276102404806215282937690322941855865612947611470409250732711423099038871524246651433269635596214035544527824820150462135859219061746196965919161425061840469434789125820120374737142246391579112318768900304958370683022599684688983935448003134885713989535390967823518880531227834921494494304848045567187890960602791351962457303708011492246099005912249006257960605936421252440860833374518967986089608900454502057226560790963616936578390801330331432287074785063537923200546610140496877459761530537894831088616480784369490097137652350058951887013205225476212116861474833488502908752469700161424496129310886274131304788694767528668699749224595464138989280550093647451496549039487372469982757361735813092541992646728293853740583449470647618230100127332697176301616383487445654113913765700910940296975128554544592489426424052333801880290702009313803191750221117660565184319238541648097417930245953506269760670044631195030305166644500250881097848085133182453970735123214776970276061644545010628459532031852890869755972591055673911591873613951297545893494731642600150672740000456342896811877341275748451110382949340997316169899922012636197026560653060990456925550943955126047014048173887610810431294905056241135988580797549315327602741954023096370883160140501720429037645349738357096851840414152183904714917684690393511228765703938271234286635852066147312915327732555173195821651786044153812887021450737527032540791714165414361791251996545417182237209678715674025885951379130380856143022131464924745648248932829430350591863751134028526464674803368949977086782603927619732489571134054920234237379663465449745419702016367905790746193363475805871680015259573976109482812840814793724990847351087941736634428933418317990397273181102682171611437144866243427851917498833658626364401363940218717489037676890482271299717151793500229425632331637392255499293409158326427260653793663254456570466882601060314697739662075271307132571094789835792668108797062535255416648818761200699688633041004578186932886487934483600509589032858403555014195986227963554175247096801964701307516870837048324715176228833435632355157478816672040057692213355170745074623945127003990156816529714792810136366174787653892287986839017149949148925121979565852191226980069100880883797167387329663270671426577418449791432995651783013355528138141526708891944611773952720929243082880041626951909692490588890714139314369843668221257268689582431250027442452833186842902063559426990221574452901788254283154649668044313501670399538960902723038728612853799875838037805572565417621249788676491689220449378591863601869464332819269430035607946584592462724934502790614339168695741263642920508870529039062076389161638932544257520072262949059491349886660795387448021356022478636010899455157444925693270034712181825473510163472014135465357933827020639750039999711884413596868686544538269006399656019418224135987648863349608625152015231873553704698346992455054426294244716944605675831897055176146408418470161072957802445749439934047238919819053879550690785416223721935577372754284527382321281160868157656511645539206595395363581391212158647253825719040910653537172439746320109680246657374537415956951091423089792141477419912237535680677364372829690140205119581522549436114774931059538514841407714146167143004365555965070662165901186962496360078724587851276107572820237758644880978845484884934980046251654334760387405527371412686306446467291599901137677333008836331837949960691031264437073070771421481881149404728870932240281526464347985213340350476780459729170693928688211379439922730455938301127409771693011942342911347749766326315625151459210002739810841923921052385540781077810115945096640421178491044343917201493458819864667950051209500298984326098062732636795831560253002310914920486922174118665460616593938689079621181941152753820394045272858435134525613773142959523292171961888427243566851826004629538198572647285563966114576807845303340480227967681645446997059094405559231433511145612366890387462390260727086908832083185786646665701289232254625550529678364730371305110215267019285959006959107996886261040924246423004908070089616545698154555267418856593213764267061766580427688994300446852816833707713048019135498004672511302538758201961945534212691587602546861232314759721849454630914270150881233176842962044466730116929857197414005303465429785154555075480122409886851410411789763350962882492527216300207361765364996347452317045574358430319688650535281815791828464336979655999513308208532374892107718280745777397647952452726839321095823441708381008735858569469046446461703891182737562330040717765985963925655730876946896848261872597903442509195171025706051497091139920259619446604285616154358968760383812718402643216734070119360400285855248944398414384542602642508371271192268149463141805954855873891867438799501419614208245685833744956493642343735452090210200175772715041824494979618938808888032330824571835357762297800005396634028781483450482371376680820832679753259202126167812070664411821393587638880672052730158524043008464542120271413272266705592614851173029469903972059837501499821558138655233961335882500321148799272340088027859847571126824198655710840809939936898245307578374180388199314621370816311702352670169806334963284824054696256185865167877800361894415322995992321937025892241915195043128831934934373846958216715128186035532831621961573346646870340575381763491955931030179801034023973556364961454567225771632208397873540184185672693568881851810632643437784488041929645322908028781954064294305496994432229783041834750036629086335871961167869994990033499424461694994532792150642147614561406531906698575565281470113367300951126471717974524095617236646258566624904404222622619158198910889465669686467253467930253041075687796759474754950691974982191516242155986948090726618591136462182829740595879379520654072403277612331582833897312691757809365792379958395980530287761044456314510953086512104550431546774079095127345753793620534477602482552752559460290129366539488610896003758407171831176236781710316290344572150018603723560438678132455316572148613478863339235122561120851671167575093140861861288151936570665717566785505164289114410550457044456908999964459409893650752881101970801049310137695091637427288174241975948927802222830360159673845319579237953219147476566229028050359080272124885252641250850968623783067896403550965749664862225136589370238415283398500944767644746711795692107869144191570999797394526206103003280898173081434586927980468092004309217471677855074732591693445118249910576689271748592824711569658477039914554652363318471475549668689206417452441726179666102688449146866425496898236842203975688376788964995853379548941915897934721484805866281656389005632535231252559051476625622010513700841125728101920587430071683578964454028616947548546665172724690825031831789501941263574399475406642673595355103493497007286826785184079980547932708914226722629645794716161179461227955879658093144251901734634970992997262893332870111461286313649439771960666709240875238016003285911991978099871093674539459897261583647959985196883958285965438361365774805398993937419520096990850845936582866165533130331228403867851014529509710596168582031733788186139874731648240297406955158576135960510299017894624096654515032384094942775842522840280823771590206362714951805064613339774658178336473489931447302775469377207176133321480981939728262298461138412384159991585242409850807553229668610425643361268865945000402961550150533786232090646111103150220862099903645723647786918849498879595414387994517714994479470968633665530871614157577887174273632618143030950839577881944322650496526379743774396065005549754049646566656244647662471037866730822488271778029636578589488878388861321112855479855753964294084331057246610462395421501247988088538827916528762988053176902588267109921449573965268621003160158004166738355984732371818568136130885454360258210623665137770531623301524238459761148220852036912659289224083230447276194353055145314915425589998845748396379954021641954565375945349031330225382399247605787442961356172036745022021462235653923983515913185752531351441424912299899973715047901454944031210434014858697965701825290922101153427151415590226662972761008229508151680530908390975542669079604857913363724052767854079917550944370390976952508662419101286585575782062848072298140758727749055623152971301225517543458937406914337170618137898789285119399931191093123327229894897243412828014525463965090390969707276135493642978945893766993417039838555365317966301816132261966758908831952278076987740382794060210656474627421356900822273851041195343306483789938566516413788734437856338304533693264541381667987821400134410945056224638673430886306229887047962430807196803167576455886983027540679914199718289632187813904154348772117676023553168582348335011535405803645885924219581950763593297489071232403990391878107322677958518433489279514692739042205397659851230663633177614869697700305914634773105486424129998974107805903009386381527253357880051370774031384580485605494573146793554510032402109406912936421517924825274843867327192795910603022531349926539539602701152036639340405832325244062533935657542034118725297199560215865774069928522059158199142247282520743858563360638871541780887045965035736364347259328758975883630063830319848243458448133662098751437135054758143516548873092091996270246711237030973889618298708396370990275271073114881928428474342430911588008738929501037037793504269183332178432484773864670272202345494572553266145500567813912380289343528139621890580921901341927142588301952843443439834105523794058238073140503281672047131635645900490062860533539958326582761858528704548793257530310412183254501436871197936835912765584671310457593426947371235355197766475653147352882186794088166138276246970199588463132278641668597890424840439666038255118131271091062446037880623336371005493301829129408642818193891923922057346725797639090813976392164250909255964885773523950403840364407653503369061406987115802818292131522440881867615260121097515662871415202785178422795958015979562669963129212572782615862097139400044191116060699945208855982722693107816247158481858798382061638675474711335594641884432200626988836393481960392577301657681085883984373943225810630573329446028002225628545577307244034373707824476073079286392616277440172752898158292973112251640274224032283248718216736643991902819409712771023961255180921547137005787422968354703978550327113886749617400243356359353326035105970876578252792138974845310588631026814500646233079124757437451611190493499541192522946298856646702995540175111747109079576758571214322354288827683519687426503291683956679391240540320167776633361365987423549955580280837434169811353571015449937676928307831379446932722153684979195070756445739533312792217246084195897957242590368156500209919248655549849982547949292846192850734061901941263394196766936485401973737581074272211616614462872253927736216875526114572699657290103348573157696967762840678509150666591351773895531005881247042046657464515210907152859742580766276754953067321467307247871722047380067737988904865114831403732434629618773801747826865646334171248244715823245705943264692580863388993244903304833826159068756451842714356799687453865982432164778255672396524643225711800603251797789469349497980911704557679684428785429284517156044141686738759605798325117934317214636187696555744268628030971038747155718781131431558091795798619278031971713604079225544518050636277132158157669286212265251718882485531847810364770312464314561286942945808380159942979579751143659436172507228010225385612628011290336717789057639138107701920461408561926544609745347189247068080500186398959947721956171617028570361412959430272386047494909443341196785967993321588832100835618646296205000096644142874071262881778014636826476774840394971665521788639686714029517049195663713470031312110381226634093250449750598031782070141538445284408649767319919324690452976794869493355823619211584735148002842741862647216700814816158842394512388957029112405487008807389073499207925888327190587336044150090862157489979974904134316697013897963016160495627073261717021770766167093548584179411532142288236944751251029417277560253061365288931938751634255669203502577980060641230213430314929204719029487575472786160343760992941782470865089010426936732800992153424183483848575986534949599550170966069948924387750379888148895075432031217832671284243617610245624212661629905688541695885386318708353266187427107173814541704919081087547305458471261841768680729910314034120732999055017009803509949409392785265139415650989025062998492016210551902407521676081823709298884922861595403103288358153886329236732655127423183129405657210263817909991314928581238544755560660240917921947039528339503752277552903571947400231044538218467839408625685320134689206325577167751532437694785345640791988959062164714981968717390859668405961279308631543774485269570281882354478259737028714208166944482950727530472202362385648763459415716490901201028932674307332847718804711383067094984131129897402023250124113640749163605680793030134988025399114499373416425939570557259046358770961462245413991096175876114162493067145022170813557276857396339880781125121852239030068786894265263967464612232246777660005722785155724066515647838227960599561513535106506480299706025471089785169228798586897114778728103817954828033950233384680621835699394787243795163964395597981330361518401650532845351673327786146197653247686365824474285854877998950885698877768262948220856095622213190092733911550272500830223590750314511177579256435601123665422478423644302513107054190737072099123122504890699718145121492861027000891462083364726845029494085029332216013278314021170421907878467860605420463317421344286174193077201134487536434015325757154451401673285825870873853470940870897821383725110211251193588790380073898745186005071494029528838091170396127854332363561048425800409919751077008460871518740791717084196644556363338940115635844621196938029903434528713724744859953508856835505617498498600289067978853184651733828848332473457624319860249560525250830212241354883034514315606251017387283716997753456996881828256624344792857270571950539489883767126306026320289535355305899203964918116452648766630090794337333613483119551281270150482241655282725403138636394434136111056631254201668640445284078761075856014103147835295735940199357644070328343087859000936206481711361900451936135130573185551886849330656912024190882545066266608669440990810104904802873277895801995691641035248143550874382640682831431597529540303273754665946614369158207195114230458357266978233670648466165011417185571394871886834359243173886008353174795712594111901117574641693790057597253044317510127207343188820765009557648932366354813350483568217646461015177354008413261901460640035602000195732803688205856390731566326996813946963691831636558759805113641475339407833781659982986244887560963634088627253503208521039228252247072245873061157210339528323604593642035990805078063264609034738237026496800720697171891651286230507690888918055050926462696074664226771877552281704758177351610791721153867033235483284665465096088942853819995844619426866359328751750793360251026334280755920461089921649550521391003454683989887644633592658834764123805619849421149815580225429853443436784548630253202978644965820202675624182627613365549094631479980376986684232164215021179877934373005717888749891749716294753294918068819438756672704076489192575823957805303248988068261227201022566856020812474355521863343703391916782213406832379674914169767984915281008844526910702437107901542301130369487615645850229730298538620033344000524241365665186253921303158058294473695815974385263452045674671381944579364441964628079133930016461298944632990909764076730358838960562747990647479021728783528229332998827238976614082864016738244358606071281399916653039187186219272720664116242858001508411008507398207404413882880949516196049200991814437870679170501598953877999264892651411306337603146103217405356128425920650997772161273367086813456610490938526528270269199664354674436849186023719397578487216505740719909171287693244443025215135709769242185956075797699913559465781313368475861631422540921224235106953942016449858855708790893271078470139183215481766325903382662143168565513055710009751188973009804107288396244621548914577334032697689008364027011453737974456290732192913788950904558381906157160970175985246311390998607129586585563354930591121365968205877381656636801858623812204276099134466359505834282090455323964106129444245752462201603400852673661201564727266335583411323533299118739230183309030039413624933505170094459986550895938917440616675548099559748040815206086116412943650963217693597313931319397717932435653003041609834838431666007375173049147444781555465368853561027425264037744662082422023824342193661384393424435819008790846524241878628703327666362103120926121661847458232406032728140726737353143862748396612419676215417328805180791483373901385585964126422103691057419456669059909023248083224007600198614822902420061852778944216236542307552272444885246736291947840056479116814512954194110977216184799990957186735075246180911294009378099064666374874361805872902458334041198377785185800398151050491885838308357399894984056544530949307014331369107200262020556906317838272953849839591965974309074553968637111105968042153742181365456914051683024356837082062973029626447560318923653826053321941917242388548842671342706176314218268650492178775519288610824859032221162781384839188733135133738568381547142692564700446830711797100285289453377668698683185662058312115802147931646327314206332329144360001121126942718389315979120751424242378327191432051312763445241256516515184812227465800970144125021762201566197401880775763818871497639520328939017014140963311718728809719021929231693817275400527235404596545651936447663973334468949098652287751011603484712410760766654819341563601502146018941085919251601764620174035495157395065742651576967430410558141550350890418370490694957305328998695518465983392426958869367630438858703637176307601841126074264202817215189858257487842316735164323080225116154020986092297542665310511540841126400810119803638302147864057442747619805993998226917809274508306874016533925574039786312583879684051906063752303864223898958321390139586763875867264538607490874515961178642501813032654440277561088313027825590520236383067692402211065197141914878966802191156651577899220057272971625602050308523758134081722172514486664477793055434107906973012266508533925425544078973505823656700089240575645070775147534694056305041510306047835125645260744982244290843046119623849802877413193188789093264494313005730668206783092432858053154012610525600456804918706965827867905166468043149253557363398961834820433453495468359385634280609123386655268325320528045075647061963338693712076018579686855700238135226132219725416569047385711195791735698581558282512673123766143499333178918082392716155864288599562991381491046392087150588738469936829635888071775109676400774512073106641035685032596886955064923329262555827010252899371595592626823186563211511016012724104237540538488342980354670853366405430756816904631190293879570456047085497607464556513941546330374098551712191702229994499735033864549910607389915224394413356805976095652637976424585555957738318615005060583012937038963563606612537314551233013805097887894740410490118624989050541506156993728616168100359936600793803457643763834940329384768384013166401788339136483647193790581759645344699218148654151480044208568025949959348737166636427317244965969813102712107524223453314424666482557975768687149719372318090032521317568489042231099300347782791370711041265545993436335247408148883916860415437408314884194840563543475370648853905028593866984701735311490319429503041648828459104360631381430975638803478825582273587644965355541091374171151118959947022069623212177177426495259266141953007762734388051151887872728727876017701504410810741864158243122962494083680776602746879656059840567476504782451110695380230361728166958575819329957392428880468532195879172646227103571334439786072220404303369564794012228636222884346284038609284593608156249481841479282980500701753340681050949954214450721551790738311052756694373428217787591758137625892796281666782027500221972678785206944506664651083052141341109635962513579198311209718001614976657442528437149093890735027988620008643723878148895761466226463385756308343538718930637599909355831326791428610034266076750967352288538730684902504730806927356400181053996337923234321973671667822940396860371552055699040794826189581558054625059713673161783189669200782862619728190377613630658314891634491872359783666812110864791069188091833883283857707935819700440145229513067745704066043063061360609086662220048353406951121733517030543399827322447767102089536514861077899425723391086641350470392805741530321726209734168030512863465461495229223697300357250553301805805472082682756455507416986159933798087915124549072588649223466033752594889079082918986458341536978318027997456852436548178817383148018592325475852735862979903412212353267266913535943528935384040082226391883202020181067591670920848355926135463316561173814130680693732801910657631622696686035132460341619612334548871588789477634808735306032869499032960777114685790954488636090467774166933453237677017117711810694374815186889762557669830098165416670044411260190765511403205564370520542130620762883227992179264103791041632840315081464264953454701747622184183720200172337990184125654416412792880670889591014458253503847028528444449736148966189113299482303755611899849050807094081396877646171880308666048427973468785561084416381098803921008352209267602706242797165104519659243617562824297799517784122501374111881687038951674600907160792892726836240691891505584073806320571902181058730025899914627322385688252578121527084963187024529890049622670592181447385619393240109599493073571532192487590106935922546666862339579579625610554264063123572659744875478035414441439564192888927549560511598094619699198285609787807239665539658811088144452329825590316230957417858925930646702033290039371589161706374685484325291543485410884279566082203270355229596029350681186561966935851584371080914719655772941261917820774964364746885052894689958293554401165229640653385364214612289731423366727999280345393770999718010996379715649833139947107194594352593106179288805712196566901331350335901863190803403700761371206927329229410609730678831316206301623301984635784886338217846584836128076970344267740637061353506303939669407868189579941423382164821414044012935605982591903977263503173913162819883092383397014001273442481802635493459834101309259215335803525165966945638339305707182767694084379980610523052814396057625408234391504579815991307285057820992959308586616114816615748270598851544542185198724192315391976086074641436626694187928754332252869375175717432800895540259158024911247525075912373473401134054569276087911832457041539041331594069076315621599367926356221145805870104053325236699861583837137018140235372961831608898880372504601689803106461276366585008669972885461812217383347839622470952320530498859151345961172476159823447968473571130739889730787553595133005736424458097591279851647832810309269934513706132203475758374352587862655283782313315552840119229899191504211094597252221933059508041619440738903566645410485718179545143237140468585214218611178915349220977338914044426439445395875108186947882458829017271249437992104091188211047943050863315230574133413441242788770528749476411223959103921597877111566470800411949967356630558227012932974269655917289984671677597775876112718240232894685477060751509988911978320589414198913789654216478299645509842283263961556180421037663251581412843487498979394555233248362240317922584477246116579931472500576586882303837022591378375319107331962778329708331814253468554397599793387669457541782961393953182365695376392949728692865747659017439759632980476129135797287899441473730930140553432293256801738974733523058082211820411257031865321089496464396134347177111173820894372973089412313463169825670392467754280201627192784903005586134854746676692987618979735522588287508581859051891668006214057140308813852586927071845188400767699718318776758396775728855867408050748896021269368131962216319879809106186413746466691876780509586462667689596614208675656613062359653199066017200725275946733279047543163268204486032775939848611526714853036654260104804312430897408762928022233771443580813463246287866005903525766959929663435440286714906936865030165444671840000068566152186291466255241881412390804303355336258893329293773350410752994603895916231014760540082269986442316915591004905539958800915080261102403994249276622302621518832297767609609754179838323385311007066568632130968794091910625200460474921892853939349119265384418838270320150001926289876283277103883057359948969504647848284384751923272469004711690631763165930562379843791945529017315911986427111225554166077912841235858857404940397577093334048518795002128197223130250692527414782611514227259062962062403615862032281777240403633117993743192621471956714950610152366273227597749857875680499866433552158586969792460487213177816438824363113278496179622087469117411588217079105935893349764827921063869294637170220729905336034016434603166897607483798334176302860632817100071136935323651389461755403078692563243771880203425982058917449777430312747786448746019906556782963081799791540896996991569588583447351375442826955967704872681566865265773981424255774531048084889188320374954758126102912463941685101396113319229884635447341644033248031580176246573064802445193617888060079006727837805649306238963265913434038128482762741191369081415336305316273782760313110270400643425707938025265203371662372713016418292593629406586497919982582657071187531036948727248977617380070670790435208623624368177795589146415427731501663847406534750737919756381928287848200466410590637454694579051607871430083732071322546569446137285672769901889323026035887224846621386400600356377324263484920728551115882239919781291131280862982585519884269046008371447348036331830598401223473682033648915123244910033586056505601877015882032614355577535402756369205238142281680218239361367462953569427401558172914886757239653900475917116611869186158379411002430199365746746247190856228409131573737992142063301162857232171703417240559479287479887068502747804077001562654815585744355642084371976654477434170462524369375312761179899164117482316768047800056941724852961103229958881025842261398820477344581486640741615318102455596625327921501528599044098955601708725994826062441843198464342761531247376800204607562009731252917420095193089960854218157141578331084941031273927497003331881148740628214695902233386279027765601005413779764379109038182862335352261865249520974130780266931910728111572874477981069194168803805709756060828385417174995835244349900395188263028836610970123078758699395799529418958297477008120694058294872074381992158141654794967657227033100067363745669907565572710352564385025156715786883283373585128006156400537321110930071141200096595953034338062794845662690955807071730465755819027619567328944667133307572154540935157289532075433340349131606740328336463938542333908650845226653316489798665438643827281113549761466995754088392351105471031757258590941965864107330701959954662480862191465522949774811543790935749612859641576479472294620068610030168856029282890926407636730232829416508686427420457724449056784354990675640274392940247555248316531935285599869951229448564268161265947287279196856201122084232340440254088799827540625711126094502908254017342386154244417541121010660495006201510994612086496692125029726959579479543127668415738115362821502264146188539908172848803045156711296481738150032352639648154591920606234423296890243313829125997555245302345881228335966689080913968633661899730912085663709314516706835601492700950768887087863973158791504136238144912018227563779271932478085579419472944005836295766742382884416302407069299251552574675385897380284732115903808401532167708934578045274688476989898262394971524436878293340588043090589195018957033912012370414365775787300772337012897259805210985952039324205519111482204629404810961057344717530559715164732174735806767125047356225775047280251184505842778175458783114142799845335993660005339538823528467821025080460951944127355770199757307493768603517227619956537294956871483272183073345254753246903137449596032652858648620101636630740750626904635011608681007806063752854568158109821850231506898679060630483179690568133567115336372991532547205460639761746234311280608202001604860388203091467431722903669768818090046919420501494665082618022712197928970699177822399491410335268026326751431998526760111630792246793289699454911768275842891699887354246216656759065095592163520022622202706491448687580982580530128362765126132706648522347962721198030396558355032704235100181808776514801335591727373578384052413657406980000197168677133463932999409439158462412765267477429146388343885923575199185369892526737689829208616668426835285508270247699954407721777755634605006676677531844155565618043187494688644068827688860610816014261110556933368603267387039924929740979883047783335020222744377478232544364919460172089222101960432241260861409133429124934529713267393446792260987834985654219135516557587186599895561797222860776851981854659174906993884955296527048792749750652514159909800619097466380598827152134380486056409647304556358299926609771634430325139840574849760962366901693704054416588115619220572262157444066929122691395002395069850993906858065756001434665492160905641023120273541715365393286139194558669826829358264100848692936076019760856317927050079687340807628157487452357329524198345302337284772469135883190085389188221829272838515160818613371376502777729794850007759506766621972031298533387363859257295408809681527111127113021338372797988925451691221570747981285842922796843404351858662711964691930647375272052752045105240087067198310119241796871156525027866102123679439459814913235885739994085891851817880591439075502292834125574572580213921974846246722930107482921785714956324336935179216047165436791495836563374855667629241695096870675608071851741023384298549854193239444898526017699827771895595420311650085570360565918818892676841250524707138979536241593658930130193433434447487067245678798426702093658513913111237949578363969591030569927456875984729557957810621421332683400395423247830858196135893587691512790133378935988989028680060323784869715869771988356444294595631514065914764379506971595144685180719024659832430352045013496434323811080901692670588576600456798465072030299888091389418579549767386913943311197920266657410941263550676342953822483889050602326816068331325414512644391888824055815730201682967129013372469120755555973784326026542786125552911236704493177166250803563887377940269768834854295062529598283652696816716918608079766990936362813650589303511219336239466561775635970502684500538369589228243350118511425679703245279994427595292617159143290451119310746483254487897340134504773747382186570345531504225036593189637863576151509090040964185664224239518240549801356603638830099178279369823635609493145525901744283142575065644485260424884286243176974191537039049183371191064628102904713448800397692907745594784699626527413667212891934748336279253595052684047097470352446601586252376671447768569869338317802717931363360372982028677949178030833761948256089742527847977191343592658521576917434075769360823261717099357500367247266432586806819777343908301561606724634713912939401611670045466890211086041946426399578886686067763947647184813014391225007040761502967202728298604669631745138785557392187469576660846150976599925027164958740258273464336068210741924336577337583067593815443756091007197142126625983541392078129402095746703130141215865179951332017853210451207981070892371100397473856406263933546226643448061951747256413075157008063823148436463931675703590773741623308697405805600493870398304610691285984759904912969597626227503507804983226346986953409264956924555023304030149087137388215120441992608355105765362194819305031276332241550239359638144061735694772507748738566322429216227797751458795777156969206224281483213189945370629144836307972981484676060503610029057365414942175776872101835122088812471845002675431664198498384182594857533902924379696565204663562771929398466805540030031968135709809954295023893134129308933591922537671143831094081633063309298428252046198195894777994246159021949153696214242008622174290884479036448533030283318194180946578084747065746671905700473887303116552590135344195696753792253315839818706888683121553942915215127380102833337447529980744801561343819748410780550276673326804055005978411220232518414174600289806577690538206348016789722683409612212786251624564882373746726634335435571720361001806159587929601128686216265388413533549651619985417645816962519763311870839737461591806128709332914666088765932380909473703070148575363321804343576393170245825377363094780680273045504089738421314873740749383789262021800223026614061707975433632310654318978022528896389602341741190676707277282022207612789420096800844939534667383806372347360038304960289183905800592163420877962980468594195777852294202113029780378941492330201443458676698104243027249528742006977246625593561265524898425049619444026384697748221386272819997400046610312856228331861736438498998329653311048266444016511374433593683421411044434090122269892000074878597590873069716302709857088630545336938927559830342735669653164717452562148593318972968700891642466376815351212447914740931065294985696152704679698446555738268523221756061331427283154578131306660335695517837046842713280892804360777527133593699525994273499064923481365801643921279888139053628197071045190405262885403605729305971770961473172344173388156555276767751357520128571962617365857387498288286699116840917895726982987073091709707271472727797166290391020845287256069623869622672059588452824423427324620940658121382580898043098948968368000987540042565177716112557007099802058445070205839502747155791069115957486803008326964379859469904187859016783197748619173449803429604113201510672372431515698412843990118074220407671165211345835080109427426577103302596683661715637775967069327622060678488991218901539620431524373160933515709899191382818959790477683018319617634562966652633121315391912949305516416502969585650215263685025862322221666408134725877756358226016876632218164146315205394214130768109146731280127034696758686752462760068415213866263296320607821467965001938216170712635167417376601220692676036331367929912777888214501200870240924699517263706144621092176934693571905671801734873935268722186919213138417311760084542211132387310197168331582450887301085103457825379551035104725642493777323669420328959501329441438169835431112392931294687032006613462924494094769971927740376923056787410383581432623954208827514594547596987825221041400003768805892733217407550982754834543079175397511444566075048236463865814735722336150102593625202313043404467769854095687314555836912184462578186488394456987504343489324062221431893061601683616137990965673831109167751086413946787945706841759942379430521751949140985903424420531910579741153369655693740983002280230718552245864091654404835002612544175754038526237739979405278315825780089104154281737489661277755645086884346371081818878239826157698062068841702059172853437584852372680846928634655826505689285623654248516455514677294704015600129460432994487628365557666550009749019579407179710970794286048595520043443078531738279237151023496947729888210173041431878695682310019535103114593798472930148745231075293312490118214768420259433883271700823360351434158084187743176365794911711898921861724512528517165964797486143021703112814317041344032695257573774946943305016069739602007018631607976390038135173147000433530946452116546532108419086975796386850293091349148379049093120922213842041868687291494737417252502680555388010633113008090929415210892466315421544666617890805296786221471213246919850488845756618162807453460425079645769686612919213780178710016435030963252198317795495339876604220604196332239070347089365037079257283674034774763641758377151566342949665712677661580834976455518052475072733832721298722699834850985756769952013541967325312258460008456471484930557325201268017643854961304321069280242344485886869503829485179526060180434850349195435396593006119927047061004991701223182040784084153587335335264023428737050200609187313220560713615262572100775634318580061056605952243164212058610692763784764275787376904022581577697003752517234272769591657922464413487405520790332978995845936766668385749347306103841828419920644037502586361989916890888383712053480892988443602846787147019142181594564103620738072481971841952308679642379001565505064715034707857794945411883084115112424071199935218093707450908545411355429601713388096795375941109856833811430106473779328147383540872004212442984072291704762198095640018450970739929064993264809895617555369244958098291187049888350262322324916170109335916302582172455132103157170606519326101105370738562527267102692215219848722477776992389076313724259075760503172094067074209210888900764559923276035749518206915640305472002333526239148725862390880692373492661683462253816055873333188985289267428171155067869523880197464479718630399470099396613433974210729527963187656920864172642885437878680742612238000717323087081032899168796648412482619099737731119839017509816963161400692063827579604162446720308556136191476482388179178808455536306538522099081868816173846605784944455963229692910862779392027515554371628060006684138051836484955968357952073978852351299428112186528644011451811987409639896411672279906920921314246803853370018547587854741728799811241074912159596365146873666865858596791477777211803859259141877265300474011375584264104163878693929028751883654764993792537015629781623325044050535210304490342486534273586329659986359991367736850597674956608437542827096100977297268371679085902798242481861662070514363687644625577377845363943834931374795526007046884847232790005483004961681280419958420944138762490596896123309609335987366843750117076101546307912856813628381011575536342709797532436390212079104948527565277059141552257438564701332109090152906813871725527797791165820137093693999249860986491404695151891864965939507289295035150864012285944387928732961274365666426554275246819938353035300202927957475782217464621765870317256166633879514663779797232709072927436694140944732342319037077208094097590067593218386535370718366960410005728120121063066887291011556375704263051385237371078134641358172476614654555386520807494462744434390574661168584238735749412976867596186705848120884316989392892495548664612900749558340519606533765797486014673986463213294012516911329045380116113232364787406183029487056175322743599099784790274473053753938268546457362453323744274824758733021381649681699695635759102277112260288128046766999778953606871486074984751399973287430322325374419473384309162622371160459108063965133820903920779437752123570501785464899536857564694192053356219144584521506830341676441203467041584276947565423367771638888499045127779497378999835748274640339348838086694368206146699667929595968606328714241238008707163128763140442489962967416487159985501914976873103138090790740647813935050546745081963249615697450326899776781065455837302090686684827105476425581924558465848336755174771052829676634597125290485937153934102104362303046236178898248856701018344832454562679438552863309379118786522907843308963259033331358954192715945442940814719265172450234337434518739044673739013404135932260832218421499858905097562060989840893434124477656136366596268406526521163082901257715952658065957193119001424521229349128459789902266260990433440927502063172690686049502333239978449546903063185727956906798825048179309727242664134880668484520605836036699393502907533906603000643450140168107988445278098914063044991343430286054369278405454302145162881545692785614173190901293963358534613786635125145809321077320316330451651854217700271854520626405204945249416678385822515909939730201671336159962037281806502776659163992624032574148063543890904638495267485435767155740810581330517721444933884695457461962229699286116359244182133800575179865919778967313294339770119491907792241753309617261204613312771228323582447924216334304375619757121423992144451847688439534319559906217863099743136429149174430219238693535277197174414948461698369142173322521574068505782798109783187067209667468647368718320919291034711410731328912852159267683985336170377826732639715011382882748223843314934104689733358722751835719215413962026049581065097918574207083530875077484254014025311671030975573058461343197127318779642181341845920176094825308032319358586295369966704681011691423319180966249864783975259046660513956617707632425852659995485204738527243334817130506490784379476709080731444781700244710583968482964717784104672252204945775676920887067658617180550473726199158597859375253896003989285219937813118965768776181159539294509648278440043236193688349184579503357089933228925833847538927029669074729790428033655306780642338974864917685673765693002809777903491068010570509369280880162665818226185217880541479032610104385446560030002679364264112289488398756921363095121420214563335459407885451842772925719438594107324292809440324148793676109254927110876811073761088191541017935783006582348357588851924236202804129101278321136395172986361540548638144862229393440921173531927792984114302510737107098222479206805001542722254897406261717688516590994634546905024332478192169514430549259942411330649904061157855167299628213578493430542188095198406712711483308947737913413618072580878372806419809489862702418428333185980575805826828319384940591605909434078548440376480446190776687716434327646360102970041653507041142107359349256186882641840758230186491640640654451408196704734054716111019034188210057873826007873338977786381730697612589496053796732467407952195533393725548119230247081992973543893451899907368685516212801961036729478342514063245071341710602596135275302358462442217137849858239723798791696919598702561129391895339925523668748298287102113966276890863528360169555635814895062376904311957049917524607984738981904901613510596341596636274522909710601243360695312005305079763827166244409020128818164147395106924864679291232092519188034238699806011359862895256284202393454884074548257579875276032114761084246724200681428360420225974977767886863936369717810050014005114026187257472592262972800854820510611495038571920135955877507920420091876869351376763107291697085451804033461009838757835260308732249075673577220163982960837922711642153815787887788675178541485707776397494927596027864717917903927233998168070507506636837512056928277422482108870372992166293297443494343873537878857395813599791771352841064517398567510417210523597190352834786714753657644881574881852576888773185548563559395363232506966162425760309880803885725856847813437634225399006643424838358556581651453824444411180333593225807825071165983080537433380890176507106188333578000231634546381091402145833887491012176798638291211864473965823426306070404350819429686235943169818127107491649769399280865906896926733776091621965590619756379169485731364321715792058076091805319960874959739376092342504558499261210376319226140293922983015323996286049962269875321309936795843221639629348046457921051776761139515699719387335022436182692425460505339567566175012398963893741242836905676020527832582595531729700804594060569694117956467163143281453957617651068508898899163836828440741836429311666011639784848810457445211302054553871787243733618884793259239842865651979103398416979197321511055484868446909482470196826163985633669076971293046042132852384481400988004584044816706396610370381943650376291792062368651098508930162906209946894333645880703739618638469014721832422341728713103850316393470881623290550423433795849123773765815843912176246226271709703841728383896686127463813555368739653905903723178343345260326605433382329409386534059852178634496736047960485765943093599057184719962648239579835077393634470654352997703257018202289220441453694286872686788644327614120643446541834984467937330400565164083210751455308702203277337008890922463235685841730562994482403022950369887751764337336737333325555680514552914323862007557285351465080564687331695088986477045828026354603394968938509524661294852345474654413276922973897092259321100070405016933137173450321190938920911779656279193073615158221631067402229908509837796668681572013657161345236227014308974367078691694326206458314796916754663370737851712933928496780348232789138728305296361842356184077215561646566139227377982133378196927446982414396766517740887500454426240100308040614064578659720944910682394923331291069771329563627927148646054035715258482625318651996085128033106413740431270928686034067483091656008994520929445259153524574129258956756662841977983016408013040062679356045391985160542643506826166738839435269152113333295166641720057693724790827801845220453878410034638268523417020632782527069737015980586975295512576929348005051737498066119322221817112534972299968842753751699890813705885078291155975792041396182680040931154066658064178913826024212329164167862186044961441350495870007267522573816614932228212187343804410484902354081975101010334229062747576388909980886853942175308114507562985515894937250499163288177717389403750495147989576336687872257338618677472065486469079829826918328881251544301145452783160714249095294088979242562129258012357389782000578544523903588070049653601869488403621985673790723904631515702971299123184769831129354814848265424007651675958192717814101168543326111105949519625399108713058112316882024455312737631766493243867155980950160517223330105294244365309820609928416583490373360305699401582654384333876939662544574092104860418644216850373414573958250448930881546996693992373313144129111274602746538712212722761187750116452879539819007216671118474140157439414929589907937363543333589730475877774803295787080254200871109900444439620682110606961109048603363916162701728524261506675165274549233059707874197425722538859149904745085614344396788525523575028494554814523394488567852760373835621623228941545744697179116343062496925799927874606688035072374355749326345543442853053291576110405687679094546197558008848385117760902350072096349305962460455017470982105476092809618681754575140395152463415833170548167297245012536254206798607136112623597498960185535019787150766988292165372854636318301603138016894734373755010728110411644685486793267893786425751773987814262814035982583156351116347237477603698186023960331220951558836903974024467809263054808851649511709741553743074099722545508142576953959625608505944988710191193947243528192045511963940891806376349224979112777725826115665761141787154669503271944599512193739320216306845275721736138276327437875874897903931959242786341156615487092585513428954578460575912871397808964532733722382518571446306616791458897821327258585958016421572811240126080733922274310589651903353987676841186941502310560327581686341014799260852376754599849694643837239063535708607195207307671442016487960823671801925534660207360542763748914030260944365541050231132627081297612224707967338889275514321594237430332310801178242185601131563102838609204752170862119796509228240015992118188897017056623999821621458747193971107918221825940325435925762494489465673187347535099410791625190829115568712412530832259754220938320042184783128904103437035244862076238594434982643223351190637712115750957596005552349508736522172908175263436793867801041710172546237589455552548424319514955202471766964387606790730861968224558318677061267367664887360088572328394128938085698007092246195495425860946449500103339431496667839733592596419017723409000777168102216663417025788781136451548729944933544322427843942271995749215978070562045756251822944937953005519417236283893830058494963762758883509759804758502720015471725765971490437089556178635790664602642304824708872199835582400875231390803333089463470578844695549996172643696937472490972688958929105581161820292407364352288236201185562173020169826675388866155664438381484392594712028535379376290092432436762277889628345352857794331362611614163527273166013748769052952377044527907923891021539104487896115670312780057476099517788828946293215559783462662967769764903272578232316771758581339568135230533994868678509143669231875875496720166889634681127267181768829336650767075395557129377806160949728490315840503230544410187141514157169953216748806347030993761021000285995381191508958701821110065224863925406599777289214317290093946852245426992307997186697488821628623263500444742593911563501658152765820949469257382260080208787448548696457754777444472262731286909478432600644454334804398415157627936661286286230325411138477579768207582159819594424490266457130963375927422064210278306761428360025118939116509418443250315548403861686121574514256203177589783400841079484529611681706910257162064259430128338947227414643191887834097825797290133352834116754919983670403328771670597037359012179970246731008247489766563287094125256357708397797544329138249269268678596633596315727369902889836388595476075616735829528714485572149506166641096882383738287920396967906737543143483765634710189229721742423064049624016556112516213173169648975115007401721072539656665038108212144427627359434249799099217697104213269389016311210077431031370616743532664143402239315360478263065606111978064498257740417229279648739288421122999805435157613616127602282422812346459944496934097457506629803984881972679804317518783672414916572600386637902833301453719566679111472992034992903848670210705171517024575852151210873861728168826152333601744691918935697711075280584452773039186825925428842875240895578712584679504489302677416207013846756487318222399564821501220435681499357231038283810417540007244582477323118423302872432775947116976945278413507188451437572922337417294641496185095929413560522739961332456001355067800993630726927940123099944373911385044934427835502653355018083154516614984694429947947891095721106438279189433034007800597460356230183420014748010277934764799999816842266728348682330608580122672802482153210838796095765664980017028775124470335926213874724225156116975782692512758249509794963813838095755055002259864830632884573604259355694687600874445236402271897151870595261219115015250564067915336930056575353202977172959440885933960273272152923792462732068219504506409459271017898232322905816897828460855707197067584509521856878375709297209721184696889810655758224319076403666890351693362047799424000001615472255628414334141024997254750826383850935300891809860305861786389020477612652031098230850860549236294831941006510020476771849567362255025610604817484706020286171203240971965909203661430862339317814894620796347795594970193163204419990025174881185070726343898382484238182596887540094845320232768640781786438078683345011362506519188937654762757873849476867860400321988922011077750751850097073756447184165732599180184292984457208712935465262016485681988129930505767021910112987632787532795575522549325034844185554284336896121028082350473299491496582715101648151618787844044404829167494775570426979846801929392887199993642535462736691301312900192513080911472302573429131001665167998703686384709626440688667103955724873630710642857070887471532412042995984363064873636333762839701985094592018597318116758635229999574915840109216787774251821061432382385154092811234085693267636483678821365277392937704808710518950915462835363687003914762846959309437337164449859466481757646239155438625832649474958444211782346289362916501094797911531359237527971142078645404280496031339509368366583549728713740480220024814786636460531672317207089350315145754324310701060350478695060315559138085111220745760492902224128771977854040123921404707862464521818921719492755068325215419334281109113180543835661577298172248869816785408045425777816657284849860210480034264173870861554267559661819699185720084215868697200520657773237464939700734934473546727404634072453708797907295196547468669828495415973961372983533422072069354609363803207953063488321879246215981379576870510977826120887304000886268317860140279845472809642800786122731995127175428300006227405606150379778076208861753975963059820671129583668547689890871497512617724955640545850884096738887672892652056643013163597894505635769440833338512459228820464644086746288351030289875880202329688602393528532314422034615948979345570104547986755760781926070947469192640079102498933903873667183321282649430274339758642498392042664899564936030309383099452652204104216571352017452649267087604526883471759135975471740841974459139149394078875958883950830580609066022544967142827514333913157907939244935641633954154278741080723326176486735607150458493533306784893697479475186233860639589344418360684914881888880822340855318057038616251970500620711284338572710344666885990846538052153456858305629743068552653352032425438421544850603957074859187910767630209804208713558885758357809399393815682653077249359131476884343643890381072178781590678040553733448552886430296813556363671647138885468889300690694472286977858662962152228913911089962762819725696850955913277509796111661209885408661184848458195952722255343236113253518157252185567553837289886347357862804486980604123025113028846073042873332214446662661983003270007611389472361563085786225622351168176194371651683131754074759732956348258166800209649225618552665080548854584680143062396999006863556123113916258209635892370146050746779172779553552529935631252548326895829761261421818050442765217109034956661142156445551494859405701737737841055635555033415042766263725735464681334846005183881500464146494206978826437993500178463517184686667130082479422706866280895873067362575935476387625070106756225185850600163864666385820647459104762376597471341596686763571794043498245534184501451824274776092866820035666388703061621179315496354711088069785004833486818150704864142081682871669236686626051260279327555227283121669757463220157701730241986206714979024742740000501658425560051382260339080844033570842494391798411895943934394178787032201295858702590558848879608191383020187054194214547829631431347428196980025612939632817781660731857949328769545322606419820258056772991245702401328406452956044181524622964459523396978861850208608303557717501352911173188251471104081582809144532205168365897561685148751728058430784455134739514629301909410817095291604132279517160786024656418300536900484115556425870403896501533849208410142009105826803090845245137624331313920841272087830239140631460749156688221823391066816593383775149116273775924249475987850927828665395198154519417637150589150403647731194547150619998514493215906795818692017426208596553325139446054781800505147328302938471701366707213276069431885178160851593581656997163251694601013026812335286128816491891312298632816002401528493079890154064417320283618781990830843822475844029463706411856508873054261016417295021355512004048448752843880174752466195870338327129094877169168675301178305129477346671794809225324511749171705072273105142094813738561719133888099988322861172840889344018781794451060114842381843080634126956846892585864173754783708212589589482988084531666046608141610881017114582227173815581360125975692576158257676875789835117810591367714496976324680114696726383537906428889758249486586477665627309783016960083860809945294122045658762338922385392316105512912353279204808444329939027810444056129089165919242868305453814393006164299098617748527229277467714662806975743436348876188161959398491763178185597802877155825424592368851605600807610956287029738886104719727296792771586493505906510158860651320833067083797594508701559731739188205060690970329126898776110166845693796584101082394261297903469212451482370946541452997533201338839482601335777568272115317126368987866097780284413680345296613501785041110011030302653506052977001292299642166000894578495148958784961682233426504102763897557404933706241389647821783628251528592470515511610613932558309911967709728410515792279421105350418472960941122433147345345746684894151197685017425891098215334427577834582268125711904044329047858824464379450601725552208638010779851752365353223288700585117674203962289010005357964911625775891699727618248147161210647145026811029786807275828831391401982213966916163170273752143991739305827933543728025376680308511763890671357966858888139434427700452134846455542394639431023561969422226521759046853185247618416204377125149150970056863235435367666192885310745372329466655119665810113097692730276259194077668989897352773936728152906195235376216648459458434528596886954504006877075211548062276647868147203213809822159926542669984948604388486860092699154982500472997095003099200926682755481005554669970967435065161106353310398996390279448026078123390965808661502282276637080430929988794023389995275309707658315089805703404142765386869287270027666148902835854900119662803766798598227698206023593618845036727754840190702448780316012537066560338317172772761268645540992728627768374174454969112446376239313637264837648783141464338230141454542019723961606923468923747124482052992847309864257175718876218707680032982252625078914396211116911591226932656733547270792927282498713987039167174014192698901586384376547975799426418050688831811299616495865698658508829480131641030048717359866189987719695061681769481843249952206076642541797357551796505036088660863091690953246230067909721103393836715025712190877581349078237527024821213083671220084958108232493493471687866296171129718237076170937548087369687699492416927752134094228494399056786974045773921773678922139424815359850158299227605047181247921178043896182535423018225485029191517509750017788764941025643051440470104589563267077543710122366478665968091858480598009234710732467094436850564350153188820490867411596243047793845214295748900125647886262173373905085504998355869516930468449255975114097793981467481477374937608262184002573345516103653634268760870741870985778801407832060358520970837026411233401597640426827120825342802993180810275215477982263069800917666643435238901974777492260690568869949167767497118132839809842395235866772136762692990146430024328066792128555732378913491159353542870838684431845829603254032045730108029689744712259703659067824287502221875809731093168726701355599278545855942558453855652766708995359667523955519814547953356073308139323951631219918831336195469500980883391073560345257733236781318063085176704437578086282267013592514417717898818165638418334771505415852569262819018573299372768925430952897195465430905140038677304273957624925950353234477793492165528260678207237279195244367282795678922438938935845708122790597569911285708593000923982248941849187703565652790119687729450039201735013155469477728532370616246129022387598470340447948312620296969454333482675192645479763179387269398586044867658203246459225527590389923357920267511675344364209967837545750137643218126649099198881409288792577284837562458982422519226620326206277684626307698454627122694098936292197807473712297268408313610253835234412915418675919605118525093179813762022003724718386674789160824031005224881845630082294765465175858147352947085905790727801732735541790116553619865697003692361204508726082869808939314380007156647988472124175440990313479528112566944208905843684637779109201571819590680459156287310281137862058133939235149293704237674639235924628918052400402943993858344345480798581243303094449030308400133957780015890666667529868109594748944843827725591085205102994276961547008060957208470707213697667074885555521872504009324763867870121317585656979730950379117459614128324106554013968218970650307372986144839829890142462124808786832200793154006593069293696388179744543804488034725453956052381598372878159353613677947792823360684961813696806969716388922751459212343336161639927366921818128569815537233449089187902724656547184901612924216262787832108496801810430953520156737222360205360551553405270508394558444022209547481053143273149602071448916518665130927342448779715617239543704169987032624044878148682889065801569290728990418501671926194170605399361425947584394203071531801010875971605740640914820190051239131835498918944618482963333899857784459589074959063949983482164151335902090838411064894862254552106331162220751126315877159927650287007935316849436604580271160426133098556531344024476994434055482879475250176084188001384443626126965671597735353553883286847150298905349408543301149871919336128093178131806164476703989523918275495721202307069463657748235330270310655177405065489755572308939451283065672476887180299997308350400322511817900994156945414104222066863245740315296648293438802567998248200889963552707503571442261511619433546333913358431784262527024671860577221274815448504177279303106057601301552615252339900238516483436917182374405523326892029793631339273539192574857467828357762420506612081183881575697106155995130107833245771130478794758724705248358023390429519332365908579225746970066125646952332232149314783893836331262112478571046751553723261787994503998443254798622405457943099185899660316357799557391348594440953937461236572818138195546154179443850056568060351083489787231986905891562533889157790503473141014573498083834558989822940528327137186135729161847506019473532692484751605091981607732302155433432963894947061636967459576328384814504537266715590626485670400038170323701235436200352821432771464815707604501196735847794796107725746706753224317420067872310065714851309287609938077445557695407025274077048799348321902390600137321846275967191855740617125469278465976760045822031551877945884483180848658098007828805598946678674282033578712899819015005453129022188033041571798521656132229373099955714945242843004812380518954341555448946823768248738486416669272174839663835754595315233455095572000229863485141129367786942823120058990096468137020718716306908759424006526088866713623166896815641812711562146292206537320033160440301139021717786632398906842376758146454452310255119311864277033151168932462792242217715884838108937466454119920593827404550795793959866776446433722084807799789314500418157344104812969822791554366040023285627638473972993106637717005043341650486654952441055250628953414879218243796738552960207955218995681272938564715237825250537724598944846273637719504694560753288171887835405057823123976071410454966564825448283021953559436734136972983815621572218079932357815001081720739616886203181543386223769858375173224014643305565448944040891363767096642186460509248758824009302485696301975328267614768273930881721399198203724654010949472344448301127734792776961580926065761385882924298741622466450495971062764590595144305406822608156416460429932652391295401461612385102941500346658184705215085826317585669443120926536177890449840268816318711772474303241971551275223600129841178545399499356133002579110830313804370301076272638153528975725530146917850744000931969604664249108589530864685697289834223386700037513029362202458999701741465569086654638814223143290641058298467264439798442563594474810928036543291280628197080102613452909093402486870541120991613112024185332864632267324944260781265926982438501473637591070408057297560917121651145931830306503397076457835006554941958898499135374080033361054178282706315367801127138304918527721762522679866619520294012336084708608556081674314988538800658500139181492448470797877173541588458186070584188470600554471356344460962482051928501843345360133032329342536932001273643034673247606411537256532428850294955626692138408541680138450297585182969413998381525773646230911685909114454318213838992217820467430281214727101924118404545044023156570268290828243219983210996914752164703706668741835128159024182763555487733675238289163412468298446770106552891317674002802010753505586226067486422605057842644420432151677210043362341712726218800679750976411064926376210449402005576311843874439918670532630148732131933152164927214197425416245686088769638779690067735084207158992841306406626377813144595589213307257263725588068447649077217425317740577440432156173126207567093705346330785074117310494928569360263115535145571530252035829091446730275731463675564751034945011244137399953785161471066582311824970747914874458138400564984771879078281215384303238094517761068673050397333781230627569382779746416396069524845734071241958147017397603520889375859937604524257705646039140155107519375102957764314210025139461406626451057809748347164181648634611454234998435644971613162815238195195769582932933714682252826765972841105624588471360568741198571513105566887810270149635507952100714080305690241190504266450798806680572296802188192256067811176328134697027274419130779740840494127401540662911155263816838585673016754216255423394521602391732886327452069898401628157883208829092350783056820670824171092760494413230693252345313753772182392044268713743523312722276381463572047816592197206576831880286854360408647334715651743454978817508094471363730091399046149151979349353716414657790946823351122693175383374911898817467009163258199468326782289480761917163490721326998213546798175736087751870042343550917179890487813496584076273796904812243205866991571622371466650293975734110837520520796805638185290898978100535340757635316634220790375408771580592802704206304428916116851029341234926813089553285778269052420863343014978225406287180174116930268163277785024243110771204731053965265368558457217371610689967462430137008267437486007561463601983444761221009973515827258548973661081257361548732155411858798512748717706184660854766554562271151315776410097031510549283380725525909869131173351505676402837490733407652297230783967376824270702363532448461247786112008371857280663135345736398068568541868714492276307946622275870674654787168921727914718014329157236684333748309833366473688121213276201122342563954677839072302979727301748032969035314299308324054384870515881147227803723613496195626687463103106659175766303316857595730021949567987686003738312042085799723605581725051350217142450688733252956139419794023765162609131390568955048921409917830284580990757535428741625093519333254678980243086093340951818215068631716538214111879281343680652568891600915384194517998833951596423710083373906745615592821062676983635472210815708754140719920990026536281889503294932530020433257890876958446120620554312018992571578127217699732356902191753010721780127924172137786677027772999780751240206187217708190878388317891418424379994875165426402583716091435308541439353454000567845772672455837908745724676842248350419606537104863865601805697336276209935537239848014879199144595148847484585736700162181793396086883961522220866996400723170236960512261961613770681312870070090853798791433482811154484086330769674042903688567431100901684162530133976366420699877661536701962152406237865893711840725038537958114868727695220088229890646863149117484579348505356752165816678082362157340750979744959371021459824846115786106031729395621162807299995042652229483486586226788083688543662920163435709639463804714247709937984936201353365388181733237792919804294154425253732778333001193211982594814068864850078397390146321803753168111597226285216191194915004892733798676056601222188357524291421453210280188664915297173782649709762031389610709071238397023147070939575578919000731543406237233493948761415283208062386292833733545694379865929041133165647712290116312832159443347125202545714009764261413500392562601588911830540436656817637293828802341939848869411260416411962266467830280243886799153863356294403892735432808027375473146774509962025285862520412665993912367246059903273253644119365945821512708001406740963753717513165002531097927426606655658509741005262824112891696452957352524682296949061977271066436570779090650073779046469288448125454327261620969843042370860477880120857654221527643700389363741221979906625080553379960959365900324646147826721400170216839783041008424272298109949330617861103645624158654446046825904397718425832639553682964643964351959349623421679605198744812438714898733759494619427674952463363226804050329670099882893262042883185961951999112345076450778986965930644591337804387404369054096677836111258117507204617774145676658027267226409794097946122889571868339758552397758747091428953469648880566334377775962204444675780908011103112328203559952277777305069575951015494022051188502955328184541910361672122077877583837561454388721536282236657188048778105815764798902033424684850224871401242176313549684322805858921861352492791717610902833905399004961543606672554994021387147559808052646135240610578790099278528872212683186660640826221505803078147872394949536241168238720765310570220341038761572452505465851919622113704828021786452889729054849119695372900355933765518384983539721463928591425960163925605551462619869601456368497608890638063127797553397888392667478177489672065842904705167646093072844126468676399534299651364613917149203205168543198495591593364014767015981697020600844350109710045560545959466842050637037542718947647300561646567662391824601519226605115890984007118456774016641838372304678399391713741806154994976457799131546884258237436888978533237736819766351178336691549472402171452178344467730360230356193032389163884696888648412312537584271090378964904124943804457175232965487587375685082676055037476696740615274308667256716942409790092701412141260271030372994803986603122520666447241808832935490560848950494677698504124262193498407426538757031840053217820411720846252396331461093003481958891920884073516688534039585198016517188034794326201790519712419867858980336431511854979324245564896169897898845746500039710058552855518081506374402898028600562641511119057656359870032617009114410747497005825408595256281074106017118607081530011187132759993394327138103131403929646860210703320558473817398449842511816159608725788592179023380596084783573922883755703854669471996772976943966085161442307605438757472485859779747485750476512972188175361977800159685544561587534253555378701276267704313484965272465770478882666007789211061365213582161586265483371473695769814060901998438779972041585073657378203924782388016423999834365513874984276444110749828763930972054963306873172830651616589612757686854251378261494478042375378265608841777661128957383584556475079208889944705265988302690731435404676914016771052354549790309333755859417200509020353293180518071351021636187055525762162550130487400762293060770338018848424078974275276416187869745904424785993037976933296615998582728241704595082315610240880167268180523535075853657161100873261056542440036618670531503252659830538264502790669361817110390971974423303645925865553732527022757466680254955348312802452222490499382562305278017580881433441905105507829676164696432813525357554927613515248229026783202240045459348622250421121355117760714246748688872504187510214098160266258218575099569663207566350665390115791103085110700466824908901513374661709971042675992765269733958815723189420686062608955192168856898893553465723471036366906898895919309741744139675056002054729205976814321804533695712465579221321494643253361794487786917311927826829760958200666111878539445075914821338707287402553476494555007259941102756036522624325330212704721950365437459463016811910601135972129409399734506911459375688835195595456501030141497942402498107336038228280832598340435854932392426314634013859299783553805895884558131196561119868753754553361772744930802738086543098692425012245078512231839872493774137073349668871266386899067681250137962472904606346207362655430812566471317717605370046826534647104631301951187909445162816176455222337080777613352878565436575799180707562814697217608575261285357033860143368051011270331573876913399222469401418997471916916022704363692721623876201418093793971146071156807706585035552492612003279704309882243507733438132077762908672475651594274132935964779159680234400386966964941192775330053386462826227127814371856797004018719090583483480484438106938130810167237703176591265636753888264039387791029122835950877366394834244118903887391522155414058257003761059779032976877470942644153404911083108654010934323651503772705220798710805349380504464257373653991177767534310326134854130296972486733902581839906748232028175417165236998046012839475523735900010102771924019091341619654028265666361974176611062746109034433307169982596345742168283498936994021274079196140355560502273581682618016536352787719540798307846143353462972389526060810818725187780181132135702497902867078811162502486625242923412996430680509720505553428762323015584913927481601456682325988251548411022182597884197227045391720114044569624391617562063113863194456340370715968407329469510565336984816352148296220270144225107568953322985457227812509045679230594703920816962505782676722564902612568381045414867885440215453675258983479523387993432058221285539429659624374713855638087034548509241398150281209523031607932069864794218728164923220366945209748119961694908876336956618412503879242916572397540845428611677406872525525686696536301135774767958275259187796967746697151031074882713213095681839056754229435794172542255640844189362200032382779747010512115094284194665433202801690080065431506096373563378954439749731987609975933361229986998563564655833049944435529932914866560014940209067679277069056562260037536261162842941152289719751118917101786187998769359975746701297191729830214818120691254055848250011301276032781420187138365663492378196426385621463658370341537674036657430502939248887734563221205530157393035273506598173039264470607536340753463769372370322547993557965233323363637073143233210108321446294549570186561457499793622018709785655564622117299901945187525385149537818479432024159716336824525415076596366797222120815072507384390609415528818413585861152033760330715950292327092294503791526176332783983335875980162323535794325020729484265866860724270009717312869046480014921523237940190550979869175102251371613361548019356783208153435344561308017126780352255570339063850921249735592683704569646533068865186464892357614188862282476484922615063836308960700559519281821670219919931887624346910947801891665798689217689916816263514080996018678691633197717702204030381010703143168871548321886974882820848405427617867794218228513502984123460000302803755099736626309045242373898304848416145163746006524797345268827191996346410096088845769530202206809150587581394527223062879509321784584485814507646729819050641408666483969293364943532552146458674113180521475904922150215931403734197938224602347890820143061217873619787170004962234877665138145983206453929576157566637114499715153191741994776006862497459631928079615360376579453174999095641155790785400707067434858068359729671383445657219303279560003650374215716795033178344049956646269101279176441544834611936847369511502566205276077444809915738114323742349025651379013577322672738566451885247549390692947130434821852497665426999389629066690825144457238923347891774304163334386695580184431193591594260112163433581017310476402903680788754699090857835713577825069436224521812051251690907998397100408810728649928410091684986628890068124867335781424347885621960288394539803118048247653238388474524139201699474204385776870831603127439680708936472085554815081553583146964199249163742690987832586493864115294208560998086805948152062562930192839339684409712971722705630111390836252969074379667108306408698148139738076711771232045097737080373721531443086887565140849817527564710881538658661699658053113058815900822755267247514611729697245311279038382171955216337641480942903832151582546124730552401350435702853915035618738979084840712344206334431799561260459058535115569222455200300599567859302789813082658230838016122875685332644719907844521513008310609088700320870698092400497623646933380154849752587896425016026717022057410168522108895349087653977058379085520005791554299717211087152930133242264844954760053753215541902030990904453746021689652200626692614998137374854734031921697286617208117554855597619449171297418310654385367386938213051969044965584198778690974024502068079947297128563914508756874661361472961437138700388359425415196857710932712348250831188798606930170184878746254824179447659660580111810752354908510825771161248354973777460083362898046247619782578288769115184304779516208635235762748468192641992594567510665264384110919563161508256704390484421861738501370852491383278482966674594036361356756604092434417929700169605143559207604461343961348771828279176404060813363995249302705806483745026325938755680903999937056688015204453151470743500352051730547404160729700801013978498337526283579504644426658460271485340087320320088364676546241255853773335445682814431470647344129363452109117765684068135688565865851203100907478108748602615782049097067460507911129057184409208607038270078794713610426340656494185865575899507154550914470705116109869330978400041212033677933007555084310694744098224231293875955903467663728664333950338462789316331605774799133572538280181254307150280442924817234417862286835175187060517164470252666270286049260449878535817460006580622698951866997781728684923833581060468541866361785368986885871436172394683236511760069565423043360311952757266729343876466474325571270635676132376797097956284566363059084231573754691001890552870197895826655087823089295504152278547323304574747897398847722780526218070175570755727094092407203940458315949851178113886393864346932180583450655162880760541940254655543486528597500758521785174362189161398029018819672383447698839729550607565798998511866811141997896430591702157903308393867637730389395945960593755139315226782669554739909619321773830181959776213953867196673549361082681847521505854450315126475435241550031832515187931791427596870775901750144657059913662860982163208115955447562861484259732584859069279923986922021747377042790602127927723110601472855310005660619609660498387329070463021500311565153326427727090219358509809661217185569735219482871408747843309326020961893512605341577345261155515717217146764111853826916395712773507009337113054366774308611620771715210014057606572907105805953265293419549900725139437620690767236088682402406580591527243616348374370409890294884631869657238875522158581523984413121661820017815942882310812011159158225376156009136939685005503119025395749376366238891758114423157957392211689771766110718046878788416346643992138717920185289423943062297307897273644144002030091631298334231969725450192052899169932846699826076933960496338880919413968241107517501534594081147189223607313406081077396783987392159552868741410076975930300789816378274134131341132067954042956476643844039851482258068740765978593079887302815194239379788394359797032581594167857335978532515987357357929573919283245371821095235029968043660880462909179266110023575132075925519549560125457758133310107183074864668864944434902635432345290058952554761597728544625953551247215803300530805849746330450646358229500711492806422226078178064431403561053202511805128853618232363913282336628021244724153503070523026123202662539715726005448964308091263532367046696078672610141232770812430631357739557772204973616048480364199513874544647088485296124956303552186674209987266755805942822049602828483427816610981840280353505298974122298385927811030945751040085707525826519248518032607586220105499409324599815331243607185081854324740360408293343062891763602234216059224013331071937196008788479309252907685720325018948691489483813200236116072541103476497788166019372834698041412854541485483670466802864251485853525857469622973499838748883258726159335684476426945578612502733764498530760694555462495212302039630925681625786978402012576639019181916578767423004294642588875472722971659163509889878490501428857618770540473970845556924760060808343313178322257236718698740633419692129603237529672851048669568283679762848066584909923543124781402453506255772708305565203530373871004024292361381037188705699795957429356103429449648099868086520876941985474264017003799364963369107960766479399451198679794754513103980475294617645586491225031259964135411435945246071585334287599147825590384003113987821401755155922760429175868023435442302963824167989867473526202392966936364294809615502915785767766978782786861832151632678107545202504526304609508405836148684718664637454840395318710049134188403898492466228143052976621405824224948887586644670986629953412564628196579017427577604667106150812969245427428647371112566416411505045771527669226667356369847991756114132268893295490612466637224676595579277274139573467195098255273247419067795036190751697251597291202790805839397925360063326460123262540895953089627897083775666404084296872089294100390488887637858736286882490247686136601846535254693759436817326946929561897579393785181689909911514004555294659493845763057933406326351961092596679067166305558852336853711297224640052246902270726455288239253187582497354096200943750255226327413730257004147399331566820354002141708056518235643009808907411822068767825352064096997948190079208366778902863100226426120154075654841067294183885642362561249429335818461542091314641795214340715180340444390050282569814717283764955820748468026835384231029683876389275580195319006522786289982411992511414466214629545379781218253984566713425017383216335843409483814076307873989041103890380286595706263595613541649340346938143625199016365169625724670749953919398254122552484158765686542578038081271156674210188386127807281046294951703739906871140603189225699219343062492281259571547317325938337895080070445135165760057691257992916513600943308073988743007954101546308360916027961005898713947031959356273761429458096064953599096500309346609389154227717342892961007179516318165888231877720852514002633655938370342303559837775706883375148285205641772266035482997446449928565434814829570584013337104418188203575635683742278418148641224977654729798518181152763001499471108820347776111483896667751643828598955650656074303415764508078699256898215615767594267835546464198252225165861077412833427159663587413226525350086192541861655935291132426206583915768927165372553837833958790518301021456221833702821219266450953606137123269140037357747923088688192355390827400713439956795832026642013462773759433443279510546506578197731560970405350315665142314102474685849537521313660880358774042201495158744367934611080766014185726650094302578438061632075628942162479398295297656537892491304949287628147395923964188203844937547294527225311403670664309290476896656408402833038080901225554127835700652896794847270879095315369223977598335376126425596862338509865510977340490968845940170675925854189342306801602098695658992484358706642735350914936034456389585664961421598308131237948517008021012576700508916602975366387910346275691822546108778487562286085737167419477809586485717536731750487328254411949071971908375869650005401398294728051286242727835399694401453910543806718615637485356916296600291310030423512852529977468457829315473067746560676225148039923687779286849102433539672475017849375483468494290442421883428334831196920129385941779529260138075499928869788005382602109771421336628949395620864298044973497684181911656179941343634342394073520433019711186715874438131741496183277235630988874454949157169268150910113000178760876826131217993470801205108026519672550705499287133588210971864407741894080110865919254742723688902886913285687479978540885299818607482450169429237751576486886279322248087834612604594973786929342187008967571316887172889447196777147298135528565556042618268071077709428672461405830634427161704580721359196799558001007316212904135278754088991817945148410779967926357570044239570457138322846907028529636464882481829713288978630246760922063688972854160699619493728569901077938789078005039578311506312420697136784293387127189712952736731487303062759692864033838147977881566879127696050437531043035541300369807667771974076146705677858118715578116443394208031000730344775936452183141171586819987829323077469505461954448418755912021156690395646615670035653813921298338974464300930627644816445512504379992424698556881320844810560872382467328163360347266411168772887457063873125140637412526734556083600000917309815952082944208331815780410345494829937375036908374361820516703727569612318214486141132106333361329586723455640319417668311091715362443825856669018457648403412370704957754417284450954442234986131358263921526190646562246934658426825870489886295301894050621143506086435031768464601699946912987411199554108074193250505356799122228210058429443075502642472119960987781779803268901671947179906353945616469400470548483439184532409885935086584071573562436965021054368628271551544565237426482675753548081831311261608082669024079949779953914372000536905811426247747960608541118831988404893553897943676403969077439594097354112518724066231288492476705561541739347220083749167543707495347154605078588177544825740217409082215648261714095153641453771732865495402450677971970020574730083042299976685316362736316947150839575094090534808090576416180411194930220036761772440755800138610602076921623637263352422313997694252293342618895254764330129109117404691673252061572529171153520184591101632852218796552286911940984729334538504482577916447229862010382893554784662808998497265673409923200677484242262746674547858597973988341260662851360371493785884007992263862972575248784437450662602389932894485163918607763066012155438817814761398078716678223748601736815259411179952877559658688513885065234025469442952068937280439501134566857846521480171544172566735620121141343829277106518138519647082538496547343213948221991695689259440686310908350300146964144444925261897495352977381651732784898646647861949205785977747529053874845010274653144293282621491545171530120270765680040903086119281731583161153496348991444881088881199285110323063456766448235166109144642608284888644026353117243569194974231740295769929721760477199110572587968454955627110307908923365538008806436563653533474197425433279816601531229393216389119497452124935012807190312956785249199011622055608098519475714403057799547586626743018098116096095977440048992301378069536778483727328125909383187584691893919483809672600459289266034683036494576674926003179694157545246733977188149591957082077956954934659994261389082639673590232454161971034957644431169916028846628720571681188499156038100610782268485578106672961671193072787736309946937689686226799966071628667351527016262681007312516082183727763182528439577823931105073345862795493875632452617213892549063647035532640356379574341998696131140314691956711379339670172361166603383128993627882893093796625254638110291945170615141192385054461049984816807013200845117994330867477020391792251324895407750869705990002850797696177318213106090347250771414047116241347366774710183955293089430040219234369411647512745431484010642324335153649958834964342123025470116633854463305663986927018389342551578128755970383361189049728352903155710696786159081509939004502295702631436261005436362970311996700475989408273334915735286299167942619733217627182240187514107513786759073401305381844172980288288961033358586454828027941336606838207241760911464609133463727233221655982329160860594729341741666077803952830883268408861642582548596451011003027102633451881926956270576878382130066292824950158515800787500310295444038193692387744161869184835645035455373890075855688023987445752662200448022607943813189255184759544644771443601505844907947176368106490436133806324266658245602192721201217008855377129866408914140866180218690485164042730988880906682681673591825733358929972192784353699103179646722408688874219526578787319424308037658402754132653614476176071154480785585454601049563229268171451453640083033776450811838880252963580631273020183323281852826249450704305371437665211154793687099694656412945075278297389431652927136230271997346158943041094195453336200718917761608710219721373551425666042745892575162811597094669308394862343913495811918144025064027862911811382094383890649890598696837608560306132962411855503753586463162654986703515241487794383432449275804682228209684493518802470225325532896184506868555633598443184883624169644139540728125025449901533758643104596959065363476104813260924921919834498853276306770825400516026840738422278663508278198030424232336335751963353972361197117078184485746535778330372175060525581841147745217028025110549340331946578226559007673522014303459996792896659468923181825338720699925974845535391078488965038566829167502113017544695912606142839452096917629235402358966972234516997215126244157176378259512583875901527246381894686769620178866375505271063208528025039201372754126914606611980082940151785490271193851869237852493180920688590310374564376052800693124231566368119546765212762659252489966899676728803089989286972241707229914658389027050887207859756794143922034039614427790379524248739671454431358443507148097855967455147306048236403167310945567118293579759289435095320049592465961253143447826689410619729642046373594406817060368033756728364525500015991898454531710889299951417280263754712275437555527062670349770088655421610834120304889225586773036025880379959604595385970755515946580882804109095475925199235532296134971794320580710269046130493772885121225344769869449975204176818559779096173079190234491683886963775084031717500518498995384263076372391085890253483578742675336296251881371388278578079782789975790801275935919889545933932404134259292158032276518819177939398044314181583449368412607205587188050195482133924359638366537058470162012987127353836884804417799602338037715404898107994558407635918240312950493882466839119801774868860386574866104178000726766310308215399311121482459922468786705777161825616208423748072949743557871860932979464639202763988357131993067931690327358806674563460273716935802079513452080063925480072859638106210815429465789473766564984224670204162557953989078142427639252914160496600750112648246320200329940698373550560754603858988088211343692992007941062939809752392725357676124476960365998363457858400193493516827238714955647022408356511153444236309920461830068782233854459408931766277850286777124363049985991444385440727702316874222069817499119216300238526685022769599310028589313934020633984595592115031809957689251186683504627563229242321276574183820456923643280558706695988579009656340589892889742288470274429568037918589565590962869678926403170315704556271952009991569829511508070962360079774842999482401878886478597898991514199192607719051154714533518099539702145097875654621740138939468379985370876888992484146432305129751211703017502281805763152291997727142157191201486719605131123053888733154458994294102214489851730701813112657264693138159597618480957416906155686441632871847799429650969455565467670640202846049829100019695149147440160458759358930472835432446013790472630397015758526478341204440917269856143894033826589071905386563490586149844052407339941130583013422775808794358720651218429811717924250066204709738748739344572569772186580247441192752304236689014230181094835040679685640812070258611422847487154943532032530930236212050492815943480187460516575966185397527147910148617591233638909794312854023420288848155597742888987306888875217275219853392546433067654973680336446663814126547639843073268512425930460234530139475569968667151192856492173204117268723270208869311936444331219366568538039506987916876487934095479358630265090786998602279550296303318714875245369552515551425136340071264850767368700084524659718183624203560210117117016484552576691983861354555643886924408437093949054355446181664086841094375265242625951424191733105224086492943756652525492264629541111715316772467519569053950095332236846354118674191069027583538277529538548562859231872762370933123379995880024032089082768940841979074527633920842791436675647406060633380465506850517351877913016025012416322548989738719947094151348478937287223865777928498278588555643621190006462134035746704885966502183600225164398701593125671773404665329770375634704899119603590904384219477362140369445475360468543485033074409419721114579262636712099221324208232145462255753791161200514122020763973526461131060858758908656501404405458153041939345881414165571549215000560022708315475013883432380291320312381995435031614095892643487749975988192757167557525878343413363487167977040723034180034972027672617227040980133689702747947417652264977737364643891472902984955877338812669430500254657315348503177691025095760226414259116820523799045853522930281085684807268569827763938834873516291579777109333980830810635351550545550140868223295186728901143439102796700531486741471393405236403421751095458046639776262848035778002191968115370325213657420691104411611308019653490069748984307565335431992096352336279987237037220624160412447580129319429452567869479373108725798091039685319884617134401747266911079396508854583449179507808781011794328097728546530309875425234253182519997136502279053770197281654612958360332891237173997206504392109528276262092908726160965139582570588705332099984192852558026986996481464472803555229903646925223961382156102754673316268582119638575424191893119770942581342297163244845344318979933195264681267207700228937541040693900385182061273708895756938302453865510236811919562337713763652875938352286811884322439677147811968074637780032993599276667683511450394577779775457264235046376685130769941014395784409364661621784322527361664185149152182819033663913199730593608293964177595118514624377855128144060324568272282169838360075605349171143482845518677221466060387719348665167244388292644923836447819927062781006705493868398135252122664678999429776219562201480964013920392980172646314694375969548475341870797009384877130150269955594377418334488311862531190671613512575510314303586303262052618935000245630199257897165403664653532225199928368003060788637030872936656504801757754235301057451670551567404788317145282780012566525597715767307267174843968639308198530430157902097759614907394431319493287434688479704845033296719173614781748369546065342345718108720749755755858930734725008868485078236658810545739993819472425579854011141686081118966840016083364230744632547491930862067850075981982626863209307458195626311435374650081102411575828730787535063929506955597360988421496577787355841623377394288382815754342583396554906296932095595675854301748639751251832375403588467208116853510778599104512398224340550375045317748743038064717232509141174889439482380008343644232268674983511733446122456175728773879157464133069543867997595394348338377222224425463844174099933141830261646438208531631431820203588550364276300530296849314405600686668717525628450249774922712068917972918027524451540341426646198867349752010771347815198594502998349407286176280635310864129822162182925650276450983953754474601105254749756743975911602315585809215127603151225740052313415002597574538430614259686153371087956421152612125250355364619288379966438169443651813130107065989256075840834283381345849023298767560726529160879973768813426110784306945207626143513829671123693874209742783080070100372389372730794351490688457885685172663247761492124165083678966992637212243508023549458770142902687059827335474869860425969045330948231127820021900455358342266079623796037505149466433560911097418601379367816489323061311324709574346359763549286064858243216519365843971179918666731661349346334024049624128408424765243898765183778939531906606394885580577553797954759298451979948740005361561502014072151563698772630841020106351245099234805434850272167563191819615837942844823077985384078999262965967464130758866313481571562559330363555465736569733474188397947069536920843587939915438961541420491259579872523626336000174748667081337494706887414382431050816557489098298115910101792391308542862969623250657640067217572009416275643297627940364672150592471841165901272127734448538687121859560063159285055396649857313137329563214733051215597135939076579614565362126979151407619801921720739261479370083699350929084448679634885203636240609523028772324778861272099165591438779097591911137942455200920669155371584092867053515976021892157444899041186836430848230744948953687536310494049813564827754830437113452940050187134275917295843730537880651518550018292829834614126456938634686732453515049663398284163714449383234989996606746013039510296029366514735584393358078230207132892392676547013594920564336313965681331176692581356757399681111035583241376076550790649363339451730109129381040077014668353977100050382784673453132691968692995795128382162746764533596137709916091763756659276047869445198918420877129114556023248785572502447666921817105830819332071230411959690825469570536734488832609369401721040331665885754574726901902276081276444045193210629532302569417769261437203365263622866237132386752667869380028288210997817765722935843646579850476270520626119238650238960468833382293984306291556481659118003901817068156634454797641967750156343809711843773061987459876791672077676403825510681165018770460884050016107386711168598172559957661888600856276975693594761931672654947235415712034796681744571995015898449595304412470261771269685521952949737112312552108081516194826513814704383446793656049158699490993436906842564409136727878430615638022921726245205007749060216437363734975917009740442336834058198503790748338754273338311662062640170312968980387620756898621757008906263535790515157640787082077835464201576680136390056202183089055295422303096445747600071467022510131858235424813136134909563549219632042657571014641683677630153510982852491778239246600907661580733684865315570040025140324574103913748356605511701949110913611775457873494901980075602991927379823598535396206811826236922374117681647442787098295420980123899268308189542125444798981743363781421325947320749156535137730403043246846098060906187496616994805216041512939003260151351491233521434679780466881732988002291159547825041915816384414286985962413526014995869834488487038370262767658074456516228210832802027934015822291431577779710894118683382111470909948281464686570066672790775203945880051975289572703804100012960803107470670898670381895885217325261448525896863145546673739610404301334860934693468068340859285450596796370881056235499990841487008116624032489977545631443876934641692197109813214423705376942912884308660603385208298788455332626778804630581962389044230823522767555141317736644546593425848969386916341312239311904722732053521763796217056092610305520374007492646202511619352798429645703279626523956618815693384991555957974836052109556648073197794889902526816950020758929164491576059512197889753386216437977750078847654613367497382495645581954186795606751893140671532807640233313984503730379696511468208055959677052576839221107188102973461120893790682069379896986459886106139384025707721061391364478750527040834966136759983197414171358543357772990376039224876310552140312484403326766716885973200352157520098639011828887262579995735847085795528077977860976131668474506018105751336867288991108997522848524791259994777574990660391207620466946128177170517714087686296263467526985128775022615255536287789187438707631660352885325183227299247545558602620411047167251672825987833049165444070905645796774146043566641799463966492245059587443943632224117120847521825563148168566890648611129438069384994712034606976291881228612389181048115122196440283375320541610826314324324309305143448894155463294160896076415232718167630586608321929030314215720155375832750235405820169164037335575465920120550089107454836246008868861385076145578270286151163845897334073202279529805299138769511142858915467261019093450470919167524393345313886324712254181444863304986245821656383186008744810995988198610998455767988573105061497954868376797699864673659598982939978988614757229003996352133328417339751013840663474594887803193900780086281539674338649803908792541438096648246941159143894615692573431050276511427285114999052495481695095158086729696752829648508839097633161090672638186274546356194037245472403201070291005387593989624041526453161370851726952009849257686680937759291165618592758499816733318428468095465257744425883482678105842695235334640520751033317890407931208303811296485904804308673528130379076761980987105429413890772660804650952086040827899755615494659592382310430417673234317287051294872370273587378513101912998750911955130113763010815092841890991247784197661347637584721809922946439575438051252257253158680725955677803072096360670743153442799580093599526704480938717727331074678156551156761440192653044970895755218433865944425350964759040398053760943744751306688011846830482718280198267419628487799836878291198129057794857880736904051623567130044284973393771132324820382624659257142742721180938916816173257765888652783336444595547522056556745581726959866263501346697031981331267736062412860028392296608228133431474437545696151355864850809815694707452444502154487353001230291367353374705788090841687839704235417750498968885556645863571780209157983064945304060071962233049892713948618419073397253451398878365261542962949925389722988949213847991917232775096614682410654500126737932371516466317586973134058191117373515652124673140912380663820195778829151299420886004651733132157481633398311937377038594984849419615874976684003185539237637964790016536337472908651345432568263059390303857561809384001493733544147774656594190042493606221365977442026997580826394347772272987676394719323888032601789718598476742936001508944774381865452202323345356086003174667815985298962056473799510977757263904986269228040467298035430772816352715498949129871475107743551241551733904346809745746289032476891712714683062685498149933447717732060292210913880656001700913555090770073629213596247701459731026149753826796658410914416115192496385893355020594827482090281374793719684954784923833832173848829131034756173398077406149226655668188991016080822205863231651536333674869872590847801542963342596204567223662849627712171321282962587917482484900069332479215195779804631279882951380104599768559009012505738453237656439416886943462164133550855066288265086421584572323881466494684805094375730068073893286284996211026894278050313767176384840242821681055477992900606646554501178428856460526796135849622323566546009880082134681955448448867908699920872857112343284574398467383854527856126219998894213501930729307550267492767639755465509809815176088881183833081731632945657258497044719574371734225934193504715739089900410550349098737391185519497193685721952416656785125875818409547280727199038738036079840510587398246988450476580144801279305597365226770551957574839091440955750830984110674419128106513056819641213436966945664058945229224946334407533944911393806023164270486993190108987415159378068582770251798755566768707762256155591751315521834006443670595728137420598481086644445790421952246031463176149408795400276331670500895457880620119078764765402144344574108793193413999696833880844216186869554201582978411205663660546175677993160513604412845836403455429311607800292475523779264024082932450722316816753618948411459749811803931179871551028797977731769675827506487980151283013453993336660575119773895340162802475775793287834574725478321161567374544177904917191484964425599254945841894098977658353525070170886472381364849289713768725828213534344777767595471250916614134628939282255890991606650272181371546124830901884754344357959683157090848068500925383710009736791310801480131000717306843551869694353710792363294915869996970872183560760077814371824377566614400506108990601589699011009094361597397913505566938039131304343660767956672181647671890083502190931072175557995341544953922011341992745727110751961614142872255244334684106858091370367423307562455669418888489054699063665178502564282322345380655497093214663429352170780689531448260455125963910638808583054638092860865002252828512434673368420009928003088150790916956519201045486061367971366250956542828410498626728346782094716714538998284119382867190820142858516508753878938788573407212212778574156925573330887124568822544661459874173569449324200376013678197400744862345523857462404580288506778160313289056956955456932712218409843304546062676431982670159124343161880951340893463629288309082262437204876317097401364905796395773132906235733864557808396082554346843014508743858708850035052574355175273618310423784360111487402881946898063352371299307862953112452247043063333314658223952165146497729370740085031459119882965471782242908412020397119885832648646104710702991610570114520591896200129483595236476733363853968849732339691471440492127019071996616450089181323398329052487132364211707407470727883146167757762165136913051497570449948227720014164182318214967487757903493567250691482669213864180923646016890759106180581903096897605751084953819730081864580048446634062788898837761115411358374907658450542230941234547994825769866132035249949668789568498564681199608981429662452361623636068317847841505997927895208573502937943469123753772873860037283318915390257830890780901372134220861521791323015210357064857105036643704578742033501695078165762042319836911234582654767489571082683560716722450228630376192886864292821786259408165328250540275915630849186727108804154300436608937405825225719390084584657248749583444342736687746633840331237367508914741604890170504467040728727359248069171260857067875986750899900746222967061223982333163825543211026745738052640911350198713209210996364714570734793660981582437159751715082170425866093646071905350007130409352417316479854258330586969691131217540659790146093653988098116697686644893824204144061346217217023314957843808043899715625729126449518731771310367121749947646925324928043447131014080064992694188430330802222796370976467245878070552456216313559054280492358057997195711874911311101836988811856808565935692412232286755543105680856157365335004833868324201400077487912816496052887860070733596997477328988590218041681779500248140917507390672764098735896599300612301485259399348309291126182789424183015690948477725689145074425186252469047657345681182641945606785599398779883717444224001330208640331560700257987006190018721216511039516231014785103472996554116169443013910980769685208770536253796167724869908033075936793120269058368048409179492353040354611892056367355571099025836786774171023788420389184669745670418743270765576470068657711572505582113541074129557489454802363949583509337011842349301517242277543148615345222635006141130919458142058064878912619315208491812196220291381672200045179853335890504592254023889362516236910127404044239611444161990430737474808330867557767107024430767317257041202597980991366408088467760153551242395823087418342892337106952327651735499622683665621408117510039646921588314219570748309989665696180453044366673542742456317443289935026919861899360463123325053866536009953275121311418406477315994572774913281141671151307762449103580147095885164408247334381997163910633137650542366434565365248171468990896836289040500577342693671652174154427505701164968817375392012579228393818857443213924852093231694813065396407021599918036483372932540539516466552500506947678918571985003230395749642766337875117976354048178961928818640918395260094539555274030078187527722725122121228152433030989966363293111056559493995312182753745829323101938359258442664144724248198748216561354681976934631328019083844368438194925808384740128647033396377385513080296721179476952991969063257225224698335458506107759421194339684553943929068666598908488616092160708077080857156990161640160803686541729844317059069636757655154978101892663827571352841841178466321557097077900903852740655976461753769292923515764840786101164448547899083043832491635914863388453081428860916164853797395880363200063943436618313503364746094635340360620879782147570976799251963475646316755779242350854159378719870917438889652569216040414689383050236028623518751732409456974900194398029484263738032615378075280332075329350321441520386161509424064613830771695512405284223226653986683943852567570244352526365412830610017151710978760987951305368186186104303927162603497936615807951000088194353525465096888243476323802041342051672934343528693170945247306216230330139635552247331781725902073578307549296863161593282144811176829210007221462386966985690843142686697726377382255972405067594839670661738701032251463536784372734948140671089126262319019833549529868955470151181908136245384435390768754258077500337804442998139014632106049727583732476939593261282238790038341785161168147306958814722848361126790880236811399439746318176267347448595176596176419071998114785403618362945052614447657416566702370568138280625843844836852309205504222698160680117760198122431468168489786989176582933814989709067139600184460588443639765213146382677595101760002905124551889469774358349188924508036875105987238813958757779660848327870604039412574330835364482157330534451363653152358887420451335761846195678126404738291131610075361799927838159300478862848636308613124917331205619219407756904781152400853633065517694642189991384302432188109409932264654360628269928241139187186475118032826497907316141091379505600289250155424688917055829476515923326579800899787565501979495712244175256558249013763858616517973682721534745067948116887884110762401057045475883598381155571565583341197212218487047811482644000248482570146783951041716596373508344280774366179746681944355928976921225603129256131312554135374818067782298380614264507593854349844583108058991955721696947039441799019044662268530622931982380384731952357654797365001618706159075425011570508751550050175361994044315321329074309635124327624699744003237889358272607871114808747317927601543252507112262969511183081291199164367656667021322020574908243276405936310853781608711248821025965534685506584849698864274562519812407485919602025691932099041220570860063268216368764345885167611990987785077977427906722496269274214657226552124483309959202096032297354781481931101778014432867244713376771598519556225520309640308207138320252910565581161701850581332200560967589232794313972368622301188558904131123254167435422178598601359158118109407024779582291438294200997131511144224770731752270840484188884202587701520283234750692732376511243152588532366208652605631103637150990016177281064359144774651427820058561897768748201769846816009630724542200423632562262912599542714546198896377854870225910963822762442790529896855986463564153978430464619738956975472153107218601629255773581394453158590631774119362206887995066505897145319581153371873082109389426177982753720224742721967470558922510241119865173117334620772776700577516636671379772317162429309873600408208319913209181567773305330868938092246269186454793753178072465424167488510490754069105818626325423604685458329422706066802523567974574488762940894343042267647514009459865180415466247132378935976380070271311190032514996381735860894615144808137728047540020432031643940542060292097052581212207798567131474820085251783108024981095377870447387024394086007682049535178147604057774071855008931227303857990680560814719437639558136094964669546328604118606106416391474453916533235225937666918960650033981277583493214527544576015922849915939275695303813613309145302725594596719696223393782838217844748774180958221270111284947505575770262175166087008794789600482742978772738862683334555198197047290560974547082977629022243942280615858681819345126463303084848291195067260955251271520269464683310116172543708079154381748048392101685238244282480688486917559157154699163767885893635199120033555097820547736358399707233581191411330588771011383130857017421812773143380041302469973094840876854316080508925665124873050153029336455544858288276048650987014850576194049332898063339068920206183188895929610293512488968558797756520726319452792959800758543748136723068858023873402984153146020661606884149339582067713917234262299222700467055143066919995462981437815673774851922954529526068561744918895038019132376285085371685082627291544394413884292050029963248202732611841571513568135374540124588117360426024597055151907598595580414404324622205468107689043836722046406875311772444687747359224048230827327767379118897238646866169706647702682514382924431487405974333563837700958435426079917391519305563397879251301339364691970727201903010994678945977583696803452967895273705097078059353473521519530737278546534791380741642508857434428244219365835375458645493800218072249543924731340866719880155011009512564770750085804043422877787963010803871221705268475060615561026995258427787167641736996281776383160349114965791927985722604041123514348660357589119166314038980196509356207124498654666900985595489564094135100674175805346709894108882047525108057128549206189404930853791393269606550369815705520812363937962587452013583173060541208447412077110377964465245811157006187832595982810967463693075115869623180840610350282392906625666822486349041194444655263667830780454973710594282063840633181889046653361090238902243252537378056637245929413757890791370192375505432600680510568203509676650744542632876259903987024027536129184554791023105156615394592023690916141395503756134122470878648899356589379756408637600243838872726701788188898622376710388941772943355665477124369034679713051388516678519704482035811817422748216227973127159820193181845847686292726754928168155081384254866712446076472869121025272049682890897654692234041493221775345954410571178828471510409246289541551447831389840345969301216171321212909823043223678536607279172230885444552768439435356466980311923455431012182288283648786715380225565410220293417457257036078256029441734828567489657243541258957987473784887797096285933743174604879372008090593440381668129069927200737871482553238807444830726615425324228501722734148981923722939684088187272039865401762761951278025563189347314356321049700498043952276601460919466695502836838499066576664174164375897322083740345902971911559092674423028157922385255849918550818367668281502451852276006539778905115674605797506684046114147302835434416324694020245363238634804343652462300459826524684922905065254822892605630199200641589703916545823339306991037517072987273013464623660020428209500948692185537286702250276200403560677567731748381120922318170427510806927421892682498212713970841150827403836271639208315006441699509981400070247387835273067894479588607424138188272224848921176974426734252389447758177213026111223715660663413222676280633250894190463971942871459667622420062488350319385762158306475794630162142944277039550874769162291808533494740052601720652799648720816873672218835382743240516871103158958882673266731415621208917526602435539511970650782012145310316326550691244125100105108766710713898503051113482385996483802974241772994963199015718635475845253580464571018165038735656725859271772173353244792782692776452755080251363978155683375843685567787985009981311220710954361389567362862920405288763079992573848117015273956488655369371840517323246115084229331119468029034818675770669746747582068719915386915163950358519428810797039674070669138552246181131419320671192802269104043383283148443113443978671368629661398830001245604446822498217325841410474139905998467242179332293711516742328842881818905634304392690806712113660370187682246545305573443790618958731496864555294142054672496722957455886761060070243536415818686317611224548874493713820852694348504126832247192219590768946468655633740569281799372952174651000222876974845801017397799193848265231753473073939373882763827571578171999434596647425403199848812026036933588491079127666920577461193964361461794300006947247967072797850233888002733006083665672144081519901174596642278094685815382521211856394667219972717069840752974110303125578790517471508408299049587983922266665545118439175499320058506756387309287363394318491355711479703939378449002084313434979067232593102394168270891920061398391206936191688377902922653859208535253634043257483148609769848446245500290864399521239139221181648450872402372851147833362110373289220213492875055136696060753446564969682836683535878748926395408486571912155429001510646544285407658214761677020798519144926441730103752424884042337090066793508543942525839048957141309557159898238020566738204983049841861978910932364446286476990605373750748606467081137622429002611488298126313112493766064671944394183868101626490294221918822293252052507800652831485378568998738354792007235474811741719018293323280287482202157962946870483349895249647281666260883975769105054540231405636532159357015738883770481743756859465496504648225038730102963031014282300279096185769289728868533339211140638090014568184000348603508631898466996634715488873978136846923510246145363138214330925974742799076804599938471537610422778885792641067175701780238834861756281603399553969265741904951440493688226615218842404211258258944237584132523298560444190501445827129613745368494739978293514742313715935974065307612064047886196546810027304338059793578074951924711491887873135455418384976290311407333006810818353341767617386719341841690211445513528615267147746396813943182764550769895365932702119083120910240359683863822607744709242425014299709100996619544785488371576440543851684019572129663317865554805324671124478939055055834404456911884371831211411268781728636940723076376270790570953838869052889116831477147028755715470733566721249349783173872623051529005240384413836816867326961704125771820979499486245420319343180093043864773668598573555592106672869180402720660770273952222794841492783961805047102953650062902699447015091326086909974576792893559874105455363103698750686415499054562805284846545178795396520969068759701312914183539120376867162769420483648840160449816530430260892513290285046547106169412629783870164979318113810890894738120890790213849426169513596778330389915511654308811126458376693582912687338411470665624625839983356032778433281947104502463523036919673467387536434238104400599734806741084704179693465151030304477456491867942503941567419707411383571274407592820212045308718699074339542262411380991160996597509334329794452971819130079024689629784808817207441143426478912259458304373902798126787249593827644259757810485060247811457649278381116721568544606811412998452639560474939758412947674342147017190681487961087511748478146350598437204440925224287554348464963871720558851278896492728540016380366782536209008620216347881654360083179282335354546747422780783956314118496396366200898607173614147691767172046696634631060419000943562537973760942954230335879011065163782996981912347054271880624712795459629317634184468852555921942005165381940336920528411698472359053897088405074808324653296053095046688622539045073411234550407587134558505661644184768692554655000171234056810523987663757131036275589298457808455908753300735479002473961445924363768275521154163337391170953410061103362812470344443281485824941600608186043652909786021759120585064048274948880231916666729622672239995820929834610779342763576462628729685976762259018187746074223488383214997129835773892244646810174502354572946987913533192311488745913274911532474776562030530346891588225908010433778726706526601920371525618663941273117911669018124879165825708544429347465120046146202927655962577824424487873790354703448810620880886678039508191461060193005605986410719230544886735055926360435997644982069045149161090149395621430403440526783858967901050014614308910245589938289812372305096997113805210554239933138571923209728010258091295047459642933334053542651449510988978031793939303772763456962403994705164012984187246795764897843911437155933581408467720560205055279907889164006687339984387279530255302996870809860363345530912505356976332009501434737731528636564335110052174367398246000372748051125156130825062823421070261053344406299511914500545474085041743334822672122840162117434984945023572153913041344984995434127160045201541786453610379451726602485359899778907811652421393342859858720056762311802440946793809280580496680406517384706661427162569320416560889862469993732402436693423332673300643325369212186596643730926101472555673191512605023253151408511313568485287644951289254105954193427524567729747252275475837142777124939395160022050411547410521567202766546405072707490968582030729763352995247127973786492787339836995982590246404583494006555127400124396654100177543060540139731039441447010419469210015962316126549850667154262414803562312121418622502940528504896563410040754347898677853120911974732839450220363825679863425358696996521691223214875804365072916343732812952023816374590269113149569670958589784531209960334277152992272695561871992926570261819987735960404395683898829702645839899832893751939301138967063988943744594995183969459580642744805613254906287455470875083315866916603160389124733665531572040461405499814328273088827026790894740594449165905920969588633948295460069053565952892807249152997328592842760612336327903288339370121710993938425341382806269127648579328374581464928686732878608565349003340789611370318987681880312214618548117605649371046808691157929392699711506700053343108202101388830115855060289216397140826043649898052029818126737244267679517712823161995729007360213858447863089466924502034961661481360436264612488360963735826602943884107741384413003434903565530618754345759273417249945217630612684832184432450806552604444774013935164886270357965225621664225102145328246815981986269404153016808037682850186815513967724346680754958301185287514063555627270950223835527581750345749024091026200126846848682769465833104663804631757064200589593280729540953272617966205944279816301093367681082391576416784430183662401450820865327911373497026369859863914858259398533937090469650420068377153028642056700394948948664402447428916314789734394463359424867863951294104645436591958152103453864055953999847524128841433247379831789289205888357495319278205192399230570507814111101190252855063408924338449128180671331061911368733172891674864440821537409537745803386416981308862669528670101356352201192627303551825343605028969514848252117366326586483303069650831244977057813339551552311434947419923911337027171708897024817621956837495930245242473507137557376361557147497561045967697519246408369541109559745561807882525514491578683262529578635537105695250477415639073793507054238459018742132904620989228423306090986669032566331465594567381689858798420195984504628332512352811397829160525045788353792733710334785448064791281373303761886997223410796074277260970058264582242138991734739409052429648763416739314045946275801247229617756076571464504415712270963075968273433689607700328777995333953126674083922875641161711556232595486346838470087606021944651676634341915305308227127089052484886149631886527367978481657107842762483661187662395185569013303554756055690520472795719442787922887230354905957764768711204469445780665860955927427548482668720690387483221180037061132908953531938277619681907209804902134305943789438565376619846851612788541962062143418138553990008946616281503584007503879397271242432747856556321593999186422990495926722754435050930283464694351018145274095702218433665712927792939506346861329825252157258954980428129173064066637047308190646483189884415390170590011499604366103607599361253260218756245790607576929159747467280933365932367414345269636773574268329281772507174138614333383577152428005563071720147973924072426758536796200183048107237507465780973410518842079567600113433293838004103740929900359557579650366111731222422822440855253848759568998553088438463299177152483057085219970171381546552014095921608603137273226955385568139751883659612519631362760476677273452349916052941310062549458451927584055463705026997686032699331491945331404367785331647869930555035017922535209625419282714580909055485146748618877759781906344487973139440061453011883981069275708618551740407619969585039843031870432613486660638469980940559451194383967266858428678048667963194851886268213919949492418528503847288073592500476811754917145208455922536409001640900617218851984479898970146618464404608479792622841481582218414955692715519036352829998210312435650374907482493274519372679579579389448747974869583966188948392915313294123750599600431488385741970419927284285971623358459601350617201146328703355818661367405425262351349154583907029085885198314433051847965239251670746761759223208797616225195131261262066563405047678467209566196944586444007323292088315009736498548283975355542011407642975228312514259523081456902215252448503310246117960860409896809999589554597886823019583830481481733524934255568426130501427399938889905774646635687890678400478597300050834592062619208649789894968579937738566058992074569742453691140056110002381071944955695968262231102185045547310428768217584905844696190999972100006383322412819096498971525248463257598418868912903289972451939489474300141387804716686871436608700959568279249638228154690109684104544087428442251467692383768859057194123116619763287321162501415434496597866748878764112267642256736005205033795509513050427468390283424849775625861885065938590541632107781264356152761175326878147893995450392240982830164843938383013631271635146967337001224854642884041043211211556681897604703506674908829877106839251903885967405177185528027283850046014283498201392455939575725119945250748449979765148946254129850479585595199103220377218130279584470671383049123968256657995573162257815984864472250701302151829659549725959117758831086760992359945063789117574154631333329691904596839319771530638361252987122112966377591172885655547149466342197718171146374070880449144690002452143006087291196928799317847628935542873196464382649910239172371857227775276430014026743747831187237610168059183018912442269493043931234422158211084147227447250717295703520024862996756484958260417818441760695899299631461217581523897002041377993632653449047222372567650762481564792558960377224083810391950084626916164526993980086201782772666910827566813855710104382601804951873357253814882201816361414531491051589549594189650133602048611236840100558368266284755039666159862198389535610839201521771637436906946789270184782215583059029873127353533802647180069140763262552498910088026461447427705900064482346356629282422012301948103430552339886931555574315760272678959599397201907806173549027691056767944860297075429798971980701254215279957697474873545279692163566312688884733725727612122345274951612194450562179954640458642654656856563397395593729599244636443063742811829774363858472823160722607134917621031526343376434380214727480416122957117926872284553241501218545948985996143629528898398682458857430623553985142745044344163070791700847257518706427264089675138045607046063966757134637060627116229207960230413515987836583549432976961184890852438208823529502367954398451314568683571941070620624240304814689532371270073618260890235659846160238294035302431124150387282206088595451489648089574729772712217147094556447506062622787980029611179472899972276742375760897065712976946592085697335935080128869392037549094431959771997550116516370136795728404854580749712908298044639024983723776533427174063414466272361433652270262694965899535000642843888356503323964272119043985971935284223393724848863156032050089347207871589102662121611271280999322534535019570003991714190142122677240530285612764203269893783559646562543944891588746447834739659436315015246318579675574463520994965953551064665351544357474568275948863027598661118910180251755255610195501128676636806700252535516934174918383587826060686867314970786928197119539693500061129642356537066122320814224936916065732745441170646249833674825148187121280358624270575820730440924541848241507754684008056107826671281911765051070476959865747975528460799094837964040054874963630344594299214455507511185976294077476613385946245321707695842018788957317014911574768395462647926907060087219727282150421285743786856014695392350547547866889488982258474979040177851923048537263297634944756753082033927575734826984665342813780431080168500149099012663076017887591563305421121102870029357372598548395572499491867860739094521600206900302077351629839830003556123233777546506709593673896452648557785247985884841687696904054297425284371036873189652844688108086859136327329091112091571333477264875615931041333171138649746965566498712637627305703465981350788874176797221153255717751467503266700120368330418586739785896299685626761663520857316345994755357545380994511644501752775583306684159549626609239174469619849824075333494577428326459666570880746777758212863870678603141510698328396124765440101199938201817435981771343283547053652678528662333750151804765495935051542481528798105647430150061459459700531024729422480040621313169039933865235567991439879728028490260225071594123547451875215580165344192997567984797021047119789470675055685150366514506253042755412346973290844892379204616601260492763828786730519670422222860195502912081616677097671926690498270487560746113867284468909889681442053345737423949290364288137956925765951992860935692671862331676068014068581183420364147408369960643622819801604055443015091183937603468229394341384968118869980684896954510078036041910172451087139599553982741416671820498767055507217279968258704307062900475958103983833824125360614828702724721017176339490495992925330294050520772457978000015461583449761853512215566350274231476703739250360941840671977913517479806878315915739277279053872794607146241234061852729089577197126668438915266197551824247991050503225629143954442556181434273167272098375378982314445695513343547380756033931554527442459844468440586263964015558557362565218568086327711084067368405418261999792766663530820928161570883153317241716024192163941167862480738019653787058900563701749454966564083669549398849727126170243399107992105757185783134523156174325055753310272053900664906410014091396937007059885490557672555926128584222519601063685593565778037132910751132739086075599075684100838521943191353529449333082622997543793635005827886755189083555507720441762011352004072401162320062822951617088001405414320098944989033202362054286710116100518811585757255086918547858251212356889018727223459800150175110505794763049667800895952991516234598179002261456749149251347441181988157887080671271519736068067467821955748697960690633809555036504214625556053943479677250234529004506884411960265619178216623157617446493840141642124185260345226098471816779760949363307108122417103704935294272212111999445207778756510099491422573288456246739513604697053704785561688213225522683332755366412902891578261221778847267970924466414492145607072821784211500091368965929936567530435785432719124292905727329779652821560275790317371704571434597689848389792748059362921073670532406801940920988450398355364716745443167468304249287665519040594495480836651446131856051255416686530476595330261673315130964649577333804069107765465534871382633578925605273465286473986674595997296310516076362101185065978179601463599571239635674243210961399477869692570844835781777037065702582898046281324104025350548429556406173196754565978651657692945354530522344659546888975966463525992639466375118973918363072334419750558100784461193964404346330312818749649005659438201261252743343501817396453653826606339430244228344378751647927803147586958765319647272222125889957034787522777781550235761444043910809512202488746774919397812784631388644293264110307860331140143930002874679379026258424670658714035567970022238593511362186903352736824419915024111727354767124063395455273486663371609375814827130350656188062254974970566426140834869599391851447067842153367789495884593873371631857659581620301246770645721240002469878911691841061960934534276781294335465339324361852291618344274667514229827896527920141097781133765379088017000066747993736553309787420391915760459991253221665789022143803215215949761931050881722381003525965188257203986503999519232922952911823311752092009470624532203146412081107821520521679856542107802367841151725570817134309266183281647069187542084100391908922792161982647425124540541814913629282027109245867451064644658952713064984518302849617949351995822143373191286693135839101135911090164984685997978112531298135140341253581151102636257182962638838780727353373338788480129615713170160614865950007156962282474682737809195986349282742107762750632271386310027204423066453356288683892989890731071196834308922585962426082058349915720240756503184333065272379219387954295153805320994523443459352102879384556622228837145437456786225999882774516343921771766673321997130269174423640972088764478991400847167384446759163844862055484725954799050248854865708905436447001825733104456235787186928555755889743169142138196912786625545219408491708810029837973426159097784348538685863574688507196661246561939405678844145377772174821696452904780178945104175868226196169867139318393574296554372259946717144644807472163817678374798347144192432825156603573729088278311558201310287766939925784945848982364499956636763818341362173874665392825172079576584858180774108112691163053873428550401995260270991650457446869606345706862181432910578986109314864411491687187897557860938809679612243238903698185627613788220261418247038211611495262083855026447177290638841133028353364854615759821851309024168681111629109491808088449345559640288582212840754425915611942358395882878293452409515114447908897779304267955815709354028526404484994934268324212268250246748868820189553744622637099709202698521092639666566322386822858700047316837598780321095529707384299186186523274094110097159861546577074959590492178020149275744667356853839351354190860407667996178686489812540068322441318567992289882244083875290960826924967813367902012825164662961540393729213740170151926990778990873888407927333510565622251154804359832646076423853896072412681583909710917510455248545754324334301769227066912384451706725230382270627593034411493755694633382063581789963967143576121979924402570476851555552237186818195109350629411421468757679999730946175956159164655845852097085243640969584536460020185023582949950536159957090910438425057984324524309464702427289181729188278833262614860859185160553600535692499449886401122142798579809526635543725672068672681796869750122800183789380037796320202601690397127989600371461260038018520845207075526160412382389203949931474333959145300133000072216020075886133371972260996530122800495077663268043691849838752054947291789256176853544842315325321007356223799573146716044638984127024668265852527686352450736474457107395450042033914702614626246489502006842964273787136172745426762271375703853673874393561344501815842387308111149972324557349967813023098599365419590960452839310398600584202671019816593192093936160900476789044635069949364254329847093669594065723012403107834050299700186505439644950557911380998139485228957598790217846981802215306722832380740169005155080539776248416002011360355576149034533743747368739679023701553272607918682639644997374881596231407341928103307924335633533105176052009875115288746710010843857840386488846559562015003857943349164703876658888352048993905839161480345572082784734628756937886769759977825615924949395474170386366310213154472868344384856198565801437641723683470791333684130853895829994677100711125469678477569109414200683989365771644771717610932481989535108668038620856773288930213352930773152960075202223650929962048597523734169079371374725452619960053378020736827779306294187267204303881404505293190451264413130864638814598090126677173657112757912807876435657113380726670050787673866897265552643822792405791750773211337932847040578039845265688717575389789884845156854904000117702746618499718230334605040269837429420909472396815310160617069340474942844284134006856181012435607760350674901231042568614403886303816201200722432849979783912577527380991483707694478008979691149489543097634468729072706835793997408897361619789335167891864119174809383319638918595900448587614145290885412464554052627861518687756583338568043443402599860067955574156039049093876900736437027075284735486086542018760794553623171716301636427630743526412686967858104306426540151182140188485452375954319324724352213475319313538385660641544964432631786600301721838091745976435580292245537183832538410215390029690372154314345919331676157496788927616531686122543231593271905000851440934293969451163571216152111251566610321034570536586157472831802396889695966962127340315850709267400237098052623330024016270795941383074630220251854374399321359499230787865671813300601202817293798596640156595696888612962582131651864534831494531378837720571698486805369626206220264104747883376977763243603561563836189676983419295244035605662693928792332226295660693758825896233015860463481836929835176929661651409737281979401092972089720632063949494278778608330238358797667183330454497312087617050716342182675534566025915838211287493060850351292808635091659350402429490799263099453002509230746785248094648976216596776995131770453420322301731243717973720633179560180489786932605784204756025392401222484346210425008663021154083759364347765205863418858476269844621807336208510557000394247511477533649680786819965997482277098027932919457449903020342166146780936370116768423403277219345855693066824477920509992471296575672608283709852365224813442230995498648369856161112708991951730357182736774764951227331874834617908762683342714264570269563836712839562463274010702086177713545604413342523673560262805565647655648155173115305686437007351121862465646406033917487121647236979763134369653417427691501533195532492084161595878437057564640680512969398258053613508287825347905459677753108357342065197591600392495703368190877368087172856879717870246308434481011197883301764625395560100067855618475732737791912306756405704378231628992369409724703367615467515916762674080307475279545237366127637016607001020205489316190949661193075344759501017613814111673913285992724598080555199670318864168567014861457949815385051905901941212312130631380209487013212305281387208435889047821218651637840662163616360390718177297205082578433963127807577478136354772966023597860101876452549806595946650869372386457167169361823496936341298300037311522155472297443961462623670916112942354919989348606674032286248743288149423599413528323239138185465279125779396678028764738250858696275369170885200956379752330013698946102102541024351150100843698183633162203857305358365378841058090877158986781323167529656666801321778885696345051452402477193820740545604543053582578554505132302225985305683593726838582705402786961812982313562621106064492543120172686704955268317475183655253462584847998514417708805306369653783739666413684200764692062724413738597190656116794036649770723864911477311516258780501143901429609410288281224536094205459307794286913535170871950465382709742226156792022887174548761684331738864256172662593796989207254593944777625735840400722275848995166856536799315226178148816745041763723751397551615512352131512020160218364478270799671928537442980127728835111610536898435626623706442706537282786256195446548639619632800962290413357087259976785453409807242876019501191172465572191807508597537822486054067474579741516340013177199434326065930245906334180152301019590492652676733666254903691945452101177808172647543769252980676433843180826715986470296012564140847771793134829288181826384690692904816255875291924667326527572031131080843444108823833449708392341584090132661006264083952769184229695450575531309280407810379714606118643030906955333004485943067763942499800793627364104991537118741317518399950784203099897303600576734208982479465741004892395382478699919322024680711649463603339566322169345496516242004168489048326248592691693277405535408083262588903225441665579513128807477661920374727897884174992379288606746941204235995017383513631843197177060915657191666135949533952997791118993175755846037330296252567878714894950385025980616342229852676995399321728125656942198152658885688733135694727515038590042781755898635323696512428342737365023947216596320047021873978065477193145613290352611082850851472047682020531103810045757895343389584731997917520054827676594164287466926044540210144553497917502826258882778419120172042119787786378427009189220406742587315735699216733221245100957011674749266819943845783440043674047889172060858966135119590524780929075812027835910668076692161226500191038591372608567731681076172693194402656706514671486613455546436128395305838977009101223679959301107751162020240385829691004249200882460670872267974750293474512914377260778678127198942213757943630811986141076931001277392468314029705281544407573119687206795208046871985475903174858537587897461544091348342859355059073501148905545729121842261686108929242738078938304765540938455608319445498411893785415954418252230300816886846841734802229079070212730829772417455976258759232022595786679047015823475883912733026988049207000600189889384200808504447889298622948186636727158831181133776435856325141015913078882008209772349117818052854857103550307397290976161544413423103875909914626050850277918706954746918503763967321699714288334695075606075156203858941421089942617817809012985867736128482834536470468738393244322986629806308262211634423065701444159140174704318237351407659141513705681471731387713582181190286086806454604011512869809417527641464498270046942237657139533602944024377969286636937942067201666946639739339208908036106601637896670731842744694039082813723874966197386681243250924918339330391245770137385011695893956531605265501700491272937071131552687734134262760795206720529593025997446416066629557437853693018961081201508191462727006139819762726758307487211667476502806311298443814959424016770584871327320031130519492154096468695006315022127191176572087766985941658069547543819173041352397717870550554674453662284714271886105031079416221386240915503892213144596161076513231731012757085957348884669989708053590082355464389143876728780578561652843826869863550102822029266300143641759017497510666987094656639519233402650371106803399375922875483256665463517065925466993297616252183537457201624290265389352791131533040598686701666289699602681104287911349968951147744583815279252634902189722208901990597552403711123960820085025544262086204716404738098500618353782951838253836899106423149232138165715487669373196940966204742676959796321154826530560252397615276331434706226277418195155175154854886683111722197809602957707929681717368489667835387026916270334294150703638881668353170815420454208416328723742853204755883622074372034909285361767768363233707850887221530183311025579560581537570418142415868446003149740988006443964514159182545177129322895865717981225020591418069088024957140053319704064725352605376213417834639778697214560676130899849837186384989392617584911405419766822548589738885654397474456400495140915590477861170765333509837222789485882930279586736400477330875393851944803629934409443183244104495143776605884060853811294522802375155020771546867686785460510282928479567613243630187088627807508986829905822095823053462015266732147217297005430004132471222906121259397479308175373937201428602474531410622494715961683623835846688591248793274521917382404982040169894199955067117475371242532110204277072550116076258613222617935490727899284838163255695155057233428482954754798217454785011100970206688484847369317873448926661991614872050934318405743418093695181151015049850317257731601849244522137617302522641287798494329367144619407692543874339318316263826867955539857341806600311970947742844938039635295615890457873562574330074663172739797622535075748948511698541463625366306590315439645102348600278883170966441935806593335227466859507648536784475735548231709737310353391834662771955803878025825610001000850819548524433856378342419827027378653683005542811259414446819646931570129161416576219116491203351220487517553253902922460945863062694493770487956434591593941622475078669605177246584079875162795684889842227037311086735852217345779111966250940468383493517733244332204986196267940491550411281958581641380987730256082069517931479831864552276904158675524420747988996336514235307108020324838388826176461273372666193008821260971993981103980124740265020817783496385223973859724479020994227948568839723784026989653193047010347218000591921031961259367604480294213817054747288389810698691965672056473158339406726311494182192033978605489919703639840191271697775303848556720184223754374458436267009614114656986439730151095999316340610186197520863756784922971571707872851431915993691387407722861781879052238040072313596308841780998993114070260690202788166838433432235231098176333416932752408036117459866394711886948827295007333248974255165915779332759209749752561965698920832333058626123170118920997653536793767147238464584326544658190521946347708778021924570839326071637045621505817948877729057779019223527686091387103440365607137102668965564065633266571958924123769987086044080922500225044944182935943924569925464227312147793888480703832255387172144553670917395850549858683923640596164315250331117021796756010279242899522371749985971058863975886674568843585336855623473073913493519168373534004238775498980353789036995238462404261665743066829655625289679507707821174923091646113034902285219618396880666194534642956311152061535771824201135781687390082056390558692754930870309803242212546395694841671312186906349491972496868403383959228582403768403608482474773954517142952290115603533485075896524654544553101701745112713883721734974455619271005261954464138949978880190027526635145093026249416992167212217547149519082545228841632136048129878740052000483019895307060107489020337835937361856972791438814476639704948356300215162745103904106604315005487780895419012028371581231270234552279126438093254981919820739947726849471095827325860821491223944125870893977635307821313989209381529279836716401332237592076266051996089115019602665787008382103313366833413253717255311871219618102286934572478857058498247073444188395274694665676821005652221009519998940862687514396748520304192019516415723340190782046953173356286685025940448877971393261310417813321562930927813620491442340383143931456067525277753389888534877600154793716031913881134798402281525844564258973485847036132397020956177320139523880656389107390411206010273287512755438392491003379968795497910834354189985923907704058721855792735144780328097518735985114732835231293227806777559531273238565219983767313395144305822793595235799906834431068648642821427561400666788478015769619166972435897520065071503139002858800979845508647989634716105903374139203860275443625975782971170093952940627037319980183204911861896955015136965252392898409052250530485959005677883611746645957195341147701363051928958539772969365907072881224785276352606037215542180464346544579057285509239703828925605902932105890890765154770450417876406557223543321625121269008574567286452186851514233788095926852109220325185233658091255967262833981872360850459444521293733351556950119635084216642980195219493781827724802847775141942168577043198377209537013714773221722689193627548300460936458058800735015229070628515695961173488871337641622055111994727104092494276581847416522243978456429144765304080229287169029613026384215628571990274499745160217568811260959172083147090643516827432568891034316025386211240809805482814095566609676879517507915867721058721749096568547042705993130548089419290707892440027171514117585638692104130350738616011853612384473995791112438541933905667501178331910470141441761933450816795885741258025682557043210101286025895094853181737657406015969792918187020450456089308580689359469515133206873904965346152675256985933048848222241692740275679313726269311700366258594004717157639989086850079961303549004537090592960292518306624003755497836707686826804196783516621490096507281276365207586644402922775591411186619452847803571430779458588437776497843754842119290990527651218823897804381896897539923128452855700520867347709186372603432059913231717822449618805680343482772594205761862353515396177117170275604924796396180338356889044448568141895527778566385503798381868429772612412594595951053146780168658025195474029879162956699103145852529315320642492694070298864035357556919385894754426874639450808093007950410634009793349743088022801166140030097049309071725800167491221851122608931061838446923867086749094932091375435606936363586446140302043952040629837201812164523793493177136809936750220584278989169746844211631452082893199661227116984029549568250587723129668505492537586645350410028718076393559541246947071337822855871944809787874290480322289248405182225567055763794203322508514422534279543167834198719140306353765829267121633411502180373128055573044308401373355797983804966236393093993555120641421525551783292444610586420448438576243783621983043357040102021421928366053072037782836009710336345767191900393151137377279884439410241970581984828683788526512721265253214005564679418011580493944978902512209395633637367838548639715540130883980357656452369377951057151839575324547842898382285116807601126848308729629313119221715427717513634729412798287115592689424168230725264796637073726275752288543401193417002893903549881125170698657067557843375383820807169474549225538749870731350434304886323984141141738809282476047268691335512691983439613263923382691116501319261055884032670999444166848220365621539557910487225295592033626173375797920681955469714289283659235604429519818551339165205486950208142744595200844468744580127721163415985125275397377976381960351387533498391987137720257557233466623854826565784388689111958018541566634827457190873498425693706529070763749141825341020729651414495919427161429844202293640032519613723118490938174041710691379980022368052784504534055032428073096789169950795379288062537453612626429387055505623264841294070124420910693116326728310943776657965470054430612388486521644420018259589918740214581829061582527475334451279260071140245194136882024530579137924595213835531931907847639408573703893591329068918951401476513472078827831489543676401855291141980769188322715235914889395942287596083216277426668985828129702557646699900986718919961720279703632840499325928125854623070514229104147717126717331166682040540732647998590944572082053287884236810349574200363879859991061081925915287938085203780275606191303547145127949136724361199070745166960543269723957414893921513502810524953988364024477491202263175612033995094702454052956253393799495132402797230155558639084111105961083189090287344488837685612677101864880981875391648897884271968285643525809966394602731845067673051545048539359653087066263609440758004623787655039726547513128744576499681551627814212579700688873485728235413811197347042336819329442639438399257067357946568101206848539721996430590823238619870559788834552669861297346466376185854776135559480913634123609924618479850020995650464851162942757890097850204130408712736407076255159412222173142508518036147519972348024319780216863531739542725864786180785143802469937995328532672964183467508025291109128615598678882133044607349033758578351678144170042948617293162429083967768211530811778636566274541387300699499279167780228958746396612642891732333657050850998467782152716039792856306911339252355503721427550702354958185709854195393679891848198984924482489941002621540172020409706533524933353364687899682066804996979774798604889851927449533475677731167431366085632521155041448244945634380714949812064425977654609044011313976190853853229260623941928181665522456517637439263301666838664199376026892315026465725720676259723498257856272085011612270112185893165820161204042994261122635206435166185687030380718591692264261502037098968479984570055214902377789788324995763301297641836148748042405118785179084520877013600032731720991109874829577028543018830656491949867835972844234197421988295368152318971825731167924341909962971034312313082951001049939439816854765074128842640045378019317957094313640434133637277896762283117566915334076546525000911823430763304602513897110777136593888486865211663673842602033332612793278827081896526930463467463505183092170547368920482512438257430364331380022139859893360224511314323058188147036234181429628153949805481255995282753543516725639127617640489765559663501053409106610318744553935961041172394169170590689397361611415031644063428707746812710587711917036497365505437629738217334866525509300623616661741419133767294000697269984425690002537666512252416221742927832122519240732313979719518213598550143325736244261015477167279760141106718997571947938746899179255639776804783043478216327892093787129205553297169122027651714592706289673448954107258281842198249493335699948867613712624959001013870398620084326741843215252197140710773504587516975327315385735625934368741246285873466462556061140097821713094233131367211984417358546910087638062306223340047647578278992446862518717360714560432613291188228463547700460662619988932105743142238932449566977834530007461788949309674826316637347870204763991433181129367610200299825463999172756011702626377164735816068849073205626374180582579880565265168560457250481974130465278688461766966077296794544445373031201763573784673050295362944483602690750205992117769577789427490654866308447842527875232135349836208225792413414407790745296762647549989621641353152526980876578682278724389365991995680576604634675005190633988531571517142707316907870445681234136893931266141485019688540810600412413572784376820581432429818225617005563174154614432483493278197176603592803586373906372930184395401517062832469719304672891120995991720109000469624106988413531392971340043687080239472753919308969630935337636169575029348496626385865610209432823992570429779118863951179015434799393983486817213752888700425903990971936806539869971335188844551278287476808286412471124451897020865026659541809609236480457884586808920064853050628517731387181102048899577051972603374077167924786502528683633606429040907823122666247351775553335664330250769911401327094715267155886094445813868599981978362030896406862342863939403010468384277435994256396994316431170451962967892417738786688970674016017032705761345369373892772396874488166251572154268296451545862263380555989227742899647294398084157032787224246670614470479348240504679717363260596136269284653880437283615816440183630868118646700100700865609508895732405192210027087448750877995928957298307024946933696524693436622799152145718641728422567650504404871040507669523293555838772324460095413293441221426363742424036483805666228359269721407920519115432628975768689392121941877745751737960558554551544529476729294897151391185879710911508928659919383501907942722938258050195354481357612448750913636120008033752161842126723575429272575841039045501845596094740524325350466054740686577157137996595570129022565022308977228357678639223810601653357900345797800439968386960531810494780839122426134742344894223607083052765063423135187415395062076052770385374448857075802155368044531608391974577039961959211468302430005419361244061754481933505412796642697103316914280668781175476214559039879165005145023639550314098110521940033983693219481492425889267539715647578066327495576467301739097960734519176272433732947363325069500892364561389096750015550850655592405165905723944269520770454027636800036785018317256294659363432570950191253860309273565266792178577682571425455705767094440909285444224973220414810238234359255106351519311154125197847329636623950709922826314967567777450515826921882368566597642766969208622986308517186560802638945319450297409915681305705404397314086500515551669223926700903011868303640519570170925321250497039639167529686441045138741338588273121038042381099189702385269794248699162303295252151775137771499976286040503283510476656693798608862555664328945333200762431478073613742272739193095302582143469198537528915345262156259036566086547156260985354826449718148963981948895630400969568057402757685652844583572193425307826746062186527550176396302734547014414325189649114808324219537004528313660736702171215216557627405441687006480673910692854380305295815163449798447976548524650031034349563866846887102668916977406889289294504883116639766845265590848154819730001518827856839026716799649520807241373224192527411035022265170168702725784263171268110101135099982429601678013440835007082828475161115473554190351356650334401103983631557829760008977972776526388147272908253934775150169632611525873239194432068589342510882712581906115065901946552182094716552213992769915776364060180723488837738899801032186820085465179148190029885605628597144305689739861997593341402888498620529224394052237018143920932596736511310293274681841252931230790138856966643266287981059054472405715802740921903616171510637406558081954447603945713287788943410828474376306393134740749121949126846851208918055385276877842867637434410175173112300373261403717433600577791679392471703676359325521007198821096047214250422267486528693776610666181672790327116126311160268980229288973171311883671617070320715181957501049287102970537672858090886665989723744987110059746191276749307780110047106431477057428333348512824957343622406496015776395782140512709929104328791798789764501538209496688281857467851282420172068552463824892632795714103973309677493973295817748054156504356256956952869242080648440625831805834271304663625495033517937643340772686042111135035936121372164473384027030978677547853675933645687119433100522925522365502186304998903028214742733836837144212076611982994091787782240533507197165621752592932121984420871755344401745542932355034537747930374512323195025496638708241058466672771503956652567054517862683483426778504414166032110253958818335273773337662862789939533649932206319894983447466638907558559091059861368332705793721034775129821751724475226160790999003166071717875682557338973291989616846535222303761148618724877047466583586182431646745544946656028699599413263193204488299165282644154005940859448413654224550279734086020125827623867879379597820546938036801425939008943409735082400487793071665531139684364810779485787804452928496701919740457970062950196732592787271247790132816526614674933846068262771564611423475961349145672871882766277271148627712182940383857701143074276928855364112033683203135234259777072700701381652374266538859677932978842119438838415583439312207194101430337051123916510372795749296099291156761610397640413159124293195401440552754714769241462239262253100389610309684826922523672073885451454667035633790138867634416395654019687542075230866712738965350723304633789419536895213474902610108729030681275120632309266988830091289350036016735721074574741257085342791323548532215363728448693842872922392994553075205713825204104115981184418365139581332236606181518107487130128925647124923748840029497328367765591212718355963393699363369134521799627547182046824486204340879407087229996070111962401036952031606650527169852746405744183466832622893041779584929324139068540885003526008719783537276568917467638255836797571415977155182460341794433365743613294799540900952057709329931081573943446671690147660396326733018951039364839240360783203772284908929568162796740992791186032079246222562160147148716921819936793218139380800464531225422192484749720455030234586310217071803649864106618516066882579205689172381942443079004873575192788226966831154809194341666050190456326524668834996595451145261371433526350841523317860968555662673191302070521704620120734134598088179304238936143442222274574345989154768336927298213129632373848507287297479784537953634059362029124940755672650120948130688582785055869497257036167988349881651497068118916436129382733325601104720309836112366886093206186803316365284242702496740114957902058302481339908984702607748874804744799704084074731173614918214829241752829207552212784292212717275789759695855286942180943692512833124845820625743913397572725476171296178327114724635796911414582248237580785022296267028666019992972720598369892217955503353374783192195461128776594885462139901101061689316736407156665212163416168084201821482468338663586246107412380173739645274000963899436486852140913846251079165165127674087209534357491881724999107136454558892542631884791272179893514034966971896592889753269816117719789645198842094946197612327047884081193327628749120478827855006832037370834062514742422410386469860488106096710713915002188278026466792861922776435439035984284029367262148704968923566051206464766584201155690196027332163794883309791535099471468983839330987060113075264264367067162306477706816203479113517442141119859089580776687621840588104369274448694549189914392383222292292227112598828141531408955141523086800511416557848356735380730753149704515230883586227833544978915146221783582240553590645741704920880724353872060960505199323909519409677448240617666225217864929715348969665893480800712573759436124294134308868964931356360934141207939777251625665186389963117982559302350777539014224696125351743468283118811682057771483996434601738947164508599743619175970995714526676926313870392118292925493519419660870536645064537095423241707417332046946333576549454977232179665024867910181582273280991370174475038517100070837075791671908426282344181260706423719318007041425972144264202210413974651474066463099093580508995940732532593495073405237781448473652306081001951686648468975407675836179581035295205107095332116274763256319672788773060417996514031049425091797858093541022283581110693616901016555490828339826058052837855031825146192933277206459785847317837927117816053990608541544517271189751691084261089734092366606039366122178623047675494273315198233774328516822447723009419063430959679864260275275216542355206688618964329579944946808874735752300165834178421662875150289275797401671384798071592694028800534495321586952917247002921862836304711091204346635039608900264317569008544213327403757867679786024818094714259470018035921833078576868045390998869019583645206170496318988442042466826394434821590760135039172710777227372806900680129417136100038663512126372916893543538335993626873843298539581200115527229262941249006280714964575973909457335578553567099967954659572169815363785546040884959865777287455283236294110745986391615452539397138515230100873184513702063910367093453795693087719534272555109653892512144974464659259546204480951129825261572546072703626288516992656393293940448738332186085770550604330223762003458381311906603796151641440372818169486663879434941772882727977891090615740571445079515190667983939853630402801022674797993666630935399435939580218592449817019151283670269749471092289677353781316403711664485485132907352926840507906056353573075566423544641880617065013664201448814103585257720722896984604162987339485746005914208505938012707911524017607844439465865472190699060163090856952231967053747169732043100879276494786687625919108006590944477984736988356257309828027989740819090577054142401424802088799069405261802304200411806379378201621719432585986090827723207867579446718773284977843076590209805211391346025239838645955665753774997235640401362824124508418620188172062921491986115509253713711787751506621729312432623712492260187575939280806025015497223812022939184169549822382224369018502000689323206663829433254434492333770001440363097869284039391466864055443359599702847744744904924703037617998439001921239664918443880435340610411638981857428128059165821490229763889125105291421891732698618561983421042434053009816004084076615171114890871916781766326700599525142819499782047424222645182928177505033375221850589085419864948758308292647069084227033183876247005896409727216000708414465674556927655417353912582358220311926318391939528781795245878654835061219292018084229241128418355609598569549123197020336269754351310449714818961161233580890230352023456538732053738226638976449890773638534580170217999256383174721383292023970661256292621645627350454616824044043689355846678089157579684057427591634945333631873949151417632963889078889044692020394854714861619312223291317099580186437088334327908541702799890813052692945765362110856121191109422967269985129051040126670586937302373281099726473517735929936312045296273841433110419778653365207574111747525173246451183027428640016235041426311789246832290343287734288639013047433947917961228598112991480168693204040055286148854350561494129237997977455907816251978025454159235334777496035603893695108259756809992854652380090201286112470276740084843497164269372928108344705756234357941108172067744792003868751487480874961676090540101719484883351026186907979571969900573486103179515887620960677202501256689356470024238434896160198966204359620797496870843646069446704275619023817770317242148484220525913558911100904478822943411520901416430512670455316976824978098966524462852542426767905746415869353880164166482406849428753187871855707589275420634099628253638175178243220911737692410592278657305497003091488654650862811629951187673549263514383526927020192693151565412775972457086844366950419284417818569457402643205955958186135226266031338429162222899409978062550623303883697236221970277085109426607331053880140412257639735316613822951738617687026223764488449793368507789214589622740418748888450314770267743523886703659907001594990099224977643083597362231703404755999498741454445407327482434974198697166953849597885862217334915611370647039059544125587510687155633177725943943055823584902232355640659705029872541006664863723676708895741444504263612003291774627822566907637867540929422210601354677456366157765928080985475615339432555692985829662814417612857740921524252641044546077894345107985123822412344149123857975591856183277703703483048382394657669699983645319769052027179846899513642083876280775907302786024524700064408343226211648439507977641015904416409883759321437704252974803627349770412042871530647384649575187764963721975559660718524978890725913080348142495797278017773649435491488238305804431309861935318507405050939081781933907376330539085505638393849767140453519916254967247028031055808765158107731016845274858982380217627530285143074374529271773920239403298693471328256244253987913643146888607110804938937672419018106216389134607344032205539061712417202993385373859526400842395879603581117348232605238606430866322877449428742664959537119595046625881956670729018471970210146302615710454628297548695698322968508947386513822590919074667942107592174310210207407741900668723660922674626112613569522197390445445802684649352987273903239526394754749679485007075856248889934875275757108861315279889350482812903515114396571075327472797469243170545135903750460060361464441317306751808904819732804583501669718430384307854789397243403321613665116022587782881484620071393047622222230845419016133205950598429630219342789744730338362154477613958873358101787259690535917185253009758484195675249760438998141235922575266787771239798088306796720906143795725035604455632181820801542673835955322256387398750589879493119859301764325276357195124001642566644919037414961004597905501048077063482904155652645270639622982321654844809122901430934129940651488077765702055181455733033604178875478226895735270949449907129684993311544018626870159611635535389212183543408309708502084565268159061616891841996917170384122401268121201217428433468019839075695659479998845873754136805538722365145513646426111101756655460943337096607127591327416485790572102808842921187992580942992468299729709957976351818109123896537353718486178605736767794580862082104113733743345288239193015995667622404213696815027022414726459315211847673485696744169092970925562903687544771128537947489229971038885453249031947628017540259427273288549756164696656308620063768355080381995129982028377122131592465801300084138893069522942367741985395277311866320737534592659743231419645760987487681246249558668345299405140684416464119473054666118699889690118467102334717754412188301389298342481539250436940953390823939504525832215102909952830604061523192010409120982021865507673582152331460167554809323945292907334812733009280307331519520942806737074332599294988535480907604753395327914091448113786190433029435785748973085144969402823118260453629434780506225997017020122011593898965574188831429162757711123039728103615759024224252359720408897649684713151078014174268760949326161358455534909782280634502992831029387013772869399444451865716945057478345517829592755189960966842516594205235977406897871525781301130627410477118585079810567204640758985420527060740320484891462654836002910558626545928442004071420880714868037811948804597049179156470060497925162995374007795827865800516025702056537952884838220996350768730813603922870393518816317645981588735995971129204220129639061370610672615460760714645413006647646403349126427128000902846375058426069065279721424728062199340304800080290143521756529656090909250788844423824648904449168777554913703881929686314828750621842668927310977803506216277456302861272777695263641859992560231224291022995393128238957090043287737868365573125557246929775506535620052921052466352138474808560204183579452814487824988890943314355161799803940192925947615839144508945881817758916837099929167175936456336205148776911044376232989000400451908148467356354287713726214353801387961976261672902481138018638552759468868127351176999413735310032427910302922533829162742355405677176896698220021116590399014053111942134213313288993064156179508969612433478251918557260421111054707952824173847185756418566855887675479007875016216621163857595813373077238185109894190919402083000245466712259157000869080080426128428137589012799852661162581362387909957219714190322448614243241910759808473316026095412668838163094714757516292475800860910167887419324823195938088200162667974004111068707243439485746618112243057779736957419207490728223169534020017358312763863084516274240305424859542049611092966277694348108962169042818057182631753033257091494197985161495602394885351105857998306550222212678210565187888381441325199763629834467637757927577690883225917892402187307732105666941566946391452970232878581935303067411478038816580136138174350425390289480996657965826674425666361741733072490001756302702166312084397077947624005904380940338849252146744646932877560331260745571719552521644439329782940910846280872914525769139271242165358121020266560472734685406578075621969727410706336008738943797651321190367383746426840686657100730147318888323363623149151606483922857395552869738625185396795698820313436932207722246043104493101922792622041895500460686805579803918755797645913943276476432801986393691460582380494328990433718428862947608970164932216813558058563450148694626024163940325755130867004581586247377516947632547860784721677706443072551576119427834133356654663578032077121045403919284918537480416261775236984225754309805853346722190261288877720801901390564307543113626287409214421713867685050420813170969884494254013454147864411841245474940325256570491716378118029585809709628562096481378661731296441208988651566881567682297874047577858332588997478515490949158910885020568180866232535035679703065973460987210018489756405373879451724817772747051249166250518432289912261453564643970240480008104431392931093380135264379244506644119250962269461924782637168943514864057010264711927370889644494730980096646853768576482351556097303609035040114356585095705386797746937868063675516023098083890530535784966287991759704404865032001169673847225745600198210321282833893819228246059899271270736843525660321325452591971212252842088058205653765239277255921541896989993432305197673416308315870334546761943316968839901306630608679002285024576070905677474123908952278742346909511991455203253943352119989524678113500439224353727361927887242338174557784110104842291800523383175824961832755601560096456020917267435668296940116596861451554080170853474753110255054808897283188639312137806205316411011683345720687490494983611236029620687948101281893062628478821632161722116835338838626418919506692293135742290511267224187220677839079135981043516598598127131070667045244086377121571987089228229246665754735769374084752416053993300416929924209743106310793374841586037478151864728230132851348610780573980088426484315894194910878721594092276087809049074442331923838812908640383003004821933264111154000940375058988284495779916233724924566876306678805026918268573151697563697836715229613666231759180605080789207447806260119350015773914506222173022700615162150221926302952432431977383839923746732040589504125206052923263494912983033433506551092806054585927208592265490358737574443638101510883349032139825468380957743285457097981296714512941029890585269281570271445777693412317335734569610548846499293416055981843031931101864206051070956499015915091528177399909551040973445162007287374700100753200972825616333639120383892380768373081777822207036538663462916898040010198645543484595473244993537765327865079922125898597163668470744031838507445719941704946912925351942966843918541459828869085924403342129357419148382118682420405328865275593227873067802562990835687693591614746990633713612947346689554376611944518399306544195381895280480046869846831068693929637376294293960564438919742674342693168290969689978703303435897679053763531341263552867774222168609337383208713029664308512045911220132339406124000810733928725584425471307169148216872010582504229662508135506566957899918181515204860836842802712839361328042251640290317419629450853451840265303750327700278388787466368437676298082321688217130290085329069847089074560699777374421026710327115428001526182173563905555108015031676406590748034110725560735082940068436442615475800291804481629634733554462712597644559193551433654212086264043235958679722987113914063313543597762974787107312227292997054662539804042073053460288837164980157966594866314376561271471664320151174986993334814384257085327429648528004246140090340001604549857210076840119636928372219166158959426303904640920344116555995710894905691187537584337655834972609325799160384806097169769425596384146457320457983958942502056226902302162976432002262423103457758753620223858254356843156537009463490369265679015496058650720744502408399879405153888497007208863894945075993242796079603565997683497143436600474971445382803313868052906624909989794985805483974126418022272692945129268681409351202125029619506639270896013482907100008813511034049641609015901606939389671242231618922376190809971816205618525542721786218019342060001460770370322663357115314875022512641941320170827109389011187182413919248948612536667967080634256997456372283689752141008452912409302111774193463766589972532649100696859445396765509365867667566440268370582834249057987250477655710611550110119897838727461332802192821049962775881045785709353071344123151334542060487492131192891857584429520059953733315274888043535714504592795372777568916632286683304673715128848514550109968653577715975170673448111936510630194606285565985613029170139926220962656323240155241477578473383011176827776246040763304949239636659792600794992051796681521765659489263106852146107043593590127250477566213577349866578791920831521377759867588391041412205965549108011825286742424110910865660204442563137496903601755167108959274899301643339458005216548952273396451453162860053859025003926651499218584873514054977114433552242000948272534373623953234651408962650821396037094944810120672555556062799906675619857116709765303768148875476580157297033417481339528070686050234676493800380064157568292446061874454560443043526997677236053729639233617349811763301137555399621542930070303201708932845608072252397869991746861278362559338803420878748236338589101129263381205085081405551672607938627807221009705089313259906323657240386173655269940217066771677424842896987478644397666572910059067817059132228889136014216163202192581496626042033304922494824488847127571201877104522262262448458379202041294721078534041236497437188293623669914602467202953395725319712427805372124585161961473696722147656822549867970257828340095584661707219553952032353107641913968336146528835423089440636873392147062216900014422212351940963899631067941464629054594499935524133577725012033127959791849201831866536632955369922388235502586141221610949241416624037163300935591776281494994680562032289547407626838366688134478910014821574455107491786754538839802777769057230655481454077118272808500023657516118067364237022721594524416885460019477039219712232672537023310635797387291374363303979713389374439949344200397506489360395734214890793067384669559285002882536266774672926068645226853500105214837848457754041004534532957965675896938772543350558604121133118550219871953382684966315280641033759123675888302524172361308038328248228515402107624248800962300141675326123987723741464133214217521352842246936329146425350797937308547818752119309838932958550227945137578242801138772383902145349994314920839831316906626394842309232320941505067480303759456147511212976851904046214052583328465126108563969943178216763301770942367174326372350383846989863828106210064824103215356976798336257407664653377854749250485958257929491420884119786723617706840982023699888661978046700528834186094139967983885027019095779424485132910013701880217912064574000055425756335412261077816388467015433681540832887778347880865579211321593075340272291934346252492137042725012530303456307126664478840125835091441476896647806177411922404091752516430108848897936765962359652434690113768302198867000774088527772403013273794527342692095004654162113997877095938759973137874310357940154713542649658438660022485058388055736690347605011651689259113442193970357850840703276765737773844306310639924274854689580693898949310093823527035739247707741108956227510481792778718722917785961858932601043244112209620166578633670266006148650475284339324183538636942122417251846034570538339884878256461619835386879238284915360633260544653393538087007528040079591259234677254645655793310595801750676825700110062409763852030402901238742303475042018009343137232973330851080871703332781097037137140044933127899424144533924774349153336818834381797661538087554785143008350708035125842583501560548594589360483855844703373522833534351455006269557435193423939883554606110034099262953755583383474584995776655531779350813796063288182821802187233549398315554549474298066279906417397395668743605761049973521052769492807333281409616066505951011810770114216083416471999461102381959576099101896390269116378544177979754185330620747170079982362102815985528433153926670420122884318350501261236564279288273780999792081303926760092810513178332803053746089509897781261144556622647090930476687841907406542007331069826799534736684271038411138604806107980402245260963685553365861388846455094477766226963426038091654279869278449966778646405631890291499132756440765163642822969787792651467761520620181711987767683560988955310790595605576361879573670037553639342380182707004143788035836473625226381286350125604608941738785320716299727723075912946412658773058750148083026908293386708233860256281932234572450214791814573691265086174941573141722996407704478931095972299797286231972668266361000181051573479016273180145027724729155057188570171086251379181078031624563679872234235242953160654461844467639108789231176523744639114449261861956535084428631051264120151684912443723784315557930136529652066621220881862087982829379014910721966613833933649196894674333533334247079964640845852244069980567922861148852871891866967815504546365172703623549132103683338676016480276186778550675498717311690888141025172926803465933884656573545179562497769383324483601596885200110798859726022148345129000588398335580189045510682357941877365979035374073809149148928726067734802568429062017025011767663156462221401057267287739657937271304333717345446903687261391257439365810670412489254290319245731441865222255369785380708698841053900380236390170156152867661412241782419166780857942896421234908910246425136766322037779075395095605373017789696407598876376701905289462135842031565010063346944701600828009433776397238269541153930343712395898584811002001239597208614128882004122865470091301817143767739122057813262032224467125780436260924677421491439470338287344517869602535361682764884277606655773135578742051802512220660618600460515041376427149127202416979576379596513899194893137725722544736850518958025940587343012439607955589774050200519041324610370449486294230658244590200479144611138836009005009378242501518323380989232273916488446946520789859920004611361479969387552610395084318264591096293792783390216298540667450274934137092143840373819604609420053872686160362177407581858380475354207358456601926101687496003735417586339180330035713455131667333709076067444121850378400883224458583538910040335198325751126381917192994028595138919064127697826805583394643002837641149446133430580357602625968761703669821989099402798869362645776792983737157668202398474302335315758901886935651251336182704452879004530890392425944539444965358729072062354938070026560025687070396451174783134034653814181155249703758829702689682628903456597425215350150970283185553214507140994739156049447272264091071550442271122202218540457640882246541469272168444981846767782205252800969649366615606712175426795102122600560088224446009461169422804367926490785809518824930240874959447441246115932384462028842341658669096262300293108290367806009473368186165732268500819178105098067259419081580105785674848843948290629065746828708378044065355099590856201591221653298640148169348113348650263393602939939867785328367640548746356758738512987502363780434762479451927164713095891074667700097667114353157209242785607904222691134209264725256535634570973892548792208685297219857777098327827066736689263929286397286561084386846042106579865412938358436958846162624996811053820726047454090592296410940387178559323958103985097901147491682066608473526745240380367702312410065515828825448517136835729032241378091962546102472095719390251308120956341292907936695334111380412356493505106307808062273587580517880844714330468711315238307305982053485809698157237392338929238753631512398753469671167577979576139662467315103165480979651545709282826490763396431341849531070239556654197527879304711055290516768774243884044641790790238751773937603645339644556374197726512062440081789158272453965572793404835740051406908355960592093162347770996655485366533716419447574278370320997649245121376920928700749874958014029873245471157772228573423869590741423350687229029657547830140035814589246397999817318673744564431544832218280930763209434722936620273757031455466759836424581313506128606680719664395355604178332606514121763411081962334872389089680806935281218611169916611436542288592306632722196840908729966345294546888642637118564713249126900756918103858178775958273292945295389606898923653650699830504741309687882964038305762276401658144617016382391144031756143017431066182698239953082764309272425985784956617276383106615103613863926389595266111789578722704180415694001914022634400376398554359553511271894393162970558833057184266379816245582728274725931665075405915432786029570702116075890428368397008835154537673764334130333622295488215421842737225975702227636672622270712775356031357595473043286038244409681095506344859967925629584417504268365617691356558911961304572766877860300829243724085561447071950926771022197762103590625101721085379339348127424634900262277416424982170725749049871838756590936272292270044752837715842640759976240418089686982437808319166574195686168170239853283860874335768553323172161851345218054197962439064693107755762993571802626678334948111267079090948380104798024915186825934251944705352321874531719320785390522141733378829340206165133629099437013134857784052557881381910502510515166435083100051079137409581345243806718015506094457180119714020014792825663905290478918439073094150423971952687482042760202801875874308391805710898467593164263907930895146295263060031315272123821714832279268674968385049827308612481182595655402819965972392483725240612994039664521774198055734595979007876208476705009046436567261306881619330358682018720778519344708452184977177498721664664329272784357124303641535973235360921274757150091626807247418636378534766264431215300980568307601593270673877008194505235767952321836177798354076912752784395100537790276481070655479872049346109770523749627902099806556157331417725025359668693656918854626139222600411568938611880466880822719011389874225086686858270177289047264382200299261222480163253783186319253525250039090011254644244171810236042215176127764409955045652571458078023467564366447742873358505155514722441907257709658787412330843190197418482027675072376599056489235667725696848367869067369403729776673549241973982460518645019146462228750142845659760434758807780665672538517394699581463662320790655248659004773437889316273456061168949674549937303923028239648500276470724381917321740970755100388905318103589806444199920261169016309326886299132192315732464248791695124148950203222527496307267026740912445125277964044085566325055098312599341403429736905894857522389900335271782249111739279458418597661168739938163998815109952513412632380159986035767154092698002600142816481135832413474766985427094227368018692977771506137459179080159475663629823725081289122156128177277835791075437540635683887269737022847072620602444439902318920137805922712910065819544131840940052400811874921733464805212211292631774775694461974435213543503521680522722838710497059973984522437901215445367168964825987407835416364602438501135843561503936603242077685705928937095151863153782636029281653165558999888084651418071361147600259265680669021159427842701170434251333402909323358189078304872192503036390930856035335555909416234336742018219506584105964655451099235749293998166755858830824916785530827922810463984427325580896011911798078586636015056083414297658264061122275088579457859174046089862516130125162557448841278573817200679498087870582476333943785377315204965009329905714556260091002782202325933751254062132250575283192951980023980300217273837742514517162906548900766085606744118008470554172440198977717757503734907333439552464622953902494303945256394474006669376709196658262716022191760672118793543747342099612249447676815914703899340462895059698300574248370205938209099847013686745523319970136211341481120160067232597801517574442792354780872038173003932275314206451027924319981751624610264863531436437363663695174040493517204286271060778486044502238003585459792086886612344222627376760784091492806294477550296200299286619962113989746498561429766622081641701355920073179353268844572796093823266224464664948699381463854567036913345374107572679349973666058141521503738485041460837661497214796286922598445702254774054654157327674643952114223393128808071287549206715020840189377391900236323681976766302634165924076095473503352299834578146705833198554250247651490305088920983813828124209600249031581778404563404181609509331426485978275493110146654887520433561780856700285457882103317503304191983959649111273088515037841108110014610192569539166043801343360027598045190990111555071629567819843468697690343771697130363454757778952670012385000995533436191512150197940078002467140303727637734418585241648472635976293485063886131425480050666831872807658982920508313394711290127065274001421287928827738088954578798752417940957079258937888122213119713943918736488767061571933001118190773659098164673967951372577935677426120724509146877520921568867382297551037383936668675450284926518359927337679690719325885551967884497329488866061488410164674388460516671670021762940313716669074452529471760859254851804003292942429425564309926812271916327092647352217289055117213409452164249982125240663099725257040601698330406585722879203093866120784231428866142805852825476212072396881983450110419748635535870814012303292578590930302358696160442406436863776879389324069204956732398397786979215101058663609959276554371124194170736040639630472575958073422721516220797788145214052925241034490503087598359380660867331827970358720876538856633891450787879531437241864439726637933478602598998987744098559968610229512388467429179604466968813632544886020750264032954758392406303614811554186756440139989133556852889709025380055487863764279191749450047014850022564481302182714946528668713651517887579372426167268405113613151053978709140197349002401103057256616038467553113603797821758692031367746507385899016073331000804909587393665150326580039594600505422393051841430210269881595528437302987494537768720857085476599722087846887475061697854999726044835853510553444235301590536222868638764741629614151404726190434524719996730950536359299789475246087533645404908423884926412516875164083752327272952270322802991236108555813807542075645735303234603426809977098908484165311110725394633359141503633578392214046706532207158573446459869996852933676999107697127268207370984498287644400872198351694201051423356512480697520430429939900997817892868871359291323988429358186012328053873645656564334953920457753155936151840874992954605909265680269719879866892198243961141188539443650986593250983302579556101780518032435947187685286902030072658228021818274588332293698669352610871471069587334344250989445682316917501154738638175424695656924960654389030682994818313875382093928860549212107653011421927863527873581450213834148026704658292428827468393785259643838964953595513395410395434146273794533787853185320888495698854672068439222005488708758738802753041747779960542960490850171177530378586617484613939643835035482951362866900788636389317043012900173617105581275649378833337505113888601736395053210924897289573996749819682659115574607634556829947208950625932571005806754718248361719265497480647919042137750364489549193597637542800570708938455367619597390045601035807931727451295541963086472654806164161751027167510282229452726552668402895314144991803833890650721978304347936954151645582886525542301444244643675081762159049051634569508468301003748672133397959731835509173768964503542989313401940865990465849739081076126739540939518372669759475270598826207732080239896327519917588338711855066671744411854881093770484478136052263582736751663431418670770465714005803079540990061131850409074891976136669685427547130126108279133861929832109161536170584644888344904952809651969941167965594170683048341775613532555032654128403479435564452479291737239468081269312788727913674559810887130423647559930142931336774196109779878788929673308049032059904239904856133262775911009410685118504159035530924485258179765830454133102900734886256858430160213148768262259943448249018817809177662970201316422670145200132893029001607851310379491535669283917520028352476185090670177552721586581978437157490700704150962727937811280466438132268349193169352245960075260166845484350670875840980233361559311531949069967437139885423594630367981469074016936840245252284793370629674096513827954631505745134070331287133158569245444149998400815619434971959277784338158917731784899045684544317183404433207251134030052421141451238228542792214393350113124532945445157863148009618382261359842601232470427547552641775573956242938019440044007259045398309832492854913250393328559494860499670927992372176119646903843619975079605122672796730598484890510271199506532148280735341302372873096679342203282313540520593822058844861694248224224884205733981155167194018288441322879960873001714026449611751964504307495495106823174678247643690053317902376368296066514703151840429280983171332687948921518536537412769797395651074391888874696368936557454438646443741703254361315263733829192504260379917197054659874315522265659906019118455806473348269884847405963347590728512331071529106774733006205545929289861982318757098070206425595799549424202756236234239504801215660149765236243212877459842034627861145870883231135139759309017421590797245343463148615030686818356497141286425048488709312456322008294758528371811574932261118571338703900737149098933058174878663933117033266281880660231036275161663922124066553586620236246088759896822338481728908087253289271733196541337336256930051535754327892335436987568907091385223743174125142779242861891097797068762676323576580405812617928112209061394900669904405330332077567623743695742042166352805425958168784666266008492777162297168927465329294019725481512239347454995796608346206681171819496722679229325608724976412405369531321489312458254232570834033859223233874619897173146511440504555105454855289158442090286744713215850630477820255646935346075728613371404263277397555430052889789381545734248907003613212458440177373927887960507816206538205870756857753774242341066436253293401500105279364310800586986306271514712027310591540277472147803847853532080435795706238364168326956209784750722943786108632433645842268241310777505986361381711788803313966116096603365382099609682584738578761098211075830985912298317197990994888049390099017066005400670489073259798321876448483381188614536402822815920867944505576955963087509061409640046419573663510689017635027939493882556548469108916480429889567581657194899771272251764728935670243649765262125989273084404301347922298264368954829140391217460518382614800425382051340899014934233007473868744854371000826804857308418622345008582250882407322873264514318440805881600154450382758766219242922600392955373151229812479425710349864594131976631247919249489866763625589893711330501349405120251040903239028532218382193447381001194765847185918023927802448500750627904641178842024267398292619261312791894706062136039018624543919467321410320944624143698739649581029948616185656108096895448652360099592175581892804223650809097545226565256506327831991313495362901529847668851267059672115509724506694677175611656994683319449401211275480381015832004623995516980505315889432178907781326599027687369799682635905096925459252762228289964015644274546173436675412572310113021426819840082638575920564118868855791476554969322123212272177381734265304452304690028051384827652808207542626009146451737722937107094886365669250587955287696115304401820097815994171223831320718616505987224259425201760820782314159109565893883907084014674608564160427467840589747947118737208640734533783737651281308864026600650015800603657055136844217348628728930901016790164956653727169659749157919336849321507584944133234649246608194685216831980956467357159116984311044841123369634267110657487295625557547055620086766659019144370064028307425990853582928289861987445306655449944623710438391783198596084939247222777582761522488235213624572429782310997759895576533581444370854994561152370101845841860257644011667845477083518636479612435292255830373518303238361276443767288082122466499195644115567566876041392417717333345713686740236108962107622567576348667953081193000460460410446235105905631997501018148809288392979687302108880380409697069461578404839897326585282052054571871990583645753994116102707862095492110075668226379881062749647799218186457814938666431876902827219788915019645029106881411338308119603429456447069597505800957318651276362281200439138197246031654452725846326377634570781603362980629705169296297811640587047760427966573699519659743914631060908827871632895513808921187032783375910369385940944664998228606920977113586949726450338493807090793279439146446973305692506879239154485811730804175563821701670593252091399388196004982974323569483510376811137150924315875734413893592894338130566664875032242783723213675184416293944749674543040497784424605607924224658311663685915034761160794750359194631001692355742887781622414524888367970973863469811866224365290263414715513180145024212855889664223484595030409130400581839700615793222407953754876709768374175414251614762932788903479930874512012777579190868618435253440896454194088367932367295005571426826379694496537649653810301348268574949867735540038462356267086840155930474287853131292206547759401575982466296055288583059714290407803040179589851864228485781438950461587654806796246804464630280504758465583431602535601441721786402731121260086764441171324320949661461779271324124516887004069481072326488474177871956303609408663902027136642218536734290689248549963320675420740918159762021186862335345379751762099728561729603662941810252454130365695232121442825198308525612186474195664056589256348297463992706014443155114477609392848069987000531842587905818679659837060957661748492427816422364068146940055428237778305943274063683774964193769818792433872532279057984146374536015406601241612317925758939698870084759608839272128918489878469921148198773950351257457125626866932704561068569228200757393718142680535391402733171518243779244669349234245575431437149260479813313669615087213875408396000091963200259631040080212570034872088287349213493910217180838939674683364275216300985283438777144567644210822507314585799845375010574309948568247835813279746085077017998618833084539804698066643729389402545988700522452733651162747061874561947528603419863557502154996046750883022812659529509852422226692014509951148886499260870401659145363465878003850298795438189812237578564140984974630612490226573525575196628830574545856873134153223575114965009479418121573098290163969746140197043598254760606353614607764359453804045737164380648382511890826847926660092496991986712890412078316646997656676921955347523016154076733780292179401424764951653055253867499380025451261464844675921440847770189976506922732016204162580495944339912268086015115193463740274280985311008441609662455568298231179608665088039145720512863170082083686096095051337899601273999137010031555095503053996871172325810901239991266814473605465427950898977675681400491515705553774677444836842760139423002310545774568657993912050728890808031677882819889609270484115356805895390533716693477115849123897000040582988033227264433027786845816995192321850775299164450566896087054416158883882020611817511176489226987580609877390760330371145883672045071294703048725553335872696972833100876602721687376300472851842146107991190597341092787098284089195737186806648593528641004045311891101055975341923452406222389467543365777645200914572536869318629853050151321813105503348991750307411549160963169134331815870138735521746885836483767182491746258329726151563631422196994786645233910305849433658245658324139208910669727781262300327355746067278670104454270054611374385255647835035601042923041248204376759426463383858511697944405445505167851771472721571338169434467110731078526351015091382787939589902445421578699189391424502965138491775670122704428969364149069119212274748724410445893020413724118249236275758560333621258998386300045438939886350398973066627526163515036126795009745125619538129028742680767562231443265673063351961513504004069894413478079478837554705987668670682694874973532131454386048254551165305416314899665445210442919084516126159844678704753641499371408736700367764452405144121198047798279383540658315850561126512517298761041654693134008921743178498800025860564331865323920024113381748253669413223341039575825402349239548731224621358450636908960328676605918185236631963618575932772839727181884311018903931326694908719212194886097710233377162315419680607180552914733445609573828091076496489120127813997023879889036028941579621707284935604757985393603709596232814519005769937158519862054445627154386566996649160127511745926741503572226040102552507536362058143885565335188144174757389776529945494366499085339949402738154861128587259804571587959710445468622947906749873019035524743868734579515394645539416843189019634196044181667858820729713751009681268738601989952330127451686786537980156343558327889285172739472156729385242633987960269176462939173355638667622375965514602780862444298702833219085051672454777792017000315280671885196216160110997643189859433622511157549097786596644097848541165975327443243425637482668688808677670019542725436791135589999282559270191314083352315782719677261517226734279893318991580267637061127309802049828546854398126102224286819888815427210733858993503738049230440674371853276927271016382757002049943519596464822045289192209082575312888507451165899785586485771303534404000359302336801155713803138358355542236918876307803470281159939174609545735893324955427065056439126491267904834681235224050023508307505760743316616233227058158885299126255331496731165313424577298685700361124695129404799677212987916511155047545495746979714433623176452831892990579604494559847187656838526221100962052169143861483868910330692138236978856585816059614937180049539435544968348118527738299245717388743861734337788720927193980171103456035286978116635850331977013492590029526818465268741246475130613844954922447514707232706194488321921106380856294328770600443609336754949169787657612349362421354749972128848597395822429884262041278406492305165186061627523397751473435912348900226181675768006543882602760532144071233780060856635402590227245806722022432744215107878988942180881363614888688509869143443748777968356376783042762472118954069866108100203934072054806630501082247415016226285327311277338703449895573787735930904619309995846513982911566455165743538193751048144762083755313501641083781589264448090626739275535758920237822073793440539127436962323872455344387512674013715038460607072386602809585436759870068898991523737542676457957072490004504158749655764616170238647316105228008242971203785451990043364878882880281508428126981054818346058041358448241908909384755415715570161328644940064638121399947361745594542279061797664418533443339108517548012495450633278218481302448812061413479536016279680722398050807361082134785053556550738500411979496029801761737243016554294613241941578341794118789641323261197332467614971947352629973185599328244784583606406482494839296502123320332663317313487852814339157725985653992291143450754162598825714238392778432541934066722656448188563337538223816921409385567422259272521170822911142264837983693493813560852653014137358942264945283445619444511233042986540112703157496612315099039992742298705034382115400456857127381655232262146886294389224778076850429318969784784866469098085541513961374837876773564974435172822235836628184334590141954564780188081008823238076632615512512236616921553323164877854811418069267682664524461024948640043170842654230740045497217843872204922169460784246594278662946174207514833272169889942816800339898767951700292463848107869997647253620661119538536369416098047276764279251213856702066918378589075737575743769908656497791042640430164567630348354028384688458919230292003314760914241240541320372701844706702590333154387182924958641139834319893333690492291154224504950808867239099941547989889835921929154307950602280091313642059493281675031220857357082793344500438659721934619634407513305164928601984440687332439937363068857369014880446782273517956160889907717548527803074782309724574814795558907125504531865563120603895752292491299165561343945193965859996920601112415767305138235431956051460153181192507792065613892759548458784647763760156564983804496713127640078086507307172730680729873805035189390119511108068543282542177910166793476970655802866052086940894616096335505130414004644617342364661783492045313854405216552247185044083723843373157231143798976722954653117976465291320197401653953614982642972390812738808161323152577517588952275832007862119105999645230154575192105502239310399546263341512079893940160803744501318008460416311909085405071084324553299468214984089748793795412642415285692763489879311531369426453347267219747949101275795864999568674667362097922352171512925611522307080242828316359394698795461319234599059632787970040132292231866190764657714079671329724549602331926717637243666166459503564653861960295623140656781364408316774817663333148155392459010490509656009250757634357542763133805146426333018030950291320016830401595533657769548968260602201689472742016969354309996583863864706119059273017407703500254320048226286024775710484074872881506083743971483406105005971093784169501910307222754365097204872595223438225878062800323656268392642852248384278466985933518254567439070918338127831375352191526188713485804463507766859256532438535995981889237659113870081751754035836066262324251456989683446569433189961956657431491600372921810905591111549098384231868637902626941048917933447172898605558236282990461416093841271364310134537278039453331530250825569939808932438933116225692598547645364384445616466522717047761000741236002637178528961920541884656326655059065805885068944954837835188813414641551805444837936239462361538009739048923104012777844629741248964112132730918314712592465368098078131161460265673621132807489969557261990834239092156427784869335676340615787842849283119394365844470477864816985783678191103710542978073941108856503003893925628654597316512650698022938538388928282527345974777634231774711808781608354013151511042135869859384171182624271583274309922183018340417125769796293111143567551250274677698136123029441793651368222913804647120582774083688094348386692400539020931368297115874039191974439940033199745058918117762261660512515674121250856681707458259298559539709890357037115719222870593915191043954913865685194245439839534343815502557505225162450399424401918302294933237762979475867392328850200768968654488536985272465097632470343792906536716896347948605535151359799796518189099672261339087125270238850080116309651780552623455250822853533312752946897246570883230160709199388312719445217337727459697088076462304761774580311548817085849029143468847429505469338016641684170778558241113559626762534279120127273646534654149374183488524811105547497300896991718016113930517535811137828736640200731527019959952644822505172394861940915544254652323477494478895299481748498044748422058152211496470537011246251560617088862470765205672671776538962762377256337551803546994061085370314371303726283572938586393243130888016113063770040584791645834590262554712530674198370177290036243260931248626023451163248560603974798469515407865617541585486090801821871633280370633516996775525430654714310130384617423039171986819579734269871076177860910393498807099890763260908747505300235588380671028783105411384858897012006878049135790615402469578396604959790540167249880043088108698891300893401013618401464544824022933396243555182869992700021944922908194914533412181315918770882446368433799552327922543645463911527431515125649560613596638041044683723904107391356804595112438265585354932987436349583039637791014394268879591085564364732752112985027692506036183420520072178600217671749834263729687566515281594639383194075853151703102839668928289947188759052764016101377928909060910722282397772088153414211529709423217859973155530423272989948738050581251062539508746251849001136865269399173064976149960815252700811414165655811652750680372415672043303189948143696823722807517096515199793132685629242615086950177778452375365069610721879920073472983770748679663439931366800921149202082068943325171803874965602292895191038258596444277501066978570395574398388573584686893267207621708068120462063147796234674509109644666991184637110879634473581737552335579251625605710947672114141124385126516815002214478932311287988416140188221726508885183348876705948167984652564696181579354141276233017095093170392290239685536045874008348293234541574980297504995422388920578885283450717619060117583165351267467762760371873936282450213908325715195612624341508402628078315118060123531535092201898600891600581097702457708888838670298560525717690847064428647164706782578414605699169589225918810276705648013759227755420842369241170005464436033896001392251614503766457616559123303961473500682496183867910860382338115056357682497566478567229455881185027830364075983350919654435649504532124255421132209875919821909612466547673973002901848143227714517667623540808686323786252250216831045758593401057753589845577186072976455517120760691361439324591974401238214170006585310457222998270124914888080975761836149415046216313496164257989528400559963816641813892692482781673881532186952827402487332706609240166757189807332138347430365958846252085210203454896913847953297872818685837715210176448178024104435744122106104604024639360597888440844988709648609936844891772597008011070127411510363069585536221586042529821951995627078276423575597292530289052993291205784131876687650650911784143062174350188228047645201599865794134676329364039052688266292875436434893507639610247857310858988555595850129768286021836453597496396185612472607233264486542393673979792292102651992146633389065964611088117801783064445685650746318272496813211308990725941064417281384640937739844195430592745171141591173968585954802907739770004794345513776733492207018236266816740412198638581458552474116114187195070901696394366817783160014183313603536950354771519321950191188805756147423661068599095389813775802574516246195617626754235937121111725383900189840453999924019344529432223389034176765467951707429630040545260593253780382417615190984084899582880742657111882183832400489414237696702232036094322110173163673876719817270218140213350275044279000270144638739143798589761442557374983099770285572432951759330185348208634385257366625647518258760262546287565329561840991555390132583992413001090977490146909355186257714722410892438467735757005255205306057025045322364389721590555396214379888383222725012190803625541623209894271244565066294748743524696497405909729520872050168557463922933493659754301318352403802447236856901594784448933984555916144446540299524701004642183692480839543425621019248083504921880979348253248467196922975333415945865318975235801686607842178907649258527250475095814838348974382799910404799708388422062499049823066022069447297831246171461590460238188942524931111582383373477300978805626185795119913070801003891531350669131696751487503351670224313005498122453417639118531888925356746761367992390734921098497863545730589379403238065060611218314040868061651378723240703026971492081346881579435951804312379614584068277390813320220424634189683603332067284645298654987235175765502808136978217226350985988345630872406653636209352939996553981073666144089250933277997922650827484711158793907907610548408140572625367981061789058461664535076542282320377258081910221851361949671755802253444805626171664336985555274734783385728791462544855751498081826128301109245886503746042697309708257953048352690082844106121791175936839020571212041053298644246564328150324167549440934211807462444191148485925328670317046758666889556733503729116430680001290366685510302896834388417864668316449816933075486513945274640604384983920402837826245990748831702274482188195044651157784561685626191060105989725793963223495417658641173250254071797540927564917231501264273315809504420167702574795154644091941321699467936957132002137290910150458281768948222073951627366141242590720916123836432087739168972590580811780222684081964311136664112431804118258291362288051447872487833905198654587179256769822569638641484835956863711653753117758863579974300927690744861096885795138260511967286095480052444161509224219096692656162202548899633959239399028538045636938663275369175959755167215249724278148925090508815382386126732821076190963157624800836317107468317818309211246478035777762814317874384020142789945466193353333341415534840991695448366213268910795255714429577026451729844946818279084054101636738833869027602820715958188348323831083581074163661724719892739261215887394695877635571174348997625931197452927546141633083023040418095759918543998762443604174238279347259014016456269611664966286803452343189082658310315443305904434615684244092852092194791443201489521456664802955832246636604421987272490768957862849308375079394283534411050481000576436679841849696152666283523670699484530860915767556748754593743302554100059353402790372729750447794837992186976676663874040865745066921410886799010614994866306182813670891879799990083052720322752344290230960722712907094538179819434444842513206300517369898112698418151547439094094138275722634507694149948561056781703873395192521318179178326658024342464432438778459448900951838643968002257560903367562325029035589314234607946940645718835945714095255436707222361446648403784786049312163185200606906098991367809243942052885769184309838789912586465253315044552310399572438670577125132950606380977420365754517024115123684182997525296305991917828811144996018756116200960947406704631925034872993333781603707866829501022522319722873142684409712698990468702489424468722871565722277468044517385934104655322296967459039746523695383197112245219415042769823876962473122617701605852211324208638770255770020070915727615077886934355234239325233676477052601051852034870721953042695806758861977181284131863596484118816404406434703287745711200404543968673458100750061629009343424336703349432108036208681252727112114540828563506076728097769710190497009735086696269824928165277350916090664602970041445761204442338498314736194248864886750945930163739424611328062866745542212685765695678074421725903624130587384393453994152085327694794104020261128620245646600747638157676729556212183180121877519966838808967526364844688389357713644355903496273186630287193803556414816056381234412516712491475758164547276432710772062958972093552417537516062421956207133695098079851685130899818924797002577287168864000459506920283232146499556177365248616545619441479479470042144176095943033173175842302386620430799009423674829329840983550552773767221186003841884604678322235148378292810139824456350504864869267190267772078125861929435648877802394294392783812524027818336987504090951398004905168501208172765443200254351289796751741250656349780281211253348122457590289272690546474725241375644793688832257250317332055212328252236648157709090667453775539898943013251622090209541626944400824233703227078139004735520979837657001627442600217743400202758245970745610115327453213901205015212846114496198882192672807544528756402918006675142276899190442491801696534045719356508344574800784224070683201375396002184236549189101652340184967899941098979128060538693254216060684633502103870258791055936088415792089653876532071500360237009859247062034368456266949889070003292500359065152690714987312281488487609264487143600065678923434094556960586719098730751515530185236231066358191910941254258548333104755761969187793521247010381554032404655367905516656693449128554846013111918276487611854698061767967632159443177060454872539927807509403758371650986950603628896768206745846314382839686446887852963586774558032339122290492915609141099401138241092007036849954470424741517212971685770966960895622432828474308341246378007538688997719504548886881282041788411267392686489500181612159881550924203923977537888702706774245770586657896764744735664978326158059033065084938475802720933908889492587165415019751675932937205797036963616442120662581261741979861329255467999558940410490689317046306967155275707524405093699902154392215640428091045150521794053234806048254584354117240915374902269045008516088871219227993045777272617653602507082034486383475372797722756584335869731458937585620693362366910753735601830796602923198022106547040389891819512142812671624722483487552576986069519607910688081284926680309299288797935290450397005381770571136700768426119385884106728851559526148833837984007181248963720587514892646709373888174090083285671485960843470531743346572281861385888784884623264596751225088561358959835825894296756669722529044698914763143006853043409227776950171970991345444525783208252200689776208934369683241518851122308100640642599045423808003379752860155324781384535109093748604963898573939512964553214408461820198275865358820358740438604545756306404044509774117562804768428901608266231063519445328963331486815797197763938059907760620923913355614624526747389951196420728320612360727103114279990407812623999637849908078363359924605036956792059213313497577393068226584586588791759298792363209619368447937052421111930183926369699258911028308929740922937048171905416612100309453851544942827163104897342699694810035136088215178703820922068885852748373049443345981063254951167104871601105368489407070674126078375306853962433369871053097041286996894313979433675181543626789220963999737775509828183476569797660821367610743876904144853916429558191295774087697826061864293452283129202654346085060630938529999783268063803745711101105174963684595647873668366930395632754230290770926905245833519955498348297343186299369267656882463864240284691338549702487562960082034972087663006311736846605969056290208655353518332200757674503066458181724624945445544256812468879935390402862236334431667157322993669805074225632639140492382316435543356382773219458206497196727368001428324516129150141282527284528448315459477144037711700859908044937518804289053416584025675645360357976289962418512021263129004319035297223884061283833567647854975701412530439181096321087989269430661187490792764517968435795323244010227037048812256799217988618903177484082507971311519200201174291807197501897293102217851899750361391400593564194981601584746960776020222737876340606827112879266452606909660277304253932508278371412807083311946103591761313779300783763072764991021617784125409063300090247534449097196736998229806150602822031654782805026642800074029489156355844955904004485101644083056291086571121923925045069677745608102410760678922879446642770149988487229272878013475818470104787988561549038207218006985240082502075452520238129192532376329442954838875792801003698017149331685457712954462323274021912347884730536766438130670825565310063245557879001259698685258621755019742383167309440275696445158150510921006782392398767034620982502293580530295152672273165102608213517475014455807904181186836597747456069027519016071336429182441278195944348441043034513836659448161545143558107787851297786281749856949085337166329868835778440783229348530653280555932582577246342816912061878140336787725576079462064503282343774217947528673707984407033844251660754450058350047304175793403523046215257846137838868483051666488384849447576559144147448535291770679203342843582894520849942490216533021143517465401549098773427300294058341431896570626273222226155699738826619520165086538433921997973682791358846356342824293530757361052255879363333999542089677828335196383980193346785367465501373986820561233658132528800482011162207772963136249148113059880851502990461386037427921360128944247523545369133339574885952278150506640810871932271954019860087124293602785526021356577984902585619798660761101386441299715372942012566509398441954811936760876343343140825290114455586132008226803925823748833456787255198438701265624438087712681682824811716825356532221489234957846610057090877013146792124104393383287121972338246865514352667926323665084810212331277241566025630790483548520598281007389864657716654012028699616717321870611963060034986387274065020452011160649622936921210802648083478064541960416126889553103403148256974051162667862359161511680366841199338260134409708860683251645190827647844241681897974365668811682301788460325845325632925746740006829494733396236008307059835900675018123068126472571275721303690091717984013128181473593594572866029015405003869602825172222620136835238763869006137987391001123916340613595460838348910056577505248698754077215782175376611226833519833710747599076381183708552083700594114122980011611251752751385900610191933563709511846138921930396708316306430917586533208298977563977170361781685165936296055203383833674418847997645791578854644149947181093163957353296442331487073127781806304387958508334277682617921954890932301398222378719722847432518823281861152393926943413080513556625359498350818447332997113920960640041897646132034833484267551211846885286916534302934772445211911019714688676513358267026242057593005686598202623707848363365110735566146523370819505826829466271130442050614179750423097982933365377936667195761644876312791713236108231623856313845173141907169967651286625045403310474712410621514486373738391043640676114393025477527437992154896388488328027146289376673217429743548775945925678884102465796303234193829540036546874031396677393503978399339279258413178910086049488210617096966258002200361770726905542850070623885491622296965905096598374164455269233986473476990559903858228610424804310817643124779391360925892349962717978029240860629067220982936387823334015897616703856316076944284145897332802207310506939409955109576771026172212544634322308990009821472010231425099023434932715011833751355149263424266216049270259826867579005147192866477733985452601638348848580403924160872227076824550544980955791413028870088601721565210078420646231524328772020071648398021865682925498911851927617965001654946185478084527811054728841872368354394856669514496835367448036896912748001053177529964521829035447384191975656147931325544202671838589744840570917310459722151453481462794293967202882405361413398856439362808405655087996332267925654324592086575728004049881921607747518016224002587753147178181274141632395783118909992181126674656635123039681530438594073279259969539253601007966819956732020066108601440660240826810999890168528951067106954303759754911542391759061629224619317701432637417739732158600703142844202774222839117829693771984154825403961321649171091221144818009738217656938854171803613323028204865918800257813678036356373157567897886931874923753644472723616191105754859787237076224923644164715775651045803506703505390462399933950520833914042484282333835841266498834916628758969404574296253285603460917879741064442698614316602094293240068361685028774543116659873443834136583444824896028144675687786004718423379367097415148884207888455410486140265983485160672673024362078202052194269913578834452906194160689878792052040641340738882478202349924662278791888627928666648567566587955697615532367041185169158664074094841691678154743895435402840147184800060460911096158392563302421964614407470316333607775257072039208110778664043856783624699108383169230462020881913327567878236171799237453147174771737031577034432211132559187897486940086227212157976410152182640752240839118646284971228458956795736391967283082710168773777289303572598860903643099906790878393388409943938583661424618952778507273566032955415968005471073729432818461562557036339970176670214448348859000542257795404235151637174093179320836512447278703294234079136709930294195881310682509942444384484346224560758033490663818340425145267515820753539126903674547895701237315301729610856206104063035569206551302357506966467290899322810357386546858990587021856500263038878608803262025618802377992462378201016137092063536286675305070314187416642602864118703455814020860664397657283328212100715352903942462833714327053476037483805503951362270169837327248603082294462177353890481746224623089083407456315899528050308999014723115992524784482956740060982498273984789066868421678290994197288767126614986296483517633805411942043828064978882530236677038365365242965779513192316436627028349503817027761178474480269561899402646269070040392567931355601886810878089120807122044727873403002662439629008485331150717611845828097296127827430733969303290842050905513703224748715056571616823669926279447935595951070387967539966646134202015604418538413170378858891032676197893035538818036549597307798113462394207803515644113060436794174427671161360222622779539183410855361316967624185784331211195678504222706269704828914153425890496640912260197274814852974778650059525953111380405637329744424476440273848608046004222312677323161028495491780092558100910973229253344724711184947583473533371781559845371894734500259053170779521219565073066180873105049270989168427185721747585420220005330686916213126944055065965790149428165781198767490853061398673976988010391591978358970458749900270491645112224866166410009163204369683795925344570638884182692055286926027927053304732234520977233309210258408856626496468524327538439236938460003211458860044879423974287625045199888524638872533835250443560569852285578411024740882048028936314669645883634963886253762644030660871328151467288801671228909883417068244531230587832460440619774934842077015458519972963034189607096519899769027588337864475372235556609479760833467113849232205680212640621555002833641255373522390990416462452385571858122273341189121659789437585413146600258211923058468047421718028110964674233199838137369052953072534438772118760433085064546897189219863241542476729866708471770213491534145226283346230328614062923516859843851088748443205887302428220416987260506504581600309346723317656598310126159818147623927107782597358683249823653384300221848382999658452628397541395743956142611510517140823765380374199736241775269643921852989484791539632658146200895436858290524215537785746547044041691824210661638573709006405348159480288252625659966781853752910408313550378804774794534424213794419539934010541684342270315623367048419173757769159984341766510371372748214995359810120503725120695382513664785807474342015796150096943026203022096552429665275263216428670224057158573056085202906290856926334951870347814702246410502629602118386528169284102173792237237635161655062619098410729998813591028046445913191455978984555869414116742895258469802875176751223496207021314491023312639195971619211817712904379306815932147890169299864384641596943405679631276849474532204416154828417105977932655806544009232315054340051358462669745745483723740581449653401657991833725667112626492570946056849010461710103127607699170948064787693375312624267123762111460174361341382030598515444525261544063408997009353428092189905047396857120080343373524475407030605960395839699046518946239438334974378636472935270814655267030734347850743908258913212109347346981678473658227866475633677012705059998907238693804179607625256152896138076068257614351133989534415908539961215037510403657840557651196852974170220014062633887394382671429768016384448286333386253040154081317030902762300624487245024912589476958050495082350745995357687759035451663747625012359912180979008659250515540549158058369242531566873642851893903605754613147752514062265690687355928437304990419266986919819037585021442860835425472512302258396149151098620868248848254323202373978447986589721953216528559048096696376252023651906284925012437490432633920999470059460535808761797343120156327006675125609689026943322829566944944348871897994965234258760157204716665439961827612826187020406284502249905083452722235169423880215001416557501653744659893446770056330046499267019135131558394871552208405579233867485113718390001099230796589123375093982994804320459885915243343126788293007173409552090982366581920182831057896287093056420839024645122449470602985405177567109314999138900459192410596138547641602685282289535645602058070508550520240250607152794282509120453815460830440180437688095744812951827385651808545626166036032751341439683833004609350427292542170582823241169193562351514539318775174705136992593945386175013030888995707764615435717567401254213586876904532339370483042238215838411387348258204564670641999982508486493673269481539167491435126018142579503558233968379833221536563454598439933853607841660241160689671843980155602986075313829757813184275295223156649203239699468063765663260043945814346302121861380864465857431931158895622932585004666634706046303931624222326104512462841397166536575461007638012133181828154772407455994347256810411001864683681727025346863018740306249662048933723311571207233094694655477020585607049599363317932200055222418583389389810807539303666274966063010185646530805171763888714844509664349820360406803657199165353060173937904820910904293206355269388256954389456793773066778464990633263187669651637907057004968690398475743521807350919133776660186546699185836897719733874993801902633119346376264352454082195284676909156855830707264877790759375174197074426766795273722278249927920703315972419410794645652026796011361077837450164233736169992240748571247005083933408192744316583135249695957106429509665858838365179169606477563614900791078300161996457562813521574086630956035420224651244968675897911261502808734396709586696589780272705144296435310371618372817888202199830105205264573171699487180065488063575909595178255806938540390810248246195476335570750736254511925248011530832457868950504521116405729827204668987065989493010762010166198581634546661765488029235131529499491078793308960787518905739938105663602407487896077130851924665348535801537381422021889311228320795358514055923070208042286405313357021237582240385685615314362035798079210319779441790081181594889009585279139945757676357462574639596032599337968174883342578461235324855290965090193866830203104051440541429002738031739625542819643250220462412355598820042684749677229261461886704849186706480756988389858976656888938439843770824028412897492801963865052875506289612216927769490780231859331748769065632521020242871800156023246876709816102313259245052804973991083765275268985211203323145305120082530802174952748732797689287073488239302253509181155223096740318182981978228164579738739058564065813158600927747923644446483106655687879503479431437933079906878593663525842586127519593460497015761889954887659788067439408098309286808621206219120046740255590606678565875774141063749507513354600182603145488856348457567416476530054410331771375502429010413743696419445385798139208832660465696388388876146306117239320350235922154172371865679858236413888861302643544076033468817521921293597474813970660530486828900747154934247548964187194133246061681606437112458862456875275962514577683407149596634911161928102331754962991718741163271419329019356582137242399210065794993967220682139916612718515390179857561143801895710840095046177493768418141340106080667812069043571196613026944117144587521490334852829343416554372267229635383644096118443111506274757957528862059573565493903697771681101845470531230380462700160681342176518836578097944284970164211303175558887659250295592464541050568650651253739502404426807034372914555483820858108708396420033705206508741012367552569713889564153946724821810510435950456737431041523378861309523357812341528364646617485409905314972685094857078265542126970051916465687415680988995170342971914805596176789574435050479571189118080504367427180537892356640873425201567978338382656671806503442259900886047609334073581862313001350624832571463604825696722307696817893569932701236317545465022357580068648902151445990246320951816497751157332126231905711554928795133314898060332484542381347992907878426603641086262180013095028169766083596921980150195087624526458051660606734178906275131223868256206917339592275493034002909950323742896915571023663511134580106619735371323077944966872710221331103592578155299310826743554319595887997775817634635857077868622686812561646740486915861226993798268936750630488772618406227830619908346801487305425672404434902467169737861450862385579869129350377718123330708773920293143765063531013267938350612202615222423184587108928810277777965127116858620528353933736142887482508516544896260654143649504642230768185399682731765486417871703536414413868613273492122453139971757614373359853953035936159879842174078794268924776527375251738772026730095938985998360261302119372185204049067222158156132914684347106725386683206647284014129189645405071668547100815873767685964017607526040118995665402661279220420486652829824017353874171808274688883810180935232010729581705866746066750409833987903278442061321672071750279670874046922491369029381317685764396092571937827004748660171698121617416974135472224988355927914557321089699270603962482543582198471237470347839451577322799544982022323238403499458785162239068345839944515289634447852877187445670936135380033233325576676208120643869886099792603567688094973239241104606533078053343540514284279271914690277440206271101137917858201511364149648779157858497040869671584707160043140034770935919385857778368215992362145468391114512368943322869112879593526002439634168837768472478707522371982489845819220793409975162376408863041317812873142622591449947952005320328844133794484066604660272596570606287887486169683769169690760876720733457585925598845074244346555620723870562397780869676383914181659311590843715366819364969989966982305090320104320591163219241827792621369068103796666405332962042393878523846904309975028094900479488358564176472286317788324259246518937317247535546618407035389556060787580190221689744937788899679373611088896066102441049001956998386235844307048141879305021357623598345528085168886805679918602750154186405413881184825416138784182831506200796307066865670514555619198996453657448912806410815906942531933752749733658249968095798324066594469585210969524054961600561533250859867819711800313868981945593476329109631066173971199661328806936726088778128006572083619586521864368728898331951516801375993507733048423921879355101256149230147982384025331533299624735701633799857351356824245541192487954676704354432620262338711825938267877762770590526693769863671329809280728623058071856892222284471393582924029110675616891879778732723579108836446397673184168181425103916771267138237938248620445037642333486331340843534864288196909682725284858095647306838679389074969193403211569920228689099918303260118739993008386714610514082206651800629467585331885417629900578312550036501481317179664861766914106113944789753182247562815080401299711714737826722272473935901370314171889115174507290943181821763588558687924069131981636165204144884691440728145997224678858169099875549976541361941202320509704583176908436696960187589950756582074028634415103488497595333054835534526031787701972092333691249924159273089512953103916332213109028868599144427049953443534397129824333973750291326858782647140470375371060431575842785037912841673000016431064743350473221901258304944873202610868222273939310132932262990670943777560750992721188225669927076526733168372759755995265923025828109972691472060701318642268773266245128260492872214691224442179252105424833698625638754609605521306651935070324760672193049128743808218780980569978590710131606433486394376244105819833452902896326757229931262408928001787941732570311816458512944837322791195203790659670854603797432229814471819631068046884444897791572327946396962436484272665739676924504501610479129513764713401241989903219331351322471195427637383250156657279275286305909109512371823463427678190326036388316195311592088615283700165566137673418725235773115200937065112590557207652866504038411810169572758262128771704871140505468151955362541396101985805498284545201708079624654875607550306794437622634919575920569927787857461937672337511886194839036475026979692397349213782380482173574364601676043678584814008471725573616873867864356475435929089728374569241655591811148718696515714842250804912029175401751965622654248803949685766774494119628847465444421458849164799282519024024881483338958111402463424487437463805780784120775081737311702164299485801014814500595564408391135853522246173995355582305271671674347287369200646551479857761964597864987583057198488777900710619087337296880489939843311942502209603742358286265380715026477764177728489709959568409131985284943007757948551853050337106774233792937568539642802963882054081104111461289381943272189010907563020917789091972103664547405272795932602225338873168505050536288702905019202179145253582867808657976280254927566358043162774250278997186394495919090746355992671867297211410605965172968773986289708083017303744190695683729519175829808952371683511541413429791745995784740994832169322163333573494659104795849586358766602921076040199414136016307348663595689703550141700182001881627724678886049180709806973411666740060408186754704587746719258132932705556622111989814504492807459980725458976784114249827648211306712439219940743350596898991992761944595691947041112318661762161513386235501064565084158902422254544074959893873386368466980330377401703578463831889664389727178898959430927502147764039403521755989868621936720437214550859721984767017194620454067999343636614472330529236753660953895388027961485475485336471503932945425549359738099716313025169414381061574950882147173873079519039739350179638098574683065353566882110211081978349885312075377259564158051684957880080306517111617825330228594416658996867826593800187105405455100669568731305509254965948143919791627365630098098505342057141568911367927846719083796702790294793915352896262859947259756355274914120942497445195276168456418623137218138812898412620254781984110713274693521861512461511233262249538485601584911068546618827063008999790175384715675448786569277136368981202304551934786035458169499771313013887510014437623758191420074009050740254542661709919939376845895410135404182220598404654827234965852551838043357699912657624443760322417910842582310816130878056426350698740527582777918361039945810689965341171475360718850004297691628541395053666523278548482115079303149871960175553038750016907229499789872676265528395991992944582505159397101132349799434738791696661450911512637231320148579439693213029839543746396182899766676271159137006987086980692346774814288826038538231352830449619142225875415964362978756288331290003351915505703151653728628402107648681752803399782491812737915471660820638396245427295451071130975674174152635580744807783545312357826981337948113475763050599537269531544180870541613672530677913035211178208197362624432884348418810079426602981091981997969303525427247055461047465656401361157166724230059643802376827141930490267796627484787245669849095350700972235670739750303934519644064952989531311836426887022712825264630953118625408433406561352074049285894364019668134227382877260306675887845337734659490721911822589569428485471814195353786450160729043222173092646817822010604528152019008457136878390381480063851466912284869796914019779598867801149815165129166441179863123053889176709627308719975844908011190911198798643680888734804033442759503095543110640388263211844819508589946421229223241669970487626707012111844167838233905219789028154836155699418052077255172176453966039068926480196940028578359205324510430712459746411289137189438711031305324422843609579224236493026785770827738965442831491150110241996237512831302214537436958054570112539997664114535605385080204403642589487678957464818228573173929948364005177062610834079760668871056270348388567448205946482848857307690144741012301759144245637747733626997446937079355974927846784418145822697199156493400426641282573938383935311333410031886913243915425890766548369390509767418016795131712064523242891823630291422268146212312149091370443925214198651368834063638173121713899056006891735103720468285566690451151272095489109541940546888496254757354854107166259890854520351346249328662859592672008792107390199695269497968132432644082306807582185280402518794956706113136306783693934765651695024838122265627866217871931373029426888490188114618687142897666918918728637605702751328592405636335806370020241046350910593989644319678222265463568105882743882627363805390987557959893779174173439919851583370079348291903607449355017102758975874179481386471998232847344057828616507409653916485941811025568269168287879928189377999104431089314221100719563952734741492379112640277820967838120830849995665555259155744078861334280256261841446667906396851175762935215136061014675132242502187679195822097879952414376990494392438234147796819321663558065238979670062470967280893943147482148037035072802555981380921609545132056893640976521956105027233257704913073376554969253921192890155342559756513465691099191927484404909307627753217131858218112914988037137678217097904499399439991692002401948842709644352932516226140156913208747009879027383016341833838706546613525485786165810092377931335097401401326563855551410700405015378775381917683296492371274991126660995798749255053279235582896546346303772900384819036139758561925004490065223022386231450411542579180104512929983190442980473608549281859652388866284627571691176783751917186810072589752056868731059456031761856261297265558253742210375486108674343636289654765512847446963730660209637388119493945997827500622112058137475118554758374237923159306041220632396269748383709924039733881567901204329067024908629803190160084844878358321751171814609885196690844502963825656437175723409115718185757451338583188831941288602933710731193441875191483425819427280833156391373298307367897666721929672733950560892206463072207393577744381746619051440813989411626419709125262796395747649450279705453500500971485813081061584538909233066042718684844068327112930508521941561134728698308028640175272352265478059643258878266382583876976183619222386593901142296462828688219665695657709116511407997767705152023891812798200843198311114399385923622570218156110009206279902507618699984766358879003486600040931225684558523254455876988188329643929048083157062488154180423344272246869284000578722581140906780153769835262825331097448935589885632760131603745053803869602486862067762732437908806215688607276989202640562905428566763277979070363445195082078343067846642330880803789558131934175021259647135051282206823712336755606485707668954692067826359025868502473669750764965519945188376819564984338452925830472512960631147524672524739043465334270807447176591068130320748405183967198467963396905333383705163829612754975011621301330792956210374533207308764697132364542068964271351791042634066081959947428194665479618031258466130063099644694647520408977074769265934557714530280336089259069104399262613716967009421561396483880083108482283882919318517981102888928780195712664844130757295068441799524677614315977300214212520010739522401419965016308954052667248821049782597629331404482421847490848225158503922389030955026698092150735405102225960629126408736148160994448456008192121645859561060220814442827128108269280356821267490363741098860956782822725832189986994756775100104383880154842189263907354912679356028511809141550682737882010004265011672381502351390524957503250938354961957477396341579348209925498329455574810890054251218041901454271437501893188456643054431236523869812810213568731754004448715274654923530664508752827302989168619112031152100317205998150190760764394331826383587301978611907021047158265578260067704923391609160332990000108203148856115410497144611138961372661461725633492737463928996914148534291556693614005540440553950228593009257650238190397834050406942079264924932809967068124435599538534568031989830544638772299381696262098425330034366697681580043268058084733519838674794368052969210623615548223757859375353133564650042982838140128261961784718310076126887012799357640193786850240683610523415924342132080500823515920304786791248888134566885069058606476574209465686653637296489847533273439708895776995330721370678856231195071933159927309122704031529804803210453221370609172009458168831101933017378529555112028456305957324105586355943642480039141646033647231609606800657421905922436104909433228843847383100442885568462192892062081300599029055420639618088981516707188103139385996419864198007681456427734915481302456694693547051539934565524819712641077965013367853007672999215460771807578556147278368172156548871930171408080224269771948011994477326020400897934296449384395880341038730791771942072740515776248862154555430755869420027668922430986717674709649900975341150882418493256604077667214739539772987810033103964639209746848383923663961757904764747907961748456198027643968349343158850509768326303490488551964245605124183345578648661214217120196902895423842327428712005232439084395696738765090126870479801211350214186500019460639967941166845427706681046877889587776099752716064556241423778919556836881125307423987066720332070388148580604389283297839952220954596276433097120392325187696884468194214551899042728915227631390799527742279063139150917214821585461145720522592750867415328158998486072863297943795713817592372759983869074945894860943348833087429981264085106556066729995191697637711755051093602506849257847165661707886904225762814898937094776361082001237563741283271132209851790089601060828828922014766695971756673356860899078201513023959375501866233467283485919024435903085465900033050501279955871895718554265785340630379988432512652585695377517030398445365662125688476754306945917320603300642029999559257219800217104987296997644928511629392444512912331320206374023751597030858979116099824446153277455614857339810212613774867963742207025124283853624474156965646361394567871916380543383787602127640102467947005661919403339118694535297166160272126509820202174056918173043859408665998047139309969185706480218147399968813051514220015884374042245853687466067837162675701758936197974910760247058342827597258748719071021360116701814198171716808579961917779995184327347255657190539900811654677303631027874440146103301172173330666269972657138423664902459542839136965744006351598938022474123058858718346671150965935662875248075520137877036801323869761592760869859434050525464680907283413322130331278007159823135158713826121276794363309685391042364497962589084844725622007756813367306866162797033705117544528708817869361165619759166481590940610879299692498175485228467958396693503914795762479412713373790483300985415066345330365581630271909391754389664596587470104249799187992904870623492344118382318463262194216650750445360812929472593960612026854350587508555762370644202175604926633908200529628299086386499919398227749620726521550350230444582469571593624991249058704858726254299019922718769436531888046253820476295161474522012991623757772418104773095146430631444337446115770464945137673670670867583139306010977438041119187659517198925574428264255706999312431323669265487494951148619750807488782579083706653671826788450630910277499223715750852722966361734731463536880149249894509930379486974220758725641956825152809160629761539702900374865468694253306668213314624805572609632702789460224120982409325947521786767018992168629151855617209060333035286878149485333980742212100565699435724074046607905493701458072851241641731746428883958829275761020459124092942305338285053816832694143396223014622204936113442802897170687087358190178950174364166804318444041459405792328850680618517644180713829503384699990759481667311399781698897446172462416820947613517183199396898695286480497559339302687863923972862053001855943122084052508044994558750831611986115968636480276685361454956175399813035576381684682140792182919270176860816011958678644889182623808825939759001400767737832161977569795467143214624950248931232085201067416291479064457224781886127502123208425819646460013541598226321769823291890836016672438915280607154950832353594889039734406499054866819468438381849560106715977708372619160220607074499907048105395456577267613819774992371994517284226701116139021903587105154256172100820673307253972319190509256153092787664743652725216502545352233350703979208540731079729141070937157072879310473980197670850074882512103725203289895986683505918934623298429176733542304752794568703816489835497444953758934686518976682040541954212169964071366406096086452558134481888521971491839508188785147837104750836731361864618777980206043355159571583463303564128031228408192269058191957448926978208394017047125806403311625983980854307120490721358444142385466294413686799590575978074651776441361157462301843468887695528287388907156872436832511929858534790038966131911654395297758489851360013224418647742343408845610680613642119987505236967381150190917022221338772369096960966440381333409437777200104980909657781826877226078461999163094874151156318817068911701940984414590043166694330615172105268093001118319212250478701442677934736115875419978367455085715366043876673767814535413698224069410123379980065050576271716628179742951978254786612427585588950771239009809545947918805925998661986663121002427973264768788674933674999625262967745414168482280128674870813124599618095150752971352639437150981658773569090126586930267458413319996289858409162003523071228893704219158029638258476616001210260733808663662537537295154535400287086931238421238242102785166591140536007516347161643008015336309455872234069975262413435713130150022243152694394283676285599542925260449145691682734205006957036711563168541359461002481123447239993106479745922728753248875777105067937748840492119951664484184712963863497467363529439576176147523342441937921279814798285315327879065962523566738000807892608562528980513116920965796583270581422386230619979219902246966818163614499104549954469545376367844146891025335381415956839675664972422919712709214872174552758740594630302241040565437792502363684904616783577185301778697182831149552665771643160185172447345568301019640737987494160906902220831624346838647817759689186733121185810574609540603392822330015647601232843989441013287063222068646387843555719985404312765402021055051683736810343060941197265265514357228940647744641159971676129768206877446498178314428923733579183228040907941454092216562215765760462767967949610615272313004368736961433175530277369641571153613414499918177599537285131891728118785084526596510733500998200249876594515076420009352541501605202931584722684117468400852503337418682607088269919239043346277730350517726907772110975351531046637159871128527865361763704069460809900697026259627337834211924639792379272937077291402262869145884504255207256432005099670262793940709556607058041228524625015394002806920142319933750180753848676824182989053040784599655070150490400568354463620842413147483143073764807579577293473180526734162728006060944983039533476879107730564809075958078167649164412485855150972754230600913244288832247925915580738016358757929298092653868351383977639120818146764104485976583157546160492161039056960032697843573493529534087227667923226925077460427439740548004471748496118144738469026612311351020735602295421005290732438696069025628314626483345606201070499905466342778765518533120045866750320458835625902903463994891314338448764416625286732263885510168536285549741475359449061781763911589161599558469156899663104982495104947677361810947993504240299332331628115531902240624232269050173765882859298613851117920314156657799345347076101421887013524653403911584163802253569350304570709812315113527549033097087463020951481507755342336264999573037857777584196178889451832858211409901701909769466082031989651459621470244326087077069332496472655203515683873538594705844103757672491254288864412706989402209901182058306110993701292221496018877415463286578304154039121474883394458815623705094176057019932811224060016210943651383815511699538497207633838695752910320502335871434297340528763388245399456870581078177282739925864602977386242059042812704143077565762598989213170833207582702339480294659069936129522868200076797575955654341936569416149499518915496916551411958633952184337375682736674366081608890702124917773232164998789409174637968079583175402533410073103867362605870679801134210695845195208619463926591458526771646477625214569170632361616832662638579195126615651853018382063496320591491428886223686676642143597479091666645203036920226912129391985474409248843837368093573412074137122951368740560949876970647918359422974543295531003961487776201478257494699520320882253235892613362739506566865870219479853267393264165180430024975313698605206787317526854080356483540943116378389698961054267166373292708818778318662317677275055123384246311073441466252832521559328366034510282053223331183934768440159446152431501108361202063200370666360785385680428382294583229818340747926416388797694199030433855462199909936326514309968204913918341287133631967260636004111653913446661328826742447467785953342662292163933894754802135766277665169208990378818450941145815619861420318904898982103359297668301238961951452081789413131395302017665418138925181448386101044148451618351477780343161040976979303261361773880580439812261739979483706089056196196155221863728138071194531461291196301591859954257809128331952942893008539993405874265945624354598758925790850191364968304725121625021702343854181361175424976384103047380761985471010562430562819392508758316215659329146371464596003808068343127261220327293748434705366827391327272181019261962170536916110857329497107584864190884581941281321004882783625281851634479861301126483538720730208611971036997848393423406088758555903576062194043758212605852522688427598181708406659046514269016644872019218379361026457232731193355733758425705437247584082718616713331109630230014501201168209395605111151136299698078309801822655764439176892277884230215485966088696517603193012941294359777572966457976515726900625694051561548967693879070977932561958088916388451249006877654385798943217311995420526257392445132449917977897898248233417545098390429931871083780388355316024002360077901613202013583059742603661665231401393916891827966037682269726602897293442759304915527893177098749370467864883687835779153275440118557585699143148744712033363908383496929121929828138950170769623400768488172906309314613812114026043572052723130323910835925517394546100250007885651527968269569493274627733278598186962395695698397897571284760983426657573331443471191114330986342713165972787012277915507659384281025500554260394922476234080093495739114454829180070208733127663345895306705917306080191243341065163022768713104448596680230068852083631081061570662105635282684487546696145394700642486480816326910127452318663935915920362559641754544256699902470396787011402905186202523266272252291252411605845629467645101242322755555674974676306584874624427557949798730492536222879541332120881415270714424049670098894911161874235255484831099389501302319497340204684218397859444281709583933250823355490466906307198938494010691953976107345841121376234095791070401648651234494586269604239524131160266722414342972946862632320292807875752068450559729849192326708619805025436881110281286466261774985464847075463201610801164626601811623090738825905397111343402150349236588305308029798737892604320640598490836006082247377247452608827695271048232867901434948973503539049036501504886288779390281832013112754609696151358762225457246471450646898889699357591812079916341463000888603636756875141916360370026727390332503318731132080369534127782302694468425869661854300059005220018115867324423445618287190452634188107023344127720795402420221871107747480459242017532966935757290564997808762316211413494700913818511207072796252856885281371625592279675603855379395077425119907603231833643922642045025984716342169546202778612725623362133822238566322687322324069388854168675763216017616245238979100705950556930693094650523000729387775744217314969905712618711365091694248856980076595009114940250677128477301068172846112257883660383669244940211805751348331492813318216188409765120645711256846179424415989096662023692802588702170056690909825092648297114290996466806612200641501761555224196608243712385763779764912728775777355733759081539106666635000287681600277202872864414430294190885055747352026679191206731143556434525949732651752850272965246032115521396136736106510780109241704547082978186440226597895525218143943641270842262938410980114983938392857899935867598706289585937859602681880888470915239165276669656805331228727932216279336978067035633465573402061752175453646897275295120066147450105301938942086328640033893135530259971082692751966854851216382858415828166025482716212287932817438151975262446925787300535869287983656691927174661488328897906464214311977197758959094359474428978471250519630978749078909160539159868646152462372624807698683829888678533777201070813142192987066051960404021773707206292457377473453283243096016374506389362468344176245546821758308243025626310286125745944120589537206873777595725010025244686209147780415895978809984947541245805359061067091603547989810339546844255778619111046853556648691338902816619338384925959885144364739390515790689534664283366096412300157292095342785632145317323025340429220356235498456150903429449709708089661485036137138538281828097519304576170206151471608073975423162538237525030677983277050437132960930152624542211446560102410184552258432210185231973170673422997111023127830842147666747141913304220591248324843005195448981687073073362551596461354827443091346679428304040404067573442853620375783750286321424915803576476234034468687614079303309781539126222264260769998578366411553783240993616160775494324348461410750314866280443298314105084048901791021415124537227692302737653579568841358930538477875384669341276364274596963612401895720758424870950989585509159377436099215646098119852866447303434516915251540830361334301983125682611280878880843890573420783246782190876732633960745093607977646662713965751976639491229966406970884245519131662183880640094822284441891096230435250265762248906279111158423670783045162183635612224026257098452141678812929329610206139228661363750238142833004547498321121271376935309596222208492802468440059956772171695517738598474662110262565403924097329432084447004621795517501211912444817818773045069075770656081121758348398606801852262875770280432574650665661404997836496398107557143723363319327367006983551613308890416336971439234413600876941277269484496284025652413596734785837788203788275057090358637425473514271891438156509251425876565324983282819736398439466615987836879757048566107176191261881275130808672836908641160202148762458832023948417063745237257934243071368037094901109435115436737374096512774932007376452910866622330788551945741217879917557712153990110729396155175535944247050941545563739586426058932332926232500337729927803868507320415750813364125372160762432507996315487171260258777030412884529809256622049817006547479013976333726105466217994942977096799702425898957618733295330250121552024719901126900571303885059084153831186140500343462071883076259934239053846702754113830868432380396603871940081547630397514434855576712722618869173731092177035166819934672451997563317376064647107376715567366729743903586084134881266997221170420358941024426916007106541593375296037703453162182709981343861293088335142604902157926844472231949843939346255383571734174595840165947024022755915930894035861459349026741829736749579721536594715941520868445055777587355225368773992430463872669435939291540889701479986576296830827652869373249938743575011643349644307905150989856006767340625407989848298843893577804620881280815387931654039284485625117315414998041325253622293553510602560159323852169713742756750099046796158564589423495896315077639294739690823081439018993748283256576567311370213717358206815949041808116644592136685266083593825496168505299088262940455487023742166237881553325757917351662936111334969069918683666408631653768805454878464147754210590725449416771467759841943019258771189439943510649473822100194836900395707243135748356447442635468235617013633544777046794124054266350939867941797279754210597921773051821318960043237644435068009342075321083840509329690816039220728234290635748121364285727031461206326873568272656312084339870008105140715757643502394714378884333978062686976043887862905617416962118464940937763576718505442037898263880656982113108903970778724169407558324971438743519114695967870538823726207696976355176419191140543318031856518684468709329229905903853096554964595014441489460461058021444233336660197968042745790873211512631513565035223527615536482696931196460476299975515563549820737685372225930725568301919936990191042809424142033238675034259401461390316480195237280098463204672574249818639264556180056273145862173119740985686527958361085573286633953164728400228704827852465265124879418310172800153571627031179835310235535990789288113165163893058154530998345253765184824424224818308828910410607057995478665130528778142704449780019990409842484214682547817373699539993935524526524277575200325028569943246981742589749012325659232294408135346654878798891870032299642978385430349500940542257809386791612668430949859631891855117589793484700320351236961106595605354425586157922078047912659760501494358573781381235617019819410691002617110309645108682171456326915706576574989121734034143786377267466235718121690501363270084957641560296406265686756837594572960658697969731480954741690390996384083718520987288487188414712131902330138298284837949088162472789223269193097031239505029527785117132442246122027414060262746164790185699567760599647859118146931452890520527907985409541557752192224969206237372832679402699637996252261562136995628291196868497464274102633049090908022001158316219861397205837843227384389953391199084850923287770369589097075496117504896813101721003356795840591434678898410366860610493563015358659158020444727377649545468131282253002243442545135084958039662215028499172395296445084604804371740424981853419028389634733679821406965428977490426745435226415681620776769393149899538490146669061127293252199925404864538511699873694308094626852040038296992260914138812110032032086404850693279561380233151982629437897949661287729244464940112935512440605209650876327569824759646547162340168124200512168542970561484951334350019769860988317458734918441975251999120796841557446763154399323478895681634859937790399989965797328858532154544149674126342967102944975888247442480900168251911706465858014114143203748032380108922704298758025760869377832493062298000770025215384198692881130318943580885508482929851998294008517375502367498472120265712733962551696980421105052035711399564302246109982612523546213232309478087568547578975776662029275476645360126801464704001989511626587957008661339599428864393143095873193880609098466111517387876314034205053466484146866329172798396722274437945808013818545555149512244805243467455478039034820953359902317566974202195160958162293397863640134547520777782334116541505531055254668254314945754568347867051943883367412893001174467558694027898317158154426768134497856592314218065347524172164013021112840709884883101716049232640505906790331492107695220349127879784746810368638090612565755607271329339891858666530982797845022148222514193176101239660032724269693986724225860420164861324297604047485700396302308482485544880909623945084706519199636587894962476357864830545280456363524935187032627796933320681003632825835146932617821287235460567231067050151760276095227451914132629864517281366991923412902376513974197404418298934770613089779739135564266799746070734102269352630509430530847353013208828857573308787921594978154906458346120165854775734133525041284856420524143603775393027326387947761275048075088628125500498522730687891072543266217039660829844050566243707389634992203913880073648173073908971453479978186872331788105885783684202879660056674378906640994066005521953336829216898382966474472826619267870154878174680022670248994414160908583641508933904173607695916492725092150138912806558986004373219525300500547370872964111614144334217155368497906770199174108495903762547302628353828924100891713780413632952610707411045908085837588477221935340332414235071955476476547074228441419447078905302578187117624451382622870970468333909994631784747484434006807087605876946235831833590029506885010977800334674909197811084451931426249396342195148649450219655177353945671301714752646430174118108981974358459098248851293367273468119207691713962810186897157668486613920208071691525516028940134951296749198334571176525979557119701260660300541704310866246352121034315062286388940715610287562624615539158300670728545458240916417392421988946075259332531865895924267122526962801426859554946747024451533042572540029858052442482669780767196901314055162297534508878912855477732131527534807141715710359224744569916818524769720676098632102699031480329342218424521592614256065734985608685895151395012442103126757048825258220282507661062099678974530352942840359886292548100165814489818217207501073034757479291628702179610970496392733031352085423864152239376970340665334268263379034718119267393251770954196810554165966734456506665315630691427423881384012705246440746574242988080165433151848145705966462464120310954213153872138075809112839827205115407693728443366827921566010752388689089450084584511098440343385352435006940288725253054990407547768554834657625629048055363814309865462847108141534454111136506043760208538163847803639087978824620097616492408380350081141639898420366598641341140108793090411416236529957805279223643490309622053187625129151713912852135177574062869080291098823939306169396133536847063312693677601961972400506870038352940744077506284771397848001781386359298167580854917551877742939834974779295076391251821968275760357197871941266237576518397681973394098194877378539561203282008136012172100806005382418777978682352506321431669842201173087038280973852096907292900136578976440440411844713601427385782540689833241147929319123686726461860657828055468108476407697256073434930236528872675523158061636054046301422091991083483661061530410143993779759862440719536320541166886212856870737044557547001227667351840802670481448983721817093290830963502084087701797153558380004085417909205184015510134923152818033270141961131759788036875854739121514654420561688827156002511716099411096943199354589126754926605413823107470112875742844001606976633265186392178524343253114131669277135314176682968923140988633381437607156670145044377621711419964984912271279109762387880456463859820861771136897017862770441272025667525489327083142217573632383022980180259676676769270605185709322206465494903336280511432805720343634944696077632529763758442888926096045880548015145790693717488057658425684567045799729400715362354962392595360855088708221608240794011841537190024425091686977040708142204706982092135720002477381114538797850527373786044997867044007744331534404175604839946641377267391904392286782919250757854947771352159408271924593284457512306225661713824154784739074881139295529225878228560201609828879925924282798763267681663143091067169721811862646600520092909939381947275117278401511438922638984252198149667589219380890908760180747877358647652373919086913000501097331706991270068039188746712091646318621314719938898376150387279965031599969573598980460782817808898199686836717599134994555141068800814343328246295155714474576569848313829595164576926327462728012866029625397343079093859856044430975175240099653657688201268564153285086618840531784453802585762317558483742625496419866178410605491654041348820095500015778247314850703850116076777162659700639951851573571145939650828928357201908271664071404134933896827552311939621988563801735969065871911414198672247469074259185613903148540539742248261549146104109312668259381338991342900260833693663147691442639437246075768020830107806013018872420892577256498782373086519430751507603976307405670282925295319821248836620681175168169891527882718042144580639809093282058636989292257419756612351424901150109736196368216986078275451468102573388789361439776936040056807940302811670914197851140208658453229912243884913463399330120718083214715904981393471858522979141311495371649741854181421863884460087278838325019033956746890592837692708679607698519087484196835734884942174776758020925579597965974173734857039711991851667128872101215899578986129251137990939612154483091229117141584963035492456323064457960967007263503695025025547269013832064603883973786644196898950844614291167958410379649760402301573063445802211756734595581757609289307761681385147917971922991245971162151675978447644614623781353766692057184861765935565185163404222125940919264872829130531961476551480833746494054227550974425785604337901848627112201722342588221611659819835888911064909075120860399580398287508457400341163030732822004066459528564865561879516145368847977765526837937793257122066024536675153576243408048796622903008061622078603538198125428179555463743623555145836548770222537417371588505354394369824291493219818526868743391731786746768585001770309865066739641537597256777393462870154911638699003725768667128689845381824042424571375561022391781393657414643095147258864260818548654509814109757823084986423513912604451838686682976217336380513551346246551284287570363181949351127173074247615057945748473518381865540456727894089487309159853385115334470966860902664889152525212844139337674123888135904204890442590425024514579738936040989318600366155430333043673973285803146195623873617388331874592080391120645589078442217221256809833867905176282239893442621737124197009710809777082929690878001863576012583933421723262190727618695274492862431031635673860230651766108580836079644757534549371291812845484598641781347943307811645954415509486323000709000543255279007064005407981272412780725905712526537843539520987509253888678800323336273435131066300905331145884904014904020486808179598381984577710140533413639191307419182611992181135046442210122577749910802969582848398955824112267314227736455039521989525461686107713414767377822599646368798980337714938946193817539294061880766419462980327127603368280430834558605230837009196728816333313796479003946944509005180343882404512028530454546925922722793929422897015763290729720879615492942655551686941340637782295481717727382364795948792282138143214543843710582371461618931310792302272819368493072798306569736433082713775682389430489570580500736156205545382479232042949950651772811976385927733771904907090164152736428759164972307847878491432274049250759737941270839154358862989497098790477688972214638907139332246832027223290218988239319087311284265368557440003943552352292329519325727831924878369182045740169779152821165059517880780220341578281157053135924324682090339358291539996692762470363553737829324579270567472461966619161620055809962291988706875460627255814390303633922335478965964305471014352411115192699168624001641860944272599168196945513432664667881178998643539585053697973386761775610838587211433912411550772810803842938791099202719219462100714258684806044542861188157445872699883199801095006259099889524603602540008286533707509590146388497254632792177809851709710097983709849983122229772506819546236341595787845067802842264077386013718846130294954702501011396619713983588975368699351154169827297759349147624641613828989359634843802389886444694729219169849586191678396264906721408708676411953787768616911478002508064101102776546033491440016067761087242978882645905040321115550736527973674396183003996739400802448818187727457394170599929326998587999419843318493270609142150501492678406534920852216212246992020602602079444495058413293780583213511583612887820364096279222265345817613445105026115051000288643822451433797475850438615313069119659734974650488851719069560943482759512386362487878420805324330637189577409093508105829158571797522858495771464738050915082073700362013385775073374051750424920516239583905924668112661444798351509094123750277885701580730888597730202246984912195748526080647471469438832583641303004434228469338518334734770712974044769480887568658020639138062420632743570776484023742908597793357695191454434048218760895473410394024469411972775253409949656567980512847911351161916936553876172332293741397673924817022988027942848491508573761215185598372735526884649471988517626092082739243965494616328841004496297647013026400226899194309969731297461197354953714341780436080938852743247051134563374162338797460802975431259870487322803185191049519487657644941609924979402079041951645174352684458908833859238373044425212897827240712343087075100883439063238716101726827902275955933897207417411018308829405506301379849596623801663741481922189952377373010090321706196949784433760270398209972638540684382397644203300464610978190316734146964138140869107294419201256134578817287413915993024898662505749426574625846572781096568607853380539975810812781206623751220973382977673492944362633691718668138659960606563517246685045157578257019414451105227804594939730229285400266782957569279700813532810813484673632311607984625804865284646270396973617458448118122515290095687470605641561475100056401211989634010073960124047625825474431798394946984091284825264263111430627395103022645893342704738395828847963229959111214314562896052180114686402852220671747825795563434926637288489254364548191662445116835310218055249292622509994723835648504809481692973697484634942229475233798288748685127825197450445089182328251417231987065376668765170255103088967296306159628381487245326421301012012631768338453907720474323701632949502693577141034327463274562309549859009321195768177810375282503108937253130539620288455141063963279557057915147586191731406341943604391730258935230834050114166855067583481930787666096786420040629515425797939435067437653046284856551333983275845380928166046680002133267035426908833720552369403740020784431136464940058603084721244984019681546976345764728163962512909688440041332899376471944882636635352962658612513922799182400136274007010502264620832949886339542672169641951434459159813726610475244390358345587934254804352547189120433733274001215369463706630921729088957659515064094682372030598715035614117347352711146142308104256207454634114860716672993155357075606324387957612148119265197168000901903950942999899941331416686405027974103288251027921150810822319969029060272577636574497499513781164937367047398733597278165213878842596406270164236250701806274693714510057653455600548144876099874455371237428926404046021897932854039994745546858467218944308128526570658532727154171094125062013507625475215671955376953140795551123957421315534544855330759413058062985513437493342891932000351640375686787100458506188701144722983571804414232693113959060187452851290351546357246249439888852163094980358385536983859849361429643504602812794322923456950938917716190626215217336991263097162918378556724059389992734256437586501853107007889264548782518682735433619981867124875704146288386853513854844925078609715940626111948848851936375701849249290612301682567341560393727350045683518391693555756006832338552081750177611982877342751103712155339719837269363116533071216573601145687373184189331570628857049575999726192919183124636167310475607948859211312555061795415071052442675082310572938763165832583720863943504408290881789641435029862015136431208752449804894278461611785367638384250451723025575109468994255704124146905432611001499339127288127202485550486333814950032539026857657199079313066970022772064435275500440255064828798808916201270044737243280453005299071547580705935851629465437664912983839863397079410318699528756921770310557951452159357449890150590112409999968442530011927968290778686643820889289389282074853361432970844176625288221258222378846240161875031528337816288752118471821629912730732904190368117818405386441166924594109902672160944975738228967542076200391672291520744435193105107686849828622035057370057730015664999797278059265548200774034989549183960490398844394193228175785175699152309240490368545343245178786930675333588445319380246703454288657529274939981411840244688637785856414556545446609217579699825886625731361606156209993809991627098774559456628703046415625518993501196016276578938689022494987329013576395723145586506814972632121569291579528265597253712244925321106235931189650592092579874441124145292484617905665924112448780190933196607312962539300169786543815191317956517643209613781098005557529967914203728035226610637263849206763660093946781837069625512356753185115232287601568480202744644223396321921734864964147352642885828243561447321983614350881072286407042301507623391920083260523695677229050671873071914114001063855409621739421878730999553339181056346567156987589783605358546338187606502067343306967450983235739689644340239776344272511195484857452505117100511284959259499013067037834863644255716080643980552383963828586150462580497761588203394146972511924996009288125496923197603391461031874507660764833053547250645784428141330141671357183235806524543530754906008109184001030532573843695399160596178526399039259180118073903563566243764637500721926062061377449461654614782974757190293960182696926955490736580091905246659836675636364639551583571234564836800888369687981600438054846891986150805293014499338413552517168775155342023931225932812617211933192580630614988860021729009744869739465897291036412406996524599012856680102133927653244121223145435961141683786165113256965470897258832741679954138067923304192644448058615263227267496115320106808501075619862243825970697564062132938314949473428334149659463154159078885639905062627285173049607841984541106816426158372235298502976852544247980271500671705855818167833520846050837193302053510038885138135812668819822861881228095494476396342251812117334515863703747845785444405570799635102714623672337379009551966162404040163453030486125208314502202592723724655643982512567271784881749649464461848051413605681400010071110913519377903341554530074226008733993299851070678248589613440859050023872148167574385079679355527398182169154477965017902650138477930993775954074704392624734405932659671859245380173929274295103254414697168431633725264958510087650972542328279325832666315618109560683328585182267852275359308664688702282626449763496062736180252700138788430484760742280049022014192457271678379012119601470573561637230432505330541964088334101335900204148812115049983282401347278978078662051611252051537638798062355853273620387576740146663264430938236071447554350721863772757919497977482393205249651987301261970080432913349788469434280882863446863957892357335851966227036832379482662532659798453702635167971407368436236950543090817910742266440389842345596473345683883211284096705704797135729033507033490247263149046496096408621839371961494298772671599876306775056819452824696757330547364802425316082202859168296436237079757987436704668451464951514525585453484264625065237649355315133096325684530029996424247821364450326417865901119086719403424274885402972599474744224610776835802846279882249008302068196969895334482712121630546804791510987956661226085025215520284676669797888120388591131995852935085416576920228521216460008414201127645274514581378393093458225848097770657944521991133505947201929973532693055677977079362187840421451769569260571772462997998021972125210230975312506035507818911317356679087813324616790170437126979794755652991264869657959488190290488009904984315046056510678716119646274416628760494071456512104456353592440355972932923884842688112527471725228763779851778290269671029124050230389890831896497086187309345860131182558475999291645492920209441514842404815698133392640553724076731438929082968195279542030900634445823742687775613084153205105017263861268076555235124009812587329421947802262173935167431737705141907086837531585819105187508510423966209868843963123182887192045196362781058546927298796246562783434764005403011250333144351210239483817350244519475375588789808009353157123319300629113633195370696876984904105664627798824032920803132784555559429469590715153977187432457895037042636423227788951213890738087176218297284745195452017472257526964065618591439911102337888784515751101296700438686891093774684334458849084392904945264508481691354963833455628161808770721485063042467713432992526751003959541908048952811866865131961951789872449529974522089329401884709687467155056924488091742651817081503765659998738510191837846380662393241892701237412984441424249513629221508345679844394072867570319372722069635361607018517718675194990607323691204758373546936303965858945115081270675993887597468511870630316212035584969411279790856177259246783569286453474439665413252750899323688152719602347930333827598293632225359424571203555380883526953353374089076302894499355729009579628887472378990242744081289658121867991247635153334572027634008349417863641618152390323458353081980675261897092881180752676311915550299817954982112301425648675864156742905736800971501485583117695685841371271819012683683894061862717375950718619164707145135967256854396588741155596081553389441916336945979347379602956311977020829258895118608528973095731893413630217609612861218800397676020835135478804936962074562800443516886803160342048877696915426698554215942860475574917468634116075015791789822493573416456549668501350821138156513732358902915133581897055651485951669060625474881528219050293985108014109990719653040318418173020727059945110101683120161337149161333344276949332870530417908605919734024946254833434103308498537544222578584259775304559463487915931297965648825344871043621065976977496239424540113912050220436255256507710335347132624162309387229287472876699930185944303276013559556484843879013150241612710734178176919684061163679601585719244094806243922946047987572916844108170998843361970206417123281587198592072777220112288969723696298150644966066313653500802553333561012786602811875742082837892211285705945570367832950908920492836908687458658406140403927610688450188167203308622096219577982409322665248700927278254441368603903671167192306372080384972272787373881811590150276652706992598528172639411650233602412359077865295433951031674519511750264336138849283148603069323648225104894070025218358831224017583248717404228837943446941482031510162026243557501222218644453484835913839488660102597306705925131463594441725257215948113767168126329361174796394155828347313111445662672929404426937273147784354007533089574642236112002780567988511781295842100322705514650585634346684300804981594308894858292280877017543726861916818788237678004893242323484402468159551181733019445928229373987885580923274507705503525117742829206021973002474040826831724104555060173865622514471921972859232542009662603493643758622392897408953213144120633597650901395454865276113007248721716728266272248874960902051102633629758698525811086439919066062404121824027322510812538838712698915329992270619634552856025387532489550638823040366038838263328057151447973785007729397970673075066771408625896544286812285069005142929690970211690244859019867830933865305970685323401859658192253628799293829350064308072071366287460674642995552959214405958559781038414553290577943227196115118138632125869372170962980622090414436999013034407698380005782010458414145738762446352462546641966571293907739003439652451330466353694687420365726647974269539024168945879068638848293917182139199499489670311487107013069404890561410991226896206123873827345388065461054051439732857161958220854818523891223423711132327394166859742344721371806021892325568540838305716338674755539321994478777599044861282485710562827571388483414146036910871107712264389296617173206137287374440009249135865131043089192542014739692943429557073946212440142270196366689292059235796400498336963951268607927239322209641115935154380862679133653034058138860910017516243711391767742113275571321095330034221200112515802962953912446419842357099374065247460371415886150321195038713791297641271273884166772346821887976514555433125050638534144414762860140714142610946388795907948683579227614539698057195462189722505698171285234620413259279363993148163279244947321629019505837581642937682652807888896546286560886627549001078152768313149556701858575929659358377666927574290740475640270285297633688379319606760046405592624139808164401545471238303749797744162871240900535191333764873091825955020259551903757531467154569626618107453293823510574541365540910481651251964737597619730623504320893537184852959694577243603347564647290444425205856607636759994740244783061490007269365971756695825934202461071230426688025028712244264384722484419332221586178576966081751825671440925790276525535540891519446045274686022636056766617646953013107621539985788769259634107434882271978724334309974565760698592794793967021870885889542372087774148898692083839374700322863913544260480181805358113708504475440539272977721787425751181112473041316187586445966672153248637236745650939824772112456789949366809361839481058310771594698269224867352334290765760676981870330641251555667720477968052115176990308030475625987697353734368358701319512297499684062015769325552304763800333530538918006059700165214492247755751748976738639051401093503019668543862850754949284347295447656259025228898629735321367734507046985401634462691494613360988243867849925241950248777713899517763365215545662078861033274796849251777062696939949774785152743686870905712198471158066449145286588662116766459443984186382761617581621845837374526587051520266476899270225383707908879014011472072994987862703478126198060897136252169231759621825489554578756338016801384728794479947339305770750920130996583326133043379048388749644873177973116312212302817429541511609680954290693968569578948241444595104795311700766201492288589569594536343882711063592047610293500041997401393328372783973394070795252433894598938918548244549639450982609259679169737822919875939232732546141701475834027719884935743253997087676584759816533742220384752495465847004618022858792424052573317111587647615962522569920352364494064916302732772658293802418932690704351216805438417496770290662855303704456844429570418687837851161368444488592523491862273323509640755589776331173376451268113534751755323343083850193219949611849541359901112010737429622595333688473245264360734802948022912746998229971635007112577089683462125203446914579307383385614168881899767094083569353316553706795986582224175207332321846424309918523825960189134657456421712992889409841049362721996795556979974082866530802118708832067144927462672139469248603157897832309046812303718090953039375067964639733373217766538478028754312757015924340863551421204992578558832472635951139325379417976639009875842857316046193309681807523248059626174532596721140848778298999130415444157921857393299947221168036257430806194820689169381990877174387241093397807072324175831085144652556260558457308678751452851185623831687598522690487892738585881258218331692275852465106211216851577068866033828960264375311367959979672725580440969702932780054011176632562104499765768307292065315143422721745607964457922581268530533952913903423701066284480581385347340719998332256475392459751769994757629865699706517810203299036534258730773132606605680651610183880633108033243405375880708648562913684980661596127563830976997378707453514806209729984985415579217882663169477784864081120938664545753776659763430582415696137299946234336765822981750774992750456373031801948317263778074441577277461135019745827759317444295904611955773338542853018762944204014345306295720001825633171998445638309901392748235086143050847711138676340751844003324102766533344138222141022754111966409142083155072708902885735090027423781924835544817629345596238644022239366282296533917114789437870795911561782144722795200629307065735382740669148958519052110785283550687656643830510851535792238909491509101935028968980133841626311982623493761807538243561669124857542502570598877210079934251512728128112919986268172434001796620027867191065560952895501619427961979137153652347505784712242380389258154751395425293246082234288644272267803587484839365298437809093450954845030830237994925458761103130291004192315911560643646116408532342410864325396764570941647347872702569372243922896789739009861957130412096617425655856921176482824536357697223479407353705163649117347000102887897802187437450450138016410865500181827351901861657652255027146161888558730020957888715034976727182566673865752999226753766078099891800685049140189183704255121632034788109005484229916388573418027034937977360465434139381604809639264197122660402347151592633104359803166554180374696177416170373426777523679218255569467103887123762529475470784637840989664356770097256527217311914693939467045569396488576599032520509764426185309852545427312975006366307183383323222461968526023384794395484493990900538047992190389954772735397530190655757456916315458946485774069329426608386464225380051459612669650957350593131280763188910774850620283596032703916376978635929827346049831988705143728722773640540123318704669478905418555510594612697701684084701111787408667239175735980734714250984680262280374607702954520135410269124106254271164778493078836670109342339305084326700829261927222937963997295027323643923210938080631014660948067164002491949456011348524854133536989902385032992351008174164555971723286120659023221788632641630239739648946557696110625233175703473578530266416231694562238505945457755135002524769769726207356197871497668418134435078341295504588901815080903844601413203186221667457846067988960838090880773057349894761224175085671433953088999087437699951447571378106381428846081155841333526471840971722852766995016550907883256380011478398739074118931367187362568773722350296611445597151110921984874693117181963736126230125455308824394118511353005585280762530345406758855811390623040526950997979160779521570713647081714642783629834699526847521962940743209357496137683945080690695490386385728118332746076933674494491408251486975841148821883871041403584968728843494181629973221756681083580997296436592298083622082614044800390986347804518605388895263313619935194639043620001000026596554836666084215601498417968073296557785468258375689792240137960104345977097642643622019649737790550964487466235700263153257162340301240827272142811482338897202139192661682206785355327314237898712290509556115542729770435785142676580375353246561515456143986868706782824981327919632484406862934247788882506829097048741456651006371629815730754054509440238059285304074184515748242738581281900427177610441075244696146467388269628286566894409806629306701184156049452040064148869732180353354156135751259943441516989286603951513548811707608423022124983635855919706795180082294372528969426126755868330456084735920616786198240857540777099835719030860551049124489977729123611456493838853614249769584827678937608333426856347290828390031727164996298105402265392853733935670664908981216883872515965660123530093126581326933659718013124405553590039770388899787081843273584432377549910815375992383164548482436582792545980593015171887024629562841930363459488840304979055542267143662701303864198716923777064124784803774812268388615334215770206360091603643984916320021657125933214984463311245993920368628158273908832814587179703494512189771140884744968832841213367369995940896279815030692723186780345150067265564969039800301075529073745212120114869576189112809579887390874672515071620709875454951865480808555218918886002844562964146145327410050275150989210016736924309120472811625286128594560265609378074515490226577154169718632326022304455329846176608703146735392504613881417991804262106993890891625566522903257330563774040717291122262037491245501304889203223244881020135471158167240287158132748167941539536468845517341276664163687845097906424642818502064057469528934356261839984339492997435870425307701889615662735117697052538768934702531658852925341942582512843316904090936285731339107689169344017051545826013759313862239041844615257766391680806006484527279645417035815143207544461823309226757456852644423460734497673101562995589346350937386349953532323128115395314041204793282855017976748497439485720259740730325106783720116949308981737061561109638619127238716581359227808630449867301661171749692932428109661717415255542287734024136427181223511692025860627310652430779106111761163245318160396402130277260009448350254233142541460932815416386868871182688014117241137582200057934248592861865830479446097128494621481378928128354132127352104311675802220763036700625658435886303257546374788949138208507993770269674950976856460768239834508207174061717000713939134780218777697813107958106759058525637176523754409172110450951429818462682360997394434828559482925880555621062078905568304634824529094744125175487186568615039564295969974585402641121918596210742472330487460959099277285565082969942731270761365954216722439289920250961556101445123750193296298385330568631101692019295876904767114678430240433715422932171901961977236257220638132283475601013815753374971132706176910151630884643472876290327452522442420592973466987305726197126092662660726383817114375629222269024646553985066455458215492722289356406605593564615992448382855693163439724818440107605898737360377661626586671110804640402169934796046737157453571142076258862856175637685267689175968957128187780702512285661526871828236316490930858805368962101597102498246077171814940030777899837965941084978021294794203297500377439464115205717347188817885109566094037329847563370581507042759115327103999087788686362625386795192481177563460643266207735584970986288716020214733178241436905135581253633097193051284553299489207557979438626740516655685451071461703157402817694066587494331797787650463514178267311179219371756174544078334678768660077363912541964329971773249798434934849222064883199062014573192231981270950262508940795251454229442166591133377287666682611328691838134289862080432439016372721609330314634682829507998457832216398092667523706045146010049828169533828548969440435757708068543086709955831247535908914844818556125521584063508886055203088466320019505039348766758522183038172537910177859603595738700363936261302764317136812100878550915984071029065747585139631496150292908680783859692385261063748874731254905123815634148131860843879388825745112972347417388692409644111028632080845413474460930727693413313313909628306381292437305499179144623692496506318494038198270430357584720214443441909540867132395828335823559373616995155184962536537454092747321663442183215217334488567964855950301245479813185852435821224080631832360607307485219570385216325373075672996558395164707021032486849650425776764412321158978480589099948924386905255852268697404966761878141557505129718936922746731618553007429837806131479106114790115530257186520424239708836254256886339258234021413828593487574668061307132141021109961638198816043425094678558625873388427078895406039814846847820874940235416169794214451708146084668985445836500552863362119005616445008871256273877851074645501327179890918131564221884357111950607986106516002716500493359811180017664717798968244586773880493556961845416550508107642664131991835888959529696086121434042024536733811158961037335314340092836873419476599069722438865955904821952993040328386822890438944398695510022791101677012154547385615069965759892106854040012589302977300957497350359111360384534373491053338445197746930904603582844518670000659490868888326098181402954554032210884302041259088858862352269721494270311332541267949016102603033324741166602180486553013274868692178150804419378614734047351737975965387863578296420358253855360828440936137553707541165296512041636826797708763595745142799649773031391031360810066398083885654721309756582392775447045346944062913324885427284411063435298087203266509339619790382917635018317683407199018170527323111212490007449344344112489494047507782977184100442166199446914606716457487651340884575839420819893545203798915418610305866075331593050979359077796568253691720025309952702968571842547488606452804467938714010307850460059946926122782053883720095323608264688095537072680698051216804464745309467937629782155058697353051192608862815232123565568253692102005667082018209723667261403900261967000122150623324868157171889475920944320020706632254421216535487533136724078164925240138943463846619986900045176477923183260292865214868715317068733273594002235572864490364624183293908573381145870929760038938966558353270174373704213123446382779426308514530073563471119697180530958687470254645179452830457408998496973208262189786821437982016296891006403076547047777705014214846136336555728711012205321480755643029850052636937551278145018021489165628741261179505607067008278928798505048422036719524054870924205215832906485822702871720894415698370641846143892411066223621343355252978625831740094724635979492659162546894377960891534015134128744290840941930960726909071615292461747459700215859777622483835742153389819155005056111901976001857920811221441259097810619944408419995294220390466823414066181819701192467944473901352105405734857599155589423423159234421854244890565770635585803227109715311626854026002738760799438083008489502142059204794150293329695401786635795658149068062707945425194928466655805577131837962098651646320757332643615233464875484575104344223643797601726971225393196535954696005554141705063636545609405690481752282436729623511929305464206866963559467468143037808058317219870537388765036954544638773569111108384091115473468886577914496544601250647323928960593852045127368665071268993147262201252457275424692581169527398207937022599128154023753125642038911698722601910535195750338821264632520997035418531985425137947430692903865196751920939155087895242748837312116396725041941818947595651199674242304559733246268238678416275853751378103325768038898087041929443457505215161995351103202277902139808992054919181215324513376395589188909793056013353834412293839080449297307860157869456807342597727719538543211415351013578873884885470216338629700676943951242261308089490451847448369461415653954639121558153981853957740850416479270486003887346257938022940866031468957498767483461780617378507593539310661056528229588783215869323672519356885625152775146062262840633032687505398138804227312856417823219286048259696134412882123198878171239776251516556683651806966775125768767499395053492918762225799659309298683539314383895919552563939490457108547770755961484305531977763663969770215441147070608628986698786188462986789560798393325929039786467022888375184171311908666649359832924601191176113577209827591849891660850937661603711804200627088160950239844075013642974128173719350654896735672143331064806069819192803269074493167738614392433128403973415962817055078712201104152279607257910358245732949912499793583456097124571756596057358439890920700375594381317530905673354980003165051101027531971378756172340699572443990920497606587967168990121469489260856203023999156896239558963222047440091971544559519496338232728838078903611234453673280587917738620864858376257693514478892293207975786399166936265407912249906557879741763165279987634123392524710217881522698345534930324850828933290436162855755124743100981063243844266039088345922855229790525446106296801629617238244767206591806160501900954648225811004116543264242478482311906794815907476789570371271359775115162368768270962262195931139088990106351737745748733740822855633581271739032710329697117352286864432580393096453629791069661809887591346692551498446372442726587972411728546167458945466536680636851883870011026608492294516568590404039837201292887556635632572074612118587980576585869295027772928583702855287969379182161031882960421732395099703832265066272145189149896889711899269430445677061553632983467401425254414263640475605727686079979312475640663812029429270452720553188241079744629843724167308110430348550061460783642573930929760649092963359400812772252185290787654830590809228330254014980145615622176866767062143942810744439590389945485144804372668178688582547539002210700627465612744219166613828293194548387521345076149295416645500228992386049985305205796079475721223485185509559817726701474720586785331726169463048315099407441950446330998567508233257833048130258848436717043283659318963139698336212746225918986301181562915898429559469611883818448279096671776110478734434475614511725450344290368476869786504314866982965255999427313346197077438270045148988717115424239324694952237307285794104093774262759381156400418139664582407252791652404684710845941151928031227917645435977978601309447745094379905497461290618215175331822987806763273514942459562579598248355494254971327113633819097012573748354611101789775509233368320663741191278308405210073374737233737778761139726998259256595937131695260176388051891513324647114288315260739751077234809496844437732939981658635166863318793512882974220068046623372984095569784158662613666639138763770987139046252499346996636445190548505319798510077838156192547171417922689824032303643511350929742861929184818392307326094603348188008478476082957349210382741997083547902156800131571480723706641943015045370311309004694511359323672338478157631217783671391988279510921401867804485987001245193473445066728607995171836815987860631708183590298059368067989928656842896581022510417248364803454403133491604473767600224307812153492526075672493468830287764235272551150645190834815997625396702496239840561036212841376222217293360828920443529485183933940556477556390191997160927291013285568327271361720146697248915665532024004805307666357846196429366453112326741125513161603792401535200579898235587514011059055494743613083992714456549055451078369489044371377308299644225013273101243828877344881767606446953505287116209569901107560756653238482069662453252719261206719674934363963778022888227928568992310504923854595351403230391044093823483857966964460969526295959046019653318916850266824234850870746178918598682487784022506263569412498524328192722325667986552410770988111650823590671377344180191745205885667534443404915523357613305937270264510193334590658583456103552516925219355386756621885301817759395292053140388880332255740511059629475111771025925035388455381081244095660628859537603155840933075126342461018221741658460427662101956833844343643115552592308021973038395509948950243086630386934060058611496855805036318380439496302555760126840442698850540700489209269801758672422599944572495936038953064186428301374452945247893872134947969197696088697655055445396950178062417130912261884789900669071320115085977563763818386098650870069753765646213335309835149580526212869006088627001602143206324302980625231478017485002478923373015248237073110408347334307966369450809026979375274780064246595425654010306501480558881817116409943105000090630451827052289189358895760337860154098567660819584115926121698097096558550803926263175552042133493551042789862275725297284009824536123090031903736054843703730361495598668418789256210374820348265783368960959489034934241039279446752971701209243363786638104922803717613552974869103785366149011520627955019582092375338326117752220462255588063045048725819139681549422206910253434356692125249792301941390047211835368814136960981440461503035722651263445283396440496642079457585611485281670057046858557929274140750818548594565254956621736427130873627792301280931937253005223168194370627076263699222234387369963688605391422522376068591574751102483402101229079455781280815120517576615781466184480488860955268721881278011478150674036517148762172900931648978887149999889097891210842300831899722241550713024174403378026946340108960323061806719724287751410537593011606878158510834215951421641403000493799403548937400626233615340144175659280207429197368266899506269519739224388670999722197325909439396969390718979543826577738787369297017781406618946117710875185436933640948195359915090679836970547752170543040705292484151853934324072387944121923804948061697030449590800715151349941143482252954288618076259357803005224545613236422934639072272597953700755221319172101519690480154566942678769209439609528737501777643672129486851634502660411500646904712326117302414115852429768042472609225716954330040183135595427424957291153159315828603362166312679905554598927885995173989739188870944801545499947778725641541884319028187022039358957236078572694305225397009924625809208084577043448869294212974698586003814863618286780526245153587622905626947352828406714647892497762070781999140255258498913457704170462446215834173954195571094628746518375650746418504473238916684552049346485809490990674276651545471530200471909785706515326292904640166095020065512539618834003802459350468111197886092956495324210020911246664893302152082692697118658906967510249232870901801337505824220768232063366072040910374348773208489125311955762959612177940680643269032168077818833276832924134377696046573841646921272238093740000148683427559867024357018779485368566578764652935246164098571196541537016019392338025548058744937155945362729201384014534705464109398117407197112107237781311458310889915128930014290070061663506258799134365292412242361193218801988780118510579320416519025458053211583484576344026795001473655503728393305024290281835206083984037510891530785647527625976946982139890975614835374047459300631631837951374208811687548260092170429130055336492077743161610952446429490470279837357700574795697129224991651879989008206399998090376375676787202663905013671283000646044504797175004361232008759681328709400633603194151770954663511056946914333104435239574008666070148156670156808191563857226866196324091652667489534988514842532247497392326358414887581835379465391213958378578026170638187112189269272751979625212142826480557044216092771785738808927772093132631938891202453089705403077820488226657539687598932030868781730262729058440367311155938349729856389711171177271642371552989084003437106830855566038363545413385740934327973264340210289686186329848591583836711921173976102333324012598641884876736655767622697651136348608149277564372791394788856014857441923439219920966692519192604303733159294387468723843252917459694885284530251810888797790825328176417442090520960651499332837066356549621531021487801696327223183410158589309219428574337133113468581361140975796699937317698888172766676219745700562092973758145198005123106302893450329082740578913201368800383318002572309068970434406052964159295640194836027686392894188688355545562038900782019916323398573661663948063613327512752395546384927615805979506747720953595750313454817156948851769998120014164952345529735966760852427339404035579481004241762754614695935024581141071613250918492082123124497137714450279537140982723072069994301024337226085481342153005522899514480090914455756790906997004155957589072055873648119647835375250015373275740171257155478799812242037670389107196928269874386079084290405574317018735856580982818597933612157679197028007362922774300143350240851955534926907219930836345527364290749381691115453245979832486658713649736488942562483512437464351541759857002140269881286540239381409311169511944684993206567843153054801349148856672908105620010176541573005635495947356362794520270556608635896947713158545975826054022352571509401790545515289663632950937349529017454182217267192891751835195213932388502543501917747314818131887744404108139258111098839351248592025509170792599596243346784548803270326439811401515608819541063607386757811198036667445439832185937470722007248330794932739732111098029937255220109536992973011393349617373198422497663766720967383234816843561231656848244679302494779570929168746085387228694071772226352821061065196919425041078203521373220123285026168625843553461867312582555546402310970705583878382889338310792181157620990818653983539090774105264082671078765683141662125115075754491243516555886515568513713581840737649989201136716725548929737437798177970020737008731236478557734209341607931396649988758962744174059010650405016312099423803617102265020741685364577180643765912425594275494129272387654501667533893832112184535830221620249428571321746151822329465327049653508859545588209266625746605503704738448073711695765182981651967111499571784988632443351931518848619151460473929795408609185914619642759567837177744637735277341140878714891202543378394223083024646739755086265965346550306926733060337049689976928104473661717354897261287449614604017774422344672881066043059388394574329483413140013249014656067055717705498351526539333988176979046131878787302047142581681603639458580086889531795062525261726244985151650997988671061826692169235201358398471697564432687053149245499158166439821056229998716635582893127900691283978459192977928585016631612653597682010351697524233911440560151526943328163083220895585277847128826724179331275185270673111906283102853153185203201370466667072587441361846331527821174944694782480538062140108789814124502472740158347571869935311127753164611702116715390659876163035340152130209632997244150476236726951150862798655645543477496026888104304441482781736283867292363401397291350365986246635514673407587873988917609668717313332866994926698817830930743845975541319051134607207515094736724544359287220718141211603263977316564939452679970587446044169762949688738515517007507995458756141471214074515782672027663831242858416890950314148997581767752993466993185349176962418242267018842270073568791650802929057839095618959614743193988182051762407184449249795939768028038345331109451732350774649707009618818916463456197059757969600411985424141024136767629902787799792482529422968683850459205740742388325017841868463682593301563164629045497272704920676760693272878677558118160788946052594180677680528211803087853090605753828081690683524813603821511632133391375862083874060449486414997741703204433933509115215766849686573238466318482415472071354006480768565293334569514536242245842883232654993241061114985681734569303336987518505376747085112411288933399773379670436080015931829488782857454830522974655723553676472916766190675436968310405716412222359959602680883743722628361560522124303675535893155794229255935445474792403769055324313719385038249743885035121430142337307146998182978289823183323746088415111614074537516007599165659431284925038229744063285591887586680250231542791682084609909865559541301817471961274180881710406930962344922936367391491847027961862869749576388796659077202708564052873480968007476479500317191833651529809908400069148782682857126248645758225735846265908296280641528483781793677979439659411557972319166140595708368860788489727944641966292496870080096439543174140436437401144653055202892536549350092815639520872166305173152228108937846910270402739538614039640883918442817376104292731817786138574999885324153254486370523571506722703296632024151502756158719866588832676895793168760113742049818489184240836524644550192660073825237324000787153960039172171068169731582159720803569517482119690458325307465579939058623774761885080013724432005956386048221768632391635078507116304056780967045847061474282604299148221151854252892026221551301375579678981930076842279542646339682557629281448656730741652004388521288797987427277587363947871643219078674913630758606722807589862021720325519337310245446607196407087011281744894258277512260706256083707789651162325467874671789291530466580547773394466477217468869775265160461276223031124916936437010997022750421029152194757864278159536054649058884046377507713163764327953217265238853602095541885029270805832913558113151905540365804307671493669664362262659254357419149065437133137373497054481193713645520518865817890795558814129252699564872494438386697468275047929953784538181478231252977905363569926433341333794152342497843942880190049115597839983175541140759602602439756365243278512613119512980685620470181556357470508620548107696938837015903573438307639872230367591089128023186398235294310764970194292197885417026963943286663122167407783625218391477843780609062925263211919046185973674274458422528955955579155066539652026673387290462531759953022152536930993663117670235771147768290422215229564005468051535223964956086162457902691109111368948897367771848882938679185250481240283520751883989328529499089987502986640437482547008471954917938663194946582057251263334949228254464798523267306940760424740906860473306986050381569589754039392806794763524999635174611767755819215175617453819545230053933210904101182355643067009426933946110990083655720554208258278039228853867030743386552230908863605848138102364709632960810693785982014983127187189457063720916318281584613561840470931539371988086087561225635607454566709840782091146168162449091964088169925549781253281176893090449448079721249299439249771611056274521855323881938040976696618057898394139880618892813902856989728538320445876802813667512569872543652737320949164560195274465246600516806882291836989749327808548902975329995344673645629766011974992716358005036354243064768894859282337482019201973356189692202833673600723816357853361792685956371303565543988429698126848473992620566179891705320439403959771519045702746537994745241865179491916730721490007181075057902963007018945189477190073449196237140015963797210109929675020957838891560432830047292817989602573649341573817826602829867015765773938021870042961621538753154883238738704208552009685322308485453668164899210012155510209130120338059547196635757171074055612506953580703465418622189106937263421948118835696501619247245629488434182916078508314377480881665939083542306003801693341659668380602645008073223103199483908149684823072692494540386468283032989016107458324693838184621817789546429966712790973111793793477546699927255813163568701411097664444772346337684219710606813375657468472786446215318525836217384889222262469425874449743525040121966412581020246422961066242770230638059323960911674918839967445595304937838240923182586143269489562316579909747725492040064020533651748804329415345514212004882158593514593743967428336475192676496036876902935586946651740168910419389666194176012200654550703372697490060863581811403219103656798798299422996311924355264257278643755260794944393097397314639377212764674815627812375054251113905645017255127695707915478184876759656592189587815801617228897485561513461977216576218565265161691539974617422268799738087843981350214309849716110387085920071294346644434178342538035091998803145627992575451199406810032637749122855555541392009486061544678192886825181498794636024973991219329368096439212420117289324572422114964460705098854017849409492093990833816232511600647120213258286918436879027124190768665539830831300863163342880751252660670319030194399362442308520929609078779602059433184890886735075950664379633624749656693903866213187112082025029534952572739297176822157775219976434332606991415103412366905669263312919297990347895410803774193090341610795757117968758813250391786122646256503737952855145326476534195782924509460820489519490438839118585077332146253186552805282407199751178352293128008259658917069634889329894258394756407216866659731985990974449725042034421821540029503582627669247481645687991799158009183069035165737416524064319408524234172136245708140956832568432929709993023772408857081668680985101575945504882332991310802045984589814271619635711192332205342135314238364462089647778314548921463976111696309970287687941004004795685166295483388804289380942034381022727507346565446578542772560550021712193207206620340453933925655975388414004416036033698819966230464503808060002900523035196968193476118543128640840550174389421598502071292776075161399272771841846242446390723500651374269182136683795815122613820466395258902211389559999273069333555599022784021832902736954158720121900260971570158987296971230900983585956621791647081924730724692036303552549433873898169562446004085611950806835281415483479028108406087766507801322780732891423460782757550925185410543452680091477003731922882106395060301271513373223925462394279082904459005982392867473424559311616400113657774762580209505336644932216511851591091709855692293140401150732178767900880054312159713837392205884709677894168692982495586778130525166510240923580313020380418767343187781080798367355621882192775337878305072958533807829844396663391085487748724287742099042557610370368097611778248307256199112083980714325244428647053055369332082153375410459179496728774448538414203574702528549004303939169706366050253561942344050118513679878882573750451996262160974916953874932190387444495756904324653337768582485862881331028379449428568243464057928820114243551059754623001812030878053923304085742524392265403013377282622281921371405110314175989008246856478554691379812015134007488058659822491774354999367865640176339013550527162272267220072830633741062153252759910522796607286287508660665575167316601559485775604614086563069252361495697116624757688712827900884333343401236385808532701164677249443622530664385017276624152264217203029991746684012758579154076460218863159929493270452941753363181797378326071157738993312043231553750672079330238330922545041714721122172235067406554512155850459818596413957287297129566101386286427018866905031705462727097374999897740181353395113170016756542462685170655074396064042285327858673033537439879419191126251854303258203840365462616731435443698805045643260225033964882003940152162370687737608480513703978957848744959494633154029320332976838952945723309740297382445343544506891306294084539668001872400539383561573394938511831980268210681909697860955761766637884001506595229536738211812415129053647739778567539448855271413509322819550654003158810880274012367625095576631886886345854973422398236249503041547062212321234667216433477824593576638024099773689992044070654404069344788451461798412854764428616121547746941133519190723834049118619967052179434039696921215230444437645793653488998025786516626851629815329348997912053146860778021944996539987001012888125881719722253549817889827036635718149492016283741365447069780942058961413646034316507882659968656833423304216075798881709207791438768224007103453144253012028589156507367612988990657004564483695793393841648659989879676874278141126005106170945447941040774087220994573079880429243826460724395262931597875939218942281395549070899676687374086430340700074794898893395070606860678764213733525614522661728782921852864551382851144744863884372820307226687662988234106700070260534216673984945326035173819044790145466260933208459138131583334462453603658072491190243570928311570746619012969960789260651074224694851085130849618602037809377820625851714539085330666918504280230146652669236357534347317734798994443526785675559944734635265055401989301346868607143473891434006859991984909026158796468383667404315211690184556698069565057112163320079411299214196077019972303706228105060109950104581635536106779057672330478969440980292714785901530929175754710538545228992818042916874831800054107859832534398070731834561903414218075065265725523603039489293039100309372569466848955049587430288442339052778360840139507331238070481174838170677030823030536593664822951813105752420506783389195245922212310507986722469472204841779525458926789974673404075224640912183934068898822643994632504905118026826571546414308794218608673888764834176216046610383509741634389268049771758338499573085003916176034945961220003436454977270525608891085102311973907832332772695328886563199506965402724170815701631390181943646057940443877263408809276630290348891782563105446793289610433901430423878593041371903092713953907918897324272989408600633087509928530300460330071843155010879316242880603462086523367766852062888972924490207557555707980268451401276062546790583511416331867952579463284776740204831701479735034294427448367547910157265252817759250929801656902468981930234537932614637035714270664043649742030331065187125834123609746128602181498654451194372425820498604911346775610786098090601945045546705146321821529935645153133467667876155235222031699976933653880454612865807399621995686499531428527233202124640704723974701808805410472176608708365587182750701578367607090541506168037825235607058882400627313579691162007665629212429255332267714668205638691797719859560258276139770042689212696675491487667336502783592327152572902049780984237188793629739402743702929200047017465911309374800256178666672636924713001481850625378777072787356973123622372349959891570766481237902663490838651805727870977302755488194425718435507107248111162179298016682002759288903091418078339127514280562223259303563224324867524762141975378808744426614987308561993841720126258112388144761261281975979412315301992314139056381896938941382568689550458145424775355647183847629231911516428950002983032175566793344357019715218487810216590780365012312394695329707586186782104555593445511443030824903371656435512760344949194926867820840860698055630352304208923891079868363115618291798262762703336723508196919932957911533275812371858809862437120445197843197339083286380418194430727539145973398852431331105646136993038515435925460104745242566716969152978097802544162640407505188542247638740358534040201753754226929807289584532250349341519635953187241143865791014124868498417956465222095091195075636141186101612359978293489508145076465245925141733352956659794123005599045824042983934641709843398187934887140086670503482406898988881546338812001384624381968643711245739981976182501837186237138358723628420239482855605792194090064851387109016831732759065197114417746814793467355555480627370513917502529647793805956724107821613929337398044458785708488910725730316019527012934549752659433717642008129286602506581679992720555866850618009489792533578158600064167988219725311326316064038026156870549905628838963203256099238904637296067336163578427279526344269430848208717431898924506132178286160271059118942628034231934962544756535331939650986808059714330427079889148003662889306324203886592401751184076256957298683967984060425399538324157307312140432257310680398880046796418634995221324582705381793142433059490883257650455986618065555382200448406254273810790855463834154688209310197767272923435888680696872737714611400992619822112147050374944577066351923997920396286669646475330900243908988595229999495729225109786441377384538535754533309959215375177332873997096227447794486455648671365235941458936758105396845228490301927835912288016109143606603492395792056209299916634682970349459691337466142015613703960432563917242522069537085742788622411694914609292779793453014325468116309136821689727854505905803564386769238900140191288331850168972802775407524797822820961498551214059429424394283443596927848556055047649018965978225813738201062303824146976874308502062608124664629032043397934345883593644627905306552008503071586113420266366035080263231319380601177475747321083156207948072891654113559527315995782453298058120806126881669987461354366201362718525855591984686587277189772776628486098110783285328847727921633991786533659361877589608181603474253802637209302869334689975045413373860610268112168404568764784952960174914943444607286520786862392555612606911909796192679847490267501219791253403520421365757736785072390336496497102543462161304712342368059015856489059090634349448208319166754771276554374969272731793640004603884328604906950101259495370710993147401758919606311545953271873433843528435333646572130675860319119992346564521272498251690822706303907391243435052711248715549101759596374094395595749307136928327935282753086017627302062045036769116990370541105945376820088230449083288019322675150749971474413974469292696562795056164206974399627666835361915550500865600370371753323103582295392814346126440335942676543994667697659078119137540829667525866374900630274446534778881788730195832718575308666202567133637056908100254240142461663996032607095688334001847972417511321911939785771902435007569575765213270734579169606584705228993202435040013096582874158473618691463463825277497384919342621157017592809437131877240737354153848146022609960239645126984302791924522391870111555922258243059996724323773774178449593448561936079600527316864878361962257974943740495188929683280520556233605681366244340432708382380114799022536464413271791224085403093579577823067958794854091372301618432804346996069760121810429963648688104763986936955178915914134704622698872688036398662536012144627962562110445511773187879384414311231418209485290346788769447046353341173219947998970730711276347790773950203389924891098054792145459010195253692908900198527649417710565643314497190328764884871809987866790649594581340169160669617704500618167060076280825282961726210632799174087644976605569801578649487055813110236727225313444801737126388007547534289784886211638645980528318165674122433136264161618110860613877524896228073762860708966634781835446538972202683564652825906739730406177942586495646237639775127969558025483277941039018783014114565344231516364332686736650144277848138308324937456225694327211488930520645879163408855895026595874814638930463232012353461250372547285132085967902462945118409811931013441068597735098657279711058110705018066288942267127215215179722605671133779343529273585394386734398963620981807744165628313042911860904352947317431335248305338920921122496258223815844500322219166983768487271505121425232989898386808892294975864830954338954469984336866869677615580990366013681665711903018000289714180219056625977608362974659446550582513014349486440484052975798285975468906116326128000790350857155018833027192956951965724008505395918847325108201017642601208483512567186408385372479222401496113699054589076710451292535890168894876477171891092180011240726956368354012667590282445155973059689237215231372885017137961135956854159958544347195590574520577717679304567798729866202066879547977758090956852621574411226903925078643987352280427731216720165189498429180772511361491884284340882071320005859467737411053403293371966432041463015209884249024901517451063243975101629680933605441281730910513102714681632137080354743158469006341514490441382583030471106818540090831370988852846740509454536000230447812368480681277963724059287456662464777620472099404521004306982173596046416021431241243401430508279737672720544708059721273661429623284232677172133688091114077556034059628685787620582892452824852270397747247162147718778610974653269853794226789483292185213953926190939415947939655055803446384471700344271135392452982619149329242644209885560997411852633846537626131138973786951493751535172860571156142729474909322431153644914316766973141394552574665760920264107588865298227159521774260911683976625247253262787221763893608483680849964966247129879590356606387076531539153163275565633386762362659267602018034880728837529427083163010116603222084430152539784361307125166776712533251622920683629000541735286404029345566147162009649581284201634877421015084803057587557509822504716401747289586661405110823246054130282575049467766779228724517872109601190382413845169391669072597864013907401286052533431734146818475552233733875546352603273193188312067454481814530449346804678576158070365882421006818078144787944463613054347645605131234463941794627238534502430581572178956618460690642355654216674190847173663987127352582850698286120554588425850233807101047112470983877692783169765392926589416818910322996373759761682074509940235528126266892285105206863792865108540098081938035127066298095751352544219700855478205652271324821276873123560801581372825851159163253328364657420742076846486980272613136459703504289946356189094227207708536008680045865668137278467808070424520102277201101142665750568321588773811505842369083853705153205996354392459101879697636427363974794123011073309192533940959872716674012822284397278217316970525978561471760568071839774766888230489219773441878385099940795181956287149001087048457089826051367093842799523246529798477927347042795211918104704924567287861220848934155691200953984682633927356263994445960986878711751699858989618117742505588977637237592735294397566610638216232053814549280771713955420212552633982132616865585950162826894147069057391862382145984491332820605643266149351509985486840001702009931892652510800053552771286229559363268022453158495600429850629363583466578582108997312087693467247743844478402187587540246322101820958934135954563591736028871327625218333494826813414281535758020558951996379988784276354336512919987104837219355145231364034324005823724993762918055299153772600701938774805527010313872459556496961521340103925937785484583213078541767237728493066250311284605141702090538755564776363728030743104523411413529337160555093696483063335397886431498329154521502226572043635971346770637279699298701112504924268438937279380100538606651077629082273412631822382989080309926278610370119423069313296426349490167224281865601358527310544783123901705440904492713705253690816561086948943316438592455943043440552383159838117206791618651826229256125199009615752660518182754676302507086675604424133293476519533231583143982524574199604473760057810297601201461569626472280399276125938801321918809128284542594396603321818768063178538395723701377413426400807904216854563886377161456829872134495718420228365224087235022119711584570990583905064992440805646195670015598053743006774815896534082294506665610699585660209064885188708204868922129627112836756396628829304847756991532788089626341495197465628125803101164780237511173186262816577778689205622963697453443116167573470168297378599236539570946031070814705247028509044103321765226260629382720479437826372736674845594131027325496760224027683794299519812269381896864528139838533876430639133129469622063218294905810250047266072296658149874445520868639321977313345206323993023691407211742462547279484730058568290099708653499579120480754461303743543065512144106833774043934789963942788880201576959814620118937356826168758612915994231008676175827788863110633753351831900438033871554309780372274244682291178284700137098562727512952423724905938419022804114425761134441660720103633986531722450446360975392779327677127209270118301568061624350053642188188979036780972536099586827663118528056523931884434572799326592022209305127177629054106028826294469503569784814043421659908264663213557186858675138104308073004697734287791732014434977101078403049965836456802255326935597737490089268687235921169806804318781761139746243533414436719226888047633747635012380967138055005897878086497060572486935862973820341209831590791813228961309477059401677758233814455903196711020924614857403025985901406713116942731739492775608731805633816247675686469540344766809510666142523378861974059947925459301681918924532945838098125700606017237975520786906612064246352768008706454749961921650154358746212565252024883365835643068291454230689295736127095100742042085755843997370209100996939036933275533500375690006883350339811632740245836459281158635071096710117197239960378128422533377071595916208616674351486832038959098307330910228385760083693999219698670685643117019201070765431979832570564848720077031190622545744012837661181043761334294620475277168519298789469037786846050913121706945226012912064588579581817859696410000849340759113873868523957580579228819255979263136585287494468051996021371391386321269073516585587431908625633643944171041283318106444628515795528845195846032074974876414334878046401430723189066847517837070509677886589156618069060793001376553900303084779132975019850054296322357442794415220463911349814703071071755885335290388767613743061494424568391524936955610027554479902892921256437680862019473499802031124217628220186129263213817262066034227346201803756523780268267729132048403699871529375710896372625266855058261616283104144183026736739647356623751797476062707785247590863441079444996584175826701967478249692847052481064368178542909216087235174820571780790679816081960920184244349484969739465918502968588500621479372213854769107831224899381658368705731805339328371098219077360355133205371138078312425327023650052176859507501475951782207512818879777392992875538739002400073912999580377322629607837800141839181570311715055538698475795525531192318933268396824794694360099842794558637078703141784064955603719642107665432327792139018898965680649251861817232276585690608333413935188255678130992390205798989980897055800239683391456171391494217972027120209323746226486137776962767914521960322170944939494395635104619335779709590090754712918184440842150001441543219327731323797152061851232741023505858617886975217931198450502204995648474497960735405765526375127625494531280456986653069887851435960380525814868315506752449622670461944951777355004800025610337053271721399250514330630787545676501814882837643687100970504480812400925859106895360223224234375214109723383382476320090588863806488744105872216558807473216209406512462915149193357219589126557106660603364126254862711127672422186101180661169230065909351344378008792769526179606168087505622669091483250384995658730784469663257552843370320007592672443790494397086852226119359859561853626406353186727674689384421428625192656227475616764282257224238193743835154805206938118912763084622795456928083071484336955958042882401210979127338506821947264868846810618762809971946420901173523952705419745998679007499592233512518582135380945043102270555937889052466178103627569227015739794859502784295836456840776659235830633143854393872512828454144798070311316647053104096999720076448106376228886520406028748579361939855941362968833662941448596087978068908082360103154963913234279634871000916381724080005195384461330437364752106750910653619274659044661671412427837950255274508263675074524280088874933366290457858533900142554549590023042454716347042812112943258064392204128393598395236210668066318498878245930908871805860638453963971875617532280440968738148702495724018864722726221865773228535313491463535713228532665965638535027370470487370687306138031692074988719125176319043682611754982158400440925145437532110545580135215081550455248968470550836820746747763723506407468510980166814424450252329099049543634046634964306720496903725794168499848656359630266935938466289945093020288560159984382050235060196794320713223263069898287215007960034005716596309367006029302172253716383101790152800000371406120417240840306146650820670233776302055674126372363802192712051507645150395957064478432944431012540162069511982643995057295066129150481196293145110477551218184420524877246898362871385662302129112514865741455505843323118700104385306578203292160840786689792762181784865108639214809497025340209186850999468821775174720082363143092167168946994999905327229327126969595870759673081269009883661976835356484895582490685614863183328395287085151881777180139363292008120681820559916764699227336265685962075986564176182685456231849082103213471141532967766584227260855131307885987631388232201157311628575269359167862690104458827946021151196986409911861670391317045141748853663932030394500439981503795524430621419157874171500941216509412129253089789135325238444217339508979064099939045075655514555525572553119761430741209625434008596955971099270046354526869240615171883240334797416363590389319476506447684116235974818154199815573622122356453439762448326904969183938777748584240536562290834488951693134574214069261653681665780181072140225617336703940211731863278510672313224535126776795306716725918722651764662756114987059126780328827859094614406900637883671893032473783007705086508798969665301989404547656987274229740190059879992376168714686518553409203775157146850805859579675768512595771443054807571076868732646725536371413684440421402583148768573194322240469625747663577968433330011994067826335600830390808923418069875880414245354387836279148636772814492229396733449467904840296936650523671912545841817913492773746460350648421236792631876134395185009749069450855430946515673555083088653619185864792305536837800462651269437858582438025754647518594633159933569313261370160409340489367067382030009001580713432220052069697341569932933634841370966333097727827676520035797216150108340979512978405174634817959317212232675107084418091352313920344915957846121863499846199538756285144017076424247222429685558163450360405724102698194553796728388809269554104341503645669548392216435967687006152067078896944900907997052315949188366305026924860462168144334424318074444685688235132551897307172017804322227100257165964437699746944510637732646449477259292938191670590293784856598832399154222412166843105742493032221308061155025335590943381794655620306126663169309883552958863708570499471404664317531588130748628345646373734733624594704548235709597141276692337834723415504908249881524375198445518230352758148903404293210313909551910424074281385758646466184187309839930772017270857092523221926423847114288626254979610810902978940384699345351288033758261783615050286096995076516248416179060566351743964359269496114537595789021703763185229475099640186176484845344049740218971513234593767156521368050239845561210444390600057181763710160203658031479835662668110787472812403292320066673236754991661189959030154617457789430966521969765205923889273464712275396478514753861505447576240813549279905565129522200908344409838465940871681217915472933083776045334023045829294103034691588532257327698232136263565005927425126144838788560744586879066409995043606768093742670328236749529087813733995548249044091984832089975986309934227022648418103309646984638046199047930293369833004858277164025594638549023046140540649078820509563866172116242560660284166248174848537790904447891102927842443353504958662824989376415383476278742293133291235829207826879116246056145612777311394769915295270692143525579605595925854677800222139363627943201945021212321641539550753214468119297835825675056723091734141639406541914492099323225422697670509817814742357440031081680526012341850324909068162189352189340201700266713520814811378645018682823377599742531664247844476141017523801493801449191996119281289069768869993407040994921413677962689861896771108566001990829598613158679689146302419773977957092997430896964341724270472944893566886415860891462795643279693116266606950456407963276767370771827868274636277694148289469357464294596529706006137541435256492924475965238513967304391997467158981088513621296217686159535136834422138382261554287085357595154774734062810254157812372235308786018449159350431581756316304320681118193292444085845754041280478754582523301540384718075761897176293459401331434426462625479653863052886317052520686068669619493300492277978116085722962644757728053973442548813501550946321187942784787001801187162009493329744043406856855722806033265636766371631822955783303252755961422519750949780744039037457360422410600784118736869769182728681038379685410699135678269404611337526953059103062133082566020631798008272089459895240665403169579951219382826140446143706970746538380608795590685833546617177183097799398501214157447994102929248710213766130102147538772754349336060746720562558613176813711914779166817920838196131537437038133221712617340249313609381272117076847357717390350219305908729702138825831360829194972223866711431834143070779240483245208049810022625903941660179524494877757509548488370203378719045745338160268094482854060770262660805834417322782726877059062735876157612301296549988331520070264445411480559679567856442685577098368977424525552663080108321557940012905010068236099283509880151604564918836598880746736153919497760635181539979045368481853216184621745071691592420712240594182476293067963528173822500014863378415905082170207588207130204052876069884831397739774009023151185812817675071002868623637868576679920432039961239108345889170564575967090310162141067712489611073064121231999706862824865702279160585039367935106777814089319331031911768278982888656963695166773824308706627493837339688165409881137279813151663312400965888742615121006210597586029702032190439785057130276896948006592976020831340675177059716849869232330962318589392369612612795329091592794491875959563678471060339756852571452802021027655326848965762602534684690722622520509455934963771747166674583003872774365454255431324090341290983176613708602499626054318734535258617424555866872190389261018141192724875893815042472641979780750577853554550302779758578910873372141399127229241241684500845408865573569394677277402291761071265696022560833967082119034423719188813482204766754815483690639320548878081076117402112889722937402261532526677065185967413401892575044155925163514430742211207324391927549867973204247790930228421467246541157160865012674987444015529648519219629639964889851158370786642013310221551486720352516207991241925896654559816799013813924588021633617073842921764384443542068827909110082502085313313076794999754872945606996227752787663459294530686521446898727555373731304501272217754716282336857956370424827437232476354259663479118761841771085043182798128490932329791542108059940824716341231896932673210826891797381024985959190525612637469643510822193286039162520414631242494511891791925233887510395934800836288377015888543744280536999588617558905890817006661214347738142583541480911964483143103777515756291787966751700601139761080904269008950240907978012506502091842203479375440454031312040638925406940454076270547958323878815122744204742641755665076335473183201707258436463086470094401518662326500298209926172513208290534501108461546110450831204028575361087667112122578830639956011374470660416403915627556674543889268451896547725593236653939683612005765791535871525037966407335168925913968418053794507173018471476329614679039120165585024205942621066634415139181555353858115290064158334795044407275309104221006502915667554005574619850351798805166472506125884934286790498191013638239769007858682479980539468297759067110284012355594903305064790370572196925744961804676217710179956598049428500629747540215862751188259097686772858380319347800039649771553488236353892982458634973277481567931871482266442359457229191823429422118332129654435143168388872347935673589416521291190543342065699616590383499409027562133479857334073104469943512616839915719466535585104504610320635781490873812594441914130031111840990983189660751872418358178591656263639052306622886193839560392179676602202474983387931783036609716661512218796431993323270344154020943808223714761994403697235893788375845269977756807904465539312672065938003912314408959765600388681263600899199272334225108905870731069108942486889423473594334243712473034580316370866050342483768808244801059803015478327255925064733454641012402299977238636613841585849440540651461287148870367999225201909141753931294383519121368655308450587618038453302064717960039629253764590890471043408681052469279522147426679859501204194657882081244488406869711932886919590545871974016354978403792234614503957940217336037931189005126275908559605870766687850333786954096032442898566012642662403596038119174607156560902910546930337810775967213559910766898318949188274443983762711901764361361327463715096018647852446626906992786053474791749716400707224421085792137892904072897338032867316907549907922208422523899985988454809540790966209676761291616555732295757189674378625777633675488155973550291137407916186629953727641887825593472228046428133987403575939386287426571346531189998973262941633342249611798646796864929996259411092488935719347514569326537830672039478794902162485120908583250469061418458101965232501970272098460364395019957936429149252220987788271809139524177207352445147922058366123793908882296979194013303118125469521692832151088543462762943994453597475611651168590803962202436501119046862575618628815329312449191112076440850891933369808551181012934067863884392442013927070466519016673015385550644087667483252079345081785222557514981353757634095307581264771660421099443000083656996404863784439519403654675391574983945516701739629503477413774484442721504732400108406322796520019313536289545644586231191769413121055855984221873897811240601757931308910776562983273785871498043868942839554138664716288262593673191727726770263303009742771425163533107962399351225639089546842731314299215843427519418956285914298079605888189846400663566763587910715915338588384471395015954429503698997270809946218778934775514479570339040286088019143140567396231247359785513245422678450307982815046490324613666852519666274498906636033257921602834425572764822283360363176964313557714511894566384000862208764431495370780670582558239044715581294188666500131476615354219729994114758809055582162232243722031274198864442783154228524969661387510405414949476010755444994598224975605617587709457215971239705564192304948955471026436891833064993303222852671148974588538520159237368241562692100041469836188312892134683499780907700318412140935079971518810408279805173199815587599057922309667856274547883468501804082382340438812363073641806911034354288308975143610230095341991080984807906207735099577280050745217189768460842116058309970645315359630656993726686083411738385351973984021749384696667994379456576638358755762369967047616209210269595956939595270652632397122553271825011217199491664668615731932656740155270947874250722390750439391747164977370947471916435752760042912210507985395881378373333523492706737198273488849681152498594593681722121867747164135954062097551181473980213671111137978357950863441729274729010383571797133200583541357458293384115361461115858210203051074077401834942050810581574570227549508612609330617326290890152450846829701002515132985071837193374185022117800967671318538738406093365541659953520746599753243135732370913129430076168420792380373464359189943184002964016280684239280033109602873921201676215308059110611263131902104317322494990756343685624034844919644925853373329279570127267944463392287037497986346315765676526232155724229762110557941559153281543767835268725991146487692309483255291817806327364365880877323363496135161355523016728442011961154204639315441968387990000470936456990717946940879137541585998085226006610719702595399120603109869616107733421684794971974031057457707875284471898543198492656265685662603600739731375847804187525726679378349063186900347585456424232971967580308162025337457484684325793167848154679926899681656760354021032051608357391991063496136852358827958032680103241030879617628384908939694237024904592547564567591532213525270877688536984778472899589657118270428541214193830411419475396115957745986288495282670166147713921163748786686941796310693655517365120052414565401659940479399668908511112968370954289722028930515052141796398796059272115407693075689056892207913062698926541523163595448752762023945760035179391188548251020259323902115399576671918041780323075183220809629161065582358368113959356008344241032828331747798003539561119017221221302518316013407570654691664890096778779895316803074169534905335126736825868400831994651629896268041036380640943703753089102081297359136199256939038577079198832110057595575355415018199116282290793792172588258804704538495170180850056895873838338182370036796967768610383046057999346486826733353972609913716609386943540922638252523637127408663562221950270711993239463049783069347252096634790049583960750933792562576159454500130695905119843388211553479735379718426920825222602460635513631314294203196560176426576137534726056034368345150316185507512094704487065739901915304467273312118067310509001910479925045213160374639734785505941180407862793977877469584866054845435024548478902874100850081788149305508768184893646236691266496516397553204310638935035623212844625177098857453391396074741652636305173163085822089915602568767315094165810553325109158039048490909163484058760204917184198702434010350301884868603730799013855225114217066001378556398148597469932436336747186522041297311458804835148078618641710317068118639349434931856076269451823127151969338032592565559621565643049413060281089589737052273377494662280080534186014881570681396355488091019766358869870159459961657238925853702970835130772476896006306997470342975867409153891026847433130680810734655671333805380663596488071218146174916573136044977788597081032309725923935222621796525196382766947389779994011159963648085615749089173028863541843222971769092092701097784271200958374486392181205729300342449995363378745402103184199234399683878774866359555198098408550426052065234063040391887092395959476347496063600866889005212007151751840034187578847824171353765441119147343405588533012665300382294582006084051447180744851828381068073637663122140996430288779569272913244795958305932954561276680209082000923229222425003545308138844332684837066314871807850723404057039543821016511840827442528626838400197194009080081290969439700389702629050186669692976560645244510512466002580372328330329264568926686019521732162942973621475872192681344132636804957215753607502089740118313665348326198193170366399949525720606208792070572957403036295333601371580058837945083660444896230060811314190957460031376005292438029148962460827400832114322275032254943570021407173380357859794868280080431396263376407471221314445624830470949031313765753804143233620354474225221187589569606492523957472476754472727487210056851433896289016378737784282241658439588176177455211876903618405617286859951752748016448576314512902159484406402708539050655984729999387968928325515544082155335425327764559320136156226274095731482041656130545781629503500481462812852188628755510289967186496093210649977511202295602822234038648710444453891085997094388516291104192031319100885150100296041584362922266912948861864473386590437755694789348930554319357800269647446738440019802521333926854766087251578524163036809188353781254227360833755685175290056261098030360596038937423925678766900318587797811696407861893577697916401982936263361823310738805136046963571903146855511725820491231070972361352364967027093352630583899354044756546700859034035002378761333211718250546271903486749403663708199635194562276350609415319267799198696959697638337244125026649425218530616983929705746552463101271129841018626568778545734148482011568465862105516763689448549350074664868817074648440539444027290556582253774393842592980198093116093681589616797391735960200027823061807023826424575471482191049246857094123964589607971902199752094354475101662536612088896032017728697200975614133128170708010537247022365246985777377878014405177512573528839839266473813739532770409569826183421191659691690188353127029805008734804839764403319748348650999358787098263917298479758846449233598865860039352105641850500098235621775873527413720599860674086471113822654948135107516108883693554856523185012784562546134261821332960198560567921738098957353286859667926578623230924773519264116326072870584852429845193169931373027161297824859127398546413915641929527945106004274650914053080979865224162269131676146180089627080719697080828546130759300361482125394224863670939381936825517881328300203124587564903301250348939537489597368006294824764050636788184563081980872656939472337530824196199168096835583936594371562558100731501548921966259158241459801271735147455578547803535373133935548208329506944996271397707546530206614235035008245508036567526624984641846628299190679858393722379471801464519101185974517796580033279818753368927594867944993899385201990902363533351166897554746449536501157206041584711471758394543148684539978077750856323876399932399433220537723353693858470727546845616356345986597458134121905712689299195601378953163106470449390779866731710074645367052663873343521656879937853483237612404826077734317074695070568566240809175684732895753960234610157134645069106293612829670852267452239327156780006681806453458768986565459853651828772929046834707142420701026391538173834886841212048795766940138326070132141721276260399401963436305902308024693247765178252300374442563444830446381259747200884285961282980888853246725350621128939555442896497677433298002651850042574495117065702210674498150175304428952149732314683533479413542448583976496475861271983974900748978008464219029497592579391889712008115571755770118395794092570728105684956465606961611121704695663073856690601682944469842138269269440733949419760266921465415121203696143816141800428543383810205612210237642611848836245825128032564062841020078126117055097612954780799250740861559599226377092773128118412088270621010397275446666242585917750491461247228778224111497195544266695173165314085991523404194106234409659733937319865920254603144019361772792759245362703780101460884651435281312411735657260534611900484014647197750631520817103434347780361405072296613141081018641330065548856409740424105884726217658015948107559018128521126471868737503885563723574798298504119814307177435340984035884240846455430052466031141195746608952987841498632645317386879840046006231265858527977092241629683229440507557078281767068051349101124001997591010891880162773867604693144583383187098336902438529266767263826260924647333013193603529956871730620757795001935334994023278914194842588913211757637597463874154192477899094151144149035623842568128662645799488314738561486894756768787829110768157146413029226764967101306956809712894940997601803905556072716956220253064102693030668846945257240619325110440919085896812288768646637029692787669578500915314732067804042680438584527910641149253753538176031012367100556288953588201050502831008934059733961623527162833177756200679215491014551972712060912667026273530862192273105118224265534205919696793291386760760851592253992893224719225397893420256388518675077405967118371889708985002697389828423061656060912978497211971127507893252739130696116322979971284099535463923447973264486649248467288464253018488858778636999400646444062643761917052382796411792270629924516581890186545890254803484838807871809573994498451077474233319918248649043144132766656976533122334108308988280332839513360719923853241577467292559378765850165677008927375162077598405060803805592739937814575496046225297215893382766768119505360066553981810094941436293385527939452501481419743541223878648588458444571549049565137590469930887624725893011016541633225728977770093117564840426711215519543587325599521921148867922564345641613388721341943804138749164057617123599869354190250996209339551140763963995475788726942875921418168089472714516689004367309265842136171502151838894956114200517360789116491488841647415504183567440075066909354121059270513620193442854626250376562925568597419944745668560519137017375683347811459847202669031207141197974846590216274534708312848392285117487835180094719955001154690404624514656934721025744527541116567230497944475362050442063300722966857080051150436367751549698903865703990020758011673890709526293699219877110773478351652188255805233238884895499471908620488165115161947429443368706817175954066404138784277848876812623915797913454667554983722950396599044291568093429450390234265110925400776814200144682447337940676550481618803550473404951567497064084241868054806061126148532752171846088749548692693495007037004582167497185778838438532724618970763637806971737034125663799479546714346281077349700941873133113715639360299495804289520808151060296609181767286374149375973902773159791008382084114601857470569609289547632087030761724302160357200227836012844946143241505175287553427130981318137731792933142010210544207846488474427687727302348400362830527011896459041371879246721148357617506778460710356825114338695221833853364630242998501467574456915389367868424500415848284915002898917295080518026263412275154865970282696657603401430794270923251626954220124158961712087056880888863656723117641968483304250012108698645146598801298688995689566426271366753377366515965361873300322714177867038264276599028809745711543919601141612390642796411725784682048832841726161044885085538537362206802201357399434988754929091988089315364397590881055921510088174418978486723445265665076448496185004740907908878281807241285902531735385606259307067843599904042178192380487034271300390229955649049918920312603416074376105327108842880108381808569436450660851180489752437163956976913331819069098665650871524568116881657301375007859875019147460443482560142663106837091677631894179742171320275783967384082093333925403305258465239654462875575840858904973658890522411957705544447522704137450194523942970494765449508308969951382979336659936514807437048503875262270232625632638964993132972234757860446007509485820866360904989448130567344732731474460131547147015069704654215999331296566720813230132304811740800864866127927348481239328056358175595584525070475591906570625615370150117313736830190306310191281497774670375837498141150612122134525971393762630343239861643137888645644298730882936613435828454733200104836591377443044388095491429563992814714745066745628984892972932755762377015608646324781436279391855181002338714687079303793724157258286835242463172877820815249993828279566369361671626344854725936518393015120204140225481358160826490099444855578056438705540184927970569173012234001883844759448088786860838214747985531255662797364074576439495232237644730068024202684665811405103661889563510498749826823935756005933576337160484484135280320705299383665612990623035790789498097918562173515725969776501022473466614265531823949205319702444762286044843104085922959007024687954282474815987342264049907429623652740165618194555213024495285896101375919460625027655769931835753979485087773214738977096314250175355697731696746863907102306930576684384130134341439686992375893304234373069347341201013473392972588770946588273330578890943377531776339525019449153216494348864584540056664618501324133750909407257996039883965112416733367376287935542039151936961206239336310691006516281703139028677958306795847765354193630874052165520794139343451859130166213289713683352764588767890619609487546931284652306487795143227091564906909541969934928855438593134651706002656571504951694236592020714307943455608980448762859329422524367594475863248152985093684846887117412473601548569152552202874783413680855264430196716539443695674334196734312614701951623466974468572161648832494266533320469293140836912946069598060204315063439562246816021348223101866852181884814151711494030643269910616191605788556939706499879160485707505153347638986287055197170097309349386208692244925461182545322864407450298890293760266320533762238688511591142686089720113503712813139931400705993697957936847417878299241730100865253431463214947931626852411418985838017454685831849315084353722507651112444665362910358392106774414857406280106160577250808563006837048534998175223172607553649041323419374692759204973149914974962510584184794770049047280035037625536030511613942128891919763718730586167772558902705601197950294966578245256533475710315185746865711958081633332359212952335736452597571985431913209651340313199952066569249382506775469782443625252998442814493619086917096737514936031649512139934234129182364402098706386993251129899640907509235002214965742888140558782890054920900677288841804212152465128859246176066815964322588600061799076344197621419554575401930051952500581263739828913685966600181479824562194824334821929535233637041141390981797412323528289483741491536336509551227344509077573567823059249492968692157084603086023587833231562619529252272562386661073471833532702687976601112523247980613091088221043911568635366017262109199807025015732301183286264032122410854749913536946320006481170797433767621719328781433305426869670037802462395422881860864087753279102577181185110934381686829118634557711330514366383485297442354153477205311145582036787247119423173084681670795779601823684626196261743289432710070216091391174223426803550875684996685000307721117903024372315939279550999228898238428172834564766643676178104939136465857188781258722992408666981094064448680956065041286577443910390210179267794174769735153115936820957409798656605168112049200786920465110979936627824822337163205948395218087946519720326533572804007302585665296304080466462717277545953519626631932002815018336149052939944809563544708823346881153967767627459572973931789533033516858239326409446637419290579603670582727269168331291777396614131110617870583702084805815117607043668455532087880242257696003713300536507312229917349636034668675628081650667513941863947562070723597595543757771511288529364341938448583833186037139133378801571443357972373828136563277425552855225318525616625869505338433443544489843922509137817151944987925710236781070162792585154272296035065460998749539136079510619184000146569609054446045332362445652265520468212989835462230270078626750998132262266565154715796209005832583829304834755627043921963963695189096348118228017400350594705522046702252595359983383220905586215010965193760300741183173121031487161788028856805151269218420252076031007535196933737586884251456062990008174181358112306924601209471146131773601163053502125346083263222864199569562900649242406754563103297054951393384957276919097658969413949145383637743005339562516764571987585252848781040474534909525516653652836039282090475690510008061751552795894830071459213460106631842017244803549033975927797734054664360028030193973484113608439742805287334028263098434475680640580299225635541077628953927351657130597398594775940317434138290424837352686131251671540692731491299938006646493684479576401226846281821192149316567559964238668353096154071116264281747080936807310083025254874472403807028566329122167886197504497793888965774652835707852740425754795662071033343819277109102358289586276889130850444855805161740629590473780661282538697138235459493082438187242413547292512463980894501627990659407362671734021268871796716854687953627708626413936229205888119565475654383474650459869380901177954416728368744230396939909603130877239166882973554441287583712939135946631534281016914277445696981084185244485492875897220743266596983207387759107493233327845019017418826906398031217464740293566678502376925598268199584616576296030627815530074877480071339596879185629176360272066302461117807700126123892504021314490082376453425859195708403434517129700385603292791886676557476113313325914948641922153295905354120343299544766248727794443905054266465767520413444033471384195851821377151403977261829857079743831481588263210498220692521757642726166175801370253133318556180418565890346568487856510108890687402490326837166871945460989818710730694752734447358935886040596471028516010439466053070388536682440634171185642800640064524099982296715748575163145138125133325404029547891204051894623164791711032874828490334837993558831917343963317046600587725166711889587956420240826021494263842612648177133937782144442851307884875773159554848695928749270983227624974315564517629062573970667174125643983723534689963810682949993808805979500724242691658751088315379947549896012806870945240613389810510452843028814255224384973973162051592399124258072683219640385461228474066472511446154555272358992830330822782788683280280741097134462972167901833693070730733888904986211133153085152752286986309984410629788865811570765287648233926121168454411745259267691724335831538539991825091313825543286022099198236297494736165395835903740178586804081209606382439193944436362161489409911895078743364604873951108239021217713844166707296603735351657763082819320671882324386045263234534422129778369145187464689156429495245723387831314182789696509182040679858694499372670757092882382126801305005438562782389194915873014089489963341811419696217593576967407389715455458074465818846834172691416605681486801561842234965171119910643808866794004878521285069575338009200921368581477135727348597286980282223709523153170052525148353437065983865465455715751358782531743944369498573960237209473476176937372260027919272441308846793673002619818188749945505801514348472858585522030377399219733317901002022518942332735657725149931331686788352520091835828062543994714557884422676471334773457164905488845392163567725878763073806474128557460128885477092825702642087937310658017586539570828000409198340804609899700555898150998370000388992848414473792558494906646569957980000180077288768274355528368358502978892181191566327292731312117543189092557343818260670010473608106527743452493484865858579868976002702219211939380279696912330480487833645938301418295986289787398224921307064819103018482725172821385697181868979781976063073952090815625159256855475807235184127054241766296647686241637318181079978578862721596901986407348042177450763502044706033227097317629331508030669275700450938379368193814617611324410122756193332280432935987294142630248176768728255665521995854813182035553361143457254471983073567914770282724984010110742129416820143926091537816175936339066236832268818630819390952859855947607357903264240041523035986451078625643542148378037035002137993911382737241725229773929810288829843648477600272427783651225848177950963073861908045894482643702889783634071658147093301540798375698522839839399562463337942133558603360540444680309338107882366124074291004500196067099614669471416168188886338504930793060256937049380368709427814985219494666584548613605476428150354934811269076560990010061041941576716779783468799323267710873816254206451597300298931580736348562610510759666336656816867704088298772317994673738073086381450524991177415341801544977333166045086259007671163168033487728883544099017460298003972088903118596239068973672196447929836863799505687166783440657393959091916177070484214702473611743026608114397119045913125381427944291431797025154267321745847185262056601290067788540360562852464714883259910397242643503940943012808987915880952454254335495000870250403991603229403219537201285120711060426064216931193561020766027825898629449246206183683005566498201716517373343967722700061258148367266057191560886222789812183762364980266304394411741568891732166591961562239177277092974001357501835078145278941064312372864877749963528917279991514381117925642677128047116863600000336677416616933998855127187453999930672905949905185014736100234704717079352489706374833805355964918781557677812055556932187842130036786590265150735558749497114495323943609432011014698269817634546372871229899969580025538978500812423638701656741012587303670108644156867417871423799790054606711122781027149927041533369030164661866290749866824047796641542078595673540902241308348357062981895587393237932429434776724678682642815161559529972548198326649373005922936492826913743833337876212674177246402872178101709719306687946609688036747409991523963231495706716222645423203759434752156365941428391257327196212525141164498107454736729813761240302867102117515163733532635351757449111329834986448556985674448713782836968140059775994119868718463737695020596992239436563938407044698210532708648463789024300786045141807889454839905048440511843621286739459718860303864432310273741195692473507624356263421584621450360012568473614274567533579366997231205846118846557008514512997553329519645860006217205736053521267891334474930175894980690130662115086386403996521031458483533454046356592416733596021098108439459664572444937391888697917893080924387853555220058395839710026152616368997597502910850257726564769976150695693388663485113935876678715987079216637978683562087445446658327916131326610210970068569489335745491606265971420337676890738434470726678645349906614895379494805647057967475033386190187276023775306744578049746541126585471079036235090323996599050003729334076332661219004897904592603183376238757943413416067584219512053372663151706424794048799466206204225718940187177837290070666040413363413098516175420346526403756479287524203756601903713214689799343037360837082255904221366821721776578581025776604228228785023190742121462290548706199317169296502674235604360389390490396249579285854713551584497725620279218676383361884617726532523876925871075382347914920765926664845062698395862293966671109331453726566781702235009445464514719945216949856823306001637025584303968341118679811691727136719723112554240327467906343869072295340742622707945327813025030943505057022150046156744834973693360438719408994672550505118722224820245947980966698272780500708371152588207459542019310675985349588218150512497642646039250829992583819697311590209269652486722649160177293469957718362408463577244464670865545202468972090078032075502137440075059043062599472978184958393543459051423110849706817158962001212843357715086277841338133778869728435092830548634142296319681359337002075337599286030319533634245908997472945142139495086514307014146246606546806387332905776490794630558253362147578903235299217738132944552119984372422631965295494045500254560865768127388552469057853189316813881700471751487577106317116232060319197943527643723963738340205164006750852366741316574088646774079244612098722459710569187023355099509802141335143224070365619823645696249881604794678746267787173646011272778269268565582435732975950890638290495017911403618824435016730895954522474431011925513481921420017997197421571036876568102883002987316677941975463346508374113839903425805414653780601626447402010013935366328016131872849915673297055620315372489564622019156071343661627463356895317877503269684073220744118885859818058004099032747470434229898072309228445213785651537019638759558607356209408147453033196571417831931669947725158867670893338226820644626945524864559864522622430607193486025307148897572733613420022928957365534321498137700370377395542126914627415215528915954047699019309448657347608094470413594983206806629015004819838613902787109479850485522029542447561352919008609078223964066985593487143517600331565199063554770562439035575893053300489479383177577173114032163901958280291858141808189597284614786878594008774374307130830227797866890628430371262726861633108539868154489920853573387783906749114877112609150982415395894625136172261835679617393463123707891070413873630677555455426082117942052492151739590378582576103135797954450544281034443323544033969142317026099955225746952215022992005232554666422999015302263387100556631240941894571439623812845709910559718267245161615651148501791833250693642694726778021552138506188567732359736197424840882991518842381223982841130428221589934200375679479984912142108285937872096986837687464565317535061759130889768009996411271425245452987116823063372674282310812315492930185417291579887417027164709256448342521186708943447623622499612222369391449069074066658826636191511266732262928410217386396635534457488389153913440604553434236444557943534650844596821582265956717800101974007274900362036914064383784599862868705754400362139313321711227552530121970164124898166609092116623581296948741787843075284970144318467945941344529053212350832479167621854216343319562136770088871459206467594891696103393425880366947392548305909809683128022147051954951891199757373571740065214831205336553352545434709991041664179146915306232144937771437832381766785292791545629057084608011675404823757187582537934035715100178508472987995924914208056744405505552828738258663811704305807213479513754040991179538712339377376872787469207916690824855929713177944952573905557431703650879001103644539279382194877624507487770533467889502288294979039261754517186460100768857659940662416602059161898933703617657486899563499452689173408834054193263768673902935633199079245859482580733650009816685415141436499257907708968741866467582305311643900502605099475782420998606688203525470461095523587800006982517833356630062390961986790736317965197888113069479416608339470243629154075978805584228678793640038264309804452033734987949145366107820262393616864809216047228388852733326000170636566275746144072809917128606006981401332375285638851466066991228942412346276630537854435017708462675268745615860548876318083221678425741660212967422564783301544542143694147550125549432637771846520633110569832024578974998761030028615150737263633343541758382582145783875813627880998532359577054745374214604405500379569905300039123351837515396663048193095441111227444288207686938463222556745366199262834192607210458400185882178437092837562512764396248081426399062237319294322029877476623988229448780987248549994102504017459020754250367845314015151431530483843722314955749907868714211746875500349606175676990580373034134705340822447114337846023356441132026304381360822735877193992204437590759134573106973007427312771854814832865014598669842271924230796651405158228469168379789243122317679474216254463069719263011964982203475089318075763806558873887153451899141066471401619497870348298208900025247338514264865271197311272875987355053859715509766754529671328949298895944300829240806605437844668220601511313710971560883505782288348133124284186910198912725704245265815178033947230777827699406332411981622314378342959133987042831594058568965261442961228472056038483563061521548590829338997618678963773766766354833506437412358511590784763971820673612740021286566783466140940795668026515381680998838577524162774631118597212020023002733900623754372610432803765908448125411927057759554794133468443357405240555835267185289969006816237911031882775120602976804995140147589237729826321517240811395628136823288622991013413595849026198996608531977073510297042979899008606872759298677334904445195946249877922685266218311256667763127376912837827255745093466141807953758814219522225038535854207579452169797730459822731370282254099292516153723822936689165934913034808613447120089952927772565264940692823201448953452710259846661185818616170538280154820307199271032584282269866859884558368052019005071068703693467072350705205604280837141893569439431713997892909493401936834650381818383022513099162905936929020111195416196962199924598880852416203333846018069555746331862315619194073303299869865708461858064450823468307102380387542874850982189382545098580325163983464853313107573803012500060428066306969253481247362993736799222427938601728699649144936712054841555278310772777794994205918744106406663627391789888691473918605990056397917460528339449584984203605227430712464821112948236257490738693410167597451282009598849637936139050825686442607257816090855556004473486418042612146057609924400950213836135120014175353392259125612405805967811251284564860598378824695388221327738787911322611194512333590458383126493859562534597270163601768868326211596825033234492153034350748034397247503183321671408018406004222404190397919038215981030698847469422892971892529196489960290844034414064385815740232633536822667100082531884837666479805330550195693400618683226340255482640474095488501018110973508287809537416940017059586682185169355775806601065560657617698311499628062048579785898741023383056146343804271509559149110241864127036304930092992475637424311090843861885082371053463635481594113299803891868717016714084634628952423180381050593636771585024032687548562503092305701752504620255229501821707267929678122534388253236392668735881250283011508275582917293508816095869294498003326650739404793675740512822798500449728007428843158564524355879972051810170938708380717491318494715118095368860745956631167265763461911477332151457056769400256380977451271079461282416709570747045593461163782806097274520481314212514877381852750883152291902310539324661342769418035274637010245090546899086453393815451442128689511782073161427283229750640859289966970101889386810261556992214687050402230277427318754513245001830491597046377192172126535782114847483508713329072765712512646427824336482788645825747361003184172080479385122209008041690840546808806915262909600237129264682638422877118880069473615630947470669037607704221794725570170478367195284551123653074390012125373318388603982567505152665136119353235827916693615204332519381940470947335159985065042936973285738053442169005399749636089512221252723591254852283712167647840112721737244262945612168300439859143727139209226205702189441314819619518306544103020232766875266784394441861237429892245237276711840820800029471728505089591109038960413701640616888126419723303547554763057783766385649997656383791109421689651929780889360109327923480552135337292533253813389367832665451843664969352725358157014578593540015162650971980853429305386817828125561800012931726736181941967371103302276431935988751109696011705906328949115961772709985003847125914222025584138661777509878575171839943886686027187462715652500860421477911471370700487010313020664646591518941606334129859377017143288388469681106511375550173583097231316090111568259911277941883195296356679594705482460290922365938942547732424580945839094164715003663449743217178074414983689326445767716376709106018612542444494475089512391851043099794410615993923941955046854285599358258285768906610780020398399402846500312652243693360525902683138422882207131255047636916246479007181410669238153441247533984302692658386170904258395576260051096467288112030457770578510146601379102553026384308229698797611623015062389013061181608962265524166212963294473395215774989331128601213668302612581862689058017706985395458508065740222039265227341230888178348257477113093625822172444343760042006120815275377840109881224470476195252479140919193469771853504024721332127058716562348494797750571617759098350790569581499037693473453926952812102149320984454678899111275169714663274922937682417585310014717507235466847212204517601642179612483234346293139869664734869458872656767934940621337433090162367407091708739789298829716366110380643997520719711962851198816783286238150109614589074415464265526503681119144498964871501891788204119510055758579838608300790075642440648864213438620708944550208831742643852987678370668120375976369962829364140264429208157118538409946054514380130948727825389142871202956359720046093894909347318690637923045408735863827819520269339348017002311341533287701336628493482711401772718436757330101205730852635150319433636817856642296888582808393835876841074827448923528870775766914785599356214259335958364071569530061675895052746571245746088425238928545887172110752370278109969573937009611444278550224186093358212597674838486817942042959586871147677214585342038359548278483495327479784529488582841324296013573136013567847685584408272530431013479505528711744087046032918298085023475507809827866364616873715964203996653446381715410137772443292017442956931010670275861087262465265876321311899568655131509074397816848464512952058445986380512771157124929827986871985493312464575179892074306792595187317811385616378976584875822332712426624856260875321892598324414731899190045976040524996212628061357239715076902827169384826153887486305408075307206833214236953005874412495328985578019375340458186884101284700823815383727745274634664459388583820259772385618597978693586332875000222703423504049075097811011024771931816290231055977877895445986241297890368458207617772371825315192309882773603606790601985866668228169068571274091715017235139893502284107376344577750441123069477817189444944518801129222720689280816820747270312299367381850730048762799359432709249402005558397176717088196948624727275944346768667630379225955555728551499964664977322577010903814657839970620354298181644870276433377977939924622908878206822593530919492946419095960883325780976278649634920270234980603688834631253365742913355004720954409796713399957423572729105460190296374953977442140053304769196175355967189832238367178033445124061782005174186969438043452912211718989014629880927928491666889176429486850576875866959137230177345419449011328947468629827279334219822408170496984643091012457552159150396722227696879338067440075980999258776673544285225285550282139996975485224700319507148285508494005299804759039192208619886605260380749596550752554207560680549350006795346178414310270021924348847375779285068252703462577256089659425294733973217452619985861022175004084981696223902194358426268672686389159581797108978886374687681084646295791448947599281941757067037773948393491404024142045351547375997979670096986996014713924254261918692861715016719563671037132861728895392759513720419526136211309757862761383740808614336560406779953462050597675844366136637759080573152409716724717616977744413755190548931542945539472235699645630609634056497776195625909879665352170722777361827829225861060308407712407325348897583007226230361800881893328570874370947834524255680750961400621144111185397518366191671293502096864340959146385252300516648482073428029625131163857146463396339617381013270814221726563251297013600543126617199355243508091612779046668532931711188388591826253985600417246057322028561536541178484083742226709007543855129619384292653745868394134437293477344477198709059009510846567832591360288350202536241970679981421801697818960724359422345486126608988618083064056580967533607399205041402354616500387098177264799460550243170285969390720433983618841559493878612710383537020946354924947135065214066029472289734793255379256124362492061748315873190539696428554781324516418901887596704475339388390071344598848694515041209961004063270518816390050382568746961357845376625873042392779965770509360567805855573413746152213570780352523969021481985099331496219787586988743106991470890983105615217254218090097052607021634631091348619068729577424970235673264209908260797554205628721002711588131695520594360725205003515342630190729023957761350756156259493295490171177991514200782727348307494204400106472740244627614197267057590603907426962654279960365691518317842577648749590827025640381307961845051657423755018096235109778699316844571205516907837019238672346588483279812498297426648387268532218275225556409864506604501848904203372834537532708858321432608980384561525294359002339617131282328962953785604538970634633245489195866980863814105325459151424502036473128795086884422050743657431945386825903809207508435248116670063449396195647919766414809928018953479640114986978281572213304185372540482921514698817909382810225607580974331916544101591305945692389211815865629949689228537497858368203394260760577306231817304236209865768120067386621392578418475197205042140020975786751615676856341497683649058679253908581396091676813388709960718312906060618854539870743439571777066578381595641580619724018261862227562696307788185903818643283276027719341508339003169773928822216231444110594144875910945252642752446686960233837477678052322581526916174485064979979019448141208823258229852011632784356539106702634334459083150815120626640530812721785050388004616601417244806173192971593097694513207541714836225981566083355417018861803670458811744194229447914741808270987778473788684222992964793293396765480483872751917638294199850762909968742826891118486550910836979813237292523674550374342538827692860965510932612470432246053868513419826392914134488132471514756109181873472661157965288792551274636399068131316578112597706462522255003886189409617980963571401306034369348956293294032246953725913696413029117031391795683317536564784018165607520273964416838003689855542613038799448708084187560330973915746740018452224157378732294154642347705806689267355094220659452956646623508868804501037241277564335814796756220767542728579938882909941826463921324322535838578328809674181595131699667663279615360815723743652879901395914082544533679614647204470484970320577656669033502725967180750930062698679966653139707070804200677692951786488272641033897100400553197796285985307168297335813150575884393857190186946793208541433314611856907381710009878826416636462725251911681835971558731108653672280448079945731237133039068695327158512907399467707784588210299741157662585872977136998808165586430870136288607351470068728453878262817096610380271070625958026149611600393344195023257556509942736163257824925035486479527976874824890761310786264659389345609958078858091450787416929138604882763948054676666851694684357474842599316902270936429190387376174704324262242895643628648551901673159233921667754314938435053297413923035696334691219440924865374766463065825167326136750875488082496515182616224169758188596006598250797855391596744261989023389425056972091823897753866078720546366565035450554025561072032294853339505563104769448109440856593374432900943405403855271607487023321314751364281487417369375784866011407072169009572333622757847497521331161235619866415233052645110460764290391933658989557918547467934649784617903899823690143612238119150410189730423704103576512379875999002472275995876098963865031717449220056306854288058249788303928372328474086743571426844442102933539214988239722183984613485353468937975672668816406822528056952148873519924085438149975436451847780696791949486936934116416604419934105056824953782627884194107996712808357896598682371365775674618199885845441623654523117709307960025073130116319182742548149498413439598454491285173884950207641478996535088925582847490597215382491501913780806162240120265636938779854100054032443806599109029810610868887766348534899354721888377050378321779745460120753204895472286620932570111703689113071400439656577631567709760484034431738050788289353056418684761185333495775559958639451548089627251236787497960358902370320124541013405229902196582903963086307945061212580651921124415358826285576084206266666866249241049966765432690137029002622520962625689128833350138250732850265955306677204728198267810013301643693558996165831388654461231543725261002845658288337300643758991646543886741250159022321143602855046598680940556927124839935920044067250957628518278298289705795674180318081729354700307187308029108115974503517220470176944396181008501392357059464095919347264760897094330277157878509414954563529110365595197380109087676303744181722968433231420690475474254733097342412989537085193201839685367056226892527903301124245111287194562329670735307236557297117051865973831632645300622318002881665508393711445916243558531589009278936546188752987633539442391018341196610894167687773820982571713389820481229815182620759198225259713638662888563462593941737012575705401724672103126716471431845350389418320498119635062179811599853032981818754035290974467349447165258048601682694359939115253317335378554553374698643839027417234815191254671460137901081804202816762529863514488012278341253763471986426813095637801206596413750409270705724498427495559131321432404448074319750138286772026711872717624618363770123821035875195388552168405176249796038102343241551387943548903758999601207801354781749931561011061473645885565191805735332365200091166895261511809593876877361431905716981267550386642121593594669970782129463631999749304716364097305397155066513415857543487052329235752549575297958244334429689967154220023249503363700587080624140282308891143029136366591570256781716249044870325455341038984925982611638597309279048960055653966878563163660311693144031194460245465403267609806501270520127999155094207315844479559121917934853603815595637043397785607003227446104109473345246870894350950475808323355570493505585643827280222924193102347379856434678420504612384192140975318970505346722060532137498212198642854007403289077479747987331866552952261442184929495348274471893342821632871167366007786445205130590455077636686454813233001993033597318360969049181488887021070415932222519500328838131508586625024798006634947165755017957395979996060212451505173918136000969261453043503388950303160359225082750050992732088768429294905247101088634894071499865200721119599647851240551144739422435110025691451162631665591510543043120373326589078338905475529317958461526219400305935437812368124028172956570581062778747180812652355356477635150065156460130630639382271973931902107394842465959591859557279795629945714967090126363897937076119194384010148161989531784488997671800285736241646823781750435133108487447956781125575464220670660945243989837695035156602385324138087046611928065752165523251951822680229870298685461882232064911466082476045270221237524909382116361542919899556538826433474501163831517134150917039373670981791459970396901564349760644266754378146522590693414312521594218487518004347863714883017242554820434574947122310232089963659488282878341023243561186510102395627641879479769570062014789171850697009182597315139683355064687972962434556844357357662776255383274573771292030047098837070845620960808670141103046320949998543894157628265486513993074736877798766954014937939657997088925109874891034918503380426227356122622190367423778074652748235046652185822082265118717429730264080528235707782772017618242971529296371349063769768653338297775790303135893989979318572442896366347824496649870920686777999688555107436970414792889630881482635924383347695427408946242262585709979651791298626615408099605380288978999459997853952295668018448840647552191346925748616351101391293311502259194800623417445346997625190830882307013120400629238082023753837529833624502736404769319692252278831659297038853622946032921922620215080036019342285087851055023405873343869453484739506136476092766629053728907378449729796925758007153297883437147266047218702497578873016617950203631676411974135550765361678953792862368518300571776234769812297369916404475385009832948438705218682286837719595820209213856829452412301196204252682042566560564229667181950656253238751513220692389115081998658313162672856905430537805396935677500443054178638952792429826027463819423735954412864678087549988933274250538460919095911734877037917735963492070713571602480031447897268141504951737629400544570531304116299547895415713673432899263466347999982120397435678396504512754884327105479365557776434798922053044177863685992181689935865126034146715225184850677561980423761708903683099297476442908738303449763232084708589510347970817390723169003839097294703547126080136520193319204897949245541030589441955626636278610591172508872918930917004025880624536407313453021468783285107178484526442102233609428916065903118215929771602075673071478675772589666619735343023452360307974129679863349409612576661108114706412349653723334435136688398824164122131045441858351211376985564317051204708857732341727033510599756725115812733640788786374786621346980792546302093257236663557085704107817064749064763139547499676231563893742567964481160426393086305118981697697950805668065752110452304624909313999995857931793309726123892305600236756772399369955035051104902227765715319565613707650783561288549440585048312967945345368493795808825938361226414258954011712439797940616692805186298462892100635957635909726407002285657030245780868656871629250933553360860887429337422888163120853634143814505011672239069186220543285711460448413956874668917854267658289106302844577366386672436495096081253811499104075067032354851031663520353086436510889963652556373069786441629254769118648751799850133492395346746535961303851373372538379990991048568385827598676451399450754437349323303736081703784374466923126123585955077243226973047953133024662177478320615051826079621738862657350128578318758399969687602617785780932588295789044015055439036839042647264660539651995754296389627180218892075335778786400128426864282020039151439091218359382723577746251196123787066668455927248649163069017143944292414656948472646366287248774149531734607933551129460361536728794528500271929396428299949158344232630619237072142669935446950926474831767765361792890536719704946201416859057840668763680954881093378303495712981093106753261538592373857275737105096368209299282717772548051990156223191295393238756938860364489443148471201378264189450624102957302840327641225675925221396344673409150145976278217971134569590924077241630169873830840615658607925701289774943649335399404719128451366157761053783256362135533933617181381907364297810156302753020130523352031965398657974057926467776284234947944459659939719561840832381010762773361785543204020214915728813099813488153900432448985971884171659342166577628775581720932999026273266868179533584716675112315721877325978549227937369998415696550885005531896292659952861790028915001022360410252759119816460502536613319140445142731271898380229347005063556988930105418665628024292789447711381904751355125885619235960376548993256074263919871096064983968344649842879173366340556428585436247136496445987431055826568329548987309895105828457441709382283234376198779376803158361885470120791081153922008806742148542151370075411690252520530926577415807647458943658024778142785956355052467158157501255901479697626946686204037047783058383399211012021806289771371453357989497218415993594204749210821619385066112119463782190406043747052826580838181100593770723635967220686083843014856578342597267102811862026144138093000671824117806904496897573260836439399328951473023997081405640646358844444897913842754021105354625746987883497350917602568185233905153619140083909328538971219662395290242601866535827297013998783733392839526601005554642066296476036086189284872002115859238264956159502354756409388011111264940973304229958706894039462088234967244241268240808056790906012500899625213902611669048325630456043459086966185677508982016328707895939413650917843521081395361405323833151232974825831419708123972414873927669124607102720667275551041194629635802575000161650030165172645959464357878360498866964568059369400877372835426268283493870900361515090494603300452678709229012561717326396373644607136896955627862150547728340415307753029244571990587218486981084509806790559826501161948339169845260975359319493613227812444646003947508161018025226171891630675071109394539448132919891168231159660703539639145406498308114056818284108201542605852938732758716219870160722564236717730472251268281881196243737265448589413623400847844215811546694552667430186433620185206664878540295000253886258696325662465264357146614671497007865673953578221744343744374364949529404533783387920555449115455916860564717636060697997785990004494528811738542577086463076528430752949194503699165559749520462195247859642821906142508694946800558970018187787084709766505146856013544802948715788850730383156011803304788982580278917264550037050787915961543142278593127304898787522802532960601739426633027725494714314215631724047305119281460482745714651360455812067116890605520892222279877330127162297865579075698612540192876318966413227755748779115033539727970429233985936896403975604749006131028988565578559705579465210342493247057501953408920746126978655666643974932966179550194874942315104184133778627937918487798030533761716872816663170385083060008166807052037305080206530768419771732505606368668773310190919273626885515877851131023192794333092470308393866580349160599980897554158252203965202452442184433808806133242232322152072831507121871484777966992206182081487593575462737769548353095765210897774257630140205665221572742912052998755788931640425526799706268172227042574186543389686008708916657189368945707104759524294417193401868108138561049240871000759917585683391946538047354773996868789877443501928877853191206960084750494725272293897538363458527337868839170161659384009001997706071815030610299735499861634962035645520795952766148587933788888464061710534535643896190433250940456650326639138623818646338033799445358663869342765031721935119970933690368637474551758598010237108146936134432178077969219771184247795940150215047093787838559204510389894234801012898361633954535162206056402798645803231667764127041596241180629082312746452299944697197279691420299856791029809750295370956560975866519453396360394078602200116830051286089457015542469889405216256359676401383951724364353995099111030797594209194630503642701130758262391530299476699716312977138410113710230913256923707693567537021493780084877228789015392874958650163012435821917333658914535566860331867006310528236784904124153529566976426862327727150214453756271747471534832946658821458457780652748413470545291642148231557063718577604557345001057612509529835192887136541852326803200201210672696645558149400945307172459511276600660715563218825257476797395770663631709730866622993955008624297607532702030529731472096954305731966496027722187104059965434344103045120653502761164215425465011846114621505698719734416575683324404485252316189343070426300279928625651089127950834720103863792848143390619355745509566438251562547782580304078469738113038082310875899687050107999661641222907379814914510411054861407072477334978327361708571415409818307826577236866494663408472730946211029514050234424129784233396314177507496280863783645655178415927311907202774518556910648630743320181456047486421204078076835485096735217632702462310765208804990492368240314536236135685853360619092570269402746990733247313950535358175033838781027303680254408004325256110005230924097306622132411428715497956003312621146791489463865777112443238721932651448137395440645553967292581916910532169852407449359314951678006583166413997537442223672551119831147323840619635048361685702652838304854268949123632909362670526035534419855665433157743662401044051261932928825037196926305106693503260228848105667651161221840793873158304877465404264894016830620202874744442373237813411593905347193292072598964581455812213085407983744168206905378663475509865986620436035106105642015006751534854883167413706786208362163020475692530552936549604181810718724308697632535750300178328804531320292127437604757659518797439681340696555934559709085989900724303998217835295690727612032358040950634252240334835080547625738043083764079638722295897179654847971241203928918821500108387492185585586333028247742253510071641096616115157256905542192304139944876733724400173121768262270426390120126796268965257983015502795271485845149234297546513163470216803935198332013530814296149115667894969994249570967107276112594290087432072051549778880807456944507609809891171169102462246908647074286672376060300851334630372046640407722141771457013710766465274460505970648803637999842120976774797270230237527434077477115806289708304754592782728476760527377145052858169723784753235323771980314310962336584129274956047552519160968310343468572159716269733885158987257078478136032654805653456609682897905429540293063317349061845148078226660306498277322665787872365984147319589409388444844629877472263770956975726520229960659779960684225794416180621032296528709796352231902826992775491997323278314946213266413373989116999390339455268762852013215370932414190656682263463134284093306655001167435904105585764189486674462279916819589996674662461637102318650468497810152110260754645713841964551736975494763799389226751080578265316397184327532827891943160969268876058304118131257258114367005512092306046809209228195669157929495960087614076967194611914065424400048407139759098272307394153339458930854307708204485272418823540732073278188821022874443867207184989337390033408872710476741331760361638077624678529772522640057433910151253992762154519096207874712034594917053884625079150126988234915900780609630029322352146218997381840228090903348624140375630983068040621204656511606686785603621937063346293838060896925921234329211608875507860337861874528209447810652390834076260676102832517732831493973141744008166358230017222765395679743481962435997844867206169284840723569247454568342829221840334700975278428881426636355328652635677250178205260661654068244721459655644047967943210931600253923080909683837720633164182768329404543064975313563268976218298201343777728488327141478559237619633943316139403524155105213847860791898023247440637008864444823476346480486536371417039849548604545466489246778705178845639786316370003358248333972538874427985495860208541385855060444455801658142806253682532229165523504259239193739472188794557828055858670563844417667722648614311738247850612213612498264970076400810022240890267268409193065432516924067979057565911374786596606563837739893482154652250873367627061420340528602155462621895574585686197192956261671693099481542104738435053086238662966334482411029376538430258279977685515770059783963404904403714271323817428721198399845775379973014352601669050130257402596589617662696835693357179071479986097432868738127381114880942170573408725536784277863600095764638363343240082586282568640401970848453175252081298891354796946624696797621116782946128264789206223891522647083440216823315526715776534954672030828440673646757550174034490120664819584246552069529198375551372161390617402828570012102181217084485475147686600607342292575951327160179740853180688998198131444359080799850900045069519431135302047563272448538770635756034906747934830702503334621806804622352496028782148769852330526891961010633908184102176316961370914771979392572403558456034343362443401026647695523028318550313711353731140990687386606366739046409981603196319923654803287792047962318954821618433440232386127720633725487349381421408470443515551769202785571906919665648039778719379293924845735936863448814492968560739522519290137289706917759272643113860658839600597274969402104231407571416685813712582618454741370539581914939802407261836054333504548586320989571186762277743736708432393596613987306094689991421750959313447965821702187590441254650518115475145776199782468742589599109643102587114297714179930360529588542088276747419369157789119610644593284128599165550239136742881876448837009967880381720242962074729715893233161780480182484760012128776259620313086273618151327238214407211150162021371969466354566026612652737187175356823906180475246874465729158562876218158507021684429206732371682388965893502898857398189781391567292086277044943791390481355708934456351712667886550220999994684694786965412005678698316874003322602768919196444200711400427082994251159022723383176891686234135252118862998632630103896756108377201004400367522311320356087439955465079348960995986764080130398014109561658165293218669954770905520417433516960125453715739047441567750035286906570979425726832331025929035919254978007724908773974024073316185081420786733426808941952997685011291655736030602832337167572272438254697839529808636338430282515082168199366483847995336790646784215669297697382792925037772842323357154523185502039273462130000717151146099108097764945620523647914107610115488090873901386181158184597396728225822867414542554775858921970881524283745349733207932480642469608603947056349789939737297807648640725904624262074946892759349698863562272384251577891999091911172452922100601532673219854812013538882813803327943967406707044015342952490730090936609717460674981103169358087436953284012279524710348456876114920778237371848848326188405186824206789311958202128721854726586802494668376654283535567766115365993785114192558350467809572796671060303848241350309558320987545957068258570437172937317726154537474281023797837031170459875286598570455709820222019622619718788373424518552201223622989961293337420621385938959977402901838847168671919662211801786598000301088907675954967980955122309290665103216156564387356801217905967297592742645894664506598599446153039242044732400920265640169447726657465336008693385992471285542547990194836696468728926147193088606350059817452660136625066232913569295158012828021970863382038559666749053627159828515564527715369355506294411291504469843307202855837391838224903018200110299271667539299279903640293462950966173835892605908499157842908714627607029898615408826955427042456966529253915840986404852213145297028005499945965928416522217888317406107272159684755712057796877787438773040680733328144306589234402427863151162516354906180879511178135819149835220686424901094896134801526871843897277880708239730400347891176069323520759594372805239769275912706892591430058349465779295764892207624214684696671014867670585960195613923926484986198560190241713635374233046759039369365033241103200672299986881866040751031365588992069261927258895181390564764606591456452093630625871565155572650619016306633835533092317259924728812873026349253329166069137223277517129248464309050752618896583428519636759235331794228116743984845858295740373804521660164212795633602803382084601758116744735993651105484076413872685932418567790111013567095700367346347790303088937192961597630139434963314089448208839798429408711354563228898305460281790924937442973304281658150769812604009766930903422176381282477187997620559556761607458130682681684555822802092171646628302391795956553705263815336336786262363447622581881751496624490236003224891328547640227129718141911327257292348752131568308642280322846187138010889798751947612003041059946537703594060051244429152775706679053658464797359850912766839148598886032276004203307137919807815500454307798020355283078038059558432540431956432267107625807313745592366620249936214627957847521553235870913193429508167938908317191222578178732614725057902553687138402407208389951240456580192576175144682500968968899018564259917362638771216544415793324554171770756769604155940732605304424505557686221717976565708522450403935306603290518017111132404881285071900705024737473765342522849323239921461248940153773013038112891782281269587468373906738064390939684031025731729489588897944053314327885192533297363035636259731298153078078398133167971341898461862979105940944619130806723219657947895883465449503158945495889733890747592629003727421220327582619413421221903271728673416233070429131017639339152832732538169261372877794342740949507484485102247155088533148382970608282156029157518545369679472417167442128283955942269891232588862557789485852249816547686591446349029343301463467636459342459866312721621925055410586576484301633263686693685396540049909237208818702224378489254220451121990503359957183957650512992607935297229667452076890970727722730105179947056940913925133209274515321996311476613947991215864342290163072332263482968776317564243011681059381659741171998971110328710205998626013264598023142213329915173081111201211251505668199401607690413002340098163301317801969215387450205848270544042515542234560653448957557955782570935498827380939241091788663384723171394445920472747585823525385263492956622564525818521582710332551632541148005849111232249248136753543736563786977285197044430436591148012055037614329732369454291543850715762037718895563560824383926803563651704759448560686275867224246595653781142602713569477489930170997893084490441388596845327338730458899610337332787878435730500429931085695840624045595396263768986993720318603999979453913119970565335676947679362871866122702990546392389080931070946543215562176165335116680490097834974540833373140031635151033352589728819326670227386301087238369660921671672365026485662714346343261590097688695987008964569422168305491010311444439651965726071164947312473015896757678422702507336863070061990919115157957561857895605247102813233517864754172551965581358792638036508471597951909462955801320761194392096232461687549805978947089867330814157239730501923043716525544557235703757877537865006535306654704144029131919166846205072573085419395864767304010908011597927530538882371866180225563832407030015457466255343142205508611909671790621521131457606464032983508876797485581635071584120826757301108510485768555884818204565874343410176904209602803894073982430427668317601891912924273117775541589492460838698710605149426046158252589974122242651074498625180409913659246367824951656758836184965601815008012832195373813858469743087039507040291188511523424944842883673026984940563862869480751259771567765827351588514057490856481080477107294703264037678343353581026995267775794824419276937256711737526128249914550668060826102100116554868682474915809454762513500224814796556658582489684847456009226182148881460268946087870085056246195600093641467929887324102384131004739802430099833395222566078308212944678282526006347352949071376241130769444844160421075285396456094039901141976911182445084991065457863912333022234933669743640289071547469540257338751758459017257416848664292596759651257719993009653119185802656948286320721978477495896675049783960426485439715529193008097311311508961843027779476172795340723086229958570201827641974155033887773329060362369392834590766070748794320562215744756421105015591143980816486378106114306336644558306405171801681720388333042692768484476461845759868401699322921234318317886070608570874489885117498275952591194233413968332227914763782705902363655350731065187074641150472117758653135219675915491228748605543417485851437509773184257363108469781118227958073335273967696470110670593774576519478835889820365514650231921541491846438486922167797340068206961142951196053297265005328368029972478537930358383022548204185599286446286143084164765351332555300669854782706302794099563656986323485927712070940353330605062528515985344221533075074717851468651662261740038162785848534277530909067074996710818267486558002182082572246501580469771334989796585616542478855212263431034253469440255368161973896562738713996521347621614641362248832342526043482952970318745135015318582234659644803033856881431426357402993552829881715167772207624563124693518955018740041452546410792992241278596385120224821477485996809912164099279083169262633404656524654323721773152443849465617467120642165277335100088641102114452134714866405958249941441831975042303589214643023044723020122350741375419877968027817517322390865176292964483990163305861713899923180690053982475065665810876446659261098320568043325125200075304789180089507282245687635481769699201312421938306925884222165591229152437116387888141813831685937620651555799391514571316571677776277812416115121985536632058377486771873527652795012596060036040471961578737231288830996563247666911433111491472691038125632443440223918702250876460264877162735409312132864411338899321498035127866678261437442404551088028363454427365158838920224297006641407002624574566007777120549333606559829056479685709697583554500731772142055719701402527674963127389591725233764248722323821839506167213504836577021930734237989226559566434027837342596947729196856333126847322762740117407636631572870489758328077882828889951543720715328271514508248413794487492513474508409733943863496667047985235193934512844104571786745126246702880928407479109882327005793886759092064984261512712090637675673768596688869913167366402334736121231801679251802899786025601911801668628738894456747002257695976305161924400825848484219808012301356689877253671830535023275798472595334376731026835679456316145592338199653090908886279759538907218716129072202963064628191633924393563647591682822517768253184358269380831329691248563158469973263292100590193134533457073587170895473223917764989975361951896644120042461485884245327356601867542135311008930926185165288519797931423697983495168350153604600202312677603102909385811384022779241214290988399280288265000360849886065314050313823793511303716224453237239903137329024337329021039443963268472953801818013578792755971550817791899286875158787083772904261519667186924540878965725188591594186325346958156877880112484690883654850791549145242204108676138360720121073011085559509661810052517428722969715985283067844438243327734826667540591776725068562318861936247704933851559985825914526015256657215367878558644650289365137346482642032263196346915343311887765939871695873031447111578725953384189201242000763106389402927386302183166702404591125153985947370192885467635179948378441871828997031814025214699541712169388786208484449553628020305993077261336949718261863671430923470497876870652169421076255917882501693403653573500742608108645473046304046573843124871304057616620803819863985981314526426000181583004015318155197155311263024442549300348169631922116510166267511966036550538030980009730094186838177112805704645710082180007711427903973548681826326207050698867257295699324824388879062643320231625856875008109666616545163614890245134493142170403678575079048536089007276234701654416378552503469466655210736681179007568535156982230841300720677417501257458477247623464422358863017960691520637343989945768935579005112379609835698932783292716471104232561816163667705351099921638032077085049011448321033772161854179643671961177752912133495078336932691311157105174939844853261633122846724297491643510346683679992892059625101332579549964169940323819316974287498789654672508448002060547866052871805945889886886259870007630162014253488081382012196443580790052892191807309127589553871310340834227713197370370871140351705855073730717115306609866349606020723052450250206140808227290376937162415323135672375105860461836997074109649907867058898808980597161043456131446857310800748613194514185225812587073417727770083648299449277163776484395667054238079585881112383989852084032328162863990433654107061518549608754926066198137565685392913910126529092658394414711537597510551989501678251162111007946354263131676471095834343835569310332194525948785941371947352245617105138049077609519709837782492105205297236361351477876432049668079070814351819026880923243132307494622860762550464956981940213838863126316722962198658382828441347811515626770425788982744632165741200065489542898012965816749835810693756024620066686437189701536934369983926211577976292935526018664458774632886899161827021715741876232421714360186633071069767517102406182358951077104329382600890562449039920249512572384376965507757535221101151686319985074547552483102030875254311223696197341184104026012329862528337022717113877095063238587985591628073748591793976508505181651083383983498999670274329025165951294919984811610810984742666665233702047663823473149400951579497429864075158455895474794432454308424743074328403413970213178182480418360635451146288494141529284009521094280872202905453684047347926078498591399416969310639620699455097245781036614934043732259459662019613405274000725929284886797949697313535918339712391571521006010783483808173459539122022248255157077210843968811822819408182037185737494092742489544490636033681465342443860374435124328888714880682149547591357914335181297921633883944170401919478122113384205266643045066853281807736835013177866333067921376139234677250577912999937665331531126164377487949246340493168607436162340471108004136636448093552993310084073846691910675388991365571297540104632354132069245678780414809440927882965933138907875593598629629127410234152486020120910861083262686445651842481732490837617433613205929924040762872167044751639214465620965485467213951624547185832087623323631554231989207718505942465507289421408402265760435008767019593817409688855809825165119824777659705951390219365992939318946857138706119988717086753030497902216648805212061831871289639961117683122577574363737794825623725975036802228552827344883279962651750662659731940395808315651296073911202551590901985646262547184069999958885666387931748740187664307458262736510594578274417204794348002459815457079342968102213089593282083709638122670416731461553654868830498380325531615516768442253549973728873899804014953281625024137217840451062720207369447661879312635311031128245094911811430957378713175900560206800612535748487569991529529802216117891938891096660378562995950226458664770465881944087746571301858605576083555801620610993699449431295286147903148677721024154626665783991868498192510616901490538710464470224517877384160496665175420618684166606511395476823377641194749536204127316861300747955093778107106974189167132742171908993421787106021915961429359267434075994188014931649916759124772334838487826823731238673177497082449850617150904231400428929579140058536794335030235058930627535610765365484357386307502563126588404403775993134708035744091783641813734802468683733577055279861032553152905349083649810643211005975952761488577814771702376662942311746583489999018775923428863468226459649255636009908053143478618854724119429288456142428148866270636156700726741658395462418887507026090983680505274789383466427741383199157837551023750217228029235815556641577136273011917284177886118123346482210920683396135243966193496113407829779009450056170392523822543495888721431314120675972506614017348520844911749922199887516166133682479493574555160390743518653328180168343510653224314394012154381318181303877636124842439658010861643436791703730340688563864407364602413396066733993376986166596196415762262257577184312054876663937469323721379935074493448343122127783454778179433922411578975759328778640403993714722322504939650830807082510002274105938062214143696429169711921703198561913340407469604608249907162755896857458286708307872933124379856912248361638122094499054287119116452702756353638473941573644902696339052685822344748591549761700324239648595831926271766612593793236263842541671058647160578591544874952150248404206033674564342368254863492153011627086214000846508934116056780590891659985480284718783947200234227047246341696922515098129078255295947161355270358114159756375057043241255512803264840176995631659467552066908026511964059626421961992332338004326343761129597282655588273519805022471420874627587942122770196565649149845966819519655095402354181552847737102146960404165865802474247354441365994190977057670828393613704071694571552471427968982234622829340145397118856470769639941177504849608623868062688190100319964493458099144406842598252134137772116025107093921524023775231887800094197272553836689008425189108043878729308004048197979273864153836371670095640642662808119834208535222924922589223522791805605381498988124103651117994853443333895760657112953038012321061712939060214949230024378557316926840419677740002313036767331219563772661024272069807604695574243608545024585926495508032246185356092959540391039149029797697010488686957104044941532054317042111070510820721593211996921476241578679307279240595873357444230725706783592728477688769003779663209850543939575660053547538733394709075122774400140382665776829265330239240639141800616638483257202370042304467104699509461409308111471512908241755539614050234603448102843658468210382897772497921880045989141718630774631832316524977789509323981918078703422912690988849977643203728234598613150379835595541466652041694241054618618261357494023100788934661455023570988116632510534880039401095784368038112180980047236573314957384633889913945135344760756625426325134487179969536798975523480278376272323311884400070390779450633917550074956372233001218336548865225402640465250190485636926805683712244377125749867088879563732640404393734172071217751512643899113617194271531884734035193692361696808618842344459948623910652071757935797493121967967431700753326163041602342061914201716435612497373044001152343448869051657229901669417198151988723239979796945639622392289959769165738395564076290830415553074785154751016815724303772320336450076407064302015099031878611801895953587067331509156242799906572011832947390580760909951359806116790270499645880653847363760970510549487929081399923740184745642465416272800716132565976267237698154306597023587618947742460717979728555107282084363802202418941601074568456222180183219105101822604294433530758541404017484804327353254255601026583337505127829920350133241059120553157283405304501141420173839026377845543006940673261237096674685667983250700878640210725485077539604054416882673358887186214797789778538341752844320805283615866403372900196639341163853639132756228809744651790261515869560102643828010388973784998844720191383812808513607809365059593572279698625929674576891460034477848190435439560636560557768976512029885266396651740152764329518841196640391008576568551060028678484227474774632554234830101005179765400766346171563196649383412445570699287988338161895994299099468485593828195218135104475220409300841826312958676322582026381261913385767918166084097197612894729528380989716221434753758280752672492208932567293493352258688705487893447686015539808875444505170914834037411297647775517266730620830778550065244402445388360052633579936690799830202742355207731154488399101295251101004156448629138003371177116618429701266551014440463753958685749936475639278044992836570507806744057689912420111498132047062039202931171490039084353210044051778890710593356436051041922732412083168230063420488028161029616022689725818677897191530351074938615876712139597208029838812928274955418292808380544887125402951827090239669413851690547253125962131662001664092430271007878512682635342164815732379303164583378760593282980161900632845315107086975423733354256249503024216069081734519430551030015361272189856825211363755470723894631670305884890955067725686917649608833078956419146996233008968607919965490919239105629660935766964742455444476616165483410975812972726894837588154041903492266976943948029946879662928448812956731163414325861349929797504903002697953334063192827198026435771114656094344393116655134556491120738746498998257726114499921185688029116330128394394085825002053366002356148277231197772187928204128232665682549470084304303081076606714704740184921773581485731607091201868732339084722027153109439130760324626036394678285434913430483577726716627237674937547317233613899744587950674823434640241372278270507662084125156729416956684328682188505364756133465349626061861020727867735434408417319993997866003187976139689657149987083994477104632638724233169852385491462957258250757705682503983126814765704205567722592344113920596487535400690903634517404842643326494148735332301897170950095702798098270250922143210766230130542851255297436195243095003819690931236616295500524348509123848202804135848994318139438526942078859041467000242231122426622969448615059580151247004216519366478727485319985604251710358012765176330503621907605012700919766610902314568521119442687883924732296704914182891868342260181658100624298481757690491356021006356797772205182967375008943277792374548804563194753045647932615069198463889426158196076216117521435217218739785335717819930651588528809346102815948729846748667798716484149867505489847969369854652691624690182911549329530374742535028069397324100472927727099974430031858733967053621762403974430360298091363936153792791171618343570206697823471019653807906923223638302762703463938994056743248068987702350972645338745887364945055285145020348040574521219817567753602233011785858001727390343394195524057531497474435706585039063103751985978863303436172755434999414343468385030856189795762987252564787455259015762754899663338853655165178039479676727773156600700741684614017315702598146759515285856695118856858904577341778281019450783251881448021024726457664958240465192075584046218012531407969866389362523376579949075900562226147048342214497613328660102811356732872743152725088102971721383143823174864904486506294984327910034473927842981857934454930732099389039527658345373521001096340182224920643033258225336062739859635452581555978644491550679774612377641517193981773234718669144972551943198024141712543538887107336727814212433643473071152104036587298174548164230210466275333082293244140200259063435415821835767681720963721904080136842743647299442474834177148168743434481563256051686182697232354447214526527255707194601041561328020388974334560153867340275665518887409439649670427820854150038423456286607108182657285606775641607356285860659563956351754882696454308507109188379627099008655510764307427741972733293492232961142846154518890034617494411685372837056523645225135492576298067451801331815592516715005929043494926357425448098036900785111748945485478666624132702860194379755830920150242612798882640055381279967736011110933512338896205232179500327629321430906832756175160851534440831171985609432946643726680324457467323117854185323057249699241106638125430082248654387130764526769465223405903638815103308853347386301239038932065680478529420445785093045059242062241391977877288791916155005751426112304335967781228654394854341878387083077281867218180206694915992156074816141368453942265727100451349436596512559039459697304212773444208296667577646907549127289887764991835448597204285126223469813070273093638151513077187960961625612401955996190583015099228671327817006719844826967701313232244483434620092558161388365141129635786021163577541350822258164931401882514116598357081031688655704729530850911400544673055269127262957737529123149212606806641857427171255345822581089984641874369857739189995133816512020867922653083853921103432436840825688659113799083028263444389028549470750065760411691774855260662772200495166326091223022390351978928475530990981781914709994826496846964846771410178684018915221855223811227464558623817367384004607512212890313697923463110490965943564507136236616102670996339765768417813842933931416370167599466655978221878090306682491696095726831416790778031670000735506846240690522559599678518791183180106641955675489708978509920620598963308803007478710318603596088706927001930901888641093278174627501593545136233241834052613498615701180399842179289338607128255352553355733768993115539754135113738250740145673635357435741562762507654789615839425675401299388085533014155938945233345367739230903269136870767804003648178854809094632440480845135932054248159499006220234816927476348618377086616867448103458809702345608684261423440865504977808829090016810573885524146551290295852333134094871695045389757565385129182762990193049092220710209376843444975389782356915600786256353566074555771019764460358252826090780553413196134510579962898452181049406495171353203592934782835125292222412088014966741026503332409022792129021290486278367448703161183905701284190419854016424570298913247387150300440376125549562793581555900550319975790112683116985375532041342358063209682382435863917587279745992305147891390286408338634417480847376409873579432598802823850653393935405354926130421235386268356874277144593689399733641812728367998369229440819947378511926787802312703247870131280673604637227021028690470842215491984679292364911012260773487196994050460653742597160884939375833473164822345325698496024609195905127253860122198499304839777371819813429946971408398182217912710572449919406406792241342355474316413590658174328434758191578298146613689191383422745964238178489436053890655585231619274002077642509802485700361509291289456542560445711139594779794951415355970203325615513310180305060457989088921946741236659859703181439672810420625157171580164852881902076397463120626307285161596703644286484074013600546509681697099288879990275246962454506137409101609184615179159791769131668617190727130793048744088644080967854185226347610367903449887784293257520695037859331477788994566505877736598930087085829407393519275470054861428401684044419400657398355082943741069606265878696857564124977780259260866874717928226754927830916824402118293616420238727020822461608645326224276821910274521946602621941672344146382029896154440298315372454453344426217294734678841643454289153927533865023850154166336297324338374050395861197142475317967575856479139436819312618151174700626597762618472963723086753875364160223535366286458030732393740562711555126887996850643949036174999279472248951447183359583245099659353767851929894089729711106965195521342526423551149414416829174518628011255146677297128071305771791717084869698158032344524279726998020518183358830899380294586718389512020234327694767898058789675959780940700186099679412948098716019211868261242356720657431255098040086219311073561760618926591007809632973156714209357756519977462821709448080798594100362950949288120796857387320184784373456746127757517876659722021999014730922255624431773099121015328214339879516980435753719217240918861350739763325088258438533101156394534047482174028582754540889283101919819739416085020278148698065799128275744116619624057059121323612137436114399061741451143276701128080547079828502697583144093495007849772522655465405957142104924912413146000106167496325698231507375785867575588076745064206232651910543125028446708576613396043613103790819354665558434619124714820201260401027026897346914799360443952016235615685417442479751450047560516749562432384419158758414422344290236067626568258532424276774090081719117624251402392400262902549328980443415179215235317005600052414078499649349580128226518042108436069168646415273349290768526939774254495621112741885055267770742546835051079599954125622227413957773857040814298366234558037360030623180725617916895379740957956467585240019620690594169540748543300646208214414035895792752414960962827805852327566597712170589093301515911361293174658997023717609152655044022599507255402742737976588446458419955471362325968407527225676734014942379539960299527854937641441621243796208448662477625763315520243185115071642356015453093341096072607196862481611639002088355695309779285716420242593191875809212089267984556834067824597143463511845190180694674060279551572834077081071565458600691130912139248395003548719000136131174157358626977481847922353786845535973288563164025556611349191862852753363854123665733628718945228610911918488297831356468054636102612396313398281247408139610288667512957582643791601754500699596098805196324981324181321691499503035511854039063368202462218981015017083232201294304918863575449609850131579971327800944471622050029241778676161656180185336144304221962184476235837338149327306969649059442814399741709539327260924975793310033494361747731889394768467731742801048440008248312306253610885869100013697789365722328354932466835946083249110078850728747764451017323590744410978644235524514451204802395350429380059982005145765320261892475623644216058504899893472796016598038279082375452951624070108088056797823626940460583565927064040793910517454442407342506840249265211744361639792235419914643677207808747908866541394967769989018256748472677132987916214336861157849375647612699617842808543024926443773630619026028920038100024048896617639614587361640711754424055100414314328639647361047789486961796932623837741476415474063617751528627634848098669440498411951685856526926335718531712314560692940054713749015111375367592230213718340184883375498838061996787255223139447900229182997590178149207067768897492884097285124432009993764278093643248656443973823967959517778785669650334953043626974863885611760034043357943417454092891006296366252404779570746112596130296433795078537560769400970629370207369044958915481381102983772721798844862630916719492344794393479998108444050394663206264814417791555099605120513913905971825661488304820996996594071484270740477328742470946806445888929154861715370624223665840238869812519719822783462629398461791872290929066411731673858647058607903162844510508825215284915131246703579629680085560530042543016701883713615820948094099399697028848136445043398333606611548232574943997463800586439976586688931421884879174611188068413179043351691605320285439944750459262773069019930576091969434277420550306439940173324642506833924502219273979905370866497995784978917545669632460673474517850241265024266368109344017871078837064010912443052892348350910900582748306376908005154900903444217518233487897874052368580817913960428543953103328210532154985114371232429581817686346430922562722639062782520435547087490037858948986376716199108355947675144586137312595044087132142152843564192171738836404694924768590014557602540106509155861242932548243620414332233025673040282083360061498947116428873826530994734432748907543978437084225546131195738932739489375142556478612567819435777113962625842442588425724872753862716136639470403188099941304358004641926981912666784221097039538171637301719912920084417807009557158837679792487683122593098516488149421849451110592973688429184284211311442385155297471338483070864405322809117618079105974966259238024109463803933687014568516890240217004846624613496266561964233478920991812550689237691158461443698925059042347357937095401948477749115593817471357591758868233844562141177479703087039869633522738118063153812202423856132397567216978306117506513468880757688974367048190983286883845459233094455955033380755655924839591167127503623299294185548719129884310976989744113788851793556672690524169093301834393604236784620827361766533491421085365401025811830698867292435205531632468430805387084319174222068545622522357870862097289749428895313457959192014371914128421997271860784567519465461814561857642533813160898345907872359160820912536765554107632429988893860933318234518510501403547009296169586189360933585187264354523409745721022882178579388898872552442811458719398444833823749353223308624638876631313278358014407243991497033983425743557539092894548704701520814912713840917727716253953701446868283217626574693685319553242098872847274284459098444653612699165016862389911326962828069457945463339839366821012357727305376033082690727660471556127070831187110484513711252208972330918668337828102709433513148009202207009454751562621361679963577927607634558027546612643068608851082393415793246272865266481006720976622186814857791018894055272528279530724266623888409390883252674174485059412207858173828154531980714721565172116217350273662305788748952691120902219833111358135702861484694839956291273568827499636955104532095561408290836992535160753350051586191791515291452494213237973571381609340717799855906853215649643357858135075970098702750679405824207948103761491965728806610049525066229309214198641582993770747623649655455794951355412608439499381358775931294995760257319794242062416817378798485840190919577974945303116149771139788238187968496821069627491802719392512612318863654360046597160338204904201773295355714122576837611187889735947426195968116860465055727576898693670068028007558074324477718355577737218185456294806357684733489936055115273262635291784285674322895600918760908245989541022578999664278842491801448567093005166057354362918851537755665259049114042115545682529227472289231580893147700088244782142528971998125302976705610104700270199089536796096909376550653473332746489890899802779486965748566187594836722385721867044730206614475306936772805610927370616843624593647575573102019584980188226396248657415989592876217204814628773282881849989158885881492214054873889443499250539446214108181467272435740042207949636943598109741603266149854749221870375207971573925685098750821987399070569789512592112667875855690517570301667094119472708552882712945166455509579640615614573136908802976645692382119926172754324097052809155588481569065889491439153002042279228281137034880249931940743987187344246323013082741793350390259731977030550104131097899781306634232013979699991054789368330201135165950967100442635472939343839360445569503133247817178565325841469266192477607386036932573537218550019652298889525567629252140352748403026679636289593339982905299790963860835400152560088873385720491010517667139177368397536027242170594152951381586899051811864880155905326175269038875975038814093562103173175238118520780087909165738696212999720942047161739988610025904167185586823687419834004796144787754024096636437655537395108195197670318039828779920157979856597044894997437189973896018183330613677902918317111802896959410532672486193606517417113110515462906548558213699109993810431388438362388415667644404243965169607129113911822693435453509017838875544635522823316098815834104989828466535863020963710068607875582595971580761686245768248623323072076403274936164229197310745992623056393784018258852402364791328722572160150044912574940703891767348089225772948192835361072642611070128707831280286176869255093890287688729908028132149467978915798999864559357555932748612324166204061418684751872686633294884045537167194785172331855629595045039445933687621260295449767623800365666708771263132950222674519243738463164855930733975096873216771568638267708134081275368157646523622762496781004577486793566527643264354433422234381224845943384592269504563534968050984630608617234129628340858994555712675902332762388431715507398559333464566925510407870742353120660271356336951053349750770383175539907008235639128393732534510093242956504380095595062711083210529122165862947124507623209571215564801224732106221470520281078279408939467758703655588653168236294570001847866130496162688147950728193579450379400024550866585938590351057197255168125944603519949023188183390253625534798844985198875833600611090538100471645808579153092913842985644270845596092797026196645531440404576768966992687751388497005769025818112976610693768062752245342343150799895694883945725843970566882584246993606514030803020784192745393558643628076562523811397987591224994479451069122620588037206775969975345126160073692412876732697108921666875775717390182908346200033275077873715658624229472157929496477214260240405739798640454957856826710471076177473987815192996478806932359498149002103121291326746602729924613573923484822173373627621026375725134884692545276595407128343889047286073796134569653972343853223835051188614920984679670838704414809057301074695871227124798197412579929284866270180188136679475141062255011451301363747336955633000472261157286287312559347742490648007851667242237100788297486952198022964569999772823181307894463564583322782899468106090550319170384437674700838916339807472469469134426930861126488132009581619004051923483472514370357020200001281549862139660402604199054190471163744967042021425090224871870353555601734797320762751113641116239409200261002853186218518917082550142693216515044146113494957691519015025978501396042489170435523758590516618545274092863147879333173422894824826560878041327610986545232172203715343337479206447033276191886228733151695788699385067804801081894506375468050658602982153650281255705540877640179855789261140268969606863806912838371699476346263993244198531755399330312943423877784095207348646143563514759690795624275003011315251298340491225196564223248605549501007839056255498698983270356542176875819096042980516157437590566989452462626879918908956724392268813445675937617265659166787404786058513572524099370240074937807841719684399161272376962348824397903906028746371385851477515797438203450219342052082406705717741176897115208816267782737815694033046505163865018230777747853591715274129494675644437249884505035602521603389104720677585534445526279118206050972215046067353010007320885567197533246687572714119631936729832144646357954386435410449902136112934966077454548064937355116383856026691964748047586182120134931262511340839125910018097525691198602133550845780015784223670366540589129840300613193099355995932665507331967043152157950281169094334861015755600020849758411990027211280152592651456880123036524391277211975151491901027801517009803912211854901009860191374470745202524260270145598931009546667186763018624176801501371954167716896043338099277496045059396167642468393011987163019250191214498423295439432213687001270369536771276914520498493450415392589614324145368254635087224391077998478193511594546188315588743909030334234767852200592889777838322764766524367892966688864969485405216179079138867821012040322870029435403540274153611936089744604794796129673528080022519873352040375175752248145973379336136020456814557577902540623422733585618553732716272610652644825777376722441480140662331532862454072232373192040713822382538172771851496880936177267599317910114528737439196852063654897666270247160437386834434088884265741041172392775642088874556781648157524056352693145220503945882852643682213171789520762983337794162119787308767212692580319241432728588720212326032292934088325260803846877125780670862895514926853174475616154235655499611487195314064982306617915801731633933685756244285509125085112878116921408772681647355616051034954496989163665610044206108929168042732821868751882842019557951668137064367740832402161681666062693892406253119354207840261008483053432054911691000752110120299306125573253657236037469114777120994399877649454171477376506495543971890523026744254055219447026491069144043480560028998515784764614344568788933688096482858790501429343313937852537622567305324898114804639356600384866385239891729067278558798440416366042507309536482000344507596022917434269559797445574489208519476689720658660854151008686378406915947519707128667257724223968359268298289333214647526243519857246849757760197925633173347144833819431716913176565182760697172899644218574177061231210624477899539941561634906189705802250001159834403121805377902575461419897022992554137502356497138886080679046088356924269930495565726531300627240253355432919429164713647004614067071432415925538824246054598082949027200461064401437148352218628333667140796358836412704209171499520959570725993600028874186846568179324597816399836429903226287927449997414910172788612618006146833298323023681774332075051336002467852356636218924158848371334681980415277299923131979122804847011256600347519114543103726433940176122297928501305105693518471226042970847495504034057201657196776302307335299564457051315952979234539136548522295573258905723334192328757230265665739009588737977057110098455604492360684381641701901262208523853385474738933130184303310294507047505865473147799972374495037331855936811600078531310708279883675612401218282125085773302424070260180162864867649565857582132203620482712922091015501227807685413764171896497354871104105452940576096329848995122825406682708904845650637698479080305630194764272996748315387015181694987384461755290102721664061051172397463588365614576648200040281675097029090428518274203279269042199425784558924546367743813493219546345656743953846797710293081442151336143560664654551594929370796481327912158766478662396062312503512205739486714291785003509409063300776404685024382721486488465008977048519681718120143561858617010509216561789865120818452148454394633496910241949197293144964522037410142469647172808485847294135946126872892462522041556142255944542478171330586162830521970142141917111875661219838227910027200864761198334147184742114643265323618238236080632313466361366077685731540510279767988722414994261279860272039622136691056686712933941882075155444091769180408819847846442253638883870247208741400810507955732137189744699773077991562869055719112451172017852803196556442378872960212857743400901960395364596147093808386068767053462326972817186354114067328665649317615855518257635466213838923878539917542136766267029479593667590856521255468409721814523919376474389472215321046957886896471982893470911437284505793675558944956169907977778765393472539014967489612968805575012279040095665118470292839184336244317644780640835893203960833456254387582973234353175417900136280645117187830606974345013871046377844886067937367322723037766671669591439552204653229275744540946493657675548247992488125519693214101506922360514171217767938101711846743547271880527609884147349414504310495366295648666526609212685818473730752098724622606705535808262763550536847763424923517741803617670611578056358104555869031349862680012143064897832104783627524649913511144319465163572698206075282303959095712003509699410499378036845344715977498474992952875740438721333664112652099005814805267002202052017447177105463807449522481201322810681861721351110324550287603637686414298132936537247193179829767388109854478678306237251595482962580792468056274749046246608795105355888263468413271307916199876998035726292138015074739619207763448678497943293199333760612246646602325395588500605618499837948850406654290769096387624657779608541256025505392158329934386922165888919641214392534930796012448576706524388106321226550344145108811948455660057649664081933175426026808501317935186711387628148526655170827233430810844025111912131548748263206895975239507291963245014822449391836142662899840156048581779694965602226190379121542699965886490483096126043140062049000073143534122925746810193128200078297987080953248611137827060580116095692871957105765920654792403953955619951875938664659734680842353995142451299739582888086843075159960804686682907338364015836993062778288084280319835031443272222025060319557395863601310321517714769878386364902545104578480813792746177275963038431842828466628013648984107574320513818079050895415449802945045238537141138244125312499843308269925406261395211136263916908288070593587226272525637883883966155488759472779925623309494813103685297466548153458704654475658766011579575404272341972153619433852113470299424735998770824335222658856502117101543522135346074351527428470391579214188619149207493182304491913981484845241692367342794023200892927665062720950999698681536491290513393733514112287508567650506156009484552559134743953705632726677337601457522769699613759130030721792521897943011725132684802573783534959516860508404292092833849095757233570451411431471651606801207473419774165347264525335940097446275399893128503811680046243406152364998192802458151756672454964752607814481001322992118897271712836859616288449270465437617338426890954524256049223190244841333628995462249792606451483640131844847209296779488290903652008264033288029231516977465574527246456498487752740934315315315724502652279858919342573190662724532334034284596084127666635124839315292256521648276663666401748081223802329512512976804759666838418399251747858624388058937435740975356172409548885574452008813803943025773664743638442892248619403068370145712119270814350673340462091083890358207649616149400698428497756272378307065501027551554061538185862700522568302445995655210509399630098610177235380680649631035682758255515547085500754642095832328551172711974649645076070914006023732626575492668558437958897873561782974306167775538399444656074903997967242824679239074740188063552985458058095431290123084319527630047520834707644483157070020089352221062167610462040828378989828381588337925568710339174779849472748874568219870588385054894735783148668504085595539613648188950451192104057776438925441649260485596558237313845442613331853771136910650512472541248835435807296347250703542174799797698509146945171822786673856884929498287129736082296775527806221339950609126147103179459934184946752319025595344870310513373666943598478449364095068951821556211154218362390387331345581881290406414153365051469394696188370622310821259202716943462880960184808450638324103975878117513075070663863268325248339638664690514538687080959210872567096561975862883544540821646547759759715605188925826821926438908932350458692936293257571742417086161909612830368902096031883592304676160020916547555091684860915676284899160492520341169058213104302012586016131292643685741758916320347005053199806943320472964619514296538059200470064597174752208314272324132539632701890834759270999108005712007209335064653665027691603439938370713850369273880523690859143045165516566915127120755106563348443261064041546886605852340253005440260205746183798505679682699652357600712991790126723785116401577774916249991416890016740121295500711723567421005942225291136563014236869909053411042224815736456944999531161165482036020246643871361620248193586869024475140539687109219073457255025065684323922469423787120250247322393549364941725968818981138032125390303979781646168759127001209538391489008255282829345059350066636543900377222555899101107728221558805077809915895368526394713473789346512157640633665951370726373649113833169230676635479014245023723547130753721856836674774630332599946568068559185986164852040917982706248527193579842832721145468792437599712011432593340505380679656398828188914086756863308272389262668683871614157740156191572698127269209239283145381865222819311568258249050511413429297354510878694496896584367201530034024983786786686208502400886123931263289458235744124772034627802984636505117859122620051379391423801467861884103912774701633583966316962512674378822345112792982698402346873763888718000399942760986348933473408612091759226358449118280838648818918568902864417479163171877525016476562963830104108471287707976465775293867056590036712955060286175944287108748472542301568846664924248197304998665542470300354428256795513363701289003095310850530409987644520545874429187795485147617223807800972666821601757852526315825443553076148579939825315581254442279175895626155013424194223532385943770397331573534335930280536916876633273911517014929777841418266602717825254757902104906133874734090126841122884901562647086796611094431658303196344945173426975786971236139971898842886880491830355450333666746779788898003205833918524877795251140029329063497613658322524543457158894393803665298488205910254080648573671550175239542978519681424579889475563160990080503281556782674028598319340774216896952391699218968973951845810189091665467438670263181187422704361309391543886957842510091354248726405826182917335671290647913710880951264057187470023791826672992397365009142437651498369266514836036294037142055175506308096704461383335005527705922810337523044537257023835420135743244966764046866264549747191575178222006068574027547290806592175202666561700163872314584449281641002980991663571469778997528978889328195831859522337570402629239872477665641678831626934926623941254400995528775996184818118025677786088443508514403601375262506588463616024824887490844314622935060793062635064381614424488617557004089967038892013106233713103040245011324892637494367770019635595217198029567485706347003793542616527675493111340788677803120598102873814616616505266087161971245934580109860494784903817284766005279652788293056331670427727604394938950665859998538044950847306470364173577023258236796861265788014079021552859422314236621318047152100843390809715749700049202862775645182494925235677549470730099941988544269528443096295883361919949922007798865636688680891160184692446360491925397344134091964613008545083012738834039878959526704868887804721639276788093272572732589570066578157356134013849880401335693885392288270082910591843982311675629272480998060623887864370686882308320746191492028971690559394013041590898031012777767981236750201794269290296125045842706588363230836282593508382572476684322146591801494614084433019097308589361491766772852381477925375850383958655902448416463369848244555637979168405429949073701068271788974378441206307480567646936236267599314475223833705527480013271367651020608209032001625624448212165412437295928388628176716791063815440767079560389520476877650034698694818564064321376642345818197428838228770497625008360861163961616512325155896931909204361570217616753506213010793299498161035939499112759790449985777060116627313807282173889714256289280199129052425233822490159583769086349765566206373222528789399900402830812988372784982277889056680812857256212108685089678308601530602495056649264359686168820696721009523331223059873405558695474512234731317687874172994659391745942842330697835781092639662252855980215028439252251403153125526869033647416837172574597869889886234872669192921080904475832830416359340786474597453053052371188117893563202911155680763679436081899480203660510355420648224780822606193694362965347653680863205483937606087762675400215961991017831322040962529874966255269175269751466854092318843408560845055412951166745774549606106524229988996838108285622116463888633230757199707671787691738785743606667896420877247952032807304759900886068250896346854026074049662315455805210557940995560321406194635814299428086262140316364807316678361597802970438415545406838607244779066632028099277286021694879543386833483564233625473042845069511558678088529097332583343925893338003557990647861866883048140022108707422168901675589859126827257226150190143756835285213705387929760755062653593824368226326979790509453966203279339692118476342897889441475180722205678427484488147351370272060546175433952913047805563672045943706833256006189527651768776344271402042963252066826901912254118262391515079073048414497495767409027969487837255335507777011640550315283105859430349047921047158432313206575328485790459766782527914725430362332221724145591175946340261824762689978422987932844742471225355587693354910561283412808990558410978279439012062887229458829395814050915737840107742913546360012268089482153134366187966848313305682819283848078496030629271189785492292967882382720909166889058603561523087858300558801637509304680578384138147959018519474498771663764582588008401984776461264148511298251217157187257459277505338812716422147067432542264882067454952597676514948015975629864757809330180861327529675918857386402561084334362480262363813079133671289896429135721372665387464494965653638139708169562126746941554186927623126984737080064122901699181683954526732872152336193330364801326347062092803051347803402472649198433192436080748173321825949832182987960225489973072544909182679047255856677200105230353065802445153794201558735947172590977181845909131210030298387256541526157164123089106224237634484153296542877302923602170447114931636622259106994654726687800135072354110347559440868539021102787079285320412946057045672551672684613263503501746250645689185831326483094800230704904370871788866994126620213257148177073217367997827246859739006432709377368980134610036648229086867376453466664810634287606538034087515518934925386023250007185695463468663372740175973978563064284463658685957086662854198701882935714064605773423700715186395646169641030989869700706989632866554970798273470924621801192521178954707246589825129003306417019332589422141138083144227985033444114814908652039525224124190291781418075476831843734742260678943056825896498647943597284566762477461720997078625403685878316719970865003234554869324718105360424406099592981623595776122392792926405576443734164577202360634642454891681900534785792590936237366267205545682058799756533886313878606026901491186000464874084721274535297662554237921801491290843088136011822714701435624397103716673443412710249805365005510690392467926559899070457088876325177502471326029802823995797846013452851604206753296148952786318507757070914334905147215629612300823420783788521754721007773639029101396170641669176156486664836647901021625845354728587299196833358473982832552993312416238356490472293775283018726019987937431912980237984423935236611366983948721068538225795184085956431982160586881856470727708379731593443763589922497136577772432363385917088227915103986908536221119220269710555699212568258052705665196387227834981970627254667820684944758143708299854142770845983968102847505354243257369966942522231092356518686922084242660129674784343316184404918136434989948268304414530676214224941086895240166769035722129221677092968473502589847689223762655501186275646863576396847701539474171209525809840259740078854995641540379102581329701623679924009186562236765243857362672909401974148299773550006617452885587305042860545468220641677595726052970146498971762633543696544241294196233258312522921725177437262808367045225385353525655845334635561994880372321281789228753694416562818432162870617440165844346951065452721243012658226515425779437813468330220337440475375035509515695751492378417183022544685361015245055669910715173775173713132112328508897982710002223446476721350861883293012383013730653888893483599516105011625157076810107293580974040105437903621743767066488121980157478051289519746417346249345061843322789790044843928722624525033293296688605559210580764032058831101022426727666312424420179862517430803013253875935432600407778041784706485969669541320685124881150130910867200255818696674981998356048830168683486901086565634228333447230671355293362491531125125170538326275129152042369772826588895991911915211122560786731739885015918863746859091232113372696274126574233658024269580047963980390977321018118661481813846693164609894055282784571838924773201383989395706562600833742675017958125266198105768537640171862300383982463459556893573280041603547375117563554851879225718710496322681242418867403194284757927643855874186375727058459485405708620364836766901867369802901159713625860396869466970927406368182582756774234140112695162964298526253549511970494553732492028652520086578598319497047203843025956134300377027415749222431455803761309623531759615334839107322779263072896066963352574916691407370885096004662420232896606340707679334721322121522303009313708810075692819039778889779989446108589611081958519711065434661175309818977435927679811232568120280522549657725659307924712938638893700734662924112626681281094504801295104151373703139709469106199817832911010668811231433545273407688092957524785363697624540459410842596862083336337318528380469850186995617011062523163396275323996104833988693051428958319215229076277217045877188458054966639153094284311656366399748273380833127021136649334029436784730094745895021920084799620544762654736612229914472361729299559792795608561543726854602815965147051773390157506523390245873517271764703035887808843489757136533295470493646152569144735528083065960318117691227807344030885384508458199386172576654140665455209040699418571305645324364174036798199918165520221106353925799296470674401010078329027736986430417999090324716324563394494819543444189371929613739709664720919002867544110910633358973540562449519676002740847753438343756536023768726668058595560602454836628097948064925575211081809076613659299920858233560091511940680939340911878557988762851437291393249143391232198300896544329679257102963188540078639110409560450554664610804865224112678939119138222127637532247723304508560714774858076899882612019356121619253754711695237602467458702957756104480905985896772098650879241086856769678765958568404786198237224717866825460733203447510563275757943234407614271267268469870480224553710953964047881862173759898144990754340403356981936492427482708320106224116856882161839893192313401667047988746563648093746007634101941499995508460677018269650158983342073619844702824505733599720899646690808619714972231252927235905943669983366065371950109406858363566504274679491470671537518259568197580184733915000379871049834124392353771895498354327296927372962275328324502925546469192745150352152619010286380328901910699674626916135279608947253659640394511402355173897601361232002861304018302980625906291649790041992795378308607791543789194414177840005000538670857203860220222138100773432480174857129476419620981072794812136183337282811043404769292381502157645102268135912540666354342594098430204679744156269172383096928400073878726330590176917991966684956573844580998291563242870337574367144073838769572095815502982875923721135035960147322169024594387260499897694948738016253375143006045525704694413160025740556380251425289630211697491777657042000186138506355917565257252841679629889790985701118543992235049385028162002696203650252232340814443037185145587522278581179061666620580950872357304228740843409942122904514682543827438289567560238583139809033075147110529502925157525106786825644641921415141505694173134110967384207182973926113859191814061927454711241141767796518698466418556200287088971876005287528501678229467638913934752515539809319639948571774410024288781094333151693564537249817335420042149930515645732610743200079168990086213325766323877004897189561532539256574384446011872400450342108629210005207633058399266153173546253652277472315470028235956429046348410647822096560917915407145752827330296664216391193605311524358556487600427671761112493954963042012549892432633338960945635140179489422541566835532591709107703848035882704617382734006971442421844780636284645376140569911685252216954892508980041985997187052087613913078175914296970418958320922082128458738109480408115145737765143645898981274344976610430875658599861287925728699902424524410853997461624362990321149499106372253840780224254922984905325341218518713332205701344128474174436000757084267774625703925727268417167683883273555510285833158572457553667997462332547928174503226191196895486896809145404502842933105226043832024434450598838064282683640202799810413015153857517656628774367637592565343660694587583562914320561678756284975276831788281523255929815634830458921798611198747707015732944880370626345075302880491368889807537411072726848197910931263138491818350004528219817192514425488073895793893769744926082863459768179739011317521065931905962560561475084823049155907572908280294221546748145707401404982738207778337150039540401149141735840567787007954099136095338877226279808369162575681951744717827269213577276805982138889360005131448847817363275184080718073480833504275596914911826814551066264492909928003344701719310792820418340532257787399813096431839357921490390303201796036250974451126571115955656414560073302732966378794383932276130424134100858920887212788722735958837181885128502622451566198709895786899182463535161533124046282996527219242107116318794836483203935039665404384681101664956007169638056825383861745384738565832063346267438732911713380944705105393500294045270984678881644019391187621097724623890114609700257814834098380538109822387711287991278936484123364892084507098693672034930943767528384633047246939430473046754098810680705251367892364015063861766291648925838621810573823623202339092647061199421059560825469232204865598026094253032994401025282457680900421747759134094704936810766968221102193835233611969343032237262367080680159861748069061768576613442308118508387268808615677630633751446668092308971981860329845872758558927485164064340538872650278348015559438263046077036103365334855035318612406767472121074345002016409532834959325253230627008023293398042138602576368173450728958356776816121775881646292898435313632002666741887275203717468640268054201735590153052137431987211201689202461203773154623770844326791017071802615425241615391213751799584948190071347418726079257710463827981090419239119777161805964608742561372964503886618890085943120879231246551480499204480820467039814810428031154453920970230755131481847223205468928735649572503681709764029129330289074442579446852539833636559849848757662811270467338555520680753854690452714495552226298774583996024677728700376774376471002965261649625934936340178461581218635525460805408950605854000229429345807644707502620426040387249580576746737394129258783765566069990869596569212797931426012571200943458571184690544194256457328882962175307953511014793259601588278340936184012444742138957677138701448958792605290387071807665804244580500924373947246924433089506186344885077105497920716315060811012426706155568943263634705432308351701693396894877892082850301730780538359349574004783883979508641654818766624392318683882443433006397830749087150464539324678197074672309309489039779274157337363661406470472775665846943709501842690351431967530866463001626838794825590394591273443021540411020040713610144068096264323973891424040157566144437985858125869332866395077123800300954504341483519244796308048055032400471289420675788784928588879000970111218272485536364189662151464753406083175112136636256778296360282434247543370384242278327351688277770096626414995765391822552924417230488256543465421951527510630798312031591800675254600031632689180292231490504443526366836493516078565731617297726783977339945062573288520615654802769835643490729364786464287524218537567007717733332848399092941203087742705498843896011555937243550146134970243916506455082313402977366953457974686364847585667323476127341640551530062925716488404490142001557821034181359894664678614085375388676600530609728148396021349921589698580135231137168927553440675524113806641210041962366071742719285653729577334631348213177963596673103540037847893857915777146260267663277642139030256280957416755803559204828519625484962444963665663881405630478984534125870680671445449761184641704705631688020347238485488363340476783303093267997545026992411654823665268407279417024634947773871135383377726067665931717983988936474641734867193953830330557178424538713642645121202165875078331801374999227353641918542539423661592621885245286982725345064961194771279753583749710378394982758169813353307682195315789584795893941921537273065044669794050406587467977931435997059997579825992126238238947052350573286236058654749098971526931518622567482719937893184037754883495455148015990165525688700652566598411912635637928111557117323917654888815277943798285657616220552109550677716670262954495178597067255403356334761289058735457950901013854996358422067544901374200415782451562686386899460909080852309173006864713489656993296654682416354688486089520528483958266393733405198530316587820468481373077807197381059785879759367831181113911686868222886370459636249140713062165086983606003470947606836917161142004050017036646496065941280439591139120287992444693155000419158315180832488217229885839275728452030238224149492374564532183995648035025800197221655982700784342529760405299954127215339993710503843130910163416007769784981412867370156106975951218030204517508254229680323755363103229049482687481267663028625242363187755273136073361830695067354399791393043366245297282833747064291313153909482417052883581732227497639047855011813646001406805187194455756225136847964111246354413573806987412590771074887345495939483479211900316916001564319530685290553239326815443273287402515489252555960430062266108903418540408648595437549032026991131714131461348517277159936310265167703686576112532359789810239986108575813532197379386113216863145058741439583431529401333284544370876245900821052227558856189110269771300201137652608258610432621339612897013473780887504281629841870108850428571130820001858127884779452027527648956603357154334705306268127687333034110372037212621283860686480914733529702162254755884918263889137237625366342849494705193962686657202039241492287107708449313758677812224454436359235073086703540663518479225484555331548054644012779533864677795652539560790443688186732911522143084592509534916693380506205674228439730316197663186201214819384468728971190799079023660093366881294374384228716370275726185112192648632973103008418934170168790927009347685010312029623857937059672272604108589995816079985272606945038834829578034787825219278582405113217735763697848331313281848197936680301240600947506272093074496053792978408403600003200281850474823556536216422612790375858026464866714205347528960898949198208516538085734947508853168005577091076046835484075399673746634894092269992052187560472483597335228008289111048830200373602178769802101857491496386230916706763460122026343887886305836544532926339009781224581607717417710319759945760995332374305375712220833204745129654941574732909704587555193802507589040456068019715618516608860622471936887251919610516005686298718205211340221242796101492846498337566293574433873291070274581958727945485995422438383110489020821732268247693721701935465522035134821904304684976005557351729879696315792800808027261295176360829160686367650854062562402382572431805696270648912503969002280019597931700746984085709610781970491569646879002293133519880495811196312099628273663537316924115375584598098673443490477023436970108982076174451246218811831667234580326839390577304054360887118883986763016651144786273415011279127296580088514509487064453582526271020349633482139225668468719751708623578103243146923873959290879155958368124771773628566521523518684012072417226551142209856267882243980366198651086212720460700189459886161229681257983707863402207490520346178989705735512090282684363186748891209611096694453171911939977033963893557394220889458049034288079111312483033488334498499831553433946669885898406494816294532140413515531679879117229580544617229765247988194239737666316478277972525687066806458224895483651425576427814833149278344404498393106569407004061341073140998758647018310488789740777486400438209194122581329434647823579489798194800446436818618310501795869000194656366139684967365970921876391863591019984450540335847660691257456337196451937355054877863311455762929773588323667740696647140411865540024275463055362214707600974944877492824923489156553686890865100993366481698499856921330807573901755028370618199510856025891989098654034606677358322896082430677244963236034620978947623188920654552162528953248289382060535259371901652077638814244333560388512591210196016816323757185231790029090771792152423166139931468826940476488485231141675418173727191016641330738202389623552920629667714647452054880870003934314115437196097963879383786147891581142517118618749379649143990193872858666655956199251689093150735189390576774978640938277505123849437690208521909422620576801714295232789468779714621251868290934236382574131147504208243408559004075684725454343430377754911705465341462023096424184694554349022603033438775847607578329957813666275398958468068351815857912825628295402497415047619658495001730886353062428314363604678297165030457325877179612472854742692357210789322404605283965107596535272333151789007439546161105879153379134538922880244047864154536332427282094833204432130616061123848523107245007112539513477726515516598168346029784148333860273594243388783864190444989548348678488124260947328545621288706183303833036130776165370270128374611373430323108784553154907542496994711143650562103871728737129461120512387994352054744878992934686067234592096614578144765583970927159334473857116273517134103958020758926786402433491970590979669073249898580360586003243449186116332269401597059436593693264959525637849311214775898964305128290832361912277175979958708754532375373019144101774846001664503404480466582203279063095007130024214313711942870140194976431956948241967859957252765422415389174197681862628712243806192408519575858058569478397096260668653313417412111948027366994412780463926197628479196182653610780974103421616357979067554122455012001201412598575919478050230442318379779896598846674874723135728122774020464201440246479182542716697437907372438662588935457269398237628435607392213540324583040491268076849247835738402172999091649526422700825217792659267932318579551931437435581954794841803435772927180301721848970065647016948634915625243804218619937943286291330935642878932786111247737706249283369708586598092607451095479779351703872812680902905652896511921785843416159815155750021595551259631151913913169653155494874479049964674638534119266622375681406269230341979180546403828980445717499695677531602862635111916908749002367095093537162947786145124863691867318426997713593218864946617641451358328990958406521465618236456662559451105847741921472832160167771630161070131837026219829221006574455931495278362188007823238309045702139001926839174735620868300448358969028506234701900123874887675826237720015231985012068046525344310981791322743343230685380012948275401950265230381052453953915448010012206819798899704209643341649591940768449917742860023919489404118850693987286454624638500313292025640399764610904697489334372200127884328999565388383897740273288118289512664446813549919471407552551917942828300082557955986302581334998661438946390405862907396530598003433757051034320930373260095279113629696131332219192160169013437228212086443545701296109837933536619598057519712480165270554740561977374159701152740588976100227551867388895393069189228809647620220314131500132079034051466599639990311076479276642883569973746096121336569207948369702747164708726441532067054943670441925433149670329936916028293598462198006707627975603696455063577273304892257222213442380201777547122556771067060169551831796652828593497894660736384699503284688060181840238324002841828415370415853347526424884679501626666369329221154498020198435242033788980212937175594036019870922513848166712237925510502863034994735133740238101357872983709500152774714084524007860747951575184277484612884954506042985958342133828109077443592230367980152936440113956145559635239282651498131802840578625563565099155563498533147281435879143076079241015556224400629348586640935413679210901407984801361714285039057674510541050250574688275729616825663936448716694497374628377833544538210149946985594136459084749973837684703252112483176394886155642149278455691965249355216466969341788421991192446660400206531246630500245452084166527346222672057370797116370245933255033005705417665797018910972699830044906331952105965057321704154819515027102747288389580654070170126878087589747130920050314351462817392163310339595342659314302466926835952825401110880506725684106670790017536772702652795113823859408241068209074866002564985196916788927353503139046687912988356249177737255623981778969466223842531075850448481583280700558904927424552524897432567020750689661480475346606475979775204608429270871567195973765670694793515848134139642607357028825140697551596132257484876812473890753412249150883786051833972233369714452822285417239507122401758574740530963631261381846120440614005709471273964450074458974885771992190894546860643010370911544285325517439042256555813790897025655700575938513978038599307315241827207405950026467569499925392068377213549361250870846314706391537384277077098382976261511073041788941955966312308838356718072867102227011836494535180400328006364078518968678496036890905743013837008358937269295880848066145018503212341862170867941642691524603688843862175011707614435105752397809761686574423379653677419657777192535394751004588603942696448627656762212822522733466379000047362916161331750660638267058453759031020133429763132736260081080262265464920038038901165890350053342455891853730617466678552680297527365076675899368317347049218717229172199804284894954414679139703599852546375775944507648873859803058454538104099399561451578754761712703419131842707227760068533056504614079264855145112295979600557344756702551768998362839643488132142277055924043506106327079203000297354275846410360604104203470868355605841931258451383002926129472902727430759022907228457394250458687710363659363975636910759676703298940943950135026534960798847918691532960455721761255271208454025878469595050875187509696603022014996450687611114535300131440226604599464823021437082708247679946506471023972436627317484241477242902982413416817384176282931315870876043153863785068868599801668456398252317759354520900370933872951178721253385788934240238410517794861967006477424671620939383792326274373619235137952757794060119408349676937387437514195781634880909972519540011150751336559155859791447280888804338956834890201314268558190267857908368187285169610853688941464599344345622869025795857164386266752401397961320516815686612972328606447605789025108699293045108242103028845682296969321532607789472738657551720297744324600128784056963969894697286915474325860378397151960176929609732629321159393473939628647420787612196665709715702937089497848609060876115872004668275514125510509327433282547607969473377921545743264179285265289826856370139952317895443375341542326902602492468533244872361017849837873286529244803827405954657949596505173707536067976932895512978370019131753399398802941296429121619822834540581767535274692963789380492081443625085459581831686038318396602361514184939185528756596124033911133368140564905470092431046746137004888561734786700015690335770812322160746906388368632652147841857634015563792395323785969881544770485652715347152587826219115968811319961991778938838797705309763956198557480372943538349013926424943310894535990501233708170894413662839629688690502784441858011241300590744528144599323900632062800351856070834090846352322447258198364908542340101238838366572176341531863493042722575767466665670023175327326652045733062100991998716683381895156638857589292267090982487552469731251311950184824208048029076666923343928601601231063397579501992558817263333767682834689071190753832544826494838704890246198958601268619015833249600687458454234006091424357729863162301238732618852153295043987572117807736113679214377114019917501365404140974789310072745177027994829348537412178096676531746393781884679983163719862800971870309043079020274788400498516973567907355718230343133282990869248191465255290132880448290757604446904951260627288036222462584027781582040890982777246136312817504936532880760662611183433466191440575898921444994134169950114806206800093350138122089993683475383743620569444943723997529158719643674330052277762523141965076384659831387482303106444458249075418378904443274355465986186946252101753336283194281770179632552817458771168194070070817946229499918824788821015941093692936659348196419057907998630070237564861634503499640363960323240353720673084690269814851841322901769875305385565939142439940614573797330704804518341786680407422338794675202791426989722824182321999358273584054762251746678883866915230226736048360288594727681541631995949736476618372148590817478248830137126762719407647538612449598465823019499690699311577941907326656137191758840919945589398786975293743446233570181443543821384343615376861647737655591524557738333817207065148692341697218530574300925286394182378877517039557312706934215267219815429413640094400677853492468546065498414449044837664852191937603881588258093404535678143273218109007867919327424634957509309466942679003784490320287923820004483472659893634136664882123810165266181681869054220357109605967057187614587555564270678336672282349155200537702303284534527006430108067302267003498832591642264117323056896221290244793572547987283940925026308328946189790582081485859151669997045785132627087824440800253437015562353947890287008423231260555659658417763970156474765464424173496354829239969332519129047644151267966785428135431797874337490352646939941686555521697987141944959890423887449135555087455863450664180861020336376290189750958859126398556505101980505541808823441932865012599064238133771623983356495872560183256853626522041544337857586776078818000863701719886009736826747244069317355202100660352750441284498735830158644658806764626316225869188772189896940356043858870366964389680752357289606387341587084767888296143797058656624361607339407951721125197326129057866473731743177980778668020955326008667071046442201175698847401737024877674706954691672930874605537350947474699081368964366673739119311801824196039951451606632820000589106045836836447794146224007762522297873513543173855782483667067791999444787892178966870986615615151976509896913350053511352566933866636912478583450904269541399283897568749813686707116896308491651024335055164611492494229852917685336065706816959205558617530803678557141554029160720097230992096899515818498036974234002333196942897156680100585748203118921538795319227551923068775143582003055134018327099845017592358301981887041882644341020986019793826586404180645114145143687388367621139668814494320308325720503090220826352760890425695077187350818330178819708287065251066638374579241777100905581829491263930911757705096119813771703466806238160702404039167614364326352419895574641823304530435606886518249375848895527695138133232532720463410172506922214770599761071529404503423012879437976039582894888453705388868815049026482289765977888579854832100243999427717658960438969051476785881867513894706066926600866418272421581287575730608919332362751931299085891708649825636557332749771170913272744656741363424865059109315048077005437096915870649576428892368629328491574392532149810618571471194894283914887735651058795985439743840313425793652481051183932598059697049791463291183549229359871234063321734692076051299006054528689231744386452734390770429696100131381265820597217888053880447845405721214303074932346587726588373466810101889931821755357120314711263839379642468194408632149795800869067173385985263839192467107338635220570487887871828384791569835457579331529298664852449258917344401363933779803470918729674097932036405531122716273650212856072616473931497874985523116461172915580906009088767200034656291347233426334648647564925133488135197933966329462446917890914175627942209329858546684771894353147131556311022151573781598345571543726846546010541356821328457083784052948829234174829827928535579534051495664087549739683164688053399998415156654672119455561726303165339711411526934926269645693847425253934427912658188124618945944368507320200951339225569345110969973394060538161509261164290149127248688765594918452310329325242699911723154716459442597137985880688511195315912151454337673669053029037349977557430595233092019031927273357546066050688139887177459177363040837153652242335276865842211392005748076106287126788978587195375961246326687716190013689535795315404749248522311011378084031745410417238114415659380421274852307061682546350226306374324494458830747679552562102419266381813896361693231217629775676182269466425490070983161703506817187559337225516046311372972722275176099630163871912099513650617104533350511375917573419611898516306373905942361942048417213127397472323162238249000633289018564456662991170347600291875827243537174254137723163451675436303348075693980141037877428921628218493750281393108551920187634248924261298450324202983064429362079062034765627477891168382330858760398573769924768822489311080538687882544110027135382435793407770753739699217309511157885218725518126044999532705307865577447208206376927532387778321059221037947182403059580153015538493907735568527701233262152503515940125184319964223557772015286208803362483426454524574795542840207548394334376837578350697798321322491216991729201985482159701106897974451264622411120692372532588596437237554465562941273987377415310419212673622521858279163852778904295281096235650101690496805661054966494693694629598509829644707686996519029077968713256302202926841473088083364982574271075130030352488465145888516232815456303852634188353424432531497480366455887928183751474330464492950217747316814895299448649933281438015639588425154554873409233055583910439966534793276990897154295991344280117118146478556945578349564230161249331782717418322463664442611354817007779419380517756071546151904375871384538717322522001390311387109440876826017670302743848153195376475568578077839491891228230419088995842509661512503479161550167512402734388739353532913502646704213199849775015021676010867569024631663952240417549150909702740161918348163344668501649059952491424562809425650455944087800681756152706708249037438357723927675971833895614672283335063436574507780426541934568129209650055603669696636016274741382562651530361376877499352590727048470638573923653553693776201788594283723338310503987527608483532543724754556756998166702952197928329446193050493995996468434593601645492483377640090204996772957698725743574386492640127967997514657887378540969763229386851214828923618179959215787935832081552094394453691198279648119703355490207309961363450660038141974260810809897663431817714633380532927592143188384030820716639348925852264522863862859736662152933712173475608510777822420238598050165689160658723525405521805235322533305950392676557017785136301258483900436174271859473086518222237832836440922536777347639161556416334759577246114695464122813740468948005395918795446125210205578162286481202954734599399374214497715378441563115940100666707938624423516528452473440649279790947582713594536960538263887839435574912115178197770811531180869715723460700135299134401773305469972184498471516567368238129755628379009751969852712416079559642733968507607325411797301430539071999868799853214810042572015214441118771914513834851295877149242139277656792069839684120445438656459305515315271680906786519864737053535293942823740132028885059308292935316898714104367419529267756962606514829500573469919328683843696502582851739527204842945485077632367393075091359268147215907706904713329222365494375420228682565222057417228312329982112525061836912042062664538779614278142950046415603300314357261157663125547843128410583722843460389212001501355004204154694536061890710220784915712416572745134410082738439809188779799826023065247347047059957904106713776151794492485064450201047484073990491974732999403214298936834645366358017417627682865047679985858001396126563407113698189341201315568556295146804758770876825922480981562900369100476273665365630808682317772169666150008811474775619114076719406274004925843785384095822829346265567513607097095287471364846568955799670711240886926139552382817947042152406915116998168496066587638540801499702719668060070132441238003509421624227026333682800221319076083869372548320749015541061302376240264540147512341256049113155318570125713446561461661343157726313670213807786470534648394222765659505876408130341964134295213448238117334531351286756422608118035025090103881422804690849443031423293039103650301406909078190669535169718210133811371684985604413031477254011135648677002861882225757377077180325818130622336189544739962940676907442135826573517471093175340366386683403033403052126903120617999391812618750444407534058809970055935900151638547554937722989806897522234588074871616433753671825277557288373048244904316859628768764760886271143511656271220323880447013901584158649367914414115881257644839572429185104672485888873811515209878659491532485776457272706497857995913139553452499776630074780535225423991462002237076456562159664944221001246115802764915643315887996251590607821664313966521383939348626534202117344172074656828015940850296492159259720301858739380135193486235683792910045549447817226203397602204859464377006849203522796721717139127339796160192959803648230232526017244008750975917520537840286177659495230176728215216285710894589915794556245789188898294200066193237915045465379395644849218392509680084874632992150715714347055883446673810753935115097430734679527805109767419021023379991341700225175003737705651342275356002065961149456658967164898713421973223773246010628523923722194653401812695852418096531848817313950682826677249590996439526414330023234931423830906676545254547516348474089509732899783680743768612700827060190365660892628372348995829274606423546062629719628720618377479539138448232549838582232975665334825097439128786049541873301409943564514923695325170463504637827806318197438487023038667087109206488729695296699505982223888387824843747146771498327727457800413866679107876404373020861946394841742811485124298518889088168821832406523242256955856947464473114660793228805150212091169266789972668700243983245604352079852437070052365716498512834546702145097899683865298529873153395508632362864100192283580813631394024148969599696476405615495650012519715248496643769988460976619462912257133810965329874451783415537619628475079990007940604355232481844675553991371719825158046245118221987335027232940910805338098812522452232061448545991496962310056035909122912570393893453180331796845554236986303161284272532079942536506257188833845500280375888137410408124670096096515140002114978313911190796817864183001543817390913578675927156164292911189694152031149141553911828880625990798452401217205386762527770493376177798641417375137688625417098720542498790915022987412846733985546714999874374354924384497339133969880462536521823715789975945934290236464404323980259018994338567833453067949968226736754502495124995036478087688453764250048952884174540796132202317325366493405473746241933729147369599943231244046267104254212801603651676558108809770846191691056528558079554611465103824934643720777841277342737998130584398785707624919350547601137827059080198223620527471830405035142193796375655701001986752833403748622221839125773120041546707398473430422312067666544246948018834030792721545965128218091911071188886172940593706116948407603027571895013772804733016042939981437361666403367323171396109521986144032873186292406821204555151946718765702053084750565873595436514524007833990893331600858286525512742970608727057913295280037227717532234154608157530693777586646700676901284198705422035308708873940269652812321517747207708065093851212692656634541665754750782981479651155412354993304591510560974686506444096399542077350262349953149573334479478981394618823576671202551592237254221877165653487952528523376373526850228515928194724227117369042208259425617598371678015808335648995483239549805375663972226678943096726118500807909539360938070609050828667512696284866816304249295486290220883493895244662507171468682111229278021071797644318519782298939973223453095460340677155477728944787450604582021298121524246860963315716095989745632072364021039131136423164798288478407134805388329057946002960557273364717610711227274864558841074184183636083760918624173011535368624615095484532711436946223867088843712424540253847592438908935481533174153601720697801513206090749445811938248089502890244537708551518058610849439716410624605642882129295601841744073319442076352712489072914995448489679002908264709691986483743682945196303745977784296398249203619662830611893290853333938744801959829509767936078242023529728202393386260710469886472269253446523680456421690535271808553553264947956595596421753875444471987211791861692805298996753466020522726031855963298147145224185486593424068868054774925525082126522557062035381552568167462585928818187019701982584502045887621171969692390446479006529979460250369674465409694753205532386772196402757294478117128992033859561291725355979321557017871008475219208008348235994404576297070474707243688178665618675294547380359506167698105971934486409245545342801101050313306300962717313918018713568292169654559525429239643342919726128568083106273567196002025592593767308661895872059597200389195180826655153680539234917247517607103547935126843210917466453458797998397377318771477868095177660634113098651416363408733952069822485805921515021902156448912248540046049638685573705676994594448581150318898668085791742698324364243365479272265148370985889354848080070153764099932006237469818183334422049767875361885991133937830357940337177271242665859970682062285530505189032961279012675894935796745521626671625214642026012953220930052880060263501718354928558607695516795233741195983661806743101591437852689189790432221658891796371953863988874967235606471534218363245069835468326413450242543991343231477796620938658838257098766605981349831931320773235836500419649919547805193251075959740605530068026825835997252818829815235821232395856301390163648428232869732226014940910090109098281384995533495358723416444387020816479601285891468337903837063545547522771787210516803173091692742959371891118893225051704284134920759015582598623107370642016439689079886475872231362012900036324558035714101868871027290271598247013402683370276233604009404915127107875354826344770837403456240891184047742744562688874515479630570185547886690092164354495505550772265087274294767673868421148944663478661262547782148872938658123584631755611456245542334108941470528577808000886117884151672280528555403776185719399958196022082418570233859332080632154660982462176142990333722219058772500117967637659529904432324858453896618779399857988872081172753312570951146953359515264604659266655487906632484804976419604963130058511892391052819466933497120589139828598184452760711128026316295137062387543684918317009924747675700510847774705088161105540093391172995881848123322500341756084817309259495293980644168138395392365674527508264337572073185484638109447905993105242924749294138699665041193963538577606704126017051341546833413171072315586844294166895666301276176526575785606285011796759075827862361723381036842489140364150652952894303262369001571056192102401428614977908338545192196361004628409462588875852874847126061091613485193711396376115641179512799021781474585468882583671683390028902362003192947985266358266292264146664135685392929962964893073616552649353034411180546965754085851801277342261274808470782955131369132138267713882235863876729261355372499546462216527600364087260004405182047383296546226888038780960895960246603784355070462525797047973450738995556596307409941830497797270843407268105678923149455785149267519292409211261215554256758073395216201292820592058402061356222581840157659670300861998451905868103332598323166354428721682214147888853947162128331532919804980652082003231739517027539982767830320310237690429877684955001596181012695560452340196442277719048022520304549009276307034150892567453288785283136789330527351541244682085602633873998813589682859762790288285319598709013740442832849189548613054038467756931486167547450416191955777816509213135154902444574912540243981404909236249148415703168944824884517647805403164462505574893201636778062211211493339116704283638412840820410685206561015128634964935220568275471517173960225987669913773447420773144671143933479262623771422973621856541405889812946236512753932828661671804322162108344169580852072327981487990481510934377103874157867981527991922929999760277772335606677232444296495991230053329233786316283916057641517563696381760603728760538468319397573037692963795310087417720876219176416379261352410151788339417027157393201266201791169144515884561610043925855100959634184716098091163808648548773135058578980219937456864889991189539450550743887178008690709257177800329238725145478889919171092802289398147975263377622103021867971454269961851815526705577185252733217288549994635117862624739499084925010062685286107235117638789036742063358507565829497775160289414942874416518312252218798058531812625526688631963915941376614835170490374220412159148428086605395225345037424210769517594151325006830244296803083764300328113566782645326210310022376965070925884827006041192320740173815441024446327634339088093476450419485869405156613035027122260282746654567912272806546616634002186592873346206303263526990275426572154039557235317680586361574640519782229781128652152353219296139944793748075280453617078240488246570325449924849388569539673158110017058035318324421896848571507683132504170630757535450007530427275586877269867030155851790498005157803606800944470653581663414495558206346484598053684787242922285652372714285311174171943969577710106853199899389408093011362635264759011019979411451772700952134897031732118166439335466233367226910075162050535445759850686159999063824466950700808402143590447763048448256563486958850176276844697013271302503989665381969120769970876945484488277803562033959622536754977480477240219282357045639925208501516483672805833633391340897245634498688628002615393722183130598534410151044191944931203066736793406796751326849758437228567873235863735828615262130083620119919287639547769956162104758381616119370380509341691677110976004430989410559354536902020776780209213033986122408770783216208279763993841042755292978482091275723056471511017346574939830493957810629268884693801784704028044940423723292619646567080534289101745381309191422408336160566481441171786767804273519822126843567379778408273619496395574915901778501632837831546793308268414361134727716393024612618900484383971139107969039640587280475921305564812839829726628505820972706763040191119903119452488475683920935721453237349827741502094187141922679463374001976594103684033325858656751233496939966853087056082933684015918822878428904224973694950629622548427869569871527115592073451682573110657394087009458156919996550451146534511444592654836116403605798321426968780943776780453786730095241456823870567722181130017519188523521963760641500981991479441586654793110810552009369795629558305521346401060296025988178238133528145527948188741201193075545092217566964390220686931448927168049431675895943166014538788261108198197403765652185122039398965885896239467891076333460766375350943198413871947145793567431154812118601674649979051337685518036245881574911060269329351716835750026251357035146825139859361225348008422615257287245280528041073059268883566385528431238013142140021481594376408057592844653275066714247123633895187978032005545289109329993425491400459424231292688053957915818203441912064092917540140376005087738497565352641338680472523355273740527932601410861438607851912917670051722573055589912071783590448830534866809677159558000718056602870376319324228313305910505034474217326289762478175427970610718489186107012270314863578670624353617657980757807667303157998882523227764778491533229531302678506614036937772698918238187073705264633059026569319413893319499603530385439259743250114518316718200860198455593020706131739829352156655629593023297179428572353933715909856196064451286971624848122115726445422867485643120490884158458904927495109744544283713493966747635902158070209508173740142924148808507407083520631787128814463417832529515167672954041193903900219557116412747190630964809201684092458941971590466930230447509750028032251772302984643680236768570850075097965884750601417092817144873362496371007998208877408851811783871441062259491380488561365321134871393164713573499554831082359919067599619032604939750173839764099074799577859241820092675525734321667172151590857095007526657438097473117096253592398287906915367161029830626532378056175077135854719376749691469684758670802359287439326355388772925519830510839835473147069580576380514475117573846626923797099663629872083408879459711313200268264507775483294838531686364531517219565917727184469294320463578747054100732817667142614374100281565302997446652046398020971250254513508566481788845892115712159280728165730824124957701379871483261453058672325924956276546266548293243832766803636449338754217429350876116342578905531936413034601153395170640561544298882249518996834570825200915889174895742983973939191363213279705772481523985456983668859264753833893059808021002757363784723179635123929758244230487379755471538289639093268711943376482874501288535097921401026138455986125428462170185358919975475685187005901416586764999655968861525170308521069399344759389132593657831839326986081138442445528208861788618496298585066179476672036751395891319435004441942176510853047002241889705280244808382160098683018389818649370908034479826993088935013062838380324346594501107446308497198669847569111293038433171462354812563366106152774614923087440793030708514916740190690395288009216732499984305889997924641276653585911687097821990424631517248307963176066780091698572478008432855398332865219372243754166880434910723297096627776373086403401091913798939382281265588811424709964038090458157844001476251002529015611330715849129209462581733904070282548449850988311914016512126706469737108981993307521496104667226331560982327585277477944917647061067241056989948844977397204656360505661002544275514339382190551266425080441018114803476315393270289221469248738719919964048152752855692882071974277338667762824983453314010113694944647672038372695030454441886749843026494679500137153328918434868490014359291533791017141141695004958879040305269508756312837974921438951093973633275939625706771925434049454845877213739609148597984299575577093674367626700820324045691792245970171127716693966367363927870622510116433584201969033475502303520699334841860305737610842193248653219589758655045786956652620132558099306035735839380871648295662878084176529887864240880886153329338299340464658461803354358046924633424065807571365351749373122911717462941908455031152946772629490134021107983655608677904549993688745731421713356975188015321879664009573870535921417693237164013213025240126415464145898897836158951235999907400471809731395940967211143289544166357748673207797463318637130110268046164105539716066304591828781944927447110416030238112308296171738103433930853640459744048282338415896779014543002374412253471148680546871779598957573871834545667082101701814350133117908600238457778820859233681852814984868783427975302116021785528397103894524521628611049785081462216735759287216469579990180817320061866501396312763984965518940132087466876954368354291094402763306507533060138022740877405493634397009606059671578625336741642065407216602283788008926729233649176813958432137757489512870121865037730040940657607112829233294901781174499324049298077565361380245766118045313140752382581821933085474143584930285851335501960082449984477951666976362733719836540823445966150889557343810063145749399363591607099922491838173891928421725035806680424036690933853983099004096957575424123387134627917306380997341350884313510990289084492477863219464199250436944807360210718070399389626634566809308559656227651824760271149270897634193944716873205372735889900747644704105006127946962726905320116069612034612170399973194499904402961236285419639609177046618737589404413421964430296748807827644968960656147171183433474785809760246219802231111285547853247181051912167334811165356186561701158374929809565599289570140351359855274705558631275048129203947913297045932429497751129397886913559829408730383649348203172325101440704850082253665767557492391034917413779756989937079550429051740833460352378080430600254416115760283406138599466617333448685631536192928965970435989189320158039362664270119585492643805427531226792721547932715937647607993310445496358896400144693446458543477307739237808828582827210008737696067862698929471497149788277723082400308809581963857414892764898221426366429805245577132685980802401780078681436804689112742633186075436019696062567768118631417869549946648516112295289714724904186781213047865751716009261693313620179062115212088951096817276671008929491649312575517177418982245519693093128416765474188435994732028518771096260205068568279846212539071830345115667373521467107750431840424474099537892121899915985495170053292486038858072349783020157983726330086050046307618864903704972162518951365005690648404577368549303395092188938468333226813602379281010002093123661580505655400849317833482127115355318095692263455351342778402107978079044003205315037573540059229708433658712892400704859912747532909879833872703246095175625633872643174893544100051930573090445030606207215095221325487548413246576482450983770547316848594449386925440421595100251957739350116215623824097399801773091296508708762622190053811706129740948053605821315872641871732606903593941360091504436756719459828501227303127148501643545992128498405264440410286310661680365183655013700357430404828247319208241782983025819938592495161360273379329845305366115036754010623439333114497650431533516745044558861719575465917108153663652719536564552193872949070788497008797436445364366403195458428761796891636528834073648413255109961379479678390337577992881514848149471831582883239561518078584374691139184729627081857395985519856873680699288806890797936265494943573454275225559941580412187649645848352321985211518722446837725038672051157709260602876572995955813141343022730729658411260978071817578523749884641017924925805670434993760418737456985248321285774306283757358377781797843544471519226372300786024239555206323919840457122638460032301981299564008747321875912816248239160703130988736567280128079194942427624704021915215311622739074572846011414134193727255028748899300369666419813609538686576984180341260117778807648678305517584228174590095053674310086815117113178650139020441090304176884750886421148330170829066440683572737703912581801960798498921636311582500299595025756130895775091845050432493063734785549017668208405992480435346696639262164048324571799834327700771354355167922688140044033056004412964082346901233555050351559291055730081270677439406957623527710984164802050043403496559224860622163690936346584146669780645734015505260233789343942119880978821507843563223334393808410407165660758784606242237829118896035521727228088078858968219707078635280598052159774698180613257646437668332298941087837401072817013264774495500806064362191867645534103031087209852510284186294560816841346916465105140069012726143784647491307912655203857495042812781196687668073059932811493054852036761455038716906364738010861769910965199135678305624267031569013779906598460705686903905556373276867601454654816190885874759734967389944417341642812515523252433245887240362270437958635888856979201384303368854091980937814471175582026595884370667514477126459781498977743386113956153837800557949195374992054935961816103763229196935096706200402070077598973475098368186667909997481793742122052476465954939671146743709775955802865372445116071992673016828772865183826050531130735936061709543451462438026977462121978715718992063145536480213282704145194321438384025026242380439508357983133829601136546404819371269836921177239076552336695167916574309644447310975490610765676246259273103631442278262418084093111500760540108993314394673341582724731464432298536435906994335135020194016237344077390083229164812021223401931717784217105203486820327851326661509623555677464013649316133530856076360645552148976380691008254997782228145875999989417389867917841882629718817065348330451611611997805574402233950709306126034640417517545994404114778995181865948192278401441521857737440082675012367309479555201510716750404719485059496873277184309478668453457734770505997832065370304919221547588612313858917779439323388597750489649163652550893661051605097064071446478396294727007917973836541821716134738239346778484778339906048033585356523394198172786417925257653434794212884262476614498898839928545721415695434336334175124110144165912303353582396578053024031096209384321003607734806149078495768786030031666900733169075254886967490076311028713184851046654001223006266017349209570996562308269051690873671875559247382168371390033638541462882049531537604088507125384341424198390113306090278902324500192472509361901946773012497937556538949528375790444865567522038285137013877770666632641388798840378290476662591815648914007157317708802681896299752700264713433637605786504160631176954881156908371365492452209401000156794727243382711605499684837197686631875152825489705677792167471263759792692266987418598017468923060646562413964416411299213379097975179841825931544592847637783223718611025267029688155392417086748306303312323888411182892290720216748958601960774280613559994505542728143972960967492203728820599721698104397616270921752583735298193573927535193881182038233699391983901478364261747911054114085472468093288559332775311632342818240816805107674278642030819191157856543829619420165915806751864853434161564185884167869831891252213168402992823385705983822190541157392230825199652248079859623023680178782365948957398741677151262772361822576520413664084499546072764704974226037392686322868799515995286294695681089341531150563314693425296320516278640216614892212184732598319995016385536898128481550236634298501412465828309999428653069783085060427903409091164271147436286090587440864640383034921450898075141779080011736526416991396340058665269901258310633239361362660461272841307967895704917561727738198981957450587560321219904676864038404451417904905022114573891880988800065317211219861740433603460220719931972718308024403868203793884487238908025493338670828734362402916576628306655765345313668623433672118786091508898133806092760737014856989386996190782512286100082256519108423785362175065820130570512737032420597915763577335677637716099161894037694166704766152604473552939954040169982579077572012797223834435964643015031595953506558305025542037521156637471644018866518601789024102579224996632024474364561370388015651866174512848263117515861039916253159989683396050087638933903299010979152492827541485127668974745108241005375124044395801844650529409703623852278897069254937060139537921024413988619970718511883912094757782983024907642536596094610397176712351359836973315360472558187500767501850924684781399100199646940910183929186651047615972328557403585653929801363107873235207508782780532826938508321269230977646828085928501078628657330364085315980548771820218655014427826207761199786057953921219027827120466429853339642050564035630298248371590635803434630288430021148285129278309643471565633161018588547812687089537932655263101474113029031654102854238040064013379530863559956603049974377367736793814096316831270373588124436316623625001506317650692824510290420484850986921775306981612530321594065322577726517443581467278380327240498003889665706874936298340326310651727506292081632551650478561916139889847563622900301441869129114596950381738258877565444358593650931652218421648793351913538398901748996330149801333535020833269061537179262932170131027231417013653724196948383964412232214721859534535384370689871531972998260709809768150854527860357995947800512784626012442451098307158837569074416190094436821299295425744569733513889721617219759174326990402123280894103953597534643540620973783698995936940758658191939404516565127284811335140275211934973144255975725029489461861297914732339996591873301855753472244199385490546713519041076632768502589280039475084057270836749668072706485569501388614214569632733421000300048703219956559470938246946681316238472090511701742144941958909422805090402776110473404057808804374000901701614430425277974245084474481726812315950556780165798894313243568053958179547672324818080777247229891912794864184636560465566613003526616642079454601561148081799234881151323221134171129168020917310395289264935930838694508122474225280170542854013175930783318148739386048818064425456571401865898036207310417238550959233496446378849630481846239389228834361435934145662482058334380213183130830568993380587880868577631703834637673854845582826801009504223871599118954419280421476988211312063194216700106973167155064570378371952173157247624287311322789657609396757920785079960013815311962695114203141584288334690787823128820353229851680658466781095130666056676920372470673171405450482747088142400105079349285126354636559551436231541868819707605975019287271095783282258773667822491014129659310746033482568743904121891532968598209506310678497054402216805653191738941769651819063544590372264133732101499926493884655832987895877192382084570212608673981206649427645864449019948938797350704719825958120904230292644612253958602764892711121510900446403240184971815664279605363916297448710423362795573361444424914062362849207783323068049880963460280391668810666726120298486126874871772846232546125027785739200100785588337806679449831059431509471340179392597931746030089089762516317162825290447679127018529842306000381500875656362293200511094638866613819102596271324970463641645103202433777256430995059325055611077928681313640916153280165167548147499406886100886163286118853343046733605465974143743043940143811518594054203810495149089584989752825974884829055258655592168516333855758003220856180239124944102210193378869683222563667204926812490634001613913361618736104198255104220847745185642553938521667829845944826446790537561335537451173304616022554773407446887238461421825839191419076727149786776741196198801676375365204016813502709284741691366049028210957675203639280443858456447593448754437554643243613712037376997635555857848886234911281104505204267173768460714817174969154570643572558742823895197944355747431437950462554626708060651917202988718665734539783391743248581870796901338686144903553117732962794919479786463432957735964583057619320424943322135307120999700656875537218625798730363474013052163817317313575700889936880316296503756193972849640744247643023567341927706784511298855338843882729741309199593671114927175623113783154899071642353862655884836696869913165950637506268390848160293249217720829288002379657507636345557392905884395030277073211027838604857446346294211905915466627669176293985029559693317950059362544919363289779736250658715787618874678242586422708125215253588297870747817963945330217142570331381853621732319339617034677213997939847097725192906770018063964895860802217886944460006831927077082855968602393332417759095186941825609367913109045186963360345747681210409828746300040968554642647380550869379554893352920023483383267685481773062943820793642540701701440284251286107567392247923678461213468653314052633937334671111240632535925039557965340594361555643209830022060088904522742962100645231622844171713718887829733238388337582366524394704733144776451426063991868889411786734664123656807307315470829212850205163302723717758849416601996886771626116020427617165842891482012218792124351649711701551359353251265331388526631806421195838023576806695543243463401353712026779702717507300450790671454319905840133794093579379065998636105187649872995644725854455807517890946976436904468936658141656231392532276359134381533272656760021117457056847973249643235823834760619933900456446058376846770695051698234102304732647486425078420417799611372869062556090545924266486362195155048595886980824132604065044027938629956076635058091940396048452876865917958012999370929143604450017265904784733794534742388008695564068209603919472394238951108511601452541924660211734940994145105741214650015315856163438642489735262374964591029611883576207981732796861412912825186556937949729714410819796892836422180801906846313389020765512061676867719998573282554031770506891650669617388837505361832547342542001253600770965003727633448554441184021708593402022222424267828466466542806798406263431981569720465327605127873516911930832734262972763097066668209113588896482058108668405946749535851138923327305885118582374027950651829880820609781194886582999739496241388849456809348166582606606902648681891600369011917711717165395342866548898230072937271008771763908825428069916382868415133664712954947101360060582526355632770936796942456105188636387264746242381397028504054181625131327759204441887817764001448845523267684784021008445963112836850258775108887114532064139998615310399619486605984128654855012177446876777513302381250451862222499872703646715579548914720165595648322354073425054057314926280521849673784855696045008785768280208528574207463789789404345184970361422205431649224279201184170427487084010588627469834164527184153314534354792424176092061748679291120361571808866870861422982287967002568030044899542287386887533666585645475519591921127543814170837756585679121884811915539925852476108279263702452001336704279947703102676081778451287911688927747710454580874476048715610065353397421005500740076536089664665504197227440040628606841952161190238461284867739324013946581816122549205283807772928195401787677902945596264012116885167224751372473437556458463883366910904827100534052928470860708454536616379831584073794264289195440068137953810158088901202908463095926730415635846218745392166409096091267023765889268616149763898568386020705763811459168662177292433771653787882740735309256861763823752327429766532338495111480551178550822039396883686182919257955806289405594147144101708033924928323616589990219222005677017946111490751286237339302025738404617461092110154168764926384302858215935205672804155765824669536511672586546353561694798086740074848330379150566996838487352602677073296444432241691946752484651535607869746086953417377394480648469506763009011159404996184799703764120759335030294504777842269498810785856805476047063965877930054953913854262316885809123615085489892164935017214559734361590184659553417102946404849422268738686089491342641364057887741497736602592592007278416009791165379905484731752825746022677143170901083962031978446847144195553954677082196328244422009115676427367023128450193568700374777413995719536081786515649954716761953170139665057861197808696484719464771530855803278308025462456094921488570853681915689220981312389741240671724932817284894545654723512557796451440758348590033069977298753853819581315487567411938261323767086974988314704183787831238792633220380702420411274608172727059622123648867370616578591986559440853461013571512036041911459801762815645000017493222997500592560748873723744017771968867485506677647709439881653217536437394099071251323982583458062083506002298260095240294430285927681286283659558946882222724133810526480046049019374762001831909256956717166696892973311086924891658995124991887672197056051041184560123154304443955271830499462584831936806307742412745445993103352847803294552995521188966030948783996532517421638416688909566122937146516963627121475221748737116886014642158869525765278645727824119350504802477682177908391437436381491625529344376595461321964647285524200197201333135166787080527405927700430381619676890781849254253526030193934066783204878777144020290606877334909294211548596109920537253377557348279619264062004353360769390678587124802197752328214321628220259547359301239315983646822643414942786793592568869537892207085324214645966271186415663135397647881911518210595164021693308038435752539716505500649429145556680038644940850241945463243094647262579486090587604877893194405260597324689832168994185939941727993188787202445013169523873771002330781302000378326354988027654561924816277963425696638891326248878645675657003394368403224071757590708549408255176287091156253613096404052835617299334621217600250254856161032523647514864066766972501415767967879381111992821694485364859359362274954499553202764681860198690773908643712625265351066705510224807869730749809385509118180024968562033894015979610667361150580748215272380252009118435946945633890716509626251612555505341788573620231220633837094187465467712314594493226871044450082437360161145975595204957110437645461176267437746543265270205376874940893691030276884435096389383892686932227348645731774407223484334924302647619390898343547564969854804530117394334996519949276385652756008335363068370146666183939796098980583799899212535358678131559775820807915146737721269148990115945756722725360739120426687394552169986862065392144666551407776942945677104282851642409388087680403619097813164368603913846029284933833358966061884922739948835827396373024956876910733275894735495421850567070389065987138831084360573613170419731612006925654638134564202791939962550758638539252888127347898298192259862338535049058615765551112608249057698419730096322443445652099423847625497796161187659769555611652117890091141598341533942605672753390389209293023189491468817915343537567607522342533047754272606123878782483687131241145029521116707816559940572037079778207644319883224515959482594147459363340095391759664524664208401151537516982403806681321060959708363949268335581199240894029880299755714791104706371223532636154189811835440846186942012930059052352134030050599433483866521724890062662034840124051505929394577890307890663376613407171760702764572651427116618481955082392072851268522720700466645777404347211204815338203690365288511771018592201698775671944512793446800156337466728629589731900445906402639981828535459977041675762408208268308775203435691830004542187666610559876340123283310718385395019694828435362317331569194324054049302101398452631617617312853778356266728870016232380643298144791130339909238614920940543997321700765415339776875267594679956123028355371402649163288728488245766872527103631845623904704572083152866629844442376833560837323953135167434002087945636881352554740067991959557443822490903301576990429069531287566441789751610728756304248464733168328815402853840209014356817077515319831195435032465572802471505422204087616682020266645730773495018729850875812181439562443883548574823107134316569132891119318833416740745050542131748371156607148420130580666377836515496548597323512833331409932664234935616167634448261926991981096476572168937355289699947337769500732312433903637292634514529415862720822846038756909825938952241979767807211786606069812825575809025000856831079983201363864699865382079392807529780698731583596895678872665628712305159839648505410389646996316223865776463828984709587863438138449126073634261764659097810750904020066668954040336837279275249229330066397307074023099550627796938125516713283685404528104624371743987750567373204561791367516272022413896339260520752375597615707394220319098730877821487710962061681620575782573644934461747104056542507634716605011126478377690282601034744819898046375092666051554835928547469387676864542657978089777669096328515102298092110875839276290765669813236612273228196374435347333566497127098928418311105664888794565738199391451591120930206857347717662221413113116045929870603442785733020041755893798124968521166806580433916036318633649853663715500557208223324305587733935792227158037753884176670485102320353503263446957588318860695743399180921083863676089359142453838481985912109060906547119753833701096400325472443176976270471064301774350901679245580783950594714648576165945334981220211902647349764261908214447645406004795578282002722222436290127642611672745325669527398277809196641985396278288724701819717611919610542817949980143039538165245049190064296295224832172244318484630890787829104012860135239416231971808265740812387214900724420598994614419816507776525983979457955418525419743289347948535042763531777591430892479912423862103786479142665668629036199573175335387987444338456666539869914429278665640867239298169801297727081828107980926684719182907518742091427246765544495335329557913950236252967586705547819175646411777358838595755210307968676559103101726750867111606965084156639145217252393271551267065091718504532062184015148372474384149234332701235890173775411740057057501527109741223851913427690369346825652569105960819628104242581619898906941498837089028589466446684668328010772353738584687406941954159072264909701221861731747795221677764856485736894705670633734711775724546084271646822168873695320757583285454816976380825583491883224381648063285055221683806064055012739589556134256124642652873970237346238155699168656800998762526887003227577449107224809348366027492579029911976691191711486716929815843957653336412475472403887390821274726500560895050816575390464739028164644684460496207412860587729299534089952600029230343925635655883737771216185541371125084186157428661232450127458489273785503928168007703276144538679304319700508935903643711493005212316607107076800936669299980546842159861301771382234179202208169186332846868617185970107243437670192075940753074297016983664440561727422236413203606776721064024258485430304395707656846303249948838771520756994608075840713373777257433575838646972029926386408640167370450018099347727445205660384430542136153153075377677843415617457448882290321690509049386196691253769365677930911697402760114739880108921485735603742650429873258799420928308340039758520470649555879223147642010355299205187431327894057465307471773912749667053847177236562993090411478849320428870126157316957606435015326194674139157100802503036532802934335666779414854220621034515528835854049792056113034188395700523266957892446120982089773000826349601213316322795474426840243003343163089490328655880532466084104658877881558602492959481361770851882060378504304550395716193815945109443455033265515971988121597078688615126796173586523471106969995704040962218259450255197649591643544822298634239209627871305535350217483908920621275397416214107157557203595500074420135340639189678554067086831139019040109213095461334768324218572607564183636821433666793984398838425352635364509644005872386676077131460403716159119768902502811367181476610470010907325983567349466960359592734135021901748300614697296332456121813684502838755524119038731679872213422618152950085057219610323104687135925207090479726141049050552428145099362383257732206648245345589587072434521839962605002009288925036844824216566541668029034958306138592037083091465100775763999478500087912936094992084380224046759163256236951883487448715034770545113546034971533705369929892721199745015539722832113175815179734255669189512826487791607799719986149993411470613925439596369004043972579511633228987846547210403328525927789548850794682959984570402371876809768395250380334626451985955589525699435345334135482306070264703124638891828615338411934360237896832966554323703480228427864847404347082295883471631716539828418148617579512879565985824275196553109773532289929914126665090740535840507759570315704077942732392334871910126968846567558110094535276291111389087290154891443584546883364596231456737818626081046490145077609939487638646494213955407627454482929886797938667507817621116411438239997835666406556168587996211879167796927668652141928835044718350386382484389764077614669310529308136541138187702935310239280848553356290841756551650280672608439905194190010853179858208110124490124907118997185564651572798681615947590937483560605499752082479122768675225608160150054326962623410738119965679927859021009156404716978369140503383323603994247154056143009678117086993088588310170058823909409861685478349725687069916196830631122841951714255912270768934314062840517648624635473244647214545917637684742271171908935136412454380152722558670926579468265441119864576711018464687130823955576332790059480602599339165795563808691988983618386281032603475941475327026940929175902962760591723915892205501719306914275276263367778193034524198412289024973991680634586278849042076246050284806434691768386791649670507481820471762993407337895400263064332929945718599087998314577376505890386731063515072701005608371863617035314384651249270579658226191164694942598688898663503480186203045641168695600517557669374838162427963167968938453603295113645489297294414998338302560339451632010382894716654307875029806121876640156381475419227126685172322121278673011117198099673977431586757140918575826435472047524375351507955626469818601774056543900230714220939651431504803105794532745153133817128794106884789378308048257268116982381503213422029876080025204333154846013993357958971002865692984943371768177061094955236856928959847468356663926989232383308099907814360035284011522910383574640996656573374382801836217004520338137539265102987482453921123840256980595253383115433699149194770991726328124980514891507480841181027610930622679074629055389478164467648328150234069502483559348447029101622195048437659528657466912680058864088091309399742376785342333967740050706924856172068825926969928165725751225294696980589068951340087225376147596575230181167052456960400849716212949367969542400083330953060572779569348492644512356269910552361428755158670441594223017630815043331826751160262058558239102736716334511834622384109614862069384454213339524314510107736037907864557343273137161935762704140217628361295415912827293674615760267763533558099553377258698959330854083517679889973130301398540962786115054316071340809119445203546637333799828677448375919953037754010043943922052356431305392839860963740376829288095454088147058885024795118519421523216029081295305615830744738537824487247549920508595041209172993458646807030162019767232682718123735220225924737711398744465518193765547522235743499909396982564561751253230288248250787199103130450159110152142365510064284903347889372754383749249070434938308255147824589424239599805984925915727846209916375566839731818506354366406373375712301189223583976877692254105914960753577594485842021156956134421491896101827511260791125521262582800917535806050830971225669171358033821625065830291796179245070473021635451593181303567962884534872531901877493481441452720667788750894181372499137255135389810879730105876456321894804942107129856751363918599300752630007443806155513774746905335914351824193189528918665881539460459629723867396092816785554005140446210653834911367873838559639483327776732113836207146830018680601320526919139560367951744734077587084050053415532283796685504189225211523214527083549554194163974421447788758733985482069969970148370360285627315627624807536227173161742956367014808698762510872429639578335050596405231595636365573699464101674863541948582207524611185643741366004885586625781963700242732647487155684108030024294868322054648634372220369576308771079604810495105163422716004070511868355392475641156309820794448969157883757393566802573520729007648007329282913618552693942857716965781538941355387559623930637254282066759703810302589223230187336877636778402764817836097006188079628487527810004224757511998047045791492575275233245440908732015799884827017628355458022056358958759410649425746253238225074752731134103008705670006318065554616936147586289643170566373364775744287973284413677952098468448431855624065533336006044983252822760495678697857948486512614468592040005254784091591722325322011530746014195239459029594896902439055500722352168692734064126198234927658388590807003659071115981033551595769190626554720578431360870580269006450611291170678908888373494095207858453333892303789328777817269558798573992052680767821693447739764256461711157222094645653608028653798597544033061527731987650940482394832132624232435991464096757205176232277145247006428180707168897249786195647021104335449709279302952526270613514878554288171370666228690655896147755398102713084095270505947563979345668557405898164233905116119918682000800795410944295804924859247954710483722267987952124851999181076029871839214409780204910795670729981305943773890457974763094123674796479514088037839046266913650355161783089513061181283867622449503046761040720526906373883278117417012574610012552949906994822521189400072462056401876257486387787684167038934722297659591339857899422012848106663137620085428564056741073235792286384366588446572676274246657167018717501189275679220436632886788836005606775695403721368084025236114376508438568334136368318952281475441949297688078837387183416151467428415250182982048020702689471343050204444621284017186818819670637062230980971641177811549385354919184590910066443183989125019928559021653338443508167062661101072329389711398403926480924721691629711466549191563829836973332606697796373297037714517812799254818770977428482005889005962742799710544412484736918745905812864227175621439939223412606000032962744086402558519246573674262300846657850305958296365665457533893653016273830774324604188087662819414617273648734384695920201997447349192450614686742166478603529593965498407485844866880767205685117980776250090744343050749773381696413148059994361692305346931163421629221787708653455142203763234781012499376188140966151947221028248644198706016410797862781654394839454577444945222271247423386968376279324829551672677468745849865393794612095941008966532471896669762776868251786319208072963629530005627392635942585510029009605925139773353426709515163318587698484630395904740910910209088540183982013336422473382609907400465468628092463064407062045897308160598375412759916701899980197472503340167686730875422874092579801734216459621498526165619636741442254909429521178360147875530681774554082047820847242688119804656055483594337228153531839326535861326324698888904252966313536301190404808472913697122451749042425183202022059949920795169790997130612254445817321629416460964893764844905184474442845833140473091829069778424612877640850929614723068749998486193129410837736433785978304577768055814637559615623830976520025760617066863353672631409270243433131110735397967657673568099381036416560194994972119876865066716125276984136674204585527765799687644702993863103486851498074241650257530924114952779739134123513985895151893225534579270504280587351137320508215812727317954337915968956734562222811316522288596027665351031965337364222731821201016248966958933434048410019620923977237797833613498694270913836261485731306263179688734958560898384485900672048737124409308348470000647385467294780418195409704325441292373693469595008091076235041662337933619920579168002941187550765555098486965316097902207472416612882618093271771953271339528222602718207942529567841918222661094075537764586276607724509763828125998163281272558910884590870109030441554627173290022366943603977018740121772562902799128005507528811521542333373041040700653664599364699160292846982769923862135289686850595918990766333531255647870048831504988694630333707738849688958064421029050977909524120604673676012883500936794948488295306621959720227093866289731545282466850739145661384509734039484299243707949392853941366138270473026322836744398756174198021225421967334054127463637322368701452813401525908688969775111513465178019313352485994782655718825309342245164094555768774226209955758473206401880211198412259383089903565446149693336170323097410738584887275095623021322518508601333416813373649972196764122256812880108115134358293065719180583927104308236690788157000780273783955017601369699845302135836646273699506858252885602025448433775925726275818711748500128137199381637489804070020469628268373030766878268766361852262839990817297650877917094846467424008420809261985028071569821603469790229547561163203835170989451341991763230559089457149665106892879855280783470495048204139301234013314472738152522330839694283501043114540589002351207648899643463179447206938352410477489552327473994202818196666609847973429188843214808580788729871819803704054614065339760399004518300974508583070482752252735197952127310417700478335762000588104293672291256069737163846786502089244786226207666977994196284144593288998365971230105737575798584852723664840144265270728895388931980904772881888928773547070289481591685580240030007038432490981640887699856043313488378667488523829044993061543066144660110087574683530459442092984163906160312649689083343549538300530243576272516107575541409257164078301868060702518198380097184861831532363093366294943321093422286695519688552937079777602585951387137964940797687490636687073459284401304652888168333758705054044184504095094373093215722077865015092243128341247593282396790268842717566529615060835821365184227118063515897190490868912259816846584215500316106713246678123099678945811544711506690050977073380361229120326696992949737642803415196660938951326448855970067691453659255111927281730883216298594731176982154228176625549039069083035758808841389062462120882074785596705737920950245619749420784008901335455353359463097734144420815618717416901621632956894805720712809714539551846098173142074130794156854499170188860240328967627964311514801553463049172629347929979549361459000727687929799276141023970982559821053252877088343885070741130921692247282853036333326481201880938568949876922785137516571079003155184507578928985903369779749397208485901126005802758049813294120408153971574809357714081173627822675245035484598014567365505597125064767164944769493762908664616235882388099097890119262365069762848528170900325778416989338094632342275184979425224559651552581287098094475605121268409149945595467083402607884047473884155105324927203143360134579415066122562992924724036151404126603684334470231572992913220888223420594577417624167287517254468130474669288820683759072738929896037145942175536975915624734648778741750425246556000114494107472973323770784638011577785370208266742233989924913398521295732018555686781568486729886117185551819594374695870352910626281706291051029516583233537145449669820026932174921267586706126814405973200926821938331232284290772432163692193813908706288790375123675284523613731539377267210675642414841548825375515414067851269111965104213730147737685061254108366643978367473518985937099116456037702819932499638527447569599684469233191126995289214334843161220323351409211922951278616498940006962930226729410226842725813207815657664894391457269353417976549832010352109900626259001109213949474156745155181319467351732134512607567407786358986406004404460064667781538149301666892708339689914011265703792861387776142248405170551095271723304489439056617562483573498653966592975591699492348235195970392063378008009830483029142570917537682205663081677808871023853538536329984699375013073544918823930370733441445595177990572925702978308332204951682781618666700846784092321231830533732693122268098638410350135977862328635437958663188591859969745278728750331119432572759244706617408790739100823085805085036047133579085888567000012955354645610597615968703952306953195579043743531246920201487653882416096034058752301364167139996568895292760916785563773559407450659290886523475709994301167688035528874391900146940379522926789781838877715541200569261319087851228308313386116289461177335999708327532735287723244598084410250198626335821327827085512314386193383570445273720274821093132059550955525764687217761277470772345955274692074116239674395403790072239423603356700128765833955991876076626156913035975436266272622886853960210359247533755899742437750114812140149784172005047981006009745970074771787825425248336809978473145397532971951864574528529486591992289275175141382967105779270930956788434600635913530136057885961824254284674214215583331261808015306086275041699119475601214638995026291315187881122629142428175161701103110910988505793484606332304304151490489335824051713443742112860225011484329427525090490953139753636688502684211450885004320963536113145568500239557656630525127620100165451259605462498031550328508083988320647148519467692860630869156263045302098547005257267045304422935021417232810082430400372957266750134780478758973177857974506417266610956250669471940363593881858929822172927153249831897037042180149626695949899645567867803870976085416992265070644194685417234826965411887649738574471611107570273745142061367066418786264654674709216229025388941789935993762035183196370054373570999914255244504960544228842243277346250718498916828602864585237314819834284930103692493781842936729644671749883221310063747393040592396211788383662423403238997475177681936852958918228067830945550110597395405543068934083577008218099112575832169943931134082526081439418840716038063052541142906824655812654248323166628596049767321408692662559264854782486580624494701304410602691325814812401037075392152285956525913856757185947028548256238861178458956823319575689064565328964650149030726184090940660231504239785487933018002381349827627590399360971559534852444958410653236924106812688297884546192024253096721944015250713806388759170975989343036335352527731891052093646072742986919745282002541564230953159694930241293359948892436504075271418337707248618291851552740092452286060199298868467433875609354991773250687676055733440834774151489633780363043841569220027350456772737951843465875782131937122523695429113128733282515886951490864758032152607920878708224337032539029111685199718888760237964223057054797134913201102373911195706981222798184063341949065183912387538733724588725253000002428621803029178217457450600803941687861268976390934129084239491784167650950842137757856039393351976495262822280425368400131996731048969938332148443339918937698170829518330655193071979999225164426354994806194185372175085631222130280677435604470818022887664274831261558272368886774923876157767468836018572629275237579348546969056475793979189288390241422760804430559103696657499925568830623584039492412229522201951003248882951455001199445785023325214765728849550665846481404677828195280731077166844959019032436634316587616144243239275954164455761919614190314432443375954233238610472872392028214662612515933744552889747070463102027813615409716712774608724710454791831267346967198484355681798838835691627613155059606077345520962893053740587744667954185523818738907577650260792907079769583727268236327487903456261934114320903911749461600229783209320134511628052366228256547448024103895047030333756937568189075957948734051060137432839737212602829100853368874161371415858121405345256495472116330080341121586594306671567743698577376533047495826724761455248813052634126728677633233932555206348902246444707120029637986893124631053461040974399240766494190367318219021003611241364244786801405051270657860885320111428797061937995018979485648391235269588580682067874244218939855056816356224900752964495112630030782250360035421142733076953073078972243920890738257757655236448307544546378250559740566295067785510168682080368204552225069797069910461773454596412757214797600464041917781940146367008795407992275259383565707303003201483118780785614004250487476092307519928886446077944286194516982543530019288119516276189895050862335711404754883784600552637977209901240719008309439852098868055054225130083439074655461580526253510551404210440561163666737569133209850586400530389381311651014386730757553953649475450335812827322979224167280843826701177894323441590528189509705250648161366323846077528228397331785630751706298309843803960563216281240756252964700078295306161248403885698557788912496227288596947413413316986488837040528910740496075034533199800280554768310892023289581310565196743716167024235037278929329047914669683895580930404902014819897277279912038785879145324046706842133800646735041221643265478817204607923899467692798165398078878856199339448847526794062091413755393044343322244109154879266040954391974355146362591523502971755527339291941284712052004373666261837123923520266991501247899002563925874494102403461784147953933349834373692507732648536233239354473713245411949176628926394764305273467301203537330246500092434937373570622161805569327160326890827041968875121465635168798270843996775303340467981112209045701215728715934685988166552575291604965710231308410205314692684735359431737535333699237240559132748356948874306241557679477873289351282031172377414996516514473602249712810859461578574235458447816033049353942232074956738566343478701560712395592272734105834581503425801772715263709219755868072174527323879623530889592896728502988138635509065327050274622761977646252444914135988762394622920101911293546989255250304308291218279769631738640156560051698138816372412109893138181830307950754456946185582316355896664443479663729312781882050926635396404004489380663219840352789782434027223234306931926276190502716477494593810278873123400620712026592297302455509394749007715422191716045181593567548946334817180342263206705884322360689780085660667398084684875510443599887644818373718346140819227462365794758337845042927282069888237861799648519831580925298539470037146592106567625058914338831049924148421815733809769982100793499766486685461946393497140442227343245693638546857995751296761023883100403156584184872322345729209088323199443928902991270786362628390830710791512424318046197471895448789213274750675430379825703085334043379246239680287959696581884148192247260501577400344568040456943282321307721532157409396610131624168472573273689594835795850942116524856453727667142636683406823404189702558143372607517591093737534557093624027090314090739875510183441079148461025386392227534813140285955400550739676690356546285554216277717776521894427598480815174242495347205287125804595142870920924898490122798014453900910633670631640072867536620781727142566094054917518698644162940127576744929244872294308675717089907606970021467251381921248612673357761595966734225613397795904160845074196872605942034881903759724106602651231465729518025863078685041281131926758866122604460219106462342600987999380128181174805787989726524053311180949520347224511586309494512973042944124727487142338785220728172446377845673953129247601273693218791371415298438416355496232245338763222740100106104138057760999062218174136891588929116714827570274671138824045464392737313796474840690613456776235872919138157604942730214285087638380269876023564379414993976499150031597331508939437467236140094189509973913991989078879720979220119743312632540137198574172469976023472994505383507702735761210942802180030420010824841151541864058911067539918874563715056131663970661892403397152467976615327142343814548730364668140130113482433575065513286748670061245036853985664760084713268558919815399000414440163755700903519835144828786162565667237257436610082784790067057190232487991430410915030327129292471469780466486919889433020297538521061542974434673976132124879634787081859356244494710725424343460927565560191695090499098713292339797962469232491403157479538230744475254692547465562242291773613110498531333033544671711472822367412969802947514340036341046811649306913442080713069636431308121948956424674485417965920554606960164796327742432525422317837855409676993190230443171630729390255340127752396077309504701031488257674936689185123171415287088066551044399445325613273499653738004759919130137843483008913932830390714908708238753350575494624645934355916587838253380453274216191197439512399268181038256593976070342846485305281686761735112557472839157710561104094773339433999783567871716582760824639998345782954069317418595545969961741777034673469092613170602488492014041342596981327609883123405410154800311943935284506482973613195058605397524869389979424543167923623314182005544748041214198351975339645464574916142368134409688991448624396485098066914628076796511005769650617321438188506655648247052957962242438678648669250400038827395361237363371910691375453056610493235124156709410615990901693501378141128386942775158872254642770891199302026157345512830761963258092652185944017256980161971737478039975622035370705194232516835391704253698638516917326355012189131199146977156161939149470159917233461477355778979100079531139207159608334656467879089375138764272682607891728561317921638570121994318317233929336934821378189130050111605955003111614659279650392979353919889942017265216269712730247847692137347443091935380680058866156970061190094047082610443695859167214612674103524424132668169604381410484733722963947143717817724201984096929518193294260355923382494753826161738527416579989956694605286719517565657064573473064924008895786312064967126359234176381600976473869573860669599254802426331616292911770753282003205300677876312452545891110452228654581131261508419575591726152511283620894704217998177503113581416226067211100980105762897754893766848052568885994837893288118304787869378105496442409779436331152990371877321097663896531976753337043781357175412171599593705548959359213012337264983937230295666523670377267044269199791492895210087672274536468800457519656713123773940525133034893449831132363056322162745126415416998006002614109186456088710531667036636151469166110705644004728698811949976954581106007389107188292364512810729193867471801375211885631515318098933926789596067219489213943568243376250137131316771689598123661909347260164132361307057030998303579635797665219733504888224336190912614920679982589544448723417448625605993606210946340989001722319810554214938202707912420470652447490570219463974043063892888049878080960163152776365384281284090755735719424357893969109623378696897055644715558056979026352849188031408322255995718337678970964925206471753515789449900698925240717269270676252912352007873691016452761276111992646753008166711506965334292278690436931860452128427380789887059641700123463333870717425562059564828678543734606302265346031591066806458000406142635780493678830679493110903997613990064730042654800374416429600614959693959989991933957518846046504794174634398421686894724875050159898090804372795320166887329848913704216805206850745556895726995250453454657959504590112329181751855598732212223872556878124093044128483331190901685272205862223427134123950633264091906894449671376209268667311823030136853044611371453540882541686016541197367400562691523930967350136205720611303830501473356555137187338645847644952028897572774810299035456587727991525318196208719071358143883957717638920105242735855976171708383114521961340759881992278875864705900738977157960552285415260726340275283702955517442237661331823778629161268809240338027232584027293038793209964227927129633394109373467779037140647060431460084759769788554047214948779048777408932996311676262958081765431000807811248921094541844638608102157015767384474307225592171312658611377079620198412131261028024396405902687397808242320166314051847282924798533041127858216527668955861317230707016875367434148686370566795436476014824541035581684918184674596464061498108885478853286307399431495778711679272458712500549142766669872038904734664249088071577700711044560377877742816853671360759688507046129033441668561006718399888646067477013275293305306557676253862604621884086886367796448840494134233184766157764073638986677885504954599794341845428681335134362212751458571731861713981684413181800545114082858101889040273289385077989408963343946889798634468098807587189225215078539620641415767674545973010528206032276980582996112628308580101112252620731943340528662695129368897560167430578954160617873647377868979510040732057655952981469449707257401211522015564251663583989183996839227415385063696396304357610897110458749659677472700323739786525397346410532795665505509520774968724099942362390181564747093671055811100358608215824147626142974313536593632455783136547365214394855780473558654543896602584138302148085816352325034621768665235821582476166921677646473242473372365250162105532449792975450130427873564990264776352120581618703059290429773526180472287735274562486485887738707973028907901862231916282657675838401926819284004926106582498286219342635533029109522004041370752182193414003321622710858488117973157631047547293976143524082016729117062508447351854241410412974827220838691445220426569553729178177724180005495751603972507847177014892550319414946338869042070003141063929155837910819952261139326648788022091316108709165148914881681940336137176933199645292762375026459335376888491519466534528919999595130360793685726904333033548904627644089014400765847218679498380537907366403340651508550209805376364330494408994630474449130098828999386859448099652630333898344637177792576236607546551038144827488581384065136248427724035988434106781318539809238081629146119930153246762413713492018209245984307206306073248674238244362224608031675331631468836130352323998301991584627031966199640932005874250354158158760197173514024545005831468623268243469552683445008558677864075413472338039537798444852163905227483315768892607658348685097656422585523572244032538312984328702202393341335213065550319430402246021000271678005362124549975596682716013143437888997854639342120538006229792013330368927916018288926059954440101997192533823579944617558886738627218624129079837545326372043296210457377885160057649921870266928202452239544746666659763406914806584388530623000866480142383639493958434370458095674297161895989044106381926742322450924228263396913563346087135603479123010651670756737623125505656824805500303460488219192836085257680790461282930255864803344588190268805066229726034665743230848854081667870245131058370620556798471327369718902559133745591893103479175455964344596632392439765976742581874510135899637042183665532102065321644099406856644307281083271221669628063482469275896847695949821993156530657899101084534991896343003851983691310652089931207975757356737328338314755381940712717284389910797260610892444128810850379511448797051555906492406931967159729254602432563536307424716869705945405718131609145726616819261973552765336039658829103423738945888607560193096314023963550128649646953192079680943408894743472164733311837100396765254888556296567392821642714994208844020167194617250345570673001264745293457617404042287058628094314145293516202255835569364041875371512974883057824168022111920533945770748777177193006340337114641564667747960483825352941171370160364077582894912886356578242270959661179203140578686874316433558100588049419371054218060786422860041864848929933841092433973822441750929928344426516021605962001866330919780585338084329298532942849481058533031209227835476364999360218782062271655081869375626524414610488576452946989750044264812454198224370449772981037212020915279385225886480558121810708245493760664647003468099983102908785728157815348897221030077858247938403356557961931973314202673367130061207762967218922228593075967241896733938819647920136515654994085486257188227920423148111338811700577207578761835293885303214061187207218087928342180029837618733531455967786482458052084234675208264918980625909061190888865421455895392385073729575486179517065289732038102348634844857093037098759491597799939964564047026209560885263821458585630928840148822296475298083800848663812992866592749827254986212823758689126212971014126527265771216167086859868817905669712218346736808665709033935000869345464494615868631855198030475863667827389612734308662311714885780663766383035095923180185376852463916922078552777604564006005318737089457763755471465255012652168089907856237145172767553924216882304976903668874206823376136115604080060486711847693429834230349996289029945946153533295666807797306758330544668330725022751321185066072147688232899577786474316368848356875289634508008211237918481249864281303055180077583365863261511708150702139040674473615405788745114777499256498375075610467277339832310480583987842977764458159889211995088253276489913239513294445517461452190782730592823570279936300592642373060514377042446753836372458988786148079804393135131487137197753120756943843550195653053045846275106225084499603996853430082230484636213021346888455675421808049788277534281345051154635685452868535751095947961795381324555414381643313877916505440142910487855901896376634139372399094980436589274546203361517317648585017505724247595251191749115189526211544058525064330746730511725113342677664331160758595605011750028922572240132855012802655416547100550568889260183447489451214683350991891236786547614311444433922786508134677666616033293656024477020607971127186152832864962047976297751524112000829676503094306588400438425335210396148223932946556075027834433160617489487521370021989091857711553876192290374607994694263683542735694284340850502943723672095229641820852936502605723465085714637469486549064467146941260427092471420018724895726811443811131908663065373545782736926922706016813534230131586297168615816216148124836917084928706728567062453683753477673048319202584928327265530417264985025734417213112119243502763087511634608231350623417924398608038996207098591384389077101170677423080312687392881300032941290495821413040460187845805607643430090780140638693257633424383131301834024914275269794779412422362794470235246370748716196544385322688303696727869390615633172902416744920128379057653176128694432160442842282446084468524213576328466769733328732091418792664809254370558732101092600872074528100813473338170787356262026736130553408555912779208385349168482978536528825136319602676097419688906065538585309286720956042021086974874507812412151602282914995314893223271739588281151330249430106007610961828313352280969251902998226411431453789119254645689937309978971847994879147326115103717871445200000700675442502805907427223974692125962278768557041293705568920378843898377724533063046164686816421701418180057827523351088410987833995837233394616364429539743298489246690075382605648407899277310759516470322858116131327804633246340610587993506280072032848046323359960823646025946649056930361599373286327130968053260936930402883214175558814743877750464248190897494298114421096561001830389287750864980787375142790288238752910701636980073501973827113262092533463389307731319386261158715001271426121358946727360686007846566270293462195037041239684032691758114730295249201414834868165824813362618884485411791435183547179293092283726342125454053376344179476813673470127257785672073570741852168453235370911561192681006907857884990252292541284658042659955834916962596230422456028912339204665645197889396727041532251035587406877584389122762628330382146313940996601772971532695267423572550824975227448297346948976680527682724842122911881266278677558461423595471117527942420940809266415747797066794778962700239498888230488926980522214978923275188916213738125647430147411122831237982950450571846752646638318598987194477422423908199060489789761557865182940623838173613977871293029324961713383118253512791536041752890204345628148888351191268216079455529190934687346590472303437619269819792040232206169308435918655150083760836086083995700754905824396748675619443055991343030950222582938772509109192811685474176268257465424376137237488482368654407431513405616242677560841289913575224190443476205908692552399520902774513388469910078472947314495872703872209524107148928077007216740679286254338803937196353261129751213325950276158264955323223628139268132347629117410432425636995992548321098403188371230649804546353607913322082253726721993945540773190135454997339312147585879656015885241823916386567057140099952629328631708047979937890697592047525103119949742858016536526309200239375123613740737896554476334243420485119920215937153445271284156881736658281592265441817882477912590231794241426212002098713526621902534754900470550304427176951357046414925446124112108420650012828964974512236643051075159321624464709309792837328241949119364447884322012267037985936084317690205916995523848673453564284619867752353443302406350266073724365876332554526842097428630448603417168971628151481572242621114998550083428564039622957551179543873631497982946277973815144401483010576406802653913082723593462984573825761192145596015255764002834366402602866085239223728633877191109376265424499477793071844086751987401152669821706788419119367210761879528047645117527300724539492482692677431446972226570117556474991589423775977829835385674454274376284137976644212240041032682712994958139834379795619714066396280874597576569704172133375789210237560160261414765388356482480631490065088402750335676056194108133759170366371348930281449980480108929116306850037993321272061597404196897921034595065269056979108942760619050462946131225143739903680657721911514994410616462983122789455869503389491621892359860107410446440791161148096044544519262566244265214451058357719922697834601394319530062848039767670464209910488535107465307946295702058487476001188410212472622805158362757003777278738341846233961602688570722658204411376748904698251938397182813184914585644295629452788244770702449006610457637248641761752957403074766630059691415849586841279501356844857909041227908060467997547963261618405507383706706190557299468658481574751880310833743300375498146291515480934175516995013410928590247625774524895059477850564236744651860316264081115265464520255956501705151277577563989801276384382995635106334310295780799811683994182925109381222871421134897034693860132290293253727177236077309114429504167698945306929807417775781212111423315732700950484799199086119441932294944970092236104387076634076235231667624916907743558206378390323903156204467353311600602586748369708465179318676387724976618980484297586045712611486229826623342622557282761378033427915658133867943343641102657621863280582295356833781286747843682301821431205327583177787131925924983033275725935935594005421168457424945462243308297044523251929346096728683615608401173467434326735141968704456232957639605478470368962864648820567907566214035126522174080320710045901825543005402656298914756830280127434903105233546989124817395014034876359398091105837806832150382445158752645207272116435004824717704742821923398200241542012920944995252488946441429224856136841088490149339497722949253814600347500977592655338932293762887468790279217227293665884128177890599674740638168725072059209745196538882006542652091939510180619306780514564483684765942612660376422691974330830172748843340825553163291665949734991140841501779844508792441329567485685853683198790941400997582867012057692644671067552628591518067446720089669289940010717031798110897345431772442404328674471916971968090175570598344730404103260127666454330842575247548593224029411090248224047628328612349901599369521638883937851159924419201474692131084825069759898638959048265252311534490424752354157622631374918235148729841111526485075200799482091937729392921179078763486643270907232339004570060594766111530739891556719551174278454448832477816751591078804506711691864907335059658108352175124746201017618103054041369209742059449422380691374353282121623340615656604788121778512267202458306232538770986785861647532594655405805575745579545190169624910329141656940591008033471065555801040598039369422237156958219123819907291550645247233973050000001475107338875381692858480907956691934192170715374117024147110003677375421029856815630644799160164495787670235051158495593952067380893596591087675361070678420045375482249072110997258317481791409751480404529629710410644281847448842139481293940408744362770244872434100857160660695145278530286838319095332838641905418217683823406104293998928166823038325906677715210153834799908600800745932579143067823165821847442636790186372430155348755479698826468094854040586478883367454388895530819582922269652056875680939145794731675194688375757318902959402549898626509007076214759693983146078139222988068287579275723808590894977563863490881211029389034462534332595936947945349861606556106706852662061091282262167072949989766152019624715741347211606615514645711608026719769926479525746226730543528640022054951051114506586282223151049240521289424224434153635777127517361087854254712251303599546654167903297483045508189006018937435015711757829513596884007144883601564086977348290874013022473343387989380449895461140310413366303139718368447300906739589044709788181425185161597127499120353149474239972254919767641898797171371039393986350801925907896632335476059149521518178694809942068879650457570774877457734195865961951984354956919645396461737556707877238928365315690655589116862560285902083386181162060919834262395036613120189808835450105367833446391917528775833756086976536186980871772675296811826932218120093574540016236080172960584743930870938824523751029754899638685160141493086035358883109831361686738007568429443566296816024400470328539528220622094872950432101200585097058628216724124284380006919842326429557483086479881150469545006165799755181265999912677353955769058942208121567751101484974081545901594919290295800611946411743701951929377753523916207435258339863291509074128498062117840635212409024068327309049644033913410713491847546144642124560104558300487676257873809539325319676996610386516311946486216624415647520281121481201028529557458062421909221721898497377409689767110993024910806137185452635913770831252667462012715014238553166873961378822684464209755427434855253631065066623505069791344118167617331950920705390177547484560349829656810315307418582809280042639838888441307588222323368751034916601130625838428897920145787114451762329654833508957262306711396059281467304655277508519677903135714352590539125169715012276682571018072647162150275945449408112602065533954839102706504990551729447796929052432750393564214639820490118754845615834640959758534144553164761279351568715564889421771311171642588669386359860179490111357049680941772815795333050377933863054608416813145425665908575801460135193115748870214791790452133618018418390968251679054873725038761517526888976254389160592122778077494303466212951620499338760983076783539858993488598631264298273262359763812084151116471226802715599625697438863174937503470689325413652246373653526303970248333415445747149415474708150985665340254727038856815742330839182319760794576190363801616361144015061968847560883545641094221314832358609004212598738579997794091612079397249723885204870729624600343731651037598976367796999145564545635903446956240315171333561776508620662039740400196836017235574016107388656911367178532445097874951254615496125874646882218425014845687822719449814732593754420746835498411190776787736898444491359034045973620126658524596642436875170341397756063758195328882737886929114693440542868177630267464726701015869755621168806191599597869411546432095233154838903490273949195016534804670734004382889543898049930376932567934614578216371394545708076562361332338188463029838983692145494958968656286473930271459218703449325348729035349849898832350048356263149767987308367276155779120418768680623912836417198535774757720658844745123272733082004411583599488287635159012527339071773437809299158191779465458013067682271480180245363984832945678936550154061076293454543558259433779734613259937381750680769394522871776442927768840166093427931053003571611480364463693665376524196814511673662233110539295099296645837613664936414491245970648951952363201395150137752575955354196140831462872484154512266141791745963957747800849375056252884770029532122180083987199144923065978901546441542543395421641414464442634468645438103490211246684345212212615159816977839128012681185224619297804534476581546324434068536317903291914773661402507942283514416224686544520843284263703691766810392969622805903118496076604039208809422998159073114695335471717655412867274119449565005965816949847787493348118299938963594357065249233328230352166406732073451947257190069221831066544809416972362375795957714072180848882667921421435457765111505098696408788063438542490516626393419601661638424462902643511358642558053196750063850684153930523804253230563250171800821695469122096061390479114620610285810534573750850129717000824324461987106885972574281682344808264325134770507607878412786326816399497975487228817473302174277715415009037778715195876226773955878873423211426304073599967486263838113291662231814709292840287748778142924850967914581692146583032234480521558997691324541520766374410300537963601968513618275149755786224275487509960204062043041091445711544450444986865660842061701743576989298503325948786785258039520871274431874817242507621869792277280448732295341543679919065589087292521281042616512134301368086101816165432852338161372323740532617365769965252571799136710816912994306250785607547618585997091424084992272971534976222330216493696877319401133943578187832201828458597094253102298324523252514024639805764249290078403275527713314369634063865318841304211821000689508276189510390046435045288007306627656975134098277487879157901270937992499791280223209793436685803105731607228072173438627288101829616485267716551353918291135033842917040687269130332371243337643622946689650528169589694247264206259063361135362977243590701836006030705973855932933680922964244052744826168226258547292521384410812180286532432858018046884118436094618843080156165443460841872215438756401106026809358710808202386490882838384980935720388939252919015676788452803309359950386232462817086735253760839222781412761481589933170680314151585798253169540781523773957477352269881664144616352794005138193111197593542784348128632074315817118050871125940667047323866993645076049250889573631339884384040066318560108003946656161296793667837808849219144896657167750711324353676707382557564492835915817416888933219736879290863676855779037976728283320632767283975253009233846887219258912746741347697679310873776108382613911842201193032829098969742164644193198518014675930523653666417254838151496087097727206446537160076078856703270730277265217667264873497932076882521970779720033975797261982144568921858653702244761526541349275500913742042045082539241287962985643234647697252844689356378665052012889162238802220362011198883546546595410873820915444911481330164368932942770208283200541412007670680736870279938561226208960563202833185504325605034474888040982493332661203144514710844104451728943019921174499828351664538556891301598895045170865641308969897022875697774036623795684524263814511304958771881487395564342280699220367140551041107597983857310485940096918917160081356447937161459568007583412568070958854423722301368743178241932587805099290955870846024294982561641875636503578597990196771498832859238006618580547115325267745118351099335805071607743489550748441721983893201762476055621753001301217946841463673238241058054285334973010085314808656765425871244605948521688050467753200646411497360164202375727241435032918269065974943300950214929959394872785554330788256918983172858365856620004134608767849566073319737735070640291701265947152237388549030009388968632380859220073698840225542986200678871398256217092482878363059825145856653215492108676818594057732297643032930171684867724647451089525449990217620083568825423869076352899765438822405032645917307090171781121667682842151257962576452964318493019997781662208394349782577442629857775662010266083115834088906298501747087140735101688522954587894019583282931612257077820469662258535323496621608593631824459424693600461218810655717289783614145682384112571839836716591230808427398942015743780906620260324007535194764094836049763158309134246495309570014289878903533495438433267562923978190729751496209509805321899025440294329694634702781795699647420163833419593719513941231776570549115527878045322731207653030862596924692673502383460672259906308302958955587013242288492867255577909801112383581004141773739534617837951426331655410556652679352366196042102876543365519585705309848845849130095670958684645083804201609103892161428342355698628481156718842610766461225371067022442368440505526125691817155437107646669503208480309965239038379072483897078868564779440291287603052350302969257166193666757518165534579484191709453621104484926687935193595376380598366065907206498295450820475885948396756362662861809600208473512195166503728479307916304798025708372541568283324466458349432218190061098456724976080201993272562112407648448341778176956702079474315571257206104704193060673008940336455555903901865709098136387060324837241633037654572410864750899300375215663708025552612801791078802611541518780515990146084868657993662347673998743690495119970566735303051928789181118409820691071160039683769706457887110947360452629919596267168719393411565975266443709586426058111775501927006474669829899626067799454902579141034571355840616505695494950505810349752707542086278442055461497900787913158674120879836378331045875125297337096988489360896794199849714593661191687700055474531168278796196414307767814686231407017063899832635630495253371645057261935454674228711812715104943446378504604906251458944320654994649508282316236971515346750104489595340880531577739769551506436294346100859908752979713787898033904752121279449163739655401919592253722646546737760280668381966116221103132908164968784905493300250642191972073940243406124456002679038641997875533450708208421968300419705273207480881546884234562915604837650481968846912407687553701913932428431973761498814006218788465494914513413119858866357145230147457320698218173047005244434444636533686600916657294724961613701954255176451790245502983746882317961389392380161522040165126655786239339160825544180559350440745818606886546633546376696796271753846169182303943750654503245384994582323814289830279691394500965350497575760805635147932056239903059121739365168726288813731307237126093524240976641134581833477213260729128238558846615425232435496118088761660733019573587297111486599918836054919490796493028009350446829563333862267847818585070947194552471921517031574239774567432689858593533290706911951269013933339369441245010685174130707455393807900331732181050910219900505683172618549434936944104374410514174646421963647688548627422997566464548515156204224808699956935289107058538729989408810962691424442797684100866282019673035950477760587457890605648855482971266669969537939750593381371244627993938428359923219251783007782575326737152529428473751697990082738920466663659311743469185266757945687298992101571735439733187707462552963044301824571557796789051289670722779721719681087346299588189596542950770711314103013027965091615283043691464199942469333545013353487137972087533082189496308140252315275848250873987450744359527044226396434936130964592413110325641693593022675655643297629340670931157130490070068645323011231696897346593656031754533756832468733474323955753197713297785685337075764779377725707889286360959877758774090426177964657073825942678424026693013455555350319648042632686794723075210355768025243047494964602173212746830983808481042077640030445568834172803270051546606411429128037507820728557432410071897686833852171700691860414248521017948138648751138345659440200701663332201210283284716483798985372939485498249039783842688321809200772992733513197683870197160083622682348043546396326694420870365484839068570138431329245885309203185771653979915047671083942985973658465433816483267673845974652125500124785368339958311743016857232442262958982194383841730060987035195795922885108611860311380649348072701370335875126676604276370172561223046050170896261754504502625256100372806271612927510166105855231878164708436293106292003139116327583797805160441006046196471705450307715883413070629338206212270042934711727839827605511169819559956653013755614969642561568943839171425465943069771311173626846391952105126196041148234605198676584910648605342194024628055093609681837079635174172796198061288307490932677050106555074549940244219968175465626666338053421822622914309120840701670279662716417342085323866242298586922067255256381822951841426317012449242235568193687149798738630260627319152864389509498329245025339098318705824647789802046748800536269662229671950669026784855395129194881842033690513245622976464708134913935199398507822791925122355066500149180789207480162574757008425663117632486672326436992715828656732527715572761095954233758847403698680010727772498491510777254270230900053582593925065066970258038834634866788885299829878434741531807716786814368624291146339975018903983859166600889573384030980308302694113878091063524445977450669870096884254571327324361782883172956752177630097913984345568780003082175378682150290896570286769932862291929707780161947374822594949504583569628562553283952941523080680092919823567041111775211785984245088339185010175154583880573625045144795441297377535864495420262962594635804870771928709788413423919311012820061534130633637778743888318977471677563721003435698113188455717023635652120396253707745389763168201066016569267224244913145707501311006420139676323379964314501402496206723155896137060609409445303681110715277591553421883992686805898594785484706035362228271763002006563942656008672273179201981994417437025086240726623349188085691940894706500113104888512722007840169390117207063993219663441129655663499079016147467885080656825625308471676098997631087829913569403697729163960247191306607318624099182191802756940291549275036877761813163227444193790318894175726359490718406124382804173571990871797863897813771123675458216171559560491481357868622343825772320292435345441147129353251068418475024401189602504694695886721380646956338269477739406806666988153857779899779303720447346266580775444013454322622482387569063175452777329327900487677501767106264155041973574966369229319316935842348275552781624010564242200635596980146975587190394249270849173106910695239982447053959621631764387097364144585911634176458979788337237191729588820054664686599046602778467366544021282819441379667621382389589691148165493625197936677645318486283757890682815640272093768173087517431768231489770781809927956061535126094789050511978753358568699720794839762300917532784873510839898620413359181834389039485519724694013424718803544917092437093665410642668795346501476024251460404899347866733112329917753717968916199522324145760312414637247281490609880642541653220351019176690779918548841830727908118959050241037808213800445365847757203325405833284030469923859240633655351898579539808635527448806231131684403469906225345484374162466268451810432075855236830954577912469458285944797224258236113871657517737506510057964550624659077674674676421900373723144623839355397182626807888762829788732422530031190974490179121225603343783257660565444114227718409203231575076298197090388711984093975390687852344266403202282796384921141442422151482334157115922741612040961284270585121921343252977784806933725428209838496681913573659470828721048582877971827905988081232749114332564384614201023443905463409690467261697692516390672313782318445752333745133292562293366537639615615448806349543416763511708884550026524928763131573149869294746085523786375858906124705790052605498154130130555109337118422233083217662348584110572299552933690688760786304912372223883824949466270284607422464941573822780773063143195702213034906670180794871933202386152696368469946617098821121023018563079809258661139514475453521352511906491620182109908148671691994053248867145565632406162016075588956776074988016711803873872328835978131158625417975568032161693005631342259434690000371410856670548327148378644808116419179512284661052578187690039527060688108843676068233514564670127694401488364128615893785426361586585094041807583727119424572572649966005352896459273259219964848155467357027654332207685441601500705286075912632732916901459780539761677894480365208343832510828057832292220593396226124073925127309119462591447090993501625455639672870122181102268496603854512230282109331330049830603950982272768684966983468742751833056989942780232913330546003497999195931724524137624199624274431865229853069828249500296824098279930723345759426537146903990348941493167621077839545557270969930762144482945471785890222841991931656105253436116292558822247538532738971944395654227250882265560777043894682342360202654619713122084182050676139759541022296806956456182159978273181347654205948920269058280252191155957966376055215465707158490963175830198767064162668741909513706768322922841903736034279418509679118820821259538137123990818455110065640902314854793029124855035000364524922057168502145577955663361126489953132405744604720593156605448535386458806026623454047116760779574986955778417005792204503556472331284388393308335116560897470910632889985372028481378266409540979346421347831485895104708277469045948985079412470904511251662372104862188270288887899050944245300329166228936524978475883558836914707025559951565138349901017437501119456624766710142959247780500927280834416085547979008848491027898690183215252082908472729795106274826944979510825495007448062316382599121896925449423222266610441904089374323106318140722818325680616208306175084533149697452929979480344414892167126684820175684190815460044059362295096999405609567103276858644933865128074152493521556481917945591614139143770510322218976192894367416974854863085998249788669914844062700391187406045405691441105761253910954118008764621886218279367043705900556664657137637195310360373451253421454963672421688118084479646915224137426383533644502095880377601667341072625304411270282798078154799856237361470071382581193542585804717594433152527217854001429256900926548786603300430049947350217909319552369438548455667673192943450439120436065347012531209878347777692651648213768722154156813386037644367262346705898536653476805866712353919332489014065680217953131406296945334329217799418205483109916527453973207641051506525307083732646142402996468728423301105282306633621683443710268630843327873103563277952756398832751612820994715791220785732720706066362164465029333235963480833858855896696583568679041056529477502065143288469384573831744963785907293323134277385820514473008293630230093689765038781678872073308642222995290407131391785135646632801719014749810706206966430533642144778861017390089429380743564528187805043001376654003930275743443627746065265352489141008480098825902303077893048764288057628631215321285755517814017454982700418618777091572612251885263055958748706441602168773225190654319467964066016999887603932657742513086734230578356002402663525897779567823013012693803078406417901979220859086710269800937961483673762745351786634650533179459968911615888963862319719329108977808386359615368992334710901962247269936525495125028006175160296441548161927800864809470918896713930368341529172402692026202802424847412180208232905958710046344605455164856308316586071104989260783651990440344488965027374101173169856282390126269110902347105161589847714325340958292559406613800057251627564584699948629153428239046205555666891506674909686320506215925850121048578253081582151473168637744092344054246145038224101748162936300637052704250330493307941394612252954895908695510489651938789116946313023517712792069759488670717795954213343069703873110395669753367282312059520055538686673383017170367493077332847802998379011635250632872163069154164031251747328893136992551004825419345509502507635233283659509394049318597178014491169584433570915451181380920250489271377756658786210573170238695935058813480569001704628842397869086103293315597760052760471871353717644728233649879547197787459564428379497926860840831437642007779349606350322518835248654659210791749261888105903607232771953614485282957625730573962866819804964600770604988566597711631560991646079170258074145508501717582131864612651378414373843821365521175087564415215428946975154634924203898094732588176099256934540451254702487126761295934811723010214098378740107321549977153869945778634538938651312405484888331514909922010370242392163230600133968143613009652335107517776767433990971465257395061792449528543859540097102800580885210511410172154019154168965885611568400584016717071405240454817468441445141820900998993201450107550262834562232024699262162329890415200542066509783442839113753065310271247129651315088106656465984198007584136778561166088835909477258536397760828121211654599152716119181827084912530675367039252185258099262585577928769709573700883102389506673018428122053996216180478802340904068657153182484851720159690257563431118475817754528209360444421497536419399663639072419823175747900131820925245060412286928026882999027268559439773462246455519657329758701660954371664327319510623020899605722597886518880351682419811026297474388132274875982855914940270436498990592227318073649179423368634044462668537638130713715082098428062551760450810698772588972758246579710345684449902615274335485725813246590194913525421212098697426710339139496641152652499624918412276904584198776788368775250558007766690656603585673285495947848120083695541925196836875317148118480532167730211171723267190390678381407400494053999851646232744836956049151625388038543864307487681138906873543012730522574450109179454396047920489808187531724629833660425600251977250285721030462102806174166116625422851610615168616115733153825562707321361294966847758556157464876215771663847557943300551195702267346646061451686293009568011903379292041942774208273171507630209475694077410892903933501089244804153161788527514726621522460340940911297104445107279992830843956038072434030416316488657313689107841306781589566607086541997850884888548504360894784911876942864496020666530683624193402092779713457058236527628712785538431187968460045091955657558968614845822242280971998889368511544572974852293600914096897461603316699994067917259101997103530584893340463117647234192444854946200813263712665517677799343384687355593155847721047380888074396976649073395184721193842676978369676993001770015808604425071089545051258111193766488363190265056094578361352665163151603900082255751163763947820898097224972282311247585463213420645619600865805886659225542499098365303789355250159148941808157822392821446540062552404205329238981106033347038902641518781201226802787697699326927908944255044592485167644178408928676599440755662390903221355973686988246062343735686726500360765347138086193769604093339362805361640174545905633677218296494622733421767508721631147742715708607595821224670294384585873076981504729442678019949811122173720822794173545947945659424882992657707872505236219284803228843344163406800961826806360409586089976697584191990465165355925661567990037678498486140942274872807831483954724533782823655515761098673908615199607571108150487665708978602354951487849105302219078194150638415225724550837215716942203989128173249259245550140288095711507031848436467846072701792357173617091541860224103994698815226215948598290512957766544908878228160233587365762918270989725924970419052269647063935808771771587893985663873289351239070284350984826548733090829051925729139598050092976203067925709611933824824590293369758780286347459224191181654607723360777824237800461707223352979306792137829789705793011369771995883312063428971501444203649575458491299167184758537392570188760306203106421924754415403320802999847688066151815458848415107627158793893845447007843262393330995194276124691237827555890917826875959866735786512188519029176685291665736699395020538450024609171591989930509392984322413476199827168731110044114002408921597354420214999781502463058789456570677526754665326341103856453736410905747992142983643172597894446922052725705017724467828790740343030183733503994142004852652539074621920521257220359541020096296340296314642841259776776294881543441084996644643781865943153918197051686078832880057967125683745922035211831081883204788632503893747681756210365287456028217667843621965366563425604247940566833766924036044308751446927456695774702650234900456640665527848568278973835174438988401241193760031136573469044512850487710766216307876817930809850712792699088587847941001098027099320017614219896645429034285614557027384682392772199098813347715029352702634063308106386494427220039293814051477918863025638001424820582849434140161623634281657160136168833076005192817172029684008417710089689883708006028550921600501901607046695927608606309356658490492055659140085440302483120671342516599744652494291203392174543739107600316209238834137626441288515781549441047954359666900755538251041156268962029679365180921003295147116708654279966751782959763346227089078554998772498707625929426771311462182091547975940490373252461063098913836252867578285517638757065778747791840980741430653550746289242579323324029253924265733217389108704994867369356095627307069048312485133732020317290622907494511380667125738154512645021992031596710606385606382399433459868159543454934335974719595522453247299890331070475408020243872841285478478514642453997677003680681327868902183461568353260001654691962348863584892995617181572640740280824416702399545917406740027852329290987982040693701361319329119513609727880316318398370447797560981781760336491731866579717569458318489784157439916004080503645750568558025255197414498283243973965804126722111484695316832410729873105049616425631315336885132849455104893604065692990984728620796894830705419120424298645915666874320007975708329592291387421098386478036065173469436299220016462254464956280390473274483424612789626774773396678688102103209122387573214409722621499184765812324411717859991118420584703632542210546210913586773384049308377476212016483149675867942977420833712885129225574840796494570528092987564187086591381026096300309344928823910655304186305629962436463373573068008018479511615476561858213091316893382469130267148320548855635160590611706859769013533702612441898830380938306213334082415588831075665560573422936011584199901733097766763580705889338234838089060981791199180118699493941886601880828016722882664571867463193211241959748800631260483832341113778999000318912187907342524282964429943680449501630536720953049599458695485147126402850236418965282143411418683977341987627294662619838365175206357408036367481784076884744151944609467902671596863949268041181682977000996938173719188660984059194270390927196618741366285685548192055501407139282759494180889427479272784324749700906549580934186624636273984876813709865709772962105273371722986561086603931413427941211493844408020981740482363676553850952013196224905503795502300810974275623641708503433146658542505857147086045234600116318464375345625929090993065402665696224121318188276549256112397998644097508443166460441214529289259485398794073829556975279787112306299831775799990916643633550683309124616018377886235006998943399963724609843175857851670623441115679971045517861309037844492818599276977568609026442217556743020752946267788156369335204770208056285102838479078287623716399773257875986120794594843995167642031631902433851135669196190370087301369966196175746783173064818881620896898815828196278296382032784185266021388523644186151925602679979170446851146283282534709360444356590290754135742944679932204843375394282352792871011102018072898352652759459566588130295770765639421680631302065827235389398553346040347926631176864823576701228227482516144535033145573395556914761578824074900546458196949907632231189876505185458311971928932780720804797631875388443087256234762473848105019296585133457166882008604967811784751291963247927739127042323907398832382223788485708334085532747771689202414589723057361936293271764822413476212133497312192789294110390205084467580298382610714485119024446010721269217611664680500715094198621727418800886819778320330244098703069896995699885115274571298892830743534366377450007842866987614602750430052794391446616437078692517256818059915580368660645394664893212466575874503323222997522165281472075512372060803332336817028878065189426598420651633809937193618874863977228748052692242356060499754681500429314130284991251218780538462229369443002012979174099669999167444934042034134674589147528303002291284867238058298670350999773182017459420262638685624234040905955674937857906041951922414745034507684145650772846585246209447392005417886990962343651127567225591002195939658381650396673558714451132297870438679116515945583620026271173231359880803764652765495832405251385972844511916255589520017713131677281669869000563848751965028046913701011839818503099338979757185293262067512061830496977396029099547569169878717070335184933772215666267216364822506289526837525280946973942657210421580231446665887962648945283864836343805812208990090970723725345643430352636876135059347805213002873432269793723663063205880895728751001257847118294826785032391631514941517811714983651315959654162873280395076568142466408014626312885453061127224144995639713490795448071454096633588040297923908889453364982752325258637009709808181191997176946798840796813407992904828128194688524812916816620185778212057745885153985040223352290221513013121877602396544176845531606234565587549231276912624989139815985484697294628688729778619342232352627798532868364600060032930161475425492734285503981984936039616773477923266780502561552640000815833900385893754697267687468303733832023680987611101479038864316018794832777315347316183087876021151661509777259643378950336603747200468628802503308727640207509509290080044538423903243398287289695652411337331812404756864569696471791134852971902851763968494257669652670026138045618435977393151950936210098415458373524647264463086732973510957031658435403284430561911001983520666383646127059013051351957931144801012571146831153253291392875996244105078205073834361860915684128728096822530294345357567167570281515725011705552462108816185911104730120165762524753495025331499183959563817462409248486735202602132053156378764676860708935826082855301490432922317791118031892075686775486611659476767990804550879855699514188063259867788064408366401547309171440391351130611766466563339886950975674934499264668281273205299461704249189638427188495776149824097261589484502987928047094549512424137908123934367624524352562426570819624387194005078957501247263663986908175446507101479779365949367539338023650931229849206880903447066932880026346965659824466789661032325489983480431731175194168444715780130752422077123211389466946863646992230052033994677434783356604109215583450886605642529182728522283080789446025193699053852325514195393284762559143128820423657600396106176055256099260553972647730322105579932107473969915915252961825200847809981532114674049184280957898003816808738487630076075089163708765457773068856167005922914437877404010158252388130270300750985839295852784866414760801208692379322920087530257540089504444630813441825767333792059872805567058845366334045765256611737456160612578214998362317598451957504405194573909005873294892121637744185911174468579143105227727616981551528238954753873147210515836777853320686026360214905155551676973693780593629626391509987863617309106659210871809382922665706318892018377629836798556813008970022790954169758720315368762501551109221865033923521093011097365748715408221071998475747463970647896145495280788787144164026518774781840034188687746840256275759982658239111218011788133278711529229475286694746395571549646287419216069470934107942904965204684143435401834100037413432650250894278564160583652215461669635438548694620307217430681659392025500851032539278074147490352033362302469310995581869908413374920147086840329447223195990163542930957831405308269057613070093467647200081879459404434712647944296305556257245100562128501629660240263262351041642456258218246176314443892302228054358567847122832870794146624328834141076067917642604011409014914483592249508188206440766471827824130133318886180300086894624349565617688905430149407215172057018393581315921982456782812141065745215117433732635886468696821360130165976241182893776384257964929373225439886755522513722107569392884737641091706187847740531485713634820447072654229904365737133145378418067117926084857404603861048971036821725924438539414942461795265687717161341857695581516484151242804627589948058674024406446498936129918826066961190292678980997016867899397408193559171292337101843234599664738971424335584971158501126252746446213686434782614555021175538584203695489215043247369203181855040124651358906692014328746102588596706865477267303925774121555170279312844583774485672861782516346755785362481868829298429987139913119145611301992945090755834210130323353809499731646822810723673353109873536108329413464271470029299381179892284732515066923850234549128571947584043364847564379882000875883773854299827644324872724613917452555201185195178466673860857491865633195522029037162811194247608177924226447183528910160323757084836477440367497386363808159492255899310318125056924523802787663570821479560790232594942794675895087312279402864785451933376443204613861042590133603973190680107190504617083378490296391555759345025649360636124989663326873307001324455026337735268812594440386100688667979803219188336187366955936524689031155575725013531701103138375713085122103854093138871980644066244164376184091914383677936179733407711194759274220549700619942833198837770353360215774706107613775510458568413532660090039434453471198422569266252294292457423393094669233955449844725712263695283118407627010430688249116605482524578328151909504072525771529960558742520458135417636745765538864237091861962260770181349514399642281376271992937050894681181926777214837924016066786390872169945989138985004675450361139374753940715014578269851903905040375652117907336010790915349574270679885198196629507782169222276352357259489102215099564171650568252595693871981177005579849863200637165586228975564323045119900586182352787746834254525011477453037599783091215413950517745860785005437604441841076581305119619779513022075486842362322846016663978322102708290995948524205537998899899179377754359880689172101905908384252359092261580028597027286725780468200158950014196968329388005926109660296157300691982143184638264579102813072695498361697930928938556495734752935540894597255550400243640098280667296998053263851308875062826332530480826232107611008325993545791073834538829681333202834078558605977919740116372658106504671278412207033081045218569786238728418590373118062049484492738988978623703422058842236008694371796769789776314930913933638908524261165010661439533247087924508053321072054189195533192410529034762731365306567037149821491983706699986732149945000589635934915881430689608829757286264427716296566750563506701800689613435067340904399242735435600974972602624693520420436112044428456490518168771848427901614419361717017983872066662318148320216750403870442573506946487074470230302008991968553239309355246792117188741645916901317812436181550401917744653147234605211238077192488586092861213689002860278127762578208557462030415058892922312451608493460816085499286487007827472510160120786983199248566915626578116518033834533464651320546512914497813730014673567971939507423097074222532500553950391796146069892270789217340412266161844094832546591217845495767421309453217955599623261537864115404482514216644494906340587479427709670183580957303672026784404038085525765926801889770233403167359428142564163376678239519289574055546134926279394420855420510453625424339652699920522581252136143205059836299909773001232622899554065104015039678895671739741277679336022838895350659281611243326475345224215178663818618722265074390163877630177217107994708139969774834173144585331147856923277184368269191043386975666184626658180365765896483413390462915337285517394127851268919038823910839166708331402271107254894946140269092470614923571575582237806261278224362699728429070522708604855796840936730518740137524654702181534563047410558345381438598879688177264719966772325016809119246651284848383327086008115722366612871670309268801467881411646002259136756593780751425872591425385210604681086251313141754499937052259990892089307512307060705592632958282399199348230991132130132890969377850382067300868594281454810883112431466623608413125440517875211788887719651894197490038047772430769824133134965822478949366018166615770876910419815098913238387595950974152104686167873061391780856390953026179255972025009766969207653191111077035384739202973397720344820419749595294729173431368879029662929408781198358244773550982431339727025349504562226642944666747069093020704265569855565347061590756402420779944718347829858682738595721006005058914501535089659773441680701155378445716730874497459342138912895041991186043356455619826629623019320930581857004460745018749718062365596458527856057146382747411080681428095493854278433817081955966264673493834728987067482499523729957171015105911505568787084999515506919631430689193660894412151495506437130564528809105252867651344829156640546956717701816176758161243382021586826118761418682148430938428978774415276499177933109652407858192983685380799689439389973950868087359786166912505778356750798380712135037813136370879892512006590280500006705343292941774191170007857612971630259925508574185125976853520653189388336919027046810877632943777634737550590607837311001988156524747182738610293169975893735564144960415985649043137775323547429635072525977159259008986123176524637025222412693480316826895714938791889375201615385855768250571778977917390462648825805674216780241964975459190353673287859619215144928396262105917860814966345704090221904114082816459697402429137969083520736678573719236807304801429215800042471024584306121127925059069716006646783345694400026326146585339094118917320300767818301026365274985497535728706563924549815865503166200396398858617418475731075221595933917420079530083661182683502412706369828252558173406804635169384844498413518003573169313983651629890769904383724076044499088064618757051508319635544568889139284043474107702143080253711601147912544916772172544808888241737736988702264579139379032732467033177672610283825373072318424489839951976749005087630550578005553539046375352182480318893737571382536161857779308603316899443016034662857032474710997320496304823147676221608492778906511446505224185503902384028098887932608758535908543011070149698615184020602345129163860821350981052832378293436878673887146511019821860004222128399273208811340949324644344421118160364898467069459230109264498578747406841446095492393613184741327851559326096894829578753485102419259947736444052867412857094409748387483311002215506267640818804274848091069246518639409053253849205407163972085057878585429358749473287419056478716919268731753589993973113937322922342656236466225178649816543957726448517286914578843935102473284042021732365331898174662302842058418126753856638155872957164625610069850613393418830784662427551899833417501919094893793361342387433704915885974493774606835825766895721168749601071502900000257521491776673947812600341960851195221631683795716875178308033882469540590175540770185466637613253672874465370152639642647276022249629886822145268603642291236617978165869514611234831204930746005970969663744163880083138761981372239967406554482247383536115760329889625218698552069720813528800663109679492361312474861471459373344939810945314052563903732161031850173659827602279406217547797565772310946908981677067046188826397089468219546558456946501188994350445669227023725799318412862885771760435141432511827766203109154659650655422112572666323762406516560726607002570802298486868262627852794739223095201228609385750617580544469467259354695569610768026037151301355471120170919641978860006491898692245712718752073690042795107114505547858130839192213168355167817598921173227303037548947519273192247223771064981335491265868751440299996973048688960061657482421106746659072730316777415046761453004396246680487689141771851965619857179374301066318075621665743343337135733680015925618211199756107012583179773810456182672515507528827274963546381657748822009647377724322154494215738715933562453187238285170109671275930295766318974226388934222699417496639830835780023947610802253417854456432815985638938357281038844309337948971137077602490642907703534760964054822928281396489035952444638742141436795044510463048241036357041542423788893582639036805193549589055993514476614900009481849643616881247425788440587639559726538054654576172999607600307044809003710780862022832468973379631076642917788200183034985857818367804711285133966337785879252015831885559866759012555439191615753246592950843044073197520900871448172636174828366931062575198128918264097256202281534866681059782489630196755546165421325530892360185625361709429653330520298120673148518420821308415364472439034864053847664554710433743493214485448385726451599377723504192301910372665763807754420833042675442096491945989499717438963490784952822183972007694503315584886596211552186297344132872123397918749909899109137794594946080100734938662964248753717505383128597418615264972238114036195731923723412999318107985069707107908595217329709987158607545225890318277356417234397290519335037952674180444028378911916808782124719560394186738761935645834105813487607891239663129171639546269334405729944094577976610154097763354817444305384079995918108285218758251472835265075681995623901142159278455911243339642866060953767742290905826560866892228514090136563179364054868057608526300771596349259493756986151165703431668759180152799983972404053043354122658021888257018913205013182765873778682105017417386677387306135182205388101667623713602544605209165069431682271718649765972750494406432882879491996382923593583446569089135053703250460550302215957806545682126201264569967960364711374602067780341011000732509404951877263720687643095279073366182514923360185771133992357266699242828074482218336499810475381711310440369295630032932911035740927392109582576515652728645478769211798359660829396190867704760140536121936943065744827593432008424830722646145914477576391135994386139717704205543844602937312195175853466500475498726986912960496624731735610115029772361227812130558180097347659796343203365204070088356169323983970032826535295068169102878690995672003550670617438564827921589030307007301769728993664998519022054580527143174168872889423152074495143493495102165595709218382290898641882666451734477960841004883235301950871963697763264529708118912599892128506439799897187777895881989405795364081948779571720604393231500588652410142144299232806210734379075611254847061554255017940490290857257279794442337348897232972833639852013595297345880135763397875818757837152959944985971328522820872107768741336129460340783501265866332504705330392346506646883194369437630085227093976181859222580653905269015024602319539030704314499081915396794545442425435698074514285847787095416274766018180514780872111111000158027649638215365360759596630209862885223433752568827746640245038398894958935587041890130178353431250808705696461507114771215523109220912429411722549458101296185943987297153944515523369026298044494287394862665055645624524462296526709651828316533121008266150035842412936098928062327689140708290314765313704174912317946323205195958318394295939173546524652445544008259353310742474639773473195688419109979907287667487040863253126148755908031294821652791841057403082880791186980132372899220518001549989228628458073822231099324532917291633532608574242782243431573788452320521644997117695956614032233713994205256704217904152350573760078534202545874345346091298339864696402402293115763036176159750933227884848228060619553553041298889146870084406598705536398048415602052908114577131868453869541227729988617021005853607094930283966472421176451384382932863601537954594087690965345333188037971199497992577429148618299739089494640120618429035620753905569430608727934761727110855755802600261792947588473414667010324703745950116546439509043070127631365124758363870944400937143490571400382849874775023915352358457829049576874482994323226644865540818010939191127810704788344784884566964147641513718370680235935310571309228180869917989523377692096830080511913140105458960101321948255514826094479134411160196834210473212086573869747257906868122313822557985593354607112882971578951753432658463229237345786752349140834070284407984691221789049282901870777228652613533320155208663513482946842590112490381182469447441442495861748300120448210187895384655417017865766519918933923627498096646000169942205553692620792694733615735750398845270891818585734861749677927426954127710976145441540197504990942460959285327553480795707807031205774543288392397775126790349110861153985556506337468225023020283022742339225685703904151745520085666726776548837037892437152037041967321690158984086643315898286922425976235140258475072084508543655241311243354496894143384183469890218513757409225956425087332984194120395416822559350410733008288531689170778163756028189072461480403300917798941211438842680374638485195189669613619708060326836250887911064204344146575531035654883882468263815182241060202451292374328419576202881177512100449506898493970171059574002481665037314382092059036169631631003677688756519397316088786872016207298921195319970256022990332633151882527253945702511712581907607857386934571208371997815641275200256895963973885115107607557599796399370709676359048693221374431066414213763303377533469719142340808644411690846924844485896243217126947541958859742298734647323765133744714789786482608747667753611129437124000823957832042075155443826911669404025534549050773023496045560590620407401438846542967767153449595528774081841586883325486896672005375907373864851845925642115851662209029682587145088957836166308752216820059642669888331509668337449035905984200512007902327155935738719706133991551147262985107319485431909545107443828101563357447973112468127964037302030657356683507031728647311138473944745190471685801853003159425095081706873371392965367868057856346077050133436368096200792749446153226538014218478485053086722748757365585747432881086205005662602902351179329581408190337005015447263661357343864455442107462899074887747519056674888999497853468692923660680904955234223658239435771642274400627493744881412663246936838194617257279285385088871150732748474393565994901105510781838597258115634040524793478979128430609354408429035278351910732421299039479826286435783286497235488988611758252365580278930701021362017992403745152089538551794896994745159343004220984167152654942404931717916266651764238783658472214246587342614876403068577176429921397515713624509546979046831451642055306166899579332596192800612167945439333282216483394342098817992929439193815925174578515914445630777535762989741986272334478449957193688285708208423318943072706072965191453551798871288054237197458617771635429482280193829417304028451418824346176986850889420703575703551572548980606331123658087174404892840286842615182834022552975942624636852238483811045279777064271449663101521142015066292516145008148693349957291527524026286079274024642496382277987146648564098528555870474840569818700783860338206673311451135965655692233908699756177987079571162001650240663927592414046514526527813853782419242102055003299858602072307203281243440272582106243931995332208627507422530977654445406833998478685606470931315455443314764719887889933815985939248149863391184559588117923282876153265042006881575831583706301912003062022778732182239162482758019004273543245042502477184337721870086201403577757514636180063387959244875882516092841373951554053558721490803489361970482915929603911748844982748611411819195678425927728502488618319900784852841251143367261256940251660392943992580318880630101539926799632015694748284292394223844824627517959297187337809498994899648110685508697974872415942876240317702711373205581601966594409200819829489800472332099676465121616883629060614996851725525245252786340029996269783970116763113157779600161372569778620408571332880924106418964487812384402183376768495878372416179992175859592177162981846491048395780991184604549343620409448444067818927960239113428216306430275538209606436750747070427561738315095000099429835524410054851588011975039645089419700500377036673849543386698312280100893267070453068903617832270564140284781185753622214656040150075397111517204868361605982067666877493553596753603509813473045956325089718488294452843443834773596998299570988893578016773158891551974545228952849949303682376883528755930041826904841529902099707804810428180499691103213185530354054243206015167913316839716762369015463408056198219847894570654791084765077289592096995701900919914810803883084482017473742096903729903210543929281190692994033036083438123061956252071830229288528633029753370740824099641302539300146308477917886304102952953702309327955432576814683221144092829186350204451304684013135754241064806269075661466311640622434489421689093763155914955592169450702618090823776115598963146502256867167213502933940461818627317345485827652053039198770890677103961402266082999213058473131547830781513832710181784127881344304474137436174245142705629947494986644188615562093359222583440128032474820351799105348195389685031166006071028469435833226764440709470023141752083952532541222259346019659090774539876525214592314928963707498382911646707816720468021247575259076749796311714058526247164859397820984911060149883346462810014983682732039560517796761305032738905209386669304076898382718468346211957919459423905683659998861951232991542634435174497848931799613564924039177569949291881030633739593455799476747800524103381665574696789117807784748858987374857985313828275703502993520989735097453606123825688735144645643777780209855103100706136019186852885646764552309119375533860412726645771854870648554679135872698790946388960697676747936840900417479061959657888753671058047777949824807106675620530771543891556444583591793715405869673439540493257841429068717678664160810289581310677134981829341338757349202595789484137080393671704406139667151537107700876978103331648207916337083431982741383006897476600546132199359870639520001143859975397017116697408646095927299655369648083622031870216645825222984430205808446407325571336462400737428608510534855693847920569973756614903185987077281398039036780116436312972084709502859560868280312239115003011885981905773567332295390255224557190084421205082998375232549649253510568692707907012517986132631641130118592060059858374554811264156155047249689676569893547075905086496976742843106105812744089328032054175671132035599019305667942266353616159227396453429544286581215356337944821688624425207585436986922431050664368342630591462224807806789531871008014213350414514471730069444631366959927166073359399417812478833312893823377569255970799029994759397610873487724209034867088902021881348769072324587117933232666080227017248211217112850608277253214062279237242250927258967405832278094130468238987155393259118791206601420846504413002459554314591176307892680209243032920351490531806783736723186620759679104203045327445959694179174553741276731402653426766241695582585409489159555015319098951936853009142634137126671850945606118887161132421911485765546357934922911701233430176293657471432522906277384961050290094752387858876801009446168911875502045233149385422427459398027828365403438813963351391493497356713147974471238473427307247867047188496349742981498012872672795680462831083012331939577895459449263967704901664570415290513957937411911342596000745287106551739224955543301657627051887209130313191415059918133915682116936760290346268861190408623303072877726304968970313341914333703517639160137629403525017885619739210279813141295656252147680178780106403905482863089391022716180960637300425634829716264103564510290575711280285372692699705418242313434219804617413510241561685614365528983220749355711341896585237006019034073568836025780447895295969761985973372569436207628201424153431851692911145498521119562292450071218480197721281834295265055722085330490239772601536474414632677677856870354755573768292783578041874882069135753046896851778051472886152910477463602471583542847393866256375531419318450592029211221533592654940909623452393729922162801289029300494900730935628886754242835425470103099276871692995453251120774198362527381980891441184568248841457225647645023026081520104477908890247555665184980472410025465567086956634624098777061160970277361212908841776026322992782982085272607493299953690327267363520690417484794401800377314314502164423673064059160379527598073616586694613257618147567916909748324217426125817398770357473392534974770023653275554017329722527098363720442521888999144087239355894547989088946366589149117477453150113417305619034285653057888854913302947576824070215684687675050087971415807689051173621757219483270155881126880690878838530424881314625525861841259349066912560176268043175817304384775916994481140030488350754995442826871297812111559774408356452765342401304142070576984883430371288092017518032466727085720917057937355766881119866448477885065057306831671636742808626334827056127560106605377055432572080875968983882993100349235200417481335647311674436796661635801358717621093063274480748531287972081400952947325122482426784355754515976213971004521302331893877603757563530148072491262244186297737071237993772588112472594152409896172064022685681953467397193361138744940070511276402298350697167429357119822262118509245629588093385462441598141500064126730965291827230717953815473185741565806318714556922320432174492399598662265092440192922863666439395560707437053448523910590640033270055372713495021898459429896131344057637048028897372489395032253452618560125811680229232098901141261263496487767739327688608447631152137736490001577898991682536857726284541751762214443358366341153357844123474745673182772016615411844932745481911866135793748889682841906964781634317163961499831073357733144491757557012120108328485215658415803802567301245407202524394632602704743096659583251205793803630544480742022853999691504230852846623294275224489446074755724284109021421087005489992972348119249011687141340244773942611976209937742031283885888402967756437224834169738534530548416191680290590379586297726331499722062519341936152790576750647985287567066641586686685250199045138409364983856823758789926722908832470663113804703353617452154528606610379991142938658033366394225247040238550645235823368991089919900264547457748469503223009263498483455644701717672225407479455381699618803809850007140726787770100759021453298516746466225037921449567108935364082586147625371663596382025840444091551300307133851867557747859891792362592408110564076209570473338144977659976446097348770722208234324255811774069742338243650782299802296000507426832705416310651073900701955684895136933759374276823329780036700525220423538003153568079706541014367361502723979785839586379103246583272568640953797919588530141107778997724535713560048979968074271375710509062019781951285639784814142102676291125997946130108254260384486002254177223273335288295453097285880667262659494897201046454796303212265554549745515477466197840108497792941684683402442516192547677070493654506858917301904185656071925750892120056475485726767745192642113362240114613117339092853624325019928750815181809386088142269092585863789806075738974466406095342897059710237654872649688520784067702384724245543031914475979331622427414037222634023138151623759250495856249199064741691088199802744637451107886308097127408131421542287705917711780267376558569383093594622137716308023921686341371187603512782291348059833423844548943913635207034286314855049173821817858397410287010847944443835080709370960135615662397766519475123584849679380256671197971448461976169574292140385954726491884413576590147118432268374024375313547751400445703424544819135527525539834269151032957188895034970594470065528222169999525509761616487599519025534821323634645895113530597549372782202097684270685367297886923696438731461418081655895298710901502508782992120287495406185807312443679987153659506072894691515750236757760392911649064455732572247066494451832590385496323746352440466939480748181904403320472339728877804729318004289203404653146875687125076653664942732080927719886751511635280622566373983372691249489610550388091207810199259276713959600666802377730351543202414025681649779639858933919624613461322092479979406845659315325557290106424884600301817320489179264175915927094447422931143149090236995122568949424524664987539555493465051212219549105334969582508331796693693842638883210222029715026036872673892943481893730841515304406830581858506500097186801773599524010630740167883094013861852161353456137888116077327609993900531034344506827379291706410569814036963131962726096906670604748222013814277103394606939907731464018284709063748147088242204304301789442946662644629693161923364190223458166662123312669856857219466819037932408121862467412885311804736901040956750669101090201055981030314372483304886259048468538578232376046803525422171613626124553894243752538263471218386140233473026849099286042956965218031702248044064470869850733167577347007912254871259674960067081990360174702383221393638586027316054688405764344045766785743439370048412605002221754602752651807563048275914908082110966648805114202156957847829660949047991475391538455407728558395221385208021459626695184553994507511884215651741957663823450583967361788128429225804279929448328086775317271931529032346815425102939928069554381433927552934122321618586559947868235036114277035548964520982250392584422812636675320559169805463966376559240778760744699645156813957300464433946311534368877644684632595440914207864795444021919085010794267471861084860055213550447933494521007235474185381116768815965798968541358751638859254045502167665293791825833651115979822902931472606308423624797949724593160489134024175425827657489360889977564706585877748919666528076430186556091233703512137161088708579700939292263007016298350094894794117848364942999197161728794119987632726846798672704994483293703270354580475477373672809995514382229558600031832901029543259497812267025226519892062709282599750829158578092657701726803969141180041950267542831329309120880583260696214916332332516087338518732167156295260056725113852560210846146593489463296105491512076729617987929901077014580433138319416510815858556331469924268248420100664714297066291454899691861257387097593896397879506948880129777515671517348721061278014064304018162715978810155062670707684174543920463006848066034794369611627310157502681849689223760040829496891891204267691467240465333436482180260030487736583970672133870688699819363983047602194434481982282041613974292449955343504563102854299160234405220668075674841078104854380932172339970180148924351809998013166449347914291475736879252642711756736668730199521026762438967464153439278536546906478266789759273524824932073563357397495346564491849776505230864734188467528217238093148196138298889693026501703828822260625024865033847225712953582718304736650810538984396062906802838541983941519699862647645321613476058626920424017390961603839822985605298365172934947244031833691900473707547628773720987432960315630458971022588468111439292518327165075544544739119613257032982690672587012773340741778296253186755510353727106320802131848125168450230967202662912865071387969697613079241006132681615991917330997178773406276607706804447524366201115564062664550246600375491897543758360588825920307272712474685971313102412401651930598587770877758055317484357728074352036908438065722290993521837551864131345387230152380412435258048623555034295515974806351390757162551314987493583903092258801595083406077128131749200218669225683875930664581563358444510958537097694120494183327068219960108909119754329897868749960208811765427260344431963481452884589045183160405468526452700289797984486692317758765045403916383568051558866719618718669694421344385097426532194873412745562384462800578103879704914896019984149515695261376778869776494316851143048398456255480924935036850618574211116088461566476237354065944686772916087413825054524493239529405506840069190801393769520833363699590077502697510831619770065557833397714254471685572212856783311112744742132097674690614627263412089785419786294475741006590773634012190740495077224526704625338536684073162154964843419342913667857739518621334101794126246995747674528810608401008534874830652482733041769668542259117310164894158743805648281196060125868644451971174972048680008818050710292699122705312644536828782000235423916557428361809535113341059007610647594017538522951944519495676467159218210499396320364561823773864173139610823803698864604969723637418852896932111661035881772503615284481770491724265317039541170833782130722309977769678209780915233347904946471951661593460368786655218079997481618371162730790298244655520979068985219389549773404973065052169758128632573063514216789556558451848338986589474475617401001363738757670353629805517009028126286426076205445737037564429421785256142837600477771308387921528447827845952455168528067233721585319051925785475306035964888501418444134884258807052519107476874338605954443818779517050456512784212148523530296644337408086286773010241635980259251677453086720428933023989693940291488674885512929771918591609932429680834258383074348811986488559275774455036703762601302411631565572695590914272533733385618859816553037656714022805731604556824040327267023489147711831700727494494718182969374260551820448212004333459265036567546944173427153197437896999383381620196246813023002796071527257668818272401208233826537488235356105897091425506010876455337541756592585802522350992075133297235359912475223346176071921626062456130600313434824080450683292894800134146397939285599309605869087870218752486873551947807701351308480425322907509166779117072085665964116271260957367701264020955920019107912236946585734958357333402675353501782376412500568925758290523710661839497605483038035130230323026775157671466834393563704873411411696613033562844633902782108945044901628662071010809679448510131127152713057997764335793218723748333590973178694956041211041893442737153013883645284783728368366638641363892208619281430741329028549940391117810392033376658061217724556211340361989905194373469389419418882682133746506458417919120190364999988017201669389438056885847455710100013893364664964374407278684191063503853172728627796717850459672004574449508562285673805921606935905837403701535653158998771194190605665589172320586024297379848591124141892538551313245738379434173010512642299139706606018986700188255569864225347397528151542617328499703993439442150022721080155790578301528613132349704868862221007440595507585147786994548000694551273740440648094863039059181696158410060452761584071816470672503655129263059897052700882165496336492869692291649115751036999945532931664530681267657475560422351249390783164163888296548970173655419879055277814277025287676368151715154392514334637845549443695775070020771294587746502217188828344615106313843486745653100338878738641826637541253127368052387162639323129604542739192580781917123009225876337101557370171608495924802107469522930300349592838346827889836532231605346339498537029937921782413339964811880965400996185490672711661493863667758257530075212349472653282867073200394798753859202477005432426285300309699285980291247402860300838998380589717815916805053297464079981102031633611236330536734325171646501375408782294955630116809705593213636438544448357228338097218525256628418321338111927479445776306421777807239870314001424168689233747455943248340300927908618460793837216075584394761990358356422936349367600765266404537442837178236060422842960197466629173950570569296733962120479397866461027485066536895384919291002123218883692633480929526352654334031502107601655615552205430753349929934618913526191856398947020691254665798771334839690971923623955953339539506405106542618717504594485611705170599295829089153751998492551813819003022293935946302514971809620923820400945210247306388700231856478478331859672596064208230782949416517959377778903553171693713197441800541951333410414216372022221529657498551650537535680616567321081141302663440389204900638711002860420303943732362629574128588693810437018622836673668360878612191241373690496289925364741033236030893314783983424837546747828295435893658935232653104173547259751207077034169476967041618868309026134687412557488972618859832282216501227709554980187575105826566748954062693419539696683572743757884767243468118725117969630747284074056519948699077197777124966985714172301469303933187243530274827178194763281714282524258075727064106494043233516143697346231977412986363527328570819086665374355813042902988090512271678724142989657924094023575874316321844749265826288241166388671295490295234601649476895455035560469791354164976269682866179025629297464664516157137509468311304782673883162986484683479131072906909108124483890526793607231284859589680418617121307537271029432333383025814728881759047080976162902949822950425004027855233290429852872337504881530591521006039541841108305426990930797482095358113294748705856157625450961801259753915078190397854746600139217357332151384125224545647458458128588460397838721361052752977658603451456081155713282566499247757106797562011486046501181482440358375506038541616038384169894519061209988199348666055075014425323934177414883344079505849256236449677333284281395773831990859699771803612083843818352700482002161751105103341656149192885438590200555950681774101002976600855890445543685675870633958077729393642083261577213299313714649115212656850757430154773184224774555370284620158123889523997679583800935628374176948045792637213382475428292462020476460197323455136800389847138997876849212819961401155265462567623846312399312258335520604786735964051250282980880890075404398209323139968173935913504513499117922828580513563223882199793519082656086564918392936289585817265586636417952735927379630883859095174566575455142391441193199890274545122299718827335919342830185096421137734939517585339145598088255807315306178631388247575028507802559874383099319142400579305887431035808363270517634831394232897275225654074270140195553224412967957510670658021172252607923278576003652267759488295328857704356933561393098105813327826827020561118642636455969426140400702147753995561423923687445021128041297631841921481356701782428449813730301728927668891493822263484912316058651417563536594828679095722004523831068021783285652839464614184942818413993981110571897737942511200046892606537768743340945127441492405268676609815306239182525575527386227707762533235677716234025968476957282027489637568870409680997255327038074844324883203180668107005833566852211291380882189059621621048242514002904390904219591124073798511177335482632733092987159205059012435605597753266759231208285899743224352957269937819727106890246718951863578625437920967628878809330251710389296981353597192175602304282072592270416679090676628915624209762086187397399937711794392904058385097183563891200344169259691651301015124045118000161658008740991244274329160864152567913526645127586788906395586964676762494031776239370475705050522093354878493309231461310571294059354903794533787675367101393556285016217649424219155413136326827495923497660673266292909211324123274888737624214609683052328393877584416015716946240248936175764955035176770548111529532567507254374801518687274265024551323172511355151288297947678806212752212025689256897082566878929745962460309288752671824148712772094777928771992750014718563952775143355420009737425130639488564032409636131976748550785542161801925675123857129577223644745421346098955459727978594373986169191288065995039404067854206585963222484909063737807155485585104622667336322130772701871674702127802218198647949832695165209704758603434146201831358401914389927732018645121323244027999778402662926763816926288301162961632661716204178179108141393308530922190794380036636584268107228832783776208500361771059878946346538010258981882023913515329928465024641160931718045821701354706080613700444863109645538018665321782114667131743287852496231834756790140281273304581161116583055143141241845260643944756708222952381018347303326002124697176809177481391561937083265616249595623298634344573797621864343539533754709044947441308626009577545068163122697632556748771376348261919280907931061895820392412714557059418521883847227309423135657565892610427323306188043145561689161554703075221869199907913722699916253597067126641314011381219666720196866754046018108740909425068122437266271683015691325983969119214924149554076017996546041440303500036361078801969057536990334830065246600934223425622023094561121167205363191972027244313650528063184885668674518297221730163928187673213410753905246224760510342350847774935098521704112169967843304268362888040321625229594423904465133240946227889680516586226746915505286570764822235145422329537061431045871303473569310769757166132546810961022680301706911145208049485913417132549530310709685963551104668101138475121899011543595142290505657309291711225958145116664105160588841131435913685712774568878175285541163905409503119876372760848582279834482924213808455393767823312395365276546712971176355966361570745731118954262278786206263565131145288693027278067914275414019506912256723888625584961275097613608912084821097691372196824791050482173342362366751254890284086913795256679403328813727372256421468407528085627371705063206134017471293629258565513168805689794453503558165931120980087985085593113185686242398553672283287165685329644899206426692921340100979595308253368579452414146746257495378278873198315355944413978787617640056927856020061840295988649833545146791793400386954030506044248050715907071553808588353684483274164767364490148136793296992280730874966163628150879085345578458814215497346559360086155678437710176345133272679156023979355844983558431545354077315076048632706376287525075615971477289798558471950757593709122664420149440878973447960228651855078270135662671502010010909796359601972229393759401603349326376622717792120033826538750718700765995788265276578980603716666798224170228541377435638912602201757654493256699794864231789049554583778253664255952661549708523468486517611214217673942722948062116082196939420545713592831068085917766944753240879896716903779819567792175021804004228764737204944902436989609489084343111649213290045009229838582606857566286782577090571672909236490564328964230679334354022389027185058469699423186944938899116192341058073292055434852990047755349077538245738168661524829724004092638859284018361388741408047350523482628929514459509505044864452513093658525274660024584141767523168184852055126628732138751464519516077024580641386806427203095368127127598474746364447932971341178828632035673254685961977867308677837972484954374253991905401182749902387867728309169693625004298074706017709604927952579052362656056497599171153179564668140833102297613560403482673611178539440090845486310337723985693451250260881204683544825334065973688706572240506918700928396457549924555123672908732703071740950191189346848951276199199644706727572367765577113667503144573705789093325779736133398524053348389916324741519299111119105307491373093763872804871767644043743247923016612461925660616751653065219612283319960908741407887134432361855597547035405095499745925216565052783970588564371268066843602001262124358754794964673930833583104657725342318923012355260123674426382117881883678876105710158663121018103309725145192336653716474699695976076146577041310695592743499831078542904954113715139414110397227525796935710708029714107134096289963941528401402107092073241896781609609974968167889459322162720683609118416932802130982212772131210299469155809916677120373677964100992754415133199311573899650083069248069710039366745830466121528171035476553535917616697169497372768146948655308436296519297570055073949998992639131301514099440975850989786856372113399385987389182613254269992027478795184972493473855165364642837615292641452695159902022784947319448384892425318780974235577310354898532013500225207030332318222924264697536368897646796319938241342177116022437119220627308525012741223799934762569688137807943524396384105373130400904352995768400120523165123521255532089745651630290476667206482102453939547895713117469465144809417241069248288311457153465176215464926067676323331693699683740636703779593360178622072613096272766675115868417556693852586169559916981503470904894580713556702392008806604008118849694339940528406502522123822249325825297456064559964645645373553451791601800054916247123202636292466314961719204797453225100475999665636891745496339210749421671509090698686717695010110971500983976084388024236536336236197801049270755485323197444765684043029577706041465635052915298716090461060990787771402487654222557809160440429473275279677254325863391733054361590328378574319639656664098027472301868348369212873856827241910858731309095640859423101938378937485932760915757370470780809636071804935032887951729040130501519756404931935412584204468956266684286798656724783910017203709004213641051280974951554583336687043469538277923811784124814252380771302951673601899054451468445210139924595016844274069981953028846742962365413555370194042712753535666133633997550761686320022868891485444716714047628670552695552956968216255983020140416534587559860796616991806430928169054777098680948938352037981533802655285105973965888635707649115736658481954374459841113585459533493294469560246681122529038724387066016646181752710259508020372974319325123921796818829095070033324640142133028394042764775582622344451858638350106739388225863448984390823293992314166279755097226731799801856796723082354458385024614384916997823144464869037590136014587707479791510482740890822226137813589946501766177932490396862529618363358448609622431668738386238683168760704610030622385236067219604805636154737842823782714718564195122164473972640551645915746844233037063575866329272846123430699360993403151356728020659973369831191253111802568725247000996787066370891798024727559132819473997280306059812385813943196203581739604293740456064658951870028456366230794801747757900287438479091576762915617139564528446518269434022776884683613298789271316579228892362747344201560923230066426844892752488479019595131190692042324287894672919127369653348901506052125958874360750207091718760588424549613353528704364373131849221171764393423592302599782436702831482129478554622977251289451202452274615843947634789971557583542918249890348662008565710512045508098366976160762599703513798781742573028642694453908280220525000050920873004979249617699831123394226338623632623974885123731121227399241020758897751918097852167133896861914952105093039044800184087556590687774949638949401686745612819131219475795537192751293054859638167007106326963938358244844574913077835077998000868719101850287198560629593574566576417162829076035477288271962253243527847818349497569321078314079176596519920358743126907997538908349440095269600404864636852865246401939319092498646844211810959765490460546963922833428705290254022645469688389030491641728779367868319084056248378941377119033686350385605539532050676539720111685241618568173212602584671195231140575010146738497286163947900210150165930981115101636027131612104611659711391098769192888468026293908101493675638971193903322799048361339695477570732650409500852877910838007029235149307210422688082070182806899864774709519935611009560195713680069721412261033058315278015251349276095673595271146411799451824951873932326919620163042244795246802050707878692275207004260695111874192382387138151700263669633399336349815393826727729386894933784202098228583977061660669948030487275203005941995616518216742664827866863986996307264048633283988229337091438266498592115240094583556315587982013752840942257910524209434022146909837560484115133736037820890784141413775525599941809140659121937314613745729745709884371751320383110184801681366753175266947035283409795811416023827055284750864548967829607385488833252639795861385932711535046405254769087510343465255689279366065805265411640223142616454318977799692790571908724198703495172232746229217098004655623868878614831239259193524558270780092904354477129536494760640071201179474017658879826874575736661832894432602804715590162487857845964493014426677874467555313334074712614109724992793435963704859621466971108078954421268567567390725571250041960057398640273691456599267637310161893739711312479538850455198965999635876462788363490777126434753436859591181192302951798185469498490559168249543578096987380158697032092217726322631801583435704989303975065206326707456838757745808964469563628812198704569079505220092085174008318011500306029072559652416107046340578389443052084292847921361491613603959962173288878466415578064552373435286974255894562426715822517302183156765609747883927078603476285793760937596998051441109413548706704514579787408242735025775415841579016270770734255544715547313801464265417220971549492511158904495012400512135265599755496645287517001857347916645483562204715962105072036489366314469062128651753168525613737136809035101320851521860794231541260414954116968842802467263936690924035945064534664266832518459149180263037898750102682540174698101843222532281665696415591582506992461554560623388957104898641179289127123636197067390404748693803245740960521122272837792710319646268468629590095110727388240513600238958288873638796759255529497506486464586280184052870246798110575465758479400445148658697360280556415655832838321079310391458591033997834150410626893888224898310337262796758384210332124265137731574985762324478299960337045827794124297613647288792788343359392256696918402033109285527449411235988836904445292589740276621720835570529433982163801985379714528156809657171385578533680523889801736479966522650307696878092643707378029513464379124486409049661873162570079636706934914992254229369416958387544668255282319428331330460571867030616659742309298958945096109568404841931285113109217246886799024670997461941850076672644957690829758949076108954840296721509395602113007835304686628661951698600813975934144314723425560253025014063639359952864394399180264429456273115721495979166998543209458525730568766113545389954577237297675078961241712586026780639715504870955307488455424156088767480853914004410068151919183008268627915055460555318970133722233197301498274805296371021187358341939451086304074398940008446718751302090260202751940936015362452565703786501207551334408339352409238335884132653400658229453187477555678929933148788303643271174670569402655691014089288936304571302506258578906264397572221900374189239746917413063584331697913054745024293747295776451403494155854263819073909725850713187465225991462836964699165817991775858252959235603035183212916334230170900979416806180294147724129274526752937315916487530218205177951449136353653544913983074655970645731747048849847961582933394736943958357400768102351719154187608154124970630776528450932194317055959115125181261793069323213251388475679016114938285347913888377071132863557602337336620367312724319269242124574947775977549600303469463724303234254232575119857258142885758036474779094651109773041334338774113297283237972062349669188225872613313959707502782997208507979401182133925285629821653388976046491199200756026520612520405911677684608229424287296788748267896688024150113339262355511011848957917387555081093107155009580180631148520713770771303044134972528832381010596386480828693015406896983936713864310196927899597744356740253836910806271291975727699443608310084655956494906738036667900091686323321654878976203710230483142222149910116210323099527046792949172246999242618020432851303394032020985411832255529032291148247414364447399836077184124570436452807822182770241371474825927158712868198484348684472777957605091005342560298671865596892763178920022791995798442105885804739382630983322886596333632678463752630716512356456215264709828726521680256384197366204476295876541787016027944185437940972243295472148804788675675645287778198581295859966114195973873733236941698548609789204594225911574515529162335567878182540369940829237367249672872285055582379252782518932144522732446724686452480514513311754678585781062875876524205393978035615269812687588666842308086822096386019719166469578221310867465932599097944772347992362160707324705725714267674199207677187392695577033942275316391983967286606583487472727627421279575822131108829788225909685214633690078202675360412106333313212394573991700491754104579856563782942562127547358731519624634055913327254331558470302812386920621405922453429012712142495382524223130578911872463073004682561118915949013205885012332850859208685317307941065274560680704625629361197649494404154729088573531600673867156533756353905289097670614098295311100720674992888326776712836163639071586815049555154281714492134212222375431486663041669182848509597961631995050334021936823041127539820804510302123269973174291632817580449466179445102532722613773868447413863250781556602001963044550071346797596368301203935839722021896058544791075693664836101783577782389262444349336975343288853363340753724386519816527211424924407954341588998162742592806458356746411127411440836209048290348455473060001987054695243975105209849990670434303793911797773087913784361497731588254638066992524596150696781400860821142416624145281584476671835552417219874670180796300688454716692063935400887266709921264843728606124976196667188760148521176302078461209868249022678272353211513099999018215344041060789880995164421116212533197809084114446997947189000814334253169947190186909087809762027810338413004220433973192304527212291270524572144872162011780298547724190894430616424477797992849891877295213455320979807723456895515491012315040057695078318517751772826941723176387818094062024655979055956386381004639996220261303433139808250717392696099898073758791303448809411489728099930360338199379796195597115452240508113050438295718415395743453531188361708110034649662226874888408003309558442667718089329818017313876829945999466151396977156034966293083579258210769293048362490761400086852965913278581252956790806725082572036225404150468113279492995405982893992067439429624211551898937263227958405690819517438435246784010630391656099213988360411964444161700722735599304624319685614135198291399706274853617435935827929656452362093764681597238974863657984079744541485865775685323666973246367916128301571768792961577621223569192155492875374367532853685536949867888747675541126370270687738963817849914790257177374101102879077571435552627823499516059431364185149989574717711630073265612512895044070020831520051841449420323304096301740846058000845009673951184361064314215639065610057158060477161448186172930203572627503001137932651103740675199743945704952443502834683805160628100405364804132739903181768655246209268256288730104499439045453091848115833592327962391737057168885437119764041954926916414919344006630088570956737144445206969968461106932087960589976017127360018888830532632544424929158520933084358835646841225862993313928817550137400146484017619803792681951813209285266885292886935108654031365417972019479010072866200478548919199949496434867810389450159611453606935773225336427563155935352900009958454159541243748686239298466379776786473325792329484263004183261123923090446616445429714826817393168027608601952978841322464526084503444880620386316097887284727012678150655833642680261046439550769555922869563109658493224120963503193159460759013440315015902533318056640040808596732372117825771776167292656008796781576184220614508370823815919957610549432902230378352099188618371907556318670434538366869454705200735091774344121791609151414926392742298132667228496276040006666635213667164561758924744679592761179497976063629291616766934791730296061202963321973929983330684278080664707719114554176394345186849786082434505009886020725521337884876972104287301082266738920181003841551299106855813114994994847106164896187039029462595022549408066538989094204831463831497245342418015059241017678605979708469796055308670374086966542428361253860644015811594383408770399844065726555157718655981805849819409943390291794341622102077255892060283562049665424111148662389884069855030246108395488410236893636792933851900652413918681570119688162135568975420610450603266308030832308486850699185169990096673993426714499313075932611403171042140600351721686008440221449616586406879350003811915118098938989966915409234521890507545503720243500123104656691691015028400544181641610524741676008026875939260645155567067220309736587834731268851342774258564716892443410218288468073643685821953325537081061455572917345740670583052291583679247314766454564422750724113105290633130533681510499676000776117708764029694651058733942480921522433008969279900403020068212320015494947667187449702796544811417947874806530858426287740899550128354663896768479504200946003862081260875053241130739518962109049079586462132895842796510319708549577056493127442380393892042769622839299001895218473649420968930429067049979805491446699808237656223130143215752461835520139014410889937175786262983525384265124490235717081097069298572480250558425458637310576035240292147278417545189235605387443518588357601703779404212599482849332078079928777283795032223863816717055841820198869902274618585747776615195570902755198028774990601744538377922762409351960779975397948054583868620409370314534655162601951835829423944625619638954727731622900993940302906648946527782945753628417933639204565692252028101332601605090882537971047687224243975350535834169550888183977296100934896915185731754507704014333995296555470188174824956889525258707692841466311293474428397429288265636322454003800986395619527728457593788539122807758649413189080759840006930278063361692203498009001259146476003681953073046792787292951346141967370935574117075974043531830682287386648959809514043269172921181011451367773538228688648253253440681625037741336242526518303370525961229906620084678955180691583546731599343315695961445802023681686434585889908258688969398060036996862304038427142738872445206178775654153641271112308909773613595711014758335566791113472535199090599827240950625897393745520207041940585700147153263384253974851709938702169397938991311559242595756762801628401197835468046460014946658305022075401917521509415560958678038368864722422334163521227172048209604730415226521691244662582894405716717434590216666132503359613069257843890712035944663057755122588083498012975343514540667921816870016779506301187626080482307589106377733946699698409620251326537160641350734725369482809721784408875865045667446298195992802710737365719566097110041732077514188392794267090060811989438036323715428784627693113584805336975538717758346852462561280033589906641814912043914529873386281111940214082493503991129705661359014263085086862797534805404994134803749134983500701653706769106777393691810522401600200887916896947062222005513746839078447225091159730621325715125004854888405506566810790987888990063594910963726907804929232019066460965144621693479014521218183924229263466683601183196410402039503587960336463111499584189364466843538273778888224290138294892930049506773359335803258713602421404727412524369015233234587045607977504641327142658633416779868340710103436833153432545905382169343028330543454742052226987885260038135991088842131890677718017385209503239941014799328104553295914886290352481366796924341873722816729496386583353957705840511059161664550209017697542534828019965033291631439102668011728361227973421440404094860038905737456315871093611331902504353474337982451102179413718937743546971465903636281304001786038312663998074839090600513751548657401400261051190772716103500778409104117074942495039119647555430776957935368860672894142218034767330569261765051248615048008356719660199545929829092203737163243404991076449172642323621943138080719106542706846138300820886024236474839530026909256689492807428045056984335016609129060832709969248208878353280138464121868049348798304066235306157287687893698174145775369245626597523478887240076121661161112660071478972067540900012504707772097216705711775488232143774639886228162280298358240051163231960817508943460483840454374633207259480794684845854910414808328707797926420243652944096024063467518446401977115055302450587980265222623838938539116737466936237248685436983870950631326683237503025722191902340127107632238600422057426799662200793413227561344752349440939606237211983802497609072293652622207106464407094487724949443980932567194743608884807308827511925622727343697897355117507060272934511906980016365227171513107208952681978076805364356898740652729883219151175527798584626781935254048665909468239098959791517793176210068149446381257206852673068430652390132779518452643656507341743393130574443283796169925148587392110224300899206418202428999937183922467661326129177961977709684156994696836221033626036974173542678205489456862931897570991787835334713263584990997309116383946728192398427741025979496749760143839333836259704191174577455435917754821866369709184707887275743511531690899323269916233514670718590683641977187948194118513463998279921277611786148948123205745861062243347919732138574528493811269396503226020904504196242717121845450996230971447680126632697368777249585936792319663189217327887900829255891108014340159530266727929631133282707949346215897275969723468957928961333908198862652478721387908445488177640153718351116483352232157734971141107134340452027873327809184352723011616020623504309248453644099405551363791521756434577040790817753099285868441364676282491057053745685062751074992926252364122769172401302540798212045920884794539432540148303878525815935918218595934388947359126337062485564734886025813698655495668348654114991892912476286792282498124882297151756539803716019191395525895560345799568621280706038347505212609538307365032416733941066589199534445108992822556405756595350770005691529567747409081115458023023504835811094883600263370264321608243465963611694569399883141835289669664051816852367801472717338871640727612884963746914418353550180284611391050244883811846124504850745394662652682676916620992841190585109560468797341917388224539203986076539290303940877816119077037754051993685915291537716487630260566825796492028492007769227162054022110724600479913403800738928053737817979535299367828273112018248146170066035013259948713767083131120936260847355097569155369617104070900165189146188473502773969249691627325272856618954426989836336884420633539703881044258917242043781610435206743266126277772135332792035742586500649156901145276069301196565785126124522937028543497822502817886016448854483016393406955088422370766469407784272881863921724046744063741605743676760801894838846758134979008459171184106837760029294194325415542578195443596250472063620243972150705811068331442027427782477810133119086323668665075503399159403198443646381099800589816309289147642883348370043788033967025793019089208368018627061736016794161900574181893924524307165283670202124318605201531185437937573536200964524795407655461741822532675907584818027523549044637609705557589556296234502853327144512613371830693283813189044231157566974836663316496488749061973210868118502259990390314507676776157872946998519265408602082130042973702325454102731855655375028105512633167258729253274960095277736233102480845204183659504804156663834498113176681767604793237637121496996829011487140122125447893281012361178124760898046517153064759305187524060426947760734967301463318502859498846545148642160465786648810944514514332066014843913202501967137778498391149477929455381510242956880386180770977575398789997820479826371156946881357417986099531459978261527022788733550780387268983754075120067247418636840596661712737380445564840492119151939238872861535446548282017413634503412975571688930164336073223876237285647128190757077496454125070937650858813402292454993708749964655891006197355844357652348363543608950935384043758736297109567320624826504178222334351915200968047552819374142385765927814881938534644326627340919526291840806936717187926558356238473067076464553487792172295239181255644072380584560307077803040885694907445813734274480491196807620616026817470037101540962546177367600595292320223398774309374321332480419184076878415783827293877554554231430817835500300498184277449345029850993035024945866839270772701007961350583926150452916017151884496785572218105860701220201937018456122982464956177047640117244330182979347996844106710033728184500418090869255046337350052358357459250636278321212623821114509755289697071851799405479735196791286074975073957214452215624941674238841650953372359133683075536447812514259100006971683390137787822787996334331976819833775351092398945425296785451614035765497865124669876309636583359506004288441311113557504042273494850514462004497743605056450402964323209371049477377934079792147022527345655014629961364235020152632168992423638987343665712603720528017543095218197488383696800850194369037850963212773025815476567188793132338957396442444589489086578534906019086443570049368205912519910976532012138826981109782246950478334006937539216235844665304179950890798311683820624923272278012827388430579635876313228780829249406486671312468387092176208507717634204493302494929039172168319718676894733817547989390094875169146921896155922156387946576683342555975528621993764737859921499310431527829447005962111218234282452176793649547428039534452888661946501748827873047504759764690974485993808673253545691377831555591683093064509104364496520731356687789187807517122579720379203126312009683993746133493265001833273743235380057195675592875861473394687485870593023873650564845803017085094472803679600725107231796937767153831311611049290468150962241651556082917150811887601051351055424537846839900548252190294701533344675237932281141546567753972276598871610814990391438542089381258587625688581322316516338160576252299812816568678303532699274633530788222534369663257944379225979140609489049140418011926710373806414973586595258773448085863690695682635419596353333843143564745916621930742412389024326796667878643846335645518752982527014682813457867148294404448170118223623855200751514277114674950544494039675630840957735419431243746130312727778353006157643013037794956159591856587840997413730545923486994859974431407411348794283367932282119353769933885934626100064690468874574022852685901515836254579276694669385781667879815326505644780059597448457104832943670198607465455116874578141665713250332280036637088814639183113250815577335177717174410841034354499906332695646967954750773984339882241663168087097499127847816453322107578818032661333053356189510486262116953269107013975093469848575729278942133209738565185541314298127505939254018443408281640660477598158433648968835041906813953967470970170769801533745899291226827080800190944019271123240265048616130510276834113187719916527789898226863518105727141512034998371654036816956595965442952819650154901245114215301429778719933292416123457521983401571465187422198541230688423381929892627777155009148290859251462190754382686352581378387228411183504069266931866652357361098031913950792948556492298014917860240954153593333680879094234438540815563870939764268363271944319765119969281604714422745053714741023279980311942187104399339683871051670850227655851542014576097306050183636343479862079167672460809138179900078725216728081117274021342484002013843017508048234741410462094232252159068696570706761463353171650923528657200095725578853320602079472558059164135243915176262869433507373269023258354777065355129843508369912049764075800019754967477609744425650449417912152317013114507325533131159064326287987037085697556017654752159166403730061849686206501948224516137195799702653715830573473047034948736538441970608941153043995867147879086822003319392627756126467922107673172474716977937507751028345599226691338180727352271834981875695894744854710250516213133966642739032719451400617500212506253882134580840144717730332648077479940159008240956011999667300918582732678541653823801688000293077197979731196541140445317478513763888392365971544735113920594211905386424415576855424890620370656125026461973777786724495262368904519403634320470615877746447735592487179275754958704818460106082014752784797161405906485004044785345376225851768995646167686962365639030817307734795722578557194326041817221778693812510339395828560194172157839756550585792495199464501467038313680558552679948717214490001499706225284867521066586001223232739836087093449995131761653853861367909638241721111928878237108597554066779527953738079089089511740023446582706182880044933112420676136666238166551983041006200283997803258322721323903563064516083123155722461517007033929517574567964348408039078346653413643771451973215875787725786886777051121498665123627009180580380679729186194709617193693803749618178342871281869023063629497375221002503721644424097483026110165045025262717105065464396730858702866337509896812997474726129760349881387243047525447711889085279926078672618496602799722392778160962624033032187694717431486233992979999827031780235025741849209336504718042840844198240066677884462182059549920618994441011970731242650222289930158669189303158449321661102137357949350729361081728241333735709876615466959509579834312906646426021699105899520887821113452445854355372001538042294723402859939299500291721194756862028398977939449351202287277620343649376577024268491824772959566165443174074596665785869400220630742879709942337420545357358353619931534700866652520412822621426541715864894080821545655429920239380666239768434708903922895244326418681596516283333482061936344563460855768622308206359098609008450664512181355312222862471211625305372382733634824243419244503884492857846603305084056534742223360034916083377267411313328799344448293663948415320769440201321393622025189222428235055316506639957039788012765567737745837248432395350533360036851025553547338480676876000653850787366591878197226696279763440992364680230083860792021236760753422908825078883081336615796249026289214254750423625861407109082591832769865865668566671916686032265266700923928014253641162512347865616244327387933639232425561812225435919774941767264233810173056984545448829270918169273023041519539709624456070908950899098550954977706487598368711313718542648345842552899714620369142374903926571661754579197238759199375725510986279842630071340752478643127809862162908284723785027388883715600504923122630002212084148559270817135767227806647413003770725553212910795083970649513516718316393719822417161577640123315668128853344183841798042764243695749196939119995758163438532549338579005375592628783045846647862160245064284811876793065016318616303390321278461918909191991353931418789452205786078718393393217218999970825505743959387627030727424560234040777788892433443565820828299435409314106140905638669061765094056860447183478374881212184759940514765297823856992198018651687252945930951633267302828877030400423671006522325869837006691566047428101797661650624816635859602853372863115505524458627389882582585032317073465821821192880837433272435362782409081221744670541834507177519399580445441821323794514964711733825825454444139752895363531210931709949038989232625624209292676277962782840325408259612448658783373019197821817226769181935532271137582550219214077648595867712959475721617764746774902016739463678560670083587499051019130838834502697312852273043813168852838322896986378248113824658353251717151513654016381472995269338520091502343666026310540660693237197824134314260758098651203895933384904535159684419437329038959374585656437849660970388038399121474200148925686746683299609153125911100117824470847763474961924594609317950974890867272090366105207621071478787022926497521627306349028383686555985255209792113057987060004168413796804747611755270619603790526145611811066139883305251420858230550776487345062124100556183195600148899965224276518638830523944401874943286920881396225995733635965870385205488777953444952827859739569338686877875301370302633085072213171703878858712305598271534856016406798169411797703956572010993918430720392778099743136540411258025863997571268313503148307721965610755539866257719688278516453629188033371475005477881135972836032763500212289246389963231357881058292513607873199915457430694170619518246707035490170506823187516837575385372886714400227594016494492948977353836671606798560052951541041722274930920017279932599161466838843566038245092171470762547777340618046282116539939745880633992434262973124779083796446388091539441411834477895966933745676274846171004026157322645001062796147425090401604647370538745752170367328960833224058013578494483999425456880745948036930661255529536541748965250278422217515008491239510846988321804862379128100877295069881705429113167997579610316023866102151715755305937159771978269311022569570133929458753783274135274895346021309455385422026906579265022717387236429578951654380117281530605559006595938228543053422808680190070198077591630410661596902543218593375350625630414380082139054203166394799807848607745535248587461075980723811270740277776519171526491780616666951882836557155452390665881853403935853845430801474082311260732193069254878136188356881500746746527465544346488924404435417757891511793382573054700059861626246313906832187857501448422163644483275314354578263330109518389581280773178866869683697588880414834222626362048263400045310187479637824759974101779322770225313754314517255742088971938250666277138637164805573384025970488826035902504406745289395962206193200319907925395226811719266015351573422034455065274231964773553526555550556281321421891704911128015491967265182635103109773106581958049920146417924796323297054117975533871887567513610843274183377088875209497669224852437790538107581895236846403233553896842047070961264462683915373338332114187932444537156881842224791992172974640178673840386448406731360247501412131744189328272224051076141104045298261777568481025249221404375673895988665626577304940404429786481928334114853417539777203617053651408153970933004203298589231442771252148736941588514313995501975454392119302669159510694688842466186212823327681997742356401547186921460684947172935963517396051933311902209940763642785889689138249704281751691136222252912087136920497270338466814114605001812742915094882375661429960239884920969303580062390189023217278128448052651610703942596510769026018408276990328737785992085683846966496664564140027082319861786834752335129367716030075514751855526540642829396124587112512180744356982814708900103739959490033699118557138194537056477783684367779756529525066711466737088635337620718110580249432371403629741262844629906464140878911284197018849565455554394270106857366569117478522031913562474225681146606353171885880647720633582224039875418307821877903072992960673861401188625397136063692996003327307421786275309748243668698859738939788914918922176697759658783963868383375112826240910901777312804871100354056128222202448556736141049607929941310042533356140828519069709137123091551829149224859949380469806351494776688759500455665200965971084491390907919619577745862798513162427601780330135142011980147576277138332214532021858315630077406745904263909731072658050646912859562638760210610732588767412587273879946673859320826099871238932594603821174741893197686104272922583974055415844996244118836738060514404776470993819634105556870240389294861203566589690751462922956229739664961449732505445929891081986453549659115389154447108858005998735361503215709027273998901005392899253461702866104169492530646804258769094868617480821867025622842192870928547790534081796832124689411813919011598954700675671537317808975238317648079447785953138925045015316174825664576205787360906778012807294111263730418546656809834904217945599584278809190492278567465901785474121089141542078065455837598752928721533143324174627461504083078461424277276653132324492439762406814669918837976464307623975782410398345963111726991082904060787202891599880213275428116039756461006273695729617602316747793443697167091101961399193004304082384627035532964425930712837167213012659463792479972433215482091585571088355792279614955339597654160221995136254275066087840107805377561478253461943026463663395706393481706863775318254668415649125139788850556755093784957392027589110523954975714532405570197604644911598141579939789364657606084412878258219264531006591309539497749187518297524500949839300477689579060455549012493172325285272356607942015625417657059497276413938290063702562624794262424981017354540201862204321462754352221513381312974928839999656900124732493316858487633312107413540878259821798390468079002887853402629312040772835092178361095061115329179053720588507029898799185143719466766148457479281131431088535820093384688995078281369752908938355010634408822743759927628208688330898870692699371280893395414805423937564456035396175158572831990766633108655189099355902648778196674211587773487234534607769339371230217959702990192211940688779454625857779360904491764433674110449501352072714919728075312664251874413993435986946058454481786611134064430983570186314209733075367592388437405984474432056564342985301170451383234744175877323446654313917688293673191244162699585342865437366999081518119757511895608966254337544936353461851882565894846997357025545508613610032955837171631426254344988352849774054147165045706015036783855068375894774761185566779530090452233973214285895290140947149449562184716123589304546314618953309112927024777425861867894372021412096269053125131432895353494911608972578335615283287339346016586184400015712248265898189518746218444393270624714134620883680901928463043135317329991220966296238519176976855978681208370320003966700878785780854370421274161469774781398576466525579807825554395597974454946211467168777266175189490914874292404521498554156136547577103439025939861245465296258650273339391894334940327844459617915529191720664712949716247824797330395638814655518263230014675570905720277790739900111791298481676736310618125310292235900920505249189918060206426729892667692490915776492639731036859921181077112921479358030587355461327448092151516545618705628430959376870792209201033956134921243137788468724297601462756635158430300819126174622909222590347881688431941587123026477754566307429982098900339339009839501855501975351736300798849152435329152637827367471313738558123319668331883651340283027664379970178247238722334719460725077658135089531705893935032058101613092725592080147288836411021401996833643720542858917586322880554774419567175064875464306989067317773495293231853964675991291433428036764726810522195631723400929677106402427582920069487402387963855751611559211101882901380742886610004894954298989047211821197419220742260621264894572072298357856392217534480086615515662259925271745640432266022390594973698960367266511223466201875317606377834654430197098405134963965313937757751224529983747767350787656656568338995486033797574991217178856828413791223274000860687182006584291899605323964129654235870056934067253008734232438769531086080440915792124526548734241246059781518512813400240419519451573763567888057388118930755845770229879843687892625485233241715589555216231813333792964589488681572581843824627375583809890424490607741161496228506262697511905738537675071584684878344249810697402034820104054096400453421102007824456083694729417942196264797319581636409069811051238154572248072266735132654027938986187145830904353815251738710737138183265283109521151048412013600724725344749608760747952889998701464128802706039228701690995568294907624877257719448860649574597196931516527801143537793415223764459538695697227827505612017089070602569091872595646338807059047926933504641556370318380565287262701476809213044419462113872386368509346791294513464006349916272885168677451989378614239295109032755763199964944710174706023573425947311497564587225062182379976597362894187094161210211665409815724708580276004897807255072768400344831708154288475113056637700073960921544603793062876027976176315700612235104385883510585093488836726923501193022208700589373139156515028259724725741546767684536964508114004762557677002664611745909094048643025192112544221713379588034671714156536522891775459547537129776802836920614387096299910452393057870198456355226823299375034191307290256364695674820381920333319347891414596903118116040328521146501446037141365049582120108210785282421406395940435222975345792293657937231776909208751140622771653276777489300699270236214315453536097102519401033183326651252945068039238742304049552858458905657706073919984460564486084251272345951378859690067265642487498119805556813996718743172642560211103934597471291193902448622304384361366442353775979281383769570231340622077806558604294900919479513643478361669113633450063057654005035533164962537947189645285804057970756670493301643508115313179768688245776708671567818089451072497128407699337507228256241896335461204547112482130354459791864323947888716377756649843595194431322359954605592670870120782194611937356005434272765709286107387434548658715532052065327046000822322091782950663202790238254141303493536156104654381675171609866968911323565147987032679739014356369760241705633031238572580756230238864367337774292589711659459260695110589543336831432426829006014057737779095338709572833287799667184031162013211764927213705544952948640284773810570445179689943783774033256647849092017667556343401877829166153139217569322596754292266551921277150319276895193582102788155463893419598616596144552418098679932239318405503475692523487974458633320675323273725670295097184047744802838853094137021203118910429526719329130848384103559795357458621874458200444127018438861069769585755951927917228926648207650985851359475242676679852190625947050171583051222285118960826279286796632986541473044544265417732295321182718482551987359616138995434769376667916545146029138280639172700975936087039273597379099244223887100921772034935999188331273133445634247214060720267305470914252443816554281834307022583966303944681385005644307213134233255856041848662770734779441414307191073385663192464883178111173908016483887824044855480718550662613861032880443222491171591624526552521282553722265381791538820353933350191517684632969394402460648414540005386766779379914442974878641251388435581215170941831673776295129297463426546436485973808056564641763003075062002147498523078709362433044318580936072055929577280817216411875644155069756645547534513013415834786065672194591483095721051750026003213995732823651836140777992495195458722442745596961962062012694485689034465212296752058981276839871272384387519168259846719698464645956781858841965412532887857081606375619966506469025837837652556785436463656636394325773201969492650909654839636673997948765548341349308368607809623235376682042292572613942671946322651425708444658626076848820935543171851082684705932451713384011762256273515301130247211121683778894283379613590405016749484338182344346024768469072894714658758317707780622125541476291328652426563847110336470269091088297752967410998990783828199426036738818096870090800578750650827473976505711430808857968955935141520409190628080318661407603453949374586512677154141227575173577693318524363619595617396571814829016400763240449286564118893521421323880150620049538509860650761107657288512250592900201261510379510130269681192169304361897857026810084468292456861091441224463596643048415271347356787764475204987517993931812086826371171369180160384571524152215744423548336425444426901578845521644824760467394514365024541924897925940340495195424902757135617062856263941324884535142703987998262503060015660462632462586802522686604801900664150886171915979593758431662625489445287069172308460768254661041440552557221165342183447087703334661632497049096146600464624522923633843226854478076105648350397017967800516099493573295806426782699373920658818417866813105784637231572236510113384029575202132050303450182707311345451051990972524455496550108648418582285113518826313553689225519731814678001055961441791828430435801218862336217404321856840537074581217400823450062948430473292751391681004207778331502446917527052691249420605800579101771025826438235922921357004002807328394165494912249448165208942955054514948604697175513646544061363661371127770020647578516399714641981089609946678243207566855674403977254260641355833169037165629083071155453389202284051789398116056296551341636164695252562844166182873025452122378588611615101180243617166593294188781833876569951598267582949411368112199311191959356433760342360357809956180427616948499232027118328621471717215721118952238577079161067751688954918060736114231583742899544944030996283283981933039130190756442887838641419757235804516007212350593799648922488015796433188361180617827862962076353767681950270455591706733156296659128121976075266024944309249981133545003088023380779891292069353137757682178799459217245649440460862706320841992450543038474118097376159430998053700882291952982920297260407516286335973332562714881068496160180257351425314733185656616464452315327270485487244389681970733469167200344737031808979265504530563717243903477752566293868072822964462329728912958447701149690865354219055450192795936910080544604770602538386192387576529834674364765219442557052931650353794865231058916994281563797661822216014378838888329389884157917333864668135993586792915023152339821608158957587018100743072803997668244102892072545058180156083688191592098255244440858139094351404958007569826464764525676302179686685660495445012341028344979760762110583969939856647601848984469378406173370192700092969374564802363445218610400825117723423085214215380971912234210780363602543067253953748225547375016374676054905995442879304341703615287464297857767519653905059768408872735812873123048247322192552105219358672854239781123931024826831915288195011584946883480803895405479353231211993369426891998941542739161911695848747093467623762108510410805261853409637492142838183224738460364880495526746468834212113032570704355809634023438288126091123965067249914976302754284042395482270943267341766972049252704137706121600881361368491958298371386422758421583727723642245020991836999622105127888167897586026657699635088498199102493039712270613952704067544400572226096459721349977345296194762815640946162042188861703584325946784936488059825193847212108841468556093836868922461139250031735169776601338834918718475143337025449738495045430496856050863649884186668278689647865937618683679198625888826638269538876281594945398470980597910109630450444588656999838793051847776130697007673133298263197889321054541061533396738230558745063209039945592189267332386927847162643272178192402597614254581781344917582197459642118050700974253895249821724938916281663712863431108432263731415851192594868511469402150941544741235804326526295271727071596161299717933429768080070164952411938370592996812709859465240659624261631697805459251976434892837438832012625660304114621719020891039508817494573299932932411317414580626694301870356353199178111902900770731839495590465555338152414684137273628987546718535425457903838635881786109254967008904019316086173722781877752836577184426620051818076978878976384318357473488416259341794336849849100675029498440210708572623150886102832362785565794709588850574921806159493076137831612355982165314938921019855904804145432043748429930915753788692972565473285186605549460621957719229837771652508819087687836276828179269842324793380765720510967380695738136834573278578244682824330945168613170562180759178583276058583355936631923005255371279165522808483537972576617589051717125865947711168657568275807496954033436717538319092940474522615020966084160511811817439933803298319327478353119893538375642250635569749446870716769918543513310494272554321784917530676135486072489389989478055977456086581010686095795700705771395423569286300188050956399963525163741381623053018105568857475108554460739955088164653456937265719498706275974426893870064819150472262888046605667645312175600381673871524586854046891470454906564031160435685852998360150303925984879716815447302320480365090950101748358067622537945448574943854404743188797829029603390683899989825893109285023362895663063975799159720380825708460310859947321531885311817339890762683593662789419769542091033664568264355118158156067124652279417296009484563987771590737000611719150022238434015118330067249538687840971693755734317268269418160161681068892675637694805439596141385651365755980224903526049621950578854463692192520280455997976725820200226031332346370816232012758439126966554996838582921852878084704409115410288073368754328779283547204328382803020866451654860081494868945252519087967387596060174121991415532685333306079413009644967423354140159081061648164297893547259594513750880960251186142043377327567350623766144742051762978031001834104766200328486081274973571814123137706726461207087620882526546230615276511563837095852937950871600855224887283045840262189173334782482103515931267842974673886893471549658437605165219978607538112885215438102525068979905883442822273522334370521300960537872157580241821176921409027117718179124789037017085595411323186183704224406685507506863540032668294005793553857768769792150353243207766349585050954957763444517604337825568944206521124335019013871158357714052065290564083588772467461149554348429064106362275085016046923661792349535402431395181130034226033331081642152172362998065686225485305354826637607566543953455279573485097646446879618638573636050233957439505981932765254601137933643538438955980321148288042391322712793063970998527086223954670713975358087090291083912971157686991304293120621819155523700840351159247921885203139542299076878025094576774654304806753010000099344466661495031956337324441323935869080708075585952820110554949708634145892503831017728669723715640837256423374554603836852200280661573478615649074101609539927175708716503269228349843067709836286479960167999122017142229301149415523779936776571061688080382720790583058076851877555123941461024672878093853031612712332890908237069729431026001483268995236733070042640300204484451969096682523072283326291094024896066361099337677432485951166217975528986390872551150582079650834193696929765097952547624612057160286648389641575412053722739518483781538367058739547331736657732504578875514394837481352753859158181516502251537146047802474223981375674263044160222442578148190690031024108167426745757737834426429625870016553509475533221864851581022013755055299884132751584193657081064763336246772673059056209796272731645743995868015337052974680491609004070117049041005085205862245128433278484707538229184276961689586663158945514891297028315851764662437656122574221848883102093611411606719569656260837107149269226960923488168779836032012109589523792696349899735236192445871590157784949166058537784935546836173435582863394757277559644295134384356424732015678442749541831959498327529296232590446280107069634549999565494194483914658426308195592680039594675982147047264810244370206243782248443775520897612246397477760122939062817076706512649439243742504954860597698908306520335572777289381532238675808527831270770186960307291543095682714902168197925643719951651453181544399256108662349258994119989174941802359224796559152010389505442901833570961239417950101267738861054302827951476203468520919082459744523300753820692647519121220240279153856361537137250725911655361990865486596048169872847446895141846881117321902826712365538613720416341944377538155691052916323634217141647147013638467070449074663791867505921321225035633436547293215561604816753635026674137731075978716795690657015292618887611557064709441839576011271356276784709713164659570364169808822772457147217715141228687255716283825210924099503216716416404059979876767028006025375764048566296491393503602209132524038473424288910836823140592036803336452380299239488374791055759496724079103032428768410271009374888928521811404863843754406414434060723311221092942636857669696002556413981123959906918061440251597567924485190231357313038577518251199387281352055589867823073164337378965427157506171530040498419775189562236239616872840622514626390618029975148605375957245565092595792490835860062298820346075667772564877588778742613605575504728722665279605605585230458753765637636147026383351876315566598694449325002977925298477941052005697589347849543404919792678361695344202959554026679997715820988185836005699002002625063544312592042704436926885474894738032392578456362037273154062416700303005259812276297796822185403470026882606801300013386117054874088331276669670158432674699802997116143181610618330428104718022790697294172806454405526167198109531074460825934807137846920587078950038712404478375668245442115184154828698996816340329399107488314156145869984418761804364874837378316935786845339048159783470097733726358098424580564629151720433994261851418000103721391562223715548316627529090367851485584055165700335145020523611487998078368726565214340954098371368416568647074692446375228297875892480854454538224705462272356578046647237179645296609157466742657394920683446037223681929072209638848208432860182602696111580592581389201131988957559357073279700084704775889605683107870960712997401684015524023481403750714049064328320060863694168792981986259469888307575800650324095327910212497944881480474631374053107312865923764810128970804523756985771116400973944387212571820586377588123142552723938965215613755840343170858126833656206900669504555489756619418154280371926682839360979555721719109977628383349543349572612086165673360955173738317125307621614000729040911356146678842935205492367729375622263707986819481843270722644024215770685490000641369359494385758551701804797217690469841022622393479838515458204539875331170119520967289095300456036979764736464364639961349977501916465905811845893166377469021179899264318325184186540991411295867100014680913446221975309180806804514116657329357454024562475193929437154242636605320847024168611496528423029378107910157641245141966384496585274809361882163082507964678158033785793363985066418102470760499251918796132584298274924184105546454934688899056890172464238361640564066661432585475093400012282325644591357506386962657429913895707440134723922659038090947568055022865905533478181291117924952593259910415789096553736693135521464127353609509943295524797285948594508555669716885266912906732265587570170198450978171858633462339550906492331085920601991428344100484609894363809637603240837706104692861505151209852133975379262093073130961488610557862695316195640955299546303031072346793831128432873565918771076533499131523993783400644312233683079522809551684550824123897223271845612300619186400095869696270060511348486491380698585189123478377403579607182398852133609509055590778175047338936059411753864580175168783834151246456536335762256004346879931621646095229976345943116569914639296994042759861100536292546615985891802697910127233475860673195277774059705706420878447827789558459286815817093466558683951048951097994404666057040186363221317751873329594437891038932689024413283427694688021772865426011684195672393378858105325580556913456713174723365612823511842805515095455608770956635083877907651020569638059717886443183845767588649300747132435061953087662445621918380682799898876311841460424226899641428956926723637198309071031348502241138513271790897080471974466296783906704253840069861490280373316099534650066437619725179981401502290007415063992170659962287683967260495126771686538648001246864751061570400595550153334954211005619457447471728986286805290185742738479121414752552319290968328896950436655632355432280960254962805296567262095944450750437316663495211779226253273053474698844575007100987404332552561556562744370402202078840677897789671998876256613724117772697642345066817245728761660840784527987150495421998165751429946018330369119577415022444631654152943635443199228657179970608966803429045251251097487809821843903278621039580687120370103965845824711349296490622045984372483161449652654003148624669542031950879586113898832542635137491413002343460955355589157932731611985844466638539972762969322075162763190172812969822504568785460355666752836200980399562804011766880623192692764096168307450262459941369182262658785158321194484771722335722640675694511662003239307743446600533568981973437561633504365942884619664036135835309459092992180711181145761762764170668680651514055263992587342845247536127110295091737796029263188357499842435263294522815014567814662514907626611960223054838054069472287982416718656489942356985268332888607917995977159386067187217482603381120542645694776720986488355935658901666759035804734169188572200378348458822254674979042215887306650617296848471103536290013344362303983101587155532673596603069452844740483346152042044756420352078580112585525470721469027083976966127913602526209399228974923393074083420299729979414820825553635701614907908539654203008449398856597878916808971427897610607370237077213332749110619309987369460046780520716213413737993429514379076703631909681382853786388039288279250286874435846475072437077187691079652649193465145821238912007243863189751676984340407672914129707896411644560747934170949290317530169956032750846302114774300544867979785083018316793857222487617090474119635796991874569255801371762414086336067009808159859053409896712054067593048431067067210677834818269392672343973341274764692390683004840908076987199495058473109604721204778514009243949777288791974847182020649690216275734612723165415317810899029620827497415894316309879274919640867833061467209317704049218236146916485405233404935093239800426951056277217710687537282225779338821169427935742987862195812660991485362914176938935232514504596528491816998224393581179246182068962730154509931491098111440289379888587273715732378439074570432764469700089883377248649475209411734739604395844857833312753849931569438891155867977174090246324510136619456843777235730337763718134850123497381212881306491108550007178898629448013565186845935167555416339040238899478560938826809505155318239729795204233905039927678073600950933734872521555937853405222645953794854584914025171428759990386984355233774634868983311072408086906021619160032428528654519444645702886845658017020374239516479786483381721236808597410301412966840666758435129435528733988963261851503629973763472799401225043305414792692301745146576429346016547036615121431489307829150951258604924959198626110243939912136179818870829228946698786519771298678172252867359228992347654676105986307687783151792187762578453727505127044604041545089016279517474978466581250481203417341585783466817910109757143377134642854559698581099219042212273251100563959101725304931260937713419536653534604724383687866531905389089012025818649063382832280087527208717582664640906657869216661142272191767188013972575000906355250081965464006817385068035116618031338517824936792580923940978957049526655454898274063349814952620651162678735785204160739303946755258578848689924110511474526356840598433517331951259537586754056467729321171111377215138543007375520245659315475939260466915278568057206074630438659669079514935994095379179089619252570834220783172609193637659131705867983982498631958033936341682163929047697896636374864063530112110739305420926111251110277560634808665949401999304026510683438023724136785143553653016222496090461337840013764431535200348396505661661267924018080751572006951215934102365912578482667982576250288458295782622700045844609888980291406504991394159127898632493904251512750710737195696504231252374142811989346525603302914441405815379048494208418035985517253889590744341080675955188369392710205275794434545185248902045678108384554930137371948345732753143423352135178603946874293394011380749276409243306322032296850250100666579703106488836681979614628176339193510115992964002442823936059857797495885601379256920395757417467313890404680441852113962599374392566243980035211265486565546359024755696159582126386772122663368310490463016376273799167295701350784976696294190041802445058086599364575263718475525323327014133242026069055525961212173211834458235015452784517101095289812521076409749651286102246233926111312144174487412009924085801044033137464604334976233871893192893587916637576328405295237769649356208379872057958600234345946909013489576404633262317312313968141123963731404648680361671570066386478724273150379749059692205738703946638119561336144705059205358558580931112343535693076249560698442456845772476277154334782265360206135159982121097344470459083953176332875704165283645962562577540304206275176380127318686205014602895587774008794713197488842547782711436628111237702169570033580834734721366208608535279118956864065645558038824218046244517271849555543284639104197025477500815558867526443332864811715278821363068775949673281260936122969871930848209823553345248669144497591803311392044276493950238388938542700943809231352955505812085325455144093336887231572364768398382591671970372638048409373869976070433196053617035649722870658885248834500401238083771771958269655612232263553328464848543824469489255600319747697508563031353735232790209850013889431031248524155614140867575032263567411643059753339158100495040352750562818901249518237111182476999843483640040262035812525237342168513161790553913895606626337004084668130991901885843816485811542785955828085849931613285571649711133031790058010257643821271097710059437295184098647080943316465612562466097242398656821672879597851822800818047913019404049281057283120208355909463196754129415267851398239674118064012084352279056600138876127229283203862807854603105626113213529322532142755614599909746713342551363902103130483274808408176416328815242690895148378539530555998196090552685344331468010671227694514460276548920413823689058664984184167644713180573155823840987840181361154137751308659496074375848636901125461270365882376850605047207142541133983150757819787897320456868135102817139880270923938539470950859344194980343938659743870308665541692690236061442181593609862826310185764862849026344472904316799664959641935728440668158093351476529061128256703703749811309570500423996817928292569774534360007870680003126192663313924640750374965406720879423429695552330847960853336518877281295851888321351591413392849047929848548429632780237596597065228462166761365742909318099868957256331061975600177583326395387681841111368073669064935968042062694825198528907811613592614586430133172012506891696076000568898125164804823650141933942186220907065356255892320810305631729686605334859580710132082191767520666192980679854879272895259189022650239596120707140824110675291629473368558297481389517464542984089324399088059021816009239703170913262159125281106778887769289832480207221573510501460982425569061785233284199118784137585999123743610083034336065297110353465526387994003122420659346480609749404048780451813114403489155473278256294781065459661723323998191212580535442151531458181198017984571743114489198697807987894604494878251228931909277596111717208809646510748949056818612420475000910057755735790226600025240150512837489713662058841613755470271771144005031145442941450374259952650851603957864955785231532847811092902834907526149539559926222681974286297951461336648633585311175482118027642562715054056229057867465763732088420652353141215326240095782078045628612253518116717600396107948264304070024719100931031776518984292075809731041138715800448122218602378456129406642883180598439379780355751410463165247883406710211880543484701991762353829393950848882772509068995494402758521734968876484117149534224874181518143889026264917990076717634137451291447324893015305019982632812034495557756144793451142862951856638067826121423576576066948568641066882634156988428084303365354252951304636203885354497472062690198957891914476598607615367298040640320249218785645118463410045125396578746668657987120442598265422661457810071949294297486791283722067209372654143909050929854470264232173337821070281931764074371082343591133330762184222214648099483980050065605612913530372044977447330083262419075115345981344875110715722360532570170339151944564874785046690333197470409491719879631290448442061193794061804384339725738224104466945431120539161514148314355555772822331048884181076610875462328204638300117256195932741386072624023863701009139917366187732536647391196564770515935291750550250144474795598451878712940652724947115280267768248572408905114447770069411770765862478068930358560038222789089298447556390462247085728711271470690613084235072764733176073038385643140805975605128476112961859056673439274730842369763724444390469724790120084860268389611813068408387147120950187241291144800966755707954028387776155226050873568905945693918554883665823702613779773519959551216071183248117369949333072519152050513424957589203119584253492073300462727715223430761740029290860099105893432216576415008486517131445470430413823087050548685692404913799113629376407293276784105604322194213593095892144575316541420129420474880543712208006832002948923288465783268536458786433984324533398116466656374170140025796030832612794607276732099725996003873961842171715178903308168399571223573220791103226018785827380822416157816530335892199408680029178863279661770683382183202840026610148876935329410243865198666776068432691127766212609810946611498395595156194616155147553862539254110518552208537500453618228317569616964481175068303122388061582197345289415213496643188336810417680393000403969004001268932766588916638168535605714436956179648678115421364769142028216121941008316073868669411016659823126528300541255549467377821385500697428657763424523607835620235167397520711929238170326425574398193498866256293732537122798478877119298244936007159605585355130451132705613145422962071412266542179415950314287707725081914123602323208497329814133225354287801660432172286111679712105950571603718744757017612233520071250224232504325878651682480941182522563849922091987767254110584514132921286078876270764592033591883912045449109058032366634754581844286619195141716928781155693888712613562275306034012109557508411792077885528422485242608034138461917449620659110895233267568840401571272755721227996937090614712833130785303211811540960820835402298296931526140159265973834041435119974737610794211505861224476298087012479626683537397701294061502883678480461771849491404939776248472568945127510966250916008327944309053812362678792749351240098636980254082668072717379005968022418698613959844447544593793156851817213782588249260571990968074136783467220974958053566214857247175084739598145345036491408604695473658428679865012782411101570486990138400931267658011139632765461410996765620286031855925771674106956440536029194800429903972737503162399610466002564898721428872990446001181389053259880279893471520390080419734568542477594278176846081557450197661068819117076675653997701661583009173783809425409407958137124721512822904971089764144076961258458061427421825654684216509253451589805391348394467876802112262546102150386858393774036960405945708108170480038257834045401693088221158869772631661502725688820183312392770357439250764570743687640101000689626064091937912105199553825317421125312876080785547017423812804671639316452239131969516391176427761431477400068585742642790076864442385304189533549314943658559856908194205392189463516025677234892785869453051969466096470840300380819615712695837554528274681329458356731219535797941570171002394246418574962770075713660756097588604690349410675939612623780565327433545493876711272838712163062202102026682394506965094967241163197741630896909109217177174881762389444185655817370890942562601410276722849781764834365435900177623524457392333470912272747168393351220871231262692851663326523706514907857204731481493691720077947830703518898641606924236364879741576877928863993404146589496328555063096758678397129912930283566648187377873036642047260482466551161651595746568804460129052650797785952273889161995760226490531759536162689334912822515430179055016398065954521341457945869895382893680296614424361150191623171588782021111141834219679194924696340460166853338353378749105131860183478658515659484944603282675715599396278046633183498508602704434662041116801179722741781522508865169679916379478575332804868055382529140644060705902075571325233938586137037737347528071375760699302214659882723764382043278578867080328263202228063263500281125206845720775628021898303558285538346100542747675201449503652265306538430286061418115256930251681816490800571731819659947427915318337106428341030017235566916511698935563102745084185044938850221715971040516220222847957811992205988714135921477889340970558912072925396342388801915551891360258903881481465093084154316375054662728111188389157249455680552417751617262839961765468004106451693605645409425741693029447208348669024452021401199439057963307130496076025100867094514591639008342030437712654351978091321986624369106189263429473750279775847337836158731939218014691779501454234117446867334630206070391715127559590497649662876357454837019628512795712391812582476419033566614166102551287387531626339502808022600848317427242084465462611600031227507581761109942928784556066805473374438866724363748779812448380656408890751644388596073947293471467928362470146200421416613433837091524374544401010217473202306447438361452197264108352207396838913922223621361608376308451575092711932934516212886767739593981873094303276705802402560642444704809191867737091075628422226182904636625688988320725074666300768871494865296359186272943792769279570067581618890678151704521023887055838459909724024632893153672863590985384854512472323980664305878074214742721568320380865157198513338285718921645074327725031610690562713985188572909434224644799521411598769028622244471698830903308267145379660520468125319522192005307170952961976535744762385940012266192396523728898639757643212889135221896819991879609202273492975380054135822665819196937876544689110392560641036219771772046268471138388445478733593558881321308490432654957915179061391279251863511895401100371828248384580395778859467483020817821147798455852598442790873367425038353334247168844739191638225518882589140798948567282459550958598106374285262126871423547425638186445085133574798158370014172345445062075948127848066427558619369596539052448039206174750131069357398934893216972178023016777255345397469742388772893727651443750919914085425605846178260022758249717548105115279436665097913521193716749718850898016327240929938350259768699663407173799200657990882727950317856300842148885445951532867422272695277453411575482139525572797149724655670010178659682605665850875683288062609710816103325630348844438234303176516687709981981933150302491026823828073187931295592105336086684733708399909303670271572074838310523905117876435355966985792701667205540900931612678338800775735273586464967634147988118819953551644963756913083662308082683064509523859682188499815722891937551485998219825906399473416729967090670903960835502639513793316887678463385630520954954041855286229753865247537417649279642811093939530058877784051934045730426691961720649580906746977548576129187249517803312445560464369237682710638868109529053555074381899114689166044557063038916959137753447590095571860864864608261354886836298965818404695928062214753492193885365160790785894474654733724189436232980135396323363890448847305576707726048712078286685371409992995546926076544134315346221475592461644936285669341168775017073013132655539751794902673679394264702447483375336118991093696599746139521140956242099118217556696094428497292069613530631135936874080932349618229539406115612196264769727643797486155115841606041905648364108758765231096949908883317403786603199280079638770701797076014593339035762037688960918292887352985583297272900342109908375662079085789681688750089440586198115307781147984344961674947198091676984848710072957109913527582958957157206595079886018570745245265848033474820007494512145904339576817531101548126948218485438889142330705063851067597986041814023954586771233659009063938664469500842550417597987290054949612814895558323575935129214882833592097406039644799069726139394930552844458323596219249970911285826328158093989655442827975570210354015620628753060729927937846950746036766641726337131501682056292389107090075724637149583154856594265749441954606189896119250251203189980566116046451024880965757849575036360027322346392977725074452818167407171615569370121855917198090007682870705515778393257179110002240264908476840213634251813668133043028422093770033183544056109275596860041000859056399534493765107708936967842634319319832974825599120652652009575269527067374916950470796504060127504691325794273809472280857753560058375316838095420718033152387184896536765350410017444838100516357605678149720585116222603668598286333628209947828131164301360662151542016721303625206278316910094622754554013853392092219081667068092567371368115175696753775799214781841534240301003712218979714994126108938399950511692410718163238118916341435126244681608477976851230714319993898108096940742483245246179750460966393543924585645333201592002111139845847013809590819318466063446992308315592647554535875872241599854546223126829880929167460725322367107643639152910139924224392351494096993289643217859925720086180367934801398165369735263342662686255254571219400417105756087326801965279676052099292637954706120635768091549681213442957535263480454513918137632103020213275202605909333440270843262384956309771679058828580031560613985516721444016761482096395866170181503959855852374997976091002385022515209706709280026648884007076223467193383169106194453130506568642341601891333009184430231901949345363008937790419627354967084199486916194949701746458448917478024384045436613556490429132995745744560197783211245853926128254847277726539874740928686774620109654895913748424390896420165612061240330496533820003516868106556427180430047800968680158060435902000595873849504845441282085568255841256378213698655921022649503478362334450625970208811490332683267486873483512060574681646782075359046899229854367772378433022636723564388623352652190900341722579057872948231634744460337557317185370631007079265063735754310413241547045609718764991271209577632014440004677403771792551863607222690323098930708355903098331485720842581627450985678214866224036622830157028618993148398587081373945410752198347981048923014447408587553409767581703488578535447961406932761582036246921826711602365742958774307995047496487155109620678816178413269500816869967750191326664302106656385201965738232316017442297594270231389314717310785800249094406543787994967626088869074791891688737678814308100958090203219401775569269857126148018782640724542831085105917561207214342316675894458989427369781532857518982999042274000920554932566849442682339165003154662437679694767152218762025090873307960610645821775947147588358657477981329687380242192316804955276976882743707624080504253897104958436251329273609103908348630054318458154223352744937885740614891517443678060864659079523211769878751731258983069846811238946216600034494409524317997893362492475247019861801229886062996619401589643138544909477329436206943241856312434990651761486390975155148811287864077693022615148552468824785881445422685883480801673968264442663979748765499450934693922309600442690512082251339820253023910057902190371023980613655693200638038785721352795942894970512851135537847264782771335358855747502588137038410428341299539147504353874615709695241984699104479116923509657929332887344943439656345272041941567031009280922076944520568420105641965698775188785320484185269121831789431457121721967414103372291240669207008830199312155777850235297288551343603030550600861336706741040241683975443012446228662835638305482460961098833274255727983425825867646115599275677956844040081100617335965416803685586422893243102839524082330851197075623144715912362896162449898849979281926618932549702868594932685907567080962411538317656836326135188389991217024841254440353361759876226239657813067172670508758474401816163182316136688047754240634591185081093198983755677876158406078246502164129836701310009036503586568333378738900408374553835778943384630562466021038871960049913033130269138073898054836019688306350380118235843033648171403784995776383142438091216331973502897586909110200461082695644263243903503464487126104442360776703604456881335026631126426403961242012149841230743302517741733902311822378324651405003662958619836226019584489524204907088131957381549546349157355975935074306231724917845687141348749548723989022874797800187820969696354718856596611108650343744698250630176431245207307322933207059472777573151644005278602540373056579657602181393163655096773714190923414720277477667459631233191447226032768348920975884036624712050450079480363512991699051335459777886386753328368544061951404893800824950077600384571975432310109407193288730191951325327548981167678470299761078814673651878114956687392444449396614733638799852980443828575347091980240437434839258630843442407073862417415224716057528760264161428851947900076851672648969832514530683954227523510196992280051055101467476425386223490897326705956574368615570602683905844951174363411261860313242586746913692448559863870755083233784393022043932872666934879239818114312569359717938949629803973914694758133132758015244091263137575115256004812302141897827148662606250649453287589230470404075557529503414671282256630033404007181490816071979735043828267660979161015396716775722827721702826108899471691279974225544298603046603756178835353960064418317605715778366651610586952831231314640424879783157199016508767533680035357275765059942845624927038653167597721757630092107927077301425432551994084004383782781168630696564768686262459958013326668642067575242848001573375349194469152782858105425380553148947324731438874485417509426170601311151176546571750771193271138077211650708932966396854699175132111377069132490701220174637758103079312407271541059549663629105768597381454432074046440078535787552014458709213112991334897539390876632563958267269051507292199541360563944926813625275080777152172903768975848215122504626585256481220462398100799001773518929286843655846820199143651141511200658975157502594958906223385871013296579232380854223077814702512386341197972746606765156421038028849418983088613211260325257924218855975393712718112874934182207660414388620647819717093593180379848123208553690780354429611973031466963461722703774381904456616321268273389796206997598652441307244827165163784459279188492667132793814633171496850046196646911529189871082574383936504126025062869231971151041012890773888285175210114515721607597973081938864306739518397970264570976739005827463547053418780764444930520371603289042890561472814228720683110885770246050597272990294114928838535494062080445152825955384030157593601403489492169971927027067175560384404764548022462749515886892774773235263020211841636749318957814694621384668949376417386450291211063427229280215515402911236006743141718969222585381406395934237383019576127037843897593897105984674148083040588697925781210285450659088625117311077405398406904129141241096461752022020020714957707696815972675969766384792343501164502428445119890219249607674381592216002994072599501509297385086411845078778643628313873948765378942228065351950592222016606598381939339978562832700006995600161259973825603532878090644145524237911696703285930708445008542599209179678078537757447556390210204149212495371540706918959067308818253725560275805475087289968397299971108300500469659359693285470662017371925023314716817983860873196098494696683310532855391844888090227789741612508712146932222488569794101449658068606885405017952827543838439772272674418621935211162999481696075573075587352361040407892695192790843472355588104361260580107466647683545916414911173177997421952478044022008103356903110437666952109103290999374527403658554811139358108248883583843978312351738802656480402592416690570094956139937218683935425620380456119044056208882679906558467017649613742392959137014178172357211050305595197616784956217144071829021252057961991452537508465845438744046393181593047309997970171968786912339342007435977086552837511416966530711127615567202956035562201639624807577227988903661842266062379292098847981444955146134765163704034594759936000504764456293971821234849669004684525175861913051466023136077873611077995905373622325548816180753994870714317443748425171926690431594467089000390834219083615863480837327822286824804759236431499970389687172202013824124843710589146761072976834158777295377949533454071061390277334931628089312560484126014138433951232300508162856015974013407699117957623618903638791059175160770132532491064181871967696520016469752666795404470279100560631105672800023706890601691881786540274602644428246633685402662737646927323847888689226603137885468881874562910853907190363126095550694457803739084096134233085695369317470589656402840414797178929138003178710891383526429715561010407451922665835791225610196351836671578041761894457843915107313885868446471775481312818149380120954797581220516437361075910713899283153397815145702806610111947653979221959030234957335698618530916815882337684205274960969489550869073998432642030485333639905072820590807463568070445000311712810856580973774854443293826356086987740981882622100503298893703478057160728885304403801850731398235765944336001364334772921268053161169741947551493392266713627220109920364960372393504574180276680626566406623160137782211358982625875506986402829362078017200062702599059147507324701343498582020070106568014235213233206300039957023802196873091719708495781665709015389575573253265924830745927553773565986347542634121042463700009957738515231869334508414192681527923056719695661544371546944572210223083672225806380898332624141413469844218101412801432492776999659950201994560095964038562156878639982471721950398554909797728150264781880600805374206351767963777180255963881667779453100418337781864293361553093406825400825369228059493234332618384987693126230833999203212080504835510266575539841555888933647010028933392553133364187934532359867074237715934855741931813322089198973025069055654365493028915717955029255120780247552468879937982108741355433327853087117322952169635444510212999619966903680256609210827141476016309945802450884836413645088405035154690355801243332831183164399063754887647910002758669903825499852444916642712526726157517164896083765464005384742895878845663210438915772937630187067415866062040874199451432055811150567143587276105951805495223000884429763931606263137077434597314406475487445106608706737048941200754337844138983814682368911363769356155160465153631679932672827750442593782652391037165842561708649384333907402847678143356675478565796754021008963221362392061879198814362445210253925549234397404736523048659686595957578433856127463824993927935620523517481817759742622867752829038908267346569561692093041988149561920994602609709495819961821259308469754890443457383945169699139555822120317752927533183609979036311103301116221346124690193464226496599216006957836720852347790221404716497160558937607587004366522435874178369852408708743046588186292391313359208954964504600636376347718900424943552564837001363818218679132980878865765172001693374623220960782244128840322654861883058305647920692483932631146084633197509243084622120514241649212921687134685084920260932357365716677984964654044482474394577941189798406240761771841063652460427222041306342121242776556915428911344411357815120778573251395745745438702643398952199191544751969320065897408500634548346119571772381854372731245026230471650256447164623882098715706955294633731814709163900039132054001081762441774575053399513230723201109337416710906694685183785238162248283214871055620682736106773271977707862289229973399601998943269654056823331974876274698791422062903599528814582490326477449668158717404756021981809373053748402629471994243577880566630603926797297300864820689294949480751136233099991993986740868599607107351417737331953498351067815110345049154128230846162674446264137940311289398051824119885261202353299843399008644660978081372516792375804920330702766648050298713421849348566840331076601976756105085764083423108959384971392886956948917678695241795394386723237228041028347861736031046277222851171495545236171245928262193484386692654301226585169612276301908996767155272957966969449165995692770838531361553650690930136918110479475314043162518341979708442352084974044564174786846482305168831990913228362056314083081564357940139693021195695004691996669390100497660678093966879403822494827892357862915648890008742547042410795812521871841862273127648196530592571502479375309652476498201755505603235037197520896573978659100353268167174168255878828225809378106928142392426273564902982841792492611040898486167437948006689130713719288323898355060409664666443518728691521686190242566467530139689029525394821595557077712446455296517492922105373277081353084728183953732730355009357822815819349501778115803600589442017913860482367946240109171017146580338752281459536591187497807008798354497408762832039111253015581324186491995513086053941707816089667292992127945514302745448106017246024921074772020765062470333643397658598571913275388860652613714108688229981890726625263368970562940446542013093234208628886628258025949926134432685484521019123593486806659833005769729285781265196909068218995524448689762992732403396327364352484965569193801439325986282507705452822916883433242873397871497968342726811546777081051816984840082948228127698651659332360928291434559093924715132247520571129236073668286787470886434529142687523613470030019761024745474046672570883886613274064836079325936314965437054770625863837986279195554719293069372477575773556984205702384880814663134573494355260831323926625015499816669557029657600672328924044106004394055528730702757044767546165918638048678512883774955399368397330450818782678234151268466911621681285595366000017576512682226804771752759827490610901070855954123995955900802828090752609475351296163641975857598820445162187118216327453933759212617252726260697044667906530211768050424757022323706129829523214310588496605880335978343871682120835464082435837803667359542106344581024602857491170116303486584541868845217608609559287555635300527438984681282102716602716778314272392991040403276960750405175327444818932756870816725858619886185436605042414240230803337208725154045564678815603983761842722371249578223749291037930655923651442670470035384123936306135066310284214957200407431324702991407642774436034690509009669433163401587963242760870331356799465738777679707709402376180755798806034311438988680633772666225506972792728479776368967859582416038034563922087814460800066303117646588564260504087979923017167199483468387598360683624185131556835293000530285566102607204312378954340396309755690804787727371854808423372125830972362692652992493698134857911655938815433166010512665369440463634211828602580530380278521723857184557281444999018162145535120740745954022365196464798003596509318213807415554202823808399878317186795483413697197323191210099191311203843676674124295933962133596551563557410392760834631506396037704833501769090901961457105000218803239699822754464502956813094939601913872719571604811966417203281737033215283510516211432996429591203284633522300876220020954944015767352586537859824031379309777843212859046943859070465667741074988612983221082110942644947169160346930403357841247514571512069375922130127280783504304058640203038077944156536662095725430667775446615073058859834112147338923729342641519232815480822211322712428824540825819802976112910111735482969972862840852181908345650101029909366463271435659184857633874831367012131857010777646791706749019829070802791780013433272611182014833012877816302436729563972585637161332673002452715382627091380343784813061871621278498407931748754459867898894083986158783499516005600657627301161480010736336894982885176080585246187977968226795917773253095245667036704642199284708940559643770609399999443537173332351700656309988168670626707509450269342874890860803483670496653191715824654345155099239125389188840917126049704584378455205916766872550482225796818012672180204605510166722729282536989865458791540733871742630939168933188534384617457395430246469574928001745161482596442004691782804915745712892320001510271877846678200608201208564394064329455666336926665323707112636442630747013259270053057792999737383878651991802763452945863702694867137219640935800163822318481271257976142872956743606850632637081538784618987543154562015826923297835110759383323348724272963598457137906726219485715329287433457926153041408234410652689121986327083542327689934169943933041402849302941290643167535472799594430309955555065933009552576838037118628989957226272745339312024632877512276084872992894735333756477831347115656729678868535360141010611782021528321763257788001932475381108295641731568327471032956023984515714767134536405549445524013480772414011882310759356869617095337969465125550516143620551130278384013570056493237794749070321127958620366103250451064485324059364378380914541962007330277072817578217341418352535753384908099662128469048001334730009527841442893667794724373118703245270607999562089881952195870929590023669913921668997585432808228776400030720371816655937460206346935548872439449027746249787742667365790120235406787086640848311361566400754268326908343671033354109768086615960372444469434951242129533285366621169323952811946103692856819864510884449684641924922646508500389883415650509002664909668347043118813168000029064792249873026209389535561123775339607771336378186704098845134983107786449801905192039743519028093915314228704391363833779232310151251767132146172806568636104892638050867991879597790404763847133028913318483374815184850960309354763788347240314990791513991074286885301636020010562340708363512500327926503971716017919831379190164578589034319869968057736427535918443002292094104329090690318029949214918075126723161184170901268850691355624976463137661260101430949617755646356001802875640143840837918271427401895876296229553915540052548631850452645871335248198232166225534818833265678340845169680564469638144109799447665515184693087085253537468111519661554529824960425840949497105880735676794047575789105960685151362160432347225140226324702561638736072107803974754545545258439916221464233364388408390709601775529778564151187229966585303800702338340638231016778300541838561371206571197079933712069284227893759890425554725476447887927334117333057324523442736882067275040067446266619943760527025444192904152943239712552467752550783602459738526742875279756395530318293903189193726128438109002542018438683992493213236586211657276475210275071099678911509242874159265763879738477601033163876062449691690026727867719652341863628642865006777721041160916289836510233455127579804614373541441204896912423542392952448595874598234086215978355527975977164245846571855632909102134587846274294527617365729379654228483827894906463910681370714432578175341630125033702671472768109276904748459713168199311945159283417739884655335041028110807697655850904615213387154539847746012270999973279282444002120582419126689279352060081119020309141617323494096665657151437513281913790066600509791932766942965295112264027388055756910398200738716908403639581276863648454485368408471573396656853163357799124961844123229203994023698107931958392443671904465437585925599603017701314157113001712399659436351595998926759517262444419979354377425740595545389303550150307026711994046447617173432651376894378184592229313428719882068543641862149589852776040728792213786366114311045720285483926114627356082871793165223806874088948390847651618345992271573912948332757557508211442597992236648769266680265397776805877032192139152395409398276862960060807320155027626167970486470593359626129107751352267721887614110021849609859084051651636923826723366836680095566771340560624312997332174668119825976975207519959752734818643270038874620064475379160317663115631881873917615821923553311583984509175851476524357748340757415545068621081496681237008211723920424048624918427088170393829255375736707334758987044766334585428173980432813360390245858947238080810442635423720838487215206033052306698305395494365312524082895787050612053041347175968795014063614088092718081981916429088333443947138237985872498090822023020682393007729213106793998992061904062825455891935405756642642735207002135918235228368094261776903802704350082694958787652348308656275803312331136877283656599992381312970671954312439344162659722024700090362284392233609146664331604280212680915514650256707978910173001265036035628373170247204560078446821268380228168697894228801588026150090934626003613288777237645200631601398359277186593713178581197505033569944261369890832607608636811611547350224927684245510110903937237003241680169663164986926206605125370669481928129807576755298987807595742837246307655520267072199233730937538500615034074124142564372331568771606555272304553220216799351985287126881353149711932205820502660789125897870208298168132201433361058743287269132372411121601015945196961899061444033839963075842676443936625002973172432365724736666380107206172326445608192793973843570911594079812097796351140243277604560863635741656321860925815707624213276240747326794171844536809553979992371984969363871761947380852328868677281941832508389746013498123141478687264542548193489783639753037798413883049291841173585487324935475925717600144755223835972128678265549179339913777580343760128040962497513650821167893427484495296182617786637450640571309541474171734361065024743023634488074346796884490137545359849991248972179234489458183186463605270657796174776720476428857420418504184026107524484806164572484465327460249272919163755826202407522787242960000741477524840551298839984586938626429585163136201156323697942126603965701561512310841744010035410588123142972225700037539129314466310567802178925601544118673530668136379806619303266318670520707066121456363693552021190913753324145480652342216747818400998340668653269848156904966291648501852135604704853836998946644659772226207166944126111844066163768101912923837568699328434553661788751385801880536868807478298713061663646950667248341441734154740075005084808155926144683971386043257668506819282770555084218017201850548266789820075230975260363732491682312675620668116255155929910522702881839302386539061577660858671249321259082221851876005996766195321303897458922940486849323789583586167033249460491983529744389606831100982693628861898113312511385074583095797296278777502571488196491724066445276264149748418663482026911543296178674987850466677590122438870823796183143807837077992446159113055217840206374523081635993997491973119751565858351729784870186698358298537740355027101691607697668648856301171543575257684984241611069147495745321984762259542396183401502816560664268082703374915395362880458333612628630292533315889157317655119836459927412371413789237015591558857919754128050810460439920193882403716953878508059060076468883190270041665539290899473250211770218356150541457171745445152500618638118665153672474350608534601609766009196238889063148134638763944214674401885653015149418108157527234976505362024498220165023089778577282010074251065935834703663072416296948041579685223568256479147199583528928663037067547320891647801832066064847940651993199150911957552672787927423975562557797655195992463974844578100982696351534740473995888470042795419531935276032159223355164406203141681874550864155332667063046858040748494272628392237714063287110356037004421933291117024678791631512817140746582897566261927847302044476128188079512128049288847996403985856002623358703250224441847257105675573216436693390741216465538103714947031756487292725192966527808473041445773491669714507918772951754342433195285002118578446765230159727350290738107587042383614095840916683861235131788372463332891001988942297164193062028231906283577470568855492955031044491304782465876515096552090442558589816123228349335790080388128079180930550995362904241874321747517958389021534593933890191691431333825058300996218498488317368002978732924047680493225425257748254795832288499374839074033247394405059665195487255128028615214502006246503245489413847646605380651617104098060110721430087962446856055807217586380541859758564483931880739807305418616652287485380825626244727893689630741816508985104256124162298900288727695605899882974877894859562636369481427617162167395003426994349733086397255288490935654960498920622900312935049514011637976569641354720808429142853063216817596215270751589808944216909224805319646210253337120251717228077240147231633762464969343105158516265754688979350121180383592180934146480153292876563902637811097974233807696897659959874990014785313248418250131008965894306126610035791970650200840790716091589889501340740373987769475359214047411807034159305961870235830292066913032605169715276819246271787389711491990819781710843162641760080370232161550826296859183812488290494345107291543345710323787845851687601506786697505422514236840678749591264409745939767431499268464053458548878828814795163414735088440188529669074419056730653352256314213630048144741419595853090702963289669440975809026467416756460712508981354531829946552953078413382704800393398056000711493856328185218279356811370668444617547941303549403109942911587898784898889773890456461608183284218772260703212386091919768111643878985588161877107031198751511948756658918060273939660750740473377424018025112219930506645272558318747840516799603150493756109939765145881440982761614378078994753695944692232724356911802057861717643513881463312392932121834810686440696955843425042755218537341054196199752816845940929412854760929991166635342997400669648275530029516082861210953132726630932396093446088915265021574125102647497331466527873116777728806338728468242973582973426796232763711265589560529540951383072493706669003071269307732413982356921991593381880875817936525964087881922678404510190734626865619394387426529046426958132430987302331361188008784889532757511302767350726424604617196550867662865880188537521361859963855204878618820277441580092110297807156452025146592345380979022207117568802626480233919961272545667818989943069145548554522540913808911639002056211637587838731169781259502346257284181555109874787347041665400071827605919459186944924617306663644242575103601292823467216412170316714233730599056243589266354267408420512593048009483453943611976635276894853554464932683152190099219834916495226036335364417088080511534634761516672397582809100434411159909528661922242582900194878715511404304879526689544382430050616427469699854981306942696816863330025652404089332528324075730547941949254364705355681424667883488865067070834609483973621788102550505573114489866632072870307505173764890541192341345609806065894648909941616639855466644336395871265834575464569949644121162317753689448439178951577121380131214828344103104650243324216455099725155492319070545353619173880425489979087264964872637452170550494100210945543939511485458418606314914296529397158430484980370111501213024850069154962677484359574869802889572525151766903019893515444194317091136750553093153622762477407618015876406097836052522184973993943717512737424676373518564784758299288276492591745602652238979270909526956857701480247921155727412052059099186795734473562263217603175331407742568698972551223877741050521973442729783706816000086341601035742564160726565208147491343911810939229828829368169478741580869395474217825666343025409132644523689001517991542074956807956291770674285897646558954300222409427018798404307690163345246517111847934619875296925429112369912365921333449495332798101704560149684496515350768570299378957177470472035279852894420557808798157588681739442824985475602842556150835643720448339635476926681397419751786075866699488267836381337693842885754805765817055870428053071125480125160087494774043116296514869524543476056136410866598518033025407208929331512574669399906664589398013414138261335965230537881812233045315269673781727539829478385594600635167227177091580093732336445295708925663495614429828806907836506380401114090038768152805670647147253430502566618286848566835780916714677631031837482915750647293574997603897346308856921147654653739587508442616031926932957655255387427612182880044569362669550538444892088390283952679077734202620126202936356373409251896302765852721600232671709497895560875997754439002642272666612837185332710700544067461720805669626730337299880443827193192862445519663013177734067463642877536315722174940132338171340047804489962260146747611177007987943208758440707584841166408376878679647880584807789725639354178590534809442968307319625475516218688625479241254141916122653012104618034892655877275191792945984123208192405858162596829886775883991918789688285652038832610924445291341875932495793693054190699455078524101091812148348780970359003598579999272639355910740265910853578439576006507469832346237439910129701166463400850658251962905311080381709660310999742082773849107403331688600945274078277909261152287123953620266407567228023144824676273064237090503816862134800091011369505772389102409632532411636074614707376734812040087003809619974566935202521383329267001297801963100194797913304357285441821549632435066048376832176690579627370244497482291932358459525897337187528109265784709218798242620234388610908758261934598601447391367742410939293970014589985510189914718741919096492866727664657930140565882380893374992566116834641615708539775474590826745089947396719520228043816431252913097344479517834152224004588268176699374188865161921785160526752463199763804044901440925521420223551406604243619076199602760141969202466722150821965469344045736656097808778452060624427361951764510621087472605997550516484878303734111559957091265842893613884102169002252850443865726697822357661623940116470543835686431264851549786460307101780114486620550596722472068959178713052846409901246294757874225091149455892847744550120991390695028205675096907498873109780422966859549651985439696700762354863533281486555415125012476929066981545771645594390469725572588955001956562764445546940595148992180033855306285691356790208895475110099863345507752058612812410355287212416068885356440742834443766604544665168632727078975327817790660703899554621846361140449350325028518673997615841221591175240827878679118020836285819691159516773190820894217861657474570995867902585676595563581491208506268333040077070871649971041297198163448061354535352573742672851360065236320006193560538437995185163676235386436694518871133790079502683019189616298685267675520751310806851857410454973177441772686025848102965958022350083361882480186545991003649505742810844910508608405683124538282945021613508949186034044204462231062588942056825488143923054154274978628329283178714000745804823013736511233648365778144468418549150801589571423750106949046163995890069551252452785366742797104123666231418078144726411339695669776909393008043946426953438325961167550255118006058895942602623492718432885506942850180809987833789724975445892688167567071661467673544517296009151310193354408938215680618486925651382131030270403802897185629634175251482898977193138177660226777030812108047604591423308969741045442722918677142471234306449542336914785291034391936141180202284789846901573044120591142224057669602647665264264372417784731065071393825163941469595320746136015874460089051966361254165321343983854230670564369754701500197349614607689903730051241830938553958217709236058513467099396226333137051987628476379030967633673100864739933241819193174988850333048884556732992347320875665230573051375896403222973228293675593025275977170968025757599912148588107912963229138605689478531905742229328116983584052615371512287093833256369526095440958828756551924248183002480297455824181395519928507121513516055613393998658780956429030868067601271661036203640153540865273930737416171276944591068640517942372031937192010863860190201181491206727307700094080576221448651961049902317972812821624498697540229119528993824383255829410189467304860455222666261888732950649461609536970631763552993106103652045094847758153081064018252127468303172658343657077473267456087507192233854283625446152978900003031650114384430083918904094006681024743468077144332189117402263175202499753553441428766271053947905719023735971705140081980605645346214519781313799176997795831538455334339671981018842803814713950423569926903229139146196498287078763386324702768626457104563510182406554647758323176224592426268666388095529001782662449641253487126160690584254474600980378949961819543984578279283327700723167763879416605600635998196072398562050018188685046077472227370879849646654837223125918315193109943940276899463561659693699914416996637030726984505478015962794613255756345663446717032786885927133494098039235068250406266263581857192163130293355051595094631857632928684281663237504313230159811228806099571110912910334715902272205861186886484611906776590363180662018361614462302947619819159919700354994404561331982267297778169003782479776367296776573347797092501764015898597096980871081820884993465195919030979381361057062467771988842115287944291057186024566370671989904903969929894969029446830252390860288789214439629302593453615200126430650722263322613122615936471387276660539184936804088692556601931094005495052388505378248609274578981922426001293864939183818933102465030111670889861102894615001966144182035310724687052841142867931351411235707890505845023340727434393109444460365894395696573960435454069053192268752960446857112784491869361485182623138483664009380996686879758744869876020905425478414697072799106609252512432618936302540961734483471151814832995706746483340814208590702565002048824348629386597595341365432372440721946647100369816727262868356282032309637818063246209193751144051142281297415502020408777382415913384927615182632504653251447158703898319743698169419666038775758332472861103102526059691164331105934143923734666353981860831771660609242687649262057886680158874020397933648589050234220361601547501677142754044428631999937769114110829647189423254842474236889769733944634810294408200209158972062269981488930292514621813339341868425846517217247838867844441008931689898443759726504128433604427149333876255549528613274664868597683839533822883845021570028016003572459084609327866753674773786510472135400228898147091016878469318475798831979034249951413970914213631997139643385184272797849663876985601626178008214902175114016268205337404260638459556099100389561014448991059367657281582038863209206540028900136001087945398946839737435327712840988282779706508087920723452950653097345287234210186397947258360621434011768014645979165567489075497040970896121879143815015358531735402338244821156779150224616622697532710468398924220159271087080398915267919933719645975507016827808760718372230724336895944264110758723932170763785395957832254850297074202044508916066426699412332138689693165790129799580009052638705928597532351247714095150646018055083143688038577446887373192667713139361925095474229067765879962584312523132791505219712152539240506431267554670961279311531665603023195705997768568950031438576483795966579486692663820104184537989365738626161896630280647556544572396121493328500300454100178578229626248142483865497828785684896775968450970386612616143365027541153330519868190179493770337172701585781192497646776454848141742436459937090008426787389125244551681658951468003992452010085960102535742427047847224245323807598009793074707140705485874578857246155632984693321616112669890056889279906792851352116169051086039106852172492762729957769182341701848948350170594537211575308893839334508635629401839710312708597491815399150693201860870940152764349144069129042636164526797729757131918176842280783437840904039696971418124179076028761185133876402821479333851376943193957159943912157126008848351310228407071810997736245853698279448938897016178918672172429560819908737888888061390578943938466107003196722779235831266886697142886478639490829813215291955624756812049749455049114187448878342557884273283215054666968339502772906046910240472354214956412444025079102785990714445996107813718188304487577212787230719168702304139732963601683243457077229764417954660265793717895180504486112741339987329099651570962422056178907171263940789292444647950731146488869241208772435990714180256208191678439894692040004740935097437748395910648119177309249355393341541968147453382306038515938679642886677614431440975931395262878303374894996636894115799465326215431840041724876301222630167725231165675084306340232092013541992001821267280373954361425658484757607086956400395063763241386993691832126361709298757045652795960523798533969315303860860165976107575449084132526795193851178502296422442760317137663947780591727771226474790378261028054421746083018845051835354402329593044060882537639574555484027896185778133884397420817148489443620570190063198196879494169964366028427500881976115534609684006365059493544335440649184404626836728717730677742861587411095057459168549678529628671862232034462330491241178138852352347604839456571555880213829262374490405256505567408678990282730054364101393041597782817783770244796488724056639971387780650165400193438730731136734265032927723190373913034819024785199657743276212548045567869112647166340753527648809709968758468643967464228088463490900779438000386550303333410254888093021904011198745214223298546560107995367137656327839922141875358252904392582759009461407766121652967219890311423155521321300313421825583395213786053369516077874174054508022712643669121652094087799108387095486617026022805240719170601427299240745823372158757594651114776639494904564413195130470074928266462062541996706574477009185005541054550214093145060741500803906055567475833245972615607424545512287312188291132338718172021946271736978233104283701084632043438973366364589711188055339752672852406519940534303053591789875145896839346341184636076056624502228619958807136477863346155137981008121021314026125500093934855754764578881303960625628549490750085971529640895811881448217494154693069555629447574617359049418692703381548166249609563537049252647442711318326230375864697204773699122949391370331101325634195423658677638573352732472831707413988958325958878854873886560846732760590683841530660646763257935845622364424251546387917690322942256264433232612978594972980632600135145532483130346896910727404930858863175767142275245018459295443765744334663576607300919218283461281470010937413313099773055428556935873334785574378841463345914798785581773478236700097218973052431875264974990435029000856994111987041821309780618146496828788885104671812516309906074916211925703400647457061343287291153789426476010787656911825540501435689403150776695217229011811336415637970949048323424663958234747229705764296114360618279930396794229533016942845815614852032411236389231573219591807616343263679242770734014625179826118803098876994632477465805954958602825472141825738819447648349131327595997024263425933655123211258891577033178377775735388406097972243031690791295789087247957469652020965078487098620546883530052292352312482793781248290462962469126397461561866767300966887748815297718342880983419998156587643830467369957228579353434922833285401328354475824660388971146076660863357562679102580892746556188407623382067602605453662625524438104076565051750082126860460403191957794288743113464078638039577898792405356917461773087666234378903600441961038052390378512173944389761877586428977959207858957950268037278553850283221735602234178849732162375692004662084093684723351472392013046981515425595065400234686304247078169117443016927227119739874349914440778722261209927575657252170793786831998740113872944734352365706375105116539951368533691276488458557499120617301942799399974589512365512964053947232399659012640583470556449635621314068541713602720459607491464407855525697566236440370678327678278605809598131399103697517225483067192647571166801230343054154360817439547338349050782497079735710852059346509502509972023100232293574157844302214919134200482599321292561449451155009738723744287955269455263063204760782945390887983533765598045800456941490891339648563045751346698844442480441995819475139838976422636102012516533130787558161960163394574825026106293468679386680651771592343917241541170762303442366746204939937682423946178583997177108951002229336110873690351644100544066093335603320616646743978835861958459565583239174251607351874411963138085242208306071004027498404934798551605582898045324288168965993216441528386845987641564042199757853679539032659573206775582517595602771126272875346491795831077540025780265088075978197494477921173458979831723029768436109863963652851112777885774633505139364180002691600688194034589309266309812950212446502750804281545814873326353989144709846509577631476953847716803761904243390069239160946653507041076923890416877685805776406383649329969883768145301303156988341078605757727078236965378806393471244866379941886017384279135672663716559616060473776003065001736598944001402634367333438362774459223416053956720181512706222468599250766036282191183815437007723696238580557168411373405522763872154972507344067111693020132255045533826729943950849353477215955779229938419775209209967586783097408874078427347912822133216725582641315049742887496651331155782014212210895217515861678339305614411045792080260981677101005126147471064321409693438002858804764098421808592337649605889587192550545207738466235606349762286369282611403064127832268108643168793970969508006262105411985187583621664931545149628502727524344401394366993958491200902607305726344412774910912655783571526505017788388962724018782932636380419167027750530818942493292306853478186965108665555154379126322930599872112073870340468995108481205958474765307679472267477214444771079105129111345273916060769458931336552146536891433355423168853401707587213046851318754943727208042303991092772037830328870112787300844192218186285098306047768243664075897441373764356430899505948777733112073538394018330223386893617281625618003948594603214505909501042765478236157619331486214002071313597686772573577896378220708668028483522320145159417209654313848379054337494733845466346809697938617797784406898596833050109183331411283170743089668397518022335472950049806751982969481218443631755626920932183741981775175088240063998233993772560554662548471455223563238808279979866908472961769367345876298648732616317342103461928381781531076008566780169542511291424769159388428310788261205689739556999557258751659734889247494090210861769596019671439386618733538508491992168248850793861511839180638493049621333022468464980899309120939138891232323813895906274314037893771052306815271042784982129711998999385466067800808538804896907731399973212108987010507460934784552366166186270240632519558579937144577695911170671963171719212637099562855548393951683953033197784088223548596781319484043462673943886281573772823161119078152658777102170436686070112786129249380477994653178899809558437093649296549768047866971441411050564086976770358019050987257407149874174775535910810748498668097735315572966294216684149856631618931722032257688942247440136757948156852364267813553674641571072714725671102606918639740805082085093861097040225419399749185523073125297268481402674846724539230606301592986387416523276016504159821747580879669576495378249113517455726679167282053054695030761690235517743408282498027646396180691732492510117026045881240005439980633372544723391286518070843491664510832865325766134213269910476343079716743982801836076890536350533916012756000979988225421396641018458148965253409969403749608956891741666051534309407724948324837911615213783511510117796901085550959950054087333396400490967095062107396109417743758420787293869805474219609576820930419379451168857367095712884118269977488771721438105682568871939883882843092156329826139930353368424592062959726058144249743459032964905206151282817185075764533357551880763751625401216033336227511541360107933425622881545176248819080001149040367633867082307460525603917332719904939860555248772099135758158800664460577512935035264364856017151923468493466770749093367514506248786696641557833801370517928075518694241313057719273639066472733820447181534205458130877724199681748364375566720054110475937147467384483567858574483907485291639528507815769773047229964085675738162832986746512185416180867402763131272283226883189565788191797692043970984933078803393937251888196199126779137358018899176445505143007570115488991469796614720244453886928378499213294149095644426722966311445512554176655550606574986195580415460479185049442690767477068782427908208962404672049143175957547648687066827303939644392773038992381170698914059294935679456257899441195367583048363942686900189028838034234678523876425103040069203093615050450844952577682437104370767971873736616919650499641210034800569483374595618420949637020697329130972036937290462395398353260283072771096017139087879833902439019754415269198758119085650581118689483080136750503064801796022827294739002938940656057710130624841138023190656743187930130085418017120864020613082644611109180590283926573394751177743801795985085245221807634640114670710539594246777585513340246635226214705562953501316859848228406372473640258204294519084244859792439191010758739954580927150061057648197046292039559304581073534372867472346713598972435573773349083030847080418588928446811756909540554647633095834319383627164289575175802612433654347021180794983011409864804263191138733465100263874924855300260830292776045462046223619834349948832723973167863403717032109942988862946432791657423601641536316529079928341761023057199588506696320257517455887219841826603722073257205380984800663239888029224609504607411108240655232677288690442862723868376243673004227549496282708071350160579431460894617078237038264148452198451574748752306249391976330809374741354579369007569824042429619985430819823312758099199256324917893919993311462255811410461676322768569541969651746559931916536648809126585795323889410820472630433981113953150306672858758442376439450078543138801573973453497277811012653051509022979833425681731395668982070660666133219701586050959239644084046928429650961309499538752488358935935450951560515644542836653402032209986145568112456818581772711453908790065126209561923140435734693784643263630758155315418665763796860948481892326311943967300960328143425549483598717697228105322974096097938239274132591548823640467943974706686599202358477831882858412485970817887863422217844727632048601141743869473015312167567895532024945255983314468060439518150025772768192203578758976290313552216812897223140718551937336451338088907219007657116397386665905736164200451050517720286510512554943424059095689764808633834315104671635258060380039210985589586360787395111624034523431106584483901937518358628378454980394962405080728069176964572775131413946726964182903441152257985049306067340629058926806434516684817448407878968419669109927481500399690065938035205731294431464785399724248396195903569276001446248989915864254165232896150145785235608271026676079515038017028249049810693462593233009483542238087358912358900427058609496026761995021722897913613670320877514205450413765652020245130986026748285037547549972228105308429706740278901208918427817579293328320941966192956604368224984390927573559413151205773237864681055626613019806497330373993446522063390271895547033393019215962433162478024345966401106930486690671639394360849708269049129650790821947297130222566588501201584330262957617964561359642656341618397594461671677046331258447958951036080350447632801536698464921231350132538487335924199210980667407003473101366019925293435037304058528366497919750190708898372135801948867809564973538352631967250337903727161645590940615738339620703756637328797755558996924784206821548543331903702888263171411642466318929164983411518862441122203781668069556226769329134219937674642005779875801325643566759750027944701785095200459755975504628356855765321554678316420797402868519681465212051978093986352818734163044329279378904966156088299865212097119337904156179773949736451571640747373108189962286467545414473351425565941995799049442822972085515225420192855154848375986424459617167690856181825384424505475988509166310650277989952781043743524892842451205974241887395345994139034999351811382751664208627185710653625642675066474483248791817571271241210063186403087264208853032636436167664202391695933562729025089499306859371130728363555446407781926205915143036601803825093802226575531479923843049236143421171225604027072899457136426321857013440419463782698121176184861726683771330735815203242707779074216265445475540337011575695802653290680171617110956089708400423823396431216080031271767452798807070962918369384579435963768357947405799561337189860389848119837098434526941704359632026013504302491998194965573159885155609032822784668744936471218210936699803477688221574499856962588653295936394471568533928022487641955887345356982474828726701497207105120495735502882976316087895233046177879533945346380649173639608023342976336657712230921244031784606231279740308731590224556608110077547847398266094118055146607483153680643212550410580348869874165255205211463261500728587135966190409506948799972901840091115015421986017152314920117188827829343426912979957004939801338284061878009269491263490108128292425381522394423830557911143865565570159555683398122623913646644235474021053009552376608898397731621889052903766842152045728394198900605823200927783337323075685981132721358860078379586848704664900687766231937920006399684015979151265638108446548344973707401647150199864423552679921182557388112128446599844367777513253637524567506049776007483776726077947643065164578307787459479929225773896658372112134646645623184118250344709965466033229763653895518352436871659147245073236202512905672322788417337198523910076600496896806955761380109897946866788177061260131999207140445010207921352092099467696513102174493044727989694020026867539466637690065687802224451747701421589714010110811180263256728474892688965164959621037761704413705513326831130903950455522932727962212006457576288058948366136763470792471412139574172321812268335213146589752293215206266462092655522810244515503168558651566017486843030109494671988969837045168867895631716866512930792580731131443645529732467177238063491342140300814534275409062275137296663271476608754294892971186547666353575731640412318958694677506466627380881088519096961265302168122047886737254322909822872573180594759268611818309615394604994099189131841384388776872641779250224183068897644167655236710222764595356432257740390117250779737638217827162569584860575786244277532062503326358611258691134475974597723561353608109808215906772578466236594209362961542521494375074181753196503544578509434999907829811221441217512850661134901901670206532194331810185663823869304823007684055756286278804350706901866038839974567488725105756078831351167157527143295768569889512215999254796943261455458957984539957233945086064323268610695485208240674364624989736148881730425591483093248798295272838757342354859693309407303986704846559110844221831569187223248783549002200993461565233445590528694019268608166917019599949035859797264364841918378474807706575045799247989888487283617476385652994270775794565519236086935250145174688000291316649505526109442250484523546242689644533554106516228104848418959898885566796932573507122621461507275147334955643278334685291915793689581933563866475273566465848491312275698020940674284349384907658254269754480458509866222267794452949186736796671426501672685206612526944059460731011663387500006241025949436621793886575318714568336145400720181001162832614271088779278912477680010135838797690303355385916540616556532795955661050678163044431016683142385179766271283790602380992274436151781741675973565587576712654190617441755069096097249536514786779528743297497537078478344701198931870347199376734762932231356725594000334575109588715744813007583764350082017233625954368459730947824586972286163047640206508406671801358473375768049971634320861859585653248263273450145595492970542502686045705425929048598146133380909965320304769263256234918940638452346984325817268966190135182960781953474339061733444754386494863248901058392856228336086069418575762440620784892189558536497419171784671705521178778803402482197532827319917490775872703870713770872520005896201358317339644050277906054652834161865781620434164400737649970262770696178184713542033797944978646886631960341401146812636270797362393952614620803144756389520115811917610971572341988586588757258082477788849664941617584833286036914482459475225565829610220740755012200944035551493787199027321288023922708077549680331531626637642652061096290366257708030631020012264369654262028451070874305137569110035378458845220150795069369994995500998419776786879999881137789192497622045059353722693140070393337754623702096710181230808250359746310089030875596116329742424274979966780595041254877228025657698235639918800478639091985909505168612518826810152643059709601986188543627095984908380034782630526423847006608570930979573597560988116824489833990355397824947798288807023015295334982732645151801318051623584717056633454837541831113481841050031074596197712990092934874858833697191559342567590278568763509788769652949458938168763433556770331860701680256260865546924452661042716954704094394979431867072579589871975315462761820591650819425077630464989694059651291259285742429822936671003365096030164640629305787319596493139590984997408153535335164815575460352220402239054799879071681374595080130574517586380141991858346401992346248012628915029379536294053716979264441274145948540215235353987832442341003796013184076390125858594129323550010958218795980521747997811787434130995071590527065817049130825109507581828623737604998467886143126400455188573391185020438740215903344884807592579853627324572244770640920551722262380579370349487968215573445771086210859983536433362672371781285864830936842911790983617036697129640467771942135590639735449304000226751238472719339215131347192790178853675089913406861149492468227489726366481985079713001732767578802347532076870200635688100407539388184633976889520183634134557977836315031946490430472657242286227102485362968574915226677776850686692333445218591489700540821354307832860253813652168849439701440039723172444864519690115592982406645538254182326401072096905146092229630868675633063339973252652740415161200492397655963050175157577984783946849885197990084368717009444285733282652947707556487199475790770645825622239534889454396781070437474428982195437804504861373264460204878154071333562244296179924548884470621748021595825069400441173065306144236609590719001088127692804870166827134786226045504010289557858137459123824194894852628394418440498235593519304887825878591492416970392569756738215880058885777230375510744746095832930484253302688870839449084030374442964499764230343193742534907651013401941485045263594022990789902263969354273564563154230607767040531861932941416903490399218208847540916794662596221819604982492322614473171233355436244723852394251668252557633331884242695191495245382426864123799024892275153763508176293060097616951046465321418198741054725268168754319442915170134650451914901620244868721668276829629771253641141318783996810728150777590691243808132445006023385838891253022646960256329105080520974231506806331469479093934338904863257981777452739814225654125653402815415458069014525502844197913272362227941903451385284811974698838252273905966697235369797133764210845651704149445216861110511681399082344744679795278354782783764172619642979567639474162258250739127103905985538097389246213304775984153542022243209769975091047134338594950016679442924024450395020076095229417853817883467105329804782206738369235970415026554861403593850457009608646230282855032430766383842515516558039153262613217555094728451240929147771971732660216335588145852081166845685124862172458609060585472331338748806524236502660138774793951493082094172747773384560236225938179162338847526337090467402280595711533651622367984182403158860804760181817745269209017907698927018447177764390402132700934695585327081107219934373403922724575788870092995481337049137659142143685610436954089152582558044524688096546843444423700023730755869586186631222727390609603609351294027985343882085439170390948083649456976930897304493235047385645652499469573144450226632640044611220307698047241905614353840468198307849284244433743310333348124968545687341510324423693597061190544334386979341942318647150587666683365252432094860310597489932320233818242947530915757486299406930448566719505666801170904595926411186279856372310476491146305392993480226981971453526782187060687833102507375446399423231415709923653701984011760129123860741876801540292495518563968946883799848940532573313296173443603296522547528634452397473200315525301195398242469550786794197639342562291711287509363629860080510303760557774525734945380633921363914853431542698748981732711296651218023736587796561708745211917501179698182289138304819600111851458315985545588753686094929035376554704392811695350700936380704468998150098482783001581342853702543045128670613374800895570713691908270122950342723598006655847709313943941190773783722671868338006180342245403259147445937053960169730111065952839793750207548741557236796651377419217439217788339996291571647443544703947277368030975429771245578350756257989458771435181184644260976422698080787061965754911985848069869979093522669186367253516512012186151334113207929368203043914016521566341709149589849000172705725719059269323617486627912271048441742739465398204407137823901684010129673000371172114292496153931152511717631129219843513473938660852308142364803282959642112133239055468777032549471886891545342693352819816150625730312051204951215325676202058893596939387088478210204668676587307554204745835289171925276346193947632725739956302645084633459891211955329900354044041299343495374858657944535652602599329685892608560355221147617174407271322660561644441137408670423117616692486791129131469602502545750575678207823202819230831557357449837162764944074682603942278517129136383400324805168569264748349662144103734500310228521319095268340365078560801461018584028672380285252509405831511734772048984451147301354621841090685158866524712092321870431456059345799985712122185704431337096127687437694401979341751623049368631788366859290381893637649981307047390816240929870571917134706767432811038051184484388662606393177515719243633156582827865223791578101119797060172115972684872676769574974945643835364498440768457205909871811593844477247809724190062946655033110865046851540453554285609807213774206859731703736070934377228459189343504131736987952455643496013063684161791621703574930664879849052241831901310734863713199419165518276375589070633543738738557019217038003756127258792425320152757602691470576845689105820738931652357326350347199861871260986749908627852370404737510276476245642845722119015398423486662458451185725790314973209195132923946068916190427279610241406544428066707679791403841052564250510881087194443818259594587410560245411698169540609426997807233458221379615707613912330097042463351872788317327279218074262670136076165666986364552676028861415570355979121079319639961663078655662973346928566562673045688482063508359852173401016908588647335532164020493561900754119857954036793313534527151280246860791003015715334009791166677418796766542078266448439420121870911279609836037822463808953372332246372530110136149825362264598369917632749551719678923486139120031309242247759888210338135044809275944363957533422705388827643377613572559880550511232909206987706654704615504305827371968763969664217547643289144593195631971828266702483798973523975538407679855530784575672488723662524125723950070242946961961172641915355603520445486161228623452969594213920239191526490184386895252960529203134572344963411688780808667026783857351643788319965020475159173298692589635014495637401945387732924842165009769857165826671918554733552077951114212112491302266336211802534711373322363698070771993840441851240821211326277548132670407873828850227292560841737671787875129475043755487746086908013069599686553850366727331110022841200905378429558228885276947976060270954515779199839721490616302419764399467997427220733239863836987277618780651605843630891124811998662744113912476843359726368091533175894729878982271548955134674990415494367537051836202731488770415113097543641526821909514972034065272190809995781431546537707523629044750502269458001475821249768705886514061838213816178018883575555740276200981467076456394795940066651385034450548785733167492047310458344926983379883294943202198216319726335467358912178504979490712950720139670880266922384939692281328364140487805987491588202076702920372180463036278394085531109671692509997168125753958043403053482501972872345353594131570363413207304849961127911224575241579223169943682540626098965711618710647492692453745336831481004902306279272466538499771754604791241206980072657042614591529660697038709724403063995792732748471028224154795371129288665665582907572972050347043359278740836719063317526756569282091844675688891108941533468723599101571721081796776256571870775630868843944386383200954494963334955312346784986907240431574429107984400681151797052649225055701398773971726415301078597820256336356788158537667992569471012057950769781939114304797479703271912263727100324679256053141679772748368831771375510528150254414323539720447990012788814194551405779411570346727776939790953700344045054636174426908158899722057711484869685548015405390357167715430054239723743614390474505950429823834922487376815088638370786809539824049674571180389640444081579453565868658932437507460526246300186278411890186969274955093189227820353125219465242226109188900382233922223778536845150068954747598348130640062106042888418827994496594035766756593789661486116735004770358703030211244436135974231456807290461495043696657192593682297799844613029634535960236564576974795591294576624512929792500014325501413881224663216667616785612948050732048971448899780297608819753706276133902038791963518216899270954506092074212404698148510639015778751232386178510955419697237205912096399828918132966321932605534139434412070701612721456604490840896474267055332342660767071280209405858276702370804630204924111766960317856406559940118434367770988769975524793165152586730444517491435056474903567915874195514803947529044500564554292433258668059736327482202232118148010644995541038334130266403475813709101801994123433254480393798075923128845665991204981210765540430020606285734514987693451622594735559403030123356860188156036643434249257089332029418402635233175877165867925536953541682116087939792644358951094875184601668821530856712936565383523677544386290838307084505508451603426731519558539212597032725397473131522010772556276670723961169476713715007965782367463671207004427821898874006886948106243612552730999346270319495100894540388248839670131086439398837837910847996091533246722389890765705062173512203140825041378561177477069894673459287165383741849743090482171347623646351971171334855756308630471286176505822282061068547438794040816065115487401662828615169144405171132905200164648617461605134211939554875182304490047383190396646500382003999183057714889898440607349544999094389447711017011920241530857525819815429682018535385505977329194580380312832656450366676496101926533998928012634943485797582348394904832444757714952338191243094244667309197513146331029059497234996026295629525338843248829496664387229983454340354344354361926977843014532275309061928413950452395852545376474545828807403649997813685585831222967366529956603362996450142032556316537817349825965565388749307935614563422392371857166024828247733107013875862967028171878342610685821542628776069778652495497778355141044077284933018738316574302280847308806351911960621024840588308502118336526071302092787382483999288185543612761060134745015066351681793864530093103911472327692358836955578059519711592933890918632797562323000137272567197582752995732286131808299076629966820021552225461858779647052333935978981735055213603385993631873695859909763703573206400210727715958702853959307637036536077904002495441767081412621741566143360974030473575547548684578704409276174841508682507381307499160137686747862821545980187535961810603738133294827275241022982682758736053914588060581436983168622595393941696214503112137336176637053281844980230910722938741635135136501935997430105759876293942616013059861803538224387455551442192666230106325275500407891739902468415752649223574580895406904889145792266100006325855106472813387364965030643975904330362198679151267094313332828812115015049371844624419040651077075916262796886006449748789041556913393582950013866579535606631841836859250360748886609784371385806014849102100782405389931858195618473375520731683937359075931956205476101911198471757992356678054746173745878352650643807470277571544665306609327989129875241742363645837087041000864600222578797687823959564643102551196155828844636102280697841213609656791357894915894786661085003256178962599708900139437554344837496126991336726926427246414127294895819872746482662489382625518457846966484058861641530648434105335726938118756970009736123063448562252802401429523897276893636024071025688521453042848079088028169375026535812620435667984147507652315376265205870710077692442848310296919134852234120358168520003318084657403027453835909224417031775323899363744740284089350348011084791765272363509076390493454779271724568147383059622254782840086893869297094914206090240621319620894642168502177141922891895463580148228140543729697331790151671908390563738569943808519927695447415806451315493920524751362637034226655188350639391583947087530698543494971425648674459377296970009234758606132450332658154214253550229216692758303453901824525335559849713214965091384197333229394211232273239815795857441694165376590539289040920948981935002505307255194060948647424531834925778064915503709174375835485460025188268909503708680547648202548160773078189231738193426321501196927110034647550584044701457376558854157450370878914548751518010812578982454585896506048034199201351627466146218533093334551783757444506619864069614630662033129851212490053669951950298633121258577712061455974535370940655593095631820788315672714402922979837885287070470720517901752202731086693795391052029122948632848573711697163220602271860411803611669126753757349297901216840448532588101282797205385673541321576749707393272131189972817296593810114354378603559961022476119414538792638883588999857973192849344929818073707007853499502300746891001640541412222376320848909031067703913876660939657950152988621703159733454037891258259475500738086890060288177414729589570174227958979940146459072103892787441210283985545062224461788635448662101205052713032639526130816615806647638985826147981179413371254166965328798371294144272085574692645960418768708801172602119164945495464974322005036413405505390504954840589096307122371329926334402713952785203073060783168573102548172015854672593852043546350022883253072912915616310740954070054392153724108235712382387993977802159872182015838041906736519103732939982340581810078608656413976452060900957886264608314184471427588943536734780026968928692155514675398417107168148248510723660306843069550121977322186431818011610428873860190001003363055319781361730176763739139810269647757194392616101548538463896754393326333812640613253827998914384126062919490091356913738726230919233070769952605013459980879267342917461548865724994666246766270724650949470798680417108211554932719512407975558790349589269037150896640916225112377139813688797420950574096059823161731253229199619749397950449018696489429215622915218643948389955323653322839761560326917338709121502540458282006070775274721278089972716684274922721509554868174660785592199281795717831986594088278041673857961010064995289035144912984178508323818793246535625248776002236818251635878301953274483533412794809313859539471968379092719113986128558742766443481101880040436220552258616027958958924913661280686515772045002685531382466679273061165765542049906683022319067982853360817642895979479868663775559481902240112995784161815868131278329837397515898785335693006300298880610213670293211174221550332384793631527423730860633548096916124037462218839766469411552381161579479317577098605537730432210895942381549970297515489025488336897287768191714905740916059242370737204099510501722501809910496692770024610212986634140054586492287423889168581330341912180264387435445841261311522666122728851990227538217782381314826415274317674374855174826112339194639249121522452621741936587002706557356854898449993778016172171785848732947557955704027856109396116718207904518776322994357131018937248097875524612599710214741875220446139016147063348473944390199351083956196049624219474230696452701265149393358539534656778615068188589057952761837611571921166777614717917407087965321333950680081452877752279693710393621219538269577646054661607287995622502117936617873081161765582438501942373003500677156797051115330465092288200155287639448183153150813818785402860743144991002015287286946716395557477042519541827976923207624880090550181070466403870830512952264932719507370870731222196159467476414336364266946480417123876719674589067650197459654990004077014838412298498919327822007609198910533877447134364254045868621937973223200423386003262862120105279636993475161539921093449521301187971819234617505696906139683259110692092648017185681671397260241759582760196196943640419187056268520090360368275483279802978076337488749614627384352422864236520797955702919032529762883295502453126450041746584404022281271781642003918039936416541372955433028271564466142429690544749079788482127642396633685545164849147116215170667448172682436061055348965888274462635772407455255384499854196040148258946511508945571207626455711330871750117230520738227582387479401978706070998280081054841637881327249794075144672842647976688341797029269458795250411216181210667235736394524144508178240650009499839253145190214950181549270693999086097219886728109760171107193025052697815841675380840556499499834389129191777294768798560599549167178293345406765235424390286974562141468020799891631868167023081193513035099395175045206602521255323096764208588752521584198426274686565981843095244405673428298574965955957147888706412446903526931900828846912409726815013779626847030055593597399526123262882400745891130079542185568022207539814814337241960051427809296826070247028504579916315568791721461233758097335263973966508729031127991614082122352848117403240339535733364578331815911242244208497129084185329350658299598715804800569802306761014711035307632731653970308196158314086196086774838877412580307476079442529504438461290325707515270734513985145579093703845869650683669714264474542876652495998885130335704536526419807244383071344047975853511609843483765227826247124354483338750262305555498830197068960506516663537033086775178725329374753220044428578871323980392417593037591561833864560791917113007780965536154610571549656317879765045176725425239365451871615547690529893388799882216378706572250300859911821469813303574465543271661972073755005582468451816611725508164551689761771115907799644751077606695356849153045415781797205313358950866708885814146835572025005943712036946621991759545066718918119453084796665413121741252097449297202192704356367483385664000069663316050716384719205207801465226692713312182755598678047859843301628460945560150026403734121163046842436351880741570800868898948610404452857079312894714742757354173674406277125300916453436006328665102365699175944869970818868278984768896362666550309529843274651040820673947813897587594062955297744518737774299736982133567079300432060527966190581586558630961497851758314318409788134410772988114650424581443079360668248413244832324127032496775564989010641790083713669189602220491195142017685938600293417347063274410905174113992262873368998643612719191516596568969316380362119298318242915645319863197493378655021042240461685891974308203755609102746449789549320362248918499716516511157278103035882572143836137316705820363964604833476332636586838653694324645730083972784783052225419534154245299319130722879948761372867049528134522531753964573049401616005793477765821232653994800691994406655918088211001735156976812801579394559331045476080519888013273227281838670108378053933493552580129717219539070212717950775555237968938173011024820716754742195515411109883337924111903964792612225578721587939563303535103188299691601492472356451471022847332577379857590803301733879292603573941005028334412154526608694324502419189206983787600879009314702849053291623310916100686152984074562064654354144277288270831993402148022854114727267563386656273473043854023062748504532864005958350755893143441871096403606012363204937564147671276133226945253401424093279659939347724576672164258171231385384128030903163782617595111482625551769772973353825933511127439047825118848622556742411050042366270633108907424023864779062061953958267504807280496403799269867159072712709264591168317244912101775140239144206338559475264646118587617730501552377638863362061655124455021066923833711860857339979828295826436903081226685573496526910952550732021349689729899116962167557106650093281080061284877445954732988766818478120846072012997726843404907779166008627255267506900464701957783950280565410037464245742677947312991595529161302302380475053595333455669360392106421739143816312861049111741345385922406150406955853585130018217433158717705659585515998259246733104608147579000906973082839130304597826875030672138137401867171925314203007158217013817853582564243537163765419903407832201249347124176394389297841429205957695017135939406560623970820486993613975182813536259240876689699546242638087224255751996362147971964989359889481130763107830972433621184830396641513111510575980915455726347198011343784768797727052838022363464113226698695749335910116540105272372154805634815026155501569462431119185770739996821187289314594054858522890345168631026869319273242402183078320300659252030902882909747784790496593694603808898065279268480625238092196787190688447682524495990256911869682012173481358183555504503824193359418934257984627670622975586550419745355044840514437035383910614618327027213937298690296659895744895863387539874019419112729858234878801009937739294832855936592853781136481863288244294352582167692713409256641049293632638366227143720354668370515388113438276238950590746253992371789027045424536615738069444088633665884617128793615190844685349419601070911743325571727271807202304812481230724452189045147318852550849287010700013868888775757611374403528898534155492211130393500644782824680652216262078403785238520446248896449108267842137920726456064876771514507054533303098659059607418980694631425040501760320857858421655056255101785583572650779842426873162416972820686223579264692580604145448732226394970275828510770077725414866365985219693967896814091700729399219948721800373100261119827243181454327438523698630516992758963725026320157604104718730031472613904490458594620223092504393719622249488695795466503406292823524354410182429257834898973027858165956602399774661393103507066836608041441430625668044443471271489326478787274058012926540941726050757162431155910376525347935290528412883712622825650922605306081170663464874400184041874556418356535346848275526094100291599907454862215499694540095695400460466437077831109567254337027774692586922252741426356895540902449104538902570842732404802731373002353985647053879237328119704129852029627374350233321725697733243133364509153587855232230069352198751646562026619739613944848772756191062149450170576222894637551334309788590412772451267224470321842153705995493025812976085722033478993515145084405609744744587463846808493895788981080766799886850823617138049448008371989123484691016848237981745694079138182780788183403203721151713467456997616385905829623089201307059771111209390711650337594962822373944800352967491796614175684018939337818595797171019225560991585293945625545595657450599445345092486928660738376251455596470717811883210086677021062937733927185228149273063403096034999706125827623665229612643280075421367324838941784722485414381215951607642182811013033551799536296066063614422110307577864687370929582556423196727987844368367255974119172973890985296006050475451115778043388034041567347020414433180458871426358183672416327585036024873823888095332592905861655043341274214435805237798990029645902213386088682424082723657275441842855241997501277234080644966938710016194990812254623827092191039448617533281535119258602751889285121777025936141004162268775595132148050259410525643610676353245439248942341670487034446979684511857717509176808429564658549521122876158017622925740322258833734427026035958398862101741895197227939246646500741564082649835239597023405273891609205896418000942580342815794184881597386533727305070186125972896123072139750445105214055994303920296450097861837667626828491779171907647573500196784184432924181055968483314832705148148361864693177522735368828197026507422450583487399506130132207619702687993699478710060901181550561873347183998163256536831829755928426806918139057284901590098071847203751269017269367552176283980302399487878653369511761741260719735849697758089414140727233313113348817697609669650686592604872679900421259620729390392937821013463596459134516011328296528021265761528435698710651259925553086003855454882679482293640347273405545969507900814398607935231881063520615867710606197831649886560312310486503177339049382369505555453877361281024419878310388434611184418937400368282445479538293020493130069120001762101566117081483037268661161097208583074984161033982337924318827500071181513708341169184798928406192621796778893979282009679489257749855467499763589571095290994203533640314339604946111391593534480099828568444713379416289488396651044861587659341973709427980660605041971372710796298303927868095346648352292292027870722133755845054832888564930122968518347597666968295502436050973548443663858194322671927665534717707167026750973040105449696471749172130518996589356215624519738192983315924070081592654666640184788891031007435655996518996340183203363417417369729418247678536891455980580135782000053838479274183869744507102232457737000738951049252409929910437799382529058927566204257443322533040525483112372812265828974415953612783255317662780581240513920095474923336693977988451153359495274546486560214240786943888671063781638368304254732412528614277573449085163040281230159383585034162556575893166463576034401950188416005855879170932066785367257390502371660533217802829472009769594907542771250603014669355039793536417676933677027705437610861215393357455295037084169308978307843278688211135068661383701756867210777616163114087939609375264574703429172483790441875430611338881138424463550317796261983777993939817292570216159795628811558538801656754711388012379166284316152672801884810562733797176565748931725585937191680990835974561484047568648564597038582344818227073662460941511883979982354161238492210778852918025231065022009832818192750516880974692401337759133740084408787664402932242341361570780008167551143577351467728811602632990217567884474656219467378950576234124278131558498438667362536088154576670560448159595034786714126915046504347290502841183477589275885147069556014020059284827618004435661108052508029594452712930829074632221475322106506939185959413165722340965237706123121748724283895649300835739237203347044216292668298719044278435368924877007874625914548943762825812466744809187562294897311304125988399295226402252418316229858657177496141462184430414816623824446992944950820767875926290012501936537927128750451666877868003285043138110252138440060615953145195266560931481174455824922702366613982339336618795518250751864432837790171898229634556673758800891583182615939194267646354119515185373820469211334714880210844459845899281040728963582758469973191224969714524629984521423515230412195665052203675496016786175637023212458356622660761236045864784329594917884474467191220980356258417389101273362922395243123869918402022905942440089395344428550470503248260975121885163479939267371880768100258430170150225465507430989086040535422810571558219365035642423784756969031750645805128977429758285754536389761961432716276179820524070274984517743044346733071177502715192128604895630026491220713627273143796996035032925002149481144528385804047574030836166299228377952215701887046024454161398622034437194842460018951539694100475814707884025856496425506134551725563026410543881850432734025453849327577362795616929801186844949713327619440270808776145179463105764721027657564645028930361586145656287540179536554255123180485193558929927431380226205754633497116126728716731240693289479993974221143994331033365554516045176405900451371199600973215213641479164959279679814260188981347068509088351254432348438482219813463059213253723757237416036903591075805598748283695027742677936586335384361252480428541204608583406634312122377615524840555247949498592269464251322740507270727573519459264225207282550531581080514266759529228554848106236368712039149005493288312440893458667890899974476882146139251041799958701434883810587897986091918600747536413330595901362620322539942520796746427332444323276872806294236100088037361407809278894878287342893189270478839145731870539368471391387150052869590653195818915064698702362061745839586543879225359017039595697884882001722723915910010584357042869491922207667857675503216407578647228134422498612730570996735600181669699847748721503084971794336246024398178555740704169580441731426782495030171997104938645284802490736526512497156849279989444969763750744402532973350680417476027074629741715872409712872504392927862584018394501575691702160830414940703326541242062558763008410177835211715961238426831084053849163127658441998535793906352995582141514423052876885828924732539608096606908415027519848936984602379364743456044761510556379801151379518690998947955854801042873583463537728733905298663141459307422994329720010695011274213838873261566434800637382924230132602190744658395367460248567352197378590648362627420385418996015772300911403104752585647696952352399167707300333659907458552714529491207595158498867762518960575650922566949654622466216500108868336072210541453597656913752542940890669908917792343144021015350021855165352455854074810714111916945034362732381386427482718349551079540535456997893664712777234527140170003174902834153569933467750668492987767712226622730884966040392946446636360405884350361746018586075585187448007827290802191193992918830168882123878094672730071356378995601224749572299279174738562028722032841446234935987617429295063446130048036557578545569892470946163916315659954506693137165488627443500039333067598815565848958652486839854178302051452526022899588846548284859808751263679035171767149823604091299889616789005105131228337635010093337047754479792865655902178691948654116857771453414716004703499348094832808973183950227932587392125205091766545239970615315240320124808584838282169696371966906999384622250659303683238426332724911125974590320231207381440554729412855062246023123440934935802500468123254867358445121172735992375521257974449059522740396633789040329390315807135271701129011383258418658425893937782700224666622055538442096123936863696155972337676644140375869222225632468429133342478851740092748810688379194294692765806761709243292445370925588300087191752238504322791857439625533702308505559118683326417478854837743518037220236828710294955586319007076392841907613015008089693750268367401865029077536774343731528194259719877890778776023276178727451837694093183752957451971344788713653124403592912169447246257713310274798462777653102856025689095617438384544481020026592303508023247572556713132565788153954194806955573448342854499665736313828556863026779651411660387640738672769651332724768444761975088588014122019708684612267955352088975671480085187795062495115789824870878922520172665418714154029734539492030167978940080643199418196808837024617455930309024982836124935962182719724524811057210061821524540411201557458664519253149373936741270935626801108439515201910830647788895771974003772299217658740240433852904481371192908777106501090661260554325599661375337809803367327342033148920236477155096765558571210229833516942768263281376612324211112667702609196088210363892395193462509491659259024852812276697499605558532487096914367447613162226810729025026569000262168924100304560714476601429482805194496675557457292511323425656217025318643091319664717343062351610405487715608252240783179298941833034653448650571148844574615350244026408882282044616450976365293788554304448449291266814037304371688381424963216750513529087189389639526670839500703621603019984380850374005342023652987332194448819671046977885418517260128664593002979593137163776296621820083929479589819509946437482776085770516307357036823437829136772825839368943567138543781476975510245549581874118614926044864099482549725606842150399589294580617692556648491014905808417478296553020770300768042640845932325506952656146449112804502546394262749748375462868889956391030112217862141143442869506446744823267164082789084798983098373190299037053220068257110148021781935461132011793446659447288606544199038142476002019570375256949546105165240647742472081927947012913706074754493731905654784525049645737489376864418671210504371250361620597286447961860780798919669666042638096347088830607059780384551427790698751912954528868527598677694656969614292447864809457874418567336277710211311517332303977962196728423612269312817283741448777499025379744636324525359563327912816394971684706520421906430925290350345402713590501727584377454896915681564413461957895860264838349412851555744761634513723986986937647388828868182278290243689703852720462398285803103962484885658405180150836858615351484776008274569772116473045541018051239707014765100511333470226978089112556397574134621929063489812616724512841945699683678070034601352495627374882920668177352662275681287641350620632908859138375215916367272583946572908611773035115322281643850859731466540936722488997363762205980017662542930695436105797573366065287077273242194915818640179143562423616060555296506117777845852040093276225665077203947062923245466674491443785697353048308893090836112152884605154487137526661018266999286627906900763459079891851133294837712765768060834392247878506296577675919897395824400814424065258005002243368825410129548685223977450913171043081909656154586515621920889990930385967754894314915978073107282041265737655191362052312060041368995955313903367640392964553146424326019011338563047261922369859119911794759461963693486799591745747855840052326216175406493970361063185276524468528520222838758931873610036130517883834927315079038792199898650206194576800597228172968009971557926258144869278708286464976254747797233210256061372485269610787136877128251050308887781961463045820382758195461428343603059117007623749243237761463161059071766664981260341449442997046982448434573318738961218895935311428279481517443326706123358647956643968631498821438504055238001478406627812882331230978715252659906084686822232842227925740086854809480747071389060086686359545780876925935522702406290335069979718860042290445912589793764321100634012421200183861058827678516171813225181822180107015807364982805797752211253719409129427547768299174828377077212221403478063613562533858714041393954398588044975310424868777563799236521143771247010018529306699279811332925590452951383436597840136175581998276010373317648628011066432215397956746369329972308943176075036096440274919876645094808406911803361447802886403186958085344295374187908426998792346659209381692717144662062665620769283987978138667421119462629466253322139909598540044684938967212794625919707877703415775553841537043768641369672076425355293424698770602010222670288111027879283471479061808718429861375976122446511422967627191401620787119888365805036254981039830873733724664670197733456188265576604584395416611641188611223474167513858428429990827146055599818764643197234234020180303889234947637899093325299234925071514799020156326201149541148101512848752314013097130124800443325773690056396170188886541894967573980006392224156240063596625542307400319559162143159234444161202330892487429199756076909042226948084464655904221355922559669358754613516675826778929437580973861812290405702666634577874205577577071381341989839998202277045181225850929741330542007933640518060251125453977109980170965602118385566113191794303215789848291552370166625910523199367216822512094955433584757590002768319375058253941972616611894663200604369639370409734982195371301593600221971132122605659519456155241680294937119060295408299222603323604748274854773992329042398993481736233678939514461857200218491698729191544283464032673829649008741522210555905620322937603487257258144481704293695394223544843184998676893685989753204576623158349634258601929799937894651875801351673180974180196418512081661856499789949259403839435591063177484363216284965032561026441677022138784876813398949519794282162310420489247180138069331068584849595881874725721488686930227203288129524325101457483006060510788020504410430916381286285711876828970203211303816098615589885438742182751702133470714842171108774729101283405726655829134924638786234867602183857380531239595960110799365466123959260523693063606787242203253227951671425300633673859808746680379068998993532311734569300003770877527391462430842786079776580843419112153907838189815951201616856445496518619675883651832874642494458111613185602658368425758066451173830182555440644910614057242433804596557277674151186754962525520082580061237821131512878748330167178462771998225069744241629838804466652841751362129749472589345504865820818305076359060942863942397701629534880022361876616926071386749130252000727788612509033842689926022664694206182423920199778785990404949708265279933857841063143243744362446342973663684521404283411101328663218467523585001323041711781073406334385719653968403631103000650034009628780901163531752374624422090938314204136033637469001453259170643511724805007433648931893252084297796143755051008961658693960056226546675961217815793731878785352574997630961637112608593393082380458064380399549383468079474919243073118188612504783185658700406969333172056228112911681078064081225523034422147369182230127516970809066818419776935212454715177629063252968390648743727786732064433661253609058111233319428063494998402600642692051137430238455731481640327282134941467157218228576848958448742107192109403606947434600736631059092273313298714868985522454490109863598900525756415182156575980309078164489325446572279668426796585286113251811852996989065572843895839861552557209395304804903650546196014602001556193729981369780652767800438904762582094334486592006216665484973762869492760047173634526313277314785486064992472951147919367669748145858818702392796952464895245109543082305402481916143506055666117782635989887857147753104770206302622761650444589544271620661421121453652964753679218655564963443826585543996110633442643114948356111895761029587061544696855234595110300469692081284136056762239714268405606620558300183055248889749462356662345435329936183490835718696541768129626700354459589664276200061618332061959263333024160121075176074243664589519668467222427478829440178344203998294776044206497639769560757635799964762813768170116288746026065270744746643335529024824160103104867946750646934822827603804964168293325810894126977320127329051518406861485716177915701983583775049684985948904438079078844960119401236721291440409528116073724608469320406160521040204762855137805387952817515765372307502923920051236530580148082050029349480390064183864218759123604568880199153186681285083937995563402830828863270164493387560405726053742712351661668732588813076973648139594983604770555476957759919340442709277530531283319817922332876951436259597597049855065820552413988930887611006406152380357743370046494348085410742530558435349664865367729305167683202713339801231357285783035077738670166774440330754971893617421850671888786687380004974116002848775965851572944658251262567118217846895373330245637916072874627811458459480110373187808374945154426457702170178922814982960984496152311884791936396743137303854118083439686598149049424907213123551643949053082833505368320302340372174377726832357217996644993363440033145176126605182189165369101110436053655475842737050378616852496784889729363913941331283622602441193170478369885756116236658634847525519617483668722729383848820507217629360021492345686749844239534487545919011428382877054119494203123786804840088452984621061987150714679333295196032774262136553490337663667975550478759809576369578452240499591781903484339433102890013129399918758517263588649372254538553813405214173084119437967452670892628302300042594423529039649211903027294594830096610186841444303526764412639878809523624343022039600514780314302269054750249883839603330850704172047177559649033704720800239419494003629276745758785221426615002787761515076318322784840232396918533652652034025842501276823371189636477364622034172905407525375104819215434248717590812996303119876609643652285943022465448011953735626643390718959829157977819032553549162573053568207800470118707129910825323711906845706924590930765655164079983600888600761611522571859827726144062730189496767983475809397834151810473652182069361384278729639276651949308578566802060614055117596414531133260136579427692895545235967617193300985328062810555131297312018518618568363601810043101513427227215258619069214060603122438971139329320727438148482868724650869392792465628374291353373206815406667389973028413313233887219342453377304110171139854149741823037716589327696590150380745045074420932093829811817942107025861926622080955591882932778960485234974118848269809947139797382135884423498576004472776058490400955500066492911592972590393689265026215990076901763213870626206842314544470062549451892967790836301203604098462072174521910701145746258833984131509000823454001112237593138773977419474335717899777497697890275422184724920147428748538808627417608067223463301828089879210293567169099094467540668916562094906900142519496515110629832411424160533745125076166365258481286772241747238519014776062831614572445366946001780277337253142716324513323833786722478323267892184625574857488114701990392887867254933498914061185688926549326036349254171156092571794222712650872060882192288854472788650248704881647374273973311135262594453835087678444737970027122528676923238524783816459128386309158177053470790374999798790835452080571486085764057149329052127633882499411775898276119922157035606887776705740602613522095742467452553679099326747205841461862831009738309300653861781251099412323674454532479904472717260661320941171404047171338122017817594778141041932206578911818553139414943052051835959534799454007719552752066580893047586089251468386200371160919066467718877125779914321972460732543682902993056186870748139847344892554392840719558767718352553308309108450824309253857968053204809874352561081970372065175027192045908644650404538271610524932957602899991502192400791871221255844497250839701190743791308251022470201221149614416036909020826724823547366534352740002018622473984488556456475574925482731432833717380048377929167419013837312543789947343811607019620916255291650905610383010470949662517678492367934789044333593092454729699427444713068289726773247105288934647872085166657843538186945709972832017417052893510624855481657713940835858274074335026519323667724856714011518157238774700404430529587821794004409623804594489242850756078578213872785154118288998888004454032027473579305625549286225792915826490952396365313005802020308312475472431982611994652026169811983147336007106039589724987006759231419216878915511156394474675126752074633209293501211091292046151835366447367659003012510387934946189728580360144425948071016737912915782730125790843427551203387963705099792492454990473647859831795484546956750103148549977785540492115592342274589494688043917545850455003243844403823522951193573133148824518723920148375572098915673170745062272903005205165865783265084651004160699788753523248683446611335741359671355531667273387452776569758622251797161101660682454274474317401115382316385815622968699836598172929901569607721005453332877314981021477337070518219277649664091792690204692679865013733165230240413655545050795582218307801873717092369244429153742488688970689356648603621122896999856087350548251996693858832765325328477709503070825359812670042818505973545770247607921024146211186035598098290148712588676713328191838335275158961685263339296170953248985704310262583159905303674951537735545802265019153294080228553772133818255449917443073822985840454249762992479476989881823650056164329999674164390053336036884443836267460738120397704401884868860275676334484254284867243778050103801251327920394228322427135399386474634215100028545778262202180792056116422734858248023730334810656303671201523316924812799860929062958881641971223205958472923908427496821421107779738267042943559578761444220441814178838738572875929712588426393214878482052922075287172380441809139624070397180731849233526438575610958842977456504497396530643555497551850517662090780759686128910389089671773109577070462324591131902330544591497211452444477958590925106070513122583450032951269811083410561315101746291669436091900628794086835392148577278601597989375088210803636913327641244740421374884444565840787344908805331234730863372609566751450907882347652677177357198332690553094387161599811378715753409580898299234051411832696539249720349927856370782991008713962511700671215964019454311686540967327786436723132308123693739525092458575369853602346938178741904909588640787098060917637934685204948957268430796425802912154778695488417768389432526086829587510918095235541737005863824724308379999749938422354683137234876393089220048540700106884620340187639174096028444326110519598836463147994647356904816539654975018267915191456207740390214021881453625823465554162978847270028325727755390156657947854771138821214946612586699130607755420322527943640715842276164978601731857616087235179140049818911115767721099432165427230677403086222870426111469441436940964062847341804949975703228360747251273970560347797580946063373920907665438030348161160029232550038748977180476414656500415094159705580154075918824659051431914746961605680863475893772717211141339781751491048717511039136696566282715122611108638946929987308942565197997818152161044530614300778331619665449194408447277983929653213651612117805070907881419082833338067094085325815608463962945155077630453830226609123797322844807644493760198537723420936729611730698150558538163876176250363569924978595007554053061837186750758507409323537291121762885104294909561479729633867751148507058550724932869229377551678735476429662383258797805675780147404566759892712305642406563871466028507429519709117859141259747456132071293020937568500042846691835867026422730336711235641130650109641552355921426844400390712225076127993880945051184437197118243377351102718581046315496960459970457687471426892437941909584809267439137024917972075358159786173209101618933517253831716559488065729259441066816786426016497945061667804471982782008790358182508310936968949747863150018306658663266165832562208842780117656746235549737114309698226352385757138911041426093931908580230379319740446644020408610287832432329163444598247743152699772069808656504358306536195291026066939302969989500628134317890337106845321663061057917067965215399839911917271186070509154637621786733987566068597762612966021251937009598952737874590830283890369079138022512337975759652823721186009507678455961804949505592817545588919339207047380054286666834081194891385737302367083115902337907542252527305100768384331044536272986370301334900000163453431270386905660800740890437629909007242211826026667437112839214076229975688814696955017731688576792153516099616316372406603879810659926763375897690463296563331470356300133666346711067622183615391341909937892381371260580373609076275085402705774171502267762974883139913190274604273808272531755240387848727487397111028098022909588021945803539088710849309507451010314415400789911594099417789590712612398230347416990586995716417284876089746925007052447899009744394874668310244427802172682349670455246251348287969534586457013343313328654596760510404484992590309243731150958105534236698271275694735943112183675671960016261188615706176967237493650448929830811748367059624719065326954565497072604762182899894784145722566945213607975709524668710778469936287528418847143956477286173980944635929866197271149703429251437380741413358563673940844369131863253958303517490153743855256301506742481605888731328246817125734588920871248552704559618459046044862249575559195097511249661279326823536444173823191187911996237707010103269695122581107094359250854076858007096350012485316136694397649477840254800088165694171438096708271672792080960436606581553889237829355822725716679409366858249438101715595021919108039861952860475691573296092209338836932136183733652516645556380425122879247167713318988270906226742285377871315980694882180468737171509967426481089322898418014222913904187910365223779745442576435382955851899844427861957326434745273217435221127044255774375106480469529017047171121902237173908057960189063956099459495806320923347495345809134073262151501271851617131494204911476419412421739065455393400414909125932825089232368532983096388470060191815090696548533433814654621465364837204207730125119231719308749559242722134450098088215791439714613130836762626660002359972722620314186024073392916744025073607245998250829774016570610688617617673910387036314852557953822264780614194632793906609725846871288958316028797853971334771054250949704287641865154117941883179968553736262531771733807288890562203490243527300797768104415585877651496468604389478060339639785786229226476071466394974848377055972286828987818875840949906337068041352599729453674937907125494639972049657192794881335320183499594445506203671153658448951326341569757542363590657760854031536187765601950433772980363207858579006285714775417619574747345699589308698551466022809106791355869927040532291988342851566286023157543348604266928718713146898199338696061630947887315951383161460838919350305932667806732618890660130938405806118498218152974046482217357669853140434692022927307723834030427207883358976439355835529202454502655524605804659241231713948721752413762785228846438148694829528691949621948893436941442306639785082850928123160260427072312541420354343905064926986761501135203490562301047376964160506023987732818439742337620338994759193578596360893236497275096055904800212067139639774764035893672942377169567263738470787462375026115242993215035801855658937181508459153951519483926889011537937002807985172957625932127611782432681991153341735604948353640377816962809426208150216139067927010410467842517828221443054929023715657538060939016007142603021818494487559483841947799065679398348171726243058333735989258502016061041995275395259463483689302415728420769354116334983250650975603339043967108511913343848988421891454698483287342927141244855458047148403570499650611258492197696453438780348437551304186484681233412363091308849485262931944745851037764864328715013649901553207383211029752397366608090221762553365502911644052587220690251670383214286998070911020083666813892839695358041494897576868223141223372896539272981980201992139254966684759911436890670599263661334428145278564562799613679718729650784879493842119942793407258505153019756899298137159402302053677931999503427475555120255067484073998679540060389399511596538791534466289712752563002513434832348131280056701173083284214833115500716279946742187797638844493543597584351354807524147055720663332227397717905371758538247609863053887492331357559534752120668241550717169794319489846808107804116202945219759637783270715587339125833739887618598094083604024352762199697660221626939264995313555139222241131387140429910868819176431818161581262499492559493839747717259396752431112991091811329749075819168888915998754709681539783347416263282457456633119522574881257806158195111358341857179684925573815694851352555604345240804746352584361339719119452333547281822055580189510258402471088098434623681204877596746731022820094690263410376770078906798963238073811026222201437785411145781901752116704427387191178164547145968480823468460951344699974079623363040605825338651769691562064676562853079732548699105575729987999156975413411844311058115303644556934176086561225547434911260747789640712109167874794190334386845478294603007695740527451008660192964264879401964418251259904957081002061441396198919790019951326844145080553468558789716050485578099449379335213584016567851310556419319612146964912077920882201362448121636357833019659188863625696800715800193428496796091777397091375509826446980949961201495602916597197220529066079884588303015813248012149845220870000762868391079947746175407146728162043523707884136878936535874366066030849041800510548776723253166062904964556711752532996949415035582120488705084302837025519349570048545151819590012383229047372224133201804780319791579817478033434465069699340054166788080486459563868284264631351914396605440151091153548017783546567191639418018000022584353052500633668409858417497065243096968871262831575718670601734870955352529002795351493193092020341368704967695282397379366290856270283719042007888302547485577912332499828834852164583746292966348382918928291501696897419082256485263823988842851536394229999858480845610178304393801348047947397455695525879413012717806184755516150016766653187386617177123601243946810389595615720271122470715313356754543741282314486951902184817034587014329633433828106528506125358627193586096532337819334731345004982801528615693158747919748678434803142681331108301798465376648939469309849677469170021528141844871074594896257509827826252523123488555841479660313521651212614372330210739347500198210682693376689919562029393740485810703203286638259586472868535980573024116221336937405797835842864645025749472977770004276723811931303861322411293841649844013539122487394774346563725945375773120753432350187878819863858801507521168441493360472534900485440083778000937254421839772159190001565302250904018799369185184486417464125258553740181887255249928463967182230962256018732709138131724419316540842009084193690440836338146137361522874347735912186632791727125806320339752343529214193017015721119990879155625658529508854130410121941681444766029836952368745433122233039474557202831344853980474010691529936682855054400060870031516233568600308040755836274698653589388289289447658165262559784837188735742303876833678389309238973566462683524297182200097880542907244912375717607437537462855244353347278709563063466108037682837839096787071404183310137975577932668964699937184747674033650552663652382391188940466745552134679785394274834662542538433716169486629186124932918094280348708769116590793071034576737682784599523658017397573883403318394570632696336398881620293580041559198060933160461863059280043623684443736621660537220478447353108051178853233208146962297986160621026871090175897838995659856359903559588740510351203884825794539337092105084208982685522225771352977548201510926873534316850114810187493991376751614802650552763177529157344375162325859234398749222536048743134999387653101475803845600621190892404767176506967154817039713771667841721890016155195851942245975156423507247087376895447556104204483468170655902840187732619271945549115521428064917046925384440574991778528854285392957859450521043836858241299408684476058351067714374387873574284159135409982920467317419829321771728304340561015347017852526297227950959202642479336198106212870627259773926389865941623846759056656779777598643595230237451418177304422877949317924597276346824141109077597767126920654455432512438112465677911640913406615272083967208269463913114200811220958199637394775852523748263122993628176619169948754972867251797523196419975935946107602528006985810169578760565953295427041671449575846579873836716569069427161796075570338342873145384446936929062018252058273938270041490143723315002128060197702213047809139013278939585443974771356937630095157410956987470656683084030223330581236352245190962491329200630499566634349602755398381056810456466140975023339309727708887860455945468386437458490973813251319730120032035022009766418101238920562617422406590152677639681867122643077512081323621163264054647801852936510296063742573847453420251550588467106903842360623768586079071662513209290731729263626391286288487350716966851163021102650154337392771981971383718549276242897851682390317626640235146589882548354836074357273557859027720390499715629427175027629410997422671131001126102624195212464130739065536841930647136330850046615467419617248942932645914269683125972871139454023564457120060012012242384430980039147235855633826344029861681926900117529289645205794580732869501645583951183649397064377339905931388495355451883548517813060760076565906538379934896338294381020387377522881870989333216118704273900151210415594948453707411514672614759143818058375222479633644663808924902358708754177513256803107074948902942665457555185326803203630905931462786799659257418454966439939612549250383096871746458042754896997599946286242309313013319653610038669343602722458785732040777733999437104256787781935058895810559850188756487195460423662127916181132045537661353026114921233423304113762308053196382408725846889071896898071638257116149444612450032919463226278811164546536080479535656016992006544788518301406778285206271056718395221834765347440626364603488907837468841945632946575898159347247106640806794802624477345089622340571797696384012648533974628973724597635226054637428280035419112863252337415038513306716694311477191239319775619426183816783995870263805652884218148404624360715291771230862442594221070554715296036059779099208560491910678400300117973402757275388945062772111964224073338360931811112908891260158854336624502717415619288535065303138572822029214424991120075827824925679580539265493781365460905054935369576097234906749805938396159272050957732417561451258277705310629682496190013183176510097484158885951579800132613613527286756188397289098406938288773144037367050891405501024691797143302163623862645831530549578083719113521447770133426651516521622204983358431218564433267910724511966742163852643248608560049568895688613334952612984417575708608009229071219308046273126736577146015400908597896003535685764466354280399288674279289746952903892652577592014278518761316554949444480586073465195020500612572865034957944356851614648447934128639258477080944298603066638966312292616843065128754183495631704848526337289938787990484860439760590398515186924189838041100268623974114235439331058741591268972277231328566464676270879353822870170949370834705082070616730104999974737395506320403175477103985531089130768153854753617416707140778472744721684924969758459996608385449319996069517242492024957083572879745731186009716122079230387881985458856000036313564828742622977985930041034610520823170150867718416305997675588693045089560444255292142397066265508511319726682507187719409878495274257257520659219156160669603168123518345808521396687752527884157888830576355622659113420088055142631187386196650061510230280057597910299444480363251644364653752099814388689290876668921689681863610152164035806744544874179123283015489687417552687988077722416436013406745719681153381098478025743149150327794083478033382439150507552688506756540801921615868417234661656304457120181930829150689293150814141265531550843515928295167304259551341389339147865154755069683600360784515243022002884482553952923689166132538002562535061554156909297302892463461234637227128650128746146028820530451794626315623139986963538179105819720827729318080703599777634836117215655010460667359495793861196994103128099759001049613965501039358547167455499474557588330648419933456135367612612930288570553068164795155030919593436037728507707165390609841855145953418042878095154309713006350903600307721390511293312069262310696262522420515193699222450684001837711235902448596000071787395108133766909217713205148140674239892013603400515720152078233879965884099715192834476673909844927028594449999902915946966754789867732549513718791853667055549702116229840883898278485206328428076926587821384347503428510339980577468593531915611933192703232909190922494265890690768308317511849692928756126567133526356708774203036761166660514126529708723964007348970139441156794434859501719407151520796106901116236627329802856575206241211706725436044418549898991119817673694552375241096254682173742479919597230374299185563492130790834341680716782889271513334333459449125303329045395732698196078801169562214425417151586472375702509086015777375180205098295252346850382017869160802005019998953881347175287806790215565382264191658777653020915819180890484613374375463584599482438942218926951365851764857964156791190211411417037459371108405813274182419238088608879695749756967694612884752749167557525290389131432024045233550899967759814096990532413892229332157132701028565374712454529296698778888839902018760318836981917149263241814728843016259227539725102448168449503618077731932514263211523656674083656629449107739658267887945891716143289131524363556360061506245395493708743505739368859926773623644021367008092155567542165056743681602305572081266427614298718290776143661903446767232321482057087281600531758116664785862458525810980037979885226930690385838772943181932291788976543182855460348533049139499808018885165557667276787212630824275199284664636043851706628793450779301201017744971401884850887708605569750654492231707788860626787535232345299380539054902567812765093544744195537787749937033921671425235469206333529529748557481737128016283868060352589866353949932858174428191187752226435091508603771807650113510986093659141157632462146061826838692780433692567175011177739711557421118496508120310681360582687973767201636672102920653888494907750677970026790841091098171924858137113385852857678082518934108633059619777078691817494659854703616014781856143857278988144377457977491728154667147303031878482709904103927819323761899516537016748068521746500443491137392632907588992039178917064274529986344970956286240281034134474683853180905741833379299225104595109947017807338946773778448231186676392701347207491883582314440325060411359184547580215138567616677951418102142025760705119986546611733991223171450060585416408778689724114688938893560696477438343393382464150528826136524537369071810338608040281008185216309576224523931714484563373639643269570235098204189450272528527098647535451332974849057378986437764798239470294070422841198131376410491386783627341065208317720298946774122803128345780869053118333936972215241862674110561461477698976161489376602352469258632093457183990818161044123290112726383158566447382692005810815994325431856994158349375839167821353587756589735604138474110052402753423011596918235153299566232364926467791533756167081955155673440731503062317535190027698940917835669640094303561063759200233917905963181456783860136224982252909286935546378541339346794657948446749683209372651473865212058094098794712408684106123885776808106206650730216366173151220295162660904228310275794552684708405092852324032090153170492607090500805582571400596939663645113601069818073177822710227454081226419994855926826087175498263729934615138168609226475574778713339720030405806866433083351231931614273765738544421010869786648966568956778519848443343278801034724674827086770586408197521139214681346555020365113752752937505011097275054495125018409146314514275440506648605829824472717626752278450890351378332460438612024839819080840673684832387505980226422554546010677851217624968597604425887338577789119065840371675188372692955022121446559043718466111090250484195557324137060138515662448153238359645722860388454186808236723569039471006225398138933855387070097073662201764692839326548796014235444220099095369688207394864388259181541513609932772943804301941115184534575263274981330675716736274103264518115029809680975670728082078622382618659729138678842061541136826405077353435103442069384216853905523473209480033857744866635266257494393745036509962880068225684249512622812185755713579630383411989735309198787828288267282113865431283415588877801757730197680947361162506373037352289515403835026323461314195066145240717202973662265918656574166202002242530705444547171864609637212047115621468836839987008664715173105909357124215804535816821754239369203670799132268785107486586669633220669494646079440060405399047653373886589681283006124946260902128620770443607173661374729650417353256884659920925419815333590481257134401664904083453950560795354702046108555484348426663725179657972374300356027150738550569189714009456885686252726019815709463808714169793540018754138616524108637757108813956340318138569255168043866650597575894188393886654442374153662450158080719009400790898989030739713966596724076195218254018045055706765596335173018759733639111704300841943109420656186295377126419814265971637404737763879576179576463136208170979800147162829396322155190875538185034660968915721443476126420419705132190215603256429198626534897340696816766537899138447842024867641853488863189636616324736059899077504789960929254425917746332857152285732533079498461992673900343444586081123334410142008956126204304133968089692405436801956774097597496273764788938054082749417255618548216589034724822560512305222931526123158943110054198587022784191346069629764050434877388742802449972545130220440992835835379036322771967326062087760898881481181050717918088225448483762075420997835296814606898983023596343645703391593371066063813619558541793020898177199138892742376557810919407757627384796829598572032904305444465579754751479391283016564260360285745335740393803248326910598970148282701086041646234157264347158818436730023866706024005075814562791933636263438886664544605996153068659051308126034246676392517239207292102099657794176989315783370346194645800992389194302367626971468226613636584760129800911105635891132584771340915237991479742744949976301443089800909533631190944067634231092333368221252256449731464295763005982038565078887433266197540349444100067150461012961530185070994160047819979238420181044713808441666090551868937825042737615108896791462860973731876554344479090818940072407938614566071909731433561743699965831061018982065400107228642978101890115910886383913881595484321123160452029714399776485180064450669471519020580655831474653584781566452772715444836901331078688588675652711437520326812517452715449573645155562139465397471309161753985824780449374114345140332580152350903541951262875628330031261873684892424822370619247296547513156386876144853050482123768380959191776014260258420468349188863755868559527726882606764208926931131875709695700217114091418128792580949185945270828624515008807347084608276476288928374599802664726076921301006063777427182024235962347205950131562373067100788021584030491181891755477812096026752959282395338576652918460719864536932825555015777668208416304757974988421332477631505378870599170069051299328768614187077712743057838210921201813398630137510561209333486149312909283714376254560509750631101059439432865420725202101545532794902390737830314539533587486238037619134810028663870798318817914404298220938042067935173056298561175588213878723387362777773927329642980525006357526802566245438485436724950062263279823799353754580171449934821813551968076503880971815207132657030574623729199638405737413124893325706341825626296362620306306665846441138141619419232535435886279973249863482534187651048918286182575538983342126831028679476876627978180548350977313642292077695309778186649394987902221721457688160933376161224140188184017656418133006712357903940169045611525982632680379278742896776773820332935612588252592297619581020329716025259942839021903795230553987630594188206140848593157788352639285496113685441139153676064414096363625738747851657106653940008513216494055117057924615840210838707762628806014158484976082205902022350635008652419939366613780846869694941553218995550673430627186988192184508464879244313345879017338820415278218346862944813354445616096052732460727737933609664046277032171689436494753899847595179434935132174438114076546734129610506654503543850782007718811107388920116426582900470312508601552025618480879015675967559253527660115378167106896404092123555960843576366533196605818178237153341304866711497396498954718429598117010888475149517368532707977417189406467637522393090314653165580288073042766613846245527376288167656657818322344561668817012139421739864081512758815381543510923455140036971448899727864504105403299706785639134130318185431488212450948472458927346886156734422345066243064672845789146557419474404246252267533088998678088674188263373790413127096173512853726958150918581187885301249183812253647939515962005512341928282112771979734088817674655408400268647118420360254797364423431041747407365053051666165246249272321419154678289085436329664086621889922193873102646919941095301005808232918223716827883477973693492357640994561759047002644567239838785569883784818635605347136129687563976541998534723125520617740390361564128037965421200546361837642560362210300594872354151319065523552938228538383998258305434191367786515195641865880595892798727735158896745363735486978219622727335350682210214039165735538853680500543877012928561016060028707808966684453154113652952487326187717780284183065923756727884569875319231885884362403139872075523473987473735446192599050314712181300251319668140032008496455361701733351336830506734220022729646280561034767199258527200397311675993626296738168897271710514613188044277248503241532036762984999726193170872300886508176402099259768410702155962960701219905361583414232598511981638758066393466663485744002319066583584220003497486038503452534026662868926703929546551991624566385122710484777415920923037052249758637748059322262988374043836815986874756890861160872779226774868475265915061587596151565764243334039362315987694742921332124889821199575610599889783157791266573523012650154127662872772116646835522151869744996273845348713646927859278525234467774256523490933978237649059150423355784763780234121507162516450556100058912918131121910902648901856288210583036246884047984151315373270712101484193737518330061593560913760721226806772917737608263107320179913241193946110451180777774520485547906561765893987536937559595561943369457498725320732191032110501064391320602354223929142422209237661253023931834727045133397865798957318004327346278716333969164918408897261599483400154842397955893043470474548744596870965299706913817285685799182907417683781274881884951804233971233229100879474638459268904204236813846233948629779585994299726050911588061380629324934277026934560749739651919966440363535028900758227004863436841106487154059399540564047784124714529409314031272253436674915767828818521910642163560456896428614105421738396804438727881893511328481559127710559238923790626349755291453740700711172886897987832817216053624413962610592492079642174414257451923627076325624173207478631104652004282692237686238615218312722821498070076095004620385732799336146829001116880100659109345408016767348415521067033706517409470861856749417516059142077081147034813416097567370797723656785187431930880088174490493155580964226343507348402924660283503861954091834946215364232223320585781079235087691935209431920456077734055074057011762216970524467642822621613455255754012516128683317263392271582899798005253957477587270495690465992059461982657456270053140089435933813369002990165057478833358070733855246158248278788023474471141119636199311402697946169769713519775120778021957874272090048286403718378531544945340670204711350765552616265609179295952294906572283234847068720715999586422477287992618012343246016797091611075517553693288006071767527264255040253756311440023899464811647229588310577333458689565467609942449022604730278816554415269857066549788448816527564091689424045761013916701679649422143940915903560950562789336073569820477153561958876157650073949841681874282835851638319137611798493086025027596219153136333871809045323329886524322609571741940537853819353773042289011716207646061581932518701753054624772084041871051988118124427428765295554598535523946273766965217483041163438216235739213048097306097664299327017362292644772176273147555805949811507809856953405998401105209814151326810574501255208023472459861431367317336602327244139968746201247950933833671128199708835667215458241489541320026914582102700184780298081289532599561354190189612137915463823145190636926467014690234009418265026117917780464798861793106653733856178009353031713016696097093154530795580202486526298209145232165292574214071794554112528263585381085232385394788163822154773498243288170178454617541669773687822748715515263554724493029221511794193174912229805210219452382470565634338255853298801352240160503633700972423899863195332084747927851726784068169623068520338483626791513850037373355858574332389751679054151975853587335824777084109014876948846843477506820975631095414160629968387102184812930636310726668141590086486158906114010793253051431596458543341281448507768417688058013318103371993845912611030533061144883373334377444162197642256288176474199955568709814353789851311739797578065199896155747487183180295308183405176777879498996546776665112233980583691635365534260187038175650050000847285860838451548656734613134407676490682282028610696712936606138486170212827605498376693382634210879259209850377770505423240149154744298664619725933692706059296420384287177104495466814262742256386527142987507042863457070471088355122480532754775330239521461739720708387667842372644349265785560171341747476005521883314663359514642471426382434292506245628971642893624570235992596467310831197360628025412783791168126234016867461032128703367224313529144483292921735551059769434761141185783580049176748005440874840534502507651291257041612706878642603287936209635060401461671477650428479425507094389702496103751310172024881943186358182483999821856908588732626551336280813815338808755568619071452327561292270747447019570367335657957470383969348405202079783045846339577910681362307173001392039724805987328739969708999860771506196605984408949993535482442632357369032316852897868222761149804191298380421476194519013617823087074861468213192804101336510664318051018329854038747961122049348206580928120406091107773492829727237594200010274286278119325258891092598687353681142381454350674743818443047796273574530525239984962725800588141856672729758279051390828569018746651263772617635619596105234270540148895076249282875396949288796991678869407696550923581016997825327230586388484972253607263935694346558884503374154428226063261238376894688733469165754362460644896030960059986798044976565654358263410742283738544096884933969078577985580312953148628778579764500290689598798192134966912723004794593771142971401068996799039200502762624609787798651773917718026032652401286140886559459469852694550146605889566769032081439824826198715150681387056418727578188367998782518367829940282330191171207296365932190418128882877971558809326337208489745414710562497445542922751794917496845682128886717834789577874777636676720234455148134045302015721923223956864171612610385797409726074777290188860744605582337542623991979073299908811715871206443515616304862997665527414064550906919532419915493145445690616981046384229920808343968973468923992023575624226357710012182334160270863380605633855308322334116579082502239655986217683052975524784783836837057900519829692763016335187516436336173269010428706313501144638212565229714875150215450682722892246365435925780847058105484968390095213653715151466294172706939966178044724994258709021327142880946908924368194139152324900648697927786639142347209783412474172042557386994217674957700348813412408338470264174411225561537900789713427798132899575613514072955823165800043322111754824215838973044455852796082113227953640055950652928126538563169336871593589565056995867497731902821934508837701864330400113870397368722138238117557195798479202772167765241268393021574194550263801171946368855681364646900479071602161024059666139521735210505611919398043396024449060453937139091138517184255821188626952641533402802108042763078217963618049310055354534554969203033126222139445380315827453354916949523649570908993755148710541239495941092603436293512349320247350289048767743548301840352639532446330993363852414194053622373136535240400947082423620405534968021267933748763287094511990046302584231731952137106879742977768654734355282566911932143651696288699229196813110527281258644211767134794895870653249991033539009943089951101761724972552054131184964013514335324174241326131002527290429224020685998391066984732836246451618436378331550399800447508181733581469646160903588481931023265306330868359864642065870939480175930155452614221708203252035625458526996759483662714529958958151817574242119573079545651465126580681442839589182162654194786895570865251103984824587678734548442881865486148982080328311208713915561431172112179323679306832056391579106362611726195950362071456874824816655703061793981603526923874911833958175220876010022184751821309954812654086703395812099010280399603360692284704400863464439532326803145652428271636037205011091495229860157938272224627253080883820804587146725376122170877121963146255440899027283606032303381417280453901870822421128791995748564639042904059143633536195805245442036529720474749255995922742734835358234679684268548448947536469221891296856032023866868372677082343680236835153711137776841820403613110016935937833789677252593747202305563117453570563967694273095727508318015964341570644674127224449429595992040944391853133610317967148622555903027109186327700114535191564171157326339219282994988910078491314510535722400542502759900016894870482851750426671397190804509672931233736764598025378395252811489702398211112912329507673867966229563131644004613191040669815082221671425017867005099131014016877192557586749269484074759184230535053581018459660375961795655057714312245768144505637431122999450895425507083023921249539277733459868139164559012709163317272243787172574109970080474269887891724366871215532582069048864490693267738701646874882793903971797830377296069693526298669140001668180769662061676011355729431675102614446029560406271687922640216666090901265640506964046176576411171288945834410905078414179646487336247336201180043218188969972862084574695259079041837000394561167481455909164931204476513301056012780594229022572813726212827745108378146994051211574150082017187187214265867635270814525281714501065558013988768715250264007714132509332771661349145474450030182669592027560141640270589426985544055835853289396261529693894589181216469910707787176825727989651530782846294763928667051148508526595776155282590439931637880442501197692231593727548548622281089743873146585771321422206006199912735010951919439984615726350412730919536066073258661154768861383345638310191932278704887605401570399247223787532313915482062870157442370205742338779463023362740710527548986940286294223413500593456317512314614353890577264523984745219363278929202008151579702532430559645376428458574245381023379770619711177364900999014380955895256947512511222250091498419455586121610903405953015031059439447473676385461183201868485150165208489561363034512498605439735022176013645805869683453098828003452624343223791398276884753894789663080503026211905816778380003018114775360562255156279584213089844767420584138849713202675078562828401247416871181915127381280617097890323902215221805544065866578483160125664397711943276889791693665916517179297943801601968318626008183775919045052463568326088979119261263985427528046937553542942844820689418810537316407730805204705343110957254016122793379169313595875077170909072713229204957500113610843029414006512773101624045798205181545943210848712878290342565720906002793237496021083768089548160753049185705358703876849354948256194323011517719722073792410056302339122373285246972809569735132157821395185567543056480306400379818634201566803544836301392083860927805714747799463530851868978209097127647353969129175612330894414702676430688850004364104628566292635244961463613983268854992476744378449596154387327690150486107072273807499881521415926948122209974050405263813791646658933213251833770865337415933304056574848815408908860833752645553414674502120275387736930863549253447931128136886438594266396012487969960902355566059410890890218875455484111117726640116099564278966542278067133455623559222151344964416289970407288023358501303053668487370325586175278575610132277876351249714558344216815123866677236242954536718393484238087000051070745198157494192649188138650320180737577895590762349290809162556305115392221837643528020950316337090181919226566800198461789280485507583407765629461768427618621254957082123879586991604620188581109497538621635983812097530099325791842029307023931141832778811612936375744159998588737211179589268052807249047220590247669233366950751025037594225609295034751119014029640724693096960373482347990976889159495343041678452419560219564286320627002132919576305969032612050901307296281500088602929783551872833495755575763365618528126170142718811069949469045858637259304317774253535308482912177797057450004011445184676572712161884919932761225353213458442308668869304969189088763394548223206260413954648886296690538462476995665027217895388248832084098191793138533237007334937316914592454951169978209024759292906733630629661204735567692892360441774776286331468777638397229358353948808478674892087564803270110784244094413360412590861761473321508492355949169621681329533901298705596584090303035500534178587396461685999610785381706794610869523380191772646391450975717177821294612238227844849826177363504488020534200367305805431990662753216928384391536877110441822797911259392040429933644874562410958564330851735159528666986271545336194624392298853993975155586886161210832364306108506260448910855403849816776044144668824184307398231612108009879770180401311199390828438217988448574666921430353076323107393932830229884491474779512958557510285339556841991116215975795284335277609813125581773189611505216593284717164612713139618333223913418941611830311377695080829777707227816616251276805875636573500704849946484288945524658661605809465506761065924301318372864501731936969477061375688538005795384555538572410795746766477112193671367120962444621754371657588853231044409126353921659038352860415832926432264534592717612276399662790055507229449343018766779094376534621007146284314257097310643226802077444050314925304230390664061034153297033896452638466773808442652479009726198891398823201591836905088550531375035872558399716329665563676746264470723866487618874486273385480795500172452818142643171055809397190393585911969973912020987983742342603463550087182791386454537335794220819235552321629598815621028247020202224094573124857988430324587892099571324519288604305584165850455513678708461909565672517418152636474064807005438411502867074406297979611193605914620279609472814624009844851512045591978553061829015638867949772582080339529040138705385368482622306726799491917297054505671833832530457152423036828075198144454719275165096939713992038003352487346458271534983912556131546561272327564561264553436935747972999172408305172093247500144624346090334701095724370339165311654705834128704296557646878441771355196923937658543470354721957334623056879327239845789854410190978507977284191263344307227107847941430306565334630543219766287909703532670801927596954301285658135041724331730219329095951577648441368921345364538354857125701548942181964313786387224737688119658578813814735679366795031996641899802700384661486205043539006765207037556220239326784066140244797811169696518380668980837112967365240084096932789902992654574730633823648844489259087939154466354897750909598216165480201707315621897689051207381583427897216065856307622932805887257395987119721431070589413423085417971407221371861535519085164056343806692802262846956165041221044543650987792210012920050841050263136819361671452025586508268988036189230144001038520382977517234138502170049861442491505669784847211225495990224425389262958124792181834719325539004528887902819740527356758439785121194209707017448602786650708037613627046486119347580476019988299446871882607998142439235580881796606455693149143314015062945702883538936278313824561694077634809420883171202780684734746039448109831156423055462266804998626560089024631052576871086586001679689174078105302130626519225946820113173365373602874119583194628154568965142789899369545960727823034613217182604895186198975446031016356798350632363635156067951677626880551141283941480568203727723946473734918802041539843344066287639475988427073193549225580806436160689036660393199588895884347249942535285664457173435717590089281474905757883710670819825571796644288830929302774728918927227886395212394165196708955717829508650224186452226518705372883427890321404039854305587457595651751658324406888868835774245583986575683978474043056691226593880375052325262389494057562548385007656796321416312668282091493863650028701036618747424289368876836439268839511714548896126206519871143281537142746878990044791191366737573383653322405385019829632912219083148343553889809294929855926772190875060603089514729325628585915595093489652033669511921928679717725036012231177512677833961188257887936859165927330458957541581317213291167029028466580732582690094008349184405644360879171912097009251783632869577751872579484586725441385752885077491541621919656737683622941988477261978000071367303677650824837125320499160670210733636447356081742878790840994064262221453387652192879083956834776425915364913426479968647114645329688179011178240522930388703146402622971905442197988943151499972645036625829154980993137885056950350945101349963097890463770283167987716953812480798604412818428376542933781352658412354642122414828300797221098209062747591756227015077366476051740428766074184671526035562521666261029700660656850160295241210890826352002545563062076362525276106051796958128195983400227274328078356393484257023358824078045531993733917441403768345460565912717984058055711057270774571658539245213866391144566863410287269232335188331159944696254725119804128671279787842575794163480036692059856034940310379551585131871249519471690907688676531515174010233299514046816345542930991102404659612888818618974144611268474034571460921501040885378254617704977940764573290088127303364646039929366096667011617164348030352805660639504520338562154258582095134231926974469054010762715615066448655110168953346147652255554776548860412604895981760175355671866217227903647403332379481206593393289436827321446709737722604885831291727326920524154945129159986107104199042429546287950625333256552413135219890408039889929555660440637369543129269502148603567228804892755673695167809582574116207765968654163161823489134099763221302432095592209715311493175593690528203285359290867995757826310316103163766038711782602724263150735206257081297389817722634818991875211667802169889494266277651409665416917445295144139449904091904573453647156022962137357607840796782383874312678299586055053623763495374778023401496119333019903914621563741831694409984871643538027790217735237036580081900931510986000831496029629633784217056586508816889652420566371091694798765475233342344451611557997581007967718103231231366379064651537685027868938278470634337060518735272388472735636868406781412872262744923604613450176487993955641855247483305958506192904151094846186475358227720247719815692265402414752341917363642739033977603074586735240078513157493523718760600488638272028776713551739926526402302344235897486245463465444388271178131047751438233088726158365971303684594033627222491694322907517332490414742725566137440357940016282644457586420651370964459265293835568568594460027366814810916700661672136196032737329412686669471746520663411542357651984364290677220016490297196136826809147656776385995873718176790032871162341447848028363360804185335330289211223264891091362315185761011140922008777796531116100746156938028803163648628541569941326817996253612754786360441820100175357461285111052694864342568084532622940204493341343444375314758165517804461928903432742493298695376514046141499063318790651240487236384786882226111041149036284633122278687039666705231417987669244429313610665648226899100689566237332012602040474269405226323772800631116193671335381598259665166558697508441965682006674335448465153197508881458985324354483757901863336087854825290520486901918096688593778742755875944208111086945450421781969266130599210466603033274875916094363237667573517616756805565102322123347741482837766907097871349741132063424836923478661169915988779889272176906494774602418172579219808371353649924073099177454514284870267586918682153851947270313130079202945400393410787663432379990600140988083303716485657304023904587121132173520831472429565870359418899629802896748299229272040973784778004762062012007753330691082595796955830197177493812859133977664219199266810148078012715106484386279510777612749194505150914320186735070716333770794486817440060928458972403790241145332560950018508525033264487603567841657412771634047087466839842347870528075979740522180472249771104049745095447684993902344280531774570858479873040788995159435499384113593552058242569764885435937395533569607279422842504365640879744966908789317235725157324670882705072626233839509070813243318136433401081123658973735190374179900177373099516757124535261083883965779107080734115145500605914105509645204104161342597074639204064442350390970007291001217691898289092038051716091802088501519775284738894596398802787433662777346296632365723610792090415353465744829094000122958970009839023957532660832884749012572545205107692906833811238391804699501664733754838117454857547789245512056787041472447562950491033618897162543778666773064853259419613379051817230627909284052407133017950728449590934919389682062792691502701851056005085571155165038053964061925039509682124671011712207980226350979772825701485992341175442946859600007666300746303411853740517521300260105697143232795381519982397010565415573859316356195365506266488147338274869313587940950505097156798349871907047958077422643450286170928033110320972429297151176271509010844030012623838687549211289000531831235807675143519743007939393847638416706965872942539386858256887923505866597868791776589313568660548885033996329772419968388429408933902328469011641316202516500259842257953129127650134888859185173708062787965368487120256626899260150542721611951267916306041811748880752926279900778248741246937986337966561659610977853460970941901728350413941766663850583345074095906419572030903003765890399438287245514100065978212185383071570701883899763684914079128700292391053766316660774775736873547464052866644397823269337835115239281499872775820686052179587643387669633353738431203379137170748530021542050417402952026735251456228577139522687166240138490525479585189118301599525029301669027041599489622829390362035245933630348723472105088210876037278368147360228660399689279157080234952980583266381944394974047809783216195589123830988501054530974699491127259046205623347044128121810228625958405280175743290514960554359042538611197606898735185184153992192190589704596440363857363401057114631505796553881902222655763765719892264528344585615059946918751345537957830159790933966113561431509499088134409171103210861122935711311294523193574873168199636416026152796812774276983624807777142868163686206990844149271959669864650478056366018883873772863912664018001000427082142156878042238589684642039469377412302932913773112610973846866284861972397752538222421007881652473660901722587678830625634849683550457248922332233928417555366353587028613305033399338317322110626160469435432435761480306777661237655877254086863417891092166992657756527303706391439042062954251870984121807461792432794998333889593536614095110374285512432519952162790847841862006682940058430950338347427301479028416903799949559608283665590640813548442879922535475454421282461988850464454125850843543139167621617737126311874852580671838948038387565695013337971384253550271412385778249299233189147583435702727645949855915084624528110845307034244430924712668275805274993410061864042586444997480235263439480390339154091659337680191775993024963457221968655922547349724840705412979982427500784633477673073577550552419409179828251048341429212987283466039453401505969885363543273449912739619637312766205276279850032639591402546411888155413521124744423080006199124525339158512955517839829709939029186233665480243032786142275325885087891388886392580736183484861016689492528317001422492005795654161673874012779917813697697350727964551921124275857455665017544401072441962091164042858641903672623973320887164123608099282457911132367019799717430229459955854719052772020719514835949755888991069698304735908343302693751395705991806095312044045699525104115328223412331198745114360260349411729836407393985881705119001386861527930230411078045008902000717670669069259956517159183375661452257651223126678543375416123210771123000214667292271116206780867377884013649601817779110074157828579295656830264792362441209173329069507511379127878077125894905137507679680245718667078208640839988411512392318713505908344982908499713297823104990555442069075523734730521656989918376817007859463029008310716822504507351376877771956576592963237724748600000770334065128218605642767761507904518286943157913580580700232289382182055213444576531873266639821213274807818074966495925331639333385954251441634117288145535319147989624405579101357135885969835231046429095366921880305262056685160430529238304795348455390271837430867551195387547160935775253658163582998373040754180823802282959892908552540616347707249422570440477680956858894457286651637720922831840224852048646958006265629000237700187821005440085710342975855725606549902792065272148254338161955586091573394199283011560713826421593747517566511807098468288147215248132001373754651785764924628378206043194891057528017224168926334535191139823053858602881030155713987112970158803244718852080817073847927775270859287081105401023401735531473366735907710534882516420929962145343132143454934438665763893640803399366313412772164404679624901416876445268753315861073598927102489218412043094035495563816926248227986489704176408846964063343097805102668470596334641847819938017068387144095079389007997593530466695824062686856602096943980948178677175480163928662711308493413578550085406515851076376881447321500891400666822672473094133792510290436127580690001279002767939018787350636621012319559308079763418101103945871273332732005352364829615176425354207075818593256194465618827009028570877803114864782585614373811817629449307826238744306786812434047701045234465931369929855969450400299040594295181185191067654588875339883754622099981653413374358702729363284699193704491492003157981035986843510524748947882662447344704085993668207120290347827174158588645018057652668912708033415583182441832545307969047942403568002426840996794659535371812133911384234405155917682475971132511018428900482989999717639336827634684460417020850657547472594442829931002476887814331638633169424315058573547503344146492375336289178423098381781394572646324950748086297072802412246797043207846070215094777422658862163407648731842405193145417773781601129739805556160975185105188064539657154973913674615461648340073543390515392204599137194674917211399753468845451621526070501053025770859558557817267805628416677012791098983149705564190047611660537733893264638116575033535301111996525105771688582772509069183847793584614515580254994950677545883981662814941193026754992802476817930921374796812750233774339325385659344654510534067397731485097214100538161153432022156898961607966740413138051092359860754388669774428629636314918996493992372210883236494642582319463455173558933965760211509565118119146746038464484074217886878145640588443206009114078706506707218256383738432495957372934745668177983580239744532127614619622575637810329117519418620107902216311908205511480675783754164844441739580038112724618511255749525991208417970436400048791757106025147358268193183232821043621874729138576780564182612812152541105497598708520091962261590391113060680414996054949600162722141048448894734157745136210660945862516810667154257235398730106076577463760280140788072303925066193668993240736722171286726488798977350600823852975989296151185815222420907209273445909664186792710956624746805013750510469190520744166761505512633444913688109570101852067127347298276699648879934445406001036266023351261368665688402165326497254688301622466271844998143912192606861779529298812470284216952518986211730654480896190327911975917068255868400276062833187516009334943116511560130474908157349583161641902453623588748161544067931477975471529120119940166552621117405655934043408905076046556484642575999662309474611325975961682191416445528489237321783336700819050777357947480623070831328392324032849332073584827835241362621949195671572433009289015698847582560046156019821895030200570941654638408136560755462052382146962856766580289174900801168501667022166519552729724267390587224847703513434579638746106608245812681522721257232784012721697626446433722434576495651865177292232459750922984735844620049719166389250041823559318509063480798108079337995696411231396367478070744135207600722910894545346747727872101878817242915686508726706749865919246175648861338187205339473961734295461240220120914848535845398881821303524317502525840574342796853217642572791748879206049189418926053936058510216233701682944092081248730956851280240885840509691574022911326146989964630933253089186778662770835554398215813490036021920345866453229301414814719495861290409260566336767968639351120928149339673546862107427615215575163038196700507691471515179938491427408853835303784774754919401805140396458487996358367831271128902615584223088038755178488497127968369008375183438281035895312192135697308004309472542019621490262830891515194165543486402627452653745329296853201293981773106926458964562648405100084843041946797712353775104172233345973802150099636893800357161082637335303618090985253967184422686201101914585428758310258266292894515185170085017468078215003066297247142461928081803865246794451027984193241308376238851518467128497013896879339137188502297089422816629633332841539346333726766033619294410036173114607842657180492488644199695728302434004525983906408534471544522613856214054497646061357544002391805448135476581546715298960455836764766046875777919861253480449848347357270505609287928492821490931816513929712787322535859672321188133839429505885143635951149518834657539740941549200894540856893304107750497469922282540226535031053266413471384919347116901322266666809204125868835995125903040096478030165842071162324050005333637486957035938745665892358558362867547544849002276019261744754420942487462140445458173886577776184381279679373261807431520753271478585807803324714913074456011061512790462130404059952850129555789796563946831824686694099165428828290012224049408499039443795116396663444318147637046214017692943883767123902148511034749223696006927920344424748158889040781345347739440094482630642960512239072653249746345665706347628191188902994760859143504480251133077650728891581014173984415840739100371713707708450168472842375339188532708655190528097188378835085883456341947088856272620167212191595089485047064304048991515945374807377560780916136664579817956481276223420966313294382611420986492278282542245846254666082953083522278668898879704699332104359494810306108301232523272761867461420173259989003356907162511843404219120111015863902310943541203463073683686868664374533023506987841681418987550723697243782767587070437360065667840560165226193321137259986687602351824763431882595957385108767503694955514969891639276389645064722289841362282840474918814284492643602607339899316853669284184738006742396243998768033816262771012176438626616640788883929117072849427334215117237233644200080548999509096707285617674445105407451064197529321728430321451201099100826403922068673147658620058085638583628139300371656838792886522386918654201312803536615843207983163518651439919226115965417581371557878487344781419037364064069029021074493988940262089774047770471263323553428118840453275555444411304645630772537905203925376720272505451264365876849545655963349081533884429533482283908469806378031637470156452470241585762973034504191034209143877784913172608782465911440389684815252642925236621762576974340259666319552716109889677592144758307220762877027697765016156395241322080505501403119115919335006642274874168798463326981326734696789026590475083485559053553392398343203046172812712331869217033586491111390285920071393961821737197475568007444004575802752955633895320578779950409149115031387448849003378240444927618099157523460754476091570763212597250221481136771039512163171938163371010931890137559387706797746998866900445679742481345440732412259817479583588507899594752507302026198940862403003734790778537403954934230115716414793057032135658138374795363297520560084815811995361348110261714506546344584017508153094697045994164914407362535771741905390696648872502903069003601922522191684940500667012917676150446110755904400216810872789648120516813305851352477574515919294876836448511270017803130166588727209245055199332972858307233822421374102734537244048846331402563501403752099305249329207350536956640882457418505809004504833298016541310545535238885449079754945232691360209487565094005300145256490899589247892318441920151180135758218352259626949554630161947395211058411356846718746464805625344736596612446816439836794274929235961664378137059051210410664625938487619484509616468922162034902630544109214209403325306647041778349318137320226381789788451236761097296148000363757286547758854063517336059497138702379665429323321551823980668802030392368009616805182223830837178989469014404240105645958732148121870564051317420473616181548077690655067395460395337250065506326963466298372020400228574559147482889724125657717022880090282588222798419472129273228171254156197027999199327161398886930233838041216254244092199399644303726202910095921343217688706187039233770093176867814818437636061664067780907457965966791632290746926585584768685994300069177239291799075892092942568810707315978460630786009044007566135960496640408341843830836245186429996940443036052223090889650395030499652609563245785438138812453218556963313956389148407503756161959966800697718647552435503064347485766905640883389606733558462716115750156751860926331489425653490862487100275966123019002062728632358965337058035638646949230370989777310343550590607980383591734840719346847152369720403583750837730412432444847186238846467811704980112741993393248886004217890708970237991436998110709811386622440392369263173676673266827557189108031252570630684831529334773716237698190995681101488719958301535600170929938028647245585555377895147898265711217469020402209181467593370284324008268351110979370396233540762645475504551989591702659591615869239846762007430424031819870453381623766998256297092507400409472684683012948775032536438555065690726819575251672051517783797833933721287130367288133281321132966046761013146435423290753295493481052036106221076894599547569964880158641633340859567578197934781900714575723991221134151189020427165894234946122557341942767484634361118817552342537575993574151766311796763734365118271191654295699078332376229899682567518270210690199495245009755655863782322691784614978403285945752592738092016333844263315466591436368595603255098121575583416233530733104258407586285557281583790683580174747647509006473377425047769863501829089869373728359704334009292696329093321566840358860009733070850206406862671950141603699642836632025177720952503327374641520012106707421245507507385937511283847376013369288241136551828520941862429163732098699884592143608716381101795227444912564795801910403895902883961050622554590802211135174023237283834106165879768781357466795957234545723712669144185055974485165566360794305117615445234375014840673922164246468476666492608696734178185915577235655650063679530270055961363168673456993989829591218365133662641100681865899591766951828815698128190630091599257056502675456775845960399559399575989453895333382314187437747224103298581373887951897197417563995291889479090254382251745762851340716723614755412855954944655914053327005151434462901849881828126491071481856664254163882159703309733873036103244641413345510480203898002885975324986692764938465772849060174313782228945193563662368965963971686882095809236951755952724335607297769469953794348343604703488220856897253704193562796933869631404269647332270767110201548232269327972993773452925620056615773614630028252135368320222996855421491665722063620423291737650647348791088620181878179553996396717704118657417022261795730345999398813088009692245599662313274350611957747651166150405136049080990623203981311430248586978547101407857236669586091972815603968630274677573044201233232933524302466776509014206443062385518711687070551650236179836564700935765298624629368364309627007718314452800441963562206944167805169072306626490470290601184456838569474533668019694171792600562993579520089151504736922179745324330968800690327516171954265504263899826627288093490379171902020553480113291294213485463371086689540231821694312832533149784406150087378855597766998217396015152056272633182115172937805110934533129916297881947548963445573611733543263359486412963677747023416760994739451921471066106140764142902287442719399913892377720613949778159783504397480658447600950489902000614774468491333681069620378988858041975251421817400583614982634074611571835517668659398520524958031268248947774633345915455734330896932076186320895130007075521639555401745401891681529624446235828966307448418258573191072813674949769467811608711501775375779737982343437613219281006592364958244500151181518445270171430084803887898046380154556178153149207140291252022599213793426214212747606630778524117781264279194894210679980654260221521467426681957489193284182159963006350955549627177085668045468556717695034820298929955035559585360763631884880169470204939843240421875781033734444152856326639957483415640409659984785037369026026404419908579361070813959823392232434412040393941832384878885469171563691469730271694229394848355430449027202150991115633026213353364940090090021032632477549308634804267356317239475469709635383698752132526360652955483992225416862192132460471510504836730196429191097707610495547293962196405275219369347055654968415521355729124072922535928923937007281304790504548054816575842184959847793185653106301682668563182069668490039114326803632434024495870955443031536639534713949941012215336351669852626306160371960667597742296451350922243173144310580131692290429147302044645244992785976846109379412931343443457125722286489487207409785213038421220612174884091824283780885557088808620965954440637311686085078258417971458504252910886172366698525510758518924240471059160253468076174731242564640119839318458857311207095694966410961835146446396466411802092019877700468109895576565078340706620333977680945691394471711166443792347468435122803967322194147224785953815724579590317130393760502454190180229986644538592265992707227914141353778353506364615310079599920124578057206218635898831261415992241494990753340715297360251322690621287507070293515411246523046124859289108865300899326059260742799058534277448395811690203872703154929005386923455727216511744823151276951114287443831416585951486461311200988385426200860206614046791430420379505204016589958563434224477417961460961614907281950016920012783465118081100526772515461102693335662418156191296804475112252525830150351608745686164721086283152667898039719425437944579251599771685665724526441636305692536902432686273308747657647887282623895604244152435573973350794874299884676987282675729078655074319856716122006947465475865012266989423951934405370869201621643569114052852413354363401318572250304217535713190553113542050633538705646195771217504951224390403198502624196856570972613655177763151054261964708672376653128821744008832497024999766444254898396455861713325467962643279449428486738400025770346168755032384402118362025035827670416199798119061998162459269938658113203446929046994852611158856472758701432244768276470319091507250657507441713941971464674209074400428884681085061626462998820906421917844306019397627739578105612718183014590617959846819050365059359493743475550989383943115579602595963727662700194380974256902157610217567217295023431788176321956435067385734013612084704303978223272668183473069108657939430885987188293551545611998934778415373316574358568097278387837688629552654334891569431954710240182149180500515962230027861652048364953318824317590380032335551064532100900346866809476517486175264359218953932118456723177905674556474270925930400227779079130668014158784063074758686007772005287448554842387767599475309466954828093782004218800294879958167464561529269240835699199183261388594193759534277210948754718909782691685104482065981804207348433452433049452238631322944648815905494431443042412998142807486774689989553715119967316675736938117219691028206176472142357514099993251543481017442350236873319503832475265357125452975992840590274011673413156497780609590571864362968129787505514020836442166201287170790587381268305761067647564398569205900024947879207229576785350923243625750708385601245098497986738975134886272862610195262945666912506151446615208871818324740982440098109086181453130983987273051302462985465652146362435030380641076265345242155088218155442998383693827826245141000215704378386650258094738514631599986781777757152312051566250321907888090506150803325189490798529672631394805105033526769911506555548971741886153822963347639461302953204500408754925693781023482904943658220798175627621872061979533585500698146618792892283793607043401801675907932315852280323934797268398394363742045809292152160277510278174322805621651169326254103963582912297747226263549864914757331392373830852726993548529039340855501988309147052269638688957380781147424745638243747369567254624542530496348100673310557920046087928452300318501318118269949015352193310569672560418885203019711909531241664012594511036936602844160715362098196069092196661629859251371565086419299544545022075389548682802153296632153062294028028442450729732525217499296640030822774275467223915581103332329808275991402138468927396706476241391780406682094100745782731692684304441664272056215971955809488289986331441159698755241424811264835037607157305477916223401341496812394533814534656066995219730272380320470000601956007405351683700336653243995431943286839423166902371744949653989623384833743033222637674784910654873812616632776431385783238145153579382481652508552493266321361817212467945290746715007280280739948735769977695441625904246745596799165571272557073510504064141872787162104782771781979187064307979328280717380009782535079128456764443012841636965265991645331235102365907671766660467519345955973287176976105160565318805674435115572298303196944680516023905319409529154866874614500082563954255225367729445155744816370733125989495261653763053368418669965516991498235766983220208490107642558514788513644706914933842205937933906206074606516932046171792207972490377380254309948612052398386083970353242785408850069042159006047605636104525528716226408941077441634989839214563656521162162373716134703994036426356623010479759765177746500847138235669029425469910851067678773618254863994309502177207025721778092953394366866289764017104711689021783386136882657282538769773783583075575869808378990875906406440676811265215430493086373009999481775645158555289778793192819943687705564250659175400308633118402326576320271647770507339142985089986199251969499993254834725861732434087437383133944201585128696775550436502510769339541571756978119181344349934809669106488830418396612145604011613746124263286651481156740006603956984947342963324314774542896011366278374914278892673497141986450510179434194826471435030977038598830686091475507885694034296108938915003163961938976361656553649741833129564501786379886537359585712021762590426502729499480001298336617890334711297940469375575492408672854297935610702239799942793421552531552296805180496156267289522695185563088355578909701117987492224070623652642155828103982713884693057374981337717057525781348844164554042782684534554303492717741503941272325129486681575982036619528297877255951340870967094436383987077781001262049296847057674402078519888780125651897383501789492508310005633854432955827655008010294763469043896866398201788046251177686393895470597590787219947249107925167492675290651098940469533232589205541274491596244788466785753552393231604959202521733529100654881126169993323601658954918341567583041023252016543580490139474138787811102912374592014501875369404700957465599773649934749213323472248128279539511745004308533116167984349180972874796102896535613990123313692112556874000309790427188940475160900351832082907862792234047638583396471356618826429874472388734047610808885626984354958778443695620776376577290916201674632472120881264039184694433040701647560645169351137579881186787299962886939508195880381359373292059173940735419829230787350298098367792238264792688261207134743070238630567215200034043198773223607064607742111767361897601551596899398462716426359565350219815398970830542746223401103153147283981332276817708792017915923133524526983473566321237942875183228874538886750991146319254625347100262920918792514653457847744159608208380395754468407363868479801318527113452246665372507603528826679543322132449070420286565037624567537158817261001712022317949919121371332877843911901350878863417990757474369556205266753646472215044358751830237054721795797546652601406193573320306903654656469866804190502825392425424490210058671963324240069229095626813828269299344768081607005024613334330363276692558250025621229475911448145916889932600419566088795688359400647480700992731204610900229551465399659290160437250750021540677910819282357172597983914607987031268774236130744533622252959987796353582683540398941785260882873325357434453289272875102103030078062800442543196599206921118700969579322829140999609062495892335585233337845654419294790510609238256022498860619168532387220410287561997409061781837112422631141721802014696796535846446768652226661411684773641456684629727587965829700423136932171782230004299167175542886389581032632912980881528527832169767562319300389849329422363533429874892825445506783257992384035340594118413557845830899418493691610495015735672431784358209476047572997537716148377110781338320155102091863181579110678686980619477891309448979475261287754020443824974180036391837083746752373179504802157636317022423809553581415771765946386018137756635495978492001370082199576825563616383430767744335757216920849390961647714842508452502511886664727500481864448483812879261911140940573378191748106491308012624277340883206903147711974562125855054734049295670776288115280377992519236474723609792781269413399976929803012430143172071124538056404892871658758198545110809474496783427847225726184801477646016003307810396923973923955409612755738076895980630383297742626157341178026453598919059421887772470458488549919406641234731465063674141685135744982262026264368004681167905834791206786266167430912238499174502735267405959716860871301969148376143499339595102232711172192490751552383891123887431574819262888507393681001518697263593899171560253009764275094309986367944130423032170468488574085546214311153241528509442032244370803506366332380996054408285683622208800106553063496608271696645463982146099556272309305565706463654496269744115772391002392731228495844470149355343217449191443240765240500244543560129315907439646431838564590355358812151580248227634609044531945790556055431231218892472511159019638881936517354911365916889624479249445900839484560571843894131440223273544774534574809474984163840746156434929471949533385530972684918166938525252697960958085920538560382060612729424417422686235924624018574073225157973169850182444886147070718727878263849704138361907019251233233130616179191716995263845822006141907329515206578267256892495582327419013528186456609579558941172625127655200386369743189878616677767005412996772930958274010677026898605642752838148941095052246748137551590736200983219611082984365559828992383626438456118001578447817245277281633431889458249280819908334841555325169483791337155526540329796988965725439796661829483086993376611946331939071106643692718917777969181364175386002756679080386241929729813125411097725340554303341361744427176342737711718773515847250965652203615129717565409011164194738947769200966800021377538912458057895726119639849042864409547518132963009650463483798887867092351870045125524606877821883464341130801036790320255780426659248147324059136441909244345726379361556606784257943805957783573538298035530422391732920641606097837752108006515997486200039955665675837785608465363987087516939813064572364557930765888218774708703840685056595252507630494755155919750344955040203012429030473298126858208520838865698494903573655677268065809972312572081697931250943369051886184393204313980335098306481552174794147371544706419076071787417566207047338641892496904559047579427690618880042036543569067131459363351556496553991011890990472503557019493918113192408116927144147639540249758964804280644879863593077762944822817658114171865248937286088918730447692631798077042904578136990367306259602505644012900687721543718611030985328078139597600426299763828402492710237355072081442502913654884548817166633878382613335764327857546455013724699364811540078803337079118349188387250897617385802540401270362795983749071818722287386388938343650513624431417280623870151250176927991729819415288303132913019551934545878211627342008375538394536669801012157166456633907039714613639913475290896244631296697793904014381960905892025367180016360469400194577386489206201334980675252167701954465992872420824356390465634323672469141710543182424009632437111280963140969584879183522354854649226912963933737484530684253550740251998966569784709690005152867458408051840594716506583517050047164896243865590447388966059546726794039569800977647566828668129076322579898098797326347522043092787487271826701785854027528566592480476792257922568186699095214354754148739009849376284338917962543543286875185747758412855586922177816389340557741081364286503596495997825055482864693264959941998584136627850951535599078394443981836221373904296428865031624849461622016069683990545453154891814515253906722701084121901324169454774943984658512442309982113589266495318864515939577774389472471945207231969766009486938372551023452827768066566943453603777427472396308954221079798991714606242545355854077390735888740149679401571257575879874829422816961279602801692556088327610686768416394271643123400613481138838650041114330459875359734622590184873241022271314276672186491302384746213243423028342701155506899522294439757685993689351715418643350071607330364516924953079811343142756909949724492099245780667411914743184257618671965172059753680207804519187467774923775220772752677351159022122812365677075657178588969943607373886210734827006593267208834247042690044026107843094811714390724445322888032426012586536351215852672789754760161004102472583147271487324390261018390684044742426318637528618711481808311005902447222887926463308729012963321404184461330478884141446928122018859626374567451394786306884470438271451275140737216352351848557359074189607621520932952218506791413319874624801541983079184584477570172436826023051496129255548543158750599105936547136702791526444455570491493319533529071321591106596519016107699956920843123602238156781797399266369852417382464546385857840062819544163841308227567943268202029909383629355879910950280999372859338197102279212443764248211267363246765633195065200575268553512537142538225871741565905400750721998178682408153130197414448366354904222197694405785499337071052375153293615930072682833621573870865333538797879887369110737642152217485120815545537336996421846397761206139344736020048332281844816613704018528161304724513614463925525601164139034734733817688204424933979610121999195748928452697882812261026282463987898077950180329285058409510839518527626324917247812766307807680547409103257571304899628245455192616653945006448693243319557980291183495476174154319423767955175102389984514884687872199098639471321157664463835366018143427869501009368776096672440655428725248319082741814652227361319220245943835895840683022496528722877842157840229405854560467706038014930777900663171987056652421552173462237212098021515155387879606756652687481987126437012049651800840640451466572169269551681076309071356016655113738189892996516839876945249195804988285243744360782652242694945550326081555167464505461779809053523106620645929291646434728200838391429320873519222275256007628563329928667388775238986831002905392095612811252362965525871074310793630641619721314936431754914142232767659781330168597833389444149415781882787643967463002386895458536432227607388476876875024304574423320576117569412568775494771054003452830008803647694384235115991124803705230772729285735949829406032915778716393910601982521528246358688137411987846785536165077765977312177160143097496498776006767395997539260993068007567879683742477145193911897443158561643079536516751069592564110873749161832691026863066872521081890380593373386284484838298686389136060867353955475655204601017900997892256042924465454002643413377398327185571230602976196867974649771943073783690191027635006547821513400000931153656769026223320376898874075864260915021544478468975727911570791041405047649041634531979204280221542703196573453268034437701420373296674533372513531764866999920336019696734105795722156308634524124497704630381758126450708668033140088638783239629288313454825687418360181911850979618202564337285161736637835147271841523685794096501112155844875044875954345917078415432731543106314458223794872909210447610390686688701857794918550370917569948549406346446634289614187705815133923531679365936966633960868229777102488273869956376503247929204296432511016613077516539113903813526475790052099055550275694638068888665504836937918806708134043727110935568949472120148827957337536971946672813989062606899242724010955174985922122022849877158016282220938379332316213641363205195328416090912634398936583562907334235473512744726293545090529194028046270321494328168654876629154291402243542050574455246688166308446630727775093505136484372023487061761790913060979304395433895397955488747656280852538398450557915931098718035115181667261449704833250094667123652728750097698072538685888691806645361327108001288236832158228768278733162323930967198886905896678445669391122354318063556237917974160878716505233729333682135069866054322279340051724297667958477803202472824848736927972930390402447055878596220449677569625490522008739770546864237734497203277983801657837080569773370624421895892472131614764910771977557497246515433094917564206436748844233311954396162457964435167786157859645729046887833508064756467737811632621614890621562777502619396341236724048966406479016417106619580542634888040956908141941296857244530091924434230780249465600249910587821533293462641190327324840494926278701789804871838075193246393977145318189755169840422328941477277154961672906269616141568470447245484334742763197040726723057542259964314195959207119482646469913112167122926577656023531588583823947519933397160402746844614945542269441475953119879076456262876589812493561413596082790045539773418497463889940526764955908285432933301859671187979703388779535430186381862462785385090512451718891310585661410335316058659924751644265129787886773375574273308587767981652582029026994014443787929817255207827143228183284239938825850417483814019214622790851698209059846729349456469512431098457386578731757054569296034754997390698093002692956475022308615822764660563314459501943562223707786514907430742079611762792034318650795338205567593716472034490741131076615447340733331998030738374579204473825283440908217469542395561663782234164380298519287134311581873489644292433588314288402694166450725272850091284951712370612488259560866613825883685400198070679048137999128893896750546391331655083645202713530190665922334519825563226066525345769690032577719620334626132307853255411418997991621601803327935832471090427559458623731937539843546814025307693571117126242182478811187170271069059006939821149344354029029715133826345322008466032755947673128086045393927731984695690443920817781561356521132774881896526019991097532973543310925898587431697961042660969623369459692605790430871141515659600452321403345721484995962474081040561463327553120466602457789529056861799606348425651814585211457000122595855229618914593133408678819718709466908165597283800742141519112830212947339739144712043565074818135139700738813160588943971233565764358838609958519794031610355917130625890715322011548277775688816908843070715920761985038465244791004963889044449972995908956278952348661073824691881083864675648843217468111937682452294452152103139295413126911575408243797157950242490332437491256451935227620484058228170418049544991972746318393160553948772952483376382672735859040252919695827386059907279523757835311029166359458579657901519363241623756074715993975049601072996091781829047714365964395852944077643022397135228319856560086436975708014405692096241200783903317818449705599481722740812171668508921690197387311544535279250944817598011249445790118656312751832446016009848492952030004893412323229958605875706419353888366529003075459100962253635029811157090351349423205683227507377841095902963232872453495931581337772300895152269559149573529056441471932498692946766870363724243133845088457280581032756848794713289549357940410669155459317751063036761499587362776832476703782711028079309798473440067553511801506003681034512947734138765846162514914259091643079499039155369438735714738831289865483886609125170918150906263851663732137499365924752204920060603775544598190117616893663076332559978621237059958570612268981345714367862273913192493323389087376653919751941452202378664239843064636931827967983291259917854575043244452624352144695574732107906264983769774442844302404557851553673724065116823553524030389298398870316035411772163101234098153643984688948004726881181627505831229570813132880477699058313008660731242634186612687501673798727795716675932116145223380787198251827637999439760206253165716403490066876531250145568317628523407959427867829065100268357691290716610680977667059262113972413459075261101568965643120192305778226077658780551020026955294689640971007525260276397360909563886365245183606356672656785415526577023252409827288393550665196053747199916325572773276067188753216791195609882999559231915318617536108621512159647455352973763157616608010065865478598819949427879663698518890506448484670046511140308603761649445734232762477592744610894428114747504204199660018518873715719534891779195941843262584478184886035930902779093171054292795243949143565950536462874031303960177154519981656920061559770991653727540488543340055789834110609087696223252677325915402251681314645690142577665337915165812459926764911426599557358039336579703900835246775434739014491888959392196062038440183474580133549831067407322216869233424851602113933947426293224418456899917072268172973013951584840499881894374862534722890598976412087366545483754064523753800195970694371744139422583439449753141595989337770395740686885309936418313632736281076065168788255559169169843882046699982565966162470736863210731529971195614080665601521555076629765133706676002327755592503594935644778156414608282505236535031907150361957735660376172041294081169975327030465783856239854398734219261503932648538353558367138513404920765357501638584951199079178527576616241834971739129199308392517988228414602628493937283024865262306417914163579488057529310584376073477573304473331763788699106182275742861935413987915627235890853532601722303552379144203103448052514692013669438122516410492100624581198211103338995208494093250833522580408672591747029467043567115178184304458121144210986387058408780307569123072145534754941690712635632289685867318176818319395532795053726497328473872559719333165427281217130606267072931552132421140153613202924113095830747331563088128929968014253022257080007984119405831034676828490676695279316123790964149325958306357341031525055526564956163058626587273890892117339709478382276358809535242504360733143591100323183631582153461659153053329671039052172705618183492442793396312453538595982388873009058383602428765454281279308535219381868127615671633354964497166389249391066376902599034721089121942085239962836967671378272955442467986269101375349084002777053812900899523127258609008444347637162633681694708824817232173259276570150015917144066839024846879176164550761952235731405478279414126760840145513068590674503254635022151002013837115448593363425432263960352327332475227843591194977948290563168073821629961924932267692239042555985056113029702642250578753837092391700192210308279884105268677064569590723679203236231449672708926782336634458785953043672645075809923295451033530067354833651665741652074120718159254733125673935127026091096302775492429997526875200814689270959092751911079031890199435885070980715558184387421268400167358485931641654744989003797481649456445048071072885883159690372914918485240535440791994898652623152307191442442806007383743445898217466521151520492802873980216922417442793784008752322667434108972147488275887489084202690715618489992066981352898992457424044865184689148183901558029473568884297819316101334544277761260464941497484653690471438189551731511263871264271381260610356379700423552057162487827695793481481355555674334692027914231454627920432135113339315011541777444424059437150023265961740772846524692141592800920453045371110455780001861854668827414666711880902630198905916214851607355358744411428436059747671625146311074693700868126539243100165102355966562473140774815757200123699400509729601288765485137186910547878405512450046307003592696611583060210259066487620606746110335814928437477993634232327604807076410499972893552537902574391391285232437368786067075071960741622898284327002604602806607175176424962347588552615618470241126976649776735136328392488426900894241997766277867613391295541529517322323984477583687634227651726793229242433578225348618775653430056930395980125439984594396462764146354983190551243963744182167100650120926142666359661964855042938503944276570916157245350749599142244649271831181369479166865991250149490539127094910511968131141388972523178320512057057721880240219636046561311415428950893103426312868932996042859112456494991124666774527874730436956324590629351223734047344922499515627734691583379784791596228491693119776454683416380396739526921747862890181479805717634492678491233522429831844523169684946556133425631582920893077203299545874734290390919647012014549482957075301600866541842914027594409262718873446604086853398900892269257457808125867371409139703724931379596832446761169870672516759874123395243952292949505607064101599597467346705404725319114997724775244923462609925303608554883676605281012549925689774014374265630422476639339514386860092522117870126463796295986467381234731307643279553105162040475709622216439089304102853271449115510147332398376867060386115726213846358323629054305634697483135180703395671860738841333695965472124189733993126221581098849883692614379701370574622029520216955833543889801170277005947474770599280611951445382596625670518946668077446202033803753108719728701324910056487812243745531020354134960366113324281874908380094516033012026876515261925330838379037915842526077331963540848442462662712958465175904603991051426690074324054104350255558424067190618192283120244393445991772004843774377296666668655013180807433573768589763136823111697426146841445345065868327590971658809363777942060732447384231393562599233400878396885495779701534977491393219240695825177558961983879478216299009723853984544644141789112433654158657530129283581619906678760012044059842696930346216011504792082796307335267719475765672053972893403258533079401137867767695563294970692478219837187528272366858213210930678393421321435754712946182696025053249581596029892909752309271553835507776463359580204522919385677963390306588012338381339766404533154621132353070791442461847104151790144360299041639030461197943452440818141094536637938094314150525504421186297955846979906986078049668995973082403531254036442928451750747782717763078843720706303781967842955216771431328640029919251635615648107829569493333205983343945810797237056763754222797469589226075886278262411162245485905067741384909789621740568472285591385467308717380755195951541613387212644550886661206894111204054749764030123364104764537553260221283440962941258642424924675881999650198426409934622345517041048687308248213551947840158398898121697537752530095661436998120427785124400122508643988060643724532956141862313530994607183689370626920080054785147165183845522645574598915786118883987880988501052595499738153750681296519552421231307130303579456436886800683585352328774162769872130955979007418546680136166085463597782090389449823208749882680217347607512091769831403007456503808705050296053091413443979674830750902335610763054905977137066863982342054042767834435956777244385519268703909550372959400721371888756015121536788795133648211266906263011484039980842074781472729139649705963302552936975954659849327229025347445598670884414670107634875796490080722894379861009515223897449340303005909484684347868220310550713554167486197533091645232276021913439931704565307454810979683429721913807164595988823239669280469920281531273065962085127358147748617077915666650448034204017435178452241330446668345286672642447525488973100214261859441315858680234408725943341291185426509592763540888798202454420835167599976718408107543115747586259045790726908293891314899053042746540353479780885972566739912414352510862662099149196283478073029923894235439167002944097878853314809463065185755649061687518851620352710531809900981808508953290779372804788167503675453803402837759142180415321474834376562840610958983652780939593198476435087466255365550933676834862103809142265755456759614700928493866552308981039957421629326392152830958904659258461073441345473649157097713492779879050803754524301535954202369638602135960733498506536983406309930793121051898726564185136666579624730804535625977620768002417241166088746781949095910144651365011032968489126606403244690251001560486311783917859284624566735672643537535120801227570865194635663295787528539347656944308199071574682816978356216064574250458450248328963686456591187947123540221598698481800507357118399401101680702811523250733276496443361200606392250789062583802396308066802138563912164306184047217244164001039296852008392292216074099154071574184716025447374330583005401777440100658344531236283723737403932633477179557322320474451754405730819645861411688137510081440847229945143073191914177667851174549641126659821991022659944646998162811879846229686803743702439659501882773290593201208901181445290868140375291154503099952320553216895976105654835837596211761007758228965783432934333619941517448330058056364421518670010930303348273613738025786814669265509486370251189536363020577990053265493250490020554251079141929927042387817109462905174190038884791813829009553031545526524104358643683325111994944049684232559244074391403516979847448536970155702458649536755911325297844676022202071502576719485056886728097904273320982008261727834394946918779474368666836313313964166510115258942623157553706602666634405182006686525548244254574343808751731161610517599786183820227607258744340062062357739681668071515875327350953526633056992562483284040643813176706184426792570786162042708790608024160265121783169141548265369150939379501605258656633898149687709022083465133721172871079282898525532013266020208208750890396076045149657509660518529262299739493157637705614663518320615061358339091413110458267531494369573183279936633719308068116240086727667913608356277055478496822106761862073930584424663008429629033831516664735417417262250960734436582966626032450256031882052813019939504872689837981756801352985289965573866090275615327641676347978342353409999036298515539563137520577399183346744579865340529808379054003682669473691755363690659389828051957583375829427189661300547780463538887342722966850666712412158505711405245875659665416641391290806035161336878639152579674229926476238290219331964012231345522010839759111038231311123217923087245146531416519466712179034320255109318263710372399158366364612949679581139906989537191268236906283629178450693149563972648585911231164241621428649525875789260533454450890240024151100240060952557683615893153367475623401585116373458935154759255555421434438711195217830498877315672643178979761494496401824540622517216099208845844009412232806057609308952187439719459850533583947755410849585530342078222980394145982886745377506365633566162736035118858762691227974480508884148395272441805058714775756540123405960551695570113357643027695392699360893944131853932421103098072280023365105024034247390588966315641613998365009754969613200738667907974153936664349722786138509473758820399519361300894008230112035492624104615824861564651166326407612947570014279162339729850532836190976244067457470381167336558474568358953107571806502995410207351085310463341323893985191815100956378229672084880227138274353776352158946920984096634307599685379635077530024613120511178730946053934673709330090814648989607740340905592066331854251464754347665843343224309974923779688477709702362425753037347794790510587829968780861254589857684423663857265893682759608706516818802740548007999652196900547566972205332925645405114546214802825377070337014498597907024287953710413695117926185304549724944308213241271365848083818570266831622141678719548159519904894526798629428766177264259503118380666096908654728730261099910195074104130076128747258136809793281475041661359541119979352472746976518892725259482902349765700482464039307332151181857327943416422067726207984001635702928857219452814833804246695740384941205994991857175584422771460310041119135065387330671462464922556682767487923207335186282979281865982207800940677179512441071134175297325055710509988399029130125929845158223876402897505386566738693954715874206355946941160455527654623158198453482784302193364229479898359069737995042089467362032414653288193864046336015303711441303050541745700735925221859406916716761900157565191253877643799495266053921745357275551209234854798314277403605113206170731469997432457033256247129614232606755883174215501775641370726402256576353592206965760997291284351433288748349290641802615081791930149352610993032523640313482313614300869871799437081800775342754182796356062898921300230456807253327398574709964556741613192646482060856360892653891970688314471907166709116600923727190793572061531700871752862790785689802252274959642626102420425482428647777169732131457101914534509524913727087865503662810480155070452124230593976033102587151257594572744931596667724736664256158605184551950428861300996883453073351707773708925372509662109275437735034585085115614077108289094075915900420997846950004758762443605127941364680354105439357153429291635141808530139106514570613075547544695172073511203149993486394191219863804355155156521061140281351601907518493161725608057152053879788246645830323745568010656502091974087280433777019580701259067897516364838067373748790576885232351888411266007965058037544602837998624001074718270432143088658194368845008463247230579596261521913312788848986693392422624942936218148573718815456930198485873874129678743875448442040229792818102462414832522042388391245485835012579592850068378947888368625329915857245110206720115979170590901101449545652839648741107595883521640719200583625846460188711333343419463513107320933984418913161262647212519641711472784076845540147327686930963700545219579401269006568926871755744056993246118312056695733085929498260095729242458844303562747895455010133152721182084921769619380796654881482533529477022812155028864851337568443513508246798815626318678735744943646845468476458715447501433058612361338826369244732232906097246746234218703132092921859131190506836251382728261500009787484672408052300335889184524681424863140149033493222202423362987581704184295692180099752004345321192481356321341091382207753546716096789211824855592791275868796840419081871521240973067917421740401445076318533407413066007553021612035547857524469692039695892043426668844857816033879505416824084397167441839015115018192583127233861443765054036113921169645852906332094091721307477476658220126579049479826091984022068861880006004758077661125136719912883033192904994751000547019708360249958335003732087514777997341621132249387475471859439172095201737015208219895988534648657692718325800927377068995503745150848943775122198966254823894739439538112895556788246602128072126530452117395983708445749049819874283636007947177994872330937156291563249061189442596136628960215923773124880991248836402243629052856316573272939059184967254588398451272008831770769487603650769507080293630713486497595382738056963827336110865440842675099426073570962967661247519284997196297005270051750468362283433725285175345805973468415250585684358751476349191242637529894363149947001945509083799067387136696626534436636238294838368414966763266942382864124439608034891709517550496441019105379084348567151864392613261545515618157181736446795481575209025282641012736494047156048401119568787342552886677942073744029600202068261472382155309673962447387837417797713783761408261972843530161059946014393392925838017669200187127895246458165870779007936237266423009082586463151567746406493544256491727667092104675285258811881597056124091961520858228567068831500615237529005761916301641878176231704155364045246665774724804629233806515399432629934179542951133658755041541798637406096883979266370723226580253802585354948043867083642786352694673266321911665511273520895155644118938766606352041814756149692562188862549377439654648067115427196850402062350235023147663102286397416683365132978288665477518582312051036755973822966913785328599482593005823084513139978683468572202684413484768968541008388472850763956973339844204477387361251238268535120932363748246873591974120364323890443889118621770234752984771417624513574061524836342241347584479337365257375086347223390607732806725172046186133524436381119687942534286610154271033073668372684254067273926941712853918782868094296248429211813158819103554538050980597974590948782195308699825644923198182217210978497348268138839460189480032100710285231248914000667045567230118834079632204741306954292147212076558509522611665795169101499652800826635457813729932343124756438844714577718087338479296799799736087656216740416029878729306464735235780799089921540071514456623430435576333864213266917396061802381148310134303997459525032883120323858658356643437644241067246775598159784068704715931802166101393667709341665404439595112750032520407352551497836610204494007745276158493612155992295733100210137092447043260238551560447892986335601496294438425146322450383645893774660856570745402680031999858452330844050872472751701656680094199440542097362087086295543184523155211904931692117744236779329779194804253763177146774437903571057043327849285894887383895330626817934418608480902197808427866773084703564113100601578414203877266773843442292907170126540712081876267151341000627272549702064102311383192608931603640036116638513829284874725721864152930556321792131730547779975438807695727241493905206026386845761106192378285457542982986620901832071882541573583739212245211532901150817783874349460709587157623795447605060953790054512032229475689275272952616606017018966441390452395860732365917540662048154644526696639917114290827063717507446842174163191321664693764194180087028918441787589379904463944136727673654706672839737690592036318524583124493934832336387182938968825211094799419526338159163808865957910710963790981692451888061221652307665910216592859319375988556878064024999565549152038284967890445363944965111300833160507282178440577349645253546606135382566925177615069480721188975730369966714317206674958361478478819293835464629594134041527971197864293038701664243568480900290898750118644659709141998313784801992146251676897498573944841514398698558926095826754625040568811351817170572274040331874493363770029283858264698601209917939146953651975338775833445668745864122242373672709836502066404675417776446262389199985061804201247308506019640356902157179489456985189928986575764711093584228113418995144970185610449913045705011642296258426429588058657055487979639183458497629812032353851515063378676431167349768591346118135393491602815481903641392052159779653208433389095729757836379690359150231336526621496521947065097161499813818089101330192807002239263393070908561086951682811839083433850641810730244082871671920544307124860843122931011340477486443624702679121583692683691432830889290747606205862280672045904413473257282491106625337576921266974482185208737107191370000069109864620211208272402650057039656048564549544732140636674033948091040987437075187902907088281186966347619479828312189987256459302838602747386275301412557296859111937764076556920376209235963340509192088026990543032075691049342169112057769459907878871893667143462978167510407633261860403459555305202575811538836853507544632785557065968850445962438335554060548482892608849657943069974063459025533940583540074631148572162429278417861971830471923085157004548777495748361185519395529967920089489831323814771097097104048434735085864472607569357149164367166926370591246965019566841919278671858523453668376753381148678890655383448379551948291298328948358380464772719612162764968234974614314307737852998891537820545927981810997995029766472290878187841379386961919967146510530967594507547455874020882159445420493753106538083928150071355370052658834721011518005076543075442972493840200037593790595075068396481058942150476072562965219945820611722342618114109025218557574234592116551511012178198909315279811983558367901304758971019660631951242752599245539752619190908292238013204937015839343540485989693479949933524257092353254689356146601065817927444672229562274933050793594160214591629530884291435746001341403664126424188569097395761402499388120897424924946239962501859740428925721614034034341290423385846943342111636073775627997857045422824210966728698781175983196013975089721844658731399914724303044929463289533626636500177042780104814993556659204490978349869090693948895974700178688046803652291064394106550546651320683312047978296972179017120038733637949327324558662800255211778770553210259053508880466936288677281237672601543915741376241737508640662600765385162179863628334304982311194592571933130884402333936234210215783132868005800110024089332532629394154158922652901618992669809895132654085678084531251308545776489617305822976077984812936464347797624755468038018610124286752959446593059750364929345932515683267982891930249262702621610030410240453709281160958397597922174257222027992809555628060001868143738474260207832197064979510045485542468156324668939312863610248368499871742899363305741334876529388391975872919707643784026138594675255692177083142324146487470899831923450511582539601854706404003153011854084805065591170502568932193736174622330536080464185657219839429063339608373520729794071689967056209974761027922166173346250080398294112714692309509899433069165387453987158936116903804244349908393340812341759799522690484766565636281434201162044863381966088024880731903699227742207075961089620442298287452610896213620652774341206749708435038969040327816600826534190890942766210279857692990406493442677124533467000158964775880523296839841869830338660957692270744024052012265524948834736543904936052048491523717559989125591864316918475362801908975991384806656087169697887230357922856436935942916524155679997480862479303251703506086649923110432034009764667992242046421825524123549621094846678802012158828595520796464742419414442217110247876797812192585183088965449387001836152620605964010432546557087083054505714060422904468398266283589827300589898643811792215562874296523555462797548078041899172444797799915756904569309052984709414407564406917614840126774114252961609559830968854179710423626820562702611596455960063198941272209352873903873737913973873220722468174831307376816564216567614913926998969521179160161176689182980460906589355912208989772688938999566959373877738284868197768487523350266926781434667205229966086471362730655137991704021759114245114757713377520429907700618443001098142266611808506596326054817695261270390466786341158645672600072768437089147700812205148274102519360471844615408847040135415834134620681342343832556298843908199010075434968471555232575028703720100949883592483281126571374177383764432464942817202887556448166009911817723250450240347833858731758167851204364092199441561267097680213317651805493271044538417347519449833428966203509214555351905771910986255757460484863270615288676814669064602986281770066450554602550742731362024127151706804661709239882478443206113906246452125024971419351532580348311394623998119581166459503601415493203893902419318356544857498798587192083147701893707295004813041643507553800969783603607974343224387753558922528652617512602725338191550275101389843257845576311261218442881668234603619965981550239756958135738349201304118184196363569893183361709988875853982289549654682386571651578268525637117633404818252322192797809760315185784017229024492593411452966619474703541799970583146693803932279259541304665763628683052557682086059461797936498605753701501103309697304344171561637014312589744034324981081513084801984824874034065965900902475603299052458754975305061800146692851565898466254891529066858136878741142573411452596809536470759572764465146864224228346495467187809736924864051740621873244179919367990767756111956350332991228818485298653155136083523138476767854198944188786643839829650985782049556120488490352917427120576676585889470606047729962066608337586977166893692424517999670208016627463386752076620741221863931400871024601977242423960517159093173042542852716951764051260964835442142760071457794423368522123853462942736097372863946650345648039977579931307442903781782234443299940943008392470194316605933117991686082146517516961293301098375804462754005409028563703532267119372901820124408390911779535689781552965480880533872401727449512382834661019374072835870974714774336091661982783731769335561134081313349072397849749059989864061496741102911232357212763248130732073123358417928808812233838213503399614562338246917190725622525989936619066562344540869231050063904599548692271501657602267980748416306600254509103899037727644127780822097039954518970881728566827091690274714777144614822939557032790991983856578995419350645304407695954579334501974505569359331329630357893294611437442529128841942314788293817606606792041374338830401831770813807549520249681085220483205586834678467161083809008292848604304850610370566450779481553692320655574990168411129779530719425922429842999102256222253659967121724726023037477410877159395745110042960887687365417069048618525914025434252191981729687454242110022007911635449844180003690859061165158144775049190312066485806960110606909856531406777512724982601247574762176864697240107768315306057874284114157452933473237972647676451203739938110405048797424953358316174153781415094945175142187820628357944379277932565215262828797835099879838674868794823973879293166975321486930431434681544684476707952366973940451671193579970448393365036366895434484495460122801786709880287380537049954562963460345820655386864004378549922150690767675270577282771022729805933659718759895360526022797666762372520197821619614295672395614920563549278355348098234660649301334869622505498653101589295747566905462412177557866530958048680118102977277461764148341430458903364128905389351892948957523294898574083720095537745361961718770865080825289796163576892478382568640447772036997882274149495408209053199285121461971097883633272525899334292003807606216918278561261110513373197953370932197623036383792561372990000481163664095844860131740967514261139036471214108766178817096104553271427711775949223927545691834045876405842254253615293515465606432873035565395254216452714018069941273544917796240179294193247427769496045516545401983319552562180810219985480216936644513281875717488908661251366218030835694883822652497035536238276571666374375496503457944390477234390325561517735573053509494101652824285546345755242537386303072996254516658965908687990240549646085766374451217817527666812899472593863306240176850276345985818147218928895769089464737054195777161792289081155921089894414763150228455580061297360943491069828235291191149765760372084680086677952297915785339026634740921369115816409371966897815117484605421660720794570711925490565422385552485594536131364094358989794956406918262451669740831613191308569265093730539368400115051663598646825778426018054235555651981003059077522500936279692467000149391925687960082036433658241334485510049496602807252115867502251331878915124749783579210209691711698534203882316944521663280679603509928572492107920342024505683565162745468819777418542146084995893845704837344582096504924938794010371051950335053106574905580373080456912837367130649978031469589552548285599651735518641715168958294603809785932435423632678514130166014871217220396553651171478669020918950380719219408160866866975491850117250481500146034171492713196073954362619547313450243792692915977732087482248282756057702184775923476614956637343115345398445787940438887945265552423048556281512755801077493831471220092182149926453679471597758575534747606298499367570178378577513531548715808416136485809343891434732924646774155912206354225762661033266771863786080524705259907267239073889970856066666501635563475898509953833179355215421812842890595100371764438774944162837705014535505746000198353729851138638971867351662434014703021508680398938647348193933366615403590216483494017050551096975114937768232073793804451425124445686381676318882295892935749004807609494081363747649585525455149440013984878142704230865975560538115095297903585557665278685036966503317221027228599724921765718633818434313232535097671386931546490853336494280118995490859584723068309682885913172622807129714119978604071471991179047596224159235182532082019356086871107411035751579116667885384624244241763566546782455757534926452046460221681113881694253339049218163423436733506641163155345440412240411466534292739298913011774660341872491269635802985890765073240220242097999811300642886301213609397997445197227034111374331842861344185118024914486015941480216177505464499481147315848814737495612840921678721084930002928290449508522074182048836831523674254182537668629176164366719432857186518677331590658322385981088044870104558566254410441636253922515143783819261870721954370602585054057914560629192868570846061106224849550999354725584989109502138651214690471571020555130654609239964112336556700719726904119883063155192441287967096513208222730658763498529792515232540432743067685910603594740525995156345478863396918248967129018697921356353366204834232165244686279457632637196501285430003192283193326322777714208491150868924395313124096101482588464716460983210446603598700283613398127892007314186492329015875311933559634934656545345170561549592986378014103692350524410896490352259286310567330965541609228926584898172976769429010250626026659211953962730238225008124310301568717089378057537002502193239014297083566728743596093475735107415354974208006769535748036158319394243924201961475571844750154501428681605894834313724819595067170438487502003974183656992453754802054127760123503622789895999206829573400124742467244621637491631230042357600180768805172182847744501220186180187908398735377368549196690029487711590128960050326928560830380679994133982036451596662277744941968945737990696993499050333924850476256175028287359689301181562412151048170023129665336384951657795662364654045713400759249303986396624586615172265730982113738030889094229681686656538353195359558525715223286824439647210398439938782034775489314512927601454193404237735846902028999711233865763444049968140853688012967073868372682729043637146371967149492988307704154847950497859156940574882041391894214485319042225258732606919381216215384301802746409830998571654061654148735803095841940663710538404510662439174243239145832147660486521639270167122834449228122363026890474913508546952554739323707653075178371300689884048676436806771210597361806157371860591298871299226359091823228146927363771693481300249217239822646386137217332582521038067780155212767525277142948646257203797060965206377065438074811365522742622335285589452886510598787899395793563786327126525911036875211773800492550962254243324796025106368487744334862677937664521305087725176523581455498479141324571934605130193021917405021321308999214618820613592810354656403537599462914073886716087309233841326412203949034514889105914193795590358467011090323356699129823151608012317893588604475681910670495349167344337142034859078748066143731272403174218910385721803266911524173764133725956208352481873159060053423735781658613831423532028838909684535520914439160077673669525254226884448995561376027254870399560797782495026033148616059255988660501872527513790839794710303945138558315231879595035920594350990878370599773870316511048122558655111451655937193728397128348488281721109865650373767779236078439621999655503011746470516941308158443147557384613880446982959329507919827764332965137192129357211841990053137047762613530645865366310077604105979983288747669474252720887714656263601797770226019349162508456277782304063959208476011234021681151576547517478261359633727860235253200272727206704030018000273724895086666231760529294207458324507944766652548252890451047817226322145615759909357145561938382189814350883518901410596934538378025998344989675813176582219923497238899569803347918771124959033845178910223329842757446538742659325023285304801133047730961870261626461403171878523111142239015563273915238075784199181294523749211694528510439227384160411746098607690988874063653067301206412387010585347957496810285557564135054788889611526798483474978951366229480050788536153297942184362283900431897423073419050540970546697825699724288969904343619473216039245932633191734778461061408151708412481875218338095032470270312218261535615340225144941088694195847151128274344399394626498132448356214141631861292362480074408626889830909602249431526080897430497692121428483420814237160827456472308011697822227006671090408153982177020676995335044268370842343294133799525056050273300052901093976884877235059292227317684366461586203269660181071954136122019007969699633662943180268988549541867848942217084632034869522863882175459492661027131713689312060424109268594887980379739843381957109505615917790339574719360925018830187190041833343352735950393400987883140614258721185008687053411832361147567476002289747590283346391541463113051432198676005299409412710551975788086312297691300096611823125501264264892472645848716903016700640312436786687251829725728841643591709568982390703454143062488766341803801841924128368810089638014897902691325726399603574614768070583007050085777124055586179719384819912697287888471272020992137943732374851001451738541109550922779762451145283135079698397306657309001561722486693023053229039879147609885337043655524769810758048121539721720692848079539189009448404668312219249075633430328297172304731281130573886192922771795380246340307017937065994386715637661973504084563016545486070741596603679578687885511335301799243947083065551276877163891148733554372265967274476915266570191724857559221332689678130078047505817843492073855320638611577038082907517855836713015362298037568630142881350649973212998520915267756431169592564967234075492115016658847862414630439943538228267029353035005827201805910925949557882786870490229533128677814743797827333978648888319834899663415837384851738059386351461651393150371488796400510486016979530372800438151066160075834745102178918388937216412995375081936056386827734489033024292876840912228416014407518817361003245177931264443418711974119964152344430574076884533406728968386664555922841987736449092709006794784456236435345294081392224769522003983934413867094812811532067495774132097911828572731474060534577190935236230147258304557475811024824683734075761841408440894394808335481220430309998288190114637030750439702635445589556601374218107652484454024739771179242261265151660838802550080751331984876195623121935926273644760082203516382898774910803551081472406121867251578546144627302301878161591724497421359089797922524660713291136797011870795688313519574247211029585790127902146236786008032664693721235653584733791162589293655604249639977042228754224477754344993037327251538852441098057436167118840169204193473835139927370787396631907209604323009006245991797148826031133641129545168985785777890035811462329927725121364101902394753451308624172815097252348737146400029765976949442310065484138427906575438757948055063269269694946426493534212860287096258253676749750249082799784917800024268366466387551894557721018130397036904878238598406237302616228613878048266858237241000268603120540094991949713905257309973718339530893744608431937624681554835440763415377579679611444823180191356100714855049259378829286931494810106950376796173672157601678376185579747088501890988090746064717838073182746450170152961426973214582345750350391222022626485874567842755587055848719289121689716370468185262049725446395820600675005873495341319633448594590144216025089616328234901601774913072173552784031529287208504436588954281588225053082504146062243493921476473472757917678444909919236875070814712370154885952765172534704956902431921113988697686897745712865341885717593637354885989170632780992084488467138126795399636121024289384595267826255708129169830754577694656085721126995415026420803564145267715668010509346001044630991373335917737130416500889853562013813589844733096919779163141391821565049241801688393991797186744648142814362083717618283347723950476491690963265461093883215455473596597313408927183307816163542262556112378238662077236134206601254777409113652390524452107331500615018996449642980274826499808675841025312378726013294137858013735662540129036652532160195989609708460052091098977512406457061951914433796084453166416450147780843701572988651973105191697750591545092121633478238159275148392212030405184188843883105983136896949469967488525916324061319815466512572182027799160818450684829245138374263282819023899651780918428669225529598245663236201070037384456348685101581149350336734196718968574987804091453138161548166812361126021276830785247805125710047269201346949542143840666462880325826100167419472818426814864973148756189062768924129343659225892037529239946054404457430986964960533890998262077324265984436995103413603142923356101673791643816027744037339195473546239233078253608561540044213888151151012846734974032725167273648738737845569743881013939528845636437762533370819028423664022422560487526713231548083096394234476009146194911016281301367511405045056494313451394201310697009822667517037870327596312195335106665387286809636838819284518058156085454945466157640007160415572953990189329185457126121246424373924246671520516375460882448149531675881133656475547254518301940054313108313049409459855770092482380104268446812746209877356544651584241767024833691496565725289513743454308903460320216827394133451839662623134661810768091995270163231511820078653562651385596527286877012809669019265758982893785750602389564532334271856088507986292358300389598075833403967328226052096734484257060317749980124061456334622432380552905481624988798287599294629667768443546309419962504659778932295604823972996307745157139229676184672589798016908282026434029083941952493155516555828302573854473124111640495689385052350524347181332714158302647661473178180703372620498113175493193326753121719053134419280953778092014622067843166276681601555124655512219203691946772687832577428430925464370627183036709385936591538180080688578760910933239534482875076849858458107181940213648478187435479582611221787999173469447167450378776631769687250728167307551309567750463788215165653381253671559043935496352444329895982719483366836644021228896514841991441533829679457406198506996044288380564643191174074174572945484252387491478029112763727621183612637271536634011328220144331733463579340319200983565638625601029501643757007918797918561216689204359174489397085820422375563392850743809341785214474311946501742472392692150157492556911575733589976676640407254028087396169977167821883441661919614238844653343334023736955883105601049194235921574560630276438980202645118053378350789399757153548135995358835412920005454532834640560606856755761133712020248360875821265185813775165061461000275101143704040851985331295794921605666667570503316260675928452496499108624270608373584563650322265949698474810020096267357614131859037813305888838216839183184268379070255997815033482584649723640992272038824323097597148373324582128382599565307034865965644148531592576645419615545012279040978541560111509181937272019178137995090595304661971285834994554258471422515605120784410494347516023218565227797374261421682055499887022739181243155988896261056610173791741926512080282527357770276970967419071340543363312426204751026058399178576912998030344147850498158499664862648208427538108439699665896507879909164629722601281863455623961727595702483230632875162265453838518651857275292877911620330146983526393228181641219933025102617427467048975342253438770774119776089411421000103446356745849630645268970997292473123919978694470964385212583971064861543755260030463012321001166953995688460126332062747248627909422582656838787410805427553026286470714333488868644278222859285962276995681365888480799096817572506229216435558085977901955368215261700644145237053769243311438676196966551589160414944683419602054248008236409712294726021614892488143297126456955390429711183161507391480017411035478433148650478736069241301682450007210085694472570457303929736577622306099126646236461787866202883344111419506859022398609169382106794715325546569454710102807916802925165993078816438602770047761578642915649487238537860917305565422069060215585038542392178189130258932999318588309026088305101498064422296222679062401815700135454773589270659603988377275499636735084790051330739552236049271869951668551945638191328434896517574912684502245537265053624301535508441511779215855342997879334903024062346203478812646495227092906982776725702035794439826888037010235425470591984877397100325955463339933365688850129095704183960472696494619209309285427092080171183586851808324437511271041389965993334697750198272130554289955390198949705124178760474978676238083542822329314814952801679800259012397515526474656513410509624325535839361424481216984940427531798767605032204069101109015842306585962136118001580812613929182704006888984599253182159365505112531685952446361256379137482926293329618003808831230756509064295994307403079503962757580090902710427352794701911332555452376096258100796248795873644653907382033515061709380052088404091640213286869673450358835168257468591736402827351859592412611889227603570587530289427404948010703015870858925928633447198019391015381073655185717952221232793065348700420866148504830058764442627129200893809555879033919514925036713684454963094812745074315607375402056010029334338416796341803024911852963180011666209021970443385195980662151972482267651008345248744130812663075635348901230048178618682055095462633584305008214950208693503761328693266040741748664140645251624305206785474720732362911840909415839841775717904832045608266142227567247604368351076704973060558292058585471575636740487807846684798550018597772947402769935373756432019097477741796193412795139195694894409258054250130314931935478297550273288582491892299994328828940928391199642108796387880566262051990363134194755598161617086057099289543060696054031524376071084688933534493331357653095846346052760407782969832064149530126266134818083418797709180734848571891120442519483916617886488927087824177808605642578430209311671146102506910818557793948215593964666765860376991466197915509646699365362028573410970708999896751940318746565035016420142785663283594172309684226181854740958726530222090062667652416601152096201975951935750122411695536200336212429896459927092300195068165097111657425131139250973877641243246973117018781884337771447402034650790870587793957950326703647299728967660316245226702330781895628827069542385572435802023996338768457767116424228840699811439985114633214187566122173206928544973082883841937114067875198555611027339434759729882628451737481924193739778885305832530109334744403068455658274741145543415098719255944708426917097471479772689506426586902867454322899057239094936210349758532122681083808032936978841757290284501180395204733803120869301578930565114228237261108965214925510243767557175878075324054015146186960272048115211221073108538443099095188234170485236494840060801132494422487959639363699947240012318687849865390087950133974871816189796555822555977289633034716727906600612065103482748773116504087498910535239283274405064010888237226836762246721972080785105000508248718469842612484212111384210706536693610769696279755865659240260791206911216433097699959911414797890150335047268428964296481405772029636243594239303971623616258363662297512087910993132817099661531726506656021004751740903617880835981837982124978838174345258251514691357406501938470015083674206374622340259211567279974399168894674451376208264886966101693920415700580799265459177051074694708980427621124786818378943296448609314243338878295080379893679616045794852299562880498200106456588869696444171852022472707099183758315064439977704569815168061095121465305791517819760250030780970447658276158502497603858170650218050046616685187068531996697241024953565500184622264882363673139759376301074324336708188787036697147517206222496174501753120595877629301487984800599047169631927712325915420548818671861333518593168741775694435218494428529808058435495972286259084035841938610815235958260973497061962984642179010261612626728908988631132435838391160752916092727661240031650058717254045596015720424303036465038587988649468916197952245229677936801922129085721694733077622099189146444455946508546000674806396559644858205488738218775830903191781045849757516692818965972153895432286730728666056229592262553415366648548434069550711357701423422107354654910558732916073105907815978523287574655630938848426492250944586724271797922660305913807020038770553517484551736487127584325536219762095847037475726624264523678839825620978521820998288608729679353772954631780334994760641735063505186095901471374213140831960124871793685382498593294616343484635333324588031521001525560993510202836178835124745909755243620337294129506001259172326577026732810635880487884850902576088231360706352200281593499439348793800097067597812599415910528209988735585509372715721107407653801542121312610556909105898917414225859666974823442983784900886650722177769202789272289219389005891329010907012701140503731450948474915894768729144287584687318836110771325336511638180208520135922791006494788172186117002697931209403715608630944315186088848262785781525899867522988577311105418474240126516581656346518593774701601265861043186385725472558929292081391902096475447756740828195857623459700572377393287706479027495148740894306810179714515501877824260128717627387418914016219062701661082156426786643279411780412716918805809594234211085537966606168813392117419267643301789666308601901845782314180189314020730664230095059305864660947329826449780895222479876910852017586390268457588153745922811868240189410416534151045732700110964530002865633379667432831243792435142032941274820157277347853849760817772224141168074153014361148816325894207993333721881961808187183719966041000665449064200330820922994504098346514817269962015292541251036264659506491609314827369251996872875150591424375123733204715238703349174913271457159906452154106983586665010036156990463553705539811423670626736646141307739485760158295412366340644916608407591567314453454914893567607907127669075719126952677786721185790871593124268896238869443578420542652613286257055175883484819607556665250444818645703087472023154129341936483718831425955050465145555422576181401016765367112559937376782454669495862183423622677051228885851595494356191085237149596035064097527289506576785338073765594178940118516893602803722280279858234142157279896520972018937598077327635657325299414723094542519170460360453220080607059108599448065686570913626551959942902312999290535176282328283817453076735584753441109733309788673527316363857812279227218431801352474225899382439108956682127265567556774891214183265088966120791328618057287944450019662762736084160452176296408586272480223863928178976241122772867912357201454390610070351242324373535886119338624393481533736329116793010850827513110855393183252558396871360313803212591133837763988173558419654842420042776857202163776419487959172516832899690994127990193602276712964897022051605122616498621979226808804976323617184330642381974266725851312595630471477913208542248665452905454356104125324954786808567404059147229750243925867105587941002218139551603926650381701948501935720021746506727544817634209644780253742468867487551515465538442079676109354355233216991390516206993051634894314988570024284944658317573468977846694731594506852054696995330887257354913050599361110142782507542490579245695769060927396477456768989950187216016790684074889563459956066439219711264974387229167542042727925254117900390330851498469648804525876416376611130429207905323199730770136060515806751047079651305351599326329963100619179852286278643509650815507778555550820182971848925896334522861037397709457709762681209066709839454867105544771501989573495362070926827190380346072893990889566733475907139799207915263634228659985156321689791040005222274247375156836238623345290925571579336091101655685184591534638276827696522959855610156761544789705616365484124756419976921531328889683681267776174253854983682688026853506987375249616489839797641563652085811962150457618874506409719746650740482299842698093397972933666514805377869098990292959198152768620248633232340616601643283370417495252339243692487345412067499123156453985584329671328800102525242256186057150513075243222349642034558225787197135362370717012323494406516592236714660362568554255847646813599818536866784488661341739590529858403156818315617029977367078709512207400053992754106427200088354179942805566899693220384631816704180297659518553206354996501625094129568208533813728329070967692461439335086993306759042388164540786487050114151114104643845070191906452205891966377421291687962422519823319729684819293514627561212510282138163210256270461499078627957382543570479838848461113413802070132622432185358240105104029500047190182877214549893148931561894519824091015094462453384050869557260113884550071066669791526076987425474201329775702475062219191816371468709068559770895374180173454304290807831917519215857695032084485301746664676304402473384071651922712387117967198142185079381689749779694648654235823426959306574178679670588958843183035108382693169629716434460854966418166647331898580564204531080651033517397207045491386220312568843065822147262175015490547303830423999555816028262119197547948049799246320670480938200964716018147796808703196234530930617071212289323906304128239415432791687237699354959789152187170022392809538457440722520852629625436768711016855747960775401698694686748076905320946653527988442437078153205874303494028393620110213249731541342317337433952063874077612277330037086315600900365964960608538195107988812499385258864481958028263131024040760710238268289756621691993202620269103857576853731853184083810998365035042287756646218293673895769711827917996139324129956141428704982695495274669411546574780550998205663645387555689060528531771202519818017227706875579210333868324283201709128625144494330086807046906330480237375611366182222389012113662760561523386831142757963119161414567728558257716915781094970894332518369881160567211957257692448523457651271611143322118563238592931226027461880229572018963994270544100238354465585673189856812443561431870669389242881538961302980833830638894344527182184626456779042906847674211893239798066981335550500832940827266844947404615044391107847434209396596189853012331760693272352150359057179535638930323392898101019602920056900963397856472697766836414625811173572452093764740077493167323573994271984380058108014446999692656465605599184427239709243608066394579891420702047342983199555095465078843456381078960662695183321042661087691094230877342652602499315199769499930635153111643259042313850106569281503401767623757268922773178412782507363299934610126651677099464699662182754502601471661110632876596229275297817992225151297491247203814275736978058844486495180777044621201952784204277971405955223086679576532374182194752103232302279866304265212925614103572415449686196070680203410419380071017718776075429695016357386027254930776739403411132608249014983527225800765458375121052634613672520708203108994404086672904996089408949421647652867596762740754480976098964098718146514050463426892703091672770105402781572911885659186690114533034068006304791549862901387764073246811150437005782859631989374547298130511584585373789634408985501350975003590628171381541486765563739554894993981744889273176073548638910402962934212426911369380092864264145908205098011765658691582952104558053035955610066174319166097285567085740343206985289958312667078575530759613163795695816728141859935963785527818298909507013506603677160443922188911405706260344297999795133356060603521942543207762593392517834060048729016027222135289373816494555534143828857308585798475853021515213461739211944517802346901808784294760153042299607825709415909900709585819501927487591137529519244904703823978440968637333867469388373142848654408913221270049210900421141262451356654508784125985337658511774563634393874656516044532908642501994671638377254344337669963126280352110244272201138444875756793965252115466472488697387577597538271979066747095799809790652046136739513279431774705973861586099676869391934671745248688786388838207309672831621259912023345537341670636023914605243532123878438992109372995268379420543438746916268530706375392384888410855747679764317896915338397652050672768779218082378418629696974665543579776313578172957749998911312801700516075543504405906539736263047513504707840653666561509198167623477349499183627764002653596254466280752009004187389833032975501661101689095127782710495191894653401190942142330138298008121978050758271003626823117228849767736917646694895360535728502869674420548686429201304387211659241095855227325489373293751506568190088682142073342226979969485187629945962465169276880072376314578479174144485760957626570373245676023376575150327407283833003718195330476228834068096596308675360637696463474490113312053772136345069049989530535290976549342567362616680649636343929579680611716100265887731505291698988825167648739991847670000041962970196383413276452652958139761458444758458491878501856070168227686359314008829811731344328680820964964908359704207743439348095203970730539678727897406741210649531364106278633113094113773838503050865284863578910429575873615513828614533830260624997447749536660127883089969384097745097805745531919525168593236613567861117310547845274976600045806248957687009985108607414592765582128843257128160870225964083099375018134936719017260614176915812256527584443795983077746436515762464224987198557273003148052071573807410463255870816185391613351783873647835769238390959532586127755618759028483681787189663928751704499952597183559608045183132899370908063264134278265865357221765278220058516366116904639448347519520821145978301453759973882054060499739940255265357961795864783478867574204048717071954207660872458241093405314817520956348271146235575069180726880143792934323850992067956078527362383896987900878300633520947434752939955300386860323804804962915129990538854876232356438370808147474155416802365724967040293428119791406253034110400531116134670382314888805756792938261133573137449610482579190405244173097309649624472324235648934649029338912281070334207990298715444706663016529052488268128902374782717267887815465029814680007119458776975362844249694334147438198587138957708673163887612416643585550528763640222587084244199868507912434108318495568985947333414981939101558082016002934984875777117159412724674479280917481970212578584891338191758429642299941332740533147474434297290481507603538533893593805883731352977848221056395161135117949166529313986744341497627469863770370282869097446375788167413251218229653197496528887825395871620042215731668093295124169610008985229928927331177618337064433740586260248558559790612242153865341730279197516951182634005261700594509949855764688953880937265633757534429179383454203854499365160098368098363486409915276103937065167394086458779026705809481130275663141678233881361052760849046886454428481462813478755180242840470927077543007413366393689687302394529830717968298707966695602777197312859842775194881736766125911342725322585777434786629783487316024807986302514150548282296746764622736304871507258302650996076710584635995399505718460344625302803873166246264382964254591868466769604890238102618079346910415970813011322967789139546297820109360508263498386350894035600871341111047775146245796823423521119053812968376333580104488277016726151420262548959208885078963381747183998842118719184341505018609982312414632223759356010532987336213539505062605808324701411390117532945820699178495446182610594262327619947269676765800449764117889121212635167090988522455311841632166936763280525380167083292483588260936914069284674060144430609339363353722718212729683766529148893639429354732666005661609093079046824079519391656359165655771603262856752713922027070915672819677074794863125068174207489332639611927135572312061725221891353419923878091478964233241078017519444215210640518195946039309520913756192409048842883859521293110899312412334796511275324012777559667308808886493880651152140189013825882409054092744184019941996130462038582152659290670462492989614174021906057332211640436652555797540852027245236160188102282819650235965108876203215662657788727429546539246879850687767293957525252402506250756589757471393268645085378701054060032645522500549796953488673333786465789713391538887047978380456680883905834423035205399487637010032385857715150321258349633860318681179604754654524869886489784315554035342813646927669885829092511249719710502360206622017920119817375517975365429426521384099091826954541103767841504647517304402078889292854423655518559262897195719665627402078995322584529557451430453059397063340905813206397673339783606867461449655819247991931493907520695252008707288923836028411555070557911446976251565741971962435830658009802564991173229856419035616463269508290038682856460874617264741391793173014169470103735236590410815717655710690350312447468362566306656070362595790507408156634141228604042395170816966257362056902528569290312900900357711935119889545680387643130468857314190015814161440640488070801157377591272780540061730838289635341697306299257432030855648384360242763161020307006562135908000590502663514528830268505583835592184919654364083837401310782348748459813910223240833737248669084227848933311352361746680292426186859266115308192020863849755463182368814051350875599527053003219931070048007719560738006511310141912237824579411513149486827621752158409294062332280702422202750336821586560026229401793680606680395738931949650341596433603391029750080575748233395204399474617937408025606921764933720061203249186723088157823877700947671014504408956875422968300765162920715705451052363451710344646733885519530143838735333923795316514323967662146403437481123025494569272747845158562782022141750830499767281754648606714259859421008470432529263896087028337405233320612946543158902650189880917832636220570273066318368409408828489532380501416248361274141653705029267513622998221202382050800799777723487921503352844010477106855378850352291108928877575140384155995380444130731904795123803965955625517345101594520915932486545091593447201019587021823218740296892639307097842143537466416662504610145496096415135398089504519178844319816126529947106566631129978603982122198067387898564076172528194620645397513428757071151791130232036457528259678054373958624827005547082602744286777467651029607110802525224670608712453577518404297138151915363057245587140150249879276496064365392950397197202666056757631411728333776268881456353130248844110637435693320708235468719002438110234233005904872698448393066736539536422689761017262557449013862362154346014243404444907057724846047865384265532531786281693217169492346697549820556286342800222641402198231532494663082480208418300042639095730729687507984687774015020558602926236152275129343663514430021478869799714700971123486982104392559543332536942224213498739818528935667377657214311884582312684336398214532347980378195573930226038325037599267602002008307062695377247719161500973424998000646014742525004254158337371468095124720303599698705159464874887345503243035652965362021955583771693649064668059236815774826316142436436678918862466290221026127064078953069995796926512757208323717575456376020119065580776110695149411584298543266341930709834610818784915950588160668651760133264419748661109804522564864013954075272055927650202724125600205647301714611669069712145490390402296327225386670740739446448802004412874275013661852267486608243259824926540994699792393021750603577029957571064771124019805124738293728477152086416510411831340538570799731033087195000712810806633673922679878900713071900187872766659209690495782256774892447222611466627708312054917532214909452398832512370306608265849654334090713160643106580168701635783911156376866178328947061223791334235225027046033747463816683454155035256721571889858024904888862856645289710735682357945294560575464811255629202500859620751361243633957107160964023521386628664550294959007404923622816716219158988484147574100010125445336880552607328831651123536374641340074289492605545235980767549927553948041951822640036570748494306004759543880455678017318963617312773178630137766060552367417203325816168304615310166256518453599471674911997710695343390121629344380238698429113093716300371595947429178827768970332105531723611172396012870497416050766689947096337550356209076194452064665190660745237605059391091200669770450007737102843040360242825901975220491218307743778314091619124799489539173145070466253916508754839551153784507374406267471469115368699590154397276182365755370476928436602178556730475205488008954311178735560813473058957734847533636163698802473097837659718564324396833679058504361425196075590654353575037125517635403760584870621125102303328578213679174635204419995377590485130903558438319687529362841509281063575419802155427635620896140906675002401205586437769233835318680536791172203004029983446348654907016222738596615461081308185961087940800641675511688664918656887118802597273256668238327489375337262031472332027926373915695172312068010475448316753151366629191549792627460902643368923011529698293949577221838855116466804749950553805804287159457965296650356316453187166241869822170569811597474905173268704740824524842225595390224565759041790228913770733673989287335932738233655606200368156711160042400112346616020233371401702363867011433376127365780792178565318026774340012725290558130118487243308304737786787099377283276118614075654897376547303181336244721839194528944915263271067310803070737223992092880263175593648841281351786178065723063413960733674245615578239812465022077659609728974432445864512086684234813036581587394708381475612562370369198021718831291415124775528184789702358886891219029152822149675713786533885635920064132291650863704193034475634821141178316406376486110210636572197331377866552500970383807047709921486876415330549258355469270973268978786694683693491023415983791562073362856023539804924028203388333348382371933660172264307682375772482801617852465419125979588662422214976782340530943371447129190120977283860796676459140308514123672225609522299224058677597424553939227678251690665206432133515594812144543866613398232741743291263842714453704202573688423029122554912402336864742430416039933855385976450983899079323246824043297316043858224401447352418595094128421916479282880366775030072523040124873401249125199857993127414175963791867261277936721817356052897076952632037002104744676375554090822568478108412585108369389795330610285669074076906410079456890087693163869630399302056423314938001473490027117390439899200388228529721771027508168247207113945082964400274767705798757964159436658856649033952245256914328378616645005450109949361019003900935265327920383079400885146331281985968919255263007915307123099361010425062098063960479094170075542331501904321653134243835546943858747653063938275221207711771218802661728283606592077223337244165730239357137878156174510704128110101660665162455597186188614447576268943264383247727250850094857940477187118201607749073509140010809047682598550882357562982628855142436656976625390143703967105175106114821888902059772019290413643747141114611920328057723631069679253832981771308882587852357686650427822207867993518603429890754348239846990927830833036699136709363309703314960318846715081751786509795275795959781890606832937739109178786647362427563224756408852899630357773360766536787954749517363192249264135825851938018575330202237605729716259965699525138527542276189739745556677552691601417506076614472531737012559863681408291029202838727561472633150022534125962033974941519242523788278804020313086577892304258119934018101808599122304614825999444174132495391994744084749714469501596281699604724910738773431066334108335808315056317165630365005595512642875986540770209957857704282272921228051045775391516324027266100077794279218610481613547918205809640931621867171144236438096513468558684193005224800515554304441194407732688804745189463849424264152756317628441960169696711097499879365466165541530268448601580001429138236802030524649391391432414838669886178070242631196097525404913857272403412049225561050635539121530925704345656515577797310852507458007596947318144777482838250196357685192551182982279348412434497954094253192632376720849802034591418338295481692389821012149868280505404067229209526967741871339157400695445249121613284773496049339245612091162661007270057045259071325400132150009282124421805013179497201397562687961995062847063492304470496763817716527242670249544394721142612820277972873160444296575202220841513156104998990947125054254436918951754092959794691116534081264306750939187111108329802279372147638670385468761166698230263740884990965300546718110073430856774695827279859193184475237919558895897629989893268201700294897245502285804099624048989064166888602244324997789718814069240477587955428732699237051829658863885359772925274625581044912581145867509647089931847512702169540092954416234967769439683257302187232661555928085322262408218696175942672130592813117137196026848393607797573862746440362258738659068670522116210279026949624051751030373126421716654602226287455444900686911020639397370082137150567576819510029796681443852948027666996202703930591378198773375446961211886203477854069897653534271972945325996400089213207381785530626221761214799697963086253237527135455619129289736732224564821006656661721328921958571655099702162722587662195463435865097301565928766869506989415773575457072691197063028318341795742623750460902885428378955937161246948011555372277630172943894421193394630690970980539686586344344807083322340949804917928784142221116331254898762458252798333829263006725650118574800173977797449216298481461038383143870414091025720133010369170028054517469499831953773592656509194888549949443381995860749498974466444100863523830138439504220850572911060150156635443217155648614486322153461576391046527453702574090392513332306576983913392946660354398764171771445132200686687064453794361341608156269873257373298681836730785687864712040359981408868939117969206907776208637939322115260918049173986069240055643941601034541503455293469596306906836083660905497742474175284859118798292457222654671968624522061991156976666036643894508812654456455993045157915035403845230236202526275450004917760949552685011133879507679502253219982039253521165336061849790838099944542070645974335270102432852061526404299694477904608077957531214468614114246551425203543962901587758855477153965605976908942668257069980876639150119965166194433032266617588115563296486601836799868951157556552292987636049259844243460935333215242154824973876548499256131817390476043171754864419170525472254147995012716090151855685345654613223660456166650415506649548223652903935077453742874530966859594418284067748073355412128267248148172124673881169796954166148083505560082692258423846770611087394207033575351277010860765431238819776769812046048221976588925038125579159318326166907578522001598259266460410355779133504627945322943865195776367119351342101610245151295331282095539999122871722966561049806574673858751968523941069963060542329201314963112581840245465249397810579677864514697615414060418116901358220403459711301927315031568759459481603659160559410312723593388886765889446398576161501914764752956014612316149477096280884376138969794380537143575717691711638327918161442229517797519755666318084596825424810120103708278222990181676497677223892709183603509511653916359383117249133633137535720343501941099541051026480078681481531667755766519505269966703071662661967153379989354023162815116212087432648430935097422985210827026256119411864934554498370840121485957836821877270406866116134357197115173084587128647962859214428574492992351416402391429392731880598319385275180851064942555745390868572063926189362160259876929953657526156187582800301742687873394157173552853838551419633769576775177551784594102981754917231731757962163668341323359488337915938732610393424242822918442210100566919197263892230025416781728909313578376980056264403172603654152335523582278756651974989115838651917282126209861266656177329308092950535818761656436836092226833363864820056385350640119907434926303283383882567619647110713541342726053457472648650446359272143933092485270644985254856289267084951064903800101019984424292650096955437531076853109809989072094672852246289153674549157929488093834640224685879056140602999265371052842159268240539334844258449166666698601529643475449348397017035536078919983358114024430354416242602079525083799798340343633626322544496147494494625925772211149274249677816656294626876262178031745907457822852579887244266335625098579436431344517121598869893650839219845065457587017822686247589111422707224736015106028214326931555282431718358727955354646419149099940207990159740191679537900067395131279833010452004966180273348064806356383662419433122406135886124117063165940724834468043484430166685628307395451649255830802657096556573318467404048688422846183704085595393660476997576145731782039830306686972668834398328808806302649684214038433641512404553895770215163210354441695510957862474867897896948843505424715435865831870766743985945407269197939156427358144882360436977940990727052188262415678020834194427576389474579002921387074650898678872586912113837741932854606169395006155405166836468298739968996679681344300897858102923032767060319011651322094167960408453575342608554549007522945845990986490151421842722198367319853339094861368009853843654832311044041807034245893008541681560238465685188098797981386737412469326467984772801700336624866356773534136149997436686333836758828341130902336104082006232038405229989006656113150691286172854840445497217645187128412592350266308823908814395562894531712815574811442216039593073122360673404658933772028341567864260435285493551144660833760339432290466881908786400408229375554378448271403283472582682426051205566179636400948295346133684378391282420836638438310411527144450618379275444540776166109694016252503863313275553627418549628802651317707956425092570081652228109762744169888756932261498849745224277755247610637054242872697739691872080902542405658163092619602053131175010193620075394982788833740953198630986701917183559319776605248546321224499151980589982650400198498088008775532389148337802081683586418663167778623131032873067214030211391573229537452395559269881235919087982901106076153923548055030503982895345550532483030258473172239798468864652831361780656739251630755636803028913133948287459698755485074440614025108553521030388959383927210649647660566750206814469550391823608762404967175132124332278573458518496596030058454434266231320859360348016645813499121915201373662430432918599132124985177198403969278095334723592330600975721420073214195426327224422838050300401996328154539270875102006071105333863445771081605682275238064483493862197151290964100949673285977529845544385926519046807587549778496915881855243738785289561971380021899432737266806224405399181071442014365419809726588337159562208226196290020497635102566326656447622706537865189217072340503791063954127300290180061857873537972701046103801607595982164609136087754251190938645240883163065551931103381147919541281211220681663717027559867848758848340992938070103904605746918881357913682777473672355530324187833586369207384660437225850013389719791506224563586780627821595230779577761946929207670198307727014370391719238398972905727751681131762811528572015859788420341277806275188829752574838563740999074056575609172953308143311504578205690305016460594123997680174199899032249700400543220960063797185016410690253410483956993105621087413052633128185697731707504995644976542724095808554863213477584071250297469057059250394887803370920907231417376853744324304075182718345188283919959415096874157662893436157449068093593520893206346016521456818011607264298119398537545593023230527438145108831342892337248263807112643506259340695508663540862384610039255606446589472839789397865910344081952980255611916320463605741609685595395460549421672268826824324083022435434885813846409376266999848461807926203194436017565091197588276623367826110179869431312658765580636615862777166713023119293309559556924238939558743350186810903496628391535929316105200063496414346024949152766381055707960621957711692836493202580380102189539058339346406128530754082077138300214674477561185176615313098430434701098984699584035136672560833535393270011789309568087315385657706838783738904665930684864232003494484862834277150844754734107830783215360723438090597308648482317950653466716601553573165888593215868162344890157540904061690977912791222994301192822196289502416541105432133635498499205143184058485944250228933431830331237989953497234299834116360807025710651856251131690357911874965990239095492660201186071475400726260505869247294938858739162055558805542176597631091277554609040586014777501169078944716655659215258200555951229802525466007278430013535319909836389128506015535939468735498079554519697999869519524731688438960756353142822496860095593448132704051675157689636496097225671623263775066634797258028645083401031780836995253631730849804217647939412511138399663404961905980057880381369024192594641587997760086475188656138657852035225094325309412934555158052819390590205447480945287637829621512887301490397687947135811057048219926651681754420852992695067798696692737176964055563968422629609298429694395184576426961279762633558221453154137127244615146695407962230583554333894401421357117681945103874705671896749816716754987635648244823367278418973571038549452705407934563151108950874897417864095606004030303863519061603644438570308435673230800116431978791315148363937960805489701203421129154694149550521716569126761950426337162997738241876912292656072924761496155256520771623522086746389369231941898003751137448388426750648906494000014014031449957959101612014644994839559928458724350405011291099493447415278412179681031599473719999237244796059763834401130763850563401189433089670469220482805788948740744177343438341703034796159080235953006057889351102705591845478304445533236763383893172851561748129991282129734166094502595664410984997025704419507097906929508805370543012391484770197038680582875867064260976024802046256595299067328404856321622288465348461663349227865931927599016978725519558095098229054194879242204144370959404026744493940417526395807499684394029653362728925809434971256373869043088294684019244944105406016250810859976690512258933251616725194154849841037990346231222714491058212113104101483058442677549224449926633729945894166692762197556648316431509568705171204452852005049203306180233901169785703845183824168534749770164225650301783104898620211909113056263432737578183140123418614132548845387287525480989997712732310595207001830245631225503298122660937244136216269832400573361658107736516949099017887070223318788707998660872991484202170233536511815707683001879551553355541969634168378177689116576885116328674891573012357114096706259284750175905851289834084612970791665417064330855520126802161604197369814877154728982180883048975852339612486720389246824397681696006544231814870404782325555229879979485949964724284961036465016882771536875116887644712790274734989177667345221830699700899990724340952873900577647548085590511919002918811673100640309323106812406970839270369817357941405361055664413879020980741909496589395667393518026168569585116666810767136058733075968898067168204578331394663339779029536082497058984777936192388769705826093256985540582208035414343908857659319914831212050139762508340844652205403840110699876586396490962898291724483894372660925805073973240246911071531728277883016173864907012252612065175088790024812008443067310167724673846346198301531761360891394716179228891141277848111245493692564454617811632281403765604560904563350730519355871943333704176590424064773008214218840236275638443318717425975166398079382519720974528998592770659934105958170411812724716367522492981795941736955989892353850777566693095959891479639903849522207690348508788728398774667001930878947807540568002135605935935281545758440244376373215948003850126185402334731687063226629025854871736213470628416164074505321062187480499452373131433885148589694600571750891192402422407862390672904810670456827421676248566909830492262427923496992105330270202259276048119949178529153499931703946896694699980210851811246108418589386210390169118473453428365596336063161794810134772425513547089671955141853382896008417117581942371872930653147081918955056308027433751957540424882044271246851632326309687652996817852247136357983151448076648724797296013537582297432960277781381269390314670524338436836913507375309208643635175577728927660216032187690144725568882555730674200054364594509338001690735702342236040030062940195794763426554814989214532918203242475468299017730872233070907303367309601606826202775717222076040448358056276613372757515458409677970918935554663064770072996909039911818864091814298925582899050148740633412287534120413055239003337264292787713481160674378249999546284677077885991002827750293274548553321306850010066588005372514788041606206296092171262013973829520180848360495926975785116975710742983913225837455812625465196063628565156072421193528798418354213730429382821713359457586192222487290766505440263790679545792418288754191091770467861235710196206876711909893200635291373123560967209900593628025982121149146908056393678003209874209841926501433626362308998310424449346575580031222338211255110478982732114190598459383792036369619970411518311281210309106737252005578703132820949026784793911891605542638801647725054364136630363032966345929998140451762111750472165076558360125860995304959369925327146093039687284386459219209428864179231007664611091481837860427575645239614766502871504293263482474015597875787098057063609249388964765557865073559349544337871313145788772899553078500797877836826249810641503671285634392296609688910557232398900201937920954950949936370080428696148115160435974524519582655194306765228626098464806472697332844868738693427453673917295091831139519442525427219408244628535788110291643697402598299223472496066121935255221966630894452873436439122889281324627536617932955804311697348250628000751148698772824640404942232266115837802708140956281872866838218502705178278541130664182146614953972805909690148331080843002299108963257148084278944475565858165447832160857908700776064577929992701873523057577809102384642846632875877370027955174391438607637754138238783779614369464848241708218840257123549112417176998267180420324722772430583711044847031780681309280999163725009362872170875269979093093239119181494518664639884560276127960435496253604180210720699905870755241394525212056983792945629185522731986770304374304881867133715898737194029031312513522352139783132943406156325571622836224965496916818014720179533425962217081582776857380464254677253786843128461631095826429980064286643663230311054776326015714382727394046780378837813719069882273921441364288421638046635017525071279621178146277256265314067887712937794183083176415929220228493972686100396261708707272948711559216633969007755180440796259250447881054093716587164331677061610529826575202632163872440241317175075626823579571178615511090530397421925762231161483403360152594749744813459430736599118088096243212265687958124186425887219779358201693363336785001063928130324892998088863244870558855413836708308389955986197492055352958928262279808071663885604671117620776471022031071087220487516764110380486457534045065338178834732826246295577555902222909318925942513385479591177286556989657097472832079156296845477908835639886655709462670512635562129016686947934667939806703003340104358385697888374129050643978496303617652337874094791758165103977848244074717227537183803736770860936806061468752880003802006218114881626622050489946766208285362471021198425865981974914459908165589904208609649066498386423058718179748968612666665316287082065440107629008388768260145214791146022138297000549184829142140779190742496205429878625629331182365044405300704210077885641509913257632049899028764306152498777970514231648015881176709654975074525802454928173326176393124803102840421662540500363786577331708101075991221369944293502038799280520993410101317412639367554989514666659359694832216302885846312142906329204998052528735908076552634867807610367873854694470621390291798696960797734106585294928223188724386403590278487084077216278274933961408378488512405596976539263167558325726464216628007510034193734641596277772434751814591648359451946339656466761745702830148441656411195666915223453739595270310737394222355436522688944987941723657485705763359693212492279531807920990833203026343374066144790827801687033637006286675277606220309445942526941390769047562798492571765001589596401344044724506937227978443245787794194143362056941494783480437123218188326883771233748560338710603553178401131803116897452459656313297415873293926693761008666452794149905258984849351151074370699258062565727021828890192359174871526891708769432898693724733548655577000910394595059738492237229505696672292097871464543358423690273720016405970781869898957811569911291202145338778043763954346043815144458975801095029812894471571614403819443065343571927218246642583858858279458322752574329494721428604165442724246000879976494843635316116720207514651839866484142103742227765571407485692292486115816000690651749408924083485512647807134721460095408728803396612648155815140033736443869723807449834744489413257435022243069200726557289710838295341172299045668884275952252715098114416937100036152789089932030802883293640898743005163252972917808813567107433270137385340690731103839624223362764582297291474623921989288915809076688440401621397540355579785081883652188638088255490617222046581100149250750013252397523428367355369498929613489627476311212081686359310364036679169127790639161587697351652074187130888210710956714184889361424271140120730579818098590383766118600200483035540681619305857071973677635067149967111259066588346912493110126252962627911070892784218751292031699001828934311143827550342420261918918335584948209456397204454079436569527092518122613462965340115902908143538218424846989661119599303396377652860271129843790674759185386254601869991460581836021580589526463570283553985430429914554296243712169815301522601929973851277868623116384757694557006551533862711222700419663890226290982111702993481386007270334599367744354340577412179256724961667978878267462447776830943938994563696477554708917820126967897784233566314474358016480396034157844023008840270874668654882164258110333910867727955197998303467187539965805537780947143153036901034932261032725025548322878322866328947446823267539801736947949118001847036553750730392828068941453747447234687534040983469636025885458009567860794861079450043687674021108815175248767301329998076458085288471131048686480693677564247365260304656161685473601782233803604658985142634314612054134422671401515268973319254163539224511409240342492032435314869346637973059720070153430467107875987515779528410619510639903438425006766286978169612516565177379905546561070471412444094398195574388744009383721722815070660979557347126607459259154653719808372475711327527894112570771263777329063096731424101651830006589880659889915532227821878144446048608479565899059387270442020763463178400284268420181010281077400524942314667615161575625201217078452160324996230748889381644513846595227124322430467188433946758365490382598301719066561963008671307826225262280456387401147375831401807576738216171348055839805500134780597280311851513984565644605748897015193651177277860800579731433005645951941977877534042876419194257744597374930893217010295811854202513926738927528871526364893837050409166348082388604516697773213120655052607410481249259511723930223238753317902625249127957792639530029846224112617545312929618200063826099985315161891861997870248916330311901419624462964335533474711411550743122301041186905379010577722062040670726508762024456601667862281766869816679834451507669852810330863967571146542790580950168905913015866702736027489345809273253141727412359839112381444998563852118327279584740753027430347292247034102121744386959259295072039084502446595473450932041953227406538677970149920869592366033558840962283426027503558531937012173096923304136786675501287065604378029714136227002346275886774304197236365656387603611789123508266861397335105025129267562643794021805189785503513626429921962015013759716273462824269331510584524117613153912702926739856827318196587809148005567897729234798691260201132547436167832346558149778032372392626816539885239484682403905618335694213991217759585580861594090001319952059969934502803254606644093759400122975126411546914290386107545885198820250663177900082777698278605098657223493743542686670129573642942534818626669266998114790836364594771391620312794903964843987243490700517064329964675995545285502654311799177818051242671455582515516494870544852141198812177789382166053046426048465857328247432487429829946110446165874239167180290481058576960483661644078085249332945273535921317748293997254324145311281035077206663765107559025010383008765715102148530665571987580650663505894112065047718849142033739162249901795942853005453272453763237059110198236470059017692022288010681730701537489520382003883228805307811961693571655645288953568421441206514877036284659848185036383547956790279712381337825077842502478764488524979261935869981817431572103961196815812842783751662150489643702037049081314829306056920031905438962292990172166545637950193801303544971860089377569041071502892949416853458888441222970624759225805633781564838245910984064749869198055081409047821856223627483078239937236834327100403300726468145875883154010846856396705156540327280517386214842012123140797467087230210901188683687095760719987610340910970418738880391892287794176509161154346657461866629082944865510468387487133683365229013414032854827170628537659728422314033667954962072582980449721058939757712115960380219074502951318102597851224199900207916852640954533250252622770595690609893170593857134013028954115388868186779066699693373384331278932036093531835919862308767510285675497020468196822285838312535718412883889848839497044998749967385211418365197219879554102635625215458458387726972997489699636106427167740687793376785272332084521398586490604281507861565750292840867490710984489580145694767767347576142868286433686775988977773823880175189257830371358520280282992814289904191099566510430154370420196436782860446615454714500878597900078062111249931609511242036370217141893764219801217031041380959220370891620260648681576467042795587569620048001610264977714538795052464044606793899722640734845805618874695695479768324814165763610671834342052301807147718103769970956273673318389889524306847994324907305068903806148270777048340227732513815240133808616236775620385648919882827407925355818705180600337569066673933786997240253173285481374783792195691844689606840928833408817347034578187152404194806141930063969206588046766220934000153740925969140319383641778477811876435181967332863691948850832612805410133499199837310308637522174665912272337499771549676018443456559017903002724209051790947879802852746277934884236330034355127287016672635049331720128553780929748068082609869434634444520796990098461942630472160440654444947427893860867258036962452472491432981014509857142017899186403316995194391212919726609396356533270575675697605834123887559284746523226799824924334269751719291522518871685326473343160036802622005329355945503357117703283554963894669146001159549743609353737726710031487950791010146672841807481947556474866308622525041750887952911270353692095790219413403923169525183354921937853257917600662654604233952640091103083194614239005224378092697071769236884445062050474181424356993099067532696576258398315338595552792298184783274938016250309401806109601147373302324394349669022315296753087790487654993494702403336918818235430197062722684962600333974172460347134548049988847936823986985697129147738135150256962277044924546569479644343431247774915051423157223551590765835309277976827873075162358028441276353578434636719548146467333568737861606506260549639274303319653584991347269683123618362614909373288304920414015479192764105387251168726306131812134577367595673160951507344514112688997883431994829026338604332511049253423844175778918918338773284290592250659601613029941341456867623723956691664359777136309733149210912262131547154585410662663624816373899224232718072277408169244432821434290106571293533935347843480619192854540157666368873134393624906828642657566551581649294594855731247559656495124866472098796337434041016736427178088398542127815385789059607863471559133403037801304162189128377798120124069249320365549317562858339664604084052804974708896232554649264536281510655086227784707709098298828395352241089371896879834050184673174199870174740154692182036280661331439543199337408452087209219889247553148194385658272110384691721420718818407373709975441859764974828197655400206908572725973369839897080236823122386336096791102663101049146818960372206903866565657633494092381558950510140336397408759720784224601306310617872654400586755792097055982247935243758017082865709232316505814977025321815276378211193424778108431766415198368271318796610927000899797762781702129382247683169537550294141156875186038966643963940984249560310538579171104250063369650965486039063730097403689119695956636588053535663468338812533980827202307354505737855306377658356206417007034726453833736124986450883449365378061565501511480029582505651025715821425086130330132456423652564001229509799211340937539481172580716580227423587623007308606564583056200755643168525474399256194905810370244744680764517861393433778372492533893884570449028888282152149038895836936077026978584643979819970346035275560122152517862076686909617875654656626940510794661766386892509749820385370242847694627039608784592144181821261605190270185290428933159810367696955604151530911727186703529936510445210261096395480328241578508654863967582477416562573348480538835755415782172779002600205684935794198460229579386277417379159161325993308737108698095263786178607510803187523680806612661012596853684942100912333453549688699641278411717899435348595646548689582188356446830076803551012261747715374949593967625242514560325258084289161011948192515744246078477516584057383703581886962904290474692676318408667990375436994703315346967837006026093354118835501377674277106051293022068868609777840326451657423611066823208599446877379978099057121055804848637176475118736625852578347140296738627081836720327128064580332080723381385365761504332546015013081259758993860817603115616050746717812489779266033958012455711749650299580769849690134062037631107092501726117248929500659881554869234300025238850446027865252459047024396391069115541284946187812938784787363201856428129616563028904438321460152826065240701739207411113136558749382620548551533280624816365537723552032957692959924911127785049546457843291237663933179918266262220675288902843255880861236472109664379750912575848353849477703506401594354539243136574385927306372424843174884705840922880010238036114916818134275754878891771926642591209751123125447092855875456577293500487609126354685887449681032865416028167125743501881185043056226023663416535847321546793005284343567979921809869522862633791123118855084179156266204738870108395502227202287033738314794492751984489330441969463594055647275516608339199762074907801803726493669665395644067630367912840123400431753460067591520997890812928500144591731711503635627731322363903453903745625417387399716647932807381107672034867654211452703959652301519874874367416726028074446961361749578822963094110350331888209448686915193091670592135510435264358997279402160555849784476429471301193783649375452036090980993132663324950308812569583898131606160959021094949853053581427965942802074812178855453469611446189400897861948811199772166525109200637767815835698058160962116450317001370852135683770645889984160148791214625367456532460950094775783525131588661851856122484541792285706820485309129454810475042285481567617620591718824991407849780484442401692500083301063730300300248219529884230287420371219704578789433338276226884338810761690221403065737221364827172534259974370999264595774036139886549374288642891803672693994995902885000342079883283677932281633387948641176950769883396940745255102955626439786612981097114927417916530363058522143657914940061122196884919160258662935236740731038193480146084974853574196771784362068469836286295821570045043349903148055702028149318179732385656693043736881550699622900119089823751262790796426914713765378001158193808451046545615476248815411924914752787896095826812317774717682946919833974760297278326871514572880598361059430826398810702249634557315643630457237553107981885006592954380541702508959355949631949745619011557339748374039610723334454314073326654269707950223030692440849834223075424572970303849155043649162932214757121765338424138610717888584215157932389470518657411424734948749150773451755590315631518361608818905538604006231563309340291404302366549088383255681121484551257967027764380527767575376885047616818277182680247331248478487819246128785520488861731160043544607123286148884483015833508613577552243908729208758853893667946645063220589549063694480089634602993879905792279936388592203675159513493946729792329729285190650489479579615689206991425666243076543912773177778241431536833655360246474080924667906574456921551506108582608200927400812993175967389388160264675684815351313681355206623658044761403232281162928053953774880709054243301753215378165815709763325755518700286677571295966519703806209186230216144360446317893735321637634162287474404328520321053281633540457505565030127899042959129772286985924616909750884361456277495337430267423157441615204008290827669765057505901428969526362185865589999563361083158800390101221716263450848121666077645401480410079053687661642649894576469694004968918001321339853758131261917255125714778868753149205354605338738492598853733271467348824655366818881989498000580194801610836618580981223920448944044393131353879340947871316475972358303523839290376802077380036214885977567424076689460179492474995472575438084959942051899875141974617412046102143190955850817107976203878976879904837665883545708365568696731365052431444706702463246238319149681383394975780606536828855721548570908618895886983788961009798698016736225380290165013825569223960578972089924177955817519220264306171423093129576753023234753005522276972935672295811521746595418123300125636552104306777271880149403551084187880547525437047674159676941495862351813262567476765026532764359078696116972840169076324759584326200480710155748637576950285883129518390389056073043809236240327920872803447872656880321789498811659489060400480135693224126813414203989284363639633588659985063381042229467533142494999656499322345159786595979141200768258336477044252149193034666749496909465303089433532394863375153134354354626536232619357095155442317091439976455844058380654965688238648431695854467273279875935866268163312945244108946691887013310785854715124964160746684053905603096714588908664181968692068775576560044463926004433585550504035300987512362980881267758576005207486944177223593382926770008448386090222963877375100864167961890169089876502380499856923643637700857810542555551434447326743171710102496566446892135114810055305855627171682997338644735685007579512181855569177527633314228144363336290935995362073999802221847083564113598049418766307118228203351347084517593595991706584651661418585581421570872252020686375268351297063213880487389732805492258796342847678038803041817071847549582528103891235104822565365467031794525805607393625745114876772880629554790201174896321913884686067310070198069729857908692358244695795581520116911317553106460351712001818561597646273145664212529636119880415915891761077757233467103675734361472193618109221410061252779138686837961458462650956365117858634289057405014637277484908640405190304004548415764909015789232520772644365279753979909176123106632334739630167695245782942728739635951405029991504918975251692126471483855581855631916339308025225881389714336572757425298937760924627902906673477081161187400286136889830996217047801823054770414838918729548062243350215789874976835208514158187573318890048767771945228471420789406329341914887586733369239663403678475002747333014770546315107122962151902084045148041688502054840544302392117801049870437278302250445726442432878562764599862376424600074547226922015676432614080031654442705426259919125322343999340403304747589247896425624872250630916821372547263020367939004616672873446575210324913283937575005837239988841919391145003001837866097204350968747473105086836979403088738183840601479723177642987560281673065040292397587139142667677778234427040780727064888261708613120919247690388710911102385037858120587842447712253979118961218891366498940618379344590912694914772519856540815185589172503547083170443621467842137021882906831624422680668125663338261827625467266997258015584313715447512744329323533887123545209484395255279179934653727381838576389286789993638792575900930078638695993561209952817566656282431237124254496977251954832691063820740730115201959239777281363935941910524133963694339469137380816872969422122585988705790550667530873846966025343592989669801219292738981802180059546078665406634241922811969921158703615888285589777401631758681708074467554066208482853685109853129377202996505752011730306148778849594406097512355132446087156181791529581829037313120476926250746913782047123948897300624553747157613489590426164262619483419560402105911265743660709330466331142564929301387250498009348865588142756210929185367961137445939903638495753948205676978336089559771947334646399930777384472858606427528526265712742651347647337678924401676157691017112041488232629460368108020662548314011005521780720317736275246603005792161455964891760351518274224509598626113470474568148869237991460578849759751207060044892244303741848177156401770544466779551875156269702161919297166046485299109880717885069845385362686607631380342870888807743562404724664095961501319282354417923505442386240327312850350754717463831987896352631196640128204105728950817748923455861253219939852459736801305012644508818143660577525089193853044728945163638317499341232197869778330604290507228758148637405572396639858192381650441161028185441018732520510682890525164589949264363276350819788950700867786347956351347288602076281887285042801770286710874951535093440460342391817205286644570174627106850090796632911941020898405066705599714957934764604331422883804952751380321709807759078633291679353690155809150531373224973007637749093107160607820763861407883141318931768815477265746010231624422802981215152854002032377078576537562004461205097742129551214950006214578480181124664791642436941499604046951780806952370574877877540758667907108278198716442540874064893008010916605144946647108624133476123225452221488873444538654603318413398567085186308408113499253190226173392317404755048040144390839129169487876661170352499939387982950410552732907917341305636428983903377028642112179324940875033144812492477102503652199059968981590212868870056406208638041439279579478114185610319503232985688257803658300871366772413604715702619314751071737938701916267533269301335766512579097591773379346634995376815860238957428442383730883731258977499085886544151763572581138038728283842168994681007506842672604690613272173373559631368178347074257555877011356504474513689577699438982682572067727147523270572145378217061089755105155736732009371703922556481824276832910375765485725027049078056636699583841554359911458861439271058034976676407629677482363487274828651985139138546300650889133166388864732844743147468133162839253713110968950104946484485243616031728801441442325357398761545560639437511574415578716450356542670284038251633051300919226683167324965088810783111651790041248359232704757371866076680954048740891926803652339073106556262978105968909546902079716691842251426271199972414427892523110602731273635390356891691966582495252468120037990646434977376810579580458749244163172443251031758040125156971121394191505970948646794380323618279003000342696341783641069394141140403234864980658467480989585728291128764736724626830791844377407875568940209895100326086953009479423946064032285103280799482161834297967627397342468789577806590887626812220520392520097796352522503047799888734221288732470991015751736091340411308786998785207455823573611203414915988280492765007932076903372171859694608619250494085543900834605737345476978988802189072220124908542673712595800735585646709578810652020638760270633104375427323572573791787661798833757371202362694089797285505315028588601152884889931041986331524203235165275635653942724245656518974791854533788897673858072195402647627217180041450868572031027023527470827455233130826461076329392567069661134780344255343336397045998710813088883240464021582920186345528247184819176793503920768404190578739884627292587915537417506208887790935644750415840516005385438821168502078468449716921131129669194923535962162825287591689282122578259894858255776788285313933267607992698597265474838363413564032965701134951230545373148974453025423736619565380589596870845899651220522588748776235270168454039572478150076928001229833388747022610391085131350550483974677244152937899269848727324624739444220035295004224868104131286961368467204062723564976126612646827427523758791591054231893869098741509033766057210044092211050641358812621422121303371908645136640117696178218027401209031260956859101192798895995733603488372968136378307246441280641503785362205178920616279955669020754179241582945813628013953742592879289396435854308570009415199447894723350640382229257035588522108735995966074454942501887155818791241929671976639802844601362929816644836748618980030885911490870885612846651590326093709405269411338128802239635099080403696841462470597212805576254872978411011875376584233235653369527992495676021414712920128997621665221734302784022159703626681496521605084476377642464103934910314940456309494944733736059071187549651065991776088703974074115885893404180896953958497323425799244383388272489612391008549225410833832499814815132149150078607155176253023654368636290262377388901876110156007862076877886648114062022981336205845052458832008829043583699487426403515025690374479267358205211699884498189426619045556116264016175442959718180782812570978542627443401178697912409698167971640155309379869952155521298206527602942704319349235245833781362731002128706506237235822225234826877637992022356009716085623967067738190836188543333106082211068457639033886027798517686607463457749263813282686003541732200620583191356870370571702884538747712849010454853009530832639103051496877515795072064057949582528507661924746328889860039154311407034293337415893614038168446122659316580267566751834090431410055443779088328509654319041123627115132840527129701458064265067106267286645100652083980176545116774475395375533287866637492808175501901202096886947619161013832789023033399910180100440673585804374304476628356281643239356616601428664464868547196744389787648454410476832142590029218242910611428781752150141144289476483646697815479861700635693553443626616107253515149059207377387041172928012359152229698448345060814855422393393786362296378122416267862082977187100660197440042663608917069082748239200516619971945073978880812352890077399781069217964187902197314893089959051890523099644420703150355988129294973001479267847809454179950696083477947061137698818564859833612633415297937074202274596839313998711679891504655660463851155976767969460322030484476651959767108946466799192811222345909961194729218159509111289640523013043190016412465697668136121939388008189177831669457100659875576667452743275081203164739529597891531754567838410156878098011823622105729483695770462423289602054778901406953453756225221480529484046872923410949146014877378463099424734846168109390558484223475277948672269118182332185158246793581687129819249938035242264593433966351566857704336623583441598381264193446530936360365848534816777756735058746160559319350596619509583991589439707633970618395883671156012515847252224685390269989984669988872233495553499225235724753865955729670897067578795387157712002553462821961179509154263268856454274123175521652198984258437446613088206612588032326829831550552067390183717939771121258940895706499486235573691287480075442668120488685751362446559620905415372870271822585447377163808372094384059856630989206704001479333240343665850964249416038469368013996792606095741007097011031720450028874864559712339495712510242408447770719983401230302164952148385961826117554746538240038071389890848606953902784832638798596786987505606450738476063812534970503146728288940782597196230161418264917404074617378538416979326331469922407284300220901718194964591718291610159841636040221329325432109368303835033014789403451613860960172398182870957451057548461849163833372494530908566685001627644890522840030622232280556021130377648553838017498126429210609220077872483240725358481765049251384226473664389543597181349455761955036298415312205922696527142599968012277075385604854927469250112635126976631648361636170919241038135751457101213062711480997040257159016284579339326677374236936162072597571373714777366767986315866251424526958888041963720168880725371729826321399254960461272598883481074610425436885204108394381086515141068380682519821221819979536614075282217463730745644989088070384960539052565453324999853670961982268963726167988430743561526639281774724301765010631772879751227851538620760356665454376597847257991308948116988331180036327099979604321064869123014170160437048451234889942160917877160013843237617641641697001629899647099046870250937156137843420579315449459819591727169042060523025070745762654137921955902577061117712895451651449959784871678914212916440919403130175110537931441945377795858794557241754312767568846232619523315548941473475971388255939489146208188264212919430635670214784084539161472114926436165768614209697963090410971156398279567856757430872874698129524199872947060612201504616528010586386277032542162246800527887917772137034959337284610386910253911269492141500171161303174963476412643437933883167458952134696002466053054170492514657627368700746355048386511017545855432374779738647507757262825813387561270806114337565648546546796062911602804644191167730417437127272336402987622167548380101538276015262226759912037351917229259880190170690767682668333796355697461130794197135481455874570314975250236423322930936748857701177663420491417642601429419067168752469755102227251582120850131634730941743024813477054984190927921518268600589681404943884003025606033871273699329946608254007884563439619911735875020597522356584881457501593687417314966825856876188480560236463855957860860393323848099990072761601660758926677590231081222075937031781696601401526180271535162468344885391048664486037645451566661645181893561185482801647000671129658655498156008076843822930745325117773372044664422480273940036525725652609427703782697709370727007696461040121949050372645017364433981688515278531310050462997572690703913398737995840458216376160287892719240913109956817913566518676695965744087248490781585450967742161484994192229493492501161262076002686388469991929364477697089107521625427957960049642005458842561179288336921574785916889004175924072219490730659863969785515268146581095999785034571065417491076695691213244410593948877644118656046729887690587031079622475370187499978586971588788020889900847826233608576134648959634135395387307523304481421275539235180864330845741593898958504898290381603886896999404654873405309098161769173544345005855941902634416172869803475928763129905817657442737332747770623542424308863094576973914916719204978544078315709631552986154990564798824481057473095671994112025306466809152456622155735657610112712779260750844519847571148489255673997559114485776870219394896263892715235604947455621350267338472183955064754199851608817414911444123116724088824825070732770258591596904788244367030316766039877909757829173452436426092960260441779805426438715725005331139679696851072139940792898162022604571443353139959738192333740420056558798195443983664092055407237037151657535256159832351894443176511402045261253412864062815046466489184854370725226191789618987195131989324311759140388966455002490225935122838934196278271899392353166415904164071922175632651140054266016208784057574574105398247258673495236084788961537197238955208664948925105352170474839240834174993742974449640290105685158554446165006077982411414914666962599901463570607298383153272827562312496503345422459734076388279243159037048231030148287549293348850812828638443210968675191449737417658405726916301516294415427703417726243914794451254954854231681070503103398070272258366591215040808330934388866813886235462116807715417212376439406673575698586588573231308806002015611914542655795328340248453098714928014383722983792560896786599446243673357353639872961957751252398795529312030382912832356511995142802851330309184162822621777611369341195648408782924652915731022955449499717865560283893901057277143895814565816405635175073869087181631005071017026320431862053106005112600837237384338270449297520260700900373896374185270101718335846246466811647942918203002504965893762047416938975981055998124924387094334493893700826011569045152320583347037181686778553538815998467621702798116350695340270549086724435377025876355357494733719499260794846858702816308200429026840758272640363170377927851780993168504330394340278923767434533150520810207240106289697332964873505212874451034735844305405059793018827120789154335758766175982023328169457728207359520641474996018347744107018011948463693386707581382798261642187138589685048408281431448323764217845813978734883313083991203131498053335034476943502991513772248256845486937342192080047633862745664298278121934341268053786580649500325943249001954134295600975547998778489334324431862511999790837585774163186792813404931901221463124627832919012492934401792526115335256677233883481974498108585515159120295588294016593247473669025492811840523200352226975765370509299087632151857437070390023908932312466763795245341571831016483960003881171273320877493986065844652075344621821549648060343323564001931204330485991497470756350246570732647944919617050727426920957926003108326093976898446972313695595085617861302798850137871698238918903650252368054573873895785419408873979844415130432630029281703334447223046745589086900771009076067117035032276390812266605654475087945543322459610384214629021779846093132523740135775284967145794774836142023742229939662529833182725073266924764664983471077693429451869224207818263034898971047894359032188017442261277353282496509440888037058747654794449062614075597770883206082304491518952545543572302611007087130140371415553701876866291538536279052768544034561123582233682325985687613033523953393166516425719745283560074394753463240924045271833493439398566996375875111932655810022163704271963632297330945554488964543083112095860235073244768617397011066723280929338380709328431912138735998381748374415758037656165074580348713309957870816472783373919639212760300172405978166765942799771117048433843070348030957674449017426406245344390373831670294575175566011056772316897994122034317378750584698947471629236346139752606950097560268742853416682737349154019536695701876386654900398685222601506966640503456622671146075627409844492901868302993576634626568765738868073930015855080562877475454445887176651261557417235948247266822998512932991165395901646997356135388833293551941816139397826986609135821072285384966585858855063187186300806463303918715743598201393680842855687257575332891011822020848306673127344488006495833960419370730379838080134458426755162749168169043984276838923198194576289532080836577358563996700458340950890389411804585055118114782303523571811771230345293140485233398433706823735180705010876031555525166245818129450460574672038909530277258492463173745738958593093138333770850433414843144013655177621860786089447007379450947581621335013871923290214576448164825328343410857597804720398203023033532987674294834521346051629723043772406844877787353504629897513620587855081283209788315756944983492212003706168586182756925611667817049833893232793408646513812583319096845100695216223496452203956965665635693168348613363051212615494933865331537503694404938518257952963431532907599621427595590679079211808020722720363771569676736801964877295205599415709480593082716350729992187268750916430221879078443862355470022618336958388419933663188827197893817599276642666837653569284413987774899724495264393447219773691799611574309505748349297378427873660453764986539123481856243350369936644535388197572884562218869457394950267901341676812884094924317642135732850864301742150574383614696486378884842096451050036952955383236144624792839383722646656042167458888109926224411950967465141148316122409563608418613208229002317105116670702849306176472582854228923602076987759431651143310384860290511199302348809104292374418058335298021199078794725008166238960318038586543781805686721529888562005484580616088020886307613112337268716726115655069405005278733893282144238320185913459082593045585482211090718725117493485664182915268549569044285660354616669990704880441081920806872134237396313003274749549467731718894448561381283782814991126043371101779738161027561389881850291917092745980860020723391082219668419156625624852128847995963369264636601718192948220029398913439285546376275791364799118496235814456593607894407648837816739384151896523313717338209677630057351377416066168412977747378331868412816578554943002240481804339655528982227190577257853010832426701312016300195321441236624472329750955065123961250197060597461470680378226692642973069433845223946143754991126554744547509825978177724332293683735648707304192532158494134616165625036568008426309699377721164849475282830612653715025645725119024061123729245390415445695572896732686378880300612252325733289942814295632980047448311167253942569756421844698685064730578590017037778515611143206910459964242136217785483285574948145546811310485412355757962986988326068739526486745889327613504786687555779002664109143744210579329613709502240626920209225004427644134076670921098086667719687266375450459700692611302466647425548925855926746559582046983105842164443549294412662535730888681550478567269200126757554097309333639920419860232317407470188667850802160571669366881752667704786985677135730311968332788764312084236323040528614177647300273472147252195467823263542919941911788584175558432904311496755484234918430555339353984730760012223555866304269721033792028150067138979061932737180797585404383059015278034872873367600972624856948277611550183739852948550270581968401865614708154574889377167484411475509167933454405136695387430617978816457381530987353567731243948364234094356233716434570796843257346561591264377727767118153090874486655259664568867355551632174641345272334876539465901507641417690560864553651655911785926739317940842503697609887870469410533235805179549563366760290326166096716823486566405790403040216925873533434587640719178743660043390846940350509307760508341306846118530089604362699842949773034714973501062128457377596168053435341097570770681081309042969614998917185877265638627942948309081838378642568645631900874511084701374264011193885568848034257117399436873736552485183408729532422650232175428093076825638446049968938437280284687936982173073694543464417345121103063587168264942675141604228735158221253059505127733025106676502411068025819223499307015482126696778804920729488574900647150489898462778935370555818756369433716807747494551943862648093511086162695796788007843661694287366348127108419196980001940124795735448866397361381143413488474225356375571181132471331339559664579484543447469761072626723733429031110881539038418813465788353942954813468699765574547830889981291743486843726168548179897579935116294494278275857248635783457180601340887563034493948835091600098821919947955344673347630204576316958491034136715544387821961070019230407903740616295159632953298084681518451994780275706843870746505980743216246332145123956852103936832234813238602285781666000204833029439502770181816600478788860876531285038663455118012774479847191483262197617003714286758863736461279143159331538630680707269015760391899292810331072972796894741375111629469212073655460541449516155312735430872435869666774052506614283942527116059642067050458907413311309550011782988701208684531900505551469097154247450839226414835401928624030035510830550431945200515181782234227849446408720559023792774730954358163634668853215124126326074340863589792907154404813340357716058102013051485374581000432685751895790814078039674358451005120075517918459482657687324544180005897381891690246165736748848417389130777875287177179284865001242961595670985674259754501445688131531508656787591855020605603447214569796761323153791828970710937076203963964673337524770015169189358487882940769811887752250726190401615607572749720245481647032427927498155014895350914170668303635940656049747871596678657269636312442573913066343378952991128367593370387461088339441420585083157174302929406159392413758153599764527220378351615068868050455472853821986065959367281656466481131230262876449749281025293838437772914987194093811745084710295727777732015826043001476395559170513834821357205478061331832433879525046128540596928637982595895098421918372732774740738170934472512646894638980854291458831982991837527279419291641223304895115522170484630287448862921344050231398413964009931821033433774409239512135029361017880922361409065531072705614784125064341763756921589562663350507038411156024338591267204909247983935152174572671975949724320277806181515634744620588893542932759209501049506854695259246275874090188864388349898342129403711818238006770067454821517910982721401074591225578296092982768507037593936632737457536033539425916908300492298894411046298228660505887924019921286266810820313255097618268272880009605351450638447738748907877982361654757026532669411156034848524556411422360003268195191433260318806141644874847099067200637103164641721107299972764059807147017970351673232987567743461252922239517472460229034506220376234865046162545056040932550248528436194014768910313433912042895323533928082298064454044116894133217679118866463023564790804871548707210233638904773785530904193996451521020094233004771497885845106520105701942705443151841934148515569190586567898087642833010708607884112651579292309974161615909087844083025520490519746562562414428225898178423197575112760627240587582957709290809212873786716373117469099177413585208796998409709153845583263819378801979616832876966441865708791902461483810575627113199450567399279825023809046945588300162637363210036840593392366871345589668015998324662505650266762046140082095653311212212429949250114616200964091754269407867416309729250395814017400817525848474077366825813355676717866586100865898834065762253177353348696205417328971694937920178000324016273549923047834173763783222564667683889922204010769110745584928072019732933166298468052920905801105163684697420801251715741226890810259177030694946661640262166284400780419049852928398215544986694106045565640268120900247209301478582403896276916766566430786318260323560835930271100250632269713404381362007454010524091830682214491281200530438313654518551644195863597575128546985074884899105381680951128990881899128535352478976322112360852847204417275705602753368735362095648918018894214690780543773763806165783854046727296140232029177539258283441014419608990497598813386668154342653664618235068405923361557907121327392201821155405884278616501957368638097721420966353912846111797592378250260769228689950154114601167202543807521898382165171611651018820625960790623914380531624554205966054828696091219888666256380082578968908200410383045948716812701796687610069910882069947443783847702816928937101526175831838260759892577173749329268033881496480037950983003977492833754582795222288550380563145108902575063200703378029702358005071356459785864312517917832547477742180193086601486318476174347418438252558676015757824248023737311366621978166903150050565939235937620529049437292862048968789126149355729268876536321105326559554605140249278715218122683431423475004560018249835551999635489740463300376465174126800684026648238391058011886437985503886973347779356777715773100179053461647469471885190681608281892493143366268716803237928111988420305507570410586715553688449995963593597394363432388909568788571389759252726441311619380729362199236434048367352978703919315129536068549152285678857136781671344949896881141747413261850138901406596781623021017414698159210633080470695213527330741966123551568885288394802023651238990471556523528806255409782836481031668642348704203250866883283245620259900187966437313278193837808036780558021632509599789453460187362394931099973151407621161035263294223796044392304320757177406247868231132501310403556738662475440945230742473402159266654255467553549422350989687263492302152606823817374949517418275433200579648411182848336212285946907126593029262541334754312029191267523170635448638610800026526229388429981624146589281314083627441260047607852422515396845681295843522773587872960151872741373191571672018079191809567140449643578404515430063598273912652092518198297769367272979579650657760441044817718418380426499603857402345590410054976211833813019489887115230116020643915288482526642733152336528695280952814719042956870472575926195749234507564348567842465612473832803123913297374066912379233826214360834722259196650019727403780971002393675328149816655964149895770937915421465855951832209399403629742370837505849133440369636115203501818726380583639142915115057639680333601471964107861491213713017584370958749988527696603215556385981663625712095156336332274319883484030789000918294659631300553296511704083213745253218993727363655362324376152129982242364433855134780304939011986364527833299446353705025830087614535236199426694525352409006977231487330623350318673860955618025491731662237505750167735450228910049896002937228395219005404845615147977348747535837777841622555622603291720831946806196377437079891892847795627869031707583038184307433921101634255267968086175281334629991747364886218057317000368643764263114026799429950265424503640131905689358123360618477449351959446274976349266510702915033693396756966374647696403213434965679179208036420339395947543844425269208520251823611794527634537216822119347189792709312173602974043946291498078349341957938977656770744480870416601269224811471007021948931266211458553460261004723399417071010274001414476082344129567039894940816696614477711732941175629788921969060555932185050405619278765663191697316297508743529604618237138721560390944892523825764663983258267054705729858779620711643686405744444753021491371016851040300195886307800702809556593312064914319010194750650591273851105015536054041255420993744515327103918538653047447916486022332837564857020684815684324454002764909656423385231022078350696513468632420646241859926139215840417353739559861867882375794795837437975968660229277501168466482278471294328166385536123943963905610786691434102947324505574865481248493247347165339787676899345994457739043591954878332305080297770010270226982895906229316659468431346696108557200620214614320194030407332271501208702339977087049959767879501035351280555738797024133362639473935422068998038005016207120760625116817083475050159248600265204752482269035656652578481004320479547247763221983290384115446022275048025845899012407565937270091478976305709643238164649131988388557023849654449516316342106949572658034674259463263958930305178603279700797358806598264949279544958350565288256622614012730405359464686319837457944142995095241331976421481450168417047064872093845347997629835915691355283998648488756269914896980467929871282599383299326530204387685515843464452028298111261586839951952756489333990499135270977433662872008741460260437635551857909855465292995403431679598604600176400298057942935641279834475487128814344359435814879304783649053108712030041872058450981039385051270726280698103259653264483190070948389167659917194454625459199170414139729429431328427803662265633034210806805290395041283571152248662374035924395450106749110048607365040632113408450249891711139823398030989803746447228952955705748428272359447775238181456168373716471543835485491934810049434550508433219058184742799727064497075974686734486769349115869547473097084893347903640867250315689560831805240965137771824891452128128421812045709788803503264654107682842653808219229825768934755220678601389902547125437231918653321998815974364031456280853872517107018314329939253517757618826529713898692135330469782117934607377632288193433663214079839876825432118990562695468032166320442457569802900281829769851728084940713502367032955789610677719746188132527172433591732797446643791294814869077897591863798496571424377583193286945298054062149993245295979076653607800990933791772558971895510305965909848575747581521427737778336747860248919399535721647166310162524854276060678610972492527360403694843199161853472607150964672536463278537479906621383382785698469624165895005452096500945831711845631134411369457425293733360500238918680650183677130361919980515085769555807094792614425694197142082294808946128227609680076520338579780629446881680386640164280764868046315757034604883845597692848222684589753420162961555150122179638856441561489319150017630521530192080103190847498282959064363927347501654480966698939094317109646742082071573632146699151687547626943106117120000842851880076040920775332225531141908465398961429483988320100536088253764321265960015221191686498170749662034720936607171064416606815434359564045049039530892231713411910494791702239343393240512920246351075030753975750555160921959164204383838509917878136758182617829854338974702969489162319378808518428325972804717299946416258391409788992464333479865520790928595079108452050519283336485072560476347552430960494566521083365654031013673834980194386881586108516594494297318926574964523358333962793162415559738180135172401875298600732558245015946701479922669186073637209841417597830754882079489129409856860848869929507454858477996680673444713291873053656301131303371203561554915830027912353181664533825769503552862962156143535971551553048654235513868941229581157003303696674952866212171899861994068971061856790918413391311664214063610587578119384176958303518910696586585008706862756224761731615111289939895130373341631018767120699062634619708921855654924108214054070870327102727274229549215832071149553168777101971751200021792754784723734898768855144691337066422816284709517177402622452213090907419351990478295594626570070296713795376966473044830427191456860804409432526065062803826744996465159930156851444773549491184618952964421180757187305152336192588543083173816725883286772489951885676846692063521478758600313911878151806745498782400810938762760778776305064673813206531418184465568684408485975493478959254091286629862888349193618674109262554595014810015946225190235106915765936599681708296493234083606001064278205631388828111584163726895984462873416687811543406061910721619447764654053787434991024652039250791425406821143491273664935815764526963174903349780653753191771147858013731119032239390394092473215023384946158305116260901108870971805314220820677725675161713128006340304100810276478482885825961986693211799295832446193016284659370011574933300566113345772795808614468292436332947638942844335475601702545343287712068365878693533822686365836847867199137267917522078230629561672759178220611975782678615654273250808626883976870159649288064904979206378607820285400179005853167612752794430982297945858587014437113694505317444865853429893481826073085467778220863085821817547882112593720410441118989141701228846978333304610282242808786079369491760423536169088509449608352391310810105794215489509293542963258197933066960159426894301349260996120731970254838232894899525843564730339204367922082149915799073597892635340647121260908419392242538522165169964664790944070043987291373260455519068369747175440577839942512029403597027100246751757636080464490633797806793439207345714557197030123272412036909550509814816318539281920838262481893551861512968481233471579025409922458993967394253346307213945358095204978708889337796058558231297641755415982715550934155501776449216994776527165321327113899508161412886796905605487315893599727953036044301587124525615327256062917888413836831806431304385130946481440605290948048255234641067978506490882528556979202097126046824055584860727374180913256782729440349383842653128067944236321061841008943796858209880727293986417123518611138814751740245443521132411536970253308620971615148225563949924333325947964048345268237948412581535309917596803260681229181217046934495296577076720767519817843551512671199967221126991102912337576713790355216989819385847493970591702761336202681110482824506127272495370442930902479401423212739023859267909457165403082136811015257665852999029779289826876620834510844833037203072817159928902412380913933616456948733743102128447124557327126107998334167799625552414818689748028995216876442280743178051624814267656410870086499543843364531457427437528227408602640881490636715929560283922301661187342599809807212565334134344783858131477169570038235140008269078608903703326971233791309736431217681316628463145371951214807287425502756402630129786931799830199399197642777102980789160068143121876830509694220224008235207789364244473226540613856404759109117666343161264456313190897352464126756412384710195346043148233428337754491453545707884789279242965538868492870077975253560345785417150667112512931441650431775921220350102308930705075069332450741909135500601586067251204837385659726980326188481101335653812794844324963891499851885925606605769104078019692201574376722967591850794461367586205571408512940251281157741228251990747693358589537246728701948381849235479943690774918783737987306920780527273468409542356471103500761811586974776363108785037261832998406731463563977421332542869535682294800948208048816350382819278820268585161136137122624158054214248510866049946625597898112592906293123836600886353391943518207035047419689475136783745150386114810380089357830006602222897954393198272660193948421256424976541126488241990246895782367098423725284300507229412113153273926613758602419815986545187159887716510643820460677204646977740661866431581901938063240995353903682845992449433336305778007380620659845408805254537163242934424149760351251331210161185681779953500737710009335207175555499743593221201227475850732128808618890101902070583454937629391686488838344940520461231052544728909865926519053670620826305294179308581758157080477789281101965577651488956004789675484884416655309204310907168687862550850090410235032930752560715740395432862134727043342479943922065186532564904022789684431046970456124356200101950742712028307078301975556546124382913326399072961040693395182987644226612940050008649765446225557654649930315106984449890118838043020667162595785290208276770646640754724432183402935135604848005717886337148607659122324111119674449148832606079810844874489903881922892308757723592910373388157724157884450974350408331789909641494784905695979070995444924405887878668841785285172630082047022278426480447697930579742193230168914335947029225412816025553732502071869793714583942867517747449246141754488373967025819040265084333419716958331687002466830068701991318082147519209052215630805933799060112735436343669955740839088083831314189575430088583339431552185853877406136219715421952099287455704339409066933593340131050108527575410393806508069724968189302399279432908556060336309194632175756153797833093156253666615220074040535547103256627919338407374479994012885653437335604043841412098516866918999481601160749954024580980406843470875483261043081400926741593984072009597495380471583661227769174766205158433034717814387663386426068131581456136267104275587581759728585412688199637507968925489177090004738375793547094544528299079611819199162535443741359703588133669820224316840211072940810885767477949441162129176294806455074860050927115930144230354176513089324327229108741522682649457232170644668361216567786371354729267557507008969752543998677927699519152018221740316199204412777050187360308041796791283551567999990938895720837835911561698928683811744837511375255449476446901793441042813020997702025105109471670177054547815002166150879713574052007149320780344215049653388562727537491288786490779323707691587968860085215064561220813486922069040997695921395539361323685927572367096914703939804316000609566396747285910847399297669752933006149848754393270044632891112180457294143419851615912897190734749486930101769728256612160016471242010574964170486075531865960426657525570551743134194857328305253279682680142712641239666971631558993608946651850464649008921621109664223446481610920284263275088353616898561311145532830739168875543672183365814440285102968078226845622621793497271610110865478110436392539333401746437751367533970843403016664293106164041185860742328486729728201141427843888873067909588123121200319418912872103838474529090270147069929993859568386204932589124083323362391965524878150019116192574291939716189885553581199374367847917031603523757941671099459865850489947514267749422002357018485761159877878536524898426635947666555487979853283311359953731358186149819316747890260468537304987846970554189088158539018070637369240792573041754302077842059227022280732965135626648157088527616669337890826883788052884196217582128871335464663910696592124833262757750317172189653842559388267635804240927738017974617806490406169147942650696780157859869247868489740836678365530644013899163197845023909475706391739108821830943658956891194253041679595074865956695956373126058736990375844603187495869449419600181886796796168640787976866345993245857574461411830303918817398138302392502955278046655522981443385457925406679604915747868736215653763715503045613424434560348210503939320607506273833099309381579055834053097436623915624758110918971034666121904491998256934769909010091523506060039865317427662052966430827395939393295599393166851519508457301897103336380811472703606289737270172408315516471980882085938339613220145604973637589473772401768696914258481533432791460083287972948168098833968300343779779820661608773024262446186120212159829733304533237161227675651222206752746751460644597211458349788608503292204322035651974632082315579349775143049430084050350721440721619427058274225264749328399542184311820004849629826079462933675234510810505880232059714628967544835779963224001457850289934367114008136411517408418122257189778731098769708532622093256292797326833490702044214550470861430364249203652987021042533466597288369785624107903790847079476407816673918245453571433733219997858744911097520440631595222344222223165318453076086645887117826710487279707260009050105597671534600917138966194408314589617075406065710638801505969004817685642169356785853446493179391865664692687500045758933205774247366564521208721060460260887273123389526300295122329730844050965588428427756936612396220243482828184466268872781929666690679329023976208938138139640895134405362189091832348211141335495996095981847891312375891151746186074048065636651152103409660137669770104145545907328186064250680101896967193868485096917920452488647983518835265316260922308590143876729211392469663278068515432129818828343457797180857402169003197852622868042952311909055791888792193109686400704169077047619573403843792904151105915835416596364956437297302533694602158651468930330708447272893923889518704220479261272568813699782814536834438836933267868399365128651287861320116233771385044775961429491577678817955977841500721158294654112420740938555299891646196225327371114046335829229870873179969217042520122507915163583893562890551139606880921807966167702432231503665550373712213203004470368037715916471489867281480697473478745532321522850096946045196082715551257624738536867208773701671516502182704678934924505251827123473203472675271766932211695474679999172097253457496309276644825601420299206462062719688212396117622289025916765437110768758500426527599911392423805758042002529448880147115090064919520528172408803525772632638715727592823706964316749687029014598241029970380407695974554979443377680764983687216633690282600393794322558563255011671109431490628707938826554235673886910056408946990939592527176548340859554349370171811874625529036518404773518972185909849146176656353613253297237138090408109728873424410391848275205153002387426078703117068346277849771058223540023239578988598607523880642916775928073414337379332469031050802480449499787465095274032619907643645181491819192894011111489136308408675668635528096308142076759458703367382464900290303553835543899008349815511211092897671244662149854562690863006225187489033668637095878452461240368267336361050563315415992386673863246414836481600550527131337998551492227955882104445183188850274066654397366802128477340363413724765761053398759936177857865686652163716070123793157973028640604721693981931191868681268794571298077409177237537913623026503377042720094449180393111156838468153895036875280502047877739125940150859006293650027243028061859045139682124932562986481709524987619534914750050876048190578801512701745869079966061206844768839457523822314560969780304743503851546608671407004979783034153985488134909307578446970917172210870545098952009629623072413012946668506392379113506305771387711975389976032456006248300270616864711529453216302440644567042095055315427798014018957447731454348521215695404905725114299328857318286290204541636177593288309980818363236984474326984516024671310313260341067391773826560384772945661407945583044956028654548773709145786836350878205466790863695026679856493060717113035437761618042999745355825934632831585932999343475045655539431986499462382476443934950197151842983670561444429113492319000874298661512050437278725082349124344630049526709138920267866101395991549598219635621007971193211064662154276815225438236925863457226107735507163062584449353896370792050230582999942931380411057027538098609341568450613404202333318832483610093516796490108158865000334465169254522303442272325709121623332431496993163602238944798602115250307543340233340061130901596876262772210379631641042954551722869575142389846154638996954224240323714813768467824709590710134692151160949180106840330535140754409435951016640000157816132019163724127955810242532858941737899773403365563996943509931619796031791174064233872490826690499057501063569013702962538043429335814531193217635509416677161448105726423289728107094348228406672360031962163163422294547092618827864396064326651192853496456011027673399502824679476262414886157285765024683968413812636738794440935792841395424067941505326077062789896991441930033282941494146132227775401319539748569014839968219712739899631425837756666209910378484016910279581544271621941505420520732669509816817659778236767361840045526803441637830235689923388440408201801089342235273878406615704481904067369634464436587509605605133962617371990929938972607307285483519737623244679584933073680050614877473871030493211493907335110412052592191421620742546794727709768591962541069954375905591162113431915950009660405746827423584691027658772504904490231076508752596731505616452426411272697789641343721101684470702452922904581852430495730639252547701698258540571763983323350082142981166147521137330868119725008923083446629496939212101677764774171303987528854027586529601897686223104956907202057189784072327413997713920238620339710765203843211118153847777556220936645743748545087077957708846893102100783903863480839237442157206861583365434018116630503243691241679687448180269020343206168127675825453264310213842889712357847854070959211063730072252455147979193093548359041665469495099095488697920897373098913819709033376551435671335212179406745299775982094704274600504415376900258251734674078000711188119538708896621504133609590266355621356736348572528740280884070801836922896013096879412305802727163171636839908897577677782239526743033556433084512825427194690513823129215358373317450661526956837235091497559703904732514705598372902448742846159474258101485955926978958901197713780464376605379579274142474090040779448684185377702988941479664518499985755291287709329781418059649872397633580722330429502001377256309380984332465469001855253212140213083198609770964059952893143282204125549415859374279588375463029001582002259687878088674397637179008911316977974146569953843928277157364762280778227177893052343898113291943534093491233554974816173457901822501097719391774962382064668109199090967181624903073648492373267587394202990275440721173778400613517364275527410239256290338325685391140891620881226946595116694631064434597650848532454391073628792996245891705048855960635909863514567014707997702189957143804470532690538246698355244118159993798815302899973491655857575035114853220530795945173221225701211769534098556551418284658975816120359835099120214864352024470495930628613555779397533622853543800383329730586948366150495541153584430321863587324078906797460878371899042126236277729362845686926983886543940610721982785335942837022990980299716998523454184893425874197614952670497979065468860565515641337324293164656724397353268821617747974193903235353318674386283920645331826824632004231611436153608536353537709881620654564016186116499535738663590956931485084226457254339860432243508070103140709339468682459194910870870593692435506501199758809185810939323737435736872507507967147751019719785000391296576025545732825216071368191614130251482126195637139393587352038141503525112247210051481518352608377198746181057586987413975139611202934635169951998652501196198556619410952253027307728626737406751667998018714700099564598028278807329195100493048464687799340116597002105670324319492674810783035549365338026019305950007940216670629928361822019227940780548881430136164105179899580841419507769849199704335203695270213785330731372054881762921107185665324419121654345507326938225324315587660680585261473725131385526799683053610354081794606747759391470560661764507288325984015632835300394784790963766196446101802326620016200347608968446542655231904884717860061911046201884196704047166623241026168602897299964098464015652204906226131604069987532489781366926778786319710670171212899617594116298259838031664710518798335082525882588462532963115222036507294922968921608892729154492416849681966988148667423234050072768664839797260357732259227869850878317206633656708971085635566544262454712644926469418514260364446138305363712492549752146017145984095315913400048933977335231286849857387315229325135538183615618092551217513776032840252759778373956342594963927743182453774808883858415275760628409304724173467397798515475831777042231810827865367754745059162189848519512007560390147442028609959560099737344365336913460118017571162605970899130901275899015975232568643600311809253265447574163514053635383073979116742006577748672655040202458686685521348507722551505114124504489314657470225316351017566312604347236599685083416049227996326302263530786245448483398706528316626455345948629907366688053148962071381942042858948710922812935628236352730847867004654777857600506824713426990713245948039421671580702056174100595195878449358588985953558250838004218308358132159465614818633281840687455973348593289337984899600576109689298751113342619354815351695387859217254316620575293145379800404402456598505348933654528300547314298100653589736564093443986798163000400436277266606285144858209968405464336201599319870319356298029658212428222426564982634816312093241268994787507448829198617070276254204419253097637828999226904011987322716057914518916507639028291440789848961533133313619252664077139455082406978102061950568366089318925187884283920848759923443828530296159296866474327070707272402021171965932630824329596017022705387298736987663682875951415354826830678572308295745871289536395819431376730678375507196483953425056957566639704293013419989225371449267338836340151134206734445919256955765220332445091396538911468654042461006019764781903665718009024615757596113084389766391781059509086216925442624176561644686754716948395420929117401416298333790124533043463096460468349679274988046930001567731168747874004312975269070814196355498171255490972524354356724128328588378794960305593919436938725194103094693178770769889113191711526069962505885213627033433718460062411775058918320523238873035747462389042766293668730380211868359971896702902377688247923542839554795221741276413685542694743631167796030728926228937499698720770957505488266379124965783172761388503176749481651565714020896262249745605887575331811980188480014119713611553314403737775522612293265568151468207070652483277838080613043303041318803819329079216110003819754089645553936665135692868176754478680693778799322318513158387012016406905448898469103617833848950454881016248952608061082311483938953100332482359063542794301738230258872132949469742940462604277859723422236391056367452026343863416096491489220637952237000866610993987566406409385959854907015168469346639666014573721827398656331839010719845874162497780115865794215231757163742470548191517442073483267028701608004393868657769509107534272461348086587242994987799405222370093350877264918507701766504021300811015372207253019953804461173795904416254386797722391932048779216744948995269577593880548938804901574953492086963875833947093201297871747031105788728010240704154734716750694540012553214528020940215254403811661393808415878526072593361271771605629380984030352837017830557691476693175235845266919666953481956102410508316634215334722723304460270950028495597395611342023822455476234761048804055720385359627291058324006129305735991780172094059180883488083442927696889483646145214787007208705148327394620652243678112786587941885509552574965893257423974719205270960500985818530742321365278372307749308142950875466087156549505341257232379007870586375315833239044170274455269747153657855428137040609747942545168118414381928074570381875841221598319446919348453243675898721736711688484948662784386548387237722064233310425581362859313578443091120401520330840435942023753452213767355362291868804971352226382826815753901894078296094761148128480734113078886098725686473155692172476585120798587613460180908814278501705031174442040273009063366083378437378371436066211376882189870480341637049364187598129994981351312881131272386875722870343819829949297012209126361976383607439787601150667552704676693572239570166766690814312018040901172823023958036440450018720324327415738834068741524023203530293559615284419947487118983842417476366152817945047667030401388480822749927942900761945329706995717384388295995642458889601757731760201024783044152544892355499381697547860776725508378750292291364443259339772201489269196137414180899329041707630006429504722575987041440508025687767030342349378312830159476699321287037785471118631105231761970027398292228297406983898121083111262926739188856535605835694092068396600714282458700780229080499124059959771015334292296756347746645406943965819845292600786669917931048955216067965804600301557044902862330282732379791792754687784795456992443835980518762093617641953557088433076268735726914373852885111889142414554888322434067646764282607090532203880186534172743106509153809748035512346504923013905098659326130532976873274463802423134228117944192963272469976506388552637941050765781438609234853301723815541455005760378503127854674064573929060190376795338784777438549961497118971851125671486466649583531912419086023583387455289879726364689802782228418560895771276009823857555728781763834259249364319544215247438813935422614807052759588953287396766588810010386614932853555625498965784609542311198314765640833979857136834298048232396974769299507339315127267394775672603947151223240993310844946078913667724081223838792237040859583153294363595373988466203007945441031063434763334668707682801266256974377793940058646632095262658277138280650763984585847347323318466163999945168514287597624336377834333868391282923203904844031997642647208136352351999197346417430147947050038600682373029715278894234035396026636953046017904840711924515579898075700420240893283999818653236012523021915373672960923755989999143759168737538854747833061541847864689336988506337299310207526569303651951854236502836683766646747193844650861527528699300483255865349049721017061553956711369074728379837188087380560153763618546535963985890221694551542600472189831416280602177470493988714207903377143253447034988042639891628070043218383024504082390895859027451926395583040634411793600866540149677944935339045042467313239513470403026660258230104390461497006557564473441699241203018785183216037735523350768593343727574960017634437044937543642045680628482064576957076231066036970065294002504061128553614443599854017676602996210447805240824434087651908464999261671223419791239937100210624781839451523617980828569417265383513027270179598024306610275886507820420146727642573867945191837394022110609970949198217115228976120902567080423941659211575803177188018299826180622465400212108739550577888686277183822951016814139332199122164421918517989780781705712900262605764619476675286934068883701084377622683892094681402067113434660029512841587011254026613003678529440505517073254694990909250173809876664096309634314625665153827568130089170124093456052305017668446812467973224663330091373499092408245973666156825735756370701701689658217902980040640863757114388958412410091131516215946249278977761191717519178313118211352507759424114024209817429081947155003427961884014640638621632034349481069995593771487186269278839377288555183079473520491255161783825292171105146530654498065411606823834574068849634453024454689317931404866348629522910730823732585672303125693985425428039350787201207679832680392082876201579436305351677629885546949093614767577140274963485267871324715158429544811122059296212972659184326540037990571546366891456253740342776447944101316147567876019736682881907082615987636153894292935679118275720101108094355842136700679233791065080589842959410622544888575137129195487210555938903891116313695366587282749067409255469803602340738918997120167037515461776625126172322926405459493477567956378793691715644206472096388862955183494964251674408437685439642821723032528065838138440202912605678659527015225176966400061871079319137306977142978464300619487515057858517166320844093952439194853555381850936461591209831296546026590123578781999060853238241011166336530356152374779973231391102126345444131184260200092916476880554610095690959467944631010774958860314712800893843896004450290854724478329141070410370519147757547704240473763271116562360342016797235826700992559465002947169981149902133016909138059417508975195419563782539875457260163477248081120227148053704128325958593334626032154634894680519221796830303982766095780033415053003307212834064516900707836296930321495657921524903408400235546147181863341311160302397000769355846339451050121608220052214349696212898809069135703114767365655991928143940518138429349247690811565213153272259452159705512641451990364577211906700614370891363678014239275182056419472122175511424513656061399452611971285270629005676041156468789468032340213641514382901591164200956090929158211014027058233121485483624353058103564695710628579280405802228491000885924872953924773365032078231519376888404622829524957846022276934096270008940896696588803717375805855150210084910694378592263897573014196784938530803083913458676169511479214201152176673872858074540525243930982498945878830204635114656879096238453543819443956964330978643898533920256356696421499098065632777928241051619431374389427666395993752185920444463663046932381658191478057826620665467679681192197536023313471435629661998709651269368949149779064850822027587059366991591543007724799243302287657438279079555312330363174503137173669257594036453447304139134720084619241480878647179494791525788353145348552412938763910629846959360474108516928306279971255019221975410038395564535984891311560118658803487750520996146341246681500222757940627513133457205014127402417834608603653348528158405330682110937587135999760213239048368928631231322152825389334430753682977882821559006368328005795618423641566618987793030069619739735943464068718797415617593541743448210530484085393779920877858802465648850335888153242536866718907316943324164191392298291277886183069051834701524247392933427538161053827113732985296190512503923012834343408900919842654107577546549383726356293713056882301270943157132328948148176129244415408500561383367310758366792580407927515367948519273200968460035839236165204137422438280298504348305397404325366905390197601011865033674448475739446136841521764544684073606590937357811051734582911996948909644694691813043689787988787317572527951217355946738598794332891110068906628201002913555400551456967880707879412335739780994853652746928217461201043848465006175805094498711585262543228222747597086396475749923225980168299533564189836339084634463951781239987499356615903094080221221827796216786560586924217671044526504381007678441790839149005729501904618551231711372354687300182601564076875702548446018925167330608387630041087365389245848729010727849498069909497720767630905504429569558849361802749676734902205867751459226169999321276752314476128728584521186886730440025967686067845248574592878816856614963404669732461352654073821334198544470890464648233883874594504979430256110960961596078896576101733077500524621229131455215215663033620355312591638102470106608970112574471176349256832201733828868603171265297432997604628466249466455232879273993164225805344699917312696527748147746888117581090570155216282761613657620457562052953422394724161686066530779385359754798357684819516090484124047148638011366345828923767116495692366480184399291627734324520585076535747006269692316854975214705373247012517693085751683909693916841888379938661061865484710312478739375449151331355582330965318207820800547145627454626703835450264594294095717683129468766659470166734211888538739096242222045084870241408926579816370348075980984483129290499995461653063696878481539595425268338923646424720204249418914113780315639248220556897597397062138850618619688243171317288879051135471935964215669116498483045348865342399984289738911103575971577566384777694592103620489204751665679363930812397033701339288992483536344704307859931622752209571872234915450685809805617719267338578413841344036740224340353165088752749255131011959872804329307257196796180207117201524382746763178559880705064239769740253149071427721768415001339935408977126228763364478797531461447301155753801435371271501809491488578053609542990906713840238851372791187750040839564375622768763414774435165152925047152355706153892449442806913760527135464063565068321812835690154267191460170781884333422010187114260475416879683764744985796036444229292511690228312794169055942025898493195248557861303566937567339278695764137769430393184794358679590371721285267787857067310018401530235450647925620464187504263009610990158986511094386806865801789790293426384245394203306208416529239359214884372136329929020808577565799009515657208691694041949357287115383380785055386413742803785449361033226168283096342912969460379269023207053891226387628266403633322735437817839502570187778674088270003283841527333596720443261675616263496245066509417276703502927425532077618193452955810729147532722035017415730072054466000254049789281158626903845511140345908309472869374790209520197513139411911308182458741113117297641545398693089147489795399586663243387548828845515826361189164704566830680563501784809499044558146403082315017417294680693226848348488802464613979393181680089280685522829164784506531645589080904796333888561027905692654281865490643964985148823799497950300756399711124363373311715927549369541210726492330741844153440921844274093658294349470866128884299613023062111735620455787303948109388351094553081539184660645322916963418151835103348914783750454306753217364813076165991040169201335092866835050575248273884797367682201517877365788425422549806136165291681507590421212197529524440683033443680769419929955560195286514116857354096794221982172583487862427724832383752014693274641331412040163722701137300600611941465293654513073539864405704630848968058372451699644331642092815110556187810143515172184695047316744269607716117547608505919341948658081080298278254112243355942257147242000505160401499537174434983230752879963592732323354201544688721136644322351952508598744326870979899528106611726648003750927346806419346970290667983184493022015351834782238737400042187083745139733800418668406999786161263522990998249851063455764907469192510894573864097630789544939273753615561499859332226179356028174950655553834963023831954979224730398059492035685944235240743719257156788100051618741986433257892803638883015524269707265475416987924018388851220687738295338219661955948402042087541802755468279081747037242599107352641870919359475877614619347271608131033134256502440684443486922957092406528986530804053098610376700579825243130084486240835079283972289631511381643634058727870705630700357975656284048854122265116797486554283606857825281565415379391499957342565661727265080948700617954365221101294817207453371866898482587955900568351584643604980344656030952381576858540638756810467765234071894684008517899481326394887229481367294314891915051352413590543444309504002269030325123813466560485303900162017914733588686084207594960937214357896667518471277866943111054303634680133618136331354159792085744234484916867492071326784350930025087337569687333400457609729561990784637554549035859068369027954854627075836102638812786466673798264836598589161968405555883257118913305457005439997443802870646113092393339063752916009573109720434098972579602424873202796091501135450917182873848760346469945029017389484642949421466155672522056953878046791261803494649391817878306864300255342333150733326657227206801080449489735778266441640656072951899270484308222955291746984106344428148632152887664791832270133771777332667028698602001232513934993707376089166289995310268502613905760532654092912959436313178571558776828337015705782602790212375051920286846571498135240720988435564710542394230649068181190294126580445694411157979525065878109799932388457233293632598363080670527126651701122054039154531267717281139466686569664083605961356684810652225927223687207512290422733533766291373159582020128635184481480403961855871033783871135191660553100454181271303208294729663951329643102383080419104484282685172273170292614648789176880862554029402584533818636248752842666371924496833478154861639106881078932413672349846752734047773192241314949225250423675162636499257975052213759639360228941610614032703682386616372123227320762401069897451329465290286556369913510740845594004621990563483435680102584295538294674251816022776877234104322242864639712485903852186852582693861566880712205289220865418929026153357978061534767190763838645569490588344136621909043410954997977006664238346545302295058607232496502238692197886459436106039574961790742200214788677801997838737351553563517513749235550779330460716076857268407306911057031266800151088104713035591295164306474698615494636555802836283597907318150744137785847652674546570511969083572028485400702519615659343491306963654980679682389029272293896666009109917458557041891989300558056189309430641107260354259366724254210961302710045899237221383654577477348954426801576239086867518981017632441294270214576004957328058694128281198144230817964654926785059068424053188076572414579527229792355028596082335537344101915997317143193136703661467575649291660207142502907227618773518251234245718932250006378579264662265590414833486050680958675756744364936026595055533335586095082507356542953129626187257401538117401752858407281444026952468385089596647766662165068536418060305449129704615940152415034047333651023222934663910685274278371256218818905722221448329664802132377041186228996497960159842911741526410733046457904961346562174664124602483139572306381985703452514768529689302443932214071227895495078001218257946611477594236174296957909342905272601585564600509859730303041059981556971907707961799053366143912446472815996691138235340803326757465754224111557222878140638294464672153016299897095466443442592979308093624960659848163095207961470241119174226154571955583703489141891348665155996143764350298735254968146571278190933190093911558602108343050444449500821496363717120245861566917069821936531972003146413618240347137741581832635218621198723552858703984413351339147543161770802288255302348221766756244391028961914799793703868416678728285396558190870922460260555378391891482073265067035617173307578107266449268938476242493471960050099245755190736496917719301765027659940569114087187196583177677899656578880514837710664760788017432831273090702143664834160498455239299297847060114836618000737026083305853866115986230546768357020648552880629417013314335882107223979247965900260945294637793619658574889798188004664071409098085564900792856219337267897023827133748225197714281859595462043836915248071286340756756576751700050420151620965461714093238305784423529554111273781007872242124636537189532475174372068314007691344949459630012353823025529254238320631542173624809293073113138384895020998662035503637668240713347464587460068001136441493738253345911951728902368084171247096814866100991081870661798124915404854843625157809513898131708785553076270878824218248840643765627863376630573622642966713457109864648501932524090161308114762569948146154110122526723157065842430159297913339841017239660754383409667372857117160059481681933867484794706909065592273812098911236268387938880626399089845528639738965169411475120251091795189207048800405382399611484591315067701616514461329440704627394433154417756247244703838135661481502434524174830725139972850564649880517146570177513989030582455658590247516991786878405745202703393482473127400551350637232370194859789220634434373756907929063757742969789372514233286008118192492012877473987475173125218688184465591136279990175174057320257219184906300907130605011928396650216493646212863136879323186376085691817760577455076202787529199767939260868629778751075833613058480326253146457015887366131763999839024190823581631637425451830048642031958089467723132447482471731374866702737362707976822449168479910278165929426787545154822038683899249335231663749938025912662800859198489983990541847089978311743802006869090141450030929515194606052551105052725593784801637113345531616143528504411835640172224726230182825785087233005727154553397147338222712794182003956295625353524473959632122294247974712805467200993107235926587126482667364713574314951666145989322310416079295642551752431396575197251319285869327967503507297333410463717188950969179137687085339771702832366007575474090380946532438333916169368902277059261839954063441063991367812657952012720508378739728284133647141708761192332963562986671629436672601885728923836029143403397285475341650834695327365371563134303727969843886226229411042301166892651737738948808824897060140116104750474299824750799757316519207025399980365890781446205778300809416866635937875220366246896425848405066392420810192464283111365788395550764618739726267837967703563189225106414353138096159856806858155959662167193477668271398597192427781447157115657280923982879102848507702075396046085019320091796178860573560829633698504706056806069074596454921079943600565806723141361849523016641010451867805478572262888986872998780334390188935104852974733926497828835302725313113547269958409318775926066560853915387252481171199984915019383172238590055038231254119503667932374819970617740487217458086108567489211221084027668433142577494726764318534299965256680531376473533090482210158235049564451347097546731922959632986595286320850444794087515225213753738056113796737033152322200418261130004341966244805481201501986456898363334443507561413021012704534214840629059968627307717422416609562149311571478861477214079219861580665884309113814666727289882338161772895632659617649349657478982006524238015583142080362901248876214509811243972557351258172150399454859997734610081482580541640075666243150461480672809794226937499554658071150784281882454699829983589581255227079151239056089009589704518576082233580765974750950642062333497689207500578728765669541432735624677726498359925440995331323915778902674884274052321926124873615041783844135962116970633177489986540704876668342557795797449757243176699912051672965563215650757299348063237423089671755473622177677248587723887514881682126670547217576788367233092604692343110141950317153091137665386219772300367903106679611438267763255977808939436906046871812006879261909745900266038205902169377763501584900169069620533215265663813467187652793710340702229698719569384676030325831335164888165883781344557413283159079577754020987279912369204048636839947965434561352515291236218407796675041232496401564814564255608103040127647228552232132444935514616750935985577770734601073390365956534492646827807597324305211079664933835603140967470417909980023151585957505915825819194319285177637609631416064760933482150715356943760588498998277078377966362015912915926529688219578728949327323772685824201964028287752463592988047037935674149805750938773794735848120379289914907825424018654664912813431549237025762749474335996359500831086068858790693398475520439702601596406289451718762130085401744577778902737463061795273764717596554712948679498028292982426310737448913025522334197778322155402769019698693634651949599477827798583491101598664873837547705967544338873750456988110651455422004241705533926367709093428423425543667733118179165143504479629039459343950704692359947260666544200998687935131013416063140776325281577127100814427200897088527178013108160448954530985451722031350725525098585446409050446254972869126994803879586234508341935334580035354780498950271373745867498112812697841662428700301515079859202286907767321778923920435616137260447458080566191844580388372756807041076470938151268017328753811651984336919500142446077780801684879364748308479731423450271715514745884381019046152102269903468397061633055570945179929100328552889491784391902372032768315175291738078365056534591071095829519244392354642995657229368580206881007869207811327331829313914371099218474064661378272424423043119224182127666244450512954356233945683716982534659386371912048876499900282526950443660991956691600289273284561377266036426476959347315639442186961208047961303206730946100666296848321727982205750755544119841186042650613649995196674888592896780472273223240508652928554261485745465176024718132470190866969491409311949708565969532710009531937370574869098367571539464737529915575133822528888275000215824585984013058352983985467882524005525965728184362081636156929718111302130829155863932359944120123044574311240673329575914431228071578905150671288340885581904219187156559991422756514930042724380135181057436737750535122528387181359051405451722996951912553248674424347118576537103954026606744052928976033066034193145117418694179416024524692840501061757744931803959221853145456643755455063978359891951459734226517548589837028006925322381521756295230062016984138609331196016563722010961069602582716526167042842390874784630410544305526174314053757580713752211303100710754934589633824468790223291857268034424785383136294131654912731530476664660633828751064054549717069000702160282902666656068612195407623381904684792611085835752293314894987391270146046975736681971387803271278169519365758918886000228479610106960067772278072692960081496952493207174723221287660806347815032901602428778288845820081235574506300364395773521922983405130165012841613645852167303838818299978963406806487379237079104513962272461322571693864298749600737330006081142196540097646722776407495324914011314252532580093255642261456198326622038723707905816773594900535725122835258634079935328650968992748592789990890309763946449213780589558545804750892592234167980975645698130322335612941382867422101820914457605304358120611992394786950341132624789244449982864943219990273672554007452864317648688489430110164087900543630618644075199295336534742556373509647844140497623704304464623769748392691810443453091135095982693497376545847227398181678515784322347091147792555373649815146289989959076546192173971575990046264157621513218920803740998045084132611977500236206956850302829022705865802687758881000151522304434122186213969346881655447708455170888567271241032585882616844136628956094164442402358798988967455840338583847474870879147706687259302372330969261125399598108908987006968627186652757594501515188475556537265285545507146521551352443692497335844862356312198235803543974743627868908967478276459234529617966135347973381451423374417871980028932629126054554325778323044259819344003116407485778127579982001007841621154421008425809975251952336000607244642905673903447517339945910164470473486029251864205395519112928127425560052500379815352889902319288465246374603044233389593568058436901979721000202842572369393646606107108434694512203301287754792968118707598169575162886646070776768009584617534352509817911650990839889485294869782063049178426227445365313320421773639061565303146806396428259661549576620505372867171535525559147418503255958037784577599383575658154531072059679587110322494652968024740433321934966488855430368974468862786184256191695363610685549603429298945941939337171702139653948530163302283870357057494352592888589998398697879960082589308160984313072356902555053456336239612400187666423919975317948154685459205445159244016370412116739216387260965877888552674491906172815119698570360561067953376837767098816070810616632914015689877061896130957832343738318659784653357834731537131952416867164194441378855674529034821851180826947118859518222065118312853660138228414916954090450617525923917960205209602490167339170344876682169765512542929362637206378979835270093768654883445144277908795120308328993318342031666585404729573216620929710278943864713121108581020740216547315492688005941696648793491798805733695336114681667423685646906305337969289062899059801490882818399871570695277347958421063446417986146179832803173319597658614354406326042099901688216165465016010224708748375595730443469450296636592238457214034216418721548602551199800963334351654409633664439180521764776887308550851594489721571904503201968396900640644690433123137422889626528994656045826028882473787020148521461409977900520712182194078617516462264300347314157371511967559619688038085834317768796124098300783628695318869599376826491483479791708269019378889786726123409553447816023011677018625609702729322941249636522635253620995163096998790311774511715145952997903038062559126840530337605367266553446948372187511014647997032701882114251839054185008603015394672546340990641908144345192072605943349160420179329809211397743505357391190680772429039486204649970871093318869782865270019126576162720600461769897721354176078780774938949479724038662368834403320845824988087507172025822080345640147655137945962783898597784491099431292796367409684456130631444681899129332292174775428705509160922271849053252390825098794720331550688065235668592610473832195861127534817012124592822655258355720812819920034047660291700161901676566705798995407051090922637177596853801236882769952481644510272375561133290659309187256234439782114886943402609004308309326935293776948905574234323823010541642012481539812977026025665263578459052606072954109430670198778999099715265296228367985235340597508606417447556090081195457587163858508426887033079965849467863051825244694706667030858635827445108007225718317651991716030008590669240551966700793013763335243242762754303239129919175679021938171924219607169436604650743770820186040680519780076714158262360768376630800040357526517236923177132292572095295187742780956173540723994467135197522929781624143926186045888126091313474383130824251089029018670642401086031941682576157679347991453563028883471683868742001564327869809342240016508591351616122833880107719440807035727479395864156715616516066724262880437993391999741786011535245807835006071928724902722558264473520443530014282974703917444077719682594180343389408774609266383770398346581095962051799597048232217621782640759661019208790475460708204582319701932136323111815000962850639070302341498441661492408994763823260804870634520561994466992244797230085072384162993979839343875559999082643586431755788456527783466779431993933052151655285053120907470634546002890628391289712004242039601193747710671639820439465954652216821477368864949176199280416909357541889459623179900062595638934253266362648419240994917151097609909970129756588551256925241273925252900094096708548734083211884141503479747643948216269296020692499991217573514120360169187174518272087224730808695305712968854079419900832592864747872266611233259002018045920601485445777556897905553972634737214727987266208980593869272582420406536962476245231523536345510722436721779806259581237554455546540392828887656947881896182100113996784383194544313120247817328004882628837609553081341216606683088648318723066623334283405288541936419577119785363326506716867647471478268494644677092955960408289460078199618543581106294711412703300082730497673371628595645273492302111113699403047738354466824257187938947155355188044959010384414893960902743531847261810703282679530316360392128560285250304005258224895318207901702119567856312938106353335804142679569930054225162008157412958374278751938898651774526041974977737185532813458938525016861382955022298338221200451272197874453665329718886549969958961766569622020598696916147625705064805910335140280781737271442732857519268773058452830952411080058060789565101384821626303878206858306835005925349382032284793026933952829293847539728768993970713125271923849940827922889703895109191298609383131059522731422952848735043103185679769662520290878209069490650372424140593496996825482982638528980685591792053196261745014318357683644185789151318566338129636979217991806071567850249659303529271589372732765700218178368379346351602735966083279188086880034647850474497837913915846846817521507125884468026766179695184548797160401329023462650237386108918882612211132365728191317403365448652243636542653927245152622832371561740956463265502467164324019533132512461468472614776077754152136343882548474006067973941372774758244700052074903231808572759110116749750112956107060821160761369382821107293621530933490067027747837393031423961837315297954494916793034552718774160521248699380008745385483791505598842660244999377130486515780922888178575944731260063843101825872025724506949950632626241607669378681359559183272785567722087830227771352147753324845068579002532534929246111766414315620649784955240731963708033456335317682918644713946607874239202765897497024778987958903477220823857982414834900918474373728990491602967076089953182088113257337609377730035520360613316038806466175616521162800957487947519125821772602304930239913671894947793165962527887967315265279612415401267080835783450879798125158587249752473457508071427428481500434033056091013655003888367597603260585261179424380085702931756448780436138436719934991578393099786508480722478764491938874299494883534571190049771572313862923453761173084612230125468571342873823377959292615723921880825697330165399930902564112427250777993799750558105019594774563520372603465772698012351575152189762369114955933775677928285920911055246859159491893804660555107803288161530046023482038438046963602654758712403721193410165154855749709775172209113152593960598078151928639390356792154990989309286052989210231175014925278898131365368725286811670072755035713554470154096368763884334928979827009488130422750200494929601245467533868265457866771496703511300447626682095787374290530979790417581014721724660239595365182537650532435443960038297115054854257835236279089431454616805446233588765372887714764784186696528403851596414137637183589282748793372664152029312767337202652938052710867452076636344584004013501811788917145475690653439486544896413608683301845854562530546957503274739133425832113053763847499943778672792609588165973280804138047210086781034562388602061443161617302708360452373859359710031004215190487793503488100368688421379273539387339412224342726461064312285671610269805444428816797598046437094789636266003504865720361371495285736409232071646752681592977018931585644735610244686618531143348807538079536564278561957834618295868068462976861736589068822045545401106788398047247536193497317272415616119228839660310988685989159783937936212448486637924100520270748731158669913354200718878723191973966049759865551234421529807412697695872291509603282994871320580270428100848145137687384542199408498372225526697134539472024617860673692496111772393970260752242005126663629839471368977865978141575375539314002946062777441366460334905597883189842323290775005375608397650142678805914227075064183890648209018152373548189548764206486066510217829901793258945668144328754160884383278134056527672805668592951750055163702726644375415737525990924304190912338422278904471364133741266692054859199165911347360099718937722658180099795521663480521787560101876111789513272406881005430702796335701614912918650067730338473791296920679845669989209913809239796908399391967408292961094447180702576984884691250816649199984403610731958118757873681943215917787521298148049787479035596259369420005904100118189362974762188694860547983106879798118212398235522346478121718215184189990562074631192660569683863471157183663403280065713745687013424677854655199661093458633608545062908225942660038840606811595751411100923268316760059497507234404873452647098060893077064259879059773465694965482150006311303403176188905152227048455114013053159603382389364683858089191107804180680850878975948886262042198010246859659612401938533510137561118319206562889847160007746019774054460823382323107802233783111989645302153857562116202717174812217529636814003842184087879901339904857971452186287903743224576430132305332018756705209740163390704354571164008011696362548276656337973414136430875587339995527389219105516464453591795577154166478244235316944542780575926794106354438924547130911314948569656754275741650083837733596231316882867164856893779409966027584386485572298832344616783869559287962688820050755375719466822761350618792241265214731637187668907880243570578115612699031535979744288389842408812630214611712029217436717183157604336531028290183680335582617661787881618072861432956947703253303312162888464376557472755324235680076442977315820878543703445037924939559415349268130290991019951831390703919789707851529267102174618635238066980950742747227869077411580461120949358757871171214867023507187894496388028683221852485174311675582101581021576449158236346625483398063599652621581831549515960751976738624084598103814180973514567972107226045888083506400938026164147379763052084988648137970646080403914935262624341565876921066160875578942883548626750390002322140824421155932442875265333680704119508948877172730634292740657715735270951705680498311692493705963957274185253388740415248273171378130297712232080221948211547051695147823011595719034114329003481816559046113091323017328925048958221859819868597139533580422002924319073704741499357871522038180238822850218123396207280502049399856547798084181264077497793207990557676921352439818993922995185084492726503858212961716261610750938598215134589509863613553797770209179899153197860863130843358355627391127001417560887744064695179988570647218006090687859849297990565957899602952769637131138767176841393224741959301809924542211994672201417266034906373380859562341051010601634946539814132390296893899318423252621005194137502440389682783676427782323709540183325321057680938420323340154872625165562473720992953956781193522059813098683166882163733952974030976378130746249033904631910290663076308458372321338433963803641337336177793518774336207369272149468803929884992040765357725761975493459725341567860744175326259283183881923850680737087851987241475634252724275999595636904195358146740497736193241541162865490268129772347537731368992962544337080006299467134904542418753008628992060240751823840192669823034228862094382553408118059855994141271584660765152274891464636426697212501115764189595822893120014149847386636685569036325059293689440027588675303095196500457521258684804155396072553355265504798491547985845973385250242107459395671426842316384506991534623653134406702155485887838650465508693778125682938088566682667790267404809417063723065383870845173324974075595392741835040858057307922968774673758697282843405299377220281134055029635564028922971984806067703459930571569445938148595905635638748208781687560044198055516924612381545057887159474643659779327261571828742207047092205187427270254846454054468175120667581308069863865638392947899432121972527992569202735741800829723163633247349929590315497043007120061084289851325455383674771452605163883814146476305236828399087970534820571543705723829968686935284532918262829879731409407687277301980460896584219681732581851649013169537042625454584934131347436154911111770522527150445947710767290313551166628332665966765268068584710745710990775992701814543168335403002862975827950708842950787200240133704864682349610439557896639048777413795673872911395063574545253751790778587892503350234200536448788501573372833792674456624248496146408554542990705043962947624165043024037183578700517888296398575129442729719150577267534766598963061879729337181891347493484827366908258599506720360876371348222434557965859152096777071631845305002074488902762323231043188353673286445687110771220660179331912095950409435103260012177100337119086568852948373249109879416616992180112860846290374556946427355564370186204040464695570851912292652122392954836085930531476307151424617823424312467920847377952229922031242928753314087198856635853470487534784002721189618157472343023470898078104830153895403494356950326352326254604011000939338263248162990869692803984158458316542719261896531639501127283687331277075448843571629830042844987088558648133058022872323089173329017876666386554529175604651586870573883139510496868312670884899387892961354913879206224187205830019027900961525327549666386162485458971608034566395646781505501172076607109905644794189478309527516149179390813080540343043199299830757851602134741511751354295501502424896596553706791459298408568431505176478700650901627235146867592819538918683688788691648086451115585898558369684032249143116867222223441865715366841831328870019502455651879383955357162814914527740123090996023973286315514459468113526512036063281232346633723427797525339378178046209449727264829187452927066306372024486753395395315609196074597147918369964174982918010386013163927895733081452846974971010973937951521040931855333295161554288170276759118219500630881064794175457764772433125494104026767253918089211666383545329398615153615031147553367799941273536361517432819639117342974671725268194892308459537386883255482653868060887259393866348122014139293504022875742200292355714630234136265534223748878585486659411778949949746995607971157661671102146808229537510647795647104854478328238999775916226907994439771539885554620534243270244330794427233095952499935613785259929374553565842725669307424070786343633187076066681087524352026023888994091110344778984405935423594698236763861625149738000152208401050403185426260441213546729875614861183913850493016122952325824499147116576894815642844968418925128084227156355690739414426028406783004629506389316434999692304934297983194382726590600734820875917264087114364961789362816456514859235301476329858611986003788823322227511637439015279910285163089331253724867727430951294581827572553161113683275951909044410522761110272689561053123436276697958026328428565465084601555108852965112806032023980102744425595572659629748614457120423562558927651999779409225750064159405413054179311766175894504003751810495555524595050332256445428048039292450058284608701606613745983141758051141070842532154391126265226173324849330999002106281162354984085370229534114881584700071758248450955614076762298918828653144837755180742932915896664361047220653082594598419045757520840370098555751227140675837077205163680774863909786042498134634986210506883663735079863400260207214797288818596427727528909296718063545619277215741566459841636441352413660819523078382851794294150723441443792106395725795687818702317209478973651165087267981530453520457339354248824886581741447572580228960708835910476486638263245438182335828527895645742243105471441341452169119944612096792770598111471638836994749430436430094399893828754124395373312928905082069196267877860070206619315113321343312089850430145967054247392362236045244965643381996376034256533201818042165311258188655427224482395363770475004332104813699913876339057470190827967171708575364000265164866733633265601668275032411990043407174093963649010887766678436429452737445562219622455112853182687262126598566583095310451107155815093434472268089832456590031927809278638306377882899890217467805310272521450058193874207945687619896712259232080133483673995587638512872678090271927266931602091473609113163201598926903382254726992453793692768770502797953927996965129227874291508229242285862134530843933786229817637593676917669532871190350430499630627510684263799421283071229005804398459383232983682864570582772244461424373406061617312077556008963731660695076316027687498508891202190284961381564191620050508092720139417695560513111109841712632620047823557827298517655663531621464964401806951287334538902891850326902177321609525840600127751767314823395834063278277877086397816352686210851649912928974226780833601416708443555062129382067788698813143770787557493938006626838843766954118785312354585089719794551735068345353635039323709641854125078184838037497888529271536015148928344885281994674546382668078448148344652785172485025667884583254825414045919747744421682698490794510626694444494421320531200620212957962669345544425337686849277053808464494569507767188453729631169207440115779107925811774890985976411810063117500517172546749237419642927164599201285358759988123786468361206296904739782590050392074542737130919529173941247615532389166307314270803773517276724216580990717228517717725133358528763767396338851240935350665778710212176955332708765724846593000276210796323267102750261607757618351155043319438723237005960410371874535679098732926423872531985854458001011948407027461469028526576329610425448983096240158333333820634124141584173818832270183902093395464378006884072470204085294971423205877324836261210111105277422192530353304418248997568531082077510568111845053879173557818585247943076735896481382997908446673659749065102920703798159044702438620551292409496534197205674822160425896416498368207103079329443336446503161577940568714614950582996767969278944801266359354931191757288265132202283468508022828891360853710407034485596982532207736243701970534101865978603249732153032720658928339212900747343128414005227164680180758913010661979190728709338286608719156011805545429768349365435194461674747152859628583999275283615338857840585013422039446323341393389774271561145632184651628112083651966507502554867432287502773391958800891063435269663028120492633161839459877698850409894208149268705032421730128570674135106640038833273422851589699615894613683603144228386472050982528474883181721787602732334007775640640938316020811830606649999787187466700992814029821165533700755420973067294204378228486794231973134075422211819749468310898886525778344740141804311610794286049640861901735476672834436124088862933226571119257664706768828736973305057903755785847924534565314359232937555042376560131925638076144136679425905760114442227380790959493360742041767339917106771189920891432689054334957054515128231523097051630928450171990864947395503463689751409852382581194638448756993452732234731249429223673218915052287000500423114769139482165289063900659571467868215866667828537816936305316042179716997244748691002659289047361283667793535787197635487761416140004033850059164590987176395910527288029220741547108568485669635746254324949105495215585893837917966490880131435916261458947061376079370039186401822043252364687021878421234182101561465535268610108223601867045653142111111879641705183592353150140398327677430622920153806398657520723413806841797991751981312441767241442577366649026845657756657388796636436387633503374938324771498527453223648260691531337379081535586164789208181451094164552643866523968482249737630368446489396672736764949645220616007897567179080112747397683469995672552088673425949854769557741876769699428823616335003457807130663962688331152017611009121361338333953395942029482042755762432903986361232945816247347606758130204710781281951501557176710530322564074681315801396406583750594806436736861278261596095580627467583014206510448097950621625750348361430379509376877537142794055396876630577794305478020540457599306090137014541160715372686986364722037846697017496687244708051097325302399399398297457850609668488629172017640707718772087604353194184355157249649953497888144316323131018270660961451569875903003815468679933862102868212210689369695465384653017550409233364002819368546597767379596723623660276401900760888354298700483335387197110200690784732463343695707782768857831427662375868965254349319153637058557307197922366811123004085298998776511582183065319789294093025158889828409399873750901405874305435157032427850290225399681283381538597795440140567320844047937137730438784775397995867054662463750743350446665534060680203229399944958265186565219833006207902461437082384134012403558244068440028810620977398187299756805535904144949274420814119432432922702428779265750097953867857461703119412743939108801642625024217837958361482286013127838113575974289968648263370362492821799340672879544147314636285475495783617235874441262303323895792338558330505886627801303287687269708416209363429772887828567565540149839170225027653753842719603222717845143504780497027310881126564868043136007376573186196074711370667557386939248730133169998160085410196005234441663292321485828635565160973356746797606592106899962651788781802268487867975067023885132637833083575534432022333715891090157300155394935456201358361592010007490312706775899229911529208687795328546701965950870392954345088349560819274833202681597084099832949078248482071766465098066853716778807110699117614574714479091404434320265004018379642658551644351097578015561905873520449098699048418617017160869972871007381399823003997516847996684864863702453760489380982557352200477768748336630929343533206681821339708990248506664770590696093797159523104592021248885384201213366582041430794773296645707027022833572152798075958433382236912304295015550250634165076406727295628140886468414227151848350497326278013395246919345326769610544312411790182259659673673512785626498620750368799840611437563814435666420138213700183329237614643810572947484867678124427151771976465338618046964018927222838501788889044402437502501791564409427529451150183068892434477163574489548071755480719560232351216683450225008257711233376760236552321429073320042512686724633089079594908789438774284402818025770555883227905234402601249545459462588167899451384464007859052175857535583451652228884788579752446662826888699526730470009663995188497514367837077108175877176614253369577674757129819846063266527361319574457332100136342637103146304483726370550423737928636914745165356498156226169142717177795197930161674498100845343266800189526901391025355486341404955432697338907335329145615351492804042302039255857288253705945175486484322969567837453733844452243494572795998563526112856604415682029079098197738492145785283855298923023663071263756240360029650830660635944488795334966557438076306638844793417744902248496011247871249056694962706279030199033684453562291942125149850389210609249333848405423144676561789780559489274926053914671233336581608144868772766137422603110366643999368094683298076639492644334380928954230541105005862213309750954327952413991087368453082606035138148694061380063239467583564731298745362793234336572457497650853658778234735780270226175422319460333094396739330758889071892868556326583126477852611660982701969553270628855949694274321000616480552053341945615494907734706820325089325959191814827592654497220346862998357653273056242162410058680225076027179452351131616813131817690615018710972440210212967471216940093590261167345836416541479203767122751818210009329456360935884055465829166061206991225751150562493020554543624526587740469993036632860758813174623710137712554671746874398998258339545210474924615019531031749411532636580805608133812130683595401665278583204232370466944480778379352932034357201404622510310421072762514273882493519228438957078548945234615656076382907308401203369095211007669028499524036444250609158622539456027189506403887251186955179608138822469588996459672119188053713214584256658646451081725867876692930696607506774221752075406038540212068829400943263435359345025433991004955356078210777805285587437415834868768828169909676870931734127362117668876707412837928137463158572008390614182578430635309479306398043260148439787093843282392268272714595401991058730623278027195226623041178631236680268700198195062891499082715976546456252188753452308385373258058615014854237090155634513769087408756026471346636474534574136041215009183425455256712132050397038402778773258064896373270782702954724335101230696577009189683141245470758755269288492836632163832332184403501587962988995129796073614884231801722189153659290445115244741405608546400778075656338827928279243210257423154436683176197502029206682028252492313130578316218554506712492406853975889442125622451117284305177027127639751119034662246366303802086533980823395870993880216532140307543757162232617449443767916115118383476212986531471797312970951979843910859556316851999623458316991434493065920344409341628648675935835747318233552622672551808649675892073575993398728070485445550671462039858421516857574903863680839703298822789503229389467138499218273190477571364073307860643561974565580277358462450691385629869069428171116577295120360313261291787183730860760010663832912352145183578673982526590287845370249974674209286699350690107112695322396556664351363238666189271050244788526214294986401737705115283173069662990085725170977829612824462897313994208642016784378385299037968766436808416606205732426176057729567284234599911997571734375812054456315011120301759650428594208303458076233646396164459527248529333685946216202062214628733044040473048008871700620159143164919558542251115100433845465460123897069111473604761250347804821902981080143948940968901783406880142971668705903974169935413181276540200540372832611363187684842878551818902849300933427484196395465043829245268735619156721742368032513373260258602728354590601056519020750648254746834452348907755598701829687419305763455656566520875357061469603964662845832089027813463136040449320800731380027496400055586710740360149238907055138504477319219302147141759866459866225796553870330280591547141229109976398009798795463508127416670088971753597311119265400393817304324386424596265201973881052851519312307173369285621669650844313689829376281008055099030578941576487173230152148668443657007893643553690892595278665851429263493586900046612052352305356817630679072322250462348531060781978228098015262590354780048345757131459134594001270441455057591033374401481359049166286368070871320575770905979041962902433385859789201495321340781735584844671024133510188646494140714249319555053551838625582777976284131515542296001937488896342745214713502728903390217307454294575334675674742150538229801929161530447449886483254192626739024089717372131229149122417493875154100988541685281766493975307453196057928152280679693804054766665212196397589559574433261181376074778835349274909579002553706836185444304549129327753132620537020666258355177465556852246569874334058354295626892323088320211235297089101250731202261187933659773416479393429573415958336467671652837332027322837395910793870893677661773080355094294573810238953493888710851830090532403851007016007664148773102054102143197458560292557533383292253389078596642163217823964593815863418284306776354391443005822805434528144005316477163468064971626532930695020565108669364563824734665370627991181840078420091563920031831598444188609013383822444184248014318954492530649965290864498560704552951846783188605579874271446067894911855201141270555367310404017493532052688484031667221756211441677800913006036359117012384513511817944104982103501247370718313119694845332489381014654047472216110614042262197421582576008610883546881003776401492205900930306866560730007933700519269627265510946056421006431249487959843806417984628478490971057529427144168702797014562181031628937152103316161002341085548364396241497325673798469553331471690538865106738199518259645180547555098340971249159303269563503499828772197796139928256699808518946070955869970219711286789513923077137320907214841845907797018544401043353932616229133005524128250441162684942537819697551883708556495370414965669852518089553099596543813853550858278865721894824226826255461728095500083194989190261945757867124242696983402896541512615563232717148424478414430287354919108887323323480402003991646226295968967051029973222298957255742720621479432983414018512926285973870768306441733053694061227813377281770061964252522531466859803748027194986470519530700279050360778014351011577899399643424312929996402557632610251970857826889663450083424086462861426946187738498416200507823008231835986249855021572737030713285275923202615088272663721171664406928150616579363340173017602824924642694855408639411381433740155857236427038726406330076905556773173421461611687496145236844957760787185374960511616043474885734496384147020359085766217427109690180075817190429479423272072632852189233841819658119148695949312542382904439404068838843299939827629502331093990198977400805476533784746989630635217610858973491010303690586611884176789633129167887730926404658170332920787661195739780560713958880330926819517257449112970247373885936077509130689021097938757439100253048043447178719769701922692294638696796450652551648142501474021857724863770390003990840392204929239761153506542221233783860957948478378264216185335773705595081525495078604768824995062565713897931943276601308342171639759217508598726747736649351742725955809344908654922779274297506962753776307061903195749539934955533472634074417933955249724729175428388670040650280351004199901801497990629919973772552956839125427721688293331954058806138622590216884604765001159676515306454150794126667947519201279576770409769989452562181202778504837847529495264760046302602733387557271234639869364996617525710083262194333142028082973085296448072183207373035891726597168887846531132061508769141943556084288218744067480476724897560590503902896344494184975058726202906006051603514454966524590774712144480248910522731125000362645854973807947733423590199838497364805213383409187916578315328880074580896106659299843053516420489875543119513252237264702607957830231379423777168911053995348263262161943306817398685015732313324563417641688349167615365597323190718994814647512446593266219470537142132541179743123777273185556386986240382212210014300284155469624302575687081250904564806575686317227436197580634574244690729544876336480012148186100166752699024404094727496907590514373635362560857773251101621481873836390562669589088670786045626519101656565120162118463207954854395505047682851915155316589101288773449182192088555896100400255043931640190101610016515436802670475597846860527247742799932640628652902879091184190914532228559491928217483726443702997246481531772128282392705359067904002400198779169752693155426043492304412958457907575744176870831544693600924505572083845829990348863009065770655816377650262087633030565469859760253999781733547501810641646291784171026405368225385333817068441657517516891668735343979926930338137681409082815126776498923709271169803823928597477643802377706754934818293278621213010072829270689515542499131213210008354564707780254846662926114896771894588484752562513212943671218854444744843083887440043724516740978438345323418048592387331681887899723141576436978775937315314313276133295493926077445823063038366564366079612094524423706538072466388168780662339162337358461465180755788922527045166137960934817608198254284585315213164676098562307407015214724336572257079434623840832164528947790398743110283751337738113978125790244968633320261294893947257741373344085589389587291404640971998513778291644643845258734722227376714459181981207339103967447927676781737134702585028320658158251017637385103712937683623278084575453975939430354688066422901166315391436893571699522059035261619731873096776844125272271794996838462066329011404038845866636956202541323625873205273452924991963821702321867152921346373845838057299855928513833986799133862970965362248820450784489069964746242904172399771885663322862221725783998831949184117828546689520280976332972995379298936816150605554600886590644802926902654303639020668043200702519963247724875811831776163420078079001167003755296558355320749544297385979467623550808513176611995033727469383400781378233088998698673068160770347853330078088601186190211424768134736075378243620647127868180081156052467240766090165596515802615225601951847365276652358605562326272783473066531314322617359602571301864314975450445618398177729734080508543063837210999307553962439532241464807490805971688712058965133075249869272625702285526492886508242132614188700531771625229747844726366515576664185869955884801618523423662093031685617826182998996088217483452416773668716073066493948351829552403006521177373394644020589159342507478501633459842164419303097049157965083993128230102843723460251876492746215545523180972179472172296167391413137973210611214012127717867449816597639383384685287991592395885143086940258750261892821893976102267782071852337009759490062754572538688707375453671812473008029298737730849889524145509794165153761868908178903704049247777958871156862766892110366356890172490639958604308759438905305476250712881871017644196404370184854292577188511052540651010653833366035664310292791741373964418572749865340076277165009255127700365110298487461026620637073561386603631140499341360699797310338955194238201212644485920793483135721142611984874464276206391552208910669261476816155774800443339472918034386282308317696236131678018013854836687049839154674592229616760424307468709844875517135680227822728794915300008761598215617154067459104737144604755871298720293016148311396354361591109256621752965578862417680084818693012799300679294419131136986531424276655641417668252302304307000158425390907700137924792254131525441716974032641842827774213795096393124126260199515905054122623171370991797991511198752409120149667477017016869442175764446278673366452324555999788293509846744297748487774305517488129467277688827142342999182233361738030958335357615430352424125529752367702258136010550433195893629127983424121539996233634159471381745022071774364240136761813430808023364262615693623417998797620770348759852022504526887675292448046987299092760445276096842687337049360851355103200030751360777820727067577960751599014175075924199852188704354037026457615263560820665444884196373499556359996218072193892413037522605510670593542737681186027358103174226268232093589542672537327747509304628829332481969964756184136741151918965857838966050636133359873094949456044854972354908896019557030391319849436612342280428310135179567361293689311537062802956825958463400475677504995773696679613060710265284176857046876773901122110947244605955911872611015587135409060476107203796525027303813540467035622864648711494029635015125199250333982264342906368356265885246569620302720281125516844314885325150433026365908932390396215790684180075064219836949223380174597447539930262448055265348097086106377664693743624525352576338608937592889515356905985552620803773260417817296962173282762022268326843565058945691445591997094674695771485341183188289365720612581086684573672664651507989587201677987889103974589244245110413956953586120505292766744442046119869792995839975092450523091089816756105439587876416433074169786268490286259412730301197468379597516298747623246694727363091128480870147663972719568805265987868464298245172616536266959923555390037593864684018387242345806430544862170203240050339481725665539627411626998440496507747311734171553351281899792260563392910583215774498412762356198130047163347303406380994038395758121821216526723744067861622910444041378874581427547949277356905697661634251679164261132503425470151643759158315346606595071801337428893864527245364596692925070350871798809532995603265666277269639848312203889735994692011894255408655230619017164153991718591690101779421991085673597596703080266712877800056647189305628615044142609145163844499599371120134605159793855745584172733652756344494871490811936236213233506844046321823473532424485997510976441164036488576556596632688348347544072509353285739397407514248148992757416077756282502519311003235528178666996759626395880884252328781683716249170556474184423258840394561566935246218051836307839745215501895447621660254868930246482499030636023771790673647592563988728736543451999175672284931130398845798171706564027196538300219940862465077135405216708058660351528839575822310834967988894766756450140675854700955705253188305551740320141025712510845511815338373269863597699780078185784484582398263423596172178890135058041803989222048355961790441605677463333910488232244816134357369022602277447372767676112584833369218243776294819800742131505795126662886036376968030842434308064736425807561920947231734193795495414232335907517635517618029892436715759097790114459934576075931853760133694511096538461268097695640831161902009084913793440639399754437907532711408137315524344896823128465633847683149022094965649249977667909342858758099996868654744997394161433656758901207496931834967180946461082437195523746501291523196721846287149020803133993371416324639634171048117373176415864178066515742108428982888653247271204249679523958446977993746455478380516165170271474281963544034323764326627237989063490930397824129500345349226923394821505950397879207330305392823469703502897087759559407876093926805510721269187680632581026192508714629879147714052757847523028482878116773287420521493504115507993340262606691078558929751282298046497020982741952532598036736095085474267035160364940222257901763774169142405526720991948684011172266020470174227867289670640399384585560993725727471037832324877565029629541427014188444209860418061124815832412409421855391374926761311608997707289650287873706473497897541507696838629032668090387404866666636565589309717813431094168709496099246852815810848703537095245496064819870252545804428130316826325011066952542278223558859359706322750466587217142241169715630847398099217644137167371257195938587311235653215474217936134968303193073797962092436072331293787968269748816154218499210868562727804028336486647580130074122998721252245477298583490733393896046325758350290783132846914235256090465278482295843027742792302685512512061977671681002138211860066311662001799600602379699275258030978138253081909182033042150586601086868032744739000863045680260373120080032485557651966252276279648888520013998533365065945750623423199476331917626861272656492739013292091233306808524399717113612080643251887328380056637050088427356192033104397152756429018859904981239695978292216868995999127298920441415383539314120227236920942104658316391367122380356592294285422783682356042898466724695121155740720335925073527580467305390774952845225017902249405845986559301713907474590532353155189942749539524834033111182649088482623414816622593309017116845330339768484216057060713198372293476587604870088220043889015243686551607102242196518148569295701715779251294631420231998888895633882424502343874138750748957181626627749331054140004034499911726225779923828081244115951375612372538046184588891861031408373761711696634957017613296595313062092717350260206946240797867677491012485685765974654062924640809425137966419399951514201579907486690394753276862293601542025043533409677736939261051956404675057680899465456227635389253503278786277562843975650079282355883784627522947078713102628154895330586988160923924685662438736050248292507630040182896437927477763940573019451062027364591162428072426345236010749017677518157049471469839477969851054076218930305239199809950779319536920427194457638820571875485190023612722329777137668072106247629298949440386485191789459600241567238813461452165167357536269152595907530808333496828766438028175126259448982332959862464848751028816623574246979752764333002605200826220457942306628920136348961908222719928686013664761142520145318571731942382273116112910223600362564798897044871904084449234577690621942508029745693059342416355434936585361896684515261353560151376020138780657306849699422499033010659096617069557712654031073790401284534150195553801176943634908717878271642983395029986720455647356938833954753356575355934994718182144843942157156694308578228955373028933835208689933024329923899440679501095027988109130273287435120753981873005268724240477456459171527803085753420426819183290351444333465679264785771316663299311063541513602796664530001550547513403135840042312982869173223152825871720891812925789207859929175905405410793012704831594699008100588925334251452784271015465685735860798475781698241376381588143679046462931250685566739667951807174634086114867968141324660905944882680801415475045533463386164258228524350432617398379789744740536356179025273009741232180331781952703206790627359396436751772877744058958701714058589079822823685901454224438659563529528295592736417260580753098608598510345111084066213751973411611708320301665670345022179610970969731556823415174956553535084800285794742783862279161642738098150697687042797911047899075324244469780342274241685759031012128665267595571945183013439786521515631559541357392566532742185175654146411590537962891560878326989639687125795999144348413979292981245464263802003894320639324896903798836828708023618483740180184255322025473047348663829343714123960812616497101330842242453108464587612553565059531357987008216279729451172955695043324207029577557425308715722853434091319756433306557711713251864500183858198860743266631021978452996173324559311463016556594697643838702208538225323708341425095198620023714264452763703354325811534586267558247170626951049897066698184258142802626195313401662389663725398549745595338628339065990085290072155583664831020997442529375259069865196452288164258403595460537783210574820986574559227500605081654188387227818074243958517165028088247877617871666100287466097676652683451507962461408098987785574990422632816540402627262941408068438315783641570676991771709878789850112971925907496524310086810005836628463758511178607913844251837120578572611002671939246804195050695916116400310892819052440049806245302885571179977402508252278654890549551457823525678215324874215877282778906219527638081581257681625937961766452346284778645378644865883285944370301971176972924554186182407892989656132693728947563073730441863219923968961956006458085568931155860325869086087847560091553504365396913499844322618992232701510698715134836430149920820763652110200259841032059589418338532153754835157288097277861773351556009161253351792033088640449965905848019723876576791825279386833822632508028374086809869017937153650105936396157693250486946755820216568116474942979022027002893693502398583457658588128219734191445333423621055486054032087849487098859278253969566595804776535746206626203116873673428718298248019678972119934549475163611794147393259191087594048841491189348434870346140700259104611335792615169618316844318967701425999654185456870193478781525720850204898610368279239150070592566314351764339064816446695245881675922051031590073698577148863659259746260569352958565656261274093215456086993928931030110451186426960399721776879804122238044304450228329518881547574840416184016366503229535237547945716541469538111306498303932730166933793715907806404202933786623067022743840441326916978363851525121919561894971565053539414658669257495208479977242877831495260960486443644093132800592598649307746434471256246549433063490072605719374514403630551427485173711982855769897798973756544781834136003249553025087448741047870141518639491963346083836212899325171508400426656555529489099055874983244222220133212922770152803536519759752841300545091467096268807844528101933529653914639507271407679983776604528995979648515069167711271239294232810265418762377603701555593532953714777200516327352743410967548881925840831870182544375682225566233809039504475626461821649095779167917518787982950997658033826209546254756956611454678918704182111889104700657352238919037330148975078093839883923772700479845852809807522960399436645558134636325944565714690352247740909958938044833464893346492139925626353193880509805073609164917662934184992660208245017716617200896205038553651640391452123463456973381039079513786407069440473764011228600671267446816214273921180319273936715522429492823563176858165191680844032388773618051868685660375892112701798254281168541914571008558000212828994868893773157079611655644818878767577605391744652090021583195995452441212397648232987937789702609944777449382847758397589961834078396643471031624144804646795629159546360403709909154343964487324006222921335239135859682777735033820110880830717170882384124351090950520870396080975993760108673467647858301222438364832894007340205874096704046477459915398040974575822816659057410312548259528266846962285353755766974362653131228719224249099091416536595560329710586821029942616010496003085061642244932657681812167974566478484624200104346185034072492852209217889322881842613837007530862783191102369382631199944861954752001203330067727704774522424854775356721991191051270326144403796682320823872767722219859481655637032788455017913980212576907192995217996210711990252740910433678808871389307613548841086719009027114779590197815184429615593388481830653950941535290643186351303755946803222368305245064586281593980583448370359437790303465128045724874012971605708256295891336447359858627140135566472279464399995077078909992327515207754807236287659944440492217909186101037074068312288328180657146525692591856248943171242549556050751254118648421378738487567643470968221339404639387210446805659868629855192116785490332779260072602800692317442156376463868487691650523139066784499361838770601202356306827804874959453404837139906296081806881363305282730046175347827597323897339069137421927079469027559890414066553854878180521120449776290566509590468479635472220748437050950699942964664750146651805475902799493128631790902158672807446375807768563957470888291013776699381093220292597817930009967991962997564078845433930917523172618906159892183548377719234253233587545609140259922725059144888478999920885394623312578941354253446276185854636833008923120632862408378308878168886009931388948269204953921154889884419718579386141044170355501720311856204011794209701984898644129643121093575480680483070616342868232339324473849417842979883313697464906746555737387813074322536824953671572010405722815981235113620809429387226806948725755830391708611395656008047862527160972775144337036814718898547692380470054883714985900560260247653405208839458978790887434521040389109090973380215090115923349924267070793816690988705769103245398493895943247810749451985587496009985469034347386683290572089418887251215027167189318915605809131084485548648806242589824560031888288010793284519762936109359538391169350219805627394697677539261489624602907887511897932461463247386867261522118701837149236568010836563870108152441519812105221869832132528865725710063017645420744167086957936989872330754951220401349122807649745604432930027405374723232659247433177075420344732560814407982185872547657597791044599126078059358160443150543721973483604766881858943739052014678231202119996105333948339347916272822915760528520029390281185994137265546700483916676003383562330576266820601125746668320551923469752750462059230384416111736261803169442021778749781032510493174381505653468483055166911305499047471981278046854992462183827975084746130760348681994739709965607713230299719082269884986975440075927322481157660126834981699725767201235741353277634547751431704723380635789471817176700142566701313770681521708458267848600735120624651329954106830971757199145763655616015375843905809053966837741360982270654674145689206202644868817525379022290178533478529628083399835339149780967913068593429866665851208988933661337447846027827652221239682898990120036344398516183575469233569261070314713406447601561509753249972052407763225765195636038825122846182867586464040527811262162446095323743811558861594472986745939771892934885108007268476487273564942403704260319769521355502720209568541644761528025140138289660172820179298027969764118221990944689976116356715742715976225729075619097924388509339592536597085061445376535786824347577639563547175007153399751817017081576178456198397951690081952449228528434079566688765207226825612523721565609545022871244828200592084969693315135336038409108758840032896012785283101687434271882054542400589542469259586773012966407552313900920612900804586443757326012007979891134412044486772902153052136707696268974795379819146618276443660560953385102053059752944753283855882681193506148537321530419116018883387242667805250075326327512138399937989941096420167170923278439424704221004066971224200279519485905665569649253178805130451849355379331108392839414671810599114332426354190646847178363896261583217622850053430409701604524406380125178816037799176982504723878466922468124221070231799567820910805401550463384500732496523590059309298995212210233450849942378370260394099137366624080783071493282774467370526176881135085062015480091337903422133112035015448390789115301523239244974159694343247811790925601828660967978562617634880257932233378928351753424114753962483525019061101529588540211088865964014619534527060654386792920442097718029586833146993862152046595632903391984571801777012476584566402484444975077553637727618961711962950500003699597842661796498729815407246026735969233073998694648333449145641175445903790277128119195652058541555251277986765064957628026527975506124535631230469431576507848509118762252064379237502877714506766226339705691019507130466020144713126988698021150688149009617053163793123258948099026888978404977553959936335649036227894746339560602755179253210517059112051730079697510429596686722540131326701630358854466409738549424411650113217950806967776208238606741626741411443974685326443765717046347253415677765345706171671739176525884570114905823957959696049355083582812639012620723857267829484671026575822537471989132834871506786436552043667306126490442832587935272182901735887151679006830002429065938147742015405248526456599728775633856923799916823760730140143489420956687440288537169227244013993776514858894989919210363275946750550224335015640930586013440289081230613641715251080233078632975696745508208081259934621356436925246712574036478167791975074839031113276433764300567627556489980559003609203998356715903392215936874676591900707490257644613820716918143846524009037049444827800801961096067491735688419045461442021713279249691217534997165174058105275702223454497453290331383538853994727452355375079541760971821709184604261869135697737070835163317376154746620092173116566742458666126144336531575769068023388042053522600629379414041508916686075969037081111298553814060904733142187577459454405262670293445056001477659434048445344287453923500672478066927643215178944271526362173327056968436090924093531991412145306318772142041756139829142918054509716478508059327827632056023542323303763343620286990868325165504255557572340140929909040726673487635635500765206513641062065299846336154071564047917784496554708079226690750090892474716368218164781696750692298020343256021864400105370483368108988606999918936512697376036945621948947581540974099397665053151755207322325436806864618405735857385406900756696048137182046728225549511617583564401100956364437606085525810675044995504725465397113759072892369195340389747246346335020104488494869360212522923607628731922030106107509839646235494505655234561252420770331228429395597311985473769806648806026022899328034173332095223076287370528047717937104078326222376388838526150723393050690856000436769747004009187213753398385156774394743163333352199729511722681991087073167325578535442423296249849901892608753153227404411241679865366852121069534714881969963063933646152551923754316853695338553389780748223339813682157135787127285054232566996725086277686262087872087793397671615767033384269079384420537296974759588401282765083923473257619216291391894787960405169671397978555956832322964576614284040207347201011103575344648728062777082625324303792502016070364499007231835384822760195659375577863535915037373245738911404664043067194626579693691529220853195223717365155331856761552469184821617506499928717324812101897222065439350768206127075845071666146014015157538883262706724278989494351281959169010938101260884708897238415479761690996228275891664503526142073991263147787481672010642270536753500781163269749036945036342775072977718312121837958892928815911913476203731457822231081987082964040274106276055532787099639448698327179264316742587617612460808906833768568486360405669816272179933651669744004371706879710548299188046460017933447659057322589308279719457707012359381785067689153947645806932231408279745758866668957311762896723366245041069442869313677708853419271439185825053233614123431490689094683634058013510014853456312335786739750959489163121233410956531775789767844063285675844137142707941532835801617033049451499887593887574169561498961382941235302956601644130217867632272278087983001356746014045839219631799721806344118108346421216601637165234479811096663840322144766880032597042270412675445197483197522847358306660637207159686841283587783036154796781805306724293763461225691709683619434343202035668098607078016333145557252358280519719489629931202656745139192259524189948547874764779473110272343642375518729727900960283460351853290395756293453793369430107865497057960961675137380573765284015464271730513287094362912931062798886898665511825583214653858775821651879979291776289783060699759807979759141138380923181649921526941118503349271733965649665971820668982380137717279847624181413209086898946181684022914676395032016764103071522400752596520444944413673900527915360347255909764772574486902699718783698635351442852936310285819125200352516132213973041133437044791261929755557520456390779777185865610330848359827658127465397010255104829531798875682030311232429395714601237268396554436708933470014052139645460704983936724049026823179958189977506296074480563253784157471009156147963302591698462772444796804332215534956815618004563801979655278437197669383011076044534071522378555340171590414834892941360904261707876800000999240061877202065105635277357704782032340030965767599117781041258794020160250761994085313765949759557168701966894370349018601420897753433586154129350994409425403966129701299962939651227678071810145737554928745540299795145675886854183068208253771469510344915428859441077168495212992612044893909905884665867810770022590397575222816389042074319111534120606887795100135744513826223756066862590347142637954836666508549498147204194565825975740151992455344601926655861416674570454947237592466353752615130276648876227793996483650241312293481635901061808768127994874750855511384464577017898723388523505192639503225498516332845796547301622060735894922935599859842651268898224560349613340422551532258134370247808788202825286551779507231773801118511306962081218143757902396285311829503043671251558056743190408262960476753409350616585125517072836880425916086466311498238312606842513881534818187119388965182594022072366768241301527379198956466114968953827774094111216365641682654868607924724063896049887927730616099841417983493634358704098614644211492420504925713959149129231170245144853921392501238514616319037129452123857077200258174687747333398181559747953058354601167576209636246752733289911018344796581690320802651244450956711221813387200234534909762142389521478363963960950239852236751053498306994481548717631755938526599691679475131543066283106162390495851747946437638428087785479291990797615746007852456921827870032878549682792822196600495558735255494304421396775419175481533820238511138229899232214919172020377236195542575537677420908618345185750653523515356081597466168683700259573211818954616337535017344822484572695245608485061173099097307897678276123973349394331707933967822709419646810755888781371794991172213306532687249618128040169553176311194876234278224485479096863518430735109588192307090764404327682459626317167847568347724003747236501263496028272297147454700801968180014086472136329011795731033357713720442628271867159695508448588912956431335842319757086708729918508645180776049039232542041080945372103476348477205523578698051455301550608064302877290771907788553426797244011869127878623151567881921309996563941233560841923621921313067092124183876651045691690751876335380479321910969385923032931580208920036276296445743072561494605755319497435381182530456155583119634313024913966465809990828622803893078313580536004249708523317719700992973198828774607893871339907156522100207585909730611962726472209901310666950275439820075059617243236662366951919307640651608355898270519593701409834077998214594387134521616814010636140051874778745985783338017729111547324809653149063403596347381123474252118336186521079405754837287541854767822851977219405056466887483708429211626853305233108033388779889098588588044112748758917101621377324875109389618065073571723690540151025304788134060529255888821336021633954272657695645136106324138531044592738885456889830343894418070552298970024190218329607395738347708829497325722584512864041101542618787968483789960630417515310304970745794645564546514666557704261618637134215046258325439186993009908463042389054732264124270097843312693978759793320422316889828139205903822977231238062673066385382751457628344923988373439593449230211248991884404678711253309774893078304558744885896786489332817408427715521466281576762387631488408228262114028581093284257291585006731301777430486672435383804294694405163735632197508625475728737198400374937727248735679746164382331486688224876884616777685300111934351785186926270873526826173145472316019475856993762695296448751293748028299442864909866688371013735276844147713540976058601345989080492362031966095190180667522553307115722425037465735424582052981687802813836821746778286783332813624377856755288442819437604222664213885356613739299538124139554777919483115752558106153036259041234389498348685490827391621346615737424103866173004602388724264742846180916227685008413785223778208385638121075338385019822149184706264439287859423989772916531648632528154427369423073696208843693121414961964226836454099980519527999865783493749351473446415438698029243210938375595384377570722688610491210060521731498310367337122582950084239751041363388389532700784695726193347065619033106471728569579405697668610540034870157928204058671472656510377337639847838297355467819904465864950483525440942750702867483358480475266392242364209348178541504877426773119626661745420064142648569892410422159391867150770460009400903604283512651085180319307261853343679680319281462723457233896037184433971996438244121128644308506327964856346898329961569520592399756749611618112484805867043770746391973929137255897396907655431652566425039786898056033255287152481309255260227999279975865961558233824802089641601150946944025798833855441132470439118435747082961673609129051736679269952404112170104512547644906942485907998000524889847045815832663141981255189624386931745447650533466993852434120321628783909915026189533406436930254640269048879189998295785085483053058174462845935892468354282586418703739638373792963950100485854966278234047489614692973243205937048989414407769986292164370689400305086819370586769124054123616109479454171479728727725025875731123322404606540044594806613063566748711265505508784612655595508217463289727502776273964235584797685265867353752348975820304432270813495616366077580171663479997430032627371634211590912677641738456346739133839154560543909600283124460889262775207353688926512943130327677010091163278569501146864225877696833161459790302962760992391224148125386946883856411390880978486672081574331486256119785887654865631451794099036870287252060347997376728847028856854594584081432349867252377923208832636420478113702910899515592489328134604663282805978351780480197571522014715893804864166948429718654878999885355965209126676633010566412370224993169532130801201411374444157880176758080505481865753663143110779070697923980999420909632269704590249944753600363186722865851913567544560247341007185543231378666953187629297617178483951730743226419804646978652866948378077885818761541054951044771310642946688632444370882679389579830097027885520282351369413378375344595501680221079865429222184258613892077517364666746298790848158992188254684068692603166445337424835051940933464999713160199274600337099161559114900795868835066819833927099030677495797231721534282400925743271795951999052642850662501609218932936571443896812361409463726815412501522474349630396776678927354413818654687140929656930567062508918285069934150380158753664647263013244948869601238417867937347635962578747812838953358358963145070118758532378222057643415092101643392100408543631906857543536070088312179920265893097206218609644680616141091525112471422631045105397070977003762153321853074168780574733373245746153886036102267477900404264358291801239895133644905742002562441824738133036067238115468432085128259982737098976364816142926029214145339801429051471464021206683812585512833844036054303443660017181070491878556191279489628570609717956668551218866622493748031657206984670533951831745975588865293532599537951837309985553121159030336354740067444458667638711976393854775919650799438669312953048511364349142360282435913981138435953071603780217760741893900518318576204322948044081705196168305677974283648276537370611199865518484871284812465862635297377820902542102375547378235944177272948755694978585990567693767628330367864189463567505886403283005422969494093482308302921582037940349526656684760297035481667578554913103891237607563265925070849348929535201171334335147102932840711002308497660928778506713444140687139046485126231517720828679425439202796666068304102364138454802638339713528404825466400639267884317235685861777832387089606127739267971096614391787572210056912641104804528205056636302817558636173498448581697924221162614625220940171723081996573852731282431335837347213757371542991486004704272773908976101394119784929527516324484959238623377889951933286374690097453830446605053361745503329745765830459882416491079267863413805221553431812537253458339338038166889712167731397841965460839048521407470240761232633427001548699751821890125457057448348953911300818900956810776735882041100020642348369183275525769785773174458089943060217387459875926630313287520509452086255296910574506483047876073267815319390550053038967080156374594102375750240336310106706323604982023261802209499382840044305852545796243758057131319130593803294903537317386666341972711783322188849013140381664852837866954542758814372347851110712311684601185972867165612975682028194872910808652489755029276082694403476896446523514465469942288158437075957036397016670027382283373317003527926402637347441028900445489539016044150709553463527723244946228706844670124158739901020335236024102414026681950008772099133806144890266779612277983195319726754613554453224397881890460773638850325968238830400844393231490891827002690151732093228150042975402439853619551389606145171189790060475453475078723011985329001820346292726216466707412872499504961675216929377549304077715215816968600607925630628665205165519241190160101265623911463669957543151744194067892449205376901908242061517699059612556922781061146825103665798511746381105159647984423196994048178903492565195371504000309191387015381623998916554438622241159308714412089671113839811106157756633925799573840862936094327129271084345493284317849876121133615987882212024502980517092400761381259886139852655234056362583239458691338795108464240101973373691174548596644090638046931183814423813244426814478840574487545641545386443130112354484674353990584262713013313586902535772997577160279924962884432615572346220131599126445985238825055396942361918458647007946856093741660912704969677295679949473598847772400360398019300388912237957816681379491492853390721651970962289645481301526907453337196369707965731275046950616467455932613227808754259169799259654065726520782324344842681999370876717556446798510540288373645454041056500251761760696574375804950603600577695640100096925265237202741988089683263128136243686416924974318278521231981649239386081729825418928528855246739480415173734285353627590498230658865901474238064469742631506732511042871773878472271195105138846632829896548484625462904416571233244004447709827401322796951755916291571256778296425929481668905983521940087238298443719444510109387774565306640018354443932718024672279821800379635948538354695472302897019816195783818615795667033987169043549817243451772635257800435312878853955719359904397849926248470161924588440864974112491736497579509233717407473486170726516651369542593525671827673761576667389999452000732702318327768546844909336740087536564173149849662840387862870258753386115112378791490236732156843246098208098143178284662834812229343786028986640855210680966383453396226209991418437828779540352849320192282746739060007515640878897225644717710555642975843298665285281702396517351539201527017193263500124090858777138124369227518639929882318880693300614332925881017633624381290584157080956293488660590902648402869163830269102054235802250454680951064816494166811075043937336871018364706746275241325009391946895721227231844950863226536759197377167451215703750848680496759038142634201628794362107990610040642439848189748994169501955540913006957035946462801255623324654127863518223926066949611967414598082011839587291918549627289314749207242351018614401166405732876498750209941936394999107070735761935322936742746339326326809546825641723748562578138978423942495977272088032236243848984837974000893717065938607546998988492303954315741688381171261524698051596636917337662213223545624444990509448440182385801174314313428985696260495460796573937100759969800760870016124913352890371548585282662138373434860924923713301322527568175540258052707423703382024860038939677761820034801369935745069632705985773461442121217013134452347916736485222749578169432396593217979826884831253070497160671528014162760832325673974262668884719247723657891064333817473642012557412378384921793441399479662533119927415888938731563078140800853115607493121146098781954082268309674016335739526990993630113875002247829051669882813306028362325972424077157446087515360167294982508514745760563806823760505951028579233101234850856509379516704233312036751992797374873391426602630513721442814563622606453259222218174250426767751785093638796820326508499443472378706967282671116214292760482509182055355364953434997817030606804701732628550096563283680697565837809085448012081902857705966005880760795369434843255130807792674416501213344478091071976818225446395163470935150772994614574759556963062824339130289825758773792747060676586011547174706445940795128093613992489388158366770571977623876326668008076999450467872975117315865558812645243928586294986653004000321093942597660909405287389968510529044594261046149220324588558629547666724362496929725366642838279753735036920493796340612441780399202921493582030114510393925471759650058911245721763252693896893227840581122281369120230345972181878964844884550330717550928519146073403954962555949964843090316499479424929143719018888716684349802452260448731871558593920914528178128223472838716390180203185253609521246843889581027084915759429925067098680798046918217358440412562904986636223886565663549312956841400579369453188497762537787087249701442612758265064622096704295004022469814957135359275985648402266312967193136158089803754529790843786342668351976027072218150035863740324305936724048855917330049978284094401284962181521012822429446780465202709249195169315237260988682686757738583035499539878896605993866170173647150984355473010043664221760873617638096038051947881456903571021984949937071557384693502634366748822893254802989139655721166410046297848981042294908475814222873843585339750715474890597125634461416642044202064343153808994377548244666070201644182493573098910717429895009238544103152522281936500833179946029531216901205163283424391482229662299374719764064893906401326550322392923403464910094900932176300887784823506052490012485565830066472226145179934602755237219491026993406603912881939514040177790354128577444055566630427047540364906204137337417834292649171851248148779130985355166606806826141360225432267638296721017245331618623300055132557247593100438922021555069991759814829501017786637307064011736958403878231492085538898170108104404745201406014693455561732834468449888371489763478613728243701001756469800463896201802870611010966009080141168040234271617365939790356957740189884816645531594798121487042701917162051672686675880921261932941714275097660050866078785928462436624248247284567257640290501218902078775014809593099180456954134980756428182744292751460756403231500433199019501967499531413792877083556397056212873730112980924874518437520082513960625425976001021851879066331606955970879647820311224745841868229941483890524783021667680059135966667009462489917584741600041758994759099103423688972010379218667630724926829811579990246788836839755379548330663426773105192767542271879273164628944612302436954492475487908905519851847917452173654821722369522340306930402226883465831309099923889391157156350381815390052585869854175469990006119318950904501060285370370203145692407899395637477287481713382145591948567009193369530663991091493244849485828233235467373244038553313110912261999917738680253293864509151342293121723546298810008162586318130253326556480006451419527370188530385698506311252381891497595550547785821003709420183086018689043951392903402327047504089757257274394487593530927734027367313530488034834105449963536849299643171552443542075970045613252073805893781825133300603501612818883702888062970282427717095652943415574086815875976338984037751851714255247968271442578350177413248178084303074573073503544925358636763453949122162407489391241811211042252687992011337880827322043296569102025624557318270263302372819639730175458392144758961239286920196332375454930016578303438962597217652520946533790105314669020454841168763496546618942113713219718134292520270672430600309913099030486672389010726027413150657828423799144638597537465585409632525510434509527416639614890821710578608557954938936117012220584975540059825137782272683537246492240154709389311605025600728994655526554315080998705898845207174802960369901409044453173666583595171996854607521194799528992826093680562226590108116119755528053072656229675900521467053517624793053852221349768225138239570231298110112081823449939505299090506333265128621571102019427711059524085719154967026811805412838950203518638889866300486674276321830390952104075224070583115088906751129018607637903773651714518157049587969973060980113702374878747346733176814498345097545659677900179790159997577106106087910174916904145460273123132872987386336536547641533691262342288034429777574521154971872085643625248598184007037300378889499605640719765853682883110159574757334235784900309196951875200331628002165623300228029849971693801796311957086871413904274371023470749595622500584661876370375801997473992710049564320453972194020230022729179562691352555328155712765182789112123799612864011727349880912421842360304067235651478047157785294953671071933953723705347601649582734056533776165803684651578147564290279831481731699376367806153697359950752118117058064659195146320085499781391410552005437007788530107762307527640609783744137657297667975921124051129017503078795394711756469258623441995288985920120386214102047000045901136899865938084217508595413482522547148101946812304121557138996532030900227190527015870956744937539415323707218427061163962661906647220422266797386627947130987451730887719499384182538813169819418592815111539389694874449955938029168552435366040080808139303076836370019901633657843424212927065089843993060620502105725677764415158523221828187338961208001177746251996509617948352043923500891982496064745210507336416939377867861235603643425056882076241389178203390357814830524374655410501311544957764091690136190518729008624326484652694677995630334093711433291948242023756142769403188365533921934286584287366876168195955355775448247012697555702254234467421331958571205035139465539733865102381704378898822681913793898039738991790812562545841976661306668518274042429036943517485454615277730017153002903029853005095531995832484780927712032046301650258847796148490172581175263911117188962421986493022481853194489891532583745812331721592094070583997494577636825884378844418101819625676883922946657377200423302380678774731251346294127378027984190878727097693312279255629727033667967536389239151499687921016214878959926372741224827304920287091501015588933289308011361037907105860028951476464689243106681090541479221567434660216337211670641559631500325646873179229216446803546442195585887231650457315415384911073738404243403958818928395034606792471225393452921159836698862428756362511959524867114308149330559882947546059059301573928506867986122844623553260093581952796874398138403715850344472913469418358966527629926051240062703430000261443564396807506004558689580647249219509341285788180520889224654244514965824702742719911640905174819006278387095986188004898104183902115885574944384635329793152747196434447345771448651236351655883942739946259834806174181683509010728165660899099048766054377775145545901405678067693396568179210717494459308046488727338982859996230885146914372704310691354615200592825656255379636344571602280318136031921771436727959306141924811859582294315538830069271354567226266042826808981886713670774162354453887123088975690226932509355114319761037536733026643104421474904386490549606632480975832417189070549089123616193082158022596043874465228586955554515848700439673482578353394236859419042260337017237851207635628474255467824997767595033915883535249597673613102582066499070634346466990916770077704051820737300324715019896120925706346146149356891805195477445501511932550172965988639688657946175487887489499174608650346587510102332328359145498908886713286780024208807329496303683951922352685480375192467599844245362259620204674759446064020844400047699603928000233528862153945832468499777032521597496384622124938329027702117554988958519155885944798825151538954487194182966834815598107203446368931916075821211912729905811376085012151144989158341602586094955362829533159036951934423338211661413233095940062034700277198788293538010677815728412738567479419974493675458981059753145586947612265757490240094432166011538817029177971197966471430584189840063236145019217636991884096589469194669448227446919910361844946385548875279863962671847717759707004078993838663232389712289803801517045894902632278337023406409391878924655242136183836834451955652487808163356215172134962149759944075882437575427283140123322660826058234726375954318977236191812319601980135700682660758311695079853001308915031734248158975109092338255283967122483634094777041798845145768108659183488331666492922483684794671655392837250874136899070183750035223991345198862323229010775253024260985969175339948357404282254535570509376974184364212696020816120578587588749181252573840153099764726247634300828630167876733266233673427479352323351266027377299995895242804157827026899898801437200370433223438608390515209311066459051794020931195053959613562744042143364138498660481838851710252181636678589532784607257000889112386069056588889905444122947175921802444860638723735827951062987050207173435817341887551096408140759112519524140891164830939639330028852949531614152554268530999744029896637835051937017950885295734724413891152290809466442828452423333825038880647723950370100555550843643456455555587428820980345572602209872807238142556069752030072341599729583694769589242300759673349724960836611883565200835609101578767669916970815291771835172645569082284459499810300875510058420080792784747122081919150570581230259254191446426640039706503794320529451881615738134360011846582501101149799250648406656655427456329226511413008620559566332925856384083645655464831272933328584955733678426438506680153986206854987944114298665747177615660115357657045344703729684726373241646687284060614775921576558173228900835625294507171637618396175643113927907754346660686476662417153041726457146884088068845170215419729276428643893190369119221705199715181679757619270234423357433414220404460266627029129983069637459952706366427534967502705874789531669954945574297061977335020670950042835656064313854335094679146873643805760319374997603974720406739153509010452096179368412061865137569799591683243509909508129396952510233462201324830999695902438261956251274843235305652143755565048469584471801629638262309553124826982778093279463766519775971207613602940844781859120166553706369284520275427894910502141193470581396634669825882626970279744368398671741347756123050306388586033682166915035697396199407442330166098220361250579957467870367359403303272332587864888069566867517985060512948231112362640427286795295704554799756485827196863685003362128668466791564637116942581001450921699931486228779754120701273681359281124139825089901933845290340552922660661455045359615339960954395125420276666113985389333712563604313084039677515798090729783086034753845042789839982873407931883652483803096365225544760316045634868422865426567199506172983976961674652910462937932964312408427954719309090771977490318891410701076264747381881202613895442518987823396418084218538722832842370009490572491910023572835874114422763654782032371258123959360336674260187571819615659453674241807434182164509489194943003125649285437350108817710495178533048488783935484601152223727268676026911765718009492505282574904536693762008073439341005016978613220523091638324044140796423567560478892219721687767265738837117593202518768916153907961159986190409213032603178561048892979219684056790410854669853231085991528085466781019990762252963703523752645898408896075191639771141356076781661884195403188855617642096862844574690556166466427778280776364164545745480577130266943429508019234694726071867381174663388173415432522791781622138505734556591239106667175784308050770432319055662030278595255927127123308235745559771466067345733546700260548769778377407303973768157782379131076688358601705949851657198874015740463042378621015085511508176634087266541141556240449350618058049765774839762443370251634600080254051881722061999704185545861957673479145794987633944095188116514903375635450039691212612693374997921863235770017637429480688581752622611295463522506292480657081018187488221203004846581493739958305578998798289187853225885606149482611965279621822925225320022548915703270668458716723379358058362418246521964287471004403895454389618031327010906471620847259943799082686235778943006563375523544938958604548591450533096966945031440618848192158790643965422479062217604956699427550651658865728019721217139350729385870219567602602214453773295134993273084727387343052149495302142367033390097465409241605319230237101824077925530866811948673533322977044474455473455328139283198336178578233310112058925219491235801809174176183799775382396243898120416384468814371009432273473419164042600724390941956577637964038176019733460076555916507540951256020109523176462313640401671357765985520775171428716767904759565303625316667226202131757173069622007598290403580628434069190201203425927682511997380526643888875609969827545600622085490100880725222016312462848912129472646419200135899635664808726390302437310066178206564774749457962904040114255038882552654717375098308447762187334482611837442987509768260496017416198819081211504996362429722430322963955958599306329561829014820123837375712297923885974373521037006827243083691474629939202037502987846449472271459876549705227226830495163348078226164734131458982074257477260757490474026979119323797179662103231341012853285292354127019135505999589717636294591012691971575005036416879204628546127020245321420045334863065413980438991003575032155371017891693726948260390069748265337857572821403264881775874063805071311866929654193354031340953695143266910648472683555196560179136496640895253912987057888997038826703598741408730799565091951717743620757612464276291724402150412731679465158613930437694185145195421353346407020654377953562402169071601784326743776722078990654875623948615411951447260351603236875528486035115245383595028662289802665005070914251102298991226547628520506338973410122813963791080006666096436665147478310907298694231158246279445322938536341040649427799779406656584218488403130350711208186103982630560473600942712944878386884561590672316625195285637034867356218046317621977346356811451146019933424595462340136117404385778142033934875000400290760125311588282421902853801090485200210055130413268677794626187923311601083478173990666787560313330919701153686061476619081400878493399626075278105380351462722896671456963840827856185966118793036656727247264281908277610679743870259733174308261487478093729639079637527994792254692554346088035241258824592695141015636612358592889030821847350431939144470311626653579558797028901420086067907695093020563475498934614370325980559679023118707438869000368492311198101514004454238250187957629805841323756183690409414764188340135499229268288138866907189602208831326149737139116691570936324894973658717251773883645902906390793055177802045379546098049215123549093116762678922748237918900033240274232509850727207416748293683331093393388405054256550777324010195878545028113266374457516857111882507749128234034812195884544728982449632065729584219201036870824136973694495481985337395180655095735205513442782186223123469636904023268007977514153607022579462343318070469384748451300856355164343000733492166626739104604107306222891540363068334976200666654045837701471577196124251046881065471458992850091813235664826836919708061885576978317871164835627938376337261406717741146846485209522419261637669829219487241165717558318710763442606620994448485082806083081176124193253075532477654092341891203523601128065830430011383146383534807166461635300694512241388071536340689492003015315847448037053786450573850692175789025657945859818029199276719752712547464758422096082080785375214856885701352395536955196577828396700157744560786125492910256735816777239119988413276675770871116486546800374050026690816457473438617655573259554732525367321420174962397243725188822389422778153777338273026322317916303960116134861602189072995521643165245327323560367613376870815391245730132982248263136898242538983029390601637483876387965559634794803422561637690430921549418072676299882366067985894726489551609948096012978231605344912578420098928308905269453055133273809268315159556981625314098356730608739740147203607438794774972190162521485749447020078765986066703729213432645861498975585813946758286860719703633034514581121401501269430964503404295238693486852179376937033030802332457095420454324931481337519041503418974594358107200138526253636483304704158907121182690872612049346030186722694993222599344808364668909668313091239039186250696916251372566846933366467335627084296356769303811146887745403376478092834470242440351284951102666988325592189065398577451537488367758231415615805056809372304768339273160123044223109511578414770919161314109561503541836562509918237593516955572240535667824017392294845290417421619604188801993935940111947211475761314335537556506962130065109064252344180852296823988864652873769674319833622137005811870361320353975821965810644750634448242123733841353930974151277726670638562399351593265006257295608411612764011995248661294114106765343529635299836080550045779610041498444178616385936589735007880037713289638980657459978422023168403798076058646055418236147945408503837800207180990002961833630347558077926640384189628687195875259431233331414214268875148464008394195000958631399139260169992002614368608142254871827828841578023755546951456882638637987356632544241430879659135862449001255797791022979864853835085576368510217729549654005462925599711325472707040906740503724549338894122663744954213410405661816784438404144726202175182820170524669383867860497768276258674105386276791573989128944328604502957365280159845601080862298950159163892077594285914075767440574722604296753098654174884324476575530312247240729173655982727180624392957727550279291057267179631062580129180995342836766730075763662159426179137429273376949861814530358986178568524531360577724456348935000978061827306238738613264294087975533947269069074778525311980397943775554283463084372562601776998187948325492947838371441639018594024791114111361770965530336882867814819900460317685954992759203685944857274473298854021968644575588117823713459514089660297714448850201022124588147713629215822943495600628239892489960290130349177102587006933833757256142743603241728275234841772154118597510349505903774035599765051111697884049709377273583979363669540362817850583546622432290276007704640945793695908421698855411667198433306203295520002503802536237768669614876786581946519697707676567139430570781063588594121678457304612903154651816826696782219975130215161322029578377270936656632566316556252950173533021698443257586428589529148252820784340866186168055287739304844334638198277568125456528000369527870743483407914171305835260124632900933149933076577488939340702878772667505288150810129832843675676599452931141349307796157897471902276925465580083276159476612370231005695980549560070830988154150870546293866427682681975782124750220201218251293124800752590718741575709448720367173519072130381739659455059596616436360003730483707697350572509236842706417519227038845163732869057245652856965405129084351059427030537553873503893194997852240748277484376357708283918310713686012342808445133182127801131264412316608414343256394087145877155726784657050769456997974053693711988140026691108933520571007518924115244544912991664315319403372991652490340489432273295734565091770432898528440297045535467634655343017603505877574571747392865703526110132216549057955662842832692405914729945027606146309411290070327233873225515550802331056868860675933596989306770120021135902738603155745328103888539037876304788013829290649613077317642279642833739508160655437530999725497262518829669837934893985462107327542486487496301805164454923835860913298698719651093029049499889582473468135045048657725233214349685752098520005312718139706326776850483077451467199483002715164037081788201485350502154622273510748278236933995300084945406797929917917419511481154612438231697812560548044132553869934025891656698754985281753489539615131943342303090701603888320172911892415149341507046550627084890766983261807041366713800184632749671112251395061000164817182239176608805767705138153746891976617569133770553211281352152164283547520883212510101989715288725532460882597965718402975540557585179807407593972017817906942646152980356172998669208769382088718902634997561592442936276128178513808029989156246089809589856970139388917213058772868472993039237324753160038417056933312759222510536537124420325181672275259224485013299888227474833403625026686931124097982088559907956635340410616611828024692180263874992567933091775582617246674014239088413323661701928136089024609081696047524908399160410844533188002790515682507838836477521220627822977484163318062575075457721874010378143415687979341275636045662800056194400760113899088181265946980985460946396719141204250224825438892194238204338212426995597289625653370266861874233777012431923674955159303825109577413597259785120519464176801459056108729498748562947728408265588050056269898805443565665379046080258998727617218718143094397142494239347296974418199390087986058062012766109714891470228052849205691177395084894479827444005768026915536739635487346999565247264154319768766069856698985448650133973480584944211504028623473728706351786232388989594978876002268270100244206672306021745264427012993626277295625601138410797384380742056489787780037092506158321372476290220247500422687552000213735437235479366862338358946269029174610904971950857483236203478504531312973148720192956296472229462340366401354328675301453906768104612823066865200085503965740132690135273342286700482151513021145576727918156109974602234898646492586425646474568042330572652824982069333600404925601506624771743109833934742573740532495006915992789741818190000379434902036997976852898681208771994052361454419133386341745430613621134473820864097047483850287552086987073984398139785254200674705346098392302719698152275568804984698207833483180594565389110453820876976109168987569457624411597774946478111414779510625003807931807905431793710863413726310191068175566396362179799391176233014373499671900164000523664906485846822535258037875160115840974842679107337993655373250835006663861503960776973885640437284451278354037956753665953148767523484071432582904348720548230690692515519331961665591653197346946245252117949821469882688564303519713503502678197875985599617719841598811599326468436608419934618086518285299147817676997645612246486176376722370819448282179145853339566990039676837024054693839525503747274582547804877301015131713969341628393841490707651339722208828477145825188758721119891165717352030013088237443592558593643789579493746194011937631180446632116233598892335690705061265418465130356300180978297571547798620664822162217602816035770119933523160314909951016194384902058326612894158992315790606888415965922129874927064629247245683581587147420052065542579142275370730685378743450610469683643783579037233985666572265649340739533558811397273238112135322621349148684790748275029590054962318847978246643739116951428508412156483349823090429900045241380344713969902407089899102200147493750441963341331896745909201162459447305682223508816965075938439872108907803846364801372088383230902633660001598567408797573095229099832973260859027261261881575609532008059327642546255851868748304845741764543308188612484876244076968521704462269170336993620852991697381250179677227932498422939967798739695152073525633011372100429909626717572013314975130388277011764619318012699527546877241715866259093179691925986579455058519794738602258575259412763940575911918812239658158700143566154488415999158608605451097537887288078651663491305995567723175914253840138678420294390304864028927861089910272315457516613574778208652849952924983810091190742183866780997418878786272280553295932886171821908769562174851130490937968247407844472035933352565131135930611057229676547385078136992834854937395743371560288977317866406698819791227731170796284805230175356431569901232176243853592614316281236854803335327502519514799385340218708392197065418334325047622436963890266700855982809870724985054061689004270699272513298789516307395331530689665771252019791013786966878000975687225570202880433641332321266758136617697301325223195857382712067017528151588222231472685413277630218045037378553172204703503415612045071967706771816346538732972504898106004846980510304943748766151655012853978360319895310845287709366006710712800330171388476039110065607772251543913119285386398384675690533987119713215498390357156198957080034712556276028391933389243697622231046877146158531115846041393567819615548362568076605465028531989373724263765715148428127198611342235654631670296509754473035839617497852856325651649354274402599054766549919074397219629216642953153532996398458774297940720247798467098446813977446565478268687224742819804039362101649088796929287784722940265898824322187285866291210644296860447017185132460208606295694408827920788266827065378859513231708104785282819045107939283506177077397228995460103340449046613733574311174646734214509102792876096912583845770078533575999136856250249991550025710140787651178613504602868306092209308245671159220642236116050507203206879984511864063165383226264084186949909372293523532554963171157007429643426769428685927027816423992364559304275163369214505099413925632832020291542821268772744130389486270988532181051113112499684891133018855554734748929857865029632062058111175131308981357886558285383924311363836442110411433468491657085919164031309232358040831749065375323297915349426573823870237336602747972087446390632607220552792458195572784293407555715200855566614584583157243379726064594872995038928167254802946767387967622792058147071350810683183977436607486844735961596636645531646113148718102238426138340018494387631876287332138263110631067458619340402413228430400386256032926701972335712385036721906492193669355958522730660490143139120941032673834001250347360093645650045712060979215981646891732667364178132425228412705865321483267475353301285777698565326336787630279174561966738098935584145125287886592353132891858097490437914402802272243549951144203910143710481577474594570726312101556943571719486098138985618326732210187769395105357746896388421737228376174825147541063397660073364100463336812095035236144860684813500797873232593902668688154967951547368273164781397583204006868500034981040788915787900555235649380969547138063259847594664266910616186219597011744080600058778732369966637091885273099709318524244416819128011490923638136304058487082612101803311204398264528937319735316872038921870422378753544781744898506107766902531757485108478984817021317243275384207676012543507152069216731447970130574311081870156724979785891050068263042909799051041753961614067103467881135083205295640010169035150075835264296527203534051992004982076575466529080620311418905913084345767731450937655145525430646232939232657599288827442231069545133524544107596310759988274922671650615906407247132049263374929111763982136120033745198168413704201963225383463611361975923294046555317605057368439285870617281061534754113497071564284679919836844587513536840175881803396404772227579912767208250728436843414466122131347662339270859841018565428214924433211098699932012845431930069996105001411404960299208372660610928172687424480718421747057331466489650662788760106577135968765742855565069720673544140680824084278567463590046965194899318342527151217976414937336432600953272023424553213798916306374663342919023338008839605379651149225374568165047064473631467071197692063458227297468153115228671107733373621125893222009332186997509798192494208711527511382129143534232106594141011418411399550215674550671549784369856096488150492746062323622031514571528355189369104373700655479961660585391513359953954440195183658274908174633479698733218028326643102162248052795474364493440673123155918066307206375852094765830891168323770513032484256727628069122689387367437688567808269673534964131864890635478643279262525365074846977840868163001225788366463435183364465915579383015262040767306873346912330342821668890621248048173736740846063769262460923190317286857374565236650828632109273492206983206634930252233606947009557309336278791964140261143672248387444118352827088234945113082039871615606325431413675239336248708087015317500975712538375745827393801648168132265278458661309814119257008491655378865535250683888530067162418293901009094541139504168687709288186256825847004336912664036344861426233554705239991892334653617138368440753680399290490022843007670030282430160799074345700533871507652617513014569293245463908170575439942293104259442771466208491406526167592443751167893814522265817637036203148004547307221979271326508319400635971233852743416015877513412706198435289599204272607427352836994501080088961476802587951442522771538669882619443982526249621837477293931643271315300041296221986045382376929739919672181863022415039649492143101629917824173572871619738361079344154427755660305153648332019547680283925365658461606581345400927149320887082689012026623395629188265568979138682515544696981192012665264589971758444186878521575474272703602589937425134273617812793107941511735297332752771624507576492617590084353908959470762629144357734200048065940191031679173324340644906237470707010347387032448504791245139669327656377149222502940273866873033042473209205156985852439977780279963128014567583510310071906001011784911230751814935754844893870538152930433795781888514194056824250283653955853344915106642868341853750696048753851553372037271988775787872776194585703081034207154435880119717637858658788893834678995769726711972820328055749968494052885640359889291025457087551594968929676705004876902211599491387969331718617662361630756217510814799284878227710246681214942342430543737487975574433137696762704689351235795071070668365776789144152407419922378645836757597967176037893694550670151844258223020767417675136993152349516467379496532313479892832798023622453287222063407709985434557781074714745875544888993781755183446183602167276523295152753769475189159984726698171796682039965979614634024735003284659132740923876954051311283345128010621987976988273385105024480573835563218756251217510022921971491846973622257616247292537329184951974661265184177864313096364509730303490271355672903132675347792455245635389061567428021455979092942912254741014733440613226320267887804665396809290197021730197498475583717600143774154772700548581973639950820427992122811447553335303371277790496601200491506648719862367200446560343418669294818998642115010605754584807808520987866486996766479411877460834488336605504641412176055188277656782650706197508866581028792897987742729214563585534965997010288868340450016652783819715288474125043736002291875344191848911916802732615855587149470060924555848722058458304473367182634834113114649068544919798141192658494370508737372678663461293224999137763444897838762572601254079226874396507307442695318336333285091695131621828167627205395023198905919134306003784933921391266661432610632348955055005115651765155530729191270844594535001139416225900908979726642710341498383668335006833902596575363004225238254931780574512302504784428925871919382377589443196254239577290164042777021015678669053404497566669492051093653352762323808470790028388667415562880393054031791140999937627069953235713711555276250945106621998192220857862875205039663483711376842539934821719511166745765434801326676069078749790344705586180099738618630383891621330691871374734848427919616818103285026956691549374264506266007956624757922030995777935402109297890643066820748412282149914271698665847726176434301070339649503212084130808593850702684303028217677618972898932765239654665740553177778096437178430517297686075323495305288067824703476444971881667511156471154535956318780846283643210543829146232366568351584030100016431916825629509070053932360181429488941810085370544317535152967462762223674425060039775675478036719573846627524949487220096819412608368944329315267488722265392060642760738910066913522217568779882523135262900689141009135129130532693121354800893333450358519414990352529325543811743029744575606836753343615873928057029204759996868294563129979731586462989364391884796415912905138630675401690421072454271664687538484646477801934099092833754189848917960492840005652051160688838790796177719779387736518051412606125986154339284446134759487432595892149250608174610071756062725927584781514921560200368873528993837697955951623957584533191569242368641314108993582674210435912681851023527703513223143602928581550275070769062273809665465523822376867653217964092799683449387979640117524402271002890147194421695146746460535005682891522964403792739398059008342559340048923206397590796720044710787315227859355522640845361146652357855939313140414249807890052968613012693658337674299896887497047419311812148394268167929337096984689667636861254043061485655708472956985189269896054976036723573756083876384006949729109750531670981490899070749387822482475188178621783277256444891061996515628412941709441164028871725193098746203396196221188051135604402737635406522376533406703905018071211356379147459995100638219084426483280253960631490101803416741718471210438590484026403113668723308504924838905618158474431417814193945633319253964386579996127550925875409373013013550030588725418092766495174883250596888791542337820321858153970186011148580614753218815171382929450803133163049996847010327828295621339245719995221685155061332515892788240629168778088863085340519601021091909413746516615637490877913932347311032634756677648300169314282835566662869785152739442527628600777654024814126446647349337914171230687353628840214824624911465623952719145260383200993066223751630733355310216211529010608113568747977249878828348421493976974686369139337912850612363457354491440648452511763312108138565701164358957521573198836906342527332194099656757335257368334178585105714700810446651709860820329823522193132132790241673724102293846559632830809805437809162197059605634840425352791965700570733704785449366420004785373506417736750065655266424561278256831484222619669232100109431754530927068327068221259499590752553050470468037302537162663619302815234132123948122821610513950330694687131290287223928222703941789556353813059779983433554717812770134343538688504445677005110281807922472977560611773707552425864765439042542138282122737430365469365965455851010721963204247488006862600391440448858454255414858919887780445090644195085800435720312083358407413890285540835185290802697883453719922620104695021886543652488509425492428226645252636884738354777185029066553784272792771060393248479728855604733866818447689146187265476888969865004911172199680979910029101867531529790289833119056304058751791675370860225891477185476356101056570829355313398237400393691991065049825053367032918534883112287406469860958224123020496277267354404315992684306237894636138723308729428916096604639734736458876474711318659893797421043811619837315691750655618198004578811636135706503600883447754373707758592809909955680816211240445212382326182024915095429781831468619217360487336149298525730778015366266147824283915708477005382728591492667533193698235381978284351233058983139688361563694905656166608519429771379608202724516006596533196889559992577318881493653221025030451436644789281568301748340776656083183300051325582192729101388718474730525017816795457999826594788776617417552538264756375219437618122179400558295110738454028997776365502556574848637583182813324693219134799514809984530597145166176389156483682313125897186552134250923263746256433139805677420375858056943604972464954355469663754395115365527864166062654780959982081066082925159464888993074918483814704171964798816867503301211195487150524174748049462934227503708887244029014917832347720929854782954738160246246674700351322754170857756050531615828911441192238395518509090192068416007696029589036728371339867616133691980229766299775108367676685314180837771098638194690312829924678919722080781619206737311075869418103215495491753330932249551349470244802883675590371990150650508204160601206070731250431274275608266301069366888314594572555771071297797687209741034907204707084051119574250672965091105537032196950294842077878949647345946174055346565019446180553424190356111971093874274773058359833948146468611624766767876916164459859382171367994424469306631996782369296492350254381157292036830035388454929301635632137435314935877558844657872337745490251301841932683169672302341182540406168480368683028711364826057856089668727372580315916465870467336168949096563722352158810856368004586442099941586090568438026390129986009052313676190658241734238742749579115025881349088975761059879433865971890279288635993317655740214106575065735830094681635028362558134230340776342886021801321667628479855811305707566577116181779071185544742012612132614695775382278545821753721300655826836701126713764330891147460280766000095691010248792972037793034391715699988185256397757570156699723341484025864173531523587945671587011261223272134290078320643858108514200012101442055633991336843954392320815906986841837247154045956316222524557774416899938386327109308571323483133987754104443216086337597432967889493461483896806541994564959291096962505121314311302800834525007062162587492587107900385219564936367768111262066232237459325908448463190281751168109414531503081021876138247477207840765191171994627306279159604245382124178267752953802163657579812832044438297870902370154007002709634244292719488474294388614865836151134697555203426637029600619967314082431206343848007335028335691812263347682138892159434445389318063247289310635867403399855312063201972687285147125754921602016691307203999849190567281291421476322081831698480607877277903288602040179549437815345021396178203721271361171791132711897287008033890767990920892986545679328087067473711443792279397970047498239323638645419969148130858023011054471516066296982126319968068057468435384056283337780317419521407880051839191736412294239095592659955949212601000948653857953445990035814844751960711300723918096093988787312812950563913485153112740142901685073071168773930476988628346004630122881961969234836007048510008812071263327391810444200403443653839193032525156262629436796812210637375575603606231017275612955709074525331534433035479303337138642375826728195611586051098032251941417147736071974195121170838339738980495050883457956567386381724677085356861356268107320013831360139645703260175496348745228515465522835408178696822042060499079619057141210394244314973983696880673933801246471918630079838809782268624750714952064259635355337298719857443696884836156028758613010441809954034887925016790938458445623959479194616091466891724371080287126015300744445830080538306572554434104031831581659639838147751105896639454824397834488375942329478803833446812343366300796990410325172968286507773974814991088042043317895986354421650595284088006933993078345791562301379711239017042555024541697728182148105371694697607592703086811855094609371861240562306242311643636017058085942402800565849439351845522641179538342759070161935201759480291664288970030829457144604507823356095654183935571757189351294106510440092859554267033726206354765454238001072695289461699000244731600510832894792252644418948579508075401173767607445419968283704669412291664937301295802597110538034767093094608936712365705169044607780044376630921180633502438602389248006574059430757238478750605329349712203011999255339396545082670878675912754602667052852249874404920663248441891888554068224713168083498852713711000101235576756935268026276365260857288025328416567674997600488956404524039868369337273610240052331791122458480162053767936894735785288918507615366624561657416622003073597730489259379530439373148248650873916294036801002519048001370322013422809127577871040450652223984899387663122873908239002502671757461968922195879539604638921783286103913402927041639763666191926044023010672327492430712276927544787425040819132591142349410961084258099774631597635770553780430216324638967849741220092506432546334647500808570902547897356982885271517032100510086278115082220660390834375141051052446055830547058170515873260741460540349502163897738098771454826048664156913788125437657142175834041493017462499592585969092587337774604086544712975350699499692688206992713887927225452948048492458492811391164967295929053296162955520322154011854828679915101994592646989977247112950002305769889900037796710700215349488662982966994911026242926683163904482505598905146322445716536920313753135500587342185356771622891042787406228396044015786330375137155717590975226346664580680776815830836958113112880360036579630803516649341618161490636779566858006759860048201226018890357742906102973814850685648095471151619224955062731059684419027178612241523796747424257882832036061543434378248212458749268139699494379602721845745583081608609190184820181118974594792156697144078644504395916940451662657478846288773044564225904866728659532595180627398459137312321952836635267154404990065695101330588181768132528757586384249085896662889266060515790387440001335685270758512490625613267297810268735463440923446271366941140695893401777434548383323555761437226555244586845141069667028264552427531559232923189774783907643141597278339464678395591520424071295987884386509443941183595637787652785020124754687747445509965212000290979026757722259190113380531911500021601661031539172562018903618590293710070612697097670455185135873509422670480058731780881751582719175461467346521955877564134613311727782244751205948552318087606996649739363670188298278694237131709198312572141882739684214939977496309353849453617607767302963131608006595288759079615393853745955480902212524127002711704748910828096448771807300594807270496107500688805193617774920132341721723289978879799243983289684961027601758286310566879567816556055070011489048796506912609105207997449575450750038685182977683261449447636465695687534597823319770458457186156207330253607475148118452579047539576143619002463128561293891592270091031303959745063882994045384838532162869769708867512189874825349709922720739188771063136957159825829250672566226377242242240061043852806230609342453142428846783794493994253649932336498826436369325067384641941398481631365256799966295126359144896280828849499857615572692458284801772320877585408810922128987600461334470032960921168334591617264180245901452136310783407413419630843362764506193088661503558672651201042404541861026775515300016699580693533934397051159221298684025436865152729903160275372261749405301662736080768694784273348652212132976538529438331195119422263879553240165474267046934527538415825426588253325704981268279481283333295909927125556530645784835195880428456400536363108892479732067157366011522395227466947401161638183385846713062337025708174510013048556208345878866203139201057902581283957823758948402562038692878815540549745402484754888560356414535395473531623910703439937882312564695046636204762670217440731719181426946355261973782415285277169346452216792360586312636258588349430216862595632794822595123433251472560492936100032714629213656695238990446699740913372915338337731899780688948851230122477058543223969053575695488390419931342362657561206572270413869726523988272370788535071442851745114535257687750669959113592453163858124899544306930371362943759763093169784830180990190231716772271597544354592975495536810811956382845747185993845722783202307364511432575326032227633148827082636575762832945377710935229753710045538523323743048858601690575245133331364232233480850186076493468856993343783759389062008779030620858197759205628942865778755154555881525050479118524292881422818629216013692191413591365676864137098265550198075111745878017478065882840608604767011125942770472658402235964920212654289957851801782761070656999081660008285286823293427175892418716157715394306244588577098245313584921745487044323241448414086118062336749071882511877013588254730462472938763056763011695712650561105875075024858702947625038194277343661627239775064721007199161532396406735585426005535878364257203793098996355096316143329576965271641926514848624440546502124005507409700030846181136615968519476974276412213013321478411033432774430589379089526667496727401564094332953323526579979223105689289363880644638333551791497896483638487469306470825869207265365126536570058821534833220848511513285928710939518391772361644670048048089258283631009183286804604655954739965296639704952496850129157639780632816266320571985978192016983939490805985776449451499073057065559058749384261866077100559279613594480386233086329027775600857003042686778880852978725263730310026588708471118331795523112336718813593674275058320508565452541914411312907192277058304779295838141405282613195274141360136685152719221052073937661518847088251566661920791629722127556104885874543527698486424851323354273344605204270594676484605114723183907779214906256714410607946019516939586853489584119946487036730685737691912277500501158825407313641491547169530486284515768084644336718679837904296357652287359465658434948587732464947643984577065588809657302771243258380874216981691389738260778165346664989693116069858154466465545412288388570977665212855707066172317107137516018950322141736012312357699419502463360531809940224416641628163676143622644120563099986418064373019571874263768937405403514397138120741578958086041274513682608043027788926444855223635844385708314981401395272918185548794367076474466341559006545196563214464222697946127432014381445448527497346820357128337984597987519011109090344321768615056555454434109276630660930624420463535023247977222013414997517091172765965170378774896725368441714179209374568137029163210109712932821312539951167517354929615793882595981828143130062061265147170305197372873136175074270824373897715318037515521922769590233651054147613153379594673965316624490235187599916437663698454825447814218757986870625320443565006372823014233405791956969013097238013167962599850598921557342193540353707015486626516924835009250881692304385862518144501859978233631121111890432072815856491693863392355245675297906823871053533285568586161060283507348274257269768670538223171741463890508246847147868828491183019089891092717352124157189622209777407600292582984343255979665817587583456097426402597873493749389782540194909780611147371166097283157409050668805531942847951712385560485148473198257039431763349356766835058032831559901682156815811775466180308686312292333085720576937994346635517989226603968480970947407988323030358949056402043292492520635045327268080427656787355054262795349664607600913003708620599049021133107740620856697645115777910449158067711000302292097669451892214249650898926124310142162737885497644364642238228004360831848594358856044873066929282395584161659770189906606695438166659978772313523461500489371346347213650951782860007051765489541695660025970027448434236817532699702172201726125213399948218418534706957312739309746359076457332570593397997782998314772911677127739410501062259626181128560161503729178877138591473461698939016969076232240545343344015290530801115444117221934415100579759146203323021681582445086427643163896712489695733745918368528667046588396612005999534383893298418456617643021205887430899461546663854879103162667738919721065931657632710271252081481663969029019273202681972573279623767848982569702947267254166084068686851785925010175756043029594435923378747097453686873065035154860403562518312921900423139526495224104860045354780308301677069957010288182872398263323189134592084749914596693546410231224670147909155506694143342742002975648311289896154917076813749702273247384832494367605499310379430011911504614047424626138821177759344529171447280108816755100663689103553790142300919067161753875537621272931111369094961848800975455186634539117204709530293022648057233227680721091318159054408368803197116135615655611516612073358842988283480674352371531381227376345137668733240650728207621386186612385384146542279661401790387421875808278451217881371837423247044063365206113128218433131627469493683376069764332427227004980448608408362720393472018778934006002748198861482953802946808249982981740667503050373272740216472446283229993293091584598025067880719066343032840576403256335619982264615504328832593749117084156206457141660269196025914124859583879269384458620386281875615162554391298518575207774141976355017650845599843411955223949941780897063450355179058765766138067994171257018784627923914694620734411074356542857142949855065947469697838131747895059521827335184150769819071272455103198679752996969038915833677783490104298568940080066172169470675377281245224672443833220460218916166208319650621248328861815640316400786572746463833318028601773459714654814417011627901482122172849733198417261995841679268317328395138225288509017309018104690284809545932363573296386426453820594054061733224250520311913397927080423768909745198692753807337718144460146521117185047224186380701629614117514253229161735821048939617432692136589778431925307773280325965873408702137247056628466903883554180392543082798510548042688345984127952948434752641576948284642470585183594349130567714321242850872974495402600340441425474105757220103257504269187205675299347531904484255648195828224205011499263125315766363820300634863993783171846674922936680194449813628538917530712764789183485685562042917838941831069413277006752327578752937249870902752231872279968851152584053290759290318605382294497713629224539467623574070669991300576776785859770384673229474653595237335828159915365668604345783914241368162017781690644784691287635591515115018091071436417547380311524411872312058892444027583190579682997372091971839678069565101693429438138635808458296959883584784829047045728858464216917510871843656639023899827750153416281475637959831646768891044832621541580105693255638705121980799917119682470170211700088009789088050482751210570402942926647298849443582714977883660681591385529873986564594585553380112864444375985174032635697878861617408326353719515082399841834584459658075190155967655668616525104542401082157237689522998096719102127361144459884973926896227269455509998083352032135695605945470023949268624410329077533214628618324096739213577369540116228201611927569498633083950193802767370554035927690637177629643678217593852298735895014854577278343948808427260114414805791750263158265668914175174742560268382465208142105452527550999379122026590071779726082135298737672221011946933081035543469604040564363230158964629805980405818019076011617867073740222202951135402962141226100553857426278584090204254757484315944879369047497732543028122964445966528111161888587533973019685268199022644595456700480608673408057939635318371237242234089537072901472802519015020025152869822885084312035383641528626846743370851678458096782902596159408134250163052548229256367736291538420465710227674967595248815599698438210305391215166995192930258877809827061984324106460535138039489495718896555231700905567775601351531102182677186250590522071297683018028478458794205952131947547502999016753256353907695062292122935609440097497626989186401079168729925422667274509385086833560013374232502774610508534554385462585654286538170520640498198723221101181711957930349225506825855780566025717085233215958978313886502741229376157528640806523891194098759071037664851475228214266644875901928109220216177832411941748006882315940527511650411296669538207969428011477645719159851426484548001005926185484365766843522466392949844213327626342120173235941741584953394639326455353865587304264229290324926249719010542122691049705472357076278676884027334587148996231289680432004456404984418225115776281242241603288893986682448578085088618817474503719894802450903041668061795030055243877852212458817185196154740921668164583465143085767345274517774973991435376436889775532343712343538555407193241648047197804478462415978058493590697364353401073896247269533803841618283442784773346001452071608556965723051157485855527549957045919254141163307448247170948189643368406133397949776431188379650896577917711216146904133192511593517445428699592898103192254063674561163077059000887443150652880438539848434273211074043317594573135068486415857966757451224864215261867714618715379332913079134245044817648884036393484893570945501593262906806695701559884899389527163420752908603393738079134704977165437642020338585825764421804136013574427535323707938352456666537057067963095561191900174042940962941707567861194139832089735768946253495149926009802135802063866245580228931790815777541998575723530143991290849161758306474377124132833759421794280359261674001840758388982051542565340430059731194178140185480293905596431949162554763950672460668590969908147417549225229371589448364372166454757575068243749472831408858423091559368697464549760313421165222574420044905766329517426138673952878172403760284976609266463618623998954356613303036505915605141599988107521212885017124661300048778194258918998008687109182922800971013440772921201654747689872935221215981238776633173630659828675318353471777068136346540792278180755215623013546460086030147019585968977006128867706179455132761787210854553090161651812663733073700903649806393933633929337254182354263900129837414741584239282899728984908770713749899619881450877162708569994131226491362322766605509318560499940731038295339631662362231257035831103158961118507446245675781152633391709979724329621753847292442070483227915049053280419779305651342554721799118121391189574557175159553396793529432811456322929044671879758265985612627071764580959340355609399340783492447706592680422739316429117385312906797788646392812518512475817939547793783705656669420850141788147928281941767168520666045957463395339091461037194252561280357021142977783548383816277732320222786483282583586265295540902942547806568056779732553008961113846406571130876108686982920084228188028484789525152683814941569836197513839344556078331657574079474963224147089199037481327854763708483617273348281037909414470771989901457492349376696941257471863238807982710724019574698632396140908824288370328454432954181130571923854879395769282740953547151382568832849502256443928726009377774653221769772810387582242838039358648819411337625695254627831650448171133777603641672390650197432310136491224367133271047856634628821028649499937131473961420136718494924210623298184667825464136712424139677204268735114533022579915122805525210449116121717363583453492252620087408236162323678665743110071233096949307719830653027795861919691826700032066756783368247944497438772031506863759988099392467962035651197124123781963669759706592307923028707218884247849832653340765269225760948844062926342606343814118798508587541964321261980508139291603860120892903977361072288546335887723404544405842374389917511981753398247050796275084646364627447766890421078358128099958141493213830046520085011559526764522474125457804623237588814846145977983055421302337192316783072182754128707501014253816335826358061504251331741247780240107830933383972993877415543857629232273204563413490429477514971404557915590163922974877895823225868480915744909879514261303981311935813574739164234377929242082877153645727180464580537501637176560819215115181979460506653022253574866560270565952585942553277699124594844694245028776245541080950672804909598121380198251396263128101369441315195299990518420783255467531049975146338667532509074501250641204863764722468186947435928421426051353841709226846703172011872777804447385518957513023743785286413716381602153864112039524308519231323663932412773988323598798499920591998284390514339614580883965742958065649523670549716011474414732846851521447573121866893258531166781101651629762407618613068666629040503838855847007707111911326907216441119512968429205189761989866232075841611331126386638310990276573793356173318853179524801890358093274560041303201703061162561194484263701563816063302401941514558146603048250618473667359622576314001068742579971765409532742230852553327755175632834312204335653226428133466939908413211544184060863528675617736816804236308682238820627466074363114581781940302928790422761172857400774721476283504763995196610492868374233544924726511643844613853323405779211831420865044535196775751997376904029825605802935315442018916605893376249059810871306852398917573971891125602254285204366029555824460502433633025797515270522740610101503679934755629189731356505629000130103566364314571923027468277553578486840001169484311375151866525087058145551524751906845171297086297837657293162371021482420342525803282296288124405348822689235019603939683153666902786205588768838995254068129880550321766508354779357951822785915484754919077593420796358591969577899612434103293371321733158279115329499803952800765569655444125721505523475083641890773471885755129266878768392044125285750884737543785084055178228278482307702028706933769505269338264810567551556493720370095443895314066253694783533161126523345476041796977223303912702250906790904408261775024883334739071528587968646368925518169467052849195790367778349740666530018787332659659506585595057066251024216839773447521678095533205965942440226755149086832249474237511818470533208965107039537159713698038210783781366565031928041682135246205066995962794192234660208652936313376482388118124249125834258360963938711795601785441671817896263503780206786452578378706118885840519280110998395389621350418973732751418055818352450951828272035692010792597425386577378416434173017769813180173531216211138303530503362309923790923110903974208015013524054341078490274126976641561491201515627936041566126452695990568789927356199939296830727472968445149657497525358197752931776721797514313197914577118964665332465734197880487581267491275668553843276823131221745910089661563775270171660359740164262268405568038880076385833717126446805907944956175248694361743343030005797148692579428750114483812688951895099525884838733002588003692908722912298473368372467924468201062540307270237824424982882641322020276559718631908115814258923680835270480399536843761125916939532978276722311474279169520084538244833600906953775938213491349577370154234683399980637167463289776021202931690177499398841573799303141709859869887954684122681923756992946622746106359873209491028988448279751990364749283975763350519767793217606859148457456606023455879378038551026538677823052716158892001224967239256950885483067380191062771196645086594053931374992362009194488072838211567151464893674977199667098498729771452014334785734944420730271661181609475748485760318503042286917456161184170352740904264917636445032910718580830999155860213071110473107058471157132642068513092155017016099874656861181251346451650787200086784058520253215427861209642179110330162627829739411537711510054372441935465605520215811849877705288724684235934143144794036210514673855941635128489550477108084490025951350055608565833830187499968258008673835799723831898411356144532815294409332059445678766113325574757333389822174995769333713160382469555963289868271972850138778016497787029465494666239639454032847658305435615960167093484876708265655047123401023964879260381368777962686035875327220239899930593601365331215941197551085784084910849936878400693688665651307447435915116259468379036549801973921322227569185425898094682547975358431305760811483101831574166478821208469988577108155093037979874096325244898141749361372696998418957011729516263240713467242534040902489757758196675023530972201219641898508884922332040040390232511986672884908666511413775529836647794362333139267627123547588132451011177643345465686065715901201031550724514082571541264214225118328010623599268341197318497565195203714125387944936001217631090317032230567708222388367997039899027428107230089997124089451912445222735339347555675313949276174565296205999343567016450189843557983304469774910523716569945066601927829506857630418123127213716104820659949176971314339091731979389302958094648248709777538823468374944943137042557765841371276550090442248004463178241366622662261113121491108842863335541332678454920961087352719717299923628506503097603467494156301815019241144013955730094605071925783745298876402357385115483996034516272526567923551288406350993273814127239709938496252600718468447690067513116969891736346791871135025284233237644274071747727849545827044685030217189550965341437921025244452716994004155101638404813749337981297572674331930056393574460741480422523016888071482966066663919519114183414149401623490943473972679251823397054967713002946446750238377447400544299372823392476681175195009346324331644596615020084637187995784377964172251508118750109158262090620758059197848792057937212302344803321063687118373792366320366917779030661561691957405394758566755290581978500534588529620169409080955277155219885653724363765289654551087595757794322273642412997230155927366101811412568456625155351934502705171929232548535769626395747556420125517323983235400844306201561942292704031130004223099552220882715497695514641120052361371940664115803873728975406792609397175401076561916982466408770970240180509460827436674555609334936754780857476967051090436718103082988028949897888222248736499062524487937412108620638741779826320391258878189283851791573616943904338447864671435707837232653452542586395141260205288177893292112447451907619243186462323641394935397156816928479528660484275874358175067659449514520906552659554682124335085471393254461377676993236144926039897593742627085665525660038193606744571794705547893251159205944043192822011779938307565448497426369432261132631749188314136181954817444208221186100022443014673534093634403854344705706317032413186270833539295643093724098245835054173472709531814213775005978828273026818498233057967672255253281578722628554707342957494557741783646837322279202289350202979436370387119102041068055770003867612260283049143551256492484222550250112221030412372223777186418771117823496928453045095242923746005597546816756026098049407930404426258180923984827473053161454529523337089161659686117246882067755264895595040659549577170098051384559714366357161311294619845278429138458729768736316488536929824932393757189678106090811037227905795447871004977195469205974532587918292788313097097357537766940968037951592529697863212364784749934630688634205364640582723051813119451862302534497360034570395667852648717802377502128513727899436873756458182236494511256628288554667125189668638824539306738848218266093219704506473226212169234253676619228960594364141452301559589510564740797487139347690597621515079905550113122493323839485772779093804999102010466621095124398567299178715138364728190406532030808460419823967016161401232118240313352338578135247031720680445955297263865035928917214361187245645318928928367074108698933743916573493218532910758949887541477662750950563934858115913204432891880466912238421317279138021685211161627181333196560227966483645597929413293252362764685248737321083896549393776169042253816602552184710595624452414478024662380951995451161487009365142317890709806206244699417077926179851185877091315444030443646818875250594693886114138715744718553233416085546681871100206134111633166832699635203982284653370536469616583248001329897048059212768634531720117129878552855948702531371405375653715756739530753763333304659689571651482902010400381751791278275468088560968102644437860328472948643530004929129724546641438823775639231537310755674467935026516038950094277231866703051446725512291007923298399370004274787087184894865180104012655058860008713367574669362967761622098233313150334172732746455094038309703481008428344973127505228779858609833207486590528598376748196931416982947637986273814130207481815164104835112632954782100644913630186185770525998855549407095378233914560420067947601652553083245584686328918573336516519694631509705874615476111264981548715947084631576852519978667002060253552221542505329103510876146815482102173024977565328057797385246211261425047919448428079327415372220394723375210037905671670582912325335544429644390490068641736743142536044017706506504735495809382458340313538022217883719626720402763560354372826172584793352368354114257704578794720039664553511424850823120086357429689375347940595117966856187278295392362963687238667029591214169568994320205391492208030193275475119142791608279174222247515660771289385612962431298728367894444582094296552424217971819209285314203391438678224283028976858849647461558780369405261998429943319549928777963618860660447134475715678670599699364542976199928012217320819609542569561548523060873971275528440869125354960633023337184629441372554441911840455239988733319364605792664179589943425309215479896759961310271520305360261228907099593594240910602110633309416670548482369158724905998490645421606662974358676013975051608700638874845000985792563058989482470952405934544608491233598322046894899776518422118530503822470548055139751475550623576888189065033047366398591707154432242072601472904316780744911943086602303466551897463686840420905255337433602009604096879090033861135832630177138771323752595980162693954078592804763319350812501190905998637974202481244065001580781953618053471559121701651388536268797804724842294393965154804305443761994589779357309928626724985319587201718324407949055920313612604282826878479201828617430443369952976767137168532220013161238678873207147171172227629784898506543689391359882363440845404231650574527669595232293372684418179299590728395188164138087235989884484910738530856401072408680253134279074028205520022226111090281294461718487730415492447817843240030604924522663209201601801092731846577481160432089688630796412364722530240815090131024761163330907356609282059830443365042603118507783883312923571711174840201656583655468365148783529075223054266052296505346705960106816249871980878289253714167723999534504723274962353060974710868980170741889472556927874708507940141866194725549397789773011677033604685684243965427338767083129284089666387200322355014642335435049384062382085372537552885868648614669057424624932826196814039648898168042677433315804798561236084415821166460030093454269694949869554268128535420350387384605972846960207390254324311826726364981594420581592415211304961194747466749675164525499327868835834803435643401662127099523643030783217453979173409791061424888449957239358995008835134603340846205453029823167423074873445044265778596314813035644307275895373602988456250943217492865655364923743880380958295872694218959458187602487880073348996759356299648732967513566985237544024635335618261251870676827331347163966313424499450705444735205331419258981115578561798615741701012056150073164897577644355097373003339526069938320586274825915351733135190419221770525719307007004434392134082127771382427489566059988727383457773546542440048181331723888208610042345507857665088344946262541437983858995455034140348722469059598153321461337490935116549143392676638819298535334097559967500786103001443363106463742365445084652114182225328529775329598115576095032024667770286775473273123045581576897986535162469768424491181472131484125325841764983695951877574870425848392746307975470747049170911437237487336172138630265480859157280144895595184457713372934630632697126840727223877262587545602093558376945241333225790506871312554512112021284780299357464473313786263556886402820712044285438257967814997380374715456982925524186923500795606178730400661458888957488048213660511248680260750170728915352034887411322865579631210722667449518721895595041840469418607090725108793069522991754088968172953473208590520492064923709050686051368293520194012770261717280017902863189443394189704436647767720217100540235254206141041532967267206870228220281290467065692135946139296506449489029332816234687278257631213600657106645798922845565204533986281901652186799122781777827918489825247898788632532448959885001728013035719839030615600370952198701486972572761010000062759300109729886779650248353817721446314419707008008883713502884500206311970983015094459710659731615029538721084937641218003268598556469892249357424374537818929184356004174939130724829274415195826810863615227700906782374985853031047631154868169807515663710371242495050132020033777616415992178948766031466308044350754384893286158244692022484382879546288327993921581940827280165124672608764707552344085746331528603086605267186288114967182963027215554321458357379060433696140317238633098487870221342678804412021736115318682887866969633038482005442513915177080043009334859933911401237389983859112382304938448918798939198790492749832255432492879774387653064739507404399510664074290304591567727551974194955702083399003531114799560699622123980247786615942266583571034468006192605427575906253831808354854159961667931631475887718643882863219855517779770640432791314061460417121120970581520908984428629310336903771582786001689820065075519032653509441621283879273376835526268734776758955910302161402514963203665582992355961572830016570172018257351753004084325068545172409538776807665253089422286806121444456578525845862693492027345136657991328223002165273422380359486933184370411829523308595108320987493235114545692695093515783686105017221815832642109262067965792028338216149167805181044827355311977478127730483630962869932222259922819942150970984478513607329748041888415499015843172232414547735950220847077813823093610459538495919535790282392471916094531366869828521932388692144539473484202404399054365561700446061171075904367947995382801757852218096326813909968282005715654149443475195890859837736137443915823695561875603446913114537989276286836136305012057983565374740178457732882733731389189019680523195378044787592209120189731316274943089379723344246530524178907786747400635686777958543715322371350949368610406264561856601653969519074693450126546239870010578271008009269607187425007880645626110857103529309348263767211856437425555870189925224677059185826779186006840374554282686696245454325050155889359480329991013820699906720099818047023175773384311798127955984522138466235548152528366707190388280245250417007999201007904557265585581749481002812270528694916377935012004810642315657785314531512526960981753091098469139928714768329061796663821455190305196707507970141152977026776054989958759194935329541889848966569174862046707868944584833698397660119910385912400677966233799019583362126156617945163539639157434555087069198305613260587905340941252668190225945193469769037812605936080142042133245640901473935982678272644121318094806503181354548761242021675814209981228408739200226100808944697728059926122107088684871553678893504317700199295403387572225605686958407283048619632529753980175047721735744348036689259468809169345594146848463036159677191292772231347801480050202476475742240241307871854067671796658893189949562238987979151791939793877915800897612568283111811298148491597674693096150032348090264495169752278391934962370687220156964809779521590086750891008779095762095959708300488364333948363913623965079249360552693533415247964419541869744979921501195781294826942154154809706733708409508212306675775748995699820824040208686552526323074653351439031809048270416683576737223756212292864438341650395943342474776008252991566039892817341892074748813796497715102327336690871168574580807180004130588535650997284376923886890221975373781954147132875184556461435859565872713147516536473100402309280774621141849214680282518922707032221967307877719940399445680102398514624054289715494080756063512793288666432590658313710845129410262965382108850488956872537706419708867976547730581288687857509733381183781012321834810845974556070595788224218739232474671091586257384172038495614954229009786080537209071880864187868403908010223144495662582262746311618406533157099735089685336501682970967078004063436343938232354317543380187907252730073613984666257312244298467582587913585948721337892186309439966683295673662957412521247052791417213219825985168799444365756126156457738125280497550602503509675994804570157370464665424343965116959080193380624231621179568768846906064560857226893713305581747800461594829289206230172725958318744322693585871910958160828448623351572519279980492774656616868601525257109682113142486236617280948718856662154895214644092006684846392501591031117744070878462864379394423967400224376221217187139220080755614034077890819405802524423179356650228407431589150695304695864627758145378111238939736286001784215028678781912244486415971608730811906741530348687954426413552464998058437029655209952235777480153204453898502527135479211432521849743346366783730310949823679135347298633105655630734933205928857589351262045970229851885659865779223235842761989061811384304254488653214642219341645100794233828012098801936577199706799482903803047105833138520193033062063914113511986465479086970329884680376966174671654926796145391730531416241293303832391440378680278712684935000938519640808819926867119924250011913776280475547019146679719268647333598220755484689598186538240617537897298325479913065193717224339599462897300991684951231922362884064533151553997748468258234484526454344344050433331769723356884406636004505045567195786743434755689202772348278170022971402372655004782495522522563553850522285071219178642861383253988361271618997262680560594234771422912501657542337746439601242525424732226402242687729680488703741084497043446105705526017957670395376071129489232733704018873922158706012000848764008844303966875763099102989273333984170718057630726113663752459195290304672546611437360898251831500138089795774863672080564323633814542175817458397077103716118270184144621121484717762554820352974215223532289249902970788816305268978185974214337792878746653381261625288151938093706826858855800428830287015123593255229464676231598144669245579669897531985050482809467843248540149721485144897873187437923136424630239347895473305444589980060600309705537603170102596990887130317671650505842767053657751970194395332566239495183702901095473175364768508921130388203118233571708585133806985000365122177602347948523495908321312098681777549155355252724996465917688092800172758899638522065863354785320806524196533704259439905606167710156249200078843440445926097908294111602772525826247512523679499652580067492332038506806236086461642870029756039540012443267146736126878025624142896622435964316155398099983233992579385638348186153706574122252825956648253235921776553911271124495497770635716505779447004737837323490984575746385939162158771704017035079216008898999058672193724311344913602743031243116805836980545606506830584739791223370639641446255695808403691938296991143064905115895176141541565923231306221754599408736220695853730758759861865505615500731565365208609324100278636190091682443160290888933400376913649124254654470854943546774922873932156125602445802049572057129549550457584710652568500504078522863473222914688255347520169447623511153044580831535478439622646529651558882177331381067762903973885474289457795979192708098765269597648355977962728982205798405996169360835640884652008719383908300875132611588529424324356173000176892022555623749373369193764975229647110042678774495332997941811145452128654679298773221376890041781747987475461059962911177137366296594406837400168304405400651444426684327460497972543217216661473571314150186334610021109592490374999238983582617158900615877037189229533554695125045038079184543629122709831463763763048648345111899048392516722996135304970736302733974145251046605499869159652270463090758009468590861544970788385165453175316058645051695780268921413773340578146760288877743558306730850828871022200315403697469371030422053019343325490500471032572023823643502640712158397160525793101086500153589432093345204588596136361292333597741183932109283566138719158134809375200292575377684317522220883343290140640146588129766058911256343960961208946439998727095673356472817812655915058015812852222320861378249909968031792342781280264346904142633448042959869635502020537715235292086331638360450114228422230503249817061811578248325182986604998124960499684844056060291676987420376622890529112568138811481362859771305312206245101121482090725022053844659726236882414628042168267625603334219294142004962572745844821648610922320813857056923487489752483692804149198855740897740857739031523343932947702130973643935269251200995696302536162254011546466988935716118895995028272829398498582412594392748266378157322722552844144960908605696186617752889518323599356823225230051919465593732280647547156807379556802904616992013007259210617747579307600183219514021032816273735963975599355242900053468263533401845140840725873513603169072664097544496949156015417080817971782156983236673609756188876550344009047968285215643642847062618272480311525135919105139267160197687034733902351041981384298226132869362127362589018782467509414762096678602137297415256028720000702174966563607891052230214307788534213055281536455466609421530619951558406585257212225865394198272157103086867174902070839133988130299652483389668920163124570532247163284000565583775357152608430579881905154885204001632170263105057845866116624977346360709873221542164602885507582299308634861076265768905911698174598013557049954281714796115049216795852751927153503722872802355042106165328998863608732558986005066006401350574467391896389632383920215854380775412834654328181752599516030495756676501128266756792655960457578274191125546598151061334831849625626661019899607207894951106437301278630435574146463955386121588113098679452094759582369125972877714381773923038230896281068163298832928301201189304068052127281711850369729796230150778553524682391849347862478284601274379768588354312142579447461034344262956017736208996117532766329955699759213361348309878444888847708919881093386420817167474670732682952837863453429589216223349284930107536462717285172950597905755452935998846285610025127680039785065531547576357938594596693398449540881623325856482986815586002133918755504832118936015230825454778827521017069133969377969436142159458088685678618166960835770973873097999376704382620786242833894637852952182824164667891841590861374307373882084269487092237173078526262314717928211897289477551671263694202153795624780296979132730831625487350475771836572564936319595109161358513280909148480204077817603602521418224621651182929460919433757370811208066331010876464031209220197153167852735896067128789051552351553373889630062873036272239590664713563225938512545969855206689010810230217999379365458009958153410644143284991561104671068013569059710233600769804835701630379347433468584486685778266169870021039470498800143107358971111578128523147165409932445703955046283720740675017766361842470661104873417066530943377073323985052618469016114910670889332324471446289697507699578036172339014277376693377590969180822709669801729205472852983054643340886281425473156059223747437350460377807379241857293249077795829225834696126893220762121298900171567142200648918337449177400575655231763683104887486504101678997210756501255869772592479696569682210958620455560933810614297729762573064471201538050404289249720319736470904312261984043893428557402365365846818953862801688613904436045071798330276564037781992995280044341930214994806102643726048090290429257839209067210386391320856653157932833759028502430300752356483935890326836190511159955519945165640539524604255730058138229207289656269591719512524838839123053653859070736593677904397687168703876282176815525787105512100457621807996088912946440356032657174372138761189732147402495572904103967644884454193607962867701232303686946491021318818446488521272393818690735728908188720202307538638295610521521491290866294709248487083357654625103782677033811762570963661826589691004579700381476578726981468945238279332350579447506397660781064090000318280673584412930599782138758058057349326546762916808852782320727486016129437954622978188899574297267523316490707302021781092444283395141161380073672849154493465430900054434267012683472822613787427817214373274034302520697056012209135824444114894857837457586080840872253989802712554030977711626510164888622170178601261908056500479225727136589571622071494008495840205625406704426569610116303985528124820195001278260055228736486081795647609039382127198051182471256355183645509089793871798723277786124357783965477059784380080868738714484085571579658472113955945839231776326636399147618705615512933411562933866226793251488484359304752608791595050485948139810301364435043325693307731905074125636295034753832522945861486438115908054046457240838692815606402275330935656954253539448194233311696499594388009238364298311237571956841394181180147738391251748292027493860074405518766407970860833985363545962702499624373100011947853892103652975602140064062622527462669382301770710509364146997106494314716463151226498175014021499761088040063246179595427023198808845690498589316199979542738689018613534758919702112949738810162340913359018681200582022855172043448596863110113935550359343920726092477427486891908244558135796047073149380603254334110911202707615241684622689707627480711833715409856060490501042481279883185920169091173062827996758416840523873947155585149064909264065839721590240871437656034219380087365056821352096797619179180199762908253266207951371594523953739414871212263272319842150260997059851333304236861597232703529375573451952809960484183173389344508630619102747255509068835001966365040120446101667913185358295077957561219800544024623545317839666692528176065947928872887365690131041104502983958517053967205448407798199707285256333789156410630396512690099512533550459421328125282960834545685171646730706942569154495341425655666058771175962150498369320059460290807324253138180527835133034975273055619218324636913731162255125780778082784761652864468159903702185691780545283255490337881567808309410904381653317383657826890684792788255414546633077856481530584658579689600599753001737425658851001375052846409420381895096777435288163358121290088045823778952564874161604927980395788799114852703522605928693081888462140509244608707511069722575891079316959824537580423493623355339971649427342575151964053183308408874409927123508798491873602616842261035152224726421037982522393387022501890417729749853989561333331679304363691235514092255713395952073219065587211935444910761625806879058537983517105768348102693879219754703316980483727836732986673508812263233731920213142084823831314580186052693885466704445339929274761307685300608795946652085928177172387219043305907919685535663797591998407937544210551795193271962021269752729818379994932032428466880125596075868290272538751218972688783183418220168048865570354889387731762533630713953066478941737071172091647420842484955917270295144044766422567662562598947358916246521807818664748181254361130707326308748754119109989931755037184379234180382059041296579295859140720284981302166746433736811534946591407601345542111775368122539771607715296339548809169348717208069768291969102153216891319955694255787497730254828915368579809700635073205065932136028921630900103151126430344556792695632588561549912817569119132336064257452038085944218450925825365452168776083455550944778315573892729657453785375805670801623939065031258287016629393506271770968760189089733943985694906750376349351573731093134510852965433203814285599618004497610921011698408548926527251499812200289638247119713208558157695512744839274685072386298992359407855745590455585540137340397187612550033403697353501927617841816006617726074085917263007234253312211777103321512217415169397266998913006525546724351654497130951654364757544108561775151047957966788389194241357894588067060789752578483436440454647772142793249081591445797581799820938593773416630040652904409944314301301854986789061463860826998957367220175596123070552085592936238948584956199416565453624603183847605717975311852886029501769612309576598702081768691503023825396468531141276003443595021196720570607127975489083182986884297859864106519733104873508833261211252023528238680071117603789370769726357446504942581601289688715181906168187551616805077228012577539523563716557246228474794235439761988097284267136797031155718160251492423907504575744816135905696304221504609861124462271396303421226429369341756529848514530027364721663138264905660368410516893343674795358238489442819424769507358420349076401445984482369250766958340933608408569082714686660832614231959215900702613444048550547141232686216260532436430543266783187244124292052127343818498805324635830712504701389452825913158166403700872198699118333716003960215769133863971601287188677295693711874970705051948878229112098142795867261298756593593793087670138708531855078026476052818246622248305254852047915050148549753426212535682812256151474826716405187451655169037234645365762591473287612526240301574619128864202178746201760372623785694679657382283980768417169250664668403355384424130021911515647654595925650919429358141349509201640150807721166371510545278385877504766559321048713145290800474436123972630464016638174641638139381199851292154665333288753219316992083776125369751761212094407441816014895960253394982039674542420716394819709656964051376847950109909883598926859522539473261301415492051440368554415045347357248115104133237047822178336092043992973586241988215695032542245753372047048477870884405051967139233033099155405276267645892742658325392416205462621057051384811584499812825447986514580183512434636771197979955984518928201433506788642304193195231848625035569020483663245354433662250022304744085138250185951437037770702389300004156353209507066428032371951605434440336617874453489996400278019835396233152626687724982548911240426535658583455886235996033680672408598711339282670597963192381537117650047630594250848266722077317281687541172724227344321079959826106824197043247616740960029267722281329615567266765265766615316781827693298057809500799570446229645354865652605298428839023859722141142938467615482835015961630077434796388589925864162792892336855599320846125014947950866643648656371597817609396165319948840257544371634122072611559186097615102097946077271451632831546964482907047489841877942578265614551783768375670127197389768020538828635398120048789851303021228203622452856792524731712759991846329352098250304534077807989600863782523711769946658654478548654851468110318421807616261220708299627611594033924555979671546878003072488091983791813870467873625417878116324929583673833996042424175481176363514463300931340077189585088395503335870550070082393093563867197468526645975394281027564553377076634479108384296819124610114534706389199332046748363153394643868735841381195533479313050544524004601860514586519676842229131493894012729738723524436120701819274306524185261566786444865035298293329591157793242327459250373047900610710795806072871330552291171263812724349222399770031416462596646271992502032187672267884560756072424631958122307171585532097063313014181777502200583920972832673277885758197663980338316919487825618533738569871355957752989375038361445472782104312122542965960200147658699156996960903633451394032579800168947229916279711403885781961972385351399137787436524255189685691066409106952381410953325508218993853534549020935283423566197882307929482194528777899257036246130218564513204162303536482756440199050425631814724366406518889887971544594691622386908062804024748628741617862033552049105130372022931839011224210599760829796944796410975061994003359272334931502224949878209655097735879095334266121768924811905049924528214019807023992079876803020455610025402634640934707893634622513900708370493839364712805984775991197439228136718759266854150072887319918655586093994449835198828906296991231665509633324204495052207392303147673312231909929496868006455156644266143198184202256006648892297879453480532394806860491309604610278706472085053287257696538394309898964901267954397155170648317733826231061378991783372414507289758926620498963577530503185041799349767375108025112628710515363056668565781801369032945258469539285331099461086551134136970319852448537415980169116676109363314843850116831001622455285436400581620439441298241607057202916792242909933764858475690399865148130268535551759500866402720954406855418493750295812370225775672141846495478362393819226745448496705813713727181976361541528769278893304887870634524123333440988330663777263160040786764194036430887147612866799116779876666671562384837619479324760150806792916141995021567696231165633839309115984236443397476491427137565973713923001650871278492719476780806928030101343139528988306656884825971605696830892693492042985213762586594828374321129672472726137657844932751160437277630956786890918815926912870814114675411737413360046840681043077674686995033509570236653288424025195324260489122712522327361122232749632054342024307182878004153346935172340178236232841077567210495706864466067979618829619181377014250404577361768044065536663820642658179839252371383185373700632137949717380441546555122952753713990942691747432180870868961482389959356675032970755614394042150903780560054055243399030498157432783861208777657975339411813093247360694028320128828942009596303142824491793898934108830073457608728625714236930934001607404060428808215759370577127976048114164802992149177904640341891301521418317414419767488586756179865557489981288341680005461359968667689937409485537139195485708403134890963284438581572524282497611823490064843095100817044355918633882828035405523046009095621739986389272582662849286452590941382419594863974365365539515743011712958369611103755212103951483110133598051297603797160468477101441502874921238897064354463428818863379084201837920848805665143796133022319227318671735193436064565731956972979065727658076739234636989478237998360335551300309979598517541868973325880113808016357155197003210108809652050383959686365851608259920563037694353952615104066825007388057158140449760827498993244243993184304736392742168358314818353318482857937429883022925003227488241791552074548503491676770713378635767148460948766413453969992597446035294964309881456543181480502092154336646191219746445994580402420699104415927409997080187506735479802457081039329736177154919344982850839966022990160838091178953924189075648578954784025129673106530790510052823821354091283472033505885112953396931499555245779059936335618738245426801672656043780532054973441925207913174974610582341381362266220543153679497820410861024573308033754837922858185278547778133870735067321986677001972837540765981989969147198877898293063263525894232742974751419502404206523913189474822959413038444801823485178859796972744084400399124158399058777116528536259536190951576494874804902479828856400551611051316624708212184344620276276932318933717092980655772472403830470820626644438231208452228645891433197065614703757802736327896761790672476630490048840634890948835932916367971314366682825176061627706063743974850927764465674236184522064897683216225661706748101608094669335300582669455865970253119615461894031625951900996402074760566023059313224142834041191565223392079071955131645126721263984710948496927061072904550703952920925320906943904171886026225415887805385844793475227002802984087619451500584899293355919796431999147268418313390174887472433659329163502114389251596267344411744775439901102850056508951505843031562496613911570201003932623927619228326996797586469100677123286607207361390794271547412725155990710220961634161425118356089674392409062988170578711784838033415987336076530234329690628291611461433030308274860475851027853523117941219927097938607182737218017249156742512701313906610561132546069786632104783227911822336119268206952057220261570166084872517983634992402441995844910405202059246880289793429743826614802357519939274594596712075255032832266922559772379954695554615780497205991802089226993005314223660611772465343738006489325752116062719632980510783743149999961556361073316508575781412305858998321475861184233112724896398798150599453316905139331624251912230629505241873297120458796671256363986710479889520607497964937105584198033141080067699977051616448019905454116190434286827202650983512244902213226611897306228277777084596068577898094101231992202097456446157947193125102052668050784476498013191061156600629384692223050532801492526934510278552991255554001308266748552363342600039323553017984811037350976343760884331776657288755949540987614617604687317035920446365458304245331313623355614864257650336694168553847411866602635796596862088383044065730615469914368064459091476432478701623610217930296088460131104139273066754643837721732840123930334459004057340617761680168311611805408800410921375698213765082897390365813373658971883031831153164267065427870425695751891554589886374808482604335683525365783751535681810640841466942187682488532178655742358455157392185638858523208322438619143113396501320330420599768394638133053227868749512293368814122254826986396323070891514024998977187548114240548839283950083299830167280817836991894073730663856495637439294859750085853035167141815626818109951880649222108657833342256190910416197125453000970317299234556131865603884130180877235836397931721280329871307162477252521285751616558866784723336223422221629132621874691437394349512575373974840840993015678774739818862007156863063927077073329679562714924799312324282557459369159383364216714343942327602536900097222363861391919622525877276268622921139505370380740619945261671319687476447494654238316729102247936367186429350885723523788205990618597493366544830147970549803529595261395652873250074101843502807244875563771052343876441147877114417129140130438744457283655919795132221144203488909652043606193651778193020910494824778663016669133997370807366860093176716287876901011362428367806821137300268095415143349066204840163229422368433754741005425627274782272792819571218739949806733134312569578415591050108432512722855595365187669821547923280363233148059044311218926089965949340358009164214566971226606194192368589044015465401507906210645308219910018243568745457350988263971660822466712042157604314185218879134109338488241573471128495408371571270825704785806395020306623313361179029491310347158469225764553970786687495796542083224093900222710923547461961740834713139787094031588662739326375935878401822111346196357367328850634464151259073193469663216674668412891707281506258409964304113210634713312353183579698051221740582887483511077451838234903371512616592908461525473368601311073947721159027247831812040708519556496540682480443967588650256135059158832973049794850769126556566612593689079582354443109782177761922199625773807218280277983749066077918607587875787460785472139788706994415618518781759205329898673496588164463638288395383331639558229852742351100498138516849004719214648000624749000708702966170777631459700862054817895472000485449933865413378342067309801744747261736600694936225722557783895874965687268577953788532127934668014073527370544554861797982041698274591607460495003082990736149459293345236835279931549276762169775071972626317462064545476621965606441353508957779417812346813737346903882246896738430826435221893777462951806801392888980148549754790935595767087044738066445859957951329347152319165545890385138637833326220656060585482077729119832717653928360505469941571904884770758711695353009100854088663744027184129687431821464454239069132688517484266313898388290688135635515404633723026940121878777845520843843527809190392055294470992278558312146358698698074728516628271239756047660187108373555509693074749582062274589131963618139188997137216106833748727260539382883292419375709737671698446796721946926756366021982150637768275530082170786483731732846233419403285659058528768664919637514326614389354241421371929931765062591240204616524124462505159554703164365095955757167962115945328553294958368193264643166433005426591721251825688275027300693617298918946191899979702902925991012484505683348974466208186584074869647774056837781214374776041269013823290884953396831109581637502493664186442826178332069109462603053238556021103719572751891381339380134107138034576157306337931826280436976945204521327538877828574161689729395492197266608817125730726505750134387992443508947731456263662014942830497988342940615528685231347690155797804185480721153618710249596943661763214462386558985562059607840723679382552914585919007704559144770862562468733457773533092746462652059585512833923480395028626756347719313420776166607513215957668532103568435243399027409431137142652195374868313498266257457816511705656921327569609072110726671680132732735483529607925002486520381796735506800154224164132969944630255721698674009269152145967751295241155168073332872176876212720717829473308579032566668120690608785576715751585532822681120375895973340353247156037035377129533417697562176078631757631965735274391137841426272648704365257846104303847576846425075719109804454817810158367026737728610919473534576078610786084592041567601120908620842350408669226700393369954463450587741869686100604852449116347933112311091741091600006970653939725410225590529837685817313560930874892540403834507500726642353236373378409082794007867324488705515158772081982543596117299809595628729438986129460031591836506011402228349928457816623377597341753637635699767348633754773140539917664140565932409964035417414164145121335891125340643047310524325810987679505183621050214819758690224642177451976143475189835566654360958161825817435017659954361485999977070888559923726762041880206167431155119460370262892564588320504954709197559570882356703746425727069237240918135642871228959024776726846666022524582377209356697430103435954735757430222958101898404297763739973224671922621034414445230767313976041482969811321554097272905792132040832686940609949997101260666772424725888429534059530054553142008598597678320065113373787790495991035351889470084522056594088115867254617815741295377528056081753826398547667087731308037954485260852407824367055238999504078600801155639875035709610414155280077376561936716138455601433896570674166769118336704108900222320660354584038063279479485846510866988029213718329798650800858611162076997312617715486113470104704883112115612395929479281794656043754047079749126569702193353473826497167124886351758710758900184663252657059129054006564784997630274489941145628357922434904019496316817511589499460460067427879140107071055740099795638956353447565827761648879078378842309831852729658645866474413450057277889481620192481855686975846728094355917572117831230891249798600599875638271850309178323803717402379621743941367292751428970939592146961634614745424386655016828763631962385285591247568622275632329186158610008837674719739425926251972925748264002946385614230268924842620927993787746401728644231311633078200822663169899933758050399176775328298789073905142863020969720164377607713382934566192532197308317959180431735403398602928507110417326015504509888953584897169522956759764538328891391941144542459066201101976574190466199983617565460808826390108384258396819521907440063928020714955817149829199429981562285332085171009906208473846450710460707286601200071592053047647710098488765232506693669260545027780104348483912842482816332159933682189423514253537759154651731949639891226527661846446399046741754874712995108146931018807921863822468714349902822574943846636511122895951043618141432152484362864378285604672629393079524319603895979608304796063830015913387497629717696476642527532327771907258755185204756354300456374270740623143259199851052982946212983650253313979556249660978366604581935184146698403771982781794623648040171932382970127052371676457674469666774045539182227974970506623726085632002310647902880741467289554159153494003311750373045663734059374330840674819445023204906145379660241611697644869499804744842075753722870305273718443883791929350521692644459964136377420608698206859730649982696830035674129898171742844475718444023354366373518520585200815712744964582846459356091268383771216405431154075973105811379600494394092679520049981439469947382405776957018224534947192702708001040780836556646425547375017903013947340635404084730427618776745362417679458669446825167257850629972865137813127076843315995237548420143034276545607513435375562972600572722661360484223000723508471873876741988329856045563790767719256433820218764198337560208650299451801208330669381901859393572170721708931829301334988023338415786854868315812395005660914073735064820351598647332055812694294517948468132526670801865911906822273121106418574329446427069688653102861393786035636577079386598623776080810710608521875865290716089114576812709221533546610511439636213017859404166369826796504877170187450863018610184591654438535471224474715211857375719026620810834926614778095040029033564676557627554244962968738281435221636666515506034413660372790355554517872091829522159299171726192428181696477789225357564967076964635700184041711272281258367647270300124345534141656942167572751487957549639137287124989501771798930872018102149955575911687366260657733670143858467050087897327027377218672655464197006597257996453804577404289757235661005027351544749107950599669118089439754399269531641947014345826406417436579896001320560235585646508619575428312559671903556511464588854073576088176120665046294427412791186119980551572350187486660472232681642360332512350510187305698427953754203892514257159835268799082202365756610990135097692504027684922774386741260918651880388459003962482845906770960661662547195210814877016450953069827476520577767383081025975649166224214532262248979133716768491832466104790921554868136086731924917859178226045017953930051171936794048444610581054597224970401395822332598847290414251087627057204124660375677590157930478467142421666302331324764531659210372245424490704599241943427040746273066681957150076119222490998104529685279774821048423278210272900158611832909444838928082035044918137628442683638906910619643382573259304596477706263547571057538411930642861902887976940088128967298201772459357151651817912490301431567280719859987032996968792368859428965335136578373975863126317359622062771347012790269275191851999021425777184511152407978847742020131530353966642101648191821826904364971903387647276895242030205680563907428847719169449419046444083025298774903802923453422377702608447744062900963458777164201736588949285314576498916251352167390069158664168964550055867910309230617652767346483151011649116882486854997972192602850005744555516530087139445629918679986193068093741630519580314961835656598714274623215635534244522392962250639599644948095579396007159221493054292789897612389503260848335100017251739127606560131369833831276432377497726411574982989428214721296264606701086390597012039080122482583032890639052194674795166758923610563616502625917035311893413939192882176346678449117247038119786858169272926731932759564870143008794166721785411693612160984151036191448652134994699374230821474793193591228622686736260202105428459347268142701454244849922439838314408908719810035636684703136717182529809480617997337089476402580608244767099261963400694829313796175002673378707971222415708498632450095894854628572051496796652433517832897883018335905001384620538306176672634285634812689021742307685276443329096246117447638354784778907214142011885147019539499088969201662663166815271380334497660025337599504257345361779048974653754144371579540257063447906555707466408587021673151665828426696893274039414803030986363444626960549262904817985048085992878974121029916400706718464338634424440321344049554896918774581775977607726469257595321816826677622371743324304609243121315061882028721823316982770448502355706378337141821663866059791212473759914946314502853236866237022174845153995428329938216197373768194421786422387441979458447868546200721659081323303339892824021784671893535381665702333283190411572117285089327381152714937391271334222170381890419880171380619240822428064327420401820006435011654561835547213748501168670799722082739528458710439627511773356218007649486927560840311961226811811991757741554188033142563489407450291677615785013920184756757495584075816782517679743676153457509980050828850741865928670760048174723491014170861814075549227468167308946242137868412193207879625267799787139479908754488513604824974211408189510287077000071429195226150769066086940272873360624529667024720961911560973380813586189035483070189787992739262249245071858821369115808802468664266722674126600743558064989772047215678170228027606976660605831922590418649091558557250026182283762569660652430609681564592479860965705208209826616754676787391063628122697173546903262777570708286779267947893604484393680076973133256732505672778951507989638798595846137434993192664773876407588976663446278112840678376846116794397192852396476701006889328655444527722935562980898562672638716335635407369337944357210786955829046402191718041332234506672799719573204727348863026563559547794027181585811251082495139777011770264577688871733084019733934818733218272746744193468592222897861843270650318749419887388486720139906836671604732968490945712543911236937109492981198257451251668297475497340286232988779193140077846940125084883476421099323766699796821257407115049384113417673156812604832359686696033694814974427050331992045636903601169068743238950779418263727715958911313186429744295098108650304317531016720155167739235436392334968227375352378170939552482935749057645763587514672809183825698958355563730919735655192304808855671468081879898001520370153749503242188090641219465821002406838902439182669087377400390538922977374984781658173800153828510616801783850461961587464502779164069473642948805542135545467226197773457088817836801126612872069505444272868768925135338358019518235910909983777212128902127930539865572311362826851798320524410455005407313431860752436188680615689361766591805516700682226336706750656448946991938199099629796692738416367920826340326989562137304358084574656785209168396826305560376018514385485711022502160949502080241609279582170933214552725406930294419699183790453955082028239185166556775314987229731018022929710916386512667698909075928464160879579273838840498069986841769629910439230526265375201859356151378216212439119649996307915003740599662943744208679023722849040099048507949726163054614862309890196064360813817467073496450715800439177945549852659057844128990225872425238125277088950563253546443198506033364628640554694001494044712428911594831962714142208894229314275924517571205466372056836510057925984841031838956344986824928230346441587837416290523404088475282351766199136062011591529741712230174380707278032638170889224991798273476956381473277980568969949169276165447927250193813578938427902393840505778234279619130211163978093010923545101951855643587466095865577859940651243270129674031675821721449069642920053630096065354807652304858733837858486987907915134678651789405260135937063042818460899555270787115273079178336002486834759585159477684956478342353819796336714784109048869865374084737055883516017658630010325142592429064412652117384511456826252793415844678093142802543717544156138354428423248925442259533451211149849331137897587350796928180275231811777171873524582998790800312769718391502761385432146092084147102643190365943026459074723720485011868873561470626593869176025814189699242600181909434480924715559859320708673096417085950749173518341023686394419131574605992664474538245935585305324391240005801189688747512537570206580909796898425836068430288491087170327475670318234930995550844845286931131354509877936418551966538780375370576586503284372637698422998902736075858624662859787357284708604642839569544515264875301201135997426491401692411273159363591314311003533271705379966833773880987057090144516207332710840657466029087882029792707241442246844799903824018240135013503588540882532093876571785282975911031161500748151664613269879397269837304104427882165858140136447236657471849998632167908868687953348454168394527752362256822060058931172153876718912424987596610992321795795012252868908552361740211187054893518025115342114410800382589040953556596903890897825600402090828102997755566799701650190314504632703103906422342301877896309290516441087455982003824987033649628045536636593277093822385724243468144358821348041017068741946368751000703334756255102498364664723683954373771818579624243262585588059262947523193827915730311589201877709618061303354341545259756334590646807126875311375123332339213495591298184280935528538441641919315653274433946923378536142418296110801954878367647198461928792655386962106767574350916541970650025929025519794414854874558242215223542386866922140889882766959310105771683308456351930327187648200558528937861382830146286207701161473403890149413297102757537599279970363137894803010815856670813165865524344377547400984589964313100992104573767365055485037019574592143714414892128660481504785099025147792439465442727684635775330359685771148486832798252073231420087572335345282482535389102873795097327504228042384642144402157734189911425377877778473257025984255011435150531516436540686807331693191805550943286625083827872035562345652895129508325783681522665626934043218060707390979370855649330300541929941607964784128719887567586634299410042665725948150779643028830567198659142801659274697887296527208423519062555001584084751441249849163583885936207169851039542425973925348109703449863410318276282786897614600020380134241345894051218883090921660712314175147170326412565595374296838524968072556830729191285165630633730310301456509461204566937393049226731732059358599001431712886597024712570955614025651155735784302997104125829211784065844347605757182334275932586475017493227312570297752715317223297936790937033665089222332015881279368249026376334065531110816356253995481894129017985050488825745479151869013486468546218126047810164632586075688079974313733595018582735162134804187474850637884044177859248223552555697836799966055435354883313036756031531411063809543399404070327655027999212807758929692182638488334508023914895648160694011929112613944723405853274022075888901091191794197858006891457361182435364291557426637423147613650181066156773059101902425409954011594271118414871565983118888496026693692821157789470687241073573739070685582420701547032703975398244548981283836306509179448529464256159769696775225100164438032620084751145185607256512131939453676747907454629079685952639439442484361122504782479672568170259199190555016642269606279381655020674744072880051918858359058507267241112059346262543473409482165533754950353668241127232289847176983953191422672683535696093737371746141105156899136639467021725201334651201781232751529849500376110321103590994856803001676036073531069009916071265317927511856010402191437870049357281856543553880514395005036702489905225038922686292444448972198957484888558993563569374336308158461838963002376436766907009803939246227407100127514210728839519637700664143549174186750472820862008106007613702389273791255073274278337901460430308198997704352736196202671146974859848181821341912188885968528368858661682552022847911902039093764301837489636927375696241672475845367508001061364632739472939740394472745978075335438820151381622230378914067447666386570009049990648067443683919082992969673786390061384790998815243364397555364655301285218354915253242931132014435435907881801765136834184344955247881678092083482203682043136830444243994927489832935445019729883991204052193586617889536641870591581913056918878757521052576538929733607450690262771151555682120165602453013614011346736174116199716973879758446051403409489013080218204683220356865441536562920594303295736570107523930245825403704629981872594099640767415670375044487525706740476269284483986930829894442346985970574208648330950555230561412151249059802405011990701078561845554031331324144891694117066991203813623959207976117127697974170205480754520295709599864778716102281968589481758688850600028245224626663564814426111148901457834131202744543046619569941215993927363479335639067003769413996556288707030835813172627242309085889328865758962424739947643970614617226577692456722829374876509474327738266380658306741863715375827075226953023243263307827303281851896675772046801815730757879765365757830334776069514284621992822985505723694837878457936053570317456020793986520530437644033626953310790736852910536626336078948125415867220697636724717309414917558665455619664233534499720450457762837162422840146886798499230890963327551517612206249452201027278069081166966065264795962897616785886459766546458973468116466854486065648387387599788271966593553674691290219313591573744672740999674023375846893336924365090114718959789483941012748289502966074504458655694530349456991717194762042772920108455559727264256789569077601279043055659224879030093023852731037005317388971918185040270499965460781969925407052465872347480251273800498768320886477555260922746220496377802069106405769109838520243664634302704912201077219674350917629415999570371116517892645717850537012488323771859927975340148576542552062763391995814419736507131150020668889784473995767312891765889269714586782149194516986706106152354754018709084370365961054399893243578652261877451653591674149507133037399489721678699766381532849907924183413868923554817540276219562564603589654781086023520048159695987657465470116878156692889291874645311584907115821699241797643483875746211276618321345802310494062680296696172813548436110562524758092325421101481464426923519600233644705415638806936677936608401108917934544284694386332367742844473882691251571949365310677293437755516052112172336308379640338971842659087398851866146375888209712347560509287681648656790758547240132702936103135124354636696827883125311447513638637134626765251739085733847760686110217728044185497805616590747812783681498713148592330733137747572433629678434065196018462580743552634565724911667818461433315984197890910392648587818845512351209214415850488198780394908216150182759671027570276927550854519601088862705741239849149849656617166416286282293660202023433389945736499029223074074412929561509495443051311888851714645678807249124600111029008231161221061800522238698005090307514214571943540942629125893118781160332697389785770367551059095965480647514784143906419708845810482919968815116555222901183658236182943084571246541712970694247100791483701795948956101672877648221651193192623647473844660997263477822669203366998242892871352957360638624237376444112515179344186514873906066709534452132408544827973304346276355584434346612672164374961610506024018027877525773052525050619506227610347357424799806953185626688511449833598105906095288778837056126378819066090786981305807385072763676090253737417391438053650629448524569262446122879442414579824560145826186159776557458824512983954647373093713021378249789972181043945515932660657833868067318081440732024273957565909428967490667968919235720540777512629258317937112268677999334293982180318954110325870457904044969142753717701056785251601314896707712946545563575010146555013684974928286824644303403169513401470984289778805355622911339148550931236282148081117748451474884337867556569948934104914542896620898902430561052206586552091204735912795468022322081915387770949855921751809216135253603738158277944093343502877876356831541800451527607614647264394000271204033556801589869619811845057105749195802306126158680283469442666316042887244988667463962697665425213392375226422482086918157185130221886710463821263130494147952162501331666442657909534820634394365694607692471098950437581818871827515786673939058499881172892624026326273011458590003399661058570727882810228342525444056709440428283608521320151481621555773465856345920080205717178177686173590423999127715025870716748736242572075210239486622289751958402183031781652124312611121706012512557642360874323800915219231280528836985169248153754790832232403624845421266252124039523801870881002993644546108325756523571358715805494183650011546766002606780944005567893750666015802951838228031647522910815283665512649777406306973078670324167016673116641963399604361407536816876986445809246226905815546813729266825212992970201828103397780652752353834796647395386691540305525933853465182070347267420833600610911080794469490073050526844308506683043636228130055938962088319274222941985712536871712779417274467795441898280453750433986087218942190490932862180659240192799111490766267084192356777120523065649947343839571285437928225561314402180858503434888620761389683033058977552431897608875749508138499646525760707115334491342758333090007253281792874314271748717024025484344565489687586799534239734288286603688592088684666789382691841051184064681749117471441278765938158560356955010328630950302268236068782427210844795525745924039893263526995223827038891577291500319057310619346413826714416099123611385265818446562802490607329927251324911576067061873194965222886371623743748249746404666267187211572651332714163126266150036793235680729076420475380901420959616952196295946997210064237203032093949784239649461674356829625122359560975663340780140706791815500992474759747017946941209261275244449167375083998764574084693484965590649652107577782463149895056563737945244447868736539742492275912040387557098556512888582426595497448450598125648051113683221323361467009328302703933641924558640013493867381980410263040424578366619890319241400915128848862290552805550362043621626986259224262714073254321629714181967383306875037026557299147293248339332160887445489128483626547098185668410848904494782073358261386172586694295655653560620496152219808721700328986740069120533601818297396453256787412988732024454676802688185228691728916798107247292858936943868786051347729399166167500533521683289206528412066589314466894133831627955217656147072593660053050115501874584361075593324481676827726406882583767851489325657013776939705607376421328438974260480192377435329219370226877714864939888336933586884387609503438483966314125664907505993842737040791445900843313252865424003110389945536131868169479118155377723162603905889224589954957424124595033581513659816809232809215080853894843043165858799534975775457812705793037554015909968119910327749972236341472592104895451258607550856497814792825985099032509450012446971004939499686069769598046504361534354452496990875561297377658459579248632288497386435855963856298564937941724863911381757389299946061400273757942952371860021159431195553845519843466066551991900520451147196436514848502993055927816963306068024905814665545331276785295093305521759662849428495370706377811315483650982728626355449184603240551109119630170003004688499944520431909986735081012218243414038216482672901146804220055221567422434309783052209158180205366006117586378646505405357026067801786837176845657995911854933502055989893423987535521278874850709514805088003629749319412497174720062595799824171505388943586346562152911493716146181363187675121822712448950001647670363138543754146988735797624912766169733468547734044944900600263884260193861838442767135730574254038681551873493437160316311303432297863559686799256423794093347042521283067040720000809870074715971589245396250477415079951889383654817092759892659433479574088478302135853450145734988115907799772326506255749163710372017281340296520848299611887000312246020351211183427598996231834664070920588364083045099420002925226417068109423898298730534433819380156562836773828733699166507134367483580631498683161765844239626676726329626485626861878169907304429630758848863041009207157506038875778520079101813605675309805042613901659826837365728307441502598437075699247243927415075577933817640462393963184030803510798800667442133769189218433297421098836623735004057570752100916782609986969514742317154103235150279914028451953663406246748409167497134285053541300322299818593978194837859049747640780033639287799242499536929505132820291659249477639988611371627920746566303668683848412372324815532785772225681379506739351594705473724731533019105269401891191254850280829439229635073031954427256840112754508724181098990894297448756047391377336090786913232009519828451725357273342891239823976955886352104374279244227267456821048683489299193284758483128220683764982338875848433266663881910162882658599346975838372778692492404824879727564627893818450800379387702263840261652347551998597720908121895626526281733144116440925827710923196625929079656123136520488978095051221554026623676539745595216765942973214200412825126031104635785247042891793881498970760726360699528221052567990256666772835090249841746844218341301337626401387821459249046003307635643133613012835862762461908899178672757664545729905494680133670494669222395832002138222023728589653939726289360775501597155514719958466344451011356798601841037129919552357947656583584422945155346855543614000956699253033804051559116266306575695385534501142164259505946790411321438962471532740276528281955652279301576400445740138262452128371600413370671056476802005578988487615605907459358267058606425924110918191146298054951841405342396019914271829895437771258644502222693454789638484449148048932714753234733984771206582944462407132525004236862564661352430732637598619587349729839092409570315555165655638533262340039073037201410033749796461908186416095200646144654149512973169616975434321850208422873582553284840163740975466402131419778784771519604730966967526057493765254356074566003490418915414241131088614151880374986468567650796471645557264256316859223876824557977385554056927992431007493220720557490005996987629383036473617523022433114702983930175727544455302063654803733699357913441148290222366905976070479128125763292271348061026226216929555473124746191637905685556610344064137932600755030995349548535677649557024022484392934996943596798685334510683252985728221709711673208720743115393521528397035757332561033539780140034496378348581715453123365409557432436960531368306373133089703053126337299515192230264708118416425862022369937861457807026895782252886116399927589386401984572978484696697052676887124519379814316868625126727931688376146123443000103633157052696710062005393687791858621422946017519094027781471974501911698815388287694500396624640420783574023978913123626991866169592950527316618916192061358406742364880343129273823106256152645358283539532929154749509700651438486514175110244414263977740432166651830791345270300013421780135140440915928383006785536763618173641169741266884524926047384112098737677038337271503619485884452138082634132949925769496027960553483404437984152609559163909630714484299989621326444180462040764314853580445229766896679728676103522266072482966760885185636623325598471907390598874052967615336522298963538604991615230527710445501768032447125348204751077988330308354190332235769674917159789026728982700726723058132469127622354086672332386282152916829224891875240808072050692232128219507354139968500607929663251662037340344712874122404173838724355530030048131966569152055006622686070830541865092934676779484355734260872129057111403405632771119501542377167673745277470808952025711174633455160839789748206675546363080654808457570904296841641594414227724875583612153911216783167364971217358139984808285964688801029255284274265626715354420118938004137712695488704944714956149809827018967169703249062967585708344193103692660201089313939084022067318843249405294264926718721964588631238780599537017137240763967618793712242232761399293591556247040214232111813578473545899087834123477298945503433557384413592705557951932014909185469049154952741252598868155638177852700650272166908203032056270396943902577354159077926291720504876322646062043998063026884407024276068167396799830044324230624137366567723875302332960437426567531291947030099676612601969353293767915049713830000552374206749958549611832767662330278923340393743372159753048945555459104179793936392430363308240989884543808207563280705673167968529067511031669167063701514932985329236154918829394713785914589855012532369910029839360281439551535545061313736623062101996310717616608811718538342710076770633749313358424563857242236746889820258763278995369224252581579786100002053936744930135467832755414576468585510486052082841786362994100032009969446394442289206963976060530487610470075712778313798239239869082605797881306113314708709470727845582382534394630486534864545695607038363135231848570655606117188215884038817627798347693086218978709660436596060303250687203029617044717098624076267127268364903466605688433885703780512709788633785085402114035300951869630278708918027323281162042780450897086825589889761008236355397254807970864571337028421770533656668453636723429594835800647579879132199285957394071901032523837912639249476205653749067441793301501228385975556175537909138889162017691398992130716665563685855381775157256973330420853124479382546184339528306923907265576620883699906074560374007161733606949556487476229693665741619595735656403040294486026814540314567897620335598057954035306903450871241407094850201628067330957988354497069577385287345395579298826378828940833671334564513465925429150609011210259162628756492354614180439032000111503863475015052376093241699163342695562282956763257587544090102645903128562515498564034623353089901414665818284287446899435488030958420230726007850115032870758306460630537810247659438829616275547252040066612927982943247163132353751116618970069004871388361527533819970636779018429999398733579544467508169888523467258810101230966280608461106189513079431850045223698875038290209189496583896740903753717516063258092552304943801304872398995609972857123781762794740079606309748535493197789300817748199949880986396279930091773553817788758666621658361797827170737024703519267795616219232626985240592715142280087792036029583372277426080834128525321282457779338819554458906797037869671955710427202447721668680645496461336816897450988651584301870643146328100610068001832662531284027730113252401857727672824270611259288701841716128811464414956525010711937396638930709129730748065498994636621652344859673635029410982460635185997386219392892680662136181980837937480946541284869508778304968551227687640377059947626205761444197102158133162623558453964194775796622054518651927316331717431309313255633510790585275020816555578405483513697113506752536962631286542527020732696348833066089654517944125116784350506055847295548960384436708779292399768898828250188329081530532564861840374160950117196632290514149168084835687317748448589165584662088383818186507189415803196764693210389794780425352977193395767333868112167202881584845303383086994755769122290203577705157849954034641361803330819207503913508912288219450369679450069977534945579577078107097259842341371652523543850429996201812816772707098946095072954769022608721192192721579657386210142074120060151177509374143189916088900832378547968754919236273356684915751844145680725185362826524321319935488967472599719712577467489033375905336951340010827887821872839734609330956314481547036700288465572842422024863839384528051352613026696218366559084143060811687960995314921877116223642537145500238151618121584048715569126924824356709945709395483700450200826850532070277541870029245059076676686620851806655424732829237996062607069791330959129733398998867173783296292072493579811768516965958274020065505476511513545994398503766399373499351443951377724522118253529557584261965491733193790727197996989310716232328321777737248371384066118125895900354761457510793461506235384544473626790257406442205888799965540038352336941301827797825323890105319064799111054798742602249772566083964565558867848187476474705225343481457830173427221812510254390091339028149474026194539932893185278509176400113917754738123201304205237935750261401961985638126548713581285549329040026177585583784659727185242213629639724879987355410739808505741181268883044694840765534233371853182649538555181530029336096427477002110363566419796318393670795919325519551241702701732651191918734546592981035987963718535898852870904111231817212947886562297834600561885393968614009699546048612117133738708597399895936085837868883979327354352902522904103066458975944692943738317748765293818913555621400144710840592134775507391373350622884662086054586336287860294494915514069415791348736013186221639335959678648689694295861997136458648667013415257403158130283385680372229030572906853591330751688209764866007148526382838808385585037278877554370012203417267245486273339655214692544871531763255797220657642114194989670702442036543169380747303162503682547741865728114633934289858243479603513610547105640748408299297259307938774869561964450186430958618185514141377795394885321135756256071296628968704012974738736493646185743637469292584793023427896599443629882985959986986773379962918656312879165080867748585469542708455240089804915708751754498502872416815220629350375837418597926755980212054680804547799664369299859511411354319677493204694832018176533640298730832879712739403203895373707411673518065388072495228781129082735032557576579702274677593804297294423868966470258568048726276108359247550809395918181779925552254879609204033193948396238814943776434103198901208651115389406879572039758359248074315370284091992304518553758300626542643646680533776795955022900944210490307071439144592062456587092185684906405650464736447871599829590666091084637447595103682256216671128182943241246938598370340239194539117350121137878712438886183270421779492980014076498865141842649179057911688074549720285120621654937449861723939991525999908938937993573187239334391059263422214429503274084099003818126914127267521655337631151606159321441851893933158759886213754315590232126176055420740054599046174082557701804402602782351711246065643645121757930647633929285047040985049786666653251072049313269767311640781533508970626000223246642768219854499125586128528728562684100143332934279190728233264092308996166693142489886955357047095394447287748728966290776400140714360516617165179245986028736681890735769351098634999065789747575839478331387057291720629867142837707783084535382086263204152966794816603783799319609087483859856893454940622895907082482577483788454756892973934014406298225086787272205274411187195399562216837844950804088049587854959465459985379362995824158427513678244593781124819739618927694306663476393623912792159280941313668428827783365444243114124873880364279508168306389970661184910425149757522271278995820696715684760175843116925292056765691715843369244677498512645674109733011266845281782322849917342649222910597736221738896335989608235385810879211512034038397032377858334106820585755705513683866594688469806071631403319880114360811739842782341178136950416517005273023928878096268996304318659658570458955763079746090357721618534806849868671634102721079529518384235446963807992852154746999255085448058881522823112313682709560466609093042438258795266310567998294658523505979197222934958022570784457683030596049477010230869534557902882773937377128606977980701465873494837945554788753327629604364732211275328033431620972311266516116203007041261745137310803793381712081308144462079773119278271426779061911227712668309083049174945176849990106226457977147761598290354752450986201349410148781425110894099469253875736312382584308142122157674791685764648166583211910293461079382934793904002663744293843427301716595826460234713668535705861917644900654322302014959946503057008271535438804722376254971308420609353907721594574106847474551093126230215088940090942611542701562058577005579710606796309007750911637861825700586396587361148274238118805263713603462532142368226903143550370955420686139251416687138232213965964045865409616263241121134837554587097859052284212358400895357966041672291205129499993807319761452155926808558556013569476269932212515826759805270440112469749306183164459941434021158976789434163688874478524985546564592315786430720393548345738636844019729891513685439467166941779555319027268414189879389336234728285602883319703580416761449992599283053331475419706622634496213476421588801483804989578853876349408371064424336682352289698655835614360176110018610898185923044735470303664283475522641167913786196099407000617792766703177617967814263781329741190200170981653226709206100004211467433126521278801803534812275810448415786089097468500167952894341646893045165316961181356436362262393551794573104106923907260564607490672413720500625733445045154481970941347303270502300973582622470498009216687094026894529704431091549192905768330877377336239772243925595075744500677795834243113279700377948071498976203899949310416443598085341208537044777510760628356009105657336616844676730144845145295899548955734986955699039397178485005797720840627535763337007605470558014893689240003683213665951961249309743516000054342043072552950920221801867219096180143640652880904596843306447356863748261982447900283550039555510121087773391396292550234059280580469157149077601246930182464427782296073607642172313272310382611966278355150142548680701460580214035462691463786442739472402167266758098614585746378942254637757180512509692065963732191314479370805029772953948675273446221751053947416759523053227823501943995874100582768185648513982781163052279364716141701499070266824317185755178984100379052281348993883619121997217796807173374984267843304771329619057379779624385463110021667500474384167442159043473471797257282674710274874966274306826835698679318382860368304551801882411913863882821544141868146691453999949463475746747326986533410992489177859662988666176570840200669436587820923921621399647518385786500698229489383747107053463939183582043555166142589463927559456501067131710744157989861602308017874714401723579073294600156481397815563156158234672242120693185233082046362299680830720589878973319816365702977440297140019624813549833465313882620869197461664156227561846000938927657369283492638074789755644889587221538140444480273541092525367820048584073120830297236091941964299386973303645903517064657335215904205324854925072141401252608989659101858584408119968244523211017530329344910832458685089952998339028260321590770375407225393367033521179833551156658944817346517013574937461596905492112115322562596265604176597999160705058875046408210058156284167971320100561812474543153231976553861182436044348657530257798254372643084966070565717011723998392088233687487852277156446215438879511545133688886081658160400426485367606264734096143654267506948378974703983617094082310220056563005549955110653974773436171066560079630560604429497189427696746897125391579231162722687968010532766044353104540723018605801212717385969549559748347120784376518322771137865189042946567025700142565668633145707871373776286917645197919541888165611341858565566998520168118958411730965755192585830067314215382304045133950923764269028640121790822208071113395353634873772723602827213502506916622622587875183881215135976153482361524087003927928162946695841526770394000688063905254948133095838416013815370978019168567647617851354937288280809629952186110659372191267223092868025178673189386918207805339870715750199846054960608358205426893814787457270580823021876505331300440521940501925051028029880717940857338435415065125505531233645040249946833713609272952913937131935928104568840655845892477126338835096555140715663563895671917458218386522875524782434926768116269088867928624568730717452367772016812677458638861488341259779811850596652316686780384583017408839434461280434386471112885888880609219872956559538862335384504437580252106671178684910284954056798472944616849440228040923832420719447843663211529767174691011000262899305749291558297423960125269591746904113547009325209571048627721158009840638358275328110026331734229804381262978530017651366753765894471783402353743793036172683232402064573964674348396875308525316305499226117288662663648080534699017491221305296299121407375443923578740382750664942520623612652644716055683005768994445856812291220796135894749982428492420349253144663150724787836789196939461436168626724379985084378503539897620144346806080645310500094205079088925689367244912709373362030948438878246495146406141859318914011473244077292516028133189847047664195832784966973585616843482966458853087204990271914114021496987048330789809391865290417130534626780331536732292869474902165851477063194999772462435299360651038802540903142332767105706476229762620134564342377895899707393052919719347330674866024109934345680276118876159194097607213065658156671736506223747977238272472235383792586951227743416618762766321033525013488808129139375841659808371548970412138476580316696054845523497009646528590773598284486555034467630863899766934750979833178179065958157596942234477665706104952725239873666812109771037030252249851510076906145401476820500999983913621871407778443224369143493282664207320824804676131721003827762417771980523004547927224052892433725255480908956674645529943193663165889989438024497318637301775437611439911802798361925149498529679861789832934465918691774260208170129130823206213893960037216891428029294368884661058217809340951218532584285804141979039512787714839735930357170571965067605067415277835231183945658019511676571518784987889992832042940660253638785478992031365346695510120051474020610474979688292524764500552798164035710837451302917578748198126444687511758710469590429402806515189504113831839640872679820591576297357987610939136957473915476985794002998733108539655162691652281259910958033940875526906807253846267391961875358011476609448855710385851164395818475725735459019131327834760206289097743729829945414281423164950608242950220669247585504052431215501264705730282957422393783297950086119846585416435450016433283200201656288495474764444701265818955895127098666716223512978297331313457782647700985350849240865545150243519299295716499798731960724252089455952494801244088989489250642747390969883947849119361358132459420039215208761043632497666599365054638989407216246838275100536673675229415859949521448588366440835959455259429929277627721406610412310043895550607948146002233356436908796990487251455712049460057372883497289802745524447775977834389344170525384819927747730429871199847222106605942217763484537580106261181766776468851180832672331135749828884160657309019329585673365647269880448576923805814082462178683121466525031340595637794309844967768522011345339077314314998736435704841242191980473553000185290468515740239905845683139827866587291850993523569160879985918799018124283851844850534877046504103181585976503439913260787337275976119400747734342130960657420220946986807493661469395600929915749995882112086013005395708338476196958474511738644257179265779330774659026248259994128342764222816805479705173557734895708763001455588041080542158849147005254006384265795916428566294587941182425015798544360020159683335968770922751797398791151728684291159440130847918916359542826817319678575666603845798984675147512498225762305890427739420533051070126602010650139704324326173132089878032553865176819032930080804271771136796866561458163952039076702571468579736271986615004348792527520572831175329295270441150732518069667031923657800386255184651740556845013896066568086894372624129271045492684371506852075065931331209504697179705589675838439042961902874210394832648111470445309794614702247268629675994040248048140399334448502088314429281170368819715383266086818884919079106875248657157805689348874085223047452237276398512842386979130279309101149969548508697859145099504955454401560718206338667049054746090754348799746229508934967660997958741427995275000841127194846201888964313505120129848910863415530753564559856837919074578351290944042002215788031413188016294608021578756085580926177669290268868809423054786896599163768648941664722245077875024353434144947747463364632864379194974280613723729812990957492417214614222441888470008692029411307331682918398978739185349194955230675625080729384714555337560132710869226614001322425036139471125635278298916736796073489266178012107507063172587362902839042345432767965339459181427023222451332006033144900541882214849181274553616867095886445383907347821174067778539055271407458611785925143442750016744515965194171987501979207749150763848374726573525730369347113104314198421510516118280492169962503656568317619987600683234097937378379852450591379522113834954659333197366302968303372224929984841288832319248688283963782126174006289877448305445199804677029460886523762729312908169682120423436184627613416297895019351458943451846274692810834717194920957878533624497120202119954171957684934847718750667542338078885556727475100068064293883982844768614583621727358625955507772339664430237718933258164983892741598359396625302139987701560490427090621499005607120821685183916585765510691860568626643797168805348418039207543633746760880902653471992793092353104209596699668909450840334435647232352539073787729924284494191728568122680494743430061362725640050752726744188238612077588745381762783954271612527971313614529090092219890574411158850758040185752441616872658899143183624407583803342766330940307404070587840697036316622162086588687298512027178944192504455606887418206215532905773952961225017267117367646031351057544582632940579126029865291887356849684458433864330078855930416481604898370042048166080426971204826107788304570638020266446113943712271178575953640199090112177767732977477911315014112376583631963206681949668328950335763386919035150757576933457457134003349661667698057944827191387985199430410374530352427713077962290201920224665043053390130542101633821449976325519440430684525100899968666362420901841573872563293267235157080618061951214178901695570840185790945199951416191687311984745585549347811304236837587112484273621331505747777299000037553417474851759908097871092015365214732388886458869303926069162015647123410593069748217101477391826852733298379998455014317055541618538930974055140709539723980059615297021079956897890860608655651031402855126131678251263041596186397269258500674503326739844607013693775414672367199747103517903226356781361591935948171048556576986609091724474929990084878768923932694506680833770759823801368318366240684335723349001617961538460993333906609220838839895896077928403843513181468583778144183509914474821231034088806179267743785223237082785750848625743177971236595631905722719767033048075455982929137774256600187361092191537766407348029352846914819109899082713969575537689094561681426118177141764655811465344809774383728664716494140012527082554191478513058428435197373303646707530969264510487450035998674690633952411122870780715931493588116759593110036060914274960453613113818525847217640758023228243932923752297455982856045408414795348483058621292842771349261839036466045040627269689917845167602493489338298370181667315528770545788061136705001597737974019628214010798734135860854170359660858515841075112763653393594767285069154842696063457263812330955918447960845583915071410079995974125959027212156997868600075477672913425188443101393102672034840759846676705918946632959919042658500742846503596054115789391104009722368354970645697602793585057582812796698951632141631271476753353228801178147435895355765949783697562946198483594407441116216106143451667203172459734476816481575956507497991315717284005797056813200407830048582854116932105046440621452516378102359520582344036435385404433769403698342902062145580268912817239526851969295628378956148861596275306137689855470843856288731585265727887888378088432879902829962500567272565945025911555806972202462003315321978917932244674741784178311224334528390500198471208555662852904289249084238620620187486995741449412619677749515783536212442035961765331903318366170668880009986832277453266977522663157826607366825803483842993135219684087083056612380426392071167946397649902271903790542671220478320721103675662525759435161532306698161704826907898361550230026314361354777741433116550175095967807228977954816416012555446008307985841146041914441752352577279892050166369265233512811104291888629841158789050510079059218198799139761705805905288409101516450810365742429880616642565811587571649220991331526971001263288455552808690425052608760422437315818197608745780507579687525406027513683680585597606180983755086089695839012313165961883768834668793571704962802778111789147244651986284238030126496817693646190825657518048186092416676349877790655929515199052447107677406843672426618954602387703644555870284613942995085451383471080043512729356144755130951939783472948729515831802068984758640054719346161426260587791983572017261080083191127706603102734803111096134958020672569895523774425108075090825158855905934525152364518355844527328867238846947106902547748738509456632224510792707436571221178842701663880040545382115739641692531891881525628012951269456641521301265192073686172065483068118892944615537744255722107254677848257518543474363648566335788214217804568694724155974897600159269384392958288849680161649221262484720360026402847180003029358664230430579189182691420792952098310383567997162209873317925966972546379589164124468798737645272432518607848366362118695008930897307384138757695110430950275382464767133352946174153444521014724062272946723304174769826055536676039343743492026986475447160227331719230000323655152813112463628402143709690117341516336147703288373621315765268033129494323437963094783300650358041387381885321359192030578793492512349893943963546047832256376024796888002492689437119011669873014638167137114717987730397219793771764617965073911134353811101954900041000693761721750401303511437750060098134268277151525161584978745757734961353113022456153993222873836473736316087850491213863278122342150112683016755360196748516228372499343334910315773907812526329396209817492703911287973880605513645592334349367391697950256773010466283286741752598003753432401342142123088211488124952027321663033400912974163514279158103963118867466578025665916523408135628681425038024552941474777244951725843880812279927383905182464409079438592049930451267600324213603269119053404430764339518524681851224263043972883636015856282962415575922346193559036923675379461028093266031067428262674779409612780272051949577121994221819104631893625385287581573324361373830029792016623063625827742910191415716983940995070139051344982731011333387243294720626381091804429231371148340126795305437240627456451378894339639035604566568903937966943260495094957961071598911880067136686358080387008554399696499658254035096734714255739105399488107837818703266211159443318493096115101359566884321487132314492394546125896966287085381385296628818444051255343910472008167052670249960718187923806944174534660523239774179099458325465067506909788725692102960644495689510577091468348309383822633592360991333529522714871085249343352099110538329173076482309188660041451037359200485988766247532331983509742165081882407042501524874702682340826814833806652437287631780296094045016399215942484563909680458132866108104759820739156383416384314814597792897047198499301546429145229176674702068005742282171238665392402226829184013460769224876296277855018041823057892960169167543211769978292757950282642689654381615872988575140352363474167261041711228002434894793137421736967394424006194491134500837865011455314636189671379741159438973773861663893177027338745815370412193763444031752050881724005118236897294702665659329494111266742440602936113804971810016821253389890655406017313941538923765989669366829681223097982217397953874757529061372061342443328711271678913413939907307992157593926803696634610502307674626846621182394651221095730820252215817021922603233369869133604017164876033223052326928852050297475640645234722678073185905094968330558532373715056609338673815243149063466955034107317133088142452568339343821576880919547467435785842511759263275593827500087057061725008527157665536963100905196364302077819861045395353051333081809659949433814292413957727209189039968285041639053570925526326359704179686692808646267127871968267229930635413565924343880823237852425878375799341536026334542637231836245405837673329422126068269543945413047747355596442253363725254022420247367918216100219859672508432595791906640656186462941300347699261530495241708726097334555671658447869564673246907727703450932159173684503203171107974123161688411882291241647315581832600920136164907749149584142550846891530150048711417781158507564417901317636597935741954277822930861797436859595548687261159819410677166379194996129693809705615767238945703692235114822034852156919221059503268742316668684827571052722671806307327806043487801136543594493634306777366503405277060253809473234719210789551756069751028405824050568892492884411395088236807887798983347763911878597520241967158308570619454204428580962747032765894455084928426329433193495307935671986666078351988624304841655047199569617529862466150807308471444971421560592502381969294084805440465719989719100062868128078832979422371546291728735669634147568687572642535997810091838153259746191824301252885097880502427215997077075959409529103122058820380592081395430743402260291058203742540834843537895192580933451264191614503741430334841216486039540638107322216954025392715743453638066459921778428264487298320697270937406341568046344906024254935360077641670706404339202084865803489779655960436787389173695686901820938594880083448889266861466085568621776604122818215484139083694765665420760315276866762488452613696573669197439855285278831839112192603681962707768486939516210124201029989090183766336679126984886346212377798747304073293919097199499108103123636676326885013334442806552026451693990393381452651436307119116744756374370135359558243876138619439570704551889411185073099160398676262622878359281950612263785040257351630986277387673539169600950023944335916659200526306543774974202093226947921111209910035260885321428277685316261201705518687319050651918700512409807170889985403879820609239135604350964227174874483481095234126404298032176202445230040539190549417602938238140790743854343153195832500890427113528798684138749459258774907604080177692163406604900345276864940762711099179362596611959539579020868132967698253377881274698148629580707334287956361144836488428028167381240410330814850349399723435974044579605927142166337946276265222839639441796081748859349930144859415985633234615244835126200963968403583672383650481289943684095954960486738442991817347604839838880795012612696448351204504601202672680271910624050653577294869831983539238428880165190162273011633566869292177000536001763163723741588976058383690992413990302549271674026779982669815637326221030865159256039333393869144681481669575234497173077255918703377892991266290779982715646410598676459753106778798743872426160481730506445096957581899316821596230169253897887666898864090534438883721025755218612201951547896058867341786005004507144256280196743626612242881339159536350590199726118026089105644300358515578676724152783907903102625383989255210081096954542800394343214168494546198196214525855732729783059820843008458492050746323493729058757733556857661809241498675522022353820093312535541555488930022588523207145373665020090527689688568406417773849692884107583119739145139743601932407587879848747125880793603632894239699899860730676725190704474103921495736435950386196597974216372980581623704015781248169364461502804264240552261141826221021643962932742167987570974519701289772952129183172836866191497759552005238702021584437457696707969165639137068172053782241782453999414562108529240770050974369817359876246102730318682869427068872839568625666741006544962781704898148699054490311013095270080724554400958398714293500706821633851721232086084377607832868417857369582969205991287090979529286878225773956492804040452171127666409435871548960282559654469650971209570927233577910122451505072438407298571067869981702909357594531120806162323306446098704325059903785607527489279880075943609787982957900562513422893066849612477540074042567326704854114121471489667005241939013641422684480003656288930275912885723568110485711885175631686824303249733207706492382382339475703565109198500020318265186844893879115484466201822126792689212035186796946619066431351069833494870218837409689674998306184356155454688412163806448172738138875679487958578729498714381885397507691664969718982363399222090484501222148524216751708542992647599393648941220357277437719066318996660781291839510551486601367540126925658399884405036161553778111663869060845191797964922342012412692067251154807667469017302441685673835452650154259907435952216944340334205861673536799125551302086563499966525943700313043271094862906480540800559727314540767056586878698556946780287441401932981494193805779162613360430797658655284209681722842297083847646201245332655472316516988985097320966298224572180537599714875376628415271302642155822453850854953318784829659917424509706824668292971798058155806062002088058669688861480573888273795543525782373884178712325495065378639966870930368985164039506982061184667837271737789356937134470680267117169067667107277537895782948370882071901442818040297824204669390843648746514205315509599651434004154305998486592422590200652046773215872224139310813617427172956439991975144767469044694708643252282949015538778016347285567755575807839232847004907162084495076055569744621900632688425273560104687091027388823422591164930035164477842256093239141990692695976128367127652380771120951707041616542520215509007792279744543859211672006573444115765436421166677362287093388658246718562932481270900476988012037208309338506454471709955027965583428072799073640150534398326163706684356995272424937494829904333408604211350171211081440993689108718744255881245542543437157149000448557853138923568471767106264593643933628852891270073207876493836716836939276736235061519580207941436403306253495028399996366584974382203589565167401416799400954934557208145223703820138498415131057675478436486941521597896286871926649735695331388934153840909485979380760124758970487302926937860523556450110821744145603409305620412980763395777945537172002787077613491934054573740403768599043457010923356348694279438262932870824440402872933811786430554054077150156700700168041553961027682771483957568705841410517231154265956374255741703882402890212848841549506043674194651482031757402686143583378397434059194153664017761174926344290020875482095775799908197757481788670170987713141959547320163352708862394742424342225484265030211559993339347333632909904795879382555092065996817928393847799419867422483234762352870935852860051312337493379722434082058952290793551625969338674197847320626518101322237698938672822897683079763344111495014414135630205455721168136743841717747290564765156421210961148875626820182699704636925766214984575811974718024468043817948486596042256959763190613907768476858745670773051048969287394652787913357136761930692713159174643790900329398654582270422753603238867615985818795200772601040581729733866573468228349658143120474284263810924617281714048409184775686922310308066863302703338694695320318271082406225259271273784365394007564929196169723394627497803583061627135766126283693664854313612731565129183883744842866485164187260291583021769926363073229351918327556191379765808168916560848759296171871283748869473711432907707978317221363613776073942910805572629953692337298460211952037218910355160707163432293123259601030093908547335969958736283405254916317514475887960967459029866163036035359709344512177929474811987665172390662256502922620836599367656538987728497420447159265303052667776993542233480904058761484709773552072347265950971244112723109343118553901020247589432040941673339438904759067763367318899224665331564946390724776899562176910267239953269086941704503277459325265108421796785672753752698297651481757746892783799605627959467091426533335556760260231070209174358949695185426258892103042632341781474246495857863006891478003007829317229904209743461597903682771646605831957396548498192009891818383558970473655150152277226149016932869646949849739140795849286766810823586976615444889861717074939852590914853472439680068483644351382670273458490498541403322928337957001453848713966198527392123555135971137199996176626838181222104589936825212653172646285176661866361399022807866779255888226922817547945348242554788750369956926039644887676186658467475451700031901300398908982201041295311355093763529771226588778984836895464530919173834885122780274353125681141701921563271134867049417637978209264409095583270352867215451566270119611216969684174748025083564720368330487856728600905068003490616146332806317562727929039683587835386307922208752531837039865484189442552904443993072778977509989837548667421507518624760105604989298181330363580192295497234785077047138922106577464446863935496326997466883619886867319938408077080104190739699898453611024884942546575197264856287816682846452147193478775976710653453470877274475982004625589788032915925990247306651130855457407269135716687295809521077639367160343273165179795969643436371497154314991311894751642070264580140999037158050730192340987572074559027448877588906066160010233234436046660130767074376924112215871442697647515899881943053829292785231652512552219376067968581087648091975777509239636568951853177690549540476464550606116899637290613601533160635629455735937537825923374652602460939984378040574459125666909770641532349928490343958365852056852808010423651301655155247691968886514094976649582866944836804467293200641985729973979592531877149669919812148994614514903493431062889063415626493424520390455776515214477914997909005510302102464374032365574506219913385203294714594836233320847225894542458277513717234058478550742708367608883696291907328477767806035955957579461071196675900139811087562574109181666537069151503708425816350132942220718477356897199820044993590033201763397186163740373985197813862614143469699375411115267913194933037019257757302808133214345699762237380746834793398012246593894763901292161230086128010192203321211695611551984152160122039593334919680879304651157334870267577804335049738552382806248810751615673172994165111454515356078752063602991740108919066106383232183536482759618456731428456927652656741430968208484348008633899238390320236380699353838693340832050327865049116424261505495435731285496263558383743698424162350217142653511675707515062359518967653421838901453673361842840957061832741534608144291350138055529694786620257369390984784333832954927621400006627447753193149993031187388615361134293675352274243555260402481654915015943804480307912949972944311235128935166981808757929753193225081414374795542841667600196636046117865769015333802623290956616475275285413981056714118765765124897357064261985641458074368599491811589111382983505970282856620786438533616764640144848729146735392994005403475126154038527179354348106529078980140902195311756139040578266392081535865743986268398349178265599265507042971744865944896015204950125748640706314764852953715482246411050487108580154768017962674219693532999752509951830379254482810935521857928801290101943676482819166157747315148683559938696249115776203035387935012476954765535752092867014233544882658550072090250294657382607271584160486594965299408783955647446644914712008001398591629277700300008518245762416650619035411074822319598306921600622248190734328921384672049181670983944943458228070325617559044767029916159886037004228583198117786320329904172183702253500433838269045319832043655895196020965021069120662680977877150905537779921395438748008340985686305907789419352001661143953842346846439331967834593703966199193958244605686480981073825551005938393184330849020681492446283819753635848832620932550066930474056076441944986493276287432395563145253949738453617015238792476040722467002172124582439490065613391677137985153827242680069613959400947045245190358717557782773390259584640637691343063973195514097696164198454622078022148635842083990202308270964246665395810913181488875096590299324045169171427571670151155798023146701540155998460627809736313827791517764194908832496505200655793799614906760671978477478753582687670696966466178861160501390637453198601482553020760116269865097329864055686017587371123816183991993796265793697169546526161857767517430146220643636943089233803393569743596461358038274243550327239013628914418736045747057705463885273777504621903321866635025479418388960841932666726523397986519736318979216755784281133357897152869020746626043133317327403276373466172406732898492174789975734903368221586722711003514478958069901385501296948172151140674208078249921343223766157956464830329188885085426335943468946706429654005574724897587009228328632374985124905318252498577251299304009859558934746772857605029864139826850807676481995382368472868632923082241714914851531684937277866072998705848232933367886812967879435300788507914769298761921127834521831683517961224448565592108948122216659120357041924781060805766286312013503674505442881704495299059584913170184116651173631823521929748489943789575057667232260459169588958439288964486470600377573679505716753174825301580480304043587946724800840967334897785888583316946276210768330997483365172943737177618343119843526524946929238835956754047065484972188461251369132419767305882075010448358456999791248348781611871177882142779063877352840589060230468064450767439883277545758468061945359164402789120804676965488961348850561304857493189579913486980500233679971591759739806282599376997505871564455531067473462609451187359561788254341935404045661239925367639247203126510155502900089613173960794518127461274279239165420902128876314052360381880243000388455606495032876001347994670434956817778645449203478904909143338456125756091402262089638455509425045789563594153420637813894319921685901351125576303951676227420341361750899741007226857913219194088866443772946286480415340318348283780601172073090518284750437318913970951553233372449833255483305921656070258181282352758218584328740788256055399685165443868764756778420284080518564524061386477266987095948795756387689918525097300560232610056391299547300994804334816034271115484860121710062620043423133469480846299536277954576066422938281382846614592769341622922573951759604457406279006268642380359286875764521590347727524218866547700766243326902709127719201232189759209055629864170409614988007348276959411088342364962483285868115574970963338177031728960420344761052528027043841367166712420598846223001408661468249581964314728233783252919547044292047769046852772513584310491191036564510319868847969961776126020383949226678032341147532601444280963133770066178554165366758624678390973990996861771749444232330456512838516502503282089906507913183939529307579382476645205638046206941731546273024926635008316599957626078327435506038820611807327484615798384117239768367779489797312574059445536646935930537751675106357495055497043355253242055382217636330565536873807739126933393080177571959120370215009281047449975780839976559478249832547900187514657235332232253228744943716615687332750842810324048635055712656304596853637177930630862826891769324893521508117444296323197500894477354123944847063952567902382466933412829535035745024219675276270298892482394632852857798188441787594908717624943439270217808352067305404858150719520844552210961878541218013223151123030450238648283082142781309563458082053642099600375221095274801594577456207900578011241306497354219359530605876803492045972608233560604319579665651709022859183989818457236334746685967384027784803284039200605282809405169301542010876068046103775143098728408181970834268426609499276507501901400952510332988499036873025920380989121842793743731740278117353263420610286613745286859016253742877568958677262807122315716893902579168926915584522583455883033811895873597084473420105944637320293388418885393312633930184996277452941043906253621464117103673610500751345205946964371556701405353732464797450770903696601251464593675896008460172130025341744953764885913728221937914081556279569710881187659437583860594140170022402353201053437105368378001855104567225397308409656365874433826028687911502423740677522794728006793352752348928268834582982501494654127140691477698633812360089491311587525181659910719973306769658331160671137027146959450944066179684444362256290730579828481700368030689853928596613235584350265261532624580130469296041832666333157577985384582852809499030685080285056656440271477236942848596207231640665314972634408511510899868684549336920982934586908228758004055339845334503683545831047519956672608660652222086570863146634639470084557604773161015089868501701483573516408572918524922644768561760700200086359295624969488121619409190177089481063031594518755870212757797186655905922284493148181292338555645018819906852904929976526142898385408302049669321410019350729905980567733725792423109986616349261861789462818426841658533048251857378473569754332525968013784179946858374639768828787332126881134156911831890457805278149915529927581626203161314013382581289953822232120715271635900701523585952426880833679273563877127990283514570435686624176846349200469493743497315735405900522490670806838132282061146801819935754233776964443339823233594885560691503872179830606265785728437634050820095399990982122514720513423618321889451334513676811085562284763750722472844896378265016400315772866069924729848725076268987945281387576480016620193201718062242494710148404319442984648792467026867683763336902208609546619144209254340469129744123553391741248324534008954879643220707355606443164613508229468999843718095332148183673142936248665943314372182033476916658451634148132062691127401278301307004704659913376064434315567594528812899473006814846976190547585545925433843693100656581112180590267576195628583515561755496996190834975471505064275293960336149439179855682496538532665481712513471221559585150981777918582466818070892804354851740808684232339704869519692437957241293199829646459422960454067230584864863552145068483787498883150523609631237284401162474224343121107280546611508013150843109479402852617314627777815655707335367244077413244131977072478176570097425322669544576770447800943463679095779225331626185878060188651509924739513294101534235753750811278475463945879856819077420314062298125537135032067051125304519919025648239316742834846794822571268060486149889036774846853835464016467365777361874990809302652422918972155996713975143448179295403039930342235193385488735266712949319709012296743266259015997785656870070826993776163411671190112449744317682551635539252212196525865677926244147897158839925615616584940935841209772511198175073774794086882039562921196896788605294492681767872138546946896274993020568196290219047273708121785624246731626417065662716193125083338038849040030187813191388997571859643090562994838840114457170033280162238517407568642343006939451556532170975909069325046896094154320371035486382995250171708866523621232065459841254174838460311967578391688591380519483116197244545831559827424253733624392726968838446418107110019482938516718927259549136073370792510143123588286152697028499930128129317143181357868610270934958246536193934425805787935746328289616267433888717315664331989849060503388356589860354889180574580695388913506671152281911394351548064512256932790327703105226929910354821767042262746232671831970249913358522201385389501853018729787254033155487045078242485664608470877753415213974024659897905606368579030058123504242329988928287376206941308195810695147896042303574388318202008940526342187765606393712504676793356745734029992409416500921446882596090361157814932352961873019685990171475220605712714701048131976692721253193642814645313751249672186354737586341301445624037396870498146704292063990984983119007896631103586411877679030752162421370310560425155123733627668279159487435350022889202552309537619939330178507737284651946947657018757052405431031894613047884279463304576011238847768446191383466673939903579327207317962217350036599556054268251794905442443561020346729145856411586298115366010751250060615462507492267721914631334926545999821346640419943273473453539936789369174615107374747411951787795609105720005607794269813125124474126517408262759345065487417754109703769702330148370234308836800101521390006826594940973544379004236353868466625578121067397115192636713833488294660910015567597410167547996378738927534139407890968023188923888683213413852211482793897443912362801332140635763711140603609979225588860476010999342011757492226974099178702395256031280676557953348779562865426989541793023467040995437881588255609425636421577465975034287506952585699830004641089064770483996687686752688279489449976381106996688780446000911847229619205562330067886292652547973663751122754357614212922446012388140336025342416612293555222124813622183476434761409629254680102130246291411507071543574993690972080003928769692960765442392215775640184288134742330507274422752941071379208740909539710592552028304187477176108771706086214172693097268599254807595109125499494393106980149086269566653406962300671117815304882576913885833384581040197869920304560897785390055550698647132749803168512453729644593593371673402894888462200033742049817277748484793352632566117765798567571643630283521032220108553761984982020670783652979654607483093677239561108117516526629308173039630674276889014184051459673089726903704940767275411091570111985340059536157717458611085355430936778503896993366942189071181325870224521204508880956677914030086743726122301558633287893822066433714794634404774517204428679391145390259380016891961602648057619246016548955955387561051690205160123096675568900280481121402699182145125467623684919943201662766273109816427977059462253790103593362595406213091963147907312500765429840560003156222447217720626466778964841945520542738693279068899668451028219879167649413756305479888461519727473999083853620320657353155544102817236816873648280042650622378334317748606412980781656746328432333475358433628801466991533621257977814009090811639043674132814910647684942686523823881803630993486651822291717766763991021054954750159021562852662936407719607778587278274815364475535851478815334778977212435803711154449169101583213958233927731217087565317371365333779605024567441925868875798380892287703771278326040993994134468325554788850884867804660994430452538101431763730271865728447013752120881612210166307228389680685635587581617224515274893368870283578144891135912438402388532899476877372062173329209463109712022822252817816414685786804044734997100245024063310241748577127894308641438939400725501408875338062521988668093009940580186069906756091536549237967511438775446135699169277244228447613938808103508794414262776211818621709525445342279533647079781420454798916649609462856229098702880493320701119053059915587747604578458016538918452314732989066223738574990840159811927637935012279198080813140281106847348795527852622483929375999987906181113557346484699789879363282445533598321673850621141712386449025613871759073481543511758380512866954741130873694842631952642219012083420941844911527912715373268489551082923796008623133709230885599080553605855370516210843007015508676121713456170072941088612736984096338847866585863695262591411860875318132736534776675212902950248341976874053363461461214472126505499968093978888024155781763207504243891365011528005440964891810446637929337174049013725244314227361706238541666186256218790000071795733829866734993400745941078005753302188137842748460947611699479850738326025014733915314327977040013187229201277130261772470857815315122528945419697407977067270142592036479167346993896192301503639676112071837282735654277335711144277437983731711152988718799415770795325515881526811596940374339349347189951586170744072253731302463157400027933276884875220763426805887401982277989585003007545944426522207843517321677331660208928631944079398455669232034392709754908615899014728725838389059739636060594257017226890878764168696990753391825338881576461446465014977612552371256050272563448564391005499467239847714695401092135262788780619802210593854413940038855465771392140612443087813553484788798060577791046761922246335676263022359143319562976927648526306804205111609303004569450672919319564898277810102589924487944121903670070479865263775403127275813973101025638807992145769972286856598902543744130019505677767777737618441298558427169532517730145857416959409459878692909050034777684669863043409683977452954904120638448277669204802674754558401337805172148521895251581631651754669647778511054508821482674355703670948989702619937659533842133248814342982447183336277508734962665332056348205955549878745865252639913651711504342529386372403665845449572561638219484758803182278205376643948719342227622936539676955408242960742550487698607120532398423241736922877471844504077129615942980300027299837741235102204028971590009531199132734116238687545506868230353485642749079121386114405206890649386126853607969560797505797751843969112789681639207509902023574995332739156886337173084534802030926235737397332566779198170246838230467873493098993132545087924161556491882229705941055634361570375296928838689942119259628569039277211227752683224798118349964602572756388526938205287669818223845154310160589376112625631626067151561702577561937444964144191090035788073020796710435464481132966309772909413981672895370153354537898350895264136128544925049042897609095626827820177734765906339152844235715341868784510914746010988454137100034598275824481906435714886477201653451240875940843075260784372132861675110644928526609069185155609504341991125202392226612512057194648009379187470832880877499371455371383910509525973939133679457000735705892766831981443978281762277765727751296371904061400062361093527032063549159404704296387699770630877510324050534664360742316601902444760859536704697875834189278762839044400442666812535328744451885453345104908377332773046350774686381535995132016186384023880506517316271038406192019714741029783282394149782729881555111495049679793114333451511183107637145226795492148866734037527317678755077707376451447958668922313709461378301094464438772198463529806046115697419059841706263281708650860937512299595431113325032929307408607648371708531363448718476876139606843378331229807989510271678824091579741710889622715829595816651502004256968304165629280869079195912689881642931754880845754674888442705989990838224816086953725331463007440350116013256242585166637305083492046454879260021493468655125587256841990242958650593619655862872648179340682300621002744831293294037656071310362238203469784604870446546818677168540418564315274532997254335562758513571201895628064105652474009216523958158562725672178612863597065384252245251916196940116489802893969592921016726117241587533689001261349425832247828754108313485433104270988806658850881871740886576577982179568079869678016121666783060334357688475256453347627699687790546006459859913844537213434669580295568396769956904277060023187970181536113377244888935674337550989975955978445865414893933998725769061041124538724199798837363705214836793432556596107876746789512786209160507766887293242527060271898588132185191295558656874232628861689639188058082960745832181288537618898165351230994513550022148041757141167479922396883401985055374347744526399339083891344882155519446608074016985375345305744355456415427095871684122937286264302390757247911221613690073870920526853518831159802874689812977741069516470034044777665295866370216592773752102913558155636466984689406094247221247434134567966931406150317596556101154530428456243552545694078370251347445103926561255331725152873436229307774533936194529179054113326008090169464965447802997781977727334559786510841786699557018293883970522317968300985494080826847311206749329625674941669091940860930782717067963394051373127122526312326538603781771191955372835567113174536766383604749132408790756844425979538091636538334458699018175194323858649457122343260935872995046639842320595468515488451971162055404781384288593210962911763561582994309158559079333540804528974013487058176519905605589661039241476601386336939060841846144620785731214213226702683106880817192505702730337659483227393331764002753325883956165862836070202749810259912208812908609927360015034826496545096772424197133528424288186302797009719944484838252981005223871316064632675697116179193547005929023234235566521838183895325198512178462703925801049225791491251578771130264517578771762268533762726178032016812079475213222982791020237736997042526605937130767661324477272059285813970068244267457026579621443936517917726691864313526358723968154356275086032924311957128659879780237822953844128828855792256519417753566872196953035211017799983521602340600062034438992414295118200679605822901817317859242312183658705638203737041379242102318606973783732312486828084165329314561684280986308915553872730978898183977720251092066949147476719584182917493948142725694277373445492041211564943908469505761684717793567682861285013584857692388658197409434129467110618487779650284138160525019465882126477641698013974070784065063132124537904277604492035982455966769457173221313772350878334909259372875546251168876145372769913341426919453103403145213396781299405348601008166682285228159421162111887163566219642104644497911243369325491314961924604534836976991951984449037650507904396443629388654665010938920352380993694613775915630164948408381053907625875425055293806282540850167586028139593333198332243752495701692231910502594120690951070706792531653622815115980137215436745397092351003639803389055657269040852859462040275413732151077535875674919633590614703461948683933621124782504789035289739072919406576936661724777168564646405786478558741872084210190950768300996581597920236837622689814716788645381575674759419920042430638238716296848547349499790511193195853703822549516373575563184286468985966683939934567348457434353032455005207712508892932414373554685323148703628002918987390295349869752911761091547172764000756121407231748163781917740132227943303347094930549278044723373394367734462961698415652162141955798130438420568785866412929787040669520250307632805603514291835750745676708079605914300973100336859200649597243075930785845432722866485676043752148904736433063237611378982761138263956677383851942771704541675772298571863015485613440378185825976415327421797760087982411752226769609752438018795937982504661851608884935745511003639361891552189925035871526675206929048010297764696863677342071421753031358675028361901369364563981988389704485036539835620333092039213369346207229393806095900759409764557149009990526285019641797268693191617807318366708989628123281745645944964079275926201658850000583984920983297338795646915072492202979263817767641385993239107985403617191692416583549050363397496776783188809114110055863295780267568009144816181087359690032320687635468575566129292789549374629324913024543563413999564471306851816843969216260413409188851387275555229292849375421274662893235294710483670935976648464119862255879127496989868375470073898025202797305835687301360032212725911238716576407533085208914437423242205132319466159186946068041523241976269057042037899831863436393250483904028158155031469358432466102954343335910870830107310033888701003137183111438987789156261050566829127249624729801449051005428923440659635454293911734851766097227141892284611606984121447154259469677452448755415349430378197849275802767649510508343583002842704214187259446416927127955270010263381954085419502783741704147478024058900721229538742608571797951007630492727783432428349126313875466551490622059276149163603409517423434252017529534773246411794385480878901536344640039816634134053338839368558118230552949818042143232071086678385765686401656840412579080040167696180312544270722997181774701045580371061084856773323513957424887353336391811284888326673853157930328035326649398664034683822835819775871344458360480669981125089505466301695994522482699322189224866746815771114225722441231932800983408689367661169727617887544344693417516341467687904389681004786410731065655916535795477911125874524267541555253754244641755381069201557484840759816726732494117846172439612530726713476667586994399964328887306858377715523217693299407870633179176822854815223915914959432372266630868011733120115845140340553814764090264954804833543332083031227633268994997764415673370711631352772275016045206391348362202705029598320156050590934843254635398089839969403726776009005520824630039670980855806949149679967118084241390440399647330307316747911579909190984399841210238864383658314054914998765922567544744354016385602445256449387221298082952836216357623608050269933407718685481766401140290687506162144512621961718295103849073053652772208460894019143050134609483339434791594347454238938392813856813334631342542676182708817025119054189042407894766338159700289447574750683328593829681637214049051350376225822449778324102946966655713314898734371511466288785097606588834678943993785229903119545055604892675366676763154105435264125984407546747097668742004743455288802876530298151659841961248926288979982121961437126425714064846769988964728222520929009911739675385906046123744130158135340713724111685949572333095336569566561685173238409203830213880023775907363041050829804080204180022216247554426727125543045761380979564320896780819654719114401106058106168411502183812502022582018690700831504820799759543436168068862782812486043849111746065727671333875774637380910083098792264227068083522846165285683685335714053073859703351908560222782717452005342903734223730988223876997904288664542198539248040469284441454073218672646881531176933529186732709321230512927987307086879993706308788750276356993667240752638295811876538090446679059871938898388176084519433911387637184950392575875172078074404318482307630923079104413428800110630845474611957209318809400144204785390206732460608505913111635600919901295631927528780768618418744779826289051267623028528573854728294995746437700873854647248751177407802326846855029376436747770468445654917397172646579051882782318335775090074581674572764880414066274972861022809250693626313142849456996982807313855691831862966331579081016399536031004354665940642988035023928240688878846233944872258230379172593059892410025165422911105212318144917364920138257504952441746115672936633380965016475515999681927744803719475560950963193609665149037243593222228010304030837642278223920056833978287447844825074069703120178322026322189377877640060322091580648352387955535302067366276416179744882250624921945466329295881852819524615796621397397229366318495852367558737224330896333777281469154527293355117878239007498006568838348391899610799597186205085543865750482564261230872131532201588729570112081486020516079923571258144005188785500341663214444770265219529093938769832042906455248562459881358186119741696068077703097605350682631678204071106649064814525359179662580522557320196588849821254919421001457288912074931522345164697834491336898808262572172108162925543305985246235229154628009947154110416132644307607260492597580538787478603469394290859178928716185853772273252864413035218489740233019649419695547463403475040219014630321960611264716291620881240466842578410233701149795991414611432942359499361058444597026383791710065714165980709720275957267129842969234979032979303364110051949999133083612270193114144629994935868920878998334470728507312302938573525497441883214792924079205676560980226055294112109235997890339659977216770712644691112921786190093050788673443429644396403841171360314446759291534618770731204060538680085324310274289362701084659720034103245933475348508151707257975078169058140286871002306846285860198128853558102701431984799643356845015636833882249253368122604855791816048720635771366521439011037050160091075682901132664321047833695719304742422082060960770652459836881252484782695342806749206128550803747249975333298289719651154668882610512410301353868986232906536174976508987712609267346313176842145771248877062395546619489973331472615785342037016063019551822523160726441021207575568076118156607184049653512743909969438897793428134597771174034437291660968600137306265041651613944247429973826981295370916304759724299600432447140974230942996637005021634408309046361993544145360081140636183222104710689383894966121729985615909852227095286444823471774988082106324811617807236307428712675372565817348647851538941620488526299563947389302719561666791333195357899275514871171879070176201595375905280099606958966044161157458650558492107549047164407500611065856352342144356405359907274698036030401810405166402673444355029860325666805221747226452853091878723938902281639612285544742777068849312578023207298825355796731668348767185798796201647589718269871229878295538627305377841182441350946250327079288640128566066470611932504870387391967333772519477684830188362886396278389427211747587078096523127188841987545104238929321641373212607898390126326875340016462063045500916388430778513760479924319405406872945093394723699497861331639586353087584173173517397417300539715933795677322555675687557342952199136776044633196950816173376061381292046344057488967422242949488322350370442398983849244612877388238316011688856744363988738524703599700587529400079887203445794939709811495458024705041465859474716597417740034226335083714181386547216222662885915687803182715811442767831394915226230740902545359911150650159550435029807339300632987095770979010807164386986421039363382307955754210341310468837965942209213315324452623112241913094949147700952120237199590905467889925713458436571945880852012644404508198210261972620826399614861355863159459482299594359335042335381775892892215123677458337960725340996771731058842940704051398033162982281512738436506499984882057568108191409624755599671214254692899988072568191769996735589274228670889405374484551996103309751292981229286264236040220592680524329289999032140006933906937120850210604817221549632410739113224221867841936448379584720603527207425743794400842575342658888069841360107610830957941920809772527213756084561016437691022047674108665057032420074092756737859162421790079826118102897899250586970599753516437294474069164049803049814877290358943197495826602143015302263834128365472648304462865571996938216671429146685023511404102323939710855169403388405372227918335199248327778144080560096688948455450373293652885016668722044817120903991467363042754343181755924041235896361073739287517554078473992904683649997231583837059301087894994307327627103577441770816324779935264413008205831426727448208246904368248450753736134419656846959633761547309806422226958053896049706414649937605767298772157050642457033648979267180211297306747377211563161030685250264594384234649235796505777910093385302728284919396013151641033077748308414882258040383897812638085481508758419615422870463739772353747024635645763880983113909089005974133983496831034366877132058980827472082200844069222635211498968900949442273136983584557964955634931542034219824525220515444549562101755803441596642353263014636137360865325438024470514817691122448374089458706223848798068455820159768411504954346090147038462853510155750019887970983777865401507580137524523739793940848105249006762609841817700154913127875919677177029003261919856520396414338734693079942144820330178152192458969678660536202927098263144941870697044707885088429103648877037614330345520178048759086522478895408423165832633258126825652572990768896224571001926679281163186617954122090340093052473569993463267606957658209018930242339908637425109359654774220478974218841743894094197675313546991353193682254110077866813821890484793621143938386542941012161570062975964472556652647893357161296735786356392207327857481579414856907538825645283834507119216872909740148716823313162207663867719014945844872794044540160397289891668359353191086642430556903630830526036424964351690779579244998999985773461981029929803930987563254763010612453156992649323644814556038146726073805190586918029486401243279209723068896670900997916861585762139002710965050911545429330303603348440100656676197428276217078578664730691944723470090560364717384054151518119117730539297987306666259300691523234504173300612678731556167353119748200639310746069030560940309008443832521275754208450823656320717030637523506766301573149294163926555275623257296582696601710315151946692721108637328815522528911183143704186543434302497167616604028308902638421309665797151978499460397849343245359727115528300271577372063452233690795179455118298456115593238867680411700250910146032706404585162554267516649525010186367709175953093367524303478010682953536824870780565556039685696137180318699123272326192407504436071045170578320015697023150778862314525442337323812197788381125930443426085517371723765065992766896057117299963038350382979686880763717287122466275751120171844159287708813431303866216411693804826323751606883147978231303377706615124120724613886382249699291647208948172114374623211807674758453017972776003483173535587433781168762690242759981756302234597273956966370242562348600763487421974125441238347509923448937408165068624503033615245605130652575510755320735155007243350120301110420844537116483710707005042606761000367373034569933950756863991459665893232821167427984229779243431459256049765672729416237494092166196063727138015405419769799309800725813831466024935231259701178301262937041088102703097771308199628347815877951336448469810005439098819241393773197074126048126759337966914937591774642560144391375371237666982722589772256535075777463779711420952256133113141893130227019685175308194382593806901017027491019759472810424357763980224713599565868988038421355799304484631622111636054279564232669945270568153720491346001368622350856335660336311746488070204105716297083953999372321204216354381063197352321885698071269505372703044121937489306821826894915773067420267879650302757672521428145821718130944415552137381351869005838047175250860393908203710511680314745031589794021914397446802374592075842104542146944158900996074438516663535338440926125157534482173487628124833687900778459824901466434883290354961454121601351332139437864925622994068136378505958774807971735723784388470637801570405923248264666253672515832360352853775554377524121263338767329631023012207819536515145689393934395382924828920071263411633930616786705748076150824264793459120594447797551311331205721753034752219216626694710023994223317633033231209584626631744621011249845505025563428451776468907261620729913868361841313191367015200312328715167003210402785728902080464707000072905446886189528898411114384227726149039308775443918993571632861664298034998082929237903697541332329793871853716358300279699251174077870464685606347488091301668698863985677558687628632601141490066910245559737948694541474562506389949702926295643020635920417674048582447660297256290616352171306073341616399820712325579406633905262658096929492790976412364022830890119510940785226533788393084256029405103248927989191810924693930597150740272593555302714338160283399496237481201062661159497133274436219235236340118561362133820207765186603255062943072004455399800057060692116120418346558899784909430630913208589203772048961936786672736848390164998016507198772580618729099902504902345077189130721764532557391675071889265460981525618104765669234519178887321011475745660636993096254249976491469774371598757442307239994400766957697573718948071326104860195001386444556088247047118150211814807473535984519415796855495121884902284149790404033105378939633970358469441212993034353972810147656059869248039082097488191217678801289070724924564460973954698254222892956041357998649898176422552557945635082832700648534158302914716973962238982190962942760349902321821533349943367684255971469366456786749838331031995185886741400583766125665398443708124248059821099958232970504777368860836618759099128006468799063102295880902508837779862144205212510945654068527377290798908508938710978001623368856466617736527291785288077403734104255678983635614411283643101396558387010377555145463238313890726392391371298485448985632641316030408787936294547023873661784596361707192114304317799054785564820892645030240703367072372472086501541512882777130473998927888179191061539822201906226115886673021407778403426008653008106208696257390546201864803315996214643538907832420911708115726595828246000328092941402201353312761351392690931478522673723204295314056498486353532133445529854972544993825160746967499109355218086771312379000862415265815712215719596752125266729534836144893080452594027903197689964681008704304459609927570184469411450579627667155294397340543024467323498196192538493287259634379282531180899819433954168953251244084479010624130685813973020189938754172079298674111310044503507653170922261793489799694769593224367662202440626155721115354427384259767691552804625032583966045668766439716526548448310270619992718279301281361999156796557566627143459202105721823355925557548327269100648192530543240368930526331552040486128144913521971595924986444509714507460200154645201050870867128967072074075403429203354583421812193448910486225716867740242549239426053747267730995019751097396681367946443815504496584290239048028684047176325560414049322833859203368303785405333770720903094614297040833906852603405773553482913935934737724162091977299949306448983525018642776556559361533509408015826076106138600777670411513702540005120701807175100127498000941361610296140273411128017987268139312084555341131588736513026877162047565542286377227087419464731603023753483421557039522191319007738519847922938617141503581871952069844180689848540494117984221217856793995239885592259015611302021122396079388619780415360296099330286337612701947063074871212481983942002877079382729415395712360704960863984850231280228871337672664738734745178440361430749718738247043403179457392473867323058182009643973305184893602376323757263804815805420105201112272830678879271524854718522344584071571782583103847750683176310347575553362996241785294091935338504629867445247263500719212286535006634586895981149233636650515393667404528942394584691946660908338290593478033206706451531004515428230903935282413907736688605176540574747517900557689987679194921555989197323118965047024400225475211424508578112269908478721088297616599793994867487918614896882995303048478944259419797552667605110868721208701592731872855238193909820663090896125809733249138684806050159223073680300786135111482651789657492152554036468378844514902821189809131099666644807757344767169795222724725769266323846310783788403431947788776494747104952230005241223532135938492113117727755291259568812174922458096899044600783642136467935784384667468928693989926362486481727149475416099672923700475395878268163538966752950066234740355526200165642908044690591461532760427007744108462589678073406229970260144647972083190031859647716655643296000909019797520844982773139799847557003066837362730973568918829369461240647344860804685120551576744267964936825614822742835228484249990560398150009224494332109669085959241455428494788604023458660211358145856882453364270237841854155677839420856300921386741870727537217518854702739181690738017986244500332350290545626936705692477959819465158777651593032350148884875178795703381703216611165676667025195244661796146866172212493247069205864309408771614952446311239989143979418678873436573160417683461128838019387854001125524724021292289810856006601653022511967415728027181570291757951669240513723216890966429639983995557406815217157226760426106468660255246726239699972323842567869931682035355482158277080024389816890858397535261699269719056691808481384591614517443579292606140957321883793863436901607174004826408190436753148778037985357061553380053675724730668477353612753814367158936920357309654427376775576614033418876066543200158155423934464392266697713061809816000311481012258116610237686941681877147938212771739315317499655603245716326151552489605995374911619156140228000494744235313870156139523349095357739498562534685256069613324937423368189092087425923296039899786719115446321433993811879120204564916633604409336918648377665060993844369449132317440060848114778577824421295328613568877813579908490507895021136946296806921669458073709138177766150120785151455529169206601894641748704157961329017514816901564763510501808426401526992121425988369487827938696903552488297868254144008922484502739502902179230584368178742841191525988201382320395270663119994096329234476204629344891159543984972309969416633383140890544836521898142195334998634049024634034665631608633174106091267090375140987480022658056908368326068423153659346940608895589319838825447244145663148629043207346232654724777452007922192002851396546830687614979827464385050342308494045289511278795690638990991083018039386643394359319896887398150593962892096119052845280245983826937770577689395283913769604993157971407401318817255164182219893987763474413898732497243716218884743428982090451058388261931337493571287665179148208445268792690142660848459255424433415505520087201948620991389257733959742226925941680017850125749643866218118898574377307643185720767715566212744219741900138434341629459354911599228804488575094127980000782269723379901507659484078586247071074959091992441163698151796311720349060737203089432560805376323598408421532883639656333278468783331010775707204492292518445026396491710957608414775639565537707992469925967144246373671033276105463358248121650989399335307927838273909180939537201596013265272618338690184218419900077364139300988499027738948887548924538112942038868993063496000796848302608540465662916174365192184079527965129369203971090335268691657137204286871347612073289555868395651625636828028595669609978095150442818600608712150596205683428484408666464835519659648191746932979207669831023660399968918687550650523749499771674472134861260928590044068245713503465430641593463439100751390718325523893565004613869366092703360187324366324551235243930017515575723731645539504821169582652392799703541560741502964223791823412707340927213100271709405573059720364807160637983219425688038741284231033618617199805304027533062069269889617224667929745267083420212633844841363030474653139147276397434131898751171020217306693608202762621267200062790399229601028455346429778418732161224250327728886499092327336726031717715009059461954763960221740610583519327543873040737771626515144549895320291638854432149054118267027479503250554456572068081761153090739846568801286105317240546010233085219747367245598719660650537688698933559664226197021102410011002002287245326080561675047126911408610702015999715221972179190327797381980891271400024263527647056342444712650840069939193696848753994172351495979641550104426059541883538211267566951837855151059757221865697076600377474517643113892245008973097640169299420961111450280035485208642408229388405941366599808335038955399398911082524990187145138607532575802234733239658726270944668405664408718599552255825329578482127600501656793734408057847215282619951219678237933666137650984912866450089766866545768069710781049892978234974701502308145879012169467894724557657847256537846903331533672779555796268016079591516282090709407978524270397134055018734866292225028953548250101577162523200403824756695692668650080929608493376008898684941385350269293699286935182133265268986592184509731617674772388645127418988430079679412931527629491296908831423547625642475597954580417454419063020202995518101650349042684177370353304383064970304688605956785844890270056089006459106099108520519963442638829166157965880402212179534413744938205581867618584395274167312143601326303423499071779838971406767701135631136724174032982407328019791342843612290176191287584579071028132040140411059213718354924685961105118149758593923489953993404619281703014910037790652391796764125847660148404834823197266920477955265198348524363075350114201588778001164755572559868195730129761834378002829090836503424280541548460347950302223777008219921208586464950169402451794137649730654020213353061741725115935774702266154057283680711092640915879680143248023822329838355469488341078580157242411312932072219389551625496233205285308633350518057686951892878784082242856851668326648596044115153807247106398756687956673528520825947308142633031677143352057990925277555449654598219952610240597568489496704004972479335666595337509030286871655091184397813982007020395858121840224533930653311585506234362215761296475635866325727313487338808890815707615629614187262004495163418185349057207226960021565454300282226458957844255964047566143881051352837962424650942655258774195776252991671004771355192308285061601295754999063165357687384073252749750670557826361892591488916365490230113157533064764416582979267946811240710634996430965471299739629308008391801282422650046832649976264222813391460670582398950403277712415719827814121578906602961203202763754971380366022626196722582975484763963357139430852169005155337552910819096920361288274876546873196028713528162743607007774467426640724105266508714088900025699392748415389779063168922982956703041628524721694187850347589610878000123993646287755450866525376404008240478360985197221841016271462876502968432179679978513179528071461565007880212363297101786563356096886725193172984785971849462648612115043482205439737734682515777300837636240723931128652597099314028675214284945634204140132704994147216344613733589910050984920528450658673150983470933617841384882101201579385403941996171419951721786022861813714539462602931681785796665316088795889352174116740925493522802993889151678063522849037309207538237285704945665807433984244932424815433426664356400700452472031398929064551183401500736148685013045332688368700269712620889137138581433196399838131341901193217394180738375309008214309982433946991708055152041596630167179663183385128221019821077506204552342527128466503437802579459891358916973500684022345542934036797204656515722781199629714429403603420859208589882869628103624435058735420748067905232495073539581422562828646033267763558507139473235243299374998598536034640820385474998188551269844214136065033396283836822013067833008627703559016123376738427096629379739047425892099967265719616626891888833339339978532699487060464039485813755080496204434247056197816502297364549626285705331898902169492134826550172404399240320993439951876082052090196982996923100525442367549305462057885237760580948205398213662590087409729649127103905067209858586020836167785230776801182006637693629389204679057087258885533176992910766505216715777338321815338852548798391810851195569115024848460532015513583769036671906808376599253699348373618086776547372062192337385417566562882601778826421339282086527926008618994923440021283186822476212131332108335676975061659965325917638460181033753360839397636007222659457866577929424096095526462624676883825103306813942953844793910011958783004326708581697609364747867614686610817497315860966467450587918626088002344809286658244402973005935605715086504563432897680057709869286302347236810110463361063843419840517080569120850674193388693532684709677917069626068502841965233563395667502500942775498617012846752061806217663257681808874753740342316978370882242939417907900167735898524159958825848419373217859652880398442241075358998789537295864260004038266224698454322313177121086170877606425871037806344855574287184556945147169694196704151486756072410659439331727824644015323381104904441203225408092357319878740048912765945038012127279536163382572578838452224146328629914375610123047030064996927299024617097549040839642525567510530494271639638600643217919116558548162429032345952122843698347716504267435644711913168929312678797295002516112300620000474558910503935021057806606415132275500624633309111604667549405058013848417147986614145433218268424497323330691164969044180722807338509271088990537881616934437652332613737881897300816437203414631683048698518921746878449709359754728344818439998187717168822027948105872644256119952345526591680313547727099823149139725437115837319245736008083887186428275029568726525958205286048945156306756489621956687016426900541124693163882788707298122999679013513804300512792472447162045763294043767143258568642222435179994289111847772715811536753998210672510364681052237345161298662539088024484187867004484025326482612132979107611862709914903762173332919031692537254029067904997322296370213158422055761764154958973889932966153191238985442150400190557125308105215570939908319010960135857446414063080844784035162539668811754381703386321538665633426641673107529594549645151682041196929079904006972912796746577640344680663830238229836445246415201306210164240476545188596661718577907529826143934252954164835015079285761118474865971647584497136745770650987969420325428392162253014653905074737897493509552652930150907711805105146755145990601500214449274050120106673837789581635457371283252625824487836019441692937986121965172881134535834486193038866916390096416378052877071017058206526466203589511596738044354894202865649107547498698469848760819627605032316210649282344099888184100923742563877220711894754716046131239419511839785577602686905246197625408364368199378813142982846446147745977393693128325383110178518542928373687300274527209851960489026088682821794224264701585329679054208453727904371271560309564234683200225101523899825144003823801463790037383751670489501623198023570192725115170743668004522956887015092086209082368163780706795552773473178683804037168357266361128613995726856067161694049006121780741453287378615691926179803817162282092000909866718386633374733281427900737922225563024028260148964469707004772037725475851722075247518056547818786107931757171172942149719966714241985712297161827381172573285075125158205154813911046127961660691652312930853956100390727047132018391490843358020257025696024770784179719810198108288455651811844097074872783795498416624364704184500692500307691381215558080732458244482188752529277931549486569204927748537706804352919089848124629029920228725525555749084211908983609603508715716013094110395219131388758554205088188729538459192462449970451677027944861162212468042589152278263888837095657927901144665637466398783325185385328895742873317466117373488767615126863095834976905223433117809457743734060378274823431396292891200745068897031331006586278778629740712445432990320504227784215122782156330995243749240609413665446646622405228774153200752128693836365638090185278927398063754423231451067092145023141865650533663349776427622459916581737580039981255220791107026137331040597359866126579602537917434180171101597811035373407305659892003002104672092675140065648352646885142569121972910234496640641358242223309814784417396322809042080953809650256243751120486350846132130927692312440186599306247251829424726379325945120979282422683177882637611017439067969260255769144402034756591708847275022354681324888285321287592237925004379382324460722480834564058146932759903022047349345825010236715752656797284125092019465179018144664148660143455204285861093234080260202389000865579513306205071100876271633875777017387065256960626082069232131095556249178409950813383049540241058519005524927090556714769145181154312744425568545113910772643876904252916266115248455549318923523966050342175505688186207683743729605637508719788671121419766232982436364296501017937805310868902696677334303755593888115908238599981330167145749704717850760750661911275769580208298146176554856970810361873504402410369944380062309914712926467254839604271313381375530943379732605047856138781827626552412719517748479151357653937809350262015039181746516945843605477271033367990610793699220534165394264616164595578045662718083226337719007276412537059103528265722314631803218984710849130417319465885678618509241460210919835809563811690748785677504283656171425100648887806783919121976584705182612009981878379501579989941189093753010403129552275297239820912431710450294458236662146770279924471284592937805082865890956955446219619371695894539870523323985896096426966668314279518525262645236449644073829395921146075826256437249951918270889989613346004932556288820276842365236666423607848593909867342534381111443380468961505325358059377825141093809109562147695477930437528132600047474580213894557357530886244949481651359761988764444066140840338920702306190602127987283176556743943006211949116812043177957976981381521297294606107269498131065629596322012595325601543015953848256384537665772340726193245673861739788264767897114145878531576641708694674066911330992229851114163103192842141436165957776976143038655225704713317194034242774499770501583311476109409536370811533529439109711411290248575473937580330925560112711970083664683992317392122819512724358208907401655061615378512863736254494068017628962047671859535525882501368076620433275465345015121170321507396963424470265025851501609110494108672741256936009781988441381308018315144303006109473516860108481590171349113370879426586757591937083146172660708659244396894865206889102662445039897741283966589242776597745831447950519645541634487670265050162547648396858792746827565342953982832684933990234739287372368226454359789340066072405971560818813156329386868838801808617773946535484692418972630704614291965230325751838781516334458404174099292804809051323711379301248860871085151232797354731489276551682910242330477476325642497645753931858182759750415245410636667739354099875929008100077571347462989786732376916655475440673248907340956720650984673310658244192693495591347939243971640909400564817453789568751610690643462818714982234972298465116084832249583771280406309845612621085503005354527371152188100221943858530812078540674890571287705379161014362012289206844666483206301668783851382515535775274039699209700312309996476126585904616694111331851483914768001952313898304847750206520885164034225174387327125598707732793457562053868733704994432584750072274413658866649160595930521045751622959079126218636431569728062899469671470500742692522288358738519529911054807008541509532249172517301619802752023451648720357785702430910549795512245808786244078870688971391830873394864202038614134177774813467147185317826196553350723377858609728435292852355221580549292115360683952794855844780396203089529385432518963636746858443173092941104382809679495373867203946153901250659736853993964332729189696202071505059770116231531274324760674681837291786977449943595381667687141902557029230262646632477637113398444599699335435708335539114310342295681645911454109920771826464133744802737916476674131378309188661384602950049608413215357736979773853706606471052910153945707895951978674643048636281732996245991910822389973982344076314684121541860434265627586076240473644630732367546594446380460238259001159159329857439770075855897214784463441704960420546381044077470320819177219078529811443954800927666933660297824396743356443308175648352273106120642695991789644408905956215121162875232070359953598474407126737721104294664378882044718436076625005160853689356249960419673557247537899432376015847677478349520820375672541353111550030712271659764764653882529085208846229470607368326007574116912037353810113320959435334622057065925602514634723182226271825109381420300345102037981674530515338419746305902403516271697657082445676422885948436432835618502407246481437709692719942662059267830811803694257899056670573989403109736074080530176158126979733550795604373814371306207112345654944253550290717591910820171991176868358200791253372009837197531615369342012220320255290003899874738489915066152404042659981785361869419118113167065932239887299743153742107354149601682902629833250374244714913426625605467342925314844887367620441354563931448850169488616702526369533300464241418870485220036785842644148690524559708398669224645603088312283275425308148618729746342711026533136501616623294097984498842691696662551064321529586453164007950439276271293009563460541233622234955570229619728360090742781329571516960114735500754203479995636878426168206568553567671305612791558357629511915234495254468622678409498245972580289122127062976131163396160473030481824675800601080499368001972347022139228028047655893074808823229596226254389122098694550139891082337866601424949765950875841815711566569089827928195613274614476395816483757247302120989980076534190382483756016951645480456438768393495814831282598338775539353545681624559607783582463777563494357905529577341944245944051811832921286639390821967535430463295379998603196738675350858737150666113747630426494374133873080413237836677358373945382091290048888159756885237571389112604426960066593264142724755988428725666506436373737808331519720423995579863095443976078992980410312050092339960790130372612658334790288420668142545036873529572518442323268809638401430095261943041728623970462935586329744277879115533816021442047185252487729295976869561655386835960238066355585195832383435470214938141910246831591280537541476367337371351793518672769975431095910746071182054348195166775486065610035885759740629706791701073957233514326277901903827176870010681404312245077159810995376520048267304954606899744566475115062238319541919029625655080200477587247394747963669057179283851517301170797480932983560730312855101762372192921381804620589619781709355383295102855549288542674991874805259821708149177839680320629358730097094739696545154528309178431948767950298329646207112811781963853481663582395445719845250789662508298582462783647264500973033653193669982146469593309890174167554432163565590195564855363109961714890107950722118513823446406562353479754410178148829521269076742148640254070671499151589147299927564947125788963041399464959283823158699700184400557400344433401478134021140532614733120058703034493248279755551304927890381872097829896200940065188508691232978508167217641834727219430141953337060514338306388397331155915732547563647232764282511486298493265919152681626801112992246705855329960584177179792677018280778275354224025780643604461008660668213451320493648527863929923777964533955152808430709681095359038454301896398386420438737990860931161381539878276795326928054709171187909059066056244935645298627277058608103019068879585252527055732708878349494967610836111390463291928494027206625903808629002456763867335259892586726062264559756966726011475022635242131927029889483037834253120462698126678728220523574291563736529763696648301550375307464521186727765520170441881596702853342343722146352619099370223274415610180105964686597250217508824976039812409323849979729324826868996035254839675301879745861657631363220564187435684654008269443659125688834440291419364252295166382983332661951195869558492909736130752797301814082266177057602642816187875445326582882846538259950192802706463613836223153980886418044451184741160250490433345890865685801940830022912458293524553087797302593081636568569010277920412847669441755085686524828954226931333293456484845538766340213085061161934239058089601164892293692883805593740872494842958864133145330132174502379572976429194470956711334989567081645068283812647492030151655711285566153267035096509165961789433341929588858016005439408494492421051038720530316889229821408585546156965518407332535808206263022919268866935446045500414307247945956697523225372209611731402698467522173091583004431339805657578603735502989519525534629859637418444806422751290791299446396539376738880131522347236491775456247074999354268418461146684602543090252303039619203637588626796838316243046409428342111123719675539242642170544443559115827248384878791875958743205452084743624020841462160912042964528933584605429261445786526588215439662931933070976533415062310225554062307654143867958171240133009329266196655164822224000581171406663836271097960590756213926434133962270465184125752784918893775877727177464350648789930579929662019338929825875748467167766563505591126698420786095640693564984688884774543939193256058180114357937867610769206975842807489297518235732890954432952885735716945235446627024361026193042909158258771322403255586525678302197887082654183710187690150760535374874051950591005751011034754093103313649383852918212790754831047854913710221392362937864379908091494644011267287409003818189016932885651200016005105402368991432815215462538967657443332304848800974397758616117440356714098363779503863133682881526014555721492706649081155029024672038227132979662656697531811787449533956513979111112373096468142894716623947149820188316785661380621653995097527931212132219403441907666772109598511936516412191480946787730053961078725294151168987375750396096769787596640906003296175933318133799046862951066865391319876227076176483751433806762590797585301796057585744532779551823399174180063772327380756532942438386088563359580330700886173737290992606950168001981710337729641121334807136781278802804974550356115984268629190773961355136825539236603865992783294007500711040731142877139687002284011089172371828938303396838647949267128352035002971333312735738714126890256113336680500957838259916601147495706801365911814914934282416604443658735081949551442792455671074984877487978043703462065627553133107115094521000314350954339803237044996754467412527941357524439442709011840981520081529333931792123974899691177486921963686237889568732223452941465620540298226868643167806808641816097734753166968427364661989382809453988487530349457448367318209788490320958742002827311631299945525004398480994349145465749337930236710925271693437358996171192457525003003106284627124640029715110786965804802412063984192193430577515858207582284840105297188344461627922409752421923330265539314434940837171256968476744291135631106691429135109078142567482052552925745423099792660955321574975709146351727809641364530178495306972490308801358786917569955894924527955857289459671535963648605291604326340471526845339032838914756776451851333066433059832127007308350707081425430973505085688458369308432080451465721108800901863622312515251271697636069647438000894891933610668237268787576456091466152757573454207759445146877961630559004640419875841285517766596651288257731727233625421949631205929749982406362485753627154376617433393093378763428270467406857561580134047154087974513615593468891950246265666634327508181952104184257690490982858818133870326912574460424983547932060029442340248193013118904152802235630590502743691713792806815492532827317956518811028937089221506843465277376759255464376762447861779691926300516108786501517855203391970348548445784107389309010936916788841761588590804530365565749720119634077298063299301388424810305023216367889937487329774941971933938261342844220405287745078907299095139135782620174344352827197081379236310957728110093912431492608101688376973165672771827312665736950914525135476755922782665341656922464304311126649902773892241038898816898655125776425503546101697659005412348724251134295593335841200313309724924623852214672010879568182760095153748667723675509756576960625196761498827032685546602501140712270395597950883240022919045341084787016400142959736831166733379597624627087700381282568854113653077379627955629348097698548481735573651206431208936900183847479492274368729999805795276249905764675666138571455621709816172530875559249972208085018821572054081945993492820134266790877605629725927332800204563289071144637073821824290360032389444682830482238434102556940195038842629112106467340005286417685756930322298922224108075607222892448431289733563379558333867753338601631224522534521804139490540683704054325565419825762827345861343321665756823211697758738445694813409419203521779287722748224489513782536115954190786475873425217371507063044399868681897304153676583212820722848182687154884031511347260196706558401379255153131183754128983610825845777503523803225403928788314406176383524982260594679669372638182075082935494944862006361751990878415487256567547063423146327596880485152394739726362370002954989896222344556867679403386537163709864162076103558280851365429204849324580571009493499899118415936459414904447512987878963978638271178149006239441995817579196151836470761801591894644486024258679781799566586897781998105004254504731677010808238341851319738126815273541384765107665502825241721264735511290454072647725494459947113563196120028101823768392179873015876595056138075564335435287399761862271933776022988915832446359308798163715246592460566216906943713669036113737003047941040946272671012828546677871154278295681727894034338798442682579793479084099125189914046636642381258473864951553363604288359575487266213043489804615361276654474875546496782293940009779200051491940161948285497038876484063636387437501177026756285904402100101389283684548853796269645572105316989691111418095079622845070531898953824550351568201960167933116558159845200180366039107436502934291936874089773317814093725032696432945045367664011670863627038089503106950718171482399017080680026488837302830140309004936567936670101062935445033002821597532628343161180046304542242142204490450605266974967562858017378087849458306435927592814406716972911819322797774888601610115646266513290409809952742912848505696545074599841627881215338164544511678682457820911073202767199762822954906350890834147346055640481228594225575647023433500487928820234533197136936656202214811647272009146647923583170958556289419119206425347357587376482369965324729184744472614277998770731037840730211903085369304337907019296316930636018087421556715812173606718627663963232739007238386668082215207074217899812093077388530579611226367933890229208370118809699952764083803698297636240057920477556113160695977205855358733049185896493631256339038775102301971620475699798341021654189275784084825630931844074347944365527653717112349824367655507055599514763430115956160814257594855105444297796487863820499647924859309617361643084842035240952199878583781866464766598752999028259942570880710714214019023342315611890277556712576478007405487814848459663127767382833351010767266858729336051590007768219316837434718988594018318589872350019977276870297637487157685534369988703154218716043881103067729341868689928522139744705612243332400581713033827347752541643576404300481258578609614546810383362742824251118350111044614426654706553084641226727492655065040204477767984301537091690375467757892260166780088413005136819185235100910388093806401802746014304015599673272088187663689358037598070791312349599134640263877561661102857867499707269605803142886494943460096945541125358261068063378640416645547093447364785440300071693429074126720354321415928899118274217279665021895443507326742662109565816078146116075461150805826322093422400879654855607793595085249200454826934364058808342918533892585887079515654300012162674837674754727018045313723418000161534312401778431970446532436833986243849099013084989497684367740741010739103456676538583980235400002395563098933091672250678092736806568766675560097111379783426379719128520455076170794337907264237171088138807507048359317700121435514487192594453615657614310939202762011742410424775019871463792186709837276408566125365775034472412375881229440320414337758302729570546018486020028156302429238357046757316359620032881194551025678407705331563292400782983403756043421893421453378480452299815094381791941015219633543916010595837190897137503941079470827813111527633167048300650227619342565445531153013770960042151544751974622187875748609762825080412219644083568847919675685483805192102830973720134397680726706665106586653990267927979420693721041582368872207988188990486782329224270187632844741134149058352913003415971990460245187850654245010881076325886369372042303125838386329378542762118304378231148130836946445630522392698638505591117223385644473540396813635874649829014202711708323120918003169004785849434947433168659550082442847045614600421690830644426687442423766616896800574152356073203668445252241631411697895646493617559663931180812322825640049477706027786608176185037723025920520457867605129963983905535085019481635955569621680508459714753631960340533619642586462637879365347294382438065256795222448196763503432594055574352180622266957952569023031578226355216045074596543057118191998650814278650294208411499608755768358160762546033458077007424050389804945022842303221066916594924072167449608150786502023826145716919277263201798839170845795590818375393573309535788863336182666376139616969938885816694735538774430475947970792127446325838388744767303608797513161744532247813701553324811559146595886772383251987969719059919712375967799244257661434225706815139475195610141510016642310447214021227497441766716158230936420431708453822556158327670659110518202839763290139779554235168864334850413530351175405657108932481139045505522972862154180187406801424202975506351791409027266059225100579496484818374250292372414647070310869950846719409203147202574009936786412665793433870469097924227243770245932063087903911260150621751789236244515592111262927074177923762934461536394835659240805337736125910557867013535497811611759550969029261240444204030681814792100790846668110586953945404719998359259401026133085785258785728989396712639277846476725117749005101863217748460849771504117855402579646671278946365900811860444249707465870730656448718202012577235963399086451146483547379949829403182014848442050874363082852872562624548491937123407367802656059865885276474836272132103245748812236828509206220336115333318771528882832792514062671516505977656470211957105623160865109703072790695867587565924665688183479679310283055024160174464459870022987735645808477740744335257433068594765304655547239761854560706110158687945078464547068076747141036622478344666965687047443124185179210636225203684066806943232345940023440714535185083539341688114355801725171503354363051360594629229535136045499954671188482268214352671562321204173296182478973525998837060525516890581662590501634416880837890072760125547334996721127451397088167884094879219824380755312543528931773114533602722804669274276787703124785241441546178346939102986637371989099177065551830426949947835847014038603721707247706889002698618098138367429552935101592231948358847781631813953861926813264402691432240591559054172361309913050511227314422485487349938833426915200259548187121544181787640512139966269862811868645461193726577908568537534399049344890889230491364921786565215417525457978292942416192881093211852325305216128484771257341141841725205783863914784277224507886048092476094362563191213622956827078778316819607662904458085950468179949045441526581410793196057020287761783230659489157609316147799224457275908813123620201300389690838425307032239207871074816538221071242245513052146562973024999437548995588801950711365336544624303939042872901302085272808193197006749857249851986661809788622483320247337215583078226782883246631927421496612863725508880517409160619997691226990946741471255637562785494577294653532557931615139500700534705877742048323499190164636687005280838238336658470086053187371115787222017304792357283601848616857772639955125137884753395693383606459982147122756685136110091661954769612124645079619616961354097785683616537538671885797270037655473465757370674365031882528597237421195595690062084060518395622483113692128295276716514603405702668716609132300718754124440905252660606644269775763464359747652608119407927803018682040793888965260643308616104731560562009753662009511207280694182257018132805893515923388135583210493509177161187149198223382425229159457299077297421537285746444428337540432797415485327616850128666696985549691022954929369812647060524178228238093523247831955443240484593134326287712803295926778335421964966000274890444759981760869951590203107056303122956789477030224536765985365603833624999860154886290322326792586339350649208882016875386627662367317546450543552569418803396508656889459917978002106756659319008164307689119896457111976091920835768489431178042891440395709756365407108630088332369309520311214699278181791012534954016704746834197588097162395309348821406182970004169249343316343716971170085320998450987285118595554914510374701396671990277380793842252026495223001848958176598891085656053428052539150249345588238068930746011410428822610539411365691005103285867292409043309175994780182224639722199537170173868121640621271582619264585976736525723076757271056062849658781720557468156407367803464925453138483794250323695636482487797636294167653129658114276879321743821678838308840015426138267677191340528107081058284695040229133088186570915787240305823006764602298075832836408504023403078158350499476744990704598369254459157497192864382446676627686916751024648054551973481529642620715256219958051844362303111867849554680477953654205727032805419397927893302756369770183599265928359446182039929680288057650661404640524659625840917683422646550792203224594465647761694748734193976081752357510216032124019692385394861025300088436508005062089838421061546399229790224234679732711530111558066949172073688200290310902216184129251725699032959227866318671425538575886943473512062105834543260283715245897062792085908265048395267090792309415407724585684417851704355960214038279709274050170853052488541370801725802051559315681594653500601478366302253300835557472371265852794993809085071125741067429074395105269644889091737875945989547537431154422168082263128152793942279255084264294524840247433573878735877839079667565535619565961816581245218820511473865697259752448830482201602946480690486876624416518351133005372409105012178696913729727939588161150158727048775620000343847965531165734038517591632301445586605838292213368859570353625430924140341074209943906724256176135946920316183668567093800325778428205631893465221670090454677938671392332172051420666147934594353379893001454213142129141732174592456611811412324608789858785737901645370808640719475945727759314686291731054609363991460781730225011021039376014416520031022431917597481554213920612113696773478190073285605509508744351438820028305442557341237509710432046107537667804769169781777803648165526158182585472657857978699442112927323607363787830709608512648969892142731165778786385195888319802618081801433176324105875959098414601433014449092452409712428605438670331592274078568684429911556237540756908382966760791033785639169069937882910495138233498849919501534199247713281530566362961753872135005663699552395478287114061443839668345819543494991472127915021198314165851717289122291755751905529110530278601258512919036008044733563077889061599061067929906486653759842896035192080896774065806752714936939810323483507316468225049929109450040587672298829336804895809402870972560644692682609332730718591836345833560244490338603558790271115473337517782699667662440086450077798466420735684677321075663021520878071661426783987698889405644735233200569993283911616741918869704292252375100076984073416634680087790890423091055311217449297405684337190481345859669193067171102535797027455002121269332991761269878806064140954935994877180797690643928342036795576297867276894109568252230051300150616229042764642127579849087491722424104426447778998347075380734325654566194868194022591845272750913732455555797984612973277830421302415774093226718376728992784199959251435421238101479045135631331066516745256512311779285998409564681490610786208432719285700951283966179659688386469594368202967119647900261757729301359379360423687923955350658004207147795674109342205360644662368311192857710858527608932023931540710482371404680071492489286881155747528434457779111421689915926142494621033391478454043984943487690601105079995444319692969399229579680377634298710738940608215898565219930767338608210982618483674340794846998740739216409219046750071850060539206074726882843236693957980011274798477171782125118435059598220885950107213963046994986000351299658521589871217910123761663013218570783006597365769011565211233502135940750541591420063822614738515190055754735617999885666947698114437152296632527005078054088635014136435016468146005728530062506690050054903225542454114853792799769035833591208298966859159002034314749657534048532551441680538153588947378690492129556295157123857893219622121811172099840620147020675363226443867634158982470416167709701100007281962729473914325760650152392271322540123974497019211156212656847122043836689190540721943007036001358787480137736728346064961742452287262043279893294810863854087691033899167754396198398483276505105410092458861120044049927510124895457795433767599080073511687693827225775088380177846100650638304153083286241192931481659515265804162942314972016563331247686200246026786678789770091562453910237956370272527680312961894642479344916412226775432190543753605309248236712148121487455363807347167299606154947657506450748273917204407393736825317821060491138347089125155416874719803724755254244734534479270286104225294521066617045289326738087610793982725358597087447325354093086390754121659714121727913859312852722605469442202251808895253904630842591412560944929901058039141080401801547606205364357837189847071388823787526594415286545202603284856560583683493204982623093342299093837333344893686833332545327722584310706691276263315272095385950468133861814407775149656898740414738603081062676923005751635273518793921607142917721214218739728768037762518064901861256187501636010659707393018800279045976922415909565404957290117984109910512671382602970780291645760096174552430243642006629334812964763903703288374728647897261340240235801814059028461226539895898688002875312087984385853985259666293105051919441326630902391558445681345954018761476026927195385657734307121889933691726518231856507518031363438397378952292926005982017703770451173971334491940093631292173245347150964813106498140862290763124516694715980434613798049239802701962759047689338231249682319787526482236274223865613167857022133130431856464269705890728982028267617638110166549363924885541343338888617134952333803121858233839742901117191548267091067025250640444008456607774110495280139869714565856049906396775527303198226130370087589657454089408100827564229956629909899677428424472326576744192412931708210119645166548117227852991388898155809815961130721674129207508583237792314665628174083091591981191113956703387692363435966221184306449339735719323597826066684422718789966138537573255929358998422597498929108541768362416512155006825023265233431659346198530532603017564714115209167747744093651852455051680795572240205881052590099029486532354047090507755777866031819473030958924296076420577406571703826863206018326668058604299988898794292746617713708053904430381559519561025530211984316181637175496362217228782932174097923480630967672239848715624200686209155296414497641845539185912269352681899380840893737677172044463186446884139625474978253402603181171039816104952732447866259156212524196599605400085213474175632713127887849587421374160089405583852270345628001634103075107396534984028980455319542327984013660459883115170000795774666874534315653134264514992907476053822379099736333501095683014507460440158218519930072667567738192529767390003045971659850035369691178136366612052789570645891931115069669448407247135630566868292772555800732046103649070153502091234517210018786964251138805521285406176105680396571327020595118232040542438616292310899032939782844042925910196149950895779765857876171150325217255405821687219401693911295708155380882753966917286074461376057189268803010795256656069511701339461412877133728022873145797906809464432092277084470287631609479011646970533664773682450155119829118087900456066878831290674273663912525116478539749391770386580651203167971485856169755227283830387354796438672467394384990050829337885771314268936170981854623644853301250360975893955284412520891786327490400795079602886580668925165993523461976758152712707283307356703930306081510927103890092007906172454910248079178327085042778561040877934703625494863083880882212659613926128600295169018122978086100108421215924580557043993863902749527470563857062733016273617031727895157238866542711534715386129850979767821616879608445274325961664535081593670604628366024983429256633865698488835554709234000997803736427517102120554703810752049993942211330577031023002192008559750768519334297426573615493441607339331410403756267015972373015046146596181759485096366007547075167900871677578764044044050332268428618095033687969003414713054517184245653959176923896622569393848898453594779466438444989072338284841981793612429408622108429443494080151621958796684245040056460872123952158528155325814943437549906203766767314888997612531912417302618270992328980577252115665134572954358030676083153773002932335498334856076412230813163242034664039099858332315702203998277864496152723303858248897879610439688728016312459728213051630296468273942064427453677383588804147512649136708798642226638540279906444889523663668504607675092596682438740049976267476143005146553749520108697329989643631432156643838412489835925547857367860477750060429112916130124238433878708017111918412668982780441383133506277280056690366502763733063959599995444523795340071319770531335430393601689733285218063865258992019761882106348108449601294984523989773398768452316704932291310443614973001445238811410285484371073940777174063845446234746545522444136849537200956394075375589920628768347114051259899280978844491488501474524432322110232215981506474798851967285623293764774863723784166838407090807059760658385693667155033096391358974957069157147755245613149844412787993736995179681760973083236918474875566913577807633237306296494582455013820607591760214841021419960644399536606994982519297009078074607731517282437643879409480506856490390691405193362420205311691508692552925828189719209570246980294217265770680992697486889482329456351394876149547340263861676184261180082560195794685429450897171353376260017998057486463591760163896816776299812482969566676626483351294214510640679471235353169953076819376105778562736670583517195584856833351447538008105577474741354475406630587870507495495896228950662029236968696706928527213358954735533044787581027609536057917881951680687795499796685661281093015114310762940561546804450707124264650950161658575645960029488857092055138490808092917235601861190758773852580808299627489627179512123840412067165556291764442778703641795149741581453017178127237304054008809403525503812150472603007234180733553354012995937699873832863125877253259977779805687980334920309882415784095732288809248586817916261698768171835457478927946782321529853190470370455387164393914287860193782526758521628033705649620142742196536049942083059353652933467245850800819315652246153177128782670121314216179356159966911732011641104019198037140236165381369132690958987657330227470337822921722242062667785574536060397452079432495363266021930074899688927590827346037426369631320487897911867329420647234134082554599755875968794115307810905429839068899913851289480405140696970164492039159035100385491415565212421440491037291433527225584338903428656717550406650895690372769370265093405664012283108206059046357443635749555297815791926711928376663975173670903016541867050581871918378233415760261228013889169002739111872104357625376571192542787688833643513842230141853629222107631179862105496621517799697828440297527434394811472680449055442157416428518358464928726618591708927585163444771082565645726995451486672698706176216059608881020095409744468807268074156207547349220147190758977449701706061012583366780148727606079827994519801663644215955077254845385156704002334136846718206010301231629793554076483446577796150685467106452626352755436295007558518971528453465211516532506503594145379557211138264391959887314413665953204263242025470938063582862193803987671158371424099141302548220596586872019855915486719813271916408954574474807199387772518613584859052968365585410512252111009510917775980652191619250346914246261394589101252267421358858375443680431858496183384260138502129052075750391952252763242413518888259914094631822199072755680646360057256790500065941290272212027982206182468551663667915025384532256906750863410719695574077069536083604366608632786227173932551328588772847831964816469189725173185992087384810336581692091910033579234207993875098695110237416749211427261047268411193610970014557240966574244254377490111219443579309554604225773985171470286146035022474449478936842731445506697819756972399310541834498120308185793577298582377241726309814790443827176953927787726166480071753400346306198708150505033353575970204755020849510976662253025061101668338046603246195810353248383943833960948993786900200196745176800878068488618449078589794633294764391115881402575154663101499356228039160239310412980298767019758773827370829636456523129490212543766692351906749260335730512786229899643879718160020906158406663609853721982468760205903959374781396868818585346017261601894705899986545345010602528194491100286669061899030493193150645470176335318819167137579444715735537346710203528713679462496506966097803394105106772704063854692385508233281012786413181626483629486735409580885039442660083504250486277707104077623956976675266175365419564038492390732376360277329453710241322274668191783883348870020869491134879644497468598962670511979932703521289225095359508056282206935817654045074718634858403102859459120378133694376962505659217867472591521712900842412692648626186531754797349644640405026749716792813154593384203900825259948466562159274118821952042851116099136363118899419860764634426982374024674843781418190443131681383291334248551097257582162967101838405224693404081225493612860878169043085466052006765792732941843929462837072710828102000459275683530208975069894811254915582723891936769675547853119736053914854957049097720232256390681427514465278993616154440509925199168910177278933508144706890562871158237211378633315887368025645541013513047654905071772921191281939102423807757549584118564532805895330291099633549383937079230119828824491849440334967102437355945378619695031578980157118007892325030253377289091403076670567997650300147532443823325258369199263135194922858622200834468750221391894122208613702652516197000985612511578825379800844584623092838939603636425829168217422502572989316774346118828244558149719606726245865841003587406570132194282454625216286443016263406588048603304784525179582060649795285267859268635327909198607535932217897883874773788586329071563875264729918544815393761647527341221136777123679720073935061393158820515083016625912020316485525127445871842921933691316063056762634293596004931293810655889893382586454388031264023077186507354640623794512429811254541245304420292702601342852997701428058877736306414109985281633523759474920625555479976471535194526659644677754888140548915957049254918628395556279989768701441713246995408275160982075343320255536770449360607345224036193051882790986080976676316920198822621949728817333805488492970133855151122604156848782782972652240831659308190037023028147340676935966052864016625183497167894706355462055600721513621816603622296073438853383483414901503540077214330816228009264676571013988871744560765314413551745626755037480681134416502041366665986962897024876765332981659745049835477504857109453021452261454392290243105164580906442434070581066078791911414538963334337984038833786415384036804809142376898268715210006181257257904765595702864542216219127378266024317228190313948426302744796109877944266410770698902707436983532041765677746146784225609902193021987342007335804467028874828417426156575869139711163309049888690744172668859904943206347594073930310508618913491265022938032816665368563782517661271177760675071305029794949201494947820964992218932441572258844840180745535677863671430513617601562398220056663096191124196009014909326038239459511821899267377741669702509322266747904504486343268310319555287237672934870405446631581319834598200894439746163216072087152575732694879926544614064452065805954499876572638847055697185036371696125883466187338537961951589096834692698794698096410149271220670259083314795093954306645972928915836595478243884159169279680403476051356294683525356212168249589860598098429504733950599840461231277374643878127284319483467879586526631833389668344754870171123384401304657673447751946825145643905564993932358685202921669490203748269822560795662258834547674435661014493715337093083022135498293484393904254125802370406569815870185289767097080339762604768041480484762983936048258048241228833953288747975144431839255741556887436533475373430764804801209151279393319661581475653181956198213747471458913723944512325024436618939043817596635939321703536189288965966377427606477748657946529890473461555943172823449744921229581362548205647389627702108294416843489260585310904859276590905130018061447963206602370684853275022763463281599591839389908265503669269764451537329743184874234474333830171066336869907546444513548441871858278922000040704185629668160364800477867839241199810451979021275241546079949659982503926752035756052825460956265997121586297265760279025499274751195121853385611594335682864346405371885990175979496296430550698175420684030055179974212971513904129976935425840230777487274283247003522664394198388914140501178130219947817708399341885843154389418327774400047112356294765951886858723246430175370314972265823789933437605836972892616643005379031543410695856043342522388749719901165412983002345941264443874975053601080177407047821930524515088428367137861239276778552875726146158188991429351871131910693008421424360304234822748981245971446291251342620956275448507189791287291274735849588005066550017691975972655971525028209641126663860950305903085495626780775884042777636597261894949792118002544896199305095267306089840026403109396623970231108460432745277119746787098417046678322068016077212638410603754506578630652500941524673302316877598734124467857075001448153637379967903954076005169100790120343594401757165700607031429164450840914809564261150263707523362469809379717567281751230815154943465430392747539177577357036102676407790790546355847672320193114505892218510037360871211002285735918282405813985193604366149118520925671852353280651701324199489513627935684783659166822609796406381897162111785677138658348527701769196672490816843597068213872825806837284816213304296824181272532084578887206564059477570340966265824431867612891157500184121732326225609067581300418791643813748447309719080784485626724963862198471864995046015733798809891320364945537244437732393911724139412797845362534015539815266281886378308200539333011036090638463750623395066449940703137737107886645435151042641567995825730593364444321749671500153893291521473476018240943836018955692697494314753791785003600762669881094739886436533687888262353037095880199623755687947937550687211728105653935298928607428546833160907228966867662869565849464754315442091863686829477667472889396507572670200982847058167133945394469363464417475864657117472395280157983861114150048296128032626057500197358184777789135847258635683767863902409451260402530535606275590213182796093982857633053522038194664947197190091870651959398793355327900787800120314474279377891791648331705759405743823113275485784497330113532957907091696902366966533078236069450613245236957121697132131951015040879038229963171055989084366700677291672054522926019883928323631508408068435082693245639634368640947519742024062700131300013736200304533794921049478309439784084684409888103641287390083296857344244184898766005398516964346168533614068102731959053716074296896939675945001595907645158091608748114873783382585330446472757721542925828729512004450991080792368723018983919749760378660185022425615970943099538137218361181688273788262133120030345095961882620946750124094455741472911786375365311935732172215770883323916284128162277248202955449395707817482486504607067070145338280939667072360807090386150836194751956616720385612091398683252841248995818021190232865519024615964817311500536544003629311426074919340295735482032525329259623709636418990429329307020496323680804692811844506130626457119983379540250179676833203513274112431895977591591384782660142994911252709261195091002477543654722344025839146914842171350441471397223473801821657034282939781264586552059932528960624857574535063932671532221785499985751903642608992818374121258508023459557012693222306114042276375554204332831286703612090759311808657737992051677864686854241568243071703579322677544558936655684307677658686679148375031381235487052361081882774700687201877014725580270389045934926616923690979151551555835318867200016979026087516823758423732191778036922944325100147866142809396618120565627928790523289430072418583536130123350431795194498557336125259914101504696028960702914922995953861301750368441207933120507493331789118719620240383506451399284899695219084066774662346395493531757877333570025777651025567344960535537634716714205347456736782844176199062204136499394549251127568834681059478131741764466429273741885549022241092527889152780385154950199075492184963558931272894259130627263155639539217768544380638797160780305549934683954127922404199012798146427683552238709332911816065525569824804135624404569990766177063075023223665670206801120411100430228601121427192822978643873453220623352908786145240852997544051090152356129878989219854061601109949888801756020569271888217409498595431805160128358842495267296226860243847629150536230632577831527024355264771105549845473152384840108336868908145417644421730139589336424163584481356769647389991803921440520147058113885035390457258203915236601701632400632060928396348901107030090527400816857542426265263039999547375399465988405260297579325689466702918044064894353561400980496460814418629961052309095483269421343238924071348949045551341854345065680941418130774450908552353520135561991476972150970638966804233774295611500966879708506568697140481217833412213628488321320406260785135102975163578085453163775028846758682055460518776862166006991884748168480053989518349484244501161209670472391832629307785251904928899082979718331835582728600608674849838342047351627017314631606383557891428830706331712304085770064700656753680715156929387385792720458564410761763110375286923319355590117747368092190165846491083169278991760578686697908551339750346612149102766433529084704005984648232333546942521136670368710680934103255302983052970629833616483346112314916087279162674851603767567640388808383956664568981959403247157786491544985918972714950873892627775148971928306023055518565512993790935510237652956514525830734231454413984746331206008580608784013935532664479741498201072713674850176952104474469915231305389518770707844895361279214562965085479405849473707771454065284571958421696337768077617163878796305775792524724329193534030068480123339685310503585218082246486217376311979457100413770076641372099406762035603883522608459184991450406474361649421412234985023756141230363604658994381529853312873727547337647205542625598352504830019042668158745505574162381709792897652293796011576679666207235749880346121604494233329196574080906278764911621668121407761224200954967306461711879633673530306916419155332283139984815741289282158286004708080088302937599525093201266594258122611222453699507020461968129373538899589034847093275547146260741478406817919558903250371373570517536593115156925641062089334895222341885621212507556250346782228312633987080107901935827570709076808164551029271221977822852913106739305211994490390594359951862361342052944145959830342269955660617264853197715198966644400542175619115841377461838789386176409838506687146981074995325631752895960822607825198470826387091219834290613786041311815108746528344612977407502157167755117506330860472943645686954530918597761513508933135851299219917178423541154727222046716845070260765337938981097412006713892110888769184598382494632163544752822870765759808074275407633202156490431717317303724776359568610200634106889061799349449457047385817185617749029836078885675535727212058734472124824158560749527856833344797378621116430547174396982846468407188831189124892362843099232202534047271286215078304552091518946756844325342003938061243718833170174687252276366131168796482822033140158570573658327312597715649967834075205374737324535349080329635857225026998967551231693290030301981749633700792149757182676539838677395717733593525850660121981171906992729905843932177088592068327081072023503885395955734395910066254780762140929534157690083969080108783776335677968404923490645860342475167905847587284924085647471510575345463156123255605943157659634460018066097156579838135954647608327447621432432096391139463808747938799928418261788128847392670418643005322463765575852003992611384850775961308346424403463658887850329891858617238350687882062515761890479372068592038741343586757868516749398440556929120613401199546064978715494668151190848036443433440832502522973321994874595387198337880886054653768162891497435902224193336732973358496169301838259048082831806186156757123710467457482945069197073410756907961031823778701498975877378061607750738268135175400819939105260362623161164268011097351028047783110806058054336684352978223184572917164657806723402185774533723722686105338782879856875881192925877151749799650992576283012450133246752527743641070343771264931506495607581211590999539176516274082562854429951102860125239745670123933948481146462227247356829205848602088782282456085953093605222600459198467800904022701493215947834238148695980936427971442676883904361393518303813453171432859748828335997499328857872917240582832429720927887658452002407875354426904011922322565890577452311295401156439423755488495882249053591989889414547381492066654530207334004291307541185986419954775196866961359362212916605238181224462024457427847927673599322556319278634816696741015669349565203951899106683170320831053415336104455914315093043049224535021061990468669570666238128947497148501530679075346103277114687505662290310873484750101390930966316094498115450122199500661069119353473567556617682373650921060481009730351394045940185980803829865750952944452232711658740770786596761791179144717215545655262827442763196932302162599154452102036066279547074927263682204830358296418026196974790557028194257731784972779719708784763444299390333201969934839686250263078942036181680486732418354335721679038978322282985942918035541921575902870608304135173769331840814535283700783892241672411529561279882016715642639600858723627693472084509427136266821215832568680281447111839176370129745794256819324115240870275773256082804097264874556861193725986870505306449040578436595632335883682520330162510924209145816952052543440043336273828675700533705571616054831897405536135252976988701464562557019233196969744405666921851205777524709592971695058544689510632443532597507740813417442090410955937810879560918800902479601154726533639241547563237846111348508754308688630734849440989961755235828364736428428304992164822444375431497620783407448153156872619501145453498940912603306356623755825208488647593394526336907181086565498797049196503876300682061755097869350841629703724936502118572979514258274072402700848402438480147174711799011913926160163176358049428285588272769813127363889234736739832937374559395073169524887424990122551769476562060529131343784599006082312752442892463961341472492698175863224088660398422000943615400160204179332695729996453625891605155239622529309905906734267815287210733751933901228493726427961837738680427381661996716678497619193477234305435255716886826139939618744400956321842631275901695589217165737398087559864663683292755609774355500651468024184379625005962093490921280868843457183860846787676262073595334857253759477182761913702376069145806536383266996403990295758668679090391661558027921548697017384096628420976684024697764401050466638033847561662004463979087597505858555374384406030417364239223035435316004238440103470531843885982138655980118010345378505885039147829835419776762674861907792726036124876134838449779193618897060091017602646935389318867866006250260362408265892010645523361859905002491774249571830347232478254376431756093291322420862977194159506908289229571226540402848302522605251548479791773094715954596521933191092737276853706986808720092332839999846236734946251860706354105348871953202535520307696835276209589188561448601293823660879417559524367907930147159782833091683259288680834529169476739370601835972372885598446946370898502430722090124656902516275419605829610641844937907175491741096186243430196383790142602712949329539615780824452167325415104011722808748514734028289887273855300491802277165308439029033735539768186304455977790519424140669584466711897034768239720184147019358212880046189036979810017056332200076198402583288284775439802703836434119890825805404481246474407904043739856208758757826318399003633335045578314440601745264204410477851171729568348895364379885281744520102886898349514254006815427213924847286880805931523209407632738539347037251412730911334270039885510514979195616617613858724001066739092251224598971863240985245137381025867781540798052549089447182521743749872412771561907669610748364298659894521426150920220229093874604976359951301394187028638359660393202983009747096212743490728496539820811982054460115883841015793549354419763511286091221497826713622369537813381691447917595968487955408290076703888247195039501023171885171688812761287362775951393725446164392725328246918424864520823482670629962785814601526692227334679473528480172379983099457890936131652757902514447473172026120329217515316931278296056606739025250872735425435989177016619205924622899597086610861934961995219230704036838663816722885227405111709006887445572081746318361981899195617119996099201966479831231482862943807260833922136684495404928686291808986016714700603661830747513171553410497511320137477918696741962999596613551753424992161886807923092918383316573504772299625065665957452078549509760461995041478076539938415464807150103212467632231263960358965078474177423389418313486071846378987581521114414142955237026588267341876929462456935299789072296083266657492496364348209687973791038544261338307055877655763677631723879552467382166847543594731234637991594137823850798491554714703753736459396721853383063064696413950387552020753003870342006039085737118548658965121910573862039554775791435557659896365501792081818092397115680218978162564377322304403563630812816119843149179027686934510227011017254174046204788860503188145918723628361906169682072644171043001896312692426745773736699860154333498812347687911358573158471777698248719274569491539592732512112437563371836064548421322078731430665191836951546502710742909184246412719523734161455363683025457324040038620921946406692800529686372130135709201436651736966857746058223386665923980832652299588386641140030459415362219003562163145479304292688925000930315531424026064856838110797877385826231083753428048053603486203508932418604757068696838054895282537340030120307293127771164602902373763583914940846795801985606915830488240269908105167434459139218911160767465302057021302009633879137074706160582627030122304230550506856128391557379825713168486847084218147728491424068532436815987699033780899690682579155361734039222416962321764477643177249937028462205743496269439060583012346278371317032955853615492995805915130193641908674322859447711815195120546826801598104491099131194520283238692027180253072515170918934017774800855521455470999377773215740754189824595611643872036862609041859403818004383159712124086554803852024680912199412846195463810639055265251111642982394151705696776443023811309416660976759743670940140500660610928657952227333475517806376379014616209770416761074117901595001145964037367737207209399278402827194766142575139884262455185131383454347543417057851497506100084533069920194683447323071954768850708761533128697081616626851455668587498163295019395307108151345941760454942714465179239693205105379724565946326157242072741177429461405793164273002296352333076605957425200681742242222068995481329065039931442273385861250302572571097876995881720608615651754933887162047168954136848119407675135767184136408373391191493879738869632610704292656215358429609145022399395444028147751012750769526708966101823133134887314631425715470149779082523322592848401007090606956512588295944000164198977887362211113957361102494187530527084991326402345908076068879732482546679518076552515294904212757872374728614254597851493271167740022963875554596338071970504932590467611739608008411457035072773507902345959439277668467676753379694242785386467654278961085895702074321635579637796614949596154196705101545059810033503032613776054132326881377487346806160452872180911890027809316221490274038815494030127986820473346349148930077816422965876665059547203997781035286883942592007410922756547565273380224735802138926129100392034283038849142352282365098775080738307083486172459110888983295668282605660298352694096906441857594056328479972486106818740592703585289588578541720317004002038138418979708384319245927523217446090752563394524622052154239918041636742477222997361284643813549873460098199602129527278878219670579451001877831768452224879950497314476211321293694210521134851681509010778290844430985301389090045785127720255442014927567266470783994589003358063498107437840318921440586977053827444615584265405437327089535843111607536750547161242859534418462598968364597306664535413669376032038195855760104887068783666458155464592381953511478883703653785631561990996766813476894152175738814256580511630479595931962342855625018528240237003848949375562377591592511521616110566228378146252391509600834762690407428206095477009784318194458865648180046002848621681347520159224173951484258785559078756397059585985651321853154473802610790766025337903562334447414928947667613524910512781196704922008899773690828314171215056209079898564440548612549237761664658653916305670949892850034459735711646875863745496700314901587892472318810804776742844270632340419946511003129010146178896545548685483867560647907007178247319307489971199738787876619009633060922258938157313324043171786654252622110828929089745907178481419619721973071596874777084324096494392852014439966395656194888019600097109486333510193085769198838631400353010644109559564378178540203080783816672002322611343363890338223576760176891456619924810281613630300295469139004300362746046804542486915749752026038052902899315407326949377963282403782818469493088459472436805586527662544729832443832767310351970168125847750426954512219789650237065473618103397110843061127654368510134388414863542828216116534917203730282009235848116782510277888480593906392795573341636722859369412421071490906853217820479968345075630434932950854033088230318842082528694804150877020490716118605498624506398197432485154377387762176670610462460341797344882990940085930397405410558219170195000400698991753674898363586179248357175044163680474535577381860093932854233952862075628167951550467667399055319890984181824934010896310225433662795168775473574794924361005764740815887346540807747117585171323539677551540163633494791810906549340466319699291934864474090698452927402751298764287355563310177715956187727273540740884480054129226428120862597059341994552021128546776857052442667076617602096663567971205334384997025686020080719087173097100310943121611264724913025428334205075499796256579714169645585732040759412594113075579272210224558597633680144101829551360755648656703838830556579649275300332254333163693369233852629951683452170178610903285228709739908896108616737897003440886556009664661201405168357059280104240678216866195834249098955344010631984671370659957394391808431544781969646429387961044527396834715815292626821092702435932661602055281115567253951101332626500501250256858666106112996173432525587554138714541517549699531692344557339516295807742589087304342059022496500274072438234822264557964295484304812273394109215246841248958556178747734342206045672840921396797874371819918464154154672924435479994837900372934432836264335720433428496146297080759562149172514651803702127368365940854712528008511312670524399309008790509145721993541944579666884955862293979904198516104349589753383402786343732196358413087084031777984981977647408353958199806322556524984277783519806464766666185304370327831360164404174286451786283219693139907696734233083200485416795386380801177476188474695956808233123190506372590815146768343758091210581641891041576043270736770320975997028939473392478138762168382092513336582360927207884460457665048462758460120818168279743464957575719722607716229571569103352266749120190272672716721926630502522078294357929130866026295000893199895764530710162090167914710590446140339470526859141031723356268830685441719336078155672224496708598945397844854994031980418983380019661480597466072599270030160455318892811295540486881089196488700113263433177645724943843471017191444102176844220728481302812139335884077543640960097423884298908383034405252216907173263532739449321648647284018234986079839056184508809663006788121104583067051302441948288155426665824999636452244413488469766681804584713576673485680708934544199481943631587939365672469757331554559814953494924036858766041868877336961624625845783153120963307283794741320392226835415575773307452518482360523499909023292233590853573549716356124000873724504806533106065277266326053283616927249208744697118266795696848861174462253084253753876163332062069040454725702437181461226824208709196393103315925977213219673801637561542550358895848444401439870558761617974053580007752250932311759523054130700308780751187900023463099696045904806783526091271158318318388647053379508545405175860303310419469317982604768162473983029915938743704276297404798933871477047639533486413378769902873278298299122242787047673373813592537303368459484634798272113839082962367291655114175234802440682035159385434795102603272490234781966864646147793855081898925498209191111625619713553782142074978600815711956738855324796574294587032087147594393200011683373492951833509371571751662268739542123679765307624877305376551155244565470043149620546400456180585518942387162128938026625132101722333505953395698143710556607926457973843272187009625713632812952324193412551025834562397549346518545625357249493366600636187357555874166024246179079343629985370853386123129012560489841106555316990285497469200532775527133845399643720324458518728740455571750376261729867592858261500090187588688231750184282095079797623669447452277387176092350342275472810069861142836968356229557158424754882043847420095106768076646010943599223871234772049707613003211737826224352505637301297680612121725444233790066359286580181030702374414190542546421664631108647557706394691646469547555830037357929641102533284203855461930521832269109394049336874290309777669742019883662942443787732138036068535540795671273270607762604844668573439736014611357437567891859439477606591001949422528083382560570285972199470626243786988345377489280586616066598512540741852551633025051711884547806405544397301610413932950909101538810203109438878418187625923699816508627793768642872140201442152358787980918364812554755393060821269252206976152463026481580495147916050274739718559810420214052257932093083339965379748615995681399010474186254049898986676733310835356875467222816061949619496438958818204296957647289020160662589895219222983132160173384151942946512689919835155174211252594848129437882863495250549570613768389857450017484472604708589568195516653083045592885894449623513457653028275603712524909988961033691405611426767191359755638124692715517828624302499712860595068466139496612696485946763151210853600415141259178960775079842543326429274628899748851172081837448072798963317304394286663993685602954575607232562523293216595538553335963739102132923232505945082490676273975656972783117701039078933216098248290554230933167854861586517918988134661815414234080112680194383568075529968174600604335107486437216712574862988788802449485377014282426915299679700279114045645575764865032389950465431809585546751344719087165172888768099504863114254903183202849444008717478550429747165034798760941943919460547434688010244865951882752802132562166779194575851767661670980141939329409937890918226103296182663208626295775071466344323827018824344340127520059949059388573330152931062315555169731326674415630299733653530852155973014826723909282442198704858981802307640758082284824917603746784579646224862031075745371676279471489582187162271015479219277407024793314348980050095982429667324559739816558894004017759055906731663541416744416432523238764755974091760196943552155999835782710986055111200938714787031601808763041597023526162234213792311942933132583928808714540934899575818429588027939869338348623886147615427871442984825052139498074693344085922806888499100183010202603640882191571453559950909710556101604497654374912745488741378878957359078621602146360476731344648635550735236612032663553864437662179652563597084800744852865688583587028124570340274822354865135087153511886255485322905466965539679451440158592308511730609064477379025883652942215601989439734894851734154900403587593826725076381045645337251087758594798809058858175234542108157438835320136595681312610527926832096902080101090377674774480959518408707498248104432006683989488911762305964073317468620332352742674142272940271225644476341888326930231468318805033793227852723221349407366273907336615928795171949418736288193057673718298010263026234607707108740419717275379842959367320334655768157982577547382921968377759108282831476299035416693884926408789796991193999218185865740484461895949796326148084861691761487693177523569780264329899040682812529562338717847551591790352174779224574639918632303553058179588776804059646271093891498632754554368661272743601659121842302863813845542642251725924269830249587077403316023350479623639646144361797678135668556895486143075445544803775760372556608159738142681723458394741604995192626481960157124152645396056378812408651371801067005773299305443511392136062093331088565305906461626829003067921417748519193124565850802596748296163500093109107920034759949805094592263411121336242453899842519211255658482641421298697428661241208138666782192240626816471368592511493008310354386964308952397377651150601624683571604910080048312072843864212499929588613214417178203759572025599671502412673807293745738884435541900610578662388172996479729853944251918955081570468506746263575659452864289798337934575571545246144295825848452989342172093564052142323990541694425207655158033785634925335851527995874891213555536566900084261128669260037323164356523396932586430036734543074891786721601602250792550548438729471264945149433054481196431299296017532944694114935627739873451046367056559162185243249051383279535967171744999288796768092349537750531720279034003862741414142794818662604942958155110932855861838156590022637892097834332893835684885132258099260144222127343947544754974819372278914544976236390011311787540963592342082796692545782790006332940524340013530880407438802347078104452595763853006703755260275801613885399311007667029351859736865594129442850689675238908295065340953042671045671794208371795697285625170663333071627062396568857063377370807240601829585280377263130486949281290823072735170534720496937306432313606828509969619651508003485547248043450729420414168324046766303548204407529328704914975071126283162689893040704110159106926381225743956560657480565632325255029800570636756148131874647927910994552100630050874847033363324866824889871112133701772229901308248638529611893293951445518013683831516660279350915758351326448469587515187028426120619023941068457515823000413946505963105854540421551706669917780190006408329632213575802995480323657200334283272835840316130454515820982158061046545357924139892841938228714475323691104952546698969858525543914950445579527460989491274917154368815379760079693638337610780402423448068845127309906082321799402512035638542474906524130485546402532174241960642697039926715416646358116661694194128526053688254810384958834334610109033649799314249882648060542254116188976940058397900262941865171313779090072851874660279371410498947908571736436646291671012750467595084902000233064737913706275232079344352970059583824197471807297726825655924750120809818272917212198293270868898401162508701159342459356924521829133937215325734590668165375520636570654968039085092141725092120937092715184369328970944418606707992952049047647870699486582500964310463252111230517494900921084268566539404515362051246380318212356261304272795795874545800987978823431691269366699162624281998485331734923693711976000999392805000352899590599185632845578320288128300041671453454092904138091176037842598426243821122644174525658378657713670346938921658233361913176153728293865354586394129147780222728895336423783822187618595268079564892896310647639094469671736608250063624342500302288587506825958156049553139980802458223060887257705096185172740895675296641324181998442294230101559778544096286542176155731878795186584289544932610146516202830723078497142476413943598080868609427761951609535553661670649805894038445089030845387718703296796573854608140962066295640827294385657710917225592938537680189966387882784261455279960154596424741171035586423170391869167123684687471380606672256165040374104256220780420933369590674329047761711968176040265469561328047571625324680003516648976340061115568164365320618468588064490284722471824264762857754667513048395400508488651948131177149788208087101145082321735376192438553610570185749308821367902494765983090526091840525177504865331197918451808721880296845802499246420344038939218467428488668683219984187450317527909158360052377556255123214951403647615734945842470313464412392732212061239049589748491749043099807777089951275516758719663291822706283484006715050790411231162295411657154806395656202549667721985448082820827666506283052163531233053684342276047356897587684162898100443102366499200349323427743412581493136777930330417812243386241711970273008921677860211933381915008368324174703242843649135318249478701998250861467336184318660289348325006365245291539563208831584739366652395815446444033691715452912997271725753728641269219642647606227776832093082924252759508036665536626679400509563803770497087888429939917140533311446670646819934448794556401070536292082627558137712658337460863215183610475851434995986170810082073995075132321276140310617406077948340384285172816071428206473384601207053719756904748556042790654803973138853192372325536488409546320368570401956236154436039438306809992779125767537218205028396853381567550959776846200326322246435278567292531521118178507001392263620591662219901202756267319234550479005758963282359575790010278126363877488807088523982132254347369900721354259184020921913836346444764755443386512636898906488506873777305695383824853237072789011300397433703236117718867578008901177351831804445258412730263778957248521158133490910319805058856304615785265504971630377161230928464433200127833722454066347428895392554871646355227737807256034728806272497594120026977247780489720548724719266891024873550464622247572813104916809480788162413785734826184509898080870314344598035169082921353615508793326869455131911170940000801949681217128195064368477321278284147595326149849734544211646711967666295499480013511286662241254214145657372842606735457863831730085452806576290792073759997954781506956345322139929924981941828628692547518265087867823002777219608265320763924713850941389958968574616958491139329061281476245435015920809236095695963581324675239956669063105826077676462974006724960130255844812865281286106637784209103735591519100241565565089236660922777292253729032954125133337089129677668868621468647497353410218419274794899675328964923060774337737978716499176526098555053243203939587587700343341426044155200495594412019146327366285726252931786357009077628858953541036091154048833416346316062339989310602307946956698863348987564382159314130907046998414486588772803500605293451686701555627420183808871198407663009831952863848053989034391879860657857827318092962957166065276486473227057799572834155517640102386223636223962306584887388637754268313496408636894142105353604553034621024270658003476407823046597747394732243655782143004542648305962402056380471911158292179693791549906645208255573105890853349204955100781771009528199986802093352783792746488206027332963711633319012548759298377839331949199420962150307129475147431003119507082466836374379982159936669670337150981699459501206615762425214956470213890806388913842754292104134004331887413914889137169840946028383156593735760189158138076691359060728317434808020616865097800954376710814906224340836678749574984878281906770355540565419329884214265184318033077994702559059800324190766869371110294576628533005142143159727683449188249436644636804234963665211654170047517392494893456736254337720970830173814394130185948510015915877529797579803631469765625137988484380098490691605592923194614564606009572410703734082382999734090195535812469869026002160377586737833263077505728313715379143307198950237395559609347752372588657027037032990153105898953708924166248300098059095797463021474467021072384134045848410803476826758865991805470851729145355376827596660528913236325738097295861273805488662511780716872514351872631085195722910914818618329931901271604343242929759612534480001222906135376942195473678523803266109759962754293967622198185602276090591489497039490623580673666880342021742652426330053896242074579073383248722157856623525267687458350844964843135430477893572424673165180727457528462159320991700964147524023862522736817879664806599773531582965829483224091597827617421040964322981060698550471044862996775315587591885971452172477785323328626832992475527453852351040710175188920217065150083152473314966106915092041303909485811927865933338006247065050499229345838927845995863031733622577075933491415289097577217369117858979082484516414246129880728913810611723343256033573782418159577222554217272388259646166919541784559056744259358773368995944010379961371578738624135587566777414875192442246353832625134869997496504536964479226468669660106812460342029037283266501556474756293102980697440607949635806572816307141076425114180653032285572378663643660500227776352911978122094650413308059475555753798601125190808233778385048716250897583790205245801141494974835107896800933915669300090752622623139147626164409869101564862315349349898499362020680196566117389450938142303843716873477877419296609082551734130388601109750574407352997901440348150155091171805530054181001705080189539122301165110246394551920799109954779465818444120296411277846255898730370177914303763917245398311076538935745006395501271171552516971016449315859152510583311088911622965440228748554437491301259106606495473040615648267037970742962330099983927097140090497813200477642257786801265205869714079874401113758480327901334344374004065981318183053986034111369659185040870777927088461921934276569782269221858197791535508822108210449684276152932385368988933366485639352316735085155366648049011387260540763120916104424346836920918673127225416452163630821342901890699228332773360549305780852171228495538218366963785662976136144805619816744771348579062763226604373420353466694984936092033641159514033678944379617119571277654764608362458623799040988893121532788340111249979798108950007262903817973034901882135813509342459206830803682702963261881293465401747004946421042915311493104417042702762289738557355457254542418414533208498918751273127964217735937250717159970318626089844335196304055752915916145331375192244022503092440147281661614578982193198952888906503191890815255453057556917726342511614532103742776296369989122067731977618899488156423175290081121587960468848957955150697361374537232586065552896964525181616469679474078154577656670295534703960980735463299546220098282492364534484311925148364570559173771511639391903029103642393853387855681700867633044573310229430017490608752840534333499853213107061646387002977161767044053568129215687096605914738623159246047711069889579503369757408301181609570249997718187305208520669800584460983385976408088336086201267711821010949869777129203850313551910805511390998198926593088957373366304858880361455868880106369106271229793684174289560220087082887906283291372939286996610942409596661416358257011279896813325825818774578659432559002039081632710902480609129316709572279990882117012254235207843160342395942985827793879059834341669471463561358002266606786603141038774756937189681262642009598613743154119873262750104495728531447886728316834894984148959849918198272300979770451740383450084736951560913994014328155224003492919547529771266356701120805883558637346719502247665485470671056929827296843294587002954373667271774253753349770492454685684144815163372132994331578063359340767058312731706136291906026403831827304863454586071299091734838777779658903651768214335503642462874477952977531539115965285253848723641726979898234179340448347707922822832294691409232469400977670160755163619998309963213506710615718592075700419878859778775545208781956592270220286078592399206060020698151019831210247491242135102500913497715354458686896444992969931102455371024040802425490855223314009252539720285814163032863114589133016792449916982111257744574335521471725029921511693365657187980655060499354054794722314007486711372773575287729457850491816767610769418689897856783827711889855817501055558903356719822481263445268184264687426882099937353865477267860065303536952260790029935575417760792757929739073764594703149920592010057499427083782703807991261169573060524915455795541041111816615669292285173211249508050991060023662897923428833589110096616792140919845724714982068025438876024341764656606259514721203688789017635679691524588068563746959796415193118687308901323505614480860752965475617665959063495185627513186949865139891964992364814219995778903774615266426301068791946204056054628305707340311543724808241469832081799590348437479050457774935240748233022138446283941064571133376786495965066201788258404957332049155079689976290159795567976567205801789430103591955695753054634814365401728689088616201942779523882709021640724176785924491625085689781184459816112260291246128660988591573841594674592141349507933473875087942248768873682470548861887624606121045566890575277490488084648085105783759248876368739035829829193274809047158017028751791237898615532995458883630206032659968126261092160016545969038271899165263271011578351428142839795631879756810809718110273117658943609566113733486215152053402011073292528040307532175623651707408881392552435717002021542386330097667349063300075975263474388669152573027567757047832949084460772626143345740862550585578632775381186766771852204736916342625661244238060777849793053200251610529163837038588679499414990837708504232737204753677902205593403466248645413968290107166453176809989128443146573321284000831318742492370285208153174278424739796049889857001163093891207700287861986918019923093311831099856646977037646262421243315603972018627695321387305995942793754766808337682246543852103575966058336074928297346434986008065218377724466028085208160671297384957264871353567847148489548270902286093714524909376609987696012096877252135059690802539928114393869089537131224823149146007505342190209151666035251252018496937569546594574222143294062118155248032167365282396398669782475964889770583985466347766490730042629280702655780096827039553422370975584335772711735068041548914750206128038582775505905009045966045871607327022791138790804265232972856140548450955483751426001452355601679936043951034320100532498212004023153616880294871360343562525340862277351092805812016839215557890309850375926982873128411653852883134180668536868804307024458874885489042458283204482161546793471740568710088926793533465244666481621930717550726953205168890128161998587771616643810708680783027074970493166013423880243002038107260023592324234397529323197707450829746481783751327240901127447059240931122874164283206863632885598624126419202553696520764627187094110068762308652732896045348871114764627880869848803517373346754853613186881648797389555640784689289213257337642953568325508594675842951852478637939057767350527617230877975123441196406714578989672515454759676804116998091745908998797019268296858760354060157301197063705982622214273643431044923861008096161374799955656752008466259396258604124715770616684091424406913867704910081177920093500920521130671606970388500007150989439664234370017710600735382185109811089307148963625719387226161283889749307779070912459459500382035688174990098872973249845431067722829841446385323596028694391977601252665739794332767751997175745935605067442750130632379776932391280756068335592500745784621586968267924942096774715945845182704058987220905112213398559323941180582397160783292079232342238634557137434848883204410663759095173158442031419871414901537064060252566790050536304613046380522921279259486837653225705093588890521811991752749755720415689511637028334336008435831603042896039241257280322705938001233307313029878495336945353291434583650341568263709938027409819431225136560325279640951500573410635327066622284856264966176546515596492705815088330190371422201857447831154206456303135445171216974988268558806660948518726623551891463008903745791940173960811960013254470917416491405372305018336603009695256814874903526298635529137507974966303716911438160064699792175060272853474386453494873320404897884176398884121471243489859612663496115992858205202456061055624685653308614980869620744340306300453653855210395151758800327827737871053955632123046836704235172841797467668349419536537012247851806842527510076179082214420412494766209233128161634763065135474280500279680064852771599584784398396791961611252349393953855521131395093111982037719335975909947662767348292130440182253262970987364966817725114822591988008034362855939823749330991461751303622240085517760264889309236228517130261443286066967090808350534533870170539197206343882765193444776155574949712382714278730745436221477215957620514407935369983262338900372879622677622636744256490858998399875117882019449973073040645088113393797109699621393395158612100296118457070563474121882927901284943414833937724319540507726565701376546677164450665311939862137389619645326553620864270165055587243133069814269861610417157892456643330939142191430176714578018041788077427081706922519912269298513529995635657592221953087702060010644093173178396211274199517228849384958008968523682194012621824106162415287873342121454376940574662241789306718403834100509657648551718517990304596766677277783961730625534531791655969980639085114525369855277834883098694090619793605441246510372601592194825233584606781757006903895968264199878305208946747549898111351999304347821439499187267095847812060383708235509782150749625980520581407234746983202012797847110734014724430646121768085376860203516615466209011184934761554593901513176404170864709565398564926349339895122898773360589074826491824245492791607718611215668861823508354309935635268014333267109347854920335626008381453192453695524548942071249995851293100233457255479660746674357253986651665069761919028798517124539936664683979903746651238720857703680819309252527987002978815281644303779454482131161938394270788295927474700144521981798030674632855595699897436775524974276666365999922529569458558121123792703372439670148289603357683948185593752075238902940456348290116897323003837297976809437736559560669062104051930760833241340123976022447464870308316131987181033051047067646194477045425856918935495517089500918575781242667292156032192885051775892718338686639519507083705420437702413527738114808732398282614425497016265255733605763376112381090450295316143543455518346481013182648213718398497794680103732458985949985447807254959699039507572765491257317934438530887746575332377400503079115409638901093253836186648873443539126687212946308471177514203961994980201438875331772797840193404904028100988691229817059401186468240299734516031820251802461107859363946856034870947066332112865295077917896159226419903728302463906142757960650622593926967077038758158313498595171547922687604979311043706627055743287722534667916214400950727242772174033140470398412179284110657501874824773428268692106272586458982835215405953432602227829958424913011143934958888418082277642565788128279112371411826424560702694274752370604513441591401933633172955905868475343993777422391215197715010554287721758554561024678870877595915894346921045248950786442605769322073866720645666846418222919609157484849458964237628216442163250440848055959770210623700673882873231062738241188708421590211075527054430710431777658090887554916845307965688995611903165322553704988712615727291079015437635487524637381939024285269619526948630808593859439836217895941326618282907689988910320896045937303260433249725427635600402616657014267556391806311883095432630887405776204270114481157851223598615469058643416793521005349558423554867854357353950438563101189334252215411930265640021522867306480922857636706374595581044571494368536857375115346012903854337511374650775751208063209661798423555632819613870878615859787981746841769791952205751579097256675999490223313065533211411057062910458643863155033952085303277564277008076837222263758366236687818774576494760281463119100860423116467084622414933442574248001046765292352127508884217899669514077543172567397864547370636272351441230279573080231993574539641912871179263844194267765473550597936907766367011755393101837232760656150902235926366090882672894894523972991820525294808138859759122045721751860602025969782594496354838400922540824298517427594653407299307113111793289081325739119374065176569333854387791018850377306724544634746072081534484022292128171458994159760839015309401879533834501363337975808179479864163966145941194658285465630150009237795686363551148929077079287494738246361805197259083834414565184572638857207664476157130573274241680346119582896750417968848365896993184730667134028536715114196532019181368364160348340057356885362604397853509530653475315032492201836916050550681572094936470842097670397803742161711109399765763705041305161870886512347424064446813236250995386592574943295741996777897686977422318258579261580687338847362759879866464726679584020982146459310653539625645065267961089094220862822617150557535463822588217676794860075034505526017195081597985266233935383801244648639975496765414400188258027964284446390342062283576217022523454512875818640236441600471649979169186848911960596603702697938868806831569383088879527855424622413604466124301983619018858714270948572188965030767433130681458324860510755169239103486985548667864128521903647654239624179448827465174376511920681808871374973811286843163023114784622212155794483466789913832621627870161043543171038309812233510158728659296608506109309814346773845609391331080216042440985168611008258619541368726057007086954875745917205197667284323702681080441157163993385478569056438435088728042330282460142763497710087383518291231803884426814934148910790076069076393814825684638225861074579460103864816010393688107120617073530922735726334675168291358762048421745189984114430138338632337806944623177967509861418965150295984489351093084130055070956089270879503275302121024410218578237821781204085584159293864921814701635879120682126928791370155204585638262830240974455870484248727438370344351190442454829179563110886604163827633191853389611336803808001712569980800379452509348006507047146277063675948329235321016114875202081064401722856965062302361739713464118354566194079707792236736412331626239350287075879668837549946190338426368942769571038781658823155528427936607796410329054991181562986131772160025706573883553629722377802297802370698527753433703914695803194943333954586599648334392991617318470992015423727889799130620553173192488035094005402373452040154759226026156098774992864918956138104770823680013899360610811283822346615872118898324102373626032218372837777091551431534972012073335888065525741610951359328183364208540472827224635583989421287852933937627000485830023059856532169983347989134302628781557872492451837068693431872546450385347138467463682525871309859167624652003223090104272259444170143522565842816675713157258830180251822585067586891296970841723658777678338719901246495491211166870583898781222705782227936604239780259375663023910181495495550749513650009098627410236539619882656725151505905687107333508158315907049160128666159056632097135653901391046296665844181960890831747762139710353513256182185152792695967932836296111613461143726157088313335165527991896850201858309923424880455338659213460465194258609573533687193610464638061391357777985181236846905204049187458735745938978997268533623061602529214590621604782529116860560702515468675088457408683619097632513068916841815160158332295964256233015054798920119281245960293184589489213618426485107110025375148153381030791943481005836736235902009976686701408752288775126476998593203363540927495560200890248200425411116212517788213593843702814988318441403696160095688410136322661638764417198404769708742603142654136066885065209349882377058607977719313039508429272329513828330276454537121338441657404876173018974043965654026697354573176169757329291636524512756906881679910450005129716370884494989007548368504408038527783882707151647679297292227902545659830193882440438239979087635249330132298383667369650550232186699807443392418468769217572588537980352434939151703978365921059379318206848265919827846482827969630861623690448083918384001159179478233164986761940299608225663107695444973533381790779587870604783385361386995829081303988937428413600897761536114248758574404464855475570787116298819035991490443476442722904573677021000863126467503978214230587641199332323571808889551026691559821872788167937618114237033763506089324157784318063671948742475985288876813804506144860665801572222024598181053009884915204893430348182626996861336946725742797884320621553996653913327975911029010165405106281871375383710842113121170373851125664854940790784962509596046417319539498064995147537984395311510049895086094304541553732811296214696759961057068198424002866584682766052171614730315250529130085683313263444224233940023209884669833690646513096528431072014505593521586352012237840899098150210630096021133576518893437895032155835188984092165462186343512472564604314687423555193172182934055277036991644126233623482976455986505951628429562189278762906292076536782826256400205744005280168114789828348663661736161512938517065451838269201975972894692644989607486049846932533034924640719226754647136333175043375935660609618133268973750728234317380167593871664910418542617575594718980059441988364420393738706708143739994190139905282613252204814935117083006578030730720286835521091682641993165067654108151648750300721248341854827988346712186173903436325611189834502911045090777619808086455052314947248027267072674669129887862954959573309513386477733978724600188499842631177222743126150064954982445607856233112357416851714715509019386223626244232321934171388825706971670152850662247242335112660194173517950881249020683106038828794856183373511747550197327591858346204102779650871435580156231254567513137253465143355874458596501346738043117074545260105725855189459528178318630192329655256936575434847858797722051770916973354624416832477474285087086225935550778225225590970384626746181376142539128068980143458989163430576868264420968755826327369541467174336221621708138198726326319790645533811968312168807638454740858345014180333884426657355454215872089070897116426677793775552073347023207887742434784288984082873525013133811374637280323446688258671235064296877574187330119691163158567356107101475967347983807810896934865690740692616688678501709337670971885090246352683838788685607516194553443178466402237304719398043132386376365886808928136713441641882218235203560691380014845325063305422116743138273615677373638248024098745729180007329088053997272634979615288911553342496116584785424011059956771888764020946534155513327754494456173118112327134036526544023810970117594785599340511136235482143622079880288484935278486249000808681480518800437336441483381864926978852277032167200262121924678567334502548281295899342365177262308978853902310304262481328366495089674708784237703968853506797897543778540615684740555305326881911980873138845829489977455269729496230551794412926112914947333694038354848087155948238620893082426392591239305021024537383384343139215140674084857000099828574149287617835367120819143385561502737714437227205101201347254844704005085407508710790541197577761623947011485080363491080906022085695509444854731360822294020252062506692886872322721018437899381067014604183847596133968653980014762568407851948195365622736667673479937846597401716095082564786424295885880267430251537818268980979539260291344150170457484937273481033741857321728557102357336308335409112670746227338411124621947534587937544160153503255767530140465786908314498266971184209398722430131886340856386830228084891475682558986518474083284632469396780822475503533704247644320033757258944289668955972039903861446373270226230930079759671297370406201911938928214632568545206435461425081433428468035982133063725008651596861567451889180017897670001256464353515074660183870051412151599556374809306709107913526032093076524110732375816668781059395963125539080070735887006152429680753295867978291557687623079044675135461222216111078383227114410971893770759746802211984505025005210005993380841233312628918467832283892926912018185262582103401389766931770735384043246780391043990073571360939382100086337287227966497268077580462284312141415984460434732990901237234730810022406691667124113362505005599060681641684726536127265368615441291671889792147823004515943025512834104824260127236650408106454051803444041857603823463027454410124657648579878520492601956690656792118069532329277985862611742673703528439691806972512643905440971772248865117379706613343709169838371176768183936094391854399248621726859052960927936660689032588159801710209563440958410585118243026337390247662126956813559090787270441693491619077199546729984882452820530766220164452906394171310265850920514347445279863298918479947821041874640502162781185390294862262817224864963437370872515540762903586954935138941831134362418646969316191980685580264738937928144451879465199949857205690467228888441246821412428005268749359860410634782859054626336127232096553994692349392237305638187642109926434654633399595781464346674332231488352371199374918706229381646364265722848329034645932441268573263307642328061443384687899037010165336901058048624098946774248867109796743106998375129919572956042400107797538947505567872093473023047624636895978761225854833098130638808646092026817944171094124385996304330176692417358225055367144337077345212906854785191701462527235709190952108218955721123709624991512285050602217895559356449652219998292868952242630117925983315689238035638010505106416139188524181253254846620047140766106884825760859240387653896353515922187471888923442074333130233936725743557550153473107790953501833198478788068208318867323592985102940450347302547928935675827272068116268693255706413086524873246246671229307918107944542318001330356094253451752000756577041551281015307221114477609381202504907561353195180312824943141230077253680366704092096871115126080643844736224635006230847580040207721189170782656875003733732926642010897907454451823374807185542455154068835203870933682327998693961488838075901362267216609314802480705235318915205835241185880469324995795335914468191141393232032943030633652681342540877934366999595547365386886526911007193487304010905244945295254800568199659998998524496515384434531047658491796174113542594918792616591875465549284783592280068195102831102308587120003997360865865824353779159066713335643721995357117420612622831943592110335014691130479412043822444795709365059805546343018505878880628434710630028165361152455706276200950055841120757520737066427234194605613147215529627722462632012349397887027019937359037835736413667649427761778313148467742565081120482928732628926352133721239845111845450601990924519930588262187544161528960428220964128233430843912996560797141599413703620897057176771892471437354553718053063926374353130363486892824117470256006764327280172222174182055399350862098924582810801983128267050574497706807313711257378305004716391339164243845491170696393706325501346646796650387933594772286413048019410723616492154119585050419374181536915835884798004116803890132291337865971469713128324939995666222640397020368756874155231330488378734658676721969299134670167276469179208372673900063849176153300259809575097927325422978520994767062162704390180347675466256686373999093743741722463781871395056891121855258327558715570553676502749147996666032728128469705982948423256758652935459455617669135380250330252477950518241991667200505241315402546344758130785919439711363298153975241367903108259261680425716584789705791629402962710591206485900865582955649719498354467986277491323288631255211224384670597390402751491530142157742630501636895331905068797350454677204567219155187821117594577264115509937374460319247990211989178734155472181559511457073013525334220051156118795307778357807222540308597638752283701657751269423294419103201019287434055587496361334783801130192671859557625089046308917285757288116488799962879351933958726228124118273257406239217117471717154509756373461426080702336787424783551084003320068081717275519502364057002319090400377205066153541342586876852443220831207479937066361461790362773127074010353880788369613737358674965161282413985999690818239720092542092415461059440777241322816127478322894975092677996212315258998949627220332260838605565917195185408448735388599925152452528489333575201109147238434263975187065467956639902460200486888817469335759837839182348965719663766773810628582988734646691457393614387431103172859532507061793421286841012899112909994603124592939573703698449152563794979729855517853978914644819645141332944767332199377313217152226950981662481143858153879656780584185789850788368043583864350144138696818360943983618306332500075633238062250272513030911269793044997303455160720623265970440258571569222777920267410498399068306790470263627507858446885854880161186679535381672193923629989700344206246802642991867486167979936329001191446378944485429573940631755413482568310929052008001928778073582427563639659452704828535856830605345069348184852904756020139069189194408088290217493879233441073007796307560836080741329282492782099916825655908013645837089283851992194591846730683349561270088141596937852896255818813754744771639055318377462764272495786560393546861356911875731897216412492486066243364223820778280091279004893542784668952073403896881067728976568765239396043594345709198714172442433794317808968120030747769995478351083026004851158041839647907130900166525019814547408225831938207039790179016174790683631007970966279649291246243668352886409064973401227222116752228766834959383190353911314736628492685510224264785585484413953135619998700165252042482563492767627458059236925311000566419723555913837346095386913796060622099797202395487207441795418277451471510074297211658641335215101844249188292403148757334887735723068135772542426217436686455309430256451719987112676994671328512390076840915228983327322183368773854019737722222582431801328637414912261082863732845870049804211103194530597081339780703683025637376114611393243497869346962357947357649745789105010636848399368196103446537982215541149709130903052689994924966486418376458612939262977060155469465181464829018051280266871199440237236317849688594872556103922594761555158509401164374230619191884917540983701263288987324636684023626109000523161804055638250380725681881537416011968247687795726410492925001390677953467420640651740062832957332129638455758207904164615042051034937192660295924912869675465219817268721336543557438819837330754238773475370014528921441215803155108212501284003631059301415658555861246918494866681952858167080111599244469624146891481981086938947146465501031134158025828166356582465634621933320008512283769793967020449258279816004928325208173572102712365370960329384810437272253805927677190106035870649258444639142161502469418170044003964097182197162546975215965949359406514123843263878014276780881731148087977931618966026437765432002777582889266835812363563443244367910485013301949952437110081833253045868105096074772753349557094025926159730807330306751241252511028654205358887585019630317694028767842664481344677676148338274950696444317751446064427272102199960687217510263865134494001540697425745883744689125397658126061304588133388866464179488608879419807995913491741942081349393998787028071849795383913182179229255203136485242096591507056084664047801248901943303096912662458854369475873226589488242891971687805565814155483630725310674114605673939970492773016199769076751319598153576139043332302448452815593120059682374599532572582126234793614602046475306864241280786510409500457273013662062774018200392660835693881747043236680130165100652962591996485780644658223817464231998855718041054158727461295205275820975979518083440521750617007288092083236910217215802260869397286744585202469263413786836381820636453903566365775304677725317386993351647296048831478846853875336106720487296220799833917416962326255683185501111345559329259720448603312175850890408992419578867972749358037948442823954932981931819842306296967430876964420684406810737980416683920861698272988757961261195896691211570474153728506045608240743635651561581970419557354805813188057375486002340339728546337274187180018393182950719110706023950361878446500576038692197414208476002364838111928023589432067041289021096993419268874895519368024914156657862826149902678653457058993639532716869530614545316107484942418894948309651594479246530288646697446820229111180817368039243123325180347134375217463569668073267251571915388125039851291114569871482445992909840983457645158555377196729913904687631636926929674925860448859815685520296715110007438414556559161432743227510368071100687699371325235206310977963686838280228882187992228483353004115456976022818753081051237261668725851759343192451515926886532074796980975964880017640730348332043737454772425210287892285056771357207147679746874468680764570304704502461455603901744031764565388798389423017241568420790756684199879115541580304593325029505644841082367217314122258347852514458734196984026326170577776470575952442310280411803476169695589720009644171570383801281333735024997086746738320089916478762150460729761086881387609992087176681503635570933039255883261982105926423708950718653889563753780823145750897790874721799751318133504232338562905822180384257389528348413285878183233833340442653024407322750533447042274053499183260338934727024291113967666261645719241670418279671261952020456934133465156172949283249382336478159875173297983038904238166706380360960649316510327954489170784680319164646054506436525166923029482814927681936087410414705300530296842257859968241851946029899451153176273726236438744248129774660806427768915472243869690660771295865066715678744207397293320840681824099515352617610203420443615839871927880381376976461075949559738891812187410689406640530178546689042599269853359529100033468337065745759189032868624742304609258119145718552154007656662141203584767522600423225922292941195729946920242424249606638826948402049512693595210473490353591441421561886826039236456294486399404749845868330259456487212328144642937162532776649454291468466943212822377405902030081157121482303220289633277470413103646405412285097349231085770103256278314772188374916604301496459654550242652402488488567816971450040087986821532284203575693819562591024014771376519756211326471032002903771113065843425111708161782955795427588941309111698986154142214282755056508979499486200101597946308593708308545480170962607564311784814614915837322333433609081616353209159928441364189506893184892784619412106092005720839764200364426315860012686142493986092556298457821780970996650325753368188156871740607418999689863968545990001952155460564555899897202032296046675559999094211499867510167085226769627189714229278609010987312166241927664221722869324353459864962638418061678602300526118372956837754183125959860591372971668191974267628687896026026321654221667231544222493103127824960119274694625007527605786847954170031189795938879379830689598260767822864693732837092462911592563342658995654320849594074569034476452663562339092258338771795106365394171575976481179807887370701115363577980593667308444586120926764914246799406732174711904179024819129077220273066741943950013714811362761118392627241392217818668650397260004027654109395716267601392977277941167210106045363325382161277221280708920920842777982591612851436240805111001284755942836842261312938766652562897445196238129999807832428875869401787565826756392353590980404659194896422504600182946691847521569580114806489789833731964893413233003669044102303237425573175191240615203350284172368653846601551491154029895589522408100063749323614375840531393225377810399174896109147630227910510967064947072190119196312970804714420872122431311127238375194406006330881130351007752720961019077387658648949274616823730605344110496781814497070632059450476625865853635183105230913189232051300243069589734356385700896755739975695896392857700485579770964487508799549808519282480865044561593285422400286610000453744736882908959229901558574237703738337434237119126895788695572343690410490483903832635828594923806542230809965808254203328748167692637887875788410206628540485417177687250254616351212988395380960527267692040487247958593880984868462165763629262453099044800469988854216521519685150026783077540141645969207274219413423672187402987108914143776948673681146634596085291565587366468051444775061861288880748686439164438172799741042253692192639707985406317519159419959982323942490966692721305513534698183567111432426959084488181753036370039717450304217148946379590915925484164272663718457989502720543349073196894468224287438312354757862372592270310648962861220212044921457537027302090372677084221462397404788060264063886590719770536453997060660487297289674097184395600752418624830991852886742785069627238168429979199452618524030125251340279945428790812998089064626903497889908747232593717957767197235124231701572478573955515497050015421344329111928842196614013363254679557681955972391642859177273961099005815655967839794591493583693514315840823708172642401503699016973015567939444856854850627383028811125156264884161077095023036260001760588976427856653938556914074193451443232423891241495512065701339371396771447231893735974065172440298699047902985948926535519399825792196458160414107183121901992559410046808640093894680623867198733783806586754444662336875715217559759977705373751303326420173126055078725564738779440327963600193917884217645799459915997697061655542576849604837518776718099333556030466428809262189817119287504894147787671529807305898163889050236381863935955571659802613508852808322969016660214426147856467819250260726808602121694444316799198033757063238788655090488897799058421050356830936248507804777113304908159829435199671166240448178725297016970569008328808753988491869365571579003413652798598388831073261502020227126883460404767070036256120508921598050334990080647475326584439786960617897255431775921188790291085412340309765834601129833617340261101809245667300275638109931864603862802319446677323998670234587009196575799199725016436526166323067690243881047418338570599729604262970995103899676153522513328355815088200087565785385380466474749154100135906600459237316388092607256844609978663936729023897158523889394413375814082393648473032875188601284982079949071175569385827461447405097012252304464773873229071367595886521506836607794174868366066024389897513268531941239372268072254988696914039783676142315470215011014637430828995863525635188793073763614829141306816601209812620055899078569896862941577681827292009487653022605761205723367574691123482884892847279824129855230568328847901638938597392788893484250854769348049722127847526862574359103659585996231261433307594260902700374375666336173171836071121065590788616249323852882854888468910606508485177342559216151449991344598934132895899039142754611690527972848878114171082199456419453165906654847538471022354520628591571717180354100847961966937304616803902609115914285512750000799381429688228548417464739836947406981760507617955559179409108634738940961106635210840045722531864165998200046106753521406054757626779346071288017395227532511896191523763312374823457869963012955311903286332861761893082769335256671229704980516409292374093255412260242004751040594158942851611506580843118600880775957335728207206929303483993555586341211107056152894139436682772418561781651348352743541242293447249042443103193565282169427630186881902231928720174515662042732064305300812267681837099886345523686332241574908634099792585891051414957738009845138649450475344602299187170706579971322017455026764650488987256613100211657007233854182418346902501516816800370984022946184746655482787931940573768395071470410144156051869600781284628258404234942394230232350612293359132387439552238502974702978174891825178869282165994566670129667077910025227528977626727006273382097677609886017723312662816550420562252234662882799329623871431605645328051509636661169536648075199930475066776296355677178995758505759295512125183705245291086549925758188233725516880439785129277523262127070073623580522557431964452210254461819971033317709522286674227002096063881934688308724144164859435283560236789349575362920242571920900684509340678239295062052474183669463497806547118240554405121817453805524870215978868437527201796755316082442028960986921423034078325754959424830742241650721566678173268470965841815669353956119714893846958195627241007406081905769896828589681885698010975030855009609358665187252767972098164174782747218399098482404709950077626600067679955168093694407478397260327073610463453675079733817643807692883776033742619119025622390907708429864162269532925763760598157211832335212114312375367088333779285801472834885578828332610821484667544417735503921723759748743350549829443794851406327330603850730712729472791113899180813457718438681055047124729079918202561274000375639809183582143577969047830335654743765460564092772241897352445740486652618382479849845490450732684385055070658954263665465633481924096648835703648638143614741171711184379165094058698365463362690151834161564981757196360936195650904411239268878214221740257001281537519793109016277235491530673484211502511863058300814355520944336744490157481583878753724621576194363730771385982822547185099591962969568580130277242109665340202639762303571840508790910870569590945067999987579632455444078372828667582085590874937406708895484121849279057376199590315590679683229050029883279322325685171025342244980853645078549872219344232412699152284685800288178932278092853961189033914440192812208762399536179001834824885734785393475645785650415599689857835516349488252655191924406208855030224752451856743116146499512503343982010436706054558079208772308390630460674938910957420909164319133179020704522777553609469153194119388542564734697973234174577388863414668831625377209056861033873218810825239339674115408028264631704580037564311151850957497067624479665477464998740960802647689693746605470411153206679287664865124800884466540491488027025566220590248683559495587221401744155271331075627367170381719359322287549958383917145308697384756276834606678433398884414087023607818381038492591417729472813441314404077068325969293034431989900425692768476894307634192351958770527863955705413990092377702725176176926687482405593453925715481257821832184128527342500471171805198116361606333499866779671613601585823979624000768983638332376817071604502625437227710190091727344327774380586964188554520635539661106483285170009370362060128037517226148132644085025270156138831488641282675025223312338720272953866947911830071318346163209113687898631858423520915779559553418778056583032388556674251284444576641900020878594150212549893818224180201931138730796343212284088906921615384563240542243544197223295981269196462365556166924209895505321452297518291978681678623473507190045728911171567093826019619529500181881331139589954353815028307013865343339455246543272704198515921116580783842891271071940313841800611326738340427140069178526298920806062949487590114734851137298681704931185247341299062856342321482633777738584524712548655825728027319775283169346575556317072466347308707175163277869391560642968817819086500620715583808187362239809562719405906685007813315575605574025407059966636077925286325888195359763975964045340366295619096254483911009038260940127320844532176427165384636299569774044881198133057360147239227081256107053659800379164011109514680698794350469033070275463165353844628813752898228798221396090539601232542641401284296874529958474274951338836991565183664607031293196491084521706687770169432469133122311062609382385664812582789505039512020906159316297050370193756219406553140453862990880563787933158857981312291001232381423902521675875431877412499705333138504128160046639447047177994342497033394400378380042111426792936304629310953808836118016667104459535807045388140527732876639111258388430975271053648096303998201621543496075889815867364864096067007372597587331713835184659748193933232667256472167583645800123321373171674025886456142394729723459054045649932776779441396122408466888544414240422177462548518635353685415709352731471372094854694310668934823348924092799602812089074514253575297420819515797608814189258020834332277869323775030459689651376848639901247217970209373479338740938655084274807585566918767151901834575039985668830833987427472436302686406257721975890786786163186258652659254155826289949059292961100543655451149883826555398959669060111059214101801639191159378325886281232228590475846279981000178644096862991511742439696103864387421035426135204482514241947237542426398143308558950730815371677035258596768117158319279037401541089965700231677581816457723181177722964102884274977179521325134134518573512821086970207386279791672925161304944202862051311819657133720461686609053610718198490073356787279299119421995528872764522577312486414833614920666808551831017337506982232465516913500839375202492121726570482416027020199107825677611251073738838774573883439394420317815664983858598071950086066070444734139349150263431254586993916239633706910179423239461448474890786342485401360729100753760523914307783459935161515441738796721517267734134663139498972342845057164102257611590027619774850374690186119516471765891136597616325897539228006575354655734821756858711948282105532724611232991736703577856298328702279522428898939170757686294242136057471814103213351358381099400647959270778206490502875886516277554536884221564801569799378135445968286497212089361914221055958459046544362160683168189613293935897621405834624025449955191314003052467292725992449408883690686631489914935987404130625333794326875993367681654813136425279726482490759881767922507595154647505768439563381354549690239171994204553029048843893473441394061591767996481619250595046522956892557599241105332238887228089843717984790280275526244713132816384607954695041711711022877765611362035482382717610473457956343574921243136326944847292774277241798053009146115251919563818978594233635377083059637324937373733083468560480899060698627552176957245126411116950174921118846640551867478450601351759135593991363560266635086543305129826236855773065064166278718406658623696020475656077723215123634704219880972792443461832076413006534292532335040491671201499841040654931936190140035863244892444118324137748811767804950722971270332632611267342990596011712217778488380138262517863215839796069929638224618251769681110947989735805029710414793753728705279829391380073120661959834235841515993961957818316396270249755763696668685267800302183240061931135469669872763650967735180903306580133908639861171583082158640625456712004017705649726214557064493933016306476337628906039352893906110096047706370655165655008332850438311535865749383720585300917461767884084574969640072456917209657161917011252012880263500535723884379596003169329768503794360915485022390765689330970942484232196308391561912737765519764439432675900989559674950588228597950030185852172935996823902107720131748705201103601481028329510836306868378627611170088965977377246038170014406239421570478361403771081209895487031119137329926139578246213932252921742261230798433387886237193473780192133817669703998673510159545354766902966883845407942944728801739604587358793646730462635623450151510045239001945470478786780935556886434370612564378556519369941833798181536756940041767288785765569095800033397216300972180755180738365270049854700010761878083028105221801942623517979630328219625682835241257731817125063599090666175032831036732218977949718063710937520999392077188040965279356840850638326130684718339703536838342765785324449730520904433060754741556561763917468710216224153793400793057035766154255175996502156467696770871176463895666737178324090993485406337635257654698535625826204147538721489129777837379442174355723997559283561016703416860768858991237659105982298395897072755600686219293047672450215222894345395851346512401069383879971382323208010203933019051802024271104476973844382125315963759234329424769339381246798378757472106082712375093968234770970795272640186309148537902747550920505403646545054387086125397484413678072636426890940089851012989884170695432179951372855265840451481714016357257977110416860258165747175348565185740077106692673206508899126170315358840933807647444347165791041639015164289954362322018810720012352255021115306967533668745685170813148018147814656159549976776317463597046778805551987418124450149013094131683288782594734661946408709593193644880219372151890634763100524702326688858425705493046215891872679128965268112206990647886262758583241407915713154782732410551562307453751352604522323713754605039932772428437692716795202784972517248444944294412669922783532614372810305269720883702257468489504143346849669315828062621906962739377752772858421225339503102841633114696760706956809563601317760827165885533091098509245629055179102244489116364385865108703188192379273834271574835059435503515384347992939468873083918195239265232603552785186176878960768350709757552450605976880438918530157555159502929501437410893892800320115107980256413297195292106351606341226751995223816128828299620981882338015018273412081827967746740164956840331673991506384907900223102950055691049821193164462636468254607403352038853813775212110972455206194840227090843914898182696175373072290003210672908850476057988581557663516741763112127785292391753080810158953368388774171342051240343540285516563873244102693875743189412111520295256287217181400764526776163246217023622570291196728156234539376700916166907118453359554972219985490353629756656031669999284869416048846401691831019112823985841929161937253093145661680620055476959727330365561103433212347573606714233728166475967152107930573822716792924294611792001905340492550970044410840747886915358705672424897023902571679213522256906294799179115254845609242791078581415352847492205151188959932597977087669902812906647901588413092307344699693535676687652134048812034728824833459969797715389278700178561232527864370060098405642976475771378386388198580874260613285358060802403617580039226092217056826820981471958782533014945746269060777281465707817608634777352043700274182121547827662314178999588482064040509054342101442041911112564565708019598429814239986473166424711219521367241305590942237144866706622650344209585588087005982117261453593503056929956948004805302756528716365539967528974329190194237145131177292543241732054566206038888211445815084945544943269315275097381594956267416718851961005035054067352877386895239779958544067392926682993225667247677439891181884925243370540340934588965297673658832549613302659784247439166658335095743050813755452763792880372270261050722940477723951105268115454023422109682546047327696133986193890301114964189367441649933798628124283405437550990176851164220975944972617809275199132880763322961614793743732697533898240286087150384675918372045805553605602723711882584617505216956114299458167224561412347321770351619993979300361026436281222467152149136488152293150518547298424701294887555200157071350585684880232384824812775821648917972695592589679920659597088407911341986423632612379534257216133131139646217894754798421751356193594646888778724985524126594765645968943010743269202792054770971214217705200321501144393005453217268514980419331724892871053403822101598153263135677767300370879652113912727127329781465041136136614903034678690451917615339267495205125516440810968370843111089511636975461794827759654844079498155026416465340601556392434742446406559206231954968657537739272893407559311558501452112059254101648304202500578242462886855668160092557472155841154365001406274606912992314019085070519469759444821228095379313385986629796257851238432014452848386654840257431443366430812809680828942858515606672824717892987774549847791232853111319813483026348672126165867742547661782459501028525249859632412711032556529406596254059334871939674239598360167037563936358317254589678112513944678722282512918562881021149499666518805446340183505175289034932487904520967557142266727218983654502077768861433142424181822846884741739903023920205430938924745453975450563800515318064963040047022102639854086518214096189474230901046776268948491056167866492200562158028354475341242974148096845180025036556835328638380268681821715420481765409830686380307859010438821205675207886111315919478045829406989324580386060978958502249360341086191401326240363252377084958515898741709815017455925504449778160917763332565438692481268236898173420821815990982319382985149294357141237502410324399964083009770966853277792062333737502555170073339791854643234449516548375864822229144903432663859873628873613282947498784325443305037500481012174462512656130925133792763536686245308805118534351738886715855830654232380055383330052825734797573128179446337978134284673154160778205878799223928104060013909458807815864088662389057340921044518080634696578109543347514066676829444376469982999554702311529578956069058058842090620166880902525191350068260455577177285824160765863316333240274831088702624908807239987335884391750427046034993519119530118845918401401577631829939742430062055000970291649355376309111382136785691111204175514275247403437920284447568466964127227785680908820962115259429226652301745654790633334756682353879467181480196829190145402780315951825277186017326563405445899681026271433476149322050221004137674473741123953894790573448206651156394884794614009408224329905017338298057643449052373378123699649913174858277841714919540028317411296223713522178543971227807351866632438482419065671121267784829636612790754356339785820886092696350196774113004410512748045811930539315298303140568284303480395135795568868062308677979599255289097818235157504217969042363988379521901773582594818034977702155655524007297353511185450069918595515623797308181292164675612249904263795602329121171677351718884275036405083164916795321234819908181110967983073234473176091242700058644622536855443193722212001204785999104934997777043813314334528108181592466191197618918591274369444444443640311361859176045326806057165961662120208727271680810788819414423994051366136493997671771878789174887397484036398030306158347000990405023293181715461552205374734336715347910100798616659477961655088978267551912595864238267885104531559539778793282931742703082723257237829987237904793869227167893323555520989354441044286244999107029367642565223048093426123857093121490050611295129224622894806154773805098884574363772344002145987415870692341383413668608178995288721183719574963838988253981167104281558416802872238893084772112708241588605355374959945277708595832019578500873405736095562183657975339573782107935195910456926492075353359323125242835564793752539999908203471314368657767874409050710406229195472477203062163207184676210994906520571267481442887100322840679848493468528030930503773865275605745412677131511068021553440398647134062983608687858379172625113968132749206932622703774862532901000283905332787313065992588030001798555454499921372519577111105948663484252491996593900487405775070406709231207785418185724962668329686932891322390290643139788773646303022893583631620325690746138032754905981253512427491740232889876721602940222134709919895803645566334498881358353536012733921454207380635756444228910984980242793184243747306291300786570759235145306449103932522935852435387569695827630855557991828899030797822759128794811590609669641142029805232025914543468480301905914918607303378234978382537628014726774264102022073579467055226610203659772573234149357966289684716355845813198153327167543834764042067381182411978784663434709616776571383749120679128781579658346749437136795222884205482682046147891718514854537729850031352743610629320040901277395078822120182706334661916616824421803377042419453943690360233411112341421563523442844045076740962923972136594165583000087856334073016857776268124236186960342329486330667860815711371792173081348071746884773193445186734714140940532887649057673011625628131945289427424267328850770057369110760765668206847366909418751466921958832912885858662133274968600563768048755105683323569687300592508543816823884340563675853918232253027619712409397004519169563011657054283765330189829697307521921131865516520818586568444668576204678503488331986866695593032256792675426298378738773693221379728485611954567673098090968175286326671232323969751536886936876952735119392609869167681650189197802964422805572682262848597801344538476195618971736380354361512763218719872994647924131332625410055015743914539138111598796443552259651970421079410322995506540121680168824995750189645851218498672925433647200666941393179908489920388978328433645765510220478422467904397622759951354505150216213117673458556171289269754702984708257562368660587491656610406806831680175334226432449077242184846927779790378192457277589984154986687529310707730440372335561091772172193750021381875880891762583244938658770043747760526284274873677886371178404010593425220489168775098639295511322459308955900162393167835175394946077282317364555855880749238174500104532736895890659953823872715165743172488025818249552451082399139153160576350538495955315345092513347613963225755086949866527322672153085718238588917781207126108264403159285638700838268799237813658168593162561807773420250694823480400296467632560110525342855225202698552162055073236975370658874976415698769252684448358711253759142671934739660660852078445313364467690290459925108518733674081393654732769424785474387632203937789847838107380351653062912964975761048915266077175166483267211820664815973960230397096294024658758300777571006239984247433018235303148724588480749888837888402799963930983151440674898488902439136533876375976295385639313344539412205199655864028542304385785356274047560123561107798472650454756287549181203378662601169713671420161811000465556764380583246780740840284725054541760011753594745330065265715881756850794188957843027422069943661476621929445609899580405858521638508448938383631606034084677648224243689919266396226603814171419034346334844276332718358581957684480720799984510825622904267521862581958633618944763088983714687059780927692001725746206779717632238246568882078128487077228366207588608351730321009546071260145448153426308719653232848211063622944013243943879319941480994806180400314596966530854601405068469589280892998589952359770543502514704751756780055503403805441447328314105336888571851276761697431416719376664549866430630204096749358467702450512562473958935401326590717509019143927021399487618561445882538735811182046291894648569616632458566332577372396565206350227637406812919992127061504107879825764447823959266280766915144670305340319470359082657625069610582441224885102708497977615670622245403645776385824865092422979828909872783216132695555742277486199072776270714694448472845305340917718028198977151417752783014683174835186903221425479188880847077629929823267665838180470266989800270231660330801934759682461747217750537901901999489674620100883655797137254589284118705271561388361629775295101015543277728063252736981659682722589168614096070377713270980219601013523161157853893696423476363110606119272328146097772155017655867922183419716280365489717104430649530226167853538446583273307001815515751938274428457363543912180109315512659040478697020779554669815981980597939551920052890802751936041033708306108727479986493929333930194237959917012304940372246118265289356382062824738508575534036224598049194985913915204130452927134996066637271380332031567599315257488532849083343824559648184216565397892735108539892029399453278993876357607633030194980024572110653069216236871718471930148739262628947319584164453593252827291092380659208549504765762952011304757341329098941558469668027660922600285657737868901142572388731592344216157337040088839595111118300369853458753840628396233017306029423836968740124441485209239833632325835220367251945599492929987552099303405275322621030401893287652809525575101478768954199197363470348232461513437061561660515675592701358334702283885934491602933115131543427172214077880379473168449078822497375263761440714907167689382922082892500945306400459077775331173782789226396466339493816881244457700699915942040870350842281313391171521738650781450215889526931558998314333282432360362373819448593609773427754459628401576871921205867337817748280186873023435456310977621900898819309613419774423798355745011067636200580158757731709790535009052084329325826528736455375424030077543315021486587843360089663958641457223830708017573072692239991377605538982390936902268878855734402304273448127482608967759904195625330117579743247055499433231195473734758008384990558984939759791282433219327192435121271665535843101673097947821996204519778492724911042950020526005955594549174564917477085921792547954032012653954080810274990146283308380078266039515753352956126753944367092561201108245231615877485069726196179011561994590852727570644768336050502741425594748643503740832390746752585215777807238040849738591932694857373969477440709170522578042339984145304269426587327425834563315731490540407049569258529202691981294165738162601266304058177363995061241009651757704682133788666101207133637255277890403648999514282546886720161621747969238346500649539408245967337681911876142420947743975527030054734561340227267512840526514229807404583006014935254981917844266905945121098878083893335165105670038953977084440507181237665859488892806166462758056036124067701466552226155904462969303810222926755125343535394913340915730101743257293640752791808752070702910845569418904787210927619172055257705506468082851462445378086272501769908424994773247988742148694263811295611897279732812117820411506526621667783391862138071687532994320842021722322384386272859850410645490166153820693128815634914604299905837051122546244083266205126660909733515101608178733066583488784865703099705102813388071917827444232595177987135138132744395114334745778275471419753762870710874311101233874638114752550095973073444467505914419744226765791496757402420561161021286673762282617790168575812077612622412879986691257301718179978227401792471939981894356641898581075484243289239824344119012992124112909386622820370213135684875916738736692789440446274228455575563674659787665122223411222355493318045147206316261190305283310066958131187398601902271542422885602448308332939932800124615845542845402516398974924502491656063423717984318015128194721594651213651156144758130056511520654911081239203581938592657046045689862850688681219754563190655564492439880942540707010615016283807484873703796225431121766119948165910920038990329621819562388917522376730058401818845472597078148657558409291370262934858395292658652234594371769164803745770726626194540729554794460941722193663687550471752041834304970068307706065975229484644091605163987991978967717743210048277379293702454947410925395599942649726234014753218120102217567657263675016192080551240379782394025720515521128961829057902201486254310018479410296193110075908369406742154110993173090545109302815741624836208705186211921589977637374331381543176672935752830740374832121375541677052590872653403500985636000993117527579117813431011070474395317286418109567122030305757643153310833409854393615494536981740013914783536689344534469610970063893188813751710870092938613958092171702923416672299681436682239540595735917361720474116483949937395224268793263374660141992705893389005572789377927488449058323273326522114051329627298078303262115998818027634538028321157227304078101952272252052703170710254313483302503641710063381182972206247604063426532848459134816424194958111109239842215126636046925591305182250618873923961775142398041441289141951236206851221840155694844471209188442947683656518329113951868762986198735988629559301902452688356015225319976517605372678875873816532293843878414450893624900975470012052951689155066985794323596433104825568480426749344876234789752409872003457265864939894336015101036705908824840943314172259371973186747193320375115817941386473304792988535949223320268571458558299507601021057756658844430574032085204666025939125609101521738625230656693157551065902091452128534980836180199588977795907524792271323287297588067424726975236291879724291955375600187692496267280407573807212782955357513871517542364604399500619314148573656200593952992332948538783170481145108043270554201023480075904020569301731499882790929133264869354080228008179078093468993653941975837732420507274046061858637457945716577845623214436965702015483432887408799559222410812543731530633470931384306110384097405528762394062784581381844773672592591773083578461177657370231940830654221640507874746412089860674497001714384584367152134484894812026102399296006229831457529524051275647581907938535180226599290140048235045124348927048915972674599993119605467745516491368795044706457439912712156036303522186323146628630559556073889076162536307813501876882538897718746263354937102897262204552025864713062398571405239900060456960208393541962970340172152260744651268837023554723552737880440155141934882870881541137256630607594851223127215743040893802642552123512517005144277023032203917294336638107553061627783504483020354541072105650237085367017878579435546973081941406871720365114278719086453696832703613784083071062289855432103209857092848963805796971430610703288108697137794325139536941510952138643451558036803687136061470419370769474267049419884334476046226407781757720893221319767793960395077929110738161336103583685540170883260016723806857295909140539345855820560341900429234225688677027842191557973220271590053422986231780552957217880281622408755234376071110151545282138827760867204218328255018631658206543364801350704089770404224233752427806381577751117080426092931051457976832215297964295703428616827457297624260051215011630507748181634503748543198648861686237332493743277928189700903191526998944028242496103907517455555361044522607501769614426006063022936154378825907933771243843282867841142413532861557781875159483777612889120836264057236600435136005837294717057748701825462795525895054889352974247311565270073461452338290929142239378502445901938383241359294808101210075174515038607898666769069189415310412804655162165221240482926900057372827663072028400328724671809755554936750592477625895947517761539710880978714607836572227573496163478319346672521700491472460701585539792475252169808135222681067599577700809094374882206861445591557356833196970000716185855926295235043035563790391042604221728528704573156514018327079002359762293460801428406107432067851191521739137080765110237260409022944361483428137719375798821405241897987266795163067569806640383487001321850487494003344723714484211278096364063132120756770513766328046203174854265464520013835750193422646383291041559862104066564542754466163610242624503033375754300022284999007010653590745076381193319810903655473758008398364820251105250551580073054311361004493501195499557404991474127005695054380743141262011555491004361946881967967218238654056342247922118554975224412049064070371944558931802211124318480090850379093059039480159215719245373604879899300887916951899412180382194676273834376569664138723098457791202317986500600893486715377660778134340085501074328199012182545030674872646274705869482504071798201703256958411687743991947249333725471235589392083799629078448241471121276162674921740673115168969749496322296575512120493034194460973253808721695979263730523378679918587778911691282254535317568661740243944619255583278820946822522889521287261822672991504415701397862896719334281262150040191123841348109707941770564304124327411578395717660427645948829876190538294495626305223560783771682731098047051541381937474016085842028459349254756631072341890794297057274150106017466163786061814247309155901632551914585741123039893427351319863650514178806787201615307821009023538601311815597466312880570026360454891209690168361545040805343377233090107298694779531770929304390169099849363783719762939142242850470332451445871523515020221986950609417876459264801304349863568836808339039960637671090022489531420941737564622498164370584327255798917005091600915648871351341860119832280223478190276753306638847797373700477360738708919085713100096078244679702757678594841776316925057689366639237196476545898852454808724061162382552066504693483700016300986131684174019756242354936694726167748352624732336163493981639239461739200172796564190209128180830244749225530091018068705484894040815415344852613263575926049665442693452356363552032175750804711824276898131062478833858605371929913415909580333847285992087812089450287791725579708902391207567878049200680155285700793056092144236465541243390330427622602810924172070121143951920801923607165999383991081018737551245490774541180196986147733963101930572384568761971372972599856053480846384811254992483800063587909973437647971511987370855041071282015214138616579386784251540266816449397946368957918378156219793035124309163958554133560551528897674025617668998217659120861090078895476389781472495653828289722580629419807058630586737658424525559294912814021327586518059536499546410795715636962583273806551172340565345939237729619328632156995646966310683557953573952975787864939941063598647939120664187326153455742319935786136929597733123192871086793430324487302541171250431714476186516058956348683722532807142291638838046231446728205202464546544149455679601066178587078221083901102141758544105206372811401537860406285546916571478361976535867248960513639738933500639790910989919087990970555334866349885116041718636970698419701810293477694355901160471888048425419510412258406409278170624292077207022718779556638612135692140399507726847976696247442188645403132979185042111860340657417777111487845237458942975753372944846967953829185647366911159810757940059534540636825948632657902174586131189203285239972682593657098958485668419833997668745911627066853947723135974283705056108737774780815484637853198285468747866423635046502040203864884320451310605815218370723797677360498196556400174949972976948784688134554189888686370844476346869505875365891346944909994541183961116191295299349600001128194212749202634678433233339745232811179420224581271234980186564751211531932675058755416740639946019035663893160421794017006954772923667573517476143227296312139976639659339592073369973963775030215217366784513959043638690145392693785276220347725159957952388955162854849354593458551653872768893743538966891232690898950465482771249935335302674725463452868941804970367836938079277317545343301009627905675175497099576830291788669668573201684546442337727139492122210193714456792036007751288214639876533215497746194262289069042254653350832557222378913541725369542786333916425013307958063684134907610129979146253902652395503667705930038339355195407355552584946251683889419132004403424859050200590257190017331890905509944980374039266812315599202826805130388413209024866748434138766957493093011864063796409445293425044368744414507720712940353881554952861707339009837803036227807786577161212503242321111886773699555229833888658335654048412176808197584074347212040545619422041978730063518496939522381252534077721565597337853349519303686481094761740897491601393147433131805304756793606582301750281649923660971048528772036627971879914861807464252094126839675582041250191934429376576448428741662627890620477477498685204849591935513025539599008727349233390346760815094307126698212387287424497544180423139362712085976795948938704922009707753261739550093394600820737896922885068049433483964135118195093755645878127526196351210062518122735950373454314973294915035762426068941509379522630420463525203177820623794139801143303945369016527046741161376767599640180381797945028750747085319388333951142029684338969868446855551368669514077529170278233136262614613935719486832836201838787476737862862637804534830682393058605153721243161676507768416480312572256644941605477225242951046524334844888024753599528400184331100354219435207047159906872961382827500844194343055678456049857967504250454492815339364508565039041042010452201736525857922900742236034384551067228383982995699870366570399036465315756728979350505003015345053962837706104695062266722465039568933048569185104094470896239678632530567906336952964893895419631484419943206814182705132926094591866516768726117316956417179178899588435423469921389281073598045607402675893433110217827487517399040191715192686262954752001159234996836151357964036935543655287027306277451668819061810909595852495601293097634105727115096372505989615452273803031563394101042908293809759643341818299763721947272634661877862368070781590005550596697072295414511504699780799498738537245238405780037931347333105298309681778725073716863991859131896516354755760780821681336181217290341629817959725446295827750493948385895832475141046388531267462985113260136953407512845726086371941032483602402893932083694363893798775540645929769515549425842105004637136717489479602686353694174464635794205506489983997439293316838404258343471899447392743553469977005201074210409750245560117135346632845932879741012849017250373951065014312998439874336643161807115944196706745342364020039281065533648856767311818052713078321580031235646426001627258368392660653265947961720003235807805214046019530122134883301615006038848619536260756403024696929043673982707392038494363811125350362863796091405227597593801607034069063953515842230700571365703221722468766038921369266540520475182268287591989893937736488843267190889686266743300089613480638422230847670522938285336162123080157663249029227728754946829323062035273569350281611678497857960776267856068091693015839346606436713488472933264493375132882606466536397376985765230537234598315730591629449510962278439440910089512294844781387965020251882536270219622603239382226482831325601834174722134394134906171695719373087871337256231410962577824278337096461450468102408650708330512762431670564030786419306145830719837284912855025992532534720921963050891280629693239223959444625405233124678132540488896467888116820417666842757818704635293747069949518468958752547239581058700955140367262764306941400108486965897649540646391745582263608476951819690655886522949432968314637296684244850213502682715219350294929157070272456388054793725841994708957069795900441926803595988376333471393632920246796993333669599583645711858884567755509422193517334738223570104526486227232647165130139210040255678513374573921255392111730080482335690287408782285936663882613190661272070942211266628440710705242875095077826956663032887233869808216844477170404170719040657141689293809588409545221609289334783054611003134037309389865149565137271594991238618573798620699610514414706526487094673271515587012773688081010739291185258369749930863856783571260559017921632580902219570497840253940249041533291397679493724474455112536769746144260883158451622366304462652014755101260750009549764798578849563290326184206097516400498959715126169665881444629165064037338096774798678051655387174251695281187637920045645424162165458903835638561868267467802138318169448027910251171432492903404092906664155446239142105376595230391071349382886552927382771398912583386233990147879310407421827477293229667790213497815222306059741456281376274614163678704209776758908585055369904721117234070248780606679759810526766947873957687634111288118784039193482399233863102417859763608207794319173135781318206440710786314979550485555096717606020916645508123496358787504951885609501834919959816711044652094080063725718865535943681404200425948164314523695075610163758977324911647474981200474731134690993669733276251015018072289996404159637158625553613826748992942966865710080984675528010828034851704311425366055323803040210103301841065739440387355107461636154452736095693804423672304091912975993280450374537892674012399149306741202784974450201772386329299026652500347172131131862120293894688515639621780742065714808761222518090936767843872519606965189072201504778328109215137488937057777387191311815069799235343395103333651443165396406080144376671655253922274627404440685107267783327244722838027700023912722354433071264284815031413659523489706121954478339926702724517565580590295192629254735464479263202161573308246526873785950339546249397736065821015675600803530309073371845449004523367497214195482850253873258497496443729524970820268870333113198944560214866706533128661741495459301354808827143710043866179340112013682941656436614544726201212968836703697208809598135182081447545588723639239155923787253994744459811275943863030483443828001911338146895137353243851890476868999360442645092398457918841546240547831935985951421384257756096777407074678417071864702723538069843689846396501144064283089480002300026265425848116738297199670552309446958866469966168108319061836211466927435830897210617196089322148641349243937554795426105951097149367583321558825895849511399550386118893413109710141284009645743511896339277471836657452084867435557207788152847239687314336849217085529882184687920722269461670528973360262299876568179276515800948323412265968126445459093037280487450888961948886440852961555627505312977214156043126272951201915429889784648612362167158598091885945767344699877099994360303354953720584482576676695271693915217379967241552888302990445602731451372409121007126359954496025138784703349516907752274909664065164130623052179026635439377397502163081114386191818272431834595109419888847129637696716322850186451021732787072153057779959130581958487176989012063147422288479803801934838881512957447674451492013268473541404915609152164995816133005729167608991138771720888072583400099084045878126726539761192198630289721187455840321517374996375273839820294057416675271688702714696528538366402656553761217688742027375078210735403672399115299361644007501104402813862776803779079009204007784917608962218389942447016019078367326357693398378870786341338741340699156623683932009469519687275207446844952806794245666501639718272472649562993732445422753132703394360480378718236453889491844775632520496196706587576378987285214416617270490533114783563436070175359490928576739111098639479499792559309173623015280861703068080197887671645748292206377253590147296213496980490128420840617486039689588710541534761076696948709882086148959287117255281914846072563884271202872674350824209105705892357532207576543773381450145018426298877066656579128625674394142406244490329037484055168855733357769056890028894384229452382280647552616777543988548872401033732057833496649386750018812472918021187068707760568655128358117791217207207506388329074016802560869818193368304823856009410596034212458119951636368882184308708386185399936053074643212532737130201734480397643944736925493143728805330446376811716467828971966267111928437411888286809009492529858900766763554599339989102990392790389344184585591164383871782834107157701826684437189379089650840244638917537809264016033234094388904053055763387302018599619509368669169505333941892799937137692421132528034718957203854670391483429932251580272831672147543338549327056057190962214691958828964795878142730995802187978256176537784412367533220893488908418306456626888588472222365764774466978909434625737166192136228323679892065433572327801833617004806553307106853108438519440031643742700318753736566271124594773193674026554696348049260013744231261297999109486717649883836766742532118118786245847321115294478832879503686667954590063271833243079856956871312054308168942886617738003391195944084127100452765450585325392535031150840478692296025086125194975657274045496504114999009572577530982614453298020342385067754440645969236455049428496391298956600682300898588951833054171641112543976975352795521652085847628429036441836512627415564491387360848959442389274148651925827415321020107698108856624077657743958454303775052833577140013810601433441747503635211220706317370790908436659097478862962707528802528080816037869339168948462675488582638608596749808639030305967792025844551934753191774792742920802799222540354869368038114217673981588568060156469996766078306793075500795790268112316372610366527808049375890887796598248039782705656165146679075031096490750842889419412642298584754752669509491379936423821121888546227527191531521083090986262370285771054853241033182170416578293060727579145704569649606386253923465765674649584438799521869640280741648583418376480255700319880349236318983475185853551510946741915334928728474925174354692817409437982892769099509960213981495089732376702971680087587772452493096019874771074591867730990039152940488231324984058364646017062419397923282534228035617073000491429897227590207798790268491735793322724280057499940133154601458210382383526461714886653376208677483110350760958105561963025804277686261189903043049469490184028761587656470280511747681056793372977357340742447003489526140910064159145424989240591752159186371336520602026708130592092947633248101406503613976823917352993047118186077234083483400825630340578931753585103904842670893791448115780214479396421634449041950994525653356160764189220795018903736749216211470673431127389077992126612873289670899041000917029752324281941199519628472816308001993575330176782341148833795449446868133138302034921106854707914463771306351336298952313336459602271545352969247569699955344538381819785940917315994440475650635125656011160727907665035826089743069942794556553657518971618645361445088874735631041321740773823288035280431991395241518403659809546308487747607300002917378873462538309367914311344843405224725322181713665477121817291095956824043571670161484204139756345667294486513068895977796405017070973263488284579735783712821206286754376367945842564800482180071352873790079729970109248573559621856447421907865721716020521589135065988614301022004394748148680287934794465380809403608473548670569555535642090903140355204899924242777941014287426837515701994937078190341456653974236307901055837107393571209270474605619889373368510818645482434642049998647380431315376791996085993189180496096274134890269611903882570595380742147893619295720852669745878050491011462729039698582869445121777401311886334963011960556113226146343401979796266169087977924243971875947306095068746520854824021537939571155401557723259024645291632530740893966505021236176944508949092809182966450395447983779670459500515857876426952770360862144092171935670076510676126629345805449433739956362899342919546212311365761703791407194832826859397406566310301959915701091122007813147464166344835943402456848075112328052803163308550003056297890421549578109112534711081568161340626933252039594368819163954771064678494161798198682527690757702597423652129458658705103100586150042246959043060380746736781310822119493747334839405535501582152078766780984624792541205706635826064075822266484233380180302772632184166362829716498670866676633835108166042019548378755505558582271386009844592766630313153482627719046986362837077189468187567921619823809482936601905076883591857603237061201227681384282818532281001074974815668857354758201979127365171275247856792593676466315175834963993509787681085540817949174206813413061465441785618998480437154264024795538294974547034650795804489342798252853758268638881106937635841880136582469326686656675112723118941137084414001694058696065967261777656757789356863042404271082635185094043816365525814386783941823868555000115575317903979795076732872260220720313030648094202475940000373965285642506771481783472990102580816975161205865668790867297450241838156766588118594918213998581198615696263159617153974040853014324667128651580505587894835720466513397343456339253359376882709326008286753065360068887722496703662769764576157616975537122419552584436460486303951502737691783959773930475735089073007916815851767634894628744130772105104931708493453492928207808921856120521265071085744522370461918215749889464618095097670109394992295319674321568834352988002248364525135888774510258764338837604383565304592694739384336064095743755234044253982193220782491954165930592944927655766704742451314918608630241007599798943811616172279603492039801002881547278988726034374848041063636867247502574317929551864336945494470240030554933961595661058171792467909728795339417500623401381671915768040026012548310172143177600991510650132341429395699245709048533255821886373819167741370426292248425337390388480515133946952130438723401650865551095817279665270556909224559622322991349838124606246640669296951083607870297006386238160413654265311983428057272549239061154494925848115341020842028961838153437698156733541868483396117769805174671473547387484093630817284378438512873341059301602450037484445816658117847730334543695004210523250062428048081430460379832305131901688941160537859016947801215058736756987594873690889089702945908880489223557157999816003892829809097733030928844572046869702043428861240341803651578666182165225785212301798381083826507414424482994640185887058652739601694415654043292146715704002547142482454696194118736728824372356516498956320889468557548880068032751798977870671993188611222381104424579130363902131922507107995590844655908301364409439727951364587166645642929251095574313865966738045655880895434847725936482679277935510780109695205085996800883558090735925947184275729354825101586981555367389010695244090881583759858004719670083858535078075582096467310392965066282002800351548974233519394685761386787668007556751955540476917950093399375103111349765348638881003110937080324009547178373644828697422100866645028588710476700534023955240661734955422270329794990210102953246843274467627288631898768983400357323336184395185653158845607376044104566732905809885690839718751469471625833699535456720511895530004637761969239359001015311800009017245971820030395543442514372993217974981405492980366115324060723471374795443268282689164398981554388706206656388308179002127552014172848263072241093472313263123761629452653624493383270880945164780563592444174217751653813478997234008461986864497414896510585563414697908899712386623950622033501079000316879282572939583232970428191503123648915007016984594411926656735476915314736879746970331898642972260357011660778857653861534752622464967497060476410560152146328012858348477480393015376098225966662041606405989315200597565852964575574519515844816891196082732593994004216368803455227372923771319102719461032749904900086217974439114432159400150768876291458392062506872046687477197582170200526778201043752634259692157868508710033106295689531894088324131872879047735101539382928457683838997107959016934130413267120519034625837415754507739218993252101016734537162678972665378674945834791411452033594817290275623118148116499211783655280369029040776192696802062294160446391059452286258927787859868070476497737655664889649792544034694326617022140372698649300969707000841008237563179766889145063209170235870699526001935872713402213702781811540156163836356070035288148555845314653176440577898134330000912210021010590304911753576297516666622520981482170281140291475079251746665344164813764715514753936519498286696957752316005117570286319154488801036220520529794234946276234670841333526606122985044394199858743811000510940612260773591114713960438667842813167604431548648082494398801871882106171681668618712555207349396764355772765012568750319432901954193302928379670513149508913542179682243519724734396942188650319668754269028376171677101523601788462579611991724600541782961448465599354356883451594059093712228936651069276881109054911884720572983662421621810641476966490113884549683875123321257938265476898593211154500956941879555778173317210907950722359471780768520011049150282218393731646789110149502858700742359390859590340968715153286798038999920396673025153813515907726254586901010896279702325205297591807828739321254335075183655718180315335744251798749874277579581347386255283994396145801106418763179271619168840658980343187363598964467322412920600298653584675066412954387705633839966856084973707609036610678512109733571603206592031860946211337858132980720154693465114188920060614760880858428497084948368309067833318257773951596902487758452212172855188756583028858839671266940766488893612410029846153212236149329939570043732396188966120178044557616789273172056289926180826487376858627216910646157364731885468025867200570338418260756312291979133874261975718277995102369455738356246858569849582968949581213589876282980384732275703291280732610772937247361388411613672659301495999850206895752102492894501945171091720488654922150312546200226345283461103905717991287800191013405535836308152825187198498632270905504481152822557819661741645091155199506526753865057616803471356630363043631386470173218863779443202235515560342096580207867883384727430232020682576208485435395231923118151132753609759468196488598850857735887085544478799748778031507372426211593553348666229199687785530597942385292304889528358261865673508485567606742686544774284480972678900358748170820693547076402276832811941295555386594340712660779043054408817713845972874703577111013745480418468060481101847377767912172914570372236962158889620445510077246474505075366517732540655735824601327798380879115664404770204732778165496737179376041824521221306010741394882454660758644822721715204255753645315675954885439595341385597868237107317327478488905678304045534236513209021564472519561710863618106243986265135648220238503123484650429964455322582975744496657806030480032264443158330430217518309718125039299408448479228816368645123361445884352722336283656308661628954283388663681789653067773749487818947941482307328120084666982791303923439606553926134442641918370183619502237400529886033863131052715544443432907168205696379616429535190723794803065143415774398757255216950150271095120556465011687236278081468628348461100405898640219313845216084837185164149845709784239253254103827058847530016533524982287278684542667218263783183992660357234208201112614223842625645707909703767023209742256049452334108231858462747022543418150789997198994202150179343374810442693840438075003133612895769271149756348706420675687079662964383142386719057596495475313949728887049058998993230106712921231333182196738632223207143024298267084246831946176761923358882413794963152980964673674507554219598652433262497422515973711244910170910531038149973817886960759872576330535439989470429467936093487472414592116945398721710687676546042761289609811466463776820785729872710425818043356066797096574670871953269769767459479092403718080908597637634008602760443059696641560588823328939536698746151215615885172394203687993520030595123302092020395038237715769948717012284825334719739990789964318866274372496857546172638237805060401632277617620241005140988077021860646955899109919937380992700031698600692924338259991772855701478149077280394776805239844971892197642687941287415024287132789869345138044151814657113863291158972129711638131036764757360276316661657822080916163137289466554478734102989301182888099771031625131743127858715735388539287329636271412699768405562759875798942297232752069802393873507430587199773737895350062115894758854573144018548850452168079349410937720036222050034884827734136659708571281969653524948516713702792577942317406174847950279490858661410408065298958509013958545475831172111172023142899705664417622377879597511832887904584318230977559088078537044805136834276894329606936441369186296051998302125034955734513158447568145558622131923330184346232505008118864043185419051306694697015583993044525859906362798094045639728092253439615636794785982346298501572815331767115751118686868613935721974962193279018197713773001244735745766575259380031723425084660393955485687178550028007403891812432746771521090752635354170688358978968559935599255585277123470872052726643221087506611916263971630035210947250133476204050490597030574963017560415517521964115227655065659594763374874976027364811782834429440072456358707480430089052896504940809223078380369657733545746526603820390153766775610054028107039349230045745443723292290839091184806875368812204260990687797837460920590284789660547280446196511075807994265382426344661068960383304220582437490146955661002157311292371983718644851325572836360187967532086872417518861589690570096786567370146965071507805832103222770728067625004488205971889048936315114987351008787010201816863498003768923215415005272844218958849851038423368570607296440960549478414206702759896076528113417812827472733840386775125656855607816623562512622920534771419559653709559452900760730484812298094945699032479367160818776603942696203222092206360338340814404931284352113935611255075130125331578530696220342711414598281811727869867295741883536098117457516073170343990371775820881076075422686023407678262768822903013778692008865951388601776738319465425457843980077179544856837442304075067670977099027579261224114155394276380064968486488434076996870498999815545962113756877733463761345226759818351062828178116456178047649184964592461028987056702444339335258393121648478562490932928924508666209430897828567288457008526324870474782201285639787877063505540445375439113484118588107175848606233061688918130416575608893530119534652004117477361536121064006375991363519086859250371537121768430847781448471212739356583045738503431715974771524882538424183287320862616737188095429545658437180915172842406305805896346886836393831852494329622311981277917137310850843436475768657614773493119898591613737504643636807202747577724559823285564155592990665286671531741199908378839145156168419872130366414565313114946991077964022194896390429730216085740510213602224998764768723288312781114847863631968285436863111254428579820915224243230709738714111716780928553745185355866373453337820805332159505078480936555475643694022545531117318423658489762199929208329539681690145729689054524918555792066736172351055985435313162911520772057801654205700316481371725438647487998645594971833630063648276092870631208005397777214877351639953936804195115857332733807615527469169934996697154047962567265373494098109522499922647066369182988591257852267561855459415263412740182832212528551892952049923647748832284989412358887753062339911346744127174774540641903701702960620401624215445249766243261095411655109773110040775452008323908617087978917279375244252394702223699530383032310044879031512344252587391380073815419508099532989806473612925872826200675889864704385018472137887181883013022738824428870542188515237723187473340666976911756916557929092597586252376501525618123858032473006417512216830143284425817114472770316237704296588989875142152727004702579411727953003937067583476452813050663000630670867637408466962828883558880358008902325149768444680068017376068225127821675298288296809597369885224368001148473775437644930443058644222223400210857150149025646807275302617726795109432718374280250209503110423754324283886561790241890772558591663305208158475581645310328881594133261033873416116603854574045846223869479341263854099130301556897575323434532789126405177199896352737202464957877981624666184010278663613878041170989089024434907043643765805498969635198687599907821547304586304912082572488986757987752981554963144936612205960257767432684089789989537005404230141995982329991484002950389570721779287520624234695535715816228074779982234627970603534681838586505871738862623365311045722342966694471076223467667849785706558572869703857439247683635870238627523591278578637840281651108754020837712545972477785317130155642264025408893619550821905697283854407746026820854223749739779829740990197548477706135815985639089779557844604761111240612369462435661995272778117651668201964199358942835256412089347775880791958308073976868569883408101924690492979031302798379701829202295260824921535242681267124322437328966781291340513962043355312622161339648052045506805465460293632185943217112339869438188912183864422883795439713596382347587826986116039558943787121707788830793654862607888788791084561973060705148469951411686201272675213340520354246293775641628923027117463895797493133102032372633766997299762899456057108477664092953653798665773199935019251864278992540648253358758181924521287797585761001017589884406887302238201305183280403462988530564364257359508679858870746837992665346450992827933030743316383100795110072711001148752401716284618764722767792595948732652154788004024318271388011227743932252872067129976182777920250589574405361211286649309569952499292170664854402666082463702332348867998258739069491603424122481454088125954292229197928291553179645787602256272576065464561478644096170513057257141278450720183581565959712304076648304669834139188579384940012111263533617312718154633131246914930848220110629224373287349407305309337896701480362828772980940645154670679193797257176073899036792515186822128239432500184321754267706304372235737200314157117530009072551904973625485799949150219064152735299398357414463868510289068550593522686550504076101985357059843327256999756418103000754402439256749845073934494965919254688867675562738921092104509546457161882020298912531378054297287127926891236451641268391393110945401591699619020785905798153193037596728214490810442678869755061971165221240116494222863552521150965472969795121094496174399781967487523444365376924914033246723263687549313749564034380225607381304619779872102334689473378452637931243644984517539897660786737280903984647970778432661668311247784433218578406088852703090208225520721163889000549006767036568604193160263492957310073222285295454381023821024244968436878075952473826324834346818470662792112203888193285242874879378559833631562038714809717939941384022416367550342992394869327649014717943439485658701936915265556242246770405741586514582395122131125455221398863193068586410933474847677318413075717959071639127067577859698152252745285621542338735830898329739758689272590850929097444535606272681417719697224746366077742309107802048106241595653573714230978700096663427900032866284995488138954014353135696756899979553823197426595083264494352934355413769668807946218445422931153404793725067771626434040444613088632174917203775528093528820915498249773388532821150570484333903614733469986099046014130539963241614101560343153370642487870529726491911699561053337846869956935767231808896271793459058078417964034410396953096318970098260992944215758817065585051900653039236895777139192066021981100993773851105222298045922765856790389890539127780847579601123736440490553759324759865718854751429640095809010333079542279738884198664205827742269054717154970473716280859036704670065358811298999346625647028325715931195269811570489213630371485362124238123158565025188533473661068676164482155299445734561309883166974460469103575471716669746823785466458307172596827502549270647867157955497336102915927354456683861854046290172720727816314445244809215014495039511593720660799024096527749250115670646715315009410781886551051571052485308591090758757908720930679429508028010026891759041768217245938162663315015372923478691848607027486026954719681763577429339622380826354262511198000888585256202125973275949163706508022190634380861803588420239404924766639046429855447504665692047975272009740979551849846273082277101087743039649256776040957916023348546646655820430569083892285637238012385595263804389560694026632616436886030140469418568680560194648553635254093087330098006921807560137848433645468761033361079399213999728355824924220082493159311748221464505885394244227648642266082970408571305060088615371895287011461247116432479579698975210735178600012563282529048642843988057437337770021099237818095976044443804780610074496156964882122462049787305270239750349081457482974193124885574232908253402493468151163492132706333262642392047311038469024641737994146060161646449358916732958383232981140083690635770767962410573402112688956664581596170674029651091974344744783540298414744628448747708266871762450382338034787752261113695927790319236264720564997332753174906069602902012358853788206063710463719170071937913664308280108924586395769017081878784279139768707697868604593599832703226584824029346968894027863853912192262120051939352200388921335479106601479406848419735015589368585119930591411246941834007410485558396254228349165006052146539340980427814630059953552117514728184034997897252734387549158601588522541116578552843876628152252834824931814781776791366936231011481014951980578784097194210998662211140035596199725786555049558938035103206170150502928849707378501165612780142529047686113562715099522556257347297096537690168445540470581833485305630664347784045945246215813023001329836166975360951316560518509160116114503744308064637518226831503092032785379586187112468787973842154134575323646843823322962871472419316161830437017290640907109458864829943203664652369359094868348220076439802324043365994320547637808437915676212882199125943930460847553108156683527901830301037165251745640484431933188983047613084981147121018874569656379601472632225215684855252992721909182339355697891036993422078371867229103284678335997441418453028965209115721603198550548924118241970499354050558528643704745801717624466067979224587358352567950430162856646472989972948005417798932368242812479137055214614781193988160147691942274292751622958264854159044339906541952492449824145514433522879765050737699664727150479941527885090620706446217787582535445103095605997221648001289575784386064173717314253845051994421885322010296793945171283478815806376931465637749769905635502187316456035801174362041374552537042166998092527522066955022245788283636595254722363433469211650043442593550178419753717182131330548416546488438319842014586085170680636042751448814430023034157293424606152475737273222439539173646483067927203261651349457718824550897560949754968788053769881265843150833125256265069278106599204730970066228962844916221166732041922517175762306221306351570049415074800302454086070272372214929136032098311359321791554177975365870494168755662138342754032197470535065393986921690600682932705388693487815116493735813002860826258176379888574880205304563201202283098237880782501154494877543396129120874760110806041895875941217035872359549254230967839682023897297624451816142257945193959309148519137761763327670291775003089472385993299018921163948256560842854229355206935505009856256220914716230548174258229891695656668547320550589800542109836583512334050727539983349497398065533037335025285961526836452550054709966661351719601647299493064157590475286836625274662304778542287721068172260844550521531402003282486680985722659300326752389340975894697743239079069605714658110196982951832027895022828698091288443055719468934521059818773718118768946380568336124165337961816390368453469230516490592233768386855665933794976720415593624198274573477735614420499353099556923036073840299623294983363896710809740839349260551128268828031088838878372477814028183950520404483638378940620222861115303782151560088178913480345576419189519356693792379362172193305676074085365453969239387039443802015708574671037778407923273527707936140926651816592313633476017339836745037686339971493952674846565973191999766940794376928563533227756737060561444060080000610261452364462380943796068181914882029241581272399587878564436335924953178576526927705222990174140979906315059601112882970320657438613120613031017858916932238438130926311280399227690236676093784054272950168613799284090069290973712504296044087646269990432000802662805061634284682195346809458691533481957451176884697504873590581581859798570710309359528532164699595439687141092631043979573854033080050620712581786311086927795876909398135767443163584840295777299748485242309087777973981228549320772223623532132953125587412340825204029746899805103722702715631482566405419548777381423719091565842951944474789985754347479206177363924312516362535710804644783031237853992781174861626533792897547404723437331957890769601901480666015948955317830812693919153275561166633940927190443355548555714012037561974385167953912701458367816247710841739840850003618356129225737296723253180273005321617914913281147525213673873017900582037048923718700819629787734288758099783947220965018456243006873371102778246689283820063587644920131364112526040540035119252985883004745944131057645977564898203779657388383580335139688393120196483553073174702975433629371912537657637546534947273397906150441481408572213582180903165537802415263836508123200526680934773719248472846619727435944184192080108388556613863209385490990540171026536400356942285207743256647230245473126678456767814324890058873851207320629453154201390595457968996523830217936179530798346798057846825384620305948361347295776933231540941474069117796719709048498415522299173271762800746706608586266649705798547011061828297275378221107549999812742480047860799699425381796542013596674771010496212285733803120010950939979248614961511478175083986233783311995854753900971784831010550259091294160790048648746915573316707714817800203646692453625984624094474844510848195500963363429425480810222513956923970575506860124561240971195594074727503988795716786310903099074764880628458706828466541918207228959198955090942870995962964168836120307876718182963113656383635546368219956040485808689496740324263994286996094440709196855809922988046515538676764248722253570566523411374547312324694237031784665362616955671802564669185225595294479669172354040084154583137563197606841253421505268783656216859883470070858092290220656175905912666680781854651933852463570621383549824194111959330052837557136345112036271880312937604098054423711609371430571233168911513236423109308918502143214241728627101463164978183798052928793545138261374778492529195784459444215078340132403334040717421641274775542816576757832647242461249431297281025894492422215551741522041539476925671428912509849275740452163855658395601243021795650285457248959504253834012132714511157734691110465730814302634169158552341471299105858956681859011967781658428350575798572262291708985245225889827531816862821338263669176619876189027466800335361917990596616473169374454040932342393252940664279577506726128095765404642214680072462143590648738903764356433782802083997559705390868730345639748729511884775592537886909112152554941461637218084273117925136774623023332047063749284306743358960936491009853326001434565583874868530561459832904335999971020991185196282189459408024803501692832574765510217571115082532951112853801951194825862249786795026216193197389231182482875537632783830324054523183121819098960081761691157094271102558775955527115140367674096083948085095095319891232846499938623752759468152276329269997160741250632203790332249641627519991007922566931808689293819470067260662784350743473316187910741010177584435598453280553560761675341924845033445178709809815863374631734501109405096983805697698374627173723735597402002155508212560203795367919106278550428817922731319111837433855376154634319723118899304843508532276071756205298766285175462405055004882045578428489306224129567313038882284293896312427049116041579442418947066478128037999004377133832723661710461432403589739669472641042371066327931591237561937789153464215535996467797664428816082014681227564372848264901348747019511703569417986308766582390396562598626608671971561604358768671541261824272172494153777874200964673068927907814125048747951822498126285028060730382929321098832914545614696463969610716051199312733383574893993765294344956498279152555288103926015527319153319295899720388101126636349488245135641049117928301935405491823944964719185408543564895949566143516837533835316323791684738275930229292615551461237766927647413719914452503746489752244950632299924170028112821365690808370615375701118629382352157854186834917947195256046664315988174196168954443232730948012631567882776934684611997694430803944988247677393830566743489399091550640232115687540445213503257031963305592240934512199675693444105139018796950121683913194678250899745964941830297461553401313112053733397981074636429483011548732521953197296316691251931056247894521488095732380375184694582642716729848116142428544058960685873823911768789138692342472055899129393259009627866881956311903135112335624453877111580015476891336526810062735375159311401123131864131083671342542433843021893727790123211846656796398901290078472422808732233348924801474534552883860651221250029960483279301013653473959484553504148638479741016808302553214505917159933672116720379486566474196532499833452691034568799965004222229102426985603668540346995034870827266852945925324436308440097688620920826345571316370375381082513737142547534780323308656015741350177488868452539123344520496744197235489054672707882918118852310129823255906405377656351391313349549175444306335858059024112038682986674334312766139432594717375910708894412938354075441497941665060187656869400153883550862009140481367444917757683943513024590957548581779529899395577132084002293018137289761619975763975962777747878079104877435646282384533342618512528821826957638807058842489977311872655235010410788442455844200297902164338778338293695457038537947210645916021397805466868413308005169450005700087585481053016990523835700497500110612811476804886314505971749023579364943105243585306628202644553335122355662904764040448877522245810133434321720527591882312452368554063701647422276247168535458309640570037689846100747937276760065235403519584004628251463507525502692166061623417198855996416373266499876297393395266389285568010655702786021244369586169772076048169924310425016996503185188129052135541512441295350856013110125134756031783947365489980079888082042198952038757318926359822527418835489802621673270474114520853658265444686431524747211433982430935842209447168305233422403442385191001825298193465203070702487088892784587557344161926691178038776051686818718159669166700592999315666868582828122485479693298210361150955853971678264269953172531316535965635693124585081551625735041582926014784513631557825696591390071548905534157996817731437444807901753654580299696389578930734873613453924396166993258918687840293168366574656093525796244743247787412044542745264098805260603612095907927598606512431765317592281693410217845363794806463682529043708814086596321663715476565311476067997204726074448590099959848141050085161075996494543195772169598744989939182053605605406890489541646299186984056316312452976715674001208908771165208538987106426199616520714669226980368337772104928942340758834652626002832624341767657390204530841952476380577638348712815720459583260339708317802810435248529850661432990964681486888165203659612664715727070404485017118790375558468585511652033124252820390194387474725243344799742648898427814414911027482116664202416612503841866379790957427341992376973439584735080538598311747138833771830042028034289391501969454072702031830703497615717856157015230657769304742268015941751659025791016352492845751704234463447470052899027264275724515834405273586315750395605048857524642546699650229767614280556603200812256308681313047808087689677146686548254842294455055805738205478173952830605713161010456877887385831003122544377484450996546374197232062667715717089875870148556815386868869794839546388324815140608860673932273146103239869631620164190909014144526092430162143760576972763699918090198288229839982541885367210522087804591180832265660035332409238182796751406072436459059181306178992021836558398697326744396264549968270878562795349625486136370214696535870113044602271329304684091500420547074409671032117690558152364632586464097076832899792591958370534559608011671372206554280253623244816244548874239643887781611350734788385141591846162417661860883241419120234500361674811799190466765757511274219128269063317449423282657625630176134616661039378668550898376511544905683749614283899199041848762700893522143255668016591407669316312406310032039836163364258446250474690086444078214316068940198817592578435619390947540676821661616755695468074682286962377904879094037249302487370611640771103505167439954273869408071880247949902306253043083310850399163462987358320530817778318047554294921128325052965104475510558917936968310720587459167658639668268429758847391065830208471552151103227120273214069991821965944969759885998604394904217296096992573107797559513753194167671415890351764153881066104753942053536940927804153904029942187060760248150494308137885333241886727385307795081201020742104597633717166391882450322409484236895477888813072508283141973762328133648553060571135756791340848763219095321748419044110122568352084466878430605233993677528454420459128713296483160976425567508844241333711531111261524174788456519254629266369015803200691774398212019161326616469382570189294237710059034103413566063661406628809897296474285410629359838931022902101722336340836412169498801637943227422946369367832644717127724411761630676166940999859271836138915312022229703794031572613345647745391983300550899592852605690862323427136202559720372110518454249684718377829992839345998510184221176525830951984879329770311316305884021085225129570848983678063204594932225818165294609487601076073586381166874065346880335639799019686792415897664785548160793076982176126382089763500794480818311835222709682445256594159299610857805985791312674796201286685496656891653826302850273875869396312084707638830377036570581046245019112574918588938572314190787513031027151841046487654805632854607179661622826592301553710936806322586140437728782277050362203092938068009184169180776971878947133617291146479784058722095926247989340471338740428246868584509177888504225940278269316917704723770474067566374291931603781075302348250581497803175507909578673153536247681201370173582837208822254681189283106664598648131537402739737764872578062989449060578841084136573552720994970091911077130698393629599776432678242019893378857839073081305105472324309600142288219883165942710114470466986404539396051156180716969345771171205902741493921739089503798348208536293068359273063154176380344552189617609891727709878903830358806365577359368953041987186691450795949558025779574136976480003902925334323558949278816754696421376019379426808268245216421110578805684412581045201632512633267495518523116210168481378427679461315922272103359425575590012162393556391675354609465277973318930215566741076831829845446182567223825518697171470542051324943564447532823735953715728278982799652289234297863167695792884972915781793490826988785637885077501182351562484689069200127837481833349668678060864219850114967273393406434921329494366982487806742156645879940201275580010351118855663420438575739345947865527735074068071330638899741676936174747710876168439429848460323362476767694471879530275320231243538441491590158084603801824033568672578989353910723441621607829233115043952511671583622328544431071180984991501221231495231085839141287766069157697246532769608990356403871833887363104517909861248934766873643537470290827857354794912218589301633125834355873059507388268825844970968695901214604937016362936112121700605386830479836358767097586502291168244409198448170349029322764826332181438751980777630058702699814630135925011380629191232248068654804406995060315761165412908129298563191538926078051495548947015046421281320941379649970741321660073483272586083800741432908127319774915064871419129648552546424349522850754440867470542875737562327023497121310519265322429161862613474129459870774474496320170481843325588213805704300554652161821982336041915112596379881090247302326781630239733884317496167912553622164728801108571191972797960625608253935560481409417033966303092338104944636117715418611329505467160421239555050118971087541276740219291431621673336238296704499878329675265859849776660741978999677622855123175040778188732837825478662188947926649673017250173920033280176152791693799034310708242139894872890472663834855886823295190902343925968210950549106236816617647767677027717843509892892127132302113125895765625122704541608845008295743222845772393820396351256259962593246774384773314613518477486428291229249010688530608144879354504498467284770112947818302240673218016142329636515877169222042097569940515069479005187862981611709977368176409245733279495581954853741693395593302912016789131119571680643195188406864048597878678972207150090626820575606058596744177677517947099560588088003442021026386141305341408672975136588014519418095939850313897467031956197056871688142239089452121147137306555640710956793010030116669235379206700625911344889467487799583601223535927969028454266720294491265296209040381110376005668284921902446713891656949338568428835666151944153114685994515614168472957738219188214290949192721448389112726318822975508627611766816162171230934000973614068759282780848902604122155854117090890105581774901195070622597502857193409268164376392654140917618700180629961267881618244945849182462405971058133732051323864923832079018287282466161867793776191296081248477949949779792656624047086589212755036716579224341366265907707288148552757375542100259173366083308391392975328105303720255373485272995131116566428433433888744915713553022719982527728620931617775147769347466233626490152107757109214988501314575424431927586135605892508119934746804270394162609943574762797997402257998909122978513593779434420671819858469278533313568213734634398452900574708884348664498441096520918399072794128243937845076924938733770000565905279737718712092130326240031986391481841158565362478208901992812270470987807401957889774201987880018146298253508316149908395335143304000164219714744532080403463716017526320887580732363096143401914780410413419425501893916200040147401709145676882915650348271073318558295013385437644245033517366777084287797957782065140258768158619540664411337209036350659582227207508257007397808294033132776817844729419712446715631048229934176695691658108313466772363965663166840103695758149261507391956596973136137114078824078713341763662177353553079117328204158810615784206789413255909581171630466284550273063524931791615789456358598226436677509426490101569719597406482236068276844873048450446052688685861247260323213525187366462022617273243296538655421922677611645974705283580866986495014420979390987800841409307448092322877208895386711323659352366161025015556908472045782153023551141905033710835965163870298224483312399694946446189556111455930164965283757193057628350707077367890599238722081033868802583142496367520663866611781681892906800695051358579102329875619389409124539392847312244905298743345755933743876760859728753913688971129778022690391600530135501955020292402093739900278767300520695249414701682176905313579806961148516072309125023454506680862613998541614833211079645282446923063558719690242328188946567875211598112771137179485262493121220038458008933168433680762034836638577650084936933120151786089126115479053616324446852790738433757915451496162691978626823986672802159082438275163811580206194488112113554356894765833478567130337895318842309797351213647054532064769983297298323823295494250102844186565030557430534141346782987294410511035198653240346147096026988404095535168940239894061124210006581155615849242052448481678808390415158646602335988751754403258428447775314305334036431736302592860434235218644186237627621735034075329463636953692165694763541199524545817825915921202989717349549012303842815318097999043376826017714428426144945942667593961907934481443012910741221381062839546537106782749058283546645939736356676566203419544175104293139627849603954056425733124269261102339183058379715474991103528867188961649909443059347907081260706355315836778823129771116449901274707973024007004345953255716734844910723186152504910638079624262037644489291415311728997777755472679468398568949258629488144495593497290946974525317031818024712675513851040616547238613856155862286484589062706954084770171150430710646614525291317090450215784432422142567677174399861253313724349927291259351674209068760805838396834331108733846846256535458443040348388636402545450490707756869565173908116243371674848090440597036181238597943244746667782234487012385972141458666666288807239727616051399198605045191102733631003342179380577549639706386385186282777749756965013038703865912426296325578012122896876448666270289815784438689033963344475620933279229029308823983484067796589909774008547725799793124532017395695185823758244673144267296836892219530483189686298611887654862527871892498834877482227266997640361840113557772180634073722522573755566080932702238112133454445989488292340311547144597602121761514677930449850121101386899286072188141912328063940926409936112768320255726579160730596007518309213135046367994391296050639716486686433742258720100487948170879824240010955273763205560917764150967244823675842499700293686630139918480634681100207335176551028612921137176951601768136685831914234312271169752149598978244220420768888989428164931527047008986530093532704074920441738910913788857772305450943425411201840310880772831602565782765633546162764045203884961237285163123415537270683223131869366433363923223753713926395820470572994523415493076592082767957432158586236392668637276929852801078145699747294500360769459650369920541384115625597629311974647603361879034449401998601927735994104006279810896269624282740823266598818353643301924154739532643320518513808821641481718765998342614857831350186299402999833977055541599614524908515066734929349492098163548105971512434725625668699677452240439556269300658191595561582078823068948870524232022313292442878750243612352589855606336830366176854942844632496026770744891182023552045546560411806489320908417409195490644554473946160201782057003226052012670450126670167868697593040582807052674720156424541627601523742478645878775809693331875352283269658482080228392376810559925415840517167101278126246606783288919891823841576898975636308970538787224448014964846337354896392596214411571929435939227312585496984476217789961976926307137511722211765689499316740073591289934524891764909488165493031336924541679334664243908658819689757539065669943308652358610729172469719304954057499406660410708130053954628885616245433618330800573427645359460680885993120034512553922619035771058883899869710159314768139366339318936469505236778913766369788563704065734565367213817275399699288852832893543952408850870100608357144928399257817153886964975158300431712837310457466078372207499779251533189924646394715064225281290535782696192608366078850462695790377439800990034337123607191907999501108401385969250339152745868182329364800671723122624566665124275587038803115745615782572565003469359532691172687885587839260159639324779408507653132748286208686522637241249966767525767212034392675488349407056308766162388732466461966305301934856638298928886207452302818181522040576093746324760357879413903129818333892350653340449273474108760566715784902974234624254299436021148928952126122609071017524840478684284575625116798012251212609346254772277253549862660899981960181902399430476327380795175463820391492970087869159090096321399095316392643203853697142094399670892122219492075117675035075524396033010940004696527053371662949628083613520662281332874712323948665143650781070524619392764892726046832068574950975266411553790013920751517711502649679365040599027991046799229801521792999428119472003793453848932239417269672704405351175527398680136401066112699822910103092632291210569927842061249708982580178044856360046735816301751620458748809610717509050645877027667070296165567553877571284873381311524793242125502427727079194451033950591760545019487963108510759008799705984079398885968416727789102517297263130535301597468655669025768888321207999077381919598020615118956237252477692641910056699976978239013198175849986131599219011226801025918494276473901601454643396954262994947451111338766912241844323257624846624646315712872799538203958072542983150980894560073974965208728265880385593999497396667124854992983559595303884424733518474816681620678434303661891934426268647751597615890667732215942664229936188661529030015956604829256150529621927186539270454811578610330543829364079133007454182512082013233468189862153621992800517504538271279379101239781896255017547308859081565190914020233460956828948596195275320904275874779305424033374366383799106882493246217780911863483101681782968121887406983642317788055329794000258004232297465570810245648654021295200902426835968324014276125350664431939722594203603605663159339442755855216337909603502552962023456000872340219537987926547717162945368228620068817694272171576595889835477546745964896015890462281394589622251691404877915447288718936280958829935745741681675263205293109018164888052687085668206741903440786007122651503338169961060406047860466824986398304318683656929750154601169731094144025076034311442938366849948338778452191455696872897074522128361730221582054884609557176263092818196450077772622295599449211631137063430167206240589655525000750410623001418769337997010062379791299008622967792964344057938146848189238773681128101882830640571705995750031331295328149949425301098026095310674048082982936467672881764156386170024290357500511526506789958206340683950597464875930712440231206594391637490714239821593676407321206333555821288528842347665776092728699644739747082439213216063465982126690449715207667952967295550976962615920938033291902146464236737128293150121861402712077739736747116887203854923424822423808316791137748285122472004369414671733772912476113870086132869856645891882757577058556853975966074154795886923960717976546212742465193584508760330118856828792142973868709857609712587283037795634295225465092525643554645625985120551734025542535680991042749383077020756428928111337724343020536627795106561272646261214404909359064196032728177139150148635017625812857725145238423962127850822919142122576685322718006687779558554588542942133519841565285772447570147931309381293890002887693428590659963503510174966649315671581029795319988493620852811316824112554784589142054537836264572766637368917994287937813977737256498660903361337873974920483901577024556997288281321343844671244313930295672646176486548875064646731488517747778536744489291393267910406045338773504380089207308707212079502207598075164576136405120952083959340235290168121235333890933170866425758733840841246722541308745215142367105402067328607688652880586878052922692333353834601247983929153679603179506416629301780574654489469612183450146517896161773999972228039123130032523365146874449444236872926506246217230010215535190870898781400501487336864359352786433812927438229760008684760128800500068693901402407911546771423506012501356254561103644550132394209783298411183897363591235912057315743699115706592122075371277232951800831831730411045840652604690755975263334740576789302183371733062443337526291163560641529685757214616263678703114557707073855245201844166598716050941495868571803341926125829202701559626226465582187457193211305185098996866795022726788680908093708023266021800392652973770230598933263488706842339308665821293512012739926071918634840651722869989487096004878513702024991363122092319342756406947589086047649770396614543970770883974740275515178087133566761149169543634414985732815102308716445179669207837379889735649902672896965376722175172434274042427204527028503315975281944841323210652367749533949758823767542696440745143096661861431866247543967118145431545855000494770563406652578949178262782983447825332477339291506434523996791121952563859852453144862045016224825819753227160791866248832618111871383885885264149552178843881391171676742922250459683212075112292699558198096250759032202332925165574749302403906058034935317261405825088801241827110521881520106670143044012322215327079634820284898750672369015808972985639476664694425866055516205303597298879312596262778489863597889370124008370656074357744122596096231264316151647067345483760841967622187007514802494573564271305281915271244391934066757219457322277133448688453190374988851866949509413574085658183500359310674592802976002748550067908787992475364674173160705206071542753437585890568304798592922634598898403334762509344070875521631793017660844224574872637843526376955393105048321369758621190732844793757082608312378935246218956298076930246093500739786112552065053706162832076941616928016943593868704462786765284658729457766634673389659392997442180606994375921904705173957247936052908695783084016938352890570760340420613568589722412531946882529880709646527452311246592874165528404708624374702396613356606361808470858439998266081198876012755266316885632112994574966248735880306536467256634268015758294260875269258776038002153008963624936603572673426604170716299703784129552908467159899650437415237545280001719366343043599821802507289127382848575732551526596088945440858690960142530770104180481062046612713079792421499482357694188943818764222357828275806746052289086001977500657311417343926423400455811516735461874377160959322568126749629010869133804573962099296208413534556863239565581113775676261035841992068702029879050970882417439666816485590077605209581952574035447515695299131079464217035808933810168379558062401060627697054188116911404006494902675410696897679332050481125653864159719817063413048903830854030370070579972163134601571188400504220403187320311361079808081284398019959685430119617394963125374749697236538413539213671345076636745121685721485702299390381620954268530102981115007059910536653026691713834628028634193148194584360082370464589103221115390364234702446737672990397278248859268655487856653074944886749450887710751061900105435415684763441693258261827355561193444075664524849066993378841849113462337505792744249250692310389665616834067561260788190892790064152935456854125726168274641000169298539661777462185222743657802171052985231574832891884757228377352830326236222776022570522852421812745506405252946384103992534067887258376673342824206576854265942169868725516668098549259231579696481455121168919099992146452654660838468575384433313208634442308337202103784583720807631660452946872537911105810318289582390780384427293819491048230798404002730943291113563912083827131053806480641672342265986785004684375564845982147759837027932842191908709903122300097617922724985254446538383027123322408888488791738386595844274574291242587900887818144728516356976252721321719236385253259599194052110544786597321150453250800932856835291112904833841249844856152284596726023500441359389858640542064142903852121003367271061460683685229300268997127288223547779066443818834150146852657768565469857811275458610688704238058412472162663078137796573811868459703910174268966389077373363530717818500149424741116739371786922155477831973085917116709833636486607839685540232047609796756686483231260004257546730017742797481346744855806908814481477675066808543854905711177362141045931057605220626567384799700155334425655748298799033294868793569395216021510994680509540264799243186635075667232923833650130473662817583937878332168637156598523919770004437774652338998416490346561865301776219769908734650542118227878756963613746197023870588609570434807277964969114654017581257022760047832759083226648031387907640158689311869144993624361790050406770264954111313128128422520955703615479989804511220391672377866714944958658236804409797644816900242237782713644103194250652318070289224640323417970348523963913650279471440815100550905365894444000694427100541870217955786890686421840925707808871190917013186598802692383200910323385572848600699495425229158778122726432918997463645264815537093933626303794462717406293159276471369735071548392997831718071200229467331482389407097831404727496104124945825685119524778273903112357936583935219060692904797764758448633286275631667504940606045177977698227221734149373866447308104040307214489871790122017150242288138907160049447590769904552474177988184384328035510678203192052913324727678377560182137545229354783288065222801352138904579349683342896570173128485354163802712727876191940114284891205496189307485061990676322233168680847995985263864213356078332573087723421030488314000291771285441052309982929439965362264367174670425552207033666661500053681361347924530667133318202695965727624864970327828378625775240008889711558397118500362686920235933158065997162206283588365553072079032155649250594405607407652462968612657453489030697022686729993717170798692997544011830452765131010989327593266337682761380186924165686476853180388663577693137303105925835723247443458780497668065315739115436040770857863082871323769783097306641180983927458916737079010114941509117104908220263566153173911969227910042682706830765081330068213423946499930347250833420662055622022580553420629772835138651053201207559469553772451708497020476643375218140587780749446187748271167358869994343767392168664763199055572585637540523658597651673223495894620348130627811498441830367949838520354270247752294552446927188298116901356799275724217317273887121403510891639371334938586185055546125115264205455964361858425584863872651235190489183857833952990869935446543686537442879694204990092443227920418558751152255178086557373231147330211769387865356885491317331241218700803591789068399811980932468951933223883993260801669772967516506641327813947277606987834499581879435229699835162819776584327951092917253639524778630412850896010334984010433745950394222665963823294607472877883619291879107099435697979588540640962713783627788803738693494488374645786370672467618559170876695467546159437464714382492118315482836103444853790355549266798539390096523810810969446363564318866673774872729240757310505824797832540512035597252498356978633319427468198184686211538610095485334226381050913869832168197315652107895878865839070012504447082432178198501132792581025466865392848125242965015213946454902960102438861823852070892142991239310805997667743171785806954200987148680720043612581486118027706799681502284680155750995390068688876258806473378849422629764995908962919226217082355899397855827806360343449523514683102035891012676111845832049098756654662460728572513844222029194509844725086860762997346242593686032685659086242753315453562274948785746083368986083373918118022469261513872670323098507690501623445729024916182479746799023758075416980781857502673182135641235077212488213108450422159820870016058457005819579248500009336989400382057802144302096697884743367346584699414681867621513722114890484833277349168117404872050506265983609836723909298727933333924776076831795589392024698196082984488179538032050878511823535881656486315371621489758318112446291075415168266573795215782010347349932374459673083988233342897632558534386343324354160113769703731026683759553705489558723926908222905221690340531670469681543961424575452567870249693295974251691516152829698062014501110268576889709140865774235161676574050741793428361210816504447793813634741293147102304767860057410767241776016027996870444045199528846644423006858306964685510569504488515052316537319829614604582655133280096075104699350347995531097846024249135275978292321154232859088994418579201566645368271704552864853145008450357281477260597133992077475029257571800903787695542010333414324992534077552988163535534621015252453237260635246114988330172898046863530050382820633578022880012939417075348666544489013421009486103796627437295426330340481695864018384354338820463976007162180872579597910819634926637717339382920018793998718270617857142618339964618166555456280281571854028136532630450939221223232956456166030397946595151469249952990772104355376190427887424886558351895334762309974004798116570738604795167737903872648801920580841508423371754640009764900907139717165225971655941808363450779644726097547141011876650874280441452747871348175740964035041101363953253776749160797122114362579421021106133665577451573368395889387279195192087715160553735535705086067338553910311149795584208750096784927521230447039524585022774958803658373571165409950711396904693666262899687449166872734783556342463375060825458908506687489667380272103306081592964451104020575061650863626752559752634932425547826596025688004415262714368868261731576492112947758929262220798958536628796923625174845133965315129123462014345800510902285331147414117132570487541097000073577262021241557684241161540259970336308835203601104244860413278865185093024581022544788985705956345966357749323553346713656305697993432823553716907310564662048045016240867151099786980736017651264401963899494791738190835410536254824224430923772227782772597221773041018194456374537996333162422982637878624915699782113267599347187808567986354033852197269389507953350800503195427888428565473252038943957511045805745489543337105950901257479261665741842844686771840336487248529247821825276859983706656127635607830532072897510678925467032257595768887398044454485801696165207916631912407110070622658398090972306550821364373406544761197072071497659443758791624577414984663959553468300190865222111218357973610868631275880990360017621295457729736453953858007222835310697168283704982693745574376599182253089170352980867952603411639430870585397858481701835146192640850233951066909997794356116625335787866584615353951752875401712596821000865649015100777021563628163151234411055350813368375476374696790570898254603478510136117477814421049782007170116113113584883604492035203767594109356212996016843496529454645574210698071258656684002660119151980649016013548862027105239139113353302488719333912299266991109143674270112505981230884901657370000596261954327147446620965125303336431972114235753931312456296949724008309313994073607575421094790467180764663765600364806189121428823928181394871332902882696078174111756506363235684187806375011852736563930322645391755485229145208642938283754303848420330776222136151987618799671744229658586183141755722604630670253878635943230368340438293233255944122042223212545320031775453876544250497260089389759042188785468948029206637422161611701919461836216909933836051978712679380677722508712206764330075371476195958606964668817808015364959774390105480010558399468038064516321906088632272190189449784702171034202024535018683252054452886653360014639443927206674468725948416194720775417877402890898112299646529695256922096149177495442686107800865546565571166763862033402279862843669007231650361288226135019040515532188397109666927374837679829175413905457619096607624017557970280455969925580588766878971563317133379227965454774693161791393256880978279140901192139975260042594254763582969738967456974650225089305789597336009533274914880802357310042123380419670152119156559399759539313782608637911253103411647112582920758847279395503681835954609571935919717588432485826316746586527703088940886147516744543323542608284366391119482530837058237495268701339940759203205926402746237031891238432273012381442230191290048492031413805802226663889195612205364538433738301444556708103203952859292780603914107366054385800618371748589914438124572160845320096265143407190219497580737458924875754791194325231167866526814454320099306180480347520303569710872526762168996622969990942553439622699909483841542004084377549228278962595249964332261070656657012086278033101511153375537118875650562564515579929592334684197461120044561815024965137434036914676000776214637705313821540233391446186826596083100779714488392692777333891727951108040690291289028892341916893571901358570385419964503368414353688251797902937042206847220021542985733263358765914427058018585512479692593278987181439479157689774213180121451961930649746767480349451828510403805038678858966920633849085384328763763105352568711985909843250445917730419835759167526384777372292873025087633648910370835019954392170272849420324602959378797722980136422004204864869079340133473791334584553228644566003190086761386288376793636629319194135665555894798534542401356226293941309899123219297804581535607860327269201121212009797237123564176768309189840677204274021427322233831237651296135262974215039737308361486453684269148443983951070766477477791080600287849542323020852119754677800139903109180395555458278382907913703569334719111530023321437714839316428656983707709385245870149083729940966242387519018335831365401731355866211952310814840849682301680651297312958435013312878588109127418499852976595006179329114316457953091861912062636956069971780979037322762137799440969204354783876367603874929404846070427474291351087677701223215280279889882713856741135625435688167237736934232862375941151931533145226197890495464303437264676704933238792858067123918918575664732888065046101998452064374607044701647921386993000566155625916373617779985515770065743171103273822161479532428799766113472055187604591924244497677358989003855136846241380961210720013396103193589410616960797596416010354377168929220511595305188372496396330894828486169421932343484184665486396177936624847826580971168465695010229536831372934364117364683586414447898606149848989282748446162778880868050707999353987665503805716914744755603323397306710810622995935132915353423564174414430420474184927862723528157802325704359623842563745217744216695820216078463825623734539409078079517656306615382991055044153981744527799341307280378540484403961332645434816330284017443134885422065006961748228415056557654779392294503311094897125884234536980718734494838932277609941530131760026719609288070783222103914669352906286199478860074367549827257086999299072891467802950883380687876216498714967228278511027250630779322704317543370719325748013949982766838296839868060917499470220176418136107977823320564758855938421053840273684429524038228647193084292428219503827270940222557957572099656510418450282463579007955167086368266029382902200385662547013764178883780677674546874563480309722150126962704168515277924672729163028771066818698720836304078790928449478901578866059782312241600787830030029593482930052232215882338747656102597003539062656110834830295280676327206382943762272406997481867846896710349228123270341328726822152180387174726931572478818726790795613909456643720501634450715144103644372520204116571021486976187338417482544114865660088550635672901616662173536906672876548475915525193449719345021911309875071470079218297037678931739283739742162043512876948746697021297564465449870141792615741700919492059195906756019313121432405076681976548202968738731145250099925386606976724880290556163996640893794205641532298530044269418196563931181686436808871462077529604209298042196273879349369161384996891633172568445697158039557934145993529996452135361870858773212408622729090037800220979820643905332013218170674867971252745899566865480433588259602540538481558599221563202703889353384963037562578212027306266233502148605803236276869183696736252733440047313577556120415336161399261074798206829190362449899948188866832844353962153894736898540554455978795719412626050777307410561824850176581801276194040290501159291112391412434053720644097394007880361184123442016247509993026344033528721324288903320859457274448520715261701370695073155023337145763392267476649907140138282324419884615400310897428513869314651242338563766170862868000149367767456432314440452560599777845637778108624599990570799959166705336115233120259474977477858416371310521340171955087856411415826043819506304587398474400286695057151438356203582349272694719554668440429926371841860130447981151549673765221954648544074712779523778251488326643056082889126154735847396292274810498170525159336332369897180065621631844542778867783055222517718331922847164779978968432846117065834628209323280966381855257766266338735210726854281239118618935470222387669408639622148879820105792202973212410740301133736049832765898522914377185925164000135765790867015602693833775835731581462615646574900977472168673722840148786303571853036811892541838812504995051320885892670740365747565424591800121590416482330067937617462867602946967064454652783232477160147679789632442415115750972045403340342016856070379102288631825284886518719585135016689002148111556758632242055919898702133189761421104816916718609349321913609619530235149273511671204028838776566309930634974054924925384499533369793010289263031642002563251516427042857234050680418035585933479794258605473832453589640157276732479660558423447179693223263117173913756472761318205539851748643609399170834707931434898027759266300989141667054048913104972302340990960091295372136325394853052865032004700820190177885469179201676574123052002437688823623203362806284734687629629764152281340430619808125154950239326190010052032490987522791126850697478612004162681741767492995658883737702260023982106555747221457249746359547173558113801214222120679518950636988615184095533915784876245252755544350747299040749790089783309217223423828114513106483943462954785916755648787638712138690326256043155919036700748392510628386205934247955520206598178798579067726195113384934875062216257388786244299252560483093574545863514640166028490413696060085502314248794118913073664558917623819802638760157593312891629836120018911158890027457003245478444712017384031418492038392612083029036198602958809910550219466286433435053808846903973557440748691493957192190607145375671746860647620187334308145345213049505376950582958619244880176521081979293578020232483206683881965599686506831162650208791117576849629287474560754073714654317904771707739603514097199448271915905939993555270577354040385688614697443282468052620112779737176289359445802131746367259777658396521798067200070066368407461587451377393708105299599762148350356559237454999953404527494086112638636405639063450235822744946895811801500510823372982015040832788464254979196609969877684156828609494223910436146553665639097743453921780229890202375529784698698701576580419173707298549130005897003601514134914110036884467410711089272988068850869270467139293139341022459250064926242279172115666751497134228578672331598963258667971237368527625744137304520357337956888563592541752444749680079827342178692159093273469806074735678983781491917646218891594505397036912372640549921129572681898004880959335017359205048156803656365944668625534812872493148346160851936041850701732431911358802830076035046763371062239547427792911673096589607451093343729941081588380857677163914337653879313407751670104562625615216387311277038873434029521242914439951068803251797155829726773585734264511114114732662994336293690593130484565078925740627036124916731990595923905849709541769997764994844613595814601245200455543225971757742103769368902167028682844061615811170225736535813766359575089062743778318588166106974167251384931886341098399006001512396749273907242495092735226366986904446445577070606116662557332442429787057087867694852579522633755639659449797292347985921955659003637409744101291133466780334614572042391923351172685126191124236919814234536849463637262060022240174268185701936948888866035591977285731998468621782629493322872318816052808934521847314972412786215771815261666506646378697472217930950658148441258357294350477153055359459197592503817390978181322533337119430508910233216626007005369416734670594746267731659580191862129937897039793375002540421258908525234124334583990762887426787709748714801588921800000011924404474055948405546562561133813941480716156813836221186436640554695750541347252391167263730693852540617976315309969844102632245866382246887290011842361610368605619190116829346861969714981430870184502701495183748011375057870895510658363632415592528832783235177842784742835630682115518823549883415738662078456914233247423558975817812561690989244333661305624094644381003035199030276530525659096754587423147657309834823942818845049456127588318739612534607252884107984265113671264611299889182923526226267479908543914366477210356792564785099538006987827422874352322200271328651676671167822282949842663531080577725954878382183524196295641652141830810334317234575696882433240566274951713088497970968738381600735979321572298946357127744757826613516544501016734004861380030768038661184446966279767965521194074343095869559765419990337647961625305345407310481425394876732471031793469689711475407379501433943269966619982806047995951375378424122335767983662730283465261417633100194348784508364179715529241549057420852787935103095105050817789177041873177942342245175372306221491196512001372145659380132275475002560109252584961322897169129423156419945881471317523939691688631107424209407156148822223991516800809719067885179032566590995653284591153146219908901218668824164240330210303743775550503497844897221494455310422855484185500959731844558546036149665773166707679784816782072319289209678336216850549880588886881649162202525015878121973422773565630769057586160923104519479689621797432821540070342064228698605625288487826044907054272555631365910606800104266956390807278316219245469468750274042810212271634310298482807324446376525173715578519604898119714299267968932729963845477475024502788050684186166413336876421051864047142876976326634511497339411081863281890644065083731515119471372876559540436239482329605045117729668152943782096371189587821555995754896911974581473761991360381640789312988656247966481176065858859522546908819226426987485062420848315634075839840439896088286135918921723389793304780009475685444460937355813400170100705223808661703749706757069383011302072872683409726359886220877872024287463129769127620734160328005819014515864422087901867825203326468965991960630895852901633706531055896213341525914758117128810128993077579918706508104101886708910678464919345352558515603627535395236198869748809619026260573614907374580345870027424928068259184751909746520527882354849784465671165097915537819278940754101508752812620824850622529050777046266819471703304410394325712622905305019936500609754731155017776904678659190417092755025019739131516413326994280376679360357053991071349337013865769357837100124151266749361115846908673322782195105060201920818579982029477449179476427680527258035359375243866792997179270197083652897584437344600155152273587236255779874998728180073197705384324917455992659950919817948838523664549500346955544020241618442262581032469925588802493206312985079795831871366739253153256551847639375207803171886631248049009879535002956224878948449492347140308226563489432783673975314196655407998329984712243021916174004932247437593789053416235969306287883807359375429921704148904157415621617836097134199475869669865306596763034031945698215059644734378161335359275198709490157957606682111071691243273999457900701946007828190735801432689537257397573026022204774133618425909210321900138060191762186021936276952177698070783870120675238789520929672126566850677081850808550416796849853894554797947824847795207375966476892380474579728224143637719838287106833772863045822821852772811995234485263568158869186865636738068515961203338354906255670819156207500765066861563497430114427852190917394551483086347053634573895287987970302562844175014451659583750797519246607974111913470186396274206205941953780939662720613248611690982757051942188748293558841844925336559753965818714055475524273897454099074042070326397976429351200408289960550575816205463615630606792831498121400541670778664058218194723615150550167000718781050450925300633814703453894891683958381684285723532534681769206366168204020887646465243745890225282073615504368860680356137080959060548079386891016828055462345778661778306579041751943677141337677624109362559243413146781449637260016244301014571153866451384713826139562991886567877358267218789340779304693283921214960675230983318620618819322294174017084164367496114378587443566388702069832283460324897239475161467161343191840686276674937280346974088761574430256285236779688951158118628534849644245450584285514984184079652267824108776546762367540605573211482664043331458539019374803075352864188358105470479953539726586247732345849713349428119978564504857884860814567703496720660203987128366622447022446946631949762156358969962959357601110009148833879260876379967349126559874058763266201235933483877475546267131961401825285957465928703687826237791800836168726864576814360832378176378760926805142429381956735024915099181168054594414203815829887384690135815265605653281422558208251786713521799882804175167443870855676978345786640233048752803262505736257646517613602556481782052854896916749473503252115029224759279880584586788830770860106540859217041441943696910558321392603253887090868028764890135644093718119077608770177127670048387910935557183722213943662900745357742854004493775947689402484692693990992018556765442247445610415334419711271865502712073965108956780601654541738499818153018101127318999423919321422372098061206440945192877899842650825636431456409019036966073891921031776297167941886382404255978966969021562897711909362321782635067971571601268742753427729268936329277460372442102776044140038842347184857715292960594307091723631401981981856250357678998305266050602453862756122821918365574283263163944144102330089407004788310050029543120547279557586169159979882243595858860198756931837931740018016018887431978869867074029718244704065783899408564308220093633195077930968730328751334114086547280635447843254953807955244859508611247709991190874489648305488230905862698300207752600952017646325000030720439792028707993990917500115010887770020840442218479171109292770219920400098995762444057370212356399540700626931078786140225387677846085236589847162851040136061725337236415420756664184821925215601765598816122146903925882489473774581100139065231552766803892839663850380583791132446207995055732808879924192817262374806194717671115528818567781116064151523443190119904472030120101367069284172353865105754990317041535980973503851355058823521579445404473206130448684036715998082542831722879361284050420649342733117495066678397193703530652385472960030520332641029998112604986106112464485484682490390597510701290061467255390066894657872573617787018234621685140198367133771592484425784476053319951961416063756720152918137653044946303275953377666655276304205644014858727298675470493931160892449939992354172806715193034527315978527970621999067807838107758546072884816633729894582853831312200249038272107061703436980655421409894689603573423815515449176457712490427929217596410839735678558800362164117914768945279107401727266635901825730805950283174130244684088301022003337166886875282745833560496795910209224088653386892734860790458959570132507373586545638132533870458170033924823325294878741570193211634218641788882745573346884528261862822544465299978388892283048217459761730658966364084159852637892085893122858245737750434726754014734702506626723568634589027283056299083297177569079018009702111098526211721582544104281937664088088993665700426549487285988171037669089677572260827897346951977813903350486992475720652511062449907771673740704131999212770528548133878584745146087706035887106940136470730325636596322144179392568607683039103384033466213830962478827253971871770429417266325664525014515627399911856162698216794263299810123641319400940759583362645585401740889926231180790367221967597545390221583301987463690960002009277127940368486105755849843212159284938308963351198648547877431816978787131319327442266383839892842657024979345180923882630109617309766202564478923991278433285338241742423525849920793863578759618149125107367603256460452464665827494935947408549313048801798937134149999236774416572081293369708001462798283203357734132902021191600979117520855922239786783185213188782330828844230263784715370167796504577495904079571521983095079082622349688974339358851698027935317641220792107355470908530434029514450368248560873689571180737088027690050356020251241551143524540543693353597739448794953137865429368411668179799590826824559870784358403740121596685068707502505238417555499293115994698603979143743813688383028999453752654464787126353677200405681075806207448065138187714251284726448265205862675634867357191910954856375999361107493037636483451464898574389422947629863922264490361907206760648608501079104112839402213027167836014488338948199444860034066773135226744116211763927194805135105651158314201181528885872453015168957809803466090003771559029475242056334190160127092445758569977798332561316576954818080854972411867680144602363421052669968908256712556093006063248567128456447818141761002116441474424974172498132142005626599020531737309973051451363985286408476852448648330048053332401045925194406048513909160087337582637313426832129771813215013671909665000640049177131217020701971467050260718858135641651500850888204115528824482854170276715410859552391041200187099011667947534963119183408767743594183221652628692067506907517657372236266114074541799228353730043059419534612103419840776953712002947968797520901885863068753007676390042207498270954119317757595497272645039994329440338110716601385020442655123278012035528139885199092001512185345043686812178695221391337541860533960962470550167823549334305651906063460153420360896265850729577454956324902808800186686406065345966804905429105936921856826786017863754862858621510440798088327339565892084497084396792715888067378287953671138040962441967382229662890717657851089979006096787538457334867183221685979387414971221108322703165879812349606313861548296114607757526937492311021454625201400148702363060557228953672405230029700536855824346730808173647372726832345173844912478902543904648506195775220609035701062343578696364251778277575605110568698964450644074572673043553345761957674593065020352502441349282002717416596870874097341055853782226701082256558918664704416047092026263715600230517883380271999745566224377318180581743780267050934423490317446991999123759573097532019941491337253614568364777571269762624646181000814907572572997419952844218099207566157378211148932334201264928409327392474171051084308106956565420369694183503289849710876980317174419741610198378513354057667986064508353067726759263070545687024224879134785464059892259610712704142810550575578168190494476874852476622447982355862793498212384167070590696204952361915218851616310838448692917101329109856365973991425648610867701826351086724358130263880487692470747099683029316214969173926074404335336616814171244040929464956374516241030271680922137905773797535040799222932075804776673509705575543792080189378944303861519138990620761326793157596589238850093648334590207349681061301827292619723692924862040333546432526702977324112819598100968929654284932877340445393759193426011692201339945426734713577559405315841894180902790116810484710827497933512236443476880248024897191944584394535254757144652726030425057540283033412798082496012021231774293159380400454669429121634038489486889858447729549981087509144374212621714203675429994921247330197006248862449283045743410742345854180259337317106850137292855068021326303038672312615673653375250062710925889522934917515531830532746151841283156209907277453129508520481918565946572994579581579326938006004640291308700734085678233442010562405745192735406292684866799413468121581768433676772289549349690776304135134801374861262009998203951059851436970176298253912666145991740904221848495036641482005038058486550044567002903572643617567308655715417563736333183446434526531729510931835710675007028301325408286527662980893690262315786288533813317648990545294638706081207040260571729735272374415144455098583538476315000820375247332172400252316703646019191291507238238471009602580126058829574695905500493293035218486796933802231422004184367681084833641139772053377015939210277752966277929895008268467337805139963082112358996246499742804998488277280334479311088325526368701612435615302273563740057532221931440060401383124233434349019740517739287504101006890297494317530564438118230483734565199549299930918311121387533958512385813436225181893242478917921107240564223427244352528353331494451515195031273269380572771199376208958923536207153432972980875889071933332405190805123742830157662454265953842955210013995797391089509567042290549669109529563107027472892007635465652913511253503212382460520144553882556210565554894211430506506221251375112927332363275988077014028115311880796319211168625893499270409433625271248048828532820288902596282849905894441384379043890564947298781763814235162718956289460816262253194970044902206612737734181090037019441506913450929228972262290736811326931853950104600361709772282324673661101852819743272928773493758972452962776398287930521139481260982957364598474624703652330720289623741143352506800988459126357611152381019738826112049650944517324143806130316879849131542728184670742121210830874252327374545654627674458851502916709024028138769833191894711798991354094816005398889940786401353792536440327378053563722024026071645627455374022451041841509788250954307104968112499730298428477948531588784286511663337782255296682711976607173998904584159487287540925631063245126480507027277027291229758837289804738631745919355501465499192644195267423444408796481346633099600388301937274775617353165505676840636544169705219264881928788742083491304061426674935150662337211034082483986463105216699863034810258291900350191332000681906437122500701972703992198372692791915721032749482892141945563273711383411919220332044557606064342672552841684628074597155481910764007691077189785294930148257376962740269905068010328578576853540041366913833638451237984779328822257238256831937455740890184435116945036237279426469513162908480252994048291937370047636300156808389887407106637648874365050491146518807272099148838080810680614879325257735367017767733673252078225738249875041212316764277829865762847981214692070700678024842329040123075852430326132337611610125214667224295578780009736321944859303845611211793340140777962897469281941199885537408843481226863023412265425665129358233691836096941802368409459505987395689719214755318994458236397135890238652975796594749234231437987848765537405675534696396382706731581771769722413931087554405715203036218188702010961735111768052598754722099850792601496603638394092021538144621237575538708582566931316550976595797047433694901056261304523102006685378066652197517647684714170821104162844517009886135232207178303875563339316637263515962411563015604628924491076879162494582039309326953712891512999214325719403003999664506320685067606521894307712216615721410374306364287433230688633400265405915515778200042341300190299482358978834752651763440511831176899501611611005815892928991660735960404500210033929922634739076538264616128885780419829920135631630913699839474688858356106162126852960835307889718677460911048383040911621387970286468117453173400408777552310928387139782013546379356662177772800827187897944850089258557991481278492878793149326393019246337871865105311823941572454405075715556051005836890068077901574948666693537980025884809860809556442309587668881731268367071931218899441959774572286966217283067743446052936072499397225776985799435762147615810864639161097185389628145388380745725937727329265639935183065340838444128885369948494987819437300038306899215363470104379439404546619719527729326543363632831004315954277779878038470145091630363017358523580340029202394010369935262608390243927984137956920998040931476852228793733855703426737817885418896858011498839870088261998054002575508696813693394226840176727099364769459634991028391630867735573349145932865395392932593303212023484999650171079355623317227703214440735560425779192858586631937059300106119875878399357079337758520721879079413187148634444417228892544814598933424933330883702761250831248796879106673079685079980517470162143467713481050350440581647474036804506261682338513311736451546952239888991828031116742426545562282430573332476861007860712175239993846739391822229658197420532639523122859768004918440240095879152038392746301694697594494527279040784843069467620807286128916031436145620355000442293604118689064653675373452550098423509214644921840430634701565374658108767236941223798196471323910408552087676241801581082237345006979465024383927483834379946765708999110966384678436105045096257889803182528059360924116086479942961727476681533978883803675708798128143820725655317170761439902060529727722484164199343915094611554825715529458076034680449493007517795536978214186755162733452631534387139497458303107994612532511283681037678091800871432055229128601732540292442539666820348339357795163645915073526970425187261938370331988023867048750881818607411620295305293447569894442579155547795338393852203147722473752599587472259739281604678917541272937522120424361031916522143890528524610378568672782930079699579769738643873460474620261508649824941203786860036423200465694814218700390652779840960807049711987282183391804471670509583403479918508374164210117731337407776607592364333010342226287343257946136349362097783969039612718359058727686426084976102149511381861338381048129389919761594629879537853973559382822691861997948199643279928677389272151600345285947043193621440490309428044368737000843009408587079570755409125706879480139660360131280706206922331105246202464247697546992972951133361129672433195691798793162323473082079049058386924584628139580067934809571967804753880624596001596792645035322496818850875151407791415088312097276326649273138355381862248849883967050814376055060939156345112453110286820301959299838134633069410509400497780306609589703373587262527341810210132749804832035326054462570320320816383775618488023346486105945206704352762584968729643969709964507287017457022233942640538402557331803404150034099850397910546762268531069751925749052763970409919904425181903412731212693888488672339681387905311256903789791181820629994772533069682865657330928192586978475141745343567447317778017046418407920217398460723528203847560253252272776739120630050130361264673186252565886856758187153924310643890431389141078988158210236767020681616081245836812573527830723577527667624213945635317731181721833461423930057164187698639857108452823602503704322670764706846999816511718689487080729528771424942415063645785954740949152366833475744469646862903350374400343090860812171948775001353766935214501744141571395246340998539771169721563983320138820532246813275080331133562408033749875589681200666202304663074196962866222785499430826080356182460167252197982568620102448540111967867457584240565277615233950929247905344809840186988444535640074586103746745427353308122413872252739588634808893794050873877424745177065143069698731079072211550790288232918861149412140849876442645960239592838511836946260412211865819800188759678769439477817915946507725559465495123185891899255994064529552563981874030759567829832640073774291988142518670873018061953652350890202885513123020552653365594014185249660484770575059104895073578176426180974911115838307427595180684965345319872460767392214587486768959293585696591525591175176717801428947935520929884872436144849874889041094397503021851920947304101531711712889214598423381699292359846407586747387446944444235996097035989506005142485850787314482319662972821192137703697061042604050052472039897254036820639725524593568087104930182860483609370682668174779363234816734670750712175648977507793183576747053231784464958604699939707391159497845667584497828843494321457318074138448082438025871809365223981167708790291096565489378406693825340528612633683230491447214678692425353862005938155602516851902090337663918889452979064018949864428881826704716401585263602890406720397657973344473347186199585284184099995581581220153003458712979047732907557450797219813232340687243115448981278771150773132003415605069541511217043879613296873955607897330735231026889375563497866743234146881530721610411866887253358935755413521788730680782049990010981897343402950675536853536857332506571239328927704354539963700979264292780746092809340692839096519105856961191093677241913288949008379049477653464035508289418423411975956140903923196175273964394948965109570052210976619204939749346634045358033937664460953016583739649583429903626839255038018330733578097090898483167237149423281104829724470334100545659789937012228157027037902241444638202748607331180893269950079779941078464558600770999020467757070891930701084404688215950744716277493217074655801502899177329214449341978042021336760690360915586856218176589766543957750412215765207042963854299731543058086757139911133384473951687588446130477695467947061073808683349465392355245863613860572295514713393252119161989251053060230429971547640526842808833105896658962086161109607367279572870004992615554376464596615694638255105972514613396341456014585376549430373758726499733000933991623519185929121460992177676878909543074124617011618607004393577236720058904443621171411347794650857352645389476741210211324169949541789390738227592707573733691873115161400537971135886812722100681975596190012823591238062118340163678942460698178704693943788709773424353910103918970650108179950697506277135730808138545010076883542914203089059751979418099002657016675322326385543227798753425072808616535175043954583830103507762598899901341373924761740021611479487319680822384697504045830178003251936605884047486067640800395870330548344478450736329901597672770199726105756117882304354837967715430492653750970873487908744395251799465885101592441499101510375434155812640108444189632206041449156442724080525595431291700731926663209074763976784513141839613740534315250299725409353032519676422595979856828603479634950833222816028029325047451544151595322199444199098010552073928782249217828026250678609198922494362131113201024457965504877773106003736026893618906780211414341486394108215936680217328203107424612439875304929030756438516049043535025669326571677902487562833842791229578939793305229178309105336274442733310409446555901680429317107562766631940120420434844127416683459616218116528855955023860260428690278642840764810083856559905386625864681034801406791143684647464238413524225828506919725263275614814142048613946477172506069070253364011847140754153569080052012869142216942353885797357725873472204451803327418344691437965443660867435860034966517617718257322084097825895310706795924836678074014428403148539585705756164114493440854879718606663230193283248769945147098385591538964892603667565080996474609370165314882777405708040004812047667617911281781244804424402313814783210528621146962603331750638684496796304348127263157877750635787870909168831364096345403422140426689244153858608745268857935726583679964412046471273452491010805944987455806234897669844015298771933797641284831091265785628407252168316331070958869779733221154676939967384217205177054813803035546711024748547938564752530166420355697115080632835015998262046403048995176145895154667809128204043737676091304624925558102578839462922784255805935971696644117259826938375029928041288328524072081396248558007760705002354113317797781695447898390724170896408625977894482284446721638575573488940546703495176376396492590822367062651623662260393174608149814442746399023618372653610775772167349898035768266541088091010839347070380634970486835973926720518550994351359880126427096092693408944575656970695679554932362769621935832490304533354487464576640231486940543130436772577285233676025261958574966098100556813744664610863182164940035580959087931162398667173837209997777607643609965450613877627253510920123529838413597318640191983429858815770078257996383574800094283001806104761451623888461508256258234392876793390170717090833358004286686707189618294783354875036668902237737371449998837005009509190691728320037329653954808698697227277128427878444212666984832765632747180037564575428245706810149648005461890310375828893004673159460010444641478729425082509391608714166413909695596409385780804831411719215177503198859303745475128270701967040439566551119686317125205362807396365749028390948354081734164048202222195295409292592686032967987542929424904642301385061579602661489787437539243439684325019839281928539553209739813989695207590501305609344327530766739888643157312200161002524784671317959896458112778864783764785448962821126154953343955854586517340736575867934057108082973577106930760460978818462926407282574305018477048890631830806238407113129308299314834803779253288135284805368589781528820057891239816377811361674978325118333421344558857105293875361078285171846341379484761938200018980557056849426206004233806035741011432135148262551859048329206401707625109825098308168437559623103339974112625351064252639077364949828006667985501670794245482892596283506792627155097661376813850600668590628298566653476265416861906478805376642880224801944941076416706761556162400029005134949131953954113585098549469287932694644550522619188699710360329237847686845735881546537101391948502000741600997809027039434886054865748972213589366370273908632384234857377156513216225583443252574111146483787888028125457729128982042768754504564529102603688113181234342710297401629787604025334524011781638913146850731744736874748426502349217878354620260243840212557584702113761177062416894712064553861825872464239787128295927538004428843992915029521789564409827230649624749183635903010525024371243055614851928155527873014688454831843248834270871054236697836155907142893704614403749062746881817174018201674819968045309935290787548640239505039475786984451643783309081269233992492018485547362410390322943119098582098646336466931834059074149742589980053188702813763420273783164469109233322914717237692263769353453246308267454241141524646654915454060014090912774841608910119746310254965632352110185955633907129634676752811287123897681733161127750512367116601945846023997658200413229814022117563611974354690934473938604974461801718308937107220426239117949168352656428207889360353085459958240989857972439513195189579514615427906493192014587818031883004184202083068643586674473097995770589816647179679266748288585609211839469172693603934110571759428824393231667347669622665968892813842483421800213005274465677109231736045150751025496031150206070800096849984235202315928440198724174918110478849355330209030736985345232413599275290343836011021323919563978502004265490786190373134196691519807796700221351704241675951980022189682807020119818656850407898450001478691369830057010745455420772965459484122723686533176788091656206326217108687253675635782028217507000302051179726730606119102727624536957696495822545820369667154798929611533940295621438549483636416901980566278312806052878730420212668011524550464435348175085807403401180288586268009077089157656029935846957738815572983065668424332579891558790170779301782127886846300742470447017871359342429994410412236068521601914812128036780465314872840065037750361072707252495327247053342226844381959107924383569568631129083954518894493726543519166155141685703552757170500590740658975821512259278587169835931040635030037923560556726571426716091243796223367895036093451194217398798210353774959095143684579498297210891672398815586739710397399458098789156504326097451990468906481697219949292645950629513367505403221102592300280851500399889648683089804843298726317343883661913137097241138135212246247813844485517163033658928506910404105004282292926854918380609836193519589095339249611076434423540932438802428015240635954663612685068203200376929869183238149525456405739700933682531158731975873365750494429133427933026902262388880234290630055659675158796241760153209986378011748906547733136465272616015786968080644621731687559061481203143876840602491149251455848272389156341425246137527346155908946084131028701189574407673740401541212260879986255410587565209350490378579798790597070070552258604202323640345901101983696435803462962199006539901565410311709936837851130388377373478221088640555007286629854884473674765575193397801967781498878361920401586738330865088469822067261210732592650689643864009406176480123756464198630226640265925338276587867912856727249672804466096736221905837459891772919952399145642311883365804490609165875111664992789549089385835695730556056729212766201631450476782754278932989507136134853619838413471582818907273119551360808531273391262373972211470510659197115675582292252610986878726414840011534014177014210984905768622409509638322644632494790031310934483020794312841012624075828527288073154291591224469661143863680858934193681574083635536868611417608466978465837713267381429103781191523276873919734553739555819502660102194649497587795616713811231724914040081876954889162439455858702916396285830355073533955193073994498029456663618086519405805831081825671863172728706167896845574780823109193054874089812556959411217255788785767003958438925456379552789778852206307591325435504031705374201823541852772990177467452281658688555073419619595035616536974847814169004664226449335661760846207171117069115073848246416497842319720456760886221733403365917709434265854811800212629151786543447125450882146916026510316749749528260798545901189043277050201095683829329700425355746410863411786296138117990303627825010828859173628233441657144584182760435945377504471050537402352230303907182426841613028081265924972351891276527024568467911889315634889590744964586275872682026474112777310133555084161232243230972372461046976637529679315940927341207760408022641461526861646370188088781934735837121056496002579530541266534589439485209042852534816670040104150002719364685743561080215302304641370375215535102813382932136281538091830110751896089613873612805248569601302820680210592255211751387886316074679490875044265769303528328601819244524916638250990555767561600905385051259402820051104156987979972782584876310537020175629898346075529469300889693308462954613821998120197405369670438941201120078679010794780491886581533790361332494245698503528179750151729572492093608578525720552112408232602346350450659665455703865481636348141349516078911325495351788597094913118392309401561603183034646552141042427529792980787646940674091612184701715526911450737075712351379854835490304239710348425393560267640842973672723343816747132033462059373360932709326539312541882180904822317656635800542621754048680416353484012536761281310828561678748587035820930774477903796217112289175875539720947246889676777064654373411227518160922423416460817581749835206103073601703400262708063526247693420613286219240780931423900695362495703359066846626787402297226425873340633345400320993150380647954563477146710842971313485144909336446487306567061040658988521789470873636686964647640409933643272626370331557889213418897670511363616454863957770236950760944448620411134956124696284986128421660261278423256765642439428915543441157115090754268882690961507723974539688021217408910529761406711685082285533891571680589729576126023415433593996973956301834171831978510452203272480166902446120135290998213948832323804484369457281477779123921503749154003414354470924569206656564684845038332114427607918954038010562009129728134395156179155458883264408137739774748209899036388838407956438905773075328743058017043776752785916168189913303340569642521587599715713042455676018253348198982056977667000835760178591129931679747954125167396822139336647574683131054971125407182538147724904653682539768410637933990248967011913222598967879537310707939364321373699896181910324952877378411701042439451604516916556192121098493891397691702039888958664062535577133537153853426659622443423088634128509174139448344107763196995903031700167064404307700539254416210999913667371735436819510977396027345510438174519283281375828661212892913639524755502775069713113142133462898713642995255869728601082129988022157903724590875140435365800735817019517055076545397103216623290771475510949938692516084380777491732743220327551165661281740862701260051900821144835014532822282984908064398135405952048829711963138431308341205867543398133871310362857997260963737679237039144027856203514277069991079567616136911769540265940627269000547240000522751492563850537529006117522409971043287161198273522187208294498879880928794165883445697995174003169357993261618763310084034261036621408840207210131617061197796768645483539041772393486028507484060254346197790927553862014965776041586394148395776411883538358819724404903339354823246958035702425190658402943069710739815207677235239104605528885966728690345312005396539999140945029796400695174550278739342137372562673699429327470333954890518660216052019081055337632915188563161091024493351365714439479723853100703738880192951157189018104049221754542847195021201459899768036258205981913194508773606521767696386721977998486588317128967752108578391435819275687354033158156581531409210100501603370226401170556256333212468462278788561330149039062411581518273092687148762902168861280084006661238464557073483339682587387506446178555741682404244293197552935843320446103023677605135389936611424784410735446468575232816611828056429310485735381806916767030819639276173326467218313527331247242608980040966505078967913674196543819944177928214747558039316316952838379195804943749194756142921152981120236746318869113062666353482234698572506038443905096707010330005263440401345608383878538911266061283930962969270749383958701916940862192268917597936735370380917969523955438709361743946785664962815453727252687853571505052117894185935284442018473495366559264460307752445529694564245105969558037925009375551096216153604765685858459814115205720248908159025405935868236320729412842831749577336579125616584506875386511519178943827437086033275314149742154656647570104655066974013678471860324860752197475675739281997651461752201936594145476546413690735788979167164241528550170803726056646196307969192891467326341935240065783117358101850945654516360032770109121339801929460027354408795462350656679126801516647260516829391405354500214587991399337115193732587217102226586754841802817765855136300961713280300404639029392720762924981645578532090037809571075186910317819900268938723310975964185173335989475492864612194487480492864965648926016729219125111877765489431107815284796101754237742663826577593515442300930537648080423014310160828296738746800789784475619718967658014780536809890848854146241957285809018344262254164518329881193431117044763385345521074233872748958648875324700067157717526940777899061520118236255195402053571818907361736983294270297177944117563728960133297447241987331469944497464444087480392073779217325536823740988283218981034042256143206752655023931548905098427054684632871591736847332845910464461172303610051351256801825080220667351725401605743064406186915634024792871544649219032398585227822170322311428537598499329555849328140345873898574070990739871244331634638426084056534715111292041501590038772909568693895097447604449280916467923453063181877933207375787517094743264675043368813940466249911025502941680495410956179301403673374535753107600497472299753584861157968523302803240873830081565419775292937800880152642804359587448934428400761073107767837721725255751007937838048168858618469629341115995385278107194771488107271241642142457706545744333443099644482443836086693544238803765725674638557428570512756719903642169083162713107045889556312117411422734055459459090626038297974537217678357646125856941524114099750206753569959165610304822333760268362261804531077716799224062601004689550877789907844035297652241254322384708675667913597989278499933427982304323359029950093890444218946677780597961054226650359395099113770480977178146849993161231690164775713303474886695164106169963501284803008244015962460520337840651707051966440973220076335270873556644131761488769018505532478070662365199907301682368940989955772976945319932061285322189840226713652106228354436494408533263324562799161095351200242525524332677971536302200054573991451054517774108423669703533709796225269804020060876662686949989329823881345284304937547191992289626472023626546218844133432395669479822890874409922169620869589991667506682645245536881783805188152763697902539407936019469047135445607736944197514594146156392738659474195191724286629220913701503124945020830475939247887415092883405162070593404283077289834792429631536205266572100599974255568139776344773946619935902420488541365943493487797528949180779828044785537868836463425615533444091657271086742124883800744655271328133403923046074604722964875654582539016098357799272640600988492738708314688434723292002107685736417481379919032892282043329284496260861757064270479359406501326725809020088300708216573651865332290984612573311043329666281093780588838499792198854922977749715521204706054763619142832915832116296546517783157203848350308921138628578150574875035029443012925509763701206136676088157234513363228811155704303680578947985382811484505092674100776707921922967074207673492078058369742314269642188352578147784373057418387823833405567905121675919593073757465175651982675031261411254925566149127962705680942297562462613720746641183318196315085117889591154433119690385967682284372479200663223054412741088982359474418278001207859763830446391972304389946216663188147499188194518252190062470042325220673825525820190083636862143571068815641700579194343492804255220481613700834920176317019579801279165167762426781161579579130814173657674580803267135759357763485015718630892823528140535680181413916186482297245850555178438935581806611949225784356290093150356630756492724540366027111058294624799149059540401438205557319834826608721712006806577554105476475526353336007445197189642294531969563171288175713597925821552988738746156722455172706294368700587487030350163635528943076352133490319807585255826859846769777552380212979207702924923780690851090171376435796272678627302896222378525167358016494670501436345127390938185648829935052597029531567546208822665742311394191326613152988168262806351573241188135754295227994058495086241727434445928105689130385854770395531914754405866144609126396166308195050372240718573098725776363162851771501455672218770678518972763758190625048094082842530337090972844696951825017387737577576696883289453900255477257239878232663110120056644871518205395854438539833704843528002839638409204559641940152775526669456831254316725423060883446059203788942382634333891259234409912540831822254845613502239918230693633613351575290254455595055985099808004832399695793985770248607024217974953181327279718837977194621321442220050497676287320260063541131269257544972058785611287033721297126938919915541699176910326059733844375391444064329023782208701063748345747936521052102510287196618561681174169230294122181752015739153399863607088741032500287860193123454896392087459852138526929501173622031488212312613978551132685574201123503087015380836098151390758839190322636773741849614537042330383741304964450933886833945536055669833397182292749337723725086213593714303950285119038304136148027221768868387554913795739990752459862736518650283089599603123096525786365061844714003974300173012545030440532661173393444461170258583322972811066732814777552435353433215281261969394309821854526480210543773263544951725002579915958350841464552260505022752762755477966351629817331538249512225212561995712094904745568061599733633408433699391385856462463807134073006607875224584613420210519122917174165269395050877203806594496147058897527383582162400097790422093189788024095072767252707611782728831103131241097101182463651763631706024703566361668982613561464628351222617297962989445167231218734937937257382763069431404407014050449657543839045148306081919553379487849993819352192205700198796478034917545192090026191741856489781092366694915095767515027462019463101280837462507158610801897090674602543331974721358352326555934961057851587293006369944212946760631596142541138443646684459988565177890285810117154872528581461512128857243033082740984679517266972739298021505748235017889064412669299781599733945035983662748573039838049387449386927348607228695731194049726116184125895408103831630471382004453218324792416616158615593677525115256863941210772112472229843497739360806513504658144069208293314054317446011786741705613734854767466786982574547257969373376607026676963359876746109815354470663228873437347927144492288255414626075288750882444941028273925078519674770243285221035541274162270629138587861921732671679127559543927048890784149408227395494754848162507612436942904774231633301253076566128454529298472772609434196801200095720455960668271322737158437676451224233621418437938068350907624181922458424423736879256456729629941964764354042276900231153588356067784714662302825660040304024241213007204362223656621518821266919530763403005205542237326370865515910618787594325833382826407091975644806357694304819964301058690964445268033975907464582594776993632820825004645716574654022645973375000953723543233565533793153474187150560183502115834130711899730620989983220289725820294890250006654799001736343320069235563244136749313933184163702755272172566912687072641279741677266109342163442012981935742494650725642844594495142453647863649221378331740875218338125747113028513499315678232229525357590190453958728452786015485419428009079203709542338479891876166629940834493172538874807717011582455600422257364689974955477277588071952818455463288238457886166862414869824316690031177347204856468447658371060106139269071961123963704713970671460936438358959123734959191004774391948340857351501137692338714488217398515930041386344542688527266757991523008575712290126423057993464058525895750963729788923452195466809581048778881084082394757124764146879855204842551222141521595377706661249981010925827524304143411142441402608233561757528189788524851146441115368708520821149704146585507634299090247053029448654566700601014963313292191188869897213134948177339993355911031811138852392898442207757890237963055018887903951822705693255333725654417854044624835464815286760675313230325064616365977647594243816754018469103102557400070705461182161178915499335303970123010306498546919251942648103527369449168980525158641728023192049429506413254732171823541863103262692629768874684947755205683083718415884563146073085629441802674693773025094864842249317087553182077521648490949739711459960817923378978013904418104194946867416524536477753613367461109066793564240430900382546454053594600230339947043614423753979405237737007603882417572915834756275750402086525775713488007542444678330791865856005347264333370130889442815625124563820931503705111023812197169099286928189244261443283317279800273818001580603554363480332854565266736302086722979239399012099767375917390737846676747544976734861700076041122535825857042992170586236365006234016166072891128339265248843830673892579627078875939056672330709360555129219873842258216478274973886099998605540622728454706358930385382566312071643419406126904788950919829288794788247641442659077461187141812819052223706388518928214472614655731897489303664347342627589616904772074214109320596447490362894666128229640149477442582724061512222152267648952103868325832320471539037862792388357322901146091476399846746793779948969239640813514353578351759141832237543650619962015472498211397591097277454446689933788369688018283042533495592315134585705763126806164344613604677264342194707141284794111561100660861337945231192462840100804854988627541823882840436118971533295060468640650967253962481509036218738226289066270207753920798600800839570923162814020638904471104097771198354652730073982653521466257217410863720778486579967963709154869153853221457138506639185846309013835694908694934931353436536431639039191538267676873602440333049309650554152150599461547758290182066252525918578653740809312117007187504246018364449338850169812105198043647846415330599674673601564813764160425498589438447427808679922882990804261404418938708458127840450572577512607718574598499303176539961492616199930086914330352619140269093456138014163178670817179184404627638251610699525535020302841668203791283288127427746966817732766407374098972817268590134594563875120750049010806121291940505104289589866554125430922378392378077992338691587828469682450867652456824601065808218415731840882878721844461897872955297939522318823065902707639900515468121671112484987257202420169469196943575675459266924192953456447540520367079213409765973613490000302943291236407984900376642285010491936789049148338508498859806289760814190479066776894604829862659908454657127916322119927480484336538060498242346034171754061113787116890225520355311110818291845640051951294412099993257216086604010263750433676762586180906899218099134931096922192253383678942302916294161234790913935625675569470782561228236746199177982574049021797803037990510496566151164733653945399851619104954984872165270425548894834263243826136189346886619650914871019603759385914154009130913014435171224765675911525687875879147617855717771628487497780879749943157610860538928316631184947190002869743311834026797201186440121374742801194376285761655717009745260930446909698105489503494276490366470674517442408548116918222924404343054615958914083122120945162716937442863616525835474539248873164774425088362467927675395711261119118851297524089543281985425687692856556809678361959183974202310524597096057288277530253707493596428772439230070274343319761265840348713590849410273231234289869799551225063501546177989782016443566941325791366967648031359292645620117464290249369993893694349899237171204025957398193670768617075270072985471109526360926281926186275994466015389448713986671046303901557875764781268442341036549647946977403961456675826175864603654898638820997957874809427166363874613204847836795635300274081279974863880865074216203417201153678014029595363268400821320348874004410328605050302593005106272108493426496102950482541023063970928957050054223087213539366131032851181927965449916036630187535730342581316135240110530239817730915390017958163749790381991739910628581320744515673070177703707241193512031035372826963205675066904705233225962553278008707606533168003996300070175818217455798576876419543332603015396547588690523412434970449419828771643165942016199993172312971016858304995214131790644830749719987151964832062362528965293267695137979804538060832192915994214004935333180697300904788911733595068262255229474310460084138525404914561621330306194602169743046206189538138924171337708897978344191801563652993054041275985318948248864981703816606714486330877670754191045265588488770691782553640612560646986460277256294852961998200574194635041543550293554366342099130047033243691022591875136769683504753684895980327591830602142746836624660443137093529518039993535605760365873004229465181805458541753167059530045440923654974038755736286874665872301508651272249902893426465777652814815698887541827847791869222305570228445651252631769337811603696521338771721437872367321221294188082586906290365227909703272523548256018585801977357943475892722494270951733113494587914231043566975042993006389798810546518616427193076418721197545135605342645919415511217832831277332060429838254898860671579035353461546139669517669120284680965048326950162492974339072463754851240607564309085610187128283210496060941279094403103839785941643138030523715077903643650569690455126108614429887249670268678298775866809714343356651980385718901571534406289651909198905514776229990210716693545904893875693670503429296328978488141917185399649500128299758708330604201773367189811104131604198205609878409760044838288962261600984147412270854188363141083755366274225702783103038227900408244245982246163043150638952466602123591292782189507194312566107537620882060055011411684317406047044470660794225095340219608695682416635919354175435126631232233623467607993347660007691146294718652063598686849849701825247690646785359845139364335533135175931676550986629256211263342076330852693916777134466793823703174172997186506004688588557680904155535134513980770283474779870239262026733705014390838689232597202756017879463855725299359280663658356508147385119620537251396110097349806481453998983954924994296820804662785434356907383132614406855712618145951849935459775544054332939123468778122419539705421556191968310371227840514100039012382847568766200915497672723089206120301677865640587995414430426068802751527601939402227916884957262250371086158932492659829149901955984095726541507573450548066694311417623061731067622398327967226397609309604450214083352339741364639017104665484990499288913027889894173805059773950243226166499390968640000710579277671402015725853920623439902223337034850653851771381244715832678307940270993660329681294613866594153781927891024837849202309497706758110506869132582401917884946460483698694489695050803620128164096898209699274856241004536489756332133947271601484123215918665400009115252659030618448358856321433553136040105427585516020826029324456837464676169380886883401326104204503544601389718611471687102496369627955802797492865600862301175794201235600641437575368763175816222095489203509356995089737718108809024967889271255997628269020135588347798144511299336588722293270446320390046642265706745770530711282239778824501741929100274026618012507438267932404686233881940873696772705667434913271642473991748855611711845620849719594134979512860280399689671117227926315380158083137139011869014964026689862690554090884533661254655852468654673103340110187817946474678180257524555446757940997442272929884230223427273257743470240885717474929586068003872006558564333307842161531788647636932222200590275216497390671949302836271144971550603426136979275785563306477147050351869909163217346302349722776101317777850899775722935011590898077842926269812252531211563292367642552369039758981757897340907706146511242749429114813649357130336542476594405289858062333591879321835863219764251985673298329266253593451968541375778136223227904042096643056631701777826935757694257246516338988035986007680838549901269497684231963955435734501304000346138050572996160305477847871330639016882883780497851908152117158347478897557406314240152615976531566929102689724836034088908424426653232970891469320232240317092963207228375113096399904671579026972428223039953998855984338433155335118119710826973929586706102158647210745577969305335282383679343156380018458375827510493356569772198692930174366525031583352436536221315990770863779631477980477349201676122999240775347199967260524893030989453941965092808906751310414932894420328396955420363726736984468536223017629629317971874000042071138797615402718669305830567093270312028640885997265136839641961582165342344949394724826489013578519074987268842037171450682202669053163350486101645327333360786593827963924346129600666820478326292988509285074878219039319915856240684973061105014982797463345431595977685075505801398999449893865623436839052345720865856223612144804068675156314240097327097193490619307119717383487724866153714133573070789584008521971803311165161223993130028701376373679325330722810079568856939523449576524186656307132097442679389266465181465819210622420447864415107841545459136220791077424204361446467835445019760795931452669267973693348885666228933552437321760298735418877372632958320649902114590717786934234570073999189358143918625875980078833026262197512396909376826321066845682896667689375836349755354640673271448328710720307356869118501052759511617868754209793926119419354059582934047852475219364424576532361792789877986878483574325488578842019000913756303146815534314235476195086213173867816768899735932381723515218747455021261924923295246814577143017101796741829190940791080308051611770097142876229259278928891251103689082590649334204885949480690096396858554023473227251501609127079203852390560095050958042894799169984967851217911144139645162700953079677918805212371667378593684187184816787290087132318879743303498873833746550524214394835151999798897211940327210163577830376609069697169354276378473673736767761827979586421144364885064809287565587164471490925882073763905145329718871932148285029646584279295685168939192897020587359700186332315212016312033743110878423669039359664247932743015785567681768693279608055012478712713366561895076917543117757747012038678303395771730298308492624111981637109535889146803702992555863803509442077262670053084282490924627032471920812755163952429740200048620081308440083903697608250570872148642396505387367910196310880952101808916854421638700677994928497553469590965538360111287578782262220451349091667084553707974299643256762862156842871958771947673716611427133143052978184947207794202908231246644829921925246010924845197043701227868510143433989781307454200013887591270558211863112705037001046314218169418336517439869391388057144508596341590135935405407579993604798403871801709135153302494717100679521814966885320846101568823542874907095671385971175769588410761716726910603704578954986226628262929231662262978221986734017908516399602113827769617176143816777079020507927688116438590816095558622382964532309735701731721593977920789327540021498227218906378451905243029601576742155899520299558760745380054411378435087799509801250172280319986672668408360972702783985987046428743550293109166561665391113583795892578622980234848327812804084552952929200651486630675698335243784450858617559878333057936827055883794370555282361988760579619199605743275939738502383946873552642959647420782507322930762461566337632967518921646850446544128988660503056038708294902137325072453063694919746018157246253404826841599672598798175038105297408656117702719699742752529738767790998910237333901526889664279411584800612052404778923914106639655631245588825157338459079217190044039212711002020532350706749711885010981015835216496022154880766230888478471704202514773319331169518457475162674352449344079674303956059095849146840309958729261265322826899979698302552019574777955243095905386894072994777184422941557274820684882631492434744493127994054110682512238481452254746602146309219470983193961954312166763941795377590071403693304576195660990374865803209389943052113779620099850255711444356063762034425879531183964570040712325856213250099474261131683659233683342411444481702831712015310223830920426281492301076011627420670859089252911698225992031192430160881343869998658256547074779765946118242967372351730142037731616454211774960076528692552222447447807334834652302908915939096341128525856267205475530187056601243892655896103779125446616834192110899901237473377382053588075130667498152015591094619658691664406620543616951260171005405936939288329211097354100028352112549709482964802239170360449264635085290452977196389829557148980670231121011698485167545930398937191698238525273664724390621891912197017730755330355037208934068671408242349288676329698664489148627720044080061163961099765867512355083709566483478027363547790107175366772665914770132592884431189071724012550101443251916067912507756892052675830835927802984121995817811038397011454316315853800502337940786680585100280109168169617638051301767640728540113769482418838937972998238642910513359342130344182959995274156027302977046927010112466937300428868009832756058826716978361699482618518931919551499682581442418217631989655636777105945449935878601681772659607098900318198834153647918250662200607866421713546199546957612285048811875171497304998099400713661694048503066741087541493290741310880062672608192721005890958513431297955696643762689818018960759158227819156838215000387157960992330208731097921531094991860955995777124756655727602991363908943939254786412464939424592402029615132654723164451462460307437188865616148151214591488047911504815248841837866050082069615258600777828327205886929020908889636271714488967607248162360176882054847465339613574669033684617305087766479633315169788401633162284541770842287730003255749400361618744083169050876311978386249946290022389296095184532447488464929171403117605599619536811077155377838609049736939658794972006190712207119954183171053973210810667470615719986198824292648880916994281641181831074364773265691878617064548367663182212716514457124730046028577330266302214783607882034000337441923079535277534793386060198691220045634787757094377402733195097651229071271883772027155951302466721748009681187904746906469302676268129132687360650239200871922866889458553240764393204922802344732857794358063673337678327077728822548671051804389441777392927320992288168857258696601892177620269078437779208923018672510739812419586140424708382313473422964885526505709269359721477143063325962705584808885806127270042196041541289997829461558413356048241742730915121950629147437113838810468988324880599633967497072525794355094182576605750057160472545014309233205517345827143117048418264068931617830268808627901291050060593865778208661113976606270286439628921938542539982512211273597388467405166024974432859325174440889457995465847701432862909905938174823929595615239490831949876498344938831693313235154828808319899926474252697353338616551109414373969610211863910909426351164585542821765895814725597477195093435821571384446154004889494569353450221958422725926993331795758239070649285434582535169927730119504752377501002744932865154330287261042484924593863347620702440314979902951124545169064527172765702088975175104204388468384984382909977359436189994046838223178709258312010544464663920510453164637452398726361819689794560747520577036059777668661953227817824093367896358569920424746287923171222534342203844181550035241204954187689521100228453117404104922032085981160158178142233799421315540511821060361066442216591854178619546392357318884247781916594259539565609168583022891862212318996102346945906793937804064036846972617574097070589265585788021164303361998147688274096081579101333083433990334040837979977507011410984579519728856907767529516038329636173559153667589767346462263582442598181302467633420553911623307085659208742337949590481187273052927947445157468258462216443915822633235984469885947179585392534813173706329872322218267875869870434593195406161024873864251556160597040797172032592633137647112576472007200363885262905792189789990680320992112272552369213244512951971473721917778710326767929147692624653709209217294635098199997775773871324856065876178810307186703687406129650817930092976967702125667167125482755846650338858206408877182917588833687962480779853391489698647497854351230395344977767184706751912749135090337666528595172356340802016123888402586408577876874110456628802777591085754611536444304245455866275721836977717392924861326638750449483637283197267820869894305860538866570043197250566370411399376167048643957261794742554913687098140259466140170102005536876918497927983593728375437850479321273601998495988755343940355844754895921137295049220954690621654647555381846795862659816967761227649657328225298180889065277409674728756446454151799575342407138249925219606933429916950390687873014783153844789181934815518735850068440280722359778304344819508410001168436082034977066307307829659364604953348236036204184670315126648351897370285399235327086119737320930540470804007623355739582464554587041732346884504085419351839943437784930601340736152345689276218288346145496218212201198091974920373048651171892692105934244226712697968339902613684744524912855556312241310256923803483433327818756316078826811303926168910000103555061065368533400043568822570408355779987776194354993703753561212861200550456534969884236408280184923507137213622632978818276502629498282087148256465248699948468842324364823032276373149585300128955645385090025586714367926812103571619735654401938228825594335021563186046339938764047218572588484769071875683368324184963283524287442877688167196819863279788460658639967529508157472715972779042640788055732224387649640064664974023013611682458402578163988323170204902249518617676955132392944875366582861672867214233541564689675921413962549176666044897796509721726011400004579480797332726836982510382168290725600320712799638599066277900506642083773486174326148834328028426312798393262703166534831641929596299777230277812549007304576310899401479399426755922372026425998200853206626660881183922236932324386631370773489380677179287037409607639782114182027379893950170480245319130859926350294370568719406915727315980276325227235974446156235264129302983639496974472604060303526361418329841991369403832169392998285373951270803037334286879724505038387786111291108443076006135482625715466025955544891081050504068564515053945154595662912393474016128575199391534572323551491367624843145658363733505322078592263524999731894006787423275531573220383086414308571112612490396734259990747548335886924553345632965011175815057366003462817770070779132722947294266977969352689690012995849244021096324123328529482226694111107060924707681441717983708526920316562307658755375344166145863751800918020100986534068597307169619318645406773487727561020045749784834155251526835158420882522869982929070965724310104727513015611777004857346998216077546272772354922363520142978112563080732334593578296244009796841594941018555444748687054030066380386055182637779398592141094946674581159802430803073762965309362658127940710948377789758228950171486875167934965611756949020161280670040688335601300832022953098541446793792459852449988493125385433314355981840896111325649324294992197153207852605715376021187882325910546910118200433831047409407457484786414555281989780205582572401738182257281626280422444119473536421948526831773449326796358051949325287873523829197015252912605876521098251501485834094260406433483543473182096143532727283101792660111482790552968467745199853866744160075289565305715262378026276254268914958194668090390902902279273231364079253181761664647645144014864829821151818136531824918951566683170004987580580621099074199192980673720614207642589730602578191689707260136258827302558174609178132120872128531065470930440353662762514432861179664387675219350244554233338537248074402778649025033954853583706857803549870946087829294484223708074402881998424067592404339688362863336865748808898699787506823834677415485835927329793605458112326657508959495256619695825498159989249304737337318593716516651047718668572133037260310954993939213491921114166405907296098979125206770227586181625807094767653311379133596390066498579514756829374880604537518237704434015256197614291297390234950406426868582125740242474742881220239868410711765775056307631413359277698099745151588724990165559479728001429265106601449841489797658023254514411881170203994841007581394695332383931805236267952189625611393396151957005657957684443478711002781514075586241284539278185154800151491070625143439330962631018048230850943636827290569264687467203562426979792826389539957785784983064643923614469944366302790272450188540643555060830638482149436379056732152544364075149410432746064477922394047704340952906183063090682854480568220637777448634072134204425044995600685649274840660893902298842299173851072524172636212698050086158378156291386151004575548183595113291976933136298415650388785814424409944431819813065727243258894939183207804536285638437157283585583419604029450612584960170825202946794427759639385514041319575589084123873113041181620242053755529736880376645354319152880526666914276089538351705799366678839890516286807894552140232319582244972454377890609675519588984059858119714410010834576705576046801145266388063701346348570049813819317261973600770520068927078054474167146124430077404583295176484033789316186483747922510198208330750355855071333865851588828753777898054677641744432916166328830198715276751770851220930352004826924073992543553972206343544410940258748272732086794969326765673835110671265598008488115035896234625449709655890150951838204467786953818319663691112481927325575924712200173167709268558485923981874382005392785150035899936297124275195609475450671280217768759391500766994559058196845980676903600128683296858909100342510614363016445707111326915050317268674108501510017136045580157194689730935746873140255710700538475174432169581566050547484168733397800445671484374802790057639856982778815072814710561635512003003972676286632369752655197848230540748913152605358183365249647918317256751506837534697475172179421365345649511648193218479850273963340483743232705546529479579215494917549444142094323764883438121549783616088436532088363612787686009827578789393017176874294851810805068366261985074656592878185079915580731682661055293087774476763560348137496846390462580607506630763802310226901139796282367130857367619905580462019919230106796538559187544175354749283989451306162154245657558909311599223848322923328110240626972269873434291809348958165865066755695779866479005019526225090827621306470572660912211126491278417129229121697050596106500316792781932798333103187843659288758030868894216557905682083365589209616290440492281837527155930111247135888559064786828803601674952488848276987635920596306385339944733358210217576597817952364293197307523690879836286427156812984046689156244181471527021210150361709618101105554280244122378972553025576499556862324154486277458198977890747111038658032277021966049788462749865512957506442348240471702594397952777312830054884217548556306969830624145268633214385300454089105199282142940499884741936237875656271659438066637819078473229676064353066570899738966836044536361585365745623805772230350473390493307480947269263046103602851001286938874937348562105432880009781725462656418068344727863452286946599987262453489366644071628149517958541036352340446070306935276498181660541163817776761933418586336098630570255303966899404942788526599650485607481618420313099330130756078086774827342109733940149431802492579347011342506044415149274664150706284026397053550597839099621542686370559919026305602646273698531671982928367782589541231569031639797246396931507525546936732854875027014670407763938920255491881568598244668488648622399970139252246987162860073907889469330188466745762142654093917275471448750115582815996132351155806765196598628208431333687989542853217537927954834910962419048192363501066831987140937781582935548777001687620025471400405199900387244224009442007509581738056220309544341896902063658310871541651555543215535633129443190055125804057266657291252887507471513731005158586099050724134931457358500928579250171215980299378548390236723018433238480716718073034408154477363043426521469082279818771809831416965019488579428214494934962634432606123054908866695492244576023933290433501170661170731200950544446430364346978344431599383315364921331754066595733100380320396740756351683954048752971166568757253513787224379325664532726760643155449810967917552976611247218583906885765559765157727673864277052926408851342098461898790713554510969319258811124408794581283567627309022812222317134156737964286609933782065198188031332186076909247244892073295772667178200842367892723121812997994495714626224046686671797502679523403763949916112336437003901725164712376455490606232349950243033909501407383411055287115848908754123356087955214335865633390312451629665489316813358827453505110850951135309148455368994431984391226073644532911534677534686850465843760723899648260589699168454551256416452444814123552369367709346617290822140433982593827763571293993341037597149904852853797021516589214949036489496922897166865667204340764623122935848815341124246819587476762319477329749713191311625677152701459412822736976245109074864155270494672981762157345437615684297148254903079558933816923116805139701108002669227178265193705344714675940824144651073305664111933537733251810994255310465382971079907313831138486198711735796480739163584351046467822532918672333318942288193229963196476487117625735317848243514784875819178167485821070510586081081536669180109785869060334693480808786279599035507879501002040372953422782371267543638877090536769931710349799785816486041708138481858059579924672704119989341212506836292802020303157345715295236358354774168562316205406852455972687421865546752593517560797451420545926684556673668034746040272161495915560852625491276888566588955046643693655634820911873383435322547932408593675656557643766448884286913131780417655807201320612123605319672438567115096237301287410325075504421224442368194647894306162614345220403917587547828999444269489055263654462136257042106797713643039786460469885388499050844634120144257164785822785908177021353681451256846851969934849507053165053520123711885678608871017685009493793134469462992493038621754624389446316511463708209386999014822940921623559845788837272050062919864771274224902101389187530141632662743240752933404947489478881539987952743620113367524372918314034537340924726303847411420076294650597810340567770633734090255253202467244489211201810864258835527294041658839110520941111460499896025636902391722765182425642720367697869991445059370329615168245373105316451921151802295885632663684361448904201005919461675878765044010532091660591007706075619068677113930779126714310337679124960884945410570455637024877362078032977254388318906088330203060828872230716733070013280909479357454013916061166108680153744651600189883624569958899546078483676804282008903926083237118247954808712357978652167468591541137880376741074651075275304535385949106680314851916493565314888990005240726214808875022714450256417012309941180151525776235326004478823357525982883201241432150100991976174668401906026558080265194063397374589106972058415622459930790604582151625577137248710450834342542282479868258148453257862651081465722890139550852142655128826844823532034258445942933782085709501224750529060672035570725258890721802977654231576512282196990159799311911591251651310106933692512065025082321876579575408474594700477535864675908366359096072858593171803498247946241535136998383720006655277111006305895215796154454677464451751013628158382515435630649042141182281947844355473435893010342022400608129623184110022226743715777769559947077771296199850818411658808221879565727258876237183598537214873940929071649852120068975319640882014187525028064766663647292807515679435648350277245045934263364971101029455637219309239247428705227755943909590734575842893319619918276890658420209019893781567604651223133528719452920899656418850284229984501272994590365990290602872913060283230832914108427023868768853482054763458631617157511645044705955437882656375574362152454789024073867050604738066174237270419498964962564016226697458573076177628956341605947695100815269067143196231904211209502358251113479375657646571570466152951067922305632685170836652318296962752038846169785329184886450244034594506203271136548826447880343495596239087950075047682254236767324935657646538754663174500630743850096760051933647829477779426074844865314736261304322348885101767007454536760701747626799083241773614862319627763394192049376819186771494124267894702204480960638077897450635894154035898176616856165650515582339367004200514014969725780674620704557325394200813126095471828513349314875758284168981541806774385121065552267091176370081237630333600173739558724805738366579222027896116324677298094932921608607503170404962792295326836932153504845163976429757748453520977245700079669771669138409881784094045616025215717911068057585347701281324561878603126241654916545246481977852623533380806338746846672571121792522064825889797111345428026409738704493888659829205532569180863335480856051183405716991442368469669596778317856072885483548789927365076732387134057859299076794526543226067375978166711107503362203699972392295025895328433691303825994599950892663110261119246432097369681008273695748047534423282686292691387342893165473237842059193621162450618040987628432104801450648290985421018233499135898386992737085002536151801168006013096417937774633781611258631749750493308686418595476836874077446546607043027350708872817445540002467903485120077708391805659787884169016756187647279773175088286372917713812098618901997328643240614703840269354736928218049346764070115326277010305094634262945772446692026752512034099035582740576561421133479466706149001895760382006956248496044084392986842608707273004086427185821263514496535356467615500609269662821876000378236897882780115825150525108028998157634982981136692882552792090995707850201499545243817179273905835608449543586630797698964361319163761100104592032264297393982167031475039441253649515989310741245820364979650361279025943559594015759300076293946678811098097123940840028871772580790522114390654574377803359507634771253151263020041872896183470113188691480451969518314559650479938851302695140663667721769822992960409965464606347999252050962586041019317615811215749105905515055867702042144642012335003934981783352313399202699596402180143724179752399599811651368600619926663532300224624479753736012029039225569790214332382076649817827221346488594228187692017146000633268410886867108654208885728788374983867709758592930079659244921326835465046093297932290826959901923766234714642507925949593227375077751459525530207616386787842020422839918347591927517551376631140541263518564767954731814054667141373624245958916371014084610727905335959429203510705739651463941336282232300569864541825952525773442683691608951855299765588611092727808294877614604029563396249444838103416653954729784650003933525643178652318178081660721229737889336664749854877722236841610436998527673316066954225309161451511509209898050793098606319430552837076141986805499478460638911342769543053199500447024532072392907493387040300486790083563097860436844557009181533062206827795217063553168354280400404060590202352295666012558499460015161459220073008379468168246651908514468354995786131013329010048757615604391671537417956743647621395942658927929803952562650611774307283829735631924497778304322478012947591333973675417441925662494208227671429389985450021274639079398623618757273880359024583742010963445711722049627274510680402276350422069926866213978817439396745214938547113057118036592923490360228321592298964417474170670156727036966240453506439085762839339424914636264797124542259510288339836694924231034602042332008185599347551165531926352502318275798060632089497155639372400536843295708522081655604012034614720015649299545250687685096151760423174316910887449560719956786534103278895681665603104005546330406358554743684187443164904979102703785759631276201315682745543378386780926224484986338864590103589703581740266300012835693434315723261860025240165971639595293828414531129373373814974999439600181163775557092135438922264341731454732247678371315610070804149096831781497943960495992283146477765084052769668436577467539223301618474443702408410747193472984497004714905437948194030161178027504727780113113746466684267059609627993614146436037802256076965745823269510295308720104769946338689488914088577043802346343022393499949122116630107943660207364595259805452853480193065652713036480211317254417597501857569130208285512023087943438953127592022520304331083384284744978746246248531223742145471032724800065747678290975105011706175246857755138173593486460083064587903234929809004479591381020208075714034389481062397431306033170445460107841492062760866817112579853145389047256055644598415792985413179141354458679032795471465092321257038179773885961312059615917550555841756879849765932716849163275002554749431805368992635084498097157966158020423207283733635410707864206975650926012726920884270891129366853925447156216760692814994034316484734153764334988009529584851348547680543485917701830303570440115843149486048275408803485395637125931574658278466598907508872687830801449239945194674242113735956056185773644346346275255076242553105060594364756272470482365429187284299242607402698109169197560741835701438028732508665580318100821901089337771028310798212302027590552173481810142414431920824526179228416475315297512329086507097384623419120998239800191468680619347703506695339833048210255349337404573762237375006610603280136276981304331362602464576844824663562863869756860798801318125555972755988244559410847117201295398744228489715420467409378837284342925428920169636482593733149191308853136523828344583387555304075990237449699495931352578604060688686020542498104846833540082267731329871656013232793401260832011493195375769773284768355145370542410891552787357159642312576305146759948896992438985306113497964881033128661332705827981938880571663872155233653043838039119748533438754646515086739032904670288381567200606875817265460488745094755630149528094407051586680707025097009218367815252364929481106454805554701096402023613835865813590843506087158588629110238327409639353066241284709208521353541396719504836240005180321433915247905697822176760892747834364573847285548177710278648317627462352373070727320724677256528404330569278268577892315661858386105005749789711882947673615933011085373352654870069557919042876391328201614863973501325505015414583630042322232002832011176665018675615169526110352638294753982241985172083113069447360746025806593152961233056287803519572776844792532217294627910597884217000183024156059570711980822185098654502393836975594154931596343218779894278306410544783467534038655375646823928232286298319337957434484351210227086141260023283964332222881168045528931219069315765223966204677341324336498243306233311102914482025759411940293563972125119118310902833207889277317654838778962276567534978947335918235446702300001426961216776688871220723669747762892161320528619166372273319508922073500135890183566043206959267304330690721523793983720151755168244415109933947975980824824706969672215990112368506090099528386091248866407189529943253140347793517796186291249269646194813152355119490311598280102243919112371292777733286896252301172169786790257568402346255100933775325511383535231843689018518663079938104945537293729179626689703269985979129930379216589130213546315739552591769287425252795732565671700892107422470160640909648954126985066768875822812271398038560330652180062466260095376305765013971677378906619620347273923008094328133714517339344570989810204908322059120033465609384616601284943771013231192645011856460352865277025765543580531410645992725763919743337789035783978622136063495127307567469423162510306298553649524689997716118366860156539356549189825816660120162091658339997981474876173551668092842584234646959463910953638919703145247626225770181820106236452340724755744279492089717365571535090938973160448343260478220426438678793330909786552152795608067520604023759548779918168570273816011298641343679136310260939218715099568497333743001703254484522559156448106265992451921613992333277799533902392995458000725832230525570309709895305297835322368175698698223510720927700825724185419586156488328181121435333432567712967271507426954904467049902276193879203474874177487280369292278961118061538340182200525997965796084229183650406728502665200406896896432314462288024537716347839413906735023561082348953037642222156521405136508673005668677429592488411289290567173158964964302218050616666121479680509564619993529886305994649534031939749677940791016054039811191688533133147944551594921873047688353854693730155464726893822676436508975373757475704187326251187944267460301033498656677287272508801248274412544396316347633226188453390628670842355082021242303187505120398303033001652976799263025472431225765390268351362255725460290386498246554394777176665634170889496445376907810017511125393698441680144552150142155785114265726880121256514399812617195829635377601110665254145107551309475091292129874314131620438577601481959002320379801879309790476404124048596326076102470378075763320311631105183778774078142632040624892663572659238926542140430343488493651328027597613464458049163623894502051443229428410853237495296089837987740687087532037058347694213079605987936918735505517708189532249976580928294680898855473427524616234117340496991199168389750807057526389114508966894884218436015230828310753954525170153490338133263248908313803662967579893036812038105212786204238354870685056073658120859468199956317622579086550311090478942956153960086386797960904225573552634647253682540352074650351483405011023052282279377625807614483441988604376724740145951976832898861558491315648056692905833407495312791830360669405440381936496351417074495094027706766225103270971924645093117476343424980688507337489711413230796623030384894901834507414757803780271643525865331221586178972373935917286723664870484470351611081927159388651213162339942549939965852635499707741122840735649949679490451070793138145729796042021941106761614024968557546895653360600905530384698041893606951891908932415533412130000479333167823447844169538887581369747130889846741149799739910821610333268317920088621777791538349811735012073436578410228348611636876165886661535150050998579844012813249363632764825805318093084427345258089431619211339494641306265981506199408422345391466918170519128519214011813701403774855042082842990291081257400410952320268554875781206954981425965723428881133056385154290213206383072677739288560526873789782888513610771838561582894872083577488475390155080503993730895536874047702885076798285965678036825642452190553466944640946174425055557594451168629668543930260945428293733353246351797714079845668362902329485078849784048423372329470614649126338878703301071424177189087495364970405178603086759152098246919025687632090896536090637205561160834544560283794426393465552233567831876927292755954333018236803670661319498977385457016824221697803219359115993880863744764176725504825418490449843016314951374852928932201175530467292367245042745178645126862512111738027029647946344826236421280192737167103457908104676087202186182685379701483279331985355315401314846623868500871677409635942760965418585508343586835171099118475976573852461332367146363199386467376898871048252214457904483288329865944055257095238539459398646272086405026407209455645858900284406849363415568525787832213824300594502432069265025900234317421054382727128040277007519346584488454012843409226810387367847999264481283709881457412794052032785082246537623281062647376217064975257686963913432403804234869138730313579575765028564692094250282465632735759451925892968914715839928370428785838939176386574758482352549556733358424986298109917098935498776629535321652791154900393559463342901967899201338680047806956138682930231176818113357048816285088520752143960455093165457283042471613952760398611323705757467671426683154425483879743760382201345639678886548983352405527744192208965792156364074156756050282012426009184420789197168773584374107839296072643150627170445052201837403191577116032410926682311261918804112327532724065252267867647451105996016873700524607910148433774757867617756808137642558587652919732294259851413002285246339900807013722854550612921980826460496907241660437528893365071512755135661863840276707680500025302280643633766284977515899147595221181123372175429774881817103815296186050862546024856574226931001110989695935948225440844904427982669886564890197941493234642487032859180778641058790769621848846072700921274104221432013419450618388030553551804320154518014202443471569820667542911963121097158645760635092973701736114559694503837547828336224188601300523362198531018455875207855804000980652478130954610205110805616070297843467374620281909395573243674035377050389021192856913246065906628876185364324211471211539282207023366663828668739486036352829321314929646800921254132561557927055001004660486237708832288140976624273400724763052405556971732162676765148844617966184004756059352034182523329922861555532587691481150681395421220119486453229277496918776536047427997474601819761701668196959047667114619736067150697902848839158489900283637270864371761105327217468325560011653820345771083054528423801639852123837809593898916619558090726066746856849009146686878214670105076980181599245502923751250580782550575082636314114390738751520026826659430669390183740286124502015072208600733248362177358115281209376109031944401202359199750522442985280866720080329211155915624179873054988919713730818888958295904494918043924933559870710839354459686631841528659810596713782661626365712882609775399166661179487095374100783580841437104985074827550203522306222765214528924887954746317642158041257358935520879306664019455259725343005595138894701013375998096017222472765230157500353572818240936834172388959280372955390626885057148472822917216110327264431709659325991407708316503506646803420327495483929593886210846708053443490481029620678899382292556412057083876247305911935095560184190057023994766800603536661474344276581001843070146500263584064137368564253523725473953962428868747129658797008806545594377513179458592393867985187968117741952589819618699206989302235218679684618135386964808806812727403118206085180795506422387941583097265507059795503612004210688420833494710377251394809461927587626942441276866885705196311502424581498942088725558901003519728743334726579721396562287158726021998943796571797954409343177763780435257011776122232446682085334634717191502353770406687264554612287055678420574325983266069882713760363396163968631688861362261238815019244859434221638364961574574717632325851690638564776415116405793079471010912238541805822806268364472893791809941872975277873769323194611072651192793750515363267113076548308604738869067361481179806501486758399476496299692121700142893708937213376490305591521050852696764680104428952412002226998165554455876549141158395227370076260098967124774413836677196666182982789737691865195765655525770010872488564554763965905997316279444052757555126048200326426476136118407816849558614433435577474554917506879622347220663937808675328206189180199508108752431436499853756926638118981084375001863005234706198998582369085516547906089677174376413416809864290633199628795782100695307300533992685766360874059157585272831073165638034850570392313110480611238627514607438201825898014803677183980590646715329055398078433800640091321333533301232006583109417349009874266818295379651688008985953620941908408286255983036582361544596295041742193777102439293422077319710794890755721399162464509308411844774535605895751190234810559899346227736122699636535489366000581699277855250738591432407397002599461336750058690028598083026613318288619371093763998393850599250357684995500503933593442461891435600953519365914857628315480873970571943753735170719869898871612523604673146547943436644383533172621482729354035547056637962550746282184712157798253061381926691605934053900237079705627714647784800918867045867790689712852554133459797682573395144360095439196485481775152587999180618169792195404555275206308419556090517345936285539990013001753258981414084615359903622501213273649792088150284224789787735847077688305443577040123099729896310041342092362681169448208120402848737495457774084979049414036659042533358549052283791911638125718753761377923173004591846175285603372711616733725966779493069270795428070365103836233995511511635672471546194335380544510978508167844013020404748370403990641207270675164429331062757257251483993439878439914330170899469350590228063105330829615092872403682333067419864686796424730741046885214553031410538562348746214119205588124716341793753805501283149552763299510355897753773903098119680951458080194379168049157333715158188379226930963679123297636408328758560301464579854063290183249240766961153435389930809234873141743160874095035497195793484799199518383112336415598141827052055479056487272700519023842226767226142626453131773874596417986175313259227096639003998554517330314254550865695197099531897556232710764816301415542279617407473649398823923725821087130182556119192274496636586550847387578020314241672333546039077279268888845086204757270555056710310112670934907232309946673038712463338820394320784060898734443876141600353512820357234234192767433201534471311777796474558629240938049085924991700314910277204585559871850564647618920697477430034102238733568533868451910094937917090921499490536191264359646272737373875081998821716707540845305646486187822149795194011684948104431155695273689141043185943209975556144775575853418893241398407705422436607393383875422468417681741627588982777954673231771861981957724996162766578635814128450494149123978834966997322293049747716195350075894139580360502525659770599432106308451466177750858867931278578142045779191429295377677921462954942815379491336075637125355366096016095742141375037845946847494811686011425134921663909008719752250461691235264278992756319694081583182559883047919211680835042581503377631874016595144351579691849799973698670406715024184045801743621147070988863671963471194920223435965567480726517736846190932638825994278856509802619266511847949617535124904579235267393269024289966027411002175056439074295526550625693400977226745231166156382697990264351305693978777466725957562239107157531113385028147055947072360119309789516102968550703760852853101001909173469750000810793831629419398796641326710088463936849927694015498075094095769391048165385616825347435401743750105842588656491582344529918880666082633109407691711501384352206914666293676156457245911116009905127137195911456389569451021055584705380891044429345490852612181725121999848412053928042730351934986198874359701655241824376475971932502321961627190177285958607435037139469591553029098501483029186883486145827184731873603220142790298785313114512834012097117006770321990399058781765659306976661578287761612458785259161335592310039759851225156407416230110072550098757127840266273430079696121734489652741110672656231974550667638497081087292919076161555391814718527328100363996040597031711338780718313982668805620876483690464981187216572799725492601783728060172991742561488277117392784523700337833686331956763636682254010212450860665470229677916192221498648051341355879436432553028883392207070806830283252694630893360864249648878457472827640781784833895386723509898092878311485531786392279777411969079237063202331587129978326519274845265730795104987840190042455263223275472467736626052757393345686990217451792403500983878068181630473794271394922066608220949729464677923229906404829922455399972087084663726905933626423524188356470537793971885574151197129163434271208374629507141243170528738667516628123582764477098739559775978868188687022641636651250887546364134671527288591985412723541449061668921170638685239018239079018458935283779599984833251773056153113855006303545829137082772241199022088153297142958638624008339104925905374299262071132649880245985790936671480566301360185503569049082360486215044031220318594247786212125997095481527580356561338937662069870081445351141804437567332322080397565389733914165150567955323402525629239424101589673550222381273033008025792900328115606128159609456174709532114530693154652539573204076786643368422428243692326231868624682092186024019160373405055511410612791264595406555830063022348801571830616253561849875833503767054147153563813549674089614917333657445435124983938120162650907149830622740808611369703439221250931151177204030154557987847477525891433107982896494950595212043034558151649998883779165163377212278208664157844553501347002350714842423112625607897823041872389788092887422669422442913759492641743426343294816807549816686481894441891526396074532525041813710365034323006666294488412263683707247311738654100449443653138915739927065972613239163575685285677449863955703619394586153385766731480940700790434700434314277049107489644414658104081778556931566447638482507634542978373649965869492559393779094535562624122392165987368468501288527605315043149324330952071780728999210360412750643564151334732265041751613757283082951739720292640446314993385975661855879509372912418575797074407860113688422780830996989262677204215123894528128740787240437668059793964945318917306109929759282150335769761809081105232008064247929447486698816807483185701689448445268478474542178035931818187455480797612230974211790822951402387692520195052662868710363084473747866825923629513285759823494471923876336759604141623052085850898193895893008655617238321663307488239462168147819727463293958088591045516512631453420897518130634122370412495899968890783683268081365067451375689212923540244976853575750379278799080080965995279561075126189199210592919859665458946112635102551196469218909017892100886448708770459078393721869528492356107561967757316501647073368022946242421053409724292589684190222465931702829838121245466124485672366091636523563274619327928428729593155929622991178114657991856090946900357532161252517100126991320434656449669234549580739056826474694733126088438494774671478989670643063957956084809416286077790666231658542517448742917315108431229385519839695838122433902924914571112808518404402179775069562077470034264240402198939055926594398722709698741956502468109064029853883280163657449204318360128815839272514060301216860310349480747249339476358844599688232881117200215984059115251561492520680795039373069052257954214045920961540394394008407245567885314675576452049284790211251324479261173364248325493858814179493285236687050384765282140710402532931340376888241749506379845130193157818825157404396708154278236202601315656659809760414800103329924825368821070830448887200571354249152762939859520329155209890042651074401840802824329174585982092872711117493245686006363854671559144503826885713274339027110282109695556193226733503629978251474414684569413964622431430518569698157004704290101365637632769257505473999659747706049961711517173479164852891806356029954228151128575493413597043314200664823983359543145752694825398026656934584907838312665009351793953032326406658124056510396784306415948638639487841808266039179572293165735904667988915560997672941512031292314764376055138695865624836916448051008408974185979091780406841453199377334417318194357587873913463097122887625149280327699444611896061013376433481895230986903864524572799998337888623633070672828682533828887804498280900178521011589034056101958923399413756254237290421778007662622078904321228733820448519831203147203688374998556822299745445761049717138476317369245887520776052974519541439573505812288686277372204255666303432858597758748529355882434835041548541266006690286474305280125361362773870349017854132345456170606284662910270182822458346009418466705426527013864042754404927630605603209082922706512610728414850909597291752633170936518281431015584772599438850202602658173814381139534448651705879252611276394328801612274430041698250786899353846155548140429787980284498127992998946361781287949276546137814002925866995247363337936749535369667061726048315510259745195710199101543424303367794704919086673060735191872453534017891437726558150543484392854012508703748710961893184600404060901787010184045588438012829135549894406364107323994760304979286994867160950471120518115280580201375381177636890771472740403442964913702277099810563791424478804168793772318834213062962637873662210683458110695163069084744631710533928990510507572197127487249551735936502692718210125232760508472039975592391397259880147963545883234694214786864642590490473086718481691016253000014823863918154676279707289124347372799748151590672939513768529944895495214728427792002486124868953172091362365568118815271289727177238110858242252772248376880696733034226136950825333835256647545138076094520321928578765020685979496505483182643589625440398753183712603321861611198362944372913091367358625876630605661380954266641165084260632273196105008290523878736429136364707392780387730127538331396049458382637347339948944314650393147038097953087207074516824109638997627476779699527008049474714933975081386583823010819744792639635845762176230083996948197481976542919561319673458589582265660551083941821253817317594459785976040500735065705162860970498992083249574653489239040392572548188168630138205045158249524087316572170904865534131102393379678106801250250356153333841227342869168467025942930872245538522858981629220272605162214613357550110520849140471894480971768758912498347495512478574736820084650771539604537742415756881652180665412526739521781948595211576239368904598784128054655372764589450555477014843911019416623267162047838033053368359740419646766878100684279016667033841297528491167648310894560095688736021748487371350182602449129412154331372395474356219960922264961590545470294159459805653332842009928739186167125308049420292100693165284708865864893597269608913767271803976194710504086135134552949942549341334782673174386477104961501776578451236886151042934396466966196980805926182007955810433918520366130567933337887926143154044714237885084040629066304410669831607955173221837372486735382344740563919551684960087249300554985246427037198013200185268169898285552752850870956014826831248403235900086485596232622691944962171760037439144966172287179522476192047926591990735047216777089840958214764737097358831613845248368163438218875638425940854768238898572854359779781719902044093705932288450149214925016851691934844212405304687068919790061908224300104339071941932887046868084103120553559975980453160892480532782295965951356534794153833140811308187084099998441383179552392588466942719403256873365782559825382993737120443134941668868357161455825504860037789728567475357175642258683777954163013383152536312590605016116997701364975370174978668069824752797421782763011890422797447827475180894877137713915271675799783969026522026288175815052726543291964706024009057549465219547446014220808700100646434541449008409032323287740831743054164778526626251294649528792660315985116976897329573763901057411234974929011277573492345172881616754865399799451952179369505941690005728490238520515058992891406241808420919544284413563255193384642405749608206348481820488024391900995474885652328763469839953277354667457614061421730108453671765605283898514165522348420837219271124237239907826544645590908740445323822297543519007937098362809320175931711082708965239355069446711550216832525614287281258001776814716786393016682419506166871669850587233768446910598576526371748687577580422039426235225273571942715322521504454558914005058756453898014776169161082232588219371873048223229733071136647210135080802503498559777350507659445681293587856204231539120186741127908327888793137169099866997783052200631155205078067894647343264281927355249904674628957623362142111677284639753161568059412328078712371758037420053255588331352034045584144056665611089599293185184729134478873627575726361518367577996949750450830360169139063559681065691242077676309131663162098911241638767250909254608976416585971391123015268854249293418835360401693097964724146142949306001848594145960305104364192441771849646570691224181062380171275731931563546189602443319636002840167637410615511030417766402736668728037664281164965120087309501940635794783925819838383191532193172490143530669280400144574559184030497285912376262360201636019047184588377266360071657735819189608957945663025283686594885988345888222728663684218505389088290456259687873572453786472375537510523558835352644308830212720566811476457360850707242913283763530011642018995420971913422860422812259832473712095004063923994623617236045302557809942894141518191033038033989948339007143933276512189988995157411053504053217134951068623766065078966077598652106288016490493600781721959488478400901122561701879699963560712445662026776999240412968099677060862681491671394067353149877621315770262847862819153392246176901043585961170295546634361808242469231984049250904200959378461039841243653895681620435588481508947172959662484406920319912320874893939168191523716298794825433121755728630970342916731221136501467069917938416251520113883502708278452798958140163191329142293298564650718781747545987430750978409845331039624220389818907498529539798998282768609826996614368981814538057905856719372275419210587234762645410124961178643208297084248103982120266335052646119980518633147793083795656162816749744552650637905479518683444014439308311629521283139160138561414258371753277556780915014376159944862609225629933621421925557571007391233885685241497059210776293651566618781092716067067767183527684385024239956576078256192379616138585608962125512323664925621413286816259514397274923570069395356143560384336191006065254209049578924268194489145184871687988259375767219195777109098706593999850975351765488603384938801467915508263813712560743111926219658216502059913977862502016946005184442979223803952916425192842847215132833265768244761462134050728776030759307219573669608054978485307514304330020803293401948429930535044715635287535906544632721259078571617921262798270693044362330209213164089042359102452943962565448415863515051842493301535291155976916036420061748505839392508564390656622617530526085897492593429664866446202915722640332440704972602157347275312008599784278378611846232963917680153268938153032962225961946218009263178494004278455446985874147941190861918697796210419272890669125865896304317173370936689328577154889578126123964082163332283476571258458909771155160871797030273462480004580440359921370290389641973848013988124405601856331711238002066849993755113650806720812671426477820996121833178105212597824104504510176033284431614698239636925151990287773997201041870257394024811852706806472270325089821541304300178742987077412847225736294662276389750095606166451886244449961131273408875701154433977806919747720308235529619112670021140528464944069471328575335295720051617854104824402604399764773675583220122742912286342520624508884301945796100796785417497392155040968714065609821530645603155813489034466444051123522777531089501702938417586264830909537315617871266669410370584654691242004687518789203859308051307036804160071330822841326272402838977959252284945267350640464796255266194421323051296008988110114458985958118438529148740977315427317724962490199368120478322277486710274222915276861664556459560358004228619204145546000077279876159811530806315720174276321934436720734060289001077089396615328368269381970436049003167230745924077393473930910343606240016402262633235397341025328396070228193093413123987624981087756767777440312318374916130895236794481177533903361505559633890484603073960819402809669116827414539939349613112189550677919139015038156503751493503709689516894976108401921322408754753918373680886445180439541051292645786913023943208235214374350064054268702028629941320951366644879479677972779963525678519846660058570543191831281998643186731909324857804140967858303405935780809337119201761955080522295791402919136167645446217046786434331262686962536828187618044451331960685337331800753398554584675639692376640221959264133283029824908227023611318077258043735874439431059696501677262956000788671924684291388923755650423423132674530580704346636905136444274799756149636567673863794459926782177963585197388232509835307075635845824134260066238125523139533803238419361352721770552295156720540994640460766111382708701608085919011400534490475349090039328322459844087101203968026742301030413630334427944404928833602264392496787747098267085818090174725921299038977802264425187264584771381056497094515893530629025906466499230850610270175622981320574382802030984782030908668719258825723862353422092157252122538824713794611926801665049771414500093757140744091480379031444827721230111933046441082083847230570227989295737102422311089307363828286079582586905459340996322061019243755224490507078771533077897861464224789473028098355152805451802487493536914147683498239446468813948567350985560825185340032282474390626635995304958786137996981269205280888213259212186438357088714907284743592800166557677134590270996887874231470789103132344972310651823839379786779211437659830500124267214403420945332174317396049981145778799915263637115381137637155002563206157302275573577994349856293784100144112241565311658477238785000400201344145729423538921135308899682859551771775110126185459122957231513283439267441859537753262294574266354338560275915208534928580751136633766941248118000377483502642870268135519484897146699741194487523470238531496269353994812870367736569011431090379028995368939959186483240105833187494459155844443067222574382583739604453966129320774264637520643601209891231125662526637379915741488747367176304483088919014201727369077124209497137713268474259462277702945448986209024027723877044882682501387664573150223704695490091045481594592946319833301701715606110788978751478348853054696343999879157504724793895025013544763513570937182083373697157722735257561047739765130901421879990036803511597259951087595449314638201644106611378166159505980587572448278993465809278351500480099900750924448163276065360454118827385251473765238699644646897980662283621346105664569439084145456459128303846320263858173015388834796199483489193554415428765318074988346831528914207221607981460137210101801892455161435508098044581268101907312508157469156312512905691198122608492438081675830123166823100240777385024062032913841220935588966253352577620336658497044017767346565734664724002255661346275240999127813517409388787159043835540470581642987070231042419547913970126060017899831640720615506403178465363377040452743528797239491536721412944534955376017301177523172728543624931489467994237448207334203524821645683578406861383343891608463361981883010420659766784210751811801134558397086504500929419013019231893107661568555716446259640853899544656015312739832705272304635415122000894224758477446708294443493689759464544960161613754266169061278149835297487888596525992935516227787731145237415771662057879808458630539609554754187843904636116834229957569931790924700113530663748038960150478125204007588360683578952743669667628470495586081278306541094077222274420877230604803231071327275914194395245538486929892757881139104728300641358794105190062331823541837609141816154881914620985194736574706747063364939393736202252126478608671125982419126172745839921900334351226138393655586198016371600023344801581602703323800416920218995542500802921017924316449509390892930257696699809768255484935456590597997405021928261872439175538279419064732742222895356856185504705924971675573781683620270064065732453437890425505493596092966306728202998244457434783113674426595475299833810557102489182931379162672096863543794802866133048287770621036716398261793701568221720418753592175902912469794375503014355965343914219048823778261145153115756446163078090419343156674129742419118903601980232178829473867942639200364267084856938084248176115958832092323147796974709746986527412455515844929819185875784888702710766293342478318555403004043003181865441496687239047829315933184414886830343508768600171412563363055026154934323240058117879688783336681746741746669882663572362044237367759932197575169029465222081473716935845715455412672090359491885468424191144942580874507705574868389984556731925597115434709633989659075554683134953540942312225167335083804938469574809698939573356084141229623171902968228481712282698905104503502665872990496803710147772333768037087180367276355425233917443176891919501069883079935965595438407189519275889766350235333705564813574330123247139335432340091817601393130559769935284713996184211081673952816465050291608529705004989354693793185113903969697177218768925225056391813297295694124718475774010795643543903911264707111507003795458380833330048001698590172536125478794942199107045752091879925034093665865332408725481113676379880804355621146870281665351729292909499635827633077899099502874340213467070879725807419279637653289984588703788276010797370472746847437413989622395569180337484348216963015943964586934438989551993105055540178371922400562978758157214728836865810425043817607281730920358985004741786356057568121793176557939721220126466807887205991600217492036404338121453024948061390036273220118621739770281747421232207838572145090793875740135393432010265624026045442494137660340512684212193545453981803137744584548325174121684960669540156531247759731357929923776590496017033877118732503813318542881269651300861758928510037594670567075335782800636019250545813391116597559916775775972694744243385258859515558891411294704945828438072320163693148214263651789010459493185190533650084501573701573281567774804435476351787837130555766794171486364021572979659921797736719416182266480823323607134137848871593277234814483786505362630518902658069100366571771165312292803821887859350799455846858588340502400527676499781136468862287702972936170866930861944848234166596792140676039570485197635518410312552541340647456881629300915750208610953623039132531714077347030442348253025565123411988443801997885021735898607401622569962823203070791115735903271637139525664730879275007126874274505004083270784996218274139660441637104725494745811261171280879076592075792779110585519621970597609287048277198448797111894744523250778301734426164440139686526549586286651604341011305994182024206032276668374787297706677607527972805145692733763265057743668160670196212533987750940141361419337307634316690770978817708848935463962578995351877146290860156189548704832906718246822174753656809530190511844379321570400294880258108238829912497970981805764248528849560646247667285597485054354339686821813102392994641018812109301060112078457464375947932439779351124877353100777687046297738663830052290421343925649955561637841464777038661575504882434380170411344865284699578282139459041086591159113196165081730561360115769286719212130525991275196971456656939306190751494407996282197706079947815629816297702113125166437512063852960611264868110091704386119118562762788263194549865966922545065350441325361161960291950040390271510762382386304941348097431122491777461893839695550460979440270933004178819261512104141574166786858423303443226713240413233648217976102966397146882478339313064421624691485727983182967075431175365254308320937842544676911238820815942867173709775442918740136328158122175629606714921204609459638689189260945429173321779249991417261617833638183337916892823996408656685757094315210220767981101307532731310455537400681503080063133882692681320999299159355949787170327649882166125764829403432741626131541795014410972814691947988213719365217778014648495193349025804192165901164112878972074220888082313179276575158141926680802339409649169283792247542483129862804587669848608439567916523974806966944953072062493903688108710669376451773593239119200874996326390691875397611905753545113934967932777386353998616567779933792365292257736912658627403898024353725286119850629724025630315188659482603590673637425033695098628347434933881721108860926509547320889998162295015734730937246458498834605973299526322924391117711662369864530065018151902086262842089471372861437064900131670867834307779105829735845514997031093738368767918085932480605875559339399950400797019445205519850995596150772947041454695537325836046829419665508149737822801276244960873702443972954583441510795367161879037606328719328600554907260893306060294747838907242088015413259336028542939210155676593658363316066086372251414434752552884148892274963830902524308612940511500544792114614461487390646081452976862149836430651766490431708400734060842908144191088526196950536391152972454725926820735700984136351897346258632606580483643419238317852865184050053924297134017563087084249653696755138849211813305500207605070663324393675408740994782449494270874277639448315506382044762765666286260981071878130680155278295981802606723534420992982290743314915508566990285884735145185899738410268462412200734706943822196553896856868834386644443400057828774565044974023771661254496085672330019845881387837209821562863352244261764794276942836694401751634560676610438544420196053937458313481639271609467027541776891268162421759173649396225041757449655163248575477099444493902216124920828304585607616185813465514034681550890355582419593226953206304031426991695899297564631594097743487780569511914905668573793159544687328519416721763369230236787921196039239623577297545091703599550549160224791521342565117001109720350707336179979398979850757419395141838110787641502238923781681036160795579826951024520648199082474749737290079453867301182236781873391918191462192574970599655121627358671318997114459656325654611647893614115806032562216173334494189908936641660879516844441389949993070767539726378807719057823540880741711586897064114486157105505199701858635301801521839737537547695943125736588795693972264860633779563343888284468832988443443416339846405589125245848518811191807207558631720695288041184956257835582629278957971032953313795694260292524468120402911599225973840088058023601590688546715519543567560136481309047743251369775526741933017428472113448117605557214267136500437036026725611966055812873343185504964292605034524640835812470201080882705952303906134326392489845333749691119937967093792316194740265114841781666567059828035231169819168367404591510903432890735417826190897803436816990444036436081237203672584619591104481471608047643731500227045595862548737104513339810751164127583807056680497068819361150372416962253970032197847057605055185314102298767222561234177638164929781939157761911482225319037726083822180494203579130836118136206486712566421817973427851903558353751026034343079757413505934643191634787814521543668877922102221401446649715754601640576203809323106400508778501002083635346603325682196273371217803829290399583861620359951935643824541946085191541559650618732270019746436407954748031082240910875588254600414505004700269249407151168758978303419856250666484144240254069730987239537766023627800425677145569123202010126660618918157874889138712538973689890519191127168123492185005436395795222908542817683143325674412130056600954390476947855308105521992989322811616037088490623529664605423639048047249156672662221261848004507422063281672475846586966068217642424362438100213670646347570637835750702209661958761084821680760498029078216121164014317259875990695328731000962507389394452289050730478898264380310131317798479224943010963752556823848430010413273241283927931539504991662324370390648788180644865718513059114368863263680176390673808395998485383181100030697757188045595520219462872511006269688323104544971235782852028190790550261572164212409170746077656409831384910732609980352583670686737568717138236899670572319459885202827904431582472582250402104772494126666164469250419674551418672542202734701324651208602076513473917406102515357064417719367310598686823437021626082056142666733057177715157050401663563097170767740119083158881611898894561827607526279736940328418950699401527225478279133034941293908917751946848171711151741684111100808016495462493420813761201046875450410889047806643408206584523412712508281076245284966909012034864757703048515988950388694304313495431164997913230488097978048166387546539336970164447916157544665732832484457946716368304652763987271051704923250867416527458107771318805793149615902274065020426650831396100419266834832267437590688640058869965598161621878097187392178385517748496307162198986923149304501232575422484450785141619412467637371479831324898483349516392527185322943305765068982306992054181348874015110825597435842677092979970986734334596284647079632431980708421154765502037002052981059031640140411997370255055944118640748596641380773986608460591955854510106621951956212720468280300594645630312001587724414344309337346283902279690002980889976721780009774917503041676426969655225657539160256188697059903069939563103747098179708116471688071600857041912838874650315863510185182902001140353404536678390473378379303314827889030041570210606825673227479939924137083013685836691511436533121170476149967083181704467575723069257824869517305712783481223304608012876070782066146070561809780021960056537062778064106416609079054938423186498294170283786912041856813343956857606595096461891026040240158894273621209010979002186694328252525430469726989461227172889536596940178657170682230739497299132604151820697890570834803344123637733798869666584490383296238247954188854133209527070935071973119594373431647707207570258437171135013697113494151103723777871535278558036850599003436948222561260291779907046381510266261011526539087832978259017490571990995350332707933496527647161811075589150248527806824799099161683886332652885153630405791707367821063993475518475103299403854636589048605486449186714199243831318547709947450854804127603436134620284296838217285739082734603639031546639701271141044229581499225970851714213493384361362791537826418480162968714731911439120570444740847181813759072116223173741880268962681059559878055775502194247708982477704280896124394222755560565291311740297992856505292139143951323504805820209180238442424336470595799406376258809126930536909770087773758784162235844958277962500665309420513245367044133949287683660273114718888818658024694742335632128051184295507556809728685135667965794268642210501852977413307855987734087155830885850410353349917251577234107769038168163135681510288117956496557378681637045907955077826286834404110991722305082435916018083693490283392458115672493916071609922305811006457259249663619058335961503676267682198833570575060270472396213836070832558844880617175296769480839931299153109923040258888481128086427270813257188534812493310512201741731389777728774288108257715403862596836673886959249683455757833700492040919255230814378482093029446701247800780411522365664163804852734374202273253226040704754021853155039842819403138783352505545252679295294241365961543974984976016472253773780973356784548082428286773069827963253353867593790369407721526732453620231460513948338839737166853820305739413779953978918768143708311035641304557501720721959836751972651105926488363727642032083132173567839518441447168558607376053661110175710729202188967913211322739849604320823825043928988008849821695801691754808898573021310584109443723488942042025708214047271665894826698929754431689321825190041023303321998097745395643474677295123839857804825433436766869262538397370874344100050736638460098810687109724164378140050485962063763576491266337615721162323034957169505535741485098052859253416278500135825968562214739723993330656185540247595211323466276563561189846934812906480860801472412126884064129608565689828483951976970694317624510593562309064255694672250113581240223384126926194338681227468023271764742430377546974612625639979388591492013277457867009701363902044483015534401391766562847232374051948842322740925094980772856221717596348576109164953451244967858390302692679831962831390627664923471485062450521599442454980832181220237602860666512059692329740124437149172287283160369191507857365566332309034821245199756514070524576839424697741146277214950601542298682805856005463182373224656988247289962077687236568298199985367387248409831578896496546197512826574783415033210991377852573472295661524284895776308989663724326954955358773373843723904762339123679660973790225185614754042448075444198482763655445496705030205283611491926201565762110373908549872315128053098022531772708855797390366024885811438081987333430280301712069815539798295851026516556878459754368856358446858427435288079983384948026410166915389053133810250041401981103523026652359898366951135236834310676405514569770687903905112178225809915337877115579847527083582933748284240892639950516081313875214721075142043558055923361949374426276151693609526224579352279977452612226064830509285214060435048922128654359504540300806942439314767577430583463597558199497858713671094469965903640891564747236175026986547642005847301633237784809011995286793022730852951764479159720676183667587487402360370532097959199496924720754783439387511312387321754562650358159863227847100437070323284005996513460351441990346649271894940116524012723189033551703215509142509756822585089286007728838367604246594254668301505049344482689195052304783461324997377807783762380238461668727240485498156743741377618192028752830955155994959645110507304534841152581634767748063514555433167697419389288910205053051600248526279397473898958817825447108102559208747234409573942940279106511911008217557376406595162050498751643304039615181313228697620034164185842625461541422991083010551998823883332116843791441503507953787179647681507163378520301513933940587943537022115831721396778537316476685394356365299523995110362556299247175212026037094531113861239753511283061842122328691906781822856900992087170872301980490211566969625764038064154620244969223484386385177149280871168924114115203146957754261649881362645307720214405041887663223700247605452254830972203371212008526146090927817706157212027231180072000357725026263462426750226103763972671499395432788183688805352602442701328176145071253578899980375279345634795633125300200206602351303727910151718605634438144147548609617194264410664125239238741419804608361842891446775370685942550156291018092267185492952792069717377061827022269276535113430113908289986143326875293917158333818265138796455790375216274949024809517572679064704209678019071887098618768376948728499725187243851159706166340884426937099393023180538018017072825580659543445499348586214103686739179407697351560262145466785890608640572447061911653958076068218435433729221446515435470588030760771832728159149278366535301915640263990033480298027711726467608283594886043430268274009035482965124954600283031055091118983977799038303756888735084722742830893347338533393637394325417291869708023318617075849659319413367816307596163592626865879299097460312404911119732828766253919741048087448719669948905911479017010816765320748166678880654939455472028917254574085798146011591723662686740599495921637768193649418062172786144570963508558115316427718529211011815796845412323146444753007092121183163619464820294257346422862619821638684347996523266096100154848325531358323099819175907502606011021757170823094602569972161107315863691204724789389308900891614477217453184558291922977754700886984417046784313107827835864562588599436647509458859129487627801561289594488523339481965500090235847521617798608097718625573294392822697436588531975439847613844328188369335960781387649438731518120205574777416428259128562921883481260596996245477372672236115866966977547829397003800054187708946727652144003309597583526335216312304013343332284880547315244173855952032223198571965860445570533955226440578329431819131640941047859414323043060625194455411810097999744699329917613959282160645861874248464366696423344155053039918221263601526784441424011849589277674993365909999743734822109192862589879289430502682168738538223279758254952709980683748335727238908872660403236830858037758663773314552784516782370608258946996210838364902989874754267146744750681508304418273193248786683041402698229675999820803250069187314623022346495826473837972011198870242482757654512971756095762371879910815503300917754031876912717564954957654773131130030022136452151051348605144072049550956833331027501395490238660744181592557820039964850422423118411436538390099773920091264383425346393173090518951810712607947070380446805479746211954117400918455582520302177411237464325832417854848090216373402338424478523672682184801998728543274156560291980229815049296327496162959288175071425731325374281033282224528441958678858927584841132987720639710582540732474051867353872108853091771858227210277366950224901813975871871867908923424958580413418263592505016091539898655279086934233886673049464388788524691204063513182041963101958447830386635931648148438632240752754867717736942709368666686529047456298665783021796691324622228343023620375167879701357645989881887230340968214386076634781436781484949540402753854253356550924008189452580358806381072110527625612088065763428608359632225745882827685444706341333592990832679253460742159590070843977910382602909965602436591286123914373829042654611444363078438983763840648897376262055261340619162341129663939487535023636658766042521448378239252016008416502808285143121976487270251662508639783003772363802958661844662730852566201140602046962217834274918381824085129930599719203869133164350963707224849444517290828152118493763318526557163400633108618581273495693190223046814948173540066681789044677179738559766233028690275825808373676225421868441098439969750350748709221618306503370833041570615752137125954152552307549120701554672818850970739046759853551859955234979140614533912326229563257830108840228098767281285008220970287211414198683305098537833914363668474554577438161634942204044222235426403120723855587524949966226877693767743338030386206666227248480648587055307120155331005523021771833185740217228700034850381598791449106508691703659808372739807162052116460568155146706857107279477640569591489841838297148858195646505120348651504444726688330735973816676630065339472081456982687261784478566038339244355503448734712888021675181801311237267534750826089471797171181264471495801604365850775208542277764051407093351985574058006634792916841917193680369385707320714196983538059588772048238968681470408175038126029351216944875805419714241398855575439232725882902503454144805076836016941397608835804687293898230116928357006544748874586581974887683843418740046014265647747998901251333660212272677245435135643002359796391078796947343341211036117955493869714906286239871249150477113705944154862665675154283862031159099177913421485409348784989727309876257910147369779245544280374838525057032817610225177678969642514275570133714864663801037595973473852435808819079991881905531734351554219396825311064208775860260131446911132967222338776986032412023824013772272122490368401515759451895630903385935147989915660543348646907793422154536782872899257217134933568609472013448587645859219089044571023251997804074736899546397943367749401775459057438465800562941026112891290033694151980724783082743900952650099390223562336395941683450222308571858319969257618870902216843070449380164278772062331542472952112751571290520249807023249427964885989789876257462331822686259068251813029607913054747563754448402783038867290197288798185392562012360736241972360957795144620303794046293774331681319001272790370742119987189730627780218885080519323405943630199453224805560118104274263663003266076843735038207072948911906593476929617753793044817042112745400472248119226073339410117776352579641296881658429948692674536639384742173466200393362834711252540465972369418125846898513988424991632955168741690580505043624231760511301969399434857255308581134447481356222792435824547143759793962378766263502993079191766985428868555356516551992972917641683816358995023657032036328878992674298566965318938790553004003878332418635021027433344744736382169317156313164980043088669468484167635910673975685995512444541653078960864987240315799157765178815300241876574773031736395496135717650159630174795615782541485597634896568651557936552632600605400121164823757314181540097682747945852536030152348937076614907735878347225805162078273142447598373349772903606218814068599873407599782927596413703182472235733667594408566516516576942078000122962037407305087463999292378077793940407105523112052686682027913981180662271511407377198574150871168488384429379811903695230364607629991496202898614727818674879708989440388379047067629376533890089177111886107599325644861673736030852451489775380517011749192551843376201787485971076707486285565160719956512721681755296870272118125301206983448729754597794487737988920956053284929961473291128390566524541676782778984264603674710401739346887285121099341108576991736109925698787388709289565351531100112103685253263442340365734489541023916564864623929924349816341448078749668874493015494166818533909198896748633910881744535753995187584264066167239153404173434036469263418308360370363726498799336563750077371169454141496678071894004043310843499780348107158424332981998938493570797652969989415569725380975027813606147982561297780938093198455506877093195824728906667301921264814814771963549171611932877553929688291016894014921366874765059659098552578525087954520037589531379704591749622528995528917564089025960666600569960970078520131303269493448363077407801127174211019386905667559699534382498181734187575061214972021709292287805129008071955940390582108122140946803619260390574910255690164651354989898861625269804760853050971485907034670248975757281958481826285307854327228352829205033739845734166928843274555802983812729315962177843191802509270668105754396954858445271003301265262101141184400971138319181497063540887548228755633543905624011622582481766531694575755435179006297037205430223658728032336013542737972887387309310441105217629117169242231735942453436106986086135121175568868402896600589897588187857504743083754789924820880958020633190879642724865811797446682012968313514067086450796128822653711744359213789256781252130284746005841123993005275423984004935802736163854721415677263225074649761424544807407635983333009401420300245302681268413999603893198582592023488255849392619287307624829776564449914150102882376531635733878222546660764615515405675348855014089675856382750249168869863626277182874062752980513355439300376597314362468073507944410214471035533283701615919844077331136610885513553921359605192219263820866216081329051334390922156351094383968942656024773103911834927475287564547483523253249550281281956894761437470765355989584824337473371344972278617017260204366279931000076684929871051806126001251082012554257185798448085487823310996816920663876938760230163576139107523931443252542073882515851098107051472226485174386935136072846488489170943737453779187692575706101886433662767851775598456823638869434477763568626545538806891451067073422954116055174457377281839749425160447520943895049072640031932634892495981785649233339721890493914416762595767274608157233831948619389227470956206059321400085124390333501147454989559215832640048469620301985756817530957399627573412958287066967677907908189998413963980108307238369021209790700199249128062155441123690629900434599045736031543131716959826952815758414258219426673944417777464815011395989235588967590050580521907357230217741696542752013045756143267696581078551572452635556420949066257766483968398254638009373578167838868730822611746595379847738444161401039008449248845997295178749629272095294048090199216579072737891128178145364384638994108966730449822153731935741923570075884938398030081671036746832464766176530614972160372513455428498175484859638636824492241032196027231772534829160893316797800943722156881659577704001529545752856397035847965514217563206356835052301810908427090665320399817058471907339423185250640044351027121807674055655498475328616476856003181738644378507689212091436527451022639481002766210816817176288168084005559509638654734947291816597422649855859881855391052309621178153053674164941371282465425861883874735369175299209551816093072888919258370534614632214699555966454167474090572684778820490582128515856837411105102786317369129541734986060370971824456898210005447021817637190303286549476264606308870394292967636488474443463524898064864058184117833449626452271640980132759402625349726319385617677620297785485198043190431058220877464849448079381770264464504089093279258516938122551526537536424727052146206947921282658816971581597403486083806637816036934963239435874156958110592971230149341141865660282016240160434142649603695267596500416408022321050868865034792574439250099644583725098743260826409086996458859525568285888605973343829195659537092017696436202586375432190296817672024826818339167661668168012019914371634639241135052730033184203439507401377121159452729247651351485470325642428006221915644638383762357904643092417995327808747632546888777570051279894350059780356707758962914893585494018626663384974534117897017312503426554018552634225794518072677685226076688335890821525204131188294728755004341110884054563022386204200837130631282127596490311837095678812106466401139978036501310289967947289880434667440831734523329667088533056636109677266192534366963828786042291684530544843628997996635684631549257185159014434178463348810674510156308964208878515070746355417983132986545758680143620198137349449278162556122994094946288482838017150132012238296730931282092824106050041839553638693813890427762392172279446464570279680987320773373391329331626500097714783312045907392905258014876208566601885195477648762692311851483613717227629047950836069880949295218177156782082068824743032703504582092494889020345849047141907999822200599988168676360840152474338464340818076215459558803162085797068574798944249625131141952870177948847860906864643715041037455013055027684514333649833400698777825131390813003754185743599958811650675039587388090723064536895040004763584759442949967297188347600498894888457238007617585535647520344805725372429322940468627545150157858924028214720324511698338457293304486523355955102121452839241207932366015114044016959184414670097216810223253579013634513956409465543495738822046963112733633687195773990481592879712231860746235153173035679634422866519083477135178738381650155877262465018642410775400873673414568377431738665739784713480848713005667872464893960045472856792894293406136930667582729072559024293825159085664682557533741656858921226689555079298278962154007682368019687752553696538773752903909503352625736463641885130290098867217703330706413330897745264893662207373887368972983579816923374544030162978879055717488545860054919704800312512788580828761221789113160866802549323474671618444791354069266910908509533979483286071681357535350736160693463513366788950715457573246537932173772874857080167550145151666889932036072488974719494454532165391231634629767510965587175720744505380790327495547886259056135625153161910237726705947269639016686142520395835347575873199676712615448520389666180830547614091034684941685756879400219258975550780858838769167152609902094388397503695286443989150405953799366047644137889436670040866791069779400997825235236048751429812714329054279206345560414043473795405500464250856946759877655561963650804467456735901328034941305406786792360939741524970849084938141222718021706101013423626454068835003204499731192451052126567783637132324958397725965366645609485470832560732819486894109314967908335061029719417140688550223966084827931611268545170892090934727494447994728263947200638311852777921522354415822419143504169695518493589903768448092022589402556571397261217503977643856977351243587706483944868224368592736619317952367353933282754203753731569462806699948121728960790024945419853664122804048330826688489671762505148077041290003195238496192485576657187130277311563538271393654926559322721597093599982689413018450879565911095310957480346149630334852149937355651168439838501104403054946678791291370935244054872875814037950685533712538174095844964414907992203024219085082542045814984749203433126890916484007105928679649524468687599938583767448752491695260380861283930168063805327648190557579062530088265729190698056678097928207148239901784160859047423501895116278629494772264701568532165272461337543117665213120972414234285725285790933778533836982668873345604361527967980992071737901977479058570441932791998509094219501914820893954465972936042135089731316095613779382660942280118030951080964889070184861085749177725706827581672762413370456869396442227039981312225279490610499612222097017877316407550978086317505696932815783375578201208246043910909249896716367061275314141818645958203850415143598310824773951074417493533953262641478348603832633671956705878269356412994136874429335015407043635301441950940611565230186107520111284444920919859987447870931017326401927216703819796947136004679656692559412146748575990720145155576097878296072681844526518358896760938141074458559442859646748463119595324938672453749423722671217896209286766342250215525257088637972547138355579702052722034724523559764947916643596305624299565011659461294128736940534675371457035377419551805660269088473016698285151561358303966393112513667114257250765300723672185415246868518677494670047021771631437220102330289580480587142387962165147674097331711415441110288145583009481146064917031940260322642711458758604080343018911092546674654393490821400877929594341470989301538689704980668087749265783936003115673646441832653099524709505273270699788616393056260660906513757126935910100015705052627110358624840651025057699452110988759267959674929215660583569212148527961684778006096588107430879569846423201634480558029020832376400353880841138285730164859249850932938250387561952365226477317894044506933311298678331260676724085378655275536667545035594427716542906334520340413735910786445403267537154125932241091229586199372767084326276051834852792638191312544176710240818497720360178210574030243410801557651664946411624517469674548334649750220294003289142121167986217009659556192939644848760851100651146963767691387569832488743430792181628864194322751273610738283396682660238366821906111679998239474319688525210721855285986636148862900104114904078141606772710266612257366745343253898789027932512552866331675899953981938204221315762493906287200243233259897782236447182733320566035704472585839540777829888003054591590640701172681027962461175455419232351082061398867613562841630525968355433785184834470870299735912272574263927310055086225587514374347466860107435563764286690663045298476275079932203068561640525609080852565483896052418052354301291827072713566661883862942416332493219415661632260755403478433637493246468823703811378714322820728873713083958082428325874623730802679399910400372477072418988845667039307005125612140490993522204122207029663622333940037668808294459826886588429661924764776569612781819337720048431749663163201750716055335496557240577921690372992602480360199840033697169638478282157359748073362207333555981339254152410136865201796181517264653944545501891646999415229650968543164636231038535733174205773536142953564707879536335905957592487189920070758490986656919029810050352398250315167109772378964318247091103969384140033979049874279679264450223266099364459508111941699224806642833207252258653578526838900944776656825058033943770464207316803620079624745132161454806787365138163997355257947432752248718129699068178306768955670958984912210860440286850717676705203981352646292782966599358055188933465554347056232212465109966043747376061580658889969512321151721939277302253099238968729614870152716430869876047973070507767163247551524892337874512539251865220339836506243443124292019196000283434701462699233689437319145124329576368861881666007991440096200967048752155799335026854701686261847934300276870644191118221937519496494547807429063582809396791140708998250303136723593176900672547655769611362379969753087192681400848115622351741975345314876354391802160086248900044651863470937655583407196211063298399947942393632249257433536125074850157750835055843896902942264955271418855964050679107714233574634122090173071307251894230686640548339355609227859771578717727844026746963558444594636287713844906679065024549045339787105439221821307726537318337690470280040266926733396191163810246051893570523071639571002387461871018144051828156411840970418710205802949286551693494949262524890459679197908653933953778631412074356871023940392560771966236782748469543677964844173727123187843234013189123519569507015949805432818112938917754970789845689577354327286639683075519262041380713976029913420699389595112626523525366179871329365213078775958924067860372296070375452092377687308692298749627012522482325604306628363638672534193342605265197622710266297265163418224142087353223045744851323711180068181105694040159319940582630719667204592067322885722811473114328382465466672407013883738387734266238455709316789728860933965529159846823136960624613876013033153900883450422631984600613139414562732790151548936696691403983970952747508560918277090244564805280160589401365135936277742461845701495420123540247563902932463543399620563708388612466297337866154299191408149038237739504150093736005546791545181213467700701456388719484092190150689518743198603009551415591679623399998420243547536323860238740800328878491751751282808792963380617163266067069139943573658124172767872223052405685285607271571539364647289396780390657737745603518833895356839536942824206762455693068675587493838046657782128050986897613091107654585290652384740235548393529212230635219986730714635921080044607448278368487907497879086034343246191471056121601737627974628618958526830959264370668266006178029418777298282971456986714670652729086013864927795967348971384706180487350494533117497496068669331064625908357646936448363008734449557655613666496477111267013585741971409784556042746519418899794585121582217322822421091024948504050547788471228546612577650680488473117133529610080575101462758273431457885614335823206714685880069249111193179843705944756483410533617897693146185989375976823627390903033691239842748893495336112731238757583092037078031597502605284387686514032071469969975513923738771024523409724462213425582716765608959455567421640088666130493562203507716046059336201951218494610713963256414267000377769260854507188007412714626228784458710295278379599042484702022129230798066882530817872054298754625804984991773265685617831409445146616632890511236437412129797488188798258924188598318684257811198414382051657151678087100423761853854528948680927739032034482229969741790167645211532111093308910296294041801745907243906489075874244472933951434353184830071170579296373766739570222453071915271765811986852644496688980388141902369374342036898245095523737370105487632849335599880899905397070841306794178986010812960762719610744860525848633749978111556174793342286732125931448634848179141879515764262283434977123175713136080853254658566016839666143544552732952120096089505698923991491381866962011561119866329812544766942806108854535280317399648997611178984240479403049581577172056391969397653981333598189212923830435887930790140511752246334283684942378399968870693703576235852551805605264071086566653101134057184266622531997069861745200623422440499756103886300131868711814849520207547863137416447338381931819223926531345738567665648905282057010545870928187123762829563945737763198279619143165714150771592746182954812962416691933981965981584697145130347323274885431317196970846112623282138056556442474274682804699501526661047479132279428920705946142072165796158152257737060268679081732334405313071181061102710452895022153883731460215511390254307726764225094847916896941853530742138508920249089891480002284649845803208943515050051835446234071207994995283937391520610790136253275550966477704973930625534751689135955052264164286996755689055638808917074680252958410371683643074557433992306643547673869308825317265708565836232169621575695746380754496370611931378261135318848950080740766189089788747706512128045513358151920221107319940460275986824434668411135050084092446132096267237511892279658052783698105702949452781211339451320925074604449169853848397259389037159993690736890200228821749469324151844330835266940129271923998509313438029838599449153431361246508599569364158643259862534117242518647559770304077753098507123908287604065697706540549381338697053281541800583757459821471664772085885644141399777427228051359548692682306434809395844149704876605821652613440773834225884097326954343853495245876547558634512709309205265351302148579737436962562340042368420594813180485679027126700651219765260401972149158010040178724845946917792269989419324730967085922203620516744483063478383509905010135557998996810647472045286388260922058027758147103847162944614328208540437431160136140077226389762269187623353143796437712832180871201989408453723512801809596993841955781959431499892791901721724690709114397593901191730356694428215686501575807978449781003323864235018658376748199447261710945338050283677427742338582093396955232525582147621521739579306977762662000692493313434056066162393919875461569663681775346899657367867118332084558287072709619700846504618456849495520203176777728321392910114441540985465500148905270305264812040485344420870514529427425554691382083197272942139954550342673952831647570305229538400785409013835648829239690108863089574971767442997826390435992752720200071946717868244587783579166936017766866416565253931769875201244090116318181502764204459950297023892663646738745756032746064195881093915627136495153814292746277529940317407763140150443770527136591701083011615604627233418291864972855283259603714467447486697129700098609369445804156452189546839160933002285791673556004929340053946239681344175168486078673043381321067878204107936288873747578398260095341859551388106600786943662291909512679660743831177785454366756898615495938678958369807690100178990480553593165832709800618051874858603723552805081575945350508090932566688597419877506536945081238121002111415483687020790060592113652092538057624465971880268024206105619290143583056824525729154501812140536023391076395575471270815891015533352950604781719693095426363533884011308450149600681248239476552168304723126435503659138384369801949642182805896303772001300967220900575861767202197558190042793563469822150338637246174624391753538916868165024698332988660352463936191627453325307583360800324597926338966166739270593608643179356585329159321278101237982214307851213925179366355213141757524946360254603466954219413959165679629554390878161455002024382456767318379732241484312798810385113268071022792984432848413897021720956314560036946582688094883647001295578038640412563743236657668770201490502295424202852742604421833609982414490875196739797554866366689554737245862631525542816966214569142976026954325438970405474120948187929567968567317665313142540839174414977518912038910340618620557522604677454916695687922849488119384637576351057135306387352722580157810497300682761828393241391104312358272352052797153450580387158186322926171140383340006675736618876526311945133413192591284495706937251470991599856217537573318995270667144656872999035250326443168561276268158913194810284842278342203956786403099288483590380110359685625761864003478366984067131295429867605632879694347554736703263625311542618706732207399360941288741800414168932157991774782331869992137667254036508627854048121580477923750200421937570414461870310471048937495418646000899657233808406429438854929082715809133259094932883382078307927057670248670653979583429385329208127074618971038942766957797964247341485154133191510685109682949255771427654205150870100020755769700041927568042278156603789961989944311250009013828018697487392760519088903328223944442474219630273373262881543745102220094615620495773862217940496746650367653514550765060983309454811380070768700694854081924062309120948018497155114941013907484574132679499961845715325521472596646585614606460146244570554388393938926184795260731592183273400878871693175794973498743608700134165799960264263875045020422926261307843799516943969490644791202499507724143203147469972795173433146524438848781692362935425062121542877349778164154578889892159443141050487543343337146969430388780605837678852200045082075267076692047938285725738345375745424515329824919273597621150983605692212718879019963120196200206124554934960370109871594267698892153340889866541895050632113434448449291489767279940325114424137709831553234842129598790971604317398454264583211854773238194775140936019065696221205603013900084405121948180844318097005631655722549283610877110577819194689603413615047104769067815061072065084743424017609161664822756415043858603102912690747337485974098301103116086589012267325166736125676721092405428674640885243890296343098354038421712059802846815525143176681363274753504447777876884275152223087218809181896966715634552668066658398349441280853733129584098724925134926997366295606151625037275224440953840616707308276826627483562132066660738154159168150275688895125297839838592475938243864598095052686239185434271993468616489649683938307252239102982847893768735472411189232598018929786383075459702813750198810762826482247089697304129943112347884994765245557215447633630413115952967741823726042883454264028850081978227770241766718983345622334114933926827802301628223437336817992982890184935252291874054459255212495898148295909306092668662739579278851043624923373696765843056105526416876228972486893548914382452150309403749700128414363660679095842965031740352477537297100650705064530709451645462671471312658371835002877151413108915209986789788172227308446861991978174258606992728383646350600959882819527130600608908672045147524685893439465068970719527663323775079860956463492018175176086692842960671600754958079267593892211913722707888816990414871787575791173362763267040620901331096991459505822477797207105220295771161835511136543614953171888507370169662978561461186828447476651737180478977083980580681183380049239213673442588517274788212960869993872364771354858203338450343837765569415292933648393246985865991523290789290017370725385407440782553042380142652741689041305204396191022484314830679063445750958995335809038816556348566081983716112740878576531321046869582594799192018804921321504404914351221884439367520205232068864195943891964265831306027172999751426878053493979144441884194348152334608699987246084972360467538407374270907051162868353518330059290953368808226134639547593048556191171413380606970819723416167487964104534036672234012522300505822570359465954948137395756401675773995631492066460920675114266356108014319174047984912202145935288401209155963593341009482776035073454365489798391124190714498538606328705723335267526197964895916454325233642771901572123654064128494565386412350138252789848691054829820928058451766086503988497694878978364957785453232492325913611381417284994156227826070078494936161241746226476197732355603696355925269440829737914312781454135703360402143606851522815618216129739413377906171367039053758352442416075451413462780747091948847957530032400120351138307938539458703218253981508508450837058275958569704862000650918854377694483476804057358273635858647693895193168219963042103787626398089922948899679570174898929349445900209515457246063246097913534930114716930539585704679495249827155702526748121251439364236559411778757373008285219379794894795138470325363238618638702068055362923687672839971596671642795779151721841436689296708913720072443628261462148978160009509366919807741678945493296761907158600008977474969247387509818606465272526752714908387105406189574464945219131392865200094981455575681613023413107897778983187615852262575878647362127335713019017579096295142202998699860193454516102627801538228289915246399062790636962693060533882205797666718803770811991637221199777652647470377254452220498054934672583237567169723378332538324467197571421682874231601875965724307424976567756969027526983290300528750559049635218707325976106860647293895967814124568989980879720504481037949946623992614664337956027716417174659419276592320829012563466557688130084715757473025521841684117196422029268639167209367532709923539556542386768801691442838945772839126256792936702502294656334544958037240178022094598240771121935742207754977259212405425493966448634576662847781323377734870768265414276532042478443892126113075288853055566387999633814679150690816775179852602301794982043946860286757973708987140551589804027067054516277983747572350774609642502468043165391701130725126663753675326871680724724317798524157490421040951604548359166285504254593725278721613922286399344939923044091184714325079155767420543548463705665899532775819588362441545670051789793173248859984898050449528768339351107954866779166182478814398092587522090770023253704196146824509891793729700842837574263499615621002370117199678829454731895330501424181229210996631830711022487316824650313618423384726441948795942847369382550716652389885179351089562996209153142253122712621019931859453984152716237513338685400734694487649787520498416997618943709889703783616368392770067892693832239999435498756264630548979966784904163810729017280330287492344661078380601566582834324636166840777016833786180650924098570958746885012214062780293348417858616411971288863801138768371478796372527894650551514532432329770786539804829481650585339376901006600553771297274325769025575774752742654137842363006683345708219076129703803461889863663526201486243874305095860667722853738129522393903490164885075325410755693751516325430515255451613258771263099849889370416482822923891268059858669511157420929427826542492009286873339561875828553743926084980574729720352005198965487203809722887586129186913141859418686255665959245744277306195006762210265031644974196957293308389090089485730655155338980306205190933676527903008992871850307020949303464343984726217639295353953290311291820068997552951841033683489000259998050067015539496573009764179864106119645354479844843566897372874937369774947656180852922922040722781682052328196388150053881236900147111188160726696529869687976706818155358211130356099492298275955179242231446770341953321318401127699831531371961316454985449622468488851553874634514413452253773248831000412016984079408274322443093768517633596419296814651508908657579064385417383789875924901826541275877496310120735814848301584672575721530387567331461189054074394568251845245018238397380636308978684398218887781128745872846410656191664398718219536311375598957247993765253257469082193423927156929305900999330359360222169198248482761334869762911254519720749985165239106224016847499071445237282101603574653679637011756962045747281345358827697904579078234781227884194082678378694079882244317919447599851603017573551066984044893966491382346282138470181979750014318705443335436088076444363326329176689472167316464581137229888922936619903422673961967150441977375626072343449920636693272041988802314164867754437828114193590266624012151053645207858447035439224307921388439671632248031797662651775810885881319937019499573297053440983118302118148100923807320956413333113281960993785552702067614554623471906848578050180513585724817605717737715271171996499352813304506475553927587968930504847861769321237174310281475166659904663948797998610779878038646219299279000395479787228841389371165223401155769318552051981566467388812152520621509055655595212938337281179441282730741560534012805480566884034699518442310235231248015539096019537250120829601588533109601154182499893880833113981649701345937111556628132350223252930828980373665585434532672766860635798216962659920325354764476162629893822019451566546342151048423352332924003123669923188239105519422298479146353638132275717368525918137861383973177851397735456640019345625060114288514035445560099280565163889503735810049050277461647737486708444256852754381772961048692602672326218953315701235576085730760520250210120891477083249246662009825877571184835647437595255576103765647305877900242724729970659061888558332805179198569510179152458897671399384277371562422538634766956078786629834414625074711751791372089420902425274496163204970195042153322461402980658124308055367538081396831993560223818521294212524626714691678773978802786249873502835807291986816994483336675632216815251707987363343483165669658723846219368765559053652799116584470400437295899698772335548690614541177308309976513659024490605038576119487932596514201213695221704474384075652997501736911101980199444214484801980990615309644356670823613796153479764337353785065105222658418014904013154791780893160250200252435048139400486014806390054345036169298261964749839343999989547067625006697331265657153453881226026579383134898438069951448600426092801177576743618452344340932380075755235933466945768444320563942184386667589537476833265051667883237459558995444848317897792802991706252417575836287789729122572849169533661237043739733755528695403753610466536838933471536574676873794938727097995823350564367265903981008414803184520627171178071302552584131434000448011995159433510285713714409575621365024492378564778283612880102596792848785771033471874819461689599805534511084805624889717472206890997517112274250606585541958726946989622171547237513992774098186908845255127576731895698443793294982831891622897984770890377279400027799568880874968400967079453828560800890396013298611717256847315185305164254555637996691294571776948765642546251261933502435813680010534311297657818913173333864003504910701049305015540267000044372401798412700371549238303473708438464162758754256816025866239702726637206660945155461222169534362703270607942965223432838897069724308007510972164741945176432302255318781686487420138507155302819278759732579655689756321439890932576178852807917146220747286760147254445233112288580967303731451196033876543363607514431569998327138083113925962259134598648423571400228482559128085228121406976828931286382570118145026347098393425281478174909533046288622080507438618566756621171834835713385438350054474212266278350165261411902433066398772803401193976294991886722666725226628334175617783777628068002656010977856727720549108402955291242724488374150696634670104689991922669848064222361444018814522169051236741719070828960052294000131481554851014020695616598243355685243275151904342355574670438811442162399199529348939785597990474143535458166031631638913679908923621414634906848648721951929731906479167163246867233845257699458148410100124649406705427940511149602662841631588590718441859807345169864919600216945210295303967497293422476911735875769322297003499600564283492306789116266338288161674050475864869041281822642308398511183494793896206066251634266409021103695669007172364788505575354108813718146882907698942341196819020953200976199002280942021109587993161124200714005605316551826206409001751542451287481348065624447209818324691149946030502977540200640723613392306291476998250674575808874698645228879872563939251442603462210649970182303821637162661300828357405383994364436463074918388253272723855254355347498620398896446482667639160998335034585507554707937892932189584013157143757808515811100812838816005352733949589572535082681568418803104793096558678934536142677936124120370491250270402709581636404436776873956007864019682736378639746159060895262369584671389981162138776374414274332991730012111214915853493997292731370293447071213336906241376460454843289334981680970031484861999833480383696141934887218872300512995789511792408712213289996330299605919580325927490973476909281652524948094850910765685513497165099230601976927495634581222145300965009148888084226012773783271548315638798122416579394094120207967949886638382542254689163230172228556909301916881538115370285251695314452228675781959050542108289197465737396550511229066377743557560199152716493887197212241136476982959496248155312852615351104991636594780252701073173136352037539973125158709702935679948582352107753466810360077982007038719707073274428543286012358650457688138630200664571059351014875133802839361659049516481705370108717833059290684101232564807908022787426309769922703272595932817728460565114542650481429280454984070246335751048405814753278226946016643862974753520609204131831513572672398432698347144093948510707360046647754163604748219835734020644219251683240033666674203469295506465785562811833551501833419310379622925163936449247501045899234224635925218466386596048323944843138088461613775750150218931099585699903394597599289062440322072636114643272326941759933307809956110703906216940316153075031666650231819899894178105636715156775024447323020302502250186019498345218333125142907881820661176224953529333671438347244483730181057598747881887135745538230301676109679273039017886071866760398916198235873428662915158117806858388000602888816007027599676529291297288508370014433927663162933537723443672106568760542554916561203133377911556283081999158913492068839540312030976025848045412730306884178426263984641473534893750506298798975625435754650490280153300240556316051261055467786929790782928867786205996551142928074717798778025812372989941822977975608111786739615977762119205986650419666114056807782968556143330997386009113335583780296660630922698859889633048511825773443105766403822486209080841514546810200677034358141070184477722393288767808697902626827167094014673609197812795419620095541960861931565715018840481948032487190205365510287811340460608396618830007469447133130558142200697584315513865626877355651371687859968865715429251156506512329198476275378292446038430390826193584099363961236345274094375467865825780318235185561339054761914067864205537556461328662899383036093733692837483091118643946150455503500590487438127451840164297809540605227175669051059162450454947625926030220654037081135118967111781584907914700967302822273515907125017131528460200433207429934930701000518928608486031358030015430701949561276876002860921320338990254612795333739870276894067879896939888172211061689736514844244832102614079281412103228601906973631082726298491796418865784293918282680873158073231960132213308214335804717619295972159633809337886023817488333543784978629360079218170454415694494245397907493315146044643177523094778004399220131967193886513275289529863229117354166639472605198428554493554505821550844577929413846777829104708155741813848764042960272399650675973538162236438195454792578345982089631477484727668202329471226209560756133350174283320720853297756723765344918273221931166766798908640534006108141168776342611618000020717673644501259120429360367004470439369394086239611791142085122928962511884854312194775168047912755616297650888989211676684567046905114655584459687402825253196052883234917000359234262898176457690609123177672248718688834937428235261303238605492031496563498799588360301240597738183007882798753676052643624894112850146729765036523760558868217749358586446539146004563625061556871196561927976065320085583808122488188192899950781366445588102329578621458681593227441307909923161149733068327683570517436039292876705708921511622175481988580600432088686538338412808633407187852397359874905184122188064113653608321640012142768325944904939336707386612989620429631518437988493235858134661552581204010428537277219690101611493727934899092278583051355117887331389755298831251249849242572327966698500224173953907565747810759487864326244635694241046593733263014745280452353016743843953353381464681570898180168970698694851716938620611731816405772350979726273464351088330897544428769965734294177723329763934583374919359657361268203904590802078939193703623086400223599357765661551047577604696883359006126361021554285429322910345564109851211020795315831789163455863953105435575750401916978732767542092989048240975042139334979374265944690565029126601824014127649443293432187133867505231628290749996845866845418958482628325848495012453129637835282440812274761753679959487052931598200466926156776055064850608436439838776511625488839178198235187687823119473570421014502642012538877792986450234243289620505092282722552298542716589674615335677632684878573530999700285672058043496768897138599364469827260742913457923619503169885743901534141730499187034677962650899880807347301190578873597054091135790098885370585836607081017379282900511389600322845087856609691091161538443238833513440547427169110838639560212958494918480426342685032666687565275298325408684705902000827174490814740308081918286250820648522728387099628447393317642269983377193984844227795841078756680986864008609248792006885701710228482770589712377467941027220367082929956518846431802540435569720863446582989463581591554918178046435452159315280904563087337364043468171603714459639123929242511997864076908136414163314423622598620144582681308147863061298644634731459275945421460168288950411727484606292819127604233815678066992352364790216250259443844456404254775252713607917049406105240667944126937796489542809754791229639092274519938103242260567784034252257631325736760124843242710020430270290462760442198463075862598665763830432750137614620170334815274213401682184825807563033113234468319608461899723260110457095592925854583880499784133260226593245535135692860943611467757755833421756695521076348621956246409227092501883979184933914187128177041879851436169614960824174405936415442447635375139836984212837566684234681859006225700311153880545472429750032176833189516938156992006876981823047576176036217818064730511118645343639189821631630565476035878474152452896270117177407152319785330283383897422516002970748623364425706971277136418994660567979981844473757831809648609134019614959621339192073880776534091158773159994753896434459565776905756990321082575001242153173719057794798540548750681673739090851596931999399993695307668196458301451196867480295558224482574863328716725371808943881578905424194217185304946894759347558302681291499389287680360396312157096681525664843189356080296210805766444127739111296728299911349041244799811611761209867625322350524179691427848441343397689936540821850188527647073618921646516476839339820780353837090280935052820492048858362850381001607688707988599874218260045885637398741976190378866095528156164976593587687678397608806758344757803080251740064700027155850016263471920618584059517061592549852749853007039213801131941713006822900154195612333070334002361156539844515169910644866806376852082705153135680049611078501367504021926422720136133018773265347278488017959201428391115059576438690221138494037969253939608118799980527401655450655853958105166995075417174775347246297098243820523963093740772629861856439980379212678031445673353221957767011728780617714550220148206642232397865141752216360667562567623053752544460563039599424642060360661436072995862567674250509065018193005418231419839117445636370709077499881076239010295678521300346718744075738100669318854147972337790799483298356271912484483160718273758203851188193521110629978113307546417109047486672115889243247451770881918268837829186566206548089642071781761202850994454944075702789636918836420417707576408348813170143844999818294367017465108775094536040427817490581173854062789395880951796584500975431013576545577950477963124974312072750074519045349425258983086685490769809238920048602292463078869191070590389867657490170278897726621911251998134523829839314191848496043405186445165636831633630297053682606652963080553894526023558969185187683175802434207515681344097673631665557263712198714429908865644453603162069650619688921396458266242986302699487915662508627306086203267445193290183102967623071426693886259326320126606719681219235653018143439719691244554863285513922339751097914293994229673129133436048634225280104860536628196469104939598609297573469337440465240441702530824045520386790396503559576365448285445223941271918068854145180977803014620557088644911165528575160242601436793376545923168774833932479475189263163907294457527606702638838480672315612201475826130682711254923201263156043306504227639458093679351424003365712632517446873242815369236753757111348887476858038511509843608323665711744422233858484452137464207984420719486627960291120196737419593832671441905880881192077814923580945393947317181292490798080091463942357033153247976164025143073237161301799125887807704079487468509221390040129223869807736875158035060801439739979005259941723615549261611747606530857091334153150675197260022785450517816356515946364060197288838236446940327930800386353293744510551986873210383146600266950764957919988635931041957370614411346171585289003535510464138511468506673570686429764134548409245628238572130876952344518437931089960063277807854102376760450481122648481969895593421354265702458720453339309780512203030934504029694655215788418275927746856405121732622380422415837923329901493724590945225732743142755698052462852649567756432542894816904069400941537631530798389391580333601441029834705402791203852585468242937219299324610129584910178161191157954406799974835905147093896565265998638878295809770973610974940175919783369065863772961597373762776561207103573117310756878194169985625567098951023060690058760233089520356966201423561557025004128135061333757117832678895837238069517448528382346787361984899470709864186605215085648326954263484212606209304655881608759502196677316744033268037361245739230823359471400774232286450772620682570240725737229986998365338924172925461382677312828523655452188058032565940958188627520564804406267877413823601167830953721889605542530826073724059860984274117757164146193577973886980141349428258586586923192952511336223988972337946732032684241516201504908186990812985254156443665148062392050515791823415319595654606372064052736475702606542050165119983953636325654096392144759319419684315222764232687430053327444106460663595300915236830977060725146424430680882698800515404910542376856440115881651643382754518356286822057933337674701530094808586353449325191929514075509240683121975046616024694556897657306304223341899636175899343957929416571625897486261230408372308678773895821284236391323988539809070814645245977349605118748239872099595278844977628840402749744131727954168357229187915253845645618471606218575399895753479401864328359044820273561922483931138076099488131402393343730784560695980150217630610905558511539941289278262771848604173938897166331897772327621669317421930918990510965663710968335462461152238667355908700511450307185220262174785276094215895754070947194592609609125926680059742203817991695474915456984158473968357423798315951511745668657945563888826873586206261965339927031173907416783032421247700514169852122783597592581754239051687555391397810917035218654408125458736875878211190542861490064731835885915205870843760565355247136467782217153435994287176571378600633407649825117819167039183554273654675773731492703060720589476478857109888918421663566294007858324136148133771154663116031186357655118296089183988113982647683870518993828163431954404386398551472873177004761809195558247155917213959474987621415274318364660515739032143095644560675187960918439535933586996079066440594089509082454359329070051051181839242686124972160732464574688584126293831900178381612332599247446183882766540532740026053307208507510669942189538685925539929082970506584783871831600440190242453309697298227727987050044854991561432705205956006485444444469246362987559925078642957473342280311315564255717347270593765612986530845717464816822337501882918430813195773893357908721478402805697954820218342760750668872141561546668053796548079663280691281220810061693901847586860788298332434844319636441697348052373167748763954301082578402665062186386333749150170408199233091609575534200827299568690872839063059752697141526581297185604271319521937794185149632137829441748366653810747931615273852651732217270875038508403086497716618159235980122750038145793106469494034492238532457360264858334052180266155038722292521455182932899047454604064307434956342473226673695265786321972223191755496167513464827760022251960408536954886606891677414738117615813918958244373834575431957297418025718284318825508674084598042177522221597942326527912686849429733690813610739704818254584506407084352652158467166527207967455870147478297428235818042249857236899653898617230399231529859106185271485127716978666815094264031341107423085113573399218352944186676437878757441207222885719607443214117202754558709957767965917967046798734124767049625965830936741600730910356348325131943523091288165421614629777840223998320350321811254691030482305014712139037205683863702154530247846746806665197193010319279946287280839780464696494731914048127347590079424760127941062037001913836324960699820122795994715607286910838490254555066203290125239042846101324098266533283472050714751376973886119204207973228735863215241445759826310612801867293306220257486780177497621686903260348041980481139751149601062388520360157311031226809601807386273898844220041650621565484108279035397656732947951931065712450303298759303741715589436643380875297617844252400808970812961453245139984391361581680579747290099031390798436804624189695602791431784873683834435148289311192673038011200066657269978744602629230448743569985442283285561719430627721233637338260582276104607776817031256905124744878099362794956440978690629392087191060909353229351802252877127690490544483116250297577137113897899356251825458923772859217628038002151027622406353069809276301355268773713806340764019185427411227108647906524583164835505058201644109547970387858090628095501557213952525377403803650355355867598196775758774894943470749241383874624260603115459003404731603454709156268114691865378861826707709059156235252732669618860221693314911803472431644631372457595482041099027519295643963974969222014865363178904429359986904674798153806397623512563469491513484931414066715444270772179004142452546251143438726758444947754310571070138519247348827558807757797761864384882438233770570788398554602785710508503439990724139228710340910774607534948407447466046814457370012268227838605114212428333116955258106692863080231276563054243220643191915399070856273319510151532912673297435922825776791244671695114807666570296190837419468927315975155932700172206116417277695361397715691856570241792044046919403547564321079691984968972027358549564063639772629722327186142362602754004176896064441769068906593126666162553897421733583598321534689963996136366972151420340337719843199454847133239026055607603531387572788037788339868580353958354939799886665117454076667372709615231626527408566933787650993561605044632139471646223608408356970834855395522673974215724638689305103070848747417923454973312184375367070946460214281564141902225173045291596649905226708581105713189777311043951344722400690537163185885244491040991321941114178852361345035818958923791635934397087178163447552003954048897888345253226907777188141344725156425279945398413291500092153548956527212707717332940314240255169782407613512244410853393233961242765979735360991318673290715991132011355540758021172896376163998179313011287864824360731756673391970894324073455665063561569386786801600725736386555321023796894141744632912955400799285587053141457650752286901733372511708578263853754405488593393157915018301932026878904913614486971158835264022316110083390442767087789503622391624792831019964844018118520564861731831975421566453425448455715540747472669063498174888690662677182632535475379373518376765156519651028886841576332502811339415782763410594289640514042676342267716704259094604161381138585071329489233028548856011681259363697139913248280118110171625471449663899977275881776605009022440364252458463420767490708205095495072040493879386025164655556778143647628483899060075783170069120520890673489784205642506947730256106254140790039066775845487356998426563185873006406844857431592144510058735075884191030356330446824285264345572575990370114081172967978698535495205786791983167314929750287857357496884313113568833050112604724315698992161425271755379092376629303647252665641463499877740104677604593117708823895098687258019940318880601325471529390276794804641882702200387460021986711651361064185671385225890781263186239794698212194717353333416960456621670267861313457320254382829783752662193707161357648038580305272217749216333868908175696594817517866272172861307250793929210819124044317741698101267496213399082542593065182577287864655050858229882383248965273162956900406477934346663839726252424212378020330593594014872128322845773549382864393787811886336401257157072005307127642757149293462870230134045469293332719218328731190314760855100685412791506856856110567181891199949436237112140696454309769145591382585516932696378581255968629226925971032995364047625029953377792965364860017761476960338309698477102211996267730537779842994265321622035258318355298960052833335470783061008688054825710258021722573046408745224585925852653337216821658830959800854216716430930808854798558382376507669338332171323841638435371994074776929234771216835496763757346691055644067431889698567288078119761272360214306707062294903613425202724444637982460749529566799999877981480951519569497652972770888547656198388994372963624151923359014114368520705476375235972760131182204166584733717393239196601928289816407669293508599172843127098894605050070069074505713126257065220427230872944167480106011610058320576884331298217741988671967122685719305233682448566313461879431773283695246626931713624758181556586736003737554853611056055989085710860519951537301744942552779056275938595564502907240888869665168682810200548839787701220453542499086988075016803150329282278393649229991882427953516863157557856918831175869000283063137444036904355105781059349698248696929838737515007120639232156684342924054180562091770633283594071044889433453104512360655039728173594816514061841674034681218864867738717880836942669319108613444625109468846680109112258675628090587383717941250386093125050856089006813385478892302668282610823269028990968590535183746563891545619299441380468414557747537658878760425658783465023813698077079916603767076415775894158293470228805912074842470596151859639646035502275448109640805360511595944094443375936732805759411081818220700440593694161316814139720140524239068500313301372983412538902586958021266660730122284395961783446846486096861181771802124565689613876926430914528746143153058896490035696365036311072256850476103885997825620886737746451047710585237716804951576687929702507395486651147912542694643591847264788600279248170332714789656667939791582190578343539006891975506901290498945492080698887158851084225552419863193948345751999659903677496882885648208747397115494397634759496930233270393282983691184760904620685336150453145158638273113154040492004624686416292490584421607718085823137801006132402603770263223691078142189340165383305590150130464846131500287169395472469882999295645111052307425465356435157182992900719557455453201746755773179580059685070406169107345574196658715909769484217798744523996776439437395048759402929070197776696119162943997109346655290561805556143644066975383923865345588073533648530521588476540756004687266557853010434550278649395801583593728866097354333892064927829173883411692050019557162985941620095681266726258276371652550041194248562373612007398358041594968816205296833067640253502681448853153862843583575131877448117778505597800623757045560689903741481903192358112232883157946129080945522108569964721922546434648443067037077854013544170855887417044589998827972600848937647869951814109684372621347480054212369411659401129632553595072890495504975283904356975623861509906475908798240205276036523040314354524095895010142704741533442110623318390150646963231624556318364113859219816241741509691626796576654797996359570474985873913231227328354866923319173524027328611765231632234145300302326525496344653012870089955115372307319416792562947003065835566702150600932767300186422593502965513617286203449393911855992954340444482524326673274920804889521809794580700020305789196665286149702752455356166714167017778710646734841992747724079681063349247265629056962641078165211362657748288921244813608226723702629909462696234953792972311662530317503734694488745857204632137360015693328346653659088586884748990238309480476933407368091712033222847374596888658170652725460820673190841663985821153819288621661551431383376871451440480365134667767080410755856392408677907186196111202411559357901771929029104440774164304217591210755140509255621441535442171734392866340165555558383006527596203790213254799171290674515055810384247044979988969215574923002684714871368168215471589132558267014431401645490889208874326078819139640807688190346779317238925414625382880664359101982617111731215908127200160823032766084697866730310090194319632936195926214203877167712112416167688592204737457201061750337511571265741921235701508533751340362172318435988370244146155133749305647116205210324809277233791076338448358170621665774923421066122719718240911989313334952145866785009432794500128816262671629942440398665243638981885505154144586514102192844215499270383732102628561545800669252173290630653474887329710227319032031643638289540892046240127120459694003043049315139302515948062419049437473968236493938343468175696878718250388508949042846188242147105073247134408349728201610401587966896581275375609869336025375627197930312434456079154128330587035478143902509779434799812138323500072747111191937020858119119133462542872553239054520800019002243930758814610489469786832655684786256073530697899608539616591728105685078157487362813465360186187568393286064799866278142820244653524156745902627317143318528258659032656210817584973064549022229885027555581802907407160854545080202400325019664472928494190064114618583566681244108497730091081871380717513037792569052102661180634324902277169115421254917274002560427829591590091481566117700427118500712219669044006911322114989199709793168633023227040744794655158018028137550055885451161270125377977682913689006799656495504738037440225915554524265151428421671576739334042261821103669992365664326839295030665899716253667200226897191590982382712531951621317224699887435675808105910404938322490266075830144511563913936160874967220257807467501017900893283805494868100640453839188728307557989526450247834841658777244130016979023994143140333020661839324273145555344534654669948117718518795919718303004870911066575433755365754396931849177658454520282820872861539884961622221779571175614032950531877243149373654477047441867135522640199080539615046100064142741929595417218396470556213577538289069445572458772207760531476483342172988562196596194164577554875575925168459353941705366036206833542540650803322830985645557928346758317982151005828163309503828871755930830477102430145572593495718769103743476957034999947597823944738187653324919203551681795934594740913102357005361132344173093082967185202258853934812241683057696277959134607894049936122147573957454361108715677627309607624762784504125782248217628868849345926970261552534959732905879923968670839331548354898532605353444633202757307629947320183704260981424954516403956225051896641701664501607384351971116162597871643468055268281104373876452908541010520504830544156122619227629590212017249357689380966245354316229803521818199171077534764701931887022834786069535000157632293464466414543230316578547942243293350852135352124184698119667400365606900718746771975214993772429558099521589059866294043063313950576220086728076130626240315268073262310845747983969490437629276655938615221232194426594643892543092372884380313164478921058728123406673054711326808901945649961518158661619908487268357065442754721902209582727742428445364979841880327456203260091091590704439895019214459160180743003041684312526948111828220477406115284679974110888104043187231727581041034098905651289153336509523151841546231038892047022293054463463251047031958341096634016384899566246117713277799722440189344525366740626901916996931735390757237232408625225658073051002940885620444686111378604098431546325174036024599863118465116016441811058699223952874653013068356869647756102469335217778278393605503642003108180381650847935255415803210211809939176093725413429799562524669980991070564165972761589011348081792948534351858135738362026195050636161101094973439563137306008003302454299334539317812819382169094425895208044632589644918878195301762444656721352679277921316440647825501749175253692302632311296396745451279156680842912845782161779450600389707675612289393044169521554013910502661230820136604092150956143922712712501104186597244097233520581658712512169513493259673453761692853214075997117148550029752757879740855274910104452133889786870095765767178919056562466680307829705546150764426674739569179847808499617833405145558593625082625967088835322879860136644816412978340462338339719424599835044987281807537401418940993612685355372208252559003600907538429495423954529225992091573495998753584461138248827436550175319054894591394046482965408616359330627190366183850709916211156800044993977129760800412687141059904386456610391964006379440943521260662181588336056890582698446276246332390984197268449877857168927430797454428975747390093044952789601899084821443760839814425500268840732912740544701126439950693424273795229976251519540823704580532283001962109093215609742046605978745264998180426649841097824456600734523432840270823641373628049969461680384235724255506802615960161101980645313004352416415486793650598693227778557937155318150278056599578332197785811701683510934749772830676658654992360031203691345236560660486893264131375855304778293686121602962533658038752984595022119919308684314846202045526286581119779103984491550182721958064115113180007366962829150960956767407287897508212472802313759990909007853165619869691630799170277684104179977982783619830557237974769928905206960959834992306840236468774011167214198723848761350952975235338431999267091084845739017480072991130957546917747788953061223803267120882886676265567101083428747044979272400077987919357200764462705148951382661296187797073806607209955064185864366545932816883393713142208992627039966851574998358327826785090522663554737068837750344012434059937055791265965850355846065695148079233116213398324165576543363360168510478621130305968382168588694136385561735888741431603866454004935723607802605026787391784130183351837684139257790059357866107964374356738036682797012335640705819385789182879294226332165002610112360329758902737626538069265645364971462085184730712673386516756792336168946218696873412647472204331802433588160811934015592519899575086758228825026893397634379682968616665218411443082071864671806742890157281927742032320354453035108878069900939255000612798264279240149757765283501380795463646414949985644893172224532207334000932122224927100186359856102006361126103579622923470426061764945930029695944854228367901160069152005981685147717051392484812430900945740328315152283834058526318434736609945911254950984138455358875701117159864706403779564339334304432954169599930057482494365925774975556359910085031105563826520691331027410642193993416361738857427332395737031460389521125673700998471133673983846927394079502229363604371205468305595903542234566822433832390358331087652692420358614231219311857818831367494033682332666964510930690274060038527988312520204152289891249096379541221410987453609123604299780927967665310815769759172334996747003246820375229396010078629187418820046251526034250665989475892979691351420918036447961447045761378751446414671177895012339936500833639840049773658970136509316851845574912627511002855360583952449322835402445421405490485741720778101461490692453562796668422526580637687199361106638757198858595649461097966282092359653762363764532418759463014399924539170793116464588102732435571190554556892571242227373812139675731739438388498998629551869111482519679799012267971352571036212152996289204354824090711208463893022863007414780638422997801356108318013833516418714505986867463115286768924574399517695124993810810247050772372299160558010922508858807649221755197335202609129848424317175436653759732053398491477530463299144713333181625461710620803716998886418259862434836039156784769082407132801703555529335624949921050672547008153246492242572926514796498208820099505746473839044760309875455244902878771262971656729743476402852143626120332586164546951730681160916123855180436581428603686538907859417838497215056555875445479576061497441939417531193301395945179627411909165213447596402520475484116438437920032981276437966632354121511869358766064391021217960732970707354480326072048795918852701991419580283841436212000490849428808357199707237883056173835724516313806906337006515380661576462199405887175684640907431564870132148365731058812392335349896135774145365021637243356857273923261434764500386029953214217274976631151399025463918954396719788103912031520374458993128398159866084976304709738861555566126790535756123202999241587006617339895100827150303392282154142411993733100234920627069944308014819553921115372381629528256199171739669064668669257499399023884173070218612560907959259096505248505323371315348243227513880018911283838159824959602773981863172686829247398747946698270852957190432691609248998670723722829721061160649315935919697336087462098720077531994070997299065396656270146919052028235662216320644735165480005034880312416319513973519858686573651260640081594130054230541780375984115290984672886312899673827686799660032721613623943212890869841383892259119879850115307017300179469820645115369486060370727483831307014754845457486793898609712268672820065296978425241230005113599640027338158529607229419356860518813711029312996672534164666151367386691644253218142091991855414566579426703807575243835460176124556910648894694185965309340928206692627771413068529685643456365515019907732633576350234355296751020493921892845259644885166652261669614395113886734876362707481339741659814718819951359524216910467041797529519251876299437464370480948668483927948614853363220785023386450482275969984994439986974448539134348404856342047850810570589560160623721757071416233842484120599836120670517196326359948803068978672633063110521029411910178277274862814961151389774678723865092217508264527699287615689467734548195482196402731390439732630267976336907302407384158418797635230265496214483099110829976441970911548895948448513740756980337736232438905712258437199580953897940387709092568565395922730490095393043748932918068702053934605839849148241578683603375761421912713854600783002980522459669283872962045820481264120331768173978746849044515339009889364182967502056515298873480855672256622604466804769688886649660297507375385091658942810628195954440667213110741256085045529064336856198901279796861320060633633766699095395956956659669033076669437244894619258095840434017337618510066902725081471652166380888436233976227611448520849232297426838468083844091273880602737439939766651964983184899783768419067338895757564896658237845487771286105400551781185195311446904758190399531581293451979742269719252272761707187973250321355271076373856760880342414512512608384031883450328926876043020894378898988589958610721433393255612687875404588172808105660989918926554775086645035542574036401622126512162484639275452515795021814836103238224542613091406111640993175163843024438563878041290354685361825591946855297140426377054640186893996104083260861900039617146874211698115675469390691276447391953781220555703801555231179399608188809698552023261855551855586099477168453257946777822069909417027578079884309940137871298061007811420871108264652796772457943409025022868353904172463799261992218924862972080047694819206651176229039418218029771722198246390675266986491384700765257969093905422727677609170323802614354094568702539462573439767455125266795236031693340714281340808269625141167625254500837795376124857293598884833254007289018236197490571627886567281788881988945181752453539120960397142509100160567884229428750117765237752473582208236293922197443021855132744076900921395235872607959834834826882854802500386904333656833280414878735256286557022830334312498416484408922940372457614582759071769837816229686625094832687244504907457494354843627498078035369958877624331353664666846824288717844502617310474825988773889790339245165865919737702020987243073926407565170368436043927360734423583365641776118324360926085196458288162982999008262106701927783541095455659597450243533683136134331764836513976409193619153066412908161105402124356660933652363989524025717503836392020317765436680602772409450131511996342264901674095028729778352131627885803143637171567187636599578766991645545660505795450415190976615613816140442676041198647723880271259787804964242369551056147201826375185520813012955779039927389252865569362331235750953836416792884903063277518638272874499704894181586275889923002230408073382427118670094626702266128222003695034360534091110104014007551027064105275534848965475000229767209531044377228827582577511572928851714145898340958352750302791935488320437192641035939855893546190628769699520375577223500254464631449392625450208562612336832445717931648910699097179832747397032169388424529422465415781168187447900048709610144757235601479831581992105015207072745084589139165127382358941234442232843604334479772392870238960496283278966113626010205561952342363272021295323083851336231821082920047582734727050187342935499541907427054426211048024227494324254392581494696809446688368718690035074795617320435334395849336289420400202448781036015092782352984959082581842851011110426111147545052845016807353427648186549127817946937971245102566369745023754375376191449644370556691924017617463527949537790808908892599423509938996571354480808120953123442047640043796829549994058215951533093223863303002354251170729083437027558603760596180578707574217994283840260207854400035552098536319086608678570417376889269611197058905958649196470751648778944275854040788899321869999828573715164991203857568466684591739705360494726466815344638686038554841649136065197921003110116963741495296451179186558237130237188663867280658703307040167107486354115460817302697052234310821820926615125219108510762094313208539661029878404267206686836397590734871046069583138053632313459472345093861743954322450885789903027457332695558643827198393585008996309806290867191094197422611071048400767237956737782838652689011649114067752843352539749216862562227453881033509266319054251726268040223904098636023336097876373522101511382682328042581467911802453854775282835157329370883448496776318036160078727377649963758685335714421606918354772795682927895129963850421863814763643279275866097795596350379203329949843816877159432599119697462361556405252271068543369610363298297118209230427143279429218743586486946311463281629170299847247201827418761500110329018484493306739267976585468510106750590267513182554730247542225502465935250817378033425965180902800128139088984225600371318509663837988346521217051028889460283259196917686442280270694502970037834831462766694179003975067989520198928557565640388367296927018009636615270439391353758108099780259278073996205229477294074445122009437010025420054914643548517816013630245314072231787504650503117174154915776232762863373986809594167273609919724604506793697307818122225940520525477181709883713659688308740251709097148432318337054942325824183998302148769000369142725426006488334423042660065667328395393838619822632681082729922002577046790635108145656751745927626368810319018049445627250726456840487774341464935649145766690982022503949108435584016164272981001441612983268557670211132845980794257009839121725136780241268960470054646850078239328325170978471636726384282419543291597662925963448561618381214747255282403055130233809143008975075524372651510047965597649345216462286074178062564481207618712463106062150966964188519284016548020306569199753024130181834829171655352124027622629311533628725616293428754212876122934789786151878831097185732539583688711406405036885451159709194179730092595478250160027086243348490282181441606611540079573438222442480009508830189221025937282897159532943168405721580702188667233499148532361838107738129970539445012064976790190851209883832817517904052296418129554408396190886975189892384262133454544497116634548327320573624358974227866279361322991242875559528261532159532106143805876610953513195886041902533711587093462810199148586747414907757817346689152926513628084864687582180774781927545890279384303776700968973797738273528328796425354099195352625654723711634803204967883011447927820311720011528623613769711551982903604236302570667564304667124836463048943064759951396241305781655617008690170141595694954527345252784518277072668684166841052135328592212319703697884336111254765102983064507994628492731825184612052462839065241116344016477102013953019597206661573701805007946548061967619155560312157184398748595440257244880108416487384597378149179587874022896627751319378569335738751263556417112985871081161628828659893856132018815120456749661451895884302513668883564091200176793247228625222459475096232541975052601282559754721951132401421814516764687385276821910440518806022130209379409337644756565647605951926822563027376096353858131138415008834362035825993856475733918204236776904144335279455203455975060424998367307448309595489823062641741063644635733215357848283364744464164435518026508109720006722928641686525832308979045257795662456183025993468150758815641341840005175203122072963121551976781472576671149180791523069481400742073259499103564319088740276936751949273310184454168094524237579174016916579423974468809219084855816620666515186537969584714918691484595103317334636761789692548733642106454478893933751103101340084966802606902291119853995431680900121788436884032810776677285138362447388900264351349355546771746500742807368967877248570152279627847503316389206770448377125520029080544856673510790089598906623996205093031990311614950640441003452959620412040814811604877471481267002945171320055947414290782494399496705579196481859849538115415982138617234732136756616859557713996702193621218791533796035627032571293653968423100079969953451118589957078112656108872451081323685706582640372500002913919292862115650555431996806769906885804226609645870430040234785476673702792170303930746260755547432250520273909086894847191300305475780696559076286990789487126208064192934300117492753782140663590675500272047959275302127717060047825833214016296550272351207286556747664427188535864820637554268169291674155155886292549605063437079486685416654355215788223201264723255578451120476866461219910313461474428778991893318676848847236322469017827580058636285917599198059138513511190515376818559381682947475984640611536160887557951999535469944114517383897080622899827142576435950384904740118831057988036970855025962261753325274829360926312665536782450046067273983217787948754044059099220559748724780915032289544021267690614581584132645457725984180279140445271570167103429773892937708208374859744649673324793817176965727417811802883066644883749365303806355271433265849661704411854557647024850865750953221409008690077411411442198071839583869930844067948002828307358170730660216256281944712714375564879384011011180466431951908099571948060680790010288933855670646529050652705158051218122152756093406957146911765974961451645762944232803446608532757148911815812931113283126405478678929146926376907039490872258976889202739971773482281065868048354555621475731237531925325078942257926516016286512932184417152979198708891025621273753700056751402265086128405352130401401494575509685463653650463681672883664236647925970980189927942580583189154274077046890759833500341195328836252258585719885529007430525201394721767667300174971140352988537889002861453105567482829112740202961216281164579000475060633553215874928777239577393937150329806395014628798123540834448474502211890422776397843368627384063894153617783890423123277764453654193812407997202942654810266265815655226257907136175215646861607058425133739938596787616866163471934045660579533880956127137447648363292783666909247327606529552592808425598110265925478198971277307507800702971402639984245248562461924699388357362016664576076715751324452956650149496627789888431525009242894573208105710383612833666243366545288923846553131971393160064913122185614659590539557605078661625622282199999948557427467205917527134020179578357451283240654736276330170732928151997592054672317656561423675254839114126459408751025915702193622589155857362424699344388310666507022506346810236534598662401474301380018254648889900768514135816387293424824914518993002407161433222247210609000299540273680801626421677583340570074164969249907032911097556559421662631016184136816039128153910359598734151894450064045539581120208023416458365950919158089948192062270069096431165690607983305655092070145811595977119201283834938131835767206469355820317698053606788138121573206149147592448323825098725741402789465317306929517486992001209847564343784110239280279850666943021455915739683560204636627583707816692750587983842044110895512600850174236597013796538774790878236798853641265141414496959563880872954267851177829496876072112857337248088480761725236960997059420898758274206631655792023036588429925771847184833431840002692729760955423583663143934462961378121033349251493576445662550773316191907856018483623055146867217118574435629909309113725729720583983906292673784399786853448821196572570050219718885176189745631170663053353900794191216542573702496061466437381621445211101413544941652991685013769183157997813343591029432046204472437383672012849439263594322734457518743979317036907449982706965357133385379445973536969226442415379563906308113840290213469169400915801933860277844499154300832503428343202439000133246691389037191383830692751089209420476979492622177100144100414861952503862594651199612384080809345741284180611966949228461406333404560543654437833202455470388752149221938237138545649902649289425536048611150608022709037998415572077179112949456370302543311739460620870134361561154322411001835625697038334621296217206174876203814754860096711171657373990691363745502920996969841676431068388479183959175714484004376815684776018029464566479555454098729672464153413016635000324561702234374694056831785793263683924068934301805406472565115246939603274759205912354975060822302892861602184561385157772616768812401563548070007770953999303638257616074603472014138880188148851285538176625265076284371933330680593716277712637774051319958934003137688845220638231166556603529197204547588745403555742534557149098643883653670589545340689399571493606761454903714578085479270398726488100067298605992743059041999994134778850790638660373939053759291942812095964013619160098229129740629104972811369020996806526664395028321508728042713092413292720229192889840131654145531114380213633113819665289029582584815681987910262785146749624685948800456146512300607066617418561742684843680015946264977026796903175022972874004583879005512574134223372031051634878505887106589302037999864460827418924149342343738018239881100008438590553420336621232032523237172208329925281058716625034088979940344141790058956120519151294947188832661028381506733379514201605415265170989313433945630573451233370039922562392371658786892172780778228196881374104813815148640640177441523284901324668778807556733754013350962884881853213540230769313184108314680138255160832966579376749207971047530719531592398646858578075680634746731762478970041811552404281901797298144596781258158293352732135741768271898388663590287713321675056087864800485612409164500069849983027584846005036503080125681932528345058715989413073106419908248415121994502019291809841829588732323261339387896110766993181531920760088369081089052998716941235474234851918974759279664694816041301593455895529443286960034004833986788931588863174900579300686018326105705928921134005501086998016089801977188375022642676400168659265047867655590347539696343612170658033256965578736049199279034432520833706996806998221959873150970063878054813968235124891962109693017757730234250560069198969424755066296760351850214609578601760432002664659764046910284360331936522148919252788752769960805380274059412143789357885881738407391067041136004683073809139184988724412332465458370305869102386610618289696436551100737509709506658035559404912700605990491929993380026943545885512972841670256491822662363973638887290527179570928075122457539172121491448944820341361420285539741080710628057495137226092270314943563469433729318048639815966353159295115800251036917349131653397477372678361050456351101301449692480988431857796331820840411305310612406155975323653232155087396011436326381533804411768191675925479548828976836722375880955975090349312718701985970587420975132254915239175053005589335265109641344264224820212093301787800496176062680828619989065699070177902383980725384818500687664652413975484926010117484750421104232897478802739738221077127334633668144469626131152493600526768536389458401789064994888133678879484804425187884938622751522892514028590318738344495964182249218878917144531053390470410075859105969353706939396125683911010930343842575797055912197713604512445795020556652763705867058933154740602415475583678983283826402280840071253960693528806662605994507473623214945360702437305637957289183438742426339303422809548916931078240998820640793030876870903160494654044542565651138812031936869130883846678337406322697092909713283283788940913503046013022480598322355893724256593259048458556620376341319770226212629021642203364562915464879063992304016731037980564732760609251385387562229657438781353528145369428845868836941237875507346533743262688359763805537778307614595856904277134819907344519056080766096470268898569000642341922584135326952057222951479050566734775111045418038150558194991229689798631205295901655726286796551463248713335336793635658160816159743761980573820772601132026041936294759209918644698591554595659730683462732987836873065902140510513489273235189753450139693937755535727414328777326782619718094316974536383187147400145391841575685507006790460340603847451305613741044980678372263754160883568622011482436297218687406096334609528753444071044548871257816823483607574642051586486383456436627109195254520150801073768997573267170735967542441653093577214516348915008234323246050844182832554690458355009923356936994912362118690070623948149740616011631643832507192542227422827597653074168325866920813956717346867935620305775246040419175479307008678858432976477408361580523479571105944075096906185556017482111072041752964229800623458410903069682121301799111524489200270576177142881644207782930654093888581561194202041804744932997432400925023268485382441046017366772476589929938929056048619567497231784659197405621136614152522858451889471498961596246824347389239603235096981169219761681057581440008540935908450234480859533397416518068308058912205100958974099892874537650035623037340121551442773735159571635224586518182317062341279204196539601545753606801353453986917671425450775048082676006724239827973143927615384922356999731562160414000967101984202750898795936589192553054433916190619455416888665256808765543912928177776529143594033543063771305780163614477712476527114179914757127384232140671580117098242825890391416831161564263550745280289946369720616037563265299856404020620186259764197599215546438123045087481208491637865372796967163610757184782200021204184724757875874262890955150144743373522618407568912626482731715030915710367520350441985525423792224078672868723131478921942787579996363992410402354225840525844618862307495352184990781407911853312489477602679860657286949525280393899622230730009952318450348448012200901686269176058888827559835147570463762684100853753999675654795530324539323218728164865538567339964636919682363215165744454474628832680358493814624213266038432775958136978322523589855404757512581234657813704132420793740700065683423693154334066690127475483462224357148154509488569523139671077101472608306585897537973779622974070603789387308970197787742657866620848088900408856912643033397272191391006106534707315861113692188740362020481968262109439692592691989246772980929739758396067398080138444641883116329023924387397820038666309250432505095870144577126517851254419327607111925467693606679702204768258258250146831592748195330136677552626610681677316260633294928380415357179216820681196951008452189548836992711701085940828097998668361248975598699363607604026992532409421882285601063459676111270087508533089320558478548147517995502263074674317514243362577796396750700663144229560476859869252816813269367997917337416909665077082329852916614442795164147822345496343079992433539492590659564831547349784081098892409466636519987906621605532821499756952979989533040226388081988712718275113938359025311386036982005178091656606083613936000570462524109532459617280552441236822013981799419042336605718602842026738655413846281417587123970497555177197053543491289438324749470301041411905295156391110274436168064001411045303795015340903608286390183168927806648226050812088378188920184033676583211969999241289382565650682310866499372973851857997245437927896150161242882970948403451045380561993720719549060823207345477796990936283843813241604247361497259981891429911862748200170275673428796362990611159145928478446776127092741226928429735853251720423970363826340507806578252361743771432575473085831478409087404808066585750050929679771416807869811187344215556801801260215661097870501717288600852994806466806608106517864405583291007970454783721032164816782592421735526617984236859649935945289255669801432982713393760891099914654823806218611878569031563475654659686582909049000471123845502062884862006825224944276131646305277594119867984127888568742928806021111850829012513919936424872201386639250684422187643097131448829218601175845038250505272885238267830910256461199299975168560307670772521507570392918699211858052343967787908013835167056352167238560314708325215066144386393518343074540528888998851513405681532461013159497439458019158031459586030103335178537491767894186664913891681916653735727797589450956000682206854864268764025194165441460858265754780722974977346585091089278301339148264656949371021226722930047055056996928040053063605746830213917040535374603812219527256981189274233176736812373568789855687548182204182295014953344847281901038866734962672271379808474996199464648068074041157238082931476144418762271489118972906219913027086764769572504428972040623046919195489596572477811769769121495467637895224110754053415544707646082566187272104633481837470010840855830252858377212589996038955196650475484924096129997447472557882311005318128172284086342018261994337104125906509792045841077649831495660343879395585082476371119424698749125196323595265363696114489788871111654015195020386701198354672209945932211103578119812401329156251358374350439468475872993912882223084167992636224872098884267892506276858065558888537223702593392494793314608973748611124043843861693252493639899110930175147719440338297254451022652338732310804450189914889351130116260278583253657374565165899364316031141719769298531528427182558105740711115718758824589428969821530799084928021815226365752002516180004372917421008934429019183088153207584677762503004771704107703180796328517722043017136845010574080872306276817982654000506469901458374064588071797923620891303796808046848846459661614294672847952723352368670990502650818929423389587950784716528992483292174662674975552265935356651813229579593131920130450436285586451683380163426195740461965856718231979050965359798189384119756728582783872201276346407877287503349809539017735907093872931731687293470909184024938197464168031855101361814052104869708754882041240578166019417697756763121566422010007288072192010730544779678521867343641875284451968193049550950092126488361176765130195516062680571689429317709827708068121731573059172502673020521955827847590971166172995729011372561413600105371867478870987172492477361223453567786485040392969371888766025135381776423897378613489914064921155450662343236854986650356102218525211958250631296958414328736488246066194490268962816650221354666500538960009029786112057583072277197821570261113693143882868800156706471140341250670422798107512582491879587747774806170958365642559799644450429512847007653814678712923719932477106925537654201573720705756329039197598880613726459153163746064855358949495264491949810835576316868812710166159659829891466662867320835491268460661130773175106940231245286593373127496706204130371133410117895225888934833109944084782195378770897674248538067655697510563450948325971733926028325077265718254352279275488907914015971710563944767848304695522199709647911776248940694796135768667518968962589690712220676133543944391415297968577750180235459352994619578933394094391788147371583960867884670955558760247950161586566152622865613255309401240458151826526266206350290101441095032329817529725143983437445260879159509665196570289639884182033095405916385933537331150009458935149980325953712740708575183449924580620089281472394074541270245127397123171397413166337755476038105843225414583773182626412673803936790454010496703524903713255531395284895480331836950259198464173572398206185179159050177640709711741759711384566532415769406832956176521129530257139860543330908808094458941859131314628783431760935657725484262700010708279148613677654368890433545309149688904047116451171975617739640364130496843728636157142040525953613135677146340930460800540909561309888028556637839627402966756839962407280255081619680103130913946512613986132245697351765463579753229065653673803763572821342123709940975172127411517577824705334041006668926415702991340656808667375432568632128168039352726401793208684613165669058410872248681967227389253235515735866249712077191783362050073825854343305392378634875719842621927974626309680943403066371220743357662330932877769267065706400946600285254944405486867230305528409058186379318108165043864504890300391562712570739144837542206922931158568544194117652594626660413685676983045858229135524172826027470146072618941999815019783103997954855625479946476917503002912808418668656204257743229272972196467082161574486017894691868164597014019189759665073000326309010127745939619088218148145965076124475651995051871205915285735643978277795755242458814742489858174052669948160870438127778654468277894307787849625258947147574493625762202765062758348342388418060509157904616903939362980511033175410766875449510126126556323194580045077954814474799605155357404597982758028976083726391264778907660615024298913606787475434793062242386263960097184752075240126752098863668016415261250960472941467638642041920690510991678583764802451755770076865459753248761667602995656368310072561742206722430717594647956975502325572806629084634411128636977378456904283351097119320768470921621193393269035383727538300017322292153908718930765914160573624679515758396215396280767400045569671970978417145496463043449385590789760907525675516646600429391366414580447416648828213071770066499315859534276634193698962178456090983492158069780292355275080290754541579513234367788681728367978239826049540435515851400301245336439962962521773288089992087592416096383101435690327096379032570260929168099144967284012971192649414728954118925884687991349677529146281058613193651434008398412451893283678304906892791000398187802440241046089995793924509102180368048980538531929337918264593874925608983256553275207477641400174506945570025086737372596444015126879046694954603297677156892781357087718564762934367330800764550823681680421359559056427959552858736371943986501407744974583819905416671776547090602344692935268958885485341520021157516651591216762287602095717570577535211059069745941504752795094063093080218455800166253519966484484011738412485702572649572637132527596568401971676420871614186429577725957956044083982549927607546996747570445317966969817259405698995818282596215582994502643247109693177859031965588363892832495270874042277539094278419462835924759589346931521080015308752805238512206904918870068794425867952910751385449676290679029622613984281819903374659715228861336870324474575979024477334893043448367690253303618922254673683698930322201382871875944095170551133633362605372885470496772717529317849835848905286499738147165750452943327460919288256317673373111841683658634102542057108843220675185642600872850481624277525232252489727538398795419600175446090777446305921031999393632162504161457952341336270835827172184399995671044260981323841312776539295848404048342749027306906646715117032872037771959591288152627702543327671628544787836750756954552535965886037294815646370181595227464408069339674455142151671256140443965023415644477135361720751345950496478992022353541795845765474594008302440938329082931629032660936735174338294096883378913628754565629861397771371212085160711266049027378595327954494495762445340207697047220961859155275380697043777926663876939479035672079948877232753531168223020672656710383004896570706707057990689372499593736242612209767756892511799441270152949282696463391046653814702852940169141213906086404347267956062041635738471329455758690827891406788519845520743206819465734386742393749119615141798209730438491824084611401508591165486281772670796511341497077333422371826385860549241305628233473598830610529641169668779197835064968030111723835761029010202377305287401594367439788012756594726823031728291491496512665222556506360168325489202702977199426829558528271751737632000083970163343722286858476321311330241364398723954813371511672515285714501467167524703014644354568445234546412247057773902283106750037458814557152288275323394418171710772035768653388517796504671984613401169734777684097853879065617088010320177877587250237174860374095532179644875841143644743661855726829807908592288095335722283242111762390245592717353693411457509257274940212394624497468029559873868145418570887940775363283486704510170996898666662576286555132065717456426295907949466236133472365357642391403021613644165003290382334680821957097709309958446181821759936848110518127779213431204656232278263351946280405102363485646137609012990170595964084488588698441964624740439504437852941497960164020800334826588861004038990607112581240789444894170957667133346947079010331425782129588233836209812158577156134813390842586709456546282300578861463429675745314275729231276272861747902586586985091784523811758497444541008988799790767775745593656487173884175641461006358933704613511769883632823389067675710177907502477969884370630413013412903338591211770920748649092827771432252867867133316512873261760157148835994646472356426048954291563108874364251808005470751875930778130374186349692375889575160768871939366275083518078365417127018518407947244659738443069834237791471472288285672963494564035511365684184571635728434892022177432419375973191374278095487270187363753630771643974453307312407727671813478605263833192225427462332263037212363911303420282330675686777358730371441496574251259165251648501434895885876251915529734406943546853681799136571422371005130841025021994136431360876135031435391445188871838292369287980931238741149369659481488665207335048272176775061295279448033236014471495900316089935929488531420719801785964489683629436572551879139657167262261068193455187571634040708258353025223120149179969289865565222346344829236760539170310683653969956380224280658373462534709712474338416278516925011812209862674704641786717069244836158255194979425904057794780142642176678401851987502857214440685722614001309240564511550584599465561570105526086997457151783902763665624034208035772648020154826818539916944594531234042078866842921875955308062108619759247394773115059129165089597045568137926566750322007877122179583381419572355843183749419880095652700555657669234981052989565320678311985986837903979384157966065163149038325918122724909125092987452587703333791963077104221729162865261002131139819646469965446388796418707516178312052578370672325889698777830655471626047763397138308496721600704046215896838945856391304803588099999904072916826272105258585432938242630628405683846716649610936019834737401043090491044450652873812367380745587754562894491101830632738048566490852590250565420853145093248983759166382464133972090963581554298332252448299304089189812423399231884295308845340500298451041697341548849520345193528515448531346269325965419347233899459291282487156748936647076004473806416853851610446377341137040122633613964173038906296433977476553003593341126745067950595144642010556483566910793844584626681272678877899042881672250606973326782902800139573132432518395764109622123076572949862337237535818974387140571086106750148152416170736118401555189198815269345031462205815305536800078458353392286138727678988516602042309671697666691756987707600326121799636281258280991347765041935065787902343427025916199230756097035853944107120028039801491022229918759564594202042596469014411285646800826859192044204664488917850079494389080007779558977385693778891026274759868817674281796595520232824043355998051956297835955257932632032619659285597152077930671152617166511185685575813141419825407429746209913462758956569979584705865697275612270062047580368456354169031914887005485580452028066419397642953624593919640013545676350243797256031622595482273920288098545027246742829048612109020191705562714810013294597749984175724479600989190436152827585021343975337534657128835281762832818625901736096519888007793718438155228789052662438334894071924003552055145398568678650489603052103094074341334952289487598353988319206362406317068112179518999856320926762573995815853407037923472564249054175651963834282042516279423508142184038713201851305230101043448402860482334531260988802287159769674559102999884282631192954168986870261925989482345497057088237777284520616813383829866736311054070449943646475366494138292774772209682204940440981891651489222547135566452753537520205481887693070982300202790256642556896313187307939806615129792614111529682044792883764521280597558595383034622425250969926225503484616789314179335328282386781150035954956836301639900377691463708651657366748925755369004982897130582828711148365526336398534565097349099472357678329111461064835912773924103054310952062449384486324166706442819691332008166740960571444199679215770110189877705052531979902264899497991759464254984197182852552398706488994305481282626690762861632467111561484948984983015402532616938101873926644944698435558349875892511352758786287649505779102352745354243658575240426996897797286291882171267272656669096281948604746783891045665716582270339784659686537836644793999839060317667428318121571284618836083989146009123860458585686920852743417243654319269546933598671024610083827517170284539840554753419742167564060752558931975292106090805373889272252089826078227769792377867011907372420341862391883664003113492620272048371046213996680201701210881888386669292520740952300271738949044350239426116234240926814284127800758276329969950319691029173917883496101103093185466888420662856442272361544707512232736889069248018118504124912125057342407836607947846705195217860909452298792939289000714329541525131756678285367510495416689335429244117990371632287035599797141301381768886908507148553811971748724784965189169415264806520015615242027997388338523585096765821073710777714926201177880417128683179560303041263557734531174630892066735971884042235628081265526319875926193189767667252869315467975952080172192139546032981041844867976768438326336750960430697579144640939095709490281352207046656043319670657676458323235751678048621980696869707058564718523117639578641002866208372270863888713464593023555683930646061164707383840504670004895040885134530549187550003276145172516433446060446068991943802280023793352683816539757562653848569784002195064311914900200878630947390931347980939665280626118783012772691637062574641592360275618857811401678931040038464599352864064521168031385438381465464120343228654852714954135067929481453513797883964163323394548846517414413966986565276116596624296521802134218269269119117637849401468212162911662699676779890775033573503841174681178628782026672233103646333946534208531579144703967075704005152002477692212756132178738528897860896633833165280847130331645744939200595163680429309396216345311705737892940036406845246819846018469597748428849841331048736985928610897550327865281594922448472185604691228931495665045151424055684314422575534123900777594706369042292199535664100563257619129537729701929735403112056273438427902410958133334637593072685886887708666929046341147568081447430363776176750492364828263340780348921401357552444406929860562290246396531053111464259194799024609980355514034994059468104602629734968167482278604543359104743419468479551668252854804120729922671419109322858431545683575402665773441470875223866043978643562022066085590975538630421506916354064692832063090788601284588752719804534762849908502715139402048306780861075477491255698315498684258047906324081532267358681424567581510783277888598417067442199260317395970504382457639284543206939777255392945903204716188491456870118184162564128443180490566073845479328800607650756533090815937948575599279407012495022084397874065460345555348067205746671182387949496707682542010439081511648713694559508883910099837713199912195098618262554822184286911419888680253359907365187957860697129445674302735338534251092982803999012967358876852739067129751691561164233171801682194271491375355220029329471652802089009690637894990121894075366410544206733751771624993303591247488067877424194355651609759856234662756138554986220978564090503238786268051427390139306040006666811666991552363007679629722173312078263419025658802503809950028462964850433526161579834708719828168162978054362951949272679951942718613810270723227321942866018924442350304415105490859559252293225148358182407942125984785856688425785934543738715140981786353815514302953592165397084089397366770895693012859278904339327206369172859666236240811207082048754356410800410733773999091979247904217921612408979350484861003388224477891338225870610963945330768852226074819809906997370380041662283548202544611089350726456306159153009736564774339748290429968597814329608734431675742339830993494859170526713172760079803727838705219841783910129303283092649613886748704385073606196805241552642101065912413936084038832387712978378312377169955806593316327132321560064556458909105786936494162005142083985549488211079953627836681815202673323686336615470993838471436114411653282172394074259490689530470878465733855991348301118247519853062929699233124051008957196293698118206982481943045238648020238146910357836141271252750141197000763852483200403445308557671531002500276543419521695859992113014383087152924943940352192673184827032167095853361743227737735092169780182238485165362344312692930411753671333925820963183037685186147966771680947512215459769190468411786849135954675381249581608770453518040701559480499071012983248328230456371735431057349260358366738283668125663377776141987518627645665779327969410089145917058368303257036436491126417368948290763479002108989446199263637546471742219472990464706339396902619257017999769964845575521271193502178000047455657869356479939813296434960078472476836213067483882315953803333491412210279098536039613165613442311540632443853044850743610937007853741671117138507496984617289618673024568285890332910625413820480870364771682772301561030215838534080544534476225437092584198996611915258286338561329739568509978167734912030902082143961111065071511365012481970656117001358044807536961543515801583585446726239308103872720494579962837820384298296082500348337319855359630212193517313765004943353822587023576209775316434765155351144815514215669069952731198135180596119270594531140119503392799656329506334384676520636918951313430695181466802354582290903644820277324784790031700411902703101593681477515733851253074574467000194220274770071473582959842824331718656644388091755875221820717749496309228987802575900854263773393811044850286371280713404099297130260344788054294151867002981392851754580268104523801562588586235904833949094400633127206224263999728725567036156542550831634705178606630537551925261273938970457083927825355612464708911633773757599140444363344960468626152804839942449964140789028965901671323966752421570005081417613578583304841035174516786316271278047266088747794781765190368993425761914011046104070616707172624633915718484274501603264949496747940541430674812078781061550950740052736781529423692521521423215024935940399631589974911393904014081046787339348820974872040717779881574528252453717622146142340710613272282234078544792753510153960862836781355470475231785905504649066115031753428687386707466379629688779808872270463598783732562559402823570570682931770801590483830748849467169391877864050066851185410640146484783034301974987881970878879492837751095451777294524240441108893352684725263678272723943790121199480282084281864931676935393000513308875454129507528860164350864034056592261087852593809883703283777450130806958578603435773559196194606008128940573071560344108601571377602248871852510295412577458801133646861083833147140531498333704422877284538290285604891922850444218554151801770659089631951863895489858301596307388632380682917664324047938038812726868349789645017236783534661135170476419226666924345968891871250308360152798475054894488516270568055952156710385646420268269180273581438494709581211278643012243077365699648198238493423023575173873389543417944755092759313416278624212239301004591841717815424246288008638358964931049453524520382329243853064352473822579252236044700612621477388910304418217931826551760083981070095273650622597581399558154437465358003235530661638340743196506752212086377583358220700887480379432312626231338726845487752522882117096787339071801887251170226989373889293514155246875734113828439345079689853949373094754305578651813040454962862709514354876816352012973572590575067083200000042340307382895856675685831045777200898669261132421143806994429942455035792995584728145388575697410916822707856478454128055369992764386502335024557004835116855793629417079756590391420911281947292439646206574377647972829314376509754367106533143164013428886364838472562244679769683270987215035578699839600862694085470592830696778429131420405549587645563717642663848037337446721251312521689698715925675065852015119743292592044639387201240947954134711473446631234829004189544051543825766942987475310464345215807321212327187787307844145528661541292201084330538163940664059936032922700553434024085336356504105452407999549715192275430081807356412413320338943161490439998909512619433343572660790670109660755833139921367553127164260370683952214164727912958991644840452709638968071371689532933064774524507936565893836353075384630898942662294834861084289177143675888006253146852349337372422315091276129959795417038611155396460989715274571887430766756521671135391259990776087532365804783240528394173630259019325745946254591942746694167525163010224395932339176003310611290621161440912676459391383443272276264784537706538905030807091506564991563270227744345289448204047338780704837236439458889405271176515471856279964116552774038801070393290530967074587716837694002253684724475714572287774653012132627058842727322854527730728628614437716816293512078299811117325289149729226032102091131617423857350956243877556223836645740993971405257876364611123693834176261385544722751950475687566847634399013072757067646119623279081465927757456443021610599497936481119155333890110931057524294647485775595222563787614841945324135564539924652737956147256928438942269452649221981333360639544237562739229802191861766417537851858263360829147331795824029550058820818060629466696423922814534632345890745343853076525780411677947908067195621165420884186697965805595110413331871702995489947204840394698156770233216273680848388583632929890755482187410503548240007297518791756933780570142079188064123633328855926440197896266925357962060658098974071965226781802954617434713706260899111502106831184598454916280609082243564183949227534016297617107972376874874692321336015861516788973696187379974386759258474636898622024808205393985386218025573304127568058939428665947435367852849491426665030238349551476748934662812278125009647672042594735278208073656141851360528752655104411482422588166947175980867260752568843773802915742728380772006015149069614497724217013328900974441531424648459984272594199790200825754753941564359763390808627835301122918720994868452401577049270386773206959508219117552520961026871425948049261789660162411120032874026752610328415313649181171745940149545996453959483975071710610456464260616756827677093272566606264351745977111025767733138823436912865189594305894329024690826553195600129185162418088250510919204502143673398606345515394323093244082075315423082411238233893048976390839799459657543142311701954590721083979783024057631011016010524529864621908837570632901524684930045654429286064486705849155492627904245097897242687546907985043641445135212085808826069621912016612106214323033230086561731152294929873830559617756093033055790944565379472301453287272891443159638939953257401173707998877571276523366356755796676922523855811187803959929046900656980728487630347450905099039781570611401065540032280663769388708294905145298080426246028035869205497585266050541349727843225825690191184893348500545560562742041002770070218825906866149420608213460321533746181879778366436615328050036286048933998991414962434155434514214657597706417556237992843031679280166181217518860567946161472101891092538020717850667381965380983230765362809539001425815441785275001035479043662959738524021762642217947359114069441691669217688778188901829227556760313052751116208068165206922120885024092047307983055166983858522870891140615820376837777392282094453268518814087163323125877335349277420641195064083645214998394030324804056822908323661429042058478450383845748809516136239515321273394354896558646269859724821033676436979720633761414325922048070806881294076722365816316919156631174251995966122647231486587246134178428589009310967771119495393785209348728883858313294895648349683688319687778015882529651750266986751554073071927530518282254808685595922384800592955842605839403903646584264020551457882781731754312139584278177571218966047105688713507460059193708997812240752721211509360482188648977368387267152557794811083126887600348033351927561999618510043601095623060872038850650779811361841729952493037331913106738081713982419686254592501874805981137455530196141900831634719725464326291811038069146377174312581429110976220782519733541395609464608831101472812163934949002392256451198592699385856282695739296673902274892749003870076415917741490163344538629041213295830685881359150421880799914961627566877083032244476318594541263306810123031308641522584285862644134548918420311547785259209210880564425360612926990061150092703531376773047913077945108220236865753216497943152829806398376048120230223309107495748376281452686442411557960217386776187892232235648424646654788621582710307441387416038203656952736388520732185284097312152785971697898795630099646499386028929615838916308894028854541864294048271916979034289423863588939349413210689545436103187009160695436780966408094582062250911537869469574369161208515651139533298031215568447285100925725647813349348839187165159980671366052327574214112402788875256312372166287277703796601580090202165993846007731616164871093177083413324302964002344240852039798026602174652396716265781697169616844593954768805093568121105288632902031839633908011217257369923750836231550328474552136838654741428785227279466439383367874879257688616483608402650595166960665325520529982459242068553682731941351792205010264931022941965838457509480283569686404203483518422470777325886917689439184664112825236580502635522960955402424039114505179950042773641285178392286951920364046074898834980746597640027029130853174586074863209252551852668675118891423581997700439511924675836224554202509952004040182075982634273423218678445156326108933292452959383170997949914200849794490979972545115853376999115580756152027370575667759546903571583874075204401384526638967255377190932111536722574197151207120943378974913254056680864039511370189841918357181468982656970649273767759996806917851815626215047719557182076022695180512398368181791649053900941156114208874367209430047211136251120638980846330398655665096321938860003972437781790818075698510263598792222012606036913150119612838525013230555029100529835022517401177545708545692951024483127291422633731207711044984640812095942409497368899488904119078895752822999322357176733042536052659644008519743673716219388552324219298667509454110283384748429324807875759581672765860427436043743337988380777544645956171684363632324271546186290232920350348573081556662575347360853277017881786882555678600787872887735515176572090399152745283995128185380983346110351086885562006613784406596539257578588243650179686084638492618747758226058202922891539608489252040251331632002267020743843795666777547217998805644247019670609955285770963379514371994606877390813342131151479164865226063712291530703152696125330225134929556781895151481094939357344648839387670345971670142863902208284300129028125988260302323432856868907450431855565998681511309685470686827514639396420614185566226824685780327954428620831394120162508654374143403246833055118551442417697802607162480446959407238140458529825307520977680617731829448828672617371411890291309887270976236053357340661468905984958469511035813418187896944109972973098457587855035249308278655274554201305126846378301517176619012852815403698994911202719766453933354878614492564734087219611598193921091382400795751839807692486539341589852665076476044954607319748442669683394819573417852219018692940284588511393828175522550376747205016606405574310759045941663530984823866596383326033731465992731546662558632239056036185978942669573222264551284903397202731775385202952588275053149188556054621206751540448892059215633864182870360123299730980852413751714388734955000182476642761214303144285862392450001552609172514627846268626594186778904769955638380505575712578447175933371712762072535069043436769787239280063551048233343711370680011068325321996338204780021151077627827815181947766803012625905462871290887889162587702794809248130722409636535865957928964043850897899539767551907091579526226691851516330391358963975530699557788972783916523912065335025660933700807054371803559871252959614262162872798662676788591887328249122034460957804322906658564112095106708705456207601414282035009549352675973645930254498883758397949649360453129689418334724998331300482215176412598161828635899705098667718385570690806864843868545962281882323169982334429497946610574633549385493083191345103836933222876124002386323713292238796406872659544786780083673112625844002379163678640152246664076778940262968006531971758707948382617859685100201051257999554768564141984606807914560025112048615112070087415048896786155749303226860981232393052563395999971034779678574663508481937277348606811081556028402421627011067734526530169522958669248944052671613915169444481043985007473771269462920616036035122499567644944375673907558516736338981377168068690814136906406802070865360291056861073759164944291287201809746990748291975851094199873466427079850942755556395023659865631661693600168913083482543971283578317048782038263969574223742418045075332232109695713315211019050513558673618912929933681935022232422509310549893046025990358222442495025444256278240155270621207846519943438772902004908506540910698338073504423437941387965583668955735491432411151008150278622673187157468533255833871820315853617994986805059002186057366513347768476267111381640832181626104672108117365853044541230659604835536647293101484095965381797650668291846492182911303216495414396531529557472923793721826941301994836023136935542237834585368035206851557897723229881180862944077261562841590470681655406836628889036027935224808501513506472168958049557712249979899761926476475437337981846359005462980379815377771653842257472826909331615786396594449370281395868239381352135064052760616906844537227194727906331654063523675672540635707451379706845474842079471592660451423626871966327115575433523407486701994482811815428112388387498927487158410505457263260940649305582506405590336658365261882339453538167656791864124680613539012247941446261905441400525509687580089471899864762169854130126595569388490791527402593771797164538631104993991384898647674596918764985488880446805647991608649677005953841533960108363648875970525044402440633804766950078015561869788755362843413861126294857427276455079990188525049878653769467455153594974407340413434522407139230060198506122643365259684782290292708777603353366040820334391348817844266906769030720300510971948591232592311622170058458280672537631426337691657159969699402996459360495049027880516514043605998420119950651846730083207624052856321397900582786765601437035790289820221977263100607576387804952011849990668708576397467290883983098875606361679461556020613576525561895691116415840260086149874513417634138637622127608356095421153569680436369371307369849479811534756880577422265625806451301861024157249229068130588675591544941809216094536080199805091810254037519701628181646376308841062349260750963801549800447733877001289885519172234708686989016865609154615447226221075269743142468600243542382421275780369711249610219427032140917245816506577996968225347212953982783046139735169743333198579835795436886650177338507767202511531382028583593646182816064221733075870057909940448834556914073752288644337548713282287191489220540443877591614105191614036325006870475350318027064207307816296492181492400852314894492518544884161432518549084106609502965168943377301881085917700032568225880441034819938274274512596234265381996122394934093745221726999430904757000898390115494699662713959938852804933580331926676039936479191826360190808284495319203336757803061727587434587863334958694912550715050518778437990631139477365559369541216442977669682506682214936247458692908541779929535004130797649860026339818966259731746756363875589415832650939403700413464490846756055823367785461773475389219457523290340011408650841274052525451987427996916338452187383966068760038986458729372767890706418075456280739717252986038728901873546478477844827242471591639723860095249475136573908638678099888755078553717409339670151863198568060071973128020446492149140197477770073872674111184470417412525749196850495268507010400621680831326684610205130188936248852510593983133992214137287399893930778070068376149329497718879151953737686073477562773279852344902278032836791158742958128578169313301868066933526528006929000217431611374997675443503312934347027588110981130571650205212252295831731738659210216981491878743162283650782967597754795951037963612805069405934438157569441941028622785873651707699405583436397051330663607743550152204216189571063764644658960158858247699732781032784355225662161698681262003079084647950288827609508244322902001319253208779307082795586396377643060203717007957895073897986625045793611490234750792377202158439058277272607183245904741439972082454666875154948944036467944588421024100658204215291354238942011634819050980560610062395543734317198773560340984984477020013009964200197576978094978020659785712739831802962736604109567896631634762023581131723406045616812001949354689408600385602566118746511819055047604055439956957116264711345864257484851519944386051760413269903337746884570815969256904437647545953068143123905879290109573564987334117109980204744522372787442695599613323393367470129963732536664091629349680870740843208043825134657675511632550486482960793038750951811909782765073122278324434767650030091573690668806845618796286891033498094147896442651165467589492259092159211338467464973394122528345062076570814313548013073161674591436617795367394004200983288956004047461776677996455107103077594110280654494703325352381532889322767032590342496679797710293431408142161252421829350298063273155000012529985897959422935991459576219581728396689052670597635563162130636221064002968490328164025207814750422311473325812739816980680220379273683722979728785473237305507456266756669939999182310374996375375477828529657545695822618380351466482513625967137558064195910609669412820631428814304852917208838259809574250096124660186103953198805999396452529503847328691788252820990144980551269400026139741143707043807585676707162740354158982920647003263691565285356144284682015091757316058020036590008996405916124773974612946914419862991777705477545223276288402605999958221181525421167943803608504644072923449128019904011741726679441286653743763562003197030010006072814731626656520330375975929698088151559150496634475913528922976813739723386640776312873436209803338761977108403933038494203561653746468277558088266394605742935691156582447724030842798398832097042973248907734731833970739626726210936135894047475741439863784647286741090378448665060071828325356606241724249496666080829371631011462231652720932787942496390528872218123474790863356880203326522220331306455364787045677400947375783232956989752821707261213840289305502773533355019551082724878675071517258064477269351925737700819113845652077677496097232018894544096931233902158813397497494244204986999765194978213977615330690315901355905005133793070390731898283129141311691422157767478341621844197419277134503824332889244741854773579923227749327305132808148909379110137123835763662737828302739085040340308538590839420121176941346958200052825818536874278706093657670337376375979054592893116294811869089521109548359457512336071274860602176243464615328256577203404274158669825057330231292186842890938363360925206262825162904047637598836125578844179979843473344586198706188509528537411372501958843271275183801708650994869658241387784716886268479313028326063775778388569617218655835088776839829113173949551216615612839768675835474352053773252060762338748811526041038832835508793344034209392373432415070958779872576694619508135458220390032895474645257686993150033839058680782934636176687054565772144270135695178755354532447473075296562502804647243731522418788212197865693799660259392586043464723394339292278716063263922714315383368558373908910996778799919526151966810042866805802758377706227109248829814467039665663915104884366387629395162771345166504535344963398543781384319734061226302395930488054622406218023104738435598478632449919473782016200154518256581620472565455736925358728961480745161138753293065781858747303197436616751912652521068329571484364270105783271277507315642194877951086339149623658806939567976631324174348472203635854780427013786659924779645815203833036054486384704917397238906390312813624449523663296263739045885477887792668012830927297461682953395797134646041858565360899258967148336531830501602672378806378549422732690171056245523352577361815420368922786689191437454711555239784854181967922139380500088660827942047987034459271816473693828578966383660203471327322852433740137090492048936489608859900887309298508063199115507668567427623467872794317699523168019318352579401750455461911055197785041513412521839657354869293063052175288787322549363270891720933878766915386024071637578008176827044501270984247849027797859201644831194956872285769224375632649055515610376372566442916354767825949875803091711014500072609897307953220865124130123502121175985259219673860465357025894540190514944791068190806778846480015257374509914723546925624842749463601408759455668274617015648201081032070517801845372353001109675666805440089934336308622299318219960636195877577994396531498089173931905839320499673855882086019913600645028702211034838852049517908729278639145152449205108087609895921676314157285712270054046182391750683902119815847767599671195551133244344944178220641997716772494069495070338344035890711624567143024700670344418251256671915608312540744638127461208079793232304591484752104141069799968070233433086729716174820140581216869178744759874295621726433999718609533449251255044293542584229230005901133336309245148157789003223791767302335302509902976790490807424226313124728088122734753496933263762114792384265130466472385383977718170551810308651948787407015436834926529968782292207960233185116479499746284899353319286615488435910528359618190636432979642612389548659063250522860977807701625333959032203218535395268379166909308130931780599530046496308914564299385609295493610529793348354636758413446479468503337691976958209728303724363616316126970472275613342235552064991216808412735095361370562801082107094577679364135615084385157673880050555201052014626116776423867883110661754501794510658101748949843770779311229142044521365040858096039659011692150280118200948357758793472662737611148187347765852087841192116631547500294975371082605058354397540434021100997179891622787811999392150276018818032283858555962571711149689943821799385435674360296121547162352569566711320564355983349476717651455370240679389775636411514630429253108376230664176902353887405949719731800684226923032673682686536050049831894048322119456753531868947330062348051072599253550678820469807196117712161109391817220452270551021094893593553486681698505008549441666987364298979898662771240855552388248973668179071106680321416555680700870293935105752199967987418559193421348179868521636065824063020507592990918802563716395681908956936832784904304907566688316565683614073663373289605880541166285543679441869169837268838846573520092195249576220021545217865461719133155006831583015056244543824751799943429151220904233973430531110445080293446468441326670065807562874127686422993484573408439550017766162812769753794470056674151188915283500202296342829482623876156727891992651832898885412168844071691414012818609166446767862512764163507975859329409763964516927838304754656380142734894812922678706382039877741945113082859700764445717825026107788645155253355789224237681320876378868243979880516803811809669673830621077864281744497427538353215044971942441350732057926089106421946850134801483331296129356286211989552980749939137845809445456525692064810690302197821886425192984131212954866318636961458280738759358296014648485390145278481232915299292039761819525697335403542577724282090131561600557890797242532100658473923123788284644114894365849842830057401822000688193858424351173040873823222703408276444852404216001379106805873298419786865437661837989226713946137457802749080400039198341496523142109144404644409342127565201836061574436584198445516428118373665974997510041444022464871388060972252693398778381796814318995865199441800111862196620289959056311369147845356969099944696602079571331116710484845698045281754318137962694345082598560266034047335652113724016384996365922797390653589108960884603367939617269390875011926607463050296067893103582454542042723962693836005695425814761019067347571290399436206986965839906045915258620856199855361292454578084125006124011855482516566359555484720942347925360148496610612433835825158171046160676682127672062353333167940791473468605787825179968525862165215505159196067043626745646277005804128433183595868740145079868450710595183902306049484664696148625590186665123861644006260639103613822283173407674633671861595049212572967571365435619007491573710127975255704791505689781715080680992923694973914452904281413121741516276590946946575010229431146550848807600077502253203516853453159356264074873833025076490577275565308135365037127236065691712554302499363602765045794077342050015206736290571653132043508367173665121545188113406366510418881135066054527941941244819260972084779318872695589819285578032964956010197198244015371593128238487053758440994971805256640012509931161389160943365409386834929219554711879188899088669332618048478838095889067493626303767018686339587835234053347078181192625441433770262635207470836208612449696086783009500045799946983462739682664635344608993842391216410770828031975165402072269090806195682567214182072870438609017900853226581692649011232214035818325206579846637412177988673470973397820332599205332087126558406682450619397871812994530017912015666110720266190012803605271517067568472603088680272336465814533640976040600055626289139738096003930705850501758034742029431317590481951617962391379689826531714574521721394929964398763269521945599960937478983500376872448420504701114090277384942009403409833257757319771359142790339724307900903961868806183342750105407832012298967473997059571682489618297632991568308690775458232023228072020516136911640332370633271643329349151763674346747413875625599946072668266138445295642261639713204731603867988079496941268366553060791851832262030264171878890893226464223216677646485901691922510919828085384650099242840708395042478795351037801129107452838933968593427153820824323629160431823150623905642740392664922616774347904461274902940790367728144167356160334907310450820388307781322439597683792310392299771576110493991624782969277373908861500756662555400704010002730972502713001335675476265433022717110648184778331616280508839805271724439759370834084451702737754580257398200554681138436903495220075794997065932647514154509217792544973152265610267985364066943402528072732315621013250163185935241159496031528645305630230407786183317552911209688251271884779593002876578189763747925929839513042187240157843939044490296022518186135371942782358628493025025740887394942902728779882607277776140125205434291773484985149858592557153523386936273761492675672118911610069102962451651725769089276602855849155858336582951006352286391552090383045623901941232559250692608171132449351935706550275082861663804559304168448644453655776697380786997884138051485608713385391999120627203925594987867198405567000306707891588914847250925299588999247378623764171784589834819293291739565330437916636059957332375653072726764984567577965796986380408970144823124753180073330277024659437813491790314240662458181525136972473576190443513305605731757428986698249214713661922946487478446751474969243484623654780873457709371859868076846710680513693632299557099177809846813815730865772264388767029612339251043612182879632918034679806503408722110313341207811136928485806668135172504792822092963509068391174703133912418199499905326738265101108176126305905296105870732192535889443595593006555146551196715606648828781122023707574183242673628200067831133517379533995131249712333435585997183156289567889455293593574769296347877915041628670005674911576346773346346929762260067276274299486857536502952852949006326971139012970652586143535361918908385483918580046978895524562876035653158472849210343920971925144905856883809473363842898939461187856772959247107661420707511697231198489467307549035292089493880663565378611147032359153072547099270164384628519422602166519487740275568470731084749815950512313181487711075100122353142113349826736502906663214063093827127443057760179926497081094561963849717419205747905482315605271952566653820846939787229106081106025020240329532927555676923132786311753966484302809969697330779152567924607297404172816526455447151738813334852341546796341359480561997736460515058686943559234995769148295707290597318514129129648028114236154741722644616921045677788725921585144279229445111920019019110841848584090188348613132073756074160716849503897462614553614790456855818467670171151168645919662703292751803820409825512258235802229026989943320039019909848922085117720544708514057043863679356285542175367716037494249099120238540320398887594918700789629968377293274274175088105721708924357604074249401538133856552076643220225412942710280616693112339522919346873579364680073644199986630930998141159360437500639681360132144410563990254821819561848097977654415740882286435797739821808520282538678314380383240532340091118417260285383158184699763901239401635399657157195778505734862217342906219771692583031892699307754338970938366554497264822831776399878425404062315530648924111653172341762074248098814632887071807753697798659614140780703556086757319274397937352419963738985615313476989834353235002754139013580629293308998116879996604370747109341792094802649394665569838272530312263532234548764867572325847135332635526330127851921717197793079679882161549621823305170994602479563204671818975789591514996271057969346329501689988418217319555518198346322424899901866878904800844080337590907604547397140619094877577015260750088715708352631888241821563565620680165155149833464823487734768481214647274607862148060726439173609056733373390973869999614919918539019879790117594084061638635623513784124521126257615934109201429839367848401538275142578854758896053735502190377260484357114135265457063272722928317970375867028341061015779122045407147889294902029065867633548004325183854862722929662989860823832196006095159373979586928068673659576741538951696539153152158370703125211497828166492824191675251187705930658065361432140479117011272148274484635562885321942789214093596794850701184808303605062906140898017186950717487111044616476066555441759459507295776952373047448265075200687646083976708938521221096385444257369019078035290849293345560155702037815944890294657188059064737349983056025167419159225702118693260661095683183606052775133060003016001392433091437973943010939654616027029299195605691586943011158984191799554022659679403116779785146274110131050655914565949413864608326057582873681833690643211824526517468848008603372857128325692045728451743228380054031069692973663621853303539155686519434172141867324056049754907980311355314856436187763418384972295352801617950410652959797077094991175218014610034030891011066878209635770609124670836979341021796625409011091431251743007032378912113267719513603038824446956680497487353706020467285674150086305728041478977544260509312444616621137643445598221253879456273175732316662403559097737391873796734772444280124624366546347473602246943557420073614889449436804348024167465352562937024153734115611088942397083611614610582854844334184732198887759564551218621152877065971788415285884200227213174160575254333650796163149350504113047998284082734383268350369158688258071035489860383579916955652528959306475406125952478393976432870683988198070495639539756912934586304629729705169913169238901075622720157000162372446564764696607711598196713663155756631869862534284950790857880182862643441148230920866920340769649594659917348007434878945043361997650888203573663352283030633010963573558374761648862159853458133832823893866388792634304221905335098717192606887468044357896070366098036955499202413893435798828401252983674166345281721756188878085503956101322685160766158433675518099423477374894050637754971413416945269270185881512031719885146954940918581118582894539673131196303047861916394496614703801253823846176821313734284178609736302576263032221709763084558571003393042634328917683290309549178019605273490159444062653626306581108549984274369131698038657173950769054014649181798692776951512109652207308546584423370732037616503408353960294082444109860547716286536688759754134232067514716746884101965612135598313860698614383406524880588447212410259441020540308977599139077953174770166392635589490683141413280528504638098736668066661471033780988678021448760553535537966194384695741397517286364038938592986474083656301789474795259553390368664029480214644368482801113297292610009739530837577031694624989442905392230500266539423051513953977598508498684879878224842873548286230895379831671510119360945647450586095010197366071700461992823523682591511853153152780862264346590453337123224124851727067662899479549392505856075349046959350824660299553556266144993509903616665577681285225114001348310575142949984233064607537152642522448957260376444359074021896306919241076434207373382001062967015856768053176642148922137139894637538576205642060514779974925799502851788732138080080687287776317635782825387288771501832950881876534968980672241490159686440577542546331976740072283586419460577152095699523945565546535683364164680875849178355569216918962847964152085204690937695077537244146185639268562552629532941325804644590303038326809792869600968175230637433661372459210123377884209281557581944197197975998730604506225135444736723570272054016939242941726063215281566023305647644212326435450554314920495795154602180133570700086941367270234898958766842051085258218323086902892027880630855077419584199026832433835383292195532964499316392876637485156791078947579314101609795281007937494652056942464435457629587380879702467555386322896509513059944538839901184175582316749837880529382090152797782843908940729349722648929035944198761949045452304394250971395581999628018026726345254652572540384013953855784413930507927564781318036925379423999138627922763844244834458296714955297672796038089372208351083213303138749428143313109194478456063019844348960481692786808507227784941932630175465316292794215516866440242101333767318873996507634558223017755498147177074971304996602960882626908497686847736844436596214522216979794338760115523632909506138764574994876953029554189545539182847834397656405353510087595044124903716323844234220382853433746828097875198630059911744745517743951867728590277074418595151420103607577598603928954006056683793820183811923016048689256721274242420561785029208144623677473121167633205535955902936861215082871852532117875863183414228675483960428652817937311719660740992570151413744237499678331018940799190839740650300621734585926541598870798197088779411291958420892636201938024956946371794455468208165685713942084898632039136766605740714267569309683201073265260449015832856971238750877938679014145277148136691638009991781109116198401861197785420879217794123224600677778645157935379681669305817425820971060401392629333144660291226711547183798606553309812535631712038562839040065211102311584075384805310251262097658374640340627966772652653820189605888514760988887585514219614278267746042186357966556897270611766778368840028845073854650582232118866892324623929949953376239746613873662678566076022659129203680791219229528471242311161082218448372900359820375182770190741576276212817166654352694299118909658220207863573093068081080741092015213546716624370457440591920734474125788597311841060709764993312587739914072341055308039356734867013851152338826794932034899374869538701813109702211025196756990422423296881324823843232728556985107380735234320884487368717020637071715487036095744994158860050125856754436743079795603554801141031795467620617372616240040050614292345098661322418470163592186687528949039894747328565704195025333491891148684029392734079701804124636714177523759432016601257014140377877355579507696863241781606468444302424107988987557461311591348424428974563712563046826869281528750419993635693878066610537231613829970713421272384005294814734807303338670925615505555888476766774453369845066989184140685622323767496442936978184696484669993581066461677165780491024201064556681045474256175049880439416178284917846565136361245961035835595776085669576027261595622143454781385380518644603224016556684014524048936924164336413592160804119658769726458066997103150882414136965032162575170793099713148296524316702601660436379569953840978947648558090019989801702046499252318356014213473748801741810495007419537373034680873925788332532194685563685875727644125911435220971736884049016280182003584869733706202288899893631879324077156917542065689689535705426914576600591438278214127504738689952216993795868822554877456293809536901644640284359144142983860131928490207176436158937600136912587467275257226911980747194829965784404635491452502636343995512060937148067891985756339841340161089032027307855970861568675253099468490527039745683945431651005005703055056249159796296530029230987539746299419792976178742147875761771815761807129878718885481393134604435524697454148766962472633650432290057023468503523195995442019922182113674967670973234840568124120788463999513310469966918590446822549345051011691761233961351354646074040547535823780618610572951016871017400021656920532979232127692908634080286892555537690838650229942805637856907700187095454010768373039276739193417233108386407257765784486108791614349472109499596756500410450421079789683563721589193723849792213773346905460243923496630513104426462700641825270631488274075032438822724271498511768820379489500486245892616779597349673973097639775537202731098380858833536548967417505859453480429030887525986283893527723187580551108020330968940255788096237782727774873391810786772937741777555590334564923606155041151469074818243195104943453388464808492788416480336427278295066623896979694237557711786465018250915891845813861551870237496534680980843724256420690060688082794183591817717498642454900200485215488938753376193823292738490473475626936772101621033932248771651969806490026310820015219899412861974748698687589412343364142530021145203785139459934601512744394968407552047396727886792459277511409604767664381864518949765363435911445979207708002466941143334499019581160524809652856611495226661741857407421556777001090996527429291899431699189164917524528992019198352838362629058667937493504290796858961805376300368704977875489283710444122223720423293292213677614687495902219334193808401543891718228262952212810948383664690079214219820887828266962624847198958906586147080317051376996998581111639403514111445381423908794092047299155939029164046023929172673305466950067480822975153506038999881655394242756262594425842083520694716014133993466744981062016418752356571101866501125142080793938171417823560128557127430959756478619061123234916694932367774609467041071259886333841686465483880685414865218509438015527501696425369852679554188784057729081284843006420532678357143283479031103155214561597548039670199371020554975943852023235934450807549030406941744769483069778001653972956718157027863976593942136300209295895362565178981269841190953784887373152688145089244216159927744223655908705336807249731261031259787129931559030658046583363227439223685645719374411828158193870174935568521615905901720004977345847215917602037704168790092746626051677936170299999928770013088841551663693486466831145034624330248882627353270812722028286393169274938390856558782358545850560531096787232783692512683458524190457876707510648885743836191284678328698109735247918637433182945371492073046358733812616719256856543898542370222518047165426581331916680231217560271519178620007873820066848842746244305653006225696423309714330803666919868816286072573945552429627316270797639632759603835081812762371736062537017835889243555080244779057639861733765691638566575613479335372957387029702452534076831205789098359724101810783668720878197595363285969088085531727129979389677026122321887264169541752842545139044349111248891068003648995570698323349683757202374536392151513447022160224013312095983394839474768384330563210650583949535595984541813032477845453527092043156880635596966881490175844111658095625203266465276282975650442703365136048064176072362163187704494955975461302457419011278991690058854648362952344807900122870798441274163469127889247791219552980757568637575761429083684616564637711091719225487845174007802292523516996962021833958793244541098068104455536273109556486946186872544620118067580427351397993541994226721866490315409870190040783918462936959086521882162507455967563746150645209036782451176067965153119882609150889783022587807930548751253740255505152912594267617773791900820081142308349889537711996286814615675659032474551154039045379345678837023211439079043897587935119807881129949289747395791436237389993867880850784916231557741727211960944651383767406900796119566837160807991085729204340608943870620082773668311430020407934413145547327678237980162675888708137730809515430417080955127189657980260680857128716217988999515292456029320243765865174956581986799661087022076869662549982076434682555843414221508149533240260620719923320549196741673942530974317694024573139320409015503161698004737524239231642810786037828540653402632699042256149121001818410853627814491324725845916929363037329444018561282695174396745666594295932000718616375677414836721517123677197994792761562378891994931625554131819800483207095041291122853784127016583546461154768339291837460029392549583674659222752706405910346762169549808783447846254839616520765863050780089289326381172155580450522003427468778533650270124893929646340084525511405433337351411629099630692722687958872501140436088764880200037125934227853074978923239124672758699040595502338390118560171372945671492438249037411567779704843252319915865676994441141394366194166247688972208130482278909822310966541406136670986817929312689526358154477175641879390730304145304414551530343292623950309710428064297111896508076336703745562724989819081669696957954082201123050969487301881634048103224405225591795371686693924569234330091009977730773597888880957115713846156855313138484699805429213514190833935038213812868866019014148697604581724873107604768176434012274396482216496661173940422293015538464033959695914445815557317289853961392798701980524725948494538193579920256242276160746240284209566908526646089818358252956509361629934938970321483687279630656335871806608877122424491212773354608876700247591297924738384306807438792331993235110824201072322030889489876107046785455447224958878758270857894048694074904653572932079596185308156366750108727317344231843260297340291873013921568645677371979051865486121972456396412577903220472055681078635085712139288011541315523309463628352403990269916165354414332784257609206805237494206051823782664323360196136680808426840689135192021976337379999135069259613661727295319200060235387896966381738420150124809189142314840183376449390074725607176627235788244247322795746158527285847264563443025645807187231829240164248822501501404817610300409636089887711518174903173164213194031927810509329598267609927136143581527015233193620041677301835288485088977126718514321603064481553388452718014353881122763926140969016792851728981742864732736756599464654655904323551702003993086927308655475242881537205966433021439962044582144424207921010657475396659288761461802982972678387677533908773690563274380698138214182661888339677870240928540008380934266531405470769848857274540929056465092062668684843828592855350513750996502835614125738117741331478434389614130164806277996002503620118238771584860851866906130768175539111176029862120065904279007093127904480274217346050136658973565187011375768967117827198052817031212069098022534306339599117424415474431680436545042981035729362251228756069721916118850451018412670572657915400055059391795766413253345436508748328180520139425432533318326151510360236986402154399994349638198651919517642959602598961703828139523989653327115409460130959087633511405191914091695634375449749533354974604522172988899847886640472091293571557625777127962260312261853530868850589171142539797013822691007096110499105748255120019927595931476877315663118348342177331189492184569690376575621852250346551022447092737917712487372808459357764488805319481378000065234369992947198676656309161440908775959786118755937411393984344403001738126920282683174894409564455040558695620435038485827160721648923394115241114725847490349560103183124371392821747021800487974301408417195764852054418814568211574902226148593714303853053773182585519430309502694907172556822563379592803101459179729390243401302145256728292903447885256020033613695473955388120115643638333824784231422661758175714572413375119279543517662683062743799248504298390980764098532952902090349314914491067597161462891145445079277433169128157336609014354706466640317639790939553369214964964739224086404495027595926807725199834250860589276636169423475927862324917899545259307991987363097834222188542844722608242154749486400422528378020703024918672932909547777157000209441116459874889676134347426343707628228709082329906559942900464119570567091670890161040271782163519350388509961566173315069899951110140371623873626543110907203925226376417158106927210681093719758288555246779131722468474046410069739913854750144558798541772118199581952927331933884381000231447154303262715244835779235379243068109968959386673301844102219968059579574180965298717702916228195182977168829773020585859252894761235616342577317261005827205152767352541955599957045287348223705972507004304001209117376748297992458658157691432272452099156838835525446221400286894208861492378767837181908763635015159849577797721558703301552057649759359650737337553344896712217866268247244419314096439638244163771562701632019182810354952606105350190839632596763854385911685835776966245109708612013321263561385316709430339783742686381262865273642127074847517298336908596008040991381990545749105410571998393395393039440492147299678741049479248515149968251889648198882837717508837645721955829599235089006958105888155478502718592360219276587498234764378765234417106022728967109806149271476744396660214207501072479748888392793234104089628149003310821929844328240585396684659367287768039810023799436969209655420467416665098215166290890615158680253713828315748315113716858189519013486266566247438078658087653636280155242133063402258284944913709057388144741982041857695084029505378680156216354319770803150577593398398023486970172816993613394854686953707830285553295599017562959039679026194775326018227213614740924506415036768711884994779096446438064390032927151145780670994546988540153664353458031670201276698747379828162778610803610072885425774189455447281551154130277464096761535614591805731551042002942598467076453316094491998920275281399203740868872887439441425720158683927662031312876539846731796828593490951548733914650879624453318468191605914767328535395517448319027550684825835732718324552232467879086038553884195845850146176054541069111665205089864598799647370866718697270841412602804561319486939516067163546280000384347649376729681658000367485258494898186549227916600337149879860530491216925953479195114861730972534238209060050743946847179179843121153383560726054722737780257212322581432043862697204472002861848708068813279925954628462081192311404447423037741496897486795793519428133538384882229881223227120983692522856169014146662488001870189571265309781880831475858624697391071076105927238245227961628367806489161962513571711702758254233653842582085429108735975207378103710151584032855218387761854008902711409012925876978869123988423157431142895326187028359455297886445100689402767343781936796331274151183487611345431211547561763836349488089633588007512094524368060381137802586915846834206632204502360541797109112381476669115515286738767511297108176827319803373328855643224009773101678026722936362163976098720723016911178098975591305410564669750989062930604068035550809772157845755923423897856446372875696175189092889659327180984122273192959107583823978445600169682678432459661507595765477021672415081456262503797527880833781231383875535212701969772362352459151057249650049851377978066991654052337671064956403714015119602945805777278798078965411681001736509152725697767411510261857314149053135903384350730536520164020643003131331208749447189179642561530052755611018560796564420116697196655132228594378924892472397947241901903728761990370227832429147537812559102476143763054503608626678813620928642197705483632194359692680303098030814346386796124068794053963452946897246143055193732014308091369993815445737746794124727393150099888533067582765395703477465150056583249395402908508005446589696853233815914513070232587044111548432288479887183145766157908099471180329121897584259152398949546866472899434047781173547385683538184952648167782132564835780159062755244212346312355221330789714578437417778414731286415791225311993259357667773036881594120192873291535239812415802721115766981044437544692253511900414684199751924031293523472654734299989228036249723832106296468360027526708610958872980345438309989122545943813267931542353783696580309265690505158449479311800064341023284581669156240993235341162663385715280563301131996910362227971721191840208498232431730707872340918838258085359711536811790863117883613141412410781768868361657202114554166984770918603720199312847177146303754177900286684805447119920709643524848937444163671464985531315991880726104900810555207601606644390259620516214718875742817573902983384909414541237877477078055143947864101154495143471004857577198313628589276816307784484636904224652907054228148358325464317146594724846222857558371448444661450038067025592316697467029344262898168609628740013440498695073448803694027914381082691898869224108781806701871003022157874247388118242477469625096105566819698459823563011840622267364562936534910398290609964699116771414076752185758326701567516418968570052994084679721841799378766760639679579430263194696173908672881303932682334893149691187060413525591835375056712449321121530008163607402361254328102102824559227378934820754528015861980282133256272676534777577514172326843220703974906543675407097651592225684557291179783604525056197630720206997350900425003235116300645182680379394402057400016304219050551755771872974528681734627429434007407159029469899295730799364556485478449327614217715568936973323598832483127247498634699656751332429407856247909041344319045325997836175098968733440595183381139640741242522424948393706969121567162301982498577283647153663134509359040999769349447222164808420282029229426337474626000654294184272778884236932429043220415776574582320505729556244696993561130690128259620199098907299704437441833093645639459276811818346490991441586491021241551328984297608639377708648426201879682354717415530150014306447411634708029258093172731986389832831556466409900193175229894745225804145265140064189774642051259939062832542070532502783329476355877171573489117128552282093943766405310872680350353579496516555269050974255688360499348807749306416754351837002825034353119937593080999321222576143320355106759352676667342335802396678612947013870197517532291825536456549054749988990662335201523137887311047372289334468305305601295771542702465491330893108794679447599722257612003228249063540632374733536881995310221203182964412361361218585903750081153399372275020510537024223439482162399835730094915505139558493357359723014988974741339061303147377170801537931993588396104610175511731930870845430017534145925886925808192432589065681920649644508093908149288151306752619758008642904372044642372771533339528975306498486880053380405213643419509767268712910047722691336849885301962303538118784604645771389775959860274193300650901214346626368224558102975974998945077763285643958425939944554198101248780480304385339053909635756596793276108977464398439901096937420516262639409498510289768092324326465950025570487574512833764893250461150549025479370738259752528126282724986630756452940786230478537052600547088361489449274386734054000475771369469827564982205273210761098209520492914182402931352467773917560313617821378676038549803489009232614526843011895155503739002434853800538296851368158116620316071264633050911665931026617297636108752420854600834299322333471111859390526327457522245309151384615511968820204358728634874695600651152971186034264279756159091867998468092361310376502460154483955758146888669791690054544915977730767253831749626122871918228389427769376957146727271472033541447365329503737296376505094016505151910168325442721171926359615056067779945150204033703910418672283356300821722518456710631661870565153269632279531608318149947752458824959125660091683585259683448085040918302748714023848055745151997771294706487993017823461183936877650034590890350883343353952890950618267950508082370813220328820530744150268199773349062003129881154758892512338552087863788740286024483219634176494003930115795067152227961807993865129809633849207296439061041957974714074505122121839160327109700212959931015885914701227793479793695482604314371039850522209219925227652254144008255066856388640787804559073901833543722340713060988991356461813933036234702551967925734778742859669682065764806714243962507570617731934472785741038314120705052447106584003492875665539445561539857331522359559267765304110989941720400491206924328196039938000367663824367534393398766156206321862193065593296144897762965386960991384096130832593819747712778464498177857317105530330309957882175460725174019167732005927499551071320989055978269171459003669642997860484947931523886543960231407302721210087466368488116321487654507204518736961329975795948179807610629445740394879262506523890132711279440385902029714489695120497456276329173252906449321063809938543093194399853872156536005479601877276865216772315113809932442607686916800877975700454934792366491162786669811032942624301426288707402892037874837177565222541100615568369411110139640122124142059845823337775137039709546017099932266603390081694672426131329226918792904076613894470665967450174225894445920051137811425086570072930653311929827646120217070994533466306052223701085062006859287612420886746602402942620752855103546927004806377327225566896217376644513069034997224815917739451230195340342166069743160757976673636277300959194699061499660808901948858157696915095460997240178231978986152568322843127188535605081029596869273847635714947014288024758463781649380962372069520167951376617080610241362423346219506059108229519544336906870445640582840997233116090593747988211712622199832533522130983163071486913331979228137179627884803811594984528070279513601833586331602868248656383291790305844862669143076008235042408623600595892070346961890225690076310388802008047525342350869635431561499593228746202695405259274050097070382948750587163138767428851443115313220188338209436594484552629190238369425115898687137625297536524862853749406006058556558095075721353617358400255939964855692548477152061073241789946875292426424938244769974523501723927194987296463253328738253115251895678798463969238281528245343615033085965454420815058945187039076249431626475722493187689607001504523039553001509587619122264137828016563648824522135785745609727025195568169500603666402093867701694447329783162481415979538633449916707060184263745065549920040093141074555160123895345976981843414147525042712976319307607381942682727018430633945494522690262884082674727426501369117933583148284855364837476464028501603981604954462445800516122024501473598073989492410772229006757023226001267285918382792288270830860748940085649240095211091698557950686426249980754311861592418917351190289150845879515187245344568018285826971184754474319047647150073377036586166295156261606059012843031938184649251339259875278543122523170957367664923247680065669242386690819814019048236647451749320856552339049950112436140542751957964276770842721029410952821276714674117166743218295229139272222806583201257092057226481129230519918196479733358328444411767264549364890650767006965977822244383681108423955938338702814278253578300324842186886741290173054479719791428009673878144481956742021337951739074629440396050417328409116524522938206105595362270975303278772127028371267221795868388215165864773934701074662881129660646831487984988603975522084105802375002244593012532105339653154019400022468865203848220114762400655681307026528763957537124075687275397918996237892572127415573970549817777192291328707124694180056199085032183927895050258550008404622540655210021232879928945159455352105304842066191673603842704808646324194714898708592278405689419366889373477279425592011234572349373576440755110108675703815388777228755021746504827633552302072142896785040637255209968238982146925328082795497445291845442656885101011175750489392592321289763649457995119009087589256578813751241189060344056713559185324164519781149923359689464786177141049479327158657123846385216920976415635054409973431611659194171094899970955873951497552463245190303749457143517147251202674884984336821575970623291794527235339366556633209493974115641366771630636821864536745569356859145056243109979509176136557826284332731074295226960223597116318359739838310924186441975369172227770927477908057585979768571761049356572384520788536907639234335773453342845121785304901444862748583413865413925403916241452407957661642455727425460344001878013584374385258150001762715698554917541443219899765830501006806977296401398348380253384436078795716980491082739100763257148359372096548015464619176814422130279827224151473702036587243247343512524908644899943159756258604462792489131097958988707768604284228492568978462130170250741399551034510694831903092087993892175640358915570728930456559338222186083486494514097413934161753647260919467211082080302956599888655425797087330884584708451455770955752679790039684413808027722515985847194877227159522457414671065606704190094970757498903819431735521670798421530429763924903437272261503430565509730738025293946550166456079781429241310801199015059050336303291807903288051570284014428449609208040015740681985319249410089296662918442278530377129604130530767787423906776571092603109585431650902767768119701986753126377626480887299851737705481445853863254716975550489891118869498542431624796649762843612466288348608769082434877082352513878010955717992805772591426044386359570229910272921998315439503395075051566945756777884117818919876129186284753978628230772479711815709959619811870493773285916645133567897340262042844408337356182591223438461984882120135581228971505838964518987244846714549992133667223163910663663337598059199373334464332577960818158593864079669491312322657669409452025272838426482000314660960505921534449349108297973968980459919384785751221370598336378731951975842009513307921222209333376583268187877071674519286679381818836916710080615152555583948486507054817285440790285867688338748345769809334734707171938223303429560033950801213443816176798535624280363497923607792520652533517902950957520174816739212599897969433874182654478633252808241299441649280153312901604190594909803181005976872694923128793821582495803072520127251258693696713276595494188755827122171819954670407995922490105119947253240537050735025135331109786068138590362996053096797819845252554822278728570877446766751294338835130561979056947066224764831454478245759661757805202303978588903203762371663412015781541805892231922996525587895415538827439627387084463559538335277265712612956665068254397619083832736498864599205012817383695386160193620098767074910400811866122836797739056987125669663424672702648879412830716306955442806192202812081082031090484578923537653096621139244992139907593739936352986927202546473987570386929303090042757890680921075403868376322697382234815337034968022625438212287595222382622371209642089745722984844671521863446278897411896337013869586467969312253836998040455612300302513345746664335324838578728397617819242829828555907696829511581793560379281520529181514798246937467316770238137467497079755367142867343293048203338464502354053842631061952085432241757703592170816047496638489447136431559580494472924810586388927004584292907083030697558580908802435438331930659813516170658401129279908371774558122375573412095826286899798935004655327432811649158883079899608020976470848112680719241707526050673849763822737367486050697340631904848946615483510708265192669583584439727741436256742567105291515923105881299469934486730658622746167209734675606946167729325796684877945629500083497194947686533935086083798933330187315428767520865956439496581460600391664296684406216027169438522765990548912715555794172553052161645000020066102968807656763669828042577190739716940518872126891534340047725793163504144735859169663982299058095331693926891239264150060950700801784810286063798389302337996994797180979769528559244872979630447641325071182056927238738625414784835124889933792453679639930274188888991167492170677956847380685839904631906225592036064969044775283741966504206610418950775564022675964857993260575420628043212590302162763818988409320172609149796631512405206164818590837801644246710829196910836943051016608984086442341548293589259658187466723400503902591029550951238643837802920783356783819209490164640903232813033608405217283386456268014554198664466386801960008516581481092597454715483802970629008060382357494768006100467451709805326232985919001515110993654272948006530047917598442885514881929703414094597116533793471604414057653910546295868424710138546022531701336750744889768318884199192165840090298316036415075637770177320976292222788146023550672241731745316234971744465914090811017533171856426026985736271475520770984433382527101934662134074222093000161161984915207846660930527814425257966006088145396912848661840206375449937009906274168662524623255845395128930346923234362407376664126490631382567152274131167740533706496916146302177197585404283601566554398494186351769348945206181352214775336434475033840139997790634556620606947535125160799728506085862699614877739718969688306778566940415951232410154766607585211440155510187924379383216001824884236229986375413784828305128277427069316088972915033680164161199353651240698400726063127622296534843307426141352035819235472875923503860991538589758305185411929011387142542655004268808613292252485849909841059913798808775623504306975254029693160217618208076026277465895624135074027054782685306742637895995097539642800719253076163146285382029040209771632726502156223328050630480512596420004571318902202064136169601070974281009735999522057840270186881716687745651974791247828304690425117641169545233573602449576835948933453215957690121122086234914116584646302530285277599518855612758834883656454952081604721193532368152413815433320111381257256663678620845407387917295553142485562306203515249271441697528763033106304764224436437373732873877188393267954991227160455153919165412798588382257439062921277533724369699658785191919250131871239967330760150596290884496128738003185906631668327798808117554629632143918736669391207203585357189585829287471761484688160979051913098161857422859472975692238994455298161980672312809785740105107932358082609780139853630431907050686087007249686314937503014416605429857156535080105203648532176416805063328422315731365290570686678687555386275375365046514372926985443453726075311257803049922426074204697386482016971142158663599612870872000597338301986259428915779862497330094737283206108689551822153752233693196690604616909789157479554615568521910246124996318656972443371288851736439817852473076300402063907085889419684095482518270859647495600671123828658050590615873667875955115400684820847624827649958292960095727665541518885382254862541399856093514311517053868248370141367459665392380318469105692656724132022994285321772483427979224430536522173417062044087341207843299709721658926284410276814226895761157486099869248029756451443196546710981713562276714631643901854930356367400819164900833343857511639936361757747003333197898088920017274462406618434242106047128087466877999769639177719804011186256607829822576074322853648375158186113307629585853041705176697775412552811114588385584967365270379405424137240802497261526885333964330141270391865518090477194861671080455818107767644814594753718802909878313015090040837580935278675025361164242085890679343574778182157251728929096567456226523785522522466230213973181776547549204660419848557170999949817398782832948848339063202875943788066064272374324312162340645689403035364631936801824238509526537049105676585583814012498162305776475871405592458372661608072439049520703151067164592822830277365373231840282660579077825651951906519407917418597051590000463961217083766159673745971308501966688546035337580643909795973117857616106969795020428427782579358769157264516044588275725759917606090278325703330904777711449412720510162063086576839715280111845659908145746350894212414618593291761475488099815337726866986409510858923438498393048619989696813120830773050500504447438872598101129738036458873785869233870445155703484375535124768374842178687971699502096007534968480180145298209218257749512059932975230744912955868953535772819791777869996284523503308498938191761362766416287972732006590225672192122669583820634623030821005020286629945509878525769669271848418627115000165287635743076716300611884462249285361368906697968721076054688136558181104916069618654784579245032659481811733299370770945295220290301645396580741669192208392742885732120559660673632231415137825780120869993420708837097642288093354363283478552196237969785072594537322032105540356978895506152166268795563525322713218493111724197740515142995112901035475257038133335103790448465246534415859982546239840976108803207285588203119451224766075401358074810552110980702277273703880918244151814109713721675211183748592749773121082565351139505550835851289924288066082151832169598714853020766404530623311195777746380472516006622203273022831904177018671972890694180763186296062807479777639652948148246271261197521702337814545845615268355249264156558958363938091652532488357617770398667286578664123154961988411917260841572139154743563646668203675281327624500830929348102172847979526016755214086103122155855121405528448645398489964084476905588653524399715296326776831582604460500753964355050908457247061896964213341258701630530209951594427480171001873512608199308519674576851795365730169266057302616378549270959618276218324399230324662679636533682122541034516464710416222298585680753208737407478748218434540183844368502169542355944170422340988399203853629444817084943358623312174574184447130677033423450212655362793104120020470055193822363344831401027341574066429994735767040332972913021300018549383424109025145173405577002057798088546360790478915046591381050702031401831698122358316223210939875328601825479213586700951069345598040219187982909554408122834138202907970790283569410744322352427033751766959486445999665610588965117121312030453775984963320488010990828130803205520408313740395051891462303572791749660521852962190684884064835553906018739392051883121634670209257607185555542381966193115164244913890306247452924189860206528699459989839632049055314799237860520271455965003768041158027821883203206708097421835012813147288109071695865411577828211292555394295452341338886314897151960775595129799075525629506836777063564711275958328854917275030832465847010873074449294247773780071896485893355567013177957179972729754060726784512158883701024589600529582984515573651215225470637130503131007296679515338804435311795563512686692949791282499083946154653498334777985290571717513417998270907499554061603491393414021717676788065226097885296320815811424234983045288185078632652097283541033811649084755180624956953468625431875690801620839907239941352973096546576981610472600339947199182364855988768914959570339225411226086439971439434819369511482029013395878231208746122450566083069527534599970009558816903232852241090737389462645453411830592581210380351208640126622097791182517722434163760985144517461108006854638441353400994477552507568049014325866628461508165307515032837307106393391252942493351789073118067788289334163045506881644884645306901557705702157372946810559766106397027676156128468806334875655981143436510398293945915716145247089514557215546629040724666338064154814418569716433404134821700373261031399579137881393536250293292768684659416690372248380516436728587766182910179156271976543538339804903117469889321258811139019486838075281654325389659939182633464190912474571327182477683006174192725880173228341888191462415099049701069614271873064948215571037064677504276572112605451002159651509509971741807051888613957773449894633071017929470627816181374622036801251431156632917726990416667056120951104129111698742607439774301105241421206833037071862041078907266961665123378017425550840273691666108901541923946240979410170535768763924687677410593272148441600514108536058360192829857521737992080264886919730462526926401008303140303135331872761279491335901027413482030108876331729219747772001496845996608903062230315934320527458715536992565762715577237170249540793884232047963941050582393110604880947354727587306177197672107272634334872745358661579620380716286124822888892589571777052185007671072311027370497195532849459613726880122079666249832796617245299913403011781318012045825260063445321286574948941345161214177786034708412605762503409934170113664608690641356488466570960799062001001320576212280133870220552421052871225014073648549166871516608325412041747088809565925652086362567081202788079828393906213837062927710726960127666042337093929619188301339289426713081166524468113104590244186499753450394613544398458548848093432542279198609058865315435536895371530880147704206846368204909057463388584835669324020016068457933840676822359330843962962077533904075586645025352200185654828724974000589778970808410882086147905164282234383772045547133075661459816537648543843515211865641641212624460990075277824549182669527506893611861817291402849633301964708970945842757239940584273591688696015787356052391030896004474616790577884222599582907273540884947331710206015620714121818885530742930739925824299284198682711672938285592092018753935139669352360342071143543082855077393906508895086702386240513185468739258068467003792656025124985171873734826589315108574391377309498833913920267321670929961787204376081516342289511629511847270125932281357681799631751676918496096663913851058938591293966874623661354035211078280503137764724734073693129754012063231078110573206684608129953184956422571116913086783374770297461106390489749626557617601659921430360840621231510397714937835804601470049636686912959882615510979128854515587531141458965975358407349355515970597720069319303767608747169409586018082189443515026099849152935123657135394911290822010503106223614705607025454448050041611652230290875199451395389533739499245581365484008993401607919384041352917643055337085321993958178096212985823914170351831557116930694795971696308906194736810993941636583570480885330150420664799268186846257534221995261187137004618271133344336924775799524050006115922490674859990404101750556193711998096188975234119800178861340497555941323113798452100161249758301538148042869881441241111494051727332421004952136469280070082046309583861307208871754143111751454194184866910862166898705737324676855960316881548464601985806063213969021327991858779091220847491629765165019007558220509486909819008794035135154829044355820045241521912096934658325117908646411806318476742342388693981247204929548505374321923299944183099082683542242810271023437828791830046578660292945088306480000695819105618268857190539925158718494420309354268690650822152285335768136103226605029992884196609870788529053783513752595297064240841146674351532439871934710926417738747027474505634878175856484990122536381706109249732260499784678471168079093863217924921294529633606791239162550003667497118698479842830678277950423639363614120101906419502821139804106348069153388743616697237741237017431017301049972242655709539705616265314025464043506959757019559723838346428862437601032653114961976732108764312471558798449771876124971361919741473140809828840766645061227494014551164155114335029707344527623252236322219069249059037954625955843200737905883854798399896259444177142644926817602429744407194208756031266076769502127072332639175230438170169390989612593048134276333400030444579319652373650498756913495042796470527621635505070665013039776519914167337001340797521364014815427855812087443719446386710907206065056158707938654579779206844056783917204471333598999984886567682593280050214565843835173093467174048193585294187960446645317177861404721355703623932547322768835711308524726055877442222626979446366892674673136880183094477515368893143944179728793572258516540820024902719575842284458631399261908860806679886245301953744117562459382909595870117678630187886401887978919882208034283712400599965061758822482905707326704028191806242064487479112811685577578251951000122537713833307160850784829152417595662059371651457915617383040220587971402314221903743476685492129964541767915950826875388068310530341729139134576727968144216096038347157008847415726064296098101933272778853241585017322986776226944753068000623241276591398880976641154309562023638312040097163952081111738001051066460197460366249541942115159612577337168915737050567484260094694398672715523268810682409392246065008854523485735906129412770717183637498000681400069066147475035277842138423743642097620146984573658590861579587569055313697061819022073499360468963767777239441887676236835261772147620963256722451778481574438099249526747229599758803853259208272438847825002786877651677318218955721742159860141843896400321426006347653572780721916408219083359867208705141248890464600237074514170776126208940192923320294412107677068252706964416698851750321942396006525561555732030837650395658518043843102638716360037468385465830315896208080003811584600779446314700386966119125126540794347783726006991921391420927865693497517594077579660676971990734649373258972502343501269535114773337398157583451111827888645397417110997655172787319754191819719313630199378421413612974372725956998970493118071047381673171797334695187664177485883860572949996257696647488667719912203072679568579461668186138354970147212061164722906856225804579421498263405391358255347172223193609152006466118886716431878392153807710769928831040783403634072608312623303030977680347785584358205086865894851185532921452453668827794264111343579649843978082479088172517984172619874952354758449277159680997377339620132132832884713415154783938620160669388220959864071711538409277759260237568655641632949290611218736614528617002124646665165957320119158399926899373794443987887442492873787633419407003872621870672849729257587077754978201742152635100598831035269981772691387668206854371019377643700729464037168746948510901760363408448477140722235862425606827066958409532281435406227627876938882797295842716345906421173905343448820568438753427037694790820394943874985666966720091137209851356678540523141335967762725984187526590628164200244422229259460610084374834901134864100559623479904538767907867295183991535672250995822309716851303250446897160839631195129106937558644626140137667337327968107892287159321820497567466353722133058746219385518234863981968385548106998878312311314730030540926206615837983634718299740161759183665455583734293436413390891172845995802254860115615091515874806492203148920457725976796830646969865264127406484078672467639827828141413730155485988254192830111545856185070248731313083209160872940205883180833610678193545473511837985277906317850541288506058419054909906266141858725116993714045752522091652405012581429384864028856171791841387845224454991360372978246724341732979727611718655121600960471427581893089930665390737345269245850517696452496826770280921693469376688801200347354405800718403133911105833739477392395126753714975017817905414441066512711027667089336513005639983263700483503480868016591023378482765403144365905630194419371402396249365372117174095064415076709776799659851775772901169343928524822356352531118513292768868814911597193163851786171246726281963777605824912069095002301425589560670249649393251508400816063315394506415708153205070075825623240494311753798015139689311994009758959300667673167774854535096805161848009178354895209371162764892086658367750723901619098136178480889461656137478637267474430025870598693537565543744229313284433728752412919201071467489892804846989576719866607261327234514837035804593472660950298200674727925471951291232337298094762344498142050733342009773543143113185534224978774320735659257067385162921443771046417897400693537002628253317664216866271054598406544702659549787529057194181110462828500271560248188709641534958868350941776358665060390381256115572610997896689605768052791161520717593494339195312869778962003142901907541923529611773802340069884700975905370086987750125446711681952035087182730067975300383897519777008198077724021672042573004138636519253836428372135017211717017494732165054940581038647381643480028953470189257425408866905971325568978469425683313608408117234014997998700866361380571565592185117463586505801041049494164279889613121074948618817042942356938001395155947830319162984968367509218023437930676246702197255520761414923992828616095432332283816188934390319006720102456738821096960364663171918534176615734690937195090426117481006151522335767879574586696897109021942599060409140025569245921924324272495853147102738173947013269848998667706485956245140031217713573135121954432709436319908283732823694279482745887355856629652151420197626712406254007593680414083059122516818231053933516266704302536726451568401538152497723640906618238225194828678706950055573412881231755179152153282273464104756729622811748692757927421426505404542143034797217811846213905849177917696394424172027897303245603142092354030141905548198191959206285734207105816882078557914284964300764913253267920500168329715712096769673752056662180576843159305816820100753373141399810778150232900369009482981038145086144750972262932644357866732346214584370473985529026522556254802696869786824909612540945542287231972706380573765695437726188422380154776631730765097533238506398515266260173088286307897899306626977592281605886472417228117748635599609276904650981915787527155003200750446112216588458156491195699425213869692086108600747531367666191307929495385194472941768785310198973530554060140858951122631329676666619252398294358563031507753423438745149339617555699972139417325103761056291028184221025140424647851349623692959611891586942825242291238332532109332574746775358379146638555178982817408961336718049854882885776323769232482523101894297942595944158442921205486139934225426875424055410745688046750910403873998865428552600629855835832481675362629158657689778462211261727651815250223728215668067439636516040077330759811641930718236705327660587685330468612264105871511069808165639229401131721705416089201562542393585590763686186911336930732424923603721172045040297767357460761006550480215401148193709414881447558971913442350272698703151920307735040354334652658657200227531482320353103236270952356099516167943183665181886994560164618433371559865845265167097824578061299066139367743787680022308122869011341696930776310786663907653512136083171815220467172472210981003252149423814860950640884227299062578173317608872848426957735088148385890459282700615574275446762778779716780802385168281009046019885330991168905682081826071478329663412831713764770295174671693684185335472493863779412973460862910731435915518933977494922050839205648513781968976363526597219593970516744418890901763691151246214276786300133254786809009348169432824189791818393911442021978698465281945861120073691701509086902251341955560812708929361497043779259498066723529128179097717245371838359519038486670275506357849965966200670266841602505163713201203124223422062703915850574422906188621485818776075486889415202322923320195213859042382609380448078868642806654387153799039010885832651278664316418697354914455051255219167678416333248486117393658939020495214968961094425241389361915173533220738319474013420483879876762480117476309888446068980076643508651510068402887595549261103274694677084122935687888299074047280104641417801672047236716582560593741864882360968054123807570158692599111044411547225494486608383642978181474923042314588632786188999216164893319777301233316427537155029671454055105946906939304471059661639271490202774808123463101753764476303548837793725938706396746514715819549426994383665684777954975118526770665357226475709228120343200253846222632391279839932562852085299159022381844135893977979862924561664746905916450495213379939110719187794870038329950097343106068372531358840744536359414400927395379750155677046091179431887141949394976116010924501079063042927801946171950351776051596525900577592142219627378599229332703218307129166356341709931194125417587247439030450308405001840762543777636730035118763980177546963958493489520921920653558567500409681675682405658235076397928472638951607080019435880896759046614504928142046698769220703845308438065394663209335037707783502668342230657626827359602849284459320597438120655331753446486128814652187176830091420634560293558916463875849044737108183387779445240381076364755906291058650410543779701783811056134109289277113809249211079411477415504179989400827714041599920573517366121483801199073617179147888424650850167517075316420823077541242143492570068715763333570477981153737092171453867346802096315023375740372382310244485393785473563112416808852185178566530838119060015096281048205268367279039726256331354582258672243240143233522918310287096699074689739356428439772990914450022154744254797325680533473424736963625425144855135016120624670313214687911826019099977189366587920108911883128351288136101887275069213224757090513263535934695124306363793113600151241323412298944200746533816011966561449144527317485895552654829378829707818985746314962975037399623593866087539158038589810005649265851811371792664980977127565048634444844287673312866085282034904787539252890604137009549217622334502399563974426343329164300884596212131648042629051594349346402599791476388804609339508600952033015867049141932560404827279260384364665245128391943960051484286591678081234192394159943249340904399602308203578034806931902211590436090681921681695307663007615514090532767480209586442394816662720671558414088952107051569357992993274189943023936444459634273225531938732801300148779108362822880423675514486167285222650827846605516371605855712368963473073426399714038472597355916316001879399123570901863345781768296551675854255060591746145679076008767610505158966158648988435900350506584451490231274693129281792190596946269183078061037736691359694188508191616709270068639658946870002549016041536452178591897414200066635094082651111877627159244439768398521061750764123186733147564019008302769687652229728838598563548741831981742276530771682387968628827206930204758286878026392453771291292096793425847292971897536968833347286191491478670254518279393261285599671662004640850095954605709641976953544057275451833321077691894450478561577287376514682045036213475770227611075218934092168488776300772885492215297932097685084900727537460983022768054419820401841620961178924363102271053093958371505251629142556099399780684353159291430798784816200815023261922826252525295667376343005071215686266099447415497407935819795223355923805540040952741332414188534764138914124782186372034595743535730524840104128434387903862197241937688700797203821494554002254183331873633196301576442768996997558459600125265727166763182719568001520551297982837727426238404823978320857984802748212750819370051240690307185956455979626711603335022854328395686780598054501209889127178100237390679336578524166284855308702909334068851434336753716370673303475268900121751567580860421227406389022794038818629800057342593092610935070341663900901059335071232145785183190524440794861797922803542860263179895740294652968550958624795105446479631309991845000540478044451653328892077047834619453111624614275143070016673562003770127780115486805357385485054524663011800496800562958693544892155703713838274178640164741277994574623403385526647616920298468771256078073660710521202431018088566068149262316074817501060069257629173422550739483321202586625576897082970893439286519342660817478779654777635305314984092100539721071508105786346852879282559755310692867180853561997658152640730385203252453821340819432769666249586476021586435741578087052305342342540249245038185550676561239609359897675819231646627084644313052226477763337861535084022015483878966897294229524284916425857315817578400615121731290367370096112381798986281369254593510955560863187199044614235581886801244932476199520257215973182784207613164757218987324263142018759672602134637038862827983446056890018040278501669386438697609954290488803230058553195171036262338412314565172779299660784644099919842698769670148065217726172423966475392501298417147117022325203347293032750288603167597054962972623097538965577560006566012414372530861070017184137790924903035787818684743692527319548551569556093792041637008441487425902443288619291453727630868758538951981258394378564581109058861734256222938777722592123313923445637809441952391380569005058830805253008123137071481487384784830597244380867601576805228591795364210315523981458726015224543643949322436028155356868997330891400961463389981699662792117702238752156073320422461919981325771741873941418426427929130131513955427596863325157189319990736088114163693080553473173065350024432957838988525586843221201259791638896918717026817014142769608538066705726156691184172144250349958110002263756283245529006547086035718165871415577509860233725234877253994819630287173620941398264134592814852031653591177954667205626547438753401235352340789742478344061181148099062735732151180536563382482632653923247317788382553220910894637304789589388482324029431615137263437656151328638373562210890985474801964858491602002587148876979804588735176236943674604936365214397968902239571077616340158169065840694643435019641879986364993278038683350560977009712987255514364969655335165971527521782562621325073200813539723144262796994429986482373879652199196574785280953340411173577649455811995731210863326713767012098025532391539924979545732210418088615877559164795758324032636010442548152929172756684578903491822842417075203255026307728263105022005443741340861574443790006048623364556265131865294442510086688912976504947696560273314756996665439208797686338733467438590259095417762336789681923711363312721601988979002908838371713469417097905224097067146582949132633720117640397398846636920727775983783018201564070690171786328305664408168316470417681579805193703915605102460804424710106461210332988183316653537435340817396497241381812052669702794230909570749361891063818381868483878096940058892492216157005998448692579018527164593643396769641482875597187380966493382634093271871851133767542443353310767458134809980876781330042384558287142267626491089281662459351838188184702190265066667169663575399961897551327155470986430025913769299887763619308180216161894513513805052416047913794999550541656816232259626993684747961641921880761134504072139566500637328223144560537256616883860401123338520881184485719140454488473339375573462387509072170566353197200286801089633529258830181369893661572943190303983557011829951376258731791148387249772959390627250280174963224043338893159236764848293526960040668106658353433979776256122452835301302573872061598261127099046799282962714296052067764385038481809476240992694343252762663804874058004476415065443357939874883109168355105152482912441678655332698266519772038884012039324611094219643497896657040272573652196028427102757114911623470890838649518295640982216233854004013797793445515445254589952928152903513841917799138848546985283280690587515210706928516701529439171811246444239122726517816038116268412471098616982899979382300778505578723218730760325342760794846225374173462217419020932393004592091392551597071080587367367795659593830759319792654164202058308706386835545451209708195311713008711751711744187897591498253909410243730550189791944028554621157364717128622998105246397602702246140252965156447006953316444929747760132715241305313641929869895565143769593966260618734409628078390215399125328804295629731185486745565382831936860023420741407171580138136971902930896598014622868741905517043667205896937042049067727002851759153638993499387108624738650892749658455401707705405818808326577922356829572676912568949141738259001106167714870011196349968474969470338205701462345336556607651830613085433652131676014271149800246666001415985135996806822979629127844190709706461935484146406268132665643441228220301680434723282686914511580070170482247085581365939708079222257354866057920331141904857219642973956490628509987526243624449464924845818841537938265912969502089564107307955852174564358192469827233837360815684117757833122766017075551386913043011490856325353767538433975575665715147381501454371110747867572686857642072735337167355950468514987335550397976393101691008652499938631372795471296184547377281934180503372194877516513654418723614608811780652384934534958529559236092169753563482953091233192066329047204747816098891638840632334198351527967409653990807866368431515678988793256647480725088046684348978656715952549295709710927330869062806378383717002170594670102580025696922722902689700945393532090630799264723967735641141775903798412220847410073169879941470887680725483918858383582833725612887388573024255392292585742494068627142396219581659663633093485909909443680790811270156324283884973341976010346884683453407294219836874962226466269018873110624281242220931681068937125457813587951831450689885213957874664329262349466031801239955219017584130983060147003542560573270163630414314137092914833229141981277074132482588932953789507984791142446804465333370965677719952706207971182593612041670115754425657779474017774793047708391166934421201034015143522545600947736702153678658187932469289506778113272314219131351753711973601635205992432774194892507486560714848881996529371842374748028900326551411886636580809366915484709691784229399420077627779394831365008404976465919965087468162727947309406458412900769284436701408413838259641703436209870561984978144277859422038998866417698667670069885749658509671439551327529215661658004930671077431246100951706380029768501866585211587954935057865077548119120258089589481861359776727417203003282335880055698400376314783474949869247910195688011832701142790619760451934227921954854240885952076129985837849515706880885033823365477825855080533827378316535429956279370791961868670775313057209074119806249459767881113787370523833009372985168205935071216044450439950108447551868184955286468011235314144654768289596034660215369978937588868738094277945787712231459708497807112370393573740892859543470436109949124491063214036637439908096926594281481606373887024515529911505808740174997919024402524578711716669830189002045200729362351810067446595499999546038176805733100324949566230965051885140039495968708068312582300553500212019029882393325374840563414603029443355331038803828120139815437311043758723263962764912372602896086225015185119640449674918691201893512712135207573349789572229934852816433904224818107865944553623371195985406482103797715813061936020616861382739601316793061284217875987061104398862984460583299232317439357175396569156407882601420700535458701305919158780119506273866729167337292618884503037886287639523684891472155917107392734646419488084800384781395474112000668518091684430812954108781833324369017011764699935288517070097840710757627685463468470004287455293204113030585715742256834295192830086914264587223144965879188016229073204071482350241345239727842682704776307600466138175937432166288653448536873409842530856787028195728042406531536270135714099605223443447058161178860120432598639217336447007821879643128357000695624133982257076351193976312611127516695809742368419977913432119141920883244916646215127847964839136137649445156044846779014037513642784688463720616025685138113109989754623521663064538862289415431390424598772273981797523986962859315656158702117707753416524909887054745694163490533416393460157238686987808601733339003700442288239835484581504520617259025751878488929699364052572366951470213704153443808191678571654183555220135185589940459440373928088391383187514446092374102682215587275716283098235407162820903612305256431137365976791999774268334305991747548573597064603183310689349019683210065020172619262079420971393992064727094795084687658480883803878000929400512168092819395979811380189732035703312283679511773319766891144268368720583330539693197099254077462466780253916017471995339514893576185423472995109472420068386438246956961808706167718721953548818428796176087868967641232368367932453436308702050218634529380295718840186663037596654983483540673256986321393715354153029785961444347138722616385039626068937814218335475260797230249756815951221573428662567340349391899074173126402113783435554693200848665283592260824297099713735296836292056592552796877997421367679401341001212763597596530715201101092365881238877675860247878147029150981654408326990340543297286608094587549244552828293452615977264931917337354361310389917680666173707736483357728828630830737041319842491929903881084329089342865751587663692835017848562960514843510291454032931285123781099834251018060793166323503235884189259101879342325771806209112079043259335128314208852891175970159447241445838645525535114112981537409240439708740850651849854430027406974620379529838429331865287752642499495952130090555147581028914768402229663944670247796324037489464475097129113498842725420102102584073061651745131774071359627987844989270394379224312879979265853982234558207235430714819475008780159675776211829740015214803716228775815127610695498269821222523436217156222236090636223761236232798786172942332044572045815314180603169967125036518838162892071933327910196358000859239590316040654290817406105792342025703598356377472871151051857896609513192411764394365191723411566219127300388326363194443060659189474017150670910865680516052346751021103504781778639938599910152200643119197931763507502050808642849247493608570376321052991627735885526316776062199596049104873269509185585666540460264563923586079950396342831018630612274970059932926633009695143136487726014066047587154153230744832832329288296581974074014942707761714005637569222676807352155954560318420982243641124601065821916585971655082475762588522849933835054810892644871901388238077110076423565482715205531626406408886297066203252139970795822903350820285307360630702409415457847566526484008535407786572565001635144792613675649578634847966679163387350222890744291574999885295791773493572087069893816522186294007975901273228536907878015075056892739263744815599620920383320294537207182154905181638121757605107825384849342386580954641656284558641233591156401829187324807625877152685431448256843894148435164784364864289661261636310412820456137543230225441952608733331220655037389295105066009340891140852943486088819652128351452111186860361611668952093834538842007205875933730158270111011854269496448682811453736593217761023890866882588762579596139673451826187954311674181530973837027548950153077967797957753965298479632512978836451681900751328553341353463666073750551532319044532502949206620611596650726980438622670303227812607301414988760080449632441314670184558736651118065219761858108967904982062114440840024210172102243169305985282872776857620129116098843469163608385113053115745365195275547595877832696607780387899747220659070502555002484832574172922993408841822691978732748890715728947184819587790862311357209798149035737148239313252796244753299902466513069001143660325678796035066061240948095574652440781693682358244228622852653059335381252506033515200021622726075175974887431894554752725101152557723524931540752650494754961632524211278715695081045651997170342167868840093336825151437754852754522947362944791062950892210652826282069460462603860950816630144771836605831597324832409581212103522442880226203944107508129764114260651373156626443800425152230924394487917045469388567170021827295395168256763309451323480711291479695694812525615568963828507023163570811761395444067871797668000113282956578735251269906013061473514188810494175839420449625133570916501374670421369030101697906928845012864492049659479966606298545813728423744634939355580671119199095421673843666989612678937378749631639024002342263308439629032514603633906503809449486648847482579980258246923056241981464157947154989996343430138945222194979470661665497093481331157085714094572848845733849224453487221410448463127437685403248451751205465659134766706273234004353787550393906400289893613461606040919624031043632132034624229547902310754740760532919697250619302170185141206542741162118978095773095341121535004970256641908812063203300761453877443574912341413089962807049482056346501451526694733237559622725338355753900768187067067657480166035624175705838524825194078596669980740461500934795295076043511087523094622400564794775084243985244306762072059419695300056947249318933424245906428821456843819434266343438338164531902042004326491134380291477079843074792552246753099144083449543123711655093016276211917170246381875438618535017605963965359383855897820567002535615053869802746413963463486823414234447067303825970432530935503207347420518909406466088130492003071363170615143517709782603961227863491512075753106832359000649037955457927970469155927759430991148767001430503114532204888681340131891569302271179617601033441369348791134791468806057039750418496232000298095273907034613161414817579323230877569240930224205377935103907439194394413925102243352679557787458397720762454318290282008442845860608640466627561314281030944552581600634294873995135146443556146799178840024661108272916687403683979556262937704402343457414886661515896512442024990702477195507545532020958759008511537450127810227446313224136412369699694490239924274014796427156224880187048653861553507608990180936073468622982730137293798883373654618032988253636662493855156770793389251201564927016857168013719839698909836198622143823589041745332152845982642637481273227847633578441916988277128448605079418432714213135236979563868705034200943456505657067360767475580680754233668817860376954679211057963719405279870388825608762875226695748094479090420341722793131321839521473812460234160666469698346240923306548252308346089835545096040677156413979015712623501770777744453218884712711482477052965805648994092438591085434794769137996178128950232870379389624888810705858214072779057452140287693078469272804059030416764754826418559751237403802937296192628325844287692312361655616511554999079697517051021003887632485242813762309781067797529296897377235494134915936276972821092741418163604089186603962076725185947268474046206959155406878416962709612201704428111371819713627638196396873590829213441520894207864738688951906024542113910288051013302080013252783971036996410432061648983852069466748049476247364433374079011665805752977470269436835121829943245368991872981240079018196989718010550971733380293222951946033356016330669102107609020974068318832916131842090248374875267245722865080210336153960143396657923406591912509850897874072605849775953083960627403114049379061763001411833667281482194962972665579412071859329620828390901995653450980658073370442150617842018735008112463050349462879378561129054782189110616966245588218669824356982090120705695946014782986479241164963023895370368057193044570369580401702582847789118515347177336932677780858643709224805763127475198125605847736361435692699126658712489593509638469095215915052881779041802445062831956928466933068916297428010873327777376882961053062299894019222478565965910430551331484888892525112418318686731405244387780707615432421737408819642894272658357673403149714481741976204619500957225884134666330215677901313304551079565769421328092093028225438893916627015279547661227724777299078395204752918716878226656649204398812480978493914938985826039215596893076882450169597467849971502386576014081386062548016144381970427493691035195253505134564297844475720049628937711885501249596423280198886665227304306846742062022675260540881937472479515660824015229878426685995451893863907718108004189214231504911047562212630883306413765612841237132746617727243980632223646237650831089969304914713389142137473381412014790935654053646079819203173699171640388098723186852666506576716579865917605953248837410061200606393138871272068964733821034416735902247489933937034048586841997887378333315079879255579674861932568846752572038757775438775044575392724348672772121070392107456856377836395977337414512112172161635789190885553718209175036289824077430738588224407360202136001392187068117307531923551209867638354006600652204221166410031072557314785059285136544397649433752298337828145995177133246750148601003801814226645491970566426092537146731862709998356609825721101796571573909204235372512202604055559547493033238494948448730097829389880069988633216059252523402299147169577623845684416135720791871680015202954398221896467034080433205813515668885213253411730004845021181825216055646167255922386567245112628980056440171759812328460995005422971352533078258110647086238535749761970434379789400819370697121112629510308163225712884868664566213502880714730722511144475290432061121903911489583348667215752415499368504830427569782374666642646692007254608743802513474201408796017061029924635413651251311940620426293640912676306043225344926653286454779520556888602859250390114405764224135040753536044819771996756954892123212277123598668383476385646558364839312631110883075773523159372571629922603288658852239863215145534099310462493579663813326343159452006703414625021168328002083229788816224459910350148775170586014218684506905976787800452713235762925681037029647480376058628831826988317410082028819044135563295191035763811503578740392436501383059274772902421713917564398524270341588481877378502434229481773293061400932820122546357843016334908833266980889651915558390012629221701697996845830909110689570565015655126485331707649228797053842185441049341933174727690000430341283806307267815393355971981398163819721249416749738482029033638315068637100520621961137027942132546342515079643277012124186136300510419131600705627678022994844164624408104698424391937071533777664171277984085071063559109993909234812783892195172557113613008246815357596660632751381397174716135852236437298352692988669106205583632032032868657806761683702584248800066085355525999246902739644202179681358693908515917976848232054468229885277297317938126590586402938496424531626755577013995819215449367266269217027988875376889603192916116451450657020422206675477639285702014860711482663310206779902939203604423007393833410397093539814032716380186234068407356814878660797035196638711509180188468438575394421638886872459959760815184172423484780478541037281110521588916986742513733384031325518275381617972145654382481769597055935243268460415645304677554391230381742044739236619329813815568656496689056002073512337246215209898417775283543001156332603488772354720126172707471955898912768215183101621746805635362312643085542441854226993212357555090065250397865675499644948031251221574760481266993188548609689056899852540250918623346559439634032642631031708802830449063469696535382871425847306074502906287607652470429813875978152060240018294114378215119304757082253932780261950300332233516437322659421896802515719050838439194293540385530116450185065633226325053824866929674898265371072422513851432197623103142324518429670365367744342024177856565115865830403107031748493948500232340080677936910707629818364669535117078904485464001623541371818363996185949458342377106313946616085689114223748813002692056407087527405517594925693172963155421690433869651058672583612586036827906561980844721060374656349456327116237355317071949731758438159572225559697438218325096859909861663230590648370669881220267186995029011608537327987629202434964352227309685417436289804382046037960756571564139671688480239300570385882481124272568006596135757029276671259286215793446487380454318255638812928506600410629105292862328119391382991596543777444062469181632862981366056752131024005748126134629672066110377976083205438132016552828618269267948459064543409856736631721529027086516662854406067729915976370761876415351315753042045368345429927818847431128547797133499097660750764977868953803529752806132354171112266998857746065897412384226245572952658688971880750529060998461554561752650268149755362634170354584923583863030058659949565414656534313803111674414680134409241181542235905038927556219030928087011463130208233734064722981219075377988536417105923490095290974112678011011859457917863624141973802800124343151942401278139535755670659690872426905279631951203968290756939501194318696251999575258814360953201883640955140997277228611759682361528549082938743551038152954739659930699801208198856490444443110429744632995325007043398918379440924006657985708050000494043833629795364886105119135306216211057751998940553343333944679934893434027825951819476446085296923340741411069915175364332776492472573999849780959967764274414105986310940041029285054610814740637457862152037481679840249151816608185982743997139753783923579298475358974262098304699861053022734052094849732826704747765086390836329480607224401076003195450342884656437383678285584320478073080682035473571505040829645295337715405114631364444208632671828933168368512689940649534931081012997209635560566016129099259477682277197321422541979547651211873863708679910389564769336943650652558080489684354041006012353320576172674335796213084546124825882831215024049635355770830839189810074905301896322160973645229269403821513497837982137257748148473399272192779243437258791024488911477103407840016123681221066678020977289486126610550773544489029305516560195779419514475100560782973195806826780036348104278084965541985974749031484032466049298766746749165179911857790742592573955674607138447230921206460400016858786434199024949222723028862057142724150255894418379559943445438630913505762400825800000598211217776128213197353520165157233524908279423202796649203165798476224715109055786465439931670355964914930769286062660063243976347464000659306063040719887035181339147832536038413647237862406177005367048624808844167781612884988398081644450195623018711678466595229970146241702846240225727018498649437127045246885125027667544347144060038075894344135334279851787209899624517608917978228501623920489980084364849975372055977823078534120301142948096435082370891062066272367142331999724817632664875358252176207804404818396759412537050282138554720810779097563474205297489755788380314798872992623666541853500000758283963911538491808778219826377353876270070490732249187272296543961180172191791896661048686615473860864205733517668683558836145068772233031335030600289625403981866328831458288351049972629828111197186311911373829284210615361461169227035128579611256397685145954041773570289784534904602253271687926937642528444973863571786280871217354167494660737193517942903918340902133239130958203276500826036511289384771241690952840669671160288197155379289055923361793976261948292684962281746499061317669210023879125181352621280042132359677013533165568456164555577710947472247841882974671701506798220364257105008287504404794470724403526510804649984606640844326525529114499130863056342719774248716110270582806100683253868827291070639625673425883807747527156254830494756683162680218412704445116515406855598477854988111491902678878769899091836580919081953148959866600366511273433574045890283433944322186314104287211482314553563319479072917707666353548122001968606736975898927416879891196595122676945927471315635970027126800391647196359640320537406567768045452287915319200639969067986912088828035846035080424750987067402997254809450782550331124137043424412129879647416181203657915075781318353380347729511798350909134762972971111811351612222696359865231098844601333229688242991357477101667129287468433327013801576722396692151505065668467329592339970981563173625608492362826863536879238660678231137555454449014834353570494030146825059993644252131996194481591051233632586600997900670121656733834772787670562856696122837342888667263929265846700834677702026360868324906012433578055090300385882003145523721547362922338779471647605233811017072605790966161396210996509639847232956633910514512927465534206427691026094609293788820563824880572922451167226559031095250056850035299563735872551275441891178902781184826935845544571158212195109893475303544322989164989399287146714375936143561104841570498221439842873465744244838648561680216396259379713859787566977387192315862271666968203621966738750817087809255420143316312501457417175068605560199396780120728373278532708037302069730165105597281257531279868971037647869037367530778355254124440967837005862562794611604848851797984491184443591348412551068299087718593247613895886196699903746863047841117495498633521659248465470281297940532742958619072281394654199280963427573952058016036772851121428026387019698380146631175261722175221617455190712145226429033318041985458514776429272901189556908463770455598346401073735350093912102499390236853836152177989339800459883993605788872193593219279400712164618744757241891991042636476820532940916550257580483168774337527765569938104296472573780975212218438966301977001067695372621372462325880442743040445514213908043856356362855467071260224741810736076046876065204735020771525412971795048072903088893463889121644556776247803575509850070643950173872685590299522774285146925334233563594317741351843486609397464722533618036261024334815481364307306675503022146851881768744525384861984744219918784625427629401220640171483419598519272758777872534718257122680075109180408526820832396207383781938310685107158207228580943355401523074241879509679648567808965888866668817860538390680872928935387804941993871991444715289306460318722170063587552360703358602798424735698233198862234310509293275413316287195161237479052733942176992342985288841073885713788088953224068956546527873966292894388393483715061178123335919167894113534685869768523618554082232231450807111691281462358552809323071230359700563987336054038220127675776007272236853845649608737451755361567575484737170744417749826140446675295802819915667765830739004554858758008453123828431732080134038364544352837017476532473074774009826826774719300347512531415069340103733743253952711223576326686575602413467871529147712527982691692123810892979023439735279058258101609365886625082948554433937453505514407680002426327062991736370084549642536783184139280034148554403449578149284053607755280895781811468500102772057446567710566296578337334088657856922742076290301139465296203514815330606352822138270746969963898906479129572567717567793492181284850269532765148114324245447672939516536278890228816537446017148295939595643213049709787709484439689853986963730514014587283777429598078408305923459548560850076676428359410892502971216004340613583470083824225291804821541519263365673857259385604692040994388017396359326455947380825767424443380902971624742635834635623530988239856807547655672049935250541318836860782692918832868079045612696899294790948242732965742933881267254405838821731654365032954923713746005359600922970374818298543905399050480147332085899044514858942589171231149365256015853896212227267346568356721740941178939612023829839308810141654157597219974447458951935729576513870422052906060589519115673221205308640161605627098015762396205192093965559439162968043273022227138385606947129259205480723289763870094195476696282774006044630388923725452147832074037683558030614479300603640856649932272306552779971322161239561134113665035268747223890044591818845051383226481454075982453814519098122273390680227418533034694021417370716407891573472549981938523816380457805671066646958466086854042422594268687136795124487710355296112501295712465113249120703250666999117138038204954099435837660951455869588771140342946328543004754807146123209717596556817655139863131739863004667616922940861184735089164700632742872090092734003232149555397113452318859097424089177047816193117278720369786526459299371717269367141222057127281002506534204112707848143495530940971620735421463789083551461496237959961319747945672494354001896983175745116335870071428147927960392930860877735529870234475326386929232358881191123924770075494245770894417929691902291382764761406968662389462082087010125958357322047055621114674546091021874481370490602167602877499333620076255121659043810951861572802441307496631058744968194713128626691246960423781812726228133294554328757269728754431454568109723110921588370051328568860320958855544775245994354811998525978293838876269258628466204118639995944771613794299576112079796272581113857877857329516457686177298658334492067117849808359374540975392457264847747452800774020292366212396868237783642281520879705206717674883546583003812388202771097297550888211422334444329076535595312084720565445651321032935297429774633773452808433552165306553851700813698962894904339837181058594270626640371555350983304983664393790777541965117204184827693783977461129081454937450885998441748001148883900497028096986620001083302359789461568092370839089935727451988197122976463069563424309354073615563241374139339832954839155143376224817720434492398413542177765290119858434738732448833874485813230139921979556575331958874076223698825378546475558635624914202318583676732706564382711749993178680042642553238212147300922982287121322710111751836985732393300167329748485141466432366353835911563520437166583318253799589248257657033593997324679537514795767159610758973715256314104314761611687494752016157526477222174989963203224536658981600909633234627526228359701107326667131850808843387887855987123530494590434451804315083905299924944289763290695262166263861535930458570782093014607235594590259792607455362833276793784097062396589571758432437173901030441102458528105608528584861386140971620871662622663382917521774805712212536565807988223867079440542196574936124549008752326923411539212089531966006731466921820028808740648988938529787084285196994461627400720033510769188491938206193245204329039442185844717714211120346240554163231439861575716421638659617472450962179211696773668226115796368673267114071617661825681022208417912863395588744482507077990386135405716545749946799675281555605769899478755499606339492385117749955072465959581837137709686046045503285857376620463549814448874448711488339664555424901250033390248950708485216729626490193496199241908681932658449724090672327379446992333003405618190270159509243263069945389587359907713983994886333074970326242808209947889544836412763171847603796643178737761584579232283042981529688250393608122760878090631763214329138984445379408903198694760152113306098444121800650841109731227051247044506227763667484472619118435745891741938474035099684297235486525072996169804300143190070237640766188828422210685784562854678854463104210701123623608307796916657493113544508363954697113819793268481959185240171242293561818295457276815184760142621395402804327780551919302879046733220132088005652531334457751153366356464308718419990484432134652393044222308646252406541828529527841946383519182952296443367382812016519855672590191770229914335483119375710488937072441429163076433039776664562327352586167971920334950871480610468563658699195695309829908783652796164348861521809057421394509037725846576665908803102836716164644602046620915155210209306969254839247998678306351190085206552824796503177977380424718948721071657761403881673218334653641304479587142667371702934393199760410316236591210833392722161299739388430822856982397020225792628112137525362743187927879624332468390204385668366163075061604466952110701446085206592868686277109075158866472021349796905551798846340950012400823905865079148261472996109574094774526641866677154951086980616693528761676976658887195627237058072082034745890472478862864203181211731382913165541383640262543463076232651575916220653845923188390009999293757815394663088596765538136108138009648350701958471633220743831929196933236382118936771530810015791243014857063669684622250275497813354195265520137810440468905445793317999122949322022518243359584352362108184010830514908652996302594997302923478461421303200165844961307327248363081034952207930109464263189161508389430514752847623675436075707847205936170405636116175379158341882379339566751930697586268991852015087782133015340168668662308742432277826675307010990915260435413010151027356615554220977451920500634842786942859417420435700704994958835735292236794064382899002286318221278546413374730532971383663687768202971381615975994563728065594248256466908037502780621718538156443941112438333732293492209844153836926191361298463184483895748840282880070820588175760386863506461526276925073949214530630213303310486569208006382610970036783754763081799886508555602031347196767499638621862476919235654768902796110853577643257573461958374874476379171653138298435457324674303243574825044469532207505979235355568989014933875468394944282363359517897604975494573238123479526292913080144022171716250838702248501367338952702269248681785401367702606183007646938699498702939697110829744034238030014418391458612805902019061191106914315403550893630770441982508477378056287617570618091102128672879430598131240980162010200371086666837896866503834361480452804330188076546446539994282869432274299898637122575599581972680552642137480830042913458369957122750390732422695778336518084393955589977834435363600416210255732094154459263649615238060533099360537411605713104019529748522495376641455490310041510071442468350483929940252478441896376469431087968493091965727738877316688824843111756313095456165479367577690319161559458275122461322523876765588673568917748501360363081738958083908828618857008709368273400178713550113672609459078679690011446741898237235465282642196032713569982801239864018612656725676619672044848054416210145989477277562458427785609442550153499326751854185565769762927852438176727847878990825308706242066206594300894365953187774483109150109500625632245193538720721823339088865349755678242326110110447978861975204365647753675653026616451905880282092324349024904284387749259133895021500812222822344516228381423213548300132587693142410077428324900190458011894500952071876951370458816922223913576630953477703610043324507834572694971526545718212838127020327906981638180097980924137377827601686073557459732783261107918743770392425011406805087143254619036724338128042661637774710176594437900486621225340295633936608192831779176454729496170322008976986745949566065907343403301560409872784619174221846031461144163939631792830791321490822114171390031032357280102206965294042606408520322815788578448043407123338638277027851383521975271020947315296257832082431027889814359142281076944852553914832071810950548456003510956081682403436132489768148975782193997705525297483356448565950845434505087356231855815273982456349424153299233669900477584871933204135603111749038992991853252341778443438088151904278234501303858363555481654963183232886367784033053421507287495192581784859669316427862471186834552574358743096976943808927017577453951316240532730010870811017960199193123013416921364392689303621095564443265177612915907775199471496453577539954820389839085841192637172134078183269442272056690507168291393937323401095962406360600939361174168401037384154252497624897579928545243667826231386412412434672832912032528871430872784615281792608920823331333376921990841499311515032227144416919965084716997688466778304796540305329226841155983801707413894997476178484879402951999576135736792370492461936694750491451029048306313067278212889750155766852246980944256183094754378239545486821992346295499786742340940884907545443132674314628254167270536735999605905139089216819166414167581198237675327756670839876823035428652435141249619480015790216138765554712434575914275813167038879975624140951430088555254350987420753140134811711868596002641291456308603031948068978070638624227131689079095738402815617320160605632661247303674422074586135693760706165953559040885971180798512079993628910449675769436438419152048186952429873364825916143294060035591332498532476265524626384401402621356765503339813639541544648335256014054552427631501089569396701248348783392718204733748635067557409964582645856940234380460856099460239979669433272703920901845832419223176180290383238941984559745556432086388688155126270502354005824294366312091514582919090624991625131538124361818291519805322466535422872347874461500212751767613045941218416859079628579228678926682340789017550255620382582159960838737170958114839840358032254047609214884310690788467058270797653440822618155646575986753700803776520851948712948227129920980549553980848879356146235788301657321202336278570315388802452103290076303169596986670559900677493184258166616040005609244087742230226833988095001787328169478730279753427951518778812185222983230434269960435548973714401982417195621203958650970239899031387790613735100542362663229266010269369404260052586052607508190832409805967600866534961102655181352289826441136374159526148114464274546956895516683801321850372830596446560844566975629617318517246848129020467634193215262464022815163204194777304113278003118817168571937998663806138720315786872163879781311021285618714871740438551450363438940870076654324474057338563937184199010257760633031076672875102848398790934165097624641949394263808283404657620414730255538107099295683231389690337461210317330633564321779413271981477834694007404885737952793445912254477554723297191336393536755951554585164748613415513935913637223298412960165226487818591910960815329026105629413697847805283411197810143361235899540307561700867620577511932550954847074238379573482761475314771835615267914438493691519332199101419562583330666123952446761180653459451359771611834293026976605218059662187672187046809854669928552575698750214124781948527355865530720102970977755206265801400184928950360152590159762309410051300848339270094267192885184678198103445181710038792663535818839710509567792141260437163185692012307331630522380463152350353694927127422698841544489319197309978648822552642695981587799111877963295164440902781328222348106784250409158114300479912322294261131638735976741824527600619052842638028079016550745055622481175204582076014870181771407478948462669156693023287940564968140501718948798605237376504762337074971735853877902523698590861213946108355338377312391537982111075262337672479483768800575528874739214327865027385057396076243845570029945423911328762141760816056407930282684180075561213684521076957638550229859155179952596354552901081343393887916916501518794472654045686186665745311070198996339431541991009301370541050618062748898761573741367634210164356283537608857179333416203281808820814403434210295238892267114224461169714940784613221625726670594626737016387776293690600737283405022427899883489954626864631909877838162587410995500603594206648127546198387737307466348043318595015465590537981988852979925334560772329338796885390535773809724107032255760038055223473751361847553067419110915312525560616312688927824975361384219306989264787882642114854424379297898426127090253336143358725684941588111704670229889145197376459958777152459622905399417848753276027428700758330329089855126130962892555423681983395081413470307706726845072563253025664325772358692107492803577451332166230215265440984995109638537690884115318650754473415650783802537085793412628400620102649523456666843377631638272384296042079623268547476734516278411950105876571510090417590468692459663618180908047013400629534025594125595816735979406886232224918927125250004652245510039731453516255422615533948132367329460484394278285632634651648483627400869361466892290078698839178561575521674227145954705624061617966806965239420573145828198772515569240159160941953544076218077852072333955290364484906522131523831515920106965557519309824314245146760484054564353805399774415617853719792532985752516799990443679867443468267509836696982250232432149604935000582007445658906161362566192658692129543612933866197818513132211561747279579960786425037702770002096910922555007104138103648915460378078323674387572272507722311227494931020798759386408100595462941510186714649697788843336785161460721271284679229027169882949705655190994813095562570080104953207419102087320508239467593280306108366425096887782861224161167521375324964742581940911617809514226352454462997340401460629290671427120788742935521926452445684197605248670756051436803358157686453613674518540620591995829943087835126804755801767346317971067866018471975599457883613960133228731550692302903795480775597352084378581250763067737851827739274339701780563957473127803519471826698851923424417873621570975517476864046807673452222258970968093440651262011906061989684890397245298446705738744075005013118597769034744241964179128189807349695369415365813329691958959824338844192244766003120859895373461345365379269909660773303553723185794038431282826686975574942270874447892065241897909241507486533782241225681805619137325708028775660719043617007458335917580016347074079746489934239921132733662873512372575112538784743992563121513111859245993632443043274687935418618580452292285698131227136826742647293381154305258515793513081115918243609646275783110232896571917504687989119869015674811612520400842891261782696278306413727675879914474402427898991943290235498613283121940995441295622584108502015940404149656958691688194126678797844365284172996720105339327852103600051785732452620201951392632207741773504914489344061825337800746543806845939046217756350206148318376996127764112377653765231472023050378428776265750933953164215176144057870159361552068397145609962896137608162243700644148995308958746618158755735324977891103158218623081358946137143416357892288717188856383365749766285589554320337260539216155365066518043179770566748212320148031171870379268535742298405694903245753626500271886106447250280629703885867280099802480900106221162107023095518881717125535850260252773112800182452988731683578288022693048904055882840605272267481451502675524832654915777173236611438574642241649288231933732568261138237186196918313687969307336518008272048276540094726245913031302473907643541030317424804623779128392773409584465945041110530156703478298697818983953994253300144167059853057555612296144674374767574913071834739153439966934341179095001394000150529340606064606417437982707794181331985071088595231405933268943803252605217143090299766477856239397601436643948984957290083577669982794443601055731844484465639798394686916131596210899682508846568182845488297158322241039184455733642597587973391012536453330043163489408236876574238879154697106723064505835010814348960049312498071160635219051729520442289570166090915604020830139613695682993783827937207879718110535322527789866932754014996632820928444524810490899003052320999412591860936613631405717564690099247992678919880795502535725161967351654948745433438711367725925960278143396119626697535591141541046682290714166162224222022670966490944569749487730252718862484118758809995558799811168825711036016103532359878437143299285987179513230440750726593659061337819727616431653807911297757566953004464724490416257402893785177132945515210923622790525105765359550559578940594397075573098281398722559329179396379161452021404279587397578519648536129645887332106830724134473440251368320419642691774446233331862492651820803216323853010451728320293717196356877415460985156594178343869712027376385105441476388091901499991802451142418972328662090307785506047648752627390451811132329640778992441040141477948358155585221652270449711390104391238164217970891957409913332746992259125037097869628885702148131712446390986227043722888263583057482002796391284083882717703358191781981286332627421113050314961379551665634020346710936922720282186811736343105237210121422427232641149434903474762940870405123845447896475369792504843945842588408168097436986133572425474752092877861626384584762585603119797606727636056501302297644732033383912276431918517108207384419898704747049588849230092366615666277382745674555951956519368615991727277941967958817513472403053583150840121829796945887155779128343050253620171600093352160520979042915928827314903406152986640622008406527395757765304352581823328453381487215681015932882049206670474030773911305368140428241918025407112887007958010427676675061757470706684591308307887038875537138412289992625577650859891329363896409041953038599827197183585561823876629166614227998342245860871497280543116800898337021770845433535990689048944199911374420363883699846059499014771758943308695881888661570250742578063317019788435491392618439873983570220296981252432297124858852021676394752303193539100737167589653101240761244298924270158743905348005995360398120465980354761210119407402520561232821839330478235406937325956158193447365256919712861966439369808747302198547238067100057121812084540522305381468358760594614399760611374064059967632003969358848621869560900084094406205752390665411086170195274393064288915769717148217465851827916476036396864488164799296765551036885600564545634309381842223217329543954943300678652693668452565106655363691869458510770372938136196746437651187680974235785987450833456846825407958953310863921589549417898186334469550989172949803082618015019137207189386861567477821290501640040871044637935898709889701626785892477781584866211183982889474264984818352679584581488880294670788224229358440923154004826324330770474603131228900726750235224116433185762999780270362583199765497295964999398847505715061296484246343588350535513480950579626160814854080445145027137682652389435996664607585843116461456295568232188408698126248338976713959700630017510239967916048513509229737627487024694839082643969388042844463862651925870784004902972570267119875584060824107106753772911475782994648839199802428941402568340739781880008764012217392262426037441668834821709976015762284219151896791284079961954940852515124770734242053736221506083629653080632886599313625546763562322529419574793949050364237408596070115101897355560670240111643036937005010613933611186961257655581623905429919803622908254093471574443907714969607759027364035978559716597434994956565180557332571647828761631485016725977985977472313977310443350739091492228866888357752011096799362389554241286334251482312604426732505478780272318491838327634242313312620741667265204831136777044401332714928309304254435403686712521815615594175463084454553418798577335369039487318157297541119699129217108819983509293774857191209756555578475256709362817784980677183602961975420197987799798782198094957051548913015446317662287774588742127113064962398438406212157296624142499466482867230059927841987363719465415857594151906093322057817969317017721975820789115967269456698684468300630112352996273354573909166210470990802208024240479631619749005451611902544519114897907921317706095387004736508388599111416147259745499677451073980401741617108696099750800647561928737679751652657642874193804084632832194670649893386105001346830369155101362255498199218236012459413041908132778696244838304052343961888356208044148993655742822293755731727895539461346698322514532967525482350322856550711086882050477936206185429008052101481664891374939416216108109593669161411728470674471171085811329701206190194539903811941135293290433726139552340693155128868394273387461093907354207492053634748072476856940386364110294580996431875103257125978488022492685929017537250375273948574682326645204374453985869874481339593290850102229527467583666262343416480412487580648643525688706825560405911639683271007205502385733743925889174198748395013624453525813478100896319161977459247518875776394928948108343851844903619538340807477986193634771314142892269232521535367921388304053917931152680242567327883304596389820917540312453667284658221661261086505750139084500955348293746197520804218214124430263657402513654380470685582271993473720994186083470634795847207051851498879743860774594548316736459661637033267680781469769363407713866179319500891059557687806161205867450618560256427276309443285833355122580749593797029410629956280546058990067585538997273000668053085490466740406829261758078067326366052552648427125858508623049362573503040356757697244370344913474794862979398608301516748001523517273004083022457217899122322027991345391653339341452333274162994910000784417794996513656131221733270342414333035180821255858292427324598629776835229326497650425912027337148575816941864992120472196762797920213867480773344937796974067920997834333646927224287832247507115285577720969806704323390368974442920542720653729459409159935703484238893398352211238384237077455065637117307922681374238138634537904140589141104078982115155884970723089190030369023870656998197098080293091669521457913923323182229882529621078160402357271481667331406555041710248917280091644577614227371656668523048444709365272137269231938375166830545445401716008355292346576309824774019506846057363263970901325980839557680669785073047692034554157175488597281058215133733498810563545108255022710735969302676387194194073194156829178974417767792520304270236950302776912312308929801951129829840219247987399260529884093564001124005889206749164718928677181861003333334485143183806876042263950404582132120983045382266044724866167371700897236091822354446723479402695232992402601271636631796897646182483503801473601828061523409523569162350533430190024585439746758544708035493982961864169929881672995004487166263321009375370361473361335158306587432905968675051651310497303236396044322390127925499048193966476261722066928229888336562055751557263762801282995085967806660867609232776033762534552675981622118612344421737013724299365888479171932542840074377977789385112040128348212918351222258885285458862607548126505694253399878778996295542039984667679140927077233979102762660606351232274101631238133848461891874708916039073508409630702353411143629246655564957647839756882719921001177654927700086882248144045592941188634193156746147278464753607009876270168044415309917348602195921680332903684453812973742892175842921833217013644016515908984798758085543071564191558696456772309084524790760272610461851666046974379014660317245435029571005244600132669799232173600799215925678366931976308665149543299901636774989912426093939162736168100668799457981983142994880255254223734211873185976180078273514993482077057876110599569272287826863607576956030201140282340607782486198693888244364022003167528840316993751095861900362801362831678227879161231964967105724125789579204081408899158130264151695632261511283195109658772855066055975025218286157881596926488914157418520035602165516368353942036323099857050172829284064056764445640640422959483102880659694638274118522406847717727029703730055281314305436169923497746648333292930823089242145237840919231422182345333565510478073242587304833166609787338124368491393020285629253071800633621305060470850895912537138070803694617106319213863903865480524218226281526515723683211031012299171183385301675306896310989599026156925103682383359760140250543345378975333918744770226587664711490585910494466399741557537328673487216564301189761049274238442316133309893706628589052273429238995384905912842589888301213033642639935098086600976363414124283918113621968985392190131743282488740832218591248636686431098686098026011049317570407991458917022524514722590236400637024327709571286941281949233201842010839789981124352830254792579640019520000925688123844577448762297224793859894036208059355853722795132856773829010284292488210653502960507684469128702826485376850528892498725067461354435212151754196021091277930129244630759512866190496545818310845003352264315832266912703698962163348041411367055758214733966787941673257765110726245295143993380700292552802813315653409122505063794239023784764772007417319583661779235404826491201695766785765851739021915985772093620126327069950497760564555879314169657273736593678907092331479576526753006903096484810354844157222561355683620601202046557293366094792869966652716398564518781855712630099302910277715696343550209561575393886045826816821717743535547107155960773387033103469071896297107983137178272776602697520063733686666999399650324636175550141014081465956851006979903175578686987285941328023504492910096055858223895041654463818717840325298797574922174405325529106626877134451742829737907075140900739202383950447921618723594459217992883341059812960991369788189039761296241271498619794191235804996612429670364965524975875924258395355700996386402591439970463609439997513106681349083053626808101332362304400525827873528743131648234654876614889048851019458080381210847256427444639188533177217679690716597796727697956363827084536302546660856578610101997705525483738681483955783111523629604669054153210229409761741011037363594895329551466416016847618191494061587280275105624143445627215566953899086492119142516826575733190567709655303602380468477373686054702956526746375382263614475847384355295445074739523938144650511951262860232745849490622968528563868668452742478799374193369821108487240997863000868127739239014653948257704803265160324459860986041473931662478393949194522533191097177941797800827859066899657674751360518210592903317514208164963931314070048554347761584675515453042820209807418212557150957289049681738651920079779834940150688697964626522656903581143821139467002329938228984467829426032721137084806509421880587226215197668785997130854965282897446720261809404982651294467427276981275498939898563299859697274972160448872533585204851254755743951715552465924689259187863857869385457856190621583780777932643045804424066083043097085497764981490767729407562588143436544018648628869835924452642855018178084347332629104399738850531306289701502405641742465050912544051203083429838670266713153812398464375756604121583118163377650255798405496441644331681667370271939531386738722871089812680019210907186030785759910203589482439574437835997690575160135767598612429960525086800634865895616591676586261433885722924086160053030591648134954661277224648860690467937308261039976899336711292228899890400434831186229770016378161290146251789509100850956490010389074978697039183563926956594196557044675446443667973162257181111830721583112577114860142472985337757242485811692223592829000907577332382050843419734574244727947268951339840260213334414001749318927840999222811718637370660483900856598946158724627068395694099705504621332432055222253144024617936162078141975994913258055786541917797191977976078001804268560638596925777733545706395591230605595123536942481875481491020087147430605073854043396321973093146216740841359577086657080990054591729459855930651268089389077879746855864161192911299387177475364220801446845003581759760744290742448778808761488716323408161470447049001725008700539236731871252207076507913322258939674088895516253101359856001337399034890922957198567033688993781825793503538358707995640530600460222453412266160501071476777171577746590780956745549515342463053434758436572909611036327559081375394715668374820994761108707452884496819075456761483937894574837650873067259015011566905346177028120650437307998515760324829103417233715083996137661417694673492006685679757832692172110169727186351904958942624658796654671223258317563708807385832929034109001201339312752015697824736118142010936705659850893245362281450066521174100895376923048240823193255395693911249347758230778527750742432759601954933696123610745723384204418391084044934484190206101069715424125221851820086149145444708679017886935625190324129459015664626510312531754798944579861940239987177537860188645153347527422276236387375660463005279794375039386094547302511540726638894622314885546957548335460495339659653459819750183820203951288008618238831796736896265565819909170822970122777071326919535721521266337353115206396150375728580204047917403423258042645485627269701290550620033766046116024358273011869346014660640645325115038673207365674108739668224096741793450358545139346996775275101054671475126725661109578149032799279320140478326953945673853231682265051868476171195181651354036025744580825600517830054259428878624746033775846936427913079138337967205719928457488779598243465157984751236690799815230518165900288913391273550526645443950413579579384709622131742966803883459603685915654747247805885157423952990491889009899728541905404571632118013472485601731739370326931999773989553703800412713036149362171154920193068598053925588668684782145011993859033702601546222474181235275126331528696175159935363329867970724235751989328926784648358120749961083991872940279063221949787055957194426573321303659023685996939123053582020122649843982676934432924677447342969398145308657217386599277029234399019814741270314434403179583623605639893873771172733238130407502568055664960992177184453481920572657378481483401657298196164826246963449396886301596543414013449988277836138068736342190363026584454702422157766530587407066980045499416304074305366299276359435467137533520169389527853784427844006977736738633367138978516828079103030981952249581619040660274466799525980287400688317936204185351272547343948015426519514677041662473276701068113055491560786233859498566799902109370845017668821911555227256160194146361647915106276794745456183998704667910623262131936242460648269189990768672474615957309771024466185333178572917074927735568856257863335917351735940501079998170764721274271677531288038106494355035124250734910389916024263155907575543751906821593447459033956999313641367308825583404925048175512896258760780641531344254728110232823528345214901874025770578804220002388141515380043274559003576002108741348274673431931831594915041849119280767959433468975185834954710934649802553713173646714513853572126584679050636744534307747609958519569713742660596861761379250686321868532891549596915381771379722288787460194668271023170726218387978250030792125136284100052610406599550441889100668878505069235253255474786868017637086402333611160293417377856728182981573550742802559431963833280248596351476834285563634365926552872809808595722667673036766391658913463230963646738006674946763718746925186643464171142322956154149387988730370292543399568425243347781024543488620703872364049462399905819365360450856654239993938926213651019545178088920398170461991964262000319780636897784393796671419891884474622896093180935289966891612362563030421247098507534455640147340549055573904127541130265575511172688175555337951695399681242534205919916587210501532878370957537906770486245847521207717550683609801853151389026724057888356135163307401222483454693652819700389042573306570916712628860403196523024188828991578724499644148731989671267683241854310198667797084570203690945524187642353424129328643448417980971853719371003174985406750927542304896486602445008697706149814936629604356931980602317897080494920101956008166401774418332535554915090455741334361810613359839881422703606836477721332110202138579162205724395331843220987716580578852711999381883653921627203457476853513294525463663292262315666189639778160330598327163980226079909521516241816173866666560845993231944299252068316667667283545579338932191837214819336575231625210623846466662645989928130742554720061679440959922219404865302435230143363986478282681199029824270408760036920572878499128335830641681123171573088171422813973422349496669164333731560303011465841029313922414402593928405022897923610351694392208584076352726543430222769247556288558298312662629237623043625461668148808159274032134133242888857247088287468255974972670666630043416395665555784712330984492931910904274614126907407902204201965105505765354776139558495523250052694055481537173283761883864637660982250632434508758524760059392160816378958002251562714277749690981707537937786764539799842861431404885351970413291976429254086161223168996197714406635759883775849468494712500850386834822049355344285753608099026745700300888117501901333388775186827144065370381959999514970411169998556618136430789861794943927164498604039803716491602271595168458176063678802310095636141936369356417561033834774384634240780136787312891829661256441065308071902064560845984104696983422609739419525116629705527387105581629731238620685112359503943716141453420244043417208876181919349187218454823689984344820466534634639854691351408941030310328462067969724107804507683987266810611218062516662134844700000506960779593419557105001461967984140921066552291298385250905771495923918689429767046394672568363551453026183794223756352611007570518028149936301377707574978016644403111641574395504896025420123600835394601565489980778294255973441222416017168145273324572717638469513346434736713395823286031572994749213674549523606154609311425714642800886177663037843489767552195927696655143178189676314721568492309770323962931100611771179711737548758688540990778612067696964605339779932103780339291253183836280767955800037016666967106155060372854988554745326618588640083703937071887613692011507118388760176621404760236992557365044868377137814237123902746947199932907394462810154832223155236305824434722645716089799315289251711371215552754913938601292098760212506235192618962227136743011051950638094816345441597739770731240958082653844806810755576538235609378021068184494733974120182970223969048262014091015396766858549761094842340233061385318998007340304721658471978951863404902657329700864188061870347513953842511283913093393204166699417864954540992926221296035125850293340166384017115013699060165667704824878003656134626507729622746265590531850288825008993644858196837066024038610717551206128298038270488622668957826224664575018066003649942121967329258550294966460869720851581535625321865526552662937905057641156639971505960622963482579594314354946195890112792510540161532682188172561168812108980503939652610641269050499381996449246343570577654752576919181140037265988223339862004308936614792030347654540793149749458455533111895898765782512594495594329567082109058193098506945932439315642201697881576092467577167763302615421277548443868253639503816490005500940916757366714235221436195433586584828153857876913738136730139118992839578053623180078827130100660626704448491533237057387688569702361563076998378051625761567856910714755384711059428028040307592365727083880474124971362655933492064649572066879871289975305680614334409335131920097586285484154048338802247752596021512582987227855877395503617951160233173952637404280167989751051093307925135289015938865792279421719801815874976443194167438378171711596156937102933853730494801960516711708401995821816970227033378877134409977893678957459614547897681364629188634318914759291933942385403036726621581367837792221018677606839633363051286205096178142663854322110519748652696128361456365029949837106194533528539730193698076738903457547253030049851195703425095224973738319409615496875139314204292205260579485994346488304636680053076308056833086774885385138779987884558560256982560824140392093892237338920950202007900333472788040381932784624661287520903673746077598170078657222044059264131727475133959730848826999770340836585278152855371400580887597313848959305076369336840945097457407553046568939479042573899538184732110613178554479209261425735485254853435469133203121413860784997134887024637327877508786627123305628256091590188244531527654924402553350688343097475566966431027593830730724269831120899197023908925908327053610971132595130022683709928970635048160543272227126623915237027274214638739657641085225265357814141774690557729864231710976228862435304292873636943827729370528769322653101251478051909078848609971717757101833204292846224161798037382184425746188220154350225180306343343868400938680963105872721047341029208982101077278408282655711972657706594846719943505375105552837231532675397746003575809140900718686848487707383866185666485318232605118357797993150913630732698850875894808596587792690205280323624288679705953657606884336775977268993108709313343999140995381533703367160057015010848590549602542167747140728215425428671180505389570568177786235986035300575707572748470110228639864730606487125016493284079009201058614210792541386001856122382134202034592914031558314365396425708397288477074491734372639008667245958062451128709232147523307001755699707638087582215696868348046220218852856537450642309927279049742463837679756262001092551962821025348845547498747450229985668537478496824393870876375677259018178967889988523268346903239375741227609818514205856574129176302242094521777765286893463653563461924977357647121104424033188212003078072164326954967715144631434817183755196914181898737278647110860359770349948150448507375451492127605682015853003662374947193780835818826775196066104415223393700907617156610095284896936236307070711136048679037200700881667717616327427873856739848864138161946626301193920098196122688748378163522566184684025064648209749164853851636491608389194394296688818708328364775709952991294671508772923570378627565353400822870287196044174115595529970566750198447866730537162962349495840154067979060932224598957741436121259274953455746817152798900172810836513280225585062365723456554956319779307831632825572195593384487610373350993356427826810103038362819743603307781648044316770589036430287798174157015933838666221322961626870078786975333953578712875792254138781475138656203207892550432034452516044386311371742293535685395344982768216646336367510374443513859378291091979198393186655033374017622566588798910729571063111759120052957251854209429764185868033037608819685884944766381823850465560189220504967571294371715980850947064535553681364880240206634204570430832714008311250040272525622861918043472237977550401496658744125099450376124721184115160002665503041754700587035682190917013193250211823265309887593997569394949301998930339409297146224456415574209618131925575747427266522117825361914270343127534118184357791997526025180577396584432130840195670566019555708100407391621590589710554298754133608588458902209883273922777549774284963189998567981261258214408027646911720772124687441982725169821541066900269856278580637065197773380347414419481383535228331807643917379477245031175047553004811909457093494609775666158201624698861966741905748137061116603982964979361665915842221343830699433862922409467943639189714607954482446744031622879045737968961899898429296573446511799681876272158195250194020106279284086361412839976598246348048614687404775066841034082387290092730675142331148777498006231085710910043280532025578309954253058264689264760278068478374393520937758706258077212586419956760477468892656608287022309996685970357013592122346253771274926170192330400905953779536344616050496834837420948090905549884042888445770201722289286009295903624118164926782113588117683833532531068156314337311479523755637606562080443026594894260980008396275483727243232571987259707292225950511445603769162741647739953977558129571393910413199673603051691744250710614743534520426776318263617183007219293393445673990389175534880680576273866348034743806565988889351718878056476361748441210366522053091938397787259070429275462546365074341019869881761059200224982359501763953065077850721798370719577191081936876746570746283241054615099685772656888647376929450753449907906926757905563611905722195114587349705979954993357965423628044264222537150108064738902329164653219796036274394552978682373935001485599165832067500264921041554238727328406409002001212422842444331305887630065266988896015211714424690049035333320106077152267585479779462733489878073462236900663496464340501904079530064633729897492058654159826805510139930492113147562044897916249225255860811270960481796463697441953977992989173670399482128614210859885383203633224516238244409065377050459922052791616604090445336758462643325135582184775772077917916577680446932851677158691774858093048049828112248069421254719929765959676009075357122291099145630930670795891163367378420364083804709285904790037946665312743939877572745542801413441569088774766726925685555162867719848204114262171852885773667135843082730298043323891309890099713449726111445831602527135741968227151113242614440400374415855434647439402179944503974267198335454737205394400319312336850593307613799026590924851955854236224713822514549346037276746383010102534965306726708665281552968649730543004482626045912221209065728465989558265308032429581433936440262244484640665424037579296543467602428732325910829359868418228319874412559319444302230481528345076895954186345510441201307649847614378780821338221154964039343165890435948944796745336405844398746388377080177889101149946421961674751128999687652443057836831931969411975455171646349549452768623196060541401617123841864303645877396115852593837138956996831868665356368738478850700330781457706409089888574333486507661191817676107661547316483943496628447921079999500479978632186359078794464839312950074193299482041924311780651959701013488567931743491521393837791883151470936222559160346318892402111705588422613573197656086403346262215131570745612258469816012799256886557586799572143930803419293597199478933272699044335608308431546914679908054330300838318750547000050226275011342881318090362815442940321079259210247246597107217803684901363357423492917422262355549382108753251571062125669629707160110753455541156262424241732511896226078649717643601922894573320226164877285366976458440420422296121015368585065134436230345148437256308508626083064653060505183436256759597527271873154023218409272221513579201256385621741022178267324047592587487844046895943381810265991346757706763886401883929024355012223208164925774077148681802221052309184014968569974448524138359615886348369484124390526084082710637079043439913173118911928478575593979393936806830558665103505569391321729866229012262888897424479939177444170408903130028194038915235393422694653608450180163128900172989207748475244752388162056570066095111996797771272963510991749091711324658394463103417980811096784065004027631746669866236811264549959211517340401411108321970758771686240856383601112914382130759905092421011758133294808327220729539527768595883951691691123507887477711981364828915209567017712201083597906199541043740041776515535228446188473275054428063455930946027903812498711156241872871870405918199678236196048777798117309677280088819390718789271493713350737920866764316553290384339712528535851040519309939640383210111659927604064488450662396119630098148048342463377513338024331217406681134809581683631368691069816228758470752151589007880130371099242352575451982020417408704400058660081455358945279722035101524557521696248140660761128721353913393773991725345047775671779779613410859654655517373213179467207015263938439935579251648675730780149741224125941950579705641845728017667417554914659839520345027110814668548233065319876186283731070038182484633664516957123312478560959000771474944007410092025114530420733914444823257207085044183232564704007231768403601057675356735187521246965784316278225195462466323612323822497265755888726201802598523229346921453035128191681472188744614369038782693317795418623612979019027232299064071296856150267147039148486684781806129954757930975796431753472511083413949585571555847084209389786150681262841372375067009249056223927439363220620291828688599461358569456110667584049854533895221410305611952869359473634576848134197375346064547138967261445411621554408077261309138164554735460496486793252176249162913525900108498461194369900593611263286048794800963562737005383054784005237241047321978104181244746623201955814040982508698089509477494680329882802169323236217077925996155600140159965186373818263442791736658809362876981493092268771909180030340253493216661905414372807322443353355224478377814485219866064754698899805281498585366512740645191231588032665599242736687448690838064581524310001962530207735844141045424172700262053262772376915865801430449497685854826606347141129470782525356900536112376641494463336496916995692102778451286499474455717034303090124099523023457448493190072815176579726963570705458178068058128011290083193169441810097462773914407547331274733116782483373525821451874748563406254093869276926955682411708894743777491206814490270896332247831822672981555109225563584861670753344155919575993530655546922205658884993954148282087444397204106815841708548487462496726423228152407242448534544296956017844541188321529946616217753098432540922296347478018392055852067086246140377217388231013449327725382164844542800305238258765733378296015533143151873383531579466814239551996911976222741428198608532676446346412420996628693984365359894269467231228413228991604973016954024606285474531145936795075746474511903346567626154565758168865332613190790032038327962514835154851994530156868555629905138993902037532237975755250939674711447159784071808424786414754386364394941999509744207844067544732864251474275240716424632674184177162672940492743354385648849900343256893121470135694635011305248571456169814502095759429819266486036186727294162979901504517512969776763210495056964405902704492324083843078384349100927978380284987485992971594979446399176247345558753363491207363989018091071374691791231313874156481809112382929906027094720590768539145961286381253697755405525927294742530711555761207464027338609451791153149767746685707240390716380631578625384348209985326398443993411455999712201115740826805482110381734612066538703519924259959590025773820581651624660609665046467775295310602069478852816289099010884714833118012376060777962476097405188282889801948975465361660496391143608681824786575312140571797671477795153934620225544625537295935150394821997732852923833333429164193965315039169064260294049404104991744454502407005909840482988289316149863063283325123581620678135414508296721420044316617650309875583767459376998327950191897519618300405078484845001748880246301459790854255318024402261130073197715619151854272909193332242969161836617266257814366467418191902132282779631207922844886475742592956457528485899969227612024986555262525734853125043884206726732294627875127745414514706313962977453499162034064561819068342310851870537213189976580556332786832774423404532248419472015229826217974093311836972448774455676909969237889592873312490673279846276291237030385209798391322940907822368707296639802589400785647014265688224954529723260514400030059721489512447607493528272525429771430593333707609887105001662671603389117537518661624365270526865915387613591674291086202840079651895335935968103083083616389833245718326629773832136719013978804986176283573897821677523086177872280827051220825999863282780902009151717424386180178479175527884687054397418389499538320974424582875355729660186111602319209048189617522184757941280266828703859108513045660085597956080400232400157801786695842965040040711953593692313204194858066611330438174429697109943190165065200292881875735518167337243323598456549110499449954878310668659163533085594643806200067441521466069058621165239701567563426220028746757778923280233594046921767112531831606615540967201726704561892080208102144469778136106217795705299560958124126076050845203238344125530886508646372395354036748847690413450752615259353376541362953679858257387992394703726700266422945718545829171449318179596642709393100724915860945583800776560761612126933438429110257041350331803989455424507970558994486462083565390579732459391433972379943359226246605145306920786366329662995492326921491709398059677047507441417754621759167910113664722427789474543340795172016696318369070641361720702317080016548753436888440013130750540197163886984748493033332786173542799329699663728515989216918267455157223128090867863197682261076439069581391294024590260992611463383237327729676086381967529789163950861236346194147173362551286555435902244943107394573307983323990140389499798540241157084929648567384094796163167047783369132051921131423974001915828116185705336971971160024019701955974384819564266796378081648616221870520722707693006027115636613866957352243358167887540117122134620168574144120631465586043335787000511961281782902899571987755905631082426457735977720713380805887262749337733201547582623738634991648574223138803262937813948710466076682912794830030321964794658088872695775477171750241296916922947790503271820130354383434993777381201856296704769043884018122982104905790334985203657189304569502399384332982398111501591811655388749060768702916286630506546249148698357501724028579740853521302721139656641642781455930297046449131081535326113630315499802335612668139213695238795097427635256171819559959180958207540007828297123604607651436100530847295615665963763320910322972348447808823057179356682602650414735091036493999750639391467932372990392080943257168077921880881783401121989546014166903331732051781006105829940668635484379689042238103376994986792294920988548517361359391933487219021831819190381019921485416108609723157949750208219080960920563562715647103581203353526364094025060575147918182789753916103918139835678673052812842137757533520942835454616463683446655074475383777894669374472052610915108848234266737941371479967301480514873941999848907829023118370471936390780722940116366243353178411910924125430704921577200579969251824097454484633134235978466276657441034155678298296410608295342578632432207999502167249814656807960434419836998293475372928651064379170452086603181377541254865535483913653348698258400523542060223335405790753415655225223846647528186568514721348616011178120581001698362699702274629099285660409150342681971595833992829256169310014000118845967452210244829572556846371148631869294217945425177596273736322058797940120953972920210960644662624254380981749757885957630595375513756663947940630177755375713358213821516313874778086206878672027163914524719029245156391259309026827676865224623695548322906513478678915026640169766220551050716900220025495042493432761098368695256387244449632603440880391529853701325258714536713893786492179688500064119307959647297400960082730254019402838858923306054504315098439569687467216058765348668415865246266181542372495499638928461196139097900442194553022131856729294378713668045996658393321170505487193515997367151419811081624496127826799001627430150674678635758995435000665106259675385535398682253197572093787283356820359833036653538211657550360633453775815908257810162400110494912088914587724722474306476201222651904723935544903538177348620653962736168528890583265670252524504613259523693932675779094483994384597759778566090548851814820139061371847839354735217310623848370061741286280229393935005072278264473499597221671169630274070821793132077701594912270221009694875990931555660497494113160419995553107077646507038818327027338756996935246580126015124173782288581020547703545323230060934153006375272163347501928165858527455943817210497951524590752118372847144582128322878678226446477579233341043549638999936097934080216555715104773660218714645451885774740695648080692491898630020208672180401397223762890747772788900092941747090940176793456793041345148379381135023989674411799300940224027886977491337389327645165261556218488216684341495663415720435652601070573512609346392613919479231425769478586709931327118947762830549408038408032932173697630261023972726705923958147729718979029763507101047463482543981085120073133997205620805453693269405933020214309236788681399843364591311062502100977757028278981219422752420287324227300200981383821674238663095738143378370945053275179687499111509391457104727457143840465962017881448853341838241411500615140301923137892804150446521959197084406010832786386944326890732883101068384158473957880596709936478931222517218259082525112415090030740148309183237829484421192022543960818406664443392034355287409701019316392407883885988409452528439189260493577852091060497089633815664368867213903568874077341988613227581415877736728649501383313510051073279960093636011658893406652394391813473371660790075316021668864228706517010226993551377360722144093480210294411105816038460945567371627976968662555925449522036477007835310669208500756474111403616730794482070405194425791040517906997093671888820657655608529176009425895493181262917465490798772731573462409514996347342903905959043542671103967024481316533689026270579855715703445532229800361294461563790347981848847997302699947981847005725075909398359245638720224899175448526433539693050515198629078233692693335218473896209364071359243956599499114982709625854870042495160619815839985374831019626480740988638645287393399394499694626522625389056333267250247026196872392059222753883953599165097975610010192966389717385176445116992880414736863802073940019189870068170862033487856375431461395146669858480655049487196805824882445922833704017252200429356892988550674346732065355534756488230105449942619579895297211018347030846978898334985988498298865927327467058789565735858281105898646147067192977127734440352336667745042518627440963972218668465928384215609604677073016370210718127093224157665424163474567059942490815062495632137726985852323124299719908556282756851486901964302323497383808038953534851188927273392263655590800959349105136007373196148531272417349504632110239250641751316713121826557481115127412806309893351672733134534795205304469492817169931155578952843663151442012517900682996685520047754061032532521370408426323292352489858494242906828093935490099172180050723908580362947238247931250531117864532408757608250397563528179299189346125937968672811860532204535248835058588114209621206746270552532035297307701977374178777138347770154654763045916134368819466040904980343274211570067066531991982061659995581468766237420203142483865043491630596279956243878286869704975621741195677029603546529464500335326589366068656910796859558954723583662827212743802944143032706567326133972281269732695471021451860046296495365730586428937619333473348525202811269719521624514628136642145076228959787209907439622153407346940058825379654572785025440310739467852853265135317483390194398359770800574377354269045964933118334609116424705559252440083351551896179266367769740535536267263800428459120989712648721791639533121520282306898460778859517310141912997518969681909688366949503552430025144903328903144851073595907691901999751826110772867083072665473911420789259833555520736538244359358843809638185841366341810840853048153138853636034909389996226190368007434084296031536228872261126898170036044641427673895727389727904501083214801303057558879169748850952324456254121574480512089314455130325269590484293196088970289754964816476592288269183508179925920414825728931489580883586394932874973034705493984426927529203403087086848184938218510718991772132517941090846373975292121163886156857758568118431156027081222925017381488083181674321194887839311515821139987929396879026853024655328206710826476877426359443708521389252075409325035556246729089328879685578562510998937723874240855890410221117172516442644015817678605496088318375698556663130138957089403364489656055808940742038962497427799569646731907329502540227893666140858448294352469564938276428518580821756117431291211431659745733012697391140408414116403358472476821218867333100998433638213959969250680159277306444395799250840620943556379683945926512978150045793266725583893592747624832824992773784644906775556690716377542576011561689467855434855660003697422341434538687266045568396969215942808341664481596707908031691365243251706056643155053634489387728243338478752517296344543188419202952151602324682718773374531098540494185931227126807260052996652608623444493147847209303716096615266918029621534004454869508138799339956273971591417038252147845804001196470984399322540627198194465502598129167213675349611466517428115739500115857671111750364724164275944914799952978405722348790284901181259196245235992097418079399487093731593305257220283124494362372776241622869779774878302821024595428823233917642787748682558708242691174418076613609844242663607345524687021538595038024604056106677764365737467468922139586520391369545981487605028089127001906210546556344425808001342611770428504051890405569715375031775811163451245167341307996832847953415032580050822832392582536162614559946296981969631009187320599368452268455197545813671583551823097693294841085732003396901380427958983817739899386067887313861702793410106147846063338033494297658462697443691629019734160591353394541846163551149795655104199036835933287678938473806239493986466907769047023399114912423583108594785840822138962334447834372331615987542125787792004488889045053810839615085237936268312272940932969520293421520966020797921197201686212972966323448589839523881383368085758357248018449433877254095907585585653423256663816150045042344864107753477380620791773477159763500463991452123492964989835454203376337175959924540626000700894758199848091395604492425190154819860274552673230136425618251140191009532920621269398986682107239144659636584760043331361711264033484706118565248226569937120424732422489745139891217044364092918587222314517798382791371835604185404324583009005049169631966686839604511501016420636241549291685675772976788075801376412395743201950773325059775203598914568630112724875344645165908157099967829797223497156788297299234195237302003106374055772889383306533367510808676181432152995052607766922569077013095357895319545575964223332888013671701533557883842499536504179725162878662079655414691135227742405822141686825715534469136110937842365028430677278611386347828302679888644621085491888499055105103456308559331973253087703078870424512164177529817625916076534619387828619703113027962574683614090491630117405392875017384518077554378693220538541434723327829737838381877205436181656839615415782972394539673521110965358928305153633015713451506600210309681453497941411451908613876869591892842776806429233095921763805069026174069684364138677218987025189035062160641239620401434850285061242743374209081634144931375111012432126735568944526390726191443323831397858922561631319842600821676745783129066864714629817025111709010064107982074880064609430138560828065854718892920759728899388884888398230331415084694592333917504102700794727491244878204588219916873462588904983649740967340344028939428572919368107235204854179645759786426134362783378938466490844484432328789883792286136613141398209064489690952452905298125476534722714776695198946885062583524545935622872035101628049243629955233060929789402612572700685201682743039244340100811015125443013418001351622495440288547804284259090803456828914801464691961551706091296862522791803566275212744434572853462392322228985977752654493602958522682414241288128365107573892530293864806261611748302118764683644637963116377470368138125294316878725010374341425708630623436442481448433503773671893138216848639022847968107814640248035820683576335346645341666196537228330068288696089187308801607255735699239245078920146374613714705728159259871468280469231231940796869247845237222354578353617585627305997096637477314528988378703608551078558951491602033704996370347194171781167710225924911805884135008880431248055208055915366117272876174978880557237385025889623934390810367613031253171057472595803351813871957209988659068595913776276350448778372834621759795683981176974866781946945749812263232760081599707895158129557019441696806638616856479857900241135506063671725750590882097350098131592762513475565197265805725183820790496002117306702178042882077669374744471640858785724133303978587495531120946727324427555286526880486631583151519972830968381851000279759925236078840930502560527090449911105851400422805319429350381096880294933366031718415783278227084924018082453681124222847915324338902910879752356761668707666047887063431391579893140371916608778262899642063839497356169774768663031699857580236068866360261177280298695336046757163830649289089245214063799603282908969350270773529888187353316929406067229371980211705586764303431128311107146222994469093382913198225528393641966701068309822638248854468839540086183832499626450769768373647375888689702098503141984317225757588358453797839997710233644160769047718384022119600320462390209428081965629067479083179231635227469331201092619270936009951895042010934938251643634206673208034986229159708551572077318558377986288850645492178859002165314681049403656889630093324735922542494937603153267999507205178817926041787338564955812000955230273687398984333302548833764909403849221494618295166406080730044326534257567604934241020832955565605209185123388191022405666306104147945825820059498015757777746094390932800092913965475964007002042208558330841668197046159004439587840810306749910787600391599360432949263376392545174977640425421085262003740614599457402889536318181041438628974618264904705909804356840978547133005113597011080972366756551242332596634746097787989166554859121489026109238822609567949441982898098186791909883962888753579835687549814767795482057260335337104359771768404277982666465760629633766166403175168689461623455622173197742784820631377354764353839318701370599102466462373218242157185768992091283306415708868196038124812955897518779891019239805096904042435980193276500465228842103547094515434576122292255603026197845777542293320652295326892449339970060852502796742576139797370978523980507239190719674500557232669739786004425704259050942832571805264988852606652532228855360251540085298452007227486111390100082171038097058484745541246552852380395559571252788439712705724789332285411659695584974860593141782247084835929737079076743960205168458602053095586777058940437247660819212987375119462267713531157664145352825815160938376273248832660439380899808005332033647303298677562300767281342178312626377086096954828850849506779284698929216762005838403788802846680913852980486003028765318647299283645573071737750849778279497326050858417204702038158473448862812670068125819876970470735999643842080987161571797945148171016517378404163621635968647035795645919382750499142984900858953614120805175852894000737048324795091062637371353424407727974792250517494843563001754297439931111252746577103758176369411884774379360142444897124053145009813442505674835069885092337317364462708938506295708224231003135013423156785478736288377965674988070806197123319773124670123287529106650268522512062782678387922477781597188407232138989171141192421839228595015712506225233146707208691340515913371987473843523030523074629214721473144148281772549717057964482116074330075532066291272212753819653179069816834677923391825844978088834154139139267516145527468540203376470954679880830932261587497112378643972128846436594087431709257625934467263766749925823344863297047508519918235736793348745466458998740047414692119149702238928479539052565080880026211284967257608588513261776241267080581557281114438381810476435589568767016192884280439657932422739848641672723926360767623905881256431086308750174191000780899819973092015411562358623045257657001284994446433205161379443001875154182292486424412419272351612728374294561550090278403814527826499324078049154887622257990914544888041699965283674003256182488128313309508000486613464879078060263696927800844605150948974848960468830692069725480087488808194791686352500692983686608020138937781680621338159207226130642752149124934846853156674178808773271450871639134185135006124130662151637075941601960744294195054374595646854126285540130557303784916971483030986209487166338609328536304731684731137065188211890606122486641819915762382157475397063155382141086036685349697045806649169581659517887540742443794986138364980309501361469960643967618697447676693756175837578275199962574862007004081829083423574037585828177725771750631931734322475477241589996661581948091639988345065506020558762026098016838090990923558717660550262218876784911226036110215843703074962789838693360003472326195768974515679618135192514183054879213909639117553503351842338347444850922044652588060470142538307431657278362656704295819211643910605427862575476364902017023491921455782606444543440991608583309575118574601940565002530827759107268687076364423204941048838487646667379636257468992629350988733974240616533063810667170457033377298761708233729803406093542966962975794219497108217781071756696079939450083002646769059990923251054418972783463008393230233089353503577538759079604877409715660965945573325274288932076215287301937169148917055962303808451981994484138639295711927504397854343452249872554080050605562979596170025487213404381404487303473259549612669398370830663722364278732173461307464617152996005661253434040547724427108233199737127769240471075266700140949889351775013157433276844673473143922308294815721616215234658065315104201022545472175369271559320995290944154789438216381948570327083914410526823913117274645719809937713754599164137077914186972165487720405012458080601020902895591970358823861094759213411884574840655029492222758526237691633577896733306593757224388457461475466007528692032636626947659768704459726852716895849349612390242558635044228104373955020346067704604550922342948360750092424927194268399647154196893158658383382799759565897751358066453223514987121865808433223196596625234688013381749607852561834004487887461628090000789450503871986278781041053167384404242913550295441918679796331892819222700476587749218432083192566845588986902164131322786704508565444328388843943141129042960155290665849956336758263354711811576713544916945021229636003725137667204474882682890156538385314734383643166045527383088364868460102675514936216338172108544567154978439959970446571573836792751638867202504340022552024189583106819449201742827131814242429946759958057143396831626762099984593751134000574403837909858231548289333746895868040092609277933324176631528353316235353204225976459521617481333540334005232617991006418849894146499068063930511385187435937289777401695642209830219968066577814689451050112398481081153615010269086380531454423984590014479354998654753734371185464171634090934268003716663375113226914993471102141744620245964814823815569100301058919761739978713469501889345550107547053527987606019201453571428200184006513023326146064613546218009142480720827747521086270278551078703169216740865959378105115197461441261847413964839661588802969845468549321565264560570815547201214506489173999669082313497481218900419248101955709804303934228205923297332697282932619065096201830623867278832599456441002994446072499953150610718737579966645898685580347436326897921023560159177407357822422856082878083239385174937625946267008990069130265574638128957798567915452011235601934165526758859147348129337673890313220870059307991280679318846903627783189707739124070517706716807577606765192050382191296441136919287815343086862240707894894035393200625038081284818413126893608967671533595323524949966610116168535992265043048311875760485357299571327757196228785562544416427644779042859289757836769273356118785201663566646192391381440761308375355064830614011374965007456148690935659105319276396554799161277035655295372151321790052600406453587629823935157787689524552367454835670340642387127479859726078941495273491193856913944930353217068979541341932378261864828874209532772655056358951117923076128412082628456314639880345589919041028083390359132145797496545412960513583129506872182822989506368838542979746463520355391534548783618536212248262090942832675623563984992045433233315321392537391285007422473659005308298961626254936163218494104118418048746801657932813191460834491072170619278481584662606484910621584612826624345627139325820020642620151146750142073246669665169257631453342684839336728896787067241801393651327308622697092461873950359128978554436397962702311886194500114559058512850105755858446067385978106705156632720626563223796709426945411668009362710163606712042492357758435255965940813091734857448183177504337797157934705869369784688891849469067430907664772828516989134880923327703588718749858386997050749570365626493140804851579222238278248757770928429214485789312199576778394098933450734332529125302263312272274828617311701369932655321374964308061887058041169785372327840246760392078620688650398890164481408847349324063507054164300893694288990730675462168334347949424086567118926551240554567708391552528520743588668472049644453466223405611562911852659609260653776371279977783550015078894667887669657127870467353010085183736189075108004410608353221033799232597879382805533821262767177664787434624374483441943602717663626098094910938067217110027490941600806409561427582322158774645140320436051235591472184930779355278932225500076648232536600271222531512764684754495234213670925792503798755438105173548726469953298767893654274827899701174274992408787363079837657063294048810483203540474285142028360633196522117106560987920282292465899382181745728446412743704065652403070381986571414586675859561551413826429695189580065305201883188568561153182164323910742742413147394294351828771940141426904511186190678981209990923917411084090527513190965788334691247533057261748590215529632703897301259816895331547345995869603096631552028900635623825784348334885090552827698449847237838014617719940775146830054796048109175698740250235584750918077108411892399067530674548186411916881152157848733739833892051762635823148146519847569877121079761439314404164114829545278900233896813763798127060437777444965203866944149527397213081906784431742791590430711273367469120977287388792546798237779168873548034315442356850213758362843312545911781834198664856338370270638446236591059714116537757573344862135313353591833420004849403513870081369437462065862083185493195905282852190580800854650484617251249265065487313524320360282077339148456576486462582311649683664174221886625969878160767559044120828190019549689647960860937504527831213472840563672970978236183074073287452083538318649011593950805051291567066582594397877317882828629978302072195116726247962350520342412153449282183675351894506323111618131154051479368833603618668960259214041816042718656466825280647133478128953750558505134126674477625175350865719336240814301609294728489951325441803361027953756041099335315657781223511342587576518534889700195329037415168772775664720764858478932332277323843288289105706825004020166441653257711186477673516556523477443683747712458312346021405273806648868801843824803170523735223616965821126683987812988717249024495587246024644963521413856234657370038984608602469433555303038486194531278553043529828315728444129545289181097764051540101473475708986613462168454859829255924210256563340222227319139273110055717585928948899873824028080266038719220890514172338897107150420856560037581128453946753505489431737203583896426203035648625785146907083020234033209733980875378465887508161296094889598939974884123457003200282353897060883133290351755978768613567207120255279959238997325412946562818467997363655925699613938876088291967338646405879602481425684897867483125058048146598031405296666819418258496733207916584966647434982358094910978791644372605642132502016599181433410036861095006842423130554195445374688930287089733349629692474144091258412928051488778096580232582000557720154369271501821651481995756486251363702172610254060424580691440069208673125979819835346952088721321111370498724594092445265680446676170366856864872005619734818640779557463674005669271211063903947060302544228129222943112349179453566139483001587374429369181106762458149337387827636634641202914039309023497578614595919575487458004150463073400288267990081464735017757045659022569116778362921271801693352709396067361044870158113724857060529506112897850196261742896209571250346324301431879054046271822477712723074488626493577879866133500212060331568560063081393226086260858189065383737007744307072068843201391404505384433039486917054744752203720974051702187168531530833462094380281462010081127038904552597352723789831281840140564007738912887150412676507321603641346477230540585364156865005628952919610069039176031319473073294555790203540964215794834405390381407908752237364557539614945095589584076105438216974197460967073225809177804206368662789151929503766734834228947531941604852981937129081092794844833965880947988288020711182778153426350574013411710189642808784826733694449658633327457213565295988075110350893424946351431399258670117181296939037849098046435962351234502569140892261417715796904040184225685046165834911755572698965378750665621397335254770956962069885615169402380400559187678617105235030683529844215515966198866254540427533447330510033551277290075941281768146296298823458402501142244055741718702116748843326305628631932217171725368223477343356799099325881813215925321216056168702916306665927614648723883142667455132552869199489870309068529129495621317748995615125697168860031313229762455010129199773414133568049256685832764994393684691551157751340498932455600338406568633429812606510738341779164552710425202761035800210740569998714180762001486313135755627986115359221252461594990738090181342054673550861488593971645501921961824281304712725961355624046117446971058702685571386085211709823532276501581913248334448561966312980315488885853240900943888771686057030957356205755499284407992567950892612505456390604706222030005542010554861651986542631444315701677798698514038409595937624553922785923774324985637834948141589268510811875537030080648213826519679073248706522428740023356196034118732766931771237042255376877505922874711858735328726712279213440777579457616257082760837862931297816266354621039839702945257387748140398679842062385055596511881664312236277328253077943653430131569508468588459967004470621047875631217779300438682719581954326841393621476176140293520505301636279226598646229633910267461026168200643802092479043932104844465254271120261881372664633561085286319616624003260258697938610585809699549603400601372537299924554336593011368528040638371952100693814091708103025280421476040208263044643260489254526500132700497240749389729845108344479264028961888634310914451855989156045792237369484963127852905123167543411530406752386210098062353119362278249582564195456402805536616391901733347648933330461719327584644177424086547750609571356500804035545164858237392725478973227574402907001838422382495781742634308430378809863715514404322856912445048168500270760560291004891890441032090373537877006849282904615453117029633356047619123541591709379634991245513310702518664584854677727949173611583875253563309595653249857743548586210528243480122730447718306715157799932859975302963402662632680963922575933909810696830003512273668683943577591489437341328880460606749159486289231878487247874139759615414615674581829690370744852884623786133017944048572898688856357330283703682206384014125462907245438368265245692746684126726444836414152621432139080234632405157232898679541493653714967330410964881078130930544799917271533983456351410462108987938889176882997721165290352583282022096511333417519162810214393883976844532532884632604527311607266705385068496936723391106714508169228099298817529103582927872400109190016731281348588062007796036150489557739674804716035046716513507269578209512025636200614163134050070737389312121998386171217725755531799275642695947566635347249838171013920668528791470922369834902299942550635248170369418424463999032398205845783400264508364172304899725201752845493875691175451070184029223821012674972450094417409127769452386945655511115847215692496580241181192895915287809747576979424681356706704783283225291401895151256499059282580106915019139850689463742595240185935717014857633774260939369721809944829484139346983959917535767502556594355719838223312552519459396818997996265275512516955797889533573324153584639759191411686830717197715700893973745409556336152996143317797512154800736140708318593489796350329478088494518161201386406220202114011978611203411595543757425182025140125061860200128090580821323597512137949868764926419318026818949276649782132973685612083473080113142342587465070672730313145473425033467831008949786135642748628580850409853271502752506475367474394550202881102562227398119920846929496535503228801356727699003515886766041391874685932183617617150543835370075718658020506805267837300457463811105825197123786392264722584109609276877906499012108421958828256445650212280897493050995485582785158412499954452099912205476968826264469195806673649924213481977817555372847416296905616687131634514339450406995847489777602037410592744667037382114084550170451768683262813975857497574321460195990621846315331201366595154240267232116996644242682927091319256252777508640618142608710424750936470012789177689092338744809141539091365914640831273532396207122441778796427955487706138735958620237140547210344088371587616743624404745091476929524238738528338153216528796468733372717713446403918385402841060102131713687375043352935302800013897462844058071255528789899174747753087792918157030480093601882946315120659840416186401665902981561066613238232427087177584181424168802847573938528280945271912792031412903668628793425063692134561257678148754298617075668930342784147928004653532926413955446543513625002338660535980367679841775702773860989637761719063947975140348180601559040144219188314188562071119605819242183550449172667050051668383556205106110669083096336201416270724905495452700851266528642883799982680581103030979173785474027783105304149212748208362403926574789948348031868479112568313232655129518217146247978523166609709004546301100493454306953458616688192354133336921593298935934059038812494166253400590519208756267979550732979772379532757670861621569108521482126626119512224888941350965056758388830132574420162876980476237651283468028517617601278369134419921294118037980958971848492652359195230480932218459814513966926409380697889675065263003531200035938678710066151190453073467955055117694950606243737407359309639258430045615650997432825322970889921603704582191441848346259161860974198697834064163967095211807840298276128021973086066921500102081798855073693882492966830236442091096805225710147929991737235836085141286876875618811935498115974421655454424842303175362451679917275270901874339264528872324157263635119996487604162702158050942159578269207500942023745903187085367685521510041833391045600279991562927251560738954327701773295635048952687518322323132968701654704371521244646747078213747361785685942693096895278877628342085329105459698210502785314127868631188545960277812414573200239522868407307576261263226143585122979911900377436184856728670182849295951524950098108732129634431474596974412102326880500065856388723770492831848968849950076659964989035239533895073901624074081984395809616058279360786009046236130407149006259134013248322072304309431986606410328165917352347749630651061465915420913893793435423769081226076141242729671934178418404899015289510977484124132964808923179243303687213204973716739123556452122569757551108330385536253674601898762241399520965563519556955751883198162421297829842536686718617844450404345242783841435194096621578185020872624360584779796372117308993830967725158024959037459031200447929641489744611023190278029364114199718787718625376334789090364500067526657463831592386134909927945897197368700992581654860814880411112632863889819023720488551277693895389659192372089517914074741082947376661150030789898569015119786266173895115657881961128193797950604465117050869857486299343733449473563673498949876875608590593770889351054842577006791997829717681958611390463194357683644122052481684446212211623894599525313897880545075412021929597528987367910595860887366295126531434344074517529713458507960330323930282547497837343728627451863142312272705172384715424015636261337140132110161139832466247226661166322902646648625702713988236828428210330387357118561410817791597995533479975733377453506102816448681187619893675182879627566986883038197093678999366854941875676867892233953165616265985090519940763764619492407591838639042850445409310705213121612038219427888909680800414120597947828807717542016154062139077541552227874434768294067492057235595010362145122041571996536530870865043469193299088272420991156554300684785220202840412903404922818828346431400700708723500293857259309208359608260884337936049810430196328501884338496916290696340569579802844806611556437025336485573851255326710497783238402139642892075469738311004915145743329206615982917340463759744616371595455974460447673555347671549892786037644813332958394763241492385577790363041919607813924922213424267214572285831031492663731253379088670781488511534458357353990632407924941961370360495765242045110385970563850838942844658658187965123854185161427489671599072685187262414832212327364787250806675671210681772949501965839445187203013421950906223839488429488033318761372450752115988236189869599544574448927733409791213482477048859206244841113179554948564649935199578567436934150072714662775289099188868188783308931537246860293830574824152928593595565601725270041549200773855754850970218633022675327394055459273897137420760257016565729076366099952211513647034153442472241383716122055045511187380753625816726042254836703171687217622118741947328632670001278658699683125229454477657349432411688886210991811000683609379875112213908713625666114785242413723660008166822847837443681468789699957993162006556803199171411372440742994687679382850081085110575293572588305717161908465580321171434086700230866336625313560650520401628842875469403355089859976555215572694338405573108823712499358383845754519286116906566253836127398169007632922067194241260252695286800079078898945896291313214014452596118607393665442938025711831148022434844966885553769757742155133717635115665189096642945886796401536027527825507784710332331993724887961862610089675835112224950955747999292803937974857133525920838296300088465552011453258277593798697866044632381363718741040990723326739860372319359376426416703586956447375270288117572537559324273800327715863758937335562661573809448383064486269221085110095047264791868414790522567593118202990586215764438570899326449696586425107833327857182282080125167408336099804680599664327324772378653696620278687831246932841694295842668201873249537987193732669270300317842548334224277131192944247205480982089038661274278495327502872169853561054263539341331514800275602719352187646415535509751081196046877179609215133927307531137874815145388308055182460875590904651479427306123144042876673529692609544294765448843827601107776342658419550306941591487035864265821579763776466944863907898573527791238782405815098416091167356035302505273342451559741816201914451220068693428673499137104998772673751300889288202485274056794072429437416407185791743164520249636602763684966241127822359806440354052598847245820261911001185615240597005920784281842935045995873540401599878561999772812009667295916644931116348728346153503351222663591170038145720434371260170695281176116666146914896503176964997621085837578600172500718478776032597695136741399734851112782461397912292932850442296355295453713590344383600299203104861375792083067884438513116974275986506461560658289516143379304327176057186781497166508227031235845541830788374653907124838382737494249471568403416630299308906610208493048875799649846955414953933812974911188823651768892040514791617414480078684493273575447251019087013701429424089148826251893345307962168064032717549311789220291689671106095585804991291113749451143788299861960883604226257518163681167599267622023092847562527270277315138268537048612741869007741485069359744277368879360206684077407984168062184696674425695275399818802263977758371284389369718107834723639691893312971615447194494013721145666724794270048688743433432441826517120313954970575111939620739298448705789652230439595502610210117972538805559539499185003349635996869884394033564883410873977189835234486314128803224947031340280631743177111531209221881422103889380123810139438977002747817386098429187785057116877882600498413527139495231631641701091347903106347039862357444767728657533253901829187110108485846868534109929710510557443361017248667581769101129435792879482655808351253169488783068735647476915678985068141736768047505855813860753615845727045039826811426515218389511934884108078076252006746981071607948060540994905666964042993583437412287289112060876622051572032841290753506593137131621159289239080012489708762045244355432663103928690485746912553364805245171520948166404001940160160514725831137116517878127366862480331268454495540943100616327728387310209845119102197461847462370009553583037415857833211507811439581862601557126598646499607905656608441764536321041610717396943150458909014423394004028539373056612716992517895124729140023171551759134112792838380701023940706283644265232427249410034818420866374685480436953592711323925817684621971309905664935653312940742641507506922201675070274348110394057915491097980374808505949985904245196637759189519405180118816927177448546359722474023275745199105439190627742001115466679882984508413671438095065756184347051408486033246240285287346658853907391456377303529315097109760142953279502511546263124277820357648503708500920666869072089023960127933822332970950945209171585398677851190506894783462375118799817554710527491995699536459392464385427306776409077195700449343803074249828047668965402072102701546031138395959181973237868195387316345380139076996811269167480872700099151547597699206049584446170153302829742858283819099990642070378167526280685446557282236413214352044089233423417989366655225766796736690855657346393974149431792061245047013286127472310167233466570796233244765463292969513630427644873196223613741738292213518146245449238275409575965321340706831124090377601766093195375143293334126701717276569399425768671851389308481045218551064910925577879024373878208422473039132411313459652177588863741122616462576911323823441366480254639279827471422239824075485713621277125981760825245661142817931852981021874467802282532213002361596529042353707406512055147551935454916369228749452356230650207931333698815220796346316687624584422692232019020884665543007589481886813508732251633251092259394186692413840049705143397616587587128178566154063888541584702603178710926592358562286485856085409006339618326760067725587506960740777018182292655871709047069686429458642398913808765405415593539059053545149285502362705426760898784645250847471732197174894060545373656335969004209970143573067740355556824408268775457352901766992204192154680599588814199821069772816289805860857559192058904752908335280789948644478328265349806582349390066169095608131807309055716951936969193388276320952656099791031021953398859935528393423180158909531297722455431639349968770109717152463362957556084455734405987909206631955299556388253519615368129358198876997704178140558972406835361108856371991606942558467582602704620605431052637185342496793658130850254741445881375428449898289139602468670917637517102131401500662412227829899951893900977590866756452973288416841666960890672517112753758227707496179634588624567114922713999749929267685933002086507948954379372546030916442906860028039635891687532486483675509839911501094097021315679011882532215118309795622179857512786258737981572548768874814965944424404915265260599577218341590597759586287171143235366864355519976764958260795389243593653549616912620801233516852032540992882937571610811144354426072935965492397039963261123027291644490934416188116165710582537265352983350005613409173215270147009963499470907508316163772408070356480659524860121754928499452716948005115728275348231669950284649669111000385899350565340601722134060543154193964635528143179851016272446904267138721649974857920874039623983076132757170429639178114509460698258602708620660787227328326862872005148545388293936964390850625062577725169466024987867053894860810835293334107946850268696128952371230209319509496997706503496988506637873109945564372688470195645386056486371554031987801929384737680231545271486702724388444989502498851020010500518223952272800653726563144189524278507018925093066350239930617260640817421932747424740037144679610440332570889697612282175569566245768578128353788481404374006678335560984179399146845954538442976734919915804703083907482326721096806648298943457984332166171734954700440303835342968805250923273810057949303492580609497643837161691025577662334629043352424269646374549425424373102356189085499925654400596878610599961562967333954171765785677804335490355430115912812984224361162914539471648002251088683564209804272722031052283819451514554619880182708935278269928746319517415756752414059253993829045493413709549817172557578174942648295029149481122200678720149774302584928189167013336460403652276715695658649792371717337024376191179137078450070079182240085271014669517291508274892723391646863355442846937789591978671615996882393151654622292960682234330250951336217442109934888144553197357142207698399055439615316632054344715739554245592853988293844136944340835590560270448007738288429931276723960535974250961158687540422772912187801189416015004979772407760754359849825688489616703493217264120814371196130736865285127799089435449292027195545132963677237460742396977394459731395669329545273854758648086992019845929416534654850897783666214612105148715636537853315487372240199987515050584769307906011707599386064380043356351161767482757586659612777463125534510142607278511954333594499053117549579768109480587031118404389657683900685145446636820237948552362533571289744754591610701742996846592749135913470416360301625542391303644399348807008986700318336346971743673972069447026045728439525359886586542196933539572835980233195378253073881979281377292128289359913709286462192020228259645780461317924331491196866377513127506770334261117804019067873056659327729538643439820757005064295116750521936621776137604903309029303435083056804968266361679624656454831700649950059100387647940245083264252358164236068235356536763652061242925852153483293850826092183036408574223196834236982435564743746311903757398972518000481060753804593918616672332569529887810330892464284241573268083990335294343488095793172957564579695367537562165058541652486603244630500197562953282337247782443285607754071745614956787605486139752231987784659366125468705053859657523337916405176637060915709819164973079792535582589540500306753759578919711575441054591604249485005680980074177345070085084895910192360000929356353181928413594645172212628275845275051537616058516819273174501158212160308649539614775002932587491993228338306036122052152746812684793563344328315251191473378034897253308030771685728665218258396095013603608402584844256749593865801977858256050878439416496767734254055161555447131671358123451509775527504434489357448097315014695030875109477497912451126661853719644095575748772278695334646884614304125061552399832764357126308458299072929192041077310057057742728846012992378677700408411684546323726067456390108860852294985666470899915692128533972054201264966749874235985439603225471000174923519809048599957143033809901445922079122998591303424189284983940378164465488645069136061608796463391985409730704089144007958351940378319360784097441111638422582287335156431590579957878486334620343250956454359221340186032920882543534189356856848040157234315840107163356172451110105375792424761576364119548541032996359027556235759901793946218730893651051644155727765957758293668151634113100245714356419460760037587411262045681050791658070714987279741179466955147895660771121930187639286499855505356626273497415000793442382789152910477733533363950654163321891171938921168138793609254512539618578191722624298006359117721614409821798787079526014139620177747874163476912997080391490566065609320643723081513664457086642772993385096214392372840420089765577770392056796516193088006736663990114678880822044213634374696582565621201678099121074985263998152672964415727151221748086235982019045498705686656167447864335692935185413052001268897995692479520101733829007892765124891410878209433187529369672071897614873807419898101161278231040661156738187660185498263537221726925455447926561624870848115645425805465830449862638574034056876246462317179260924790889706146188840929924308661435577300422692773214839083384879752143695938001802799889656045361196767058338100507784273538640610902141173185134344252014076813755671199254915858023507869592138658993890391820433762990638307774905963542968370801645792219050795784610579943679618334681369569452805457967101763861618199540072215619078211445313693580552702779378806491580270580932578464917153463723874288888899949932056808963029611543801582385194986942542322559228774438712242535143338115681646278287624375510737604412942172119489944560991072648149667565118847997372378277424370075751080351176237846526554477567384608235909891246823548931802075850849016168220140995156067851241744463529553848940497313218166903821549736190444110647218589329286957195640290270308884435675830054291325221493534736295323577822472478811445569876815763211600202890338441825120598017403494119716431606185740855031143016093486169392046573406442923096108285475381890406497426192243459833694843421329318919425014799172297893346018422826758290945495542496979126049645928109932821729468265354507192204973742045801554790412708581916099727375998765514436770760354393548211465994582985807624602444778791075621431956560307718432932590781487771340713926785592008958492061304916049890259816000248015128066968273399788859440841941867079270320044028157596160661425270543017703618633637686658216142785523155568380829850589288821552364228119746871258619261086253688797126928786497606434948314704846587583679719734409796072892614443668084668709370016335787307208871306489474078954568779066856755404632401811736780032758596968514953037462240582163782129866378040947834013430359810578752363239973317111966266523715646196544272055971526391697202748716869423993124844044514674669612845180163031287596996912532820046985473026817475899124330522055418519243277718356787215454251603208478034542216341984836518690575666500222280373624425482874362592235956284261356582174021353987521194637491191575341043395622481421168202047909058190567285648190747787538201609216493595588354910562031573875571549675271509176873884616150921104930410227534230036884574105437761973853334237871264802773103758319464118938303281048986884413877455780844118020247663740273861369903651772946914594174800450731716616767363057120461027717963001625594797955409945614756879640409855824140288365496512403600189808680149340941454301296697358477699327295318829443234972014920934098974387330369007787205936907156584707483994213692035552039579273988446561801135742507026587067802214157888940039833332044853483718028320506139145406516117656532504190952008260620844000295676892317730765860903252538579226998409460672444730841879648766680051494846845371759122792949947538679817966476743138066739815839125880030346910410559483724414469187317524265339006269927311856184568384360658208846970200495270599248274616512660790503056123047213342996896054694883450154219001096909965104845667402272971046958320333752050127808945415635950540222760861503744733125046724487619632048910761673908031666510207358563931010492129872515473841261115173168946302502254389924852783401913254541465786087563556515171524345382762909810782134699709354931448605370825456791001250840774737528647571416886428014334465123608286408876450634923610317731890041496328953337830011359821681461461987047999134772996748722874492250357904008609493961410101577398748190099920859592809967223427435207423178536588822218000872464852714680397804052674819695076282916037377749096547372430571436624481777141127303190656052503429802418622504162006891311974074989713133128892626416883574564641526790200934284651205839883186527103206354117607562294686717880612563535484728733775912637332951308396833382911384986613261217521332301257923443381002863282991558527630960195149372932231995811282341485018168280845350287712658674231882516324745780541881221836024573614672376090213567153913245370933689628303474444345252474715516306585447280153538098489169916262029905041376125629764627532706394641855347627513599330868978100028759374204824311251797945582222839466800825224343656129457881474932228877749485536392501260691640324631950616271197546471404384680468209840919939880050144116882915375123201150378749971824196747002647451966236494518202576313392790281652594919790288512459443082604890938389299695960850147782863435880183103789606756458611806678131586190494140505952779273113056759656224821323016126641161962340307098259152275959940086488801355234234516347058677697615587121696766386421682422919778536494297431394298370063179114598108379902272807970813205698976136422201746567192251445219924203277600559486565560966328618851882499932244367421512601546476090633277540110578964900205894436590251421313446997858413566608608959561563693245164847010700100660886440706111591502810377346036567565461590964719300425897377900694128556091590895175554321663475636147530953951871703390764879043108438046417691272289007029875399614606608667017436823117623153976156282201543548260906448630484485220127491183343272835451613925013044447485664814683065074330328575694938832019675203400761438999727488654727465947375248343210474566175427577434207665012721942673549402268463199811970513379624346092004347127420876285844332955771851650630790152831135499232318132554562159244655333460443100641407536475777436825973732440754778823867778250754576040337549531592419676608167089504453643681610602946477828665769566346313541790260584327433800820869336504336916596460322202466461308626053847338262594866664104623033709012753505007536843202088243205855705659265296566485944176567938307101416943848859326111906971452849465880498735702670570687806967081057476253200149095790369802712280001117320643250552357049097618868717599109050820017198164405529028427394561459151925177330772762053046970991592181055593592211636174657341646523297061981324153496785141494318811103158517113034536200022892121519681825151884206228049416948223255710449105485143848092637674292037478423389754720924056396718905118897037627676031768414686219355048150562766143274229361105895658390793288011050973545594476554607717065613530254046866761038474162578267442418013347377542900388386339237097359805847764972730078845368473875092778992364581605513340360394699327717160186543101799402083654787880400785291499986613185156699229686905388159521399838198136170242887229909797630225930130571170269655120477263037205155765347758046269251525069291526695056821785753702981525184613647711959738278048324688687612024620656862586666147154563545402975312235390615262304009223098243519785806399274935755697267709670696018147585323909063911930484070009708002153846579505881830135771510754143497017715701578484649181534071364000299385417161100194268326406629903639416971942423526522080625072701673292487538804461449954019387910303237168009085591780557699043420777620069930758073078011711649169847639655046591654140675590102672512396258504985208428901617267330157861907338835681858062718460705736592272158017557193572311212667050332405817472153224728409657276134926244526114801276894401608119935251581762458485942098536772290352687935836217808876704946582908058345683168191870865916745828374771268202672747589901578718577363402258840022902305594911992057744616202446002499130352084609713088376149013424642585960677388199223186517083394355621375709397105258852151970076047507128131504058547584947228421396416152597602442750331585778454321933888279410570729433455964555795632385877979687788492391734110753171677172338106857553799168894518551944391003121578085793021471252540015115826880206566377448447730514855374180777211378780484201218477359206914415468912769221327367875727905358478437175064838903876575724926564726648124354725371729527002769162193473336374410323367199741875342626562203523402071672253936481755557863935369594513778219271388442176133780143608916328654404060091743475865899447006330434616269955463675593205371824611149461854335226172900453782571255277074221824911175495242266369574698869720352993641768078229023623387756538977392373342856684234471611111225482119396341910032489006084563890309831583617508472991936108675334770815531413374866701743638248416460063831928709569996652174403684178646649262667405576207990171400935657978126741034815048106621596012507222293237616843294687840989597076395335096826760276804769235332934029049353114073155138283995990496408254129709959650209146721725689525882469497847605831111127075942313588412851160219413736266335999284300509077153368053378958995907309824089575490474786074412132833154110542764764976194118873841579864488229079966454511748162058676797948571436715958246362596901706716068418536038400917284398901068200283174533123605816768771116759856792801057489301394267488964749484386198868426758091405380403164377105468943481489235082489914300195444881377721531312350036340012013438637670883195229118768205311049546999802188839582298975082726427968853827426733376545494096878866025830451922057938279603416279445679198073648174118141875585355641224419796590142378241965232472036392542034676194077392402786791511313217491578698368186100626997874227496745391883879913402374530619033213960919589946821071322328919156499779659441050048032284953777856816695493705942580846388098735737774428847455726859177329528662445292059301695617327212288255112817905331648777432004502981455792080195529443112747204933863982368606327096120489504052136174019052758087058069925356126530919856703017103313133495161166936189553706670784225566516765389043656175326016448107875680356498926534604794246214917235496881003226891786471288109193315144753911006017865999884133870647769631906305521946908633831479850727390881333478141250303259072342172284782416340703912735892851626994856183936702555063744389770357886881673314902828932333949236966813597718252782439641077555770772220801875594372284198084529631232380039143498601865160788634821983478266120701308263186509099107154661237208349813267584034324211576843390454965071324378441700469713270508588142902614830449193637010819027032090210845282924110528874853066849388336455596705561927383672278984716459655143416223378749792423408901301388376922701371654418227470020589082246143506187251500671327027474981929798315508011263211206646284215373738460868905339339765768650048262084744343291576130748742278605901290613819400592567717877207414446450152224061305814946668782639327101721595104905148728942229552411804624505491984599458041205267754289575103727393523972916798841191128163885835652387031834579815516987011339867193355672719745998637127312483289790555727333199515890286537625430438226987675971858176823573409062036408553154963831021095526918043359190227884101463672290833356963587833707287860624908276433392348487218526088495721470568489815434038400176594738984570032640373287595240396751444072041860339123724629241201706663550097929292739148966700855419205562503071722014192853712542781825001544763673790779908099995843183659540129646300209758226765397347076317054967125121977419876745895265381998036035468413064709397601260736700881234104982613265545581994589618732886597053501508057770821568833361746417268432138191528468792747547186537054929550268355606152497609017175813388322635630819996212077818644823654567576078050015122478948701265922480874921845405729200848395289675530486816977783647146158401173307065563327919044368293662470653255524133114121294416063292116332617256132225041451851268006735680860270116562154646345540897850390441708015603561414950284656306427891022349884551506097396453710579245710417005775698912857182159839043223817382481647268128914211024712448696462200990078369768118066634241013591535416992116818369986153237594481018817907030501223147164462252278036360891605910558672222198764988979287540799581298436787947671048527631308197093744174765216157749497491852435549758127167953905466414537890856806956535248050795022899623171915437070265234607498068834571477901760186126901504244687331778455415600611686126916372824330946679489090423569289802656201134369460058460106847347697372080843516063295577841475588540193351250201819109260990077615276784003337550441747766355273200519857760688771015303742698820279585177523918882849859919205385970509200470102268289543263534328974429496047066652137974169416420838524655901045191003931931725779492419511650051348533244354853544590779508753603274389516323177246830619332309304980616429734697834683478844307069382458697851513651111860025102211027797858656953660121199603082955604018234437845307096978004820926266026723528957839097213567363943460141425678686733353779378603403810265902704991084419750795458365953677201461565617402053489531711007678972428288891739063149457369651875803768189934569361300908974757353232589202544760676469484709032687979920105231464959821555781796321406493727903861343862259161395013718494869655155423664539926152108005198446190721212855282466990146464143728645240810265154677045589320677160769248515193099555271900189088767664974478776618361302468237933398727759323547768680113150999342685753796188245736337705808464969859222274019591724750988515036687742812014206714961745046851432046677423820456865911017890064890492389477999464245539398839439373626727788508549672822404294177654006022603846534636633873700144742099122842172498910915129306885277510553397101297986972708874945472776670087169689336311284591171595656716802705689328032793459989621018881733228527143222220829492011880018322285547736164114391028217003725937697377997701122480108399751662877544824793618564784839570929432528306503311842905026723902092757083820464196280443881946126186602291731640794718372343739463471784318919929646488832172181438680356538087049124262923553843475766212796737587093056063812435411312813912666658088404013136458866682553202615227400456184729526933841432928398709603626289831103388515026717682520553669733728184212630026965184808284732396595632105504790474504504297713641312278085009519047460885177181560243286457188243866083568940810504570256068643388895527944231580470121927415695234618619175431153665307866418528338666502686628292749320308237818773745266281044734976998198539907415834862728216522638823530702365191719757252811871967438478496866043644711024072552333668565005008055425309560596934764175652089961334481658333623648103067759626359228783450042666646992069420086235476823450706427368865548438172127771193387686465726859857342338845177850991348321109938832724474321141664375813745762358590906080756283037703720398831961796383233234558637449856783255800300960966815468283412842260537758940924686196598953228976397084508186390225933039139574245731072286423678891568231283269367026024555189988080538582481779894093259943998606797211841918392143753277351661080229698693605068324915120662768455301747367360126565075082244599812781697968025377266202691375471639143486423596245533984221763067227853761133112322693416211158275548890659726196978596287683159160807317371647203140754692822744211720317814752209319925862026957092765128814064636874449115827062690355468684595606929539084792904645569836595346189138925444663303297623807751935458395451280810335798300088165181692245346387752498571708555211996901079965202599320361679310439630301629204682518117473862925502292524030179040076984428066266876843473916896078343814982015647215474650184968392211256945314439569497632903684889495016884364351517107094290993612373431683063572372587524502340988397876318556824849134043607663713865039569513699405236120914062536512488520729807649035607703936083193706921633288229106383091555362003372150932006716253946483411250231139316799618278818202668798108110455046465991871786666432597930590430483635373763612825411786126121729277532620982975653868914805753784919335568137215743185170259292276421630573913667039949277169658046192109818119070868376817729216723777407112637265998580437161127868446578344957276632963038186826807504796626540896089842258866095707670137320633641881971960900495847297218586775047563454725972467567398604460952946198870768255274299349075609743640637671208346093831784427891231483004098133272469055639527558375457371280087374154642860842081936480848459686594653454538255300791001680874862645063612066773211280054549904478876286795131813361723046083808933744669983189558721757943352237118953838424686270113409999821562965390672177528092641431357505449910833337112340773754375834833496982837977215891855241711737732493628127346716375203015744435305484659073087166831045398383268254367438300583042152582570727358628485313916016411210972825570450932821035791788089830306082781956261737954558486255342867208852418728711179856937891564522719931237477784120122827589470839336756450292236786829408550901034931834966612237830484133668147561124858024735082038082626784787171222437563757674247466157852339859570254452676073081116797612029654622802023186684966687564407018939650276441159000328223477779798620647438320710442819936001039031229821647264710668879050376614658861160524097184803054544594586175555257402526321940248840634775292110191022593632016782116896803176335194066517144517567124262024273757800279163230678260242621812309627299642984926424039861418476791423793962371316888395537950699925946312700367370809254645152686229992889530437164382302431268135279119064941288578834310879927274981994911584179601479419405063692895030900620269327557407218336744125905829838503538247862887232828442943411457382254555277105300572553655922979980218363142457990642786054185995056277073733309491869842150689904756892133355012162895172811137746976523308626912952783113731292859780889921368774999133922808154015547760623721372008443232770253021290404791268246008532552815664329183207582379672508355344548564436186124228695075892046172934716011838369876885532591315955360155585160661858140090802995722510593310750154227426642474117476372879471570416977501157496178793336966838382555757210535328417927648675478397735617225199759385066423840663473603997181699911920860170910524693906255745755421895385140937976540289850610742675323519069982905753457805966663663164683104570754868753537294625932820360566698119151219844099348304394910163705794031358965090593384451754682600851351142704631003098212119005544133911035727288443074982815558708020138918979714958265222001684540582403853713397388298182460707598313393847525661204574499818184552059951865798463601445567911395174647159938343054455887659595090397522619635276819573669180740500651299704012829795552404030995272857645894356560133739615102186074834223882931237215610018838273813023603507200001889051702916574433040117076381326645337364905041330338812715549134041914303027640280074596436568900450481501421025329500874990690694542092496383513062887131870883078073852568208451168703013397432112126590477479158999246783698773802410413228411579192865582853112495022462800227725215367288853609368938428026498703612015841364673287652535625501634265412129200922636302549551372017154658297059616769823710495260016768639348563035502655709701299722292264278705376147252015389532185063784161939525148056516484396350659895105634632696648591088243104966844608439965624673594921991397758634339315680406157796363509274641970372563506469583546909880313516328554467145536725192913449348810426257966518044550810100193040023664445865393207756457024608556487857011052168312689990618179279655549311747997367463575447419198819910646065631939158739338236352745625795427453025759919400008675037278222241456267590622237500628606834044157245648621560314742290921989445618617343205332418782389128241544527477398862356647725272369401463780769742612941942724309901650686012404615551484886792690447622264021688663239288022578950794943361856751872517711897121665191825034645744259573434750572095404020439173649955972726481710792930534171843545270453796587917914018919321164984963018892445266981693646920859016332612049328836399829825131826163597497346354088459187620791997792223899641561076399902504421975628436555364546272187228044137004042006523477930310188893410506969783916987316001146456317679028069395957585946054023679659178295438435900953671312621733305989624276410794869542260752797801137838152952696331558692777896279581790569871324869258642602018057275186545762693939362027576221375074679603871665026630583608353712348393204903515068967285828025283050264002465295327780053726249920893293891728705655793376747201586156940595847554024298941687792742332175597318213403976420971883003712594187387296813732977075566526671778503933136288468661176002801610526504561997404093339146441257181871278899812839769753936808429599261029555266099529816504393759308718696166523591547332618689001390239725870294922419199183712640249625612567239424303654827082052117817486038218888955880902201305744818876313798504758967522774689092996350820157253794059850546451076819916492531424204680707004889856214936168074936446787117920708130949832864657938028568379624521347763995022744273778668712120450523329356284811244753293872626324997219140759813571127832739286497827382422366942499209123778627250247906643411040586337424284765499841116838952050042574593820048555859808984665347393518926399707803271746913306671660750434348863327356393716855225384867598885780259846726691665584845562081804549142761814769211311998971344781811844077633427316583167768511254579436352427859980460411063679652222596676177794583406948120192962121465537760650833159759246642691113927271620173634566174738066693871310352024942511449756329493044905305632901544070928009261794019322822431592292228481715477093285853603728575509131330478271597776982704962705568333774725127455772826659712665385469224818172370119279906560581182171113505087734014273589742630202921760772616963932992790004552030808994997964728076569738294007721522586264510887244898278742589603103406619151185242899576269660573168735845162476144902185748169444129606766024720177654001424145918845807732003831516486614743443457161573496406759503779508870461290471876627998571786557399729321908203989181149463877543392211169923262973675538685592109396834745400275051768447449631206025533316079057271151151474750495008719335344405217541678316229212212238518804973303295115294757240096768882673865048235880836563411045320289937503395938083773067607553550513273704223794048754587491341822480858026961924925851029489509605619093799116368736216213344637821293153657395093831750673380576010630685893066917753861245024349072759887971670878619397113690745967721250316043684334860469968759055466720990186374089497128405538003452979472977461238862376678521405354117558744937955862979854302314492853273190557170156944497779398801389606083808346346605523760820496996537127333436855141647314588137661219541044864248679013114999512962915447634740679244379862760296345590350388567619502944439959371478222937798133342947728876642259234224384592416125884955603938470032168057782877003978938259098239707640749112933044544328413421198812905673093004576775296548828628773505528249262252441196859410282625036314200608696929701935207280982012821165096149040313899206171220119373719650411793586849380032364554170073659805658714695091939499499725019762211896796901927382906262467779512706188005996045304771270409742503640425672517252436626398912233318138271651880899849137489281830742320441848697555230550642536227805277799002394678012545130606010067476049830618513814494643589914359038754617070644848930093019701227813126041473660075616262276587799429680873617071893205159470538992609304752662310850184258971353936838891646015252355121048209447590436260108763384424253147528688356691297867457935954488518366085333268736373338753887983260309561989936403669731127750623982636754409760170520972077031403472576296414051463712835365012337183696293160262365267272408219935726187311985842578165774000624214470691274503590548410073894747056904855563438005730732398163195905996860304444069365173093394130368665869759616260473226236089493201424908375682777263620494558423914985653609676516740816142028609151719485191270581360130581352311441117024096444770384647951998120969543679303400666466176742108799738548732897227465308192030653062465068341747139343474063294059991158873650468882100442430556514938438230342186279560788800852319191173888181750303052550235398956488385987289987227453029035863447225976584510297274741640192719046381942494287115698276154133373935112401930139938114471138073300605404579089547150944449517599101637006807550449737447028370022912436663033760021238195942636253521298381104049404576576043763824942280257341933423919645692996110048195901535715797726707786499354906831156590068663748453355692826597542185665429790770383186303901051037628723787623859864365270152745854836197108045647515554415477201082896998344640023408875447715562914099105315455963040291813962523191133063677519972007682433679572891957610015659598702569346933106535920607516582036865064172296091941591684690740234944535787051376745852323076192269885259026304640517930959460366099586487132254037965773357466230116293199900538374093168175455382436708391246360474019806915639631704421665119748623357389575969516911671248386491294718221610332790601333346914730537597775510772880052197563846258247568431542988166199795510338752619627959908113402116380184542580713343087084674679695582087641950407611765972282344782637054004860282320771513153383682714955387972130668684555306420309065310987910821316013258674686656088048686285166332581201264847089258975370753358906429463041683843889374689757068564286541797484237455680726997080941867006748084542487620912585342244756815900226515139865140889587244101823161879422811167689859731642568563594062871050446377060116469579217296276231682408851315379528196156812246868117432596441605660168653716263362738390394931547638578061809225497332609151098986794143305380643837809528750892612158791117658894240132724380974457263875239070345956781170164761736761732416822949121936968558342319440490013873690457319874510472045730403897453907108973516043255114999411323959732136312002143136841899503795654840350502678782334510948133705137834506174936118509875936994521145095916680676222325806315526013289539780830388321679633160552526149261563520630310507320471580036609724491496720300088126563589562584057740079474652508595247988568183748490948854981599617336536069936977714458583131982114318379955332485112525618624044018578719163863367808480031009028079391992986727339729300171629684561533168009603667340134487278772943134290416283985667310790923038502488180317532506304909178394685754120988859695898348479891783656019005425777410168176520624178120799508101359213346620004842158128828538599322726131482218410471233461788971929077052742894620064991435601602937654735461897830763301502719493006544134076534621418102027408320027242603049146811736053658357759181223173628722038438427991925447932531709537959759250905924286121133204253714786568721444974681341509866788945960281722788790694803800888354887661371362720601010328616887098533680926733766272978928236996485264550451712292428093645363640284499350336177748819994109098017866531602384480076854074148424997961826658765620591582969210325579023772500255148535911723996351573758090017169005873242108086652612023737396455307879245625752282068530676480304714797512149295858871946052546530521316421822900102056874018460155698792792328514734691970725184654756958280105785997435772722221725642528233812769111283487721617140083843047996486563081335132467967635519627389290896964094648088039053300225372211846963027326199682225048165961548364592753790028895484546589843311697762590348139508033958985836784026676007678990527469543205610809332523262571248727215456239123138764762983086256420166826566837249412709915362202659878053380584045425180370987178750584484639874096451450426322190783596900096932165972127552709577637848526686988769840791178731556298294508153511607375141857148737200347243300028580057990390208862337132871782027630932909632169960113358021368182542856778474589655450473247404445865975627264866733174995177074495013478676958427364587093135479081798451459406059845594903305569575248342913821660428793832839161945528621343278387140180886997573199567786537570186054772750009264528340153310927984460650147590150142241893189470238662490892313030054412806171700018975924573032656945932971079515751487001627248226970969318311840311441190498751524309847153204066598514442065356304318918161521399282122295118625147083928567697797146866951682464460358281080810381581786891208915484802243392275345010596157235986771619312971727197977330002682326491994704368328654618602308499082021382080399655541569813479505541917650592819916740351956107351853179096731089482541359871373909128664940515719471907616855942237970980495524772535614583611092447147386664999013015665505160250657780659967229887456930626147307866344355282578127682110989961150784234771341615156681601314466140706859281373959603081997276792687679679342792971045249983698395990590736366985011066696929930310241742503203378245644672694137983448011152414574650302015979156391884123423966025298607165340723750160904942995966159531018111371796695103394529855084040130742461030807428511573888832619396537248686930624931854558065215746153468523302534143460133853163033715549020345401561228945465000428126952499343165623209731191249766842887242219489571926520254582185049686478937848696928498367012404663091913014952417090397401321368330667289804418795160809633242857773226855471890587638187213310854616721404750231903722916254009613563629971036448611692473632434513610846213582881290548187501519312767430012156936611188842266968645520940998210199421991533671697216125190734772557489292133262214153247675324904394449144857257688718272850016253551923687072392374632355629539398332622352044950549355283661165144310115536260799852984966449039579912166345793116258932822089851932571257966454571389421171910755134728004694515071202582452278110129717684497825468294620623752064392580195146185112236889322945095034250177532329866395885419898337583484875862694636826629079781157361542833406782966326783014248431388686628792785651508484002235456555712835390667199406872109564698546975762961529996209372927467478255490899351863128803726123710367556236918904908353060608862970143108607569486418910584516207264270758662105109678226494681167525322231063237091107432607220462877395804546700180430380450225186536701037026908066801301053450974724797209997262789851972616252303874462728542398142886946662036986838570766539794693746677890036382126054067264092630203763790549941900608864783339929169812964868329642856460993147784935965971396180807099116618191426896791956260084563241424666352813726183903547419323915626765868237443611087001406686452055898882319183993821864596791854337050125597046876961081436368019797545714191100950065788979710715565102355374780851694092176705510766235837317634586067009487852092234193845572139545752634950078322429666028576148856211453203977141442008695668511980955911813988880076717743570405321809630794513928632537243354701783581315064583685678221400325195058390534024297115888452493772585052877076839659198030021393154415603862518308870363136816065098471092377416734529906082547190894524975569811666365192729232288518316207565469649140488644698897777594691898992463150670076675930320703977651300150027627730298603158260638486172840558564401059688803436695715643676474892764470618803965354314457836174229953618073935650232418216720556459462118675255929487185652238389143893869511853940428844912337350762643055923078490379481391959000009182862004666321337669723295812818326750220236148537226273547159930660291207510506158362536884757551511543669865292049424301658634441366583660240454194848013340877248315069424386552999814885022449819934552931621715021178676138824017235594296130768307890218191605398907815117499010876127152227374838772631457257936096481221961951089710090864451852583097076856004465493529654175877260302617177117716960795343593236299203769222278392464200768858079959895791662802339484454391476875111742487557223472503721036417313296712953227891440643507044753618273230061094775236279777709143942017365577392438205716393725398907921724998085050494619678441824703457306770601316709856021058691026316346483396233674862689387482594786536121416494534291430006835418888365192661692577179118649145513788843270473037634038242798788509288093619288763775300313461756816198811061029777234717316719002898724434425699918393384541754516783540583484262348762033167827703325405510645468495128092630147137558483994128484239333801171663335288950133345501483685508445902554252725769994742133553432925226475640268925462107143171971582426230168639634898611258487427244824212330496302984373492434015867903346307962710076718766946272768746297710555034621756224224781428634821531233707333780157679313121972045544425657904457133282844156820495647516051096588978372540302525704928299396780176330071240688255095667789107849893703783003812797475851718894313671734390030748570966102221596761920309637755427383628266747412302461524683879803751454817697269993199184578308385389166007125797891550698874704236390929225797574464010624050046357538770554640597022608124573193218474352528722480081163347757015353812844619387570318749747543871137369586259539058990193547177046798576299950731175313100492326178165045729063919186370822045159117370122805019275512777821760838220376510117413223453303760281006912251345452831678079268531481282591222127370855860288303975576987936194096626795070139585748797817329856246664845660541633226405588337294428011127676588304882224335159979776131532424781897131869680667665029286506965601874948810248944871012330774171650732883319794774371262994669604160347271776766064666368913675879915442455795526848299360340034898173514786525532702661803993240637000361047766136383576032265333070273901899421972042367081074391901752554952932649184250229358645220500277770531704429350185218906955151005872143582085353926856780977182874197213526205221359525691827863879858731506241600269471140307383474574802249831220346185744010021245006645438609695272936708510199518515061367885136231699754414963756779972740332830667408237620375343596503081925919152746251871844119627806475688640461768466409386651698182955724668562365374140045642203324945731897594007616788122456232950002386319039260477055808370134319614909022182054561930818449197877297627221726672146134384562018075340944786208217840445293402105171596203470970862636817776779077553848777556311732307966232431972845805950115809105115742318727152319082773817096981515148559847663470399255539059035955834471133013069021323368952332325315723456152947038193417872358160961552225667919032041601317251023146271093319851465984172515011072769944037382632316329647417810737515268858434401108469067072559646928307307810524372657028526764753650271331817028369245642522394621667150125394578106349461437312493277820264834155633693021147143462231572331543343971792647549982708980553166479622621365960133259507954365687178836979888123766969205584258375267047918773960265385284226936552519547448334108901237154189324555258199383589415835755987039403674034705602204123653352420661024446282059778833317912688010805221834821112245210027546150239751006347642477704344028352315910074669618020132133530408720380781011499164703723328248401000429627249142634676310802510601320750466540494137890557869512012472603774948300280699394192051152890499115545726112705968962702795801893534650056253124920561943227537667639049950459830245742164952895283856399286368298487135018843850739941423128093175736184839876411735562173066442054054108275873826030641754757886591454438411387739617207748615128390339783124273249536174561466414741077891715893065358263176746147995451077549656062452072121048896625791470716526528626954671368919818656933666157526651702946493852533299250055141864792648718902057066915477790926836012243410159718029546103088623756711288271628942416420485886681931291957811146155067644392919889225961423785876940961544922838806603883946938825564349727074104234448126091453866005638995821609823013535862985699390069189483159595798955113390179497249657968422279021738381156318368467529767743602045744757390191596225662084095964602214502220320425398428123080507376397912456131674921079140135333454174473678793030070789377194426822864983388289124842662463612706856596696319198247235034062071633989621802085851342888047179542060022869077441547432546033900120682639167995325106722053783495942079028611218690368512937711736430377750679710811855816402942834701883081466028651746412765840926557085838248364337210479826688076072169708557364151871782517159854320569429303969360970025421278994487882328609326169306707294958523599275701381564745099017499936313699291453203135095170395540106680550341710287933450238143362388474851933894509745664281199025258014316921481540472282439042933688703583486632296680585739374200920783105758604279185751773861490039123988983756003671564241436391694033996681893929896096026412510142586569570149252268915362775394861955458392803346003842028713536892897626405623246412451124357887267758252047572974959149365055845814121934218193953728121829279231907543389718836902638597328718113665128743589335314692881341284488225941790425377245673213439654926528953523942218910026030400734941352195915628251289324365769144083475396019483366379610232350266233655563577477796201220880119617693509330512135443051204343867373816217675740952133150023306075639559243327347160989987073377128794770716239369933527349056859953309194386303888062230166282825480758567803225655863452742349655912478041908122587574508252771039421796132442597972579368284726686027922229632250269559514189955682848631125994341507132251514103953913369598302281818318869124637064171870634533066068937298814305025453432232974717747893673795995822007383732970022420694273882742241845641275131322834855020617466004397873965487900799096355696623515525703612064765563854449392235908589030338401339620152990789354711762538407005044833534727946519507147710132664146156079324093125254930469779709578756555592183922836094565837100925679048031430647316936597796034387585072085433676204034484305000374424580134066917488785499663323500731349339057251508109743152356796494903341170008322347040937183817925348536603814919221280986112143008414854126243604324158575628908278363148386347183919757257262748005414115424649423201079693991287608861706316889457076942482121414017616257600961606069231809376908949299460113893483927278709866866511917426634184836625369481604273253342815580354519498450067345947884624230670488615439434842293853084760595926403661920880899435201415659054943805176213941406127100406136781056682753583753410006683480036051923234468416803144649317674278028498793358790294381862029326294373800518443303043622248811721860115588518462444916348775579243480870014582688693571302260000837581614871249880850418169129807579523001072167304913636076852162158087869581888266697519012920900170385850668777526661716204158146606284909344040551581459371211533832266212522166697914053651565115780458048672745986757463330870258566827588319822721415910716181360961408999513934602459387647757426993615589901925284699341872378266095226302400465161207027412829229281868958665839502298126271780276631970419309799761337992315719944744495819556063145561523909916052047075842973081348207830152769935101580053560660487759767732216716678376817708149086442376519671092364198969606075525668028223400274396563263089617681188097578214544002269125407780914673257032106939598987515202967254383869911103523059223258915522370832556879257435209654590843243364782233766740559431505363502391374130555942244595751434632944783264718746425979649767289550680565130456705144392363955647518036238796689000363793824674019710372383096735195676942185474296352735997239371361749398499209157057914982261316324349270443503566717820579775140587328572857445949059334206734214567605302559319761996491677934637892369555128740395371625365599304823077242750331062025692059381493443950222838101767289375985954783868792660922512162810310464384435617283996219680376275771411411855142122397779592733648440013588835106069224080037907263029985509631996435264332668909579747060462143464459139049858560674208124211097089024922226573875661709379833235696936352363197116866833730477978383895666881824162636462547247501188577810785248283228618485776931847124505143040887988905145654483418197265099016381938361328309589467738126437704847347287117011482916795648082144952050521762502030370733950914459106765266105598807160439463004421778608780902270426368714660640716939583130411504567714092723801527598545020976574013516920509744862514636191917428132404136179585497220779289130001808056246463845799043637910556762978400479560493453634332680241586203112055741028054631946053299381463959377016693414859723108713304038871456632428422148112254387617565496329598174546377870781106186971655172143397225093897129521469359859694439144899555920341180098165685240876244367011020706562866234029183071953265548840701464365388538257443084741654096188133146212415098142799139923125234544128614065113474944246191559335791183431030062731962827800688286286522798196252469248679456190649958370682360650759519539538005027451024239266950726249053825799280651190941816674372956825504140895790745740934197203571467301479895272813822874387377311584648613290695990594960701018449873533865568919956381430186306244590521617517723431778015594663099870306301781639241056524956162125293978882800112653232309126448265297088826281027025761794519035221119706383010787112343487556826127901242294530324934940769874005237286652824510350737981301579288387507126961951633763285246014356741625961124469294232811216742628263523119238674669994464499302574270447576402511962322836842708764780500732153445904271654698202205810706151203845878195005316505356845645782039542761766348440020732166361615552908193435015952418527042843184537173260625282318487373355131672941817414577139290427980355257647765528651937688164079821550840781899170387521711819126759402495484640158481200565567373184210597349245745465758826317714141424545808255814708522462542213576364762047940607886714827785874214303910250568728281650288812003836520810676051234840562562553603774698526076572406291371573358177252942317419633317224733453458109799343172623559801044305677969072766825701315441194334345034024193791973735841208193193960245800874637475448006654678475429098537173515255059058503117552802784426818625725908969929840048545053871378819940484058288602039418892534120711531500544130852170485928673073442373773277740290789372166273302968199508591641389481744268184590823002477523527702934164184692133417166531978446243813605418716167111570310033699665151284727181153589086394561751030968015960568099658924418997376121283781232261543080098765308310567588837739403778758602708260632778277973917042152799829574270682763083212402705840458543414260534992098316183137971967221815543636538512596849930948365777819564653474909368757409468513984180519508537120232627479215196197035551023123715003697345178413595053043306464854945607547176606669703581787255458840734412497797762216289858440932023700633653105846847892754290010159778067808520380679277262456637579972236775267746440484856082657395806165969845565122288214763754544708510156892250317592589332504595228945367834582150995513615292516344000691341852909354886324483877468683068820720799482771005584396188623391896793076343112663367071478180844268287952085025565766044972039639654642886340269025691410934866230163118563654332596034776407846767440579581542980531124938796415876820577563392908797945414748770421848503895350946383862062334578662067633105824995275582204785227516566544069833543593833902580671650853447828376600737620054550514762024579327486243363155928360407834567539764513079852495442584450517248792658199940910717538366040149142996952814257417505550049589302086407331346257330367508389844115293041751456285151391124274907808000735250775103639438369075324097977184136001131710901849088850213333688376385773185074244605404874533303425939982696258942539167709727147640464909871756202329743216724517835543720357937505940359341552233075409502047663590810021413199786515308814383727834252285558011747568177269942776607641954481877685655348663765689896982050188574410678279012920818293071232229960860737368591700379972720276977337057563001646456175974997813442169093029642095490066953210601116586853695099753956628769105266748992442100891805469326546179689703094102759435487666832985221158864006542862473985750819739447330218208422472925588103104821321455712717527150913021390050288800814370067030630321015941839361650308398980719075403632972848509926437262390971096477492149604830873140228758275229114670409458663471447635213115907425316596356490399074192340710846375790041209692653128126353030762525320301015061806315683864949692584698208229250875395583758608727388905883189282293267329800700794718743589546134059097614930297887985043257442700926442375723425360462510518587040731987840185666156256246822243389499656316521236164431773648735165602905435366909067270378617299809745478260478736982590947827883019537855394017676444115437248615962742856838131815023655895406842520446987288120826595515989201745796514279995938001556256939649930196536362231690799500768672910906445004816669608200247539341102591625372749869980645763903469803328888682256956847854784665351685564074535213221200639208333244655156250221944181286088438799713862053521253933493859885203866614683336341249275584723355149319455801785894316066267084632444193165644410513598806489945410181310502916554741540012811029657491080227150578798297800065504568262139637054322012420699918365377685356391867676566185944402634741909121374916250328220913938029538559406895881491705721466926956470735027405680677082156329990997433030563984239879063397147491061466099327628519348460675021199316140034490649153441659912026442683191496899393340566488716831841187678016292200394320595845441935396460557231631109061754035628481967913463671742797133615136687687676194732782233744261002886478198564594291149076768502687955029953652632821483669052460936952399920170102775559079202208263529190870975095846701524276170866737034615547243791656627394322914702144776575875624214869053532368837884489416763718968656499398181940850142117967572416394920088149711302382336034080970112615684550146560999281773033781568231602333848075658171702485647680618605207690609776256174650879132883452328063606499790034729117048027228072395917332466233135297472105251754751146056214736941022650017343533231636429395764832946080430916641711339360409819990098612056077350544734660811699862505370787714742803414680238326708655079628811839688355143350345174427070051401034823600512992222756134914158957676819825921422661865581468395126917858030767370130013280915969961985500948407884810111735923532205031030375056903930499619007707232821855572464330295586449667459652757461038489398397931406888655785534461399072116588218481255245359794417688096676240608036267302261608663934796756406596418699555636539243866534544440812471621616282603929578594277828590517399509783414842976057115409298592399329129186999928721272865918437942100069492662142470838798478641187842937654831471996323360594288957084004207665840276158867323472139418853887658682584418948149173125851476802978180901131598941204598368435296731396047342368913597460858097779428462063360758452190049457306462788944535468657296560769778223622791948627252153494050580711116735565420201974254145990283305121192874962071261717828885058872594967504322919607985913366280486160214591155118165457341362980159059021701524293687691543109119908841535239798233186209977338298139685831187798242585726471596683310803027750834618468993974979341304696217880795940718779785716528275905789171586048690419912886469232778123696854753074071231467238506977657565856853286062047059210810613066328978708918937260399850133305956048174936625275315061406337752034125505182232212343781308392341096616418810303091291082670808178228257983158260730815209507039301685350402081864586656190427299893113140149298863911002454576648471244915228471945467122487961362060279466398416424083608024927148795751969374819730286085280020978248463206508834142323124619393091652582609805262352471874140806371702000924754694621386270608939979674177132781077129424304536393677889821894408958082985623961609350227303322513784370291026405269937078140455596291224341348244328688677610844242466098921910028987488084643479271327479631123872056892381951671908054353933434963665882337225559309708983692881668444524464626045219151698368615636281229617865321586482366619946548200042114632749538210488592269892871614125539776862259582031526110216100935491394159962588096901042596982998697567678920463903806513511372749981780157099065174178216428601061578687640735212126365128914343649622444591730741624627298845199963550160415974478355531697181201982198902331556124694830429471528598049292965474146343386953854691422471130850864655647908439784351149157787485508269120669957430830930639386693504770134340452446866182072309673822381355134400840217224196354431218355132201464884211270263182711779152268395806193417328310425483004675636123847801102608966583493281837342779066140123172987864246604232207338056777161201412044718926302880297146088396668364084470168515987973520923472042702232289865385342761525158256721444522870473307779836436694012631935885071035967952718595483490450163427373735535857527885044297858024197995763490026670657021837842397436184912049896638958755728502584880556943492770576551495780971041149973146574459102854673400520835628254208239143094067421331141297327180063944224593355790680850899491207969978142764290526979381238308939414151109361206126770359198502999909224010039171959386664751102072130494279267012770008130948916478000265008252475286692819932363156842009864784082988376413095826505399031641264759025518191103068893687747366958060213638146606834247831455096188995800239579831751719975978878849646704408474348775497788833673063241268317325121737481332574257297358289120753618195393938352944015241232342662586443241996668574629938708645465976262071854983183628900648212577965049991769686498069105634703902831972986637991270312624359236511854872586242528494996778285424438416378797313524545223561872471659989876376841645002294617049698138718510687392860742921880682421653524646159547976741191933870394983275370447251503720070939377538354041899069140963217856966610093414987132570349752868442243667042753954013198715126720568963205119350897487857744539880058358056528197079215659136243650561546447791631404733013162122327576501200874729105056481006764589562471781142182274493467187184798310294956245427989369120441618876293115744475627031253236811470363175730024848344781944161776453678873648267662259775867273436789461268968029865082847219511057566173714634827327632660094205956652165450303242763716900328401777375445004924538078888741098322106634230383221322767231489450540913781420851656040727218984187441659937688986746423793224605453765093406110870295738545020300424438818850287287491086049150119366621376325758103863879876300395730136991875593660435622078661519865812503354632887653285575728690269567446015470357151835095255411284699385720754303354602830369352566365752138077255958340140757742336458761162063651741649125652853967041810757926393129486159062867608188400565795881319703056687187575105132852638442035585365523389362822767111799951774841098152079105398450790871706746798809538605518314478202991256277411846477990833425430216973242307552342688355348911974944628304114351821913613062094815641297481076120164360043637565639913389607571717609850262341588935411975974076511519058205613044483466398167564049417209665136187839714358640336618450517491031131358341390901085440055426941008830259678285088203354800994687018186315309310265222227310233315041440746279323915873163126834369711961727700559175046560353978524127173859791446497676428031468698335781446482217906815061071421801064937528548446145524486215640802961300759368189335225683615434752718233373574830764011587334895424296026941021633533972196901844101076521625019765066945844407956683563955355346646571494277829918779099910602102653680494760723296678010813443729407696104193799764409396944952268281781097437715762552693850375326216093318343237771161552594746421144819080021270711897016996862068379736777579111438827699471503640659374338543726657202931399424407753833092883067767086076391788507828356405734095992510317711899524995838437253963019564944308491728331240731435427534574879831911774447357078460972039269221691474112778496696051549297968926167065799670520835358645436080781523988572975045621174365055980534696189339922452551450030959507667762241724370701776229817793418121842234717551633402454626167726729671989886284948448124307857502419834311319615036785994782236444821208130380171476186254321123020334140293410245747654211581213481374938075771690412838462999996961087626661570733899133975885200995745164556775522456359581268728357850097658469623430444227304836194327221559827445151855893362793749579967362079490055449419653802238813866246750198272749939417277060509512854495584730554552780667095388545693227009392127228979583402867608743660660538204484736015500836266316952763608895944988715565924730176979822903471766739021421171945737761269716422715422487845219479403553368455625886593283777043820852172537847864363316038042630876541282966144760909004124592606905618892087531950044735408035208781836824405526445804384353060926191424805688973295453114637527686830389620589204159864135413193083329099795660745472306718563577519307169291819173107319289427481889953168570523595634852617636815448852448542204822429739835940517971218478044460488257723229693163390703795477874171182794421074814518927180691994528908826659686055730733796828883205916850748558939844129146733198186033355572971195192302742729510926130392339578271035390700481502718312951805051023948447889967307835014028106298830831021889739855153994702185260783794590474099377892362712417599926090023278820350588106822187791587017056321169710813598011372135154064690740767414364968923164491776860319353880724752873142614260762960281680711648325219762207318544663756683596645037162920083419750174640407032801767216478066485328746085023425874882100732900141911943136131053499620559160272278293861963436945292048746848249055256789499944275378855423043860179202650185801186747748032154548349781712230489527149257157810337683038014375857707091085453616039036340202546353896938354313786572682702186954849402858378302477277979472443534858776589169078109392495473004129908980421886573751267376692016280103396654401672262735184247582017594193493926796725538804575984477298653671538871944322883042915852483100055182735127089162361526821984992854500648342063599798203268912554603204917490353555535388201957825781387118381954002524262447264079968064580228107943547461256095933133270025096019012243242166044796180423099206657430278308986833861398255800820719604172508023559558047488789529815577500399621660187870292101803874524056973131758258601211863783128140155498611813868308700080977772837495870433386249951612105685089635344275757328781694085583444974984190219585142945389836740880622970266822936596608115087098108587726489291775844443242690596966348861416586723546251921835953791598676611250307437538599873748502477260618984812260292955156182220324394918944732252474675849010371652726934906232757915614486017214318379453990900936615777584652167994857591789053451807606617297427810747186885034723251273547435070931752200454110177240600841150733395948406510548861750046236328134881019198111838086616011560936903110800916064463403427908104156165249216359582757558690610084309230855520644849350112975689218398096515347031879365349390166008801456524600904299079462901198622523310087687167289167609233016847733510408760299329710056916654808081458803310224803595759774163706534648341066538824052764730204567382135026244737600007618648078087108073336725781560797381391884161214759159839157416788737804583497342315286191292127285760035773761912170831624304558607224655740557625111915181097773839926971827557306284800957689677158484044880982537906412375571468160135121811253485311387884604891247101795375487983446807837725444086838585892368933142034302074168637349150652707284558538204979145648844999102975581404439011224358966024313019477054324101235197807677798806483701622330969730252081622071601155222975494889271247261873331271157802672999730927478048691902869369981555440141807051658626285982518306707013582059931206020293980614688758022478320087575332197436584729190137729914756472067405422756188138869730167840517186148421566692869980932058696814063295669895760837928038158686340375139211455676337293675616305555671395906176188528475437284992893444070125504002716836815656443883930191484129936634072143695184836187485034025244032174928694524371986165983531237373074813809991633090676370053373312550501236524146953850432293332610016319010022229641458684724027422134851742139412741719928565051469574456032955954098284821069847002956117603727586037855585787751542461885491183132149858896499886317055739306744311238846350439156841176444487799188260299008762748241052181564596873490875284429691340670933014082971924411147079571837413615673917779006971260220127855802246072543791414137742050482846594380368838791316905117354449350658668570478636866193243960601432351761321921359342525083779678730945541828938065483004738097232773772921282919358900830876181348457637082414435290589192713229202519396524428119130351023931542908609750643914442803582500669149167144404649947957394284840760425660810859952852219070020968369648299701777832433975522146762312341515821225997414111957606320422832703051646242270800195014028250310873472135285731926143661072006513770522256126626010818047697795513605938787917023057642100449301061480043958558441920425917037849841148891718956363773029832503608672740639442967092504856423154127996354723155518469145515428332316984185182507958886915921048536979494761835263415251073975131368136321579998841282729273760624251281027605731748378063894446722828004541262276830270246866904171570895290509772762020327531922525052636315552680145142819810549874759901283232201162347593465578515779767737795500733692069633084161348239554011679112677085777099915353181705212277785467411033540357143260706850744138560368093301834758124322775364743414232889091470365981911500441015838344776323947237255391876322184755039412351456381953400738271453574162855693185451025204852255086656682821300795368350839405133283783437276501434734274698939091913022109763480936333812507997660210617561017445969344264654995708624345629770034792272613037941461388347846855133431788560573956132300483851523165909236037967982862327118762152725871386105717872001716640368456392293805423103527504629574704297636310600148111162777641259422549839193173851938720769941094173622946697218996824969649780378761208714834766827352239729261034126763640994385474613769745415622175102699575458812068373426521611851024336576722071204151346373918779903399869577569540661453386246365131437566175153932162216971663090712033319268219249701649784470882901235774137775517910438561383150331865812839279896854084506086648978038313809498584412433830407185238324629774133291083342809069332673385498443373657275583709757737366695667702170526941595108045892080106275345314565659770829168407370232077562431802253515709327501264237549655897787209527335892605718777144811111162676050155266148376955654715468775165790530476863397373487874968946716191479066788492925579634922166584786242626444565157591540509865265065039555145628833471836509414803730970795139856170873735182916448493537016944134658311856645243082778960912643912416534551918992887360419002620323062441143576603455089084400012786372688822389983737269043077387635283026281015501071036576354463816342646523007211586003484099312009016148560966307837299849486372596252282859213750464577014228049466332819290748199157406710909116117941791862141614495896082433887351458893932959904250214160773461823086011108553137075159013234855384871260898628190989155623803075516303885266199169046591447027437617906871673245187995430104966680290672709336963558988172719957908346061694047622790903342780992045204566030925962515077980522351402591563560303777612193679748478349750021527521822584596921580627001801113158965029478382596130972912315536563359743134157426760827249991036611415813420545582133823336018284388084812823168872216379728929576358758601633641444172993888165400530416979914504757869761538993594568174210120110031177288599391149306185040638335353419197328008554504035301156276829569867848059087289955712314091788749729265237278761900734904250840136614374774302505196781825944723766263109612161539792340494217346066655462205786583915709613204053175914640698361698138196259855359261850537845641130241000948298954836680278241180596083520031852499696721848106173446740086033185357979957292994431562392890151893415681863550532816612199233600864930738616185300079272105555908841724033655711786898666559770966092343451346410685363102081649823916466184585616936012474217367466665396441943193486109005091382770831411900901259524448958218695034264292015230426016882123708689994470804789510612984093613703160145741578048083843911979745178107365599236050520564515958732296653722186606382282156710691940317815423989524249885125669392790771655543384767254047050505495947033155431784132024940244761694360991171483052402027024292563623797689887490203862834852553668665129190929519371080784106035540959049044248976914690311567812418767022879036684466226982789675017481314670902449724414022976711362448845198592306424883014034666472471854668824221337299856518322958461229290910709906908595261579837733901787404329938864993299249833766802782395319743160672044108762914977480574791658617830624387664631226329760972801465711953534449815821992423471799803187401569430346955366803306076501190611450633516923429997994278743563745559493272840884975838537688315752659015765868830093273780732848550574654889054051756570777082439740118627425322221054477048243501724404225204856365159833691950473946039942520735805763694854236597561920643294916587807884410149638996865561007227922215383183226670204692165093748761716921738921530117765511167401743164010288473525448031770515448935401696463542020976898446547087504357530427487655363599613363722378629833410150232704429660428543648332668415621443927194036543362789110650987110966118123606441732545867460398928823096218210362891297972132913101933650710884761523042975305773720804022704722572280390581345993258245315836713945351058804120418523678587391700397267338531177130767929268223597464772831546104287072521077508919069756142950478557671963104440786303793033127550239333653649703984984536137736879571610052018575367261337970195801237211992746817235276326379617136385053046731642407279601625905869017960968845714267638662389014548314801210780314286427147543684485970330808911940657359028959597441519125143324724823959305964082239455131122111214878153302507058236722715244367527578311871647873437134746020285124972828175016592482087476219481250042730274500024437697044531822646613451916760244197354662325574591050123836322425283597343143771952077364025746977880965233537464116889327499280446841900942963724413793239783076579328233044181355952448455240940608505860918329918893852626996632681651088572850708561429076757285599126251252288596291489947323434340985252452724982896151029687856138670550344790402825092000488648351780749423646779991552197461317706316337544006675995986031632340445272427569422562971750590384862260532762073718062874180598946224526410472579650552241584327550617113030099096582101685984410648259594838195114240940652854903016965998444647224144630050119254627645255349341977297451303507202705422199883517577448212840985708083970622171769644438115028442378179652287722703602803475610749006821392449489053086234108411936077486459863676396863014221541890957394731837539688396175186302680493347496583982737939069922311370331503647853429024648178933988765472928481469767465899861898086960394576031727470385587035523986568813672195315217856843342390923200844083917031274612615084142180836537768199790516976714227546596657717514277556329681053887033542757136274316160695581514950283402334404066644016318976786434167912306459396421731497349650043070499571591559170083610986630702610908229531918811070273068895357694413239269665310573780895838051651305510152761268523009785049358228122857767038490917173675931773966709700553017352313411670742724160256133013069089777913979639559294786869964494960954372774278304786318378859832548753675498033516951036529798048692235193766433560931730618985371137925727968797315224563166150729165526338345144062701230808535680454579818093997315014123094190202495767686270235777200202092940594278124674197201743135080937314486951869665732753716366764140744334785187153350029696875380987339324660035924832536685274909418676421433393384254125405109676987662546724111898513393367435555013542672004234598201865441687032900059512231522243114742150414204542903653450551004118167072812939152056512501361303200047588735054945382602311163147363158880419488272147040188196654420966600351103291030478695054823652294490568809672682172327086010217239552716529686815852576647691964495684300401267650042622226745374633257272015114855833205386258976937367787283316572236752856855926954890670915197209775833659877897001435792491222697281759103420676038570644164120566626742410857081288721190867460662337238382965749141129967783449928345236149949927332295826380728638890138818303669533152649399511699256930607913061302753197389855708142364230361486344593371457942507959240762795920945662190199134951734992899536202809903361371907735440674585626719537153544363737523127217392313052784830530834198849297036313983146279219138591002688605494748930191963353511150263473357929859669811926138507448710555590351466656382365528974716937895664805174804735739935099449724435437910259182935142858760308974170084601760024938806771583068182164863680575667139580362605570973399324549043692132139251402242619995818261577515225151525968989300273835785749930764750585422644558875863080200919880569454354623005290284201889409408487880899420562200980410529362438465924626240127946675350579184977570168628956492667423931215815308085204698125798834476769991801201707869603052880034982023463907157664825440289613698834353068407835046075300161403330378886783731041361505265878898745612843700674268420343286414493315085558381949165952442159905683768291451445016304219560449969427470568912778793993728025733095768516655232564912893827744093750851506207853542064284481937645462523663753346954040154045909072957289069720864317746078218902707106035976768626649350904830460052958723312758323398818152190774815320979568143614641638830829781913405642833321281774092815949965955267572005241752775339598887467739265104435894328565635644698071413398643218236451583072878930577652728762169247969601519428889822899972772005789011905549438905103072242087514238899216861176142100860837608554509374276774747917764007826150286824753651149878532107665133047568508286207711999077156345147846038490561676637865987754965201614800525413555134277401838398059723512770119877017046273795791367128253178127759629721945894786891273234232959463690931448475248379823816210272648477305389773665628038784224780167983220919928675119732452210999932753784868550991170257718020486794481978635111292228049547260453552727505171465178813732580918476388271635167830142091412337757294760808760341964095382796332727269568578451695945158316821533924594782734809371657261562206344305321013578231798452613552218710914332784486548666576127819683359681190350963964696112520096858379604033731984399439174553381072193470418243377598915167453147108586992814430995384316855177146864560811139840163424952273399644666834088004329365810719866603413677517452760649459978132943697288408623161994272485874057587639196638666313204624538215213034114379002726755205549128664811968713731739338224690280664760316058367352674829819827361724785015600829774376579746515105168410623295274411127626097496270133805393832533626526351688671490024653222761282996126246831440272262911644716092367797743008674540482205981279827861187332450527710715773798986201742757519159863791681274409726932333563579911997734787809244310466770927845071007926530094576101648468194459390403663028820633844115215407446594213590540603120652414678398991074498220549324674377899666466511181800843945383536508672330559965019446720868943402881099072174340923799358129374308163507613063704191009588153993850532307512609363079341062460690397711715318955383734379301972432295226578877864250304993905632205306312336983548063930555969826401847940209302280963924857108321340195510446842107792824924289102513439707297187745552809896726983149252454532834537218125284646585884195845308484794612803542743561722956208626847005810226200659031383561272166575805717311403821348665958090410550730023505996676991096701825339966427616624559886021567784863079694880408165824380556138917098519829789448984891468262047146229069140259870372208025750822632773643216436375202835577115930364740815988114228625305981864247812034207984247999746742757907614370377877983507253799161474050650463494652021588633241320851269342736327320046991953201503169140345313867452305506002034088189942911290350169147844921284105720865998016481076550278967182474292479379267494329277256049142156197677805456495946445474185947016334071653976855702966268074228028948821395808784847988461942782272878047966355530089935983839231587508300640086473303467255665404304313801442590653358695434206247417098072118989341785682782934291991049837360637262299504730710831819040665630037926907474223771345807079059357358854290381622687569340076477353090987152049460077788846930445615783378811043451180084164981275620601796231452853318691455840509714149534707796128377299039033418301787800518232426463295587154382561521870488998479413140608244473296987870335754746889390815036534041733788896918897738049621965150434288085241976854541643942137262372597464888981429684110703553615398633727439604161079206558344822505116123574378420203921966030782314478484198851268002964778541800250268021895994630978021290358008240333393843386684609356640126309548609692253399799878327337873469958372989864645097721885945040959661595650388848055161681656908165617360531962269127731899012164937050260089860788028718684306285840018959455344128929814600091809713156555366440829490694326355750186264545847235645299295016330962053578416896230257912786979896410962826638622003971828446716641100521148027977131672584075739331944101442198182678533030807005895906915112331386629788631635267613869405462624506412585374536800949738101267475161100488169215605837343232347463946930392407161503583275039174752937348207540482907029674334602393202324699478871034257142488784563522449886677450477754967225831883155700117960337362579346067872382772283505817519265107388245813655820156264392409490743682135372917101975958769474852165574799288610076614518010971232289961639269110074960422329044777334186494933132132292538928859692170311395368006426302781633266788597625232365793425034037957558057721975673299594348190435101466091523965058388682734286941572575999015341860237835139223255018296058232483872540417626038439459894633931087962613794698049059656737600666740911971778286391050513660741585649403912135525416791073421880451382711124110346757430948575511484587765372803828751640089489414635718446891720048149748840809407065935123970087391039291944131718451048170028802372421707579838272670040475572604326446524423208162287279177118624794701776283226518783138657153181286125165256175300295560545078063911113918227040734780192899664998636103451050941789601750011557653110550086867373217121162362188472646729680203640288411715939060834999506904829095309278131184719929703429840906260655510082262758428925527861036357632747742098978162202631406937595413305315165954285559252651732181331531174786040982535442161044980655777741323482891187714436627983555261366680129651000588959960847970950238588359384621509920432181427409645421638315252600515014516917999363230056628708023121738625801669512768384972657502453502112785039769586081813735796483286179846455095374514014728264767428313967875358495164212775941034855134807694319059416186946866601074807649229367623680277124463400198229834319114405757592986331325742367385811293486539858303197854417281282043973068009678001849565927360611803557753544999254604965516304641447175215127399152460449908630886216035895919032691281603625804729966147371200821054373797348212603077333521193773120612138631730642802153902292316684181834974901545931486113638926121718488072052860003626457518710603022971342187263519257966433941299155569280584114729357297406530653330815216156873003499084532731645537626044518318496611370658198986355971243694653305207217922406166004758963545065593480844800288504505841573941059949384222146280390069000265252456897008598962033925872906978803999434717915225223503134527285613682234703346552486938560216119281862554347012824791921951459977668682061175690649328165795923340885665335175339446208994996613712557234872516629624979367075971349262126646358350730448043387938296907173500538289763531562188086785137488614285112944115646731485810758886951186660464768989657959923131159776119465093662955799728598161588894842524995862178504752806174652522939278868938616440282311635980226167301125211427699836203475138616862313098396097973605921037537153851208540455857944224156592265000616920615378272214486894672415780654357468926226104654432965386620619209104528970456669017174053404794112344145085531833954899007084531932802229384027693725928387820553191605585330402552410851214376536592041398270812501629062348841246513792287042359527340865954083206835647071895357637826954549578511684957255597461772956232109780871234115307338643567849965251863246225021147114528356585354313567311454074790191979373027668090914715164329862692075156549348243730719143758121345760607161862377177515486630080141711258772218658085454189148511685669603434228856856320398513216024481199330886615615788943123301787110777148369169870574830844423132074564708000600890692724684619052483772284250117211959344270655037928080859424660517717656417186587049884088432757754308500759545145489646140411499484556767868683137498761832444333542524659640555618275007568421561394567997717210622392010586398415297817423215526501923501180074713700003022697559899095438587382138457133377335220989050542041328045762211179334590775468273823855875325456853792414549073057816185278797521344080859316349021118356603313127419932082138117741280803407382019062403240108566701763848700302306407104390579225945631206059900246132320248880596604073123787219601111285066204480316335235523345894384998332352315134892578725530981021934241308813884035375535860066020790879885771790690266069439728464700248922668808844534583341674539698038905790741510217289854388775181496731910704683591392093867021084907268188119108956144155289278808776399195577635175338444130553329100925719921378348894172713777526711619250101949395058124223269381831405135595051234517494250133874035405509349847782940403345463016333908812343004756251545650294740131816138068342574178491753091841355663574053241890007103678639593208611995275276168435487536632674438488082246699672775662381129644459021843870816782895278688228260754074280975039172642457289563299008453521295866748756195305003520473139268559857498117499579685055705779443268318424597790426124785968406591400378669791077310882370021981469225590554367963973761622845171886987862768634786543919102543524126209512558207273566128010638654570941428870239743380242593468824727319822992653839373351321276466189810855780887622566284871168161736193629337761593700361673851923622316797607878315282248650845321068912352098906852415086733182593193981610664643696055593618825486764571551401682416322716454297313946241199912510381092272158836429484054364548841226452874896124131900297529636489428740270460461621356172628915303992461218110989183601088524742659281087573536414204838741000372404432029986460420564785108576165804571629207771037019245175169994017954594981101925077658617120893360044563921130681737641398087828898762495231298392081258671685836145949472537068526824584183704213060637323889941612359616536135136556651391591606755351539397657422430968661122522891509523519677290437383385657816032705494539645960074413518051353844234982694363442972307092495068930686438810663596693949792561185357374623179696528406997873087207068346378838981825827615245275047724625269756153459054660288918064237379187818962075006527636988755989739567571477590621441147712274981671376137141120408823916816431436529080769284641785539599587891405755407581091977877855542513578203297263026767869332898678322108891825789699150829391854722478230373570819662845554074955579164201424747894116584222825404803050809618880059690663724837092410854427454915707079829808700835829473038409117542896561240779203215343981004898807066972904379831198477750457601601373204936774584565581188070019917369640888801320016713227659163084326304276019814866409588741881778070456219611507681899061165695532985973479019845770460995328869087027884225028885828030870420272223017275544341621306994727029411617066530617893270177359489545621277445552033432518450020558985732966527854335815063312936652384502466864259275819364176551882318280313552846315153787762025708765536384952450120505717393661964750300786995056649019402752741357397954734478647409363943761804845832253120836554404979996865146891199081451007177713893745168486401922030969883005767910868879711664024761888956079790818193144566335098288163275334597563978517720316486482584338525979385306723574995727436791749406191715692261985644468585934647357349907897631333505635501889763045339683795938893138197896799241366703804660488783361205301789451138795035867087887628886714466568270665928838933971385176074089129309571011276472893410528845410944025359830754356960714440459377950460594518863818498055540184082847959161831878640955966182680909679017761212812347752273244985569950204606517421794259391404443005691484380200017769687294840507825741651712255517343217994767449404599285821368947766833665309450320469557143229910481643844391981916449439162659820254865325221992963427718046453575491649030557715824701074928488443887577072204401247632394438943890758949549936728281649386835028647172872899995059994131781943339612116724767163540527862412869236002936549591831580705408602819065869721965220225293250515980054961264161953084057900166631910379888968148020309203879208095590556104572458646093907620124591542769961633425193966692871664645697719566355884110998737445892729417187014103132200147702196125233295473165633726658954648155247538160867386714259958617443149363093589315864933765418709291735934764526895517137395005120825862768361747535678507072427038519187016057323436345854217361007982210822998107550596810636508457503586986487590743980813166919403502374374938244367628089024821137600565454302654172501924074297000760683980740008315373468409235649567054426870134546493480230169730392402365880799000086932754358527034900241861633614551416712729606697536377702557599752930594277042249562758702410228141584632798020241081854738188223048244778514089935226546875703149006142298103616496411509546674250596491857597616495404609507073537416202534410112066650270259948194053957293252354025598659517759839461887516575082114141796702920040231652453470324476629757312183885955948131843711180351208466549888383072452898244793195797625925210185746255093791186355173497434797695427111723521235574537835315516429985771994495205029196105165180693842403432127364568563269347629412896693285576743084175523625266009339227577089529720687278069404933074292005007335153094119821015069425853731125253333913761013711666364210764833637572601299003595175563576570912584406976073627042954761160962168808315549222512707002334995736238508606576580482667092303447994105146561223936793144783052940590942451109027128443120403314165238758961079333646758327402079201780467227309926809558759041774601508546914307678775487657808398883360530659666911788665278754877226471442799563420229532774656323397444511556645861820678428371462132652215461263119304578159799348663337408771245007032557035882556890608593844649740130743259834838362212130832330295584891855178574131475868656004185287267057457509912988768909935650358697013009421451797031399259176651635794628414319340069919011112347098452661403379008073849936628713002418476010112012566151146329042460774295888886731393076241110059563327849510543534478696342369453123955075205347105671668202527485376753388544828727078643880514523356876818404350963429652449925538321888658819713917141179402939422427400744314485764334650797111103936069616263266666260423636575696812896928362725269431504624377494308498081640723290791134176774506584314924798440245470302568333593327401193808911832753815853647815445791214310384347831222180691111435425519796999298359139832035542621221804415977669764982997991939961753941819475756985768089914915194764087853853097565070858292830549304514760936733133281992877298961856090131191749742203835427150338772228878904316701519299945895749455146550162242359667196302755294299126102324304445923106415112934334192014375981797456420512064046676568746336453282867395759722606948865685888939349954217389399858163012442949607333346319427160470924964857281628251772422717668857838819373555488496313516519991971371291815508980682370614544019005776750571673011943508979616751969610139283431318940558350633714023037578691758722433860650535121587918209586527685578002407488761860376436964861262208633597838224450978594140775527340883222586394243900640842597332273082490071170291486349947361477392675996005544012909564057371777293394167286662241373666531081541811664167419764406267915692857096539937116917593608259095862981833521003087666945208506091011071800117500504409663830886033285074297729032480163561353963903429094266540671200661756711436702338907201151884171805000823364988375369694755980306066606619868542786602109470993434099070224751205626499127575740918996866016336297533263174264840107118604305900759164979294226874603268177834698826836905983096058040037003105624690913482789734695425759033655803117093885590749975441352472336136016995282703172016291881192855828261036360577367055359114178230572403062206539156008411782022933320838700293258021750701391277207318873727988072860659673003359152116906829082327537879325252712191287447700895106228161374710695996637609651424679043771359474364717102134918315690205787689654375196216805996143239333673161322203362776475894095991282292485441613491911341563310574752766840779040648417434337251020114357888845315206906130027985538571803133664261505971224503057974281464713466142358429577510438239398994014249331038996602853091136174027289557752712246579404748375953137822543702636147625738495979691782606154293349010078708489950174640415675872689444152876118577084025607267473470916066385607860985630054117274576168642986960616988143069855834809923185773517461869147033191965387964359005453193168551922971695307466988014014517811356966242676783983556225518975676521403909192742331120847891375587958465834108924813548086530701633366872780852215945853425862945223698986535303626510849782007665654110366252607660661070875990033014496471592624701987165875443853008207307403385743623094608698005271690466434442774746953957206397398085675521255724786585762730775553078897939516804660294054089534148261497672873273723097532207450484981873411655691087605273400828418965888792516400049388692698074695437902130429083321948174708353012030179867700801243862618542998910294162897466835598772138604212592997099156700102445428181879426160950061786651323219053099130453389811242092057644907953568959660859587424509684007161771443085754402780897644607013706889760597541720734422890364831254998765985943883165699399133271875243775774529392381710618166311833231673618211450413698625646030496614837288459162210087699555334805581648607648917481527905607528242743181165752886644926347881536071528160292898119266335050466256299576400326567208885302860443713409848988589532590352001770275096248677201375730568473954731493240500602683188153459468617108802891599856125716956454220478193857091785514640644649151778090960442166490919843522955360857661425357341040737245452877082219667440933114221074191682444428172114725547076982931046325244466331342499889932173466693787583278568678023782508413898621105318356369440295076660782779631217624567882006309253811295324554930228324111488889281106149811378420762851688502248528144271709686810171434468529664109951904315652901613874819208923395626420412584682709748738168479311814761386882450918007840149946555286306327677940006878156885554936433576999608852222688748601171365953119563297637098487339943404406830082287444291837856812934239903690349163350063378119784865914443195411837582473504725834731225873941627085706784361622042437055244634790069204772933776397251902068548052071536188217202499203587825458349018129536222474190258299434084689165736964535653681841081090264352844120087017910833756435357405909408012936903765674381214289075875077673927292814487450367424539929227916535102584465823058429659343122704660444918036397609100349541319378511179782151614834125070007936903723127017171793387724393224953811937834611830739227950948415843332006971902282250111596503083366958688426627165761842181081911421229791336345007962714662267308090238612582558115050782983670763675779808979221375780679928106325259030071792771539659204895126070295308801424597116246488451895548433600851118133149499736339748041765098167445359954268016528897160875806895707737926586648415665701505865100672969726234317330515319252225780667295277993956929738955589081517883626855940858366257533955574625382553526087747599600016583783547848023632929722469500438784828539431974931920625460849833994074279503952157845278079191266804480796522761644603059404563213843091892702279161012521493712005604195703969426056445854647693490619185734321695764716719005820182305312847397006628104708950874294434282756256639499732302928382116611137304760303932802879447382464971541785103627002550552819975894660292749094755586244796941822648810983773116314826612740613395963569348472549015898836765146998264673985956592131585893894088756081567576492092529534140126399600746773828943165547415228602885961989887130243827561779240853927465653186094707198665279535449096890511814759960177051139774182827964659796045435217609518465820250975870717047910192960156378189259323687042069282731412940024733354631026717671133806792031512000470405789972491429403570180182080630601726232644695304054228286859626150412713013302619560477849511265437301462645036078838328892950944633238054033587001818174850561404131699356971294064641759026946047577650565818152108258688567046167451939045547108360221303217474196949010289191223290374172718109098262066851314407637269315015586402826298862114391281097082556408282649517388571394605539723127702088608245716845114983684682478967805233656820836247425571846740944705856669114661751145626077258181420613460828125394970715770716074033209717811105422431579459509156225116836872603380320384015076715517098618548737188175615819341781743711492901244265726073426766168778880083320993118530774454015035589107673686952193375841100265562324953070336130490402438083865628866303044570956677760959088187566892578158655828216917655283362052473454899022752355171639755441729442237856793989408794127187940435823117743021556665213332448683547820460362755974568805356144263052025173832524011340194447372604007524938396856042905191538471919880374783888278788152683443013865469448972765220200772122708591206194665394835735691498151671169946312088601556440061038803840320583922156115417557864803611673051709820596465871001946046372728075809594966612222913894129792298919613494381780055738595182723896814700148881298545806624244212470048563717453521184712000873668831737719011818488859366062010477420778525768268240005074145062148907246912167609695194069180847180876134036339474185502264536399584601661741939077192754863290918383132411055293457432048967562922692391430015842197277981198265774744218391450597104704044443882706730624664130874093718568223038059730777513615484074990164013182468685265746633065623999634324729862419153175071830431975858052973438565536381170348461778588939422838207131072193090370550550920708809972509739726306440609081103987335867755959311896235149767695643688109326172736463576687426353184688447234440497428667560432553017999921793127405634645889852418423707780594938451831862336155122155051882530965306825412845666423403097948603156170702131021402167831426261600962709185720713353045693173552311361890201757451117871328821489008322494695615331256161329813500468831677565294553301256659734727176247244174107908344687312990181615923756370336505604319995143401521880235815218276085992574531986600737957432429140566077156634901119736757103121796045917585331176570803290366333857163325766969550041011788935219179435441648110514407822332509512811281408840344754102195505782183545066491365712836645332163547003899402905970624023999941918548175431298508661409133987574627726183430421290717505954782252378391993358808232416792515019941443016517539943510447636733192020020234022321896218159172530403148117807054086006179836146596251411457920725543614688238660754296613425144929613454076277763046867320896096586624901312386660422456234859533912945630314231482770725788707321753919876899516446625897591410542496059218683756817065302965073085847403021225202713961292215874358769688194805244798483997801302405778109782551748781110414341314999429543631156539927616331812432335846906446330392665919601737536846267315681092289594637528865648650461804126814527725456208881794752315378166880166316001907434567374975769191676475261297497071608151935765809659242325002344600319843650936456978911720417741261740274266738267469439431341219966344428592836368408323305952186395254275471274215175857560233851341731786270109501920133106920896174060505763522883395772173037439055394914117370311445738957018138960014004471385436533590973296809573612205693828831006760735248272553241777972984015306983453804282535774258884949000559769662575086029576753629757436707172868378386420920220664751314333038127407586928935206021911520157035259953897145619290065039543602063299457841558491637779844687085594521521110166592060672300495784547534393896802869736166138412485640336242495648499862067099272461152649652667553397642117570758712673732581195021865466762903569071069378954715986590807324399323054596292483405715970113876214533364811518247210809933844349999425202915085303640017695028379452996817236429303626827641026058232748859713772128109429369078144277326881010662706814406443003327237022875813946945922062163181514312118392903724059109034964105516915101838729099818447103516251532263845638648725962209626826250999522698846500361786210370394147425162644367975631308919001467633466461062952917636545242877597836447698471461743835334135204007079540064752515601111943573016220834514434523089955197638046731962384746355170542966915693708468942104766517407123289194574372400425925751153284019296603514546089831416413782925269034082123589224178667775913581717651766521133183552081653057071661726768714601695295611960916988139886248307236931262888206731992599777839720143155540030262218736685374451910598958207597866581886685889787385644309518419101039477060017876774144606694552329546065923774258606848234274527714130454205517498951245211899000978481572791698385121633838312067212271259910804956803392954056784397483610046895748192117863010125264077262962271413420027296195307450077410091283267060909647589618856625055484455164094023717709660150292364102424479184847798108190249364407158644124667020637911364949173785715352245389960984440171010350739990245303979971144594467691960354309960033137830432877175176133516846523490878040588738459674988952430138439880503271036886092515041832700250136696976426540201936613593243503296293028174205835534091980164449196142179405901578648378900129389013172857446837449518098220318376478818081147209791510297329437938088598147336371320672825796174923037417305951314483483039413293964860601818355930398558961769213377994836350358489329616854979413068256066378459338559066579098982004233425617089283617320449816837973717209596414515649201861474365710850473194083320434270205144507274263582140765586770162796629578659831441928808358768356767568157442064382738023802693848175176621156233950967792413842904541314161934720056982438631150299914206248945581091031348304325140025160462237372467252182591951562220042028705367976057382025826586257101009854010137856892382364074357998595365021171245325803685867585102390526409832786948214180944255633602691607987723639792536735415072141107464672186036354740914343570511888923343490340752780909585524534572939255199443818367085362910883336291412138923192664555796405283572665945141615219189792159483284844743872202147135708169101551972794835501219869254426215751104975602325952035688568453488030284817726829200865112079991753271423676783115514954513036625714450075398630061047608097682157180644392530176267422228514120830055512505961260103660056971933376006006854859072348593558889568286935980415256255936988139470559839348542033895654793953038764009058804279327963533084803281560015368410545734901006983908063066063553133295573318002177924401195705655778651020621622649834125054287368834552389357988477701431035088379948659296854333207886248280471695575678418412973984137681938802932114124350579279818563071778039583071561399017874252540329453812572044343136830151462893470474924294495814018533899306985273375284852465237345370529524880274651756550575529765485644580616656280978718233383037728786301261519178017166043648214059013843264968255286797740662022989930463707452048435478664291206398802356441164642706045502005628300364345893464041433940052300538818240194774741853522055353463788378024827885830989305398947771735684913292290692208811987490257527007424900650907035860399519820275091881080622893328677808858109685205746852488100640018057283862365771306274995035692444559907880437549657128383088804200838495686623160754923279712044294656984219960633683952433477290558522337212829000604225270696101279590520682943473137758308260614205814117633508695186296472057033220389667723820791161481662497858982664468951925655682920975038372915661983380574085499629984959139624844063073313131973987193929116508782218557077844260426759045212415705155924239082785860793227592505912349373730132820215176257191958482274676802785048351932492566894361009415713269439451160109434251686575828222813369776066517828880371119690725010771023464262519062523209338266408094804830714679207391825935688238463398686638174886918309663517386282322947078657296935740235022119422773934100540493409614934036655761529322441850578093754624621215307766839326364964657995780826074717441526501398906502107173372589127599611668886097122850650265624348431107259731958527155995546607544016833444371930270733197875975091006940167168606293682821315153453071515699493211125556355183324192441310060899877581608745068475190287934675025698318906747167738939260354613038820271916895912281041352459844473659932518318686006506268534523806027922496646316344264942567567885040962801722563308065773802408859710318375743153455250218825238706974718570410771192362057382053731617459274299304679596415223111757600347539516149205582943588545176722885396446213189055768258990784072051973938903458419964308529557174080700718831355467148331400782720049300577727669920825331589181108628289240159817420851664155888503740666125922362757256330234193283847815618165835489906030540464276486073046852629188960687101959964443035140997143585351086584290390889832038213609489321258065168007026577014008747996858712625993533276412911576021811186742469241141821159546463853388990800650917233579238596271265826062321880520505937385705567812797744997301651801835594838964291388933683870041910861588920623429222415083309089426523291722322360993703115320854473525377226913786331012193977977226902589378457148245210175250249228756781565773228862453878799497255850623214873602362508355530336167535556958859916963334442524369206561030725773658857920623971272321059307947997945825520753824870268233277564647713912574761702560073145303282646992213554385507550919931916308045404362388836203088412869054823994148893286483889218618683287528755316067323872004854338107037722551905444327196329392529608456827004245194578786669551750926707945650431237547119842600610049206440275106029821355171344374302773253116119553773519832367682780828196710814160690375592066220328347283402711087307643609653546556233812329983329613179488612136411289580018914389511163914202274638152647958517715848174471879163422752573256959480113081414662635291273755682323068912813980746090553181822246514037495246620375357754947630249752242136960172220808728821199666295043101176015390073476620135847868451198232816282667912755062633245268858589099739195120741871109645663030857107716963326027711938016437806750289147017851840379007472797733960381648903245148285768648531309663320615100153659251639146546558443023574303526376826373797137502192995971481656939780000241573790919524008911327727106197462150488262962719013915589636318796520557003587986460666763093485630111535236577558067378253734490640383417974832097012871279966188341535250757646122351282256788245421787115499145453030613008403787438363372920817582377125830234699796064565771694566848887541978084689016499924438554948006325797464606706217269678872683384338665281056080882905238557313105426876079130072298700832457047520484511822135630587717324810443504016372166067683530191639906711202202892895124905296839953351421230676467745604142761612724522360154277094161221338487964289475195079621456245921996334501883278947828892734971965687100707638418256077118191886586614979434704281361735100916265034185537681906560995335826520817337696610324966591294530217307040790252794235751360795256109941355873632562066864982695902936106894469515384007382352198969172688680333284674285248114434975655909351851352303171795005316190036363181226853983338321296743045505328230350393212396382718324196339155045940724660044445759424852340224745560830836522811482700774353848926605095813719632852017091202201387807828974209627220803874515206034365267487759176825588000887496738943880491309811087808707383468026403014525011572374559833059739132885500529340530101890705144742477107963326976856047312547878798359449622584265825592701732050425296686450803372270088452583932230313470106827371236582516411876407424591447569934057480383870137468249853635493499350580434126523398267016091751742847213461295912601459574999208203767602373851214746979980807772911632576662308749438291706367399473248783584748764962217869131661065145335489745293055717056572874608344201396858458408679512111320840850869948776364860448277226223319469853643705007912242044004979686284865646937940083311141682532389074446853487155914602384768366556145819962935143643005863508617970992084983040690262848023823275191779237676070258075947170055614254926907123163119636130777975830867045245309878463807837265818949285937555848380594915281411755052861283957351563688706618728222514751834229121006990941899167305433134085427507766489348350938180781999179665756951839506507347953695407314501779094422613708030579036617908737405911122819941973463515872044065929125950565987455157067653323504434500689997156602713940330224437736066686849088901048121266558899924793279909720506105961051836203391945518645793694467203298631615725768270945696941262776300021723735100045129209577113350740570394312562826107377733140533092229512688027859764929900511949980242436565914538752704667620722775027457986867316250711558651968200936416944238311423088209846212038391939439888981531509415861926225524552311088164829987638789626269644265689308603363364264709682124380006691400550979640286187937174044299656289804058432184354261854268652766800822737925232183040297948429582008322427863885832324305063495287593369274355888284259008185360486326182071432878843133715328894030301149531167316237947433057321992411229505871705361831485922211045767328330791946582086179739991379813011920497878092383791732591483876020229748712196109393689352651839013283221932046128929311105675934852284199386090022745348463215425897781705482661716473413298080789508038280828872904233199022071543903899804546794347101655930363337662653147911662907111353046331288120780447075017132066486427645156422374694107804975313792905187410502300446911007959124846780618373752425717861755525672597431554213884846756526367222271835764742176672244136013838490262309902752689821972053162596604626112656740070175796952471155410079614954403361868583786252362742480604629104220139701655220357080259686209007244041992201230881052521148175567656663322373457935718343571536205941744777188593879956983676378591747173112849224999760246304399283211940540794094149010339205818848175697149601402336933755498185095297566295883425651469555140575946854530074510355174138857643606901843785027432853345416204384491361942966612487176185325660903335306306706632819415202922244938522377150827985015718076856759173517780812880644633984410341228997055455226346377404436305522251407954777773422734434222563011519494552454567289836540101003007897580183322722154456877003859066101839414681282217665418838628197732272303840775107453398458031381661887868072258721133865184042745962492997242185093780733360917442023526635512068122401656808755025125545649381535244837564344419640818453035441737842150043379984516485345995801253609765282616770247948429735350574447575365491637499388923406777732055435782777125932506627031716699187672533454904119775307692617603773347947904768123689166225022297433150559906224321057608029437992099451351665034678856438953399048206318705553639122461435082712784131991991195950443641463076351960297847974041071670307042747842855469424061411357586523125801124222157209556476831034675543243425049424899389813981045509162868020336021694164248309475849186460125880750101695179210332139496908758964043027167179836342248415658077799087433499342072333737731184317701124945188586403201207463663141013622071989202518345182718720538526504084555683295448156657117896584166992481111581520855020217588513283230021711682439334002181833075492520053645103001017907397374391451756074700570868942849022362974890272325992924981381197975403814362984774347824908641863091012778053388681659767331812786422831601871796933270447422403290793000370188782272885993556613202912853041594855861984338185558413235513355126445266551243828441709795816446436610026604522163082997899994971403835511682134018128877447915101234427017368899260098312862662944919546022340454508860289432392946650271748531025718223681532126350723778278148233353274960768573565721925979304577458870270115104034358910311741309422653844659606344674250756076266279236113020074119207055751395330358567376553320613593948488810322429463787129354836172023825985521094674187512055843967266171199037390138131721051759188139333412574004820873835207879319493670696689356782045231272437445748454573381107698507115415584661138798658856162806026334578245133571496226654882947340273566368864395017699087033160810673800200486177028509166185333532855035021872235378821320807509640682301426987248903424365029261359614264825329595939338712828897973775672391746978935869475152521428907722708501829218467046227011124587563117539969144917751750486684069326088288045889183599553373628195482852631687997375570490723490326605498500504969202249487629674782530660481976903079663185401720228771870300014155672384693852925340922434216790742592715059873086199741343602974734825876395913401586440557830001110065091668358245861385102364123999075005974657252552635411212369401289374692821923075461424826684965232487039886461671189586175964353417887730492314197593384177198229086977760622813455842601247015432049671921505822175783189206167527418315212521269155486035125226866980715504572580899469824883232665417120873462719659991645751332853268566892527214990864923741826116319535664146404510295859499124919392917151633516299192150505487397639672687383467099719232960262755660002736945651329371692942662968720935926717323632897651445210287552735960984602169008039783509362616358239707577269164188523162523128879443339202818093888712700678215356785230844159548786642068200900466192090346766559492814080648170975248190803692335842848577713588708156776333002610094340036648167822432524430659318679538240344919221106315528462530338903406084310847191907699069854108482333453580163347539504828295204210293850407262611857894194424943359785307797117747607578948671187819698847926711659242390934302471156743647343482277680828302674993889877684341786617774044439652106089744882863429134206429381017151122076692736374257355425765498691025998920814674456853155902466348439069142688270636719307393472967258250292560742197416447843637513623275300280969211503229334903805544115928764379311228758495567149271580553969836531821099613408043887801796857076029203274271024063111019701702595776971846410760350577404179289251385613487358885999595689242518607575374671882725015320398528893383617416989261288172617151883274157166287754486980022999802202465817641196037171681811598237243335384994807546124101410379139252343028454051984236195308906875387655714455327167833967339322240378289332364557578374278663876491853211537642849781828352275018444426894143976263338795597912954153363025664407589233702841761419384777182195206721686553685428446097200792970624968120208549552022771703918668817160785060027562721876853718953138517543284595034184349864657392199084941679367155442587117034108623930823268204203466994153488905398712343616265870824497731021369610472048761708198488657529757091919499507795748333331227201961185164759376744618657252966345086537988963783595861699181467515891440536628973946928269989930693396238255843833885836363888835261384971347625779476312835018617849276875500543421912511064776951025999857846065845696521845006643112777154602352788515670620625136674541039477327833791926037194486827011861705840871784762108336896282567348462724712747070027292448888344220920228644131948036503837047894518979049987526354574289976744205039212988722693357004367327472969719054893214734826237801507181080059691706493014281590696007512315933064468057037924783387989180446176436857028663174732916006847026528993532048116263414001552678866716569570629750467255464167426789550455916308464553531302036702023406752109836880084037754351483146406980496711867409066176646574061820471887655979727550091787718191826718048319706177222953789274032101570416256566775345058398091542629354752676963664367188302184810388053384004406664947252725048461872894176731809602737933414321694230771667644022011383250145239429582900074732715057228846470728134605069618717821847130754322077766533197035969071187851375710403786856704053270925109864886576320441975249093873100576668793211253769665093580560056963134572333372287004041425477617078419803054538352551589481237632817471367142338016972090716582913434922376811471701161302957711761291075657353381488583346745832238593315902648366252318865767354152736701616711376800956466616251393653176147164405831964699292589304956682462803139510021112628271218971089026316027230776943885973273962986635707797707020962944542536953619986143536090299117876432161536288425445130717711415388771932422725605965599323077586827143858012227584771287459007950755193949895171977918234572897425629737377850751269647166482774204844697527945678220673099722176803430634119719942118477442406303553237713866164542748539383020816977463144178404846360507229987221645782635311032598880416806856045677459421606835177289470346014106410614469028382962688857322174803478460564600886640657529373882400045732761140106988125930545341837520530599564585676525480247666936801650276541225777911278689939343999166779448670008733131238452791228331977271590931093871319454410558431073630189075287220156293729779413870816566924699207986067007729103436052526918981589676019488604814724673991041356019624726636026706518083783763224847350548009112081417142248117585175276703557826197230557359494693050338957458357668987243492049981365687231580472353917244241081355050530120878116846114896357757037270334230106224586758669249725504704245291964821765404602085969010739365956559956512534293652524113835251067109837285851078665918035463922923525773269140869381663683343293864188908917646654968000412123126917935946818110299834341041750226662502946266216909134617405005979663332988426546604322015107701488556166664764904073331901609786612619363155653608230527646203158218398346104002269234913320432766426124075267641612159831897690213229254318825536852478337919711851422787575755095817176910539434976190384158239626164722632176249574058359429279369566608038643136170753631351994781615692159217775259309634269489625971690386810025570707635083870367087670015145037706747308036635166548457668516117612332727650828418577220356839161587352336386650910414678724387249907169579168480194697007357466067807073923492609561231244871047525590004320960513089444376602311972219371318464567341082447329286302278692803149292110339605231587845619667830476123907536416359735587966381589720758936490847549852420833012434566114846279261099231744644895471879352669833170638140347747897185173407052108541859267217344451786760214978881665865740260172242556501311564525213452684221958065060107147792829565638630239364542072501698930853434848211616020098643337113792683888664376915811260968581448011491481924993251988921446463142663120661096028015676696449781094337552458670435224226235730299752981334268989531999276678273849310793817392355966269473606746686526670324316668442799489519044507864498572376471917091677738548298774790086325788976284900971721454359601744686885765342846204485170166077503073798111073402286466767153602003386864774970309915307687804005108253559114190502221507467769404636447803127059174281948371262984475619785946308257262815347264106781195405801812011465317244211675172543365157621272860898394217448010827227670624675254047039271477235037011916633254119135642159070564637817333975004426667195715849354206961365295864116625409238260297952205166768515196582773624018444292341339397717605811159067046660880382641351501306266534964138791666229729849327928705220194089122753937018708402997953230418263634235889798299204965309740594677266622859694299997893621419807671996718880686959031679017567958129146651231421592772022159052020962612292193015209270401458222399468580533004545889426503219099222832138127157972777567444595659429419271035881540343601318898991412915272331063579597844225859391993156419810744250323722583666025069067777947337333242151542367344950660396104335495201331506607045386561288452861387852703027810196816001997513717823434789935489244418299822814710193686409010810792043361929663934417082704977407733557441808921642709953922669230139185307218451773894172283677568809258104846037215903438540797909699598091485976767125915773602362715598171484431765658245040161209055093446642386747165066989712549106852548317549812002366339644624543250499163444859854049097740102433868742503880816246664720783712801919786452495597270995016085070262071657632165143182455413612192517005856651501965991113399284578555208749059269727013125147195841550257788225946955756918229732769053018875306967101050824152297784472620615483034144846616617805728310536301209825690873997019323336219993884065481233270792966976797797085051086314754627508230811239427333521743967375491542532624268446200331827078451864435864340879125432087297990830228250997207441587644400851352162728966746015613127641701868148469873696603739537037485316815625820177602989866759452617573621490458610488844640996634759356327361912800794700461702639880005560307414452743553781361847163556655613849793499296606453643933159877894073878762229907620415058062020104211399276860081773042599383635467578974315679487149031463443903559894391706637475948695674140941521442573478582515454319077746203497674033390960604456957885932887532201900250372897395197917710557285832801086469150468146441475972475406230474771956727676788363203891086211794191103840133490756366487344121837266761210531855204341252523136783309777935243037992846726119414962149683698398093762761197567120057941145160240419297002731589340383881352625312596253555977601848445865986866742884461698227271122546525267041482568486992323744592211784252919905662613265779856440204310663956068268157958884882108332855625510026087513375660715668007006296623514175079199500967508201597703243802784701099923674243404105053622529155772565727691261254619085407509589540867885062956316142962849943780203771728932483544599362204828070909700346451796014658283667307814365687149294825532606103513054020887119338855825474994918658492869775946818503923503702690126466280120073968954982021834718226936396831487306748305404286200241556994479648370075000459364068169283866906772018221010885813216120739763694393877629556582010792873811886593232951880795517738191322747548369173695718852238808986696807757257743948768718864749648697483899420747978781806054673909508892171639899956648325331777974722080742784957773308136953581172555881216448610400528018962115817475906734571326704406196368633264943375888251854024584671258901235946616262990817464991718553111961300056064044712264593283642773003116102655335366104144496873378278169518348371747233112270150680698371600869246921818858669797691392450193031774745878498971872554900234746583769811748782059729114616708567174430753523496601914045808655096547766612798455212117423531223249130390812587337263701302779662220960312590195177411864790248112992305275879419808055695903985649534296836727975836546588239256648358884004042109130751729530921969448365858778428005859566604909860224328635901879505931899087979542671876914937131329524404219698495387151531759318431793993704457630255209609250821922156079236597914621263437244223861062976158056874230322278368923199528641103433471557004190718798124981314892919474782653845892645716297141461828700593498744207873685296497157472785597956223884208853618956183323357804508472604980631332081195794379448372974894146928281761546873222861460776941392664196184570225194711430429853978830969923368832427294516856844788455194355120639039974771284354642193765051316877006108832027233688931601998529981977754049624795586656044811135310023032364264614213916245734312605515288576295902878404769186264051980083552604491969210421017497465218553172083811052218191767662095956447364569962717656948095847166521834387214198441686238459852448819186091647133223887834708206135494742836685422281963992503501669387874425543574546469248562915202011053852241691521863934509467015330895928796713484466875982557405166541161326792804843319817633266608429262451263050885037970467080343600751327228207696192639757847796522615166877168812407463541337471344855326642273126609554453867532054045065189896769296726128214537876678828969096242051595833167500997593093675581993841035435059761675965127008637584684624618706613210365522105361050234509329027044667380153883233299421233447248698610634422987931024709810898589271164101605558571760482742260050550497963392705263670910927774123841912143833756403003754716051141434825278346394799901089188348320394553188988662977497342735841774622766522466613615028332735831653255964075582646504703646501767748646187433920470384969888859065987368668087920868938979341926166637167426822831104630149235687578370602579381182175718699332692770603802719775441909701250296114298367007514013421740072743701558521345833274071135531784049945345553565498828253180024472882789016560942392312913637210210078308142225708228660076333778264390951431517836933848266015579675389222231277189396137771604075520750874731452549494851785886658463869176135221608262804177187931478268687070651137744612215715797593041642502698850296904449247509603316620396641387745469124450527611903553550423066052515408500737409779015002278316640418540304327998129474671632421737156165677685833768554506274641916364098631448289169110762752085240864947873544795247667776752677670778977146329743837324513078622598835947023237730820577763067118548392146248678622225935317118436473689959885112287281871359126261566192316595220553034925884219852488701908089700615192496910969361344429943812619233737152439554189042883416080694992579195600850420452256627705524615247440208101941162328428344288530846414050437133997509234139436256848603811656938817578816903412930269742862399928495814814685190847083018475613499339210184827270080959803053305534882009640386940832310113604525320673113879794080133463172419239927037255855716679200169782460188530925430603972077949557380983187813086469340576728548185742787018759461007833491394657698820821457665144703371893036881903120738758009067615327962979529183130438706999520451248855794704023667785331315695803701345303857978025057415722997414280661820733669293425656743011571499908833368401017529064797382329534864132964338790421970660484875787749161205311964808585721476319467659401671983792046538851821183783132235718708132828083679741729315397618313688574907259409290595768544471969625946691406424564805217911713240893395981827054950138947219622987770993455189665895400572403612190437389415459077042002620116272710249048306053272800354416287998245898239379241585402289111800301797808127436874762035122214487645521081478817293112615621665166075601050480565608922199427968374960150815848680897930400803653968335715367607018909206354688132604216651650657946818869607881382196880858850194636893523920371221522924685517677830835706879636195075331491653893731095896786897531456682849635072303591474249160244150009134583364412532742092922667026149648639765393622005869901947365685975355059721740975727961146925266997561279775548988000172199118942641698263565073204175036870382700497351529248746968708827037699227346346547517670617366039445617085281837854709734350482172832618190688106438187638662065822227894863314089033902853328022470387652539407198046288974372949691499142236750456075946676765740141734521182581997305342329804422724975921609110894127689002849439794786615082947253810926462611734367600444068014151996720667876307579746906551543614714022985423587687166519648551411282192553521001015900813653967529803714422877340989278539632920507735405254286251253194811024118569107303822961684853017991927768598912742739529561967345923340133156348258896775517260186252692791903997367327253814006029921081453254656178609346630035939488960875547309699992460949317925257271035825691909822521580385644840922216987821184291276694837616742584617157486823358049170501639225978047012580957045891134099538579937334235482589413698187445774887768644934973782733332769108728253454910790507714064162853465940222938871366843277557774612421541201556999162541444159675224443871143352674079671162329818444889235824257050090468693849566949772401553151530506802295026517227985317914980132996940946373095520721792053347928948012568634542274959876700643830684046329356109308556021869012800981640124335661663517834895580396759106006230750228558620322261558304948360168149511604801312291130856760335604859191561796069978932711498547391762712961936256001305746972021082078491953327291907234920018330346028735540376889410524231930200881406889309446981324280069428613562739717691040123537044363798821005145859526685153308682641696567940615731720023906030368963787728486511422793485938742193805386483073766497525335531963689999997154559063629958866489679074072537404685981192057274098367893605692377502624014576753573562634625867981713376173591656484386429855573771529195529420926130254191232393522563302269012631944201104557100761237329989180382338525532045025437761663899102544736208601273487051329824429056762637777682385096244461553242767289302907571804645521995412729596143795367222762170859174209340703202788540816383328745560558353692335710764613043964799473779601970303253020657011319229240847992555899942567767823322461271863132830551419782932621969179206781338953492986580021237881457944215167245846370506624714670098148477809438974456397091600608054031760686452659794491404808205085614489794071112369034627256981189267245343385763306087455555856344822729994778673217074603775918305039573949656729417282472251985799343420456486114552295235829093615820328409670589520262627982073518741635376700089353023083948708536546186928480050646412545494648264857590702649352579263944069775941775551423048216997885835797343856104362260684029377105889353270777130790856755624734299448127477541561944747106000547448343889773366760531703482858739734721148925254187176345907053529463642616551856467929895602937051645798028620752480141332242505326151964902891519850443510484549594030880553141880887319741761058496622588597965313999532293352035814746212925890654750955229999890446256454096906444728441038155423133617376834760249150329019408148853009809129681074834918241001129984234099960375388251610485395528243402536243966595416087842201178387612632456187961003987061583632422374724270946042449057664279265802875433419671603878021620266576476610762556420408043004161067494152529914008654473612991041042556811771064603811106091659354173698463030250463159507803861159897985482473222319614027480599180181395980123051813127313600049774001641392576536984495906775110625857272420583993733813246085950991720065290922943920368918985161479165052771601848832859244287462382780207751235900609623043585811341871525388116306107624806602757168922341204707046440175762613215224238538935157349276803011534725487493427918921333461869811712981571693160007804264195727203037009690557788552150846275861450026153129233599059768946485904983847200288270553029782453878358148719925027961482877379353976602020587547585247340704049688025329064257427501178264320061122737597166080429485803615828561808422150396141684442308174075383735638912840199000942510470756061416307322497892967907144240698821138360163625383804102716788519126620544691752103514600389937173320617330932038874340194051970898379438659538309372636402929875125224002898292018712600321185985234165403941001059656506330124415356028708962228743536255540199895022203074042828254098625977475783217074146260911175059935013337949691460561218081752465340637480815379250108408135648860424250621765347075484291566915826652914538115053303290320644003740988358168327646501952611633518222231697364014808585081458412083735808642606184751997182567001899972222399062060869055244355450252604067325386847443347655976631845504561054913340998264955367837099714802333089196133586711687243689028612989155411264917149651912448615904679192551190993860653878541438864929066401997337886538211830107468819252791022950700372975251785078395796167080298412929276162552543189390201524115874396465959382997026131941480256365973912356991642922036552749468835933531315427984453701017221070018045047551250164392378311826831034201290220866327555435867806377504436350809819656466567829926763285651641492784992335043019138492896132711187672758214451263670444091863124890342905953204853551493322193726523171799264710156444702543314354401873418269388465295451404621175111528297503266207704813955702348113997045302282224632605213550765448924330168665682996408362852397898001758475703898314745385924276630721284597670699173909015719943089916032091228236827729776938911584167141893965055617285975543267646551240726363153529436181093613415757032912596812859737306359255493774989219030992880689384635961121491526868686298155150170107142448600889975579807925247989871862300443644667970528245244256119258577429664059650802584314089579777560389509645927093214380456372281932050534840569188793061814224273172535390308464118469481735806668572580410532476595604240887316349138126621505949148397737521919096335446262826477295233342393918895701412817426951488520689337646457687203102431449461253260193346445295492349915560371185179482878402682629544634080800813663800369775276926407649612105294353159343360820772175073826251422755820604694638539581163184958364631101912937292339559409155592059678947795049863893683124593322593315248592678935620987293379438917195955945586475406775355160328655883997476274527012140591770268889602464415654859541806122444409675012469723373257232006273462444194012234789354872310785370442889895656845000305270207061153241642730022247049209833556370144440228257827052765982607743083440159368517684365201875306476014509760417487050530414979258856677044860617596643824987446861903203482802428138525840205331496974769493560894909809480092474064306790610507377993941938009459105806732282987679393230739311292306240575526727787467662597637107933161152602354976145522415569200982450942238903277780989003827744087746245689332276643184848826695456651486266385033749146793131986393718175132406021109961754272419233930975350774856257821494328966807082534014279594268045830823179260198854343170803846764449757691299703565732443207561666592293722757763935610511103794147969470914182981276815449832406940306376053854346064232911401810713955323562393084485655507334255906567221017955400505630081109327263018023678732341946689335135578330871631557642104775024623990922415573919667398666451400208155846139161667108182906591091605736478138050260793436114478488993886317761645460356562738260806677226605734291953548372034154189286314980596986939358185744027305547394962276405646575451092922706265235121353174919450037673968809383896430730800350066616179148512805178960548658423814485580662937338414870913764032348285709118286781528538142018364766612691453335913727172112247960241484377408624104312477569128769086948856328917538824319132823904559139662269366443957867592842687608203024710160046385829895343201250634516677424394621634833987447850182791736219449295309839296214354559141592524160434498689185386267845773352790335993762422914049844949368506192555786328560390690580260744182821725541089149032652040122098507438931636029443812373671840919305196137974048184064954920101578626335101441870481500789332336595632195075962056049389987967380030153049042487209729303531105290403949348540031418302774290242778141065230975109647208681145470072414851743200851718643646379253038941462521456640909874347154269657797262355717935556063883346070259150399140408818340930958277909106753650648889497292214492114927871485912580830932920750794735579869450394347449337998983583398662787020343711509185143894673795264147142544467193931403121400014446922901120877605435217621228662177212053696041892859130810034905253468135301050315854795937704457319496694762040179355207422842240258491204668409325679021578527856812501464763370105868320306907739583732873059326578843070905103335240051162531945143905070015024004658508183711049342458709881527888535466822376308200281195966349409940538336922938968136921708842875325991892030325787355167738533100146046927680842733037598911482846648228633411938270727140420480796276140086569657387130723519026084652613637639699806386341819346775229595744388994002072984155882819671684440021196988866468947892000040226199630270870737497626043131998889610853395212505777540608557901049063739953827517936896034940879559696170339478508199517251945408666212235736253567943769927441346420134237367412334548883985537386935036682489599024136055399695749328598820617783848810318974466204050769894029998470746272921372571464648568259851934211113345331962566837040542679311291250588346384851656941700365081564792428847457182249171382151367167822995046567569885725323740206323244521615346784742442498530609934253584780651769858085121618446710404399490323544553364194979178568213642703393284035513318944638367770452147444527135320760497688863790871280789224071012937175541952737576328343265263811430933511856007859051143338548239279516887853606907668614058883641713756693051508079235659952308048366425101361708989225400691656916315160233851072347844217969159672514338422699294324260227153700988387803715464621291265408932595044474682524267193881373902109713928701491961743143011889407400201660544372357363714782786558694951414443272712336760251544576016113579054615131594242002212560276540760591566582943951484899554957884191014971690671010724955303281804458404290157767934742685969731281136361157875294983426719087559137093304924301747947247230575791031873098969751933206553478084014974727062287805053020299050104052728025577469221075162412091563409740853073443637912430376260643661591947524038731996752366368443855937579792535807789615519136598885110417554123263495227611173889663867327507635964643882408565089338534821979005836082351731777821305558820980655759731629933372170799279449433637595141919388889492238149270009749680511235333280329187665454084073629965995112045915094069988400867003170691048746546899824945518428468553851411395747478850552063981888694705252458788489272823123351250316177812568229452464857311611103351636462396632029594889301241072415784974159347620859919459787781058246348529655871665179522840042810896220489464795397052094492688654567338943723482722031647656663474662671351972182473314920177618130482453871240211373174464909247873513514696940518268313410907641979085781687890038097651985834016189082224021385533553067523905814110471432830160868681306844671367303271348207008928281230643605120585180522919043707776952874258311111920030498154732202693791141396658960900290075462456522609614946048902600156648462987077291101081496984025793667729752429639192069565557707498744581493710649273822285368043494872784229115556832246151602164574497050411832380008120935138617032873032758101990353819056552633210087643536726594497234659646168656003708971505923276548215569735080908709322997893740220792450454675666418931228890243830863766681483886974691591898052277217444928479971724664610906095057109599489630963290094554946392922830053245380826533519002285936958447755947536857009491516152177979181510919580668053014249680874103364384932249381594502846130824366968423576592514231653949713835405276071914495129112846269203127662995636046438747082808545288772070095175133173620415711317653833323425497908153111389632392722588410244397466760615700410188924633972197874904724245352849156846051382637945196157019155065175785512717822851602839168474795490002485406986397111241939088099111101554785951748161780227434518490617759786006124494555500640057168171753595761372260747845432746364165855383544379879931023671497411907948807419568992623997304164491519857987958637542488049355187529366393843655035822727216990724644355003444243500804113150861602650526347994437648726452051628065072756187154077583966403053143413814333747993842271102224777289225426790113953125558636125109669150679089140162760589268696271249503718508790864671614120427237691986494445703930612928574239372044344977541193899964297937455346179364070619998724118690298464473438906937429452679065862125407002911060948669566424112884412424087697681369006280547407497900463961300702991190294929429375059007843640094624872516014273014690519917815977983204307879540087704804328413229529667522969458526399617711905294599783187937502975483547299343696221022547879805007444634812800485480141259213323580141693903628405912201319559584050617229571794803403392732730588451257798152877913472725333901876004985441692634236165942732183822927630550337799001388886480763947236646410681229447061961199147267100712173095125565508044853302828184930843761070056632775516264589088601443869474670456020856634384515466107720017542016747922370102727427190014144697583420968896233133242097018054236342379967958349007385262232041266171835027244897057188688918975183735114562622022849892075925626754490856910486366300001012772476125726629098424622012517229656870015800755102781136285873996057559463120317528098098377911764728101119187853454332352491807623664526251967189041693584127002648332266947839955405743463282359408149101619829194966361046323273667868166011983616053677154179356841915068970398407147352776662865373847422813669903688883758331540579481440735858817954930086595716202103923045764143855117361018910351465146042036071522521080372331959507132313549140022274531265029551245078086479674122818859491180320005886713673182513256099131102368068396826359261129819203568962623402168931039587352420073065679701548300422618347104765729366407370782521526453092963967011304779063780895470113648160482769526536562742008886190362147779308601486985389026454363390330169301008129653402111590042755819630590137911615150168345579219927939817769362437253092442954464470211855749925045187686359996547495698927817143513704796846071109074501469505464030459253628305218542669942885486227559327007391580296323161165641509713629239756765386877148174726220506947409669795568925988361472833887485490982741435342814634573880472750841403970503821894867159618502334311611154617111853347941989775820573067498528974749540835873037075580276286794062391114145723427844272087361513793523001862076255370223821643141932320582539720641961737508978202540653346150942254700032580008285864332537690320111433063030506284255756743193056591028052419813233009185449235089108357466216859064287091568999311406071227510671319975120312922633846105953356873602426742804448016468239640296057595122609627357005217940006757695989745235931995397761939060576182842934355124494571261807622261140723374592523160159283117792840720991138083921689875285931488657851936233098778716005314091838911407267462553608569036353457525074454564855592574085718349707174582444513456312570322931052591585695918367904199433203427028165157669256302489642838386623448410189331987012406705291807989713209187936250695334077997265735386536982084789401094081575940786008418061444663764771825948539546423750182139698301017558486472146833431882263576834985563030009954171209403667729959394116794938276896156046263426078716297813644567778692297169546640585928382915026923979090548574874977705740245925132559696419333790768604171182571490450470703707214223045680037313068627628551060469020074058114416026648030942822767783980828224079829599996975022474166699475266952135845813541950991762580493487538507361725381919348597088900714823616705664639639212274435825904201018646614333401475645905640896453703270805657934262117828944374184554864206705086055807137599129408550987190888493966107074197851127679247902621738954755255994986323524196256672663837237094518551784574971833173255541968803271105514948963388654598904659336541988268830107984515544803508599542900679970762340356149177302466158061497852219489839023683917140634233820064726951872805108017243968332404894080835606313565559136142667172914338495126599343192858411664908278147057123608660292693976288883583108589770097251372795126396061309651796364194873993645277679074479225639484891762279446679545467765258687023460670270964603040566832382091283501158116455121432213104814809910896007243866952038314179063862491193628606108988711083687503956210210217877408986003029011776010065603805123259141487687574509668654358771467501784314953577484604556167469235342529797432752405656263698541238450340916732589621338908400173354685649505306396516673575729393738095601913167899200819934770179964393878360215948776901847468537555835560127042687452779892532835599817298825873892978196267136890403644461465061959712049177006605190715826760077409153390217188383183787341664853990751062809706519857017289831478017882390473460752819070152162816579539648696278324746250128545400039799786518097440486379696041783434004843404071199743335538526055525266226172907318026111204102744265573201318814569008565359804667213269847309797906337857210659444153802983418097682786150166205209804367908373586426097316152848912649131134506756885104588123263741832470019076471933541203109209608589736586871567274760280854421497295861948253743296130886853399731589499263560772024136376387329602576318874954717830113520166223389607990446770702591051568997921653548680303759077010289545229842908660029975073192631794498588829615407867912500489115282673443174391146951463244850746403699174698129115979135750788428644322214644182814472280889682461532940245645923740302742065589207498691347795002955536223605784666064873793776210592549872949963580168051111281707169854065759619774506410119302095668980874296885663091389452791625894025126171753794549669433187962707823862048837484252573771591362012563662105427685727475141205104623795634375186786262019133184674212217683940318964701072450773136588300457009832927997757385717518798799365371759350182621283088739962367526365993845995035961090623562584205218020523646693935702530108883638153858684486512688541994289902809923644270856224587016057486569857270529447380106564194450185900777008169722150641744162208938336338023947704082495594478972302434847529879976572841839785431826629626368973494168673836148734888423613357919891996628245832265866658942902964728103805769887408867709572232869239675445863581185650744121813361250091207435532288561960055039808617193776484992131175425508218250344816870901922256339276982285931676300068832113718679229546916996216147184772956449989304857803575967014456637503617178561554896833843601333903570442285795271122215706781563708268519974448024168861706475979884246258301273577383269294549232274848890871002362540591983774398889280595944903908417214394700587918181011772586661392230560634226679576500663417564038182966496770498057584671703066749835136753467904432456176561436943599045904349322826850647948501607604387725295380461610546833775059507542172072250926911221003967383839716011388035339593931344441100924206752391308595164440670304824501666887894316528786361344015944398591168206120046984199542099037564524685015204673559544303884248233731844872765529426798130173027793971520441660984230101450314439447956900738469411034462434124561580599812874868793007008605074838085157895108472040014287846219371429933620448766449980219369656852586002837807178323721456448548906417061414649948232044955142387209869941637671448446686942870075376137663543737666718521538444124298216214617496461336237529987319665613211765594704996360373511376445528297674055576283973593290633391317731760616476423736115220349286668238180199379521604059151325913163059490198096831619552247042446782552435826299964062582168529532659856877302073538457045787646514007936402451295585534839142746137231042323386548351657436077961159995349489057738184285760183539886917753176362342984075475497419336885896027260055022400730516880504985172814044815717193313048123817930917483049248928087434222709786914435638460517310681988628881482793054534446176627685282310611683570893423843349149344924143867364434519399913995958691133430575085222016889211941400805452185683673118707916841490283712423149628497593222485021123307820932311874948630331453824112224516364552339663763860837398434856133650759629897917523173986245117007720035995910350016362432625037057958340392597423333656676488355162792147487722740674984576391636119381122487860130235192567310871247227264429286408276991081536242340773822908209805813623520233231567968868636696573015378627615410569277423485525285186106989302722109133284153354470476371021637260609226415133393424520817063463395447024294949530867653722493248622567024305385105477421956960695042101945501744064651249755495157829963019845748344294495920974310746853180741569521185167013828907762446392058677640676793661474926828993485116531190747612035429920602496900887955287176506816706328266363976540548558383511515138514832447591854981048408594103496559604326170046547677609965245988645734566073171546094402128235360256814189828828034188908037808267430262368157182966578150488884770702060646777509147464649141520822929573155675530206855885744972376555238367042521236441105944466927443762460734552422123617693544153172424382859678582699381925109410211626264927429508483806572756113644363392320586058697536408632651323990390101908459973179348635073433678274191110236892239770806145784428122305699380594999363884415109526660185222946428676722807408878304097108564727370817153851527657301114243088977900187249279990132824731999164719366413240496125767466949028938752135731282742397290338841734199386858086952099301770607024626663872346798054355489490580327842475771909115378708829578720237541904305157049689355010498933033814702377652361091842315156643698255632878649835593230620749292859523288056325755838334459331914139992553749091135130662387972588860356417416584299401829189911599711416094039888279442850788871350462705019279932331609563404713522916088079794341615269507083485890660200106146646333038625930492045878434552657298187506797967745048688265069787313928774970874774011774960731901704307042281026362224219885990726052173330751108290011143687705454208018174357842389731402887275283926431401608557812872308771082122659070866281579114851218195244128957489083216342058364593563037252857439080575612761003374913562588286474980566316506774248150111103529458411653700961543188930786137677581764501045289740658873598716724027866192163074291887839201612482707289951449259413185293626307657362466359327245374126241706004935334596668425058292060768988363302443610412762593721490766173100896028548037654576630815543303556876013407251036121268069966666687713126997766124267229981813480561360933778307109033035547263062867323607719599674418777819340327199234785655045545664063220563764557603647772355150387852738166444499416631467229728536073777039695761555405267195578647772625214790659230209492550955670744460508786594332667933180720663702793747872983817341680875247650162887626940893539897941476220748881768886576860911816482281715703115146787929317822755202051363714209543236420849409158191616354798689082574467633493531229812581865395125603623334734365544163673070735342807021588075096086082426176029316825629187340610056112699557886329405342323179321414690388590897082894907922243911445907974890649435332313747050189181500974831960437809229128167621511840785903602190702559181349308995730486339156888282953575805183612807712432230643665484582931216809633489359949445605419868551051180024319524660578563365248573942346796773650986267813758631260434037238209137606372550149659387804101532128390076574304817876677007128747600668833373074826225388964624028249859116424638905336716738844676574939032630912977392815589373016529504673283801583046607583560606808100851317436639838781247493881113204810243543315087477408207357712613672503992557695386417051726515346366706257181800000532433826864277319958401268174545999360825942319315495959859725041642571122506458800539737807064784570977418940298113679810475818451372008558658098687763350497447867932519053827598520120881377288113664698937495100565856368148588364583010298605152499128342234604688105559665355207126442900010855938281819903048586510270711749587313630475663880255768802731957598468370585708305860519923474787773051258763692983905377892555167391806136717281393033270071574113178066180510157553893182220411966502651788247635984154483422601838456756214070737186198173191890666592286928968640538353297996360371291175673424034718122551167301568792417801261279364230383502583923688755956847892214507908987451732694339580749141718093479067083409129953680440281784523676989866182655118052460842966462681953644366576336733629569189657317289506150170694421721395990281516572694705247540149152092304699545688138064900087404874584438798821118438921763547643547404307249098940827672415749069983763566835299041009963171714813810729360749016741333039172733830355420843368533790464062710808729836703613572845155647779039858613467015114690528931289772962898019357076476842129573254077995606635767061990635482197483077883307345759249112285243052293704694672565726783447368968631930145411571226551956624752412077110893865903495430962062143343447972169639940543179875050968399975770352792734665119717291418421356708516811704193403274939204202365290493521718411470593318301179738912389662247497142790894328958789090950387692291026911658218477512045614345006054472162037577958363177070558806533336523103824732519584931335689356024620256145436115230491434601150510426853171683383712548790209850303145226047416576716695805396988977410116690916160885728447452453864305733340839563448686526542054656286519376171389683145491274110553820332225314402648484681555430692893186827944611844254850945106593954471925658659895437683887030633843063191232892561156045916628754211455770385733018373448405896594456391315813191669656461979084354673955128638634885436566431638003194002312347903980479405586028863314473356221188272273946056758510320568676220122236463885399034750211226752469289663267504768328636543830315184913440958796639210648609704653132689274972642266941227359033252014828971947934409659628433211767866348386348000322628429115712139071749131327802050020928786096517959011849498272293055996629209705065422332408900190242724308736274313043805306124807130265926924719483353520550655734749690598117548365475157346939512366367325642223673774550168386001289613811609981863815887202441051660208073743726661518210107897739599301328894355251066825463941005446383028304862702947459045111203490679715921061238333687366826902014907479848361167798096037252856620386964126719433419831700898542560296644116119472859782058215060461320788267731868478906872115399544127878496748473687107408045083271658308883135582587909376681977623229734601593916196802890425846976901013154257306053971020007378153115949937066956086732682253844238206196952613169626619337097373668081570256300402487736586849554278531587816649518136082154169892942641270697475764505594708157857792047021297554361762750367713761377769335541372063124909056941265649412341123652514230124679098020984196801647352743919397570569964907798226941891848500686224657777178952499143949427322620675546937496682781408130738070176649078903054345021676039713551920110268181556029661958238828234421605983171731261335098802934764381192692710242032286040914996350215520958697845862128627009640453619853703971629015901428660957812862250000465208976026360235969199703909597754085030183880963346937532024785802339860979734739946051521896260162098490757816540680281816308519994626406321730576052914728088972656418517658748256850496241352020153708088121154329705626741569642221669298016422945878938609710889129170908633365392579065657347751515538358362603559227373409501063280170927485522640935580377502846676623502421869240692216669595369577877255147835417765256116453890804854012259895291360698893201027646784620400792402249602661969566990474812163807699758927076756208819690219586698672847345918465056187228040436670197280931867445319827923269737752647225057301191012786129682014721940759610101395743983757863764052883086422361570339351037251287437642141085401528766873941450396513392490105262994797693367916468535656671639187592026424432077027948046903644697536748309831931278686449842647235867735250188528713110140144726866103342536489327220603214135878857950618646226319507089264477120823848049753543395975569431478765617138786859553275432189758263088369469979209520623335252107426873830255923962925384291875261283632181958131224282678932451171265838568895256655383991196867171770381979616795384823464918731846845563594832301674996631236326293166127294444979646740303418912076030619629641263011269792638129763335207021845727626854310332602022344213523155505234630325139728804188780698543166364403785668771754643746858736114951257021324638383095987140217470174084552751954383993313665134019826843618440256918531493851934421453296955276738747465995833021773233657411990285116145875916243367552206844003921083683378902616451698991163924613647727934605250919933948724526631858524331863233621149976104320037274367695681206367700325611672138854553680785009902636189359878352847783833285971816766379009878027795962179418338533892685449788948262082962885670689603569134269138811160347602170673824478263201559566822573725431576820493612204899622957270168108709934398729727419708819254798435281967469159768929199807438063039761820205675805076763652186124697797566520674438011837218032186591310390955920011306392723000594831412536877030802421396295121072069083302216377938825786760774554545616237851712516300358276524932703895607108177266046252728522680835948538836174632086526788158295203326551456090985758028040985957214194590673022494433160445472853576726330819562875859030340994541870093505576399719516628514737330674400565876157562648052988068973048742012147882885866651107359260111649279625258901433764648334774303583746477112691099699406792640341058162924242358865816730313747270758742840540931432927351906220964706744604757645849513301217235992769018852525024493197923274378871892145051346564532485613732418337650174927032989531646993729887767735008612074131818857922056222964010821458117530654764434338808088387694992947002814733422656045005559222487575536349391690904812695914578889617949769928943533190556158544307219772619590556048951344305104488872230203326070462714425568107915773932242290819271173028759869863964429404346574542559441199846525371372808607905061124319180983430964737642432361919126651692765938163211080438100038735109299891557477278297135060886007725195867046891637760757340763451062767287684180353841220608954067794473188328716251639629537243256069108353299026492857819888192295928527065610961268466526617052896427349596221847047074780906484531513063854960069626071894500657137816496616289807099249496183196436733194922483544397433519090131312435465521019692342384245713939736667628960827752344774515306057663451645544298050739074840815906864253110377567466278059472922944490290389930499531702993643214295133035167579600516717810896082521186315551069613042790154118776851146252589313354006706623969748261824916182334400969176422181550478839632209718349408605052792048116960345061590879030803127941327901652059822363925335518149609669154338620519050904432020528728814978306450440374484775801599356601955389488829211172817926239409723706828251407923991245751682009982923048110335180506611002400058786816816259813219988638889326526540825780371541509291625411798672396521361715584427857001193977749882002815592035232427813653926198435129087159508890253511770938607509598102938779573355379180602631058953275688755341492262377526812902710407654955933985938776912196048162362291627845914905365949530051954947601047846769974986253311726076092045376020537461767583924089432461802145525091658540698971763820114751038616538265177391064220307951124021705293774623233639052183473014506189916629710402272862791788074498018604248117213115429414641503787478445223294422974975977506964666776710146941221570242540343202114266856958943786522010087876201649579380137343575345816644105065483242586475994243207730852744570155344495928551791474922720020814041566571928482864436820563095816108576159968712555935217080391857273369198771702484230979226654948865129118785857595363114849382968960793655263210250469742352267087598204288004862675601785420850926048720839615409281710761686570873233024261491840497457184485084829003915615888617839294606799840204813151752204975206790038298417742378571767564179929115507842508569187903030223192726886159606282913430381874624696915828042894523904029021952294907267225004603571919837756641756157368103208068502770406220009462419641350878132894450924986634507059146093312132799259518584304422626970229702660779127331688833387932859008639729090836328257575917106945682884056367925837201847092249147417960313554455408456499591521337087849494847352854902426334765067641327546693003623407236956062847159090206872336618816270014117585828921733966676511873747158741382872716825708802880993009000391833902824942896168340320983001829045039615271208848064875276596652374945018533760671391810226096325757887592045145595113723757330370954984477361666140271201617007934565707629349194407827167762140067625841505147649199853215236385570002089249827214765642567338947718663196898841217929183916937044079941317783002441494270467597579273309723235740464543618245299675992441511966937585143550980393182130593053754992534258729713836477373973493335814411151121752988634529414956361376082661563880827731296554045273283787128325017549196590941317191714669919434142248227284557001560530618619990002734871862399474679765038343152537152040960810043544621140267422766098179692335845671282556165761273857963621446064447422665587336923076134095902529996316800703093043006033206599408383482582063124179317056123562471042939125561267529153721652409044875608748687282136904610429539357522317517088546913333385498195942136374343377304488470462212707308680695003444444164737884944079288884516689500799133446927087878233522000630020908951081684930871094761764795204661769181997480361607096089775085397492548734324612360849967825585767269976003818370872666930195859467089228422691865839335908942131595221723630907747795683636316100458805143403051035736487401310573676585558065616008067135270611833714834805742948441454030659854235158801612080117072618009572000343088429378769254452961456252439196805340394928042816938451990509639915262196263803969159703275436676302183725044989255642870472916623169452484796916629067952028801590193917663393804288008159808468121666413893981297758226264523025829037617869326625176662303249497942195519776162849596812119977974994756499062447427872747141494776041285475025624924828816821200627393403262564388655567198637080187902912379950374490173441221422427776428030624266391352314125802406127033937115568536639326487691459701196078883804710104957242553572168924137808527008476997143680788141141886344464717142012617942984555153859886010452056825103053674959272844307251175078723558441494027977404974675642593362584224721310466682314808862839443995225887944100707269418590310072651988863422660450177126877187489016353871827910223554060358530200080008685852002933451751229482611736511884904981726847680838769115940974323505821315757408997059309495568048668944153118414865110316242705233453052589200763463800424519835384048990555783445244232043934046102420564202021010137037860426329201605774758289301840213418904167639040998025263372511616008313058446040695821788388546408395531551503253061772992741186383437215824253658510229947678385584314686519017113888700742535597894581135659915742374764316137032376357204014225895861994894629219715412845206114829862520226410437356957952416849951466109181158860503399945215637175145285975413486102099742891780906724368088214551939147726831262183076569983662364937062594458358967586601171261756330713946078108352902430087713228464210171988336391880139573819867138459706091107014617377467351814366793724385128000543210749276813584565340974195687577940234498800260334661172422118138025021458688262899177490501403622837011722444301705694277144443132787628971446875949928239629769790459429231472061384738815903631673733597060162067040575860317623200281447461308699523179686202710818806132322454036177614537908586073149281101114511635030772718270678609761427733298880154552553075277098503818585736691508496401417690480162129122789526832361513720240478899183189790498557002268380670030086277654168994344896152513842146474035419259114670176927773834893432043083614459679022604695676780133544230476677366752637325001977922252305705040822474196895263371441853421887873855428338405093911803232730563736454187936046492815110653148948184787703398417217969913958884224084576439289591131142054048800409751938760870177800659914133759101675293965450815985641052788784075041343636247164420235573084400107936326525328062605461953643507453168213365203781445433339152651496649513138819151612595314589146922824132913853069639884515493802143887994854339676523058177347225264656591280754636748888551375685652533341565868718932224875917241723181212944236541579526369429839055144389204429633604118662133801027651118915260793199936371978861819097697578705872548666659668920905132711762507509164215647705319381472452462662480341359911396908242229490206123330373549767175897957621075907606601589759157607021499901522405817569764529755550139395329744831623711339688209518401377814600389175494238069893072312837241965614201257087572021482317651755045539461891961914396421914478639461318569835252863175678074948973818769975415408553883805270911289591323221220641220747048199324135091282588071750561535597242321961405207112353121776066020965861631778455055747056761637633133044159361460673928418741748663961089831549863433442534885927555886554155960139190184529074370499257680552326889906676593674939979154806059122179671015786914833456372428576296365616308342284192463595996044240181950568093690625130060879500069266232503289638691389926685760826641339582585092691764973694965818546388597004932573817943177388283506423650802787684881043207541758671951199560320013013619975499835196043730098268529045542182560235028444393802767864138698652516237932329734968826881237118914062462638559661478317765259439373087286126822689438028205210729398847348031523833876360260335165466112571208929174126301598885444576455976890924079438655735471634762510449354639069898890773832290637731389493431763782426744036698313709386022037555946453622917799723456565434363213327315111952519281860733907068725330649316319890935439228181412255158846422517335516346917642809738472070920867076892401375476789154738475445100314968904347888375229548806405592361971880649833093721270484857321845981259872005728981417533315794441769176121586494983928913924931651304795643745595452240689649653014128314072280173058939710623502771366720239222564770546701921104061412516470912481020207612608035259541466497130427241248563679471740536303086447694220785209591222571893192913802768714356948128005405351002514033930832769887735850861255416837060665009052080066916209662978706062251927239493548898224354653308457360984022693368122449150270349682266485343320203827959145709856931510671294434947635484346884605251002078801803298062005936217040703795766821636760725471078703287990888713662480687339386900923154447374671143490716552474500627166567051431580509310098778820180174250917572480144003562170951397430951795817399121981826085528270216629399402250126551897760076462877471627089951721619999043113228343867633832586795328743286224787516804657449227265396387717846185006858212138947851768462497350359747312281725744217613617585744058644582192143781039088911387376933000783571770260309929117782376255735479222370271010246479444771806864727063526726598897068689647563136754809717377547592440103965970775360348831380277628253527024401337236416069425433481049954619454601398548894335528572307611790768254241316377246844646750548511400661010446957018196865823040620171296011513577895549700808010590595537770473786708573554325832709915255076379214142360123522052730747634471137273317318864288642637701289450373766294216673947902370791429229140049298958992357400978781719886809529923144897269985147447290747711949797495637490081191180573422483994492007922446935671095849103859621436280911786885550213347959144981623454661245935572155101745215389867973884920338926222626956477571398112893189273860537003383417595293780643096538697698976931106820166100061175780506508100923765928605001913939340786604257150388326618815695635810982863361650454401687448312234585423221643934828384276553676486988350144951754218615770647692202235879267662913732343029176759943820127594658773429983692991402181562664688986711884203756829083943873112672125626516105805324915140440994188021216746280612980488622514534517387847407665006600237013196002352506873298193500038943418173683105809982183368006623890527437335039473378224825366716049633434107977710334910442621297958623415031129996146849238273647095771730036396037605822004462721234231264019591445926481457949771366756286955011301602599743086999247915674487598549529458702114143883756152572025572375831270697569312622831815964096050510261527730701246598056619409655518534951074558104526635266232133104981590059506981282181573174744174387530447733549014516195613125883331925886909372443340580108605370211911844342505726322101187430526863563195067430048817660499251355786184210108143144488600690428727348062826566946765889332024380077004491611736694428459202931631495452076134071000690639081135360354595708934356134641935580362434796692298142277619548218750330033270183809859618359201370987406561221730269188085963668837642438430048312247849451784373833380560411316826224947967564382859757997861916185284426480016555246110999688315736755739176229059671342171293660220560624659275956624153451483337604013277552485751232698826616203362409829240223581264116759920623365683387886331933842736521359314899661317155371018952732905557773925064367952230977243491470842149667735474190489999444316970675931013955605369037850567507310234287698637965788338004595458241382167394206230513865810665453646269943464062761213252575725144569518108360543026665841729023282548874436585535656341830712675547070441275211317151276602862172785766341202429036279756183690359658871284471506567292168073469512815037257331679334302836717189107670843384951611776384168586284426415721661383977349372676082568752405202705226884530524082521739446918123862020617805498970769749111936905233847704931988563637886344806195942745189032045537469443633202010234502226626732691854728476713762591457821102017791974618070489838115991944064513476289282274471245561794824962607140151472413300958049896916472574146759844911268512522244535430436910478756646617023976966849388550177188451237099260311001017512603152422428334599377122658267170251850720373151003654248421723187559435738308641394140154516565090735522980386042448788469102484912827549543030482210284148522734803633303566924069350480971364098061168049901900074430138207899597666110433558308389528740771407163569348502242276707137962811108499299794201522366569009741549553713837639702513684592647675534660909997452707606511218529215623092217077415084036115956631795000904690184732512630366841802520357132896223125399988875828782035434582763990153330722249457306605669944351347010861302234398988579114501756362361702907741453199788174811347865490899474103938450206411040288970827928419376951110299288278508889870780443614508847657472763832028391050817335486596887697135342182449417916844233691846247156682533740112632206904838162807873054583667918588227611647788461342877447128717323759875438396915662507831396573297601236114938832477701495153076677498646368297164044327653959115666285214419414890877280843646681122813844448122150293955335650456954307290049657805688223669406914806616551565597251411326003577309250434263719158998926441229541986082328763761043872887554157485530718352326973843302624350597628042077490820656624340455721758404869433590349207239247136090071624766359699326147836588756090638149335514065030022660168443002147269194973510467520373834064104789357695087369434599797901025688543585194479369803248154269548339852638669210867281841421053013317485731090308553062433879250900815124772967817269102258923719642124837974138533422445751746499359478168420634034675100589741018319904567164906967589999435304170285517286394273151711787232592752271840229797719000925769376673936976815610870689676911438878880333721608209988506623594667808374766623547985072756797888661170017993105519374531887684785732782497204001886545803052980353563412609697194104243244495369257703565448238339042671604420801360953989162476904047085520207703538920693550064506591141505602139996596046483600490871780664164403729834567952250134229210773784413417563807116919657963550619193423448731246951813278995943812855162162420489883776955152715687469119089406807352323951191291408846824173623531497236068441292760590374333953033640338828885694737201658534149205408409161224184163363209302332403807306403128738589861816799420543904352867599071112079113328472144163990247595815143768411682313586714799557935649127496214501382953367330604144848553161729709244243187628252360639903834955042763583225046607110103111758854699443201199460632956856386128694502515747742527992688201494092594148929618110522311065244154704815975772258402890000935833667882116231424957184102135908443640704334595886593686055890499629455769450096069478017092619292566330956518286694331904981077966858924173236451296104058418490763639414566069811921409164651592553928188577705222954564515476090642912755993566873143601341177330415066729878773778102681482452811924884878154347911339207571507920510145952515512085945510773618607188958835882094454239972808923882063801233773035763475406370506149418206311105771980654524647277989898534018896040579656594344781412549737323138004899753323168456400465027542176042978304846629928037546346895073375613737251679516591545622748232821740075967797866109765074421026143922860082030767858830655848921250375231357857801896582793933412642379542179944503899081340488966946038958872094075558238301661078938085975311011587416550278279406682470146289964699883310421961783559417526856936630431078520368236714844684157407125276274142027594306087636694806513885176094864574425501902054897308830460824178072390197674087522774462347294426784496535130805014626282202639345844085291207163691282496528775728266316896156091497415392017392165048935047280724643423693726638452227271607236269455564191504318213052448388826926166626499578311059387980525750461438748011621675177920782744256024530095453764814260332992515846313126520481475153065605246657374833028939997180039903547063926245128281819049385025406221327798404694096511345962067021517946319058183298331416431038111034062476651121772311370500967679964967377978956015871892670432469613501312849797514222215234623033020045052145666822003460560129870025646615947905515680226997783681123222573571006566507734267567180920215900506964859741396710667114770617647572399509024018030649490302345252174283809914798824832039265826627726255384034941982308629064825819956972334278827355061709026901181621557632269522246062665112185523945227263535608672819124292948548947324381974437657357306790760224858642559555962810477065597924120702886481639437118834125420082324577229102562676407906618271219192466934955852507822823575005209156172194295179831458179282296546106331608830546265758592792442510658930205854222064510421272296997418884232983978548759907887080957978364742977682601972485623366246685725111770477950671813873423715283190166149887555008333299443256899263108216440776695165492448233772648936325177480403602391895575548306537338356787413468180586268339325208080801156600197364700478481690249823587062228588462754265372905043031088424594363180136131886576033453721209529381404874199572923184199367550095534638779974192698874346190667375251596045680576363364964657629286580299196661692968852560891716943353281102361678985539169516264690066714453388253490017801100613234413253429386470449429244571209993850220095697221371973943728224040299820598123906575608516452406060170831334294686505944938340429751187482127981809466299236836805529335300301482149282326162720094565543446843562920793285971047390772953890903618894778963598721486976550857484638575833912247823240331327062523020188302529688878575800844487580482269741161379367733283205534844755017025153287166914596014176490018744917670402606924770985790599269519515535539377788129632403537082115651038305844725726175362833068539087399620079602354394702717083965937398024429364024613427030101009433646510039960137356301923912924661712475675270740750050119475380517222798554903136491861311908454564427745433463281860535677016819302353743562898865506900785838127918727093689523641568003979569009413844835538265725237111020184454512838416158629560951273212216781038180497213935249981852393066954554754713800359827286642336346623964102989346030811867680330769639629804073081211822212159666769034412007069850600946736292739581587808324363079219809554072698019005373049374602166962418177042584942797053536277014747251466585814750317290973246859491985995168655828109892048702567699681131553864048960375077243067787326671099950972622098229481600006351554906127896583568450325251358117227747379224227059482838842044297603497243614111528212610463635482242042154019254158706759423060983040616241804988579965983627661301940055721285705398625053868957750717689976046670973381473884376889573097074469401606578016251754631251829140159001048912069562914076061670798941437799133350862056823453120384040240879597242809821427639276318939155450252718368917483086043242443052387674013583802476171359934339890506258952800999786544658302931194794798608921325153189032956233877402530091122679973196437465241475034008101494142604328784321186478097255098648057092727723973022782807775132774323453735656027429054223834130203146316271879007960693774837580545949084607251560713244365694053194977887451843296717177864638293016925771272807590216323159112427443648588652185760013993066122379522763499273543789862162838909937657085898223487742060983407078657921615426225212720409195585291225205460557081891519348461860348063788214701003346069826173619938867168088154462240541726959964758449267797382743114310601795876946724605763401610250123862698394587521890553355818069648877266355237353071582042766854205166959954165612635620772976882647159355766471352044626079844691192178413676144645020892029341734105550627651881405362017242137129813173458994048939600680278072577968456522345803879897937195197821716513618720596669514815344385007451494645606838628924934824908660787301299668619137120562433751434445975304914223906927544734686111477515263309280540051537589924104778788935692285145448563095273512969033249579471261193889654632178226953076142201519449500907788000481712756584683007173994460931760741935036887518249645220860147757114031385923383738227084117284229943050921399707594362866317993953451440844475636049784028439160258692623836677955945846845106124091942640121447523146077064382915816213422724650714736061615803748402656523701682957054710344218000132556175590190042332160237928363592886045438433972477539496789739652720128771324923594287608086405066009833229853521858252464054077120979378878499977787850167628375855785801664449999547456988178884537649565265991600358781399246768868963082355212773350006985441785590313143556911803601125237772871499111770257960697630858138837618299723805217596961102911912728610167551531992965238879005413729331157656147131711414457936627001168032155185399554747025194516842441443928026092962544860287932951358312010382580327587741385948354335791522364988581137089385521848419481234828153925249019930090073233292872169851739918343085603307702305095902216338428816027628852658895983516411698293181785167346504697919394764297052397762744533890366789060034197847289421593167805954589304133616386189241766738455380636270646316230721053607949130573075670297348847750616855098414587914848834178994910909159006861104865747191889634424764498073301277469935099077493709927239295300028343911975092302382824898826822663434629586014524619068842178429332279625001844896634022834151796837597925216361736400490705224336509367689303852985418255956688992968946041686607941480498278141676106500894223092042077565017663691201092884283795139576518985584294121906186541996904504635582981269603366451561034522225007712370673493479887293235925298622054071758739394847341038516898346619442032530504536119405672256118696942596458361885329093954628340106359353039554806542145752295767653209238543743459423508499062307877555661041202213157821595654372252389057883798223738480318690257852726182794558749179515262943045728744208935824917310995519937861830835827546753429569760743860153023837528660591578311114017471325916190873927803899983165785438915187798310014639576671234283578193635293395216808464550439043161022731513052501644420486243463129823237793514265124094941317308907458164785863336345387258798232581383959102880671347226117578215864340368915849889891226913543908530855243478995552876704273925054067039976622741359693866856723103256356732350395304902897996863074373256783200967334844777025789007385327644749558195875575007375969245025462995380305258873775770254369295050232946659183349650481630722314627641265386155659238614574983810929084616084928356788977386668921295976462926173793155676258533597251261200133083879356523049269928098443034005180065991749709993548818941196723161698742320838482620047791508472358832049941054924122427236980607434783587941646954824563534573036174674304525583342904983796257140255414440668371230802093388199061731902992401692425070924791417053152481178938630197718197751357274967277062065283059172987500168247239958766601148212533748849223753327619220299766084286597357638035467161687090053833868483574020589640246274196019668258863937322554304874686310649305315231043350371103451418337740718484813554368408898640527556880763391207055977610847195877505368267381926528811265562187030481351504838501242030729464550064963763820974756558646338084121506598826516993225212285626418710864653491746896904735796307961643479222612375355420515013741087577201288843377493684812864676004145248724666891168972507205949477063952661884662194449816009703971888250030457292478244897176873498826074597431907706137166026701066017150495512686669761115451913438016710036492762544850440987897012805908472791047856368382808434728991767725586961302732435104345047550308192321097884093852222177919929492648329505286273265284567762510471795291026889322936468645389417534427231309837596264567696489176734949444035167304609479807000018352941391807119763440873818965575392822295857952980990707758398097313742724322080409165581025527849798048313405552013573972296963064193042558801669642367558080180765553470014260222750845089029994056312063179503647124182471819787176838522182031981332579527566350924591048763480378916110183312122050166078795042701581805641867847878203837177274083928370138827912799479853368349710521594714657095928839696464951408787039747143820795418099103477495044887637271027147017808044123976765208459366386374070479794628910019756171965331319368102626335628868866938132590992570295603448507430052335015109952010505871322620749602190453179582026988183275931167553117880029401290211527512670777870659644827964516307214963721785500684196807214182457176487694065825078630572126451342617951987440466447903658962404989511271643684781935442065483537730597583205978632323283590874556648959859788115642248446831685760860429559121904715509917454592756383855244993329979713131799677971512899830192712480340226772188007338893789984536557651943638947061661569556778973257895685642390705551487243043186012907102489042517976307012402146847631676615219807841734990008621981858343608055652482472378298342948510155351537188209246766018300615518701179350909318680700608972002427640930796874740291475669581600564185779952363211386584909795654578019867052075129968111576767168032705616719990570604083745782995653364517958125128060154458223714348277455480826162317977701183487184671917136058297537800178696221604659461802029628783639672092909090255730139957464531074405243576019042864478422177710964532312960152055860585350077959320026981069082886438029051194177735053264001249744651371304369403093662894049678533244557515832070328705387402967654618253773872259130388157197080345603892240121206337468741582316298594225626627912220590441256740688493892062107016802937473733959531303057782725565241843285357102240965670290230578467826298256073645606491902050454154615012276371966244819396469407619003414596596613150532219812050058542432690609876837282452291877232951503906930600788864621264101161043314896214345218708508673504357337065075408335064955681315733692017488438901992893908730342877762042106700328655903334744023901373282594767002444287448573941202497166117639987936389606364622533773179742001566322739817374015820844529418457253732801234487474008872135615411249230771172535042682862182196735882102926403868877299939244299731927523675147339301088093785804766584587981983832368556246492453055703809941841694595909808630729399649251198097062271713267923007290723927385471901001606939900191402123963708525183241311750302066353327273956976463887498375803616373490360816181458086666436297712930662245660018134170418970642938646999456707671048814973370556981748807246250091058167694867704333666766874023618519964511506346708596607323352471591476088286541545176996186000481852137875578364513045529301280045657074437053919617764932461659110144709124058489923131173060529232902219066553896046526799866460571939771855976873786635455753566802566451924511495822919239512234476236334082577799226074576134460723841449045242159576629746237416695221504308103299915473762900929852187863743718828397245898823411416094755131420084566019609081178039609035922737322729263128291545823136409581277029953257337156996426839945056556379802448700230309227608590075235382522231798602300741495750111750654851739165752141967519037817369602029236026909286017628828229302530167408919652609911291001551723695287499573644146276363347564239403197103645593051884149369732754633342031939782447153917837147069773883689530550384110126803577632728739555842821922517832071421780543820795580580880083195068634482438354695059519910399559885476311386470227851203890411801798352976720546274278794336015117335889017113153115814846120100429826421370509921843993985683949385644142428150900903516174096383754520820650639203059102737890422809256730604999655991678228535400853890128277925376801605730238426778633066585919020676255879352602605589071443973229421076604145989537955363105767739463287378832948028889070955592613996341000521784382975711392562640911283089843642537593224165988561461153296125019719057413302825096118865096053405405715089372531695346876966317801320236985987963361459194287819274326995215505850534321894689872513945492726176121344002743885915259464907613442708009132720557970865815030733381281051765429267433251748805444669554150123345260826779587310467475951016274702952665346694730249436496226136519402777206183690462628259540175641288672975893420823925187595937863009649871754477982843422877960733275974897201430774180091960181283508221550352640469099088781911831168389070679704642504999179968408630091828177468157815160201349576544469421730133232118710759134014927157927131031296705336222120186006636113951892151468945073791787352474292295774208250633899400452379852140016036082528574727957968079476269234225550200551122307877262550870063004894016131034329314754363513590078009409979694186248174521741843611109774663048159147424662446873754659126133681811660506054460980703289064086046115832552863741026691685183633602464921182324941177942840954488403006648222716720434580941254416763240455269408893303879702113942417910531792841859543100746271887143175763127884127290217782592134977414724464570193626131460833656078418323311099185776408856763521244710183275391686886134194219942053948860876976401254140282677288597820644835431214755023096701690795509273331606774503288065902930653885420709003513604144817316323449415737519117144503291121128976015835698716006206224875336901283672089570886895701623068271696025426592599765131740060220131288817788454021790304982336412750101235436655794626927469977940540582678051875182287066255580481109123274132858427965514069615301507310148837897218708793005491042852220917211921174158391237334319720566237856193575060531482140956042385322090545825426190510111992513535357517133632810788395615099641184850866704912598087717349015165817903609444633034980934055031643718863106103302646356794571938944929925243454872408814260841467701952255826324991963171216184985482577738255658129870924239436109900294462774080258656163234390235848008870075001747647322797112530529573037773823299709889568849040044495659571281668826584273322426367099291719118876251420289315252174496584824592283673942860083671799715411095190844656903147078730487462372114862958783736497501924757583747152475193106809684737047495374205134572032081468068693861106512917788898349051879534393979941507533669230040124905268785336444066562640923786493336179770782883248348331384739638709473071383359438685362119545951535283013277419708046529069706838595732046857694662835591962277039845479401623205183171378020226494319886278795004860436092844469787127843213571428345708425990872056617621632803756495501020299245228343176439671620704054037053749533332829524214862960538034305781405556277738018209984571469992531112241939620829891882840592131310889275432756544018635995261540421333540365154717371193217076577572365261661655646971970828012631862876743634422774898566788538024342248398278327894417967559590033455778850594539571679216094550127616052478822126124232938020397467407122368890429844712086312768369737062469953756585708581678497737548009615869515969571254667073090568844349055284062777307845983146826214625941167980591113447978404247669303593251131235375911405879208877557015845134798885339400102520187385247095308020661367454293826135900889211372653388414805948954503335903723687622466245199830884726225989014668601453580038912124909701087571385526790884032681361586114184524126817604578831571903886826573044622477137624642210164724176405915681187004986121546092566200624785855734211742062736545565297972672879486543689193752466932646020025856991358771194060596906528756818868598218151195294073836447557583019088406406091635603190858269775185850059300476014400486985108828437599768042654030493277443776753227464011127017757424452572158846809841568995670231993153220888398679549134906599088778839771216055306158162492190170019726746337804143138171157996280241001876047194798887849548867416609263280298028076939352020187793324421015393176012652340958308980372060905471190196736238289216358819750760028017403211422404687985677209409223326761446703464756413475760595939139283103661478816680477939304180435168717494227733932064365161056540595751690835463331289805062329606110599921822889202990926756037104723068468737732326167393399136267278726090515682068046159168637520527705849131715222009685131733776310187799570793569880213566968199830972034498915689682172598708817538013025922393904134743023668363428631982562171060573480885556489861138486100395479748041017524588278676971701740614225569165351400686975716821121827531398601289709836986488093542313157937214329865578963696643683217512559031437263686145284274226682110272863636302322878835572435430102856274477750089231454283028088977008352034626195654371819020868446193545125376181058746381556805982237109507034983184554942378132888657500262906900914076054185957653962308760448754425026862367399651285766285571059555493160095858535843863492506098063120492089643540501083621870637429414062214300290161897510078505379813868640625993602444036787054471293737059352436107409165783882309043263710506576236500298195916164830891154890778099817423957081686538672359391073733911135794420584395403701733249599322802238239810575493798385373431761114316728967972931741066451860009534114180612168300565315061680165576768012342317680265121305432616032068146791775212524974080949218635937359712288050512823948747208433879738439768149412952197098549419002909440796055425510328731628255251552309077369772548404207057868530145026738009456380407645366695951185502629704436507477937944572370967544787347915620225574136634177838950111057334975839536385303328966873799142813517379646340515790240855729573131664256995925347244556091443625329546015378280154096272865204487564112818352039771184887669020028465109570065878742265875487377234093970691253223017335941708377981511857407761103601370690883159646012772873637339812809249362812590313066305364705229112475354741691361113856549348949713251174654841462048178883090522323798179172014853394928719640487491046046544490198344623574500990173707104599463537454206372236936823435778594551431469476558232828734725298728528569451036673329951704859344629154959685138194211352679143893120804657167274590336382643760608902330167113543460090646090017767503740198535205621698385803571131265542308072199217657028665651543458914889642051946824875470035626669402274809560988103095339700713933426321063161273057427179992160946115668126600466480703914726963493539287848689594181891702935754100204224144976920396050751506207904914816768277183659657694761504317512426279587508227192860418178380113705821509021235229349338880096796994921288618011392338749373197467859139829257083095103516849024842751621294512246353847459356713272087237004597956733280817729112786150448035761789991062057005124633589240437364938190569329942888077760632987962959014680319650737911280788014352524719665710931205749247167117344354659883849132713870234096129240752422335131107686549877409893670613060013495031599147773104224429092450528572310615693332431533929294680788764811791686477171799239871018657865590167209765018837110044904846142888470080144876396418335828957737586972923150876893500642280218556035672705523633506669199801555877850108767472115380774867073152733672730692541828987603772131094567243968472326189268148410450494708064792834796910770026931804864035086961754089368589654618039925255923310247800909793160445462475045224543855229191338247177303530334058558614622898272333261547673353630254234189038586905843759583421650737743872339120084369989747109329884633932736902054177074475250881307218494400534401293927366073484650320288137838968878229672620698227278985253348728825178013427719703461151550760340122987890484973881093036217431017366224651385150235550518281672924205908995773010293031241907317313735773593300465284752257747687941873613607045940878681021870938881242556794006855600690775306452408125949854843979859328036200536560278930545749102923266397377567470706858084413239838163928379934680926070555703419095546984055761452909661936696044169039071466294565217083450249059899794518967611941961023473518560301906717847500049811070655996104384786164621142519478779416291325974960573879816143123221653490692507912736409867532221346733730898725303095891466133990772180789848611310073511989489447762979664017340043516898755556006061757896553653465912044149637540257698729095288773804291510527454139145515166466293090746458676588394616059319152959757225525823348884067162652112056616320872029191185742737995682138866057669347166357693477079512455036483266562698580402470349582870825295629720833810547576322290366151223853553808470935203028355059234284115165270354262006479695279631741100683917904386505577738604708198644447270237439302653805086181840054917071160531034944580892216978949715211590421426989779434129799038263628645210370708516693759449255561922148978297499652244967421999672107717784270031890030000910189049427187386964390616097214269756710494853370045495165053328793998606525708265503444814459421708018917561855081341162266500466817045183268391229556026495952936359858961176724929537319143563583501637901827741365346595779486990376492893303491663541962975921904011507973292903041234364107476859183853067879515913899537514177121568228400002200000681907937755168808148383381783924720456412052814307890299044155117730771494918274428349474745074625208473282351011605983147565367294821979573910775965555232663521264059190396871195313850265648061198543336490017143005041862457980023836278307474535401936684863449765960576749766553315743948287588348039354874096122327584119457310879428415538370972681426057077339413173652392364796785237660574252257876811801936657445765606191509884267986395643045297338780472582096858397857332836672506124709893881487554418917024195583859670736147585697323626031017987952394728427022573668562729463238406394671425479220206059424602263009900168180554082545259577787558643242086110868626523874954961403793932548445551852341567402787379574589644780258754893202208811051006175578144770948686690755897551284929118983708878773081152335992981024984042616113579289730389918336319603543834867521582893482597893069289295300555875078187807773526459027490811064368963631695776143166232601100102032251389128345557729215220199977896266312021375483683065146627516855627552572326201929246953529352252255097835094370024301429737033827570009003756952831075470905441352563578808712369479699938881434478127647365005254961664665441134625813760964273066435943455915000898697300322828501541750825820867433546997354481315556782677542386741187597145056307067634974059204453929204485267662409351705840755571798115950287116998030651741872024980901256415311484959772259756063728234475273799685161529137500960881622394750742017216660194789655339385340590682442609422804469094389326484742809313268319408637204677864209558193861628123996275573973110669974849392025497919712255549984004873411054781034262282772517305906433925887932534610990638612993826301334003090485323622290543467987250114791759813234618805077904763648196414154574050661967690941004178844379939643786030715956807625675492499147429092252986893037309686372154394935239832482009997569633022590942086923560961227924687853682845351535780184727106454645990097504701004402240351083433147542670244453309403473103535434326287099588296344671310660820742206395328146140151368981515308028780159269714440593579655791769653012904686013248481142713659602650937650805338334964161690794723562853592273903575392437451223421298642345043622090308010361617896292994145489830898796047295455394236380128647035068489342049841638331644770666146648013264237285425450014422227583568298521036830713303838467428570972586029543159992834164135648804918697545173234644587079886807854941665921518438822480589947256720924202675177860291506060609088304000683719306663260605160900682777769460362968729817409780581927875373190976128506038984696244348455791298491298354752543543827839098693293684108423982183570369590684098131817891397029449758745303201583918642125533321906887920385264362170115003037809019774474764672962177804881912582673707649322552862975188712233958191075278753052026891824193535210386037000398939351712546831688935624525052667802270605861394106061872094333934635534976707307881512737018940129040521597148148538756491288311366164813628132231329781083998707423024755824716507626667632274312722578038025895491337811118726160419067043800646511761912514763394747800363847022486721288117678340402286010546900645076193197251574779623728451690015490399103067192580830532648287467726785705825052899684246604655426994680845896447441291679421185902437181563365700764991316652089495264030368558535429512420152969147625813942563379165167091720300373615471862001253917542938034906600715797376552210554576950522952709720346148310642483653350306147896666039032115145913211200872533371045238350459168840580901085225821606147144495419089109599071717553899375528377652342024912999329165979279032200853361388629639529970283665130773725133370448350444235610990210091392346620094125411964290507864671342766022755726218194341703117241590023780772906429776734316911966119434281694060882925014188559045272654566011004589124540607899576079069244010828978872635089844127783959042879249784378351234476758076581551095857388634355877740916971027279176340069352814407615604634760300809516456927471365121873355240386406142059810614128211616876964699537372678698677888754476818460291689985187085054405638463182235492262813112542666385106017265756463574484356097847458212850894281852947555963326247686645740038005714920922402078739874181429200624279940474047505306928619484511537433414029825441991336596620198246686068618624087962517720475655184938019548287632204298054438547630856218402776272874287313875947775747552635637562665471203425526604292664334290443100988416790307865529438278187058009192763250757634218711751239777838671181166742902405900961000298784093269757611034341629432681507779123804058416559633975022434089099969348069095541132062244309828597577424844286955757149230678103537535465328732814039396017766891399309072421388342639194291445275888388307703723029837418177291897736284753810540791933049603235554553402835346822959955879569951249754423042335046591309377905063009636853987572247022537549021686753694794217665705876943554516831642873982160149811423537371139661617906839785660675470914122773875673431450067526050775491090633139488601214753855455015023139944018141386667687265882446413037918273532840667356449850809608130806670057387307814071898262833542665168477107805114272908353539853576809379284396218790200340313685756809310190570572512046289639939900051411320069184655816535105142822356589823406264538089271153333537235728704821460314734765755253297780061601816004257769781949317185329458094205287269215726725625081535600405732931192288917038339998307878325296701222372282476187445292609878321565882680877021180327499678316485072723444214651051272814571364856693203753285396996135397115293968511637323852735515495879910942633593106680240151545467938740470952708009618856248006118837544783032415921577509204286369184142142471008612988412988269189187164161297434872033210606019509431352823372077243705171255160419801798713110601108267713000527462242363726013595506232031668454537037446991021944070272433618889520122586690928962896427082257474991521651900891353897479712893330189999612820234411431906162604329573325792416644546797644165014357745909010030596446260017125828668864250027599760221719672387105185139427031918959637156279781383399430028626780642149208136835201103047744423748072582574407670482393125267720394871084221498357389546023768337812660380115396024093798011168192174687928439455828657695762596046303649620503191787067612945360320005213065433362691261405844842371813060537936038215859269171886898308512806992929001973456514817580311212949068431440062725202259294413050051786004710291348892834748996511316205889708483463063188624584189040637408718917162303315323115312657827304965074197204415785981350332927047790820223979957274843420639745687144116069287482279019123898013702921844413395918334650717018281430988857685998339813905709778480387315882534031668091926293067181218294412532134578934263843707297518689068883578934815836250693651527634667261819764183096848385702775203124709957817039832835696034830081933962823223492206979559457170029947026885243828352133886155922146266609781832884813503198482331619798369346628299133731129006497944018793700857698382115562100920534432201215594104698957637921632830644124482988841044286370618392817823962470845318867858977078130807901047848875776585586349694088110802539165628888332740976857451715651067899952475890284231293383564720590206721382317580576212949411977510663472001163982189553927550665769663270786183579351538252155911507573483117359179987890844069801495174916150443970897199432058435252260161266411191269177742726440090690189603580539828451085951563868065950354197642854438498672303321106243512127659604157925664809485310914048621385957498793467224457064112265765056045326260068649559481793271287874957221533364583364154878987044324863899552659423885328339031324132063129001373639696898380521552610467610861261795070255226994983150383685635006885612599710100811690822333285038390233203724697601180730877824702712714205196095294918449880203283142170301854654433695462285957901189361243790045201152239618855583375460193790568963862944263459813628244232929306734695408771827225558824915289820186213311770503797190346058954980856964309375079348199632229829923883361869684646895653925597349850852653040387443348296802827276681118861655642924541935779060411659759813482698610552173362390893923788883205240631011073464796495880622485914288922743360696405331751903710844595726845403009563964735672243886856687368952945733125711543250657121995388572592846360977025564050674003143238512720279149101978120721001211504426574358136719412316948654949889558723205444722975894011777412502460885193966888346579372904323229054042150662284385263672777680586739509691584796818689913759263481248767762816504493717204353150264980128544350058103753142392348749429198862832044476830049520812736636211644991977741118986445392281489120466351321923425359665881630023921004101529267647093571584044055178786132857796409913008644476744970603898869888575150058777514980203121628977940013082078506120545264724734000421460339359596140106683130543581372713264707993460070065443177846180836001745585077572325630300457207088267896072052834062036102099697074345662529019267425916145937215327715971196218905717947201437236251051787312734333411146731378675760284387002901726104708677749401226804503792396449028173371961532314664464373156521468150070159684617749778719411665447162008143171209625167201771673258337707931440529118454862227115719436115491532034896719602186735746123430225939599591053270225349685559055590577499473623848973996501301137795800348378602200040650406005823200028981970424758028001983224726661731675056381359952683944716679379843097008967420418115774910712660175474519311936754277427829912037940856951216718370456998685834280995137494598251099788598683405766112350454902195469444451780416491535448475654479387494482654078429277890602377434422464408200227669908920897547121517683418301630312326889872993780601575954989131275668487838085453369762164347638790020200044448921544218203510795981924913929968782095102356979105982785776231885036705560618770210109697894580450673747200426187495279067101524731146425974074357646896701804166428866551892355173397086173528238804436919324929134156291137947368101029905175937171942397609759392803163509831695740353400025696133871098583218479099678737489777397440412066363624696161301892490853190777100631058327239173479458506266148913856031273199476674107001200048077725771817894821994115471476877165885108309509980094792088416335732774377337136883861713809019167499423026985559559669435798330023690744363949279670313202101952201843110280646163331634879930493864763304283628795106108636749660467717716884012647818793581038588048654689978347019249148997653551580666312515372345345250014495443115558265884515788006816971366213661440232071065324778055845494959136984046798888781679953786874652903106701339256052570139089994110849762197352732424114673192902185635621564419412711509235926390437645009576651482037938015842511714636917106052250121346541509770555886218459451063279068359919180049683402307218790309661937673420207562521113710040014420703600135269033450671207440757561924428535459007038587815102851627733371534661817029325106241472236406974525877229198645024218207087577871511037492676990122764336234692527391235816647428458108482725855878289066620667368968839662064852289165156462149607250033763630848934903586162009030148560867111832731540996462788231741959399258383981264879780004986254966817020084192223368940495916093766756299284013459370299030015432162259455925700428165303874242275311183580502782250445477294518479537544389483427613669922287920721342231303277018684716662593087750933286443250731011702345032653221962011798009727891447494608505234182570146674903977948254809606664294339334192537534157051279018784639518217890136643643297434998973030718932279034073607020014786067372574015142566460398153030876464454202838985314033729461384223843688988460760678752991187399214617755071082354203480854042769857383149134170379458804321930884559260946760771306766327439885348339859788716600008087031708663245149954031849860375375082211642413172311748736766825528483243161689212222541006975196330606060607434812715178959086659909818904325840730305251811476048326833911120319672651928487514613904407395662491716289638178081918697203983944363201604473521722988185476813677515592850044845974257090175727663599800059077652133673301724371557613952881153910341354506884255739466477071953839309787109826747902488075055290260332114693112961631160874030636693927194085602732718714115007610219882923369132860343430647157971812110442267103887860779408693990669077468074200065795586948971233214846049482842681857888189267923565158626033823305858676747975865390650394446827779198453886792930524632662663148494830003671483920294009155709839704070122170830737764078356938034944112882432633145651923053616284529741333455655036601029264649226515203764388455690515093003619760704862382318910697834277849608352224899932058243100340921893514839526373273577766398330898073095846085413115596632432091397512312652644745560219524761720115385171313637364786613640969244263710566967503621936044395359752024874352968918039206881384471490931321887613725805693289204273923039496596591007451175962603628625713313896807432082341604495592248930064583978471465855564859456380361676975064709031011402164916083761049897630562387247573697371768765426751176975793345871849757441227452431068895177394445467952370042751422591383882234730124303665446332631797279583766384462011237917693959067750730486119053581920107773289980024021608419191312557226026073224612142791540613415744014568098869995332096447781886797354820680719081792804443539882820170562885321339121317386127085722647084368178466249196098227323055090983939061382794948555716530644368141447413226245280483515709433074449578662708703210982345277179193909071012764342685445761781395397010811994836422358017011934183413323331840572252284031420394205209909224457383501709993695231091873637210755404441602471194805869576226579516113671402495408951382847593340588831939827617647995828690712757829777331303607607823483108088185662330656647416850271697218344861545548611289787279867987936826112832811358405593357544969407101265120473207581787510948121407973828786644699133045436181300516160295785865225260374526438868133262307402860105963845683825694300159100920558092257861640447727084487779613676323256900350076608219240645017262247545718498262142541945804805449358583929152756175514638663350336317586163996895986785677380082283452108559893491896730047569977809453487590765289713703123463852641422299978927732015166156558148902682109456343884813154935655878951131927681398845651109213010479300587102924226363952601375867807917412537481095831029120405560435644860680570420602983578614395286543992488954755268642614002655035089962166102543222766559476065652823563703660499079476378215436773137969299579503170873973136877541708496226485476641092128044346221419236847610823211177468709407729711275756157499449175354195526844962912285432953244451214421640443076455542526997537378524726334061292690643478235959427050746197031081164518490849195222020071861835707458730705965720196532820888881190293295767442767368281297587368133003272847613187468647078953499723826796565046689126153838879602130329922865285260704729180450819944860769859566430040832478881466604298724120540249490070814920675653621145778067805831951288470920764973934451402974365456335446540478749647548276308772997185816503806233911798038066498192724240913697451167526745258343921989884204697013901225971982356364100439743901025826274467883652219381283770428612464282081531646096085141313071000004668050183009548247754608460848670467716569964815384229507617926184855087213899733209172298786017894598387036396069301012121767355334957108620113881710463296405580761705254941207178359679476351217580827260986663531748318419229243437710175951605938925970136732761818962566368684419510794065242066306981416757100575823971458899171287175228157115620235614560659350234963408121310026838760703453302227375326760765376047818320358981988838398607709072259761320344207120738799280016782216727616235203350003189586076231637934418570657179155007182111628886707071270243056883878693352084674718021017587779074511360449697884692115868013492231522688919104747939434658380912080968697118679076153058830605163309703118800144011752282927890567638793464788174247296248064440330045206180245147623739789020097602425101023324187171788090461140294913526164126743078487056096991580607257476332048233381028008520264758141458901466306270997758221396667561776070414960165239263107828140801940562405179775124511837932444522292843161768942966778966710204279510702659042464060023964482018587699028268047954202405400857541815847336239451991321686139674861684793479686704434002474089780817580828804578997328487698828950269505868156180292387742595537923022671288650961706935689425447611096903190724042158585638234517208688430834490675704424048982306854164387607795526223254970150619692130901808962388923228107289701104550193259519033130241961381932482473473620090328736291269522144031798762517851441302728911965504323489581708313462916555135195255496751741472593425314688869311817629985997804579413062169842745206380386256078603944255435961569337074050215229961311298712051003437792519450483249371691039303297403315331347715107366941026296701954867273517455350877616423457008743946216185490657433598504774759966880409361997984637454522069492754753067058651204046630057384907083266590064039011597223928183372865898053874392798871249158361100841629291547996382161630250350836062696815021482899335704425866157690645550784137803058575599303702852100031151975802991563146318412774587556107849992210543404315097175293068563448187157766017486733872226236638464679766368924894976731818521540227199514878437874185832169797392471748150171321638617559286524002314301709812615757387463494060506015240214309782319186465271394272638044603525836749289449239390097423320605134983528710529773513015575859132207311622511192971533826964034611732834142896514549489363165203171701914132752460356550528428263758291979042302363910799731568083035983311977976452378027684660491310888700734623556526886906662957311601689411550488625754224257791785399476458667589471209318842610542429457000125487046914095381630776257151379510148208700977950524679337197259097343457401285479056821570985376783186632262844011057350958601117233423275492961493381529531275606762649502165225236129400002979382233496256794514531636495574834260825702413294179191148476179851516389472285613330583344059411020500747602716711696301350624177022883435139231230574050487875462565378846078295955671472071683864624144529896127382890130995666595151992092359950877779088520158442053350464057495915814835550785510274410476878380572041491072939768165288984182170629679813557072939848327669834893271351800322643079858690730163349128903196777387397664301263038178363895414570326338136053489803726944160442198376586843353270372742259726670050900337782033726298716401472500972209266223475607802220675913540635279361218367090046332039431706697766610258105387614818619124976094194777183880654165138103936678998629368816355886291604854040060664480585565503580157871066418902294647847844511123568637415349240780698973426574970240769011836916745190151192834691763698863837319620965387449457361404727968860021922984633203754795798048180211074457040412795731344173232635032118833661114320117519759598947673969462881069212883919312494737980529602963235415257929038152069648767066675271261109799214502512886129837469825143962226304927560940595619021917800978102582465676387623977373005522562938344502768310125332879217446043388543895352233738243346763555044439662572559339257552049660715795853745466897401531323726908930367321994118192414089657910911090721347822295495442070939248330856692000150948380171080174713547812263456557375100474774966422472147408856733500955435018305776032727385145655061012997219454726706228859690158280387535296070467998134150986263364635278674372938958719049288379148180882212754776036901072543651800096082631730684957553756206882356678993574705897790827390510146500274925228097618914294570843996894788308509258776513372238237426170571634568043973038110865671093345464416073873046884038836923049777279785189846182994686390665744510904439495216732604208207031370828055102088890416750956441291043805311452369028317409977243389632144118102625332597426760538635823325360468882436783189258379708339242721439915179041898764843324083567433639201996837808904215197048216564131014613851798350421417253979391045353569770703171957789089305081420838592181646959301328397745431812267050350315244431378124469319815997615486220994669272882472160116332456603697502916636847934392647409603106878408143117309110370655986256376972983396429746324825956682884859339289532794483179630234498617353596922812596369670155183234644109960505512661781762819280395045407877858154750717299214491175412403090950507373013673517216991005427731096822887935531882359677496338132235087806322019434426249968323591973711458510905731815655643266397151312198607225410412993518512957058782174629327245880123740996070983911340517459375960293196887050321576791031426918384070484021896551334186056881970118095289457576771482046091534478418168468438847482711337985033120822628111171378964597879515399085658487874172039149055878773003842077296386463958561944541990623139091043990117410550968868700806770846022101606318101067287030620458503587238124662489364088764100228651993403515749609757098824645953107250281905720560086237240806876709274075757082326265284569552110182795625325393705613037110406321078993791207835027340070869435148349431167046535087485237488251571599427604101743186165170384975190271704356575095920309829928859222689657489296917928776161412902045983337528618584498764832894323910177658636386604330724413300644262823552730107061858245908126633736083459493251422632308750583818061857595222504166988811513771615921959615098089907998644229253217885997906967404638719902238114696992754799350794335730547189104079559537201378076293022583006327142114097753510748251846887305659389785028002832905703506085717125737122913705886363310500238147733036328002543943781144724165419205451869688150055069536089533197569684755963485520653834050117769352852685423537152067269874402176051868480948896103506317968543783404438810806277889869102648790059234443541717167200322969419650163825522412182993933791035503676001809360836819295502302987463260743072601167000248613399341016829336303706001674146984803201112853553389998745468814808573379128175794159937224866952270185665752551697665782447037415364772833365706707511135555840953734238169439024126509271192742939624511522632517884993766934598977000338343026710600297285088760242296705586012788358187647006585508864198504792117763345001114350302120087513514322348984799886458773469727342506475938423940445874804864246340811672931280955224319927700472778265777736491745091797428429876716173436406869599161993975110730865745115868900773481684522793823217863302482390497371879336193087362983388877897826465330786065236845624961597217109847770033732663020554093400567675718501830241948730145268444460429367117563177978799054357259273059255073755751555528672831097406075393956099931360439949378067220111543230950888511011945293273282715762763355213667346838030051415550639783021921084757201890024444681865035635751520040688707325992780181474048291408048124187195630512736434766514968450844448430918294234206205143771472160221770427664572168153513493353870722502886908567819152270976031981212638421287327377125322084885418536704818278056837489954513868049276254850116419539795509582306234142959440778522905633615693103217045312766638433868406921417810232860864335657623454189926939700583819758251581014416248101987886597331105925029822036098784196207483097869203914828484617253127260078615290915080196596399909675388952264868954091921037664198900281851696639398182835682348351609792456140137962319716496022314502518685511859415316521634655480584473514384423682412250833741722222878264042628850801894550954459666653750200219154093496320734145530612933289069008217828517484906582169109774518972060306884369299703593518470843704052704853091410075627113618317808701480619139765794179360231794028011541292529821455813204999759702531299183825963039725344576094847328345945038836510865362394522193760952803845657847802114088880935436215634111770847681648406712458915632508285348537613122684141017369596099645453890238800019117950818649800363132070778841249641933311769814731825946482905068459735179007848777848856395125767157384263812318297090892550609798241340729872630470011600698430008971318540239978458862652472550075006316684338979451864438552436105299977340304470117949823977357906121904957813548186651601112574914798272372888439740607938738338120949159368337044710246055634739895049945030108781570708524456152440915797769516290899592910345789510512131674205139248312496557028047033998053714383121788766958081812173405896116170574571143378954357777977547580953577907411572421746941097518821010305362188797613930597597136651707193602928747346769768242556988605191623578280625714882616165085186711262118433550940118906415998004415578876793366051382172491876646283244394186629254399201980124089644025819424480786922117673685532943302944502992409871613824692538601297988093675650462685141445240310885464062259800742654305594532827224085747382604148507161854941820831404914632698285002962936179762984316151259382114369500492168044478170881125309993326668695974789428722357562016787318754830623472616658262025890535353345446349311251479978139833551758927394380305004487015545724545218709791076448365141201415913865488909450810852941926043657609266587283218214499912761360083568612790847240842120144167288433473633636656591711171657523667642319972445703734509738090928094000804055466926167638130887019798928768091482633861735661155546718596534929312543813837653816136915657992619152575129836750409661879239024383569562042480985654613570584524776738632359170876421851204164609034449985676053046570975026599080634053212816150505274520844804590954218276033964331822524122226709708187073518748795965343929325422026734539053049155709039200112973312866632873215872403058952166205265090513637141218045363232934882196286083352732797705975753195400580674953094648768706173794983840000359659410179967309747001241743371922339798556891733311122659370539208477427065575477111087583793255571199099610750002631345593528994257010544671485753989720525266301846931628390909331374857915267427357420275528131843620283636596033848341814673139718244886858674690948732142232521418716838660956451046681481826833534870138561946292806492012731891726491382991899458872022288653592286271087138898078443909876662607372683127148495973288880317112377718010072014204997014257529691439461336359686695556642922460887733670491999494111363098800079545229289216352954388215295993671551929644677703024162254158022606941290539585445689650877936510514736882098245075718059723834338410006634751998396354028794209599406434970782469426879914367499622911140403831510817732866114338564578346640010613711385010561042396134887379168831189437470318145176877616731035588956929381658947135501964345463772750622914119160877082260473689646759901970806991117537625572615968917543882693665061921416829496205391458506001103568978101736785586083359294451295680486616184858686507796295076093293806365645293884530898220414645481210359862176694022880611066056159215119174529995985689793884940355839920660699021424473653933005852683109722536304157338404414348822669874904628141546399011905739106810119744570123825065157937213461758028083136006732214395684170931363051253281397928392425290419652877407739131714828522269305673743155413055150302207431958076723265813457806820640397828300291876271359598284416640868134025374955310807303777083315546281752580197752379043524659569692428041657432292880712706011016137048046768474073749783760904707046573602600926202755900208335710329154615804140303858427031277469274505558118975505548261784130929867889048003933575889727539725873023350878495318857633755143168642690298511574340260838231822760860169165178241619727449734479439758700291233329010938350821073361239145375463490227530921366448731168531318620370591020549299669454016559942807269877791367256304150927303529514765679651117538659477820698095166436935686154544067764635576573857609573392159867093496463335752117135644955141958508122758191917155989141475645260885063529046588231457353861561309944573814134057374458104782391747330689823895902693394493816678675441349134932575460247674486631437008176974144545602807397562257763319495614049786571999065126640471040996485762982065010741273704557858860547136071674257442420307911781521243974058706942587900789039931686783637254271411771136176919439275057775998228707598025837429982619753595097974868183663528524095990600141027989466191670891395323477389893515380614521380887050603327168708900047108195323867897688713408105386282092436116088757603246168436894812288173478844810166534560852106610720766006506806913235198486241675117939075053043823125470389282361930714592270796023246003953551867217303308933475534568604829733812691446704467077350736830019208943588926271231190519344982922072973223242588081084435020991958793680912226315132605104291086592154214103803686391988477260148959061786662551186730690747236602207917218311475897854061936606125448537266859719028663187974796103136668143243783664210953860852082695134506844430822868503635381678668366102271777032876859679783547965349413372087110845211893025090032371974870188957930978792221180328518082867352115698729491748256640923654676590790343433126988001748636558988332490052521979561786811990179700291534006430079743920176326865666058496658246710689066011300179558977460986619483717091664107180556839323298192668532929955212473653145347161870829831255516408751739775044118501030652278167538309252346707583128576026732484827216718725417004645133607636356705819781263733510449255067471848696920685252243177582906812831506995064467777223795653017253570330475193314165442204670544865357232939126155422824337611882929543474753030480356960322012176186738124934635735538837795617259000636618709413824352577056339661713658612458481880826065933078177232532635833019483767489528134478443078090206629791181029205033244879605839244701435050504061624095729591491200036644838386322817383201609373281728490789079124723441868789191798080839946805143482298605181023754964109846591862860481502252714683624024466827241890620373809357633855094466940744548791481711838535834841013447055895165937916215313492313992206993382777694025232285866062175719453682183576741656787962966801333923056172007433248971346047744487978909709062830446896787242475038041288119957934028781693202920182559016152884012521772083585879306586899348467957131441875395657640310341276844221282768995050696512805266124823112657893860506066322233085402300829659362233469919731981301962618471936573951738981289433942691575424859563891404636747160524040996148556102365129983145513360568563255776889241734778459039647113760208284002526862622145331881602463903022306325990448562099109792694145678200839546059605303864553830505120583725483939819871927841145087027474367297590667243432079467980419579914852125382387210940013664085223159207057078951577622257388501497652619339262916304705299914532517352461481400381573330822310640122664799962352415913197948671798596835379619800788960305714409054498171306137590728810282059440251528444819609142942541207225749712256066373461745501222976447487637181737041255930871835354134807624648069229418339633492152690877267063060817664507328253711617848798217703206411041039821911487404336113721287096104987794899511905567775577547287148836646215612488272393995403379171731946261012094078369265953860326999539702822078589191370287968828079067357892396021281763796440682235303618896929407936243966135647369375280842646087957968939002670320307038683329812001091689394687136126055146590018566248460935882745614062231661434478306401805742333896724459146007900304501222118234257774641861881396994257242603428500938318049397347441181687331999677489160407256485443006521901461861297736753524687529038455816568590630911795761074927138678493044582323452860522546525632411476081862797598390869712425820925887641059282355495707917249776423374167600295941876696714906652424928096896552413008575513172306147943229310021894041156441083724399778864992687911893864575754855881153982197775919002791976554163018142235353539391329594604193145961255967805678786265947956814033558974447220279458373272201632178041638283443395324391438245768098571161654028783677176952046955048740409227192808661522889049728290657299692716745263023517679215517459624303686493120215409002715154831721291139457642173165532209965644161840629053006840838968470470743856165810808535146473733023500701874678308638203839700015453800024446665343737151171238675177270689696009825929533417725572063697288786436176334763159165707453877682807968605363589880484720678404972707540340337944989490230090407042501282325965696773618014712864580181900150635325351582482668572555199751890861986753261437188374593758264548535308721419155075472494256730103747202749594563534206700565052486106820773296413115131652449379521629484605209669116722552723868743551040396388749206607096210132844404568392529609761659238368963570914301329379891970007463034000856568087397304085021877339931257046855376085731727781136114456613044340227588480691659636269971673802311903552837591844177893833688222293476356748016086456743872759421668505747887291126206862369258064974461150988612101440129282170811469468096116532658043546742604924992860085893221170666125200712134431099707262963403195849705679952705421793078926211427237906163792728379618010570632993562827523808337339173660206914482921814139823268955293128521308458690538441888682659225954462741658330682816074697961997420352913529960760688473906411614604030963694152974084648021650459160856859590012744987089352675431401841485749460685678903296003516348177209893904137319404131771165181994116024642098048269204199740501392653994786066436194501596669915181290669494277237883706617395657874793704755594049635437565929869887034334656545279841434601688902454529652483360282488611191393942622299620817914639306129316242999939565598224708689854342451260015750568733054391274217883263749798173723161402112003665809201550389748361674510903662134465701765668030737877193104435269766914626845708865154246349559400683166159777415674894929012734556801281856057555950573607619006285824387340000840124970473318233065109191276794085273115686173128090574402029251301609561417824025440617647952228956474722016602645937675840682675286994834731641319421788278885446149949103460731125034638752794560825163718057378836124350214709056907504911781647829664410196866911805813226641258490326285569125078730032187195415058275079495644955124995248023922605362325485711249570049391270676025257742753175260166620121070779087213314019141860514295671601010860404514624253351616576137512824175056479604002518117863451212097180591672949400805512011913687319581405318063368143407699665053497552577064992588573586725873649188653854398026940363928121726180742082436994368839580130276214442476103702014514571228740134707914438592776711860160265069425902152981679594154015074763460768558664264419097695323640663311113409194381712166370993616301490142494215460520413776212038132762087156188798269265082504756770004511949973381507728209524720717786798611097684495001784204427521738189636439099170800946963445423959998542273891248486742450853205892340024729058971451326684132828039639605771187878048817124571091633853438243022969006664795635070526845733097845561246207398084081170091457095837924236327227239631886124292417655862165980073350140377978040440578591870886305779136714451831822534257703318347025377317969779049302407012418553157346258851788564706686342906846679181017801526590502335136714046115281347739105082535876371518016383153572992853930738416430021222024288661697890932689488587994003722962636647812836013153578068356525217071888003891335228124230943157614398928459397790318069587055345242421147002907902711716560832547344051693734149939024143460079698438876333481116497099093891414583243872764932515956677969058510056677273946011117424647293217950187065541525039137621359223825266621437373570467877944677497447387630885913394374569405504779909688118651446156677343180104962185617637395243916650544975711110126296816303428590141835303784311933923586346884199344516308048776580082146369947195686599444941997638412468633318758293937930623705175303970037906697409900279671837106855282865642911564248519669318855157376518284959687827507851411843307361024682162525523112392057199481919592318955100995919868983378600945105197542515846507108733529029167093730045108263465527435901580208221396041832502589979462357366206450670246179627408999424787965066582617719061906756270382439357375723808933052817121713188025530816345065160403756949457742680282385822815011029605176656576412788546438838604836128124786342992781032603714630832926617992813725388915422404672917433522349647390103983176359132920552624949194679848240063561305804158996908649294954751258065491827290343169136820694135123564718512521367024357758150400840257979860272060754195094709777049465712645239970770062931064858758710971846890551173353698836621631189991558875471397841203759423465701382452896065586637787385264391419531853765804645904144422295588779570653163824137272050756731466030276102615747054269239909656098949826960243602862247467537695322491633518123852566796674094583056492855866963724596912218498736639937389706858978984530011460388091288616676044176875356599661761810962201696979225432032650243615780706931507795991257075908380340256487576022291164664432712057980369234675956863295687027679164433094227893409887785258688482183447868005047461443424905872809787268686632254058932004656331758816635488454914610651550641035621823619941188219808738104711350629291059322250684823858395661016291132864323293427386987085590535563127524131606618072117876380578951410544964984728390442462460588868702620744676376926606499039171391969853037543521286373352612832998337984128008784203172535686756488082960111173265141216178670617653859832413653871898915679613319272085415393179905690858891327327474658253881958414426050366534071829675130745743374402246539881376442607942594837685554850144736944675859765881892179339306683742798898995928643149291170537594816504277565658521818100628926216134287765793717885741351907074794909382301128285021016966563623371700811029136424575085774825321639595020644577400203159840027438185871122418660354195273477721689951972451225464875407593176126348957199590399521050148329418614256441443384883706648241124252030044149162453356574691919539068280560954464781507661472015991311251691360084714797970646689870285512578784258100614510913488068344987623455868079102018314256550714106515493906320488618238060552016681500169544965684955322361775030485465280073838163044174587309132366273172869638890269679092780485355005294565337296615052954676650688413318606340032599663196730113587181260178349785043041990892987690690219109058389464532489418849580100938298579340109676882874739129133094196439548374593593558492516692022771225176318200600741217837526819961438903714572701322090495805434081426434919837498285030454636967975602604713027720596889010516359887616124740116614655230522993194068132620120397586443976502822860196928841501661133701468388799908538666768047640860610735848178835377637071723766544363852049929027740878347935204375677351306585597177424684005706260432487396410995988698688798062104325732061436098201609421916423665043389640302530417786866167899690625347099337902056466581600247570749973457426252955838310582699667178679900451673245377423336921884213837634078163539421178011296745656895494494787483156587565964452043636954940017880790707134285373189494823268177866319807194185414693516695742123310428877347538656101435671614294392170029899303559051886037685928747803901505940408567632823046196983429646045262046011659583336096820684416426224842413500064681100365056620249339693793332324623426128896490095945966664776960083993274285670278236739244207068597180504692626443371746136967399853521269902205442492516487237929618468470180900443232042201706499853796650303094926022315323858645499977786361392077234994949467624545122801568844965438431943453606892287208158821501675382440180170266030630275870714497087459605849151216628721759484813811151897448511638286487664680711647366484526474341009062127951896199728291895383644601892133185365965455325349185026689331553117238031693405936046493496179978773363928923409285583810037926290867922904634606966746569120131256405558108628629580500989830427933415293879255436859016927450628145533687033971522586873674826862216413702812283711896652741235433903939535844531053310641050008949081995525905993417484838307399389407902143658385235994405543312915225074330862838670856783888543642320344339078253817789601934085014488018656474191764336717279491367471928409514335823030245775516784562772364839840815998053413173283302415248325662026809133990827030108851258860849787929576763042654742981165638274695329787240187699104707969218428982532707390821913745376212462941635383959692213144934230825069835592145661173449424022184636555484783753649949419919415173447174330208768748862052423273253892345498759314266968521510417290921659522087709179194439602742242613422891484368294261600055354753812134892504466346945639347026940931772277447828411762533410820960099046509959332802432460392479725170336666387617006622662903501396409945673068355815843538070892263775749200322749159045939191314581438535922242858217272597608646564421061114472476491886339955986508540151270691337606996206323967697969220632738199714383659776819487264600289057091319860501895442799170529056404642894960647278562483869768810708069129781240193869492709266729900182545379397171188250958179172362304576103807517627913256100181065280284571770286474397871977652192884306342605831989135348269322144397728314629946650461183618403120319987596568166625516205630180656388895090723097859275813557506147370555024541483427150197108058036803007286947776178544639827310447134679471737565362053740687044873306475007680914399364168202327079773356704779008366750502631607448959044787141559348863947365046681154605693769960237117689769233542849195034328637079302554964304023458344335582862476094618981551853393304272724407996714774338514315093854926662237925164525499539060536820780501899064022288309012736629304656737460337952172631115345804335997781956331522779114314301157877276357926327322769644097147633161560375267386699098833011793629484242487757836416209016912112462903441229898184879986766706741811926234358691199253988390497913023280523387817199984230199388273186827944076097958454546018936915590854300026843110605546743645396147920361930110588924731748202960754659969472474369383279730494165944932764311676508855356003157662263815956023416713257807038462310105166317369442571769663123903978236190422998089427530679549654436830497370119521456820416955156939748112133156503870430558107552980787935142338943756660693503788315801900283086696586949233003745431157471801564164531595452065886142589669420927572570560298986233830642822398230877866362814921747373313858525285450089300067613158366189723366439617696121282440959960656149010747723812706581927837458631946806549049638577297545346812442110447993187804453924256041164769485469237733499147984414062023753326531418592301633726434775291204743038893215256759579972952333070856613729645761327493089900035621512794168049619457171618558120123768445954478505573251719007472008593046845635542766770859522797265504091720457916750875620557734749091515581268355497709695309827719691404540993522293772379032979434074517317382355244859477054989951749204224778440910604373970502561918266981523141643375154890214968667833465815351084525827621704851639929897933049443650854913525105124003325116624335497150752660353867298406566352171479834754930424527033808820777769556683004328858584755378822466098367961070341551762989300337348772823701637257575352198137723013686555755005050078686560090981900011662761436762433314363175390149845326217874279857690170913824812700381264002573709890657603523404437204294195454367654160188785803145771508155445597782971496229050829894786681502157958325903207838550687874299512492346255225534778281074735416045848839595813597087325063759767885426497489698992848547026543803456495956299590601961429986580307701053700753623070521870143694715471812221786840088494225143518824290795615617763406599528095279727211001572814507138070992580037458708663407684579159290220584152684452982586979027197734096545111085986273522343435939407192466162695633131341226226167356136262190417517432327801602460441024576476061336427947697724166496470034411715593704706692739725657540432247728451791754471282603782544955504553697275061764592627756116427432892080553641911426824425554277024281073142527825251091652981238663041168556323499558923050289769723961542957463270971036732891336534731758002431538147558839955103123822638328533087133585827505389458768745681068926122272347068378057469392746957415837599918348853217365155215728645233802348870471708430313858691172100096053085292906679897041481913947265989510356226333455520320256758635692782545500305572722889245133996491167076679122862571605792835443547593783108557464217426524828041633714240977365067965954867298790150433912309395253876228762136471420266035852206345952137264326411399216396420678355008268842197333351990464501617537711407931155723556782169600140248085519187257780045206475724568152576350627693973460326334063025067543792961279450691065445128872348038956496808462429164473995591993732584991129000533643373146246016171001827545306933878265664698524727644018086366991586247496959596688518562666611909479737319823170112460676674921252512538090307618022157368960655852359991948693320268767041202556315963760890031250479234075543574396718314677467236563226142793466080825282393914939022468529496365631410583048744824298993452841277378484743340507320858029648076672566901230851472634284437850596938649992856278016202778594819067043249850938483421035661765345773068886781466113922892441782266702102999486430750109567791287389805302763721032158274694537097649839286004507709008427068765259190419376321743529827157165405803268955659268346148745818967038062221470506446182146172898096869540928970776358576727501354371706907327508064198812358324573285088442678277637507484958983885168966813702740228729700635211484302317859734571551425761326961675778043354960650934771039928178584004911053799126437289292194301258594494209221710148726576034009187651649087706002855249565015752142239728008875094224923469446447835083974967923940984303117137560026430502162470439128952465767212381056200039312797559926475730731941571831043722852107641939172915229994766854139095215544647663290430837548479870013853924698350186619230398990084223860605126612614327029801822928274014603840447148455437707641865173202403925469327252478210308785137130442823695673991318603537425002979505634921850252604747371906117949056202758940634003050601966748976846018046789495212305722330002767963079420446166870451110448535212170045806872487139152434131115854436988773752215534378636104727966217594467504041512446962058153182199501883368978115590551661108172252231068965623517568591677821678502440114938188886197522668192060435900874765177570163536306769048535447571531993383070299929651208754337624982462279461252073017615526173416928293565400017852824147121082053865496329629748404165941404557626400733015483532820289294467823784672298312184967138847541229715749667978291136041337721014433311663504994267716202274950636140364036074003996468982745083660816009170982990885732287585475867791283043028846151776680245009163481478384710800195369027948473801391893718811415014631587944436104139854763699183306859507071051792542165421995705341908928935864701611434369857341778858787075811703701125729371723986080213104634591983986959189349689955498499848079625951473289125427664626258149669025827981678353575906699919923150283099332609135631447816943523630181526418313858024311692866037573052876952882716245382673087464085328508271425600737231877790847299128676283145955155958267379831569648808825612613347173286453626971800956734364220668204834028552189610724875106461648077649795478781295502052270928267873904703578361145373289672978671842201828049281574673538916813437857104487930052840623381780318580116540156322288013146907665017595872159092846854667590707336141831313497295261880984747181158842055427651241617701471307882540514068945306752455150111366371186061915030832286603527688380400147720536050158998519006213667925867693724507379137916758286000372616601431765072129891143427850281289527035941624523868858162964986707086878735272022952301579865824196036217282908158274693195108593959718460089597242626752862549268736219883847676807779110171773489785739812677314642957803978199999934016073361021187456277942004586531197871583404140542393490764761400849382337965175186531682088532428394157757891160848916711639142847457077002075699916083501572093247691115359750085865923792295363557240548792449166116709763227499597385496698377106891924970445518318151162144226548083565929143055745912626709704645507154700671028717680692342829973287363823613947491871743235409215903179336576912363655943473943789133119784876474881933254960768515737480215259895670144699592005510778389957989967126169097218634299544178336452015624957315371289518603640270754313370821134099407439996640178339420916367753860541188653166448273567897513720592450490898917878768700305840074565278633373535315743394744761574090323179467399273887278954859154929233730197528987974704253630023923792219620244249149623423415941477299517386417506813681689590098977575176599769794263206023212803673487467446786366033855022890904806399572155799743644678766218017148197276429444075334842059561697813014673092491041117015499518632107834894053773460502606467967744255475179272083462112224451376674246728334433772409589872781023037604004491130848974532081450269305083964470869423975719162493965241494214226276831769294157195593416821518577261046113766543003804588998665490128568750873364034216194559829219613601033354106557749179981297821758423481529715607940247713883120263279757264887907300526100544358836998137256718379854965035848920660340362921313539190138160263299847753528893082153349931080518823877422397944667072926461581589480723780498703306174523192884582820193201654379908917815175595084649657253509684737754311622496524685800861162209820520579130232364879624654555134310816460940209324328712214618234756624318354109542339735671001911808701215924735159017035370123871387658716086305724431738649851320510987483436736175915358918249931548287608324551384854415072582442948657221439894890645362660123987537484632563890581874768003952970603538794375019472891418713966154373699986903668029969769693038667743549805612268786592960959576048939612892414513005082598649441075063884413292640931475771287248605851206125686254262272941684393302077222962093915559757292656645903152692774279549082173610349545164138800111605267736361322652374116868151932737802646401505069841878639209265948430401576375182740282204152197027799378919675526230171745171228912483371425563504136911394075061580316501576906767766457604682540487653855789230653226610055123060409212473781329105394814029991723733499344379406910623965394770473908577206053486715360811448368833804835709815132064640446042197826458492137996851668053834099523632631960044604538828268842520882527275854331652617184717208536334634523721080202709347828216060455191308816863331838590828861017906863680729516993357984422645320507957811981290675224376617993584211514480404202225039673688910954829009329668147854685453655807183119956631162968319062203050380058638874295194949007694555070932434986192585569424959692326116996380398369390260069589156356606409941947291962511855539995745427381089264934981668119457634241270997913253195595559633510761412199593660285097534587469926477686532613137265733195182751146404275800611549081943120135832232079128063409196134753550073831678373509187277422546330844796874118722592996117139851882894955795523301163935775251612472622143720077588479378427892105616512956432774156640965425181109471982139844589602349820218578698217751207090499161928592251183491453655983318440597801722353284377995779340681281330437264656430357803449490856936309055945210754671890848297955508895621135714723271204225787145831176266658821325294793388752916347358847458220067704623472807164228925703733848455233688987526300936926029799693525105029466388856807706484817558057538932111048157219196169730548439354025239194753777845268915055728727714141177647780135506791609769865495315659932430107004738049982854142045321066358383352917560007900359656908924627046282461273388062158586604665429383087527336842899273577756920370354355269289210137434699141763591733925615173973542922889420724759471444748152586585433485058657450378613115197033181310080664194728379652676581175954876979831732105198969271798733130282449828832692378155748475890671427215111375507479494777137044541689686148437311686328666966129806540202474727741967676498973450404538381673147081094107266271450685208162546317986596273439161677008401652242379489429486583689620261482030746602128739669342100121406690271521280245365502178989603520139513952529281910469794956059877027655530590961487858852661334806947357688376329777475054225410966258654205845539606818557547932433748151594144380223572043051092365730416253873940161753722534638450133008319568630302032981850130082549237609796245710216498729547748741686157272221355031849818963232359805152964807742891633999781863406389516178972125033165542281354485326549761138382492907913048662432012795227190023132350647388610997796875170297596149425822875913002004385352919967663195380694482645098556182973963301636599064475177827698395679412083295448762579904318971100695020171129865191445267115009700963030399966885571948737728615932260423724575273760026181914944581553162895065067851433623253815716179590075727955073445541532039351306640286179511119408854855613833934854687661321946141504291581928041417948544245954354121277962633377069752399836644510602258147824110381056485302820431635389362734285276151219368999949777381640933559616415981459351182614461984851014434895465428534047419476269594281076940515099787004156564154016099662336557984347321929643325498617088745677014398757867534213518815438786567077453492467401338885185999161449780278802654665821850023308642078297691274020188467364585648347318165055334743677291545595270788422503398538042781637443834648321847795278334016629164659503914453301813040600426627105382356148268624821118984843300980487678294297564741559211270818487196101665241332763572433190689669005475764313855670718528718374007064813897761383940265929112751057909307964981068652223419342627292001793125231702574289337167424232481464004678358030867788465326732116018435289889952056646381306888070737235731638154378465989823569336699626415077150690859348465438051915073164910850449539091374290540141139646007170106576571162918774762173796624487164608110381026188089208488171869888020792583971768378671183583801567801431539123125476567754241137631895154354009267478923610309386547385753328776684214934428855975993451079013203037899443530386145494787499528494776193184995118888594243837556200530595318860067379650251650732689489100976031407365435418828374498847875869227210675704237778920113071838373715046031582183335060101696257393992395667993914528575849130136624665356350371387731723785562797518104447169363275099315188027808839693548955808319675878494542937689329822153567521557414406148542939509362715185661669781928234476428369072726743336704861917718386039197003005352735786350934112646193633023774686736100623201682637813541689876243798514689425942090606774847172857222899297666134019271485302800692236759474511806599617634134086151748545495624425915407449778645345627364975019736868093146359650919662331109509690890778068910146356907611701091755194556106179978249358896246421740355614816301131332773397762179062095066966481674965575552406426338976397442236518796850108989999157519366635252538299470970760167772334411330045315064288752952536466578895602053985441521919825959788726993935624547085689590320296996949212856339175767804309970590060663884568211277344718316895240948344500496797519892319394514596877764589699968300893985637715711231392876445366641267272617317301834357307537127697215274166178509641732068368546721086844772175659592527009538911001982313363458599636910574519820890858815893183486262171184259234477635889138834250386913612005385175522420458113999646649927784773443204505450473877133041111468998147366450912251928827022223051837577159519545489303424099478872274773484471810065790673825755021986950414137846009205019913039233912857938969551957573281935247076702416119851439842961296038226971178540210926684284532799307157922600529515306191016700524962393237587464502315292591791997627953183202982752601092973882261406082075257693705801406548599136942195494471972777089347631674460171628413028131674313987753672785753943905798518532461916619986623522571347730233340385319327344373348504033034346997000155855740947871328769318208560263329039877277337145761345265339988293086416790318567694259540983725305824265543489269925233803406533319046430166302569494679230528554027078271342622131336242080189002870353333959963554270965769744258243975551054900290243115131942143826252524526254807447201251362526587198637459531936936933328133243767904164033823261451224022217811050792418093972537779302533637863221814173834451359020031885427950025737158370147992766691700857220115491054770966256291402472820845723858847487496924291818624653582004670690895236098977873605039179190072185046927447113506267327179818228284615344722141855264408285420074505157311094994995534487419447705860577945918074882183910954758785525269512847228808833058223444583649402567743891409007870472921052480035175064292785257695321458749349805706618054134726379929601337669415492225525258897980525186603983533306772448623831626960496735928491484307248044857618689175552856841892025373449316242872167735910552178827797119339029847754830334018940574305171515803192671529364914136011417201300399395404039504820853691689662552750409769771378536093685919114349398219000572072040910329936637112204505359652822606680742318620152289412653651321707223072016813830113999068937460540310643268386051547229993649846422517082255347872041278822915692834476765633038961037531096204908785802226881533330864630562892026594508611064734751369223922230999037953022921041307086305936691961507211865023917616536532203609694842112179568159694431231053075816253097045606528117515005762931416230301779736816778634267987762173130944174340460132553166869664715498584096576167331972812668576988587206957328006673929102315899456072497512388078475775167134410874841386636165709418296510269299837963123122708153094262242422439709582338864399427578519082544848879703404732620906753707270001761405603631978421470881937232467036939290181950227990311101096249741460026170124086119937534577162311101514476398170656037922745742706072084355582100016913035772178473491058917271162830880843811555758939832956026065156836988105025566096457644154706466771843667825822255976466623641833065257896246895605869006085158706045481269411293788819756807522317767740123778352318558841951847230147592370207378540959173881470323529955542389707005636555926759796938576581422081501143585759462357968335462512772928341623704062976789735365947016820575334286750550923066150938026193481687102293788164063680586761419025745816267741445105971531293655041976797983022926426883067115654941528781931713545164843756636388604488666004976160375366721275761604125222031754873405582344227504689395265862372779345141661993292894744519594168003945266224070705093196064222960376422033524051634578295553733804083487393377748872598767856339509548906077178019482423064302246048690258563820303430514815484653116635521818252772375506055997389550286428696699375449309912260613804094612208690771330536468250719326453879903583522915342397236836846362241547225666332307294121764847506709343968633348116008374452648258306697899250178109316980969354792280748690531484432994351438126611483796478270345384113134915485006860930183360091275408520688470824991880259999963572934944599789781586041541277093071327777270337931729866642223920914058455693715465636582286988609796591930767186829324178679083596210416520572336961495274504830705884611873379415656137857592238162480496227329505787882929093396221956675867080674853236274243115916192499600232212427952750702903624984409072042555192156709272435103020589401294935147578329395184715852102289394219627965982243930676172396169112648233421449214770926744874131883048112311809488493589537099563163084947372212397161273984547518216143391930036129743092367516856644129259969544145538861356031274666213878054593346598786852744305363963605608401916011817584711649080226858309370721040532817593168274188607553604660357107536189426937796924589463716650144538688526419329158848691766171627525198934373279943963004970038479641536169535861008088288539742051790591522265818922192483931408238941723109026057008305575803085663491226229536790775692827770884194426090950543884406973710374561378408919113910734250399887507119869096830496788368255834182411186061935694860416047879938763348396714342532379202407572728410476334903275778934117445698950625059066745279224809081746730553004995452908540683802894656827229852650625940251602371064323765092446654937870753623539694683557116402874557625886921757961864392515183568802049213544700063496809015339248420923833770408402109801247079034419726854901682207779797563105498808890341531828640343108901506205638138687762416771365488276339113935616591353896784278169807050114536971015174573872970651740644575740563933655296779085651204290480880910526554118163906635313414928296266563237462241271811369827132953235706946457710214261436100074498682713024973540555878679938422760838109925460353218136809801514524772809222921026268859632113530997786561267490305121064636223365899498455237067131973843664492370294786534349951817803481889744760824214384581975217296339242131976256892548566706620113001995462314058688529292517386116683769275826486048956400988802316695791177626220687316936475901831562589719166655347777787245054347058622581422337135794506728193688326155144778398932620699345888843005425826320062468300679827891059526372735452439398267221592548633057403949053937096029197975816049859735045880955175864904385029657294703495821682412312746707711925546902080123156201335335587703067684489714488309111878259732542622580112147573308246424260206134131856641578337272984237482436041102408047081527417923152351440767631970740432148633834312267103812070236399835693775461258892808355480857691798974255496851028514038362786399463825317866192892330469607065405076331738107707384620363888956033998068422746724609935167320085446159170047723437776623167705547680743944965066428283686245651203284087430299138359954789373385684739500822196112794311307223221443150483050462602002157250100445979089011242083386371700304090849989946857161796603416187174589836592627742910382445650443568449531593696229746751516120742243960479286365462654468923731786149716625055370806143740734037513824160604978187119204755692440176380547977334720127589353920040114533891069119541068323230801657646680901069091939444686945529277535676062833274840724397340675137768320833702587946359580916185997321710921785917005003352465249475786219057546099994505227365539839781108151132762013503396681900737460579166224312401016113685773900523085976450503860016394481985749291678893909917101481994382682081981601225558783407215069611719440968892494281126286722737813017705637533427381180123248122922745526711890064208806483415127992533802743759501054889396233144517581050792935538187506034813547038971200580415360250252910593374900132093003344773476112326776524361717179635586103931436515562778463853570022991861096812850532010995233309838916929162398207306649997246841392178001264798867389898104325194543899907665255414696845517465698405631478417170500829601228824982065584365061406489153652780183749463995482072705725448451004868873929830927715201998919661536488790287939002163504259835973148706710599914416358423883517401008332251203255727685592381472752519808434659494289003965843589638379374121358343253672620232878029191934696794949224456365231076689382591849174981121129737344396467548431309886456387422422905187428924021745218047309689732819667814130735574879721893589468660272451083330653893716101579442393349751545938778315859069847510260032514467594462761271770577215392509877989392288665834223001957424205165899528945826326008397011269432634417852927163735763000469657634657882520608312062471990338485739051165253082041128129190084642620981600415271685062853341866409261543768531832574733666827954167536425026546985126484894507532652642472463345601691128917044840668709306716027920926325436002229712646426701441632340194369733370411312625893479153619778526955134770156057823960188746414302797272532794581766402491667555955653339578060443515022352077420443831038694205498492882546660796025562115443641801531696492925751375498068931119311097772686354044017369047864646497974355058780593894637082617735235550342407027558364803432769470262278451116933555807671289111474828058727282035876153337816357970919475369949554557275322319423310353728410961846752297919347437602864334102643062341682592383081990779261263462453072158420406636235450435763145700702047844184182089707932942325769969717611841371288923926426484255914986403745044036252380426476103323668203314270297843718194612713369733042059846505092428332323391991349830182450360384234688706349018132189177787176690742045441885544234351862997893682815609421070558211634937560903031539592997004515672555723538229013569639492728199948207538253699017680366656372104208398427405256422792956174862834246008426844735018571566334843930855545779307400448948574051792843109642880823626025866743978136952991889160498960483700004081551280956624290454339608328531948791188977969690409492599628870285336804940269732590451556654148853303662950536541598532272159581348435081285814567347133966234729916597162395248643020411544724697856551665599075299192625154238841147668889478385403090799642493566143383685085577877137222248470742115721909890869174519999683709854354384673557094422231350705249634335840455844923053774123730775099835687569465136280427664052512450379057623857573938970382455973658637646225782818440720546814886136881851064464968764911089593669551785910973053741131177808894815848524112288522490011193468651874654568915468315926143097499536542473774597858452321749905877371771466323756587263532131184424611958146221819999003750887416741102283938413713529951944147128204275329718226175091170711611538258972173937264292409678622921747254612845458430036032426997787993270505593970422878816365937956600306428803791670606826055278789636125444478647549972047158988708919980001336711762651639970177861510521963110058918255047086697147384407468652603023233211194600603293310188629456872056335584921005899600643643621188343279866791626624006281441534848024764919382095841788814063676236390388917088407838503446943115279701235116394206029647373627417503995278402443085394035797268882569216235577743684341378188704137101280247454832340936759803986495838589222209498239324386783419224848897188529389686753480258123311014439660878988083365888529825793172454460649782920816011083410905963632524903065298813616843654835845082284114428930894971157158308856648328015311110054614580383113732556450777655537831832276580441225383453075582220959142753907136883551500579009471709289884335038798381385135465679477153495702436661140357750854137106992012813677703631155223623818622345421507581389380651015242106450623657382018618466299182413558022223878256646821768710870316425136643016172962338985244050893727426426373131856307604504600496688167577128998720607502358088175900917971011112447034852647285660468087761825343927095649236711518947781058210659169175473607234497676728893691206402406866982971969315585088731702094155626152132953219270412175829539771449183030391774141689256218461662453613110794248137486378565013968474743024702875042868395671040774952135979493776636704705335846752344605972687364044142512992895665098025662802340325245846278780683943208487086485953511766596938751612106114084136900170509964572875092507164088221521525893608903379362868118745604483095037580538704164280339096493825503134097913517834376214121352569733724983070286634012434182159690402958476363551689627739660837894308096798318328291764288259094139358023643091720112580260313747219371122333946621260109512319138890903961590675254668552890791395353305670536118345471405528381488690922263950351294229541818508460591935565360468901208292825854837489951614075250048693365384336668154678097469732067114317255797076558969710559952417365786772671151808821375818447859189110886216483551086449769608195937692673542181090478136966853669810126965468538982543776938361403735172213434683915996484064553624957088784934385090614015488968721157398234220049311247658129586325219940990872029159265721321242955846215749495656270799959130448645246138677510496401288148152352720329713147720986790211319105657258567906084883488306115616169831956756479959170829319875480366777754264791977104877604460937389072056880873629289236237647607646487687899145971845156366469560010505246278981114396675199578735709278440258775561946039615307283688758653182496293727505669236770928803549403070555156524674127441141067858193357468182925664452509736221010529920904944065735874304803862888684853374245958153705640960785070969023196562520016649400540145400260618333063406903708145352998070394508173876497637181176090989611401475578843157224866630361043555210385452749806494847820287680767663828072577318363730643295466143881358949021683209334072422735413394352228227803208578617102368660563451445200682567766958508109752838154241666176551338039223968271028661762340848075520996619775941866753676656627184222089918863588343104612452425370875671348436304603802886512190329324601540600078800547636599570952589036895537063585029010552040330324078620007342144727553286427000459297013029414355727823321024933057082912455020610604297798994114154911773057042370347200278229682940054586125327598317556532819201588460248866393741019695863895390955240647574810450357397457245961840245872404762729850160948338757256126429718349514827666676274896127038011076348035376419035127655338831975459405401669204519322220873353229391416313074874854294972889618303855401369531042201834027606841514477868238924545289670020262783118009825377500503413342438328858220256091192627019377855290901312455508925496112241167851857269839447679581241217983960026230098536005598068786072093845829511477402083296112226479999440345082473253203656268030618575205220522860124467216028429647556833365228488609871399399360371876824796134516202628093743240064488964915245258071012478686726069521347959871580438504625468280745387235466295173799247195069679682876149397074189436824108704097345253035048370725910049617373113042189334256369265042208793937433835901783544909996191185808776011415482614782245344704278068888102663264152741767587542671086959965160048702940497642940432695705179423494462519249653177846516284149252423589564185091594716953047525882811612130477514505636579742680336179389067744950167120757711479898148409500363856111884433383644845036426488454865325395289819317422363461425972594183129283024009137465870384019490796834415616816758313147138439248835716490008275355775776181481445382901687577769191228470317818814098800733107458920054043865886843923786853837192048192243239208954553204900944361839032809221579430848102647268558750598731045250024729584395532828945195006349132239088262969097764826924216648307761914624328701409398797005908747384415822743536492980941239717563789929248380642968027355552185012841384046198389353779959591812712694855622394713712067875920692867124344741119685638219177565400007708195597611561204509271070649717026257506774158733695369328623425685012963910393868437200176420671466436617023226380590084043020637015384450885358084982016259802776853689928119176035172948473648342750842970216767014434520683508360771602727304462797374678842376630990722651265691938343723209285116867589184863994978341993615600611802812636189138719732240764002043540160279953580874016780410858535032651975413624872845892329168369018385892513958756124019088953444234875514056404015588411402933365361847691592087561686685086294091024240936358351146832876908693223093936511336724722855524447752396569749859866491680639254508766322228247803745682659395675730886607668347651970991712156571743626983458585986371811385421482011357173198160580747315026176722222399437958414546067010955368636235897464696716999292048571725371006937614060243748217088563392438914558859066564264102871081845527445420531273629301408344409908075868782730583731033878294987787474820007229602593865864351400768998305300996489420474196691649785569173917242510578795117098561392726415212721394956648602788816707687008958957920590755489806033356491394110685479490630255560797281814504567119942890747248870586067536184746858291783412508883034771760918324186085938004343331571851860273723904234443868477123454061114995487962265500558678191561276580617323844318528271828597744129330053448083652737687986044732390970316056923001373037313939766912856944005649771967001365382490680884364103936792290198462451056648793465354171131773383752828794251526862100828158206614265024917372521540552905152926153491533719044711765306951740058399758670849435869220176284582147955452009499019552764135252563230085201447947877072784093368370999567120719750236792443406054466126142838490035697356394646222918582022312606534745419418366019881059836143129945576062554792866728135443973469349764902665650963783550904302920977256555252140483919450160058500099499602666386459011190140158248293474886150661890943341685992920756653205198927820932199018692490735018492166037814047426725953140332231480140171169854356261142127185871724626164909453126262223639431171930207473676165723783888802527972165567484333082325495592587181675853920367579473468993880548569304853764012597882007179867914865303770850660952708390432046314029598117507892827858570333425530997407512144594349139317719769637961818170294584114696127864876430490739021117624896698552197547496462159683276656106950992682275107393855209755330693414055278671169028825232821499382164087027777585394457156825371070370965912803407305186035522578157101367462511115488195889139578773612570206580763731768294121132323430055565645502975564015646300207911459706673605571504864659183389640156767808916132910069348811496900324498282883328042029951666151407191206728533152607449984648121969838098601615963742245639327670268955952874094800336330865193556307446180322834482938265457634290820459699734756023222377762567788099819277468415984071344498381881487400416508556309792342068349873901249755876059374541078423329993707260920073680628782780145939600318480350526717862688415544269602487764184084010128351730145109763865869592525781343594647412445484003220468237940024733338328892079460679928561345238793529697615211326861765405546302865915000501474074410061899278730063290756135047073929591283791245722668462142433928942623908034210463708783998274561910931833543272436841663447728185113211371435600459371552081446096494662461197160503497280455480963881983439353333408161978906845673964015246014376005325466748352831206199534096684270130850854095047116437940292171413040344144921209330570990115207229339762270509878344730190642743588484334408016027642817341862990500328287970471725058269047648989266595333196127384026950175709843684502966487474055334777179588033719565668858833297413463150003592826268461285884507421496499475562761765485456081585679064199458213475552712949616196337638436850960761968913982752772009055956343327587056003673235805440046026312480205367563201782677384939029581536690522308535363706007372471072278713161629847571233453287702188179628134856595546137448387323752262117206134872292886162378167506741878644370443273996814510877999657746782646942621295013813691302212705964587839710592461581769658230055052900563727862633648721028204359591836799787708788698580277565104948177931568344511568961423906997314157297514986072840070665845726143779042080914288292769483258406156704383209171045160404551008077715371739777926686841337882549849077733668657956907662486595973733286764460386645063046102744651396779224608774330873581755089033735844101379037382716916185833922431551436578343503065704425754423201919293400584491208968756519681061007842481495955588744616825094828583199205830097883303786642394208336167625033956445803619727022314690556663225064506678600556777665584105423542889713826576418796203481399325928024625936904901360840604269829794426793069810095716450903337284803580486635202395560368998462020134525616112445573889136939776377899001648595232971160184399429804737723114990451284787233909353059919645106628288315945486298898695086168743966920604673279115091554159068937579623892927844106569749486703551057179254787516265741776086335835578148212608333691619968279924416921042452779108304588324023032589752595345412000555161923046682294226497560709430183054148258770296830208207126356572630935806802219412008813189726485109666753268927477706931553767389140323302380640736270566171573726523977022599390885168000508090312147756692691061540772195224880773939384987554684132724722207327034009953323332854924285065480445089163615007599366803503363621083187205752572971213225067385743229397661820243237581581961470792873237550198772157789198795711708618499166733218196150080897819880036994729228472337831647731567034586166787228639082738870275927369083604389028929227853019974792129772402710871840015457178581361277149552049528947717816742263585784884417619900830478758654611068336900883143722510351102207619357531659021882084538517944608243768891835827848730255500626052150898714928558180428729330725050601398467612512513026273181816936948010915052988691630521901985610681788094969827310677317846726673243252167610351981426970345436636557554882012687552590817020453268784566132444754535069068785520870074009323015738979809146125647222415303736310402633141225492500752022390557610127958428770374098522206632285818023837570738761553232212626385194632859557160148987659787375242041502764122731065040955759955029670545825277169435069776651582822673295245363404045252081209320987416150804987707945175278607374245385674209188958082541010623685772058013178750575261541112577136461487200103850000807073541546372633179621127476016184021051678729516790181739966352119528768890369521444547772644843407878742198259542545434057680405110875253533223823143356663754571006848353495098346740074120784285458096702888895980767885234726781312599964672094938870988312970755619242001007470312928070394682221648509916362165426992646792145718374762198545113529052747559106380847769594835015804202477168093454771377422021950739418300512085593645052109538160529626273444326269583493921302005499898650101863355648201329345898531957809126539788958735900243015482477779704192132528651985143321091036266069227012531405071630628147263140346084003791501211128677208788976687261945092958909368176121986012788687176002765333044248927456381212092347831144167755762535264068745858372461520053858522663389261179462460381525119345296505509979614621175525900020989700782894298922974315640957927060777970609116879463342959462185724728086328133724888761921282608007567306785405774968925633139709520307567136333600955369675728559575664327361829407586301703255452987140611291291518928777824177327348692617810306172433841685085131656288735461634216004606598932232270217342738924745973160437533497702826629290631649511971708213424602247674133907178695695969685502484222254748778072539147867803302178179889884356459884798499290630393618836091626132977234623843006829385201802282733004252737489313032505899479058459137203191534737490648336339624141797985096469921306966191622625058601237922305006521727081314888380663852731645562025789698486514295613349925759074695038670269074220630432403692790475784101308115002609934690928592971628158635940842127911932019114160477225028698331853620017313207679068052512355418985608141304535670316509041068966909271559753414501837508149430659584599784246496529335733462639117735640163880024090893464466673292413853046618261570902948997264975386099789533549818838010641772969222001095772645897809516160847274302107288647068127679188099705355542966552146584577794125212149454552201234370070648809683943221157269207387937795825294406902548128705234594345557579004800396261226758667122401411929887178385209434662947904916585777290929401596670313927909387206697790248986345218942908350897701270572267417179503602150260437756002387730375284617363709567161146432444174371035668511865046293648168174090315635291130561484164925491433309092701280628009892941637130561734531440297551539427246952427355863229714349695067929955616836475891471833372147995815795345128222564417177211869230309098632445184514423099244429881638022541247553168684134771947498583502396059714866300143018230503067809827306461254830246667871801892718573607927277035001193441293048382112641719402193247778838941892535565208641824787988455564956272723856784524631700506533578517180626695815657949958429962217583396577850426286684142245946967684055089856625141061038239540960792111298286068512927572442547056290989893559753268693201563385619073886185378284690059273144572420438012652412017939468048521913789891321677616824884189555493244678486929250782359404924316279957022340649220914979670164439550214256495222384455553298810781125150025293904587269487982146982263814484632231323357708197140720395033810566870674234870802508893266298699775871783891845144690649387412726673654732947331564891418617189078344834447991232114472316130868453034312061658828329904023603590509658193707466067301561090691089130962980632358808687688821989755651775474524438544916890364485041581183253873474192945100399956592300229859493772874232263077541572696580608155071946734083165870850667049246672079227855357168452365082826584142657941105265262286976117197139437777663666105430109674774052009876862578473460969804515885439176576136027447960968965067074639866365885427503638856787299808373157107122193596797308679452301251397991377975717534818353966438959605155561305141578103694032586152575892283531090058182419816620272118867734293425916911845054484986089276558849432605739116684774422213227788058257888700108240165940275775055929192518329737294807651601496408893716844285618102398414184339983023989190797899693140913634944483420428238458438448295485372446321230658317154952677146232525138100384947055345152090116673687402525172377067746646406928951753144403542194774222918748234247025640354588399706640887367880686437687737005289597781666546526908261864319681341854102193194264699508744320617273769395504349455989122569598854746147695336560004322824862938387947797763086070923361721184768844264806564773240458783464417284476330484877192595715909058157703429525697335057475348107251084188523172507846079491501829093142460457857706406771265318566617816107534936897475312200790364667756474044374144137409034925083277190907976611330605916161881459411952931381359633189955730778589971519953036809186403927214376694407955132071293501257522384777155911640271038532410206117396354537993248258919928449378845118123403695944791151055699211799957182115054989083712846801355171013185652803868118529506793832928940417538212979643010855393941608776062345725178427570428247512522138951435921355749070864771854471938796547750769828031606643790064430125356739274554626873239749727211078320425679280137990950410950169100944107259155299341818645531115495219077007556330222365779239260223295194235980098182753603516773581224000596239734410176945953588908887297399038678007020762676610118562412514959877364734454466424190409404362041641469378258670818961981148913594884102709732748360398864839605813119357096465884662722360945382921246401166704496814137030448355137046607748771457798424762213900659609351055562125812819847271347830246948138392681332477364175570547385152619876622313759261754759446556200623709102339916113532660402238778793833781309925622203689610763868305025076585741724310709495937727585892618268417394567838516823487832209594092511354059863649676292565221955697916398374194485573871963644289715541226839277314045390492657515849116967082938589256004917907585932321604033918150804808960759666005549973952775720956069012882457222968238800403736594301879452646495010064397956853057078634884392951290612383848072121870814446138259212239068624785135320652374427403406364135219987041353853776229907692180325032674654812450313548566230199852807506918423927208434655638932423375686712821745513873149058589286046154487907778047550739609948568655849141256311172258467484533376356785661012618460196903398590299475852220710365800494414690968124719341270371184388956966406623996953967123261869874881152014324309341708348077090744728758799955726676496463709389359741956705733121920660110307885632940985025042030731184368681364052490200654406804333043395984853619381134949759471464465566063134324204947073758517138036422214618879282445471644450154001716378695198905445027504115181610959024236764204150860383430387241873475709216092078696847255506803304355579404930797586574672396110990201273768172100418039272288356398776446163659772710476950628600843002343693252945157273422186217487488847684828361283930604086341077224437399995711842625645692671153269227376681873198648384228479847023724615154899004886203942867833720119738491670214184223161569070271819297815951520196547066023416838114374760509920007386641244671933856589319748694083040810622299914861388144372660806358267317973986224996278833907068333907874885756239080339629254474772817891252534104564356491468652960951399375548901925937932182368648868900079140853845002859926856768738873623844987583807753148014500452008276542786040626922225729135538512007266947411017508030428768769955913403874981064720545200749316622139589379110051520994285953645750964302938301624122969884494284610206714065954085915973026097385196838707218287454677286757664716616919561668438400849444454379794993350609161081991944724873662726525544911418436311128156346544578851402838231241764799427551242704383811997285448296320923830483348067862431860589375916470751456661836623571458885753130218924192462416471825285712138777556089383920580588724931665677350509218212365834746824757448918203564336194641371836476666780520483691535859396879581198892283911727135659813443819877785938556439611050930888253116487126840690626835450510186273493831771363009660013618996170242555938061662041882521669477153709946293901375230521001204736131776147374318037902054951308075617904904178135255534350271354947051505864850555229599307898213242745560786349978973877063022093454083141600776792715265434127778790099724408837182359036925403460250862960219138300652919506072124093096564281680108559403467280725069604816278273726661951109161661316692220768827092586234063900502910008473613250620935379521199521596603022363694722381165890647692475641535759358247254542227072771121762989330159599900400556279803070417870782048119593331944432253603121287159352285118227067342321384706509572277529786910556971807622998743992544060819417101321857924264875506242465666700707913097078772217821790701999389892867966004572833397807042415079264609236235425895973703464292900349136258972690609187973115794879375838139113729908644610131508481810347555576258245376763721973654097739407938201280959621979849971071198483363587890474944674830058314017094913896806131150973064177386941451262629669834418462968612331097549691799817781643865606359636491934004901767790169342285230860272169994796500486128556582448723705732387931068139423165063470433074812755352509667191522285297664995084575705279222778380984149064110565100357180264697287457497776385667164158642791837856014621127012935484432328031846429848387133515936143649486453972530704306096966215498521923898927621052989514510484279628434648023653017743391992327250355267360227404747949116533160467312498984010558347664910783850617873757970287979161205983320446929546849542184701355009923890936562515986876198088069340029515409517910529309390432643556449389039151753290887338068477346645872762286005636590534574746722941996037897686437373786677489325361657257711392878431356601628552760829791953467444441328036318049597269292206576751879173832882190748557724250471452716790899415816626628617479850693867179146483161009620065469442674464094958526808310568968774782620057380195082903550276283190611969869044195420485495056213974726399538023367394976370187597405890467098899587173858502181337446545950429877261234300195198792137643933227051794296843808818153121894685189540291629967487682073341516518615800361534775850985434162940309014682476393915741247600784535116937471234411209273752584888526674958241738966037791601290338495710050204993454630660954951668876989374160754798352662008841720333109154980078889991659216390536539762730067981267853174348588162644446234839533363963135986529420841077640007114341548895360596338176818454340247961650907448207186196270717536781382732762998056109313229311145479196582894970126871215851591032221617438699707897875570595610358620130941207100626103329801418225498287781648122235994884489049365297084769570264442303567334694718202229647246078232834431698886948861955795324053056152518529044525104733435880831497437390681850502525528585899490760352353560403758179051681832314284602212226077677640318591800395293529160768510876592979969444213550897706735378741858787830057156711289822976889270606560264381262793154265459615363999181156401453152564817111627594820297767061971900823406768727089100536063887214217507031256158096937826683902625546134729849450916948054156632015551903097762129774228568991920708000362299344717325579828671906546278091099819159065549378540151574276187913057415623643418956360500977099942216634731719677757325608790756514657615674021923020567597468798067528265457233383097213683933106202941780803863766393607201773489716311291592939665869705096101945402340544711976762359436738135959816731290486020997827947850126285561855397794748301481206981907521271356466582107380322167899229048243055928212839889932992921541047301937848468823127880070732960095439316672423471289588063389398279251768879409878356522062176182406430785487267661571711792937018236961365400291314022305262938677286488813964330395124444428191464016929367785249662053505667465587218166993116562047459176581283867681170439894846579870543777349735814096981908064964041100826725562571970329632755888707442968063274387832707153878881049480051182604168966352650919184615789546597171832094482657326636050945022757998805360627195791964984266245000465431892624117442918511116620601709496595388628369106908416496847782704447204774956085020747856216848121291236361557801548324980463448303681268180418815885768751856146013713491950959550756847700311250357253008146288716674699645612947985762068210784501125960482148469933719465873984804838176580066397784741321376097868151115541600978966455090392552219270591924406822929224960962119766720915877051835806286902810511600783255968645298570704401278557613237556768393350013329922550261154768145652691124057406017846642411388062152157522205268691793057442827400739825072339156287285138056215059490461797958332859268113436481486286794575666714875767782827280923094866487113391803629902898346825239102214072509728972972274024354238689694571579249028317051979500757486609096911951763511357968203719177460945258886424360627365313729710143813302235691866291114608039133489203348709351313664756657569118320407665424895278178183180668368710542969567659224381356000882270966813661110803996066584444268580395528687991080352236542805688093990821574191523075525691906008988713897137238962771314475912431010145332731475449267937955962766282216117760309466664738904517429014450556525621040759636092030190686584586555027690312199583047651313503487196337109190240991938652812609099475794498059025407211783007986554396198822272192400736378319885899709371108927295747990605876428803635556344351842438789405913715120030626994483746640711508769807571850329278742088250200150962139930144673365833830998910653256981477958229406790135371405382700932194297354832506888481762337319145639176151608397996994959703382606148296435222349462895535044888060335787816855735503688912654163676415421750126272593174229484749949833349557348825898004612148106312131472349521830749204115359428995315623999014162916973566330715744539072281957536716655451205113108190783929512107517122078092047498401973671836468063297226747725817916728686769254115993911365724075219000338848693729605800839457231415231321666516057310461247959256568717855053045634286995202424894543271710156989675964702280612599064946885930481063571582487827956520058602637309551236283522600815348257922609787940538383174097035613991036403354028175083148086177306860979831722282041980906792385383232382343141151181901142900562433222231563234066628816726856148116815651916667355281071416455556885782007470280595115225217092331736683500681674296979557735918578992411502448686592141046368443572740544599479528302030742782687518862525829036277668701150056221177172044207319410668163257938612777246856752950553739661611103392989992093382099066465844588653175735102456245904809285322694473515797805086713254570569695599201788050030633865137012274645224672871309415915244427285745523247591113420830987653191883409829747156910448172704542623500819892707815853608709030692716100749812005124756482410320245777441280585392595634879608425222730442616727165004548162119527689972165890090789804916474628056409586205172553920442018220250596135571148127026992791278052721203992516808540565112198867636023710459623065807235103394961095351221652722711208681401290200645344083278614956321371888802188438140134388031407701251879991778130669142197096914708390635686308979589013703543942484881284369238970451475735730376161002484676878766089940219097106301210783052411121616947814345799306396122107045298011868423643017262363865969213092473805384650092019593570796290834152468555266672448192621230618298482250930342698655907621116187453772250206823890424114444444099808517481337376736425202323627054983197994805340490024831748335933569483039600948955915269403866976640003836636105508847566380283867742387829568051464787121639663071676181963614890792461772868660498616116874893687107290463926334428886584498753643662816200007158176950218996804469747553765727362983005606465299227511058323980343768305666163135193868853279845777120097968895539342618187915264684644351816431369406887766523494039681840234935561183668439010451284303344532892857954164350864610489842818113708248834441105412511844151014657469077083063531483824444420504894314022428547997915082870334835232313591318417848905540308362999942517855105895720309076818799851062215710726312483532309370147631824418824042930172999669003042769908150008707912645996102072738254469300277008028923202649392708479412466243085514654419612588911880677162872992363072354010590166136979597164263252815315974341490505827073340159525811647385503153527328328654666275050378554300113125843266449063095246514129977433544906855452199519120228946269022927984995475088816595253016268742353207374088819269520252100364605979514153584676540759858421421625492358156741822958591522024303625391352096985113389526402983688022102437521293978974767172568839449398397666190792353736279441695859832571207549479489307550412831499876134780573153048651501600216851361671764672597456649230486291982297122558707213040680816469256796153701580929307831525540456416051304178479895629639553001985830522356688275734551452949186189482027279775607389988340156517704973359867852244200251497689687390784280778562989299121995138845928212676342584881470276937274227358086791380422072556664789229321935477172238930898880071686514912502529227954979945152563745932990363234952884607449172559638750612620345683700873406279911517762037637375568979800723837880323897567626915441503440248407899376510524729682132055657136710905504051359574722758496600546260543101258756760660294617940130729310079927870226361608521186666007994634883679983448065474696023564056274730088635129800863741585947564306928641541576192290675798778530670306563979088746047444717190772559287601112145812401912167361045236658633823060833836157764781169887084448491206085962228918543006894172716318057313086739322095103370079015897562701605054410609541131835649628895987257900586008940554798757778206368287143754919374152056264414486930487721762478479810602890997750096528796264269830141015874676351986332672475889151282209338790724371943289379069263721676252130583504038405258326863019414465793719496739352703123691569326920999973028201987779675755885666409899391744410564336681264480994422540459761226850068629508478139483655000810349203217718010076865965216002431361124524484854624597922561052002760316240609878249779129404541457858562562388744558720914128069395746597835451911693479316142491052036166492628556931878174649609889603162236896587583664787882603967147225972074683789619748952154533014786777254014540593163235837738574362313226228807585903808950674344959120078486167340061600224252991719343066157591587003191145832294911335417022155803354200381416175755387390964066905391678738445424193490697225191133315718216796528624963646124091727688457384059003180393858859687357681043914492360973245826730420155922844597852086186403347037207123921372588165557063035692961603981620074710238677958610496460726100620011512686204614510170400219017445304677098776627597302127480986947758078143063957524374088891019619620060630279441026961049308450234670973996029802098937036483042159018638818811543937568973930569108434938902112724409849790604753996998384060556843763120166072264276818901156123113864748462783675598107742987856900017683718768182913599903747125431415759829785881887912079203169486794483355628686376718480177390512098503086257547977859105455813297684349012394933595338606890525385766107572524648960664370530650371777489736362666267573970438894435288290883091613740588378573140619575759026550711710810801744215868626913256361923444524464545013897960902628492657519189766513365371812784757203771692735891785225082121729913866599226121723599264721965671612111812951818748749963695021774207411675656862453565973757241315749730421630481447600156975209050331955814207657237900047814421703181847704923401374544314275565819311073973179257314087595458831271015367491945289975527020719127205638129685641847590327971984190933079921042803906504007644186483717606452363372843009651316042138395039214229457391053106874105840369212316784516268832091177505201412026763759669532597644150129082162267306153910304519403642531270375500804167611213057471814520360486484498927819681017909881919430307553707606116483092905769925117101695389039481302161293289958054755041071173871210593003466767749788129755653318404054673006283335171260497513504600552485263045722820629105837354193880531584734971536679627290184967020937077179246580183373195725949803239659719947517758214158390056922740770399799379012768241920311653581229980591742800543894962534832450365888035886198937942589224079986496687097533611325461683895280695233542840432747586235060584319154120598135241077461781131253035409220708265865329127956284338956759736956839747709615746199740921882450678003771634207953758980268008329649172379462053487282093403419152285122898061639295666467415537488457172477662589318337299982202586226796534869162741944044008090052234251584343129788265673328646431755932850864025581663090777801099644834354593049477965836642675755296670366949615056913004779103422223566039905646423218535382094817006816102917535115576782989354869839620327429659415713665078689826858859876512549506889411082212707420859426471304824903232851450889074253455673111382888146996400591943124133264952305217617856330470802565486191726107539852707801035784335215874925498185090795295139131603045486517959496101194078619566566924449717489239625525183052580031787904825878379327134632433063184640277529246494531757054607379432681831128742087194043646018289747752004696122161667448620336118380778719274884284221011365933202029469426544605567129156353743257673921104202315137778510993741760557749959299860536921472468897230958904939360904542913434673173658061330865298168069079399970265592753921966017866945727900833086928768774192410519469206802987200925067343057652368976070759422421435141426972461182700383241682591757529817567850833176642262907204081262603075083035526472450548024908217259709958271226203880769458961526447505208385891962761944031523224502588810090753671027405931240630608724565737843672900948493116312920698036021439137625427440961788464737652739490630489880182592345192908856083159113558909818749459869586671613147036748595266471639462052933513042996330991647791616441284994510525821188400953281096571953738706823704305423067461695614363322761816109070492238559554787703252369573448130568701258620924390581846478956063963204079878000094224882040185488537101847393430455775332999007406668044449664300151732310726199842876833211740583896087904472642832381781909035112942383446812055804329253495305077873296577602578773151455373698839566555052196692553982987347111435657972614008720894727816486091065223184237833646553358192866322726605698617210201285420572034113103357098822721196298526773960523764760820746362768054899639008701705089478055491801964840486340509178943303084589081864568491759387220235624789019379622912554524722745412154055992337347163230281642162899299247609277814133889302639316426490333496429184191587978406506792570925564207028099256498304732922921438194990233251579207855538992999816231602822465404632021237991785950035568619657790566777805836065358697106273258827420897763252058884303987562569592026082082420061935758552662891173518137037335020732431577632724287132007515302151104768981977377308273244913466625104936881219578818238985287713674752572544917228655587608904911835156980632698598153045522228587403579668657222961529721868490815240618018360019962882327880510602916867234721059052465309237246854928694922188183269956457453832801162981699900840616060318259424346185686774149571940556520635088070284817053323286027018466592018768107314576195175412687956026132253131009117308069981744705461744888108393102218209554854499724223021634007499321658197545309984166334197665847406173957270221811968367804567821778806495870362347105497222835257685997023665464550219537090164653424059794792449126874661085377600442797308022485562379661447412293151550482115423759797499657249314819188283968427829528583512404352640376034657438338337033985522695036320983586174894867099579487190240335899205416864510393432908093253792465308231602613053874113904290998939968475829139709121158536314871043300404943736510490772855335676970959970659025255076577508553435696429075122856893835806949172704222410957333091234707926747111779009735347165268410258708286747879619502133676605119184248765332149848452191586280326984132888549501517231389714782545593318767062819852570046630578250201559636540653826680666497864845465851469651044872624630554718468172960045208949201651382749852660282842629930903205811462103509208352656046237333590246634379784692567625934254717447429913599522355145344927874636908966442321474045295728127848517937304253718595224274761033778231053560638451144861845372435997207714014846181569724128252757857393231225937816145889613573747479841044597411974716548341748093585228651799239773811152905405768099583639263042794181766695315360484375657626590628030671016560458097539927191832030444689774639793552577172362126286472867717242097989845053338532634551457664655688816954663901552007083742809535431484687991571270744839656486948954228110291926560939865503607284071022969951705425638279695262290620181380978042572562667521924516910164620570889430093156088685730892919076967530107509815496717984900959773175911350655871295063938618491523470184429895024715577547248968178798689498967227370344917795401032592866169905529811795442834641337540178700398853950586826020799262978009162504100086052067271446197416152761725432588240231906671555898136436311002204752268811348877523877521903449552895153036194158184101590809321677562353833269626952433535696182463623316322495898084139240361641439708454424854297341826158465940539414987548414996660398547484686213738451299192207789273854226191975412256994325955791222909269771691599676383847036737631495203984040709239769045744059780569788081172401581826758548086130284941201899112982541660145086237191551533460021759000657373376756370786410554245910354360672090517488431368095601653967180870930614181563293273292873545988248766806395622327947715724944410872613881159451982478448957653527756034098736251142117992281038088322016963717102024043741693898991045887553391829037022362932444464433048245435127400357014561763928641744964372562438136217554039436312533899372416781909256406633292898609810844112442680218104606187797607365420979816468179006162462917848842954149359196373397515876450807276838431386249670762136397533826033727440270914382699521866888851730718138530254814775736568375319086930248467106847374416947430707007609122245339477494157783792130307685374621369192347610208692187422316441574658437183731757626859702806914941264609484094551744953977048026541699548714999491090131297107587639493858463156361750497585527963109297270511047148802936070715049414976959956602323455182741872391039125952419078747317813628313400475016632865848801781045692520834120718061796913303483974254145298288036035734959737613047997113941381786012808305228709419422336630491236408105050772615924396940544181883513157135918855609960579908153988076129825353503913492788554560878963365641076372802309170828445248733134257446005845079876962752626633571729395285983093877983504829818619114535538642837044899490151679574796165727005873760533849012146152307457827542473025312549030726250845063230608244054310881157021629361351091706956480195465448604141184735610408533925321710836678237996915221561086442598830962994208232900664398517878543231997016634883358274491026546739404005377935216742210826326437144290924794258311800700580305576860803555872465591837160017736315697409972632800532703370682109357803795094271616489410347483557812176858700805161532552283273368568627947421955446166653849025790241107499711565592190434199038187635569778939456288695278262487939392939909855374525711706122854067910098940558354936609818472381090137117944943890179365492824596659824359346375880410155480083669160710394882154102633621747168887386233541933977446293179765099812106733336174737230845355611284167210958169177283821374839571062923725102565247250685703551363714065119185596765920307725897228159168421741213271453829798310215248861273637750423868476181104541789540513131137204798415463685445282426722344177717591145957661627884197964380901900613068719518893815360788625138471536090795988508266303426964120606594111687799543832244152800484501338804240322679671076666797159585659010591920188942410343897686702599510234807413969379155977181552604455015581051227314342777959941243035090935026773072496961754037629910743932137683590424465083977598762535530250025502320425192135349541786060049508433724157531751533800583313896967951835256759696045874402082921357853332110749832604879202296685831347125000286775193566588513308005818616665151210980388082176109389495402838239264231897722505473742403132136218870681116222305551663348236219477560392149018411672028702192778985726138675616633984270545446028802895542628229829644799180580864729637691174908548117166285653043396282811824467112840734714694661492021046605016443241922452727869745950844663606493452116062196744546263189215731594293632114056769346906456949011051496128881515248610475038304780201467829388328345725401996120439570106540860593511877062093637036529966536833134190623066174020062794553312330178251347216398553193632469918744138841198306622312708283024145123315037573560243017787694591292215576750351279229426489398616318915352740734047418043563006431867978225775092574023771639410456459332302253974394119311578335715602488325423847138077569040269901363932352894059999174368084617894239618284475941521947017696186781092116618028405345885025136821636492456579237818281299987498006848126925679587635232409621680052678260731340322702078035958349306681413775486238936120241280541364413354278201466280919808864292918559873705655414846768566889130906179890199175757704474346059843691864007090374436906186257114407109582077861230484964454208367541503604577527729344785464624361354545915875989994529097813832722131208710922194893251830212978976155039389615685870242498604715899871984582385336656535124185963984908313465606639986523057684755365639656870813076124092086457543884296488088342600823781072810253657408657137801549186847948277048458674698581553191710894687893095894584884334349279787320371684370348496030794346422224104198294454578365470278168903125877567471910398830342249198447301621628108092889448573172407037723383534107274726022413574113088536668255191065327915506774613039428515247853201829368105778269600953573848689002617163792470341449766999276278826836167689791945042523126229248997762999722780852208799828377449197516637408781937991446791209407949559841568323532018387711441774401285930547098567348787813803841074733175298045680555215247520607035114982515046225665108680014794929791520416942352865686544628741271091073020340523526203045331133328775579578866611986844366797679322764043735349902476100909687965577565767714722070253581658387987655165291621175097909654047306067779465740201673010977184779686683245393961985001175278849610088610839644495511847626460632126405793583592455044158684550311243231469669328465235562584848606141422185517309475539350636297016506458115220299848101190272007111884741762156138642068962970636874541593562707764750110803451960411793309351046873219902041179266446282046289339067857898600901876946610664227073390336133310346198956122263874090011295419011634704391831676236451157632548546045703186683534423487410496313763486174541809575387995269720310672797769480109242436572681299462150513196950942768420097070706622867240385601704480623828100179829442292669689581677780098539196702094543122903996142507198398583837008173427279119638356367347773655354027419943108198268206490474332834127096419649609647094131091602941065175848838103584288202258661211024359582477644561686857903155687503148249599693663606256082216128611075110114559340392692488381644087149800631224825875432908260783663215321125021518844677919395072661503156323763324825518746797601132369944601278114548380706660206571786014751229811917957570870827662067365585873274776740644663050697600498674502928600619911994665824230903719446228731907141887734698085599655614087544773159267460150322959860623463754469611510689398568054761801954025578009902466728772248783343528036434600246050051588842537709679447518151904551099297449632929917394189490212788203749683374348014359068717315407696653092358258769183002961913202902601100433959720511647314172398587346000180091495716065388793112824138501758236158453136474309955819070514968399760115995299057220124830272002879489703481619387425169716908716200879549090502434101026713452768289423946084573774436861746959711882425227103594713955171358414778373548815644132863614225458216002226481959579466928819248736094332721566903804962687556333298863583252309674984808832482855429150255104190639183698480413143819405295368233110096027624179465363455998918391504000191901492558714200414088605949947610074252533735572997887464212973108239019113833705286275010446626822938830212265863190820308998728300859342706010095846857249549406259959004896800808594726915681096232792457154199913639055683574630070253829895635602115546156004365483985264008208897952208554162692782035959127149143150247732123103439179975006344066708123686811704120647940388013946886536693150144018846137246115847817162520516431140392758297628629393638783077799965646079429660709057357363658987773287095163200329851384016736146968676708727611558028350418304472107045349449624099158303355405624315164337738316525922886603097113321066415136934881079211946829538041995143387605028131709274340272993499213519778388930843918378221721216763593930414008493562791818294412781087062812083291709812271150863366867219718475282533326843614000841931268374943617234401186639562624783456286647023200661252118169395557000341771102836893055888844050370977324111279146407024895688137825010995201931018459524769499854009131107193689113602615415215607965334082208359997730405951889223523601857581340811502211547304667708866158975637302527106030997409513752415619252580994368080678827495630214168305659007302614571136780521653705316179777994033269430220390070146027445537160928683644529044845268708497747115994327720386817009623284779906737257435564583745205752149141113840002614685352619318943737859673333245653695992023763044847339186566044110179968910237638234342892585622315683861570386220263646781936877787557260562872593262173486828598033868162458313423638732925343318797190167490532118612927003272413125737621405911571280370430507609891944960676213266059113010900109224464891323957957460180961415510428630401677731126326437210752348294567602540238992653101949765516376273377139743199854462443888843127341701981194995108210471262889348081716561158462749209034272772683395423963957798783907024689100948761095206091910760921259713775433167394446677486239580119000527428763645717252558912848483883486943474418202514523976766189914072455569278111416435608360125524641393866902384253620705030594517942337209301477061370969140433821185639208218286344738961930903536638524206934747643477974327158753941074229924280809118180875411734026176248257997646102481604867411564110464011427425348148779032269134650581487382316067239297442617188304729801618809453832149296368912588657020979979904929062229804723884641099259833187598369456567044867375071493422742108688497764493380255139309786576704686134847628088220010574298716280599404807041393907646263509925116865866526227791546482527208546040799614260828474675063106384220100246773811001424086474118193327740788562745698974974936265051146508545057678721207194132679910609977654550449465441633748413321027645125382372762679660230715346079478856028295641272748722776031217558513582271347523627255669799421276515206971086013576158558358245150548963046806794173241930322195319389004203036754428446293865541627489988613218412368542622298487259643597100477564426967380444199276817219302948152011969922371401611343281617026737551517579498554527135086100189167736472913728320917875215410570590714835165768257876447157948806029032177002081958622287633139870927827867054882586007780420631328273809031139367514282667495171166209013701514126231502799125998967379430300119182014152734957772181564867721357238915556490811014755963634053171180635987631705186934580723962682527815754061655883997479320419934085703979531474848925850083579925546090818534009879704230940400402985630400628288958516148979429176316043066549803217581367935618120341941548453785255794193512980268005338155525255044074972272292017641570795086527090685874797149042552554191961386808260438905925833036324650772659064511964939581607287688068944862613562822344266100140209762767242367646239613149244415391929577388330160101917866498085235883815226254762018787195919725965274844149902992273450693945852956511041627116418749081109055120968392144567232610761081969748467356535014815929870430077417706347223611707196446457193517247181250896926671220805559186789126780329750565763147950484105730050142727531874860978176213382287256042507218559436998036588332571413608085972954057387103969901627834132325061104558162189558344233812467318508953283967900631083411116657122585228458487939942942048788631552389249624726904931758680733508329467802031791168155281651355408773133665670727864709796836056678958183684410025100471462793019864392344736587779358557953246881352851345696597834135579655547985120122129982530639114705394300949172977472874105941175972753375215060775575031339867097462626198408321814129302020384102494568948754686652320494253956044372207181208522689311301008867237450986200562807598681482461148689670100570398602046820227067004563268746956537455675477115325481107233086514693066417533294259630085657708499660538854286559678658842124573800688821102240060036805368484530589663803359270767276682496628905268645085892982831130670889474513456133320532721121519036605879011367769379493375952961135777901068893128314796381374076983587077794098562060390699589729677939271478185385075509514616176815962366879326734318086123247613373171811146406861543449264719243180812775219495123017054082140993705229349855485504424530046991081933969699112503464883516774607095129052877034019667865560983384188799275584275436707283040852048528862828472028983167376409247722364245651875102840463609562651992234380786327970259286314740305231966826925054131977287637793911483185569908456502374552908465489192454168014753085159266570958091675556392223179669740861119107352764978611717629955611952599603649657227310785722964334063560763157609475391891338454381084461603828029952976780049765235683417384676646205897451823584962934551566340653795641647905295757526603366150573241237681201550941629370264382587477517400506391671421331286789832155846933402674861032435814446374198217750964546100130945863155507397697423128333859760460076003707857793739003420266339427300301370300225648774917703478571752129648476398906753894658141091239698578463237062897099047418795498579094664905036510700860700243256517615556026240035088966713630110891576663903788985190870584132165685078566479947846976274888612081117836946726930776304818116615408228809188887137166736899948564899744152786005940156400419065057107291561739850619774774519321711630338147112890354025525104691623781814343076750938197334971191273362596545133970665278790984838117960559523020521957369966475878116313804895187102188422265822325822043103785238098079456830861967978985080486421432985571135388376884117679469276104856559172387296957740251876269043401059186810408294597633065440243804490555015812627437472287894149032051536754213211692659271227728975215881718913845166738615308288322355850021591961075135797770705894599579649915002860310460833466064160268490188915112168932051449597170701295187915560579722504072768344087888352894912282867236517123045935868145201043591019546682363708057031667041796417909869088891260618407979270966586625760561245628508671750180081359801304349271792971271818042479475298635941550970611263270531097936397369995686055066352201607145398929342994410068529527603586218555122481919174206111006138622408189650235563095764567011959268185318609001783198690947256614278252790933672974646560072603985511166861701270482387162812592628397070013683520688349072878949720149953228349332001264758788050478225856601236992090167865264730414054625698019288878320488827955025856645428472641792090044848279336504019617356892587778545317199243320624415362331116096065397623509117938248852342440903538630680371352193587063627934571808567301617089626097870313814945078516116664830859151508058850253607694566038766320946106146518181371143999257617305279948440827603546292219555212009826891184318198837927551410412738049857397876502563155840300462514165744891096408530427252643711763108390780837642640207952583175332873096834788484158812242870354782552189834593426048027728916275859622155309692101015235724059142314393985743517159853615777398370674707798334993035098176375075350529255001447295675665202513860707816840330776017564900467682545487227969993710323091063613988785218512180342881890881802276657535765362750736562473328823826537732038095398715666557748749632976469291701539255249587302718142708058606926269434934700248694420770338477667474154370454428901400242626688317081555235657436843649695931654981889093990288528910186735979555340960513947340211047749327150345867029230712860911217445914273899075654921144910960059963738677113972549365557853347604506068544824409623918586781313358126417795882563939074377423237885349120180873120400738451064451085166929889678714887228838981097853581088281128879433119439333905175908411247934211764834497085586591807751273450763153401233611283537766396319701404285009470889750413567001253247093228995631561236925524884656613280022810641344839125711836126823143991235425301231640708256669363316150436943108914371784658959568855655512436319866409053586238538323277334879564475626242197530227887596939522166708838411887095252974860048561357040499336609145552608195162247956842521044773232842204922630386440145141661794866016373050799215833577045576120506396814654265962902704073707313905074419372387727215281563601029225541612469565087637904847474228551443755145170757167801041681188448311611357374921090617941610532555500032457978832937237149246691677213987972385047622493595212818384961281841182760482851257257940318401781024594313019897782119485001154658505878443515463000518955572445907897395111532337796083520797209410843626393439114823356759399896588768145296617966451355578588482296009306344946219461852610715364154603881051604477304702241070548339330169089060054935856392025785274512404130562035118015699800995790160112780962749459132047742313595903213416063772633397762880487443227750728906654710114507028459810385627818386747373572258209342988488470052493702901423472989307877707199089897986467681912413840429388790282415349176759923540909909774000246633520119921517117020362798069197101702061391230297572925430466515806318398141120458132237433949746702770294319420998316101965443659860828552445473868123205632768538363401683739172354570117434841232289224971996515528334038127824488975011686499582803863103088683058816442412771052944479156556653024544747160209597622603624994873402829624938477835161677786683160288754567241818137267028440595268614228742190208753759210197867513018587494666581103798984050144251879747322525659619775665226566015255088917437390362541654365729355009751806167484032268424508317458818871123299376412194619324935284308700132480650484260384557540229940908079540673647954124627520198290270970544732282468453635067291057760451675575677177331313772697828071421831926440053506281413698533202009414103385162870884819180483437430928424468503283228366758538331171276165758902797226418064674140525653485762525628661409653088987742989385277821366506532715847494585321842783091602496479418184079497605332340929567946913685554751319770453687102200189122427337468603799882439684704578657958755448165144329721227335757757709266172279863825926720715629328668208704182783331100558598815049052849855934121327958013314680949707587772678539233199949871108206575477780527924066230371571897614177332309880412772849219888798411809370928542649153094683972122438166199932396427307771105456966816608248537787397370853936777749292095239076585148752188671015669581792031219694306718987525154862015630189949914723052080920042885375727447189404795527160148796576108453455490737963870683748138802021714741645179978831177359207195938555712049048789108948957734421053759959161189189368572366278406853042431841277621980432453367675969787758016036330393715747366337198700709284368021521193716921584413032019578237764663519955473922526138369969621607060713698902644619579378332337853214154109936982016828077065574898413549154146470187606355524565496055480179524933488545858838240978156621136543206995233237711232114312015467684796063256120959643888317294691830542995853834305112121491245445180235106515481021038548022769926591167828200093152090055588302084889460006117046169141616308215765353042806944704971144803554846147307558698094028278821695745139940948135031244278624961272945525792847846644894833557542955617358178002119445939318770385844320837021864575498514587257572057077357196084688832423281964421097659603495758203128619735936477214759718660118670022207524427542734146371321723297869348418415442474470076945964946255439935953579929533400315387375066677667134991699540291720522566176812033609929142183541318214413326230608349121683598187115075153446128302158362788776119976502330750448748885243356093429038932486369316454076952235391970001173793528439648222331853277253510824558722601244812828744714417335679691244782456318291686887256287608539147706294173675830504261128374995083690153911670193046352869508621947923385745823666817513997828616836390930537382984567805896915349151284235434242451383111305211216361007150891413499770110300559756508697346961495136508099922499140908688403493151701209056452902481827041345788618483733843519028389382726059737356292569440937097235850026192394419057507250048752053648733208761306849278529803754642932021279682979733634266772659085674568948860206307093628191963653707097916434121747716972401172219523152950226718455631417949960502161873359599722876191705226697621437922540248824061863122425837824938376672768008693820037542610268690101659908960337239777262595258467058932797856062557184053278888017994612909571013862212037781394080075308493925258813044422049588601038714666053324620457160255013951472336595424104486866309474972488728751991474267979049771080638333741626095819097764107265365095091178585980228811316618104522249669612951929286113067822204159021555623092368887469265455752912235979382488968633214366118578196373487212915210423682193630089864013446572803754364636867542003298335080540661177827187657311080192036674275868252101617794875821428781683757089068768590575317607454157033634974805487998897752840768034372027681499619355133073174804585133231695866728179939389692435111131245795137978916586971246562879659923283625375470241916258173760738347589171092046528393815317304648995258087576562537260903516781201368746804869383142620818491070156579032934752570626939399364412560683534558791723345850440892036304254525325184441762370120530186438940844338449688989873106392426750619759374662853881598618570146794763735115786872237307057195542638860243088519715188984674579611767460443652004354565045837159559407646537399836840488202839139580003814509133520451200930435050271291570637096306318194792460247224950826098367234515813388333582326428684254355793593585841397308771304474276225037135844188653180951317637877696716665119530924479081989070447984318926401852301554257290209481544590090881013091865734831554889297430316762660212743702990629461976240051807648839695091579826085379706300981350583477293181375859027899674448159479253839858538852022377443663215795956604954145566646082093270307798201365947525665167586702745069862301123076988214472428167703471002210751792657178929319144362236883104230946096068009610786444363752262616344591369599906738251744681106697485802574960109050655933184395194552245247266770631545484121062760877838306723621736663090042982021671919457656856507855117314330213837302857733322711911489228713096235622796633158092439604888398654648426920185475714424867080807653458943606767886963936639457836075656165364875831915536575837812986761326478684783960448814723202401013560198870318714315751378528656597012675650306069035065753973609415467675985650839158833022357483075328683457238635813966457607397457954407821374723154983261271918038085239577608606764160912612134328619376836708691757227600454392224334522889637413673666726020163336871348623427736465651956980686404217051091790371884248567530707091575516674255762017193402556597930174747848737283662594925654670485015178915339133343684725702655058794794903441053800711817438994410971510699309041629229962251401091484461974887755281197210369479121737306114505031484986483946762755819164664734092472288812055566562235349295435923490165005992821247059400418669452199457087550211851916244683594651845308476301939518458167157113485410180230278667497235889392963894875544269043842642055747337896684886534359047074733913332879027842865344962384278202110711129580307081214482519119997953231204358743289570452187303730517384454389950427285378570288437448914452228864053818647865214701861664556560262746718672843077382698015465056657891817559459704347282953315931632177378466134098901739596626129847521441299503205000625113520427179323953562271083283629051457927352827933321053190314062794081953764867775736490347900414434586560896976747407760992605402291766889997275829343350882216266850535454109842724583356351210218398583183041611741887502677042591043735357922384003946357250889472947695050689516043804636474508056765868343635842560014989876155613211225376297694107902530894429418512794824567168916336404967641143610458911389146649828834920623586785435380288619570602302023474802682709397612822450127706618221637488389154320969772332408145055445497461683549314085638680676374264066346372844132260673227586893784235460393648958347914479868084382920116432682255834612496856789873720226757656573501828085222909374869863222872481211519339771899893438051670800251591057158192713208243005193305003977101425812529100013148605917372761206732739386956948310952043853191312542332377095330189082082718764710435643587566807118936685104447160606434478236662701953727617602176154293628953044550656263645837007135697025020021005898458924073631437566751102650320981957235601423285333484738763006170669933749188136681575431078042492215697213959196367393492602764510457125794184406365799794849688658915313869440937030127174768514218694075513333028951034815702205642224884262741367968909142792886559919798496088140951498019873760492632890101944246974352220491069630793255984797493772149964770371526937317975536483158537613035991110618258473839331776657935059202444148640437128802202668165217780436984891930463292595006151730327257413240744325589313423212755468152856399391960708033356301882582824359777418431265227771247942690889491074382700308893335860406666314435608712446465407739721524473265444007610781539567624033828738618076696545837269234352307874492028862303540446479547063422976688186438867603472121684829743193701442782274291324917330535462163676410048802739741918707676839981892233653822941193356774970075572950159085015055009017619783983580908702093828023279356089342068875243733011790858823139361593436082041266012566539874304952679303387025466861643564120671988700273788308019186439803768434231944067882960304181851789200807577648574811854930710599626741127555524474287007996053808612430791930328890177963775625314931925286742924665280599457907475974486629022086588270327156331129463921519342543795304914491137379750790107595598325391250273562391173514539604644043416043237714290498805957614674871733954530871285669097015173061483462640251148422164505587691816043778958226430728612752965221372284279125607703144979959801855526256773074816545326405272237608970361145646634930457323953523866067252864700791038244387150991366050947171830183794396238388411632193406388573302299272237178430370949635971205632966921896930289764307094775963149999441591863858639276998199059449118860123466772140471999597288069391768972163575828040668600264445543450509106400165933935386823217112257983712322773127983122558992120123184158472862085170335504016731569441084912387163037867614631300146887555294987848157832447650482328155210291685320099896472403404960007117516960169146997936325033125012055334627432146716002952446059207943827418878402322434364928258604114584324708193685300358306290590898106806545119199307490062597451828498164610136163481798746142183124714265246362237015269212217525535573081635698271230199768002884016752387137107666377447919528482172037290699825412046191901508710806519884970657500374240034927149838823323280672026096105655644769217930159864212861218842679091918707919019274248974918175429090900084138996530956605234165011257069183827474164070095676709492381759760847803536382351857686828652129946169957744931754370119734153201919421741745835910435042327665278828518003756725851712870746376563903117710843989866216359122024333147832520365213293384204415949353572091092685624310053216961271799757785370712161536196943194335966418576021230856059213410077024827013576174368772197788842330228874197894848923662960353331213043206808992021733600386424856771896175007486656596381424263560919606218020646385463349261406401029181040815054150226685718456732461633600888283478477686003100102479363452589719932136832200695706334178229319624954333203665622549867264540328204963887008276444574636224627742292124170442749364191295740528782945467560944290633128994940834666124402711911784582994827395029238696614883431228370539720896311973350296328076400425313296234869519660567029576443418502519499257722882043890489803393779694382641486406790758434228553252238416294778967933737427862462483162630934226748914339921521709258907259431653923306756312550730018801598160249691175433735093736880514373003596024626722375953135387249752134457037602573285783212814727217970566238728835087456103755256041127145452032762642345744986106430919752129701958850696385369782197481014521119508455924164249431733633311040853883738733295646861973499557043322937589252997757332805280037642413213231481451157796114730296047095580360487582070754566278689618578953421223710803273943858092138972254512066709161232034811032326366957137600211967682325428112931180923920070780386487568189492292139767721316608045235719110660106468225593975101826511465477042195715835698173606916652486630365425959292322135335139992737672828529542665038199091609864515463263309731063433966091218480146796660273567661341933850992792715645155012790564389242250792642238338356276007782195765156899015626030956277093248681547843531273915504629620220781364165616059094631529953943467748380050467959484365897389849577929965245766174782639323576454144775390693892142844464877521212463155841675013101400450514087021463392301792683055422509727784856365903889409785311116285160459601869521765983618482729121126935749818385374689348301803572755032080205150160797765116831092015691121058409742351731527047503800406321536651309715546741467062362890194364657414539661946804633898768320214711433010908545107743955534638618359634147777111022720993671725804027142344505560941220252053991505070633364207329808917011114069104848662240155376644421027072879669723354760008089852796016716860590023713041754296024263918572752326737226161989362565502155293270431545509104145050943218427141476197986609082059802380975508405592890727822232447304124885952579949540085964209211763355165898432816270138920401317184040274459580520896522178501460607001451465099301686656448634368538934120810987224978112733008489005698855621799071592019892542154121708650775201147554035879748784626953103552218496433020492936837325574017267600991869474356631982171207269718391255020608089097427206767960182769799259000725724462128344515071230864401764153469767630981686660967972715099215999857434912412501812640349269384487911761499202882890943271124365041489786418579377408557092745906842107079960557893677591437747428768229766973064281109375290409802543858095578472734362964306919779685655972702451372745419264935938421494238154523185890657494683678637578081537319090400697167286060289140339859550944710333086955066446427710927967359450086253445286691533485600041239207860423184292603912252243818196875534650511385615413557993279483539844180226105748792409224600238110028085375731418387500744699412515255564307960673165881787021196003203652779575149991987159334158574984464131700471925246966710411514835039001924680019574324221389917908858210927968413326766294788819250889570571938246880059064957806284533780582395099454722844898469320249498940872693746457758057424364107756210167957215778419753788798007351105881617725599748947467775842240944049477784394002071854177999042117231176992114667204567004869612829158000411218105163904144328782511269981488416797095089859533049743089485802835133442067493649635489759205841133838851050033183872242925589310355889363516053748705787831767248515930262282053478717901193105467781879376519807278709636713607830981692750398444654613665503489686879808546928903985732159984369493906643313243682673434140869595453950055497664927256783103275983533659690199250165852127435392316115988886914682136203845109576997380936552209592346650665677926325944284597398899178190079270003241448268882026679421113457747407601153234069568892805438917703038835900807716472399416564127950868388941850898876582361608732482282679451509926456074940976381036619978797831540947153463871021076818244431372413491530584216423895170532116765024377767881174250784052345035080007293637398121498258952862345724732941004394825458498117336823305719008689964890397659603209831179139540339032258169817085075138203395525877824406192063331030046259517013494949997063685040243577155786154659808198019263563024703409646106096162500107551249455068297811323216239988735927958509492244793893611639995917249201213677678739686891127521338545744217574111202752817300390366445690704208891373954789528871281466943403253116370148125121890074922772748796881546394315883602628082223095846102676797936081389264169203152210607658579606466495132901780307973440987703447582874232100655916172117057041815267393892971116699098095597259869465828674627009775166433887682028205820771576923320185333982542800569059280314005621104176318908430441203208225371033118483607499752145000395951153337442511622572323335716411155147485240814749064853291917470722148419399286441539201033284810707933053561174221306020633168368602325590231426825929492883473356864638328511594677005939619758189161935354395345357896293455933620243283269609625000311761433239134405855603487283935611505368991220521699225245198701169632189509969647906389275721670869623870167723740393269015461644096733631446031635207050423693926608624382733480409665257816859459225072892940481672443853705634486865091795779174078168973660467225251499379740999118030169234746375444253445438397315013401223195486860721057414844538027141143687190354687144901253573307038967787651650359527508954792091681632470965934888151431173740892587309426985193223646669718257139658230371075622776876243223695222220435460621169432866290693048385210583522771630655049662796195148714605591743885110417185146197537289761075833689746792402413861225263105131991231896868787309065681527755992266235010803768350236881735383651510550851500290205844338016585292950472817271118336867522247557897766383387301947669333600713384150392249735162587404476925061399359210412320972353112867674164165458910137846607554167396517867315375747181419927864190312787313306686548749585944135325120205736440902899139767208907997698606014752368533865562534768343060207423405733816798974817372497238448480551582782725174112735171410688738120421953126585060774130599940509658640204010391989379024621320488627360748481550996422778403173079161935229198128015560011177157955087367535398302601872518675168954188166887104874719547005198439312489379914806134201776053445129025431710321899860885538129458984954511951857350240104907837581087782216490682631160516253675343179861433628473153134298018849718023171327708325743957619300784006433075753117017540376667029019729137341594099029077828640843733274733858996311036496255073043978938200777755044583080803594444927683527661714864152596285957189543430681230289453223826162641695298291682495330264080919558177114849846478120444603411511498511865249525792969498074304213493956146687290663741910985185370839961618861177713722318596321737360310894588199848357318403662776066257566455429913701294466804603284275056205618183189044878599075240626467573164947949005958635225821215824184149818487561376227736783822921159969291223703661476442465743934701716516642184011584245609727491796893648406172407110167231265049189961097310846493253485570792152364500342946402321774455911358783798752850210105259574442305109764998499869363929839785541153171510040799127252475135816252152440211310980521949235091985713865299841716379187598771952576995509431712358360909023625187081739190752845270455650426759548862588881248393309938034900848353497912521756209790182913651394548582561572122390387464223492600714485513332350479387378650429612563956244153027311733480143901377963127378504792288142323170328605480416750819680442919785751869606085819895902825444447500198184088474169055951320466857401739867135140600636202984658777627910709385188659107977895171770930510577716796806421420589258434921516843770672433479286707417183304230821888228201323939655384877525373546747735429314780826697436073245606644814246378884848501601184767402487129841588068677130579185169497916185972279159958560636859653232165797475364605806552731947788530542822127306689650076431638572889444963229925238000501860186115167506522568151454753227872883393773205895095347909594830278690019513171577613938320719866636407393409088525165108898986680921244873440583343673187407388926312824873739189753787659370069600001563659719254492747956405914630876255802298617127097500997152117002619554320277071750390413429004695123833934601969028834842676677918141744451633978648734568476362403330632236325712129956553236742338080313252413890274455868940593205659766084439463665973817421205338434976093162500356640974492428936697021512454775103678716132823349544132929808269785215835812604178710336286109507348062431743736446762675756406803564901350109525562770391275766803288148725002113464738183081683050442149919914893454781561576094376334108673541439595304921775526541697111372054392680661221835165835141441614515567484985221947002600513766840142979862989023838605904214910042025688692430385937475992984354677320804993307490714255193236491535802958280624234876686007663938187381209619799339300630919620928232834386269013356544512769298582565210620458400694447247811173582320683251014778926106977523468205308969382678524175349431675706008974316402193897278357608323415112788041374685771070739632616262653665981005731985728630836714133605540849267710612276891591201925080848950838911419852608345678408410111865700480827285683690523456750762972182115343174584629859281136037527115430197116014907489323388315649923419947957560227654926889971724882095255358782487905047325020384565870226952779479593191073078886158726467531578477737413765379534074345415848149189786038614463302745826055395446559532360222337995343472211711991867637589904956259080425568896005473754927213112781840170370180092556696245514483439569656508695903543738837656635511063710624585386684312467376165139166319910177567644880055451612189479547906488866316014230029550485609579635613707785397402013363887437947507669907455356736349654604812415710944418925281930434037385569685717543507248301110571771336851900901711472317858026284482454511859661103909647011288393924598689041422974401900830892916276706895566321996769782544111691407022522772236236270111820134140313966525641943127963033679490847548190347567312471673913182101148552137000322023617682297158068259123023031841321723673354061892098323085818533389819252205917390072312597725546273288145819579121710181460703537537835299131107207425460343554415638544798526955676392732137971963014100399445244525353204599666483655199682702120349412879567041011583577194063869020754120274238108612819310660831124124926813493465832036486967444202536758873557077639814295105339012823076897904650420238724844963989232076913910945182304150709601776953613621887222347203252506968526015780256195040966024996968082904035695542608011909667594731327165715206418587224724807414553415759507628292172919352694054546813196084106823850131509040262943752860335989096162638865782918726525504112043013623512013992282500249281792834372985950684537509771729706595356476144306096016035407186127235390886059395786808358123743029321961867673198387363664487689400004166532100272341663300037795038909456637653043560689271145519072835874519209710552508426474631963445180071834659075211335323356826214453781049973922806174340020739973775270515283536322736278295775744998557565610417506170728012577090112556483422240014445242356961746320454811500928583919723711496272793383256314366154673800010876967935275527812792948386424998210678746765520496214538940310108687138144232140130040652223448465878915075753082063914836449008993834043533623468759652539335619166084943361309173344214648265371363981285837929723434023418822206867591804437558105099876491569521370041841104893133564653430843781875526442572123972319993534014450516653745089512848527461607870604822747775907844183856003814314352916860571289909530840242030834193761950841366869032454193449164770100262633860094986296369453428710309558557135637991352069782609870886701649748126200409801383087257933163968342177982585189883645297398973505790261864474924415324743398204049064431329827641359070638625698595782563426662280958475054252877988714614114981153463541614364035601443952534761687965787800703038820728019351862147975514045792477084796098723676591227924777041164560535218713049587813121951240978935179302434011623571654131475967593985356113941762379265439471174820435951774407727300723762666167536995288276411720712865124266667814665200444431493054028577269259073302961625305621108183600243843167600571614038944205896684894908662424989873166791743037557807605793202591389605850620223612496274616015550376855057240450838536147671554455499349581653205067202434492957231320601450510525928818112091189202039432761505002840890751377496385063942973117193896942795408968200806652583352694645347651473147829791563742028585008296555278557527542875742970995547850774281432406397687682737819455659338509138088200280346207599640189862218441088849983380155775573225124477907552164232721215833891194793439868644739874455415450165998439615694976654639252511669222301735445191275492424142198504633894091482883577784071262273598004199283820745972694909903013996094943137698692782005920227312136955844126518783254518466593466427267301120015219578735097335122769663659612676125638205253973029073760012113364094836183909050106576393977309040379479276452505470951774531914419234418659812810234994185158704644782609480153442418678545499451056848588389135162149018610276515005311615110981874670468400352694227406859083907171363747124917572617835050136772243820150249306841644028836646215415395909219823930940848519014657676385361543173117080801028581072993946868047351917010603220580984003822791465220593344804045828897327766084084347026390513232665001899995745894011710071822102976581090432557135641946321419680970596762967420789258275802500405430746935265424036767252334885611590848090349498340181423969065451594776150571471347452400436273156399224237618753834373047013660749622347815902980342719227958190160824555288770455349260479401072521069876985789966743347730869566920722683640842753233831153789242754288205455951259334240936822932830521146366543918560358736302561288796151721589274295342493127710915694252083417411604422091991869668605109743163633330545618206957680757719229591715711281560267851899440186452218525679602230210918035931409996758327927353903146908376226589163782247256165833860889059339545364792099131820109594399532764742077523834839654571703963108719232033369673849818833781283000615672836992859810068970059692960172214052239577716326363512658698029889714774683961716487052878906285615099458087474528770455637583774076924480771076759643615697136206373201030382037721578952892903376602361382160176881323048459748171015269393842424363132706843928287487398891323535941372745598599345837647537866150972217769694005013784693656112509224424975908042959443417545051886637692167972165501158828473327649507078183373130137257398952160448544395854883677583398968278771091743438722271934677860986671223456966243251200128876745929156359441360111100941834145619349759361982547078745816601648923164729511062117821333186747715961890947192098597210816337792626394853764773786361580934813997935885370113130087152444405521467264208288073698930402825720058198767704876424594557834202579773657171443847730279804460404353025352971512571543496452158466141607817313489813838380859016820725003195624013892314365455658723360080598112283686763670788749236696774350262405326788798928144247351956448107526409062866280474864093228953471704593705127669974648995084786589511317898414320091439818212629800503681826271662422273456391182805641633043047961299568458676303508713546563448633744075962268503590774482560357263797094862469698779689814821833887138517721231036835684535643726194977573249988045032139496501525690311968657264564945307955511470358820895550229294292939736442873390013488097355034593790870470592917729359492683451642812790856078490822847980595626162374360024376652223121746445971959509093879053306464355284734125338650672044274117009159501143721116504796918976502508030323766187944253262412333683587882778808863302530027870359436382726072201424628900930301956139907796725678495756276085888865588745284402542242675553005652256229010540171007369755720818936494050427095466956988717640630551943753326445793159764726411165768779358976640790710868032589759154219590129847924394193590771310454313481633454566141122357634551242401824270103540045075885125199038837994520546038540965588597609530828259774869888190101930765960948043979297061963486337455464699259207027097495480836769484046222479639460503726512346065971064777674285760647147515211422312514488552233036993643071738015627945289118664094253913126213573597363645861721794665935063697711568242196756450012016784432005550914128995121101284620571232928503657076803123388336529848848959465881896393158456906515517743499367452744930124822601778013833242076650738345012100346871626512803409772590807897343816696645822100721997840519409645707943583530197524122688368873755771262350799347954517108249946576491932070049057330251547062403166530390513012603260413043603243337914173247958847997156158748996754924362871088446368887346955913471492427918938629941970228669304823814919526632706792272295793898688673119331994653466251410870035475162002463662868610837336003662921680401939292214138448244809162075302147457506898157152689226515190793723636636050028811921197709802400977222298408842120437398677251749670887984219413794019084380795284748817400029440199369939520732969710273001486992735177053075549503873608744043073352441405170266345376977699269581718544372877604443499211591076694094452186276107611671369673892944747549783939651685180507415196676251297750779501877078780382399480277171321412475672512962372267501102031732870898392268321345294564352566798612258300416889512790711645563999584680381524720346351202499089562409594526242022803398149602896432306427404908679152206657555419944852825416115119594942465356843245818132746074427371725519998019184119481229617682589256192326646908765324424321629626012875579703882851378253594779910184874270043664243225728312796300139668590600625632839319530499381399631954840242881066518005308577428316965028119996273419080256736412988343962124006038552087513459857362189948321391304516030312723474636974876330594446719132416669937783962731907874947479901482543758507326198417551855381933291619206518134209187057524696965312512193793832631630427684953372661038905919260774407815171902811606422132388713950571544229730667207629034923966964883567764862263143448139685397556669496714787661322293445511437719824998179131864531330728746775243311190763735368146976630708849180061398846000564515443387274326153632897274411869689253161224432199341839124608389801784743547353670453302882542301445493778681255212123487227396291276883243479437265841972200338249442924353785300466006341649840835077228590859745160221836700884059234776510683135812809128593968808634211153205091656127332461286900442419534439094751630671822475715102062689546270694488231360038626608771138727938108754168951500410769222879372798080724677415624679386723033565193338760340892285738373686721940916429743909330671626563754595792666961501685910324247919839756013234195707054265264553113508417534957841180600228276669154591771460455610707701724677264148534153979577983166071700519479473384300846134283912355446083602233511852814260314340263476522942280858377597470280051441760080912567602297143112810996311779198044210794394147482104924961388365475706385996746155102854704102592816852555185618309872877875453229741746222062552729586749871551971241264863589765142959677893359723598350998819802232739712993503428670984332732174691660926486807506231412518577081102159921166176076162842647834006433888505569886581864661578523592989436293820989945460234155614560798196281668957206763856277878277786985137737988787010090252762695278795013739923951476666126864568161356622812966705586125569704612465297815158973599776791705095661823676843673050965529282682072606280129778522994320009955923075176171952997582524484958469918772018793534089274991030733767215587034545892831619047106457002418247842938834517134552584939276571095016337062431376232471345500076901803291407656392676580752855603331792491787397248446873264216954754808662111858490912219806093559355301212589072770626949927302891318363528947153129170255640416888742695308713810154667939205805791669731546159588941819543784650698757641479346079509068982661341977407391216444676507252024369483676989669526058501150748523762009618895359023500614624870356064048681491089143377886414716154468480519660337662247973487559179451053023308870017033685743030200791438750868902763236958084163807740900153907027878456520862459053871671810817354174724883070394229969787087312927944407091496579413351160269524323862280218569429507520844879837777824657866824911004210083622218507525937143190527296202022966409402372981441377549336494095136829983233922948025218367164776078273632048625041527147083538543698844909979749004675184882142511847018192010411564472279688617524915798307368039005647825212384072973596757772767187566413117708106739799472429244691400606293421701254534276848487953830927911684099798427663755766416662974874839287907869129084029745745890635790585899073905193366342575763786021363729560560023551782006479739847726223388448217137330302956686194742255379763560095434539839338891029334968233358739323408530447385748112164292590281631131734610288304157554567329797925881954247149567038787465393212655726610644118757206493982210933085563146483549506179821824559273266563614965761598946507335693321380651083497258520039935280742196097179417365399211693116887690366607237681051519572549246199222155253309920094757398982953308757262678884870233027855214255274021625680232086414992333893426278956336935028886411784808439589249485353126585674050566447369936630685697817488872730773864370314916242648445723415213977800863929818153426797187970010233980083842967402931101441628099545411268841398737873130399271259393136489051807280678777613044818478254455823939131152065197027151159622515705072977513257591512818280492217673054819775326931385744584556671392915936314782150407224854577371140627287465820810778360682298950012951169381327916931140470497494717499263398984744551789757997609675006264987268528182341234089138496859859677944362976013474281761266843614994007779790099105917991190899462857196713131480382318263849896822256627044810480964274343334464936703402590499167695815356834880292083317025949769866050188094537147909738682179842615216722058846842918786375164911624011858800399849151373405527912852094380481973008269342925823541576432145009521083631392498949321381075962740252083201709919419871383377764936095308993858997128178843928861219259703140306920680757690168691556386945225393703108598024838752323624802914891346132989042386567231907016609820431405072490142507915062927566631128813037026785545635125211029903050851641276469128551157231116012330749038310875383378290369891487628746235875893398241016349677805272427872653040326323229347276480404254971222730467241280172330968375996398109572339556578743335297484382684404758631208231899512630737665193999171640276799510879951337718787715680210920975227538312855624012492074068306157910849324112124766893944182046691565521731587110508682806877460466846214763181373259420386359891871152318325193771021702927410329772659628826282246072623876682547035805484102603890159137372898789222242685550811365021301345948526296613614830854558639001589440117898123010158460410157022276074416961139306841102737432200773330569868761810330790650739038887543435455667190095206975297162899359257148397345461669945323487676542796422354181795165431629699068774179714387286137109381346312157273116726306813977695179797723864449443504762233418221460352048854868982438823793568416466981630177244399095381433441919149842268247975826363377957808855914617373647396929546854505982151282586441268565331180095597466671230236837313563049048928516011669468562095029060260292061730024203717376250061124869547412559234041887610645231484482882684540520813936616897669135360921762758204238993894514725061946414365655834810816188814232278492600979290250215009551542774726363471376162671633136976089723198121400673722346203743698363432879296148730900257281419699699082002293329853684500548582389551436046399802888621541439748244759307041331141276450126213745478419140426011749913259942702359105365274934451654134312231234978774562592036319133519309754000347247859418981337245156729307188442036029226553984478045492869188794955153580976609630134708132507311253303310257123320874982637333166163697445872154440090625916067522937585236043331000776743279149367613721586304679559298885384305050086666579239583578809818322371686235113899628625099021077139810657027445456803951589416815954599927934525795391629138188233811631625440679842444510267489893817482670901633329541742905398505868669952355873459763489488567272336310972451774199379854250645953295631021522122500644248649223277733540665040213844475548495092841914244652022503364576409342937323747270265994149543021175540779682662681051202419409302319452629309132311026760651378465834093463635801075938458459131807868061655580704595225821603533102723642974161402473811308965345202834310383770901786092812298220100013133538065853296606440247113636593798615102944205551995530575338292348242126555754596591353543833594969786943442874837657761130385346927557834881400418100192038765850788442121549236637554574808225442685804333026468321910167569684430663888284433296198683429757787781107238245011217545503341243275761188684007732394581097997660302143526636227378308669484214078924584770308024625973501141714320429788110998961857674362793229671888706453804567494183059718561837369403077639780335817762397396883960511759854361225518705708046406374900157550306417147738608565660136200796412520043779381006382164893456525335070679021502844142106277951592410903878493272448354242768947803567980153162482531493605167752330309536443528502443460341914210845308201209640818088853010298797022466251800683127348547634679378218776666161460084346274890151826347618709602587209504882306071416546935595782210421419372339216397659439880892664004060968134727328995883636225422736053739750035270976656481531312067700710881900751740399198791533970634994385841172897827785139240165902915984347841276477266542477119194110107857558050593323012034785999856820758754265425599971088429530084891493326513677564104547909341734281987598059516798681445580933058066430133338211086044012517989297717510729521236814939844207635721605735830182978959395925439897427108562367299727190808155690105437099627461889362790513284098198870716051593580310616489385171073744657636244209747688074237338281955046501019809515136311391862199879805688176315532752990858897679693438910825249316355456334207434421063921198083578651118354112518152391524055950544704967654213555374697982101721933851653147045505157397869359912431008489976978037179359619485068330167565144231782002414449094166913324116754663144763213999027520789030538907053340555095078723005037694338934069342675281397197786696989988960114476860248639836009225525598410951932589413027520941209535014816289797740635074788775568936519187309340783038488562380495009802743924118752058612471006633049718699902478654924053443278548482791996643668075194708909466364490281134241102743611643177265484221375471427078403465209981708822756518055392836876119473522593147515862899812279032890586761556293577028552324576702095308092179207592276649216383732415769723322170875792150225384554997280212451987481408095137709227205926140123805736251426088287038370315287452021543741041358032383997529011178773256619192481907809987067452612581278950983518528211786728533141450344846308529829851490790196131871930911574823268892646553287670442695617484852396458821010474704441296867183176643458117541528148267012658524193476580887008312708056476275230163810332274641630757700403847912138054406740816238109044133778143048312295864948337411728793962960101863391862628351504358060828727795905567481970072574933761374698041087735088097312677467167648330001211314952146351248711163771365977230010815002274357108389216567728250408627730666892846992323873794243017768652279811101927688357539552884847316617408900278768475197515038593550085333653675080478710059635089220522444943375067233147800280650668645505413908065343311924600702178420326881537849895338661058200296824913858715176878264196179890729104687694536537579248778969211134139635478807908054627230294813558374544134774253922364706322928736980960546234812938087327824419550092779637910150116064043362788543092153024072895129666589457250878192522561375573660067150929081742042950005407101795541180941268966609985946414656017614429277045966281157233626329532344444051554124003382883897637002579819362657393406874346184972663570783018868945305128445632189041463100930634503073086768878941978438544321340215013739990365108656549949583406112577412451070899124569502475125239551131187513407465964981322665658757161108045009923284272186131087848602348364316275589640055175640151662473891626989619870049190514997773564465144214906728776007983750979353346639611686774009851433343524796265945482971361744825078378134906776653014203983016253519232875851216719009236239339038731423437026585036139331525550745261640486546390215430686191905284429750924118640042898984322412025613960859484860281019837964508129502404009801950500552799264592260863148667479416486581500947987228860129246983026657288065566084956568542992011488838667894904741630897148589529499025507415693095429267854004990365010370104569354452037731617193570020617761125366686024828935535170808978097091985987664767896293817764902816523905024130148905795717002862996276489855199365596172652060061384125325511938648430109044628792777603147606318889641302421052770434569338023744604255151897327798258981817043869336946739872444054654260998513790369488291669735535076372194085623809868153104167613377950690189003844739026339828471349612885520849894790546192664398775620591860826845334478823976258518202164078661761696208511486088322949322387740101816923620089062406763411005233526419532191549874943759970248995576771183316401907290693666363924442499594253246410751603971760943879074209877428709377471635002700913681261948228788382521776579997360339851477605810850029989637881677734068286993167433096760587596587164477262162794186394467696364599938337198400713157579221354297063910261822279649256291728874715250780319085077692896784967584690137981383450695697498412193809809172270107949275324591875682284105416071443511360437169954759234343600232873098378797969957374067062860227167406414946903024806439884848608578618376727296216627826982821038531740593683885732332767630288333567920783676458933963179324994741898108077648390628296745738898240575698155551109399658688642763408703089352363446309564436095203582197344734668550985884342746744215366866745569043047222166543393825934687062429789062298825907432478823576058555732173918035297591210885319567692590131348198784290238762220034443026215760953937317062212802548005514661586205342609453956600658092541414722995838596287917915186221942729057300116576442740466097399782378141898390778815890986311227644325011701815934077674397503805069287157208773303810503949889163650570179466043142149466974047748162202064092197070622736682845850961318207335065772489471949141179404335876541791767853189810056486293703919748175244385899830678496814659886406108615220435660716118055065679109176707290593713705065189253109235515674687386559228163550025970214638055596967581948262226337155211752277034866612803143298096118729775368986887613469824296493730809635053985457681697291209754942812430286429015064928234052302230138491509923127867838214277646690613580905151639242542330234470924702550377427609754861613414851517201214934690588004602092829978749737056973442682488370156798601043576946431757740734049416696451983049908718031604346339550954001715629559601378292566176378655920333972899433467194865107419132207041085257910703615720127696644857158712584763876665045489337274741658406421354937591959335268634772538568086884531806589493094012666959687538863116572006590226303038799421982340185457132020275629890358544894860619297597544752488225911952235354706175081640828332067525055552365966067390118354459158525514266691605342515531973298466770322163041563518946436475652526497768083434262141363522995045506460550608474269064731412627191148147955489065704540422331253645707546830979975879726495497044117728677897210529845564360684124232824250823138194339736842511475610024612649450874287944155119714544003420815652028968742233369700567598973835462664942768147780399564836554735819803244635564502590601424244612907719105027563349401267058174482472725586645074638309074244975600992160666055930595557858738325565011336455654880164804825675829645662140460888991959567696944154772595637342771159370951589438743526971395361838979959576506825313787369131586814220762886560648189882471146661687288255126740082727070131196273114181175954626448589957893382058052836672533163576667218828546480210577102459753828597779536316899511911533148987481751398864335189320417012669272193518998453279847349575021395909478218494333021426978126553875541068235643277244416811313305542735239216509931448081636785651838135993360532315493336245961814748905193861249750935780967142413076937739263525673106106065405984605625231950626443126588549850567901480758063505638842979147691551924753015647882469620100404768071604550732958088757184833346013601388780141521664220318886681711187567170654485866257598469480394552521088005724751560120921138978557239455276158693526265285420407659964191706400152644989765868612615312949725837222680591482524888454334053804515190566650352845755582429576264115588559329366646410084794700075785693473570681796353561275088312999219560191423628918106504483406291313195477781417556901912472590888779925160092683514967822989581073278889477958311157699892827243644972108282886572137547896184496380016976615536510903997748771795232258376374915660973899523219679940961235878501459490573688457303461327315003766620306642161419795737397778027047477891130984484046659457102558550509798888192462181840560488382872739442724943481561864830008736048956345192736620149283828528363146326802399612734683769831393640209043442508569159808749428066221734037552495023051832217186502016297832117809206360167838047034214062064211599508317701293325136685568867111771777156800473517582063872624451731331773022350268528454311747711949557764907534530153701919692470914328900393617091698726988732848488424474312014641696768221231247372305004683632300107904782540169532205447143815287687965260379054947573287798353937476939566104393567363378786788981301302841633638407415474423235950940598714904454142847202345254029378516265513532964151727506184654788165864741356765652426960956641806603642767401972261433788052283290839049376065839888047617575129058304144574235702409482894820717587230769482434108322842408112777113078308390830719492327935791343572581709236603684334274634957407615632367166715641965122309003342495544266741838860526188509997509595886450609388810429066105532684496060012414739374218115192388214982137298713335127204017228414885902571265414030735963895027698127104646266843245552863363374917210683360577450246054955071386686948497401296612460375220154495718069306971089970861743327653767636376373600185876392258663104604364180347204251223050300504122579150212286509143487656235438869560103397236114917212409652016982384331437552996167768969437288759208030840096300164219149485681292058984248345732379707741858190064867918386736049821695343326661218459298430965351914966961434658722636226254590457479331077327628383353817410457964199220490954458979439885814123645615034095839488135832870068207465555376110119253046855293305585938893535326900172282853244299286816476770578535035267408675119716468276370840493002923436118198859766930653079202259590654441878792486382907797011614352112008312933133768281365199486500648154592543451240242890261153422769141142709775136071179710687856163988398804297904458055365107075178684711856604371120773634875831874546813704932037256620995125512350118698184396819587740647065548540926137183144585250760161809175564236053554531223151900124768846186410041894855151358639965628671997154011713460706272834215592282748382259140519846573939653162504585826415853439231680272031005219193797704544807059944720201030735860576588650323325197163462398975606661807348114868539299955339279044730714590059427360179195531145603220752535372504945683075717056839412016911451314287829458307854819054753469327215643555162516130185182505615722612891425346485493904278043460142974766606439271589228784351819303579042155329300428413427113625966537251991769757599205270847522302774769907976083973491922768723562029847948295233187516200287293966568332290702255972218869102413442491979745433313560980530342854922810821861616589562305804737269724469661016937842989974351183614336245364131460872169973426063561249968737100849858754780009598545498743847854030512307790697907966263685634424212167475832017484407165794768818814113696514917671468222290202535433087892105736903020799885292176808232967351659291715951120190680349122749445178793330386251208141167597302313425362675158662962761077246826565650044384064567342379321644746955303454948340594215616115409336655314471754686510811631347256088768573443361406000924653046657910645158951211237170055811683383828611165384905924465970759556344861088702050870308202351347173258404924049875392291540604194678365989437655679124267689234476700028384251502096477068895520717150977673627091571279368491703397361338575656824007089561745892673308593956901594353623846431986990483309854819418127032615397580189886305390943064958612503302903453661094936559012020913481784685062709929534057351071878757518295850498163190503443680507121087240941226890274969809301100074726576258792061246588265103535157798316599479256733962098331217949832258545825693201967080696915015674566977715674126173708981610256237670926745522019369445503451169418671224725712226264327409074858283750011924710245097462093302465687502933181108200516128683225089030589992195394120636638419551571618776892646309238256966141336022539193897958257267747522727644761080730071266588510788815121417038072673309920946159596927495193338615863294783710180910809291254291025101119327467505745612823282634545462754939255593088632839839615885136096266857890284447952607708317518819262783121856082378070723379514571780157075373970269148515248774763468830766831572620743977608974552091571163246252958889946308576801355042293387850159724768210411422392331051632771326109184736636066699557380845387514390340857244396930046631826541217474325490677093846153586004500368433766078474167740803509343737046357002797371595455296133450085714859891025331693528879759883334045221422441834808181598132621734067888320718063714195608228783095788222099359807929207671292854303658086446568151963324039284770321047102244724560602348774674216742182429612718311370644475861643804091768381502607332908325672118232964776979822664634774466686874904025542331346572345853420786269221091462674786800776880251212374598568091336162876326020164029892050486083570378523426663692794063067508127084861027128648085863275549835606182161217212965248000191909677769819450131601532062320340848652648493274004609197614919164535307954903705742034954981527185588484197911753722318578113394968204393041173053874287157779072601813469266421428163914380072245763126696102156653330863846888208341631684170934622931975879577999096432090708002530490262689290031157816359374627668447781042545743206540371737731857840558090305724775792728670848322380852465607990454883864381982447005309288643531071950343340009052004232070507128567991028353197254296726308212375898224715046979911626564464994353981120957949926494403388468938788640051829112905108354246547148113785702418878970392339757300586335403705993597062259895049976153701097682185037274486930947173304356968845064915753928821054331949589610135311186248398481085810090886630035264491204478582733570666996211943077813731111459395997861727531730148569434268378778916498464858029232650285066200945709542347163920270226720793599463023214514068787989421829804549113244348497384678620684768124947613077828448484255736105342859977165204375867229758281408647938364126589671570523657770649705032392190097405005243010393633979604449692235102604333771785539161137233093363823380800998594140719343396964625375463254720516937146354209900141709915068260052521462120778439706694987088053212401175645859399157976169917626719108176182380558042816662335579556315586917790352118186260982155875677016140615781672190353687252095724291360715124290436967024958160474032708775398054728885457451933722100470785697691071522377222280046633273931000457510916238673451968558828111178862681692074079460398442898625273454723348398691933580007733037841779303433695431007962894870777913945216585280352565900073330721958016782300202475735053543545656555167441860696150661283521705895911190439223376974799594641335865414208631605687982237161267419288919754926245443367979483961150548607481367867265054244742846247761604588022641680850343685684381874744859435342821069156969682740478028742629949190150281332328282465379941739101440506572838977836684011047527009243694917813443194861408231603436537084833813844675766364795002723339012707027076857260062964351413308104342342117985808958244079268081360935233013207491194589781766325276900082601652658612833529369596333931748872559434978750495015562011076704830413480953766400349821136129229698775225048080839423202785287797714223558241840959970062414017832190969941616085041932512046605508755382283779520372929935818105673439194960315214451590721864436430233987272269940761890854624880806644238699725131138754525260313225451090433490475217883380006137156989586400113469557126576978219184638686953826972131602974799790688328748809570753785084815259902108108112229654314752228556426968446195887674815079880391828851809379661021370332654753767971409715669035274720725713482294465458507436117450419819002095229438368576848726433727254442571106560894456104119589451355300570903496957685051109128881313462919835777320137314872085359827177781159690130802957365776728915984596837555150162909736466819718846685712514788969934605073799749863033194014240060019708310732287253714065284177748472633223072396900694562991167899121192288721661703268175510932218973585301928279807082087273645553740404867762461237418128358849610255781563824265861619889645839411527542236847064715320788746840541052533088443121856142127256346085913135271517563400009884002728698032601096869247554454197020803040242906897310495086331862439488734103797068957116611180596899562098935903753149763777329580191836259037180367252468947994157065334421396581980942664682250567902007173692688271890804294052995554120967625576990092227036132365663115205085615354739077441929221721177697844018144115473405939763544849258017033579790980190702338456745281432261515138614476620254297846172856059706928429242442217241479092252480059202532220512691342763594833626867200466622518408672385114744197128277540217511028121804125281906098815064179385276433740642647852622989791500359770073991078673860401381594285536647097795916644689475534162942636558546062040557676789064560574975273478415636197362469788300037953059242636976868973185611657765741960568667050598192338598496488761532817412005578534029760376509810892955181683184049263762645426070404873289691705188919107215304445348263431928640528150708893738051701152183732265903644909799693731898430440728692953892621679018243119872786878095985653678428925906392298978446289847526597410562105645055592604645737233700952785081427727809214154484572715137244536484187450278231905107455731366534079603979371441590063067183516720505826439831228147740517433219202388661711720051646497574988033536543926138810714869557317854663347073993948576508296447308498932529147219093104340560047538428654606542084532679061025730757191541142899605106233003019400137447512659986216516887099025970343690598522638045980815550611177627444866947649073182716936868393825672114464632229663684904081002996426633857717829307472620627177883990469810707912501164473032539237025719899338319760247622293646188380008739931585965711126741429314902953601541099671241118622979087306429604995933910771219451538734698203854275465238109551283726987400975838130486861044580420193087985378262293993786222583373878325394810004188117100482481162995252857592001583428006604370171706174855241673756853071002300029497665367961921977643373567227261721144055892628605871374975245773228519882771221545367937815309370724019778236714068092890347573010004194222359546345648796922795900405371827765775572140305428464695064123504272085318648063336535757936190513290488732418641001135666816694971135590595879941387882635689578379455549184351912700690689366137577165308655344615014791746868281020947725026243224156165924219788613173306589577607666863911589562812055882459748862967701844282128443894366353598150078153199405408971797912536232204577269326893247466907143541703108608909485961260410246174128175230314896078056442958021640154684332773494270200051340073601197048169411323805228558579860790268218476677440007450578939829729238102542425480694907542037887686491468922297997581829917094548690512422054305473197713812601791395201282534473811490489328969642822337071180099958338395125096449423935347157008283069335127476604638090642735952365161153906942699588187683202366855886493797572068154076379052580434195546240206948936103360476496940435467567197082814724747959908009950930580224956877617226899956895245865796593448749713736048892165648779434110633462509390486598230209348894308327272995008534733083365181623959641775051690087005963832960057995763653395999400495695288585575381917600504419508174992592147828464894640148605800199070630609182763794966297423770852960623699859547243861912231367795432814100281782302135913541985408033922750486940632066530868530765830949494943674724747522456442749443659667332210416671067615355596861149399529288360404615965730876419334869453311802549191698996338139233110989120264926093634917769226405200838655359019234991698628880095750218616722487819316725669673876272857034406646393899995684054237590386169765426123477581851188188446958176961092725868053591927889327441215560698224243239404365484659330523408759497760464073689215231784549710271222158332943273380457976999516488176863185327216952666725939110221541232898987156114729093683710123271261335628010360547044308478208717596296343714730533365331743655199799498158365028988178582416296980375416702339910863150921164518634363665997762332008584715275455922920621103095723845969505776322903600192834332292040697383887138981062675811094660387954314754719848454122753103909339963217460130016170304810018168770388571962075726130802215508001926610956615478073032153584827330668242531941642062422832334980078106839410429863836317170450138684469992495901790761173027103185780550670827460295107749068979790311376135128884326929334022649126140167949229023495577472155108269151283389392130262070983638303255481849041421935325982138356846959480138141102798391182521665722987414886297203232396974185630143564730809507804077283920492776985552442458996154444538034472444208830973625083364889091665263294478356382615538653172971109872593716759971518669338826197033786864391969801551123207987591400272257167363383318028011517303078485462479387400445806168278428829129064704124762070912681013487196499872319377182416792817819443538951701526528362786635475536367172132991910194897868782388103740420907193205025011677971320509525795876636001001147088677462570496038280379192118301908934683469010473543174193342271481740315589615169986198017778122442124478483743533282743964886226383077092538822346717881829705744522084248826143693928245459896091925729920770445926779820408446920518060708276754775184460425909029422090380812187112743884726209418010478975036983897125541398417598323132815691143014385063138590460496629189902999356896343387013489918085540689379378375696910057110542707807882303049956673438889343703366584873501164654568801423382724146235787951572916517828376771319020632866465740970128330519131698288954242091662535153680559309325339565066760802033670617589058792085674224361516100599610847428623078497326544782332653863866073011213888525471952722796891955967067061067300772043127126210374072653736215569191059605436956882765823457741805363629034200324532711567552101083637075796144005301742601933911408461834698235136566509175408236747535989579912064546901404076225358742598405580156976460554134130986934366211142051834388580185117477859632149173916531736962089966246710472812185872390537444868178222175629233426532215802433828740149980516806351100006973331600984164700323113532059190634778804082640295305943364543397915838434803353116698680719478281173519551042733982813610535242413687926046987384014478370547342556705205769657648022705628419081287645556613465619063136380881406200462498140593497322460707757217107219640243263645019258249487447456495791193136068433441091738014894982361166922482239238503458144134588856679555361921875551396924466125249390587879000224415997349077317001600291689657580050144621673760296741464656683017664352600976907253093455506523934314863385273036359265721917569223740695247101552916592227339966838498504891556566337754275121950570604942457223878771691344194771804098360194084470528563556330696420173455610647229377820976367885412750310229629967705672903428920853598250450354040318264396136027798155354938393229887982894229842456189680984140586562654649377982518809352739730673681838081902362148419691880652257026803428403433405147304321270176095227371801304902984473609359334409116224988638377566699162709591251498479735356877121448169756359536519678730789933666941315719834651373542334174288428613601790422052119005582347263147841018532174826277774620679114394939530254546061409949820286025183417817537712112763676993328724509454463196045607507375037691440781821993544961518625688393982270812606214015384887096394187342065263948362107767245076003739325843073497979087373526806252319565908672168617528701913545575029919068018359134127253979724051111222980334076004684030563013253794962484570589183378876288510499156282809355236185485739856860039879675812846303944922297888918875971929701440380275115877535464553450182248571691082039327271359873103127589635574663081134459234577422846509689461280945006404252788719439479391260853534212455312631704808839169967293905173416691820734523829220403015645266078477152932298535444080695288965287651678226382591517158612981101800588118142148992536681408803058306419555662162049595270355336624770619825650956017310720618889938917086802554824948897098921011137938835004645707394140926241363169150070402706721746048212019506670815045692163897672619007276333364621390086497668636028027392882401442769782037473579718007516927089199101720676237928723559191076662896723396265591590057606153157848863818857436630210490743871915356265547890258476242110401277328311846727470854940013714130379996962051988847654830351070642573444896821907474779893256732055599287143296007546946843279528322147385298734002996491235848360684318986118957630502872072306520891301993369165978269391561546879331403057485732810434253100904986068268249978720280942764417134447470883435739728464356349784318202541709280226945152462661067771655213796344869774372409795683793339573903188674048006408527581327103906555435853076223596120500108778551539779878110599647015224459532117667571811227960732096706592237334889194986198107048292815861053706344339493968038998306759192679435752881629090801737146502665535279503787441248616788651350585598562709689035509787440088182569681325875265782273254947596497005124172258093119740949120003341125469437404862395539529764038996634755000502828292053666692739605384756820190974134718333359732969841352282966876669618669999768837667505130411609453827736113628551243180516759811333016670096287834332567635436238024310346773033516307729191890992084069379751945181325005690067255485961307635148271778388583339109794599671655016389104309375136396456712908272001544723957501178367447454089280915501189085106650610595398462619100404053018974403979059875266280536621672423959965244211984605027595831398749301835921178603807897332279871718244377440434048387309328762067771133935402285045833303132069623919726298277936267977639054075767940010057323514005577508046428450425567883400662438978634658876976119326188319185424830424002493053693884187324269940657310357490162559108459301275067565225124244554492713378599314594081118949757079747919890919770688384689326351556590402041744442726577747504808620911295608311032218734601981355296059844663494027363705999864114210544030198158944338661271343135357448526114902263130729541986832372275730016459110603226331795161690413929282235833921983086854688028054248314348309474068033427095135980675826623902997056732780220107741892464964382151221143384100692193588913677318751923352238375232746276472538685272945589604196514163936769699871078886946612075275694142438190152188330173225639108981875665332129279790777677214141471416911238740609703032977165180449950894736026379504487065288246857835211735808867084510722825894793134070323260772214177836675477008598911803390446329752659259607160351357240490603213455632129240402427515340758614808704868598073400343228138963431197276856875069099339177457882613713359048581908509514412401065193460382346506910650246253192472544433819804413498590848790206874130442135507308331903583138302242754450148697995361519179577657616723878261678430448250813057153308216263459182308115578430934612405603092904530859442656133946396806262903885945783546106322165360396716609961296021539153052823963955790722642944630153177589369973048800698244028031216939876306324907677850746230711791311469335629656568917447418672060718403298731437699228233918908208035015141856319896303057068875337796299674717502062062403797502550990808106677027019301054736824834366770686861274426682666270316335746850372986755721477820328992989798740361443653953355838692421997007672126882814263887321930847986460158887654369381324719821305118617926077119933016993524944838896826478311238166456313544026828893890643502028950604306928555453169748613453694377933001478311691211926667270280616888980497568240992137811171205911550902791660523896207188365921127155250154558311328848554100225169800499972018010929647454332618425180560112259671336152155261617144404933559640125695289945477823148646359454593789448462150913986052960557417619829693342655801184673398334929412080159792290496137895370664324004786150279274739189879151687555938406350352104974727421180336203104143155239359104436296181851078855793664577543225771787280881381296803302995330287610937862629936495055812601772101876112008657387623563480282796151311190060340511885008113846770044329429863422281437945305686139283466118276711741069680748281889244816795371726641043272373338083380698297080533477671797118573174135389127446724264838984671730103296227973216083057070586669488268437367432029658029539760011268231873155141535847152806272800806355744802116511657965932915173946661577423415285887785874991416760285863080431286969245570539036126661250019446143195880752090319057311455064553872315124551151534033510974900969592292089631974967656530060368243251767201763164309136551431657941396268505067170193756078930508047924205299889590182409902139482077963082776347071730143254459020595323688004432719919077731029957881105657476096599904963667532416247334945534736253353246364734535036148941084556630742531418382365186291718628555725270027532118366735595671814236442855710588444674493341161778859943790523969871932767748718875734875849625906494477243494022479462098038377626160886506429817074481280049672924015592184028717618447122497067869392556562159486329470812616944378306012490343819502162691830141072088887628030142230357239855092460208417123177028367187994448847019248490665901964208077668078853886515633166968614496919360794049769532123557853115647558500746871645550506512130295024096138416555171150027671911171414861333226684168155092977565811117135016080016498155304871094729264544401079687977214221001638131651953651351176624179930352573772619050627419272669511816616262265164761462469722062693589809907988813794147664784664371131066558825944625105942426511148376490921434365082469237129454436686586423805684889930552139918300904439799946198481108120014363666966639870485252834158378169964965149066774398839829336903753000917568322677225029007628150516806483818371045637649215112934041658516280135282653370129898904182262568149973817318881745968068169553412431774890076814747226329842785907801880027582685046068086859123095621872565991064089707977424512118037277215690244622755823311970107112037117844141135459230131318446881308490747535315308405208373140765455324449875093231290675146745076923495277936024807973576841987952915660620573109722906513950671691564035373661200401592377897124240474043896736338082864487009061646707596136890173133926831370076506158839363327724022338475759215831250512660168814710493601880304021486495806189383074133951053100671134579750146147593521951297734725077011603911152200492837051824559512398765416189408496947534454785503930159248374166967320804998623766828083538924300981396220683874029346768840790697772788271463178941335150054859042966987584553602662659740259763527261130159716215941161327713076437838613446842945755666600593662086325292984782047876788215929272720041788039703052624639119325543262713750468981275623461372387211235514496173053797686694180946010719327129662788947486588182718831585042663116770879482095286710861845416587416259010222796742192699560851951109015907289307105291580643768796420965848568279685143027633890610880600946684881856725165730840917050542698628815004206237308540921023951665111014049815605321346479358915661716246237115623411404975180682800653967828572827501692059004603171899131183592544262703904325216398571535426566610666337062146797182987310399725051198486342964315147803833884806247698312329577169104745991515606144142891450896218994528517760156082073010175040786462708081550050080887701487377239593638900499999237536660665524658588746315832289345567651639899802782530510370819673759982280827053318307234449279258969525443729072697319300744843974463557790285894806573900404970639759204498867008791740438438282058750532131949460866255817730341771294550726996365717609248619385395510837180307998823716624131004393272933940366212622627117814943253526274748923490300153414987305002048508627314495269009032431032088822352862791614207397783507121151415104997630929890498676225578581380671202265376658999238109976046389922895805303980726767235835752448225272264364796854160249681972050276087560877211674336410812661986267814304304631200867125599526203032926872928709587517628536474406284960306887709679589635245501652675905727554134154401082498338388337517565861454187909106335186958121778261802084940489337276698286688059297907998001247173415361227306685606111943206867692681045271029233784474037018001414544635201274128014173905989368772110451159479612833928749233647456916724997091669993269420176190708538874297954474773768307361223100352885222969302573169992843353639940630495639099657866730024144024741967533918967829547378225981908767972870557927063292282507745515288602751389512155637928547920101032082518472930238434489837801533728916330534711815800794084384280379565985112538594133854385821136571758427812734238275256278272117771613068060001491393385111703757546799966129162626358178580748226178191854832118092885777696675308247796829060321896060977575487665503525514979611952644099948011412632854236014958409386855212478760454638806627216718968079010231044100383861102508426628774269695474120952212294028439177874347342926246979199612315124018187174814899363043640042214845707654072551509883007874918948689453826364857343888952355840267430184092114655491718573632115654451154686684046941435945453020930276996749778090714009108814236744336483199250945245674815927831983972645810887866456105833924927574682884020457168153711989145576425224917286106556585938882794006405396651548791499678668111387807418199698075753807227648965417824218582524591882712303086348445053328235374325097866963462166839681418617033886514367328818321273905837985414844401343629179229957301985796842387490658513162546630872152366206661120204379725188280696444443865864898871301211212408141154034399741843694365432169522093954571649064998114004993940386149548349940100469954994882847664979465476596039797379267747605348119408329796459488036911330645931895396758759796908816776703676646485843287049051137092952864887560469294137037791886479521697996932321916240483854548701759762023947587347283056002585091271604800832272825126866771143978582809549815199105078930565489132120924338575705277706649200869467763035869404403038754345415536401362018319079528005905415119956333683460886258203277811532461200657733175363908500476311643251840777536794327446889690143590021838063806047137600671337553667296359567436446195385284226862061867067705444445779110460127333531034782611685117682265377004311024312639175498830030384877003143214370779570805263717957484762031148358807000690951052304685627034744434571824659317536867374932295258095049145119357592354945937901540874747486186540622931552390256225390328331989246074575957028741579784475448656169118279258576458484258767066072328993093436180183126533788956037774457634606460128145726076327651005189849465172547857257577169985908907141257582948296479790385644292869470336309647891955179510002180794138361257753599671976423343131264494556173363258758081550605627716437609625494936607929650845760810121307030314126561773970219511991493044374839079817178746894290367423762308494656852197751153096946218613128414408852371307571256757933619467763346070804587634606684684047649649701314102523997517907239310705104048643889931077293440749197935012959905497911118971144762457418243252446778991365211204043068165338226977910753024448167009262639105783302892683043075955162035306546080092772294829300744817877166882520707338428466182933584000898281110577280446222554694458343212683563619707994195993265020048102198121862480902856074116955945804534888265115403003647304171374608306662367045932384377774143989535748463619272761687334204179262503304096774856206453860416565826551015232710742050340034719336862977866624711462165815132066676359404418371568115808920162993849930169720847235297408977496477680590303947836298658171349777204445017166706275758714707364060432769105201360750452337552600448698747729179950315677300602070783723513002952282669296704601539696338275359772499955617005821470322285309058921060373632532545527498529425568414439025629873929525980183632660437402193867616972922507017457918701296297664578968806348992969911966573674744825721290266956463352384103993883083057558385154939580660754514907583901179849581637204975830989515190403245895829497837032332509701948726871871293116319440998034719580067982544637656044451881857323828871364391223333135064272221701242901347205437148171535042907094870394726784222604365397574198182626468839650829603927529120456160973201033709457556514370198579814354898700914134457253086366950171794728954059149200595409266632419824065844598744859812568124099687215924634518148618427194730589506042704214868484326608087247736220801114615872874758150674608197538579410855810326022812694223839199218778138466498274095706209552534996153160256387734701059154405690486288482834827293884520666555316069854455873284613401804480258001142250074696699994749875036146949757868992105536099963490265552179399269837998797924935131408989601802346451988117867000336326916408567852516757545978466665103496330522427875642372461729095315396605651310873820379458187759093381683580227447809553233804852455257670864052168195701509557916406192885938162477412635404735212360256020016847907648969205486136943059207038495313237552780531370050692613148786620041778383818176138142770405236960358503237243553360831745337437418819233730974663518923251959173820999498865624996700662172817762717104310909027760856606625560471755200719712801875754775146986148330170090053481318764868567970265269626035299922896970817262814987545617209649544217807207497445721042300907970196876291271314744540034280690220211855860148795807238392694990718833440788403985245737454130811336654069686440123606068019850418590918388241954325135517527643274737814350434664533181742042638845935445680140979420225421450271287498887395190133621868278985712365562258607652042884048804608228170814336669475179650570982321697299514032544885880636920438470311252939161500262795642942699255307034822531263706835293973614914725940793201582183875604079314487636744152616352430469605786076792543952797813668177791190880465077895618010612492888034999051747665876485882869670647594268690759907095081747334675754600995776097325439394935929468097548599749250892473763173536678365847232003318208858584541319621741028537176582776988433582777272837698547510603886932956114808268277518716847944195908030971742609576097621806186100542536386001120566842549942500715890816552379550076708522614960313623851290136895673025314538320629575576770060660102664305328312467280454934946133475260868276759459049046857223712771890003239797113244581289503486741172844075363161043557480418147115185326951258672935073627400505177766961614105384454423383854310810058318478983497153372456385809322008905390432307687475707360191548776646039370910692606096166311613383103067201299590985132867221979404254959303563377480183030121658757126259449464737648611526566893843589952367927411441881337242858480867596258165340547893725180561798485234520107732373265505392336599064589549795235193222036140253885898383388633889845808588083667758532445988680145665424655531163087358386792074731230261590078599185556833884313189311087420847678589375056617739342224295186840165852144621283338291990120281897202172045389462183311422870851456665139038567939453971468988618200655609152882752585043591681497219778988032811241739594757924611800980472866897010154261403251946011566706817496560348033265307184485038991519692007106280637090080202355044114228761962713698376679589569347212071541580716132713428246695475646811680240978973544786059694300801250291502490420239566780505254533896566217179043723379593203835860828985331839267636073389933323259751178069374684014917336806663941992881626336217942633733792615175304219973194738842029861446488099093390091362191140249800982045621780822103119946995243687214172508002525182140483222963792848094231463301445801171308792585509929397191857294784671105831934564574955807112458679816233673715620138405513989524075979037734615214190354337727364827127078254193696429924848460096074017366004958620831100627871360263845015505047792587437387304934630406301897275546264567204566523168976825207451797131209306315396046943121388965848163582469045256582097086475894970956607257418059075989351864605631291620683075991989489398556827494462694292104316824279597213472370817241950802531531121160123625676434804017661287930511476629111260497402861807858567668626673168388122200342383159404598975161969069328351403099859630680225751383833523143124917627986407804977608557163576144968873074432778387776242042509760813450589347624647897475046894254115023532537186239609077511195298217146457570554816184603787810863075952961761161891832178690634874168481468384045660368591049055255433669340462393365605080580019654309882335509148959861153307872698596179746756141404222009907309307909507682579073971462310604759657323416029675502125638581171669691606028743361411923239420371089801003348990116219501016303857899823055282201921683789236791354217481920758766445458397768760035551323373599212706772662023916950919887853008897837011549506807993788549416578796742106555994167051516310926112501622457005113232613442894182126052403988692472931088668808963971769682174693659440560530685504739239884561154859412048523379566184693834531193177888809511341233523733705509991529083140659616898498374347559434895936904977705241399486625197873462564540392114765689860718533409816757162604457123654572926976481347830280674838042496272650293039154069199018499821173081547442218209301498242099573536933718486275018699551632489401086779325884879239712071189725750265473632488338518123260057971930349235402135272237547324594564467906575667639860086964400622370995742306348557145251845983893745591918470259461361817247411834264330675744677261034202602743634131764431286913936557784113986948145741079964870487349084824716471320579430669156443380484058291621542129189992181780079990511371328176211151895002805521986365171243615355999858965501582826913068123357190477839997141454811110765191337708165697398348171251008678081283596970421992358982034079386366495440979015167662753839977649677902699793808969997171407556273174658743814513498133894114850612596882526734765358249006902397378988155763414333290683432740601984833053553627193735164674853134572015946768500722241614117758436849633114359487570838107890365134075203682600271859202503128863340950856685094575699952084340070124406913587046787230782642133009716982693489029958143680148902529610256152612891010858889698971593290144380821752982375648795590086671219187170572152946727864210988123008944119764707884161196127181372685088458482586410731414067326372225714349403507814223958048908097702763946995810809934991553140427970017135971625694502811964623752925742083796399167004669704321486355405489525758296854975050588631873789870396172453773583395235196090179111263975322570601165965560585449438903391359552249958763996334035646506590647100081838657732629979359511252672143667520734755708273993724785886529706425457950694531062693909344164000199492949205814790524788520802915415982246565135666936041267094836865852387912043424544405696148115765204346543644573057180580162427535199363123086310797181380743774757147975596511755423957527259333792674927815898535175979081292760265245655781591366959197494229110224486920450683441851056131786311808494404608139791081635462837394835737703527461745371328433528057514820026221277076540902257236004994292695790770716099169622735942627437420863540142019112849890682608747200543166042696562252135772595003227170935993126095171136661713008748857677033352397025371034614957286692236917433487150731705426612899954946416505977909430218413396310512131896525214630069742013187179670470323090771725692527530102390678223858691419290407948847719781191292061272806278150423286870381012872682748292234070167090695912287746470644315713788766679955943725254776318876472098224947231830603364119025604763398816175374623498039066024788316008846673687457705358584169236803909518207904412753398378130823717280023354788927709612196575174523581300559731746663042750246255869336091398225817863878291396045565189877939575808590860731192883013316648008472996751938990635628165129711497690254771345903345422430027244814713714697349778489210127321822251974247082918902063289800516886956559875150341624976115897307756056077623239711116161657280905060714711630655521844916246358788316378071574664750848436589656845500456169260887178629346089399231066177205592136395562135266787550801976660702050871537509357753120161409691192588642367896113894558222036924941311336874325071576106488578681864832397075435407681724690867414403498927237672320316901837210561955261025560411532340664044013858925674893369401237207920514206948901892779456429415874680090956867703490353682954414270443982578866601051495905808235168429420566260672151902768678146795746980897387727317473831609826154713456577868419718270191654447028521250615003505741290385161338497913902259678659495152417299182931684323064948827351604165806844799783917423271773449187014636507582301252713609644771924147902777774583052476497003605683742346563203505780865515549502046994440308005719629971297012896425342713600693186069843997800641457165727506199942034833052144352775694366490152049713486747328838009568449607148551148920091841445116259476028103817467470692406592434800111576576136786858833784610704904390118907755089262798861729231909259967437726125174675702323512627768741280490483022937943876192619849983036166701658508223549974968013069370052948744435532846315092363774548385725808563725226069049483197736538367376864620782988444591781425655036386048099947351876903319533289100067619240536610318107487457431633248608605733061987462883837971143822731653150341277954446274073370795732743501434046043772002213030604167755129056607272154433189839006397382281029769748992092269358041780408050698263324880952151930970676000585680404367138994744050614857072977023771319324932207619452315099619859697228594904874336739006353174951879702042347188902943033433223504026195538419660099440581244514031391618225509073181212995067679616832720080531986172811142792492262833123222511980034580046493040197850554102731724439989900978608826654052912122488349582523185075082782856757689570050503716016818677565564722451689271696594591204981497197668872902637019806129991488510308436776885801702931502057374605784525079659478347763994489519197453252947655898217740009243048574230702816428257786858487234347727975005502226649282703895973926891178729071508670877262530721641030855524564981235358968082745890968323619923047857603455909893466536717437761664133495250083496369619336560580421013559190321086503492126219010362661089305356983858202835645085253278709518578724042385367193218443988177368566489434121364649547869059456768899624100741570908793381823124601257676452320164163161883465247207276467198945254985132172176317229575433062849708503307974094131562682359995672307483927470495363951748178503974373469974134422611922638897450673616150507246162985444398927654779865337494806028853960207822718138156518516381395178127380179898773758402922503792810300660488923244266566554107788346783880913745200374285763504884573219905485754038029250929900849836426493030948953985302798418567509827329287254364829668447017025867295244485937791498775421000253384414345900502738922563638225140414425052471247385829146950719597206835999802185238882248481921085495263730756048095159309644197363055446186269837492155242745582161608727387816870558864146635644626970543896277433895425655813143934743524379359156034166309281644080585895110614182954891383151547272129582827048273283802064773088332046541958001824646867649275406434301425368521157012653373666582682465240862947954100034266526254495890298445370018264797680521327954213773517241370010583673439643676774561187639827586274828318614762247638616703838587153349497268803260133862491353074595074873496648457680167716240653715700281781042327379969256859563692402081705824035602196484525219676179393374895078504300332690260029988636120326030422122445535323764532114976653154732216721240416308196045919535383423020442769943131893724928952215335616592060605217439542460685239555961650389103968081869723311128789277369983886740821352711132443030245820084753684736583804204552834835036829032141029405601547887597076116082422175339533778002998491939573062596432413070498744787808208228795342387316609861215590479528385049205174881981109733256816709669212055720949452879961474723553726305864247455069320658363985130694846946840109240110042281668358520203074250870777785794493102033401236911443522167879265465507651356639631932581298769170901067877111767899922489246023543287653587610519806101873414007214421123525808469904509212722609874044479364653597541839109547185225726849366773231776117066002560342983126170269301436977646215812164856033189558646121745999309307415195040776905612451690712731161985304494788029770198109521614714036939594233671857492564360524965999929939835567617554623564614504083780791936008145826758737045688752232547073789270185123158754632233117361327542694691780493896467054883434694170144691752576318532097471443822088364940475286406591792994576215810980889691764781786559062573062877254803761188978415086403297326203489596945045777575939978126186767793217701838238450422935440087108011215174195013936613488363682888766670625948291532716163323729448591177529560260357426180512698686694457337952431050518805820296449569927332756040759441597306759103470505382275062281972876051537745097660578579757515936108571543957919839148495776023023674400772259342280651884468760527936267147417251364075730799188879778444674771576121265025444746395771215183550024869549196570048452618134962224931394696013496809639203089418334500983182679923990167887254411415190065861976933152408678976475730331388371219659477010543178511091408990120284327505618822707670333643558210454032501081823408948242888827963421584465225947487954684245499376799720467699579714385101862292447116028034314305072387817096889944764389265291117121022555326363605784655713425965568930117765196897075524679196325902469873887254415845842804898960742454777605046632747186293255326144552898151550080731175794431247107062122083503903715634149287892511747070457700805638364485251262585160326996068955719491519043061584937524890569515288705528719964173437393939880607095940664316599118232133777129476687931547163016619202386506076428015581290290012539778926698475003797026598304939992255934600440044940155990406536594222552777023140462064645884659573231484620350594865066647924971676664409782423488993690494509358451163786499281167886998279119232717336038660939712880248936307381987078897352693469111998063389016636701866629054134522812183593701721724981568773694565537925320376607755877630541370957930133605933850247932926982549737030790880256885374339212068523759908107499482584967188120515829026852062117728654886115334242829583162994636232536724862884978771630041817692699081890115434052153925912520736053839526409451051423303425944837687007948196939637575799472756541814013266454220534259416250508788088465377824800780268463537271370253526353641939008738086323015623650995174771996845769674733479461626760413176102537354729053024517109780384888437104781077988847413733514782504736595073365607534791577114227543702458671258500876505483520776159379335375501986398015121866356074704502459503104204814575444438595735270152375114969170389233613568955509703778313444106004735746731205433498636440889157527556716051312765194640282866594119297070149290722112357318423795796135925814903098090802383359338693760455149662000998637930129413810178431183504312932625051860554654714217883641769306607905622329162434370690034064650980197272423580820336158173060139883350698123382973529369932124245136274537076237562286438432209916889893896228218048221952683941011669579947194738416091127345646913982992392190508750139094545086347023354262164724726964238412247539167124824213318832476017623325046470768198751855130582191970054705488299396011467923675862686546796251328201024691505230334427478240051433183322450254420410840808325398496779515207099175770001927656520919103486827792789379838955783745378165897942615760028019940393271424185077169525909529567281915095839676749750328639059351767429435316775239028916166087945981553724826553364922813348468075164164144080632429807409794423821291345920706206110137215043808217844976974217260177951927693633563784163059965587292137653537622310047380130906473143928568322590667413680447125017498136803447910394931606159181910715830134814510744993245072457487106558376239524162104620818340411977286161974369657966528394673647952158638281253561503072910728645644682235461204080146451931979028427198059616541252190132823292376149003321952580366759132422524883834833269264702428261644383896363587915016502736448605013131339714271621226450391584546468137945125886170826773245997526940471781050379526453249088378213935231624998882877021521358716362868861991635075371857161888754294202752049031448358923388491145022915038244897411018256730724743724062649859674230368693479955717610953877014147553173293556109290186050462332001999704486826608764712958197738039291796589751955784345738182305836645657248094090191995749626576693393806224008534956317476045883709729190790284075501683721355135656654696630102545640796361703604343459244934608361351127897255448926863690237504778500294139512798908839491296312909743886168567074958651373931896721691412473222446281075875609685210201651722621603761304894550774717065480169526412945642311956792622515739939135988169113359142747164444059278170735727156862092773847559775432109938283142791479281815137079243707422098638979470093837812111607008951086071460667524326884190126525224456541501094003410938305325497587515074605139445107919385959015508372491091049981882964332896490169311697603540542664563161279623858976655457529810463235723213805708593990882381770632792908604488465965530932464820649945854226828056489384536536188251201393622487384543413347432987039552176112490936533485033511162420122341187341621676603543455283137509626592303424153202498796745360294283622664743821062645903076997886211898891287618974500471055889031642111056689283820175448485252739304967211746531544138122794620198178412847296966897052903262176983158199122464086242310331722905195711736353853058408029887896353913516658488098746680099950830494639168514582854528333187730644157934060681516336253164766881230243587533983857239288615134189926059032942168488701429995418255926784280759411773677997874280208624305005323740808340739845983612631418251503943013150520998396083009668159005057339122290884753956414839879736160787431996398626396259980282652051407160826859102698703482313536392882674741091238071016351423709416945191915042599731915632510236467499190958258362224239071068317418135886611552377583012587896676908939013249194834879230793864102399995768822593247617062095488002066474432016733257936646459344347795192590268986414655488465261760863635828578575942038823686362813009771743505325811513656329029337563309692748529407196674403083027676249558416191650393278847623597501726132525254352004674418993631925259462192647181827448382563416590247934382231325701464198868484422919677919031105334324441057825764139581104473363734967445365930675129378912791384052322613285173654616470074093053697851435126748946664929994060509517775313750278418760361791588364424293385498347881519334031526411005977292990518695393494326829427580936413825981825578920181540678051151105036409243732682758432062811488430489247906922945784847378322759306989339403641167742145911231348515554875823929436930566912557456647998589753343561718741380033106946279426376257964132396386709787057909120136824289394004645794086039533749903989824071822331375649654826482000898306053569423480103393722339302659593505133221364447369416722643464507943900467402760197612267622107021873566048480467790939413165032906066871948743931984290096553884476893792676329055523089689930988500727296125614252500819885513094195526903391060233063060535924433112461389107517840233109847508757514622199879165396179051764550179546754711344175196506414304384070525425201713394107562602637178381249024164839951704672349105069300191133239333167809004862310218801668987308922922665443909557784193420321452815711322603032767015345683906312677325369974958024903491950029345727743272410064241306299868978481547975971619646563526055570796671218495132301013787888160701679067863929467560326557142640833944525609641881851931418156767602440907790373594258510331770985348754344812568579349204000306244409657021934770159243918395020755820899391009811261860531654461270043492792890619045994605797135879659397058293471336673980013878203630543243105494106974470606269816886030874764773069533107587399238957611670866485178265332331447136898712988949880437815562076881427005453645364319792177970379802712777090156438761921587863027053447057202332023265743064645491651598370927023233548580599309781451177485853751326949082889068826715042796382696291909762936271921750192883292169467150188277911849507797665127035365892702429393025349232877563254076540022568665212277588556363807390780802158486370991735009175182974040407616453280749763515928471882511493302388012093649815442952014617025487495286214491921069024046646667839357712494676521280736489733441652541807463780630038644307813631850295730581698764692150047727216230325022261354913272914216829808946602056855772261809991337970141522848960730102782820475447726412035507026140561045261497324810827869635003906570298849215889211259913437542804308814617453752699669190504441266715064199916171508889506114422851872792954710579324822927182533706005880947356979053515624436660015263682418155540162266487807584629878938954635254582509425835513868793713404961000481430100228073954867748713626452797263322719458056918175062508476339894203158674358320211785644484271906857079255456954226351523854573861031047150725334077126443462409529937792570008150446448305140180030001432436057990263264474420432706468072193569173665112878384488597452942091980087100740093688906062212660100418820312623862155283152135297348446101697991806253743186221206182915306236814760253603839053397524040499812235626937311520384342596702146019420535547184377370393453775381609835864007161858959024674950363129593435442757334263259165233375760075166484960028399077770897233951461231931699837597570640308841949010358185236146854309596115491847352874322609348756072603331475712196558308791826194898614242071631981324711299520148130536755742619749713309219475506964470503825484071274657124288078063210713685345421988857364882912187895679964566047800963707400386478817383702870187792939233973225485489106231649237703903782592278827618485168194357629311162542734423700261035903211372781373294916956321804754191858707220446025050609973330973441627007612655041489497139219764452440875982545125004786077537038956163539121290160814722281465406767135278088208679276255410050072309216206407133443368440719682861478952557919681715825426412973664037391384039200637679046172625870537073914075496271380169442225619642906647104068729216209060888996252816994230790964833045581798757057448864764681736371763989110297794884243296620119607059180449846799144233493752862525737563905206649989035276412019705995783541432185722036512831632923005107154366946705572755024768392897709129486169610194898625527191413779744719601216348154376052408516167980565580078561748915457721323419104694649486091761767247073658790650424210998871807058596532490206967529212317071813930419746829901746085823540479403484235636731205975777251400222200072546632133567406292679675144350786467901218017467874014130786135183450771997592860095389651572561308532184188348757748264979778619317879302468354387315589847125636470835986519738836837966804980659417466597911900005194495873243748992365066570581935783644870518484037952870052517395976976903932730116237318109568765696383619153202425600220182712829368948773087952868191220981227376807041282503432591129003492642532115003908261797613605419401979896105052128374427141519410172392010363566561297307375226973380664788143060245418048389365553834943493701707291603767743552652988753604780325859629988217208678634897586578345877973783193614837417351713908998446498891791912970332355515159085004422517880029288650697231420642984290815203430046118420794067606710640310866777234651518387235610426866830734864265787991259783918080945128660932690296948455930906570739640951903685143052643606234782473551290277839988605810222445480624968659039080782764365538964386517918847414403045982845391085873906759568455743645880863390693669858006726977905873186505842480646850863729969710539511780591898301502827191789983671423645578561196278732336111476013839314498543568600743059281056707913539058830660066948897048140800568381383192718181434940748996437891799116128737687447504492087198016595192899195384853258352437632422196907425325357664164873366727005551462239256696101504675258712053967027785487285727717264764096203455261000810370451477313859672918926744489919190398190817974428157245206996126369369214218809534773549828916176208042418206500475668003388140458012924302375380346098653263060438226379069530750656729566233451807299780444256515221897503648371502128552479363670968191789384463468961671294915599920996054088096313553780076649045215339536076851851702003956831851770011303500303487283136825386116922919910128558203807100199634545556139541289818197345205517622550359747747071021515345674804690448532490635551469752259975832554280739852886777907691167222203400993055908476006848776130281507948227421199752756731846401310782871385203449165560368502659664165211034472069913469202207816395066529134176100144556759605213658854254186797346602475908703739910767911005443477239370064398061686409885653110163728149048647879115640084731016521312771378061472190049497884419847666691714470825008426728060569577202483840372922436783852995523913897193140637852025010601051742493363291556117395881240187458451425834458530437402540758072943183670544295088676710586364374825415366541824322838668014664381809564213753320967724994383071827750792641046972248022284055624020471854570973326357797382069935027715322988005851181463303171109235607256876423104866408900857501580762771218524609144310701027111517159363404293559072668169675577875557157937401886184326047912938227131345989141939750827657090250417794447123752550141457932166766330947232324173755467699332747911273463714091386693208724286303676464635744973927085745889106518184680897832674163298743905361375927353912066031388352707949080743636511998624685164334742727840956890737234543188432846860081942312026073848880152854448557314950189777410330711649029960776172044672646109923041956167065923790060045807342462370964026004369398439642501077170926219038953847808114254335791390903254090084442812330145993958568881179442448065779444165423331221335718626454091039385971988368850960587532572660833258070700962630090757281725334529689896098561894963216077857315824226520537232108540877893231372752118759028798168054423400741723289007161401187808552822895972807039435585759488926947950280944850937286781688254022200403301171328943650891185900613005061336351657239504350628936985898043483728692061905076751710523205642520403731375509754363677130538950689366823915938847580855266985563791643858318362789643467810765683944590131138943560209895896711478565794642001644047187489557008745530168709504791608036439475756215360651296516604053160814913858405529480868042341200855196272923849778528248744334072378034561517228033662306200588463600088294471088203152010314394166553915916191303977808913360585876921750595312517023283232972956463769568184297345041768659728505944945926203106886378927983628356704730188808229842269752306753265897159021228249457543620994710043494427658818329940651370940010401089905714514277067463347567649369692468321737291170812076829865020756537047268440322839684050662645303232364863153353347927460271111321454875953166637944579437001953797357360820160685453218520334784346005852663860502211813815565710517016062599958344827601524446713349289282353510005538249947224528512125291943976745575207924314317626537765571773858656410616333019014859483537653887007280948162648846892332919494197696457256342715049196236915959424365342876593938700939160112597898628663433033735255816592404093426243957973556772544298375182836684404770179187701065944404564655673037571533859951266523991028652885308400864796056191769733497201474446307869401783713476656614240722204869185103356075162901646901617701630522081625523021326118626686112364040429062452703644097448617902829781639972087245254071429238579728971297437667462182988375196289031591532798864313661220657476037889652097362879405274100203572232445324798729461085181246851151660810993784604441448404662729010453358408816238537132166665833237341096313928775430799178852843452523345126441281241328348323380036561652715771647058385250241762064953793368705131970179955595588563482883056924970151226196903426265581049410967613082639563158671863671162109819720419666254858898027648828813749401371991092533371350953342063423849368713815008784738547160429838337779392488764074959647166817190962281587458093474151623034205245580676072763937944438349222073959885673622645809683051132002468162440736653987082325266070440630326809345783583078851416492013283097271572072274662631867059464967744630572141913357152500989527681341877368534153245973622914646280777779765544236846017220297846924610159376030354518678024862109413080839360645707245748391669134992491884797273323054203032082554822641238827802951028499553823541629913118258447482838873441382312428302779317413382647455767321268086968382761790200402069355663488133342731276463333114424838266425949328261602028947072310480530351307694560682703927032592036178724873084638692483748789172961348800477360552783640481464149611739282747796826947893882882816416068855426187903461429059573006990774532013140880574884493901569179727675008540821976498626651632700496263992275736640311777748842851474078768875402654686890263757909855495634486401183929607100298982713547472032376631332937303633082082557583235242512259083836686420327262686180445805126318016045117806200831604931392019878862258157090415114632194752445095442352395382300681770303649794562887599395617905957570439305517542247604401487217070639703515139208039282426225061605911757388701006410679601088121033454788812818370178960266102727063319781548719090040997757923852311052993108811389634913675481508377044818662620377848010862359800181701800816060020739934306751155780707112785320766905978143231369411378849515667816137325262809236530759730805989928126463958602687689350907321036148668927048638000775196534227630305303674596574456584695932278420037271633551121179358689252287319783840011073824676829305452058941251976008417864918882253825485605559025507497497661658265117753786036830939969004769749752316769644794526261488285954877126158211504581225591444871537839755360693822842251556050618804444965066937150963534886153482110397844773066313250082573175275320991141399871434585675798925237284998790628730574293830287725452529815430117940039558281207544774704480000570073974520225198399847077136629440656554674610046488820004317869326053344937250280577283961607811854642023108445859525212792120100844119262508406071402012321356599436499660019772081803707171809808951527298640097292232116176712595564799372474604833813283768199213683983034133878063288999479290058758144991205068596050635313201651556305385706553382560319751136394537465211487244412384279816079668435261136038589066664187994706804831610346273326679076652149455766081322567060074919073075249050978105074427690544745996103079749581220624317803016395101976629880728553770358519300972751484977953191929033261534117312943813887646783657879844652909628171999299621794144458344405836052476854130293339593911548123556082558660430984715805753282262135586513258628604921064414352079618632296917913552233728099105833519524215066847214877138725295574849542966590967412487110130368483163720543480164390958129315836985397845513591690480967859143634310844675731251290677437854003951945933180041835589604202925654138793067276902831641975335819360892796722406772688230861064186761359655003535269688835556192837434087129707188848109784209534779019692475075758122549495753623945100902233256081663950672406133407211641808758777607104551058517737689719606235960777640743033387044714204076014255953677018176484399508426562265963319844776405062818935518539333105411947048874333945274358228403904784238215234595064305040791203550835548134121500848084494817734605856288719083935974504529048626604131471368896916032801036617703196531280093013277645241118267680230653673578525909817493323833083757872234050794506088513044750870992184167224354475439255767727191866398803610806024558058676576673632907879674946142558830884747537271024871672882330186821582826907644923517000748759845485540663074487681047250613589962720050613609526658791765560503141264467284637223145782560657178338119766381079515914984871857390078284916505312243457115952172715488821484721513644980634734015790846188778139894468928478068950692463305951696741896388871048070279710541485670476922459659617604679041691056035447816838890004917989614518425704741228379903710355754002714064688291320096129213706151062947550119568476237073099511693721392686927064535322927606228545159185833843597243580872287384091775090241880032321448932310621345962480407185003776983439864233575695027749198955009990132468261181315532296643070958688890000386677346857592247722330675488959723949880155997884273401946340244710324084672465013043123009323682699919965888889698224182443125739598818592664059172450172742612396903287043502256804489449516283114928308924797973307883740776298766230498041402220432583200905165287655028630041140369605501751562522377643139359182246939771824030711887890650495228034089038718841714300154271154634951535650218913182971482206950186843321848448839869036389163129078860125315408107362467948954031585735527694442461000799819400617909197210129396976624735092321791092779120856904155436926356191861853437827101457216722350628340282071349272293539719610431722659108519749998598439672459451711701035437904160793694667526955844989926390478193335465585631305319005346939566932453901158046707435545820048920149951046467213069927264446923694974643792675160645034415686946635823890223061357970727372764259905748316395695994240816507103466931953014171284553474051564381660967571971081453170469100415345258815902972604533798333244519999773787380293213927366631866163582994144787895495893689762606887881323821869089075179038560275752566850222807219839074652810296147638985897269796299185094968700426457604527642966681408037244189618253237724300575663677985553638952198652681969544667340854559127205011989459882917753090643359413147942326764798074556621748762120850279169313418535993129215110177277190759447584998993197951111136558939934854582515357932662420430748212095755983649244938824851566570718207951650414412955814026407991349194906716243269031754663491298540129586390883107650171157623239577953774263341616561448368839795725881767905681232097318243962518037898286241688216563648470981230623497454739765748388671314463429548233447106595944378788096853165341116593865392064455931181292551788444654502922676203977795729624090261210298532139819673688891266499938540365702076296536803605143730780420193065723259096100491949277083408820420938867870328145408368287383453618325007273697248487743865253164804860694344740106236742636141048804622208339230945336327925337781618995505201488995190961251945001668876184507749329179825153882942378687732191747063496806616063330711600382130266909181336395459316400196026538034075938216800929042572650154996248879007382984522192772541891701543413137321071018846619414250212238655555200411766869347021727173350712817160502223191414155822787863825662390723694743682782576112882303255363638167151201743730606385084052801371422935854963900663624778167517451000494010543947122132740955556880582330616033741674674863969062268138767789726508680161795302431658198195622194021777268479542930503626612168000097941571516234701830891487183814758809723877354459494155147152640365037671104149330035413423604643388024799970420799738320936507146418483780624137410638893650306555148427491182754820021466362647275881956468864918918211038325510033973928654637697935548349913087839004506728969864664248683880895812652315263756785756322802819143051263673086961680492807115706595765839608814315152300639447414505121808517362512023174268880999005727077602362757412515742713515175331780367123038823861199245935788959805906827784549924808305349059583741474865243068735370778731399032241330671441652458500442879454261806200560682657365645066141074956320174967210307963072397143352520446565436486245942001276215968412118290592044426019456488041483634366997631096738991867541882848421181657149133067044288533615944127036417476234221174261944690535907519426313918542033741706356480054023488460053754907839118896428071764450079685079970383422655875553242076322305400057766204959077180609277267313204700390160475876315967154774074086160344726437853596067108341939333850546674262737739470550945839754018269676823177292007008337894368000508165017849492938777981037206295607407909109938508480667492935219994440908717383681774351853463742631625934226673644215242028844100377383601099253311127388896397330687927050510729304380515516551821626793184724926859514980285658430719126739097838354871215818909533134794822121269245739329382441957529984019061525253231901549796805316792377046638620136250512362029522822336271592394658369195294779112595846255790902704829750217291166548530003986687298040567434670302216334608842400725768436759774679090270634558154850921804986563648505781837468911960726135046563902322764641349419770434656517841447186090044072361749365952129116369497588413799880577601901710540951445579337565133342891687955571269299948183491410523888662264789750798608570178068610571984829408163205848113484244324508915724661850466327472444275367119849835351115258877536611773908182103987832381148077504569024674124869687189107739311814733719146925508261165201308675685458136298198405224352580821244041611828011578648003935285989695627955468516893630877130898444468343545082629337547858265310373275325672363974926932223183442406814565293416434342528715396533339474844939613753630967283229704106023731771499543281513059261030462920901649425559076145748138684266582922951910201648512461076244657165851180216018041086174756727200863211535557097121099880119749708617277281312097951017951065068788571328208903117392589523063955480719359755813665070483479506774934931470418830500236545498136459279456175185839360953214240131919419844395761308508558429194597963955576372537402801840172239599551181523459173195075359802879887967793180807632893898824465202678233673565752309085638248243420248912407590757891487237697417819901592518501208978442625954295271505244305836214230940639865485172243877255934381434523506887934332772581280478657530945338109521328395080668059252442795610652429788765169960804636260169175412714998793953449181218068495343624592747947928122272590696685805759107902470062595212547195743688052427202733966289667045279752117055291276623033866991875292364842443379897945502787443259996797271427390478096900276188181132273566311064375115176006793295731255378054603093307959507232478001587096971999004188708747711253550067991302805622383777555863621387411477334640937427957364337413543757054993757267673005527563898895766510137429006027545472683797621982113939741942129878042527043060018377982566318860876032417455920305956774736102341800200340461306522887388217414276987954507635179065296249229738253918534660203438949775511724460007914152612394358196066712731563760865276255080557595648385268520310449388132955894961910883027565910618323302687764510806314609281630074939992330332949034380836024080224567438036310645605513518823915228278939201416748654822816132639417428127537117359870482589451492270237815471705386793112779418406524971032327096407851036842273971096361772636438691516093295335375921001673727373123564743634457266586495360738125945037178106306061124330682543538050049113168162563544790470002889766770347477946386999723367053147687478219759174696197673774046798272432347823242684352519241385615819827010794753344027817154559533435760704235361494524182479898710496713912916580274466440843249838985227629682475019501816333380410740096172145148850744488639229323265378127722036117079629764339631938275983876457612662255956498527655414820931374465796407417350445155679620902670115307839672946505989516712335474874254435777990507480179231194111690235042241076954118585850665581088078984218331678024521072444683461152819929911141203940200493194978651515836122364541048053615848729756020447046355313453286937633119707909549693567427049722203138940314555574023854490986040813202352073221498330747922516132276732808539021005080763209672225503031219064172293750520954865256079398117937544785546848678277796551376454140607014888589888563766806047332424124880475221090149926593705266748798680740423033692468044798810171894237527590063242310670040882839446875947148183875363813375132749829882010870253602880985031556327982783761292859911020357633399752010658671380795687929717347141285424314094456647790390595481791559783412435841877988609659205548582846654091580554262409028862042589505183573938735948903293421836950775913888557173210544122450665651603460239921177945042970621918130503756664614752702914051252927288459048393547241323232882590874305246663669643686954692789852084409283026054753340367848114799582817357717695595608356161192903562377899834024220105979206423516266595190969922822692201573765454151533806179719503239633924088642929046587760086087084763542683827373717068150248912529998632119293414626791007346917511518827597836817101002268642707201668642841110131304385614422830507839819454821593047823100871961951100361717049553535028235557732085085424240264245054271019038761286320844429482191598178887772930678103164435290796619306085916475314857457717115553397396489136240703181269452769450284940636019381008017228079545294618034792582970387741763976847618512270399654359685331494027008978918192866537200783496332840694687191017968432772786585145252228855871569296182100930568567296658857656092411548975948022441385905741242790855664091129142331664506983024046026093197950239449824422034715156448165837953309818153281778510530945304077536352814521489393162862137443312939555873525572145078184394897280375204978973089092573222164403945664210733307244984521481233555889778684559120051608025753375193590288432417911705917182260814563505633223303740752045944721113797413112620142273594366851291425876846812028712761134320099365918076727764434024827411747283026209817868381255086153247535492619320367522298455067196562585319420547498586362198367761112153526050336346437184484693642027965255126858249944446733051214579239986635948479975283708780620615832423549976309999198008897210199812615835888314237117851227939036856802783343667431034783893783711414455932090238301451231929419029370817315364624527687451001185761065550006937901751009947559597956988278158828139859129091345729877421182640082262721989264033971672210108354350349909018852334258429048735081099988243467064796953073076784725983518723921520047671622834185309252284548109091667044441309305033579395556918481578734068936127687381233352486165587410555371934347492401825756795359879550842233363440354858634081446985832973538640135503923293796205185132210893339115023255669093584336340805998511653115547300684841748621949761937088040540691646496210575945031257483147295131904173097656559373787532516977542839831365507916317002141675892582448022827709838895471228993486302988869402286871054270235044511086348139582191164977712920574139805284302989195717581056531264926565293694401042213442308441801415515025574356150234649313160103325759023793553235292937983203089414077635970832845608876659701591093642363471201870249028410435576752361761963864342005448746859748051895757105572665530605446456985193495818669242187567556166285267105395862624666466496920819346421542055285551805749217407742156463435268274159868134577670565137902608924705208514297768874562398557788020997153695358895464511055220058167802692441510861563788818275159577266614774886715795242753586206821780053449870274116352164314979883761279219506640135309191086822619609013578680611871953955036164092236043247658859700835743470188457979159072571140963243164229875867853559993508102826576505440908461831215912326800335809918235038463893679409077562858650881472817313288995132946109412866190637842357952014089495613292852702383924587344727001941144310347424919031309400620916332404492174648328989415678446697246515638575563832191101242447980357426251935313441656468500052213140880051767707107306729989504925900951221723362283897775916824147600831736803706645999059026498718826452407885713251226225423513724943608262548052419585487927929733940837073678463560386185006477048266718037102662994528650067917653313404139526388191685706843100721989606777040043488589687377021223499321631189428895085593097989302559540028235994189060497413068420493320030121535921417156736173538707444805277814876969458175123446934857781207004791771482525727344219941754395244784071919939010833111184749285074874254119639989757399473217407330237377406057453101544886139238658281201977804877501978316519439724562226857703020123348465121321414431921742746983819965755464422201838248398948630791174797601081901893357507849433192372130468896429342180020061376587903687610363152109637955765552191091696324421435565916606365770731858511709775688997008228420568669808261292098782174515460470014622791438554159109491335650982524314977295116733057327454057898392853413789582718856442533234625901489623766046694109419127681024349380785206762169651125062777449227373389504897229412401212516336021024135584920095313703921077344982296965568216815965298703477936735741017532993350343229861891989535306558420617473486161944866162866974431607790618483939213500808706613225520227497893737371302529152116421241144988913058426806747909109405814459065998750540429410294029865110678840657324862446810252730104541184639429317635865436431822050030038999878419303414304178935027847283296410313706267723333761914513508879829112415821588863462386751070171150761470617960001071178751942177964065024247724534037298848025096753872762425534601869610358340080893515687949323071924245698883018497395361328159881064106407995628323651781081483670604827958026896079029436446591091689014967734399704874121320801785413848292498857399291892736323781900329644286180147135387915548048931780919582341194177741586291265508827231647342935397066489974882646241836150829175462717699392675730158247789456273646851231210168143314686249592498510526912313648575381986099508705965993923990286067391468909798321210621935073698122356532985061609784505653939451343648116340795483993808317615231448058947130629141355391123410180193606320366288982137331715613795684109452455858373442598070084750106780120170821775558482697809436070449386426178942330601337647249997165998730435324798592027864845494703079497270429859561592906601127396814949519959840114986423969681632800395255068384535720563628955143261224881947871675458796573635635614838986528703729052744758915601893638582697859268351356415102400391232856950552322049365923569018141292830971410230804254508899724495216582926452725087546223786723080046212345041414900691992707421602812885411354090656558270107513659949476045597376290271655662756153400237987610634749718899650373883614781649843119541286445623997598296191892931658607122959377689967132306224652313608004660832310689797499053007991297257351670235266746572389923931919512256376883809127241902265312147263064648555951960698489693236600703379524485914089038833826299271449956694613595051618526512195339426647193488372953106203114457353594419100658476954018414932978596948406962260753147160100740296256523748544662984515157495613291383350957573740223289323958424448383527897517147697099183686165105180875472791386649262941329362843808680084856283453753448170340330780841159529634520155390749829767786757028753146269228045451834506528367572130018448884862109752268048877298715340936020021855403149899393727392282414339585000430446003233507063742757592891563853888557492602212244479085993649327974963720911199432870784867474042186032873483833682700872467204575541434827264211850454939395674453737676200508740930191020118748963091275330265293597907041544760504887926839741271935047693691024408898341912199744034679363390565201711563817356078903485624097138812196863890901245263881889047441880146984697729343974800454611422043889241639842629250159818180109534536611968010837146882684838481445381471389422019043270569780601209047441795714376536746839106375909516928028479109545170663748557491753769552333364711842344022945706759094348717251254204043490709088691248613569423571647296003244330372459233912794948781654330139761493316645678440693488756619019475764703036949900406249339830485432842060988274064592336262364386342062120016010064559759650910281419324586419036862904028913350444830490139632355538036935311518989403510491088877821992027530414681218277186732480401722234872601708269216957169441726503301738297237231239262318285690509314025730730972290103050235195250844671260514370881474442600714862496566174733256967803920655996116700375432926256202835696389745960043541242488688813307159105185524418316563205548569065244389364365058782518102013055626528455753422904815435670917632920123740235966335326419827526961809839215772919751362076190202374429182943127572514049726478716522499679313816908769258614658507514042466590370563364153927901243684862431403383859155104565009115672653463781393958844106428847311151210817384293711330244770490031632336678114198983222884109646153058481724054666321757752557973462832850411620315357004893941056964856900709725543525819470965394524433818142074997242883306871166746566077776789560636635086061747406097673766695019236495917892867792785686715524181094623949470321691188483908373568000001983733682878484767421131151595008147932371742640777623836708611372944403362227003072732814449211359830505063384301854288135665413856764210371871166590380177730274993362746964348697072511390833924363657909758500752438552387131708698324622857122754282159252761763601457179616819222273787879817384746220748532582068920080628262217769682694791875412307873272349718476728024858722885163401561066681499301555585325172802729496806321334471281070725583604186484965725752899381687645336307034285121065515800320804630116568324865392889051318612965123049147080330151350425820170600024439439455056708483476475875202431127900211956780847701193282646551633862723629165810692013054119399559312227270363711540518242328113600201051435192885321985324647495372041607803020284141769978146454332598210702260659518809002057752416622005758721538603669328293379803107884185623008301809819464355349580706793699292012234668172944659480206585419519308051638890817313443926769475264223028578160298157764207218923577779484806700181664912016674077582860839444760758887775986024834833379476575476728772302917868728216246119387493267801289514078902463565829356541328733382264827010927716443544578275051046336784385014100490003264751838199671747365097344866568687592126800260283979327695435846670759938821452336286376395329413317631548643841911060289367580073196836588813470493423813090303048353409328899225676143512152720234507978557175605503325857905160565375485984030846994336964116586191440234108834684251746322088583879924072250207200660559601805923263114286201382631134550482083679169771485709714688649827575380199628255666003984622898346034703820792646370196304986001488981695968735625113371316595832628680807395593636367878210176113651863279061520581621636396312131202637090539058599062143704312213710858527520625365684471367207953702715469184541367326233756108340033534014179769089853544327797574561659217524059949338756966957090697664422550523850979126274385322589363112445543676357052208563666802816864504003488247939941429290906775098312111358322519793154409293903873950658944661905142060512686768862112182121237527769404659956699652366308499214468208675111141166494672545154262041193623699331420964403549110908157214111767467243665895416005343711919769533825817856244443746161661440201245919421845492960104200778232012433805356223581486551940991758711627502085373138541736484254990252195499964286860163439185939353885073561236405096916808512615411090258630603499432034582783376457572549085505479121076915779911310595682015807256333119862881949236833806333149459332333055150327362958476219669289801565306471904450332579811324324676078413274414562943560922043054688912681574322193030491855188084882367797881592893515589297661325332525533552459631251759828973301391539343660762558962535584527764839786490773437302358815778311047002491327421561499831165033042674100200192633849775754469021571435183608623174403029272797746353616716411066789577791065471803966768221668175711803797997815119304642247917071044506862669087472521924425390976995235412371824734278288476764168306726763813212007997815395681598704784332299848796123529933107619241012694541460817105076560788275525524964852998713823816974175144424125943329677344383849821521630753982271473724292991294563649362431376450674359921825132665826635618972403662845188145560206819586993490971728581475397047566974784669679978397923266055057022447918728523311873277025658566809759789022459505772110172644717014046943406877319404167521407842887838508593230671585572768513335226915735165708351461049334494985837862301684261932642645116729218775620317739051124196352295483214161720698757276968789778141301510080758287860873236101261777583917688615783705454348648968687516773181921518154962551353741310905887701385483641610039180678945316795717171969027105134610083201693527997474684644705336223059819055206667882382207862366671235549090532909635916566756359619013561279223466790877324067360129319286088266823265215413438260032735630987393588053080238272766680523427514502150889018733413035687091986523378317992244776161811205053687871247138620515072199760093400929539907418970372078848473663584819026730740997153863272575033573758934449819782778772952580382876139109070180288991301945502871271492938924364200507596206264631895612763490507515998877631849783013490649332665511189446252781726443901033554556798132587491008849995002811264363720670299300047725195869964975218139591554947904882863183948893477043762690257448294787354081582039394977806863487902792060250025104918891259950066901259111245331055799410432243074188315440995962001617139042155283662287131858155268968463819029292630201736265692583136903491808717644352543187071836689559942433802630164789500759273477118280745353578727318622234848030325772468907654506786111932545782250240805091434224198884778886194458239632566171647107922321673200009787175138462506210971042263610968364132927696603628909211069201378493911871525315256064694702952547717911465362829806088932607521921002784018985199642816157038879689243744518097179090192398293131380607365740409788156468393244728501964929350277315223104238294092942362826569167740475312805526813703027288634468947579257356920070772096442797782482791406739557307801691290045323570153518216744461067544207312845069654326220563517307888020642161686957743413699440281406712093073312211991937025317423486410523482538083429451766943681314179113949545761236972976926241804558334889173323682415058623445871898732164767918916795083224036621508750005253730160010179302760714038855427300142614562861457708935297674348484199340671024216365011247774454264098572710189140862665174534299468970624775507660842808206975923160462341806194032333553938328920685872686463678610738785099972610921961148494119519952587646881288444090968337101942374617408671723704954614882535207773642175558736774927254313786425764663292976150507200179461885993878958962443842465660923878352170470613009496206176313234864553856274153560171959039245605121492866179710501496111499381027280863295744773596161805362690827605062067966882073896261694283036455396168882179170027799806374100875390280253625748759697338953007039079837446030630977680317466141212027760122592306648624243613933815442422731762633460001576410332911719077518546105635590864350152399852556546468340942092837434189106778516133247135688863544906899506993762514948434229178968271125697731316109168569739185061950925791060315620304977096975113763111883791697601629758810647224478385385174610563413457153331855697393641993082211363212554625764788761665462067929022260952904087510586989112923746778106586230167822931593608561823357341339590021664579638055610260095915699167334867782658727309131521927803545240362245768069647534097724136680531089463525304630248644635152143273988642833432461604759902706291895826308371888603111418900831172866580847385448773073327302132797395652015084148787712120022780252588212992679891990846898437435463331688292694985687501441060908628544916140582948029549791770210050425060650978146038585364045055142133232536051844124589753147220581946180263085716675773014098370011850384330236262727934149726064711665626118659920844232268145403679179484188762282950221130970948927906061801198349876989827405214685786472595933809357458225427537458294428695894668535730282284272037402763598138265795095233722091999783957744804074045585701299922318021429876088014089001423029959043035645661071001306796517653711831247878232448902350744790794570897086051130965923384868202972154507773649846575406698351949566208248940160805108231986746430802803693253226672427604795351858657294091041294358729706659528074888991949869830672231359296420400657744523906997348043513344500583462977628009069323418521048993492101845814431716308074697956503671252937960536700700099303873999893701132354561980311965529987735816995175524859298594965995210068227294478255082726914310958659065552677743265844790027783960074476536505512189444988679037961919136649574000796058638643206357828798106004009289302973736585380101326563691002662557252584567109039917183556460451656224345967928603479114524652317364541448777016480731145775219672120490346266327972537559153816266447084739306291987901790262393581127273092297893019658949359340517017455376346527569476594513212658358027617727030790114424777865793789897912193328157129229076973280377849175034224684413480975968842673751149128236250854773662462395340548787318939733589420772195709805405029454966607162134128334664634870895465520314153864635533804213984139200141414155028666613091992062792998262399982662573624414925913322698782936002218313501260824969801136760747458782725384456888379239852886458788183695556425825964424719685693169527841120579453726081523261826020946845615297353340735092308067495973996558587673100396735844523692751373020465100011353000352604573322962830132502310930580557503046770870827496150820952562108362698608701862273787138153700751182318696902198777070761998261261722583984852440680996721658282619501657481566444038760288862068604021987489204459103915603586633856760316335764252044932923796403638662285894404040074602300404912399870004434283587047588295001708365480552733210979988387862741055225781800441565063586690228353655758004754209871338048885636220222218595417481952806582879249335607637321893019146293032539101771585634359139725345048381296743160460290638309651214649173665251802625105484028886889129886016748998290205454614742899873488790867199951438373992477849592506808215998185726238636366896006251645755579145436589662883035188266727875499088697037090666219058665550511428990065336791924187801915115275060100250132455911027879437961519615534291044070402455779712414592831424830176718747956412366040077440317816724295270666201133776404942046431041599108947943054578505362168951833675449935633535887909307506683704031536619170107788736768065300330253955704630440758543686539524499222941593316291239331921768490025476794939021422757849662602198868068459644542838683170332722441785214117324990922878723535819394476109377147063992966027925714644425051872143522361917899762606750940778735622522362916240525769244122505020779591604016970740574788212732521906703244211401878727676533910214145026880178247016148990682464250448054506119837685884433478973289943245563171672506731010737579650403902835888459974889112107362898960898439009184999089941565327722566678720374340554659297459332712896784915931417181741916634675667202849632129791155205230813845117937669744228669556075386047561890144460525672319494162646570718176590836584220168277219809379009711079071544604272979897143344799399090363935292881450509618764163746648630816489504139669286924097771491960014475711947587042718534591186002486742741305824344608236075916560025928749051146717589858782316846170575217782521028924604090269097101131472096871069617321879739750319363072561666477442315475929837202085105610370630679120474215717161338251367678675652963299645989241898471491048879787859434432241755238368270656291386678912746220937976594583559176602286405554947040955117515933250338576071794893392644284562012928703711229298566357276761509659863912249389593068166553488040154412502908474984009699300468665099337947668409227273299053230285602446850565053933547161403284087410113583295775660969123241239558253956654705263311284392749889715448631930082658946146686611574564144342848264050761704611781265013236344033649845486098516971961513198593123205554108625755330718030219372473139159971641170740154165022036102057105906566805381343018229794747234972835089111775326157494301506018611659486870202400913504870870527022910871540270061396628762424482631196783376320887880989591997142509306943005529435570202142693998661964882312482800123524659668374501787558758567408867999628735312363409270314902800134302790081585080869270561713445066318127512843070376643491725970345402088593067940469965535643123349401014194604271293208412866575399790055334053786049262362256802458420280065011077785260569152788127917056450540150258381478885208827862759053023178711511916149757680729271476040921185841452062045908826508890459663716039763160840748685806428065301710271645235613241448824739568904009664083790551924175298432604230896491972992273512859663674799711121803963674766107582442581029304585958733572465768949631948590612465994087069296140835314243526686049615160831121115983683400824178597437584619332308382766493965515595515098713355211152647932339390595989861407035002653151153871896905067203970000564015715655001671417568834451317354931365702873702226024139497140759673226954544754896945185602846646659712984371419549956466248367436330199455645201937571232049230354971760139444352568989599290038407282511213032368228230906338131818401210706817583186983978886426381461413307991072541734562652112482267019657047743496674013928553342995133854947508126183058549171757675550299934005545263977113735900086029661384450676206262454070291461416219093605162263551116195250484270713875817142064625636826121530826522068723629808209642892406642161133730192553811672372357068144357047360173784208168535203391363870260637140015890222817385566926964936101718682662650758634001227750252217257540138000071561920183368568052248848467669498957507194298444171544442767903748478753028877046008293955357363771469200150864446014800828625312159313675711478948390447176000160310597155865772928629599968776631515242348890896222708838623916561664670219730109254103364804584449819702686296365385234508981656296623560337277632150930355635735058741788313299649590779961404415790135166234881129676438738123918259875944450062955552894641067291579525055807421310758094201567819521535965444893691546063016418472804848142810307663255898630982525571232899464610415792162840789604590227972025950940094925784861174502279119093999552141906202068520183599409861283547127712746832216823448599221792921057248709327869981848936299277676357199394294676243094785399952825517819802515551566448884174672700109022757509055701256197097436867635019504159527686093571083123849963571430484455414376481785250960004300393261166976612318840757450694080189930748946882485394184505708794208098383387631512341985055949346224729146231734772779657861788841816556351529429813167062495399570421576890814678861737461825325072195750022664614146470393826241758309187267718323777869936323585484478395794162033342887714373146362290160822475986793434322522110825561724290361348281532563831016415321007949914529615780116186885290941870320451663567241767271926259533096236714504462819379316869857181988956248747283836356534573239154016291869886263901240183362887265805696963406887544938866649893124010900913556639923195203513134288149366948967313774310678895022712294032473372065029227552736967314829219902774213167146390940570065443940053376532910772529395626245754868409938198941924586116206213594629784754075735688898081228859024725127990631725536660767832713649545255537855791965609335023542515829778204085106652512905158598210833029046564417829622371445600490174880421510722901501170883897768001069719879691720414886436161127285187851546995649933753332354502355381422335840788308087586970751480392500385116975715023698007158038198311437120330451307975240993494509535261811241509454629708111458389999754614629789800997520514974923737110355984403340429803322347984692672332277539616536266795024384702577048677075454953437250391314943249645166599708649661797490413840298849687660538216161357054140523048446626379822460604409054505926113528866922248686129897732081640016854856270926075627554468260236297816242576329887114248700849297715421931149560818467237331620495701347677164682737884972729288189513752256912326497990717410694493289133896998008508236850945916709452131696255001443434476054695026686998769409446054682253310002242099659164975961437955426870526831058610161273465874691263828987731928091614768755674120889533919858312221333194088456240800124295032107523234355033432773370797011299109173154373200476969636743089707213938017407279548108730282503837370935877015641118007328957410371529717939838027724310812242887224463235805350326671391155589814082547478335257471015956928634949735057754671773906910144586354826529899985345434337060032109829118478408696087828704589377724303397576376308746806026012123014376154892772295277403271643601580623748380470485420575720004573710928205294131440174303341571850461745727299681001614194837060029391802571288159234884063922908469468196145994037105445831707536818338618876402728012667145030031680231005203677015438721523981500137348531016500326306931450753965693768603364708747114236096346376009756937577403829771253039782011543843980216540485110064691906234403074309677065918805871762692209529308399231285625694981766299639691017073469915720393373286248804554068596268234543769814804518465439614792859431835525287275591882119881670501367141825771943810097708489951244706140890284679855353513572344378316708163211388193137258284055348937766317362318484831115283257616757135513924685879057687502792118699723569670529126570881980908122391566907072131999187093829292164036635792046888795333123111384614703710160789130721780409713554968854347150412456442530413722642890927378793761521230912891678655777412607821638535915617351528627038233624132355873646008892192080506880025439360027080285423573294550427937037452968415803949046745247378952795871671669979203005502611322555353487556973680585153139601567908841176575736067073133150342168062900925918260557615764970689809020613815959957658545776102756355624275816512741925822471058794888146283900249008225219833203499486566609832972921278022211541731273264610507701829532945633542814039716630536642054720065247464308416035349515211313086519507666071844101946857023056979108959500641249164044013525369235966752648977565801097452237041779920521422389252442496195640124878495481329691575461669020808177838463087363525668751976993020692537480656135927260878943632931761210093661492863889945234762943532803779334968644718372064167921458257819635210188357334294432418835840769603551964697771170602632253247773058066689632949318851559309638334326694569206053200052017101689408288123852917768554156501763496377729671158495874939399444455451893040171691988822787759492118407912042886612127436525272217234296704792743483365213143162336491709104057378912356791308087141245995402893245800567986073625216900698116023155770169702259424412048798471381281538520898627889809516748613462583864271508174429237872555354536444164673418793280759046046462851658812144403574027456310192133622292335974458640249198386405202021911915285323396212416743966150635909023787649878289242693337591576090922857072658261362065721519314092498231418725697713661741287332572104281831369121010681236406556628384515389940046687104247858583327127004677709503712525675945295166507226848271921463689249143357015273332264160588779115881529581305098627599020251244835114775922206481277144799607579367293820657172677757450002209772781641710399563704257291430228834194987712596297294189849104817076696880825490583574188702848958738206875208335194531866480230499164048957406704292709523391955489274381969097290086845416571241218040974259323920489090970114325153196806982847430683353675288594334248325136965275384199202399313916232616523871868592724636997018592312432883624539691140656632311497085289850115000136055331776215409642740595130276603414393876281628023772208402947818258775466895989942425534068294293566716141105111574795388078982199415266197445684541275312378068472085641319393759784041383923734097380541356978321596634522341881762758626617639529479453151862054903604507172162276706647450514374056659571040250554167291568213643983361815559397320903007096499335273834317706126902760978124909203909909199455242819807094990098584037342483684953247700212896240425482536547285565595292434155334890041423876160608196990813105831524585371810813694703280563972827102053921001838631843550896930262460063866988446850601968442799261783896362603937968313796795755279944627789299097931243528970504592028711208328572413779935895880135559199336442939012098452716994226237561073007180791167853280663178340968898314912162470288804128963093256688510602327424985839684838694609778137942530426927084987023554301332047654029984711449073975865783376940669486903468224763170235468451482726874056444811591527972335337932821257316903871156990689120767164853158249631390266849864319177003047577222117366090191621644604972145486041159555871324885815150776179165846229247666829379233954687499589950793732990322177311825948502131800232630511375072501917422980128552668024025915978618290281077811031324516581464547764981192407908160852058082054918143463874763799806644844044418423012323117325260609034214248813243198107580674922295044236177212774438911144612868920483627137929069352949476808380119838034024997761130674350796498889580371177459119045244720231734740858013107875870650609174583734203806129852298435718662815525820147428396714989070853533130042258029004338082381819963559447472079300763304054996064384862622043103489053421082885220997715978802880087934490622285291110803914953600822992489694646828039887570585292435236473092826670862737838448376179424967278947010492904617683730099677191178206931578522551244209908542145945582021510634756999287072438221656255013852746671335622613587826383368552833524334372247655506910484712691505993513596143386591447868959391756805456706994028627977912587751940475588233734248948381216569754422576582217860784534371501960431821894738433421228796372009529397116033639038495656616914935451444483649070620048665054297595284102247068158196263496419778817152093252091938911462516953283419593084452743648954649760241419445396760111366623441305590274796149090042555579872435224653482243014769512940983065699240070599289127554234790936381436205454005080631788358105557831113685428005464486723154862745845629925922186308127580917753395003105186834064979004448697097137231697281068763830276902987273390311390426435351893609247783231838489946502182549612506630884337243810422163093302045447750106203559808222556034144395188989472057146452450783039544936704811904224177038331641503544141057207613774116021429215666832234958355977804652392286291221992311971411504214473490574145313729303797354212332365866781522940711836834468520269553830565601148101630212003850962555482548376692793349618355782827808206481910527589598056446871551798830000486438793049191255406150430981334024785186476444689729158683691017857228717365509055201652703675179943165721171533157705198044304760244625302136165919680437368874240034678936556405859995651286036109254792036564324756101193289450845903565241951105654465259862913023926927734582232129427242376812903277755547305133239834753658161740752665468260838447397315742415312260163525862709505091358309383392374400810835927748840729137621899086025260475707252203993870017472841397549863481871314543118028396044275123034331266878864836095291135933950288846139548698235192407685502181532583318456711218245419166173252431671674408231252923034623575009653578687121305816280234763692589083319735795406690259772463479942607189154495216696787440062917263310496536183090905779651554083650301570524139678801736389686141831831381838666534936243630367498497657427710138949336254245259725803632498624008631502075779326746529748282808256105636700106595212244374352586383656375561038707670558139581045895091349612884865068177775121335668888868829636107398465960776055756155501697356912081248295523777148507015172028114068203697459886702832380037759433714475087279276904811201182681889274763250872422576303957224457864128540694700428416089936605969231922404668051994710344899561099742883591630898339450857433329067799802580235653672890321372371420192294745118214915826349515170650074989070456818393905028917093447669622818446972867122040616848782957234347718407163728535797040379893288224606151448895749087568056046617950156931528187237580894020037705023875300218313898684741263155235779808572792856157017767689599128055824836126235208884626588548541121381293157511922215099092546734787088079903876790721962601203386262621033239120026598584911903417477973030518139084347173630552275761713107873018392265410109863757158604772471284417152398457119656037244259919286600482351455960291188478881294375866236683315792083899696937839861373306362578123151678677835023231006506351678207958274148608705440269519422441702329184827374522382017541258643367661823733389813532671715855704926788361145857434608840149205258713326540075945135059245635223983272374057289263935320223617468461548106192764164325127184036421041561642553232066519166559209671197079583301978486606500572181997420463176806837431763154313226161289638393168759661812896568619611162442488319168697191856937865430734870663062764975709568327369761824540992146391266353651096017489254282457353845207732762398297156269372372244853590578392141614524979838442244196498810126670117028579988619637839687097990606050941591658119938151249549351430794501153575508243821787820965790357085251503789535982435731891860044922430824232559686765477666583013576769495630484591948731059608781286226459885661515683978500621290807001661344115288849441768639767800980975281963639881413022461507694658022271554207801942979765623011791270275948590540404148274837970287381314238614835885590051127789853322336524456858796066960806921683560000705355651083894731905024359533540972910194404863870964964775016930156475938886794743313540786097249783179461992921040284757022789829226761975832403525279676599371530338758706139558496442318286320583984526555323636266628173998083118566409994043222495330833624322669259198178096276527475781606732311397747991440466203658514210762197292989636104675887654145786400827146482222818684153171231232731202578226471961699018754598485564828891914799729316654189501402462253220904238997693818907190943952643625046461834804143759206097018059726581671353267465840857540165299870086952250817647539504827860632894875880703118117475403520293239807295132632389898619621235968257968486782065854938049101249949170578533393151312876934173902579963200507105558488235660612117040080042261990985245581348218527508148725397548871348773060673000417542176502449045101726995250835626667765336474692105258808429505133869522365785553524417608308729706900853370527958964811384367952831188342798327927235389020517660427979855415331649825854702457347851619789888738249447599529921819231431781872492344937789050093957565955684203175196699477349553280289513906447140545659953128061698976954612611629805562048964101443401945590144761034700443620859244291203831139288810466976962706891116881483576020461807693368986973505437829912291408443350419468226310184315059514595362580957799715275073249211470603796441376591570592027369824910924942482130680479127305414830373267366581614643673023310832092300620258655682951424351430446848341040463366401810546504635670427399845838910584908299712153979350963322788896439231697154816953086408373767643348543062233944636995314467591419874519684938976948767139048624188943272396098986985975405650450406979424691303731646908542447202420624190991558973852395700970890938295803177163910376721107327070976354305301516384005339686874589130260878499194006774483544023690534443644268763079743713378388083536688489366113211488442196115143973601200596047226610686859439979177461863689578025438858030329248587384542364112714486561167714885803294230629299944521003245183082507916133327703433522780664383612766668922002053699996987887208011637047910274841849146482932954984704127329348977823175556567732314216177394055902450360956469774061188657481309912277311397461809050323185945371568906597286013658515226869308634100287457318443815854470948839357872685068768754099665305902762734112357097341933701861006320251482531492175662191715149139670095154000155981173832122097463633123248941109416225078362700427749936580396526413986610561378146473875176330634093033278864102078730206445504499815559053085595550624135824853021589984665989143758104925576446576534232682674730970197372866988034765152844435659026163517522367787606490541078906781123257690247533687436619804909625463370496680929612891564925072471274583168614218067666439199334581088031109923498448259162187334601676204295013422335542182824930610241947808697695401397702686612162493654660776806755516045552019384998672659886969319131925291803776098377508853212578036270119124193810504751839478904300451201545335270128660828238306181360378162310984390623259042028907794371883280632129081346961293907773796427585995128045032163045021499608042453172886333162402209582468447651581985029577478900363760337195565303150711696153385223142039892623906849887076978527736880248997210357852456846133312978548355123961776213533057155270350862609380001799493773974478914771209082449980944348748441836160761254188495829763897091411111637585629634953974951374711796201055665057672761379678379173292599646783271603122160995427041030830818756712423608970627441506767715282407759170065849874161832215180985521540191880757595847580508930403528818048310350670808596847640522333756521031151819140373013176070593172788764515719272519417082989371114458602800846296179039537483835467620746748180161221806032380829675304788814422575346685852004722178307867139026150183810936326067616957039373303643689923073684697085121024760663486696601569074232820536573684730806549738194618853357032228797782751968224740684212046746838651967472967642677498228488987438531633244113524858426576939535508657795861471415624544209670868793943223424699666573212065342158608920171918936259898929428172451613378448219943294296678913733858607887001128623943647353171788477392424580287080624497144783187734642094222936836900274242763907744421574879327390004135602362057821679802655041806532240685087647289291565888979370110469265473830972318455928703077793677259484678885837719519274133287966768313153756323267158407429717454521111469262371782513660486435671358881748512659873389942099157313422023573928799835854876379943407984334282980844690535544910842912241716909119590806285005858059458541534711022448513912434123669029180223205444815776530341662998300500154291681092065152638810064487837598890231489695859121973462400866770105156987317359519630222793662917039004722867458087797643873395889057710804135445132989517287232675441594421826837989396003955214136498553654850967516188536548324325576489772554955551330969513181947704402537076507840060825012822113446380032115526705739219224268840941443465624432142961144703973032800014305148903807164341424867762310934929781553454104901552905384818457874202828185065136382844170018665949166666928751852271884366759287987102487288007772403293662847328618883594052259419926625266612137644002697935684568187660331765921675931891271889733100677307453266817386478819012785314068261033760469010443972643730306864715376266311706683377834556324350612050544640240810182993015839218825748704695949393459783921639288966158733643570644703290938515319647760024672949949074263054017039786988910712217403312690889541962874931031837840011295963639942759994725346851065199552835758045520784420671475051640044678677354342611727379696876213680592818741839755422947969798597706764312053852534364997634057858180515432418348486641517206218026474181616613854730356881274647090807955804690600604974373244038056540350481514738001036537187309638137822187759294873965497418075133323519262601053950329116202253394138465811615252459413490927727606225848327625154217493711002519658691418840125999177468621480689285767270553590042674111913758463472576341686939865783918762139035065171139607245728341546749199903954427547008118849208615490233402497890670028176584828132841035527774948167739668990731642600640645932144060389738502387066104915563598809812206888099452321579890485968849827456412950865068570927778092313824381969027459881039228583189089485308565298211453569926839398657150578517167549236897366862343433774703198299098908503291821513588779263886054774576723176678513168678597706584319038305519681483786029724947754936632389162305655688610054182033393502947344630782603299099517003671510353360930259523985659561639308179510678803372332803914078910091641270003637723512904127933903350155374134339227139203393997052987559380991670296575593054126476880753139134794634410916754526007396194268293609128991627603860783332932455187473722931424551619322152284624612142424046801014773045818715594272714190793957269819594713868236215240768345648655400125995632527085712575552430887157530766278643281748855344989195984042681389615806868458957157873814715900412606185966762103494621299548111134713584067879855111000304041135159618282607684243936025276486213400840556981878410501907416698776004509860438056028217938534961447271211832862381667801936593896988291457910414087746562466969854650614696447481885105353575289425610374950613013970005363642638763856719926284140665358374201695404730295094541344611585310131627522433061867358871495365074198417161495992704262607569436415970860095767962542620531908659747888247888676057723930265688616238240261633199533579481568836702138901873708300731046050894841606600918238036845732175718739459656760534530246476014798517046773177422014730877919630949142869189921590001423483192237477423699929793081573783126224765417486819834922391346481086952252015767239722109272991752828463934760759328147563438684830519028716985492096163351683231474840762425559293536008192079334248799874290563869360728955274331318214324016340946789521470083370349914265394246972292626544116316731333490047084829131461092778357929448989123930739573834118269209530605141981793692629835766175591396396605670810848737807375000088691469504140370561474491756766244422160275357213420123645274150426072033537626435140229262346033669531103855609540522048891825801257718089213028639287219140353068425037669917211458280261030056510041085189716105526735851962912493361648283056413891508343448087682547153898636627621811737207585002263001744672251335350886913355337448654566245667267503943143616324657267284256282544623474214760803224131793270475972965269202040149031671378454176854689399820678510685558453396876790125921841912541611398832996672661165024115389459862034224961551374014717375237644346192731835636429510563250833637697712065945732750632728706911169937378131075967240977512300252346288272121699964460150957115519825341126153208374051895957156061800237475985208625956247002876672206607615031534647599283087024976408809088684394168648487241985128337031805592487387250368294558901244802806226237949570936607380327614599222226171279886081243394452525348915665748494495921440697679868977057349774356379443493068651158074136984407588051011188749540375211227005090055022832726634333887347324893648496895775484362519144342016953202814941626481845715313272540017406408261207204432572987812161604147971795043416266860555830282650017612489671062881048301060355135393449548161030573194001899431052975925183631580540394339452335416862117293715814659538009377909262931056861508866650216532914897186313856056050860126230310662165489023145066880583473537703907007766148552005643956617799972324413062296642447472109109834465266898108374510313239028745201375996272363030182436943156513311249202230196235433189775412850189678249485401048067526958227250934866218951457434332706678069600401047571178949616442336320478613067395658602619367232689333373813920098423043721427394843780536849417839091135093122929821156272653408289035347278469277096101135740042166946789320503313118626851744648386631522560267903680996138866582667262325295786230936142131177729399477374555320071174339200959494443333345367445811196821787944057391603862947191483522174135554643463454199230198816392833385229693426210112962425511613058915878665912181223311329529690332607863108178446671067064185994007164264561632259383966718276527468551892126936628346660331611689232889594454648021866726199809467692933153017010459124834706045279530288668436661721290298294551770588079630248134118895384625312468560953306188517688732289244042014529454850856539763395172958501986161263872662082620222689465082919667487551056910409834061712507648494945966171825801313437369645576455168415174714065223699931256353438700730575145653247504848902438256116589435919814504015419517588499297674126952831205444023069201082086689946853047642856693592243460593398012762313513881853371866968478396354478886499575998810423807290014410271561326270115718205891943782687612219450630005336816484391709412550104304434952220062523965915767855867935785222783630672598846526353603551910965583894776982050470545690595598520795453418668386152166310046637481459260318637380093364009582740738019575404645816611674386255512527476588577380613179746683495163022472630458869490676636719620263881015445379919085846901075729786636220216687585619188489976853710077395547553570364998120761557724762249868123119771055043168699437170372518429521707567097643303077548062127310246404293593260658304569316132943479763746849498860445228074435484185257192525409514829584879341596751569985256718616658760910742806509074854480255667061673042816796205955302045735424909420555991261805060026900426660850092614152111274198634067260879324326964405835943419288785398241261476373381812401122773292143013179265256847894955369395062477955951654148975485733632767234627307906718621189438211965159900397329957916413450948410907081894103680498531205020327696037487200527386295586752805651463464602052551788820745988055834113989484107132868413295142746429259324556865166976805854328558295510072008255105597367407454668928467343920674169875061453579831385519931464352224566917241659010579559540865590004567929974805375630070760005368050757800939328902293678650896458394800505404508400764351785431941807675638805830902676016269486562148746168052417002912994262673530182721278725503072163172597995178228962054641217722772878461890932943494792987739634709234383553057380474481503196921789648092572924548046830784667930241327611137157640351733614800259062325334453873413163508233097742879590693006349798599465527788648749278337830149739814652049132394250228476570917746128485254530649605508278652194820455532441383164155865225574914017140973058618498084927356034357198283498445795638815450789211489970707116649186783581653903075130787300824202789995346061145408858664353462646879036094414449548534465322528009383383594068968031815169348463400023321718136783057245584268951259119169983115412305019175346621810811961993164745791855750499751753186799025506647145685855343073666782354420136176718434850355683622110127305478008072451787192272912332941231141596892064133071886542954824432925340496644552468666423090222259985748208559011490562375387553138489543840560978075411703625637536876330940593406663596360276304078948742361770314848765583197636434877240682907686687488669303421917674321082164536856856074951221867089524283316269992214424815299547617468703194481998514160964854723243969041507200521965744733746786793609562494435127693857340723384145398751853374372826603073986880373902940026728268945256358254899991193943844228215552629504162667570569029063127045416003492355669610533378105979815428311616349428368420416332621882234701528166104367532234882544995042526375106591010280816629209320486530142024447205729284177728270241310313011178218547010881018319943584626251373732224148836590454899271437141404723469487107492555493466083067075485166550505652364616561815477005764889686337249695369050979523233369268882724538296363238893569832177868623804393781448964926086576198589269484729456560135365420004219925548909652400747910533374373370546945491972785751267907137211273973592082236777452979370041139323104796995069730509361134189726286672883637341438481974595753173381924514791264939549825792670395649736601428638144569255293441763068123888043761091310539209308199984650729989786511699201399221233535036382039541050643298523116540246115592334849912838927248191560913014951401098111092716888089155081064491431660085593223500394758936163365161261400094679059121683431513127922836252337326152565410464634625521874209102095799247618852056147489595680379445211731519160288742827038703520047027949304243975567354862446968281845534685941645086983903774445622515684436427295435444055240401624058241802228256248375456448866809800867731479969391358925855243532198951182881190764321941427593435800510233768374545637544032581572890318986317938505206924477893197168506055555132301907247123294512438316239577798132558985545079315235148407264384726410681664447759315714507881415125712438533142503150445407855660636203363710630486516059765605544413687440012101587619369366476613279432042091204566770285806483296084201034895438254683934716288442415280373003413892747739021653416986331833532740044483351472105955686447981898526627756241359682998339830458910054671946269957596435298512122763502210573106419212279477237030449168975781584713458106642782799419378080148503309661761053470403832545352110362148266207676148762245734349544176458835011890628739267447386775616397523017781301534300046693634581820858458208069091513579689121204827658985449541103359021239997733110994592178330573565525997419010410430255353505817766526553741859579367848945553946788600557842113021892708688735916946541013412709584919943512194250005384601938575682653901722846125821472719033756350184782058673568278442233085135760157333427789311998029046903247395354824286803914835155523420009077222991635257429943011786712740727262935012535218678292958133760200001300831497473696722787408801842090050587672398800007291081165747533542997360247575340443265226669897850862383919594224837078487011617711177818309776890197574993104060891626706660206533863697980642336852628437782212994206149896691138659346280554023399923627592648931986583586936070629234166707779342136143743722168893386554515320222851219423189702558704005679429256870525864373341782140423081268414375451913959246761997872023138395435528968640336181997976790534747190911105083776283176129869934578025925697522241397754189178651185679504381865030865461769673467583567634608281157087362725302426306577562546821814321617577774894567011179902503780392292536183160721198869295126833519959424649586303507229868556282040690768184084740217165628945306570937317277828086798585928732639891059179184327221929929823375960054102544462707942638115553317020365673171843433954999392726436546687402960134706284205430376790879881493525677018336184002984275113871830627668056427150177530464220646242384639363800743312456073471056482586036245413732486650713734557907265593478687527725460998729049832288729134667243973573774543624825204369367335419023929483291949179176782064682309519244146836731922800337550379473626552054275239876647102717213174229605597858195626941022030987002159248311089794312856211239006504475368423415762220540108716060069776724875776312993422965463267511761339823138791142313018495891685913728867802324461805282512666991042559572093193077463067743722265178794042792119145152218416354962822815573259107157271046318193548067360501545932372762708475074038270676512201371185057851013330962625341621960906603682482838059409448828101048196685681153057972232655768394938123264131291390295035167242927328222180300318450923785723063936797682034816193667736461766599166040125752431912893385791391720615545348734616293965897553943786327970649654411478591364737375887522483869793236855774607721484721668361734977920451000092940156398051734185460107625761626508495273614335935203077538811904726225336002417337581686473352638320115754197791263033019165140805002921104039148690532457278907463434359416028497356773471942238705092316378152073551341420739761372813283689119152546299166191305823095294380148910466197510513768326155097727309645881423658237907486470114470296700916286351518396490244242170534339196851927370378414615505833981996047505543333679735590124120460913974876633836800666279227786405276304357533928204388737931642734075033583661932692236455483305950281117942038649937513238158493998518610580369827129151528951082621779083369275196153626528731185865044426388092604444892482143328948886084570744935472649571456430395127069673527023943058226617704202636062398400173534345985170121538156985013997620437749069965764445475975868385571591638959508569915314881594448426619143819159303815474990806795089728472977094422751031773275284233394255112940179522875151484716304647219981998027568015626891968335788390782893123970519472267476517526757107460595792120476618451046034543455588083366348406458768135425538973208984627741630741717306768136171107759893394550884748692852432760608192730583889335786097963165909167164692813546686467430945033112953413702218764442110078402450566935653596156522677170669816992981173319091049951429406274239404874931603417408002305727412315812738817057915769034337528228415270251388882485680897098984502976433738169683525289968768505595951874665139373263526665420027098803312640443146729707976645876757587818434470968052554097096265661786022946906944893420659541598323293129616413333549821853816846831467040688912039176235585539763827314948860397637761319360395596616161128465418328824091509258016485312579896240888312119042726759157071417372775112716055707468384835523584341507581447146830078493940584929558073595300034011090271478613464364379731075196067074509361794946631488321524671233949775312454108808497345727753035501057203896718315267515816836503945255540318023491923723944098954831396460485207415923051651242093893787510078390571742083021399079649968402363356201051910928481657533349062697606474063066569427741307482606656870112702196204952993764537740380232193798546850089788095077555202049348830872748281874609590605857886724549240446731155051773949271007045014428794422328172559363926239932835495247878776243917481435925518002678103471431022668761173587439622962692085282434900898074636136750548158926093123436365803270837523114873773767865764745912409942919651068596983678498483198243671459930521985960698359387981334367843795118198318800033012797550694699619316936972796803434717975095449848778764499498528747561636033629387016976969695078708733914991018547089214578741467217954715474220123354768952302148121957921058874924832834042392718010209834074259147964124564998896329088808345745096051915014235413411836370481033833896357292442277013933238966969729576223953487942631286114096598839780738046195325836506348062004844233050494606022201733277210583576725401814253202794449201149914717792734082750587476500317953773959001920006581656767133375688875937863510750932763061439738566441460850898048701283514032739773162012258254420221801845485179718382473319626590201464072825126191776388391056873818681177649636389324665640814456093581703253436238328824878153661611815951068058437960156187852333007474369224393887398194049111613750365198480846991135597169849590552444291702534179759584845037222608999103672562945208694363300430481473849576390230611454124417864220699805571005040874567040673010486549155711950652827583405697154275598809128531185570113877208431627795129336919928647210348557437210257876814842663372822761116048324507571080645243751600792454948257847629973464416250740272970517974152152454229980745196728595206411213133596936655384225550683882959089860062741027472332865411037129113262456674623246398041285047748491970022590218734818978352193110644497787448279278635851803028429346179109224318339032796625831267362532441727540040629227180980470060398218248331446603113598916039317919184219994973902631214952765278675241417664861556127290839941165697948090088503911189521612023053956503872897192695931439394956930865079706674869323039107596184718079654891203876886207710248819216177629336411112936170726312174843045348230476760233776904160580859013824421807102404066501227576348576024860775856114978769965368161905871482266192546981539924633138315635412204639742376335927902623227541738071645072606640354346156050446521588082344392327398304233393842497979390931140388953982948309108164568050945403653104726624955889202743458353385626367316778544362069759307401852763280200410272835909779469353803019365712055168918328466003728107343979472380148373471779292687475058981508849528394587805062677002696438649143094433168742571161980228805513408093827369191205052552022728938423286202499296280649348059556294753297138179671410100295379608520078754503827499701799798261126060090135898156250021573605416875856913911926928107349666534540135654887658453999130006302226021677505437824639336551035760801770296672168077023869562842265133654896349325243655502922174585657448632866620726058193012318303803938147552744115800644110151652634215659501407675013369084978553419153321939796416687507688799104225006057582807117857444602397118127230841730843317240684293549188256728794976264042601284541716260945336118954842260172100938652844408261892028406218676303388848250835704378384905055617379924028997770977164505635352816132031271777121949728873875071923549143575009285198351084909054046003262158222057299392061840485948670931733374778092013407757787993433542679228042261623765350069221776153989231077051573713862713648360320755293818370856964742640422029753084575702165785835338517264267058365482841465993588686243453822832946528152771445680401452043801293859589407052584214827122944179098924746029039351987497936796524628666962893105242088906543422090664023089703996672231926889781013805520889564087251539472240151063014373842417041548034928230043784408266108732375206786067799852046506200447950739516052615791073099746443439852436762490100859876127287955074103021925096913573705940868951309057309248397484123030342924097348098433498854426464154816365370475065386333913953558245200280182858084798144860421768980305340737598593905743173906480911821552149857376319571456339662779161606567579916149867116109256567929610078524261898364931763158662035086522813369858693707415359421714549056015108859829074943186977764451949663263720753568925926014226118583479977580629204682775555754947748489555162599018604627130443679607484244648570998053517808386484662843919210606869027013822095490572277272349424626115704207237150462781027981533159445772073648695378374057343878410802848440914762053333835191951271227262973469750616405179504731169887457956756774529686898840298954180573796961883596617074487044596403526391761713151818076249371695097259026693801628771980415022872970100527324383381410686133873067701819426645402746122064205451377371682583030322222710856606112322610456943207251566625910288384268085693796369152047395881459891630245188302138062491904019154357506442875220902025367122118921899135251781078326242204362318595459609930205704398198325209306283552102463647135898061553667463779457994876725958875213746475641936428349710751803739589510392242432880714531210171419381175487712949505050150464433741760695422207365991561489143881266182792643822286590275779239088665400616037584809930973878936626967506156824860471215697301996382391493291008859331859084685967670502797516132943126245489936667769290092019381987507823728343389073420889050809791458832134820981397965962947826081414361512373250637434044261461501107688829426451076950716415791136742540517090832362991501118940960113212490928637398827917241552775709319011102871329785520693070504632132400473732119027533279128460958698820855136204371506492329980647691984765571870736599135438807744466101226555345601013133945014911081051032114492877916814879894539575226394595575633190677821795001739622125918774282917426714793390601446137678032067444631765737955451851886311247705581894362867582081887359372335625225158401143672204000563986460199743000259653957738283676670663678993891466539237141975983362627856942484610945283567437516407258430462505074775611134674674418710223728988010978944033831980134200778389898036228711108944486885560748788687138902643444042854056596649030273818690572282028911212247670675508052976388219372602514815877780408170858992223520757488689108144180434740024428623425318273003643385113516733181474731673323668702463798516442592752040777071386331742981088076457547517240699855068753117794918149799530731568594650853108254918371534767407215545871041066108041290314828370851018570272982165483672010168557153422971840725028368542509209255591615295785486725791331517059408237545374891269505144378768235652312973986456596847727763766887196400837337554977098738920216302558315830334589398536986938872044339720074320867426919281063991760364992149612986599587059310749742842219074188745796548984434170678936863073868334021422418362540283115689681242457144173264867075089479370238870001079614208965747176115550728719665043229577301972761967540703984350671743214222635896612693164009700440268642988813854534426529883262185749044550304333741121571095677715117872726306674945797339850499206405770741589087013014715629379447466397683353541360495524363767341071844492081090359175218617548353302659618413687598803845221598506122946872894822654351109012106462568064777784260015359414892533142507567185569056319346436402935744544987519917197324036179205448770371639474104779238308046721133329851474293489131220331507679938153771299480599323961056268757842403187019860668373896395561981148818737880658700274063934973375580743603212047972129555604575382134623795836858720205435127330728024175589353201267403684421724699081253383713392208489431988710104575118926337955370383052573716408985886240680008403095849824776244124649032397942937198120138304313616585317975584482392211619898415220385005298804285731524989359165268437322259029093176186204504520276958540645487648267703863122677540867840680157436698629948692748644585722681530568241875960436349251509227927665584231762050222550034613197925559618540475655815320470890252625654171227296170046979339194893660929333029308706311460383387401408442869577714921248315959185539479615724832743649859269021793223682639714039709065721943828857709663198072419032939237929957059658271986167542828699498937491292076847995787802523255128136450043838650028801475614038928212832127079507626574368664210028083446717858139432264846728106521797624681930246850787013459497792314773279141146949863716865334142685986490071232490863501543858736114839018994989094072100214128834025197986079541565220626112923187118877458880564700215643381562063636935886443239737324050534354659712940129811767583429691542007732718154388414179025076447889044065432237716187797415510444269952772190207769488507205736927939045458923121767258226646381675153485102624591549003570277945115214573248056536177013945693246311210240856646253812171204611145482439497072559047379550319713332194129744163008731213495793984219593047925194347631206090624305999019898190288091030369839159569953904381704576526533749804483812740298665066162434926739205953151951664651624765408853374938548797171391111822770680155659231929659350679895810318501086417984667828227758069133785872229244558393360237895071763554627225931834089014020551501923875033570754586038853414280620657865819815518208560092878239070541029369656556400121220984526333594648137113648961552797722739825770479060974908172950202541364654889948753027015306621641588849203337117721800774739356389690633741232526213044080601620527585363773364567058020681066736377397430107694932673381769477101364407774703408156798289530794541794283475937342241007030026035997458409737756856679557662210761834503864290159778941746196968420063956410948000941902609629893704212600181258815378561986671561689546572095983702614607429637939839691024218982071540667522868360477622661669812745747374318049285979618472759379501293662856179189652345833924745285927150217857422315020421019614443671479534119705052019471673652380480687678980712783313649614078649700071288124866671984905501070458311133648716100075325389082086619757976953266307612074777097896507708240820830415230119361224735451956399785730477042001588653907367556344757599968649515826024488930892473094244494814612968287604847911498241689001252879775268560343720567854198299172320712289186647418261344732759564386020975186758277320007147444537953587189224481300551140050120470267820398918901628439126581359494281048293516222986295352073691920222421150730163624394495539122553202394333210912094460394161089140497204683673902278924612269137128256606932290710331118104087789379954864611341882198196706739797079842736987611952446258433799997923692641673206543678648077437412030379452903675756068399642632992936486322243152419323932024596168455152394526036085606607382474193592725029375744844781284291539867802913489026693588011879244960158462775387702027224803774350239164577341680950542369567524796743445342425584274252331709294425415810143672212525546543951936734962680057081126419276541629154032571234458125049821422803962232769818409814731915735995592636903593460748788850230032499045681224905174686494693037557439858150109080434409705026728418992217275348728261316636653595199433784342712563608810894241250839195567991851313422204595148833444271573428868670986643552342393476433062836639298492279083730420831586024999250890983578112821186904009358523914071869975381959552963075570017866146608807923921757129560127726768508976863182289045372719312119980195353339597968901244445483746300883072551253299445720608314448481164941684782472784785045021667329593291690973507473505591881377774035832490754066645481993078029347227948495051351548234968789829893296546389884643083311301750525670819772672315451433216797894407164183491532182474785914028737042559818510046270273323055568705309673419865093617746320500970997811726772149475634770853503819827718810593062558642043752366007774105084336359199237527260218873595681050223276793792865348742753096372308932925901881104749701312888751107174991787689555663610280195391140702924575060889764448715774712190673404399030115981131291069211277317871430418592274211569339083138401601028300222650694816544007948210204619531753370100498089687959483784007108193282037310722696067041359242196408073157926713714850856918241409945402456747670423199256497877831762775185440404322651694064461430837810203854101442431022884444011434521370951090126980669513509874596854371381975478413656749204997145253599151913665494392288397264726670119795810589445999304002560071377234699383567098518900480836099343083383903750956469036674305339366414183112533284784952778428998024784365492618349882451259944661892144366751861193227255880331708695358251711040602113443241404062700903086721946866272755531236311366735943797161512550871995911549922994688767712943086084410402804424362716365511982987180137054109467545014612566173537303676881055077692485579049895543960533467079284559510054830947548323473505908197125767656153082190119016463891118873294536510965416201409661069120766025373298365604518533452046235039038166076822223711029619973224781310297110955783005367203665819054085026491766952943690780314435709136781136773802109364522835605930811715785530198302162556318851609421187557658382742537142746325707911898529521434622995070647545551418598449375948852018832131102382020573106700982194644770469213297976094675620772257707540866327550001321501049382791661590367832672266823393971030800885767739762458497862071319553492690026454781959729233166061301150433799607773487494937480888308980833685441341672063368083280763277589354856339251191672554730920072530950535365784732642249448877102702443216145075823917128162219192015540504825639399920048465286353475170121801323475924359470727925501696377665368140981615614033960333433368262617248843575943767134419337935901107630104263113676024100389509133772911392610431637082216181506790669834964064266724770742539836304660519175435063469449606640184022232925044705907185207240343346257154923726033204835043585225549866532911392667934234136436403745463886771715849066487473053834902381210474254383392590584435882593443197688400247021016805264289413987770027681282915346481989606957482058928044989121868270770564100800426375246104158007834925457535796828460474178764936901903576100878978027785847039698111745156884806481705324901375704071001479484024299730865961830314345836701757052620857511111539750592318615762579165007051566525967879345095517114642577228091821615837271149028025243396668837412371767465278877523635049505946787659567571986770519081841370910846560410333563689149547250767145200918646900272795563655165145401322232367467285396387985020008244446664363752712186181873656113375738777307583391132484067669100920242564767645273060456015498412799207798807598732530675276161965038959041095806631732584455620016568811826741330928657876080656454640566700267856086684048718136120528411195784861223564001372037935087332778476748232820175447410887850487104903959662420476492822955715305262428847935325584221650191421678246151293231035568642295846613262950446886098091254062426265512401987703781711894104365078659328384313733760194631566875245379141521141907885895522602370440856852303165572511990222656714467165310819606184577558608957396466561242011764154589121480192451179889874405873550897814244542093327300743643642285609991182013568047892234405452150396564138875580779153965432508735960635193353375538247883979136137155118507795738599186590805404808652394961386651267553224117552160956029162542090064204693416716337912714440792794871992087582622824545695185822711480912096266512224490211511911942248591465059935985549349231531239514326528869586091178497417329684907442334533105972743829026580028062440903787394424316425028900834331714694135729712378715771803372774613379474772971517224685745376681285599004924702749738657237812004603293058700701390118921568987948638939694209468456838087371306189482925516301650450085812796403984183592648547646529427860604777645462272788059047613739059172135802513683673470062983250615623496227254468602770291595946371508855143137691146227000184059830825690876744446152316859417681183982180656385569582245947185078743002753109837004591202470340056482140208737837524052604219028153201290863754570194562427293622781591815799557376906233486949128138276752738318612978549263834300885582177164078172903653727806933441815179233641430444452529778909667795744712503760444236121874986538888039321598169512556768679421824070487920986205910007484471906413316845691818915035697382716693483293926460843857143062669652842184400884432254517282350733337000429200580545791500879261071227663946736119250931363863169003924382429112167314915397120774052925414693389069436630156005353647175242952451678383372503350660271451728114931184170041629110620333438490404223310199483678205618547756492381072286248291015149162064145137547159151531221249108895460053217059555220486436765170920118378291846355863530460854454052533914604526490512835194900264984160975279440722545066304445815773585947154708536107805797606351214906770915720087823026881757997629981996520326086021746296145911463727394913017677418481517193644500724105474486172014296819325360170383519733154737087822045847575658746685812731532512425857985245557581010828431901765069952253001430361865644978566549105154601713746378241397639087511288078730204231128683668956753406778827941115998173562105781208707613436835835261720602368412493702069823452982854286301416064361525337997784105358516679501424037571899462743097767812950378374450711943886652118137504667944034981991809866581139797666562640862689080223617924323490555034559180473032501524867990385053552886820552649779878382965160404949447496311088192684075549388242607675926082858000926035806111631036971907403046246985765836086459761588304821808324115332023931461088891396875333486516673132955416332535210917734680568410026392068379574570462831993916032434407761475700868131876428013041173517897436124321746129964009135710345598269724388580503554112006587686721806131536789714610252477425914566481887238291718329032283170305862381629621078552566065231075999694765529952581322703927506876907783237174656698570096531456246949802609830514537073514917432787656947401874920148965081622354524899911821095849274634337768733008283979953703896655594696512408742212915284042593958863050411345380985022080233928732471021053880541539267133059218322337360634002506368712693454569340182771390773554074698492023152666467172452397018172231152808399562883024352666383849159175345835229363062884310250629203091018192557049053922137080659439738969789317640283538604417163522270597653980770634150508135285842400784874583841687270536739193873320374272070887981739637616076884849015124703407070014779358068148593403638305177758636539473324939318241243734860091880504468384257721943792701405506241207287265462430688832351632667373180707411230552153319628483440262079993757818945307720451254735768286039084354286217428026802098624694208992964696490701462600458127844270497202660958464742332263911204692952888554149809079419811803216184624531497922506067256621321294218785016963429736352111210545903956172585342528137774239592517526430645160449386508268410626208061083684443451515471884367718768004129366587690730001115970626196161002681780438480049531028070365439864387176247618651672603951385081385412898015412928113485185782928850875949527205999233071188800671860977675997948129627600144201906838662585664108486966537885333743647396246907044352242725582873541103886297489372847133435124432229108142801997431647864984101029421960739094271760512638575509328265659544338722955223455060309795168471746269169150143769174107300083477463689424757798272748794776128755040393657805101549003118675848237925013124344454160626706183977099783821922078156997684792511004932437666677006957615303629986162415740583421262888084187552846346285175241229390664860698774666245428609901515034625302930200606520811549857425067070047921395187032802899022947656242963989023993968424838059993433444689328556979232334690140199111096109496745052917366005778292948019957886481837197538433484676030830054383888718580346560038279925656526138902482920567597291528555672038054546641670844239987699488988732394024355812869833388098346313138139734611323863067587295881506660485786601006602428196562677640286142662048508561407775845732034741393499825625816211534358547009919559064434816081144540764645514750209234480560783368115849622629046974350421448610398187045688321017801519432162106239826775611566505913410760728079006310943035104204513835262397099669484682172992416292128830742889878735561932880154359457767742165739538601486010327396036815745691037373297202425511250804014737992607696458673303930786695046195044930392413602042737478275889655112057503397729633920054102536111860790537420892957706698902301348876425674717578062696058827500464009865245448148024188252295122651150759582131173105597814830729519851481197965472856333083988366937789048152681465669589576283630608701529235409843136849186110741776545864997650913903074134030482525898809993447191558613654097209469203747017805375374131520449576470551655801262533306314479319722591558970865462108632273140986609731887723439432151766545141778030564383719455526496546156971813933807602464033511361182860027551834641868550784860041138906785134142585535556762637744597634719389808299434257581950042306690896746627284859081007399828094753780378534690474927495172646602008553266407428828176985913389995821758287743869444759862501765426553285194845710731285140903087293553435226682583802837342104018085327717860711126188870145383628284761108256966029762333691435977091681702591422775899809151219774740870402969946649779064044055403934199708160091324846268329343923555396370451484062024188599474740159170725573148907875944640866117650676466662718618606016927510153370439046624053950994503439444943131007682104467217593594749969625968017283525449568287805381851451225563540063402584008089978362397328066273062947752095175391705805262659363236114145707889894294718615189494762121511680144559717220504499285030787190261689866617440883473208830756924311570535151815844487719950839178969091454768109325711538472439951915927575436335676424437777162575199694169901783719599252453472158819963364018539884494605036452512150759229471831459671198270718827200385963839554780039087680239308584671951768753683142606442055051364178620509141409641891196569272926988039099817974153575619110536980482928269465600770775062358908830384608242361067735728246937014111344005612923039392423907419199109799373887030750996230858692803915540754311014907855027438465911164386741065643995748103039268841660694435223801625708032108108732662183259582041878676218853798936889982726852284946117666038921828541256614595399034718463113173376338585562288865579758145192056189138825700531771379728252456842447086462604059789647710467091484678998901376868469543321092642387580348906420477656623957433418011147468583368492196399774957410464983069763282354781870624873392034211283700104787250446152611173929478425791566633266014519793682930726259529077866992001325015985556366029619384835927416722341415926741929129329831817932332954483799037009139854627952825321452759284819272901263507708839477046871727866574137449963167542390082639030999704247996531036107522862299113646370832170486226426297204424240941520730676836093002406630936944066613341048277061842099039012005118042641302475083100098741127962974429107364760272153600844404665925185170366839923003286392216285710446461415380234208504396104646793060630220233635630913823960278470050471926423240254658472053696628865119216944651774004226153442951894275417359518496027867936985759382625056684381640982072584143247242415401251966808612829473783502260631015192425758488404947092645168211179559975335874693631603013029609925780023692344356226535339150553744594229303450760714324617259635467547300712718076455907594239890592910437984306454933428736492637567725811563781262873411385587575885581140921285957223705479040283785799440805021257608791168660898206443883623052489686915142809688519275411230745599331830426247319797182053601594859656340726431496355267859004283988564242512648363391048505056252767948544846864369582685962930574436725809690788369956617825793597943757874285143535019177658585438260874834827927007623116244924020298501528568891795515999852695193887744240093441462447417143702521670391220914429455226104995410792686584838909498118415115182656812166724867260948548196338295221420691860987524268003842567307377508847262312013564261197951318510554662605565189188147049053604579604760332488706875563117322742463647848377969869143352401145004839935735657408178097425615924478708288422953564494843585252945885886422379228785573244683120751899580850155181241161318512889111040134049340965051758527447527133069011577090263601531692475627836281464834377147305073153186476834738151600425581560401419719290697322406341775715169457356099416414711115938238642218980905439283726519930281814792924267007775670343684905437771985163117187051543807927502927287292734804438376097391269026050728433817259469060589218226762882302604368072053507041930410176284394666751223087267675105310848216571423722125273569638807632897779885630141129894611239171220560728188817358632109413796029512008066299000355450707149740881699752395949560241767506422179468416916122197616680075814033993900373769871093856381558328689641970833743436787971847115865026138365701069246791000958113051118305074676517957591202362218262488374046274549147544214498112185769031505911103199038082940501092200231130302442920615235549546810147490682704238949900110615065201179339575943542291579846891345981384021036670309613696054137174800519612895445279051744558953214251125494365639623316585452080845736979744937830932987067366907798015099300249579008455823589496454094696798041971559314911912013946919781093710897853025835825357288106238698024770629973357800945707359521882288509746981338339096546859163136249649709743395203575219623972180132705557272533362902258554172638052098773103264026470692743885650907336856233763634703323615827810973739327997913437267587933962346207659253894742109027010199691380949110623743744919778924751647158616779381260012528679283231459034340985283373407053353620684132467703206365916198540324666216474063766391507028076638508292436627513636483638981056755670456161692185808803604337915489301501647752302520091581159611688999132141871727012860813296887617045124879822601172171097527793609514684187839899225293621341903446472324657454855907764267532166183643238861223963148935437743709704350035094771696884191055359725200004420462235689215900523532044550260842773201253906803881823970290312587766850584324998548277668560748229389615217678573237501949777054366561294181479061619883156918845835018296614210095740053819754948477222736680974376636938052667139376712449699437124839824203202287074275711133516198412159929567456699416201367663684649149524880283704021992868729974037012985160962426270274884964109181478823794679295033169670484569257679302436285346905273581769665842154572043097149462402888588494168108460186201555946845160811347262647610755384403370128926760457733804446582682050697676948655500124766392445098413435042712722505653524112720432896935850986184962579495695579726774664883885824166435357672555368724343891689749073644496286565357145111806489292314866514116257399656017855057629311645972247915997612874016523136587663113191836163213957817411336591442297659499606031252380691695456525617430837557169432940666317292737392428430575763735460138646651692666901472237232213921134927366902301367293276778217982849953872002833938419016929217799644171739227268036487610138277215281996270378894136342945329324934453934107380629034164158648470032226849863587724508848142942231599779503669280547575794641992412074326157549420037397636318754810079494328343161240415732189860061859141740416997708130716154958037086057015787535920483720411327412653026218068917297093637033774872838592006520769521454095534615749331158518388386289960879197972025187589265726207040192946669791009389517991926791431908262227765294549186565985197003665909777894391342286853659165584343819223801208357875398525452414861513629733032774586815152465353305456754503569243652398282127121978166780120460451582258603483478603058440388037554481359529750295851894417413257127137190666895213065484680460144117040297086610748918115926163992085097764723764713238704483188709273425333336143212819920904612266758612318217859525008956068749046226569588422228009542457169585580090361629543745702809046622241189012092613059543115370694174120595611500443327901373108881560856824713416756736710624992348191847350030911670231541703546826757213958963614865735636580292224105555764841297458167611706612567353699977309210303576634414465579431715897850819858102592741569475164036030586266896872054454427329253286933679686180466092527352210168414430700696969175517985971148338939929381189732031353213091724334034392044772243055659309219475680036129035953941360462482858457240303141406018987881650459819836767498017231844527565720151560050211012553873691154415382586656250119095004271645202542226338112678956509390594420953999067134790651291246483988227085499180821955389968209531113557504583270472765987778255340893546044945116914808311900038296444587253401406903434110481755890420400782716714120440147034134038272477257207017467831321686864121477538263802657119620460018308188716959775453544003555931466460018972858849760122342041479124276343524905084930708226836901991392849203628498898657759595775794220425791511691144301521663941934865479595284733379727888004894016348268281968861487169695314434488203687201540730014334870768888577277160320063168932344122147291659356691611541860760728986796696335319415840852134854669043043391341646236537774432369237653081069906315948666465617503801336656512849524565077417211399581914186927235182212076850872442068329325842914338817582908271521758003588579751636108562067206723828134902710598104953033282422350450110797792373101306454558485268701139355994806146916523390555415429863891910712517163513727245688756064061980281131046632559251564193850756459687231284097287479729980835945105242393342953971145077407249987973282185819404235809063963934866799412192093119952149952928913973059681782077348079638278372289045216142139295147180672638532078787495175255541096453286776471295148249096371400103721477838726442083313202332771604689369086200743749430626562650792542446855552744447786614376263666499803128477294037322159272628536071673171815849360328162102919617973082102402364439881717616377546185713804675994651380252244094040286417453343662149747487437218147118866718179179761714089847119818871224476024975050219385972178534851136838507537945602051078936084103646050135951395167381500025116171528879553481875443912732781691081925063654677974985721972427443836318540319906693354410436043313535843505232936156988321947311569130052419148093367231609235727631389130973147869731107392334158087145196541392372672727918701503905254029921174783283319503213616210493554688524212974303894962732848976894710553929442214419923952552641317534489035516416477281601622083915867871458769384636258986589674887574440083482658108435581926654137988837987632517111902669867822654460617021971109322792378101483642793130741493840612225458089028788427949507273085600433774480321864512809264146984872449831589781377307124637345227461352460734020204070831292887776169211981423833523188453022538878924093176166447332673641362466011299054555210227600504596032248183620471096846159249877528735514576832664822861331691557337242137829646403193843549310248872100264776264616723458354070206028890716828068290886989373553388109509153986045225895677802705052775975144596529230702936248687860627113764015271162576302649917247348145243363765792564017423300796272184438994611737419518418789794642216552362033338582776572068813169390411068280842210280584563842655845135808713540848760432350404533122499458214904804198937850482286959161030887249157348147622920603433487700098767646556246961333444456853257876016573974267573549476880488794403724532077487982753238551454649387246126836242995404949148725872217519331055827874906077021390140790491536924227638164140953691127496318161986301943221285437576241765834312548608876124862152755715179654161051196991781005418245144187767961879729317188714708169907113305175140808916855687312267881696735489033916940514209934612880868907444398340536507454509771503539468704124992406689915562273404540363291663465348604988299720513775531580538201150733799213769868737010537128193755163975632862739738328681090485609646353411122960328783371633186222546435371725848050882500745049859851685201338466012002428267635695157325942124808379575408902212000241680904769448411211170288828677765815331321764349775107298950739719705854055097238974475961786270431835693390917257679984410124314119628511628006705402850049028039078517425621022167213589163763929013868725351408013490882698053515331947168303978529759245852064827359848907940583486114625620957495744090558163923790744191700649029099948165125943500635406982675235813009990239266973527059833989585014222040773280063037743976956871326143863117954398623253393545175884992177330300823374024666213618236749738617830493978065063758776980185806417119206699734414856466009229586475946378840345308482882085108708453494229596944437126906279903722154936428531734372333502674215419249329340824405186489350921029123320289757220711819836161665158750056060714839041963391037079138239052960175454267307396482509704841867590171876843130874991582436255568464727704126258817788740522368131312922935418060405097503461818942253006000353334498970880405976460812875860175802547378561821156685399776999802197126066557254588376927249252674172171948084748915686813873089037546019474094672809030602505498499573711601861014152427876017541621402317381670754690973581609110359629397136521979958029809997604140177423550180005395777939441784958219661996178354409901049005035714690205441905349012350839327455007959945643805887832973632807345876466554758578054633626940348861012606014911467212353111522890255334983981537580378252041884573597286670186415563853316410495139449842024875578506552285392167252382274391175689542383582758885118389134553118058229669072949470620470894049682869882783015741616075490465403749198953572750827951208722568192019286336479477739932034038341915064559169506605541010297769035671449343857786884118235955078020054522586105858799307121417329239583861900410790526282568698745320878325097086741649838834190522830210184354325848527408374176004322118715288718406770438796567791107821604965172361746688963927337806735667699013419960301571788516918150892426427660778655519241760407916029581103860269999568402826263656685396894746693050944912043514850112623604045997125220911450191959541640239165183927673886272488328487870104038324282865755873765470416074496670716979057609658963105378459382368126634182787695702355033201219415357892039929996288344026104671756224661192434715778148570267846432785393808276031376907622688998926709295315594360378434996185720069705106264986748627388562614336626891254981272260367265314442386008515719020952536801570649662780320013632731105066738390038688371631889408690105513110055523315145190107327894935719918572927915788220700728300134069918510704624687495827792975888892237184386304812029786434818407745957697026459097704399329251825901245802683838240365180495558799136733071983889590506383321294027433577939844454857397605940099694442997239191124600733619787260681470344402057767966768889736553476889847669735415031774869051404272727605493432999403437801900893107604505784256781311925047964059947019335234137326225388745373004648033143807829112973224268298695202719159427816438482943570123441143255151552434608739974773010159271404865707795936690057184100070351603442055702262321106584781546605197388355952252238787877108300162317123315206039708281016067106425179731895676915893298049922011179154322149747512659738525201088697071623215640298337303796052696394403257956579128306121712491176327022604320068159384827434747834741798548313312588740791506532238016001986001104270178146422909143631686812368750773969419354294453680833072695109421545992862996905937098214382192352283435478221993577298733215031135759231526360341139066574275625157037382148331826757358911662379396891211071366769830206454023118107270558091451701694084682575010568284903732294777530486248861484258827205427197395654159399299952947888323466461512542421895311221417505568435043169400417622238493150171103048650172636360477454303492474891950873273789192202484395395948935634259572019503061339560518678997304214637399716361924517177659282485081396378409835665992054321198849271741276893883343586848292416873872579952113920427812618098298142897545906793884083700121923952050469549099084157036184939589143618123701428692122948113691218198297332672387061691908638314663865924789580951485055278212510804663115769199193451374399288538508493270437004713697702830173586418630862084330172722745422451488264821328013013362089230319628699729812030673690702119488779834054097633865273582376202424451760463401943530838158307436987084513639308077449287070224615372583925212326993568636360306893664890981169618741421227912655629986397018755220274229268098971972318723187352965562433914436934155116565348495464321152322826360283668015246362557390584786088183168732968781095736609597205804213771888113653859127987475706549625480205158624311942299367143649408189913842168294212029242478172206383559587356166257000416102924539271245838668584016050609787511015811704797537397739983429323493871467059076070994411204528658063585693122288481584798114061104889444947057451234041478886667972518799020424314233358300897774978402476232709959644752066230844526092964386275693858256688947185756224457112737150549405020187562491257637787889561250694116776171148858559213735136304241340016117466605163386864798493440646610036611675548731050352865967517697716968929786973765809241484821019287364633243823393942121360875598185612151717720471767684239189264311989361026504598258356046377300742241021450375830102026261940762929199396389962990512417604627047854104380596351517807496833121874424680158861075436912544160069171591239874029129802257765796241412410166113626834677778681064909646811172525435690132352230203497757998006464699924391647221946850405186336845521065672245953748996996288590509856046029550356508414845570606680610290313827715811223542949026721724351410811278174536289453661637495080562173072757283397955374495535548728995939481622217346584572648433117334292316969484577772425258206397915499315534900804443706391210646114100527733141119247696850997936918663865028601232365206517929719048439690584973638073444551768880302195966633004611758205130841985155227138772759410059347494142718566308958950021958861688892829162749938208978318884379061264398115946458851438841989408951741825262213458521710813538728484965771205749038348778419570876750739886164979830906795842931865188166061788821409451920365056259307131410248099385865180022976235650443029701063863972511727659573792539705372490415646659464242776489260154242445460570235228888779596105918762737236716114544882703294497257410614181428997787075495582174802756695053393437263584863629448206961747288056650656261101404171165687411662646364356279325610721144055315848745958240306117463008418935331614913415648218145254787998806557686249836676235699242555424044548320032988502709402467222644414284301427113810641588677958347129369028821095869784891740088451665614776296650626586690825484961060280544680156519959941449054864919663968998453406426579766386622472208185229857547939994016126255142387804708611850695163414624414262103956617078786459791339961592955615303038265604725025211690190624048803026781705924573293535439961039879521814470846563525260491507154332780989669403540633057667960156028316145733455162447955220645435341106509436431145413792836060719977803214161604513829176785239091826178422708125281688717368181256924868775095299585131909511967175947524588042650510831170174412853046936931730641181602415075760520601961608688044233873428234057316353965109382998056773182687686245602964491490140429475109223706339877815621236376414599398953859630850628675946165092771627890540484645115406293121419603662552770307781716687933082964216335828782205854402075162715265725458734862462155318073672166348221844639486677094881358284539304450910757895822515896172690072218316400820932429128672460407562481380968058986440986692042478502967388589715015819881320112255575950452199954640276406436229461050272736379380377227056596346841111036580405787436532913459183656042326504833365889013892661192781041277838268346469634330990096120031528323542332581966802559141567958850687426713465278762516741392749894697416736210211053117738255488157114041682670090721172149792660670836262083764651972925466185445034508379928570495569768302994322660426015661670748888939408990559421326527050795686100738654247692413644611458693977803941145049473274825142763560003344928531634303380627013637805636318957187343008786265839733073400982963740132467793317766989797506281277480627709033518652039665877456994434010457863519461466064433201319720471820220298135071090613161693896544216101770374663126242791654258212589846287186429425731808319406048518838081073957147227526050486593072120674833264630350057221842729560375774084300089166922405074445464626156261094473817212914397593726195058716640332608306024644531771645894317179352287046745870117854006551634080786032741503670327892741648980914464509839775310563427420180862300961414328161096665685040918802590338714596896901626932582408949124257431057915457707382695952630814343804687104062325336759357815599370182397868996142933632065344761711896273360704920848803729493863843745739160809841172665633348023933713620922051884097555844264009045787912395357055416997496438817687346433252057118345029259489110371813077238219006188243289136025783214328882361644589645587103762978260739795649585184122010915083995163605041116249531484272725326583148851299131215767290249576028129223888052202483700403517112137594495546674427471280491778962815857329084538171220958030571136876712910167552483374417640921680386463806467590371969148623447076979378255183375760273882969073077495924238108830758987053070381951175170400635944729648406849293967266736039697439134544639169757709800564718664506800577149587758021748566689963687569987706677919837358730076027933210113593963157377200169061481965122004732508422484615828237138402160652860719916042616261420978242727308247410527629977894169472501961355498670183400894784829126840881870887215618193181355276382701718748506059409081013247770016976373726220270946553436507180441551046586067832407979172607808509037167694236748688162914399542730042777669565275460223471718288978506269187194892052498819281068116587995319324903893857969556057650249397944005875291066571618081461170472030961732897683979765821021395723790334939857840125425594670900473668461089960377696192424443442031478194875624053951705341656235664366876069255038583573133578128439301085131717275071116694202134939866654281383567491963998882741133952776079757052584627340119716533956509582874674720864548656199747929033681597833607540223193681516869731559006832732771675449247178627095259012589455917964513600795470738341575264334710928603270906301564231020117939285683893467130017516032643463831350460755332912344586765934148186559341415529720918642825753886435192868539211465378639162268295233764900309181058113282990938790544075314559543412841928796485978838390499655459626241218324516248061441024646996576190076332427539040370396584511264681102332337655478503228648704041314192424859294884319760312785630303603057357796592232624345059999703276082293263927662039035380557864242233831071801239440438709170004124300387385131804940642584891811309591326059914554245680037516285971738060180961130283387204915232086799555348360433761089735398081583079997502137237332597338000502662728033371160167916175736993513635915685533656281034148572526258643499114342730963699587196238610070965063296404616071683900462611657187587799031108720313739719772270688406411237368893793373363972589844116430706685512855144554663953280084292096123856608740646641499704601729206699464558013981151490303145240318802543398462620720604282545659993525224640294251837701778822059980075131961004555136447728429658093630522181289777555471759995494499166856481420873470434353353442494364990012151867200984822606930337230092869263145070566486672261083019753434631168237885940684244672903080799373345769878482039644064997669320353048139667381376946923327942287787700759363134632618718122348695429618297733702423837602660070176493857017335142871241856630166014336178225335009935767993421477629284088879499343765615137406553875604424912130385255663515230655641221432113060199360349391766709831561635972547495306237988397488850432868657052135968098934914646751000415668072565294548897542559642077516148084735482533494769196198828591941147572779146711484172745053904390693568714448772654522059572081960474508272317753070025165096983448988187425751016694656380359910188675306262628764928142963926120669735880592042931579027147342722659966374629753699482552853988963272571860848352151544859490746932578202059384586622108621724741143268939749771898856039178410666082697448759694897716754630776650173109412135632846531936306705227408165026573838813656800890393926632561885861781993694776030317200459104128987558249724308336844062412777416283230464837120842489680914339825353536316305575086166837613587753200521815806358004868743969549168371064701460165928882236892363926543188183968451463632790156730450763177776034843108953635626198960086684316814957815327651405832118007464540808117794425681746769187197437312599069887476377657353516810275190504560681768209747199048219097550909894230038743874454498990500187677303945551964858369521999816105028060404893978698734212704141037726886902383687254336274455827650275721944272821522126078184602626023884769873727885050883581555209750210836573126087433519478908632860973472227817614690201188129962839232325763384452328203481453497452168927477148816109064519907239657215752414955955670168763156535528793640734921948976553300595726628572892702733932177038208008364207482790253140918713738216627982267771284452058067779249451907011496959951342541440571378706733811292263719019230096198686025411744160638503041625326291810530590497938850326169364743064556339995829696965210581828430454361705356971305210489870794431179141274263616232628265783514808625054834791897497787471249573371701467008641520198111250528494509418616750355090038441818336216662151138189233631561645632074270912610776385185440167875261008347948168850305191059031170048979822613459609991815756636153726158540588218465539784656625554266360096399128576561806955723495190592293045814409244427876434177739826075015252767479971129769359081037732818061289929604011014248843478848715598285669387178331490428472185931412436906495583709881671935630202287367851641621233173772683890003733456410379464136871277239695413142764008972874453618765476564660672798412995700838656272077042271516105384757531329860656914180719606281668489049513872272824407401083804306796276224280723415557955194710331311178936869358328645309418876397372195652833164943606539653577686944990403994179974615176479213066787201055471383916954993260653548876487371535093464094099212788570760656502298274399886223906861094183115908016427742600890694683831339925066202486048742939781268704364571430654855080563183584734249518817824882446292069579719762885741529602133667029071616856021724334996434912299451838490763121790433502524531140779267830566274619450291619959067548917873908790461356536257524869969430130607868545411613202166013653091558170259386611971327631324563166468207179857510561142714254611845426880554602085940014746048641591936613219365991306409191808223920664099589247810043957501541973376532672891606112348756364956829358335727475967206504638635465634805967673217078902176377573674874400145408664794398944187904303711171353574900814245078244756764903687517462546144286002923601554951037725338792041793142873692249701530611729384154087033432395558925808973058143769844036556034118819154164159901701887617172893916099377334554085003494644449678462208775988119166420283847149773311233664638075186503450046505154898034501310588853735943449487472085896313243946494723301339715858395521553683762600722005545077042818768793786265706839435543158865040200137379984042579767952181256302588759529431589846376086845596407538356480300828672398456485028824814696360614696110805611818079823389847573465399896935583926695096972665465544544035710467308151955049754889660009756036405462133421336044068965663675872331821681615100204726147700329187397196973836428947308009410008034896867136008570294725552661018160212217396885612390617885352338317979354083801995818882142935115618889416601358954095077960453849946615191252369833011410646593542541786700084448890709865966769628029249789929337658238579543970581778468822807264139686919055895104569422689131093969787273980671475683427534414144993201375562399171325344088993558596759045565020168244412069952617823393994281076518714492970786707100250173299279288118621387443971779078503855602781374546577695459679110955266700198333500642924817438584146081664542433875316678957218537927014415127275017350423257138812144020572506305789179373777776038558155801034997400013533600552701120107990554570302086945051759365349644682381968211414549210009098694975812755854062848730966875766347058318759122121903643724847079633584637235837538546574201572610362857916986843858267656199081781408584548986680202501626580382054156609170517989507650499490119492770771520316341601383446234137368471052159708089401963717730596095070687424267025243007986286401501613521985773859162138642375276447690788146453864620059943360009857902926528392848048584753791158824549760366943215597785605461279438486151096255709032208572752312531903333613078517239671171375259954952040448109209769129212424607330548496311762604474341626801459975209259842494683329937894518636536487659295923973680759710395312555226543905054212362988336076232702571889806149206003920559049151274119295919508909948479556271345042484064568269004573632426465548377701919625059329705162513935513694339558117175504579559312941584608957814058657054647952080246325689704059967345554613545955835597960699342170290363387242019291265752348806498696208186088195158544971902804572274107860383980436188375901536981930828816957901540624036240173745776751836122041709631073229908905825981316942313579840578385070506771916655030792880551196227484810223204693224316169545572994887876896056652080803581311015664872332096773584096573874056731735244324247239514299593613011334072152868709919564489114942810159533593401527211831400704925573647393625817105723336331515534717593923125025814732247221963146861275779959454172998735378330623243939544080099791233960977885683004998170327084925982576620702320270668324382141839879861790907197949898659832527467101688889849613248257526343588418743941162633560918589422628608548634381945270088244114485149289299357690340612674422659996244677502779990564902672086813778617201816257110750039934655894551878514506112504161573855505927470813205810167694556321930223406314685187694687947001132318251112062231469739899132684739658875188670644631880514840966755718558146269051913345277567178562840493850953305606129709239572694003030600258844041783289587147034988096995300900631098431109605504433525491320676756805387717246349332590495482054631058631741066192450360880788964241376388287927898495231615035655156875499866218690708306675683384864179065765054935349930163084350412838284160205864945074657269719472913606432781581879266622377412134804037670016663347039267215499256455627731547063992608861674401592031945587720618435074037834069280552484399584619814557724282537754014850760176115946777029681792270322344998156852819061725956269874693328146764840034544880658419968014045171805158319141505924779651614149064655927208337285686495447130532046554907845044452526597093566232767793457820840819031622243628842911420698706208855662798930363517683164094619770267459161338029738914163644304551104338794733210424294778477066461797908292572898060751195499011247673452453149368727853428017984699785115804757103204174507477052975724634020141019401342243685549995599452379862087240083604062801564096262416830735303766379175620577089892716302851099128402921275857034073611264869485751803982416999667469803665976746267660244373498439446895274777967232174792357468567705120300503362630118602919188705273419729220940249225601431616822149026083877859425180239941762008139434225645119827731885090738149101444260840962951380393571197858710015320850263724777107382163826015506922369821557781497354438881081499046947459748369319055333864169070287833991063104444471657877827057619089882165651561741591477626018379179950713164201905079857300941828823211863594590952333534275540677956854411369896238662050439751747790763698749847441417145706607790616458560647349675417801628135412788394997126055601822918361491332642179304883557759555989995179952262528844232705245807168722523185411843379146686696345327216678237266198025042278541175413201575257903238529072016272759444173657077835385037385342994909625762240017533162326311437288714042542769193606326104139534027359592541260576582581601972356598592497862700371601316250817345749436588602234661451557411477878773197356953749917802974757241150023498022032555449708830376642104624606518563894694074025429183204234901043417303604279640501562352129132827227322244468597424250310593369436009293666653524023224827715884502574563824175364366627970602426919557558221367633220804978175260525222396904399260793523581347378081067801600699694683802363042197021944302451141698178214155673739501514036043815732812698260728036052212949491728226663785273314293671633634661724174782157107705095376788719972116868205935128910276079905996013860092624799703024348642185244625696409133332515336093155624665201788465280256139806639924212219399993439368343183171385559678126496863090349726745384207159146564470896602041712704847257921126700843331582145838463696156731832834872581724792571817662887932571687380187649293120991424158324688732215861334805471877126985252039143059014076942947038458304784603158229276990029516110109571521406336922723281995590736221808513731325157833852930853536705050172376064964048614084295566895379182557848754034463523577975880473396357485116033392966939530498541957584757712693521842940249716464640727269383863247352454332507752743340983723287387243385839869227426185950827904507522174864788214674314859070345284564965570872830943120697419052634454407468664150091933205302483742849174403467085605447108582993346896740738232558506891016533389272632566425874197661796179130199075841202441825909861449590319776015159066266771096622694735586879633202634019394414009288505562474901931825340092439565652574943948456606172724265379417095609792876529969751716674302552570163460533391587617773825057826776282213103805708650377251917084569973530092913944854569571320008489416020243030176807288709501970740709072184371619449416134237271772383886315474084053565857909702494344414384514938902488021590185614859531330308910756848631152523270612684060123668796120917302034770359794472421141227917499876130603403553079252240320459922804654160436345561034258649056822261653835323966409543738134391763216788479437252621258713150554890070802553589803640311402344592863053452078175266256413775179586185791906927297516887092963916073411248420327263077156213819681681983395380562789455294085608116839661549679010471125211150027518173370217083357607603178186671927344873404623808300285582652614959579679258095880037389838370042433779352454109580664161007961432024146618469415114665194521834261229452759662564221639705012791054320949130994834731229874716426288797341703845734025695316970071269645286586924979258804765501302689899540070357437402069889817530873003807487108809571355111357866142563422259716678250743550948323207894817907328960498805306832941330509997343083857068969534348383924720619691367160060747168107472781891037896807461175506740819719475233700040795282983322411478443058279479522876234809165088595575686196002099982741793829999799548771493091978363825747469637856918581323316917409407837469226313819334618633309329082823791433898774707963790346089899892358805894113335315298761155830490136948355328127465816282331743966521436078651354770779713359793706263031052139922454981554296008879641205808398848142570796604876744628452037677726793141479001410484088116825291825397749713513882470317426751931984078542277769458671116114284680926923222166945027325463124015036487872988613522926182652316152062213622045630292765383575136006169277837286205676150285021074133639387576985994697579685404700166051733532521722351259073044079642591788772094826561034477402081869488637967093082637728486438246554761665140251744411389350335748342862387855067883802648604169601793498663445892177423445434849062104143901791907843575864547085288185984390273709187082455250327831590181705718064260823941558457780260437005717717736844051152695154809997384697341881249966661129091347867905988761051973617870964459406507308356666295908256052502113228947130112397809797533236637936421007420655483878635022524747864210250687993118751670651956256789190842239969976208769651471444740346597220834808769327416423070984277242242092051148218502858046933561440393556531217821371172964713597240645660853084494640403775975041448770763369815648762093749746668404508149105075978979560444961263096509639863817879674868837416507560530888792432017500559868314123124103714962504964481159633816336494033546100059656572155544795202800223929602711420250398226619025836348516751662010210263173062337587798502183660445920618157801187250180739586803626320029573826220650374432312571804036584889027579918513171541096765740179348851590597172415179572544900987342967673020271580330562243008922473317751922649705629420428579889862535509098471924666947449394427495321293710433489746090541254155974485177279620930323545641598528701265530832632987101839818928359990932199771276664235731951127520506751277293262259896458569736305445664470956741505482255213098471109629224141071709372516387944121501301078608807570927348473005119124287641193860903381453074713832268581381812568486454678822897519384208286220127302761296873701249691202730639549140642387061543002273415529720339818478726510159775542235848826398379075805723691269286370328053124992479990762260963684488949882610819609563491666771681997626810006450455036854161824308315744540253912975146061487962396550878040208062719127220575129719328319093939641695571997514766093406797903594649192785885051852963669149482932858455954102650302390868773831998897163303095811299018481585477981346379190689891121525173993879308418299972204618080462264934512161731629807539402131378542037050521597259203422430004795546230164887707649776052034106476314107039399570702373948545555789722872414419568724777112634687840757839892900078099578190964727129588555994645922182186217616288441832788771365904784787770813686832351965139518408791638968714255760386232674164332332739365026656586365294023172510175143602738646526759052213576371720227892972460573124229555045330871666521448461945397211883199891264222278998550805197950560950280587470912555298837744148380864728512709542286773518238063347999935427275997199198612520405334245907148554260017628284511727764983836781485780140779092583671430067680341800563468362857549290686638470775163961309725788190345560684629947340436911926311482777305739245260533228753798487709691081081698037182068483538259266640130790207792510856410868017898075649680562151124671458558035452273834929761931193111475367121615848260349764313080322414064598769706308140489614450130346283341980089550256831360977104176793426289498135150981879722070523622185133728378868965455643022040108377982648531595324354198229038049683508495206018989995366886717678088739239906978268757154994586582227188854543739748621535033693887396101974754135380908441100890354232820555497417448001335178026365514527901371308104941241259645708410330884946653326388891935528950796221699728321900447749889446430543199895780052490926651536860185490826673324608519560093663670186246570732996780062281832120790853593154342919368170123132882356350257104529874111523543971761202105891697663101850545893379368810652015781781240688229220251711344271874914968682421038688671858874817166129314983398673473049699626066863692380290358369826211322467012331460958625835552698690881598921849097799943581787981657996587818872479327650349630868426054717920928943671346440116716690372185760259089624032005833787028607156396551093482162281717679391089727460895916011173413595916901266583383643032308326935731732474859923224380034148597318576456977262850479425668283205197689337334412593826287073230259750770027629054306722635292122734127811638754028986706161328196609972719243700931238314249873230764444783165843709226362800041634192050428432130550626942881003775484773115723204036416009846838768696919108870580570981976024444993851370747219747973136477459275126184120069547938706878232172161736278917251358765182742842589048252149453234918765606720405502387688768511865564810266568824843309730271286839358811278565013074585353506350507091894289404532989890550345750392914791733382430415425205778165151000683838460351028057456481781744460691199254328960749235065855365432002169009321506248113065278522879648243847308111983874645370698863641115498564341178415106395774279799370638320434450997668277453510334563936478509941031176990922442067783051883352895973367133681239474236662084674752853528307747853487071204418376517060181541141435057591738054415849414892071070476395668033732381313552597303348102397232449751742247519250081333480983627417450284445917755098989920105683051154695126955861895312426179911567532417757122686198602926102332096679265139131186277804549800301011839634413372908504365098353291277372085240493337922535504837969219451249153356216873648068702098422591253417315471744919188595964830058567656926053722135329728923290561679508000153657565735922456968990378388483244503096376375108521119632874900379824726619631158911788950933932705855482379043350515266137010912068629419936648846124357451293603726421691422184560650198641181180225510145206528227418961562982187388184196984814758426394273270748804607058755530424658172985376295185913848597306171981489688873270440174547698140356685225841876286800927319193238519659064264338553573144427894227428254204827110773151305335938287563647657297745673115720342032126217644702757034458578591577589475950065945570975819807159932408491399236616533615989525922927536733848365997728336602527846219360394849269475575721669856074083231564529671219736572807839307137977371364795985976783197440826766712920468242296329746006204340261866364616400975031671602760318788534871533437738304907914761308277864151858071538038024570523578293181081849993206808294460601147771354137166527728702424135010840674019485914503657555110783190300243607485446552875861648498928916370630478197418597400535057897749731797452322156207832593761236244652202268658878989892789446295722499395027034700431632289645780526814664744641985292428916591803776393835531011499559809183909316311930757292476046872839252957704229236785536678684030139754218852514292535924678716483629858927003435220936454951137349213411336421260492951685747583624008628613118538938056005475290031859268716540748092398574209662151918700131511696126346508565801931622453558545748761274773001165073018362760605896885189458118150021744234979665366159798954077573854444392568732592523312626995443816408594966036964611880512348784259924838993705297275494878721756939834893668141360872029846270905917245833666619127845892515659067958998628745338011841147479714744399085605864287999995522557426025168263881608694612602495466158623861762518741564726296147438623503508729740674051294629120891033511599331542580048752090981056877743100095875910815062753732498448118193260441705248521397509145469036934430200985291003688651607822988117904621553319617309783237020450451992001682296475862033406653989246224933211356074078034903119993727194610237438329540049839337706560975626674226368085747313661300419648351836236145084902004820047068372085368750013226307762058948562170281008992934870008536144440253688052094653627322079748888340123137325019607264375437860205833470070660883168938478378663877596994721953805765049499114035220960347246552375781209485627228875877353461062807328340663533523255732554666619090392554237995977331638199297536006976633841380455973407826091054164424293142378397341118376757220695879137378866079329580250937698401621175010206479763410339471940894237482573136176066013107280901402727640206806388233755041180395767006682033037891419288305632391166259977847545110623845414897930888562092169271243963078121186401297721122880902606786843446341798301866231158457884876954458803501374168694507268331597441054192581280418696569846044524135483512427268078284208224394151663117284357220952518144094784326689000011229373627546544982391248560041642906295673129112723763241753395130631336479561759537162484145666999221476414311211150989323352866355306943098649465858320499639501324461925700285857392236700718731595303607823200594133121135601137969270547163401971882427920495536379266649703146233686049222821447923909481959293259471064232350183188089840143593902854824929553298744978174632991783266606155170509780488087026243004057328140919680446045235268686246839611226631475634189201086335985718870709264850912308692858009451994401222864959325311831378768835982280214641136480826712986720200582144757616210297555416189325085571587309167892576333815394970402627966275910806701709203902910044678403419689936302580054099637136005045012395523972739827240282885841101513403635899353447672415219684723433259834807320095450283750015053458303885539513535995925279463940241468802798986418067791466267261940232911496340520038673619504852968188341942712487027737596195787694645102494048225634920610772860756525296835183024104480932624214176338222545710216943367925667276521934542939582933057327653596695064277944443337675736902929213518052073068333260846346154919241490464701497355296601511183872817386469224445959552105477652538283289087233647306011373948117581692559867157963264206363728866358803205196239972515289730706544029794199438191121779424164605558330676632677694572226195656102830414842931949619885317896631325796254116881333356442289235369701653642326550530666887379864869618409045977605976858384462808002416995802286905104645796494740023288509187465895548758056719497577462519437858314956217364968038193374083711972905204518936346562958023490443629632611242326764089341867373202133080946376904366737918649557498947405200248834479295763624678665946524463484718939406247189617566464178435184302505400406777295265580186833069210222706905544303837097405738157748104084683758476708292573501885125007708172187814831577828393206746940424628297691637238386548672514663698447105418906887450683186254791079600394190145637373587059909875509983237686505198943383487678963802707400500044719302600349080568627661392326680461929882348750763992084934451035087528591621208683762421151342587480114551744142771939137239668617434204462048378430407258728584856709542361548689002549940380148927740001651346436486329911992194702198169292031899423593226879062663733216798644862760361551014871099917829671672666746406302341347297528909614194096497245685762542405177114786619200267516569916146454273257737877202190227620265272704897968072640176267222884325370930092087133029675646412214648946564521827824473116459212377564906164483721163586782387175951810524483148874513090159003209882805254029628337449096589786003902835854579888192996389368926007301991558240868920529578124680008977512512085738228310026032223385926507157689820076952545333488835027345599583989824862242620386447686582242365226193209947580368241965175066213251774563639430564718186885724247324098864415036247705981023209581340989416954348563113259701029309774354279378735499072648846290105244425893057261736932567469460337739123638923943324047961058639078356809972469779641281425593409926416792831447059829045749968421731903177124241694529020132404272818912428875106462422200512742510296381363675604363495527360489818939231426684355986150265920729436734880754326431962267062135524226120041475610384969852683753492932446905309712481191950575188108113090066188109713935124635350236372506483918128786738284281643544475451457189787044959673740241024209484822989599712985150420383421242289239964418613547828680747927261351847556880655956042222653993515481792080998537320270496888126807391388907164674172599709917172734708200828077029567122007304741715215085284926833246800682937190689872366873886389492318359302400808081666416644048673333631822766683220060196500529976801020219592962812601635331605072192790525349936532122506660609238163194753536499487693924861311200441533343664475516759877175295934419528721586854175060923740286156773270969539269028906802447156688896489475764630229075425602830672154870234658580558759232984612071036984719054801598729917730456623123584380097332409915030415103946586668934807206259208099203559715522927071609517188649250834238248184668366469036602502216219149364553212863069261590249144256428944150383846854865031134687036075427615369757938887426948894742620417625412357677282901353600672140673890280585760594129886588249222355503668856385777976469815795780002113545519226001823820234027920072629197451280647231182222702319751694183385378519841322946842962230875182364297025193712743532594560720963649340311178037009588913764579672082330866660657363672486352807370834261215178943190285579267580423460334463260122895454519294076112245687578408515224120786656169837169748092233785178428515217322097151564242544274669330689710259597938275833991060873046909340618596130861366921309213521743582039419698583559155132282676230367679997517669133333534889792531002239415148113165241989808082356852036031398863516509261664555393774379601762805160016587818670170064574368441953373629543337319200662150891515945120469198751288635178536100294019988983974574912495789447233729212732505212167211855605234999564023143622282563971596275283015850906894393263199913702291770056372157136094302699816324609212128380219200994098368800275177903906616111169058556821877573594305556754935854279427487941950024221928531896542979793748985239996270687365322166435624348117266461767457887044045635995702377137319450964463017768184962157766092138233641742394983310014344741491057657238686094061526685132637027233097264362065005581479444757582390547650948928053435390541106385957988171036321736316931654573147976915399290904458717824647919342695407450574091603930135248544163513852959117796373870043132498599416858833334282755786492120170066273062304072187346256574219785000798339144778077861444490919490764488744833167928030052679680564702755576453831890218391756445102938733196028638451400189922149251383055933880276016972486927966757805870187453866201904621899417767441881558061495385074927055691899596340762365045901752381238753826049118439686857806062104334348988230690711593421745009538536199074385298786361337155229251049317671983866586963167663259942328903535403422973195029065194142768043963918366254261962207165202091290402024731130122749821926191684797257521252092553396266957894451201171156391991870321637978274498574019864037128769873461019335213197927929867921022226811077388913625451851830578537121178714271505175201536563224483390190090964724206971302999363017203199851833291726120470370015435475943355464804686446522145931305276306533751989880855534245324270464883043392482313123200338835545259878900959617302383211556002615527699936300403402651476613646626756748888533143840999498993233060060749794887973114430910253470493217047754036713311341118582609907049581250399432837911999924791053837088221419702235080504917968807556914326854176933324154639399871694789840280677759034143872224403787147771964977905334853630206748997475252884990360397770089178375869314301867479699880724261619209199161086734893881812595173043911283411070505103258273964330613558872645021482871904732378001264199922150344251310465984442567447819579584409923638028385794520129909982998275342501795917315649817369981078042587302006212768273088354556241468169899422922541836791084095881344321963421575037561356606955046177920296971143683613074598334680983250427476771505505750322488919652537558450480840328336575690026262766099510630274109224748660974924120333824673813406435233196401961403217137752309448846341770722279638226973867567785780608285340958033469401329225980243932857260471917601894267638047846002420767073306519461877916707035967173626979542455749537636143953973076041934462213290348794729651073377838205430406251241215732297035227396350099962367054927936016476456878985468167603049147954140949275531111724945017261803881771581010527279740496757637856705926349170425374082080747289430894388510856257277949435779404265505532786272784970963800106250379657694015016784593124258073308330746898157865111296123353536209254622106198328338577345304000751534445129496512750452448335322109341814193334177891344986765094366554066189468833698865571310946775125299288811785682686742702898680842993528042895029630316879545287515470805184421839746455340177876965223220524992534233130396131445129958466893281091660462534188638783185603845253959276061608266431649212131254137046089301479721488309097129882705368559840476044588607598476002486802894145489553209653593832751971900896960016797337578772085610731385770140503995691565625578416295818705165926360065514439453757794708647272701594538004598661725938272302296346743130797569703422691399476573252324909083618013290337897500312019413169178204644773625655826753361741203518048558993521931302521662327668788647574135354172026501833602940239911134416497847914802474994621493961502472228981687076878704139214530604998473550368689784514090388371627728340237340239656782646987861814431818335860988682961086092089426208611801028094990762854796230338240856610719591069226038900354020979283565325621366387664481446875617800984864734261213245811726788016389419642135040923556819054453402220836174174712170459302961820339376607809265234682063549407831353398821891151459287281475449617472757037071358080973313807928499702478945612728786330931920632315317371995254871664413442184573249272193936598717947708515710724164912205844710940012205869469561118935326491099800775390177684752290541577255722390553321597693682605508121838774472268464071675171445121768288930820268097308659582868470344501691491298379696569041699206270629968957852022102703166224926257571230810516851282950879214757393078471774223410223911571129924197411801020059500265111364181389463496430392397206386545100900791109574455932733520453614649066964733898895823562650202925732938390354436741983857592789351254568086965989086112783348535242377958141754606382697164167463538440304483019377287501923054869840319296146834969866910274077312612653517747877635403788193025437539837661047079803311087139524038752677616051268788539677291751033300141936088251605549222186357388171792362942034075521831019922228175834914556438539006507584780335138344822380488567430419253774034057397521619463767936824403482085440664022242782262445931052089698048402458741128273040333351208625962414875059726921999151508165487093382718797723189190072274031657534807496920254907854010181370223232206815865672001828451652870142228351722906009564276274950753082507624646902393867697786868494112528841701362182796128134078062337904174791270793913672599433462447587436455056215671218472389741986227901674332155873161133566106107387056485948633550868226961926619535379030390494020803950685251224707110773074365506146695168529468268888054141224196352910590461097563032870984587576650625853549320171487344344728640343887921794572697026114305837654150018982896716063977102537211575878915788270610212173978233224837803368186136036209881822236238503032221353384462706076356551163591475191680399647816574937577459024332641337238043294222723243993519806188338251133617992035222061304806334988636632655015686034253002089641604078157442037317186867647309684362995103521709248896567003545371636487078497341592382756181893930945582206152515426641656390032558568589013275209103854579380403383244351117379642250405649822389194601914471668073188820565267298963958709513648151101636001657938037187753359109835578748253617563150482822996838220796575515505725246108133382991276196700605108180583336485352353503134241832883467519838191510904686978781190800719382797537907180098523745164777339982369984405649660745590899779256796599654776739025325727126323460197625424594464295901251691622985122912731743735256771273955994323178396688413453427447787050177777117284756451226442184633115332179789278859345349420063842566334933864699594798494783859204491556932411106079173996246592380571733779550744460803608854080411696028140135947186508010026335615447728322312974319922809954303411987225952038031670129229619176705673388121267322261021715956726939603905344406072809140513776783534714285966603965368342784541366669621380962923207695554945352802899905506235607020124219334152417810283009622983249430137807578077476534466465314720174015312264469033286143029943806398697768398078439432306731421980499539002338072318234400989604336284776388092591256047287861145501984641499925311063306462240030413811549397549728055452113572875557665625834209103642874877189229234764886825577463855287349425318633449158400804176940754154431498877969731214625225757875352199411037408432020852623528675278461274331848713518461534415848731320580978164834159975797417515702557562182985499899523496239280883689896472463176174524433365132382143384805388469858053658301306552080257950811387966662112565397936197584914391218193765578221905646028944393067135388321576662314324446113214627478655916822931090825842666609147093849753424067182111929373982871154220585712286658315368980762274432071685362397195828037345137911870861307900532392820453869094442365071861324983835721810266690889274895975017117101507561622205805044268078840914757632012557704190595974038510566445118316231170334306000702578185239198497755896064420061436126704196177247863583061387278006511066663383774931213958547103275814292399407618347460007786505548971808458078545013139767142125900544620111311435564257644328338404241982999667567450509106179691251674109105592110658099273842323605035751815606641855411249427484342402238077887867695705814789943731411436219825183376116301761660910710811226197630093007222287740535483165908015827281878144004072562402111364983855831265368357450279149931728973838111540282859841091157524158554496460656033216152588818320772321358827067539935120719813351276049443529666124923878933162916605496942732310720707844122072561908498581331756910314258068615413317324618559043613836112283137556966586419051488021154614071030872286434123653160678844680998868733925186446988813662028559321418601119626692697557816271976697193787934947901487184984047023921053901067448213718073920782130461668030124861966147850236333720212797355718953746150929163548746994843562818490131296203959385188134237670421912697511497445850191149127289235032783442855149468722185033381983068510839465986459008333358451392441988748267860879206104078853445328267718683755363093482774720732959341711039238421551811086947190114359258864273978535886183022337401180207235909564357335891982066353082544934860793596088434335276713540879822587571124982548502526226173692279217524625480051081763907942284454389685024742674303684023706009592508647333038166754321192045792592444831770074292120894823152369197082649256688566150720345440478533937487997437620955285866601508288607530692448511127646807115535238115752074928705181645646592532525203178437907425962236443412426830283277242796027103411162859923736939558762545673986375372607588246928198357424007132460322458163011483652302686775278023788208399103497095482411652386502753579744364690378443158902302372601208719917814703195575849814426199298707463725692580248276482238457096199012193724338549477544169854717869047758232895311597614907574180239695021309810042481825232289742280528358234957429769116835643804400654529804748651547780354522295548732547532784868308984711191911765847240636284217455359461251434560592709212215865264164076374589956282099036658936322740131094662297086914167289662856375838209458484660271725492417009292666880481532097314008293341155321167099824320752833767480715737825638239564053101877990250743118142256873481748543412643886048251778114143611129460513336548755708069162432424890468984802684366547407811792351769093405848535723513629753065727048525081234312561001143545389738943001687000572048139004933190918621432997107555885618956450802788249990774393661625813982997385571849715800810092204038937637502983018667778107023473281444787062458757358826359263802309902112233608880840174678684616541074549927611092267137412464913275912448523990882901742117270754630282777297189443650393468985379993246730420745997890280309937333802033220528084516614763277615126559578320152480035665029353588150465740316118676001646108453083121716612977595237301900811066501047339190688996803683757335082933098298618279901624057711714398445970824023867207147594047409554576815867207487641170404229856597570883717065001034737968929493881647439222605730573086483799775912594593760945956065730296211286773859691748684210231162114415136735582925395569749241493810661601217821707203219174662421722668815553616642391005366810944324402913668492029683950998052686323619285225106524404188581296737097851650345170576703228899919747918772414642462366210155632791410157121560077339749652131639096609990960297060783946777071910851468557131883915351176364697972386293219617525015726640390161936764178069151895615118055824674765782611468356296133205672916941632332347963517269338508873026741881063970045441902223612514238111526800549886975901976048673705649823428356204842136952698930287804052498598514816809027358484814195303273747825801436399276054084017544842945793867112013092940474853592554364750980307942443184089643668557146539082329120794188513295568018324690754833077192536141785428423562960946722983890893090303608268976240636834789473964876267242639094808215211556950331319703007329457048758331920334828669578430697392020264366550297221838417714741134812035164575830636445906145489966277765167532433469552850763037266169515887107769729270434210399191206723022405080849325698782599448590789686091444173952956518829090119426377235152314838881461374152789621376238122547511444680773729649962899373388085502881174342668087517163603085666511821445511486805824585857737116351704691784035119019118912893524489425934059552889848121639917052920166571283297300942588842571724620048910809089379652452884562543509598778687448181085003635334275627695363085781849419844865566280202994295003110647023622190241944267610489775230998098517661284285954816349135041106134506313280556672767438954954367572524461815716655259430839726846262758977156244155625412647573649490603783664275149817639419793118543855107239108386374354545157844524986984574692989833704524054543978621455398039997291355814635079623643131528166327086413235286869652413527440823133876951257911222012893618289108292585888899483943896926632014778426051734840093813548394624302746963057944231786218833895978401836674441415125715450208363698285654116357037242390078733426797869724520898963915045115972158212266693281428609128823219290945671623164844545907979531615539497272367389152352060780525141468469848003039394624075249702879041940352974357194141807740128538803102854499588492018783218442344411473546939301436118217895468721781740906396618145834434321625902977757285569625596500010041580241103807759886966981241637901796130618333244249672864493129644998312161127700143722616020154524056168510974114828119784476561592251547207213704852107371231324254766641174265767728527917737620354634282136797866344192442677264868971184576077456292107279194023719724754828902332666216203798661007772744764323391081090467100222878812127870814226332450128114306814511646048401770103120673626579065842730568821294716814175057688010313646784606771461838186290500653945907498100651634114959057487129254004942787817564657762248845021035392336730603744345442308649274004606272182734372176352807105777818452229415230415366086782313401151680125101398066110455516769706955847985629641464971230147685020305452733212632087973136101743808552534647822524547872795161990301231799167505828196635613691848419600159762454653453645221612467946307598225270671639320160200051936840895054225038319767658514348113290593755775100936449994992293274328052275797541302650421341133882998119974845414389756976990540275498486264053588099436688477934923245082667638559074045256436595410693274763850723793258074539272876472275035324636045479122977374448701081559840675411168020532124853604436395534201396686112470044235067089526073103078294164017260049428241116367617980418146853646046906037754761056349508909175815918448006833178754021373294233787243983364914417163668148661373240790138541563368656033803846720005019266163538830659737731490849388583427299223035574410940607920491770833442153686798090975522067665952975301597692268205331044215424102130387970696144198400326425399431983179815343544444014030328133245752828850764249017275853056142927802626142295765123055029411301817770287127216870046522210529215767317882495196018749738801437764780745746512749303143574241423500022334852299061932592542028611131680779984129373679564354066596993616320776293463920538987024694287620019701068808155930425725717135711284954488217957957665576264580645650285557875319113527925900692362738581464912505258724815062349659607651228325655329356955129049858380698295956686808907506238459554180263521674817270445112305323828819260397284512673561752461589845848107390327278351023945493797091895734130327914389250557032933344941965418957380800173209596199729814060664352425312571758434639745594113731747851077971064794839501172580798927228927847457916558580197147803368930315355286145200385025966939259835369520727278068385714725765985687673086169556285380475742427253785338947836286153336635739828459549603307036597558618248364191229808214869041284732359895524766200110979890003998866651836180488924413269634615401193599419453218533761450034304544416423349393469503030866944533409434716883680302928740307874276251913298892812415982177359412846334506765528756019651126872651158302380386418561036287516214724547673580781657269158341547024352558963607527331924296114909983388304831885964828191407933906816486919565389507409762529650416346713434757410025039934371015156677075516251912156036797096324714328453199937499426022603077695284831234162993840969664330330980500713907935963581212960472909756097295948415993803300993163489463336117636333150584676386807314301145469504999687330906193144434643948247753963179799939330932648376625553051282892538239387413542034520777004836373858349197863460515349092027177580894406550458869459651591969604672401107725670036061324203043834859225582003943264884592807832003538176988173542181782626940511866984801005151982354645074166034273342814793987972981520690746748414719849584046772823725018124754472859590566886642529927559691156792228742345913732667532126159125239761804855605036911458873430051189622168806402713697936212832442052576824725341426786382284102113950640144924494124141526999915076549932886299907481339077171589070421283100373863233872771624721295740510109925958869540490032904521905942359506710968195557098680623821697990069681907061326383571969545973095740299217002815815224082860162614689798477212555930786652439312800140519561460295598632757640652382765975250541220435983580170087977996211546448298734025037009873393777419440872589891884128530440612757499265366224194645451107782166634439766173163303398533422016909843816550090677906479786437656164174863570284274876393739071796118210296209040653485704165607416490322920521717725128829522022544603280288902564468973892524788580475016931248275112577735360205225893173782056940004725000186676635339543346533516952305945792033611725476991907385647849353111065170192157837277361050323604594551316460592851031291948722447703185501558464349524245465707189624702799018085808896437807188342800764531313562127030438080689972907265281165304516661847313544846579837628425426037614150710405089369150948022219020519165724162273043030268411527516233636425923582130875741289114259434121207319972363079583353857071947073438112550202788809888132658244111331428945072200825504499183329899487791345671588364473974507553125990674039624650038523787427586859968987751742732829682372840259319169159757661580213372118065179390315961892247842992870835522904270805197666128856396666420560340108534301307675406756335023860123819488778212803109247776945859412784808048816165928445283683902215833087359629973045303869767535705870101622062032089389426425000200687206818233557426285313501976729135682225590251315047149723609051417181129671362803108408398169378856258891584562646495143917632700094878648633847458671178492367352134650635498406226954200307906409094903333931253051117466597211035304070797712416757833009616453582694719167683574792838157539379852821821495402173368641644099397937053027888700156423860226889658175366971563634059555744728949431275337136573620275327019502612527783608018011709228095480733707298022567015458644981367827654536435009465848346161355731300747208365044618382406919144677350864953525930663561804735138434998034055120843523755700134040029899185103682795375815890978616082485770862566562064663134295731920994167311042506246513330496247024516692625367201933661894340137691741748114686604400356100238656417056767085378154837557318183838601411382430496997683326077487470583774532762580069821491201552815807746767900317301317696912663321866393498539093259929538922293119383921252626240455815240985803960129073820939566172187522806359236243528717251833562681921771051204666376019415859600220401467583929289822908932339737921361613017122432715883020052729883950680632302334828982233049333742228916431137159407015836072078846768779051384252266893059535905554781248188716720024437769082236176369158747489666985052339115022696413543614292897601394591517918365241910217603106873447000822127083725990545145283697272779173116304255060326249737657105380253069319660335089202304516268793247709769532582719716554578365479066358394444746867464675360870034834485953176803542019001604268554166600032746921844484923662470290169155705967507321744259467162106763317266925969957257291909174802335732168854131314572084715702431419722780450341883500153844416724019945904840823514857671029969636505694085924297150893623146920586253796196542105245539780366319678494408994671808322222085568594443638202465160498912480109092116970259440292951409059787681830752929113354160357648020237601979005867145898955483421112868134942886908800452547329402147742919187511065084643975843410595927334054456154907979530874170806485857130424009311125355788782144649259464883378620791466132647493945512546723081559020366182785829401758757770764511101427383327642657399298459455861768098456877531871066821868031696953217762189982019990455221889023263789691213064595705838566269727975402319636247002664118098154109624479276700564618830283147200289327776102399832179588632262476582356876263380212465265147349134761999969758361001573571608396874091489864585783865824566682850201793751209798109317932248410929452466603790052580864487267863834019323328889063911703208854156819620026435460031202490100178835603857840885338722924369506470663029810625973530927145524243320309065891324259888105966407874128136370503737058583721912552113208644550130862939287616435643599218428958445654121827556144427658748786360997846646307056694223821988951409945580234485314896934196047911068005748360377464035471435356243875603058226243952389793362247047140700713695125550873450741785265527475856741655153588798874549577352164249746300830497327075163345247181743516601081697625464273174860945024000804441424651271950400384447063246202167206349815428287446181729733507521317229755892480913576170607109962404898687844348115567333106243312966204976403726777109208945051782018147213391241051001392576524670235490089725828950631962106918452915100814398782011599624154398646985345221986196331502239291275829773581285644062948107036728724779721734455631276651909983865372213357712732597381770662177348560981425100354785056946660936901686236085352196522599107488531934236316562797259408942365454814233870482450959184960928756885240301049763166495546403573680167775957747110096467063365737822440145279545735163916449302261717615782712541636265082644416508854235499369508470787880074883907417366006292387880365556020767500688194715028943596630198760641810081081295104200576854055526249442817725414698033534230906658941739065085679078229458808121478188936400876294754191007147611869220139005968375355761275586201686635618539878576690806721949883491959773004104469644348989182244762852303332539706781777889094768407733394780906565383142359502895340582291792870043325658390022194122806130983821057268810546380154710344257743880355656917282721032198384364727281422764781496541601411218664587394346864103368321614410453442655052746854710940567634839495588414594635366599340817636923953794508953396637324665087911586852865148581195717358968264094173846296607763186074784753689280012853036558178327376247481618753214709966748295158987256811682715379230589784084722256435407689775883280939777718330954012565686611993156023062639781233107603012388213607412634824777275363875000056447596242801631606204281804050185991431481029490618435206697474051091895964502021354410136079914854693231817408337706233426079891444152141794878914826293655424106804104664494091403211021245859436386207159893249390259084353828579781484046436300420553744942264184528108485001182666061367245819095107300662048334041048910056874753757508697302332215668128402422833391965645165302308536108100434265209539799466565649988090612179084304931676003180543836032021349303976081548897225056133098909650201495884858464500357352832362007024671815183709254271234357779035689567717873438051234855444596989696111296570963931159850623628590409470994596434451608724419914071977942622279467141088127550533316070167391331474319193065390268823853930094294066474332499496996518103291289321161053684059864744754273848904965360695458538447824603331517445314935147617959237136204156696941486805573840062075050493536510966920467615217552967227752804939086646999062850192556144994792364211242025454329470539945924311793824717440433517732092009143697709038092283887692647124180155448396081402545630342842494696647656681734405916225861268129830974591627171869593270694262721056916482389725666734309270336990878651663541699910672727335771351848480480183461962191796720066604471421014240233621547919260694207163677353724502010780992042048006308982059928590158096902372493525398078103639878115923550710200857792619934357675961836207472533868027092094031243740704581253652234236694202469794712644676815090635098454882079249900960071535235651008522801285531130424844396607252354090996478225923399731485209317703956171793528817088246680887111545231340492957292946618337084652106587175930602298557917897418639825882942999842506080017508840138812803710018943487353210616215799697470836005089653816960372717497847222752106898604614395443060127401118349209820083438408865719418593184289928253676599865696695437317821805761069333958852857332594377634539551745203079872905524764991033681812469719770856929482504452989380752272475758418367342113670050194283426898877157218099523958640855682726363284214876794054143446391694499936058948123533500755428693932550015150055387637937788266817890274147453969431576090537851311214885401613468494358259256437603723151306569017336754284210564429174090428622565878015355102397931232235237854400224679307673650937833492480768677819936901973100076936255743806516298560150818897028298106639561951164451049110790689006098623442136343778766881100650505279340327479522432682697550246510810716518125118943124807216190827770591366627360814855939695006990632940592646148751504941060906363560016709511328311826295711392994553557334675823826925878960137945471005063671115739669870721759833836511338541253215822332901258623822977620126417301690158595240482291816432489326827013314475223347337717442843584439321907291074458196696177082540387141125775844139737931587870679959534980190939061789158517884265671859121062148998621506808955053025595967294574359369126602865131401235238844835943467512781011438370804873369906480553085694310527958461718222725178250510770932300546279336189449660707768762846712753756628777009830736477055069315990583000736743942817372987159048804369282204074139196963762596271356110273890975880682483519411022751331557535204869841904080692567303138352152178074589558195656469845265069581753356342368254621279168383187347118309200895186124947888722973177710475963548983349857929981149585699452673437629541753722665368290628557040489029752009749284778480549037167769549244256658254813019887019969166066084797622939386549286148519692173047470918157984208131670280234656696243300432469731793462520171013166936107863990338767075259187167438004464865895307887413559958888233215352077697284634059028639588142832563505393557625907614455757780842108175047190047278448753140413968901501052311051714599469296384953038187706622299853094670787643566463692843154425168127674126905488226391899295456442770090135563628870529511343394251783519722066539254764903823044918112809418191821045789539193357006047981251629963960150784875188250593573855123687407065881944854439237642590542755303711415863721310098943468467407660547715208869205810598417214741383120540046922370894290478914536712612295851360235999351451245044720474074672189402661383626805342093223067059629908191588803044977925044560493129985651997444518634226681196657235767235503045126565463839374058018566511301280796368724901246979384664140637384581107772114759582164308696169981613019507311626734704197795773303395317197707634288392346096484880326795137552902286424592436895080536089546130177994435900602410032830782964388370528083546181673511233056458127703276594485830428180617104324634951383120232387278471380396651855410208279188083135767343729265530076319860691531361143733829019056019694179236589207330152268884869692843134879034471720949682963307504132501268588685020852722799536069491176651855238401385558688500986617626893883002065637392581389067491793350705056284628561111699001301448831423047831367151417285906548570587705282407254329134980042120233961592148070065933224752333166790169399475467031642574628098362905972787972017349332194893665755956082781384309716704217845406671737574638589775686546166460967138979603904764174285976355591365446842586691040532602275402625353375490772569817173589723794186670771643044686241616539245280552798904203494662739009098857387672094511372003512299441157280562632561369649270250219076935581876403380115494601595120596321528870793605270571968037444912177323946224743559477789533375036457760554104467591595985024072777885215812275486587551306470166434053223136873076300887419110919295101962806935218582138001784927219159376348286522852328703818398410855973034753538001707624086440937011880269403307881304155964130496535915609850858938139609081581087329278782397193028973484844015156749666246396686625085123868509194527250827288786027284835419137165557560124967545764924402337694171304951092906589238616532862243817174353591341364466236011682512262031938334418352196448752395145399601935379304477240842373740984977125193039354492425836944810097938884207161315644579836929422721200022490617394880678848165941603569263429888382612534356345892261835414234770563093919844292906971569171430700466081559663567621340003786596896838891098429180266278221805406564400323875841377220013879317617957769713919459252883199461598453160192942868159098774982247169748341248663589052167847014555341841886752046561371058410072435070908340507946829584814769453256688242526920569130765993154065164875411745650042794112074475201749747331371350642626293012611038706836581065046971866731496977091642806187027959880516769698283418259951198837214010996553440924348703889747641352681089774898880805612739522185735764471861951641896009941949068150792720818738905655276399628803749237503266651817780606441020672177198974103411164620903404900531386116585587101141063326758042732435767727695007721477190102178719946288195799868708467276000032554130721400326533677533261352592999739273130015279174893764451680992627884520284711880074375208640948213504918561597630816152804984654893054940977891104124026678643941943811853470248092642658658586978846519289887369703521075654760075163930770508065018952824772101843971860213015819945392001528417144072806562020545289280411198981739270210558352724301447404279201456363913472442604437762259345197386614939785061342367911609877806653332493943260870704485110139150292023554800678331936387654656973281740260582531447200117995961713309571411818194078303875253886499759865632478009974245962141756260703869138635601012345172764656932105888679531320065777518295963880691241882193488763140184072088478272554904719103140419614994924845712652553143917451142131924815066138282171009569741664372907551940285325189484960614945876775163940565562729826155605195648676233558221486480250122141016512263678431702340096519341051103571268516218096029541405944352289752785848656575382378895217063792152306841307647946380852149337794034993828577303929554972501785487228190145107956020017354687498153777928783714696388971154587808051764925432479209097808088349811750309004329113401906298257693110293275844318463317480959081143200441657251816626986600249777518106409794834413377193074102183105947649332273098448565416981893660238652747047668452160646692287809538873891349904017957884919547206334822975501896774927164727030733666109823557444096993193514934844307064988244914749106188012722987775184701249293684825882636812764055716706599752271009047726326036274950715910277998992131483108105416415435553980104721666875176851308277697866465398359192805246411467382787338041059032234289926509662740986467403865356410945680430551039487764395510257630776874547130291823086131167539762325140941786219468624230225632554035866085678685230806946607398291469206829817140588771891646702525669823072760288574477438099067616995159960878689457259265129370415265640249851414535471597680232196025943927070450302353691369914700433240151848881018849605342744122965977017163277876065199195707318746503432336056105944168229921074847379188258087362569574525684214436246703280775598393952409522743812419248952429772424753225039109064618266040828472668098922493125878776627943375427328358785304745892024632370877580865377729041480004016610870062873180572993188092557841019365714236223950285647305246070427869547838262523617846669900830926386090175258124460473141136553295150646679810662223827439599699234465387908372151736406944751487338738509534405053135659566954127340527939324574530189620307119514854458248675299464036398907307220928177022905017385258829585200862653560506067007027291491319398125555537416646211667637074058852077763781036623183054742163936265125844228568335989015681380348387859345274150647483340509946577034181639023213377570544509601900713439479873686520536007213511276854646694651948114481856462667214258489024146237993587887953210051368591240397210463032301099611854006971347681841924968620973035581376114943640019026447624353704881274671886935595361447259277429760250749100964682140262489681391365155431100307754320107240002945295462700719590154866280694133742027200612623637374192298319284589711440774126550504506138786704456689577865758429743426199553616031465151763114799871701808750088012128081707269707868604463147014924562218796602846042206880540132568115806159384373527586942629598490046004347857407218623052163207584022869624607604690801639546148388883510079682640181344070340430761222172008391494063703385709842460551120883484180217492051175788091597441098243558269538390610603234014008023423109387414874547543313968125904834255574758635456538609113832199666068828374384017997103654199282124986395055171864667203627308043558805017672124998183085414248546408490058521417681462746736420177485452978598665324546362278033849235386533701962363494528404139247116337430975155209804634781799175164184025773873413473184422698203611817012429913830899846715022054866932685500135729819975936010415752809565449078234444973026378775273018599560424110932542410781075224145039248121144090695968194932957738948477861648740025387852640508698840107803836037607192334458028562090192486915530206966612010074134714925639587144030251402680001512935633232738677793275534611731872256690042265092633374681753829344730857019468306613193535465506482298574002379594198690812991058450773936331381279795483306888659922151663873586322373487609926975514606834697569655834044181466036215487406276332113515464068951998393605954011390277793026785596972616188296119032575214601025525658237597768581704332432943414368471958793640675534931866738172831371394126725763956360582740748162127917353414587340565663763395530918426220233393628115232629228821861981516952874770486866229294104742329244390809724244982370561375692535973233248527597384212776504582664546185913546711963162987269439278814933005245702629496737442987481851048426160986166759777939894533398780109657214056716280979413920173958045617935218589015222136398826408156373884128872940226251573020138146440273833123768881230049590146692554074357718386564967726556700800755043226135919434443674947901682275465726554693424745564876224147584165541445220210993978375426475829757453629995815172163295056502074321207133688684559301626011044789336281012816904656003985857935160040090666413491731854999876377662113733011596432848989969621718395033129569464679526406520332212396913621818770993834653128486857372962824189212720367538174454734676670641586356350445295903331024979590719300978501895630275833732580214211991891216004257646709055392790721118915714662791991128277776847314141962001996261648306405610726626773128019501272069957064795568785297245240626571984565416539371051843041291428237148259688214720194626037131367002728484343988597370657562467163698753869537973894615742145615750089128701621909980570332727278427477181984047949202407650008714416824441694873474193359693325875579505619721842128543152572732262446693242460481335512223093496990802421048307681575572961882601987461458719833619576172792422861723332434411792448575980296052653724580526698410734902595487476912212996210872850459139687472890118389641519761346823376113171440283102381960067994523031684142756235006051858651606934847845773923819727215879653260734098150358548404027094872457636195295239521239417638562044322622414925886045393570408582853801764632213225699720271280101108855928705885969807193003795028595992375110364409031261015859696890189835809552244956016884784614062721705301083240263628996265986929221270055533452912114817975323995876917488370426563369224735097490807150796018708922410326024397421047994196633928605664468094147973144799960835795891758380213557340877454120596127423607960266039820148682968659857146437782095216193440596857497264760871881587905988901880209862390998067255589878523481295541475687406022293195287792497686511716195225446597031020609385664865709452258334934836624013265899340569575107689123373468957169126240883743166351751645861507592159728975979757785125269031986063476000054655637654242889274131700023587081868029138772028790497338640028149934094533721454487777811274598465005571887141067206268962650415860181148293980136783448844140680482099500184398240210351720425830877419062560049691023546742063821367880817012441731997760204996630537898509651849037043314607602655114124926224959539079996393130468506303800410115239744025587414875545505924896838557936454304759642812450358847833405470485584099548337097340806413486919723249346335785259672345119358737495202623545912702649991590176137106121076071976187818853871789572056428857500883670767548384027123579923568149968244049197462072808552217679369891619126235163646978049864920655653230472074697496551627499405281743748961719727894336395443283152663687849048104335047253131331689822772509441903906676466521197901787466119212621693250137182315339351271893438153364918659361760446544946393741412884150945056754795713122276440698094659654188860697174557759868051691256608716479201526054822065084591751582680182540584432635539975004329269362787020433138218985428865699262827116000964835333966965117399885383536084832797689319942391909811505520434517336895458369680340898271155581458223221738025379744233808854358931445390393603830687450416390007711517198685088081520313544058200797873346369935278448668934966622472808090411593589892232009782666198957269019881724306120977915919418607832977692034367342983840324211706995311676696816440545980816890083965604522814118903019637003664423713756350919210354474509417579579881064220015593058764896853733883568852275548237834769590510798924444794149008298195044217709511625466706376420649063161328389847319961864889750005555815730520417278632543756384985739970690325479246540378198508860711766557789870583594112326520186902725951819485377740292053633775052529463191847663856575134147198654301630199983102595363010674105205875960287112866680328017218064492260615874693661063483834463474074427359173999562425944078995534255986288171079193240945052448112409776888014716032431672482448685735952203558054458605029103169531797320205579978995109462544626575009450863928023951579179383254752190994125558953231937503182843209213365080702650835950732260036385866088527387856204172066213421724371853573669660007475498927424452474481862205496692998714654305634896553854867876323019128078986489669117104620985035131890639518370607862488938442175081023313268022598390705890138613894991194866700556790099467044419284807483250555404683707743903426820340960584140344755851337665108400714708278547189399277010899174218379617566633343198098629856100290784935980123856732793198441246184727232860899362981695238352685715871957590026290013011912234121625054328994492312799682071563405606424653422769442757943158978517877913967949062390307938673217124759300914073556704868373840767696287236798226273170388157638798570002031011831081680193954819795461494153429966341705948516658895330222643236823422560967336705000587410398026098777748246176771957271291910732504693745438735970460525992558432296686808040095209412418436694645258927617840506957712665618199631660144733092529822025483530676655851871359263155992328984586144773624535662535539251623633606182505432194058662905208844505275302306232148155210846533534012370049669121323419610207906205957005992214064234109831394103420425094110555031347675139452756143713879411066444156705071068414205451712119695521176018529093827735271991702130204881170124815223048423910635248116868831227652300289002328881304204078900712486284968733286649508788682590843048634350938047995975098302407516880620303680177176905558429852318037778466732712241366725154257951453068043469814095451784451593923052108573874045065850714136976541298053730070948433880634311943833127991769098695582658082776964675275103889329753856234628927060806784458531815738320719953932686512219661173503253878241200377199745185919692056491845123894873953885980439015448465664611536100524496288739460282629127098870634360348558644460772767450303141985320877134054476903209467959619652407241980176830108315133966494370376010620513004662053361265026539070456901414411441132473418725417804536029153091417448880244697180933420256191166498889206763622032257023533440223148763906643575713367133807870671169785259315221100750052955102677918807950124366801432241416253644134857893474199053164400092196541087398789096416267494169826798156532166454198868565162127693480962159444872132714548520400871351866828454636137525055555340948670631799033447500888220637578569904705818101688034337435327296066389122237150863888679604867890172936748198077011429313223904305191479479364711000488927634997598053424004545553464337246538488554825169301911701312182501099002447206892745707116924215840671029588260461561413937902898310981949793045799003868793906429938190113578768265857606692318477510095355476652367287821275811651638223299640712521486415460632269125544839978733281285569573397632310227979230389628916052338493315744145846283033680882844030665085362145165135960532518017747077411009219170005383714267882818619691310051367877189848542870310016821022210109238594139127883392113612358974022226469270299235321154048973754359190042090487198373998872620617704676958984280666847723980992568248302315297578471227091411765334088555472053434040935202345109491628426080329502253994372958122390550788161616643119408081220499675432545968360913020331734987786300534473010188294829927273796712771338602328696189763098305498568260790613945021346677612469950056110972877301462567311241281530357133235091289824150381509030529161957775399339541795258619823355314542051967727814924280394341806038056009620631555162848722962399563851615783204387353548044383759323002378264706085205686246873961645158635160795545617373876084708686155171596781836720860829272298169844037626302677127521856068309913895406649735376885610887512102482004503464399859607926149326266379607883806967327222525312470136157504084297186110790181259471404683551167827210481459772569499406117201710844218530551927059310606726091094989084606791196690236489132789546794333636051171960442523678417557505822954046334421688027447251671094452362702907229634226091090750481042862795020817337575594646356663059606303172071188822413817080182744352267903763408690430546979098080015668534960703762663530910992160672566547545041973463741816288385091417154819780997554151757638206931419095670465896536709219345060204578910051038551757929378772851906152477131071808206555491240319660854263084094922882596505627071229780529470682120509558866810666798012737849195565084517235989730349928957398427818155432700718797797107905503142843521720130105166888942602934720171205819673104529560423898816985518741174977353940386709628482193210793625343582646184075617430334678756554471176750574372535004772741453676431248510496183526475962581595130560585846787755931224609942985424964035828508401057892930777017008549949149154957433936945861774993119513175500958742722820303792748972481829245813422367791512757446060061443501935550879720840695680906748898178314322557131711939668703845896441096908061490661629895901518350211424259373526084167237553851229135374405914640317274231192225496038269144716877855514918434447749292802622003773774845195166360660815860376621373935018105035411216592251818629350070736829298201293488713734377692914458803952603687706686581981772349620849350324149975775545996178196509325989060757235293847121496181085791777531043180760224666579027713869878450501260095971232980110074429018256880349785510042604034551781369122478292861198012794780505108028983643329152172177514605794999341280537269359123593798613202033903695697540531571145174005549359255994728083699297979983884607195839308603266065535170206992662619250733060475763659441250472443639620592791057193630787403160548971234958303490089401575741293154601929489069464824003662143023472682099388549072488253459258425509663542593035060252724665534070715856789313822173934316797379862484771749235937942525650372046173493615730208474802213947982745614065220638449655376946136782098418202978883119024401697001861679881901860158180619070388686108587375680372196191779421118874927384306014140074433077067860569769673440987965248600200220872030012081782951743094896911511871204504540565472961457853970780050297472879229457136790421543217279138190850984240449060070937504197590453721042363642520719682292516193465793041981114975328437613121259461584091138752775289083270041924534984103746133089681550008242365165829259063906292918634591964192173484186775999350202759462138957424657332377004795635732554678967593575144069609115255007281072623683434679187043036343524955376657169641467876644334912910761940614337406145741904593254816191382515221299592139500523838765561173257248408578314321252487529587797620046519260202058568282495533214794075878787260561557487534445343804400489352825575788092935458374422539420370872396073298602212845832237420239098193106964699053928606495878279359760595070394976184887816441849945131174958484168291929283718064854911922913285752292653472035663164598001817277167682905258955358567811219262628958558061576036220071477328922153095510004615737319446745906210040239292604464489002522165941938641150460745299709639371456407506752016579681036845454911643602753728999318980428159861853491381746562426746673871268067304380525134722706910703767548169227373427211707058123970047250744919069099656081067048538971797737753530734218003324369729268256761723370179187443520812172338651269651526159842441021057925474944591987193028105304482380440262364223203140032527650594659449670993259267734615884590025058982361481601205774268592647424194683078254415414974140419263393695737911664910312767968641612784848743132964375481744679800685547249647912995788499039481284458121945403775677471983989884090077617883479736847001991926640839838125532705471220669280415462505678362380067804168994271650214309441555216469348601688543778405042882307524756021892621527301220295053535534735434980910158676324626023491710572260906467970741775806321025164327725571474876801470937562599584224947870580912780417119255642152536408287372668302579304069461068365087432694075825099373900593337655657058767735721281192899882598554334692264257436242892822665465286409337945003155694333738896115781551991491502254949465440525779024950066116738951657664027248323178334399082414690258877760256262831066134705325661812622513757797041754078959598009172609847599586868926457368477723036388954736274032886886857743799624130410081614063523801709655285556534802667174107821637896188083021142568411598334305408617662414070929470028778412033657903230057973014630220129222030548486965742907329120744520424738967853663488342185679174972253540358233638434561080380125854557370942048808056713579387261384734713647849403965408786220717935708811018609814979109837027754390787324624441105521046013796296274704323871646051078346697284512112926555709543846394548307128324823717359176183869631020364741580685144412643579822371654036008839894899010337565351297736578981095426847188116104122942152633347812468694539063865960937234813922941016998553160305698314112055815361384010429326756090521265015359164901131046939478543028107608350503497307765930554548622180954339224281903696408569938284630692689444122441028039643411363592838809894409428597745273798231948556938682239095751818000152761682875572067037969355412126055338592124878185993562303143451591115146963087849024616792582402423022973369136119433875118942848097802849228110042875304659029429977738234846080089988769089234667243649658581311615923397250259392898614070301767155344046541058501359077529444343431781316633662563096199817827388599837610338912457367945897363985290694106354382134745084758799948216661425616808651926837607184290252896878492748019143940214553823046063122036865921027886124896308056069072912058047762528920328324663233281560976559514365665085861095013179584403662250760728641049570658690447004194151234159795584132098487744636465600511486221542139292431081205978367048343417905196577298523802462365903885262730293861653546489263262490272857320284328082963055561417565280826601215617868822538526314531797685547447492596851416184095355017915896769424921380925975204607129274834017659279322547253963788219212437028732552458685613038433802452466604064695396571069867161954936896054539155241366207661765655104805322937887490941249611515308220153816422221286011420968573332833345069018759634324435928012287964991410311995093208103544426067200510337950100939104195513443167175189791027859173233148154102038473105572162379992419488921339846279309420366709653180549210344352831871045028867411342415385764133628899411861199945114800379807745955715953463199619948498380560415992726882710621569455700357611951164005630977528570551253797364787957776487038465761164243996310157019119041412090477296002297143074714559193385608583989454014110139705767264925696970175414094620620643467302758461097885353534078136099578875819418575861929669643259259023042294592989363265627382090595718212174574104304655575262538111784744290275116007827477301233487154123406046749472746351160435822295657206887883811503912870332588709829440858922678779552100105855610009981169028504265633074773466813826756448278591778539145454334986164258774114384190267017799186933207956104744286245459097568252222815226411712484726334398095927132149242272902844111793375998304423166573160478391382793594097237418680829070464528085536785652218384749446571224987632808464164122664461911449908764492084814218998177995986194091474113206410801300483076336510443381185175025233600411418500298426419651684787258160139444284209056938411867569428867998828435233165506603210063206256214644654372765650579656609223918544260384394164685449481882363964931087470780322764193147607450493424122947583956876433815808634591898445176685437557140221507469498108900559710129744632813430734755577661564604710737221182547095454437884672745038247702142998548780859682042335025835120716623747903148202344807088582158612257724212437448364785214393808367010052799228410188851744590250191069670940661519897835507696777351429884801009547436849597290311381661242087517259369757077241868696277195389950626654506929197241698782823457584012265385901140802167314779585766587146370196440024950973128765488526097316382342896057349248613216943079981374357813236213941614454021083726169994254230503335512183683801299090806736255906309069369949067496849499709886013285742057658708389923166015912720096090623538264326604476954581857300097442594888133956612245285672231742952189677044940973137621834824421233380236790987008021986184503672231903392122016025540468223262759710690231948067967943305109249043955537511299382087831065575417867914114535336398516849373953976353988849871430021817390740927886042058944122676976749976759158976868398977687546459450359595173890074356189988609184730878457257408848699536482545979138240825502793533968528956018481241474088009161054910665011935416713552370332757270586545222657980268320890570747342174761648717542436615076538885976789482099049823956517117989775326708784467804940727400439491058535149670791404205268598899504987500011378916062584957501610212924283752696935890892775526385443227122006778413687770227631003079349117067476429907838353090534647010132409496626830043742236760658834903173168350841076529733259654095702729703834946189739333447861742814785674590123768771258543232118973642471478916715211400805145968723676962800619751842207647985984654619060356677385486822269427216175876900842351593494783506566070676081753013443524024262546905261883988490228973233140225617801705743525799800118145922295326149217924249469307097641370096517243787546505318254781416778679854736321442509683603942303794962940595942414131060890891557650150816602587407662826748464306636146816279071365492013816907747291733309033108971488385922700098045801914025539296052925340389004774372446961557977572960066226375088146696139716079897077497862075612594586229786441742633944883815228114867699751344004825108883598155707667135207609507673921099280968641479080979871410260897462935120792378962129359262442349881536791536811337273168765572299345509442412091235035800751428536465914764222162665701213427661330245396808303774352098640922036291423254830556624998293872559851559284846910381609573097311271304908408234527813627322542021695854244475075568006539189380175455677188433366808509561489828836959623852415710152082826576877718407687597027436515127190538167773149795645200844959348529252627054225702024583811087040939123173896871806042580188950219281325592952611852634224086958215119641870110770908251779636721285697473487049801122274190988832718753413954080234457189564016655355057007060887915084745976654375880105756787935506396272979968312922916417108556306291840430246495878168016525892532297221618015419963618045023474734228803726311052227881400841223463451006222563171159408223571257051434496541262362340080675927321235829875585981390379396504930667967714022277281908901468601970707261829700161006071949595459231717975324426325883555730433767646456803156703939950885699547972453068095106138604400690254754725166457663117086678098484048746149891435381164413075236356628878139499682367954160930829319127647092872736360423451214611179787126345847282568022322349205623242105296114417532504668258608212260157896517107369290923671881259694101622764807314875957696907173815397181303570344884023844531517263824480922708366001092155731977402710601024893549442419482229257057790403515151363900049060707874662932816247356857282380966367611001427132172873555073039261059441826499959456303280298336151105702615422584256997304387414932682246187319690300880650536415352451616739571106162258988502454571166321715541276164935566452119365832737590099631225048397265048587973915223895431829047198301304899500507971677513951268207625173674194184894879281274585403259313154554595256845879174070477719046297958339331528468890246602521433192680852519423031478165133828633297815156558891181894772784654783987282066984300080820402077459277594260954408690323173766175134390981525289902072727133757332327685876923411128492427990806592022174076159422539842057135849655918015435326504689181511761662249454766932190293225738516102654119199850599704897334974257250852210743725246605107396845273624480679975378834471304674161644242080240652279941397454547348391514824305594305500692327548910240005315640040405670118684516732131612652585653605189857544929014929204987010695683560585081511755119061361151904547469839174376016337639768430803048529983061063836099032845576692707916290503855076176168882087047574874297615068827782665831767766414426688687858448379066906594469476920165952911534664130130047638781091443350958821476729724844515686122858874339378029291401226213378149557872474614863886846610601696105288666043038736925482392533254859611257610218239461053464457949018072291755807585541018165359463150973126861204067061627838645927646957796058359091484184952266709632012793626176539641235866077369761622701238860700698446370309645034605263793486588829047503311366699478295775985984375479142734125421187865652364297295517053860742397075713860263413533896198513073358248199476574512755226278011243382488402580136600054473676668693967795113963194093967728879942244404898618000091137447798671071761743405516122803296636605148855435420951814434941164410164789857162645956321142518405782546211506914192358148278749548210143600209414849532357204315214061943241930663988120630778726984563411943598427038042185869092653412359983844580086268892336454584536062122432881525974864512833208805838692282299873196577481374120666605088898228248813589477331659857928286311611813529924053582593855842108929832585515367184842623669709117404951129296691931340290616755994045015766833915908387508560980932413823584365359760392550870611030727310961645719971927817736924031063059678729968771659065402913487916420233925615773429031314745832095795356349387747275875401368922071070135702089845561483256197789395181673334414962253208693287360380302457487103881512561282304516431903583658809270887634411267178467051042059927871368523132815016359369627513008735856081795117541472994725430200590020758896898378278409431206113794610838212312198044413911346294372415247074826498311754478334854241903984663934624511217905581529005405313621395045479718124103973295228140626691508012002473130710732490135105340363479787030494768808963631587134473032392305669571426475364394534217104395665036473613403174719769661577468279405393077895254124922469461154282950196052580229955683824825117684934806132329557147608269921950423790886300238360070528045523647385476817350423261667969681737444431855849012756262291175783707732545208411668099752271024200329937987002504374310882401886212620808212154767444328164200939275613035000688682362293161010912421259289195029194676706348480795079580149175548587525556253769974974192697236197469429783404328890173136680596390215754514313099930384885512211890436115871468382744101426449687871877321661563875180064819987365155887638610822146256787787502524316570181488153629186368653288577569198591370675271554408402501115001959735306060438548596005403293173072828354283712547945350113778141706249512672927379814152607438599664374990989739346013549361000765211191852123274421523528400300139630604792161141466393799172318715361176611519116350783003206166414016635060916251400541284284560518288101398683096576388601325802168947465387747552476989689292243176923411255851880387894214795798923686115820002161044231359514276155019544816965695618806525316511827369563124218288404575966865406044945112055771738935629952841286276758741596495717319307544810628510549550372170438446818392382634316694768489047332381734739159043580765382119210216953252334865002529801050245684544424914932225959939152117780767645154154718802025239583992345333000085951215325468058542950622941418872149135357558027178920852777425347167202014683192652453891823608203995490690860712089681604012854481201997314890649536995895142683179965764286458022941886759975479906981119959385129562439024406589361191624355859318542137232482183871178113508814222704449704357631452422264477292162199096528873396151558599147405603237153538123818641169595006005349636275671218123203219955144255739362218851344903911388288619772245739247000787260745166122519245496419632103207804073765656238086970414737424249142074820967441648996484819128347143169259913725666810524094151847760636808579188957474437909770294377799458911493647523517068748864580834192436179455784622691230399590660396892435952825557525056121010166425817082784600002540239294360212082699489543745995647312497539664673851718135405107144554244048526815407425791606966151628283635696637921203116910125880160923349411353657695935331961555433214739472481541176105811671632335857535790726139574266468748629906439954688513240864168213360325650102768215168686469345455140159100144201417666417368021114878588097244518804012265005642376530826870944521689173487650692466252762139739991717310764754943687061136586216798887647388535918274333367221959988734915778480395079513281116001562200207198858735082118899046927953434179902295806925629101075354597670051424270006846821927191072078926276631976518441054224026520980087157641033864587099870078994037268013022953949910502856599437493795401210835591715283150614250896340367982018245679255521116917849666032782816354866867137079521153835999784393150926403518711273221916473129024141579420435546747733685111057173786553400925518810751630136933370059223146356752885700366536848581785897161670452222386410640777843039031178231258795348804952205850061211888075806566003278744766254963175661671064282798646888314457783098015338726037874674028130657216360738607748075196366291525570692349725458126161198682517049678645757163840437613416702601395171895682253322365105984672316859493880969082567159801515058786455475352727987804226622690072979558050210745845132950489216761599213703039505947341280377469346104854361411347068839716281507660611278263217215807631366507724178051617116368277134667892280178372705881713087386605424884349549172694601680241818496742715538974055242693090084808584909716203958556643529834370795614731755633300364277446133591822569641144735128149275957111195717951744711458782920490946475580377858103407877592552404487544887463048005012127383435333904583308500240461403413639550839910678341369787235936819551960909054302573276895369447589025574103300837760674393770888827664874145294224995407410155547233330517145785499186798019677348325862544964003443108660960095429015628289202372363005510516362079489601353585110323820037108944538674242765589378458535458316242377166249092965549347847411151402856589960551738342789451110237637381063280978968668513463425698842362918374998483196355289112519968518588034452252971810154376160542582527751227526356396248741322213423596353382491418868805237255645014878158828929380970334669203620489453488740441428406782399637667727471567544347946227101078172314833665639477295758872384450721400826352555006009298251114423349971686548464257114624062459202523330436285764660810490316679428377561178953565978478709637755466617093041043571363307204952566989493823385018123514575970460994020917731656666562137564884178823319046675122096121234524602020479278191123828654804512315653884848678231025852920811022274468630436310997202284878061265358056810008879038324746033765850685243356267443271437469632815508204707235234871592704535633249252065541976553884457721564979267616346575127013531282629517429187366037277107302353575064955620967818957716234115892309286493255871472199398787444795881914522093085859889162270892064976744370283978830003779649892288905663406639932980434423982716118809055347247369888538218552618319538051841002243106306984805521116781763098245094930313899329214625489215211254159338207859424954974783565800761853419276825226751076136332084846897667674264901755236643516008005724961986197269369651919603470880751673761052427779164993360296558756025263934581920318326906238052092427879841394184018368854405011449540438013859730630162596937202823003365373971118752148371098150731828552717347388423028575887823716756578818746556120891128641630064573481234261131555236121809295804615843162125042911063742015439211457492066448134453788857549563507339423865532307838201105629789066634393545715004606009976753190583757903166959470112485956983847152678735897741426515689378071172406896931157859242615367797177270137005664068246740308065232939791164059594087417045232864105028576618610220103720597325110328567300144640748888116911608915882768694588571731642459130718836924523517115417067230298064378500043687894178742053483644705609844931483469584534666127688944535332606429005415227269824063327495856949929749633900661206942936601452478806818293577599886161455363900396110199578648065596537325255415582640494550347675083925010763499848208033589018687009515744336232174848969755731940709167958514956074301531045293142235280653093778813071116162779881823204436117723512916783830451633151055606673478499036593073658752776305743818591289038654917794970166361160550044051004089721926623685996800699592112021174957924345325812862362624550794260887479215342032133624652886292938421436657059943474625916438225260906127061847732206733010493207290747155997943484118082842674286692729305055846072954773692091811429714205683263173008761684209094611721633456173001507607145966161196995139329817463851683735752203148609512131958070319874960996119762581271997802399591514546722046594750887751220695247460627945602567952330527097579678713332461492059234152343463382771284166970179213528006548149634707226776462318593136922696987343702880791457842761259322135567656560704683951531243024010571477569129332657299832561694596480248318798359743044876397193327002144887716596532341887289368563807021399192684563228599619790175015834632847199108472178878908310501454294221129795115235209524522111414462289584084044576949153359514032716065583536145945640514319907601604774332599873379167539635887013346830470903971443121180182176825106289907539729060469429113150013405003333075946038712652589281941496491285855061700731144252519942170845180123442265219237728067389460468995334047423131347052111400219378665945725692057732153813928128538959771405896849757246484782017654311203733631827707719086768777737031657509025421475408365196087571965540633550585261916313863476507949477468184094049670900806365820024186410784748380962439501002096057264684959825379207346297212361950611173918094206786546980323627013819243793998008570414129339983183522422848950535052537390503380555645837354868837204405608525101240238293911963133159263264428258267459527349441510468405873290364987155077605286620044188946552654350785943555431083232501047930894591394862482191006135764996246112081732874463051856507753379703293351623207713858390236155386341769851886840971787913321897441312601655759847750490212565661145693420306754010829251842080368910200062823186508907686368600075696878341837509966658594244737340946981894398114091315222717049036982296274435302801194601402161441430894643109834785502505820223764878013079182775498042050775454508554846925435021069825724653744667962889427415278085119603560011150542049831576086347092674310067588056953677507202054248641694233148412524681858725578628055229433444392574677579605164035692386168141965596019252440059181551426333106031606509290969601220482718415734357165224585579136743670894089202937819011758754874139658749571656569772102326147821913129043731754450459039471785545682913178080782179034262226006827670466149603094137605047351389395803124123641623697441255882839207745224550114186718453175276579464060035275256307404437855149663055130782033664610986140179694392305175292232228468211947022430662503901399496108615799690791748521963238496478993745713050597716873151781809314102882708939906302594853928712797602399691042319221370115737105522662605202474619787165308854469673205650740031467629390282537645225826343863311450766088350790547473621430962077727996726621917638896523065127810202487774570596032331679843557153339585524154036014389837907613157734303442060951832575904386727450135242000833823831201564565973093254308384189067218324524744814888205601429551423105717416484509730031835545778521764466617818141843564574518641125964442970858369185706595828199168430986198962478489570358206310422395235188761905318678818178525718693715156635308985157307322317083974622237050622390399177513316614946228581989282633989042054576361852820251155597796456438373252428060910477690170172735158913871054774693778206861104907121946903315145834988832085538357002776342870696942208007012056671879239362860848645940951598893893160515805891237310745387481056585605707981494511568511748706770227977753607911370229736759248594133490184708659630740055212131575944771622242352948427609768013480994661186575681832247278728710483568155589590607268622841405161889023910601217383506386257770244559402035682700229805270426937811100733118459325681758755082576687289279617048925347330946666357720889690951727604724881061004810087577765658318990518059561399152680124473453540330708103843690103369970125206933648014152231610900189325945541875188803307842144471676868892683002613315998314823831918938627031258869617926451170536618581795388433334206217200659970817384747290432527652423367605562554622519409379395744387468816596247066999582656663425021892038321790623650229871533867594125246995855439379400545293477079418844507049543002194281062526770620705630027138470773978476514263978360098968411739549315338498445272193432404336807486214933324075261536834921204735371958520967935564406785555133275353479026478503044069093380613877330647750381890020920708396950475880294696675179348901845379553442014713310412951691255385383447696863450298280575866071710614420769161318652299138359282573519358366395745737763299009605704867409711638568035401978738827853727352515526377163238214730553627010837341764245058941691625694210656408104433787564644851401147057958605234287307201953996862689869790147653471551806335571973689475978247668450573757085636454455214672763888665886035212867350361673013456784210031142936461506219874966128314535560766593353877912458836306982783905937119149367539680145736647853664692367896843547144532364282575372894223333286261889695986036901064703677469249797172460016226089133664169964395671781703416181706646866236600571336836354480720939469921947530119838263637122316359386896272416209441420499451494428984509293758409189038251492405034008942036542261891971041740233849958500521481860499580564802431554850325715186884773513513854867228971620074316641949409408900520158966686172001071882409354548248202426033624321603381956424954874995824989956815513253863955763284436208878013455693175329070915825508470055153880190281045751634340360427500584738496408093454811402263259855481507698337986076365743192689227565379216842850142149708821949176070371942238640347371157167497552033563202483515789717273777342147615075949419132693667337428191353920823655094980581608457830271840408219693239050290566095232010109996314774286322789964275110823254822275852212672774580362534443136695754286454698624150111587167990775988938250101611544549963960596843655477643136041886983352276396728055468750245491780534271224395829843804097794993729190350894295104996325485088564617808510428765164257652296386944189912426568060034438954934635585114841336501243381586506277901985144110498237828439016411307737609181514576508633750823030792521390603693343480052198169601617329147809780304678019030058632144558497452312377397677381710730336889758280760290673733024069510447655072729800693194411960861196994420414605907792997239247937050240235555644587587673362170904151558689794017835197750539540653126997789942486898741649496968458322878438358743728784387238558783551131245225231279809905595362876024823781349224272335188539159833435820878844798877231568181913418489935799195211345053553656896184244869467661399782380578570055486347000231609550025918290366934967123406567543078688916418836409320143962217517148452005424406211686181041095431783264994567121992966910920337296093016560214805503761214073199114373555284577116641847790349687405804099638238399978141311258750477421397337662769009057114976527859989245383976613989924521199403024784230728901808251669628961172617327037947092128939582317956996182675094423225907128754530905271659533069097824004879812494529253667664353476992442610296318661264211931613875187345418279346968374659209326572374074350448848413030575792158545891547465882898503956004698194395939021697389685570458717297339160284546457462187913937283206059640756722035575699710912647988000692291292904991835410583348369604263107542282782258343740868645888009843940386139553129980893703363454260823133776044579831485924873671046452242250504151548933125575473717223481437959069133298922425185594392346806290540867943582042697383291501988604017295914598247566514922150388935817211513575011684132390918581138083686557804562384706726594592666627195403433225845781820438267681015774196417838849470678271225549876159095060160749374153275713177028469946226605395996441081704177063437526812983103481854596393548352391471739850448626042098469654504562783993128636336814370882065481729032749029936708898298427625456288917180380206697205918524522038555920327254951758218815533390935322597524728801586973317328067874359739978624269927874077079213568452297374345833286583225995624475239282512185012149702501274695544183053928386111179593405048512854180375695036444571132344607791684113342302622874499317187910502706167176257873246169471066862198177818168288236225337914209253132004084155384143942326801563332104400336610332892634118114622730652350354844183028728980379756958873619293282400592560649604055581600717794537260025207879771435447167144671310684872059348112498647629412542257717588986925248172405145825993779401313166667017570892633753641940074768630150003731061585816480307419179976877614834844710819791763528789670140048890797984425875045182304660944715797560273937152284321600023405115929228560206469647104762775791139257482636763972859839925546299690057618751208450056966025441289145314028581914826253428480653929843449879057707755054943158507642998467597542125315959351386582871143807466407889225626762409592085323993385113395368794737175113561452033738221771540030895504742706593874980254280602263064023365867271045654159343531515865924706580624355294114702343824814506283895724873459191999709522034539951184242906162254510695730835886770419094999586904569532220984458547602117159506556113946507781092335587792319821172101133704888415977358500156618691549711086641000264617110751137117835872968043220118025358013559944717203847365978665276791357330293540300779409282480311104798502024148114022928408203068334001041069253111189658043833391019352961299582426127789389771189015414897401799168467260523965748966075318029823287470309917925762641755984209175224087598600538049703412809824109490655793331926804351009258391377396771802075071552561959257365174482933868202995825939774385970698105186037787587289438778308838109544758234131274547393185914096113242242919429200884363384316782428470386399960651481229440313430519332495353830196993564315223648185285591106120984531287773766072822954675885253602789273248473523619662118796006973235043170770568340107446543130931449094819325266821763805762952760856036326162827984147155501658053660407902388613603844627468950385912246790896663838342644105068810607632638909151723278907151688868596585220170975131247324729784423609292416033006112818886766273391973785272258627056400533340237524832984719159590573037601543425574607812821006193484691555726138219635423875967078642424211300575744936334047740604393000777343656000134887180848891955824918294243687342622729568046581532162913776272709711840308869234799713391398971319056400224684043811084948327754416150987168801671622150783826099323489914034372611008052161778268146737827960415978786209136468189388867686583004176681299079670660754958043348019733507862834653246291862118001064929433271657324848152658817920956602011881545840715699621379264803744767690717558271078770064683418380813298440405997100127333064109436964471333380565578168858843112497930447723755663248737886886962810118423588589863496185316795053968602104548404451663527309773865606930030715648705663654676445255683191439394992103277766252386665632425287932422056772230737838569377769082994031056853563215651074005563864701419438073419619449749361971091326632449490677077108675603650785175336971041108773674369698545982904480323923643782001928525311960348686656985873061469699135064067605179012423744617492615811013632914768879661947464107954909713233333952337222650211849604763143199199980644190838880960839180219399218265886808741615231483494414100677420417922921268377460469358105132922854681081133468163103740210934988675101259631917772013558696693875376394357671594750915068236801874632876748647318648476865932343048520546960766217135215687833423923791861441651671593613747843923350493034565028542729555369110744546242224682963358299813355839772010825981038627672885659827584143111692307508474597452923197436768145360979873388954615257238699268176109796933142699159245232871265599037301324986375259287564011221518720113091084535300256725555712337803519857476658430632001247109993209302984444331956929313698629487840157539303100764755196992522278169112885230466275423775852923052694305168509115473443449222017044122437199380529233187664652017223766968109844684140806902904709123886339527651282367087843818473486541218286829349101824409632355133973753529322071657658277038818672068086789644536345698571850796559114132058477124933614831483566528987060947756519050435559930428359984300547822987545658933013252246129609247052725965530178374717311310178790255492630147980508957737016925501865442945410763063427799014182949484899336786515696572342427616692137171507547418759180274599668668740666424948524894550875011959383391409739806176997270223941981752418804442081467569054845379850543029389613497319409066126453862496110355999479763471253619624680280335908673815895355677860654489661867023882783016558421896714477778355471807915417765507058684161596056511974118551440520397055128153139889971471929262640151886377126188873864819595900313817060164170450914253586192661133971403823344821185869392876400831112401144698303113712848214708786206605091454866858351809078068482867618949885396983685253072651240524483267399869553498726977657668155580776481082654590679513615004177622938980415566659450722915466428700380621403992816493440077308994779541005841806532285001068411683629907483544567289351465536327076018203119456768789411029841725358220839988041729111428190056787431414070890074234824807763413817639899596055375240745561820252393409982756118212293476109381294123901315668939147712052883944429341544913650794137269585494307520092071537165848804490703907891182735044414769285164556349090739305071856803344890445272798765584525795094346444609380617298440077156688332117238311155232308794894280712103854269339627038828458765626986771749652561429940096425875610677257996906176650703859212086837305274008281767286088028999035827123646825246634735675132705104354931749630481025825724876510250941906288928663806101426839345943907042579914738550799839193344071757330407983423105441144000904805155355170527311967144689774062877020141755625832730567692059365965446995769702487733786791107879475017154945426306011810038339602281080556975254388528669284443285812531921084691717427150743559261189601684609404521572880938826829402298889054340173237375702646958650564683592434514403371543950836248590726088623089466631342369079518791552150381297713306186747827929800618707425525212318920717574450006554326108974542324526963684434229220882388626313283831616272138882199100483680383121414821207033841213696254011949814355435917782299243231249896013943490904986646552879910225034791344373015267234226568609427539908127306656031035712838977350614381142997161851018414005799611232460221502602741357495585170996448707066182258270355982471665853258564176657309358446059818887842160797991696311795576359652360798727404286772167297392180732856923336241055468087605599871292664558900576552100173227447176753768650360230046934721394600456351323763014716516276595786460377203836435919088825613874160904375281227000767485666568896633121701123380184680303554867320151877046678623041804391789173754239714626931826451165969380604560892587985235353709798106041524325082612160379838289197005678084440529830408998842428580180980110250404100289204387246834061519102208392418024484056199102512238481714344449782869820253831137549819354100560834520919829648304830291556364344905740765560287100134317371129768406275184838976504732232458247642806599767564308333546019171733939743681365397785671417217051549031813013225089145519296573477402549744024703992623503377225892459370277517661567421538181734950246919269206172368935794921071366366497510710666029786735844898453620144214180182376260244895969305302656576943932922296593479741953830578087231601886645079425740643337008983988528376311781658114979804815191793905255392983947854296606044846027007159687748701369823225975215110003489588336147864344400821536937227695713647308071268456858196096793594262859562958528977529216858866806161518329242934352916599714456570205325909640332117608817315249618441253678186306571390690889891802150546639679150762761143547075704290343966823256994606708996838809804462978033803687782109849673301587910461622032031122063982799978002795078341289333003773936252487276076991491424263817540805508901483036604254763002513458565927246678121754397992521259015883894820664007274777430684753012030575259535791396450721078458644846434679036191483456520377849541217263981551105833777089601006484361997909486851505120278593847466916749858539166199745580779603352355937001423399864549271097662337161841760772802623628904966533819576313286309021520780945703480131583803447811847895461455132304864907553212767650811692505298583335507743201823106533438456343274585049140916977584910854635533392632433321034741355823929530652453246485259404008064667324935795630741507601124892776955653064998317441960431638399252797535589279178617187381222777718315243701294809539406925148143354822277192476405130075444628360886034312663871764325652347037761938309266750289278518912655928507509130370410902264064158948403299740427609488723621475387646153810407718255813012830860258505878853346569667702114618094138914661883176296199371307149103469868462445358808077382219983369860086261527135840799077820456742355699260085604769602119859374668458728629264695721032522141152584804598557098342079204472354115795838214196585266870595017549291677958137574101745100472383113007597207855495338513476414191909318317413765045556549787927227344504762472838932349756761617550220965091006113809853692763609532700018420924705503114350229825750377115036779469308395311800678170971364609505809360787360215584297740713618907648745447560065592797154587658240130327893941850786553170368841320839579800830319667499583445681668152858072542727538640122350046915420779388217795279409786036439021612234365986512226180490406508253721915891276002076868136120139078062922288051029928405338442913885541276800225742531481990073365114647604901459919991494515584425812483412718035022796176414167688226453735803232366968004228131516690159308949219405199940790994036881006142318877724759374443247353265610533909455610899025690416508214815840471477289810478089428918873717434642077990878423621076211610308599944632727451951956028406575888219280462019968581380124595153938120724048334555746556259588803981476782159530755609768931602123053632388995171443469817536953940541483435270028309693612817102515591274059253511944105247874898828551933078561956607661683138751131915162778558329064046013161617351244918604955743316642368999815967448010949227255870101885586358844464392337973664490613382051998486991031676475069902869693914118106804910301845927665302286565683077911261527921563238013891273522043988288368992840249014299585969716535072305365049328812500038991728924831705558311340845309090025362188647516638447675878740282074193638571887282281389913507953123734719286029878010536941477359287069599092688344002598136645893448188890367253964047048675774741385423770432753364179241664442807579775826196999625846168655186566830471503686653545368914545775771446610302570942245209110578531767929064019605112761639256491053601706069884305773324348753778295044795053399360829298380735184830906977175733374120009944872823097370205333614776334913974457325702649465140047482241936356598555373711373458221481376934332766504217403719992166671522941021667983661022796218480759375623808260539775767624201765428765856311040171186530988955758281098440791611880835242485101896951261694688885350285837682056585801838526043961670447986616058733779233083202769307090764155170034979302929982541118342351003377375514016997766615765613894701381665557955778232462246610751290402908478108611224630825154974029865520629782727375394366135954277967876244583341425871866885215544150772653350136667539523774137342890017664695282177148419993904816007721149778453909893672155853130437694912094756248609179336945074577232809711318751907738363140773628934315650307977765685155024758031697869908715305648736261247287839016425818606324808681329951131738560527924721521324205694254837687268458804079974496394019021160523788297990782656369481194800019583048184613210958422620705632280844513192886159273762249524195893785976565421775003857855996010126891110873530864187044502434834901574016801588384005893514077170535571729397640221457974783614526105634795029680817651491066979595971165965304028867805372809427295997509239707676354165020086364464590904427661204467713016889919627487914541692574865293390805406580291682187199259827725382420923146234758121428015005414242609368587401365620500198798165035979622471592389368061830477595937335769345091934202632185099541174679258818085530399970263852500700574718156225198633087257457485961155693762703387975978269400981155722299329788777679101016619377082676759004337980415116029844309186378141027054571051984863616898970076271911130556068717063731479349589036455184923691038518909570435826414563286525393878836435090183107843338012798403983910312257627099098258767755409464729456680428503017097642407374685366442747991670724250544613070828714547116453270546756056070382959480514171897880792165426044247304295464231040204444929806620621419990961900072073251790747378489883740909770077668255057425612413716356323105192341764963805975317774673003866502031051540320671816507188928947235966249521263373466661433872025011153551288854135818211037452485868166639870489366289880731850326383641731154394180852403595005096727255539098014943849808600532098690294050224434654103341499005319632269286015991200251948619197025881627022809207987318342649011010347228768498640574499275048520886887706092005530095088005865369228801953274601988654651805110280531472291730129358400396860478717667827668088708355162816061546854870657078672192042369492398815138573401396324228100743558523426934024301719753792518220741052140632878847241126638144036518862711935103366830667106758636044071589697456464046594418329907794650227525063098618189965609633204129791685198375400971841496850505544067500067896469204454929823075875788558051640201032113642174112700791349793015832709193951724516610765954846560233611843621039281868475562429181993209212033938801419756522969315227484468287274797745739636672779071255606269928623586674690925377538480677908211271354520134303774504600813412235407681658612646538174206134951941385005856799953648124097937134790831444316272061760323375933291788766718076294177975339388802247197338716135413701446252799733959895223289486845508954797101257787197565147920604050587122205411140272309227407528808390185337717543368290904387596151984092698876208076160919570618098571859529550890833847124947210197814485258930134229641144704450266740130470171675619692553340678976624756020310956115269224200796659374531813535885793680096935387732968471708603825226420228694558616813686367397173072174092047790632832643754435351233470006643852141449034457833316916059593872484678894834254241569325895349841105752719052342288292922951813171802713551688022498250910438246854569982288917690868629965637741338995890578365307779786080511808595657543485088452491956889591458790508885699198828986851263636759864221289299295414328543191023902497464292359819915402355635792081358899293560113527962699649471872738274252709862165718058225817387685739651405088246243209565929953863414135216424043222971522688725729443893741027316011168645106131189943253584049863265275874537404974836717167717662679853413531885108755577778354275128362593284671225500302241244407670573219356002290685162627511521910335125602702974359155961910985945593486009934658613288315078132297785693998005478908100513307214365050598775209189338899359512999697523198897324037942044181090930073565588205334928456781143343203966017237465572481507846330236265854932188494785676929606004580442503177571265218186592092915412110429396288185515868950800607943212205249619816400207360108741521180996202797330505030827562360577892739644321437602556497861315259366908955536027461964087592583635489706566949215942730773147630236930044599761937475057365821965715161621168491812059730560919483047512983776471485456980906407359739099068785948484501328393921465678458878380844949898741053732522907933622547823088941387450155331076100554789173168576774528578573764169533843934811381499911359756844591352609555208632332246433869168990423958949091710115238440503558075319194063608876159431774448243266679612726865536899492616791203829877157474009843879547555952369211114989755550688845835763331586968544005703375624481589078184772119169838335141368837609690911771869219104360321321002222880749117054043646062762236769862578127209055013703440491919128478334796998219168025564629751602683122035690494447729874895634732591642997237367420397963181062602070607606456874202200741896390652694000746560075963093820428935875058242560297502158075148833727790958404551674290816906451292153986379069712308099680752148021814201045412588336573074740302216901814928072604620287972629503451047678013871749529864666394035344927210501017119149987963714957664862623870501409017238311254545374063152901377419588579942226640189640802472302920613042534664361807677821517134590332298874838956162572284267746611826926717247237445118850815877906706959641551687047092967747441239645372574504136970013286999053953036461518364404785728614999917141169092478539582005493581501720046713244789845659263842502983855583582495040776655615420772202371982816935423555678360503372606442894356846649938891686775624664223631944416123380863606775278621771539104608948280417478561886298284532902005914622287959923074421957614597196600555359343554214592540749106998407930070507031779080657449015679547939716872694282232342536903809065311425841390532199014598445259389007261836770637399773013427063686002395934210601096890862803375327075396137322189425251237052180639690680751657553908276594441242121112409183530981520626779702734472763859361248265223638522261480342234674238921020899318466247276279555315411835444445711443992639718755161046209269456777318887779236436115516594330587137219456170505193071588734055260769504512782242553399735866243381054471995171202954846766529157797178104785315439713099692132036624410444442622931841716819316421402923502640801635491898059327146354911559951326950488243672440017484410243868803107241922403390076103009189749017975904280381328941178573974029328679916426073684599170397959806960398813883405539386450398084827491651288862415548491473504474670822152641456672865436575338101781731085848566205042144728734578894164153444164729565742593799888433718761452862621795384738318210498227546950794552559643451716950513400494752609431013787707189898995642410703698328761110254194588748226947176290946815604707402340124194937268339717939547263969883359888246795073871097419538604953235769179533205165714587811467908761165463139847950163005677756600459960126223928510651342674504584834948488916857583520952794577323268465417592245702172043525427375261036243080772602706023488674578761290286330102363100541617499201850480923596337997133869650671802651455503229620838205510077350157817970020043078642954781118221935231554434434078602837719424411628128667076654967440612658705648389059720317976088388485334053876305133433689646255506426040102563285612422521984798121491813440583638947139821774564790697753239422704351208766600002232414115135851944850361720096559022140061830714892913889321501146909830923979511692697801762029586498736055671142071450897294056616095092326632556286491033063585903356861550635956846548762574050119262613866251019995860658451862660468065999821306300198593487859934367405781556874359951343357504457545517757795004460952376544998364821099909843046090155514428819218226570680186566398175850501144405062586720019120452951213038714275492464210345331331450149228576418331083628629632527234749486546321355445491875134053206493694956463021838543251369167699782519849385293396476170318442627471460461068002974757810529215122875769509080196738495245508408064394373914780455544546836294365540108475043163705652393174830580614992824576824937740986786982454583710188321151798897813085778752935931407605030501780830545529410744277805265709660323229452447418984492667158946516290892734575301790698974809349755352592512019233470078223891109054078097162407646857468071441346080840227195334870697420193068310108064924874316166868628863284341865372752159079766216904327453407657856869761279948019188839649621058476815458638873783832063538141994668396923936387750580652996173533997242662047472147636860144442870092586510266506331641678985172657062385415765165169851595314594502660454455222901891897465214271846319785679252646362277211675947563663632872323056872587448270999958371087171866469788781310490611291577951118408587864520319413014358108071554037020242733744420053928854198830178779643959876731576106282878706597662908294852738090528512367313971033367080234265914419120298700054724341756591470085707329886652347045678740891186433326730225203220001950204758391826513237972384211177355421386370637388280114543755406317869102256446310175600541728252353220847339888323376389640688298042378672511760953057396799368153170167870618037478785517584565646829865021333193393876943181998670976903289169674019087032395032249668625802628008691465292178977385415081626623612184388813855357500706474257897701143809686181213946860333706645005755300457192161787078901760534651145317612647660183002915687246814484406721523157200202579904053335735037500921828957777738872807631784109067303199762251167699299101322110426405943588977782909932037174982207991546310952987107240015424935730171827801230426999331413772913442704015336225652304073129919110053898550260494688760011091392610178892839219339301269831549160617737661304900494019409611243612849124804879592679544647914183156499565269461068755023519180881784560470863614295169980085037467729408934129488338803661401095692320003390040386696439355468129194145976619813804056034295797875543578722746204498505913291179165096873762151039633968334963951996568263082758819768112558271547774422262677040989434970251531354838498392769832274064278333814564086718698864302311187005612987762340343013392010436415577334424929638319613048034296606196274810539296139591294493443969076067731079468325790857530161300741908612180660714464649322096950971392211714455673364612248946436094087519718567682942692465421304231221515216395447608189256040030728590329865043203313408397683111457455099132921920872529725039041518872885748619044453555656034838029014312255418995616955348197907754317081545668212669659678344229416131286019605415085263299286505262905344850834220464844139191056264453744694768378307654840042519026480761912256439103382793040959208311880895997792335004496653257080932753177770585538733885026238098113300461659059226807184742278471561207553725179326834670601683723609405825039979283717086754507247810883598355308473210998473524072500589376812347508049953557376894428668603658120450008213908815317931287998517647242200451417934995762137289758074922425270164452053807542232540089474973431051640912351302797942574882740883951804885000184183892816881632642560301838323907576657844245885036206385053700816231469087289870450801586804783657026432559585014297000428642521804421311525763915749683832435155161138205978070371869509429934124421008351734157602624313362661912169432084710804323119340468174376767117191111834260401945754929626210832765848748406171700253071185652775882945902990968601032558709343151651814932225043545476593795175107946973561765526359351006248749790576666890034174541235113248597175429942610943160639110247164264467422654964586493189354757581869608091527679878906597777035392622866236171775031754815559895999759293919234751786712832278002609629625631536435833466442292587388059041625057580722498955293351506238968176892129487292991527934553923937411180225262821387897545121138778977557215684453424707253480885717682452485553668426361779731712242597414956022994136036430765983434955438759250802930718208202625116799489681878817362040608347403069348146473235080393853140667640560674332053919262820416445609323136768068024403361573297340978083864816921039323695661145584317167916584932706428393775243501887204155516006012150063707380753123616519402756683143909537748531406641191235492183193630068580797748246097282629782604675020668037115790842192352240767499400512448985447483169147275312117144745793723226013292957141892566846984358470584815534901665983357464754557499998243835899491540798885595086042616714542045339506038002680646350707164829805317794251446489572578503658565700405186551973760083615607952418696148722719042425271418158951684879378830539886481812253777723081322019649310611195487069254748643657919688024197428649964387144276637482056532610172406383215706819188776715455704492492851569573709599241859532165650861447247877122049581163835854829569008467561179722682316412783527042923098646902640418237285100503183065590559706198724449182539840668488963131801443947453284975452683367952181568011938532607322117177890828596623141646886934183896216458281611717232426333371942753015341814543784358172303777911097721482533793700053615338641798698451238221099579117684431235618308679282406222873123287935183667552452575988311986865726921689385683913107724490393460230867113369957445827887901497262839059392923826627020650767644608813117071501630365614781502173581258793953212107223220070794776882703664433671022186621845321720063604282516393936380401849397722297295131472241394617804032387641300602057569878625782722184022293876248396312334124306362433141404572869228203542942919622906355517103354536791794065805107229133929778981510842908023209814387687052768102736109793854430982244090709708300532461575898665882336652200490107317249763783296560678500560975509532692759768980611198970020145936718230011230363771422455071055006738019497606600567252617827958021565667631215414407716364871854935498800821144403064385303687343174823080345759787871241586161810214248577836131864313673002262463157454122382764334444304261003212046123434872416348797621616240680233417656311229527921890937328390095544476808932064397975790181511050102425166611152306581815879295235824666395529514829649781462934858712835475167393727361830073180149354279460663209658656564768593688627506488462009800470960622346462737462114907569879471957620569584476992231764422494415878569626341514469764296942113445606358838587216541613438913928820312330928012217284940884195701861399280473251545951984401289204332467353877543837182974613296907497600832104748056494399275828216827474283031075860121347949714251504462930023806895209128610063854820675449626858864716930152497998526661114297878554714692593786042708914397754829750098060250374652504455111467581142721802449605643511468403289967567812871064535756129679687452751495511380466341360531091647938650779328968247125865188934984897155093647462645870945773799692017801279722465819954319220435875875546787469390206657916445405885602895186447508090130385321522158865721779547026865207730204348893304377147258153455650699013175558102276877753940626426276270926415651993456456598395601016826507663894248893871339727785720512878132836221505345410259873928374495784812333986814630712048922351431449951836829855072266210001216870401316403764451867889668387271181658349050664247791759702277833333497800856052625638487894123116329158369830953604062117217326218038969796360696455848577967978884922540608980098719987324778353771097178295733933906665467954236447160618693314725300223432549176948197522182896864122457809474147011652505111726223698380735432705541274474300040002217304305822973109282857644286688062814109962060305627867071492931229671057490503409577542043132477435192983009663551824527700698097845712418155649639657753186287931015876079287145406251638192727709708396558348140577383835652210495436948876959897224580913237100108889330687759310111420424573066667982319774252279626155538762556952822906105974979949470163034752592218963764051316320910242288229597219484653646694127139710573609673451950654960212247982843531668133098975489954035549830643551485979944572029756372367464098385605041589795219572874639829073840516754180244994427758637793189284747867576179138032308523359175268056188139055031663462507387552348501517793646080432149651769152692077077559931417035452311144451523839825209401645808228131656967870689171720226247213540498676195688997235429621616621448513254469396888608974145470616571797997304664674522802748315664818281184309612789289254242874106758251635641265686252626019514049361586777343466577795072468426761933802640113750268462865255852709029158719497904342396187804741865356743579055302689189507872344540533855384163272897897928252598877846244358880261123712252598025696518522228452047865836190508444760194613245351932410154179651495731195019309765491168170711375579454548249696274158261305111452698562714142957768982670600519274267393784107337541402715933096430875699701170082295853973181861112969390459811126915581483972122797042862956124905651278030715349656623110603166845954600978033385625751730177474550887236979092153556339095804329804815167350829670520017958759484564020649236675758779389526645458449093699462444001315834179695953710159570498299691683078050189297565402885122966304154429596468645956830188775976542297752759218637822341342556586554896277470768865198225902744244756271339873960602743188107480385736542745771605634805256723695652037941059539679566116730868703297957658037419827429107785350635046650778975000979367007531275729589496154894986434433620879894325470746517702991113480240185994506911098486421103927291401409332456718479127445059285038506006432003673566544616569283234774601728060234521984141993427457377742323661491992320007000583943853880213983154885932684239788643986528268189096479763681291312144443167166448254663055757728372561678794881389071843849654344837869384544641715773310272194591852409544570701605697329065832645545201500139467825686611918270248050512578409908985731745397115402442917748960071793469790956333224022020555623279089960938580922516757027019905774480545873985331763092549716395734713174315118124344984028746001278877904641875546994493919411400324815202410038460977574679588474424573895686932277579754530063569112479829015198026580511670661115350767719829581592000707174763413267663222826606215281426735015016920707636656295965226298333850106673671679800714365499805446306321037445417985956327663577969246560077164301221075224978760686689513578176068536623506858745441721592500695991742180884097468156027745779768769402937066539468733033676756746375965611034757629987041120449917412807571660119208156363621972846898732283595930194907871189298521662974266180521830442402667353771499920385583678411833033120617495712435025556882421793189693310944246718031329042027324937297158131434786859120938644918878758799631982293505450930756414927807893048800243720546496854266892865060397832418452640682364668516430603946036677301240751809295017344681710449505496398539308367660126743592268001694684973927074308341094640581575836702372050779093028436948189055948979439618856435737018602269470912111562377020738905795167556031940180413974827163263471248668102731469462020750364606269118850644042081353943368107370233962252043169297620509372791421501474132445771428011853890998513157444658010130697356236667961511170206587940587027307387789238331201580143615349984686197459696181122144207687438501589138601553274644455364888634492531954741033856045931717670984706167834441882834137425532480730703452646261040016799464208731617940051401533771968479257913387624848191767770149532734259909914642881034663954302466127053748846714502500037888815936370960184409181469626039385342228440527499205390284814918243983155591566784040317355955850642132523347013574686844916257206729505759849542946398259434630831290986652927292024836936733127212488114575395552661083740838893004421873828878112012097078235279561887370195538108036752211630122876162411269687838079027840126046210953752686140790925924596026824128395526395442298652977201107157353844868463874764371451385920918813978620119658025301831877969243792661728641979026235764442203215429944634059889797362488261614646484745476103736595355350015366154434739690367407108447521913803642906304407628090976138815476416967157056757331750319479927977725786018059706672516933694704192573873670006518920711946125224964435997524219784856909997788015088346089627200727966498828376264848505161032639915447801911672650273967937409686555198195940728325037077838285727546321527629260611184504486797548700294541203534877412166185998248003228737488163796363082414545315065325043948018019699686623202705649443064062035699612356200389837180092028986990784752766209006658405002184115758063525686399906541703509847977152576568494441168498437910486285054741676123219359857043758503930505144076963037439746134154057713673046288298599047319106731100643355298498989237167067234068440770822112796859239787848829772625471778257084800619141601086279033229140225858125588838841856547245170303061520178675957413560899880612713958974600357137486702979863192770366451145845690110859007574499200336295715885546269339302177556402509062031897897177241320755053774984508549094895296085875145828641716488820210816026906277928395821277625955215165333654946260256650915070427802795418038251181528567551698703213024587670675713121389097225027301614637084400000699907157279160115940156482736616752134076190363633971648395055929976364097687782928374641371933708506886238384022002561434686466283023798381563927253367292798436897902856900937778923416474325093841965186641281414764165688834707226897378904232097193942851387513878676972562479307301853563225830275449997846680943154610486189253986939435951996849685178795809612523811716519764845325066489633877061107933947662750158735074546120087984933549420056595031432607501621384861070391757404997139537400800238992241344846336056343962744028809486027907551284133508748552284334667658304787295960455385659672716993145971776874327944358512628518569541298466293091410521023477651744421691541539740042474675812760697192312105975902676455672524906209589318865917042400447892486115639281802187402055445970616420524621240068544969624907058119772052054838945442632652831951616647221222629134194097840208968090332028737439378035042251186376764286223965955169102812773417647106440788532028557327889452503766922575166099408423319051845386823487602816862695992382696980923280006289042838330423691392882508035281447262115828366273991987778951892825454105872287123638014458467750722169091896000777947536114472588067548070169644473559088092386550674563458944044366638906807964676256170757005863780216646128101799077953996964451438649038861314461640010569326433570505619131122433986084085150775775497349924273161577309913658062863066384322661150337952926245071794487894616575772724359195115201466731740951195426239219135651364704133047159338932079694607873505072366141866667330448292890062899568215737963448291892598499997117244358897146826963142092666907911052928557661444365290798840987019980087905935801623496169215618395103508594194480352732272054952359594300860775046878162807023754321894538155862414222905218506478456048930303525414696732023507605486896395529891951114768430349863102287051719703692225688320158083737832100643636495332167273525998522815551856509835316199264085820357561163088661194710015584658744060113161560911245207218815184954164426498652620381092528601765925763730442479668573960904696393950358400366029364987229590047904589370346774897702053098711525713736485084258761245696343214463625832822676623262541827119414295223004658121670916475771535218522106791750937103116458013699475665949697229027026173810492055914089744789706402497945060307054376298531160305039924760278966115614194552790248727018327023045506984481954017291903012419346563413800255803251377348093983691954363683199105743131845908514304547078343690803364402311225814160662420411536330766955318055081992623273388911009240960307543591992057344971860399787771371334250486716398400770631376401660268161470535234211828114138516630441478096268794599734826347086560824027293568835354060765641874740881603177170981388190357290376661310150456521564341618803063441546159696043197375246141902972231982264141454610251546005920884670225682325815512277385663661239311268132173773257147863871082181875733606054623559528778415549293987145221089254756027909711292958636320586939626144275106429791998820388903529446943232219027291549156949603872983801922849351266066741174209345617832283543598300354146462574913698863767693471134875442722382026122105281812621202893454486205479697080355853691022643764922116633719648262518542686421962434934791069223065522034746359645709958425535140019805412961038706210726470605290070651273669777291515517355375613626219596425679407977624627852347280137371788957873806060429950005477888146512232544329167807707261409172741780020284832058375947646483235278481235759219962066365919977618477332442962966098673618471434031473734529003020969007160400114010005188953284376089558049160610541960859892016974175286467105051084410072999075050998587397378253909554634140779101744584082958035439285400109536778018369841944587512126318607284397189814768332608832102037951217120446237476780903260971226854599204155651339965556515263487453243037581636052962863328152845556770078189897797675131707371183900843515274758788422817306819559247307486103173559252817881192868220786090343410020698879640809613715415126338952185856105234241572934017821726698409386463971523765586610663889466521686206336415717948738741148134209227400174385286059363716285811642748231979435332815492537963396010298615716411457503529601396564386585460580136270698406830783641912560825198618154846269840845752519541016144911152600438443388130725631170396759703702322971039832271072856833411055567579269571119322249073058640043366694757728023023313972237734362574483336474358925084367769406038290903229090554313564726467555561018871805725924889326425062293368626350733334305834800615311448901010893988333276519483071964051711996354192672824943579068707162049647997394125972554766746052822249075615867931717291900557365113627228243670431291975785547773668725803035289657216145358066340952191283268040505045250581448194538488161340651518322568023119464336484030743271526282828938141589503474093008962249171437285428071169015732640668695377735362826521620682387789835822128231124548151716793516286902039005562834111569120951855550736738735608879188359243738239963501918492602856343468478933435307552292529859816723395200536979369281030171237511501684592217683759316301009512127121751646801887852501980544091165073289037223773982682893610918601690652092578074550346144951272409364204786652882499400346354995931406316524920671541846073213987109348551099884506134172500391019750961327969112574446634770521202747280666443844214551512619780711334920844804852321368575964743935816628109403208223373656606469902860013691451985344604109546260536783150951314802281775003237303333528451402847134593614736131799078017708634967126357167099837069304080785606734801347855443227096368115711765793753379464622792981247853108323624784425158176797771801525915811720364533717687823763443299676419172926259569618394201430261454205566666783882845685047819186961895171354418925769985183205671218373436131717585802017277996108642074125811221760456576185282262655375238009343698092460792346402672944673131860207267247642040456074551890727909154222693540461689647855106122561091362212045681324018890128021637866519392678037709800255528786404426967493546844746631465014699488217279586136880981364289757854407978203648787856386738859776922623950776266493243255484069239328058720336942586350752469540014958965553694043219890311704096676257214100294666151446695409884296386353414981443438769768349328894015505443693732538717069040817865500425223967360676318153864603622001279935135869373571011546978396940573609771216187631290689996458381064383596533916384775616499350162434075317513499737833818828974481980118551079147393483943230054423022135567500335224373775472393213736786026895498786356070621914515219918394321367442372897293816228151669657887565561023770794069210192332327061445411350169081463436981478003797399278181076537057442947087282624631765711317363344809577999392437261829073941089104808192482926160110073906808285306366869709082849871299702993203190702178593426828156071180312050799693536630282257542676648793976065540142957810242409694310511714147960339388630972399242989027129492235811690366518459457850342918996609409669632257004777104695832444768043985537898754445099910436453118622057918815796410462899981299462561911334000883409182579588904307361163130567398634022165197947947675893240515434576621199889138859727235811941282763669186820479250607064050021807024068801734026854033926129148445905735025434503138537105242427451725773183912035050652032993221825871361988684125741476192450547700528144733618271548911910037506116814861821955986634870171819615946294660469313451534471695428703017801947982921866043514253486966799245956179488739831635298936571543779690828130462741305030417957287627437933483426527175664033221274977367203217690158246925302553917607185025562971158094142296436366389529927506154167157386238659069636086491235908940610255006265432295339197238319761549906782441203840725332488934446512835378787566679464065583785501202187461718436280640605040297649732161452585178636086697048842293624798660147582367110759688102219969504988640258536480050570069007112965235424091444680195422577177883838876000822940357534952256476487955831488005930990280805155509972892908317994980291761777283474528547078624545758228320450945923594575367936370775080262233699425326275130815044346680910102047414594251101290343974090160306266619831514894704947282295542866659939423334184638563696680393664569966905488694899059110897750537294318005024408269366227923748533875546355957302362104621196071025345714961889492523022941041718709738973045753098106114438745140466339744711506533969145722197482648707134956597526637717689936189630306333428386802437799512375451058432863750972058964407972271119571187863054873195792221160903552654445609278241288547628214812546686219641551458318930320326264879388515463373060132290353083563139227401833946233369235815943706450833402152842360407117387740817381447716456973418444784374415100092893606305421677213764149638387409812272421245549870930116133652161563804426208930796161258254010403602686817685895083151756108294836407184477231466097303807791591359345627000490644969846139590384262230352456892212528790026336060891772686447881153998869090790160691798108567333061429088078951720672974063284775951901906921328473995949074843740339282357048030819692791446937315447152704905504930158079986422952291992737145034727270841979382448024609539828185365453174563308173741423497902459821099505503540713015907334745731018622751754194796497351550131437962978090341841707606776164892283114413562746816099316770194927016676024967319105112299701409990793215000007080203999560358373409010973540138685346490090630557634246186735729408422355766376382238850377250846684953254481902642278046311173900710475847281071247462847144925886121833137848705907088887161647348870700041351704838957163468655340680308500773589351234239252628130707003756875590781363101884812963408661800962417980449356675757291778569055457238155855927813097373065189364891744913060438702827696710856929276611351624993790139379037001311892326231211281758415160345002697425755909951571467068735866849140352875826836727675961688338511610987058841064593208815752904774942967171617681456783798669772308636849031060573380916206765356328968692952985328360960188596475717746422025928059609503249747380472487078450083628277508695103001302394969951140243826915607325996902811245908518405800075043544191089005045189558226620612937058764731127438323352670981828143383095334554814241501710147590414014557477573593527760078538846939626058179158440365120034292234769681703961463916649501701431301222870430170159474277719055567215949129830423440033036334750058862296188103723261682143921493335426701614513023032386390827616557771243773112211252358163920057790060679530167605569691057022024442663475930273103151401064319865289807923766234099415046531291580424056154389823629420776855351270071987983178818553252080917095819944225110113822785663645460474920313368637665363326767813242599776552754582993443632050816379498290546513720051495704309161536419338278235905707902583184969068302166150881143210519528706117387609291975568847750899346009542719295704958506169001117617936405680281745643409011792312154955309694430810890173413214243893261700383108299874105453622584540265802069172429477883314278438143795288669240025445877853369749968394703645785654002821724575736493630085025376918418694742356535351091049832654538904864859083999076474678259180643564169501098480725934760604338871383897223372936572447385478711570387964919579022009442024113137771472547858493926662235292795335620212188434358308430029424802188264827387523752747026933363873313954040638624293867902325283978478922768553483313664165724733475048479727101677044361307335355768603540980207190764301616240998294067074216316547776207534584438696877264769116495381781548391571750365499547737553465859659615262170008340119996449591894680558811186897185895321167470467514231734682182763846694927122763691772896053115240138207625783352920098403192451060242723619045098950862275449448197476144644303353600391399011116345773427247564781960883746320978621951733909586739155250699277532752842815111211545423146261157633943820208350487019930247891890409565414577214113359992330136120235002213787083266499833281069808319852683973902298926371972484917874100732949098461714002517897815954237900346115174231513883146834732324701098455366973383925167435278829224214367212510138319885727199398946820989207731333715740617989373448975983071417951191609690376769954829144771826299942874065940697904533539422741791601984420750114619411625809757103688718034071493264334228435075855292191780836785048633608101778534718025676612639226497467807657939597380332224196899821329666170562015225338079828428205829485059239586619969687329373137808165607661718045339051627282630853060549029017248718729717729372514878843592924820920162835279085644905395728314811636746635799709951634637996492536115943364064240878395801277619445210718137846979582579105483507759604986628991035909425275840591201820193952926362533692009583130409780897418090470053251908340777523118472456016527479431880062352008634950495371778882469056313702796594380123765174283161951984601594425511564460489781674290612987503299201521091838988597907719486264231534480789697125483083101330069156487143010435498994977401175876499447351636090831066258793974359520408187114532762233244714429261043493330038909151538937761152813080758700478767301806063931909442837877650975052404509730081935976781146251404452766586870865352874309214237542025677859291122104256686716320051129463549268122354638790768517168753719649984533054543264989021658213909083178940241831337347452332422310466829246990813983257809059141144466414342652843891798624393758839474200799188809254410968448084707598838116520211814732968302507070286116336683144627862416157802731768692552558534735994540142732628551016514871992285196944349061875003096444888036355687563862686883959491792147812823754139450305807214480343587266349393400635130868249954581995354972272274043045813627842355408021047000971968556476668258055426156150690688254933473855236306274867319331698004601926678898949767251587226903007208413020279948873441394374259400353694658634018233765336302644258043621258018349890157420398094740484062693062225193264547170490769749087488652368383383922600879048509178789926010902760753743148804528297833506369199608636501483575814050456192737267119492302930805160882724059604504037691294501986960370202644026347076073955139090421002020238828797939221503018097899671483012329457121064375052113441056908349453786976003225998159386177686116578501276409731431913102614929384223308295259445052099580743242204411599890291479200921912657366580417964023212101328800515483279862414264504997685354353154346396398312956783669197058822428459382824181540514537032720104372248030078420354485236947867580753727425016625034284311559565104417796400324060851552963948838603696771246535952121095818374271691102353695702666013121130312193300085925381239318252569206193785446947029714457123660615330408882064745129510577975577164395205294323506279753469889154086284229922362440364577417279424344805850638233289060199349386788857105305979761591044671511927045858984160711955778369187638437473713430937285032442442342894787775696591166803735872803919579480414777335601162516051252435177612739778293816783122215871966558292168164007322322830256347145784053384490839636963921905833756127340059383817657701170299324002834062052115690195739025653502991680994401119799201143873805630466939426515375511321391730736432577179491929649190851086821956235848677220147356682130940448227650027051885790214102783929434654200022445804358807463427704697144100242103033741019261148952688492891966247842891887496496859230600299177726854830275712800613258884809350632076957792993982496644386104255813256205747461725811155331485964911799545250999621075697885014545431691592708162790774636839387138240339202257666104591647719458278630395934283604387110555862776588041755914548168278399254634935729077713033759150585326231457885064961837743019346710458743806063537984833163338914332583819818807627260720226371904574681809549232471097514944361079328714737457929090169197056025555366691139767831792773501447372195579887549847757242578140736576525549305370502389194554630729084893503620958762309800483331511008421168690417949447174181976706290643818517895573367414673900602554009098495019457872140518737696412316325916536574579862425115542629538061608764709698540191265022974198847969519394107335978739105164130967850381211532550584558564379419157991777880605030880566436337622383605181273961046347690948303664995623059688821447267431783250433385190127197633117293336177451415406345011782328573445763695278102974592374848806017556882895426884803030698371284619632818192777342567346280964240094775683222599920194771975755593637797229629049075395638248861181183806545806017898174368580557311041964367819971683327083758690315807801704875446172701265507777802731410652970147211954509538311416674807822712270356985845297235759156459942201491752859545467036108088359354831981557260455017028803898259943015735554058723167973755855191800959664544061084279446533825561714910821458041178518039554155090822110680430780285112357716062052655608301682880176363285656821433226843765592435040121689565594786093672541348421529056809928776971063602347849139775773131506373479932527661598865559624159100961737226738535289503920745912364076846389079766648820242952896681798172769461628990834972811145872961021584583179455768955286969208995375484481496663689989536670417883999083240704503303906885524476730105608437145278378304897851038343083315279297111881469680995815698532349481700666115237830965323984914061507670927095488558003202441376072098158436539858861852547224777196656602934773799990204219592705943689868733474515191238020642367495957523092624115497236013519141319578246417195131818667539743246106664231691487736673393972018135849896700366243127195482509077987900117177865628274214005717282880473965517286390059687643798038570103947529409213701777348693601796501177826117899103162472472746361134947209336003310825498786772624363861049785077304591033128318892346824696490504116726797857655130906658666298284208516985565976994051397896141901236511809166274108110961805412412551557080193689744795908774355508253981237257086768066314264905365715786364354699108990793911409648304184881064621594729980344289846228379319559125792311285840964503218266267323482411932463495895080269741564057363732716475194511764170577461799181157223963052737000226838571701661536307119306751847335596096062121116147458238260787825729399389756630363085787059622181825985455938455187510657874524582078952953325777089298509117884831274484745222347270039656809242136849170326512749151098346577587507582453167399636531459275440859792808656463163881403802216501190925408540951956737698966699523981211879056236493414962244054398888073047795478187685772926711105161287201810052017217795723154317408472336575850826025073614691298113543628841253948563227783328334608169691489970666289370271381606565304839612297072692882155380327955430813995539540234806874364383807270631474135993665294721807691352137179127788470151415723772303835279756932722544069884807181388933210926700893352227440123185184268182687034466966984181995980751790274202528347876619607903221429037965427065378467406845291771272054822777302893283381833859423469368303392868310626116418114794448127852338582679859906494051357701410924259416757897046642579592929179821360548459547892718719211550925038812179646273908446279561766527248651461090372239219378905831572444739971860352980185301072613740603186556938523383102335880039510663859217118032503735193088758928939006373135722473605129087351076395057600979863663286265143110627700081161212014675052023857797063650586721057254979090828802031521019551231125724577781125951285083381888455886330734915956287288487119045884412005433664690040964583753154741070715796624492010128300703148734837878702520506488358070088384492015975602759016207124732380616757528615989527291611503924583010750299125479349890127986081772147377743304359841192897958551639136917431448195304974135267524203595948218712404828647394585687035265689485871599444215047327893042051662320136893492146072841564340359359951131792785472048908254555790267173076519572225275404924433524918712942662720841721968952048340331166880142907681210018709406052002152394606592661453170030990616690110604186928684618756473115102692556876232478981771411729978248525858236722714248153162248264777296764030552082013484026558297526873284047534790471914198914142337621260174089873607699373226917934616776243636215926047536472193299394483535602500954622318358643552294933276058508876653590713402992217849678072941894995782190863202236647553897214289924348110067241722042198956035411660223529547345502101894148469984276756321608595248771872494456815833007492566252608016207714221086173270590051454534493174826142790763682298851442065460990516380202663474836082680559209689257758162366233723686163665491979777391887052037740199276647729000824837074414733120075354884375567030633299571077617364457027919071355971799334201644070961829821375111874705932973111038776441302415079275681064795566606651762684698123435241948175477509905283892605526797790310831410102007718870909807471082407517025683116129905985259686246007132010942019851658231859190911206148568062637065032282145530104090288700537791518473695019868689526160645445235697344099674306290432409282192697819172350663068329682034166675410635565065040012805291314865717210241757688465721112422404568904153210347179040778839639662502948378445333950241169653869390710847019024460999695999690206835548197117791046001463575345457787114114589404195682915561065386698017549161311395728920058527733530346769161443323403814043439596904857663604754484583962215607581394288756539738868836261673982016963746856870646587659195476260179837076696810353914285442456207069890307763530772879004447442244522037965885737058340472977854298407292866837138089132417381573363719122359425819527597588515939508158497988343667730411890563138964535046663341990406013966993434771213836967399202531908890500815243319678309743031693294279050662068218364404377128870891224307348794441465716348736493599677228918104893037204223776568359301376409553160404933848555902018858538786884706804288368790543589713831403807450243840540456549230609350241980137843651324241585165100303656352999872573242491161189612127558326694908124752832652703722635556772449760844976823748254030700263294825450609970443726293236711221830559525212804234232849396401714733984347985053285443757379677297663209054927530486119561459689125940008683195286859793350930033558568330429391406068223253894228041519505200944634619002700983872406395672167392439801647505182299071774612570343553418487732428910047801220626333823597966996087602035075168327122186963997072878530610065925541186247030054872545551145619349478920958330988028955004348542651266774940183317713552937391157176822860747227025620812265903388167730791467057109641712024752049998149882413854180524352338329554720448712970590625488465199051186138455791449642420358709976722970824024098099507085748676744957577703925065102362556594097286932795098528836046151248983237542754873046839862595315175785176854125180790593721758959729280744914006217618256088885438862744962846726400122241022789802675056082185535059570817118643058905364930115755084119638179233311999385146296606193231820153132946176726165495736487307278053081398861635159581698000040302846156523093760062817579655449935317202422363363225296099762579298654911945541003236161760439200895313012858448874146097786180197448947650526062798582535381620542044186335570498134863782919611114635287254295148056524322149982250735208927922273501029191068534184348646075672189273118726329136828824983199721887739487588306923250523967493138314383200068795024450063327887861011198752745991555806273752047198299702789009315014379132903255550447104422784897721872676903979884991526284836753030810396470342256686290282086071061567352257692574565642958349297433720566643143560110704756287914317311528868904276155726436407473580092639976455075707726041524598610417349967823195453198157252198966325308417314158263692200202552081262301295108976984738010214016679734679859256544709666480898710728685784843609178559461008419649479997347495176230945506773966787471115684108321640937667898223996166630546184000542228550005995342314024243620715541397948288542044799334991828413695557945431354375234922983504010605351865108963837631138967708827686165186453865464109046693543165663357059142226667367215993438255766251294127154541804177240958517412858720110212318369515164883033833906539489130157526804897678772123798470649833974787705719937632958307135218416805516224041651475246340015654170501792502515709955674693932888574519483333269640923484435456380988534404216971873027046927788877508334155568991760417321592293511039725756149911935580384665837352612209379748200101436655197194695608577717690985171588777174491647530492910340884714025359834979244185803540293818563900646803595694889487601868262980288761995633642816170578877369228338295167074743015805522306530980120850257721795103256491206800668894975000999060936483946270216261263864413243839570760011049845087517580831123482433386807522741132714947872195322877164011112283068841580490115643460740509610177895021619075221991507735836712347293714678500501083355291221426764851626880795361791510783428681778070626257003754871408747070229369301770305953473531768448501117791084819045901506750699518495263646795911336370559748319114100649870254888789443889271678528510858050841289020110121229739054459009119026329314426549486289748072204390585103129891125808521559859455830863889195084125936775166345089108354327079611028226210580827191071600916383385057321190263511390602134367476911297965012964346356704832061022227164198785741317603662623872800336803477738101558313884001117710170678763802035236002757825114033612076785203753562282003352883953285788249147095885479004883634165414581683389061066475885251760040755655632206340294650892272468157776134304652280269059578013387712364043452198887641126212942126767127321392529525978721410644235209266804369136391294600520561955921121844395784065074682479529184622087688158285139206261470537033006442953935089799711558590486397677880255230514589623692644603563722450393964723120468379267211759094571164045856523187981629283814477349181296489961604205753073707119500211740566813503965132194305046389879052002499951669892979759865318326103161152647277275487188669475282665642889954772609140380002555381085884076560233573187006182028337905341955618971666692751025028357632165374743212024213874397911812439524864767785960216338307694291654371073510755805627577711833159960923684577793292341810145597579101205715752779714049679560937382935461545904912259568622570536465977941875984278385926226300165162975884540704574303908129510782073554302380769778719625525159037369173086558846977420474260694922865575050075820010763617477713497655950332959575835200562134328944994533331999915216462543362360018475237459953796901485021656133353941381932647677207804967121837053817487274478945675720289242764070061595893369517658954452734286035153229886182325082665181071876605870553059781778733822205040343499163478602864366103954736324294362927499937206190330195524055986832711017697803639040385178961392458433478717763538954011793313442826976726332683182131338373846504913630415583451101571734454911580502557537264773783187990483109077371754511928514644064872743485576160608995817413554358211189017583320190235482018394458405296433114221575875808250555307865423641187032679946591309170013414359137482552989027805613192331591380473627789075448179584221017927763933840647103252622847339067230978131635060654234000871031577458081155466026513566612457429254347315444101872299641138414039711902516007011540405415735187040508995731175397581158467579376842102051182118054106684246296206003005413194780905630214497795348484476795653119717501215642984945657476070386587621218650787192768106854475998016056574350138390283289056935020482136111923909773070189335819857783076279299348992210626343092480088166727433583892613036358806790057568135876173845077805900550077304930511905319988473630947275380567403704850975860615639090842330913476082004190944524748019203521800231771626407262104870337174438533449724818569205228063680356201024520920180530866833157865384318284630257199162841884762937531367299104362096158166272375299344894464330354215695837026863930359515375532642908042955085354675509201054907944984325154708880447667208412027249493872836503674587319380009762791853345820150645168042910199584695713921021597235843066495836477246256456737011510988661489390702233987775088408774843454091459652778531165145939683182538198733759836820976830502048383732229444432246269966093178305365866118517148656908689325445372379992337590611249187354772486227723609934381784699842703252434699888847780364817191484653891784880325610178667879994399754663353980800199059340361271876166349913670840262426850474110270963860737812721198918780726579066860883337867467493211934670818338255015358797406424774010795672257295306481245337007429584657273407228833467218850732794019078550600494402511145726912192335115207652413364070022224516597026987629151138877297283205902305969145564845147634881908047477560060585595733219757188421839026125108971720779463633341238541974447953265789557455229165561382794305688678731872397564690934184996859144551246185175181250918807124026080222723042396113995655120289618204797937605021434157940512169763790681740905794786048056027215454106973904056206328917741817819258460019400063327111091444828205387673281750223500463955779999378389488713859071215951149669208582728371578742739047776160855129901913271395745281400446524297519675003282166607370477014329317146239885327584431373593705259354725316140261510806850426314423215233839866106500275715375329666406166578415261468050484411933523226933972646035220725177911322694410517930779073749204025859556629229319204940879516291163193013677041564035033330714529302848701906599515562405201599561963581315245815822759233234900150018967321950705374073425612781420271069432363705993571569285080210193445660738254563321424992880682803712821462700988613508247527747392136050081140370581635464127130008933910235381337269707937489307386292001565635844811389847778349162153543809976604543268869794835797044763623458918160186884655883489805699427010584112352107932233298005811293822940213876984994184506995408223103968786783060766495607999263317845083768465821915874020915687613875549978651808376290020043556246540106523942677974032167380165289031021628254179898004155599707970818129608174004373132825492055331887377869177848871463538736388110537673851479827633526023680395907309882874258312437906051039966606917045571964233609465014736662793352836410054415445515456023965956922114376553052097600931602298622063772651905769226605219129447094710496289356697830678213531443576139233087878853047397251384725472178998288714330152560772295035840570936304319359937574902844937090255134024423046128229578719097717587512700543632312933004365060682095470199751200325944234115168162947281275233202822338115269335450600233496885912139389737450758545882401935085994838582454238147229980316263770969639624721710833919385535407331856017752092590252949081875622625255607460748478197295837642006847249357791927329264470296765591160561917667470654785228346345289329811841089595688213197389743525157013665259811288850078139201356602649028405523206293134756486189135698328007605059345764637923864034344737973510522099108604230753082837193443241769493494300787938482234130358928087449860249060753565625155958033275664214807086092779271456999547990127465136649638040716932391335321560478884752045950534787148222221189915708512200573239452821762243831369698015872772174628004580008531408299005120849496699358080428216962577487617191628191783054760956582015914519978648265325473785597713584168766316115634093760079711822335947180979322292064458055073072460644465276632926174584759622131960070776775512779622831289645145368441970919251577749816865498594180290037592241202212795616782937112147482018114903728842371993901327186448820832604823756525012287160816660435236680942089585987200548211868323577757396030239009505490582268406408391779958326536094683618397795657128466399765105567785997571098847763813934789111577703663555267026874823610494284202623539990232156533865912787011165307876762489596873099656096413147483422400474146629780793140317783847138323315757820204302247829633415063423228479213756861225531946389757778569462709015423938021617743023397241826784945486440105335725105031734961053332171953668862861085052090307484221526258224756345229511444644829310393181209692020930758214336444054939759507770561654581108182482399746189770748704365653765878144551607551747825283770773898646658871582635745726570231232535993518284397556478935407255433780559138168982669252888032061512232068593132008570648788772970596844595142668696592716943283467362915861950805510953837640533614811774134687996556216667068394076995211075510797066112089966832750428797083930559756919782250841397293560236530220340850859945616247099419357532167848940941029483058181444313603384725080064898516952437589999489893317367234622410194476798587902676748251801515542517233995630529371430635103511430103574409374228692965848750006918655791043777276944974100237244124353820049852147358287591980668649762565030937945813639893611098891147957645658775098554557646205949143830386065976562876802094799073781912866042782659394494475833102843187123265321961432903478620060386623415478251885575219785119515561877803153291280402241766704641173639458010756554443210468638019782956651097796997030818231400407285484838241992879191091304378637630104633190527822568595600551672923291591867989539705740413931245027615151054668129250007022989325228469878328379819022392261549320957416127213810038823689830830393154398046865284256139429889684304095620131195513518895832986603297840619805440000454173304235260148568636195044515852622909921528817130997192495128766260418718129422464220085968974504940175558591348270681410630219256608628944958131887110951577880290609139332268659859056531977311221826734995433248713472346639793808231462559177680396423259285990965004065313637054602530685624061899090982058382672597102913886755915604319673061929432205666433230635638104365701843523343580288020691307713072034971516987593805031091592524916085241600945954910144297116818311498859266243687722900177575976812083057713334246311934262309132246177059292845979891280931778694604720503406243721740373944873651466928347889665111922255866970153932154710212783587940721832918136281831131168530748297762529319785032266076963083357678461305803297473672366407802894845495657422332844688325102105956606958190567811012178189660005614742593419302897929777414977312286654168255541782879757838783079459854767943540367910172742492691810322398893985310392378073438763333661185714852339339185823121150270460424650080424672707842187977108443416863495687933764418695067621621669698213525498419923409338563122428813066916638427748465073563691939045156537954752028970054457400061114879404828893649773361156348414213016414096456787880493060471718821827910707318643734615285945905531943549548798350715009595035332243701610577187113511431039846191244246051065660208142944151481802985923770199703994224350933695611963331353056708913282495243307326330985786206324653116935805101655763330661942346007700672296433847709036861706294700068048772362481517440044445941874501147497848251517417398469561046202850822765228052099599343131716159910964898104390394110745259649641209836459306453259806150812159423971253896127014348343107881283796873184815216230376924904972828654669511364821765859439069741372557135321772201199753457599080974457215303733079576586908511330241030560823289510679450685218185422877429004723697676726755215384013513768442981116498063958783329976916454860877503226744448686440355791688838630415106689602779539886120801022523049224906615948877461636142386519807072722839304740879080141301137629125827505619271767300448894893389720999569118912928123269154942042550299131119352884978558554347677829093038586942979590072105264413059723797404823682238221236707819485334262026708717176042419408734563207382486778797678934886933942924243108799212427205147712789126823797878067115337779522698820573036581832083325769767625776677353955753375178384418913507864255737155993186603398303044529718214598264519816818642996677680757801358260229853011314438960847478488221970081585769816385902672489699636244440314094963879176232398246744498971333680033355624131163722076292938142461714921542789486853242400573538710843836942244413276875571570357594477407221473332094593247078943174213163921983130091123978776781963527528391172744962865368654901740868070595952561362423483337296370559106401685625060840556342046077103327095610272219597616965159124148610776226518648317814272134821072495662312534490410199554012192309040772285837448262236007411058953732002547720174903342504506951556076138350905373657161917786849237715165708552059830481778934037378119554900414232722180708735382172977723336386985285604965342909084564510592211401331428669232676746218966858250620237179288492568650848837497613673731010560039872488763946107610087577403848142191683323953415198728625121776386773713895310910537632202884324013712864320774848000269708457115055883418314010828987963392943481492577618497622567497843595384661071866131575757815239368765002739345913266489521453211541319279375289682682655784481959143814179304129243562417005203212636982222174242369063313392374711026028771217633967084436030281782354751718180725442528605545943383248709706008295417519686730988702481940294994708937820919542954457421078006502411612187692158134312807105573329725731965587271302222106679603834272548227494384064650713073696426027378878269056728519735141786831572311237914875981172820571439948513770609375736480648934087984401582406500505112963902051473194234591748022925197258280892194521415242621669541515945887530326505735805030917372339943583235099559377583021449782962070774624244213270917911753238213994522280810918456619380061634649404982577292909466089352771623483280750403320549316196311583858314403830094866649865022865940283215000086940868563728212947341217906148856325773524792617879694492472335519405241657553810861966411841158002025603381127556260787057093271783760640517108442307127954543840781133520183683421659105648923176038546313338608277245697566035982311274917395840080828506948722662757966292206580061268168605543163466695238401851876146820806628976013501688825007695635354532223708659478212949711206135888922417750580072825535076425729736716723618669496677179149699937951878840597965442572192679279126462849770011137340841362762387866564504376415504718308666676287003331781865849304324413996757693614425322424402085419598643314575044495152442233117523358124898786036732728839081015089274142076090613556784487088865486842162331155741774736422925215664375854630804490004221558375317904228768585255226128226697554072248300474939522856584584980457428767731347691908403823940779529298915544473485628048667307844118767156026329375738599013245847856024838733184069040964715307455115226376082319477383472899180154769207319881585879547810397298714605210645398272310273459471654475750308075577934738068982798719731737832993487513093026333226826457497752286718114593766344303899035033249311831111675198591205620662409252358910127195033031420192925573334740554672951666715660408596761611820736323189577694563195751937696765435204747332557953301940575633757223430038868371703918026607659248087752231845135224026563850603574404877209614772821193530681067326450603083004572763440252528463097722873435889180729791602912441654079482792440608686183168251197044886945956020486187555056794993148268270420813878697796069026013180365931891691147309244581924080963114332863959451445184619442450358843339616056577942792153081238451341653580236046272877130250220490489468486871137846049915364316155596875082142377454852745862970305361638541343069461920210239595028763815296375643505192355885910152150000862341273219237083945407023200159085529544266814228121728297743583846863656708697031120681514092716690268994232641877282904015569471302619872060961948820304095179664817152365786376079053643192345068227840796178760743091802054007327965595236833174224306439253919290145827656569714786387437948180828359080705888167278060429574546627606944435022983504174337195769322525049846626916098533388171449022274333112149510520509612927334516916510725616345599959527018012030585383274127774648039659347775015234488702550918182670461340168383649280473470021753512030370909268919294588316208283737424391866981573239716918141662935709515253952534153950637690218244065625821960600414925572031756142938553435690531576485783934741611536385263513941120721248458885979013915741877109046854857312152502112980023901208624610103863982492966059262697117804497939115533374179528243246554519749942119272356788508000132549143555343380580456057800111567124265793332086130006106781820152382127291463674436621734935121042091032349569176958970217573812054720346722848653916923752182431145591768207935823517661700234546371065502706119791774019211817821555787751674324568613804073356834538220370154293278690219147782122491806985895294926516890138262075908788593642867212861500385154259678207323926866981462358739381454347951680046599700854077806255278313884678032654042790500117528497610229501494196950955994768566887763896276079761218769558920865638334320470455399763629712621742741378738624539312451903217347952556229935285513580375155534175300908980271418081337811961011933634063454990199625289326858173913353326707954613841292085200457557901963999491697205654308137489144606637227588862520084243659333965981699050651360139454245949302656999837430496811593584523603358044428803966267603091483764383583469820460869453703096374461936659717007803509210356401201844196103342466819565774045625042231413387901323582935744408848900287355341076182337873054703458675809249014811257014235700160994229949828434100786916150836975304053614919657961547216735124498714549193537911333291269217433015028910955729331618228537437327699889971264923229625872992670659064819697667691022907350314472971036168569218360142397910325519626725002913826016050458911951741041112005365315612596353150030291236475911034976824435131584348588056281016845012431362755549848817030481158485078321117305562676217843162188526532354704212896994191942197041829627371460859005746644940122204728675880837210043419970470077645157153077198504139670609401237310089416118319946113529092495170666540950936514114502951940628543860166227375479547418126499962877805970946201455903134187301622323087520637136498140027004091062107473214468497532864500977154097526043748615198929377935673120706783027412945900287665223977727203021379488650962661684637239918764912067203820034144271187147748690528076464788056790816499042623703604090566548496761075423153414143481152467874538523653836257532291062513422510941859584516899090009563200553451745453956666491015682784267451891469095641583208543571769685531274772848231367515517592410744901883580508664986277918211000146977958489379482697244742840034791212732192880945942026140595255791872789390253335209743900094224013386847256206037573482593546355878239678301522302457505510902071445787497532493223373511498513867527845915771382275081512811790421080698274992606665397094287922120461411893814903359125624657212126497349055955610344536428210419222559027996341087792495530005442809337274965536192600147918738881367250019062370209975247894455845125089262709374886867286464992818853537935837554095745458542522067213337469556901394918690350359082370251137196435157066005358993490326752552684488295517159170712004956078300125067939566644293643542105276258985964397911558064147316822344976670681357328352572745956019194624258333749117825133564377307959515924397064836639405836419690386381879471859904789426672445067055020301368334862299591341388105926220952852450110063825950771427795428011007999643395354189773526528680049088273464619069962674600994285316489807509773929100364072211662199459128335033285731274281946855944306190927129195104364849735769135600919616110748650353360293962116795618456895095820085106653316463876079986630658685799030691542617674007789481586233827005490704096975118140705484276075878376989560058264210768078975638877107081112106746581943714242477760463580753163788745846429829124544957016073447957996381252973631033030316044888876382845447965325790987360462902554045419448076028524849333151860879445766578220603044225896941033644277539364442441143297914409603611512495814009238920147503023235599711098660257062355288373606321064295996720343222412113275577653813599864925729645549568348282039919167980135868601519431372061859591028802266564230529164237259027567832206735535920397150613359592334435663711776244964785336340509138415554547937222091143862071009548798111108125054881262192618120432904867668872121277879431287639032572454830767699115124668340008468397152517821848170156347711155311316431897272369165427792356087514017413083920207579057739431735157852345515410872162847959172906861360246615666546685625544706965984483766195065332071556109945858231945679560605011629454085199632855198489651640132050605666022745239213051676167856881922071340913679989385336386238022487793432363034655018545568904307290125378538034697471846297604727839009135268199870359732742987712284605062199353518056145172736931729753981389969266684197789185193579866366277666515715284872609979736135309718891097552171771137792284388238089851710357915807054140309263699082093051965233459045042564375594992497712721035422270214337989202302382292050886443534482146655819787800468481188074714039528395715264079431069751758037651284799027353207336246562244045570260140395615329459363272938969085325291383081162921126761902786166066172278359950219871231199606535592951500074804354627643207879992525179743110056185440132182129174254284403210838092608496136304245644139589435333288546819109127956142810999885536081434866249354871480107299761964318574036671511591499284532435084977271805816158345599903565859443838245435303005203342489564159004960797752562233342683111680895357406585815455173902866840477180768390965061174987655789638035834270120763169452658884227816704715409212986936179946013361136484446562804111170701319341398401379295613786616135960854546880033619553081058845479818578561299451828369818117239299264219827888702349637196050301002585961892520965754560763033062710077628470767684948061485710604990959454141312240856325135252455146500454546385980752046296800689269666600411608364780588927391190647825649266067774027744963477319501186395381318981900342119581778519565857270599607944117236851642405524146224580717874987970303761238511946230122545129809419634965756990815734439665997500768933124307824535784538246509596648883675473534349015559139047916791433416797708272556054654330512834294857009563765623621344724561073772139733768919607484139530082183814018392173054491432930561079528476361061946703357727991343641391017865346693499877871835450140036781413485409310294279491140356364699189914792472728089437272077174591347882534375335431348141945182096685493845754204083170830911137819293187067330257505391721164873146362235444508225332914466880942104057655034825517304274552060174456235591694891068841386409001997148163104229582728860044923002684136907027559474170054403714127456394369053449632323522756548444693593263224897889733680629779883258952447854163428336783854566853512601535940745355296888975851772644604901526123203771701902364307239174332872428224849611582275139173500872556936102768771836407311340557856119371666779958611799053415074976130019348167465804999074911652929449870457972030695281560863676580910669649625410712973614589775710134326264591985184411377165908053633127142294773608020974992236960456690616883018378170729741749900422366780199330721714082297870707657276698588481889624669934437042629444201858307703042981958807451531653840981128134582810829284395927915735848361199456877586962159061664059469795745244356011511550265311816742156604645387098204154479129500803615847699399855218440974440442272679959847347536258686547418968391464930041872251589376142089032351150858802595307060446528836168976822597847241898191510567619188069691652693705496456339257885454975754607669256643667451170342673693007998193713710561517854924150045235253382200742952715561118988524009490037187251985044973932775978195877059727348765331007821846665727321230012075611669311303598907168485977121097568433363852171481098753555209805803434213411712913981149430734652357763124574848310659573503486110360716494794680191619041690349202977733117163146976541306946779286530341347173185369745886728991268152657837177867583674257981406753321283959429792392257987126372194615964611688115309810545722450341447061722326694894334457340824564881430949043506905284274610050044782823572923770765936766947755916506337524554349588304501447875517007893690968934603431488218243847330400897224683415291774664118937123409385292891301197748958500158621424302908462974468536288392455102192528610441573069847268269886528594342766750536213493152251662287475513111996761210956969998068201561639421273706437623493788034136418262100436100071543810517670131314119179610345365299503928320971954937410707314599048403170564898244002954771769658641949860772767050713614561911462508280786658830920339271254432332449449536371343845551993959927141217571063225249439756758203109611875515130948186918699302275951088501042505952476089444158981040017951585080127693624593006468002962163535910111488028757265081879967779049599223989109144822670294732114347923368737978461404204816644322910064797237791556797097532861713663100659973922423041803644600769377287377923314794646757816468186773372780869512807474178498597414905593150047807352616151776913592031214470381491104380249614271604643107487146965345936373011930218455738375134921085287380852248606404370570004470680131007163755819389361187959600701980648978862604040975769158444453472202607355300317593761425746207712836749522061628204507812416771842454837651300734912788500056931213483651388806119082017479389966011805812021281295609753268709176815807753863396259870099647938825560290578353385696803186153632651211154626430783855461405326671095302884663953154352138776944647977861841457699105950465578521839983684455569952039883408586829150583193161085184534906444943861923040548308626915768484318560985551084026702933649535512142876336457670360282757540619572966955689923714379533544983321665796908719596115892585220492514525439048958434723955910919609323425780916217572424468624957603026494992390553526833733457696820830123850100704852248540638279874155505325127347581361065849453097332482337244519455194172726736881446314442845084445520071065696131642507666150454063328355648819644396486736744132315884354993429877411306141608498349127541477513272008415713022346455438553138303268690759290601558460423098459356487270748639926502770552031200241771359839118214092458911745967552299173722050011410881649230468179436616422235254595006011684343941019630496115011604059669776571485986559003059418035544529009796012601351462681457413965661546060611066425690552268778460753675125590363212224954553755817159691654442365650382321028255389322723648458689078630311021334768298464105691935095468904210716092581376752674662287709522150349221677383208612567207024684327258524510035254504079572915617397711198793288355486191240402869289364050683902243924688260937019166360325666781915453177708001805101051070673049960004574679509617546580307926886693697759490204777693883224803689827662851068948645073136198000207344189427269892593064533384424978674025361137805714254357647656508442452069243957698678911584154018537620696033537314654692606157791993301035110897027022592045059607520379801392045982139076030048433791011281894617354085933858413081593474372512702294531899631533026017307798087355612910702650018052537054546646636580850439803208275113868843006293715093183647876540499298087446467171776848437650079885533592279729276292867839456708618235776024759660160814997068422741109269717745384502640695966072209247272763894305744904818398429860287607802451205451681314572850918434498014040127374421025127636499346342974633272771933741844003866145756811496704903821209906749639371268318676948262379877071675787781347055841474811417889201758102270132630700390513150786454610045941295527535337932450433218909861803785260863283708233792996477375002766455225323753971131336569531220737173942360990363053034481202902982485078447529458547175389066726976771606754908790317621900330505946778296043355669057249576100643070643476237407275292800471775383916882591628097253465866353756979294365310750421988106105247130936051296031448607164457214690819178590905208372120869050826097573034840091143555691339541957589339885107845423561348488924894272538761883235168936034266501364044256307887544473918566907844441714669354899148700049421967439096382514000080039528922689394656625291992930449392980227512200820472281034251020157898910697397394697874398509950766432163071302927033086326704511697629522392098145969764915373607608649410837068314643013349654680059064291791343104401783556147445696571923415635013010449663194087473028698032825433298018764093993824868733728865255653672688721025519545008567326674324292589464258039047268813261019652198592440394696623221800135994046441909373077077881147365181957476886915785222456333874930578160787743436896926900861229562219190338263001603958611913213771004507309684240779249956930073449505198082716548371637400034341461400105556626864695711286826485025131421179644885760656598132018570258606561048637628948586995535465115097790959999321437859919931626606092799627081420244603888014509244013388257080037335772275112155386828999014069231700799424367246661791410749685592571527253850066067552258785915209265194693932977155854432042992655825843115879565264393602898423254211626867017173014513425330465730989627492047912909937179518529290111298865879423492644674886145888049907920524726578310698622571880779613579846065734694665893519716163668108303695502554068945028352687179518843239889584441111441230864489194075557020933224129397633027897273438457617621862695553356134684568290465731234614978843913205230888378282487489871009209428687066909621052895652936344552874479510887274725519466290685231264813607588768202872978169284658661123861142458165867151126137103438723741020827808933882664941079662974452229283723484489895977658744576139231057605805510205734156266035260742601992831661724190960291134478685739381422593803349991698994804667514570115670953448182972185005671211368845785169448278747282523269341544946274854020145241177650330882018050280982175349677921648305874336271677820971053913034969274286566287019159355305262542579745337295716644539348299805887656764867213087657363851240518372528049368267108118243865826982110663873521479381202861516166155720817462867293116002419183173155058887495353021907285771705055830281606444327685331786004287166593143954261901835679811372075996269183401581112791168441134258230352130413568032849899041582616904250207483380617267531831054808632904277536983185736231449422388244646444267786304281143967410679832679757079954173909754755946809690653500652697242513020155052055518643280306540661138665370846137926861263484683379626003886460741199675725670523187432197677310380128552281387889234233469807772908435404314496631118039193866075667672116722770575568547672597665510072411161680052509186525087245862363629792905603620345668210008682130772189735688417631129840065757335346960961458369760657376267200154008294922434382629022323247800002407282192809451403290873975249232502306628491356934506256723405116179637703376076587407796389464483715257105655226557444379614296578337819390788790557112485268580641530036636988198909594495382876903719865951987207011197655148929154971219829575733657924138083153707978965068304040149992614587818796568165108192333390125087847467380693928296813738625981840798376079343706426068182356318513395969008865653803921166819670455629459737876718223603503493551340020534620466201871287744489729988236134000277374565273843715754687147603835504994442889868274788111946497295966618523198340258088547594494711862273751218937847289568640127016647656704847221738650328235281692146461803240462085309674840767377917806741946841010508989814074746658133896915218974179357395038212666177311117750346940553780940635913787820356349299830183287684673685265811562981142911318113761082678176898453720304808871539798588992240973797604539971507580876503647652990486449131883693970927356649025125001633316511416378641216085700702776004506171318148695522647527349477837670924918899764317550887243328787763472785233280324242208788359344934951534664187788626679367614630066935772152924086902775598374780739766758742164404901520085760125429707903024077981687832158013993703456385611094478194436264802343731488849869684024998382550382632102338293312436652495094771504960178740910226471761624938394657951013274048502022013853128026532531388968690611546238418185484166834807796599588845358908856122606018043425580006659612224159919555089462815814724056522910535248800412869986188418187264371746637886991182946711985689005084745053012299375506271212352793692056168599453140552977023001739707549637401502965026373640782161624584129911585874980499643844282321969104476325601483391486331454627739388755896317979114272495249878537534720387878235900648353484057665372039787151798837532732526581874460063809219711136531836931271198671692109997371413200754821340080906294645715749739768071394501434925445894529086688517498450346530187674585529013110117108374802177761685464089092775391696767721472660771215278885119538461838653708008719792477302505732253086020401709923758428214206289113652398123965460579468541967609439222980344406127871283231576640657940887584525035212307405899890184664625336322402301936074049958952060141308018013460869814935271049891669950443390134130943770884456992282465263125109621755879948856426950377587817902618290560507523857134614711779771581975164903298657180399855496805751330022478886739262591707629685265828012968764352482487610101915858526185529326922100386528844063630045444947332206834185207820379951193567471636990713690060029752512053844449849940112929565742939058754030525120481368572961358814261293412526296036890745467935633108930559862706074021319089467517793698193285163537067534805599401870717214309739177598979274012589797899155348905479204366828011016007780912122139830677945496902406232495488519774903102987408502987444320525160419920621900861728934955801373656649358261672132730298640566913939126303089715852691075600325670740177351272093684433885950409907592788877622541175663576379346615225659884760309061318271878902099131744098946943543342117489303749085373550333236070930987672096085850020976553167115377002477909777550036232291245591143125605145301628909313836233198461336018625776272910819130666423928206767185499542821984217374392522497945527831824103683818579652667899249566133853926075337615774333536409399028479759782859809198057938663329776468889337219971505980139823973866807893951761379711334167891625814657660565965972630002139636133656284817587781283397307161441424030169947123884572869240902461667794097678860455311748699668466237572977982682704995117045989407099307759504179721875287654281252832422043161278126260812637201052152487955494139698721584257101685444314219078540059949383068665212409678696228106549416543391257328436064374041922351148899800849931891914936305004682164048041317108139708347029685920910575696530767353600255305551616103151319752733931630144232151009916682911825116476892295300690251711601333901870639419797647259338933966227253624916135959923793742824780985547469621794410460983060769035401693162692081360238829027079459676220966515963041236403081228172600790268937083905846727497009878054130211782106258958870439618418815330126335408651091222100653068073109075804015724997087549430906484362766880324743179601196943157277185341059979958115458034551346940057013142022487900564953795878012730387285934194194024739018800307004367949738963729312984819639040923090994858400280116096485020004264547319139196235430652860249196939423865870658058595682877777987416274747575040901468685979675268549583329183133985280301829069045586456296459980507948781913012741120046984092175469921707622260135928853414205025625396086307423520722338472232953050425258269144435056102415645587368005023762251444304815082457169107426399322658836163816002397897425642020608873021672336496600733494622178472499023137386436009126309624841424584134184857003533391079382471898567755415076675515554153650917226127916053470256529870012968462934973386699093189899654210974670719291273503502269057347543138634184553592099825388374944943257704556765450360287150477528568499733717769005759644978999997877807820932520174826582253288057749174140878717838904634807009779879005696927508839447333610189617992311406754164679339275432202465959368906440759329059954725916891322242717196366009291630513729893377689859752214163647129521630710743369023986962620515479701265076964346635851701145087979058309965693249641956336892133905746935470003649543853138759895753874094613112414983357918142493081792932206577772202316706245923303132031811869245432543778617604709321479711901827810408815260627874610084086649993752051645461450621352858863570623699835647576984244296229321284675692622021327206405228595933785335523472463354944612594445022594595153229126091759037214461116258067108338426708116144644736513968698317238110818754664748848998121168053516659216100148020271007262144811145751643291082798152897027294309133180811589449783188347412379259853478041719833272986380156827158833695363064496032764258877265404676901332351076072974095382204379697594677007298340910475721384053678006962690458597927146902184418069845710257495747260979897655426634674910821218261556243138421465783966102994932123889416467690214584853666991328066543121375690390205555455417883896301114938559536093293356377562907285866886039361829724514184856016219092041549438973642028285817062461796869193515744527862856527067995593142021927767073787220057119869058674890846778368435833608178840914765056915172092480642459927579823864607332640435468685239068557430973316659672215640337770214998039632321176164192388323853160359738720552518975298282994897345035463551440920574946219623598207111222321520032192614341977417477753871312319041070216325556157891612295569028298930962387097481327956378688048119655140897207592542939348677815089193507319917681018761594617100236447234681834885831274343687579922912781517643523159601592625059206386518039580915393519291806512090119785071306775533408202619044421614970002973228258274520827387610109354963262413837240664308624914873531831805334447229560979885210450766694008131326526653568609977703803397509462758320152541029728560662829538922184402153475880986454225774693209510638125678777779994859925210601896106992360536254201330715032176210271095716494522803052251129635190668002806095640180140622832095429167298507236731400088506552853755645575926614032906700317492243080428289288614407484516062744367735873660964537269905205397756541085153017172354362457528057811555741062602958154466640734521854781390404717400455097958348624211570567014078086036960345584432957824908524743798188232769655236592953395419041423934642269817654531895882969253271180116364018439194528903432923764607241855143525084326518292493308633344464076594365266022837729015427122604450001758829038877640384354231265009508710660711619526674390797870462263055052291398844038699827188832800183644569363790692380140946489774374711411146164927000664901141209862588043564324678399462790822215276989490498653896001346713662010109798956375065175439405857209010765931521772710516575414673917659723080514834226580650106597430005241778233534938627913612476709742273433718720948248363647770231528027046714645889083065192391161339073981423977883481425421312882036666195446545686527888859549029906891214035332394243723595108477496243325183119756993208156126603351903454869171666339274127624351543470636228588184435773672856179418969166628299225565374528803410191635679594325873370159578505171675706079927258015742971125505436643421728982461729355466852123992300446380653240696133780557597147849925514956861815827754451072816998479920527513289116349235148799491942646540717136027824961114739829367464995289372496423553640266662819528166782455464584389922527591991034349027253739626787387359759443002760466304799335342572519929679344041809534661263355015481257652680048503736174409115947462316904504760384783652765036958450433253309037017728101532487770029780252939118468034754761127936717851203454711941183345104301438163877211870442743369508456282108230569124576801657180669947911382171501925198812088933662276906686559196569541654816770050235152524161862981820266922871306115246369284716024108475167747191515010498918949728313093364251964795626889477832764869980736461304822587767185872842497928592956353900384429594005176919401189186186411711329863809148803911608335961929289822912528063419720906100685604018999511372035816412908611464650691672359752652224221796411750704849164220237246860859379343504419179686542669982287951625754924607023822974373106672092680395369687746207581385083359265927688451833264731980068908764695014317274562593731019784114781338626055740168052575802864192750880556009548289529331357965654182155283675974322501826533780905205740004559605409832001775145628814504089880367851519926241006326167817449226199771796352039152554343307221836517954157669522706057863715230036708443824860495838210489918635585236896518540755654406650266878882782117860097961117702635177510316426080185636590542828800631526994811007677034010225961020374007388161787563484231512784713580462057894931959424509804458467598408795019153134956614256822525193022453684024124782092591500128886850421592612175505354451602004147508310492520877427130196711987816775090024804526080140026841627610417605429086957723655297830131023589073768554719794643656990541535305787168030040150574854632521132194982328918425379774203692042545462898192132744191169828741377358136698287310972048133958760112653676493226556044132966660612550919410040741899192685607935900370413726767860285986110701724502386621540104885594910172313295110827878754200363837987579444004498558382698359801193844821964548727144640133440833106897021649937827902082146383615775384421001125704871938359271038167887454704393650827723223659581267556876049648730227201798018254259943334270173485828957454183827117853934383260854608570685671824849138157983391280484298494683316827775892558149211115261669467147421900614443710213463765866123809460033815905600687178745093635802603057020874102210644915298193965387145701163644235634393327388830532438598460852757101637876276364796163932021938674388105643087879707785634003079262443453119653124671143267601165028117716278346735097535092864714959172304840593199830701958098161713038865892566761133025173641777870650353838145465100828026819841022188031738645386270231160753856479831581048395561861122608331495910698139926365695358230502501555332856976230405330707070692653122707578151121187462376716271169786354857902291905978465597010227671040888103164937256579576911843068818116338531489667576853151540167451964841927943400557770467357230771590471114635838125874278772732507801878470045497337617805153514272749086134378614308074067329790986522950495771551221541138147869109757293750465136967725005981289434630472722230516364532729290539071750913684631684429471472166694454801039840578166059301428785236113471657389878123866781457660201250418383796333282731417239833520628718004989301126869301668564505012165969343067817249291453998621087975984613213179389345732916007614759448674365522875687179261457036090744618592016766868521293191317738723798453386099777042127781862868739149329226222697668354701490775560967864254620492563664980895237045714560515368213066888676918236094771931029760269368795208548298808278988072929262439327620003247042695768548054042908304873418197604279503048145010207786173261439372434799748043283763744560642488464441400952952424463980316472202761045033876938999255617319032429799701265252122978619351358630750476690045223743967318802728643749633103832276020428583650582212234525828972110219403715210339550304552783667405831383338693717380688888493540239063693258920347183878231777126277239568247844895830263965825653526539515145005377788299306173015653046866915067315055573208076752068470812864677104624061777627376923125377922882371905265972281606669234118004617724850480695850004210108014552217780852238924904726208672039115280714067395774712014874436564754774447931488244347546871548530688916328506939079736308696784888954838289909735772123682059427030626310056499013353010865255299013475464112038307195022133360686518170194573400635489354204558849497817901024069224845573539941065470646294266159543312863722018636834528613003342896492545722515271684798698231908610085798685195533089717396052660349963948422642532327336249485700682585325393207065907078138813167938567401532555836734759713775739779117779048405359832617482897286084759854290224172753344381183033601965796967653797897465211475419117036806893447144299279500414902573083022534650345645396798915200358058531449614729247633465298491498414732877893137806917978947547652395658692354028098852770157213199169064254490245469751398853226479390326115048123908398899135657713553294427262816053778982614858240849012228286718481704146674619056551997141774633557854060384140748767113709854100071510846861280873262037855698818432073977357832296829486012134289574137547049052546846045761143652265481681925263286265249470406147834191834348232488047893076058413436146654334233117759794942929778141584018693103220921857493067768787039189529540091597853558900410276301796008177671146770774019567886808186452132807608932189565446919370527284575716508622830838284318798411907446814240053779494622487654440678342695534907102581000806287448555142390439682721486695027469320495592648655579565086058680063975235447582050878778419735909149111767307754166327921019393900192626589115850376973772746738482989207022936713042590927940755513301072390175803573637070872411457669532608302871508762416085631775029595798452850169992635329682224985486082549182505899452223794264193398513991528562163550873332991688814037077108459342436096067493499813851237620412943557378108321891511125949459484452456925593746489821958205138178119094619508324940419167009337429975023369288306015496109021886100392328991058278601586682685163216444668761574108032717861821938555766018133070227710115133089487680231778953781151923423051191711159520318990005515920054667645502999682159750065337273549742401512956602106154146724362992207526464470322205518292641745923450333018853167220378616574273409244181312977624722837548451978049698923768693910414161219808537456090580022564875027260622376372549269042219575576485376794954475916572946827116358471734804779668246664001207962363169473338596831263540672759022868801240535123938097672839279810304557653345625474269732896067872433735907114233321535911875387053754004542655557747223641735000988001674013866665465485626402065579093199474049304121807225462513774877644933459755044691054032123815772537185019628164164929063094236929815475792880573763766164649772670230383582045094858229031554324697749304834865390427166663203288267163825574103157858281100368240180059929330002546411703748094446245002849856686463786594573413048211859743605042544523073851721111806079806287599721978419000242937338605306661468088192164182981995760019898135932464057079393263398781196799850161569862805349620746644691256649583142607758927574176106749285626872303538849144997627801752391194300898757991169998118688113585714168375966810371761057281329278441844106826703241304212250366153613215480892588641797529767755952226716768679922620296016316202366611967735308627714293765715181756358429879626365305638379981642111967083051177811851123560190538083245667556952071297377874322904648235434629890792673703123789016847810661142375146840722545758223316232121517390764097799590124249217802429377802099173120835012035052457441508818984122894703361465737203146147571706560519714641280026551000490756721453675249400757520304756067074894116957922448219781812345486697542536886792938886766581895805063875254824757943458407388385378298406229358662386076987917142859097439479263466965601281591488946998699862274339079000407801216500483669131525556273891890839674377095917445216894382786330506553633575218328998165968403385671376149003911041214664621147970393310206279521641982820397764529034513072121649220649582535473509544492747143852190692864642258575926983055808193067710767831301640170624962183204021322021013260622020720953183173749713707546057550873949787670199308092259924207838677380825553108940560549935127044302659985917757943357723624483341276195295761233443300608494762224862614257925593735809564912809897845976594356940998754395179611013636108793133000173930958830551033139439920833945302274626687769628411932441480199964280757869180745664498655990582020196274868860543324138163977154251296738652842572025066083311100292188123763838186095714166019011748713343378282609905929068663770873638303535410422775115430068054064519228006019006268326294714766528219319899531730511916734204803681779705006054005073664986873971098403530541766539304238375174802948251863351627808640478933317628879409525441324361961571269288926273520470023191480042554445871547351492825703227287311300403616380660402434555121791883598735297086527477152528915954111910567760464481219764607612797738551996414460967713116220157911454594826395509253772230937952515717856511982234825988020694797247195029534807127966809784785189714641851271277560204140912416262741672285384410226203374218680170972408580219887619800477713194780315131217281054810051595156523817116904314862383921243059950295580326053312474325582567212097993564086543277740581873011741043467217316170842204325786320863850016312358759187521857496052314617497365333319091936669869614654371520412073645940939800651686914761630517385774892452723196857304042420256814667740275557897513584589650291190115497495579060745774827026157735789227098854904565282722482719697306928130926052752157200447411211969172225710537313513802934196697200803303707278014542351276946356481390611739083343133765635207467240925748923346124267382930276953225045528674999441152520040334839140619600976490460753415739014384767564181738343538028755111075863203017721696283857190625664715499526629107334975071107571006556333428499524007492237094931234027809371002483239810020968837990898963117708591441432490940535751286797565648389583690649768610361728631726597042964906774696677389588559748642835181027303159883333457821286338887111417792137661624768450731048671074103413819622634163469162143185320516953961493433854336824077821085171732062998967959181495028005464631120599119511334252898771132128623494843138045324653638825244268080230169845732561852825273201080762820376621086893745385259878851873227400403847195320384932066875237054901069318649324643321770308105842131180638473782959753236626779933255039804246739455567281533580413841217747920310652561021174829101369852524146464172602792705615805565839256997153964045917256934018704402626994879595876943916701969922795626870247784845350764847056450619466243740214665289237648499691750493143278613684819041666990875991545649623241969921619839888722946778051011728555910023941088145756670546231646262062887708284464094103076866157374148847851605754981173612624105439586558765251802547462352768388315977886721624294870115848420358927292817050196619051993143255441394258409279139646089362514823116713707671742079139361991775742755540867675862081098520791288539415473910834790334847904185425404260593911761626587601707954736027410981312606576314418772749191811714526721229800637805695398711034535844136528681518721223018248786141624507679346646362388086750469909055630330216061943866405017250186297332673370571281352342642031028804933733313379219842600436335626899270741789983679098189620376736087387886233037011761987178694549922762382852140719840878780240696950079402175365908312252887219369479779270672350719468896757366467999431842680519170460516456396261487199767714800749638892346724945026574539110584897720015062197655156859909856040680620762522967998545154242130271704871568826381610009770332169580769775077427232258229722893551130591509018964241624994328225816286142246272454476002118116154644070471450649975855901345382904559701802613641601004458022249504272732839240739971814041895784359291352806439905359462813888984797810318743893883952676754710704492894710174201918280790112858606577360380583896871549785260271060949944905009423199851820272067946561164022921217277835313851961710498119450853418710634861218282612135969960782650112009077289737158146147507983894809970455728867296577990992032324164470202235115416111174754743439480825783915464566477827288526287196364968596825395214903509552750147546070375314395084707634665518009723760327596641264959236034906402204845271892519334839976344747600163220759062126868803507263844242501814322416438091881333460534053737974509655757202712061135461927704756321202289541270563008684085904917239402440645918705894741060484312460409454248046738413619324751191512751242816373787842701625801955050346707238038047460606716831147807801230896779793496750227682694123326473902199002995002267890916075274418179228365596844740436395849308209127054970573932940851242013065365459542801693474834854738996739938737380961291266244795691688484667175371362017828371817626632763194990664207804581148833491886784015709549350803624714081458193837525168638654621749962493660550011677222460540596107385272298779035471857510471274048354285974515238854563492405562359164787166662428972974452181050738562109010057200039796988309828992430199470400378169525347054790843893393736437157225213228804789998593456656291914927457603541003734312034522760237693423321600384746515082795591814775886225764234223571174592766916385092093330515804922068765563885613839297909182078598123185450749567969654384145481482943428349627541828862224860163029076237164341203621433603682167148138222118647530740627921406634498633950544866087097699950208298643713088170351392494866958736455495283041693486086143203298204993757536970224275248203397968298762802488538453226700514409445074915946233852725777473736417128626568127441465435283575639081932243613724901016873366816806261424105346468159650830386006153804708354843287485119654972757336603871642849416884907353537479773375840491868634094977992120979934734138149890481714693906249061128673334952905823738095680327313191395250455417453850343918613954788947642180030519940942253325666065454177402459223815903386972722045646039408493765451128868355005982329756957736551423619131954877492959731408717165157681314571524282702545594634303583513397667128246034932420864432660984879811771371911036758266115000754413093407702438965242210639534627306238298162822454507668533337328256444197805498734371924469417100321637415023695529044357812004001044916985356342294105687378407476074074440924907898746922229309226516930521250002531159566433936437457362505392836716155013992538303544394054417090016946570341311567130253702181093940113451092906606827153412008786804778729374121854382956044363448557007599425575581310614033615971869709720320806544151764637297277682359003854587685248328876240051890385488494795588960383805528293799945563678097193089369151451673616496485538436974061444593478902415026136887005729006709454410139403941337843566779041644339539681381409023805999091244483375829101040961587512601706132313027953309401922740422748510904136944323643192294667491896256060842647802286479772592635405749038928135449505935502475674785545312719887383450834136965649182938592110303129463223304255878601755323036060383969760998705600339524460029925926654202338785381855869028388283502806233209814778548263118424903944686215750994240470618037345568356847439033511851172961193384836371531350174086808858934644065892813243004914327231057403007467137152785689795421148104861402145583632549067079212592098652970858391696486811109741769669316892584769915051381782248795115080448059722065472411220912672267614377973745638778925978365600766317075925065826672148494175231617276827047062537644928667420672974962040220488776951031138233811307781514764800869646976205738578350787762912918506662859593822055074849303825350222321341168892528050871835071623046251653238725136996968278991563277653543912664638357183499438449270022410594520596777076369140527993455456434064078464380326927939105162731166186647586111367719238550996383555287371680218698331025661631987634819807688604246161987533640488378412215199294244508927204664884936697651400851274006223858608868361175832718704537318285365516276397459676385196251026248402728469768733139894023265077487892665576391541791969865618153522686079306137627002336273157554279409306208140634122514083347193497395551099960923303869726731243870927892669715431588566758305206809578130450733942439514267908307864242594763246857124490316618421120621065237223528954829196859816953939699630570240849103586177360945401381767196997871010095240074916509283536407238554917941587083624439059093758681139648165229044733826620253411133927889283816478270458164777571537159530277209808525873794226602018174538516125727975077979167501905428241000782736506778036616762619679686285942535152073062526658064284099499627027804229692074854020842565128426033272141682937200556370587937355535420704737881322968479576951085609368417510187408541117175114937314427875336881205038863938389469636560176501750662372848576743149387654327216395923212279380835589203412097730735235510486586243253452891661124957300032070426710056556888958885938422223603711805503065799348211918199707199426316969007939318505203360563130943772332336685873472910852725043299562984951473202872959075241179472808597000306243915330082063746126969570755539972531992200000388896770484880165269054896162719239247905056948676479831834928782877789067660898381817809344587117635608562876422737364912842134897364986662575611007355410401056801080487140548214002658745381525912755551462178267633006474241051435878824942019817410543436026555025473734259909982192954473455547206976913336720166115248331412711074503061676293148427266085032793171384441529967809861372198582224167889218640144920148937907909674580887139124941901335746407975351850143491077889001182209891759742921617471780640074648177704538597049629412842860196904554645613059807368108002813488982295104933339945767716966764150665416392679656305621590974399120619637862152017994750603937926941409582369052905935579944657270593520284182581515445373057489955375598065088287696154220703996432671814427382225109636603891424085216479620968499484794590814522399368646247235375621029084926461456053157555656106952559695493465284767854285272731639374509278605908887227498566457789805982551022497629776098897352021647222292516558838481340749887548218936486941506478091799046173821181069812975589013682752337791900983360722417408238945699375813143121248570275736885144185451944139785407776098970383566103614622930492908294917387644408833610841809222161675762093327800288102620262746680820850963710417787666866128972603979584294606416733252778681898137027702439871612510500743382009726932723552958716652670601089672550239645657987510703551205965160184227113330873817479056486949149541072533544011121259869696454467209936635385795911438407914374896997521058155236641185423785870500783473995191185081249647193351987679875722678805054291390826966887122600860329084644698187401023446056913261387862333937629873820547532765483133990417608177450810139577546226952716955224766689963520415372297473388070717778164619641024163661688502010441945649302113378588960959988407817370176633867947970566705200728734600192818371646316351587242318070748854872946259239866190748839818432898247870014577584651624656344773312113649131810875417305865601277269157096649745356304156154891952648425855890425744131497889938518880394256089203040207686627540797032123683478877992608848168054610969423148663286049932083259227893536798402278159019595465863128459488441037466314956442561433409813882043295099808659751914157555743696672103544528157512945222162122265959200633413875786637580197379374931695921187863528530500324896064832063763609907818345948286742868328237898482544451934501131005192766017308940399741307246124243407180167391559821540784228385170222840883890723165366078504423167050848306985001896618806247389055674126390776007761614551859205089166641392738426656744237103751064443793224400106529343374990504447731259975393181074106791696158375592991337949132394058336240034832701514253425168196098273596813273502096367793932291869633847235622957941915156813825532839518800861075058857040174596257287638417565590446025268093480801893293807458227328111350126129489983590349026166152862233111364039070207648822075355868862596857381959942539075965962444280392835203224597705570204591523197464568004690090126411067307127576559149014524148671482953363881198788509103663317774362589639430392177875840938274650598629372067466028353085692108277125966462644334763311090678683763685557219554092661098538659528805138926620193157076537335933944481344341445378774077639381451647729510398432239156297688991266913296290564598420665779142854493595632201081112671301892595931486194592716081532474085920880462079699376530314457976999854533730711404781206972405937102469960602039813606970774686783753229156256544646045679062968860207417379096422465232708461005475128831778127245604073287426123874243847907760288746051031791804098661296470695716515766697506123741378149825300928157100219421578171702455657571318465610351019386648419715262557381361144257800690716440476735796250012369354106124312236233308582707141457902126045076381535445528114584024566759526424312957713129696620810023520596384338454934239538836473240099835844033405360543852543486251813339686093469003879630453043269293880859591605788541264158201794211049234914142400135452086262613865853922296890359384399088213716035421468275483003736349643853972852885265688026080729982590626387750491012998568468802609676600312978455139868373121908812514368450394781623838805542831577885309344150174181281440342699236933227329898897638290050323015782612067055871162903720594591967470338364249886105632049629792358436701715441858229833424710178377927651256145387242538289421891369698720452719097741859000386031854800897750087757178974612107127153266939209331684530926137147064395015615591057090204042350047915744820322193233328066694507750751514957040648699030610498708322346898616651807721913260642124155914981449162251872697759605883903316121673867179781718090016164741874960685471321225556094562819391403213138427922978789791154804007223694968586743969206046922610174830413722032299765099544722992400617227808707740806318845666911714041441470229451482898687456758651761426156582618881840774231981803269530576509137403016502973201836329249878405306727434079106837250550099833678544869260851463685192855175660676165673372640360961429753416269911791490933453167580307746312484113496244852438172107089970152542450216321317213518806744177135204699602668434540317213722387296076899328140230455600157990926823112709210175216000879618028892244868038901646053537416931948121933363282280177667541802064623797359314588811660709840420751816169582177588527937838176817601228997105343630394618986220281800227007552273545703647105750048032310934271605661866389545039108927230226262280084448441943363009875747141757448720644379920489559551071937839814975841759639886801584172864173188829526890400745936461028949808233846625314457877701456797013952774527653051817165721856310351961659044993812708475639577968092385306534431738257055441313221262177823176750122339265669696199798172071718561101860508118587400278801588956176448037956887423312663637119012550852821815040450791578049599950798857270145776418691675365689324847269905357110124204806936619994840521153034771292509549874797485174451794087680664738380136792216767028594799345602996601763870180887121313395201881683192907899669659841909185862793881002596714065773902628132449006393765082794828566275023228352188278410499211713553798746057871043427050240851207351957116550497065013344039071511711980077195461663385109298040246582415705036587415484086368029817049129320858439589831661719881079063586032109567104513226686480886849569731941106128855605458832246532241291429109399630083693353232026697264142374328458276475631310866554061648765602515933844837572258537767802998696928439741962029077630709104717660176092238814285090615923124186640885142141535849831560760107718402288442119158895525415075253414625821408528697212009727908749083298755757451794444713091354601675266109423109998407014677681934412741541195633023358855112500778905162272943025670293547572143547007356117714060717405363010012392735355491909467046126439554820760026893038514085903721382483152328531324083385498435058927666548897055893903324863551043591930881392147464585213863569673635043870905391920949495872499453832429953139777573856153641078704665220262712183544444467455354483477560208111145740088743150952092367104241191455315759675105363067062367023774647686255378696001763716659563770275401766439914835033917305671725902695756734661109468458539482372075996306266740464516876986818411229033786814975064516778997784851076415032066244482272017990272336576417196400910746462141573199569429888138227944455108405165715184276606497963818467143873550285431740565689233462985558627162831420161102996131509042985292890577253841834800361268144804548822982629954396510502560850414399931984439506003203231316332296880979487593554718770013654182578325968560457493240940811480352423046355694129645669386390126293643452841763511363420515682883274843832268262002283486458476181134732486705228365952020391281936813861245761523046257459493522518771261958041638440120027564568443720760056000090503498702513715569897682366740588344821762093977482651077982708376053197322123394099888542183071575631093921093591565030635350960804330933535777863394643597248254823474110069341431637275507784506738383623329583424023434584974386736425161945372206599729658580716522381233967154218633238097488108462581199219784940364970409195540818007008102998491824232403252435938254640508430698050299530411207934392890817593809231656053881253973551821708435611545551238991687782457787315161981891059677557152729283276840382411864695044739732022290000016065653007139732425606938639367515658463347499581786594352874329424968582994727100112612491544801206768133743738964447763593378269073192608297801956675785473930178253362176627276665601813593053396490985134360535988614782305902897872940510966564755528828134933887247629162308775678051675932595800957455684450886823315512581089022279400710250091034421796630836972801647417032534177370680571220233832894182785485713633284006644393409379016831509042270069101467844904224318486988905689157669137522279996500167837345204248200295039563945544618210976387510021198025013977123833124862407100427992060570979510310117417966193485809079910788231971809487180209859461049900203611749103088031280407752193499313243783048995073866219365823466054941690452981540257942541143649611569160891865283612541743487302467576979837627718075296902154862143731350196556554497662001265635741244290439691914446458635994349462816043859528970999032230176551674426599547266563800251332287060086535792611039993341221571856044293410934667462077095874193552765553269319168794375248668137724206797695165155276813963454060917853016160148400730929704064436034186558034701514978889575538306957378953130992580675277476012862119306649378979906366426957039911374222149784022439972217098571258420057307642320356658774357414776981956731211898096193112642472122050901979532524368561267158760225652594836377994977843614460994120093562391732710581354895194562923064621541821350666608945842637203615710041555809137616377076784612945816389615995740593741429833628428590773213450582008294503809664561704290460808738731799209239013410711407015882041874382336544110459389485492612254539489389567150858146310285450592205350898385856063787062595140236700638085911592531317049661405114770315248274929851875778240703411026023259756032389363953625840363996423668102376961938281030750877505424652763256616571152212878323829082906452349892450374852103958041172407500682782761333562455928778210416793579264303034487645410896256771625943215729501452913014295554001179536899026326684458852620809252354481419847677540014560737646639784875714386054368999338350410278648737078027771634821301759775344276861316234135312848885888366091486629789285259400807402244720537505076534111262566369063148897439050963444454742334725081592707512165183977070354986604868039483721587633969353225493195596489011973430708146269584308645509428662726352790014295118857553028614195476314097013974468758736110687449034938900944421284547205120143509125151233043089736557903947816081360087145873168318255152963218224888250048153696198974721772264749062892652594387692331745640045301226450927982826038345531783682987338988105731154851715619301728653784142852478013747033654505143157818972639118662697468181793746041456558634770617560994430895670179627834778959532800283496324608139801566207109535800548856750657444645953308667259299554204336696528260059971316167679680004941077282603901515778858797654081999710538581464875123934552401009684159049214802657604555067040651750023514978788283249878077867916752257464613461215914508048127986657787559398511423078709006027155099606762513741263598581249215432596048608454673912683281454347326300622590016688232702007303917356362060534508702309038349024905635008518140417424501698955499148385066316181069396829490132923486520589455551472535115265318658899605150491867339096038266295212880180239944243653628793528166756836449249473276879822534856848395021833388887011085157577436726283750522003758722922329190903716386747575451441580321998956660639202394539579925507609185689547959898153621320951341388800954792991166549175158497947688976900030782959131443363592093819879831454078643074227033646533182112336279176967116054642461078733571393017955923756035774917547715271458476057742277924871265622015856478793972368094321009485397014843415729093099578230334094372215829814899932772170499623057535658646097045916340856015226019703804975487008575171333586355896507950819559761455448303287873205849679822755011139670173747187875665094538978695161326145895943142901280278129217718221051306049748719525496700291035883221626247151281260422180965165608823574040399835565733587546570948481832569187889877456740825258788186661783001424529870388206943527449664782854278602751201634505896772322666482115095215457228972130826218444437344513724842126655985194381380667536599148824485130176150874891476128609034024063589244818513777551652547493178286716235735434298075767305590183146597078706801343199864470474156124085849555638567495580850242855319822459293176250589291115788913002821119720940200271890935426852608744481732492663241471497641801674108451622534379203915350003711887046980246119300348550234451425517435138693948975855654305325431020022466617858165769573638689144996066499046323330606192804420402194677730860314779872520284968657851843645514244567433618888993836531569107707124217807370042849474515848930877463358559999751576094801212718670804946795273231845913473182372332927932305059396431692012586637633821560285069149970196407399875718228835137114620972274834795966573532532239032980469699866390821347733174248310419702202130108186855902011983252986484840952448742755820654580172245364349000144927942194009257374282046061841374541351057132444669206273404125205612606857282513796726035090493087045802262642311316485527954189217999618432428623827284805396352509913325953813522611433184369356561383432600897926574444445743008541412251260968688442902533077469718558236145399040522249176299143995564960416127210493313684254254066838363454282720666287315619239880125570522272163596159081649439609663943510953658023323845052959190147269344236694666837790363643358867829597584049863019620264024477327664073346574859205460454561203689614816876218509388761593026140681955753129980068231447906478182197276983816443628009206641430911715010055023065204213591183722687920098290971733268212963494806759128651443314617440836500628843130485305999824094227721575528194217344528220377824786420455517620579726462493877949015500893844765423847093956433891355648682553162984562399027675883404088006765365878436231397868511571448742373078027199592759880294432671392606679930671679039266209787247223497158541399668436122990877110763107927426114953424060453161743335328556887176053161092689924541444572962056343880613355004641040440008941472727731446454889546822981119594930253543543417641401966391627915360862125673278836633388803192245040699964114315122225197819393107974208343234164855302570379670700052770185340291985148014165771450909846965046082032789093458475465572222750988592844659349814186209988566261546661244114542759973324087486098483561634895509973727559572124766388681077050226925884375093340799503202953339520101191399515541928028094967157249942015664078149940830107167146126766890652264881156810004378975208453891260777254357822132455921952099802607204476011116662267863470937177818162913159639553225534511453669912124617893507761434023547068880058317760891654816812238226279594897693213814757710584972658749879764019210296171396064338525184987887028167840427133601096897064849631711040676193247943779784489155574849316812566952412791751593980707399180795042305779679133779115583016504306889420807533097168235304201394094251003946084938184600914773113719666829901762119340784203188545382762198316510613054907545348090912672441436478622767832493788658056838468766619793821701682802931987840207455555331314715880442990618644196062444217395663006641489801706702199513438346101149967496848863700983349472529315469817794701556074302286342215410286906116656036569645077399379071005011502196753516109733821095042853016529297105987129608603595672324434052765514871964117692735340667007277133017406970017253179350694674181329851831231147957587564363513654039773347977616530982580728285169116295979422454193911359285298415112349810369269696163733166276116469023236687199882883270982381958105535750729077500872101917181448104380210920768760633883227755828890292778892900310169558511401087203229692517492538937302052455200900185942508398368665050227215845277336345010562700538109372010048552687045552756386481152665221463367230000775743701889846064027031166148510499001097401740978278471306204054739218656728196915353867640386014542447642165503162581580032779154680810663173765753337006340689858587768299968719696075789918624898005752936437161220000005794273110138108927268399646999401375838201477748907783624168657471650024832669181836460952698767128763157918476652562041342480174300018699168176625033653729212521486694537847131171897711739730566420958062098173663591778765788254872623687510501592279147734180891347219934192860071683511919743716489480918164273350090418202166827867207709848320013124335572232504349376032767638053417981375015590767406331138877151783290361433086982482704642941887361320776559850888826798091835377112673458468966470886051207755093339323158791476324620457294476644251553091545568145451514713403889848934750006854360883592516377986813240539784347755273461988320078807556397256920927257213133857796317328646682019331031608365745444157762347003078464339243010688813141967277272318111272251451920251652198456468277834656371083581378245348740966887890317287292725137213883751129750346083522802793446891862128991982185680404780944861120029419552984633364628211140135450046810019401173674451312692102003968679545412097481538280493932791182323361758040758579987576670873614075113825312487151276656098475123626625591450882410085612773793353025285578638875346932711228176787837628280812928988555332307078892757594005736041406784338863864428481498091687593621475318411921065297734758901404916777627630240402031816854420873506512791461555820639910968412313991339832085344956061846282100627136226370202789855383511409187178177742153581186665102314679129975257827375363188093448872790239669389028241768581996473722469501559624800336527004491143766158758535495786017970677545155643170934822755966893183299151021503875898039655979574052673220336566336623224321622598012328781107883219212551460636372712446015964373308516494896868060801065333426802733338886599676535508061382706090750754441523853833923588970146484093515076973027066717936729608696840119983655642698381298180722907281860638611224061764565259835346065736957134643679673706949825508471601283178382705583851674413995285522788848081217947769580401845001176884977353162533442562833305041406935100550091178794254774565827579871293975645613277090989288251646233803339975768822131773791415599385670955792953477092847580464605118474109507629919538924705386057676789805282366825294901914316962413539821578482599205786648679392074465863331642410510401991024330980306337001371442153953844511274998706098404378989913633694671978453855833996269502173809229987190356849464763543282504073810448851995851207673373831685996662716469116953313715982519844146558210741059388924574221621019112441794767395035467541629875484078232479558935429231959568470118228152365119538097928937129045509101948759308855625515005381765378722415809955379734152958130337570718846974459569321617527504766564337306519418814555745990361557166252959422588186112254063664298357522573833349218030432461426214415908253664275334485967882598885860048988033018649278334726174233654190887732837236618639098271345279631058899638297664951042369582677968644167046039721557884361598483696534782786596923355374417300689277656062552123010326791622787183380237731391095426599313183373607479852145885645014265902351661480440313155257267832829720193051413284772507484038812886052930014069783599065803721947395686970184740701223101037951621571400739190183270741766971768255559389112485368499434474272034839972471591591610388179877744168307377750045924379936958052500174102596485818350447021765375965409878811639242517435072990260682218431057965933205917888179484737183986424128058843137982866226713986711151564796554725404776416479223129265853716494300828019300704222641216578934612816908218513236497367895165103063964802087296433361939597905565109841473158267498737147535585723819437026763976710390803443177031858786418946849883562899033280595145317824266108089362304220286807646494494043731330806553058754286961635360257670104426445746958168475897809853876446068848642383494577192221791016135568485315999915584019172206301929169495785872315816584333792946818633153252988820337742007874343387294220093433598525061188502826810280587807612450621408804630203031572959340257145744193515500596442475564311987001786313318416950347224454392189665547068050289972685579195860489936088682227680759031435376213239168553484736312695160388013308380359895846838275640625015523524487936478508797872398346070967552757183970065588727681973671059038329289820737855054779538501562589220029737954429836165334402270866913558153003388019216284537887572859532493354762319002767087083890222111838059892420424797060620312969214846779392942867686050467161815083962938860323269065132751855438494101272324004733512746008499362421806799516039082054239961168279615257494376118902752636309227453763469699461906305603846955799833684962008000699668459282020344576621394306340035914948524117530938382805000208274963217679118235561630015963901517151401884748540563401405552504872679699218651611850546003630326074606930407247427532387362472068277428654064374140613207872549354028018826626273219885917173947238249649329271529987477940150878000172501015724379998558798540025121733903309294515027945040477232468721344804069711370270135641950927712838294394537983163895791704213052869631975500019001429321813560921321456239274472598478328867127621638799070851893520059928900568885758810165675627106408142008550859639116911289107929338010766946356162601873681905489423625334923663771476963985663054222747572374828583434870185503181072651287047017117067886687640821551861226914923741211353649737168987788656525969897047922107050363347458113023654851373536543179659935928574516826581819152605577062676492547598495339634193053528601078108762352521651946399498456234458759978549987381391725680590951796510355047731752688367900212172390350948785017407627310454389923005066767322697354204112101963024316511558229148830753832139064680895622295743497633541670943302701416559430070701544118080395251403423105328594713947904499154794377692393179343818539042599373834645332662946710185551217321294148300705465845314354526515868023031716228150110590675178727271664809898427384779633739604993059769808600846707486639839302759699336238228337078534300702189294155008482795266095453073823715166948643495396355868605332626098657601051185657762582989316135105459377765154379867975790987046282456286671986504243783557408016616432717706044596230058600347543058030095787947049984463544859804004098852710155522716998054522205077684422573459208597699736296419236894662024112397761109638433790286864998006326046912438326228418231023530682448211783396745357528332646513029203285655424549870472128094417792241645490327048699887812146452293376000013106513993351338154486869207078125769308465408735356956215497138307145855455271508093279720208740573387601819825394388853081991103011638893391583207530832585422409253264684928739048213132421746063122603973274732067354422132957599393064369574030403405336286467256657433622448348577724942035830822077870985783708743654897081881918979849568071294318046615089504055685384986858524718645657483652918169104542529512667192025927008533584824598118762995800315351076915656172110369513291428756389642904417914469879994575618606015422892522926881895474326982055308547423679874137296815453479349097611941782085877699943313171696630662101884052669630720671501810211068853763406068718097864699759615105978591060255122854962822070184993788113840962094023218165621373076240802780664411423028311526344839069295675140681473047117671401313590725238244586055229806010823953759318055696622675925698041426521958831855960405423124537551006174224573921785313831081442587931640467955137218718523002215165622465280737412839421235297715589791144150943877372483868907096463377376511111036529533956770720664172995737638719508234314312976981286147048672943025946232837311918789493704040136294494977411996803092806663112549362535825184398028771711187222665721941488934471685658957395562655787616497543170432165154160205895224965500458172811400006141932024374983390663937680943663077871641437656807588970206987063210943801549763854837719803836837780993598348860438790973656311401952866794939727095827996978782728164432791386740166688873523629973848168677151365053217241292098443757851034704533141519085285060367120561105832107754786043215231027379609457498297987336587577246070039614899912773186096234448445195798458221858893733259916850112172253546210945494669791402293863696807241051592001625331571710231796237915490807449980331489182035612562584133475168984831613716607083110551354063279910450350677832295670731616663643989150483623829066322061543541480111049152651986932790548478509785932274896657679833454740805918082365503258739395311971558161894122213578429030483727211121686872487051684257641639606085541704964635887228831340491442819698031082714788013786567932287208002799519295564300238701328196088983071305130789405973089707971922194559378340577609650529713863410616059052976579522862663718012078723654663640401213647885714178749667623875597134025430573032695959334433284215778707023430997752249976703348884142285808952014068486997741005274919127449581594480437406065949173725070091849665337400268734737466185283238169678746855171918757033421627642661361502656753260151186638216849643278241579383201445700567188009925393813219261954018310070756679302269541365532008160421937223415150196535475442747997732719312973941176861331657387061962142093827822152635650969281149073106572055993686677331578293700651196120532697304444118696682651962162376057533203856396901924920901566504077658871742159011878023623261074996927023860530451070143314988078160801927607051872237807933186515231338291005559824277430269825631779651773174788136600963691476387206284842970517688003464115280472125267746220675150676187784177587884547842770436200578279178976987892054485841435775374605648918793835508435574500346789520220148106627841222450302929402831982899382870981053585708615817993792931297859118344825940921619837036224058850826225088024340602140606283854337891517566069758478889834587370920913639943287554602997342430573862632914916748881675809024461909589291726528317699912176138329671208612728407317684459468478738485416732467111205140296393993879426281889153669054965566912213776507829938729895561298190854137579089400168755006242469546253575494553708894394916778507520206555646453977985016596923206996358225665510686697558355823684211845314164527726826200277685378502315660024061710314006846178041431527277791849461331089270353988410048003085164612227223022322156751330767032931971979324430476678038941636069878663835677030750147961008049800324633690737343233796290649428965344439919356779702786021486371703176200138854241601029702540947168068364219579231202350976259504964171920222748470096394097996432399626631308452668864411816051387018025814493590740115067836123229052251974399423534525241026427021896554372995014053413872012663168936166040456708455118039302310304883970066424810167751598202480957278952794185026909741758674293690835814500520626358821408342784189346263860918576226060204588124224188353097771398108277568102035823891274050616225971209223563115806872638008808898363615354847538853484300804941818697556602552385586906083400862662693685534771087025953719405687633953438694715234266999363815609342149840516163233420549721700245277378995977825365363008604094578902150136980147044685615252689376505962762993946282919853893235987045583973535553252162004910663823122521975526147308586591293970892431293138135968189255030741401533595361326803020395938482777664136047762000477337719656414377067634097345960841768641638322645636545354835854389397609971943315126550659119533780781263711337321635853040777357703710333361594285790841716376606173237752938091848196072160306958215178692509852793819365480889341906779704612961740724455455306439629261485258502698560213316005157427092920736700465021594667171252278205186969529780842578080143986231827905223321607190330495093005285762544610733063700491551564448734935396765446460233123540794280033779358385191016212648283812900731549276240919318827210099521926309911471370881707644090774488668356762974068709669044034238260946450921415455909765020723143775708333320812071622048989234089815863870722206995774869307717728792554357190561955232976370537759922545314013574622795225593038017250950079872548692155177369249296168456049240492264960725159408627729894726222615602712674698413722295436498174864304348360501752138202545598612359387975107909822792084774408577437259416368168898379597632584537906268931595767011863744763130922061833437683039789806185690645889706229392681374825172781548387544410168737959327504708331622488946277773877389911361920906447355392720355441309127430845002526190732577899648117548280784917350717055492363414157989639766709652436694332215931585228186843316156674315057927885210932029830482787532494253438482765809111577158669674563867138771953555419160654521036834020958329499995484059356475373057610575956848823146956507595227255355697156598397710063423678032774304377798988158258000981254691004636986186103309813436013080886509001422370955292192008591491687039983335350109727394922400037360997275225643141924607618977611726068899388559319576373523398936527161022580724028078241427342508091901731696045938800857459399076585037915905239595667703220964569543663376607880794331922933156220539514176801719175987666125319617539672612285540914579661933301860501707029880826306320684705451988340784695851226452418276296908841094310131235885110703180448178721214763843879783087138591914374551824321337233861708030090796062544286329418024753837636561759407360981070567318394615416017390888070594202291332070746829539655947579122593123218312772073126713565046659248444400669339379307889402275381860832832193635053910948819765678262926171496653708657090453227689455268383105876922371918910552144963118038901331321518409101586308907174198195838229237564422842787167736804558811146892803187310424717103512933119782657899325467811941755587443304151126892978771434329668798647392596453598205896123817326369098563085503331403882843726623573743060285732706034407955480977238045182805317465282779244984376907367243347847832029870577647341568558390202353891848511914973544086909385731675832976144961030180650936310188257330931198847635254557100815752445852287490285196498795055238400188395878984341850091739656884569039135354829156315268565904860036683438596799327277992032202761983635072710256882525944881554351872556183808862371745236100599987645663460381591562208952170747336867195150473521842049416902955777819836789523371433711363311940066098832154096272711675670792721924469369671778554708184956279195254333580730453672196368417375222209802896832050205562897714127505315050175454534214586833052870945485156423133660739980779237269577047559724967109873557128860970693153136691407035152930522043026102075809287018507916020777748998029083446491354049820061218420008244088909940314172141916625035066742018980494542216603600462651290542877302505044785749435629895055404232056727438222214610982209605476351861532043109435552982662015823481503042368668961460434567659284478831136602379912721338453545832821281999647023728299240164298617554194874414817043924172998106539560401670561491945862397350268590292498323039001696447394422533043254692428712819549051993103291128639050382895219224691223940695756199058035936955998580848011789334152902551197103746128513970366292883243291992281199818367901393238661970939078224448787633170550705184838646043654591634284171653467419313167612030940698011329611676816647658248267048153229144888991605099648104660582235963358176370475459964926444472659280960536369397290261858751959176489974072161223672332281409067910933687617623040429180105231618742251909957877453116924440969361694191073757520640056267074148183670570022574194693208877419073860324223575027231190343300533357764904615485206061547770579292414819066814308192148774526872026397235516913284615677152920362121360654391282764741763177086910274147056864741693992676816061529448516684816432760106237865618801059563521158846517614469085134548686415019058645330934298478038406609959222908442266305223006249294684044492145735494612960135388609488668767267738648431421073214063564579398884530397370336699027921176759274589267373864077179004150730519959110133914871269996344929578324684341914081660996078548043682821014125634667589722135553689452080414455564204046474974860326233777234591987518838900790633472246902646960639725014800864960942420571741514937408269360485398464005751129336626872522605375466153529765770850545570535787952115550232802017090066761187855200644410071334585518644679176220048818117425706189232560101673892842290213450737248614710007214730606663374222753106406760051299892232072223197732594570096873417028226019203130992552010597851186443676430975737658487237965929992500563373501290536463715747810598708297695170506042038273722125632718236899777878813558884812467425763936048236512402063314481816009367363370259135621486087667176962300187568829832826146866481419873176535500586440439993658390930289703927963376770446759280644561844382842285351987851884174773689979623267246544585382263021640141903317088925722971067932720325920643132460633539410336373458976176296223168573118424381834903355838054648243512342679401778535364561529346430279602884520383060125498302663416991277440871278562676990403045707408997457347234592594047947804893833893319637411614189880547197342274577855527492409904212276751415293774301667140227208869735678595842006811145848769479703390627437536001430117241862274227297123691463582083391051687360067408971931700705840723904793222582475520402786479380374375812146204221058059983735262164009716811568291637705370281276882235372583026899295652393966564492150694855447419810043317642138958907599678281180260396904095563206913329458906813043490277985655648598599055903996667831631812567260502251691501431981544265826012008937482332919451123410825542897667693594128755529707033948713126907852397705126959513154921139967855740712465946236049898431770198618877046231406374449337233013344615467946468789500000051928255848390297537415949396052534575220450173764651882296132976117112319265582403882405755972119354151034543009695237282966470597247956548358247278091285374703479906911004076496937481848028096576644426389767044241151601277745398834681383602887546926502536052340496115713564360192083855247821391566899971322787592815491894632244568580911780360555141853213316901292430597849440278978654973247551033464826081542330986985880603722720679829848320725989377480916327899703640045873803024680347188870708783378858899942306257077244396083804804074493732882837370149918488122361273749687956913082115832943960083270421375308886751079677887478471353857624667724543666803947353762091814678462421428474417834817533847648102364716169635381921457789133491266703289343038069650679732701440083794450093945523060853825555498661553219235721764278359905383113352298622321572248064570360641893521966747129347631069228443469052822076340682560608276907959783281406125802347583917280894270355184440664540884851613936230430125633076180022738314868204779269777309199203769255951828547842750535706607759490782116357322090136716645729946312167158408443754682247432186037985404407879845034939531341425724055052089435993684297948386611617295372298104932078714130271685862238952593930240051022232796756998516325839312650056876499818257148625770681919789370925548705946607163414278412966919894610221010675481203234199680231889140890512537797488928202728756841694830890075146964851247639810337858976411816044011477286909356300864715378189746218210043816817241551792249673105928471359837735453124590439584220117128306587233565385482393870159171362269716353638811253422031173494200085634827225641655240821205431717828914363450931999079517913808083619318762961597422800599844597895239191521889053529920435005844577679226520880923866927281884284333204384336966044550927439516187135786989423559740673178342018535261492890676739435018691610742362338487821038568770461299044122610112352528268317027301500739454848481604220582801045776047849306086300242196550832782143047953259241062849578066598552956848816974498934006916667764485830741249255751139914917950213200022280263061017707851315259279433880831438651658302584454497883925973442255710466755411964066927577743765727420849275787259556787303475193691964559938176286976435901873734629822024405976423672614681566888101795342464318751380593135970369843476928545019617423978778012340563475544020902394431614479557562619807395946048344352769576215342233184217496463299224179844444128160727330195377590407783524976789851340263021131356987279095728761248608339678863124725184487476469408259665099727736524516674799136687068102201604256522774880836847869775492674110187380003681803855907548340528279553428675597993453262464434167679623994222954095351978050416105699157896144959557519681988230821396067467531116346763972123293256815804864559307783835050914231951834268518454634326223668788402068098996391298186079796153011071231034834182343734405687377515234455980941517075923960895718840128662146149984702185110457360295267386627322023710880701744379764958870184917887665925802835149731982079953958817864805186799018312961272217610607219693760773274682747918570076738949645802601859495443933738423573534213555826444866336544924733615699775634177856351919944022309768377273378339085070878936420138671453987633029996314276509302700692738014692106563381713288519715411814798137993985149339584413287681992718346482444823950569792795988297616786411507085477053142507803906462173370073891154405720967172027782177379743664940168756694011603164984298483357139640078569154181351741725575604162551123704712270014756527153940712524745006143619130715739505759338404235282482627184667042288323646664883850340117656914227064511526317660007877322747424832768624762488471868263690288113874339475242570075598297801960563769222483642879886592837351789040625082946461105930807399133201496607235416828489864487033216422905806268913044692887365586279148442349476537809457466335296230930367883684718292113301978448523930237973417931581318334705541382714347549667675847635911019312129576044869699263687729921457136864163535316430488426369497271010065925842694043032546768580578411741672781621471584769962347848830184208925050893688572731327354525416111283779218001811737280574415104533360359078191687316866217163729650045748106164867128799968808650215153981818638664506678347305962211701558706972321341180310128692669472815783278744075385221978694475419883523922554446712123646288820548300078834102545362079877585993892653332026992912249995779884782507097348793703665860699982518932543631643586705924772887725697564390119278092647321430315910378012473200497367711767919132757548099474678460968480918358935511931063943934985774506789154464216749551878464921347516755654130559633387084883506367150612442080283658427567950039164434549272660784419081337030997440168534266191826800201919518293790179965398959604184388224587695093018156054404313276853517598188099044817471824957214090475115634512654765462931276388615238811607778873188472245245057024809097933744534868070343865284095465786571112547433468106102960066542862098604991238190783522338390674985226918590694547433061386466651726573810331824552375816718424726807645066268352374996591454336900927374827086880807554384305478254290349353946914909248298340110906175736525493857963976887595336759284167577773590883869791467387004143224911806073701162592242838221138488636925778865621262660576159095189942890923221584923884901326204372058679281610280269653615328302954768359216283792890538491740781881692753292377318105215218843441274265727768461868802068009077617694709816502626992901062864776753702749380873577097679943192350407692714388724402988987856312996487921843725904293821886009673105251093610445115080336489708856036604319856969345708636998668751532695492567524202989280678020065562131923319870826921843261844286446375851095198110149323400934097042129722546414118011311821300677565786803208510254032488863953477577041699499451474325508381797568599846285238607515410409317721002443857243403325520336843433199055720359683036084970259955799911823782915994783542182356980664110099649989447689634661894460528756713002588340842665831527485883152502442649982130090269393994431481109413995500400364959094957965790734722402270727823151219775071212872344964852479332885448381449931458280355361633287899056882468151613958078426971736408547184945623492306685653556347193744719168202034950400195944397017432835450141230439696856622768140679489917847395229924108925864047388307006933347620884762975035697349311429036334237295304600266072444161439469749983450567912040361204324011035843323710535866461802197103844930484461918370377516265477760650846805596088582873802952304003897811283820085010300606078297299813645126656288814509226323483828058283953980992873361732259971870774157094329201605752555857333331727145087014776675025557783123106837262818229570475265395224811532145747829236448472694253174292899541379064133817464215133534381445518614100808532892872220498303764362847694575930847449170383326669215774811686438132243509352905051084676891930827122207404372281224867970857526797457328603587042209337698796893807544498521904966234494847938351197510796885336985684579973618648781356429931489537960605669021498313782623229051963695156262909425149144602633542756663413441219441903943348047370513982735675930626017829772687972211905259521469461602896319968488290300498892669313161870902700358287107211703462069123549900281568649420872061795099534849554522774682607367460141971943757694252930410572283880251356115610010129866345225207260268817459158544966001874076055684116340162405010218301152691267010908623516847813107105022474075853349532710639786269711885532841605740758231344232791665399964618605148990204956021688527284179040524763905569911815913825553090565163039663510501993415435613968938269532460872653938024589004644867948670454673304114329054992253443263993017390484284270776698465045739514647057163925133360369696652476588329960310828707228913620293038823150597908179465451696960500903311597329484688248578577833298960657167627145458095291142274197018182425433971224463590747040386634184304044663170128518798537421599453039801094503519774540425533992590538343784988469461883714480845963821243452005471999185233312031836148315975044777899229864792718897379951904758276144500914569331136348915238562967144895636379635737075260563837526604337353818333995276167016765055587883775975582990842842920899111656386869168627406205671744186476707920372517036770661767716076323351285886139247783275377902117546921293250733955852114788959536808688230398384013467719171089983818639739938475057191372036339227899742881507390597812300542071830906056693336017368727293665307848001627626022916817409499450525857405075332918859335498292241931191222208756199541444013899784916436313824628471961740523949640999359212571470620676114098511497030895764065717023973063527989718531020740893215845980028479297605874808926165526958361524815917486864870201564683582112726716812563049855387331416026541625176834083924701375776262880199415632279470784041054640236869727463647674412465851687439091436665182052048642227679594210141940487950919946522378660682007235207992313484238201826228588959828079217367736536889308024993269717693306337774642244556634293680434481121593970405614186313922154173859349607663197650437791965904925034667137608915972226595711333025542445942390413800642835677812128220878359623921064153734796786126108381822950736982930472420190026453221497407762568129706142236544216332422724660546112435068090707844082681961605167903327916079505870400236675511461567002292780318800528424663049692965244824819314966324998062396902846655564862886996609601885080974178951771294905654590911280067196131697973289324770471940548031109009635414917285292233719701865008644083845891492887516981638564270905358925494168920833765719700117882182443844806442117370028219645683583242994547236880803304306561406337068778662561298756835024592234289223011595352664986800526503509287235157400493979329302644647956510943349726021158287436880248319697644956097414433105505285330900819227653121112657151955958482807532442817258606114974546751390924321457362315421403850771012693181419451630144984930032417087244933299614674072187346776345822316212988248174601898576883678238967384045875497079989477632797425685659082197540744256660003840474964160323433691516508064335429311143865196095895747917454688594936485694993839731385912374564870710948672853669420893613405633113454789328707743869990543132723690661168005278295103087792419992866941565893414428856781101053635279822130690375174854778040740385944898362526746714108078944363122860578334943434954947801617715623750771669872739716586233960768723418065069079107579733936757012929756408058560957776323042575408830152297866048371941565210978500368205239632460055358494696753268168431683736804043702968304439351108974261411190247630600956946943211127448763516654966377079244633799206319787280463441262691322889834810769831956332333887629200683039993769868126611175208409721954269734792739118940041938850571153243107406815791399986555021666982118232549090462745506675446885452553527192958035941233624153123503878527561357338608924914802459535090569525545974824851309900822584520666371739802768192741772045844909520725959675663103053898143710360298703035877963265527778593692882000136728783421381366077710463124605627586952833576001450044064394759583994745131758720455351398289151740024359788140989466035900645092815390231859331127070258093827199297222324391949154415635191974791725995241732748498223151766208561626633704683851674084273990338923960884396576207269744723931988127342997595312205030394406780903100208918445421461917093168331316344483317652822297643254343545342879762098109514868271192049192502619654260243959760250128355661643342399024231920159446036167615134376084666215766436372904622490369675617660867843413495378332785535559294736385597356320149183275993402182559491221922142334654135386841455980026205016653099562892071901230744345036273555753863823134807718254412022768916414355217392080269139974373834339271754175794964280523388938188014261145398572394221996572120397548342406362659426463133621893396787688783009023718695874060348097528317430989815013895491458519644353502008039667792040012741489264448229468989229806599848381047749994233979610046658480240887107794232664902171952609454424410605426765215722657883687604200231150260887444368078854825121550737780651095280176015397316953066148469459649919305919439370169103042329074035696682679030064042139973808757806917766051289282829750297013094433918445504098738399613534576016989489552285480845383087128597217252558598637845222509216070092952714874027265455827582043229413294688447585589316464602788761672719003892936589881733062296204512905201012420514799611808651168822022305368435451179009821929595565178524926934001970399963501385803956516530517267010964020158300218469658626898839707096456123928054173769006192157094416521115110471820610324283424828216138408839697215855430645096164497770660704472080764647205784526761277000305593860529772148074036088049949822651114954982127455420930141342923190154563675115345746765536735022052780231168258713134625472301296002881447442932542675238260351674924370202695064444982134668797082155944484611466992197717829843501029761714477070150641189803710169537720999711948484994612916248164757861653506998594700120287970435886903593551743350250072965782449182271316651631531936226723069276763308301026600996992909972281563752397670826682929860937863872781683573994621916049246388067408540662619276600965754515442887596555204139549800906523535788488850554147777864842263339758411352912176747985308661226758622937088609049105591641111377337791069352761869735525725889907767759223736325458658859803213367751592228441342705215721704691530919106779614912272978844624664349363435474767465991240687261135066244301181640942890250128040651365231574493168182379074670787262022321927243491301241995263204489016676934189724965421856644655694200571149840713426507213844663112600126921341692363593662629799956686102060841849325612843656857345960956603500571216791564694507786495619392973671146715160705798330780306768875887910203549133660471189977075907016895999372290206190940963107424764587134599581143850564963306742475979016600851044471331444937966910260054402575362050131718636310411143284749967258420192558961593195332905735039185802309662418088182222287616755350704846870572926014017777318589444469851526572849645344391850296014237337053642022907428907525113369864900238101389033357366521271590605347941058106964417556834249439463992637022933938004065841944912847993720458885092912236058606420438811576052721392203514720343785373590116008156698063985025441711319035683579574998161153449568066522420833602844255340259166820374957650715079460702254950501894810614939815968479410552795771461906326074377652591212648118890992922437156661282473171008623720655156288068268955545542826386572359984715903182914587877069838599231177953379462227291746277941389668827529696131658267898371500905506498662252622663842692917184889131041144761243520567386837980288175384684560266635333239205224584851105849813460099906277122048144555472334999768824878035196645386818867880197389845823057303860348057815733704760429996411303303139173118089607229039877294340323402548092676396219068299472774187071878794469487174732506261269946697288310164638454514055360122541928660166637973356899089727565483148615301049470904343568496654881818392951465692607489966089600970040593810851218719016792812407416368419197818653749263321137360028066219040797185082480956352157651892114305751204063108201560003794658342129300962308412928908135809271931683088479381004860627299911074783928841953496303492798597041797012825689744528469616142515009453224359061865664913984975263068164779967731579282051461807322078301174490090281730575696280765374570993621720156631104004022602505716181898972994107590348782073888183407577433066066862613925349764458366334205807233299401326971515077009608143896768341847304921675732820928874147547978387000149248208921459290912810908850346388323579170352403987030063068107847707669859365049528922246251480055806972953053452054273637421121515080311757850456004259394142408482956490098598314412235952557782934044385610078498669686576744555131545507962796874670367749057816561837531482799663354809519156683111168418094613564228622827055251655305870394217088689459841416281199087078129767427712280912161936841466562732457093901807423556148231045339953680297198916213974251815375522532296296416225195481068113602766125123269379347747850436797172535222782886114469902055693394636531748534227640794800132064539105383975407935539592029194703179446638241477259239527814955619029045898952567945285552083799703782869559339737173008195245221933980796959537115224253261199538383459831523140105769977167045686970033000445629621691769317279527641263323763486731422742916653164066437320234154557747774943858342925315365758473121655001557021461231811869904915117044242779345138959479931446349077294023731943178827379026874047941602038184428453403071973744108090365659887048679044623757966376771534937631010237575954989264480190592621065142541615637037289071968947719438310764917693221384743235922818720985864781993751132535613840076464472475690752912100106234152782143835299233152089531637549250067779557270081901203772977801470155606915013323751524957051377951132908913104908713951243897021998516705583455638753635748940223600493666796694428487673184924574358530407092219051908822677719942302602840386397596042126609847376199121162884580078054022616613498289532919365447372732051060377372218058453133223656845629799855846036880769030676676595473717827233174183573893453801702561452653722189425192796111580072523584925237096138928819647313338630012499349925032670235111223273047205119023191259986392002709146911719865473700252676199301415019968042311741919739532686753854807528893770529721793158653703852987724589137684481494092683308348072942802259455931260576952584803611084896983833070666299236032055844316946745653016636945480852560030846986806230686632706821943909261514191602972720363137381646262411664206681482423330782672017844925937572627577902791246518545145784413574739173204622018153837263257756910189584650844967460864190633475148188422007673359866978777729743448101172362821939865759636244243158544638243685501214022568700310023158570985428896983242783154183333469365899428727687686124784904220491499090943641889066618811973715448765530647858032516982160468990715679175026934791460905732989389243251145054226568191853121699431212111559007362347801559856151029005343545581588398006126477358472518296031416627856227943275717693726129070552884765691550553417495344866437339284149882239418052479479417953312439201321807254377435011129647030348547729438889412857735134464539089120148024897415838810072825172220938295290714514404990928059322960546034651422398538697213569472441613706101129434417511888861579716325081788288055412018004231714973406898380924909198806255489930081344431014329819311389982237096597761982384311055021272780303206643572763435721950411682312710312169750973832855971480390756891676937695774781052589618134732490380894821211784593925746799639031527947219741085434051806010256338653815104602465160872065509365533794501692940933058674876325530332768910141617643222924449527967479685726452340488993233147060804157540263465705715867914182057436848177085125079728193733903516670142885216499241794707887649714590033791545159541842548700318837112311504135290617530460192785563923988806260458838174287444156734061381302897743781978819740061231849609901902333220720248539925733940017561586012187940949746638658301649376934326781931168259535500499292753678889854483731999639240538416622480432235710370023673549694133620819028045329745522522244556950500997397728131745268577494392702141978109748072668910685869726331780393269082849147514106426661404772111160605848617701183809383360007011096503938297402963020660374350720094579346336552236817694352840709641709595063503044143449690131997991278319109164516429424479603001366420274449281496543705203449906036390888889196545969490792199770837307243124883494088998576764753629728578810516644296079917467756592827151296064067402507386896252379651045353770173564098254704582760127661741892499216516238739872632727981806848976946916380970532590290117151636763655302724475139578096562073804613929148438704042717306180555790140060975152981213701641104229503802096477661434517444663579695121144029080768814739456109785457897173173665940375977538686757373451427176333728932985054085874814328056707884894028870187147472495931662299301041896008239896450633216416387857190555094469040803518287528666257053442242296722635448417354965405904303092416415215249176002891156781232953297830004404776263511991347810121063687928890191127142447356121948342640792169736543868451104209156892645619700630321395305419888919645310525377063841422590816429848899747294929364466497020192291881878945627147587857609383809991109822050263267892548105534880956661328247120347123673372069278140206217235852847230788466125485264738618242684804841698048720085150119095013964260123035329128262621810355882762771538107765758203683218126658111630838806903697125156154247671012358051828048291684897624880728722012420975280268930918138724126625703832421198776121941715051580179478432152024021625569711701516571408643646036748552180701520209470996120790569754984000686708052567844701729212107144293304741911240524542257374853033939368383217252075568373139166628548076903359844617640897391015016704150712716121791357853575175863261378654020787751863459044336375717235413095889034324217640607086504295059988304395071123158222340638950187266148029386218071577485977010309655844116644691328907580111246530352709986905615239930137514526815258081478984573502922481811530038753294237675989425759783400784664016356650566593668271864349714635080167687566603488680192778514779980928682316726890551493633154664928712382433649946185400648440559749292667981011954282601431057051717535314719743799968224404366637120933545538031866680151355148398572061196888779578760418530086317756198573901108250259084084050695125985101930526817402925801914060583322829456230810003900335121184362528547956513184768911007580745334142551462947524339620965556995613154897015982570471690395053015533886909328198139968074254957773940377557571737414924892243897252746296629725829657276193819246556165203037635007296676918194765390339092508865333105036537805514406807123089340583737488303292050554766426989774995934192005045163836363876367413794164196798271547297610032468307688916492673056681631900947364868293997423838876938187528995966507572328942940095968777809119441541846885452503001490387410799810706245296191620130809814324407378693037148847574259457690930140739425719116702424165629149746408007071882302096805415483082385241376197783685669335183263560973711509497681199765266123434038465805753299898431670771818021078785956596224429900193181335851995858215975999545260565904758051976438622858235269634619505771849261348934039443809929825935690998429141334392577599562926122872283238828067828236227612129185925480986303310334261802917927766456392852007264449384135738057854942218390831359983328039674533667014850947373369628998762203831114408391643289340156414546922014056259546196620887210131902511500178389296447391887442996091666913397881413633021462433801803258033968323302633556691833568963711481446218476607204580708337842630511744034856136521375088583396972545208141199353145463956412253211271887077147987309642914408859602716983928012426598774396530816633500953520238339906710461096889067557413577272500949011792697216806285664948402039833620027450958959406685977114192577127637941035996640862269420591954338335935066662026613556379869378483568754943998257854847963704669576344810729417584009616503484692347081158762634979406177878282734349939932651300847455575442701530392484208208949321499351387204865835337443021782627179747803032810051662728728714508274655659436442830390296629595354540209550994809299772292340469212450975250672409034947432191563231564076729797973552849909754870758827039556572087199426635708184158922435764586702043994970049868650328969106393575664311802877830193403278715774321415772705900985156602189596546531263997511176221596020841506844320830752411966467770558730102397416185633046812827032570983070172657807974744131834980176483226979352239835707475984203009575629882550034687389961879634029102300471698200645948926664024064913288774063149104444865587529815804523158236102728452374854386707498263241469081827073474918881768388683404482606330406835128933802914977041729327145086583269723010878576545526334849522456669074766675480462174011204459436022130417043155332483813963073430886009722874841685695913006276182519925115626461761227567578685955762781226262649942140646684887808347746711039741531324529486302819228991049219110627333319010566017804465167593085231774420306434907464411188532322754299820940788168146429612141467097901286427962695385152721963862690085640832793339263059597417004685297001379745578378303336962989506197651677153906841279598664525749387794921080302081768305970333306381884555849926789865885830199036554582288020516121747350911786178044712996753613721701518207420288755792455863635305535767911831479941675149643370803288881517449227503950145385254487945640433517241241355728276116696063190374650387537079892748656992635449789806792256071044559773105436610082100278716622904933882262511315170592086215966411472488294171381039485903899596154361437010394147854201333969806317097172232879270740887147282910401131444332612972459393429538070381896005511742010983273636182299625077855013585256983516539855813939972534520566012392676891099318144291142099794603272870307730982672148462198502145556863735725105409599610671233255586340863000484244949423085638829778939867961593463277986857194240321591410822549448688553475188901834774106614891751980342868998796355621512289315141746065113874860386413810271812762263169407118501087061838937960878177966283438708072166920072692186934842637721149081484991105887679207761785361321352256351408057255429452806938735493080653313124238483727015520127042903489401447985030672581773234988024864992321543528180845122917074243488771030537516853039575326645419951847675487782093897228297465894724446440942559936590778450773800341987550956820439847557144282966037531556349520402409668530018639512425381586766157847124242621290185389675790405204260161435316216555355395165134190097295058371499594683369695288513096685650429160574362362001749672748708549876976569323496455081587870960349627701015100386196610642967417749114899316259467899927680926243483263493703911889370597231522736749190484395882914854699746571312487763275156537400049448230826381863471249509764663993631902134610912936007755392558643174098400446367564861148305620359222493453035474968828931155237363316561876425203483621239938609121170941487752257500632932899235623221887596327475681960553942274887059793717676700474614984295859742258563836881930653268176430942319088610912019560884617031623642245699258828683603274650525806678809131373437325462534532408662255702031439563147480353788158889597088365358007995227444681681875018422580475633955982595809905269425403928833103672209511117249145904424336403534880138092076403397198081850180162180826435989374304033936074156657320223072174185731820490524881854122820726467793573584548672363448155816069690899898246152623368706298154146658985980558027083476747673502479117232561123652622637046002105247513017056445646254618702671160942798342853703912964091179731489158116687313395763562382390324518965124171988401427206173688546191500541077456587346450418303146869055770712131294036962840344894086591945692292577854036651629623401773732504789260090675796197079224336426311969430790636967820444228427716617277729421586540177402321669123336888331512090531464918057307314338594741317219969834139523144339720544548627287715520735656620294620284057102544653737097390695686971521102990281913497066690601712764958364942494852569530364752856627604658228710859896604857109617774103799612020378030300741347951254144466769144361005812207079661566520355472278133537454528141776260646213144968841087720587834267171499776809301223339289204524213617735138014464529651663874103452739935243009412581301186913254031674009157292681414272106571704614974461799147536899091277826377364834410463196478075509222900338689650308900970133050406300515277427316727101447213436432260383857533695646844639606088460682124909565391748729122692741394659313846051003522898584533203049552115655494351746676864329185689013204343483176109182035162736607651385994938891340567492234905813095039850301884825753147960909314594457366569661515700029997870414332733806237558896026636158932386009356404077075854084262928124597788995808859324617082017053506999542886167089372245383772833516101967090787776255477329412331311375563225272558051446728371822064929927735451689682759952465594487853317370218139497255807731574791611721950815435310420047038611571776531960630164842213365803883438337560132158901089571753653319983783110762055681177704087564963014406778031276234679904681701931438165677149275385289701255182559471072312484302757473852372994848633447849797253197587095958438705535705365927316643538576799793323728069467586181911811353647170991347795261716211830697527611443675114364379997824301358888149693170601802361042033230229187631564909847359444064322511757641932929381706175932050066181141721536445370686062177563130215314313610778767003148168197131543502289539762176806642031339709607314168042079123043290136435503649970706522578134273194149419055690077154758028857197817513560980479908273818190297224768313164406391420535598839049694912127879911277826094753262630378628135608575378840565647791355609870102571303673359611814273569240568336593785515342509713997097984085056425366011343347834559748249286217612691066155058944079155708143247155015971167712312377639737583637207475888776023019567295782479715878426333580440508587456064862571808682948281284817912846352695901544371200426985469589992185522811442317371254343582849448224863442930908116723057555259409351878998145879985946674877187565306339992829851591283803132230034784936178587745388186398913876106832885799436293932132124009121327664484433478268927015817991841492286631101436616240338459505900334154186917156907104398241556719882905053483428682667017570585052213875692173949005302594086975380536532988819614448137897340583869657063985113732215294548957955392749410235070229012934092693902625842984111934924428604369271909777535846856121700941750624497010182031048641266926648841473606191568808312603137824572383835729598229336376809963126368981651252309129233396505358077251646381462307314384021889234092830206173199453501299336764294023392022223600830101040183671547966776682745735144371783164543153569445600754212842471278190156037828397549399012132157837113131256342488674504283386954001874590513329586050666830528095965422408827059873017866062124182588353916405756890446903214019023761088073213849208635945704588973828786148806122873138722903182711704295090058692832044444592927732108494641214166453287931076601621343152109087282876926509493008758449365308005735322898870708664729970050737576296102186207973667264866589195040522689251928742190215915364165795175773564153899965891720057766787981450944085696723897995262912999186773497475416320869569005303469058368911184836668839567766620243191295851171220281505134725140561821149839407682691221798738027226556030047775771825009053450956453183092754056380301824290892292986939350128413332433780440345960603271319983383651805533460374332067204818897319854445596236926217809212404255138660108622268115307150563589310226394584255846604130919665964705329433720646143634441968820298774971721920671762454823520509138891998548956616598003869115907019812361831225128242720383591286058211406415124157475880086637680532907213111908474193125160384131551841365537660003788795985669800285898561725062155768504751504430587992993062358408333828233139918111808560376666580999947810320067422078113228282233479521941656815741966065026701864170695964224904171709224258804902062320242930916316563544798212663602615549014811209477169284406523266310060549409794869261723956804323480291956571672776696498004119750067209729293413148589014300313837233194181870070462296183268233675459278158525195065225823258682665078430383126969082850346018729906902568334006750484146035820152334561625065325535041213436628542073336839425896666725257366224059817414873135165994986545140595132304683090925806064191184728560306227390428378561449115870760682359603551585353647125234061082917149059748424597259959016737437137658799073181344025877381329850334451635564253302003538865830266806533643210474769842534764573676532590822652351387556775365796712717286677431265036451276486000592454812464735494657263139198035692316938781413710162691224205451526936587059782937952938006229473719361672877080201498481667191607516450120383160428439430929481909667448166953045503280281418768688497151113356567202601061534382108298035448251609443668319465961786976767779635261862555978996168581549892061967222384155974655185925571195636715579503455407630955704003735775822687717392033944321065947048770138602875878749475031998437630874893093302550705486190685651732358387533199072909987516780250970617435639276266173327656173827161323556774644564964942644227409634555051197403692798188585142484960426569836183620480390469107524037726371567657993586473410616127853451803607223476586461244522091168141277795094621536444844739440314498986771326047344715748630512826943856472958446243339453276077519738303996895406588740188363701801896367814293079832635908799848990954790495091154361359189020099081497786219256069514961752972029203600328282805540712071285386182704674987828765568172553002996252900849330036098131089372129677339555370257187664676139273870311043579645146046160403728190336327066182132920877492077466489359623128641227671625497275362779672472161334914932749541207983421241139145403190685117045174001897926345729245622950031772744328673726787264967438918413483636317202730761949521294015086412085802688579280133939287657883533620848380968448188645895962088297336036854477674922983045898501194608943089397743179074499321845133469151383580260753706628286337212240282369362775551653913565295534128803016316053222661873582678609546633325518917737491106933472876433391058532574710370627306490524227314524378866949964338712800292230542327183531806158925596059308551481832138108410338877701984530600655688604526262362603572083053220485868283085150481744384304896389026803105943916372037322552497850766246456256173482683691970059837718445932371739015936028238866223226183854776152057340378576463236766144520587170205002538352334690125507616904202741552467701656465144091084440252317286717833441820734875027280754727765133817722329103251956552145333336269613129905655522728425306603735389862455578836878976832710519641305280514062661727885861802398596591882107031274877466626888942920040510467093652427397174265963172227910177268147555785346732009535061410453721758930565820224994869660430888801710341824129725479768528910891868996085913934870878197514281735226604342349634832569244249224426605524256112021053647517732655869439903911325296706062433343368284466389804463583244463234913945246345732390012208116562057927414738739539571650635843929613026092372755792989994541626387825354963501475630625414276483334992550511590621004393964578383095910087730639706741594755514651136540260803288938046082511544179648017128842625386028552471181350387261955392686204616289073703726931256650661852819644462426148534253171578649921513981852743214515076338978993492892573961068007838068341264882613616653352633497634790885645538116429604252822156479658118269414722912109748672480561705293466792161458982909050614089905391470902686844718850083715984791943435046079379375223426623383641197176911815892251068807543318696869854547786322098226958959688303730985963537843044467542255880066675453831384842045999023974198390149995561334086711686273796257629419740184187985823796826541146485926223111835254439035195555908335388205511142156026137744141579527414656356108550921522950257955836370748233594546270665015394747150644159496547846388159659390910390360106128474683424773115648440197227212761103804115201308545826471155885748119311758701154084103207770400724921697064478852278406200328326856683027365271707974718922408624138438693246933520648150529040036655620769431425167307840008472450874853571590344338692448333125099437012789461762676928200366286321065475473458781522962379408044971834197891799227921100297613175208745308695690460885376249492158476437507063867450292550134606750683256732210342607572266938084554917786621340040284149872348036531996922067309189902160136079648801768651005090086823093177277903591622430135961746959429460673288276610411324624667348038248637597799774284433322987538989294885920149572541442844912493542950091402572036836972310955395889898480960990704987849692795011692870662557705055782458380235953551341932382228052279303482696391824041174106375722727920908825404528763741125613944035807300157584664004139318292365226198687813662158889339715613217653824085638982311816854820016389402548763829019737690663535429790482581791989493737547697261162543824342608666104680460182268456948550870164478397274968699034208378100206351853977464915658078229824788114085101273444153785017126027828002501360008750640551955516328351663691561154664090644230509371767669812626478718050411257368493144815378032595908057908998521790638302374773365466128236022139323601641890605473645734000738163171088926764117638856297156298235643286248863773046491974844285276258381159415864772626415874326873142978247605882023704824332438546878266468672707095408323470675990893570103473959955266747097028199437306670926881126080373413516048901614046593341511505547857803567757569365390662190477509107180408620709364789034051025351388656829247269250796944112076798743072596548976000950360363936533599162237005156847012641916557982050897453327185204535798256713273590334538028809761111163354849598454823933021592627001787873828305572852749289548508007152087947108124630907868075348507711100161977052049695245194463405892571752087340744234860460420433799370674973000704500107679607773657017001634054806110728661156255949323543884977495204377872224572273321024348821631346517904978143203838472615553852462820536190864791595933874162564188655853699698642240018485355653757989966656160111152919682055284403365244600363833859758292602973611300239716999603901571027088665775062189461855548622817508399938638345234943453669160148920831605324132008936549701420152399911388348759600504248375470028463156623953653553612152924485261232825191380421864772922441744485979199819806526847376367423970514843968746726220891395628017374156075769857104533828731465799795281584949026976619203463122423631732428186655404070775819339757170847346686497317739589734307612040497229767945569909423261692328056433634216296923763972209935196428881521547565345829856945580266530429319722410257636536739838438964848363903947855269439743348709313512121304027997694199639503337165479126314924478507639780552679361242190065012390021458489167443393005655691827446824944675562636988541192231808827206359978244402517364488931583053034883779579229497342041232112095261191877086936892372507851696357877626375418225525048729430080850416789950816641882325044583847550121990041068103403592072635242454109431467746146417618304226334100144070731981838677682184039031310302245761447574905680062376177488086033705713658994588590562023580929024472981280168439275147826456500950566790658301131981502126181795705023466841962306469753515730443406828606043141168277190447940867865389057733922168368939033791759900605219804475864949572572707834269709370996135922364274921785421660447254912864521525107226710584585980891150872999322340730968372414869919317397776893351245951322054175618060946263560774874030440234417727924210918193708199097679760983315664679958015233909105195133679755157763785923258247006084555491060009770217245595288619866606886921419863152771743865499880471424899442397136623308640660305936917890532612338101729488835079791882734615641114800412633935279158281658376720275917718808662393583623211693835127240456630108724122320732512654036648770292538866323053476374812058229309073821872085595514580156180073141067440339018868757311473724646342682206980293367227498871996862833510814696120448851796220068671105593937233632827131844910496183025472370598959354729821378989541158352760840529925425796791448109037973107135775686395388299812350004313859374809716734005653536747666301062338327107040814291637468558638947783689965644149586584002091053773261674615193390348137512483702659877527648962503249287359107741037652654792505948433275450125872317882141168399043278544874353468662163114253160826495827485824538576541581626730585480328338694057812479122951564526228108621163243929533386301593933958319458436809542651375438804108310979591945220114400574289156091346649033781593109898271290062798572154274915167564389745581094773589388453099380142998493764073014537886113473443827581002397544404272010301355281526258164390554610578676665859048314414991242684039405332085135355711906744793937560407131320786093461047540933219316234683716249640879502037007676296976984660284309911646440811771170629036885705180336020057946618695190829355101199677059639466257832633434055297501497493306250206311821322292342787538808072201679541438147472594983173187606764388392179740006603862024127242892315396072843773466763719813622615413833094995072079293055302385105601271139807793311973320239443489601654996708550547911504815663165286539995612008170335042132413155090842804025861683980427377763243114840242886486345175237550496116382904255205716433682491091156986842750708485779358084333778625994935836269208041503710761569238886449517059927436987153138478125285287792570274572944677625484001219343503201524311329691780168466814027794672159713380520468702929384286401634624490996266525979693952735720620561847279946215375506169749276528590085298171012595882696984225465450288307804694141950202099172086198659331832226651211897786827547472635582553386734619289930336532086085330333165474235167863210685409780716477396958690502529659154834828317857764290929803990090454573664308568632708647987426707603302018375584152297988402057652284316840917486913812761218789801700727483715596733208672939019328542988424313473869648211410747958378228644121804979274695822734524575652865809753214679643009160537823690754393334480672585591339627975562174787126857445571446002089252643991259437981975903379329787102354303435345152310530020696152035913929905231262163333326107374726483976763875328357392164187388978885914675783312509567662464753069103430697939810494151208222138864944368558103881702924358934738782613298341416264179941105984158808559546899423645448058118096334179984212760787349841953574445461186794805671392402412873746194530924467458197517184825300551079710845191693757201617622807470293112018282037296146788558357853879039369624444113723716601310382516952927203107662251171842913617088755109132248074423800897942488292306263604664639751875800502747901240189305935595008451860461757006421786781221267479088439892800806519641780037745004780794836849670551344059053983043146259765398825997921221664127963839547869100456648796321913463123533880687785987092421485099591284639295900495349542808374356129362447278448468254780181091985295256065509603754427286804226308117079073899304893599204888075759542828878945353614779557702624424807968539950900404330076760762039377465626210402935664454600304968399178672684868473632343256966961897327441765869478750015305944519177512077815131860986675350047129804504106541571726747216390775152357809915156382156657142094530232021690630006635068503336277704435530972200778800400238980682239064141591355743797639740404702937778731993187465868805615992447576581673499305355641886467223775216377635485096013610323161145835452955581574663796436334010614274723598642011684812993985794945599670356205107458191226233677746559890113481217851078944350594563484518850851857581904648594351580734157026962336451668361838062142315291917668002726277618895944348627542013351398743854817248794964170010391467014189416784606398935895688633070221728037271695087723288955985982031677755895019850789810031674502158882835455037071935533637414731021762157584571803343326349586454367540198634582417426758891247283711949168495422973048918350987037855474297702040872089835287581079450834852387126200771350861828656799653150488885152879868005627206060365609286515553781555819827285568999297805110397803069033041356521132970476844603373129021710138147620891843876633406745658917252744355143575763063811572928652910858916780787360045689985889902384115147132997070724169470074287365817466075785906496061476845516417399794733920734260482706002977737868800225238368946998935570773333811501931959779730985931970543719660436265274016684274784676693167443112654711829221166351942796435551038089756770560366365323067473981403655729289524626062005165793028706721206645246857797252026100043796413432687959111551341474663051299789124579197190854828995165307846057133092274909692757316069330906367987373650213962842279291191932425827470594943950775762697012619460766568357035108040103804627162385810088982941921254466286351647827972627519182344817699285807255517828527797146605109807774212128980054028223624689705832449921994121278105548988139215756727168576450698840986173469625341718635435144409680510404181331680641009163770453875855801011143728156974976816005793201849367079378689489901957319356107074974260642085792118328085080438279910555726436185493312732046804054776082114085226382324785483539284667672360971889278895200445666437342018755958245440881818471853884182838838008060054287910754512093447965933851797095898892750255335118019277670834969065349660704425298096755614003140089303733108669509391685448971279723392345444057415442886416409869537564847829539499345606190194212469198744301627563457340770098001074624156142777058556275033060615139169680394611391735210242902778428984830578550283971882020127151593850817735165365274558058612850854266896430808044544065479853751584472832247203888329353193113782031825349758399995519263955142693246847660510637600618880538493443891262906371839776170552757200431818679805488736001882832583759735323014027925268795535483864667506709251025237382797256837703043114740956735100639131258304622823303849721720427200888757497884914824851498349822723448339568226578721924754815905391908751686369781455297060931637768739227661583734527026749485086393901102363315704110152082067138505804742424749135760270895308358611344809126124739295312463705113891226881045160932575145968852658598010733962130124704333616805389465209947462633130310630584793305387396507993437418818860025911406842849771704143709406325131502772783917407196974767489475844990151753789164328229159579170188648375831268255971409024434368360807702441440405131993566385032403863615539002382890185804245199383627791687898172508990625798148697182572642474035499944961082589359966183224723279616723725313082964698768106147379563934174261579394523250279386733505425777481010815500758882483664116396955292124862854671716313059080299455420801542298190819889217268611507407869096207109021922899063012248894664944914868073726413644135426443501232661998018576773697521631740294579177597780848349954533388985515665969785270710703991185881035930898873702733638876171286560038828221427101670285986939936570079647660861691228715638521095277606025536240406209456111203253370501911735682970986768804695091582465317545239410752039077243512110719186690066495898736743369159220500379350818756160216473303756087901313806516748633036093484022721875341347601949420815649138829890532404952273651928189415429764789259322339963742861125834871978105305202552656174683836414469056125230886788833931919238857341571678452884320664025520218735893939330188429515036093960832194110551701117393043652638313380142268341810363529922949725431280980980104717153464257924709051786467510827154984471240688630379042104958132661925379573164675648082387345759069063410131099524540922185894625484179655323517683303952628065509938930745894128879380462007554888514459389138660359466716430058042312231916532687962595616700911965711040083785686111062492896247066236164426168176475994843935036332348587362081656830721343098236647065729731297184482516748381757393066951277324779307577872271578937875254341522525703286234829541808009881598249862242478687573496128929873353242319991632306510736272214027167299270566310586994191862257532795355999099532547671301625360789522098748052703727299250673089167461756019652567235526358877834003841750521235481753487966593087556522970153090520456921320642052310405286617797182030921192247178696905317984878773334302415343130348436917367649120700822366596715288431532310619203975752425097302221349452589551085606183562475661668768000491759005714433078036685745841414443530386188745141019597880918789708177694044800838137555655546859224514978525830585533425180438076152108478125933802332943474783724293478909950047079598979455705630169766709656140366438417696053894132099563572380074525011391869089269364374833832905111917601404098519425468263834121299483769995450004771679037408596500077384916389255194184003557866105140036976328606104425095508254261068969937920759133047942158491793430548064252369910582356208754375530082161323936080893880954332043474073440307441132431995304107488462833085625440651930067991518111152280662858476700063000096859898475233175543457406646895424547298367351905412676975489915904198806397712985701343872609062330764012471172022202321593024897432372128385287603318404091493810031321909702769620927106143385887080004890783244063618802950908599129539777972735782935451732390250863598087080348333004720790811158623527332915717808949080629943644922120085155709356008707463237722017697060374786397260273668545455846179790623706796113670051015410641818855849183789572741485760036559900961645646149899081760041610799164233905388434530568987914582978616128858030586651416013772114098551400593811336113001113991940911764218455768868916283427765617247468972417539253980978150440539581949209087865250538305908448388816574414416853062295501619583654974270134310631656083594001431429242545452456095799901196579234257228718138126712578577585829180868060522191577131134445384831492767332371278460715514114050976114514261888811698254564334902582775087980435335926543582980633572041098683344643537737151793038298941529994570190644985841557294640944981269843364780902191398665616953944571878620223104103544232141873573338261599408811542033230297247457551404506341705087704091608169764472744584859506964112548797244383836111592604043459734165594905766416331764393102801067397404365567024988402395104992777359342679105745262107705539082414150553829666257067277076454867247428098349715551547766182615651444375561381773565418102608810609951635114840957797958800623922124867095749707213078592601898569447171322563440940621723427776213373465668017168730148628306742106316034992770326219187344572019331586692910325091276521056015278815335694493181604761564429039862008398624538598167199102185582278704338247198899136905800433142664257405502828626847606211534420919118697581703966282194326206654452930337877314144720444488944135275525528198622559561901247185667488117864867991519393907988908344475652100703349563732086956332629995360191322769137380645543322066571617038129013961968033539129066052140160146505175255020348526463344963948147653269532418910564979779759196343677282392235223009634782907424663564000222159530019931933569283049093896401295108950651929890805771713814682886369048463262388337876593767172148352718563006317567693542040255959116619382469052815171747467657439798742841291545844713854183992508342831901193765008587533020440735954586749385900422622583994661358132610168612158853323902018941051608017937341419850667202419630199275419163293266409060481443829664392224997019446039797619933146092115488816942220922508996107589474189485997757832330442875658280326870616083295063569388597357964127954991350850499376200006725463821516600692449504635529392114579908656209696444827919170641530238206613817686910965054683888314373033529263168847184674473794443257606585414957018091423691780180028387852123187395264565671405754877317571658246770725366196374951861133061257041936038256441278789035944001640038465873737614716912986120371760412278681512363672726490862610850989186868545947709646070729075139122484451207472629549648314850367641479871710676979429235425244832305150413974955403463852718561098322195167046909141176346269583280065657502210126973768719183993594213190702839008172889232456269223456433920152709627515563130344087919837929072908914659445203872749845209690391772320852701729041492038485423180276520279221244564961381503077201608083365859366375065347967863096062170179407695052116975399388182211419914249356095940277510044815018628921759196722707216710391537615029938755529955286883627602139626983504482998865728440851210160301718615424396882245996723490441903911569128854585779069637827683784499383508128555608944926398294810972317798397210605974728333430396500339327612893568991588169137291839071277127354334240684418051751541367980719468514074697259662604032741187146201157468648531819486916595020819835649743962093672528047124004309108897054603252829722068220868606415150549141007076996656199161972803610505942242443749122830959016649323419775607095931073688824822273980461803780109245956997997628134556474913913798733678904133335032042833160562073939221247326993631457587650657483691071817597359208545147942184238146186122194299816140176333454117947103435885129850274770902927364395353665271227604063976394988000356328504145999932396881888031730445292790296559273160050539182670094890635229862373206178993938735811255893376736810924432506861233319007993097481049336319175550404652843433882996319884813286016895501466598024261683356142975334789553152875967526179082101746930835483140015151666886386418101629554115695176689116339417056333339865510566370440564493582917611490604828459404396928165373151971732876315010951451673274776802031530308843630869353563342168663728937464568348944276432429457330354319725921155999161147177819483583587369142670615720378279284669936871000476143502191741789960026642123672925683245875916058460247441613999920259960795723086804754191521045159118281429772488215668258135923530731536340087305509519919796707805117144380321312807414132335274773416146537677505365751412264181927310163669058932526085511576029372304039584377764477932233322108907092681550496861384283209258759248982832964039063262601556733662216735073474377161950532553960401228427729319478518331191163839027980001631624228483398052567261316251148483998314388279133542419137218687175048617069690782917810363943352682770747145329896887728324942606152380595717152747932451445378565202234466071576910309905219128214861654599186475402127376079679635072642443772384716242243424270339488579416275338958934539493288004200698080595730309972197495116400351326931501982065348256053388034397849054911876552344505682177468010718644217269589964403538516395447269017343661118661962365619500481710524449913764930207619581330836462118364844284276431853366779947299805662149506759585004462208077303126121152761758066597216993272477732432201956523103809273902636114575231737089758846287727927180261437684622636582829670611815805371420447065495421225971768556562106945031158561327183288483983644244837991199240797819438793275292344878526473654563269161936684054873548016337919371218194215870940388383076222861334893592251448251159708775528252024192486915095810098146914297130877129951704784015581520942322277113771641877031710229992945478524240431679940913408913198287536905184367166616718390462335369922014351594733677304273824956746394671823996205038308383502085590322796096462847794500899222781073655590474958539456924608032872993234775863093915467657358077495552533065019164899874898873756254745351085705731565364928507831119746300219468953870014759424101666887346801830888028791394464188360787996990802786129872461924526931918951664569234534766747943438160211209764461069673643214184190177493204569849871494711096775032634483635649388823673706440072381040312112283146996708594965553258809163954705416075692873376295269667397799011734322286842776118342314684105073958803645159789547478390748961455360803243802514607420317148482738678134457675648711942144342876511751014568428498282469453160487917591950157319249347919566044991130112631158189965478636309066896608815123968014045383081274740019099456568428426340274857739220905238184327620241421322131883647870592514693742199258991220568299140702794489254139869835030450568241081552529116900651853696598422629690948466537772172127851344345802924049249575268750920092225707461491666371689026892226918160636180984620026885983554573445959046524782842019477805182583838854803240562236051231961761855086383450951286303983266982753789391993094534224638420768892842298415563253680810887862071156574871261185242040729763484836014991242777739317802540074370103406129937434894280692984076069537625662916274839930308265488106496873241351083074226066728663335915278488262573585597263505570993252774696061084607836982265093267721670052312029789345481126081919413763233828213147043590765263241578072373359545254535546463694158404995309056987357788736733004414973648636487080508091495559916842781494295392443978909390105146443702764921240300467683663166662002839591526129538586751852055115957573343549243431486185459220523911257039140118389709400120506170968670061982150720953415073281508424878736202457085886920575447078051433494731378027449893598888822708010202534294597248312934505837515221601803227908256070159042544787806636769467753263430116163417949446191785441198640200278116755143420058896219200181578473825123244656731039682343537332896889337659683862283001525745564483123089032057419039057038016037372793090401184204488539947039949774829731322282672320912140946616126938684712802444292419458931439873821545332020070809217453754450791264416443040174778997433249027846640270927803404193930566866576892824640569773620076233942012711477823826035103337337667823081576308613574032946234677340979642319880062354192794608197717244216785782423788855380596708647000821353263624604273442631844589962575644823571632602353861737052254192729921359568453987867051816433915638619255825134928248807540702693953525882894401732605068032753081898319288533631953400963846130966983073247093553310037615000009520614206988104594906872385976202845590619701023115429271701588612629566901275250433106388716796706088028511461749060838677358491587242898236865468849273268678392643710278680302503014503014358235067183708553715439913623754057637220004682235953774325493393769336367059418359657827731674545022290529242871941724893197234342509407358863809295796029502620819209368775329471313995522227959245144910260931612526260660326084646406261046032805069895231063557705874864316064813432388610350749270165951430013178396297380594213731248682526710421022836755725918819784686285568502995132937771373403714862169011037844096121408398928162476497897119232794691429071355981667574624898459716239736902187674885418602123702095760576067639088190538902801833950383011716503413449619615027461775523484079453531229242471112764047949307564339880092065809949168857389760423676813353554908908615684896053041369677722478194248961920766573183487585715392280393972670625439162603477243356408901702218914911975472482028944677132058312641902231279134818151113743479338116669059524899801321288994325452781636721950731984683933593964903840091308906355241943212578647044923044479499623254783188547564130415772813312912979846284790235404465176951928725804842794903002557479100600612642655167411379820449646704431090155501536138090197620441243565567635152292142069748837913080945735926421310538149820885311612955512993412696356460090644173243638014505969781457633271220588177339353549877355368422980509096779639609630106708259515410165148682504576816762653064690569554863253623254848417722066535416413308533127465094527883939507888996613408026178014863792188530509884413050843746392494548557149289860759440269664204674964105868471981396108883163404269184449171105148571110493213846431143168071174817394176428612363207797967565934252293790836974498014426078043956948150302399889839862978673443268073328200874346815523883273614324667554415572539799980356110679507650766102631370443488196865515274328040507237282861574566157697750837999034214443149812474716271277855815229014311749577614879678207280557994472104751887649566628232523967390946730377294361729112760686536163523883335805791651663715218497958513168341020166550693986421187772097875502692437656806670233346864138296061743963873233254504603297823005186349177952631046918887359525605509385176912378763959928919135007624774016740168271404050446473553511382684098486897727327134762780484366311030772526855695533604037219384134045750540206457986987899228412544445548351923873859188194654580759630238944572580671883272076053198926451562854502822241562701872340752752894685477096506145018289822824733713460768987093599052546052127792644687475616943893743653249605427167397956979199315140755078119783003347442914783713007596189530279422572753478038619202958595700905227351126242066787396332717338002641850022506902077465200564709222842083078126769248103389790554394109053668754397241446381523868075663731065138287935193788134173849503871183903114473153973269251128902241911116759707934656998918048949253760799668733270366231833544589660069258554011433374930465209433183583524186099884185748870103963438681167990982720703647899015175391114720001848688628182028334922187650464196758510336760407205981263889805433349880761958716043222144713598861107730591372582337638699616450114102008075658836811046893965211472209347944941996019113732803267250129402000533753963098079569951865864204537384599727178999762288742096675150395913846889405881154436145803565610073497407836668607942863821436720150659237993127132326486528582609561114710957308927129012269980963145270945512452303511737930030658359129268684741821290053827994920461612794625503091408476456077080851151764145418239814055113700464295899800210503903257425663738238878697366244101414425485040080337225915064426478617489114817541807469239395611871868223506976296235449743756784927879268223061792660911744039674302646863780495948613001915983593294660934254487807980856196041660886949032908761343250127111442481469757791003612334537761567115049952883572980844988565035283285744112131693639651027019633449833619860512555860290329471517547211322216343024460394389410205033262897447452805648306448123273595261022400868960539681257549852855643278648959764159939615991754641110937340018152017491359939557156415717198490214824700541266269350959970357581137700610516330714063027182976811820046045060024995498908941902110964514786132226677001595704821442747015179785473485223785406782048046997093002609517369226075859186555856802292169135627218902927537845276698829913747896265197546279754905986644870264688108677387499944065478065911925528531772300401387723039398979867509634279221289652284024662211804793637737691105776313455777044234974825493523227576043914310859764919066730822059856981678523143954548735610286024613368454649695696406266941161093175265361692093141665578774924488605283842768968550818107299292518661222619087440738366896866155020799849211964463175619878347412258308372083841931581034866916209547223523385857679074993647307856766765825419308463610686441197976346099013666006007954867990526403147214477768334706771717930712490770416616682090344185181478430230953523009961829189752615631249288876511531951260444269312123317739138854828097432940570652370438739545742867287039792815605377609999955498225518782859518393732209470375251868830003239905121167555559848614467998623555967320763479848686938774176202337246564097302192146627217143450230147445988088343924050860074249220321330815315721126966758047615548924858435861074362045723205921727248655741820683113215841566656760341361670245008918088535591937754565094168541746910929862303884718827744379878332714488752608177105405037642708924734026636688314473848929892746369585921834692378077581977525899916704935529976419829748479904902846314250001341846238179289994458556577035599668889868293556164680659865870524087414669568978833557221297936139342021479534129187440861589019055609876903372667127541894645027302655115505137905646487472599366488458574355703501778063825117044318234951059925428579262445586347389048849188358385661578655813621323230288283950525962294539913073384159361197399997900698360469251250153077500046453582102327846076113696359284458605829563108682092720463098793926880142895014581213958287225946207124558003413164351647804418284612712238393949311041341683177066430354866405471104880751745586273196620689320484680428537427479139083854276578512076300657027639431742301737712200608734378525180072712370094762712107184247315173284396953769326664571850979630772636406834431530801175243244216498126098966117041974820558486424187306508536475956291882425960692010021488193284242142650370508701851429108044863678184351723601772838606971172066386021943157626092407505567273366713983405587823946345023956989014315910065566707177882960325710922315593797084979887302239089072221702495701218148786597063429608346799706597340062290559291158779176846255925596379456777863168767638736914594568000629252583902985454865902352067193983320800718922449237905565948342865668148084419014055200419898569316164435637392499810411693939680971123937556731065545710540821670603381601503992056442167196662086580067789711498292225487823067446317265102001472473694666134962964363487407755920695464128209828724680757886361369818791603872308874520248673546831040884196566763040722965848475366336063580752731443517912736911406565341795529239716023152582014567869846021142569479375247807432644256020830731829910444309971398788295599307545496550901870554756644866721647173944681993975267034556413796315417180337972599048806410315941875660839991893276196292213963953203684814660522166007382626710874425800423107111797062923416514985926057338949890578869003723030415576340489202859775725731196359126469858161854685083593831686972936888643305133695496632857052022513949439562960864203692498293935146466274609652406886048715941770849364151282756761481602864297753701127413933871155183765719882850679978055117794832519244696558050091393206492135296766637726803789173419471929211662373751034842714280407080727284479240403331541280035197935974323449522895920627742986745021362785574875574168213682275006245969289322921038047995769062906976632699149024674535947577437588192262694772789435729462815999005580481747862207735281676067227630134396056662998546035070231545123007513727779972749414194203977494200093634589350200081319064428204940185938500577892991572440424378343752513236407993161749752958328217433497233516974685165632304423878218108738668781993779562324119265577623280214352439773200252722847469090180022426412828933838552128273353047651987494440250906337711837425550848747960758962404873835979422607931604865082017735732315706720420661408607865979082516978700691895191873267969234867658452202461067549623135413645535886305687667802409565727844468349325908193939336804242621848729902694212965170255568152251424852301401069061672846653539086602304402254056983027157750831524687174793705928811261732695538592577803437666342345025986660383678629522561381165748935553903320987362776142546404059533293012103643989745588613775289369734755351412526469713632143397302940184816189883167696722726603157810433099768158511149105965055736500383755769087618524304064798985002573394075542636440545201788874481801639167511597411784028622745495491629116492015673377329673963575766035996427949096150638885227445143705719242597345388751634619206564677034740154925017928407818924954514862330906474805372998973557799213563174929543370139188078259296612321404958513801744713705604797333455221063113570718364739192815344327488233073347513816634785660008035049038397908861327913451209849194924753163226774304922436016308279739781885803339813079198503502595436691609499661399049300874425640935267079048339857981711960667799070791598760812850699356657643330063108868141497266527595445413304472699281680172088815782985607325719924076432717363369189175856156732594998423336434308265796061878690595691865919195814288964163263244597867292967404018786099851701802637277536830237471526728890144313523917274962852836864922600134212097111777463802917667490837829021268618588306629414425492212776520806727400237384393164182851148154279546726417045910413782778261108394569333614708694565833694504084110006976896710852484422394822055264245409502403972236656732119561823200267094483063221782149706661004531909455299921463372645201284490057507117430895064358375886140171004823853705383950480796239202611133095532321058160024772138971561990896912349637921540779711607921286949801332238790014032097667710118723151822128164284735366500886301453333760196861907862617089070799293203868906921518972368207355097055960841306400049191423795243616923964612463717866098468432792646809545030763114668157443480888758873518386592655881301529253868451895917450033763857069046551869607636215556201390046080458485675507646898610735552979820500675341827738907383283590956245625868410329928500871661329052054407923916662465614459084884197448307519473118144688460903830417758975686514100391055964792991292644254930493926158884009244035908842788208683872494375353977985751940875387200956894080777620775901289219152813527839242444455101879946655557576769159017679274950881008652472504122812674741263924684029210201693261332647129149174700028942117191868193442891170568632793627535692882829092606643655046763656684034083722412093405771274736106470925758853606730649041339709060685104217509781346882087322715128081179373838107690739152605684548493909646145833475988037458549121350776773086904274473849968110585206331397908020346902271201203468894731628970739819590261012122203792060757221554889348656851057601684664739790229538700100587355326766818783817878493362248790618620267342045098886852995265740681474371650285445597479827831424886107692191487883852841635574282212755834854621863802255856643897774449703858722773410237222998524503650301450624595761283197288443282052989420206913641603613933962806550230474234330736588459483716504595053562786177813770718638592380970863902063790483380397362149617505242668792343048312185625444995767797666398005887238366115334706138017646211375413671495307308972737543206162661379350155955773689414067683746500441441879479825460589373186641686780808518349139393813747351497321241419095099958995152120101819438322624568381097440345532424518962862488773174812508240092754445849706454867268203405474191317644808726669910597954205950643200413846291422662069996740731913152254174659838997930005972377827046296840232260940473634012588523664705494510902995074316938774314925303208668986556159110204439392448530055642669587810166409952085668540108147260335553643893049297146528300921959467344380377212688746202911721482808585972065499992000344558987869128812560030540164823901596184619809357502786068005363405200718197466863523899158676596546297929833518087019984798619144933833581679270165778104235714132716145550524441857937236347583214890193592434785266656399387904830666419450681503095879537556843707174885207270931291042525606403404943702557867733683148008558465712304387244873082661065184756336349533846851607505720280806005928596642395056703443660078470062952272083165774168309795419547687318874593885119725562457120829583471010211078323393820641766897940080806881033788435278253190952891487550500036108787866537624736790691639359650888045198807992491239574334229424302481096341997510806005449489570806466241652991490058745302536815988334322685525327943528724732530169835110702518889620696248528833904638955652864395594403364396377949986886144687849059754415854299056449925778991640527455783841899563001010284675510780985340924663202106422776239251459439571226938545537880875291613680805399379161185670347406963542335123291962339465489810510259256454453758843486363784206945566887853833695425113724095590203788956990331655617514059676396296840231257627655571337092176000812723402021634499821109813253670329053287417332067846505447446513780794008287874805938303363390552643581974171315977016345795109812084108791989476957638087297420097007288168128954064569086405418615848323305741904944165765340933047398447047315637553681400599331326463310775387322031802702414197205126521618351776225748669624450705053470927051243540579876785941586227998455653957199832730661329421216367400024952295336130732120535282717293785150114770103175692533486798499785348357378808542288032708292981651355458182275336880606631697276551032686196227162667180156588117662582485195630999033510420189188761664106773228461748401037813553064024982404233376964110313227086250399282600439051750215633181463674864875624122641361861830807102761537442993483555619961906066061097884746216505122943099525921514580592070054884683391999173799729662879762772614170578198464015509176823348146878541947117047369060360360684839914203073880461966815225970308274352724272696602144792510230042531952914278623145579120382591504007061146819249853307944297490796717713553869652406649391792973884386974883776475494584612208956024868839139317999216924261328800318781033501206487666246023709166722425247904306917710067081264269657877231437126039482489712462696020091214290519518749865587935355743128019908114584258693385542945807397587703381069327694360307819281131913509796299522499030425943943657569126370849236759830431833333361732901741288708198212835936871072485421654121197656718600260457642909825054732662987722204479570523145401437595823865095462497896208473651715962617184419860537169724293156248159610208790058714295954516641032410134879264905799745673987651222836136835596800205762847766022054073754057901597077330970372548261356362103338828036250945303960625174804422327066424282938602662520077927305581442824818743232282657873116158869067582361059669041798139565228236359130640591083503457595023937097806109640025310158335749435965154603747561611760488894516923578895363898939929447883382075474288104938846231433022658407183611857118021917206212526317324588700604891520118140646389228821905829379195775906582547757111912589973053209642543786210519593575254381278430692598750101588401179902949237797482418138914435699890452941875640653470225702858885985571971785520947004304301146203640357536627700362611136394816243417951708578270962922282707200028691795189385631373029051353148178414125762901083427660715982381504964733631841303680642220696783903722214178126615510012528941873312500383945997961863211971403168297660782920107089241427763230765928620076288223164344072108966993949538608261827240782871296299458825174670724532240976465944111662930633097780240216654484183534961938156428967548940481341468575054040899072719603664108767453414859749527739516379195513161830780521096307997228189718173998140737967867500980063294812035463846295155712917378349474257617044768189957956732432907348986907523647437707868308434854445189446900023028491466211732088482912511561974027128566538026493679563974688747693212660951223737475253560333384844811112231172285992581829449813177707380170375467661555129888920884378216267924920718572111162867648260036119901028212774020057110101488515670395244973921246505328057419725222331702984037540183043851157235555052593580067561979461698230557332029311643260846488002243181841917110462347318430769631136530196397141281883639808242620168891802559285203125420820768791539200754954389369761772130951842490243270034756090408766689603274006116852097490602234289343673642111312508787117521938051190437203884989045568054977873569946883314934705008078337511628436960447281414863177142457875429544533560693852179415444172649574216314051418870432701337206073346406864536018311474603742579412219219298082912368944691019645284706893067654694793581991505831123136960327307143345195855787051392787392718810375509466438087308149495930404040272530744973257238946725179878579876540191330731901475584332221964910756859782010411777281059671764655647889374088584515668899192557252186656348385227893730956952721870373638912972089841591198725534834158295417919139554579939991962997327689879151972807298230216949419367422386918508719027598494168128184940684190995175846559626344080174396334039580549135761010451414651482466208592157729758340365247704939931451443498340571020955681032484832469538899997536824818419435561631427151932791408169499051234894921789124534869739436881999020019132038032176459461975125620719566938776358753880628479384016611733252028005913850437083474683380808812132009718663932358367030811553344432995009650692233138853039868576341542392439971627473884028493110084270490280923421647958935113353355464923370785987918777846556775125186635195004497950841293420742164663536710425003404794923284765701097602535549215318392934024276983653495312879975638761606250609887799462292780327670457462504127751859046190265428832403885178234668810052651882678147449528924145437453296218345262264524114249433259466991863622784317713363254314961692609865391744334945866840871027833601879674900736728270331020357644054703592745135626689638503306672079931570388797542808459212148819909551234166620813766818545211821119974739355040503407332379044666219674108441225279205180445503114272684158137386405089815539707402420372733879579611587847375608569311962808931250923482055712956844299072629398750007119662962617687562508498313824842553141764999790276098050730999339953802784643638445499220910888697786554362085181522345661582066662368658702783977414191276009992495744326097095407549983449208276261886540323428126716026832850424712875475904040023891843691954971416966871572988249332723619038925321156308823760141611100077741879785634326881241862197983384096829567776624130421768887280779357785800657319925627138151618502069857707523647130493849040323374808168741099147782551651946221776018905061208272751756445289510437636068064905392682201087277203468109709021132742642309711938986589700363092696197430760585293332558123768982149390784499848466519745119705234719503345220383751100011559395985840681292190134217183773062453791955181681270815198091891535792464560589003296638169681421003743076191309454461744736436791836930545002018616003982425890769466911649022507341324900505794054384248293928564577895670510081465178984770099265731745815533632094462826956600870795542400253644506493642153696887282938278627666677433000976259202771354714419710883575021467012332578817180837644811576444548274146853232258862071555533421407378679706477915366936427700008209181024730101566532534790848664528106325057721774080690463352339149408612102692490108677091552209740166044350355785955968944325602904559553589385247134744167251014445068188331164664763667242550934995411566887863829489585620045128551902058380576605714969173257903757171229583159813498377755343773827502625308975278651697799320659792401658132202725003389469080599300824281906716016048808431881436420408587131195067611533456882649749626667475779148351480526687266078360889866267391383279796186291320856440940246495657565496497053962316338454388724127615449334635734665579860901491609684078739120053109717344584446452832162503176220883353207066888373269773856357954152417125673657482911289884730758249494057775396058073867216870566951860679126366266364065874627567225527756011766802479882783891880699432858444156246811343799455028714177939543129097595576799868510306072585774898180612828680132882699818923851824830577416685319799819791150217623173047462716954850713326176428962666508070540708708017625646279862354724564100322018312841374846156791704353413133746749521414104467777886522727606385940708950016211614839232976848147321155907832137356921339918764833940317885250019227346606297291136348829933273938828249216258134330269820142367510889789965023421456816528870961203664006293905983202680805957842625089844971087494671429660053949331402605900287326799970024254606910489257586623585268848753520864080027649315289987487500783850005785445366713886841598921568978728991244067465035517790371112441649026389003029508047845979555518104542894398299807545208388387519946925383525939734189962651162317062940959947892408346471982144531548743733106644358983689005385705285821597701017997207571882304418445802150461370813990086787062067845055007212896418060249978805670779433285686463606485575485447367177409077801095784974689095136722270696253268832516101213742657647904905081087625033384268216721262076263843359598045430362044901175739672335469275381358374394471471039871079189936822313066392136142835953726582212653080190543509153502974219755791536649691416923709224682796540784846842973889247806257470494003701725457284608772268177170466761146424375883697996468490425750674699779558428812801986977988011186564430559958515919778703818177898325233026836696737813166815876658502266191413842537113170490933984378072918449899665178138718951203455995620526335197801086448249990269441193153633659393529756959180097446569193209873929208176083267189742611821889346057818473376707812365421528022397465274595926223765606736038699509071898047887898030207618011342735666453082287916772610201090305687896922586950497173870443811194737067840779210171087541060738758027388000036900764083813723458542619392248074480418369766018705444109396979211601694529444799179200914066044667787531292763113687913222321284764273721997672840513561320246140772296644570571470930306905252274137353770873158339719221739774185052294824583231959911264142026658838212483120497381757504464633252218600229113827128242636561225695544129905932915566175773120720313450791842039364360650902946171646119762326977797024340350075383047472282515972325813484782028181899503110863355183805537823801014796410142060221296912451135886549004907996273502896345631253103201072757281430333347643349340064708374691342489370544520240499129648481506577289327353357172832471198177502126225978351331654328674852658573667156729096572037613914943027292068300014199864621496339884824176049855152619224441025829003475083252686015172058564696396138858498276123877290398794426172425366344170320750098337586495521562589676816660938251754321122941087045586690787844716991399577415742716704925979036990178122946056932357528573251845806802866931632103931815027106526448317014990012867358644802761361356801182800247890658129803589367932722565710215845811432546646277259409928824251097980680870100103046799101233817641967331181346950468533455190055120132473185191157718823898074058326680413113911700001912608496038658291677313205316743208256177404000068268604537981525395336770902671716306568289428029274237960298104159825589914005003994903524685266910887266294849858283703795186779618220054453683195590938804034788898100697293552984569455814665400878965131025807803384121951608468978310930008369105893547056831991528133694686126101425734928415013703100479802356759832844988597050373347856851175511336507981109670067283454445669619749298282399615437151803854405863389383883089227439910834419375854772700575586743990825734354516510841992748585861757424477984562768744972025395988692380999730362970531769293480115117405943509777364816436734549544140512558294659238104035370829773727066539966271091097953987919695068390079799073949932784412915478349887876464291972819709183559212175186190276019489736549925718571001600022930357139353655926359880567008399251282338788181166724956563705269396403799010478872755794775154105227934252470454697849703335026459397857299124961442140709932400795560326399175563805081946465203110039025564564874988849071638605986277274419586209804303949945385228283374075779954206736840222716084393134633011583179234889174954345621141878408648030243679017018674210649418685251339753806938411543188204672017178085490372439134125467922325228684896534539032273313162263539432343489158961213977133522619675237424176129317816699866621667742713380873089670909819771483742204243451891398814799296742769962728777131843004225842751690143321622126204718545317971125454791678236709558128981489793804566283362034645390782015380630030760557812409286007934204662052626431649681443514452642060869812762399610097096589568838387905108393962419239761546850760826872709866882800703884469655392617304325708181604552287566917778169574100859697346354933884580510095467524530350761628457336902334979870924669338187012521314625870666553301164382412821218971004966856729775711679635669275669767165188502720063433233164073090646161099218628067651775977016877922461583218541781187076671993416599711419908130440663556167903576924532875019253240696245330081645887827927366970706476385381479263892036403585241835869695381171126303913207408212306701272330920722423957758204090928765531424968831657839056794063566925546844413495954393805920823809184547009318105521723321089205072375780985062731058586177427052686046079454590153412528199427393517244220342788620332323867002335526924743848085767583343041430928477639347006193169305614484802259556567415275067859903067793102539836706223251805322025115924637663455956517490650068518272583322117203874869447611399229558352298136311918617400159990634366652350196185847182867668485326611896487278160339827192755306917349873953328268382805885318472314276324012961388968153223996133661584789892188308579665796355339151541244435772630890567286272422424233932405308076528215674220567071874939451531661196905106077600530579640756343005154260164986964176589059127414329347304952820391029440385478270377447827818835779612827855776779401459564831621889442086506023965447982136016231165151349600693964063694653269214098563134951999976228390652175482394920002587601818842357925605392591976599495374792348200065941878629737711997484453212784622889416809647771451466276263929854594752186650287916881360928898183098623134070407730882743991915632565251908781006952059186018117200723552150963580985314038431196415873645306700139852734391869377938456071993952684751959612878197979957695089672779818634626934358222360221857161346636579297358179093534398558196728710791064567942646488741284977542656836979971898633036300038260693702618512842073306924814315777353794999972760732852774477172303410349682081038098836135527505765595492004327991115276763079111592629769752776474823658021733667844054498113141972235130785846883662482280027088611201010656471408600228738297498927904709912493591722972794204961230781333134813022930779372871658276021940452144469592221999871544240238708015624865747975867869381714434283258611399829801800676823868525080484809326144166345806986170107146090437201997924437666831296715447473298061579132796078432863514439659189548176938271893409737973357637082717511219372070377489583704314500744649553300300935605262636654129335411236516573753715337639497054628734678416871069875051013418895160800135262579745973660126926309355902260950458067059452038187655918748448195395465093445130445336338074216154039469315483261735297180725557854724937424143761369234733323300163079101799538655729987615309313483120506415244928539895697226540777937049877627427083117815226856943216485844127795998588110140227340652509154796986073681672964847772675154729836371313840325450090406600936404311583194000008976564094302379315863217133731640163277430306830001493994987933591919008689480852009362266202911930252669340919570579677717128914655024986566608422136131148422346571700638310256089724724003438563176468819781978790370857400580372222175073911655171000929728792072429618643535695938195820640393597820500207425200246143195487707848998390518255731525668462449710615333431402844351168338281286317158409482921597039962601280219671872287599958129093550948789226783909012222842706957127475710231284508093460363596349431589254868200062963694917718550365106975775791606799181572858647989294031955442280887587183712983244580825577702135492058146110624900328423192248427831725823396891684694978528566898744166073784350258801037671337224157643371621933894905155757488834236184669241456384921148365522695143378238720977907151416061013669902782588041859127111148001081085038584587060598601170581763260239534301575563804714241447877545991971589046329168988001839680545549524933725835513111324409563076306561265679706512804587539493988874564182721871145236380236185013568526990912478760701559044714013345282183168753673840256393779264378175497137605091347156885083246476155212799583574004132126784053679734727285725658458187942351840487159144521129444528315018704016381174279872394889498609853193770606719619175800117439417839173059517907102993925647151005910216012846907713461662897994745423738491878818659181765283625808235753510785173993788275981890170303614702325775877893880462636184300333111801186348613480078767973018004794173615998604523760456937397202133821949734458766906657028203897603999937396425522293243561015554640369752575679537405126431000126299508810452321254438529961056304579948062778420357184330180319084332446835076906035694633455702317249330156493244828217394370456623225579719670228285330513549522235402738372290489488900520014530463788941537284399905469733618269027679357671490394441294943371334459831123082359347994491754480423764085333880298098780444273567986375371817083177238669088042532295018097090562354755646916065588216938321482597030984951527710001188250125964413318915254711739388152033454497506122075420834138300240472132538353731773010556628946021583058965491187792802444832640668604828507879044173803191920179392036819121733775216072033892233766930136979605341524372315934695921920387612859780196717228101532241239827166585415859814160365720117400305428584586254861207256741701832666701176419665109357931398734537491840632226032189332370411864497114199844156660676903296997455442536960395378097107804200309784683333223237745226059010649807057374012910004940267831815493437812886389148233326761890289646883249217475633471695127308521442164334873533696875104946720359657742052287196844652595059336782648044700330357102058171529147117136623552211596634164937729811483747755577681852202716451899202320365269177241749299507953239956010706361390996161239727862794210572874844291922960680599923218561614752566312227814426568317754892803815806780145532403995839214278672876803941026565073825679210945124374047000837136870319041512736848459943306557942711775134686126449450645003642303984003737795180033455533956924870542353447106669643249396631753160317098431645425579486476055494396122526614666208414226907834803673657512006427410536406523747460628444297222521380986919906285161816609158324964757142871838649524046292093538138371768732842891676247078911403387734330615373962980125184909586235831327683589367293903104449722914462559812780212269259216449573836799519326473516664712229727871492175127669126800041457544141639952253103304342484891129075174998078082520820152982660013367690490933587584725014640896279868704882287052837515361403669069306691774253641054826531381390965190460708905816482782400114599034645498501287795159647676225583493439740730373468006349755873784414239009657713800517925037296287568081700471120949975869352634523864290132009074932953075340403823823361312184223585245950547013508617963732865883536367153653238557240560451167392757189863995134293407674059607445441290102897905578257714013701189055738563423373860736436524039435838956183904938224821232614366500223904631616371354938660179290812602369181839975545337956387395085692719139795689621396561107025369065264405085469013141441698169234550633135113405456279552862413887664172603919772377249838392345583069996151926437024703028975612527535035620867249064998742158890660322548632043421698466742145580142494473707655527180617760097995759604841687378708511813709792150108775276052765169248584199267591982870950401456311534105214399405382265055171834444501144208585950138937381233766443856508162979730087851790118877513575774239710471072485321583141701867834513932588983632104676504394898402900352435141186976649416270055225217385682937323234007981780032071174983136517352040894204425780333645653146722906273843886530265064365243120647631625334725349696108031743832553402173849922302416762041050554732223533022249035414795154695317965278516457886728252680376856305499789275008058939997734917060385405440949166591632771869013968574966787725085265237797875604774078236296021604954392847306686797560627736582607452331583742600872598501824626208932474838155582073604003377937979961468156780787675281221947478299871497877900853886759673619205707093519469320457498655213999578853860811698269517402027522096311922233029925661351413243093117444752907807393765686212636074168294920603123370569872051514736487254479317193105743640582682223173355151912757236651475516195482587165364354142408360473716330282426323811752811124186074331044819081727636572198861674423752283068111541395517842839056221173798682532055857846940952463029594201424424671017249278834612787402961003368596361599528277113228420067754973392445268957807827310834970583578569097902785422970275987290688141508104037890356944900814179856404503244315794985660014341497874729210030848459351295167551863396091374529111094998761730757378361304547887762803925825594895708714794830090344319801825027284729019513569291673406884224118301700472004668700574577152738582097438574386240100072934362227872525040649112380958596170418674115890099759219474081744513403390672880009154175900533724924633349166727983199030553030442795559867320451968429267506310696171805632516963500533078148734007537614433001178417553262186704829390261107756330066786112517706542687083904065998136844861787063783562114328240832761187999990871380758029670271176630221502469272355829058810877115698036779529855065759616183942805396717792548743162492323987944137329410656061849223987391588531538354363225544268032351517069667242596936090158260806640071115777909319908189367612154798102976944616403816844392961159069772733919651057125053460555015938308828760152985539860617270738356827579727153589730986228609588066937199497165667393997802120903201737372640361078487338072666022367808213489239271878654417271921646968105745551801147561056580499020445303920061419981781692655966874175945111119652571606655357405637540490280323163504882726698939161712483132451930650158979684863863325569996856241262324147269214585713718554783231071864273959026902930589733393185390666607864724928708445223203974009229905192784367071433576149981078020385326387581125106932585238346361426904422082140680647216446592526507691636709328691021306236794334756658674208039213209286836819054764169639754694629582455854761992538242794937575899720579287279580420319551002493243062193069795033862627676655517782669704783544917400969119529641213249167052428119066185124695666133147813126018329633411889035730533085999677414926144864515116935684905875859442902617722289700478705168776594424814475768771906825768405068708772727185690477820395565331854032447392686786131198133566307383958492203173169522924247922831597803238031927726722078722648716127686227089898856508352609783272523474854257291955662824091101315329424547475734620170610864242275063223098112398979552016993096886380607513904074740880556808136986648293712899192901218010553324208574243930442432791850699184427360776278954846962968700725424877213925310999459243300799963465509889711369610661907594342640755297554905466930156198989722376515233145094567175073216774464719979118727600842519533543811121505156041566549803301171868053680982837009552239720622046875994163246183001897773445977599576286300079147138855789496153719633116814113220852507881196691694438620380109632161843333457302924633832799256550653868047312581401877360178524142311706742561762531385457447465724246403147007662901615762405119892644587533225001839489744127399898839445687190941038744634564594976075477638014744391529592908500741996366463313805265281765517868354436059406471648966493864265075742439599680875515908344336516659488426521509577056933335894163876338245179673973891952083845762225654161294573429298556413390251123440960568326303044378825194288314550356892004866960207473990566464704281057131150350812151344037883747839816036061894103267349852054675806915043901553856278455604693115634724327328169183013352488293851802083013363707381343209521396574306288595387809437193933349325883486722745368488930727734906195157605327373916176989354239768269461311203967370396778505311754820323477638088901020865509081966508739627235560898518543543051749145637235856607674979934085254818497999107959008906549147897707111891625275449112445119134888855396730166613286610189195573051840384862613601534304403633874410701017889682908412953393739322240700994092759026534162166712178019862066718653225566414071346789192317359155716648684518163790212658050305577789021976706141504838666064379825709166377356013509776975430465524915319798338652256775688431311425200796306124625033781203805510130732203816582325538432888214297554671497302588797484307051031966832420371274773528777180194733428418923203118393566658299224064576106149638739772556004545330567127564062679593435740361648378629417512093011145612954095334094519250354937567777956637779015594815618247699108402380810972714387859490097166927174898491076143919680806869883229670011459632549063836800465085825160344150806281382618939175534005921139608778467383182892283887355052675548567953224495281808753802388244141438267072378684665315835431312597740804312237415063834165914722165253986376696681167861726965374087144277214134280536488898850110691603530017115779750885718345383323189780318335334693884351988828687995609151492213306856823490162930498888798745592881769896120614904344719135153007636625990457422783751184898476718696026093812550916634724029226920526620897488100916552376526781888645846735407534350586493824717917422692267146727191290536558487271538915016974273350404320921567236759497534085036444640077530045636206892947694105829057595239827420127205221107079902409234248030095738318585380777326429021162359494909279141815307494222396482440465472052778917261072546215751718396711511102786885115496850347632780888037721947231035159602342992195997141545601874727069135964566195875729768654092817929233237306587054992428323419043578066338998466185108860166970917713828631508774897418439595855594528009794083602198819589252110186286006317607640257245469458883760154456457030010999583605958571516054678787177836935441413441090844755849159542907285089029281248171931904953811573573914036192156097868958635850105249553367883378296341922849436835830579433365964967066416315824490058388524553346786979793649264548297884144459477150788007911166536408252105803694061667486312461639573214781217084478156546014197851821491001900285444700508581737081229031713519107620133902358345064721030291563743176888085403391309183338070047944727168823649046924317095108119559767732856832343958661647842767433325919366620521906703998771896125185897736031753892478187061242228919094986332356685400649681365145937593102409099933719788438828713543818316359006973851868522155098829824146142701919178751960413507183328936896006355861266840492799910717511381734340682182617908044688058833781524322363129670039979078177004979432833820734147126897002500689811785968456798510067528133356249525512040910241524690181325438018289625150916121043714757252400510005145408872693345075291674426771704079562814872402558228508638542827781944629444099449295556414504848977483467125070347941681084087080925710878729804757216124867062429796328866096708603418059430779638646243978798018704488814449224044864166609394951436324268447177691427570543200159380837335388838463530469302329319536886661502890318710784273202727516228193453042553040376393803506092509292815917138590472439074437408044771314684247542609847446753853749440589486491445039478456142400929228252924372774874494657378504748365773755631791303071030372744784091178839204918912772258671917902727858858154028227273286692968954467764006510769483199605097620732514112077201641160982307807857821364597828383832926112665037400127470509451750177934726227542572588713781909465595650179396842280679019633017614084223806607170203402065477942518761746001176360786933382323386927935571127905015495250480279253601781799755467282245407483533898127935168918029774236068374579754454791578013507220654501095622804262390535030166894706219146988241961398870729534331686682111645408341441744153861674417667066518538840021024028764156800747463636832992176986708159051741410162446054140091336791902099689404305623207067269057921537660936511818103562241180501268833097422968937866858426389534323035906338249296011348445992532354320159346928175768709914630947836471483608967833033620895095356775944744697350351810762275278065516794843665875884706706682283112472021834882378143701465311681890698677961644651042859597802230195173666111636340593436468537062258637446559909298533093376216675313016658022489432453818550423712417511782415614524482721331061168887018161451990789361604091398839787607232352560766738029648011813326142472497624901153036896813856022135214365589083957781830084399131387527453404304870238132223059601000997167832596448658204635433980881690811538469672422582179087929279773008061896382471789903874477675208589216058602806045533804084676353588674331314955265894503106799369294020257193585588548083982501839712184366461524827790395754828748426883747843185098066526400430390180220399779820575262518382849960300199106906342303995720045893846613195644590836854151823993165652555670828777787571706790873754424351433349106203648475967390156299246078587268109288951160575281635310116047885813384769020012702944065213462833817087959931405959233724691749675425403425788717577018389279576123275548575977225206935237683705236332282589826493306335136916610594858907874806212217224231265920825826386284702980045979005976536344902294398805988760545379908804096212074516251796446696571309378021166643470436582541401330918233325355408041272670153686365983299900230935896839418331066253367862425898837924453272434736317811764699661498554505972780060732182436137619716761414502681973837142780687849628796893397030144348630611296214396561875495501494159424615057639129984492877435399751965208358507580326866918922446485258818920642896234302079679785175580231338053933751452906107652388680964703561630680349867727410678152457960833084905644011953715494555759091602980763981171766233647945028271520924574609200003200502653890244003264220694844073957387836158847954979790174489539074155701411945931170871714405950887252150430555537920151429483914908707575016423425019023849529450653300201539146287077985150124771272278181274414505759033959147784514645849860129410780590900779278109775528245097270016045154537529195479723089558531711000766995306180250552227150879024833310223100962920415052969872829079272246798980228682880070393395141055812063218473017842984251569929884087344904547828018514248381058519980688262175708196826408158692409198612217583379312143161909106517976988826513280556781153715898992568878814012250199439326846784458295543990974419827253947294543061963031744426543198881165298663440676068522810833687052506405583509546081028932162074492752025723657357940474330301491898331549083114447506254984560318498652301833514104690251396317288188159247562643266413328411693879899314814232339495995507792451621798661443395497067297282309839324641458212082333201178741452012006572970343396683776001430925566437282686286415894486138211385581888697999536034763255571081245053350706351004537388612566929444127869170662217049038423550238721308930374039033907411440537141503031779151378547371815512940505860993552230060150368315243813726137565773584592978181488688234198916837034765089568900260737063449463419250545314848478977896627458391392690831272011594567678858245061385585608529266274931171476511760769615903508985571290844709096063540514401883247916542518995474237840594281432929699129051031652283600125478168791241003725823283935118194457720444725646167808807987909753991295624239532641513351235289193681746383096121113779094302973926175155744346040969238869457209195860388733313388597243325826738689896954689626525768078702900970781413274881788175328007595772327382581954002987656192326291502301437861484687039855860958811970063161404114068969477231563095315356726029239846484727215592562799265519668930218778083493729632619054634605023855957038357775029022929327522739945299852606093491863669532971078456285305659957076112143744781797308103070454763320121169255995806449392979051756786767425519991501397366466952035017476322927672563451204600001990375409519492052172073452335743469731485315121401265279094294073168863679172155601494906011878221518238498047667932734073804762886288688283893603331831148956808210059191187837911451502439684585402773666303428659571701046112412303431036819371939523310452091373284546369330764139373756294124781695461546433685736373112399516270607744919887510799206617788709351513868429730857815645382019321189928284640592771486853667393590163851353524581825970614168943135845440065639471906859864312098740038334698163673175853162333888274729828029110944516655627560822923135188819281469345740828813589606672641429663323096095473326769031312694846136333740590410958182836777164099450759722841925311508582564501300325386324320710854437826225070100685760291099643776713469829513886363778981918963479219193877151532266117330696392788187689951825814307277722031573947621042410868224838761642520350009472334242319375156898269540051421141482707040093097775758718351186903193252283326972773576752756995511986452364089006578462372422431871618666927991421556001702670178823564487184787759780151995625439583210129826551304987410391579378964324919975134801581022642155163604860833138199831521366305654001821042000737531812659197879166278599035799841419328978161179370148136152453667308844194679761481241550794308291999992573978014513765838239881244535206825661753984293901188674945170408853211543226905328143565199314423958536886188337464575931048644003744208956156756043105020323013710782297328295483599690933019802810133942174800490760739520504319059223717853675065665290325065411693681722518463028532281931407738067932275186581255898340039983142915700133194477701579853153204326299085855137734072323767991038771879349500435512493863962637846695341456798544562556958593736042152233314909318489281959978473877138480581933319895560374959733998692322319036055269696443478292125688256791481872116254064949726196102393562603924789744113981179790869919459548299163114246229695787450677496659740237865997120920792492196659427289801863863881423462369444693687811872266016709019323831308444420706309918944560740120555489546808902187010778386869067273309237908625408945764926796800855750621790845574138475152942838810854269633789690051543733622165059806317839699324182379371456288506615061313851712421829543241178966149930327153103541139171940238071618593623876221756277215358379735577737251093466802603210471845138780116514458838789929650371222614156399524812904257938357706429463048891218351788428518570425896234632004346353831628912621619473844350826923447504672821316903245762487443605616421748647785654399255892131886121463075896226690146795466249678872418296500697690063512745060222733322147249761713834578331721569978065845587632490595806900852564670983053714872614215105783901423769388771716298861409331765886367703689425501121057676436152531351478368215129895993536771829644486349170869495268750094812609559280192958903412145238315207089210804710376734176124506898372617859668440268421887081413870371452221236523888030910285445100443012035848587879314110392651522218476568092830967886885094114506443440728929219360226397045776481952946655131154607222797820428724341648965140608459780447679546190924563656024760972714158662389725202595410255649144685685861937937642686637653165896315558333927086044240386700553581783905189528220093780112842227789003342433530094097460390408034776597755064519937311429191219882406931688101052094573805119183717039212523777800565490661225392983463946036818925050514890694575916617976562868572230104968876368871672117326225689698576934294328421503348361042119904483658086576303835886175249116149477126544284283967958792168436012883104202487283362930262737806607971785263162953243980096181470505783725764010383797014916533291101837942494167202298503548199117348190082079290708793923286631418931880318770865598595417346662112970629484266577473947026072731127121586318554269548270950608255529295822294520459938401963742030046674103308751187752192311632248607562503798978779761451040102896248312210666511139843407749441327090224121849309797272747511812531104060349422330276330989885332325215538264572486310774810124444472713034956116845123978225469844209056554223393785657365867621368456520452575647986259026144009253308155053670416751803683088872455755431512552195478652308658048480596922607754948060517850155691556211387561116850536957208963779661094464498814356258600853460866306826732784094169157748049397234173921135108684335236164484622970133228568855312684154369332049697735253876995961301547560455796052060273148488090710979947954118996183859936745194513113157601370634803513634206694248266470246923103263859818574345193623010794066079691946074722988393278769410181726310828897536084815286301700700890394994491383348945986627695162181565876911129544563134179300222836201696708926070103538306636988847576075066303091840090537679343499339741260279491740536548621255462545687140384650288474724823882842537322490372236160951978975921817787398992928236400788540878492300466171302273334020968421352828666233846318387268713152761195457569586169220470624739528226819992640024303226580485226899782480716122114785807685825106690414830927362706806348230932106449303948177590682031147574474613790650808917634352615317671873721991344124020434732827052200518861616722388242640879935482704704821856274822824844688933286644421773681315039430420659775543426063061670176104527837409085227859854476948395655607128187793337938336636303355586444129894763141117577476547321157803520543046336999146752261669324383746343961073586544231280705374169872467853219540611489602607728811754599840612178655808116177090547861723552568423445677485226458523938652791331597720048631102595400401441265797174646434458710053367613823494621228178958745749713569925673267305782440997462585602039814638322735379622033476629577384942099538197769283407355687722860380040426168766507578783055259856758499786378139115904069135950481162939062198675150669852189995273665717069715866684948472106884272331728582211207319652963762021307038575264911366443162706425964307954558523724825081965044111348673286453298487900504338929207397669824697077525706366960066319910221852904341253553676725676884723875341164876329094852297396146045487208537446152716134336940073720613577857811153217771164450049093238870480434129104429644457017678630101237568120077214183267545386337469518326698593319153960995648488650179182884042967416178465804182893527204525529883668975721425686105551964807287893393745230503026964544055691580757361479993089350154655246343955012907278175135536193987458301813909403813826785809525811501251777042861957220899525996974515458078300319438316931896813207177250661753164994646098804512911671023554972143015282038220066472980248542835129726829557159325212483085547103149389887703710105527455635315973013972358265415873031500224919676764265286355919245116686888261848278529970576679335020372641231694061630857218481882999388278376158685777605943453873579988318130154204793305928215530412805903294863001304527474363480525210674175082332274504794416133730136845048172065714689144481011735809319920056731960231932505748990417010059494747082285972449966673626743533907310035757635018227040634346266206630479492559041614683149640910532788827262724183640235413881980006393723176645100410338798433258356861295946616357177216475938736758873919104535569962085814360751241734521735213110020834608098117831105535705564868431117466605631666230982171195540766909564559789441450058951243613441188847564445934860370541941808686015544891293045341425944764406050129599222382280681045468249031058413215521268805038583997303478837708262660276422961988929615940557672882269031841610833637658783792818481362961949019748893057312548216967591580346637896129436021175504314827049629751325512144171250810000385196865646975021499196659127168545466504660781205858834429057703173450613302464393710802616591065945067107383452911894323985040200272897968771263562318642070921635065471334462654031293154264586186280906336237889809031068725384810486305551251070034071923499580883655313555759739564687967692977218124935294962584466546422031505117659437181045772648487113928208760106013827111885360031861386032876519760097570489440745504287585126002563984560790800374259507265474605619015749501597075243031381495795694942144968652159133700430732641632509736556788476055080580077739764348266822803917332727824073101078534827863014039290251340024795651964168961538314143784147570752466185438682602628269065889071950466681889723543022301472922701418089949074997844281059580425917359271454975321275088408287589532134747319223240437368483376431880589747332216116646954200139791906093658569734007278789686799735661031982670414457326770058134172540997284926939785723299325679167755826865333256269279566984837615002966648955076165177609218397776803411216376055600707645191412472442142250637500318391514125513992198215061674389428757821545161554286412384221972869703917336911589706116235792849728859273142109865291974660235303025773696607153617804267489109638030090066865484325810955065063531848666337468950013064540101191001129886706283012727950118706466698217909138119206937878210685404416563061869953356007249867195836371743049692656837102509943946642558036407046788910060085146991092661720565298052061922707346867093662842189701368635076853416072442627580673917568557396732413337218826281426003833485751525343281391520438580927039036493872661927658857724443016620172103095380511677162147241551178661615441987297440702299846370210798837973251187760656509540749653886429988336367811247429583022567833385517601635463345701365415953698827522950329435166025130308044384893216149002339537185022202338172852599050494240358587325163055800718972073080649380915860129698368267491958873955009415126310026729250652092182731293513798612827906132866520285036660751647800802754568655728564124447850969371444831237421677213929527889977148619145715519097220217932173396690939964840429425426205154822013146184682186580653822044229693971136077470038762892605491194400098546504153944614264212819662514560639842261130096211712111447445948311107848694492611041137833558678155122287881952732227818357710240407703872349182082289794910160890990738563787939166265943728972029127786908173005196984624109910762548413680172628136461744348282043191181741660476415586132655390252485270021284257767027485745494371710001720158549889692330117943865159869646800042663490216865880336193659371856478024962739850242268543090539473043732797022031958866430520028507841117830276841102604747693034619700295711012260331125531090112602052126128572577388869742680286274944224455418470856101852001703237220133499156969342180152588138206227414652469906585782344178676737295493002213932967983461949235306322304569208798873213347797104878676230573995842211233080595728724007173322419352645460741774713231348485375393222313880948477607008235881315334935925976369122053275574594511627246717008021371892077126683521511661101070753695179318198715273924706258325930105153431736228718418712050455171296524573867560788193777088650876607603292927383204944857838014961401594508529222174546063886900661428034804984524088749223028447223148069177897679098806541946630470755790933934823142299645907112572376743959174986866145992871268324336073404430696151663542037437884603889691710819585832666216941217964182897650893402147927544821628780235279028621079188044838156194430059914056516580715285393207815507998604741253096395748490707067440003877315820704641470906692548270451847976758765571928649043757736969553100134943314385748724306254542254798093166202898640169606385025333796681654621639165074786870764482836413280588100527749608298381178633058049713990134775736081818877923288790918374215711403830948211683472879705822617070095962213951236459962182709542063211580343817622648208529565355989362865982355578104181738715166558479869455821221980458607069212318519627944226843867792954696629747273917320753673560842523800474965265614948725852370795440698497198641265201916775588220112881335600437932539877177896792605088486880858148687907518952272337049160930761135364250498885191087308855806993519324935097002529028400331077772202667356645098811849629218623570167968432407512317525948530974311414133608967215855015535888563985329117229335143358311300460794680323155418233188681979118680221037189918967877926430049129861895525163682805760391092217821999609243652914314840113920419887378621930283375721035170967325371417941586192273672409250669994293763861641977860741471432845153832363218083212719088935369972523726527224572593799567344738453034036368011556362770547085759688823319992041019407819203023415874572678140550199863008761572990083524962026162844277117991935802336495902674507356022511445485973070386702132761193920341550720934011396760114932769737251985836197784204583991762367231340983587066571472095600488781885434939491012092209597438010206654220888703072004987756653923179234733013695958164520815855257735564408598218497345776900202202539279823293000446915508491415034879919950069396813487028795092225696078948781007379493122072946726866024077225286798177323494270470320535649170533694733662663100167295653295214957025152629032384140813677355841336135901874140666746702375247389176403697186533594164016874359444159221577178792821243113703029410481984255249744189425358282828409235354978808338464532457407072289858182097730006848785789096834564142491446349566033192285435917809152232297958601927270159061057484531859944442233209737362351207740885789917923586021895915184903023560751265447184860098026470270260161608563794534892891358822519695339103060142620905110348423957938354309003360437579423194489573657498799258917609397052802418872554955445150213201675129668228750740024742330221448473464808125899623719114237718164870140397018973126109613466433635195364968756484814498423249679333130441763866320226226668348768171323962659446688175204596804557134905280080927428612728082602387613817281734227604066628739190766916789951207090169200080925069209449175597423799629493908517154115279714515524652476988429310894185827033084868876024564162656742900932141947112726918093622650766317453601382283194942821834336739065737748305832851449015353412323575698141951770609404267254609255749124076715996442785540079517623330206335266596003170114093711947259076370905460553288629759965161354820650299140049821803780412945283509676182865624609244933457373503066834088937307895235376847633896521946090109313493833090456744463051686954495858403114928878025087857000763203977195921944738925478042988454165825651462326070282675673530148749315994686649487055278700218285652628213966168203063872607163327263170755885576732202908798186495468060679700769948058514213729052503946692415492441298748202149021297791103470564968246676518024109762749200457240152865669794509257247987175600470743770818787665542792327805451190300963392422808989036276598839955264891440101942259454976020128218252032419110272872304454635360246794486167392609300968934368790126584485177459023542295449026317226631963884017536707048661280336266377106503677868858148362287717531942839712675298879498247434514287635907296876854028981452483023802196782661634120900542575095237089934337837973291309447417578626148057992102488241942707299544304097224166851366028958857631123585148111388169555681171595189132207299690375935051588901668932493785029823482895172966881055724402602648832076158558631105299447212807960147163864528994514850969597822694244961081369907253939001842100794762363217722519257423744769975665834792247578668903168283674899631300113869263270813987940782074167347457464425653501134262292418160754899808247030595327884499327194665375125523247598602289420069268712266057679590208851291634555833184182035469147821241269984911039593396875515727079689264637992483046996977400018467407751406325333884125765856858126969638799391478194694102318534282663196028004530094647306306717521828107526023078896486283979801785716191820524232663722631252792232730041647571810431708929695288430408992166217154122034610765384688529473212826585234402974253482476855867509278188218015633752803357518353902760400836269855845860494862064457225050575285095364492662080678632670418442758978280834438119541107462213722559184980107534807992575312726961444219229431545259952053032973468604897332534886766455344793022107757627454879383226984093451427646099195079089515856026362717391903388284856888459072048750339781955394429249410421432322574390387401204327411297387119647409846324883645815369980718853789256889979449587136165163958297126370522091589998200505827533614706297175896696972978454892819263984705777226684367267373128142248417001728017732828002680331840174724949047301265277273708383399523608721345901850868354414211619690257434547528563035598060377072998876066571193490265725099111081798559707949383291508833141227657681244733393367882839733140417760738757434022899352656962692362172319985104411133213672034023176989040171275640964601442655254697198339190523629739597257071375443643393780422836242056784422708348179674485934663428740580877940598141084448822944760115477494001397194703309887981460698426933399501431966667046234612522153663139683138826412603035048417943161705351284937130855534492460245265305153074147414144185154233109371026600195337474815692199849813166014709194456052796510749992226620361942207203491367894932359151969993623803795068186866392839982063055644735143046140629503920013056085890956756448847356804001884603993193946152914719572083179908985245608687364884913004551556574737002177943834190032754631344095071801572078050287745461826682388258073512282836497556846737946319063437464698798253030584743034035143504996061594115626265245189448927932440847222583932034733490026529626457133852207594512831553778799652179326738243163614265050570998548280640820624930783760120932979027754547934091471749399419117892056822943112215930003637769295346507558251090279094518957781772375747378494501763975688174175693691807241306576778900989081442035307002538614989946146857814573811592909857274833323357018257352785176819104217371661198015103362709144229998673550474936521254832238543279719054188212613389587993152076025483151877422968647526998456640583248855356399304335581973174985747225574376983019774056494628331628912925261346652764563177101455188282255034946036760678743837179880672381423048358971606565303399313575888269037744734600926553006596303452799028620810384705325462889953204854610994400330669063378715854420017712701013293634591778951475381659444199213615868511279088130765182421379673302627773615034151986440373875080416139442028444644131973414704411315029940059922599385467233552055870685720062235497440219907997528968198826485940077958476722574908086317235727622162394834925394291730511135998727142660217861391109336955218131055568719789940144932159435846173364392166760032145566384606989828800890753862892854285359276260707763691663977020543046126500870399244275283948667541851741984675753000680003045503390632574262569522543258645826821361577492111816066575288745271843260822982389393948384238756570085801893362135328820307354987402354949041754499965726030535823050649555645507941583093654805387230106510866966461893178237765440486769235642199900900050756332438483604625205680576347998757424905463031045908798298286244248269611117119673061545979532447033702870294784384173409576655118311805483360260057559952769455274904397132601005222517195456711985052562759453482240167620108578679554338688186305438416674706285844430079176017233479752992293950290161531342000771000776703087163115373111404937048290275297215188212251091478150277899774898493196526437109877417583734487772372045492634923961106181377848659387870804342758416848403907523333107069988413368813819813494465177210866803793239865002907655866107820179269807427170238425393302020842358281901567186442228010568997927363349381518986616909616929877308652828454323589872145092118916466604667617790842888113344788653868230983743340075048088764947307840870290109912532315995105391948356409578015335809367271028660805425191672084269418003765778535233373684658106254972768695409294889561633635871414900064968649298154768767055792446213184377224771504166841677128560841825372165138964946674527890468196555854453982779099841123746514182615291137483951357087868135040031587459096263980538506394029085075622464354908080706691995214713342058680739315573979674687759205682683169382698593765323962155019891163464486462062506153756849213590914624785769033667707484135458624894460476917019843963903032137368915480211634410963542831499783453272301883923569636753445234579510128068737731090732760869289069657294533954515386024126356862294285227326542735876506857236305620070191164985604234197485439783124579192442102547954194185563883619785871993769657752161076465293246336661614139416350360018606100436013643067536430808613534589936024024123159987892404040989357533129358136098416511175079056111524209840403284894192437843265571837247218033885932586335411150815482549199870033727384770978227743509665501845761367159570839023342091058921321926058794872225515913280207695492986876637243081355203399074739134362395502845802656596236672289642293401023184487019604350627860959540163857155234213506386562921806263716228497503501240804055844318552986534975202875478272651901781138776574826262139968842995262338789356447494789901672531337751155107670600354911858874740208016636347480538435275957080506977275445240118520892727989625038393631386695760103487671074378441295166172264715369115627439239798431705095645522817801450562208846971248924439906472285746557557855833117617745460197789766675850432855053875982904693036624166640744980983382727744211266976656153063826067418039646642122455946311741255980026139491278172500493228043869401672771756349072029281174024490067699205035805013378676230935610516672001662841835286922753612572700706710781985994729524382294627177322516196724734080922888256634431175352417167964724476024994949929434390257233962954690991944151655691267211936295488492827948892256709724847572683008505726092541396401282434763443448886725930715652923751680837675221259901247172812797286594177829706181852885498463013035554240063280965469011992580027253920260958601000336758135344790878791731891856123908398778718598998508225149973526965753276131002076326721626042999751413241203884933898762628720074830640311901878297510033413687853679837730406203485940892981462396714948838313680846838068499945098125225524765144466801934866612757647831236271399105746593652514065492049637579901741645148179459222130102203280180160163581968080544894834884260922665085009163964915096400843165745257541733072985978958305543749730155683167356272267344163887247919701031753116497370649759578907239420357905884497739721614633253757324095792055151216583935334403169100341416008160165640767621903581138183470766704436266535122555700385010377312092986348761451001225452848792914154732433286361259040316233668093309765295480439526371459162140104132135686206198459136710695219170991623453499481946083000609757452238283992822941188003128944193546843043717320638510061915204480723258212350763409073815020343665499732742961483450420229282242260868614388809494673902441252330654654769123395468568732880082850273634063277994151022098094468972340888925472144644132021042265882416039959551120504790261614488351305369322848042872832455521942941679016646929902646665871576947541915396961848276855997574378787013487326888494801027982870295146303247501365060984632730853999438171989659185732466307659930045202206676071663564837966035785465071130990452439255841446651803845063271399884408245473139730974658536605474585105960403447828808786144770893333375183535411160589323881511380939032482921359738444643906491390584237054417414167280478004511893463673884132375998334208095320037366134309910321421141954446074623856845410221065195790925700586374704404656839311541968282623763486687198785667096611286265384681544302014690793284112455382788774416463866261379527265159782001084302569868195999309008010161447801266043764929764215700669557696278326660301006891499375151429973937201773826553024491587110883421840262692364173791850887759943994980082090435779238463854914257459872278662951999635835375912892144019242094235858033562432895563373021803438688547125449810590634960495948548583751214624968219132065976911163470164231234299212322704772602293268766445887413952856371091807138910520754664009201497832559289646714387157524784773273760238512384299656058637963611546812871749595787086648435078497088583701941445351110817413018031942329996725666599823178667007804893096985663791154481256540358846920893012921250223124928303091975552080769060827024659411739011749838428908737481730807851167295636124592970412986042070636030805902733109019258009936204615827509291182180799107170628946850421288284628526461488412081576688993494937439670518789682950668231078571119978944314912627818161438762913354853914992593236354967362298793048985441604303088000950211966942556411244271630733000433419358343650249264980697017584667742328512487916913975404652523566870381506882338824470381110833340983343909144925235519400278713673824570368486258828954588011264217320916032285670684114430198363326071266461134570732468417482364786895281956283938002616319330403798226541535754660331448769457719407324122297972889331924464316998251106752039404473052660512803014304744421862795706701238794845357359095384759327459542444800026445180218006004867345586590222186818193446020883007299482440062655695770982303535938595028033292190220281759820773904688550484264764339108519448493403442955870890154217265803571717381099212850740821311971843542932564407189275172671889211462460384507305486993974140770397005278531599801196874529897092386136984780838023895886948022458603954863210803531080672801453080399176326097913894230270858318987949132393133183598717154133068595244445427629119077218548219089007734865961128616533414199276656520541049998952256430680754517460953164240487590280025530907068714976187696691192492878609211762531749020273520542787019782513792555019830168393434664213104040783058309751988926836797259795456676930220903910864168544131636698255679702732043020136144475779880480695557515800361619000207210556677350722472866664899010229846961183393960533653826319858935846988179694907830216369827998998783001940212198195264348400487630203936167731368950726785665890682054339813558743377738186550538834357993759526726770026541697855274303503920016775830751598288908715615251421828531957987744834124014442847672665930044264752967076221504011970596728343705514650069450071635083613172593443097309603734534440037064869124388418342618705132781199573145191187370998814718600509596530096111464430569252847057224247026142723311538278755082945916658275153434732363248237066410315871806971896121637214717912791762488105101404946611720085621315239035422676507265896041502460652949913652108817458201315162481448736995154681598391737850536718078692611260138683376990661545793848639357587669848515318067594617898990751887610164238197297989692810191752622547950792475677058027914396493755364390414434605818094859542948600277944060107590734430948034443657514804536450808301393112609056904267685190416522003430915548095919630995758683434573238136097672127667677366973831191178738250890774488249293915101718294169790451386358669641341938039300195467289217202951033017249168818524789601944538913937036442083601317835640713514746336888298155778899791700029270770395183125101113057610413961754594955065707100554374317910486541394800559292199189244848495526356374487126135483597323773789287610600590171659710318050644903687157294752909550136866492368505777909461300619156827870318416573127762725971572236273149986528135617492774418406818301082922714648518329260330127395413986511698052473115872395772317787773200926085682816535500880548092477620338054651535521028279743948459577904017057286916308214245788826157760480707609179843264198856579553743243609669936027410790092992359287248202196085612492881072325584946012232996533842409423516758818641050183882476017458699108720696737250242112748831792930931647803254677503462808482563912174320458782430180881854802819018990198047318303903867677194097597451430840238402934127142315950708845076695296455159918170682073050024202599540406295699741055657049783015629722906681447097225421348740993314302986411731061404475283679022834621031628074926438589182598821240059220355230253578837306154224324652345895434588855836293815429117498019773826232648205623784506361876229083391546523339880003668603510918805227564044643032589381558951292326975530170908463398237520856022637865954360637406517841965541671222871703356421087291524904256491196211635146235183689319353911122200672950447657968963229611886376605084913914860564515002266436076758102287655021120261515864834825470854265602249146976934142048816131604383019558502623873046355943273567721092443756017371092640540782834959831266888650688903753802710455794545893950480329980938234030228849993001188825965294499456481690830400183035368182457503314140604199011056582613705121695565249307854369085136886461008317726501506327314470039119604960380211575860348011649793754836821174135859222969733086416809159425242954141145127036124010971424788804505666401098643347772648719395392631961455773773400545959809386641374712916416662745517267431213169822688173781674674503131053595844119288653225954835238363137823835993882470600526700271409470307300464457252926598452824137416061745574528683675642321258162238090383546928557014707649279460213147268788652283706747749081173887591279555692637135152653115215463466148038977805720083196646133298551517490513009168515122042311115535809692029617777875520149501065579702704668079668457973193304536035299470979143478685685247498828265470897575268169883111339867685788546220553314706808738161741996376502111004998891009035809846293224085458835805688997839778989103450318731010707400192036617191930330279428590852287161583767641713340599646447084377404067945939986262615481681981402564775522450327770691000608622742540271776709279434614975155750884532159943006658636149368386566655901661534928597820885104579096003114582311718804993763072620329111600286811143416404154983326980715918374047377413954634095605168737053730556512780413399814476289843993310341213679479903583519008016650068561892200964168182070471212465455991302805551605982351532866066436036816583335537615822273945868893439548110516886591112801651472690775978921494790982357346905851507820081522453918376449649657306520098328402601779678699787916808462596323303461235385208006258048443868477181778424611238964231464807845374179879587716256114868304393101888352011575746545823455636800809115360982079169502617709593463858062062015900650747900812408590410403640360261868070215069645231293172515666952875232241872996742357745586573992794411921324134310675254199114819291942271172620867849473332854532718062874480643307708740491066560351132904886900797711400482152610647472063380526422554192487274235376911113580621903415161991186620174366253206100210205096799137093531506843735251703257198859532921732911463206139702251941007026708626531394420695650337838854416903408286658750515849331925674319443994584771043577227187863530365824207182336079938851141534050625654758869547220956396697352723016912055164796100334653677241109899928543259077874852162691973750450007535301628174788257483425661137128090125747967084708904997062059761444829593946940628571948143545338751573940288256151987545985407495733817414482117438245338426219521531526130967402786785736284602759333970696237402364467416756163985285669567730694418030155348456167259332864715109079674794546295462744766091916940249445863227168067937981584868343136251723348282481365105175784092345371295386253680526428693332110272693615023164697363256685260719873849745447826795940384026797586388446311693415055173035198517150291298666190396920755141023569446568066016559444243239336372109701579141553840543722088081672999925604341947816433651715922782326685165422772231126456755996763962779080296358015971626706897865385324306958640519921507758535339407865309956268425455291738714608723423695870858839043821109587466878558673053911606100043557154746863811056973749272810125215144516872237235402575402108258896756671990487263850545053577582608021400248633357409485629824744064868503928145516890981288432213654762570154402929950521596139087356447235881222176118080363382307264737835096977802460317597938525848409341945709216995344733181021083325770303318141825592338692909384287166639952123279283873179536085887117423291710798356433048169811384125084445395667095939968655240643817966678814071922393649071323682671889918394201801887046992431646561179576679731436850875881534169696552447354507384544770312528071626115954548424334819607321258295801887825719357880184305645318081729298712459630944243075059179167634550819965844934685710717209787888655779582099127409553436607834920259356732327228575428266115814176397114639688961757660156435288678502918236678221968986324748682723460543371312330579826700782215243505049000634661845333532760705495500228280159995390879363290528555323310072534719376188870042340541842283743864351028240366840727593664207329238320997292947686458804084375094506087070018408382679173387141659519591575271530053122581616403993867938006995993817859935656195166944690897129890003277191965930604751672339396413245032051930180816239859948110140486131224164730072746877494969917163721180299095342360319132721850644285207977039570986130310929463907624245435746802116645253468095925610676162622669552945118214522208001764165092834714513216460204873492492408426927314508811598289915298442398634052418409997814303381140423569545699498950751985196060614931052337462826093135433294718073213291952923423349378302335097508370381939948810255944614360012490992218963866821708139583401236353397716929718119191947309589392342762740849021739711273226490004060046652167299155741348883319690209939959584675630091771155227068965145706838279855031956395797464446135778132153560181325375320695930561918643061561479012233466385117807816641384835857750052981748188241762079942114972913600952307115019823578498825824808455485310340955081882572995272984359797106647184129436462429387845444214919685211879055042257752791883609128898631768090759203807840793705510354581159365586995019215008353593589609652562534952652242667932702965323590118880122575537394046732987328403533670732810486741714586880967189499215427888417695746063862416816043188143637733466747481127740483493366767285637621580699052098981393095081001631004321462949664162452099033812889593007004165429622071521414297445247065487968606770424286197446506777225342539715111527945990908805887029000851485816694081002247003342710529971234922507694357770769626928206841335917241587874873365300628563474696860041802779602536540488102943613159237960531097960708903696230414912891397581532206263307907348952961747656042148226327216265498191569342323575961595675013688013131999878796274119781750379512770190292385777638163821925264275035137492049938986258327973134555558855755800712624250606264947664208222360563576178240221723637137387941787230670649851650701739698266143379766138515439077764934358124664873757010469316947432743633390721630218912323259596564501121283057249784335655236613134164837756441744829283080013648942601458195774434083479821321755087117802961540963244588762409766956220782611897107245032977893310880852010716877738279054990893221410261082295543293384853413557274382865985178205346505301091716315314757462068353260331274441687317780414716185623619670435781914474939903116813232937815328164313602249124468484555375243420920722211203651905056013382872660708801551116392414635316094503771668559759390486186787853164940076969055252747926481450898928834505089316691922635896031274854247628140726189319248943788912611445583160883249911952332082423065566269545386748183825173457055814204473542688555464564331021925890861941269399591471922399092599346627267145103183260821800931510381341860427597439739897838899829479537809309620898792075857348573691393294453867962579010901924984377697383153816494739004206313601138329289048004793606617671914502646571307903034690432295702049555428197095225423508552213142530143115511828483315552953186073886729234653094639914272429891856170244849742672869004122923839313965785381334567482501948428499749770715358807914459452244856295849328900038212240723563737065161475354147149839920792317950702827770889895994966223741256839955754886244241778212808483233260589775007870167076127781295765476725700217468422079401780232780876694134612960742688938612154809472427112553546573824826062942115275149736843420600793981427337514095498230175791841591613277284945590671698782758203281517016321211754093446300106500162111521985861331734591699520606055606209378214601189105521216701863106188065429710230042847902878607467400803534405793284392847852032239083440608329435483826525864694141554792539840787741963186556576071240278684388234327356605355546229682683049086837267320000445997056801742796153810298777229731118882797249450814561367639015013893347912003927954838815525548252351312717920367166791148974649662165597995720590586434409854944803664748475437985551471570123945930916869073528227758894216888375302584513392848106419629230031129955581974164287650917517532281246049280072079656269344201066849305618475465523619040279555417736320948082451737542707743357853958650993249695383929266339097998892083789759722054191262843221420415609969232906859324392289474745149764611712838318540193529992856741824652821377170996290298116936783160577459571819543980255310798358460718215338971477954277605151107209445993152090935852979871557625322024970260931196619112031773994027495865894734689273942515076086752086004284848514077455890886993272407395350096789314882849174701954880022612112121525470553843436487748290413834584120059362502286975036901665326182225515893700955377893983296854157093840722188232935576403352989998007013062045037763952665163659919819109233236823268588154929735982331092797307614707133244243012085974839595514028364715688725383729680687996217297367425388242082157520558884149876641794363039176418591109222512905549575157881736492700354940814704450548915120635637019638510502393722187306572534228862954712459714950676876696152632213847742789989689910756022669407684888975163389076686388391434810695739400031514644908144549033733409105843362625502315924945135479993870171411972298525674444168183405976076606298579158379422793593217102333124555049533722773523331236391982079895605382178682588105919012428909391733551785389114723201632938244062623566812532280742683345409277661135968426812114631588300332447101335114503265927318134604117440715212112699121867296402376353305810180554257739078679509390698542546503516473925843406130516508727774347549582431562547823319993006102096038961947349680196722336573278884768486993515292453767068804901376730056450680144427111639593568307811641950606193826402188212380116361236552437440169596006767418608631048995759532349975826322824246896729305826873228075114133387548368403320307569139015145550180308930183530669834980547416870324692698693716265915152018645891268432732186673977895113629609754825571278230502729244614736383257724122664380730471012074277942274873621370359994306562503373850166367868886015793214470858533899746070366200663830745522918549357022156428026623999021904974891526188235784729757010325934210978595803839013503979959543621285998423157013677102528106835144059060662014543383445739585659243094413246241865374885603484138036315245384500432778686605050555305757415357829457680417067088936734188877184139634201065701224709522450419123472558414880332267288610332588718638735159112663126090871322390820434182510117468166715648572585608851333019940797590278656216578792958193595091291253768216899886206257786877331550487586732023451297683430269661957385463251785723476798499978441080452584080691910434110799495999101347166422793178870826740747235078683763170557398242748556526249350600927650113246137723272865293941152182006143653502042740167007223914800714635380715422721796410802531799125236618834099947186888462883182656983571137521988848550747099498598350711637213693888939997668385861564197312258037689952733929136667120322157389128669683878134001898644158648685893054264168181997444704648472344218758957981211444640663923945371902758019331148003036725906380351889144986209639361572054253759672479407844042672401672530691285759263931505352772248465360229966969785824645586496557790609251345081411987134439639001624998345638027730571994675421551454173203094995487154378743768832371295595269956605620301118727031269753066997774877919551322870659492851736325773563265244393780594268165205458417238972433859174098222977782415001977352938662973026437367660124679973859155964178244583847048573093876163689048974045826300238066406568423219591901762189025988070100527116404393667333804495934342616604417765132597249481669279092944230125933936231562696263992723203728557154262420134623689457832558292659507338949854311013953944396433192627170793387710133005940555171285017638569056068852688806256272230143268812877650162220875173926136043917810931041839209320657168073569121924734142083075708080680568696949906330386420817801736955535306801910091354690498906632810758248666221333323288417128949459732722649157090579181733692670003364343235120804322014178050405059151854087713063109116787056741630916167603276977431246635941077505100962130200241382160925690063131565418374425209258063401046505599891913827112824396101968859201123657350080410791763176248603382189414356021473737002291405370032145287487721266717572899653867249718655336850333946873863358007287954759761075221791427400584508038227761030771363837260926947416711403285078317999831912277568238032275382689716875678834926909878064820757770321923526141186434200760885344959310123254253216321872267464633294449198985957510533932763004318183098081567305574791970960803874513613589067122898879223090853039016751500504863938744712983526199790153704010935446476016433229841244955222665779518771766775141294314546124943848999992545088462965618294076402060883451302083387360117440907664000814101321611036201608015437486924623308469202201763312291384661615018252863683694496431061780735583411026522463956006711061511872860449747344657123412235051559600735265066942163725479895935636133385219621166708833690976909156478087565267546793983054065609083787098692303845793871055689647115156974152444519909362866764802782634721102808875473869978158822382543650572303853805657378099555249134337445495482780425635312217281180803407951834982704259779226353201837390970342839297802946141216291642414097521790619205054991009810338279869774401056136844762978106443222314293392415281855186194760635369625681010049968280252342067134688086877299240789986906384849400872428368647370460591876157661779365006469288820408036310207054145309847611385753549045189934133666569720265198110279254172870077370350913752145044079329339509050418484957203542706104524414871108636177381956640568185243979611195603867107530157654138959503766275823576246996812400740477366613977826736170117899708420334651067756562106782201179179947315283196120018893277351279288755525559346832228431356439787640957230639655788116275984508781731643644741046583291501174711047532269954932402709663929112498714085848524534117439465696863033065955949933388813466486864913878277110896949133610288621695893781098898425945889209428616478732528146919431085550030623212276326913417382209643436216738130495210600630796609387241343622356577494510204093844131255680922239354304016447934926010653671870671626809312083702848751435729164953611418277672268727309268827621337087728178659902700479002099625655334067623645069818283898049359853483063006338424179792141220061036049819658133834591891202668250136030796144071996913037702515969547322650522445930889187492718559952797412500565949525384656025377366766963805107034688811983893108641364157430905132796298004871378549868563583956228270661578012736678065794576685251347927966963033528044209033589271469508999464960051933067944911912817149679448596727776223308238367045715365834114747933519957709092471773065355729635649954719527369817768870141539320466150219455299242917117006578174708011241244120306671537095033879771472771197586450041772763207981001670174718655603764932112217659813817877040958244713629508713276118351545890800082878874423117499576354748403193678110331952557889050767222181615088239983106622959696049052489998364521575208663030096347487280130910278982386371678579974316316997684423695060419911700055623144251828867917319054147646539010634415273821769302284110642629169839152840102793874863743372528312514462399786146572008440609988500085167994523004556100616892430261287030952103376226458801567050088702633895609902282719362566296494937922736985907119067980268774779305265304918282188613380529080314363920891990512102413456584533742345472132850681365781965693987050995464694773056665717743838705737452613180126873036201689035624557182544735790323217750601123302424569275100647338132409980288223689234196497567894305267358863681272704723302358510588069612608259920914775937065051423730727746934445128450668705416539767226090859784716549031006000153419252545431853362744810928656251507940178857704676286397682649587984503916799683648847159755652431725801844302782774420622596692542477684908707483216211938305682520749680162526730099439413387315656043792775882538397998318198371505953452132672746850120870841554576907556826074455008515016350635423080549125224954753613518261462932406604126030836950957226630797065579542690930365789124998098293876538835060783283871297275691448485673968274201946431380761103473340784649626326258967009349291097533709839486371071250213166752729988379086486296386250314629769077897954120414745537259829717728688252161907009191747666556230836561242612642760824625641137230088155125099260991788884405141622452483678799899090518880234467981474940636049228154748836142626627944126277991540757573798925836089427096100975312446503434386581096795359453928088265901644003296651594599509728634661031412003711630040331914840028782979899506100697777125093097838609972331991359222022737233232588056584662759880586998074129544962349482903471693217716113981486385292997940616563973115202441570712851720862924052253768501331130057934802012769868259684699040616766595884228366118197216180984213436972299638531176197674037251664974970608151527071849525157539373648645400164419920446844801664953256432420590649952706137101550066958753254466938512402763529504995565157788912444526290951038025127864484108683063763933049735056827395456901636880712874932384198903322950571451557482803851027373193399762619054321711933474278333769087682885461727005873325848919406974805783688713638905373639489310842380682574618379899637291357197588791453228358690753959725905348307184303972636534930082096650711872888419528068704145588196137881142702360923829142997562052778006692829437918740841404661039672975747096662365322464612485864103958456335363868466912071067203522136277321894283067571413947715150944033126147749190782406278713976958275561417824359318231848916282666748047532065455465889379367854866915409058931886571188943945058337980567133179020260561833308670454189014509565642901085753384699008979879108255560211523746759029514744610980985377067380876855495090317689087068781940703467739552925789622293842001516309229167519245039778497399606961766886077958857189611318624754354413320383959930069826628209653125194257937227187398867211380808924539427686574287474280821480847503791939505080651213832375457586117055703727923714102559311622825531241557680692044417963861172206382596866126428246299643818282155054315850844374683122666671260743623548309175843360953237409685379810312516780223477331747373391499379414973066679786802750051168753868570800676062628245499921959342502664827695460124246691626110087078855842755948891722868007735989195976273931182066902127277319994223565034781270736432834404762553530715337636338339502755765056986141486094654686854749725463239406958075122061098412646629974161731176841246078171511726590782260316979160420079512304221134105230639727046785005808638012558240713131833631234834550732332918054515719754781832888832198023861967901777092970603243237935739631349213225329340643671178397931287638393990059932225997379949882101060442022880990272927632618765580917610323033212881342172863754629927738656300042066905664015673021190872294077001417205851693366172993251883326743616375214079063314874742393149465050857364027096471611288695484655898605034455162978928565104399274671446660530857771016534366463175022629077031157858437267729624565201920788958787855478368139598535979291567758709973205816535366361628648698227613158238999428650443460200756254084911376341087137177816375602081324859460687218038139186783526428483819178812773089093365428735884890337332318566852217591874381122620290626406355983939825167787175341465639545535677158895698605378916076761847678381888002321442340179323316810006387510569565143540278744906600571703689528028800636888023659194468655924993240569299074723234566995704219466538450577887523524362185951500266062970862096021975938111614741402273676211088664115797477701513838901226508713091211678814579189636892997700796183717291720555437093354464291955335328232727947139760762246102164797859313761354735247678844596441039591753156698476836540482300905391637267281806461070963478706731369195786870905326902920946288353279702340984005202857097498524146525583577385579363238656231457615578521175097071762926533766161795052693781477634410856308880384730667943536773719475675182173708279853913876422899934635690977466276577145502545410602155877041700753038792412401306671264580470379641989699974413656853116682239472213692616198792040193885789088232054973791980470511495065522813606115857463777487731283689865395638783115451170347062373306817572974844971912187905087392261225129489065330817549405432350427576619883128081782339975313082229908102209701988648044001324996328982094607660263292874461792566057128195964794447965024773847689729381111971133098253623598779783067077084113443005614103436212483499701837196934008332957663347124398047159521030159329618188112875539456134811298291139790333830342902157837468540779373897388681586026367335311221277148664274422445601010021059498035960434228481190287317707891059227329240554386219083098144046848041483819416400347995501914364927845166544196416934253911363642465295584433121674434712256461724452681979829550325697697901568602954056874128402649112373064670469446369320133894534192997743848858037464688372007800875133399761963018257348103848498701189864357149449661907902682135298641526108930654672726164155972731172310289291657065870860644873502256446900506027663989980368698955985705480463883423331032880694433921100384874207984842012169186805422511560495520097778035336210423529790684526254135305559287968528049067182668264203023323934897464515073534599655832889915587217146582887210366018061385561973355635969896070652280445955498375304167643265295364798603529425771998340002314712328057293170524220288768718801377142426653145844506034081477642509090405851678125588727791367964073228925877087920211352790515804659175194583401471202320586758351155312101905516905129773939656171887493706969062496195006460543630748148090166437121288867108258143588535431355325848154140813619464959638187967502025351012438138427951971874562003164553137797118759097936170626826503047355778647242867724174526220018296417083325926192012090925676686083067396306991314579463261177530583067453872411797489770353773937524567907602146103580179494389802804607358720935049491404870908081559477359458700841412800961875154908394386639657536469760802204775235447655482818685168427578079189337978412622360560191787051150623494323706331044454764701880382327918915550174811979623583492450026533983896136792538278031819243997794626381049965947801531355267876065436949330773324638036067001636347428179592605412056472537333768571177494762035794221122145468257499831555459668567695079308975856311361660836388822703019107417096133766029800112857893123003669482351613391764430032796353951334894449661788599547343788918689248064487865186827720360180960496835943227436370877949275069850463657912032876031992985612219972766431765599213480649923070234961710641592618953158362241086909314127730595253659660158512778650336409596055226439363297294525026251016588986827569981175013010202255308105501575713186535886351517213473665218769235632527067952902186988793675107919015713285350221572387933933290890008020405718646681359250924149380980071364895044696533957600211865227331934246817617770753601986796165350897339207100521122564558847235683302288904784094766017097708557353163596865051975463263775203032873262238811488627333017189925896957797850985217263164963620270582546092411072969543558568754195071316081987459982726043879106177478941435891954611944898943185439646792105585416175880004834517089321878467863734730385367763718295695966603295514283721287644785167860605275008094408424243881532127164883211252148572812732525655422127188046926524774045030511348801519113237754248606322256682545395142942959387648177290445188243056861067088544923524294515772752514326183760688786428368474334704121544529636288173084778676050487778001562339525190938160613973085202739395891214860763558582520174226573301795781637908012113850753285806425125037659080851546154989374346798802502614122206043778361249469735533406034521123886463203156720246497611689078142906076239738416215393211613356806680746505721391772580046116467904175558803854628411405255409875859034752177364198420974403757401695616405487583485841620198066505599328184115091350637784385153064537475123809959316965340733874337214890349741999591018910034288189078324107448805157219263505796345201768537051552024207606651205738362259979313561285089369945431081739291678406827860473847112940265031875095235617090986120523649455167303326245094910589487600056833612366181321792686336864369816395595050739771670509079736260566393295878736207152458921215225689907981052158367034775823372914312580614193562922482286202562756734625974263079989411644446236673296229217380136983238085483173192024204273168058922430257858091398981587785121953444896545731338966513215664568080454909172072115295162845866212954526950586270186555708057803634431951997379796119678997660293715880766707662013147867720949132518597934144802795317500766186392014049886431272196288005135114162092844986457081110893917426461221066141800530481785331899198927274704295446123980973654515333467272817777468427479750622293988783135716322158354590668158339049073357345342045777146689805861551882889745916468014324477321290310123087163756189603236661320149289081544731442156610776750811005809188774108425694962544292948312840366213830539967640258205499142113190736616790122480119432578104241766622386639030888304133779975222553236109239506748837245179292105510269938165570027615561025175987635247582017778227841052197899064198221273772920845982860900681808224577651511241214780343076235163806010260949065395334648907171141431698870503040839894384475327955982254528140261458176974162132855625798201326238461807241792391639363908582507111738193671137132267540012431623461476391651563453030205217050356728957492215962354355986715559208721256171382317908422897854080323907590746512518813296443498487381299549934479789180770912490042484860826938552255330228110318626715934155729985719030425310845858433915197599375684835540879707272225712123432472915785001801926846466249234339186953155849029284128288150920203405483150124001747562180647173055931690331050006468714038290940425055764137916607276947086704603513218343001033692458044174440751616987972398995573229232098086874021402068261112419611501098847433075948298076919231401246543341039517980145022361694699365004055350389568503739072423410264992067492758386373782923983326632194601398313470919402601504691576337535876907155989895457704843255068629322408467238108528626050812284726960020448407497028827357217997763707471360874738535881683987547413826573832143102042449379367544231448275626408303794297627773643084833834093246206098679868669839511456534856875373796136493031625394455452572575997112809520703263605196511222180928017853527596132953854863779675396591216490444099462337694377580971359400904889318038610339610450172950130225263358724595246850676623325555872521779199901739756243386151610211953723501884144135257442739113942507290576922839417890172869060997132596356459203276928112939010669752983542261366973059164928553076874353074488911120512954857268760909348160250131457789608240092047513227393206815226017405315702558304767252275646662343711684147883278803440373355261874338384325516780728225678490573543387187548474630289989852248968821428014228173968102946358671664187516075333593650023724376104531451941014743615930143524976647430012675032691655273117896625693333220703679976860930637341686236211882643806362692705001447347671525473475057773419290632894105498954377063402561685813448126107936567585499787103695374698306021832138552289215490026009026638303587024366487039034527206258411925179766402187575655655554356492537941327006183300268416014189929374404316154395389035010731966943490458596639041994704543688138643581411920212894900493745604573293813959385644929994111243102243627914348379342846670676274284143468178246066786789554248661803696815361306250386819489570663292318548215338833914671702329521131140585734369224372002834285815967265658397815451868850053186804211032282927104980642447927560631714588611230121718223709911834845165010086483919065499629793829848900065140469046067520680503374483852807072588144191056531024803076608860205193962379099388353212312397812098761228008260508423098172615535450113169269582295136335335532937400773599636189580808132665994236738699191983593030936418361489476036553767506869419557630284715822468667399366729585903314481173233777362735582012490846869812368884348784167805311439225141923943731551816938627254161487421861531318895749661691104788552036062050948141063738516938121084086686705125732563875426689883481896259158895325160151050609182115716577626283128307638717644935817379393438788766199366964325962701857069856657787888083977406082866641755613685779951251116933723451659020963375590120512555693396486994525101372789756450633643805826131950629804208472797936124034465938875950740972314039232027516509159732099061101996189683785000066232530252289861049110444000265233122925522059370516545342402188736117343065008929283061693595868300737026275990726478936841933962512656554378530606160386895800061472356482314534962514534380282233338109407760229343401356268019200881951481809783089213121918686316076707892981441568474852828663610797684591902706532566883809149033928888869194149941567033122156704439968358600555471115922701003749785943378805474191433671255798669678537439952412271929739579836389700739248479592831446056778318967419318121398664180577883586892778586066173302894879119328181058502361839877439473906625615098829908986425680568827464193739055593391240534340372903522564477565919435485523099806695624274717590014419767191393446410312239756914115332849225231960142259116608293186956255112084700959546054939080737811799024513545962845375244887467672242218518203442763224849437332537167096746029608984475448327125501504599620894944150601426971911135115708143527394568346559898967374573270453227560973084956146610091890907136849473509281982581583381054653088832695297545911401009482594790381306403782059995045632453837983027055429897250022073999355704495088637773947064555474725411297923118998977102931127085960199089319439471657539965697496834103021086546907497022890041863588031437972981384736746816429165683034058153149337371756832906201146279234371649855289928093672324855852273849725049195046853161424164317587448131827415127574539391501565231759471653453866655070911157921992651294565092333960368955531534215433057204287099857055542138801781874635052666726486296082889345543202315489551383629743851309215357701684174213981118433910053899085152513743133502112683820005573553019542446285323350654755883351976672191091559644753149153318532430292445724745633516782352886960864177178075931356205040107257746699583355090894721295920125913264302747774454241422787408168199761465492872864620818767151139782127970704957340560055282421773295016423912112651882573027903928059504585042470297453884941902393473052647671459463849441694846889107873535644695943708419330156693188498589235885766124603421383519674636980098483973621454971940932588997374377080160997916755835943361500633350091956118571105215679608482734049072134227529857816125744862519890186524935469410000988630323224042492106205331332632246230234887227618184773176294417674058262037887361633330994302760584790893322791347003946872346365207388167936324826822073438790049288561615571852041884133424489031174864783829875832240024225428406463675826948140286817301905395179074505688988031131810032308532066433489098656955217164333312844249821966681204476056342267484163149410363315702982202355983343604714514708239484398094705125055959949800809807693631072780012054574392345076724226472546291161285511717164892990231238188877997229028632206517995282830210847185163204720769589991001582552323318564057207089546134004482258185676764361320219051126320904021457117876199100893434558325519159947567410138946527101925595962716702346212365633587466269426003368617932705020485539523532893727287475313275385610660321462605910344987962392240024874578562191329778599193536090688456801664424574655971019846594944806214721650417188060089965457482942220275845012183531968479927369914683569492512509617899291420031946495398367554150617764245623383991936592357173663223720353982920016828978497008790122736540399930364394720552575926111001966888783316750803142079687461734765204057267260257915657168456715626738416695298904543517658513918051546659003105683589737104609176301426799571439224651970562393931702695580929679312406488899025838173831518012684852057844034011654148444825666574161159453539407739947878471765103342556776051135370594362419204962262171265531333228307597550791672535045272014735085436970652993475769237616493414524001624078264875615139144363505195701773514874788340260533765458524716878449449590772523966819028119662036478209259348687042240047979930533645132079384991018954005920248162849026171378922770800943846213661704607038311641758999266522953647522935303123820003745920933877467468706324067534955631056233642413123096957929615662613586136864143324240662257694731899982543771487329270651930323873569841350155400025210661050377490713702285869182085212532335456090860203675600570080381118660171919097323480176036587932004539973090992194818917441553954846303972022689582493824433617210398662314702478348204987518664025026193491336090751328760951667270864385883880565166903447285866872032917046352959869251063605224408357188206596883094215593668353187041052603741864511400231015724261067170355976002673940550351629792435690088454938171052264666503582387217487951091851279508767578694608948470372867565973964507997259584427060307493109380310555120266111207750265252715833138535599776555197524638790187628057631456843109609594615598008081024502065492318793551579048919609835758505551083548408353161599912731867717446771152578885647139157406729462629588993053052710733185696284203240016466662123690498037106107925140554644318583834212825952874311016828917366338449742912490864050959631958087634224894407885100464338146836735754842682876740963174530237700524694303286245912264969000159466945952328090962429811002728332599336698632196026849288102289974961190486348039911342672902888102712818205433788192483316134287860009948450794935259941129586428747361939373799589338789790497727896182465676648418644951299236041839272987090442768118857008782672770997292935435265346739623245562374221225172426580183541218237047329735665524163090536588545263491952098958805330671884001129861287935203528760649150234270000021300308557118809851219174892832821184133257050819345994470049172431050366043415887381851727085808948590622682111840253067538305619722064785016096412147196698411497554925060624333359724664713710555628165464948350682648888039774387465667515386667328083819574113368734241986489071618637296858372674737495676046456763603802126321580645978074842329082724947739527785408881139871955827052584397028177959474497344183510955554656277637398737510871085445008026989053767636072564319081489894098548601552688294283222119889073871960351683109762938505807484265211345506502387937452890939126030740626992919941765762517280588968747566306036592190972260337102013644308564916874332723329624898938933674117092995674922872654381362705779070796793989097485605292984785296654401243061242772492489009612927706628828435152149224116709659360725086275018042688365152117535658743062067931832813082340544862143926069224286451649242349804586898413482815100852801678503857661362960827741587876583608959543287195682431452957295648230290170777078210776451673654204125479716876890712050558707909823207888490171509557338405225878949130705925032012263677353231018084934010329032481093821672393285337482737075849607554503436708490717493970238696195414521682440883865868603611632807168824027240328790222155340297914534853175011076584748523450288327772251735510838580036972118482766233549710695640789531360395027481788402015894201170485821593011149046583990895479602214883009101176464302425625602866353768627259288328458004219077742818719778817283769595115524061129797199124429525237806649744891259019013499429411587412251019593510413552927498185765805126822890458699338753450404214064537093973521550067624270266688335854022935530177449884960355014734264319668322920944706438864794747422106221926717347685414453352672535062221362446516128500442567025585881974600405794751737436193960595994848832066247627928997701027096447654704866719712945778434061578219260645984285661148084283690511015977255372761947128154928984759894718786178201860337173490142136582653343907437951406879826370278870052207928324493286478673746025486471092444873031631338660217476112393821643016886553918859505275611810984975437496045840187202547404860627620493434491516771473584440260203665582411229296205272976056632469088466384036257537781515311138812487149047439541937357307334968427980886468121502577748405119750349123349535345707899275551949219616848439584916567674018309171842272232417437909091643233666228139733981179678014055198494131817327931886936090240923876441844529713061385298288917081896156713250485020553219611176917597604221368532500274369767116099119677728450625677399779471139291589628258877138212029364668118068326836630495122078197528163854028075068679990908573173276949580531047900335742290899546701368977429517421639738971666341843270525473442869480781684947465636598518962500985004236375359500082975301584778406200540827187087139971410078021546769243401431977405751079082472977621298755660686091537214035010527505921377143261677855384093658351739845438408163194689910078294710023060393947185063192449946845476091132779321252195798990366626699015102136578273759773957664389673893497340415859689874761120323954007807207286791300792297931362018245614997359799950709042990312621998836552670033016759971053585728335850213519057502061249247732322172994079322671357698128224717830820931257677013051150394201445271901684861528228031633740617645684567821571200688352250850578996021974752652215135005724536983260587237771417526825399037109443988059841893330200892549597256353996115313751435489032371405370419534175508690259827621807105935802292659317110853485816842496449991414290759898172143858411296171457382645577741099536184352883779027983134411490199166021128807454979011858518292626416874372831258399533347467211186786458741268119761503976674407454187775587287060054653702120827601044933102479830955083555457615598727788499845184098160654836981485921628282273234425796892787410404479160478874546940550958846328351121513637291445767716129898881499236139099606728614866689814393843564065819335605439835386241653751167866792593641094475756155559903618635148843176390486461515684367292971665323311091807206394542935657467158314923361928278091177899984180887873974798078799788345484320013217091144727677092388484013662102125764760804032481011229281388734866649149965256113876089511284380487035960572420408270296923391035067559161509802144282080611144794890902801243716626450410238590648696980934139569305876940042495833210980146472278384479843050279979625103806124466869221854734326056828447340709355182466230230062112929945190362536611148123681212897318251335773531746327185825202441684868206277551061675996642863810225241678204679838018096140062099450775279700178830844622733262657766516363891110647324394958337126899043566218555384329202509024680754720150392671476890868280882568576084909760024838376849224987695235828087701305729961711008799652213972127267836872038880756045931713840070764943672620022725158862617873453430803734123140941899737285800988148118363141643374146231745104074947701440232707859099435397942555440753381122295183794444485288612355351451752278474348668412320783395711119905512145543354244591222056814484619949672537458467271658002848314892156540862736179404388821618636084127970687692382427358763787816538060494914752613348971822394493991864690751296728654251810419809197741288232356614614425824270651886223232135475981357225550442126263414522085332423480075277210973657631067909318529574288512515931925926501118079501925970895001783190071809997895311695887137553681137849149862662234632928675782767437328402500095835349024673709394766410164220655914225470776964480530233679948466449145138564616668926050429309951021153008825973907998880030725202255910432889343910817723815098903818466600790859808982328908543683776806458259331424137551922221160480217161639984509737564349189727803008519976651691936389026042943079433031800670221707087864243628758296400089445133287266384895282925036787374179360171568254683768256462513001000200515941856088827623849778946602397527230314875033906767056956350055643696018618200073485659088507078545712652432357099150242252056927994135144759488273516600270391296641027809073324466875633361021104333166107074681861952352048948939418722216151741168898007193631415549070559705323513473958755046161320665409718142183490072155891430835628558534382148522804678851706032256380092500094660329218078811736944975203991638844149992285093957933381189107374450936386453235199454106437652115568823575657433711572004828029983464888878846163681922849221781420723115415214357719515030808018272608172561957132473211556034935383749346115685134110265749493469177860357228520855975428740498757224778422940354344413804324017624897662405348450038368812108047518533156596617101678569256322131747840553892011076001331349134283711484926503554753728702656254458543075505597499990655995327413041908247470735666069828228496570539982092352690892515737672299674725400290395993882657217337613379865936280601148374824261660003437366024908640542489145831104334260031449393787480126966561060149216778925529337916581065941687015305942274397634402934855489329594496149604203423092109638289538228859022822362528230818806838960020687584878907407350436831834258207088224693836939031400244755341800007306589525080008287230656949222754341736678697646512205243876968881887752295813623880825477170573147124579013554587997801702505937548588306111093010847413679835139658478687461967134422369122514104974924275850194553717196562897910358156987174042155423503270563888946732933701452354337074987729882600943739673292155976523816819064194049961414201020778859186637815310115743073627002499591522536420182969715100807247745426390232163427795725669644244860903274274586493861084875302341160930520262007792166278976742648912785584427617401784855708071259172963224606000746400042195604473418306052885138086933975258869131831423236159454756106598599088162039499232503218355155235891961785677771322023155263383844160578586245699803735370742618820918347735390869293025350189416325625147800773512998707547751174996183117756623196926696217261573867435160103511804988401090160154077822628955286484103396646437923708163874737648965198177441866691811102642049930979190250548962261794544400469030482052482054617765339590579626659561316990319610596779009872123482354792942221542870557241806103014289167840288231886965075801049739867807180145598470530962646861152190820122849277335240912714961093775366153399827664166974117925365934871250865223526798642090984467752250837576193068015000600702617542361736750196301745769809908274169631418890977799198625938468983517856919895737117803684770172853898790123489722920599677912887046819887833492853104723529220037165888081984113094319808280391524411908981265060413922240159132333084588466279838731421408664892343861015231707311446029235224135720810925944049009460785282672306501379189878936153192008603224850767378502715647532195021992017376965756582263961937898532585088543494364790264740215978744709387023974925225956870780356149647629595522248575539112552405424821560660964634200243043476929317885601230482872909823815257571827140980699607908231981346469271687811457743862664135676217807319113025521820704378371330217304447859593707254034371013098206095656210539225402767952906901194941679240456626937346736104579205786424380595323419495139033192262828206368567758741017214184273273583684386415043601115944638702391641023273691622956975044586201608289968648868252953856351836501727383036583495609520259315780817130479937293158970265965657305276529399030337366481622567537017848893495030966223369033406522113759238512628022096215629373045834679465102726958283310438741352145414549651339554333935669326210531496184180407638353470582276597108528238822775195041141559227835553721227827989310285049462060851153710358778856474370672057623800485445947065054694443815211030763419580934086044806901782794387374889908023846590518915773935113568792559107666541171068887621737057826276646636861342571882318739115157752277826799579038607903692189941975927592177858941037540211562210877069238416574859385561132745561731409936512166439086531416542080720983993187503880587245413428529911356201900562110749896068914297630107377813129498192708201808987127219513510886724560334107659177333215886743351778128013681842722369516280361635499200095414941567088729334453877674406394912305240397781300572318241678921028346225170438851137066320108338343819475926764148768508470167045276594356808447897915340327867419932104553225842232854872350592334766624091797849667310374189996350007200403846003912024316069347555749985109825218095353370317594453207810917176381654225975514313902281227506311074601422584377257577647892771967406800504475357039865526193051053327548690047030480310868106099638528232651158672362057675209021741538203151641311483725890960008825837998441960796388405740638729211626753147555845602501481678753722533990082283941368610636710471697190429490839467728683016240372891101733123577190187426398791880236892552537673541495367662809525448402236038818131119118275511542567591178823266252443690507835690013371662480579910940840979521423619461466669358110924480825923680614062426718428333518230586197175366224047757492282074512913665338833171608423735063722536616691136765589809454181092154562109362576320475500100488015766295350567102301062885751509288907240114358417998581370601301235722819779524037128786070505311871773904105933922489991388228109405048270775556903383554666962780657692652975431332837483550860971856250276089527735659825633908708712705486211792514100899381202029445901083153319350745344299713505552410067100377764791662284182287005024106685232977971826912688698990470843219897486638186036424627237014408934311384918690989967976395540894965526429865441650886951269054899883443978186947666350386738700704491440288527473546209329529760848538267927861138709825764964102768139787414160219423294222054835688754088309579231965574421216807372053933640612107054611545045596083146693419998950259421728430735347019345812496849475699686593703061917476392128410840733304560608776860563821765629861735774326141073250862838934498781432080995724881649084586773903342594491642692198285095344008036038609996245671413385656012898398098447745078405391862671134150969506319804784965912155667135696755281454318032690596815276516281672581763563148452259023007660095654094105335860414916400020534404391327379077068527361493255301238386961495683676674209481081743437007504998125981104088055939024852773056188365722930682448883046298952258847188028271059201293623788393858388445398397033779208181005835143782857121054066961107911708222562692455077030040064953770172161690492086034762145135242715998115657099683667531643004386562491912000913961895945526561852956849531849111737612906208631483825326289984726448994551399165826542813432041886209694362764592071972074585795672933988541961035939189425703674975073891220473842655948884168530028684635265141889642838688320093903003207799810441593854956186949814254995096746016146909295923409846897972116701376699501361191222146848716835557801522859842261091554116494576208293548391811982246287772715896721822320498903098139349114345963725204624966823354324942112380114613630908763428162190361956588883553334419095830230843165125329595695520246788495304748973382609606096077344728146248734986927596063918673924703652251034258198006310960656565038426983725218196529956376476223078610379240230798604140626400822124405079848092389712794756598294781888055462372382637515017018932383485010009828432363916187899504498547638616592110172980939828543963025729748247616518188497945197066751163876668174770430257953216645351367460289365212736109742457586923868669858900135046221548041385994587114608784395181111437820432460721334808707233128699540359120959192246619491726936511872249289777199870817597436409748283031764578130998708608436389650205151148230419042924136256259746251841124254357250208671493400840247524591189219248453827062987701904686037718844014586448802114095387506903370913756377086860677997998895374253700526522832909973243494394641612408517169486552041142306663168544368290567602168708979275282304605330948158224558022787538837178572259018648657746577246742039807278131858316719221088677273315467043838312487229234457530750636954813773471177602043205246496143955023910754247924368175675925457749568272034813113234512284106351293279534265981967261588270654809402127389474138471742357741242543213178799874511978793967602990171329514307169948750922149571447610717573832916250394322551941234800942266898780194573788597851982862836721796674032963403236047804394750270629913431147484312886344731563437666765529732593754287139605926877769485042612069796656412356900879999464485373199080991294121456505358589131172661717762724944902280514766511237240128495122866529410290773881543718580683203647735124772394989820629353761498737651826537555164375750125706676812952511197534286960086245010484401722703941913015914958709546008575346008515353566953625517067497340463705112346522849645458163593659624369130427389949898115721512601428878514163285548211174681681349942856936353876406578697291244518865582363584401816878678053617196506649851495028078588504893559779208805364686762255438359356070595056264572328760061390648941753212370057383744005861285936444000646385330140897011024491010357844186042071845382702916703399686058472444349507610227132054365612529509837815763569546332598506834675246367197988810807506510672838943965607358550997712688084278753101052232498455401410792749379282170212562187139936927347662771619281805044618243545705231319995515662213203365059586277871240624972207743879920213183316158204875358092957014911658570393911760887130187534183830346642421932403319734932690635489664381495735809038475432862228869485561828141200270755188081411759048586798507648617480170309331780159302814382522676131199499733218675334600900613472801774634759878522179166829112075166324550344635862955529813938073237279127581770480402519965045140602555211712331373487879994264835745709914695177805932859425038405006907432629003089753102883579856424170880742608842079400321880392881399417176440909011558907058354786860552560004374390309009287632196044554926354673586444625459347867265920118164353634007362616404455577993653537136542582375891813176701245405837233066561787491277119900321918481076963129974798257763778410734034421970198828573562757946850921144224497023754676423079306810515513208965661686875992106338257957517692991949032905199334920619062307989494554930843047594738830434077086185462186302309547663066698071730865729101216676077778434466168372044460098427751009889551056825865251037941139015112294211319865329653656707314663905462170954167703744764376164055741992652179325114781247942527574933475246733033773182758302240829282787417858255148833970683930735049079476880412354376305740670832829086538187355059879504176576774740448310888021095356702599969113172033515533599645427287799917994367411859810998040088154876643178541144390910731844093483780785850746255918739397957971638362877694022235266294292128899449988456568138325705613955347688762651672457609102137249743188929441326408206333542656163561838501256820932721577752486229329026218339442738044866323266795051538717657904247917140895194042928010745613695592392905884737462846755847288333390778556913748203737089460878782996051701812976544302922027498375502785748399842437713375722219216520268864481987874365264390766086022783388698038825465380129581360585667456294501198627869285123574333964206417647155178534833518150508258142722943939608415344890602537832651736437901149910460412651952415496995900695041621773193426125201048531772536733059288829648062195203548623102190526361382796063367036978702178851208384011730258690734835035883894033600491412437180610394742326888746229362100771896563432118298895660468963037234175856809889947607231491408656153009182151193829487040681418973298592044917867413379557613034940374103129929125319335160245718121693123179954634617493927297902588449741291277554688842157026476546634168764736815661964891713761208469746903611255399995935268832015764580377582383411735160242230543795285464198346697955756196137442632772685633166185230965764478970393978950731231268928942818847871971142061593544063793893834323182071851122200981252414859538594355894624524709966515274408849224815448052645300992183482744901276116191105713740117253424488090683412381775519141177703713039499462349747235952850094569976715017560423759105551694101407162375443121277421744819743830495431501667637197574892054596103963361636697635792690931099527598890747834358209781047720465960390830174656950953771055606808396929598315304485851768187718291592368672326161027194009995442538258907055870471985184473233493754356432372465623835898491988208640837414692005976960770423293664700598528526973513916095085211966751696827278887712799380405240079831238401142022344679892420257392586315361687708425288833227752665318589945623120417921774806868905159028541726648430324284856998958789924821980654434153136764175530342047723919660581256226792625831599176560688746544219649793975087565947370375582046943829844192286260054630047828205232100288273057008755052217688627646342173432847022051741248319596714860882023574076848885472706793093481822780414858676351149583611896867576923570664319803260446410394217473917395005008957443687792132104566257174506071873413495581206407510282523850261585803203812728385125294587234244474344021090697688580154641701589267460119144786126430708774152403487942614846156601310985391541661608137808852877491979483582812725164888502446977422811971719782829697498739055547588905715788561629878214465578251196527180295823943933144213296613038491956812759165312825195583196383044720332575895974237644455533562853374860597790552380412456834796812239391778028755018653979255721177755871788837178549537072511878920064095808161954940480437461688979849302109011156718069475211838849359820184092804471964721446357169093647444527357678417399913204151598761651475331697235108750154308509879780591782721774807059927305101188678567667670494552745881865966438167978471527703911486239518201235298786600170335105060280735758297748602649955366187595689503252003459575394106204948754362241326264849137787987224166710792364237809042312062501212770153566076654497751752293619361721084662794829422234877910633340455362030890171223582343073169502584618110316371407396254602210882991637953111302354223886856897649963780960327847414259901379593566962141764986274719315668804877273798515414130522553457406701879504804270728568506788120906347036371114930706876513225156343130809955069774066490417314555098362297208403722669868356987454046583623383698708018992292731292827108992861016748672420202169167964050541539827879237310872367483731876656039235938430645874033176640510618626455050801467548989342018577358845756194676739006728911741248015185268100212533807724382916202676800028597652017282715805287992871526199857000787652507469578067172659491409405136163752304430932415380069084557611179682932681766311050036516458899502546968642801421336004060866448390958333312355830658483696945176332237685664011913870427274099738101047101237800513212815171476977905105879776113568349448943477592222560438094561192002474699051020602151639180747689700139317159944345319018043910161467632630392136655709831986738323841789718259839700022361889272757599125225283271178530278294727913690116996440554825504059147836192785802759472919994796899010999953223035006081882445796040051867699520215106256319541155376970478661280808740264397788543088728957657286347684960916439954336611410201238962202589657508787543833737825430347809105592872840389679210525151230777169665257629791371619187650566974426969057476540020813309422774689459159388260497551450245430868802959404084054175765049758873753424189507384653629375536810480571570089056180386891606273290221096593284069033085609930998295237224204426588999216711373583573011695192526089642976092703180295016501402288001212473889105275589138360327797765473778501881000298143463645743631351363723891994329438633044731598668118053601362887480622528434654565631705947905204216934265650716081310702828155040469695659892729372500690465082943323683217895177519149508638789848580751114237244444894521204162989847041527055848241678947552263351774873257014358779654443272008531523663879926413890987259222161266831948967184975341379539677978441746815879205599259755620266883277438293902031522117917904850090503495178186464439059042103481313579144871263852059680958266309530753017397780488731979009340690314807194962269171935719957074171452321998972876592924042165466750768091221901279779556475659493992327373307695647868915705242288775679829250581759763510847776046468669194562493235441370182294806425294859791281977708380872517700131846010619167407355084117187209406734983695049744747603936502373530250152502922590698532638904923529300485827827212598073426440933783258742394183222330801300643082957388239974917667509026824836140954401665295879045714144300181659351887432477691875850254009814386489372114319085268700123437200185892271748104849078136235851454832987694498480329204215005980238852663198837567206027929484265672609553956522973653050713415564846885822898746179804694510351346491642425556308993378555608149540661100785552791292448022172009587811112212887091427757756443947235509440642766094592096383197643937618307091194586996250083550396503764664172132092277683993193432590155744001439026462727923011628938314343136814947320149606906273713743936750159684763560748973477477531054436498667282124825156827951535383259042118224756832860749654373556765768846326165548267308562394751985308129833892753243316028321607189154342938750563497309247674569105856244511074055305671868897576652981028058966988573925281329982480452168646207815112450985652964429728128921302589146136670922554936209524373982091505706513987217491671752487947357890039423651498298441032276634918324203758909261877639702533617445977486411400041247944339292794993938323263757772197387839427702986000575761585789088443120208896429651773259121015971318471315881576519727205642088046042595068338617799031335607849788046724389918575254795362645397594339465501076048672335615156355564737337259065396525498317674793443166137954501204474791238609834072679941386472293638122604123887102438496332476025911875242218378383063243109609904323265021310524917390183846526075270366821178351874784117604226073205255863683477078487950355879318651786045090200811638895637775128468906351854096170574061556753358856330818568154332830879729593718701417325220513403224046624716010927373617116926593738796440522573576350206056009987098614954582751302864757994799244177122334459273620588445469059574585614178883937650147862704777452183037711224464593204935850684180313205122767049345185252115977814101776355176699868412250608910055285986500633870618234974849629450040416724944054495119382349475800689706214537344698637754467673290404508058398602246400054760115911947165799558002789219169325558062246158132572552789393078437013748207447345257569777536629054538636844979834666630584344195883376470159404979050575097197059775475772089252567547477673295745381533526397545058718572773741892511886295387559156896799324985965203588549158743736338517491459977948022392318688914853378079955782390081897529117265839898055619681109340153492915993902760302937020235377621173686704901264131023628113224350739925333286413982823863761712953115294345461162966242047627798143690074217073633509018414000336918687698401227052253853700950741145566221516651665525381024790137331453429078574607039418408008867382185271018922761937457195940900689981191407532455781475608731707897646818829636404125346785262170465060431843417663493176656112879953628880711885576167185486721740164911425922870600791935857673085285091561271066631204266837951981850862650443916925220451521449792618047773827776630005121995794972530774690342514756798264450067831650834010628303660367436474672281047985795107104996208163047399540318319647596190905135109835792607439749809132905421957098735413199060686421688109311133724508469459155593675878692165727841134384330989032191568435606417814234022447171828335435562775869464390137717636399677944371526354713067524611223869666025283101678714127662914171124277557195367870735183099949452697641991164877338012158536751109426986241950300524216125647715449235235641737594703935018231334995588735706907422700764660306741334455363806551381326738607519819195787334700893295114843371337142920054209765350807496760217442378604053879746697589981133940268000407252757425053946547320209732064755473385657478739577925050490406740497399970291030360225589760655192954290847925943008332517918894135231626191239084463945371370629298162693757644062715516828804497686074541596317035744150641665604632191203715725876155897066566728871643939866778034173440805476576096647219637203457528759838519600860430286368269605304153870578233604082473825033185021859349910368141140770809305559955149700018906148725861988802958750122505253340757925635585995172363789210246868187480150681347021532665312181035385694460726983995413873796007079505546978773471410066708184651670976796861601183619354330684797360710950193520685103265896475485650612348512761661654535354892271596362448799294255980831144800841170744377518505686342574366856525031556023353878888768029497777550736829855482663898792683621981449881029278082608722918881751729838549766233390024932218676375487259364132687512411215024271637810836960743729468318664597602642211819572278537017587730347739732355705777150103170916347170067366438717932766107303441098719862768163946771373829083828797912443110161678228876410217175675493768960440334933700504037735930076063425960923918754833190820562589518144129119158412992792196780741971981844089593142400127335185408959898255919674596424683877989945916478225383873017368736149763691130890582241084403763434783906769286717517762505233170526167994426318226252178149617542581782900893673508313278896390163964948382259346591685781176408527383692773966257718592369617092640211671020179108179539892487780031813146285487555884318578620522969111144733372777532641854072115018006418153006769470565076013648457391013851799237721089999789355729379665450661732090475617571806653263624491889833745990394725845994912974360474095415117555851500302854458487334602329085722094474383421943570543056037533788825245210138193711892684643104565693157716860376657227189393666565355175207151997909197768240755140403168795067575136941723048048042156709911891929234100672933146318030075368137433666864256560586361068229541961637774027263110617367228001019179162955114250697390189315595112843266478825107316016326581490326126194118538924009340319526372644862335331185803670636274059721464627926713305445860787524929410525955714324187261431731614759229600881019272630427912873013584340412546559884774856389135781396438692117873534609115451174307843768872530309112692249298923814056525260827476680275877776985593444568070007316002636239130419321706854780519116305795379754392374170409194262455481150670788101421141339548802299690528865802522525487617639336390024629320336050839895147845438034193711142088679691800713516518883388618723020168816061581724407029745646987423839024492060226376283888936147577514558413377080332941853553637832304567302636529028188630278517969922080444576339045094675407000952282944299541581854747100818069029365707326531553207349756019380778310931473235169707084749631383129401317223941782017161304052224533568454430997336858883067138822952851195895845244492869553726226998390196858135872273408928228904454132850745409885727445304619304270209497483413040827831085512719398481698218596093336041672179527985742831350926517665433516775870870958484495928229895469031327263488199014076031913117735527709645838973753347301675562790929325988078506480990866079605755759254921543138816428680806738811803649368079609739837751057612375902506531160526798435151153210439564887957708976921523114789961330954427783971032128840255241641221512805596523652881367795599833697761706138971015247564963539565312340432264596188564120192240352479604690273674439559870823124270305770296390012731918023770130952078594649250440040168393577276824393104504771499600142013245101139943622955931395975536930997582020495508570175355468569953849478420659861719275320308551364480483951574471230641950503947808919868017237054838333254577946207218957144056140431021203303227976785564024483525407815988232025685411785238457538710409775807030260815672904316454506692328056995246964812821004178318312393792147754569490616888047762506848924527865349081876061859978187537749469523083507910160341550565903804883036189650691348576235064723790018346488601979157369282231386240480059359205504896751397850619780257925220567036374677487717058487272995134270630524337452888926822167043301175642720242775228994657505678345093644939310350372541893176601309189800919350365208613457305295757641349594504526352342275173493178263623618467973659558108184450796325908758668183871535738755254793426432393733722379723525098677335633141236035630708862749412075869748466398843102168300888438193332503009820476227061321295418408458498814322870588203782659209642289932545619994537305798837568379210397410272225689387840770424814238524502458413652251984851534625434576112579831448841558799937471281308022345999578198529447993663930615440738187485328020562502377819907522400340944390154372110490545761157668880523082110203627974085503306711527317386691910360119585258782403910474967735446255163754102034480676617150418659242701707872701812900120025709896363821078527805736597906369179669659132027979765750487584417432066505966076127985367429016841641688939379191621705687281617996812421638231440410533751155489414584175190746783005718519680940078237498551533558081021588242743873363409733239531737411856113653375728825235243228708786934752138242585008162183846134494665771779133565639258250472127490212181150090134529257449476578514939158851824996242487310452954141014179449796957226045696135556526173620428578191405277267840991351255303605111298065554634307309733527550563429578878164790953941042431796593087204990322946140632661009282741023515934748012794999170080417520764342970252026790897355695715392462827438143608319318915949432956318931098004506264640649728270089650179240194805238598737955101235235202880083038639204954881719031031764983281506776054698071444522764155694453869467038808755350831586274517320259089205868350842750589128171289013804341479970122427378197478414536443653161240455626611359119270164107902368807172736826454357923582792839688475602318772046168658854736428104342350150883670896429474714915665447647040029970375943564161347861689385467730567268279434176759789173115145709117067545868404340222700574987968821398674733145904704636298299692105678380028118257236128856430102668752459018725723338289385160790599117426254654166356199882295639004716309094098403443769149622685077763917187312731578720235117079488236285142052506572902258355286043419448785431128505926964052936841190858006570282534500917917357054149242923680170304221026506430239289674382734144088491762981084243586075028052751797790248124541917718236447631790102503000018187158142510999464506073355343464688673628474221739116628747048710039292316686187807152030419424211231701270359898729069420777278382079010622972680798684644782997284497742992656941404312154106126144588237550400509736122937463804980621981942977572311461629633030267614998590275422141802184096704914747507748560528865945132973796409616607689457331837842736653046293966683730913755015350661427733494632395123311654209577518535969396910828805468531121066582517426283646756078636131747836330336575026097616961195174332323436675717083145972226481193239730964521701542921269431573723414830867586088600395694559153246977990239759929941640578259385342958130907753557941285039083044977482856650033575278085191468237050757769464846396190852027759939541556260237308154260378670410038900981406392638553062931390808053048340570806819375676429668426917884720396128312225338303682717919416003036679729020150059765747630477791039104478774357460293181120969189602652064253639523072650805816224880741494281427993617123491641929858442799005928831187075507993990301002473307867850630785926564361229133094592196569359216425239909222989532963172458494365767340174054687502186330334153545382238021652363645510915311478965909100165542595237790836851406562604433793462969641432197122245259773600529063659589534709482056347523467612488206006541719367208403294162642426316644964295477501829352629390310362300346544422773159633340475352226332429167564745513431619142362525776511657289991758378705834662046194025969529137996431188183859539408339772646546560872999603368112703282208642649807182160567884971667095862520483345474182673199111578697168825138046835108238708917983366683992738160963515096388118624180769022009171183449024747584631170103526382123863508093029681210679391093742601189421958600184252477432997382253932250812116100961200960666877310617803530428880978169542282535505216164107828671253740893368095792510182460151027174144608938244770484988549701479786839060392386851228714010839090622834310105105912079302490331699026715425246898183497750185565594929788217263171449458855356091292309165576401443330951134420523300167730493052016090004272548375003063169222090156638318773218198777851298316621107878170514304025860457885172047310830244545005344122544515773313987626079789513806075402744271710483772476253469982226581476799539846655300857651710293054413842179903460669535812136631171010985172621966615776853060342085676995808657223609282273968846476773518368191699451644134774208832742802416646371793323240205684346987932117238478117045090628028162340883947320791966238082701081689339566170185933461711365293689627990350964353421104802687203336591607560508256873380229843705155974722510633564864716191037030608436661498095484700438767050834722192471229339336375533204426866330935903863779596383606672028891494594648747591461979796562487572922581184326743214368462671277019951882291848308834473898892043880269545822158995693057708956312235620322282580168298599001801545641160203954648247402272576380331790001029233644478588554974777397884801576721435495175314771698780671078159254722165587651812838949017957447874069880686558174666944500347869483434945528035199535957788018238564967378913482605532632982800982883714391637053967642562606103264118561146577259380252527198943963408263905586272573661043380847653965187296436711118644355058682236332910941051352963835013779107263915651537971649968186237306868393252463775310398537807902722578084281078222713174036666478142626483741709964447041430855726903766228936714613179016057887617532603064245850738810547053999767094586811110394598549297809206904570308171547371228412634754606518173136304999042724316967210298596191921528237272302095147143994833510533564115657794671211069372409309271277350392745055234978241615318484702771804753287736910166610778101052433901077594708370463683941391786578165913342791651605817228568375383217124940620510937203175978926301724476216205079108694972993931729747392628267767578357184550597476465980350712620240399032470935482574951015101690626744489438311612619221700678167444044437628500682045169579758856792082020928747501506363370616022183119817877384539255706202575176202882211326876392028462562486886478694620120644771373425815532636526486166410718683227065107233799607543663874826777063781108299453100530897573684850291421785699511528573261101546419335331194044576583095046258319844206306014473841711899342358094547334203763663007728946844271868526004440555959567110676426054055259864751527891643013087791481169282211510451480239947357961395298691123907348970698046396684794129311520775972334118328815762149083923155648514469016541219516490901731807390969600409866948512311885987397132328486853648889940729589939326305914307416559070305854543479509718216316174009328419673140961856853675507220767861270188428477352518786253538619204499442803180026562134688922375468340053710497371639096017547529915229882715737611553660858913267867587353173690444986121814796767814432198871731411454391380011827508186712834111567450800826992423186134090327231129557444565142062271806391644861805200358490012268090402285247872193021167219107267298288926186941298134273872708765739385142814118768611314816007289911186757040717267890848842595814476108336233950466412067371817499766899796917124511133869015918232049350048997135247539107324698917792079261469913679972877078408174731551624730838610416853116313103377627499276572198791092536751534012789472430540541318855809089981008224099361619854107011947437606253777059081105967588651294235505277346680622547817290299957774340638661997160419179148476704379542568391505264157316074993886259413852632970882619878329367918062775912722788339603826864900883054259426888800738123063885107115113024193590029947886874510570817051165362776826351442661619998231535830178295233943493621567433152628345356985814931080690416190738766384107775644345070009876505928959476924850787555614796302649810603377486137299950613463035073034870618473900031003136240959907790179546602833394200839947237333047621766282169243470491771661389335327010802199630517181090628018639897259298005353924332094086636372595399788546296638480262329325590190790584941055612390046476108723518338082672626941059887968937897690823787382836182967914649719470970142324750511910059642615031802260550476144504393539710226797514030651819556324176051456481452396123026217566621313184825194912868613137563799621982642768041234596412546333979076142810806818968848536403235120795306238683236870408532030558923324525710603389032338761158391478032032283377184466085984520424653709993101672431006588422284884959010308160618508991587906620810306969395492994738770707147819720490006342031854537483463111341128359837023757316329822973354089014797530123103151024819829592594139199148230106548533256769765698656234604618839289600468554216484349255379463857348423807984215073374456639203277561010386645677894548769327931995676848154107140047385568682310119489182618918733734422405706105902261764945343077519496732639899483131721416041562882174160297654081720209025984153341078930426803316733697239709312542223078816394187853122611329270454737595258981322030947820210025961150921897254070476660474527907025945462263574123481116667556841782566416035075543868466540295744868722495351416971831580783888507985829409187279762147945842655673746268397468949917836549314575276185614125296159879126071064860648782430281194576301065140768444133299100364685240220074841976220016663958732716586725030439250945588039317105546083012956361111780487840206974761234636153827279961312447539212670795745184090765754782731414796972901408890255339211888637706226056020878872773900233247677924854338427262354180590202252548283250638870722067319810629488616077743194163938477325496389836512787218537521913983263156692099050863382222819492611167907434906635345144448084435693848597042967439857891631249329637979850847181955119876446711258697542463582720889942385345246134972984802270985026063798329439090742556842047548839026981770261232558658513973216727168463836155502146124844751208666168330961241426152088729545648739633137705898120346579027044839657188887078477138832053307953068684747263795089782494060434831164289104431044600618331998383737672263019025459805775133696363585750492401672293034983941816364949376640392641514825414007016058713192860768094917456401016150549422210436002427578814266161390040586079026475027331624610225931182048399539183283274226555477179280259298440019945925899678822054348909275366221749820621809318283925544075815678973453737722466242300839604975655263489022035508378068641212832598934686379602528960269234819187591988367021224310987569934856705920064237670905912051008963885811252318718523056598609509815847330700352236398096596779122699172047767451064256632636191729385118411692174475439331018179849655006428276545091602235203840997363001573108081537874025937241173657174202903677056966877956085012035370022794948805185734100906608799043521208457743468264980223578441038996171758942495469289454645861943150220994541221343977110486777534587614803055618134785474178022198442562191095383737764101133006378525308185399312970564035586994208404201459760699504442686551950541713594164690147544468629970741237449423167617808558483199459041273994734982244922795017417082270972396291740927237546665818010289729455418177412143755686411996660990617970288121896497985250683753465244036333106743170527893277041320138944014727514432512285279945981374104723588971791840086967601294327323804391925893227453694419971750785338460636802213241141481999479864945199073985473372195562532955061839072726045073014324050880428602510761861073668430129129804515153275982181025058150179798589770945989612634023897194876658443330149958140909138885638294362967961827105721623763972805224674955139624595966533140567923884385260201122729969867050640759939853319524932104153118996626866237583237255150155226826965987440478568799513191954436055909149753158222094382433172966381927246556195255985812485308230071731775908103507173944269062259235133140326946039121163613417169391713046781014714181845532026325361001103685576792782170892251907011155589649595923902389069012580101168434928974915618615743843398625656402307267695710623594565568588316911489669625978728731408019709391390306269741571445934751760440358667581356432155506097072224770319283517920382061117640187816286878714661460737046758438049186348080842310799704657464216505167478055351234040469383387452414009554794079163040786483433305779653555677719436546942974365638239201063059668956706559859714135062420618335949909467195145747435618428027258205490615440629461460049042464395609297300841588720267983919083895352017671222822790374249159630731135337162990204513786645274737261483159205211245454981834985306475274070773442421884844025329558350067124920183106191181200629021975514137136749542627576288104466000269019472998685059874901475288307913483101528928557490931807870876453685220975384993826159109897431063956632350167529789959151302629744986443833062946809986126021515767097153547688005365956162532877169902677248142995949710631916486983955360899049138593347424462070446384336816353590795195009874560825948505764692160100532867064339248783240976318329208120744911005115957573311555637827463086511639687575475715409166012450677133895055192858412256292802425754681759825692552079212814096015198834595407233851982514338926392241288933220247433399726639506002600261203766983285210889120650399602253596595254608353627864084948440299249260518771474254805083340433629270779317493879990700007064286647055066946455266884742170492791767135775891660238500470466767657332186513635724895030199880612744585697902337969155903394680649325402663499843397580715695723898108355608564586696625557081377138075871757862293396818999036039235466500211665104538972907154644890732973601623121199897150659551883703172687728734590082766024241521566543036748124619762092049371730595034082706782375697901588672125501179514131425274067759072780576915426738314437234738565438968315112747387712227649211863955522780820642497685703916072905158581039131674805998585641694757640448043389153812364763087887197383951922337860749731339277789828133100626253141683074799811191031442734406598272165873047017064264544078497378398243956415451219952021505934688011713923212637555843310511016042409286286086489639860674489931432084744888162872355246314653166739275749687027853653408234918677271062601165483754665390760095891206029950022831669754534217257174928239429834501331776651267320043802088871316039248445505716650813547242433195404922539366248470196649425248904469121769347502733879288818715323408773397504710019676201497234364061504251518311543600009295284227498053489923195245157257457073713644461945949081853360778474115872828867938267620400685411039941786349173397231320022379131721997655959617665054434904309553919579296670371660058247655172487477860707007941128490050966037714657607134915895641171209268159256678671686306787406503745591696933023899274873841784991463874119552292120447752357111797987446505769371377253196274761432255846715083055094290184464540068070389222790770710572584138719758136539427785204744952564177993713016956090714822519700756085961011136111971746501129479661521262438562478001576454382824428339630282908614221019594499689964124717846266822631113693857946213151272975533543111167555841330444058440568326288490135851515993388345357707630601260081424649586964552569265637226688023562152750644412381680459140732766782597884197225611872534573251926000085038386018183642157221300194857056880250329490817021633540839872000360943795127093231178246475469265427697692460910994885867754683794422715956723375297891172290098631883147157579989194146874127588298624983311787139427172831337553517694711780941216964615965992104794520980474936372810485307321653932783545479941505292910736096641264579200860872524532426400874171190619360862956672688494822948373002628192854529811703124516203717523585130297018389769315376672234914152030519100560580522954308603431713412749783381380459292285259375429071390253073290783596759138699905495071818057678914131859219741279453701057388234866978692271555919922654866473766332001371033468649519344240030365169335452846340755599459288504129516806005598700576120635152124795114688404203736613930139101116894214508843283333306552398550134966479402504367304515191973349899597900396568630900219207184139977276898779517137567466311702913246477461096366912844938802803765952853689852375418224221579688218797865047099691586319635455640833001415339462413792565472131204908255494613677741386840644137603624774315924854060820456736464815958463946337199089915207241620016335589422154516544961275791798636473018972112421249885487452405691533959473740523129644375135742984201112838729389139383681194688008993572430638383101442730577499931368816310770004464724616359502845757185409631493045521141427397443567588009092100246506646506203823845252002003874047092327541347463108869549280590874853511119567940400942910817066951605175078327115922391531096366252188439193289361278359515700147336901220614193162612340390710855140967529756179679520802666280867939255142380900807531293330017284869488561276927031175886626567770459428031590120501006613738056906880780297081373189855599572228102674869007718182821994118371986248900168687945337385946490921668205474899644966310716109854829256648764909745278341972411133884525019721909790485093815864404120901585115993430196049510802371849553254691420195049348808864018771937052086769439599819081401428854130837948539861375768066730540789443317830562590758078284915523870106568792310396611553335337240086682490802970311979810318735186646050189625945019609130233855453491291372127585450009234066044777160788734108343537941484318499602891898444012148974820082689372867919341055261726425995076765778525161731252576249670906096470943374967161609320235043041968764938854208536731967455667717176352478130434978566369383416323479037925495036082695994774608518568448131609996286185293780718574399366918684449642843154831924868393371980187551834039136061053250337853271611080180071680375561054613229896066534105694027683484095699826403125135013241217043727041008309516428183108432493676802445466959262198849492523845718687807378997452191558359694459126399318561395742949451486167771601995376864019119829834042196305021040785099467100474443718902259015531970305466913212154348025575106873969103047075537368759183237667780206365292423050873422091800797604064070098249887629786794763889701466199342934886129004181431872313633212061201973503638743431054476441505379529122602992531502450300196526512920595143392259948781989125805601978441750242963208682967314392821315948794236559124905984755792450680289065952424227059001341073022334400020773740513322397909310131840387202111152974096941082095361947946906851371777777801371740698484054012907784910619817177683974273838478224002012170116796307402544928749692000535578530787504081463118495585671742624493950405794866074647863895361492763917835880815212281502161726804992198543725264803013448178827056022425133662117206053682916198299700822968270190054931654310842830467636771357442655902096806553350050859677053819259107281340038194257238962959321303874776625256550734473467880004450501990676940515128079212419898351856998730756963608763475016476997958760295291839608679582505100585290642121228312422941231786146726692075341142315959249975482947158655019005913281672589600556731170102459857753765259022671081801309632932841425234721499862731312109179383245953376333606829398620000921175651444060445488702895085388122081783582401779704898157955513331683594491128284865577339482322386717801706759338646875728538720616758402630142381442547993508313530223244906919268524017236774616780819306894375823316245796092586859102753310795826616975318977849152199140236206942567908279785916882426979685807355943152397963159403446623302351801519869344497920962788084616232040593593800624302818591235544657047205038425490881357772781572412146407950142544206442931339878131943372057485381757790494561120639407735357543676736586444373827969135210233760327683975448780242750830895917938671778234391528971489065726488159076684569969963075381804214762368599069731451206328026518101456112093912461696807020725683679328137238859147944968357458694523137529515793842487920138053689470552612700388758597655629107720557032810580144258648209063365783096148355150485569992615441865978370776023560554434856268387305364235437710402544794009950125469300953386267151082940955048486391843502906892675033488410987215803960947901154826872831134975077624822207681051820042175507870289965416534210237554744510979181512511629072394379342679107182812280229330545041614743614142912803276515731531513324570106407066081729083872269055812616967360144399005483526852009191757152540405375054775066740736013821747845719958614397648499250414782684805133294437458629008416797745537025061265490497428400755929711367817977288146923399541177097922204994003606639274905056680519397740482297708691847350200696822299654839613882228316355903772886327474136223291515091924493488216762344913163458902628369264820636791305487427560595572988432360608806960678787769006586383640142070550707068320506961996293594343302564616614978083211966558200360116353559963560289628923694510453996659381234420881157951807994521847873967570659993201631539557879767475581459636694629681099736983045987063813398456419750801873788635586924436530340763526289465460520102561978619872564411495711654170685455624440063844151752485916721761746918648868868212200039940611582901547783404022975286008217464611347973880483098409609884067062423222533629814336959509488081823818076883015657580260504101547371738098497131129430635726906450593454014007390644633806397186933872178782665446762204808585705319015897971179624158129859389827161772405835260629362545577623443872971470212588313513527208804090593393906585350230430146519604642903299712524326917750973384646993243413759043749872203517202931679737780660466858531664045288761541500376206783552162129709199983320341083427325402821255242049295699625980120115409657244583530559592944347963698015740938522735044222685699659835198136962035433006403049524938022736352172434544376619209091952298656927505643265399896945292127545141373627248403516657140655358660674034683227902241668551128815845346652236765500654971863646230028755033019644220591894534111455525846056092074927356698552795339063496429087297821050155821742157885749886917375455641601466797305412462876596561869882956359168491302038722394655445787004423307278287035936133634918356493028436601082125164884256097417437069502487877850220063233755046359237289017089638236671265421348153018823432393962839305246277644173794743381411692159427066270562746793558214504293487035118093980503346816290283803574059543429649458838452094361335171407613688653880600287992462305141858571834266495609053492761081673176265095334516659396733053558019105515914300022727671626458662359464344371581490511353812564595875358796438747688712025254102989260811599524446704925841702222279124763934207391982910825446798933840838650475892067162370195985803828784639935880908637431896756917090670725862789691567482719190885923620534798772856350641326262533980591069996308754588375758804514909785571820008290997230705321375663360680587859788673241797899347190754257029512452687684749140953870698935789382362462134931686593248096634692106674308571766820266414697525690885035672233133895865962031047255601046583990612685944701820043144919892069704035789023889045337799324116132305937760469986988329678283212281981099421625721988997984341498498707469045258214121178424551400611461326482449463634701988609414543062784604658806614027030769445524046864241919012111142961969403400619491491045615532836021938879489481598817428271229363945771746480812762192205514678150711290644174682685169934831274548392202222020272397760186049259537608754867177554752652300427106428768275468014604666992829446029867173778661812935204713566709923992948754724307662347774145422877536571658079005694059211320940637743200052601839537018060458034842878022511157817250124424395586229866342553393229542720023878396847338123793773560645397653325526858867481950848263288636994096572470433056331660751861597309207822525064364684565867231626479809762608350063260894134689322591825296768884370020517168489060837272803249716668381176423659446026504348270853489364665023496308472860475206275744398098242596980732651625448335285280648714208516429497617525895710091616848892455682255245704247956199338236571606010673617239538013381385854485258991416393880881027586757513966140559162230416357995701481234122235289878568904674157228279472929088002628442152325771620486147239648991273517744141217461659609630592821200205357071984700840738249653015135049595593526412305670793046110983835054978371571824505378560164991615896378394459037976798046166556750164504156204972630316476433120303650061717700105455535459721233595645013149117201182160714975736303230540042907428462792453035716911497601699912406669216547547888055180366458741099849129667832313552000672599166785184217438418163560968967619687253495173211507023142821821666869454569415465257494139263426339336052005968031217354521593696505110672911972667184283567992064631806483911209128294415285640029629590543944760409505512707162553798270933974923959191090326843617434317451240126101244412678664258610811763213183398196629477232466225138853513192934956866024181414615961686508538530161842713425409829972461027980399315470058008523378169250310531846415158236910506761702222805406962676047016843344079279778233282937332150935925676939708925897824125807968533893272227197048816412344440884948693842323141240074404432482712989863936984603678074933550709469721703240439550796163976114909714306093967229311966727359737749943932396395558739823782016640891971846746432161191477829526196406698018050277892179668817034960162622539788745010140760918576817303821395707299105939890618480813540375795304635723966245194476604234563267077968780119474382259220638875443025712306659166327139459819712412179469939515065604478336431679606578865225004307182748346864926189990602507402639690911721924363068017941382816135383782112212984425627357719891409297260542889137811953426242086434478790208807927692110556439773922562726131148941991297195407168073975043724570838240063428134455720281766184314678116738933540131742350570950363430391953922508702888345838958202195701746590600076603800535388142251026535048265452545671787821331043225450986329600162236729881647995818708978845723668347214824190274999500700160450698817176069259784437983350013261645684478079131540074985193908166070114122384253588590269725166616662477143380400122882096166331968881407912970554393974662662129768735707616306340370754200037791836507624833111755906361749369631830955520998842505336134067961470837352514020794477227458520409997471072873513711583166239399168739871206830453115969789581060890483818766122025078006750226402526178788292775220997102098418445439106872504339160493409334239520284764275043590648915337925043090255024461575257693641547348061090736278587876692367030176221744118442740475858555638024850285167986517339337884853244014820586834522794103152671964973861631247637142927673403621487135728901318007159250000510004849009314573123271898886677029918465614295762600433672728866622241580818383648906430753488726493521792776167718130462321484375199901946614075502499075123120435198665080840582074599969068787357993573420268611472768624359623013566084096620614765305421805072575420773108484396315603609631798664786013254899064944055808218534819560757329105637710971222214378581500799104704605816302026495881030658886651958091302661142867242547915370109937383808384701400910327886687656307912156448080558849202410520332802607256191972313229102148464529991863860696868126394758612203701714837615929644480525567355046360546448074191751662845653253225372607098481431787457101318609991503614086765001121297448612314351294820254313944966438210863266885876621621978154689842327743785306398989022500106301849077549159135094032163688227304351462435736404798457703174463076439573720052564607348644820314975102550777749384060086561434082714917349316383290404100781638050535456791791867017505116296753373197999692387431442610121926495781376384254852845045689194445834380895345613432057378067070378875413179903049354704389449303444022001319583714538968022432839129924980950691347837928063116071285938998170192171975079328860991339583927148495679529089929550528069649881273458021859960423898112826669642850290248005893067302673607137308351152624820988795061960411300443289528355166478076755495961959299515983242912826564133870155873540188430090654598004133018601303853098611680947332848008913154194572683170132492137190149947144666686612259956389204822142244945571303007807419707382956094788812484272114835746346219267660647087273540482918718500718153446124190603412181150004799507812538737177276576951742358504107707128405571223474027818250436326686538697264928234362017343611358118044216879851500294473477002746483004199822820131348548412710167294354542138222852910642890833441283400651280387222629140092744925404777317944724859164727194999317433297361285414942359341061620417250190291552998818521496942758580495556510011158477509992026777477808038144626321372812618695841313056403379295746620876572593596275699558977597166160683677768527578653146136803052308034960279991916120453823969887588838662623730365802747241196040902252297431234264735233546954554806097728124294395893168177227434279701849890577263219873927570117557423012678539756897819330503969856140324114163405627102860346210483847071448180948779614349048988620041620849768732010817557267020623218469121311824617002827115850977428997098547809541676630594823661772660189222787983884824024509219213931771550147641579064852747494247130487663142605011180701079678751872337155474452845183883799016210056553899426395610639596977689852527873529950366574060965234658309231069816200754133161827092390667786124898011271609127358100888480468885681080516529862646954536578127641243781651431398737534552065316431022553285033818055292953970204289639512272927856781086149671793964461053822554722240119136817381261783921874682495164583562159176097635251729267253159974896915586593422228141480331745115172602469745732168299564389814426969435717436665666790890687049595460325625707651139052384781816557932705384528734786610766377980617513065037572066720734892021580836722260194571288780341228032699112600803702143847851413750088724681243247470889975386973107021551633949849757897400756691950826274103261090308727904379333126421957534236523290655347126400633566372114684633749706238320091869673699549072706984904876777329584836450198677821110260744130954078157131038557437395898036602296585322451356423525138041239331395871369361489098064526605912021832109603509057030884360516732020490482111035641829116477391700706235290736733990511840004365538875948106452810766785440798284327262473523905797836633386710321306730990994321989538276269722127273911728594396084140126015560376689250859818847912476574774217181377644162056071850740109826745236289819938051872672741760243029188806901353058898023595195124439702768516690585331295458503337877280995658722271692304843396269171925271512811630110534617301985570128012271271406367300656090190329306532520095260469923688137210122562855429760903477069610356970243844644960801122765060683200207037387359588970527752700830305243241321190235191726345550571354556707794242615775052334797487931397001440824930119352134338231468277358820963775210552182089051414395746764944082689917877457779981410924131539730790220132106925159556099798323956651325591732070187604959566881173021784646072040520770477857391729818582008126858513918952905814871045937504142119657475772161848198034910380309734825781500611634841138682112459884037081772842714017846715030402897674290621701049658091160442807074353541893524840064104741958044574205542500250414026132574931255091043924831537757342265717066660995086193448119392955237086853714968931633237027409388212111674605674590610758773597248974705380330283832948779148078212557511343971844324854212324261697587864887204673463130997032867990466891747841315543888891467123581356711095838797009752781911600698629464859290005348774134286600072892262489492875747694557873315024921159724305680119609003377714269119064923808913852232814350219395873028130008401072522028397547318139369657134315712850951382911332214191065287425104377415145261503748794975877693444385685674132005481057387755098684832437353084438460396133029286980471372452231814418191166639527980928216225549449433541715657492682590257412478296032820213064349047608485211940088692019005888574714937951175042032380220416158640457243656418192626366356029543041617372405091601386713865664413825121671188953095351350555593169282871872366985615294856172133693304615633053716084796576313453066395230957400535868525130673861011948475024478698630585175068929819339662632143351036055623408296084771227482202564423842237755868370033285760393525097205759191043300726432322374422713511745774764429642191424633667304962349799469583412856587030799869279105624416052000012923393891555326279644146969276269172657251835334628746249511535527575549388276566706760270421201806546114922998891548644195641737260059770766894593710002504269566501817721207092633889358860150240305910242212517339077131717390062103482436598666147259754837509515851368026091152654521699047862539131204859239515059489775992201281032335419795894297103272033023433804313469009913205197439317689997916710854026003964816230428201932792374128278944684181619821654795137088726904536783105516697978167983052638706750579855500689439233714011754575403521267243575161115804689037776079035204620567681630174900119324568198412941334715939026026599988962916170834118288160693272762027389029010359240071792934148034100739598442756909015322323286379448622386782357290706852165952583946626251657698636806847734228390598685272249552240246109375374651139632299947058921571128379619034233937816264999234919337973429726114598140248218367252880711928260667828638262659138728936357705847897003646207078127273824744339296376579363848207196929431757938921205839176264589305056005871246696879896413354754471423295507356884087555122333858372082662546007368936064388494979210402217408718980542354813405803588236595654603749820160063997767709068965532223920476762190047336856687072216209865613382342830148881645079512742843297272861634708604563713140235731267638634769062485393278129231893090066866240067101645569637846143917448973206641360274789254403933509234493532175090991119995424363110961647805298777578854327317633042796298196860204413036043069236124711584342778074875059062796471261359403774400146769730347469999272018934729968990250684048760734146200424729024785722007192483141720102962336226421520678156220434156424503387812062659436635806119749536880799541164554186658298071432338243589163691743666179668931000555749538348774559606009193643713183984437181639513180334958671383003769749735691857815339228661537283674575119057355227527114518618589451870424511522818599369627829199975710166393159449983877735760347601238996519404775739573117370423322650118154649301132027900436276254153476195127476610046247235841681188487107010131995053562432737492296354805541123063850449037089021002650352469022858691140367497352665668765678341799947756928055298167806469407804207921541649184097098060242576305701381125613346433141975567292219916438917287670856676114286411287861762202451115093055669662873910729545473901006722819868148949580496760681664265884851709631823738546940790709143146423579179356970206834506588803088030701084145633084262400354978689923187636982582533920599028424511355284060978595930251900391588540439298129348509161371156821794150546109547160421770858196151353656467886188360456520305839614402810203416893405660653200639392117083901365161269154317228260833827161989904508941537202844908297372336248888991243839154149550916273060547559215158247688303919734497056358810988221755806438441185743781577723781490399308322223688208111970243938879292484939189575506274350092140181377871850931896002931754009097484063763177801645943736116891428457857820077191970801185201222447989372916736363130865422969041908790077032701156848351039770486535284267186378375482690242105473265302179441987032776538835293498791584301300544027564130435303591969725138992154508137371287184005360162148188291573169998831334415464338083920933692112685079753981064992588469262046380159263241728933098260815519887313399873433067420581806428488503932823636834102901219598490608552938034606796023791908629396987247983199127735739534553355224289998008462094508177956442618798465386596359497915520560835593024222286192645559671790432928941364943870872334095537895909763588926290418127926296536740480043890047533788655833339363982031670210582442496719734345211161763602826285907368849271341819218374975687394651474493797535968061833168583343523384417251152577582101200031226807667470315196300970527856641653289085826304708875700413605401222666035193143565545451163241279384835738616881960628760240302665657300289231137965380549011161816207970266840477882560043202965850836081973502757206302070284791985743064283005019191829263734751005163618169053418491718916324143609358545770890732001149946105279992294447561281449975477193379369600618669327436015281852933457406746420400910402081603787992451261707221334506531083550828615900931264034590912088108328828811137071028654129538671541605228300410120480033068458469024254316779457095214342760101696507646777154155772345775144278352482569645334098561054809632215634736320959743540805349156999035640964225988332769113991959129304445913312791462382748904439813541510846448016431132809196086957288168025119273172062331888270301944483806175251373240874535492205862627213652118606759526562763660130236449125681608083648241211748557301177509554106857133140655709258089184755739836431007252707832278699012007182241912688800494500979233143049961724225508849321597390135823142599770183291509157531605664697944672951159841116991986049298633002529122144587344184001068563707801612839294421165532841741095570943247344672824337457728234010004330191717557557712735044403320664425045338306312859409390494202334790811749921304673255796920028269019812576503190420683935846588388652363758943619448953408760869211137229866594516415646850598694524909636499096129579029829406933973778480686864777623502821867763938936235180905742428083166372840193381983063402166938350411657265340467114046219970750804237167270346208671315868654358743069556997787698252453316561137349255627202632933373797547709023646107938799494788656135904117730912749056059709815638646818501968768306912852065222674696281766023270466041204971063812776341149422535584179813053307858028017024662522809543356298712423975478265925814817078466473403380788050591895701240928601183155033115920297551291298552900029153112429784793381455955431729913129874764817975808264723334781410219909941760523744478666183326592497787244035975642324699497720812551161431026172251127095050579122414956541224649741875788127044181483283506518547796075263047196511141232152069024251133401740998535729953743463770398544073089712311906157852136847568993059345835518009705569173170070581963253123759492931699949143967759377426391107098369821212287511811434616731916874660967733703369784706594792548281402884945713133515933476895389679942664285335776772601734918581859196870910944789511205267217089053645499683264906374450304153240817898209016356351884425679869051076584574914939180459730786154811555102017337258337814312556265366911590923989705110214597746917256347667977050956589260971711140184564512873036719713601164044323983895419710491869496239131419181952439631599101281145955420532324564957438569111071328220442904321880383779378738712253515893088910460995621647240521572539495607674458914977405304162773910256038286952037739713831163327582016145695109553577368334444595598441130595705801702369783887642304227377250563641068317115728678050111908365516585806019364365183052393936144851210058112635639991563649626832950518921553897970786069828099714974395773439130946175752497280148143462547067238347436548462042811596031579254147017101063402666049024338077513673967811165846961979035229285514233301505073304668222001799303028862267645889053997579261669699692691469855969943214204798452144887205300934979637458899774919435439334102879793865328175315120057418407631695174322094053140319057042682025855885856943330846464752215587296617826253739596161973416535220743147712913966328653289976461005817962702577015009489393751493208740487743014363257381411730166551791309946594396949705077277372974825091830284638094519017713754864691516246725250550789520769188015710758670507436122377126893872064543691170381081224336223648554752221590414634402033871244086286735867168240223635528037010869197441586501688512053591829027370712197419088708041383902384393144459614020726934564630488649281465218485226140721659020205255080294558478308956295035962201520462894493156362273464808615452021422020324558107947930699466105787214264019659107039694018847035640796283019708366225082416523742193419438125818946691459058397614174000137108064008259010239521150629021655293990833496229741502315604164970389446556977766158170892627014461370249797056807187388881840624554466576647938022711545123944643369491248897735818892072395692182600451564725811584552640776580750108260335572508296654709827465155016587510856505836615232451749424448768536846683042925977529304874720895720552729176529052750512126598168592257878938235036467752325859449182890848408921646406190500039070606268086541531245187434448591359531721973468533974157187678695682586519249273812390263108338965974132750706298576794028153701697279063183889140314724944739655489440807692766882916193654975451156084298862454857657689535854743581191808751043884690085969168982275775929275346799089496698971682531635826677553847906124010543816834489724399684113728260507902401543797560442202265386203347257817815479715638599142452183538442430444571613787041892354762126160058080104100901561853334322418743019191873772990394166067614577391763629107294398697518261258964365768581446564948768197926390050865496214528155898400312255327690980746465415848044214196138171876688189420685548341905651724152712661850752277035443129601328590553301406547024697964418378035478948760364837228897603562693825499470288067598768481006384780075020039634494146954478012955745465674349696426915358997586896108685496559387511501915375356481303086997479883506122838914382286014531960937832437404514130821447951493894827335329125887324018932914557981891173598492212202328063709107689204873308161937331045179737885413243477841204673023045400188952540311803804615170200831940496936587817471501355219212183612508161909494170034632993276192112385087590902364060918815681616995013553185665756269295920649064472813174403429257992081695405583659578817493735481373209275568707458782903387023822308867246193485611746826902211672749999215438597721199640937232196862788221103577811196455398484942396069982687996336403845453138077728425016380040308080648904818707363608523571946088977880160545068424559823200928243844318725678696348782210591249601150036882892108725563287929712830115449816845109399397572752126213617283726871923017031507359768759437532930798141373297530529894491167093901740821355416285337978580639131347263219415400990200183320484231540379358037609119673690155109953354361416899762550406053636417085893537345328717593543237083140216565952783146549289253270081872787304573155025373660650421740676380746354176105916503666280881991670015625856458663125505761670625621056679709753743642686373772856136322855392127150998342079673463591956250942261639035019767813613530380380229091543526881616944948201098749688967442688189519521802693567935478025562429464588844498847604073660630045721339943313701202057516013732306190222889065204592988707265511305884731757027472496286461096549137221233727709831801063425996912880064714528370979979651235448145754300302614511252757598616610200585502747851521382952317117217924831592728013689715877841666918183052870048526711856563190717408100639185079230378370597425240404363353154456094537780933125878879732942643723523956080982139343426032075638269466297044658724552704169095078817203485667764082509171480643244926537943764508793035186779281436033585929877765912210793598807105745758227082720123232034865101132045148622288305255635207237261607463502038041246897180831122572706596457595995806886465674194649471802923173585278023640666567230057180730018063804967261402822256119973340281794856058898093448728254532558814280697323170852418480983025977576300735261927416274489649799888490989301682250359265255815384158440889835344917192029961860565847101875283611994876154912065617843594708158544993293891809657711841609395146606485293391963618508104302500449847531450056054611499175194108947296644380453446436132393223019167779311072653982155333419918759118280083076177994773544523405305851206368617783415732743947949300123089090951039454484104915091888222889762562049444425906154993081953238282394277058202720966176144059161946609677187798049271108855442769741007963084094219015867083301980448753291798426062608710032218354086628781159814173803351897206887719997336699856611196626289898334076422257328490073398515083326496668931280798943476900448415708392731875479117115527397847129550133559409718579487158626872152674532674638631860694723781326276457161696257737068220592798261503435481754888299144684216580475581208648847706996473324200693970165257675328031242691242927810594443314536690309291019268703142937189814302243299544665037417698839050037955499128283006895861585718848304445927021406614801672699545167459597233202894983507434387407119157421921858725625711344330065167147886091565354670705488832622454809303557926115807916009951572532838652037618668433097917846645997698144231402605846286806413223859314519871129878635163570734577242271362411704194600276244242768319140677112066223554066803699384319546759620091346352703487687802464269852095077879033631330264224584386064012599345853586284613005201195066766903310410573055060216217683564993509454701149405647133986715051182714345908499663425586049536709611506295574164390370369273285653838084058308934596348002864373668940296488032426941159932423886590528041765349905274752765238771759441594628222856762865855359558516277040778687644148354714428667839384000816109016267860780940452206928612253585455811805659817542013301449429346973010529755248556645634951527147183556908432896027490230260029595038089735515109645701242378747000443849001107258987561809743058107817125324397401088987204638341967938446169456655486100214583724738236018377827063460965787271658870823186691082769373943055696551825842048665460565722677863304108420731479910362755282935813911156895256035946697865263235390226133019848123004791333921097226083810980701250737242050717126858898786654593882522575170299605591782655775376858105916319109387999099715198491733477373437824400743152996840034847798622841489891706817141916869016515575386193468895059618126317160270607926818159094245867005245258861847080768181336163637397646203429684597460144000321581123256036681338428888437061173370058919045345144325135858276851582975571626785907239958132488040445426776449222208914975053200861406397097999787422983650253184725673267156540932632337562975363685694738213563364496173205506799655314031400319071362437782323227171809474330501525029986856795288797174101319676223115869058156033895357543729880143909595193223886979340837076674388004811182639977325669673478140365081039684192706146945380068493525210200515851299165461659813250808486673486345381669497523194124805316155500097308942066514676824647115795531313640153548764406235997058219975249410195043155933496832058866715344922357361470768289099499552304009184078508135173063664989447004898831971907753650813314116039133875210843447644358419658179186824764183512532006983281026659826886311506592102896443201121489444247604776538700092957311428222997131488518246448620245627015601197166074125332059782455532062018613621794265660135846239557124878751397029080016990740542983494094224991544784938285319953317642610653704534269003283756441331466087495495341478136400649040916103293183347091440696401649771983070877449111178415861893343194489731924263828760728023260489912313617115044182300479911156928589180449351247282757551582138789374328231995780637127756277587552548504908632142768247491370065124780196721393505669104852453565139963731856081734677570351938735632320793299488687738510817275441266584155775340510952708831084065316271654150401325013360499543898867461182062873338253154815964326605745467960800691087532663616610320633921799577697693272961320124116638609913871776338831018146693835639739367750889574378183733638006694784220749713240282755308311077169923880000152322640653361274449434261178307652355073471368678879941611066120550104035199593938037719326240336165808916643658200837615458916211058824425627637569802638813379849302411789070006033558970625569020667921922832129770092494788929007832211985146429255503471527230119079737546918495378138321464140595050683014447059063906464637489667298620760428695205910107607695335242687389555815877750321884810195801185859680514141434438607785908303003264719211841819020927163333002312610992782576363990277634058876336071099917027254154431094228372135799010977827167869087211295059160341196213328644555125424391494100752560046330917938724559731575922823561190931636512371624761001996616857690059694624229124376796482338465435790008996154181608101568041631148865728040906192803557638311792187106446007561528697330551288302533130264379123541181096327918800068846202703362379833644109710498402268709760394834482101396255728216054311953739955210068624288183143078369517368049553376030310133378474527290016276365662633772331822069293471660454012219498584105699762212856943453611954608557235534852577525894644663865823790376586764644408887398349848634064651684731557653691762753969371835048495763426390733143710147782944012649761719811481958870277166108401978984232157740666577579346556722301876161306289247714021737653008443899960877852495642736169107511782184988424341130631619872801049855224314852911318476230861682547358981337693823159481676417299527128523224862578157668154253531603702087760252168219830710224895688733531782470529330583006223585230116628311769884848110328012031903915983990004950226138588542298255847590050663801129912344523099454996715184876962199512078804558827437142144332946726418342362630485778649912586034834175796361025121937451520351488653006562856661992642498259798121773601642771445354838972322359387521851497435828004084108262642357232067839547339148583522131582416957798181381854988090875185429447460518386778991161934498001393764576010388961590233577948967747360072962451156379123323778485915915997594112912068673951477520929649547808322709580041084911068143686738141467501218390942750026822595427486963941501275666022627644031604998392211146352450588244791233486711873321872079268572569986069232841953596558756770765225706586175786535633579012157086334314540922056711774051287086907378011401680268736036523258811337303782250081879891426961695148685340736354732496923643165685087510167507954919552272634104900340229370103922534992944619276585523855049120639866464896452443471208129517420523887292944167062175090688938163729121814707380109597390866307488421626888306032750730155455014330004706761686381001258524749134551715608199440789547612685187537926200817699887221694820972071296802751831405407527320603267176979555906075999129860838269869061064349320329147901280675352482671811096013652988664719034069519056214777564044763885187724653357733595977898841477431223401477520778056089288040841598246099852187713109801089102675348943036099343587092213092127820612278693369311734155875405140063196809023282599668328096543128980614376077511481384110452745458134230119818719236502581142525143534520315759509398596182794679996717011232609870414094728827761164254139675246535557001529330300608649434499839357971609594155115355112878929914328006972694401191589154977596867208169974647982642058340726720333716790747676329950811538117482377518294186985925169333494497509055400252918016226059744776190220269112749685122642559221130800387773171679178085378941078055542093250795582239201970252796593387028763158403765436784751426924203794395625308706642564799233646045730240800410466012184152399754395252577704298786907997195855419749040695791414448256661028527477448005853697136509947271038322547158964078691781337377155350687074437446797427008417254190997104224452027686195006294713143557433502023516356076097369726893999485647621456353862187917644582443934681010749684522711118478896720085890102454741203529264110651704889439259862980139931095700930685641677141621332388129688640480655700851102356449681495399084220273821934710079358693216203934873011061106838559338677498592698823457506645405712520571140111499278663397887381962677373015499162593638777745958763933763560964732195642905478393271193664137372374905021514496733423254145224061744730925350498665431503842847859135424103423329829192738317083021833428738831926977009114340682515030838165152874037291371706449706974244653680103488543464242568464824174907467831489636759603124586624554061013515468063145151636501931888007746326695868851901670073621155243308495515725387973006615976443063775385752314060120305372540013734022723576771963868785643968641105922859905038844245522847611341164319769326908129310663035524975717861541868720545837024615965124512427886555351923854544621428644162180634611596979958650459921537410239887908953938760610097925473992334945326897943990791452356018921926418940072513242766758697807592885216980206049167348001535312313461689585137529611580103024607424207168547764176260943095011255626165387272468491140016121335778449505809039286769786970034484296085516866708317255753069928094503998201526200485622666598333829337455112468671096127576294946061639314706757750515127781419698843211535077859155766177804357183688132795351097152612995117112717747957119177708787994137390634985095324233599506475404725642106245801127123970454878310516167779535598012231733585970072909924671149734338701731396670180642040714744466458545662611479019344439063079256881094458261428001060165179590004462862370053349947820393402196905993724200222735057806725266886024368520901070699329158296747724927146314425478930037736220844639816588821590320733960603885307812524078922692897987692761289571273213223020122707285664402159819370904625910616795478384933626305506712526713327609940592802901229456044908724754949606219724279811939672787330765300502755872726748576130424129994908139124014993997568926298971274876735886394000506731297540154590047869269215631294596825110822117820460530632280397359425291159949914298046513840812516823432597918809679802101844679011171743367588041218033417977433825249066087971688734351090743825065096364416191310211626836127007049971959470196405347736394919115637295823940164647536663660834910617647355693773993671869458046958252061253869669112962584734017862242142692159515323168393504640420822438910738301347677694039449088958555617286122831350440419160139525370869469961080893306538898303519646662022075337246123407002878403531814258633196057068456831752766159739253847206898221236388445176235936428035423860570969701967273048536194136881922335880421323508075289676812993488645823070148832458503132471299508796711141388471688377728953759912067300579307871379856346616079247687553725758687527855480335062922006826504038232181259328311763268061248837517125886449332766661557286175024005120832245121295344118281519134707145698064408903460925441049905024738775644333089903405806956401615407887201561183201876835032162121038477357377337484275207875219563440039453546511916822297914629353684819110021820908356430467993184236704721839609577431173279467794243190974375829896187520638975573537172857382334845387752872458034000115594681142996353837252698858655711206767654015848075966954872371917076380220019084164581417392726119858363388135727152605876456189942835024859026452395011466044024093890037435839219047642555367110895004045868305548848744196592338780033694183466755623439391935191194558490840077089595797004249428968330658453298536600318846912353828196735030273708556461740235161785002082876860798984976525989628911620247186677857625713027023658353399546556583051617163493934331184671339203358260963703346653640650329091029240832311009315388832909639080341720745248674890722434566476781485969276581139944331105299854985914399435193716657421115438059388916142327448852423474245905674774862227020856695717976786504449181817993992895637539474621034695006701728655368890705693649579227819758628255244173964448043006590873080719428705954634662564554268040268360734109935726164958483911595419271895829070057798048449633132856919380202640388623655858301684495461018194456242751588447782598815514559356083461465425326590353651922109518246450271052991831344029852187682289109517313595648952744217790430813384409588290219710255330854653634952471079099387332287886978061371390627223650318409616730976774465386834783712225480310875493774334630169774014413545132352798016190367872549890883188921794683054709319436814208589275910250527179169549196709754162211834718283849402124110549384040211154536723391557954329008569981277056270621944640945067295203115999088164232176526215047742931582787124928626644925375120818716917634271493672302089278482085029988301697748981564712334124696354113635249688464228879742221036962977923187399216565420405736431840114008310025228226583263235539421422783995328279736754300005854308006241265109712738238441253917569938594325719790196428848012348623365204332699337112346466926895055258451145730616755032104987163380689510714862475343401094764848934165052608858808093034199719861696664720032248742711850917745013816085607680793027805987606464031971931068535100433277275794797251854266307187114365407597110933996431887439428634070853452476283270684491125670795822033101351227440398564544277480879438857155589130464685863360583628777368382405624990198450233338594574796250084039108242050204351982119635734084397349966888023469810621536957051939997185616482995643503401735488610776560356719354046898584265835157022082921091104797346715728743659267145077015237639715145369838669251267432729665228566566243800042993334010403274516546576318182248811286655907330312748996409617565158948258762336257179464046759252099331472425951380997358157335335998704395917030676854292692695007057102362672485562493865526550382183571305801767778655981884115014482272256701532869404126598991497338088739663148426661165400891905145110864007456635208902235375668716745994060481593649192870305591093688879400758462181924933991433105685320590951322998062231439833759674152234791751032858899965978383674138775145360022275023729692396127441706057054302710794080081485924632923424024056427630339020228842256453888897632506906307024213078219236064202680471130337392301847466976757441730691337347484381889639768287287446395256211183199296654137759006148028686737488827929665852146979204715806148912066044964176850782661270774123287167266335011034674167137711833203000664172045143371164013197974389410193114095087676293223700604284206887160677463547331838556180743610240533571315614132158840103299277121846648251790935410892636782459961360327795958063058983602033481859412009469787095937911575906978474897897339595179722086220644303660334238364458073599680624621205807759058769804682664577940122550279525962536315885291655732113081841894026428577522753904809832346813794974809114853545298675839518587376094705705220360035322038335031056054780851655931204492083022268604208515581006588440928111300059966551003346127058306892159509023944788761738116890121333594823838735218891174100412619133447418299767982469750782610801085437993188790630072209193984400501896098137054567502942330783130728325228011206384430193237240239163793055748010406803534859475057306506004159263668035058887861121089824422185604182674857407780134817833848832032332937750055632140636624305987264627820824149731163808524931454589834748178958316540575088580828123010073449899538953496176670215090859517508526783557640423927899310442947430399154821457426776834609237715794486935792667870479937162068593805670671883324239854277472031004238253335380169758585230071904989052039099080008676218198477658757912211261262206123628317739897008590157691399927930406889804162638777620105608689417240379096851703185939566410931878403705822183931345171616734736365953909765993028799909452201058803286116876390357255685644322054301489875806352543270401963681672751112395673490093382056139611414457681841224835736217624085194427403225206383401970277309223078622087259724911751563131642987426464705118107452559406274474246340620071722275647791635895402669140883258977180945180231325463983465733868263114079062435667218024455939029567485907753351995673360183039854887740498860117937918460495511889354901199178086576200766661466795497687899465573691333810530685100601360023362452121016835459284298763257955542913743127241681272470967003258695375984379760227556103031096382290197885546603017836980767547818274696662349696358039670039044535215287866058631591313448771349517609742302350807573757388914616058587569990280292321005643342170275963515981728109754957102079732130584117215102225871619654111279846975989586315188076334571546599334576877885132291236871065109869247059355082795494542518805760934726845310980989487218537482202720271117390770733055555041423859722808488254923300104975741883152777554955099875403599447990210383511234578594090257223300131700543955029157531544694587227244162624867721831493946330435786941834199265126876845726266783145129986958703084491393516280494639876995244311696678639437399665833159794640136579529084940359345392032714166757020636454187364571754113282505453778151313289871150789442350411933392189244748558897729850624986595793721000185839638090408260409938850370853454290457104320461584047693027747692779477259336645976739869440811228303842819901124632744731361487990429193761985569223172815066045473881840825760158665032580613906837552190617065411548086326362180594208091960618601442816634929313412626149263332249837838651947856549299785246263626031597905225216520066897776802278493635268131664413337745952055075456964014990181985938589104375771858063644402580208619330315372941717921724685856225483036902137699682493515285701117406839141921874462306030036051087944886332983235284076366383856892393968526037448245846520087851131486527244649875658139257258018816315979205077293407254067063016112937055001722253146721155558538614928511709098840584199237209814815821393685943345099779758992599705334436473169790671269822094433844790384168055044485033061016282582294249086372857743832867501210529704694234748278550881580499749758492213536580195614228165246476232221246753798097382990112173948973108949408211149582705370018657601932260934262443109212065292521714861713574507877839332987295889611798893000783048674873880086065439379310209212210819969050757676954335214371436325095880771915945292281740353665471118447250045619771476095779854269491123715705165434221641572813271631096361288889226192449744403782249045526132535953438075024270411267066401749603027672898092835047579609654232765238713743812562069214458841652393266269174616993253337046973285187169066684143489111641173802531133556842159204440954670185974856384418136228643057732998550367892860379480823390624253549508062529308750504798874913660656391040563694716187691023641223833871755570681606398229277286641886733721061085572768696077018692140928709061362499379992617981700340421016554293850416462033264596117016235191751528901546756168382365292187732394208677373270237624815282755271037441900190495116970914405056045570915502864536302136504501749224988191244887022935114092378864215614081693507321919077166374888717961203493387507166221832641203757845261636086411997085896829469512104927750502406238323441281123657802706370929484184596212138739461974921849032148717641326374181695820147845295394166785648550507536504344855134565682111721602275305517827631431819258889669650286050274776396985397732626150126459254297332987569656088443168255862983122860522620623669887147784708138180657220533447063206531717883148390629583293124247147856596018880947264774648649538041161408891151805159504820568814136088649866729934462047024614406482415212080524215685090772271126482140394960052317662887237238460899918882611151354009167030449369070526924858592025534951351133592059791386389581434294900404179748980639591213064420813302379567194996194922853868130435170891468799402789620522664043873263069276704087379388963463381897778929965023953414527149192741201204205174028139163752405614124285264723996458489609319102951121131748488411839319395927831588708802456398268935055722540470181042566802424383050251749349370619949948594042498231029804253643034360014836374111583638521430310194496279428537813497049245010856929350283282622101362045772868944092753152042627866130887600702725697777907842877663426688081547991281817629567431001729616233379796465737410117912224209515378349779255096630567293333526232784706243425753759443191726790538151550509467173032768717115652528490908618551686384537817926247645369563737948902664712211121396618595545270668162641514310722006222290039790084860969301223255549464935482118662122365583249510553132385675450257557135107979794609985171791522334223840973688078789119125270548447234483845767938449027688923590621365012808052415164361038496194177895998724967158354669290339228368519547813737788555825941481316645032233963549232358046489079412971751036206713586217630481652147636439412232040831826432923336160536052400209020712200890082627289869516432771183584903117923622612265506256082046075923672336908727645469395352077691223188192923306255461554090646030680974880835185988534948976356867435257682036326338465290015862465054399241475605124345270069903922308404099245933024070779944359297948041555517750602156126158502903492387318901846828805284899884334594797883459613333231322034216597404537991225805941495592940593223310150057467629052446820616691574672030405380752357592224798949792405742759130612967381165872544563055318980208699288599000561614961465566725285760309938653748924361948056601701068878285869081177512359703463874975454139931514725137906149889045596585840930084600698366158263004542275531645458757683767344630309957239294687042777658596494952874650110455353660690996191267023094113531802822996444526641699621844957157778302261865738816538856028164927897086836568004148812284166873106311398958417739544854294307991009330233623206177520081605893825559855101249130957040723384494661221159268838026367393416850519266072041597813269257405953547127964795144160960842118073328519862862712901400799250427371006762911258249438291432880830001393838668101316552154855944198737906273662047333067094182950625659169052825279107816229486072927444610033053756033688618479896175195246167360169732470705914925335303148194796627328199162156392818302665700651466297282181658109947172693502976860548707323684541110870829546585975288120645731128496437043130910556511426372047117871624723522158620492604720771626040776095065213356641326845380470121250612825932581448077497160414430610822072139289984571943959921435218801797127979092354878778433111464462412437912073842219554298053453215126744097069524154349275150688359103583783404673977710256064762855433906689034967388091829637334227858555425959444779038099036983207168129109733469107473356860743079272733581992870578599437857374558003684363355059674004199116250472299325577435361930389949812398333594349609023284168245230039102261049435365992777028160657417941554023422722795665009594185791047110673981519028139516149111529232883221760698372065866108533361943124570197094839550734739316133753994125512132880717749575723883498411527512997728555515139157646681586017209246324401733934980131263465948630680391905873390139041474845140520827500624321641404494040918926635022209223340555219842602360363154601253217248975955847779859817399132953834948578435896557471943477146065363686494419141460787211549885481869852855591126214068803954510719381480970833107485563917032356625813589947759211255522887257397038568817998348378494472604154554894061775581329032383449094625635085178398579036635196946950832023563638179384611151068005709601679476475772559720633193441923271659033937739917780590792447130823641111708482926205158445065583616335221707953456834570617953679810662433028010565262377150459907709453895314154805893550631824971305142525829467018184416568299681886451613555654891823200097722397856963091901411246164626704777244872224553048027814181876050654228649232843089167178130473284981205898743911500712195107413209757894615361880083401616330882293170099400371368686017563551258567920103122749818834674212322758145900321097464275678181781949204268895926134780421998376480351011318332112538854126214665933038871039855280545217734074222271055471856898726450884047730126983239933922614453709502523861523859835264520109713428764039950043864935753234487843481318131830777073470652248911827290883510310789429619586037832455075541762996963981028785038060672272363275860916719211745947248030435336926217251329865423586659703690874577269556279891521741270716027458545961136453711048810976039762082715385663955694852386788824621156362225448066251493210291275268564421417652152080816769094044206355160813994113718399170352029169592447709725507259986827012039082998028229451759997582574309306457746434081753137555502813165805665187934734686951852898474190260974868513891531529130845802597233699897036420687796261694667054059357144191456951466693105939998013004970079067106973063026277596382701038760784991301079696754700604772389014290663885043748963251569698189383430064692536353410926486179414010225238615298846207147393890308799897053456668694017258263987431603450544439530973681605744129602214816924076231554986356027635590363979488761827296561013554331941958681107148489841211978191646815313661225869041471163858803014502350061861313885402739752481795312734688114313574796084367212577290379822512160481092154949734090500167599417230104865093442861094825646888434485284562072693035281193013115853949823537254259387564053957482885945561057629201596612972429381658854272386358055787158025255565936270046133530626491237074675453466003939664405103877400944693851161105423991643120730587162486760301107905151540507704407246718836455128125697015951120389543552773657735176572680997190648405632939613199146052563483802891923442401253595412753665012433484770287917669501018584002214512692763703238658081943438657781378447457836355465105711114740278237820544956607882773122687343986364971253152364726138245138827629134424616271468870568229774179109806591721316677283485762052705955465989409990120135347374177358024919854441790797438728288605467216392941375022430650808301029441354192371843040964152913736464393954325792188030404933577302102820138616762668599872164757743223465733038338889662362876298412819526143285485079879195277972340778756218468019791955980416158970584064845170127941653017345442377096961548260271326845947473318021892154904445216384891340517097687049592029493204401419519075326918750784719440041838370355923818150024359525852832648555996982330887285056278769032156212374695983298551047982716154547228301720008811925989225261637963957166678346699044909567521818329574176585291068961862744064886519350852460218994893420460506915757610051365150450156305235759807691197432208073695669519828035343557137308334929737533256433629525639922278780200784402693094626499446500022845009411538465342085290461879646612178667757045211700597549368916375917230280544117502862199194872506135138007942865846030611790593318146333515199295950964911933275681951525675619550875533040199354980134627185010352624443480018011209553089466614677690562564698928819260812171629841126349214052606225304165949975371948745978677110834780429551895351892824934716794342592475823124395921685282181178252979829814403390494782787717830263937614391071168931659946851186430891421106860846909545906785708511000470458249535826084947172681507554057275249513821108161458083979105319174097035086574909032558745021079265725870656549340255442406519104976109794543233345191659333938323212360602851063914631279464193198580606343067894479035517566159340294086591466187232819004496832371918451580177639406609612514410069398435799889575329649597380120680416461698787326362051779557312784913971070656544255002434762856338027821103271753873012097416460994770653105108229888238247718994055520338107693655331049499568541318378904360881313116887313078516765237586236852778673009746641752770113879429329228960921086163881089604682238578848871958274984265785596428320044080642509754885088655644298428887087327939152863193539292216942817727876507250287180958377422858573097627213918250409491785815239606123425362284278155074798024114988265115202119362642974261445911992694978030484369665494978401872887272266047989868561469565472282842246847335737190710969888053103348666636457388437814532242514379532170110518357980170435395603269544972625796486439666208143860778397442088930139392389110957263205536520229799499454100676021595617955128584559938583425112486017635692521490079535509560943592170372431943787043943258218563490647169823832345152899691407920191755150289260447256684069263641002447766547059391904531230448522102785299672091333958354633733977987675466887356415112975526701082093031116245318637744067212237842038731358591166069635194264730627397701080790004840438735863558697602368619751056222643229386473625567656927192402084035365695139031202841255547182778512548924273592721254477104798960241953726017072239049337582881797932016646221656505100324462628880428528282290247514150443332541867602691708602475981513416862147698382191201968450522221341243970069600299208005341222644634715285537270521505652064688606069545946836901437239836318888907175730131253073258143197469842421836899966877947977141870412352683186026622504098242859405045530164286882607758550118527899980811551729068681320077716292225374042587247971248685108546070457897276600210166802509532281924671974380664234058898433103492195611297041020794572030461102159657579370109071072509489207857641148248697201970947130303629695873293526977281657436429695103288795523144800867678066901077292670117731423304692000555477163536778552850109822601757090107724288431260573721709774479174288060253319117928920286327787783441387924247270282195773652395554516161389787857542563298245637270652913809550720455794101145372023008959900363356864455284910443537274284240051190893676473939596747546168775811512713796758844073048279831791654374664403733044119859662471610171560256013677859396118201706730173257780931793442321624710412787002465872347360422029723922889407095200190027619195412035403092480146847215333261176820909937191383569449061110314238567900402839247057454070563963135743092242015280808055330972289601128754723475208683093474991509191695717953251878532800197709203403624943786600640798969006566639401193400277408057169383198683960683529610231838052799661206379587639400543795202859259229580744737945181183617460864216252959482781675318176293218213572389205051099473177359427990668531734480857464810563949701266629858001695158473353445161049154791562649565479163901463799594725010917554654513099755896867050128407414987483921797470680080404361029124044207558457496803427447675731957195707240081354903379258784727319770553089848236886784888232517867153849099848813203146876797538476531913892169909844170237676555757536425209805535722732278304710977228239171784002638409519533222443437562155469522551705581995095552019523026869727903638780419320394789414247812544427676338110620907355776946682651215889211504021542109460181927045107986951489093877314037374373200545611796916746430874714339627092958752004642705032566767414041509335174803801824429297532566119796615738732443519243920880956009860429214253858353329538624727734269025517697068041318427164674603236420671481788880202017010688479984913447989161115324850108712354415191306269689146372352723612163135585071333830134081196447438852387516729495240765492706169632034424620643938742281922918798825416856706230719982598904864269672744022003972638701829985044285871259927571578155645940570057141431764276494810740323230335435911140407804683344961693289190177360543773771239720817175963105785803579574431153278283134102018348951234584396388026320996503304277463634268883042669216006291229852632957835038214353164631921816347584776318566594821601820862363960851832552240700254858315568842794267228562177792027967359596049726442107807231026564206942978686958966083006042875004919269043607089688658061385671876811911684279501712935974545050166704086040803670433581896448837377652578867297561386456445957230900390124871853990016600524798377104702690839063986480466628990161099879208035302643521674299072016621033047055682609729116136981452525823532083756768861519138852249527344438135163524043816967155694344030758182020726802857872140703007676932681895968401799508460715936274461170697885154892318297130201697403989912564421748864840640669952687046767203232573457543090475103684935706663677203523300459576934604087102721892598290659903184441087915123039382959467599626196153984734075735714772717938520192205359846339891069752616256466818866462323673408656601827524911391136979632654124393279610494473541488108594169966613919960573971038328237751995984705180595133549889130795155734643847229540244890027283501657015161667673247852790379484658502008495273959100048642429339716995614387589679896773614368048632212784405078514769697874040362326764649482796378370943775307853146791150758421391428018258021097994159957780148946796540603344114298706955417198837956204326070378919909101247319357046226243001270651689041705403465075739935058906519426115521576911164367308075556357510168339349949068367218965038687337176542546866718052316018679589200870908687469845885327068435361834304936633496070345958790017563323130707878627140177473580311372385875261061907784815600687752170488060741297683076226401124708163554797090449731400670571441563468898750915575643311560931807535602835661781834731701659908881743476545989185427259575891298156023038449871453776728403906355849307640805229893760109403993937236764232269403575289117864730870271194016815230546968612613157900164091922333579344067703340224190879254267257092133128184613133698242686976995625686469536033475529285688040730178431562299343986274384082189149442743393294036713555988205675181589125446740087462896621939538602508897838816118971938846610335760126232816018191600014083646378255973993659347158191230397699618540850570501426875494993644224291237934155835557070924164331277119233270480752648854554169885968340759798810237248670159840239998358007179095520463961725928978697340842230775442268111916673613080406588652875128132341457359605164199606976606400713141306799961907130095494331779308170125753856968569036494201502245538477641977109833769886995484896083569442195129350933840314039026968028885783935347769803617690055681655128122300645654700440017109380216946817983050817129225643541824532321664953905705740050189778104924870037349647718641288029965598641449483825177256096267140696278361996019559002310168748038085106633487227638440650169830574697673223486116557187416309497447855850534671853854979797719933601438810085188066553235683801178462474309847371011506282332109559079118916584540969338599453434815062470707733742976168092041670886709373419097966683867569679422423359935287673920398906977251952656754072118431994711370080988880135855815766811386176978053841534933630288105066806570291356913814187695765303731012460806820733431332368108310392733359770435765757672805596042217730252193691657902823619909534500297920290944528309795611193313289177707798375461745277033184241928424720377875802925073684945532918427926833981758241892863654287789566476793498467593738174022129728497121064644898768650336207218911725726455811456124675750598648942719577475424247296685802750142279877303640719568031081031529750144442795532598413691180937250210561431753105520450664859209934032771539894127549091211221486562334846136350122849151750481769370263195114008744478095663909915062711588146449301313302190658484194657200739156804270371885999060638293901140827919964065594761430947033205825193054766985831192536038719769574799013735218783276940209268906362640728447666030990660872686520913907022654584668972690395467757486585578265427853668158932930757490282658995165427645303856424059526173823865779555069146157915478068388165236121814927826561760270428916524905505790923002508510863080985654212282035829432517979923542240048629558941133684869269051738166994532588244428524743439026095096469976795541865755454066254497596613801853102183327650946440458833727439325442711323478092476965766108175505274222760031118207544569118412411232675791754566491394048093357069981777414205030704436644474066180303787981793845494782549538068078099106295198043958271824612393412831666454738666676577166325476593196592291160134834788209898463764063523547722509001224682034100578977210730228011775790462802658792570146214929576128095234320137124264089509107265253050259841802217765283239519364834025885111335868485213435667390947061377922758388447360796802483764183539075329277804170739697470772543506576168530000287626919791909487331303333152766459618061364411200178113209405830037502836022841008859537828496076632367999065662647720702719099084350403926655613587473595948591537300354499891115511629266999841409451498806700518806347753390256759911759512046036715204229597652960202044416523076449164650404995896810266080428180761564759474794353650542963051928414354006744406298179279701464105483472751787903968626741298975203129891676578935626453506650405362585883198753462468035001465171856444223633686846854108999376031456590615031277349380016399574433855739456748332237599606657155348313474561390737548962095579409977157001881352907655840515450911101639577659702497463330516785435033017467319150800799974061462455169136057778063095467714783060574367621941783346116937864190662296569425757741890062164510549325119667596010447852585308526764921414975457856560802865980984045282703530776536329647656207100394748895267791370946900631531262827670202960503197109517200923560685142579604970478964285646353264383010607376233053339552290206681282894337959993373308212116876438604297206454249437616934528515005284726139851696599401119524354704336492358923896797404674662894696048786227611082364350151405536852531093401407011268349286805972565902084489268242259948184545602335532732165118460912472427239650049317607479371911927646976845442597563188800112429134593286873874680672241983817478452669518439420760788490893464080804085284769454340782079406161785295641986153615425005248849201355073655740366074963668037747287481810282255238167325938766768049102096272312844366245471114012747201649797983845277289523684259174674770419949818031687826407576069967387370774742265106060228254789440892832785112010101635013007025289658601853044654005581540014526558003888239209262772645355570701523910474951035115853402507952255577977469553706794006239184474387799977522395685609536823220253840152988072591930870195396662882407383467729356015315269557924047204798313532307821176807387506896576968845872024026397642402226710033235899009094979695650612635183192682063359599436364277110263239906622301366478554842915179121679372560046757610671149805323072491681702259606525480118523768091000389519640348985293513523444642216023903892197783249750842452597202241010756395398046725705279701482208512684822760317366009974353751948604472824357354642515635881932371562001243628045431748560427929538266994097825626485883901668618062728648368842696110009639479753152384965266110957229641202415578087704928889594741773919037220452882383766379223560891785728092554753177450424686309954987172455681887634601113440490012056587673139100996511665507391786329351362521779942842322861106256305194994421619844720295681670535767154218214291789562867477777461407946912252074858007545868802614817835387066877359846255232722083794270143069767243127528958857699113783485324199830012160577785906918552338066308041225380525969494053763814548326394479959347259934346296997547330107356504969245938449436515257346388130142675383325903488969676400117162995467750957556775851193636054548186012525129981996631746560196061325630040271716756843807700011527349179069586705820960210577792145546640574242624296610614780712322001720987584038819246029464069936017308146654736425732935364594128600118378266623992193325990631651475471831717253867039391321641789451003293004361358965141888871891075408626094268165927386116422448223164180009130985015765542978888144994372431964618658236654080407435512729380510427182945156104606805129430862276826616444657767455524620377238778810722553081822718929682278782936240139734514512442692899851195228672303599329654191975807901393462178472417552156457925775319171060378804567946849890437795486863042052658402629138811792510620449824268833226394729226881136958578043145065145110653554950222078608183508219807848799463849890386817895745573173174900108896002896903805725421388336434709527413809490886403713690389124737756308546899098209504850546201503314940019930658794932169432438375149876931464498944695500378248363976037577571244736767004771851789662153014555150872645581656464809691832336587430534335913953887520888611574917966320804631948718820910266799540308986509612839133002207171548838617274137311761510086016183227888555952324561443442386225680938429759595878090177536865315712821228048460240721135636066309984434134871391672200832641032770908025437999314972980087833116855032780916724386084037699742041365413923794284862051594380061684380246908116249821160574634688239398061843492639348530025044517868783386515430302230542515313822081390967518589517493708866731367061768825893291750999450010756267111613235369491078008417412596869655559626211099923616763318289210947882904853679601412886283495830587148264710117377984805638010626345770483334603718649348527041263649595895779162333574482347749358652502890184515447229563540067792423430388404855651282439239320901953072941108153604790153259364939700319494618052849425324853950552596818977673865336317257213326908747511070157611546908096772456353507730232077830731422888747910968719632986599371846657860893609052860581252425206443668531758387013291031843159412822212111948120531100591102098589011820368409705112650067074589698935017649603265312332108532679210446428319975396414911064282787123579814718981530073979191287828798288345175962299027388417770659681631700381371902284390277455673991261191541204196709663375008264847030972720424656873706714405247671991223900115768795846714980095510467888811653070113822854892575046527618479764753145351951228109092583389314675552667873089096864633875486751728968982838142572604707045996315814675566235285064068583438793192752157809288609218543544189830810593475786545661569565049706672850959601139342890962395321547422887546545620709341306491837833473047322854662347077844523444720706787254253935868076874226202519250449513407042405034083507538700455288828203476148254099241572564423537333651220857141868572454618466521188974774577664687428155192195997400845827904717907927419892721626820218130136487030688053065013857142512093806861083444025498304170946337145825403236635691157173398252901524065599599476856345225962181977683943208242234162055144480614796312564773027878163145699780124072789838903853584892115379371563905758071653813262542551483478027875468696134399521880403885034931952097449557047557523788942229428939909949008435387059727311216013193729732671033448940690719266005852266745180596810586209820478816463539728089312796891951699969363911062413861271864736344916940002321040390903449372045679265032375112476404639295226589366276730956858941563931410932838777509618712677098469137584248440603759292410400533185052249373326587277464402983909226378669035919103454946952531448269749988115383259806895524900572225124690646169734151489790233061625215583748752191085852513814005328183359434430335959831367743839160657959579543708488504276803478807254184238036801042318242383456914504870275093953258848304943578324806962654017607794759311105824430504208531809897845610224014347832023026308439500330645968886313782896230019243365400944650971029676455506169219640077065033454604126328952461132722658502522028350413230988222864090529852632763723618942041850234559989993396831211983791943487114521624769303527582005360219797383984473368078662263424787337881821670770420813670646167087471286985808410851206306742645051821832586577849970157153445614384880476474906054260208366499196463046218104592133530260714791978347459772983822846819326274535691389453599256871354534302714665378520887456566227094591385011677438833741029914639317554623990174636924354681742795227270023127885853116457467083340409630083504290402929045225082129527424674834661291360721679237657665938731933299442952278844392941312489834221365149801632851139894983978760749035142596415823684870005025140696051138556943169248978244560112477243841315190573452244372206067719367089900114787612383605488506168718181043133943288683828292607321669720871259780134162850380693358890277307942119976861758843848294869623345987006836294113435138313021847367364131273453652962496517923658499590046538722459759588084693654193068887593814733419578966857306554337341715478154659327755318389009169761658028120292640582174014432454114107422181090338559953435766363853961482338854905387381794183381176518668716962125246400019679957209798195347185700445605805594816732788222980752463174880031569890693132332491107392110253945804891677030828999850051900774262685041797818651343473509237166400660911108357639989697218957222172756716276334688674563766924811849649088819404427082035402615432374165332174332046539491123814729867268514168491638177281906768093029868912286612291541719998522502242039452794761236266190686960546065765551905921248670725709550761241356434256272827696103870871866175118993996805610799648531822806538468458742008673964995812405325978367417600491856570716477256559081931841336546958391801100001727157288165846478112589567153521136832229521078504373248794661120463351529690248238164132377667343353711810582156663829541488586198272404017555036189361887647942374718739808549086218199383576050415864457842107769740888346355661938023076861947216071664811941435677411097903199897365651864516809946324652526582125623884036686749549982939227348973627565936262512306250704594067731301423665977092126481438898116021617146511768956989325931226577781876214306187096826744060073537339195083973349321169510393595543572931216785221087749907645133904481588301912913607815021486889570602119508868953911315364583944821352508377054631537783812713098458755860228208090018463073030944454499844529777163411511362524217191924919461931832454840791838411353178739662527513614887884573164266027645371113656127035175284345716483724986513244574784948094976671323389410195016580829074540995056336310750415738174849129305318383275339846178721724925500000301055566652823187544165345177655311400740045104170468561121066337124349898848975488220205503146018954125880553256825799916801230219672238151663429806192879796760183026620747696130215218134907226125955146308845009520222877302298332913211262333752257241899231319896959045511579882330863028720749045043516001772509728366736853421729613950130768366488374465040312823862530139688787106347645718659493674743904153243842633578533366035869232424750319737544640885545443030865432459200318131911774204475871361013489486402265619844537262807454589460607107576183013347070479171530857435075487789451550135959428088718294984716403174026349113182359130205230393975176784459143762830171864835291880647340805437717469139111130159676167595216806860899943632398748618942069915248197419503205824270870197101353966809742712874239182282331762558479216625492744048820331422407301315428175475022878375806158012939280839195175815988978326655701940764592514442974888584398457941560020061686633405819878450252444572706163100558628048518531610701967472528469363409729881395622745119242171017926727026540630217211468362017658752498981207854216073245628589004647301425633891954065659953141611958688456080901539609614845597446648008543066053115544822711032998536908512491248438340715731837184010959970617978499488930845638874356734430451101989119873260347172766949921316202715764771172860623463515788708414086784887338358998855401110299475217547202222580626386169855575749401506392898058390374557030336315127021412697530201427678156189849638925259977095241959106388245150816256281561877716156063051282566259791481984271949626699448320422197467766782084360605050141105049422376741636444111405492002643703079677480300439935250448109507005765222942906479557676469088564266995132664482960475985020595239472463227590627488859031622040935187422016031229826602434762201651694308596155772996757273415096588358280103529733029261123578958901667983445605878846782409668277075140874304501604742851422289315581243573779899257769094842549417837152986569069728600279811805196882079910240443424396504053611581852765144522112420950874870890557025057056396896007479329265685674664605792420311973905085309605528407316806408364656790317824898345742038826507971533004390472923370072391722093279802828793774790583453965725050951623843393993258022173872149549989974794881375973683753393694181178517129501851363378111071873181863643219157881896752375882337694672398088032812281583909433506296088044309772029134534071248120729238542208353081545561214587348628989730149925082808036805016407454210528595299256173167393402523553006339412138063232816523828603521532855433131305870950412754960164060353157107036032679726958546566488081993434087430629872225878158128266586093477105830398796547420821243690146828148227559635294388831099022000164809575849415461245602610983591966890167193807353079326253851078912355198667270862370753672523601907013512673228025044257827543570010686195761498045477273484195809198354160644809466407916524706599107087653451487486737336815456597999843574715084173150878850337809934986556451321824746545351628251587239725975920125613236632183018437810585026655447914250722104862753211530210583747978877159381346202714851472058046232870403971108471923144561867491671386520206774928502132838986064316555378421314204512471598303072505862161984471531901463541141570363854169010361935872433085208318976946068742730560219958537551632769365017280904894199368607029888421099427913521148451994068940017093626194166895268717060437931972510361736965186475880803282606194239700400583434610305104417187233318689773576017008348370725858004297094962853764802632401690010127035243518525459685897443351004796167187824010250867888215671836727872914408791900557135751157724189028202480629015560573310377427707052931321718290503549246334541782072483496526056291171668982642622136142901687697284905014569651659267485066402404463971350013954258143612797831077399305582171496862294064399780937993356833726352347251789310330433566060705296760747504951328550671410023196752380138741136894729250610249549171985414711736223167253096455606439009896729755001140181827874753541080168115711651532606060402573113697381973145969252703514704162113298046783553116927024992175355651862953483170551101160645942824033224826308859323589711144117770633914027471490548237517177974049241358670955314738964267820453044821393752362506268227563884226938346493141822310459678453934946459550542034398578522773690766301160228670973226768808349875795336819002847333441207429906052962343565314932430905399406563876877229943192020186465291283302605524976780434477153629397340026012532344042036604243439135982601281058870850005619413192549054356906593862543749603876895277687835097226131898146143417715277401387769456359271430229760196634230475693909794020936552352918364548544934455473567693035240713060389111329027698477572061845073480858804192790719262598376949838374651074155840520986469660366501488389062026378579418170102612601019536263958608663640779791144625358696007483513726568005255559315565573271765972022879864772413112658413118994761804810970738038307086076310421853718712076361966296841151814329035189817289008506311968431219490617387386571435087278169189240442964899803389883909304328918560218214367399637573666885731611896037645900542092491676128391114940269727719481986882943969837194584862026821151886398661580617251661402334105176926505006362801314065359501748822941141316289593144402467750422116887202759877331319170953037277506953449079678321380877087624883783651307606046399123056001466181744004130790973750020493631390890040862946530555899175034022735332128315893464606864165774197101277633642166505518321979894223282148922697922418151625700616575455250350811199738333937200310454979986317738835124162436241915751885078379383170651591631171445385975844471510407785050752997726686791873305040997804141696986176079725444692562745211310434706712473249687241337669251648732955899003146826981366717368847281360961775703259747574401143392980712901701073600269365932441543488283416602984510945174208406398883054180851311980826737230815414617102083428036051203841283582807018256724572672114448559682175284355617847988421407685824485630687463763905492324742041152647745499554530953501369770327354580938271418122449768222628823338084622515679609347969825373876163484747906510034722709374907493433943920095043659822190160590496845825952174115037865184602787128552846629463443068777248953332517274253688447041733626270060199222607059417634790317442069511271563282931111210905023028083602515891142603414735683081187954915496579530333555374273916167934118096488878445824635331887238211655606076060342509220660919044547677392312119231637556869784447298495351903362697865855863439839053123769035249936826854330773221264462004913992879856140236314967465076484611515121939136506811849820270679976937035810159258296601421985916507140756012659754674169797000424720678772857255710987090023986856453044063940266280152912545394554297425847798249353276864788944248625801023340356064356967464753163926563588773175525530242451821381369073937653132126864583080279208416262647228352431589498218129505955325798357205797082098544089868751439286825534025554116568105737777714079090322312360258330813025400844608550458347982323350503725559482158973799059536710885459396373275932975612328640592137202951085960859301342094047882589884218083148605202561966737630686577865665495599823233410573951846847858747988825093973267532690268914465017586196226280510512659692592248228852412565463859140636858742647593594999959132248432280218453047553769625083406779799761334023949964992479838931928059099873656782346855009040679284660759578351677945167219340197544242517563705100666085501422305787999093987070299099411919402009547264621056940695013493210177590405512196807771450253743040669115567317802068649498571770664223889055907607556933702745463687462282775172703230643257958349676106274072643930725797259624601930185186530301636200038197132044276302960664695198070051059247428368984854526975366790558319152670603413360876220275924322702998142428494818411566941746691886038515531062499342297574097287709630427834001716997534611559013920426566966370091981492885421832112256170541914626580806221635369498906410197561925047168480166835284452675362126049318294323118097219276935461200964160938595943590148761903998763016508404433739140155811946745818106508138078766145998396841400371247529976244878275789886536504210212636398692380783073594868772112038189586466444437684931620244680677534132441610941225183523918363115654159537666385738278725708348630245481032961549861286065364833093761252477329912962514122383668928634667254092916280517855405992121093144653646899950683365708743144871261602242851333135904602461783908725852531091746434508375420522142637362663669035790756465285971096429310954905397946219254058158327793212150026057700537869169906941184761191047955608430059560712261857730227408722955992968176081369729074838621959875910150766644884108950081972027685504915848118025268740511705890978550634001715529297855968792392364654118582908776671863871802075454623635806893549851884927226704747403040832312640405375218201138143754191678971538178659462076136401071418221609264307095075374825441540168447958186242761741962619302521543812747127706349907074935472908859912475565065734955092003972916458999206041521069461392941781896083198451229377577220786213133599546674615155651284620407989925485739405117670393134748810374870438760868370021518692134301624076821052527839955577211833156960486202802111194238743053978589372489317094013331884150986982344224997091000106044373150319860534556983732501934953257856451057236636488086916997179001471638878079181533728589108121613745998676665238186263994808852992066848710308619627957877318037510534541894246975669629871576334407229243270617477939358074840921414179062540951277697731182552812283896935308249249894467057190763160387831807967351808524659738561637401043465852958649078629474204214693865265034589512305412807087897076462873429069914825455931125584619283209714084764479309302988310196593110575177352181289952644844090376644128958364376243165895214111688750604572652501197961024702718295725902381193877693393750169294005833577469838467603785498952900078818284927012125854423457370937671512441162821441965331154606473654198931376711353389874673233201015314843302607973066113183309287808014102675136286426298831060825014485298053925968496677712044878776843167603438933684272549809027825067859899678884054708930392929050965142932246514088282749497244222907308389578852480599413528683988016799645218414543069321521011232266962342633820974322521217494605191609195328016444265031828311431466662575211406152150097953699014266290513298867655168672842773955150511453628660701526760207695046611160643535815652426249891934989538449407946716203659523215498695937286801821346203415378800623254798795504305557342344779066387629367739071876787216304889647633696541460862069222347907697462010793879606561654462311923116612721268499472319379911824013760803449595296732978278935236967783980288728450098261304719882401620432659660189246014341825211747126272980575422973946798087004917129395048853389121145121474049506240133657210489481767678028136014010403020652400880911274994323220931587787011957456364072881122525281403725123245894678643347515091888221940958287125249386356646289105520958994402393473079248237453153641186622299669315000739683696473812730763926088234959364227392591073800584149990210766303550611120340953432267125937195976190926305681647102139925736750099402667027607445451762137996185614669146987093623803490559282681585907825204829809117355566808653021705128107392479002282612247738347499932762857952650469097872699297092138810260864018963833127741599030679080694627564412103095484276012446408340949003232392001748233214392475101338985094247457486247683667762461250137948466494776102413238777428450263707681403463412992410955664519789315561455250276226395728921935818775377011271478779476305335717513089036227529834105439909284775066848058253473597009241080311268514865556096268299515122460702013290316847210959297568671500544847246315221884050168330681944419050717357925629527964692593032429689351851075731658772349192503944400364110171169986605040630715167528870246397076993546192443287576274052387593679137595444878971569336855457537262890145301639352712870242350518193490531547233600411604132088318157821672203741022313143607329853195337376025619166263612508709798274349141237019314901378839849535470551925903485921167643207221479560576210966521773717319770583302969857750012670484326829987115039469345728713171837769655506219437717268177253747830934746877529482338375586817005138372380858840700539750008341937140506847147255138246180596298369844443774532759220587103945924209992685861294039833435666996229680374327633074873972729097044913189206456328511203481048643921750309761656341717195012633144141234084549649930237626665916380592882699727010064849434720370446502833809550115365241664021719166706184399737631975035261411992851646905145446194764258101779517094464620434282396049808583282460116690101924265422446132135380066294009018781184489407278948367877488344572020667243523425260687944610443626388201536270362046341999595367881153779064404430882895958661554362820118376605327987558572841448587870465342113213774317096423547904611382037850190988834129626980624890222085913445709821006326238859323578721177312471345031881626257194527643991479301573786553705221559796276827471906313398304094124441042834616198099882655271955617524817938258649368399169186015306965115828729875402892117474794879361231137113981380218390959847661704316183885281091753526429612671869577288893145415856583088196505519729469650583449492204679442261716885904134683589629075455325705391406531340596176892717770945655905842642344687220626927888685776218804752455096234196848917905393314860714965758671499403481604823286625566262685493499167954608434231830269970124805329084275918876065624153272957341863291483695853701262787713084849136649265781840567816093808988428529499428142215410023329669305312736756442582975939210395304597545412273762965299485723054124314553969636326410453454880259898484907821695451909853928615221764708679960536460964194187440481262018389118371754773775230238970352514365039501843801487031474696977244005670882045598185392312075879208377494128912747438634275444603298690684255241493360387620542971531200611087244516722405467969034526354873837740748337366924323466120944509425776628364408736768254125196269672820962070508865674428144448581959923400589574795647118880537856039825047079336847678202132513329975978936652616928903616584112523287187597074067459292336864139507664486203111169003757611844548539064271428595197333442549913858795940159735705851694442111964545579953958102293282317856931019162428767569215305952310469378385007661516340409878927796388224506098916465583184578443007167887827827947271575396290936870887356712048769092351227805923818218035961288834844910753494177261736288907761228730011914851615663410422883147020360380871900964777090605006648595695682586491335522837242280734447952986660372374330456226822567429182465468323956764969327063827375641891930595147345430376081081046468029144017270872212322139626637038993623332529541389154455111991639122789197914290794589230316721280904226434737309632059276980182136285393196876697058996313846567247833446980610930685281503195208417997207311884812119877317230779472095397305538597381667198008165605226173571279324656985532626965769541751110642080386016099480759054237295505518610273024365928981520420367321256285566160954077270736627488971483532347384075562351277156022110866073265361405664691250969383483141058494427663923719484004564403218222871484223057324171130652379926203582490390591648473643300871669065770485537379674339680070462666521921160550907082562697609133903882106786476178980768673776947753693247555790686498594886631652838856084078273092215982309994118554672400355301670589180139698438128003251967393455993555235420937779071232527253267828234956292119218658933313406530450080753315617522267236898200422376820961332880278571008117002086492478373538118835073677693647270790802733696545708009808207924051446388165887789158968894135801055867109732875438711321481147442331244216863221696320289058512436262169367912810202122520897799810173293598175657523530529410152205665714203914197813105141522206202911162990023025116178610324236617269101629365179067359263754866522864783828784170853255605147625966295047714804861286223688793386312890584835816899786183619030241326501025275217372276791056765174472995276569885361746778609500202499491644957597072424603041948332350212374798676453623070700944162613724739204201422773002684478977659528210158879589356326067373395050498607378792976613069304149199306624483870965303743288302360271731782816814785878651300933569943001320864578128490102510069255796764792087304539448764869839791870516254878992019371079617613120360826996014749031431253084435990689408640202591766783384133322357833107055691869173923189715452312291586482868820537786612077969587746510364076789664709173583596089050096885289996037454436211474554659217800997804779749816796269229783698745756785712425873040896453280665054340407073889980808767061560627336947458616647584542791841447224341016667841099822381889346872075918109778822581254428847483549735122404750040070299463595188656095630568065143993551356234128939011036397594475966396731898839751495733785217792007766773427426780496514396353711799472481211530431105202904723343713199598548446754126050897752485177136535470194162036742986725522399195164778686774665707523450150366238351300203675908492238567561808628937438467494312850364613548588151004431913127640185002625272769144140466687052086903229199831203285806493563339709731852041825427789704342599729331567353736550483927028069808301329111042344602161402014930216053406376963369924845135056161325326728118130894686522119840430342520849008762553988672591389231350607113362375112994613642508352344320797801694175147321163322411575381495295999776427473231031594142898521179092171270139802197634012900348881799591960550791052221809961306958764161407773164537058558422705825833772893698182639631342905205078252764346905534103090794894098034166979166603991891220518744078944721922222510265609769176153741937708708785486975140686237178087574862917139180994982383726116051888159859918372591184122352800046711782248063550210230176954902998775901771110749470969539945319457890943677473318730801493565274180680694153642817942345759877477258175875617958209206366447529366799672546686868236241627447246449543674314699057997797342871545977037356710241058751109142044077204238589315654154787274406603151915901091934066534385341772576284412075523423220352225401125374059867647986854677502456838690784647807504562450450519100232892704255858553051988028824186740618068237976660780023577084706687825997995503614825744592557799975360721889757529222881095816470021229759552618312007959710874071934292751551239401476032381646844004749957882923436656220853987296789797124284522354211755311490710973460873360823043001932454025786285082359645900550413799671216719297931158044027314708624162295320928628756607379816789851830007762644732021923223342703659077852314423007577350118050285353500772526794751613201118165892246703029614448193512922111260263033088498993867915297169423606015847180743499560235328479631183170619262281919262717879923114714085270844480761100265378588269558507108171619241072904648994380711657731642447363084483264453742184591271305843214224560284378492454995193358172990971929400661160672450998956105986007529124058310370333117561857088772040156972215306913359347393816641994625918494697973440196635303114917653114099365770933571452364996722272068891835701861781006398590831417415279488155825411349510511112233950658674271622294815563795758447855468262232761742115088845803758848164832274898495464545345185654779259216898355890944941277388773082322057380189740476972486143544349491078090958916078334630026986923707704155293477792047192893370668137534605736302965024340990456946581848944071535164074972784403221679429628452911093619837842636290133224528378971343481721010519239684982445288679525836463543291024349999788714202903228726532950073416418917831564588644953476895706804697606140723954912151768536461344017990325436079634780569580445818938855048740043222547222741746784514589448463432923828533875533958072140950215965011115757483689813278751955461079879626644081460260317041624507529755488981790407491718896619324363347371958565537671260582070248212756414523921473632038188552243270027443562246763897015326449272227761029901208814381306251680194222114525790516005433655544656649143118689400313234328177888275555211115406778745628155859670514706940559422593131249868039648330090641548096199529767658475979740895752592403413132856930555486875966745153664469675051750100376104397343539385679745319371365824664883928806083340472641116266547336600082060324325858906271669849824901401016797096422508365648613434925249224794586637355223326401187214639895462867306592737638916166306585533625257834891708063943582865993174215340873809021339362371551922668924587392348690536844411536701148125154208129167780106377696084998983157547034891343211848216404802912747540153337166215423500506427358266885334703590704447831634933021262113474920920693846379657259199505608979356717479019069920030716274989908015254225204097740802515954538063766418619909278235053287785294953910168171785986626640677924083145749057515035564855420316955873702068723531160283797839828135536919692932186104292624937792130619477390653169134341500645739756500100186013068809228291826688924118252112026215357068317633949391865813851371820488113138905891402332592088224446698444735955299518595061195462231118414534057677465500992476285801446491488642903505311135603685954243790037039446578533899013585392583647494025418623927923655851397930182490885779013095620040730543929900531400184896080006168013898811426691620132704445146519737945504672820739055311901378291345004220604794903803023396118681908890330697542145506934848573140658724408119796245932160424626342901267223325978497758301924222909180820658915871090768934035423555923983314579279499639808502561637624381611292953422869277398283946910444532730877867940306015385378826452007870844336806464075976119762015074397250105579535568177253990951729219463677780454257742550319581489934187796793290594907136075352222339038762514637236314579162398175711016356428744700269916621452712870649775605871233158136103110237860969266939395605155437843561508411213386875104347700535215596022911289831991102061006263537315650671350064270959621266462624627646857835373854486198986020879506772396470811657147676052162551280747200645773413333520102703781250392384620308531244783102347844409258517124222582980093511375263472013510878941877784927862878255506322596339341126321110554611629292711072652857608121075433041868244419776870689806039764824519900050660336996610397106544682801526744310413846075792394531275225791949441215539637465454629118538402103456243697136512427123128288577362937961229772097581411366140517729890997105327511641673380661183473354361487859866638494978982225690791052481446398246803815241400981603192298807505171303737360693447323862135582530547787025586226697629312287881765645365204409372986913397226822953782202525323584919179322840807960271610782176049041286592801503676453914120631132112459195698107249562071330391299863614920193036541638676020056623005546844896431518633277381363894038598869938436145864549330322991363328117985565345843860355782434904230332159952477374133419586440028741388310322795366299683326401314858739625527023146551271523532121459373698793039899738866500845237129526494157631513254104367404845466769302008623916570578419207249145791067410443180466359592736677439023853913925166742543091616959871772058167549919485909110846838219918457870019062376021311337631824571657433203414648131500095447578642128132099365711574358953602466007970187691473730335388844418215816395461210699784950426668454754112000610009474945357057212018479959268529405740667639655173928432910194220091914798795924735546915252613122397986616550171280403556902249587729382465341313349389207054258592124662468210020438381757870106784969373846441047598066227894066148783580453639726308955713327758757510208528645541015130804758089577845320624760115404326287189177607100173192891093414903147406376063167979302806642262864115829515750734425962935713817832375356902513406322991235107781652268226294738786210315976982168703582743211284059125838927924849476300165431041058556353723293408819100530719329103686032948492893865719079350752158356534170208762768046851326868941747219124718523441992921780926405347399308670192210202243819506576104653544681159194630691538777150261399878208612640384222698179601100691429764495591765448507952777732328376652958367915605361276672343969240596765113845707421060559573594467021947400082883345559495522891129900781621403941479203197085687057833487422171648671978943155175455336275034570229204820644620277613198862519790374641476489265872625914738027913647572517953116530683933719342953540858532718172363359592734864834607801097840520084258910028495185520213281736529440681123487275850011146149943809259849851859717267350762079021270037644303244683509994794466993439823879963113781978589186215846492473488493956806396446401084152387956054260406459175791737335623593499734122138174926003531573018655027076383771047183203780278083543875679546352723566395637885681366128682466167881292385833756877316942064355709683875649538999805678016226872787949555552422165407616845850704563595843506092717544681431766608989908772422050440456799728124849607672205335772331074438588585347461636359025357636208529488838169373752002378297956050833560017270536370006480869159605541407415303925088126550702967528977088844658204118525087327225594342044532537618293782884650979782644396018494931782477116512915492467015411253537314364353101536799906327709170706947335272388232353954282720830503879768820551940590826641974812966026056212401951116503756854727281174646980408629558407882381045117680322001198177350987530163557056614520170685246044983911613093204046764243138053837302966907742143176379819996348479406107251646897734531295042305008254913470475427900319386606900664298344720479131442981022078371868906169167650681853994096858259709948053056751320514717051533966645426481513991347681955842230868766364903696878808665452335663768590595961729242095487764395395287144945376606287252114339784232879547941132480049203402017870356502413818761129167354863817182071674803712578690347060226521071635284709953887300947842521467732386852072197864065188422161740200373657350445878448025579044054275564894285577891895227902676461545610896216251524237938760538904723400193620097045820319982719512204701777657954798370781763720587484667427665496143981698470726506622339691566045114750477364672176235872285893945534686150035292893053399393081756222882776501684275784262700435243262097463334389982416068706994529798047260064776178222933978416393950664666019663500328896594482817879276818822819104841818086166372274109274054786974393765183033979384835974514065981577248603000661711549700760262256767604905988244121022322078372041185209143014968609898716971701895366159595624340453592305373548310049944463469601247013482629276695577644303827435329380258953593915305206994300164476414842793198629192628824044367562133546035847923719303952373284656572328827102367307876876641044256542120476955697829154882564150952742880687536636303947698522009224569176769897701593264763511120649705857075051656752086032848337425241592007303114742225232659019248807380513787238236069592314211024638926051519539594263464567768037994978143564351829359153557771835322709583837944441921365222300039073672822470221690057248635453537918225294722759325003375686506668415035467981374806552406040795512681135359867669721559815980177443696881173934014240335525357474425817705118343812242348186962142703755815188888750947052152133174418670761138110796528058567712414264961090314219255044551587949847592020251316672369670325236269598402563884500176279191492466009309383977366692667392845898110092397147485022573954665100604228338913701765826020884637353656741926894095162017409112652551931146843083398002738081473964063854817291650715282319754386767752186186366349660379398911549046230886730436686859424191314012561019126283395294182704918493781703179163015800301549457598157930721796614149785265436614934043124219820571363927919120171705344359810957327684439719574555254376231920215910131075175771322452355316887284721187040029097662551248395781275301276185471889906165044414905370017065863632056624616125223257856312683388554838114790138602290507344094644458263962630731707294515153450709040191632401461343984390387118522602784025015833644181688605027071876229089557814724196799976256100784305916807908857632467432902139601272588774089478262558841383993326802914677988789205940322058685816929324418877356213088784344167680488937864557935884369874224775337087740057412133610623394052164983497804804485077084997508071388215735920801378062311615625428715616355390430985487706248409603831129151630003012654436045063628878157135088190405340065384784348591666696933427971588046893046000152201336403240170478003881271967972967331823958766305954491931292181686669799813228664973104834133808223661918294736148198861118201801220692552247080719893039036551799321180725674634254606506572067589982162279146493727991938344921163892858342309537106166214305133245403440416828589928823833187534662280284876993933356417989890734690000282199767665905665595276364079368769808663862218334094528209326195697359434888380840513706662494522662302723065999059800589709752153001129451529226510575857034193057842250943199814494167082529207566220019409424179360212497586340830539355903801751490180453033567040428685509384173653634798223604216791061977507773252127975455950535559538915608129757332938980811272357664283481378571428601310060850401502602852887986923329811109882397806540751020524885433371369747789745592852920333635675395611052328140164630920514857576680346150601016513364863439710734729342085642851483732515865081022220106315159762161575758126006620928449079342175557088258775959500300722947517065324929676167762677778358846017580230068993234826823381186964428308975701201185320435304502570196212334240190747843753482791488313904972645231652345741376447868270729500784929548561030810367113887897485751279623558147687994464412006485485288181778827390910842632817088472735838709832556079070249087623497937827563233776027549738716932374967454518081979981242701230660707235435539808986215035867806975957162615844346619472769303475625747645601738811696861116353536895265794818022452677094598525918686007449802899058413428855227630037542682807736920191536390171469248567590488520235868374337981147515904614371352427063869599916447911515834056009370754723924755507359495467648393447333795784951726475775541956497070421980942123494812845465813054014898791460563546139071152993878798787001883475195419841766834885024060968492532184914142431303879422850741874484262108510715145064424219392494009226810374317613811757942758342139224448180146705385895650639724044704715586746141297587492314484942175816674185556120270078080140834188606875645016152859596707462235776574010612885967966559190921607945887116663802962239197970810412931439298027307382991177985845007557061089663069555377517128351203624905337172876515531340009955732301628294092435835575612338662813970063048112635920876704694718576912544088601037419493197036986779213418319894111785299770396598743576756465658524466808948638301192185324287697661137155568127023380522264731192238220635157287806982599610547305425136594840601341143714420107642944336950532299115918613649291083273588322841218797929580446284022391654874210547902425643142949628996216514549904053956928611393155065592415428752623202607177008737936709583877992846707962247940948235323555344714219458173242225631246953840133643149774223047290708082848303618130999710164177389501161567562753466492889287551114176934705070663693784461272796993189607790514957503532577740799968298059250039628947742273691949082291390013633541821026638826501973111303736304817234465348711557903108956359782286745931141290265625348646683736642464451629439560430215859972482255117566011506223680753000918545680983286740196352323870431754237399584216020017525505536317921966090494202491318994219753595204903584029378221163777400028683721499412964561533406059564434765854801705252284376824177139994400245181000469330879867195548188352074445353909221073157157139302526146538984702997123207406608634684093642429475689852466624735564642754287122493271767696413752990085067112881290523402759409427930058466976605779479638386584429299906702310697550130476160594518214147241445082713761738714082301909261468169585177882949817751772327567666969779865998818495217524679920383059653018887271756442232500731687481024838296269980949219862800399637732033826170431586194417717981894682130998593306971446147341707585900941250323635716242161040348327382127007959491845146219098021219912001206977767919879554775546605616774684615923286092530299694572242867741155969580656084691952329444108730149591685931709371948514272965107795850000087547914889882050961032940550700194857970906991220018089746633902427705665279552264091740292935386757958408228934678457982635412632029158830874317441893634378422746275600354482203727561399101756644665331283454125061396739053048516783810872193178875297524300271357222140568019509730485889153738413838741329193030463205272131602951704874201432868084316420118161287587401542341156215262475855487004179031047835748520153571624880746523013269210494990104250370027087434081543877794454031470362901468364959084786168055767943030107851254461986133384126808486402620139678542936135185001256882557555573017799477059491800144245729666984876557673279357151870758291165009961191069048656493058823133373447355811986581213480830354491779391137725237605648520900326968332061925800369650399087001207299058421051805206523464740758934558726395431457153594372972747460868013873353188454911143267606825397628686910444154123249636343715311694467287273767486966946109845294117003397434818823848779505010751152156820837856638341762443649948397489978550664154732732862657020352932702208821252552180930384545253998291448886390591256348450875378939735314086025490082385446616562502550339329249918998048608030090428582395511383075303536808481128455986144635843084438484014309788879254209025105739795281818181769875321476356439799653770712670306261384932394771221248330139120753707370007797536077781948636449431753520660071518770705942250351091748895338367232165133357342885931266719021611529337708304976691143627590585540732183100493516129971802960840385727263369753530028223305840922359006668123767742042747545958876461398138475828318942165875338842031275536508505176315556093704450138127370886747307654015910244982681561708945485481361663050053235618921410453295888722036865775096148342824794410506499184146340069311893511011987551994761163488499912853431754312231299713451995844814193690284397361012304660565400694155875201206178429060034585991365596718931590594747833633897663467568988485344009170885417757143904125064042071766393341974351963879603177142822565781147856125049720986615986143101791759421434225772089187162146118158378099449341260243835226375080084164593327162561832835581683060425278699651959607853729593474056432418386465173637031082696414266841942666002730485272123754751277393737410239105387460124647410939335350369792440265222461320705058615537278676506189706752090359319603488704757830121256069692734938467734847129081153655387906773905156867160295677883382344501971842654198795927528303804804621306201003643616621280454639546665853727951564703667780392677991698901196648954041308067394037205272595348280418124868153313232199957410567224782655613370069358746821630569140549540894219093754615417512694091616762661820269288958212366517250380006725327230493013529400877764593427502764123698555247095028545027131892354836041154389595751033484094086092818398340358128977214880908378657002604981344994364895335591047018782913251457156985691937954741779200250500849418202361051696280101401124115810273825628714216683648916758328490442624676620559224874437547742462353767946670740975343091069004537068865825308176147747994509076950894657545551779713628057578963145950792033292674921509772664095906583282457914135323549917850630626462888408807822389182609414368156491535694983451549431533658307748602031571441346989097918721006986462199334475481099084689532555868782764980214354085303589940238405210061762303866458312113205164334171906949359864848115177496944659227710011570881319742903467369781748349585408741811058053984469767044972025686556833376092636968147894126353288590683778733966582772938906593949406117117950396484128605337662480284166116942337386545246975035857392556448240353672886526049047338173643769042079246733546836427170831647448810527406416389131334644972370124405298615466887928246250364799617240358984038180187357696572907269768369627236445467516612797536016912637326797140520232432316714339731357643528238114287806266867969278295058718769331850322765224472409107863348143251819706044713953513418451548860990329609070098374866613178640046525851333387355955046248667772609621236382052589156479479479432886851144830012420690640421932841763560394945114772844238693642139929078518413659441644831316500837436970127059106898175665678407948279897160571763440846550313022300513146617210054000222680752409060124156556786546283427387944405940620703225125050849913653075049960794105147885920261930605398211968427303768631309287815792977593862826421865424165993481820371022371804847203885165959186036160091270129529163433660791511800433513978104742494785613355856566127004547143610056908114561652569620198284332546536048553915539461083818121365524589359540981776965757643050977337257314164189236697868490732432264798727480205064474031793136814348624049854861487246289329411907039327986495526583921228688750856218981437062931174515986590578055776279257244972470082609056383432422800792043876363364838747334416353264203125575793970053327173613883862096467020699620325037905126763578941671311020979106438457479339368758858163686605944676170155462364364603238981995018168473183045036675461896257489105201161239469701451818118004592783958047543403856371772530099803298273336543475716029137006859948678401438203818223167224486803471668256563262040926359763407649889465289761507439248116024799122013154039880128029001869303183601804569655621293703406142910977353232648405880343110236901004048762634749573659065955201921097244709157085394547218119333045349436395772419658069634038547772966063658948906333656020845294623661826828712728604502745962857252828789851882065962746605542723326787471785836570911017389550834692861181079971024290276606743418567476783823166567164592214475945315181409798634074710883369212875049643511610440937780504928181676624072912805273545654193319553955889885265390087012744414814913701040559387340076703700761637425291079131655054361711845598058040280323174974678648830875880641515716600053758322317845420709970901608200056373668766919322058845674832534908724415058852651091565712541000273824489313577160998083451600070389934610728206277280924818409533612933214288325770541307712083840790143435651234140271803051055348521133673844557086587167089956794361645237964335429983832197996903837209521141905090203301677145054354804730702656177420838481165949260805014672173927845378117035734238724205700485718208241761230791672203524496605018846135166110774103626802659459841139229653208687136194522489552426093690954842841331738153369955849152798414124688369943056522016243865593507840130408064202382225473364556312426202069763538200356511463631932718947275632973650090223208909594903683411393707409228858481811867817161215934488364778192654583806664357465482303785168227850366554339950434089908327613827566158688421998970761409152427637174184061166351531769189803038902853493251168346365608789806784369503366404244002908391693213583856199093683954059920046236657027930531989348928846095666106447007851207713606392011629109177481485565723112724771704622487532772835045296666293102587468998723035734088214176311005500165761928599866053249944300558696561564893702762422873325245816668288082340058127715904982851309906194245933656054638275587737472399581526947767532054401335831600509868929004957326523063058300882134950462423628731698392953991543100041183862655139576865131102727868095878760971256652096571418390899755215030739766464693046596727353993285518590305520064138475490539466666089444484721549692820440966670920070599551523095100784862636568916204600806706019030217119012248828337544023314060633433700143930697680350888232145089953036054027234926953412835235237573914225242211987946097995579287365513930408522142391551333857766779194080028924955505747692891555059578005508215228073776376106383014967795276680982951960211476353511965532089806055133781052635374296966984946724567731712925485927429326707295739307570416569802345867189605768120879263919649285408561580234234890752792760534282574697640183421393072191824597246207918141897551687285540161500284929320892640444761785873562235430980627802968800851208237291330746425348941051803652289707342356687552357569032972787830183218053009421215689917257094482064272951863749879018809059253844842844079084709226276464928108693652364465503872518549335678334625837617060077530170894081046351203379442698705306691913756372696136490023802978804511131030750380727441285728335694348725159406980056628580247788986441541053791590228041137320448652366636422382176294965850085827592560063120286075165901838325339745275538939456496680363610542840577454609105461772497914562554098906524317425930584085411861698307766434966724607334893249304036613929690266663892507594011428317472160381161575631749914762159224500035103133404099088615694434169935045094729812734077886000232135913747412807279373647989583257701286008952568769794790219416227512158037529807435799925291028377718589632910076681398632576232820810797553142067992532417876014968899023098225761092249878893439762268863914732611929147577945493431685717349706792418896278383976072892007215918168361785707357060789720844712854765425172882190958534704027478053545429610313599748629993639184365756057663535544792839301783724555456227256230740022280905334989965522893668907535288330250002781094794144092667893347736103239030355060243440194523762769743990079692125448555608641078481730749114221577831377717043685129413976158434355006379114167706956070133179301503424273169258245070541487109959022050781993686409193143781251807582527820830329704162558274381295994285700505467929040792315869357738158000601725976233417543893905713327716297595835614278570041745453914089035227615787401395346650093861286675767778589683356550364750427102198863207065947905487912213587655682418913565852544852810039548325151925693957926102674471662134075874176463925457825150273203673159205741972047113500540193757090877424639753751204873183386252408604504096775992915909685333385126132250506073816511519608785976855743236832000208320450999179043032687056486023487577992386082901841286087602423133702469167246572189609336821888603902099286905622427350645892320986576087664303303970377863695523941617614123470073990658374125408126700614106621378426228845871892261588053930271740638957488564060074563826955410925664578472515688064626090739761053688999849230012215546841246913138497591469591362058809040720555479155658051347971859683052494782706521206826714472673107279315543338552159571142054341808007974534820471966934765982773818123170636983614984034587261855046212383404022180729323689194396485733500053172964119851232828707599519893632600020226543210397488348984733352164355700995940627308521250763804797031319649909515231691718431163156008817597204840449218125072836343630514489384278527731396170779160733056471423895477303793449014225912554608857133792586965851277735565906432785513237530844461575872001653147395488416699006179573603002363392900832704395066566983026124244274908006294249323750892976695613965710466704839158973686172317457810079498011011677422228922509008627641306263755332794300472554199525664289117581154040427517338262615711815638733183933198367725361459729346902457923424787499378466358889450919040103964901377886860281135011617476566568347622722511235838068695347090399869881574216822903597034048048706537200891382833418367170358601211984481643448565908932694694393297661384868155381142884531094916768327952667217828985570090158492860244946236303054191958902422387993476332893113444207630731409344459299825182383014693697046865403458190357636714488090674535544928209814084984336414843529135082382393546267916888600320046507198648166186602460530937066595289068071512232623001308239332382153838114102768249446546813947608431911290100841309168908459857775810701831241652253340676446863408281679303367052459977022777414993223165882905283531015404042848682666869795287772164380476310279824424837931319066807045957997692972109350623094692805250468090873409502712635104804176076291300915130654727404140209830321111308680609140094042225480839802924919234091264048924749844278275063882180859689011328621197056450252439452676969662240586199552257438370247508089706052077106906370351605001360285780294383248036052930507025794186910373711327396720356091125854232252404532582718820023282455756856245957531694855344350107509729204990284053118463631945362708261278519356361864011065711068622600360880086913884440384080129721310429823380959785897836350913897486258267547298349808412671513539887737914341682522985329238069941820193245524535307839959457449254339153374792011326760620845554780198375499668129357057644901380949070016577508964226981651378621862675284826913812507310438836665249845825176724114416557345664014511289369039828857657351532312570129811533002660632224135944638537803800356122364457829439701827820715856122530982429338133431109311200384938661016715940359109890561586475285860241562516630579902985083723804859880885846476609815997488747959148125528830635720115776353074227466551648498563075367400265912974552668158337082268414983938655668531154596851142674565038820368678208824991973709831803838674847085719898957011207570190205242444979612915890501390080261702845462525441145521270656680987786154041516391061051315847549007589782676440494667682697800602619649728962953881696434733049174969319859204441732113542154519303205935507192559517033051399670678012314961571278488527392996661007068203201844066429358239816674042974174790730753498318643959620288512026111559942216317899305499927756705984884202840291228556988539657569969946273993347422710166798356231048607623746403623815548163892336800357614126567767204025848475006858832462752094950909393918734151585161028378247224133205385355728776556728568233442745086370894913703027915821685549424183804737943422411792978119139660577372065260075800040225049624688728809335459983728355091370739417201196164065014358943755992053927861756496518009733242422300625338559466117575585229659245657132490951035443354302561179503242333442408349947579058225559924776522810774616592077098630782675409722107720325746925185140061117500495185519593954098741711383369532208698676202556635702253898308743544686530237051612293494497476751230300719115467922781858031023745981757542391515384775277715397635106451513806927176885472672189233582420716840175435666700011711255658162091022751016782618528742323815614044492179460141435708484141017590157999086380339204472003470872861291511777946549630677219130971173169273348699441746157562656643638485844803450326777718047896376956835014117990062720346354952856990913951893319450497271293569251719568943878777459561407312165123117496528999786154388871500725112117977052013206157359664169277454014801956967401555038512258220545321818325979315183905023326452378782096137741862506343175883996829525647983316588700776280845855051870448226068804847458540649166968147658128203714099497562888692301935082912422400721580655558371632589204474008946017938692379818416407203359355154872837207806259704398184201808907502498592197510666046061390413815263888985782390576934781317078093011651429549272526359485800015854252620800513718151311917307693550589351996641975481983295228779826407116205935783311354153457709106070995945390265580093077074768004228706058310944849085490754350774591518265575771058635023892764931381634890129754439607878094746404155545329436851475257688160139171547676732348152853303330663171871835691972633332442373168414730894522371286700162362131438690097103824631335983154572792189406898028181773432866724894464883842741845954212288924668723465586747194368427284506519324380330309081283218990450649225873916793704194139969226000109449339890378821244673985630425644427170228791818785011589400437760117649490978381030507333500830980007156478019202500815483144430382938861039701091199510703967411762695879309158756064454446130359450859558579426515650861397472858947157583531622100760058352624837829800947836129895969751010337164228293122942230958984776507061884012126794786808894891603367959303997271158997342465515226133860069329690007872602349677007221037643187301693212091983302541373646113802797630693542643074717614609416246989535752417590295789148672525821201851615209914042817557914308776699099430161242152791110970071904780137401664847450607392966672059124404020557748021886120909008230883734399051472495880260534198720716618703966775285637306518354801787647562278310054437381048296852344378194316339182069755416300715643243781035831875704903537525390724851269907164704186648030597785070600982550284610537782838024696358030266214748044228151654164384352709049086745764812697059149043982990990859558082631271179804297914769813270230249245495747307597784201072257858667278064218948387330932142370972740288449121383011396184309193731188567355437876178960641930579920609213487320557122269055960837282212659805087928835195015053433073589956291755571291416912325313394323737985733862284351541387905047997745453751608499954636175184985365049927944350255638721411675038898527899721962775754458904278342418117239295899538736564608375528364892758268280245997938657323586078099077229050673116968800571341537203355201972198231426180117885407001831778147018258704788329168209870812129057724543167487267605511458341710956820387631366354368673652470950527575085502954746606776407971490287507663537889958540091555038657145816690376468673128191841887417076070017660158031810672391546780620577588546354518991887104091945088618792873946401187084115269918765706984244545257417999693442400873547130391671288449830029125739717087328077280079393425205844988442822279856176249630739012663322946722707058260073474168576590448545314948501079515757226184158393738251351266922422196739157229908387521081891248165497540742219433673383841278022749707483987363177371958565346033996961403179425207430880635493901266079448444784223503669296951975841358753550645944534293270182713470441495833130146265356118775286213074167132508193854422406732087710766881296029680728538233179066606293176891222684372397158687704583766952292294676179426317084893280919663704726733281483495855942509008136448731182134449094328943363186969241649516145766104417346344865695934669394951857623547995529310270554392591020448306438219523078333778698440564422351738919088172142442729389624070176640089914237236146934734863186547002627158220506726809660274125553578959044988476860662534759915131866909091423913528806707148741265211711320275423067230834318546243194496051896291325035710361103284990816810210376215278480206557633939711814723076919668796348062812514552318197126158144545767626981291674625777391551955635381686732835817488037718530922718529267645675660824183120512541276630916560696435988168302157117193856210578341087287533997472958497354633168329716732290091310495906272450196881269701971074001490629799822668064174491935808584351176342429786128912500421076242169161481677153176138675675591878573084188458273167978024588829798510344296180402622131809264717065026732526208171827057534771359814245668491730903984235207233265248304397592119366674193771282881535515548581133456233768893896464939900388227281164746213411180393278331089439995720756962238139418679649213243745268590388429169507202874602106061533038147387107420694040652021618586496350727657114811618615437753675440645659601784964877343416386347159127542142036559455002204031670045572654993538785832988541489547002838728465570073755615656940792952519253259480761169526025424171872770832296840058901255702157237847041348364910733869580755830553864239784882550589204669182224437485571128750993606602387561056256432163614483275986982282507026530324180313109723857277979712473546448673757120156997257379226747521100700835202443662341309957604860941522326219147568490608597684212003669044897504635482312984077054482193442305537663670339628685666134049586443832071159258501212004742415162886577430074685088996524432436885348646466759269727328735798390668614400916182150126297849980475121282006598382398510847388497203218337262367410360499974541105155496907458688320295837984087388076225073012830200192773668688905481996757878850589177113420875689460599411874124387883361632369953599391691031917022915083634194042816260791392374670117360612152498968662539471754189055794729848612699752123459651634110116106311447351441703968426792464727824518235551805678065402604523719446927095117533450198120653320658377791036345724089199680601483620365177599485114228718626226272415611079945877467680840802570048999848646002839659384971696346737829393668514466512977533200995621782117877932856595879303728855860354691308131041197988586038114832607863694666465985625854820537909135983374729043088568551907762899328793698933312519753375166061464044057525700535234786639624698435327475902088569403686605249760698785322949481134644475023833465084927076364214120683316797716417757172647963006383238238673807221789387182820511592762480697430493020596776045946566908915551033186036540389644044421686369574636709298904993058840894623820931593640520471689366458448368150820728694454596444410365697349119834303639423711144164696945263201175579828487890710546844714015438192115151275073966534836808859266906442156213314030454144863303472605089912561168971425101244167468318450132878802464047721479597288093738904900128726293486915105878629078575223673149499418037742127006137737160577686906874887426702843328312446059528010488982867705451451419899551363389564088320557876774892390732425130089794021865563063817265454138912845464828152212303075212381674300680336316803264844477344070696026741456387303661041228242355322231657483306293013581422628605977357772656450095160205031586941934972267809987225477495714313496578781592865687436408183875729862625469365097477666293180317537972891801756682380943978510999073865331142718074583081744378736638351699880445711180911555793487270131102999959859441746250503419648485789081733519617837950723040311665453218728143923053091062406426585496226284108759827641573684459904284280768265267763082373027318128069441063953125579093752685254194139739977462615657986891074712212513130558215435613995408476650785630265337936957424913274126759376628279455732712559458997192742161504758838186010851083856703283555242761900501541989138912338770690135113061850466575730591109470064238221231371350846470429237308001044655673984350099957450079207132896019318852300984376408566263206503259254255428162602827692996464514796009983175843197251499339060906689475657336699082384227216999260734101495213484724891466708471692436307478606185728200076514140007324035810225723952509262729133256114325462930045136173369792835429745022364562224177250985851900950510273482957495632903961565342562046723485891326411366773799193656454200206867053173429238105160118774331542340251832763402401960439371135631287214494296546683453448525670305212363572413548744692660341592734766760853523388948495193922867626705925885599513841933589058574822145625783832638427947526754709761678193433260418162703254235612743770952549886922420687307438727519014946927247866317169919167520456612545232040135140984704373237643016166699229423892067342434704287459554204003965168212594249195665570279946117254139831062514667649193443554436144840933290741077200075381967537090837573349250233922788947348120503600505816400567017231921337796568703119633486170975446484806007671911272379114436582338670159435747048228810759619201901436697714145355491717981185021432506562299226246208928445608563865030529510115650051159726952031121737432652007429151236175913131761665387892669353018372444445003170625561784489331350885117547142820535264203985676566870755781888346899431446350202961670818696222678660827166839356116037683291140325203035630089216451060208512901452042747054740399934847974757951706820243952073066756695628439204122911417180946065384521557925309911643827428784999467376024280962746202250690891642159637600504358927445045591040842802507599904731626070320988911200221743076410032364512325768362447252822922859352304224153778044174589296881737982598908218855562853436165729818727124915870589978694909118882370963189807016577851344985023094379503242166051325739791566927597547494879806027599504753605083173273145086675847019704391238440865268042566220783918371875289231173298448489025052323145442721943007498078519108174996596206984641265515492247324007524102686599017309373920119417986034934036273810533217834843180466940655082520773411491483799682382944739651949155585610914417246756297719339046822326083294789391353886467841315766857126958806951156771515501509604492962946415333849369470697407905394400899221653494287616187175603556188146754131948449362428091108880825833453269798455200048467083380216426539674604741960601650357391890776479335257352904765420662269333919221737452984532326697278434389493446403695326616343267420959702060953151924908689638286529553139638266248824845595007285024926736705262227321196376312412538478797962232190067377501009814159050717963524040409017371746842992348620576480100512516697130649501467942004870497208314872014911142892902869485455783102180140628850295029136038082301021268854905646967211794679903286899365391172483768384181004056374280933564012898022726670839519591940760798176725145259979483883329595128023626403477188988963730044796727434010051988755099734498304831047701119647756051045116853095328545849938915897682015991033810767340503159422434232152547812840749715709695948563579469097770490344299953769053878959914529972198115605587798255931681236746508375222389351102739361383414193089604965149223975541637476518569957766623432141322266417341560016895777410928006853733440539386469374780696367165134106546598231348244385326037154324748743683576632290251413647775892339880791413449652416720790146099988852303547842702810026213397231473229179652763472525981962339479320568257504496230677008836808198854700620381669975041010885339966554328238637905481138394282445581916520987322092124685027392580886532325441721238725127875036865648255610545432606801811381029120837228785059097508020418815878890952645930942695322875765224525222123166856411364777795916759451142525611850513554872787119864477151319161463239251012638651770365987124454438011819620336578355652179879471678218088252528097728433627142423030963122006432232768522188126017365883418042463820320764906685056135265841009055197167168462339552605842545818457938588129650881679140007118718716929367196725776025960128438606957700528201054085189640772592366799667857118255063030305726728977690765194111694711638192390685986364395084262643302701272377605932916638412267062325022969632144401661804296184898731923357502568017271330689736668417064554870346065416501242387781324086226148793061142397759288772750906061140575193303443652595263427495338496309955022767844716898645177943496975076161620553967745572491011356321086923273385544122846540110384645176210858143588718661928760501692593609146777745024057427834773772107332447839184798499998842396442661503708441231598729218738577528133960215543155856520603111713475782566722385698117769356381939955861271710080624936644312332445338436098442011443749632180089466591624508372918826467281213849899097243484321404584006463435726074680455806188529169375410085361445877934123187185645726284802478477104029543837818236947091926146857650330456302216503255943711501252458450442075484017135598318382436068849682730043891627895048865081405072033195773277826053729412261822633716546716854406090492932139481399744268698878241843460628802671053487825889927242972479813393259541271913450474623032809739661133909603908202486623725022452708951120845371856876426897362808847379943559695147071981054374049486829647371915328449712994300427037858015863683634145191286631620023342423739741246406345303170067383951456068478477097688255375491522347081111611642624978446404294317271467758337564213773507355566344659408104938443366725460242568543888306599160626566133814132732058477291323926388377759662904195889219285920786900527221693640192535627422181958933158048970959024770978232763867678482682682734728388802506574220481089832976580310465805391102937195374574314657415240593182788581841528648281720552327977834049206954851641112572742755452514651470825803955897138447642053264747616978472593406682723848884443464224460736308345569611511513668308090241958977762403326675342579933622971061344946914072404530784826345667294422976218034048953799150645424910477682695555379252851559626134986461608819183655765511195185380310411654830028854113454216161344056015734974513796967643532123029922108418099575238721022316979228277396693166392816878874807357987015890376627497812400827380862758606457760702784079851192281002091732033108581601838752713133515444193408987392470694882820958114780489967141972357145173808005107794870421231620777651383573125941672574610110856569284908729732837109133244320230071518913091779094830176291048328439104227390819561843317433741151869765102218654737938566965416828903426506835983101721342395530482791534566877624887601792020214774327159184415454819053925423648978380472783108281372777777179539255823089397633921128406552175097407217299976265556317378073325292294862250141699566362022120524280484451843734991344904716032218934727642721867214025401577196173267387108072045821387976514712282136565972017562150743978712379597571639920044362008875877362292176171474089100990153458670847968944636884313992572772427810525020090388863643456086338204646799466054380655728436951551800647568634956844735937956004578199857791246434316372959475590191452161627520948557527019979323609426104480074998956673499414913921741732336111251836577181261471616311690581514333531835824855533157163130692234937722340094069946368323598492813441196075815034590124819887022204216633707161285277350918590850696203281280507067467253857694002102675612817302784330325479569245822645800668669861145338383588059151508633939531067659507280941719263277865141351461308046039991425558252056480480530930974267854267422854220600876273217670922251295663546920084470382693886232267679937996717660179606912412370937753607843253749116700689819286529978031200908360623341940974670580136534170218837538177039699267147838293728240172562551824702815968041948348367625425022070305291329192346087146078930208808879208867380678281848216919441104962606648396848330339371872198224654015178701960268141545006196048830565785654690595125756134158615781827767433157768417229633772752007314139251054507932139417175765216385283204611162055778046830900356987310728352422315989032342217581140495089815629922457659856763979501892925193895129145975559295967617869203276247069408259021708665921866426213839564649260861104815779251803154377865834279555577470180722185518182485369031206879634530915297205412406872545183472031978569762480634789197058556738467418499667777750092769293906076682711444936462501450318016882271926957960894073337643848263596970969769561046768625475903907344373674326821128706282233684876585533490830455181827573797803049714599322872540430311273499262364758427117329275085910010392504925228335938582782127380652176886591657327419598812538572087390009276973333140504843412314941604111611229283970013647816760783109731977260485955509774841250771236655809732737395169519844603313568760778240184953135612519656636102167012375382730198218625325382214976460289723946754683535510121440297539670956380731866451346869063137405080567518616922699934794872413491340187779561995823491027453252094847219187779797341521205613225424072792315431182436485106649699054867695598710780820596794146771510215938551064805709951609638976712159322612937954897740022198905661515778895704899077687015676757276060424993716234154999379086134581865217549417910179002183800838707706320629272112696310625342834708388207943269524076218251177725677636877101107329624276409022683115295514795944007076236512908179404857119702042953041129190174051055760468916204327335999252138009673383612060036001069729922360156622561856116046178735750056736684121011172806315939941110301847836730498641629931291989715567913666825475736367068313942405259169131318058268592378007054877523613992760230518214748214153297343159321528276594132996717460550124025768389607582287703264939772482728560008609576493423699307761438161787868542970208598419939292018766226718677587770531680786395603891970945763418570222257691638036164260391203168161897363897052897288325791972286342546853104161380527339359489613378352915159187908547586672723508249775777156712642050771024513357635166989238716338661132848808077186378650108156075562767322778204859421992026885825943657730132718892945242890316765711290883566613722109799269535172933000577506013912186968030831647878578008548117093069345240485654086364303304817660543707171892893199463518150496643833774314273998676369003314139817754983036983086708995873615886442930134740401319992803960919632005130526721605184613837680379446728617696514716249760824139757212110399607154131308963767641389054612130814765027756287066412173370188891065345027450483536950813115413417397577982178136879783359956802009622933494712597465745443468508150432473060667766539796567046641544725409688587790423207936408955082808944480153940523124844779965143568624573831543001456986927384266906589357039356369287358949415172408098947932595816611034142171361389982796946675550483266567993524963493411750890572929152251931004661363752634884788604921511781154670047751893856914790217450831744883026579455706085515347200543324833204921018856182685034394938577968015974662811654183107438087823881819295334921854544541261887075329747624811223284023219275051797175848003399053451270702160984295853294211691320861023574810016097494512389029527850795800807997221597143652029427463232296992425194915551168842615107380026040476060671553946212146126117805939161196243972054013770671624100842420714620689421162605364164963784280126339982118431694037783573558055348891139928762514050861285382783345998243321483074138027319071940080665985336063849330749997189514278688590345373280456806789750459819749185714121304931581334180168497601583496707046429833043776149535934139609834920711734464826613258826354933978685672340929235211266216592321399947715206469292927947220430176742851504091837151823591962975638752492746638552536886167468949542982634287006898876627807605929150044359905992956690581073885582143084328483659937551440265218823910870165047475391783486635745980679316420327802513055463292822664855806655606532517367594206936952296533373472097499559640795663716518776087262209012710549215553395877895268786804175867970860095102428267952000400515360060895213004977025369077873156783884441169320318410461041543630572478935178047997504839460042944645022230868311408481164155437147492608287966531578519678708039375969376875679719286521187164947477025300507113294581438426375871913070307778714597675696307020279017374587774818718431999978062566706813398081565575822647906557928750540890476433701851073877522352220671181694597449107777404168748666365069601866576140386676381519740058256975304331403782874332244408686263897085396668076248264569656269108236212390422635281937630041121023029418120624381387702155867702269008711033996784489048183535670265427963350527620425699774489282682117247858257639921606900532088584975684882845669791922690804317177074895900882115105598663680670503038676094922049525481765516423446087131166773241569406979289448143725715843599116179469060658020597558383494876858759431151444585858925422492255809683745920324928077563397540732013633591844763879539535429788873602392231330437737046245247249127081344327111797574791352312873007525034609980951967487139076174434379815412021649279281761692143768891603754962954043746102126537948847579010487802464443505369672336819927975489244624107360660448565334369308171734838707021146691557885815949522285128391801514826891535841886760262833327760659070067755553401499276749201484207106156942321455012428103346809313583322360106684723475960059981890389163136227961119555277676612472960989973253415724643806871523936353871364958208280565382680637434995224101266789044918891845773457648340013130740992206082047071801782348792915201924966135348545820750482310777257580766154941601560405576852419141292605058386910728996958877212014292183054132858063926513931829528911423796818773851808493546100962952354618978611757061554921464944367565676419438636956714460081183899064820928400596568641087521311776431237290077050221479190053393072238325323490133912619212225219118095495116986421368281699528743062718847309596030875540632465677850515146767699234711761878894183873819917081193753567660401907722197590357414708839889882732862545207841561529466594267367863337506404729161014238189723346964280653790119622683601883935901872933531702154512002840798452182520029358041737109470246735226622123700429430501840410319565642200836439499723201780923687940071799071338489806791288952550354896466252189437660848279402070506353058462585884152930992291807796304577379727348795830740480324828857050263491926172466374030956170117539744063663790990713760924522399784139365794321673325780966312809069012256703324727111058132275018585427250351826922104806668346680895409093153792943373850933268084439506383710058662149069185539395694706972314108281163199892109920145801831433809073284610446155636479504646682101456963974005491201236937800793189658498687356611068294655394854331250703119293098913007705882026625681135743939220313876588936419931186500477256040521791262783147595200382557435336075646541812585472872775715957438483354078166481615499394440016068744765477676658071172842184838210449526985580082856585492682802867903633766637824949806522833986503507737668062492242800039929220496455738076953779854134287724627089081228024434967588546997326276982560539235816064354615640845787537884891421260615304969558612780859158228257805759001360162745814164654760679446320870291250173792419969284435259627245690985323303087832299412607164979195625849685569622231258364447193078238836270046673582576834201458575818633926875163478846691000867169541527426850662669079994369407597616239970211953461727704934158923721287724420561674814531401905540860168090996625340873057540404264626973682258625289579902461346309100938791879130334543620432906813685913655252612561833744777735676874724999576911995250179917221163711578290882070005649326179459624013120432094249743137259802181094186452658822298856493543668566172029667261377921385395180755409031556803268530297295592784329740581806641887626620580921838367958289077740012671055406887732736865058318553422457855368168308147305011973431814297645193269220369955974505395966919911482832360505374466891745461160287308537115698979955998380628254361276752911972420840859076277931385702706208571656533264923114834120481069377737702700215790692024635635054028512905016763530403085379254987060305298653958393402919752200562853082412285218088975517558174625477738830247251943336726633061281691502753258984240867232860952184665433541528506230479148327594927676247917605366843640866998705725816392429682541022224132816812471350149595709388605895417925476428944385160528043057059691943105875489391740918409955001748891009041246591778410362058529216380611092079881775256987995882267972896917191108736048004392691676277170347794748027254563791344824985614980173283947177227205810023731504910066126286762616662460185900439093639728518472539877923326039946830330887431589734572293123803679786469468681319597886262961733715051629090538211233782446604170858040037884642373149077753907321740089524661182629037972574867450391195533982565165931880816785623453508572253083303034129233303815940337351087831376469807683340016793683283204558016575037788049201209080769583598272154734109840182659467830932559244095766469152213096899550566127204625740942280235547729449459502126230789508925673773002772450476892022923353966917107523370884773614221189949675583188623916115670697507897648957131465408566296185149102301807857619547760914998085264294476191875836899912129848896073937683738341080403984296056845353918656180393300150754871489573168579460583968830743714765197634772172266553546375543984445193346831426145205820622251219036963471601012793544622613659944888859663095143422656489998005421811498733616672716086923248249283755186637483925471358194784154830761565322546284983213267567718053963848495572506490661247183292811677435333252813792202209714863656329577297919632650072277396631028162949939849113419959925743730912082164192613042945040278512052231650237138143983500246294641442198238187641205549044260677149329003843455779170440744498230855098033830037694248309844333093330755533963462099296219073281653406815255117882254640045495948964599118664909801063233786360086859139091427266648223398432467944465773944240937349910607451643034356777273160731261320572737708210746826487558964743767260094352547508842407360105309281624962997418496096052187556918061143907671412947888392517871156495316058880900185031163764400816619141909001281059496156258374492671500375078924341410238898412861077684539477385945540945492466175861336155444189135256343248038261541685195467801944267320407789911080909132774471707848718815057769086146079359120378173189025658430748235066414174169515632129049502466823943984334092937091251757014214416369457881994135237628790476957898102388922478346947546815914509886340915439343498761300916803887335135882098039449378079662100697808146836691934992229206100617796725828233314950439168922772317131634636600106575001767899059030340009684940155600024339488012949283892975112726494153846736006431645567051464442972694679788579279153105506115615990302044899087741473345515384723248476057547098591544655497828396747111789927568331868819938239059323545348542156403418660067790329927900296615136591514475241827204985386494627271324767024009012341297583194419661456513484159767596592972492476346224555072664642764468924049532349134664025118040357778005062256686176747386665743494566012981054995218565174277924135081257450560301740460370805349417635999363425125272433104171792980650802104563052947139032707954875948199909635946093892355107587211166481277349776145655988020307044173304080404595509735080568643234056470263999660315057102383083844629467707931426412922576482263933737197572740516769657454247779508633513012071498364972113539284848193147581919263534088594644105933165281282037375265898634049876857905309210536298192157296705033083077011972744104170515075168109746361196433784796287363157553794533735818833284162736702896732383053645398467814502516744573476696255760094132337879823311427835038899313865097551323062642161314893894133467364361089659372190866550491930687180957032054443982786001221234962826858522010755891475821947453378117550550450872229918330083147420289446292997197514121766233988129782529117649552452403823494678946771456426166143712550941132563864109479595931806811719167323212283857128554339384084230151978806168001354305226400977284177548057504054835620187943092022049109611010804499607957443039456460840184354634343853539193739170801665876703145494227832853046463750482011904626109328348247264431579351402611485161229535153186452536291904643667287674475913577738802492037205721335844690421214635517116504047987169764883247580374944274929368594275588187864630585885623712025451180359642794634868875667326777261465563418860759412808713794797508480371985624375251860568291340755557729966426948523295966738242915077878379694475505185630173340326963621253728928800440511648711085071643001145603234214111618816303586343640630072418793432453436485027489836273560500964177376969669028543621302353898652791764071744421472808338566942592289274957246547710220304085676260098694872048191657217318815912296018327604400194878644932987052630865264057285610661648142399002179009244474433346138427640516955207534265962999530239753892687071507097363941748626584510763752764519053389143858506184635432936428322151291172644984027804792689068402840384713225373503035042582780379508877580703051047381428476146708280579935793935880423860489778857697099781314910725713406967519767543464576073865196795754628625922178366976313195174916585795460922421670798173583904144674488520705555987295097545484421420781369051309134219106248896276135940322079732808639565671482664350161339299213616973140050722975420163393126368950193586222464495372425203766611690064352291247394747917381931261795037352975291348795201978742075550004391846659896998169411951202362936159195972628662897178463384456098218259833889042003056678405231024697886797845192737790825980897895163469229636407873494866475577929366891741870587222699319541561917707448311455133268982415941657609690363978068894572550757848352628382465878426787775146380515867901235227631290027848703320989196867314354025618882454455554587260649130762230707866850261421207466034261346284288459337905076298880397137995628890430567827901802855147256141160692711832921559103790950094002539866370580427707314076455629402395775372359627152896404824307975144991974968829097112408425200066687352810713872481292570813520768811776389790246502051345987016885424119229135392295178224850267353049692608110672254772953707267293319243946269484691319923051421828747686376341247398887553594606203228573406916474729212276733044894559689712267413198321632141901713782082666387901689926820746410205945088451996718282925673762030950845862466986202143265797571113231407456097933522541807403422411403766266610088391060379998216870414092556631677152256481103701174047730806163179608221629965744833125427774125769217787896693209339404890321376454896809633226345957213801791566098487741564128466938326889400957256772745413358795779121670601669420486443616100897759755566258942575436135476432618769984859713647909427942147167857275752256933427512597083243752212566686137766455801323308122668101914861464511404318520251718740720993658291568358653304826366910668204846560652250082721402210383648976650841802324966271282328859530546293782987211523353997992664717602862830502935496889294279749674382643067462480627434399878040671872993220939511624546349651979674157472199100716421379978680195601913162325688191426587941775233951079174833584731291259850695142341598377648297057348470754929922951310211437272993266758110639146920111129577595120874405314748394665723580048273268287637411297994961451789724966234744320058332356560834048096820131543666313621779211702618806683659305656049587988288776305075776404863133362772568867393004637018055020257853662349298221637488783900238213807588468103924071316619456335697619164992702656614892219832316321243079325186938984235334091679318709212816981171485947773185535855121918050712413078521845801059870625069774596481569697723545419160338654925713843131281911768623035856843936197919713098790448929762084127052637069112469875782438427189308368751793630855013689589761055741853949786197591518940290265958601790315056551035912721191870391770254049467436385255231705698049240619007294994270126694192506166025662394600439253331899315238603115769244213409639522945150298772387229915444614115282062690838385564775945672020704581513910358250740869787935760623785344824175518529601098787922521715253604692493960652480891263251742058591558284326070957038791565849096482672957548238514139116208233402852718279098589380505032658250128834268245631920804517245443623282091070411513003313935490746203894856087944652823813306662627027799279155915392068310596385442946149905703497848338953237878136943895703266398361170475378554443916606101372131333097124890286416297734210310874113072544966327050379418601823061127427653093495394260312692110406735875398945921296764978448754410845806425203172807486738432341598372452767712189089248133635685668837513886323637157615496051765195902786629283067593420938612551389686564321291110713529943831750941806790716529043030905904709673661209081424386866471508673445754119132328596314065191818367347094114303876801605802885784076958133254103226862945950955022093097727347080040306834933010956570883857577355807517146441083484996845267152983515357471218924747551611195804884005791535446435225543992080011614633575728972191747486604164940363504018247931920474144407053458829430188361924412944657594846020349507637884316937321257141313798918174770569408249578470355414059659939388840723236237230789220856063590583881448332369661883948358192540699109342793857308894815290642895951570185328863853079018782726432159112964822641819288137470466732036038965105724313247932734438710814878324349704334897457844957603570614596207709326268564392431394808849640718465542127226124798714017981812477883634002024331847599423289960454217885042864697103397014352465459205854054206732127677086110127627282688337324652602887527194500002632351215725053957401694193294845444027923145322083792349742620884573201993561821631261910127120268582154271798654937274099256533561827839289651071975260102357017413962167801841798313462325349528116729335449555757708238052691929272940814032534884573495130464581829845219826925252151118003424244720508659861902016990525682512088174092859264886199423950125703892843099002695662030433380067514156459016507789547825984177637429434787614655880609081158471235773799137720213028762250118825194828587646536164155760250027467998413967014187895721999565022760457574461321002015520972287258493424096211102082161481186625960613808132762024062028769115356492207457548866508507907780789598469599823470355516313561209785211761437073233646941126858473406574545223589541374901294354389294466890108446661299190620652513724563547386847549438413990680580970993259077707031178973990351636206058047350087644268493400066520890137540051971856678536901443701253597186954019944103931482014095876362481335611849498371148363231450343118121594720114704610467806944437887858061284013298140402784258177063406917522127760881926828780708895155351642607334225700897310210936706285132601958389311059075626135534886752612607685508532429850811348801411023169788720545957698372090080213068551728488890311025596614678186615153898011840462230977289879605097297685861124386464808385625315481435276965732863315063705692177674988660130112018474411594192380461506404974681675029485999589226734278494705152203191246730398559162524256387990720747728031269335100500377094556042499091131062137720030706645763436802860945108908714480255913577480239783433704154547441733776349675174363368755237208365027072814325709628030552232562242930026028666952653716317369523345078537011258117482280117977236115622380155169011556213799731589090444002182091858849345258096253837364705623458909187669795793793326454512650130253556614536245100038981678935668272139396018994014803574655755525118615954256389221347054078264028775470525081174161221740763793894349231024573998769162045470294087316983687594835730604324724925095147971772734491036652157765484356744223558067647367133833892459529004912245858406497459206876254784227723027933830954554814595680086615814750421395028305554819842158682412267216866989401198097368651015751815463159190760960707477277778511904230118973188491019748943762458482971485640199867127436678576955853041332580233861524080937993763873913830711169999608410397892284221061760859129766787288696791623415061754805866463075420767644156816269470502276969358741475378068618732040983016228482222260681879924614662654217470626787175914684830123471901934448069281259389949199744273627467542593820654292715794852810181351771328604972538541470249531313701321358292755458380875803438353548830970692241601134765188543278140842498015304211336876606671140541289585293097184894725321239552916299862479495581402397576120133593224057844666110148948464013874160574650057195320031864504637113842617175910914125577099812038673319427482914195260826366181581503755430406491878809817426750004007746255122725773300918808481136035925509611599690351922129099829678037922071479483644717743518963868441506716687721213525458329891869382735746780240328199406962787296518509024878016946430682477043801169093279008020807669303397757418333798041140738908545186363184549934454998073190075530035265193203258241559487740206025668492413340568155904397357161388160185999413415008366979023546791525565093623588402171519908167679085813120039246450021489960067114600384932700677407336476043996836706664932227082945867101634000937220785331887548984297325831739311962900545785425378884555909003513937780682604626125939060405541939997250020222579031712982463728320939755525270067136153205655033065305872569069072634316970940868261697074421029734568045812307225696416268073331890745039844779334332999378381805072551448354927351857766423950094957754518593861265566954593070532384495280107689020973002155201442681314251348829010075850057591032364320525229813244030157931385944953766550179335045849889263520484215840946296175755636716744492587843882241047376911736322105796964816344211283078371511477985651296982557487860539566357362386186731742742064190278854130690735764956141890220700533874029463871566062621071873370260921646839467896628991417661163292481708866858446725135679605582098651284429814459119726344536797885660550634829693771705876973393996375572819952667278252085677771752921050948566307609736829837969629527871485134587051376713505659924816891069973707754443949306321820552425849278504857279763285364089843952875931308985871195477962710598432125700969755713563836067223629533234981529394112663533531469868115168809627927827342055918364393167001063866512572794092160519539867167334658126923448920687893962622023802123608355340581998401306222466041993325089244190510529355080448452158260151717207098736228484383605043231076256444647123567038682679783435496846826643610148298486458692121388108327239241063603681732505800676795165496053124582128572430615328787661242938378388338808812120593746475359011836292227532752787936512397212118123034520391696062833256680042387702857515905494935837251346514033426552729436627667570723110553465607115739701197867184612424170021362781336684248421388944492026553250996462609406210335619554709397673179645573304509682550824711047482292965642142980456530988159519756088523163752459929032572237107662251345678025020423807989535535610656852004977646621966927771406305544167324285932137632732429702665307820929105427233238519215645349879264034100258031335567899983987556486453003884912745045006173283176626286909768269034347876226606444438986684979269411724939511216506383921551706974951672589236236694501137128170195275861476072997669222970279938957026797194427758775005671613807365031772787362470946061108439298020603256032944561819609403592963389412425499056292397059777528750133682613386048763698967658110955906344040932867985739194800158460988824244910476997201187111734428143678663148911128852372562267160762962138684940054495984186813652954880833237475534126119664927219796869029444520042771826326694694655026033098671593096332374562014061509593971745682458967767681761772087869960172971783713362517667995313699866945686867309944892011211701058413609467370013753266023715849248857353193273018140026970507967258982859175031779449198578692190264535627476302503941842370269656148795802660229399182533961640303299724802061789848999948601535885444045001944407562020323339792999966392606578408680486035263301497460148382122253762512587079234127425167045369611556609358038866376009561214679712861017883787106839646948284784976106041589025210609445961891676555125900578904384456150275620330321541800887475912984169220545934148222077492843706220636639179603543139785493442183612679526404509739911702031392250720251077332318656890445951617952250807305496401359153264018409846153201108076276591861884257964124462172688778851041897854406114564168498176622808973273613272590552090428622245479755120992589873139612901857409565331545020121824324648076486936399083270131640760669625523561798054465400393600509648638470795107599894904018690608535151272789964022125749582241453448099978988665639401743737311412138288882034852558354354158719174497675666287581719672949519631227888667433150146775614008860602942767092497440632737540325169200420060084360778377391315171825795152547404372976705757819757560802077569418078907191565841624070805632928022312099781143770435038645024421647376527702113344545277823032118765687312586028552653950541326388356074441571704438460510942800701301175715598589676667642730744713395026217553506761214640308354220682245143760058389798057969736520209137052488135393919830348680294820615522157125324619109765619511006667422801935348955819864890683362917480425330877274407346462890975456788713677272383700734151128638696375903673558241679391804913650369726203645214638465897615967854164318117914673099992036125376650368942090330585905293611640340031279508474250443672928127339646340545940088364409696177362976537570118073056181421973179618659085708072048169967316788882006662661587560632628844056593249495438145948989029000569198885898582229974094934169556571585471752482107039194130715063210172351270630889553576876484566102616200761964085241922359730681996748612043787483331960053749979849205899355055971090934846125325456444752632991325583106118186936498670178140183797770873361267583803967695847001535127175980154401122476750892017281394371284681480655428711517185505578677964162309351554832558615985576542046488932389577769118105978839235686745013332370452934216141742220588852846796987605897558067580677476700740842952073170764464336722746984179363641842549952755365982151569847434213703175052051636820592399183862309398353618544584401995391108463629556041496993696056077876780556203029815175558548978666546082017692170183826023011213598457339484982748323170356550341009810301546393143008233986947352660033618681164630516543172615756693243799454618371636294164412629349053533980661039591847180746415648227858556722852454017469818288362191967326235847698459483762279822280289670593397592344737095287237103556154192386532406283861869542752944136127019832164442631656184035355621679098935261816993072586430493716110552843215459196338887101956036212827152605562082916033845114323100393115769836116115666497235599566693225438428322524426091742014810537312774384387429648939299687824933113249193523283986860323416802585890896280185955587273321282505554768443260081757210928262348567334355262092526562690078061849457311726941125841539290178114298658562995329474750860318929567970139040268767454041531348328596468759975611037499381913482377289080835406502295892473009500884328744816923243840458690598178994228277237925600096791661962182108241403096036141337236205917799608130667666643725622431237715606635517591471271584026236767548896493243230833989923704943081342340636363487853049296576098042813434718114813437493264957075195840265841237690820321801858298683964518859641094304008319085095440663074318903078515073024686742912167724521281663637987549011952238229898217200477708881973541627727806570836792637014292339478230437605975275466141903452406642657305321420303108601179021121673900574303323271349370834129858727590663686937238054077083204168592748009721975699460522845873591808719040754869693960563255832469689215487052620388200841909260343148726923928604523889966506567782215298420561207881770801690798820908359872668646610509422964545080441375981149741395705358327115453695294792739960092035843781324672500518230300574167397540686751034120458214938968973722815166529875635114630495140210363826726164768472720895838003382251847300340494811564792105908856140332694574936471535079854703129647985956752502096262437591517173608966323085961165998525494578761443377803464950117320558939710377548868635912459249884985432960934693326435430260176772165093449887938306413647737938591822910440318860872012036053722090314226147943867469869308861471393243971562962925510077984600230510846200828384114253915807071756687029627437536465382375784493773870585239318471324240890621153087784626247060037508269049153272390242792756378366020200783289852443278685425974146086756464859474380877416933898107437833237730043169409011577203572225844967775582260219143293073792639330407921421048007206390507044055421243557449119618878190386127932834690185945163840639226756557106774167074857934105101266201345605416970896857494018088021025468145350255710116543655479868972584114227196120790075895707765934756296675004902047272329374582897293203716150479229036539102883074034299287070297342528177121833553642037056948734921618754071598114546551264154229446900332280604111996433240617918546280831257497430308635876781998576007550876092688597496558809467812272021271548741516046451794001565045727305623706846766647631867711383336167373745952113096591500759724000209591857498834044731233222612515026254199529510309017837841755881696144268138895800587045825158741507468695268436171848808638325071518203445025698369048446858974846215389056230590424048702997292688260775662793914315782294403149985226090580598425205112100100382213018677323893897928555932367013330196446422206783209674572754712110135096409789777048063281394506556342507181813390881410848277555371276576197961282938184106474293356878464068278586509511685487834070536315654006922541593110337489195383359297816790670852791721196213790624713972156417270775449236958996258199894161015997425158759804119070317302897486622335807234553929309530785717948152998085554117660155661950426343215495355758734221445274987246392836580355228806689361160217519640147518259426706903756884190863160043152184808562968986299673737872079654749839432094523625632431433733626704009557216039340413746991188967396275277703424715269830719093707815398427902577159200594369272238854520801063967645405105767483529586172054181459973835818178517062804095282731215165620014719802023717532350082185095039247208078575394671012268511533139666263667663678420993587442893149186926049437874917070236746117152771998313928637632826153860703995806783168619874004134386862665952583879100085066082170867471867122673691178042002095548864599181692413671485185951137624920584742228694848751121371885721500014689329086945911342610475166821744786924762313882135739411555844583806140604859670611416606807188448056181964420759125992042909761348817806535864410049517662460210810897282043112110256462080391875416156983370069119955566690398583837167204562368723315146453079709774023293896578743944137563221797889811502956053545171766992351647435266721859996478819420260050116034753887270986782410185364400474800811000387720606599331100049425015443859882597470324669101422416766841201546459869959142821412891864389468919549800417533855337904124087065729340373292156131148263244556775929918388766041839239728980912294791028802218908000347824690105143117777570006730120860981751081978994275401233831282112722992676179706441600955516396223679929085417631764185847083853920851281669850535081392470252970333622824238861935773603811067167037887675776688808935093061617053471397372795284197520053988877750371509387558068245914923293986868723496712432399023693147196018537876690612082267565886894268972461544631748148446923287268673275672039258197639670935429794100300464211615079842771086573744601776160413012279839579504730940749306913848753141579828824588794603671195201042743908488726817124331341543095465046054268179293501460822829537859373614010250725542989683044731844435962875067698076248344747692568183795110201184792219176744699289919887080190196610746696822370246272588736201488474398041280473818616952088388668480560941007486860402275398276252524222324393403754372186156028462342612960791208496955186313909901512645730457834187650416734180675231277039692545390246183117050514841945788588080460813398151113236100405281026571515334898532323754861471415145945406014848127620738177455612895142980591762105902188500762279053518579905995585532589159123517071676442355624816288155878362670758467105420771598735652540638742949250007508663181570719317775422176556343066654999159025853784643964112029746040138706580061688061154220699560796996680376074734684782800985478693918681766315407626789629022999518614705412381100541083218167400390579573473843251219010844118278806576101300968934581401441241316945852055779337146774249865884521771650804642135630582576967415777949650501955440537594010975535402404863576487510460741062692072295379890174454113988474978947709837530290004555564894798966208814262149246719628738277419255722245159022315765698653300502836238310080880107789232982689407202762998853800382153943816171502145724004960746465940909956589290962647931852509977529803946470978455821735772991193016414204393791526605344073523734048014953567383783182081874164207783975757135300312786593342260488980495215114637997373842903216338744604463540685968918755573214861499853451335784936059466124235382534662330854963377150257808951057760230059789711704539376332863805786694456021049156514641716957310141378447055524014199783851115595948429794101120299847089849346101759358178091054007510975181139647072362748358449518682603206057730874655400986542803659378246282288474737231219352797442885576912960097250042370257533388288309772469379872927788809999961368171248437667076668435060152554003680964004154930946456236939332039960272816127174126920686367582774387510556099629422169740406512371535658859181657620042730054454107888511683375851106375142069813637494559591996601945475802318458547053115887273783889191784396607456023197959797300003542562046747591397857356741719869217547478422341048639070114063876776046134328371329062943975639575827100731173413024614928620103803421963601639389652394432769271558065453584399917240516892872468138635777172993181817407144825586164040728307754457671720928168099308130011983149718423316677658497789295190192107636050515986446627758975122897469109109205582418158454591797484048049598109683624735999743292399699798229264949626652159603791693702683165780921689906708383704688276594029733970115397891435907247630754170869678173624868849710353084618428232505106598017838589166408836733706886686491127699553141270590205403147921037024435053602226210513575833196716787535430725537038505830308572662390614896069985856975490319399653608189659676054262899971122727123291981601966470979590062918887072175981017239409992169442937074206760459668469546787104307978112136379193905347084000403958784854136527593515273978857963942208848837293280118198549060722092404644896945821865215324744915502367893447281844171170864959485713272364593103461103822121377415566184169037502982220923399463351095435223570609018900035514201953697465823815301878390092243213403734824940236203389931145940338997830545135865741856845702531102290553937758626502711674939140031141362093538644321238330364881140875384375737690479467236963300586716182668904689233742864003853016157486660061300884240842084046965395819835925788427488612904653877818779298973546122479244379359337530541122318888781567928768380141703546559430892405036423694046006653087775309527772486848709106876568683034259834405196325820217160017567315993504719948740880911499605912597348405361260645803041990328208318758797792901395973795574288761307816707762706660449482035219764218511047596185389647901664819356673909801999811775790962236415839962747356886920009406912365515188065822525850185381339334449967458860195679445920691377555038716796913078897603389802599977460495758501707868889385988515005343120523455148611224578689928869363655265892412534727542359550588062087045726971584182215898992121339821460587597011668824318065346840302563744266329200885454519244365352130257409080650048043948808311006044427505487024353074408679382613376245048909420956707338925627792483420429699771930354222667761388695510738682215317018324773025852759271782414124982863726512642211710578498486912887016313291979960680468315127658662139908418607045064489408088216732475209484529508795253083976718584484679744579496185698657081546881717967874175684119108969181871227051251178394384401281192676676140025287964708097524145580329955103792107216300820353881543735803152274173814930811973432190247704399383798596226846852628475551269343847889579319791225515825403347423861877636654572963047124808757557200570497498898514807002521787902108009317007563892217306088013939935548392414557004699711160905342545129167517695885502501388069298996738253799483964222312672614389935380630904872981360431927699161800697259084364435160326794249687376503986134552141175798004668653939929035820296787403012123691396660512630727475418343489150929699499883410673863310360472601798574725467662344896050904413501993943864113953289948690999056406551879335580966094611594510164093331313017310667116915321085349182524922775122680559333875082195230149663711972913190044564801548300561054182638044572401859677647155734279191067623076191736419465942088908029066614083791060515202055773327517388952972183647083409947271593942581294375566065507517963608856556615902056763303562562204076878111955390548706521164861867616190115307804924399847161033827621502132195594603337785833556416510750284673552038496227892756637410660702872743113662427789856097709911452718957984667541178410693909353394641024568040239254463799157245635091839213477664087632546034269807572390197324798239404010332173990130107006511419442052435659675272376930034501661487312717035973721536076979812889500898190443586382008512255487338204396165454958665615168400928320812979817753937799823908051248673099900932519060885189570415667453200552184270441459691152186637705796278368591665592524467570807732685906350933254094208815879606208047405976725671529504494140392340760351497237134392402263815855959935578075044078322649950962816601266621990583023694078457637206701588282062166516297233489583850710917809498497152385884821729788982034620609584379624427745439947346323343308247492483901909733931012345567432139304916856768856334482349231757631087636799390808520027895685819378440708272075667274467993864438145113387150073180960506120262067658400321357740460358870969728899973354394868495651702344748892604099725878303728246519157365960810535449561641694227466390084688922694537116952971109793887625680459286640177571530632959390824264770452503659667071150611963870182678127687038251011710661188567256467219804254361760181564145715149797691558602981734898238721652221073473556842582308817710310061810909676158434506335489456580681287056190478193039211061179862127310713734074196326631982266305892026880158864616005265489665747038242838141115632807243201697617262927796490396197077693379013764340458671454348881462729333765593838719615752069566163313132681477030802975697654381670015391027927018292411910168798071072050553389315105134391664323779769884153095373933356242412601365364398658130838260498836261159143476893602585400239117487748033129368594216539091848825897681005058163175397487355513004518394074018167374307791355247625215170218407721835232072124849355218500429300745320574966916873352695522044762454682574211066885288215502849486909628866751835988660810605113311559331834341652601794629170550398945296956106798449673684132284711670163019723296869240110965783464779946456554383249863580146052153178448069181746067290844387525751929663572258203432794310442380704429443068538237132980423595010068818189473603758189410426647425281315744676945300763709535260792465582655996306161245030309017351187892686946255011983166206155688292310152197763818783436042666195625133394362825277693692031118345847437332639630323418249487927544494203058496764355151666546120008261231272642246580067928194316562792731163433135599743443685327615750138107686813386694338913397770571294850850135802461561282756798383059278957199473527750716217442442719912595601879847888501453805548647602907596682692636803348962989353155942187880374499452777012015670059262577971032847919917500878685642152440176909858797231445096554223209810113589520783894648825353546546209868418420990014328832211096802051595856181182387514414127441316104674657363001984998407158195372630743469964851779061771847570728838101197323689509688719658727428042118283718297274744780554895831492103587920289099179860004741615109982497808287219456391445715862228567672556915144977239153039567571047602096064273158119194333852699101889297018931328995126111062736698270673269674510051589428870487006552535113701650510500669290638477077167177365952302952161622407791407736886844706467474512182717616566425565678698865340400162136828404492633461436798165325607941057680193764494488294657785287226304673368813800783540826415272101564188039531208109033072225452284745002277246584064256318569233113349307334256256487748292584396841264700440852634209926173215509393704546677470387785915709829846544332362744395917773940419486233741788111966393794899822394320177738810055527898015686377493840964993390414685476037138102893510345838171679750176499515918213942600446128966080036522150495467987227600632922411289226043336551111032586569958667239842626441618777932362295626897096202519433490390231569758186993355969663533394282497115004607464762696007407736450624315132421370394819360479547066929634921423580402587185547907607580011340604367929046581638182800794692249588835456799447687535690081619029555428672740267463547320576246155999677643827291925420366534535724541909266703376041421805030705854193126491059420968514008272576446503187966749566135930401093383106156133689107832393842787406588391707870767062451736077344901195859682566637700990052377826015130303181994675672848614883536243782185059849211612211383485367292106219620318598734893048564431642616091641247198971471302269476104144399622309110739074204565188180795954959876269144159963143875597411019595392373499685776227566438529521799161818861746728415127529612373512574973409819202935495570452838510688328204427713516378807950178189782232246647377465262356909062464791817458008686335488346128041692056010385800010724600757505982194829790052689840666868467547586287553748360575632410104510703532493780590417353554579033829377763681509023753922977377860252562112147377267307213738445643315015263109882131626983775108753027318165591430360279960738149725391262169182493937836319394323093432622828138614229198662379802415768510252629596292857355806573316290360997798119397612749023841721586931763770709628978893107396561370285024363422248237548861804820624768672802652677630474103368695306040577600255897777983342281350393555669971965554476102360257578756202136918419833376293658704343717247804527268724152683067423867077177804790156757765986278452300325286021587847430106138772060110351343699930587060231949069960489971030417014529916136501450970934366198498267080175053852959798153847549171333101561851525508685223652764192825024730208091520983073924849516273366829895662587318710373071786018649719356426541548974784122392775613415694894665686661298377122686790826382001287587181563333174097526706946461857365435618426875932067054299819889325402093556406321897425232748957273150293715788913087753290063859755136785335090763195736854685775381593572880036761923020448355959746008760666416227708714273169947739009848822260855747169939568483820644821565520183229018465292064379404600149914198905273253244923755736899858635610771609513925630131263549679099785174079462318299513878483299572928652575169396095762029096987540298220476644050794776212194466603814445108679735838377256482538602943680675734496876925781758475859319870508731314853711216200616969874219783775867541624924242421610792983504193030901633196851394056142450623900630351924066623005065455689669799662441346319306293259818730139036885825703687451266516618734751722591307906527007030610942439657732763439769299656424872916581817093410714188933995791734970227997454131345998532159976408480931433614582468813982331785486356345564036318169341616735815122330478453476993342452062259524914049860225758734781550963546313360218301240499710415306096231238610931154326600329716287480203366933012539776860591892055487933399061261126952412032174567802920836173526060385306453940751580790714028655534669507435319964426604172940735006222203626618800749679073686644701460384873438496908580100360542842658577570703360671720914380558341554608963040360980530597796364584704922960663066731795767648501524044189711280359938147146915332753792762464341722179007309535084770977495026888631498262450579488864826257282039762672951720774352355335933734549071458857624759367196022210236035894873608249747807010872676413925349722294519710883676868756307709914068719215783921050188551335262344422373072058420781352356425938495550019105505294187589567552956000076060133548258445230562745057548865676030678536640558420395294349248499384986291790555854749029113107886474470729261335035294648092275014152192462968212533882996092972706974544513068709504768891961791494466142786493851667192478564987480221865449614545847206441237604228130047191647217087635604903322749799058535206450558668905866783258721001587806360544095878146085328468531814761705481424912643984003646086694403126560581711921032511288925299434902498044533116928072791478930563449323662466427501912810455655558467838345699284046749199286562641346008043260054346556454488370472276036370555204939007278246690333381973469575256864962344050921445562985171445151896966985587978928930964506630004770562881068014876456097407148755459225754827466325860348265311118278732925492201359803264423081479291594568155952396128115770714103946676777690509638619241899546265923442020587494448388303280108373865313797530355544226184144962053945980889869956303990026676468590720014791882055077949306463842205885016004439720033258749986102829305695725597209467546725897481947867988173717974383884874785089890733528650429857598068836626712997254159623137237288127065990116803072835570508733695792584946817296929169900585436710423408697962363966902474803669892128957852870856670463153647622476671298491537597039979935779734654471775402487686339602098766480056939526293191918150124909805607330972147663377448075888226945485967840993951108076704366382246426819409337659183527144988430819727722720931123465121562040129950654095138353334111056306573006499631297400906818221683892417538580739800782868734040737074132929485245893966083324683488308321978259665932633119374343125437116433333971586582722329243126928325034969896297035445389568319615267385233639825852971767225478643739700363041277369969410416291400322826505548713550496665108052061858071277013097771387079144413262089336075990987330289652428392784783510851359611170202666647996135307410981508502279584015870869845812078524016234962477165178818781953886176827752641209459829462517940179055276790666311829081795888827702965836998272038071736223036748565889640884760614308090219862587316478810146150798971940827285655427428315077190406122510756187665017242642501719685129561780965822415411383991912993613354089496886697686015387366407801361504930552103071244637033072805063128983156716018675517438552132522631936570705843468694962241558483272414938407930608796313176675162626307518921195796508642824086054920805186125695834029052082087325303812177402884240568331459370299361063472292508307462847251835877743574554041811873399593109294873655327787802256473566072840076959110025172484884769140347145691448372356695946000913408577266167689981286765441457756069503224944206983828331630451721127210323524895375324870740203681816011592715082931077180805939190382200372270556149859850771402994714475221215945183343855545154970573952121070138205250205020986105461304541449103051977766451623035219768170532138866531123929124476291994602105571569137888645610403059339110381903177730684681186366394624294757974530288436026995869463052118029845551490762637351599545190762514362722960880814720976874977447243262952990442616365952034382922401574342527492330999218558120573810552223643811158528520889853558289480644879029408774502564147698502127741777613942739323442333719941749375678333933790947511113178650790474507307489943013995198174218255322963456029893378348349847476482731341913562456365611610714807751126278401052145725326728987791985372728728304264389279848050919767475532779076853039474159241564475113836635268647137107107709291141471120235676444639228688191779745971062704664365283016184080901453900909730172509320807403139210716142031643963324634492970270260541134706761816912081988850823280169381327147135058681854014841784133184885379360820089762614962113054584167069428753039085740025229843860977429906767671215653714182587908318216528194044987791777076820028414147076814364369265642656953254046584191676578020897276264165039713424943050093318032743886982126213741568831050660505759412793031355964175200183752908260931302276806561363121489073840394709004098774648755786006148497096096007992293110298815174181485115505993563927005864332932647196965350162059322605146144738982201542188179331724825267004502506345641116403907513119582204097310461380882422446896152222759848913898401014935737162787701711877641877849229167290882194134230297749073622357270767185502908991115992072359869578406825279774984412243668564990543954404019978442270824170917921804895292973542087687397027934883840450361257795110681543344463585383354506451582717120728033305692992778396462430782546039284544564938422034227844017508576487274687597806685144604988200744759847753810670838876916408294072866452792416591295380028069170401808539795766360216751400113605594504696751398051926436218603860474967829487883055211369272628167509234571471666277298642252564046526787394349265523184138023876595074181533710502514876661791040387838538850201290620985969336188790361077024970870245543360894406917365892856670028589127035358787722226020180719150027948572090135128311186004134797911398419758623367791737317410307538357683785747019619466487759157179257387428745700259940697748121122138279029145811764212839971457085726577753113724368983443536007658380154183460393533442942922527915202321189180995672225555459519777136917176181824520420330610285896230334579823675939159145124065002496172869742471392649820328354502782773312520660374162452188021061993318095348085791720396692890901051060719128846965633565992152389805970319978720132116240797304932945845736619143835585649663938100222981203295931356669313319137110648045689487271296181129160629418260100098656247592721343790062022842225939725042423921886044189794301489571591608348254472091336612954364524664743026041749340735721901148384264160611584211826501207939711741796867778860655974544021700319661959107638343049260325039234021396837570456647528915282504228627529692799285685767237752019947539406389433622522438000709155796155009195961940126122457101920755596116967941502570351586360321546952678715014727858363132146981441366613194730829733520782285532178431302017541884212578654771256905957497246974809043182890287448778746031985290095426813427737007167920222358362932632258070335271938022966950473597016612122641150931756623810297256390714374205928165912289896162669313929337478045619879137272629075886589827534190943756808237958964902176003945374268096034977599135639810863435875880672348208135425947733637656531754924414207828978973927116433852302924605404233563027739886464999410333813297415243215779766424841104791215614147047760930488084911267129409119997768688949816060185254745149444067226047325704617621854560434537560152061673411088820389536350600392398139467887050104923859667727479023182177820462403051092263475060571148776819749257291758633370089615973901062547115778110521397095145966844655846609870783492550646004956650252044666027227624083530128432682634412526708331129721087806231966295163755834326032516190158297858011872870679045387533834250162700163545052364759125495515182497341880503352572691835918192927463205153735007133830099382967166455393335183596445690046045134468319149174900496626886752576040399085289737563287499189506178246860117424215094080549954105395435943892939578941089204880746338744194482070100734519266871313254936416489174102309451231769980607846628784817055091278431290362654205242207481774783708040223629211499912798111720220013151626912273971521093984197626795205429412353559411672104092671796371031548382420862047978920702445590972032993888817996319984561427603741599121546161914626037269409305467000746958198845837079421928727248354184932311840479948721978572594267774773947800903776432714813068904694637402210148012506212153616222683613962447296294241322188809783456103462146678015793392300134655180616927551865088383812486199434972711959094439371523835230914338607908205724736184600495516149959868740550098709439377670927104796506092133771542848697062131782117332630088454516559586827147548759749893943422296381381485375743421966297419082290652683609247054884212039638853533832441167755136289034771020006141949178710199589901301192559736294821082547977616969556002989448213353926220281974139230671339844800226346896973915147969311396624418582145829043265617845051180851086866848917198328863922609710756236359215110556992108824320380802923132144641920674590653405576700704734853406927868954751618250736495745380672303497106699751854613391565119565717710044234130389180264022697137945753886146095437283987312378864762378936099666066492320627183466138780400096032130317986421008123940548541260125119979035863792392307650863289594898805376285513130517718834634125817928404095700506393005461435033137427643808528348034334063422241443950683633607359503786576371907119140364073601532085635960026173426261607568130672780392738357684735923988612703583427182347373489839574966141535711350602072122498380490555759301321939206160754275551634573791905226317008623476024013642818163726595055444801059403550837898934825372478661068614696440163753636356271510798149830190648615955650012400053165534237794670751311449776170044220335684595261005323692446526183964193507616592311714625929157809798140295595509563516403842903444043312864983476010197823935092318863461857129073757211734911833200299709494216077133794338740037091957619674895941392082800996553713381215809461420125988092613441119744689701666762878767395419120899649664237750311092877606863988029118898475949246908140181343921340655318705227782727694300264506085292398568376204540644608832510885698829476053843038251452419271618704646700137680002840089979545300663489200221521269311399174089370717036802999923094370734038713688106222723316505924895249834855522305194690636393500735608655006882837387556256668260604795326121127780401070930598406480059437000828920386266362584978043165377522286529497623220381579453632788963288923489609951650146806961718953646501747150135702899399597197184229803890255661744519161877892077554079385815619998835866330425688303490888309265105054801294166133117272449858732673468504427246992076595415857138590764085695447025751532632271625033137843334388732375415364818031650720252369455002857883176632429136561594580065379378736102276662678106315464162579482762246354739618093097183721678449831249221058039024158164361271446934522044563036169440035361881653441832411278621256056656101585435070194792997837911573514939478749974226586651601473009183887098657992970080705800339880700070348750539690907282134908028625984993509603482366455855498036177896569849140751859360319411490535251400371541583356540138165680438547872476133648018729999232287954842618636632334717555581325220952558244333058365413767662133371413670272568313412395257255010669901806632888604261087282235475683763334637349622251040299614062719840562245349268928847983428066637726127437207847893825135630005651212551404135950820143256916645128921065810667890966528409961095973806267300178139979064050409643182872105342935898109361292035425281182134295958343432512161294868560749960759344325746279091098239503856528580735936675065461910136576574766480300304205652522626642154103750048178714618756973820056238510850932695783770190102455903250878031645043948905623959021795972642065481339322390733017033795203875503822211009019706539641607031902208458989784508055300083076440344442717696441081307186343803396893485713842855393057854006159904578502161508491410391727686860339649280096629128793731478506512741735220841688326637221750064067440631801240136954112120569826167945483095199889567659490349010480454989359953009156444950001934146072262826490551437745630928841393975500415925406050043363929822840793340408378500723466829319435913551327568768701295277233198872425602440834450896094947047487713914222189364467327487721705472764400636479821326343452051078884905397053752699603695344864262869084084462345615780313331166137711244230039180003238714308181626707057564850895680833403191212768648187088067062618949144961441822918427432787099396585650398427332389871208037075559470848806595887913686141374676109188308998528742785532837053658539557271297455427792378191880739826409579406291715201330914645324051296478082997568187681757951846477288210469166933771470810745878315725739257315139779863628016466710356799657484095513341061002297708083710773454554517389212735198391774277062644672118055886471519955718176503726817872130746625189201421652838816747184805050070828643626885550073489694989426214627500603651469566875727925763289593542600606470104167773290525931065475407167192135675768859453524947919851530987715436953975935477697590522115531168773358095960833277850654817099023640719511333499506337321909377936791308262798271557926923927293141546214711888595158409173929454428354169846177969860117510002975157530493632920849678513298510098391658830815133986458803515003423226703548652912028158675583390885261165361734293771637965342317563677457545450047858193641478039431071169304603393308284757338453303277332405581677060467739142431358411032158634639738345276313289451180419382712549105750091483121081634144924859939092544321201996405512595826700969865341815920492597901003424149771952906245917425114820497325670648245921625572852573885443897453909456684591966293578268024847646359709158862627530613220316820936984869415582824938018267412557995571117499445145094471913177063585582923413156110990623598531765388794571517084792398333910520109019376694394611705739312221638065770942540407943858619582015759936640464291617997317179471538556051923515593721668136201520328286935359939312054702912539426821129967831773926438814640841877629787465017076690196440067149359362877494081990295668347272282042594939530986080911019300418266032115683943969831890148374180579447636374666194238958899328470904529849617500779533249959284365087215750712796422421147948497772504837554084227601200504056779931467297426798429427637809462418935618901473919287040833905325844783765021742035471052653684080890274543165938522036110238543416913192807965270718304736130352541644698297599005239829205226104107804765972608270809266351530339866867079658891661773088638082777861739310558948879088318800215308912688516114216059408812641606950554141731091861995468830527127368062482367678550108647472474949406547341473133672059138801138353311784178997858046258549467508691933555248836951266466366447290545751267231151739454850833518650974518656016962484742163626591919550334465392259004790860218157581661920880485466021782744139963369388263207992573769228111021601507759206500724041548639648531081882853022487656112179379164450170658194145285057159434580462173816992092079610464892111367605954593267883681842418647662136946818294597943670055041554640015433546298677356336894013936668892708708730209286682841131271549475983420503720226727624386770828588492393841023301631562937255018737206564871357660547088189528976627443094715415119610601485834536962364033760090803860741502337861579608996505787498235040177751394591907452625836504600197163558252571021578747643095381355308902022202038864499225118610437829691090045552413849866418182864211739005996744055240272944747967345513795636236244814723241619940854385776039335876535100536684878177933124982168824436387746531118023322109297575638242033412687922520363602625162980978666970392255240107169528261692237225434540800560221959078814716467127445184017899949600169897835426732433598683987496056965161426263769365197705056329411420841128790273489187401064256585468335593412011445271600963310583180495092113886526719944416813877929804841265538473303848897306323287182136854914636649545589433441386380559690370102439223409667465498834223010316660777510262344353223507737382983849106408490041387610018842100657654892241380176256030194727098858338435878265434649963001824452693427817024043569907941373224042662345705291941625671121751467521962022900051484005572935409165244312027261907279643120132706022278708448294064867847306744561435902228933548794320636408724634067263484742722337880691960398763846548852322816904581509568132761534401367466041630616664629331933816731223038190080284927294164115514213534257731906635238495390413277297331512891219944907600528354684768724198120407137485254719156845475610623504751620234323583004582926157066620878676246747997181920380052690023221281187979233841725084122467981794537234865863047376958807630548842212267334961289490355139185890939907047257828809948378007171879830474509566678313365711334640814636189805343760648718815913667222268740275531188195852602740693564476870634044278958140960431548791706828475208994885542245928643733447133149447071123518234532463146972450642267318254377073873390270615592556983602222591485680369899754764102967111892198746672413506331048227588483862925451294689428026889346612131521621420590342781636894776193556655709435508813559818111202309167065425787974457473217219863620577388152733612777032429774069182400596722626506141460662229183864280627569983894599447222825947500763676731017111098089341139123360223598427182225877487086267416218675789432992093204380967138450361744766003114573238766220684536080129385254513318651267664365336098970621602198796313344415720106411419668597488904442147910037097276708981060920328877261996378205235863260247713279722588111910519715211302688444215252525288875604190272715745067687415444251052330986546480959699097728545293003174508800923809123583807114063153125824290122109590403325744432390670129852953484373807029460532409498655936123990183062863331833663666543344747066437645016317462016569689203883549966389842710290278971771244856180970704252153358693344400375292414056005691467046229854002274200217966708546133937688537602781558192614694387264191845960015276440893788495224235563324284619821314375679345741873978547417003778936896978886577723812583786095060475503362106327740849064788692517848813780223211643568615321080452528259102840220519502123997860551689905063437860057581912014190863667398076996427108233046704390340055583697652387890445732743428193212740082820928965806305245907007885403462267711679133722070378939699399276983183820162464227755334322820416373131006879136695395432983300293460698771900351608861235338600023202013670945104943820816891878884765658450261316640153871294832439433836526756699415270646294412811197441469518007721929742373006336772940787649143828666303596392091690922053441483687056221699803560093751952588698366431663243762408529624055920884731144974681092621936559112102967729495463368532662814011892842542358550130870743689403766343723174889959019257905930720914746093978372665679704408191499256626021414835599405074477783043052279187112946704466706777594221312724101535912287912439430122535277244075747343105773036598277801122480363338125664442238359030009051306598631395802115703058235282119698684915991990524001391951833154485739917387343277206030420123337630361913981991695258497707989094299816643142759166963598094792751938838895245123829740677334185275164297048990712795079113651507388647990488857216985106818290851222409416782436425227718461589862082390362419887075183733247697289508273196179846779780316000752598071074015681618122954814320879155513704286810982848711160118295096604176152452194079823652826610057446484514302288134131110967184300471935404668762473237964523162774510935197224105342984279566051823087118534680893309054984699902843163034043862530123396767300868538193241814324621161987680059793241658527276726440638910688932826283561233337410682295059433900160000203088040530863685154011878040934518376181666677070976558209144073218605272327103155088337366264757413224861851836625372016804269920218119385712370601528541783214217707551565508930098245928553133244948168484140661789293132066619414824467441208951113164827895683312933155677170664666951357681470791869067112931001531065602533790645267086316487663494418954625549077771093390172054559645497757627218485780052800712926712624589460805063833526102097126510007495441701480670607628850260502412688530631457375797678259685442601042176366492985325524992368664743869636800123617345148969926390889519278769003457434808937107405582823839390278257707656582591268885816273811105171242401980119172989447449350373834816328631965769543119377039978662607203530201121931695411294176698336586008540262690709704434850122956209015104035189500433223169633715538018864820564975809790886798778140315805159293441907982779776293416857253337265409044767419866960047310807858159800873121527065097951654468663462017284441888332373644375580883354109361591446278416739604894246867819981234891243400468941101021690314391234309446050409698506510916357397421245639135875973300013717760380423063175604225127695129258888984295863433445927772495422412047149902939251054957733407275261015851304310471045215592960425578462135438414179267247428899850066109080174654639356080778355557062643767603528351370898342028895714879549897626686868855325461923803546924969571654491102428631418827852063003800310602740266738218225957543778675134274041388877160797058698384568177014488995475256837788474580973557431133370968374742183447211539847953358786249981525949186904343951527201784544416334654558065548547319692500710978524394173222735085284060004695738583610300055589982713097608212375187110449242840785158674643282208728611721130482245979733270290389563722727311767215857327846576326623516993555422330121179726496921088683048477298083049331765890277903880533861011238504713096624549765884490746394475470141787320834912666609207968872051782835607112484355755202447977634093044756923115521914320805621829411171955084948494004831343805293318426212794833485534432391008000898887068830808780245383047708724254702718930223203119346146213625407523514047318695300762064429846667738652151296192411218927160799247774173975979024795886217511177121367695619995712506721007561786599300774780242928398733341852394658525334969592274903383369754575108864880117487843141714375154791870284521293076195977656383756510329896938771852003000400826424046859652273390029698286814808195478519267908602100380934386438955509819524127088173275986045245546695490057573735902670919047381541959303441789061097163653817653322521640122429508531617338733828530788824533686352508096188569430696625356411249668474635307520287016632536789355860948428971733256853092158112580853072110268990553059536136199159117337934751251169095455691687826832491261159103606177855311307347753627261861967562089724278729056579681253621164072990170246252170516779394532275931119297302392386706137289275871852937885560473455197647962837285889343675021056622479313128113116948460284114077317174896328750869201825869466360202571029185141785009640341040414586486485362972728191968044480714343998021055438938049632894488489756788069342761848371820717811053233776076847914852052401021882408351330134195062748306423308988523925250796162615191914759798968515919936484951629293953189125123888362214596755019876126333249871195510910917791286167110577476341711061599656887301918604018670079264924704148380488766197453009486836837133823006285079982218443233418409143906623846048296971702405823756674806484306445752076786806915345544178372915653329336536833024529135322070885341042957102089580286401081974926724316033566579463239901161434815471430036993473243368917950967194647929992997490603143423941349943898902758047983608406637884276482931588227227384469541041487011343819075761758949612897206428801785572103284650312056601395570025950844903806286335044850297740087997442687029400993817241789317618267035694611456113845556565299064345378257960703630010759606707270353959539420321969015073026199528421413956625712843494329299864140321220305048138155815053254873054055749765602966092402450564313497841367843733959707149199133604996425933901442092771356471330839784004800571929294384889553616097598855659532411889271814046555836887502968092910673745736139243570076521054216246179749114996589901076624070025099971968361702836444014571571112725494082876726471882152845642873583848272499376748947250947346799818255706009271566582196024802124140928667922684257054959915065813164201212365717333716865288369456751920533472518811384066684241986755323776799913834005463992787817690940606517004448717745990440476165875549922549888799083800983721902873519880350724094528181527502856477281165373568206394304948575414645959276535360930041764896815443439510476576169778861685548665964260205931725294607624923259038455600164471875417207503882588469781377547002611745470931007834334996545036193483248694610693629430428803363523040792028125841399974482992855012510653879817182373627845728375101719486445455416183543577370902911330833620221724288010008139165086351583373876718010839711626635687487398569275200896064480938148031522476780754676603399667831191429071181294352632542111104973183457022911159623586244036786975175133965281249122009854717978901607982144750385217254407958584249877287451455770708378316095134333137804567122377685753579414972519732738511013788174382952123429062049191707905219105512010282641199568014898117703437784607243268047812715178817215268571189769179754380209890505111458213338480262883561041562249222513815935328483047946459684766294636860553544383450133874446358107923436830454943928546798537975894978034448222082441092116237886500907479595748745112901075474246765702812447268126079183794804717061009483584545198774093593679976929860606372400585392892085485759363097111267875555468375247966018002095064304463714071792031304560018903084221228839304869596795124256418375752882791811960626911239940037712426279544362372637227587659698091810952828955257960056109364292347351617350067019282839819511325988921520049059668818699602004878206950602328925891054774443666681315984295859132950079893458393550904886106210980538749967424280364225477177454416898614987122482543775052052637072842823958916177824688716602360917884973696509799475390850347913951993372538239668113147373103013653453456806596135213428359085729624397867461875196179283501819666105467817891089912843895160967203486028698434120952489280897455035331490665388581815342318967155917755824318622049244880386046519974679036634806932149983073947867046786550910701649356140134210069607928281656966486535073964658313096996519432580336967279555524838631223986766539220182243834782834511549015491710175081336415393218646686373414631115690900199359696482105757794907995353355843089610042744951428937267813504928795567962999148561869053833998187865429273417328194070040124076148899072088953847327386183191592576029333725195315300666990394203565157429491959867023777523337449376294328682544683512530892527856798585096001262747103164041536593058539780814532157827672421297348326028103311735600303738726696753536485830412765662872727420464904598194666046048762910591460755607154015999576628477533635683098208810982746936910666419826974891758344831548118147453393901101174332039168818903472330773117815353287489685624109945646012565063919693589497091249134956782479340417590411376582349486462338586144243154771924738065677478540423618101478583299157574271083708154324338400331789069926081978480612172766818476472658282287849023623229850190843174489904452608312147813481088216250882562224134706773421950153417266203913090600018309087579143714726815611184939680090380863306104870940607000300900816390772561689616005968695410495596994175958185828354403692447243767710774931493230256587582156947906828910000634405246473764053270949832162102428735528845402617922434296501841974756741690962801678217358337994148575361254352591640681746771037367320438087582103702697131053091399169149008016913935795297794772432970828167709637605258858994910550311127790624750070837567154615328599000738685591612788950032368302459117296443747205857022071800895646540356370659275077853374076352665712134529977127702612090614679857669414821053379557343070814120382397536981599791141200703173526874379576751640355544877025196799761821458957257030176590023263051628166214131022399429526032082173070106574181656458074520546656499515519016488542407660901457571700598148526543308530242141337056253413016530571905661283423167724338624996738139493880504462979805020779895604039073028358328340570445518359241512176177269253437153095540312794423329473519929077524449192884674052888388274888208133238751846912584928224150945456344736553087184086077556886467310973448581711519102512984725006584779823419913095256173556386014919634983636106162420434289832771741917621763147867233978619991098851445607666464344045125487604100711356619731189893538901171935339057986750756139408050620462556073732306387915355427873290323232606657401143945124914559572999427581240048952977437098843060058029845657597015048301770097602029657742328339757123245472997571268847446603287930899421701818461648058534415727282623522238505503853325644461891516779734787760036484367471938639700088766744131328756900263175057267962287572516840161069874500648978897059464874659994056678530920414656593925087336068828150253861713892824237835451698936303664446685524901936035551529188176600147983293500639122653354697886207375425653092370859980161418581039893990986714788314862444149858817451887231782289503494580715150253286282317462304592651136266949739563142090467898327968890056277785831681842267758863007554560107557149359288960270415584748321388966927454634616731483428269816267471637137575477091807742087437763629339451059877823672909262493924128328873971195881175133032818159743359816348131816920415886523647842059391234943418413004510719784495943448443367771721258086167233377772734527054599802887045963135603330929084233308567476487085749212011429615757733704561565118995773693188424959378141440220702442433299000920446443773101862213909042382551129956534167228841405727584304270084332250415063889742739942490875896607425585271308532280595801901834016623608964367228740712626697761270697100955588670986981159303009249163670077088271935920082388902279374534521246367000449297987379274441971121464705411876199296123147711301083066514289959427224686918631724121713121076970815153375416791952264659953646537353391102956240662528102868683840923284311244819534290609174891442885855648264901105378630968199731298634251878012146455654642532852549574639463527797366769626377059337360259439053021693266088803012054332190397769974692380781284053622678716541378242337320494466781812215576210336688873033601961850298435824952926301439872383874500497299345268712458031784319763093873514799503212212999236064888105360046538018788178556621925535619061509675164459971334224269861561353887704131060654986932108435175769702469678536740725214716616869517123948074371673283803422927962760014536152464351066163369043932055691997045403399221331749409485303596301322747893355741374670451667437515075121582967500551398830997807470298712640174089779973983128541045941914880681250401663091708569969484928086065894027809382487925954149867701787529721085112040077023378842248769647474856244642533933334420845647614335843361874912424724372125652117335534872495792629420740605340022785248808019722103609455802511662573387435952125689882530583680575894529726780866241986490155300375915908240630500631224085887436651526269966393552532700821679916103617390292115401502965099536276799224174985860232493825296549133138290032837064233391668065567153616441979658280121868949519655014203859851239915477938901014793936816680673333838059486066395597254283482605705468476939221331579115196608103665268665015694410156815730479343180415352888426993340996897622328878880468712514669708789810397916740400036337205999703362179122451222937726985925560925745397169110177178193297265279134829526858988772128204917698271086249996846015933145942158723071595614045156889357337499868828461131748482156387063140163676921801813915851263077280123347028255915198880876945739208672455072683570915417349091393905770248489608732447230568155665502096849135865316143429077188448263604086923250533523598002060506425447746076033558418418976685408810885578940956966173928929587141891322363498124338143361852767564048857728839921244245476134810901344073165582476524175515655882690034417247040490157480049293871779397636246881049117468395693872387595720756424119124947078831895014687765003315884290309694099204989559260350046868521350524657496623675680616769222149237509737629089860638630787163108709593137975678374167559258246371783961285386286470324789835504855646397856366665986133849552463650279170922730098243044461279074694967042928481596442650309641799832741792136372719213362176670286785087493063633972071355462431069425246723885549631243906455680973439787307730981792091544896806343945263492129242339893269757374144016710677395988333653467188999649820168531252001484622075010748791794507365080309342745391503373139654598867875958634871565944521301750773242896227667137916315621477689531653363251849224625313764152980543382492212717577344139531439184498236967333052559154584187223802747963096427232362835206526477557843837717565085299029918346348714772485375973057689406491995564791104933418109332541811117722767604156098255738841195782292374966661138450711523084008609464908805509376521869598491107478594087040472250374701747492089639968829726198267939287657168993477011973108540775476887350267149773169257937306529857115135454781312701428699815496622671584941347346175151220592237277618339133494658839421015618881207026392251116172151358393114614943536340689589580690649942317603975091813396969560338348226265237859676556933883732451226886414894356328811844712289343197293687782239688108288468095169250262993151058162187437474387735747428856014977779326173566035302697981060158401331620795201180447578561387610687766169846417346027721680444418006235251341798206983922277725711497489305857182248051156106991280307766713894871905477778690343143451614147290420303513508885932353955488537238167326113726725684363934180580471407870943715670529181333911134142596198192472911624833725013809607579099659608193603806238227784039081306932766555220947049884540781855426248395754995068564885777165290047370373995569130780938034048692260387300532868229580363054615526997414101581336884025602009123491879844577466866934532450135203110773279719951349510639504100996960897217515827055152477130640697858453203046531007606680971134936932487672034721094215843431806332787373305123886701290767337788859779819906293706643789282801508655403394241037721413036771493129715595718172232631863291897864564115749756515513355086908972523586197705789782465789953098561169973065701026494692805638646274636272865622245800270299834292499240596323977762636569670381451482460893125981426620934554031064175027845134037626105520866854116885067001485503322859027933044119048646771037433123883052105059062965822187061382223931685971375167680943524524625855073778152159760470985808269443119135681634714633078998457808419351835689122452112647730158902556759220284126637909535525013551754769341723769346475516739494996690799493620415729906913657639220060886544300091980831620328188214620727082400825938485310008041273272657806897690560967512160014722571605206762366210508260324551634368481450885640850114195097259144155941647335590187599128392214121190430240237013775638851353913123257609062676638991996814986127356082793792577561099808162610762091786909752273315682335510948274174988394051229856545221565881065889048515830795312039007684128390330013418295670890590072635701427898732763344006790407513825734757723670349694855406555784061250728007456036521393851746754900475662500230067019574646144324325693445491079931907903153462304051710026378602632290758272838668725725092261089963158952598574626341835395176324418512637280000186656331116431500927244147867230267967076583031645205670892869340189719207560543759019282832726018433538061801751597006125213729335351863225704287570603549087496721370169659562841534205238345883494842478683061262158755326241629045294121568114410345887601878888833123827811633548023590874273318707969091347702538758051940361839277407570322471886291192971065013152923353218878908283369659278128482597724901776091255854836997925635945599375083696690745713929693956938936233756842115437678402137418445068772472009678239055475649157718382334554843691863707686844310938686133125431762753711246841537658407146316008647602600256193398071348699725817518119571793064256831939097594855827231078772364884466391530587561474746392876820879764658248640406713566155869094432595237505099589743074373941903626044526819790866529603295504356106257774044401442862999838965628509487073231221536156664320911485728791426321983208629398254375455238143447068409847782232610561024756224860179312422037015817737058751321179978180841705392557323314916233774194686080624594591157221298116569152181521907292481228536523826683201268521874990485198571474259573713756809584558264283818276677658121144851091827259663252927879791175109551139599585180791194759273347652615032316685078486321464136827284850200043828039431840588454440093304313135824055961164784214503659776077082576023208828721166527351898316301163130973188575888833992297619059427171311075668319484852483755762444243355340599118885081945858384648036779827574716832958579580443678269546294157527172480473820300901706992785538800307752489756092153482849149946223679177076753851142529099440627168077853001493344107868037056583831335670228861386793576684274711805618738744073621760721448825292471537683613794251370337708522607873002432626172507089095643449448619466059889403114273763385690378722999729922175104233694822170824265337320616049547172905660981695586210589404073557229085346719193075232793581930834443567629915035453677152362334535375518268908962633930082329714634089377489184937631195887790938268499093026550274233200190513924963167224490281276150741146852250624090162445532578338167030781170036750930235934359423550100795814967825683091149029590514190418682009970913027366723212698403157413524207922801879806972060092700718866025635090882192996389694109121627883905141143957031128253612922340042530342203058132417205478598036389686108446787298707752009611869810023129801769457144061905886116402860736773886145574332831394733681166224309783929806413716660873971771570886634868674118921164813029360936884831793270769356244376973173103586666704124543822586047201188720130655840414567167969508610591777191430765964236709441585084645554203263858330186204513466318553163029533391238425903623652244085937018259000532567065299341803336675929762950887550811819004332563959861563796859556520276134836587946912391361294233625738548978585767885264805326654696772793627667209559812522743794308484574677480721619633575416160513957890615255874888721991523622281615242921166429955737010092742217240220276945266977115043033324721169734917291286099004902539971095298820573455083744650564519559698577366677134957937869553331811059418076030158878107001307369889343655604546107158944240708572947055290702007103838090721176011712336221844812035201078278370279701553672368099097618198487398040280510537187081965920535412636132253782018245880323407558504184743868807354695340104336720346072232237056600492387466328891069276681942973787795857878158954405826904565651721067247803352368059568413617880940903406073956223759776914524734079030303323875889352378802549027791394034946401473822886723745986458926042858043888973133691249357326249037683016512348379401375864502954802279545617575387405145753783943839652613972244645999542158394529850698443380762419461652275236051620987484782887855565414848957873809393912107292201454508560610504536924942718878422445612280885426429419163307727063461368213504726953679426412807258214810142878462344934432740162144040215559215701318756335530029210328185724192434520745131496027574976744644275503766973042019670239657488166005006326292900696728585526097677438150014233614807774629866543148824984010362670458312208618767457334536819720621378157101647917155630089129174517492433378170685702835995034507535647291560907319570537396757291161173219417315758985309647216881568983662283998484186817743920516320849326821861730381949553385281228977691252455826216978506287211568044419956474783497374828675997951490079105666294988043302831694744920585135192984876908202280239661209677835537167319597568331462464852776967462395435290358842589906297026887410693502761709044657008997955832062133760282759385352412733007440547760544368226329894104329607379392908239872531977351672883257981662207278624625346405843019281204680708567281729446242488803770707972295524491894812518747349240606894270419697822055242047358845541115681289105625959253248670461425025106556588045142286370354120608720745929490414725147066389851940817139521916188335350560972299781500935621404367575093832750790518970335721862339833292807518497191260328319998578103990346635636005405417912169484368834705775244794758215503892530741427218104167088288710463207970032252939074969480076836585639470775236690080309881598838938773577279398557891195637446730547756263714237897815809103483128374137878767210799309953203294827481175782205521302116912082092644860069721253186247873177209761526034859487700493177365826812136837808146971898804110738221891379457705552976694939679036608505948454815499903813916464612344487517658725539009331171532595120983940903643211959677029401700240485949878439752001658482900094034612115751952229474558719410533282454411768314384163073426516480884125199788018723727716035703421735837021920539838203540264428697490040854146703028930185626111820584216679640322442905586344471847589089488427817355412054995336176268528803860951849312636530237654065642794062543306123377260436761015967044845937682040209651619021870488864539766734134338120453834754940589464718279056510868043982683534756373296224131223427437471269939698420368138370800094449356700105260502323275290948470545955709726649376941138703748671651820476024019279516636677100094945596572066423025681172993997344774458421615923547733838277676357985797194900639386369202447612755363483265604617828034529539894285470135805966227953351539431842655407735427267726666694317099609045286858391886559624729835427591193389756968615308414829428239341970613213936057197007462726082336286200695903016901625734628924178877669189554807520954754557045954562349397128869282911326360554621567886234535954061802481204913095006253332932568256174499228098295161958017980000688169755087294040601318149652832275031906716325775173966220561592620429129747065592004999014688561101958923250601695476755164081278554558471843986081628020180386914858299368455945321690449529780090959582719558522746885603550925686562345891260971422203618896836974463643802751449313566374610412882906333970134550556291676275600512021174679177121006490958826093229544113836229661543224405217107620278588552580981211103499014021583769877185744872669001347248563145086913115492311260576267986468923244607130891496119198948189409885093384714743349301022619616335751474583039908291339710767565973992218464823597973805743130388179410678174480086164920878703701760904803045405449674103029277795033973995880838070632327251815813935714655077789432040528687399616419034504585215084318085204332225530440671868557880844655638908039872810552363600048679066157285230499274154483262528141077212412374163605607934582105580847905366933075457019793666714032432554814596296846410002935994408394335173323030797589225421357962994547059307647350237712894154095566468159804647787738851655231168592899420025246137864899189597186291623021627191794661680376321427228721434103307666386691933699188924640206621489019466607026184583572381788102813218063427754234720046207471988937965606418486205975479633278666975531557822578002451167218267785534737411545355291607033755157858973586236448469281644129467959332561672483215481476615845512541267766605347138092629566798813853336262212236665658893491649363124174670051417263360537751915307639071092530681715081564971535978235534362493838258840145969554570704456361514952554777885260687111287395329713931516301842561659801114069528565859112479631358222469918078261073227759691634557910655967765048878350945450319181153309830961467370501649896569143973985178269114092026688832599507261606551250618875733332992719869340102006109491068661799898652030097961776879301795336272652703897913354487670985169012217063258405345980884130028517380399131043725278331309709297195292001121632119949886430737616003026489193838218872426059303992704829799655358421184005050250126517372556105992637502508467547337387152074244872574696727660272357894973652906048404017735143153415902060912976651773039940858210488969177595766833215044330982973885058889008371507352219191102053122343642579053180879086452218530205917556018670483501962155266656728566081795883170253388115809399565442641055892922291148709627613710649596070534063446188357646913989285208636167061228743024025634445949782957164226808193735898854245671017418178981068132213185796295492603663450160263113357616114343749381290809115125456397940193690115390717457662502113218986596510680727879360386528276352667089853937644386134532058151756442459203579662552322622843976456976250955834615373653801602177185467807523072574103854276372730944727760962926151558359585019464455312235719985382212376901283136640339326091256740555518753366781459498875712189360461035278155816147170090273880475871376762707569085681776701185561016917662453185609102125334744639985007347772232041404023645497978644404752316631010258253451834939958171139135745703438580402075624682602259691796959037953256762302185388279795177605301761125613113069345946562119374697247737326652518438758926168187886010806987991780329121594218264525114842444986543917300191860861416328163892303746920914194575510700949977687966654039544155516930665798411030677927213714117572511173539428210610327082607407894296371386916613987371980130072865411008974170162841730479638991940824575971853047777777772484676942593104686435260899021026605723229947426293992540228984315327198029054769893090347179832305244113027678226778654548953541777898340100122231578434878884265478704038932443426728305848230649230724972262319950005646168083025599204792581192007742147170893334128538382290297345945606847643489175867173308892036679185286318556658890978690953397210485080140756999546448782057008402738995022038416098712526085443494857960252104520442024979037254214519621303672165068845925952173159729926002554541682448758145188036730172938698458411013954137517221997279183128247109940428903803184476438235205181820883786867520119148449357339648589854616754233168476078451090395956786399655269542791613433256795193199363044289160075495316359888211069229044078756864705221021271937500635182074627475795910386435275953067064190633407171659074721800717132474602472235742982107858746092935473811794844683978746668338073045211761497601966446471005338809655009495346454668893511130374628047390413866680187179400945143191227777783828154226459991113864026379933658012825640869091619246546989925212316403548868117274375257459674262782200473484327824868514761546681549866603136546680294683699538714963441667121484386823063343695805869879487012232795590458876411672408413782692804401735211561191707269879372701055712667090343362507892216289795976887565694861307431983179377146057423513852765643385285269676898386030741944004634210339223015306696667940127775618365976764417904362553125977257458693147014540418078912008309610084114937852060345884126352641712181681952974502862953064859779419226857971434866960158458456120808522110231907944104966595711554233050395405621660127525246914733463211403405425195643837248398342263073833398135134384111923087397479421266581921256466613616124008491584933931351472609678421213973132385242576481083818753081689897863775021316405847594005339484654432426923734411595851903873494835484038046384659330223572181232507873149208221377550572758521636085250431563532581718060950004646801809609178095764232340467598145385903621626183927951072559978545455391297549828848975240330726793377419424752288067976297105286345363226136748129915731520102389816587595844494670250608387223500094784087269744271195452557973421336103299405690181964327622334927803122849288678657425057607072487761853466869482217915205595316115076645650869322135607799539992489958868303867368979512649683612053142103781541694109195659308514654760254614656407882115444173918190471945732216126256835610903181502207014081720499725644646972220913373907998721050046438864722891809947622893330502672347051295107071771724627541941888522680149713581276986531323738286367096899281561301985133442980392417988433635506384665795908365318800852235189268424503341552903868779193621301879170653547671552080429281328791176661934892175069064112421086603172998347712195137679939338860805728128847724859285239296460758953406351094348558263417877722319460377039383011463255442581935383301505181847733192233568042956982236905502443069851504470457201608035473447744793687067282707650180231332838597572826242638134755143674940321528148081035993590533331251376012057728916259694367820552046477057684438824410579824717586845895415818850384685120827674444545294558809315623244650498863207647311696700793522811468387091853603583264268516554894432358952574685884889889886891077877628389838804082242854343892695412165816000616850353084238628919042595649452566211039621577262604697361598092696621572254750822436941760386011714753643749733760595062673745527638581576862271931550277333490939809825288843943666951289016124933286340188673130693531471114149992380199436012320930764438155737091994877734171505327761743550947888320505327044545297527644114325930381812244442242152735216353431596638193840251389914383268382019627537320693716545751320805273505028321757181376022490369660673015160761787592372586587409381548502265282165276176764313083270688308347063787123317585038471559782717521715640404192103015363657125410343507790478369234737756794923281148701676197616976793039229906672704391884590113325498079581308147921313324662788002088590178069112281230304060775566626968449516131205351152520364782576522354360574365202851512050495453136438349974544835379995886438486023176027174644319273157462150868257938248499432853824767884193643701565822117801363133026183112850249203610074340922685859103412606827047290316181410647274011706249847187617489588086488226556307501908484776781420377784524738171622322756916095247641964996305643720521335716043083379771123446769770179873291699689541481728768580315052998941145370543666114037790653818460192194741398802759068365658065587653776492046496923298027050544827565909504078829254411387362542311461417577277702036885877691332567702965301739845171011704558075151659748339920431260638617046818079705698174393796460919904687371122846192484981869929730706515006114016385226202540279592227646647041350755220163782358521455539604342788064856164691013525235605174491208962973164804556943003545621053518738901565168140426284895808865482038302035503346851547337390795865641573694527073908690252539474080967402158434737805677020553102052735048711709001717963237915442760911573359280527229418256125941842337741856698807495521304239463096165065585068559088716041956582040295419502725179212319024574151966436048249637231132825102155222067136769929352632669576142317553284751575864223195486910732296263568800991383079811462372510663228693824852648800588767463652426365710984890441929523812694898864164649302036455360213495185995584823318380595156323656745239575021022693032966092002683745832799662823959989629735543376439868731779369477669679493801755000175062472924586739823404147924790366497268208835781732129488060330022401669467199832415884678531284047938815704714936813273501163818029849761942315994465010605105652366728195682766484534779140343799910603809375052182540812986452408387629810750469365257931237593280288597851356512135073965789336360578170816301109362821315304933263867540822880580386164544737050291916684808853177920449992440572800411226248942135991615551757834131282081745452555112811778305083227011754168150820341796244154536319562620621082955288511549565816026642236861360273460905182175775189382718556504819272873588917585764933218982502625159177768833819249352740574175300779186385295514013446512024436965251054842033195000824906055356701250814322932160189300371535424075445494987033601435494680983840091531002773307691223311073159605263619842426230428596480992447012950957863086518910302918097833427661489693090757520256866593716832843743676444790040777519605600504278182241651942437510213269463348329030064727634060029728639004311760327965349497746750976477652246129694436495570852779567932321990719912034597866061710645218844158760849932475477264790487877353934991255638686982434004096888333444987161511805245235569297947464747150073597062009795684675075247057754175887814799563702736996939164481156681521269175575387640539336628029962846224684375748666529679372021676969438670893869122897948275365176140106387641135306115846639835301618561552469163760092978143932401634641417466143141473737220383241294368500637505533380819682687465103987151043846601849000573584905523564178484968615792571971893246888616086275709577721127325477871452685877443876912040969142758751884409326914077370535450964259267448227875130295759500863966938759622182100232763658221528385308062353119076034240892134398337697896814507785977506428489019555669599809486764702542415903362103464129053732308984461086123937482203055743189174790324232339011895467596001535001537980729820011920608393623898319400061111632113357837325407141521635582883465946116678187519939454075532400732708850989461491749792389385471720120867653117796737968522637619838634264753737346910744881306886249831584067342051611688216084824024421813374716987804957208681647260434791139143306831911177273613113411204649463472014402848213954774893567457286951742121315915738305832135571486217396863549055631551093113487923797186363570528276511323746752869689480387638012055566347214645825996972450694253810698183575242503606956934473740306889152197254893090385883780376953171029213633896152737243398402901122664606975000816466422867650431881881032678391577030378629829693602698926123434130596687089116232538615051130991147269376589694048937463493431700789901696367296868926459995357724123072766416509876933739962755620980741327469881809674386553652490455719252049243034538793328774005042248103631724149379811867455249151943890709012657039611017427039405393389947682011705471284230141206268765810075110015575781103870101466504068915378485223640405584907137148446269823809377244961156021850980972864473907517506145972174060444700133480589985920217190478218996771417608144510322648871235670170961735320309805828704218588554594411484606925480884306363758457783936073697210067406007892021684195783287182398071079142589221898472111614989071098169112337041884777917592247906467403238787264302847429123440905077398733822558375352792966950760167761259897109457790129162987111648172009711321366330551417992861461335915397935660151596613099147726888632655328200240010220887558618832183768090718469332384969940867338936084006821492249112360594428207026404191133270331277436923590630326819035381585867119127169397512909849214774030531776864745798478142643611553220929258161920030088762426757078631790774171499830632307202721805960539465189343378177019008589535209665358411343688689137062274260892499032954922356223726061996754827477160759426476554008195268258863966204944868036680082319912898833361242734750233186354616812172914825465081236409699720485297969180401576302661392399331591646943148115118832722558787071346587526309078590298066756585883216966024878463770753747163338147325288933685944288868610626989476025833526874930647899146348837294494442791643310499712171111137620731385137147479175295066366904233810373153281054214663178654574468255209978916761941146365288967533992748866280263537112444050889046733710174174712400071767047081585592167442732680970357223510194911083407809796416297923011233451788828907841952496300314930001770845117184861358146534972869267387132666729104803868741180145794778106665461735511726483860950164223776849671104702626754744329532523164784392071881474162571697683537799393210337837799115597349972629810439196076637946895749660918432319293469083149651335346397907565194602135187250126240014158234449633764890722092308371814640154630254839818057350423557397265290708230376557382106831112387292879979161910306374721647667501130937774798728120983447789300212394594298237045049969251779101972753078528077034916028747771070816622075903935027697072400798444423661982008849866961475128228760311635275299716974488819088742254085374109002591006796430143287294863912182022972268591558730387195701328394887749392135896277523967387722165323259496462067395677133994249596847036671728591227487117874859448535517624545979755990113205393088992525168251281045524433813333261805751677313633997841577122359639658744450790973208767962074851451791406846895521171357918097464141766373052240877577882658373105950011291200149121100660090190743764982311174965934388453603417684033020222999632796707222952172234491135993349281623263544637152622395825223168283255892217827826873995696558048899094105874603083240667381753852570722643888419544121382104691681191298636221996480148538205593295652242725035522898914868205050648868023315743751782535345925858713129994939179217511169932044969740466409177242409809477980329098281892968982388551839906470854690833003219044498621695157425708131525275941443578280180265855691593541803114081711842344551467372948267476961642325091491317079997369800633704859197206627957641944176191187652744530738362822249598597627032632657236789605947190621997821566797776514103170797285176081857265711489525379232832848149205619682774749911762120503040697553205301257383099455119836525317419478685276818294760389127775719023477791686172438305214698017305938765147162419943512973579462708968801577860039064933047426673419025901073458053887806847649590067456970196296605713136755134385809181797333142602602288039694347673469879643996755613864933262546041179596723406745939230241587866242726509762921705229332464027835088204599758793839774214720643189617572587270615889162741483670451050451218559354023518072262565952410783278293324859718387914007536984128178807705316334337745909029915759032579751280316171945295064400898878772790254008579206917316458699096950173284188415221265656280533563395002968146503953238756445662590785376076927761771834843780321852039758934240176069834164933421566872983462721074474825647806279646094481635823291296358699516851669167349552565295364088915196422223154345746399144624412870850662223185704138537747027954948855523938729452395149989929038084065518025884844921702571525159015831072345443738813858383467447669915301691550409078929270914902406484327665725528580907106122432492391045893827356866144556222919149231189375942725028829911957254797306913498288065585077367046753773733154008609617682763208927453182287004227722616486397147548846012243066993164455278740976720390750090041487420946201474047458809948716554318790670795095768451779607252194841628334225450507824314513410269704229320984705785823605384657771033028476171538396057939893311903486860622411055412544431887035691480171406327361070650215452973214910586862169537927781870301647580193828309032645157974124478109069376239284962706001208258277407712771639431595585357077458981873518801649342884880881722805324080435183314627994861053886860414104547323416090223886574688283240294273612056590569881425426950526212564738643855405019901508096392833578565675314893300210388176633353942553035084487865495604349990928398526861263916655733473733271867902523304185178825252479791717316117381549076678426727360068463596896324495847047475418878069957385901465401020033244442883917237571994943051730120818251216748022768933754536365862083756799212149794889350078249999561986835560103064622884150237469058566489135791209913030409223648586878794880083206268265565830476738510001215253917180105626359316185180755874041974066997273495487440471006090141722402919810061076130730237017895219972850761811190442223028617832285383739856313400510322697519113057008058217954409994690303561384212156514577677584956433067449949812220547662842357920125187432325913539861481407528810712235303754838373832042574256104063965886436546362009228321969510360061313468831883131864176917510222840185383456938266576227093301985869962035613031304568560523354775219547158033504977875961376951319677506798859154402028923910257121786917421799124927237950202892928813131188980506363136569486398687570764983496162711935862273509799460617080902896885891960476215291798950247915271172124928699943295296672761450455325302002250506602836928062406082319165308603173408567718882359665745667219662379482100914033798187952022171170116929114154868099887511478799852143074664593904711559251815771886119113618654426695277907623424969633233379873144485312207883389135335506553318069401667237771911589389688270550060607977427618283850082600101363532883016457996566493757467988583090486808078522994007594099437455215467242142988615302750873877836581981328194092342112159497158133060862374314130847644085268213147221832261580525598503481608839876631701358884380153008939895179872092280916040494706763302773271798818988421928733354152434774142772548451531483243220193654295624444602957440131931682017818217135505523385253497088403485044806130040676663441479357063550750162356415689129508035488853287819320439284125444183266335669313457629999145953161115197537871209292918908100769234184064635613452556615125765468821180551360385178915120195284134682385707092033556221831286747236639266597867243086874932655251980021508023632522499601233947251939397141958815867499533678423488425396617896976585256993504435268976495123617799686103648893768457839520093359562820762525999673138380453481369734454360393508381252213629561867847638082410226822314387397091548547385711473809317305023600472327802449024483542747885476262909571275136292225598470178640569605164400199203399164183790881328016289784463106131563092696925855039602784903227267640577351235221104922364867591133817115805317898687626422500984173699465593620620237982380160241427730115655596825152298970677484692045077369327894412494469818717907199220192975453556685327795541405003957279275763177729366995979173812381924301696412352056726510219243755899995483770301684287180875847229103576466829212914668013521059980201026941621179540084371697883137181891107009882434385939137691548013985370220035842080112950519530618307160640253052693762611609033939024786594176977220616934947264647984661462475905372430422625898210364753796510876204054376188034403610884652137174557376089718583416055318488720804085171835509333122732781818843106801090406963080709280424588675929883373709636751051917323302647978702867156795137178954949871468442279321769586321219841648566170216140962206423743877451294647534560629236669142768182162390998225064502929091567317523834828932719889738369444448861825394919913280052929705384668243800760233250013397051952860753836651693757525541551515060082802888291940273670308140801679427559485269966575844490921496955745644593978240407786167768807037698509506211711276282651679320843916857263734391218888772271347135265219995066008114106176063211635525924622338763680943532469728149324484968863472017654084599524193300417666542593816927404961970675321661596138959847712701515250480684750119805845830787594793970259489786881374363986502819295103422617732135288973194919103124705677975553344644212656546177774930654319482398620678809201918522565500396577366348688025715285030049064205745668379464289957363046478886548457116923801978719747347550239065653737733159888398693164549656200012704689980148992127459344764720143843004909798412741357358188207827418065040011107808905589202121293986363579370678217312466094121903334137352061930234107804443255833984594975793049589011576669309384752232430234671984824180476314773379839232894152359096182418905079017286908773546907669047621831885225879121935757691208236831889484010420984628185389136356410106134244960607139062746009056599304337243485816566928391030732211878002228227207497966977252668738768734241740287346178246364498018881383053992321572680920218948847610899566937282854308683891858920173304428801670886502545239835957160573564744878806595675260904845762968485016907994938962455531773887034638330738029634008378778999680891365004317558175014172371285362771435663545166687352782108151472961843506209085932857695270175195737310164310152823168425024118135316908108725119076297222515467683395958563779445150016142726074578222124661851947995538755219661039292528364586751575632473688719355833849250537588852601311468882987085035583356148588151304090022474341835999702374099469833315939094063920066564191401146478792395054230204727085950237643105782792303623168244838492678617701775730591713416226972618698388621423306018010906067755863679144461371003106998694914749679333171221627436854443053555822152549828319524830302802267967970296010877838576565990024479681883451373198074411612238114900856610248895745900702688636348103228341632050182531783672000976494613438481659273879373244570738119456529587680976366022861143942025225614264056618602285116175299619541156438654234413114283531459724342327348924758606342964101632297047959348986145440196096813322371542913727586462716986516289625521650036840728740756874244429104525951920474132315185367296745261784654942835377217986916640141628348229344297254933176584353510448588083006423666785447505337752296973340578168767462034592766437726022945198485462552163461832857497296385790407362662265573914495489954203314662315657334101171297498931840939123583554848700015386424678640999747711258026570849377555010782815170705134276072535001058834139309051838621304188937043547376433778138996138362838943002407677339916753270220468990585786749322295445218226537293061215802889011821793690091981988512649547581073279179846250033806941812629626741982017361587754354459297218171686447422779969478854871693703917154036411145640248777621846728520349218740584352907232573753963451472786412870073774089044940866764806379989666041214248311706687582982083053286923812890571686615734773983510768916908023007975216592154273776446922463986205972722582995768319188265166118276427976434706317620579317073655300352882060009969010421964101943132293991118982103413740414115885863420835837968597035594805050014489577164168315743342866473679669924723668638285687401905583742697240856709446818063885058898547002107445712662030219197777537333773752178447369378317525480483393028269564082162388627688427866381560386906497205599626930188542484107436341573082836140559435226635588123571815955578872546931995426005734410381749773716658805946542983379764825314948160609872673669293488169245010214328436393671358204634356753432747745908455099857394774303383285015342271404118293927699075582600169290988406007286730511317495955884742889358474392657324765405060886226609898589223848004825096755515247890970782098444567677249958259249967176551431190164122386141005097150590455487775141313926534850137422487090083730468752546434286250564101839995143008820198462325451869584152956866006866791606230518561091307187364215052163729510329364529844766108686619967063184459642801222371537436399697170966272220427147907446032738857389522796137272923561554109765388943254718459890048963538408034148304909803505040053409412079876758580283295763876920995838438354063993075265158627611211437836396404284935652789919203111971843724895872780935849046908929188531621171130564929575148956672767958969706971524481964585276957101673627110799438326605675662727166932313874446865124131511380931507089900492385622144403470754465583096645308728731553570456031595100528144810756393116896826924387319199212843872306072999980685942039720789770928322958727977351557476915558705875533053587666549632876553943722527678674815571829477187100821209510461291414612226564457373465374645357307986138847537557286264158098762070835941884676328535081720763133313421364522069161350957965330965248302785271007311919190187799118982548216543294921446371592408990046649079314674974578479285360313572780695749270671941683229100726752735842947913112194253239366585437311187670197347354494602231972985920980319315240257791770093081400316636544556575213771581600288641157418092973339504534132909464152919540932681709367326054594912143711212016971527018867617493549952744530706414793985746021279546793823761406956289194993779078177731373189316321422881668242314799919776593950110025983549313854533091286942627644667893407578900271404738591785425238333943045567885188831307365498173552011336445687386733260452989803867818387253619188441554067421644692614155675848307720754845661492638542018048460851150905348984806482394081955829703685896864098401330072062189472739858201413695856470650309107942743673342350538558040686810726235762650126570614250531207276639396270581122950245762689103367708999149551192082340490986300497165333637040868879646159236834374882112001921234534035676408826223741888871517222640104889382250950191868318762657260947040975387814151748936750825814457189333022689141389585705516394121406053315839476517654684683553869481281064290625133520947471082838626371610335516313611181606561022848801095385311479145667239525691124188876325573883022483577083706538481566900165492924991368321773823283167503951803421975690298195588044661076534334656438337683683657469581725730221195908825343761679947529353086972155648341657269373763654207332717514340337420154013227002943382934701587696328192614839568709354816729795388169925063581468993948785496036205247269309103846719884228793222246037216269044659440902917420730358768615361941661967724537623982852753912347502764162946511010097209312152233477841035086776066638486967352167931535510266567561924375104309917067272118721913346669639448748814310154771607664911773895365136508799142036441390831581889833745166187222238548905017675086635259537157536002179152998330458957049150635158806925570941693008015956290464757916281724530876728136673484948760412612137073110593962622944874931937733580289852749365242359314070487979947190989172690708270217882703061689186073244684114075672257106742430643719190737887126626979630966366123466980772424661576883920815432322636226134453156416698616880252721805122072886083415616439477852108456640925114662755426040104319723752921067489513820421048878137255869489245824120942640369452334480094159342949898277704864982689276076870896636957429486697812085220351566360653555729944734583479163684501687123737687587751955141876137445751176639303659684268760206866875508274864076619127199791704155613677301900234165185413181989546851121612194252852448461623927937092563511213968920675669862169574573183090425690091832343074350804808790442944082958935813044801145223564947170019351179915343842299614512482637566830256247226500961315968296030198425508607317025085515784052731322653651044363017357812487285960351943438093981799672556727175307643400390000068416370457763450531588669616456892978191820594295796395652748358533613978122010759218378973992099421459580995590483638461054225138191814747701070259088613147798897983515518397029874223057653631331912701604997289167739867841601261351005304629061371552611901987419275121896489476253016407969575410151330608005430842827537718218472033575152847715692556880419068132157592416043933205639346493047212035069042770378918561618531109552462905100975400950628207203076027902598860950575329675431247463468523772667652603299870044363872072850043235709598129698545061263804781565981394169014736268962431468374333635012357283347135759769194982236491970332844112984977093962214498357060051409704980462375874943960066798943538315378296993515563215777127821106563643447797705033072267456252403075340632196401502613478167114138601591102995047515855646771698568288738927557567836135919233992028603750715559810775406626043960722558491800735666405185222315729285436752248469093043616516666434629058701688652973272944775520358651796526485780021422529544105380520771695735960071686253062263143309954098857739616712314976971241413205441792239275146488383276578401322230701798185378723164851977972329254589987075837739474998035341705922644955427463922531382811265481711224971205699605419849565470605182358514490283202360938610029269061171675353319007041027939041786704709440686429489323668842859048526238797808644366670106281029623218912057031788673973682135761006094955951711289536811242793331396093831285449929311237825471724562246070813369983036563805120969547909118749914627153429366742725790805916758623004256617735492621107270249659609682783430032612703108256764632186534040808951604788300017544915267965495204277037713549377480292291363550262054237002894851690475199908626074479715526395872811115323946007971214064374336135513061413294070139440626998019148237627983950874570255367923138614379856252631048356145039912011201035769529336617709151967268686217122436498943599981576856245780096875943194657120038385319897891084278777470371589338391469604973269827519364348980287943410189707830667520019769955152116254974699850842682750669231419894614681235959748479980475169139535835857345615058954191641737095147665073655129810842696015128474664029254862238044891296855231388027873429824014061737872014022605211984855839713059430018434765731633613063822378328523956395666085104849535073137618054668586805331714001708339120753280494999320437223510209091022779448787933260092444282510560944543085100567270924870664427749204035885119173706180920611049466800482273913467277439247140905828300159843267917210372327008410687783277815687018746451060970465841159206696764858054929874660139507910814466880427883816661613408163891263037930474043936873867851293636126397973481324065650373463167074763230103397796144706995072607222508680559620700364164948543124392068278460702232282501536443855107149576010424957080367761529121170379220037095005366102643347669530063437324002018448874038268632794134658436724608368165467438616014785401321301680665346569944478993607380721143426402844571004406022636870534827869351336718684710966063684912243431170638284118171218440171620158327179242402527994770258991005541461951514602728215667294641515352610968245046769465731531773107776425764244445844066022245884238311678799992375950355718166026399449719661417619667151267661654101276883225823708428345446229969566609776630872549322162095367328018324578253357930670496594754869222957845450209140687667949624172368781592216937908949052060488214649861216744664967246140735874070027243649110095955525599852454569947414396812488512379103243706092622464270258376589616852626875491224465279850534753621839695454661585828638723831878638621647268063449948357108125236459689639559495807040507227794506148885614008405590324250734022018303563898045538195028142758716882711391004054617961910764443069262651526160425218435681683352324485085869088596567294834369631052316465307328574534710687842011833940827175132849519443843606762057829450761337404912240730357152413017415991166267595531403579553906689139249568353139765570449849920435886711799914952442391748169544313409802879071260252989262336600450089481984962529655223088764798918450939171465844938053392683809358388122760033466968293328303250257729627012037702192578734554229067163943791766996026781968101098452497201284255185269676522350842411484025195270648044031415306093477154432740678254827327993027933345676495688228400376914058315116372538925727909254592814711160693782477579342193590914204518888581450361769798250373102394075707743935604429035019764569407329575685295794544668151150648467538256141016440260169763373593516320584536954292604844884506557585845776544159711988132066097521634219014280395861232541658030441220575014059110305630678221649991435478140475890548423947860342708699417972485603904087198862934779889119534129479081752096300964018680461427922371213071914356083431342991386445025777646541432916327537458426965502315233169573217569430315539835951281328229601335253511063723052246767351188027449153718420326923970487877660998819107037463678775817795326265738438239225381686602830561812903369161628594996852701159505579099969857627358720057927976406739660134841437032175627338648170885173089873426252317893509614009348615106334953708380939417399122740500549009649391369474643069284923761077463896155127163381763188011256712506530910511956056612101662849007543060763293072627739631146830516982764787960491291368641784724505358611572720030894482294163576529960191723073849278730339200504932867884782989555607777519164610243049705857133685872182861925086200842365755572011214639842076024838562026318312934677107039208748814258144016461125722974378941087585827719478338578479865230267150452750754705852768944572382791976710189509233585176576996530647431600801409731154614899481128674833422370605796032909917884288067889180654144513315112205282001365572607955006496247031393387715480136252647812197024835564085554609449583898498262068483633753348034063037501874846934351916333302879601165212881014834585617156573673424422670568748772309956873997737392238297874897173355016136697441638559967288949487864174654260024347174285925279517007362183805993595230346244405262555627749119204415754972571454773912673670698638244755565081338766988081309056749994106013759364418746982490236360584050070370227047641827987951360473108615503455481096691157577141140753161919412856941965047758756970705413254157587404078527631184756045282744602682542727363841832250371321308599385847089029177338893596737458786684701686002646244911811123463648037992679857100452001141607380142620089403251660486113325016044622245147090810798019376285510670952828051613000245902821645774311249017676436860799500024603441445132418520264587866273860980576210236702629854234364884264635084972357241337262073707471432116943137884867650024697412837421580443358810845376327583742659851392964175486119262636726595446407596861811364448125388335007105110056161718612177024618525179870264452912318060391361551455760159425064458935542978888934198802854314053816489255462951776454304770413398569272106606481303665942071654200209381165657955685495557855611200425327060391913703673358452457096761072544505312197803088608928981024420257116330836994747216595952123477194499209906680997766782120504441551939361338278712341493333580249940255374276992622889914393966163213363430075623014638173676986411073084972793428215071403664330427517158626019606365735183539989729814456262411838008867589200305190794467987577168173810726451169548071737909079362922845596966709698754944019096635091501639914183287932150189855442980292989271172296773288541412507621335033049057453936728010399176719734751097139469999114197010051847062369104154324630460715930783473632594179153368155445075061813825838079135211280981658851263356532543614401428991985776583657679683305878747921982766472823001478823092521618877886258961801153391168977928265953138281416819284343384608870212055586354340556276484664089563312001899255695636698285190830011716301405900681767022691660553584990334944754679371110839304874307540588628720513595244966342411193186059894946438258258801285881115847282304060642735316700306128563719576516718740600123503110631240809460144697494640327824962146662194310807080390944327395854310610503126624141820852320330362202447048491670959900813885401105357039723320201538785722562238632882960935978001627490958133016086060490725539538066665113816669945824703108251009057042858917901920735943980912545137514837146290529444445746991050251618600952067435607656630363952578148789755729719475245151707946196130326360527932387221301919351573212675453240242718101552853220559502776225334150528507189297907430058046650853661446745244503439720940389082609672897636006234556642024191221657876077118776372172628287539202903210435526844560081547213668651510891695414700472485655587179620027948184619095885537080616975395270252770014530972499808541468396033357749834527072162625575983059214294983574823996644686708703521798160605157582635268274580771768429254986606088316323998300140972265306793506472165434733071621272809175184638341020039179222280336616455029635487859228023943004876033913969245566997565241609585755590175338668340141657456530170215202497352960430247214639339944345204057826333497032934149104575265801355496141089326468348614453361722373754594173016247152425880087070531597582556946591878599450975470583595811402708141987219839290372301566800374413274978452906721964522092734659084829505073615580219202683682558841410481568727939220562875474053211126501736848480739831112776045799912653781215995379329561105319810556438325486852770060981963239700772529405558595034652468183279599108251777779612259371742677548665644901087242312016045223514682980997254440927840349557071553213957286373063054316672925495864693247827198151195911292314613174571396508946336112519574213183518788996060075877758304470237608463353644623404034804664084738953008809757908959870336851752103189034341802409356419489757437452601354751700841329535039180571658827378822655181280671318063595632276339091750959171969888358800375204329348519214157577264243198227049591416151289027325570704033444404009371439207291989390683572896377019451552174045678711416753646752363072404062932249493615724324782101614620952191133755997297156427930888379739780645546531547863712310646335080587627895953619054583869327141611021346241772264964274336885173980944399490924924388141007248583341422290066027529543340824250134393710288328499285845882470818783217754244919880150139443970520806788141269179419721000350988488093540738257049879280569908096789308302234266114523934120339177390677217998673450206824027359969919284895033505251177825418150872554783667312566864188900237679767635433475999849099968317619347988887969099699995473773943681452796950341472827579922486640707086120454187771239737377781057844666532360188833416377007297656746336131789463100386213584694871441102277990180467987101662953271446619841268372133272125301267106507671314120744356032119039738034999096945240863581067419404134070488059373832826764539030427035790232137533989724051040081780895471551799292166027675442827569613175175752324197182639318419924770820748806507274865815148434991107363837220686418686259047926502165223553662176300704046966384348053002570201378733835283265735935378707422314425506516815257308071987009967863560608517016741619218372978905124456498844547805914152339240512352382296111464797154030771184832417426798121474998180587057980772548304148556826476174723922959907149496322502416608921266073414898273060601314769472856036052839779484684199419543815008940523253453761127110249030820125982496094262079837798234328601786652156928864747935439963445215597388027364475806795589124330858621811777288450343786095381461109401254395635154255296994552241155842447016280416038376466749720389043936801101545460904298341789382540029563527331442930778919375007862398807209625495025231813742954272389230456840679967757334687042451558367482202103294391364810047855431253431356335264954562481094400506217877181773680424287463361546864739098328203361026640733173776883708222106810384048407419475591921771007320904107241902137632096228409135898555626126390851762768974178820873823931522877532278414514147646192485487204819248252698053316470374416497995063512230776753164129007929820845736498795165127420829805250814079055593149703164795012890777559202417557116103976896505065548182595913249172509013180487027679234382442544591606198342442246128407422862376741378738504481330870407116762003921890003770581017689636381657281899705241495770257786715319931022722652534888209183635874540741285335423312507047101111899093199247411849557272051582255278092578996608988113659876818660414824948430593309568369281736796759755335752874655376329701205495400448741149366593980684296959028776589424569292462214279702590761592788621933199311350796272056475589615736549267221556384181885630738790111772265746002648353668496428183740158831723588009182772641222983419551512547429168549953463328085259236772594959430979632073079221201004938880684521185627536682256615896106741880545337211540150279621140124614197436291901053202407254563876363156408796097821180544602490255514549510574628369341256049303525798835358773314771258484923329678271559356468101123309530816451204639954736664996339558329799305484448918997945104701966673017729418482575735687956383748895450204318748155594162089319063323370747521309216092699730259560206206775989155470255574475180265064740748900584322489086351706201426854836545589656899014621653403516429383058580509205264616303451695524703102580290137342080754139184536749759605775327162261451318235948090052644080082974334615521220256851331880526581008545035037357685092137634976332443244319495037115649260840282249141499740256964026977905757568409724847710390792927412624647038004363765030803808753745492008276354655909562320812426521008609567742608507491908070511800674703496126182704009753361082304403296861225848946927275502990750032271220117730545218646372670440076614639064575138618625121225468967810769499934261193100373116718464901282592245789362915654474529123742279848847946731909936283973096352396175177479777792123968751792448748651090877436305556313856901358821275482463111984555891057478927941592347520845747799574818040308535500504579759132477900745401711418690506364141824143066837052744204383020628389785696787715598387944384416363865038310413281895640705258304218997750307794587047243482012111175688868472348799870023350996236969664292236052363197804166757324507334662516700776668805468265599183852634249666448621273505897788604550784488068649074616375959381293074596902171777502442502086629436763474134126929899459494800541873118131517662482886831102209615172830885705218829911321689492921983724103933095076254418235084344302476384929411656780747293478916614997982089657635028654079687989202089344514650650598735689312547129746002692926384957697134075707270122219890196283089231001217387895559453633247359482911487898983197444154950770323153886116843075355571291460526951854288518882434247293553550901883777933554458207203872474940123955210736341185796114395012605253223738723071880302923365531736882888245756301636993011026403209030549096754686829591203338266747982317645322273616805107393749798235451617532346466432155892125694497843399594705993458078950475459774409293029254399274999496802446914879012984228410184326696230339997002016951884547636281452423708135608274172058281847990254316715621403812441864131912254557480336778311245930891197677937800920206943394352037695283894501101290175759423602964465387013554357765899080640701139214419203281513435681337758924721381719588383682378977235848860880725531189265851742264782099986491550643349320150581633249625349578241173999088705135519146458791776426527149163034976018637878112636911646432456475731554806047609084959774907871978327616525842904826658113494839230688177533980879229456023398058741824275946276211458403305849938263018266019567050324004849407240699237614171131763863611767425572182414796029565531179271358368964656840130902074086085345737465812757666200173482660709110054686673424537988951839204147096798647688270140224281031911861492042801779747807991035133125802615872879326696304326718135359549626608893597959460255648736904501064761169200943636633862376948754841785906274736724862559999150124995654309423589705134308120310706968110915597856214210166677052463531775903666411281515674972615114276595814042873138851641689784249668352703597663417904957232559095987432233489157412972052109378080343673284991686066477866007135977905015545183413622162306610990163050774771552415986503439243830769073507388073387927123139240053921531553588716327172922102403639541056616569925323894763037784808248851526919122458650911426246448989401133200775382727130210844287443310180223484156757166297708052656251671070241413741498065461503097166854022578159302825864105053752964831884076188140066844242394713528655136424759367858901919042652467528359561556382897048588521449012472032205988273991447758365754083895684342248713473983307996746242569597086727942060229102477818877462292145862531453961191785967062920153208518591099353758350710472698308837936846420016264789102399633789071219314875645397299212780483698747044153909455196346923794104741860813471610130757794665914710174533069174815606634177218420856010736761986221095272515415222598585065729826465201525915393365277484795394218030784550950479588363448835954350260930590157944699765440964622432761333774192926790235378939655051409090318578109748746222142236703764593742416463718140018604469985892094619609795992999030826708226450805897996377835242035496738174309522176071260646465777794940442010047755930646672290546483546432838968328918831264843931346953278760042800796309850318854820593583667595041257713669505144567014999919445903440355959908653928502198507784857435679286411092014713960873123030260725092755744647983066752740999782162897394777753888498682212837044057149616945002465791389543844443060186098710059775790086954217751056218371710048530983436787080133786186476514881540871838684706077342297111771807912779884537507852501907690579578775760085025116478870038259085412265684196268605187934747515306391411352943169293236510504922506483343337400704897271519822210524332111776176936554021777254592720346708106514871128252802454613474261610207045297054912873480580325279923804416065016894453364972865498987215851641571897544888108319120037491808800487354401026374661173887502936677815484050061598024094223486687594066819156925270121280171106694799778474576981027596806702864648931927885036003597097172873089611024753232445506308380537185364011661385237565569947729635343696865032333926107972403132033599418830660323971673501644245002979169213971552384887611578984509996796809597704458663821245780712163821552279949906236598710865501763634650868141878719639385270367434267778081863868829692670058845080826428729631314775305073232789950077964689847671328597453362960337946670578661539965913530242936329616391225682359490376655147141432630642185720759697763246425418737747093643295628533014834579509828513061656246914537208499131506299553442488210056002777081242636958496473939067454746320709503548339246309414528131012309738019901461359323190612338338947491559767750550837135234377155008435504482879187374155154459545969206607175006022865866506384288274191732186276920990401971138876779035992961698424950388336252325523546819443683326746645554143404461557611755092853392503618886980068941279571946195763328537123000717255107282293748674769180994647749122842488586251017072462093607452247379601811004749557808391344892179730737935307528025264143177273029789337362177802810001192877490279319195174561520926020551853401237378220921929178144178328956511217348444635993638542201323030779067726313296887925899846829162839377311038795576014659782599261750465936457796276461175232967322947809732381064376278787090150524267267505518093971322740340709663032284961710781793764809752161009552326380949940021467076980176781497137631868707187300171124361353467707264636067992452848337201478189971045286558140496143171482352335038380228516495774758905804162870770686171861809620198953724163750228972035323817650876551679770939997829861506336936072678438467096794777159723344181943322015489154807317261467284522174809410185500636266750756364002718139620546191411522727784497662037866783305811721835969232774888438864052977204963021373829477475339028794794599683096550824876408546853879363444939702548415643756942681664128259747414283638613991597908321147700224255791860994186115108744391781200973329974651278356242047310010613554560882502194603511066558282450810218991129771485135696678336178624326339324994782703481019614174375536887014083496065657874745070790623325414499461050446412769108396235077508820615935409925256484403063559969467022806447789938858102381308770380020964469548496231031274341441101124537154828532183023564348997910700035770934877309356330615430517588934540840019696633684963576540363845601577626911535941963120286858821460553336425305188710000709029632811365351232428193135008109014893378007341359781966937624311448218450076701073298240479896048363697784854257737808894037095045442864290751660915659200829752360094833900654637540414205409942187556470654326493224498973365274299136708391851264725882908645298647655183705345260016824629499967711009468605982705020658461770003171281725378244164749259790207492926773974910708098996611186131794452003392835954506257012896269252668678997781134713719530163271233650410531879288434288981777279344407945026248456220490141612416681513891444602983904173452359014453775971381626677674702003239053064611156587919273993778378202804020330666648012914185319510022215255468009317321891033624431931262926210180741046400931471523211921606217967159466695433511949479517961160502554112942821149785657565811963062945219463848455143017168958905557021738641223690598825211804470303457829703951703305450514028367542173039774350717191045998949958897152195858701454465909693582509055041926077573878892810189654439501982339053161314632188265826671222383941153325599944112027275066025089285910588439590523446909465535525448642215517531420220330185337452851336251357249207895859692350931230962007157366116020163982710767592101586673009831835743489801354578991926954515507500621449181741601850267734200852496458361338144609915428999280585649080297635481049450694006558466598379829619520701857424102902515292027310168307431996561136813840453141628110367655407832505996269244538297496913430651883390921237326204152814505680714941325226167555482775203343121411925808483450520987974941115160758234056441666975861412259552471479110564213271380835318426743287415557473493963864931537435698390719041287832111479339527429094151544296006598443884952096467682491600138079200478163698770880267429125642838739798989104675142571403673388823371414560513353588318601071350432206322841654938611423351608600936150477838506475215081736081302253730284986729661641009223282340344254762329084845085855960567366955592269961621456628191971615822922608416410012443255702367840041258385088103155096596848330389224430755999788626334000519468101307423292246807021848552530491728570358796202722796639265234359606999261222021780444301821357860255562915357009529595967402974436937485003026550277615245877639361478978808729658807485767478000929677713389176497185763817992890336626141006441741623610147091333385192432629714984860228712539140645088232540907628347776146866767049111250548699760879148889092201575822494905468884550197310124054235852975800383477094618618866494224718378959055347161765049738607419850833057299190446761978954812948163806107040130163614430809811063757744194917549955329640405181605163476271488916982245978438744150853807132059399031900400484009139022452982516780543237968679798098540860654822043068698127221114573859340631062368945018065494902014570810636437640605292124133873914978941194415167863836801044300759419576268806434655886841327302652936340748929609610172299000965862243615237586989647179211271604371652336270445199562367055549588786084165403750209107924624019227311130946987615219750802006485927653880251578597932504347696290625728195740344670888587543327342537526722354587648756871016383978519680424099822594116966373144081387594813233611855073920250528199637769987121707516902700620242797972842304914177369616710008451763164637710335929647000953999858654408139083859017465587352141299069907692129979823997588539744447045663640723619489214880016678241506121031792483142176220062985836662430984878545569556473449740553426824936252334906019465526838138605161385704455567100367044335053124956936592115535643560937158748179390277987404612759666472103360285749757602516271318964388042615049656032972382006307609680363459247126563268075554660804033894068634426334208501524360177854888951083620210729992522174247214187052826884058963783255193000029868512698973055385725075692475964631610389522285077591161066342082131653970028208211981344171408497396312244947854724725127498751434685832201204556866425415755856712153512005076157190573582428907986012079600851764157438019640115784042737778838623585493596781045039418332630034358950025805742426395077951128036499136470131125207414243901142859669819768992466947522451517951017363038778647996138169551457868294794243013652701684275091931000143869667493210469957137158277267788789478155078808001595679731590129105999323125818765508778437427470603640050465923352694191442669165853032265374664437148340326210845145358818404694297494679869814056159839115533483637454609389972094554161762819046340379235701541105129172477449955387021861907710617068792710990487024894864467481675251800971662349877094715920697677698511058731379686228681760356442447450569824476452585136490268198555334349650218471420400243958917842808990726762053563482046879347776437547639513284395006616948172619987729755583794695901487295579170061527814717482406892028148495141923853223243162083847167871203557909989336921750217405328076676562470942287524994565742996541666142716520359434659440177911995964893990094113140390589688469998080178486800170754132169778148365316457683357786943417135048467849155997678869660502871457166131699815847273578813462452914883721281226219402300473511149206297040042385844776795610213214520005311494898524553758506947886524749222421352549634487146501992952533323967206830010145598278058809060138625852438452985436971891301107583948214883072322058357901577633871306236817661808142563864838178660917455270434161792837519751637520931313846546790083261259034558984901729085177043023743845365437739440070834404162735548328295536057187411959592121289535064542527114212189116040042138836340746751666447507955335136680438461761805459786942496933159982101628464241699973603257372649757360932504806801060007917736812262181288797964116277435757762610220994922418175124181304804505216817314148430994129055643551507357818295076259954637400903162235961440036569632679347626254569942283058781152892643457454914056254804136924256292457427933004712133833608531684238848507887081057714511612472934094104180792256205002130466836785450168808593828446871145588811134107285603057205611439121845348862187804850544874534836845823633860805421238402689757603428285933095205797698224591118437646633782553316189893465369456291349214022218293527783263072945504231244620769250436045019691125106640289175244178411004013358856073864610286786734611174097043888284665494579823310136765496878387149230206689416869107530307117800561784736961953660291661058872973222401217703333946394685447956567710604889250841411169339038999296527263461116399021412056537567690283242829378094815051380164055251917872379303478424876107090746769540118990195908887731885634031347736547270469310012586841374044957491819705313463227081203589916102996289328936960039028903283129550275424272601987990694601953685129839969978641551924010814683475929699435255626477952151624599201973118465476529493039737808016962704162669196679666938101499743819427967216564261849245395297947790995591065229333462633385417489909738853131668319656117663214388914282979224841828978317852687452411356431736547720016505834423660575981387850890854256504003747387573503994039925095204758123194333717916790025864954446039090910414488370779865875279403631710193488552101548108411988743753289876623690461977144908891390930964062883936199265086498843828465699552587118341032400098266767186052293724819240634737907470745887483687304219176164944434123355954872891426767641759280887233257915280493109347377459337381103657731518709953437130766487579110866586240476368773829646790381289286852929175691904838580081349836082579286540300144975610375263922153060073161418409625723997380501147436784369704221737981580140886594861611222270744893917074437478254377375897986335426223756766684705283546829072157674780010958591875478983056145743298517931463973872856174805380888546436898990785240807919043288299245836571497717255053942147910972034275330555133846032296818824070469232907523986168488291857223124527027572462696258657715381145870335816608835722178141133070267771612929084149659625361287457765894431897076801489539812830365363255001761765305695480608031852545985525079170090514109924189164901450867755150031399278399267862414466017476073999957899215093073771249649646743155575583917081123690268926745506755178834767094398221658648663567731591810590540703263245177615834121551529713486917864772811288458401472745815824432110033505530607382817366401735997675636570070352829926609366809110548358079212012194258687520676684828332619024180034489853952890115304375897084438273285780719046074715187931111857760001846523604077022200066421729242739150154715954496948521808965225006563668362408148243373825627444658819006842045089183155397746590037089516233465009172569920887922351233261117527654421562457790431264234448714999007613288860043557388839101306944568479551292585119578024559303619702082496841286728779632083248792092480904494386856890262343599682156241512612822282859787973761624042520550301314340409562362114541291805240973745175947868585374926830827226494161077109796047127059028653017318814164019143930180763274797273778035779873846638049376827373252743876625221105242009084218533872298930603157270531142569652973982511203495754640627750873945410220240019912459531862402118138250182708599755243445547939958272994830065322485255590018126933422493005759148444332993214022308465216794817379246834628032394103291869039658664361721251943900149515544796606787665570295833323608766391703299466534047529024812520675687955075535082200877555925171414419798682404313602726273223279583855019578719532996987328355301588078407794030551276424849797225400319857854315315437748731688041838860730411320827757178731467127297782669823020988071014138673466361876755792087542025832482891174438872289529885484015399838713789641593864891345524562635334107537063216532928084445479327423260401421860073718292079922163481101581733417288082079324909397602626095174703204332582465153209062605827694863150832469022364387260724160688416760867372559462481551542344422958851217320476256060780542927839974640351089955119570987297444875777425933234165629918447749746616410495551597883240866031260912980778105204934534303934532706537438225942608772372500106330601772936134907946139412464839191075246422051926918324221179642720177967361991468553862078215195981481157826594655304846239708326665053446741146403891626657699805888687077901420127669052581828252964615824796552303735294687995636864213571942955528483281432004151624628151466706540697795124268767588541878262101588022571872726730517892780198684688715099787608010958117133984014671133178171932732809436010672500628376455022100951652334340628036763749262383863763574973544928018763203976247417599446898964446435063056922062524423215641716710673858133559812437354198750182931598952218499567786796839420485527028818752638366813998453630260136580510696961293723361083236683756642853905287450542295613846228185595561709941444747152397545506042734388644718261698038392412114985727919252833774108206205379380940406530342872951356541112222820961507950621080865621325414362585409655827364955821175401496014925091913333126458812639893777292391069347191023421266592765013677136001757131376180923656004773909681168353793243759282983106106620328246557260643563648029037296319433380563988185465905235269320113222099666928495556844659473643869043054789822540100893586886853698299317410609334732051574271708589492280409874171670875101865557778800744082734549049742605097077573427468477617821179779548835322531280706124868297982225685348215295237139591800973769155054935864658667580231945024838881105744375561639022772364485934268637801993467518043877108990204771582711321876637007526765695068886781323193458164222717683349376709495898004980669515294335388851621636809852549139926010248475493933392783057116060966023874833975494605468863207390359650260431177447536001736164475456134627294609073324787447408275319958158253929147818219557068700326460787585129374890061192716055001574720837851555233602946388173172893622115470974318795224558248390251690565771036571550329498061104148356208779869799778088682250138206804212289419554486804057543256613879763683778773046630926395224682377265664109907038283075036761574155319375921125768517236684793584551761847948506964570621674929147720726230450988076161686370872316968728114643756000629559077553330968160862155182849691851160015049526176481271994898888019817452622297940761396795387756737059499140015894273197513734833874551055172878936065544484707553856396952345024763283963051139368615428917678392654570963156615716879953014509554307577234182552482528417985822325927636360278602240102156382314267486285385259113562398042950253170703526569888498083568926409964055156907721674000494811734189948556908711514885764758971286181986570593914306270287044979765451800883912624752015839420654490908826874915085650055266281638087035919397667891929863230756624012521028598721192626098830483103765419682349369862849161238271507614708101039687190093521242998733680653753224615592621111946836468252764472968881878505951037159081489508224552245101427243831263768041734604214346656576901504487571251399352447253111441821198800302340226335233243427841272023339612867031585991090154194311432115635171985956014638160282276113770666613079095973042378279844037585010974326233719543330244351713061345850504517723014191437772448674180722575860880951178836988288953491290698068471840475261658535124771054393044691878231818033332208396383082485298162633313496417741584130365937352551239911557792898283246522465803160271013199951718211846923775950181467360752736920908821591740245284135908281441771000621468391413250583107046028350032156783359288060546533785693500210365164641082013742367938096040395496219939353417647975394208788962893214776319626937927512955093977746909960184413471254208697584586363507710404139465229685861521743534086418551326357096133837155242743078849685167698538724420290791953177970868213146003502021221170969593039396318718288113294240573864759731839592833576153404082583831716439979114606520651989289840596573388834318174253017690989754158689580453759941504317752316946244752983024721278338732024006461541488156906900142605120432757039465591387170025060678508722979650031458397791066842949525330904055321244343656542883920146373403154341742815132047132035394860013848668067379226532285984935759890221765888140303648645739947386230903739919719690284865707517374587831691443725479307107175903650615228621675195047581571211646231233125291766023395887787991367418962631229045656523610004037820029651498662420235895487671769336867162939599273918002857541149572055512725319355623544024753846822284532281054756054136990984077038885249957771007076282421029731460015834306546854137801283488230018837871235477626118714214010927219788716262001736692981991647269810267388397850630206026770939509805998560734287856929044187552783891478668781972199268851182030438159394530689540125082299131647755537797149846296668153175922980060511325212980919002949733478874670435417655947853666176938545431609687717316309053307016837531489401416232663862237051831972811812778255364502040060923101724868345004865776133812844009844827516409958688485202344363070173159133103199159083058554562954698967088075775878704608814446815664196815649135932282369094558146425456872739771072255947473422416742330853171425977755338782851324722279654154831698892946703257697067781866438400624463815531614771452814999791807699589978853748367266633350149536208988407854159882145530839260199564883853216292091619041019923450409428702250296137136576132977188935153678089205686089434841419341613919716738041497073100994216217819210378488199809171770338766116980328465116515169359037617465987250705493783453087316804909883369283245264814836610827433957071654760505955133578883078646712440183110938357515337319440500333286955361540237022439903635261507686774117936036244776921226384444705474364495439485852959965565121379865006695047614451956402369112867908404066695167954469579344251360238303436429690793515987541678808599287473052740945309340071326638839077193412341498594287724009236800411101782366756579568572273067754741543331220396934091467315391967549069051485817479631909535898072610565925887649591280142683855929752233054244236795706669827147444692471874047374355222117071276550372066750519867454099718105417249342136459463261024218889931932764350447541788885323592307323706843299259778031881835611682201723510598602695872082712855724600188439425445703067896672637893371860897589317283252286558679152743412243411837662924718510086566471861290710402270976287712234635290435374280167322103616848930057532872521568956380710828739967517311687967236636029394405424399510326855228515496249456983185844428809041650305342948659827056798101485172294289120688583435197159241369533528104955469668391079474915558211658167195789420216957399664731089956756751756642337010617628350723581816382786140013054241807212983048502255709142646176798415692233230469445425048950454128606143605963326104380097809897229145681397411904265505497329961670428744818577688537037771494707518034799366116149385982301151433624083584595027144299254440649257712699469603847593049015287043889694968323232008234408197148076468555470089259515234479806214390203082925890567785068363229405488847278697752267294125977977761615540738798398375331981569935225873231081611602910479581268720280179680365808724906807510769487213562684122355091635640601883998685373783555014539389468489200974407488836733936054221279643263293698932205508754491219399047126790236804146633923695590826185117534135015168141770865217781779659776757018609128717834575460210474808865841668612605338291997142420979647852838689642455250460780385899954798714024382998260757630726063218573530119635310778865119078362307968801463725939164314288687698117509574814535843776846762810326885066188849916472294058288798332837575242738153373842964096448243223252829066348135452101598912992328634082757976631390952190108275862336895921609074085350720452423096145229112818181489488095954989531367269550124373304864247719982120178228050008675722559993129575533409814813158613081314410083768254940011256546987061132583703484471954846645320050171432491308776613200373929179762486903922626134589889802634015036525873953922951361859817219525444943569320425676183804208816779680887174880561745302741080758027732173325241122650812224809651416058075660833378546182489461961151474672207142726822601629164193101966311438930826435445956478076482655746945204370382340529689384552300764047828432291951847258177463198114405247919398892639924019144831456161047151927492065736356392750413981581247704383040424837991158366188447223266770593590119561821804199163705321892056869773011723763098381300053227743696765148265767360146339115715351224420440573094411888055228478789400537475211023163633453782464999203942041897456845805502952439505814817338370341668612209117443210914350176102143715748225961732905143783319432650487225237452799633474225281859847199798157952261070916399241709722553228177028205959758128647661834678501314555997142144088874723649361755617819044861932036911378793318799525876288933695627699404799760126635726948326307456584227890450165769073125727513922317618157783276043092619355541404233836975015964018145177206011195152081879844206421077141856775007688726077375580736537617014983850591344996734466613575273126905915355771891370938081581829104902146854001212198335669485412554953202933714322615658931470431505711538946951064945046231126258366867709124414879545538099937742836402042965335298998812257884215413541607106263887012394370316637256325861597563151505319843300519138561506052143041746963876889957644308522964519335331178421813566304451708899104164770843251403534705944645944397602392213229306266688689181143388405999102817890368711407583036978507219045852550941094958674956488584439413063663460012797881017970299986622123141827963581530633892061473932937542693115281158600676616743077640491587660766755108988039527330745179623860479468425723181791318460044105577966591209807109029837120959947101145699155858560111367495409426795596316473861815886492666295407123495164141251942164463665549903609851284139199986487953309262694368609362253820296011753625664919099639343557620805258360989893744998996994405268173598192517951877493146922816603698347158879450596676162889495569023199842111984450835195362664298715284594343273422918748325276975544843166408626040112051979708606608356956110769622766668614321254365599998567170791164025602204947080276850869315366993865802443937832575955001932492430221933985110566636645058668767158632999539719677365596442473910445849301491566398091290406040624036426794169431239469979826609332442734058344195648601242740131313513579627822113585527474952857094161709920062498152992956597205637399993900285724281213627760298216530128323107728168584971014895971810685306796617609336992731123878850232266427400002735431616274357464756664070167355140061323921766571681466281015368994553706955935611898147585340608456412975663115710943997345866359777219083162249949872125067026800419704972765036964296185493579401765347756805444282465577613744803448039267316913971165025755434841042270109089932745689910904005852339180322509660907681732235635950655037162157939920626087476813166920517162207790606501501344423522411837434522168133548214416650890371692703411651772674751860103827856641373091742655458474837646096225117534880241927226458257849213109624224311823484707330697327736289943512199990825264314398901672264281323464749266089283415668736042364608960910369318974014258427381998183476060923847548063013371948397768351397649519551539361559152341066078828522392900473549288832122764356976014192395714222356772378420211941096323728413064092931600586335723585119359238588358673843384442213566455936273080855037341428921187117500951522838463736345666252589717241379488061303761008087937582264503239970647815099629432291620737773326377216658414956653570769791550921165126872847436373521735542909582977917923336972830023557577057046991105771248809200111503709098777695578807232826704357131057753660176682747327435102960971083516514429711452451718379576414815739558264853961800951777029659395397225622459717959289528124692040274725715751407121830149385555299189009359764329199937938053205485058346386102401416463319697551017404522692387244819400905590807881163700173137004596335475341842648180400950272188349184907829744243884301913526863352832990052526431553943936535043270975045799144045004734825117873459366197778376657753183072811134764682123767648760181633286882874344938620902067768059634257853718909363485699913202270943576294509931551064464727480112249436265317871504541389979443300914636283493367672535004234471371594955209644120211878922037104767696592526535740719330051663007552422894979886943286460500092555135769220834969196404422861133639158645751177379540124098377653092939250182813709929516302588057701401430410558954219452575959363164703195880829044250261408899020111253286908782500440232179632778955127535320422909539266922975716330526325918079930542875864044958568704995256964122158098104993686166445407866276354999724788351350710440971073678716893209931913260345405716185155858841734712593923932864117010913387063747670377855569731728323218217995739421860845936830017360155449091786767025691211360351069322542466893830715232664041852817030314246837776648437115845651463402322831616060870460970519846354595005597207222230372361527581490707754149190107151111191228970098633117828419761446476629236358624076985242970702148880690803535113190187013536232364323417932952807685584495699733181722200917338111383223272183829609256618414845011080225831255874998282942863892976688477342175374662491149578593048964936409937684168507799211690340613628304436161481295694992492040739500779967277628542640813203558000116900177082419380943009808912467496566018708091354457594249463313341431234638547259321771742610053004092994659239457746631322444494593747006787923175810947769192667617839722535117201056426133932509721082357335171335579375808423866552951024301662806857763619621257534149978916432494325005368039081608143426211147770025189243237901802204812820246736220367508203972184792177344734457975220921475693252895730027597175308000789450409291371734515007037992470186327499629374779734412606728501996432878212463684042481361162632137274853662918430460184117416534247512574234112783157932729534647699356176598527462034999522873318816271498763656225906799152579706508246976289572392991070445021798024017920184947318988795709037030572139007017041346246232466328134249775231152420065203393969866371522852095175519877598238539456100511886037960114030581256073074837391627540400071117647482067397661157970088651067635553753686396645771682497909317620408783308195650590127276976419905683542707165039730136510215684770827983199490184557352935425795440964426589187904754129759692802844889286506131153549356029665864620202539265184647525149983575894214277683100979882981776178620595061745930894991946937754479328983643564765656578745918227946023855459174001057488122435768017022501680400754758151926194590645119958078301402704730350611067560538380255164475093153402233243044871130032302340729572593286451872429211584314920646265300536552582585088443299206360334217131794738222539679565487097438713372959625436289292849835454866348351022341386995342537915204480512901928956457602696811282942787244288206139081477398572233163664068043423370864240428931862361519182552038741675922305595437473122194824502149189579875536738492445882354589708936102206878651337255987081209604038673267924069883930174853243189818044226222191921257744435065854003790690312662716668685852963544804782061337609341273319928805952726595650804554417156437501182723115623086164868195734196252554214135769763172943971916261057951607989169626543339549078364643404522476504917036492470011914693586822903026875191045205078886405264152188761367303138492925647771090031929177755906803327845103377019634861534876029555822075064230943847841582842484779483637380525462653113776956830129713111579611606523772808622472042957883781705201717711025168461811510719644442484659804331120637777535238719819955410019429880106914011316279456140291202136342082200237966224143257688825666856771762224727240692740926471670780857940871325423907286498047885532353754622814736846805987769385283450573466558202078598975642286329800422241022045699882203400804250273412673092346741988924909233727283330084162031628131284615012741559444630031879410664580271201615545236526219271401910201800214165515248908685961807939189001392800884897306254127522912449654126491555165710980434418158762400899738576980861890940312197624419002255813239903476106058523407371192005324151043045794058778339186214493132724459880877108904172746001587075376785356048658882299489308238236888010227209841777254601742154661202093853030056477847480741954700508601189921465090073194695117362731202383349910717373450139959126590628122491681564076051164400948728505547942353194027603375232476883693027568688947279995443599289073737411698329515979777618176694846006063759916803539743679037389810766633045634826016094702278056309086859130363151711213376792998436467933270278465340377436689164222914617196629967506223751642743346406985331258476951754900527841675238482136158610751608117496504398867166200125395049900613150212201013086558953901721589629258017740100526809121703795370300376760457132904461538448189139305274015706038440785790232313587946018383362519610212506975670440301544298756107472948809903771476325978183064044421087203898469624283324731172131831267957144592826463872596514955891670974031440572574421567194548991431522590465711307150833140435876950273291692661831357306315310267371994420027038385349756905242193279477630038162796174766955674977304771031093520344961702850295678977576036930155253121730624712427829710590309699610872404289159483465664608899257163648675679262326122776972909913468551106374197432613240036283345252915567515337564631016158869223963674627866873712719043843040927758198333648393213812108079484126930753313422516784755167995247957634416976980996480187259625179494701248204282123708724447005512995369183456020167844599177122435140078618201040910008782025063357417232229660806101291995776084207635616274180503397039341155490149344603121851778203508602625789609861510802740283546864835975202721215166149893109855253873207851777960023264557611220191851804276985725649748454232927649040146068767562209655383312444631824748082674113511021234207071386950595957147779003059168064793346625141239261875854786145380783007546974872340903044485712461071142939097210946336089561849645173474128856486761607492491394746200690433138396045889486559863354934769493573599161669679012130638732759100471481127707494936540322940088060931275287047029106627353742611061963063357411063076599238385357476243562679162238033838951171783064200501138359535418205575389941308055832663942410350581312851523295490245061880104511135935849555372238413860471968991638928366981800965505765971536300133506971364096491093013503934742046457199498338626737733905615574441263781181861940836198203448362223905815803391374075323011418512162166032437697879482476633902211323621175972595109972690687543034792195621642645083748428720386138076543934717214950571806285583474530014205956587730096066800823422658585068690316233495796245848592609086341893409472307778551674720972032215027308163791743362158943013768689666571174574324429893298751696033879363938180593076507890608031282794654911988765735144354913397957486753878435912538928319766992181618633370476136587114159132604669565957445248278484124760442744657947611083301839102363084540267214432293293624471336939618447518270458514650532123347302748262172331895528115546614907505100292874356611002828493470212408809012171602862499513216278889561621128661897128809429871143576868118283362445229699330174056846783000503316079919449381909826322216755113808844823351388213155792687278281312964787240372453519610949483681603875985917040426700981205921287370042979428777096422739111562047077420661285743775165215971881346403338289543533628003225369611435288662815188232594361491169646246828522085518263082133374231026670795536806851509446210714412554824598125467991687940379615837592380079273427727808100309635643790373366919359946968387257019308747426727128350614926769567694881944616301410370892869044098276983007074523335434482462008253481738126033827054718522371119326554439634199142321179729140371973939457625819822025269384134708665802685737566149235804963303485595106815806493153790014065549274128937782624430498384827635286164946650486084304421792089693229356244318066133140968087055485386558248932393770122079693529813019318613898520889686235247382347240177175837157259634418796667823432105359465430671133795347891346412190420494408599432561955277123940172238587154153209881989924469225017592641193173312028465496080260280538644268560056179934342837020460291023842086213930639750885954782641751719975255730257094293849468224953770166634867892313652675373117120617985871211202184425255262945484754696713748321076606537640501490498946700842288951244234093108970668411119708686184454599661379427830030882536823168311365804291163772938532863738325899198883126427228117168216990703062646521603884304675034285168965918312952958674954962142302043579258376329469703281851836423634349297675979898979205861346834193814714957530488376473744929443598560974821366707033653907788822969298952192553455609072943360960507646795508474609564744481589938328030584157887262615927989133718263130223823782321160552899281582268418733514033555825823090683418648373001666632137239511357470000565274432382161893052298629354435184471050498740781840945849511733634512386102121283412969491268001696329655010409205250407579710624683896085556112894418335497651788064520255875583642291638283256913341186886537232856519961864514114663327552243333555864115424010863051519346879244884196720601099487088509474563919239814490210486901347290558041732623185788081388486511376651367875701069670061583584121131548021290553328772311285080513323059295554402352930772718530313270691444395299754351249057788726064470520608750888246874775386034406544686146882457743890393659395630719558174576802593259678031971178466382550172201284325560017352276810889815075516489187131061432284938498558909060445724749087263293004327041216164771138748646376945216098382057167506264214773559411417488932385167487682148203306854872410111857900405828074450373412099679173669729161110495733264958403246593307259511717926509812476621546383733469195241530706692143911822784940976974614522438913577953318916029910896841324019840607100709139041705424287356261469374608352556842182200344062866986269761566712105649697772788190810138590869252383702495518310909538032560891227032265303191192539277398381977751986850961509879596451159571413953152867215727342583614119952301290411270822861358128751923236433666199438924568238686203533685264191955293402230965420061646799507617353838923548029163547841039519337606301171627788975627642192840918695217278274759495836078040715439779695975422255834214780744945723469257869782818923295156538032784716811645449638437399104434295512374710777437246222536900328683130818936802440653957140655145484975169353722565269209655103246185940808026254814419520091461801344084929055401623879108212409020757073142329211685575844914661896889726992533818220894359051550985703846428021832300092678875868396145120328657954677057540020531177811746205934423914632239431784618040119188109798168717039517076387776807952660028251650082214973138984021973132460903257716453855977233689760072542878074390644182090426944770219778270385643764970393518679795475532629168273857006616779982056529146444215170951214789343795839398750856103798152410184097521948380596149926205132228547433077330574325134153404423864973884487732483527701368886241781341002542136251623183679256252451094279631548502290613508750893005674753371618301436463315941503155165792238658208569873682684407377054355959743113996520511987753009589878084156778280046772755588027419627987142820726990839139387235485424607213832134043195626947491151625591335556191657626244445164653634131851952542812091773134393001915134612112930353490441681391697107588960962883565384816591503182551795973554487001857386237172244845227267752609847754915226687035961167754689663214280222561069486789751946276535234945811588108208190532790167911982235540827863095629312930779128638275772502925163906093969722514154207039380380037644659560306910325541522762417749682759722014097562557711108424990553967796674416508811652570269714245138966405925974648367158570204199085900552442526685196027563636572133767743690773103293408482594409623888404296678756529259088760219459121357714719341116236198881124873438431429312595441030351643954974278675760793275939941921803889532479420663252058766936238095999638747767125296305694853979143291254572729944640216172954652890876096445613338562459597106332078549373719269046921295809671337684823096631776882765467403225156354521589675579110100042575319888177915026729612180803280208773546078371858321529741632547363806538584728488043859258274563673633423356845420313110435248508940657084741791566297920625224683451050065655235341483872994471934191905293848131221704680313329675228383205162975127771152093096238796893147795935534793102786675551135280115722432854758442352921124238950255024075838133755289762831520368130197020515506286353785175446311999282088309354774854487699459784973476330681622063734207511690064090059730584378364675862707186134222616905580029459351531855444537845270849753711882489341774283293911982796242720576670006840775679763786118703191720139340158577271167450502926797434416524144777565270575624134458372941543433870516802484521872880842511822655261545422340469313773890949043458743523285206216557752095268083344447307554385671146344777460467800553083783429023177970483385118682440818022108955467912029849579707355541020987347996578452597139021115779533130719587305591549740166977256290440351753692886585415896060841730635470868182089436871479127680501557930525565681515927387458021740599050978188797818241885709435131863175731530266649716607434500297080058712325527031455934332675502966894605055489812154762737478289164829587012995539262763171706511340883925934467567814885765347603553731690882930770296266953883373060545472362185644925476645398804636293512545378180402800961636395238949622349080179052830644875475082440486142368607700884938608771453263361315941643049153807990633674315015115175843928343790185699898258483186966155487474403704329221880235823656938751662779829241743666549100677844454149124065156763936030467273949281959269568762495391067434873946109946241789962318279902845811503807421324207236154307938620738056176809457800776036768634307873249351051985329882900757844891762227872019689007112114998816874247606903168661136259451748453869699380752548421588556987086446383413276808966590487802568875376638471819905855209809898644041041134417002359547591129538741967463475986143111529440236469060844928731211060989598491276463206945591952692200163256119694133783465632153592342794934234716596719366002083954287666451783048046665463160646963059852172391243484238779171692556917059119613834244175632280357806130709244234805960894392089170059797546212288705958898548003714636709970216786673376014216741405677632004522043923068054266952201882637047906893578138955575051510028261489088220454400949547472067478610639125094107916977347127659791257023246989353595338209339317126477256257227434776916733248374234111609074836114561918123548895176903615771150119088451019484080260932115189011899170163973227738971990373718122393123178094449382058834077133326591925334927142695185148557411466313168070694510456543846433488729982655472874294650232690793218672819568055802229748329217495348317584752587372019389726562402557898290698043343678888662426251857827084145543636708972697187891499323795436380227124117251629580861678961108488146773901143662949161361520116988744210644103573885980226544571160604357724708808352980310880774751270945132886423459115843091165422837168567304800902598507463834240731255045037945304296771579031158063716105894861068243827407849561278583081605926696687149589855101476618122748395413573795225160397147766753982685299520413514444348997592026340630810888565442266761914176229116804805547999384629969213115135312873952162946672495331421965757825706483846339870769258750980692318164022409757886049412067122078739161214578697504398781158113442477237457548505239827132209385648393537496647489645393893359864684499359889653130907926562026203015223528801120366706259908612921779164035626872241926437990708440722875724354984739753566451946856336177056862748045843331635359728339952663681479477945482909306079799288229472916179341447882026631996143431986410655129794270915568956995008196431602248116661152657728215083567245547405007142284817138241944079194129524344097214859883655842099632333998413736057750937175013144185566933978877911162285309844821959085922061937698743504847775150253720867685585468324488414091816309521004179040323532696099822407870659006063291993195750887067875075374667605995680023966535668582505936881450144897988319458324306165431045596341975696271722486880715792615083776342540630139616314121202204915469606776727066183754232027562661229852684108288677439206364087289366213016724286080489784841268336966336023056969648437511442270550730905736971921312973397607267134517827944459407848797786711522877875573665613338018652884842285885262448718166447066128699805329819841595073002118573418107933181400860813504943574944542554768291057767636442376619537400784308518789631403656261574807636213885844592692336560996972030512126286582688075149734689186824288078187597086981581600754579372010593341171064403168643182426339166780934628825578604818076014992282647878073134474898595018706106400310053225951603114682684519540161378111443024572178954653951301402295244095483431749856992295048400406550180205342979460289638569859172551336284006967894381026715286221045078918145553403386658644284951091046157667971173318742188923766231358661367398576473560584297181839683903319417123273137367255331324197460512886166619016703749339327035574278847343306502697818029332854087929345906765098955182492810800164830407911762705333670777821342103076238822243010475697788618192937480209744141067501404861652695459873988298628530749811204092169504166481451332404883851188121678563220959365617682770566755279772853128350627090131869747876860464089225289394851238356517608825212526812732698377403002950554416694925901641838680859091771921029220181378440262284981257976669355377156073210686081535391562457077240323988586885334337649593282467453960368349548419774617669806878714177645186643960201685564626097566185653729510169992403419506806980250643855268310136420984490207353209918141335011069962038746358840506514619052603146636585632932103902096983651343954073896638602845172598431816604535380870976301433589436787071880539681046381301474799546898829326063691114878237253189383592112379180385250643570703285755383851511845433598253619323388802076182302745532170744751180266814896862290587136736118842976501755714223451506743626941980693196459662977929701285422247884054901982042045041755852733983763147088158988636651386218860041872685032771435506069121027486455558403235849214974079053868629915441130178515871585170002399285087219040511601414010000177400413153675434937157400819798186983745901673195639286254944106439757353672575917249207940166741570684110361494636843235379704915168365433127748451311119613202735584166686531465430513289905727040643122184491495974304176917295410559853896718786104864172987621646342112154924516898955020349287035656199365952305573956835826391946544925132586382384964338011985946084937834115257991537828106387652443159809179532470841007491852865250071696536009881806938679759536706905451264186509184482085221659764810699004209151881642698893002570319151388768306845531863557567640141214990162190769800194676944336934282879028845045827010680474398064077089891393726614322647119279430701989270586842575715632396715034581091398497294835311322893002408512818781264990178184505901060520943156474152978547613858764090843686580158505174329160479208831708134502059978497506940914259042758564492650944616871486542574351513725290924697234911628961436741755783919905785771920357452281757133476019115178328261138997258005320337903536210952432016422020788454795734185229763453963989601608898562618578610608587146776698133157256094240982921150178932173135342871295721611837279294911308093070509239296115556811923796012458813447457924428443731050663916140978936287210809488477395616034506318870882007724529069405078868825883268852210405432227970152773589626890964637327210488815251138173750317584002820471516316396853979904758548228154891139503721261687001988932797222746036846196140681971493081064828585663970020104321054042361909350720578307353265947666906230359850153380860856608885171134316138900630545226405584045468998932184090889056582016002422903498074777946344440862908210312637529614942385631327136175275974106551951741146118030016178438061733028175573598888259767427766115104287153385194461769653435256724299560139108958313055947645685152470216351306868816427532474768965837213888531315561183217186212320099355692007634988186547318991903738258377685630673813161088877398220881154879058799864772257332075130653568018922506177145937541676165295738243445696320685546987957149151394012920402651878902747468678559148336017726725700794553021746971971913193334484246611377605882264211233717758326878020000837029339545062354232422296489190792513890290749788341961289924963987257211761997098912231175579876748693122349704589869624884049500368982073495930107276793125433896271203006383418497405172287370641630793678589431623968250117038561988696698248957078376917152635113207149111532521708840242112556780431381416663664900207665912571473519423800841043833850161257411002820467641292645278984258113204598398238735776110150571087006149486578881181482649362692281649576694252663229838350459162630588463466989461670692744112411088431881715469576337524398569132693127310299502371842845369979746348120245077024252975617043506407661855383006842877771688592075980653457117801562090099901933155469612804450301438911709037040684212721111854820101496787550144136632981519047039916422839442260499791687966320922711404758646042386992217289522269867141323551575684544525448271372263729606810795290098542879703242335241569248742877621529214102281190364870604154594123599831262040819728280807382707590777248929033579076875587523901417544413615735403460930191031961011252255770788782498577566111255142694019525936932272088131665773213965059596517680086340841279005167017110612917041432023395225375923183398912936929721888684026137758676566143956034208129455208407430088822119546162774744541444152756078721352886934316936035031074996144504015788611673787677080365384355015362509902324843859128524685710013511018975438494416526483254336510147705704608634595272648650054945587850172157739790290030818245552641055368512175206056086816736473204268032367281001961393682942312146290442737600973332825849878665512639110950482234202047177369058018013624641100481510121058074249967572256169658878843260101126572839690023934652658523884931331178248078897012678520910243007950136852895166319922035117522845492480048144456846199844713489452848973744878266201308145968896872644838226069248999285909216710464590743380434249284929337090947952592947846404367131926608879090601236575739549164164844392323939515197018377177426049540817256937425086702724766321734206780248316780524342146898160448778705108071725337362769880354917872930676209985282460106786377210820171408525624230492809582858648402086473764994842806770098014140853409339964894096159494369586952050546331729882585445337740005541004383769789295176699789053427505076882126002193124660172168509008599338557887303162103248855209089076478700981700920758337350300524649833964931227551151225467149749103217124395252310947640007059232106377277665468724441046615401716000578140085514716192186895841256942157583265708002574831219581279269904218960320198085084597690667069453788385067348964226486377183588044910640069874866735290539983202324570693371602889700959763723114099803845458426929233195715270571158062508191348794515501104426480168455773394758682946304109700668830822974161329992689134977387199133605998542661257944228589646129579238013375490576545768639914403550673365066585573143467665043165789144746311750336397967566044773108904263870468709013861796534008892820956420789015594749244476557010227501567342937743342775505399329955422363893198429253987077053738129204700127713893032604105385573088771772111020303712754628303528807270432487894990895791298798070330319786684633012646478735723602143742319648209354043704069141519416466251382614933983665830749639152408865371365249689470572524881939018197668061556273357104030146607158424610563682756485242822221080286556593142226919574835188706594398120934627649151401719793484746777476355672388691690111314423910890549951062704613923604991830828711832474094819269587694291986836528230515638570384453807053653903158872515690748607179592091811045384398019789756815647063104314785914083493084836694421930328249077789708736723594304821933489951197282203167752755108418228421040513619618097783274207660318301592170206266941021932569097804275358562461794777700135261723974612422774477394454478704479829144848077851805910920546512723895482387158097492468883600386856881626933259577033176699155770348101608445536281110117189377167588493756375696337925078314576442036660340028844462256280041601989591484755799152400003999544681310130184601271373919186203018278334257485989234750447103770804140944617102330672976652863422618549736283445270567961591460953512965138088622136643099937150235838287134342963221896247909656953544438857036410658334807959628950495014140245132578961815877823670431859928574163628931921505055968628216761257789539681558507917120661153713086122139491095012432102157882429919921768288797772256178986499107970896068467281643633253119563584448234937631981445821499163032751209126220489141150392952317900018849185576890220359796149574307633092056991422279677094467400033694663285858087307355741594295967292885877951070768575319400637856976755974695190939792462213109551982479195458609793328202974953835604526536099773301190856523065445913314637128508941633583999893004977646377779131826197040969659940514129606953067483288683113478284651420654251818935714983833850365548158803718966297502630787393988142567604350250740107571187065695823810771570289412038946329353155241299935344326282941910745522083257544768711431697743552514658014915200535951823527993421566204013403778832181070707013352221201131613091040309768759202522728935166319827648815261518571556296111250058215851682963497531006521751368050402639185500920165952682424857525839006260907627063408536912919308497877663061193895037800790345747558813090376731997156646870964965425035434249412822054541163927478330798547392709477608290613403291643521907724178175239545457868738826745841337326251202210247656344609200867196154194221698084534659784325259194524889825476814130376927369479575453707264492069692934480972975980896612875616371134140156836266837573011622762337740184232146796763058692873718216165789952906199722451139293468955177987613736169543326298136193335613116076142355378503239443940924430757618006772899755256924041496066134857751535956464200900588767693428437604840741877645979705801091714888161606881757560925403467151430844355349960460977914872197352155143056312368053541785254169131107613303270274561286795333985415071522433260067779352050245887177288655948964913923271630563776625764244274733094013754855453951528531113953718299523753708444804755223958337516043660381947933458912740878939243819381633114276164864638609747038323268494870097375012030926226072751621327227831331547887333062117899087126147117032738776387550875152709441586704472063844213316181420711865039940603411408473697353862605454127723779098138332086790640444396359246030084047466819018871815554749020831537920474974392235310126916168962056972445486672695229324028392155517701712704613529700880232539904291097716978981136880595941374318200556231413736315610667954387922330676889082678464049026225246507905116581461588965919129137156082252170337234838069209689569434753747166032439797341810769136283695487115469506091527990504744654635280443844963312308382869498195878467358227573910132113031637461849965955686627268714836282776296815817522968057108792303399603657205887711127302051334725293997032832388987444485576309766971235722872033202679382486895038104357033497716093683943616095038969184687414736765882917870099195927703253020427029722351389064698571392892472741335903026101913193458935809996618127487529005143586414537998212787389873249499374718983840955967509038268354187615662598176796387710132481940134979178946674812456809171307461221257485219619734541856771685974641894234018454430415264626940498913896243979761459363106745306907743473541422585479217561667958118563655195154321223196468727946702793846101299493338302140470127202996908584183579247363823604693756971311958978079848697773230663105092811419846338175499088270081767302272930876545687166638085059417853836736524719902489955912746314599163084730921255601305964083673527010201870546817520793428116988422931199093183819326199874373419446140201067295946755510704765271272188520016114783793918758482730455850099152764657143225809834380230603429245195466711002515101017902635186201624319712133764853260876909618967127286229382544275469783080076389678142367082140675267573144082027415724660644324938114179961537907470840250341453459797968720629765731851740913871077462794908338955498248350142581111763945479018775001478942505372754053472141358718495427963617548814602150516553195650129164133116258166501338478068456584874466613112861410623308242278159659891261097069402807612775308516170110958265519617223040295201207168429984835518094763505949985079816231923494174414539164086078203467957010264340280754013523202677578784225853616804609751489929083299769060613741856892516213162539689227350361643220969495207923770136576936612205851971656522869849164586248324149527188755009473209475696762027770619840291296330087534639474947720566334037848027790070453042761912465506238506046564992159023391711338249929618827832839885444758235403485822982240423341672118979675727299091320360991879237706897455802438567009884477845864445599686486078345079553663973709133097874349164510802550564602369602330226876848001650408530007518549984651903302379245849050498241718889923625991974503170089217954098039266015979577988103960042969057834294228876103216899258645163196902451252638599401230336898345838130433761150313229800989013162432305359732979970575931786101305050199346460833516387735926655977987571873778487469851430289693732457304716296114011689603951189964141136370358447272560116385383559295362346251405063670605386424177409429004101674389429271487627976616660586419618910417428361754432172044764710671718847064756031208927514012694075963597805496936590201600745406695684889475001087907476202217437757171465963386718380124889248857907341358346513999847156437185839936272206042337393844721424309300101144908790005253104643185320176579678104003209508197222458457624150557122064668447929030266676795392144060926298497333785230462242097932659036070764143150145244409047009518353492245263935991581510104301981433561829229171904295752748937011922999626865114312763642095888166220681415256431974558153280078736228558767473743962263851241789936038281858691720312651485399841235573419832832741367704308039190219312135308669588459835600108604204167546097336828162337320460645816807837508804631286304525112299069961434984913391234370341182262994271400213392850424719372320040341263738070187492001892973043882901535736228904554340253040527649419048393886751595697131725035220106761763782714680704889667237298274646695784548934091621370055789321687382104109062356456955690033001893018448622547806005420152883517949992727452436652560143548735790954134729370514487722116588332711250672734610150229607852514813887450087522618679607139121316178393756974278155393733605980920200933766397190386752259693152965443285321457692883912890713459349970772903304861399138551384789141593694810471285626442027723264584625708164619139067833164435188036031918699761806396715846143555359717192904741198923247236671227387493808337429133962296011565707299959227366229182590892288381824827029199977825818137929418309198229430813667105212160578543319315447456728675492658533629586825336003928311250064018609969421332359204514440906487649775754337362229097364192484047890809768783457315996271551894774252131344013855486172179123252639897187037582519918745981317535580622937947451670931425391361569055374222196131258933150735226705080425854416233922289478785500400805057277251251459457623391987358562053369152319242883148784076097829943659712805387260023549888337723746822189776523656977551906134336260601201394978800930858200716210084511437642737368494996515862559561655017583514479068500567894231413611732314809937170434967521384086924695879684241561069598242007314423550634451186850452376088410748574522295011223504653869441054822270986963515738233281086200640058806234844261230857450814891736463299358128483752422822088085203613961511172442562122344472247808740598929470033616172915800237295998966738332957249325668086346626562907966571582150602042342322239730993310617332933460690062829746765923851557045210947980302716745164013018848994684596244576814438720655290705438797906245909303320327375785167633497133290469642000102453456777050185555804445357549961437966972112022857125420242325286603004773683164297058757605361102454902533039436433111986380936832609043747815853987784586650505972132976243492407743817469611870802520057916559845687422234099002901815423816768728556496117688190795631535248676629466418395757618719571136929087809500628570816097898557802667713088201775748837601847202352237584299118044704593351937817155011787939906735790371488886238884612831784539761922534834770638345979509461090799880927988266616243094691397981435048894064285185203187815091915450705515265974605593503977782871607025815589511513336421263329666315698110693017845094597762542127404789157219062820563249171595267870560327044288713090343699454844478060416773970637839384736344561427263726354637574115281331390538673555056016242011024426859638034738263844773783466337260854075726601414051971786034438150920938925664804716899389265664100411776203690091753774984911532499486712895246720192377937597469537049888312102264048698047639308915654222986098432834556446690585736617521296377358207784089589992308759000906348110034325855161031547095534447261361839813785093760751085640953819442813013478917850074671511141130113414899574071879694611697500836509817015704257241148000208473228654077225532435185498169137998519266362906273300542841242106962388647610634076414183267792437687206276701145788038432877152328853847018735562749293260218988496175703925056845754857678868812000043152473003548596142357115642505655041588562042776381115098378734966501416702188994084971029988563536031130432400456516087456811782938131124396752892587858717051151840615036492819430893112797459326709826836958560343958173833688659170806283260625958462541016476623008422316819712901013216632986545208535872376136998957883253561916985846839647153088812521416704738911493513609977263992938241806230399457322184016275551646095440668927027398637470042873521098089870535724136376930409141500652952181314888975841354523427286979203009013286183103155863374361243030205745408875963080989090330579259087264697950424545610891157281427183591656707863594608734187877060327198454141267897861176614775347005618659953682363516626823152550732729828732221257652921063946699737432830490919966755276875960019226573147251335850869309411640669848711972928052578004089554941202488602001792492359650842251609463470883389275088852484251349360827891750308807296834553532380341740887100354475812551766053267098419344023866536142276085509539992223059288540292456559380141363981751662047052528074107227076164335285527408283826047829456081014524083320541733855052382067516201074781102102299852128101360006946878589131503065240949551279623814756883256584754337754613550490414691721355699575191003591732493935182997553646995274981325518531050126467455205931250935478329349986162354691066645770350305669255115608788764511546231235942081291358535353908379658199057623444750177027745638192076503565135001372238279527333528424734909811811235591469075821519211017708953915410369752668827507165949840291044181290099172579427610495557121012224806979909130836099687752379305067121704422626082552642130927696634319239983905725857566186387622220398411377210035007937155786928481145554076472931370723117397736315538513578995313486892218074600450385946953237708448018028572085412198879846210146882387515870116777400720992625853306101862480821862607494866708729867222031729689854375202607714550676710416356886750795855458693184207111607762547479145667894533118268489508500994192381959929133569832149384327688540567091805089398754953466048394427949454439192325226814242572556466973640059286317769050561179424893747642846915328134953524083606213136505517310672027586224922984611169629914193488164854364308713537211539750270508723068694672822776999889811478922054592969531935096781086928677691561052480143924808200248454574583757719207761719291384033073872054818884561365849363292670266106850080247032962992741576886003103656699234323883632248246701479698234502157457687592703425558687773523541631665725770940299469405783291420485536274609792914396518326640510339309027111319483518331745381527395184902573472335438400575001760225550721776212143896507974767503118682439239893885294137938276373469695983007620544922847903980500926615259719313592720338586095551715645447813214027132532938268340029140909981033546523394023202146558030320128083708938143098238040461264190185592590810054718599545265154068813731021309209702602884297737431411200559167849398025206699415693014956754102987080389746920110755418594606964727070404659297874374718221191359855361974763417882527944363727411793760225132656896398885925183987347367937035019012362063208685392772460902304886362994073077945089974821523270707417630778890635531571088221855018748011230207311317121535926005948524927357987252359406192236449849890928755285607930887236500036095933682594912169217315885886433963617833493082175630967361552414488701021325090617191770343688076545295446309429323966117411481014049630005245800325797023162870272143365954277446444754202860136811356381573207863161895826939950371240018936642123801902820160039237033337981921857197109910869274782199493601601446242226966981851451520239940251405890956132487077451604626465164471232264949579480540729392041925010385236401024590493165193219823771171272782239666041933898226899200547896571458510980069175634779255789700232041468040336406685548275741303553672904541481807019972743158738554534267279073598226190983980154352377983657782927938130588491579946951224344755319121775227265531999847511475777457448419313846558747358354453727784012923849270229581372215741564041455630359671831400602907603323236458345550299476656579822568171647727500442193901250907807074902573263580448859924973582921353172843986556604400701512793442566150099231036460297378779588812877541740198123345511009461214340367860283535789593669155424767359166364236863529147821921829599902877809558159837038285793275374745084796148885914291101543421251687134052070225157181170336547463862459590676814666512421093619600036823648511865030049007052949304000630129052109714670230850600566099137131985488082352355084588651673776157833122968877335309060531661885114310352463424798208435795719635277242237117757542378403089614926717204947070654502998462760362477549509409018339722174487986700630124335806997745559510832419791319686439330538853478892830073040750773529816848137685189970092248151271552828372860733009935366113479335835306836554882224931402977134890143658770180830817786609983981142146202773134543081930211163244326168255435861743181758187552592137231169871813483225253760234039434243553710459914647381173041813503618333507057565502838416494471545605975792153123625798710680886030071420335931079981188626058742075740170619330102451315070638515895946873793069498837430750883249528626464228184034699523684046802846528542248138935008004174473206274988497528028410093194333571240314037870765068756308846772303347956597789079382660598224147575309980401037260285162637814289929429574821635887906509194379192888714363718080203222921740130331607092829106622277075743313313893976958275689522795268097856247533817016516175179845229261377136226019611184385005297736867520234427861778909098972571847395693655966257863601816094063867551329813126346517534791915529260077626487106602669149338340107117251206971666105290815081955652673179352491001086198356210729683230788642320369519966291588639799548270919618710344465610743751399987634902041709029388291055029813554212885808971724099227684278757097164774732945181941008186388722721410865951920311167810977318495735708956144971214428922666117787107650275302415169853899086004403338161397710822104433106823799903286613794692182474291450127033895436356967389702626328562699576870664717917305049566345775909074376485650222252876603705141799042944629166678982362426132379317120682787279300379712383664017365571903938432933410506512186812168406506865396125090811167786165093895667041691470629415002758148917680258297782353770460558717779163857867439135533687130789716658599484719550521888622228131117969503771448748304968906414760695498124470106977560927581876754016892647605486636115354221241858884415498048413407872781446910356526109279468427683328432366319071175793156034538092385201876261511736850631713939437913638905159401523654905616564302690276848523493693002744274584485900095857939146819237487044119763964563825067303810700631736375367888642449975736195083191304697775606052483521634122894219412155431394333862207392545175975143758171569473384159716424270832831592905864208638320845929594292685491445907149047180304576555838774420957202058187528215747767181251090146793138690007405504001384576629271250163094326305415317336424091012817355000725539042779387114200264141986351055041657258333063557206788551196092295134677541500988467420146068226127721507428145607255758361169018245182152840691715470350512237007263058701021974836007909381778040483169628757597433883485292749374420089141642757570514656498421282495826877795042308400332461171298484165798406596594942631095807050558968593062817959764964193401192389775449485396507166301043689204005879603441262232445849886455718737913401761113202090811627782788843721491502961222992527474104987186811822241465896389921667021382574270461580713905873463261893865260324692604152939373416830609093678474947004988992939493133576540359277398242785608031079419834337817630752328094620998128846421724465374275615972064937974910094192528026960909753090777915147292534805247611675943944786534835590820724810500081711914340678109565849347996175202919067105983129442588820629258450642063859271583944881107897580011435038288976738498616114627321630191548547406906731873937177527319565820132017095032332983767879803825475748358377595348271858110695735759886019480478308052050874469913938114633548630850636505931346160037539368503351975886713889832834550058348188330596022201851579052172638896196001389567571893433057555415068903000784234258556030293992258625485829452443956965513428111262521074455573858057147185229451179744351073974301151504406448678780178763428606451217913643779384875781375672769332253446365433853484694225738924525972272652425907778062555561593212824397127381320335696208169368622559283151941116341099904808263808130417417379049159586116077164708489636840012262845094587423550596457698079023414239997752728485089541439733574258081191178738685316841296976343076658735321228448031640194043703548793582288026323125985526430391169307676292654855333236938472886618784638497434091941205306811417358489093118064899391415950733893299890609334872791633572054984561024749702271059811118863013934609200653402560858649593712655706238650038536611844162449159191952309922309185107169712699116787831130631948211242971365669593958866669631799434152219984497791860072996363556786297202739229918479885769162198723708652425522820314189779764491932880459557091973329355412031807235344564946127642803820749697443804146026615776353695883236384884596286938096591891387628492160899775342520098944767799457609615275649769529402674631476918091745385580529893810719679138882359858683005758538003873250890636720169999504434861959620584788086237240728791397901817094525359576594432144753093691797011829861106864860328192098581586613322113945077028180298312212597011278485798292599189411183467726087421509544707064422852530954661943091027193681021004923940802666552659085154679592023746371719291277283099976383724277653760161894212679815148320276060012713326321489673182407799857971319887213670861139763542675186057683955770886680997400476011172399414104886048188075432731534450577694771945892823239135451249421429458302779773936148015928495385991660914632080023024062225625365928591207101747841827444194849081479953571975670950123917737566518232267726686054145933187260334082476908100608777460165436488032020062399939611360847239177699870151098124398250583447841453548831444885838297338702110311556794531984912813612542988014062356817339910358259741054386528236455230452015781696772519489947530950123931126866054706604588747223684194170731091900838693977822816507328219928825232694838793442088233959893261004180592387318875862892932843429154285044094728446235957929173178033200557858784382676537311449026250134939442623149629714845897206501909961341667752048644240108300446644133588379899466825353065796771618608276561482996742554994903775335236734588860131598950312947160922322397501003454924539372882287165534334783592435888770607412209588301984672885216451275760207364148191478913374889121073821352392676878697465247032599441600679663591851414018125281203711813125807041930543627558788046345836479783916680667494213447687984166986412406464853119650024906446802324238508789637530327722458469510891594872578103744145419142143017711279066523561354146355780666328596870290294072516490285225010354689788489248631257645115950298097127334684484243109598790412014361836755968753339183656784660689440275376438681445820980135005229905060903990599014027114238240931334047674431945926231988637337990387810791380391098550757562564479104634261018451747496189993823079152173070720040942062838158347296108204346588228137715725889294186495863586374563509982947021072882313449257919209250155989302668701836126265587065727031538180031613787781874316763181332027813675694348931707021483034611711762117221209807373594664697447752917001043294012236927271208803644562642067198903835286528206202769619180597620039799675806799701819603692580842942924582825539306749125694904874307753643545222825770820129908127004347139978465076632892257847585154736708835835268816560403300602448403194340902774498007314457929654803356265257823368491280282766042966762338198898366922473929176624640682131759463615573449996429682819173979147143339540212334827006969915261591710395122485773098233970623119162015128892153142443997564522422759591178703943748966960860373969177417935754428233481994121291733014701338679248096731460552076794612303504853315805960295993934303690732196129881807005467563738956746630864273111820434017973734227151928255052589214669018556763220819127068260606710466608217297347276482670785854304475929177115047530478445683854319321196409822384403230173336771900611012201457677530688483870663454883161061791969984124034640304944594291199070140456694780828768732764317690509297670694698530463348987276418772323401454680990845391213713870288424508508732608770098409296572775835960432532455328418184913787023665342481515279158129228803598523016312433097238431296766523234499884835579926715078336299893162455109183615579897395794100103555798025901926335891430227404272706287730967192424445435025843620956954874822407110244137781255752025367557750929833033512724700087519166751264485508804079541466196068252433500121825691140791840949720491688816898450855165023254256961758144640117880971225591783891162756779070493699154717848433523831440480025762035087120905249172998475380257350225095885815797308012842091710254691338783624337915327106154045984164370870876682677269303406517397044532573745159718217221894693617199180184689266525753893439424115776904505136557337567904203972398927273389168096467538905138893904512583883011088776767990638870244873605996306434161013938205362679201755059821801735228056426544434825603265247768276450553335571159557361271735800742339401289169866726388149765451849421673252514464021146890557709415369102059033979542287319724043468239846490146601777033942749586689740032348666292755703250865074080262474677262448050781848811113719198656770896990631743376460861318388919902735776124667061006551627902453468440404956978875533519949261957579390446023160285154139478970526198710748741332580230246792503234651569088791192442767021303005237303521262227962976769526355090313200086340679405524901891467040767109775558561420718471818987810764913413243558365509934039623400535282927522790226279004676211503290559922928977900384856586433186631958458063438414420817784333139329996646394189203896628576822614355011398455538543486622828006129362732925998176147080464405496675437944541890512096783975253736556722996723228253794387868075034807671547531319193071904463934249021129551835746239612464335032127771004952310940952601217529857385467803269505176361970080320292211711711466632103048885711459189524396103693160313272932958144618839465264006765536913850728962775752358373718483662000081357992200897376354932481853295579688522313885515697334995838743168011997678018571362258657566522778339653210082397313977765694439345831412968521957349652994816498430857573420758712511521027402510874117382384591498192890657046402670412033546922810419682356304052614072803644404297060437619300509864092251078342297672310622794235691564557314503575970568015113039620050516495456085421055886173736570931325718318292497520032982445838287416310745736551198498101296721169047789152452311998057640111021405217196317807626877829936059308789993289667521131031418731112512417047480834821132828814870558047861167584644711415918940326691206934182543387212627942352321645614009595660007541466299012574394438301942009461271830116021005576332833935716654612266281693694799388994360184226088114443077785516468838361142761569506757225099496270172777979500967356443620515097788590406023785594816755813770723365724316773172945611500058068527457138780179442415369937245058960314086701824372080020813509403840365024423220718156354119254938431089309447496277230895903889532783972920721785098017557003982542964294961937909952157343885132332076507027727731899894637851360085039665368856842417359805485850086545502622504292617883986905108321269429977549169867349986849095801726330428133425453819339169928157530359683101081771359159710705914317985125641868366496306063960047463406208381705636932636509688410513181776746009337709060442907489359606997910049686224621804354688535739207884072844681722521554186158310319589018010606627571887327253230458810242208564844445670178129872541824126633489519840943103530656697817148414336886371009799215064917224444278472037380092100256613020406983834856272824098802157628080825021510093130664129872327721640328348540985929461233797933021243395860284924290984045865932808679799695386956045765109999214584319108307629935293645151089792973727308726535889252819713043575710471386656277506342125996428152030471660150577786642428833789943928007978918487079880328621404167285828067323893985802011505841279823886382457586370337842053155107670304427504221381139046197980079134141191955962059688486934899378623577957332076877806099205540936123744969954138870304438846021451886314773068051367922711692440783354676720347492436095903770274328606628162492688452894471281435800158102163163189824488034579782859700780204533963138269701995394223686014463353672568694465393662636395916100019558577574509536708033167960227309906134883954201058862419391106689368284743949398640728469638505789304594326297441615008699955175824942445420232764425067342673843640300869204018448731080843416520503945173983035193037113368249057811286766836144022194229963783052203992066714435155545581103166351741541667874045189852886825533808454656953615906293773017669374039211060962655521340234401733871497500142138265849680379913473120524019451581131395352592533837520158041215888198654491646980027981438496436115031440064203261421661820593755617046124386897303823001230221541866601760879185363476742445183789173949622001930629896399121884003089358080169305126338373905571472207556485970221290484713774731803194816399814407037393176070959424762023100669035674940251334037872156952668804306645852681793150180113119605036899339684312561586203956358481528499275973243691438229568860759747190493082786730386385498413361361737195189003419799946968145111118797542276430934358191198179322291781681575850604307190585260124653140605742513823168520941553123698428466744836401342938436471745558277248021122236576634390714125942517070424055538530250505511277443992533480241404025195348943799984628624872309320990897992601049502888733649501935797171679502155870410422941097651959670468170752187951037893191883179999152388984324969860120957357665060129804043134701638219919923976447383017511583123512870081771471665811079527378388305188315468870741496018587284292697341347153167292344569228964896529528971991204080787556696964945418412557970650989133931440796096577491131022416209486381386174527186923075866662678136016565488079346462926593494442737201276515215013331660667984614889250924935782306907790982057803907058377949902257850333289393346491010530936907288711776321428881587884546597942760839429726972600336680611497331060236938059015588737656956334620357275912436329021652694700797763815044026252109981575297901729483858885095871558426461106504283893463166302551114549898415100492091872257293547154176491097276093595155323904979496125127418026775907123639726609646257033501969381030182244865740496360239526632812873191109740066535510889132188759593387805630291160540763367284410173233699506245053087416315705982199664665795664471178977266635548879278891028197312001583516480081615981014005546717248228683280113947151441969330371544659907102712120147470188952142490060190612938450455752935637653838452382718458357200002146478830282777768174541348552749077330870440831894936895081182084428420081200394636573432624051369513435954751093548786858880552784803260319974980006693995554656436659311357512513966161093591838971868635517628080559154691860536127143963299882017933019834103745140353678936469664274290128335994857806698522349005630781377582493606726648965919053893446572232880105112836334322119509985369070994312924137917878523113230058915138157691348994520251942350722969266726581735010859383954489140087231200031132813332473527423591180606357828730158763142637381666713238011355113704896828894474371142142126711714131556406627025159003811158566313282299102340514075597889059347733453088148288021950419063770079951759736629740073197639547527560757143057767488983222362249365436612683117086667370681001139468218654049238510356550150807308432638738321017055840160133383975340362987997683114029145815471006299480940469367917599883509189527903354782014300966864258024482038012122039969622007497528204485778081805053654906011672199252931290280945755468793285401378042301552269783807539691268923025286032258559474526241529369088422447474240396019014420175411664018631083449753884652064256604757009907958204783243713336299300983813551161196160640130446615376297675116599186808365423235776357578780717622793702326407935212032498175288594195148975348140137124451769398928892357973520530239575455481179887975062705730731365240335399790945605471662373555775806796539987798966371021362053191259437721809626489550613358247265337189758873553371804663040658740653206432907646881322539034282395770565605026915892271929873139969856806976757947761514251409308081939192487156773256432025192512231497480951141849822627937248441420284261923628911411240183840402679265754917545430475936033546742008606618546951778866282084373136144678706365680070991506842884575251462866497105562235915590757137162382432920177416239322194673147163752133699767451194987125329686610542869466375762640934052061631044200426963705931084894998345315310450744419244686801796990300255976873896833508413467930039638290116667225904745616785167673951924326996862895306775543573746831408594356698943089537800795256009703087931716959770376411200156348634090304550059113321294948427605065829822677080888691750663684763408452864691322980576585550675786672882662733960337897050050561028347976201302521369354643142085814766369154764176774527672608628198304104306107273202563524606528435707366589108723754919372259184525682808891041289775024891852553019888927153051536866610438557033796591011614463934920490332874819944775331555168317667326101422967856975753652089710480848755380083665658207459891609979589665369179501948802648267743385984347554149944066772813824513238152087799411481734891661639681032837338498254270200713648655816040566602037555748170381131789939254353847244965311900043243482291737533679603376319852688567007690662271992329129271668524857213759131372914619838915443233610073953176558374834457479751884677862960099636453920318076738993788866665126051158507627346048792423015327309475680196740216536010582259446385746654179907179516737743667381754084882014488928971954317831830074237024855091357142018921951711734366732883209297158945527092049606412116349444094800833922277077848012979053667514767605154639793054021611025169944880095911681198675185104675602168153621082462061063583142679219973650793709672819709566654628349067416244573060516111244028255547064656430317587560803180278629769361634211117498200136741069110811094364364366822551952238912261343808566455413269526258405243583866581174109910410921380613101685267864177064836982832527253930007503076313684930961182302119619992025118297173661221793379150403021603938533962655628685911229662424091051381351487637502464930021074345053338551393280650247206094321920625092632941458570452237760530731182102665286254515346891764566727452501820950917662318885814025785268306245013809975750991115635689941474140085308187268556061826427987669836552024239191059155192557173035909835129247331397843891486202638887972922117340521722556030037133719648965990375094285821246623706246492371275914364497998232648979652492304560720998143594109616690955567392239982461161085328634048892584955963908755942018113883884379931080202101045587051720587366173471740396806285011638766369403436773189091741744879034782076280466203912890369882192609616170055274159773247413848702074509845028602565025836165272421650659624002890321014644879286210875198574583525095044344254704666418391672050663544810985355037427168631436032247841664065448597362700565027832688988098455293408851722697851337646020303079626984440927940092228716314917377093929377843405387261892837835532085910657347180644935078695796732648203658165354457056632684494992868007891211231590132706246058737797679046584123924849321292550729895833118378171705806792886297211754899292409232837390609082355897752012839742869360023685664865949655653009784208785806058522392219044189980032136752523747889533006760615677020874658495736090240514925375921182704615568077916001898148557131971445608425026543002131667307640914083453688224257925787379864882944653865984911561303944472659564044165769925204768814023914984808900082106498621035650362757612841800582206931496087653876273724904931691509195825037443162746651652854435572885010718858919458624453228133329758411048416341572053782706600965551635840518070399466647543033110871102947144364967716895982074511109743551973248569456477928135843910968095547699343854405745847257259313978205045529053271918711217378950054540001612311015467033244548925924427467878966523645057627518837172111558012379846100092439601401573217205913504111483900168912944187335808527349716182715847657362995157386237548598492007389123800599793471007863155055440298465958943107968121255538830986167487784318029838334199825878312545372568689334558971080638910865825553624380958355884715583507121296011795324870522858584504828770491251430620699025866341373724123517480312193464917124931082626752203596330527262709111761947492380898930336401614493254672329309465440639371334446832709346816251951718650780188707098245014971353477424104545708375031349643417446768258993340229230666507414259892321196360217342850866813051451466801226541727409196264205812186365394750764633114420480498157722825433405163654921011526056176042310376157153996842690049457878741678141951637369076369986992109610078864018199694255486886702935575534699846202127297386234573051118686045715189286449375220649360539889943121602202332939529641199330471647806745252809916773592824976386583122887945304882931845281892420465459242210868202195108807774956265078210503758649720274444862154106212080179621983867380198629475782749928940844062991171159165569651342835135250945228189142894901764912529453919304306509815445205714475476058953407363103669309821425742052388909063846593036305270632020835669819421865085152754359418375665164414278545618724093050865701368947223687898425600853668292754274895059980652641357195087302410081368374286087087047268581887194516747910137166671617688847512134535604675102474999202829267157646654809390599987084115355962258475242651609121169544756749777286462878009002123068742441406299908573759871729586606065379202139744654513885505259185292703225045174046280313384674509236364673162759736562745229963689415437396403058782547374538604175775959701430278351602507221966146255269651443362347600967836990981909859915237501005023040190463199790802971081440256402058287112128984392104528656420178548319185078741702052400934271051528489192206318280447800093965776316368803085805755336756213137342114958937675782572256021869252755195768907992605863632735596544057441278927950107170102750334623690136848063295016748579324076350533200488839101149694277108765259874991078663256068717612936429261025095251205284589822153640073663287278432711212332325511750924351906631711173823598965572996540387896112736599232012321633804585956442266854776868261401181572597247273196231148400792267747320873661557379098850990116032404027277933572159191496056987995007691065059807366366714983420723837324258601573128341852656275323315397296313231225333200033098988576919507183583739969037450752097559344676615749404180549655665449461913788614831383575300001240775028156062362961012106408288336218401199770029344416625673487771501354132142615179300412097723730927736023557935410580157717821817697324529671585418291291660730162140371505251148947851642785534792072057120482449438980245750253765016775400205962631874439954144969567187568800039110333500270515053451970174005444636193053793692745076327388980214797378794897449132757215072651249077529145813892792805487573267629364228478798715867707590142123707152523138014104402499206131953987220711321956092842510664588903433663960082636676072245110083440572703159257278975117626516109617207777446407141767514215918634477745502592156708852358520361043901539208276051949337259632854081483121080762094700840236475742094535040242815032511677384377434517078303986059507340294517194911552305719076986252009941134852734095615846454412495630670963324468193479844956934885904356524277054311495477244311907317506503258740607411186031760091913586489275985745700611420101066273357280259901200610650956602102622484868588795059643931620994535543494934303058938229276892549730610144451720746038319261041457300474781640084328362854672997948332258987746014135207052587274264161904366052662588533755220813332707534121311522743727009254422494922212048509014663870922369853019218348097104401797133584258789589588390506445455206720129751728943314292735486026552541093317634702672123214282872106632919393486945962475385544469505935719303352610012688966365473199234411817806017211132449075988819040168107920236885455208492768850639781484785493096534985185378329643115436488056904494231976352193918290393966673544281738085328531735148465475551922895774200150316815746150618439333836701150247723597165273492515156986790764853753644737171526167610368485574634614683162642651502981359134326453836929712213966989981594560095458612395744484369777113710494034114795100504511401103908082320090427550195218130669618707092477637671086349822585491246944982486195147113234720538083745186861433578120218003802185947368021357337514371136555658724886927753922336917723600831374468777158792702181675983642166501853318538266855183913168737465208002422876144797336001662369861656033724832879127551137594865519730551890909832440915319927631796075192210574648461873627959766814070381541563021842012332808878902151855303857573784968483136989930696073137408428662421286708953999897397660390247057133517855364162442420995509056823541340012111165239281319938037373918678101742616998336710198903097227192353060446563840853191627739191325749706480788183173217264475827744824213310166064708437788810710467367640190388418105795729407700148003118082676029187092973940403437435477558601040126636524483904798590991744964780993355393020911073850818909645897194328817400068361760510417677907279947429164591382639731677601771359134439053397801281511514918347857784169389091664315308916947120680768301866248122940637503871515457923708799007013748428204281666696824724469327943334253658289751393370380177952936773441442232727200999903203931740986807070079698071290380820691869266429787190033074590257330363594487447459224139032119933383378423148483090472032606733980411627202346685713752498631420557475409937705201029297865787267989104899816132660671982698319077207524415782337831399830357439475792710794018326355295923289215362936099478269347082732028925946429994624990321296654380895605242246165174954642810322650264967592381990242536733143579486447749749538569885191265193128402058738372991824999379286734164903725742636237028008253814107333028914467091376657255827658648594335249333153312230490042929701020648405481747156810665613485414304253241295104510644060278041641307666439351377839665546464132584578353933156885955566166338285525265219637631221835773208517752624574695673632402495014175731639427234580149161016628575248473814895718282723682927568463050191505676051514503384335970189999270124302529625389501017206315957114547822044341046418091473818182059557517956696467754245597847508306661720637864465383339295970287171982645800122182648088665838568653222342910978031090418562735422213761463262257983551420449467340437598294942171644047566644702466313187684250190082717125093062346874940220175247008618794439508648904475868884902164883023405335945308439298715765451071282973591656693759980655690640782264287816021089541295735648604728890454165507281725781348410940588986861212816913974227225715233038865530210523711081812787531554163836522668881125842644364523882171072545465347634855915787565542473412612806035223577945773709815635529301427211913079403707271913190983941322710438457066445976251294233095539826749329113858408418518370872562563722979959847953315086053868429681138050116920259208964989096759836709796871274984005732195308145117962396738547232892601319879410813467183376655659946159581548707051178018912722933697081563663648033951155996362678196949265381854601717615795441972162899015959408518910874291487135167324543022770061760153755540645945298134516064830234361574843044124535705041038211320030929338677409684808445541240348130351792283109293917737415203062282931359160063188132504047053512939712166875006236809599328534832274930745359767916046586869627811194496171735930510619876187138974352486711968311216839841311448192779286969670685946955871887043379241874816918680996868838476125178972226361293677241421263345316176330011047363466919327590302069806000637968671518790385451034211902642066179898434775443920186026878324048123096357692048671411162110307373137120624625834811313182165440304788427485104211451518529109205222840203849858687306322267390062472300634015952654809644787350624720254072973321954345576843254246942274307326569467076641652825077138815731901385655476620599325326420448702027988980585443374756998453805361038820144955364672669314330938804380972410238328656991967191291270401342720835481763342328224360909556780990967354984978056034135465701058693468490933919749940831541029580627647970239616929025327019221962510291400979734849645863507006932879268825102515401067369414205386789048167465704701937020270879631391658177116701901193448750194237843477895927117983153553694539738374849066721515262609772634863487994738150896994380726647668285337312626714911199087263679118154354451914004504388392574262191250345350773721382324778064257879006144572865341248226609636873915722028368540278670380906693830467263715192341241774646404572614656945150404133853408830282026930760592448813917248852892110721867347759747901553070809233573904149634670966548578146216981828860579183434044978089373136519760699671581646127228599630739445328460828879318491461576911064229033461851351447897128305056802096666316877513722558975722088065147361270500280486991206544243766264842017053928000509782139978865029214250478283572793753338967765488599665001789562447774828596075392558111071411397646860261593381286907554053385654960341351262475130348225700834695314502252508821604247884025024835529322877876254589710718562878472310667630696489159477084149901245288487110653459980958728261136635784191677443683327617147689434984008107016926589028470189870894964950643523309969108771019620753700680792678920394030601675759158029030939306141687203076984230449081346054487029879750708805864882407712519287450183661631700051581762149709783516457638030966214562722212492383419498812002841725283447807709635046270685053573350732193402813430048685349498080615058467063590305420749050617966736000520034730396742965431703513666965104954014865040506916419262811707468739406054910994045610199402284705330230921894380212783475841878274343558349479903686293980237877484494924003827500236834832965834747102337490920547925248348490063235891626138711502278435457943070671976498177504986897578789288864560187906017391963195934782804658099824159947221397322157844149757825333740262327030004932061305947742645732913721313481691843297385423213862011470371718983365477141365481087317515877298977144782894272866481552887310820239221003191777431128043632457176928794850187916437179214786897828833255235962017590917734170225067848428820270984849275417516435827291265077513242967655229446903007566654772352304165158904548997004929390944160009640401762219995678663860135538209429517803840938380670562913648671126714245961267869997217585134871371735665282974194022523507448210271489234372576414888892053813900319473390907007758428397067846906484175903015701559818359726006956082039003802442178466814951052328596904165861791844671595706575935968234724828024609376318587258283798264312532803374837361967010463297512042950934688492498376518454954842458964278465275785434894334510456065444103070079820732412305798855550992875765159855013729205700841725069672937158742525955389955420925060552705221704721396662550530156227808348967106398194739490669112190649142825782110552522939101721148551251697113813650699643034813422735075966950651906174353355746378418673933893803462282272813332770365697827967193018866892435240223942254488667809815088725263788112068795279567299619847370605601135643921000929724999505629376652558929838254201027017186297686979991999690585181764489275674206564345976634585972916431877929785057395184074080616089936825557552081545957660027945467017167283175758202344585142298345686384479931109162370322853583550602371735945702229220111635503082381289755447992824328464256006236365976872154539442587947502290803850263437656439356357337929326779511720174154867421679838745736599928753852221237549386792395766763717233500759394075083222709484811699551226113230426976451532629299772559013634296896114868149366176068070891639848741594025032488248055287955774464332754562323200804137002454597907688743637847265469115077193618982724672496818213925884426715679679656187153944884909802895712744564577797559068331771034206849554869815846092399732417407442429966162196799408916511626404263752762147558926290189805505905770330099000334317344649608371023686122320383291621378590163342883367361730385258686793570748495138360734411576044024122100555808673630116922591551084466881280140540800483725559560964743189472173171557762212522312211570160795633048801677461030768660657895025131941636598604848652641059280056328223429728382919136930111895341345992977944366165949872639365001066266186387344549340984516420559163598515382643539910238753762710222940159391057294032954631630291170653475487588199213477733461092877062401512994270356324463292406556101370410310925531215051626748788242372178403371351346467265357965014583883260664858621543193484801470543580133757741012903890144692738866309485211695073145670603132398665332018460389542564076767504918418898349823368271824927711026550157446215956873326069137509236325187195777483361398592525570249175337627232855203963318316783874786875771951688939117849027430806957871260734880400175787854177235443206328922931725115509468106882544745123121844101346242367708350756426585327494510650374319069991558360498810541325864293638213531443644158757229939440544196557447990503076051050907126975009106343740856378661291866128985178750438600025087864546313885811736237679677279608418291337992348779084137056757575809002704345372279098966267751619816204193059022721028286395152620278027763904563599063278356266889408889474504129365648955143990271887807835417268540274766536908984856171693732679163635381790581621062931124715505570066117919404740312614781432081879026239610523809623076688086904097914175388366618860479030392672186784483582173612549310512860185073703076056722359613002005565203560915147634693625201830906502531823829890161581773460802597672705211426816406300495239215765918298904652096144438204617105580957979599369187619295051046666628568405382179902806171226544816211704347531418726427639615818552493772899621751289570791708721786594517518634402737809045256684358636429071563513501800364071634031921395624279100171701242730121311974446464318087471175269687033772140552588096044690636834520176709777798986359669542626359470636116213448192079306865234943744387251712698134638321436464685377110419953899750430992578294647618490531941193830790616374165566352678342543163835934510918574268634508094962798914748243848264932057759243767955732313415057359112986833608620085876359058801697448897762008138849953505741575241597299039639846022214778298790816822294502863399519623420890407896626846047624355796477747925094651947850731637230843531113477802933064408646569639839897789230565205535314120787824668895629141577656766307972097235737849639824808456635923596680466494314091371757489185785732464025882094288810633267293200908949225512802314285939183107578317252246604563056699908635728108716501298728496930764839938522339270695476348454126982905451928180149153069333018660704007777434786534545083227478987801931139729046033370796695190526714965637106600553657451658145494720395411979260966041599865345483874915153113211254247104723639258897153472443651320788621935066366668434450887569792591015388224104431907710204529623525131023696796371962530804079584198777705427068548510679434640741074971937299591823700758778955886616959212339485082191429742163325279854817686986293384266164327482606188564963021206742244417257810692938798277676193632921128886445864733143585610467749892539686782724849166215766080320152441695495590486156811269428563439955704570943751873175511789245304432975117887481848060233287042434874785639906766194872475119666383575558747317723588943997463219913218979283961091789625559035693291078993895174694328251381075488641952999046206644867802878583282257078995548922866584000139641563362523113781985652977634868413368223259450950213988902245543070875121201853030878576363240212482734037356747335381224889955799411159196323454690531072330235903382991727095345739213515475881647154206005599096727335782179599883670949200219297944535528423775228200816383314825748614417188161668875263457925199929058391685469055012311116743046114984525969297830667822020696801371241856384300491406360642674170901335548247913029684848732243484016830666749739557061608807732814768081280176732318082507157823685248508575839175526859686846715200825506323653214189414680569569858519112718682605571991845043178648478441277818942358078571896687804266476208480732838222515565491640439784060769472458878126221356138411462008085112280205115544199282817453637985443859324640420654594842992955191612644254433159253897985833194339743972455260654097916009364112752414303713162669346388625101702515430861717845213600273385451932420123192010848538993975568730444591053541606605443024463981613245357232712574449501788546722335322184382803841699311969384104615739915155993775711065236725009155836462712811350902658236500214762453668332580766264104961095017470619589684429368570624786819233447817981663937747481078991922402756135153552538240653353706608058497718811254645191379488905305659529775993353193394686578218356078822777419569507853710169308985020410915277149954566061672283998360131715409606513267220975668655179707883259509644160258352019983842278295394939896143435572604037846489298794626914321821762245403354195530496885613656253860120997996257832299930073093409737439983739172013041703229916134530951399426201567142083230998805136843161312804919998071528091502584945027452734293209333063766542859467333452347533658318267437380264546417550975261606974566895842374252367828948817377173761551459195224340736017219354638664763330806246349760936237291202862159669573533243034732248586167587825690713585223908488140600137251970671835579567070329433301924231043736397045899111941051841668652901158910845980852774188930434649403469849228690688188255256841645666834691272357276358848172568085604027085349862890407374287503943404342618328568123856708480781417591544858008045829036291691812273330091507740238044971646254616058827125675755646917844609282757432255926596465360722540234722141509713037256228458554549105646072557997921168999019983896839342321113706798273876323939802795480576177102570532243193859769848426236731008660985893995778263073304915732916473860004665436306019003854729475442263209348156710908658427060463269035479935172156800910967305318928913567459234644796366366260168605599879567579286261170768323495217360002511639855969768323458538635341155147891153634818553754138275876409107302816053670802413298536279787455617952760417442453967270441802005387404107265423977621906814236978800009599784600765887441016410377912093130427699847106401164624758976441536307861642392334670903254254956352876142658264481980806951831353701993015907414128893178965348681713616514942008306912965021822820037178578722029219698833228314803335075830638613956786248437450578260700903428084319553578016711350905565673045986809751599129354261201609913084731313842019330151868153304207769641374221738678535386908154002904590902174371365760966911447035099737146974901920159919931096446861494373752830059997777997009366725241806577379029139805783916851435227001978952854945687030730420217168320530137297273792629783019275272196227658204138787966497797155090009485418962167841495298846558318971370946585534065341905475872432669548219171238304329520983986396675292515928629069223078570179691492001054344072253299245952460358630196106963150448209200548167688170796053321932054471178159501180911963422801662556375434893891487112571784850102069930301118142137094059152628619665515355284116979978767174582090895055760511779832649261366288799489071915621678702491462929787900087145008986526030467213193370113066591548831963658533723799914776201847298919678149609439068036004883176731914473910449353547404579577193668848005615940589778238816844885067636517031533246324056015088455751745267860141878572442404231515141483071459131512012778663572534170912811876634783196212985221030071538465479003221954222046774770637640444498394968633523232479239961070604612953919025549298471131878157589665595696374303101780277942233077497557765577741774074962134342126203758502462369904625486421594608289928152805189502233607681161703461150522310865074513510586382688726614476063461738705116063497323387326746878950452513225970571178454713707182525970785727532403692135586799481941114515966928327358264191976223525204752773225221343775882456835652833325945440751676397022880938850841281127181522503597687395337198162898701886335929305362161885683481887655618533178966145564841321516816863303795109786143613147114870778127295465180590952838650033308172447924155829470417005597428732261567836366765375652444535163971711600669682984808482689233218743914793209772971149147328596665870808620597448421576982355420468012277637636388283137537302363819404178830481172115734071300164276668217294515725900408492465145606556192657399325326926980936277543722824116981264626758529105102816196651541996318987644376414161848017656899570504489847981978726114959658645840885096164523165018745118583028441752699541320020642064965938495624656276697577051637560773618537491441517141420345019511415801672592583470345524232212981832738366455526888879599257799736167404618778782303216962609433624475635867332215006729142783845148984736208059774591316121128558919895478542616459907212262293370401452303950854637708045074718987779013981201108141353389362664221383193854111140077299848352622519677210535049462336177774511431376092063878923275935077923151478729270391070912435786704752011306677821369129496365068064074996642481808601273349116630018221232389276295853683960051149434515425701119879750325461064324723593108313034964382836831560880793888546169705283478760705299173021732997912941517405276649817655118735894212467568737339088515885206675828357560592347358411603563183475774772262976055262969345555303439664531280460643263501320375285023131846326821538515996463849043770354797188030722495952235936469261999067877630613478969047815276205508939659419655140128265771272754226302590716679473925323995149920105773820337511990348668988046579102715901112168527247063523624968287239901715512144736792184945879974344416655006318592304191608876786728189754369324890330641506196412073735220221891887762231293677692761304987380797919053844455367274485225670996268465297597168830656246646549190248015714075687948403277425861957364558499277168391313835559365618378451479017418528687867356452868815478895017413133847568126411714885159752954215957481559974089494293042371803328761871724362961595755586579273359981049878968233942790908861524362270257732041874404149311207311263485880697494239498976224293073488052196974261099667664280494068646725530340543361698529959304797020018519420811746728955604054911405711886636932145369113064476284174094339581771531943102254332366336968756688018112977131698561266335408214821560920802001701169846493905799544619223201810568703362131676992321402830051359780250630275149227414917716068464962710362170713287697070174283188923995347427728634316643485783954340056774603131780494223591877124757824580389929099569417919540776309845348313536955477626817853951568307203629342703356583121836394097743340899169611090348312290916743470859504879462203472892396708959337638197026752112071452009568717640040037553462005831144782058890747208380494299931779468179461334937538883272580032313415166929601623255794670013679945292757572822887896595566249151504825114497265385521655300644344628033991923322029624606752370634047229912202767468988413309274534815367025799550209440158261061635969388223402286743956403682394109426402331410163742838328877680375642987707463357626610180051405042945648299579447119056544139709324984065038732593196430271240002978516718405682893039625843075203055291277158502103747799066595168288546735680626391736312463334259506546111094762875179812026454161279247566783855722239482159832350380063319941166942540731667394102717838253561435833011303447973330844486104236203136228610295889268595453664647207901020018010182283657481833457114071169159000971439236081676758769942797999511294003140097831984153855682157025086592721622053751771821400193121476820514342217879598083323651963802037608493128733749873986452621292346094211096516309673705836708571918994000394205048885587430041157216485739711732407803500730665421531084380406741179392219352115431189366430282885840896189153893882408316920828953594146447173582803904500924784625610692517453226983606923131743637605594285860204861450652645357394202615330584026924857174274966622838866272414497733746405828889045878489377086590876565951079078706160458361248150652290442077497334479421969683999542637865931249503114434650907471498556871764808949712012549070867364920030378143657165168441462191399159411339193299155502268237046564212504223735545040778512891200414811447903047151476621117757435149995108589822756192843729452488973264380450420258923264427769100819586340734831249210505667467021048491007634250185189028465070690998605962260237448539821189280858509581431239608419526903026733139857241352464819960983809274712807805074299747524969463171006955662395916556137767129928848343131309563092327578549492660326877677672421930651100158920727873012724894221819738369280665185706987595650470895183732220634301239617401370903403093908807682558732059715024709744091181768223064922581347656962735958064460670554909441261410241315140498131332807456204682870489162081355270658403779812698765776946272602906063802784676387858259809764531434348579290110088643999614280031657441573287077460149702426034518860573471161393815932585775446726955201252650226895187742958970808314623035759810261336912362518306677780630894787930618909807722570887575841003429603099259617003415548122648776129423545739973747747198805938644660847149853989048683377093279005184648563724320291051715304423386891682378311576460654371156302447235379629160000826582668986790603309850380148300800955979627808711331230403294721690233660451175393100363523933456112183934156633758112957634508598266547357339681041474261016963563069135350846359100844201254573492807507685110108533663309340588170408796778309547101109410858761441755083401723741854171379389569154456592267510642775388504180476640047538686526890190559777603861449503211887781395270582654719279429692451833851470501243748673888953056101740906437869063183310105018874418481376140569760439282772505989530533921597688559383976372200781272916849670286843750926998450481502157049613304605401481598885987741631884765096582271603425059508082599827277144482835422504873706943950846520236753582922266188644822967649097812178062013331513934286311996089680865925588954880161232288740539417350049602412672778507482593892645150892597613784021678742428647064751407443946578893182658941176656271515367075371120120038565471572726480287746160836694928600358992063040059297332115017988298893654012413395321207437188316356129981656921593464965917604408004590436424255252127609933337528095468777715760250889746289143900777894181265936471362342656909287501291303578610744042046425960584378294253394309603192462806199450319246635674236399836139181878907021928959903663139467596817661272496927402215754635289129728967799526384840294748362694780070042467143244506770382790058735921272567564537539605470739424717873635186450760762458985539338282617618506932114188609858061172086995264487390489526064538156336508719076791485900979541291060646364549637799519947375614269567278806709284580511894262462211423093102237444198720241770418420494455072536372018423181694503946991463959242604914618865958461313699455906002467882475340412717567011657403157292346601185208831367479409164256667236442016272084866245894285473922091926697317411298280757469082727363715751612523427791085098609843073453694088395426852311311162780430793334532171363102207159062165999118536776865061365353937107490435753672922396320816710674290686430668432551768027127995640542646262884789274346075118872133256195756246573503260461157742623634743853872026080943137539895015578722726201959790623514734480382553296186954932361630996987214086125114918354180109840756383095868029257937039674792384122094325047183324639970346539152243425334118010910239597314296346431980044370658991869755998145698507293471794332348001617979719552463117862765648406736018777834194846940959860246759082038928021764034486496450574131701190004293103425060101991516698149356806026635820264467415795508199789452077012228165142399504203598609396489538429807729137590920905951028481665953481542727043677243657330012830598915836949783763300824020604278813048644999391031868403590701797551443855664642436430027511277205756015933336070501384767386522383843533416452498511804590070557252356860360159569464202375704779422200151033262314541582953274769852517839725465069936612969474394773159092023691212485636795112846218834595205964635745291654320912855134293076602346057389265500976113928834053869609671458285872068587278963575712454299102576525701988896003095847365302970744948961675258218655473806688426827466348530902377660583627747402738860174654279190050872074556666645853464096326345205400986063748355038205443632432508599651428804088340153690948297188604557282093347212805535807340455519848574371291881997258526188480793096999373964175853412272722478793134128862626227067940192200128237103797631423180357334942619518770430024280014520555196286976983444996139879777272690873701631322166567302142371792694961120877165733031890734164216628690285002991075168868899312173920680051762242901694340640110630565558662981513822605181229996900321395001893795276325568419988643928223652558582595881588051158514249290775206168819767818134542843009279380552022034465663678296778778268645940641264023108943631881493607570181390121260766948439931932446075963560291360840643703011412549800070245060631095997701703195072853482894262940339838805538603267759752354312688525024208898931104030361094777413459742719729911552554972403992402181539969374938072917574117818545227034407298668510171599979509546958617278326086256668903885698874567775916802963737476991359920249953055500196519395068834095702357293060446109433259449339295948038048010055847581531838523692293725726853584655311803428014239547315980006266121112782693933298181288503539064181242675919226143780566776460117278089040185993756815505908814291547441303142622407500611289982479890085188227735566636342879982260775451281349822138954846958651439291029630086433444625545156916363404634680126604220592120137733032445305820738835509330782268027711449358537553531375597968545013362728206727395711468479966036161102673784001797050926153212490571823248097734928347974315046317039209874640726643621858459154090945434086735852529835734004300025691804716123758404909515462501005583480836614790556564896400336368280120449399012105439529741282163836724692217606909922311875157771734879194011734346209334350877314684238273336133911570533297127844022732840445638222317877232403138205409843023092843670710234269099807926594892715037390615337181093973168198983585254219939277570447803814269484731992238632266931689648057720544892609767357398031737336915883215561507375530604565656488710574868680217084985123295362084786595078464332226045088392358456290598724542489023417965344218231994637056529624355230790182338980625031868753959371807402001025616710142826257832101061613535297531597674691648478008504652822852796434427748899515699723664950581298507984610538706733506789636398088271380996899793211609048193519953252727193594711920987717479322722872987900862939018358806368551237964022008528729764814743860616415864609323404896649748900291493564100092200213092903044165618670149549907551715110842082649672386949011568998399744104334479760428779011707527886263667516831988208748547702202740271373775179390521942121012319289898249057377335501098844732770375964361987030163082508378064552969106270340944057991794907890888613088111061496104998493282832768665353344903226434985822467568648093987078397158621260588196967227335786356462926795873989277762339176748481058009263777563239672133777739646491639207268202756776031806290013172278681123593375931527980213060693816712584670750227341525151971334262998527941190000822672291575279062752236940647530991849603036951952853070052250028111774690589234860785840795142490351955453385281724343541380605934467713824071976220531457104916896458402944246774740919079841854735190963743828486183686270541269359639663889783342761797456220608915066409433126374579203431414980390120894087369565333865852147554747094190686928456758594333776220381168584449078333818045168130157627486553821087128216277758959182487256613038975524381493785663780874470432875798010128064541595864147390001369289061427400551598983017375334820017736533300648639556986890736773557137108897514619695067538246653901259047146597618991613415092234317094999716790934533775840317976196453608530154787637329397967270477416474536984944761123874444470280904562624183414551365651800982721189894525757043683662904441140493632184592768367023886626223525948403110157205777680981804606352758285702419258505216520751639698709047478185911248253272513365488975333911011614885648537246219970760746992033615498571882289926807477836581409558151349890722983777328028221709686009764965950844284271130871184064671139071218128537508405138303728676122529634275473632573971536068022107686072621318592026590514063060723220789230769721694490023291992255034604599536517176725723182737259448883153366635321750569971690560656562441472824181446388125802141136090602314865280385706158134334338249020993984447645767286602861611699937234854440211968023140656681682419969659699462923091464680540125659312370084754389203630129721084107466160717328992530476888676690602026183426124144256966100019741471925430695050225000995733117753539651439126380507481128433599959328646313691527243386221037246500809352512521520230471489400659358581908314752337540893752549297848060562402332416289004329726657135387090821375759245857976880348046774412695452062766161166426666880456015107488212336152006609207152130375663587694999455973809432605191185967693913005882276948253588327225395887393635824154689792081445522566896754507002190998416197129034003473958619909092433894810645928166961936670362575160321962370861709701607389428868763221243749324162851001102569771167290510563452839193677621727314603092010926781158340430596222999403111600794802326698873117850960990588136133449317186729444013377065813662153068148477741792756454673287273757134843851125841612998133709069114376035396669170599582911634328195521953735511947765900072946525024387470774643822858436714760862320550945240114698139635301337941861197740130339309861691767930110274022413950310548853474517076326989715422341150680783415083814813413096612143053156902632922678604794060337622868973063159164377853381885992042923249816487133549313867043345128096581358703773987071574905965644147376027063100221070906342653028058198086670684066513900855665319060590281434724603982808903649046576885857829129095344102892953365393391784972079187086504025271456729700972293801262870270451502757734344607364483462418707689759332980528219590634963210523072643410884964334187090505285025199477144549716615991801428101160244982863758608971173883041969448158731825262595386062976554736819063927903039943237583997817796346544395583982490779952280530969075307178803471056377819421746434780387324167412183150329028053835227617096032538546575285186903476113722709073328071727685326595715593645415042653425822265462829251252357887728199146547257718936583887642442621681264392977966839933566586796245273169308865024874574302048407088111985390327065214843859970564472909283333189359372473512797897867700605699718747004650866418969919931115514826072969823041258692024882348286259462204682866555017336890878039448837188883350895074588178213650736209999323960447434882733469082803740806534313768972432887143448451685871998115478639071389952739798141232330473972167781338173582748529433441503187570311904092774776393126000978785922056701842796412475060764574413613261757849689438425956341657716758167321148487044007734482084320224735898035393801690685263743796422582414283180007111127700079387213262716688921110960730018337338685593644083238206358668674177047282147658573383227630129586121582466535738791920919896429154283736152827348322539301812242940237903720016989555917874223609046307615493849747707113601757879909341909368740354925520170187693913530676000070722490353367633738720414091451214730054796174284988634988949417041972239175533255545061056491355637827939695120808259342184397876316202342946390082464645224767433124278924984260507957757005981946233461198034503157515921521453466291234806679333811437063684178843469518895793018590389652856236352633422173048289921523072753025131976166987107525579282283024002999276427923666137281835030228077745963850999430517800046701773541628871516298717355211361260244652696568165842303390172369441070195482278131306472259314775755020186389300312140192492038328772689360221885296492149691774003003543177692172360836053082668560443189444758854234831217371401541717963453131209943996561688953465429926836422343684153690313577115283288816226384728251407466055971569775718648445961727159384913093816171644990319946436629803232983395096800806904482141896425655697558154573103114341474185603805651075918167940108164715174398241547185693020083164116786890002916340612894485770698166358082602242262888154712883686152864474186886106690631838741226960600481945508139585109444013578187237829517060668290135754899643537673023310719704286020973911665700002725031318717171702499900596782479218114594166164475099149000155063656236858216342619436195100179411563210894175939576515628956385461934581007313819693666262903036354888100450302713336279416641473304282056661161117809986514499372892785021903123564484243617875308842282230438484832167830297730933037347080491995889544104173003028166359223400786630798381753163599418300860091335637801131379288741939312777731652600183858169637513486627691297463464564504491011865328458240000844628975388644501229602017371601536283308784305211338288251575255258758415857998955161679895092674532044689019787984045584905417393321416151936468864143422498521212941853426584514919178295132187482598007947478574402952107620684038710011043289823607170024080277975039359222069535930282875823867397323564227318074163418678569296108212290220985187246659612693137132947150701907676538767526604871682462919144140433245821727893317410356048112338426588389812611407124398596589216876204852642122034224670638272679369932693257120919795280077894444608449649852502039736508599190939401852545105568199974335622479754306400540327686163055065781715453934909022398800218879958197632020637848971624417031846467504230354946657250579043646410909844794860838129386972923273056561147915583218423138198947692830524475838663577608002407997711062410542441580496935267886816079631545566169248142760813527886471495068630328308927091990117866410079318395777294931884860691300662981547321844715125014078478743281424779345373428004672262985048802721944131181658120449688003944953122994306270090069763117658373810168226819813997230924963918511249825478600367674774011004025475385652322369505196785759870301615684385653705515949437381573931466682503043486037100925079888430116468804288228856673552975742977800133445149498293010206122063752208670850741047065631246328676925464730478354553618982243984766394877807309679964503070392646283452079255836085973610571345946426488627056827271014151946206857804053495079033291627872007851352828808972619418168009726494127971599874747607905090427288322489721004847559507984555618705679084760185962975948726276987919704535581370232703247665388071946991528119802476570664062343364626946218372064630389160397627724364412080210562163812458980760089252687944286697941793258238808056169287406388380074629050760547452280523142905421061985335683457201269712234973341898203354492126839071731660676232216710272656680705721464049807068335088393242357733464594699716953141871870160868649352045117530824014539158609659150256823318355773086437468987959334923836761451520412926280683273191990441650623718790290110774982326307904752399470921592566934281739930757063268799518864164173811556617545419641741723674619531650446284676697447781592932952043194351554658132380964645279769468751492222349741446024228088228524662562832658956435842568262338243194465758424004298669943634482021867966667426006840966525988129344668020462735029834078912905958430890514913490738162612553545686638134709282606254030970261955260112090453937861169852709642087837980690862360883119137020546139234045886794779944385515816987023998177274056792926425217734359479868814976319303157541413342606546138686304190099800519183835425073072547550698995678254893804790422247305493169041134502036641613485588551256864118559826714307195186811690617128087689758665095555969669088606720040487071361357342245108172031588226765150050423749742596875083369897430044825399367090112575205172825923696447451780093141319877622367727326707984612749736497361870588433880346041937010259042523884471655983548594970722856618292280779187682194038252878774244196870954241616227380085568363745749033577429936971817219014532370753529483100029574879092991320644078665391533306256034547348261136999408640981128965736374022448215252668898929087123087512189081064920604980397964320013254661457948840365964526496089249975662822401401149933760173266436640946095380120567649438915510727184366274976992079519759661187552340854323357028516259856593517234206542021794712298392753113218427471306614339154261278974877340520349470100986913190013048439040561399774384385995819953105770524774979601963094857064863017461605169252908598323239905651648668718472246662280119421419297757294315786738510093554549343264606616881832471190314594581614278953400017376292429434211135996420892074318949226340774070827026227683308852391889947898778498390803948398937825749761776331241219582441005543797018730888564211396287423841808028608061076346647251283704088527025274305079773742938845373481993533551781792419472683579109899486004227427906818730335198170684466239206756205365830579033267901636858357174273743250301230369491055590150009333108522199965498744474306456630376540952283536958867181445407465721760159563488880558933896240105740125888542116689995122297936347319437093134327177010694984884643055598125463900717799638449399134799086275889700113729197606917369155306127446503472645312935122361232088551968333216632991150389919256838555184312884079473066223386997465760572395477363510900556555388336866661807216077278675568676516960892857325831621845863231652748309700938781083498327351549077294485593293169477316167656648338848174512012629770014585202607848212673215783711213270901342718765784432363214829668761323401836120498377398298147507986908912847551403217043604078338922740590179700393132986303104319928331224260289451545433602708820687087226313123672798830804541722229877969147539405665391563376729003652770390974455581153498451968838990347304049597056939069120778174699672307123630170320431804454319328262348337442087458530271272124418090703379987228381243840104507222994379300389556700790270337447616758009116551087907318314873810531398563796922831525064669252874572350232298103120697800928230628391485315461303339394892672343957138911461039526516009859712575448502073643559240042126124570706124911331814870901065418028487177607580820008726735009992377748601226265698083077852630959548857321585441734582381402406337166797235530910713480386612512355957585640649265122877768939656601213227896617397062087180720974012960951905932280077247107861450338297562170020220043615003147391353969941054980574816452756152970835191476844705153655753049469707448069167829007709787189618674904646801526070843504039118135399394719209071172542828519160933673176912888926806600152210356585466050944220748688351009128668315081140739581447625214804955623645219358921033634025070997379608273194029373646563756876077058007919640305262819719759221005814698648682236558220756231441071726728853393306557761026020954297877388202748800571302571852881893755638489642090110530670176932785074124558054607138257787954118207999765185438959474412009744746207690371496832377963648588469211439549394516271681600563420532987195829403656769032122902487405179705568107002042680173844058431874177753119536453960546988606031087551784858054532030424150115142062760514609054514018078152173632371820142385889701358059675913861993382293054772583315877823678644624890235350059334284110540085627447522747949958425877312139598005646403119814684395484155983324525790910827592574979333942316106779039843582062973461207378138957454570141277195966084174857394705760031854951945627342315345048494025000245600419658913475419990342072051343752949262326688263114330124809315585127378119118984915507705233692585768871638088591651270800528412368983029039148603282479783962509866805994351692343097373560550168454679874252675326411763332312992937303818297000676260664147723254281833703914466462272954927009779417230606751736453847531974764506506760833978474516468779164413178870412891286546529065369288020787188128240045286021807844988849082452320885109439205981224449196521731131411846833374820103650969102068288602460243980330315175949111308412558728158320541797913231578825561505398318948931749776741595571606091314770302087806068947055786129196873871639045873000252735537568391679449646796569849709988945333754567221980636132666077282864616575586810532251100628573662633268394931300336368552865693917955267718622816675679669071134555228006305829154226984042515979685993387266565867967513126682993970610377943157542071200951399648508225069517973498133675321879541651486763651259078468869109491302564805797041792041322495376153254518229685849696021197848741115098919831143956328746304958692704939454588191550763307778228254629552209854174368110679780154710371210627926783598859463682114395217626462391365314578754766467411402402061204841305363420997725333836333574085719302034223328105558401105589362124355699272916812058109063018874799722177568158156917976270686222919723206584716618702088713706091139919532038911832008034902834885665894955422083531428951072401046448922807992672041180073162315833809937517297321141994115411271396447802020974791979086976872624923633285478488495607940148458332157514820448905237004854060306165705863242096021405969192099839643227796896352378136020302844473135113773560109296556460556500496101149304711317897052225249661981550724924911016964046837670731642920184874619314142002485634025389135913341478311315838913805391540670705814883495489843010260082305099112292425688962105088728258654349677263774145365358422042258926872289977338312080527582610412144087534800966242432198587189496857976618793213180138306199961408869627349003071578670278917851445390756808537519928376084401886156764133284219753784695034842443632547235650940658359652067919961009677421786864579781505582973619172331548716838721976391269724498758651513960403091380702718282652391647524302436906236318821994897466249056821021721023265762264860704355803007580188525664503573060826558060536208836450463526629213548234528935821880413741880274504432639055064480901499065919562252822899687176994902896827382436373741501762187938949554218573652956303231708574415583996564008491450963364096370359845048055433478791005139503790947331423404653309117874740991469564598812449692234062122461377818840535643834210958352748090035892753510702604671001840097892639597696173641874266609046320432722190719885399795688993520189341301376210747593614135599376196337221129644718512406078862115974865974439039439778107727509775795853537745422206802885494298998459880264939188327899936393380939647298621970651092917160425244092989007619741904608372202716589163781583806569021620380035748618029958341663095427739222942437183782830303913338609980983207439522565081831615486068966364882939051162553846535892150697347096676564617951475685262395632488670057631641955289075218340083085429363747963032619276470503652400916502287962949642722405421608818238184780942160005484476669240194363247156152945711128160096956497554546099542312324264584826841881197809894992278354356656762066427379716298309085765406226592199254269771153607275041246297893072329669483563459370700026355350680352681560144616363624710789965338391862476992309673698070935377777312995722358212590843400497890709598628924488804814147056522418557793728109057101464365874354464381834451530508231761450718158595836286549184421997535182797725364560134727043571505696717262364450295693177490603073401157344428020045673866232039693822877440439232054161825331467839114662621792962061013684279410094367050232812936800380991006620297239393309422401049608358030521882207343150664199910884651490739583504379910381747697817035216878794440451132954882898097315500475214669271927997109697378827132951697685410186004213160834560041724354887680513257483082080783490034039915717181048905170420496372499491584921723173240497218107291341594924893020567916617462407323206339466490677566744472700994924340357357402242419588216777775285400606431953355717549802337021660183275043711932068940463673703628621620785691064720343070760964316108320174954314624141526883688162566837411041254472882605366512344507578004634991299668785738007887246242655501989161843632246773900131550734840773785810796326446402529103240247694830518110990364692570234725124053093038381276170662794669665965273598361990071750453412864040297191856627171010976501139260334799169596527969154606685600154319474496694726528011689836265092344290452026131791816479171558880841599679969774085257609028813264321972562291085794132590805688464794824190805358765967143196118473069003461093579962003812048358954124565953881603647927348469075825430460374843590462585538732833789563552025469604451436404224587913770642390354998809389148409484676256595412078150133679551996252858529771059763825683525636415244529055348994464247536551617669642989303490057516479160585948291309690235837303675389706588897063107030022203620904833518473394216081179008343706042393846963373043057748027381673932269320863496431603298959396885091888626542647847897057561712283587452063229030564004543860678097719740510806574997038840295933158505932946314265867100115985597837319371791892318637406968883005183330905677322995986403807171435488067713709000292067864883667756962564620504689443174513676824858400061184051377977481533413830658049743141378635670395414709557905473375123515217714716353158249524729823467319417002072282170047059138933498443006702409918151982108688529207046378929419144838794629154420661062599417601954459395483689683938009470770718304184618780843559166340797245584591757796283272987853919452656088126761418817233480309247590618435897590471773834745915093891458946630715022844818869577168586037249492200146873493898577864778015139793154326732409605917954195943357008142855158564209714918459778034438588382039101647869259227844391368581326714191506350663490759723342004626809887353544665659557538413858734976720099875107307121320365648675930904701187761315393241593724598055100673002711390214021864912898147518061942948207943163157575757318452079506193857345000425630127370808165949891558087013740845583223726841014562456898717986830987235330397018181932185762724230614077116572388805644338785583186783603306822832112501241012123456964302429600303681553943075578924780811396494377432556092417898010640375046054651362516726353623081366046230107210873405934767526817737975005450779436232344413876167360833163511560880370694423409876229681397759859312040696968004660212813378121971028925310393937148591549144149396674309962324188662666799682779615057555015474971491925332105311923159960924031079869353031150274330601054487421063760500390357828566651339688881185662456560308881709828447687122434886446140253090329287713164605425748052107661774676612955007498437482194462490171183312509840395581105226743617409424360351165872891272154435306151828026297191317981746701649326865066163268197490411090040464555045752151247414683212998299257186017655913758535736625514293261161452017604215034824796501468620854552877456336545377500334737672948970496075258350913485761938166974597223207784450597926738338377172795583967106290795758032105381569846584326648649541879589090052866411099885673515338219929597137580784247945749030145756417143022706482467596215480383832125302298714725343412337260876346922901445877735793647025361426606418291549843289927462086498384741265276495708294775028188373771855368854697972373848003088865737322959386243490813525675980602527894258086116121132999755257513361881122724496420215506710945775254357955379634481063847591532482385407103969478300048394128674515444375319892657269356374842199941313051310743387079583007203365301274794073991433311307651062579780402063639137182738982965590436456689992008549947966424329223780082585233317437020246558746097415957439055974412241461664049055055582572536942599667246907689099108609604583102178775012506837081862002047604061321413725147229677619697135265939340202756116284754940862170920240482427795346207864695627541859752881409725064217297160783539004436183072082356983623948606862894907361722314598819238699495687435737005158482656554916550166541216307895060182375370678219696872114693105072875293328190989512286998132205672731997039839122160317686300024953942590624485024622288219987468165999208714728942698542164662549453893198969527132349292464813356513517665338245296124334214513145082102905452272023215041892644380391188534284121764382208286047486771669078178280236775692065092471001385577665107476460285763692554034517801268370193384636987326486473262075094708849646332500017767088201870412276739979367908272463561281038010474064934032475041460298801590065849696529474202224779765283858962863471165869200235063530441679580994640863481584055358041886674190017865032211191320257820978325946954005569261668360832264565075036872567164772451574176117604658213144084906424357591899811544164577979914077571010250992288058535116856927749262820927900817374322696179316576433111567685131618351441325929634848862603508767805087098435609306929726033461584752610580839291091889495578130731219087445024513395352871608204944542929451326534288797794753178281897418325918512077044277799602744438510304963999515917353086527539468861748133785431499436451854456381833127964635926110897027845949111533858641422026313954066128367555060347017631948351263156242325610846448228950171245001756142816490911244823109280210530906941369051043217449018533266021204790049028355045241288127038318767469078241692056148978268286855973907494631842697869343233344728549471086740761718353839094154271786066058081247952130181599254593752128776085096396647411141762602263806183279608824747774789175903153031836457276870175165448169571538434773994380857005374323532796691912028202834885512574737989321027188140763844787463383804451326711430502074312703458561104745285944427605300729208601357965602250376255966273894110083077192211185257537331378402992030424023380740247161308122433220590795454423796879581271463149191086091757070610962477323449755180551972099231653882985303133350193076225200453038743840826266195316493770118317801862817799875895362451482186863136888230674744459281420425783206983350911311279768294813936033430219421554886411043565724005889379283537441564623525365707607155015750315969665134748551987634003284223494308173389194513656434403920156681029084636860342110274642005321655914667830898217784001575309723710853638170327949344366707033669403335731986397367269650003351370632999494211849921261146665363454151698525350747914023059522110821085764994956304523333825579504805389742895465553642325607976375942746185250810465863131507207339701720183201459533374025751880892658833665957279262477823712801860241594114742167442776012289801617803999338582414036388430481952538968840298022597360383341606019757341108465068573650607870130575912337124165523863045851981606623006949110000430229871922264619392739122038549758114623517725509375454436703349314089967581253247495375297651202008179166906094384896445245440148339915149663300685333920842716096529754599336185533594784002963687210742239687555736442282275094410292512306315852190189742354218650681595013221284871367004631345897518193202324413211334107888226253868167223627268388995781151914556425648642374486850562651644585180468743522712123751484495766253615879906398839631683306982806409208652674647887893856924171927023986709733682127010970534215626493283509514365130702834500029216441773994877732303746879465215446672174125687291965184307473008591490447073876243672004206211556931990666915761958471848752324309692528030798986546459844001500335502775859269739379438557221557678625162900430674009200332163964760905208545048530858308529275876085544647893959727400994380897952163741096297930495672759213081946453344263302730139699932219238260271910884926221863592776910899453964876188568951531774296741019517810111228436082441950584762033235252780255455803298492051388634761750987422758715884026844266454746646809103660730604577408094636169254071267019798610728600261313182969181331777994100425978067088889826029327310046316241309877936264649239062136848250967529846643420258688610567935299343738902562785045082570234500598290118415597866974738398695466324735088185461289384276674831409597123896732730983351024642912490472828371257386677792562986045149612103279820066757692160870257644898303057993748571490152814130398205504817955328040543419418385797374019941758719616764319996671112580222150826090360687778850987124720344884464282797115530929467286785461146842650860675795499039142429885260978909051161966586565460925751859685165313171342412674765523688685538075732829316442768120389009610858951562085536751770043735819349605487063859687581040676933228219527838884309364988798920252012864382286534997054404603482542784895434694877641200456460440328750226680414342408517547505899154439226389584225939882522546156955548313203385041227988782480730654077152636964642370268159758908664647263990597027238323651705010969031673485608361465738632437584063825750520436848018879859636753109127243675572945262453082360031407295668278941296525085898050958027001559400238201775745412490996614275893095708436622227285586724712525556907276690767137022687307401415684663067759029107169310299226808677358045682724974141357733337124873603478345500419878724280593872347666750023052616896075884771362490840485166801885693279369632071838520421468219017938305894910130259270547946852121911887280345998480360592613709433137766996306360986608971538435265818502985590151273802617525399979699633565585257988722639446771849137732791969897370768681510641153699941493174946759098434156892890711314943468130158721812144229023948268369528970759973761595912349494721423081971355653415549240305996722757082382174550265377610374675429301771704857193620312165226431789836330688386919816463982536989821937946379446093281966830625487566245316151947156930512120062974867013306989174796067927560744757013840842291548499917934052894298902391398533333742486780174032095917475017020398443637172391405939469902606811722319705969282737828648738776583092725277151268393070522756253176924947327245432125971750421609958819867945263631710850170896525635398095526029706861861754037042755063268678158451481179153445405331030540558873428923475824021166121863639555023595228007089704897533137112237387933900468061633885768852067190140058010104154564997867344350348215108803800124526093250586110708142261384622875519035679548729419442699714062378693097746675984860866344821722513181877271549225316508175502114749551823686767958523467442973080365385656016522434347828706214612490415130081691900532477490775564479538760071547887446975177167261121110835599459457157005983116816685901330046969574043255284188131260475544289726398578606876435511460156382576535563394072349228604904688943228595420671922680736195724171890026455069547642706072038042135091915410256443097473256475272763900525726415847217455892900042791104230104060960508085923448944102925215118866313080023269375334850955964480621306291322123855074943040146048030571153160066722714729546389060941998736899416330559821065109926220392109615999664982454297429206341123444434629571654613895509999475580031188425693425618443430847034390394083729447790710066723344700107420324393000525530319666366683951921034517838382128635836213685882190760088101910467286142196342533019651550962139491770480007390028816501020634425192767719800823155260381835010784392424866957301756758109200185781974389430665620064269634459412488829519570994205527835660227770077941313844311529626093490126045435546319063175497332265011536138843863396456684930533773633238875829392020742217730749787895880422671414439772878502594269777618566138235200681850619423734386444264609868165642332914438182218677737403646572359590529554136975722995799297913691478295915580880888666695456128869566744504270140183920509428725344097132297426301987268810956416797149569226518994265780838606307379882423884521046291516462636839973183448326856132906748602526100178635856799127213999175298438572847416538524588026369519974232720740073664939677309193771623851090623484862282972950615991013999336706246657323801647284744923237249676867859944041052142992130529042583543761714709624802881779488034657045941437859967328804669884332269758308185035462880542766705033095875003376300395046197106692146556012937973616396679484283256579899483779612723327701317779733862664500655749513661275112816952473544400513743137314463338243347449782455003179166305430726237104015552464071684626482877225193114287352495717271176847900457129734580163858544440606520326968288532825688721408323446471327168871727766343360735123401153601450636600229433419570375355593270963639351350915671142920401495485935426622060880596643571102509455412827005950080950670514272383792465188506270848267372793500194839767613900873372003733007443205548471595647840561059589112414490216957222111171049201513007200310688352864340770407542249133622570529911546044667486830772973256059116481901028696103157637020164790263722048394458459426944065151687454031144128588827451597832910967801721686559544343626514033604417183945716785707659849945964804767138553034284552996435039144697102899356033702753409112094414898057959477816166741871327274943407405090556839746248548295033915385749840508818442471522218812685425138655797114912785150619963792946750962102854161408843789850509673407359055835972764346398037468410905399736302359617561933602840458401699968703303575737478109033599554776677455926223721275532776605188792657276761547622127205478938394290397380284249835057179153205913105090497057181374522951445649804486771889666385513174499454717525576547911522755568390328850859558082303201493411492452597634216848966579607846556714122796530987311300243434940081751786851051669371282954916511716588466423690117942390362803086655340368696017702531630626758293633512339545547631875490496151665872909055848889274138293279750035853890510820350967821065863491779420282068105891492129559308805564625331940133110686769967224582576575515133119879629674235936198796650458951473623114056216421345303815738981527196033445297579016202994187626819774341570615153809995735276221710172441739062133662970112787668119992086443848389389072209517373670259321795516552503553450676759405700482052956668454928633755738841899434103758354610516990790947718495370315916556235623244284938058570969932470147787501639924114050188323665113455346519829792664628192459565805799675768782990304598686115384922328094804140578300104790058563607708077983319067746179439759255376440969528576401709681480723407084425452044058206250871674377729936992967234129785220329490602700921055274560064539477152292529583088896664644927711889152424041830960610878415170691805497701562381168678005791824624939567078842647238279977118038067904228027277954231694966467615524516901410358708140080700382811329838270739771944280598218305239259549767962802398009034654779764363853703756680754764165518161156326807914332260546575499300125575695749373080175323646741565355947647515540864671043077769286123283997314273310644025075854065301238509216963771541896093986089889130663686171731199590456196692892962180290682234066106490462452815601640859427435527926312715493870484451779618584069695163864393192145244756862080045005109257175553961498324035116815239393216434710077841486114615099067338416649908067293902516183218969430777384143642597459510490700915119043126622060847012889458599767746174546479915860350254536336175731860836341452273437591560755223118722530554851252380754806871222486356868571857393269769556017436486661833832027907201322182610152460780396554535194059636268634243227700296795962793793012554901243918868160168286456252109302225682738552148663546772944653189630059605496145499224480062025799499135201028875857482218875152593349968429686104967635190494013197488523916879426615824817728029270566623952253150244703567315253288116690655544139553186016491779758759164907402833051237934835893515861834316505237668408893930341056255359110200380546184115495257909503719718236322980952420632730227336198161512970317456464069872437314865138382865286927694448603688794295294491571165047655545544686786719035672950884306996647958091241964154250077647345481162539954537788288098126256513366924624311935584142095494242730626275423946347225584222126993326905884185686954384077795276530587791484724184399554836858269494175778748106262305540658922304031102064517627832843741966070935469874940625285017351545647046554822115497173708776050301234964034784374498756314716280565076046853189817102516268462515981773355384851806663140603503259757893029586954961570577895651820497640000375160786177033124577121984430728091170468973679008277126554676573317243616794578348262954335062062544700795597896424407382268108634003628186084694557888374175352717510915673535737136461476366521158836811872606122165801904925606375267121246738895191913751635156565658140228776998009683044674328613968059779605805644415032870475501157183247170529406360383225112672088383724148892103702086588654863894254429065255038298314237250738950671984966827369023123207250769026019931827127172202836371225022972209134374235736120837314748891538168819233669076024093193977990534829900034776400016968565524081740409098767901168070429628153149925663882121643934767033914923820084194594193101023037201914925863916316187181577222653867069295615215708362261114037537140537223087022666363936498041465760115859252566882537426089100172082345079162169517115442845624125380724937646433299161113831931471768751814516298894887354679913380137479517601381877708714459112643015527917746938721884114431645889797942468839913942040198830699866121224102330270742056138421919607580047171386359111636226692850525662460258440605961611724172254235388491711185870832348411358580313339815443169798482682119254265855523068044304756656080184142279444954473860935561559876381424333604462613787037252357073811977786099230039009713776226126885858858905747122425168440672684882600328088027227093165621306131252235925793383941797034801987416127961927166133281328372698524902701844960393864373867595644165823400553187530074774556306035351171813155200020540025987275093679025889925304700175680931870319746395454507772905079446273407047508161919755888194858238643534019265235257207661690267035318546906918410936000352105243862690450978414289832316668489821950107801302862154090511821744746971316815323692663864508500856931065123254063159305929570564558340930115750594467714864422180132798926217947755581073340413380335157197676041135759037986210676684026114089134243923362987386565871094507869153184193054264073600885096181183620572962097536002501220146092313345502231405784345419201116143233642787270379919340690926205784126763393777725940105517343571896137951366053830349350090220015791368655223816515038264525226010826356784513931070365062093330207860215990028857599600305165813857410828867932795678135969963882605437113678771363177917103347486457719642060151514126664135217158134210512849297521478663601843939869057000931684058655787788207370654628280001566452696097705485791026833621659476606578873657666475755484534562097947967959147892136729255674161938069812689699486754162240120896748741196506004910322871552086509419708559809692302135489978797532624569301822049637612739403131304933501324238491119909292269362531479205239385028089125173701112731200414702498627070131479377792445916306972380625672837095846536500054778632934013887729508464258809795752497146597344065073389275380343847005197357356088635841041740980450295920351462437789545630772936458564458018344416301612784563585247171684188636661248919350994105656188213387991048296041266530065327224862905540486389354163821413111214449290927020604977412463177709331278218260390377362290081797345349472800220625878100444454406157262392951827165025986836520085741142046488425330934019786738779440511676966388079828731254871595184450532287938023419198729436865475695040456034638750773818727482590520096925826011992680971388624138896495196087451812527824049906901248089452799725917055297379094440006607276788988484280544634217386503324517029982335552112759364578378883004107101165128985548091628947931383925778052836888749151585943517773407682667217036616284672687922450458833039962112819165998494950682150142531093664982093889225446817545503775369552000222701382579832012290147111212354084491823138654496518920539926976061669786687140037647722581516211510075074997009459119502254546693616891056354745048327693060111366302842754609172942354236650892661732498134172471733197051391468542189250398954434826513403291991836556084951442941415431092958002648380694357829427312873185219485374260039296832270711663195721297065961614487458032853038480144697230745968716370369982113515387511036027113968108583729465163138694947517088767120642224958052188331823800678950222217038349020439405917896751778825936399472119116761322082411259657592209513758468466966296331027707418498722419668924514596145727304672570949930004284562792332027614146571631195569032794008691788258143563098902330709235715691937717046044597254854108724130975317336431606473629299064324054057656677798508269260184771372142154723690174332631417089597566168408143898882474954804119052481129195009295499639950829727045511946030059120826566120242654877750333664516624270127927260521901263584807921659096266136493979149654635352878183260009923511153762399550098671474102269679366683402965831678016145499853369181646299060562710415300012730694079553849516587437074951766467834881527827260705944615490737971091603328806833526701857678371229932326081889280672426709090789820153355279247983495584398277360653451539128998984839516938273873710943343141635347728369247534093440086243102886162455621180206512354404783042266931309837134697109938587346087274293517416796623059065974097530376806475415975547236319652385337323451490228554021569405899847692940601311713746496280194618587041733320413993085742061103319368059334287590448275887615464881797729659994278958541687527497695266769585669867433134726524903861131030120777102382317472498256570847656285679121123124542733131565601727307647190211225546150450221728272801345026606290374442834095377588162526123189452802555670965167937041424596139966932279366501546173295176942329831159543145252559108612648344455951020404016481205928025522618063752476797006719869027958357352873450312088819507884818976688446673630646673722855046291521914561341047724378795875533021408802623979479719042188553165251085048440191576848010552520992411215646876104163551788985094744228363349124984491855247886213068326697245808827329726196587802165404343909447183319727956707422583390675729982289945028663442847017656834317909142768420905576611242911732427627504475916283786595627324685568838290772429408868194752902611918832064781063060843005001486521215519104589804246465661235969046707112363520600946925703886446219116633679417040456968108562982186902603648863380167778185750647554759018851942672161573519028358642969898257942998413135396202548318575759322844107719702357411229065620750103401218951854507474415641316878343921808441418365325196545441175384994346062816352997100808540918043424180013473296163317595851325915307136232387365266319725363207670816242902792610559495765320355153911705854195641694131112475268580785082811739927106918977712335284892353705442070842839954780814025114040437042351669478218322162547031120586322212276023097214833165552168262955022308713241310887086442725735580850286027240056995567030259091932569260285958170369170773506035950032950512315938311426116744417942363359894947560318491561338065650823041257062236385629341880273183204178909457975776722380530031894813582395594220220032770662685850613377021949729888585086266021927855751667812865419967254851768025988760445597207740550608586531033174432520860743837060901086642170223449668069716932924831714492682682350749561927627159239605624225956397428155124266339019379734510556081546147840046477512330208996097726468332952469764527603108620012849283599419282460529848472069056436373936919563459037933231612306751227420246536101992216273165910114041004817320434345784105022683031594142364326294086803164124273793831475151345644845240423609868350791009629664947462640358637251153135192438829016023198562010383769096728747040455999013088824199982469538164143244924000230247516652598535261888067843285962055129928784364105305945844010953977069387006221621941944872985117965394199722583786766884993547960159309178457649146288885532347936347731182464837977193864347125459227273192712704143198869578107744895275057884140683902625930333975260645798170612041552335283686354293084151868482451900884910281340865324216314129936023391878969628785298509957925088517766743473813517490017437198474487279345641511338877431871452933867277066825425843203978023334335057038218109330961478528998207377991288554031918928915496659159985731115072322203213469386866781627208224363589372747610953336422781749646640723116405044595756262604882858014213700474159556827907166556394923034272871304193481562020200651649579593766880425365684016955606316907562810203111062975877343016798155916816584225466956117435444134686414483028217019654173514064816726345206837875677631626944050769182855960742181688488975072647289641048094257211108916088161714997090572316582197847523023179722781628557072546574824571715335302914873797754880327512638051058743563603453650144419037717083128832897649034155453286038020570945245859923666573950878614510481020729513345689110342353041376582337478655672852167041784958809324880672408776888425199681915032464131803232185911523970552255816328901406188480471338431558615872056797611903037632137019200814118352156343064595230929014936168183426109281812935000800236923131923797877856483235757861481950793398083546254733140153269348967960143648422948566983847051531012967826980554273722720199821307895025612848201885006809638516218086367748033676171693972179499625246341227488179980861810651009219804492132887541342144774176530585913583065762474954724463557737114114640923665091084277600608795881783721210173317485175476678644363056000873906783357896249519956511899735358489045229806157525287207629460286440585547865941008732350231320567718183582801233367441001575896100201795019414328996650084137148252306663165626658525683195311117611045044108034369145181559507929252682395173905364475235753401576269831628300422320385291120952160238530595093505918915674872936222563713936017751103914519535778082809864284293559196356919484746030824814604509541691734387645289063760053522859685144448625825882901754255384893624095360267321957939684936643073164983290054412204313111995197803615572937678235052091407240074105328289077829373388183784232356246100464298377949153647861418648134557739064629358214519147840569817882886199121233083373313242658241683666112982490574682061587794872267963236189507280330631033201726033927862618974864656142105233979011869664499859146067054521969754752114178569347730366025639766193854865831048123660427098621116812059921230518894219615615416097484450832135923371289810759790638886706823075659231782152961845783359041932447054889677561102248255594477008896026680279434821712876006804016443790645634848167182336048647054878964546616066696994718836687147744305436515258300677633939331815208493238629611127842984808556050457200697756262077357654129337942978626343930308469478267652720560259475173781929618209106707507532914198289936449668393094375855532402553165021135641646306807611395785356528623119462572729148331232964587411365462848671274355047335946469010159069307737998057521344179497694583897333586899771584289568345187264235762831315997023090492821088387473620620347068500214922942168453085902240378291887028811823081351277245405460295420803478223314206253896545733151347710580965836559909188110353997249724875227618600562792956538237041330725736665369082423917502677397578606166191940538317826662648295235698080817318167623576574720559235289856082863266631841159194670191617025742495833431850199124022617486493078825743594768628916127468237884787537321352726490114863251820769261168037690664201470653156364978397442306450276147059483935302357937290233244771829146089124715233246864112368466579698252870029205199431765603458048968611823816385253570347302709587623091346680397668900951413574170634571887613465202071505876490293991878290134326606346710489876150196716919072879545432028822349495058231920722368925168875887324484011767919109387451935015136894948599627734669463105517208435776688951982731708984723659972706943328920011009474306643787237308883401755268199685013733665424467754708453773619605202530084431893876901495009150876526122819322467893616541528284029630808936422944067808150776686939345905603990852110827592977991220535936473697271339177787061717603757119425880499456578013383453200552124792661651629611743268961488856993448773976477239523691686818359375906193692846114991445550613890885868052648077783973674905794150589653064129542850536265363956520733912577394544930101591797961724182132417198610892708953231328293718310120560134179064875524672525259242561720095784135862085895676140528329841118485890926163562788690391399840058779885659662502398273210646575470522697099632379787729838991494568971801517165816026526007802606937421805242075985239040011369632718467309322565919444949178059234176810543485658976463044006065122932664889692223277769990593753422345679891789041650887121214383191746182375741341888813825758411361906511535970588843047190154832383968974701228371851782472912298659298912244771723644726251367575806184994206222778910504193489014408996567894208816819365878134243577803580847105053994691454671246046015043424687485298397740718857226587952145632632744111611272536872108393090131154829691794595222127837245791585062147906151707989231309674201856424385727925828220253847292786146560394125753746671545601561318617763864552599132006516914196155302644319632360439463546408704743365765612254444364624700978966019107281024286750499893364644807694529115511805671924835717272809390336003071305789510699378393469592922037846951432368022012971686656103611736457362061860244748005727956612501744961084526499626648070654403260830115396612303154106135026567015252045576381478754177474921503728983535936134237660643883309184693233336979528102511098905074134623409708536417231385877114204046745500016487137224088067901441456728942266589860825682490710219240142689722934857032904203778056839872877090964884275707299884317581141069147253662759870970410731189249150948789963216171337629263083404727901669279788021989384569145927795140913289317670927649126594233968192820289030172853825328110558130482375806756633720394267313122273572767056545420304222890222569185943033422149818881544079711948468676585196729803948534443748815296965834567193597524103327449558197534266233063114677720050756823827446567513009250389250947959650044055284976073485604765062651908047211127245421625003480240326406945507591081104381326568646730871098223609107201831593475662119992019234226157247248237502917067663506185877191934767608199746824795450580637984279296239229890057603028677863458296616875663605979129621908878590847187647488950292783814937153340430349936004169598126137086471591612133978666440348907423340983515871033408319715739429322941659671852004656117491015312929899187930205127471238226673307677080576642558307079996628820081089853278228286518194221267732927464594710385657781106432475265183035552248633193607990953581297210967465250768052306430153092141933007334080225270470292681001066730546930636680350550909240709076193107033410103214941180410253411758591431538244018837592122368871191424150856141033736958724043651502483065070202316640353890027322847531410549478089892116271457989557216516139790877362886138054492270118781068105918443122538411799104904262072354987533832950962798020118255331811315670576541842728217209519888963545835921194145056281996799030693356054306700318451507301955988779659283053879552501488370132084876805177972198251459886473974595985663152073905757368581767666171813071360262903363458916153947486017596021706150014082500396004712205138069631043267208713008747812643921256543718556025507102159500187406847876847162216040288963477026027337561396378448289863791241379474281875271999836458568320259690336265501343185116489343355857838221268343904978922882410483279740182626101433277702610209613641197146862612374524697078647867271930994594893317618098898465079070182799885218366774972652299111606557118726172299583081410206539817890423106589869921612304613436813218029594731295438206823422298710132941806036310560736756800509207459931560661602087700080317879329661074813444780252193606752606356708945479789199065835841572574140787826304566200391410866884646720824958894955982508142455214635438159564869687789569725962473462081237081017801923622445346693290480484213240569866518595026394190887773435626287631070553138257230515403018823476642799427001530694108560488699421426478185950677168470257431926657817525441287250144290198145231815441347939211916905816531365941769656904659361478090153607347623677170856688969621131825908598794383668681910433721752892680321622516333576159630557802906001715045629345832463064261286018416834239206737215783642165208511062419742922703806619600488198355789648247420266871995592543248881484652739947727284016761443038565397432077895282145205463947531818872823640182669832831876719842527548065396065162910091176337706875725622742591120089149243233792034146784093944174423684518679542293570148182328018565311294946054504645941939580316135405171695396945011398234274471673946577474903436569419453550155888745383160096690547778058119977399770007745173877760087667998137830538890079293844344514902645285361886600899640694524399837501949290715807552224277936326764826729963239571257435182310938136796292155011902118505352243020227899051945530859750022040805363554200612705792733813634805384892277266291553242741303459913181509750902583793531153092475654683605080663997287289271585384241505571964187002643670804356328204358689237197159035017433734297181512603812828143123630696970007267769272702652104872328344948424419126633059282376358401304323678841393142709408586320867820035016311409755600110532106532063073625326033743967985356547928111325395054165308569345974499643349284654792974322657634165370438736403663250961914312634675882769057905893434458821009153394380489572012593272013163341686013934701045097180754631140514144237071880959613936707365750965083739904010470199271176266666225845908974319808390348957406317033721159147122868979438438945194107625848199486659239525508261286658584846062553150438184137713026015538704616516759320436976121776316872647710729086793623607921757086870730104359736024871047921636766839568829036875143184475541006879825126138697102953770743301947987861583692667407088170031286909666124181721550879027324124089509823953840703522845135821500382867396277582936270775405263113750375370927834198453736344384886103870006831134558691974712126760835711635893322209672565163469833178740500387590371001887101594029873544111591144482301992350924338989837559746409313358397697777633863607370373172295851625991700341800970896892352180369640353132020220540219174939109151958159570781857878026450926026076935556410758415611640429481110496743869076757292478475534521582717845736483189302468908413448309851578460503816310030060346653864289481736790847325398038940630889351150270475425256225897600838394639295783793797475448097564571111892310383657744661559798361130374670554866100796093075445311749193728475011981884630460506813827491248809781411841506403376279517950694417042546213264658891661163421777515483889598371571821337629342838626090389810507627868580247128010546401721625739097532636094568837342638806425093225977900463565349954567463256224488692908119766046732850124133148908966996073607793405634846134295761929046348811924570599988529668788946802874754856531945857374886709954623539376559011095102042721870512096815017955093249229351448667115237272375699256087141831391858161586592570914987646814428736740357520914480893073481677456552298502856430683805863405333828453850140403465614281526008365605937708837089405451362530537971638173167694095162369710033758806192188613285152779472063167559294082498920878619860616436935121648247425843627126038906186690603288487947614649881541142313134685925192463309095235048133531414378656375586942305352556347348537616539143199229536622131228958530168171277331383021743358959603801361545148116797821602776604170820429374582399796901889317859114819486611955598479024843566541210594208515347694741680078314632087701251526279871176548188006221686576354014255643444022427838935323527232700535485037630974664192791697851578815005779200414564771080757608492700629247477692905300336469677477849551299301712951707539537323749641022256350084581905285791680806251383350063698875287438018246086150756625405320148174491587441885232390263448773969969086319737038494541609574909606754426983592528313513080666052507183602850631174099072710666312172362536867848614233113662995016087910349161267645032406742422031167813568775935942747085934275450830282157229851568756483712243466701004309587889115983213636876691775560449228524465706898538176455672941940226651854560324873450835875472372288640288583449203020347828956614735050515666667456781241602733115599675481583378906820263637277710012548872185328665367123345687006767424568265315312683794538963621746975795011301428016442413308289419197158802611473361877682930850682767052120580044365951018723177126249628255432742678007930653758000839678838560364368508486220090520947126667174621395191160996906433911014005771018306783444909080225415143265015501845988025070484750482975522280534157228863022854394562363320256801340441661846363821162662095823389533380443705799437872653764124730988713201698333208185402879775246498805080999441580882620890853400496727609803362385525950915226705816922271839127650858571605377454340566430078170643659439141152358840601510808931109925851303318869749273095247099115754957077963864543629330181561540947938959619553288915959651503448946224303353355820074223119578879248861418226882055247167382078653289854739403693008606709115882292580373119017481814133624559716220472988051263856150563733880383638662043666431843629121768359262410292281692129749583090106721290274450121872816048216308522206767588312746532908758066947026896268309999183746084842642211545245337326695381886825000425869294977479040220154989241115589465487125035151666266684780258238077314047096041110679414311841336269946229620047495098143798371684316587400318680338123441249536139654364104138630316575125899182191988916275714822591202729742590573777521135602577080773959695197783041778414671082961204115960599283095145076289227046270531205647507214858969981686030282568572413720377230473196443333936412584275936599152366906685509208362260188813238938379411365523311694640411036744741854602374399989477334502815679273265535535525083818615698389170042777710307596542867925519411783116679432647387883761323339539180764003866678995898358847885178366146883090164672801938124798705910038499474894360514358397450059862756177805439185839472709268496819327626697145507169207895010006238428172201566581617918102617475552301759610210803272922861253467929426154627155280664526606800371285818875357439683457912051726112201135401299935294347075357353398297190325708718715144627120942477995498621181371222943005794222386997969444601732107076480309062800851775036608665384971681345666710654401112534092271100081652429877449272524669157753572161691140822943148132457464253515697076988840875506527608583922403854619621262863348804246044994849637620998773933817257348610805213690810337241903048699050857547863519175338425779945996883018121620349743551998461590571767346137511890978677922421908893947281549002968600763831176270083891662669373555707378015064767293472536965201469001803849205198322044076305410062695179829502815998226792919611466690938785760854671242528887933276057105407053256899743672270699470319373114462012154289844481410053528581640456394332152247570947936301277358533253224308444140380407731729215474617510817562570997236490111952298650353031686775111486095435966639775429132639839226294726601882227763395093947704194154616349920809574071387267019998781024527660646906060171936234435262523768312732509306520777146341625694891788578419711881629100619260586002349818621478844458937879763542338877658013815939244328420708543099747541849781239632704067644704903159859025966675420228009287009288871193488496770331380648393159466805666276963832723528823636376710089793298010228406468960370125945922043810592954503931534584016620829600481467410144584671558228025645374118127167128527272214194965875654960921217942289755247664164639890942042347783087422870511853876419762774690254701659921847580179111622987202220331804049100181333137723271647768532087501526792972178128396925994683415114285887224031241932182413632263272557896355366455358947669142210675340835446761584103180862350963079612275796193507834091443972761010156839978755700336483857991089698168825695172454098766262140214467077722742979912203701811861254351470438327594817050169757034483562500391549495659650397397618546813170471336118576342728791200889609958640085384706071003923905373629436199166145147713849108391109333907109955631329880277112385225667374206462670465544787604558554077327645647216485147003170309805536902207765551817027082645267459953811818458996307357975663936322348017378383793430948969691874092917181419158202415902402201868828955138155286288262310193780863250774458861062889763346711273682200736764666094817104831352640397953994477627665183960072321310827393426321277119437052344674213639802177569248150108151576401448995211931861590320796887293832999994945686990583693926311739951703624623249770897172432561550491728094292005951415933519224316771823731449922679518473277496460974875830755206274438244286315022332323361205413859467112197472245070537132921052715360242584108455975829298254765159379475561895389839578009052368098466679418763929137380620734019752005210537994220128770148662076732057759040630116264888200923169089861790893601420503698264069861735831316394491849728277893062256477925240808226054080365702045451895236707034214342292008046475253940118010942906714373476377609646915471848176587096654945181912680466018827452961217864752816940580082713205543035893204274639105476745550836854148803044041405459874273866811157133192694741488805545180427511215654562964725270034234374110817553296765810325315044120751429173441628621882664799639020375310398841819665491677437987155770022927780340622238776810094886869910949042600307199549420210308244851598678891230086197100612037010715178298455487129577840540845000633826566718478983133495294640868709468310837632190344761820910833568508720891781656999772128703549415306697537847167043235343752993885774385768745874377114760402983375499227110443551624202189359644049047999119224168280113224028664840294243412038734340116820696835402904178720696715597211960426950079442286852443737070885350859693808183290689016013109195050691020700827175415279342024883369555332886680805881919355357482434677524056013393689586971769007185100534621278731674473071973144440730581967970944685693032073493780754069291311456030149679599754424363870935103085875109489525544398604075394097925470799905856294029911537212152163255952739539292616132130266145403138130891240227089061447178396163695169450798171873963921635228665378957844983200198242414975289468539699187444684471273642177540925367421978327861134111662476746721583751831999101653353955890199168967166777782439240411713975115473394500016122367934949835762191951158402822748096721214334835798431242531720768225109438945383276680228241813941792396724553181460314525614539368156338046028293537819192146440970169772356739845739891341820470998141815581362725848358290915308574251623576490081716190384400418162831927886042348274462735833499946053525492034257777434317855720144102580985713846422547304285816589381692877656859527160918049244259058747188688512450524005886234274843068585280102340953694589556067473952913966790721446893833914967560109964492637275132454805843841352968390926494448773763714013962735253202293524815724842328958654048754099821580813938492109705022838082963605902004460253893837933719180142817040200067476623229746172920181688557850064279712444568299343334863560439023153360277852812381092951825460217911606102973048940704951971021081636762268169418002446614679073234125824623981117903264300048767522912026354131754366909816477167057944060780425330019629373374308924316416193798982804043893079947235142318422859888955647821013469236555624428077973418561729221994082015733893423430884300937961140326896099596786231329984427192521861713657681986258487676016078239064073673484978573002636340530139228904722239358623876230442273664253487349042601257785848646074625640323359657132097744957374913974201377728485981597620235044479674436627937149088765633182740630504737954406288471279761600062266277833841416654550723495603259347489188619831152480204006848243032640794065660777110837921316866954931205041004574140217564779002063686564714204458584116503108765313795852915443399058410284377704084143385281596131879689705768583536956962731964025007207841241992294159289277918577364495702458363524756387848618605947867987041278784611066040945703328795391911763764145508555407999105460867407074182401917722795775147674394049222288905691775326883992153679757893632849998742700414853660862331850778546501809512627276804005568222818607982082565568265803268063238312762086598202019363785243327220710068473622938911544637861988718349164216878699228635217595473289109150741379913238695956448362604422118881002485496361953111661606488224416412696956127865445353664544368839334607481344039632503273612349114941272959466125626406357052684149706936554249349576567735163569612201812931228259960999943039780020764014155501147513103013442172939591823490402305745030771800564697945929410512799663228491312197485122931420863935997422221036126741124705556879930676249765834996972323092299841236454151040928129548666869065275289048401322961186849614449970941632881738772102031443896324727550067213732626671795768945803894063585499066092371278451280491641030107079390699149403428098148828554535301386426189815120773700426868006709017573386166066093642135427786255972371789379814820513272215296413479617519174751585785440426817763491337336457396021590027390981052924145636251728513060881334180720677318399841240126388969926583708358403056360495491231724409785738346923719704760359087372395691680099677590345919417168252008931647646207585938283720402879752768912861944761047058432342012976299743387255898263049030523994860560875861019124633228596452229958941786015394865586718174758941589917255134178339663755020100919683567122656360815297731267301567577915075126580530089358420414120234069878051900918619065966671048604871521530360126312891045494518560658057376912814638471022321077023442230796436380865553162428149005378436347790800367439152638256823167265883274763151523051335906831034274034562733225174659220647578937548479832829890668833749090086944838740975934580518361641573046790905919004388581839047372099612868102481857169163779037219766456459122979034724108362477711782818020500748433602120225809506870474314082084608108795967464189776207611677919607087235120816621020941813488595023837812072445990436606840105438115010578702114871338857414563147930221373592949087567299170191123527057180174710870895238485404701380769464448675975812992290717739929791661038965825499747855922787433105617825583784282181343768416987244508563145766299729853974263654140457474495324208535534488611698525981157532082142613377413678634947368276417288963718985124762511834962650459779685178805076000889849965725586259374382902979234174784798138609120989327143638693832987118998990110608098339452701596597159560643925534854286968910908889799409976682343828009342638958925626212465502496717971517346669588619850669898977011089217437383844015442690983624813388872784848695448508531752356207481023316535821433039297879005371010221543782596589373944369873659849004646777947283575565329449119173207943267833552480782775912869013385202705420352815163216235661137529811778439224928463556280334753423889519179450812231317563793257963513474712247849721288607322714626420818286592009284138143715896586579622658089265311877611649923921485327701480217399812809654480892726758043759604358025801785950700758449230729226916358096387599198049960573506373923034592617694871788164425558802811168454923692667292216814442788532409884600402992348406093582218917942564049266364214145002473120103681634951233134788528488591348148455602881848659545896084409074804482907175796515726472632206043392416561004107478976608194845746404645417532088569378071608212444969193047336512877488849888465467080417771066447556409345930611547148812324355462514021939452762101088913433532628515546368548938229810543543066652468361515415723336462158433132613838247918910584413213790279332350068986030707399175740346166395544056042744279629143930091798062815929213110658287836952729071160161539767404163822269328968605190304415624545596468668462655999080072634105888201895122166072807071413611976114455183146655503187801718928502159806006905103691503867271898362780306959365015791799678218951187612603425912980221309044877104185704147086140113794383224271129431304656407899670715779917874155049203615846993146949229615096472899240512364508346614033684236609664912100077619193061768535819373653706701114571585938905940549145480142117171079842886650301317356187236387937127749213570758439618465772407952361906508771766187090303567574578316775146111144320832116805784592877718201272040372203401220064341929374933736008159996255314136455290336705244603263967290509747357852248463461863636200689004916258988102906489509871330411144435103355082245487063963347773455594872230970740825531211472672476886792380787435053577004064127431651735241881346096993940372384004950471007304185167664631406874317186286597901001108297868890716621625091488463689871720062312162411091555781827494735514051912960369981878786391757455022453159379831231744000115844232640979893867847088921389998631287041732609231157027930300564017201708502753272957930646546223850656795351867854230910738853717323173432659877801805170973828557972590375640376415374340658574347834648767587170279142301145525865768279933953297987492057287325170592490487061822954216092071382379675338035696142017766168070527160246528269143616991991228084860580616459188230703805834958361598352944793718621365246778770113955056181143915776503939934701228016021672970493791110026307060438524687459839840948033718139388090131434343033877695502866147558744566194952008551425953273432084738029269584437838990479000921029641645109217738765004644259324550971139467188098921585819882906769760213075488147595672402774378593577975442131428757654541044713629605326105509129070058655313416192325350208898923130154468819030104121757310341417034488824295589012240343073917125537373894879178100287306033610109755933276107436656183715136910321432725481147782279293957566729748762778245074030937060771908623441154807724775450273136215211612744044478866607536178121617040955268081197581005525996868232860501220865431701025127895634904541998360562698831494995315534311326511615498016310664871597666735328921188186003901985124777374737313720992453231542432477719739259737668851446682277322272268183653170838284983321366036465071626047544793632371082257863046958559074430890993732507976072233373120859951459399131039427877266514015389294223363857241855457692885889481623298090898458770620952693500205101164471124598422993102762515404314984670866913645611057994486458807694923527956065922072268616554747630580486256376065697702427771270547824871585904267266500516289536972324461052112054486112493616069049894834448719463910115905447091615028499298508797666444724036162576929859229784500580073456957157022083632807762472037350002492206308904439752449289713223085770832575390344884455582946402253572340046216713493681075048747372174198877184843727394390454319617904514641898619700276452702596408270782723068094071839346889488869969824176490482732230563504951813328553512183233830873353310943926533285435419572154565862417851780496920789863905334318744414761061171988344984269816386327263572908893469633069174499924274286607024803656391544585291649137571016937824997661902040780367087613708802790193717676198156763691589802226147904128252527922010631763550803759535118868559071759388639695797829283942521389163605051343230520451664960992221964062531610671578666057417645256894244294212568055620904639219295079529733133317618777815101261157800456377064553650023207532182939255815015016466573155650383347934954480077506801291728017856822981263177029643761646373119457946732717971826632888268908722644108504648630047366134823803462931804692752740606469581094976211591819103523528016745739460207753333421233750251056827390503571263820368332709741932897017420136451815849563671768709142921873618046942329461432103866608243302351523781384527116625012659156488521535299036663329747333773488866061488421157949107785328596699344943010119746345906616750560648451761800383620619724590634429464643765956093040553755740385488546919664320274057715258899898000797156008369469723261463174269710335368215592981887734901600818961358239247424944492257475527544284676042171282612404260093207771689125483594318707158598285779585170017209083039033723642569713394473132620868854110800184978475321646287451608889010276617801468518391672756900472849775343475366746107304333120450395465872353743531953996583871769873822158634585902644498753894755755325285401405627499640881637777149415702873573761488676669940702129470117698928563354255460734920703856833072500123114995065155722940584910571451888965360416176048808822993631461295871781415702281873427802866287187184918651125522697484143215101514409151142769878961435743359851695720383551895651777446086120165035389737019600354735394520687255171444973507613250055978242790151438593728594516060179283464524410802825475219548902937172180401521747813991725793792197178773249562025246211930864509695594669639046165187232182249718260882319430925212961629400546812721273626505799130654080372713327923937580500905999100257271359108136603553195366184186226216365454745931877453219682829490243232217255324663237060687701164013629119503866890996389108453336479116822325395847574448873429606820960589035959572285065051929202423460728119742739797472056478227196946692139535121407227150779774760675442922079636843774759865938382116610346703912734833881480090548476558863409136315207812766725349593165369948618912242920966214815793572566303625063546008236914881500336254890614085749896434478630871200725126446723757393239849911342057681453887399267480015346534694019276397661369503601471221045395075853439270748523286987444228660101928797416674660388040676513569673255989547544047666327237356201018091447227848065623559698978218784648141195612539121363721947635509538798629888314430882162037334901258131889290923271608176087963198950963215960872809925793676753827166178757350233438512146372039009696454687428681870830424547188718213669138879953741589831178596163681594296538606547173243749693625204913159999377504085569410301188974042517535274720688076806429847686731834769689590781921512963486824103618800879809504383242042078554267927639064682206101569195426584854404316632296565700171143768041860748545605288473960225114533386329567576819397655976470471891883458847200979794899379108496727592943291317897615514794596275752043160404395595390724427290161879661272572320632590717198005810608744782470025930309023507411831185920279746972992052525651372724595206583610815457938405713939975624134767818417999683978674891187956545001066012934367862271581641501091601563636468271459332929739233501181453491269220010000616598558438650192225907437130859818352948403562534500144393317922887137364802890072944806191483738337066390913081253795340975566546942967700928953185182438273967841094910358887435880719980243797821450070565843840117472406737529374672024584267435486514966040115526768812592197293194750296596216265834655450393675429297636422636667929552814287503151281675128706736518743832669936461032598593989445636578868318648347597239235844530423553636676766240186405725865726203090950969541605619802802071050806608491660258866002419491395235357637883400186684088671044274781097278407391514237912860815346910952334464229811972555952343306219418203520310803825926494695861422278626680961550171156889515255407708153502101222466228862987184902356802823859334507126055246437224404658123131262310482450327300788645692978764897900313828253862851060080752711906355209276532767152980985254022140585046264090747603478652181971123380912762687338115252815288167865094656802490553142583063400754682241462308273167650227907796085785689980762236201988116606550304508445303773225844348319744487273855039354752132731277053658365950105173330300256268348671925590460648533272852477123237254919951144793608767217772426370261342627981994200025392930801721273066773171337999835021379540386154170441207471911578885422495426421763233619632111069292174541062108653945123214123788061965160210266257800009708157998946778107742852298858036121134218110017561813813056722468263892972821203310657313560052818113161246716228786389571865583669099445801631728355793117080355037812474976490590933893113020183421234798791185060801698360797001647480184437919923258904346146936259916235226731247905159596452726407252058504821692588549428713610982359915855156586541230920198390646793564801739005430202721484204903356900609174397250496363911578712410648207570066510901042748225741593886025830269006845437310384806358948828277104923897040709726566722939649661491042330930756262114701454060755245352104918941261410026761812111659063807535344073619273020887880228054062996965964101234227976553359138175348232656510192022382813760863196638771386050843142024266553625264182893280327476129589842918713185768663702330140475784181173086622838328046348332956863942351522614720439330839190508109605185720734022182228694597625550859401785563416497724591611296371760038400281202992820338995062302960868935330729380335871699525911320728786565123935030645625027876939332340467488437820539909278553204453353078800576260604036297834682353278779117534767483816619003770698818798131626176078674875053804148974448695160950370985831182878330351066857890751427741458982405564226008492083615922276042740076424369107641469913009700132998670830076260224194289737917241422188746283042615631727577674660069032358190842330717879160823279509130671297552967487583743317834807588700314331510870379454075088749524645437846333152444035177307887702726711472503977164668472230323985552134160790484377713360359864416411375279480564703439166082567900155539271248066911850069296963267226680078826624160735944525684897204890691947894473287677473759412445106298348671686158086124425290030189820811413165562359150829946203334107123699952599218674830261517785490446083214602513704234396204743928879553460258088691051067595079948877502401677085733813932221286161890214983824435927599817177190663582136040718945528105301195555845490822770252249955437835489965529196378951910639027889205964142801187544337830756284654939465765552724708789105731405430789781508153262524631329841566159474872047086008045267899723326073921443552932969186301789906217504123018222434620115326150581740566123062861199437428617022655552932429939147053443811054603676463715723503203595153154968657178555175484426592983632489914085585368909899654542985934590009675286011304036032307982370709196952445375250577442644649527690884388334284381313536313966197525954313420721395946985000657309800517689989147128760248339202986139415955000608370148955092939556416771877581355823539173840966950190379568661120352558830045400493085589749676826380254300272813353470402150852922188596813874168900365837354706737742744754297269928487090577570939486313938834845848784085029597766843521568024082882258176428614124204771183323012938384839658088943093823054423183746189302147926811649069985426392229641536217371114427462492337135200736366238870788626502119807265417555923923923591430319481257213533793220603431587871238572025428346123340617112620891153129564104820139710515591334087807106234565044677219441992455305498343047499713582048418466694473097169165246888092956063592430797470866478237415900169311686626918847280820000785953081410872657161163100104777478348049568394331845753007199335572006750387197200526366053418013670277279900717504440442556779079446972274167378218485707877440586071566733945084756118669082567048487828179825844081863561182354556216437108812603461306594095096919658445421885219321244489998360397894523432538411720706831985903736064564564492922281280795108363705858415098849030299749492153520163621659280802121980105610450339663042577098269357615998113631442804584729246916321607841914192214633757083681954011691740183588612905460109035445769689616200598221312170116820199336197112216062165367092434960579874789186082479465482449500666391955082088876782340019323349731038999883550815763620821776208752965061291795424080248392818638536917723097277806179131217703075522431504146013825426812263236775595601994347687513487667879221218509702185842802078717492088209967793082277229595283499743784715720999187288571727041123005733128843133180361745906660669792546175268827886073766454005420624703796258552401221831209943044949092213475527622873898402070042830922831398998403236241026136627310165909701358524583517653700517307975180688446548310951665591558418757098378585980953721572285305550640231854967917043690714966436266230822449566412314954764865766105235079804262797305328833465484557065598172149281757923379552627148541868035355961996964100389734065208201801003423071168257255361506174644728940743796829113922140260421538947232955128410028957628818511018412243651614661592128214500294829236389446149205366736896900174554448399659782717926090943161307862807434982964634185582398547380868238869694715098202760652732986898020087666029784059126860554354729770063890846643549822374268873147143107700681771892782623656676398090788772925788305361568328242963345719661845982547365479740472052470079511911293315258794838301805324370904880081233589406989882472638650640744127940438523752357815955768789418864679333004282900180624976757206853341726955787569643178526049135862198864902444171603930021511179149743040618907308415993724265992719563753593131174302899621124024229828756931688950596600636134704786904430349153349666813019626761171508725640230917571001746798311713551717835438830717527728093164417679623893267976113260676894334132819808061018414326830429108152454641015755384587938578147554606431856955157344970756411830062205798040377399325612044313965249526352728263461607214355342005825836951448319696665123634999754384783585027292816380243929114494200214575354505064036463256814167674097787842991017964405314989707979204837543338382645624296600450669108078506550041493493678292748521618395745140013805079566232612433104922517207575068683863923647293873849010937394295707839148442267873001221959034080036340394364798150288397054930929726020004698270475478278570282216880555209282664701041920672326083979007187153000548207418070557310487617317874267292653112213440742981847179704455646087314378918283444669420368035511690873663407114072351172112729439454082344608252927363480689139862169545628334697200231316597464868162364287478773814982294955110175763338423989465448182340997993878651228475321426471161739355687030513145386464482146914093185588408600817744182766572710483093844293542220873625414787358210889057326200800827458954443131579053732198693992438981748306235648732665622225266930955670945669691850621281956222858805985544442200915646156220318816857839843147765052168270627286677383347141503639621283742630224899857947431495786224177318784057425542635823883913627823647234234855480945808489794176504075174676385889327829211673338276523299015638471644525947100915786894391417334179045353861902193693960157243364060476102449982049550302131783278560255770864401959996821189066266992821122304975909526888648546316749554679552357995636109438497480510486119999142649363995003040148727879714851196349806496671528650944161886333535852860856964995261189188354352154485402529584078112566226129656973333481959591222768319488630182828567665394922715934691468467608665318616739829801610121038353089521029584606827833809366358814678496039365753089106574844120759515008255673589022223230689673639333322431451527371136832176525732758894837810367159351317272053653142418007825048883694902199481937263001137910288973284497099747142911546492415474830978081415716821208369407612785170440568511315031552372604022918194743981989334427802793404443730648744938920773228861828253229950973518364077669310236603469652674324475837268160688534509189685340416466585252933997847368547830086947985115136552273723963436516385210016810652772635838437514502514346412690144763590919550503972796211980274890360225860620527368290992241706637865696730049597319428924004454982673251780764600677283061281891310392446619554378141416939476102333987416638884859317194368967291776130777870353059632041082863921250967897900368892080364599500206383197721117530571422404831692553593985313654683132266280632143961378384311733971583771157401986674486327993183734353491902809556942087435842621763839752626641153536242783029610201130532514716496799051630245316095085197148505798867882175005938808222511443698831775945330199098875080266862834166353707104004686677063408843739090719084325155943436848538058622402423095697224550641523775353850096555110968627802614089876827027444403742038828515186260102165134061511785630562322635028098226837122058402723496020069147347364477181292959595702062401881432482026322508366297710496976192501529276553181711495023161886966403571045601227834520667689739835395400636816155252974036882478499316772714594140545131773586943740708781948075537463942900494811758867710802079419543505477969902838099982198088553691915199332951518065595000402609113684040024279239229556008606058906066296331860792917647193446629909549200872823114759929629949259202869829740190450024965002859958076041465183824742391901580747654187098904852988160299158960113100187112724959484243990779577198518504516702206568507677038200302950096075783520873539372977850846733954339433443383042443465671323733750222633716741231316202807984038175735254863630800811409023243916407331705653826789613296525056910396445855502375335509076839048222262843939240766755520363156751931615670603960949759349705913259303423701243987352552620343848974209361711556602994543264101120337352876815248278506624619810452307222223667590489967761637479445329573194398638854953666215521755726291296299944761936657200208053068595207731550209117588163291882199878745686793498438958883528852305022592556153625066438821859590720045038559459196440880726879946096960173731517157747845932710290829505800339649337161445353854062069296094561286997918631554839664442130637152561426053526108068634285641023620843321022026550412389549011632691354583349268789468882129071099403486694377744121874936487995470771850207778127379852972240376579737018431433832300465898816153763935734612367981561956550718837245731478572054054539449141567974895459247611893345814851958121794969463543336708152526385419237693228492796903818620842186335139650904491141998990396162818851011716842715350336633011607992233815591802441157706855387458307339060049831125731387719523835962973149629554078386933275537334961815323893651409033295167939091355620666768199786391790734692987230137302244734210359793875744051009874533887110505970942456922456273127422508031419638432259026707857661611138920770357351560479410427613070742727560696996712753071222571411947033573390881066010294092918244552544697298593218800600861070738993751700664703773104116835082828197621749672814171914000444985105712806447188611855682689954286145680581042622998800035978545127243290327880151286536843126308172601632684434702762354313860125242415939589657092109611383861445020455952859532022737745223772511541840153380818692146801790854560855738348088395010776584565741210688254147460107728344216923031538783932653427378220756543411861066755088953151292734555457555294383109164448181613234565835610670445127054735926638139852770593730492968383706985126015370011295648448473000301638190655525907059365579723998481257934835801025508683089070823164289391129845726611456201264195818553606259314847104707946504738143945707478724887196598101505088391939998485990763890156717855175291224101140089001015399041285728022304728639122533433545652174700983548316758794586217115985450778846886419367169575976823972879938187089212770352538165761489386276321082564339904568927397486866242353699267139940360961498466820436166824492804649128947286383031114765648302249860249470228202564523351340977633179607943534469800727858376500331375989636736377987504070524195479988190591300707701315196070913763273511700816608239987161164299026446289104198473130856243357044680009294928583918668535111564036279375938776525789728098004150112381116267308247867504893940587446914863828599922156808260811500805215811766734471020080307317622331155713805839614302688147333840169578596645481995922072242782590400800522173048218359917807915567498964087380221412941219761651896938173163023535586643521583245406710594142076778419193186387153560121772059239003012858768922526898409701664181158433106462005969304201585336982238547793821780945746296655261141139892458937038504544809982605480112964576952857872732858950261782811096191575379489822107133827552987574840479108254155765190992395787842259429622765556300597996083305107357320843577040383144153191496515098833209212531028858740490928046334305047338017478212052957038864164760057354700605552909750378036831670602798186998562055706785472947321980712187616816113844270059660644751146207567833716307199908198632759287254263358935104842853607351015149473131554484455553566253742434262238543534207773365042662103166742284077837717950303677055796855593531187817277240218774570066784436652726545016732398845464711572405860770063879679636242155164974693841409972472684942971098200058759818375951206876237147315959921243914238682993677397043011386324433615383501568496470298569782340677994884078680680435702548923227207539487107601565977299262099068023961661212954940828078321037381806098615506477297152853690321920670171109413313504551676220728907463661524993411276366668456533134599138589459147185601549858419400738012991846079611870620521657146415795314000996226407436831350708093909734685477136193003474587771534524873524944908254241423273115637492771409046006429416524137483126200606986079317993591913473128872040280174042614490213680046862897603915218177500124598816176670278234700494859040127995140573681647346762894065955736101745331301585157415186953823937668542137298729331946830219587648409831528402908155847057201522991065165636155805526895662361422373700487722356864718718981656391834564632184278625217286474432986108992696941254930038595909749779127365213479780093521740279821410572275302153514424876464385229431073965419912851807844370783538556208808734018860938653723858850911109239109883435971094391966079664150681235546078167035612060078813796534289842495883050880717318819302939156269788819547496561522727912586255883517506156532417485274376422016998313198456395723964427034595894078017105060816215915920117595080116341349604312843805728796534852303854995803685932941182011499472402056055668011220305911553575750861558211685507245038732759119162877311656571234224515487265634752476356857190040858011031684930625146647834491665797819495734841949322088080945038608491703627929807918810280011219177772344133473898077185799775765631675577414925197982500059917163443774432865808967913228347820090077898921543636091695535623061128411993470804434292062506639372541791501813390470080234676064102139137650263816247241380511547718511178616457176923555058684171805651358876259961992026939492250576972603083456863233286833812578454780711415534073836802397392854159583502887946383768163435015442566335636954027295668620497296457356195992023369523560808250225174624532851896487376117680383813251636546664905035535981287120732993883816374331639219111074604084034185756758513141170915853843190579102175206187151663456341356812766473181996364566219711565296744904224439429519975772012891474371627345050331513668045848324676637635808203654552404534739388725167440631944222432621592999197136198447163959323021131613433562391712386134578239476205024267549335642089521711268936786116176571120646940923037027747321947469796512188081517829098132443236595818625634074997831543294084567531003067446172357811568954209522385206194898622205217849523932269112802190496284278453155987663170898068871915741960818852026555431649428033419724802266194218228103442809610949248281035752940252178264295611223175093929227222889128573787904194590556406291196754644705256430107317778850895311484650748168205988058986017630312909618789941430184106051929187904843732900685840346253193656498928519378431799856055976564327374199293931496796563384222960921596552826104416355844775117393913369154432828758638975874640063835709912446170044320777723430759555930137539103039363397144395502093562034032710249486406626965215836124047927402748597084154773882847708310494854969709040476953696154711723650248301795811429203434730430860470074049564143939698428966298110048031992843569689011262382644935458950915469614914787029152453807205081277067181185032644416606825400326037818734181354150822441613519323665107805355319257694941824637243135120331770335172701975898643168295719120986906892083966579961832692603747675297780136598217114153394479474881440711173768453037928036680641613636174206799464169555859405228142879522116857485716357223768636956033270461936795310521371094048632525258312432788818135222390639385199763106872772670504607806164153933276767418042047483016522083364927718557275654621630651787777426036442268393528618041263821226525140661511318917380565489932577596393951278267408341518838120827053197927071376771083138036974010938333377798342527740327443361811669877171539617775560062972667232870316341600868288439252965795602749160278999935957486577268322309083622107433671902549197254768133039406382512879764619426578368231510270711138326291510622635333968742114973166458660393750475523002185909438908177662971888753319254617807016450931777420034447743887578215481569859534871411054964382022471215403075746853413898085905990299572628573070534807034028148966644150965653119032318014702153810089792816266402237484380938326034071832125061388057216021912982850870587655599092037244503631460716301287629790430768646692292799431183322277400147650929805154317775166827627424278228276425879357175336711176375194978407771345688935092992855894302856935347366950264600431750751193652511029810153526473428024468837377730560916683985505927085946048194101935590177797570174902706160558326536839790746063199465473492990904397146640696495175927858376699313429463099750027689169663415159102432521813963233418328172620760514365686342222601248422960708841119931073488741892341385814026879816689953699027275524474507046521201072744268584591707225818169740479884018179737326074631538381774978209533098027044241635837160853143758645672567930398834934682991293576388785270371347202470834988630189482247765903625944725102696750125330595146786278194782056181488932739867589416803502954246895205207191007308057693337144922019000019096328059815231640798824185574740768119250395355487001771654922576463547483413901741588823453367558431467724054163652160970822927920825063673536259769231186896944120093152018617605931037363328247421328271312330907693852667311167985718319182306945153464254706171782188471421999078174234235052296224211744775221403024821689193038607444545459861931440287029038884909414236468749039925742819417367636138895008360362047862251975904299944882785469170683787068932598553825646503565244516580134041510911884013971332639961013175895092013545627925322915922533882863339186251180910632671234695659683660477396742072869497959341930665247901988461988335624717708219240202518970151286180783268479708312568709679848116296906942685267114934266119498866599600429629575032052643280951727452196438985664517467628198704952283695855040756777800401912540772757599340700241599096189369127498684371416653935850584180955287676706083378374625708100675247269452912817403791463281602301491339477452850522696485258715444328650986433842456670749364784751429843484530743656513745124137310694881676754218336886528392830309711122629156018743609750871410072034700082594587602690043497550150890673664005093301257068388765437731312117106668592291766072126022344302031796903723761788467825320180982564298472262776738151079805976914579665141080064267766786774180182961628975601934682513812673044934930100650542975131639880117986720853634005846513918802890704031489859431738707353342599627529674899263095348821160690468977021278098148695172129705477256577549941807371525983218164002797475040577861175086817248260475677081229422363160966721695513652859161210468211173623623757212171773481474990343883411205600787124211777933079167278131607547717562056240017186012869602387886994582710310967191309476073888879303833787931973022967336544024681936319895794035539462323673577892266102027599263531837647176846100712693283170139385958606344846854143878762528099013498104295106690971644509226353753173084551444200542151451705485815050985344007469394007048445129545701247527301264834245700577882741127205079076422418686532432352049167571327967049310157368335415552839746366123320565082683110924390331762859067423639747984933648205407756968382720160198783907713952932518764564326432485238138749666521794451499812469122744523666625950030694827043474590547526775631739285861783094228394774242993233324368754372033297197386604909858957397407006717767198555501627191615904669401490462327827059162356716646234116692068046286321633957961289479120788008489138801875745562229769887360055567738355917440622989765669253790759886338682258881587597004764331498751879742944967815881071878105717271884656899202867798848902059773382295826670100548240779647948067741563170118028970506904357906623233012686964460713819118486748720137257361186403126946409009553658994079030287370639991749351922463892834598168370011086349899480031879371115538009788112992855711023708732389431591080889098947336065879551036111196996096632353424060869699867414901901318223738565257096594253480944125706942526528836963331433318236907761016515296877351983028823749454682482843318046680621842977814084507201578133630041468866459302693123598434393871587246252777241390024023065252034293434413877770746028068477749570137275814531597740536531491330063890588313468186865049204301652278863789152442024309981171130466603833515476359503116884680842123214401592271059934475712108276388481357874974284564819863575821756476631344144541277067111847915225148105686913627356391258375316198331493581174353921171534396821747725388952417686573721685890302471422390826309314993927469084568367764280844096935810258655189728026013478835310320853229765273517640497872743016690720322549788980770060835643877632179785241287393665069492001628756626393226554704955969628786164014716618800877460062129809136999579256928579213996662015865984671043295902189998355036850339554940725100946140338788841691787302585292500646762660298400701718255295290478723356260054233206091323100254868798935201345414911409287534227926392088405503785956172759855191995277691560518877471877477388863751900893327741639463536990561414977613159590332131719455983008058630328278038195731292357335525196342129722425389734250254367327857574614490971027201116611672161636016219421103191717074727689816413267830030302976606296938138904104672535178079041011570415316313278350892920265443037199667013047499454836122284611085766552779475385979267188492050342756816526665458444183928711874330130821344982059811334182315531902366248053011301942789603498511231951917969165194390650617066172981365058365462926860022385830041287843497900379817891635845003720307085300137232296674480949681870877304601455467998052182754595397929258061220077575972774626325283993054589208586186998186313372750843373146223297763414395659845445512698049161067367932553038846644765886548159836522215203690835126493321739722424031326342911197335519770798700532891401562327116268914398298307589506502551186336455997713859143166341669234180946984738486974379242226231408896161526555325621302219319191793746953806453430434042730811456245600160501325192431763426252808316807927429760215539067513352554277447644143254751227104290986906502758919347081379966156594437834735501894867975306005524289588873532477023984531416845290780803208238704738126113695221760014971318146013826766750641265530592210520310641518305070769709721370829733835736411346630609470386571215450786279370762550176271192693795405592836532461653999070298298978580903473766333559117868690907426779719925846530665818406599678263712067726761517518653311710936161699131276516993501146308563325088025340684821814279717981811773345055554777181313292303107917151100170493658170037762176046250691807333083230082425270317169174379056953984557668500914545237615431547906573718481406356778746639607528790889930430557111878066810645476808633443467954496486286756863375633198791431818885376225533617312679533908221544087287163128778862904685113058264008597086743946690606681277512728647786766338641452073608390611467787292227896550581489960792703190231030753613638819840130210765297467959313298152181629589522932588691599317092411472918665355346488801686420190536578918100925940975387308135804200682689145847999796677367008946096192197825279009636707109565020034192260606814318188256557726994644169655974016475205388803417011098564609139509828261426348034096550207439821512371062581724517159970288432339663125365480234673805554877047249578590582924435375370612766048924231389803088466143698320197883303248438996100323111424811754250207109097497253839171660711279870195075215862140658875195927358714384621836090579191609057243223413271211413343730005613940511471445340908516668815549086416936579631091822054086740437522235451660140540127849164230129256260031267347669513827048767267648288845916814941207507260464544257430908761401114258636305294458096457206459612721443695793101272482467997078661309079687629392152316271605277592223645416617266737450472862914777738912204509736250693937515028361746026275101091559159673310695070694692826486870213180059559780880487555339239358105202230979160550690593674522353973828927229265989859874057512954724156538793845791885406461721516239475866095804858892868911493247498768360969157591578055083090056867513406318780565732866068995089597849521434015133840003227648228858266449427043381543964604466804868416987986398445680446116764963161460880977726372009425147920160471466907529272932558250887045837478433951877779757371585668295390849517939149108424764466531957557573243790533460423122365922256651403625951966497126756298508925600527110756980182919702492526306752441471718953198499455250535221424894521033502958967558998285570819254348854718297462931004370766709054140304404002107967221115985658140088549906840778662951433245959799766437001677342038412005316455511905788924003979392898160587026919293383432221079147472807712287827229959928114202083462658917493954622320860549151230579890971509519359478295062301907112616176580287624337064285922325258682337261588341790949725227575838076009361221255126247622120322260209834402371661466710321373784853878236011662220117400651689535320235666015038121506429760647612889901280906801382002690708588695459547581851869227098244379647794472241903171642705296629618024420991363891467168174122756429349315272432768003807004888758977770116948574713299118251421848419015354554631807703802600735133780963568397142648157320907159572023647570827396358920737688675724874659479509027865782050193071563422996159007453079320075262437448134483499969580977924834343053568328613304504355256970209967200771345340404338087283608225537401995943565088642613185183153549743362633853665281200853701336501497755231206773163872078615019555197411008882598365605055350114343340348863606733536974198951402088683958480997159323030500755750434990923030948121386855218571350624941517832077977096733405024950098038605858845030467510608908166904240080257358799546965519813279894898632334263448014350200927880716229201191180487740156836984786486197850551442726351880802010567176549658762446394623093527871312236143954667694724133248811034026358334956743050185790511885398628379927836490488090861970969828575102768412173049627431392618404261925780868312739370665806275448762532003588226624313525581632931073511912994329298269398267307564790976421242242839936598223263434732108191870134404372620186873762898927565494893402352993770156762915561979124861744025665183467418573866722665653112002793749370448681637996647551530250918596431613269629428934455268004672558737694629682938390262624820868216310390813881261901628219939750900243927303277986333562234235272387610037706077444335837487939542177858892193433412876813395521484797142177571288300179249822805469046266911138046761186777077578302211629460349873700597884721404897505559943597193110907336617494052730962760643218972178722016431111170084319885854481745410507518802538356160786859725678187214037442663629753105808009347845552536561626294389685965024768732414974327031438573495215500832998398341623822159887034397559194174293729649736766245950957459782983858355253828237784565236535482021762613309834870248062309112255451358202125911723220923824242950775339594972661547961785131152276854924256297000065703934404437148895804214167047755568733162627368781165089387517776005062662984972620723429062533763862494988345027950043550704399168253567295226714667871333894445416475932725980891326347658085756633267871133021884784427605727733983334365587454553701456188876676426625680291432227652189568709171163836213518014025572141163132887899997189828248629474043863163538893535016768607190614451015827220417563389083628558267474016579826739383980614276583197418267153736782300122612994651784664399388215162137453161108284538993255507214645249946806523850116765818279856810654198422474616796439194478966925355973043190202280480043875715891052639367336064910476963951480899305439296560496991471357390425410095786573936458851446162984325346238343112462786384072040634427637078098829687993445520192990724895755829181967752199087929341010227508032533750206780266466982800622770944727620036344722499946612478591198295627321708425233756237580274048486533967834687684498289996787145605599549308474956673380119297088129832577154570335255138734654667783162345172410193656550919958595840705466419391526818782002773263408017513408905455816774966030920540104766903455832901758274328677689612984456771388799975645507710257033246963128518508201872198957694672649284226205912954286418942728299402809019990596034208434894493927987068885778892743916709941973138857307754424405704182348985994946271762355531116161865528961362893366487631189028478298260751997562312359150839075356658557260900955502702349724450890923238792855960460408585028149374556299121836309913934428487795822422479888797297120373821973073061996392882647457359610556759471737970588883615318260860656886268532623952394630231738282648998661194047860664062386167298009105806673001923134689098280534436719992947276885898666639785222636643829831299364049547166043183759527826014881209361691937975464977724694391233468228212955914694320794195466337590842757205501834488738239884326413688560126026541202778122237249335645465079865246472708260119558954331457755658841632122076847520200743842205068349773906075520030296405882393889856826341769169976908776221376173892902938636786842703840011527453378477168180137098974748946088759773414940607735626984442441722389965508116613536444081168239916266841894475411711253830216077008500205826135238127172351552296120531079081746831377709036421411091157059094811518518626667375118320916440026805690401700227724161688107012788039638271763302351385377389050241969853350005450254274200828419460522931415665257997247529505581978603474682415042052794465570716862655553372055692995180789301476835544566743479424967432053779852987236326963843669119413854372397545134967973011582921845122228168986650479993218537174942884990376545791360112752986054860448507300456964485675200553645823151023541392601778292109484028223983839254996544685827835896097679854081553033464713471631154430257280881991677580828838056685801746026200611627342873901622066030975303973235229582764817784170523576829873255059763702015455720434751948796137132298824356187904867201046722400927541043971543768345567771081050555602794029027345471823777285182280466314627655615794480328079715862851649171332874236283182096609994903542061835170143532228005627794774628788928667114765950803352855472782307271273475736080976695585918658744276945602439883651333379422588869832396783886560894405632421170960182414188972795273621004961482585171709767350380742185891883523974314942415772788826551419779424219446122122966688820139960864793785537274298193136171818461858785208774061272957296840793239279884966468560825694217760433659678729936228075528426664174361511186554533493597979466652861813468428535906068057084422724562897008614300208311980100744619859644194976969458267459167310502774404641698466079822382341103665803505251120560610480830130587492100623877247841139840309447183506109630019351474798239527999407205481683343957763965549084208551215346231824876771272178909494871963968444579810567450249400431066339536110842695230745449430018475542075265124978992538480302623190656732619326751589458164214627140518907691267840504290930411169546204325516860205848409291703455534558868055862965014704711342470201063303977025192414684019506036673226672061047302911068809269243532969226697732509442996416572743638154320012543053794133167350422234839685791716657359106894066297622464756362907529272165596958001164372626472444265321815090627624079858097590632466518534162138196117979965284364380451659953002375502593311301768042000667798952792394427033361246037531344321665667867761873854294731799208890506363705554492188104200734634079065094236289332529750470427797350949643123506470112513752980873215951610262787313543985316830923140857205344323447495539746598413903101819894253410451223328490314315014615650031966096188132828017730554641131470029591656743846163359035310467684131412766159252681353623579589573229788756507464616231083965224457385639177364993379720183807974587144563068500986672257415236616724265702157397885410422943356592016173653263912542149905396404845213432280030759143183287980430942949023141364065459184964373278313443718372240226963165443968631684596742437671024489206709571585103961960960578252493178495722997323229846609584889786274864565824070911534063403110848937979321478938924228822732102495981866566877448223675421866668362231875763199601267290366412542076931615167497333839465772869845413035257882966738096541759643859507269357362687968827116602815054213468218636927304873711336681476679881697138362920836657328399601103782995910447950536388129538030312542715723566960841501876049880266063003617830009015382645309765441733151529683439063932588592024623362631000631468497179080897318711292887391155500205517241147197087742589551836001041805777578341937811626043214110732232123323517883399370103118245792021141760900759635437307988586786867185716261456640888772239031303562357536277537627065744054003449245228102507093340319413444478007763233462566376727623504548709471483790496197394246803133336084995834283851250019184965068440287121600837746800019657121135888838237048176265208897346133945740465047973161801372420541530402851395475747647448762309353073679755973694224396248910796126471679643014467334997381385868403521239918381215837936638148395790062441622445129736523206266193219321782788242778145806198833381424984168498841341681320321641763654149969323132242388938037781779802977917234351098140172465843115816925696104283188411866827526321808389772843541291157006937110632389163511604460369198806777078894603702264357660908703702960434460609494800543004376059207284931317762119389332145561956782060330696104201437928972520521885781222387601649463316221862424445511803359453608216978881149940304487139564423550783732738904302690717101499283703642565580492932647688254420293272358596915913064151444521206542443106148732612673314360405799524647047499394638438367134007251742229210941299010239416320970102890166718031681358883961141408237261835598366952410642503005608658502478892737591509084370664094191985566553239827372497996594007687619030970085053645030119043697777846482847870761165032782193141836755654423009885058132884954705466736988389504661619360183610637561452050547837022727793925360084826587319733462496570566282612693675555129874065332231832898266939006869191662286148012129013755086240014897683271637908835121188335824450885889606288575735430381853568168966393730823154511468592820616010458115596660444276544300990422062248476414851112579274126524896225139773306014001614649899112556181012897247230539297510371904246678184530284392317126761076778442167266375074912202893780212013837830064309521166789658835562661711206965337529209297674972415482909805995476480730904304202639139025551288467262881999178281905847109571311744573416637352771584784650094333201249523745540435093329315989390395995716306848407501657605960275586621832168150296158740941608775601658467769148673411992496826557833079944710886876500975308158418591365077363799150343186627804590832009675868275581778577582458909766073725027310436526516993014435562372505310610066211056387650736385502398410769631256281236910641462644254876445668469489890290094539994407888104974504796738686460356262600497810598756165236168635861135415891276620258291006434155404193779976406481638574923335051614179580493568576429677115325592194326334856594829757273175516863613215121402051622412711086091471156165041605227779181039440098596857985279284053288897379725289768343589376641481467311935382334837546111670153164431005915156456343059152090701710173007689606207987082870456427444069363054320838700596489403012728487535744514674976760170025344050434036820007487054350791660781050582016718634711113225316277361041259958338430577466443173665748153905783568872853713212122041020724509257619933457485730875069506456990632719010855988989764989079709462602907492320725330408790042514713827663663339011374248141183495335293713609109037658902755719300701037489006285241254449639681841426692928377900499594031181272509154345951225529861369841537165412910292776349920695148034864575280860644954730763599312969134312253230579454043550473105464195400086101988375702450021597897406968114732868614233809618426241123737781330270302550545871901141562825122579588505737766552891835677523537828108381746196377265304590906065972164588949845257067460968877562110235542798080206492653746391471464783693317542879695680230067743879158038262765396691218872154471273451084855126678547786727104863420513676285389751795447553947191334252368706054699786298440240533299075764179538399067861098327935879877673118305377289840422200260567843728652560315583954615685000283688073664297231821988351741174285355121959528363417474411216423864097240568628797726760112274011367344320753655482113798297457087261199136324895882996835897298832888422181630573217347473235251137673809583624352543004479775026071927318102865420117142049994534755062789177591567479376099466260751537234190633015678244516197230185387551033858515839197339541272404633828370873796817612251055249053373364938542077146634189520344152501129430252728028702595765652620334869388577985787832454451218293575927759433464454802621453873791346686857200292574077414731012584151440746785278107839193173693180177205036462694954315784910521934365583928930084307951496977591580830635258009157037855194699134452084449249534578761297198293978018975606077776520427409406842527199903011082535534601483555357714728992992287034429914475928841277464507239953646072141289132454509328960267509787447913755819906701759029426795711565801370749039348609054514007915433851480181145350225965276082521849552265304463479784986259747674410156593038754758476659773138081606416455759045061946038350796350824815382355856304559271868555955631319114218970370974890704931223581154558551487226474309966239967771450767509946226150414802757247795866156485220816869897752324766542153783859704214411961352642962683497534850253596139900054463166765480473834836337752501914921169659972704994281697619134354714032232925957518615135799101223040194152266378865995680141717231361480842114183390572820177995088464008220286624982435510085273331793488157579966098354767062600343509845281347221701296000038635849769497400133588017676673029029849410624960756763184479832651385832369495751000633894009359782223811765602340681164109552315661817806375765067200338585892629542394776759300699116708946106431215517170786565736175559892759591565893989201888358358396977231671385177858430564718876492483923976941347822391075150321688324237515842940118444687023131751369179197962549945633639217086393199513652239459329352058106001492739442410426810129708408029410876992437474616468908579356769257558515406254465436577948874186446482684754719083322319599532111337265084262525993680658670087152641635411207364888155820344841818322203781704964065721574813142853647144609860151069069011921711788808395090382278629075833052250253460489469364574463221365452327281718890656607077668857316324444369940133116625643136576140817099293363154502676048871772051153961470912894962876721941850721619107057220172025337544128408449589026052265233272438420219396818660135971018025808322837385946358115641370160267668100313695935812148453118649527905163455262969548341755162968808970850202419920089924303682447287204841431720980361434894083621306276703093302774142233166573161877453587846200841803712444156830967371084345938989080075793435152300994266674833911779344133603601179027324924845811474516727495683660127093721191192204700750163022107517177181460291395707393700914703414572135498137352047484686918242386050759085994102658196895113638625374242751800061835683309541416858797467324295417372224163616109282955083466050419062516345434119738129781494481801253718811541625099725342296577188667505882197745775578887826606530658158637705529647952118960478440192726986544830321064603774337820319488549969468393700770033124940723323717034376648544077227690201317341824077562949098960373266344719874533565439314325778162118350920453770756992652552107786861140700734300366526868904081536158673931472674633177744522532382663946963582686074850343842759802695418809370565633329285503280636842959539140853512656724406969667225845750542924609387775044282324293533978855907487081228989411045833761366720350008641255100968925559617929531077401666287157430132133036162865082992098579114113561607067772978165190886186005702549930639051303620368933077509090049167706517754179848654448588021046090213905479385373718605572925930136246755558271164817634498771407105197540552001323712869187567061332356423585706749967996487002903327537009334576367520370436207711120112098029774773731243748516815806128445989556191409936710661128956040856210614352229467425518389290871450150234948857546136613025875696023595657027264359328867164597354824036891885701606728556737032442119517852792794987638193225879963785059774544788019298927525548218469860513970433663334506700204206188741168732711617512928657291804948200600212917853559499425334341064424686829801521682626153530432432571522902055762015882353291274143106999721430751613060358726063595047068477282049082068833396303920576199621780015314263242156565987152799909441863922804504516399043990799708937361977894058031645756238643350457957946453089418847265449013654345670634936255895659513725999460892893580508745769288316006339009923383118622031138437671525142896831913045155250951127075365510147675986376871843079743542289397740432451568376410554193161479761701924367316318613735314032488159024423213346396455289600390449132554007843698115971027513931360260645197091851740868657071325844508218694537876078204314338700347303614535567532138492165639035886245198257510752927974279707947189784733706383995560491345171085295198040622256806478774022145131378320931216353869088289358846258334380444504292919219482779938754376977093240987370674203820519688339684187911904682733080564344370767672030225365208336556714944457792643346389022920743665193380496698910492429340176402390286580262484113657588939162582454215027623851921406040250720527250570582196878698555488916539738763813567222308629808825972764571356700678776275333377906150437807355250830651880837026679599898704349820165535894381266814584144788190665668805471526008118292776427596636642296551891285440461254124277916210494302776804635487085668319498420216181274937577743635989020583370143542428117697135492673233218259172151372864444577287712994385077321424910730258544310284772089169697080272476363870461074600872979550334157657360391683331124827593762268799260061307389970927646631396492004414288025477417113423992548473943048013250406534251604689333404801714965215815362676578140576869190242098622834444589575436400401927196079413255215898522403572403138454769637155639199575314976057051452572590816913521499076303016148048764819255056312348551925533361777497377192401892082297182549603307437533608955229850540178884832998537426217889422408182192228002607499813763311967848007663797487057534736970283896370658812026142886094071987578604799706589420595888421950640073793073404250887637082664247895845646168717096220420235685552373250037932914967692079270903155909647942955738061581993864422053909864903115205109861590697002900524978590461013816044989913887770443186117255212342914261983551448841961749879324574626005643174537530376116371709547525376450135124405154134469229347483385291355689473709956392220255439878846006527627666026651197129826500934828081692609800591314364437327233114089381740652022123402563414797328773481993359550579232914371692838715001075068329626492860483472148595403869296307014199193861212488540199823980936123508080178952007676831462752902450359645408945934915222165964809798649332244287549063077761036483918949477350776246071956397944990697420372949362376035179056014582778452862321747655268584819458905289007341805147003999637761010623770561596884444175422239536607946311907506797308725920617701930517960042205912233729007555255319299866315229904311333314022387920400675784693548758301676194359347073757168371654593020250010678363498910132576338930901317632958079077495746483440343697758004129545070218578422731255331168749425690903762695875356149274387353738645673475094659007500211458987250193849295791633802754489260493170994692781501382937247128959435876157550452111697899287135550283037599141047334138385768454943437554290085645322924006082074573242970871663572850684719435283606014122426789223064221458331396117732110304201691687044766534827584865415896288795479903908736962295989180672123507904300466593487481092124547437189371143512809656974686479933223741572833400953713285459533648630378909080019280716168214073018600972552017559225779003564172028581373386822764160423329208066948993727210374529434187786488279845392933301893542432978874104324748685277255373837722338565228891305092347401478884623020421651047763793593745208202515972767242807981591682457553132119477915429987950400421790434377801595329098044447672293702018398692392331969071185241557144174034976918991861438284750841399654368283225757281145486171363343230094150107208908060621395922801567129436548749053222136065804582720926109225679997762559927593606297466052736765334300541391782352887680703622515044611533052744549930777028407045191726993006795273574390446631630354062275259760642857277185380003992078361518253776809828949561564351941416415263285869245891301025011280792573951846644040913911935918327488011678996869057721229069890962738546038047220972855795232009208575555326896684870186197151268655042002597172989845953140699375411944059718195889474554045471150635009873831965854504377792620845555291317377740812934639566854227075735406950933717602319264655368701781531592432926102511603009878644110035336364445642854904679561999930167293752378079199253028878679614264871169083159380558207905784106187511284259672362883498675847909429451036101007677947315930627146269153436933842642411971679892398935550457875615439480116225177762485411919435753205748398449757825748125310768488880344318397920327162990979987365452630831546699832897320469953967794976927508379431885254163709198033025749994019879989125219719882371782543421863574037169992911452522253550660370402061621781958250952586207732363508061999400711448289633610393486964213060290201741500775949135259018501125073484797786399263811793258172170913383059181294873877624869032771072885693786717440427794422853412604653390856825649342112074268648709763762959111793409001381780976722355898246897509035251953999608141607887870504212479867782130203961937473642002594698039782576285417013250703434584497554623085797402210331648092652970321721921815980513588104160040996932905106568699424342594991733546138290672242740018317021397682083418780350187487131142000476643285466805792779822389124676947922688441421232986648256865235870464697752193652908711389772977705700943779045136690874907783224428886488593138727866040492436696393897210050005849013820064222329319507167001516670665673302399131399505764272108618646406274385478141587351582884957002127795933056902743496372495142567712978152680153157749415331044645168908726716920717654538904683681122805029435293197957161890866709871404792764883253478010643111105429134794924501279568540388241557175957764900073147693619927521959725183521522677480377478993456973463826306394838908920329318900944060097868764765688707905342480710708271210022586046434522029136281615261417326416457435383182285452899815262979560497039373782607881897644792570233840274740058224944940353424160177499574862337259275416376017537905897857818699554772815885446678125456369190035105562113360606538778974813076931621526581513563624719531906195264437846863237851530016301039675557306332982410287050087186880651262102087288645676458985366956530484513176615996662808569791642432305892191721496944006138697736517526696329754631271632503543191630674503734368340671272788140563199368741675707309593233141647795854976225654064837535033850207291244452160629776526168420896720113417962695685522920750412546626360474584225721265695135372432757669856436897875016402932780936689547410069546150095008602368243102947070554577155513969667742545828537589475098996773162683736564508941836031130405296621816396366034725952295382916295642783592589897404765730682327201524830137106113220756439702083403401721888888474349223398549433519787171831455077653744820085402989892754249169615185853550074667803889540236977212469216841829524793409728251420191291400642364236446519387076208796440927860510635675643008737132627627178626211917790447888356391102725266728073163433372019198196804397261466544466579107708771522771624924806212511883549986863697657767053689448701049211168054144040703296815196209701270895307001463688022067759960829719011856265631618284876831815921671148296295794956171248432484388617933543581028563706209360862987834275521783056098712866360163729518356953068874934128227333599671141006649602142212904837849306196539587586511715721241161013326754986902884477153277411276540563863861347748318428907365161553321754997858686268154541880340551053681900536080058770138841524313294326538418180305604041807095881679506440216231826232513718939937875391604607234247270258906069795087814668701305872837126823322405783572713649491290855641677196115888060407367887432727597076360315342267425041786324503482376592770317726831490371839268584172365262910230832529808194858589426738845051980080183324313996481463893380475625482809226185220689030360493930557819768155026525090316138321393660335103155277734362552733509645549430004152330399134803022880678111195327264567163122275772076074143108943553540617118511724415424842196737370259323272775178195795005976705649960707565680465068835330780472344813418690787633933172678265590535895315418839376035650577486040273006166248025552577840705679179354279962679756715640223507935925753034189255887045145073769961645636916218096040306877140996296232432554779359862960383736140692594392564775395285807837634262779391326611880692712772534432344961165536048433136879357061541742153960965380909053161723801533497853084784059190788573159385185101505174434870914018653901396325351426705564508662049865980009144475534077727821772315491603553330106374262645515948214966209631050841622174656176215313977293352397226333488676827183058402715465683899952969523845621446823469333464256291277438470998376507562636105405364567885352724898365784782645048360853256185154973699607070905264224794254074919296159870425382503966971895805899905744535811541888684720144576491273216954856957332948302215760362488426014085416469101590252678197083275585158277441647852796432313498840939792077434317277644861735949077208595736903046002895672067994904866476212339088795562082543191734789530507971805398405665902085037611783837808220700651479922468989245802987213693942981621220214155185655499076822322996373321714145665494613941191978763943682793086276046553418777899959958060080974670736035625964560038785107513453768637988542818049296117179094788589178117013107475596120452161194096245810853309915482391157161907397209928353042146614209525944820861254900581916911586777230049049501198373745685544680514381975220411851546255988184439975764444913018855062344645446129148414672116521085904089780349723765096271949430646338949557137177701250884820623849798504296576089540114035107348017350929109398821405358252679554639716026521582334735579046033058603893101167248354718468192251330967842970690826818099155592702769668110447451988306368437690424974490057871157478591031527698338859379732486834969552955121444524374216792327277439616610939588462705586091239426399856494382183837209715694129688426594746536582135700329805524544911806083759332293576919789821681397024842329718798058558653375905052907367379632119998186213301662597398896133956329588540408986020684519426883591892866015623325729653827028927105622730382405742228906644325665089315226676991009204213752006376348488801093482482008521635079472329758883700386354668578636989278338984525935144169493222788585838915461131345810500051564404272070952098777121144631796304613573976674458192373578499510403723222930055855958618921047587002006608075643162237143168773586605183578766765606721816067467699270111538950794570162055030399518830834347433916054779320992172438806246611276251232966591340846591643939848810772934712699133308447582328662209616513029514632096925972620965344517141053551949499867837940075998865145786372152779856445346340548823297976619005232529430551033747191423563022844873734833756156086810527730707858982228659418069291792028618149576387594219564678799071379482332984939049613173821978459049090778459666751416988868771276437594942282154591151408089683199743226270682334395084632343130845208521601603935431466755300911496124648217807005132765581432276444693703356442315708841429513883800165499396186253036044860620817845727243556723501503520241394137697000161260845022296763940658431318787418970814828063638562175253629135732172426301986506625997307585220792742893419220411508845312989666336023689483397998276321426980510060687307219030573787555985907873467780689668621010149765529204928617677086564301533814828404427157113537783275468601621472269727798835459402938210346003044356502736839335186519854285019459384323560826425204434533310880224837501317403214932548700881477070468964183871981011233127261228386478952112691844702794610493752615220751348034963553080563978154810545959417559045073097659281602070960578322783115668458910551353259732850197796020705978761783772803941714370352155747853365658655851651631121569489404270120812511298470615473996396445205991482763349386910196787296471287463653516463772798010305388839827627899874552746715471194460535270547174764490150181968833775973912107194969079851163080344093713791487398981511100304092963207614696122785837895571774418311089914306698556950880616050039403645743178555165231332999680878680722830787464052960246593735885293673689724702643143498846690051770736232392925236273283297497662372805047822611273851296493710596206633912506587004421562750377962832311087438678611319542636512826385622947323810020735993877775460442672158112279550159783729423072669213804677669646734917618709887210102889074202590797948714647536668520688238840774820101984802957365199925889207649282091444993832219489883365139683563305428043253688355047933094266726547222251934422401554507371519041747472571183475598453584592102651739889148316432546641457218740756047581260949179688671712935470964321859159538324439936838217317026114045492903459435574845249036221200328299280984290943714488012803844233656803013322560423514767913875682791987293976285957533702816750840922795455024377919371595125593092688441911461889354267866638344298270810403926556546214015205637481801306411063598289971945456060132458668248777154795307420085215437071957586593183997428695083857502253491453930653240870428359279401487757734270799032428615315468126380838687444042268116569161434269128273154496247178970459190283805711858524129730426700732651346014886360430594257090867655890754858235667815133014819035935138784202233288208722470699578886797945803112614107557464811878737480848999485226376799112022546040673362971595776480696063845227944448876946629234566889116075035953368324576672735679522592186307930524342741073192128616627000696834175235094021281069462758369485326143779087466611147507948397094816631851039749428265149581594576848598067753514056982555601652913825516188738800304012553927580293392299870046556483283963161021853926767373424670849503817840605889582556564716891568690903249457815917927261256772093934934314700101297973724700483454402617922553956283865643279160577472777985675646129519585574586023476197812921255660812105225074058009896004215683232541303253509692759482817317334982217240007360671890505304157482134484322471865580455697432448134140335901448590333546728865939431470833996320649202935211377840741909167365230275682554913679469482337358243565901830805016536484955407378780999717123299497007732745225510452034360415012844950231457584960773261378747972570865489921660403802893618444604416467282320835193131318818542037636216497245724376533738267646096172600187898428803113939009333194569764433126407417843522066419894866577765184948260938214266810085956762013090107232831285784468775316108038744480086358355376941495597569428425254903413898010753655217878535020573378933372402632354346211530462715683447165872649224082364200484927136876792543545037369263613554055457201527756552208982480259242850424612243447928963516220452994994146949277863105907374406268548603623048266829002495786845194763431664220340296262842024550566295089305204372154594077191640155431098571172834113946669200861640900928926023602410676423898508729296311221425719242491358663286103837431584328239388343348845604682046096872597938499839173922926650382263225691958970154451960321731806418866185804679267682998455577647844041051817975940529883105313451698446502897809044072443371510417027339146933500934572066133645443544458482322038552350391620063530220010806618242066652908223396446296958755480536382686057911468607612009889949598347686924470994154679689435190793851662710109357084348860912567139326139994601514098132732627201454226259834042546976938132780888373124343107841467647468480320537683760486627339151183970402546729126891918882661334698541576485498456017773545908114389431960325626566337968436992441914490141673494608061629721242072689412793033070896657865740180351614303176574742711368520660577280075374394081004083462634694469774136946314527984496828112631933825291230169638641523760545558088617944950727298724371945505102188037929145797671163222926955083119415165112687034085688082765745686224219186614376024113228553070114633853058613330781570671952397667819999823714960471159476144184640627554756204967495948804921648592683096638260666135937985576413022942576456406566230756243630486192148290287610129861896252100255165049538399882782046324268227051518970095737094956904081455700294324860682429637811817063248195275600374625607868431676728544420370226520590189032606508417703330084186347747431929074878714491850359049178892169876513098200574108129113168502761310175023728580930489472783630300375164804445701339821256625025198212853729245441598860475734212131571126852200835306761052762515949623912424196060211879789627012409081799057940177003891035623100935511063515730919607417017862647487556237791124472485085763825451641008636040921549364321295120595151588211681930536402777263922883970142368664946966262474771521552229388082354346013289570968998655926284799878401378172201571060704228955340318020770996805236869279162528238673964439516469332584223171816212073515044710207379991006489805102899834624753760202776772241095502504463679434868018015103630403428087560886582047934955133176423566845920105297160765957931799699805278530574904216881537882446994454543874882443659536148446950664949312408721864704829542752748385290291705875185700043832086581084190471494904165269883235900520248075818555410326531431412099268636854581033134149280293122666415260690409820378636428337880677111075964501043898449734291348248934552454970376610689248966036467916783710665833943002004704635656246284360466355768964141562417397512030980670390470729929270094556021547085870275062642995867124637507579950789701431811387811209769235682008316239430189553427059264944423970718906953144328076712994243892597769295963729563638295098775952383040522719571860656549385598052093315808650808191906110464709400065127978811361915328681357225602001868502556884836338368309830043247797638182187204668623956116477062362240155220551111973485606286385723913032445339280170817508837615263951203484437078971936215302638149554560629129705660946861021121156027851336837840812647627087558950915396689615920170553872083141937363129188051628655697960322783627239496420305815229222422371741847705367654943240938633798355746656783355329776185546337521883596609457789326791612681877737258824717284846726548966329046292465007847501637751675545572347802637991731521332983123201635075545769461835678556129804988017353701330500259551138383577783408891660721082094334796835965244726934532909084705658920936465692247523159503742972504448900571106052312104436681967319067167290074509463467020674856099037218787228222324384822805957951972018065089100459609930779312663219657049888304463427506206993632604114200550802597295170775183445510069221894615259789422350029692903628214950993524873110296874729033213740195356218779942893563414544402719955072453429497105170050127249416536992350200090915899259925013504052344351745945874115666141778448193216679491060347699923482504815477822494779254141626876559365195148838053627294659825348801412554466570388433389170457495405512715223753093892424396869133944495341641041195113353882901746355631816876043010734878040782040864748519825864734014961641564583153509474114689526498633329814473973462504426063627218431756888321494327843439368560844978555188331052571957642757926612484767632760772551106633739260565240750872182263113031729493366392138048749501772071581997467703882298540018262521916903432837181026726603232519334436061142280669981826430757290441561727636158468328078343901332091855917472673454714285853551757902363057946711614221314543450578682971158609006998588512286959655447304788586233212089028944296756367017729715641447967657980878169934743132700403157646049738314668763513060411039355439358670209773922879008827375345052782675108396599747259843817639634925172458908298872844739511678533174661034785489221545830096010020944416997231464845511252166503373943003705846296230462510135283627245198452935296394598989090496018859765402151568777330003082570302529779494687521485933295586469436295770049932166633029022041064094047808241829740768899027111744413775062361400073682573190767086364317305789331756683233599486084622932118533818566960413813025001688392518350454084083277384552216749415849758560076403998868143708682235739067736150092973704632922464188639141701249030166904128814344649120665504094393775080425993915615280672772755210809322706505797659153053381248479134336483190785042283136061281076766506498076088390765168002261695322605722719642755851518460543337123724775925522234500823068701311100573135860020448146647577591756417395752478467840070668311025705122239093995079463821704850626852131783740962873943287752552964457829136901238735525674827271126538635022037881708438816806147620062165975527857022822615191188207160753723099297036374225269703455067816299323868064298749410994828706677586730496527818404362772963934483109924551200986270913188446308353018429698976436876496489102969967667637298310776320630181052250619723517906938991048575600000445653659673174254071380825966960327899150767375989347155820761540376720315936223570861614071828898872881585236567666814531202419509154240516242506021747100432730982033060098170583591178951655903721074804276210166820159865174174262907038500688892525194203293872952624190251588345508806702420672313706905425839860420085003797906045974085522998489426727717995963994633671719057529051980254743225285493089343142820142970489408992846198459347204494686107206438677911565841582272084191602286126835276063921853060130403696662421145891085528251124699763113409906940983802361738220764124506581257191439704539356297278308083990532066725066968659713357635424477719814403800171536665525640989496073937827389511991670905516958596269477817835230562296084283704065837894722325754130023855530372600785950517246575892122539448696570770885088666619365524815108983207539490696692148032912579383280848946071571602621696673978712420740169794688076250895854126929021386266635266269823123001100806651632116827019953070193132576455505364465658745097494878230893586885024982558606052674804231997510169931888493161164520415691399370323423434833534731996814165601564364302016672425112021427791448364853782292538129768282928906719906934544442480623156575438508555332479259403414530429379337193961510815070815433297485730535709798463137296234423609716424077418256341233006513811736606839932295186853963397769500541110988112610387327548234055423141820143926185684241886177835062033393968953896388017717279424774917558219007963519274957407718468047881142477103059266601964892134332911654046705987704329976977684047951037366568548874317374617535379980353939550067278013019103842690970627384914075226095081013212089100390437856566221730069778421696824311259769411342719904322096565970847734683143845697081308980721324317392689612292092252110817126301849692919386383983474747043986762140907041298571124405246237166065680469845105744042402461440490687124321228481909075609890932543166147893882370464434105368410705611519351573486971421363891083659971013406675477536394191895468553788544134078660763984324548648300221602967191489103279087322023525684990458263109966625339602010894232891712683897513741997567007811102600679591241680067744965134428721645119651594439613186259205973573456229056976992800944817311469773356501141457724602516457818189901689342912539081060058287804381210130111845905321648628083059091599280196209286009015002924291851690144647451020665182033503065430430070341718400930474251068142037647599469562123189685967840133264938410169545875706900906022488117617941694515481438670617495833989563243349901354971850853561196584313287559825352468374882708429238805955975921428598180589781897444967353266646705294190980219533263058585812187175710751008959427299436273447988601278705475367090157328764313236222972892118305050035797995136640398281253916332446860115979598593750130035177327533847058767490963593646944243454699719403924020491639238007091081812074311031744138405915296413607731955417140041504559837153352052639958837516174907302162856736720547075483048563953742761838608957917953351259547677305254173574586115175165937317398916583297260809343955135758236893755876888278509012508521553504573501630945964243082732998841405218817601257367166238109674752529842954406975309640869016679334943477429954670064832944573448227155199901994286922914299682911310178823436724073664187033440298414324998649097884506837133563201953594598691720328097189612440759745284805610923221910959784605475724497922151828984119439611050817622346737041462615014382947921167610808378106404384048330873911841067445016903009672808451775743991787211850438712081644010862777461923631478948358183008359635695112300101722780096215585071113751078739771982508931208286599553076746883481153408616781290534689335923222262317601999310914107176332044884498686841364884172694906924540545257301470353304972255632112093901488872755232596593600794061316522287375983285832373865287801628387736828707982161776625491936806562161641307986265083409935825983554281109210745533453856619306349271624086800674445900369795202072488529044282391565096660066033795891808061225402490799533263031451502005165595620919060999925682431949383051739552910812154246965419204169681593831936432286549121917978017525552331932746852227696317965095457272792289067685703325839211790976758880941739788447273286770095262898996878919098924837820748510587013144293896317047517122926227137295807953619264548329506015097224262502948263078460754072241335390077436657567835674035227595823464242820911564704234357812490804941750726647083939209142955245926044758841838159665359648121579648236735664134719118238316448321613844514351860875577229256740733266364969497862374014484812561967658577916928740101622246032068830542373111606054338449966121136486865087227295105897376621155105888768423993988674117141454591784602132027325965843427486636461957093901495393368315674709114091736702279585701143421979735145364847231279711971415319380666335075485523874896597766523602899835421276491599050562855523062801014258016809842388596859649188050826379892794694116769724937238538577606012959484898702965361919185895163295675608200438789956760440739663664773889525617817227049226752894942029023692948873089923789800178104006608558568778934252174173283894309922721142312142133517596240803603307530777232327315123462239272350392751152733845147730328323515225833984224648784328362098477698059614321996558801285034589219194463102135556274827548235202070676255501142796117259978486942318265427082652930190958112361823495258267113818278647758253557320464938414130513026329733926160799456609807270847045203671196166949487662983571360807875704404108478842953767210732767675625839691652092612464568575106389109624801550085077302126282074962121286556459934877725223904905284177613497367217316946251637018062381434971981657663315503129988092201733229581933729820647384114570717594287129802142087067790654455050466280386741587428247833347924217059768619305927407452522032912082136718259868546006534176989623161655412175850887961433554907416698250830369575047876264940752978847064103654196823233348589080874783246413099394061607393245601559558310582835472588166852052348093283560863043920528664588159549778782831860314007611316790922682959514934196439243530209711144139955055069550116408852081598271485950908865690070287339247254683573154179461272939242629002413724469257008761370197211417681892205127307086442098120959710614501591391273720561724710725817067532237477016352742957784041330190318147409573510837471242152939243351297412189965416669945209000672250241234084623856513583875272660922119070613079604184684075977217584394354548497438371757670303876818674743778399565885895597371767303723461572828919071998467233020929559504014951506197156961173134514009213177714413073128006232952212924287630362828291211878947833855543541671024148225374422387461872915330735650174953145318992883541443365678913131391638233721515025167463540619560487829465221538023101795181447355286158326750893128288255508812590516626977004550452753751760525133783917208766447170506573686754121738908549036484725287083321634325700574738375145324416556672561709705353258968920706860260923082541987229910413506244345381515720921417066296283611722574862098976107348895153849483006738822719462496716825745278409843760159416979113114433896929985885371311662150207208510956394663765380342466903124848311063479269138946667552682778665688581860383530328703373837094760963825216624620342065319363961745968658951400393697470588119105948113370469209415254629167740909680560004224237359698781506216421883521979585310306467419035092469080495955763507493987407726477993233449408695825050960803658222115084532626805116293876341846599170861512713680097423893640258619163622881098133400086195654060744866729535862968263509813363115391186021583318581769724998073375038162824386942440936397656353003049976026814851746657687977743075945854830015313421437785805544979545397804529565861687933315821913126043843114192311250987593164187426511452010639615712496620545840426584106818577744959844493257425484491298322077000114489426558427587817428605859312078261887184823532181525474823237809582328529688358626348925979617381322748970655894618772819334991461052437914001139513034143730146794176034431649668535066340804653634875680482998804015045972836952666717640613779387713816993774724842157101299318181205419006952641844158461660617777860337278049609456180567183135790271930784585994599744429193219074874022428398362251106703632341509136516578441442366650617821802651791189538800451106388099285375155454851903329924902589634067003937039639198835927515044133929134749649984321350039377956052521762416413713827936074145620457499617813374027630455582701854506518079874983385357383558624934250456032637547000291810443718146549759788901214938721214132009720195598949521293291068004939754512836735565331627630948244779162193524605802399837052010692649569473439499914070443622130900032059719735662222948498160645782560852891699028314080333715611842250466401213382900751886780380193871057438899098139611253651178629531265799461499557968212387176490817678815228226957438748182895183942740893294479445100987513704751952250836868382235683877345019162721992535695268866388391012445981880475031530888270714416926687690476927382161533767811236301434385081171482172817093451087719026185203761781709073831877291500443883108032081064290569224591360825951082029314693278143392495260726824514317982074345003154117873329908010538939568352398802494295508617027208733707339657258943192323534723486834274500552251848828804415749777774893721318942179021674299447196824680554078532452999016604706096713386111695724395999793253943139838835678567374694228551951333666276811754090637371275675577532966763275472872016593447275371783567511490114300178914390995831601554386303557432705017671900492435302935938220449506654978036212640017623993754840036337072264254612775915575467046457345744301169667997130269086584576228126260027051494486124082845281178461812751689584247365801800045711859863148088844508803505508399425928306726485558083797446239359273034252163891651566937716042022924319919493457457003855969442545963730512575757280832865504801706485970806340746109854166190661701531324820460277260933816169199672330506264237780235956399200662598577742321767471848319559778429991187503058537534965478137579738648261587496339873027125749707799479500798890941120529660171980588063256333785096801946832064286758065823679831860014572233862918104286123065919628889494803467370093484427397373314496031374219155115740192429708701998138035468154003743085744951933791253121831619281564202549808954081969323074870801516435108131207827284452355375717673163413799438952013553090442380195810764446770374291408124252717330857334845337372598781791782221490824624194379101161637717904826558205862360995261395454991263124682817941818230490465137638176629188861103796363561193553951971417171804629841772152698125377049751836036647890933890381926270315260092418721901739558951173388439445531466784851960323724749605611605660153414062269290391941608999829694578964882048625358112616194102064100976272018622206973240607234711073317976235782467673770182267036194893076182980269219715937400161648301399339282015736316908924996037275148738326146125774751595596475130643274967856304902484553644260099953203998957453717753738292947440206415719220606264183637098667223455560556828306894768649711840714729841594368065396211993960586416022572172401349054207020619290502433475792252322183798664586273142611309269417370718753315240720705213607816849382295087626415115578138989548409910003303645350825453441000628212743974163194059394988979117681665750609402600940606037804445778276269317207352363760016055126833029119615450964914697513657197249879475590344465203916475112936104751138959951681017523446502024146501713206681482818850405282854778544790306297355711471852406599561701467498125940991783347940825679791777348686308168292167812840901395867373601463523050074206415661103969118204454305063954365642438131330163834975581337017594062385798406743063452689848435073108356483517530105204302077671034334279859193059139275139305636762116037283638481243745642376780885566827229024826251931290169725189081802559321935641213644883885839682503576193173183351773788389089695252514725373030736895282831703335338929494041256233502157811259319580943812136694335187839487253119302634599519031464037566951790309530390714487970279313948891416429941061478111401195293109021136468833118605630443095525044352199665684128844240939671160552867375166481171740494036124489025803403458940022101216220958757481528976416176196366266032882737970550685882480645465703300973657954929275468806942598743959349286903223308417070230011314062910857168091607313887296071017694189568212396689765359177273731092907793230941188576846237301174524722654264455895157554578099807176933985722940974239760445596550599659308009189422954375493321010228721015961922177576410030917534443008224470418990121051446552879917601909897792439423135706414834553567431793852792455311635400388737133999914257032469717205136039316464100771953344454335166056949534888079368831894394014590435242492199077398816376867378268739022767042611051412992736527694998617127643080048846378874469042669452508075004426542629215980003199754164273069946406214760392745386007231150720403642007588077727078460966341338140179779526007264299475863100915758116985955643521643342220532587811933688237224221444849049820887217699642322794802477093035118502376125366637588037263694978763584596311542190481509483482640629183466257035458555246270936510115086771757145347759483563727233366546427844274683707711285412085901952571667740565789782574458937252628276191919329210000767962655876880808616328196461043714113413050979963856475501467906467011550101083146295212010922023873514951822735810247431572827011287660686354419343582441119474803209762482087312630241887507028925167988297802643705851533749152812320517924816610635268280002960095936500399959555199926508027380863201603222056095599988310377551280897055306827852537007791645328121277366292110065652907002766561117009584648120571006374499042178464988478371332531465651299115605384161789971211165021192522179048688665466788847597875634297318897653526058466642500096312816000436297438743060858059511896193140047267421735669512755007979140271075364067163345068983902797054324752560318526475846862927931114943493150504071914831395253441120138104543525959210648491179630018246891964516738454132263992665679770514330068473568296138481512612799533478885133786814651658585134223708164404374289391924801131218053649993624914869284112288824226286395155874038443549724132123033585587893821626694201529795173570946089268181200925539341744277420748130959671315942078579339754431026497463906979563116205940096432660910902673668177092343933314126692302280807630753648649490189657986851055870593759222565602332145798319994886768801982229941349141541689320636162772908322031678489166491450427323322579221097059019792336925710102725314524727369481117876835833930961738912795994423392387490488020155910833962618503643518758226962094832630611921201880612875080367268453216530302630055423301715938805035182620341592727521732626367311768501273044856775029414069786075113489248372369250981814980425555870076904399807257130578789031725198341766475083104453845325521354355584799355554264868821341925287074001395774479441141238128632541408610005896244146307542350558293477614231185287857634843874094808513541113378351046600732380867012318747763171282386950430157820087164080745329268303958149659686671003734504170608541699065617361693601945031095738134825116691629705172636501277794597919821198001602367945301401870114911437358666211248878949964532506307292364111796053117126465176116164317006271302220872614119198563344346792126333635486243383838023793394966950048678214792002616630823942341467518122830741446756449087068872969048599976454226833454668707785072413661103227896872842478193125004580220723439562088427290414877229007345199323751275836884712878517647062824940794093304623721181346223945998855811952662616646237873836927147377036039927851870076760454857396162330219575096520204849525420073523145229295450060381959084178737164829483935843502426430932857336869086368517398415787692538386186779434646325513867933635255557303214175648580739370398514837879143406296378596335966766157585895718743093006341011568302334056980341997140815988164425723215755658176659803874329350166022097889546828550803656780185823548528412382302691660395442060555817968159056971229208091334234556017279547614273356318030264754693159842315129345925330328795240266642497055885714787064210639875380642278923454591479900746536500969402103540984178793931045126750575793328023392593994794048641655072334403157309927101022328548241237306661878124060869740900298190815515521994395470306554643236744644085422628621647793096300737359266822716560539460428517945879809312033454772108293191448354260206261663930696030963333031388100674394585487325015305726122468788725328936600920235031386300543654553396840526726141563413598810061072353134282580598886979616423977994616099303752280848983560214302179197554613595804896094408185713221176900507907586238259911969613440474249541203047614947142628973428371478596132441863058140767357924090818216790254244636462283780609148467828812947631213476401342030860838845558492991516403438966995991534055910313845944101784286100322540267220871914901042364607389186998670273148922263023642792842108177981269190752752300789354918103196139060753721467340327367974085707046913907427255019290811623925918118491530619495333767362630668799264773653451925329960926089353435597299325789498690799529430321478639682679720409963752884963220379279240272501307441795315664853906694689278585686344132922770828656190577800316881211360956827950898294376183013108226094558460960443803824070728001928364262911327846196289890744550308865673366589006511298037712762743820977998023106072496477975940491879648042524437515594667972613224687103048718779204024636124092543912021395628330001362135956104467232408033365303131903207909590751478587866903334088595664760209548206938788442036836331796041313377652449313482012502091181025523423034862878810895102548769202328292184566893821577816974249472748423311660268429203931284549772423232908947615566534705750954072497357647855684185060472357525115933897043074947680280750077510422787328210983442930712491731458700840021811962099336189508863222717159303412534455364505892679865850507337359574680777254724061234388749694110627640469345317497254864329819032972234206689392273090343275324587837572323300043082732170989448925435170250533445935643129928403658269127787664927384514668680015915281022767052546805153194428866068014581464194684932481763995875894026909311093218990762970799573627933115940967185990469532389655440620534301642556900186447190955431632098641501286948937618566590456174344064613192414022468026873765655755947450273214591675494529540956712389069204727923294691725196260055455817869673958696449091979928902904238105839316201981527357575094574867857589191726699312475079906075395377229303473829873204295690933754208023537560544368279117084864832985923032195159385645911765091059107283426342373651582155050887244479737211657373812194816710746379542466674931397459217639848830417861773875816847302487541866699137136250548126378280331948052803694508251762981861397333680160199730944385610041798374920757728206196208651547636336165758159403269224429180026945338320064746997639377000015688358228872427893205204933115588926737649732485880739604463589247272271520994751314528424284696718549459033328742256835502414061441544881208888058043630281900461877274630493984854630158967602176417966372265469114410905241005407689464867634195616342970102972430590196099725485267166687951706637662710067994462593642715611506592482306382783382018358851095620009417542089331842138713739388443046675259276424867056296205249329951586911313736154771912337309882935003060465642996767939285244543433275685440222750730397404884284885576387827576082513349011276510571257148179776424470570944806781081242903001294135095084683279640649876744142725133769124535364438723999983312458924647422113002690903853201861074753730273311636968138058691253535816273157572716395116054859898120292892801543803794342626301876850209215290918707400077910115742240669491298983529912487411174992550201669026921837766084021570892759970220796983788190799065582721391196003174229487989691153005430295421553113368999266502364844444374730420031251038114130882426165460062995215921216016010054499184391882066012381717855195148162198189614085415828158896218497033359860563758474803287686728009748914908835697905987474286958410520093437883310938145101254305899454724156171885326852719280576862925515861992557366624434132332013001868688242359162780190281446985278740139056676312882712472041845362207738234093318765464993648874716525905918315283554572645592933999628739269020254033701057611874779399855758457798319494678052237905111866843135989556645013043587080967013648537322030492192977416616305856330232419749065950951995707836594588068016623082889867337002609440937888914664887451153877196664736689530719521819055538689474989068920657973750352884070892980369396498596558074560886782429955604095441306454157232093955737732318112438716695191632804729222167636636247809981595479664181554159727076318557899488754181522165902468409402288039477306326920458468972973144672071874894900349850646693588061797052780008046558463738277350798127552453951032279161014988812438808608009704140002971126355593614411011737308542560292351516151754312278380824012951988967737203200261874531780465787939792826291068616074273992503931362603526786367917731926699896221428611605087042806168637316856632633498411402900468021585286607370403600661196495637561517954903187277019394574544310921951059588456612956506567764426678742167765736179605734913405793719079181807410439174216040190978656220512487775547008399275506833295573345398569723859417556855707539695550929362431413632822955617832533160146340998988518278730420337981619387176110809794099861514284725511250868466016944883345262835041811616493074867120348134520910513140685872403761801122013381348158803429267688116955654039728715890626408800465999300705280448067160417347914534747740643688005222556119713371123840753622871356607283425070731103904460849436881472878586254658244044350596141746997767904354595540873124828130477218360772573071380004284381913621893820422959228011435674434875756083765587894291388669303946393808541431216645726167109954361166816971186555867819241877748270824440531461758486221100760643804791473888979989869707983776034835092261698900471723341402893236697101752543738732174010906354620318400202442256159624585513970924145069646541921870036920392437361754381042172303336987854784798132853602712878283907600740189208304487990716542107229005333712123121066722496893496468357800224594935025271923874978816760344237192940111496720774261573797551810924909101548798652430187280709934976788632779529886550812565750324444206879646786328188588792397626342225917237140058253437073117969528855687082783003473354718868681937986854419745742651902437680570973083166380951274759406094327382259376656269660227906366616770937430426554031919273002542516271474263461964536595964692325962561294450241491619601203560189003678531858737098149783667364206097421654124988656787265284490490397591863216313749969386565029606967116567598317112499165551238663386181001747275748634289827883597331034486022983215119159926424067062191555792350214319471119304417976135067117367424791717772813163222512761414028349856587863578366414497032278693448708823348107567446056045454475410358379040594254718686142323622279642599147720690230216569872706961594050358958430070782272086101499478791037127225375291286789910593754794153157050065429739501987102308655315999094962375434549825657772470570763810631386318175830432815305235362850742134354298281258306828386509625153214263145041952037432435815404416605235704558087155568144948808274108454529246498849594214268376738361124527914148782309791175781503851505171716378091653758178681243804803433840741884770033358147942058676141258150164048477372753498367730950812946831974700405111202799748751750595399478307571251721966961239780927745524136717059521489244340238454373498915991931879657354959149059877050847838342099324258950906029052399232258690872132223206668971746810802717937670462770908012455127285735372568440096898992132561473710502502758027872246924861726634095247449457693364054604225509915974450999972037419633933128226322328108629852602792655474188419351733451016846292205873591110247833283954564046111437192884644032173681333924557382348612981367075949748396930827944675021645800296324412525623823368275870827217099184836741492479203964123652438952025766743523518192007845101777918585456166742087908693399255829990593460848421575504661921748995016874397315537882170528224039569748213985939717486678734561460838155360325237018192067292599020065525622113413895438327283872295824668879547664991611500556330790126796285069231474405626649391161935055522663342265702162378567536046022263177611202504677876163880568067682079745040553385274901045204585295965740232452866530687724053146958005379439850544991974611814737049463703932048129032034025915976124380592209911973758296706184311484399639602913221948529892084980036573885238121919726056895003086810865645538493994894280390925820950087796463930754677638377955618364886406409797996121774893614658501930695861425356017236137385274779108979993694236098005710377466358530919255165011338980895874741255518552261715643343875370588355376787917859033687453125264838878039594229117956944798036798062808383425037859622896935526318948071514435096420203663242892499739796486027758134478459309959694110181231499650192952646839857743824140752987828537728802613977965984756615353271264923140413633974022996393790113529139881731350848344467422028448019668548463359777579004288938432907948286214600921989544524123998456346878718786406457453467643002358542957535594462435702456414616247896539292825566261181724505727448695259962858433065986224425791696377898604857796519588438503626796975064626431349741194291838143922107379987000644284935485464874276520321188293423984429613535939038901962391990186985574683356432211647530397322557803786947653256353286323285636121217863096160001295722894659249435421282805647661454628754415506974606595523575065299949987500745578558447962776287421517975103058741879670873687890719435179491664392539709732459460680643313336752628417787809195121665764315831450000732938961219617586787031390178505422909578441337535931464989383745190757656483970996615675809770703331491080694933167253075997159984499750502084288051893483072733060637793843857721295658350440377660829834782496162502746990421338541420544135241783705378108017877714840562291529795845725005923612080270014129070285844628218986052577015346847958606739458328733204174336137908359314100521066582227174823504521059721250265145422692581126659662330464350426757528383850828721016247646544312057815104290917049678001489088281173039446183873674315108927148150996267237918540166141337981190794997528106271189003493267325949697679179494498705238178764229083277805005612757823468376789127364689587453008519466993933537584602523491659045005007854488143726128370668951006133880099876652126962437324357029438114531937936552427197965017305048509726095025755605784705398860009290792744418012735840660236505589123684027401739965623738590565983309662294033258345221419931402737120707674892413049220148418412889196448438194214442328938712919666673805964295995990788124930715840761761013212975110489386527879321342029228868945610740452204480903377757805332290210474032664277010102538796007734265954844477659677279034758681088382492167703880743009213203653467012031058129582464131924649724900206765141387341496356007919173006609547468766703724747342766365089815558613223895319790350662809540294047999366200519204091745684103181811312071830458384153607275586632147940867188731477954321314611837959034073908679215085138652874481981720474866524644899895958231153584303038918247493870750191606444274657957296774307740178783248688555699863552049010685301889640335218772513488479933812895682124948488148173391786813417288414310247871148120588116991738640472399572870637916714520017140353769135344679217449517704278252565143123187358639395375325867328622472708098737578357494943092124628763778602350330329909791474423661404020865296752760046439318934122281581495307731309379415971356129005123626916269848731979041784677042726119411257234182875586285038748247766176576172606926638775681163718228015477396492254405250800848388694606672454153579935140537458625403798225720872170800289645587758777010339440761432962134122094648738685654428928380434820255396290760639296947725813601842443779103549895043681271187203582504297875227009471226043268021616475677001151871175636037305631903936535704899606009460729573124675879236059771193264376732271505439035740417125491721650889227672201678675238107880633522671229419516722760137587343548604215171180542756835792105438785253837908726973070972771913504147544088459502373970329049717566223563396610407815126125888564927825361257136732380372640770707198787950317384362793064306038455247386128146403969852660024079640865525260150464905250647454762249528047834335724559214636019997973480605645674384597429720702162824875451482824740016458194895459006246008849961968624774045176752424408332519618407025347678427621823428668758496775280145442498458238454750913600006885984022925574140636032034377936482381441528250031974427952676961426448412017555820501137634151803533603225881907666070694873348364228759067597557195651065297929099365049605553973329329954696517821219374203555006987156751436526423817234766073310451168196675917136638093734418101921668334203924533208632321225173490315048620041299048442441566890045329422956475365030110734461458941008506835318662664072485449454130671445390727020496773110048491643501103284618474506454855767188713971805157069832443310686468798821883111139612896004654764496513871855164750526028311000127242051348340849304225551842095384936106493724266897820719171935333231576051938529277536329007554417169117457659668270967289105825632008997710547451406903095974738923262247619114132303360871274629061139314290826628173177472456147545677472853627557724754985146856731309774259024978618224738837526371994562039914610254502507572915828324413132305188569373366650174638414845815660461070435225718387200674115462964618685305860866268911506426625590248019681104923004431738304225741774422420815819293967134438885264354919582155840176382363285750011613462570772718311601797344036453325728106171486923280629523569917052937078066194523821629958108780722084698660099173581597300810126842102892529084700102645788399066052408047594748533722073351530283246945636883597281370687929709290041041417977738273330296100299574981575319339196843156633416399243723639752533698196306041120474759231461947476149283293326064354294492840446042222924389740105373384246893400619655100053911789241311352199474870192813705791895199192662859771572196202055713055409675102251723750589904921847750801209819129893175204050316485145006905718748998028546905147744273123921612986680134945716355707378329369948708452409438068039370065928508667248329356942581977674997249364680623042075921379549965049425283571215800725980568916736875509143775337820106710096885195134758749709450370802472582391752245525135999156042664512724169767195798024726115879727149946422415063481563855284886294080854453603943995350274652737592255195829474142613699395706284676349724349407062472554519653349410077613095523312798929564908779256691220651575324908572023626295583553641278708728331991036610356638007734655138113932734460936148637215767195763686746059452081231376177819475291053073070844708996486399655466860179346538295283535946806804438684876511158392591111899056667760044948383780856883010899511101061429510857570302909617969006077931324302731774557304006924548885177307611446495567202240258993372537863077554675773061723043778215999496019947488690918659334282834830453714992093212254752529898460132294696933289772775146433582028365282059429892155230488829346498936910190850024216763891846259132760539734396662350470811897245454957108319620087989684616567993470382942923053079927041509274086358642602753047821757764195292933241036018475037078327882510832557642784376977289213103381645137324751169282074098498321230413130792794838886543751506086948220310435456563323812047328888074477495372754853939933427182961028292935396802407448426022686871380137516861306762937442674578230808177118978502778169136393442983855843757838064188390540787852505482076938571039082303710587510713287477838829399111641149057485838349632041360127891458093497296017023933870976519100312396124524292982431256032270594618657386576875784476181700500990891626530206697907935288593680151668642368918027442403397165098111697896506084497762412012715018742428934393654165358900331436947002828781062105016041765523223107225141705381305926165432168140725722298884343657250910218471322068564572991443705829394222614731133437880269083356278145675677451243326623431606225821933408460885640629551943261661381839757441993318160926745451295711678094901163830732397563514834759384425920390978483534248724084321594108118874918384635136081442119342924011327964922642427848666507396669759746594240449861516028672264589391441842425283964698496809815948359214746670442635180624414094666654175599032746808658010943072064948511332123933346983469940007717974810790490483647511327142906671312165178776534958171589617944485658619815619684119545375693932005846552563364545105807557257005512548804632333432360881277845940027307930894856997613042255383720711278017990880545776054198324990445489642829202447865496799507522766885078281145671415811885824387628613238861727267335004795742989005674035152870378117855133731407662069535662457599770528186225123483626315452935021362409461626118312976227505575758103193055563212546283412222258246493025504799903212843312759975769734466364918450147623457177084388695712061431417228720641270584463602700643437291713579587263108646507807459571361066328538029224509944487300953241984838974128429587452945677129905948021110457138554022877543290498133639993409958865986798719092759385567499793186466675885906377943202444853362730859265938619864491810676532815525716825338534508500824425646964885837354076567702113062309424661110221013735748377954841505530477065908221883403946148726288868281464013147959319595593138626031535183924996540757672338267484810051601108971777654682812694207485454555439960742417153999551721930741511221016549348421432904110490208898422360650943079636791601027998697813737457349426153599721786318413637657057031150130535892816709857946744296344213768654484630020349815424258475794200752660405352243541069297715444383444677621738226656660885431313293630511966097879817422330366024163838667140833418835519075562380846717172830041537546477964414010275309668040149519353248315119355574717254841193911821689624251570155617852266288290932275650627142670657543783454788453466174216940043416240213169546617869336266000293116842310406723455432864988190324892093974530293226447550142827057597948195195673173096827319704296301604201726958891359470338653404958996321371532752618979744280462426321548593765521291031523557137532502340946007259182127204081033218877533342330716111372037656592733561550184811801006478639109671220268156391777185972968476164275486040522342617514588774361064206270687836189241370628171148147698432251044427894283588630930771257287248281749938436649794590422834437612272056472033518733870981465662509211580320880388160181996542163643301322404014531833365498845645582250038266021635244022336523646644562744771675206579849844292892830782193171723913132139869403208871858653208607956773732086365065716471791849764301140800153263620787962828544747721760101623690571650024058272982525685812056563295724876274849898163974117842761774602009512526216032311310739224394500964769489099957556393125236475777267172821379666760179623808661307388482044015560901036583077068697702926160208577873319209129646699173530149559516175093923082245604913490507775744182267563708917765629910918958238720852434548525499906422947743555228072359023503479476543385181917841778937977725520238705404191255048493751651680830932454796242340527456643725509723525879295285304251851037730707992437824559454956914776132459369714705314357188988521898453952935484427078135863715033493694173385937128327577451739305184374167349637821370117732659228725317762002824216546693534205105388377785236996686914228756342132950248443121676705405765220447411820035123772448957268129200010227934632904671784076893563974693214005745365449371420587558555010465847562197872929996716365412575912490491106393160217152944831577095999379741437715036258855129696476029470282517653192949061294433474999116764550862318479885610270700398582074997218707190672122948943556410410649429571084514583791904002703611587458966175242935632521933470614410804968314639781659795465799665001191942272456736176673800708093178948903331929389930007193744206524675993903123588770469840328191156177537121842624721322919643361417893483688131469533601403492723631358673645289340861500318222072034198465752634897760918255272606011191588460616568152694845300850030940123469697192443072580909182295225804258110067081014487255251975164128665967008622663697626616140057393765761356587828550105733812378097712326088585795684786727733714917515579153702526878067806367361100150199343289682424760286433242977848483524311685327513369591406167518143382428685755541625538651632261850594099730829414153825973219079619242379612680724304081053181412801392835462727171788777617014288616691327811801482517415838098235888401761939635399076115929615526217297042527701417027739575546643831673897183577964129860671262204792818749959068603877605887279100277346693615925072385318462754811020791606620607362991964506533913963504544152650456853672851662094006038958106884818415063007845020159337075453023377820491424660714214094442018168450857691266732577351921340880085407888567804216917249377555474255941398153633587675929063293859447321075522467668120467037652176415099361989565438091359807345923189994677278402581831615750155016025914709794309136881972154032138930861919842207867172059522714304771440211129404085701781631458647846116472371963295955727544973649441987496828514239797631120124086514223992370556049669631872474155908111043160849441442336184817184376666335801614206358577955760252646446205728719644363993479318247114069091840003435036768663052864972521426106007860741616830006227513132435840457826034693687445897648995293732432488806817076114207276912604608363113311940302211243115512874587028906942015675124317827055009374514258631593795688676002297344169156734967075926592465836528772970802193184232103191764417807366276594702227098767952299437583391335299256515499422974087759888137184193343126874681164769042865383098665962558070458811909938177527066627990428936749637101809969522289241887254600271788686737168931447557500678332532628420353145573288579522635880759784196867543623628133175491978588095907727008662916371283167946321617108223048469763777603761299183613596460012854860149033500168624995283891631822222439370209893621532780607032379906176898236505617713136037249953210394794940601150186786460780645910732802276456475990053525305573376373042830197734011529144818433372681133941240692839277282615470432782288141587219272789440177448173968546614336042737087257714934124433582777783405510016415859402163749005236572392069709470914671473817387246354392055604458981062499332576429911805195070920446090366662147406674472490258126465394917449390751894032363898060700075144426171196191834936049111669876932552157620005183642236681569588185281043593918266433844230754384695843985806084934536147158573293875853422653812937923614650081405409264613032707477981618759266152849220127723801990394191782640778498068756534870874343909015290862350034743397208597230594490537938488855537093926310717413989338414243144906322573542070773449387620440158603756955402151550701708512653003726551280425112514502099297137717942844935515512521172710149200443992004270808724461134106032926583401754793278311379907226411238605952201970689306219203080908937831382224677401329179875461751688995612422562852919260002805318900711932695403745959771717813023845901212232110638564940367873845159373374398757163937670422664222342282597674090734319465729218490389484471412652192933657539982368680708359039238383425269211387898636671656548841875445901177411586101022152977424019572988047788469891606419962263709140435070194252340948329948084286340376553876189576515811773661706246260377910498067903364464350123695637757722632620866129121949552033524560679004722079216951175143841355574624995868737771950043415079648396716983934998626333253871961243487232554450676852685224845147196376956128858641635935441640865284718805605172172148176987274896983495414975603909098508075671440715556783943873841974384812404431409808552290724800332301434770303842291837115311895296939134768119528855384726842655903516772143786796658365418664011041057638599979315167304169818521930182128795777063274588747047303579589147115477588361759913361094635118119274952540805179551046291201508490683886277525765471747584304372284933183459003510367950957331208149034274670075704090825778644640865226316666393885758120778430955529444662330437034682167851070205798561546700062182496490438706484826377295902199047334340598733456990241719829522042948608783831622005084802545716858300171169843444885554669948892939457463429500963488828342041000462039078485893905573376794816925590971495704188624431081399859221901484860827797253705088412076100531130497136009695549539514243513480429298340971041947475034677167130609502534416047103473546035229141138397757499292457578484211426549815231169557436280777672197629146920699994954738341287023183761950390912773141742882332378678772104637047931270426172908755587418100060254716444254112580467993885342487852823738113886636886260245221928079207146587865075554197497847359233289542099094520869369328862418539958817422369561302318735850142123277572382783086373026282460030779969712531691282723563135532554293361522755786082115280837541772763933594839894809727576445546673672184472204639322427602624491884901720088234263776649886175716464626376657788401626872035835150250932381126804132245277746296701138711306176832244371493461155971639109910836226885388848470379998239660418795424735036635859521304516872709809678948655853409228442863249489360013422079559687409670921107196838565582053081604815190224085606214877412355102352998581079274189214723685203602121713995138514107079374902532543507859972884134839114349522198649483213304900746014643512125431125957394730114253118457091422408072612210306331872567179327168155609249989038137333669602575213348431548953618884362087312748886747811837398473931375007714926901146221961579804706751435050981335283641909759090614464729227662129370246470570908744501080272319698635170249417265180383673276289174186382214920853922637638290730594173963907549588865849168186491743776278287261919660505923924757388365872266493595243832978614043782282882817359631264257437061195680129735603634263779356276138037507909491563108238168922672241753290045253446078641159245978069442455112852255467748361918843227001031176128057170185742428689709624198171952527181487629757121654374519885794734985742745464712600116450127527634521157324364192429187929445315475304109569925311295224043862903034261054083870478959993403901828985959368535288080104315272894007491044397735062635179290275757746906359915285065025337777612997202973429013549849308527850344135195901224443924163989711008464546217450272020099047311695583238687950585232143263991340378838145270777918656028689506886251408291193576528599570516506915180568518891931773118081930735989616555331965582039770723228096467935083873394484170117158821679934294154045391995424346254342502943244595221874874351197384103922002156408294984405866014134236110187525330536920307439086515121517730923311764957075393315545850939423704542622739268170334016583566834348142636327558462603254217606863052362572187115610303382539294389631328183379695577476096403281845485089590845822705268170075281478023767694145913955578639338470161334639076612639049646573930834426021788677097536541328571164711501871831234174993116856564912393352210490028572495830686650499770920361068839032581472919225313734611055681440249562513378959004725010615057100757216096214455601472137561625387566051080317449954447771119581134843383907745510072998882730617713930085636583522290289061778368119375113141116805309282484685114239433091168037864176904899068094472888969710453008983844516578561863293451420669228530652402530136115598795816998278868414818694858836664121833388981972494573124141687282296331480887649117984067809363777463565559472767983307830262411310511865773680180487183947862297967668195867069806602238796941518912262356865887234270465287767451581734690469189239845333299387921363224783906988418728673978293185906626828755863804975613445750000632579712034873117728703264287297787562353017598249970386543594253355329650364553922981750141419159302741916693706063457009089835506319763769783076107383164175550790284314166258813064919425921662197140877078671258806692021145014658116613440058221737777176268476288571723872553614814051176990232646899981608200533145967280433278842400253258730041395687327444321936613289535997492785539716759577498988482871411159658932261419806106558728916134669742575200811762636925826086281544751520305884904530624389975105138525325544793622792530915196243380735796140913881870992612007217467885059900814071400849630842841551934648462306593415319893048128188807367412936102423157880584779828225011841111420300100456456083366306679145327965779400237636222828648451363396755086381824202965662400853962769297127354194089452344789369351918091440551325258061582477336633405493108094998125606545985564559305958523865650594210455954620033518934261998300567219114089300574665521600248904446658157480928363234164419012978212969955833805446477375320137262693521212143694627504983846523655343785970551510808086723334932377327573224096014202821682396149977834530268805916680237490525637335368089022599415337782263005142200706733775279068631546821390442325994137095845775365438161836747726230257916479300623797616373794478866892400643497912635446631820477366622282467588891691115925726967627797560101584677532742025243534707712073202739025390577649572008971849190856055190730709199841190273773962776933924786357036455327614484229936534831439778929454060120568336111903016040692408792140978105671534008551150384227277526441424967685110733810550100420744265206893542344157194356585829257920613155014401451824191633502576230235386713124342948075546357239971874703803809916734132135953575060937404015466180142208568560108783680226062755812707669138784405234397211213607107139223225871392287573006869255665151472771021849364760622455112494345880915356234405524562292335790366912768789411890655437750824084294914061304497229340992597225029624227389888338944181098093958954907833916739718108129242804024453739337740133414998908633989712439492265531280253467323314539350850948008302258188905192112361286146680695432165416712265648134320230199140978602220279368669481579616716087387213379424126085703450556332262599659777758539848726993686564716032715037645709975567912859581813406688248474512687168899034554126037896948741680239748743413511909555141384910430196319791919253952917016276215249227127484401577625236704511878677089491581245120967647487012936252846889122075446457602997510298267832109853437252132062928967040100409408799180482251247132903644745343632370225845432752286486633224575003967077327593900508558691383493973417560751123371334264420821341915683470947890621395796425182747950967115592508019683918068352915072801043588715474022191134956908051016810887298936316406309688867910335731515781010884771423985021893838237162989998720938818578417211252003688358268257446711426168264371432330345524978568785536603213261257360630925539256322650175050529939632896129908408789114961871560882185716662237660450530041454221024516696713264973207692238405690855521632398938499509710715411642272495523016110492640766395272802848843184853105170856925384919958295352989315859838057880995124024502124098214188483458656135509551945338209848422941781252049760583881320588648813154970488076159811825981637453446270953107864008566403698620941042837570774960014351044568781546111564369586006315270442675195804471653211648811281029508866110886589848430788106818781565408150456070261134225301652983157036935331211676842816920603082781962517620378977180578393365114884805836746670103696624736344919105569497441623592048420142327132490474000357617116904044284064197213474190859708767906440156985200092609451820034725468632019734946580577380783451565184100185058882635827548428568578190335025615188478282788005224498197412513049063641797744226146947389467471841987882150242051658163932789327128351340160109286562687470540630722035836278171192615088393974654980121650266581126503731099528742540137859973082272629752043844585922668563864119173314332796659546273642359198395640339640861303844436870689488413504874966120763952592585717663524034408747041052140706452101749651299517510618396595930716706276255675683071561769333314344474714320747546368750946114367160557659218736689415937355839413875913084047774001995116461647297840971060029863112647533105233309316895014763791611288267218656137501933039145444482451458136426660517091117589322091442808786054405070685697779633329018060066102634897869835722060005580380205804536862038771856864904970441561598385797312124270484732620213786607724454080700689506514697721331013340196576762974086674235534931827515252558799567909263547751803220391276923950038262246707859852534212583819926614250072914762754857541609409175418316089763621005209548225286419576229421867495684417150899664537626604630613190218008808719323036293194150020384192148049780784033760640989310259872667360160396222031435008230546193167290660358216804790054143641917100430192810831259333348760939931907046819232512360128654142994185682881079541904894258099248651711736262203680866921398399445321287730662600383777625642073171816239830298151259833176249656534274194172326119533144688971137552810487639796545358454077138569163055976416949311956832913023111083199093117455684501665631319168198445827297682994762451937232944448340173643764066308654463656976577218438915585250020339782976118137502716831571241877026104787985139223994892285617492385475726302644401039482994835813479141655214457710715426818506595687008392931669374793590128698566874589837704353857120618768044013418911536794082359574663767434152651578460536735218746689755695302488777469477050605782943378408670488050965745217980792315327028766165766825091263512643445202257144564770714371518690375666961541924284688172824005865643671019547538385131663769194831865193455063323749841817176509122466154062734533397542306628686654968719177672899072645604022305244104228952597467186169956103652953126906707651833436571001206178818958254690353537223296080661612962952165849449427782139583044236346390696324337881241739618860751476638965176112481617467871012389947472556092941936609118868287992629213147466768591593474201051072326314052081972704644005309165656546214380975829673273226229067646002343781908966533079338809313530526444449435970897824769615628608826590852136702381918809974414916106939077403806634011996082841801370696280071454369409779358313430445468692114849876734759655907675142234141923437124720950298070689146059727442358034346932109034737047695546843234645533533189007372871312707685567434555044668899657446733384762608741946925709418012568892545704074790009540359293957517271519996930473870106511011094781704416409060976364774630804599987385423197819674001586688671283316088225157216759592935959068412622412493786217561845439621073195657731818549609999504362974689639008979712473902591354971796682570104741417722291269443581432340858450432706714151134166842735106854585686845722347999607799690127747698829218426767817322054840183635776362217000397984859348940586942879961241076946003685201359239410247071732354179036790760642150793541667159333781087676366428802777405637354519776058654469757076420071867488418185576702828989696085504558065480334004768250741463393552649269108532307110391365588956634585710243671058317060581384533400462704678926724130513001141712811843624544636051834081682945258135887171788068150120045356864388131404583533915399598482397771179955874170615595175980076419718269367748015976982228404361933172841273434787678151849411547328339881348751960717887830875528118983539124985344425548270180274514880483183272030252130977337981801234421337926046346985595078783518465306991764784365799244586211264165514523428736924787394301300738968351951507558691836307807675991363308992394289467806865800373630685342202666654696763442756123856047933423107444028872890384409065793944983013109344446615285405363458898991277547120633110714251822888956889937524306878168644169270213795505384776391113891494235374748578172156544223087778235907199954316432036130173420070992264498060941745567756881420934129928143640409772119636099157434156599589893533239356488747917349764350778167340884020311800943053070143852932017522724733797272133202032553743199362011372943110255677376285859894761077738157030485664919585828375632130923115848310282026560130154975894134293914401008488083214404585010566194383373817719473531554630634291609458260659665470783964199518336223263856672371349251328182493344156247392563029016664184436991807636232998530399685033176717590807612756309010419125237435702232718427040281899739277783627325432000135493242655806370107535231486979310161693229129860019203218004458551271782275916463149737694515561483969944571371917525856468326528194091291804769206246667662024293877950978024504445021216332208844585565281069341007435923033281767483688242528646839388994710611132421071499384985986767874983776839109024529539890024808217018343047345004554437155593848163299187479165368500568697779875979500773826844156763235813481085308660942048966588194783972986869382402579936495417236998452491273732362533153686366720815408469728157117653736126567295018384272815683522427731595740770004687715913292756771826698577494383763023754835155883979429617579343320749544355052794682346565772488961507766878297157488840297538944905537864404076561766357771691721879604756988862237169712044364190496053880009124620138220449426497790687013414444496241731374534434425206268918931162681855863380477294370457331542061829608713712285127798703429670038829304591311876037051068479425207030989215550243681888804354353616708826461600935795011806857451971564227268689962598796843665645094322822343690088356320927630378589102457569399305353717914574682450273752346692059475766077668710034431921843150172879649271852878773206122286250550001041526496093990208877014712140293373098372126410959695113083523616379579210202532156418950902556761917131722662996970468767507102057833965703254359565225623652113454134185257411552216580809458971717548089837302142467654005654289404842196628244294988459358529662938619495406482380631998374991833836574306880135568437867015751662701753221352012230223962025076564599344797726949467982303529396742037601903869754274904327615696596884302395204369395550783426178317515668183729266851769730582896282763930572690298970450221162379059829425497675306255052445443446120276668084688637961749349177427749538166899842229647932814749137290379852706099255667586745874901210879115214366858561391327825105437437287975848906888123614494544314530157200345744432570160103993039509635007696364199141933263851671077544582873273282507387136966422764406959021978135882510074763989203334489889677929475774533929533223926237837996569350271512154598239967521947369524225551672238611522900287362738969263527926867499132675180745105809453994755696954116825475802834926664211543663865915189344942281127889330526482360647890983991682860933065634862042624614814985822939323685700830938527833791208109580798936766166860367237906680832280526920545539802790091266962620859778566433334815880893493446552697614207742071706589824709591300455284465555838615982520912301453753781850729555170205516435256529625596816006596131641652384699951430396834843571013994271415857122125650915761943524465006178677484461044788880668356003787563477999671330751026790648763269966645838537841894659625950628574442237148917509914546622764511932388872833346278889655287275156267476312524889489699968690737850720193764893688375861465202515830993574147937818248109101052247443086774912197560048016589022175751339777668933155789511145779611226573484751166587379259446751326567568301947803212572301686905149385031545724294644497787462629494169090625895175623351458159449447501255142951149897027134847585716650830899693935899966454769325167504976675454359299259648452135665797618696777357045897119258204068071985324145324141753188085942581456360088436464053837744942025660382499353858492926797346937390847369761488214573864943843602174573787850868116427897208949734697706581231917946330349031442073680508551960677202565424623595722524942959821606994635733057293248468011321110877879344465613647645389793695935695089253370826657384026512421358392432664791244366140722677623943052150491585574414405141687396855374928483046383562343288310300754075024352954561343996456469725786670440017383598147720660926143180754233971195025926969941533695631290660724464472278197354271885140619096323669614854416132265950042200916546208002851622106758460986737839051643617334041106604094798199028160375927295624118884258771351514199304818353656733976876374508038414364982572868302183239569381879014558688609864740475906664231961267724497504584519491244115603980005731841015514786414321797050355150118863485685525380730359666683660986165759415496044474645411481330703359380413455582644251415749648375068352011493804128769064774602595363951288776894595147168302155400826161108740471455817168249750617498997637249414686648058202183942930054140848974402868628189148153831001618752514425944287954788638906548217416108280358687867458152896176217040539082187738981046248774278001835902843626048351005908991170753267247837682358423045522151112831733909650124671285414332328947056841185011597086742235946844296816503681255815863685205431992346431921773102006307290813144977672659515981816150010197219361469222247058539129416955124748081552312179071950571235326007282874370428220595779642563179321942146716029528674212326861950153361297831482785643142746960284137525921864230108763531353522831590037341280180134075059113379441236560151074325160703395178063511028967972697522858411972602847248353479749424213703962984880304501046253663050968710443048920304322523867840569049248597349331073421149218337802876429860047432174340810365447351211830934464368315975939772129313061908074665620442469558759224330163158144659647217526262833047711488739877370872634365452350106168960078106322527941647468956727872335826224067972715867970314232263578184261020538578523678871104352142082995461143147422165407233515521268316591602278212893986131378542918933578366728627758019550444945381897269918356292327355616989405349044894511341695587238123849858266067525629629934349316999558607653547829564936948321110337485083315012107676078332696286107891567222789619377393838200197813759540944949846841088385225747070873249030816170987324767044796086187955112210027305552813981985317661033750807179606689762413196404222741759204155935401857841543642454447296926266079046059275831616132208712081918234066223142505586610678409544460013128270429731447006076398959800979295712997075718748595086596285550678012749980675305353320706078627788146164883849440494201902334142541824868353747947655830234000629908732721569352823216157689249496899909319587282122898837801938147656092324435532824193406924105706570643917376549893373051250523297393684422945304059471588790045168248786989808233769215171652107240227854817244478024355054464357428796624161361195708412263401899116502766416713064652424626962412765866980581889843873862600455124843130764450187015063954554473322325703262622364623278037100130972533518431789308092653256786575838379591075626445679714912484564161148880051881965066016117878771703050097399960305590599567964479704393857605126778856301455852934271363526226981585591446676497212677912427793617593498844721779820430372248268264830482261924813912067072295851740831475753525772666018111168310854723818831184290584292668146491101420712848371509771351127011630788090081718019942735899549649581376274584704579599273073045175451626512584071839391571437155396140547508019396100886015354673257850557588976095571746765798981918212191826622280672309185620987666431168413549552357871118380820552148481544037822860602268200812722916956135594239081225830279677916460357428121328978186233223994264362109635770535725370119704796302728702486132501098982786685932106136299944966399031209344725997621657841411793204860366784446774313958966447992340747552922370911167405185094264441551603152696140759915294170013722848233602246936623412786327247609405817715387393428815175497194780261691791104390175847317493489549874537526495315981987107686839636479700658234509637415405990757645214966914144513615453555168762707082426751427549843862256589177627404668614075326187057260803919911795039624093078435650512647984360185986773148407120331158372584604559402321634306886778550869711103556874343910245196060437285573246748325981229078421350608341550238909517442762257271589375850804741063533757983081348683837429618005709387304381172577821904364493107819681200845405471854569846989464790257909814929081536873423195453163114218334841317386214881624159549296965404955561284484769978870467237597814913194128053019332067544972137822284997950495795882556757547069970320426003190587816582982949512776861639057437316394372033359857125929943564994669063096999717351201644460734516013633378677321663668975050038758239805485090758228655430425473512833500409015200215280946675061903077248531952211151810261438352390038742376262984962478457065129719607029447966519180440398487901273123949823044185127772340607545426853669375113971486990563009186979195274726205790515339167623389486779050862275960175227895090640172912863889911900225746785718375181817953229845901699491982129860379941933907114503519680500435730792148435270032263111543137882697181450789124821591773891215522556851412171539352425811513241640677919093367171182006679544397294117335367530714750872043393646535639041634262852454648727754652070258943834363961295228040537392228854797429805063339002230426192037869886319415017039366042999010455181534031237559644006423699577118097465130031795357210696851444920053141500284707516224558544643801997222808763085887858824385424993595498419105683276712388843494228491367664841271430324996318676916014371481473245412779502414151237874989185258856239469536590572406417404592071552632059658962380754217875367174932842733392620160992915393118561986577499051154459629129058803693619428394823462226912546895515195151020018309658296926883176177945997926598243598774155365182877930120585339659526004512160460343310121458445902085427159783304397683621871880150817336781629023872232413613382552088152523569101914763699465514533834816087541236513896414520224091527424565515992120639895464802884087185692864152746247687216243353458194884682797062793700509363483275368616470081795825504117448144045836137202963266021393875760974038777000620520478740823254556440961482093452130179918085188634183654567880201664495174975560038352973616789872169382950985726495790602079878993967492791636933696131187776800292546990822065536647953893090953413781066311455875365254055450176722357825695808696515285169099762251776604130619064464830478319911414521241310586303862574346360871302984599205585859328285196582235940389601834964044214411354770032330490899484965531090436682100413696892757815455477588687585154139993455402402759685530885513513027169661752251975038210316956525795621425505638476624178097741186834218317799997462613360546626662487356008411543652992456185025454093054992927647126795093793192789107516284244330620250465782006060454892489548262797649661966905321712710762026696515760890441497681727444711112753724531154631927850073954664990970625741599259847424476599809691787746714710624814560987874740982847263114525732469494269747232842501150252537870630677976830853604143461014055415856514340797702863976459602275557962396386131470289090202402205762786725602778457106755970442902166804175120083982442426055187981382925218783378505993589988153504682862991001863315082174443962940243160827842471538428120026244081916167710368193650392684147088154962701351298249774425352084401831570121174553038964996969051738073209640223148165346261699191851702746287641777437090941372485138845065879869083230828807804927815423774406753777244237574246462399407728417057117555540187217967949992101788447180214116802512154263692664036313981567707519674431306900110128810050039716940739739303967305180046537604269872773011508504881114796403864079912821994824388100133685131669905529894998143107811662137372322123237334995434035196835913458736618825729794498253836321555373600610054106495144417535381895527251067316775561061789294362396235711331679797386909475621838500921817156300016864711979695442212301600723244209140794596582883101856551119014608803990148188428732062300263302185987301084110916330202309781363373165407025906816772612102202020169343399920660013171938513842484818862137220796737645194541988889005106471884619846629028201141404887078538945253618866427103976834033818757917817076934168358209581971496205297751320831111784093763512374008133315015562377954369187620550255220045233494478198633806682325523483338247839614101966128063867701373053712971568446515590035679808696297384983919078179706723580402047235556996102067599386865857616418151972885329402688707073276318730323695875682034766609258606889912466368391963745311941895767973239514242935991282978390726399590426928201387820823703140123510573415354238889809905148388236985805111875859966284914976500958659120754957366039976583498759653999204117962028700226556115244491789721409882235621947338689161588372683247180664461957147262691529102808168880649834426375549295589973951750155851739094972119622320546252503084796803907630684641836589238649449775720845787913648213174730555738582755649857086368248663646800124575515337052455216682973608604246699975942728252916669300660456144512459196983053062300883323453941525239349950637038178404460228689809348414834299145199848458183304396149836739304204958254102485558438847393117256217463272500344150372329797351378621212399706565536015040567596263981472287774625503377969854064553038786802169258240091103594648873151774014380672500214767290105798937442664142268509208828429541952574816955490186650850972208253884626944870710908113742359634807096642101538957457600246601230255012054299358382125066717267768567711409404042246643257785766378950034795952956718423404260051033718866364907324908889195725164249902340748201249513106450914032148841535562413354992868921194696987050333048935204472518220420089118312739028329585999381990256384608889562038944132306421328458483755435242510410256104483394042809935761418045562617496445477217570069346918531510644123248455429155087627112766935304922305512428949666500070969020923278788230901660778846524107149712303058259590513708785663709363840133831290342158991351020058466734231195664267235307403273797657163462781800076000824329454464364329759821024909657887873617795379985065486214806199999963309204510547404654512009460432523495963514372995010304327514935398929041722639899953238200823022705069102956742901557819833513590799484060078082837508007355283938664715673541014819968735759145090808982974539152966549755911662123530262472696612733039607471946481881310504980116261391810194616567818647387670967752613866389578825982957063385337704694379417163080738749728248769085940580764209687669195800065523377761127808594008183909306477575229987025667191703853811311294863733734849297996077912826289517031476391704300797056716574907489507583430742207899841287021931175485299386177392004226853569621397263814338492197771176880043960515718525233135153440426040927928489236121233652721050762804869343153476638656604751729705810410894553543840834822692520416820888189762821415654690769707814837959028203148274952086221960754590486773869487825812155845548293219496420637990343681663544234915207631631527912381842647099966975455893072944398120324123293932009180208657285507965738187404452200129817428784651439352356435326422955600459317185142069452611218149002357012691118622999725204262082143310029095510873585799003320839629584469713402256027303897020729346738742678752935779314617813044165607972719042419182068325925382048813299651675159593461457008680488334738246518644355654638069772281250138771249544044768232860995531027938837273293907819955294729949786327220439644956545488430366799892547901181681188060245211486293051406934206134512477818721930168804947670639346397255381987624645415702110697273409117547677803268279301202910956451099614197585388378333984977232039072807616759417547791547395632228511738868381583151060214801208518108737507905989780564631020913522764554115036933924551251355886092417253256872756392269024295489538906354657367027496729569327362106204627964534090237539479288582856514906778612528658110637746493094092953194847623219799904658369034159286760848422425003425403419191518943914923628709760592377683261371040679861881368604496157937117135973913296963891693503344654383779013913442448669903418571908801712634728517913889950893530543121429753203135251522063068604325843758754526190559278887990989662344792687022937408652374906896750252229743256649445111450391624978224302892451618047583417255871871825550813561890482940405740896075156724911455539109448158868459931726285231296790987545851256745730940230780983479332425322053487215408209944074732496893208625539591136296924695033582008100675717343486725948923907693568229935504945464415078928189500816377486600984648116609436018060608113102784859194674346954133854533410673340354724379756704710900276845429914470623303265008987552903237518313361472364716825872034205291191930582413530401419954692474465563710112715362419496573260990315254450133759181297907154894869315613194914683587366821468568658304623185635578473774399236301936097670996222530717698936399491685480077750680188788561949468223324685846678761748902567587654506392385965108563690155279443234172474915392308394829497045397878656456895011130788862255473634414642450103477455009947051674855192089494243847642332199733781855087912274887938281743305109879682999006767203163649845418235872013587846645905941175284288483979317570638807574703859831495899627526936054510461088413074971733856030812323041761467952779397816687855548610647342559373230789417831294422384835562478174255385526694308552706647019608576634090678094558263333288230169124442402244256433109979869414113746499208657614819661112328881879307187177760849899410583435915559840951821979704614600390346754031646086116586626895339042052742561017673285044577396244790071036216984649088082060802102641745195588959181596928567825139643270640651945576231678911551867276558603975835344583307365097374772269665290837195724382285303855471253365139135235966104474283920969282153308683299587600036972020721239203835073848020578130999185895993242529052480289373965372355101532494694010711662456991211989866902249367237162291353819228863903630608027802191665020198980254171921412959784967787212794374703050711416758163722170237003083142907307642201139538104883829351703834608421982187641531123246008734749902122522947753329575184958210844454998300701907463261040292766441920745229477553790094212001224154709499021427639518058921368955165130307651368486076508059196248180143202236242329221400744899230430935196782031747130638449401294264159549225423607302941948472080535611627884766492172296450501974520353198033197886682268523941870685204436408298034067218160403871786612428526285313933774369617013781106694264277557697465407407306801049453324988040852960220181322154891016816865316607830730519972296776272478266865398173759632897177725058578282709652504750629218783254607462812887694058998778196855462692708192800337359075379217687989168273772744080044530988579581983701644133733796462741324284497189716773076131587690228128221451448054868247557106544639566076939613873173613349343539392535527016770695901554414230828571598218224567121469007707178344730337390711750446597779755962099538517758253490359559127403119307672944228766093892139840428634895812084154823479957125697256418219184315123034048214942030711072334143603594852507855230400456624347756638488218703137902667761488583858558592988726031945539778880093521170559951925112549002034986132704705884717875164320477457024470032760880960233191451033368021777260453918812794465692777801916098639451915659025830147531857278273995824025523858765130904655038587037709498819120666039245679988599116374564446909299475874779055400815175449858029661340919775283406254009747609903439437699368132572831534815516303028228507202183810159797987981036471543698027105909402171715327957041415695297183116912297644956745328960215528580651824657133832245196951313287025006002373722808387254885889356436587534109951693652409736323254662419920496693866954773088121562156706386843911763799070244104360539269335830744419398555715601950091825902633279150284027132658359665449394369010494829844885893306746861203659623829898113022083466275322388509513746657920069364471636291436968537939439676937391583377536151160549726030271801768201387490173794630103189881606694679616254225399219606626225813915548761302046808738027518005406087076865992660850181382407447892547265579723813913986910609285984094060663129673338794359848317284961840767366506739309570866652524077576362100250632778740973074133930269082097093960285563802806646424926512217867893333982552371488827401622307949993544384683420603662208121819917166952189611207008244857801444427757889696955397940728985436532578119379631206896935541411534201845675891408552079156099262504059110929441155520128141101564696314367021051004370959143174132815995538201273829733676046869049065271605368750553140590375440971390016859282832942666657767898649351675012717484316809085757812966126056564608408446386146362077847221194329081906498121951575455498512323105807907453979046820809151797531651382832064604266790407350062756001334003430780983725193155249031292140074996442856501051952412286023363574090696694550059992014677168323552414225934727090952883992940619443815396695456580691767007314144369785981781331845511299353624543190193455693351929687281134274262614845140092228318179835847652412197370019240748439303569782758175564054157360721235379559423926946691269029949695609063710240212651338901987759802905459351821045442614672667652494039987135431740824421739064383066229173469875303804760152429716950355647527151443694113664318358144500674308202624549592615967504662895778961005736622944203778340283594599009838592586978721440415098394412567072303951806829776353916252134409640935796406340254126715367240771082122002564843823169005422038600243593151285267015761234748464257950116850803573333694185883590304859353550013998400416535328833772444015103380320729795714814118571407756601875202469944745107902397458883793568491405909054137165695561585972611677671573928539885053791042136380728659922152737248052218023100732118368240595232325274647889753905420583291895875550161355621915818993438132908867098139665356999721581743305697265043957864274524605878098848313573272024170252446194102296444528906139351824921263168783272629661020072406825165433697511446308544843273997936719237469756789018700236136028054772967946121723522445117441493642178978856794533635864344057001535426984891844909361829448350266421581109585643101925544632047027292551111724030657208317328281769952830757503904413227768351125786682661327672523148989903008625017652550346143230895170487951079447910022020857767729065531172067457293451310463948359505799861428976023508796687910722329020531188428408323304813659327980079552814859941715488103287339028394781266308254207849397299367075972680969704652535088398854050161821441276288540006218270172224900290734520976458739818214049596115226729471794757627657213235247102551806061023767302202106813355924776296935634373621875337724774993758979772613775753616954979440451600340333533029554069861567030269016723319745726684544055348973150815900421513339814951022468927193048608416147675533705407907856826385614118981404178695547057806013995076017120263864042721729711837026295844464817101006004649111433261226173359224149961931044567053033210438480696732214128852864415957338764706110302501576922378414481922925134048377364689401675106219058664731348162016489280969094421033112015913230110601936449004245067271554187882433946485777679090200587360268759808514230608237328874592689710283203075581095682612902185130669665476100895949944982223546358815491545443127630055654061026758408068754686857370592894941496997563162776770429316350872122319619412724224448581478618893471097371734218684046214125377643467812882879893318454240185120867476267083081570109096516414365160680374253655690606779126339506355466455360614038074090990825085500589984884145834152803954905213210996008132382564277575174816447606982084675347458453029077553518401756863395725063951862093047751535739392194895554823955776955926170560238022661944972590282432025848973929361512714519639290859258108264573545534776899862549902402891851588840321419943418220339227338349746457516709408555474677569649940855974050950347817009291722899072542851518129459852249310514647505583200128114882537327449888622331611096060504060158027684915087935881981513244051228763879434906606917794389670445817460773903523797512546154619555685296899214855673674387785856123899383499020743659694072532697784699556278797117637768423641449536705471093049486682875128609704152195027453957514399937338429309629928701368949600209967204832004801469359521118862272991537522083263769730742286826054415756502579952882052345340521380364326458304307021138286273788138163512338867846013266463735912859580951823315562184677841720355999617860589439334710961583820902263983130381778171134068284424956730039144730379468492506423350046635772000295338831880690231341104553449085512547685094334237539042035857824844528230666693344594126595972041143943894616935678430923098692187765179981481660851948650740088097037296076602561996500825176804375760713403253021874344655769055034530956852684914247547971349567248587768619996549271750544828969972234092695645847178961492866891588458232079353853784069698834200379335482559697926388912253144487093620806258120485137344410228705610523258816491962834663082110294994896532640904615325752397411089751477846998969012715312178343336738750207807156092873058692231643617192169066280860563261783139868979245524838685772416109235469331925120913381979452992434497801065895989227538761850662527102328666573639629370449034269123187697086112892040109798214651651370748819280979367645011714126326719145794153110783853378769363610743330031029497031744070168165452147229653138314826689818273030169261268025218845790958402649824087020307677621696754769524113454995714766097243563811336239209716636445233923901844937893945135146366606355938620571839767065939735603663964950029907090798761420184276274315509819105283934197620717932622353349577504244672834361746079579947342150456833000588522048758730276672945951553196509514366460144368769030496012026994955591523029796499112750228658462365286058072850575573984766387077490315921407794736459070191569053976711847625420065809476542521042628913056337989829274026440441358990467169373402775906205296647744178857682272645933179567276939909452384154112340794743032668933997589142503138939116180712405602085052804271653766744235375357693482288556781586507836036496209223315023001874195534018210299654642956795000560105819345423762162011760434856612778054597143882552898350624361063437099894082003252453183298964151423252763981054944464448533241059919495851635121625824825060895976706632314852015822432292047346495769708159422147375832770041729212507815806693865764355309877600355865611616833133337877877485673324809665257007078278692201247836187345995854346368567369251852938707042732930835321792947268162337571893934249431120393044243797337029899314488543963364317304206788124154417098901787157254055717488700098753780994188137700519305854087216125823125018523553280125762616227925720350116898572343263067117453912808939154737274477151981705747200524724452716009546837784410065578336387185865619896038765692525183950343082511182748901041915617478078888117959863742977113813640896493729823045195563858911434577190571743748652513483227049635965166539817373464712543685849232554605479017097846769153638494078335602407159259754945775709438897538432673716732855166401103369240705062078726747872411381399480574221882091523096347146844198681739387674640427836352375970591794912082401657359505667101925222214433468380534358867930269194865668511718186086635077203798579601294147636827096154359496357043350606600918261611134547838006918853351522584721647109882017708409280373488873107774541664542469283591107870623742263720914757638531968448886787360831484944387519206967981230034201432466349989126491379557913072883160619879421269028328646225099958175492819787064316429695983448328825017700283186492791142401080728293553036088235250291880402989923242604188005096670351175895813207634708969769439118885045367377793474809821700634264076311709797466668873257750592341006810508258881644046829908516244694478317679077437047383035285087847269477561472540175756231675928139680490376740086232714805874092551631933512829562567304591875415878559706452376348751313317282788640311850179122404468556198725408373308256777601597524028374893185050519912443478619993383461154024988957645605830984269782764922815052764048165325632595303008914668282177224306774303939320692418348290095457551982970225567188847001613795591198803423788053183459600294572993390915161098504317969139768481596172965040005209212255784570683399611558514226312277239464771398610013592040368959165928926870968794083914608151614929010291236713314553967259723931634668251442544838841782042671704281453477590670476141281316859441908158319980770876364328470605989294598414950131587227153630905801217164687359896544396426088676855790158347272008029295752797318060871705296466561308105499392301707767324118364700737396827764297635576149390988783092747298175279508618324456808109089188392627679011569367241138622379762012843168206999950283478091772868870109506602113929256445152606360667074110314925732904035532153682000859893996320661891576986427709932299499512925210334429095857562692745745978256360541082285966107718790604176440974487005819413265410724647887230805193766308799803672030693964154465420615896092497870147276009542391018599029665054997154637668266943981200413937949721034179723521169444435153737579259534082403763811001453322771726058481722907602440391022853975782305232224328737898408126280603984217240412594285804608904352106901742921911747079188688613051761855425111628116538238088143612617619635736024302176826216489640004928448886441248446721515105014859988690126419149364442521344895503584896279204988594831342464639750400755651417045714340234029442353325920719416154161639077256332511384882629806390492503592748505645815341068831926798732136358842387303012454580197150455094179127578854102053031524369196990340071308681264041522483775307832883642476492112637871722422355124083959336307368265930952324053234040430891450856181240907339055897147975397456637517154996043142995689747914242394752295550662320648378253420610751013191819935029526759836016293923467643230614538689300714349489018994876789343291835676378443656755678394821908616980132992233103086109453061194348901974310037858498368502307082350429108056727814207543758307412995923511221789423878349532258691194623502781247467772740831218263655954977024841227569470816868641118221412027538257845263582720362191840016475381790447906104483380237886895170372465489454730146599596840904199293902389959467669339090316692663493807341105180192336207463701703861354774875418811734373038313091249732830783521618794405559071014845256199494634907507353370682166459927892516124636009646896680863152151926020024547411959184248274971417303700482284710279991120950850181349507539513102310804906310614376606466205171654283101068580935633152108241262986503410710715610726557241320749891842946493871868787645186233818922359210958262813964241208332055168116054554574627599952620212999277740813092739545805365895919436162327035152981287634148413773372477778987047642199863275561359804097792256082280482428628891352850389202664373433464027171656938262882825513169029361553518100273979892951689146585183590606473015420222874680726136418066923667163153329068775464157895434468973554052654076664397823331808677038629282345133999642407056747953088924182418170922484633638226997561618396475122271776977488420049524872960659463952204371864374447068906008141758244446607980677999933952733721753454560162449557979619906851332419395153489950727248965212847393068872573058237224571668252436652780315887310932636662499556582376441443613029559149812520152254715946141771526115501711511360801915070995020202264030720161312740367137042175292351888265759623505521292821618158301831561053786062228840085554076530528846074498623290489185203169014210714671724787458532677522412046449922912876340483914649679900767693191290262589899788687986060572285814728371809365837244181830580955073108462594933248726923664683751076883397256807790888477455008886729300135794503965541838526988527737515271075437291131442728194775592138061362840806980546600428060039938783824517161624555829207273769822183336984574575764384157449577144123360309751037367851775563962254032155877524403061527833115651321555198988303693478800614760251879948017272489412523662574724982994096333339789414077218020320653746168505290589254683620918993348742613941654680545972797165659349175731060506794259933030151183887064156911946124419579040546570266937219454428705751953447791249077460097189821625247034983226435657883108849885079698070658445331314492219816740496998503182339941917922462819032638718311232035097871817883514924182357291309934889418032508070221753549024012377625696698334104332634431494289199744491678739322022153847972804445354179842415588397065534775776690593236641325223320044529845973344498778236049322402089079542174029473498041095137811995978253760585694892550174649703521331673375120496974969987715365217010250704404523401159983735015067021881004650961180688612214696958297332313302487809068909077609757448748955787809918717952836484786438101494691233393627924274680852674499074797557582497937408637096955599010559222432693786515740900260808597698190439345100093476401208133408420184109776995968199828081862845819733195762372128925275131242528882771541806348207254813070117375328597713819876794356684177412121666132036363816167712841296758841585243084261945950351368161391487182998495267858877850845523420574026105506281677097696777509561399073630921580639182220056092141001596014518363308863084300283840784772376237721196885819959387318151035651243980514952473294722080970535030751658020126902568432925219290108120781109154210982123567640837120764817884431216767095803405848798903051753324106523658579185165024760783246063297221574601540837562258243178001253056134044547701545195123410506816192034956509024649982444040767231884681630498252394554802786862039405800277229743198590100408894114632106687185307870284802990867277107504274772441312118467608717150682287503089923232267946654460954737734351954249728971382766088205705555273416429477779182358228680486044516197158761583167160666947395465465863208179076708618900856052805954683152185024402461096576144812192338395990291793080726754168343460546094715632440424381170522343587442443580142443559612296402544292759981225741111965486826923482993599759939812620573153067706679672870093705306314283108271759368817921481652359922029816560521081881241057056737782080048617100600723068418304220552620683260166429896962292687331020698469235774534002891161230773531515283715785913293977565948440019848287928605702614961403732776000886193179137305231348717242072993075634158746483229294152613885347763945379012468259412273447127798980249053718482757564932314245419309834213142580751538151732410079127117188562406922347318882049495910419846695031297782927661175224014111656481558593351272456120162067322593413524315345350281203292871691637499211130969784521017538626421940273236967822104968860072930782245126800469975666371290774231641720131353926032329940618171534622791955620300430050617926664071086123660934175141224302710404746508584029309327649910474381000560802138767488586235306464656016869783612676382591155452426646648344026977431592966976102558189838559011120806444271632511231514615934451741243525266808346834546376064983971098365135052769530862151048941318056558684619192915742366080816982147886226062131191694150177067926324110978477822199720748800566387532874859191477949019727425329622761794917462484171748301020143154145647873262383584671802958842175021182169179553375051158283827712712226970089297720786654367269189475735992444948086494798966564618912315392441695858254156424867254808470169090907967991405164597286912460338299435673345483895559149150328926103248326184553090987529782955350032566260708875686617990884732894444926785576316771463631401785742191240346946212995433580264777254844278268770253585566238266680958407541980373756764043377004927117131096146328309014748091161315515758294667190645032726066902838559874875563368386166555078769399455545375416963733107743984718805062940962406173297205459238546918478363952271120717246366192537256493281979143347491880012380936703754055108702199369223997429046591722808980205716827642450684555342247368164073527292455363981265992379853177343394791237712761757230747501164225055640659998635905067762962599901197253103625793039856802797343941725502485301220556424622066809851946293363740137800794409873521954375154868008644677798104165514393582224295659284129218499647584809754524199214171068976912592594668092949026674402414328105534427931890051358024490206069165490833899451814874505677742195385686398643860285733701642515600672972316852092624925178212453835370977018828331581428541900516673960224708510471534702232224392640450771080339216510069817403192956496678784464899364742240959584973194643894087242837597879233965598978428084117833518423458597192346917797360387349589058659450044181112074525477897710570579132509824241438806523618657286667401566366149160268752744958925103932486818103821871361865682177925691363178989014370602102776519761614928253230013807905398585645991564312175207797032809249553927799805452966625321897748420381242635696679443905937606951951127120015733884924776770041974747418860219287985666669976518504994200152980426033557574089241665925336763145869520437492993787507856089519423682930395924119732261802531183203344843032045410663964585744918850456375472111882934387206520682122754293492020277560597991287788390480252211195015337049301333703061221315310503110449430914387727638755698706871829369475604001949952979763443534021033106733972348306621298901841728928379099244823719054445537884059079846240938120925087419241697456005327974777569858640825766176558048895074572137165389962200679538297792177379297583054792958859730874945281627256895451619623632004756153938444889556927871843950604936110487119722753968050814060583522985374914707101774744494228007980694352579349953952576456156852323753041422553445083457308700161310255381785343285052938705715625684364585296670730763451691729181556820218839365869932075402832556397431717733420870164139439137979156603636151449718313955378309892646535723724047029277989200216207581659227048391310503259179097641361625988425981442911294416462190480055615877890658479048662253611764944663614327785053792472125862049569333822683277760569167759618763711110825636885976899157060025614586225924242880268021589952722875387317060474417348280668441658976242478314391673029760202270928984789743098220815380426142866356299870483537566368642617081459021119564152592460292313006045292942755494741533421755400423640042938378901559428725109600769724025019237173106011367628597119234198317049691305353376083673771121316873133627014727788973830597334934848047322582315046545892822526609265160491567836362540167341682350405644187041511974969804023172790384770344164667857355327237829660705839430590077821196038497404939185328976349427436999422008422249786923285087010549656040922379702493035907026096028072035251456550200402615263720972460309653365095745240834544412346022026067520835713065679375997962689174579071009633277992107347012119499171838846915932275451384768158985386031817807256940039298495102093718885224988391617813587600410486085746357459912421400686193339866633162920701357096920017460640683486948496201146191761274762866462006626121330955044423363930294140369152526532495311552965962182691286027871207480166628366110670858359394503570966537729975657921175231091837863212328432531543401777510685258215703171411028262097545961500645057411012727319805245221496511553567652885816517861336846056698587367617548907261072972045829642745769344201745293346681403638365456474814424466117521134734243938495192922165659047727797473981289307466957167801296791466517923579674201561760710532271228079040906111867760213527280373876959796897080517251859639068360919389987789482360068042148079295383816336238703092169518896513280226077366537920475923883497807678821294388342866974051140857392739610384494819724656914822158521203174720234171854501671909633840017115079890251936932909232358757850094269824300233325854864109946675495738016701375145892168220688911387913200871820030346853679046314349415197901291830910204879180229847091752769600802156011089679655791285791667290102957246392495399524768660199959412931256302733692583130294879794041747125534805540346462458589867191083834004216000290807743041137302243003100884969184507701751923562753448510442137697589787003829097221782683177032233476193847399605770035308183573906161053701935063370763131290434721909363297956720562027018540532768845310949153212023972697936490031014191024429868593894129847522824980290485782714408809410840899277406296083252876805670982084000000456536787556496743513187387855207826441213086176970370442793016881649603763056507000171090745454259459459776099989827763651909916215683165034629155730331508192432193391608892042563399255612110220103485196923856643044293632409679526835298323481002694702459148696140509603919315340023206140650905016412848891380863187821979815305951641161139725043543749138511516982527531183448636785708298389366917739395039396250912491027958573865262273366692474993280684686365884791078628733558079499231740844043825598238192994605853637443152452309057225651982216111229012994286892493180702862741640808003432771264866833144532009142886601679028885338825252584820379616809606977614376441873531370798286178997569614203422556798643464899440099062131418704944240829688346029068461430663279672872266629012551455937437956535234643739237471120916357375972296116074322453947526146788612026159699653459067341254346288830101055340318687336853546157579789730458352380781154335976562202448018683873154999990927977177640450739374432449054350568192738532563626126436198377243194717682414573619317736933266161209276142906332134108630702745077783525412277415969317142115758001219666699919057796862743235777679890595787698374512359810740221231524636933690617062664608996822598188235710415887204893455306682891578621749844798377442153775951566059865464604498688251332492112438039659262214358207238566654338783598493330812143805742719413820836053751628516408239755646564368839936310819721085945273195835735136778513419959954874746272872992371545203256955610772221207857530220773536215715884871637599273302765546274700263284825310421832102601844422496062557689595137310038997761555578852847772521896015509305670551941112886729205521354292722955722134329548203266751514157755650237734508004961111161429304571399164794084289931226148704363385960834777912939399042559173408888299122880399314851855989930491118336905316345548004321216788108749336784768453666550263387058160325921972607692499614401749627533620692012593979983939601131706663234276821859954595614395999156517619463666398102489681505854904007973250100319678907614382726115613156963829458596354179104775084714075261557311085384664286420418041467990274020170152034906641470198364596033283205826462308503009377613448187312857787992796542349337827968018690149022126045461406100380820834541708323880700373035072740328725560508139582094529550356214968400509527984931385814308618758411438768104127126415483901365360693546257811567817712564057049372797208504299879579945204371282697512399784090987696225252233185761171096123683225638798393606501279035578103135999644356216526393198838542651919521462439138463238105309334128486099969741554120807142233012928297566415422058895416612912183314940114218800468761931910764968827597198457621126075464992633672389750892880407047301802175566760159594024209954498099513175260508459680501289862532736517556025005858897357593576025286045539422678874426451874550062265412825410135171199224653073852290480123224906817361027310937729219172884405673844082542403243161928948549094313998939990563923610711567588006515887595422745614684817000777002674158513529839654777796437236750901558502159932492485530276658236684221077703533615237998249036260524994130693545990042039534401322923777290599576249561115258802161199502681785658817367081841707106093357025203464353697383595904248439421140282156351165785398390655064650012185780919927635075031786997939767982307233304190500016514058473255376735272567730372736641874756838847722498694021963017391347079618759896198784907356441310985202950205464865818916208907537369883667659470944799412624965355633892104557844565392729154720456718345996225289736239972113827025042870373111792307228010663343685676246168901864369443881350650578945095152674246073938343487410394681928578879536539828102964323046407036110659394120495141234523724598451489314648023259088640110742304407030290039436332581710705507720410778078337293508357461871993836633990767894551327201640654353819136952767976244453733858551596894356635228920340312684239900927719002469296052451285596860297031377694814064739475928849044615549645240580338522216940104416469048870901828164678185051668612493284111780140886354925234007323106094231323026613690420837090917714532330032127547555812114607626288198146741871092896070920212898536947034171347847424433234359103893704347917947210040703111881311655788551489637791891384375826555933964915410604252855544184231371162504760066671399326284945941589580376651373345836222716880141443294879379512347599543341294029435645284447457014535647163837130726340796222955901251723767319994310586505504720646590580187174957660318925266595505167152140057824699638018056839771524476983937698664389885138975641746963498248514761351992651905231617352461595282125462479381324533168590368031101052804545834735911049827146115069838398323070524248751183746548395994657634293245972723683121807777809294430832372477611241986989325822072445387558166416830484200448180360399733430949273668453819113539432727775897584236168785508611153445729069403704538823178235741701076193612161391407211470808168638461450029521022029532243204581555503820680497918173665713051572691475862339329783227502916311929553778853870646815650699334105964887767429751297837960779734035708390281886081999562407436471530869523574165829082695179011058545650110641703193079814441756319864155132692720879674977655228163591821883224833708117003464571085031426024196309421777970293087864197081595217523695233596114569800292658689657584733868152603260466963311868989259866562481903198560271515006726269844371140396043193006542642154433736009830741606351027213304120899885311789650763732092340603322794876336337720743581954553490297749143441280813860614145833607394500914942316711912068010366137387474583223375897696850856118693323491058311513880757982222981163173017937838850245899195795753718969432037644058855638606534564481838413513401281862462347892250955446617617327763942975785187706658673279945056705009430411758525713682839767306972060494631311439605434251192226443637000576819316559725321113674914216893500920576372052951222920080634608510111339234610609899208599909769455653123996174728959879296297168843705467116838133983690713359970553430977149690640910007794972444891848443022014861495831042350260809810486310638123920761865144145191846594878473218983887314388673198771578170618980261832587747256939474988578556924161697378818711541736482409889112019468325250313362934872357115995440035095520810833996621245336105506104305686896299161930036992430382156931644362651426019090354420513502403179653886035197479831563154371638640200693836001873828790614341842458074279144564131465549471537601678693241375118390953966479388386730573626010643883642874231089184466441127458627582482735685521518777248578187054616164257175939374461386304496917327702430562546487235282502280534818928267123128218066234629111941130748319692536193154229777654543450557875390868101900153135761907145801059571843803291559330004828740912806551904510728600931219015675223772352474090639469116936458388373910810907292914002187295887477333102516883828447562938717970251596370389056233038225442731910564933828901024530662563971996953800660734851798696369670754684761193253734791043457440158214284580374026593698510457016965646587855966015608102618866935771519859592017069018517176832383352606372607050419865537637749410726108269380958460057988950487209945668594786188653989837245442546214378611907405537722837720699202998784637528494238264305069300764009739916991616669420230298327691221340253432172728423205078148700845250811981909233081742188365621841792685752512883244245652881641477340266842085787941829092447368300573012298133133981942254713763602567076275460340765827441143051290499995367118992935716463288738237397846384469907878996201665143122377400450951896564782704002740614486916320868252021455044130969061453101575829827579215745876215199826241839321405377095681682422117273846588805010939969515518044268417292341389283503409958973026007463399370043446932550859069006923631393852522193748277766030719420015549600023588545035526890442664299747282641698152687206152179013318827852902996797608415079254323912984446272798845971725497568612254354379091670753912976217130219502595389895946478900056586761233065321014339425694937458354795420684544748156452700873339889026136561635950313120191564735003756479574697766390046968309754300281851263748603194973799924209992004470066048959952835501402812224458266467724353122068935786898530165049462652397973443539728380541813103501510412637843624173274501904801512675945046732424738925498446473285952539259089425321746505312043621545012849234406801538820260922272952765061635681997249046496688653773128173643481043956862901334441047720091053580695538614832109838690446857256873265930478970184164758106490286323056255960050497846966509104161613101157758624405936144998093990117219206732396722256068733929025406917523016137469709393226732274544949367732347182991092653070868800242237894106519574986838670702314840083363052909544342509617304861064045274104675065485895346424324151558515067734510219170251021685849509051681836820252089717858477850534720733924141461995652173501492183091024617630106519323237563264715795895295130988915793064264649932390694571635779451348241878318658780836301636581453130407108036346969921907899704595875807479735174297986145581153796121093245831276479653047586483176892554551338200175109901087395151156447599024909713577465946783995218134254645385100302323079773955992028717803218016742006749162216911631286524665623870953981934982732783829690421597838293995131573231248466829513157497671283865309110420827190649452245649785636078321651036508822396256373825509651964196691981709108223439865459153169285139202719955566391815015742992821131235776701599988880483234646862194564155489726233944145236621427865968185334314212466081964446534640549551889056701362615152147636641033909023913800402508337661148009837985221816406292441661775018169915652347326320661279966895222784386627793157093657672562846491984078550058686882703187538747882692912106903576113002895298617260198097261208803768366264409515943382438298886816370387547878955335359304629867296360144651534336276172733366745141697701110129361039584237594830002638277083712838786585318881356127663827520988231558828306729641740882493826016795896770712966747858177615305251874813135450865690909792131752985273290447833522139532669025976816874660532744661473924929102206513195549470550612304290807675603090272324370538637920820483094936178989400320391761984724423513863154250384427966030095500134035412107620062783600213677865957972359074478299202761668633955859066813693491929635826321152754497587728591047883924172896772750649380715997055321501261855591618211522958402351180532371020291620360715682212991916685180593415460422672887214305643849045781846722044677009404842640661869216241015194701878670382623134478585771978299395458087353776717830358143980998093314635832757584058388590293843513356852326554640275794204320413113938779105417788686213540186197457796510525557962845347286314192231765240200008861144327506785136428169438387937895629293531554396842467212557877679320332558621085275948533560807140545346111406527464131551686931130959136252371299935945965867925717344064406208215155140759155559199678812776373068231329542566213480633090663285493753676307437805799169541743812738128036725166458980104644887076684443744553566518804922278202285993820688584843242589661293686312122435416081255944691032150248934277856852139139742355304973517560017079071094695356777318879045015108956687125494660911486112987789590743170237272821327823378637757214646893783676536453926178973331301243096919088475761020337054630763971329939169172733894148717669424419813219388082679681577646386762157267867278950173424985366411678816746594256084069312017963548348299247323452308565044235289743354996828287556448160898862025412404690449797668800228457916627774820775341339280592170828416904592363978020972896637006483061036509370053138369717923011500120384746749388109213727749023474332927676580515769564808421560541847450354058231835654151129451031163486501993412878343938871912525758888913850007988403352936414638423287073066490678122469405061636261578788277217577791763597444090682731907889393419594015959101430496156744839930842333254173224086210638901387361718553154327096443694458155215124772502858951004343928333991758333990558931773973449063388781770315730692558051481110117705071411175435680215156352073539607592867302176126581858594316564017190026557612303071856398114114916736259445930558258968319532655573931208994587883148582559688553200694826205312137000360890948676127582110527569817484258461350267403784279374908214293561034884730689279641969176121615158907206049179598036317150289332474461065139559521192659863573867240525306722895285131674076922116579222706672887649429098117129313706231933454041284127884256524633918057624211240119719403811914923796999018105986582349928898575611889038675734691718335112492660594284267016732414237242578119137275701872339861888087643378686818516965008652341957955321762884612368753947288426948110414404665312388465466484801410815761011529582783375853044859630348950245056442006401528266668171142994831205447476110369452213751983602910518459257393367852111698841280567969386046422165086924382111260495030774645026675348105994949340867758146149763042323058941875306280715644952658486756998574443319295015971974658673427161186255935874631559440345295246284047443899613382083700617747338154602349464279465376782818032513853632052619200310469735544939131652281528629588756851261673764869176648875881990637724192683206501156823949236810683350729877362292565523657461557575172309926574265920385165637025330960413941404823901232992169359910542952472900148741270103637576445658351384629544316378826334625728811001363176010779411311384940316786299221721153004021060519017870464586875214557703005214460861859577284747798222435808215547582048980751469439393646964489716206192157437474939168198690782444421341561340677103577928567075915316170890014386052296549961661796202662919396795146372081474031219252373654207366658227138038530413883336513079016416911883285539649785952134162740231883546268111213167314889171175235227270613274394386845028112696676364367664465081173355530297955319804818832907265598277592587769866689549094262037368960485537313528593355297430193081243350439866576646812846647516086431274398536550414205977276762486484053088080166316826147006537467043217763871234776636621105042023235742354386637466637347810084424540844768939277491671527659561313664104402975037678631736984267866959650183565462364534443057866024166122774905491063435817016783934319410279920281059997009654911223231250307083671526984055533956299153499301184032541813580102967159010346243544726051714143255047507775083240002639429616548070793319125381424652608966771221046496005582951551273779012227245378900648944319881762107665234550545205559560857860194503751039425779263547905932546931086055224442964768520490694929518429039084369279218483404274557382752869272009211075711713924810325838960258052315091709434202841680129463617763251559442454983303085167058798661009162079648652383514425644170420516163888969993505530831647037572238003877719790584372217511652121339759068030191619748908170587244497008781301623929984231393526226135099299199369916639757361815268445783166401561634994147920771763067763210423987428681653005966940435834927658326704733346174381751909087310891583415182116538118671010257798693572978038054911988002460794186211488459298640231754946248152529608262034983117854834862394069360173736223743901117658289312795571025150333016174053621238746201246198900140374642941237966587163030770714018175226837526410918310744138159367542653789546732794549626927537199130992036322487996442701204253315821967145178595697774481007157420535988795752856063359423063093944583429811881903510272029054333703398196829162037810714425634022306883151090994629072248843738969487261212162242662245118818557571322135895689784868722703566674381448387378636510983464033304889951420679730378704934705751449100495763794444669078242456187299590231912695852561148342200580702921305437771925034665182845258989958919148680637199818248271196557058398042394829998517332989637747502084740864135870124472456731549884974799314621234854438635444131076922876277596675819919162787317420203898710048596431585497681946418770695351386000102039185326043815347623218769872880230639524894371010399907758818670540887121523652195327019861159026571661553599759381445476849329268358019408933387425434946480750310230775312613079507257653495788396630916505371340252951343985706464722759558966271252390988019303518531124108330807325134291491903899592338918519233949587149183177065297913111495069287312710607909278057799167673023508081596617495474255757839005276478215544223559345231596224695287251026537532595469210930219886819517866267731227488153868639150887421455242555903925966531782500546889772622084405361571418414084581597157884111626768365738281853382814674354915254124644197499732854762765976123297822972296349332452697586415140046178645415466449202466335216955867370440135483385898663493678197202499797438786060782196213991953579959435861528790810990818331679290741082536038163616884222255096816956241183521906122358028014365364002471189275306210910326533591834023781193595942164946886172616006573497787778306892341978990610913466651612830891714382271535811994515212328715266905493362086187595919685701436477386358991270713226871324662661248563375417597204843835167137514926763601437164608404359712199955574754743103716263909966530776423574862786928015290741293432903502161537272002108993939156266430142179768078436171637425127300573846616588413558625092703697649585147913185747334927463786321541190846033266741871120134105139296576436171253415921683525529366286258395316098511267036759050825499969862890904694605185475833871828295945216235163878218299454521886354262305931970968264480244866497331688766783444658590893910803699180972450269857633573130926750139858820571412736586599370900849725037710879419374621628480749402029117432600422586752413904272047110072780045248728154074005772491735599260838429806714074129836689703344913771137791049117645440585865086354689451250158867257997053433871934236153124047790946057723144293279725817925253106156968996344883614311951896521469792138562599436828772807612564892778893184669467600826713355593733695965302903280091764644070774280881453026455552428222820300741929168320385224165902209176939156477480361293236459362360620002895336075217830305447696622674558407063042294248423918547882485423133852667388362946334151958496691743424293282235856309648880551043305114396387606457234984751344865160819335774180823145621158235460695518436096996165585522433129751857137808148876716894247627831601607745412803337598340083886509639371122084646768510795544064470930154391730267851279838530540642932662392050047186901332851044723057778069797961268578296995315387035243757589054177356272378932491885259839515825274762897450777169085288911631024688122229947659398606219219297678185921086893145342674514393453431563031500834136074552593100064063869873588116047564701607517035817809715156912702913314267783981359998304815821905048654563381039313531528583527656798161798715643738359319967132715127556914901880170839690603928313684224959584816488286579227659185309442923368581540390871103771217929771343484790305581778903738768065454551710238695731864217632612932179279654944009272951385274474055659603801079093754362558838756989121544064850250614678541578296138089967259066853129678032772574020198598464533021188770755266922273417566501628748572556762377612254940777733104067977658926624971134509470640097730314093761785800131229259581587021730569597358402639857981711514571175004740561753784893405358211375624115112714730474183469376236354881786326852729227609872704942214317403534862372769008071947619739655251104692436059697392444592599209689315976615015188109926285506926863508215011990174845514801864602971183354671628709066564937046377938175378007301542276154515298933981592468835567560427361873785208958989393004423170462151017687475006269187479318396487586267150946289496316175566930223956996603034255408027073688600984418761543024709788044143415169615507418338873701504412847296125395633997330800087927061968029670232079434858872111068599546703996335699987066389408925694253325585299032121441712551668699027568110245890591559087199477752941377864975139373518050942343631133821389745365690028101241081108366047790428101192961184912825820684402377200014919569612928866848654943184918148054785218565062284635709389281779895751642493642764292529473140943341472660503029414527442931205601237474014537621066209481959624065939941611199521912008215490202212648825733099098498549263363057537231325377037222055277947644324507945545285717903745807627946599027542896861206374425367322529448584127933054214141106331046001124783727385819871335849498627347519329864305207210373906085842883288654528387858823300239439177689107606112001576705026201652105701356690569596519895144406634055084579694699724931863434166719632839814546499954032071163338721644558344613542562810898911848138314779014282148855109386934138722885462924685050992856441181621732425274685576008063761535576143421787382610476609386127630148468721851512005158175502195898425653748963997362985063643341896905341220434696188150379739867429112398406399184319151407960753895121795183546256276007341631221579500913380032987728071177679224107254027254545251631134428818972309189158224637697439726157325211421954453864300186124656552970852218820570613386374071359391209216679998842075378281651597372653951434393350913404188297277494768203214786642947867267086955687927953720518453240884843164377986856393512195131154889179886172683593131806991718365363796425690285268862577009698980610057960239563511323444252678453907000763710812855147035055743345101196947250099944638440560462221935536760173815083297911536034824572393109747597989600032690144031328104806821780770571337956683354450577222232909549451620689885470779719060850751930782794168017519833133882606203764010177621520866778989385965606375560590052827525968753497605492495319784601328467733968698577077217994067817588657776582427619257659221712702577136832909717615862106868879312752040945791390197758594768611431727450219510120073580448581611453273675143363886498572953203665144302409796233624347471711494501636815216913122589080036585645937652666911113665632504642465256166873742546966378490874717562838720799808740866081902573840809693806643623452013695327879044915882372461305869704674345337570911515616710756500661229926485736671426827757668858798860818313657690051173189421214298826178719741335425606719955410190586412888770074253722604479709046851285753453141557995468986857082029102992358417712801890071183873287287280852030846392811241694641111583411910302955682710685782048243676541024936999334425650814908184955755573289576195245972346862354663775110808312073558251295984831072285105049235201712488811433319781824931741261971941925729769891023490523350801160305456144936773717251873804141598623962649746401725624127977083559221793262682917926136175636322354113832926527924856605837315431728503496370009794818816701738908665620664968018932034776023216665234737610511506054051474322869148029990767494736974753941312395574496793877448433521315775022333597475616884725847843220902794155198878804007561347532257196153125176590480301471110227307493531799310622032567384855575576787244408490021355085741713278931913383003655240212336137025464134960326199350950856453652981956106974642505145373610164285881349094312476768844592737670352931788755359484663667746785498842584567920852256885202171119388390044960255750555117346656060664968178620859786058193525106883396380411112334720961053352300496852999046048289010673646457256523900350524896172535119231727987397179173026746963196096822932765216162170438201796035076046392199378506307113747118877295907095953124939496833824944296290936307376551907770925277885866766488911639706951907027928767970627118228792945169373584185458467694837672199404107766975523390031033499782374298470098373855965663113287900803431878277597304575633479450844944878617540306811750725657516813755592526700141883094891766291316949851547614028322115103524246838583137939239676056913852591707469037934870350671847509042418940953194127963437092026416851625858186971256102633201733143645570826664379843022310813655158424650703849876068623633303809370787610439319140315720160910488945963423498926356258664358821228805506512789499163324393451588815418451700580947995288036605279522918220478530735591467964907289431716226619296138250194399671478468277372755709251784273202718546605424706382770163548223339076775538227381291002629589381029132296879909393073539888607398142802856732902645853530486136324890197141004728285793578567023957642641174367363963609900429015993667217949307218910075131191898807975349642180274859409697668391562424061650461378507351992830778552807194224003113162277273930039690070234116170395886272030417298655423460687759118331161357683452527053762327025609835346611062381481389916820246762754525543436916254819023563395741206934504461371106198820755695560258272186327519115253997515099565242727466966628220026458067133023315726734658683931281596006697948337199904559597276974222786749905292275565340109948143586465896118706495475348384631843662488831632011544066818123410923531039375273996580485400878305107870588437615736333551751063770109823060768863299179772854036637752591693785806846501428566264044005801145071185383106127571230800613713362446307111758492255513563735776416241313350964487199457026321132164833802162692834587805174700007248536192561161678694087914310051226413363601121170168752104566094767998774251382732089771547936068005136339590187664369806655402941569774538026604430244280210610558100394807944584044297190922259439864978361476903738109178065078123669338562965643302597897100386573181165402566740134379035885200145870174294269134128874284132349029987946717386451839370644016098912334173220324717793689066856545422155577766967035422834213421081342663577103717614758897224022831472691670669294936062194553115255569112287900204487282764751366940935994332944434559093769333738111570998901094131037166646141842631743618586283918851274242709992359317341552991942820632416213895172508116661441844952897347294626193950814150841765354187162961621078120238042172831049448386806261027471076744902164055623399431939105238474204270773270400487072941028995812058420780091011152909813241524699663690749483065511597422588015669788543400563519438559721143450384585164800591206268300670645813055631532506824786512217588954028489725239084000873923923525823912364380830632844991591710966827527889730833883180462600676612828267697214394187115551694681886760663543890355320823071932261061935972240007949370516922561440540574163932549560097864393134978062841325838920150191652567922589962736348650978268618755590767594165605111280008870028179497240713473628281870114908753062861925971781977830884864127559275500115470412130832725954870296647425912289956121930845820899511994060765476079893237265715932892469167858189150081321144646924592809522995558483406162885782904341662584461390379922082760839128554910623024297732111166671919221282638392201154983207118228245230886492581018411250444485149476662025243111142893779179992657262392323317202400207528776551514600402814806532366100203035753834942988040065059850337710056537666468296003596755508318038547681388263774721658241554530185696403297924695395559079820844614174817265934589680734445431068720666117040013017839915530871159808260403431710248100962659499502869035207947278899151694134158642873920993230669544742138034971923815569137543822154709904762033278020247757393122203197454231573475294889164930351737018685974667246786412173947283555760963174123956735450940001840688908207660989073863971815756589175685961024491173321673632591087810901708478906905127209046903453486251010747797499280410968861414676407508146065542112362228284433366814982364062499621635042554589201822230574294009550568975942156447302913676890091646242445056640748102071015962381030048556827418008828818060115875835016846048440470013208780409129235897753591854369256379485986109294936981748910281770786744742740056377988680295580167005489207761983621154768094616821031237848757737511080838068512709032193583315677003367460538631663811581111090475634013916153191173067136862214007110612851397863915591196589319102441705532997363894122238263190544271396869491754106809422166021888406103350939331424452677600151130707284403851472515228373098303701340632748645371030282141296436953963884091651571389773467743624213142009884765504418065896962728951837230268887514118714469311191186933826996291576223410024622390956533002098034240786849131922919968027194182679357897937869665135572795548621004029154246375221125527108326318315907448853357638970695294065633998554159932470144471679251694643215816778997011053844011455928732863300343190230297218824527994673781463724654859191429750852811909348781947868065843677792615941256283184884855278151393604968705914847532228117556149292539544302022532585070061018947338384070240001817670764060729805281014577621196222210802005924401973772005300259864131293695536405397090206472725506063778817375024575720105052769251045526891972078204426694726178027934108677905619819611700465715803686464409178393962623007209290104298207336969429702779152617465526308268120660995568464543669397267000757543629017793775447948815297224068286755338580628989612986448230338879741270183076189216539852201830154187756506873329699773610809326759984177544149752593066620881677886959507851637902651816598893561366867183602657149162260008786941853749319737775674292151424300589226693141225629611238665826696469660304182701608368299880228885718731639270892427942869658877056907242674597373492286093126842083034326702361852123378862646004468371043247497521590448012608454492052597433123049037102800582479883164795516706097237451747751919564117409753138713607617420116962021713727141441106396968170831820187994449206040232982903945061192328500884263487460504819537065898891743690126668187046036785027921065236963882382662554023182841842186403291841505955111756040495436870863383852594521858915611387716646240916214667130285655512631726821411852452595436134458903283636178328781492494850700120777029082444133575462993423660448685263795882430358937726693296896224739128877962816123376501269392156371582051716888433285859522488401560177036796423297875685867723164666772553295706333146311860468299868194843671535169354399730701484410493108115577970465963950281065364410570068142960522697748099177425099059139369894621559895875346918350055037125787813711767836786410707939792591426452962520837971493754538350976920661504571586399258354487742462623373041810446586394503560980736105443177145653159298708647033919270662371129840657926099845144358152673757244288536317269767452449630734300437981544400935642283928753468858744826990168388970452354030978882027968062446024435773813856007410098354209730806359949337526486081960787971134071651837116112155282074399113833569950989372521766247304516196604005984968710504323533600480161515158263173367616314339076510071908692903014634362208343685461550486858204524499055164924250392556892849431141727902940062695799785788175235020000795244333675100562861806421169662380436954602263356246516172662890609753458561513514229901931207482006387361721319128247270386247283511444552771052854501305881244082578883054918466857257846001793412520737327651612991678612493785412257130788536787463898273043718543382254581461895981202064102108943830929617163228556350220740228034713743272355065687523640817139637503596970967033469850392393114114721095350673772887634455401394404850691510008098389893191501105352465907528909633582618831625734321873577011920448190720850961533746269752096890406961547887882630970405326579330971463710437306347869354778925529425679741727099831469821316662856704728583747875795555346754019655360255975684027433258947162311920212368888193021311128746640883403400243210720350517980858324300034021107263558444392561776603671301809484486554499009588564729702724938938244729956369503121918619771993343473617324369361303498761869032089263206983032248870465610255991603778342382542264115134813099420300148212954059965330813482504013676412267928576803499275915129242347126402413778945468489937724541410176863979350408229115553415540435290601903883741540334864263724170965853961317616181443269323413067234745255228440214310275952831691052076285811878397004165102328918618859685700609344067961679319771463735129330539005146905840088608822876642286919089145027897094450747683831259250647505127320109182637152026866920918850445580734365157563178387935427261378525645042773790193831397090245932609381004822213749410098012325871501292529925619899912824514216698052731224339149515649342980397103844894803721575634628523367365746209085949470765336069093058430801912547051793289392740639848736905031212394059515765017763895127167312240682970051384142185289995537248965224661557135157652688020176216571971397967668726213970633754106525083294129177266469321735468064158579486888317237386925336093413016832378738472958631503607109107003743368276192342075246136304012841528214222804981062894988420900220972859436904694368713595666425808432216633802963483218665940086366711018590354898132681259485580200202164231146544580274757466887021688076852029262340222545328954605223344054245833534606998950421540239127930234216676332893887468253146280916421784639660120987016448367050300237380277486117445903421791727857641447681743757260811266906096545587761265619433228927359442809175909993702546704147671875342529977426251765986579454137159023112291679343888316779804445582855260649160413865036529486780756980079678778530040319004727772530367086550530941630781252487935396018722989005080226091088181373721894224044399151003997903091087563952826891039418041442192178744606005899909749291897380098554741114116242311111355883279693955649470930086959503727939171253860259445442513093696233909260822452747340050463194368267232316683876828404807136755121149543979587651137298135321449156427592747564920739256025221997313066380218618462552011371478302653942632864228364597974497806604961888971869009237643092067048234642790585134268114562622461528541467550966617110869390751417876465256427472026345384642502044212721163097589629806051140911741123217620975873203557434384895564529146052961164427082625943181264175804524562571164038014287134805968834167050410389945670173063914558889754973981258575839407906128746290560069089493579059805077079921639893395346528397514375625336219581161053875580498483170741066940419707415482100823499543429100026389239296250244204139346921116774168158218791205403345608780732392638331738468938175853829399760239944934374361799444704201596581382267396047932910669317870508528956946641444872797506995054140711869477388727401181398509289714513838019112875838672071529562326312343166700414801287855683142899750061631389936355422354517955924776856994710482308728236095336818454519692399076056910398812720693049702743864153778962564635288802279580883211848902807726703028940768978641881666950463259253130730072500097176648163345561542465967113874442963157890086303821188099087389492613891890475321032018007239350554073666882549132410475981534639167011018008567133918884096502081545732618465331211678395983326978426624942730877128784979097725387849433539653494509143187273453339803485819688911436141853365470321435196303995772669207369800483646335791966215033739125181002560847430505265545475391864423272234030166807287891234536110166733093705116662755003588120798892831217478887453430845989074627793720073615178950264196649083189988344993789755918362605611941148913839409303788285184154631666144093104347944366125880754269653383992839934721892800979511232146891344257670933367563874372248379683941542659600485147676964674441198577084446404048174420402156610372785429031201374326874820653921071033241155988968747743844056369616602636824071736483562127691368874102247635056620201523976060718200900613210929590418996139977247333082592496664512925675728250415606897195600211076152999484661147781703040659809792130447291794331404135210324528900343219161076471073704184672756109742304250314884236969704804599562938695038361620631221573222349240770871060810173076398348882929240540178046244121203980600592698406733925055347724964544014987954536280548584723651507589666396317561181696737269926742708398278358203304632713900298461142953088939166939647704746755723801702198866560254315566709253768012228240635859920439951256795728907477426103509795504868602344992844667370165605622646826650231767558067650637626477211463955736842606816491674766948812325158636865460324712232587616501937753128465919917226338600445284681215132155755380011087729670390780514763181897045245809986046773794851430821397180640232673960413935501669140379181473868674862171266528583152123885680790785402664311163576394598840765798898175018822235624286967780484958022232734064009807861336987010893887322663042091119042528051880700950279588465698874042802201208193463375876563574245549780763925045640535573389247871271645688582864212107836693853052528591946946393016047580897312668020926237199620172267886638601750121435416153586752266878984432072746590898251759024930144862186381585237522545402980634261319178516260860063574464634143995448741603304449749073155496694228122148021567667711622055599414215728630116956994029292436084315563923945504727017925102544110515139298960739142378047243917553213717005165990265960857176977102542866549624758790238675019405950239197879174388723671798774837312749395550712205491482477138945959053202890320874477314734941061864416128309286760701599306382167562864185484680145589232334856404815849997655587483774823253877062554257592973251598766746538113886154751287463031725438570118029530574542203367631247774712072545445989491170393476135324337599479790171301667512781785832680635450770773409425576716313080450188058919925925493741750092448034204225403561414512646205598301163929658559078392256447111733753946535292905044148967709520893644720621250464712886709843439461440811480945184473810300132276081123961668423310049220410947813376501354365328572628568756175035653064852527171162642982259232105476660792673166852093749568894622998838330307196897151985305689521096454903750044971820459246172307688504938234900141753130613609025646434168609091892587046468546661274122439771112760849014525404128792556762434593378851892211055640312981942658471811934859511729649534322206821806410587543154562387999787237000101570685297171944299605038207759270993916481037927287493776881445149602770533433573479179434827885710759102957417350261269837060761394610783941861104466103536230757144392961907048887850578454744806235329926968997470051903094558330889107589200150947781776767461846695454833926823519031720475296948964413479764808837284053165984206370689680857872343116203529970143915649341076111381922883327401100445969831005832767308870121393920765146367260758831181768101274894893904487877275711858347279924413166150699711942814268040632033270966386918636500109152609742128099578250929949911126836813358141439338735223632053718659361251641945391601680101210587562191412048661869562244595233990612689596080321095074986807618277065013884519988900131299395402853658292594928730021769091611756719514869281972251865926077967105751878424758368948882565870580429609776108268525174439891511892539848032057194232699234218489831257864804186219415143336638701518685183041133078714674957230898855799149279813956974670980544785102782147053008464320441138735675402978285609080269792973842599928678497224748111612569562333175263366472469692911123951203603640801135381469393009954962353467318095044530208064433804672392329033761726592360131662705242263228022209552707570090358724540813530487358980106665762338720657669366601693812883718030723376584721529450486246304602339901431246529713319989319398253800577509406513889264447901039445220111155913046957092291470780961926707254419841189096752204610470364183367769698737062094566975282736803607282326092875908065860830911758376437650130275025886970994801351299147838655554211804899268056074719142845694296799448783772837657977207116393129713758994169334258027161871727554757837225290796343396627767011778280478302793214747640863377328637979955408043949894462377846370115862013748863856805743217065096982138712620824417488635769459972753529793846662218757745576085843633871358055621131642955722557120290267740497259231295413633429941914589337097897138425889696910424048782432565435469294014504149895878520602627962647861013428111529728524671072607901025813600735960433087323228691941214443038520924813204198504349283326536710423708483219628457127663837255881208112785558738490063490160585485584136515603392853222365561493697898702541911645508086220198375184538196756099970207588589722201475597705151311724616476375068492883259679547264830023854883491708143473568345756419442140684856317853178299501752912618584785731262310616388091657045215715799844232801280958666822107762591857322951734838901018276779381897017884997798267038825062354703582545842985362015490748340554964855276428731443561692594160427697527148595958928483471691984126124719256142344238127958201528767616592363652065127554890712129829462851440474498443862521554273492153355036343820685638060721266016038889997237755654322555772364200625921598299293534209190517858040480472044312621742723226426161800655996291462371193986567344697035302853401758767176647795421879847434246732770021569936701970952106047730395278715873270379143621988498460535813059882167722172619038545644736271896476973677971647446932516158303353379138617155379663006834687432969239438676394759170444702149286861274072141343005809983770064852919172866551466850685500578739974423393087821892614382466122950039572370683803519104176596953372641723812139859125230032882423459125088658028475488469900787477289484004571040960901451947436239522316253051366135227286638016075000069415498736811946246061266967058096925503581930508046751067805248268622228839477370683088052056642520483010181118796183366034003315639730292354211030670091245037717538527075264456650694527380152005093851224455036209053287823391244596412812530395427751054353831466267081366811158600071988488452607662530775778380780098644512828357222392110728917943218419533695518233366799289550746079269529851419199160525852575262506880520977717645360467753711823407760691550402527933545811141596117669835933436320495585371880861792279643384352381932316937076879902844312179682786640570553883293164163898974448933327392125112223926627331016486356850107753526877123786598573839447287263541142337339015671049056610205413972332782856437573173260549534958593333513198222257605561412552613660063969760627194234987176606822446885443990702070608964193341667716868091075604867375509036130157755632725366383861620595705824241523765998378923083142859166889755334703194647947264691089429480432806639378650954157954839290146908877423791326558440716485493599624467058080775247153726205836681468252218991746356409415475441817330425750965081403242924532272242068234314183013640047568819941753186088148450325163537246601620415601864192922390538410005149317131227227817078410920287645825505316081701467036042760680694018728992850660895579378973459904849086510125099129608733490647988430906376931956504152650364176115920127104034599667477463942938492303422356299951822117358751941763311776454925610068098071034532266537998829384304069877191218429085492210268732959243469698033237044194208240606508147208440413301015230412997336277976449288472509602876641657839984710348450285876663987589309498428788299051928204395366193375763853238470024560510475696477102348543568350997300183046131570350586318876286474215000200728021624847804505182914553908958688776060067012479775020041499800144075592231494588618011561129300701536450878811051498892232106589476650994335625574650987798546682788574641907074978790205907643301747843301118069469895568706425949468759551192736518844267456570237864101271578528608599177110299005078941018702623839251023918295586080509699802159540084067890643937655698681192507036531067268477663723935671630385204777637414583978844698082638795550515474785694348899165445036951786841673410272767880915536293253084022109590593432840159271445592736052964831486149023012148834391208380088802310388437242881798081713564267716468504540522166272105079171642750068141921617178807732728213534899642968290507096781457904599962481497510679000576099136856074423547369492223630757499882081394483197649276582599450709259744450876214488936544914896663197750491823892476241296844009175374129353687669562023197371863697487476585822094902460711882015072809899760113507115092700308788801618887118082621254564558385088730752824084014856790499729021254827316410911162428432613924202235377922858738494958038283908354656491363742056669153050880288904975196286811636153137906456841616738448640860202156703303726757956561895543273836069261443920189818966066325205071254757586400876421050937389137029909289382276476589423495697410750405780514702911431115963460440472586235705699251437462450113503869208471725051818076431690287749513309591014533469213690167420753877563558626717368818617169737038110318521867422728578726592207409133247061505890528392701537595069476367272204449904551376248886829552931038790577167438326764938990352364511904110077216054968376934516494754812785297976539611440794385995956942966857070254618003207841245862597853532292768883546705481555435290448187602761348049033200770421156764665513317880890760974776642617022565074606960819010787814315395664873716365869698017202954949812632073588829433249594885257552081852062052583020265464454403478025926205858009184483421618442249201236740309090993440044640087051019394074325871961596415206811535502625060687881264065942128858868926111338580406063214767974248096955736826301389064223770857021177401111774746416814214353267346114944111487412555230327871313405380892000767381906017457181050279012747717649992554565263248881112276894441658826781645837203578314857387943177131039773734886339137107226762676213270847544504315837780750757813644793872797682431508948137313925717116833452433054605968809524616773114003961351772501983049603956223715588847305212778773497515854932813321019402672304157176337180240819241630988533492716791689928032060296715956361651484738520538335713309291182276643819543136710895991240463789291083360302420267632952639308069599146495389817927405266600166431431416323283336936554468223618665493530850357504550217360605143780601835984531496237705809770169525788682610730700767547732637195994492736999388752396385250222522304579449953256921394028860526392905189074506854586303129422873613776137805608314514820495901135412343970741475704679108097903727864570581000523025525722868940356233163651073438830483515855546202758386446665532771728769226592372398578684373368742637741034102550938023555821297029832806101970655874972426559068548935822044497122895495360862252866179490815025952508731898577017372169563341425288029780309468866857704180391142767011358111221213709531829213366620117859897940029427839165222209297236628373719511054573089711328918579053115048607589638215938605621143488681913421089873671876829841854807964047544294130910061544922647702223185379305789467365855683963696126356380343826484701520863272557452710445671011383573936151178261349088621506069474129535859053841792752584932784336875102035504293115622874745229081836065301552315046073065639408987831745210468839074073803014253952967936694980145239611393318802524065470349777896652011663795291527326224659227271262463772594247690968319949411434151215987884426614335278141154563580499158018227655737508017437631783273890172654520250031985615573421754885516608676070392701478563740451261680771953552770590838401850821806547522281022028171708779665361949021561547372011414413936633220218114872994614740876981374089159013744573445165982165012081753847082697119024127610089896827259929998663822109211605766691420800135461687612567046392502646658274615491807636715257611443890087087919377089050096574279721923916328105691067871031518110865541185686271938063810026379292896803965942120298535166371712457788188206500813675675889786389253234296907806089216180359060887711071446271356324873145525714317739120996488144267360737854405673659365281125580897248679584826997678885279597202663207292925009958152719837952718102649777012495524020981096283176352503027204180085598326530542771986655673297798233221154450199862185166953082742334580318386311300324742596255241125698108713432197150756324806938654747620403091720529372266684419286719440301091552696609040501361919546685023689700053043434324065510164520543509641585592995627629150608303284660982232609530552344113656575609218183140381487901002363337220188406621858561717712848957171354845698851763100993100589165537654784844136348885458757321586250362274018648440537775510936742911333592073850274004289295799420356599524548171457579422097853819952762186098610360465861675714245536132269099471379020699618312963235966815609368643406489315459789917610154866270755652928601863809206635826069582013277332117658516505043317705281853957365009068409516455880335267036174068242436341110750245745750852186028311728596731961841450859498908569259657071279778684063958766335049609770212442868229754475438866372705637817805168328029307298968322381745643018369358879984298057003022388542623437726787371035956060801824768307355702963765884671144683712800474967054864506583486920340166930418603784169930561318214139254310602533211938139811502108387907853909544592218892658425221854203826569201741593785669851340782887711115898756605099855314604996896351732807002909533977488430242853864130837645837910799135274235970810085757412748000376733153099586967351030088907523913060838453103883316315347704392269442203376827001585274734514715553936206755540296502483479944710292625663154634700479553786132481393960392894846231406504531028228189430435653950638851412886403250624660283005621382565594267344962577031315443276427032772085225766373947418561330458041711804578982272940241339594940294986449436241952443415639323486254133397806118585098392758858690115510498363626487117673328453943758002103641104043268499442114712686596457947031335477341035108601992050526212168818412140956221153066607293317870626577665409126699255852751211233578750324522491486953580716474305771962164653966518102953407919726834808158465757076358465021189960144935140886228897213888916051620012699707674168331726194687836202543005232143063812668683717960091575694228081959671861670532292086397302522924301567086935204810378918976687231919137898985108061888551067697644117601597939333527975775348851622208196179535934256987812110335471000833051875098554389852963650322057968343459473984299452520708769845788083476338634306305168601894677406607505764867494035749007689877510882918646596466655204468253747319298477811577386813283488666477337588192735204166148623354079798585256985098038822599815402546887207765785917208064106253383515291018257807556219727430685891539745092571052244581520832058156421558360579391065816737808006357639613864152318660007913836250504928916353422112568520457434545579660307689939365537835883474137333097149984993194348923634938707416537327162788095990640240455920019174372258023917036970276155717991423771382183715810479733975037476893203761352215817216555860433957049414092924684869667226972312655116075596591523219645537216046835672620711533977998895892284469721462370374125919330892872993349920771482342294161259066887150766321646382976103353174010800483770846645998233515348409432319814369091906329933869709421694553171013265325597039937366326367666353734743024383631234165115593045487072397439194104272343378265254811235342974878447666764940350964249264613061795533952742386074145716251674160227878516309307827902843440145791036744316434153263477443507295439549315896656756287332507785973959808941426043684341848084320150344099939038791977288468445969888014141445704799509360683900040586330682761342535280483075774327537684701794146879286080446403492723042812234412543970993343662026925805432813079348733628630893836248051424755625204667791078701612861857479032990203552647597364818456868252685600423160478566749038855642934232777528607474897734065001026132232109067851384198928663450940076819268603390790771860769080491554158528352500693101999867649789241311198953253459389807054123615098506949083445090962177946879696236219925484362601621791618183387971314655094707389768656910908508353865337211841404984513490935827195235487648826931866304187885635418776521445222038788524528881482971607310029339924430092923944006364918778670092656384268913869108189996833780185647669703716934042287289625909814520537691734337593667590523687998954890210023289194739302170199404877925913730742609183845437896036841466903244387073324149486458171725104305366541367131295667846934697579920378518007132563827088684731374101811363893098797181300684896376674926310267991485619906184121767192796118671974239374095917240715692343976285799938144900762459570698413071246372651029388952481213073716874093845686827782284674902211886085603571029129719502808729451688890804375681929634181958634274532084574470537621482680536603297187065276338185673120386395373182851837057771002200473569293127701906505455334705519611676496966514928976665194376835277537999144894933259798939955715615695577482307426640117602921657558056845708006510145244808710574832557633970036661458335867357093010857132255569476392315401756165419112861272229883615885038399051563053465990033330519587607536854482976623869694467562210889889724381519137189207684745495013371815294231135901412461073383278294211305763222395484823436282158444392485153783835659920588762494528556562628119334135332417957598055195703389385100487919329142043658111740634180093406338388545455789720546753105554362344776059825891540327248445226394245282883017059044617583891897788434126779214265231263091093546148594159492475143708935065885755338432808097478905890329897318786237611240256133244322201508389756695684767783674618142841215099366059908248979124560836263729136903699619768911461990165766407276047731691443854477373303339743867056118397596269653339545039034115901611701036768897331468108629512659302657838537321758742324267496808486265641643297993957489063608236356657839204143644502841033745040479385428827816613838342972116703607194909406093504799969189191895817479577342729876110284226886976080504824392382285092688202666021771081561483395853738322501843916442144440519902481027053068657285503270409649402107153526596223624712391799630289208843223396881047554106482171478456078235951942998833891681104405443466725968169826626699837064729379253110944826307486295564016443531293168019446247305651678262859006578714984338398948767979730529006269664108134302543773780765153377443052660064440081892664575698103335343380195846619793047740110121490053551756334227854657126820971688661044362043918426735936981470267270686500897364055187347840405659862694964860900093177839528624043581379634615747814831701594634765883569159397002534290011335708589727843058316830128520477317915712589030636882976730473669555717330651278969903579395182442996604311370480907915016483549641753176071401941415069875255707539409114976190430362876748915333834523189115061930449420621759930211748335112640439303640043782514930964054349142554894177213961515073466900245063366142780959185423548069118230740352771667518072026083437024136042412223610546785844661649113549300592379241527875775540088030054947172327826137396209366569357388311848841019176169836729166729487219546090998188152407255327227655656615622609699532681596888047287982637969720467790431766768631996047829928306420613358678249574321023413178680816150992377316476594802800632412706327811974767374073154993823058905561128184083303140767021506685969527441185713212949831548510919412668807133575380615772903500731899942200825462513774685587658392968638598063185005288527108111510671735478399942301970995054528117833296328270538766133196719623559578717989888857801295061467579361542819220704604580162421303478653101345364677421120410826776131104291976094002520748256188834008847508291870323392453013983514070827667206842745969049607037226939333914209409134171266659467770085923547418019393887925223371641084927347767841719675290592153185352065021216526426407777368797263270060182530945817209810464869341440296180237669408307932098689913869294083430714309677820716896920952469570093507468934550280783291555731968683755946166122472949287254605035969606929023890360382007239162532080733606242729856462216608451965700649167271838068414877954302979267140062905629145106866069319862607268960815555671627579747136146042961080942739727429634804797794466941889121729803616790480167434461305342173055361060229437633922340465294027631547004634222104062870941211760341935316583831020564411904637281612699006173981843088082298437016691959888786240895665542011133943495103698149557956808410658247579250570528114561658975863589137570667711931004176980116186646238953384058014636802512615580696389796297610881606596945548451570979085044189512252186341350362898171966951939897590660421118163626329669091174787254728776407769593274807220907481356595213254727662869312841619043487835064414242279259778649577005450627527321977809802565065607299776082601476256626994511153892532284328742236063388916268992558370561868245797181974214142266015207069241475976312112243880803911028974348293608507775697259627855784329033150834290126962704730615485803105954857837398060193725110640638695465361902052527984864743499701781074241082243873019430144823834675759087437058244567982094329840019359953750628878240479201398255889497394640898185741114730455258873231406373808759027143119878140286781996789229769330184547911214346100519275472936648412636882258068893535302837069691361614993822858956287712545024415993723154655982437500438224732976367343467204816789382302134641264094285608298247952341914927598409297995336566416853259388818321065773895294421571671334380082499977123907220083508780129333948063892614363242712120772643554691507988615848139144710298809750976298849539366489830948682229740255435496032932802567144699951361168180824712452543228663811253332374529662290967337057044776537178278947231343091695857873378450343664837779440158197865038131896051878493188482892389226295705553182576088578897498474194161722737746291519607804110101414119694039898558706505311002855458384471892384240468592043798258144477428442956128393263631445688988962537138309481178898995494881940685928228755568974389281705924231429039368071076866022065089195120787418321734231722012505404690051407439838307170198297918998647673980208753086935874220027114995346816610759668599272564444915274426274948288362612386940434902735335864153151965817519655625856070050146464480743634910706265471912080908076926427326255143475205260430903396500583513048591537500124473074513539876860398488465722698597132485403904122923078458652174672143418358435829715458148080364385502138790438749993243831247164314199869760607911477504991730928316291808639466030881238838095994808926642369762462532940579022614675974631473167481352546639640727500729183726123681843452718165439057653948906802466857497202101377929826310840214547687062580335812666153516643878522337780804367356815773105947508425427766643911030959408469800100470377094366686484447268908226104275062113761818101180084731682611857394061576275218639746374034596839969466525703236436561535849844542449005716743809813109204108445822295956610921596457698931576652978234594209824763208782579500071128385989327082448619206811642487019653107908696479767751764057592991288385926238133952223486450855125043784181778017549614431804472597082546177937182176986451697858448762840249766790707940321804066751073781855578237233736071644740906835351381603780584617267658036191062103930272377813761888272465868366332713586421037625033371732631554850825592916775800905908570657937136756404955091970274713720986975363452041603919855938907553248959407463599625054592283294395547840990135724435271598520138718987835822638294273682916057918407249894112519258810222250583153704391311019670074162171409977052221752170252720774666665058783880589851061674677470395852149961004187142131309371822881933744378678915746362306602914172243464508238019590859745416490545399986081679361617521825153935347232979682448121426979377950684449476968164093347233769190923760035286098694731888546874729719739491340573205342464496801752746427261413339750224128977680545929369288145846890650508386578534299704607946499269578520127186358716682159397798418743065330485330216411126805680070163231917866373733614299389616008155150757387140183337900308350992928556416517070534026013641054738814659888528063269085992658000811552816427874514623527463996896412750965332899695105799045513507549749193975194741256750892332113693752394384501377705764573719166504295171284990007394345990989781813132943484805999838334986458344158905221348875463056859710909693013256983001794985688854660042732452957051142725812999545381326508068481313209286208835884943502632676643174349139326821793381856415947736848812483518906975142212915487143254936904711585126099904847089508255381331220028365605281558627811876831519767270391075082016957422855152644874083433994271369333698791846259152581427937788039324566639360856552880169532469446814113919050555574697659489881724093856943850224309380492438798840576065162059822292420757901176456588170097323343697298990693761252942828830026181565492732842972723403362317553522370301118251704634474018475303476196879305013023507697222342901169023783165019770295333641632375745847097390598315718155884082700512227809945500758269905697941781178650646516824018451305619931541164433157232550431036414069752323887958789071459751218635138373944102514527135021852243561909391029753880611072560128314680845782871040809957142122064190535323673551540683466755910463936796379883133800693732955060647983214128138986201528454581706713644772443123749463858237324545836043675962829240762720991151055663798699791322092414235734814328304345076135592907386239278382864394021734814443151952581803705791032326108230110576092114831023618572872611300258794326996885572029727765150114570670699106338471042993776000936999380099213413920460095597392468144640415258031425081274563508357874338391557222202160097316374277973659901673864267319314663991178929967052111083944222419914561684306405506331429716701571061995689614313646961243342537272301391790393223350009238959913448121298509329076964477703669604931106070428006026505743266816857323489582628103494330100848944204276249874911253540767089333704827122849230203178098168944215717785754551933767633085056634354142488844164466234749644060759089730779939791348144124666251802931743446196532596191489313834867654372524107241934611508526901544797831561198111632530890805098188750872412880073992999658369245712754809625331102863176108702594349989678793963496425188429082412942453359767771466959210028684149140363610686548622651700742492998031297313677611365991427549980548925433496226822249177528435334831371270235256547484651441385486179145297462381093230762585239965115449372763089451485116716337146099431334082763648022654405352800947692478221518369655140129549076993628688727099113620235032826742506802641345500628970427321308466921710574598748488111193880463568009362472252469882531921873457037823471056550164007359955675419009856963697523533631446630117099344614431783684410085088678185014584058368530141381907431082592802328048876032477624220062282438473917620735569094702195993309930160179226166001488625128327475084463676718379297139109827481650432818096374935343738666794223824974298298141267597741304837587334018114978509583155605782326988037693803615121287282886847553423079957491467010655159622256133641010917164027860850319709407416169500577977077617427678656187939023727313509939249763536279358692403544883601208813550410763094651059259709771722907629404303622633151447659951811195213047386731114123205962052074589308063033390022297825950561743812654421001028144645382665781651757128316657111267373255927324551163947732732147603079005268640167035746305103552001682845625161296954866942625780628875131654075703325405937249215487931625390144415616328224010008867832454025312557082972966081160089822567474171259189320254960065701486777200796403170222412916305301866284543028576064068595844390445611941206598568382809215380532427477322279233356788862115431321593429006000312663965051024333379563773364535382502511825403103844669857656680091507515572687505146265652472973576968729611926642797300088876147466301225396199290469146781635115339075389441388223975152271040330065029098373047466156938954758490877117365766850161456512451813541142859319748421976345333104002440956470762076294155941159145182103201139822375076268810148742861709063842012146689678121367371444241023126555982267733069187882391344163896281035248036582944555637374939938004487283938484337228084443453312119030707884800379794522427057948778785623050686343022643329564753483843252789373908174639260958855093228099663575466536435258851632667761361612116674431029259425659064379667321471118685713516953814944338018092763527447190850997879965224533110604475117029884594903371375307995097405164431793034394302536208250974763699553664278953096824056914066616987415139621492803508658263006287593720861850561546583256321995470686748678957360601630235684706069930920274052020251536152552723177686566270507434220032742838679313109210133327521181660590828691775485500319229944088563331452919328912271438882378598186670151359160890956016251640127556388246684403279108555877999187529163577057520809917237701869261013595747034840383335110024498783655415386846667879665879805390120121554332576116010687224665566250304867941016153794251569055841228785314272141712062577783839589796237175057654155586112760836227352281060830825566724936765360692000648667653043849436758827192611221115598348208719140804732031164560834013617161354942760648229052251303712104744536988844605452710183256904406325986710386886340646139975039348121984472371201436320339545869385253245023650025012138211350047963061271657167249796179430871411790084118030183967130978007674743112934227557751102808769537849323689171321132104108343488027599981246342459804387391272103769540349726517952064047568571046554574172878835886473405307882245351682971782409793376683111572734448063429602029883920311941290624871986016036268251886635755550149186558883123008778200255463976436963982779756114304157483305608513192560620226177467037281386157103578033730064161209531038550316525455164432253243486753908757105008444753738800809874169136883126448817801956639813250537185973256936764669564723519822089005793975292721315513548207368207060773523863826698044490889585762876390620551619166831301317734277791465675452337205493458579366849451984132210284494979039752281141009055616745683218373147066617622810359064076148508548867044442209238408529723117714482269243568853014872269695224343288318096693405995925004727669095646956739566989552055911727703025387727918002216147879802609541964089939560957100486437513430615714525527305178142525940814926091494979376519334764315846933961128309778218771692327583345982186542408326657357837957817778726184415585035389398049582442897206378106523939932175270362891077286497544235876159722197890211599082735122232718264156172807281251541727823672208251217800887187238313783064279017207510970801296691504159446258527111371384505171299129163569922744621908121019363962947189148209084474532175089076069171115344052387341156378614009589713541948571344479557810941102123299009293285769115970326084080307862760117349576420098649646284119156586754012111604284303358684490467688113680322017058901727139373731367534992632374188394869944081596235787718009705155245990160356664785947048195932417944127024167459895670189009691884822152284900433503702546547358844253177616194164033878870404257970636227618792995798864252773251620251434475322798438042533548858439518864268392817402685594903880216726723355441117230091029296111019835934940322312883362391825198474921297252112296024802717859048072034364751040362298124654162198727605477100237957377259481092497967424368997907384577142785589656356885386963963822465455557886217315132980382552100112753644361817596635810174333689845119904744099125073986432407739797451474854006526293919846045057078023177670414172896537371177747491926589540419387100070446741941139296059090462681679266965865773935977587302746572883960028225615615095881043428679212078053676081751481587538599298661515049762742041925925237794960622531600397457495504232927639931420122061825716784054822272569364600897105467124506620610562839571046874694656039908484788171194036479143426104387719072262951210774595386590037161814364466490260053996988713528163566600977649931309871911090037011035594649751244437586733480019682255979044461622085138625167575535433018609436600557497534805723821745597102497363600123404204754488665087995562531052914125584385269061481541432167381141741244688120098185300455303367590607540973526563539737118372812237095611013732918109534599425727258592737082634369853141666221434524635998051382171913125791879986965146309232955292336708260251004731309742282221166612027733264245398067389777249654526312096096780676683329847578933289282885423007834911438894052567336131204370168359693882980507924339751220127668912778314915945105186490743275774429741349995953073165275440578804893907302700772615792601966671871076056902364064306441229663844814218313983280352827001414905446893098436239787707252227214263676981166226888799489487915550695488715636088122695525989037893874700002429119835419426508800859362809621218767810245240980670282428956641184129767777965334992353136471218312604702614939370032278407694413759543927657685199979176130988810678976581416337442714764279567311547694583447489015804123796729173916514646944050940211121638729258702682608439357903309198384687694896592240232065311028538941935771267374406364772301109268537180254697812397451448746045655850678137108636823151869289908850410044684570709227073328186033945297403764747149575824338582341127212997404906191732112793305629214362998026631060674682523614333664266949121415854923956439527461294683537265860040084215887222348730640195571227238168282303977840204179652328283164628194113120795652818985590881490991641878630766643507115081338546361822257053651567301357954107801767705259419665437348218505526141067757174622234223366113441247443565762468061519490462327658044338194125112929997030406872369424990279085297923341975261134917729943056777943118342153184874538692366328433600634904768025759242217766102669092967279655969913905722824436513679176373802414781985561182788967267931178775384956252930492615023977414176894515347545797843994659797653428953875136241428771695585649646099926753270045600440014748654291433610960541623139927236871070518331349090914337935404576090410922337223298604663710470615987072925234784826980298923799895136798684807037414148491681656749561390359198241369970758213642448975965510630501054956895547372278165295476042988490713801795165369511435244917435438943115966726410890219183783823649230924561875399078433951305787700615049973647987806196147953205519798369421354362567335518392866330179657629596446758440373257567693464031913617492485285979719630818138670686692830731488424294213882025121767225927053032217936820383379605487167235111600766864026927292477863478264700192656417601273831388741826914970858592352111597932334862770256627654467249403380315620576603341686999289141290353343148445218539131592214496129091404956156438235529523820679258099145359419851811606653414572072058946410892682298967347742739213738412830475491138026166022408060106958360481482510331161358255299337005338935138767970859237799166465527013181126688308784917126900018100684071227136753395485047887715073980615371450652578697662818923751922022739196820149369883154189552913646964060455909057969980796113633635207232236102370644457057948286422613735074449995712088304650570199436212431713167110433047184078682388421887741470331309504060514696691955012322134126426404918341203973319782751318837703539774954320562592978560161024317024844778354962313241045053941827565893278565045408917590563002351168054694866368627789905719927428778101298032457103247099731956668898694323463683547920215871356735331403200798917587269147724481356300409537176340919587090825352783638935652519334964008491631217276229334593148197257678200150773948332478122809508914466259822551045246686346809845919581713664659616296387033280878987837698937279903557864456413584301310473741069833561742720595962979062108595973769610140620602218648584731987336380085295988250765931689048565709307557326793025638576184751354150507224210427373554881710844288672737263432612865246125126068504960964265125938560988596557803156301124470670438427423198031513949467101325798840478272099964973192664724296535854323418696298378148061530324738858660087308699055597298636563418635688724402019617315092744641863016454278530932523753646174823276127986906215108729492583335361045933816227687072324410191407291573058450987169934019062762175817114977100347218996875802867085070825676924370390700095456281753429898911027967672654157972383866790363725061601742460427392738306650921214091802753185899218487996295540034465296356063476370529365905933642696329854866828917034139566366713428860367263742708418892713918972020919697789087162956877027377693129736266893242877653488760854590753534000224300590455304718924504269463646286602022213973593396175419052009317047618023012358979055879834586069756410853709410451333474733120586651178735651377094858120864995259052029334744958675045887894787669513305709923117739528957467620141280401852492006584273561864357825688819398781213029936946673859905234656796139350113916801755653428875179710558286370577278841214285791019085014380233595803045724516363569105292086553882647781218018256324149183042594102354636392951532114437866652164139720165705430268120440376588227329540889409707891248360943234227004809007592914489141552700376181707897397078208917026665337535217501436095162757309992195910724964134954563668444593385726592810225971986078311168612561133228696774500485043820377450687053608131873058872195612305569585191368272422938485854438448758281840065288805254546035772120591754658974037247560108621629392793560826079809367151954608442239326708042132239893327420276397620468339463748367019330196167513726560039992676722254161934237466015091619515536237856031928754599294013723076754721732253895940952756381316611192361671818078871435776688513566077376814476156113153168867501128879819534057782494962993257772909362457978130935611316170790833840934410178599167631832603625360692910473139011877187179874776769979669087173047841898729450721996017928476430780093376458263611430424485911648676838472640226111352783237206113009484064300529263334701568990681010692649634317769589467013337682152613068885863433294013364751087950799571786687106925008513713311968128214209261420421608945415608120643496077835025454148687783487360393436767195367295361027073455822171570995107142568180605281656132331732973747413303597482708397972936076544882799247346810308213497089083076247188195181817723713648284603249223333170784102522063547595116700893828081827545896899605194176411163596310976624367377821506345165076109567924376627598956882750888357285520221924775217856054515897116819262809974490649547776419511400874548670889801270312973826068705981834018048138654950439932563006801222766103836476579652883574490852776130506336129404123682690817421596795670888216385281676790641559455839908080744664718968017573003350439153618481545757584056828151524792523811680075968681540924034622035223004625029327444558123865815742035379946041683063659501818390747825366306371444655199096181589597223096582608915504361502683623471493971900491186627889129095050474790352935847527705798707386629880294113907486288054453209078965050806798136429818188514690178190317824675748837276205619605901986928329955906584894084422679369860108484960034624604994107655043673606997309511540061587297437659232881481762046901470504263839112043183808078828202000845740367760940305467621416161411075871494583458468384731376704977724588552427909939835319846441690217874316289653601161018725343613172399248532174140836087543435776092984257220236064251495492590198088427047970127534853742536781754105756127562876854739789733154738786528857722800574014971689648644002066494359099224902502527654555920130320394443690752826806047163081723616105381364733459778539958270039240634548213969676927283049520850065790501283261898536952055317223062218360399837842838507375053559984565467966553919730262899283348807217852090229482702222692297087647575896556366227601687955628985828118306884884714685166803175005016531803665694747995445734504302712151421819320092728115881145360334186762000086307033690355987610453103049903736675082297974312409803991218569819595640040374936470950500851914238863045189135383267457141683617287122265276406601758736159049520960297477792402514710770740643236032077805070082374453033416707306001764434364311026499191215296966675434513903958470882519829614496930728409068530339147978331136094900394729541216537109471233531264792024066828012059402137406387337263505494995509710272567333374686851733131065375154232766052048174450412008080068942723187216518258781717977349132122846492064103961373065582767782589350658546796788799559050019869357075979101425363672007181126332420060983880294899784743008262911204099189051704515389017127366783574549033201952268893077767182492673281645737266653312191744331546640892737170729640531137843151818348218715405339735422375364268907098790000101483016852476036434605706799199699672006271875748632311839792903307239155968688063277475837303377083068176084803348685364734147581651105746925508252570723084471571201599088713497053138962924061287799997912975977043680070437415413890333681119090449026870566907510798098193361052004158388855160178396254762199692577994616658157801213574084306884572838395534915117521740887848678130320667309950410526902203972142975438953925031658247002934469310240920814294933992468916531593142971393616579481587419186263472498377425847316000562400424647202102405234798834074024173175124630346731114258329896516180626716391404712676804530795209718884436981567688434114936916645487688577638423283994201907189906313156233213785059794829305105277368294792718323256007903410324764810181792773281802023694192021360134522955384491177882201904973779671792226471267687074372574695813021432949294154010044090161780654413021651093219816896975027227484461747527241558710163416541728597534395423605750718737287949679504358367942848700378856152685173065513898687333857436516502405060241776099422294327496301257796468879588923546768173272867051602948368522326050949559503897288363249116840874216551049127577117984519177547512666380124099208882085900306216340828299259629889685128513375643718887305371337110383117566943690858131149340220443057701278070680287334633867263056130890930050659069457974656307729636240921670035593269229057595535778573503009242218127352234086542784707288128481017157633177910386309392640614735491183751245030111201241812869980693766516438829466998163903869285767023689821552836164812498135704336551666983785437281147401648152090552091255480545471597569228082193777671115072208230035227787064471034768229742883719195170294487388439288655235228593862176406356005803334096173124488828535014732540034859738478916260637885994573628628548436127428456953763718515099675149480438167937060740051792500004280242664885641341107023939545640931391887022933668896253973806746503378408761222914781691208593130698170331264072841949280270910416234554187253610836162269279112225828946464814858752646684293533405932702342793627165689933471836846642671158526927527421727555116519875255186074227670924762351670039809449651411852198254419169500582217687617553009488634413618076318445142568787137808253029531719656949518821348041178755293798492392999148469978360735680110111052949015300799430894926805615864730588694987169451889024843252220696973435802329110124839415378191150778994444162886779376652456656736530990835089216874666935325150609985554925723759621259128161334260973610092620174540699503504972604288055904556989026182910807924564391652306084031141397826431719975589035060198601860340328902990435801706439797941441394909207612779577196187179026898365189242086982708257830574214334951634407101498159070540710617026938328960993336745705162268167240358101935953361961423066676180894112498020071465574608940176204368690996175939578790454570043560062147046731871254330982769197939903180962257997919838608643936506002949133565842425181541276981268451979959515211600263910938848990114655067742719781527862300769439169112212117324198694764561681538753936573569989309265349480823164435080225069891734755265424913988280857320377830562406110294497588581220543449345370653231527376894572939409306710061907864246192314234747369099797744567149160379026888084510593310048717189692696562294984714951762229261696754636283260591332967990445389867254262280318348911075722199958955941072015596298231802588396999708540059372558104686311751530850740124075690966345837583693833582122606606371452600798052583136260806097313180868580807735637896110568552676553283745511851641143929952038573885102479024079055234867607010326656667175480793218669065638834461674830070245605440735130195578459609453689455257562134909565521897729384419037873674546917132953551515793342728463098344161600780730624037733851259443844026127077588620230961957715540799362488553866956673906502908350866869759306392034527482364487368240901976255730833840434474944381766972928489088743765023593810213030849448971159491218201054629431360075492915718180202258999821760244771253662254942248635294205334904605259804984075164576421623374255882845711769805607681702511728283471597481368898466805452108427263763379115461939257253391475137160788294625129998044638021405883737159164518963476405553491537308185696383507164386776396837236104396828065251599507366374034309744295196470497648994876995612533876294084079231769072587622691494535161918512271682181305080543300251377936217169990211262793579432962844566685920478982030027880285838010306511574243577929920636577448174604119439771131834508967766902502577620014665794467513700885714314206195867586360052330843986096891485778730672463925533789260208912698530643249792249454380223226337848616322880302245062607614213312719158704851878412266880961335684828185749638855426176035015893679624753449650614331680435873792172871527520329251593058164008457249634030043474637868891211949749766791971851182225291668824748999109476661227556435745548098415013397376232991951640665718259795699640147005995054580138370209203927674449817139172123483162426367173706940723160899864472801944375062184042737672273156547672390497996327227276840758119318729844183359545431363490859118866195389829556570651389456319407645356883460798363846733560728599288367104703842321803494699080691689542753780437301071474942346002611043883550103734789373591508549404611618845379588855324076952710191319327498876351683305638388063812202798906730480540531203688347052029335849986947339255679129266987684243914941912050001812968314350599797334220203990713179467190241306903810677685573565465182689580137571551897781297964621353580224824350919893299292910927806777787363738743308888163338097947098166989545253157677248619775449785015825383295916708039102051425527811865818306171094443008211261868256889111645202757703456672608274863318547987140096776021184274114621854799904805339406684881038646233849742868478137513155615509137555025745025774107664366037564189130876915374763059474448109360480929592427989589911353862025755354571108319438992817776882746622225822883656879350167418990108361241607880565114453130588641233711881803012775257464015593996877103656278991738377927253083176213328806306841048269018526146507714540819609257613770557666552567293393670533992157705560750599602331821246953529267824733927811890275916695116760009470789420133122721045655338063469031738975653119859144821277874074606935927633074976173817291269557050379903954913402803854428626794260704979132899597031954052305070504361259290154830595722971927157971302396342980108546924211199638095240040544476834238831444094076595617836570877549469902436871599340335766405975147473939256470782670563303837949555471075268765974570846877677545323166435198131357014545089390882288328707927682598956176484241476346274409224638449168348311156644827393145179698756876424890487840367497199984152104999142054969234789309669707534465762186751116785754575569417500060255846122043190870504818644169262025505883266602706505816228767126798027066574514788564202768182375256561841142492194627304073371027891099371838290309376684273936986169582490959844094714040903981808501319927352451085340896121230780586361657542469212014550595528174014747352281511132088459548024250870076997371413839534767783890805308920186470588126258813247480035663936845026747035036342075465293345737801132890481928546088550699021602526740773833931461807504596293495184693412771953436255956555733477778969752719714561893202577834827235314818634428185112248585052086654710837644070359818958931757822401618373786870700388437534059710204562242672754059629798994078962267218020859225926332107082719746836287427228264252304826566230502116589786088955753634431116539990041697493753838715854128915273428298287233089611256500030767049718281201973054185495725890178907318051249517774112208243026523149332353817766445386119489213865697106866711178897762170546241576079926306745636383472584725820762929553320507050353233862997941031876020815416016821478074271744223726745255300266908094669050274027914063475798073732624922959398212533772938713671408837114016047578755657005850230606930988012120519442066173953179319169454370504371324715921467572289152029577768019982606525044167229711559416098804610471090276037209322386770812939481213933043622895946883401030671379671005237550890681302737564402968259556754707220398976731573117843664054170730512587783874727510459862606216622004705003344054093091783440919474134586572217552109478828289851341756873734555273820718290352088174522611210041974001196254503561744240880056400190672915338340311975992071266792644615498223510821508489835137043630622145514383479475870873606686417013303027333343466586399312598753107715210117820050521075662166202707380547474415394013063380348393894222249199436094177613234483370959354206475024726408226298143115865745483423834973830056777450571287394111885570866803083410519147947101088768320583241866198799307889505684357252675022469274206172327789419271556803510212628948961573976918604407538707156786186321696822582797116060528973126557193786216437881616960152285042160568403692090131063840372681678269091545734879579985264509049851428401833063070969177047192915916074598858958162102089594212232722212995802341616638333440897004886060893340865306656020576888261955321935498316673556711556596890409004825511691655834820366711530926793430962916324368172960716878484482900562335902926879677705238734045129534726537708429202089822381675855810001255284229475025616931222359579395705661701791008703685953983061778205289210402501798648396895559525889598829350709984433968652770784356016023419489188217086961317367503626017863709503824444527353970341763371816742710531354345809634423676270685305213808729771363536295527297424019148879184575777475583637295873735987257574483679583778793537988399268865450306837251454602223005828764438403848076499330574046536323932752796290096831302676841282208932908867358429927906575405576058959617489434182262343979921834148851760149659016192638843236422672723536771360360835708027755192773014261568494774074863797441852507757540843767567982005246372555363810186983332682841394901005312293691476638587310776329545044398660013266003151127780872822876793729725433097878570012377246698111115699255536321881192884757377272208546599268776675206953933050114690090593534202766166915228451481684015981940638429386465272558591678441568926826749585910816747724028122221186279655667196329481154337496351603138935276301208769778637310550777570692089372923511397711082840103744230699347726130379164906042658732115368998023560531295015598115989775467012156102745451712250595150314711101252694023873917989639283039918744890275647185837268345582888950027018484770001532452962771949587207153548162451409766226503321238985025217699188912188950847569749015601843062033835940595769003869851554460573698921720828112174142703426846058077945348576307601497886550173975174115977882570223575882305331983078616091685250242814383823148111931651902311935361684877630230338710235976255145629678055523195676549337554177475911654203950368757975136333569599237769011311420597263546329418516989655069814409725549954704017979927429161679398691578458202710258893426974820712723367768111214135528594354171191395476404342787727217724978137823467657468812181043330485598233273319716021586511001959820753142092217971269794395927454014672529749081764201982287870595394689066517877596177086363846136922433852883628800980401184058382528052640959474791352455650944147412176838399027266515964902921192202132888928175197212410114706597495689885823051158553347515142014666803997822166537341614109730213217613730293882631224332536815756976845766578286375828293221848122321727798416874358076157779000195586317169870868517132353941651630870529737420503202608919442263049718841443850946418169508657140568904740879517087600668887545139465969028664588123133399480396609858616971058250741982387591174576149225695259543220445541949461042728738724518558708429104656442021441432118790855713569506656856667164291375772177910091359121239403056758899909574804427708432161327846962866484051048581484893727976992921415011871225662245310582311054980828271027804062500353720710422114563926297150698397232451863274396872395946717536401081032494840740444489448494556480359610570439106303981585675370383288523183023872603232980560444717085642931705217144584041486974116202996452244671258189053587900261570901781154628765985057068296880921469636677843320408000089090365652098728804778163060988173680723827784015280444156899504176662989429302406865408709000869960903230779049473396693786455494105229065881834916443780796945871148103275116267963973133253400046050518318170620154513144507773353058754863685289268808898545430622762233488865386605773735908381243227068835104892287796810874180933202136799539358593014638012902742603973935787172576493626765820460152252830496537060499067319390830509259323641285023271636316694385115670934011148631012813578086960886996968767269312105699158364616440866411764263282806144297333393475791313256538139112042733200163660950621855000918699470958464674527958255288613248804179685293399688121493607064606268751587262382331191436369811045555339299515261548752711868787038058861538211229764147145869566222721792710810266158403896220456440294783860892218248494159285867959393741812934467030972624988788527621256492755789249243192106281129421492667122629349672321285145832903115868299688749224152968601180553112064146996399452400211299109832765217195971033582584729132844162873240363631821643152590964468591515733292229481193813670196527156576919769580466121247891343355580613899524767400346518782177705139422211388982719452844221997148091122463177594832728486490411616330763799153295758669029104539346873439026539073567914090189101850814266488014251064041040304704426967117919500677451595220704586315504337578432607973586734214148225988475896104587294237350497059411302941193142684987746946274740623585180608830606802713732160826784449052377384850124773526184222610812565805161432840929025309140553140339795039709586940985077353540896994307063727197397188795698965323173897834448909102831175999160447296257771077805511963708530996437774774559069355274599897153277070254900346241541439378232713389682750220494266879406605737715666097357754633517615838630111302619082014633595523944426082140520056514443411568349471915820924751224843428557113100339324810483733597206818241631479960798900327768153447903752848802333681135399722461694474794612365637744589416293545982136807808676030056983052019852193923541605644145012405557042930495908433473479962793041044317614244299311020921882057814292832855118321085883372167212143678850452239340972604175385403282485317633812112925902962954729088352410579499051854830033334903600352198185205615182238778774239557883697406830442802272227976793058632246314055975504305310345854066640041656973137476193515574906534933176291981302316610712782513788805887173944700045983589072827172651944909289349640950601607503431982993831787475542152881138846047171757213996661079776647128085090444064925001349989112232438308931546554391542237018065939876888459184539701591431476598279138178846403855470364813576512644174328825617122597798018658432213874489666415195631139003733022309536756879628126945590556803822571429040885209312224336928536194125865972586342842795940893923519787271595444379398676411976880175406424520899222262370717276366144996305851475687426840864579018054056587356836862563025837079039321538408175208226987502127157406876783168094044783909946028478621371181135621931715276700461628816879209934211334638471513379120822459620101352331586736324076224405353879707723452087517073038606943840004977500140065570445356577420906650253621112160225479071923420125977327035753292634298383764463616976166333249272148833524866154475041832178485644196066382661727700026925583831203789082001672418948835872283301634626673843488537053244523829362322319531377049189123236665646607119156393654015615506604460385084665732944178329093537347546068830469926694153112806574358616107893007306220003467645059043393745300505601150756768827430984624555485905512187800013937906314949475714336575518804103321871012590271135028170123620307347316396628341079627516719489764404292635494628174436023275238395096840340338684551395372610625230868121402376425128182599033673173850921829825073259560556310587642629326912018684280653652953118533878883113696840983737776671316778484775753472593803810984118413024781510456128296624726732590850686646086389139095238933470782435716257004588840405278755719372143927040887070120278312690356797071231906216766260266317292951389143957820809860630298288630034130466980893398387120390648507016355466258378858727314575159284348201043794916388122405988359709267778782398136563590941894165076653790113999459478638864454838483142013726065222009563139217608765689274791426114982996847540782124360755073676036196288978154339290350206678104520037019942095351028725162265711422296549698600294360312839630945815485852958605327743916425201177128505063360696816435102998420820476250874396363542778650971344058470949803324970031165999994596810067612970277330448888511617935414633655940006136859852795608566947017978458868121369874425380998448700386661372390916323531715926253612352357740474093057475219340858528919123674615365227170522525855513491639395105645365680861556307839529292167144774128741804802512442298472013957214656006282912684170451618255543851283914253879189871149329083047184542346753085068991394644456444851008623320398169589882095187699122436244787197810681021036760444693474228135699438003597623602551490943170563286196387652928450593162129392029932708549906359187428439807777594161128790323186388305152287819002773291048028414944460575088042699761663612295684849711383670743537338263239654255340898828195387388437961104625157529547416177715235448304088176313876292504255223387976568193791595255749186842667442025981759179726161567048976414778961369845419603668562631752219088307774509242005750320174526679274457279589579538872150837640496177849105099012079580693060005491208139309903918152919481098926589526395955734081189123315151430563795432974850736104661280053956628342104902839737905081959840617502433231928072694744677013980809611197658369079583613453935588265273859034354123383318661072896213058859850871653621781864102551979229909438789773123080655128673173637460205593755896865356180092466224120373007329839330749740151146026967676356998343041286646686536464069314833639748325790028022707277271905617628456355252343788006335839784394682224611388260793176551347877053522697766994715486620229471136673007248103731505671955616824951843673489972170460874574018514892942345167106894697220191216882937714830381717687128891594119750597809327383236563385972565836244410153996885686379515836600812030585460268196612728201067913007670760485787031464031619905706856299197300968688070738463420551773047626212043824456645347663179406500964719013727533696651646968184517815287806266468842644291945943278163357885681721024197767741332939056101881015925269204554651448594599124175293502245381137993881937359027979472408698241318664509367485645996142057562063922882819182454071142615676914922024518702840056363836009754437949867030417941721898509376804869246939087144146383881827248964127347384656621972430969773830870022390599835845431592840222607957458701729326179306679992203209553364397330889236236731725718784689690866068215903650187991585267828760515480285774607230379105321757435824831821824012312275842474726680660749159172248172572132250912004084950075856412912835200208417870057119793094319700808050647691868330332919004396851857911153933449283169066437627352236975242393633513151237044627996988956834580972608976574808800460679821207542602741917935137489361648661248532338769342822838299094588577730932571838880698094291639919622221815228824765584475170084014069801676099163312899216472713100813402296536461729686472430342378149101071848269413339965854016075519594039708861722809969248756469378115699806419513446982629933673374275116619874141835179524165190400248288522512282581541824837537055426375489856076785514112947682144441971867341003517314531973114555019045866791817349525168020208589853794956560399249871600490086986602706231421753584434018848625293451942998599561970747135956898962307756965859514957652115319307999148386997476345330781393860777078805256007528203608710349070486885974537214396636181027720180999513228862538576616350548143766348426950146765818439279683339611954774406432354995808099860361325998144016977046789402586968320928829348336938003368761226040439118271657423318991067257156486226175788173510390207113744180887727308423815268339355046388183128578449693178085928180076227818839396520986505093775869351168370239375660099126958671430696281624794993482971923052424698305107595236412168232025417188994832957712200407041141541698734769402833160118197606580807780547375716459264622152010587572972666436215847988655607243258884285014136812123214156289798852596169450196221115018124161468742955488146245099827296070772158029354652143647680754677124398844384917093152956202707945152624153091779368249133297804854823312505824552464639962519344303706720020059953803590742882057554946195920864803436002601983798415689009591726484648430223042879185204159266598278876301882800280744388677039286768557859429405503356869153051536672773893486578518784010690269789733683208824872711732958706302255931625657788701208816920305771592631221318154041015232799910840906986530216966105937663299209817848299947111852263155381554426223546676050979698796720551953819741695259922745287120561886262935177032639038979408032638553094747444078340833311287051297074786774644911929622441323909916562082865251716610830974001854008112203418916891830982647700775178297163008174880090581461794877535550154161623268485671912349142718439898359284792451017080424769670146581941015616018104642091467537525791511097498632704511149471124071971832700464696354356642615982243932435656781208146006736752735895727392205112985943846901698803837710293307006643425268208345185544751694787751308272999917520917021435047054949376863886061838952709316501588845866877854615537748299446020894090697145424483927966780162955926743554852085178053430431512486843271070921293237326878482061386619807637848327898740582051825943138090077036012812535185521000757096892648597244636439371069569398427514145118149411144614282384298769879445537699960709378880563603938448603064731096837514431967848864653756318606094694170943619092161197328422191975119009285732048808348988555132067906909842478087285206084927770150534292263443303735966006777132571968022262996394442905467414991299312866959321995193381769816450280030010200390084644271195928635886140353712490029723535985143527001316034948367465526829461365241076693765905127419082263724061409983316566905644761235667011083224476815947634569590616387533508483299373863722504240569967149134401336413633467855857875746031508080547422286958363634716047353557019205504223356439829421716339297010611231702312536500480543046048536085296455519120621397774969291489110508406839457382538358540681464492732225433404485654338057215434841454240740036574415857351569281501994726125430759175918296190049743342174498968097906540954612191396243335020071964798752938667055828605195256003228984886344492900590208387510950533708584326116173665693592525013749871970014017241832848015390808633975223074655521232466326991967098082112745731717497007570413116722796079983711042785725534188518648159274198287177145793217184271769449557765898069209703079163730245952486372372950915376248592739799116396524123932807313897174735847904449364065285337374435017237149701188341998259836103757055920893303658222099151086031093446396792901942885262618538012640498369557688278224842541547254753913150875886929618882495248144721555620076223499107281703515764158441957437120726872633912581544557794973419633330045290140150664108599706960252547404146199656212626410935120489149714959032158161945338928513443115966961241019658097056884859797158598887142918297644590941980888750039125598442808411361033074089740712328922792727392207040983618895528729136959057395498747051603991912661593313533014006367473150927788088660241886614347738782352853092326728289545945497455811134504184916541124287496153644594374438570672483079943705412705607768549504181500367345740354147128118426049733932195696201649991767914641897210225531613763105211194365645632826067398948920075063203495867416015101656930715559908676048918634582702688450169957412444199854647995251084322315789015866464892221943138220530610230937598870561419400670062041257727092600065455917151387342718184644749775696507021800059910404904596567752903465494801399006771631329828667388534260121107738021727976940118958321231823137525752154178459099256385201795527580443315762113416234177368335548198853980772572255306038639682254082924134774831988521663649224892913713080192613390355079942075971704338998824953217529769387443932096855410247804731005920590996909200117305576383459394746113774240312992790990683667082254421759153499535076457880897112553239986922246310450315148507080391419374607921735135076228954610115268562342338857512431832560724418005127475591719799409477907449988222013215983491959940825185174944140668638331620530236904486424168760897470818240143046816046871849931922906869240335755004444862297373211828510569191889946045763696636020240330268753755391237262287432026120798996626690163303317763180237773463259182108101163084580304901429849605208990957230996187168854402588085729294946071384616103619094519720414967677670110541394845401145459589864263591953908896620755394565645812598646081795020397779404943421200772225196369759627263097244686292446885049942698255721270966163255236419954391144626462064060288130809202279064344803473715855676134396029567928185304028687057086230943300402139165336878307976069148579286810827804069836632073097276287782658321745647410182507984558070023353545350294310564211475159512920437936363158877396521533699643413886226427528745947983406503294295896908652211995326702772650962243576916738274495640617900151563777179249768325814539556612727618564901256374867674969221821103732168113567067681874131223634068610303227910448478275634723618727895950262875187422718122650291067897536087391113859133793257898590953306973679293937678590528640608247129917350414918860669317566407914927634775049161777229699330275117973407831050591751218606142302433062874181439709812927211734238595596732575243391903195924931476618480753087782983893754199395601712912554826102918766147433904890479559118095753524156401445445813687303824659528080146361465020874431305569828389708840487519541981147141702524853646067206664806898103304942666602864241331523887774331219039835412513398544477171311768871248969058131361508171400803309393486326918417907826408364776068936751815745131897425343885767674403623671570918223716572901369865422446558417110042176023044551847866478102717003293808729064972812130840179676165993788660840238260530840405368473183193924902183851405115977789156586962844520576569289527660562611945273745062046023843236882812123105033014919890874227277859535858780863469604957478040384750179315064009996788998915653448451836346112003242528109865082175967331405529876129131209046835485525430179563107533436793284163526685007587673547687646194615382965423163383254731310203391690645347541741375455138220196386780734835800334134814076555650843898847038359877575904396422025079256147215430892525500198677999313253387756423261634851420315954664548602644853113763515933383698322914047670967145048677428375617497633310029693515554516546287470686820065172375415101881914250171648480486052443198543379381786145435314879878305855393974506677845242799938696540655753166094290290194282237978142990429290496856643427310483499130663127354779691811944753755888450794027744374822636774597743507017037498551820515470134084391622299608992636747943931674929304110385001921997247899302657936232259229652356227061226451388404647423636369475399313617541666275263703457206900464558551248256031952789950842350575989476748443196420982362496201052930962941158538943064328946814861903779909277212530558729868810551963902056313095052916343531583820432792527332969115315932118059174059635959697784484108087705359088569336715827081933330158829724647395755983675579215110984223158846470453078483098343561260230976718590905621971884473960909923416259913918862663927887066782118670026788399932068489341622032833849090930666806703023920662925396601403833735578117440393436981251368462532133152235752128370499903962899761009366342891249406987684335556566985105134825178250021185289209565407175521319003212689982757505748180667092630445355236670575388032525601654760604113719779892707047806781191154317422419123594689057041315933172387604498216820835500512365117277354642875412510579828535182274983201038729522794720954184369227211746385092128720475383095518489073109351614615073023241411365149749110632890211171505202489612149877933605264226991383825704371911952348194781831040306895459974524199210740663068640109878779892776874428871671271361657409179272053993840911526598341503538928827552717370533601697440363910742282330345999246194347372635467193701229360086451664766243066433942492402874451545658134436506520801005132408664448637693779994509613375010362554749918780674083381697160420770442880166145355363142120145473863549081799895725254326180174064493329076690588088546366159398874321315965700826601631601238410782901023194905472664956997046268528525981074973808845531869809641356871016247937041040898324602354260350730212484552377152420717378164661486831763937124298420233715217568496229614032099820838497244579720524612859372687759780035365653801350387566070165670779713821195332407080675795972854663017957133520568317017187737215244550752063593578830641810274957114610534232978961858980825556952785639612032942287836444726040835984436989355954568574678443420840864242200939466135478702637937577036611994757414034449300522735275073526056975005778791271085353203959165725315964159842729926418490829410000896645572653662164745178575148923079278139863646618390816377819125915023047156369363115990995970858512390149171333435062294340283342550881959427907437388888802231179225983313695457555931807241866017263431018028619553576718080824519199957774902303735209987075251129313768898131199185941659399302347545761685620041884896678752207275176807765473156605517009738772345810867646315885273932079211819199636352558677986134793980039074726802612270663556415817401431639400782632224933978772242650596726929539363378866013215458697749403205727408167723319286880285878134501959395245524467340255461582057747430350939604919310588238401748542572930211408185991978343168703726427196197188722823041963493130778847133411610787969966687631043465379778636784340659829415860688803202032369729315743666563537201064157885123351456720267797050288746997261859034103888779838823989431098493075310085165789257895294622089933325057620156704232157685186173516900395131179430743245635368261386662552064265041259283482739271518006556408013026785922929453150208688475482319587043105483177762364739925908025366037471076366920358568670737685819311661978124364327447520019050900689520832172481362934916450313689218975323842083173769366778943223484416591849308502756091736899693389002183877190443912169630003166968108955131994246573802811928377932366705350875625787024711996405525946632246545177985733437655796084222868493993098011897183524679882605327890159493316018228799187166582430979001499368264023475249151423909486160141250667985500470464276482957517755473915557996349565477727776348759897435781905325674558015645524611256354290389055639334579393381817710483050855610745948502193698266359973259318654983808166882985304371050825118915517201437597242574826547288975885370651669765693884389962738878326241838477762349307059453903767034043222118274588264059799842461984861296286977229218068226633416449066150686519140106395384223848173325989504681872636707526726457917678642482453476635023954399026415936291585246011568093498769022437507902987145636985815534462229316970869142225957427715472413226800194999779719185970668185940439327981721048943796097999607687526032646124952721223599093274814041389695022202446635336955884835835765739489199903258932229025748867023073788498391829298620374792906840315631034311955575553107958754925055249101707797561520142456303989659143630585353170865288325919715647671507574556044403646690778270163618783969338803207510222276521275304730511934195957771343096263515809513836499255981780356893426144244821335982196136655880723289169161374178400932135489224996328601510825541220578623095556455829298806894489234918982653106743696959658775692139723328105380328916323254582820822020511999159673119841526439489610668222225499134054788280313297417563650564768432384227732654611971791463788257649406473694804636970801145712167645907408767505911802924285079326704596041587648272822182319775214619330800686419272112095354204469798967073557750767581001499055286237994591230246739796991954080182997566164541946889490921308250623065959054020699698259689519880805032625856559934934983589443291039022374911908686075103193977709656750482433940847785347693528606106408803966291425123168405670691327919581779208261413616029688042104902396225188681713880061529858892571335937163271001562913939127816717924158234708503946137389161174466686104696003103037195066700222410498599259396925169216177602724782927158904517833050719733753172889960997901374308328717575056233144742394889824128933727367959503066965809745751288163398214073884546063408623356336741241963906921905895497135357449386432261079045744116923061819047778039701930992044399952602961315898662431097237862475680181249248284359596315858627976858028566538555952996281485076682430013890642250604142891486246703826851189305722323634697932738705124985027807351751558579196917266631233545109590712772614661898110400270105328354924374546395646913605230278652135255469000385176485179226108366723279546296472665026517873652255167402685245724133621099254951360758153531028392433596353480644890992904963835167581762628751543827567900703818131853883511045375154448231703354152680854359525816714035754317880020226602338119038990874176162367592772869351337289637262974685467803416476093943123480476717938947148364088269898393536770165035405512810900065874280478803922759933948088534105381602942972941526085441014514778046074114406104135643483672140689873456361233230996231939222109493961602373599881512870154706831820215724520446965403795352037600499851618651987676102937985426664834290225259412878018063218213365510642432593398639835765454738144695032835573511828337216521600991274803501544770691085202138995879120363277045580960867146375581892309751497828984733710330238858961675009322752944201321032906284289496916693214246703916061349338332819747183437334680845593318643402706233276698548384446607364737928083434462270796169421532061615669597416031821419625204003387449447534115730382365161094234414760322395547795969040079663684850919119135544628683212157767812089938527023849661121292760550400068147854696726954260301505685866856899099576828585963330316738988163277433292805084667931140711020437396204463457609651082860071926028989197498500690087288675747125403370496520798820156579024051299331839803070050190157005049826933063068747718228215944445043339311603107436297513890814746423916680535558389570294216936013866024745887880386717434449559972154007164582773734456429752168778634131651687850077976666172976910456015381901390185931318451712618874034661510905736891034783252501773851221895859137052712166996307252738551764923977612854702594582836931192088235304694508793788421187815699458883281834902487260237653459402211253103761231160843532436801421687391087709480969238148366734735609033719832400081773122884700697456522342959368852179252878287736122046203312792043036744668651484210231881746109541207991808386397680934253489678259187361287018793245086275852336329503044888108189918956112846521529640097308885933195762570593172988658053626890986848941502377570750485905312535974140368454855702173928030317248827140869669514803591767997529504816556673757145442756297521073183587974048166772410740520149664600548414980080258108792108621339705557243091510212931764839289523849126712864529416039427767283588208242801059448481294178005757087663445519553838488908348351771248744602935544735670882629413090496101230173017277762164086342021139362907142077441314842373616610764784139523985662548316767830465592629407112453587601499832603606210834634239609611580484580479196421517614938814034401135203433663779758843960403707252537311920943803695203127969478771387909752937657216815996288048558298719699038869662307794936692894348195429543627044931959619218732819078366526662179767811044936234973131841614996783354587766949150907208375497769140091720384823179682868778040255437925413190113682089933506023320939686800334293350143527616152692971784539717907461263462554429143150316905710271733308008383459681352369380332889026500276757801991925415859582569149681968324507471927556292940790953988332827399970578202976993598142099215137926172617147995091404326390168525100649322631249188681744948818577395409833977425182450255078226639021527009133811726436912582661086894006315110108462107460859542309503123335556571332999244316902899927513124601747300434024076930482132186509376974553024548820345596812874692772437042021842974183986651001273542452302045297306221461465240459864236800793704640388939883221279976914101983210035198792067498841217833897009869645963037229116938803385905574454360769482412157356154165869715556283322799023886650581249521479808693749255870985728298595755805032654782278139637765838655930843149847152467518796929649255778806425101311435175399886279919016975865199725664680647546547804963745931866571044304548415463267623827326133627331777850503534689472056008884283642862622328606680994422689324595913719395022109470936311894682601185300197041619824124186581861780032129816216160097061308200536812440836674493775131309234401214538292672458197843110766659372180572699264246974541566636752957629455743067555191366241830575523111048535576642887656906705686585529479917649123547118921573456363290203378501430885126314921738189312433388080450003629732304006191506096827555500395556378963117743099885666564345202601855794287028952779160394638703477650698169894990825283615413792942056203448440032828022442376681202937825898610809905363112213661673887466247752872187000458160362688705766992658950064386297578517587666227005948930485383129537695104311641561160626483521275215487955376253429487836092513216195168527600631220387867159076046390826177439871673633259526277475690352298910923019966322363521729940675054635873987598516063360479807449334050350848791407967462844135430975881962293150674070124294565482403729971089690446217916215849643160402228740589139073540040029292832469887117165450831121847248900996242898981518480953518500657766773182026877254304886268343525544606557093719839153858346315899626021216561514135355910146809069315045311536663067509200563104519561066205477558200015684870423967073966121599880909385086960636089573724001440675769519761245226357721506409154029315496510890598468494086885397438714693054242397873149732160898261317428332032731904003003617544620210542136524566343077164022108666491835292419483323079874620544536264415653367210853219382369003488620555539921776917666794750663539749625939572005323796979112304453343954616032367573866397600961852246988853868557673258239745132489481226694810375297658873647852710367306238606651331571235053648872550103928093565196067537400731207944642825941283271955592420637378945218588374348007688168367709240550039289589095075870384515502379092434539121849078104307354197854780068536488916868763375682591886698547074713672148045071024831414303818547570330630656775224294500148383436427093375707429553214208630010748214049843845172890450054160881148950552680378583590947787385510020090884568038122533634362297644956944322080630129296580998518519859532081078239435410584446923448672758503557133318772073684395385739783341515922995640899339800603276178778528546933853327393630203477445346041483149399973163992334045486339228113452433064678373522777380191013783697536126019300320432300264894127519089435889579680572470630370457991800952262762797839412641146531068215394935244836523225523891299537409593021386894465765459887648828730314065862890766797509526897660950489471562105746319709201524245101923887684016302075247607873484122646053863161646417611952475633167217412320545740811896228039559101554412020070603263532551844180689812700646955199495524588332529379028164669102834958703794414578681374283542175584415186599707867325809132633306369040412163712466682047918297679888265340648122171681589532673348675157006342957730898269269555723363950826664468197423445716243761684678745367067782419063740920604808110612855434926762249367937716624355056216365974633863490770147209364449767244855414889180550765515017766630256307798920370762371354747364548004907955609434082055283008553595570646172176716305396205624947523242264433851207834771306886587513716590694895308428197732718662388522908233455977419633495432540230856187735344190464582861819132144810522022733018940325966234947098512984210585710699971541123515002741442288992901372734283124303437723283465593073171654272030099812876195875243180838433674789262458344445823655046934215755888334097460912958501720558904487563889996576853093374193865992931616766792584480041156220664417383789351081305166687739141930339193005324486807095731270934003107298167269553679511863564384480268685477521438966157096026616662753840350812517077998747612492890485242669161947385709426508853650819855259549906028043534882273200569978709827437056132698780147120554962035120789131729259924528147246736408153187480855817636034261003271523442018651028622400756311623667747601357013228311367351652337195094823459962015968559125140773954609232369964974152752683119789670920205795574680361968829984505813197186388692959657681499616676867524300034657503130005483314316261032534621151397987394343942916251214925039700337645042971077560519442602380879871711629825086131517376874923276878015023215633559224729981415459314685146110432128900964549773831926230810901781865697668735676789377035408418462646828936701063726056224554563161943426870332007992401944816754263793141628560664193727695709518802833081150915394980114239972231310883979435087439111999634750213812398598015529770508778319825152759932374131133134132023108520442348483972008917257734551977662329229153222374356696028526266627218999898718906403520244528740715623604193645469007545362211208537137904671941174536062198159651816620639471595707104313836421498636003287158159649877844458753495232727892809524493455894124380412331835654475955130957890484631565831181261901871263501955399953572451044328063199246923919386735212470031059080893482464118207235355744182822608611613878113118343674585928771461579611393849353528170406375492495056418584397088119172129440287568525676720157700966543315523141903032404001777563785897301799662501412349955743136332392625681092771931691518312945261886810358645355457643917624883661971145266072361989510101833313283373600893314951215895802127744406503665693261920666990005227458148758723029135297221512582815246772698332648180958936764036559365983372299329631049408512060305850311504425876770953479087915605411644234340510476903495086760908056671397603959061923955050075619657368023693909374704754673450588094994202157721686762944375210308035324405475841880310600078471648757886242010777389892798364402502088336629174061942555396524293456031595690382817881653345970909617694387445242806834968814958232676917149339808255312228948255391077554382730926628253929168712679582518680014904174372174626084103210802935570474160482581249986461299672665180255646742969404982028039333508470406799469043842694439439374254343222780326157588405537284874362300834012975109597299238709460778087130733082871939925768672354285614207996531552532749371808378702246021977691854942802205112121393801982303898454839726363205008984302799805973118986644558836806967983944814544416678863073479455325566932766460119660973114983366801952337472868815095080714449365785272331591476986880652161651485915896174814128601728313767459553726320435961945129858488222418574034219528320571247098206316376103046654799559713731562282641671617358113570774677415653855717314694443386933255090521590855979342248240310290666019966522729871854510912861898107653703021798435951341286563977750997034694259700018466004294372831053612424944670605242364950643218054478119989425974411134504541828332862715859156925618921664084731655996345808183960030803898026610150060291221412877034759703858045203314467367254401143847473359743896901206993463184596367884914987119741354794978665998105706725375996985114443009387614862227774765050001748872963831590586186946722382877966647746306773439969434958263402591743710906084188390362803857937415723315234487553103153233703356110095731321859015317469287665312011814233532023416115697730715903596568283199161490808698917479412517449519172735809817702547208666439775333903694223648876693572148163428897124751091207574397514933867407065486122972682115263495991610877478797191678905706518840394116895778242707839318875022604184836252343300775890814563725940142246152901243810697853240595769658298772263065562507052194761376947199504982003151688678774785510394656875804243086255782710342740570197938681091145347862011532354988481700404543065943297997050951760770875925139851551016373540218788663889142511470669809033479376501320962621877806657872314037169650723127222372201473707734155869827280767922989795323111212288223416683796174765086672119274178860975833334025748620880414899953711061435251789038250813872867498366257544644589948729794370441888827709960378184115649046473332208844335344530462414469751532750849378759240252946173221255624245735165939990929842439201475215101522165369295711708414236856448486401616824735168887903973023258438968977311979436472785328408919785594236610991922727318973164360116019047244313464081625871268154902272827831764278739355159216348488322261717401517527356027834588459114529527908882014655415393137420817044231360842732417913305253411297426812638108799118495211849788272287360591714556637964936096484940364675961682349225507425622697481927705880030500391879979922728921551716370198211148523526434927683160037032339341930775542868480718220901474577379389329621450979218273040913971407584267059957978569625675285369074231260346806036738776739077297911051711177994076782115411200780398141429812358099386082445210034872927654579083230224491374009268614658334959580416482151437941814383171885975191451935136032522700907614403473418608156471857596754891193499626463583574095908559218106804232012138353222861493486090595379228598571620669186389319318004465964220298374463325227061737129868035653661557462961683964293356189676629361405295608730902827956151152913949412253170080150705884023972345179885875164880937388813955190642286497901233157492398162790403901697110008326689557666742908121507771823448873279301571284033898624972852936772842108979292926565730663915667522064291778909836868911918903888384252247496070411212999442239040811632479323968031553525465883955074315193858034789942574430579692327585382374448147189692275098746004224824304584263374167126265688578971056431840447376344827955043081535803097096867497965143961544644752541989262648839273688268316133469967591515296284211741858438251274145087511341219383569318367504964999925488914876332934018838891740459966998261316188797328027241017721301349950289475891885463874241392982357766659148827423586314080256476233903633414570483963013906882433538041401492668747417047453209745471220043801746660952834352475348535029049226656627811501871658680145346006250074409997856127625002688753781151949980742056775001106724050754773285725907902392229886071360538821632339437014157860281426144736355306870747475436968997637459904576784605126971334375003204437234850934325060233849219830646671878825843939144804632166348785284073686034683388114914304262432066889107462134974425873224226454296342867143682110205951628044424200645172658752967135129841386318204312208586506116880256799567877026509799009164744793849377043359328648388824452325002514634459087222722686526305585213853308648028988374984430325758605750969783557821234083988008098690207911223364006560857131571971157489855537986749974599253186460941189993544010887693095393367763305558669310889299301366649231435644318174546190469968197795003381393929886913025885526992025589060657704612226079783059413827449690320363489943203084067885219215264835905654498458374665706329514955485176312492494659910826237953516622373377061130469005709219793546999063167418882128520923359011827911935646273895183778114028553894585966234636570468477745371403982425504770554943960442181093197039162420869414434002558484737714449777634163652842783265929658733546780612726584492368414413084080360878080396273986851444395919504095272586172232659858469300859474974746939083280462439115594134179305556196880183305886635324531207470646518553907561248819171726487917909414999383150567199605233883101680917358436713286561988255540560994754661199892675280396551110167885693785503367454540630482369993393839009806958857736847941731397957265780360220569078918523369121571480601035849752013813874593530409398699853659753562380313897829856971825257087762339928977663001052550591248519865564040900844919971838203057115289251446035438266115302746872655301004644237561929184185515536497147913768985925241448307483597109955725017718334889290899048268825971323109981157833533218278714522635508559606026265978498029688372570345291487129673983176116600415040738460638156933708509983351637327152736202678069413164501006874444874452531070146345546488248028990473877204707467252904804377920540593124184062148450741061404823806631814325495939408326387864029149710235056600742124182152969812298351270398556749348567494374701810830356394865082011123311493926014005102176454359388686615041141852046398713350634925544790056578528884943440296861946314669299511144211509769142109427800786660042845675798075255460307570433364375155915559847684291635687519150757442988043670831378503864287547494185212261781808446954968123460988427124243385319284727648719383048865242534345897437854794924493702680458736991237203328542610267735932103620104812126831139829313670176736725198701561662292552428100561063029725319070431634091168194758282989554688040732467879428611535672625578818079520658188660280740347113797667014483725198975677567438500689357054523553969765960628698525805996355109152121101391123084568760207649367913361594022413780108934319884982811418974546052937170663761724125902627106689261640182696960711006308125123303793209434114540308109194209342390332657300905666226240307396338839665535345028031846069997094886625205990023786600705632566984711504744672159664769732337116120267512480503589153072590999282544668493099165502912694078177078691086671232287521740401733589206830534811429562734366682540177204567674596099320519336812198200795454876217219736600919730480095067545242109623169517590526216166121011216498809235312124965094790085373036355192297890692681385076506328564639874664941556700315420397910209773192218161752272886467259452207606541038417273982352925941207117604752690126957809321383794239748669106970895496711271095580106112875233935411252745442822619041408525432933113225378318573819932856436782078960958422292359754355494885083352109533708427550115168071972995851793868373918792108914891867139478053171410771894886680510296275342807215931730897449978655831628745690288439888106260235127398280437403237309174241245950092104100267918281140372238615817662682892305216116152546947055465278762857345767112050232196204431617363781839942363834401756961741126610103843269742087682073055416483350260167263335986208210185221178992395525669239889630671527142581707279954317681171125197813407273763586125656825979343767259131916412814078712228580765921556240680858638238939323165876312017871874357778830308619556536623486981635467928340113212587407854700839051538032418284416310544567361002856671126657755861247694472429312842927103863358340178676279152995672974084390846640525283554272262582608815917991366251783403382027239952916927020868838444528718751887252957515347283802132630426589378011173096584277296245392348912905274709582216523327504112787734704654178333141392096987153908895334756783757433825349518583080723354599977784502792814762276772027509544178215637040545546265716276871981253433202731900852498512874660132076055880642525366862687893945110043365664767615125650891495699973810569555807233890414261600037489144647159692909959642138337794762236768418016476550921296346354376857296850127885749606566272155838032440182168785522181164265819296635707622829271198656883934652037904126579353405460448888576250868537808590655794017791930018784944903242012925364620310555069034905515329522469161362789539821388607448470002295207520788992572021966159558757759191804412946069623646816806436718334009094507405785742438806354463256660472390583848914368161625659616279979041758054628742744661957165185950920424079137313407562385502780574123215922839019954312148585819431794813779655944408103591675773208365250564921651193667224352902963515436070136593545650019386934317120290067460239782624942721820318535191428280266245839258047119112818135442168163951957254650000034046523680748375604849572098407341673992524369525761383204046263378543422662446406847188339056377088121483370138154935755990056135749395613316212492584641402656055643440906212558915077565493334173510988850903199906167156322555956942358328634767187997121167182667015370101631873652640312537270873036828666883527352555404531156304379269775355522258719872663288818676372978736726952297425189890301526610808692435637962181889710135955934670168082192207774100362850194534854188972148720023010566020334109818702777238980760991171105600492674237397976268701242742847595859505176478330669439964861497566913134597914309025034348141257321168515490733009657485091313875696486669130118173061260233169985659613606848328015774547679243696726496154857797522591094354593634752503675836390240232623971111622580994988417750907886604574956014915485303497868820376204479815946262793483490369061669080785495420139226644437870644099947439544396839559585447715794923884371107649313011505048325053154796051095721458314055321990529636625714995820124788139989332503444694576018184872764533860055473429834701505892410656334135204040873882052241727768079845918566463558538368232544302134489114283809001597363762648236716953959444986215982917743982905643735012466804833194054630760317465502360500129558780807985059445967977121828038133613423919163604472322306766307880507334005953654075876899354751661428925046281046160932102448680378806133088046434129465358471377752744363954259221226824686320353425313502634787692755977946882539780887373619079281631803087602416283503789301446333546913378218035905520518323801982714110921608983166679617350595902104621476821933969616947747717354142410940661435532827157577746689056244647315006144580348958001863045481198315538723699192709225280549038686449621864080988934173547233937229915746419676072967986144344601210048728298065951865318550683945359337812816128482848538245948958642658202312273023828362263525818647628241254694906968470645826119041276174419335394810012803813470336566279659059850379825979412701003308649364708767423122644288926161011904631396711484859530438548244801781234807119151880304311144359763661453715798956578139512416020779329152819246000993327595356393442011526909649696779128876390027508171204925133970964693089843118516504741976261352644012408665000134485059549176739425621741564520451276350988249448993008628305215549655657930368587107910861370914597414800846409242619166731974725643631283334834744434471710630985872103918842669857013882077861228532980122721919979331701592860827935388640834183650338189226856008433155774167586066326276282962283268129722322950600833320929653807365538256875167812815785397591631264573601410136528863739070779464053391279420300905701614940577705437294900878189925419270594266925325443377058187151712694945356544414412766060999868467296379813063353968339034018824250198524351102228555589551133715552287247131428759239913965369306990362941700146635194957263768978112951648591957134082470414742088798452365994219066126000503263418391676059212446688082844698988183612213107655358808584875715655789250994316895849271489466749413687078324133148329862930262232181189128559233535776724061329037665546256079994060887434259899292058247057953476239689995306214383096917943048282931227127246347448570373237544823814890736541077680430892445589156171412194911696754022096060112316963521323649855090404216243848612290810938401547626519205740873317179564772821240335728117427020597185816602899216748704824762102632296693242382231364000792438937575448503702934564312904404523831375587573453615185613450241018111905240426761490856176139840221714847109116740036003235116066656359204568206243174076783543273350541216817843512688747314457323879292702556205766663869232955826277536193351371482641441779784791746708687117154650561131961495641926938951153847965051930979574126956213000820304964376987315450255126447161830454996935914337382377855346383200896737900884072681757799607651862581818968261323601766336953943019346477317323436184903188039485666929411501804517737659061496888699955157468874732544105525633886306337156447538956760256212790196923758108940989764314643457761494029088113213344109971657316442654684692166703265048585574566660408521029627679883626200144474885229549364161114209064005582271636038343072781024115317400850653068181441775327208005848861365279727109552598440206521991347009394414201234246305750181595342730489144189805230929380378194719766931193549939743458796313068299953867597878828296154944832239819857377343484384877174138183983117928240650848029771227310007413632446112766095223725061588808988849095074441560804935015765018634134252207160868405377872958010473224118020953657128502977119835110255691783139219329324927888048711282990188322872997383750489128313458104618844559663908975987763616220966384423995519248548586662469673698943808683279457093456495429182823898325138961677111661969203200616957745736917674460564541649064185956561903429120978316204620372573590028847033739779694284566060120250679010815576682709005943623071865570154488763472892086021935711345085562825978618687714812019290339460977238463685531495446789344935945586861762461526140130990548576356620644616343504845901431673947824965224402026395230293132041286024502865470870217172011419398849153512799352375841559740707524232705585032126034565396804104103186522248464075781560403445887888099338921022172109022978121555260753121531578237149672300056162837994943536982546073099992706862454270616415685217228329496180045777874557697767424341993364197230395366582553278242117982397776024392839186613122774512306183044960587115814329038379848727385771593948503211163294636236005878876990551984726981482664020085739791786715291689597590680654524874994339258703476803260437265750053152239642500544438787317001010609725543716872312210062274080866126232973138909973523318588046841174260261464851764717927704316252870154792235260027030628815303193169038407861875473821459462245566518984163983484711224797743388977735918833427012797167449996819431327395026726483755536661285832745560607415920136067952342924401500560536412877441016665629645197047626024115641733117554921300469976625810724757324546483089976763278058944149815923477567597994430880567750444217495365722815453575798749344420622054196668211327092346865352888288896185749928398593584792118645844644574926540962672783026032787237965478850385691131887482316764917895334091389060598298829061879995465394725949383814904280509169791300527485530008780201529824791047606481062034430232885487734558696003523690236418138521075206930092442245017427792405065667519661991231483648243351703542582587036263231062794674819908766525343404171249298435033549042551209309335616900241573442288068396947394643297616731631164553109656964382247615529923361778118718405941702246439965501729077257214899956165842704132842884609889031399440732860839510658212526300032837946077940432946545026968633775250569182328768881588621812641498646599098862215966896164244438147097262219909854276239378137451234948073521460697462785262365165799968796761280490411623948108633952899223914010939598437806032879115058821856410985886874496700722760956897497874916176905207995449054748783720885871842101141532217164191622263165939147098900855978594340268960450096180839110756699722118325494592214457877182688975805514122271425601112844943626249733583314410318365039540632191235752511534900252503384390985210936942423538394272544370434953028662814008464201214824835598963642262431271940223147350900527706287897931817575354721671613598396604352895303582703771899451053239692238470232731760657495294821805636341500425114297222775316920109588056286847435064120632880693486028268678938083234778632688353307818878043891252496546615572334996534220520993727325144951553889471504513580518336401231301708154526533980469390764879276597838129846733774875200796502990568191301897043831727746149760022517856036983080618982115068189364382239418399220311842788205812963097308284198980465199872042884871796066913280508027778312676345280561022332867513733543462355239795514487751048203885871126545152828214509133900175531149239730817139763847500758445603645076349414984019681947860023912750554848587697999366920832963532154203978478114423253402301323093848833063913621986254940330600221042102711096208927146484280665964933884400775944054062423039196270090582089424613021853617926049084888325012154386534926434248818627201761352535772104455242964486224913671583549741936212808059713035765737784400317210572985236357652949191382330804816089476461417633860490821423630856510168546353532139318395446627587432945817278021284625455474172217611137038824649616277491152765497179201679520438433381041422285119928138745974305864333625140521303543797174348840301450528555656149282292347157306920926643891973860768109412013343074610942378752621243351077918405449979106899216274634217458383971627510098632765783572777628770946495525251330932180018087323763854879755772486294066155100726673882200229847980293520314763216309644059906611357752912108716572259052296052771750175010186525863089283227925159129429790697594163140922840726351829329332253208628891077187271986883383876027390319601485558387482328380988480511946316747096432437651498796748408413383063896950463923258028949530536965884872657099977151882403825622740145010952833877113656654231043925783869714722913713926160646909576751930423780962160453648650676400215249504973959126414354968088331043028799815264887566451715170110952536440005718875828292132772153223508516105680375840341740831728761085599448415087052934552779871952775491767844344867362104066618046320389541139720596254953900297316879553693548682241883769791637380901842090056982206576000380202157038457128479018980987522974180174057768390546617539208424535534597792104852788100767864029005888903497838012758577370369731082763917810955429547127992265128917671630560994483857531240220623090289108256685723067845059143276367661974718122484942489165548517649361344734842526245350233928818754670351105364202613940808177892424751588002891386826658242109179184390684775008829203851570429275259875324160231721213484129959743108071285297430693198880934734651912247329511050682597776989538463834265469001198640436318823768420400900343047947919874625825236600763271471978617216919189813624047499330054404818829661813182386561508052588777019802853131195965110030399852083664371277900002977172231535977533886262124510555871341568773780260142122240139829878235717539912729328640644376081598177406603413101993034753155322715291522423604936675528221567747656805007845665751026962611297999589415118728441000215395671236061357367963516906465800877553341170997917932289550011898040956067105797015135562403811801029092902753391085147641207674513816103733748364279592399057587627487565367610867722728883274294014904122814078178236268026108991888111552296222360704848506223151210168005784550587552360540910432806857555101903460707215832713138458830168182065987583380999832539021409946165053937864043939830079047059104550580388939271195430204417501545269892532466615256598074073885609112914943658425865134930703325695956808727032340319327008476804563611337126801418669205453548200680339991329028520728523473654064136366319462271761478807150276185065437549830385592066116066504660629929694632705562154699925976951609614034824808277005280768300794837643604269133486252066663715293695154178506486612000187096726842633608599544788080797849502034155573829473739429586321387460068218352763124441970883065665822044872406804323749989875771724432006288502560541722829594549219574443446845152084223679412795440807513007473572319348067520744163745929741275806520630394136142661784718668151218739205883131713731739628063276687927178887070315924650299522812882503431493110596736170809401911235311856382970944255682766084775876507329712103572386050402882872472609417917721898095126342700807127319373396964104330904760562082355538910514005968559379251617973218105581529354982414414676350357805069120956105954663582988961995283654415432894181859298654192353474164710108047341254470198941571045734188093196678069243229921861744272609139772047851805840087769404547327524793078953851261573754429050046952273109656207899783721182482451671509946415820640619602238314913361297518954182798371209647328461186222307391541253229197170253777544592873830301512672373306063375944340327707780348863158838386076450761093158572831266112440745465484485645266125951450704985499556235637970134184575608125272220968168633004417559475302796044259550162661387712482267338676548490009745523619958583395668363413351383209138696983899860124396951967819132783785501112624435014036545847731646362910737510672801260490396681000847693064842770249193304001881680269763712354528575329834846540260926074428551928400220776533024266503394357621111404985848380064257663361113264858475350069275455919532697052035737850749834561704535068502609987842871134855078577314080642443200928835849154907958311381927202809101205777470952881747665420882603595218716887221565249934871713885602279642941651918277984416535273745298191581259072370365508731320181698235759859795764396385904776764460606623131079136686882307546495104680472907840103078601959321100574659064147560739371128709455097813562936594379527820938548015124517449708367543178490735658076775512562736387959984019492960606395639273025324004840560102774062704750093619038871551273707258616220880158752202403096733615451338440750675359190642646651593167291470487880374089694753951126754719468777829488929721962879081899700971254440512494631125170213095499448167378959793259011832839151769074008334191719636789025266806473024052345485993351546954320347530011561452738253763796175545350052822156474542495147182276900844416749045101367992134213476691611514934275480548837439609511878974353581934945587379425206216499310477688004036599151236430528927779263633048903403954839029532804766886988105731930835952780675177881992989160863362133761192139432652525860143926298977599340341140468041797225671116867268857437998220453715837286400812444854960230361363246545908388469664250711549591884649857015983594591619101132846030608982253078310592434386469567539069062514212373432871065551940822979330522304200872800266543195251473900825509806324475610592094099008724607660749156300732692705999898569960023810899078798244966056691781351515865349963956782333456817032796443567351554019087573464776816298659173126185038719011214720453252756923656737083987021872658660700452566495753342915447124746861562357873515973241691834124008475791125093389692872688225873378996587381614521895600528184358085845411100198568993434196145809420860342125214946692848560379371419544597888219129609996552285413523006441227065720350379902029774251223917424765902694450352959294221582458708428168264752452723031836659800009468897311000581345557040964857930084698282558117392591606129504532566491699970339929552385469845364711662403984316130743289442754530045711991368291004910774849535213919288266408999170800054039665496462581670570308491935638246804790314369794421317568045859288904605643187975272697689206143881517029289033404320985099312636668978469712057269023741850512778499192947018211951965037374870482729468147021678823918020688209484106099026995307869415189289718785984011310209884979937818335715621376332935178376398346464734419088168193386471385959040565571374823591344230209778387643448376401734299140272310518843426444306428079192531467372371865700661897694798078492169804310422900858749532424188184270913924305592272778432663747154710096971332785771307139337763391081380567483335819058468912826215837588228291126467623368646396971175141526083116332878062999309918676721944078682303201725447948652608139963195177295400081474915200399708742399662334205150157755674206425786322749536688652628192660255144328477881983630753998106212804271356102531812382591414607326913338763351057586324821155170078522223951833832611691991342358650233413337270009262694000689416529305138355146726809239051360339991020950219572747756218095161873970702807263326578534728860173314159214513272028012676333439613911331248803490515747408860350716532484339538481387516659484724595064787995446341285697779594512040423722420947665024820131603462273752265915969202160613671427975838320455056970746577829719097448457620262085806060536288096288390760910295353452548757899497662014339597041181924943402067244663692827853021971231604525903156624068388491804009258070576647381255306446390220101875618396039602768293714632488629323876086171428166352988472425794317399048555722751760787185349530660498004111651113348487418305973482819619714863944484502009455530188776169555803299439413683908012775100151800056558288236205451757439741355013077317032929356218803998024126907753527761122860867750150801436791679822993809102055392038246731974153873256117261922165990500678281731414628647455434653507788698004560890160509452870393914631362023282728163308917603573633612247616675470386098315832344642062698184611073905161675824495916068138149351623250122649086595676161206736575622133024848361027800403016166740650046407801908115957421369124345425402612358255894023207392797711800644654909035997987800348876247825108070326846276263118124719551187763479478709585648011945076616668089192608377890256652676332816598728665879854357618697437654629753163543759687287730826621418447581970096996425876593455813804497977053928184157031442218224650703501379875071353718074398932451496048060976054601460428989288176931937368699474360734496848042331458287369309177623608570298377797083679453832281931819668192045367413748996419448692951137334811543746007813724785350708255900409255819889675326016630587760726366852115260569781049464238305508772332833431122851298731388998818296200718656659575356641632650940127931142412072921705919514448921542239973292287835619443174730384846949742042244383663028843556337160839502030254227324707173506100818371449002550380860756591625007926966696091695081205039371707161100702620620367198608511663209336380075971401955613510796310690876793507002784699108090682186816406595497989806021312250236712907091942687560200957936912125372901338314979663346371896252210586167647081102725598737583279793891343862814918749788503005047063637815864786684058737419500638311920847242934442226560821334880033700824731633407890663965177199116552823195704680377692729833711360508782780388854650985383330615423649912036541227617889179578496480127587778345757323539387114805272988066611244759832475434914061748724801762816635334881279046224892202286742313156889488715676508108224448869285156975323853376325071412798120643306735584617588729705982353566948527746249149096910195324329523133678905022429523076081957409174932684568924406628211056454309225533172628044329847891454761887964226199386049423367424742861561498566905986842586316037345713078120356405645839132983749491245780051966922683263629633407790749155243712331603470410610637470145310600888973655508850254769620858175822215779930207077956390519084432017220047106339956774295414061326847971867265573466183331427296720827445814824698885549654634442611698502424584973518033656296964891246728357256448463894777233928473816614070059190448627606567117203498124056268314307585649290128812972813482916371382623088397687466602741013869138942278153364599422428411720723378205392105057762785081342693532779165403468674241559237473108371765544905776840594366540519353459567966031833870685068365461996368461976073245079682314121394703052077527753603779824516983982399185881595974573422136222571695600104289362907108634640611365986513421552916823767098088386156696837753494426524409448219700943771661290170590961852023679903580090961131485120254606929306174055459108698794072928959180106462894993941507339859980943296970278905151566673870074961980789112231937708598175115900729841096436276448972281451454437816770924288498356153701017444087752742523511948021378519955454480094325960421702323415903908438933174933132111949773631658048554692966706100276888091648197624283626627099100481263465095408727169183216133180972073745158995614771514462413048435376506214285579963999181811334477483377091190507658885788725576425383839326402525123047296223047105515636249263162025292167999882234616657624389956924822163105716771542158822134320977946271177805153334728047497010840043744535870578211202735860329328261350354850277383101530674769781212450157391690256855601045281828475110527239721657375371534000769517280387909383217195790570769581859740450058287336443991581574548328837813987048562209472648371857653643879384101593677011888624754269652657272833672432947427561414351375554238966787590060757858052400721034127131987325830819758590956716024092844608511961740171358890053318110096133959191430838897800401159740914986594910730553786025622267303224900530237097085607837473987887326704982068432458958548395541165736367950559261220418378424507547462961212622158291948870048799401634864304274221263014725821946394286633307466329924185506925703118802880617919922830067406690730741008308813273498489432974348199585931214996942715302819903803490028591387697416237244452058408157908831794697204701363127448106262040122763357482475167513590653120567147231957612588025675391547576246078564555429872570082729389585164347785035182638868662740326041451850397289794678198703726203141009708876179936205166456786808423243254441327142538116365264368509960885638378153341810309225487473337170897337110686711632655670337253236653450794788406257517498669103381647522421568401520352954885729313207129817151541353130734313982382517882659518816743073973229240884011655339784370047378164920597044853692618511875495451196289678445869156501834090080859114516907552051956529064337736045487053326989121804758684920505460050843788060324925698561499801245333583950779892157619542012130104379096717998201562608053018489677352532670950591657157637425619163962338494656810780608095276707748572884040877910670223442071377334768733989549752111597167690584438213270648653457472481318121881199952868431798218722861919958263187362506424503621166212389720583658602381672732072417398985877147031106878378735662353608846359391107608688735563601637734974949283777585030249751596924936252841683686465385280317938348587761356316211016339659811183697690601261585144208050350667459201207578898655687178018539682385079111226773902697230300405500177762867104491501990313410297282287684658732977722565626284185771592923280573176315697438929721035613326399168019306566242241556243987551125022483388468694101227178277736312594817688138810918129252880123755758137802852416437657404048180503979162732729024525047658794084563409943997736561280548801635988349284451804690109193484020058983060624351358564223295284480087991328008291315537501848558014677855952764469511941972340000669403203131714263414504896421484472967592722016309226772897625312383356577125176602743570253486705014613723710564996127728633932626364780056252867024674139011607069353811796962765026600882033717839116796704890247008407474355940084787418433240401143571870430294602466660739649477854588847197150333718448429254206845578795925461736370401591905746607712333304126106146011188774693230975973020174722441503850208238787281970820778638059688198901074688477134199045641750609481835070820907237086266566423608557900981463677640278766247086730068521528578042449705499304095298347867001936930075954792687200933449020433822718044384195297265625184989395262047718366343664548462266352862776890208862663455856790999877294325287198683126275929919758456864509424986599431588283141881318041131974495060503989217462598328570677950108364581339728698000465545697123019111838469457840231142922327795654032023020397984795654524243402775015724440766820244900481778511396190950839953799027234099299860691143537704993560675390884868917723395082038070858203170354287280271252830368383865301281458117538947659207612158332141619195568737445377729191088352579106312872383083081606049622315547850049024296889787587328784997374631511114022132105884170995952833531346307932492388177883234802591873851436501847880231185168869749517812377110054290980265175655449396184274402307358382216182328161110762838744143931474651074692955354337030492072322996639380612429668827845883165496509517644159869522040813452012856766657627433560240675077978230219727466573627917821086815420948669757067216726361167086417798046562403826071919457559258693869110290747448253829433037764218582714135059329587294046372458595721561000924950501342961946707216952754037329109446746271004101012085438284631668316443517078492895431123292213879471243973804123206912223586980287182976942043074281795853615345081860086233615744535567873791452928589679714567685199028488926970635716784110199214834339161048516157102943979430071884786473668062858375399277528551121967100930141315164544058366005845744238791834186903144007804220294447754556233765183474643100933712308387460420684724931895653088548249969603885374152302468098970554471102765966228545969637028139871367652585024921809516792296849416392593709084100445261066816999222565441925481398496573129923145150273285003712571041896936046106048560393917538535890870452151486230134986341480249209396170168186457601638125115061664147886528635927992372244539459951786397998857598660452822963222463748073836059709738339327091936590894581109561678231008838684311089225425783004320671873871245888640924912714460253893924376673404604001296030293655106976028671654220583754070578302634682942436326823260747655730008886493080836799167462308308720328753865206645900562939759903539057288183677084148800849954025408684069204240352990423439121126382322812949657654044665483839450415125295574564851463865708550298436696955259680346387487838673729085232629353883029074909854513008267370123201766246415839944724510883189802349456138503223222993938166129240975676403531467622211332806044866386686643269942763559809738576604097957704091820176262610585752979273429291052322216500014957715802563293304113193586404932723497354380307801434044847530017813123070055335470632786937428541587253901849450727611463672809831799870218492444998834331850459859101513634996090756808457297574030068455512800416613605303685590223752854530999995548749606939047019642811842629598342044462582251661143627706931386917363651396023488107848267484260888705884020855891628915241574708561234224872974395547867611320496605657467388037512881731424924539133588374226238337389998545292185709703783815665472879327181617777562237665170832389882864884519399132258375491412769860354626380416479269043644850955488756929626507357573101140044691396681595837468284099258653244084517388522075905732058617768845299640077354537075772457557482805260366894505373515830335739204441567964862784531073480971487745781515252423666221473753464233557415484662850229681679172429167274511252831858747444753482226237490510945737810944982318517507611293135239029111132650737728278157067755203256195827240909111186089752984528761045109770457685919324213457853736515213904663428132126484595342638490142039367231338128338718349211860456336544430789943942736044836468545917496454620752552980495895986568786145759291183803564588662688140290836577684924802174625823210954871485420944681434234483483435950490109550832689573458992697557903089052094464680126412764768882077395602595851149600969247081119038477936650679074236801908104493762959558075184348617523474264749231021014586330581868627444524593482582760071627483937604019134074576930481478136814246997238326849445767423446336589561525910688470697349316596284276004888449240112902091457266269495739094359220767568122589064779245565379393963722856323425559671709736755642963164364159103862744628509789575012709806613903400777180681295362301524258808835697429445603697656706086612965540977177758828736513444804852479697993484103831014274562997583695703599816073012881237303556343717594625770335798993039793497524586886304517673043558307153437306142694499361266644305482163290176260760335821284508014802347011123708423443796472977017972685096735776600667229500040853178660066689914901423457886584781076670875841781614536629396273861865634318560082232866593175411538677298854390792047752885814615860222248738582219067804623878263273176676080236969742948356893774573896668877203795925708633118455357299375930897553211607017104071972017021094547184110679684627645606016028264538925565198687521039409196875695551154129928256648677777894606095507418966199698622591947300798771109351709120955454409166070456576976841610847918439098215583216294702023544560504380791738087628024824787937778556863651553885303233409002506069377546077646954267475020577342006532128801833065813650021066441613848028053661528520465572029768716038629875724745023574120916665671913181721558987375290754907041060975961978016769901400821511135265275352472284662879417665938378761139711085649847983711937685901694703347081421471386178123533144592287008901295365464878380847281082636038977703531121701317525329178419940288544017030677577586946054056108931802644396055835621720017977747509113355632771764675655700208411856767852760582609160972032355583429500925254157303771509069267540363743135656286771702424201202406926472923612481014895571195616405813897018542649833650594786958651928133500106695411771847793699534174923513139285392663288700304137084086221532615549621395139509080415971979113464550207665690860088963992282326833374913425532005306727022961871611250222366029783081125587254137197280797903572011911089818127853538597901637788853286977492147790321541727043031792470487205147116527455395561673765889587405707187186568340071291554876423284760840479059090505773863209941012421804380991691385827111983516410565047436242753750658273648821143714450391493100041815186595051961677467617073159919414956642990296613146388661634452600071245258711616196914344526134524472579913865566259061161553920490051511039546158849457867179287331349685821459141183221316164563092662521905636702859202524648274624409578257621343246795959829918396424304999489019864315656250875754541379873436302850303358550748132748111346345316316461450041778975780264953488116561343427010406229228921219787638398649180714962075767225672929931595926325817333825495517503923747286553422339427560630384657058475397913823655788625369607836849634582898108844161716856952519938199184637345031663848269410062303048806626555433243021998833209935530553798792653814155725256850792553147949410147037751469622016011845753653442707438527591226001890988941416547960935605617297517910659942932237647195191571828487046664101743596225389111656239258999271191005217467877510985347607806706656823257196523954293097172655767685795473232530668130129844674570521597077035797704272006979660501099911817869894619768338126389228720859981967426563771690427946319982059768356844264620004217840777179297421567219605737524995219819642763237699366218852418793757561898635209082784716666498540337214801859101092204763872884816755575920338509271013023737597824193243214165512560007496595669994654197720848438680599589413273452317434721160279960893036903215694774956104565979462384007266484796940176415108315307138846861726980920146544311103003540961453717553677641329670172830725834659597068234033423770699991414984296765788828321843933715353720897083230546960612250010669771970291951688164602853493599612868424425995037410102085663358561078951208512362401030983019619611037574107022120400626633552346411375629519500089646621524155880139035333659105420553281977657281850705603712154742471235324498695563595524584897245946270997448117454854471526169331358794361030869628061717908576844945422258585543704760044099843738088939961342428421952697744178851138813846374572786563540886084116478436174445108363011386944082473889224815442114377834213593284556331348949083696923535712937695992641681012697641724671124691154246104603470588665576133750353278603214438110145791631129362685754168073564968459727045261583103684858502188267163635282006740899063372355535322480888106802983093050402007528263492490564449570051148355544745202295283102524355820814206747475657985922596613932912653490968310745999281099640103651285946698064428553428336115182755555662588059537428825151162230941949964341301552023445039437121443943032836439627516122562594561557900549935298290238962955884916871827191267479625279813632595065130193301677219766736093136871094825076329065064477502079941266836123820885682611144642889161189119231714303702603673663502394734911173663958302261303145343307793141306769716720128589459680533463469952384069526949172608339866736279235346400167777126569550410043254477584095950227150594323845032721604773833777863682873183229663205449987519020973766084263154947600605663848122575008407791375041477352315077436189218680529686630674332007475399851673846006991689901148584817393154487449297076959247686304660272474898022015129907210807997134017994580234450326317040975457075331057164337690817052444208608387318803758840131158527201613942779216588095501662270583353571554087523286910705457383337125684603774542806341844456293252542205853747251823060159301159255217298493571580800194747316123697507531641753707978220297210441639170971350969953345460597027323993660009487076728467533556592885542993668934043131814244231698108336220590740685160760037213569839695513109557810189277303780626058841147948513525749294404089455185140948923450985787469209998781106970052351666595379646882884197938084900645093410755339837081019037524495141441394463954232348271102691817357924711475680791940851605278777326424232567887713873132212137571550808432782089745552420859503861636388052997490637612864903090998906901710748849444257317923815119387248735598440061810709281877441223290871962191935089935072333202724770257096160947297180159087025036813830421346117202467722775631864945345075321763320642845575946444497860436505827941058455188967778507153825806881496066457874940460572991725197887336762780825237213922321799913908333827370637307472281055422295138419358003513703253420927842130641809651905702235709098071368588115084618824093631250474399931605883597399846852793432581736781652009680023037505509131098632608288942366940327796774600488717389422989368123761561853977808236953403895045794199484794796716339391989216161409708034777983999077838664206336773282457689341482705259265648967409688239233283853401450652537512042473336861293212338246297835292413079384453307602650097958591698806697592990143339037810727082876686598446401564406956924743311789606415236259096196621891801504257052171942915593338928002688868574999828151356521016859825726208289506217140270057008771395695016521319914965625454693796392504523819935237635852294920151328974031305873691147244387878040633839923017080851044861926621424562267616078220963334563644229188850994442978393011087235356238876931578287670957998077144972681512424978709465896169690852418188560767274902852998795684956914056259286687368288444977757756856474640801136960724965523954783744741932087387876296491132379302534822882818896807989666870764703804290161410772117577239227248588980653643628465484915062082630697342795852244358803472387998523778571882428781859709309444639268421845759490977423834033817943336689005429416153970508673158148623300161730788854276199880930556023089189758051709587770032262131056478693926556064217198935465218957800686159493348214620982271017077586497338784928642037320188793496254047229725530670410442602415366183970978903842972932361862856130714903966353973277144606259508146879686268817016024581543434610768072086409199378097700904460015952803963819966965894010596914457056619780447584199098881352674150525220997486303935259822322303930046836866416092474740864035535932276809569498848718636491835953089700649995023080125441234193087223006025074366634874964339897813031481413956106491011917383504335880942257231118117735595276464866147187363996222149205109422937232581438594141321562868644696438742501868211717097532209732323143213718154271182631188647416610446539655072919277206427102753449140719194479603804108157412556525069268828139002397673064642944397932935565135402394914813637624629112980009899797549956011829911706909824036724600299984326985458072459446398691590852754304936341625000971446334235685390550351549635436477362860025682814547690760854569862854987321635179273507082217608104632000303166768351093200082507173679587898172196965094258122687745764411767983547350358700512854679971682376039699690309299904031687831280899778204216119710240749413575820110403161343276867499899141043626990104150867322253480366786274612029291531303288908378977519250750894329748678374342694627258430079192386877737112346807410882036256860213153646827705104208882525885242576517768261770966496370088620143232768199180745113534873033578136787558985849107557199969893999659053069456686437248558450105969541509075826685925423586265643149541108249773250610471903909226241420702825166626761189351852572995605243409251524926090135191790472425496682625005998571281748702565619519819712271268046875703812332245703052954953395150490000887713652156001499159418357445388836166951503496371848610367988751414194814809344857700588006185383127978008280074227923026165239386062795963796938567985514475351907930428046076042744014429070175741369268736920960261321127289763809910373911811325344969933027463761562357076002268683495748404914897810745921281928233179043611257294853965067676021155134426406338828737033196778085846634402538059441406148067796532155242328510701422621337477575641267428185086406929782947381746250142730509712674325724971886371879875971329560724412657854205702491851521446539089780338872972827634846277507168770155623319392629659960541823686629077564428299050376579749217962659545329196231274539775904161580650213956510050660111671401756371989407374673786080262666996953588396712253947811743139260814891107526831672607163046158656953041782263433830645188735835017715587511032460731885092824654459064185122412071014754366368385292908849505165972569728279003940302768521041744596298868335772023786122144525096725874316520458927292894879866017652058642117426900518996849962080145865125226597656270970196583698670577149725951595842251385509871266824810696396861069064403857066583491702093032292736429945198358415303262014579461688193157791188970637385053701985851513521277833048366589759908693213274603255626058041053795465076732356834905169488441793233205979729393463907659874130660157241213977794286196891279210012240062960481114118674417036256952715375293153629994630731966407335982795535064403266533713383754659517506525922978671571023810732716105405874722938255438351978695232641907487420884149742907391336816318822256239408750901888106051305798861093419742141221354369844099089985391363993706123424939402087568776928461469241813388380287026138334901482027114325802547570262736775814730070387809392978298278204138537982783348844351523608066295984062767494928650740654921248542311854377879321646600230439671553496378485218902654481678336084166340001248997471345117292128275143281694079539125005021056108244392570181218063397819602257874517973625197953121062002764286174310650126738825942589756376808317699847077614938220278128685857423605712232625750781230039975166313782369377469130302728900807177335607183881788219106924050567701831949430487497382217433552025757644959547034136863784105885787320362268471244823432141124123947807695639998529161426494841607795549785342120190064912290392358195054511243256345202977508704191323691959033331966145084269990970444599701815663684485864247020340697092348451315470816020491058489181485091124624208810040703599670546377399019028378349824321393095619819906998895726957522997827716350291540169248626843755652329882467636363073549922227219714864471646514435798459403172592590294380077344324510632097736066493137256943201816719981456910105956191043157986289586495068033351854595042857574416214414724507259903438625734790919554230287158755242533324672397974994443146958719829640630002399817797620526366640350928668528049066740476509188908871411612486479947281020390796705436891133814416059148601464965765997638739228017363953558602711375807028265357284866950632537969328069596211312246270738710819147230549734061067932093818227612730555972299287273215232138897487435391931470805588242629722121817626008979370462494306123954100492065596145088093446810911071912909121190350277543641932536064519195291823310883844120715900440535146022949876162434978632274831945247014476874125073678019510881992164489691036981357666789082324059314462396452755602222246755357187122354596226227522951023455380659825825165842661697224563009150171114760050147894359973492283589999406222214783820846060251873703703348817821867920403355040323490037059297856599215389031773622922417163006990293096915987271741126902479371463142477224400099886532514090965259043210216987068217141121068046523716851792653280139608981970630542546691388798559368430366653776462649485626614664645876439277706659055082825331048772212594740499744234266983058086998955516321567111404590821024300823535987675737898965488907573186082255809422235885140879277724702868870962528926214650304043771853572494874039939786929231479435337021097102975049759134660481919287310799176341818964705431833147787172568373676816847357683818972138589142839444353191148754845133166020027324362217619089822083801882745392334295563889606242581162535903885509080770393669661911675283239359386832282754923474726377126147823691648145813924373341285391674248902304863293541383020525293515500303990845661963876599819156240459312883988580673270172447843028454480980919132712292004378499519546971897831511108081754863418473579382403032735674936279645256134441059102646447573850308302764300116184221670661305019026557467796901150146520259598682512008952617797944338514678582027399084001318874511540740194862163621453489334055187042826666873552229404011696694642177883384591558961240063541375312369827055514315610364724827196934592926312426592704115710641479748656145377191585230669933138616155131443063043184746452480634179140934060130050904543467861912363178846851509665404104044466192458598203009939500497434101394094206540493419582151483930158893370300707469611167227126335967840171455986006950057506954446541421976726201668855167414152976984979141489067546904442497259811772654748485341187538813552768077674542104232088776744720401188365122787253248826246383110309256027328341581307839302731942949644753004292657560671330668673204609381653483448753175797101013333409521763040198684607995278499988979168352861444903191627721334866905872925768276930669642664422409100790250787508400812878045975557506707098073933780296530539023878172792483030155243974260276869340871720767018396668438749785466493028998396781801677195510944218610632563083377150952503369138796151034620169981911502624932937467618273089325565562471595771729024967479503881808772380616458582081394258744622997628291314056680528664878007760332428962337436763550366410757976814908151824649947791929018432235783657177248615116088099539964645953307329856966827784554781064922448561429416598130163232447949599321500528142328234107848000972512181993977832563672055375998214972292953177424201174016989024635714150522430772844206139773720406028754727193775048355603810854888111835080239211592599280117080970938853970900139563789695630968108292108748572726074532650978464572126540935543485334186710673130347307723004248964133076732886320037537714571427256061366365883077355442628565804719543832071216526893908402321737883733478714745610991729812194603984735231513812804080482040304001789384156307919483527214771444496225762350855671394613978486859417934857265473209375661783279229042043301218760522645903012583985628929438641574857690538584962126272009913093935841379207345613935613797117493046430057520817762362731411269970128915889746924073052878672677716196844130846165656286875362175178524621394113283169150484840609178411548043658749660014440823329183609917466638759599985808607932172027102100952370300252524963783056671909476601891802777567438622025941198087927046538341789502244509933105233520962013814791364158335163483838989439767496151208546335618377769960962397677262409721136772349979739847017393916512592995713405486185177315805229770925314434787690919818945447335076794465625820468499138540245607198429122278366478590084288962862511905796327680314870071965353469338290629969635161624892674957503091052727143137586540937588759519533014098080630639065230930748045473099326005718548886070121739789303948009964494768930238878593608049715394989773683650413340514578334137426462041580486046103777231754313677900566179387796074928627543424080102700904278242591683346821606476724923543141662748731899145412513887522312305305634857173200664489267431846472793049939635820604364348407610926645314996430250361228063052532553570365962685546982009510472068783970659124449327737885245247280336238706444487770222127848110281558839339814920633326109939464397807974365901885854905287361135635897060245900135950651093567119759634766139934678269445014194077251248219402588351558986230711172364095553030018755171069991414242074680048632411927590171055597309698364615997289649628402270798725035116008144628807573005822704481801776376025215134058242957828346604111862120163051475369844513457916242438181671538536159124210843444816480833356701209474279245596388733819445955051432629619430530471785021101901563731586233651186319106327553260661103224977930432725667940079972786966853269448863394322030320628744483122224186330120914725636565062536554993495856017302962296844597697348747389384271103535110675480817380960875590703792052119415218874098727305591284470676687739152004484412933674053379252606149192068093569309334702904958487436703686697718983277294450481542348037617167847484230267253946123457901800068119521103847718866137749938755217786537080468340089033115848183900136403805110246426329611413847076361188227870101664170841281295530819883929505953943141421601938344322146086634841203096831825550078197962804763670561746108000897114026714731451947270487825289154585638789970000711791259070162072880527825639364379070256411528094406890663753199869834838033625254532220785883469457258156217303723430169643115363260439755835782002531973608006149833075730722831433800819732630017876411861818829284880576693093510430790333470831818945756619999137652865907222116463696358289956306560402462845494970755665916561123075422121966608486777334489708335065010778106896379168162414197590404644588618025023085640930997717111519390181905153694958111732400368689868448457153095351127645405861069182618841010563213612814808461351561036877956831636488725231420071263914019364129587684849562902382787779442044841393056943535282293824712441284745685896082726186886813408424372429667914893759638312036314449183726480924117965677217803753661522638797812042660563683456114156258368557334676191645251543035432844723609661266505061232271989589326094011222612845344819065871831750870577787401603271789507320593651218860913321291995061622835041417316015744697944231548118115360108346035708611208433745586781612160466506639337717690762242202537370822196414458804890597090446255373639454338868259600757118192669664824740355257971895228413454657024272285986564893951906289851158166977821127774407888338488558492274364259988566320697420936885199846405037978718743712424532993906651886059250642741678471707833099111492491005443607989326376466563048898413332830056179766650847812966447457244941240390923971195484043790978902929330518814513014126291639119104870456098119979471616219010652875280293521713825206333787091680425292536707169021342457151389276889209913894736386185866571994307846633521840908054565766441795274240364346820779136832067277972842808819451972568967351790956626996948259819212592479898505493922194008922638551490160986517225772419018881074156457035067619598276191161374801690456421321425317650285873235441959045109413761266598413124624751215164999546447663558359407020550551758142051001227550748823434756223367847163267673149191675653191500720517683149706619999480101849732293525725120447718732135963013943055159248366217856652208431769212240020436114731839593785029227976458446197844502769319433340716620263976512981474854147782432417682766748288744940128220200520075283633798134529851473647524033916026648240618078234059202299401406397025276768526268885380405765272768518297844655964689175948725174563069980453402066384834298339911543931568859365036119609700571225383640795856511451406716898506803509058367989470647929470601398714197793027876375031254302345218479682073510129387139010805236044635425713263968454378560955100286271152314485003690944713363979013158488699717758144402206740687929115410670599222972349135650953752781993432003162561669823896113928520622860802024920416942467999620718529351158278779335503870804724789527356846968750372383869361169772141756059234709932759675306385764833362949068794931497635663427986926639128293183409907896591007371922999274122744820701479391057866772977156351148299959890611608149890935186091982668051484173357223881841716796694217575811593508667563748625037518561807834845825331645698888284387563233007449438972402208752430656422654517062355658797773696013178806730324544638638695723067475985584408763913025013571614249619534776870601738229986746019548712557095651171665983116578336742997064561205549575591308439133915965959863199476261166535466501607339807857125834371015219577431516187391407000669076903947083750565234211643352808904581381609789713976719245045473030530544738087799392542359528608874486205590175770648338147016838772980359221089222854578626260814265076291340934026247836518507165283817828621506085835128698175137506054397896721258298162488692080513930761532659698698930713534394855078598508968334558730491342067811278951288902153319893132068469786229520718474753588637624825071281487957148914072335993052082144588656522321019591402400733019743710545534420114773073236587538992013700245705794005178921535087997595872329467393924634830206370771541702675186945183092311832191700495018733401209879755258068957744947637152049773076541894092173955498800060836831384994875465450669346092889728120421229876746125087536424656071677905235191661054781016904373223743108921909387792272752434585688741127912627661009852664033501770529893089389728115623995922091274719615862259693519565438673761450218988555923981860785018762205365826795309786619587311239491069052144460229170290017611162512567032838392006234935919766965959314932987986392596387788646948959286492442123761412281637921142656274571935115273305996778756107688969459571639688332476305057576415208731555125436343577855866968923383682959113535798980589222269825695009099541312728989986776531666792615125453381250953208671448999660112685040107448248739098119885382771451784282456924780636231008883588846049221306859173068659028020495743428087346539289969704971339771071612515546759904633382311880657005170613717383500825233609205467025427622106082981840974583031503273855247171248735297564216273876478841465170762080453218049969470769326840271741579473570918268539061631240501506900537295216002726297245378218588694857199482331175492514352675672771224496828771912276903996453726330428747603683173623240887072331140014208182382025362612114653176499055365478102038053900408844644671929226109805333083730540914050517379466835730788106987965401475692431133222812112279949082006769553560976808862376741995972925896343748049422276452965224891279477667542418332863661646232534094059407637350115172976404117920259367606529421976778481289437765126827110527433559522365768191712424145928554817914200927024494748284015702080336082361510192261414188688334094974389343971193559666013389691241623801543852673310967602143461587715303448882590700943240488964779884626996855171923074633688274948213872597828269680315066718942442495453715919131360497688104847356133718587235084979332751001935955506203173205915011239723227198574906390573068884273281448267114796109197873349554452184601319562831410582980864481254316969617984874662642333674632826328937704156914735633677523545065070676272867926919338385313752268013262814635109135278100461974458512947296244238414879563031792827453721160977820808133977941096237584953406577872019039570116076273413521847000326210316624460514448945260783315037203934316717434012826568441063897514902769497833750011197309750329369285200199790355753562264516295351105582455011829534501239533932312467698322490134137238015570460117733787848486530416171567953758562817030813281810357426576506973789732736581360102188213438103909963609269346925952435242150012653884924615717744348586197457391566541486900320743697179866488244963580261210280134963736365615181607130378560563886174024383179626866912239254116028305297518844026848166684689683661835400792936791171451205142650489389731759588417745529085351157992858312455084814336408539855109759342944069179754539669653663746210699889901079913389094736471732457441514675399226731288637618452921843370139541079661469502768022903076645483126620918678536078239568175754722265450799623439169324422166951774940845571991220234082129269533195266920180164228838312576849653002269962435011142575842576420637182763650186799206982777723689422507339778401013966454441889411953477439435127760802059907536598403151240459996997968939680492577663548603355577692265939413126040111253567210367372386792123819789682507164469813318267869595201128020355213250093512946336016984013342317332286021240089226619970671632839659577836521466581073125830553086661067151259590303314093574932042780793879763283293994614846529807663662250586958955011684143958286586226861804003174344567858926673195013800976338776726640468537199998782225303715982221528891534965615128610377652605463338065520892789686085536379161019475034111071781224790503486412639509191177237921343167713520369419441927681656325015983647575426445240461855863576411570166577119709335742127206802122094439585407647687125983741724421993940565054061602090881735565693376129920195713071469644909897093420873608799600156539061584084086950595450551440971576564461948480826475941522074691117319065901200135699547554298582740359892961159413828973831876504929227360112338046005498570455592769891002198437813989267313305691560868028396116734854871536323614005854591115297748227980135397256864528354213932262005415425031349086138116995967920459909001086194585622600011008414258735736355979557860221460877848714761128892375240478367932514335106615151769960789458349890933624187922331164957428630954586418490409155037735382100327450636639059182955646552183168587668699576612152684162405758322723322018698879985522269678591201692669208135167549416047516755809863380531536522691198029335795658951870326879286303127589377858893415113328075253803436553350754724673857749360325835123647869083706092846327634707527628690565361928188388784787863623755560607064235106999734374566213303016202801241269498816603029483487520645329278173806271550269834752643031707159677406804574491975507499817495690049428086850394046946092306612645661086898950040908322859363723368284009044997901141455316547799115128293208517623208507234697772088669112425744432398642084674396085288970861338823577223282352915855370654306121792908987977117201371921402791511948784279508563995989894443545768942362215331919467208977253730141005222091838150519536188345518744650479210359353613522133791748103581006252191036453704326836772720265969779126498388699685032478801558393445485925746412232289272875727376241719068714379952116759214604630388637301282236954789848621886582437785999828001833860260763049514037018816846313737196194839913763026596938982113717878001716954838117003236978529422605199231235239145037670151334859869247960868217334014890490355041444568586116712305152063797173892764575371538496384031534536635124974680154208656123125163449744439015002943559018554167933251843478393008093295200937901218819402179135961225915206564061415329178016005432707109822926697647785689576340572838392080157924546027391724701774167832601110452103471258255463301933902210969311244168776084290176524619968399239485791856124484805363157155919097802046166908065963720674927055506542307658154964150953626237234127560329612134857583389380447043866103983135372667111760291853373391541512026221024730202330354930123628046051742298425967770485724149902617276676820330261574035081278028732711442051758255598520397262089977870768383251067734946136334528371213254699635500140533778045782694011226093536404778667302983089542460488284266448897904944816254677478082800484728256678706998547559207714598202981191226840349116340948734283604879966006976593844044297541206467844717420537558771950229273403890928267797206419612650615115562760958111407903971440361483318340557234884021206718926867658297138664560282844616633351913581875396558301484933723184323064935775769125612205434375937204333011193553624246376242095693273440204666777376777365941808284854186445501346128719294085310926552290483558486102517352452547337010968486469374026611070871548708823047680262749402400879987220219948760544981886825607250960048506243471090168805107539238443860388975823825762830484443932161618788642166466479646790802161130459465974578424438816212848913166463583344765177370502407729111164192801955480305846675216807324348172981632553003454254820971904387712858922354748020331405984991511654773810135863473157256622769412665799631526515072019299396433778227947047747797958204990865252602649421937222223239211562578724978031691846011600577453571481007966314102756384846873182671596620743050321413139126255878514808527349604465742842309029676399750601487492939702166736444646655133203714518875824711924323710943726421198085350580461346016781032178027444327163547274354914968178375697276036096971198144056033601938670106619540005632980239867737416106780427858965013225496170164690522515927024207194882985901382064782889724590711398887386006669633578078740207305583175439975377860840230833484989725146563692985632846219222224167842456502299650301089402289127759353546159674275851530453119616990422084481327575858583414647586895087534271477681317233434756802293867483200449138639128437026962353605801195083884402935124241122185352766904252481817965731666559991168863284278953222407040892798601733042098309794536419117946280131668435536741536857847700574260078583695840630396219519066019538030817178525206108250306741528825117970940510626173787453650983500367540936960787331641915647566545817206532275997675062238900904730742434538617389264540104591050156506410541800729597301102559407770097094151859564642763899492615738213499065529682457348708718430618954523212991035934115620315306428109276509548974993844641020750848120845534105365006155368467003039790385278237671261768095331362763475970196331109857418371935583604517468237149497853515061334480819224375621829935932340476248593043822044275906136570105543126027198377376008387477323309484477881130861433523858522864347313394065050601466814040877456351877475260134990652934358931708629911242207765901489859905762657858462072331068760329290720437755981184915006991117975311087498260027027309767820191377408724432076886449627803358550706448702393476568997262005591806040944052262707926908320641071798562007450216476595912663294743781114941324271432598828213826060860231055778400568273294226908323229439585129889677929106528578066792433922965822334209512432800675680350203111732367667467568898504118926192135165769913519751799164109873915074121267659932939638018016431436006623106113286372619659793357898425474013891140808323805364297905821017330739529252659757325493657376921645344287121691237081252677168024995994022430374362362786818125849673157682249941884076666304355793663960629845297920163324924596272774241228642541764477950077933391674740166886537843047515539737873158966449010653816920882193586828505658348122128668449974313101079837335613045119103149880904242237616421922864312074726926582026391227756594858833963398487409415072898298659678479555743189364582194282918236975501320776782563536232709157868434094261562974776724815184660105656108340823429687601849877166706746949732379281288271885977657400652438186155239796753591030083033269852933459520249991694518964724909447419534922928240302492522174426559963390917588644392047433417021853147808648639186996645132458516084748759805962809757833848396949118663202616045013309035308980061103426095529020063190871702357108149796678759932903472275882900595650113040920967237007872700355875066629716350194807430919847490502647314099758511611449797602625961931322018225949514214430168878684794816304302238884993677197377512839671320405545390991392669678645046147497253670391457486600040008046867204631940627678484696618206013923568556053248481308720128033297400762305635021626045088947313953946347539453771714889565715402394149769306187949126641442941209039573689582996286914414734801914940979242923670732703889031647947816750551230073645352950170589943748703559251569281612260310857481282608587257613076767765208788325854276418732465980429833698598318803126878714657294448905264110026562324971751730530223999064916723334554503030287819776349219431072795550023036476927732400928061438569957391023751576671750847677556922664655481734845372095420285878659991721947625368150271655192170147391239322507184049685979932541667136195783066875544698297085671261695295678700396806115087780174450445600359217682851465550530350877557586219913436892378258792176166208530763439963832714701568919595761102857794561427054029020213713207530826020958362056536680403420584154627021624161069328223597100820726991146540460524122994342249463313827016954005312360198012013088842009076721522072664442918733379821691024474921776155521909356711352912226374214193489150700089825378879598287782884710181128109217406285972302486254388319824345648450102135690660672140347045635035961443813518724220534233723071537062538070786927831217275012214071442556560105157837700301527744090728814769746932257224445313320325981098571715815026066329691321270153070098690226097691252685427112463686619340171019520821113334825928041153227141273092855426717425962819596826470595162885882948289324048510957850375494069640243745958958773690095993980356477065049882435426804119674615025728326052526730813041389485355699007736142771568793224339956228057358677168650201615915890585856609553977453328451461179982658359045196776918819080821730282694565931438594323586545815934008990209761429763207095929198876493098433741939795367446753109819438800226340565820712922899706087745567302189264641748284070383194272086980781403468458127934602757441649309846584580939506817000093416570492571544942057787642847407307629229367204239588724858907845163861115571033128365825504951540591939617620172356824612862855656020932448221177957326395659014122325552593440137903874925495778471734960438324811731081281177972828289474273241796787359302061961783180130737925523985561452229944290981077252412278272398695005850294678896382614401985046634596095494879527695729219099723078976536055051978193935269221378095121112900346839241592380258089116932109362015463654270094662729911746716624877642452165736917144244745361598656563390426874622207348078890253827431649775678465545395598354593024714245285353089027138467810587975718273599392093218820082321739995681180454416151702127360501766821121793388648454186720772884683675859747946706186487944931722745237160552741534980207003388272585258814855330922272094416645188682525041593599535759960833496506384701967588081340316114823160431601214993825039468428661417913893927727460141983929594428906720730279858707936772258359977146647164210186739623950042358820612353134490700600451946221538846213936410145051547950020369665793328314415365175443773037535240627328876494793576195549326139695074892416191696874302742757805905541762408440968296060663924915262754181903716016554341843961757042648188777453873853824952543973469852687798755872532103883210894784089827904546346699415031730214880354374053623758022895467874034027020280966570390623712596743337007487988634995108233191574990116662382921344762522942413977243246978333794549905535399016612210811168155991809883876268097966717117104496471874363202899653277921066506397152936364366607823279936801236320795865634126958340294796444575202743329684212567671595025548355138502907713198908495235456462030293323210624299283818186794193538500409371291175785326280434269497273612635404755347726661416595606780450227955761886449198864765547352348825370049139891265772753019612340433801692251640974941278723719210792057959393303950031756764775123306540106673704864991889526636590328528305531983766062243107302299893005799170475445861250950226935626545058357995021172182739060723537076857936258213315355740641881111443889167388937451692171492413375086802238644462698643194124352124718893163574735554495173836261695569536971095594663279766846330737725906001448903691604528695808037148225955531023137265789976975640909030007890409416244825977026961062725558927132756509412557339000328914751203910916887364467685785178897771064478222247261026000074426744654362747469791650401573362816060578968625406074316463770340907253104551987984302756327833231915309489531070698793763550626448754079406211156965775720215200244237564515860814359769757521312092978074947445558523241429453724485457086658419382179023687848546308632416886572986051546995823434342923532740650437835210724880571216467593661491752685888750048045391958619282618762094083819112465575036335261888419889552233345515898651650050955372119244050916193286311024585014954171525777982098645222571340633303416902626242639970205078360966572582977303071761814278771692650204309443065068856868852864982627684420722506069464067602741640381007993159921670819354087843213187158002436736402756217050885870579227551515766975365377497762635857463807162284869435980766740286229482291707018244235864371403569988906549242922737309014404738765690505292919537979471058816782508190253049742159866246289694078260627439093357316250516719843917327403356058443798459489096933560620608458678864250141425960852554046984395843229223762678119674203896497096932739868656237447364139117080299774511881177546764773231047624602020387960127379491188467569488036593149659393234370374923990394614908045043717712965610307024232293696319642830421856180937125801179357979438498287893782555790779446520609132631901950779775196988155087522382677739116583719039927001204522276397468961877451236215263120725293843368468102288744542633864324892729896572838179760355918221683479260777648934628063028966237582802300388185280210784833054213799363823977335223979016942061482585018281607661421573720749484604882417626184351784670922924572253620198111181940592327986481421075091834941850708446475908359650219608793977184548026247856975680642525931995882233014388809185439066054399941598555304384134148512506905865015111962815907666669479278892245940704938859195171412183781618879595731341723216393632311797725160305325858904949537110945413099409146413602339514250111180435168221487059689171239561123718244092628770870709668001163457994431083592940580800123194719416668027850494447066151452622974396322635821474032725283503027183627606725414466391925233868706733383690175720755810841328769178151115341101766126339078803005537922410968887497935754642181659253780574547979483418733517683231165585954841490238958447437326041487865522123051889252338481104910753528141222759245097046950911188797344053380428504159983992730013714254458810910206047523555642465679769905156925575937802714801763387646771738548895977360717186104774609004849466647731765078011171538765392761318006820449820324394626322122237445954606226289086635865616116511844662537584016623744967082340379907680734132514970246207936662966610875251148584477253090425541823371772848218457879295571570989548271955401094563072848481037089166317675666124273946992885172006396985118866711996335465750252425241065623853635927882026095873950046314505129465673749307852834809007147005798310130624244367289208743047878534263903678317881302808275132185220123461922497745207647810965077550048408079039376651784168347682866344897957213303890660185971317284538770321971766280870695274492486982634545502929458222916930028042292081039762088119622236734760182665257194989131143259486364506756553326069510807709947790660799568503806126657502937632967260204583859356300937407867914554027829883208718191157632487263727997367206938921052318682543215411352691299410937275662639700764898199911562430212536176057765759265385772848466937228021028305700696557956580610381377328587117438315055292229224336827067502640001055454433602179670048993975951402684631989480679323544796192411573266596893000065998324151960834639258512065053633253465338106879403466933543902992748895927971582565848204476037826242138317676821529590500377423740373345862535794109591992111434171946336495301560526865946452999405492456044527458336428266504821376533300955768408054554904085530404413367642353115575082406976432041677865464080804250212294821052276442947326382485339903903879171344941650484138002040203249558043565979323109502221991555408681713070758383095458206374518707429721736076302647911430077791738431578768232973995053667672704251370724606359035867471090872808193317502074636790538426757480496668557394643222165090900653190973576862909317692312754924048116208952951381487939304338760442871429327641884554379009312619731856259090355785232249523032290747412806757511913794857794923306159998914679983831974360869052322222197468212434364248714043689415097440448333821451635040943251091338849368653088972107525725455897546028331199529259761392143835991152649636044586042136539199302078460113846691449973349823714911306192222054638847852534510809884301532443412403253757475582365659197427767420933891799696899878386571040634670349539999888345020504609091607749245237209666067450820614564956068844613134639855335380298782564547888841287781051399627885499654002501978065552639496453248558742118531788816659389935405200318835533667409482130596686135584276143947470185938777862661719945455009472243388696850656565624723068526115534383873378723567490236325269227386751592190252216522537953583299846961470678513333566088482671941530260818724880529773783451234854209068513207633070805296152411100148353858398017505265779143890936716449532172309700219849225620907756725853308350599524436687016215966378167948709514150591692210962097723732485772038634478769656921240011390863316392653256550880452579198969559784892005941219604064750223659322615515470979572703099323938535614414453997535906773697011201361265047754842037765359330165215565757043632864417910994603357705095290969807060298891429925433336642490815013505426790360856083933796654231996551969360647907126542707855333668006931845446539411848886590566679079575478939995275091176300841657315962718780278578314341272253520357922298220234894321330084766704747440915734033796617838455426040957902572626639336222570099157595284508206329797078603329451909368167110859840743687481745934261252271854056637812558029244150302283230695958682746371247424394176158019373790242058585386773006200736522121919873234465770384857918811514111814950608607184121391440481000826563676946080336215162655702622451292656974416108353947165290610343697458260781982593039513630698206662981245853452677014222534391283967106651463180155018615912354557502383973697193504885082765719459813821147050868928934088707930648440913997078343455085029688647570180548214330149341179073234214382614576339535351789412746441257991291388859001970067542779195875703844402326948464991586914605957784796210642966462033864159000480573494982746594595750239032152096750652348732700473751411063927591392749303949009393108633332146925239753454151362057510959020518443220529303365227116818964991564632109342127827416938109577335556787596964593302930331447160564896319553085598343604694094972914077410074840113268997093210678133028571150755655913261517865469113315581597588468924626213639983462746267737812747782115059198065720838186837072322915367403850306270280639792730239392631277335499773936671988072554010746839972811534660363935698992215383962706077278247846959130334150314108084753938990652566922669510966080032769971761840127978865440675067545391849928911475741110360633142288309270601640234690181826949049038899055359822198432515530538167554731623084050246958492954088561716360370918154935023389607155609378018003631240768299114760161860381244567559777834512964686299107558691572733514327879031666510227981692700572172283904628374619386546598683987834964521779207297101586983065512093748760232399538482164367418132899533526565357329436863958028816939473700276650490479577260524030391289776016351487137979602720453290826483221084427732697062401265622948064815734019934805253555543275566307778033746165440165999212847749105980305708018895198581043973220130103621563828229270169481069572519296272751161605268550155228474554152771440594150833522275510614778215881731428871828745443101410445301149964022354815658137317318302879140058871270953486582295780246171423838840262903051783743777673908138070181885730490243113485975005251756138506716252608089092467264608688419921748850213715960712483450382454839625630077624400542985448580021350051072612850692237558372918176021951678933171247836886790372379063430253227735608873056977614158572316963434013303267699154403598174471067264632264967628470144417041209641958019464794578569189026211261054188565223992560016299505750330215067338221841470299757561292502261580402092892340487449027283533217486087813992185446077082401886071394100169447508967601414467992451061768340029327362110559669309980408485354519645323868220063296811330668648408767400463184721712854980265308519658507139767320804242183969246947450138192332608525204199119100335368212603108606927705223415808006801670654712014263221148211545560409781498593918840455184980898626406638844634283350050424676516225609807557851311342881496783228530316169705296045456040767340005504442798672342416824000794910869721730634139396051319691371549692521869494287637810090311038351844096126342657581988110629823671759180778171373902825865092367389309573840165852145190393613870545834362704330527916762163303280251660164524082723948764459714936495641395082768773329063734253557571929518601512476601404593588118451347708723017894275279924625883482532777571238195001859293575068076542538772487325898499423536397084619010334318201715133703193448582082095032956778008744857926568094014302910877357441796028048486152106666310049093579554658134354410397039925926016633069211376110264822219131097097166503358677526224966955473428423571741204210821779555047498280418311930293890700184297289486330987727456895830383926696067079551823528512067349092821433782076532428942470479925602696102152845988471699054169399529858901172811167465580186041777732944031243889212407397539744300958436940049231686698461950682810330320113530115221386078016961904717569278375892769381397954548968287840161887519659713433835309526747022105541103017192165287866304322137377810668651626295831452254630319676510562806801216740638568591594506273140630635276110979537649033878973555084393573232002971167880044404207566253935357274916456784313696051023026042909363724994235818999930280948175471276119087209439861197717616870733915943286707621079819391026724158255230414128876471322717662676222558701493307491696871583556188086655337642061947749085379605884279640184479422797447551768922669497794748186205745436023766264343211951338016742258793929374788209251545294311053820103152295241262730470754980721865395718886760249830392621991262795774890617787206132833528881738805792782616310463938568500582417474186070542083595265835394434469625323887189836157405375332478851064715014143028298261620439794610249246318745246685449591654335383316460671413214643110314271931616684300141899394914047361620706501404833897226466269645709864785369303222559835470396107830084135405887853277207445343245451674254578327247565851934002559730638376707477841763517522818218982691311200926930263524711850672871350305322095296231151411613073714396502290120405353276920160052885389182412870975780104083137068889449500731066108960744933793882407832267854620027911990348965157087667004446134450288414855261545115796453108816840623744517585404478578990891861641369003233523487325651750738187486357394368288889711690590183323637695412205851625857987647543700862056772787904893396669797410578955472268793145823164424732971413391163251189432530792611007297766506433833524698155572126168820610819350426502783532116343242611735943883200729786730557826341034681586360136462438844059089704534168213725136109548631420875724709155063590297700131736003960155798682195436127169804098573184358349019154317046611001585264576526314478881659073468967565184003579615964892834306940388595205729668496867587117504702840583711350615725405807424054752389715420536535948476255291232563398026807278075408568221876667957874130845399474462152542979796356109424624695643270602160384931031516656426950593188226749754649381248663479116668386098454734098999470056297521568324755504160420897954391978594160790136632372793852187442542228414061380628631503573846444348723416026337682891730419519147989541290518898573242266386998131133747091816284432364124943759699121723361524429021023454715451565644487666716164970169498066074201919260793854539197915268311197101499999419090626154365780827385947762862892653418013391757818169934384921589947918931755967741053994789174760967873882244270570593543178618121560478148817162347407520328009224924131960908985984385001470249596573803792925950224005902247493677441601815242973877948373060090076899946500277544291213442403712311457868105334132614952151884177286034236331969301139811034845731200940223941152789635001576141386500983084470599682220394973299208091498834390977672113222778379663709669635346316018456509151585062729043378831154411125873278130909823236541514359987719913971413100392489147273719266398984909916717004911911619901390367274042939173221770152773638487779006405213455557848531685609833207829245710827495632196043674341038121747558910914875942455061604181082739029262985391932718981608254826862737551218232229368164662994103020721445565254676118467137402471784126948933976376359965087995244302764164189590887010606229316076154979576091680711641390971979311009620912772333052111330334152595416414483813835360763819439074573915490057104152586893651238962520959291593354544278140393430904455067272849189050358761902324520574605215850863187264561421504955879477622798717869099277288999820585775876825017289185404115959631281987207969784355664256208413354566710800526707231871570338233428426089508890706993137263093761008367713598733998223320825853573345074403581038038772239149522032275232122467405495772589946807248434356447450288805765074887766402907794449359128986779197049582867318237597542992134744489959822429449222763970589256491714871649265716900849463909820188925903834262664848270022924748018388716757474030690496288662927659851590054653376042390398717335434973433392452811140967529675117110883019770930171086663662400748676553987685324138816617218349849819854477278371018012981287372765576438121857047371833496336242221304515096727438043497492416376387904902556915325687836843008134010018622846305782262082737369810447764715595050199886272073178709800733654289228034850017382699190796953190279882012381857265107381085600064377843725348587542404881306963386632617146417740615244295452248165305483019161768001146200368674136930068279909870841541591955328242396196980196186669319229757184077277075595761682257660642229736392939370781398541406205824390763212935428964621868595693656153578882360952132218726127698314593649849273622040437230412543668991648369651698075497269305588000819175862915693436350345373705659895112860654195926249575903948580658254480147295859689866806149698019110022344277073019384304857903281467672452114332017126784376153861743430041990356061893894219794182013360036593434798641737437815080055849843983664191271935930548477270510648186738965569738737200409381148838968545718080372044165339165212341784230566413351206219344101319743677644327726143561531912473969086934794028437321068197167194255388760811183014675622551967515922136679672567763068502426740692331788194140114967655315963346213977956404019553297597270815688034904746766377581214619830635209694639144325110522400415363912908809106007267185694187563875766684824390524387241383302562366541836520042632898452704354939676756525948511573418424017854438738121718288706703814504411944808706252327816378333772163341132242229139972060606708479191234236611582750418913948413541200570160430994825144675952471122702172693946225035405892102409987704552451012261288891298156728446129808883544254914496661312097464278976336518041097295535836319958529764204782449171162716422941755505302258684201533100430226499714464156145070045922441358315479472003896992209270316601076099029027234687852596958642694013745319332396841011833444454066482267175525217918188393414027647037292019549736567580312146723235574096396913133012376384328763502740020377168409921742628083804316016173868754766104753848231720070643058338607300555411194758510894018556469137100428837126732010709366387838855832803519105039357697841687571114647144529104976181415168170707275580313035027382398347647237307171472947316831508676311971746807533695509163217273330730312380451523950396971198122210181418382162919598677257706356581012620650508981247536750162737629768569122295247472856087860407436339932266154616650258988606147972981616264652399338415589939297529760629799076276125094952744032770372331962577617685758351280981115374612140033817165707530698259366026306293347648391213037641937886908151028300839282366916985883759816419586393721806430293876885215001191773714064955026234861078047909730899541214081723340684691637398077281229032795922667886090282562662144498369223652285469286105101259167213387921776008934813548409704511433369136040907329738351736589888581086385735801204183815730071455458306501665094492686300374275446129553278744546701597845836670724980686384240532906654843531119637293580674545926766178103508371519516383506117392194942628715148355679236110471742543114629567095905263040144324343895059047139481754294914556433166440720698199422594804683381615110871041551746221227489815470313403761823951868833829198628253157906216812421744633588672043190853296514261725047098689462337545948502470448838778940230619222666402240632147033394707368655141361884657437630421113438783658484729907919981587949330110529413243023428347639837297709227727618381209564158236914165377063588274955382668223642895566080769739180642411252226705869708964976468735015312657811160845969682434328843422131526151759741887922264892873809084338215243366806396736077318671963576319944563691027445157578235785870152643387612140522171091561293750362203323491791824015827859670099274525654069258271040427743561133676819438031633795606608200441849640789977477030712284380565536978904602123739373199744482857641954548481256421702858600702521163008771300447366862757808726783408152534356947197342691244903740207067516902614368382649039901925032487475468674748479385386689942763827226958009511044415006531287876545581179298091939037567110764077834093872519840351325663387648786120345986576386112275877286966224859391763752486522615634613812707913996881239573040555862826489878268454967406100427550757387897126621885258407307609597461432029028380157201160555606850730216783161597773788745147747092477454972366213966270042885934850768462688450700234875943898063123476224811203770711616620452091445433459416744429145963261993060854033646801319851586561182735093534636120165619019752214692427861018954399409123126306529385002010420467636276439762335163072684398524212880353077960847131948889199441058268808083172184765927752474647384368698288245050891265357040778225334016450603605637547800993825904128593476583001702889534307662802728714283620437098206835898142260497509841134749092721789838694589163634218380429899280832915358175294069753214147391316378230774559313068841181073074831118772682860852081613524683251072267582257368115071163181618129891470159925762401563640583957980931674083289696015684626929796036543295437445842157573626097243449291742307287736891292619867875965903672008291069605268958415423882191723050805810430989327503919208324165424384913526843214176159780875163884028445649913843428837433496795337712242159884581389568513424740288025868838829011955694168261074367719847521272496111306978058004111715595188870440374315103594703754164861153628930489240360134908598340862985140661133709271003503122104354706511001320858411473345196012272347342890960947291478833088604787992163100049648823714709204807624743174377197309866310785654527063889208777028043970053360835546076627849386748711085617920720490469877560147502244066593350972354807802486647886415560440265492997052584730786020959000989185087075733673534843357243555808446252389903937999596484711384263990125415325976294135958065638886799298529029248547679347872538695737226587819293824907556013665589964829471644954808278020570607385710229359104711943005403347783744458711355797305830579975368013232647041913921356294520489171375958912167724268828833374907795187253227122836417321982111034040992268542232258179220243462395701643759443373161521270917651005493327963362252453293552894492004568187711670157644299734602942246355729989016698076768032610195833338188256477591892175666438078657173912635985357037241959419280701240317127800085212419796177224565575871543365436567899760283072134390060253717282730667484102816403455639423940513694057184729202389542233513148956719873923249228141226224652483489543776804572698250862468271329391649291561680855872528450807871253996282131400625551791940209032885055115469354824076585030480505722734376718415041076920302903245514747138258336277360148577444748589441934173819116009727448045809945834662189869602404848818330485735589885847803498402268223452493026439072462638235455204763272419785894277030082069305977837829659472886224362906353545376666759091466078826477306829412371318528466092253227043048476736312928412984806638373633394659883605102724162199360922520556193775213639211737090950135212224072796779867401716998966574163419249464350892923842237192897034851982131799432773441028017325690440599657706896514537111869126984989676918704015151757894545360542609852587016554685336341959364914903947309427088018741831207344868372112948298465045261557681768836047542065059445407262281348893119652451068658821459723689792888275596507661750015540707004291163479801826573512206126640046208349757521125489039336633444649100977693593369068076027110790186344783266368186071275785264856598151356254693921799509529414158658329628011298439427249118067859522718774158201994362488446874126941690748195930411086492632310451785963689714943151658178429889728546097851803958191111832120892387579741590288949707497212331120529920235190300305231615523171344914656656251277852462649197530896930489984685074234909627093565098943589017633924317126879325363000334606873695843659363509006096901786580455132870092439263980388065424073704223629934288532886450774732122609552217661168647739208700100291564251860779967145626372968395705327933186000745934045998229817250053325903852894274916636662014118164645239563973872245706243107588085922655975496363736312190338609312453899210419231340262051826045254662558960492215316944657080978995710807103147551522075334886214873054810074733175890322071120532211353893811209295210756802330816373280985717730151306593037784906323415978855897993671952228725588778245494231467167380451677382040804053335167039335585448227888678054365465359253560129178130680512793612859125557827840646083206400744307533550823319596184570783223625277740032299536476244026404948534802620545186250869899435186650860572905279647529441581385487992974079468662347530824103195888809460710540307920151806539304604564054654317429042552952789244074742469709123669432108799153504466652866427335813638537699216014596963324447709578840358643132283941800691792721502200960143269466026820594802653468643892710976764651698109303611279017310589182566658533190117009024765027144832850301134784548284514079432850338036305649840169256456802807630245560423264949100725872103543565725600353035247552620913812029239266856941411079855205547310052736189312287039099765037200757089807779965664493326873617893824626432665514974794819743703935065514993070013917480244381204456760687234665262486258870508975687695476520280917648553944673289387690858399070720898007364692306988752280231424942839102328021200902616547724654782247244511221111051748396880941510138403391090791825379470336076330894754559049540842181291089416876340074415538980351574164407915469087311027503533765107402759275889308953236382883898191492429748250139208168719675430084817318637202294718589264805297288602813532132707507583754045846341800982180866777326484212014662515163678714227656861129572786978157092871623965640408059693887047594539789319589309329210782465713944966798203030526794122639834436225897766914285701748223717776762429609915319472880621937240940214367899683669513998813568259041714120571986056453473472438159939343637895020910023195458739710312701996455802225996455860454820428466303108920271283779377469199833736150853056844645042971363102908667358354250022636367198394847646473606287067227249166317731782892390585753782114525995930707225014240122933632660730233987229662871480094769754148116801924096161294535738010930838627254336301358813791631911761254696588828997137921507341463120227211390012780452530164359364895865284867863735793743064824213433371286687882655406695897059751962420600105693413829177472935544822506888086837217203168100953370637294006343457637601513492776582904151209903659915992236571275774293091587460668625817787011815727383623818492424583324445657035464674479810288426931060091950887441022840323888014631167137913178344460950772135789206850106379236158270656100902607860824569034858441726935486056543952826743701560235153324201651880849981608066250617527865935127038713742937523340595028835023733673647893535493753599004414213459507161133913391267518854290008499370454681338603048299688317239329678393028267587236482998318877981046293858934434582986750505589810993361105644834184661866342901368842283837157757907018710169256790274770726147637578993046745973139953321539058639933276652304015026906353289837955410683237082071577160018718593579577609633615984335921595235420876527042094308186915837422855166189188553698693786977924007432111093301763336667779132279658560212887071231368332819826984636123193060881813545652110170109513056228786335694910192802128274825563017514037091970449573676238883094476419688497573024256991291509974765267423870000620937178831077317248488825497507557168020474303816932208788781750233845355225363406101084356506273887188616377288557977667640982405781394437609656245363864818497968913217792548520689906641627917095831325744429574275482651028266840796084236773882685372655263855931678797842386041427617142378169545497808425607787717199685676618141258325976565570362344720672685678875583939106843341175710099972994266939764206826356184393924280173827454667558310215221535813599585254901732190187118534652456010435853026025049315660744832576060861808945788778380445129650713618543785474281825104103259925037050553107817607206234268806362957860485495292169709040154263927840796883398699954386805810904907409204585902852625810977597471062369088643270268741231490978709224293177464775873609493715513949171284394043745661643397177351052971216308159432158770455276821853965304516985410290149772013585741129659676004902843145950740379999714611334455221294654943889955163460515081333989455509217550390123709510340579880349578120658347073785341923833928654742079084199038253738598159282080228135979283561377902199235070591986569396797506736353816544508254750432325907852639226864683361782485690405115357253078892330764871926345714898007326418858253796986722587001592594072839155237706336414239079894001255806869390980566666499982663297913397624311597766423269035134335229394135063346469753199788505218493875900331067609792124576612927382752457001478356183106873010245450745109105025190928663990251985564166070928290437467429505754600191664291559740104027781828236661066638515108884657276029085305006163074935770264397561317672075771432748762447111336395402439178682302712187606347077286820501355811567923797841881894248904115422830918313103274307458028714885861285109149161349527552340131737765779703540900633273087683619338316297541767227871157560709850132250377658532989507121259017670931658457494573891293851080268727437866810151703892572278770295196624585222151873055144515126874934305903679992155017537549076248385195426212275153087522306943947133623847744537797974728761294945264496638489178914954942880448361416430469235370161137829317248476871438951972873693715404226513954297365768791896142784909326003542887284320821514351285215540785597454442554796758052439597064668506554385706387354340511770902378553184906054680077194897186934956310556500407457129198843905474644324013554260313247412007739776704984638836567819682961120595824098879902722290195401211541968910273357468999668549252302391428446825058743932426946912831159275597179126517895475939584716664413891304810583179424198071296761897602997214836526102650460637538511790679800662612031869839917205328721261485770217297632628999966679321899071782258917799732477618664508211093715697739897389372012511890609172305130568770330967179871330318830952442048618227756352072332519149375499161550513230725665932628040807361448439585153954470848895311948252261554697947961358820507387647219130524552796711857605233672181391308977963175000946203123674966285844446504146428553376887007736131586056556026815886033983133514128038620081095466379373008508355707068214156668069232351653818032703124666468633753466064654000937454236496454048698736977932007576416353237714930821994384718339623950453408999189155946901577309028088572585444870583902633195739073867921071897952350401505216348755077610312188478688109969025210370138000812650908847938598862749914337626305894737495239428167023584687570773351259980220631588477149442981937266173979035615224517218698925419704620715679222493764018894680353378549727373686103840050890907797136982611766744751134783149788600249938880594806118581052879828877739605064603333254906640950233139214951632302234210592509076094837624883475659356732201747130750893067228700132037971950336560358736658766972859058292498956799929372777161616396815792511065215358157248364001325843142387708450610617904523210015247663786903758292038490560834966872471413988129491987504600352891026683220490650696585468226366104924836382568737713504457761031324243864600082247508351621208353868348414106109464070250765018437633382036317951900288009204852611435348143528209397004044069137382492643254608306340500679827592887293983196141982733874303750916471758915413210438553984665331735728401400663265547348079763052891693476643350571855782338098119670308891181587522294782812871425844950368704314667524969466457788709850427732642566553370814180079464099806125086528509639361758687437305254895398665765534082787014314540668847632874367154340427794021290482693547812898158869309518390299255657083011737550962595043884479116329695638041189699361040473194753811766353448615916243768060795350573810141022010279199956971597708119955373183794764212076473855199802827399910122808439688157056741578219144447971453284765035701372172852139795870972918617557877740991196607840295659460633661189324761200169527189481574282227417398736269086221578852041161346262761345325370208499264508114986304286275213655447260931355777120464638799448735970369532048976766465482280905943081552060741899593160765213808840561360223649449726114602575975225026304133656461166558004034267399677838993724162513127613973358534781183579139537400158614106736181420752976506638519098680218514779536939824059466340011149724683401909990969560490485325370044486788753606554981594267433472537929796445572624402980069902562216857358990139403031005505125951808334514527196952421032706188942407138022709947698120728065751415352452524845799614026824737012126234084151587571743473723360173253290104668447335333191145165530339565216980977624653860584665631916046543926731330564797366480494225885367858442508569580135445895176577008568821720901085418217497508841671832571389877228058818605384279616622139356011452952335339546656016998693578796782940231753082733119768326635991800443739491820410402321696429786772980345591250972156675668952280403049919146134137921065879733880513389021789588353350471264347140947334017303028147384006118413001657276830544692572980568434761543583399208033099706850497882704597075167314222037962679363756792511981098042936929073116970914928269015242728363394635708883519921565514552302036857812448745417164261548421881428221149592536303923916397166221746773747926675039161416877624634835514756553831485157227014624882708948398658716325424801203169811912227172800476352505175035096209386363732836848355096484013136610266643191107441554065348168855347105632779749873948355493596071250008139038475511979332829494861580955633134545455294795380589471182983427719568401935397543582481152618461274937625466808361937671308652281123372533934004862308502955480906030911269604131335008628566307120548730995622711449971396238785112923243367833211376336333858512869297451383723038565804783720584783761091570105584246550052280683923638647614513186778737067460669974864118801154291269236544455568134022841250120944565826110609592598596522728350032243967673068186090209926310258743532154403784918809986072938280159731209674919521608183100620193702205177183484481583023815127291037688205094585478351717876343739550063627978365800795645779058935437486011244768410878904100896984119893222309712400336417825361530886824958870595018860598563177172108672704887879503626244568963912127431448084272925501654797616439426930184856376843293534127687155545036072188562537828117251124667879658840885144170895144631343747283753965459189002836289472406796062346890046755649271828583898164868775217006775159265388606211119934652598881723187866536367297951784085921385490518452184504340616802713231102765377102518970849614372229949927663830214740095043495795542512989864661971014358927307896199167724434069972577848119809681001098380252051835885185317409500062028252886697759516032935442616341323051096133154773236090604703377394969513615628610891281574994247507756386092321661517584614310171441490658997817064610622222395564231837515241825612105338111981456967181081697410599893267298550114227829743266565089088674118743459132912551522506685681087088775045255576531471868945863004772293414280814670881814159000710985632545963919914815814266232790077214534372281236464576376296675213565302391603889495025215904378949508116524473322839872661937405275210931622515691879391817276550019486700032845883964624648601333003682629768908524996467525702850702250363948469598909262580682303681082360029469418223849602714618368511238290570505697425445677827491071310335623208768658217553544606073163138363853118054320222431251048082819294213700323935414598650237542390315764444275791913790734804067468667150901901964071111425069624000699213550989950655486417746628825228257160419659609380698379675030921555570799634631129270079770518291817236162372569717132982965143398033741620897207880770512859387853609052852416889188107279315711903370873296732104722919986504843417544599729916200427016196787537786901811886695443216774596277089258689152452005523391459757286003502310136487661569609872351640713080584163898242050134502427391776646588187625959283746594822675109190705839109947853305481835257618953577102309961207579709889301269158942177702411830729162161846203771564572397683208606782469643009384441762285465881888578783180160207267897385820618203087860640387978248601646851004725356207214265756987369376381477420844790068519582394419885565725939520222444697831991467139119399035801229675640134188474138903872508991398856809470123058194064052770344609900145811124608518582921834882265155041225094799019970573197578513567014901618942081969622482190279661764744428448523106514045826985328906410604338855514292855517475373414092155542576664612834657243192407243449127555912891461866207945829942641615416728727877268509496690171965504548927513833220665042991172159877010460065461631574193352927233074993429973133469262206821741316488519559622093495879737504141056036124172192417620122625476633905955770909264353657903769867073140585797344470521547379447062487367236962245063924123704778927429307792042052799152818677955035591861337999350875897947247410208545366504308141307607767344306143517546750836050932642806008367809732860220918453112782311160157498114782631399175160739850531836263718744700359266837672769397864015425130928246354091176649004319874904806781917816127722891712166208186588702130212792530169407830226121184841565345672484581453504219138459646550159781061532744671887519060945157487819095120320205541470296849373015589275456235936256420853784900906512111932378769105978281770423971314331955702437815500616510054493041254895752113705732226552128210979216584127841574534002789435075669125889620856819022387523748799440048755627271641269860389279374873230351177326614483689842866907581588300899366864086107664007150415815811903738613132237401056129776261803137024956561844119906663568691406429610717364188376492102152387137825329215824044634579279229860285003487252446624255320395515748056960089931183822135146241111945243370650929052430196551011751141548571265034275092390578020077842210873381459520522552711275484740230611942200604200850139991024380900622612863670294241755493861304770940792659161878116389988113524397916629977170550809851874629136463563905661385919781316882301597191910062702026310733663975342299399121796806987479872570200659941996585969638701730039028053942230135646798886029066337394713664977705775412606723994541693767853276927244667098086900615914832298739449414589144244874132085379281792546440893650007471736701650870145876547220016597904663949585756830801766211854599057947090253500249789026876810386515398259507655615798206252281886551708199093772768638405615221593975851763721014424126278159129719012502439675783549740556457013712470356876944016362598479311303380363923092892321339475244469093224186515968489823008155958532017424711831231243998822319467775497544054477693401749191475951338147702989283173158401904303812156361022591229583241992022536894454036012393691743761300569889845200071936404278033085859527168632374564428039657076684943497834961196173826255597009811887502896495406196919113379998363653527146584980282445676097585654060194941075070416570928855556607495727468317561888695865160881596432838775748510835880615008255869670399657284058405365937591431629654924835474447211044867164927669164896361375878437858523955352057542884476810321318611237868872171211479587614089528876463879134490223591686491502603935683442263768010660971369439771268639449627819925622774124982395815081414505948166960024745560265733908202923836293661044234500680363953564323952945542568627767324382682044615406592843435602947660167582982812684849142865462347199073364747334340661785917577536000226334670465789449950407048133517869375519939289352714102563397606674805369725173082046100139875140308389895934461736991618949224473267613018774911104543012095440577484830274575947451590103277826329427752198404990846190793067278375189408572684040702354221531494643723571084994479071536840223109558458166020456251824279691349942307596946443700451721989801824480909825080142513104769661699282044944158666543379030670827325358054534646388527424594693457354906859958396286167619589050080311454006884879379859457319996429764722599329796656455777870649267292770320374125254035962407282885833201940932698532090101564098961829142896482029034939113509450886345167695087511195065386875103460820261823139556966241646046069727989125231080353392620669597632234444010686764342408731540924861420698679300157041463560818231643663034607490458444713258457341915061080212834143119751434518533271188997580678849701961099474865379351898406283553520988483949356793447466568861936527183857247214201710493509383956151973172302107070184325767555870216758634700254730921850127189009095211981540049743278456607840099548514442082994808770121511573236341253731572528513848867776377896972934724430799521819447083931669049158819506078059993968293176336742402510145012137029688091225121047876597214733367926497547966431527793413449842235658251527114336750698508225594113944676525513264131084354839896821920555800124330821005780037056806545909819934963281515499470211109033810410267124716961561944556250321475245861749113615470166889093516765800611430730107605434873418295804045585509228586414779696927590371231754358346332868897664893788227699992995137590741549323190160535445627197702787227868367383047082993475750594650932719000485061367603722089442189928632662521752621476266819340349449296371262169101246250275183329459057553267294285952338130244501459520615492373009620261560938084593701824847226963027019642370412430542755077570858884461339666914640346488045983754183767394311189611243523558051169193737840868964870726791695489556438809254400887721517933022329979688390730205199076597992591593192545391380616327015163313870560695714158546365531265501962050881508033827656730934400589522351393866603694329257601681624998561786518598461346581764606913936499693150472518265321349951278621891672534645505483150183488625733201874592057553504503146787762935399686941195875991703435008969042704874445236411870601010798953464116658593042677218564509021815092805561005663477715281010145758308794933771997467741503613720468408023032288315826335111255258883143008371511221488689434722810429710680531821930788700156790359662775747419579807002744654448727586029673260435894342639880725346547399044595804856215856529207918695740602753114414488268607744734291925830737752773806972412958011632677799315894406567918768855753040308948967300102619528998860942016136785510265397383709011413603988658778775724975647326019201858653146081734088802423797366429402430408932009476685907425721334567873468471063095637223015023967341404100827340727897969842267237267093861649055012666067864715912723348942970912676861195622229490831493827305737237672542346234440647333260965652199292061195324414893088810381676382075505684198421745441894362520957762421641216800951116088232215682899024872546672838286198473017608073221943104494231767367214048443475004028804790951635481945384989479015053197251608007389473730601288258107944430154303732754338890340701363214725198317884577804571067457961736311536104028667951645275807765113614236624248004352325179597280778307001780023883395371810629141202451833242187102568194047207929273390042067283085768131853088450401470937989289271554863927223033891082448088059984527639534310078232440947788494771460686578877975104878206301960764057290947996356187693941623353400765569666501766601635901337529298169860733291876181112879927098189049514116281086724622986544745780606648240197224663206825674954965911677784700929513686529326230780818621245148972555362290372348000936231787501991235991904559245407876031048289706012562800449316737008288190390891521479851607497423343076386235121905842155476230766031673955871462505331544345298462145018992376976962390380187302186720643701836597669733503713055733394823796531519418211487484076506702857865818463990272120024059426456542130351861555109577918387694228128089592143786791664883728310613029287123884004635789736427929413533074271067674633607412601950218371799440302293075631752674230583085440151826019509928639933104793291625001324625671879113289718432455553429432048921129006863444887664446764268834148317010229006988572384458130813581195721222993895244732547267557721655483435229818622483316162759968060186178414573504479107840648352472695930986753600119235160049642061445912149399943230471027965846587277573878571515187512227238737460159616624305115484194756207903048683022643512784904188136946466305891336665797047518281023887797928234682346509015507634896524997020631445787908881086211568287966375497774970670445036275403823586001991832870105995037229817703555151315737314639191064096773702702977322767718978113476618938414489843482089972244792974622843595576868214724905109500090441691815833085775533213395259719153963707530240876708125222618177183351095798753344249833829992531286094355745644632100084815049229850928575030818192002579842733587794865728410649427594651609523118766751327097896882029218271839338079290083334409210044590578130635637960533311923928157683140646292546885489942665227237641378002820294281846830739660297502727453482742183305794628743813795252598120113624071082746327027614189892899521536946518628493704187543776419858018194838079175047254878414175548168394252324526238989460583051743317025454637064698947534093622597889126650147325085619812392185945738484796436636836302223096595694205234910719001212669408266797251880757213738064973899326845949026289883073220677339636411858450690057498320161933612504056959976687836269158515436889040994102865740620686418438782216865558563170431457020649412847651627914758431261019882761990858783980225277793883406535091223696978510182156542660282356328782973626313165437774338750533950855345753956051006191776601994978621793087563177491448895014367690886890404575045886281823853791999591333035115391456470223870543815001214248087154047217296150814951003690206041425147914326593040809389003074857900070103677550610988721662389432523550765495059981816133951277467911594075194187827418437305003228131046958606252239336633265944878801895126633448705388200049620108256873534506654856667513369859038054170947404310498617796795658141425023539988050813101404553623185939807498521607055698721349342828168486055476991151365153561377430730134383730107402480369968963721677968207423997028444156246469123789954970822934617465896316318367348159935297472826097812070477845997460242418396874267259376458493748142357341734865931657466189130699127422371989486550542108807520153807432768637744670286444546954444701381300265574828158398457798582842148175479427167942932327759982756079134020987027716948226159285695214793137842348674941776855274829786737155516967461837326302162200540106813225445232039053794141157846607955807323525013744754036603267466200873755929375153762931552934506372103481086475313085786364759414878350418194828221374079476013943957657371097524087490496449716226332620088233773399976068848323352999283636693799076935300580285281644678559910347727495655110971685508527044566030616620798073338113252313751541438668969147058862409584431947560822802051353160599178686610313382802674689577336020110187819246840311610524829528831488298821684428469356814548292156079297303945816850059295124195530164973642422213458100072450544123404277747359552957443827319638268245129615144307903349707174004611936877245112614247291590756139734782948959488069016582243628827446411484432164907408184724676329238723379763807393092931771403269216154839946657140614350481013251397091506856485509773256715709745452894770378237900631603440659999865376094427138184270781945793267884201478801964630626614175311775003909138624449832085253631958336009795298820073375508840369027712998172848639052412218553264226033334823870252949449204528212077914490841753827566680690581980295163129903599552417836727476442510317217257695877460317770155206927260257121592663996488086472881308017258406894120884727584710319339293624925870295190144752221898091402693149907452639585269809407939206378840170900973220885136130367803669518234109260466590267832631627217889358531006210870388838369298124164338527481071772870492053261169520221583350060079940397598934506451251731423844237958782090209818520842917570065844755347949941312891312076655920729448512430078131068381732372520380693616436108345208872348252441747543798329268480695295774586696135790811957569086861942078050796738909202656575665089969823169540724774300003218077639510148269918122602810956932738743124068016086546551490763253633460517533717948508722348570355860654989800667991209078235435820028158065871812945904562417766776216167745829588227881141195602447965392714669612724151690510427491634229343734039188786404171575951951179871842519146066405835964529742200577065180471314582337040765897800151622353883302954723533386058041189678735110130780539042401093353374069248870182931663595493175524770109707318637834565322140285915024134447190881763011745149501177568306236860644677555403303159680313506680494743079966955224493263103672263342573044180666456183418084412234568704262239916994528411694783874786632277491930640520524468638857151148546463487350285589866268224965959532104261729957932249414728526883016158896275815908869208092050408159065187279337388985064995504492841432723891926170833654894372884958345175847498666269631091320109697805115288158586748721582813208975449410110133195342644355495604456818111993845384368538231972872910559544331960132663669967105755667079805659245348504961463469593089356330131416789219466855407433962886511475014721969704818230451125574730007360512389325148125551453853692518446828910851303435502904666905685117084940654422580751748615187499864147058056877056003914101216532226140326189012405486857707255268033675059413120070950925300228162749964423708760972475240770180156661170901606216738757492189530081426529611525904520088685986689656532992739855177627773067253883559585652569163062886724040570719890704740075103077026895532813931171297293546783845015249404543594790002416860573059289920592506261045542070974269850711395123423116524212711589018155952564435002366680017698368139500206249573030493015361499982527446694341835415913045506989359722511162117794462666978034878092015108559322708759107612735471562587499967544369302934561975430096699370858981566168543613284673821644101561546667273400889541136986362617884489468530934639872536421373035194857083454127272664844561891126319496672821151928793421577887406889503163892056167504425280146946511619555512779069119985439880472974926889126757682209908885369872818338909860963554956905065094486371375249283242340763373518143867255568243685275390806269341358676512466091251030155656512521647982379944554297612077219918828531805958383378845091612202512547163324773355916983817354760386605310727761367213491350368328583499888501401589441928211284548120786839579517200528062542662397661233967762929972574257636693081306602594922526995254267900294509270972293688870182313591326325356999957652159249579749691492312900848150921177845337281011031012876199460832641278272529522962134353526284147012738378178372535066816756536756276973103696786470694958605378027020155219170538251897895101056615476135825607279691192403242520523043827861854011149368285988983470626538068289011649943773220080817895732535276671735482744469152005561339000922141474083523991821655525500407661054353624744618012827196477871567886846307881019677344774019085561981008283769849147001699246215010555956341910912568932376424042583435215606002576810151044216702443495168744897116153896656689075254241335527814056775436932695865709107505533642980055152330245424478630893516571120351433749927742883880451810878925916931727277594058269068161951013263981108627142763010527961483920883259503044597327362612177612120596724908808384154298042420881181271479904120259118297757664848764174670454347363344212909733347146827765133529060620287326900080690581392151386117619104667937256123437701467924132921590717960483233027573160032450967864586837221133428384398294262211758272141426830944094064735922962710577835825649204031633778751500204377280740183820639758494406191870309468341490888368042195156664868844423985117248968860118111038844907655991712641715362791692825250366662123147813819996285998293463572100850956532795933481738654437300154205671696755964675549984621182472571777947351162448101204309381785397012949685949602087416711998583041747943140501454771412687994175839333530404730708258742723684754920808463239676100076965479739170306586689618921129865957514873514996341266910453743657356557738215328595101843090386352527065334324782471318921568927548755470657925797591708762107165795328197304840026148873975502454847439777038162412201797185878547671901458571013846700935993335415176410263241507896095954621010376659477786447036014973125206066485045690929917098775256477678401759593555417514519342192449303574156040030315547813219171860877120656412936764623775040218343012902379989272821378789388623497744715174882770518138140545459649735381619862785266930684849515620593362552610423994306292179426254881876166483167969116910663272839027213190733820490618204954445766848547088946291365968742096518395472286742174370878410539123122638299663236799914668546372324576827794264940275150357146790244499959818757738481574340606345414309713276286610420369500275237379095795078394800767360868921326854106828190539563562971202909967142816698142430455597489851121256918036853480506756544999852156204907487090290196855700271451651389110675349156323310240110191693570641260216887225191088838586878337075552609407671685423705884594653903425241037923209008601426425073323791680144036102369904076681269432944153543404621982049063201375716208501097554162265597915227301220158186003845997520516026269929372277103484105667570648407993580434666756432814246668501210526541232188474065778599309831557546666067581955886142759955949432488716739261579447754494827245160696055245042727606895086307117511840828234454904997770364668127169518050302236101272776542918492718805747216617709330827021387661245479068466532409679445315508824067145141411382620948398704211848537915669020718203862529690386432028276341973192463452943769344176908066514499036641785805429966383721812042379725861534264372074412668761134882572069326322149531564356600640052948165120114499525831510604408299505820888190119933982431326515939606814725056122741714562687339177960310065189671526539659673689384534953497402185295793247622830370312942413058540795805670694148529464728917555879456210495524544193204559675058520772316111767544809749707887809153442466125619789790202792448543703361718932282522997674233799231159777887239469288453325015257354413540992973741294337188727879243274878199529038821122852355604251765663221495627750121734502589557815350614179611924798066822800426134224056008651183181342071752385749923317288968024096002787581307243671191382088467513618219670338329314563603345002860083296538832458786269903323553848987694070437560209836322695035452057718359013532419069939395122121671102388538151276688246725283750574632516139255003158890438486718924451858693653890586162099905957800490418555511345528345831651280453448000045323765435100173995944545346589068927140040030241421543359855417514361066595333545264710854573144998387564057479088220138141398398108727313149432778815595369153179886898893847874693092760733883789235476602132244229094914213768125696104838257096366398939420862269900076632541509209350017300215177743583526253952826425033441874646806400399417262121611162770426386253387875582183966235367631055870245380920345598296797544649314059538024161215355840931743087116876471479670581705242823436576282926924169976726099301806903312720556151276166061037936722636419683572350859642725372462227968153942549502122035512269546450453703676002637992750476737989737224840863022130565304643790500277170106678085336995905631377058420594635883337054232518164841955825113671660779211494146955765816830866901290384848248828140964801476252610824491702743388829349077680554826586213488438754566266132217334143840958859883750198697437130994129213969119088587158571029225304731531325885064484264587649736526811203782169487993253413157619461993645548155623724204135386940921915437834609676186993535989641615133824491009162659851102148562840752912841349540038439843274299233847700239214190897347594543743170088903797821214634212557587987431499806126333791375850855846607416642559673903076691900701615601695067542551725223573856892608174187805899850692006226176456218674291133990867889355377324734108991937136800712744499506285527371296649917747229487791666659299249574431024727031796559725920283946991190282760457531083514847334351178238403344792845119501682427006290229330211830800657376195557118675831751386488414365548342389175084219200965979654915638809210178326604831638488925215871348441356700055783491080551264495245693821846334593365092415324578650503997806500215161294794344110268179797412527412218656269046236557378712449614604341996339034748942747883154783755420895086293816808912023307236665965878816049697111888421517220974718659684095946844201441393861872070291454106745553485278117855506519905705134099926179868660062603239982885670838246862388905712412007518989607261141322590396264284881980567983811105219542161241130195130962759687331606911942382732098186757700250828135942912824859135917182178038893182659758620330831876338385725404790669137563153290880709783132953432997019255564062036709936780446241476372832595903203524170710456169186255133976126493895179886955224621618104562143054470254728913132501384585870080529838981510739751167842255424597686599328724189475637351570186957568034088156329757952268239016921044404121209383965924486840921894580459865899366372821868391685850115335896941126692458875773976971239650746903519576106926324509192391601013796984290248756563990216601136302794888252843527087513634969941325661995741678858495225178079814062175713376224922920291656467158860016287698283088605130277920746564926318398215906877790499292651302565824859476597143129236225436123543287836021230460637068847388571363395743292230836811471706305471984473006593900401700258240809694023343483716607088977803977222222414700566190866773404452418215527107902501131090870182496870891564470715999350271761151453175663513131776677035188297128788642087147578870272254604616617960448395199141897697992045747158907012611927081035066409362793547152938519058659661168652572433455691878309027434182854062330515392485093000210746406597412206510385864698307411340909306157794954754568622413454889868323886508177256232601962398187778015192338444278374001448122160881929987899250576780279938825062597701028965088012978083539887092154180703336878152245801981008411244567926874543752086712804113613067194100873741846340676496770619102733560781883889560711087597304306268154036272449488848514263196797847406056111332644013614665797563375024669031203820790693206878278148701947594928108654307055902360501231043626130280705148383783161725662373841413046842072826825396606572335137658747925905020240678317766808444261308947310194092670702527983975336009674191557323198362632268388329476858238514694511539417225003971340048364348100401486245526808363850450542078308193821877300444347819485663553127371383994079797323774313046331920926625445362875913429501990704978296796989227375745686658266651663656612317074473222914141608280691025241693273715949089551811265895879646146645226375083835131779914642694022945599182422680991622904052406746741863782294542056595468236159662281965114010401859351935679450785606502688429873825333102034291346527461887905823967231420045863386885708708172449066008875324223188336521560484173070326466977710312663306429382821986878618791877441911781090540972008989993408944730401128234293338615833165872897090789281319256854089751591408131586122010550465734653670002780441519347290620992147027537117152318271063600262503126933599263618802832372580050603325857895936346600256535503688619159021874906181111707221631988588431051776125199177329892970131271090264800646182348142873609841586908663540115572979496623368010478309022118243301287067022886316198596503105497797071523565510826184845187261453038399323225410337475774098033762044001654174418515660024352053598444011421804160101638359440112220596696550828113806381113349379158967075028276552516418559184890886722165726520393256000380679311031483867959244967503708798079907098509593441079898030085622225653605790059001939494904112126206793793181379646792478985721477231481809041093975585355876785003438106167961315765168350342967674508189017928225390214595020335584142661330610722900155328536669658947684206439547894261034329174856898464483429977048326827296428773847467775123638542909661146710815355749393982037272368504563561702951557615974260223760091336423504390773438922973829738397310318289741633133565877245363709543083233566998487548764580721331482275184460418738581576309812266135180225206432776499704182773495329094599839988416473124816417557041772423797820684834156246213530585183598534809722759871278932701293344344685415219385036967991271449984614639833174820721517590282610552151838335160581296781980781695108956535970182557025103509730680620548479261896384067049889550019762446283582624544061059258190870611261967321714233494055463782712407075880891521058512631250981979113896577745181992877619463177038956787426460598217663110791741026686846427211719096196697945864347659051358841265543168460799098723741672773114271863973207761300463023934950545514815511947329863071761630686139718942881165152737012395273962435672122057233504374822714624274056416586156315365810576812623089911604361756118245441014858299408391117266301115069747851445749643186425113897636155250997366944282640545025945913636395622844346349353314113395021379427095643774136354289920071328278354934010259510391875197223944127540686495864419111110235195412792626972867708172577974299485318977735915691164381829807447081511456868984744102845372654877536528230055728031193622331865321064982727724830589537193850250905557422217968253370054340756492911094784890793207661136045960110771052899627452201158836970629732749153402024384283976646053442441168085749831077613795353956015754846034029751973433746062231299896236586150456748234155193243932402465181637543873234532315857870615201576902873675715790196368949128032697333160765326044803464939583960990086905547804395133581019932233553741712571659079236229318275931911019796026835768479722989857110638775718637622121978088548946967658407576933040101330297975686377227257958114736654160329541497749890643737665374346212386229307738936732784747792811523502779011728756914144353673620887388566950122306483777771219802932948208363854459211007556710064865047727395160928253092435509316888990178827126960511352702354224405161691689047330669419294377061100016915173073577422004733169386872175167407508304209495832887142180238718708169784009104115138155508389293665911283352200915464416652305435326866963385309916690720348233743038140769128122876510979651116546617398638312567170391699071079579676723662300843720916659521948860079995855907710368069256598958325455199095998845500095389647237864593273984946941913035631047607633925386692562800441457532150086643444459765365041167908028810275805073135080970605153467453726384188415121750512182303334164637565669034770060544589961472837236172020615991622720742839066049741576426943324337281246753768029640751042889778383091530204577031455944966643526438136725975415199622794308266015587251708160189159473299438937281157391616605937046405346105576138788496789912655160308919895924157846416018392176817722705508020784036824913247877260102529464836982711954929598459155074994977786404855223632020497651207069696331830906751614454510137411405862422499681225932249585528092692899633726358928842356373962273117051541871626014884134770567303979704930344762716440658639762776614482825373867507520300298428338625185918353539640567880758733870918470117527578062833055907759543350511528823446218382064463917708467489559307451493517126700167883615178059734499028916471205816212933770413400285839679908430266256135789251117875182570837309750719971618882778840527039848048430938738446931955996178191124529012688060828399688737849756974819614185567682326867667312840228353650322263250030600269123213386239833914956998530145464951366831033674779732676359127371928416576439476091222371780974941938420155512865747406595391619781073358179996315918021409141946736874641628155150497171524038026554447176196254633701629727676486142583816210467133749678645258484532874237041678945000318788990667084025790534624030019137325318841360400397317862392620483028456082683917294784681108352356415187647307377556914369630469472803189171816103747705216827708111993704496754947991519486190322214016144562578227172246366702653383769439749673890358873323423369233869499096607533627369310302339726505242372814058621196448831191910020981512473223476053702281860321560772891449101802548723840428897490573799468507450765184533160681013604678263843863422979568529157705711867747075274547060438946531236119060650228318181448024893009730181340675322101203025441554363006214439310865549141573636189912372798893306051369417148172860002175185476136354669677849229876697234508540679020282816244429267107554691465971618542575795842710065970261752424454092516316789023677485407499142750769288557372576746736369784260966797742584758418964589555890038368537547147824403088145381576592635079488546694435005224108083592883931253976283960487388764714895310279379904265029540412133645968195875605411430925833267474091972861132428112734889220080396277423262633119214689768677415697564519802938556898647233491760262353307291511908570544402342106554020026097236508381280909414363618832964630682118394906032773755475912815259842438239493709037161757972070568294031921302820238052251588161839035391145848522245969376872090725463204579325526930190959538907325959907507859315072778211959107829648105581364292586955924833889775444827498227306198469993057452097408639797555083806345890184612049062239588454185357569066939902345108700949773765107992167860750100640812842126214218810345061320022328524109728971059788641553415678642181080799859133612370248757875840157365930440203685970230027525463586398298861027081513964160508532321145737687974225816266089615948171244373177228490606652032189336638542912549479529742793500273403966655502145088676950557834332618113208619400825573698547102563260297236641513394312079675882211290173501228242645904829820344999004623365265348404515950554724481760159958625263043365075640438058102267980376053590119056515694452048751355161701232869896591840516318565876473891853210938914764970180340227705657894609013620700611051470689740659902072253469001352764086253161229697481949572053990007385279733309213323683989222325026949468045533957138443090495749607747057438038448251957329390370638310028346403319219836526399001523597589144641418241323017405700918477139504722390252265830338418561289673805286426265960216954673682311749340779099936110444746255412458792438240863108509861323393912999950633349674426460847480382875647518336324422091112170926739597310745317445617295119232767807366315547900635947879549352361009570921368680966574906412775891986224654676539323688805290447558064238184370555614758095945597353380632420977847674327253990326642162861800269418631378430150056998807432265698455729027236519558062345103366651362673532391318246652431243350491081883916786456036430861374767004038046058590096856131358726717081402418850217513314687954923724204721026602050850191913719767243816582918846703660725929797316799361203959753483038000061285682732779489389583308031542888637696020471046318531039703005136703995596898204080459932419886156106724351014888975898386986028571612998039850068234943104590981930632296912718691715968733634144577445130945463356193931477644343416101700423872287395966113835737589225372325347303446327332178367993900278863314652061483267999341219556610157406904105909639273361577716273265678509402799675103088975713565877954919874933240373206841575359255058302752205087248562450581702726709956287546680966933928229226699534259112537050444660811555324989424261688577384928058465124637701538464838975151499951845136687392794901791423350765952365246445727001468921387756942362459643042271441011516785954516992370997103637181071873564995715076340932069050189205919538178205432653172169483815598222465191775441700590499221316713308893584095120833267050016245585727204568306096330031598992389679020043435988304653025914728572362968501928356643100069206027180081030938448465671814956669693764715510400398603322782072839824793320385056570006722375512932520806318718604709735152732882569243849436636476834592485015533402939079038374381589623452897555559332734676048415917046270303694077514926842686091250621517617233917409971461727409140088191875001233061209375846714152837916600362961461155869948392219527505213701833287753045124843734171127366627933912448402638736288508625580883089565245453221599487298401046112765053315205700001461231833145433798377063601488176849945836346774521535010795670235544854889079288939282219321646788778197766127999561722660826063212675645887016360081409890173534241977616099932505691022039405402878866511492874848387401565631234999655751401516973950171988405276553305225472101605638667883779641645891115807316084350771910376397510039455969555824972893217680272651500757664141473224373203353931536641442959861251778294566275463415466499081037669879205350643620794832563442752728625229115189403703360206897345526760720523114074928628862724616998066815928086096787269223331574362224757371490180777708987655806719842519920832940087872827037872755460036105570769160712610048957203371339250183389704795750056837931210406777267270416557693441462884897780245094222732966993326597380287850485570987574447883105193334152437581291425269424843394042674282169534323659298689575645991054773104972647903907556017173915871815212080341685362104611369190274468582383284863448014412880336217111811413506405239443801772956135258738089668494045558826570274171548493541450206873594656526849783025679565295391588561234145830146152006501054817423332124635341366642828233402480649914007300266612139002605157118422302418113968320904960032179397741426537043727166458638400171403024579130291891521900563265101333828224919162574394650021973317568122060890590575277424377267510238506768570803831556551146081972581889233167674797281971720758229135016220752195498165936628809847204705293316769483338690645560915216091629778657561179556710410225314010608222126153662840251060081428646594850446743662758858535667381325004585103507302054692766645374184575346994206899248616946902525594352263814900656914463264409670317166616610181427008449081693644222816401349828128492020236138051776652551550131708347388302819543675956630855555537689865853176083193224715686374469972970537108715468177150571359867882642858229146023304099067023112708821833259828885732980179842495512975077474355104647433033584590307672505960319152525102535339282954675497645346777810892802981865586263982126291240869827011289350996460045085219832455374037182763677455543320140298035367973460489426256763290670718947853793325291454533107215669473160365622116107349690521168180235328947634944856464717641891011549272918520758793814288352299434082599749148973998233946755689885189966467593299208821560876424084271356760525824959990206262475129512225627628029025286875999243532797114298420264384954363758638165705866112686520545054706135029929902514129012499788190843149421531201826998702488281065691938971740205163408829786699387815526980707465974049399433049997380358712734299526920519166403175141487240483917786646597367774963533026787214717299581663238707725385333018102971749230021138608591452747039479120185497319349404684623654436275733704953845145504535124966773338498960422888004185161630169306114542252035429922013456047660798437326741366965620287155759254975161651888150317059500131577066552384473688756222192099010174101474032215369143774228536890017346319794081984647181602695805927448864237753226137377376726938757290180740021098696231732404809858060119419956712329230834211716959114344447795490780689159750713375802315824031702907087308791194756227654213727421575358506517564513068931375156653921760042088113174321754803076837047832635009654966542788860069026506383260909793249400125360199483819515416198142530422139395561133556950579561014094193286038107443043526988350770021901804196332385816004032844263680960769863361029562497171093402275595047414996428254893942248042993197701513172937975943267603502070524688150763354069805542809736003471765796131272211282193753936982129978756088751518347474624520134645814006337468570821012603221202010293556602373943811743194775298914825996409000422635378262056699102573844969918569151061126159962200596298072276692068463344513772651439819096480294540254766250954770996919160499784146667809808640589592680868337141390975445154803648058832655463503574761733655844023473940364385184712264485462146042760753225013841092543622039947896523455214273492341805881998794020097655335831018994554798133571353629694181630077539346605837763062073653786718042514441503848524721008056424935490972658427016954905927969787795952744210479173094697564986881317962445045544232040718105339539530083919568440757193813431531481584649037297670337176472716299968624030099843144932820257494679739027706500668467390019438904483916659679632369378496207982332837708862562562427320195960344444885023231171758599351848184817083138741925765246193706260811198263517845055741379465713880578797846041597966162058708686051045594064950868543993570487717582828466867817584513110081789453992333099883851468379448349573437969859527169664736586608033978543485562735689585994976401309917370850534385225486639425602925036211242028290778742180385014260964000433726877643681666408981900880359014993706915751886750399163243279952971242927078975302987064568359458577516140455409572820842645015610807317730271983186384273101693373736139714756460660132376067755319181039505147090604244892963962554704879060110147535046214100626961581555980964438708564173530134024437601882543706000848791414233841625546575994888473685519193251875453821843733304572708680300117761760017921675935656242593973368516746137455343776968520100411049094487345601009932331785498283486200634307164228850886436593059640214750622214358373356805801075366161746898073847635826646189812195289833867931041895263972860037333129881076322658398071791918626683130131099290817104788026954211104701275096789533967340258308046866387741760699109714437941021667093003370696241621797559676352249392858766540119499493358483809031064030850794626900453835567349638633121043904437529716588937056776400949681504395609598163991319681647560306246050420726989735676512586705822552697489426142246224793435339439967209847569112500680828809672448833549529245161861942058055933203899118068173863670459381244112862815956771767522384899876783033930043462981464651114648593188920806762994766970055151252926229042990957671876917608094805859760645213262372154714143719022024787584010121028289439369003305586676668630131247874276174409937492365498748310011069763678764627099581680438089122821274274475592097087024770072557327835024411908756506913059981669975173408254241394400086848069476023448334263498446795081815992486242630193531756613035294859024287527660790143911262788566582725736301714459437838035429580232835152710723542056393748934210372115000170021656352413159640663246661345914020868195002538761660271657374886551153745200593924660213541937731569194963814629582413020929864447033891642395723775541697031391125617680352883881248381864265604635856431097368341856872847721034869073166756583239238706502645586190200278812116662552664154404206901577914241248671012245209216929277990271177439336598482669686388336634640187789949818283482468207338754714238998640862042135074980370134385324091996407203613262459531170585303958340493271004913423355569459852802477436754135154434219246921932024191296080575722271561182498345877083623974810570876621383400093260413489413026653500693385054074169887936576449228820017417366373188754002780813454173633896168845800691903694540618488730606305943169040722924437898187562460320937289007301194248748698549162559428864737276657833755610450802633250780260186491982895728858118971722664798267118964503207244979251405483234324699796332286260755494081948341498636687407060014215742246890126489696668220541075476176018693558067021641917090523051354527090917281885040240538440146197410012855790483834020182568483670512781916362717895699748628033225295905799739818930923532175699575784842531168375935452634359107272953692994466345423446571832748042771615482233452572144764592354380314641789711057167672782232574296801963897718764418331021795198031511565174597947676893585110265611018458466113230256434306700749971579496168347745601851804081960482591725801302843516696773408148767721269845975452872525954317574204523388753796650180337205628395663052290180964784823648616087818727345087838002222320642469004729928965767573016545477725329246457273576123470173455890703215323754311244943680925988594199124128114808802969107624910338375480167651962271994922291402687867180326055850899536900278908172294806493308988198929530361378660896323384206299749306469650193088881343645008357282768371986006485722078313425096131610690835657859934530814461385011977636096737169435270327847741730432107059120594037088602706103633282335963081566572115577250413686312623777326650171413758183176278376073171222205424200748086386416268924142009956233428187228559238521435520068658186158971437279864689615174787287315775938599039486492707140619072062467444920355746568325110119069868720725200277545065142194686299924600053194008574564300538305278507225321333063359318304354710552219463164993735095628205977197533220232716500054482896068575107720736404776381452502165529468278341917521059013276376505338428909280219833587596991576180968444087805592280786511973934741288921519950825837915460807312627462729400724066382481147031338412539614479426762797264546201624161776886106585103695456033786848074893730200039166860078739550957984845848745317840015237557459906556153797080175809963935787335707161250579591839882229020420136024798005363433668820925210871321576823203555559635524175201032599311907106921278355625735944462523401608547572651957969851888319191901311244569277869955310078671515019006906874760332268528188343352007710726037050859428961902986588269325567803787030086087583818327180612900020479131551761377102289748318072254938972199278240828003628456535061172737733433722236630922940676776167346894302412449351677686079542590811618528687344321663252683057000255712363590186925941213006444750319724829484658964406140389391481040567151440582998846842424311684952542369545785165384104919600353348110091020787706723722839519762452665876331430089006223032373675772428574697711552473563691896211983600259623010103995682164249114035337636016003753372906723855277471761452271598160653290153387970656208342931926500132498466837211879937896474991179748321963969018421834147614293835250490145943088469856573416034080700726122738322070315990998844881339150588018858381364923099808612532924439492948869022431416125137513754764657287948624050355826526283695256923422289528711605139745361131203020234512985392006272315636853508922155551678784119041788680368022396267298335375960436257239510958991386170718234570218042898775649552268248770784457704066589032571966263848586380494030415731114719825875696619080809349189271077054800383012556927308838401052421898546532497577532926791137206824358288953037644396888132824403207045322200065467395185303071117476431155867208318527314543296499631333019607368303163501796998836115598044701143385437995863644882684816953803815059750194603091130255012915189843277300922048458563890145040989694959916739454553107091312393897635522049152828582979804513997811687363003580585275332635839983508065811753696066966353391170439601907230873334009253884259894781599515758365232685640714910515863757931357131763353193392939911628380557569686443013848602762702687940764937058186353919701783649799812425840160649145156683538928427285433708714729238105799751847062313875265219459746426055558660559423980320390715840806829415065182566797826119214376768255971896177313359205606333881856818873619806542704001943626252649935451510038954696638207375663290938090503313708658536074878273370234261116712879857831773031248129899671924500517181185755526157462782687786793636083636548777896408483598844201354252719769481758125420890046004424181021850881640026315425176572431490680604582259790168076519892746329955611944248705614240486756334169731399375251465330253118599061104241989639961004068526788058619758524406955920586803924809565726552008447862679335853727432755499110885690388616042943298977880631568300292462956318328645699973239094699421532181934884462338963338631892013483443795576231170804084349233256899583939697776080615123120093038480673685852244240204930664303176410875230739971670851126853027675422734670750153043362138624909388727345823503308716594372621606044690658121308088399946025664909265394850218898750141080255270211023680948012883946324897381273240835586886897280060135212718082413342928695340638634668911046868347419592108044707257555661516754336150763258787481466525029688337948081169291086189531068675229774107691630258752206170180997664766243631629006483183521928629607422825390052736853038242549486777625518043349199303283437184117539231095163215517198150779438750210727045712605973306926408329813064462179953661583077131701199903315999879453822031166796875903155389309328322206805355865245952546694748182515960002517967289105740332271664466162907510809742752639776725295838753605678387754556886073617008503730867294567766806243453894786576453722706828277269338988547723778098224861356315065064786119677479482765214244393756761309979864441431487345154063856514580121876179642658295292471809941056293253719076311490647233419702336259583072015154520674954912417886029366788955221450298341837636461153474288812459475572457854255712742070174800193147080025150544715699733929831707407691253005927458841853832495246632805477469535135032104696499490032489293721071125984679132315683388647905006530392163032629080819622288762914341698455400865471988241814221325992374283352127126909713966147420927735121507261380518821519631890106612730487725696918536204543325035267690327349215517019877472474997063176672854335302740601536739859042340406255131388889591646762941708201040247283468644184095010920370983453242218434469938929559718108497126739399173217225409383250109122160806536761729865825384223507866811198638563364488726805948684138776089861516201340421508279515804986354808972727930777671251368906202343729009688773948710606003758506063590598389738654226377641719811969532864943561477139453159346720183843281387693154747212467718665661436899342525724997617041716460586315846749424920584325728674163745472880540944728055144032111092662888691560931764620812513748622863600612009003694024239017824851524153919846405055885518242518221881844218620715106497154072896252271548850145475794620074526644158344648002028322451473753551172986569155224475081217291021604710159395329720507973632989131804602764490782919800165096522839061434634445871914718092494571553569876259760776861875418634574697748123099234148787673113838742067481607747349677832534975585857729273729196242254112524824364768322712510899615071099396938464270715018503414359113906048722323488698497828769519383225158761620109241838762092306543384993125951019008849406183927322859788336176873912521224842301654927638618284158768353059109802740435607526782514354849566002303676796429352110427483397163016399471140404372489629644554575123932613338434884870081807209073114467625543154306308374083447036041294702879233065943090439407247711673250208750011367265173331991207978295141254018440287423532691010983625189581539054287135690893959948060443415075804206581470663503929820309790412140706708449654976846789055338349219954640323537259010175479233375218309777825573236975521832661572215199999061558491934319062118402269894172408081130157315501029184117509748338346349311604718922177831958341979365637813875343013498603800264709615058741640238541097104448107331346632113110722105069244382808785646662740265675616614496558095852395689145752329567303071712837405586522288199900859351254417627263149813281573159137444241345353599180319856431069225632525621307574923494358909690010233843017272985804822500956384208827136306165620449133864694964105599531432396858478707552405078369898032514903200468652171876403852057112158787061493159428437864360945257909728883876282859437756998263575001372647981932563839904912058936708657397977396568246513532325983225775456646430199861737668019009002442125311963969724505819661720575842386198053736403512805985406505689265575547802997868740207562172966274785454093351463159442126364166351099377713270478149027275329065259306289192640852395387400683527001644260216703851682051553412787223546596889834357381905843462367685056063372233238349215257205788431213245631785110008286286120457295847044820208361430418789915319665717390479682790716730070652802325102979655122215062594282678006725981602695431481154915383107122757097667216733303034912923712925572187283669094283752996988878453273661561223832325204060783542645947549483582023722395819854520878353652143423585864824909801713416891494140158115541499945272080637708955907135034546140524652970504405064047972877945638317356082334076725832152809929419564286382845184298962784225025488731677569522944279890424020714460154703946176244077618189508518792352198007469290823487194323278583965570171598736391507621998414158920412546854904541530507561986034938141766012774988209781122729542001829412880964081818011919732795447035892452605516615622585686217112764283419902056064188960000427698666282084756621392812892038866539682539280366706975361215454194376036933828107174911915353431970029968375061958373354438608879466962606933243978841612858070355095695649013701980825927360776080801955374354500486373145270182272271386639567694651392999852509774816149079192401932176590664245716902026857284949140764247991426800083342549879593048592634340552717119507898303192538636066280235249362180480721072725472997478453704955691310944859255609300946872200906605886237659203051295052891561981498071108637578896783492346049357457575885913214197247925603168048325437002410047520812875612546291136062523801908127567183009319035410767918466521727686188845230129977900767990398953138338502400952184012313429809741975964379270452511961715292479983511194620849836574838604177241279315702119718489206057649558484628078543321735229463578156188688740914630584578107301718309056577986326650364941610254283363241516298491490707691724714009468267059145812628738914552164856576560608428527095190299544751859487837222829247434513153270467327328165846519396974900682476426445287543293211659689050173988819057905393728927008780597852573610727711678190109012588821229475784236318591540964883449038881090807206614143071113032263096113754327251336771445302954625942902706784227927984323220935382564859117107904365164476562043985983172732712483377951276797566241213895445315293271010566488476240096454684561990240259264813758108613030572298631591441980255836856593110921795091987850664044382816395182946377617808234009872469585898623367096233239191694249199975472407026633930478371218173503004124054215331422447890350682342893766328338704947420224409483915452139345663780306540606781600377912985906771734445533254117076211564231306270256936357711758518754179271696925452459640315159001776555967292517744299072009134902798298471678084778547237130687476952846074956631792751384485917909568084837918035316557694131275380472689139335677194115520053104701662515420637077517197703684384629134411104773249339441469505490157192084429702597329974531554502749343690268563490185916519128453766458868238021865750945510274887789964964725049839974054792354710197317044846310115651673070456806094433547962851740880854445692452032570997752352252301576296962788816255593475054394047240269975654545226075927939485787159455626795433942756021788996036333783928697309741997765573762910211175298584632582632621537215552902344881521637150685294032016551424078975754078363988130841922741147891649136964471485981786442099248462269826233860007063748404862997485695198457076412008034847971916447443877896709401565205265567719397133881314990557928851437253110775402644410300392500870472198034820185735849896022972597516591372768482658068995680408714459318014434298502043875256916075147286249198378766747401957676440937157032344526353116560453929016832532589514546396798358995658663221315976163878149936345924728087712275504986124982896846199789839673649582540510650564946362081212127462351324187787322947010322528805145270107765836402502629588622524507616653187706017804812405123643563065378613647167407599922404919056310656792668662120683150454925330240334253819599548825937461724551469128658757891010859456567332609242302463537611419991639255248699494097100714896096758643962750960999547577653320142593477981916530506251476394249615188450769695527057266259159361634412208380846251767971724293847510409499959505577740251473152060167851096910928657091004788200347229780752131166248731204907719731230497359094672778664443874963813585327781915510005151768439541008980242878496739950134212443499593298521641932489570567633390369882027630551364005335376967181206670723426246754187738552680060390782601569936686981764701142050268457484106628941926574482938380324362379749371001384404669965433769408577015908168757179257907788562447886508488383017982446165507843884702948471206336481882694745368841950872341881338479336722290227081056566052519567082767499320244421431313556129828568687109760587033029188785121719685209018273394596538373342393466340872672800325968643003945843973533380721255871148419193103757888033568612843810250659587930301628885575617226266479664927302543463813729487911156306743062858922807936123625802171706902310635627121794529774237219688313956811103720516767442607781732178955270178927743546769676000619732539365916664638167946297779799783454778971587909374475245546122522809159573112731775686095334767050925512844833258813738386719938004114771832882514007947675168272912113917146216513458975591657301888968454864770058614763253371921971560181054977711290364867510173607462954415844976387534372671900040420252974235914661788801454900599293288790308432217980461001195774475786725408986748908764738884363274992658133836637256386038718065723468199492070888864635366630715373705974788234448225962879349420098350390876048626191541195759328542953300624422692389429959267753646888488529396118215321006144927700930128909712189761241859687762884160740498078432972278517497506353300498708473190675395020992537833820427277028998128682327360226974206689028037634668737785157824554206022901799066887623346624657648568841993856539695745488934444271860280150184012148702114741328802480535433508016065814310830978717094408800372616828712931131114120191905224223257744265829202337564972067408611630977290062275677716125169065973475138108963887909134868194449726716843326156465965420004523044289376591548618921896127893478027567013238132838183943431916842264412739376179334177631280074472693338281822907023784602292063844579826368959528869021083126135595173025245443678873956807745475931144998442632745613981616679383425131756560520443406979864537840081954681617217404144217123779312347532244080139089015677657890163846114860004180789933580105778466426328974918492603544755152979698863026144248848568456389621986517590971243500805296924807957047176429489831918763611554913500649233300126654716742937529481980992528824377737709240608382482219638821802514371858636424708875782318102231125123045624618311372896820302825931161367492438365526440827400698504219602656343902211233672677737534171034798196641293994516451368771172319013219038557526108862269086770043208845824023446073845525881344943821651292947824731059110220494549621215428105595076598769563461006595646149668196070320960170603655848685671392488173932623158183272603578319898903270906879359780279401078211042201727568072215826330710420833117505539491632891542141883914778949789478428689215564415306937210310645255936108468545813332704778960288993261086333593038982317804502982177263560262610122615280828164926558367547961483670922981405117385802566268355233707843702464935442662287642861433793999968749988002956933605694934304966988010369998818370891337591293997585844124068899993707534725257252858915188301217258721434547094094259940057244251792726388694874526936152506203725667259527687763840002215343160121221126967168647594546999667080979088303382697476336033448641345708679987241115860969011618160556879632863525844027632151164990023783124479672920602389345786174551347945664789859760488052661053683671923895720624723014806190348663139508719073212406706131404100536749936060978572168847266388714209935281754632932587306342200821334583034972291522579880661792967695783778569358596761579201938675689403316755797074582182032404877698863077863723449946451650850415789543715150980590613845292497279017194200795209948527823354770326854691319522794512507054996834273289982427896107974722030625090737874422001742843898272049501251060076721935632144887617843396971679735754834654407380799605438659194183076897253569173899683834614266003041726035647902951109645560285104753643954125124971164094304877579108171009279764913374350228963433864228570478804058064985029617189100949470680082588694633080963667465126158368791906047843803994901587859089855039615540078998673489635066943470374766410408333104538386365310439020610081013770790136998660784868573066015760733285950055911633742700796940986791100180732789463182888413307385761800192724680238655378184062304218419049974782526922871658960292560458826814488678838073905376825988819457791582686523695586198046798241499271912192734039691482417196460169058646164233579617767178348270934519445902385868792416037323239681537687980566106646257438341077842938558357496818313664512634508517351127902914927945176879269081012223495904668357857967012239962429609940147094199284390652871295981989330439638725267246615878196839898988328044230010505209322612922967731412520169998938761539108272117038724130823152074379236706500687574626404575000169112925708868217728832898883182649208701344701196234312010863438222418102921051047217487371921926197280989024885195294971605205268252219461039428808938734807077814337754717822714471573178825417586091452672999796113791400181891257506970693557296315326881982307685337335894227020132518123290312844779301963982796382970679285421885797544613388608914314717780087554747953751968153699306063562829268537705738060659686287514482001369345488230398882949816167008891960733628512038557992313856510038087729356645766439431218209134205801659916141167856223830931178950431002193847222522464782215428656675999668132978648487434297981662439067290481789708232926332060531831480777945633872597755225683459297856134641294450113671939070559484757931740863034394340091337237869093695405842745990461691940953637113076434234725457352716010400431488804370302093238876912613078283529850176047250363366203610474660299691317488965138859079087287300492946227068918363129604856268976942711658510058241894044696305730605967004044493488632958961138443703431317329847836359120152710726746015193066190622335884514998415411920227435527316162390121992890885958216865532252202811460745779716841093768912199573356595164264928862712833610705357552137163483734645472787209896709643587729316797029740583117761804789977810714099360575716489346112415926456256748325771392271968765016383784694062871560448904048032810093885690557113795682875549251406280347182358827898930687125969130751037867424431998030869407517895244195106534580294590222287738195931078791279942983416763520559593528908289026115713292179584054988496904844457800793855638177708067879895854794136907140789570819468977219234228478773048342912082788181779704029837088103436108863380316360036634469508773748418701981985154893395672305958096715688797642041079240913297582974590696975107647228377272404547366303317684073707892735962183424262530112741250894399745277711886846596436553107501710526379501223831516096900111703722692897636237514318735569956996912013997503647796535296557093141537830238134364541491920739777552350504218912916085225730217695829217042353708236040727888697382651311756148697694594330826834853032672431739311052797480622262389548991579454715728626783491273897965957517399990258522605214513295186768448301348204217215548702873026351570773866767468031104442231833141804956032528848814755527041855806966842373187367561696550898181952560094986654808776427899034092127934117894665879921488028292196122839853326533796923865285756841721015169706796329717360660493950149149481595045784337668705610301392751205711714959928235596440942912759335311714936316698576232800930894192886914373562795655832752415720438627174300499540284299381430908061920458908717032521746870190373946614277950507507326970006893241630402089869314536331551739412621142077611960691182796653128885275716212649637874635587409389405351619139728222182140810749880587400402351290576306440808841063684197463258926374330328386424149964400702932527001564715747507654744306489534328837162796451216307046059117665457521232509642602225098307882815430225475815246083660142933897803734453219178347062040271329203178851052063398976076603933100044108262281172073039534551684136036353163742803787686337792863459214102511230214135187950569045640111678160223001793608784139893933224019659120218538184747874781156018567215323525988447154949646917271011217692430916561031524688143358717855105772420505085218071115582376475036653599711250543478647231102236160049236481536801977329825096405538311476557973730680373380979601454485518288948828825202052799223981795583197166222763654176258195630840248617801641497185280483869329467995080701759388680285658839171353236023806136945187314819526598970913234905874523434818629951704662780968693394742183105899555264135943276245211982913832506344773625951644254439572142416891191718045802912359982693610808055223966903647458327081729588124643025991720136588989310046266682364356898509266075767788363987816786575024834481378822570830161247789738235069384641998128804532503857018671727480819879022622133858730677767558193273366291353308925741308008733706308052849745729224702749133366017352654024046668315946866134357388696913341243474257869061705151499500594469810032333119521970432964383906787592068364895996024981452215429332972419676766697359427853294878296005501031273315450283045108629324982513559751247787804137271872388506768901727737257228504200993686360104553172384917390265452985573648188137599856187264135106219391876171488248682943406691549827670881965222098414841368149411100879187269426714181362350968262642181569019716199976006182396522946856627513100282240208273494521366464923372698134182758939246987363948117566804563988390077192221800536065482401767598057048201246503881945052358268618148840040478386147490726066970274158842682379243350810806659679723399516796157218611710708653817540555536667184658033868019948419700561190865681981838566646635674255730208218494580806287268602045055034261182733198881464386909960910217407143928280825129407442071174244868973751417784723527078465166658175659817591717571131273133344577389079367798038265632847990342238694603571270215375783312909210494906410930671402826345133197601524948252904168688883908899247744414558974192371441451118081237167999544736875711020140482039181960687808832311229808062773764502785153104075853358763850698874688740124146135954376316687248312598528679461446714929527628247235875062373614174224610572990586125552423691770385125314665091001774128222671845793147759756169152429228639526272349844561799175437025075597905466715209281071315279243165912556794749950891794057674402140266264232675947894789468381376921761450423775232094498529403880931576280590734903176115516187070913071210847254175616920410622411175308774622221972360929884957184869612655453119236382225867498125047557023277138813199083542205563703583417954007132186266627478384220754951705719266857194594730572977374019173097904861149839452139248047714162875194612473829053303729453722300049510318450795905520869828420451627071732954852829083194991948363074062781067596248095936223690074272732172306567294244964601447710332914248554003636914635717423200262614591557474970205466486800941440870439304221809887461673159866404112529913926603863400824046246445328167591158952389425345864201613493230455570761445726178179512578189909990117514177173269616191317906457706134663025773978819176454371466265640531814224098089578664534011699686588277729846795463220437547489102702115190461354075153261985293415056976206345154381772483844705194479791008122788789823387400036136069936339213795525080925628317698635922133861416278914079633396497715388048851068621320668164299136799570240558297018610933897952567046780380195541973852235689172157663202461860776351780350131381703869693254051697982053246082087950252143860665847286716232218111026967842936211755698374370271188339258601857756329806430103011844850692635801703290784926448970629256624588707305285640657843205365853435346129090241967138016571258190468120860375018254326479839920023638133131297390022961299855157426151054956903381848140388171142529941513430812577223803005710630793504285685986603306641339258396156349269114448034016395288538394776559040181541129952505305310737782017962754152973703499633123183646468472141170742208835035584818532461862394362067278729908637043677115852920183161904211429806970280068974726469128142792158059696113977223210196931289762242376014204443321214347167621500379641208049595493615179951378316536211511387087056401082020159236139299968843810375407610077769375403937439362112459304166202382031528917686947812963044756632320210637771516757234895882091382221225914002816272362848800966907515534103308253338608402775772063909688616185021858527875433788978912830207047817829240018312974862709864689058897685707842148004875429520552327972609583238716500665873993504577301909510188158335019439651430472758414132647594243697222350857810640399586063293349349282796214233281590756210836543014125154642268801656095170575245011751401035633543081596806541311880026671155274553445701158313786550092242936873475769857334642082080110526595348667503226586511983758654430128746402546006384360061742077721495478038987331432982182768141493180973048540345064967551668556816163497755696139234788378868909087105853329599527574118590269141747487933022251296522528814774005015951751596933414359204688313865466062154953050552809519510122174493110313206367645580471030068009124358239362566710095686118588293970723787160679864882581302332689539165076504047759947866656128324866604986999223900514730184765855413232944341150614645393489533527783952580213820261287327627783321227743032295040676339159576813312211047496499916325257435246400756570977401536384135633201343835354913135785257634363766129964711268552411079966745923151885355666853928050913544773911979326377643452331163184641328578309798717837331399510534727784476880127076292401968419361541122143203413653722139047194417254404407087085781621868449169595040977115716766790908889362028655204445607543935601904088704575851662839656176677261185103991470645273152710943597502276557373054250676761473552859843111674987803862112099649670236280021500406875515322340223549166602999518868403590182736557147924300526585190254086751293826257652123777276867083889974144087192086223038279077893392727829832747511571288996543038609474766646250368043011277542587195747835837949335220202612636610945485881967661049293780214189908668304894543816742623098245443994717172779498300270051015516697596474384109867382930422735900533534138372382195640960871066631840165858250475766943925625156308887271106254343908272165945308264632662953986976708996027704990574534192510362492804056895414467445105951612809053466341382722536387616842868822076586303705755029472074152503106445997259004206867388135502640292442608305181602886762392428089782350403113755795077306461060653810537296025500554269479722885799188334057230319011405560389725435862260803534990241800945496951563204822549055985813160077196687476509302590247523739376679850226005044826794437070929088160443001352160704315382190537574890781024414853734308702903435475770150938140843838450456592660915714461857341301667896029704331564818538413050261460120332766468233561096080151288608856568686429271478689352882334804242309177878739969525193751941312836224457972474703919289985626822984947386673120147187639987335350543816876368738920638692103413114742590216042612282590952663108391754289895599287038153636809568514137260486863136382869629529329625006679002695518442733678068021999360614124888754022543938319535633550701814707081233548515780494254090244466421124887767421514427984947810987073744908808729591146021847148406495687271954098837941503322871253791501182055547135015324534244966755362426308093877947994395812322241501534687102517864066874999012288785599265983657145859391163906204348864037878864020724804743422594983083037361794629440216714247908318929684518725128019980822996616532785364028834125732026126867815351723406887975607569608396593919718268443929126381203960245978809952688320378720581883996165642046347183375152851202640070501593686924270739413844911598301941044275538674911055353325420596517367953697448858879978660056021639260726055171972422949859797641972057502235559571012957910698707744237211487261171398325785451919325219844425185725685165639094872431638640084980902656913557944220037548331786720187187482756848228942828798634042333948789326962909602456590510152661794167102007518248445792965885040134358716310325746010627734923888352255911230667811049044804807120676623418099482117897836577022930424488270846807698200611084045224181268808534292045023383699354875849549509172242367722278308562039934805410387711262628213812828335758076513673963922353820720278702789840288796245244555103561954667056013042574021896439420330230313658272781143808478448164978724495289697651801813064011963054805215462688125718764275860091130155177894703940009733058440563475040273697164506696308366704803023397872451706614771067790925004717273706669851419404308693539422019692140051654180179034793697045881604155919344935867574504592596074892074830430650177633372018356544131561043836620765159571534611048010586433543560910378133009519909695588213668755540988605594377683889875614916920444706750557569847215015376533414002634977309800602858654614209707321182284448346489905261102370447866116896173737639588902182405554652338002152453703958527466166918424898376971636990664599969384639831052310920106687010271286269654184730048517140602912677798645234053008719785290615329800430673368786294412715794603849680514614185963308881563537803570397469293515997009948013610228523212174857522382773624486812321023393232263514507762857778721209571521256549191688826141366958965001932671543474355854332916320074291141471369577688156206720860173438821721004783089977778791168459654618400030971652427268987389833453639481255058549364307467985948037782618129282999387290454245436622654656223196892348980026435532425919419796662580678909003545089936036258809160797253814714742328818531805469751365920060219461773533458505484514196972019938074698021093817513843997966117732671367131184112501687583107394970314014300319997671186819231898345122618875514027488809867047381874079462036285003256202009104930574324674093915680935261868448268304116656023290311309154124777820231322994543667573613713269937570038654503022480567672240591958767659376458926184526311201129403338386186777472956529032471231301300462117141793086662947592479954505917255199081267965455438319111400447970326940576155479306249132069523782872085612628660114758258719335171889571509854413911820229474119169016896893854724859555373963259102104670041570226704421207684982659159356162552203525959374543886014004201927393116950368313683767889405413756490148980022264927221829255112537050649558480540153189082109286569201177915384140210148465111102912768550432379735851912776552080196892789319743128999528467831999282570506600881876434809267072673427998970280863684932227613189587222731479778360757692077077382089182098474946332468060407974455015400461286169994583144587197707828175736179029926274943594573629095808220825230170075342603656393209658660963994358418256329857579582415317638862252036330683211881932379648084007571251135253663442392808019639242379954304238078950635588510987097945722074009260853063166780411863364573299559625468062242153656520333390294460868736574680219115278851235162918621759288617043571387306718840372930490759040029494710549191182284965419801682626855105294566651387458560300605532793676792544310888641101564010672459822555840289767358660610476965909420996756315587749938340860946990812106126618804613427528820492095875924320877848796637333255487287527427080492743783618498777530844450942664394253056721255161999762005903910103091213334044281129100694200915257724704413030161759017793364506566846919707560513454695030475558926700956496176696019676976431028673542627938836680725425781592496031285210349833804122767205812812392568269792608900268024866284696810505287392435132264063351132226853028151679831555417118352875437789150639239687463532587421796713211999510288134987992325600370823440822684084929791459526301401222019096498540032895773199112524773549408979536612039162655995938492169415178400264690854058461715101513615263557395287093119499986438955210123106180802227914680598548319942660750672668487954123002340045772307074239689208968033142689984531801771052842857800907763264359364121618716238163071472418539232494176737511673980513125447444995382863469583286262185398426673214766904515349871620336823075599972806711987886084725003624035572763963263576601250980888657809701143656103083653919464144078495765541070734041697722977178468905282206304487005409482280022739288005118314291398203987139587050106819213904124780263256848177842151595109513805885146171949526524823196917517508815634180140981025002311066627225666648108060306343822328085085792681875135873192015125044714718935946853026975396269837886702207394754535342563954854124608089760005358891507118422829499581501108343270499625433571617536893484672727475605556487818827227063956965424008341401562983315670241043000134926404393710248122842089234651249593575565332097931082770238094495845644498631958520425143326864378258248953465369026885956854207581064062723326642047552079744657550162203698238977703975837990388565072056588390386520608750325451996951677032200803564264752696342038510861144374802051684470774065081736769669537652998358422455447942676332751970822803472430333331229162819853867336104083023482062282809040632871765975087883467065427671705443443414710643792337558428495018899759543300691860396545780695109656118583976194921463832143397519027055442421447687180017858922082873545034874205136655526095221196512195192511314004196742036517820022080508020054225745973335875426664275888754547564615813612623246905245378393167795754155708939873762823283570946077960326678304951548070251081710632465652267039777229152570178476783377575950433267005062421136362488681553795197482309379108116685588419899037770497343050843009120016707463627144124642223882548549021988945054769987432301369360105636346036867485397034446753777015546868905449211223541843649700659681608755402820755568113824380947557370821217330742330736512865011640070893680565779655980012260017351764645735929208794527032760674941807495949653662108480262637355897750157198546623655608222265410271427283913051908618942173365230621172021652033269717849429928561961352609983202125812006478422879697113170604497162423408786676266736419622797691730528289490586368999538064276487515821292456696500261044624633783781419108462538079168979589688350535250099296804853776780572300065382225467025960561537103110480106497811693248721061607137503920719331636159773199501825870683409079605341060425550874962160276294385853508062973859551191167721016887685543062868448185133537052364525874987658473529786839688429821879220285977748273793708018464306104013349717516245339552041111726211586819355929827830650841069977965443572759214984761894950668836286735703049680545125201280438733300012962198083303143175128577623877386218199154133051416505859159788088315993279385052660724629263121852917328326692118320457252565835415370840679580313150976722132118116931950266859662899214087806737673441813253674781054735858835106509281610214268000383158302132949519823204810272629883070737610932095829227228554866128960783281393752573867198404124647470306266144838438154703761639467633108357523081159234243858212555077840316077815768537227558081236942187695114255395530169720785033084778083750179895465952650922123866866402498063881467079246463834315500310601652373349877746189697161406107078185616616586965224144331559378661165432252766980498300712150289137395401973031513736431144039448849805143039824425608618613529252740477072729038127225231087413692774376229054140174553475262797119215758475699325782957680902097704774088515271389830098561115739747033813031471962025988841385109608103431349200413892268837907466575719084027576027972848136196678290802287007407556650100147200246567421825017058186887291455255339577481763626796466877570585625380499616987113265733352790806006158092898465885963549630665632130244560234005642876721500881548620621069310892369521556609882633987319309588765047798666002136864135884492813622715736187459231114620952878441902485784060827269980427567635390291571166406164005215092508115442227322867379175425386805659372472591163568096031457520794627055914743475003285382601886289551265455454169378153401793715512829496075352778001752632740900387399435560620196126932409743591513286451900627783796225639007536828100329333753852630491436589208792703804322417561189706324228230260608312972973942278701541312202908568335562958654899846129719026984281051589509589962051873958449099561459924552957816100599673365107323822080676711749920526984058377623115393993022984374642866835475785508823359592267337191193547460004242026503979214380894004782564542634514437873717626156642579510903305139437731586594197912099842459930443656251054445616384854359876532345555387649251499924801863938257165091273027127495533617680993066435183777984488575497426935126111923998949957529115970572276463387163503889426716776612570593606059124751642951643529482308299953245511868903857402621955914199986924005960249006649530815737002487881179251918166704762490098856930665770280247039729631313592713160638359535218979231057319941546871033874425207530114423518495989257930478162308872978317271475239847795297320262694125016559354738867022773205215529850262632444430098736259604039466450196205494671153866696822151217775428355238557567728773536527399654492305836605236084422435149001605471447571605122010004712961664989495739754620532687894097525114638177301776082973324126339688936439491321170931698086931251645715175418192790615218778732442238794999196309064342543703849677474014030869091904634312583000457060438292172637074785945449378049243178340697360630615628195200199231560867595285925771703169457387093437274747749326676345608496719651598285652091609896163884839490830376229455365454949066721366351990175972663670934654597759816279548147070692806848838630213006638998266128253230752348227904779941623672042757040734987702592915220003361285650869807065003128169445660377074702790972639248188017601447384742285085032556148136563408389726659210731920298808216099672426731669883197553720146497465543745466003193952768476847533615606850592384174924414871122130184249863830947168883009871034785314065122205786127367712641203874441128245502078204312434589802937071366600510171833655155016015665912999061141281481528422121638286817282805201304747082785133034727399980747396108233512840037068741660865992370280360293170475619756151182084741903586205003042194170469813752890163649855402992615784485334136804037510831886949609256793368978637895160582839229316110471864276486073602039486789995290795540096567781629350886998779185369805943655229893989924782960561561709974737517285350038638270630391979361308502483474487791790911982261429397460493179996174976966099667126350671674205912698112858587561197296534703764618150181117888450715329713307798881438305819455294524009765513695876723124224379903007180138034928405510856227913513113120781806040890548731445292992887819740234293067101708607597774636583096527266765262064283268554479353954912767766706858754130738235568825960152054139007358263569268003182815786140202310599407105797031031302779275433065900909272392766168186569009885103592292263215539045761945001829633067114107331202946954966508801272993010489942879180313743282691818153928402098644401217813147212902867069959465587662338459180566848531731198784291107470979577258870244351015747229202450460350111604371403428263279163720776478592269575955954811987896545755584173334413032303686425488981883756159602275042332085532744025749816908146880048047284294778597719949369908365638086172877996412059588864111415731249440794167045372406013107313229368585065838854709288390166729455561497434948953182507662824396431701777306288413969396314780767641066775487984511539152000086550838018873915729527586870928293384745204454553095826916419819219369326071003821436437508449269673380231797992493743356658686450328791152559384719594273768039345921478673576026967292662471422485955809519179858651240797456709914272397448678684066772010061993294625435363775646025356179018817334151125766021877721282501776156639642444946561220792882473604245985698243009468501725339544877356307179237050898901640221299753446418705541112389430772577528179801685423295922666963108395696234496156147608890031949264704456061668142448504697030887242969946019772334089434462537704251191524133499155026528055953890479052889161812953034937128292888896892440412181357902658614563322216444357297072367081015360883311664295214168080179349201013372765500922167887136403079694181788911151485113297176761299837984060046617137494109516561105502343888311189642562352237646481316971887949507566333516674466576288377395986683792561378396178972706405690066371685610883423558879788257120448164431697272955664691228647558946424299419478914746903198413223998610751960628911105828694535778846253857706211788532861900560973165117168860052765731276364752263918411392845373693634274757032050836002223399696539875533362339131634040678364734003031647167454224009796252676512622887343742014474357672924733895841500297609529606453270321957319933686629909196519028486080764847852140917370277904998176305028715543833394752795743919534418721576522611563865846286244750376373251408352674301423651404561541615179888295063369853363621307292657604294505215223810767676667914301370853580687287825171666874381354855709873263692384452908356201951054931752627728189697709668960621593691558596532607649220890063898714405931339883648331149019739268543645220038729755584325943965521377210836942476209316330495472637391917941465952120491744718494406683469779948040333294050205180851243452144694641794988163447114073337333247204468793943573315140616620035783683419565103631833695492560529129766639510239125150360547874718399480721727887393123185176690091244746789781163325722229462502060082532969789590360820665739304398942767659122725936965015709347482160204028636768606124426300944411024152645274269450943457045705757735899544615965358004275577769499360999155778554273322666945247099440513588930934146196968787286284887323065156670132225653910486125432253338338478317207665452397699592667646002322508269884883569884747521122546049431672024902799029068340642598906291008411555130865226170996222597610788301831190532737287492444191615996825814663328844251848510962898339344073253336616730224434771661554464135600360693726773039388825166371317208814529985042945320019991795330569314682882595066047198447658436935355581476711913444419637796694247325954196691431876572247107368467118539225511368300522016486035532241978121858042034294562094526074437150141493212131967128004018979499496219305018271305633519426523845443440762062202677902944961522954489859515435626109015268128755984224634916602399679295001420213031730744694689605353712877830216138992236767689639860786811799513924843329030798947852911747917348433085987970051472739037902143548783240478403693965758312918068711558342419904357375486833991862527721521575020446735753663465623780695916368898304779445233977253226744927342171921803171814535769823229804119569116383482646581659207054837616225441102414510856553719829769447417572438140669234598977519281432624611828288198743674947652778202471706192052797507971688545939990587895070669311600752040318912566446804257541929201637927605963946134253227656707449879142058307755422609038728012260172839496130899955346734392982660598802654131289053608193136718723994787427525303650229792088570728709199773553789097925403489781477246960338292040406808000949669417546447145849020357328186679922714700600267217399455179000197237697726468431237675752362703910134001082265893528649213478218432134328207029157826553806181699944399371807752533538621988325090646063167112119479105750628200846537116563323642606883372358557760056633395364335181841492507240093696586668185244284535743427524252566160203953151830440755000731148652078170801686096508323577309949965027660223614851616257046506581832689191504208417875882851693981385092944667078147213094149386174218623522976408520183979236869034662382795123295422259106738331416838396463249292076192219305664374300526451201787151749076508388474346509223450580129459860239137641752476000630625102544064870982679642988438430304387245126747927257172379225026045224156812456261871640375121154134001726050093902356534933981709617341569886027007375116680744826586654039000838131529359734869854564398202066709881038946808824752430055494908738204261287895680890272365812883477058334868287705682743655006672779107541427473498777212822220473026095679022061680495059882095527401990586639668299841401227869278381611070338167709652782174439043692985616228185363814347650499616797898541126935448999721403994417911923294092418715296959429219617916318693836870923142848795144493699402005142243419017742725048271196959704246478094161713225438643039651558573460938430730001928116447130196301726683110004414341294026535450470989416622140777947315740827183559254832578580788946622154233453531643478992297083205155395388717828199939531190727716694405802085873973343236185355320968884873506334414180160750276713923580210699623425323686145697905693419392831692310781808779863895908539725250291622656494782194366362729995062630880605484437797724877094036318259752828458373694931683152078164718489645575283303442721242827220490225386516313285524834776640091720653560516539910226140144008163124841458061372067093504516288523897613588824612641889586471751596196987955559037759947472397642252348136499459073769010662200671823620185146230180624659893441329739188404181974735096154625127796044634085508049613562560275396166799836176588871839031580783073473270686542371464086856419787662955276186098644061574806624761836312757643456095985736525743684830882005121604476411285412137587642817275076448416983151254328511040320759100947563423123342524311755981227774794203528285107290792236083286276668299360323772162016931061747259645399863657208170538755860292474797154732479572621397621267162075350821141176278497371997236405847319403810785945266506419329915917472151851740928775756264232007217981293775879782734574301222410619471239151144936108888455607525546727735116897201037572469224643844411647690669360642806781906502010973535868123231813842306291702819952290420464506214435663465939630157183753684836360457060278977282595073274121307093716135292122876247258175276518200540706096485437948253456972597550483163511968993578783242712901476302447539893914276959729736190371050500046544493661352018106330249579039637510170802420036245578399429888220838481490155808278707435673514216320053906662554901107133273595115476735852650120589164364329258487441766804765682799540605189110688519095531331166671318662226980232128643204970431001908205697646335177699366789976634186958618385471518551020619300190787636098067781922410186697541598418244540846219620438998692990337505871322535293054404209407094095708485772251206572800881753112306606206757611187461203654601898635650603411553619996379575621577650032509007036450504373024180767961137751998994126746742843587314325942828599290645988729760730307280011560921416997732241405006351554083272155729361558598733999117136151314034253764763744562910588411717511344426161018114420640002361395957061112346517929365593270737830693344637331255202618000134838932782314635668853493652646058750787291211439449040108876631893563241029009104722976060150073976066251094900319617896852176539139039660324581002266931280680903009346747233196824667252195914037867389434729643241323592489051521341068579238669649033453346258428805086642635510318123979126787927836168858791203746575375296409010949402360622992653250852275439663241548558127343855044727918103990650728220439337111428586387592558051721926085385084524086618404969281693868659099709562463061881267847760914418305183827493859383745589251087134146558766386028058243617614485782005906814565140765339313978722540265621658941284530614701972632820486468805610295804258114850585646653299464332904581307424639287558542941260078032316527519148454659363885638395564031122457845124433975576308057796487813553056642145049297498829350568752747248966017765672800893884971387353765031384284018602155086225981715863641363025853160141416306541835831124057853179419413558072283826488802164260025090440870380186492091425539976924307207164306629627241029788732120671721632343633203625268806243567611375761515204275198756513733939352879070337223247279171911655625484649699711643848279275684850109633931162532717782490828115332080512373159542575603091734397865568044953086071074612578332082621863331724524848866029335213957302732935575114075763200718380962096274139013317484502702080651481611994828660302555671618579959919745324256188025835722442906637424528492745673430802314297386194996441110229540371340641278186424617118155462818335413179315095239103986090652223427985913828617650931372973361388867073027891925176520454437145377280098998165357232655894145325283134697569643568951484364495169904141599136476925721922786744293847247973234533421625168386554091709843681900616082800236869896011181176486555749251193145956542693344853593362529921595249254723972088056742009458598471164027695847627011021782686882682517276242631646205365457387479989172640526213099658505878622221000283425212252910104965749153382598031813982764689578837000510818292822705995690656243275543176335345589209417357973850469503691876285181768227653880104940284559288229080612497769205045163204012925969981799204709628250120190798236025324238127112987678057571385121541282118821556616956957517959342278257662082178315994151521895562780728803689101500223173283028417937790027786180253675571896147463069991377613973189624780419545171668221762801540206320556002696076156690467684386498218892458414946812640964174085481021364132847671513350387495721846411007741247412135681819665823232101622563057392497743849218072643560101089975214604547722295090116777975203877904076529448863251612274100036835908440345424077793265938841382462903598819970639258122825404155246709782038205568178832776135696891358064540585540276633592498627940857243670952327479026491318954805183526677338195194206889271979013460316872029577684326733234948762828025528063151477041352499540779196563561204706066445845419275762745767372965034475748225133263173867927049283980320358468560504318361353484372851530600607775635284287631091203726903804121429495263756329072990426868747316454669089461326220180713567691636644296133412511669734609718646264218899267113510883044438536762489622068776534352289219597462304599473663890611071690228794033506407071201414699395461268299928937547881062708127567573943663374481761721665927029477391473834143623236689926544900901362176410706164404077390295932334646581164812940792264959559967739691920119703172187997565568324732082837277318757792024605547179999747723729442564841033104046977552757867555609129756217299043931176946381436475869382262428944260030545117985232003479208855876430290482121140551598956222611354006589539683868735512218823909883008776520556250975907628070406101604941218472928098143189860924244199778982366787357772305084141503211171104818493104120458780352553549313122780588621040892933809155169680675975186284906710046545477799854377907630927096607347516932381171054484656710231241308603023542146488430823241603583472808320853879148924568317743157328091980320199006075481610804982254600511852806461976887607603456934195896196240436063733512929955926870973495635262590692525712328676250452067819561128322955763543713211153460083251908037462430139019373992282866456131983351544667136987511866141399133178691293232479550855067759716774985870585631665726253460179480784819025378992501704703720313031287783251238064319333637952799573258635994843207699555866851968844287680820454501904191863631026122942760198563392135070897674852490097906631747220258750740959930778900703526625248183597703560442183183349051097358143406169422550820756200112449307978065916529770244939891545446925829356151809030937570191121931927308043962039026344035047444416706934270573836209037172238543238337008010161077178419184824034373099409504596101273401728671076954132710710226376178698132105570013736656245437781993582562237896971335813113270470125898538919419213211245236135632639119080314312258690770120912731084197968185282412488765975832948842195288737898799238136789107803367002741963377951360136223159939044578821328675805110061911426420118678507429114702405632926850144059695155739902516330847962538397969219439996577573570573916773594615881334030055640830158246395039581593213161286100580044356510073871919815903479077916131265823850872986651863941833043522197584587697952472179309487505590001524515841245625682884090757461032001570389308779132394290986367583418219360207041311953727206047882128155544496593128142077032634970890390174806737478140355500035025735614869841717666380702446284691076343191235073345461561137393025724796034757526787650088951664543600602954244388870530862352136099003214485559875714182531195188785312867459372772287621862913824185023867518868424933292478200817934677290064492458071195011577096921209285205987314734912108792848214446074832351201250000212816644553805318043033017332906961837981273852305999060721814748606402742002930200865649484176539092660646892863001970046874045350978429439479041357379472136989218475945834125297087722688002297555002227935191098625139030577219088649810094720021853714569749483340869569378908224387656240622431934046078823751447531297199049585549293575039935130202969858840176050661051753266040060173632635981929184330528065894598654321826688039135236167205107845871522741409264740804630936682830146084265015949213538544580613537087502993042156385004390611404807611416849955038050178665513561114066294635734888066012098722709157115691771554533194926381057181612184211165053219289058344819205326304211167364179146374708748579985576513980219617968177424332451330061500062109013130393244359601868977566714249156148135114437181664166880600741480456983681308285384435061019384984954932769107362363910805162986837052435227110047246077324231310665464006847524327514875571760332243722666608866854325583600758579003798926112426792165321541969782219645745709501061318873198095992569214303060826974856528995169918481409161619235867853374466012769779528302073231792297043105414219399809266321622678842311648108634057277470451576974865146439843799087103709664506307437172180676436052892438783550506270388641307275490270139824876165118722554241885205742687809947598334521111293422607284520789921115880299155720279552163140356665565628295753533175419265921994493897484500840123890046307305621857900913815738043993861332350230044780199492596326462634714360428991140204785029697345230878428294032363540282829036323071309619384972138262103372544486954568695580338706876750261097416272683173448117074853258790635108570660657657084218763383652499657955421212447545308620710087298273249528295188934818888050505428393463752460562969489159092563005766899633580201031286948672973732586355619307218162738778073222856373106158195965292997069742446411311310019829902498796168554505978387091849728941682243361015801418624029297107715026891236883591827941589526402225135198329897365977765585147975862337969975481573370295907846989865766751090761071964141748288234083008646108336789891065909479912735491239695401532278185177651664084156631356874186275554535354491960019698124783013961244226100014246498416205674682457318915111004917177366330911460312487190385692779910434225188037068711496423316409417049838655983518659738688967611341647775062899091440104487111108752132147024331245426562018022382597379148596626627108186163634037191421639720542398603640208776956118330289410298831063251629334191994461466040458660322288836119040093623231820390728637848416046830015230190159882195947242670654491335707895610178644839824880131101453879158713006099693417510127551586720125239296930826848359655454122365537550665267787414302649828358773292229315247333391333367356057626586493873463850545309938110864930646513968006472933996403334334242956372329833379899112385261314782438231427913076194527669610888797193348355415327310301493227754664140331948897861849342624690363645339869511584205391070060499510963248214242475193125370522048946391719592582183319297865699179765502032334333192342063659972988938262049790573170040684227796999908859629142117838529176267276914271643292749577083823019268708685209475071231228790380968671869968155823736636119180589092218007440384444044026882075962150244055217684468532599142459051713945765150070363750159722530210518375434435145811244153473584788496213022327835108826648993753357639869096766801418621494320080217172510003860620344017245854164438368532916712461624542633585837178451083969052330052927554692378235141150755831318981716665287346902465405346055745529096096645134641345467001712557461021541997676720526785192468751541558740663666353112596539604544727218135604842206230076963262824649328928599513270425917827815315589839729825922354739338434249402335717603454515589031557164091790990645471704838531719885624830675335326015112393299090047462625807703138210295134503433766256711448676677682273739062637070677916120489730953038096136642102022567526317258834026897036425758194092612995276223576405400926887759342629022032667290235354431148266648284934817678910415207825807473627233812629540920635669308448044098612300511423558465615219770640091604306451465220546320634987931908182105751946280057983115900956539777199051698941603185109715276361098142451908089186452741880866009987438204381072633724261013345235643833204886441044319019035872768605180250605110563056945456084813556391601552292127337871201485791663932640622605852797156680898572424589225323072957117057601555331159574956520107653467697019110983647535067356894467669833043409690093887627529048988749430591586335315503218789224108555830323192148630290500855758380924403384216513024616495579008158949795611897852216007728263116412677277126996494886219737948163275366921226092240341605475272884110828185700936342136205152039893659431104517041683206662014584557082370481361796499090440634527637021593943519271068089140353206748329888918329909161237531140477315469785752863395881014899428124248076348558894451317567616591170286729336167125628476649246888213494935274687124245613236677997317741522309445628612734545999018597606058481784835484075967904145101540409349609226478271824865664926831342767143310068677980229581938921420601788320255501880695060662565171906714164490875928025452706514333307368476220241079804361077228368861081718674570152178902112373056561411855832504704202584743619785319903537506032401966926150952922518878029892432024513657782878895233835242022205148206063636685169474984588409648791747003227084062320087278484591855484078691905926411998605698485007642751535840479811781620819373348001689280575160493437756802088552362640646789748469670736096777395498618489042663405506071496030641669439769409407860145513788761371973204193365939923310529844062526323416110905296595309179792554968072284066245395788711803803940308266517343326415903561439617951202516971022265330215549646683791502719224510414877517213507156643100641244893804956566406349616759179586114446913525345828023328344434116107309689862265576821681321181476006201029684623856264443285948234454167179610991199157199210136400653335242660976139444019742103292069158232461477385166670535858648772473058664144283231259482334687514650961431463688788016022252330715628564647378855438186522414922603174451817086871264759497426240001411340887299491021168588568298491425625071183290830592063312819325143258677074078441360508862383805467495189526082658253247911213795950367871691183524988562200353772472201918028123080273007519609017298325002793803271556995655476760093020898278178951808057335568596201871587506708700591141188975696651947752276830062189780508613996911928496722274276382069462555426826958738874614353423001997516502802316814384137552967254096189524874632733363625999304639338451184765617314047521919808920456295612092306921498266169330354386423746514048883302355900127281394362350616330032534643148362866279844304239811928118604521787452281021770020791578287376209855023144361923947645064005439663237516746285656349618312186629793921132755753277189367366529160775900013540634277962650925402847760804037000776212750883780158065965049189031042234285649365927665006474982250686153264387708504057720712576755847654790848546282382538156288889828749618980663057744337754484097871562036133833071488586063923390352866824137121956711164124864431237950107985632091888474140395578118377857148046551039298948669652168108203735619462672314662295879712803420385899006754873939926268684627069959480161803508924382857497155425579435980859278840268343112183338170028589883813690369667874553909121852467457419710881117192957122456350124841499166949986072216710352435456044764889761432740233939925876820561973083624678499815733174415785057472007315191104236780409701953249248429581267310870677133450256143336256881795509097138321429573096301024663880852953128431978360549898988522963840559816362456981961483434114922181645010819094117159491036412081401406172948699291605327063179813692603765659803674409243093019623712678691645786063977919362827243913838679001070798824693610908422833098554324580355387454679676113074024703075643061523248572350977729382276427267007877296402627525951540767330354691377388192852384289567146102423853976986913206034407568626872155094201131388301452643294659254028521219170014884957146529543273138870018952950229120213181318657734971805211127989729316103063020387100952920081091115301608863715359854129901683981155661729261730893648869998003706661129888824514933858477147349783800353215207834031462047492196358914142895586019543137513366576498505185431162825292178161283491819265299973747688023311661863767572067529720552204480830422121033393998468293296325353105642261895406738700962801544434861121562270670397575570095242144220423772836499576210796818689750435960931456744503510876137579290883157081783582256133876398610721083059651367102841387013763183382310353700343904591570889543306854484305627355550953688550636163266213863059001250434908863273692145240927724195151510794942391698719628644606504988641132839453810437086945544740460029037311310334236589723576417443271209245779460083722673514527127865323537677282798329851032888310301396305631659894550135792801939957110633085830165696963126396709575406656473926716174383598572467437242739009781445300257882277111415691472303747393161438065264737323211562087565830284075302960134802001868725508595171519755478513700901351967702784417136561174985984915113401315469428228692374620422297541434377757076299712489455473953751944661459015213958219344250980734806188247796155166162201072517163567986863320426455621792649076282279512410492445984849065079862005959453493204668940324466387948115158794563494253036160642504260387025022206578658711263457045663494533767034662270019096205163449066446214753565852537261177357277983626589582247700701579333036878547688298808943861776379443023740792543097071349027609426461102669368214283047059313279369913439293720665184045652127909338553160513909932685171906998069276613599940917495906045780341126204612289029527772995686130975843160370690665288105324257718029882907961488033945783050428656654629738182665543377177811424032105438883429390763036652860742436627949278111764629460586466922658131906038868573873303875553187748194408542052796749184873283427696263909365086058285364136425158638883945516638261709741606387493210021624856508091288834391875108473863552547590015922755270579464964623454465952566251027866349652531900048120898219791233404606790367386768570811012287394872483058245406288813368280308020186683928315144453239787363709268597825248042180088198984716577635662779932411353960137464408444985803749008879424680544341991928584585978158147717543411163496608259306344343758669471581416676267547767692048133018465268491202637744577776113046591458698380820404280150178560628666048247791254200193157740121540894471901850381622202570416183409451574401589421230959326273574904478869095015652728951471358283949945530519533946599022635568358302532906874898703367841156537669759348307724015441754619935893263747262646539039633945515622969058028253252543253604162936506099669661388395796679566544542721831800151917073237924675784741671367608580435424141418020681436757657216708869012851942960871739948438436574333555237963518761116543352509376218749576721156564256794129970844456428145890517600558806093666352437639668325376668276607552793308233859235844373945198235747072414506447607379051905254546173124144111511684706717482139001169073503761894539118030852704664503840377412901060939780068820852767964412179608246424410987210798572707982166532550925513639767593692034475665443186077826595902466952714650823565688210972005562486477261871239682125741967023403611755943594304114686332820901950920719081078849398079563713396057449423141746414570663845361359648273458792919309985771580543551564500002590481504858108059888418928382722844924998836528772984913239051561910796851152247510982589394557209411426459793134899892883706234917225419957512450233613248554908061039248978890760010011662374069449535056731745930814701351423445687599542258946792766106706104385122398111535959862917075316486259496866458773300975279498571544245955693972100653204538848297700177818345292148052243176530833693450737748430986291066759707546138543833051863722709941897040941682842440046761211984157706639610946455842479379292249293477863844879309300696562334206818449103798277793757924618113006470219515026946808079787499726138239406011935026069349741056352895654835473195871201526351827066800612618958955691737985070329566357230747935894712235591106534569909458976076608746289853853436173756177147433017469071095776545266486954719875018160252754841517238972307995080416458599462577774378090187475827919018099352835457263475569058734072953477113418975115065296843848668548644264569631906216077621991152950751264052244565822749642253722807355254449887698870076616450500110269733339342744604980673855146115682041115446193393664706879716292086510482749896032196373789314213878074655590932481804663333077270495317748843714566993572059770815680638950839653063496319367623491560966626203631053666025169463616554339133843456912628125535860519015016972741931694475330555957510973019211027491456304768078270652987752543112503548500259785126964085898054730705280157870010784135328030958334657260727781492748522285905122214408643913910622872189554576581382764176710850045825225360475476527482164818253393848868226678492548134438576893843482221260201437432669253850927062474846156472673355965491254203726316924350283898760329148063470265259373840612768074157615999352899706820767210026145458511723931480527300478533864814630303090042429503001160680324351338759977186974023142388486956205270913650817481692929082076831264979549404506317489712533075355528163874159387917837143550796395197931493365005317181352777455588604776603702667175931534078143725138525787062741882379387169482237427291289756342797813565547165997790109875899027624824522691055892796157372142947380190380455669371759882090790320892411455516486840691419420920313987635993583905728195329675083566161125815890855006537057003715701895531754753118304866444605784653867946739065636299179843409097255786124729628030126351775121954889997044982229223569906142965973218122628449470307374018953596562419648278046669917693016988324914188045802804399981379411312100227674763013187474961701949629167564807550922207186845561383455268406108379655860490097565703529104660068969858271124746167272042958647468633144505745155497052620638580029010463902167306767712100265882552954652463993144228052318241269592505749281576405430258698593953447788418482299463672958227678442429752413245870867351790801581033493118226376770651536155978375193656426398388703238859368249308240905029606523863494353100984305915853593559667539578084601889991356506261293452870914601257354277882639784860193215646382006991138314438080932402189549454741971017247769688107158645412413021183600479844205232686136002009040985275262698125755791921320733082239522346577237709903092860393463390921821209582512518500752059554627971433144240961730820864120843531452157823197594957953739648110809113538992250712015261502698404995652684090132812457833409424511172452828713421921399533082348448654634716834539204955061077471088884146817134018265158440438549201516606849786337331540287179222337032060217467587202861433284508927863267826513606035465240455544498628809613796688499675012825642206570366119461520800143106227833546898539398755980427694190848124967196292804309103583626038321165855966576871393043487334667247979621307889619132575383444552866712044716882192998686780173715101514417403291046652760478741083713897873370471469301109610885947409316541447477951788751226741326506740175819050212230439531919358053484851968892528951892813472354838484729783938709094774752233004174853300779113740423584367041388533759870348419650697216514092695904938820359501674760886981416647399599769099165319267053905503140930601497209949329305874510940121918415358465478944301352118884841968553296213817654380090946105008215348837803360579546700299951989006086694800789146735139168963585776867399839387877111473212454518325067515136457552692650414229890968203473059230262902175400874000608406106634073675677680623465779791592988988590484152480506240057277792367150661890718167273737654060922320912681008233707127451129984522889355642854656107138036061577784202914536858599299288538370918628705292254801811113405553956537169787534468760815001876347641116237382968597883213880353834929975605324052066831945986699184270792233092107803807763499670634659799004610835726046964555089673172697117033261431200101801414002391877045954278031173148827267497851568355223641475115143292538545769694142382450322052086103580951511822892128226602496037173576811611363724687449997261025819331016168681723003392181728030115630714112545387486671821478432022994140933935616489363650180804211151462079366725191971367258244664444363765978108397509346671688630794086012492547892703706640618742034906865767350460576680162028974623067861587423967418636898769086454322501090548974434209855917906911237243001946082781232825325508507964475884470672374399212160380351006873579360915452999385163900680838894365876003218500266827024519721143478281205332381109767410519150686580718465307219890008364998458891246576344239617003498054991299584548302210026187031943388668851365994076711218277980019399931455707758455693868926575913012420190513119992256974748646194125260278910855223667083458697394131510412211691064650504323872056921779599845395049931794042427309984215650408993347221625077251459618974844973447020783362853609870910225078252044719514469730749706517672413861404233309104257141101080804169058428644114226615128850896383106250767685981566629346928752539500875467119417632164354377999524726553296265582672826040819844351595470318520393488984335600646437056657035832934942758360729702683777316726025163131965969825246837600754816410898787357410331559473725377138163929535405211482569128503039579216124070989453075554948116720400984022133700848766814403057002224988113833472210113294801377963789958291431936611671350034007247450657554476650738074727404253620414993178546240306089783671980881788097989537529551624717950658440726518436145186830179238686615546093515447101199844149271492876503779174754265393200503315489837478938820940698810318030536553059464643050637140476759183989773761811572771061412628961867585597382218853890141634471919246065173075197838024456605611998525426101220449028097359096883529181969013127409005492794814161546723131128298594455374099076029054887955946363554528995029510465724841445197346170197275162878603934825963273661901175349808922017981980742642797539493043631923047728903983548355886404154006336756962870072299486407605806742897748030709730523448266377030411010097894638493158119415231425993790138857362579368779616266968316351265927715621198683406165647209442895481366705214848974762969723499868845912293777347013484772705075976261910387768383568688166578583972246831851118084728557711693691790460619980474169444148993847551405187514890871545340734868081566056311562801559193204233142557502876854542511512919503164640345888539389895303567911550046768807873878968161409858884757732427198804881950346067006904313899107995965254469285837891310113250756262330371984581495585755305019093620728563335025959477055914548594354927106798747240801024557291736441920380308434928744878117886473334690532667599344182681586746424477017770917360857245054207830781065350316764257705640037827259081498548957138667636335174600021399894965508370607751269579915035508829599149532341065134699611228821785004403274705706695657302209470662125123767909016475863845090102945559850413455106175917791320626751644812801006792946462502784431743046443994198917145940882845901951801716550400590754863024162474234909653024384718443582770861043334430967052746941205958107289043473635826820260482516046843243960606796298609164041616270622641455206899477417908827639840221362606528403958024722944866717684528505904100067082224422579035937930944139365349099400390720193045487907295658337292966139476015215302422418308883561345004373522359211319085611955357443913388007472062083913512464127864752340271760235812805986796554769916966543219859662529279711177036583921144942911512017575170207310706712626067872719412664016822084425492264371811245726016746050659755759857158271825491759929812589722151388414943753154915825353824582521986975887395342626529267575180000050481902858747407666906016210970227832050368419245798053956466856617518446751049323452680964870315250821910340617628007436742251891661383191547540936563991139726440241627106615757843694668354586093499695821758751094797321437256706396802828420785172341344871925601674560540410898146015251900381614828172908839676438492697508394472009232545815425008529794063684684245220293772845045543693525753272092159883354440384669337993597873715537603952542500220776537542030941698314202335247477860649087760066876053838361663349417499345647518435705801144841715197631681644851153947813213101196849725005337750289194853864084381745677623074143325607913481725510535836949605655528904955827445172180784661097800858278029052286525495113295878767937951981333813937323046927693276340565089826348909642269987125045987777254228530117712476758390236992443404670614217486527963394511553746748265549099276065390709338223011236272811578661195259358813245638324691094914433070612952535135583695107631322785278872943198376702174951837937514267809558648482082856323297296564049835699095308630521932092073701241239482567205085335304914953552857787490325037187200814077363520965277695176626905888964651346044497410970885682908078801206827403112287574389995578229340647233023297099583984259630146540105161243777272416924262326245050517367511709892723110742990837507362583056299767640348315922516031862040256160800391036101610954811588375943976636397153386077003820049230564907487718596905498902934295711712768164613014452372754580527222398723357014888296420825229311383717487035449690257790363471634773506451628087725882558251678049216984314317744756982002339050368405426504711760530589441975159183649607651507977836286016659708886898102822895871387865385606229588454553859665136475566404242507009669177408788852094170284095986471589264538641990989914052588667795517196702970224447522560558825538856413082396749196091772615942576954461886852700375809393533538512973678126692771367934651605862140083556496107134326841716596709139664980315203858661507297627807539475999665208626900727381396688838657440582331462582664072660519027796410930278171955959606776141954149549114309992134089259813938861023287782020175192295463375256470738479834011445007949473064635501935033841930221228634206150406896789654202047132781436921660869475336264560812548244941345761841504691785869813259219907422305133600901461645458281953765862704551730460553707464236797713025305148610834304121719982962378270634031430180320139873282832329577267951586821765429230265255926982613607250373885377605725122298432116111884288384504487074191490062031800600779208836181559699224920743230574753659907203156519281867828170887671259134924507252326254992396880589273192325132697707910105087264125958827519196075737326256642219589296613829344058860197580533738518845964986794844401473280600065103833018387003584534574196973663360604068143993060522518529133753278287834263022947630677193563175438385951358322572669844034869555962504034536423179405719973849115321697397584950439282504215405574483955169307656245895440830318015512053786789857617912074498757222030074079442461737953186911771106142427492069461924441181135904541908163237270512858915857670355386818595912027123131326191622741384328408786630431113382179109311745577025239797534019713967772647631887443585434119693022598889503207344742477918074981487133604059668045189650724408303771347517825231825091951766226382444969496889710033876045199093827725324467237067206341687270659211915242666697009057423081474721968330419533401812560537624922211758635202609872719325516955564824219870371581590586774596175136851315636444137957831000333991546995316109598690446292330836889217580344231599538580849519765548276194759637323857403100886613266486918600410174550691264100940694833770456735800365771533961077644127157176752213113762892459275668951031556821781240218175843530151322859787925216782887454910901351650441471889720262720355153208317502652345429391127970407443208004862494177139467738669245771613963997042971822528091394553296845584063262572997034911784090679028559450370312068801105318799295329368952126934980765272055272936998009624757509478938351034335704589772396670402274473985420482276589093916747345990358226806512105996707665919498902577396098940060921594929025476941859221455838094858389350772040028334731282147005525080322442544916169278118970063286929240420415663104285572550714546319905720503498028572155529986662204939388206141276696226428498011361526687060324276426967627416218818712594541042328538668846308115100920413102760243356072876955090886330949753223008429871726503465891855660843059719900107763813822777810295750478589680438063920684411246356794011355842707709929948709625666800570951854536736925546238123528519755195711842057919165473353740406840951950439010808355605673546597783588813591121166416253880673789071548925829193426887899430340338283450211437354218007960783822666199606954213394191992167734065024188222111460691339398283079760406434524645669432423005234852008403668694217641424420009269824202168263253219258505397448196583348758569186473288785658938812399654465772041903932823508438449298471622247770244358627871285318460852070663556001950158713062304220787250774893322827550402131199605132549239537137162749132528881256187122208430332514703842547267148767813578753654810479234432943726662000419717342505957366952747601601211381791076624684017736248631179298717656293882022325074008848571661607520448844602663586269763309832631933516969741822146254301725179942364480318896272922296674854080750413033969830574070698840918290634818830636285119354011667737025462509289232890981379297563378499173244474253520638935142598232363988964475920090808715097577861818265066269217285547190238890446653640157062901891446607563804750932431500894246282858529528413291157280733913832527752597548238264344714529962106833804568888563843716791270908238119101185689262218812394010814409989201962839962750208007870359569168423613117640468119937263759016127574446194649565769032322127041579377543211437436530267939477931088050650298316825679127604580347707336033276679723357405640007257987722390693384258433544624902448563083217194458447549271554127027399506603935759644000610307871267965014716801862652987081642639903586381137322309361413252821585070750571745468850736154220197241509499931647983406634903001492410945587803701028713480879340046692846305794296608126456909396262929201907575167184105457197101236183075988057365727368924672995971895365109043074080886798611918596202659712789495419167870078344198418810008645403493997562032700607980332611620128504935959397050967561522555877625465394646974578550336885006995503006852159696911271401287378386092862507360553074921558997217656806962676640879509152742878913397931665361564768528740387079310915988732517004325388428963017180227502705815842170320019150807119673636374202332172398252754546231951481319946153342353163126498309075307671343142392934043619767702990633004230165189163167297768079957226688746085048376371669126362395156490877654559302718216675415228976850535530711706846497476911301900491113335078032018753537740211880474771392349199952878366988405614639792869679615514625663964316126608768666333508919555572291695625247897071913849624034907346700188355550412033499024630459474932852663897578959509670214193228939120841549558920123212810421120743125795407302451582156275150884573267065289872068309516387382632668435729277132411034556073197910975852019964415493001450770104993806636991682786897420426074254568451228083022130414807356596623282720592578419900831974627723036124740487276444511224850370499449656336095432172636945710736428591795800655423362890116163604132084274652098932774396531292141173231474391531900891911196065009957687220616991639673068689571946260242598858900292295780020232915711945083014292637864365896048601843815900429467933861021699397839208185173882451335969408124804332109494256890105319422526225179048898626603822875912977616264304428620424984599758643632765069762356551654801360905751324747928497507255863671861847132884176707130698253048042704423416089469840100772669751319269420492385491255037894582785810430797817684172741837228107008108210803685579062414654959038913073133467329937964644008710821804148387329180786932032154894566141828353115826236522083925708534519253089885081749475708010825725221779645697905762955698881368889357571393206482051420827697767246810757352973589344004191919652122036759218398775039685351236653153207127498729149585967796729744689571553123131249085618654764252381487281406658173069495187592761876437830615699943829047637318281907973708866683922357338041336658347934365390555809663902556075287460789572488293132345233151297470256266867650258159618765135885427651597967435788059104718450602164446919429203576479196082783407657451217053909198283208236387372084222436365136495742940448618560077920253486173589465260652055699748876873207364227092549124302365167584489382492187787014567495865722350068244903109618920750088280938366582775035413454893210760378017322460536302814531760373647738749416272721058861495085026433168494400913126427046491696425070737366995462576656179603903494141538836375762643524657742269919964277131402978997040996068649404049663225172253544523856522657215636403904709226376594689037847537608173159844842102501533715259637165957129606420134169380690397967307808759748195620279558905567444584349606624948841166954352909910063417472411817532870295453837957006689892114294219841178827968598031667916990384138113355950632849614541501738644668387449960321647848273343639206805610453433830671107445450926908682363008929582714945041320546550826178640428368137965754945400778535640351609172994603307367640740813132934100915419814851451528752276876262638602620133594728827706311580779225359094153939813049918187369433971357829082591704507605089623523998884126804623036641092695887960521095123007074696583301159692157790133355655468121040008451205981517041164910053401230776964155593524725795457616766246352072036201590815608603828930344978303081324265275216837896623835652772559846640382703773523970258449685332502132017447781543710420297724974481795022822384935476242562088994114364126758196231461996020174241124432814578238628931135162788705467008753413807642553732887049736149209440064812422539235349320062083621486562474873079696151134269112523122646281335350415767273085242293497992190849129448315138310054439124743470189240588548845883680495749781705234590938335803051466965507401604972864034160790254974831781691929329206920184343974635112405518984502332546008864812788827935276838730267502233981564688167878137459737985773150872085989412144498411354689228714028184703984383460700368928885045298600840453737986513725102750186012057448873067963591471421840010015620751833225154102382707270969174932107750877310626046213016182657368371779841242899517170631953215181273266268007647085530464647292937466665427499476288920598934459506519894934315540255558686964271477239147878998188943124461227156970659564615429078250547921939615611507536535790072613365669719089097294682113415214200157849246433112435563066536959848817770540113023667971800418569623566147406374154689849673030140740188960765767077436140599408515881625083002589857605976685278524795864180081751066198625741676232026358547505945469476458206268684027347568870787492621329288640675430013006710069165657189151218460014778361515558634719939926586151127549523061897644172736955493852869408879415012433315074678361277319130067478037413606317118817645786913944974747148227119243406712856464663496915537369178205863392867197719794771286449904051673179408500146387634120910867838997856965771135494882774783723828316293789658074572324966695962064531449030759870263253166437999606519453561178712410319907264855498781841548494885316850885569976216885763566945989817281871463390603650658031379111981742011730541408645748257381375830141143973726039767011773505038306995569585715868214246879879411588248328386035142005093404495020072825759664408618357584818155403932792576545129725130625237028854383311270049188741861702185515365516679897334225070216663701471389795689983592119155759368068171541985225671727260335882002660010841210309107174118775787156535321692525189233738209313039860512065046507221521973757433243224322867635492399818238853811458266884088004839267255025775217737343951935855660455834392872990707352051039746980673029631694988545274192915073399676017518713155354942305527223581636315623279070602571451443588111301541266815802566442739692080137227796429190903187178773438464055107612823382283125211965421261835957149724953014967212165661743588644737001676557519913965329881978249832779843474259935091261319651240884421098887602762603350618562478958611427003111598576783107710058995033195790204464666166452827014448628015567110405488694755422688875356448899837739549493488326877849387515476820156213806636250477855939404272841132579842336741555271902816571054709089722227668168265968852084286682061268329956524895772083198652274494756220341649776766961087952924485848560126813274428839541125548834216389931273272223639614427534584591803136258539315035259421303160802464950619189943652786924028453316256270877964269924561263934611038730978599409822633538474443744467566466851597808144543954159969205559592324180239187505297995761578685929012746441394622292105952492087167940027400119711991550794330176972794271578413039415866500432235005534433676749438349092485235547714337700083261877926436845967128609318523525613595470911459652124532598512047828139763837340626829574285426111747504769787826493287676518493637022836528551321724820445924865866190379130136239085647724706191546719887503722734751155514323027095783083826056636295680818668667751606528909163332180302858361766259241835938569615276874196844902448099868982967251664409124207820869169140172832021671266334635903348216947435790537831441221229909859412072156974006402799999134998466016480991221636901807069273048073588780528811959747060738344189021731356292364178715978008923992277886830192684207616066570079784034366872408626975369866661234765824777922351480754089579079093876991045033371033174166553382606936369667856337932811678397255708056840776407541332648015297020058365145731595082483313511950475464255502058239493372846245722499659027795345039173173608357397053946728052845046936011104294199307497695796342121865432064557507735669486683033806804923295509540492686143546430238462307699340761491830656000394235749453737541894236891509257216780119224577311889798477803395911716102510905075566312425203829377931036230253461663407341568992019840492043854919109002458710677870573878814442396170991027737801615863726020958676709760458855612792924554373671621381586263313442194935105201339010059410741734292659266721483155910153692762831351073741230240728711936489719600949023997040526688044594729708739269724909791431321943009289383424295264071381967971545485319565757841822828443354377174983655417600350327830560700215369354073242933111856771622983286572252207523160388663364345968369901804718245417305234443704417822945270841894877684477105780892075366727880490144766798372124082835948810247976512329320998773884687938352964161026833870570660313167293241664469398589155758320588578832171829206047911601615734844390895777462788768251303015517227143887623819326541414856427090191557754607347740797714012293963445328408110098636034789463251613588318678682129083805079299732180683732447135545076374537202332762314362486611161038211127248129002366616273692585582305235438515173601695852041026781393954114963771667529262751319864262663179059777121508382327387133087126273343229593376888322506479116376227659919025761832519987921439372308069234760703128544232172742381732649613409700034352220895508974782903182759750023392259327621369283243676517155261621981167511207054263047164801145923579888253873570854062604418615845840756464585526359212282314550496215252382640999005260993361797352896713895993422560163061991801610028426280359043474935878799369280505542962785845468861999301984049562966934082618526610849211419270629152042381412626001277658874641101358025291934860078285355734251780917251864759522024445623810205668103198882206115725454925743329114638372202869690754594471668471007038085974616854671856375803788500556937987463126851090611617737801285923385858929624739837273880941233409390944427971898567912414027124646618718341112494996184824960113322996855630437987597166688062065896699981815504388845351460979837306663451917374343553500247783263970590746031026732030906772053830675942469582638187720853606177380851784865847574962537835624079952305485105478255114337874602466233421248074274713841462052658133198676582580457426393401268604564889080910919196549535613344361242435027370660766067648777840278338146136717920597648884154012063658876026148845295593752675630637942988460165502208859618843285521108377859258520267138098345403569872569980092563756342925787602105477923980598683192124140841734260184446372343088068897866958931539875074300442306444409147288726498975344217629601717110754584433379646430765778521630635933717325454184948757709472073379528435503364840249252818120282117490771059383257514514991002304286383196706827542211707403055296390031610769224026071805497348397432107868773073914572308952678212784118454952433022594417664379625073959602413666827407289796379645319065301395583125275063004588285136030415414173237561140982247098344208382189383342183697579088991492631261711794572104184148566393081709178064844946093967388255660936565580393881387851232239467359426795065976927216477957861368765085808655599833555926973125761304245118243819609465511380398190892421948403285464638076181949345938116352564341474092825555560468676244875142496982865862971129012336733656499420763981307533976069383010898504345441589856689701022842061077753020461672090646945625106278044351512136895179048029246692512286735003139052936639805727979773446071699913010539723343888233121194524059816307639590628641679752125015229570484392022900831578860903087976965999193278762497467646500390291572968699770425901635967934930683453228816461849263651289000885521550277641160901040563605538952402463046620016534885983166529102529535046166406533407635692858648732774824868400588868391069920740952077488862947630283443876943340612553022529998928089000678924938323464853847299357027549874346789765884112834639028197650608287959771204014903120031855413337529908482392085895778663991599150889815771317189830499123087789940598274117090653910018944717642449853467037301323235686522351338097131907171472478548420163158484820023758306425823880153412628100537190051141958163077435755520686767041371288207123594340418625566903059402425743198836623627313781642834332391761758907610008245611682965100716214620953714458802590748394944655335132021969652790304766655911320927264206372755969915107324756719510655671945719242852932393858359455271990850992068968778013628039652545137764425280357092664891667585295027096059168879594588931271280276113688393190458183635606959109427833829514341781709969193182671044260157474798628563496477244718917677148624874730794428685243925895719933962415971236005083603103212639334763996645674092331937285766189778569245219893788711369686385504736058047269273847342459217281361266851839853213036817120310074259140421124654420467962302405526868442302902007356426527094377793705566394295027450862205021388165702782938171782330969206486034733917137508546123061869272753678579018921260631514561188732052226065029909327142831879223855034070585636900088302797881354347872393497185666445868888217879900119976797805646257972291359460774068778623640476358430871953852902905823330504088554208446268460403189458258554691916245211740575092212281830435457154987104077795975329767717855383733374749226964909983843692323077932307048674280467614752991841615315684024570360581619753476739751639686062374737025014581642027926016692486803119182672465280412223848513290862198259863748846702291203393024058184305829944274123929425385405871203410396220599618035743590748780289959111636042050421398096408457631155271318077119415504103432168990352838364765590547812511008369985553372132200259283581564728747424561662851791641434315291239148042133727286424263917495552681997677224543279170492521172508072851740911702814907074441420922044070512358733618919768685456199504803267853133044490189041783203928950557504461979900536166797178759787599386180922251960472689182303595679821968271679849610083872681989225312967307318528100281442018660031412592344728755484327100513104339549502900931669422889322563100533694056209946399197558072107294621289025836331864054582219491505296009105900201560745510298894367045952640038758740077352414032988455597769082768304324779709612255588265699139474424592999179852184500443940878881705300787872454194052160881268042963960588982991638353066845537603600710080878026217491443140997801539972322155354204407726737906375141335680920615871589806990058218036214751816445471240375526737433333821407301386128976418565459183826160985048783677432712075429964818621909217527979926632177011562321398200415494078538929636679482440180627686031478262996856095888648874171006412611501040665900787637602494017693109832321727202248020402734429368270654132331150286870510583769252618559665757271177052267257657420223921661130578392554717638019558436761943980966884594638984527645821500144515323680676248071981284742009040335856297082604654478403494417947025290043812330774372982917112277892847655053544777710455641069393662551004826608750208499433787156590567830528975755555129070562778815565187243457444463613868259346345049223698063523949319484895011506030390248048374375233561958584340630059051845371672135606366910558178844786463378447487272053330765791181368766053607753978214139411085810243821919752464523709274214539972212151485470569657383889270182948444104387842290097409816194903493367708700508236111683598556841655416148227999501270200265447132742616434678492250707086262857311344574321300200786051009345363308464108317149032261372753584646695784742546982309671131622919844973817780322036175794645789635425451831185429320917808660812118059132940612173184852853655285096314858857598363431277589172600054827457747476279932066447300533848582078997890550235851850949688045160764987823282050753672795737842403961556284345332558678410733599328525661120444619489549343318633152020261342848840605090391109965254510113056587469563783181758822427796065000810534104478944746227296451883597171302695178799951819016376621617594703875904901313329298238958461345598066850217732302605352746027804710084328249088888528916130301743038526266615666894786568466129796815971349971133866771714269183129201845696768476795146036880429588341794199727689222088104113113587006014282357412332048580372230377001626147776877701020264879685204117043885182399670085337516866392882854646333811117518584520072910703418920091504026020557128167008279156768211706107052270010220792436780908986123812069907879131409608445330880041710014810115132097768032920905584064319779985010287406804952432555654579889231895298614225117601883199868132296592059046604641841012987399204255285187781517314113496876514880167513892162190115577883028433952176608211484543498822228385053729158469370235712507458866514566033703506916658452755062897559222984053445074389063872463075294887715180982145803186523964400865782927400662491063445254661300437786401643105298955833845341978073790380483507155815683352152686529347166174505361724842925621633377888047034553812369210841418961812018282735943590768158501810227787752316361114254468568721024430327574971459241349128133619691777252392207907607162255032004603415076568421541046897634188881790821848728932129613458045543451309554443106223503360148740001456362349435922670655053206905870010997794002235530695317341575973344319678433377665821416898283822109894415820874702940546792588236739175510855852527248236129684549371741671719470431741622598379444382510331825289917390634757154391467506979666455409813771086812232800993252537257276223321358276780806650834900087239375433152668170602353466551624520028218032773589409724182615318641630706944721482365497652285680897039508378336089513772798291115812728936382014508814689801328612738413398539954281816924971441231061574080126660380826659992924828409868055133246451774920043973551619835090667284939068799479418917727885952255132943592838100321662447505677449551322913428979195796022159952304179185881500762847852710585995336134721988904083133832666593990281210009377695925347107367332121821529400095845670077335602390734606049478390084679155499714657869835454183115002677714183873073121214923519974983464520856096617959738770964343319573400623030771767141271450065504824142382557669524467433066000622362605875677744429326357713180035357148599954608222394514892038928130348114929911279334425606035053176821000544797581624504318194021177025178871140229397393717514019862732273275226670597550456871523747475733341525718996470046552962304767343463556626591834403026841952299780392752514513409814214421689486794836418813558177182348450971231344546879478987600684651565478175357915510855913697216504878225834807221044096920370212403419725279606957009428761343323154221699759442396887436449084944271168570220548630640172911921118392519299485436535519818943450406542084383231663283916413366920805087874153819301227299600195313382139708512313076718789388176524124776780674136164856744041942097970188225290559390967967979540192637623845886183221013485824916639212065906939394502864862343617475556817796161581084203459634022408295019610030692277585662299348259778640274410744065031000007206858479301256892754563399729604936687695415871669633567484759787819166407912811277654763525762412313379741021000232195741925557975764827596024944783073297855180981518154049496608041751666789032914164682384604480216168090670305980912688483388406520375605541902047778803673427906291165452533695238224382070424547502062217486560124678435966654248754768553561258092093350210855022745131681475644459498241242979895039404048657509302313335848610009460669524806777938067496898393383281098299996084973477994461280032743647503052274529860980977227326211052154674919805371241891218665538172479588546931176500335731584037333104687810091429498984541946756564570843106669413306976460141040613946372454363345251974412762042548528403514322634286802717998841824870565594139729935247508787684168807546197893322107500157798640921595331053371824310601693076845839160178015984509555574649564026054389360947539664337119253292601960408686332112603937602887006578796372018418129571630236267761273936327588720351337785830211194328601676166932684889975497539483148192465609727081603729479628704491376393805232613212844721070885394500195421539974293136083724357810907327938521128895378252794090602272076058413517616769688081023937237862179301188709114259116787277988875139800469474498822365233615229059318440577843588442506721784172034662555899039767033933253373510535203770243328884125740086041711358545798976312091365659681615065614862097130309467237774367009667474057815158665357288688779115391431370933087550456991598267387669527077630378279931903749534235144657901804349312980382121788908466517574355548683523008216118829755749336471859017305805596585772669858305568814368938768817719456737577855865327945645867822934008698514659616726317407037544910237239028930866060646666954192011523099263827064311091343911069536114399059863696139737040513720262563648232074899702950537167607222647072847226315629668412818206527074727008264705150908875787689474067443607702301920745622845851145654469132843186283883129286325625670799572117965099059379535032260292640138960107680446789215393002943769664461342043364357284564157870050343529487119397241873993943776886645241075268740537382634601027012683552698408192566311461315848337825653464534436941560713034578844551088305166570509163389645790293876495824753344638049360992093960146705431517292293220245367483808436544223980316925519358238017607863167826961674252888618307462137961050052884879410604411854546031161476903973836146026427311485037269969983844310196346409015794468112646696513401420038983549543756692376647949493613371591833412654981270921584856888082641840522808524805893881260713781957587896257939561131051108775757101010954965801970673572627738623610888814233605246136634815698859920670960158837577890120840097889006128064798598440095339001955512153813559573501019949430946574777708020864781300358113492409604195678199588967730940564977964974617267106031281882729043576760791096175035407372795583002643123017857618077700052112329473787213235882412790099929081228402470091494497610959546893478606871243778806489572389309912601883542594970037930095093969731280330363339435997473148622403062515844822295664995806373147074294182671749735512432655210937732858085155998909475012534208257755384474807040918384194480669023527810756285692281398247898921342914732294886000743492652928920559825293989882487492673293275424761586737522635069343376297306341052387565761269393454466875622780023424348789260631473157484573008961729555150031968643108218697984313600828416965366834905474024355539683741397030397212407749224719760721465246433786704684895927729996248709045037446460847509995373690307175322209270707964061274613562081851892139138513526077900374597789542869098135251484628784775555608513546010532651382967023900588189337637787186195096979449472370228412793060385011204100713194410586683306698655925044732173782024029666225227078019233862722098859002653137570987478020143077955479028200509938736429794154618793736094168146666812000014096208786753193608902085045047713763971609003644599247223121659324295035626179573980938580096141718254756580866729407790414306861141881464452482914115612424157397866492060457308384654469070119534306950693205610794827475442028697548649213075854076598661693842716213428606502720791687800038465423710022195053263894511440056431222335527749248433257068598394102094132713712719056408156958905761000970989137784673559944541907378204621317692199263621675831404663124846165272959225506495018443515461070131200785321615967461249470223211485110785242311258340542876730668222008545626908541482049173973775152508056387214921533434079313766266283168388103954219310336644281381440320888276378812441615500005695100907768742532563987789947797510746821473949638525027716870319109679590619043894209480065769771759275453645317362816313973764639505087853772446775161495819869310818783555279016201811960327181163128448549501370169483103207078205513860159357349682883498245463089244644246208661038643680434969841071956054586892767142765133213385026584523470619199534458635765876652776434102983224976271497271075686788166370497954041523493689115532785652601275638946457055801949218340622127030220246540622599819365079599742885398638486637675051006261055913653732547952439323887986834882962578662202373113410191013305124821741533454027669759747619549938682356114489503307420840973356079914437484580196700406727716737083182722846781110954232793133314097521339528177168157166385045282078623552810903652128378056331445901098265855922186278170251621006542121683511849587671474790590583197871404632831490365756493680430308457184737698261901669240418267241378451112259875969072196376748717087568187258710995176208966688406099727093637504712161517890756680827415229077585889977215823569642891631368491638284440031920690630873307892780275464332108541251461553262285626321529910182468085503285883588555635275692105307010340287054544272839619280484151915775019909860370454113849136289291605239502613652255699047694655153437952792276099585505760654111373679022179212693233758006224077601107624990560082353479498753786221562119684255474005627497250041697454546857545550405328936423479336437387896346021622658392856187091951407921474887795029558831821876870107861441108678947147856009994780042552790521204220257327041723939083901857911634570334614873540419987638039952927605461857699239557443910516444058455201290003265721501420256333597925204402961999832417889572973200560043980926178311705604558238213983174998375609757841342862908898286338298019405412906058067840861253131843192564268334356907049956210183317859574527512235589805323995053111995311021196268899840873391721121589838619352284010970888833570349247782757262003371351086349852644541159937180709316660979144275804158849143858422700827865266125987276788969509086869988596637564810084995889549413012604721487106533699273831830362455993337268182957935192451981002817520478874510756364942792224465115552071270045743145656544930161301193938678357869492487324140394662185537712577231915430531443104860609050293847821660395609064372185354094927184683670278911772612072787717560426414158290603117270475428000055402196322200339747955848858111013900649488857561091412439129938604809147749615892925981195649176982394554429708648224765524845708813299081293793258033180489066256814763008904115083436676877674629574826181982113952303507198099473984498126239488821104887153475221463123810316790365064255273984746526364961919444994140026684172439128201477909469562082922653990252915748005806168889724875313894167708247153480129620185196714604614402598285857522457876090640037188469776051085781862239183135962945409955945676290169082715445708769230216009013693895000756781765707671182340588721429891730368211407086694554646879167689978177110268175415554054705548879278126373463114494345010212884256014215282105340843265921515815832580747344602533555619195603225857233114923631947048857551973570049354012104445015319467824510027508682232696936310988990514329196280184794902481779538253021097679523087333721667231706130746016821241521296854322010533749336588258950368714228242195355538378764685101317653451192028205317369743054363819442426976672247340510878633339299664431964906087988162299054047793227028110777734686057732179353493000996726237640925996173406116355777440593700297320265574839769128773374701283788184824616036392347510042697603980203529631957662169691584691334208112809524505857357085879590875292856009873826557987213467599730052842622203316789283358527906253032818875343382879821457121649997609212783674023459289741433597470813235428175141568751082694726594001194628538494186961052302286570843699540654699831269189722342654005208572438233987662685927060034826102676695019017032420715185501581794844385994319460689893294547447648587697681805571537877853554255446209445506063441266507293469968901579115236012371185801579240315144280566189172553116119874101666017123811505102441146102360199261785980030446275840288703285911194858241278650404404106737007887892168228931802404604373489548060589585385565131485779906332139819481535764544876601547807411832736464781251918599947644743377312381999634198943101091211981579301622100133011899374724978016014079016624852857873762925799565769144119754626375464793942001471596094548317225696413297776760223433016432968000022288015141952196560936471696938641750425498633865324223996279395007242524848307854599542324872973498174103615102178262950388566160064385618293805915679073123831506917541231753158611658138090495542004173790299290093203694363199922267756418159570628157444521736478606718284858998631947262400581867589843969550564953741706893219861512532170487864494488366245587155774673089118982775088028791415861788558567634654814907487702773830942064784322016169741341989066334738067214271212712119337850914619080556121182824609111604883744094177932315926217529987991953985027808780147616746483968626267436183689044529295318224380831877248523050195390847645872968868084383693000033040111786878287260302143513695968583803411932587472337835427933534175640516525393097128326093215420017435889098422395476698997449651338407611864532070842459254024958048443650087094222668801692121243862797562492000026481458364665048558602764860857020681562460926040140986280985576410596023580105916568045042891896158138863878258285577781657291307488405425623851523322563491797322540264351566969471866189135878546349392649327852408192141682947088853689782921851157121762386662653037301716583341315200740951256388583902228727202108890008751878653027620953056386872191221949653893974190697608753817362957753915673379836893141328205219027599586226669043552659261212499030707078013735984002780855899887281786033033010380328465096826288561547624154377554260222715470368629925574221006327852526626211688181542699594639557508903736743007236932361420746166650343526323668175481211515767359994542818636632885329429779937609532117076531962700328035613765925532119956265197976961854274468240339404329408506123198241362076594535664133174640003856833836000647905902739643885445017481427016653066790316161478801745995945967833795352932856376596691051114863778979517719939686378282472558210452588458382098074624879229581990368877001233833273631084245847199738416643663461646966000516876565130869822934485787545443801788363595623305518849588731659863554359665031016377832609760085469686668773061843551417223838853378212433465040107342852983682948642169778116493492030273387500556952442412021628062585128468030312278864602288683364751533364964912543566765227532759986038611363391743176630120714014206978814231717679769296006767576838170617841212012267738502795771340869446089424706887680419620557361998603154892809616719757913264392560845479242733029446197210839369941285894377776687511711673116576795491981994770669362643307530610176373817497885598558048612102769475481762120941872964235775346863593289925824610027833450267996170832655178028690565176126335246036414505333378397834837180849139010023953903743092366456080584436718965143653033809568461456417419293720303922655338137074522216956361223614112564786229122818709959392602365532109510284179657203468630018140317164480274872835125197440382378733413482908141529924874615353796030492391736081056983506831663701213510654398588565452845284116106584750620848323046691479813163332112959714647156644585386384082301290245751968571055534184253836521830007359212488248314119832214966058593817230615512826021130556042321386673818147991827966987115551143949826396991055782312184389597928619970789876870748077874881397439936875642340450328720812897587799282599168107428207711841931889747667435645791792824884748732688259545892460030718049610547789774890685949897726552269187150353859881907217324339860000569522582811196923928028625667827675608887915157836199889780886988344674038989316130480254936344145192222304349951830633977959366596007347522205633460801229819733038670879099102326103217295826074910206370301822183469120708506037421830086526979869086106446896958913865644038789262137176902644902964201059905389700699949378879450287988114562435672531147698837068112742048572214858741172325167355805124300860970786893338424604679130000407264931317394521430621168767732261540740814859955571215759169074855546849361721730386992333171534418128821534259482778278220614852214139063801423689379103620514494058345394701513960332036305766358809162224870192838632439001599196838675133603316680792977642025628811244014038524847257834749620018391142269271317857641697714268639898260715992760546775630136886146004555733279095488838015553548642004176155576651105571258244583091389125368977460932012356800174522089560681249968103892827746007058761035714856501384044226087337154510676599815083036233356087880141873944681992383936528093441463380348915774656596957936579664585546825485807909822191051840329663606946200247985776800069042282853014335781102415387846570409043018315853732456924404617616815411558927446963342068817218195123811305465587887834463363538489155675463811322832758545253425385175309100031183000643937248473401802958703706972745501406441798926818545782657310499357167601955038037359070923966461338559848093172551223710679282771903690426955306969541440527652952673699764285395790445152523666429139204977491205105419559773063174805374618341501407341032217973767162086705046902448613051345503366232172847794210006339428778683282020292049582819748335185989795119021005214659962467410952750135814268292716258140572824377882553238668474027470607303455739651381150193009938519916879553398387207842345503691144753261038325807118223953792412701231117333720482978778922745491061144793358191984386999811419626491964098638890000700821890224653354849406753910996162837158855036573064597025036350853855829078711689780067037569351946965324727516498553605800564536175705250839670266392757869889820072364422759644318477074491363781116807258585086289339760620576880897505854307763667937425948094930740199316673753427452520661607293274745959352925762898599509230881981946694799298637437239547750428500803723541991360644807212238145455441088373673323958842804969812923148479895790643657597053504742255270952581207246228245279448116294377643613338793544476105984998978882546716560335613751972750234774328385274256514487896352681568661293750328787715462969772174174584331073842686062159249249814829201188125199038306201671220553549149087791445557313163282096671863809395618601316071619258229109485753456408515935086396163800724878412424523714479288347961410098772805984218745486519018695663291599554889424622450419602038142723041427935401822730106024330618926844795937644090175413298898641577595297577018996678612563170944956051101107013970567020577033052157423997137787834675531562910478244307179887372377376744364588715387249097272885873327447911830629720737939848357765867263714450121874212740588178247257739443625163621887439568013057103434617945278961870999553914387797167655326141098702411139088505155572010502073073038459920678155569823102400285041931059253334924058441819055969190158389103446120057723597932718276783521100818256006393370910118679524340459367958335108092379327416136151834054055034247315557012652455331936596673014048580998783759063565708553610721371248984680931188704326942753580017164470665019118835730604404536667307138080834246019243540747784270031623425432766815690480043165596843400073192145210854719917774047844846305406350079456801269046140452046157924250957882910739249998347150653099067696154239493784555156337956856998732551425376425410062217558764752935360485531153851118316151048246091269479085147845437431409429747085029037424579029337656899663782023256600960846014198921537166243673058936886409022805338480890832458280310741188937409758251172579943431546553321344385462218093167729347793295766835786842215318650591900177361211769127608675678703532541398022881786946768012847987994872083963188952409079289384833651490289328325476828273952427042721231263757100424054178024522682686822881530834753464684961292841942286895494276106673336135200317691353935668842648109678716785313996290025913032614968525162717479857829182172060049599221558908738354749388011981625328726930069631488396712252113936565398028425003546515079899418914727729983496674990760091579985652256105826081040998292310085447631970990202284161867087042838520520155928149973644915232222853149373664023775890158936960699925258115329747111429183932747704707837651262554230040224190550010116040131182790783443706237562175707255280702739974514039396005294744241240745868978956023971319294552203601170021419265322555406943754080817845530795206877405961039903537963389006225494421795416615395613941610602325603633953636070745725238404268983745690417548760517917740724012032309190432946485144891673325163253058136786482014699535316309845199287648689883843845333897547504314125871386799772565777749937475494316018257644997668103295338905863736258129328738759749108192544066914194053210136754167024519344070478304450953149897649967159986735340543300084665810085373245080991652205970483302455240576739136349646725458894951945231249126463095931849771336651661209673550748767126091067779688899400827003644121067630284740553037567680911737114951035533948713240631650284455630606619900757682829319188852669863434135180777111757739231053767017738046934500692288357139174226247238803946399386149719203229762020128896641817696159440541669204987078156320821266393716104407672879400425633752167272826822501653433079708797678991301281388717830468518678453024573483536103631753204861385580649265344227777304701557766278430129838879962210284879227762612336137484244818078126983467882184825897841951849118744453019308977666497574479636642740092786352689838787137336238789848232074360242615845793807547461905401573816633076345532194932494547930151964422658125255819618485704948086491888012239704277085761211916793215825537464013054278750906066985941610160320210906830444530089338112159067894847026374946671357791808912069365489185308994247893639754044420904725460324608705681842143589503115604475988673999756932757967651140020808398065653707053057726486170086442444973281235101444774603090475750900817353707994508318178740830130784651408739745450651580114668067121856604496412706104533621439628214528252123521250049104917432511840046107092078834836131017978237148319260649276511830474850085484963046456912424632250427094705823128327076079115383316311976480567760846558773881660777006182088584749527239974314970808356651551259760160763604905697707188274962713941753665256984704635133430737699688776469126988666583708968241342155534352045337080716078831932024167676764770400624302471652741165821170759596601020461039657739170797872287051781983060575773291058028061020977591237938587454217415764524845039155213443308401249840322522626589177886732745285889629896916791815760935361842929178593028211675967214307586938296173671768733075503539538763636467263007047402280837756792148485570863254189696969218766694272823463874259094532842428869547928081740354058342699945815849590958756771375067751760753998619999403944866500332054861102357334547483273469644943984529165721160495518904129065642809069820403276898970481553270423244141541797827230536526793581774425403219332816133611553829197336687814227809263518451527515912036493670766080962481015428412437247950413224183013815048283373819412162800312016792468260741971054276718823637626793817965937372694731062587267003487993049737366474290700918691608911754882416199772881388840060870203944284132851239520943791942026650585969388338125598677758030880925394214844661070942622379351402860484419077563855234418067349825885514361727585517399851734844197041937572094270569856422903608722102289946162087876983033375165040766732989775688679381594019099727534358794356342177075008610523256613972475693010304582341973295312426213921987493433191870148371307538118679588782519584841774079029600238114157372195225893650310861193102210413010809837229993679200538961598971309550482972517412035396468263618219789768960928317792123547923943382074321139357079663184817797413933095675576346485099898860774318047680629923015243167277518847647753049723306479323718359078928035783938202168590309418942596718177787983773741858294477819756970759969791623206894424169522216612059842054887771544801880953319518554216238338181627466234632088218182517017154362543129706028667838246369496015209732374282052805398226264276645624466450923960331750445233330910254222516413213208327233362776489386715690018696601344632734192532532027457935538854204032630505936268516185606548434774393950147952480290472105494343285461281829093811687037636707581464541228286908670975775715171237905900263613333302979520496662766897824753749485188361784930676003937839813785723123870732039712286464653487977600177672275946123397018623484280629798306329434668641343219585106364373876757701303864030855652141507573240251785503514702906271244254004892345692380827445957250886583508407094288021772535746449714529944144016719141809050965207743065276198507009493470040769121815162386884863117237163100946512085333210982849193290090354473639510691654186234767035034444122437544258441435441511184392187490491761655072617377397541674569948463152346535881953890939541916864894229881798592589135386564701723831469363903781385115110411614663232590572596686594514880885032829243018692121624171225379441131466923716836799483066657866908300520684311750007483262035620213831830212256453248164418677522008476487895535313300886631851019771402402635368669487916346959319715075225113173563404768070778961007753144004545022959879496101135087322566944359867787616142505495250338932457592493588209563003554586336628263445910490504569442195771123410029354038941562612723840196061013512807150846753845603847749685660623853836371384573508711072043827279599097891233321485363682605731471336154936567825555458872025636674338845173502486970385563674437187614845709946629594843847461578639640898391691013921997694807833045480422369123356203451213077960217071286467209025994234276582162556657784909970412541118911763170277085431988474773648902733883164077660069692743904355052500087682877120991565737063165756264135677621756953516225017342008076790361884232548548900823728883581907030093276141758866889180388586404555872651117683153026858555544517429560988428794083989557575865635446326124407866877204790151555788411839697306305977377397936590602932838657479320143450698634774956574553752308295880720098750668113181977756801536615196262237010659059166217146773204950856535053776086353731989652298056768735986191136821283355693270956032286592044622176513634703216314341510458803017977761932169394326278780439242036321961562665894389967455679290043946070472035861645279483968868012711000778270301977097425582603066344276812762147362799746091699344629463483278804288980311081356881292245140302353796686277915670173252902410022571739226062541439573315611304068056633820899739192730272097111698597658457378862200280806418967807973079362336827867523566590646270023220242198113275266585232813567281200294381866229607093768127880462163332773248772242349851494623600149591888818054240116198592136509485897466968903353843200680656278697700480502544764041338035792547519938185853036545068131777596895599840317407000435453532182245722933743806073719373584449192125336786312817989115622814890749169983627393591296514860858027778107105550058740734374387755706504904243494014306104249036981657791092274244106812818486495767897632885993621611223907831686974957323105174866972976800636334854797667870455996660932797583694802931377995045755211847023594367078735894016916025618757549952122875879061050273168363314092816239470929484254320889705275177473502507705766054335105981309456423528080313657686931110045755694736515817710206374128810523706914614652029125512464601738135211733705535908822771053943607447882379700269040569532425910251192269869919358104008082389290149620181808815976348658404409723023303723708496526281492673138204493119922356339864691941517655960572610471138218563411346327072983002318184865671108787641604158840047407693987442357446096243880096544719518418243777410244420571611235194621309802765223568408055480527302123774519904910534601722409316563241276151992703133772763205436137102976131115027189173918189988870259624308820063129032368211895458771982367117994827377273558689053557000153755586924746475706911587122380724336548234573632248168544068460921814303680912365950314022627557024488966375847993774979988362734244863481104047834239371375573108888210653710843023053885651993921500837137058727948305498873287488021927065462886739947909210788211906708578322431353930299956986313809267389208824189268534424072879557667667428303114552570388071316593921157587767818585465667370897719324624562435053091837504074711208531919482506644800953462082070641567823605099740543686896189686308037995374284228263368881741924976683761412564002276205882646304555642437493606885876728843911704265193959167216666933257888881315760919573407305667363960330644243811039866563521642401784035536772626591848059620247433975014413014221194820004373892522351558645442002111234979024710621606222170262925457579160506475177952146410421813084184166638154767032549552709211382631114153499018741489333379115942266019489138662945410836494134475430076533261631567781941371940066445133734184734662295432026929463825845274306022002090383783120590032258072692431003213172372894741087498365204820189668949835189659220513869810383753735158979510948344489139203937912052372631917941947751779044085759194723548411931446005758012738583833513595899815575888378985108030981038001715033810726688913466812093882685354537150351352400356121868342866406281014458396449262100444782435570516070830867231527155206477813472221013779174217500131445992271321262823966716941882472716475038804261214376601902590878637204088186148010863921781587988636921032334676521648217480413160866990337187890246727014282574807637198350070121076086930336086021902033217703895496708594078737357117883209659119461308425777816457343845157565959429089464355560872160189435895061587009783438037860841222142815169224016145751547310854823024827601548638210783452652589457730048760656540863063016901014940381706961113098595488435340886663606206010657256129544898162497300824568639703967535522546879005944835664992243510499418240892309346164436466107833332268891927801538369393185242943904145271649155759299809076102335830480421684317134653985049856568966443441993039579783291873369312934829739779359748515898280025116907166581750682565600445712435826327947724065113719144572783583577602060463474761471002025690749529091982276571373178357446121345945061166332843453780554188913166900414099425163592008367490218793672801115823566375589026250978865417573829176738494231051360182858592328720928706651566775099232709568080109953190990646478813739990307399647493349642429196191903437695784503908989789467786917644056884357558664652566047221927592679685303588215081075275344065293303484862538061742592422619676397962349062678661201548096656087281220220174310706188104850812280780961865717797498512252937379714542614037527252805447251447005417709399809559887604610318762562698721352203627677181781871954536193215232855211236085405809482345535143808979813817908889065961014497316925653332678753792508547974853883766847504075773689510802598958458923388241927533089503982565839263842186627391432632753479749432753227076275163111049893128439614134097307807041132909732776313219339081012168430500277762968464104334511056250462143791006574457512019209521232031270659900092830006613739756009693750191848637564811644495767516842708319876907218389614168826407239006033537010990777090149314573915260815515135611516813196795799521125547470553331499423637243582296896321516726036769911159190801959974958974463741299347609948462538696823843847690003940249962536035370534862945549131199368887685014730559754572794326487041840820115736062051536281853336393815338610461608209895205857443456399129431671925374229931104141041717929609623170687330890212295968803189505479476319658495167668435129130179466994224960963806864955028004092784169666891249812787876296403467245736635582633638356561124371352418293199210770750190411241958783641383921597130129474615519744050141616223485047134366299718040998148087551238905770103305934743879366360184742460755091331165435746561385600721772516823119021201472075005837076644746229409853235065907979984826739355547318655366249958349956221456946649893069867977895588179110687595301494345017825250920494859226276461916082869393342377944071994844004607428090667599337509461224459757399454822145145639296870687760880535171037972307758044794559923447868509018577650709191493607260302140302799190786690600904334906664325410814247698738998483243090143668335710478860569460029244819496577087342740015198009787281865457489443778694229355857090628122202371286285931865113796788002077954400848734841842014810169363738614236854931970855592628184184168654041417670465852644559772053092632196892592724478095905800453124584388055461823629561141436205229510820986131554838157924570386861897423666186885427854618981758392048566040414186245523686443321157634665469681780109634270186624907323212034570029265749710533985296464663642914524476061660417397199147759400954116445302122881046158083209873188600097961952019917443749724301663610496145872322622900813968197483381873863808843383555232477135546275027760788877300559656115705482293762638430092064892654468054965312787815672267350061824113839662284713958493440370983543673198807437929058318799756192951008402009525274990936008054515512054246412397578513510783902919990200155957374768505507867166189282811155298081449290809473415915981048921205154039713622956808118030466548004954091157883382935145472203021301380843573841072120579655019852785772329541214795208013587853707190416859893200796434244650398592420599888872664351927016929302465516478588555259075078207084781370779673144585941083664267073423122665517236591297554510733971557347296117278438155179595908184957800734567407475081337147689153444870288311374863182692244058615022590036086595418137139268074817017173159510133402704900624163131777802184339202348237702380187781370338204367543253337072548036292637467758188351613496632013979005006659732364728581335151403005964448594415222776093684251219459366925643684366774594002917925318331947437665376525837490652398112095398839968643808686129714037289134893485394329737794529093521268824831562792100916186113142693972475257311779168575448410111203701537870157822934583809486414667542795424491518998140083651331045175313339320509387696441552908462158276141074027026911569719313391182587160878495873622425669869841616611775283793492108481717369632349832755353728282909834962908785429986229521757083030475983097652693930350211107360286230841424963557416897986958913364046345849478688943329727390407143010240792111173860380377479754113087252924336793413997634318672635605359125974806649666645710297493489109279749075226510366968840006320624046777377556672490497115756053146382102990644714009230149920324386590189432088187545543584714193062894667142869317012991274047252023558156858426528327802250479024292755189983927226530340471655465935948523049190430954521557190092768742461891118366336946630542603363457953450003128498960088306595735484002915519813413495426445899763089755658170698604499359504591775429222992492061131177996805483398767776291667628087588279004820168979116480849185901459630710283641493493404571083617376570980102854805658888241643704910749679539589301165159179355956339583629652863705481612879917719219761570893829313354756499066203343518633614841044143948438761985719483710932693495018441507023450771112331875924072568607160052738792306864505013753679037753884668491726489845347728646500373509878320763826631863093600023982135267901539556087851017205755503054686909649497487468678022636146230633970324219273041733180846660299186031041591455645165346232987774388630519809144919277073885697640803692240479357451926001404679695091218880379698010651280769681632456109942912101433417240547052254084015962854910065805190592085074242782860247752081414171110578688370345458646815355034297308079005187935419313444058936133696772968082660762043378504727685858126884270513660478230877616095623588597897506668594006869310763042865886485548615604825039574657113799770292849364935788177246398796066429846837840517419984027626473119302758457318998727018313972492909456880017143342863253461186393842851625487477558429047035423076062903183418448460898805445988063672549581152649224851595006654273293003043931061546033857870538784653064800867712231400483073548429454041953161154312892924539342877822824301887602044121929822235525546649951311061243335786975756939977307184673360878275879196288743665521608465245142154336738227501947944653867063694660802385412733833063015458429368652911681578879646871266782616880256800264463921023349966803246690364095363587847320518687307358095551819835364723711853923265261369364160010082061908939566635998891214112295158711270960145016722982614466776408029551896695605055841485811474665941210870223443647668676867013006393425712458624856322313816779589619738968324643162128979545689780908394242745668971313094536036090904918241465213619939181717238091973515407389048423590952606672673815412886765713166398097678997438534831225831048398584170745070268821911092294892057477620060293929705276084932923253249230717983980087706704836975234892326784349209201849102678613288816974375834508275598215880250767751472905029548300135999176800808436049369073484731146496728276210615042145223917395759085684466536400131305768048260385633744646154196610681041488822722066259707624918368837176391555435356873717157120685842760568539142119831497611254486437324158068082286983180868840677473443245580297052167791741234714852137201236738938644024413698721356147386075707299801356508850068318547659652477163325067967103138420970574499910312759406088367608283634335449919021724159173567991833076761899228664175172707497669714646601263525325484183356332659607380251938005082934485394759412653138679162576160363737936668127241855318208435795005510137088444093943317335079645141279623590053621681654880176373025060678555517050714901935786372248647495094489310890632234380803605777992097708076889399642215784229803921940944010484863679936368742366824655712088777475444315037884898509881389303584730428910850993830792494394583747564624735469063193318454765312927920517863596578726107495743360888485244433968618323229390050496892754209512322103587023667312882352708230265748278786017272070552734270327006270841116865705295785070616169428492136287098436129773620493542810644731817627502079187296364003827849775914903070350692156598548936142309315993004756431561503737294146500364472331253641218377473979230797083300354150106265312536583634902382453182688741874070467909808422628723016655179280924825340966190177109870712472191885399380902272060884577793333283387237906845096274586084205650403536414894851875981184404194845364473428946046857950886788004762564993337355511424418383668298752963495335524337048628838317417276218559703242718094227099959912659494629054106168401653409597664210659677751642451834359675499907886547223397962798461835961705747612826715743545866642894396409311497079236935639850179826159777774861609584067906460754442836120392210062494043767506579650815715210078477265425443838043801553013308975961660360318928641330174869361054067218762690268858523227704536502443529979348543990127590323253846870847246285998746569400732366749850891739915958779446256171727710256241843227234228912497272277887103265615668356924047716663031841036188679351180088348920004399260303488656403743528986229543482856478766582720322246153155682470677611577807182368743241526405726238072064735019454412472534103468531348772052962395799400319061627235553421044551008502232006334003691897877012146690655762691847339741923006722230036804565283303280515876931591519285962006211670389721638648199307277684029138622394395885779717203230608966261517567135157197871134520198006150221817181860512426958536560534223772284727054621003410119780436921486692860709432393557184581144459772228743314054445729700228065417232119221989877385848943671221911448009525340874400943226211392451934251829597750705642975449764193926399635665083057805068593643456739840684854185318359112656211298140719864407363494983569621575552042621562920143137386636008133918066360564375501957585724894066104132267501569871855045912119576746114225982587353447456035873914655357702411122698941465784969875741297825825398160626256311657073889643758604124113647855922732628423346087255883529878549882695987998982196652002323061103170825043199781650221486081896459057894334502138507069044708331487254148151501451044501872497696524318461736852156009548923431202329609328261414532177412424518794534865774412003954681060518154466599558409805473915435211505303983785707872105206182562361052534321824619368849683678174986573408934421467830268661615944655908022265725912353270327071009184140168125396060429806496590115393936148550285843936557269027915448157954561875946525456592356641749901566780273009501856138538589702102425196441039008223086573168507466525469586877979170703166719985299992523568291478453747926073808780279525709023121364318922824388117787265843075095368492307862724206974283598699516009611599526914087064346427590054743031080269307713821817675689614477508231170554757302710485995976735899832849457856866004249780492008950841219656046196496756993514113285996241544619059051096616956116124446973849887428413757403187333840873709105856795416719989317233764071391452369362932785065158403163064571691822913886583317727759965219589970369178184613450008525253635926046878325937726169580815165148141126992962349369435107456874028803018007653793324728582178211140318913788705112491313144643651306183336208200804982656430715004498944134808534840891282555193645872344575694599521783665535074602150930758197363519271181210068587741073468502860977132387564500159179284552089904875174171660861668050422911198681016061424997008527743177326467562876467324479524950873937771315615268373298631356194416884482671212095418479879075555362100872861364306882650166559169582772602604918795608262558350527611657306650370809820841331068038537366584263006628565004647602233017934553918784273978292423768236609843031102005037987102677732698781896796355399457647233193685221005823758734048823982751999561649621369587893207133974764958030967833119237541187126414385134065040594460834424922525180051052560016198814689956454903775556837838783193312434585940297093720630594759902172826666095134154904615458287428872631414691702061646928206032644904158538793111234259800184102866534764991664115581777424009302390303309971606275446859295227158899855038136784071453444547432923888333158662133209991899261497649641576883849747429356421292175897314325721308103693419500046225243419385492462601714807240127591474928597658238517676791758350377753255783105636628946626401218829835699708991897432735943988930671177811687371429144261603068438527887025982587685282500108345720921474233639919846399219108174497831720369682212767510165114605053902984505815128045376810728364799261656351788051318528366523943993629420853129534048042071035818486685884361976546246680570487933165113927844139696272221024952745785697732412691116153548787359907456071961876002778624581383276469223202142757327649894095216306762505193057735886053969783345224278460282685876552037706768803774698339097653702137897410527436336045804246386288340548032530534983074479620991631708267621573554717809214465422043951793117145787284964715528466320047934058194215207533677687452851356666790981005638428710914240631672031049741819587340328261896327747862392497375517203181160927367850796775685473624753834235756544015950016004282564223510679483816933532697079632304111849492881386602677706712696974164501199411646452810686524942073960240874588844428585323478592325888456848583208895564769720117808051945587623952118515151127566470652087500430542993770243514734351062200415725063594231352700728991350325150083780712036782084339490378598011048024101463653607657405839735400916485450304185924002771982603495788039253025912293445915567903023621942550294084004984479239673352509766997980468658545397372801332620410195420160744095133162861370630544395988022146430394997156256364942042735868473832012491361959899013229531601237063967174686571311286829980712890316100672362630650987653220679176470625290706348189181699989017317587833515891269777502522444340554101921984897618583146037864064426184888256693634342476965008934753389759960061834763905211897855257651032809177263862296296502103722861848641334842687115314802125070498873912259311229478413981149488017837271155217954696849595541037549713606984687937457211102542037047324132320573394553966318423892837372539077678906535492278701093105613415603893958373814116359031727452095241853480819668009208532645869257496010724917341893521718523197031122162939301265581049668554121200463829001484692029157561148858536996783501592155519697308999834692342831992317035247558581164506571328764120140157142198512141383894373301843615978711913474567562797525680599604031569014276743737016488944333307899891611143500083871863832668955145583162230586356866909702625488018679504570825026297362595162386673070139343125187021846827851335805747546816026495688844003236118055283406058260953139451803525717482279687006544220171821311132010553462900626748620509403604242231999879788887024346719025568945410222563586314766743468434070031578016288432429978563869304579053900830085522803686246990122220277719477462010740158943155790899362143759875926553091973692693008420655841461791289620556731540188232805428182452319915233591668622087110417988563622323948335549009222532757540026567991522784967266679464114036448057097389506601988624864176931888033099520520405169043819587352072130666804057125555174004745545158885924505276028328777070168961509469058330427810917009310707952565999508227219456793147823129423187231589376630807191635440243832817819753160389618839231486974955102552389243599071224110797250437457453639323151420116946761179388475443284974351521432517986331010556145688140160577132064277015333111904674936877456226451649873871523718029945575961047167692607236181083314470446956315241941807463699697798489353420065561699590092697715531674485907180570553360576160680441892426946640188719082408465877545958434468051505656018527677687169629277590327339901969402877073836995725929704650593995783537548216149553137280954988684515181616269193542496878922985665377391088361015873714249509367137809225248742571477517775914934846081131112161309730763246853219906742862500556253751365402187324831033302850473110267452179219021387319967736364934668357938592903219246347966332334569165951059248390890912563164430034418842214447076955123044906532192108299295062618560080755407742503543207188114901806548669072615060279407720388684696577057160552410626238969375355478789805867872780157483799106252215445907012209311514702243037666856363252823375142431651019460011628595805242151937898312291070148956796250662577617825241442790419311149961268747673561722914715007748488178414186981531269120372449875763330727263631606430726269567251934426757515326966686443140278272786631017113502538599981438257231204911255232885389570126932094663806833143680683517004581182291639810095060739864940978970655702713545603035028323818246752870091754723200140485392600967671748173513236506743547788091415880369256627950981899089083956441515462737433766213846539659088390512764066371059061788338517212465394735592377342921773039779574712342321471931398955264541697583740068724180855535659772755345858294305097038526781058402929433375154383378211564666785896906013610020348452345731472559341897203587051453743964428777731651458041329992994503755718386313583008286788015344328856202972814678171203333208437318470123749444482530654451874665589121712999518130771213521706782676540149537586725612288681167597276561132932009871401702861669571050547371087213033352943528850140383365240591878898573218851225086291768134492125361118635257607328674231778289459948437243460108515078067351759189200425754082738477757950171474292954029723052565500987440674488510288453185758436030703180105043468768625427449122576518299109850118710624026821302335641573648096709901788968079129592717254392742400288153445009832562096116294625787805255597457312393957514996517443004643452860242069625054424402283125669554373893672316909379365923202701275641698930318508276026799216274764372424846865489095224816624130260154874825495361068735034591249453081685714459473860550461670576658892501080538963957291367289891117304045666384984241363978752511474074916051337769858515203758213001102517173810502272657871142043639694687800621881173811306974396522669461591865009007864986402414841869983063978743101213682362393990114431689454030213645152845196715988803697497640799539238476835566397695056712321171844318560876658125038196801556544678379261976770457278497783977470691412669335526189656223065859061367027339877273832103931933974709454729183110734806139780528464612730442299054809354465523320113645095429953833231423687411412540294657775255097139384614442391339326962060211647986299815884380627323355078213369740255201723467016790639360705227627134408933809550619319284407175337685418386904944665324661324086920125421655811866265911448361258006148079655032463553516566611238477859352469344483413295123404828888047581732698638905428311061491991047932083104386544208513804857196710370670297684784985401076763993498525837757429451447970494944317347191785611980271209344578208279058154933684130936740814232617888122228446814543060103014323776312667526422308797287993106525715292368093154106040040958632753749944842610864691872056736275185690489421375998183769715282534878821002958107060242215351547893759740794632491162464514690876168168850927377277304316356233966610039461571795696359030666088071819711064685438583342990409876254260670737532867480423000044882038002323343332654887931523652812363263963640784112261117505946589566647441995774334182644331135993035214732778393379839218542862521883765903819031129681779202371134512214722408996976422136787707582452897513537858419541297625967079879369335726346422276492088208477386389088671649868820879909491605648785800192503796990720283308401181306973966304499201501486118656724891168259772403897638540099990245278057574712369950308445944903250028170424260721511862572998333614620361733981625946973189999826579198538767039626737529085567070449798486181424720716398347273048347391470352753066585473805309809627551526886421357673968127974925492701613798064690785035456225115811447751747635772027156855079031631515065634510824395518485561432255913670478929956881794470034838018305733891046349503368896777676850882363822061732961891478865208222589827611833010928711371999386639780305916365402750085216485744462673396342645524334392929508433675977398165949392713873724880617343417390063655314082936485708376061984030615619389226827652288207543325625475483359576197282080275471734283762225058325813762392205235378965937732834878199542907235551269100810435612724535949282825232347971503987648974062283813619759002539871202589977184153084688523548085434785456860730533748940998729767250864889545009917026737038285610266120879742635145184341997288190457942282814143893596062856624979678508179547420137380942863684793576304986423169498276919400910780312251718094873179469678140829802707368233204289356642677257850204288920804238592121387478387609728644063401478336685299218143333733293962245152536139183177678384982783801913648391387813796440248190406714571920608844250891835841621440392528312079543432625441160066011678430341765282103753909759544515532193336140508397812911678112533685734762864158442486848269189945107860581207501436146938852775445736692390656223105930805221209826305314096214883931064869815714238289549575850534842305392113884508823962426877784426478787874088879696365764228308120774572280234767276421711321949583132214858716253398020595996220874166395732029657918755147578885031183151585036270634092526504005929200510508937055167248998933420624966378413121631439298889147827829163777380586296558165109492941213747839891345263069468174434733444421870647161118578851355874207952081038160929893850858996686232192088334415733080910524120419304674182330568127263446200682512105762354500287307117119335113000386391904349615843636361158562902941033647618299346520515181084414904560999715076410212763588758048682150323078012560160080389768399286679599793114629034955316583194842282278998642120919677584003202451671439225704198385396236139310635983635287494484717373711528277748583973600854762124109081884125490608811545209714124771998820759081713244167477244426739917378318488712833192061253626414136730944182464836121247867347103597340429168986090859813486074344882574290886896428970763071803231009560914192031766489656915702158768466558998075067176636346637182988882501826382035139295969508563399679479012958370064529072117237680407991905900771064987962885334486003199255310704686844477287383407527815963382893625420525513355219301717481228044013031589674332616128066633434307422733382806542170235862085760895792228340092954054133576531537964257393899564406968196952389306954660305900243030902411679833656612610429852612656298911099491388108953268353830851386245165991695402808811070986950733921319892185905231342708800339528826296870305877708867466610838420474738258387082000070194681657021197298026119751561602449316196970032666501647599015994240546634340443147552263786689843648396210374908517056197018634768659706497131301299356517803391803054476563856208050842154691254954038688273805258752934098982413630188699102268218449775803533981218625227214527583083530485983974087028989333250487391804123480550124716621955903848291382917631684168624131432971605033082102239820706548916172862426255861165115491486874258893665537829923998130271760510726244117520560468031590173845619261358597558502123276681993200640782924262014554473792672730658962407405696349326638956634790283079751551937079139475143298375676848081679753157047277850566529404356819982441225232697705226626697642842330133720060922458490398774734795139317100461513915999754697262114227562656758283164113245220462453490619266894366708030437507017824941341415386268660075339384376844493940692726217606164778027131195083753104889980027783494688119035263108237575903052747442510025739434744942579266679075622325719411054153081764500160808410703686708451658310262769964117847851049648245868687294509161659274939520128836072482494054414324497663802181997259085836161803362507463920537163238548846059425604990377376443338147424723999326517630215546501934299222656308529474432501185795383694560342161851013274008371808937186755904125229141176370931382486626400077304087427089721553091019837427881569458322677962067414920097917748247871213650786345663533143903012178711845954347014893979855360764484098507220286674879224450520292256778786616715837861530356264482963052416843261198596191670246871037217570271187464080036312468453117735992418014053254002704518995214241063848697351582929654936612302509749459116828498478258922423044608726269343349934362546378840765333101275114320525562209184063234806065436214164837507278190799293673240874241037659614876781262556993477571888351975408930717384411638192703966359380773901533512042877315761033435949270378031789876070171081739351118455604957309534386207706738137713485833094633223944321427215769753492867518047378421529448458046126854693993833700891856498667642428574853761634931055974656342946442376994379453623139178185693386417511398440485729489276239821394747539114481807340942982677146098828007116198359315559242199618433090237485596519258444446836732334149370707122179458583711346863246403971580866050034590485703240664824228114315443168918131415785757134549778410021410128315459241227927925540537934215030737950467363475179823420313653435142516259973618141082756929896948518928724298043713221276481025838119594336547690784686858438796381715065481961031155512451413653900558169799735931685455563588688555112556914919880946702658443594754192900434559683588168562419361696864222460099969126062589456702145958447131313544281677812842559698672475045573503528444521705517593347421327397231235748411870636344864544587790743940443622098941464273066892657832729084493891123327419811257709772127058514184881574670044939603117892840308605830690425515262440671772870400405840982306263586578735661345333299367637900453029542258627178673149657914695745626613471616606764956305442051535285436721268801819462109823090595569906031845618379166513490918377196570368438086973295593709366254724787969450281845125768484296263542043295558794956936733134728952761683360023203172448616623513731501472943368164784842389784311361936598875618244868550261005586204458816380937020382118728200892943735823573586594944653332021193591634874464658301464747898092714949840826393979880955594604986385050974531084435120168958525176263236108795142992600090416005272201458407348347406647700569083551902444903037250308449423782729957133514082707916312247940548526107598949013103681626598810417605413972457057117890432452815274004980971384457566010447229654318311260971850661038726559275496300191420313839918812941566444036706019273605900161254136760615789396028255494268903553657164034918617857464071414278677225886542138604271617557857997559750665928640894878810751860706227293631931651301933655899734416435037027709867682049192884087460754880913834853022143302406765973487205557371467354596905869440586313062041060261714869885559371327063878646658051266582285983799532153767821650790711789220252468760120994287726984251850586945070762532598906508100829939234431144766916856251819580248183621641379577556589187314131412310014913446916819988580797649569031234198894618465647689788109611428552313121702622832595456198753419750247338369416744590407896755365969635575532209762184648839053612188793566466218937879862964202113996562187524498500441729427123253900955394125591719348699478531818430025639604374347833565596825603721276328139870131705079060617542542344446805368900799187954627579466150083786286116354577745837430101186681203476319386831273925520313409652696690150153161717760379663029613745592405757979311382061638792223237141160940886117456204170703833234121426852522181817311518959756281538823367960253057678948457384469586579912507755390750725155902438372847633456744573124936462832868154198761934583489186916162625549796479975751905208009109615744005403344341058609794215753827394764598677227187887334741496623204871494567932940818768752712523232508056475775945241824437584160441999486656261528033809584265835279424750201597432321869850614889276724723859783538725397942667773812807746626771323364274432878316892470061186307179831496274521440533930271781130317538032150424960842693262550752984038444729720570143141611834047274680160537647782162678720793733727909489882773760626648098568887932749212830506601602199023803472040791808820472221400435117593565967079986919125754677241681354215607030943457242147803576372963435232228930905745112482203968644621526426715191961181853754025003590065332537086210424021154250397295671547268345992477402354766174099588183569651528382092609590955682168410177193093456107540757717597405498456025083077415277089933810032361790451645643493059104995832677401414304880562895598682013180037363960788436178422373184309648077787526624952837177544382411106952602863747424138582885056435964587676995448838964109612599385735859369863542218478787584809056378680400090713658923412933290182606637320991580425668907514320908692309457844527963927901441648369845059152272936088494475146197269626364696831773384804287238843510532186015361074923632098434738591288297995064929208596083410620560727591973649586603732606845300356310232018795822642125679599194589492496911647687312963012005912842352851075716693428607994790247259149603258495815622234204495716073245496978172704958271220167359767213362140012413583913079867659371687062188703685163338692691787362913371020596747852056125484696932672403671548094323428129721809517304679181320005629389398872953692634545870082305948155083184567501257679614631961264755231041799598336747974843260530687686502252404191073630133228179449962330225894090389798984846509397655774775590688212109641823756121651064166152934653856482231216620160356234547132909186261674926941837487125738170385362099595687899238250639559476287432603383720808982172854265667954004821966037204447320362622173448756212327540294187569757846810364849054183745689310034088050524256295475237260416199215955370468920303650205240353451849273038912516545149331379338341826561870693404899320371232334319450001164360370785665581994180677112117767970335772265398813798665066774517564285485430855528639745922873919094896610559626153954934673494694628278147102855970311239588167380951623178615988872406281920309319699516693251094873674109105016449572085125914910686576140195743266251616942539979591064956403742866922734649822802009741419315275063180344077457591218774374844625244721526249780296013535344443690723037414344483489288090678778720800529386799801891493506592922056265537995167240455875850412073674909968534040854972736749720196408969379025897138731384412735811863122573287210629854015044544906547961263024729725142875214049790194491018884999704369318097895031614458388938403525566821430902234265953252443808479612272728121379485726630775034630874672529649598799325652622841721195550137101941560953866394741059266972353423823537644769765095614338896481962797052970834903853195823916964081119980501128411256321178979143126629347990948144389227161887576070364236192564036153657252338455517999475384483234523358707071738154565740131819270237515485706192252630111833514473217749251830592129391970884498665264003859095447271192034022861186839665060570107845751197933040736839372067174821787137250431198335924440530294959391381257093056784176100757156499578043600277698212464861607670614538454462027225912213256152924592922079427471258002247055009323943483263590511208239697821996262037388388124920905606963433258756668764686797139642627967123146242823179066588940488937201546656498548186770684923473635260863633155250347468577494488118464467722743531889060762120010419239261397423778647150453843580836803095424968716560197511005300379834583332807956022755174812824117341719937596078112592629146223641219555815047269072464298749274359816101004658347140635668502500818080582157534537039530068858148294272782303587567275928070092688546106857917165937776744431952776104304782551644843492613220234351300164969288018025555295726492268189487315463584552946163322083343929218208659485562893329456273841467839408563006145771604372983998103715984656589979238260197495817154029157179989068961380664520022149592062927441513856117222741897889724143965028829744279216443214795013139997054704133297240157521704941296785522332450037453314358388980860455987279059334936901619491654702855869161769828675832872283404707095963174865988836728647864281970133841685254607704375126050403732547366071167202817624187480208463522604587441170563311522975121034742014526948361361935874227229534117793072464381482706856420979789766336229227053177384466865307422354584137269361573409859722392500442189218454370825849474066849782050312457179678030642124295541495343935240540799964112766968747109804743989263229927798090023823175667650427275030034261997674469338053413061211368390688259021805554469616402193670449898092437900974649305958438372676841505518901275608238146325674010282125809455996038638332936619574095939051820867758157257339338295200174143686406944982030660241490337301250406311229666050448302342092055427873440257811247988082781440714917339121863744368739361508755560378827133148876942002349035228684495701369084020789880292081537905459468195913281037954823698812716709227861596340670966063993096400482838375081671618175188911840671468655632598215622679374072930754876619369607599621317379106610051610833192594438931456947792339060942981263736919414294121571284741752042871828511594210927489838324274583244309603567073123498581331027439375156414722317266128775025323588433016361040167480197889686601707771100247871980289464277389337904368906974363734075458521101198490060090882309719664143006067447653236711755777324684197372534614367758825297204872892006032433880713530230497022506378221003720116325439018037475771008301998836148789321688727407176238331961463606810548250211935215376255639882571207830044013019859169435452189652572789257206318450181990618572123480301327083425534204239534586631195889284309442958671491429344186433568918480833631799191533401541364823087988836212586494962397626605109298612052503373091917129463158371552942021051101451349576711202864728270453769474078772420486846487889023256225666696505157149281184081680162646010342732678562909199452851566053093056237978108372281470579934845382125235193198304351766235783441380839782284955117698882537517528213760002138449810245897252546407126600174931150552151079919161114220242967425677712405603427654521639436071039238838198600777730705196947208905043272579817642439790900055026233306334282186641095551819823941767485918309365904968091857139783413115800263799275569894073725977522949470929323222730660528747678196042556057002515263042099831273381518290024961597669936471582723401992242784112858117096044573468626913986020413712628835058026558690707836515943285938837709943868197567968496487657759213777046571232764889958399121043712573216187353095058324364138843003694920657438068902060511601703706023082990098668525982153630027434934254533442618982807563764204888342538790989318171382346858715103321799828171483889806922113277968420596056609931577367888890180022233344982137968970298692995744833906253969224703338434787256599495465813230182079116993543228342787999390252882356357927084649201084170752383231963916330863932063146733791370862169664416623559389237719409042389692059073579244090875504531943245479213484184124143149914752381040455100388624275442282608829796861694893695325530333862247483206230842203576847089863412283286875852947820265365323123667726309480720412719225461318325349018517079262652382544072603126663747354281239969020955190112101917668531460757046879746032707058868777577160145785495938360464611697101197235725149038175504928483683563322863221263619683660762585349202186460645007485737574914615175611334382243739769630774234362788173751641902152961520414723471666445087989074255479102603179640988893887596796516226302056613320768003801351530983291615453530229118213272962944744555301094152878290406744447483573983024591334325410380880955378846085263007244725534966404725777879836618336508251292835020089246193932595586706112834060458347175376894276591329898846996346092187922882588978033563434838105998447643499384583245540524784804547012525023531088527355738774858100253548843230622678076737394213704973202358156212396907793061318160162951221477899008542624594398503383647360364269273327141752411503614197041100456363091020046815272638192024776529990959894581706718398314378183088096456610054535007166391456866859701457142741566165616681953747602989344536942551401033452871181766177721228706506205805190733021550365702108651828913577725084373608377339968251705159016755679458685696536609442590166661827177757394105164190690441126969125923237381232521302808420748897541989444928979139940624496124662770756066285613248556426702539359304823867223445292445538434639640874968459637716212526143525356008467903316628476126613281811507343363783119113802103977956381713301711626305552888212097871018808863045619873463388033918780347009527196907791653008301479235907054316412891185400648776339756583039046418120728775481556106174757103711565034021770153041332246968116270798995090691035385871365462523838978465435590408965529467854609651330358055300296346665349854654123705511614034657333141092378137715143201840107819109290383108023941261278015371171426079878498863993668695259790934392332534501140171410605965625253790899348026638672974586043475882757765373233072368316989063196112248457323556312535523361182145872271107004242458464373157371657077554298735176000744952626237592913935054143709705497966678263192420080755040168834497199576318199993612651210516471425591703445601813713574039900444423442185104398026827562897207794208311527065548795671016243057182203683482634705982434333831587183369652470423580778096696017264052170054206390356963578310722765239173546747940180185420973248318039015515924851265270678721341801544620681511459495740539090876461511151470730403969354555951383619119284417617680171698663326597141948749991804286192602639972690870082895264620108749478251352551244975762890806150488368043258308034759790085169095666511837127499114486313828788757778453199180469175916435909737298880822257820420710880197906420387517146789900427203986465576543391904590658724379118911022310801875806027914741104265270615285150823018688958660872206724239523363789479436025319602504447142409667534911876490621935108861266154342116206652456646215043015981977813875356540419772656222792520494129148983175998396647152974665194940382862206750834593695105243941982432103201893723367575859516435821620958068481435909832817584634042229515630891038071780587262031108274663899436083539470782149614867556883285807371880399948824264573132373862025579850641187175608816146978581492718370300434977947417143056206666284587169350168647161633633950161563068609607914428510112172831786039709279604200304678971821826792270321702769219034166042264624721342902601505819661253930660638328417323559642686470198725533214735432160346028467309270438917281163845366945436643231502892472643825332326203031461020215371829714640971766914114442098510556910343003214865215115353569408707702904191301360811409069415251008049227612652396369150683693717861268628655472637340081416606377566202237206829886380968696834928833756257843865730051292950654250789670106207993207254436464023530638336017618958855709336962521982928730357079163933893896479575462867304688918770773366974847934233825696876205060619977070490014917964422356326948254918434241404593801736661422316357200456477815658383728361801843008017979270107901281639971378637840245964811557508557910253666454382131494101117439035549793427577954807608228850689899049921965962867837751901478955455263993560747221086770110059795798697780610699649019703499448542046035624693259755081381665036118446342153053216138609324217924605267188935843682682532569739311391488843885577896281104678841266905009599387819719899891313846186466838036670192580731267828753302146781706818973136475962459364227841223566609444050984133165932128276103296871007046533085752474585460940768552276079941299650295066727492749285958611358423544413999979059990283945314674783538575514221535674893063917775271952870144211330075618950678754802729409952031382815395652958461996021266706154399654871635918152331562841581564075414339397539349859297424733223206093362323249085534152556975266293292673217124874113585341456737711713598813623200869170934638531762522320711570739080701785791227628185162900903409661712409251700125077030208120530294930527137529678592399536513591701008597519346888072862330962990396806810251733067451504110361547030139068169278081077126884710047710370214975749191795559699260482452318678278758669449590168138755599568292298240528212844077337084858912638123381409526778428972938494797222932037821699816711943397675950504113734416364061143977639073793212724535798503190922080861303714579607024755547050493561077226059520002465588495322558381064485465129786157340567485804807935244826788263385199196781324371427386009678893250107473800158372115351376226295751879135766566781687794704331983610850778178682245484055268744408062348126965733940562349735242768777272392988017934255592359447573816662191696204219166793417397744781151883688436529449366812614733655233897315318034166233049635409803838799184711453982208924348166526357927590126735811583251362671073951175009239477168664013143064956185346937852562581765226141167999875245608787690999396679700701821819483680079073450480685975057231581532768046384405563042469660835324357484157860507052210395391269092507375588008356151247464850365404745665364240270328381487905749615906087707455659669080196551328998143479073566476340312391432668398371664198329407835308931718071442556562340278099308803552758610946578040801603762540906616365523882971898636661982715348741551426640508360196182222733207018837391738315979058865449227670989309716760310784137545905591562443330062853975056577436221682675651051869334690548247602899034283567043067594560067628535139823594885517090705634855546308298604472494457290966063486611907727140679942887035066775251471506683333257324074185242239160147386105096662641231482659631940639136944634364958642858382743417465169516296850110537397844188710986981064219855596479349347616450979767966603177231828615015904979396568227569120827937496025645206332481810031085993719694614176974752044382594270052854049200947879909267112119376231345695486971244938277944586500368085738143343642380065448446737838324418201469632458676581325317894959761903198037489930469122992783848519180546239479032455862829554220134888813727720411367924373010484217979775633041381287599008497036351079460605922833993741743033085441631243225108153998368663826896691004069383886298288804515668380093591284082304756220549673941203076188899609751745167608857609062119196883930351501746230783795039064488069924286943043974218697780946794151948535718162107993710750674369086452854813263305889726536626516604577098655975899669255718910994900665261740555634126224924976653644966324518588525209493241581700955328687919633988485664508169876201264962580175290966959029379329536274097923937712890560489383451097254040297021373912769919312906192185556336268448882530444399369259160762791078640102371232046806938882980146963178494530357376313004689651019055600268468065729890496178148991462661351632284288178356442551991196547802767233646626326853595898908208791233395877441133620751130634819069316430777117347246945561358423741629707495583130604507805969422364605589404143311177124509034101948450975465554891834050192823126703374022131235292136870138390307280494146358075599544513523643775624182724024744809878715466676138688361607272649945616169639249413620931165638480341636719433824294225274487621967579407258679711670108126824277008239254791684272302086590525525469386191506504981435426730916334239331530278873840200715998033949913819805140418014293476651266633402948474914287029986964279670861837863638321644403972904360999113740776050043303593559738188592262066029741586581980081021421461876651690693668034359880636705653120201779633550384815777933923321198007993208590351508118408036830285058258715643791016127035772479332219204227087276144694352119033354892416481379630009976823025875070067807659375012037003090508100618098194268769903228194930610442851677673857575873238167258878107858895813341983486318007672270102708822449191069915111102481496058879384070744704691569616225159811464915203386598985419549531069884963904125647572948745726357922932163862937689802826551008550493181912190331533092018044357480967523688015213028690226904389389647182027660753090689253181609190657451594484521681400981071359558991250400402122151652551929984761209681481613149176058137698895310584926610219344790870714044741706250299184174836625491977672642129552623924670561470181816841659870152606199081769058467044984190386231748468879523110274791739685031507030238474575476488660834446386845583283169305928599897022412062430235643230097583764837062428528588365334797952373552984594922931139492033202002344654491291310664728898381728759966010401119484563467537894215793744729268953707741018677622392183648262402586448237364839231263647996154787698356248228900439792014306153223488291565746089950810066434710183670224125784440453089744105182009656226802151557994700724516204476515569828738901819065556221884679793402445731190890910121097018751274415569337837646571195452167502698246572693283755966958235424883120618620889830892540452173689606150791171005758074769211358500084437293959659386020391429948734840003060337212019076807185060456388965414128837017661052422013027664779865780323856504610337678710348142087032277845746166643840552887413632934040605280919826049351465519219708333124330344127988866923165993331426418916765254685941429072970328657949521825889646099525994058348766762412867387319601214414826846172682942511859028089356217488121209269741219043346825793624165670145399860412480810846259566820630583865170623508492545458373500819040872062344750087839635331631949210209255981043106561137640781688616264934226616114093727751384420922427580127863930595680779551508988429518082520668676390541275377768382716748291758926656573094907701844508267779159996163243412728314953847741882001284457189416265876231727960821704957332682957067197001459664576663451478158122757970084726146448014351933781344468599988745706211384091824357147293451730337043161264903227425826887497926330017464242163875128836095957766289951898558869907884252026846522989886284815410681298620296320439234139235347524985568089321408169560415161647751096498452010239687364755578312428149173176419745414276604883534980884211313138439028746007772622142560048586438166373396666277515738666555872324285511628507589386343286775167572542727112214814617496559566936283037182775658387869112462580731458779035985887058119185062642623136251775784953517853251567344247065690708937973571157992430076031473795663934056872852892528740484854950318358015932289928957934393273771032955358919253560408228847238523885694945162943526499682501851802920104229359395685928672877573946588463734670878359129764827814022503989379208874192384628915976848247069662136613191754599564213325784357850196813036073947255190852553814758190991113128502337956176119680155867710265551551085889554578463889235807234397897489478164449595417208776382593292756371333363951687845367515676389671933185619984975963440414888082164859297899903942180825617916022109852322878532797678887174137181910995522305321849650245794144324700171549394099748789549128633430210622152460505801489655813220399468161998705491210124733748155383617085392919686170996630089066200580500127420193986476124872090506719747795883727634491574744906965392512451021900087353595050670150383530181893719596384831024472254461915153090133872999814301469542129054723976048976532464288078390210125381665258483131630342635739035559243019198343736782744284426125532186807435224675588095011479421318052480685247282469667044446742688432871674410301662892742038510627645565787971268151349573067447878199855926338140849418669735842910845590364335474142064370331630424189185834463396299764178606154056513173964510632830703581593685177389517131690963063177553116899840384587079052358890804550041254163373931015397307174071649450986685643031660689682601711287612103713958840334073645546379445923809891246279842772146989084054497938810460661381364055542707310857123945375057571914981575216010091451875033880595292192155234613044487258956524399110018221137374445702219514713676845846976345007815680732205309363902039112739912300486370935175946769328723621642213925826928938145117325587070343465322686299293146196864872797948759717180694206223962809820244114782125370311072253172168412889843851012295759520609232527712954486151273684597629518716494601622978621378760716658600528666405645141022431612897768269846783855481313106774258203057899869288009530213954495610468875224722693334100551664418333169342017089172794513937494490589799077498325430261767208907517282304898975396146524896807456501798310442130563579631362267435837243204254445968090657109171708809281418450026212698018415192189976122874060719043167274677145412829357913592777248224950928362397823526648825405350550928448020745394547995286421605290889591444044113716075051439072257394755000927163733063760927721171581516472990327534875650731683612806255307254905924072747470213723050123074341787272477782100767240717508944194394839672144832853388249907440497960195898158024506881932256440786456235230052984934738247236006531517146376647220592340147941282319050572714005589340148640082158282970362615566783318868146189392650937946230205099848391175940049017819128079717070666944562101974069832387925070516182632763299901091474022045707974657535073551472811809928109962494344621532971068366830408448788449108843425881978619233761781570109164431158296840781270173371008212241159488684160830966218259185503182685907590221538071162727954347755456807118002112169748938435271515638381033961121093733927140170941190913629061888377683340527622724132580600350852969613397156505306837435010649443336015413520913490948648195078920099864663109212529816627620175431463304282623413170593712177135095613224340807059378071333656025379406406863501642837305491386459682681719001546332562680127045922022574764945882275789611505687131050012668025614165132889839216181934197389599967453893520717684810296246241093957530027515959539750796977899810794452553308207360880683329220319494700162799233339660596426768996422181116641227122955325250216648727431573577282560773165968431442213478913468312090337975340323015427274274613556571344593742368564933930024777149001834653989430033506511647833488205808689904381511164962108397685369565920417673130106720772535071767270248587267249908593659534374766040778538611478544853650602135221208989172105038796700440477109020002826510017634369265868483580052477393424590340870228748803864953873955623750276243965778515118892384045496858066937213083253988959739232049722202237505952244573729414423641047772470934675722486255273290414984537692008777007338652180447905642713104693929419929045791774333137701411794865538882387357590436843503801562362274074659925725921115791862295310585300917699395670573067757243610337214348854982436691829115118164563915177923754205035975804820115009627201371346252424695161456166582284718849351805909465115830422235814177977054770515643257161940901291970250395749706155085802331129828646107600482556584347960616799418862942678577391906330325212009075013667022257229718918409089969518688072473229780716799069402741237101875697363169284746302917445329383045065530787171734122643237881405053488495386131931623741322503983504739997689360338127638463202151539086971062835110501602961131245034858806628181797670790533927947877020756669904076683120549784084293162675085231252856792952709717687282186721571936665519367590183714606000607895909455134666863900272352156882839928940777583567586178897705455115980920538943802542126285625283130403580394997850685218872894921634065568903375950045554317522570705924929041202807659248935182291467724852542331789994132987336791785139516924672549404216138514768173099909335739196711882464216975246875843102204758953606016892257170213739556930397176825001110953737402051543106174351941582819077195163402381807235681505824706654389261233699288825190099247282634033267892775518231743766031424514352852128031349476846066632426274379940732606951567427848536044773154442082776817583644738135606665269625980247126325563117972357156720248543458469388642361252640515412435776448609903076978310552160726825396759993592406430126180130541572904509882424517056047598856236383973371661510255489699201485786423946253145755300792406011303920085756929167071805355071157200993452158476569086138166897219105916869068856830838053025564006883039437155385157823409435789305333718340502718825521072398775759331641123838128822362377568516626502206770825262847523851722578812664462236662008741098322816802480743075545351826363490531138182500244714252620946357436215494604915132235505344409377174578846946748270980401334158698921799062404393780023935941473223161370525593275800866311528409674675536675165836060815580494711334585722926116547928182565924728263413710469890276430050290325199451280962271024703363692197343615101948634515749812425936107005588605697418847129186015010791051725973610796540564731205098436226844094706325207753581496851186525711357462689153811366684741301212495037205621590933590326844879883103816639696498910769934728653646818937881118122640270674533274380626637248747904638092278330611733263595745892044756607444569668491960848891407900723449452128234783893938699968832318487294690597030903640159049193771680979819416090526782340612392323623209913519904629786244339641607692363528843388041596374596190637000593288687599585599787107171814389968601323373562980276145371243042750633414623296682065500205668690655718623526755515419550980088836951524975044900886515898244633072184137793498099662428155799984770757702848129708985346579445918571726142879103040622884625266120088691130525144018027177856647394566166350144828533566876172118717490336905860273394501077841062110783701848375631491346475713373741949189389308557219487625421964309753820476611138418183322942094067056760613985343584425827637584721718877083629476099782916839245362011406988340715144962257027215428289081472769208286383288778697571503294736973262871042519269041775688902261037387646718110179678478368306334487530855752554251555992344749463244161124027435488373803301857913680588448934877484501520294511650944740430873572523299854758557944227491818742371272251444396102431878831147928684157362939944171087991506807825730008036995995715105610896573012796323549413153751001172908306214567931890591625840248134125767438514479175040398534384164007299250139844012692848190232769945679211193848828006646558621282261710370195995740849834056966814512650973706863516357746576670495928890549592748102437096235917712860760687508468139935377510404692783540649418473616900893080491482938705374839681707770331712938196689304578185092654301686912874131795311185908162979292117039376687957623846341327759429958917820808739885875658024009547632529402475844338517856893779675123201629996867566481560495221936604159898259156482458538169137818052487408938367453639565332083820478894501298737191727822961269108021170712228236869156658723705685219614062868728530252812917869443099566486367947086656167931303314493291142383585792465436266896833778415548462416308861880332502259244211943552281780242717106133715298110693174661941791498398887889254972288026060424254980372314289934307596976157848526512014351899860841233518672762788395760276940649808274948490336638546903629462255232772836043069223747665990445590291224207610582466166811600253007339051790890149336128695950710697628304163637184737495679920849210218617332257625713098925398433603499655172412042211208448944364264057526354181482436997311599115115860773238909778453547720102088895499735666353339716616347590365953032821659542185395460015742450845871979163436652043653208240003591798312747464364644762215397485960566731772585166428484892800949700912526574192569106058434783431866395842179524364314935604984153200615480642835338031621333413556660146634430687460632264005875181942262529985624062267777205989500324484646631387370393131433526456262496293317716915610594934122150756408484050988981609005753514335208702228184778782231139427325115040925274805636759147318419980476421276827048314654458831968338127270913953012378418514808922523277502412565375375113955708367638146907636068207626629374439608360482131628252605660378805559703640285888357609471235141097775631116791126385484979707473383195609394538846974061541066478174366935154723014684686969280554804334171630946827121671712182671532176210305817678846205218244635830874246462165319358758096993609078673658869194066021234354526739992252992526984914859850756747932813613228111273612472457876373326815532064240902323460420272239148760995995996212388746185134395773047920418340548920639590280780328820664309108038311344235606441285259714024608704183126841273740973493555805240373116270251161094323213491707802490155795140473013546250154638266331175664102047630694915477871480727831025565271868100515348458381807483843582516456679621446579084143764955211280720112264276875888814853599956310523739111363901904704115981321752823421245299631103312722193520275771392953530267037462500439518243903707715037817279869560429656591634982692116826655279477415023305759672238665953428552750563675332581424549202090423089234501681856918925150027613580597413417815774838782493731479429122798323530552227984943760764724681569887841285125961054242111580612642012059653196602346701242561132586791705081949165084440668637926103812754821850394966045505559877854441258052013302991054000963326472181924487612853985430715150732448231424046732875416566517470746639571563768876772466187996416849957347524049874869951486358870099257343056888727958199891865902841462565457069623242140958728048366744120842943704244763593947056377058350698994820900089997531567403710727703584409767954796972763720553127373835413535906513600168365136789807646049412364470076360698241296120411298637764391357868741811636825840100406699779831549847883413197803184338504311392441310569507365502245792922323168107130785336980955388339428720763320540373580132241221080590444320833876955916583096503807313200288925315726790902757994057146015366766061476702825254972568971067539578134626376186660672827209391838943053268373665366378376572354473418006954123009508665364468153921135713271563122654838644929692753223129580525946037995456346929318179097734204225602482013950952085297070805976951330459591979014733514672323197571327513558028227186467347754720105953527085591753939775281014225842833741604041473474680662172133371718510462388829277185016629013529556491346499563876303819600404450144964842685096636008037680693568641225411286377445161632590003306595964697741036349172108525000117570640859963616633081060760998658657372461076347779262951721237656588185432777545448570276143850132870947868500025917111155936234580792005600628618112956479479868521536018982331705400665005302510616016057330923013466571584705904887993233742023794934936057984452642357396852187720180958925213872116204891293639926891291957055184940096719723877088759590522310806114096267328197771146877240940327418003257420518149348475535608627014590589738048432413861169319073497639436119236468689518393215922061869957341315391419763680272447917566013316050589051036476261935961959104477528972519655179945616399278268595144831783931286054270678444914407500849588527395496807658498946957638648210764477488998609720952176429720017908328045845461423774771883745272001741310501681109915522305520195961692655635880839884017955420054377740463610129826997279460929615226200325576653320469632565427243543968071888407247376908283760143169913217627205755206860666457934113802008669505872197741352153242052530452016416836389661297102686741080877867434126035700089717067614919288236987936819330083852604517172085702091310400732976838266802508503725265492468920910666186967966972103419088853126077511394429138446087105054469609495489634883760960588582449248279140247523010890378679537119677665095722732973939668728560768574482303660333553100716790361331291504849256212673431033505748401388435794351787367812617803336572023157911600447227962370150355366811857074795909027278656910315648535899273916178390407957644919681533260461775592560831296666020044164383005432568136886913550223047236266927267015243736523841242998374035104033358522905751793924534948558027188359082870062638304095913446534846860149552162840830814940301107064044720175147483859575633732247324118956860208585732048955783329014737132258747802040730597518293844689536379460004808110605862367322097517579628546690458337133403884794498148080699845118680616685341096837467620398150796932454734818723903187469985401034745513041511209556848051198722760791620338985633763550888902292237155484051962125043111721892827753847889532644932752710392249162889487860232213097350986241614010721634740978027139622644118588955469016646402536262494412699208565891628950302860623676807901635755291549624353428528350907824606005789966340642594373256894331050740792102848968360238948384645356033357125254199869454687059814223016429199384244516058089688856053173934965167929265697625543279726075507509454335069469907934399414501201046713555180972907754970980251585625129913171556636748054817460646277269878609727491433080809021699868929665950716654130930295567465092599574211878597440439072397816170818018038589889992225177040270750409327222929423207674559460240673262100908412168885238883847274965151983586302149893172558921699786077031884110182666787115974072245655488280294066022038716202736120386051905205088853473329318292863545649378103435748007751862957123184385401841086881859685155486469039404212380396557383463046595391652589360568123623699865698841901701003098823678468478889141840461056859192043434287018707624418227121037844839463538905606483819553682170215713113972901402020768663622571667678801798742795448710725187647370577822952915106211757954331574141515812140734103797384623866671699642354933080427314943974839912369878868936960100736187931527115433209142718047446974172310065060229082705506033265969506873470083723438673957113444524395011049392490671640534847350909964916740401698688598772329003939875438210454591863394358278093184738326247169999720397886151352526304985319156280862025949753977628535162178391469741985364470350222290077873698256875815996041474655347341603185617885333768491525920112367546929619738377798592196926964786943062719865289901728844753887885864376306704045675821316470737754424033855128607620871419840604950718081429355070402675173047068756635962605899688365524573022747149989300767348381388562712989489203676456215176754443639905303311821012043427230491035228943874169794205597826714774668659393088952293574431675099491753605616793290848457298691231363600133137261503176390855586025152274629716804549271017488506021311432519264148765582912672852922439304108350181528778703331582139164345075202745652635505268631987769876499579580238673862553090809719697429817204055599401508692125536156827455762168078247960181663902242935639852022511147303924868241101642224792426164720954980814770135674808988603546258481783058289990880193620157054583627387922200967263327518440880302044120704344654128708072399344965445194649119299456178472872988150953716801254050366299580196892290204721740988681022598971296228473814708804316230035476023377573843767529191071845962859367993179422534754188454968604371788706281712951045062509834510317159698151368534817175074157547361146594772117300590301062278244626007967195120339746589439453895144671025655318226170414642402157224959687133951291158675652741797047884733339996263677019094628196059680144103718836858024361898578439455931681672178141207004984363459053637662965433381362377435546314783506793842558020275689432827874239644668553416318782253739600275952315849649954284017427562695291748931117292172812247527178160818447229619719384820562010101914888784807437431528402765691324267080015220490622490035119892859156504701044597082738700763094183812211661524042114924560161478204923458180741491741778048485245759017421663607812913856196750356155184118727915430976866324882316616293870949338421344973289433242762799399054189055106526461565461471945438471256225835190534643024800486185281123117620280319509481427147059008620341427477674229863833468955692843119019523940474339423867228754698641392934645759406776292011968041609971756166118563808145174228659327050984110078339648936103321234643521526321711418035259804256553932718457344757929078669446254663025424376868506227161303462812919185075078729386962814866720961396539225709852651373412051979190130321601333789842255733715733405531842108494240402778210627827932899123841629057544387238245040392103475320250910221165464365228200811584372553899600860010273970500062350585296309478096901192009228109347440505678977466982383429711110886810018519231044337815972281352920334182270209115737913427047976300558120635079936251981416590681065685362231403795635376358832824420170214976091661818938723847113028522335046205622994715843006086800473028356149690193432390362407116817615548505526722010846116261626364969887836683009883070510562692738503116601984028541766320923520839225810728472237720723048978171012984621724148955627102389368242975732258796337093469919327906327852414377236616118158428009767617021751917750729402425082995816205198517283008530680980792042288309093943867955945619017718539584947284473868613697077042019364743324499074109108975096541397207274517178738264139520999361553683108201957676372606436741225044674237521415907776303683862042550470041940598893790195362672919611376012923586146475599305152518791347814182588492672602478063447777151146714227341855881190033901728825649442223991804110288641413646723247730353470182075820640498893008870524751097255605268401933172398103469064775870889963537259587438753507024836465812293205854004117038696008867538364064744652465193881100881194258098188078202120494073733284169926482449329456947710422646399624088121990911609893983483237975605354827958720302529193494587485358120419371294569826622185099976810211157298701731876102551214579991333621974055575784401717234009149179519383468337295392496334686005316426029573405645813842245796364192380877598250970506114414605629904093016420989337488754937460184848223514478568803755441849113583663470087139995608895641060947137366315805665220240085374143213612481301309995057983940179453080377249921696355316867230973164657585755831840696259070663641486185538174513931099284526006344227863988387019309396375487566782858752014514402705032912200752236783148666969143056384869880363421733712579703010568142683913600129981992098078463650678635104489388818027653124034708777797812782872066895610518560634658648732824298754398336309835272520239209015546500605633967312480575082475494250009954496234300104019449359857731743938536074027653639574108620470042592169010194144054252696586620405165427124721566874141238110654418280938430450349597531724173808083167936454003012083076384913333924555817389577010475926138011608103550202859789572980863413829565942246599936664285633022192288223611693910627937670540556813298236897888346974996204950302930233833378045735528438877264739956450197844901088044498488102978184862122936631345034274350577224513729040364614235442055707114158900156187128487803366631870649915870221482912359955578053449886830046573345756885496202856156637586957640093252806601668776898367826219344539159490151280573076271304532390114209909235917676929182494441307569380887836181593118092642140769235629036322534514174937387056820915602591048968206373579420875754864896786369951053264486823228059963463346102039414272040321806707806147203851924273597155526486009563734971365681865223679921558248061696813207660664846137973734752995858430833334474228139922530011452745020114084940771070777650557823366567374171469065016093324144277355696447541302151998880134897401210517221589340372730096799416995671742737377769948382583152553631875292821913243161291108563521284819950754944966966919856672637777181730314917991045113285180055119801562725607328183847796656352647943946947738127049822135302394618453381381645619255629910494636652741711520672266077943105163094508668161342061108021123551262661801335348153318793668502186460598250648208974996050279080895633102469389831272966445268275888317304647685269532213752855067946039769287112386684388351597572919698010375716902703314279395909034579891120448348077513732759158190144579430524720965923471074755590207205493126010427341963950414159700020306352718288841628785422484606988177678125375599818604876869704600401110913519459882568947887807579686426208272215331798188307190160647784885896322804211896728408308802038521624838480350478948679800502743842722983412867772356363036672718229664350308216196614450001750647446282351348067591100012661325155513652567691041236239271973237774060429916574413272754204140465235268616611254065814194348992211909506057498593180735115957272204412288522768944581604865357194736356204760846572770903570895808739578534119527969404360600966497737125824432547566894478799715402799929647073458824890423222835848009496712609630532126348984662503589651708098840539159692753987350881809591868996238023271519209135963029392992157047221945853298286350834535108467185387346699158765613501888002135299511333899447456520601611644005920528147948555896807843312656440483359185858116989784154493863003510291002087793495932247308729744420365198285658465576820569668097820575119065149120709944392478070419577594887763812970047354447635880248386337368408895610278326001706678012242072786007911368361852422170387564042326890519395679944949663400591036734610527148857696375396359942514694898988679024698994337944157091277631966351130613861216430991336358878951776029567857696826025994986196423025457908891381990985915546287050495034392502426599234270791809967372560537450382695662230398199362108023179457315869204023573676413816673100788891117723681642916334065653410713118589400263863619792885690305933005714964773046780793816732493368343226463234360610739825868595396531118648334762977058429662742280450845403751652204602151533632752589199864374531165108681890164714104815102333984613778957774889268135786754600467412020628329830261376284963140370080561901151494693932845598460639891834579120097254461832537524705546684717591964773837490128357433753775946529118842097393164913258040444456095768245324577747560492484222420619855356377854267078176144616365667909905887985878452805284451375124974671819579808563475203451353423924740158215355915053618227440416041930285301204732243701177480899335340336346722205765029157079037751137584178551607905888811337122268743784519493928216094097142529024941629791268662757413143531232801095443519063989638493901003108109743581690153154243179337323226861369792108215922912321945384267489018980511511294470203205254031314982920303014317838055709963438604652126638203189443885835712541019811232610863397191351246586938618093074624292658761381647337410282181262767722770526061930510207917298669486371939960354992548510562733220475442207504186667532084551417945148063704505965688885646649185196223294685185110113480802769392248735429633610771324023350041268464494246108719738666483616264290085453480392789875105008194240329191718819449614303663375147576435153280838351087390233317929338648259884156924451487390586707602581911066015864856742863866446044582686523239903168499875209332670271586919770086284072867317270599811041224857816773742659516336973414700524972581659688349854343609087707906058325431546162423162266802015468005445393148251833438562782157414317521576249318536507009604660321698299450770664765392207560166428439327114720382510086566036843205288071646608167470016687893735459734375002962703735154397711384093509815520167939439825955090319388484632730888336135147212390133663731038659087433433500651839660782934969968762200639285170357611101064803248075608011519499780720076789064277302386694428927271482280678308861130019893676321215726495930975322022978343893020205026202561361812351836691041622024104125719829553994200465733388978244710278116872071915390678521758368657501200617746403938618699490607435256618672131330479948194404364017882937707898161546127401154393171614120336524458336455262655532368921372093583907184836245674279254701318100418475314787548072147683283520006548049902850421815140240315550504689758857061952490302503939980777733397775865482359553763828942662103410312447357710119877958279858500296300097615423883203292072221083160364693952438089141263367720290094499635914065848001466203289043999206740083510419580191973585551624069266378557644151800687833072995594984854318990336064647052540049569102670737471834211452880265026540252010873481175731682425242465484753864985648168976829963969712767661186063432086691342966210232705288909413084509579090182187033956843802501225687876348401731595611049215632576001807656333228966483091892535247671380615558231324122533310996111257520453511856797044625430718421802118803454396065583205912894901053865923390308298663436566246729544270118873432314693495004999231387480990007367545061392394655624391485183217779049488248707055452019606134168576679007226170675312513322110881993267003292325271799183387980812410417837429712950782900112737147610555852944553345340143009520294893084377501027645932367407685596816586085146573267680422310963130054661796757118866537377543354006045924629175458167753790714384126313168010363195744372705844265100943131009408047522325532613928358645297077918109529640413933860951912708841534909980915806555250258447736680572534982001679079262130086707107506016877910911400554234244676868523281208592178359457216908420511822856825200213401440586548351965996288101513041234463218747056036186283034033202582951986801016578802261228254698560156512892149871210934366447364205585184735078022912712662375897484359826019782676985551208540291235811321280890290620578620911909322861672016137997090257468273749997050970601960787696903770710841183248977027982956212552096476820067325146852909511643244994939633296201454211612881192200613153404312949064880026704557321271192444224278580950894729877899914245795860576440788544698770522234010323334712880186858703757726491357922619542273496169764039492128559600263827172176827806984501861846529521447849610085683725647853520853417730870417929461474674133973841673542219893556254008775273439742319957761536057683129862686731297947955218212507426403021305466865445302303925037672140771152778231370652540251115744658386896594182071749918635010069537217919576022001506996679104691863232334648501623167129783192484153762099695854929618814406332747314904081569862336824634669974013611356773215501194642838727648308872011883883033535629525241909609470052708849441207127014335366945764288410582176440943007944368736629166694063762966368496782228383908687724658725264158376651695056717547520667893878316173883175524665641836051672726230773682791087869288698044618245594014720007177064985468665273086027272502687652750192188371317061515303790307325261295959266097756726013231872371582260551562729241074602538340799809641717943899927443569731796089737256133572777954792136181406945029405860962666824997132223400271162118703512726859800754890536413798959656083212396355496273558809266243743802777741022449846351149632432011342912629725290726658962848733379187943203360350733050347718136729476626073001967830884893058902556630201330761603061005866625698248238928130697417853470991598742220351594808139978842276888406793166106629625150096594868059593063323777930862376159718957909857231430858260361637386863669440293146050861360264760134142263981718012251539532173008878332016770231106658184325528413991986145677455706679416365274301497974818036285858176349419853968693086281293721340085168723574952443264427906724454259580303514883632180795332354431444900219778336360876395525100309679543267575115002905869476953591203915165975657485616154743775532486026593501021746192646770447755828533149905211534046097795438046945701374222904302295874623907788543483104811858250698297410591590926277025510783340834912733835411672194104751925316051978769220272497952592189317173270162272703664930160772138614224766287940194930073935872374085499885963640677658384363765099013786740618044872826121108615329176976716109580263963171707924387122737259883959805810408055091864303963483590685130318939347009299528411774881245639883233636594251429250137878817419442315333361337457379648269011342082733783137434533226594569859663214570444552784528617044202271459720530066865106903277950073679616214240985305385628138066030502852861659271596199877933303390421763030405439930712673595328104584025122001411924119177368425977913158084328941840691695355185712423208509254259289256000292470531580056205728965828920776063691835338147957420098096800596591914358337193797440419708627833388942252781419628186853648508323765450971006179614408748981152949072575906212733216145616604444528875610234947482134649741155424592644695401741571388433777972488377499941522966867829176875844204474150022785082468648273212126845848307907178386063907405937044407168178547131400910931857080834531990807266385475372539861279882855663492197780656501775732269880093607050190231685527890094780334187109471998662138107338104628474867233066486854606640102979111980390200327678764441723502044652284059305810399077506226285086256816542970659369652603930999300335438363592972392519000629082749845979433174075784526597925882516377136543214658947265292059711876255802928821593750135562060921574473679119703706046163401844416689281953272683400224086423855227707791219026739820418218969987171807982015621569351569224181064122468478524767935512793817906704694389162258348771609803689676977504150047282195318367838705565905600781679165072035824076387909482515701828543336213784334307421508477380378168525592577925642710016106209525323064205284717124494354825909471731285190165625982198448008482949636092185350773343523923442931292941895230898767311242400409181751781066718756818830664132771038463557669761799242354209811941862538187310592075818141747281069543157547179003982777478377371479806682902963309115486046283015562782717585854751630516324202072223550082751565641794553231089708402127671737492533579963362643511546738087392109082485008485475875088443835248635747597851998105444800076129915867791045043844130365393002277059547415234525015790841477568510972140429782170945784066372446345339298191546831702382403659467718356050733592292286508475108179989072473610176369583834012877229185083127809276609268346074630437888374190681583430247629463916981458610127302950820217008894597542921962794390462487514641097091599234663889154922833610855865655239862545444669620143423621270220185415559905160231171779835555725242173315133902066977793139852480125035721278835705669320648758702177185892248674187131089677939378236477367726959100701880687173771905659545183763891336944802517080634752269946791660215312816857077202229603094996473347874110933568106294195378726945845440956557403628849057666078873366103241813182997628657188805783927607869354638949748792947137719390752210210365426166233440051893894483059811374747518728701729873052445818857245521948705747712644579158142925374162467054255453242109626166630883339355187194225499564552240058564235163905845773316761978155140105570616055747389146522425934214510860953448804710043157678158651357381976931696493546231789325190793165811949598380047793285560941368694467549920395924415976984306074398800196440178670677784948627940640097868104086733325970493370297747013683014218818517873381160144196144849358423942546291362662699086513389650566215229337655846768535819723813473144012797420892685578947811412292249914764988864648454933424543549036953620849048879130961590072920778568062713332199155579753201691582223446228248897036098047427039405871233449252407130128149279793808075656152128754706771836891520569066579549693612820631041103817693098728394460048509571022740685908897067141062640858204359316991716551584748298370818952576782148145801381290368779194078402671801620445158433500406662245662919461539332239631429555716539837571311440518293411094896597608867175728022495096145897449431821623685673133351389089849836312067238824342386384973067042829861993918930554777942102108269570634747731585500330789464268893268672691649944625346681150393378049003415598222625109118694306792328438842627229645386380639698894243694348455861643391781241845345087014502164258129118420822026449975534746010461771191160089199559109995421408554348625212939173780125983712466658976286104331082038847287942567011896696119060143350530705858040772272765417302214570657985801201530862232701399582329750296866614286598051402278016391640556885539025796975113162376732107435482925315300855710115472630152201693585309212060287306152205840273400580663302185600187077465192427375250939819129174869949154853766173649018261360592573482922622751676043643685226439525368972817992934928201488367109661906473238669274988721164274239205112134820772532700523923133742063658188077998516659279385322561079017817934691988427224850574434431655481979503282584162737907504256335684304776910560680010435040287462522231796020725939924555364789528148112821991470857650669315854288235820976504255968513275085100654046061003080547559167720459038012038774266073719620017309220353469268948574014739017368771241685469211841227267937738934751586656383497008051086257791776820373239076095769401158936778672959949768276349194574661441818922489917788186204100303124097383230405045824213050867808718782234784515518899600273519540704940147552693218996198856374247704798607794816351258652736800893317468957228477345368948213790348261151195872151663419933201567186466220139575160757918743401530626313103565019198588851404252929555887622238309293596144376225926663085582590990622083734275474887441263596487816169272342836000686022011518786907015685852127285483870700756585788124492766795698389211019209612562524577913815181896125064389492439907315818775076877101022343849760520431416159227425604333185866026433159493821501490825931078455962685633128710898451040590937702217492681493003317102807671813846489578257447150397718909254906543546996853235603464103825417335564820976224051274860415317907347328358145871490192179432352744596921584009355762589400510773953764564985579801114069340669626990327838722311585240383474757046714101801397350722321040578726503189076948193097483804834503324112711372850049049063253417271525632864791185315597162623275296663605009126873482778623242958234284407146619053939044013556112917871223640192589550898153024627619069054824555498040187353299116976699330889289611658621743405236981217656951268244691726886923794178870733824415566468615669434475738210926015404325098265068709032653117829164139367138014658500131083881353056207577381107072341279290059486980365675716015013255979048022442284362971058931475281177015068827667331176781435533621107994015489979906530632651915251212431527714093522781207155854027005268062558454586808156932302131138767881131638926718146924467767347421721752066583689079478699806708364697233188246730119834682888933920234661994774704641750903429329878050103515983946966221372555660538846242198454540168128862226077342881331991771695034280926282637570346736706230541675035377858072800090942449893640961457993680990287939977490873821029073985052936210970027289999793355899544763456731982280065216317598656276428902511407672449854248083869162892056520163544963808857153768243858992868875465238671351006609636760452936395192363526659645757313184410477685344796510609747844833064271060820919732863847660545605656488984779646992708816626726718555920971882075551069504599684745946374847049880126932649133103478818690182578816137395031953419014089709430578078012698848282004527624653205731304403902128691192517795105929866044052631152732665590610201168505659971370555942337980825862089439218967731074607035151059664173898195386182176694482679370917085019063109194673797533974945464346749473757644728285723683340538720784006198337579089489091623703709327082801482901914284362568959167824499741445877873599378545815126007289281490749894472760070216404332276184691330134317245423553539847511847406126043582815689511975328333905860556480281936594395141907028386970759247693051287583178763793417563055146290949962102491981349974348086793739474772166846741552761666536913802475159135532461654909128178330876864062651849698356735408940540904990772027218227479290996887634839914319621007527214475639403564552430420701086247964420546602413300507758435474623902639216468721193652067433955720126314353067438344534605418355599337961031659889787039281667259845908552734473976375671449334789717785056922278089346488440292746575647707455682820683975577420375666670714138959362092238718769342034812612918441456264683304627430062313373102545713862122163028063004174121035959823974715887656458025617630326995011469006130303530075147320293965856371287265184720141064941162097242295050523447216963264944639117721750330991774857783872868573505092719979901928002987370188259699368746908936678143641500611400022550556701376911854295995842667527131483689455702390997658872150122990279919751725296655523961557783791325964030894035534730473650471426725856853841097341531026081938593564534786510719901933976615375677857289431778868098756528060224254623559969568736612713866316637048651291017014856846640416445408699895369552665168738469912432873028740814415010627849064031047864777261740471302314191167037897154387083083091482571610390031596716824231258219930782762172711891772992716416847867837172856074683145351280401031865058215782510352062075344009229159817580360236089876072163093281472179576979230640803279761207198736479526788042976651440004505382084113607582031965126756795963143023772649197994788748016758407766754782110206818916987520795047659071894936438869040087136199512350117041476443408695852129560282626952726084755646262348359191652732853928265117372603255831671707085447559216273789106152120065755453813221383495044264431621208433946910910052997246304955134662909787051658218326324227332179341332942772009623363305336823412961605761080658133453632599707758054685096652023955962383047792731969602090735929254701144944209249023065526161678387182333090422380941381374590937190956425503916856995180254410892972451293260803980280904715141325903448850700567375730325015672388040209363498539743182114054833557928017193047093165275500557872443159852857487545780859258687987877131435672972981064906469806680294611712462930413020227415463862691628327041233561740437267551769444447218605706960193063235776593421702983834744800407231344982273682611157657951781954527187917576382164550457884472514945928847411981479755709168826022895616896383886007724729897623466979738015495819877891226897032148193197831480235313538665404028340235438640134820133058832682566869004777954214030312332737954247484719714905229212606156371928246219277267879155351956754262985497024764527716290412301170906234224246593053751824916029805226291216161274603136734852730314429615107093286199724424913788033311065566865614984295257962254940067508940076173713075296700109966732355342037334031423540664917164560149023914736054117984400879075604931350343609667777883088295048670448318446088919161982830432248255964036802696241617773101900121738029662860313363563228355314092612659221113406529077531797832829983325260431132059706743764605009043700490401408103933617217054686709445497526100024823865627051334198131872066611591705062436587005235224675932504631424053834207422224579790753687366898052597450920442077610461244255812684843042861024590557548002018383036739534960961005510400785829443517773249497082141450692716643451427834519337750517236173830183181862063440166086097634692728447543187702701800028259116336937424596615084828193598581500588863535369970366651189199223610401715849236190368091239347733352998375047884384914354249856625768454852608024846323916223798126073610204286801607564217800303453001317153844420105704384803508239504382948410739361122437259632646212840507634302577495651392465313440587219165203658731296580079123194769939146103016897519599464752976694901908070142498979476255055857908128305472829429775107815004201658032077886094265574233961821321172265288582561205912156826024514978619832103260710292727491684516314384225792545778100997547480236086562792274003973675754281898340534820859043699421793762868017350078921535363830445877955799852257887720526222850246648775059937793390734503289639939064380769720018694351146573541979132113728398141683603782057682665630425504775697596746650387616033910672265347341710828643620263413684643021047748984668485337210243298374556262187650472437257570694532524550410289906671921595085002859801886599072687239323450881739799651580397489349979351245835209575999015454487594357287038491035635814444538126098099133962376722457294403220012127568729019275318744180927922881516556443192152977709264677647517591676498909265922450388099745241747570890471887112528812190967969905144655391531987975513758085533236780806425126502297857735993624670970743945165136886239750544688613103286591424056219563622445615313742692973556852432295829147944437870689855283148872557339206586207855325874237631961289351978970770662265702055074618148051181440707974325522676455212703584854187997678513344847399305215815434890921790003149214674260412338624301401513995192137033802266874469896132425669579079643329730521014816660476051198846257698688292186489023882468867426472784415661183796570893210722256580641982681938212132303680425624601258855119368251355139430164142818763292908269549605799495217566571058445952077297301982586463949575815315034159520105313825113984871486481629039814406324991543760532378327974214893974513690148185657544011351761054529141130884474469354151301037732833919143783109540132828953225483631899942068426923957376289405933820437832642463328590534644315274128173418536914486093078054567149629643474869588478441621080358549020070679694585110279151200623600474026069623368683009735644509153112396055415545559462643954557348750815237304558771794420278137078176876658703020792339779638096788824871379310904827504597815335403480595381189033013056841245950132386773824833660596631035394517942307650058043706464516364990369355623229856851379729802401139147112069265066039211054064277604274367388752320347966973269153823043334261970425902413218555738475183890437868539228592688885176355730151708432997569742687864736969662668548241919898017326358528202509197986302439634950311716236755897128410187905413045129213864330063632951755163739909748161862978248132099221909049449014528376473751690508850774232799765364836757933023963215040311297127579577990718649859483907605434642617330618979703984343102063308678926931106097813727101287973658019594678999877747243299394822023680991628528265716916605119348411006240730951495288708941112540907290642482927227200573777360748744668777137054333174380644555694651518365428875330557955219074799750215597516279742624045157868687314174073818142397557833340108962424456660505929881305432995599734253344858448529340928323008013773406857153126339706295379130657977814494851009003411066777882241259609426259940453024209885042746548405668697071988328846857029650624191821683801549517488066335976629086746808319785517375447675963254681872676857754301776119916749688260078314105783827995948458190800394029849663681418131550900600136145976481307786295407453559744614926014519626646967307280278488571341989201355788366981503813054796081159956917212863950635237275867381780691721388033082808816199317495553886022889281697796891560103461735697244177159307668101108515050442554826189335657729174953277811578784774298525211961061488982500437066184477621151526894684183210183825319343959488989533266297392573393016150430036618586632876043131537013884550115718647932368392662456014131901968216794693104777769254248443568570770636811211514010048354983457385111798709600314840344886278777637471983165427739699942457707792612662547025556514134575139671049489834375653299923565861454265726505575364779601185544115223798538475310020488805048606710701097944296879737364618758714454180740159536839599588046247583788721671900527094787195770029743324742380209267187133983696607823847905882052811575595246436159042595133513641861283568300749340348219580266093393385211754591885856017751704035799001363664029727777783564381159711583126556382323651574591179456544377314623614060458052574946871478596968586674039249563307081661458440433694063684768221826078612494896051669244894648190046154052325575482202475143867835223771652450949343816320285693890470327376586468385019920451737912091860061601704047297399531279847272902693134744891029081563796973973821894981269216269517859842708108835925821825849630867009037344820650854071801224465742925655675303016391033239286591628667771438029840566921567834033506273445056572095572540055022886596290145137193855944265179104710836781340132244728600897264543805987869354062535102367422924989895097031120678522839992696566635048192141638212845941094289254616242982337398861071889371724436453983182429532948544385053894534587721882453532749058228076603778068594056557669550968930186446885501780872257257052861111556460383829604020281730527998669028299447921805225231605606119082838591704800456851376494389792093087128805232587900720943727649065869281768484782339458501721361304176141047008143623371554062600643284287886468334597588227724533077821772693069235627953900784563748632518196634698759951897163017600872503257644917133200537079053139290146237741235423708786615079059919689243318511186902847724743328288597335268122357413687613913117593062652005850174015365498791904474813912638476738813279948124752559658371250682410926475422769130148291056387008804262361129287620334742914874502257180011021447489806495607837647748648845064464944837953548986168022725854401518922454420999148990781583013166999539147643726902038796741657636670014862062081353594301354474065488439149405406647746318131738536979526635149037676610910165904497857267102644193678933149082716805290348355450286217050592128009786685237982132739499925283470784413911888381836127531462186410102956776802525887533717811143975134321360348069713944898656102353587110313430397926259103684900758606722647784053016780056690858469928569990201251178303606963834414281740780572821251768727670149015803946325840105020490929314427474390401788987440304986916871328966718908426226366957645722287901219519465041129170023773580976564863009617127998180217259420080554853146743899395665064349225182927190573173948079360635554020521702183661742405099564863710223296083657120170997098469484935482249472711380849778556276080065066739925924130629810718505254307229582265975547347573935457939915147002688091075931317753151291392611059615295132160431130079117524098628727874626702179876745632544736274936782561632654810627384174183616295923737349624925280898912558804850479559648286247448385388523334270153177369311698340883304846170059039572090335372232482881106172158268566921757627717033139712878539040643566805536436898617251683267005643919198989939895401588458324673185629277595367457130036459815375282483975786588636150659375174212738727382517408919032944268325280201554058099469230571087352506620881189953301596727125179151572733435014519623901974716962492674947954957509356070086905051688002669668011338621550213004781163951624168959871067418969137795392679564587608191972479045577690640716847221943579874125550289887507641045697904543471834778676241377584233714203769757033503838191864283552248004337931767138243115521473976032012536972064161747913292109514195456894592708426005162112494860561658590499755791322507917646895335826574867106350726142286022037459511759372430762709036846012402009103219018274565437682390512628045344414867170272832221025201262510779200445065065571114244429735106763221972020179210200817899393161162743854561068068186181179923918390848697139195314649646599697446278514432771434915974963238645093859031159358356741604710119541757580200075821170228874852787157005477059366615989954895962300375773828339085659603408286543895699898570948065227965348818162496731619410645225459186923277206433486212104538978601150397936980092448759340809351840115444709541949906914723170922074849553630086650779472224587624914598363095593509932617946553321186669080183790771744798510685870081239732236250900449325319940330743965657674255057726769070252529359444545133143126428427403146636014032404105714316427823261451444212791992838520436115156749361738637123120452841843997781990340626639874474139630178100676985407864673451120315355372287014079114337456400319673617364461027694387971083249293389050311130251873786485830019425395571270536327431144595462017452990530901172454317305417665532334209616903655553327444197717075001332176922793611139995499640243154200362635100065568737681830989014094070504444638560863652769751380306099074643439369589714036277472402347033908273131054136616217393848560791816576840207372651858415751568832454785943163134054100845885243501251323608134823350081543657532810338612817249642347629947119131577292580688535826427537445893877538894753214427478247481274679918130995885464121393336791202904809716668349689604912270787172637404546169899452675650132455634465025414270192231503309012129184189453453251997806894051128055018316756369262376471263343659022906502462596679473271111798241997268965453814480982680267338864593932555284382377605150583065725392476553159863815214667388450160305434595120161068464121160539281529057316648543590337031309231610715147859780548955742544957274151433469042404771343880842487861001014932489734405832682705500192401168175902353085528356616617237439902762370555287242595175156283857445979772135857028263291222302961403333808773915519483822389825728483701661998829036769611721263702422600086862287604848503333250549931110487400312211795564347912587638136257319373059444937723102648923962352938468176293986389598343188695770691975180383645928648282512257476526529729712295043393099951302092709237645386870062359780717473852344668859607393288160843642783212799848359401142751581863213460848897496782645508059943325361518235498220868224353152866191522969948327557927877809798283974843741396715829564258721577578285805083444105459877566160246652359418829801306956802695198239823011178348759365717892606556083452371665900988578981469136753096598430992924065377212077823617182478485576362511018391053529469622627055582212771046578020312836482868678221745088196815551387868923728394059883086234427168362749984822916791530290697493171861102868953400922503221269026099456609565934413190846282778855176597895017301023151788464955025687989549123600609425412482378484659814408773275418571791174345363120170411178691035687743271628615535893912135507778773747365837266820635083676699359927166015130817948176565107644083981343738504659482498131909976678469310919858082459291522239147449959118892966517621461586831151916734839042208338433511879050534843552169197297798865528360544946752307287350239980463705819482103432914396991708436254818199852794824361523797826151645140708226616638346419197423147687150966443231853991960512306216150711573595044567979792185136328534768123525576676380973716091127475948888798342120790761636708410526588591015649392653260601248594948355543498828216987091902189159020241666343933782450657027154154015719709228855558066318934711774160043493417950665487674500268172639583893470885329475128357246270029633952745337148890676096818863289288322093837255157820439330570188980787152227816594570057129987129456080390857024357502163422520713078234011686741786060748407939513476310344208384015699380961861488638886694211989302423663168939007703389120896893713390350292983835980352505511805636476746824952607631678363156804209037376140836377589630363132098636354671716566356552772142633493130327392482116311469321843611519091792838192986712602021706992484286190449833836931338163614261816926450165253606438195988982701001264899215021990013901360142746384779366375209189282366769549606444060874503718383722953040606450972868005320544793265110107008913478377416014830949855510424613896937929038576730491438718384604016903027660323796994004691610736951615943644820954014303635331011537616833732247051526653815548292985428926201159484931247708283996673579388173394212377184519620526141024126949936783449833042068634995807147728122067107576333958729939547476701339236363790849933871282151464113528116477575276451800999353504535483977278613156646847126233138698845083857555871177297558167608833175351560085829131083546471707872904599324556944472082307439526936487200564678284845216551409108906223367219254132990896688352683670808360883639621655252487608487709165869413129611096719710893689119283638386796408034650436892457090244411310194231748416040684510376454193538490040987468368799514902674740926420171081610879636822576724427632810813951581328119074440334475383116785805774754720047307787840932855044287015242740992810025211709748819168527088813031538942489657882140086896287811931598732967932505416378730116596687323461143126928946277112035413606332260355340960446628806096163377881845538233504583185685672567994708655356910886399160358994152355447287856158834201168789123207483219140511009257897998713399673861646458446610909807463745408396795561385856538634867563356699739737998513901149515315590732574068181899702126986811710363805431838165165622469511074835426956677101595406409305025174212338607943864575729835023000771012765815341026944407586737781254186435562241788334403824174873788723828586026317064726726237919833662603891871747113577598774780031516390694443502132282093867579049549634682620304937570593741894239394897105898691357160684574761768428239360558575024153474932468785679581059902134550818183347315894831820752846195274696755665537953116732543403562223833102898972185186523547342129083052089159481577085888454747794521157014215369354715149561694862089201563256463732403649675519538087263122718115141408882315312113982526595633458813949697583379346556818252329243397204778787948719496132321796700488841491626297936454156871370588648118174993543379731650340704840711885129637185643449709176381082347439909100018828328846358890248214823397823078156594399985904727112338206939661808601907383464899872707296465952199974813274137661438782452080456998824126791041956654675465796034489295611466697462331747681985983005303848168397066288015694536397659906026206166551792766329490973045785403039473574547086297377751417647590449910901754805266055011494943494666255201481349235173512811737260189625437789630799411181321102820970123890538447315572203506752418514885262466630841067559890435964435165543845951784044886597249755252883017120555154552254176052786294918324375403211954844527341209673708238275938427758539286227364365566562613590894364926003274105205297988224073736258132716217660987350585167428701990996237294688394626033358329331222488907740455789263251978762215881967909112890570308457817346905150983598882037258825915155426841730474003144377256019126397237174701843263581046855538272536139047116714507196566244160316238272031845973302512267571157578000920231055004205182313909869486635500428216084442940369183360532094773487322107259079732323072612226445998588724722628806236836663634124672873769776096946082345146399650177932983501645046034842762031488721359491017315454624946999685100092527306755726871302675729039913568057157154665005254852047815414109951319285738687499960946144951998049519700512204579152160952227102940460202763934274570662403665710652413603093599613024821975259131808061145110890927926394148138040243545947529892934912856355926453107256683047891242521228996527000898340475729526922766022556069516804473299025999168803177087387224319990262180184091949551513397330688783938635643590843798004898357917690405758215967868731332167033523365168484859919442121608175838063592235826910850081690828553398429771585727669055798769354490619717961469662788087995746807604658181305335462137997989884355251570931338778510528448003131788321256363274306055105705097246680774145501631304360986604243219454075319004021301115504476905061244168101505811453596267767742502572644088411530966405814261943237039119544469338391112773202495075633125481226773950945263113550535120544358687865488497058214567351480475739521321370817354480101555472955892405520549147272046057593812102421756334113368359572188095161534190016624580082778690929332885267649194862495181810215035765949667860438497514144505284345783151084823024273230963264408264887717903851244221321653540180257768340059121348516541111485161396165908859251200538360475743939180075921050728040730713187595540906992103913821649112603671764782480471913219024862059508176453648617650906631152656265787426725760696624275189908825092885647992654906313206131820280743105737352228662446755456730677727904698571543355684618301622826427843895554050059452311727898296225885877070578265741311590805103779891236244857858888317924040774944269720406489958878187381378838395295763459889910212656368337597821752677851422709953012710079639617762134509719794945578526936189501831664150807874910651025232881253835367041835761123594086317100860772883688655006335581726166209397396498553709293416955457919271265365732302847284771720179692014861100014732559730121662424031830848129154314624892937553078435835917397749451902696992699596632627523858298420596458294762654442366877060213942906203952785473416189023352100056479563985210766324610117853143715279620195606975997666305637677871159074896489857718412673132051723279415816597030885491131266481488385325129050422050760143382674177060387132741382913111419436008761042152139227097755839001501939676778322449749035289771716098486018203659162648719932059078960265680408163217341677966162012356979601961916696891131233099607506130218418855996429417338162245958397226114775606048843539696303336719285902147625349143206246141173842211657149365928508082429613009534689378157696247866110567912646523289994035997018324974977462678212487561375271181669613677015021947148201032095842743404123938827255691542322229810163501874808320502057312766281626267500076036177878353941314795368756005919452577737697245681989413870874078365047292862613850396724202552622742461882941892945980454985745354381230462383928323943668662264133319281007488632669899460231979969157866625664884420308283248258397161951871833677500879123575180056469595238312781684913042081926146048606404971975692353060030837380634719977817016873317496489747155782928561736763418578628482722370489402151508133183686027242203839543797418384184599415985403339386435774260562357483245475870458229244131952763150487832622925348616270959937819454291145656721082111713182957349933184360229641713590554849337226159041510709163420831492167567383625101795909557306771205872338190293271395336769621267532236656441840506532005173965394515806829037000941192576299854163591714823726690113629465943988903230519624321161190677942141382441124168787993793074716885386910106736105712661849070071599694327689204442627649262452869015400467990693056745651645663637757080455518441707105603979470039729564999325944489739869414526906534922281841237403305793720309246066961262860345308747999285156638566452071124875869644922047868024024432392056279646330238696156324479104116814657693683330126457517352960979739211441528314952804155269581428209696995494272462543228567210281503529025165975757692212732220034081761812526464965459938338758032500033324154478879654568267208054029658187507752602017998997870272154000624554660418238124628523021921214773127971604400605533679903463490322862283128062268885182329271174348125732061224281857842241231868716176496181250939138120815765473948161219477653973521992322390048511263001228517971185872461316911962146092634892454200032846674886329615554615305500609197110406722172162438902286296058268773664416042762640899127958094438947796974523967985958745184373213409418185810084204540372430249350561092003517828148734889732462182265391197393247479679825656894607570161874137133416567137190533795463153120846274702303633140600911393749840519649424482236403307315125648499193286426765127390794799492841337391157623733344067284018844753358925196114402600841605096612477616642058711307256665304200260806393710344309835673819885567752167289563947842460556942428616240483643205092429926946120507638244635912887351263297604508193873321877968321181407188469111644802016509236524200689089094089915138303084530342844614986971097527491136096381045573925746821342680104881344641263747378310234077148880809214002997123773278574247109927636050297012835754629945557969134378238918825946137241512679784386721161990104660126971462248733645959249307789929492968647330247974615561567821470624925623336698787178150841437123315729458468538954816438784009033958082472871460337013089831176584488702431116153152588715740452803588040197987624707602743149554498434183070200067211739121932629974873166772912541448772137707427048295803667121398572365751037082307627208017196866842319654853173479392313844089315814574599220869372145976329496802005508756737470410290611794302384451279843519038105547182141500628125187238846654045737445341210667650448167477247493117733423989131461033552490837123864852597640983261701631313266620256334496191480272299907470006181602840754487015531048802843649456580821641075219225452284960629452034728235530841657900673868474023739516172584924157307589132291338661417418511737648176492486934430543688801066845732335548334168750273436967468104276775095207994327907301424854934775042948634365803089892519272552524871182055783247287624523992624865009127215781776178244671239554806501739905196231144565428882750069842050710328679521020511847911808011023486811571718489966424656974563986078863468689893040124288780881171119202501720112976685225196510145191640194918122565807027657954469296652618558378878594502277194004070822861336943063717106639725120486348072782631616936017406503371505661900872289737974261176485256139890345725046938420518700630411499465291094399787100093443073729284489190127432644555521206963070143716192608167455711174351062132227228807155918142302866115258070878069858329060678895497225377971228288597976949149494201406339442531153566060730267573290841759341063340088942572703906413715471208277891676232694160429720584373415478476944209264074967945069256294621615152345421425780798955765904053552577860659134563985112833283611900107720053305610206838913715337887031842428868964405812789340831349652507833014436437419733393277120507593750282971734798971995028884991849378796608010725765909480495074175035097341004243394498390564448266049654986249906122527728066202710167353307830358442257719846300735046539530997698619217166888215684282713029980906276489082442000812568362460896709200814042595994542714338076022425660824213380067279599535876503079843075903104785728109782168406286748595353564856192208310072642407701097884934340663435813055213121023600308265787395397103163482710420498744155251211192169724698923214510140180465713899343691158740952769285239501511910423459371111835065960553893420064605530495497847145812305034110726142470260890385933158091412064821977524427416365441459950974715645192796455688957557686103452184088378780574497936264482293364981542075311960717135521638013055713640423659376514910667253555127436899539521847021413324948068737096877901837354297070477389785874285730427521779435811688477336384256449077650577854850634149684588342053175887913877387858499611406612414288656343086081650235726225268443453322593146167940865194562540840340320331601085348015581826541284224835511135927787199767505190630559286950619291196517967142821903077500418277499241418740844788532806168349023626656899094501796862730527382661228912324593975677516248558361915026578580275854773768506070606324388421435904657975631923569107512827321546003666644921408963721026014795022194430456126689650013943740680495809714300759195236807176005929173731325195014851825043361423346462780887563992717111019593238592367412173222221120080339264111235107192111550595112849240401385726622272793401247590313740661406072678880354002324612083170616671269172368212615322532654709623889877827979970575528357921143210303210820247244778750054760465083182020380606953982277515930178062247213383059869567480192166579447459569131363140010287881187861723252217006073609269403869845036505730216931349358308327645818011312239583952177617800662848397414016783607009162468314400696313310699645604932424943368511026244642715645268637428830352861281126851742748700730076472527510544410030466448108132849123639397917422789418283540925082675983221138650698508682332998479825029269978611298531046345527626345661725462761797125265198101676383225818469467284142200198655390713927406183480113314461512077678067147129117639743150617672667950612769031821668597417873006940964327924879187459669679050233552663134633865857608392160508974927807979847713244036448753887943005406864173131243763052494098594809086818312107501937026710036499384621381104408838204457583119129278459338120043046865952269877513224434055264834881710498262312698526166384867906650872428872004301231095037605898599716086496564068276981991519515347141315393047227246052639568332790284227478249647269606391571144621982645467520063907688532986437691001515214527119622527179903412993253381849237922164240803749922409280903251990073298444619998333390119538452028112891315385017261366394503054041680396249408169010195082234825785313806157073522649677614082623088579840927858811453901009504522985082135391986578638982208491230050507542950384116607653342454033836869630926748971241355697996705404156539511304192719739450739773106920320353900060410382114549757390449466441920528300218351994506153360526008294847213963794638395712719177886754645764765143131616047156818776384258922799704242791843585717159926735097552017750745144630819165632581335496508914409722056159984081905810259411895796266558853759128315526781627183713249368320692307835073121952118364569652202037309774044521991904837206636102229096852441183388273606022016678314962044726531575446241378005619370865604896976881041304596905455255856013578911989734411152003304108867930712442631683616343366988682933724691304851873302189626824135315565358154744935361565064718877639440625530035575569136409605037827255028406939151665658793659473528223938802619342049438959499385223502892279346263254149812120984699884989259596910849889307811148431261602500032358755313771181744641701420051507463111919011407060336666457752384527502996550311030948784444669651475737002618313765838790896581790739623893703418454639384020125000433340885026930444042105006721192687822934480689907967100375877451079463861951917925296719311378664407626680102499867558703346383083797056609051827748051506240382234576065608514373214536453899885128427103016815633011952075789515944403975120008823757279767923375089151703073330712723133469339576237776577275150043762762088037149082910333465100675271187834312629948580414125176686146871909595176504452947286848368200313417967856672093715084019360077605695314762038917541192288774078617162066803904607656176606109709549901776747608103123275261842529555498195909319436917616696822530376538843273319938907480794033559958628487757515739132684387777790658780233332606342276785974021080222511338144496068579552400010997879327785107875527415673851696164634572850524168910115905924810963956418713407527850852391501205668752779198136308115903986866231925483325028359078102040235430128534881848409864627068575403429734364999145056744305322250959119577693362598077910445307132261247299923633221217700257284519086730365884363521372393257003669671492381846654588402357448004790847890741670806803673161440754035357982628982909188150271138788804737447068734332429981058122481901141029157513213077913328152997010117188994187442694394640102644572695354636638788486618816155635924836855551204297051490833815860593276808964556663965188341454045681075386217595632576940681403161900506175553413083541494798759271770006258722570556481220795659115280496169004155131524975519358461477600370008895341546630459844687430869234571293344962257312133615067070870906331072832203953639512315093698782382119464051248463525806080601773189159254608360741897025382540684723486747561469689153303733273399802539334441621024356969037861231295362879974729877188885340882250413764007827175590553031192003059588428959594968982041044782040438169093943389297417598331292048488195524063843023567151895744772781450086208975070372592747391436977062280565148357746754613148061858519137697643655613498271156885452062786724051860478277955850928738117284242297350797699502279492422956888735924750396499786811650938323947890391761510795375261336100520642671580431823542181398754144827209950693635355415170819968081114159159478621277140413146886351503781045113928899198441832130145664128201213011809279628745846884549170110014574630262245966121656887121620547765274534324782980991822773217024528271645916883175319299246586653727182780483256713052792021771458914631991488374934858231413679157625233081260113449441408198518777686667928140711935665620092099396025506120230194993898858641615918131078803447450902959120777984768875398898463243611155645990839746308847186733352356916212291350298303435063927553830096809271934396381151600524367928763427589182929212329237156532451744365090841487198118771010084393317859906107831429761815624749690341230016384390427532274375664279888674300998261216279955452408343980311726845936783242691314613060736079586246993513938209801672779494841297252299534716155331829498781312784496899105058249697512129607657017637180029348576375798336702115235559726473217439784399031567603418270562908503502067405111567090697997144907029611815022661905583738779112623501199464798816300903014646089077569557733163673296093193739412595580831117447157783646729255269247455834548327414336131629224359672519922694911110443782458692425415542105796115560475434221865819703602724483889891118097080089765600649470422331085034925430817004130731902166368761546522334380663673744996097907358273940674288168273196113295867733007902682937473260553957119310147592683553351583148961932795718964174706870751024411032625415178529448900568255603159415711848060682325883914326270275516642156507101072072789496260477455956585767773299859524210893181459488457495335169509164201283668773832962560418362413255434501872050939086892886132498558535711287047111862981515398041727636912152088747823365965265238804844800574304275799776251645608570971068876360453097194061025802607757565121614958233192384233275698348892788594404199989571449287091156209298096368195573203297579839203356423149385300113441055085570839347680314861903923391610641088939420422515547566694547839658144510036610391604907247059144796433934270995042571051809031894283807548394254623873554684771998934420192630896357451139660038710880086032522414060063404090582262573362434550816398649816009327003138377128332588547682569331386666646733266362204478489273366561126250004144088993665555798828447677451455994824856462967753909262205045049783520327149181244659355729204337119088718217572815006270134762864576755475462450051689831326079559175672125807206086166908179423453792894922360155837842004093754842951824191506780448525775442282236625045042767101022569333144230684871264400043534881915024497809894111801431901731656122992861058670745120907931621500783368938161569000586483467957262787457791126069616637238305012069401031028310496275726818874776657721948510182694201920039480609720597277981604748354411917048592719497992466265725140376736389303488742609413087780984009715155964252746631416557071814409405189729116523325091857803605220465131596985932317417866981037656851033485150480799013217487585944422686979128663039457527119758562628337576558780610713397495231120928304003818967425649672082885559518502128924508459408326992276772794903571607425420270201141439339853676259794488228114830220457778643933253846216304121000542312605230949680222734290362999986316034102088080942632288716166485550243905893548114861794618891267087929816815811880711853395780208209652827536197393431461740178123193125824196990505152423710489791997618857129501483352134931133821352509969026935509908921008148632954973248313108186509250932973206253943984880089274029682076134513784018257332857438714963585200916290728580579716914253701724251667359867705883089679531149727330814347520193444030913448744288028368622622163186112835596054183203325404357760717186841764452316115659828549512370216226910721750835024357237038739039532293707961124109241520848895262673499902043100468315116958827413657801106901795212451439694758112879648899862825313543735969364933238329560217038885739016233050001014864179546081582830969834889949583897413825909537491609527097387003328239111167267385724016219607508789191327000108941429249405389070912293423212632555289096815544327134482126537186271258864242332883539085076390464337983272296263465409703023284738285391186676666416880887906583787262955482408060767655484814691755547845155356340875209381602414913958580364361373464655635981929907079373435504118045955863203489325108598790921247058301378128816926207355054777946581011425627444826832944734522853293451464426403343391733023788019411081380743893861150954141417301677494910196446211310002818596859329111403353893657180626973808598013968395153430596132685080827415673474377350333735007413733699858501531704882126889319848906119867271794473193044147261170530016312081314467375315298435082948537958890810845268955480425386866905272808663661919257124395818490771828718511775689489031453886960999981157569498730798083419440870303637852382864217554294687842075639390703470331352997146477202809207516127140998777234757556616302339421773896347558699792281387142924948748802365851406054100299792900572358537323894120500371852249137398416008679053368811422988359554497402225249399860863817484676026548988314293166678939134958011787655720527393787144135130834255199558203699090255024108975479272586157243560632431918576172642323434890405433613993696390961312429124739804226945183648968828943112921929368475458185811736932449908446610126847620112103949401193438646117475038164481251972454143960879295732553387809750918857292680985757985980867247970605437738446235173961789941421230934336656676400788428679211958803613619003523211339519396940193452347068035725826820388751973297390038406778574573885679962414073178857515870775914428949757891928267313345334177165364079124316876789846059048868713185454747430478556592895069916634988942729763087520044292675057871772193165078242251891293026408325712933602858539299103063054824949438015165775629863500293145937673809827818676800368998167372888072488951184975778699465667579103130366058448398759929081203145158229157927681732210921601548223455517353192901268972164198261751757741652618960771715551867282695806645683299721439202839494893954600735920307551826925266976283682115149650157873161054376425252249802860936385176082570674550089222837553299516206261663133102829263468636055218818348134308837009462161110781332323607368976240722353850013615984486716500955370225003845618804822327853158035913350990561456496165008994826861532390476511151151299018413746350033229774173410259988683688955299993863815448606487025838191241942018144879495496973474031598659175339522050389434889907417421256832643572906942963917709085502381212343806045799024791458651556015564016620278707533466343391381780746928171284859471011059420647575567991038430757053446574199492402503690546374641127833552511052110899430577532356905339391097386441465583198163926194485340115815598164845052641790823199443475361300657637836722197603349111560206338281830941028457318266208135109251514355713093958782932532246730328548961243712145801340539828484702732711604451592070948691003985728309725147892532052237208376279297946634743789023003394355923105064574309946928986759795777185746847212468693492620621859841488069726569830670277940371372479629959389259996139197540578484217047654547905503093718910035234356447254402501637660749778770079618606683945767546685108263036442160178218203516463109316236955018960699194454376034263667942721463224855625188179739436278420907617627673328489993375482956868544902681370265683493567668090106545321604044637283054740505720198474172897790800673167660404406447908281567619095406714415899413240681878307163350360552644677699358884306235156195343663972550425001023699007839391497037142510891145835897237670820760692672506244055949496357101948663307398232948614693001790547020209913197366678150114355741518416989364278220693603344853084333661466095936392549402592800081076292661419059093612700149826601055878261306211953356761757526726294348485719071966578673463294062318895806220036895518936046526673140335656504501372955719971942588000993400058357377399461207129926116546454917653731066946221496117135384810644335912428610365905076172578542145170040506555623584446652955551502817029408915655554179129026579177487043061792357683392843864538503408316215288696281833984542216342320538743539906083427747440306353970748891634348743136539188416970128570504086335661634881453654369275869168722972649187067746251063232197799117951916824979570216241945232052504131388473433537703888434859622910645777705191302832402876864486361548527645233589809143618123343898205552748526924596912468538760753392180536547965748594107565246306497130648496716985085987722869029520547172024409544620485349752617459850258972033325834087643209972220877356163200886266794568979057151639829688665898890164677556475976815739991576643017688049265096282694141996563860745250757864364169347003828415239357728624638047861223101527113990837008554083523411978514515231821663998496426317288245740797213751255475752138565254531266495683206748770360712527137211162797946727184549958034091919913892458772779147184147672415496148891121182565024962328613707225328930579541131900752644019750773152082468077306452490260917515092286102433094363279106620476893603053311898878361118171308572675459277688915381142045457214637596722730929238753160806449496175281926778309165780687767008907659294926395820935861694604976871880884426659390634207561119121788816076437730524162021444425987735400868763485890364729548849282105924820459137283708903448194035935566515034948380800761851651797505634883833697782383398936906778890153435785471503338716086311247908791977453044792292487978141527384012535161529871153637245346061611857151826231851487860004531643982404744561131756490102461294533371392424745117711528579157674008016034815417515980908233506846579906315994555160474228570045326982745070079009571846737858798562576720173864889873381582796050755237795219944871620309958407707913425419224051426713728284796105758792680740012630343246136780837523435222396307181417674398377704636508296269669492074553946455236252766774027943199267718942607328220553711525799199232116924146820293245852973493275970684338605034998774380475727743856801240954050004043280110354577375466381500571418573570405923532378353797750308157196084801393860491235697093332192156487331930243040705641343170906980772696317580244436111020037604086410396536652868679514604283110246657094042133771839998134827688434512281736056920619767894521539889987390753183212634668221153369421020541909445162076950337562156613653159214499606825489956145294108695018709345969833497422518279214837837174272960823044877866356768757856065169377946659554120065073462716636656214496110728215812383557885852076048608030473601635694708480365229492967229140852595025373499395345394341817875973700355808258359293843555407523065510835158471213409237809560003246541376797024631029650897892104641940221052995282442697342642585775189769806989629205659147009769540009788994179761380025388183137619823416745111201284550506608288392679624865410356146651191491619440094181650777445348934499747440773144969200616540372071034724899714873615903826055531903293087707424719450824390722303587449985110062673538268229441620823679704045625128910040733947025620428497752962595468595512942932837191065788951350361714539684984892032230107317341737957610231863881404063611607187291294231582301018291673096019175638969943179908339247712659263073548594289973665944430717468302376107737793105086083260344833378791557732022961620039932343918520115575115317273082265027185624916684642827373686916926750262770599888602875484898574983895389023485878072876010520657346298706750986534101136192905009509727340167935673928759872140304555295092671936789764501369233889293991577035702803954908556821652535264791140743464157543332707760250633580394803478097302829882525097635859328604451075830277055919717954269369413694355846194757726262854194482354905492415517809388048165336064316209611955969709459914021658547341755670079069943788757436862623229573326078507492327796065774771961276684667940747360049398459324466523368434980706287620609463161799077455326333263728799669597338384358925506225231839563160799700092348771541821894961900758348807129295385589518158544318311324837910973592684718104450222192576006621477160057704953267761612062865375358325956223740340967116644292313072316745099930906305511304317142984152285279175908983921223975590666838621386418886717576058138665848054915321129997331487455299095748314717517502633975482652900472034941190400679370434892141984238055866632839231029923598465007798788460589681339128547570050732987588053345960737389821083674104172115430068013547307871223553334113759944151582316001245249740410854332706776303815281274198402535921945918377294588203656803757625420184954351844480679330936173314942023918137334829544334011140836914048537598428595095000789053798710483432357466120187649352595022240116429990017784204124574826309240854753721844797335367960083148170720384703983208090772624150392238027420137806259561251490980441055575908527424098220639750632880023280140689876806863868239917378548085756730842953604514494898206378192830712840925695179108600500894051344356961408530125780159805885376325394815542106023077641237051747181332038953033519201533028093198276567290498753878631240732768047811063226064629028995521040063336955735269468650797702872089501527165932072840401755064622118416973672241098128623487588133041852830416269295690569255685126021914361415388522446994088396280996052996484035494962707880623625987471864034885857819635048426093806039655411910688955709276663520880362847050676511504804111249394531476827555989005064407621458916776262766663800388389951157016134792609176825853865318281114352232546914287972890027485865288337217218803678888985606515762264914296943801953971798436095406895662497127649367757086810690713378249906480243887859957581816216609552583885170310995343113712580669570439983030914727790604972779458130489718163497073026464518772569065103057574589007828353274728042761046578715735645989643986981542913966239326510725130336488846211339512572007653401039286613264550989891966619316831433207290814190755685538904421749876350194119899630516833484399951717392512982698714588445104357639451718732189009630239004481507943373122059611856662711936224983982388900453186340875511200372765685861068493828882904362747747125232406761567751208670609855785539699813720247423040454605182720955827379466260284883243671467823632648941592435480731957832689811214391928150568541037932832150343619423423954762302493907603016884921562018570152955704926554243128134142382638532323010268132393497100222685351165185341987724773054121661691905587211367124238772176225537821762974406194778250383680151587860399439900822456223420204648876135877958915062138016992406731247653806640578119037216091045564700280153649448759468270042378733670722418170270887500104314023384869893077523541077151995053880739871719105142694667951429140170927330687185253633379594182594997484363116794314821920952726617060025583625842580438141936018764436036760224092256359527357078986586761339882426386455007400997272495339677543565362606640649767069077338767112057263001989162689700422269317030420095376330442340323208485495345692499951384273880413948085106645919584293866786509171049429459724264208704812337367930316354816020437926339662411462256179919563219589020305657514350425585511405473580017301075010928973052595246002737932813935403047893962545887394519170744597865436694456155506876353018005371784939328834689950138983897020755429270312311995584031171237069154002719279420851601421728485719638927039291989888446049150917357239383012062826537068583527653876764975179284245361773915165518277346130890939813772329793551698303585204216341883987958215988437662932721712150868442681665147349336126906052150709064263375802793066538008335980226880835287295216118990749475115872596137111794226134094847521945206736957435788611229328525305729995465696006413298348170581646566136229508016618376890064613045181376626177518434031674066933157233224890404586480892244171163487107763157627634683760281293904422450407257148980375229806307589308240592936571359338923874706930636666291933301176447465744968826397003978389270415829186894694763921952426009216106208611915074153694357984346088625183278364393580726199203366260706404113303205489466876824612162022997447654476479650004124755766416356192251681329681208279754401691770431546421904829577982770852710495254924047183931757362559351449770722952577314191103618974439913932754029867936983682297146112503986743318499467559070556459935886697427656729981570952569537779616364232981151369168556288100861684400600907799080732810715800810181361583546764916904311818095192190521017926136454549455683446715402181042448005059826334045892821411692535571290937603488844013926621674504868835380097064870627386576398604828123774692964758896708837201742849862037337880977026027958408637877046286930388304173311652796434543729255316429831323754369728590540503976960564082008018352460640462370272533040562782884326048859232987385216751718347712049509720928650650832656640425950630309228251708566185009321662076298356293476670836257170080293563106354306981778352863952587149589878155856647052235361985044216015981886801133143364050415789338859382559797066314171711932800976824858349110325597754948202759017926430232906890127068272071996863981732681408239969968709776378160577081307690999046194988505688773787218357783516209378049855495822678304430057107221760912009228565325964393346630323708635973794963403511830442518917394330744899478188634194403366845575324392503284791768310961891310532335613360886034382130859244647623515811922139317759737479849690260794244009532695217205453897390408756982418540734327111620834886038336347957693229392384096735226362901689769879475308179713440121308951177818770900420881113617689692853482913927734473716880417302153252231775838282033872790738823551700426098204454288828450451414876508562049789792322974074957635828236848428108639035825743897233928375212123823605919405860860558909580506984886572335940466531253700107208146050714527628236551807840372745925158662511796632647971326989739876492407427934141586074743585090651371854140881458103195453619113263170632182355226888455753040951392292231746437934178327572897971851789933379295010689147387138709832394817742472434718352351457415462882085796641765132627258915373911524374544537038062583969559010968730579635187810587110564292923433066565754323975875770102986792974615543597678053761085303135820488186974575003154726819011183437879760546125587024970631332108493002869329944566680026948849886250580763627120996693829625525300985455893352831380615244777906424270551711127783459004249095923791659118671143652498304881574785597835996798394386642682896192942260726870249363054926038980844111378096710186605505006341334607810834143977490928872063678280575295536271813386129619287635272722805333275534330149639615056511086421817724662523903178754735319340189218945983627740966437447134231063920573874829282162719622465965584568002107851693165997901451014892235441153435842186899524850485937708497327000994996008284594408706439473308945413261996063298676706911479219778649587843790305296762488741014672742892007321024669400130444240918478245420545356778821216434660200432201484483022556812368159934769773668843561278148759212165065177916458783684188569480969245936861352988954654471662123532048299502791690993138853736666153630205142202994024509082674041336034306912685396105583054539274236060252190177172075193869333679041441911122861335633940068828237671248319895696253638982328615166481686526510825069777047960820502220889194426240802024373417348019062822102868344707000018000380686839511755727871768080792444083934076950227728386804896634410499041093354772097950110996524942220909462654019752477147137290025316401524505022452813140197666224556456033771970783511886112357868082270294765121480964940524667493368425633066108832830373432740781071675862360140403243419025335153994950162713480979763734185388252114636585365890968581788924418520684965442825904392745560823777292006855391974142319774096875760089996755168970249280959853424962158328751853163488069557183096806194178723725587767757140659171942071156080529026885994348472160224593757015661610498912369895414568175613225632756115440417526771061777628007963736748989240840235624679139087082085838314500000315426293469954446205591203810013179965143600004460049744715572274330852199581328635688933996610646710654711497923262336463607172785082590612331749254605131891467049725326964912743248880072993573364086704963236170374237578156658438879254851865418199120194389628863982998385781692329977605129492332317752384716403903958252992682452213338211040333901317480393092471673035913081539024661458159679504135941623266690590945886498099086183344346555368593931685956426439999451106450593886380182959872520738127210910193525307876433278652118896234488097382008175826726900857783363189114472208025714301711636674939557067077135071134015286153712370372003088678134841663467629274300304329489083902112931700795770579150911625764081930993325285873464359195647525361745639983791709209158346168734741053065695700351004056071191324285575162329797662339064820218326425132975331965596243737390754333372613990554742367893294625155089096530278693136306676243733997712443781513093512541569338416840028171858664207131237097936567633463983418657050903479177318025912198707686479903427935463553983502609586985233477266511166543903611188266393449764122322490177165798473942621588434674828909292382586599424461171270163483506875791228569507218033982193998686114967170036997583490932339072335547689747613411787799849238221012409353953123042028707054634765269927242863040353434481109142940746041877446218774346088032618054687095924473339117642752160324741794238332250443624182069432608109374972277577635956082763502900187428421197664487898542731571667318500538557799491838265044318682034088245060433429474207575284115633752746255834913222867391231990416179369400335824211334337645086464219770778890071449141338106371653621936827051545272531759989155015705438943441024187886115219942013036073697361418132746438521625544415929888536946764817389408924863811799348007154614313635055212384401484712234230789248108922764510751848887960564643554584078839683475855525422103886783556912907837778083368289290919181026579390921051124725420700578478820788944184173630952164980362868302602051428919264946457368783708582524052958708059802993739792161641497711262212734079834618280549426812067016097131708990013870387649735179591921523304026508560807365153970023805074995073750144596530386824971770247090716229420903268936679032250563071976433278809025185920933782736140435383032515917029243351857779063873415182966906464707367378075014337943840962640726940132078834460116844064658848866146826148718849756756174127073161067354819268148766344163478626988014492735747490737089058834478300745915659251464796979105880939842158000083268178688689246407569503719317814638724090027813024851833857743298971161731845086950209889304406810263469110339066684630596575131399273121933593627011341008182550522472208079635546422176094726046069465036004909152422709756993231902671592223331451382277602916231512262775744569459574767928664117678200662545731037280294208271232982970574242460598444106016663196756246834753335980993273122667128888371604347741629861853721792645759997109003785856105963241956480617908477551649494173910698017837337433107586100133159614419146205808168191082225625969641887407856677435644097046600361206616495908352917527129288728351895838449583402936113260145049936610483575414849631372680722392445046862243131458434736629448789476775075186045047476795065996094575393397865057803349500929427535306588048008698548696803364359198731449144835764162224618809000235030878851712046524081112748450191403291082317315412649644088893988634434724687403204400594562959772980360229838737050057768559805486162205776805301695885666427371378959082227200004200158887946250208747007880290979343873493753056649301875151155746247330598189304070145476801581477818464806938179230088756105748990734401419236715473306133993691314626298447796103476697761788485098167473867849553089995060841361561267563385980806080882456254000265886595224356936472430963555973619727665492707711006709474856572454936638241630829237715010541820992156042399888062159097090946366576499135918032881989447765625687971377496170274330888405990218649030232007115309795545906276197065610456656750514965312519447087821598340380405774774667758793982981084230979324258488937649288262160084058133974134267842378197559697389167802272172099447251145649700080539769183376571393880880528318525256162910397129744419375449997903030468690488241101380395085568848619801436221135272521858651679070342318158013398049759965470451936481368710151810486294914923847368279175412668709829484199956737630734130292136500005297427767082231360375502238761362103438083434365142173710783447300164850943302102770519642595604019643251069059879584447845953152556432618671694817700985029941347809907623803752078209888404157909331889987298053337809931101885699559492229389717274444198295543881256308563475605740802337905136052281852248015998921328172472319873680983327749914336707004138495969882728197594635857706509108191622517893474423343814546408912925839394669508061976450116666698208984655984125252930549582397411094680950574260180745169374650372933751568095421398760213626061777795614154414240982600319249051741440699199971631824873332424693775732476082842314139756332654399497054580349598278527150254921754295831626932899116035299400878389105175382717218648501868977780545703249100750419077834143595473177230912746669500718723672880808265981428191355627389742588898169536964456868924197103997721125490995979728062676284551306882624735131176629784327037693884353667591942414556136926638540352149720108592460785238346954362955494029644615529641759973873801976240105992587096683960469773173087630682673927810818399509852766209019349718087359265994069075695556850582147476244811844621871796532829224165750349223587091671120292801560664674465309006698213267700246343479711162340559282234036587681865611658445242703186903970084096913967661070191464542650971730261122782378910858040427364609020683782178131459894727102976709078953694034100402479411140551245625227843635094384196796773794906886760105246368593096346945077976948069553538945936736836918550918745919923888632324555244699401025421191548068204452931661913152645945330606988111010111828417255627304983223955952019418133596445316289472064621969166061037061225133353792655781897005872416857345505866016816227883535320027061935771927444247173639726908703025793887556421810735290920378331157383867575058022820524018266723990008328413195988052717795214867877627109937718488528852218731000732897352404595183439530131302223773610130595022620399472624564877817276754398432882179065914660993323127400045074039222050395857005846125213937011640798768540465139084490223989966365680367867633949439388776957650230512575433431433526629754642917263898188793986483827490302142569021703767708207096997281333552671477866156157092056130982685270135775488542653425592948309608242148496051202281305674610131346481990781536696335044130628590497507254320803082106279790678910857672868847375335819385468177527184071996844820669437329316300321779733276857180858165806739150863171004279146021321665352927239896721940706597569009558485109963570506760383900596424103991392902765777776151464918127494561423095171846658401257261392599755364139717314705378736667016134966714338442021883708307135829420465626539337676057115197328487657088482900942076324298102208528163550624296941234342413445780428842295025453285853589394782760717273806722536234839732061443361790882379447611792385749039897190025105712169293417421603831592117093820392133823476779833530629659876238453268021032280038714935189271466899179624214726064654440943743932446341591115641241519298091170543653363601639111205109869129830290608344932197506202547213161482764418408524384384002906347802976773685886159084670756107681649797286133108284261179718276543438888248568692949692631458666231162022603492852976260872758503989712179078128186622108160249177428424969255995026995128025199228290171132090177109719002332795786741043690140689186565841032780693288919514899763476807957700234333840737549499149327434366778930485954389981441279098530222765500990831656591086543536225290090076336220559797716751588329975210630274320680749348164365563073105251552734791800332772442804714994252371720755158079664097526140440638740601673827163208702140775185256059467783632386974686079104304083427094299101418248511332026380297435521557506596888250563336040995046808219872836594152625247260422705884082718323821068065648361232638659817692866026206113242256083347366527844859042524494046802738939128894991963968042322519470776868842507460397641510078896766412945881194242487062918037191905518156953096440584389149254943545594172204675883206687242231505880315592975365801582313935717223746355125637600269045069997726694106915840277223840299639158350273833081140155288909287468112617956232775264683455718382789079143047062685590712263343742643287307301043992717958675745516737879451827093245585921320318721747721200683779396641165170355852384951298438729161105323244039414272539367066931911382459992022860951486796493719605910311587298043658607284120736074686703972847667807037060805684772043799429009270093064334340974652503205465477758609414743558157466907017344318105199126759488689063996849721092228281330487074977400430970038711185476155740670417204408097866452917393171252261336415180210745086932420264306279806697856450114379637941144051160908198144233943217494568901734007548400995987366879629203040920157524546892474972217815046898138925688397268958087371314912463513573540503990499667593403057724992020496552630615284185378520148860340509555049668316341474136696484550478545119624547518463141847834109097212456183783581036078423442765073216226791307696805363040325187167047033950294999336528026912028485220803695738272772288204129821597000575590998249693759843969338602980474898792826937014974040481414217129607070042902875528267247011532222618186977598613337956975934098307364522919797393685416305760216119782920289658643072156706780007841090290148925969291589574308612777109427539430821165143653484945370093490599414555518005290593739728465488132363069078333815612854727814276920945042778948311309716044478092106240929190924713442813440769315173326500739233001542937924014177393583603560132516475731091905289275145389176704029560753375772690653313617191469836198734772558678404320028638172256599512723916480572993517233135638747004958473699081658066644709077851614237027417939673004553706842114255671044737469989537416233612258572076003689416923265538576107701665760201646081346336099711599149818942972163270245722578132887927016333940649683357047664510156874923724239056325241167838019277493141034631061322938418210211667858030455323918976133680634199886527075331834536337145773785698707245464761920524789169670379111070737844904881620802695477704465665937408517308026999580194072181236328437142880609348813410175125135329931480380790785643588971887453062596614538637494879796349371738458630985472083274965649762412246174242006835701116634524627055764163429785822414481022114991566084907665349152719348544484980283904543608378715182234285588861734229713097260245421854161053191750543678188630432481631208203157117789608993274213579269546949336404240082353369085972287422588464500068447629932834296448784530304488932106765284173360463842663218539526886404797724904159807550330652299524212814223622903979808480570986392729850069353321614795437906604730119894080469023311435549177154018961961682232661929182796908593789480291120430996416725103327521527241793843476868037610831700137688211859256694148286475901599134945112059004885495664257755358664929027706015936758050829830008313042554853100303062286253746845005732340689848587224606319545429590602614269377136455153670113237017119726614826548688721747122185661165876470508765188883406097057366526659543371790162189004467393064288435358684250344220074241924907234126979517935288639184927134447367839202484192501886188526793210420608158573005936239709102883829794979472672548821321947887045590916841655681641071062904781333873414045027552260498220682369096971435684638384875046085915748691217514440913151405612761663775724933149100465085060915909168137898454301692415992526039176833436935327781632723764506947068036392258933342966103815898274084441717111746992340110945918623827196331430245204171254318436790540710660301833898911929034205777986268818903208083388471088380364044852234197415473772560284419915885820302371902228228959499843018752967494307025609717611036503817250339012111237776718824696764351446793775770056802350102343676917044257675645660295544793475455923602468177369532522448203371977123317268472080525719931081264278917006271798565629419565969181908915054595926170826694069684692696052571701101218693193357721371929144602877258884730039529724745795681721778569827680334826417430400174108552503126058013666954711517153161765030717386909500957606972412502940647744550220749090269393763229539849573033243860410310443339377509432990976476679701646348520079192857988363206781755101345488636340924708050957202960452528159463030508450985950746056095638469720281736160037027420753354784470686258717736471093782863875426683262017847037421162623822332235651621840995144494878317579708253606954544000459829703330601659035992541837133463294762087883199033802164332665991236298488833507216412672535704039914516431365448731302945155971919590854839407979999346432867242830274014197393275020118845303974842799430260007405266015106502884453300008435666040909245802036745569835397291102691728349386525657603165035983313109785612862122143929284890507885669285866417143077905299058615705280986850609564096048752749293353867094413049722177774470768228835112384868406851175305607580111048394810721700417680521999061157313692326732694188273416604732525891963407594578449259815770760711864643064966540959699692851237430614700850932589316750289165225798310424131510903186567117018352397582315312328708361296485848125053102492873213956778930997942924418539155303127680177176343241868152915515836574203641746218125497217279404393238685742309618328081311004049202086632645545473146910539300697901307649018718632237309197460478362819643693712908079646785853328915761036293973546145268200216616055542763968128538438178162822162826024799459080641786846287626993716249090492689867344347363370875968827457388756830604802271676542871524592964442683283992919806887726124220114626269223083886407538794144480380777349068520081400553664194906566581349962914488773671478641420982278601972473207356692086453065770637358956254350955402282461086230866933693983994196880673851788004122903143494397187258140387582274459739984687828785120487876809172497912641497923374319033039600046412587318062518197254184807151081819970499610654878381386242917083307720296197104763627482861564851093792976223875853314842678815795055110942212497013974877023684235534925325846768016416487400637975724453790829590268854482242242230513457809245355859882214125987932759448515603048201892896997449316303980164712510311763752966359254052929060523155704490724304962174802745761985435270095683694513822897128501599362528862824950898292533123225694211090306684593291758596875459338696053602675946129193141085668120041573055269256656955658300249752676967817765653233550241969185388809598435960938482411451117350870113467008992648033082197148544855481586639890890073979633057574836478609777883175757940471342699755613804751912455555900478257044691625986988760321477752326705901562284686835960449973884734763789005819616914250713239007260009211919818179747646853231224036233624524834445583906460561297479105520095026531943567280867495025503721923031740382163807842434021403399799782510708149389998415435659879172810782989393758735923770885669022803558169698460443252893866277900157579905480262091267197194145491703106481663438485706715476322056823431692129974903243007433670093950940122794860817873694746863349671071786005315771009741974518566693869322375611678448808953030291096656381284177379184033927516273007628270999252963915298505352600848093925258682488744866802796303084478030234589914487267505921830853312883054544446735794912439966862019011583567341592404771710752686564011455578013553391021170963028212945759039067668603534244507458240792223899101436568086918903778040890078021244361090707211989183844837359750063447715456431623278332079097518425011452587797216417961775457043467165743176554218056890385493373537450883709189786999774098651419256471979843244904472228208691299674189441047098781095765932156609546860938162980856985241839503460494282043235843121798904113589231252663000324809522903922427086863068088005340878473679429327716748368268826350463764190959436983343642608627058458783020114706600130770666953243083043301288336369772767894590128882046729439682705006432809790926632521486921460538273168883013854031580627140972856148193042745642428879074208258268026993013688388391286923488348967752348755981535099332275846945107596164624802945876256357999350021385931367976995706478690275339536074608773019444442038308843378910863456577416516707787667253764892739802049433697485886284138083147272162228704328474674433229269263810253267396832486890964058373562334257453539280136961296909557788432472266241848518902316409555828881418000446482217526026435638525894685555317632362944914432521733760374646827257391445298293982677331292938390602876045373866865202617793630159461870198913962967310111290873581723800003257808397787411798214413789339590168169586770383351452694649756592182065124084289976699755221685152208017413458717535136422497829696434042213678948949832074640004397449773592523399380036136814561637350930641215516810922994728491329366967267335961290253042127393592680574332529337756529515570046191277779883217895177204816537853172304452608402921678827447728555801318164558057735417437510867179492534807041080671328747014973045232922238677925105601436991194007393924468214525120049093264420484150732453117094222104258881367597904476548436899343295818863221867259515669618266878458172551047358231031912250067369959678885271236769358830093846191355306204096919772443735981327310771206173862941249820617273174058672590297732956260905901660935915992053652895201934463971132699990308600383195229539670726823297155901030775133161642753531536768569256776655799721328835088700061032917430762935808440884805367143468415262886208022726377170423853699538566173035368978275720738685446602309474610469447772912583527282197112805429028453841790622654967659439311465755306967846688570093494706254153559095292604427012389714390500613217697187381974527599344583926930263992052648699893382136373654803533167988199214971951431863023989925577059115507917516062182107130257865077106719458911797428881864114323423286663573308596246928334076680725127874897075685225512612525483609446879414875408625883260716643863917124763461457302189682929823755538259488275175435425333057091387579803740301924491901825017506311567685177820705807072802385706020566707182740583294670269456782349288759377660442143671151663210403901176222165331731906176312559040982677151745032433177107113020419952339706748340913576547197533756274180565757346970879595481712003700944537499220531953362244570849416329985691802325190311183942703650790441579115196079583285888134801512051221672225806707401612883651868391484495815321106051940560831399507205801818998203491579304443735362321176333579008823013289498136820100184914138677719843213482506533239926632060340475670768812768243169226941468163281888823075725612521018712301126642193605500144694730408950034970018143260548244694577989617912808280209559795437969457064078524407010985028968683801509335750943357339417438900991220297302142306477963433212746111370833904541717354126136405237754320290505087976962710469308156520298427837240749616987205884509294870380870134843211839325658177287234014130011230739040880712164476522371729351589914309290189174600685715775881891242396243029245076087273472431422583446744126100350488528893461451944846085793324819394520478254743403800980834307201230849056370541323297374795783871224481861571757649372618578727549659143230148498460621288709518373324107562440483728027475467066067493197943646469393329700898990275494931650677605890463347491712007321440650405596206248035309217357783670068029266965897599230486280268909465204796962634355104567314820779279847780475549833746566686309456926676926367289802425684544601658687558375268105602303909627968832515626371571163689280676744766528097320881792531402608773723321818949035806215057743931622007220670438165121003162910255395181082107264900540476882446803169443888661216101513967499662352354604948633638482986759049152857843815381390007505379048675677852111753497526352278338299105524817184532334917717345770969041244193181127267781383242458299981063800788691577212621208462915537407395893530232808606038787847948515305324584171037663119152537413169732966543265478156992626922200068661566214782474196456145171942518173185771234028721501014675850515900717549656386369989916026848251512573123487015271255279556058598335504453446290024029822508894639462378275037054595287667104278763535923818698324548268417248214414353150322560397718039010448109662357673517642680755751186550116769063827493881561047761806534894249883609014143572844159369567748532381467638673521233536046904996864340308889631361154583672476456549192618833119973437123010525050843554979787136027382304003750133160564964857491358742333816899111948648654039918522357650070813875802794319942216298931344229010734898512093233492545251954221140522598223514036215554321326774477603610081227609521181002920091798130370068865278464658349983385468301849610352425933505680368902910387601331704607914955867396015423009296606957061882150468969353156943524391053583202529341886426883819138001112834441633589544701125746744097291680257859270694566623956114344973591358006979848294503503528733486688126277574762425833473340795675212730350403607341955103310295753357695021606178298476932181006253110718114227584669244770026287279364442574775536942283143354079841515577574009055363684582567316625861430598039035538326929440786671672976813484194799323112363795196405667724654952176728290289003256140361174388384026721271974651877321913199679732889752959530893525521249335987209182591152071579671975929913839347408457942372529364827333933730668250239301228145774038559394073287557753150124620617815843860572744431194076680278803022715984247749837731805937140425443613773674925273960928503023327684869303149838139003591591591511289641173144391946898166200769196535684621337090014916999349776932918873104316515877581300193772118466400251509321202671722950169576419690617379096914575712064072336678836081231622910835470740442557667950236559916785067877111263233670760851822877954752541477924272560437925498706874557780908867285613003432499686263860515138230638111074957731587167183895767144581502053481449646607159951979469174530727015543544136157529737987615870510241111825194454196706319510052899346330039593144161106155477267960981769628170508900649054577991707661586053544050380598305809072783088120860836337723321573139651272015280879368361327872821250686437305166941407248054983161904195239844792244512623202862272870248053291774274494584827401259274558288029157332758051945859626902309684447592562045291507141564360590846026070335752147505967135182278624233444209664696569036398111679581623152074899845388906260326907730272570274513222260168041295981961634584604949675080335257692543955438751250484627779200794806290814995712655824720333581848757866999849963394405387135790583949636970986611437313160470165696161319552593987804566691056274221795611194092244463643794091561990035912189276009045898086301726282146758261298765271988001314556568776457722732483637057135152830978459296683280530214463670681238774265556943600559840905601919002766973201672444836833661948851787414643598107467915223003012762515604069129220265352241961004500041306776756416102685333661973553375800771996941725851278541616064018209562891728795991167032732596065043845767975578495510830545252959083391184980364901543097348867419054988627446766650181369783451969872582900350874075124329414874767545407151043602508257253890721172785119607136070870641431564420907494109852506937662075901812462174247004693772344998757837853237832693817324518261604485090428577034869104813074638631688266895740127932691325032537050338464118290360718722614602826230257002696094596491770046822855061063647565846330647878489611000121069830791077585718635763289369428856674423219331497785165619924467725875443199934121787781700302194964981081543641120919655653426257608171699808116767952877976971538612348719976422795372992262501322816575650926449811335231123184884217596666933729836005205107657681196211148214083631763013288246154601507214886750579713507873586399637640778161282710440491057960457628699254502983901722214654379192457562676978303961835011042364893856270739741162139905372417271573379340899641911468326875106285621018684160337039112145986344243822898898290199420468748813460650721722598479306604571437194619022077476280071537370731120509733735296580118754680754077429484119483997565681420010861598584067904627964356510437572486894107249537207205046240578014450976055102578840447359938087418607555031461411154976715961010707480196918806446205444172222489599814842683592065151798207687580470100857957642011359260432778934264719875477863329993026806141235188668538935849427160668481951377398814080171330547555705045743045699049441711670384965727652699956937786114377301031826051972190798687513293596772485828364328074494510889599783478149605351662660703004237913901834025395738219075240559456275472075237057207013199419557167557462866200150149583113005001605679424227489112909991647816615617386679334025357580353513606262122728102321634174610694206927668689100073046316375200650185605295376856828832021408755314282264769306680367502724219264363113301042187679823897811885124340657994807848557468726195734577967159688427524660862206516811026264795416405118779458823598474995111456516647383191084596854847914401170778194076782060263799946241992804701063463760519029962483266707725806075113770949190451815672290743858081734789926238201766025487390291369195411197325165893542010333382752450905765784124827023663520189080080700394128991945527135654566665293786016611537191600975399424516075476356563304633396044172093067159392069932312425392581457792532654109941913199370849916760846867594875882160871279665838966610511845000006098823319092141600892958193878853450312785458600754637918269330651851139057570459329274355877829894554621027898914071627761962988109998368101945978682284725205877162373043884411742523437136458787872416444000004558882135217473657526794619093666426807773416668605924640694532350579460396727538474173889181423253091636762080108470326392776597101713445917017104357001157006828217819322614451171816408995598997072299466818601678746217172161382533300051215807953493744598915398108611001336152623916659065432046726239564807063939564630221710823879415605701649561577890228604545687718768366176729219670638542339275144004879966676071070249055862509928574636850077544586726017670863391017207407194214592025939408397068131550882506980686511821336386254417156095475231724872610514312788919844814619704751329546538575778928684375753070073531937524391959023906886825428067900452950610016263069280684270494856396208005003058280552460467251735506429022920732045128300764889055144740715548145523103712759594521520041514559906004359214058249137341974172423450976491228498920114169897156486695339357643275056958369621668354834067090242991360020169084049577238929196861078120310821276671118112831692132778189349757015926839488828998762507684678473571439781392421753811753980419874735776787817602543105303095068214299838937615256077233039369667966771198027262347940843489661996253167345722725780570886795383823920746467068433769617076938572556976671989625843643933414129433098762437630008990688074742409859317047895394740264928605644996800232652212939671658838504127460804747460074484340401588149416707562717342350962677035167468532721714109899714217238503256213267880783041741606641417758350515537985140011198067038892276238299172851162470787229753251759077752707141242917939384329601549168479884572740998840964692487346206341419159055098067850380476292390419574889339698838470289591491808841933705425586600484974043002657547466558828522704952062804744937851175027863695193251950288121547885793851694126395295724726049556252579550717100084373757344319832300787079134360950699993991695445048243714934795204228915035116349627984582181169655487805328106701710809087821335234611275226439275332642488048808551172654093650644331337558364715698606355701281837456127273187142845218829043824017707963472695530513883258900166380888834275805452558740777733260189582565615285398655147113222891138951939921033785029255593104740290672111689437243113078600018748393199590132510955802392929781270081535602119543603398384100724236226771109257777624943394884727411817120662637038705309872243315704506595856181771608010528941851789883766493844160574762152559572617078719782161890860550878092532637620889250225319724085523012049445005667492362978378894168686397890097182928300475358204845625871483260189249633824205928057434535334416169285844757135308574351624831106606204771437777012162184143582810833934965110732147205227423961388582653088374287644671006596723273292007536214289029019912218760840914865728075238082280403504901914861838124716956674308135012334616732813191333858133213142724502584941437293121977420798964678414607492565195794085425636498591079702499730313899860453408038136808514644834670245542321471910245991189912462171522382336728579891174914512516453173974847845885558637385531315067777213372422427365976579390751139561030349423815740700759479683965647646305471603519637910055666689942294640616923359759291554425383984648194155598070156727014308616992663383544638488133340055753264197638577241000214256754977026499460910710110885883700376158836981941927728474083774998609179721453570836536724326032156620724158083888240951195977435319845696511813147507342953959990543105235760285531732581817288978870884717390059995607257557954335447324078516688504372679783737060711364368007520900499626926003359997744617690870625940470274145806555129229584185807226384521913607461553368191558243857398714756947086668561906123065148219610460673247399028344440282272729074573892527469902465922819288939996441652296733371898982813594753228912731240956509314541932659269120334542273665075983851409010431800305316827965783059563132231791783179043462311367642143034673042023436465859681759190446897078632473070956584438950115781939992475370166045206857527100093253731672640714728418522093249901975733184300903984488027039467832731121006679951687400426664571837594675960208536877042644596768776675142858208617390681674825187494618261446656783332540372763703645881501134300021799765706455898462688026640477142163521077931562101146679874519386255469288180612317107985667482552931824682709135910014672388069901995425821380297304499078622907426210655569330760982101998976984579923715138155560151233083834582571873588045935324499131093760825297790401015794574638926515055687843830241419809133242933214259191177553988914243214673277565753396778533224292743973273826076457524371993007198593947705992244964694715662996310580956358248154184750867642729886702582701803400790672055794990338556999361873371901556944333384695529340949436864107988829496189346560089322425245376389505613015011565765010550138513147250614916663192805508147129714678886697576989816769811784753427474350118548006741885605241160369226096488056171120287398113261887905587133984192809641420929560425120659764306377394763667296478992465845973344454439111245860743313820042760836709150570050715007036500883803362001734609921814805908533915504742303222414197184550525291702313203122473636669592182337778733536074618764809503082837395856366235620708327274026217827665956567242728548106014351559738087045771192534925809000975384060905867637139541240443393343751932758722427059855607387875211229694692365939336621807697838150344441638557916689892283747784863010669805652611052225589107335421051853132583292501308852614227892385038391468156121843149450500765791174874149383625482032081910357201493031172107141609107304572690611594246598677355065375827042277470322395768888120007268811614894082875259072917300581528309983560712934956865623941523396893342137889708654132240610281356143742276453706258946953874871475431990610962297261709242044596639176441312930360647487343303391840617727229599638150332445618120901816321830292215951473301293795364136475221987826302740660334367150965465270484038245052996608151589386466097579491317832384290837660802589456889743383881012055128219192595069346685111813342562298890627652083773714589512860528385999636455430615431583510629377748727299322064993143396027256127696865909445431503279620793830245024465248066897972443930110076529836179897305926572336126427795921666107281572537369651241834502232259808103262403003005120224573466898177946103008308880333934787637018710914108532248008845023158453570276713365475432295323090894356520551667912397437986422256250504485956833871070591510399713886264416993529200763933252480409547460105528479963150020693995999041111841923035877373549730745199935397598931128275142299845090627721268310287797534315228608241426367311530562164272106951714006987895163921785509070839120210847194070227516572483412721672461772519504721816441816865260664006307485291265812517545999983329490390439855590361803625671849386263343999203461703468080223621923212251564200589388001772578718081619120166275818876513580188509881712110009016375443432646343348513782824725287376432954916429095742081613919554905215674727071573997952720950213753072461928843260641050698426378874839365065626278209602781973947504026474943951901565185627335042468235766647382532457074530687509221276827791870407340379618774411895298675348975340996323516654881238486847291138091023762438780858349681456331618327739612675578570831113774999669584043366250187647700725322057628669448951302894021522658561027958913381253489007856562452149760943513510323111157468855540552722499643438012461119544034515216855345405632020984517212634233872722655509724065583529320237268844778511693598202197093174787155097379382503923898792226852515503505031477949806898359948488658581477026187252956453321954625185827694460564496743265626535574360574518855577580597999464882550914403381577379512109083397583997660159589532404610418210495391325952254951416458416780431636797917816487058326031087476393516365411635619756339326056786644525897739672139578286294606908995506506846757582550697037627068242954812817229187425239727754380569757702946573521500357398828796746798543145177759424060858354785429236277629463417786406979446627137587113187022115910283136531390412571126297119399624815376524475464613474085359650162338706251194248631690351885479764530542231484240030839651804699702577547231823914091524468738434130148348010078563657251829574061305258702864099821080421349134817102861217016404479386109043968161886679188678694971041153019133151930615120056234767489643207455996661768698799848781066486501437371889861216050238538318716825922428361252241707046055323859142657597273303994040616280134740754248028405580754979089313472831694521413725249603215759693552479503115766138108521479035515019847056715516836507108343757896393428945603421409040294266607134235854352621760145335736978475573827322339227437022763645233300319785274431120979533507957941462884338979645272491589971992625700739671613535780307252179287147884066567224297348534569338050315216111820776480588260697848598804949025124091472956567502824291523879312234002708968088482676440037237940262886922247501093694137126694054184417522665180439459185192491206528878492273963678971930013910912193411234464597576644934810663596336631895429036576397840522186564313536913011036848195754293621243008223335215063198331676599248542509401754571453432402537717430100215336453696693102547191517064208304797551756892694463137719154113971451921574874150150795630918608680493617970533757642735317385727159206867511179656058557894399692789443454341519762804596820911406627484979656717308758748621876325469946364106439854224482387086181116332266895805017112183344658761331242826880319823191771621645161224828040145377671145982159179334548799673094820127229292406310610938554440964596583159401662240632367451727578480518149659565977296382508005125561752809715343585065339185506015682927366965057626893638055788185436066273929050217711247970838276171489802248449704688251478178797673099255297604782671937265448309165957215458042815662717045569813749394407720280140909453832677322027366493821007332728118228151094555800755489708918644691552819349538965989818600118610157865009923040918903359614732599611935185385646076923955448007127693805424958191192395174620486678108106465970890554060444804842138303591289015848440273875243924361778909901549243755525660041687498705449007279102460486287665849440319281499889636786704373958248848969759639034371504454402769105070375170870651127737728123224199912178988027237961231696593249955494670654777200336144583698244679423613278405282810803209938444887501703020231907425593388668676219503001246687492772857285732963831105636912218554870317393031084311124458166125007747819032762331413466928759681685127131720928438456473357297669469331400148625093219673709592144968616119693278681534534523629124697087394083121402280237890649745015686522078505802044840597764559786659370855327634946283879349935462567475474459459661681026233902768328252804190050254910369523473926140936467381649789241728381568184824522891343588266035911426641661788279942503521927177468963944537401183112951291310567101002234716005678104304499362610166849782184327680679099129332324613413454350103064361491896072875720702610221177808632194925673295200327635754625533311873053964842199999378259279886077546469247940624276614192016340823679951405872841210831283972746751618495325976663098382236171607629127522314439099478979623661024515670996695379223066867808568055365801888397295201324269529211908556595825460603974840196936008158710045734073865324343469293369698882181938349888306381196745935567885116279824814253958541607739029756533218522737421689965195190223901213199817434005771179307509938569016570539751593776824565422721532045512829609743887815903402701161778860920402964125668760477757474283802483079935051623370437370410753921172773883004904477133769416225411891732278004471832686817677392780637401979513431834469423807089708057382810916910720865409607212618778969156294205494020471964435709370646651265931808177234274876073044608908738139925742626670157248782975461590558783217660320090416066002240097203783036417790496841158182887837004731652710025791567815891791481830947373178385896316692850805046528940669194310947155463202922025203901012258750269176048365311256107422008484233038522577365390984838007893557358834865724610238155411791744827687797211947533971889045353754702724544302120525732095164257174486884116091852176811851759429309745217425595245619118291630699797427878549031121502477535610253616688926994584329707731076308299977398589585978160740783218078349718519522636413727626619859992212314183604077112906746429577627123900565706345036669597470262152423354182391780903468535748935472858623865046602262540455827628598999479185790411653878374364921202748537679995985279906682947107568004497451740777537996084087887301715727331741929135025392125469213740025380401793809177149823847946615806063267687773107068875217890015201674833042235582462333570393721167773622903906201679592641946120347631936310315833758551662526068964785059284235350516459683271901474713212618867877634691339584035185020870606967845971109585070068678949847966766068279330543033599602649818898258292518593618941123403923746716106946631368239311561428447941848069514029568632054695479503727861433585034125678801423327391175516658889990195576141140499481001174986228845178544872282960145963617638713053184180520960737463782541042119155435137820878566877732920061610493352692135878928070981244107865942069621483180723184638698705037273917065352621544290341741071518795299135437656229102264578465416090701169609724652955597892847595793657070556082221464110028223539336944050401153665442368375854884348034637479144893154184304727586543489871327639502848139857809606503817395192653069754497887022006386361528496395478386671887889491095948580795503907542509743128706429654136812428288430228310055697384123662036690356487559380837403011315844394101335335897158256698045378173234719523367346672951965094945788338460378761096109347133714265049861445570516685916442746500535189054869382405536209066183557671528330867807548365652643591878501348197186074363457480027366245137057081164050382128368585552707972074170048605661766776480859454473410900654932370555473450439907013034234987014436999940200055381846972390228737460887054376561768869409350498999972445321566495679777161569924805322950374907118046193757881369783141469793933606954926679102693041501772313053729900054645154471504767592336233801511219154783087452182988307702954860942987779019495215352352561333801389657397388369175733244757709622209337528186507927184378818605397453392694757886019447122685800819437894380293990719700402902191953946676021545841157368274631805741205519830820281894144135271168805736293409120589132774893179633220996971531468126255191269193452286757081451456942907570047095256478237308117715090700944737963432875036824842010275445374056397246495564226470168733069479173038604518409848486621486796316068301525531815107307142423214379157700281304318037379002390959532150055608288664185906051080601488360493734589991709640934231336208706729542314877041802507497968825714968050560175150720870698212015992022291226935235075091787766459792518965076572320878882769108012096884192184967593818649283343637244209999823572584576859939074794197105061232077796120540109138445285005442375992888674397734570936664762187714746112983807806678453785714241865119609935389103373900540612378072048403049120539618440678601516197906814221699751033772379597765771241520230107215932204981664357594035044120183468097115391494233114892962330249541873531257090495958020514613544983795744342077126909778863983053859657350642451342356921938657410700647635390654761693156725599219283483271295688026352147999419827874875024027619263949634682381709306978926849649666963451472875843545242361545020829109979061631488503238214346423251240237166001801640853535073119325075664303425191468080626273481414684457529729205433769668867386336062842260418443491429283308644294975247595394946027589502955050798991614482919391728256523055555188839180102617810655835748083035852859113302808985502786209000570159457952830036372381815835321587498054591966550871304361370675586366186938328225716568583541712908782246822208041048332088599845440808086039829006953440888780798958704295369412007883478010567255938508102959767126448230590888649260320258438104560729774756546148104042869660507080127970578006819114243229356675542760630946747160360234461191990482974111734524027947333531193537595520258378078299457598356499837012792263572405815668679622241583758027340529014664306286584917891623902671910618838175439064602257074619485827036404199616541069605628693193220842092242659380613856648112161550519080040419343803860360575827588604837872592013616899508472586417641436679062641096022870457038010463152879497720602095491443396821508452516470996129344022318820531106868752886684097150297146740229607418581306371089748854997997756717932315405626516654278169766446714623904731529249467464595722904551008180288136407029561299568192306841456713446452010761477724758483791444122896731338888558554820871363969510755864035669701904209440392914542611516727050345241700094026673943373529423703489396866124162385356271736875351411880717477745116763063798529345233759349889422615412599923795419924582663026438760773376369314220032499818140230210385736657175721997091053912192988841710301978063992525972910298743530990060522566705978764668459933059607794898508697862462370783378281963730987097120395987081093570086599187807646834415763134407737430004170336085632920286462207075502063029836316522312111056953056488060327546012013939270189831662519393879480187605502371789465427371521762868555159549114356540055342340649749915405498505043678213227892075299669720901446625697728001626504034679250747014857985082910166736748983711103602133078043483512510011331398870918626762937446158483410377316183703663831328969603446575753921396916473124422150921856161025692240990846797573272191442773601897654629612082583338465627487365272376864890667851739790323426951533729340108956877048628993736720560854595266689430533873240109449344601461903233185096370540446251020679128079831053611517639461231364717409057429176317922496249137896946144019337431084596026095579887910964872414262534604333489285055588992107230190756846459915681958419732277564818030030093119745547957376823925430919932814495621110450879925309846566504014247920271833608108811915008147672169780795896659792990105842381572853720561523232687697565752577467363214756075106308579522793714631484354175363688102906338204741193463769095459489359395171107779577170096782601138106461536400767850027805482053072827817646324502716252452338708409807705160657274769004176757656545896870111935120048319227816037243351298392981336280649222620287865120142072456258925244389656542811214246002959560072214264505253203163551637789430899809120737231523547466792491094565437068724990608882853773966162421744363962943564072760633881237756518073768474657990025301089790760550874484918114323139015651235039302450186323143775183376813669092465685024584211168179397839899985080425547305360806394755463721719961062254806452593498463806419993116017680731042584631064825199738913069466068320813355071079149627641370762659683916696220841150796380351182194876858834995289091320652263405183213030207108991636286715121184519078825013122003200739413817070444938228941037206394193737107845100937420162145877749914443719272554501731012774077285507485124776474538278988435861353839615451400253147375003183257205048729176457400199271185979836627014381262177531684942114554658414004006638548675071968528538701600479540933477818887809876506746615477000116475480439495127715474075038413811575463303143188069442240332874648208687257562060257770340417505751617754424512382038796088291089363202339291974423973730423554185300625490075105431239981605477198100717436027290900362664814306130273148077624325863685164395954950879143440770289860091607339373371104495208534985828464359256029858996954473813272358711812548591754624673297616527393286607460354855750749615396701330423175341429170350753308079936970785790400369492388337509146695550361643272322839791438540869389055070184497202774302868262417921325162079786408339097803452819002050858712017243653483991714182249888049980706010590804390067656777833370771578621540940727690703410530248184241740953528798814703436499176816328444189841282447710010291560800914616042820944287013091799648343009796722412432559400978015821587650354772480285129078516024568171524688660050869474760559027790004811302184749515502232784217912984205452732212963134680224325097126357965331832607391716368054733753470096738271113505713956735166451413829072108707352734768826629298270647462653721904183788034147957333614257149589570063178019193770578846499328032144636287785913689576514687843712859756340860463439902965534170566715065555089848314730915321346241088943313328675730677343739016870979510400433229230255229539447947634555648690197178455719610169288317868464898194652767641921544867320491797111514035612347592740623954790417080885251183467571513086761569840894719071381036686011011330857938036805901931255596643521761046946129817883888899504398705720885961522636405060011408520629096769960358823453133769766639576571508769215186511846576514715278945361082558804299661189935193009300416397988832866973057918373017095131920770919563049479190149654983698044987391968424394778793689140274688592771080604479218687707179467567389415089016310817926312517594731786335155527542209949593986143246765577547104008123015339990249611700742894991311152448021045871001908774849420015785502633793702663373978603485116515578976164182663039870687369390794281664103847856430172522852168480040380621078504615124228354345744764605218398532934698964218303317449247874500085639262120753662298829194253853504504495657124150827318388800003340446076593231294343507193377491559100832329799828188956416891224877958946284025498514708453215212955276442267350958166471774894210772871728334952546931600368202083308485725295890777713973497605105007176511122210869957655812433875897030465904352277436815120707777720879026520014849236012294800775200683946203205321327462381850022624679107559594983190750259399889434171749766547690582819826620035812775636026275147560633641486839703549289532121715424725971514762781570052620298927347958667027574283598317042394156732754138063362327218309302961288487428372805424021529763394092385939676400154962340595942776859987930338371141653390734038820232871117765641012785165212316269266488079483862607891749049448249856915803803959351890042186209011174497832040971544714246471439238919106545366768172254812963300347978039277840943761263651367412193055117813634091291209132016773884436595396036105512824783325122641680484437331240706629472016034703721759995283751192143346410325907013572904890655319698418420670748395993333433961163389208529399851834120051665452777153710704166663586107952896987032360798983799876312710762268555929945268677220484386856748516628130221542321163933803238233767978467087174970938178292301695527970381385258782961213092027339226729394659077075265776504107956633241473207766975201441594806906896940341200511428756296409917563328883606286013361437833513258005882244419273951413243902515840732151181203983160544813299410601687027872776438458559123851941127040977512145231580295034898506592548646542897255463238036769922610100516853912631128040386976121300935776317480913888862523660006727464188895347763927839639908549896931222250215555200096977187865161279822987059702703277201544699348803986016956351181601316714447919794728540170830147691525622595656510137535228568292660522873831682726074239959776085039447232477899186291976757345144544067835699720788314134049805370809703807563440833805400660883549616307356653324686243093624099310024244035085368538809246338853670020267340967868680643921432913025769027797244779146553788820377341621366261791738479601577856440436309206894985300016671373373140545741755163478162058313045734439218711788222157853865278449664785253457080905369434982447033463490408219895911845931738829348907120612641435681724448770689459512901350297250200657001600665803710393507084194419638642387843417674593802932148323359379992444333321302495096964418271936528707700646577005096464336409057774061544582568618431691547656685749585685377296792330141089104659365578831970793311108743858192951754168759068677206756365740914346741770262052768877597491061393881465434213853833185620576081615006386830494188759534405384911157615411694388750246312496700582770526674608780967204440820490354979668518564050706189864925705315084140190844973374927862930089510594867361999049558192070267051608677567075126755291240799531181787187584227077139975522454094061361191173602374125693490447353308179539337298451754511618328012118973455525522934077187993018098253690372503517961831958733310021860861462854977938377478193680720302462438131120893705781364772419989226652499162810955959395832670718268237732173392384538368405244667116871489196119023185736014398636785952667629922505241089717351605275135745371660791056285138804814251238533613142443527068132736489596126908850197665805261250901769663565734826772464970152885614947426685693401564187113985050117940138170763200333340652949334991710600841149274432364512922741748574084298701082091813252606458423231916962214916025644623618844035151089547946093253604474549010528207945322617609330518914728871235594523420287297685523663453632040820302634009712006887277585063270278417041789099489112477668233570530461369714191473768966704300450286603619593326191711989023357955888513880870084931504776198772152010444934061900288603339205895327781059489861354842012664948065211133636763641206645728407723334183150253038191761795685556837504051190609025264989474154696739380503102910598289364247458747001611870508303816287359845867126349918177068492901615318509902106310232032685662717387626066260152261173606710914131747658704128677611316419884363691995254430094827363495595446239877998204103936776830459811034587117120468241536371701944935710778434795783349943366991533076435019466539237190822709390090078682050801916132286374564764735445881264498248416569261733263324143078445543275409058590744101228262111423800674093518391260834006770651962904283688802647845967571994891677863451692389917690672849736920743875930972767436159478251121067836580220399895348429048467259616557010229902722366588834800965100940484836561415662059088058040607773441786565565059819002332058587213534598199832529926880646620174061026017016639349061997402970003866700876949829202858652539887064048452641484155994941285724180316063513571345451928110794071560233911570969030087410103295912462059987017522036514961798439717748371671626219457226591425955342395632157742194058221222692045014412685392288868741702399831867954954079119059058404057370895673276569165449067016118916819974185326045515315107467994020882310356481789314688530441696303618671258310213080086730841101999164288569405104701057369197488411785767085443178925801146743222320066575260722681627424564904445283598850079729324703408283423589447344673298549495636913576831021640828392622390887743997701846738663005942686388686004710357589245129137711695438498987134671879095308440940927820925937710672361507247804512364257898538265580836540855099306007508114502624633718075398691448399367116405351995101539952706225455394988488814047950723324910535322756854194928351217610072323127761014517698755913091134577479637321490526755965305571548325551427021739629628180678738712180709021895901440184957435419554387933810322253631085193139997343317789951157800127991430044751485267182024851927017668431567440880590329673022281129730798087581026694772981097634055127018641903695309361252111704798015736223984221606885109780785212636070326028129218368080644104916503619550637861613067296269811588471376169599085342443722599602305403828439363486246464473013903691888702952008965925838187121395467070552576863678831288954647724832026207571155924564822039031740664123301210578973743876025622142278246151364772807600395511264234295513082308927539132953566326745222999941229811639216164007941050115695035297525024219965765606670748988468797256833415894116029593634909885874538535396230470013992360056094129598576056550004090957114913771253446959510216578040914185318948218004586639779143287427794569171905901040998823499509143726083917481750294778544905694122642913254892270518554896815292232300125845260894693824645436715286477216585576679313690502704658784557975512384307434766782831183800325156097351140195684179405597926996279754581327885338392754314012932154098000531203085321537731713697796285400507889830015727524508385623671628536966152317489717170041706795795970938059266557834165253883655026573672392934743612756089209570865963813964807671145095200690272485961147053035626701563605020848294527764754117765358195317519757439993757947942581111711257759476055905931707242213552029876544713653642392232798964199116315708231454694476812023183402200758757053721538487109512090786156946371236751379834243257535408544069022061085687319974181105132226856899528113832268096367839830204774524383090824645509871978113847178847299680020854965666115216939716414593248531242953322079775165731672780760328057962638641004507581663755802180021513928655718372080678621775586103958510417806398863240088263329295603859967990147837886832222188605185388488760749085197934382270338912980341887126239498346762462711144307069558766030163090637467155113617406901149994404799277635222944119620746181327692336164844761053239356912177614368628963363470683253072760439211472500484678021864369999827993336521108192373180628816706556000229367741334279770215660949654918977632181229042381127279798508181774755456360842326735253967246701514952274439876804533743991923059137260113725001986347237690136046797172964674629946720835131405016410137066541459314366976605739483166404313835686775721732048369579492489095972391806820245040286905682673826520963088635285052757444326700709125915331123810763153543255148245409759984139991517602487336263592942211441599696853528300746102718057600120934049020030139694946787773470321550427901293305665395129877923108096843282544209497339030203918891232369470673811081301300192361094437145021889370673201908615605140818307468909684241331739778527495368868498462348724262384718349280015331493160022888860647076431289364639815874641363437948252883727910211370516452122950522271674406064544974460501396522760889243455158486440222977721721036301559747135437349990068246261932315763780818840565621802553468245932674116887213407091550680796173654781480808427138293046614151412810620072609111776392034736884234706063180349912372560567121185793686906493885980071813209451733483890288227992076559027089805843576536043478346632065119054497786717466520524500735116179571540468167473735690096553091970383830499415445289230786660314942098794112555390691738428485745414965389783961984686172298889788373940930080741639134261743807681369464508701447011608021692322753788475875231221808635170143163104828550899518240999173863074557035321387201197510840972824936380604847803716339466920280604980568449771309480714174642038134903165248017503793723297179902378239803409985353560426218698548043215399178472693457700697073745677169990901437891346638425265756437055780412738189534189122358292534778839805570809341339955303404648118000527286688050402358379177515699754684899130709724493853445409782407342498061103832780518506765124935130778410235587965925281077939671597368437532200054141825482727830443895482353196322403447539729564126417410787771778346170387886055702354669407099474346531016210522747363760715445767091430736354007286004189846781825468912791376392268799532184549580856488859666493301288529739620974372538163960401622279857930467412916478942619648493498915372242114745354823199821177501596739593996390943162698815758005030179408769828196307089743030316693103142069851585606435279840961540568551063248192751116705788738777971839412257494280718994625766483262647477809767189619595152699967653998054762721954099856530695080640082329287326216270426102948533507091314824271720822670329556124172976855290516853761786711258877333071707546456037081289495885517777196202047426365990802138695183473216725883921535624413057232297481309574269663364685901560954983176812657184929007105614233132087155330261268015251380605479287766559571577167897073831363418287049274554074020893307149191991117521633186443813711653555629055451582372083284919777488359033130722896458531036161586905587616560698391160276800549144192764541250700155877487303520050834690426118151566973718802695098569183834516953220646936644257914486075088279540198543099387602329562224074300142699512147160275279478039623400522751710292685132603179245822232313550551604059638543153020976330024387700667522296862917193978392795213722863384619776217311429533130326047258591215121749541669714710118091903729983624114313994719837800913329180015635020584606005521755204315585278500073080090567374004250716438593378247397602453035998713121092769869765821913063997417021580712721961781049418545480193312988478004294494911896999335964558925245470313410934596419126534039709361998428040684396568852073575652510300935790256648439530025859156248346360031855529131489987527640561246781208117052586197053401613709364027897546340888029446613437397167966753147603556415254664177960011787722679144277719849973693534993839978578275146378010205419828557201977354303607978771571883632927099276252871231882134591278128040519976756645478233126016815684410500586227935640938965295880239638407763503813499683005523532970365553169463960753809544199638712670576830655701995257163036495479309345566553280327041072770670285364010195083502751242551810529184283489623740510478202357899995056085462539493971475364332803603202863289108261754965859791784627821810250229765002568278856216111738527818241005784868181837098853864813894254909195649858946633048503435413747048873424478443329494366264396486263543771679903508844973997513542622655605379478469428671799180107482313188432214039739012008608292299637765973346535838745015218154687690405888656465133462327954274171917894480733804498854278514960595940666277945994296796763589389582174630433700006409079656097407514958492958134008914800296016466113826706824316840265017778823098341951551138910196122036799749937244240104916417725201845978008407590381486641579850591013441483136365908470964603241678930706067330822704814577636296598742281322013468382633778609452051535417109296782866619676793368307249361153607223632143140638685341360345681165348846129562646025396730647975146778701119987581392081798413720088707780876690013618253350798358615315556960818259990648171991064591827761725990477432824184612903346792522071163289308611326222108269513398681345092819357397753473897290952629838605138702211410039735000199665464451253509178321916019911878274889465154871596101726178074926192022795189139254702270516336741565693088773875745727107075991925624857449663758918998259629139313981488730592946850763665038459802234123751738181649869334866520907676413980652745942084761407409730071858861424074241720803754496776002494526684548465720659471834716763332822070481720028713955502841398516837909949348451824554009321381798687088536450072631711165355284739600675783325620108301382028382954230278382748031363410201531444273562372262489708278476497821385172492562907596762388304494857535983890276745414321853674105086974896758517267876610036153943174068249666486291875065747757134046638810274262026556586867472849817158782015180444249875011789392324491373034003908519648154392828390206079233374354462882543393691063343555485418882834799801332907924624401231698550422849518652211624539655441454819775184519134193898469648253198291823716148716452863844038442220224588137458687062604896349502053615591582162975405988963394647322957971127644613221092882821713251324761172168587148507966325600913493438185036398414891846572738656131660122213762215930320427780853668212868028926567224002747292024405352021440313454592081471280370623116285328781010698028842883947221496987981333567666108332395474937357155576075854182098382765113647156198132572847846537590949396535553377686181440402290465526796845834587462799387181535649117072965674274996348426274675415886119062928085694939555367271093855130837596314846044956215203410147198185995663817864303114273819309980773271052156430145688991437252758128033670045987268935266579589239269632551888579705117702587925006181550862973841806492162210899523334489732112237216091941621662406042236884547237716953453334661067238690793902488210234265376850061317900644664729264581067136998863637031227126137064082129609961771339913333752362374977278281958994815497477462512166822435955283887420490314532315313737861553695260303452373564107873600559208223146339052934275845756054926253372547592751748915532645644924754068490870345508860492866508321593158068646325857186426001075474308215398697781591982884343264266656526362740735892441355943909477117053471387161941280871733260379371441698488274814391201211498783774512965926468989001478697297122293545077792283667225369723418137414242244945665771697832088835548146310661763357934739893959326391221078349276684672133185917537210336951670003610574174072435243399784952230763740884885543367138258535165122105349934581745642034525082768079321794321836820636926650801558067022831852030020498638875436149870212068171024863814577475940903445438655948311612695238187019027438935897004621395701747163307843858020888460352060909285253362193870677342369532630152920685131543855819870811617961379455703086206512591140068934264684510239424666887165037378202471358148820601127850424855110850460243591337844550163571067738740421959535627184994896717686852120732485147590223499456484100057853293226995910657424929040064780842125428347006127319217353322146881155043121040213387692575191366860478961170813140037437670363149390070454498897181037726988702810869477793379127960721550224726451461241252645040038593120621591051281780858706749024040289127088620502831613169374710245342431137629545819223609220386459420439896233447235069262643496057821891699777695363548725512165098153855606028595064627824484743363567910757145857362022808816791296144942666795954867771314693812858630097659795808691929844850718981829934550373396180352898233430350798414786304204105581674666386270282130574581004277777979459804222739326548421802306696545356571716780354715548031657731557810243814872846017343441454637657080351814193654466940901695497598704364903131132828939547230796255114937667891720162399693574070527372324719116448200497995593310494563156912965689332394882589262338816865523016603474648569512974720316597425392882766377209167168275216090672494874734461455642932897412299132770848372498075977422223914960099197347754849438418877193071466636321291023874988422768538814861669647772788182464255809062761765701781135870084062608366786173839877113045536612586912049764722680283304634956144153658488260408562198856302254982532926519771314390688242116967945879071487860118923054661857811138305133854853620741199938219972679270776215047519223244626121664620178230950760607124296141374926591136215068423280881491012026886908805618175884050889464900786464193740931420671820194426879227048050324835043757732660493712815744281012209436389486292681533735573646809440816078573456188551948741161223931838628232481844414103674783151209068650336369212153031991936558702545899625607628789709479555954460210947871095676842987467007385964936433209633371356633026924981690714679968952459424613489785542586727193452460452802605410286504802717704370439093543990670398308958424512192758412574806683217480463766017978522430952099229282343856353159419100399320330373327778700184501666086913560961766308728166480068928673635178439828339764328299236785934776087423057565816361337086366701167191393138903379119230627091494273172553011544165041429740262097335741477646405463432544037937772909581293467453614421082324662307008891708141793219648122878618065223999746962620698071735985171973716337294862223489570482489697496260659216577364400363266719134588490311271571121811142376788955627429695415289985120895345367240103909320136889017322064609416755419453150475138724228776238812266761831351957395457708800301547307882694993526650333831926229132852077354788083704682794411887936850209139298516434216713146913670638008527786974960336324193945919163992204723497389862054415578100264170731442961383551247458071127946074676752228832611773488568771842065120832459612862601041851854010344267850111296101602581679961585735055815364435206591725350709787826198381204957047419214991404615664185539921409734251917637252811120598847586276139454891790527734585359581680329148652938964583240494885839267199167172141453337373094862883919856392619466315835298570764284109803255401799376802000216363000453686133756343760821790398350023127410940111818789700896918003508523189410386040766045246608964194637352335106061808223693104286133056430318873922378572023602548081952996744484915534734839136688766746067034152678466316483557453620751290192309046568629254779388513942707301002636755862778127858891864923968132451102244924631972319298482055789692582037315215261533498592092963322435428525493501143227960212421465631212747069638695468914277307843029038896216565603127672825254860032431568787663191707376034182406765956872640469981233773962906299664195735872494605731384230089504248286369791963558291369574516332894357962732021992466433074997202428530397135295842346119844766682437645032142862489429435406756372561169741553661969417573150862780592797064800574414524780277137561260888679021160911156409454938442457746198287892099402067754976982459195706999272983067755223483634744167745431694916360285470119024997667943816706547170570077945943817338460494778034163839586355684072552898332475818999235319749136885172245558421835113413518104199114334391312867424445590082516744086166346646029759785441795377114978445613843886046771195806820539698374602783563415059260519865405114355910789586481646010896196836368834318979948623154135971399876859401772443328736286674547342388922103510352037671587055400089014274518557342554390285615680234875096036901284700041671406849890528985024121317981233161927053134150559660934352227250450450589046088232656388906360394949041069880998944873614512035108774246454085637715197933654965004690610268510871465788653845468731973827557264837937465835803463304542198174240904584451658387872500377540536257232595589336588708703578079123131504423389070799931171563211122949912075119484965016153031475516953679487793852215744760051967392327812956171982149996840458931500235674390249243201619649877292311385659182746989536814997199032657338340439988235484325980847490704437204665460325887976765011892771321565535088235732952683709134476995013175918381267414366479800074392540873830133476595050036728134837427786297932413501856309532747812821993523176618950301291184205782750487792921871628754528850572812944650810956436124365248593561946338590569115716046145981068492383997996611186275455858255863995337791352789164332433376528131996615626454629691982692641162802989461432134891769570024494543839451350014435555257305153947539920668053375229814740177924708934607950280972272587257075000520841467284480613411329671533380760467225205722410888896388979471015361291157691202552358459942020042476155571840123266829813392162752014062680177190008356855888861722933224406678549081524151416223103601042537173924843417119765256523618956597795619859140483588656453405004179590498365888219630793202595417042359699058048872372737454645914130548797345955883922851105320118926380140480757657434304493239760158481910870368261456002355888284417066760205770295104641303881162096206834351965920198829172599241549728260773516921020615378273398315778042204760968168026972849123999402425367567818475547399050041484733113528270453686788005372064405388089676027616376401897702642536868958297374910961933019319237205015967456522805581025726052456652775967723291784284472798859178022371532248067453681538763413024090187794253528344552321360401621744380628179401772586361112534939035002529985615777262848479450353761148061934933150556047449407035978345829749508715127862344034495547829454694645895579930512705750906103155463129831988205976483719575892642160433557594591276996591075897971295625304204139314353821997732653111569562355521374425349886705737822967689455693212456777870400936939608736205882219274018339792588567837293881516485128383446558934402113949376086023313082851057602641852895861514051817059707697812689640511806228020636817940418148908010969916697043394350407986142116292077096191578167813206124333564810434977292679541486447410473417813759137422738658298998598612844179631310368287579278461462577713776171068164509659309078674870092489343306426939850458535361137926798108962227686780824842557993252132029135998910944123686196652598099536988637064602452564486649267966428438062500624966724997666939983158639463909303994066427586166581436717873801551391351855898400308307476534616108289893887626438066037671633493904198082146577484524533008963556181195316153289718270924114125333285046341653217303399823419621154735171339130965768583495250438269113328756515055150347977971576472183034043572381326157797313165969190783326788270204455173776621140137328848570581971112825189252318221503146932688124908736251168327815892999006112690207558504128284414140257554337022009155575395542691257688364263169889130572177506053462200725636271824066623945248895202578618060943449079975918402523239081522215237628234896548477958365815972785967804756787676202621039955445023907425348922796306152041314560716270726354965674654909351326366378214236156276633493292708938341259210449376595101239933977172489956398407627977702539617599231300148181793756938729363621797961799662816929776402993929182148880405531717589831957200695294846190755387702065216089552263532577034071089989001676407038340742808721848830819834473539033121345605137305973801579574336326214794379244930860708701452010233929371502968816107961680906501706132902893482110508588979761675080795929707427911692238433751834310772189804509752579560120886389618555150239942562385752421053662505714012968666675631591112166863025624768289898886761339502931054774573487460782208880934460106860012297563364348440094878790885364636300199863975642658532331298152233162851068827783278301641093457057506633720165013788244523706896238277907656163082480406578769491596088754354051736253365693255828421013204762861239517615405953957521799788015514792844685859914178766414501593615309057819355107460164940020276002158897529843824881819566236627731434598786188918749980934972574651426048394300117368497670452144174719121314696687325233800825157722316035845332720975845374309494354796491259911450687129794665760709881496013856047676420394161262597367851259881124955599710452205040404837026592398954788014774899955640544301249511858387516269389328641041106100396505783353251202604486736489675020470867108292675432342277608470512907825761125725176521060952111408770377071372862425690375446368901955870671179771102860934644041349134206386979536826405901159344090519972484200183569827901574948358711981579591506853369151767410574917480887342812921436082563934430862558156364891008671817660775896942114559709009867053345624045974724255583368707303158190830392521306862640944308071979349644553637478271423741436086204777708916278435020469870747259407994846815336380126295446978034332578125611785128878079455620373258738678835701796366506464042429085311122951153004434089062063653129660243413123304853922200394381662398673397817018780367896875551755082114774660667767202666585334598425764659977933439665170387523756860063081542078911017412436295539628651990899881428620866396761790366783720037049362823864557685838850218198191152983770944929897433220734527471358553765853996368609042962805072933938378456236152364835470863653380748633593879885074832559108790237902412438221960261208210556667831107785734738396950131708193087306936691152990674443368316810475483743474340628063530583994803137371271715741568422215399667803227494775997460716273818568049140552334652521793517684713896231158593888952787505714349280669043966134971405982825886102581132121721091355288195883125740883685395087961612106707733422233924073028176855578491607782495040460486941125402016104277708568237051498891873125754980274799468095708541467489043004713032662907167956026266559360789525459952974474015977031990655735466765436672772049681617751265785558205211490004188232232869805473709243626596573219075804854265545642236371302943030900942400652802499782881443311977960568471865039554975840511782191414599539708680784872359813269976385984522362171641972839438339859948436401231658755977547831950254472453606651877204143111159146242048187031527734497712056659695796472719387750107523045382823413582095575288796794149191206207321666198493198723835655137841767121695031549801599821912571508823421278225929350635070787558369607835145116246624005711966870036113597983868602218437609489560510166941504109781009894225678697844426597296762973093272268180530485483928131786707652195260036230651335100828272670475483226006971750304063758174592395471786465083735233857429283517906109223420336725722989907269790467687132540493813018656157438817288844463889284648469694008863904958691654203678602388606303792662400932070636103721866710249622360867669045438300339378196867395758328398505499551872771760627680746779701393775904551599045963977822645069403397093480200603981332247266790427653783099811107397121360773141850522753841988865236199031464230399051559501723885297156584343796511517838124984591060397611303246173719621916639636625920369017335921047380544791413225520750695977808827959485212974456835270504463254433691489465463576272661752581574640441823209711404658875890953277696821300240190841286319625725481936863341894483624634551502177615179715331681091763834896953890920364465108302246825034987222573980281117741445503274857927021649079847447001022911634205051126653306173965443834768135595348819781277285154828305732592316452272108030937739127421938912670755388494252142959019537774711270442223402553124915351929768000588033994737843027711758861556627234793404935896182206746160643576650292788975328717320613849661340511075537841807148964078917705249045274233629739065510882395051736985777300250362107073829009258829922943841807250985005432102301054322699490309031972960550020902130940172816577378557799572880818430136917690277934321390636039230474673773839616956115502214756301487235289199072196869485494845240314889763647443706934213533815720647207263280944186393140950184161887938325788712767737244257010507804677190781016818956524361050887927658605400583594592043183594855949125462545351857858203508553645660926329467145841409246075704410984767957421835049274800623134870603377521651912079184455731659626680349193908088727418961271568203061350110967983625408668655444301980896770392607589019198653467852697611356587374997106978788743576835113221914003646640938458545472932560424745061294795642917966541313994330610431429464042858244558170689857638354619044995069371114075627587145541932385968237419785334086740223552707752280185786093178691216151087883309894383442875851366673536977823565947327390091311559296997739788971320545474658493059060315319710333363474217519623956904302813116699654871954384620873592060163398970553048146145856728992087246865511892121994864386931681615390458077496561905900691083633443058007807818005452108144504443137710304511113765281856905588286391216659675743832268716971238916756797480889559679330412750448989244267583371484591148287453706972877479134260432065820861324375672435723441036594054692365093768340309020656364242291106236611938924505095356520920969784244676765943886289792541177917721684906402598608686521727238651578497934978855937249166023869232315039049054106511047992945721041820075697525176131673458299331283133703234117009989117599753004826702201666535559051837646983870734893580418668274586004856478120795350566749888964107135807157843287832460739489840773780576864364243014186721007699282767673680268353340938217361388477796125807117242724559640772429474227013604519042611918680504494464611770399081459721738275375403400025835193316720129394628718581702432291290110275168301229513985790090708696059978476535262652543210953281286023920141968526847616121749878220987109418519150166282676723126727550678607249339491091863437559476996484409951389397550429011275600042218839872186158294142122821873985201190093183114684571582687854017856011250640248259115700155142115096278235927382680962904663919275652797085425754871420714358045060297299324100057534380674964068928970652937303364297307882952082488076016368614985242667246001334730475339877184407446797352033602284770828526113793870757855349808837604815232605136198124960866961546887518375967721380461221300495334165194805577384650814088890266335651777806200861337486939595065552993145700322771845697035021819578299566171601065429521646165767329766219477130726620797491650517179405850294206741840057302230058000287774042751228149279389548989270215854183414956692934411963519482888153419771469116462706220908588725186235668651702122562896149649693846169497397950595749643203634124983478552473884396442199379175877669050903478115330963573129469763850893848277162164446201691676227827316790871413984528376374437467367175064782964885493804021945204158543793378859962567371761060770723688355095432146682059074574727219629086338206264111498987109726030751521331092140927234650751815324667645181201651366272062500292297433449030776737677772082903857393925124618976026025416356817908521296895927384762940438776198006897789354693359138812058573714819372081289627943208191772746499385521397243199191805357194818366583807086057970323182464338940436371289064340964449900891267908890955837645892776522108595973376468525305788540878867047051967131500427828678000726057242622319570097152917966480121684098276752952291281559601396790142652399281844532373991215283783740352506398970057380021116012324500249597251889121229326577850204408412072123467452405038029649863749313746553430784110573091014897988837269843717880756517870545091263113805993960840649241847124719440040971252244494626123035809164450494817876943574959372089601920147122491172824422433919230377251281455877930466844222113080983417189522924099631166233156612086099092584776198580160368322179793669592660311978873427563932429459657288760963845101477981902424084482297238357638251074534819610299365493908690699973841360667929262918643932457310335107529550457661365382933616769119999900542048421574073351129713200385267436525597996579664244629170191421272223327732722850984427800831064452981645033813069661273694957115935432671554749138038528072748654062110568934730592291859220477595273980865084780107570165701730998441150717342307885020350118360636633394167687275664539803563581375212345194818135323266394652084554150728549683040257310337608737146490275196080612404992012463264454770130848996428723777656327399331420063862084859584590306071360042036866099820695822580540691971708028967739291702706411930413579662729387675564508876073456548031919502364356568330920956027115374449856852511983166822317363403254110394784034107728677907397011532457577166262048879614289736922203257730005031112096185833269338339359955157599021170637903570979463284992576914723929211524564375710904783942617520829413398472978215765800932429845902818280497074484550689984345324182442434639849647631001629088593878680155074794066277204145703464871548906199058090044619514908289522226691141343978288487070233631191823023043537933712719409821874914967778333530251255106951843515100975453655911870134000078059654706608679059859371161517985479569908593115403544881567227115566685091644795238390149734431753689550832147320432675878638066130794020048934425590066583450739156654738393658462790806837551834270570440457435955769593885969930293294171507955346053879431741585375701650459218195188302177257827172087701490409307204730150315827798235004444370403342573129536427551135273833591212851457495308717244008961155785704830430433224665629365904696872484282001609580045516305442092414393990946614843737749991116957088343186899639529713349705156675008843955795750458114985411012018777759901805499217285487863630959451698024263945771663689120688700563398188885130591039856242061947260278832612733376311494917273058018592539324190942297959594864766980044435028820303066933335029501329218942426497069501323869506859180060177373180461888895048588798890221067374117025958484851624728964011543357813129662075161167615842978376623505494752821984392044117165369650596014373677941857214850159678070803886918338834348723049283140438772042534565030940080822385788408768519884296020930891846971525913067611757347049244894110288431836869408678128210661487922982649714556762877948553011366815389358634588440188341145590260351269173072606709950818884847438348196297296806964195716834025379931651062577064554283811211703970667720141961601956672550556398173099363125959715839608839832720701996873448870352483540902065362442882010808015954716222507957119533780779952141754127274080952593749047996181755170125363532440469174447823967138994708932116702900822119813393181976104263054843590133686830741496854153650883167565960348239307886848408493146525130906197736008174484189527134520060636629304565475615292738903350261290884856969575486573584874620481126541087726831313261943499921168318901209980272666623208798851714848469022242296990284831405365412747133038539531158271434156244167408441177525049111599617708147897433458810459033390652004171176648746680658561587721636790734987661169599663714860390052704052248288106599105358173817004050548326980807478506224712432115075732651056568938455630630411461329058813692048956127260815256886600494082805069278940267002361034739660772017997036657015207459741800885306658061511319554598353011875367566794039328231244217506258758225523449846636526156037962552815596141340530818492069461752948510629502577986392501621384342748021664386990506666786033962061489746536736951062745882447314943866203959349671597635262996360596083127702482948539316337885434312021072353350628631372333038285377069143637513927401931223985062088035245737849226925868871430968544344537744178634689090637282114488346897605053724179799407673066815821515910463022959865598207939279804711854174588682317315198089261134064848059327479082432635758240436134754149595717749723581226381084838475944835795932466550720379899693252682053948786011695462054655641399516014629791053886041143916919031255859978338734937313161104678148353984557364791854582479870997957614500545387908580026987782637343944965979594219324371513843327110858745976801529548201290782377005924235839815239828198442623075848616372014299527403102455535194762390833676349556589478317455513579825011180799341496276694780487417696449915269207252249036129118620914314456842378032805826862277080935771721921464088205151250065468098512164875337795838301144618055487411987332601566387331887997019212009299079708301869012024704656808776981771328650873678308478361264422403551560898539698806047062347797491185532682808494313751963371530256170719223021593436264541488576610601457969401663946377521519842582446349735221311181933518261703322524000925756393873173514555515777044511814019971799845693381868597871287764518167702718080987389394070695743951349918232743768979150305459022510709362117341968424047704980453981029948936346963949801004186988757612307511483474824720015577748113651873290070319814473927661431448141815361074116473362512062002363046376842315254201899030321776207531444441864716236718808092185807570022635667757381853130275559529557431268673715004926876641756346206337359757213862405643810970762769617270682317822620177174416456332950040094058511315979461033846423913885705337068783245958163500458385075061300600351030029897222457002085525401551365172817550420835275753318825506329522306090582684380877111572234992531867111082074353515906469086512463765641706444141953333255482198825263122872529984223858971061401085240390508132031992619761832211077748326624558667624330040377048565219223463453045080972121759110013686587048845724685369274700963281928861816661807320164035939636752238455341010321161887220558524599021600542116713819621382636436303351067352712893249591341278497238805860931763795292698846278156734083150003048605586632848730871692629634340821340186324251561577607897143236818002067389558106383182421244415470058139949608069221509866711327698821531309806846192878371553445636303141442248017166363276533511795762367422546832762102388374435303308829436978239836489764112060524791390889884251825169413656105729625545424576232216566104075665381040301052050206765176007512673632229158229445568053701686489893526324153940296346970125233331497348888351622884807337320471402513203411669498418218241864025606460011006391222092149952491334604744288076794570841960139793982495203648899724474450594798210277714046458982936069514160780670124453428698581512761084359362293145470168464254532804244976048846987793196485222315683852568107330279366585914584136065911144241203916875200355793768782585369387583047227552913318616351276144817802849118182391164213055762170760229556770267367399065313201013680494914726121689493592801480478886361485488871113682168558056513893326330777235000728047050730450441803588581539997326955594269191180430987774919788453805833155217639427610098573519054286461920938554057798480866373056823418670419177981195079991740059858451329717262293416688225653693607103917110137729376083980365549410666350910816405443644469346220993728646240005055860913067273107349794746835547723147441654643251232874361558937573408133029786688290120026693907653596905676459593598785925919612689086170316196395059802372665987018928457926462660708282003195346062830921715393988090395035837481915455422765596650340175423973641233663677604004312031360009763194051418488433158454660374733106030161874097406340121870638080979789761367756571306259598456121188136993012848055521789447550138266743358904507025236069014766068864533692868486710232074816174869129731982297323705945466724391854094520477354855469167439749655785627395225811535339297414022297095070357087661620892546843400372403754252967780753094588524954927750016160146489392878242451987514681653634374246592763245776487363562860260281809571131532195182121692972076005415475058276610789938494796263239287406361161209776906512997302734865756807310370324297680631298351786648637112293019976374010942371221129349357061873875929315099736758426027969738171065942644716229686700912757300800060045075154411727823606638355291459453314026418998290389005938631470185975838560105056042903973664200302860761551809554502233279976323137888469647133198493907163922085067922802777400939406186377087352086198702837049048006827802596302711481365942895599071560266141021881897486627652226889157830731393563455867938534816375309708040864975240282418881789633099428980872320181222929933597883350961469750989030482578706956921504921576637176322670139679686376668262765645669294140819357135552041109544796731288112499720752315835002763201403560258180252813730663884087690242221633114791725726998603962221612095628445347958209566586730805974104908012215985585923158907085164194648448829231708111963481057187317906591102599958821343393486908524965618993085723411383264817576216085362870951100284097095532536509130353316689284562618804481040380308985798145435380291624690608662449444431328897896962012341344173803854677773744623315349494100553610982855540970061442160169935693686891870663869860099961073043086813974180044283711837299298207308179920245154378934109984433046102664865431980200993891252560287942688998603656246898448770037552070815896888486647368017047804535384146552545754455429713712231390421623298380776547872256213485014795412859604754686678003279171369203503599398766324435886289740450143099941146205224600009683951346594465017548863362894441158196210887437909686343483242834157991923306672897482504287976559522733187345075113630593148887707956084191795121347405176118360168850239568859882002055547921335750154108513582480673498953246344299399863027666661117146058209340438398933193546005137265204917119595541080528844107572761846620277327143522574671265718295628120504554669906799534415148437379944736148927024259880568227184998420541983883127697811225373802146480815167447599389207777462458780143174718672369014850428604856127111808173613042783510921905003965754703086939726548218756384484393145809460709887915089872807039332619377354518586581078068299612426068558022585761998910215731424926351889845882321102888488992565032499098181708776859982932506202126694934365294316821089523439165388417053847851972862309040995593900096316022746079329890004194681158107860575722705869212594428265838305837502121308002203196900040032807640171242319102299479224282832621462680995764420712017521594489334829839944770723788437338816765987990893814343054252836603225342335396868539316966969313575815021576289564331870257212033465266378764998677096112109661894840536026271893022721467303195888197586544118615436854934063568181394066767002996357316468967868935470852908980074415105273559686017922096630705722980199337452399467921673191435154289066320299623530901123168457983023631661754346587309097120313103951487683579353257340614631704823704185284815324522489952326693119816608731300499048828043960194086429551009930213330967847658410554423148548182275721185179900752054593144192577368640297082693161456073973011750589019059031092330827093374883003694763538556404110158159743294348605127209964884008633236649112145092931790190520251350516908510625896515124899784367048771300910263915106623915984790521847700472844918031995512267769236571001356312039742128383172282097827481241161446025713163659965639375108507474956679118660196350834776478126178233370366597924901154575626412129175975554934106863891761678387927529398655833482893494493045257987255362866231024978222772752483109047097940242443380540680662484511719400940097625135554835495569003209705780055887183999716965478922124892148717727042731873348203159696446052693521142598679060688932944624479138381082241181200405878450444921041888179341702569292232612066916439627101701762753264870730114669514642763997056550146778235000369925638389084483183627837337226315977013134732911797652485261550152643237725030258344388531093564248230834538584808899990869576200812099433146093763216048824952412965906678293466264141870580350133016375379214083534721837904681282465299001499638176111843724146149887791101911835847495694224250958282477837474708919024032530867997921064167535467274722468545473374138209725376827652223185863038928605225255525382937508035657091004813805461919453200713161936302068478554990760463035765047894720963545549617951232695550577246976725334099955489133356206895213067808105260565884826815547785057158030189368070209682022466000253018971871028537176358760476761967504599416867051680222758860798027959788467998630216416297414258195429067503090393382025725246369769332592440504536759070110118314570793398848516661873497454691346859873618603680611182671039262122892112234204467810767154156233059207461253757563409531495632850713024660605688534720602331587330276615013281112142947317978588049421685317579818122030515889721985799730358549223086469199915611385815157119889613850103776632488228036942779470448626268177421976007873997325837712764088770540868755498026026435171268458522597589970924750867696219181586717658649970486095152458970529771675219048825329937376338660857104386465975264534322910925538093817045695921684712147396243945641857948560178675745905589652112271202592803711070738710825124397379072532746528541982234355546089042042806096989533913850338585647482993534020186230101860581823798810328026045222479597474841253094854195953127840394190798936741582528744386321569856733868048912698171523843200246671813421328032143916343799464463799885591957959334316060602262169960503165610736343949613774317617112052983325434601874363517224535171408608011415559709923103395641365814984485939960375611467379239928816921740534955590028309641883556522577597639747917020539940164091689136998855563843034745715115388297773084819029572466254522457458052125161446076417355053674079662282944011886952801102152207280628019961668215155749379600778655767573473883956401854341449176233924251621388809862393775432735100428601225380093118066663344483617229435275271240240441985472282065283052162641147912726626273698128072354537697108598267204109179730914633039900678465247159933358874345867193091529986629791699563855781458155881842392906678909286936958924515536015934580717495531908011511364487091793503848418155202107661731696643755143727821222744312056908993597518092148444739360979932052696225404881245899845365725557474036298654713725865833372575703976398965249458844360286756660697889962845522684243907426028680275787145540729812805152502063958385387593298789532511138467566715111234327094440253498335803855499733263354018858252803747988574129888110434705626046682783298954430276474279775474202444243168297612600467714424800542689525860822116185581374414895801008257472426728352804862242295244765003510199181530052781739396921651073106389666966612245472063593371476966148097418214802053983226560444677522875345545702005386343056834467298654953811465407882384654044788577753535691948995925641591152502963393832753053250993839084335340293850210569473449252943543834378553040138497270028329180452096507490128204470713794918737833879546213510517694573539585345100479832176855779845591243996429700422988431843557452999874698507627451705022741977189978079886344812225340354119299436528363689683153041106427917383162673833174282616471090152494033276265661178539088233198274774190524198870551931070514560197191053243778922778281284483633795068212321999538467708193521211258037293187007407063781736165506876492246265507440502196426437545075744804074445391586003394166772496504445252137551482787746963256438201411196457178061415484943239552117333793592785222283812558771168246569199170590501111699596502574268773566012014959319573023045329846549498175547027525360282303519744028940289908235525195103007821342713829794847460755001747784216311231549936384224405471826322393285082941375386329216794299574698031212752440147846249848229586700782426240188396390792036926595316184245886188481411476595608279506765916842770499087623213806650681052017912711241357002703445567130962599704634784441459830833270320879493132071751335489399131481696767037159636081296698683513183225990037696213898087526556070362461280746345237418758127090288976401847035171212107655775394834856252780795155715823211937847973660633351916961225451059744584410967576051999620380886049435678450917837081190092566656811917305212718511351850516504590486989011934078162887124977887169208423743921170644466656501068702117273595496693700561124757475042484698991203215982102408152401483415164125290833326732578908743743842698734091420341746270031212965751412934806077897247147080604580590475038176262983885087267036963286693085023102357015131135149368719100261408698758455215030536953085250229299947380446252277898230539160210905717683644457576358663966528983496201648930470766004827166404043966032054050680571547106117740854871876380583797922456899806724144558393742551847027738483310578346071975394481701430054331645512136289797056870741609844023744014650884228308928349213604349505739651592003856204303499804085095941380047892394370828451453498504735534561263378909943918171204310644771233944318208724335298930579059736755376798364039816418934467399286780962049681555600566468615884965218827017803767505854414061063390537361418039450860397374457334714022478849202280750604286321732730590855191395428018133729814338275327252692267883464829209599208940716862875133046311140128414756549380067809246717482554226266134603915053676831521959578715420639667732276587184064296112237811487171649088715980295035296689952401364134755134525534130369816438310736350108899739901351103922689027801447359964571730063624750173927435016930370459848977507803326618942636623824007195201873260791903777835081331467435157920892310623296675529234789127101237242038418109990812207008859580864093142893058771478083562118322955971124764625371314407099674900542695284495749610445308672634419004677423251818916423107000413218758580692091642242732342518994486647289593872792600136730714047219674288128454656952658287038224537837848003401016842820290620858462788459874344871923547149753694019517338299753527475597126962777673692315907738468009945939220777686755717859286686776407025848020749039784025659783869804347099965983564487603398760325379200504299590979585169665064725987241714573983935515530107878552962030820180407892018825334079667091663764121341970754058527445523306986694393512471443584572590748383001655511067204054870882944257822890079535599014138985320520393198499751308723126322377844606418001430198206387784423305850414347846145209789297033637796827515169117183105614069181286030373997750957966719796640957684061913592345084582312785331536195667985198394671684729896168798813259725053767648162142678660635075752837108716404401263930278263780964212643398215523300301551445025665607026139572494378399287196495663859418116393179456893071698545760040615886670418253084885034938217673542541493846299646088604016325560859270863611743290975463627817921783163760844337095065308538289540577023618600389585813127665914988706255855084880818598775739271563819377107236935967766698813210334260368651297993573819197976957412363864177269447387612651732607717598967714319364088778731825554761078734862647778653769798498528568815660746235266507805864049382931227123337657825162228942669313848902895971464691079153619771682487871266413184642901129656396597281582592103103682037169392034589233752309215941959129257746104759637447970217600127421606067826543718122299255491565195495673917123645578682666285095423586293481202794055013497165258945696538518790796606691953721227483047755188435769965547787706821549690907673752165298777640537688293854897162163009626856197027651612047068751449435554381731120989723235841516714968707399158991818928733915086648744801953605625445429230307012022948610127860421660745869588416986801399686988360300977622961419669884584103910435837362988595137147293625350717923385249639449426369595925842971920184482200253277591485521609594637690171541525789420571307382241114032473803424172439055833797406988670643579033872059341437147476408113072791118014046878139615060638659302700657005066480201176883813250333596000328036465547206882674754879627332611032705045459453123459060926862084005299800394245295466358640743738388146972558244512589866980414344326742242627090980310461173675145672948775381385553656838709421420474178518884864710102425939908603301854821758762091423930706578799995837671093217232916652521515107621163553862395097898649398487611374705384032949546112004552147792071181504394416545857509855755229813576961131402009788951194274389421619707355976311291112438574189729008250937092147504192901468858293809490588639100198743752051642690656551943959242158838821143984038485795199352762125047033948341081667289240846383643388091713263346203619634103687740477281496610768892998606863591246577793924451193811712449317502557316109535899934278106764787592828805911628670751404006128925385016884360889720636582679942050440383713637561341654102867294926320581612962895812257269703992171597779453061925205881669493032876769991734474365004425449213361919117224302952452550220236327899556150896541100841890438112292366527942501738164625492692928711948746975283026418613526391098652974839263341508939243332688915313784885512653216864111144824223760054226847227893246664707281464084728190705274307485928761984098691448405204287592199877027795728421998510652086031092382987253876654611340168828613867762123781757634527017510115613731585602402513465454744334046835159019720336041586593118887338486417018522205760274283155208680300720575763256294179260772386594946990725435521240677560061082042906308677244258030411981094980953450601037658374795566254740198122371248878200112032431313055080328437167233569420696483157540766975256293669268005586097166411141002277645300605376364516142662281383589433492869217484661927288170006270405763926448995888511419311076126065120115869433507730457743769801870613405983532865925486586924576339534578254821869060802629365432532586819468606019038140642367581930744539138184279542389002611244371385543716437626331647947244917113019505012760632170399202218555632243544614266423654137321878327928443264334502949962666150097432503290572175892019168777445610987110031755485420805576820085059569049392874310829383630798988010543006655677474467000246316573586837242962978192274730441091939607657217105063621447627150104100136383719840631864523121478109211768459567476097528184002757025894813704260191092081616470349282747730472677262158601776423784541807070660465850213361147798252781481210899290265399495394933691389500780916445722863022515046627841668188745067555179337876426414058373291921275978316068291116407268107135621420774398907139278610503793799876537945135484650936030424144996981414830556418138510073879090079201291184120948414626888987409300712732777322403296753230729920623191940519947653827893293165587907273804246763952377046376925856520732063131211021174039218520018183954172380742355239734801806112551821894404786626559002052598502812663477999111516236745637648539718619047281219996155714801184089104574722877468038439174621138125548577538337497282266077052584006781855898868811535255624103612858175261249828697955034950496797107207532892242540517810049761339838973332074246401349227704713019027352841693917875311657154736063004244256456609413138887767329378735469727206730021194725804473231052522547464288787081633767105559641834189962644985312777519748429541224562626464701981880804333122147782821727757317239875236977258368931641671373766774935095261199983282577385565100484437515225431589551745376486443969813169848853106019618202179777646991600956608687070538992060759246142055458889222359002539378466783483818312916013697546386750650468930337022884153744329808791228649609807592994301778221511130636094851281253806950475078638435234446572983647458784258779613410910250843439150377374404517138247440431514263322168553589251064802893817585643932732437193195415242060805660583736622326504884208851263685283517828071007951141982031248794832096484148569971045122676347494868818746014336880706805784786982055047023977202320345587195431866631485392568954275201684921389272760085998022977806142814188134706154939402914222891413727488555168390902494625132167434962412433112007826947031295458928029409008041780479269209480792886213572621984219190284736855594983902266023710444637498736416701827262580797925291144530956328546729906829644145937577538504392688179675007581994953898471077805319522982659810820249036719531633096814180538015130608545818714002721560563839291578600101904055062375856614038670377599008596320850988715783089113307863270010646206096086411622094603776578244548331558748659257887209465640973301926174129280034414105675552503202451290854081676369084819070630867795250079011582461824109168977920111272768046150027745208520929573472043008183518374141743267454785591514876782969610033446157562309010003765216200887854128632537321860139806590248140793636040779347724419724582373053803101338876966468853762556205394974995334916566662650866334001557798998935429814176318006081245294290764994908153736191241685393700036232718256533114388264883917934149523790874927288188318789804392052057353736301602469081496126111403975831726228938088135183869174842724667696282891837911530237018330032929374112577755225879200072156269872704188471560782227997492792055304864288988473404615690355275487704645397454752328970863474913737368902954264754035713983889542032631789027029737140392892380951184475121856348811985116569319385715068252679571783355513672421792695996166923420207251012242222355431844237117805706000240615679675998016967147593658983757398063148485389414450584415961956790184239460287908103434889960592681653403910855541700125555148459603705339768240327753291291856611967437665314226848956708912241800918086595339543777682083339354208094157002757868893598672582083218542283900028403135740761315374752525999403356324349205970410596006722110032229795654483222901983916097108315848795596323626140019321332419486120938026238086551273301159622896650325356719795400907146247715914668919098623423594417950065105817588242486274548684436079511457344952280766026099475398503318175190438192969377875823727531836304439665108162998526362895777023031293727739076423649403467121676819483379673595841587361399550211953625950571130311307674104107748633296339076185235434083060446000014236752629228548019498179195662505142608104909952996264512168148177710594661425048426065393512967385255608186371215314700882390284328759060861847799403908769876002925653888787675857658620775001459107738294239833428614772925749477013498808461731648620368025876477894820814053549979572670279647880135837709190185687610035936128248302967947891105926753122994305478969956494390398753116931619047361386598808996540563406238361457643155339145841168146640044300981695539354981022595486517072803682872727171844076392800506586807626401149747613336372881364010221653292192993036659527468261241351049370598531977033263354637115434161718144348750522878391062060763150296725195499756714402733075316287176744138810133025975299233162877991833533587934958118059899979183907881028602286057075289873164823534738799202142383973244226800954030590226149457017477575697206020324195038335916503000062891695985165206779854392491683664504334512057365114104454112922656405990791225544447208486413908822561214116388645438168667090376402695680408045114786344006614534809934908868665423685932484574612761406423961704676798165837907398102945173555363789156399674426797760549186524818796861759683463611599089349641741905037567368019621455585341023211939965358676230856836459254163705421675301637126005459606104530598927689582030048741574903197360634398531667098092281347789262652446144307932259174791124647474021928625597226023644019164142294668833329125425906158070517515707727460867609005487788206368850411671277999171737233878752052261527178162460353081137942465944877052513142408198625423938099376268543018157648380430017075733688703956214642779816053658586448350091061185773855597478617544049376080155371398242856122944903164497188893706635914955247591393113812072498724027875451680913029393857722761970310361421209588773976099383527737740869298957198285728240108760756954922295249532084329310145073682170805282148765752419527296669761296811515546310359401465186318375724814806426205227447815693462417167403635458511019336153009782298019912788335860864678647853875310832499105938740549481935046801160343093152684102614345060958126890967705225307132350091723288434385608999819150065544269137361562334982236166781563553884773179204175607436476963005764636459683981763503187990466697021497432434962498783223766504161531890815359313183684706582752819708808710802117766495679301408810296752579048184109284447095846688624576091395963590259628468684648482668279035670538653325777110836457636373518516215245025775282086247071296641591810516686723888784810301713749251404794670677066370424718332638494816611665913002482998743946581980663655025082064737056994359635231225680733531872009592154901719368480592998408181910720559694708986353131291614280628210604296219681314148076664648270600757095619467366867167538479161277589913141908599005950136854018092121187029281098718867035393835454625378113557738302908226284865113163966862054230557646963731178586034468549708293196459449314876414818753762433187482027471287589274588864259010071173826573548887752681292886745079280090494375309557052947807319153046416720027901709617475453885179951870991363552639289463886810059316853964075468223810800919901872862784937459649846714741175342122891331336208821768545601754222685583055363725716563282915184190050942154616911392195023665276324229506471927556053208537996334833528577681160346793119793186406598920591443635923505068051793102072060152803681284601705665512933409472615467236669294774346902501677587196959734182844166697026612234021329234004561244905875643165088048010744841140500726008667634033210601007394835132563152649943978575597146562456873411029592835643345694800901446289814729835358844372173364744377325886186221387552802994406947942850282581330105729236714424840373312900368566918908370773826697187812731613310832467427190377817955793054023214906795902084114505125477019149917012499309708018683089864248686340331169983491929886664355597490241788671078915385973629263707013612765173583096524581181797734528755980448815313183918713035561754498078907077772065303218001834362048200589274858724455558223550498686832971280276152496782719449155345011110265921258153381205361981926033624705844418922975154493246248120997960463203796692765948728766634513923628219548287230226445192101264252596096269687270550684048810464355301300614847432069058741389775497295405697676026664137655343802134711850222238361524610989236469185975177601400420356558526381692444170944781507821715624532825676164167800113088197722106430033598225286300359370530976683895306275584744507498269145287302554624179364449081776799833361790406852032897554096576905820288997713873527417752897089302389141728482449594056651388871952582099220449042522255672237738298758260823301559073033067529141300493228994658579785788493053432585227055053372620524162854790121802271713193081000314210549175652099804242941485322809911365469797571277339124950256753132625682611809569955400938198492964701403370522128607505746097322324400442394062812849054112571363208143748766599128178410624772607168524511638506883415611194317693328109411337126773063603913955856627511381237454236615919759747322702634505613521035514036982994194737315287710154220342136485795103832281838884878225772591559834332985905252716470825469908982971582353789341234070587102349520157636876607579469598053515876117296407603083900775604701054460671620069351385075129430072159355842981146321962005214086774003630672096317993222866469103833772146883909141903858181972864865164775778671562304739729114153899687802711554633064102852821911688830419472374927414431676975027578117023125097858380214945582278600925568548660985089172683681683068106650144687955950860044873636630950509786718030382039950694952273787109656975120969946521508664392386769939094037126966816831526049878065744461127151795422868950993848814511665306437816601197715769835062630585440156032805755173841512266007741517119753084795963675192846686348585263828466218390973333491896667303583413534725201554438968316180800813419872683515079603735897695113893392766826318627422972844816946503194948046198074088486836674840714807256737124437176470761600905429544050652571719492766007616419418366635535489590719448812777024715999017272669613114976632179957853755029252752722407679837186393499886197511945001593779995371104520972808186119740409520397798860627338803751102134867820549246612508549181003691218800499486859987252471430835115304070531053700324418698987870400158405115500140982931132907048348470122041469517110678088834572657076110702081499394222151250800990486033488754223831138461714584303970419464436997161457475720133189876050696006105120155483205118615973364019654253038316829180635809084738293302287611771607180311809686670466289109632469708799164116086963425806864728708965066025931344271661848824694588592236400019811961974669644003014782221306493358690904869833442597538397249957632418908862885966439493584351979779594028240653332452270415531793430895337018765308852336559352578288902343368265956243137696778470422768981115139151772006859967893261061449416171013918930112547578341607499125537508362430570543963923595491647683919883877680307331539280585244269096542721354147490093462301533622209771352546887161750689331275038177890416670716558222283226179920715291108146581013462122153989594069925908987381705405405533839853141643620575981305738110888302490699777758579928267328885365784706908890721169592302820740459211934537593536787496249568665771589847691229062458405998008439656304260242851608010062807849289077558164965594759839823829594674380231894966263046430058058760321099423602230764434643811867204744850089894029550904845825820913648409224241047193266635901709742300604288775872986414371537242072520177382035579413490574036138578760121065937565880342099688332115394979475161215458779244018709360565333624397595955119129427019245699584751090340208726589568382507688933426472780546502654241437231078603679486303879994672428569057572753448158833838478695318975989094707004154154744120382720036037628078072843258495381933793955370465514837030949988552256774494386748199188634243901147369139022448461627352405787683051023959155218080232165654375954678055146076456519846877025595654441300746497649258811441514081510485331631610897152703023846583774923794768893345738917082615354280424582913731527345833033477231848546027877743120810754195159399423191034441146554828662128754607246114415766965911305030810056922191898656656630709139089217261635119470035975005443472260514329033235728012924154808466753719848694470788531394177626723169852805412044183995481659701962868941956567265422041485591588432171139728223246596452675526477360061873279718724931505919842508113545444017839287255031039790071813069577471283518322829773462159704276918243764759480246332143810094342215657348323761196428243531020968375895768781797476241798265236891299578830799620720593075014990710920510858440141734358831346321824835565419225671895217346040958834144892842684812092143902733447839006449792384430841413466504253730054652737097973887684674041931015211767216031092095520599167318099958339985971090568145372542879695051022427851687416129595553413838212193574733682451018812943868749689230197755617412666090541614290109582878110899543894896286195238610089590411987172574655627167429890929563333636084116666230879300582238648518585564204598915094762365522826422266690424987344122141560452725602581662541340805009818169393659988676514755537696052348219974061532306164304550587835662676671537919248816129898792026196808316506737360116976084459716862375426555112147601291951687614062740311915711784867638953578785131952085070064393649951819948515083701554803680513126498979308955769044949791036673939113314205847374262805671134477978739670999795656590469723712228328980259469491682383202426341593325322880778390053388391201593928782670032924960205427633779597271955255182233090418134660423454405225192389716712090073812959569304680601160286515359777005206728857738439349048269442210396482515967721509730953563553257822590820069995462452295396967413961948671951656435890656914275905585746883225569520882031933030545266490959076266191953641293652520071835631075817831081008973037650293981545090530711773654072009777632388596504054301676227300800083490360284430483687432074870963011744933088096685724246614278581554540059430387621299847651603904677636980363909486871030196025306331082554661108150722907120515366653911585917344451407708595585025326595078126674606042277240545232400022116830621598728165053163752115057691314672325754399317977880410093037688095748335987965739534988173674175871809508457465300793258535939224509966538028222311664365422012784186630462715428256778370726972985365823039573861841726139511867794300258773945427686819485582921328552212757797337906786489273421655542826818356421821208108432256277605717271733733312746781259011537962869696847054796117157502355544738469026476969312766754135400990661290743110443502723845260509373598556076711276178497223412645434520630217554463247939003851395710232655243482109296082295283910283358243771193365597147168121679928804943632679098751441733769674242381435575131468087175903907490002418196088741530542695768769922473110691907168719085249638124674395469374853356875299857119415024864701068160745331654732056166311301538285457124796361609426107489090618002160696472654126455313835400664460668143014739009965143183038140451393203492108231095148326959246950073206433104648057277189191308312880777871130009624578879923069686672593989874470600150519391227262811631026415552062842830370827590668000186459117719158389951959878804893280916314914284888647087189117055945650078204709279102751744179756842171334016706868406712762061796497826754702533105410701628701896789448326674228392033681885856707982832260009987316736562890615692321420794007279360614997739085818815514594599732292134830834236559602859544218250364685527091761406807034101086104441378330649069305825661992982396186994621291885083272541490768653602017641160654903001494253703322862756272487768934736509022109809357412138711243573017595694456407922972178753766350857308152892269831298484888068739997657603804447304248459409199302533435869839476199208054989331879993831594826652897910190487416623587318816751677554256342157142501080972822570859739945172427242535427915951786696378219329084333227760487659534934754200570737173363044398341053839073745866397105318751885345894409124457982678780397504386598589101544659594265569120066009700485999032292589429145051826910196946067730535220534211411506507738043768487130217464433826045053282928747129221542080900862490629436403756534580451932871021278030965890793777840557904776162407947698705630521201093040072682884899111046305979615384310671545367748864317923529530247146090421120846893904593743788160434711439709188762979674152700476025908343911489372696229372527508020786281675021904722239409323328942530287332285605002128380099510883200554426111302649111964386496564089729665862541759147934845596043246193579822309328013990332120355083600086100882208577011650920398476317653108710375019786232786150392638092527859912433945108737979186174651579558372751973586257835937418501110494258055089924787147738391676049549736274360670190255940880250736668968252836434772062934161905423739535187638536227474116312460816773975404033666296354735487642304545171532146531099368797840989767309791139413193659978980576628156016243748852661709826910688125050528216893205074917808472276657422710347395097586257384087136269879510729369478788443487173969591984130619862917861480435990411553653586318420404511450721132097691628378129519038231837679288846074386804907325767950847426271418348156197055233011348217804174429841794195173912572915354472112014364237755872969113526086012217937829337085431103096099143747718671606955218799347722375434394523727645256397877017361915203302509936587182385636246120209771638783372512429272504136482175573268153647670512425844978069802870494089946359859692788958886925765812113347765187775710948063986566958127200912070059005591753716753385491453595332344284702656744883683656256909687715506202070550639550656946875721153521891113567142160558301396975680704648911240059025368885521687285538263576320823991184010181140863461998729640572283831339777614417814037478320490364892545368809450233269749779474453103746765064032645846238883670757680192426406013077649815235606553380848382773646410926755655622431594036907488405561871460715224214049320193738365522551999391889663668022216599043051944284171810051113409843396004415600359609078669273404015675111042082946758750057906271429802473106199915842194797219371743645229480709525174017515346204590749242171162721252414047416222902149447304368062717052839341234717515229494126596954203616850745709959782646091264345915029310595174224901387660233073514547850231241817301313735169292556451578197301850452441874677048563712544923544156111587156019638719341058730715214664290742167617522800503263960604363662912912754855863495766922405027433870014180213772738621388421182757291736115659859109671147084963650952999510692093538826732413925868510290321153429301694558156560886344052211359178703975461078861577627095512395955021554769690426609171567699832894798642663743565945445212513915013293384815283731304446713859325497747011425204353910912428448128291272782413519520225485122346391977422600363289888885116686747606702201169340027933219955454869070121158749417700850468661578937447627531260304337294334753713035883813661964158196777215795721819204995483082773379310699442117723199519348709524699779962749719087113097056039222673279579934333268126208506151952016003404701663805103715869636479717766316352175821343555038172567805464049536664772671102173417595361624907755556760025757678476093106282124710237586465942469730460660068127316646890625164962059231733278237744546486039278646815460007360877321726524135886929625693180821595459346788653998796139177102986261192115471317482480688703785349360639671529875163655632927262403340536309475413393228420453063011372347936015145744535642667207362026655858505678447429817777655360108192068596850028799792882560856904316282499069826916297471799950140622430476683253633571430519970224685331839249334408823101682500525552558664783995043887806855418314260632819688426630200745770883663630559195525704938176220998609887439997349144829557946178307914752555429054044059227281164840973387004563798713517064344598213922722430504427441084767249180598036795274808887085711057431203452940672675754151675421390146343443646333078255468778680377468422069009866951775477653217569401761330245640785179531462134528343972588856855402065278647807438962443879128245551787875814622252818043642910476420086323169345584648466899504378713285864668791070517070541500095825753853679343598470928237942181457588518253012236318711141688507303938282872994791175246104147715607185671556606795949884732251694241011489268312390740284569996763468968705211496975151538657885973224115691845600361040502909600245510032833502894702542533821087434546271710132750582011955744643697115631432745501852424272457005535400185131589224534733804288295473701939641447318249733319289542334231369264152958934674428648335828167108674485418051600926189480561399936509364404279897169003254754017476895376857584314464173110664171108079884550670140657719953190263421640579551888462125436455893962006877965043337806933377539601988589262293790199950653333920542677049522130838880575157628459868572355622203351226457888842696946774557507846856814792892599478538993444755545371287001860194804776808310266492830415947935998568059215564494249109372606115320605583284312234990468462798378761777118754458007309340720922082109664841132591084838508730790112253444446765105581990817995239837436199088790271181477065598199243698365922791530807078826782783116628529941065796921672649277790840786785905704817216299980439450654305551003567596623738447000556379699496333592833388563759716526209799266284209424566031941695175328837944173724205151374856766578975201768082365603448810434109694789605039416852282088244679501654058352707097636438374306708110423988758530019786068585254070980727451441763443629198915301824670072236063534619928805938797832459294726000375527627342959996531641797250849325527138319688053356591707182941981925529505314301386008258878029329458100620521297286062818956772557000537899805628747297935223438711929763891017148306731278418944889423131102898465666983486048816731557439622916233661789737902838634371821693343641591933029213028138833728983358842361676399066684587503261051454170067354974819436777105983280142822195435353176091632718430613278573844552166557551232642676639822553975968590280893854616551756993339463494718742412482958496725525563489978679219929314170789184197925402180268318071961207300383177294609712429822815666821195102103857033939800055901783854941603676446453352866087237730078661248634595667073542320265752024890938193779966708081986101254281664507430582663968265517412916647638833939646727530191196176133663939765679267416404247533541182578480025330819384642905685839650581807549068031920735734413831331945272218072120932915908085483948730036191702282289546994113450276735400887696247024681616549226555866878137674348548068409358421403504908667392914126184963289233432859290717228518112189977161104359628206423329132193388046829371714556687896815043441270735756314417580847784730889880817279495845946171284063139402868476256748631046806710053456512575318612333224468388934439703818288670494200573491321975661473609791027860950737544047917052402512973395665390935914271561280470061552172219106421237038523488173352852316639332602318614798294528845656395958570961516529754046995942788928448429226865905124590512894678480915042214444271834723855498988484895268893424060954634966267664689485891896277107525717269101740074195670637037705729393926724061547641095644713459239294736734772836887873599041558280130372885273178084511622067603755279236478215785885391795222418620063222919492539388926544282723671791353932353829515891400964173651553749818052693434303111564522823586691649138742045303782226289795844384188916734240140164366355321277240813409139418912668186450914399630659954288411448062032507569538589051246036073776979552519675888895765235968763182114150057473722451610003671572189778433112433666397871051355750637413017651482353562254601969269394711841525681267772912594984082287173980863280266368703256155036424029250033031853541215447109789631792488045783448018677280146999330568488634900451317710538679747510294529881526516164686351268196220930315214586206857177562275908218150991600230989611144111178741665537828464309909752967751910159476573672863329696099368582461800047276469881855873144836416333105070831258880725179602398688864131020072647733384514570271511880184769164878209269818968012751465118151580402923177785733276784361814320481927504583513203572786926662983539731346410430169352503375638332133326159273290939836911649111365433097819207676327531217335460909660473484066820392671548435367449792379713916180958160733119740024490701273744690560590855397317343531055641800430754929634498738641959455651464834377717017147876787750419106402205265306607566022312655147140329663726507647679216353855282107140012094783010318307875457423390848948346812421318529504262464952406509496206407550825290983978892282227315503024913238396326474274577697710940530730413049750352316482574893092250820756787274707494741920579687675050350321560230611396698348587065252223658352639975294344097998546808530825600851008453908584626515782350226682897628856271789704989259187580230759102865705854873390447619504689900988980387178276255991421292009224439618976688008406145696042762325603073512889741600852398258509669149419172950188748024862715352956216863179013635603182222092427813210886147850618034804218773668786707546523051608222063760952785286020810163245234096310246551780179610196953024346263167003676262614318175844633123905711180973608017296701331671289889742616097565957565681709833049338888829985057653464938520103006428783749752912720865727381756023598387409819234647795148600454569791670839404292078982759909298112059913056406956344313710391306025805824708223176048828211088752961070965039132210722876245860082553088582625996297199268157332259687652901775240274411888007573651609116616571533849580273662108256701676118076747467470451272471098191448318250653627528023507387077324668084820019224356360208041084011931271608094658453458976189504495175085701084805992959483933251329174578908132785762201001293077019827876873709528370408527405992058338451053168450312523067985108964857444466591827744960617197008002205302639086550987410214116154272587544681636607910215656421271195886321934877491970080059726415097168946147607335347151258699440025163083007476798498586767346528567246917350592976802811909622168724454700607909816507446975092911272719039643431302496555839181536006648534654928197453169065930466725787257994052763788244249367777529577739877290680584793600074272156562637760750464366334984483268333479286219831475723015117683390537393633102509230021526898570338258867266136188856763640962581963495926186977741965283499869939943132091356995271056954598578203589037828382429158351639876320693112849312671487156572121853565853387622225913937559771721328517765689520664908279819053401703185115339532768773159544837982013600015041543379816347770496130080441626577695489615576995887190053281622072998318221645084792610302064392906975343044155981388455672781982685411666963641452512429310761475784002448533043346301620720894928456799003529627864546500377143699836818360663526863381152165174874998236526784580870451169480092541157550698387717691275545874971588144609183202320809670500827008505666363465279049765430883045763143325127259888673865592891278257694739816409279397001664749687363013091338090964885534373824121476655253542253822820284223223566823444785255644722526457002066426615283844080916229175283513232952352474981012643514078460120499430579264920619793784200215078582749451071806580744087739621176308280758615329527023639485785603425491638771459257446184761294154790341374876338868254466052000670478726804736808334234318964871175402885618099626605467884126631760338014043245689487049167401471967343603111039607273252289772737013140439100377188444005315680493400099236007230815255514048161884953466846889621562841710114305837839694372989009636086939721156760848129361753422062203961085598453662870402284461211487812482948654573487181022805215584046374022500421281199390258739810849868770458929987765958420639728264124134317603319733480659446978556210560580190869926246793836419760197587961116336371132744867262610852702883934426866516620133068593143962106939503058354058900761484796985046862565913809133886820460811786760613270079627272471324239822032251045842916045825421456642806544095336451185074803461589647815944127799209361133916629349075442785737459164810594502841474227036406698541093576817113496818210318007529219433927248765940949515565824157539531356894177172582971398773008725367360065096715631103331519619568371374839019389227894196714755109679763006140962191255629844263088002290885191561311833526724238530876657109667067936379327899031411259401783940400859202351071942445474888712357155034896369478994670288555668251732748968568974259682688587872314634197714273310603669987404613020311810333003971428657043551631029999190007988716180391449848585699057190100185380926843907268062240227291140010535973549043524963323024928282335934653581662811224332334201200851696391551425672958880930251550306919141736761947159466284929451898862847545270784753895008403213608769119737190959218511965279860092540536626326695616864196856143977878013239578007391647071575876639239565753962118828500294050582229243863179672019952179834286602171444383858633664650224453103798682827288422062077353003467809596694227179371124004516011285360265622861450581583611207304927027823757643123856376378749610315649093016679929151163854089063474323357013093281168352422195380490375737452693217957249702230987317054751071427490023088959042968248915245079923408770166259798647295972237478864525968428429727830350778861168722137904618905411149441390996041920827973801060141916187135031928895002582101421178157173422134194166647682118386669018100483004971559494998899012397278806098442131333162861734547714167333030900457103647818450882757931384728521310558493127275713574083047253688504090814174453408899381523412943974068513893529484177976535115861433846175847539803464908868349947393456545566223210076944131854501016451225436602643214307748561969052856929636379189610452652178382749598733432338261082794366926092460840378443395677192007438347349304608821994456725118486696588847122984376857277659595830471888493044560954052502721538187871719417158718615662143016799191305046050694535758745594063708158466123354856441509282168035857219319041471827221503340674527320926676177469017677338088620391283873846237153190873007023474117037615555461495324301880997593543279149378888850733452100534702441268898732779356171179137515254694575950789928001844240591437884698058690195338035527541041443466378845202999169302335001166867710579204104962146742719476562961751839041043316475595211664756090318042389583895117163039763581750867151900240260042453206772271916997076329364463423493609629826781235589261734132031685599538902467985322471384941391807681805879613028971316096441469466668125714279139310906333755914162049527299394130228158383882380197795400347464416153905045684763988377618944795154098086337528458197392558119337531178169070503889677092099482764988760593989048750177841732213584961229058626108229080136776191644517709955932506199355238550232296261308472942317352170742446426754237961160028069703009601050508238376525689129478566428483896079128305189783853508858427107992958856292987929648802531182739918655653971405921876865412105476601185960035966486078911700625742017278972360611862967518798089342169252873453649239942325158967903939673749241693456183815760270632223014464452935831431042155194513854264312523894930369910112107520684441815180808788692158476099171572154326134569702346702055523700300459205458439822406649199858563099163788515449403387581586332693503626275297579909910226120821221921553037806574005827162541978247971117578869879956124481332309337601942055783624088792802134664614014641638429161783388542364143981092077449601307445305970228965162679017397944689132312962368350903086169491516589551196312737377870386427413682865451230491024597963431060428509928697509019074437202574269266986817591495433882128342424002863248651113419226728053605182810516718970672263605334450052987974449158250182637069314290849860373029889323301057474550005590629502231533143477165573279092970438762750109345499616268561404516024752140065317797045014507047400933892664085424153139135864724649671030147762594247970779880192366106619929730214827161778436417979893261324938922049678235772959922725304020565393496527881512529913798231630562305498889554475432616677605350662908451997885644224918015632941075764910763420159131099379772615456528759950980732589692994505225928421235948013378329493779429343516055122261292474369620016191154903449654047032836967714118592783925940508390503501659077625097856207688694997355718676762475023780302803184840913785296797856846589235660161770814655193784768874004361572071879067618991420363124758821566789547238802231555914310683055795022524947478638390860746193893772693073641679114013785787020334919121416847553672300611482477774789564735394063675656627173736567396316878508915899470957250500123779323036552178293525271296190584394191451351368958190313088716414423706204327898354197635903845399695142194878331257208580579415940414765698532885876673822289063457436894234046863068958935194276331245938817444324325496175580158677380834731715961439859937444040190275084673584393747234332626481573916668558886910958817106223392408681705757015834019880962074382157085107338819234629684247177882205905786663964733754451875288623559363892667732409451892903724194526128540465682067490461708403982815913479012171340100357288677775186052285773665585874469628116342698134687482741160708631496089687896380893948061132345007691964934416905428834334629780034481096920758072071708646762491951998942331969191290570086541789491292318928565631689842017991837537253015740388366929561959458825614354381335360389824929869374466203777520751510449535221445677331931206460592926179376278809081146277642484578215319008714483278729451881538143642086259195418705798676710062992842711857587926956315482285347987286012069511205708636440440967433758932169680727483368106990629515527016862892074745571063999519545788755480386479868839370162010310686370653214852459749992093837567080090755151347125837307758473944140145492412922139020940933904118182389944022332617854514439560345081647318446215544515787676166103661451931453466962750552885353378126108987910320083382784493182962027259012170337258710973783467232787388422952651239725104311248853886537718350037496024798984195008423986328784449028184672261802350175796666943592097758241098601057734596091022312431645745986857630400461899989300347816829604652716992217099502445807520962522646198891183283165934055038550644940285861341092345609073684481692704228915375466599664479612110724638353302124933833681499993404760624049959714581629190301841022998527549099950528251688848598610632084207826157533260941299733317000225220288292036963879167684961857519674336817822621827856601418853815701800383184029486826853449722487570494032235569384417029339799407912173737501522258402749306666094747888004535303294482282047705826904353562807133892275930988162616756762102263287798568876965172198594941114854664876039536294321142770238634007887241909798108017373905169984164448641303959461705219209172159215470178461062560244450661633217064201412239792224025482587900656113037262836396228437749131981909189415067028480691416377293955828637586936423629628819920586663716515257155794999929283560983799804682766684314840168686806839061380693772494833257533427256607610548664944333242558894001688538622594253005279910599122211017812815731440451022112290361531513943597302029868849788307153085904468995394693495372388297941667887157141343851506669461872514903688777951148377586304919773446503733629389884901680668410228240056774379516917209234737230651581180007477995018287332233619456754276741560583229100793021460279469067989838455162244107147348511844520341234634632859684581469638866317596812558044339352674466842855338556846065283348177012837639361690377499586439443222233092292863776723382577924053407029092202620221415331936313929345198251667054248620172432434284857992036216370830595031695060852003422863266833607372118364361347301148163190802379018663318122635009375511803395096278567619237337151639349551309083817719030794103367863109946822372709074575559904860941060531510037088254332331996636350679129936571663259797290198072515609183456216122366377964478713654929523289525136013326582861987826438782926715047030740276921802894917414123298072610698532696333607453168817208157618865149148157656725369855857112082171522719138056039074657293120813483905653687758991230962901129803444397664340338050732803989353746491275368648432626613523672564786957132676925321133053262810276986019598765027334906302778384006175852703699233523781073453195777422433037098732723169417407854204223145063640076562246509435513398005220502819292147971670760912636500059036958157496862510730105140827841226578190012295999268947801648282295473892782184887742821092956835030073866976686404648946692754240306825466724479437165279066819301590254803218487499601347281134063763835231448202669368860763792593887429421485967952739540815053044839782112489414720701896083031723482524396916742277589118653569696842927389385805216913403382751761153552043088145026571624098065874729568292212416184512949390441770670274354087469206859733378020958627487817254713457002125392669848621029099762865394636644668903978846809739568072776500063254304271257395475547146496748474442755214870955337482166734070336416456762601710250799358050780749388435890338177885539606118619853797087009763742064184433264863472693025506500320121804224655792598163077383712363602181949445878264978658257770617343298947342860888796534194381046657753485626950868968538942755573824777043561022898616074498154238297907744726910637506350757644482392535286228616609565612208840197884808665420400017681830683599910569603200707503162268495884901844793489883315469400022799156236847230756739854994274689240605189467595195674801357689029898511902664814997476922251352138749145878536990846159650043795002369237869882998221268303926456434129602256711425096983436465470991592074971017274181860379696840107349647672536697871637653300225134009140923984328652335682613188578211744533284345709470998168437873021401347151470679652734520825019778361686231021161819095063974518949589605124890912900008200954682962059826100125267049503933553032608499794915114802139919442573338313745255841240766678562164244119062193800864743579548840668488112112387035424463899722523173212086304337745337780448044379744748302214331358049602622979834026139875995773126101078741432169689006868822652240183923309536110191950084768328251792136911576779611291623628761427362037441253330528452096423631650095426621088000840005300317454489717884447787748409518145752878762083672787199446220962146038643638536147214818205883853068181189871478164073813749177758892274434592940237001658463388190715073787480140042596002154344313039880265170029343795912556106052001414913133093733601777181768986533804523800289817837840523601560292476961365184599036636622872531479785428221344977600539520994913406145918480434640425365835699021794781925058067240989660007228806057210121913362315837975133528253081776599991967487782285767522700184570531926618552831393968496916057047674579322884452134380454266847399284108965869558390979875443568931996059794748938273893748465027618653395887193984897323972876778548686715424450104461448740146597740987262037766575841647703867080001027905303214950703131348302926473504987013688998699618609138611317277138893400479614906815637371054909200341637030015003930021307782133915333776272529020059456871617430448406055794442431659752280475351737301800503709011354291686323133290790076704244658950231533352668139450914308380056840336384140399819126721950015400118223530303362631901430004098537653430052317120661454350710046263123840410533467951168886248356990705837495972376766639846255263079354335289313563280998166258269609554898007283651763623640682290238419216329387703856610934199897321483646849288620497099515985962812334274456759330518700042940639542140808156327861451532146039443657343954002509004849089915644434164616744958561909458097375448292196881343148724467083782671210345192473435047937088879755546872028255850040336947232302754514341381563026912189529902410028273210136189455658710977694946969280136394958264084043917589384002148566584914245219834835150536489117605217588941944777953464326151062837636707938257721115380828044382365625954619729256926154877279480304080710832798787551186309157171208942181705466716019265468464847972651257520359184757536655312347811908342381756139967541391652566773803569973891498039330505204418125385392091559484164796297065936278338732564675765615141566155417839298428664050272853940909534735957083432224443969680175546200631108166691577079083100711875617805317673378967780204875955109767079848812290156081335922586504420841806532014799581570644008760567377506544383615158161950890473564540149450269857623846179973430056818688956297865618548260043971304124524762422184243527436404469563704643870550919140058567569431537713622625805474036124760178742031089116535913549612836513801008602529597689312280330835983006857612196490827439553010760213877847911591354961560726956930327435382573351056939165448145057714140952196143114456906049122406029696692788598886780753002778284142979608929319967160753401329098126702635458442767082428936106252280256707340153847816987236602463432888298825792897958579801445846580834735157017014239694437831340389506966010178229440301917362373503484199864653963248632405794502733370138019039293842968305718069481056801911089342884916950184348677252841720188236902399714208087466816488203056458814554242551022379216389161717480570662539522464857848551134474229328227485378320660321191689815065749174061763095460433024178955041480818063223027823335282844687449398064204503920592552102100205156137887930908584490748389421572802166219707719830449993904123903621224639358125954623447954885690383991399286404804928169477455982619602080504536830143280169303208199262200948273004900694815327094711751392050853781874702653571230286318621064957260941136343675614244860672558532863641338921104574557725727410776066644838979457673787372098789629904174317330755145118251793519857506069749951707522226947573471096109438013708340454258317562526728685271475970486038815117606309929636539061595514734398299868395652607666358188831063675545902081054157053985258979094931873476426322690001102270528930881480725056604117007459775059658209201644915986398813393238025994883730294201855865673900158534173188807966121756313931002946898458872725497609763339948844648048911304702475624011282778296167477894212981374401244676887806433037133883586621971990865933637967570454172648707765787316195762718172738662757957861811763774084593223951536101099984945720414342988600716343230656009206931872625525517227417954137154805983720531376122446070314450169717852010797982774474011394682809578141737752754390436594480506774481339201389137406444203868284082089295210195509839194336278619683038488175695574243623636351085516634252926509961169111009588150597848993813817829483590614542598155200591490068931918110287295693494736741852734312180478757998834876071402314254328063786478756851328553824224599563796560971282406575844848908765866195168186136375520230528535569469629302959908423292928897485292247303050028045402471645123254114961810760861275602254474593611186102584944503792298628368306412716958924217339238550225291085173822538649552809120604045601154810508241811924813824240462087114570854667279671895885675438145495076634666236925562601978528503838133022351304325620227096925324582364233140376956078722496941460424611149792047382140405786439151118356392851820101654251104135287336898303113982489232548448227311361522042426600868309782245862644018242634243825496165612471532565879304682584756613586784965062902865859384802382171233160165080123960313572168335315020593608253692367828283596489700518873114370091282929866710638589257220491646008012829201956761800201394281923427152261299116164114783620734768506272384228031329850599906578711443999573110743561265835926858321076839313705394027800693842107367819399162148067354675757793851289445832727759233616808814161463663835777011028135582151915723291354358457412150737854049218051432211451584994713659930556396144355917450694410379129174336056009576861074135723831458976111343849714003376660725150510817293259447975469854907801751435506535789961891227795614249994154760792323300348066181590240144664833169089683779011899980599756136803792181136351586094612396718713851877783276243999724233895627836086664430562129880828989686364914814955232791012702049082671614050371665556566327396782508656627873648482944636712421788043605971678832828282630174029670981174951571103991084097879655239620369217273746749248752996565864545939320106271460034639528400104744604200404982324700005960696450816474851795973569101734717678896569029088763530397857421672703793918831267006417907213807317661400372347045760271858451425036256972362079282461269180755700276603096603835333859428171868874011678819767295187520187567167423166435214348128372964336974951633440136213552773173933950605207490334746629508397206621655591599323524075813438615696423188834002886841886334641653618363805320868359612198590764849576504383749930821564191972144176969303316902255531615323690360091206249717457240846658596780806921285754579268640283688892033070694581150666882748485871209917712529901330801280440036571950362601739331733372157899274555968346780309504200937316416078253768086019652330199388157203552978990756168180517149002037476909035204417940527450211383260501413872064959583939062082675653971461480897057960000550769120697456656210240053457241442164647693409568054141147357439615752660706955294233818492212968522672528879328972476795743693573318764629643453849573344008910914030996079121980427610414855573228825302847607351287055451126478199784661690308182015729515217521286605261925968893638555029623626859567961425180686021633670714042160315091828924431309471295630945470278544423686274341157660068646292928195841090071721061416616693817026143520007372585608690099711323460385842776846124628255428109204242838729702311595933053031265555359491610110262699837024456396091705021836700770865381117509722218787198326001852497997312807851640811918140638264263937772845921261655013427174571211110464176076560983306132922944532846774547734151943319837198136822680816898162598407337150166823585985927693231721008931193614767753220417758226218904938727254945398253623595840355790845453799938650309522426941327040825974583248059860120975881795182428847435947935732069800976048527870800219105300924790524038028822584252118879596953008142896761533514838758400729679309463073813792528004657541589130978603646436810626764221542521735373740281856073799619241513238142599142247506034230690494743087694181107395104530738769628274503555801986993950219101852543124251257498661578116065316042099561545756682280520492912682088283579089073275731625406652649402141173876233565165584536745825854575171375041608598897560074104318713632716655955618984912681516122010537703314383386204703927195958270640900260096014961250629626255777453350253618486108697811282148885776364869434998811811452632774091261499808641914145619078814697899654763746292360468695096831057992329454209126634165126399265248952930457326673833547656865635294572339289206195155482025913004275100038328290308786134960406652182989767862389685670215207219328080480332289011617685097667704692229571348228705019945471541256500812487329588385588270845068361105973349020726052339306762546394935202787006401659092443073909014201062794813741362110748483209169548331836548751669314792542254311314359421522137394923746977626023583790118257916285250045828466509581263064565037891643877772086401510872149498519974954854542357159328861198895605985258592323919830174519923185525001844646629569709826988003659399742800784851814663326445882796915244402274629953621543049090928253043558882490492547423426644481573450254477819686835877135098229353314444304913259882996186739127388844173951141955938009851089546154797983191328865221062901632897427202562218732754201316294612489213115606617847369833474725518313225444069406646147601155585982062105426104854915092445886968724051787038547894879515374838997843328987053295043306707287224722297759918301626590931920771221762637139779755995383902171175540735770750072366937712646993616822481416596422524273657374464791237704822596463569037958875590976590597632981268215037119379855590662657825216861032133249004250757372761527513016670512028359072848644466352875843383295087531737400138444480366370943237264823186434544793602236546214611113398691096622872545005618810717805401926459457759187518500032622271253677754991166365291017295291904235585981747956433103511467083654838518764511988123744908047046262112344247110594177398504721721456331065600623652562078660408419541806786252543789114223925119312625071891573788350777343351539565108237835692625091357660470868541392647766354324246364085591781411056323355423599133991147797164885352905451212655978852253013995783299177368619122503777274129304238582640839754551411782868540984260161797573125435213203045249111122297464111951172766890998564897363000835726527237183784246203226554354879822998027685075792711647373931281758116372644621581082819887024484780838154082260627498525506294643536416997540384467239837733775006157672786506496807397080068145682299465813965960031514048428919313615082225004280414908372642494089804207378429832603126293371491618238119181045006469320517644817753279059636868465969261879079233045756414731036136486150933958095071645143718483123850086108086448514076282882136344367015225078012195086523289358426017867102388921526182539982454050634308575097007868217645556392507155644846901601074627589013985202878977303585314689289112236723204449209977110112147448705159231158610729554594960922813161737475747030143796119722136568020117006888087992404434647952950200602341567734615457428118125780884764091528012802326783021153506508088166482273767019776984682005576290861643991125017933453581735478956151256074909058232589055526070874932733298328582436953719488011029028765527293606078774191386617601680844388087084573607104130355738269829681530787625661513699548291769577113615033223366471956041690152621724286315708875960593058512243858801932820842606426293153350004162710251696233065837945692521828555408566867065044642312693447861911969319563519087781965881418994054896026497562577868275290837888648705313815006104223667186402749090140567985300038202426723848948555062846214764506286237376201318829692732684372728869767305390140700595117873430818060359973970525661261844005596005067390117088923638271991340557165811263645701859291983162947341040011957819591066815135161495517594133557827391599171270300888871213026254136094331498925523869582292657021194465467076091516743985376733284878643422605433134642975403779067757784743095051968260779028330545034304992883151273888978617210380081059960907809329893046165242898434509850351082241518586963550588741583230107673758789417334364860738516385152392441800707084426728622339219622251744266082251803727366017233686228359012839627792359246883008890529216751169811242214386501190101854781273542766134942885915535044649934523221107795565655394600643247528334929476734964818823313128109887084357389664782122396262395296503855401330847676939113508808608523647738090120184365084760150956858889738653528796489893411849004053668124067006426535744915873594621160650476985007114989747610684528582226975407866915172936409013487254734978286831888915109757927118517617217215419041051425481094389127119347340801612442876553956939931199928647449117340576758030304458904334795178782360441789516196425517549898306044398107626338634165424373734922255999474974462937611206606556154144548961297849786518996258912170922571693939718195252854031457332886307321419709917212619941655038125463037063606094469043330828457623066369673598323544427546690433188564058382501695802214877664942016767550610534179868194481219158235829254117466255705733473827893238352308213822073734689193931433939497282296102190895100820973853220437154532013342372048928134562360086220694596826971212815931663596675831029161895465310527367499821300108733155412706614845069493786808121888551627816564274150665015008435255545608544019432097180022525075176755657500825894895188145237902613453504227853421138294686642404123822992330326414892158711177276211830457302631633660004216143789034945275434992232803966932229064398092904073187215040237844433182133050509844880187075591557445862580005929351945285403810633411453032660373793575945934684772150278955663283121030362162124964817684693622389945418037248019499611872463962488960489318697999723905754726250474856750387277109453600593514529430633419548888844175769882780221427432855193653894389211666204079867755064037302905909308866224489621033361268522049278686574323599112830811457993209838920010049614998673208081740563530774313520346740964120855512411793455231550348102746520786678042817760727547591756267932687368000178510733836719303516485927705100190863620869660806443202246912433412086735977184730218055649993520187083052973808269589284377854344290141565753139639236122122550663435609402302495293008028784297137642816088274675840416974235083844451757014545382839365333655405095190268185115947161524576992350651926312864841349511822932408900453450197572464450405833234763500610842158981141296450668925122725292823699227000864355094648073164842061296711701968286224453682355190006547205373504948974472822679248407870392217127599646419326579136741661499992991709571416335917787673106502873205266472432481274474777606725300651368567571702084140735082511552904058703929603514966661761775463439559460913160877472918523080529039201282081416209977283102617082379231697332422209503677119389267782604493357322404891449772918767208136606747428564988854434987192708977864928586527151062834054870446958007124699261736419838213067708824232551975579295695030678350108756774679502106875302232909947342230893434746975502786032703637246151529879747388186482478119799383794093343109675738427468601129286070688254180690389905689641946462997674725658656104052091654459795187251381124766032105480067682486030761963373764007094819430001648846762216816955554333195442465161788092722874157345620328559730704425847600924110500135874828675221402471767241626445020548401139028798133384609987799978826262120995213116820862897441661032325795395462520065101728715613291264441237006246448588409195886435332235783662748512564302262744621597379705474254624674132569993853451228006817148720843163036050827219579818848281682499212954476443748631395355151284363175057909193268671543381518816114588964363344031267478394789182718957754296914010037765995931965075690553644868686546325869258723006703378587533540690810764581073268983139381246896207523477535387823573284168715248836666241175388686730264433797252989258474584259451946821224549523757091099693245162309525700091597764076970441000705111241359257607758081585621170631020727737288611000714986194390936901031671091971742816194193802361268562794334487362676046564553827395228841301034039485057863865689096973238632079096884502281914866591943392776442082840225015758208021121197469466366476632806606662152229817485835483191409551339947389031876154516639584030754918539642356765879877668029497653227142588080618873870291299520216105151497508547726798241627309139788653062956127032049826445091513382911995313801938677916737904140175950438693752800238961186852071648649928938037514165427694876588691214680858920249003725661543281456471737782469024083744744311717249820704681618706188459947859434194265842560569836754548747586197816170006435351511841100842574742303042417809184480827623835219385771578510153685447847129619429647859134802099863153672959977324610759813902593123012162859698154433720182965810406423237837535364342198609771241100741652754815855112726717067024597328810183769078123042632767249808323535022993402760119219871736208905135879339460381465316795768209079986110004483493176738842333373682358049734712864941356658378168276625239152236827268076182235058281193201214761701094044600918355220976361048483841810537357892236654765408526041533981216065786478100074442176954064294328878310799672418161558290864672526916816447735963921366100578984999073338412239502172426096660576590280797554278351700014253319344756811981561052943225120006355865942044207060169898598266416069158399159665320000792649539417487820837330866770982607402638050245745229363348308213538812499340464377896817835577908642415419329398848990454754068479661481412989856355359876301143685838872611298074635321011018362495194997172786252361893309461797881325123899814050383546647993765650479450711653342884476231574499544198539004599172799721265594458385119910689477107069141790093691567123291158651057847978841249709235024534242110654247766772768234911367687667134705705687823992131125662392489201047647825072945228684879106546783144298948214717227068577341958981578871313719829575468625933065517202256718721042233430047195020055524926469074458139929561054618967650494081015345035393410820339270391923469830900718537140802692548814692946246390035559150125894824786118589064885030697957660909680257022326026613762149585890638984906893899271715457514371186420262607529754722974460008525380078489927127592767117476886095584472296261420010883810091310483672061505013647649508134648814716923722432766739793448068959604483921452569635250069289544282851749844685410370088278681029761771950821858429735869694313275337049216149167885617514593818647635251280325264403512877154631871836785431963099501643791896910220878097179534109566103877861007735839100116310397727240808695202489988584474704327647745605559320308852268425697092111616005689443618677566975040883214525891745006031535422452761405088442204226420214558727744843865109608869917101204417187214175918228125977069475400296990062733753047394035795189884276374461728825087046205125468782592571020711105965028224994929136457367801672642836960499430362219198398062855661075472569867779252321881412739012862282286349780800948224550361873719991450848161530433136973204668720277319862248356871429757390308788807048830835078779325027940272573880009257877135125325624944585044116584588480198785619216848567237888567202656073343277371983795866807344350843926227105129384374469507744843706831127689928213475486979512069733180771238282335530071216962222771470748267553187570942726767059004072813866353709903224209315900878181043297337305160524234901220666331353309307121803127051674961763963439417840044692632073479325619289804970153202729961368649006125387873956335395598253271905760707709346929360370712922900333239993599011406737031485415923768207672478978088372910989680635426455780853498440169183789147984628347964358471648375026050687528434795506763739276548279061980419431296290727808073520531282861208154536368836599998638506081405648717103380834949223960937014128977366041757793187422739140905952334520826472792388699333409509429156089228963148475552986332281442594246296797144820371571118338929687273658390340131615483756632228121431977070780487476854569343988084720358074312669272611011484509115637497445866984153507488668046063869157598956783917413686352792939316199177751054692129777748663889783554344576870093900576965511291498802637219066035555399840581225222519065263003595530694953558383164536205696006525179386987526509610435116980191340783455157407029227331897464825544817242656207872557641048792226986668479524272360167026263347166806642110257744145398885321223445576995268789500619357843642797418882249361860408597533643530269048052648780968479115270243423287779392075473309875415375158512578770685581685704717092142803932433751645668250240164437753655615560104126561997729307333073682644434770113390664203385345329687123784488499307895564534540120468631701493366733841958825641022132148004089963661355933935913968388731693739958211788642671529721396400623287565772685236183579535795080871656813813090474897604507969229110254102018457057622615302215864258537512576555650405457085123760112995445487572860462814460682438940218542539253634487201819416632540222209278214026164415224271100943333799938126084693657402667183628900357077236995526100362484940273581736245400208796968050835252448079168846941121455272104497476149256264062167144722513084371310749588663569292153426319022807255615215733995908038931622038318670061036254225436445788919670321539385640558646521446642885165244641830940124478981449665183068952577613781713752501310010034352401294049054322939891024239697551126546494465105313207166410605865959804434256256228972408698540293503647263005163700643514034862476232121415683810651098413038134620394531021272724512420177934668294160419628189838222383636866482111229751305280983888072627711946337209183471537412097866807568244262811831204022736069594590783725440882431585804653278067142280086393447871857851064449637214304481477895743829438691346394123055285683020593435439435945030738519643597559094928134772982429747020269407214123356323818436868334988724192500094393129576145340486048401204489197846927494119810198426172573581223088378909036116882441573140675201596470156563962135167675257001671757071937181979170368565864330049502603873673955625495378423055351366033101466586117077874885627242609984126553518369818018535593034989605647631658367979390434389787992774270019015415371918271464651503696646407329286251995192591877186069367915509718389995017127585289217420480480241926802545479516976217330311185894637236897812366271269725216014785845674585878478287144082650402887932952199721629953000518004882142054845319121444487138053982966457325337361789572018763396575065808180716959299717686686134939555305895029900283439911492359857653059467865522011226781422351999599529580070745916100645689982468592112396325758007545624554016062811424545591670726299526006761821505061868881816534498722533845099099812553464748887325393766724963776981630175174564347867681558085957362767809237260951294768166594895663951549137594304277700370923381650836309746513764704863771837602102815315151857685312755386790470487096876666130069993448762809199462566057029613177613589727035337946957223485529246314787329541583886817239762247007532065946764937927484897411517682030493379774078051267062913373228961622730989496455061107901324463122095558989347843524456075454245107361960355616614124608277437089690516093561803920050322240807228172408493753940155940479640669832455819892685848846615844546314867535915362500954986120264907086497124833221395145290968391194195321964321942030854057726469129242172916176430008890587570409465348879039387309971064502255096582622669497830530457677751322726828774901629369042211563217004506322221871299678275102103668000601839632449026059628217122896376709522869671638448203086992395948031793839083652633425937773131103263929244055047257685946959987910195042211103176064524471868740765333472752795554171788267994182100666575192200027495263883590411447004547519524656522996346971331397973302784314012106704022518270630904072488282805934848233610969954173282140245184956471904746612741291849168151824158119748694335721926711996317113422542535884525659280344188169758780884055655467593327692941548589702809254052234320517583509424019248236309489674525318358950615429708623126934125654017501787995971180291761930459673906523562396848432688067442423648178631371060959846360935045492893346427355136995055751868262544301770341929865239196347990705351639503885347287844665082105180279843046323008127623871537727250713247368186671202789269869820301835574193039091065163376019468848863529737841735810602451496408858985936191161700819970813800612748913375224612840456728899477934216887318569100731105654682303124561910720678884360388986376419573807217563264007969531951925064687649054383379229028075532791202060319010063634897907960142779571303653088659015920883152538754266597818047659002011819655126607417707579432770214551066519956920319467842969953168118439457719664589357562333605641708903670233830836858117325856307412666729510545697582282879223685454228978235849843974317275566393118041139077884357292912413725636171726289358134543515376567968722868817761025775812468164178555734448566241447561597254118454151786844758629997027386818239714409228833925647430789729669990738283495471030106858862153589652161113164284887115628087428948892545394699043078386132685454348635163990194969354514516043999285330219394576433731493088185473408083633510960307143685088483284485281520618526765473803106921902387845524951904238162811526492499818895352380651176172963296604775099737530831736974790642952384925841766927569074203281895393273692805188074313606926231775181613716593896111318293416492348574272659698148036341916868754170128654775293192054327490014073553183385033036081321107189119066601514080809875755189767464920967383533996755803951327312062880944573147761772110807435927773835747275389842327229666227170700055674453474879343249873899721129958735832659167504332789732321081047683683745130849001301181651029515129771346129697622379640151724157644466337344809893428960595706629155004249258507531565419425258492657386416729203956989565372993499321740973126527038652719005000592962944928876233146414654309274379375956597022589327280407539955205659279660301322105594620968211284565666405154552345882754035391944434949368046042875942526808131486506982426167826240622587900544616105266845738209639967770764275448611527847507127150053672391951656290275998778157364308431218003975685193477316737881485943367438360806746076278043185550315389121390905032577515223154507649744570434116956174328689757983414410415905821538364740758299775961148607480760327469779289816260090573254784697625189960233296414172758025145810857859121778570589406657953925175949484851262206496308463909033615762386906332045074308249354631150944721908562909213840702108516330363290996661170834936136221085923570282950504815736813666392123703928592131874080871105756760718624773988718175736259444214346015929806427039508639406762988977613285590875464758400509359338886620016173223575056802586192714397243358347115456893381317922470597585898265208763870854570824265813745001404841158034036701023964282717409696755269480822654961757564517901812632881519746343405980354345994991160788063567130591294272468874298466030380628440841872764478773816055972692545745862910764419215589221183660069435866789748691057636018194407522726275637801144334008998904396098729359702261363893519511795583558314372476182476059894928179695369206902132147718580224952981781667820805998707903853203949091300300264878237513367906757463030089334040811308683035014252167667619645237114756081871455319541275887873211769095022298158097789058325138181430798662409999248629378005955666836855228441955915023670258986629198403399341412383718893205413168757098228348740749711719542637474037837251987518352851696094576453628268327761534743971208232670116713740540921220024418431157481289536704765347819409378258743141031488496239882394448550527828878771146046209260774473751315543426223004832626187007187758364988156675401939179267451385029687158982440683268234396563477028771647477978489969705642201277984643806324309639814964734223070298352721987584319968001114188315964271351724509865247482477357642983461849458606149455068375652526602006814535054473733839970452257968698685362967789608650060033310089364858790012837059170808516082958744342551131264298072412917216226315576929674494970279253811588370664672778597626232700429834090876243980642572836760411735718972036847193145168433975221720529739473663785627983556189417092699932830507012049715394965197574915470000874578276405144774073774742880405286292540433206718776879681886267220699240095674765737444734938055131045050503032183732113418597738571882782590710782544983005006831227820998917211777311527272025304133761844336905767613198043674080100779597594124746019160740131565990783043963457136295013811468151390000828391204234785350757943804214687063537329195894847565336015341426781313399016703279108109288594783361788945594825485137663236594168790929790313162343944713042454515757069714870639714074437710621104672361713196736773639068302783404026702228197759867728696089341787927926055091791579769239386873710511295373579165028537274626949091766478070425542784430388376553362700597646475074396238513719714013374152273377283404225589804485882841253112191228370473567865354541827770358252041912456853580096711076401317211087393257207174359405773135123277617482764633370300930235141518291114973785315722377107019283606064860613586686708895480964988251090835730978802436342617478959725443955155004705127539919552997181666811539523721489570576563095426666495265608861684816976588653662422614361199945868099997762023686296591114818968994051432362037689340032625888381580107088991200632498764929524353087539989922621691646748310226923884655882642469367417730352516401803682996682486447378033254687955540733886139480593333717719954049703859159964716091292273936004102022729979387741850046639680687695234816701374397249102216551558690698067648003418886832567403671290942649970200160973247567635038138303858233738428824352237041111101588153811280713027030395688625843266644546280364837208730635660415085856260626513644439666458374963978650574941861170091246760471430178928505571046394882832849042035636824334280487913793181898980168959766659048274867777916798454318422919280993391977943387242727298849259882986822077714363584243391526182529077666301661573531874318819257505024898108184377949692210277138699037788363259251974629544606587857979289527524590490752604784743411210736986814439676770127010212388367607540373147359431017560606298356017861405892050321422980255380164815463880011152559066209209405343660791700116802121735618448427361952570437373802253971611034141323008075836441183063123634278789411935484940368808267860558252974277111480588181201264507804014286650982136376800878159888373537502402219789058153540330508351484578723240111368926558004227341764693219244402306026593463746763627412161151533136157129088662825951347739187927973272403752577482947306077492913092102771544432762991542383372055677856769564929056223638227702103963273770432598878217466337454185469217350665840446603667077617272801517474639086644428972755518334919693082138249169724611054759552781967090128967323818307844416264015875700087738929613715074877619080834713899411488113955924561657911657323469123082048901588939128395164691415186674206779685130252594683626152522858445898756074076662367513878464828272048558398077998111498528333066446604498727431609266738412121490020666516412393052458004637443047354011074128380859951656740214947168067011720955442890433113734569598894578047293501896418366816410555265727201515362281128466670728931669745181573481772305120498492285161158147303850509998714631795130136125839180439887258678608851326212772870454470998423139627308338619489910501933792599771850289905900550506051258495292680767021681240962819933818703359831348673132212545841843036381852142027031468871086612596935905551409984469109608235096913683364947548934279200353369495003547108164548517708819391107274927940591831591075431649457735028735820395407158071559384746297305677543352590079412053574842261624324011896699991463006772796624692497939991823788236477401083958701248816755604060162673038062482700492677552455738476768322937594106722448564911592390238666583199384013794580545510519482988787974841364786325611497793025689021684602923833293727950442131756199048974223338464522458517953963037723115136173431009235961657299802530440367376240712671821801896941041678946781045346335126850861677381040831308561709022268130900383655335357618560397145342100795195567911612763811449870947150150761985678024591042740583564257788259595252443990970538794743367933340293015817117011616048775987056442092330840127319355762028740162197635780673883655033738449524969851026695473192896093731625243613016503101456070104208474534234705540175204964188732129667815863231670706111263379273644992354800981278656088452882526251143727853185206472544564386951814337817414979690001378288154592718403751239224414359644339466764169903484842631632504652867060834771483131378088213350736646388073754615546165488212366775441426917406573826140541241509654568364420404644553317852203561347157568208270836434149781854210297978352508158601892814023246426731118281592431618189948395504628783777765100865614171487117289799652666224055745424498495119212271878891838219938923075190659204995610093511051879743157770740539018310701630647303966223182076207248498153235882599522501539152548965472841951878726930193637027785775607397294721676982502696490059689303909034677415359723587987434007285672214005335636580322605479385334712500589842851513386399619652424641253049049846786035976121156390370701897788028707735058420377038050062846339990705558167016109805903385713686992806641067214539302742804780978251055480725817640240160791962985530556960493351704812714471804711875737684529576618412038479466192296239997531920723491000187077489073674110219952756315903450713251344140786671504329914271346780608572797687418153221799305807571454581062619877584842394927851264107026143393397318609442638959860131743662493553702372562665559254286182234051392286650783569071174027807274146324744742320110195211249912847833155633528193851622612722959761993992869612620920187212368865030759647517548541979179971687180103373354132081375130174828557534229174637130895244468908242185991465749394480555463885969910785390817620825633042711906971373991720066020009973470194841732458348788284075854097084922859088888564047226366607839590915853975815600139244123749335510252038128881658741971328235616890658188439356671777870903666946133478577441714570269372815664176034192812724533301394700793494389048448784662234673772333175909966928072138088691576365201148788369400870481102247949157324315164786618849465136220536473032995681254083097954440611914011178038353993406464499578127767823360957296751527816708454340439181213794762222693054664632149039552200907666984866142935162488760064864351735593207975250079146051942966792273562297261164777012119406628429684940482075740659801265909250996893358774049843078183311379812260107948933028434217401220815466212937638360542897141821845588494129306443057991296213416797594981324056239067212914202080193825204230041554732424393655864519515041844525838999546008005315111151959048535066158458240222975307732016606494829292323047506326429040130450402449214612914021304979830526448898025676637752935258436864782087518156575987578551230046925928977033955065653142958290374355459186160792493943825295418690263681359999674009159008154277467921984761617307980946706510594329867504704801959018480273782740335271576088545637942083592822154850144133148161429540760197842004511755751891439467166881154007617902445028848666131616234434593627594845546642503466636591139403124138938362311379701936090546861036582334175642011738756784857229485633187658674604570533992291419064783003052971036922446171294004244670547839460202776816890722431330326721481560754081145079570137074844842703974528528246682255781250118501073202729825534767593655339496422104263406415386402801926938058468434700253349687693795847081629202901997268822662568137451984670216850870975854762345255529895240221809715312707490662725469108915522458531300338180262394349964795956525150459445732061754672542795209961461663613311257563385292648430081267085830725644958442268219096410761217133356002734956484992627284400149234642116961684807964280398767759490863107293725129392187255550837837101589839756470333553828155644155001339074723362227959540416215160769139925230335525499708189014265484786883971855924209970739857196510110993610416924052016320042406872740804522671112207384833135552849458342308085726298444423862088991818394248356819999803770162329123410831960789859524139474518923029845919088413956250313439222793695635604519354070897692405910298323920703329106043540138368377439470723402489378718510816910539944897402291843868010685695142651929113156475583979741244171489764461610025829943505381689977256602392477937493551605352683356405086444989443860540264528267128181111289109117690702261924314419031896569951504459788780019857106119081858943827234105548357091183692231141067941274531787648857386531994805919683882142258036709941153567129011329598776208483196139554373133969891782330575026150967155385015343203494328157158662339823737806701130843151328761371588454882605735791235913384410904137082814168762341476741225679685944588679822911390675542395821294604880151146276259752961449605489934806961273912621764730356068360251442228666968559334371364107071545227683822652215606063429054063814543014777824140163460375961339285038429459366322370324042014718109995379860025740380148161963709727978233481330169336725040827178946160573509142394714390224581423465216080952380804145829339056238188894811619842226949798967616874204843184599677331101298436194231786356155928552993741784845924535954720309436030644131472829981975018427338872268326573599568078013491138441839120690092942348246738256662290297248263023749456107417597144905009261142718210943009523113527874950602230060138460890331735980416730198806175738555167093236786618213432487433718462149994804577464762674209304832572094819952519450577505063284689138677420678727575844962064411100354779747265571386891270989036713334230345510735684533002251381538847289945796202874081366032847454077105289188031948952993057956781915053888856875791900858157391678698155631309820119235135919624277423493822422990300369837630411072520889015976021318015788492680784630250749671449557108361507638966089144250210798198439031099992850686109550825129174870405809377089032600217346719278586844998305947757639821670353094216083227954937756169991948194372431873400520547376992646541911120706989683312936396726393145116913046603916105696871641861257587301658776766389282092610739249386993950096361671490041031744734395109386623804375742247481826972536152838112351736558500286561896886054964888148181375079208800366257322426307448055347271822249036023164951427497369235625249174449360415160138134434937516433178218490172673600167257122386975428464568830178926642643949306542822621236872769546109577451142139545766408842319330103430231220551709050376873548259457542693241160208509231673123476504813123371683101850385416762107131529864300573013383354082014913939110016904413111596065513861995156787076578516312746368806072747695472726897185798643974190179246029385857359339105223808313036822805083858553583333920951042138650358376611845672170309769875396880913678911365011537551889792042994711580637999669831607805568057875992472172154553583547780736532574050132801170711199724949218918786417985127511611418914484390233211809578113039352279475197010244601939340920392745479361668081780052132162537940684276133155874876764038403329732385106385874908549395006861330468101209352581374138761366997522679424194665467150628428236015975557888433091866497749125965202635110738354828229295183067543678404035967656444277580539454111796410950026487780030131496005679361720316284172148383922547174590669109917890623369372855957929456446661255300420865294369204215825860641293142779562525544563001834217542102322104465144130468835648046699149232590031531206112360686838766377707435964761340222742152472388951095961809120205313159871858879201630655509575990458732306217806901432435948474859934651323607032042019914218735674636672746341311104770341329767869231775439184713730032305792886238025742848614368745926217577570962080712865902082691407546682241926986654702691022828507541129851327707431831331470252517489757977310490238435319536678050836038276174390689751352166398017521296640475276176914517468846684620902574732421674264828025227508710528371362810920072167723865256584327488910060762902400780434596557944681043029008439598491373505346902278503225802453045901899823354764962392580463341667601822417149511963909530703203557571049842221796390529220813557930993073129408149210000170451301572037199658731347228677915635840447340565168206830766983179362876489727578196088433618632650975814013353182018064825197935600452583385784836554838931142836132191907263772751063736771291706858684505210125573226867083610257473609240447206248550856097951869468375663989257791032427415698544367875590119686756629180583370733619075517384713029599562537947733709075500650284568048501075214392180118988863395728934123409475602183724542258477273389338621763462482492133652434711504403753617457296002550257920034068124286130616229628102761321454942532134409261286320087201917632431683180700327752647075623104845190594777867143979713581797673087595819988208619649914102779734989329344816054499063614287130828975335829043834127041649195737354411169772729268557364793762582842781720203204031011516831724237576957731162386169634791182372323282345489361959306161471559311326439505138822202631070789290176231000220824777462738685897595640962488541247371329859804970826644586083874632872326776399817846746305470225711660813450595344357989333129748348865799056999682750766523273601217633154569658051758124318405328885526789289975569248375221007142847843220257208502037985905869186248942084860418571653493282846598317559036718919008596163423787345232029300763587903330679919924594311587777939697226153169708777255958395132669175488362440011138184484219938820714540042870549119749041436005197225945265714271731960628545648420543073467423585555158856957447032134159834940806853456389269538426957742705034934853052217864104306724662868552967774913266983876055592462688863004607678998062827503629789440925910112173398984087134431345374112870091038479549272641419815819416101512584639166550410692025331858762766706632382142423857588797377305085873479831326129921276425894552537784690200444477816168929320672673311146587418793064149297771794450817693626592093103655923678764170205259713636449607181456401656293529846022498687913688217013956451494984542836907314437917466202331527500595868657095526931220302993320481022409791015396750132809037968533548004142947430160361705035034866654252831513448611959537493535564364771207943184064788674464950275503191407653286684163665140143370650819838703203067264885929816730698120665039585006848459919517427804047797776726466262580946587608874714946910419273040566282427245192348526409091709501738854918024734221683742507826943907115591228830810325157552415749391661271907279034481438091328389049318327666487238566594314050617030379793479327964599638879545130223116425144026716290391507728632668432685993193161757353905155414527773426029604293103223298829094884489890598429991430361554756030118109792727142252276503989568781359885624944978304926078619088611821059480177859425176870769265879967368302750802239217842135480467092638672048352089911637201652587654904081023861183345202664508657590259873564287350107826885303895547786773725332600043973559459066781846758545207684533129858640092942863773982927096927962410933586823460884263260136157516311370868923754076194895815235424044404116883346205592295814804111782026596887281958717260055970002914507726094633420037643816631215489036631929132337418900686701514050246088896083496890757728676625601184741118166667937059737099576743564100329306275119432893853842458536539134538387278952871120641984562156351921089141280284373605324084011077432859629383094999286663206006346723873755938900168288437647226819188855753579203504929648067396208511019595450820370006076761451218440480767111209942907459296532818947818013421558321967763594440081861223259881012300887565980118922653162728189004867742390112923636492729162252469521476371222268707270721080176553852904798668025096823141230781006465964012916085036892572827507324549175693662842375158802345874865658531441242249108918461668272992724980708267134982536151856045357134502871601189889396166008093411950454575362283302264462988320824949042124629186510985197974017847082047282958200180538304132990826369271948139117315445276870764386701056910080339833259456665532415675087682238757556008398959139724974253590716322419356961606886503872215187148600704317583302174851937318657829228063442599639179949568553545973522528807159344202186727325591229078158012976898683544304387856495285239726324528716135569288946506463582737691703760761767082273103914102746500186615899901803411227956072671622542917031030099477387774833212339926470937589658152055533956578432615421510568088978094954621668749510637061663843427388365163595613879929009330465098086414867252430413705192424979735025901488531712715483579138543420112602757637577485268089392202044240895171739526554075053842601864339043303451832021998723116734042745732514905246924136280852337884512307347250339532324090560179672654582901446046207967758714290876002243165943253245945560195512998114912652378191959583544897076585802081258287814625081835330877440272292688291663828678675176366233766090038176629239645615419200884660456391068852042159697917142339352758541085389614243779349001625995819397040492160588174836227758762259554568763698665268313102734409383200985993829505956289728765829712036698652468085710095951234272064841471018352806441816824869155405684482186439845660025674742866481571879345318109443349420421021473267094634746296491674986374967535951452512743953959669772225982249555731513810218195297803723274872893112771925294719150229009159952318178009537440211980154065617109627333129474793672891714900931755966552081682383677839209496100431118777599943004413528168317984871768932738733049812834115276985354855851183748915047736587659762940710741732552270761642457667239926343372302091431995092678737464719959120304383749678642833936979913746579055732515080254795865360329723185906227533645490045404774740012786253698347837039104301829968796400214913287735669860620545279305509335649618890134489856568075873749285946423585129631643966672233506835297890980322943383160275675574437435416570391674804410778002841303368437934258480409532051684334940215986182047627421196532146272447800139492693986978505313593755086408257811509142731376153190336684453100114238894730976785669089243728289333670962907938815202208476691646593479502739939590808393862928956210465483714267517840075053260056773150290207098104857743532883387040677228295302899877763675036621173826697864144735736489125978605659026855071367082474797494570009712400607936063216370727647062819660663063619008791805291279605067421022057517041784822727104202676512063276787078793335445608306071650290114692367123043790168789167053571042226603220624943369861750837429182480220372248556628848733151811936708670965194705739019844993041230649184919839642884571263584149817204454749186270988962991035933754210733022521188230991110070768975855942237184620309127801335524829330484445211876755015170605636457518040759293172179214772515369538069675622820171002375043461070517145011486371659917762617085770151051719603194044936548981305107110859246588082863568462218002072307490162468423533507857710517642169954769996668225787552313493279701521581019850746293491630905483292909657248580985638562054920053034017372420769957555844134393019315390272135054109703595080450716776407483463557821711736643016960583487069470192460321784339087254345422818299450345425323893545285656893909976826197956083238533442169937666020380904273416852212494968483892042158622841395932864979499855852203467653080624795472442582095260340522654045424576303819203849481124598168527779259123961390628208410803514313759812299206939976378540162557804478632906711445645567123877526125287435592494809333534593970285315531278486525562195945688705551910671106332612594392705366148386276787609026770223751254812120893381004275838147117022146289627532387738483177182994255447070214469597595557007106256985749290174825874048752826077488764167379638986246214472784675850536908280460493414132127667073529292916484951918738646350547163977488001417759215141664714723518637792082692326498381809040829607195347737299317873210825957351378538078198419404682090224170746608821262230419936026295605422523924826567622583626502587764082336573061245531317475705165700486970903739150202580381475194979845814801952388892837433903521404568400077471374104620321219199877869362065918513555755940183002526997156592519333834077106518529733594088428316558486959812291206025075807448100189418908304254774033886592377530768621423149988011317504451279651387191411955812313376254637698299523292691148406286692394289329687745559521021495109818572950904645584683577747047541272106599327033046251786974400401494088848786112737075874398706838907912631569141563230097630811292389052173124071817943197769014154710775904282255122450388593155309266064927297246092575492320654330023276515018264579591254310476096829935831495989710554565421887729475098959473940144894420978617217721300123759251294685709107833035101694857005066330202952527961352169207196596431799999852583270885683675459035370678476742285396422637864421920873134189769344437245221856615704719666821005409597000991344525090528419290724342624903125904668881379053487019656273610571164520730877748353795719755668032887387228405571522705909368075678619306322697627334200428036229358274213107085937928351345216955591699997503970851626250050584234987674138881408493652991166708480312243682570428065057141172470199923344138099734975574681141982641850106422449083846247682238434830714131206696791366580865410613158899911325171958944351471704557499620532515589629774714882706288475260496433003216203324670371569227433383621908393023753374531060341571611938504427655105490253275630030012972059687065444496936851306868053681964578564078415451394352733210829107550376972723024170382976767460909100192745903150570285569080463383318444172367734251854151750726133463229446041354851859286074558541312014026619440509885702656948051603479855134007948331061158204736090001225093571487515736865624327092389078300181292349427739231165474697662037522808023618347911603768813636331058877263371571495149976560873344550542407747433436415065103858120407446955717757751589523083336260912111707569564062717852486274966236232978837699928806506305332578515560572569057891466246558903352924635336448393353321365412603339643600882108604370938009678184837742701981316033232142562099533753519951470510473492308740619070876606315113925222556444685255860682323745604846178724610083479130193545619549041232730927374019773623408009367677713905816909653882227959608107522888671769214356171305492100074661228782385754363923160376357367254370534470254325403358802535749371043431549575594521666210086986686298670521141663067296648200374919847184514114747363755525042970070215588857798737320245746404377334662124430394037512515638109414749917531427419043202052335958432608941876638262601987478813155355105710991488706923955624001662368529105085438085981012427288748101101951537154201963118989471277351891951504146213408515072130883501716094144605783000954231512370244444251045221586664453417831436925867688514506655013430035600478762036204301463313672731482620215247488757429243471822636690876291333561825322445485335716502243342038362284221634915735906623063413683127968304480140293901682070240010866332554765920971533596708339040180282604736892658456619811893875814248698460551520962125475759398493057930228422630019650814306875229064593982552805528457448464027178157769078729300867782364751223608680954771178096637861720724470670216574325801963060941494298962150132987144494750383176483030308980899316214174905407022395564768698318765577442148919456345146847463458919909303930368466695674618023694315607140267772272650565128866938673476707232889519203340179697364724113801916079557830814633448473944489914799751391183031870494701211379959773721861403577095835210634220149302366606438144651171612916041428525560478780860500486130621621220950776549513602431429190538834266868457162011329373790979031399483948798552689186659197808340444895310457940239369233753343351591058808396929384985059190921602626281297957671420434366622835082763324419703629902232739065863743549733145781710709112551113255107494777180759933893236217225040858777300456022862531275172521750347503995871840745633733020097166674272545256961614084801377534151485394674300586300050613667940614626471804884289567432676470769629405210397233695762963162750676016366052538960511676788999786271508138865202454064123036978785330016099800692275177698558395541426225347376456152022500478008357108378228546625327015044063412998332653996307753071555674956504197451521786308401916515052442953339526741343206013964097697529876300693944096047771608510848798370675980181946795482907011350314085605190996849182949340513867626163901292543474592477996124652695937293097229992320045482503806652084272050809800644241888471362202277062383168023844796594516128632222218836319137007698771192501330998374173363836245086554658665392608921238711539841019849328396954243804211209191905683480322654770027238441806231264578803601202216667553985448666153118702165696094451810811353014189788167065115990372074132561005013601274420917249227923815563885350110678813441364606937776066895198006594489389898087814240341507394503235153504945201569836345104797195131690671077888722083436263069312996636610382190785958573068423204422179121718005210343781705709954021260602176250872031199864999877732464549857328026348424974970713457308335488382112193376545966443050021389535988517352775798595236140389342242210615386241754267875077326568824946884306126835832694087065019290029322476810689884078271461566776524884194782529697452617694280408005065829902555718661834208364330896831081302187224794246215410747158545045749889920271200745754588831317723950333443742407673566440425125327630099512363016652787322473945996948987792626824105660476042380141100435632862668324677105870327784348968591777392356465654192711492975228827963159103328540379019259215391709800820671450627271073284747464661706297268390260245897870070506447338235606821999139825321390348585907271242413928329029340931642741996370325560412894622915329580081479739730180418688658178504071288892602595678213635627291022827898084345991216134087980320923706502396505039128206700373241452709210592963289471162273495605427876848108668528233573197265124986757630671703644697650016146748804893975183402637264943532193509201593176198991463564219127710292919812494532754792726507740789855671164575168940632819268421197689378334925363653856225231766850402562191597923806541327939430483762108550582680625850710211882647067375665146567812750413677482341884039497598122108483763669907303000029109627929809355805815379617731043758454493625597200559405407597443892713675093751239168511452481620210757352115955503065881541357153770338612581346919486425169230342408748837025966382166257475569604454549023079843213981590390714919040158014728819778378287849818519453428066967848219469957498008490713180855561152197636988127160932955289306071841863378459729330384379415918992902093706420185498555078822248742282579349109857164846108503223777320081285478668937643276008172140848439807930674972940968176133786585659713545894366520216026660738638431238691315326814903552498876708588200135897894679969391953275715347688471587487651787552440995741693453166494116081416535585742171604625312192527928896045012549585716479163959759068255120106303043662585259589597805869165249455461958923705026735349713203007824946966111362431574390684012216772638251022823006172884170789558743002830661660028437425622904268987175867123706025467209444390305185137351511506860768453940330883298217880292664815527764335936240370205305252548139518445426683993507101228318699011743625099494264004616218062525188824166287064726537007507843467751093592120531479718352667495381807429937841858236177622571825328483713453316053059626080994277624469154412435192492225895150077466380287837936065934463028422412613717452890879109576583444603633766401633257225583627856395507998060944897334551058615427613630808861843191560982068777441790595877785625989073005408972629845340153804916201106178574808129252453059075428183247771797122158816539385850555578100234839723417934628129856159247306254269934942056597341410017280530861271824662614281697630181200864071093044676965329137216828930956541198967067925684400197331044221863702575421315201090805566601313346046931682299177736995546014806121781026199482703274557665232330719247993753178662342584725766824665540206121627249172031297830558493584586516143076181465071844347735207987234011580758343105879242749316569899755271210160749013150590460601550528242336122827116530742018269675384404104658767167910570096324296088999721713794009236356004649447510147220947669456264340259540015759829807423541726463636750489454784101382059241335023231648339485200099478048907299978490095432159344409386276790858918131841859491696529800360348337998270718864425326446001179990512534836454191718486211739760017134899699390870214674662016773457793566706028356662650742214656949608954243289701828380209188091606869992718479757797075524174719027897844669962620666684794245512638427755957590644907148846334054171357619710013334612916259803775957650100829581609376655551022507260538734223582005272134252071079387731397404116777765082068119480903082782638649026011171873382152624448610452681758876610510238301805393374871082531322258871462017121643986599730307082180568604316294581922186338233397582558109885026645526209290028839467121716556682710948561349646621518268107978857769682776571241467311083750904771233830824049565022031592965703729765072578746847713731542949754585915055070869774246210149978376420923815336965711374175399264588230810643928131531302756065227692455805095323267046745568226149951057872376068942681692928289730517337689113604841192193364447744105599579857736254567428132997354091852552930471510779951669896781809180742571424636407025856723646356325841904067465572379822609087269150908632221537055058272501145329949015776303018451421994189936060907655884355409208975926562811215236922371368161618343527678593395347276657727399396191749611658145892738456914001489525631972766141459112885553416106389360130977213662826211361245079992940355341065567403607232194014867577081381933094083007887857133117909736527881957361781390870082230858668677037758583268431971121699478529889889762124363518399765740478812660541906634998184036484223969127122024337845203326131126073992519586503008532705883981425999924124499923023857405043143856397159985451076636723864072920082656873695859136128672490071141846054619984950767019513721160617881356385301052760253974174978037921786481058105725625345115355063445909338957993302542777142637338434302275046642750244431452088349680953136114715649617174261274913332621224013252033842225454428993583682175623884505909788845928564533792280048272287326938481189514534283383959044775209195014583118352203026513723127275478925721148962660926484771581886665661961533766922226643700953481319513719374997485612689980437597675158911344118248941870757604418802435712709880596781850244295863666027478791121090223375132117663025350609457872955861811558330266389680023707251468861528660354889006684976105760615512848272059111421756736109512076510339993706836966792520434435130779622605515642613370842556847683885052746446184106174290677186408568297803187933393089947666082460647905149377547575141278890279223895744796169620636986684886360666520643322282858551815301771350852997336031143208068990245571851840529565738629645136822640635721316111884816980761596217137790785723882457051543202059407073521418866564190356115197822784103998497481735694250019038818575695703452438904043487869048650840622839296257503347174553077910735930545058103936666572907178774468810417769919342314816874243693995101839006430920099299152968245867864809653061241202341511595784071649841936578547142388247161489276988572470176396736907847563067836533106372980885033581616598233526609872063338942328910266790211594948090421940778820499473666512800040798865645320598808375148817942251072297965164827353399575183745615883732883377848462799213205890107004647534627066969171325609375640437005854037696199381016207665273890569857977939716721018803975152435479303401284487765795555404448973614002471986177077994692008791200883056647851739271331939662548709683275629831173146296665274828507636569033745355894165861679812700776955533542737826467839118987489223172309502517542830011661654749285610959727398921577244898372930790740031001058562461728495208537430396393045481996401659921668917421419482934827275824133388871966021327197755225015884057513593265947226721602082660931639159803680995417166564970258123912020595215636444452453382439827530410187084299869838444387899832440050705499667584860863236016692388555648579528999261478113532179618529401866758158418612680340588002340861377093225142159996838331164308243277895472970628952437274810202767555975843637160155452819978291323045647393045495135252382476701083819087974051003202556619709959748811994130931357781234184009138121395932256556763608712311026722157782594585347508581890020888817085479728022874654436487156413912255398160949472925073141393762643601574712639797629980607191055042835458159232920079724794982438040835508924310354976300773696572634975091058878144685843911779712625022245391014963589012933033995746141991575032196757249566876908096256346707540734638870293764608020584186274100899936178327945831661307419687673724265781177846683364421972150792667145140959689922679047364260106443876550069027790705794081885708820751133973409258243067813581475553842569020021403313999034077081646761784844193387396736254610752608911940239549232638803414497415786384538093902877148174793130187654102588776247940993016374300403729030851814271961210378308468925515388348013004897946578143797645266963653616262498331217810626139383229308541939206864204260229614881742294782119642238561709564851679752251655298730471072743686996001558040408222994585129335521939153887779623268962358051845060336138435248349749177481750443662275922867456834458007853652173861247293475861589285979000684019497479845411972609500145381183694720023948458096661914655555941600086700051120382968054827758694679184218889471546398377095669369474455622323328282707719903519631756030357338672703091376459322160732107028898991924656778662049232270753608647375528639029300588466234468109588726286105088865103849323390176752285508865188468253501827590207463646453569886831583893993349919435603668351270257162126272494412162284371047993100029050273062190688016977130886164924754618129921925527871313267055205383114969442636262542729558075387260153097140330861417696386116479946667257917751301835570506941328368256431936912332196921534902845048422005194152518445999744409998773554835122759642523250086311795710228565303828402189944762120709991284314770412718312294818592986309318020908416928984457220541022293768923276896053110581023333368201376836961241237175733024421569173605816682308386352384595526850136771580673099074400457793560282398150671434883551112771145693064809327846163825282777108919862001552615584254535464321947003419616794833609892714543147288968883782085292099722228586240343272544559607498589533412658901756169793227098432732099122501330354953176594071948973779083169877380028671338631721699088363228745372531374602271380452729187025136335144996708633432842672883792076191603000951949882824130611299244495720975335201463324521739517027954851125327722309471817669573494333350621512925895895173140367937966002214455589451692617343522306135248199636407884205621311138791654533248997267613796311337279195968060663062748427407025914841279744638989095728762300686622780450247833107490870610727666528147575604137412294730906945145100801606398564775953467140986702588933496811932605435889292874177273954508516360362196926517744840631313820374746500879320246538043517807857883147727179312582780709071617091317648679302965177652555293815015491178950494354851722177391400690846929078791838091093119756062231123426659219552594488692699561074956853656458584619055804078909506663962725216846299558803206968261592003249949963424126500229171011980655046039193168451995060505741738473021583124930995494652969921000871347673019708118528244018654549620511069739544523890876460200526677856845954158928475544080193939223739612540955871907393843549832077646603485270538813828166619703219831993620020849963116743704698356534040329487897305560828214029633680103890018533503722338418523436673366042026325182190685392827358081615939673091067800753947977729354875734996180866640866383277632793379328366781632304445385381979276220736632944082236479592870658296475508614041946422483876320092109315232600649369910998727842025303858009144314149071739965236095151556896047476831003726471106832601467342555115090394817919460001439439867642895353947969483471103190151010441436255714695328509399596182588734694454403011403793881151776176938571327485888155135383975258520640500094201210653063000515558964426693946080016771255557491703721483468596730379834630166101480604783199832099179218293739742516583953238698293549435553479164186625660703779053635946586539898314816636021028111840530893983801253249578791679741706019629941410991174946237262180844348376903633069594256036455554148440719265314566554468292867220987813025078768637922183940996091226268933362920012930160317144859804085574012343807981998054775881431192409475651297170049864187174269044348242341356272408016093115298128629878868012065725431425331440855889908875079293657631055452735405146672861635695708588295859674781237551326879735522501481992836008552597128575709239457591551939446966819988701544811678831399540108767415996802703118230903564012904826632158203287132212397726114683308921037432712759826753544482638155500847498973867222755276872295249981225344386074206168668329841474051843696290682410243251780824147086715621211052962046295926971730639865588800769396837943181104654406115586844427082432541618308759819604455727355214468971425149724767996601674103696706102500312185337772309414573620414736054369381002995683273637545712585424270317394984976954239292104221999449519417970094994595323122330677787379249406963754091659448263369507805151744673776282486369165381778520301619954543124102993775344650532713960472148512540754584400665211380456117289328386127537577410475677967010413425612312431216080207480505882609465843985566275945535913603525773287054839025567050679923418804498129249456030579015701010782444151815944549849203504797984422241315546345596586051709874095553257369528457987062701428170172366099389265397301973921239959624077816040735357045365378834609531347226019122618258881077796879212270299865518409380057325826648687723402017914088688761826967302586440915413290610161247025704401575692647011182627551057265672799498406622073118017933263449449625464490480492017953643550100582346300098738452010347678838266160095097431808519384724811593828069298992559514931671883806661063083513036784247114952385197273324374485356897227799223969593340180001206411409278884106452119302682373454677439894289894935944639198602577298789474438468861915662126707166543024554203947563666834674607858148526693677882751775208464559300468132871216642611336986749889879964518789680428370279529218496610781104984865705481469252503786199902271681167519865380324363170936339335761558730709495953221929273310234697847499158105864842478132085794850738374199377567506352071939009478774979092453168607519923714114993119017523427373257565395792794767221767402657965536488696938391029334956041436146270333111118561378194454604877067881242254269395052326960698666776410421853065910098300880728168260928614743137805414349242882128826032499943560549862681404331502230832871964390513363002470640008421629374206141523431411517141093875642608858591260045405229782054755891869417296235511845605625618922455908264449003664214711044700269857880981390761451179024115331738419398616498592910389819636272877465608311279924086481209889750450553283577692513073055627579476374804015992874485502047493779975347662126604171754813939342613560246023530447234557466478649271055892373850216463499566604395912031481221858259762946813491080894294716020427902212212731480158752994091365309577661973611463761254806380388900506427601606690894560944934275076185142233450616841492678042800016278528299517991275086715329191565159214696875071273469781367004744446023624862076430152635276020340789079453770347339458447108021086057918992502313302819661140166824316786289751166994951394906084419108799273505997845761242166020707294614670904176691445983806571834176264354064611907565708037853063601614726574087630391305991585307169018842757610112295573277497141586041835238316490549360602957088751338966496236704045345718470234065812703160365785992634774172768582056588896737295194284274027998515781975407380989566840412884322028687020348394728170032082687256882981142902701144604907768915476835921922893120811999471913851557387761762280063611892535357211527770243385397508427831366716012996776002517766285622092812609830653743373197599781163141551647853462851835863679945331803699189009057206880422805454439707553922298524147106781046796241759512186379144134421587022994123996182395737844945595553652698482536238564318985191448084673611911258570720822308380673927744818322309191324241943135149943559756027358278034648920365864328621197796366230790683070499530632243873261822546893928383755872524702335085007359932535159522106124732496369275170050118256449171560160756311273120994432059602897258546530575900602368726570284883957307075365267896372885369796734746407350580356162426447333423236663237029328155551193217157852055877276520803255289588738680401360714912910387373193493486324124988061968264370068557962037507923003742152418130994539904228008146380425178290420085275708572460774193683042492852829269305679255487478689584488337122031888999231568365043354265644404984748529889421047075872023331585657405313008555691907679486210386639623442151344015444037615188543088647260639200975379251239257187731557664520772202768804681460626657309608888559889957132092311643428128033477279905417330592706029732517579307991221160754507870597319306219619500950132046228082239693938546699787143324258764148771346417638186496354203991405474031989031775262239819819265293481577609866794748496741386815626352382048884008158914593232489442441286974745723179907749585599137858041062988314983792231537121011479202239837726410100755656565537269119446379543690901217763556522217962817626344508607056609219741102889281812746474930718777973386703996597161709687855044478514523593145467838337235158538711516508136365915684309356213183652391650492293247407871500296078953900514247414629656970282584953955782352286894008789884910015090166645669718012977654548149606610866694133276757711793018651602501189268339361850536744184180635323197677924561810826376932768656662876895423926824077919165175962907137811866764233338618627752798296246833676026012599543442342241770814680221758639383969146136951782839110831723599832761367777686844479613864722492663722090574467149185589553590922846079571030752439123260027956370898387932813552956050443169386072909667202232121039833104225833821572600267700428168276446040371887087904605864850680500415143104364925786093485449543088140689337742171644324210292482312546504346884121279910378311243902679702006327098334871835427007137560527303173357085061058914346118880956851659172137602040357523562123127844713598985616377565279518989266524767748590713522666627803192017894289492655357894636954891114047168555719039441795604315953235951090911886565777486600332689887646108294206699655978179292371684834598960479233673618189689803188221773369487978800207008973017212160631440477926621475747312033090518821038355362853146540217219178932618740616022615949285011994016064163352506724438435040554968824696940000624285561474102109431911261139985846354879940026146098420386878079928228960984744906427091892395896670516482794324493374561294204452133640647983989849208905500944795499070459898844143210111783844890448808999846692573418252408526501267325533460902475117387582188466822782308708803291651604445524600740766521038688094486222402239992009522259129546429682807318094393185255746554325693896310197618800219412652061682494736567222095957404913002268255408353079674230483936677744716152218424686640533750750758473601030840801433940514363756591103037966775326472141363025939208826156606155047496929292212304246450604177418140179142909304634834366993497168427636888831516349812912666630356057232346724738444937542407452119387067353390555950332764723815825777134826509072184007297757503685021730217093563095987382598858420524756806494260146196270715224249312071077840660566408167025135100323638136333982652435759620861576208638738303709135826215976543873506095197807362958688928418727205312197801706524391410276710612865406930263591678368969314566711858980391401159608872054459858712833626663833135354931666622433946774721602085452142901546494011477856503416251641379317261578859862612911975811813144484702383681232753725025767166278552627159808968704094496794844879944005827005018094806670695557707028128743786136801314506711637757451540150366563348859981196335670676309217674403717603038794427835355040137611923753458610597987575328636300753457777876506528573279226436242808435434937109188834696328445058304673690858242610501258968949848650850289190597670236392819405684769799290231147589818886761852561941013347840111365042527842610761825688444131520651478234527207209249948736419702640306487700805687227007789650516097293097036069651275396484037247516891987111352165347391414182124332781727764119502836477146853179111945231686785147539464728270997530631529058624860863180052167562056993339925792387207151342741355586333833479217537799471974426020202091716515453536856249842142871438342268407472317706901205970750084174756274836998857133422143027813151572623736923984492731168760227154980651748079328769934050064799412528163006924804295125234335041468429367030605138191946611818569455975344346253560298898851303711481190629391172026956009023645648172292341000236899163511878396387049246842422671354725288700981716094093450415893618495973908274877807826269431840310085051278721719811055524332022803469592924603940017861246267243871405865908087620652283496869663452886461688099883715740497201602421382622828029197321163223111838314606576363435538571487495192928239238223495141542623001709146682641158065357065983129574157934716047121181851893786344293269053268573129320940914799472350032458063355791212150986780996875236201225397069244278214797390849614378631990315740758017283042652320076823775045329083341233762302211710376682552465528035063220052062021505243467652279379433886071020776770201010005870324324085811537723540467180843370142619021523820705523489192803380300034680741286022120302101675252910781294293288269394605769933888110117450341058497740486219381157722040448277032894291327790834105519894483620190755752727799017831321142022040744462059605598580752795799755146622152704049510237341932088730042955639235055321742577578223092797718040734573440484255785306812974846879425153291143044307369102186279296943555122049142308953460679483931441407796878028888399394185834858030259553383829515239376760044230697275765947009488173778513663193673579985550193994832286990608433743744978967450473604250408333215218121242863312379476095399165879423399730631874426904973946322233570853791521757103624647124449799287093265995132540228825130778316221794241557451472395615280566789141525589441016791883513658412638950318648892619669380777786300093210810995832535068496703797425051696466036135654285796053325155300095902936563029797251524819132155723522147901674413678392202503883644792736634466330295008416579222469270563789883277907268964716711948402340894777086998242512117743098880882067029193700239303871909669195103310855825835563348801668611232235268461570398929185007478364974896578424435999078344832716231437751232041334325095928473050390809134123021815409887156924670624177879644860573082935273134916254689541376021828678567604588620389189892799701778688095239625527112993819972016667844643866568008542993519438062998070112793822872767403465339461499555749304389656533694329911794367451962552590124414360832253147124000909399218503742020947132032871329130450772702548524874021494191019757616424669839806165115597808582826818629020736618804586387466844039326131346217889869429771618967555232186135627674177728454501181990581959737205042738313469388990739938632273866578491242271406031128875753437314208938382223378341024222915090726288443165330304039089617114524411017226485841056487940269534121898127144630422850251409293844004953732597064299534142350147060325495173264080677481915953860816927182908178646956878532342165017409932674289007444990591809141043057684713251849959006984140103712812055828862628584362846093197007171442361565334985833234430077137665527070384899011106572218805062745082977759545540825639502690525438430902171277512467201162995084104051050584571735379869018702001129585561700303385792586957457875977554823855978806133508050037991059575462426419237874521634338621095961966455370752014007563554070284626870060353789878552636222335538570855776466367784260998990522202986627565134185686550173023366879562899896785018937141076313873168451378658204314156126447161797394048694676078214038621516485360597874448027860478749707757844200515468707466051934652361470530771526560392534113903847899915601302434946441932549727172245405712150982210003725393062213622148165871371048447869262481732933364897236016036198496916002780213727412846063071318186264162110344832892800124036297872852056184278607311332613388430799565728606585083432333196797316976118320553347547218801859057898264576776722976520211869125496802126112885531575178114698789388926657633753057876425369154749435578158080803181490995670916499018694210761246297076695619162090082468761246017071937577589216140118452512768153326148357962992649871325323209438567631066496590525392074278261856550329432819582270992350139254317804412478422700665503362342375020387027697487493848353966192117569265472550174246581436756404300097591010430387561097043017604641625431109018574059992145642832624806376047449681476002656015889554803902447344891044765713830148294061137532491893742966851051639274688546324856332236227197303109334328240351423951297800639624994320538655245340853688790245552468384002875381108594551108009404702336113810633125149901131790921885232014251894442778140876085070983202744265011036048316797104523531569058588357407139176670448261724654562356215933005032364054530100827997646673746903946850825320556662001993263029573560548952528061499615575635006377709573273850570918553785897256475053512045270542113404492614019173415687462655201314179565344095785379096105759495019434684609846769917099892076056411134361024470552953257365166826039757927388133764089186339300054410204625493300705706963902233732337805583015914140898116147917742061921357444553992213955959565076209801001966550313013740395147386322855434432307184986314183237867828993759120962816467492434982496586004858415471328908723553012296940165140894491107372938571779016917538636250627940218454499840320359477567143504272196563083127287501782222771166581787716779282244738959904151164900380232207503491125214014823148037279296210508330932740845120818224032077858762395536925305013302314293237535602852085851221184213168117444558060842115214206132341817949310769061837598184556953044785368407319561477251832275871464854570849165081149703434022325468563526270917157773520989208688120882818709118469749669005901216484294062804925155655469100177600971175950673315614344474572663795296771438711927082048877248509342527383933335765802848343627070032048320018005599698159414970676937057082176458817498472559526985541983697963749973405979446734788325462930210740301144432568863577466562395605577097100649257790888665789998908083664122141736039138582521863641085555024232953727057391444806185900952933515776978914598826488358238450890141615432641962418999207526583077251319646975450823668213918804750579174733636804885997460297678861766594812619268066278857485266492910227911716975647491549741082676759247744864223353555466400656059684748535418239810634409374920580037334432972430796592148486574700740541108596641132666692489130921295241744102900272270260375675835807458053269814310451224300986121959995354491881692629670473374351793315405016704648421354444901009395906402353161848324881437989595832987024590035645328282054768451793257437070820927983174768345819765929419001762662220191515156118279981993790390375176437452889117385149667171188607378364530010320599507225450085710506752977863303925868257570951002245546435228892560568762180933636196539899762451448960612712756006560891375107049496326745461997616291333817353379904885632639274769469983391903533945013417655718744362665914524939085373067905635307900945781778101324626299644299440943477282749040663635998931874710185709233697886581269739338516461669223361057430824012217196262922603914545820391405710162050978691522404094562533885958227489655484549835298765979408819455844997361022699986300316971037966741773191130892728018511058950115566307817682309794433799953970085262734403865122117338929717484233579413007275406191931225327065892919406468302079535980566384054222890463324518622335920099017924292940257823143903010183743854600896142859886351375254531105008486355724624897592326803847151992249524338616781567155080280062067109103327520498510513735542405481726934254719194962397506492869734012451235858066021377044347214263028881832176586123492528395136008902321889179970750179124910996525655441101119798707375954099765435955401927079640765817559649928897284276644041952332903153199216504115891684412739814882954723922044110897300224022012880558712888155055580719175687680438054539626394099814429868724142228775083440208600468441171854511317706411634016774713630363310307852417039909463306117729594545319628916819233305745620616640555004116644381675789194606537699326487958300147387239830223731588870928264893482702978881432785542439226055595963163107618702008682480441550558775261137762615515035722332442030207329231974323148539335090886480634836810640890883581855213904658871653597350767041087736940916338653175882024105939446569666314552979592162750350155888881992718446405658280766268765471017481300850390244285104202652821029493400539201147936562617136575212577104683442390145395481382423529408074821293066097112881682139379064231637595318542779684200992218353248763407851617388645258598055465945833455619474417721944447159874493689852158344172421574923461983163769652147976327895375968152728924574676548485732578034723682662083509199952200502063949453810767127730137598158003614869519343585938859897153644261865426947678755288430603597964111636157682896318449336609826372401705877868380478841292658590630824630731388803114210071210489528985455425132575817004535103011256261613355572443404467107706899120724836329389174086380658988087912465573715128505145938040060099084133558405670262588232261428431128762425196494683695669768605809758711175543832282744269782791007350496965992161146396933435876671746373274389342556522627832619461660298235289816174119034897805768534848769901943929057291891671220490221158488901808428976854014160651500480108776552186911970513077322821046840038538750723603149927931510039889386852053738959635285648310701742283843969983167279563540919714153332829888117123471391019795874179674172799980463502138303053235964556703600333510931241176298756869348174809543793637196440042223769657245182778075146571471909901273540569289592699003867150956227692106148295799998445959724518489777316875101624718576939174379965112774391238421585706471407360948394778890199303134041066683113025538101121967087394673586411345477245020897775048412613206769732122706466385533763038077059819847004498277971311551988686541842629466296429843124373932251565203425613284043232759580384435681661560794396395666193319829861759146074257842611141528402623931847727311455329684988866551521304676759425189702479670990559159299318916292711783523948311948512383277537721885450180099460416576941626528569766383930058135636575041961842575491370153212544580138921418225062890265163929590428493891781809212409012581226416839267853225063740592117913581557460154488624424218871103128117931214945855483697461507804571599912927753006446056303429525541053158053504884211767023885106481639107416167849191602955961908781226965698409282953957358945922012879226425071585806694993953172944585869390899730883601960956477117314536013546348790769274220070728021677669149019569156313136252838825445363369749777768151392440693758813386825242514384556119998609502910121755626103831178980965830407782677844168118961239263069035474952058293441364103020154207441944013003944050541547710441665395986681107788962994951003520569803475978993014386824578181697265104380758053046261540871939987855761737537428806948814081568144265297290659096875263037829942755383693578304311730120535855821269231829863430115460561137515934459503722495136341323151708096586330395139456096649983153144059698574317542417625605965391124046477626444713582847957412103232497623222920535564824522593465290814078093306660845851441855618994795967267001960794682560913102781670486074874816655184166448432772010297259019087819241407309382850369255967124023940821448481311375698823962976016050981356075555317850303658876778943765537529065589561188687171285504080398803475093067435041471958390907689590993966308427008923764021016116673622813712547428110658092719325980281359143136739728902246252555309958867794931656898105693647470694702883268427537190773012799469810119315763799124287756302632978833441863937025075042821545822318589747805364533261474180378197613523052367060216555235358779155969968596717177423022321331875924599859049636380246020013266503528900467977684129298059876049538544648223770659021376486211917737415518193715974904080100220469096308351342243833124572945414521732638670257369739578790184575326750546673074041611872221400772446935272880308995663999362214889188049780558387489930695478181291043752286207622341722308724143829855507144171528120626443226977721782626771649785111893833123727902938496742642432759617830940286116201221048386407455928676173185919404797957460571495665309749179739340051357209353666848842278318411918090767846922499364883511128195937427489227873222758867007551310670384251087649950752311925283831066058257770656694776762409182949994100790754572074371570623240411596211076641897242370095270329682747350556245975352716782115039587007554986902452600597455813713801547745274757074019489129161707324455286185186861213796006516627135370405093463753840334883003508126222932662431341375323149439310822826001140250151800784290012916735665112505332386111317678850941019493955538433363059039538640793552679166414261245364111440111254895473862720086597333132464281234916231050962496110233758193094122735025262251190644222083196375910830185354633287489844103884726861352707553696468253149829612204218016165234024876267147520580491566735902099906535623451384191428669171680415871971119062379041952234096623744938729329000447590883411100987882258255807202877913135303920047823810178106794864604547553160030432815758483465870211172359512373424135065718453748216543470547937025760563298889252204323068013966363725828112520314842256247432444384258573568406988297594925200809850683438666489804760397357723703870834689740250513461445004175354572289656445505489067338270182161192460509143131554297161388387177306201889740228915642098921316737817963003753888002926132889429557239933346330876009093659990349228098464856257045493431971018605094824224060633756580203430475727433170016977014956206957375868776941940718026562955414009242919643178030963848697179030787832723676159307476037924633433761990211646708707342898730918417520673383602555991000098533202148757985147082573508352088111947787874621366488688636662652009042472532758095845617836323997200974072777442101826121122598057157374416669440038254243136087885973330692871165225477610057028055948447334023951103899635321571107491341625911231168627679541930821432231353486143451221552673978048402791730678998381779905431595666237223601089252435396190666059494536404824670330871477706541653473381196388063709672656082754789343454969161567854849891190777233624481269766365059144535223904410327144967777515921432344037008822930164471619515776588273529708784894948428978757291664331155957049842539863566046214460732447553841763347325656783758856308433925819542051769352031387893833603619625473781669731739498543203050668632782863492217946698472338201272726434815457443900954744640359463058772990447765592348702544417318940765789304630471350635377483724385037820710216402173108910752788563874974073820482666156681863654503496148364730598187317601941510887989009037685036091886018551131035651996644996994112296497998209368715194278602542853278230832495339651305724783574635328521026249471825576057225775897674876243605015817304907775031610594097091072869086756260380409865293650996965952621615709017404622341853001331260352193460827949033963962083100961237519392860326014006521504327084539119634442016094497154566632792245199243296206101262241792547990208121126625613441588778243168977978500900893408162172073690313034912766288761661094706012324316966148432598132140410519526158262070605330816163011052564030502453910178294416220266480698832662621509428459929096750425132581719642083462164010808692950999778767506864593662083281794250655363684241719168330855456242492184609178795608728359128238835515623581103892323876854101851429911090144148356902647899056207240601284525514641005482477996963954679937361611582916257687434419147223090869281956933688755762597082345019852192395478361243338420249669228978038754990114296313652293508447716381327823831058817299353334345121780373270704971158919772195558970209417475249512291055930903939052726550573610153932903493078122563345827479177846031674384500192220510736214219764598482216849329176408771783708027393557076016539062775006518859680873447724005872203829214884888635274531569843366799122020916133241411528942226390891921041479212353363625817153143520833588189799533824597292538079830499030363094210583342939399057367743633351773813348066193248755828634277338997594204458619560162330288623922973700783344437845255197360396131133597966863903421081461091548354240534214004187334635511627191049861912693333245162162002635048386873960110638083778233900762492027159059024173799087809380788104700684240161101906751875005357994345421705951467655467809117579400395299182841596828177501905127038024416904638807180959509925321043763265021518193662094269231568449007827066851065234700031142756278953259063707604786706255688432365086763819200821875381594819740535196025371824488540300623897345161029861756388279516675981048189890365516823571455222586286901410962009088580749679137251214182134656950530556117988438148493344188865773412886129857533496600261316807976096861145828972047071677330002741439733285833466790185783410491859682826649641940208192263008091858723005478584349141089582807786773660106289591752584596580115790302186085050764386636956804933546400463731665342795669437061377522506105361686510953322351385503101185720854596190046999769801703238980598292764613688946163241502370030545999674969737197366100321770123980309657237766498962353731812948299843192350652477474570226947602286962160662142366144286936241333265976680965672594404284403791806242740369604002477192757303197163347310275590814933763399075940875977655784806149731048962520765825833065253178135862575727014051464448682381018223814510778466461053658565469794607774676332005671745087187398753106517065700316603210034472304027968233554023930549058686313360006970275997206850744072695295631011096254272192699940355920592611789268090499216809917456559577388469238142061432241612568987310438827375882125912292669982565017458305598059781975985956781021102879892663090080897121992519064970530809101987354548489447262974349186156193339146382923725855515700472481059623271289488357431679445407678624251752481630542985200058164472698574014078435406856462295024952728676999531498355350437959501846128685656520100186882449528582167737158491276909685081793483311861570247657701902051376369223938301594903406204231224218574328282864519089019015374906849145760451363274688415243550648628574766450002660219077736515288811564651897897891983004833240720312893724663127249131602357399833413350870977783331907889361420537092325071128266902705431437923128467677335846031928550437127401718099917320421528468775001200125858781405759573832350114261825592950370852171761041852802815830695131372623051807565614754462234022305611463945245257243696274895193559968436969533776200766978137988585240588659173802971206412682625861060833981329500371492029775760014150259214273233773765833686382951741879360197904500971080233664686409924738494992400523135850188419727002056581973870674330700913188274165944367946029952081981542341481439564738348874385490927328807993569514335014244406111128669146795299730984932884363139280210279473193663456427346125153262362467651817076021140003898130730329111543375212332517380102699520862581425695239105285135740794973315554750864116763439950722400936646856961479896599883512527878395458776200150769516068758966979188060919169896325865265780592625587483183281240896609420151625823016570937184607257338913706703440318357163159890337234034899009713710429149324898901296937113391929373695576569353997987103628733602887266698066395590309703673211200239137497437852196049818533124636263873525275799469216759545619409948972509886863021737272132922704005303277122545409663740469181948362415729992420697455100301001255938652861641946020568945896674137752055396540537556810748551347737684935114141371525303819780518863174406859409910853515395898167977581716123702432246101251487634089611062131978965374568508286733691963511625400531259988432738610193672468208071666232428957075315299658277054017997394906983538152251960502022999134702815669228002386573451819214280103490730285656250409375533249382810606697953069822512275096673384547307754566836844687378316445471080557155095233853066284686930346829551981378779768490206824360606202130995342956731713426233095395639698771403993686728993808236380398682894670757429374241386784342971225801584519445827491716296374660810235537509398152750731878828105540632623355465330201542908029768847019649807950296749937001326308829910107346616757281326493370807179017439522391797266404234538076048346754206009877417741496678778603765642228621618088284238902755149623213598523378756418680668291294411304237945488395729305787690335421951775984291137091459708432542051198931300745953219015539146610003392566119057354065732933265187645896093036471353535341138829497343341734032278930364124780119750470557719886616543173583682674381293832225006185310308959437155219222100189117084203997675248820651541195208503075656674596404099019826961825474033658707393290143354256836254680554769306322076734507066917177201445483929123392667055530079506995657273735701943707321629754515632498443010336837854365788059986024251120950066335451021664620964825303355885999638101140685401822759448559730652185583270426006255858949419064964094352636070211717085206384575841536666274880604793574794249580277135833057767792367422215548456945334256171672250285277866167290016747764194064240244738708687053505906650330370072059656367421372293160144215097148060487769003621993582122363488742081576342207728784528571769305407221475233873267418932082685175388446564045168250084223427298128436583893182519107848414994130120004167156413447752043346704749289934971052672446044786899372046472444120758039431231758592681427275007331768240598330151793152834702040690850114178474115777338612509223584259481457414158364687687076482309236998192549111374970306853488229730554889061559590327255021955188865020211453181289937264890030092723100695048671563399319643651513877199448352306839146823564935814326448496482156092205385983639628457539653282073557614463351001751582162723698271612606283905983748004417536661478561458881377619607622081342022324600666869685946666192968626704452232213733941081891584896718012867775753406700142424796381410827847642505313662296916570854553670130976342185000960140993125475436015032376708403025680693619604522046498544331705623988554880638174726889596498128711703625646433361442471507089692687750799574999722511126582960071758126089130455304090360706071323052461635640163200331238952223342225047268759849730576467153349991509703518772073669940753303087223153704559831895248081186140998673814250621995063727142670826792864982699891177075587007170941868173957394663079874609974995770484535937089626940444288336295008230079892899149413346011926899274854455831278838018767605412102852838510022316786417964730661959573247265848972585270190545191253667061347065510860426663416263267553589927277449566691868679584669311244998022223523909771680807436840220922468649068017376921238907323906390418105627636065964840873692134860687618890528674933137058533516173447064300792764428998515510185835230689399767356765100388753170973580478869078917376272715133438262487093722468133584879657051108726907761008089935983807088468482803348151485781604632833419349752182473825046874572131027062888301447680744930773726446636544759230586949558958409768728348653487094322421682827252334521979483927764565732801694415475413239336962422744420100750688326901482629962612090434814748767461063438887967477391862991261378167133012398330335175251299347897038282979705055348291679079684461697313408247353976876986530938261444475439624691803747491525404005517400701122351038402755910769747446504319294846305133820347581606653041070978319715397038083715498252521535277048857610549789876911940959894959580957969038624122840498634157400385063295309391229432792374088466352222760662330029313627646935712118854915865882046057171632030163303439982260965501345009774481982283949808873928693988686040990454287280266466817506145391488316908086758526869197428622716131493168343931458193243927733364482380798251090921874130714952974396706074947150883110822642396278243275074392564781878415097250605699615195419294842969991959267718783445411733101090846572627776207647446997412251559866609628517837023822110551440293242373916683492768468519087696102362882793121298602344668472215296208999066586849470580412587287247221544842005869894396787841128616082453893469509137934307680469789398528505228418927946798128464297464339287616246869917101147313835610820951795826911607245208574951906504963718740557983831076706551836459690448910541227177427782473331841019561831266428318825788169963539955763599854345518999228200152206452466104978714836512962252519709787318692865885609932883867258634752358247689766938844078286147428750953712813947467330725705103969063890483063323251265213338383201131435254004381943972828591925773570842041220061431944791518714009087629398834410560583821243535112918448744220478133214132023067312509733720326716152345131304015423623866172145073921951781886875697323451223566286860720103080630762000396659914270315476283588989194916362385592632605681856158967693455182145447417200535078635970325956400943586190885776766434770879090945605116580057647525888787340115005621247199119948540034052632146119241368989350225418401442037122827954448758738889694110646635766866215892123045048217442277366884825240751151566214643250621477090144281699230869605805344539274106535786252159569240679094043546715593349898924018436525422419253309070956415101637396485022791179469399224957177673295697489522604114954875680392717590584374121021984642591042193349758854216532298891987362980709870260773989471219854015413705643544515474564728886158439274113214794464570279847542331762100935188457665618109200158624161056798845646188733041232192001729206716897442393513053591095868444618221207004251192871236567237324752179985566665829047767212259822491783603617573401970652144648007677963048357456933338894880750989493169714583863970635391695053090943638763564805561265418658934078156175268580311260528660569661431988383165484651673823202482525896151030287472402266250433433907583536111339184448405271360438034840734789987183572647769272356439476874915009464726711574172423247583840659779664483287020011526900471114143938572150936417537569544463161088711353956388735487641054658824093253118072846330702970188478152366619341577026635965634628838956760588900317337139255977630600130259221728921521370737855272799573057110003549414223990617754687873399729471576048470108994378131673149831022169360099844679364141979936449466967339317134413935194444369447736970383751228054148990799615145326419577196305864021733454624934028141403036673015367058170026529761572737352599567648339960159201862597720225801903938756780817602835742450898518962745671553746907851315999342256788538936211154268583512458184344769843975463921972889105664148100743570638632347070833887372819920028526098277544471016416189126643435726482952201231253584545581843558252906131796325149381634836081617157320004961875065155001292241505197664509693585625441445863959395731510191692158750612470986898746110090233282837985206986209195081725408829330998286825831034532944967658258516166513734029240075847549466975622240062393820859195473395387792673332231328685123977450522137319592193937970554039988709456627173587733671503835189401015216456126935696994743750331147468563791465680607084084043380888721157459024286908126643117157161174455285999093468704449222474384857153280285467616617357041472366444666657197598594451418692252779317971144333007068826414506200204097732353222869421736290924522068177091204587528911773557107767811381812903263186632519010260084907562006581592089059675802160151454582289096598444400273315660488870508023022312245701516006925612154215949536114487455239008019850736001229951556301794004739179228136306974271574865600597002577770414230315092391893035207060017039202199838300597483206925899688984277574914320043303701128007186050528649730944748471381957508905147559317375587641053315819044129248421273866442700567774879895561399773844647659099078162034885968614653797855024545180393738187157612490891681668542820655646354399314179371168966652702689553612193988787559810113034900839383757486325827560867544502787428359099702484449415344829160962678248912948363587829609993743144533979525597479015061395842157271441728371336669725239110121475188993423480270917253899528916894454430865472211769444508586432796510712073589711197741933963870530990015258432189107240853257250908567283784663243778812482211860850736294572679579844392603391913933252873527072298706677415941186896420788364570505965538985064736965702047540891312789042426796108582136211176788853989856306300733412355234896878201250584079806311608563386794352499955340632166465053702631850191255918876631374755504661826748177393016355233516653609396663188029131611053383405750061988015116536697615656874916751857374588810503811498869062087187543647503419210721572365348121399750929634693452217074643210818359959809741324560096389173279964810240538321629951652645397693937950804534677330223900749960809452114890751038667423718048341751611702937814622733405911663693586607120592089855771145603518022437456312781387100119836318973929090657014535721731721378024490521475706654884290921275937248837921031991400547376459717097414470046685651335971346272711373911138056784779990316487890927910673211826329349265672306452801500696097021648818220173361307771386223870471478834736740442667954698102666736105760262945280834954989447836136613867679311359731210776322211463215332131747696924319022519170781790492716449892006255143225636260705702922851164308710249962582698629278239862481341893898007476339852688973385849573705320369914043863909074418973168703748595682385004171332393412771166081621469098849780896945247511805740687001844938662449614041220445530375636343541019850658058752904530226803323988911816341298319707623325380938346278002018438444190262414787931662962620990986463646924550516943340170533971009538198866295034693825673912446268060805894700926222338994115279681718697107075927880830831578192371343881790165037395731787858229004311263088426498799112987388725422051680956810089824843336657265416187158537816942700891949344641730205609618284028368407417263331164758660700782085505351213131630160603664841574072782145233369009166381779557527938421905927821034637869967344996788894214450569825453280131686439727134454730799009528269714103531548567964034398158723023726778188724825005030290472412168276357846648371510057616100118139700634308602397824104225023568304214015844761275804043035475775614184249528606302472807966800515125538642026254816126250072033201677099758440225559305014495540987560248636044389029006355296720917708275848939753215607435831066800394695509984796361516946246864038601515094324623183229096572198262792990924724466981860399539242388924158734713404470537591440312117007890303403893258216245484012030541594020412374058329542510609499369544710933661260276524370844998315049482783520426462421466589802964530700270356380718394132565913404630590895050465648964072787868050030923693376530757012353021265570259436173219855655776660225882535350259427164298038265612614456831543927610174829718197158615037377231008996098741845460556353092687705734078668954060034741671676375670721825145162537760805018558084409999211212422073521916204907744064501034920510383513377457121168532659955036864181651636863641156693059189261000372242730177129433816806478200456234891494980113692583066600223991575489589377039158222794931524281303888895295034757702321314349404753313337853124736174849194076785015217528489757668345244348518301716951135148550606458471494273171037893093858426115987295664291646432862415475276571047472714043069261262353245245878490115532956008786066994042166303521227992394877118520196426991753926396101797612572609886355645928064002056429945324432533529116862272954499383684920608528162355126433491428339313056441866077172863836067410856661219127714724426557530395221220373579144073118805961209560571021368145346936053896253442421169808519629612581366360383329195489256725250221175987501445340372054762366438969898489650418184669520091939324411080909111403403169014254082485019780517002839754755399564230588482431019520945128432496708456488547687243968917859820132177436605046022573080879224034111716214150590868537572225987194347907569238890037810915994389671396622001932817566561338037609615438027866507077673890332636793097597054396401625552185905328617159925049501790887141185125365357916619927094216130757448270771908405051062500957229686632515306328994786612733772346839248752020594511523822734740554071516272939722172621382394987873323836955344110864372053647778662975892582717864973449284721279806416681298536590438440388946530795938267802473898755177814393272887948184811639590559616350810952342790709718101988644342402830209576718202767885975294671399510440016121522671602128429814356027396592627896855739085114901533699405687635301214713465690684664506056741362064030584608096518326156024558485182646820341623559897808655373188503236904220953718555154676795144908307062347896615726701541355083707325292584044959602700726507700174966419666360965477728537732629947802998276530563566524650749630645334114641743249420600076958338844369772589145693505812357729622239678391450935149088719274851002493141165334093812051971885596836890081408561288285923983839761724454058120879205686843918501612787374225242002256605984957362586719474485094545296337681590890256661001667829796490153239529260364735646994774872428667089958983355469845046247670190619260013858761379526861123592368717033807627276336051821882452880941589333954058729711534485013940361062895456012646017489832418186070286450655017067268661291403983824932386051519884058026593341972120693452537338506483795078093367289664695030779910424277073357062332961708439537758470536491941745143290396655553865528931951692929550597211938555637515560271921519565039516715752093475676321448023559471257112405908993098373304358384995321794563930398881843039045771802991635323084764908133242235780487294629979006606205836630050981834241731615112011740435217462746225761667267170018496985493505103660508881109500302969303915717104804656588053400147626328013052916741011905269043728623612717427950555685901341037957775306910740260783630978667717394705042540484838972244309943976529223619217130304888545153220734752107769685689148204524387112179196071875937505976209960449875644110257255178773543375834737339367235304146654913286209038067675281902775877579323992850496417349650853825315752467435690108130457320847989940820755947153587587615389639747476098889856212360600714802983762154347706430479522572940072926891188537175723661772297682766600128927092477488777346493793911225230906960851282056898762764523746143635161786839484985185241952235650378273661023343406649728919262148564679664037385882848720676036723047094035064535633169940115784610111248837577262406684623479543838274742773174040780366033856731339531705653228118698166086127620094160021231113039741585574458369340874640183149577202643291676986854728840770857714617502098004216925195481079154807060696026307379861347379079299169005839916545593995352514822576427515742825461213711878687980661333162363505220094670254555914536922574099831536316118631956309299927601968150345136047099181589129075961366637067520810708148051719775074560251407777445598561443258254454439696115059918191533833346671158755835646574861519568275598879383386668346498184005315545037271558342758274210837241174379486870705474598972446870286377042547867106834779469304737536418355420157192864932663611276789660305585711147800532246478138056382422034414434973496346546964744690312874760214174577054967875373829773985103241640396371395135977884406888434886955754813301130252328928684987706392051619066209158984957167652319495748136449594494425637094181971985968479843484321951376710471434957005891443743161647932457814278420516428102514482629055280211417245389225371545847838331275130223647364306735253463961970646559982496782452103466966236203845284363352294478891320054658231414114042050846882729360244309983378329733822482103771448499995056195499278613894614487214056867271784524427761718667051561581861969862343016096117236473824101061180938582733189071624229187925347359909013157780529219327247776539211886840102499741080731326237900840585338690825983181960803754241284555332240000516430589326306202896887496724517713128476534974781014654576659268562652879242507873134854785397085051205448465638628748427927375967646878173193342520924940816197463230536655937999290505129171438640318383680227783685625141679231938395505175740874616425664423829165687266656820063926166698705376729405773195431426305876650626978419180204805888205787117866869262347381451514644581982116956372256736369257222028676821737499823881959315555347219592107198266115181133851819785503602562920789103162800989292396067950000606630121227037651710325997126884022560291311816322680493111054256752689515964109349523337237388732523514500313423145477970248451477910003789960077864237983117339319536225866640344642342064507228109204770454085606266672471488317322144339789573027679464205870877851158731783685415211281551160795427457178810622717674670617726490763774516707494687831333004360834543333233289544510968685723181489989188795952698795261882261893503746493554890055946631308663563434951075855995463084306024776333145852653535119273234067066560588990735798341202675227095326415618985436894090068301446714128483284010573507478781473264577295597868994593049966901950368900205714395026846014914818390968579277279994885608944287491333202266766015188868633455470253468068079105441557551676870190250937760715978703739013474391869446287415210661182996164610378855716608252479958280203157347638971999337541876296655451346684313406833009967519839168635777124705174497881461955358228109361877692651297114187020117104006852245903340770431067430204386535262516658860533333354522728022431921686896405134687353425079777732355725126521430687752083026605622998855882291259403773411632744537622448650689066672785824583566733829188397264026258165900671992068431285838381112220683851146377436974274350588392278325179579982300288669049603498574200037196126901501481629302582042883417579947251447379345353038847116091352618326817229874194804232550693178365017550802318507129786348099115116999051283628610325076148709536785662439289860702030396926590506747716368184039227574463214346110367987004658410611579554887327011426035987878513296880669576528474447865468148949071441706306469116883500772900393714798868218228907633142235948129782362948068496945703549670282286397367296476731292013597202132507812410212583153819253374723986535282386778197442202408223485576194835258471543055292973723497656422284820074071219660941995309581102003278713486599118924905636683121134623643255966002544854828136857431376625068089711995294533771553292297056816690067211049390847077115954845817777968410443879179705472525213258523896446229866453345957945300369736335768323855606272475035609204491781878077553634121876301954528996304044005877711367744309202898770830754567113259352985641144164566022162460028440146455641547850235880216132460825744604606613282665269503512949189313905631371891563182166322629737595094712891725945179412949343208481595994568764656611899182431527603224230265061347162442236101478150197331829996567201255539498267508299769209185222643187637224189795205803078028008214493718906594046835893070668652776687665420895866386426855962704496788570782060373420117955279310838094125918593680228369314647598890922853044293242071866545647673987362191275471696982321260372923020923158277458944300826595423416051558628099954887056990897111053622662537908780883182423133110789129145230604621791926995214301678496788230558908963278624554372044280608201832220353538829329851972389317895432021709051138087869262379302713495372262578571161447222108157231919150234389569610235913045832544370969942594815772005127910294152891525275455399177142010069078387548100880695745598203629128262576526708792720511886202312840560051098920845084214460156203677111250811447949772181623411542010752860548615185039239281182408001052204884250365606666093965101605663199659217312853721545471087880738909828039809462545788099365372454963300844540695368197227155373980476101956017461399560696132581071067763980326554862898483812829787501518186960650751373644780585480636337727792002624091914204585203166768327917806244661357396553490988563882669982589479374741761967954746269319289556193139644573147539981648445409608396787809177547339531332151680646119273193981082815516436045855596760833274396627730051944234022344924081902135548570341638226565341669352127270859916507995779493344666934879051225448541228705741900917120371834046290027871995067986810850981592202400268627532215323522981589069683058592916340116165840238990422814438720088988580003607390910486702685239880045537016832765201685016721657319465483767847017427981572994012697534728041157813453232616963724879190859539460179385681484626535441475762257868694918079804161992134950457725727371509105698236791828043338024257795757164758339718029350581633027901626036501124794539851178818997957676891491728992592530107081886543308936477974244578817904124033145693707863297131513107116819709398963873456644515828229163622474978451608549026837479815574507104241935844842751462056960128141840283639356341032811688096282969246450146452363013076289454491031914235108081937193463039456808039462357138696200876265708392343442138033547620657269011246755745015649616744418988015989774676123031020133472366242357634376714563224703561489059462329682151742691977076904348619932899456177703432730760222695517024494949089412277589413390299853785751976471872720949391176533402911853394280702395764630422854879158214847054008753724136576820725351483908516711480683926837246653424253897607945040662711467779375657354520595314536647513670262725474496200285342545330872548439021715964052488714314269550199849774519532740544355718868737200689105458105541758023601377997763896874505508830161416798105688697223160639624374996197087636527081715157535757242184938418513682220974376071609276462405489313964758880262173675876507111868885877850581767875969515347202856035406692572767472090020584192215724791987298058219096858232695930787999377183726894024381914492469135777798965103987577559742330542733986853506362349671531817887205752944804973905100821686397407488034040943347808714408891477492024461638331443031307833483276665873772471517417869551894537286714689754018854362649753349942736268076636477115135583845556935271099711133712188618378708523347974741814705603757658996106941266693310572562822451376801133913673285376105047380997123184122891847919157054089083004732716534960763233370809077536882739676134373948052555161615386062787155156105074715090948998023721036696881170275395331435294811676020919502447553926700061865886961231836198306604868769583502848153409558969636782469897950888244516719649145892844060362906362839312339990459909910860471216013426204962345566956238533314662699953357369030679838052772692607650362477449682833522156557247588282936673353649131040789501422811901029060053937598124097792708377209598693654274747939485947515097650755708775568059027375445508013938781801070537243454253169623893127128349490293365324856190681091653394897808322610808652195730926833312000196638211788300675392000209477720668972752577543690838856174617913358736815824060147236305270472848456820325788883479575393076373938030740526470228030068080833607847083663176190116635956260083951770279113173558175143406341451455060679964813103479472998101575101473869196194075254950322508757881601784133547102516708653553321678926996071966268013974149994614091706875887818275338645693660132594526152292808219053815733501547838989137673611427091474645419352647006828114125368905441737669513260529416050952757890414247236060658704492966444781786915445027297024429312667974217457891233450505361714071827133980716655983667406442427747195171548187927013736092670121483124653925245041241651579400052930340096640670670821262081026246296802770778846446711586043486115761255866512786774756420682606654393188618492141552865852961174161271714797889091582420936714678500814735361648572044461424300052416023344780260135288974188921884397955073511132289404340198664334728411083427517162621811272564293148234030088303387182040603595958441672222793158966733543968435875941315046680493881571201024222111797271380550707210032250201985232598428798373005567337465606888825933515361174216206228005098020686380802733214560858225051686045290186772237094799261834736107314931283723024837365845899475950245275606603163909943739397015894513880757463096038636192236714289753929144722961665002466924973732937354308039008084872649427564982991121797903130993285486468989004965934794849430072122513247522885884295880507353027398806659870892500005089506934989079811443389014641080109604545169847685831848648664894953081519513432703851906974984045950165400898223304362110673611379813637937059076894074808754719776415903934213316310087311357573807512568090014958135741609213185365942609644030135604769186962042302035305993427599145513222868324939563236596410494810898558290966565343029452413750360768302137138353854812143168606678304939029107962563989203886833316669347859647405460521035978653703903019623611717467674856735414340830178554093032940350791298338108902599370206653811913968349705079538853065203021548289381082872115231329813985778618086751492251662403309514650730415373822962239856379280677267848224813180858136672164384821673350597178457237513086243408595347850253155268264593221232830522549823749616344586136650847268063863745338476254962827963470923650277849677806573573242611474689149147560627847566816006295630942518191897647015651342069815099225201518477536499140412472323761293833258202828647631030859228918579299535897962060134528330073938580832842648756785212902959707265383636391850934347299088590259312772325504546747418609068105308256928897689389888777352867932887385770046209491975912206169854707469637281509746017832516313922691427057251788652757393545757357032211599632465543801770810894043993611975458426039943449176708447088506013281656066837543464481633439158332478372372568996348913071378755823787669082924888610125265105390081457643947256271318850204889972405926697923193854742549029574407807354639191370415753706140638766107130326271949148082710263382461551673564398974922320820937352636758951687085235495970394471970876509738627682910774601801429195011280916238865529753443945038768210985427975209579549007565043032844015828672090066839336379954939348487029617436410273000743438660178533870666823348774595937039589009344329418904240273370773553350663757141143255249929190693637089946564504811170300562000510823125580918336160577975336606222090967601988517705277164024520867563948549648576418114159850950337165125315744400716637549874277894191587750707638173507856911800173754557987331015906079732933183798747951799078781468133003335199094617399149604026682135085570232170539051178469160414914200915303606275060311615760817515083166270457449911774236813692788255611958712520116939452711481823946341624340525224753273123728624301438812377460033699239849591082593992495962027817310044301360933558878496660206500331323163535580364151280973964193208356611467091328517343002212268927651543134528799137810485283521718562894748580583377668590392789968610640087865693217193555867187660364844926652249314587715569364712198895392238583824448719686720324389776004972918799697971989829819333306280526554910357141396617960884866882182675165512090214254302476063678932483313287708595974089470420730774217865033218752199623661375303456010912596358359115107693573538931214086490602892885598039199329218394042385946155761884707460860380623841863412060683311665268677722022479000379231570926786489608705512085495188710759129021271250220613061317309108324792616189515411624336750502863474724089039334095683648110269178888163994198917345173616059613808805326616324488693912523593420215758756052574009163833351311974832000925090377489450203345899670244197572360736004787769340193812284304288263010607054263557149823083942108081327938892767242865799322664895241643092498182175051372227843422190028546558055626782567559707409553452229450053769578295183283913696170636742106900143198688072901201428707026532244598182785206185118200478375629965774654600856938142372300624486095190695352369396312489274944485460186756634980928712449073606671974854645317438641843565066722258234970480933175532361289886754626018781110887345137924883574152020783750388213138676529042443073493371454754191626079234667411177346972420634555678905259568171353566487515493519230453685744868765575761099549538365389955885421120446711382817858700317972981677890971995641728374130536318153866428678305027187216485329448689888586678160038274388815892655974423746433958000093689429796738893900205897589479074944338536463371628859509956907313054932858681915775758745934453007012151509964734869809466413307112329140509963332992304026041258719482088419385869325317534197694644260774467095519868304473226239137966654837837769133867231815902065200258919499559499132669857432791392454885657006887095628587045123059738803353293220703556880992504431074902003409957792690018169816610292584186818138355548839960199030721602158497203298771786181217162105001670165003620613777220890928763214965510493331843089104465209558673271165360452538101978308061673925953515535555309452199955030936720204330686859275907241164092737889177595735755966335184047180301179343115679573387121176836918982580519852385019091368809383339993548799223314486915484761373040100360270144931194359390640755661854411570913316450954754788909030548180481048492195153731078881816569442136306008158921130814002361950955395233549762920356258204087785925623273534726128128083870300326222077010195416797119303990403233550949843322184138264808880118157267177068055214706267113221464341993500481325723165332904094884482055035568949971973015590748140447500250672668681349672062252969353417146965692128659569827111824047537366869964038385437153585329295435293268218910021281138704721751952767685164623818972841863180399081814331049123969721165147761650939130102806352922926151262103036101453701897618259672033279539081800949952286028681885884175992443613522944911436453316918784806830012061697511040632983815698229812281986449136671299674299255860532923012212407265369447854196446926499139472590730042738088011127253724087943178619795044102110852207912427446512708941307037302851408177962810043328699553128193014601494152326378927111158772781315970779648391712384189554478114478265641630998563732797358867654434507992611375076390745200314844174985211174652960312200420758216746747503782246169626856854947957963461927715341600586707172626569618940368112972776174497489858597294365018803820818476714270223729927554192209431099005647881528090379906110503457671618302675183742155298299650124841848457433727540448646814832115086988984170467894004883192260003652915328226162608780659074305412148660477526669570958204015026998680418343111629797764168486740738258652214859588946732409059194501843541173053048481199694750264167613603567342513132589498419698698545934259632036509338080221410919858105436761616827311618166999424482907103417805747243216546362040874589980887177054664190936077438440087359284223398376499987082812219395121205418163851308866255788140780582929334497278548070119634455124034169411691516541741641088009767590990791247215364696106758694428247891333601118105899799727242322531416731678858141191952213173548187746971115112298683274665719477131930960265315211612560524663517888130071091468920096833202682358393388266388532204676534412604151538010358390921923997819478154208056511249840264293679520860136345761855987414039712358910283462220539994255492259739146353004464054484914758726812691178152828947030443687495744851935776946799838392029373945972732965492565089610420638498932725896441699105102029786755543299631207514269643468120174406428425185942874251805250981453414685773666009276798594099850877449351800534378172871058954963439473612669660877815877121354167285035416757543814423574886305940829197840578978872712965346200691586058462858316741064287182675793105671414454689174943614160108395684000748154327289115352316361755060193508177059817037001594816896152949671271227254112275765565542592594956658343037398145331868833868156116981079457056337568168058524530567947442726462170637999328902653965187059236316036362731723725530786366415278620948842553980971679253460979752698263899791243133209494436390765212403805279318845443845461152758899652463812333050544835718139383172168874494188592245215168271043473928825589142405136829651009195247617662952561518660961242335295191209678504570822213644394760842437124932887578630980233414235785418981255371124786565722081123534766991889066462431202568250650834343664984515823171320263774992590639800228783484753028597989888956685190338430975247886107553512840977698403748646589491654648511876511028313637409291127207114424866533902383762826675407897664480022680288633738945427734721216475824253718504391934067201342332857621182584773478392674438712445594511421571332819343057561900072679609251564011709632110641639768127626222557672914656144934335322600906405951923394555447855991129247722049485503202857242271666828368408696034572479275579643782782536943331961035259432803859412483596913439459378415345106749273896808068968969910781825355575489995826187774561367627363900877781956652060411506369351428064292687442312300819957839692474957691388320199367959213290361492687544212900266324621954667048821261909503483155414968291119250885622085656060861814697846264537055433351883053912065018193326360154685650167342290578458448664729973719171407449016279060698709349797772630682619571846678854937535095332427576259105786618202461332412721375472052112101844549900603553859508272347600592312695849208551007974847444809376713291837641469119455356382519325655222363677082479879310476099016616200737961077169813769062723350396681693663501607880750593245726671907637882739878564644545758033387283712859075172631245157500273507976390534472708355401418812531340638144930410429226311670042546029212004176960688201329360607545618125835157356842600441511082606007349497088822928949146504810927996619894287348619576113153920608382105945680567567159665759815901156098193268139963987323145328715832157650003349676875539140212646771945360902791520156089123165706795463303967593919740826874238590168911500475135180593859343447919863331346511285843220581101492717683871498698599680020257611956561840978079453962249003782311780444011480457470194719571891264887598304368392635373332134726739109694280126592504420504410125222083548050262277968841055744812137794455276427648779088654732318200146919730850649601035038147768235638381622019798653517154440302323223280934529476475726955262425018211503386055674589569990551679887105316023875370625034446109086158206855393616354322963791741109763387272447031615793783678306813874687074529689491555681862592624695112546813260339635054025418966366063586158654859939306929892959684388834527787864406050381732202852412346021285922427295407436049075221979182883693918250652298240690367986014074437242861693881090477411527554934079401520781413487524558892439770083214861857107404638110718369333832782526374578145316174811984794227800914034350527305531599203343917024927930891139158635149661276468198928365481052803073991507346658830558321495796378579773345589564456107372702425476226047583969550263974897954546413209436302156804635756222815025476025712453118198345025186322012613058217364033583155130629856740779167911674612154860749619001309016115638882462556346748265990325151291779733357351358471370408099859963111032049893123209266833861500081221093377253424451542994092302200418009493334616539623982937446766090434555643964484565198353141498847181697347706216620524615480550366791785939920413736655149858763003007048286461083168148398450680683238021751823145305076686530151230950331275183825081851350969309508652653802970098726030577241991527647933981283817343045650947309579085645844345578881487312799628114532866558579414688843101413727418775290966552082916284613120605684391805232692644178372360999695263914985476305163270153120400365322571380556718341951172006064116967799789904113887746626663134660359365162776212494528754548311829549793756317401614347258951261996604246205303925204946209730673273428600819147476985570327837245767752122840496537893004677982862167268965525233671612608525299133000275331994597297790441254132398373260644038673782594273068028982596707194520250438716269446122714428766019483492069975186576271213416662415788424962465137470353126601992725497868909029974455030692388557502668632646650281552602962226771246686525769941904495593572653056470171144888341335176106691189325124800818767381445770957061935891852629790392435540925432179088778285320356405587296608023604968820215742242447079147919980734112752835108925056437633047928625652376446081618145275468680805450698396078711752208560967075782876972510704774303899165082092444228146338655229002388750463984967727637507175150613716654156345769647337585357765676002451361781859125101575846373049187933164561785303336619117771627589583748670532759288031648094592893317610675359213411295230765652043950070288774957480168827369862068241597158955932696859374213592062810187592715267134566596336964148281350501883745713256433562057015909566748375439364654158229772753783239394572525986382102289822252061892711237255292024451853453474902114982668443026388688462041964278353566451428083515322760855938654182077707899716087791474003434793047569536669408446846385546412778253476182428753511721500436374131162053860277597947096865746193345814361829413603273591431469459985671353959143908318590914248517125704316630098909062068519331292568117631359098382105373396368674095236876661972498873510057211020421370691851449159424622489175085558982228505299002912285860487034098656064632078166393887923344026662021833652094258443383167251581443295299796523627165234977750628314515142917992899142363762257224799984996128131585226486654310062069188574012327181508047735595732365911703768099121412893876082534535762979433677493876968963963574811562397888994002397193350680658899482527735517880428997856997515798639455082294398535025401599423359556255850404676395321731594893186579025054543763106887585261320847668386056851947158929390494289045053096506062533192701496614010875819164582588981969135577947283414223841544562656867596508418640077831938928947814378456879652133106153375345672011652834657217567459528858430776562221957294633732746422058887983952955317466372651777143172877693287222396744839201977866413625892044210552585046692412958003948238213465479791056818156759758393541111702003760997177690742894523422580938585888025204281655655953522052573894301979517317661200335454674090862637020556941408584722173870641608778434418532550215310156626671693056506063920112778014215841678622095338998154191830437808570458530116577551601278013036609609556466058993364478879114303122730734591604761795702677386780584296258413294810452112626972692045207368015957075627563668755517174762510670139484246569506243829361470494710087400793236182161782171473824355359457060516332032730364507192304390664969094671657493755295314759897070812643927083990335698640591755567777344788201515376124850276555246014038909752954471041383786327638338051777332194064406302600324536030497770946613355204518391105328630219354990475083385597625109282113263530500389656978313983861722199120464280153156754345362304471132174292374370333493690944880976741542445231123107053983054704454627951786292043855261594338219613507636772634821545990397100592453868850970071883347523047397806645093520405882095513414587526640220292897807675195194553793329086218374123861023873381474654956301388773298016057094236961403332639733297859812374595930511583634259387438261309855125492834090342875107866832111523989504318438410162915020383660242924984004882542449512645963653430218730543380891080481821286036388045322791476509137603848920833593020251232802393260029281397915440294961339124518285799448641318197306742822699147686113421144160134055024714437435640128242863318713978465865203304301767617853270280348133657592181371894337028108026093944637309785592289803054951894975686298075527038788200554308627530901528274099715125009446835958016172482475869827545776031847168447053630057754918593842481077985489821501731277377766837075243993813658167947115276369412005426364208265492458537384338350457031655296805757132712995098143576747296714434960633862235178347581084681192130380787150796348384555864862534962789616544884104592982536131490942283374329626626590229932085547645491194738730693635326190102576963797174545390401014299141942682700255898832896753947321224094142172531144594885285365154785775586036726413269948288639138318284656045477125204734656334677423589462888151200900099081910248278935837587312837444357789720614594483545517516779634903002984092738760496572007541833891425976169149062776696073351474246871253888718443116693627753413613205603881292582645716064133931498535538624137692944921371271631299559211130286434272886970036281502505847269186944761669176509384421686749181118875821873089272146630167647445150235436054288820226565445547632112278550675757056698266636082835126559589698514390210963448358479175359196752190649587568124289429978819474211839476593747996215602360046189132645153893046291003144954296821663065756772306499518059546235633934981210959690287523573047566059590735390733861040373532199159643640517627406570776773787513550822586983799117728124650216198007220142180850870477459265208307789454152630877635517046688765751253351419157178653805105578810190503479958063221857957375085225187401321092527221608608134449304472127223019410544283942535497633042646754364230412824475282569507299697690980881484750837032441747843794359079975582375332378752137661139242479380239503920711080407314773541136928589285592387056673028798599793638579557877219302852827031792120252146045728282164869396443562067578824503107318168976144453035478183750477480484064607543978640071523390885309879935144452414093520293825175563942149294363235437960405537547538969082052830479266991798764268866035123851504330607253765087269213962785502607362903250740775326446654560138967411713975092534658859610651402209739242034093271875256747090894744519728554233140752319516739166447962191688987102058259551181373134319908645020741566558215085511060271625118703260745055736851439922070585018130886305397331471064115840358705391124430091833534064719788373206312918122519822398463272095400254013312800280685531285915242479518022683980035009587518111927732525411266093363764554859303065903952702668476901195356661389986376517780554994467755512471153923179155780185761912789897107761141334557669087123608998688228493624039897138499222879494300521405428765945902155828566656762445989294660494201846693238094912432979480302838286367943167699783982223690485552499886025590215418872040229906880409143561877173449707251750935067006304825151408698369611322229425680519850544615740467845136141046260514758447444355024227872405275142321536975387640691931880016836430278226503213847069599570764447652573269037420727038016225566528125996827350155331026387322718131620239413880924345233832026007444722276887402098212313353857406235029425452843317532323694661619259573189634999489975923920510724687034959717916828262181349715826020596668291930548675097795155944983464343212531693399011781890730477163692464320033529252378010874836509434897965830970952243360209044981545063176956225268050506805566349973492957384442017038483291036687324191262606327117308148020638460274056073672664449681210571386296803706781961090426344041397350185921734903932508629837743443811630163968431255555901729589869019464642929762200052804172548786648874810132235318651840462310720873280071250845248480896575255700731497753028070062505783688249857141548051482723159309138998740087221258406778461836062443311804873526150430037340298685566227650375203592887089537625380266427694192594195112013851404169376497596915155333191378182584696927854908591815186062354697406160223054335659705388152701565252837751027598958049273096885728198505909033014849659878637934595697339241846779618946543357094399081820497827769176552008377042722218678830524912349665614077677513171440673384725122933707936785163152114162412985074298369704570968334029989656614383946683118705571055382189298037692560841896077155106165834297745575865539392822449086244085299995644870645067331943665295289752723472317380678107549597481891316701009928352400596436775815175241947762341800317191239657990998578548320778164572588918996627477033452418773147498072977130380463170646777613340614258135438201279237861548027176837445437123612216452842524350939447070470947146691156890728871804064751092681144674735675507687248371520125353807232540666768073007324180941640627545143082012831539550470384693639835696529847450371407027466409215819596390604811663704936538463420313723880471040073220574982223101238158367021237134218292123978679415776717774389434292147541490751202342178865364520673017637306060684637637716406571436010034938847550442098407940390870968082558661779008026105938677629331442659946015480366065746908564138624849782404851097927858708643185129672480819778634699383643382391094516244707330533252484366000381144816431959017850001584804773623485720510619590178966424790216851661623384953547827750177391945572221442901261921628858814253706926737268174232254907452459532356758065803162536928095453902404643493716519418329427316094835437215939734056620300864572884564841448465055837743773547080403247496401313616754837435524565628478604128691592116181797020226951688634023047951334077005856471370130301443928400652628221068240877525288721052272538606360676271733609023468771615422395775906838431751698513025265930057657722987270177747657361005316146463074926101106169526873221365800959454387930263440317835700731138696136131073288302866789886721764567379946928175488367356675227331185147156496270516581493407210082963862407024841018563767980605957937015915571067375741442199350485664729436605257831949529166747435515416746439470235390990801125928068463896647830125045725249455065309189650936013328791329540134894631502581137241378715846484626360933172567157597725346577962541245224125125570093765571130078805970800960988988606367401144231706719074745569826498250004029147549281904498804458125452417330522990927424124150926725896024396402234869713951436754887625693382519218256725154561113455182049278833556236173758919182325965418544436823840468795595090859814738940524186227903601942223090354020699844822196412354217788201727509221601934775783406471382263061441167574700600692699141856749406160692897353101224564402734037447043567935084338016465091977040997637595585352897856579153372145431180656337902076305880991323852573615709704545245616304739248756221523810976862262318677265251968986474862324952278975205712256407750907077163060746872811323688095587763725329484751376218233539567535044997525926299427168609432668184063911331158072589143908800684051683719627721266731811147225471641528481486372371660217598729942233070541990315343562793999227254047657464733126332068645323658545476409308550458608286227792176905318191818549766346579040447627108521439457703878961925184407670735784242585612117921005922149432304234945343259269071040331589761148805344919285632502515892391479617000923210418102015086280464168032877881931062122201213639165331041491903343308983683145865283601247781368597168057800766770682334978900189467038987132294450205620912846664953976011707448563577168174442874586092658450940510689556675561674035963243257798394239798051848602461201271517141806450922051478325545289610166064719867975726500487165273553791838238897705079106389859269340788886033658266070973478376823552461965337772911671538297499266824243288986297204956939222133430799911222139341450727758843379236394438759442674980874970424066267823713251765887210100433127518662646987825101906340887500677422393723361685717152783054979009226982740981722406391387638548703025736387298034057928533978870996732482027928998204315615474583354359232576144845471809494352864325649709712658546615411365300850044485347750385966140692934568621605021138278187533014420151758124719407282846367916227179975246354608469023825661044991438024064346846812289311386094931541622511082788145617986622323003467694722249146746405473095793935871204522752703975440201448242013295288083940743446457439136991056447375327130269931292356451451068893498774644532217386023159944204302242362116439925119703661610560475703653152409722873084836031981026769830580443530516757807728563631840819583722250022113885378187187375511768727635190512184778554012729623621437322550452917028098461024399006133006732006605444669852353685545915274230564201758510664756310807796159744139781991564005893290492487854126649538151959645488441174267335857354294975114935433617613860126410975556301285845348333299350227581751631686017075460503953278713333118527553697214792172337974454831361585838425375516848239128743168657248493348882928321456286780387388223746287960828810973214311330254110150293765708216066257031441117554371259139325426299174221880583631072787708316978213756425293303207829139686282917623575617707110631958468210300355143538577259233535118162367682774536817978225819284177847711194425047246476273860533260719681190191871791975578285192316627978753588234144415521729753692928381447573351411441938922409187218757580677769667338487813753777483189478222422909914349834597099729450009689574486749646209676150110895567777587846589990598955551907241740137740208649777432812692668522518163291533057046195371369667080417754072867422038716702907357997416896611350106827494626081278544938364258144343791030311844998123843550187910172627385157066492609248795893136525222951791960173563248448261684419444196269199052336097962557769544059614964278559873089773717739556180662726123983878549917118540732566099945228862344666289940858917369580457349132911117301132312454164935114261143111571384118417419238474042038413936613182046855523912093716592722890397585503288782716472317469447018917399075957248679923594047893663761559696557502402443066441801926111260387360535622917095348904310397791331086577409434108566080172073488896541031005523583555683427111750454865141783706923927772221735839870279993457747137367211192555858821057012450158720360444217673129489949375792168560608798886011800475117756075860270077980945169845828047977535530314561525680327951909595044135706771416290718842142730376203109864775394193411098951407597993966048123465947008490697672494383923747813317005823479555673352501028570708391777973248330945775034692326024104008911054977202057587537037089130433873014034042551293787379749708797540024870461621409389732456983502599670886453583919133149731761530829010827418177291788479557185907603926603552538204416710005656004783657313981631357497932289083916184709847175014088518865103527638898449235634450215636242503439991484553257581394803240487534356654291879024742969646058953938455417478957807572492762626198910696446878681656678969097363191508961508777753868195318888628741410083426394809101346233369539286197775768319355736609323834050671154786465250232043300502033178046551085175573423965427130916971663039727739390047601505606446533146154053714928932268422800758158418406122372785919611773024369472569761398183102978530603566844701707080940286964660330423288044870803375228738286128580801507377648764844772960729100788566164012830466111685710067285322645972488230351688379937598222005163559846708715578497670564868103772184454395405008999661257473511235440062916337060080337932248930226440399372015594548614168410395040236716244630430219801165978279995963241662959355432948274197111968693139711294126971793884544946848216745611465839045151117629766456013030655986393252611647411522875583086017488745217739095212257212939548737914179137668692190618425417140017452623357703582368188187455557659894963937597553935262299867526673400631352440190632804178734803076144324284216189492123435219098488669521438709219808924113040281900644230098136182454189607612026706136589357391732437298907010094167029344963897385400339394266286232283593044736237795768936196909790455920785935358057137445181755301119681165489481973770587863833166241017256773318218260963517153985330054439935378187209643032022685835158890623882471102388573146562017451389278909871308971635030499171702854844309469031956443769762794337086886815717837566398063077083031567947452405990716960382719445926364038722665936354994852549227815300005300919859356767101728171036797930349171394395226914870149944037460701508224678995086775621938089153635452434507399290168615886177711807169213744990277871526825245954375280274027799393741319017059722155193215344971276426418488251090207052044390632275974225062721658890358802995460413232526081352402331964867174351817221915771751015151701274910522058390253523286437337024527997843482774818310766805725955385838235675822946876809460044170891033096945621380940025560598913381637901582520826738321415491834471038620465030048999157272581493568021623472784450433579394744032169448774586127631765769919504587056378906243999680752786812370875309337271216909599012799129820185411498338264265228966949613724940923971518076430657094284233743813600779228683555808754639342293372984783270255978053030277304662441530413118151535261187410554091327605367340144365459750751788730563133506509828499794090987055365304606769318536232793968099455279558191408957304571578522558399297764787709292099091961011159371685130161015776236428648403449522832554313773158755464735702263274137787079871241980230804546960946994356377764733887622460195511844126365143137772037575588193032777769100039563204233645698772675983827794120632847766119486982562528041688302835349356672796450194119278004923797038370861435177709628252410401763604346825610327099303650454649255424471012784068653981483491806684887113141568794967906253881417270590096235563532677255035179199125552569156654250290158286647696334280074074790635636642851801804510085914363217873936297367931928765072188996263146656275032998992076157960655614350677222581506354533209735716086496245000759634138835645274240287612477267541219138950953985900756682760601296410290406388301196038360987311948040990494943678306970063749524775299392407571470841950997505568598139656344921170298515460987975750689625341858399335559575985296638749965618960466864696024248343601184482923150137104830809261288434838378104676497341878256548233346653218717360480459101656927227644189568558629366246437485330400115896954538521649913759069746015751889638154581499225396639393548883887082968678166035727732109750097156291700044399470991699311233563054992145146234492607375288968644477546800118240314898763704506307546750032947614034246318549484188915480611657989198747180376122154508057676250225052796994014130059314818106171170984547810628027212083530121236497460194238158617306961964559876092578063488133779354352780967321268421799768515836677855141184882061299123371681685188215296559524136082756971250069839909209908857179113402572862183224775478592122492356174982842697258330676462329293019024969930314271014165437956506482552190475645527156007473827639394086783935993162447142834271985762534957217018217820156377314526411746061697733704099728783226794031046419080834051555468389598299116665457415997954514356653878306241316870863072544363619018697208741600087402901777236116164843936231685845328938209541170841115280951782755236259129156869141880461481375408318731220237107466652513778913577140483246143196555983705791054519837552201181576011805850557319502759493106490215187967896953946392068164511180039048700010030605135564759273747005541147046217207982302677236214486315173138042751751208635064647298182308775166805253962065960923894581007398686519467317738531087789671189411386904884892737815778308248203335982840982634260711360617014979250720945738865823094590413860424295980690136812499136011677501245119884119098220134341812756418478696470405378625335599722544892569858646524296143103257669458036346679778472838491814000724976926301223864696731503860979166769084482919418614913624425997931971547663512995557739403198810448646806211783579468675895146444294062499267938034482259274518347108202858818499961683105022859524700297503688041967563451974911008422611766964783842431922285977615618232072336680294984178661922483281235912890173019985759442777311226692463335482711470597065382956406815900279920128218052803602349880457371349716091054908671502840667920032546591985773253446516456783219193268978571814423654935292164161002379724677301244866572117847985718087895206575961679060359449598014333187142428138053234733684335462322867356705796560678415358357623947452623526616767908618473663987166733332220823161582179336876664686676248213403165205035129011609241354208739022815174337053795446893590991119925380679530180419708320927992253113001807106034513413860863477596796549117150585300197780089828002385953415775413541289888649850175155365173776220064397435520951723087698318749742696268705695180745287197104802625140808779002577279543598209883407094071825185365303331866498171978697858658279217820963341705412851709960982995548833954428881008709797951675778218828883945975429546562523476977929510523071754101141648077024180016001324501271098134051558537630321102137185730887511374237721243022083131545954765623570581465125215088408166877951709108473737903669493078210699207500680327903219042381563209183521772338229348806722682262516283301995025666900253522571686054188312666582278264639914924380737045285264029552949831570395982750399948240198937055800761222737416249163275786531035306324334028289825762968101873910951008120408783387999706705144041041420928806139971005616105728375983678337770262370850619310573389557502977996993671845303220117393503701438629436666985609017195326151324628885761471746212328479829717728509662334266855908452172637592776564048445976136144804503505065719148184700890031326389265027956266835876331638863185404861938736285307906008414744609806308363849647868251166882693997505708221705799645018317776591589421740382653861188654852444683767474527786987047080875266688551039340995674915527112403639023974197617880770034357303664161196278123845846297321528530310604203035978933040120308231783095324901594866434794085629870768026675986674025126962990657592313242281380507180147691952319823384724308026437504947186192722683512511251793018695417429377741432257682059119179072087323108226809550835844141788173955515361209294648037473520006823586140755215588820253203334303761282776476441260465645074405187625746986052864527544037018625174920911163419797563251026005687829355605111132483759495925136467037927620237844136678113423691099482438851934400187260106438640510371922969487279530966979155546843318778001889261993882604183515065211527650948955174481234172300853349371330925584703932358062346628831634701697083067748411528398294734536123697206245655503796681397165472196042246765211944488244916262739626321912523128164067454902006128126064887228515318094831798423215926156909226952077881751095923174777814269237533069011136352082643402962722511952374707770491211633558782222140334064400204139268960692089330108747086257065072197900656587247277330323136673797905358676673417582874425465511832517153662306121002172213738938928970727074109942396313493680567943008889821805785945772844195014654492896284387988548780029701749427078409310538482080151068314292406511990922911920042947417195004481507040099168981796950838044544779082132680590918636703346042117732787617311013098068770948444292778499275237425330689246997298165780739673969573404496093139302428281029392922417997568047014653184398011471849196999817590225126288491909938133389844068591477963924533894026058953715940753113597611982025345474561537841812535549611637433973340028041436538639653645935099798267623347353011959045060493111340141391410757504525802735021828124311349394881986772129794130987668477217355123881193159124028664647574236603093622213715181468542967211050927545820867974736145833202750815586185293773878322974009156438589018050381257897580626295442752645856769668763189468995221074716804585562228788617733052452764747077864349315075704217535328970398976525512404772072115401124501524615287539975037614806627029845196322431338806630675981322497143855447589337673672610318690239026086133513281946384284266310249614431792930676431156707061628823284937710174573337213558295831395611514931865332431495654228295137052039728171654314877289529374931698111109933641025029166117696629068984991301117399678337924502296505765838040995838163907145461670392263727401891490268945804173141034153249131645283204050358095203069219865150581130181374918085134648880867953065079235728168899911375140448403753819590120276367917101600866209182005376605742160603302994985028848296062679483198304168433173273275585120483325449851498301754758562335736701994093157717709487568944797198845943686194944527926016598366747012547575733376211109538233141948979449124316942221163548130278635378348211150129692435358523700557548249826505794081204497353824021800653457098456316466361699936489251115408924706317787195768845996607175575166001180349545267178602041952843106268295039268398496946897598462377526834017540070496064902158474697424521121893276728917117849938599568583829887676785015252700905548595445788123888029456193739871117834781009395065324347357135065543068926909634668217594766017615283111258248969787159618863488102884251823670762408229013315219273006126141234090403848194802570877373678969248191597979146847044890648075385317707976394902129021869046186593726494509892534948600484942672029812900526724065608881798589112771404856344684345664956553056745929542159280063165470409409242667300256708485140650400932189982655646621579690714522861878422446370608932136385772994568027640634435475211190712589963903265764986183889173921249610857495962981052226494899980741901084162041286119635443955017234905797208842548632238908931106427024906166517464634701173317312383156534748977299323477941492183242424057865017833115820293826633618663351207726686504819545107412109077930764360283818836300612661624114128199907651524596519043644372471194194449416928523795638704614103561666542263506469935813126921102798343442797118981015453777339338255272535804093747613158757523642685435479826185803102293500289186712849393151108428965683225004215197403109150629194774306041318064331428102710664498932478516544894215109740200078670725758012768725326956170421688660900601065162266646360847214577931107905448895381491387652843701469700219363834703736097949068981887821860937712977371186334789750773773718990620727676195086197596610909254082091044879468601344652632148954180822983779230332524437333501787607766338452040215302418179109044010101516645495950567104510316401849918557293346899327557600295783240890447360008942455925030449317475788495099084817180192398135432018521980890169939152250741418838626024794898763561871228387285117316865885780019488419045660857395008511437240326600503842966725024418245276315609231080152450721556365420424579991140734935849731006868144015582627151538244940363778048426566680152566166354793376956659963934005105602968870720081697809512622886816241725694770470293665666717121249116830505051967624949453165543888640084430551436009646948336114068933982362748527126033370976076141706655656301995780551875539066382278617998164735112773481021543945492730999688921403589945380581559227840552064941894560559589912771999521908951296371619984122016548252805708265963139758293003287854453983763330385528519316555811144278671391386655031010067034294109368982466534466369499788335304648848150398137443533510507558533145253891728165371015818192199374981079960723077504054671091546946845540362877421000558879874033270490212054041392495872419457318236300063220162543558488142283241889453680644121849362124041736168722788326962198123034712422805812902113881911089048874091017941808496572901771188436772512093766315821224736415576748229689454583320119668176374410959782858565598387122966868212287580283611075883695489557186805689036817180834168958614914896110436148138209710169750728997776280425724032300519558987855275820566310688587376322439002826070402807304536537128650501013526149661288466197062078792797840945462723948409779548670525592518215946616151554518029508931291556497444775415515505750139081243200671233204190574580944856260469812134672843775254571607392472643871147660480638602646983977655313302075961302128791142020970155149651071948667691859356370653146685681085139181429944542128433694815388832982747566514214992720174264574213388013542392421638925462688192728223666154955282412117575034481444420267059190835456003868653069303791712348382523957694676976595501895666894109556469718372144052100241711882183056912536358061305160958068274863386710432426548848812855020327224879402000577070795895901729715065054710552258126814795385864802739100836741600594326994794534388069364616261851850230172812034991924159668898172699520071539723877346180702675458971428229575283414453460255081461984843115362609953800692180616907012031016795110442312417318376256906692408410216152618787416565103342529825618257882506417156818312326974988566100115848385625702442584912413660262001936873715270919556953769940570684971386851106411539759718387980327238983141792666866184460892141484342652506928808211901902988085305948035353058911334915886022809013343109911085632060500234741215592881219664149157027054198207232055993973756798418422959057670639467820387621705431430781861057567622077856337883264868919263570999412027827444971086001010065709519066053044171952415334879858221113804457420467730006628279786731943264660363900008069912121060329327143654655624277033354375065507948600741025066218841046092069923752417240886466766837749355495467143376377170121796770383050807054127332847457200319938828251107132334241863547835947355463038247405252637371713962047074694495771507968301332766180837666653692788172652528578972450452068130046234133927437417334929083821665362716898627853134549971536713577788607247037059466645993828200597376280859457407044328342951270328202631139735065939037981905024393694074111966728841581304795110614494394262948888814181464729980869706890655805751137493909443378589070912661079959480752147764993861386956805521130850025511003944493835980235056213606311283994646365504789956951071481541378518825658329247907899549166255727118216476468250647076317067664889003306710924556680471323907711422502660082242244504992796529346764307786480651262733706591751404100223170172607080886063333972997897109577001858344552951680529397440010013217116851155599137382915482486908287478196779468906662106999645911114414047898433653675877180100982889484230072447972954639069744005612538220295782913836250806110695255421041660651807691349807096932691254517978498642407955896559905129641925066325739183873248574232732174779573304657330941212872358042990647343113168148164715263942725019645361424624964171385797891610403422424143763831668471570414498926990022611986801902994981219239837558610961181694729462080174423631565296441603789723858136846000126346573619194059532354941932055317353379251202178938065919242588398386831228503791364459962584996134176879624474021718597907618123038738533732432798558763161877934025189813799660683789428724959560076195092355430252374527383777749404024205243261761622428924342364692109806533948263639778868434655876514982323075394559073162551121253797500173317603558132939427217998613324716750651353614778621343561813561289078149648297540067255627224078722063158180838393599736433593442314516367999050645700309172876366853052588261583447393579427877374013770108255207976375195685551072315594414620136518931761236005784442193531674232904467600667098954890279290473412258812916089362178845457524115363128967777203040712408749722681908368534815900853465342087296485712774712786526697405048437302417086599007399663683850156689743481420187992892077114050868049736818950613746659214485843291809048250959575820382512762823552094720108885316332094347658587317736478333989456393366903591524000998748263250431047481685459255935219689288287873885683609633474898565583566941977948887628159267736695682114811940420942193610460946600537771941110300119749461791719822127134648131898182428374376766069026918719795594368522082708850000731412354605236971506605052700265407093484534265602643743107398232662543654949398266090211806711411713058662271752891535707673606356261786928971966538862652807310111888850244907625623534362566975537280529279225841428875501957700570991998845682728506930862863924747924244170569332319435612709488925393872566944546299311996160692698597229846072957462283510631782609094711584530517578696928617348946874269216124201286800389940966670342421080925377963716815098903175683351181521640690149020104884777527387395876726421280733979526444347805104887311620158069161783761024525981405024822117033660118714318086817424828826336134879476719307415680837799426456674684068056538522772528763822848999373131447946960602424017572283876167757464833662882110924986156615834046704708539127966121892235709586061542397222372650403103728597272274866696861976448997764955992292102575909928402650642054435421638801517426719382224339244668800506688067367561476815859317092726604835363008335772059138530679458304634750584131999710798626917225625869276736238356809829166208622733021776557853596730614226806263274965633144162778080630379405838834787466008864028687543659401301043315961398953296576259358592241474754474243862750942666838231319913568893024098554466892975936120248716432775271966075818577397264049587145021743543485318680561787798302472555163832105338762295238906072345203290229253116807834353304561969750305002352606624410410440960948849119110976747985569136710935244940989187485628009058356897524248895656190342332872777169454998549519847265793096685864709077857673839540602943064147616520010189995977475143890218207236682098536007320688506920659343144773130923170994823858074552763799092988580030157712308859052205915592900449937588030169045944438291337641630524420944551459803208763613083052029527123536083178218402241983389819353143909609404898025607308823803908732619976577137939354576507210170820076318057423989627657916229070702207785528781923331947506365323241875655508466371327779726605580620644789143112363896363324373293334025395702717793294312200622857606842579162623389653123763189914027466721214955645449810439508026288725390050033285685214884393691701787315851580004751890492076801253884766799018690197452943868405050520052204132107937990852614446169147497871414008909761428285775455145171530402960381817552072184493174091473389894821668171231397808265886573957325219712463296869952884137131557397819375216679221514390481703079750112922668548412093818792589442040090106267979213423917902634844912758582993729387962909822025243362589575642349734672272068233600041824237158857743321867713564114222839674746980117879788898947969838227331707503110063688564896098913166187788581513713235527503613486111806861785854246194673867224707049958908397972518955919698258677133681852961593693778143981816879685335142538524744107885144146567966394151001214270889802861766587433976827233720147375462802334035725118081325189621045406527473442466507212723404660309464223727690220139938389146021275573663186747910874269382964210735444815247668356877613795244775587278352987103013069635822436363447745311719931209008207374446583802624464432163464479129800088211038469037485271337464576418267367332019110806224149804278402235112184802111556416921764007359277001483687816378978255583720166947131034982099211607579092663090548876053797213185719680046437950067674664295195303356701192743085046153678219053613158953840322622222542721764882610759334922137736538367332418265634292235287762828636779578529467294010005091221834189921670971809704843314919647366412590598188579101662327574270069011323362634176083164998718399014204404886450888884151164953562778902108254349606888221216388865287355564452232236577717739336866813444648403748893352329395731621538943815317300901837828016521383514308801328093667336339887025287221601509799556432754843981164097343811379201403428651101650855006266011245621105220660629116969719825162228271199460533372896482210200334800313259937379442833515003625833956693244072322965418821265108231165590023851852706343955417189854434580409218402305118804254080491255390662664326373195196528883982035132064068685261666358777425151648993175956446345838032627060617212194525636798321073538020761014752219481813721461483157735733766135674905883666673147495285699526767676820140652871024576887201680877808340613250184957963452817480987868005205331174296623649804450736441020276599082816477069980126133036595522953863332958108919185946892011705864757241809662816602968590270683385773095500755334789434843701593462252816154399688417836712040185788157304003939574658003711553890050126643658825561348443208047020037889914176492081632467175682056496127425342089441466163001330971060215046655954993498534041320941946198725428127865260907396096226442551117654305134033640472894141427001090137268610552386010522977258090642618278254976360148686963392071301050245542771949277093871997025636348732147590222914492044871464726427858302902054301078294760739207140535634142117227617191714609256031455240388797238590351850710469553413323323547645658689205126934118499104072721133098055204824632312131868328321899434693129512304763427825364358294698815456025208425037805534999957644108257061652647931370762994336221674986951289814456866583862085424127841090101835027797808019168672724630539867080425862591718415378677839740817362353043143149960827119788572495922130915987500230910911040218965801803308172485509512505366243281243016053539916759528217805487379092198856277443005214306254168559172827802798664377520667328695011121974781909472796381867784240726834234984894698193113366604522782868524700371553113326115860934682536442159189641333611548316037670586516040589552557180855932721533377777856556485578664073794962767905829341500867071426867260512658342620829129431588827553415296883220588358373785620264904343078511136086891154199350064739329116277945455144503688264213715592921561179123230713185238427900091014194337925831699415299619585568258696037653679024177952621419664570372351105760273171445960881315875379392384410799558016349764862974561080374463348395221693928677079811415165205007505524269551282758885395657995210375282752370184979718672023033513439078723292274459680032583658879657462645894839893551887078506956966298209148320506542478152779989165195132042734948898411793958979751605228784300403776854870283760761012575904365533645494753940734073580931381376698351713539329359039849619188017797852190721018703680569471795793349326612996978416502133190067450966373964529764215177417007476123477488377335085771914255681270118568593531148734420806048400417953105751139781588221678277364648095969322283145637780607051935210981224222760325588461500508500028610324370075321660320887073424245692364442626496708690778526660959432504289226875634798051987236886574952016785547949452562148736872010060966020802129884116033073865205102521861988418824290222645996540478990082070099653800745545567944576026002685733946676956963203952059397781859269015640723821847447851353469540605769339450627735495446857567923006097097034733639865428773270946527310947722929111814020966900666056464529572742098589487267027317952509474284220268491068760829591014984532920255032368960650310294329562881227956340799622139338372734896813464998611867676987010162705759986475731435981705686191115518642406737701426343963295911497309045136882137849994647460317950293541245756147414218666237109711489613586726852231705904625589764248881148167135594262409096021049550900598725582695002519429200214325022840319575205710090697687107330453012203533965330679246773681650309596243059945332803500512143261803803782921137112489488079740065678422579272725423014451276801759419569348466191893804175855054341480444641559366876686327442711573473021294651289115285940212922515649933496520062017554303537390037070071655715365238800319949338457814691194699419439037087779425155980273391606193436254289886375335675748171041609058084775495000941591324218346972557273578139586741285174769292617948473943140575344217152994823896778589071381208841822127129774976293234664621813867441337947247543049573637093579341615529878038410918017354284957472573792432462884494741973618366872135597417607158488029988409829520318981483878995675326078177488186160632485725150125091805637818819517209930761857090450306773108253769210870036679820669558087664248350192100449610481446807640762485002044678933371114868068165871890599398898454929640039783738313865639733292339770424761670402153845614968522548821813157333112012568676590374693223657630705968376013129847945004862137027413592308104960093611258223863605756047527822777826970051054808174957997217790186890832637077247406908346894681997614187185659146025195915669487529120214708249204952425277172216706690927624014009198199330361055456231407576436228357836391074530727104892922303936729860524014462869364312182401354506567763156749998189024321103117751241197738764343159765058555597967505046350076989202241234593018796146628966468875570176172032086953781304303039790818368830586615738438151766786841863355238919981410211558926158860821152373309558721868643274938710119326729565894509714327437555092359922262068181671642829707405042363777556909482134049099452244951751174377182698442915018835452945022854000349552698326940137910993734573317740555802051303477973607866152664909168423820536521539226450133061516195494560600334910832723727899675380478069832415558226224117456516722897676566744488296682859947909125844580797361691413270283634741967537833068220995977523893649463087169152530272185106165396031436084318459367249876589896019877209694638090048881280041392817642480507839002349098217635933002864981779580686868936888211737049658533504071614936686133580598402997900894410145444740340104775918129928316182215623209434269838890151749718341281569027260641505367017082718001570504305010110837632252862892505180919112107688322068851666442606376219854681996328656616284075045823920640938739994889735964392093888445165538963176507159944164304447817141328005881296456167411383932298451855025377348328108204645729468822717644491325884647927074967157259308860681219815307851478853048459981308075736548794475707785891039643692662889551951898094727330941807382074158006848520175458981621495376572378900738124476759647140913843762305622768197830917415537933141594157583997527988308146998302014916274733327626142231551559307580487515245393122948345088949364263181149904763786704948511382907841932305695151290766076618985818126680159177447848487267846772637095134310634871910526803017198753205670739198120902958978062243068616797892805314961593104266381166122517721862912507779347917485794705405057540504658724813276170078151043186034519763346453534683024001051495317195496626240214734127325079931968049863909114893045654398436487079543632446084995833140490448238644731853348808498317156423086303232426162846346664449577675200755168983637548708833051644590724439216985535628600139504360757233109272215745679058757218471137130544073696299976902260962046780059143630493454825444055401027885189804678454448502108396313595169404323820463387661586196015640593716181418912460062949008964242632845339460894635499951092890424495191754816540822610920324391545994902211732167432700004173975247284766606316319409308562237776040856263481957112561690450233006910586801679131046249165552926251772442784593838066168743800356147080908200829375396119284530157897405409484807638472353948578101271604117400686868058942134675880472873244913409332007083428372511798290326543846934157968607541709780064914721695265892293695003733790197418498468396114570299405987919935471361580119634497845411624608267003378859311310904007335147366759777386514345707326304560178203602474219828026553973378381561441879647511188836244024192539418309941869427517864184853645027700766519410519157742136967933355651897576640878678877453990394522719928587299748461074072220577332806628360668681510522875690869699571992863218658655215035561584394754895125049291125694163198881649464409463492528312379806644828019694785265186353227390893702630495205613595565367209125978117288576395637581631091157279186887633549354158048532952591807812607637709799533359237753230439152797042061046183259392397046773774773927861854340490504182665366826089125887696439634033398401710781157281656853458076123826042644284529228130353765957144886194362834665520862878043347334602489892669064007850230049907784554630719368951204355107398784400771343408007532939315230713921545324992238478346114878643836884991186893843315336847701669832092929394323931212837755759178257474682566931714978741830053562446768799044930178599493083967045395500995623902621124491304225652724346168879274468439330581429259196193037893386918571970343172985631657291231052185152399331232958857897955942344177992496933770042218630480675952721327464780751236731971752054991441731699729341286533110817489265695679342707456685391797100482293225558648569337299834994023851071035834785661442620324651558648851815504440443497298132618319108744418837818148303621256265396907132719450109891875585057695500677508682274918766951445298790395339535188239572791977722345823781797561365291381498157845425242270108414311423468682483563096037250524091850044099312823987578055745501867103443152474112037670623997138848211687873890008644903960401115776255592782566075936287369194803035771679006195930875736990008988702605995532112021758614817271585457677010097327751102514264733677161745936501802469006392754190082513076450094580763869410708835286777139452461382835383479432307857173053954014787576639628145194585101505938831291040761300060143440373847375037588567172285691822300562518620506641454653821893017100110705965441009910065888569534388775059520924226576282656218342193671237140678366010493698013841845224966443092887929124958388794855212361751268329258336135629125629150137691788416322205300161573078328568924960536140842570565154421274710425994747667242814417910394825744916413165953297730377361416337418094885074371509889209878454182896548316020587761511466554823143245270014757117610956494486100927764271830083280888563564556390100318188500146249712445956573382750001599525247813907429180749940294810484601332676021766505141455968238211251332236454255632324691436800580736408023366985891841085339712515301401147053096294010923336415597643877071094450879247732465454757446234699693776136167183770379296279468872619437546504620855779868172855693595042853005217878152807690295995461825488659016573918298555491164560694894255375757053827581144683783525771344766751420615584852957044817289211861938424613045589375505238169357390226180933326216011330018789398992898854811992791009127118526971419046134052324343815114412368405300569434167521982019387489033653901422963090674752420251702103290972562881428443980079500331223571111303624404585598256418928412104968005394365271499420667339346695834905226230835451201317045271616471659851347454829667677804993558684996570964602350288840526466381352207291319851457712338020663754832657624216268668052634584391706106475612567923730010284335130935521284090875134078111809346551490029209094536534407367162702007736314068373547798227837487579216212742973753021155632915068225717739359039120368728045395879560403774855722469278135234082186551411528670147672137545930694872753596970690065762450282433298769994922055938231726280475610676910314329428896038546409037235025297268072850412970596621640175347584919775710330154838991925062230334082774491649901107726785651457617606301486272445749560405424854235375108147723276724875007019154691751078033519598065059915537011693479946276366596740753812850044278221306680962309867991349643697713037028400099944575955479791850372611083282347327505228388997118618441682084499108530465104921515651710899481558773901081365862701536049774823923592960508621287479886545325376099112571855190165397212607490509382415018300489630570323842743232637220707031277578755893462751867532479176757241971861768973669466506561049062358737886606897016908177242333409355363339861284755798104228817572428573908623573717034089746529435629522660388265343273688025980151909044621549868345836328730359645203842928767454805405331789212605340561079666463598829421859348103253417004821692336761429191743951484140770487936870262458801781790489687220266735305595555190944450597777053598054302778737992107601750486494193651270856625254553523322935208128858773988754204510480677313563383512206588489208129482577238138897485164261422412440241950120357311593977338227155057159863020250622916646478518082476549976562262721971368977804486074997034038508616080080858340659329601148653106495272008646315566664069797249912650082444829714447110188330003962711887507657946853840941197217699161997609361225917401473979124069884297384534148245345791139210305518857929259613913369297282957347702936949771695108920670429132108950009430732086206323850047961266217114470940991948367430027121722433595839623103892150073422727635843871852386758799713869081879921776147462612503714969844855304063343939477852329638486628265137160581699793119620129949103751826013985716831795674368620469920827154188854913667151714819273200049204110746204022082341645652270419307619148023049184135631738704071247842320456175696973972010721353618427646442058847508042287849625598466758908764152674735627886832202320972607624694537777741088779908726523898989546786658903822988746978734984105764633764621096422472865425966944346369634303681536518614566126917447019029249407396220764336267059083510484437531194956763356979721045610166581949335392950925604260414322227609694626944251152029644629605556817638014067003734302405801693677409529742873084973479694535994743823761615586783364178214189598210868183130832452930558013784068954891087280675540467483334658485831154774439824833375800485302615370962708439065422137132606154194206522704747432629220471457972535891269387614198141955738033794127433019671254791899780136751743078963144904808325984713388587138332171009010795613508909324535125258648967815278443565195777198301717515451353681071482710954526151051523871593865414019944713158500012502124120127684671465643593398527552876195394017099612080766968537843964114224913371022738324280180626077903801859098437230672517448635156491306389671750029214371238671280676129743445018872282103703561567684801453535550705911606596174589022159372243481632478726341092132284303805109925034499489443192345983690088770243152797881875229425452881592322133728122327525493200372656160434853862849566187806662812796907833718938554776761132859606904644395821210486587915669020426450684815635191893329816514896967984707687595677910941962076222769050160156947783783839891656374510780497616240001031917607086862558797782547744895918563160043161616149670875373791771865025532981052396722199645418701495724094529001694309544373920160486960875873208384981430198223732937020244124158444050847579715011806309082230655611081962350158113212703871371880832409729437472650606776065147669165585250675577095057304971354303531318866355207046328194525134348603243087425911682655406041676393747180586295551288782033205893772821981777232249157938006096216322442119719991263071714447958975743974749935715624284523845782058737131776861405178545694927232495720270817652293597555611510652096030615816264736391668675322253101784577879691019271916655650535393866262392831559090268021115162687105583516188717521153448936785948022566669315370256530920283742023995511891050722938041073871475519614881771632458485456384479355212311169609356923841377402895388612788586173083388408774005408963274359639799078973003541713494827815157517115918639363953348593117117844243810525361382608272467268014640942058821731606134181210252670003492539940755997953189598283938986294039072628712487177400025685656993932303130976402795529510526512062868486306070471316031985586409114356694193614044070288104363597878146891847296881858840988553023824844887771246085581706730304831534653702085195602866232776588182002021979614052662702642742037556760905442757581227265612030528999887166634622517865466656536526541031148991826663009678556722480300893088924205389056614868994014411324449171500403719753290321763930153052604372489544673416912902327827590091327715612785696683268344689675617074645889344720839087376123805014631807648050371812461207369625340280473623528906941648508963651377371219776777530698920804030403176172066318649770251963310583574135168390817049316728526860568693201507817496499542687924877214188422521203180303242091138842483825500890064623339227880461720078860948708574817914966190432330572325092499639816694003202210009104695933876718609039475961326029537705396189306347984775371970811481937621684651925862093801416619053447384317289750461820646622082098237860443709882848770847982097741960192565882906376966199672785521443251015463289272296212562746779815796758051192250636227485284898154875581542491661879870823510353370234649796840874376587988051710091047749246117261257520477981786449706785371915215163622522558405158823551295600439366574165684315567947695094728400295049756103605658990732424705109877438378078907055252250794852488922481758761775822801340549287306858736128789556148355918032561073838177256681356782802435962164890185543074468805180129898200137506828933793196847125993680550567801800581601463012427457766565311536115733638708364498015629518456376849574439281891033576304520764449110274220159901055612738076988683356925365046368327741327249100235797217695114663940960418279299837587482348229621880670033324892145519336139104221962555577744272619221307448969750146261197954127113931621983885237194647143045014071431546813189348368139736085843405076408584261172682777386752989303789413149512104274280604802663592576714860182250204216537080832595429518605838641476556146860123190292391569776729664052838368143561335077872085702412966118637018078565927015499488095465610331000228202399196836050716682703349248784999028881869892114385769897366366028518476900806937460352500270744254885663553025053467689001908084794979546147491606846035151507766939255748499408201235224251864184871111802980539246738859968005330151461968220956952354093938933126546052947821272947933459190632282095831120344098070440979852325697717464365241534778433136032343352642025639962942857014379495969113397625988673190732106981038057833722168429714884855847279089114373691338400821103006363383196080687811581929320263059340857466527539566142431271621487384185531919877155789239024592123891558573658210588314275222075807458585701095005164670358962145394933415601293872508686885005668658217160793100067427165631049666775437239076664763932082159255348958946272974611975434718212618250248687042523188647533842613129897086378030077247275871359234601295888549156909997281030948706596849141499369241386129246429394837595786564955287775464089265818907794372940802178060034017566264977853871498261956532305071935675631327465529727925706046105580287518098167929448383609501663143766075513831995499563182231589532796832460061611124974718649207744211993698576054117931399186254198216543906590431729624157831320153695824764415011469771087809997933613983908191523160634095511873849571426970505492628853270620296127463721579318197846175492390134462154321871893115850299157133096540087598375134398548312708031316932457343412242748106203446127870614259882051720474383577416487877096726225420948111970926904310933135917191492834565640912027484890957905054997014647653997202677937151026688666866525573190111690973845718170524747111348111733284519029118430306490658296587599272863700202461041024094260472198264872143663665069143297513836295366966797756874822528664916152770348604637842494004047654383491116145986833761879025848007030450570892481873998343703445441238590678609990046944587693689882669710725065806007485438853736579581218870284490191219783287160831376325580580910760961296031242739048476019916265549443319950594141526565220675789706873393218823095983903800049596575097518318510635222143973461621854453525793294173562199904806084155497164922775333554609975805755441213195325735822639306789319268706109760942152410879631328538774988031128873903904416107207191827969537712607766252202349560291467996606519931553548372805090162426367530159778901057698558053038472399250529269937843582358778755709123561627489481060750591085270446580011049941642110218013343346147856401064561728226199962957807138744644605569474216727222379711351451539944873447450529193864996758356056775248779674852277408596750061694739350696014602504396847872565578988829659081744905105151793249893256961247992284842522357147465273926007892244491972763751169345573774393926697513458019148426224759263629056864681342533363174364752163094867008810700535413540448187474709888573565933121153073588870002114273762802361221138207777554769633902592158968769111605193263899518251983382777692778613395544615206583758933116132392497744739004600530310980132159642046810519124067272428501849864122865616951617693896754861841314181565316050921341149546209370000054448913423686862324675493023006765820259081214317836444201451828381613113370790301649045793702441867139449595719726550522810167068876553070985350110428754370481451339153728073230396013755970119386433272452719846029466256320817590641172604983999671103455257765142731496133517618757908859341228937957530622508056499343682275374539147717371942167268946150681291459381802467648823112898763105614892230351621267813891516823606513123999975812905638892940377449286861095372006288745989172081568380131390157684316937591147854683608716820551638889192404498892336452772160768789870296721861323666981362742077313387509539726053128969470012758825104253229432822335146694274893137785248780698364207936599908339649832683681024128224785222514706904261806021987177090394647200064523800884562502623201303158564503552617395758118328350093401040299577353309118381829517248124799049876411403139509963518799524387955986593461688405419919747632109655921332314824193715973945246371336941019407819100254374331585804983094954806766397301926612069660335445432676705173064968732038656340235792086269820256407369938245571390174350103385278073791315233774818300715583122187236663079150533357205626131093623589284260804711424587980185167303208311116464920030696811921845518432028612294671020290087726895595595987176871688323971622672888244034849024277145550902696685806735142305403766533638426630586632610433147679657253132267684368944178209737152608805404875893304598584989112615248984183970552521064699038535755457141754016798624194671680084212530014835765241827147528256943933060391021936618575243851683296588821766766907854508417678652116616940616553182106673037985814628863179434289417415762028425010381772960163220411449927150219611804326225497458725293070470241545288617864561160089072702386868494841156014075855713252778076039517783869784544397799651721832389086159794668951883924698578588355557130800524288829326271551567202970645001598623867847240770459352101597779720523845117237054169190129282176182878399905479764183946712083718654235297435071831662646296165703389636243439315245913248418075156382303703055128333071344163855856579512024939244147600647747501375837033681704730753269742610603880930731777778538728730222019659784941562106981709859183012559115594928464993635992912782685071555317591567026795126674321771850049429306629209806784872444981597656812584797407480712864736084399689913283991062926344866174854545107885882369957826638599087152259150363073821421296646584549983072412959107356361387755814723209363105090798562841676081762529376531772226086840183483819177229955434999299880113596589702349980755347229308042937192837281589156160564840799099774791533950400520619480483069857508136619748325507341233818967607573050887272079461007138323169742937982698568636640625739374101832855703349441732548980420608624071954131593344581881214736113900562695767663328954004735125378086620145687238055326712402511584230568155875122404319514826357297726875767504405682131596012440638453510234366973499383657442856252755234797339761695625080142735417783295782167234687676913177474989236286190881639812854185858896311014998181718718828314634921870622296567136520672041052497190703156128406890777274473148550366463631217989005725939288872230473780769626163614212823187295016159749611860768832136868899022445752401553760120317501434013465916320381126015419624143802748168553018801132240773657137577628848512991328803226547233886644378773087955197790143579625172241488836956986466169294181051047733866275324039531057245465939848670812855991546231793145392636389367781921192354922457100572443022400734363260123246939653250705555315749009071656423223056574678035938566124430962155049625300517166184932563816967215006726893016207374225089248641063651678526943328993601612358149298362814437991668705301622350429578347986505062117417464288148700582451050536715251577501374316943479135466638087791494845725893737190817781909077037032333441026718019949880618754078656743776300301872378073176388634009578141309367495579347785219573702266346353060455412244372305858379089911124834505136440437984892985090310269065231114416199631969780828656524157450219840941736367523829656136560597662327284489794635904765358843483961175876915356204619506644452836810572493203406752294354735170994153275801899622427047869925358703186584933908555293789921621549714661858191135558744304576957156078565189241926817975653009555809225037568150935405714009115121668938791372203442087311386560391719109737594207389694746981096248585775186712038994121688178787751879782539695809232688405014325625718003500038256088948081598785879410149327436553779024390177113145146255507660351326659222933966073412181486684447373033497187902477476999421047053027957489226646594156033830726425239833023106474994473736306821987497428252304435861160812244084296209649561048261788778978237772985478189526014274973588752353716506231563630444038949276720838600972770768292247930482789298017200499549499160770124653218435332613093271698653481166475048252035118698664225206305685583755782375263786916466024162634018195527198634128956354917330982526665634306830891223371119567520086311631473602228209957245123952650476052147989692972642564392351853601123464026781844701238743092791859564513731033072344199569322731537931200452346331725132303687258227308511175906649875358306467387576911896759638211511527270640846047777302829832900157866590843973970339264356401355801968187761407307662301388349973376248368148309925668743492609029337013492309986988823936935738307581248601386994420415369167011009380338201996114713287919097833149352340527018485807637175771383179065899268372513948525725196516752510938263267406025089088185885014750638483893635698773712550740594303901327704370263715941963194372671202750798138628990593321566934283956802061774778950825107032104979025141273064841337576894153518413749879169763253139923489722597074614016023267039639165793356875765425121049575185240008458971012739914831572075585093191912635527609340985268359983900358591703180023862453752285612921529547649800683838790551746195602758837711678577870968229587052788595445305805648988883051226663645259803122113090187866819008434194758814146968525684639349098407929007750393915385861318446753530000680821886376153295360924203168821072089593827574506149303565555231986256347908616684922385292008118285850599715843498998156617156043399463623780783754208868979485942438629333573442092612006366074632354998956635386156392280738097042357303821327734940391049823944813789136850117665187113871655743301341467836864086869614316306745665357719039111415995748434290794428553845237979725312240014010448755059552236653940495932097713064546135014401705492039630886137405099225729276738317720432379004916187338744448002051972910239491723856069803625484810476580542275614156884209050056307831356045949412136689769584465695719981074343298913832149962584626325361080675619179642763842853488680706818225277224219355739108477147166867075959639766865994909920570973393995525729734098575133540264239896506997853836746715427534803090223521589537653475001175257159966848518493987557262208611780742910935280413579764699238048383946746438649257981757932841624453349631572260752849937709485643061658589728911198256909552474662779864782504158845760112848560639435181993349991419740560962409186086217020926163791578240575165402243490000376202786013128046953758561753929679575876140199157793042660132802455669625896122584086820151803170315541737164608417633308741951228208155784040901458677757054081161510291557520617393750058085673989729619956864553490159929395992590714481513946490888616517720854467825578404850540528326684691326243973129369510592907540060199650353580370949646873358801850814391818503384368936412527739906492207625895046053372216142757547963579001029073759003470161848310612798493235706795657981200922908766648296368400708557428578943645579788669409011444861918132096267363222385203807783792306649060081191821583208211091957119190398553334382826710270546132732947413130916914692334143862157135514708797577285497093887458165340889027427387596163791303783682552993094756415946179767534056159493031721340504635055099412528961222230589168011961329903535165317445552984342659550444142421281013093917975569520236951283926683210287655616591680851982526283059501533721698224038679723175143063626841885381520589622375868209257745475360072429249245552636396557804154951184022171890926999342537814489208025032973529886561536323000234112441248195032700544159170628231335154305955486876051797959903847765198443560073927276842673513263548708947185274734871099386199471005107385350177273758392499609162923069440205086799719946748132008445318694090476473829285071587550784544023149403514040919116343020550444302074351634690923364340770163689943284232843881624162778015798676226278036478480321264577053614479531421369266031295652552053830314209388379670701722477270688637051156869737742131382969203129054331063030728469539509272741998236355836589308876813729438915722638527354684665026922231089130757286371150441043277125304098195971203776965664068162521736055034174774153546384692939650596623835212672023208011276586144859525183616695611735162749126610057575283631368093524521949672803599011985020566931884971981646446118887861447390359154873632379770133829702629116689479578006839493449979935896099652454128381565940122331386484564778458888779508784136372001890152789681406417602095315850845883588838968239462951762464624138639639751170494308672241153526282994651148360438997214724877359805660895287774162677426102732798954842541100612342299889338054710647893159291969720817050713542029288450727015345558365972767913361801301290984039301958941320107441058353640506050821186716841498755929939563049637233857574434615197028810282032236268989987790599027417469219898170216554185778404014688343758959163274690448165208559829894783160137148166980985936478171885761447680839983861230944964545009564099257284813509470194081159200367224834409830740927623479976621909140688217673336823701664113530429475582406971994417067998793587635276340721834893795910444757739345622347163509357267550142602681779862172683113718312696764630936776441682336474873118772026744076904913428531676797424819865590219414915590388115551931838048659068494670394968860025660876128580222432984885376472315831347021237054080313894636093009152452832760397783097081656164853149849453021676835580469142559602706100242553799731262894239579512442339298374166771570407814033211669691404524008177991356611691178421980550507835788186715664459584768362382387771330675760229398016036314661782912405650262416697499649945528845217006161275460526237288544951442724238884815806648087280111162660794904532171337981590402015593126624184701566866357607420968879370719292658439487004261872734648242547559986146166074839921619027434532652168451905781118452561126921109860056463457793918300144552183397971660964714637400758799989877711838025875160452160562380185308761341418786285623157985553516022708754294863017505117255767332644759542084678440137174276377093549342408654610854562094043956212493405688336250326984995309399915507873263336567081314310250810223718666162126641682287639427696316770254217059908190428461660014115786605633731954904862556373375916318218304584425948489923025880811391495942138669485576530866797909392798842780726731801406793626961325312511203167828126739067634660766942166089427544994507822181152705709799421507874621905798098387152682881599114588134745081394455127562494535648548284473821731270410800718536223433971656075494669148781863006642625908745540968842178680875325529074727003210701905271998468663586918307374458159095399414887919064891832709631260167134947880830085195326206361993911350616702956184794690849729631948271003354974908105667903943659416990593687719222065876349524631077526749450567680588129408796843903783674471638781299967780454228597315552681544225782530253959218767093154811156281735059367978172031679288839383658937695705504739325395185710245518781324664897599119353773535851010176564020458998600333710178713030142155364717602608192908445167759779092699501938768117075237645154282982114578654394830516443510686154369872088596604081508246835740424771132429743997962167328556559787895101165236920860638327199216179189862092779085796518457676424475759042268858448282874415669059499406442845221163520607151843355963176370715008668317048166756140326856522388784793734026052413889210606327823819826006171111793432256844769671221674107277469342662831996161266263076376362516464713841970884022784206648383318477317889820334715045817763204371871120919612613006661596006306267531441208265645526917105449244385996960355717274704923546945688350678414479260462974738550245304992264856020962745445184685194762413135725633846078832074160124475508233804746439151178392613711180515293108746410979048405328197923711272380360656085103992716783804337708578147668344382399354727670541892690823079658390739722939686524049416376945916239341593101287150230017204852294890656502913393963474344073032832310595854855807426308817587037676449434016266414479752213013472247048476495150472428180494244852032595092385004729864998882091557523157519470784740388227256809344132515057703930347531092431940039466418018759620466667084942619746329893514614441223346517134979833067916977767633228448249911811902792933868971251746671164405429539177104075022450091960183081454085113070255083991989545106367398603584363469877380950963262590044985756526961168269779770852087175494563611181112270511081774386962090962132783067185904809595218148264065263742029072992521133836488481607081425288797800327464832526906682673351609742946210213317475478014741370569860293293166208138746247871228754347979171103002991661209380221478875981138687030383922100923243042775250261006687299938307542910902225033310939315972301073566967518348215202329879586844999752515547136102187326233209990855498220165685830314487264066709364873277055858228779018230484384132766648252947982545033688991199259412416466053041432074910023271045967776792699402277463245491095302214861655642626244235806328905343458508631987456271446436551735908325240308978061368805513369317080925775199378997238126759215874265349028463697074454820691306134963248062146788555043822978719509552680478751155066309012074215191633402199630721341538785090874065380591920479848717309219942683945784655752040725602362577756737640827258880329304810221579101001349530393787961948033787108532118284371957238265795183356012620125567305946888169347557076894626236461475534111613805263764849504148718152093453547014149765382457298891574350236648629394539164859861044888038460410297992120565348152485201195100938363832503920313747323489996613322962233087466924456307334131771545694637161931247639289631984913176264943726412094438973398290437299312680421995415705890946286721223397021612383952686542229819478839107590258294413436185308659222404776296515172191264153875688033613515946962296248770320194876624832219185508746732017453822525654708483493628844589240391126112548065837809496514660313748877458716205903714566062802900736830641652407943759168590307483128112138801104890281243217039816090282086324104913177185385723244858138529331735655522793120451813480915572480220110206463376973911035091526252182588520399372547983573278904473024960305869294203919872463261124091152433777312392146326105622221061642335283555689910538423093007625044210600446820525540156190506691601048325299730857121897113963475635083601712754673193041900580971534488130406348835811557451071862529155656173690787831771459774853264252742581148951004377723291393180235632508244400215777206307325068483495870275002640348727179038976772946283729109858887865292565530322487448091535974980958648659785869896770843601129546570198235482182676540852521499281356090839264204902602566206687718365911012483275952452532106561384163775353676588624507106790505448719692009962213684381499776047536818741731204282837961186282509623681473819227538053030331809860227018174731739914411104097429323643626836879583389890789278739456334804800329076178118491071163762937365837847532611339566226170819167346764868473511394973959376975582324936546704260987432379234395085983397527508507625291510980865860372073417382311770629306949262936322978388252720331971797839740820076934742561020469088376775380964086570286980800409757188926717633658256875502817540365805141149023445161062900902746086562858201889759307062086353608128389665715614682695721819443358285085205543329006682749829851729711049456888494977066992545961956116058067448491888001517393802575360876524591427035952033738265923382083516630088178128267845878903500976663280610260008244138855759708728947649903042438002261962659419041832261592645418297329670374368511476620826792746513174413030376244468914352874218425584485714127112818623355831020603494788199020781513868139639341241502506560295577398950996883498326973004422314419092767852628899936419957437818689648057722813561872843165268333022077130820522522805576540459281137586025075772519698765561048646400098171110448766850931201738837675409303374811222006133733489829127676036055370367856443409095283867926774325726769852470259225528487102312569252898421206229606086748380809266993194131040028250518951660801655008225056696415127124472716374147374448163991656493531840045687231843833068588564346567430897131475030393911162263307447028858129578438383266049412091584327404557914501695353707727782719759573741452665071967605664754376983114019823058349073491535325204619784019874026068041533767639451760496048104282219823731268859781269918371424348895795463273422588061534860699429242743259715003973560955302652557484745249338729666153567589641331814394878192090529473881479386386216648049537670239607180123324908956709015797192343107502338177215355895085970307258517698915121445973893238701770071455644398077953449356516810536682560438743508117798140284389137640558339937849508696461999428288530865019908146945312495101265114639941918372861070725432095374076027919379821880819718825201284079448974570443177351091070758522460440586912238472039484658621356453102475691540537058684434010387033279693388645276468525241724211730039476822536742419032617027761379121627345481370363490012156918327017801887796405732526311048708288053971568619450765254557379636886132858500520814568982003374939311285258394167020134894020812104973482108528782740683024657537202142191388433004422712928881111036071536934993089247466552845816873566869217975064756500611117965587393343964114056325855644719795106650980034641721001697378860479904089728664907271033868213618271876656097455670325313981040035110349434842488848986608863494265946377816694142002861127350509552372394716036449030819409220315272163236108014040745831433496596259308835372342652737408729616208836339749871911032602132894039023033286013316419372580454960721240441551403784537046198706876091832853166121070597311521518515926321219719663419851075583900935720084820463208166163149306045298245059389880325978770528961023510864784580819175437480388794732012750041427382670517199398577184496953329004681084763939267437474864081715008722524002504199487633671895001157420368308111106513798825203780362615402708344869765858520433547119118335452686470980929014026328090111738784741814969915010987393079298739577529212566720589048178788416732032577971020366764117868678478358811335956693035244834446223749594711900500470050102934671517861983229216689674517439565624933543318366578786106707871060447475686495947927691391824565779197409119292645268256987907124868174205437955001397202891279990474475433167683069842602738371820919362705788344154199403310634844041884897406476786841239390295934885588070169580279186684097040205730862898115739692945463804465886254617933786565878874312555567265413474899601495069921656652132456672973984488901166007034434899375513491613299040079712324475109029922605146040636268760055221459471107969359041635692989397088848112456961598331834085256345184721321333757020493776114380273714623923197442235634511459268880793442766704771352122548455685116874323793195347567106443549918879066820580849642886683268729695046210525599427641202368381452502047894189249063299953515551745917345116913124639050412182224279929803531776889539329746175272890194350500553902495345329412384411173126537269595468127733145131103376338542217714181962811026863660712492975247758424848937099809908808408305774500663861831761599412621724003658016966860183146790798203132524220596053297509521861242784415563258515862451605576403776456354267584723878595099264815794326489285515343444620252403367611621181942684241070018274370534625136488834662108440577131607642389207526245631419397925658315939194253609213602941522139769155195140482376336603660891578700131330956500831201544654503887289146161198896437152988400650663796965242257715209135492907563901292058976801629660431611933032167400102125346014500100214865973492778937608805219552194662600185749499638373413743211141454146897359893180870770293588069012942803748244183123855377483291005057542930301957027840414794668630387758669282964089382811879868156615414014525529298631450650879916753808969830611477927655766286139853189048104359771635489232893823454589668308511271745112397550695906188995984779942087797957876102596437370663724899499448140979881532875816911201561607657218642534163983299508782929591408058611134289774091891316714783389096312438482658715297229167730306591634096285109974806310751433933363156465898152896328392846714344075564661005766544090013344878057964399580107600406375826576720863921342207230699022961709082642855320410494566397941399835622061132598686748250926931033413110458694586057421898839011781464434158947340590950185468698762109142833218688772418927930873810211733123565690175022301283940534868554436130152275085018305647990279158874286097318297860503218189088424950600141276366215541355511746756674973445619672230365006112221065599843976237195546018498488956393613276571909731128896926017061058605070478888218732184549642526438911670062823790679311734413095820264551691992932429797567670140092518876567748362278835378542668215862688355971618835922926913419131694750253877799492846766684039473612275270870670948826770666715780504169962093405928015042390812195639684069631970359339850053923739216229252118607465826686589261913299422128954456178130772803403312451519120620359873487396333041702024662261742257499652337553102054720958249654389883499671071853799201785420976055321413822239237724546598140269092289614775536283480708528158591777778406194748145719721006471618225959850033984750601928793443195682539308376913399296454736223134545677342736793281429576040835822026339467740307480473228383939072363706822390713226370420021889227858667721131796090229193897805326953234931133567301489363562848546790872321460519291111408008160726667871747361101143360182365267632073138466840926926565629146852015416530166160962159770043945524612856526524241150405415430903897866903097616469697773410061699289229985757613533070943962343843673575643633811228144356581209603876445072965888912976320750442587954395495249594366000313944864130590344538050247411017290652907096598243627345125090622599102937242588476563578506524617099206884468764859222093643105012673065115083372257961964097063091299645783579496287361342985640957123758675941803277010118791390789611194506985860330940395154120486014436942832396754297167481716118368230767841519469609099636625277936675685059786084021188014128314087488655453204497457289709976448949615273570066546629363068515626338533257569808222162686467030286211817007086896421277291091280161453095045197055344287977042797957799477628043990095866361783485552173632179413893524623473550940022711841049307981593800607452481207319323309954429483295744807972878115843254091179126055513234627204012368185448526517870262327518278974496803652586362008572664941828181808187520015584010827864198890802172378894808361863069949312344091661995089495337364845642142536813451502617630921846710379139107920829850583218569699914985361408216794990190282280940655417942232797690529716824170845321948901540530114227310342087035295567072393591090253622482069932887552948408130266023380902060361411546094806153823672935369954412826980819058484999910724700760179288329560099444198164606147778279371935678033716952485292141994323158162655629095276246531269720820259852335088845515706573893296901614136519845705896548916438629321111106839293802221152203483106568604906873416461022712504334507370588455294840448529412550830979298012628612867057253063795033948746656857003094709994971455787092122871646696845660458424551235862296743285042924500206322376188924207670843637113090211208461383188080117168977065130910228612117108701000937245496584279894430828300388100810803151087928617623723685377437319497677887941291847754672848695226324764556752164122025092037773079889538765953733929368319727546144144930106507586411076288421567961308590021782062694598719994576469315751957801454591042561401869204092690056895555287506520926635672442548777738170747303670453379960902641237630461751540174638725702859408207064764024806501434405345873464358389973154708093056691624521713000276319768851012825955528048008069243947047602461053751114660134528942338566456053240508090344371171327699698633262327459568442124881046960650232243890302454711361613573407159660295758694490541093803574712186442092984357163493647036787283051975084817973720130589811997610637487399287497730485331217180959052922435910252791052924177160534970886529898929278406144596662359707576609745884856468802794506484003181406872666651225741467557174796459457871275196206452119640034794281533136995522255929823814892915092129244401426196498889275876614726668814838651084701301773584684082286786231648423555614717112340135883669382208032712849322650099214849454889745386754187550869271977209795779550748254467227560412803367650638488572781634970070201966299839339900590631328634126224965909658772477236576685670909832260599101589045844989929932523774027857439340195050822591262606492207834452535288159480655877180109958591564260313825310917920482583250343906101173743997365772923500297146470932932758710965600917189119794585839254154456585167224277660410574782790610317103929341707209213834153297023422818273537475000858680552876453890811750429922462874962073074126311895096310750001822627862015941424286156163214003012911100627770907661194025798073223183700962255850990460717031600074466517955148814218990974723817244281350826434689384134646067659193860675522311504922941857294357789482875139485696834713916322055837330640593952091615743215734101926457616736032408026407948892314562211612630882646811908799114237042018374334374108291744642605188212351246677405773343935000222127210033236437838942533447992494656861839679979804228262649747720895620534842890340594737392258844672560439057057219706805014685869716624483203297888237997317900252974334993429511096874152299504434978828761853642790030736984507110238021335863024460533400092414900819460310542200107799765280144549951049529959885111674946748384386596488270225205241785938992118958415039560908317806020084991588549426481297158510062871687097167849220750678680057984106744048517683665567778486523429959367988006709225681924355249948429694753030002767841188244787578347624529402001834317815593790013418236720783480179052186412661317997429638878346161814079520225820299391184555845138380130261529764416291231359175566689632221809628227904144465488232289858234199869957347272297138061042642193099729015419262862645536142838425215290285108932323869863601981736571240394008622049194078215837287530214243267133246813298053479293360590863252898230911269852186736353378282368979045075196045106460088296764399383824372901089996321714724494769759413028506781122506031661290523826771257918890258045102832261901603537708958817440143043168770865405256559024517737304100538355805743658841787963317747982712943514359442761945535175826398930367817351961879286450189163480634575902721969801539507078183992853140609341074416958657944517126451116754776077698789355296404647764959508740045293494045356386394229975775146309537373030143534788694132657242013184730273497877266735057835612808541594220832381764596003880459193316796072150934749464541162650932031903480533163142450720125504272568955011021655415475838518776967152575160175358165065213206731661603297768419576969805141794820671433933729281745027326293391627179542107661795422164129545622733694991301775851565438185472570898529713193954455809331859824465637968618327129991981405451318626197310509546318924184029874765766399733539584232331424474540938847531901422014066108264456700001745822615668434337002475409986576608673392614212256616522171053896408359298718454506913590769592258367107909692035493021044957705802020939425289267253372906281772354258671932661415665545303211942180622519308869343730883339956242151079209642919065536202925541043385928862593742196087678625589461345478847191768045688639968412759140705056765225255372478141478824161601540769787498804333281625545194155824551565093649055280230064420369760255833892272795444951416541585209696708493862721380935802108778820903809241272207023239975825434661000104867575056839323177722449385495684338973979146145554328080095363573505773415133489351674769945133094293797477195299028177694263862003070886370815543825934558537010587062684650206755570895037181419298283245125931496117387981485204590470151103152704335964518231464876393144165176136723250284725387095818562752274756431655862695283267021808767952334500003656889603871163416602676156824167217535393383294705863910684012591076209910301203350669345650278366681608325431297376765170894941115461374209063114293402758474961001723347656317577447464442559264234114518279633197996683428676136890163146407682491065710884782999545791292577492738231243709755494303585236580051226671900018232698489084083136457421300021444469454877897944266916404798211922435915080704339248661218439450130614098000753495879522298711230893506619044221790094519744170620112336672327901810201289460105977818667942039237364862209134592036547426071409529911674113798458159211034366116589344667543377045279158853603598122553591027954020003517625147919554944005541545603233771689847495945874037162692577745419861280162881396411215016916673311580489279932261503563828160494190998083418292452688324501973968634196831521357755182271217650550183730212297750899449413258105638142492255938242294636377496221019225199182917023858164014464810975305930601588978037465234364395437987324477317854840226433947266128232247570112236686651169190240887104615191329195530544994348637830650817978244462857742023838027082848885627457953018850885666062845159827854527571184442865953574424698719451992721743855306411231780748682342697163972367596524210628857921610328155725426611201873694600998540195499169729925053570083799339367743978764400873974422839484732952311063090952739290447050288988429177271801209162247218208891289322292775372682131997950809065994576610340855545633936304841005136667076346354518712766833551571097986914308376409805349853917076499019461095004853836979909193365246118874293163908553010533679578766666694163099326003064242370266666944127083957348144453978785363216526973575742905073520463627874595637705149676425799541388517945627246842300591074634586852392040655923144271876031716792210819334353662460035220523226410604755102434878878053819713019064438302566987701291009062005807580465011950022139027558875780336689101897272201098455984830710778122349416752321269453622250203953581232247915762884563894139741189402050426184523426983499270955291258206300869363686106347884412553396202749860703643192058923981453747161076555971440587781413624879791216188323713278875327590449311517704429748907280400754043149686266912160747842276596381342431026489408323188847050866854489508412996852741118587172767819069099363108571576167500017291311795781042618961519753159736446391627378890053253350767785509438683102446548552175910783238659445154099777237554479480122288367284762072246753227881986844186705982050818921537415828637447827113394732880033838735109955252883763151563220727977242346930179378909513520467207388446025427793599631537421317062449895923826648735949227084361337535002280062485102447915792988143600493683717027581154019047100101510496189068367363198974512549616327027027692903739380760702345695369658586723069743650809050606465706492596810511807361481359081582963385142024367354884241900030905023655217297358757982371373695524898401664022630826182409907298036941848453981108792923845643653324526996909703364886229321394386663456072302933391700640505216047298685971994537667776176014388893844138352940829584906682892244094850843960171825799445682702592475884794007839677980759971545649517517351621884361346792745733116007437920408707326620469497550305732543800849891105760379745868511467540875766137563201818021027325943856983158942284615124398876290465971062892436596904098804861556077564810368561614284399536525567720505576319805771805989753441013416793812303559325300497639149435458349864439136526631290472789804950172724891660148969600760034383690968176631135706376060944468672487242579027157687544526835803693085429053956927149745554013031745352976381661926682345677132048707850416552585706875706499811168668647395095771469622163827921001815076567478547845809604930097200714568897924665722867749684451128604906069284383889248803266569258922729439191973774379547384873709342059275232449211787017203884019950688480633273283145726549125734328858280604347858207366201514964415912506207115244613509170123554821944996843559375374521083556396787790220701541789444294221667957243480997061796729316468542539488951467245378967080638748474726959612715504743192921103904869279599057445603194611495231937124323179899701906661411693431719840359065775448472786380930833866175169685214123076414709307119065473307240638290189319035479605113422475479817059022076244434697106690713220176607578632233965533028923196276115029540522843413917129211457324877443046866229902435408636270006811931547264487974597438947944327682194697159474752392854439991589054778273790944919472654730918268699801005863928471100391840338782787947511991390993054259415861676619238389479622305306093476204368272005770302108020915408622989673021268367466456075323686489176746864139176509679833211709266071300765428990163605303700882510772417574640565501380762629007526206269099196164689694841765629320520681626102587891578497425995605832253722464530629313172313807298534751013278715801555388618340130108741375638523158190064809862598402641146418279178828606094765390516826874551421603861140393453866059536623899685093271636302426722230779881060315440961379373118470806222975647756620419361925542727906416849845394749545790058582531392426054096616470246800400396732462693767793653873258848114264025679512554421804095396685902833918880685036475775603964152557916539574219428986199175454713187236312490023441974110613486550994727556372785913820943022572052193395542958512280819800841460868406693401428652262365298940608266882276638121332649441831749205945787455843445487263238639213604609695509542594379742656167535798170587457093325817976290872353339148471060466772103620027184266419294233941925713515155652000252293823806514701941205433928409001326501178098510333931869108145015221947791824381653377713650668839943718706183723706082765971905772965788276634713709445132673469196783528938354090575624414798965517368601572799994293990725004988865395502770977898020639395632440083961954892489911542661777859273491291306675520507007343554228844655756021263423390080251318092905498998339546065093622893066257900804685688883315341228242951746154658964006139830387591427981950089756025419551141560946466574178711988620802764381097566284702294379621129503151218961705754232034837059888589722487385557383762822203228056534465053802319408988539043265077378307947357874201745931342915063836237934284005467854461295041213690824934391743532283671660882122849156537660397871920240716710999204067735728505608115345343814564304987380025562738161319762236957455701181563735708851426644618321206458253370193998960807058334177926497623954230470507020903439558330091013294722481698968693469711274781186460051544668313802031992787298361186828860059172745808306882544071336172728060649286718273636987650425457537300045335333228163268016606656232944169351767987044912154450670566806368072401164904807085973021989678938830247505912952759005875383991118131150318017389658476391745282210110748634416820378224200236636448664418926988951377349735121068311765147595963669672866966201471893621331937123529033211231069575013612426977992295338111568228251040055626212390665240173549245432614810090565362553613624647201974083704076974901332313025502450865745156378265600695460811439649262555561835202354074789336417025511096587175048537249143970787089957069174170497585872277753770239861502348107404071165708918796704063872113300928624383540939101318078807151534173735990658419366448375964836484989046042795381879929564594187199142142017266128928155787595879053045008823592621969045194241571547118605538180894371642487180909266571600326517078572382788736908486237254431314984360016594262876840438012693518190750850104251700754818213799745789262892250955050526180979579971913011934775979142459468892566071863674334585584172516150563441800221202649181814142123788595080700342488141180218939925666606152045900965984645474243671054269875404109679252296817034410302935032664253360148510082635881338884038867542658612121983178088437787791909572570922895222926172923202017760445675199707296194248659907390615602741025739977348698850833240979771652941477058090938141148155925250990650926401163213055080776464547159775720203075261084473543054744206288345367536615066263014420259178162737781215023010760513605955056476909297620108851836123493589452930157211905819067081831604646869425012854769555396231249371228288491581864103788964724285276749903650339404007182145678593680486651773333795855014589923913321730449822434374700409112051535965937603785719268407954978535888853721169695461036598334789995394302238171414030529853977501605400719570836968030855991063044477039900114674829598383382528643946977052877520819248527148703220975994524121364400770923649551944880063522172696153710179561986838514191766393858932884015536836448074362327542821156506303424053623440350115473714519453713521393079457946399776979478043605393960213951247168163800369082400823425088913280639678996842042927251154507050418379280782906367187573385336851376698513315571723967536719959706645531736931476828066360712327340779329877904548058490886637371846250573155121493032644769693515299824942656385727977893999194222947088028686563876253786006045604513273287616432923641196710253008892517776699084335371031639589877069032846508248683662326724459475715876926259351735744811389125009250694276387086828672584546992005238955269199133169529515621330638089858797924355072468315126230521069895644153584655984442091886533209571342917705625961964647902912885514872944263179089099665511896711170610976732576676639891693514911957085134156746348739571592298011137674151139184977474844442924217556317230015538061075522966867647334148809267247601540554945581210720526861568901578622107825366493571687169859928812957049336720925576408081305983882743850304226684537142098670677396114732925423799714111182134047592007109025302170680700375497739131387960722958130641818397438492051549331763150201616943545998181408857179375072727083528896083095369373344021945406795845963094323083652353359627999274857563494910101057266660201697343355168975334432577707969188569898925494852390662867738990668614033633802153804154741581932013248102169446354463361236031477488881232800974589696875120726958708218937992196083802651624508825671124304460392311662721071991647159045708448150408304729580015788392718194669188457864708232312257938377974805703530002862498549166396490138606289163065177528583373033714812211527804118851038267833297637840887267419675889102434736220727226530767023240092139664868325049165870387390075230459714696620665093896061827455493641354701881563238108583733491374643037652318789510191251404442326828072041629015942522585060369059593333658872189642638969358944901001019480386563075494106406855180008670220741735595560322950318934442078954588304234046965705539956748800080279390453182635462596309008609188938883118502618101675560130484603036751909528782695502276572837419352221214073425579851714005977367921963795163163706195903094757048766663621913279589911279678528119699331924502307253172192618729837670265568693365360913551751089724042738430389729061727299347910193547046106766631902170570383042125850187320993665991454362310159756683194829390492726316706461486286361678899855386492091819709886362193313268216469032458008365849960059568514879220511971950600627130483815331662269964942132414019166785347309850754946985134936044479086068920351776620554328622874900127255611984696114228561068476844962051413908011372882409871147721413139842452091257198050999086201990665365653422801100006836051239828054827952760053147580954363361919127190396462316270423729909819973079380444429847793729664733995871710493598555388598918557837945236831611382609616826742923246354008684524058852296592918760457929175840190913354017347320457861168538355965062775257588017845011546315296943922652868672127295919806317310155228358840248448487462679701286294145454787750415383744992324514548318834719054429574600515332413927653560931629012918058002242006781359800371359292744444419716322230253516755782543962712195971574484109315480469378544546094210262298396885158335176716879106095503738960656971485474162138540524009814575636116775253158940631997041321782199591274956897385293516476831576090885738225819274435286825972052661169478993971462211329337912348605842776087208424702779033919298209675884802354020154365567950454564518744204251344334744269412145794107927436162678325364530160559398861137463182987877575977918007608163506324758025310111579403539861533082924443335739983587947480783258460514921270266082520372740186038489087102363436033267627078352078828133445243499565388041555932081663523114980460140085916143358707953547004024687877997653136618741248488499700859404114011044239140884116134960926124506109771526042782984162114629735317706900193001255054031628655222053720121939831897030879522460552935605494331602142261151251006307546324390136870841982482961539378239583525044099552668464905673705783226801901091428357708785154358076605107542619167803400333545703474348039953235578536194044738689655292860301320552383308299010603923507949252773694108261877442120271822455715884463777652933404653096232998172138707128966162972228976000747266748416785868917817838414002299696233495173409379188286714862889538026228563439503961604952793585822623202101444416358647736085729290156780989025221224578225423661563702017995502659452988858055431806208490323108459025992101419798371773729029276608807648056441001558879873637955386153612087438601852554738161562658964790104144104126245354293692713024606849365737906426454560934632826505852591559524949222189372916138117159161329248953244418978147363482542708578417689925936043240044534415033207840677126598544902303713496114679663140742199232197007379398098535608562768098415993809167996575602208119361339831048044497616619045513116286650448705682490738470551421603311211868057290735062622769275143285694879495751925650535853656256014002155776964631118467044409970274016374600402883888387394732329617673953330341751275982225490715588754004133987059258578172042732094935197981153867991139932557137254589993659970625943878381821564331261666615727300212907621339684396736846986622068536700145340826830227836986538838296868245776206497837290899816633568360647678271015399798570274472323487589459265499152776908751695862572159344493270977490692144880880139580997089680417873095499541913581686543392086230482498272829781804890889623185842322173188659268393978233677175005855086981198277242167313699585428438261784415079462765808816751309513144147631899738243326782488494966209178822360761873384622042716659430856207892134440445230354959540011194818791428234191310898082000730956382487132149832649589174375559557432317422865049577768485128606822703534845217618436701381835703480524450404312253539582198089852225000530257684623721724089410463507662954259759189636577973736717681944895517870247584817946784409637145611816001946297513124782971078173487459913031776710738260731514844553123407726596877354113467681111225258275801952831318310822125287418694883222412849237195350971658185190735576080773439853175928605699929585857498381976998048785867852390768345349981940569505664390405645036617550102617012656230597928180580430752944852681133385170011791291315031054963399411743064189981995354309842891262669184736048996953082725557598117430031834145142879708061880957532134832000514101594469129555764685325632239905298591859221283030492034226620662654747290125578718138730786584983442672225697056108183360021152499329343420695636354013673993827706258061612136110711816038110752830146525920734383477550889674634515236756130157952486279906439474967492253913618383389175585513766208942145295992817185762543121236517587201910636881156018756801974228110441607003230518945296401321747578893164436834683995086848356595943730686869320743983398370697391766233431451747694616041753271188043939909665882324298998574422827986269367548518769858702755149722580030327872491696820722347570168553892247432245778966855764501491069855386995963002686706157589580451526047788112052133386255005794279346936528122488891352796229490075044235917384109902084209759507238265235729535583455961301188914249004158965889259115551028971201165538918793676187816959122653354182774806213523104540033527008002847615559721546967731982860561304419081275263830318030173786523872064761100151272883079781493020019833221380995991104488954882087531150538112156968917599554670752862344304766086235100303702508158339425685968234485184172045525485618952214642139199839581650117160088923097575725255838492126696163906821177205667288034746901895593803367074633686876730358828934400027958287094828082456421071964463864163297551343586194786918841640850923052759370598619965076177518722637948714212830794883026913279961039393190252344448879814716797323554023872648754276902305044516287393484834728750651821996408287088125200673168071987166045187695369324365691041343433377529680579665374742489441110277543160888567749746227256194662014219642125617175536985614767255293890080734628079578002838109579766011025044728779788174885908244436322568048762669075730789490890650927744543643742302343897992213546691057822313945895777686519209938388475559589942775272092668105563157617350929414089912798557259061259833503185199015378726563478621723980862449431840123786315766609060337065741414406349525061206452012162595525425026671473850529785186985199203264734576563680691539189613345883550915781399324575865236352785166122234161906483432818465456591897392368804525824560729537241399588452349696412271633865480890517367222666340092456453936996350413693533437900685455747327058454666782044410548043983032279244026167846352705680932140843596591212917840601477284019542752758405043344227444002969487467278036661552070851506104144987024890707758010575168186022120035099201996322374744981660178915441850591839270257837594073122345571941254834565758160864136837471169875407403869217558277806507742952093440233813166315586355233401290582013594721725025170245940557139930060856803473813821626903223063802522159268573853213083614175639448955224943009979475577989312504533616957926146555721147944015758107146367629358231090474770366008673112621011948952592088126068682286083133990642647888603916409228629202882175269043785186683634428925667900522838668427528281344897207511342982983335490236180941613153058319280805926752532502430705964122923241751360233599216973694141682124621127741820061717049394255400545210904148307980465837219627079547778923897925034314019596262769450183336437608414429941614458175690295143248012057779572410936272165117173512572345956675256550165678064848377360246870056468595145359159729514992555640971660290456729663672024246454686364104008815770458053496766907776560145749978312970150035874630389887055343429927445096528316016443288589442181074388623655177330369607269186507267993929457979155707409499902589583537289594553316924726495712382841510252541910217130732334140400768481084780598546619917295039762967447338475295139794361715904693713437155803586321562574803781378801758307366459462762538548791183109513241008376671024520537684682410449266065489838597063169101604540309210141565799981195252006769599485142293386756801256569224131612395231009533678755018468765050748472256712429499574084912942628662435284615008884263285572795537870034938010956670022853138288323690665205199188598870097298597887855953878059093742882822729178125349587873141056803462170859399478053513093954880924645371467547515854231677974427924783968637992842551331411458721989007843176860806644274139642669036685051891836157974773034532733165834367929354040993856293225768751704557332772381738323953822399058423778582895618241068879204316284794894451226957245260264365813802147788922993561349511620545871833539963651338340978498008843396489132411162869517115463319418789531860643326838691815268765361635430101854882859737800893240557956987479122941769395031428396779011341395542453361480011073756395015984256811868281923200947938017548782415676433981342269965021307524308595496515225814439690355839495908421977727801601095247361113531528250027134586711995091524571544133062173526141706356316923492845128433985258401795106237533322208981348822187440599055953910339102289427172113506519817015159389372789391517408882337818287815950870171917629823498790430982069399726748795315894591371708672399963336283936750740422918878915820211471526527725088319298878453937193464359727906571254551327253561857204979687476408673284203456964570753949400747276480719570777203619436538362145801341084855526707575276902209669482673530711760394209381694085264190528491100303354257686555915210786584100170848929032726026914080710352580547553183972796591619262325252213986493361830031021648981149180889958104072033716183201896777607700633124297826397196355171939202795993612611910844923548472744661306370782418945428985781563806323565002270569013137218190088355187076006970446627226936784665765814526695890392719083916994593223146683364432840753509035880869678998063208096189874416665124795895838874796052852523134440994355429779263933774957997485252435858395213228448729214297233626221353570548431865368591139064655028452852851949863411437962773332064188517789931457775836305988128073386736447492902384692826373256291374677635158239191898966580424976984474336335786041890192541134738982860422970785338960334928630539488442882654498201108908259698229384415244128306143146522225235494747260033231047790174855791261295638040629338607348414643960972069624624716994275397795052919582747447353547254635661717574881350640024173328559635114884502396659498460093128266346124025480680981868140476817442424812214486437288559765774305545292785026213782270976846925095357535977955841298894548118950583583610949526825126950992788216294217681128411477504676155070274298527038406600392484843680643146845798746145157912884891610786232086215387044191762607560282920407009609066554271815774390874657797563161523594345558930150605527708804766304031635479760491077477992825222786593088613840357208619716085347629424652407161976359467447872518795313416178627439079416099666233377353904996251359019222440560040307524656565591652846965668309649728120097526817903393337579157708096135598281989203378950992591184400498534228193287325851361495011998930354765248488240481852794599096539193069382063588138656267421412877969217182826686272373479181800283248170856477056754774399804743393108570727704684365200000102495755340234773676519561848653632288515602804623455517091227041956333544032801442069384147622478466909246142189399104560274620406243431559623909058493022966703938404731469507620997640725221249865531221869438975132485198683335766201560444341445154742691712395471451508726378681631136198236332851456087857197405455481783022029720891519665065738714766471171071395286864537909819150308160071952644201126282077373627076539226005519680247585964144621826217590746110864647021097560274375989219929330477728236173908920183530680331387373929115825073553633383401580835345105669511440531158293979501683073799981149828929948960178157012102432534658644777765670041469260854451374031003873573082000542779803155971115710769263477280378910417878575174088763450351937119665675102005329875579376741087474570836864929329951325558637654786477783003037756298072053778822708367681210845454413634055066241641257423218172717118449927539780189852984848173155823683658433742402169189187803726224514249181845009465710195761286507399846093872350637433165145427152539440997308456647153272046319655305330267888482779273559710301951506777541357689303473970535069618237345930932100467637111339692398705900692860285231529565456278885796153522149497834119715859607503886952755000233688534406677480428088187828765290411669551177795581708005219530766802270705280379951794422113808496114632940485664854558767778239054166778609592549041576447065812696120342601889754390152634113729724407428749715969260102373716578109010878824740061180607886962917075318986579171682373982305910928097399655765680154031048434334532929185673096512182090049061250293942054366718822827980093944781335511117517995274289140882450834477330742022355245381076245393515985725590509347935612448248497856251703226769510599227874650211658056316216722935307609753604054989960313263721907771327027523897902058768143262923872197863296312579466157749482819381483185446436799090980159892899604775627840433696416064957602238136201664226123769211966342805460873797630406229374354784669578256506063448728574944095566681681112445654013252153032359213123304882652962787116136144246910848051351058266940071900885361712300696465745256656081475511349601920927606174830723477893520294186332856422075576218470789824517189195561794449546536237467850528760018910984426667393441289601961151452965898513897779948023066766736398061196889192147957031913194222532598873458638900334887148147355683851789786337906584427262020739989353840087578094168257210207997663841058471458919070701568174686080049899107640201576951191819212136671421906964827836997578053545150169393297907209221366414387605349256130051591050442067947659637967802520323916506661891024605866494608831395988154974717547494415256943923204757337609397124316875186919820591222652500885364848024198452034203878830459087804213914223029338404780670498458369757819958565738430495828345880649486664059264632108950590644959755156590053215817610714768678973457722809140525289763471568441009414194627629791557847087231806939712046604861145879513969442771398500888098418791934255718195877885895276216678956799714008176733401506260089402899270791583432346895088409957751466642431447989033230040329535036977044119823267539724968994978068330106976230662649166440731769487378154235771757339042439672652807502535796329067408962601652671395925056731071184102158549364275335825389183564834211439445875557315410338584246943308930074447082008494192341003723089637846493001326159665500020895169877573270738714656988996813385890279605173630675673085820211698368676977510790265827443438122416821329088379026318174244414822023196063224638158289271912747124770428339691917798903166783617002489361312079249648562168094628665354185232406811397928632764934024044539138121385368182520011586721582394220279901845137575569414453470469620192640771098102681686738071542225501371967959513417977895507155923522514014818918679387501837507670622619532858554861463418845879652584097866987601359638467545776531200604046778268855355020365859739533797346350508431118142338458972854963832557566534075256609072540807028236122604821944316128872881877033037722589176988024473974541130219003875228564373213252866320471638255295689352312764513963093991557610050973374879731954441069730894024304951858932683602720754288828357952591501650194346744600385330493866783964176216337840306626892203967107987173932757101868028106349802360001199176147393022355899771671606445980533988578503715476579757137663327389636046256078003047471324031049287169046915894374536710967965201087643671100163799193104041810465240559325259061491257937914666233426638531691942843206158318598224235374075392868170917168904007470684989724162189189087950434522859787551784799540095042895607239928937632396284743882196387764987995023382115232411651633498209279128481911845776460134572477194500135982919011112792589711820326497254044244765258201277668462134217506143948224627498908461965156086767303408951431582705686571741010369675101888990745554443350492639014261422999863710133351217691456846128829915479301789933027839119607730617609786237623351809946747281766359690795412167203974732164673774142540533391622301258386513751790110297789133839612733204507437765816774033830314672549291913349060169006027484545230410951870422114514821140519815915424040617427259848872960374744633839366790269988548908225016068670252976173581276113572559479353112422765281480904213999952005905945291892759998493886057563021788831290114155776177261398990244669705915016449653779058218402135677438432742054920022017523753129426321113294509141476413440823051337140130197345627272037960179687424804587485806332611372044087206226351173417006274560112082718107053902168703541501793796537939237538113536593954951935176350475262133948657807417563897816713686697360857153860222068329526400433579954637970772354503900509630006226550662882419643673560934655272872000986972334735459872416010826668455566604682898697213593228778358098362108064309944073452289259081561872667711308890787319254630608921384378651867601129302405553253716530845645484032513485360302803151100576805977482360861633537906749829319742581905524682703770738755356917478558226200161762438752956046224452837397004680126903050239774039078532158482611107616018855520254316619815324167928838003429848518602078396595658180584099578592067747469098322916095659175066390324527352258669310372150035435468514498142623113152324150908384106491855509492468619138922938437599119502452969303160611723207487681215831854849148229596864436294050722947879567628806283390824498546787275047785063082161005229632195129394474457902982121979846678810610594115249687338968288307601202664897203568672965783494947176737897118252260778877766633782553378497256278301953443165434558490699724142433690474576415335443034074307212316611133262444683489270471949887263675395857202381669732658432198849400052021778887985336479359984014190259395904224557494698285564140726369302117697552273203536156934220834142789142518083170827305799006939254763729435974473999000545920492960139564364680012949134089340061966760360711448593153163005103066929787053695497492972733074273638932571744709507249268439282580638104290082424514118497709287917714444940091368647423222574833944037305492316969010213913393690409195452121861818861651169847157261202727128111066517601253512023201254836418481915055194777001103426038048729960999336970901864982310252688651177553567606363268322200777056263430944462890338882960064143243123387109420191359514044474449566293878363116373797998298753815088210377089090971955831020732224789165101301154105179105680512317639871081092488288455878943948920349237147323127478310328985282289696016849027549587941468421971407387735821485380434881336889246570410121575710921897415808412803439344381865780721932404434185842503748135253276599297200000207605106812643205406472243785337920948279971105489069166098485953173118701063909504961440569825162157344878810136403066294338217309313671931049252161988801936375317854321833279155060899580047030981879610206797916179049354687691992573094162007801908664405345833686575589253366703160087658691073086355526405872447306547926098965981769276197282731038448412009825750683943282633858766393159138434152239446460889452871950584126999303158394792445318176477211392233316440321747053220498361981278202016806777191938370060147293277290482994982319917814949204479513866866500105975867095060322947908690328694006715916560813906362983117123096962439028281384047115526215836498159751470787332657745787903400329355028577407254881831886753536103231651469165858914234201797568107599151718806366806284527045132512313972790765143208255501646691886786035647612585081209068645822940227625199957989720144466759223043056068917184177281996870556815653434878821117466779914298619337619051493956942048004699482565087675813142724566473808271426902169727458964050596371719282027083940945346484302297523097452393746791532679537163565812572165016334855812156968938007095093625427169540528295236411878051209046812384649189661695121639082589016719941368057711601535691179502806820461648549628418864824342152956031741465253079309393707138422937802439801948779302685035233996552989985233328704319634635448740550741586642296306198469596795977699119152716935486771636143862715203870399870870386817220687202086562333915495827416248663907244371315661076525276325109962622376227014449137462696258957677993229657144764927375795727290850520207348448945215079729166040070036544962519347686117014592375584972270199047628719004810209174989369847988574719776342305347234810030761879472662004120976671990903496976701361727726988136988757895517504434384073608668773189000930501848609732596727269733211655871366177469657015030620907377924985615119275427878224228571451728331285388018352542160319186945227892660252400670277547539515023798436317437422641232032217294774149620936699183665453114942114666446256803610866364187900479262949477265542811789786530136871634176062311077026135715997162630004607051650615533728657699240677204822742660594883254918053969364614276989897769332382362113041329992691157911496133113595973551016526509361623258325184973543643686561361162124190971062976010957371365722758293516423432777123794234842101128740148994096724854014876600352702933317372903506666573025410635542025477221976083491682487733217052258587985627246367830518500517899272842570280784274595509810269167233413155670053791136180834019371842469500397675304820898242329771657414846354069404899399870557986527594417676142360436649923286736389884419794769969790800730113252121164541149351520570231727807617678721012002649677857882331015093763822244494492840957498397599923605640959567381114121010859202120602124838029749585881449631709547199554178555254656610532296289438208207614328156513562415441098770418449973670729776797767882119645521952263632360149439960892296321792351815913938164665137636285710247858567182680973080357055208270018915551711114605481800705778226542322473825984847312389847134389545112968353402125646675906264728943708982571179243331947220430303513272164438969945148770982636457682875315803308234919057143867745504555884591989066720159786994768629317644002714267412139013126220439260039001532006111649722838073926187885185025419748375455366605263971667410066008077070118096646645957622748194587277921010875896851553318570667319196651265216800128021125317100458982923232169612375699006425246590295003725856045414423631429054124649039899476368972817464174556273510116912879754504156855433234231206951595455234448711321329807165449229267942760518460550037725823779622731358030700871881956173028754470105517676971455841285963970921558250523154598360506907720682795791034160548953970623982417594719895640249020213993001371710398857502009452629407832859465905006887145309896450241710601458969278279430173942207186422329023428489738385090803800829272609484689685013659219837231777713021853616459317330752026319617706408378373773512452124506967317050864602689250677094399190115802518003451023162713436492712507893343829725182236944356968515208729563190963930359229678798531832159799418669372158217613320409904098305309457131618717405877870394229194156324602419253366303349414855185308808636165864782137258431665815176675479160344938868792010746801920050893145680728588419017098327140337808408641333812921552907012040898713981151996195757585649496730953195550650191392236510739734368565828612307897011913108404754866419075594279149971721020711411314208664876650483660193324526255559681403313821432114099915498652402994301529329626996273735492742547425186108370748716116677712214201371850154156460798112041284538591828683469435051320763827068804243149401156522974671294698976959692512862629706900128291203763430736566075642942889111053512610457931506237482372518996241529004053128797145427352976887280389375746602472318279265090521252087405864474259427908500094707316995174559168119690896286467877633440892593597388259383370432861338348438306260985555267741877765849439741739107070494557562741007486046080668135055564137493901648747474924062560310796501376442959160763927729628229544748667989374145948191630965949035592091724172835259267995372780815365790814715597214990325865100176348094018942190347342723255842727685284984926477545569601575671374907717215091031963062284235739687331615434800784244434342402547117108455072860744983986972392879314039567866438389749610235586457429270737571955443002296679561063507215524478650123800954802396059266251568145525354075886169116539028500824367999165237343510839469776053267810759481275123790697316727640129649709964750049020565103501052879595538747025849612152910022574558495118876803943426949670756046829232325761939780833085416410015323531317180998586878238736784502634517770825099242021460572480268335557882818631280767951241982672430532103775071414197878007039232003031124347869192573886305372204017275146232613442715354900159084228924840661328722070012010339896546149642673368874759953092080577994684632363396821090663335951596984314402413305945254477114168204854537295132643066701727828824499642148045513354246453616894324847427833401932450575666062332441917031220756909866745647823843813071106320928486368501457304656574607960745659061037303619617215839583364771944399001338263403543892037896235691141468560506222237446851740937309757425340273810464747129725189958046660427810842799203235224314588576452635227287180832757180805528559681364006483750734849200607293083168751055663644918893090473358683473622259910325454546764664449446077673502608664576978909175348973014929047615645851217035354577458415544755065961493236941223373155919053299790601844542680420911157424148794205409694036844932920666704271039901867610742931381778993766570539684539630168559257706523539736211339347033232560130814792333933581392726364630109826952200168344039292872150943923347135233726648511840797500516848786323106667292808395737371504117315577896471271448914490904902322499994973321398983600282608774344121720058304742173902435644607067943174621532389786864403431457426287661449731616992199389423937011317553015776788781047909415853513608337741760230897830352746311011902363027800104844759421521174681182408433650009077569987002848091650771728341438029925523040511844843898791718669700429491194506015044939743792929084747214859468411546679365777506111365824641490400163527464208455276556994715214189810064242478252388285897934991855527924906183280500457573042879820029643603705277354913910671990506215729147773386566312957899608862751410746149094627102996364348031563442693275226496883361617550078678571004194449405404270570177251989532904207512744717298094680860699499159705712232638391924320717939784829864442752069712952539340417371817075214175831323645608444602929606434810461686316676015778954706450804927394817192348323395782330167076252199375221991746818429502962252765154090939908571181466555996049379222403009071703077405703636416992095509756856712271317657238018256667971370739226865143111800879629697223504921903781580932531173593371803316288272241387982689791777448424537333102377188240819509196952415488167624124814475990481599508412140914133385181362450924556166715464784681841042502122949252729116227029849148999031167621849056834862386755771346300645554689718614918733573138460343580750512831980714636498700152929300139662786579326102103732524092664062088305563491770922216729550956047846075125231839194291163020482454841319894100425173446212650744460842005087908559978175278770199101254195314651632761228395276421346068259935210612130917101066969955007892141896051698886150359482728768047022057522017065192212388867612889427750069652478950780777253753632350265159010168527557176447534135354117143754101451319823422992191898634417039515384312644846675245954255676039635226918354587860691333563502571012917389511227741255261446176436228174178364188343467256933380126674050985304065988181565191737296014903314194116165609468046914902158082527664400569035605203358733735133181613332932865732908348391466209130192649806002599102765349052243809115261392643014822701539698187696875131427244584453374365408793724592299035961339407539072568555133728421453439856397743373308260181510507978617857795834786088671739538788617526125253349707175378329870228547203810258779846192053706384105975577006426762863755502521071174098860981570102255366585323217919021381675032080972945253910629421918513773976675645619286290885149450132418360959065264476894975640511237530127189100116103758727102780742633460537952321517991021351384051383847641040478164391642574108377288174847010213211091900080811733638768915663344524081863390703729750702715415228362297568364940928687169497902264130929861724476316052054758592934822200384465730735593502003640782890605115724229902408239033041920582842297782314468294634377280617882080436223607083121681268746459337371182148349465715500959507403127853917451569817664534342167109947217864072824044916085900319134201937848013394853219532719553750464720238460678060960557968633846869347856261409511624789941496848448398155453696590985956118245326860514320691758536994118345982941888252788481237435902637386307213770210232820093809791615900914057334768756983175820756792327747166749594245341758987392204545453812997674738536299120091557414547784328187967492755924445412890274001603679385687009492415155581115579885229468612945903101871956165486160738159180949288537375829417779918687403666114566554333933117896533188836680696152164810427125615787358756672528765318383076588345748621788315092956012534049436495952192504920979124235861249304342570931225375021348809774276463462341679865323371451549546417777233573161657894294439661186348050945771253227118606836675705152818899904960332148827127799343538060278564495879500808305450279357715582800158181114151523441630618107401969703830545522008525872606193688312787868247984491888935737749364573029148908338169402668595518514152690064240992216269772375638799753567797034523112369060437016201178424842966560240012682711036443574726413562638758905334129747121070714971577700067829431661391058589082324999135362282067366955228896633498395139668164451033982312153727845828678167775014533404693915118023150160290516900153505809440869183163390092794392256957651026863363855844579862531210308201413358888324446838563262745626324722436252288684250118835586785087973916728885986956372878052764617931822874425230013180865815236280732013545060344904331888052801649794701503746949324981170483874804441258889754869021479137085558136965386231910127637622290833276561386357721695719577277518127758483982907836658811877197955734381232046832539762257134571751261715696379401155970406130126689836564234426504597876029869431441979856019155801408868733451277592567056741820058122372748455083321543575148767983417514125740557671663914092842288643725745239285252869264484438853846109840455869903359338183729108196796960431391539172232452091835879350454798408536563861695287717302402802707990931028712826103324754084556440420913353092676845912116987372059265794567711058176284344387626497163308752221505492412245161069398973123180596961036538155173231703976153264565592154945101136078046789968344999563478485129952313379473167717776854492667298494557655368112248429869586050799306859437783131132730170570459265873405085595966261967635647976369597825569597893896011859420383069217060682571466487197385286671235809687485373980528785789978831922034395511984362711945678250182264828825621380212331643082882099655624135245998066893647261204417943007730687682061310901400314652882524083892305693235516698249698267982246370229836520955423321113839259542141127597222609883765455433288580120921845543471071424758823933185479758564764380338979094978258563271116015617287174331082335342217923330797095671128920292584674977503112207679589690581532880782090446433496189121813309958134258651324237664169619623612162118895577136913707623481839948335427086857828978547963297306830715849811961550121848481985320738442755472175276122760854304412225839900302629723149127266913590322765377933319730263501333295670339572744154172798262453704133303428442517375803276943926681221686197797177173258068088930971236214982917334047304113158774036108210720577120540562232646412773522292887800268776800794097563304980000950937301912790001480313564300902913300233494708662623985534011972151946105738101267943969805425620296374487676837935358745261185212505263939810332014239435823893349271064867951628153615729108713834062558601584127717103614519663572601029024155084899427323579998162797865702806731194040941382663586843694673685067680654140909563995230442880213016721884080034181093138199665850980500938479274227800344415518966046187184680184409484376724185524781694656323149672236129110323064699789355223453734767882272685781527183372284605293187042800238856851771463484049946193619003858649066642489058688615472708787806514643571054448975284681596147028949881728798903931328670517100151261145125411980380897796548977934560277327269476101144286939753354411477923161170281198681986889063451892941363677361502432008708473243274070375538526638483848776760025698246631778155704301632848746794859213601838669748267580321035007571943165096024012004463995063406440657136701446895028853717358460116280924186204967385729964417927596606487858205244133041856174287107623690705307732494303510772737674593008506896591783402237593872053018570128786300043089385167930396696311705616071401762343271138368868237099102646159408963047864197158592098954008087175276244125076544071169437914828720300139212582132412259940244563758735624134803290721477252411761972192757311049468772769163841303293915298861977165150343475165751728206330261282047422972167919125480075805419280871098374849394510580614295665068221685934297534999490662202375474078072611559107056557947181007977413013972430046100684913505965086738823168851112578925800058472460674117002495395477873629046855767352991188118386422932515481598972685381858886930138304376181934734522663075038283174334221492931335660792574057499826683316164654536426838224324998634691267401187256594532086184513954967834131081296931844211999761655205835545772375572378329099309908525307940176156916525323147532033622283856426163494812457484468328953809550599238353296564898679279450995865667025545251818833357897233119183860296087511207521938278542976089675367121426731521446656243600396409679674672437030075489809165977914391939914132133272857542933362504797427888435922299807702825953036203975393476238871768841334292025644312374422923736858787361050748119338197368609160199628242969986008916358632884408098317387418287460756329426422927586208104796927651766151327758404182975041913350965659840886065895081425997571213478518281786930969679995016703528883833081857947542718495760962499262870142070650156987134959558553949238023146561255094397935579569320081848420139652998969971048832504449397622835670150460576815144913244469481138218733127611526416912571300113781913533258382927884951965753651098706133228367302585292497297671505251658104966343631136244792344851976348086995072610395031297669572233212279019861240143360518942089537033354226399108755701379408757430700831582355949142022698031588876388168015576112718144000787190169128870392033583342659473636338333839438538104821402799890154377081650351063981832771591485871917508215454099116483327962277365829304640322040073983923667095959878734670960577161875774068532385657357901445474093650031893276346382063232079491166553299158712417966205520697711529981913151680721489376533807438167654892580678076400524421025520174641530909637524270147511203439621334619370345049264637992309935975361433308521868506946945527946768919043100286315336354449934597540661648627782183681926764315950861104455853922784333832167478036347048022697525038981317914984406021641458301205879030993225574748835073387350501913127463365931928556285318033774280715693529453486969134090825357551298160872269034310689239560920348131493116682353161506107703940828911417464585960865369926792935803205130304823372832865143264002541283579007820884961916830590336464567280270819904873675846158933211443509799048494398899870967991837240891692568311044729659849426799403583612251863490603371160649159389818589327950912581951360859406266323112118290613835067178620473377913773884301930020726693212728150264257827768557664698806227856133449883181696196063375906709417798007264988338540670340640892999549653182864192111646929033158265760333044838940160338425511032422547448673324072854471076094548064404294484568051321400582781356418791740746088567205579959631520845834567073971443722369016761676038738344959252673211172151423953045715671144315679059726210382376496317738063928563120555322684609178539621011110694992382534070279645571121110819627301095082598443727084054064985079209275565863462329067916630798532707930833564943346426260441779158992313351316047040160445742539660909297022263604400802037306307096953310710705857092269604959948449555879450461081288108372018024535681733984170435399870842823808328127196882605822000772885899175796960249434236776090567717970554671919816505236739308289265135218660225239062938217586104230140899983020902014468750261907463101857093819983365152471957480020955336676538705619617683730536033189878652734247539908442666982959410406231628647892507496842525424489194193670975296299348871912217619056024430589644542715481954124402147022035276746725507895680843025623799464127755379169923410929744886778955427134192301058238500593229589904666403339389452802902737203176854773420621387106860684807263454966670194134514296363493314927951081157167866042996133749148195379718780935690798966276190776270699302019612502327782553922722591889446608192845314136293699254929977101074095974876409096480607548485998867086230080128415074542062534062743417492948669387594614199266038432256986558264800785065065927192772613170780064479747727354528417467243176814412112116007331756326254249844577704842235719801194401185589121850389120903885243484783938840739353812649293777265365153147363727840554114795028517730035994326434173559467638542068701993562554948454877213734428157616131361618807443154202042407958257656368166338891468684169320244213172800621407665736219817813363955540842548199661305832727022538843705980237264731392352294349390797072914345790032466582203911700324458968099464486465360480368809007854778737188804106371024805042815698980921131816748142155330859753710537684736867605766921712670282349564706835777517526132240979679272418591601997321179204526641384362681864081946055719271961577597534790542997704587960342019027388041098797732537774581041046878728162771925268988485000894258548839780802416113935686012614786003967836402070275164141356626077462704244594055927038860383498895475664314067442444522820071685217002937446466845058563305727268306792778484501638361094010160254023965363430884827310423530150962404608013599664277041843643538635655534272617261455539569900234427391488871521374363862553642007488143916991146369297597487615787113431228524650397038251668165570008193017370289842709223889513255946555133044067730330274791624610920266667404746203787241728550293462697271547362322508140790205186317450073394064771337532013471679452850721935033746569387265033769106877038736107836149064583268947769445865613499765720273321161347903533864719933949712343057916476419973708178880050352879860474200726299688369702336360613062000934370270127519379742270202113032679627003472835926412804809618747683408948944892326596964949759190397241596435227222153089628478953129286796032387520567602312466761677049059876881482087820737078520834935930947317689477046842154451111902099620171122827299634049097985163263125185938819728472680285948882817192488033939049120618475348296282358682296935516847092875474614469329016812108641627360079728992989336458390959363562789609420557156344516218715655983576933530341533935591814706082476442587820744641059530459845140575951461935434813506757157076874056115836446681765495720286423969682427022618916967652558574174546031755935248311448540991296895407130985483854195675165424752915005166414770971403733428543947285406594974590730114250085481188515803176318641110097478836677283423448672203375285859568127138645118144942557869614365162039384910701462244079347717937706828949202967570645739213338354089395439580527748368083545670139844167552037203267307685624026989770394508863560049784093051146603298461362312761096191111339002994290682652751487741196006288611480771305393576411107936636090029086989043702999997533869686480453027443802673885355632530271838554154276546429113362260076965931214377184571152876251724766721914617972798900933149895908043817783996078504190400136709354424717912483507358531228226795412078323860598686320901687009847081369903125871583648339175094993563747826593852634129591833325402785041036405965222932640660013248476237864889277432003212056183958124732698977933016947591714679391658141616930088396315894397641529436578950418304194245939561981159284649478930263939086761690239570457445289056807621252068765185749359916728864942149314620652720700091099867761202679632561839122863562390362515268336705496323643823765074654320953946536970061442685153659348184074552363360044122784467962813316197262939046755879467921566843184994195231812781793959586464302688163224809992355890723177203692799028078772496670675417339135735664874889414430288873734788396594740177310386025955808824737807136353643245013226658623259351181087014255671316327398290365759209125160439782129173240033639353171368499620833645390061777616756873833568617490180674060395156911308787161307647408127524850937262037766355027135358298665102347848032462818879330033993238810369409068834119767450696001566346007515118013189059241768843808985188399723692344411055250941735158561446742083156675967437956401326576348516983846842239668948371318763667674072095822168057910605290406389925107653674382456098221927189916245246203787421661236787312176909199442029999294224477917115701821324258119642094762768302393133365530619569977002291879786818704928062488240640042517868297428996080054062669156803774324935994505287698782315667045202140138272961123554841430575591986593856043560428159812130978597257330334874975864813038773722637810922614803526832161218386378632828498948417412125911361625217293811501766692154677547317408421268401532148851749937261812642444752911482368874346647161028472279393639645221903256443125230301661783808506171291937137610491356092026842564454012830127414838813379194306830107966131214646804860054004582446080234294693678024763872745189223418663023581259987977637031325699619272423384064139429435752735846243006056847845205514016600287515741465086788489224182243871420769442071007266788588680651680353060063838487531891927068993952959142937925905247891590523506085148695708777258400174687969787882463462081395846971989386117951716381484855209644322287191869537002348247061461288886486947431983117729066459495494842020082922898544317564742151326697884974445127348738498885088597235568987429338624022797737679146094058377524600770293977659625714879613969910716588478252782781404730722168771509570570782702515047772912923236860585538676817336583430947278934919098285220593218606767244781528075093576185610220439029042930583016546500406458046412173234706701919283165509963859099656706235534041964436591027383547535877301347608762995481013216730184588384877279468436731339937918422689658731987403480537790077562461718899431840491709058707260121452085273021942140232220394854622650524701850807499691558290666493996378841969547212322294000608451503376557904760949229519182787670328895987665240142901640696658004293823031246512521474568703752010593740729345664542634288032464923054327700535829037087800855021056425218255932055445625564479543762810485127264405116359175582379579315538799253711592412853436281578965888579752878773932065477167035987936657297272918912575138528448657205160018052366731392989728079375505562711623461961439503851019269413290955172213077954305702123459470505112466323332029577051166326664379800288600817958289442156753724484197978604895412568508467555945324315869224343667430370614773083640149713912082227181793593618944490104097649855545527592121105771100385895182896531721058745393516158399795379260540147136839426225613157344867271719535564259685770940032819594999782939734984464362294543716274966989998014059292747695812080553125290361001107582525508461739452989057481610795521892911284404277813008252801733956079957996677004131581826898248555271581886378002027697809311044197270402192058795758629569358065093078166440042476344901613992647339097993080217291500810204173208094166385297672860373493522792970551619847399529208377353813252317489170681140473839296728168539275390499427323342559861675137743158115099516027256237395118206946246765455416537273878717505900317087965657187664314860827829998278467137628578039044952093414972653893005779411370914909109080055039324941986650075912481857591607455675714681035112531094154369593591788837388449334726707538346018472132507148111897415808071727899976726169659590764684359897517707331435424624963876248264718072506929274290403326235735450063486181804227411023881022733598558047224166880685974542313070017030284310319432818212298205380103204103665399710127802430752955221664073782673891972251839074963136244382751705374336712519911488170817689099579600032100897048626094175729575318950411236823622001249070481172496024618341982351103719109580918179206055096762792111541847014457053541619763460588971660428817992581854763772605079321342531451302392641102936601975290340031504557057475448572680133541425065376576110014989768631686213999144560278796380964096544301387996510281899708370649999361526863496979109814450650232116005780203820145570420565107618489096872432439044524815701749440507136487031571695085817527750023329305285671451965674243808726953467491860050947507380018270870598816869773666480956113557545503113287534533802569335073521432864486828295959116887752195340854629500534962759483906213265614319482485102069620913540586704188892572616026777887030273338280092840049353405700500433552388580384945335891200913000654397266943428172000847994046628022695381519246266649303601204293729106912626970805212173734752989252696156470133315247395041484354511751877756275575815617490127836557349045480146874392940583619072545170520567004981682197802014885773134504528095197789682966717085338560004337952828978308319137132163859374351210764095579365785890111967528519623944002763045704497187620099733934638051479300039779644109139469905127597030198212583163898946254528336270365380569797759896766568840903103673005115418322028688254866377287950266091740997033452510231575940812158970800464762659767419692326224602609037547823344847159721735109862975965094072876034354562075025056599672191137780878350377014276864417829554940364574650719085280213288781186698163362217332300866304334893781583979898058121556168629885963860139938968857053189927874773850390307109928660051403099181138968989676988544110040839158055196643771424832504881465678007417719885806075503465466887098899024269322626756387501785458148053645589961056728405438658719256793993608207528854915651625004692717788387468741515390413381295007825946773441132045646277526726478686920334948717466484536077656426315087338551760085514863013534525753086256811834316771376542457023256061225469615155937957758264771495885892726426868671382129977668064532593305585177155269036007254805715142952863740769143484739819723868287892454304821233276726789996060771807669388991012853607179642196773559220596486105295038996841438405600337856380584039683885794762806682716565947052065426258796700072255245440032826170298521478196944651992726355833514326112810255658552024619431711535498664819132130078692302681502371167131680561484701208702706915327595081038712718092746198045946581481952433748788346655885975751567576852185589773100963127369918292396071667609127078007972113471833305616390624617918207464048201325970615206193615752172039353926432066701584333818994067155386280216319347292259961397257261983914628163559200719665537953477590228581265087847691458968172305276456035049801410607358503312717704048450423939621302843906224945313416255479878103559082496164659554239229743929271447437901963210125550569287243055607223156903901784067027385736691398025003941957677552317850852321094053977400746954259415221902224313654248522296828104005035153634839697582835123887444452861586116611858263115677252827608695410726123099441925603289926169112697517186089467225747829284271049851170841995858938413770591948548506957041756250849517499832707328112895794815079957625992471558508067235723239439716262742382431319939928903723616002417808178684976002184097100508161163239635705330941378994466595118840457027391964885639859551378146731977624117103307968480093340324034119611726896923677343622507362471287744455040587843915063194664056023068643603877552251419271013368341365335003518384957801285828434587067765278158934613678511820122318048199430620894173553224555727252223888443561168019248371226813028136430496358986808095160828430921641794372885048936163618926499806203490471071464914902941590052290429029886407312646103633031325715577762262849335303119531920261540573387522309678201626923373559190897834194940072911732305824983217116916997047084539013112273768815759218268300745706593490839982461130583818916859487848391205648474436296138190458007326785919504436433953906783768776556190370844859027808208441733218345514891250504959353432860515992677088588165498107830983827574226780824891290430195342950638243797446694155010055203397384587584327917363288551700618787633840091354205238700005375704056320930935075261112049467557010366051577515993267531955844988872667376414054785478781674663929130782404261206394473126860913922869836856965527822868867676359511223296364050547669974859262835629467196588744448781578891232362340269397631276411671164088382288061945717558348031243596527863574848203692245951148033575252247469309308814177568553825398656253056289003803533752946195383092844258374067815218953924376419884744137085568385121471741398655481838005881792718685930734570888881349466284826327836972446123984071114142430256765190297621888735660762573143374662370964339699992392536070229283849984585626195503254874063405024587520154317057162754186232496909207691162313479604275690731938764080555963071805162422973509903750686306512637111474297294070468512535837276874833458741878336808783700661301490742799667078517630659821228721803372188548829290008546889935967824527633861025086136632530445589276767583723736858290679664646715125945825345538602732682356707518191428359327593362748311185033020627101742574938976935543303878382139701713186684718316882244526590530195238246189923108921614940122360334166179170546087697817094794500613726264607311334152600373639729457850337908132003310743348062906049354587327929484739073428580152367567049644945526962590866062662801645116347767573070766136599515638300360105544946644313603778910250093267321500433107586794403039507572986991462339917890110749051093361640001387210623425688292800246254964477317352144763976857513450208319121012434471785913850159115030118304651586503318921801316016974261805853061338562890176156497228069072745385112660316365861034429062054325785734452749298714798553016401896366488232978108516094858778497339133795299873968666014217321937312900672167762480535251198331195176321239056661887948369261370391112857250399822200996237013750703150173520394492122327870558295920302831063924441798808873387518602950935378771291935295649161810028949468812576110804884858711432539416680258079965724458305358593899565777189558857350843513683079178469637055363044016891774137562151180622692539849307965465076765728552710051943689292250984931516054132306895456385299601489955940715714158493756652995410225153547451854625089743127711631213978075488351858858990182863561072992160183935275960894187133783747990517438373125393096609781355830159736347245369329178175304050124441815465033074323667206756091023423271113151763602258733685733723401040354089845017111288955760870428540492216045052305219602427254563712164516645289075241978769242518315523866361573363505631874252974581455841926089343574173135426047189806273201343036674877000438589849064448022285878007912280194749089339462027898190320077552666593739970658636693537234016127122463970791806976589501647829797049589670680510400810676409911678270988313172661868958658940391062300313052095570511020120796301882623427857680986829414879729323658729324529616712782779766559020923042199550915914273482617911795952905946799840208652550307599000148879372047179267980524324752294832883046075839419429381541589598644914127942699142096420726381649587037664378973921862659218396407210408891663630630131027732980239736900307977554328135863887575958612506225124684767033968525844543810300574970718720744556193689323919738999363345671442595339551093930831185922037442160670920769894489431984629938707723508449472266754855224404480087766488455747860191254421579848747502145434318207683716976863835356707470819082771077858274477292292946583797051909169196827749119085522569400008735400308048141642999181895615085902036549819668434084098154996556811687943663497344720023604775923761434908411005359208859897879043557695735928317558983099324938514893471563950753503116766808368981359040291561490375479667704536196206850987091155643205001741534638017948642882500751515940305365312668935462145296685507976700588040034560405043181283126146189121428228265352720260909404936795717357723737346895659430561145070796644954827587562250060546688749497913722227845059945865062509352821867326341139410638967396570339991056185148615371942483642557336637483261219224338599163328624886125573118350979199195002402476129534846473766225505919147040605042865588814855629493479436078212681258670881732467744260436131754690911344412665385186710944504075841700482116553206479137374364298663215727646946094839628367672018598255356760027081996173702041026193838430726033837322224740192888474186414314276994643458211605144887313451371761796391642904130260905227739578827852218335910339006111473960240117012167487695668930823195581827643759885040466832849513350827299093539816739529176247559227328457173949154758090881293479513375628075642089819720995033455231134781259366108542308039449709902638353423816329112754467870951044132629749822799741493762692552180810065253372916371331092352577058720689183795406302274345065404952773106073198071632925096927466538964194635104114279378279481554030744160552449878751173317186526207642481095903504847111807698191561059212127415610175449765601343237650282848087836345757996372177772354324988231104057356128634829396674521848001422980945458713691841261521906037994278717523911235170296328078722067052563256816294317370692914792622592653832253684814417832267796308428387232472085493155522212245447964526309793563272917225155698745178400834420809783265520540975118805923646159474393454204075765452873913696924930811474278085856668983629680609874041869271615390315463256029172335376694939170795812937338178931412595473500111497716032911538920387115939533202286605405520422663042409917276489624733684884629163502917735531835822675045035663457660978653230031122122237180120076477015326361453987592493324546641784753620561433366512503741259750319458928236113783408644319841747170031377247047600678999767471870072142064267406753883904922686258790356440592342198628107223925699320255511452256528659339558552795012745986364332700607319841612657098887053301311254679364846010530981320806263792897987468934526297662218649562132862446550091900501381454908464168780427064534557682821055289510425836021362684458016074394426585396748703699253463237847430774002143515861348634486149893503569371158463840187068953312260611726787755599520269198412474456391479695505595402878740109269460356960325003578193356630697260249226125765651110883858204591590229138515816101164656110058470182040775125496037521867656808644641271673552331717735684769932903315293828138127416672755915038440560116668410511472511983756371940413843530396209043273779219088206516560132685172257304567094483727209299548645213981309378523220922754316229769981024885146196880897092292231472087235785106547102262441264011875752784538698620888545496427273213837271648245521365889864134832236978113604983315885804063354783067129033638386868737574849078036344280164524771665372921557355989297639437406051893601274444838937145895741719371352605341595672837016982801322862601595270950520647611961706101110452305091878555668055177595872826126514538692585359951601737279643916107048057871840690404505290147097570127503581621324707280213041764397525875579320812687483946102606335699868113836416344728143996247748196584769308637925913532545385361020254193313105025608246922963038719376872933030977082060693144908438855697764534169144434921727625103264883967718548362616593869545656142010411588559742559526083058596486986816833616670003491251942059858703931583747997915342209403019760899238625537596041731926706544011594056777755649442951021508115024516258685706232166332903454343644088610125968140561071208301269427758425634941144171213092418322860600261315522785066568664492618420660770626143844470031804565180121404779502817543044411085190016388523298775179009992468455039685726097421321723648290969419827842823719204618368383472744686415199973671919272615071924640155653207319055796638663518628144246451684445457633724814118384733059201779148327940696294519941807706393164528810253205715669000762855622840513246810737604234250523774704283033666793329462730894344314460360801447417979350457610710774130863642095520811703001619319083667570752647103449344831864847652853913914935798615031184527609908225280422851621882984659794012361293762955518173662324485827530500680430577250760831883302003124147582136096154392921260620153706131281952020973961933801456879756618797699265828233733524024003370340572094089789414673185893867234501614289406957752465652406510954539637165192245558067525368642026401259572761007007672276451074479118432838820608468566463419480570840719787789568196736614041569363135491301742334061668579654521737084313711963813236166510911711635847017461588169970857125168013692992264594705174826100448913836114852344278925981143518571194194432447561164218894415197745165427867568314193156603289140278526124160226651943250644572544780488557850436816705898353755700977457347164728828432266092151382171609433365010444128847817538243246879485081564673849489517368883545008055893385668534981311649005384789887125574205916838923944755974885070592746345760346538061513086870164803189541543941012050004435856954729461087335683564129284973769628045367739695263270416286687353795341922784846000309568252650667078717239623638147508507817844618094200232162023523502235444723969860701461414718816771800126727445449176556154112601828626772453542897441724917670348542663084946892380720812745272901459914940985904846988602182018196757612326000454969771311204156454399831754600388290271119056456871904807579946059982026967448171107332759090997465040396027745334898640838822814894309576284388133175583479680438168551012761062409117794128107028445349509208185050383867980156352613748888233002223069959283236085985177195531193204777559023735768127481585514981805959903524990667892889387871271134432930084220618596140613792327079415690544642887352589463524926730395091270472815364313606880636899625847301081700663974806459299299413915651749504131848155805279581002873266629724892991215359838732947872401913700236050306523149169043199697451053732999621705742228533701395036372439173742189218835621183394616492330201965329049115818551070946427491796175932305968771458883484320972800030710263616318219082787533068339046577088474836808662201867347001029077842050073174699292183917191475068077547681523765363114655444473453596881345929455346016236571599970645433768776281147243669929011512939608202449796646077972474743135704871497584583266783873623751892382280460583356494872549033705736565621645938452380668812717260522662882856042808180591416517004796008100960671726858804584713219055556417724373067686230204041544432383403068308968916200193652627457963833485689812015890774864644675075934918409801049548308568684261270264877400678329877262248653569227683403090102333446449049053192707022827997324782405128491069336185129165058966454282392469996722681624624449770879149175159542091139972433454897950089063564469882661941952198262152451592320946517515238897818789132204240322477268929216179239552909293099396013526971722257979143275665642176026443516363612219054642602874921711072318004882108167012048926771444709319734321344066524990336029412847102547640346321522314163543073330130352959716878221665225547361467982267922452901525790482347021098854794834658965591576539579578245728469587238814937656733203469809090430655823296288438418914630381589213155621457977700843984881661473840220265134250814145104171949320170804350082066149331455219784752551343761698545253272660208287412007445267558712792086629776066422118700863091792577041029957085275371107858852808810806359652082218202439898086994119555629862946781888696561546371665123638374394037513906074033380036140933954425860192597016465790918226844954758760554522029897824364077982133054054208654192250557553445996659099534634118119460069350103233371821251562363726712952708576255077476267484391787625477322479091932863804532259354054856494005585482397702494748344466517933983725239090794547155482737188212351654513159383116906746893492397529305730311877189802399826800546494941304184508410468822106935666405079156711895809020446436752451526972853590315614022926028301045169788816994491175467753205001686209592623230825510512747033526462672652220335816217072712680442691219450483704969200107578395584736144498043924851690141786770328181678391685408546606409497519980634521310787895485269961369813629216233629409418097868509880972801163307086416244703269387106755046200373605401964375303472192712213421663031891663351266868890749949124014102144608254137837812187471969808217036843971869614410871187016031624809224211591847765083553951707079890054687658336541537789727407650158322910826166433447744604508251264971475051942786499023404276758011159467158601112022357771135900172498041870640819270992022161396192547820467255310287934661208829729790077561996346557642168931269519654590478363305139723739884315296085700359797378529180915430311673604769817930630383127773359558985979675083446738302402404660493376682992231067176149349612826342883495005347214636883948414224145107899888777252393147056874690795712391860708389820681354313421103401272422066509463042845774818398782738658045892486626947038051157186919584683079505872444488157275669967221134092934153893457743433102109133890993106911110357425986410261539990898798671598767092439837553355918880467297459425423078920717903145750263946616388942821609347695381339710499910424269604233615676212733156273979713792346894720273848646527787010426394979658009860061182955063812453379484482023430434186836060017477510268435848910861060574775924626535707908352215078218366210612121496568201335733292406603657054599869303209559369608395364121351836537989880958813348945268688054327059034791943002247076721294028965143220177704414332437553996328489022460894801221519001446806776597452760768034314726441285962039000386177702673607121903781751063748397282513055218935287314788024346439138935617283602422492681269636435846455827307205311977757912351821831728543216292819465272276055112381328854187339150354242436845412123224835594915757988183312735660884496278632022515684825276840737322459958405497107216315684301105639558796912459713553547337320839663931678222498412650137695695661526404791396124251138605791795859143405432413627269382743601443732290312788501448348284016691100825821816771935053790096152956528732682307264741163469348897810712582157548657811690374158051979002524789831835141341539550914757230613845656474471714118630153110032929465090253716865497301106843595296603592914557214212488793202228985843000269810708939534359350931729077451948726239901409515317468126750216188507832790624281511648531013993094341758134154827089706511800377908717110073385570926633699409311536106525405723104653049144770967257575514574901496167242772786299728620438272018576151867949901058619467482594653320230679613711988757564680421848457683832310602500916846369830567862066828107570063577149814887300338025190372424381581320875088606245724606215897918769041118895823143079989399833615874359564758851101049056440089759775919126951165531734936522290705835033677262187155413035030864725496831349383244206893404713761882391904967212414366507586024906578865223760208139823268583250838372435984216257668717442888624310616561714886419017812058511121034210189256739685395180244385810290513931005309287349063901542301406100460977120860337676699398541050696198244991267482197090036979875465407634340740023862777677179813458807447490747005620014560438283933359479497571632174031793829803138318798566415236069066778093984169193904171689583700661023457562207565659251285494572025515291705471530720975525685516346979425377112798166590836682863169000563453178329148511637746702143229076296986625262532900309996949993806814180359968712656687077048002122226050500765204188055418541839739123201558650169572457664819355198341651343501153989705904482550706143147713992729275560169995350577854729776995742564093279208946805269443644647809555639081426451076866245451810879984833837766041058135243839158496421235408165558211474845635630116113651450261670079738759781726788285294896911880598354803682329489154781014408152458605999742547379396780391432208736013955491414159513323322956026182582325485427939336834462716144640029728438956376509675178916234003351888888461285982657813530607592947597112802539896051996988457362508873661390968813562868615856834267077234980562784277499214715297025175444316167852179347083679018467039369898320570007314130362575897471367363340061766132019239957608479592106867113494320225354998546389848355822977596151905897167421298340693720152543438925769444581053926620118741871785769693275197606118148181457730493955590401560241966213102213442027430990037588315416680580185390688717133366955748262573827806179007242630625333626674076882226430156726273332363653606106626304017200304764590325612669413383336705826887285298723633240930241073502166818853846236519754689053026338584300450658783357924893319804193517154109965911209981824143124353441682639434828092621032201498568975626980971835627880570904813332062994961436995127199154629149435707691361715980215917212371952051306532780911470261462682074802887779195843160937747860227110687123230799282168160863686956402007003548211065436966481052144272397832554633038960604363534233418777482322852803488472699252873965691431233131902932281739313546776778272631387235698809186844566514919557300321578461562575765122026021158935652051594199456692612692636459054986178762976707147973592053461235849025183733818106975988155493056392627896714798932034459940490856675069313710125222657276756713839660198815800919612809771379995351328054590237409658101757733120104792298334520225483349924735199162437372579617895037881846824721013944990399728926062710972777818463566803401056248720277466267133279165037151187694238823069753032932094498680248188695814771618564804387235826196274555602839602753249112986435192576529171160001255974674716294546977415828571431186801898830928645895154232440204425432938280969260559406886387866767064311898892799394308444733536303210433304177353554588072809415037735889771477094295911115253944856113092525465904240649079547379809187215427762889138057320078877983524963693830050239599812068824030501527405044485665557411100328776734802405273234572799339914234618027260123705904912497863016759240445213660808396495508686967571995969640358425022544940781368040938607668132595869368601021159309454010014874565223556342550541243164212796787544064335821026058586475022881970588391714372685112755873761190594317642287705726553013465331236629270780995491396213211803733100570700344018325073973109042638225564421411078224007593687605668542573587684786947562438407951744983173729356556996099007812668128829473815240281173501636524158740361354942225772070987343374913800109704833634397482615681149566580507767069964221320829611446845561911674396852341673978993110615064819553028194854688045064128721642271288453319759971679636018872855019376110073098745609579199511553625064475813999349092319355587283726913577041904299665677278797102937890712646007872585134464343641912466973869986749543348360833861865453335310616839783784084871907034486909904184784060853988329268762209672304246042200773500752641201077856465282748699468139926507773731893206230651285614159706570673589790338865338664643686362382646106231880495177082863983511731530694220666030300584169045691640144835881996799303621832925205490218060483017099557601970224165803359628945968978063157421944779944949579778996932973532908258705091438410403300052352209328167881638344788248529162205648958378735456907296673995480175784900465762743780111179689653123606379229380314989070160144908311688892252383255961181136977725112897611155015216225004362074219830544787680055302246191494179000183776339394335440973806502724988749530032686376074639488487335526605527443892270575132942592577267440545899756247372888825615022509284961592103195615526254271557845196457004452811678872577325642441033524311168062348037953193560284090789656074288513003016903246585566990397797503634454822574477509828418462664089112827875953968818297177622283574660245611396826704805403289231154122388595843770637469223688292072386731976020296821849924800583850395429720924839701318201849481822690750658280623357400984569611100103534397313587011441105694947106678515187625115988907821801896989798964028389230643520383080521718569734698529252266226757516298982733622264385186665829258610284890862687837236098804950656714073560235269454609532097825319140765368287102399869913960096557932943275451907709011256934492754717151286208438487703937131768592083495203615853769444035437529776354971737571982925369301634648682404512825845421312763044636409741305111411512994530060726232617781675097969408140666662665666459387707547777484899027248044909132013953421294633745526769739944236720166156344746941331234073823158619082173970958052904931473609096631502977542347611553560966249278045978624080418417616115273753514294339974312709363863048608906145898030173675482577775776812139257897456595314797073000829156730665557835357586149756170502328123275947157004860165209385932469878847149417566333612381305838663510553130633276273773697300437326351060656071495727007087021366185935356322472036178803891588595417383584586548993691694538988938087552309681583086519803702552094908995940238336552215808680662533958536126391659125129387947184914624423656817649645064119084793455091914251192781416117482051347681451726609345332910850905558514786271226161802740873782514346798907268622620250432761906015584172334191670482030328454048180520602630931381384310792721167543504472944413098715371741788305363410507133944227459790352167628817723408565343149364262638391395336918557229070279193135871045904448692946063889846148437066392475675229095064466816855018256596457507016737051303197970266876191512948365451485940303541702263296655628378227462632541035112992315895735068531499979806242591861360722196919525237663466607766140314563243564372314176695562910107257504205826196125868186577234757366472931735656831651851426457769081383954685342655879571274914054247975871044691972943136200883389031726029477707396535063561861145522737111263589365638927220166551571073993382994146461223346798664505666187518016359257043458026866712173508581582630983563162394479014413254795126386769505134457216274825388513462442057797327179992190790172883661324167138178727609595526638990953144238746729589775027461393236330386103069233359745834039469870925765565154881098678388521851819002125920245367592622733037937587176598438110103528769789393768676993095531075380285326074902697428321795982276002014732419074770529759468981498454369195060563154117343469777682935938959721057373480845999737040492528838535010540369915660288422177621264538427254276730289246259956402378548426024950324319918296519815238536799628079199693017707909144053777630744592217796996667817545679398450329064993909019716713415776702496238424490119911634010386937774601205037948853890629485108677448522862339422046177649873748981007891510207447091704528070620698272471326715633275257141663590260687130153174790866438917355354304865707462342466294273778550930900488392868508365038909458482579643764920165654258607935168317826447054146791127409348848308035566184161202778690622161043576282472413358113213808062153140351148689662680819253500100339956153281714361086993983261812234595135796746346113917576446969451966446941296907885384821927551714650697487428934800124575251058345988097201216187391393459800383954751733947529382159515756482151065839795903581946501114064852307851262555710986891459598440883003769587134593357021995177618016677920388228381602337455488023433644812552135742393853948629860654510845366196356380929267949747351710324780232451022183503250767051076754120169720591438195322333353706861952667347712716495222386882773308973225961282884387054548715704831150281825034864682505052582421337853426294558621452800834099363168489033091316463216255162029775365908056454955255569060728368850978711394124973139541026312015609780957756188273735947606617165375583919048556361443239014513381571719764712034718875721957670556335665682636815467249861613666291650866404585867660799159673784558186062634600737276490781037820459965770118500543761098542273478816006907009252468336313025712553924468810500915670561564057019982307663488574506312515657523881810591647686274383021764969967770416048980345521533299387400037593153927732290893585279723900536827966096043421361357376188776731394309758919528256083862287843309514232391317173431986369783915584226214178275003384927683654130295803432074439506810868349192638219914675989704874165301908040753481567051764155912305575927946151207079783658005608081957731836267635797402369073387367999026132571525061581555467645428926068602885778523815300743118827318748116068675548838510194105263766772127883880754734059377330426331772758118890925941504403463104845093485850520742247829167081960774359944300837980150175009108062318464427002015422250529450977651863746166276035940367001477957042159638501203093502794206750287551557460391902977549804569553149924772875713558456082723269462234313818236566209355469006063160737826808134969094609831796732256303887277668213849457401234124340211345812073060231581502836478960158522697625762058822178656482302017573553277896210667324038813919381485494298915092198395412783963271803399641710759656195100760053215218939703170897863936050568916673164783895180532482340509909904450763150698149635298218621934492723190401145174416551762440629534070618382480897334802237720031937419902826685705565123391265409139961922607971504604639694271122032094310258024976471247139413740059980611683549447803890809468544291040109219148583896377485300333874421860976354480873648400955248996125785973467970341879959036390561648438810289393383716535722580168622894119047849166697566460752163423988961319270961525576483632171495118813051791127218187093948595659590452394686144975287633666910468234309706146697160839072603815414567817317386213514921398547239321958973483636712329889174987459476753316991570108383096346880938880201222680535644520194191989289821985417442731869926261385192915485234549363469627134364586244596974597880206623570572372293379652072831437337712553888874312749792538011217874153112336885089081830373172383385510638022292852642780478417940732375429213590968446034792804926437481115677714191970727818495070763458650528612875877468901909183860170833895457848316960311499073249364116249326264641501261445807810568692327323355206552598177907783116975604637220449689238606122705595773446595733900318863415859731005010299496242735024269857364501007567052176723496979015251645873476490810129984664939771651653199701684970277953641438096198057136181609493619351151066661435450012714936369826202889868195453649674442350954076530492969346683683842573800946304629816816007147724597424302880074197072784741379522143533559559689096350300687085839497385599623698917454531088737212288948033023073651248016418173425429574239977279700075612925496869311548197578409777537512169348555932758930889692846651516339166116888665495819175940825287889538154653576567817474787731237161114830137164424047919973749369539244342569087827431048214669573123572484778033233990454062392603003353972984182587082047898003108518067456492668204244905353241409345444200907968840452277367199296843559656288355401161033212582433326849504603765976852040460540883486073430999790059912466749558546109141171256123298255983220945526523210729807342633571187595165532543396610710981147595680820357003056652628958942961835667156510760756174434769202861853612165353004679938375515383951226711368131673963508582792795916580654770508373940899274693356595299451109048244144041508353582188196752791868788505266896148446497037239632284145402340134226796629989520794560965198664086686862685486876289614102687428988241627545047614866235576542858220805553183670072494332473830964683841982677904824114384514233584960269098312594824792532889402398624881211633206141349370726449965554919527225239515998304547821060069690573679532426973708252623786166474909376073106331996423877905397986742091948972840805923844383099319901914714697543993498713211597401099102001661315661522666258472777487308523381075955393333691813852543989212571483402540300017092507287641117371958707165174016133160612368422375196255388710614731447910143391991101753878359597711523726791490788221968942148451757372950728688724120516290957059041004089652113835709646466049993635324455906715497275192316036452829218109409960333962147491266728064417113826106885345253004550078057185667537513252889951693842601429414006062395806968476382119628334087396335234717201486013809662494953476574381241765574351189276354949499889267299551299109561243063644019609394504925794373449117077956970829933555916514972541036141908687756433129735014172438125416058046747885318611065785737138294778382612426572334100547390611743261576265661629104553111067186957941486352065551227527482309295945328184047080530547530969193861098924069220339550366133987659265821893826505220499848091065256900019300772803329737389893179411200753182328609841897092816807398738995140470504590559576974054427356782784677938299864926014822911844796070615804502060291800774877364870396776249753069360262167457385974769984474661344819623308861430832165467992650160621294897258133620568603859642878283951533136539360818312624742631760496760877192797285129467292802476929675612854163491170978219422717323786260528345517335510074877304234683960094893265134486069643818884368638951973061719425463140618055438211500082475762141257729675068842840474284727312629554061037119146127382124512117677168967187895439973228206300883277404847134892101587810802642347091970383129632097159954948707256904006800495119125470133924495715766759199571109771940193910047427492436701711395186419939620954910057440653814963639960833761974784672708434954099522932576210716261149948929633653815647972028593066674749900912376666338865086532861197446110801652877350458699176908325897189354093239156124268017095833829442609014149313360385850491859303529774206378795842874016257081039887543145597031043819650105023109592232437587396868840792658345449490987236881950710240033854478345280986843438349993288325117881264364847054663843849914097672520560340776370423872235489998002707822261100454587653733993626953229063702498751059190237868665113984362687226685047028582200591064963608556322899916220469349858114790195275572933309444962875196057945641413100616623187105542193717499563730195974593039008428023864712307203824691909642773569013995915779294622847734883838403302475152175303813883966985294595940225710784768645452630336535043579122903483822778813874148711358317593631188223905602310587837591239145974949178325291730736169542131465188891060518513073614935342114516941119486483356756253403987801893512595093153782136744160416454319314104849131614025058538580290595029045112582070802098388300513666975609964041593560075521217570366464179347646856323687695143613443010593396524389250735682929781687599958358790955600941338125287380031758134846243538359378867346605641006836843723488703868090224849454887411447300832172024737630927371089635511913921722837883451318585728198282662206464069649576457286395895651320706219483042756431748877232767133652613685488206070801000708544780718974332716636012564295228598730514476722271627223481468482717607222671345861232759702284649590600652317239549167329729611505427926130462667752042798816755022923685079071359520938535469753601621641939941353781125160263448976895776826292198964474854269621351364910138276480539413651121840918167594628099144858894450360110889577441263022371782481791427069193310411472033734070327693781292600307148714651752949615049967082231287825421088013737954299628178383363015244424585158157616626643423907507601328069494222282775139177741304779163478058264156741615715186638607841493164836642112227652065805956733600097842272207949497962263333083379374584006997714130616290337988408211345811865303082382716288583536326013558061643154395403821331183535632457053091682049648412595903163406430180222581907814624553856506660051174850782689649479393516633891665370885325406309169753942694297180491380987323664472534097837358631063782127071038021943179944024923821554320448998768711186719144187922541021020991803135942057699587609186913434217067978161725259051896024005560237737576597872330921873601063348871745198868211439040802408685191566908528208587039902666453822901370565135749330288425878385310726845392089786638349417630053046026682601098016521744538612691757765900379525716615519979652136163600958306384540334435305135376531889758006971640769589488521161317804228727476006960566443089885285423309874354671285842487035838728172100353893068334314216369602777824389447581330065069150947962690757238379241102828525626552510147135890380481309728367114224375971469994311009913196108574141860668654592129780838319588549123809892476508439603397963111948854441219164526150928393831424448325749397242877723245826413201980334639058030554423470084937366269987611749506150202591168042232181965164395468943030008970309493765428601233248691989997731568995365105150664722878955688910049461347812810416479365912568730446066169783754698079612410444801996461854536131674155832100504809030288045151908211599609278153081634565459064961779537880119052331632555175208336921894297907916040945950160216148560261138050023078328398341864380287546738398282369878957203910679628029719735005523133707912079168490680619785041098642749458854539231627599203626886536925935195988321808224665090248971938385539342479393376123424345025045984030574066991074444942467622129842563942990289889907050369182961574733162166223403286329627570434872775026089840503420341766078843605477877024172266524705123174466638102496328505640559031051980042928333949305550234127265560347920060722464173567305929142328037822837973272001161167141118653700565354078792616314034929720186848232750164394365860194721701130794798528475752655441854825614989601474492512103108275668723069873574027989210140474981013853990179523309657402824326274548863609926639938031652707968081389709234576383021205953513826097093584714082744855004428194015577149608418390701962319093373456987117829583157085575877446254766588447929564147241621191566902035101833283313473850445962116094413990448383772161353832391249176487720338690995724560352724429331879796474960156810920346806264871222378560533855155886296923766699053252134112211318004702974019608407163551391289335482998113266545709208543631792546699440240808977999475523458128335887885068038480396617690173164654868984334356298210712245375844044739084050189251946273847590632505549343931060266984460258327125804176024771526402094398969938795040808575329404841740771667566293735233117409819995525831639547920119813006347208095609295248691376922267984585304835260934870443602104469205552940978988384075409397170943569467145495587453885485973962550395418266559645681589510734915967929790382025491237134108293328826342343728397503119690870341665540254358275354839846457855704403594204331057100631247145915244439925266867328283342978043620489368685585460499712488421640789073248638194944644124025056882536609112059826268342538432940175260806756225414114554784421429110178095491582155108010513806025872306329695171153394275110181927592703214448690598190610681782196073635850325100810397207721683618903518767291698410124626349361544507849537076846349026484311121935762293549077231220218494113692374904681485856444683916802089132909498654386537488548237118414270100262581423784025495882682336448649673396816956519793397188853633678498801808206693413336646166348766162608115555228493298329992082830789827584551668894981645599187543513962703348290739397370763842597188196454992167755825447377873893557031753908454653243008490557873639198877276081638631913163332104727004962446728351603391133612254926694092743303995874157447143624960884656180398058196263699291665847895443929808130095820973532025662231571372210072504968679615776097832840277794618067557358008354799117618952359709842251120115157153341014383647826190797679261879651566987361009531262235897785508618731468365700882644494648852163658484670388168168245090275226751055885043898974349174720753999258843190813355198274262794482157337134708436744461332827150247637204036340063569316819381534065555757622624461689578023344565404881168639667976795002502379356531223239059023772514325781817680251770064069508938233598066436169241744296359733492062704284265693005832677233545010535748663914067424422817146964009813098354784064092664637935925195165130625773357926221216747938230194753171662704646598686434717114028638520653887433780448171152175290020404349634158064814746876493710126771501873234464398091657618403922050063490607351403493003089137732821811151026174852788460051686495666216734836934190451590404809241636328306157605071368582012972392838405384035333431954947744122322313897849715144785606391166094682000533962067812387471632392845960717604117838129792451194602809766690054600660298712620986673404499398327729213652754027997411745920662267085195894892611704218125727867625969495073298941987770429599535470653937662253465319893427482715569222806686970711422179806589261204280993680229140970115130403678834717364721758767952462610943369432845382201238437180200729373072658138668362564981158210033590902196523638783245172982594202829994651474086182659823293584711082689749658322533608074470123516695252234620022152901545068326268356038074296538748712115193387349293071929994006390313059240594809396534732805087006606262909911662844100635161925703004879994112045592277701477412844465368165602247959659141633548124208127798234895653134935942741991844943366891612790898747767130326314368901875723231083419988126997346775386372830153815576069377226875051572806383150825582080998467127026418632585288512827635538216398852323926651507042490607263299613933303512569912988648313392968391825342962338632205529660893455962456380222391767926576442804307942787199973452979095445058588590980958428642099931809462242253479458493604315799703142876025873469321142836138347729571414485126256992640763379614241617897084684899235228722919821328781895241498855357206425434535308410690223486765911215170228560566642838134893514327970837707656397964787830963411016213118585613493088147371119123996746117069358941115541372611542069863007057971266247907432320220117712296220151405517930210604903407449852745537660629547322163685247162493401687209309862284709063619253359712581099014460103240074738183417435197485280314235903429254381191776828181102127175622783572837149045247731082009250346065188741910888964277711636864282235115084416978257985564416491139469609080774587161459533335570636719889801179619894015797474176695959154847082295351970171201288850780650557469860731833612766301695374681983777169199509800779012017518741934456944088281735641294137032154295861062349834891056985369465863436456919765108865356228586494145582835562942888159119891321850753192086505083781623983454931620708215874691898850382245419812611215996601838374152935964767042420801318714006011277458050991159982725591458187710325905037935447377758841355545258186136800516191289149874230549614427288978729260442859996903845697734004301550565474534050656546393840403551172220496084084134706379724176783645978566440837013009349858223518748144330630100075834883387866495236651296761790814426471377900381651068099848700202752632967388473804534542283959793760703566506404838913492973050594583609353098751079696900602466738300991705065917353800053276190216131200121096984460836309945941715258459384044648345599721016488345924492042593525236661833599886525144795632546111774456363635507066624367214275829374320530360253362382991716982557587539027091155249893796685388391811636181071888305704155254747678508171422445036529176234287778388207573290105386443554041347457990336098839354588764653387485454058863768758438693672140330698033486612679631844512547333128654658756522512354459727146764528953530143511551702971580823451144450254236188082358505897395822095870904223708266156633490551495990438766914121884002648647230685422393463055863761227091676736715978325799227690455693675995427863580502683122018957139743038217460489967494535836009836117769037574352091667576631306965583510111100865873642187348238110543604161653979313512669871749960405824839713749775143461771881401041306197462802734904775467286692604228546598032555886990726728372392307726749903427367962471517913258202679177761848061270043452087768576215691358109538351190631041049401538520065378191845347935491091659044338861897744711022887440776300331432493390119112226482038929353900497387196719145623023985641347405061343317147320129353405304044090453040272184381723748021789811795497208542762549087127023978577848383759669765946156787221525821566597822042174227948804274903073550658387123215838964564065501537666298479631637301411671747838953932640223409669091509843283717161031661946612603996171521973326414144413154594187366664258979336439066194908122130347100988012056960803355154408981580801512482648800387185609325084392526746057885972769759537600386519464362543640675480740373506119700781685188700466983596224299625087460295067303811756108355753680200806946142977990019270411431237649809057710014113412056900841675865926161778687271001790724570150040859215755401029373009631263112238530104078733452090269551868694229582648110203260205003074205054795500805590422169904572238479367192929160989493307854594454058546810991377318148196050005925753395731175882374713170272815669996520452673852236937064112560334868850188909314158372217194615124014755381222692522908158701129232346736798376209061637541638888447389498728010968601715192258314421050273981039634451574915791433407262495917377771681382251360952186026854133857004995486964652359345470367986182413093567166267677810944524785954128215810426201717781177129039600366774618902899996453210651778981439760322052812957634034918466661976053029172294340538287932266393766259647915451318968383891303772673424225993350874279618094402287048593114558720799172277409287286581448918847395188739569312822106071178123323816014991364102221385284900418438577641156981506373692794739985815105527799309439779793460050417172583501145198558175145374608796516900253557295921396922134237307751423912389601821903282541409477124835140534379029333066468290961961373446377929776921562983628760286292881725920341675278593736947187215645361130902115459262112449593860712608847573075432297286746267339297762972788261194832699478167231202590774428263315217252740986262793097585909295148199820506283428968905348522765833789002708207324250534437243099106231527389331427248406274202525057593446818052823407726615805790057906717636401795186806478801534711257656111933646672656599664120971828079786327696809760883365837980222862934803282854465711454772214572933969321477490615902098680889268224196361091949746832365675224956733091494605874507980572407289429442212406515998617033759693637230418630180869512505659866994588824743470669520290398258920296128999893894480954412125598112206900732246581174406222617236696769538318104861712785425515902192681864518379556409953558247285425110327034865712014300419918391758008315388472397552990337091536781735889164600012937942172386951557921846263810167330661774610335417998337698826823537856105795041418022119075948173562996180354947766708929724913667077536239308460817001328436767101744005437490425244941682565401132993860092074853764674652581737778342087456606678725872986969602384228670109896541568418064189738178295973438153596128275222550525899209683693335494126009467952677418599408689750522288057704039631403613917618696691880109111874349816007201184685877529516835193137799732352263971741753154429430202886772206648751108954903895783418599450180094183060086780812502016000626994543456338443610331184036008618808462516251326117807796982607753906457161346684220231420491553396897617450057517462133736887443209286751458101811088602719326164301571872479103672637722198087837608677384287601189009071396603527562663577372193848001381274166205494267280754090996625369367816464194075518501354576051826724852409624630887792068867374516649035513152410245871566212125262422068383190302207033812820255886399206585375446727245749609284997712263541003358203528039755015860027249338718851577845024808472646896336044041583325466568045970433841047714796233059099887001694475755769484593309016527374899324644863416517273711182688161659866170201745205956014088520117530032837106121695154430325180772032685659109821279943971049783406966019103343186166010614734360710327177067254959069379263692803878774422529652713235969192634795044691604171129059614290119299927533560529768485357131935739539629088368981213762275396414713083334467590013949745342647488426413729890438697048830595245978820577889125997780555438799366097607562832756093540030872460781004165425607073732722771334747255615438477370292857416915562370878704996350486340927078855740555637600272396797627425896530643872724300697267459039422945527855551984695934996016314558854126920206724553764039229656880273112594243262354378369762319638204678379900022594232773526181738069761632732562649389706113091217173806800933277868784125827888691557386977042180797166667244373741196297023008939834686921889013740561866254605418604660737309813159538092846955270524044424398066152875238476420374855250410602804940222361286996684736716430460450351718198622547084257859445738627224365752222611866124125802589942292414774725717519683190988955592542084086066930302565206394347423627679051311766376143980190510398974099704196040416241618829875537139758146144676133949163482746993810031028494757975991155833215018578427579476480589635295074722748982885281474188190115520753436445791943714964254227609550353631184378302129620311025673543180175250241825029493778612727333746073055862716805510867653652532106280862412570017114565962683086815446575596634844371340898373504824928759596429016560575773937203507610981906723087249412727475338314712251545834659640566598564057061380974967246234040765481563089418425882513654996110472617848197111051170355610131548239765817329967720966552583649380776243891084713045442491784142068907383966829543789188966435542901456503667137314290894741147320256380788135677116710743718545680292042290786800646124266208131736561416934361253007111311565718770011602103966095002606351535017657085610166861094426362947632051895039772607797968346222062407080549802956798831748721033483946475680107465628596222629165667127405822070642534300222990185649826335629383484244302902736936660757752039699580821788498368107414269202645402387993735618706496728286702691686317280073137033888697519346715655842507733531194467527112108201075810597912503089487418783861802629378050905204442742867765791635399900399498838251461061850287981017291172463858231232901721846428073384843472696713727486368088689590447453523505803724460894392723463077702971996937628132470609893992739190941539521446409895281996086185559664057244498149689195124257922947728647350107421525950263590756148103319143890707836583851508094218396962444292895556294850399007338151200500991187316309101138697177434184607378316422262129492515612589557750963193100300034310353350003804132337454899863334543526822768012513349985385107111423280569646686975136863252884332518910833166944967914834782483195995001597330574336703971878978583075226416685729452566931230923919374019009619472928545371091559637445002142241846006711200215545342388291444061249470281281185532058813631535398183965376947133007773711042329606949485016305490342652861497493557744784568535188287965114178313279577967787338199945863310354742973628630984873271417982049229083937561767659517200571551321360878358135700248429585866983964436288961972015793955922678726702339205801670528089766203666010280195870384852952601323121943837733511928289892630976560937256376360652552293997565925153915299495099087694994471507797967729654864767608132609140533557362346939739335551285654494456065000066580494824524267014367584819107761302850283007545365272296711841912377833313646859242841013996352236420502415927140151216187029069255834440549686188082786962813934939045902747566670557892414233114155627733598479606068051684105415358211983789262657498319211108073430156537560994886257013382112628298422142433277937260879567158912059787787849916678139921205297106798251430039649949244451170697601803349760896381633405040146959422495851477684851686103989888329790227792805514093724186643845757921556623908304180395796914265811030500450857275311946831517976468576383072619134224197663523095649344136571743859597936525159533637238999636226207013827768354275860239872538761828538705544217421411324661457352153308698433697066643302716319793672497426402810382911008148155180035680509620323821220451595830573490493901812013680785431907293805080412569581481392229021318530332146329874426630274190695123696610428283359394038618928816095797059695607321517075945693350025938938497368452253778422102622007860669897640640010089994184744372318078499138973123979516145422959695551201563458666644372048034213840477937777269316175838576487587631930546602746541986706061449729335581890834317436382389378189768353119527447266175510422599401973430132663876350667439553984385845155903665543700924070754228328103725081263186041845129816652463330667529463681524350715079726529421651754065490609194116195415271841534481372938644318212257465899829461469143816013564435995148610759078271221900074971244727118010289865735243733651147091878495334976694447982490744118853330490520151556960683455525669441489609318227282268946295696400339255885982581314495143568040962224348250438878497640894611831076651613563237143051750397672000747412634113388920105466292965958715288055074557475036087143582878272619970380656350629062702584582745643188028918775728555899965617168266823173476786054197271871812663008114290886715297754253330082320415015763812072962724036377207704344207314572412350105777495326646435229486596163470400520799048818275415795761026930315426770891375370454176680731234610504770359508766565740032657693519200188416763938879785891682124180342841745306697290356539988339568043759170375875580922742524425050867539400011809502760522555494077716471346919192858791252586697254671387782172883732249326872279590108937752479366475450046243086098256284757131715732141414852306586125330492930124753475090253229577986019936179279278812602060154904874284054008591415572370404397237630849758330301651354138039153093073580420971014947331058535825777300595962417016450229852738262156699783871571186168757828825419478059636695345922930187611772792992598013980637602625646610384367766360065629509749901002102461472674814532663778032146054159716446983282394857575112378764825147567716821906876776452746142332298918862956237331354639316716779318499007656221580515306408743780223270093331284078895155917444553103814965997765420030768650480619488556786476765863409286533364193042311398104115644736771870658427669493972899975544215499481622399543671503012526725658662054339673353825057069412944996754710871030918496307132487812510016833826903021960137060093985212787070881069267551665402591872888372938294917864226372119478325311726947382055027149133446699712491799662201444839920462232993991242214071472863781565917526840825306574669240553141350881554514776761019066762930432069977229961295205998450450725565866177151290389133837529138549470494451576692723446007429597128538963711200297140866735206593526916857879891803738117718337301503404943837989464066879844592255382380428801784394946588208370732849764436427821261453538880242701596922140572847781540192966041713629027681223801876830972396265720239764146839435157123126928670618357719741461673046653122983315230885871708084790166257860040366995410755168781319387288436197062664518536914635797010125448356937761055254054076933375697290360335278232905711763371423105819786049081065839030379906359022888986048972991170232495690050721802675822856335221715434653919473358683158090635155106910686697103895410819531478573761742641493030112565894619221433677486908907099595730433477655519903029193148559225260109790156427182280805431814516976579341006183043328977940711154698107040996368478875320853188798534235746991365475005957429470266456057454371478161304872762009865063902164944920388758441765322263955207388682090369810739463617309382749061388768040012354374229336916883316319508738112469288519901172983133445656104436591219112377496533033426721248117548116298626892855756242889501776587117151735112514164570549813632771872716058720066350760418962317651747000366678116713207861399280657162330228328817870707826298528116207373227327517768345553361754436194387208250603758902117901649478573298373914901770441926580062833078785232544960815093234517469443150460154847228475138329962193452125287949664632479058118758937820121880390182186157766007947270470314131353971819558591273004895829719739933693144242094860722302535697632401762690384759848448331413359162919808015479934174616156973884092999330857328561161621889265383479336272974484418379524187060900426524813098174704113380858139011644853631542558836846664243841764654457252089760915800637204384824228830471025649702141910677745704602502573369264900057866258775568024967186415466046932457136072013830553365879365503962160967714348137024223297359085561954610932402326227534489168826695438110222568099532127881676579668740917425170536485080745698565792202741818978115977828614621761736936463810312598263107671486032322745639448797964886705916715484015468270546323316885266637541414288818020875072209852040894670872867775493471625297685687056766800824919664707531054507909719986567272232623782127341441354896471086566346183523333822301568150378464913343594521091561243486097786049573102847605702364621475654906434372231381319013750573655891878902058386450476728486458395148317073372258583034430971961615634807770724903496274059292191994944701566913366343056202547548755868656551997183844572379347455502049178359272513872199608042048492354203541783450415136063680748244655798062464231497981998518576331814696741447738980691510001552574143541839189112094512928362872020069918645397938242455977057334675469410032206709508893684016211481356944608442355206548832371574125365559669034068817450584881071376458377580368043017117177239585583491597987753060627500641019849229310407355590652271679360290312987791072204844522276470658212559342780152872216929897829980859631389278659701254655939175667352381614636676985602462336304469884658890220688364510074643520664283089345340948841596656839596891882081732006809259350482057801423405855531808956024186957971230185090329606303065411958640816507042720257546163912248126698660346670533004323931820286514084309551761963653796383145612575343112774477023796449300277936688164907068844590596085196858503727152021135679458331864423954691226801358580308854495150220898511494119807871580506976718818533734152480031965410881964984302433533638240556055024041826088062062764288653286607438197302134884079920789662773418035922283409509604379589363202526910314787617152273046315092893817063640871229268952312717813342711346914392775297481498615342696516421933293425089204277481596343890298800646536318533785959711637933007963618681215235876612952636737942205908005891050686380411118900991273914861391472335858215458791647940518466772062761310651117425878901082777657783017209512388794726195639893858606404328579849264488253221683470278822379703832398843314335142283370108585194926626688471424048678050427971944950539879510374855839635783922536980177562728661593076330214693712972079402732554298708854565759514765486859135145589146657780791627691406491742191169886079354093574199144218233200135937569888093556882511336892219280295922790531205648149260373367834596034888291882085222783872302090669358913881568642157684945981154359556229613660716526099395333898330621435454439382628145265578164263424715496930538152201237586028465781290489270170875916691110757724191852842028604937783702646480514217892318605728243356980142972593914521055210636804830546809111595653779600038922219167961746104057573135794098001310183320700433935367935589373172950852424359625895274045309476399279457437921942706978230811182269545448634090564964433565110343627085990397791799690248977718483635608355721815966787555599709020662905862865990949413149342615313190902129981561831623131987765833326901014426557301680242224901289209622863096221538805073188955536301155044070590727095407391710069983460778949999178523795156006601879888508994543138339423416622904919022343364358999201685143952639477268874477144750346932483442492660554741730390176440176082524008428966336440756662607711468905331406586925881322697988261974027721428423815433258693524259466984694280928448202215950548170255676563073497727654084621600154652196885658036769058581471828523347988055996881243515180399024030319841804685712322412506714185416229459960247970182092722410310474825845310444040566301097740964113361369547198152511908099363661803072687904673694736245082201413421188448212598137039956421609315956871689536643718602135435222272295006668799719958888758008946718715880991196988858512788961846731179460352578142229638732741193312983501805404110470693834565684104330588480882778079787296870396533699739280447119525366623021604423287064462179513918916459826927216118982507701290097617362852013275798238431844655937809455450269543945140892529709938977208859812553018590102580662833877014839497570731622391976473572499693147680969504689692644433849462486721486306754853669305059332952632061726410271982266375653558927106276015166142484986278086821185062152847626951270601921659788764855121576978099961198975889121016710936486300680932996928713708292579498118581644503048369927179309861284887986333351881876106791089391722714058785760431863453892301529819097308383556474524302247586684087979470069041726131474524453761881355875590523638810063274908514248813909129968904512948923639278639877197520219349753126050073308413336556007975643521017801723434753732234639230358724763986360640912953478689903763695171890865126759484162410399203714715340098715159537341191976612503668671325818793506526632956343574547578503015275460356566109585009277058821047502327574909765980090068778007833309425779553522726173531081304573787899792115227893791350559898946591242964698037957065435192209655418470837515164047247002739408946291515941467115108880651906522586574232242202719538737865230572614925047727142264704842551317928293938553643067383334931681658076293852506959949312156217251519819226312536849228061792339743577442752963627799630303699394302337660765891590519756102298764342999884720511350210748078071745071909976111344878333668514527904715454340317127691157708789358092639812760798457697186636755377622434782005099505725254794970163244861987010222075841410966614219881999346104918258591305831483577069539634407430807153627734990298728102926237698964571496942173305053332843026073889508507294501865301574980339341777739958510302077983766362304989705281792138201308126609581798226788222285532322493371124230888827552743786766424518343698286402179346363449924906338142891285545226419620525044246721157150924537004583951374405239540021527057581442034251963569236690912790913064165194421019103189667456489870936081847784694455478724513972665097000029265337466272905198957880732508980368449344388499663551141785467723975942975238231992610550986874803244434770351198582347187558904064184150035208590569667365638929597681466175525191129341493980523140990645504140033276676230298620476461330930927748478053377558264050176862859237009459763202052862822624387531452878490261989635451111916981288297813761478946316831359707489650455475105326806294850175528338384072863790299647892795293247388974020270617691912792210383027844800088153990062334145931205142931151639400438934645466254781291657913548879914976416299809914675842628098641507898988477192776830845277704123260102229382719015509709486131362493171539223768547564992561759040160163629772237118888989398412712587497061600768444926795971462207815006611613976861837615604898828514059734762128469575462783045440678518124842036676439329010662635028127675614620035306757253299172534946183495134244666325864671904744451260259925545638348808984405660833756859121692781028611942547251960187203692332021090623317021555022670823597170618346567193306919994643989646486796078215793791107561285461623946877291191623331962201004043058897049903670510363041010957800943764337387438502637628884885360517027389477983236102097805130265979148425839069941260388595477241993255008870380342333583981528150474022276493440055416218906462178523134675131528363005335623039176849497393558627533874354016867767940268098391337775601896772427554218968942814227382316886537408407527679137166694578296905315232021836011117572043704507221426892537128632235855950104829833234447419680625139198183341452898509303521065248489413812075023827890967669487487432814274706398416837261654638480352744038395301476097356738899546632549259078628818001017636108212676348647084705060390115598165383413093792740726889283617267962689925705334987312537242162003146876378044889383087879742917012826830830925171551780628164996011591535754007983709088978335496968821229058383089735651301083369146570912136555185654535168551432170310142576867285312794992200768559333396839986050136189105597963843155520713140608727045896574288944189863545657642612399188308094955774241786262894621653299859730648792633595269708891981697458219509996876427600653500351240029320432927402914984910643331746417121986902686499124796589064220485393738729749466632935945905029031876735929638316573327420406313818021257562470106518643722273656637821223339974375458065316148317510730075643108570398633839735127998212569116886488344666157860726791361870045649506773007128482931593456617621938799000523248354170072922088826733503916727385827009545365637316620551725452183975265446914550964095941359686330700017204156290090769170953228567821945435060198507358952720672092905721927968564409863719478477991688599626005618834262877104674848888147736878920488081253437541169700240512987077755536100242424059598324393116588752379912714968699994345891360316160404383743659424948512052640170673874240260722708977224483614126676428649880453397706484541677223177894557964759932492095339504428124192105653195145172277892203202813174657004818717947721289387774343105439655500217801517441405060181475022703811082093596892264899028993213130514175976579860924614567662216893320845750188506849310593255393922664586158807338627061818464870177453767903782024483535717268029826313533107333821146847135373906503877567572384928471797495255422258531976022961558825499519370069017735227386050714161551891568020428137059469278958838901460745252211370241516061302815465235002816500336373786170004120488981463610685140624548196993687710965200769550735317431994708929168678017306777707963382696308255225495153189415661039876601231459197057454515564263699096787711339082983044119444184434311206658340608494877463773551424098124556160364444276707496501699646381483590921934269703172617657988282425999246196480032598385572100555166757915114231278357228759433529817748684418935850970597556922903281399143756689141147215110221584574007050178735116034715320164364301535240389743558268611354310486140464883241381733150614167378296054555063298676492100531706463306093382046791691809938802041210348969030705692259627793096988655169034484501973877667955940854107191020004180251633971018382715761527885626942264785613290638328868700921632590790619009568557970661570826761263955206766138783516581388831192711084512948327768117961150381681035790131121003286425440096523934464689366996942386858346406637573001443307403912800574918625852859640813813662160442327630724068289037696820952858732577758497427872554645884679362951292510926117081948564300643446262070379141618703868581971228003338535895260077721961945470060248441356972529378941273014862776884863761012871194814483558117512178907786810752099831717528194651250117887771270738153320169442541007460653342704821527285384199997284173085269431401007881668048224849220559789743250931990880056901572427660037257482364684071290144174083178296398121776126370582567364842639406903169829755518886902145914879948376080264619697055639682535580504284048776361949071501674300830904941449782209450879507690788854496813015643479870005106888475677690588069944586626016530935530757618864201857795742367900232199060866335547837090354535099393415376291571535361845296814261965964222669983081197307789224470631127088527682336368747172580051683334053489806006218128173150785674615446976322552426538007179813922187031511121860250914173092221792916243679937830104012019883938604789032888756620134846439072993368379841578891632990433772521505402686008326090220796324512147058661823092196796762817433027732013900617396586837221878903445725296834790084685587852592988270708326004991141665065794681939745575365105562220848097805619613915674335746676133189321671165390727998938642444664207706913349251758985326654713729286625236513226519585590513031609252004450034884083992643480116220427335909689273761997188285550574741493513348621955663223154726395462311420617243418488242011250144483158284798685023073987379795848557129363432699110676982705438342485132331501033423395436429092372605935026966679176309614966247812536906209812149243637314831084465910011619087719397062898223058743343801720869183482792533510515462904144731477603669369582586740968800438984737341303430946530682127872719424277112487372390959029681298692714568530658197821392134569185492567049263712584655473226709189786782729070230530358269422873370309482472070463075056038898593899207426841927626814118306218905085581035054143632542737856525930395371657024918415376476789206221133856573877472025691129895267497665983048793446858333877706120661983013738129251291347381927033741612709113509904822453445544953458395694152428500755398325881556177055683461179005977559539607665577075907043304269655172013072673666354927829894838645969816918497776329622207053808518949722129415370553836083284844219009872702772934909855224231671056686163097884584726542672759314408123655872591126790627292394405477199585086338614514396480649263991701977576843101515667978946116959454978127599511209719793999239792692392407888015591972731768919313110823199724112903574695117686264465762243248212486254733170963025271089556440173998157801632143617271438540791643940681572606609903018154401025563558419000903791640776818984104064337564016777960084783304345360744841543107279467664686628861809381654084989613250974224628217520820177497391775942655313006797239933526384253742596454660745820354761289388133886103994891566110604386962905901621458435541285703682499406506211556666825518201176255072818732563966835012968215591755321061312905826096528525186795932159308975151617932068882746430486566428771371551766499222765851763107451991072943433224135748847639126622414945386941277200229658795078916466805620529838193223694756183421519024069218765349945860250951162219172492155165795654563132645178049145534769923074111861025702767458275061546547340320779174708495550775322027000557514602070136074130453621641997368394142814914196053608228019540879305069383905034963768207066738338058185844066054050734791238284891380324953127197473473986100880748955142921807259666505274690321664824028857055952673288641605545595350864306089206808185193555790317783469382890760031688775141563956117773292324702672802154330469949181682171302085902768868256744069453196449655665553500752517637355992940156021866029540443636031758408185744071847183243692437880981568534906691560089322386553334575137106802961855474989360601337595543228928845684410622201952008046352478178987572092767156141013714403069839487777467173705846522871530293603515573102912253753996013751604201701950164936347524085018154949251100531323973754434351603990761324389750215200431637146339529572435531299183650023736787292060915348350408482201404274206211712305627179922473036973893301054360267673256499559064739849952827527593062905857667491099633344844841426720183569808652502127570771809857567721195368665989380832983296899196533670773643945212958525690400283758854598299087114676464058540674861514510975516763208323718846052218811910760594722146784322235377948520332271377129647100581999912363161510887509565957334043618654611177611398355370511335539558316847234205461549236952967401888200549639541106072551754216979738860668392669743742621120064014784386212144280582680149649295040272124566281110528476222918017646554203952411610269007430747462561257776812717696425074261801237658017902322267260954322307961237063892619966769684981611986164738296647998262468734341694434599448012687108636337186702755377757463426978755946869422833211545275831636878307120435717345702485519471250238623337844146865933965725196484541266497049693405862319227479946781366610536261372652574408241986847259834707150867789034821849364068578089937775537339011814859304005062372025878399021162554606781653015223741741753996083265717905853306489060714463242245645804933705634124279587080016548144146098464286410844348586042632420787304804071523410055083380671774626198709507746095299730628148410375978525437369530901889844046362510322484419955546997170391176973264385937008631246415457772652042025576344855290612153861207140454826852264613706964770783550899063470429167710788461237117689643859732310052293230635484025399075792628150996323522241566951120575154591354989438531760192579410380031043513352719011887343600099486159085607062071442469989182618576166967470751504468945509838401434847677924618800865187332359780987797749636972467203878625311488097482521887963110700287758038981008520317586049665233861807314772893366976796223869299235710105299336223684097421159616938779604576873253839285471271099770621758840189657171588422252003945394137020876207516205563941352657350089953918842861435211744180161462783815098081878911284630187399829046229124991719221850572201915274824752037927786249856278210865050541072979136805719145891777465647589791950211133975336442649144872060892092554473007388748586755120418460665494630446897671738386318849917435965228340333989659829739372956119689827667696413853315513418713603059479923738204676763611557463598533112095250985478031532104925146434425848716784390643773724345110038595540617489331572073399602121915863058519807425922209596068981829611976522860408951724999220265373932727292908491948577082445576351944470839134044995983105593088276291478534096874175810740881703268981099126577563333757247301871986740582637291145617707495798960859211881461419026628617270997614350273054202217114850968243879680655093857837759188798660629051166114976717999026069547756946996246290707594910860946363129273308361839163175927573791642049300985232821715611798413230803966110552315272758403374256968516833761778798249552612969158481855209563190508385230679558812829983669332052225477327791662151052169749679916579325410568627344753473115814058061993214395370744148585213845326103225103845428589954101741564675587944581029134970109537911951337203912478957649776658576047825455795651287454665299334557837297197413340146437664114822020580183186512739943160052500734429261529339058621196254039740778844849224496675493860608613715233425039136883683576482129851576865629165881180739024456011723109440669828854397514660566003306429308402647922925832554121653645196621419018396024501240552276688844551966811084151809627013380151239455058848850730843694495086296817090718162909240075475688831412442363253759917929971617038438249468077781847318370940426825271842153237191745695654203604103203001643352212927190776944263850586772975054178594591332377951948222580378408833882891662835826065966768575272988731332690265755673459115198295509998256148853856326295827491517847076817055986446115416942992304211869793455771925325586320609514388994328783465756516046621742350235842791059716693398633525128027779499544087543056988686073663352419911032757170071228712262958752555581624742851701610465979021051523090007059161296123793479547008594609849794960627879325203579340443621035562298420497685439863671224458962664128242323837086841699609285710379436312849848700767664429518108791279917748412006157901205564631325216218476245047126865424919287765622322128869898616861388150810611185108781396863264969694234060686447056015270547607689381579797151119170445790171119715475725874308461389401018381104327254269265774429132969208605649556492754408035592855245818418839918256973857688176928086443340774314101657084456649595325005186837456418705435508493424798259314759422726738155494539235602679343443476060539944759995750589568947436630075767632198869730597062433525274444499426689360917159394539874954430702586407935044408688999493718969290151897090706303294347852688750508041523639338099133789892188824338808644477466889538162640985054665748993751548095718824354783495407951934009900401162614896042437448660285365417422948495995886708554566092369621384426051651563534863303704519240241850450393056170988387442996229219926658428819761438327250322588347562379871573411390673277588990517258347143687121295445764808282691713222457110810873342553868887914000390890628386020918541784579730778700997664542273212166174028545342859817526943928827153744470193531119996545891096308620649075037521380117174999099992052652222192792178471019872057004496324202883021263056128908047186807327452399111806973169872218706269293543025035830004168652266807214715857504703757507179881654852315102276960470721503550886319912514369657217163049239814970486220361184668578965097062871247965567132395314648539169902175141940513104032083088970539567108960009011587215240416557041340905823709742020023477304381693413480861608669010179476946084975033544310387617178659335627707320553607763155846667871197010022391629627594177559441007576248073238086397739852369617835771627105297779034676630634779052148654539500968360991035788369953735655457340095938534084278622781257355797306375279859805219451074221422490213646639034879259248567889438937233053859867581115450518985140510131907697942861207538403030220225998072405617576719727299377955280422240358473050490294204374041511040339000984655597371306308313366663316268653149967468105075896397079631907748083122880576101043536736641607011405551286517894292165010799131143103760811888320055075820042552839321206779665052077592181276447241080557188946925742093844484818780213433638012510325367695502145247769562700318836331766732560991092492419206655397034772647125191548755380792569984082093518747388225792873556240970350264270075772971789509522777199232594598585114034837390783283684611671126420393434845783226361980967205070943248892130971175324688835189472967419329295877332029001545063041662106807957068410747407681750129880963122176197578557682114811203220885637749055136194472553011146405811763528589055732384960912794771741208392316062826566437101252741476937290928947973708263270126742086572183579069852934075982143029273931392474879983375932078959972632257072426010755879377167043212632614259239051505763026249070033245596278122187521677496882939222064262989977231439565540027971157996851215964249537070685019162636692739590251379571461721523824917138540548351932277880342325850735820603386968204927668335843306284143829836227164612790635263583417673289487777268986227836560413180071890746601958842255229154974914783544046011300946374551188980510103426412752483533431471373344015773333870885777995140017502058648789861238781761165744959173721247277023912307842202264943705412986663324469388854456040516240356479134124067678937581103577065304802218820749393484217011966474819104265569783999293638148815834929186165677626003074134818015813243503430360778161635544606255331052864524893821737441859893274014662798713469021476491347833523631332154707335831838460172548144223089630791356142952291217688495829086436370863802911097032130455896559569853439436638364977639010745905991968748228073556551943557714832832514326318336429410598306233119984590965944745727807548871986335342794481342563720763244469361439126954141984943132260999922938421100138134682174385931996873586072987982913075520815215148474382418920227709812095701718130483410070093639257547140946386189882516984251513844405155893578111302035369434028648121011732296274491371198712294832732982425137846306808446537184923515425770918472457160753396822215065105875982646987539907710983707632357192509787416994163302430177379534696699905704797088864621688351841147320487002774962649236507942024863626458994637330512494836896346195965615999493958612494850536322025681494412056083444419308249488122475662984929029257897415593748180283126224279397109971271330916473752720157391368541536720838427856345775335511967353573844682160910199025482668023509479218224722032914343156759291717162712322426072896747833985078470005817861980452027286159342577252868250060065564408756475679468589607584844979774216428188552848281978225572851806198353639463464363716240513276802292130412386221473012941548515688925240652460184590001754643146508271219143467591493551696990430455788938810167266529597542368834647227688910453077247266061999009739185824067346450581131765255164966689700754437100830636589197513343364011402800477842915143209864651916745475069781416759037520809647068694834468561107616464546756943793734618812969772351825521397362422526635625538503576846095844842713822857979700592499775947829651978048578426900007097095771533644514226052373483998029346311137246403247992559590778168975289117197160486954479971605870872252018593293726937530678549128882284282087914950904254432938606360725703092695391006311596716433017943104251087591213560852913829242680922904334497138040665417356938024014378568308525657306508609122256686019789360844684950749301305935154629925634434727205448007040713635504224551970534575143542984863778406941424653745792613417175052511805598098405061473685539857245432456135022455376691941150562585157386996679123681027944942274047705245920516277561437312756745627135909801610906301771424510327672200134384208157976794242779078190991204786948071486296056464536224612484910616491809948225795846442338987499584939459837422971237462879867309044213182142957079937757800339448541338879253777439310718650532716000648760305097179888008208550258052976079307767024288960936777476798843181088240610065035622465531723064509391955962312346247773600208604020044979065509762509104897129068722906295109309689179609216170371377227191491962461054992730514388140538325303192044054501850798259913441056285219791765925708710023383545196892977422640111617856241783660129742535662394173128410750232359853693382760454216368608633120645187762084296343688882295505161758277895136909324490999704571733178009116524472147939622449211388796139536645330900932451272830661802785567805515131771583356701557452190097331399423885953462456058759051983888614884199669086464407833261033231811268935023381722140010616601371659749501737916528749906420534463319337263388805676690995210992048405324832511236495999235489060429762790801971638454415849154070530980161924288260942670513419703978390463833794874379812864337570809938231498323343063736890588734304198747155728344344841480684581257254575071147670265397441843158421088095108992102085323021984185411720928490923635806958575400059788119269007975688910731252832642926839698655056496309932836686716015868680597545084164516283994519465392244411079323459511950925021318217197603660613040276697578007185681148304565618694197207054028888988485204881506843148995616506216478550865520354678830355656085726908868837285082566462884030805028772359969918971047249873378745937685955017707827243868429371855914393870927067812514840403374231598606029496462302504999949400699598457214356937466084030703177296419301835305472192112823206578138928830382192072675849443191758724085623089464621011302985853664556891618805022241252264072088868014100860878257801202122396634258121431855585693324797758668524624148367188473791369480409840389925809982116979276969755777623973271976100103584140558181146399153474682709382721671743266630743226846254971962045454038505051096175030583735685325261235169435268356137407720040064593703196629826040351803404000537394830963431992985523028181928705599204588847423657189405965206695126665029758037686415459388413269720202862738309429134413150242392701023384788910620013616921271803829105693882558823299452808312681098087172855506628121831927214270451032550207912549237069568774892690681983807504689543986270194684882220065562904340025245661779553072507389058724309591588973720311867784484813546795363198243059731717309453449852351261419876903971753542139121684690374766761618820107657536624174860188446554540429518134208730312340284267808630753112080138522119866794880022608255631565360586863545714979185441103152891273806674896646277190576155485632215826749148090101770884972603504389274907764221905420183649842070374620714487005593490363093449997237343925501323641891074502719713914792574129706080462566623051223795614957581506745695479591647431003931138126599650901319967677820653677885914503622993666407230218315397000747925377802608368762595718794301016039402128824468593280123601620760470758878913030939844951365747818727803554793914676619028947949226350235787005107602890742577426121117526971654809942497830319743372408798400452301749079251435622410929881298289205032634039138794719896054581165161555856421239745147458439413956337981240821287723493014629002142647308569092679496848694256011101469794906588944105953294182656121044910878672655625882570963541741299956190084550861603678820308941039754067126047099611309640567720652760393692368420228104608921356342542123023989539794892796026501914799315326156832172519424358918518456062247116536134580332719424726468228491617802410725713218959825985443868494539568189603165715331872003041315280803270608509554205035267744648467914092274463577390286740595364826455174213285557254563621132132089220093072515182615262582715493246311097854161945365791805916455695703762946172412507303261002296909572343019893657713279258702888396898619219515643450635119685948849625881241621436524843854217763880445619141112576528072785086716425065463379447188205764435428118674201352276189500923976254223860658641871717970886224290537548756892192218659485015958666011685682301480239998795116761046816757955702968673596110076438932410180263285377729202357138243804168256447981189758851276349943702490891002307497913173472975690674611347016397428492458067363289045576790877694336881154057209208505061202249482661809510977525697029113512776240109366963408310241231768618591686968335695841039541983307530977137913106412356894793508068965803485504474134013449053106084578721719134762862564025365686818265555270550076450659759131273583350397386406809068721533005446808314314156396429779187807309480083719775313867331105391166631945834205654753959861515950054822553103915148214727302070507456176147362916727936877780451574661925452829949656674544397087113115860197805262150078337663656387242502724644719288703572734498543500621200114016269597668135255237245306535933682997282879169053883053240607157061346419423927048386656712281603073535336710485992997415991117782514377414853956651038566155582103576265213174675252478129316600313056471973875741729198497538529494407338168033129705319509698488472331215726854558524380946687452298202185736079233025440027110029559631109500797367561830892583743086918903243657414665675683840459668352487746251307570390112461953453217145152210701076929576155234770872859891561093827741624896178409778163797787498642610601656560443049662745684822688505573025736378300550548404933262025112352149468455347373296748296131896925716707348957361328752000082270895718210894246569969773456453186315018065614305686994600251900377424011664730076275494305207756309658232178768660678845276513879134885884607668063695615920669726612693171471688190226770664940402836625519934635225380991832218804078816441388986114567491403344200756287204484072811194566710377529857038244994730216680382539432330520547516388669753398799431570219471531067264679971081279448722270070200972876696235226208194458959715488022573587391365999002631615798581005012529033649595604756562145164908276626953804528498921441291200644653342825618511541488031125582347215771021482411342778565658911796970956858643600157383622132881191361827656300134056480853598420874655771650830867255707539164365894195301353681541464233129048908495953664237496054851813487637316651318411999140983540402208493107881781351097478263344096674385340604725889157690763254508630455930886065878168494126755397646680700118476199891883609439084117850726278799783441511734756088139686141751417911761794794947481687162613268129239392126714381880675418451658348738401656676237281899298390884000282608909024811582455948844222634541947418822121464519461552451514368971677688795732548523875915040402914348576018976296244083870860498579773806622843541700828697599515474821211936342762045887947699236356736187685230149277983870435729392169832379727707305409591468319144059343111545383111429086493113604664328783007211789293044362612419941782010457662311007033520360451694403285628084501683328156652888665347445475971686614057726815618680010546895894591577180879627196015907411206844549181430437577439119858500939747763669881515727893590377655776457250219168374102445072607843043399910974421901651542935642592184212818202671733481839995605132081550689479776206112104639336678885415036902438266846306925494727602893389951365709767055959907665285095431523318402846570187824815309486479283057997247225290192356744823472273852233310405340276848747241802093579878920387392227576558116888824073199441873964581196957359436903977836438339053466780504364006216234920806090190509748316328242864901888387503544251736550551587369360501395286169040068953856317987508516279643280664476434815003956623747895391324760752731900779858074677368883000942341125941719588325037353771344572053436231697131398937784295065801411642241164917279127905913237587526873740933625331045607983423802741027882618758147528542855521628993948819934871991609030649324691093559248230328661780240027742072607646207241789347598737939059662719253560570590305465819635494405960373318533932751627766977886942445413742896166558583484403959608199844511028407641943672128322725136299033626558064935238132412952792313194231844950837588515670294422402026079843286718077961670370001961611050327677961082623947786995729773966128505951416417385526710386618183447647822114393382635840835974056357548338967394492298450148185020874852023311577974640243953661939136467922440636443459683236603035879162092296120106524464362215644580580186164124827724246565729410717662097803258743477835685402868957250410724975780840913440652663917477155752726697917927222819754512156158390906738356940797634376834181728904436010517404249287363539922166776581593054172136764124845402170643540367843030209994714305422329097297209237787412098743776715045516912850083779570006189986937795537177721281253603173431191946563080883338475419349022773834593267134270455453774854108944632024093278974388470206366108830877378489675218651168124517939066318453094857550184559433127983202259103482347284321367447428389923070685745594729356219679066056029635643817026886846525255181764493484143165272819042659317033714919970341875088468677843868903741839857648076796029017858701987926105230881953583584569450810062282534693325041509192041506894253320259209215815220938023516032361899911159433006264429072722580876917261954511752045763377839388644711142660830884611020250894053550290641378403558790347631401001615505493573905980294327204856115612869173617839977657963120244614859456617700008523235460192299667318097876628258535871319633974779662207471847188068476208877941944726716098098294454774416127858679586112261524521716862401311471611053414776837985838914272031484539778907381534269726631783269457556694337011850913522611677564410835766629383158821586548088794853356839663457684998138162580840722157487414122340983468599827913564083483024549879886322380425700859819328795680766730167133171447485982379109613213567018978283740926267238211872556564476748379441971149736927822198249830529658711286645804206947153695682201112708958413812760203212853278770281914198046609035117750096866680131059083162399599156066829811320441970984904557739103214670370947916245646195175141214705793596589060611943974973758541441500010980380616488215557361973640848115127915627427217543440773217800576699002413638284230355720084343455487109509318761839181569400706997524038330930289866186688311119235382467421846957943662457144266573132767453849444319681679918609579519254306151479310196204346355529131210574777554967178577809749670687136603608887947727906083885138227803112217030524715198539342717446334171372122900595109999510755674375313466146869947604875296539263093005222925275129284967396258615722872742020549691530494243968682524620386735464383213908876801113557807270535672270070388292925084896312158704801224558537746441984574071103883749496349464621493962316068881249277544912867267014485890495998191611502044402952690169971575105026819628198856658255719711463167175356763225811676340741418041826590344452036170691044656779066269596041692695223808968066441246346158951385064608462632738602657520109028919490732138668381906701360571855153803417240296969557648535286145996551825511499238652863220444407593954361971158445571189036241524542381179630500265389886858328464267221748289360525214394328678901009107687305916138037495095285496551368727778614835476665531163012000670632593884912483933647295541802976665898340316602162788375991383348623937267980868481354054021110670487625313296692612424966313232859945442002060481581677731887274118406024723601059043308723198496675550428294690148877288421029198309981425402869381902012324327006984274132461445450566247150775379184044350877951272751708715250855577295830679422883743119126170441763085059677045797658529342418484643434799344294835092724637374050279826332480034941587138473601347390122333587726772982954679559969643829595947168779656603711590520517013809787176141904770725639957506185514054839942420119314604375279391591070941187438463666195827081119181488396492080351468313498077281127670019692597964575150501025077150400897101634612432461710200418855837667755401912775787181533445920885444267251829312936925448157009352665931564537219808739060139570707425962953609314926810089828161365493844447651444487284930823494991652261522393492362971080567646368356528375555286792365441344172732682746895518019828724944808954143394135997159606351858099999429260224972928233647175728985291546252997906846218876623538098874090079302684484793744250642397430546132724158989487533052499271909313164851351588529143674393725665024332187154749866192400408357687119711273828428585330202452449671989758939354964842671446335909839535851730444281108505052429990701845101547958981196230377631088004490068205467513313099356621735050400889597780732483957659922038172823767964692842380622127110531145757143629361714012310885014626383937335512265295548181124246588979182829921824117293856922039270465252057746454971860109570865335922730618734225867867745055248348948930617398677095721627089362042321879717198377022421547490257653118725259848489408791603642160380491141213260075361630933431325668526774491851322776162621763919348028679799636516096635321467381172819310950738079906913215417003182719848875674797488432730750237520784776016194010715438157481421264969298716145350666575840984030979618199729553044171324200205552361881390592966940451898044190716646366633013630523999363450254066448562672257131103738957193114069958891033493240627106303717503165966681297597065234403255613903939643737421234560575991187084612211700084737696375893725259387616812796752257560822867125240427923614065177439144526357076479753699746529903394581761267778364232780426962524493427866705216109451647598751947630958988431433187987895718922191035387622440785499415097119988108180254106453847197757595197112909061000115072642864578715244615014465592689690713552504467901313874045399063962905551104455325527269619710065181360171450019646707846078847712391022732606084603611354895506845775740201210629511706514440254747164815962178745060601590751045282477101328205598410640478414027935861078972577517832905365012574564090595565868032993434281313674040263099376254873704571057660833597494684987291090581982137954171994786422454911586242487163919819427359338719388995603661935915736267954906892993817575593892383394678911907642602137705765686206085731842483716860037301866621601031802413843389181663490194304903788723784433914985108423157280760727084221966499457178272816050075613611547288209013091317793289125108185914456645701872128383736274513621967363406752978491841484094325325643461834076338482255662557750300107471119538502761634662873937221593436478840104118377722569034044807784790984914468947900896620735604620129624583036761986970963576547905242976574239158103553280193224094265010473145898377342284212075878601622604784097927435759696739351357112989861930153374203553541776765350987933882228184888136920372410082965353238980313019133216960704539931901203135065362704150457785140056327253443977336330700672253084909958887994858471004654542399366379765955266496376145868285840743369894561679553574550436779365955747979482348165797347013135411904904688171325892133681769609174646634752261443428264367431483050188648523095343060871056933247079338401993252960958086938166953919051901891502735331343152875830898745236990020937445668168719507210221530611011255492538395709512692463197853856079417646585181645772063911122792789097979952771053341179532539224424674915775662030231534402901926762621300236399390399888969600412356894101716228899700556950606784529068722217821739820152244527686047005626967965493447860879545401028124717762279455332076596649573737627550867490746146770560171007336546603954282620176525081985224513086808535526203700607399636728162644594939887663584697906187755267232396378801998552305851119667291723156471283150006631051632262531401211908191399485622810030053124204144330076249837899571345695166535943648807050193744864727455405178821472008284249308276314464034105068460451220110415537695292731728075846324392358876140274044658571198406029737755257443101220242800128688999339242649323017500281287541535573696288021899042817075381453520753317889165488407618072845516389609124171595091961209425517726722249168519376677659163310959490686264940540957235826488464790699781243442698182146226686276210019345719858113260124681366041316301230493874852037691907702383901643056266722718113589699996031980363750861509896564341033622368814483465759532705348161232398380678207183789079917963973223868706289393937001134174571554995759354564059746445201174520483729450363763766252513216816721713338285255985380536871441061297534000920770525920782563478295524907236996368406239529186634837726817678555828266743882162484115311840854901960895550538932374776983192450059878403601543931454582910203502633239912766008378951945697380885876905089623672083124976590787576575542242080042110272609669749685673034807538095522408612417209743600025671163209604829024152948344430195265177331836023318522300931544572903343531776693519572843359977639039215998639786401603682762943548334884420193463884310477945072198946740854741656384933776972633177792495646683582654853608779153106801022653051859731545270960838154762076585890160661185766512906984499306274979707283982286776229076899372068653424860547298330602504631830699139798157691163878056002461527602978249392649849931313870733505949576927768912368403662973813751774426179046992549114739632501129631675653096472720080953039616220099827320189341134830844432740375616115141558782445729209028476184630974372262476497527457226523878808529285142065080655000115143874170250999857102230774695050241117959671369944556908893576242701617536363465906449534284452859392931633193651825536951012853384010048149866863718083385397678792082383626821848198059004596409042211460365734815520586729112554380356556969686251827156315719494536238287433416116690313303876540518935458359901170749918812952716061511784039524083780873434855257177365237116205223130615207508869974717487093515385733860472118300599405969310714288270254821717030522574926965728998075123564793002581262663557457870388629532397400132616190079370725198713924211622834992433925298925420689150844626178520629871161673144296325244450033595530199554893354575528597826929156265236872862208029869945727944784642644264684083148131395111828269582835404805113772502281854895467757203534308550621433040085882032628091138773946788812361541503620479564058609249877732559456180255681741458746859897379426106810974792746177374445917445189248400846599656744667779175881707874846285452978603763618053585334486627960618183199803860229403954190517940259936181517521500134670388753952586062242312205657324182422368533230481985401183611000526285736514418264800724830913165731015695021479457058876484271716180593231721799678899340008916365650594397199965802587643981755821567215990814179354086727963754095851896494291828866680546963076324313402702701620799704849467301116021512019024184424197024158575527967108612253078614276029725451408025550042230903737101865529392516533833097079411130423605128814673291767477211810637315634438444521079528328413445600794215062155050111684814092551985387587366705849276096000929442166919245840595355272697685033313060615516794332180960610324804411258980169741218807385644275650995575667512611263797324847268357043737349713028853296112833779603008463040641537863151153033227094495602065430862452146531754455581886557824738786153771607209853114236533369330341173559009758233479947869330263867015234342556779528764551272783446714771194142939799761505229956353119651898883211374495426741988032317222782278150578712117020742301930368090357822929702283499658587272723548006240252051006930167049434905804441742792938060427542306688989151847074154702052980371293394367164746184724127500979505552513890866002195396779255503183286844840822663440498639699508518619373500592748251363644281421756518735471894945117854404973996007596873568357095257242360714244313411183117502026387006752647222309614049939456877557358875328050519754775121978435881165379655533394229113528832026942695992487498246178127469869819948456165484908713823238066321503190575222652172723032132575113248679690023329316071875823030118841219932129360176735921456380278710348326670688542383004304866892726449519094622497900994088698626539085693694613593598885333542792551511572889928453942637120560862545077220098319442025077570004222593348867041610594291681160856653206900238457079627139718433834828518316092033389850010799043390619049523902802763966772938407435848884460836228385590453382638571250985943038453960929110338675071650958943832532747469547311742599072150440984270257833652369676741010961319722032306176870068648827459917615587829795134692191871365503675339026517966817621515097832512835903815673969051721282883662769933124673753067870477592511133612176874244029806966998376732567930081727582090767663195803224306901790841143407024057255341388192093239814873786593442355702794919814314402016712874821322798492146522355486221351119255601172572275134152107477989862421084333096798726752238342881287327417419343260408669045005661996000975050590620618157251694867879732364404252035983538907184248722878539561369139575651844161802225692305858399506806852446253502036804451777821106898988499847749252427765220776531583896098070286391948098493888261924249464078265082242513392707603169486484209673902947593213203017282244214235072021916608837985348094660412510276653997233893524174607333364785377566908137056752451810656252833049554107356593541637715301829074550453270312615814425814628657035248239617773344126432346410227817225339517052169574706484815569262607909664278462193651355110822582094789636179921044894198174869605766411129557773265534157571958259842256422070804941218916418506804345783008819471784252520275944826022156071323234371440205688053917203083517487368873760851964188179114725921806773200518509789455479836944549313909398148128702209065357748550028599428092007154005368292556690910112403704386974208740377312060153954217093520383851978662275387238468675901482943814536860290172744207460182383734345626484882523651270454484171831023909499984203941601464794504729993794331837662502142826010421301079083015719072721389825398266854969347270228914876918986945686735086785654675543219141405474833878016936941747115904445889796262655456508143219881990677903425984831703416705156643831625476267198628565762566908800478378359529073489164661071519174234963031808366826578051089556897292245278719900854462489818765432379580568550847783542564827811719241129663912694841849273288427527631827836602054429584552835089294931480161680396406616179534845761690847531924241606273528596400167375489911839028277763776654655454299454223209560177172812984167325117106433482832422436045042948819562038314432822777121198817705381281465740168503454747186080686579167978522036659646196666472347457279125484269241455693524998800361279463200671064513560918025925918583908529285084318300050675266976856154941081766162576472490702596251322490405345183752830158123202576733060333976397509169174924900840596101908788863249168688953887342424926581967704585056405624367265754240107893237394407981308801202313898349539878863456699625114935366738783496102797070017569519792199669711461435456960056851104259531842363606191920794534989130649268101911125840703141717690414775747938482503057209065041566834122581568050148081147856410680551811631931772760725900048859173695921883253858510940290754531962051684348939594832226516551655385478005598524567725292945021624224342849962720489344714349410195826730783800662015805358644563935407545119863943405072295109175206778602109719405145131596838940180203492730677254379034652984242473764582668254292633832741334646951999303268283408567499217143579809709068638767945202463980223602897072936412316755315049528202944513863360788876691123531568784700612866920489602794330574528065643592095363461073607057989373643251566684170199299003752409132517527377400519579088385783548295483075571952890376119621041742212128156030605680158933859236894420516361698234163416568578851730579771847766323397841088280383539188484542467924309127233532512268706406451559762045670653865420471702351470017806718928794129389180244276929461445365165086028664286057045277141409536611256340569822198164835882218033690392034133970742254610293482911710559262990455896934108292689479117036661868366939026748065737905948234150177031209280163528899110004947296218951241066897882088607881720252821554634880299073817498725798163752180084422777267359655397706378536650835400102989852057313988643531273590807112997985242042345708922393145745990027509974265626421609108450066016554426816724865939793980607835357127224999488790033142140291591563908233764537317133459652366817456120042742612117666748149407627443885236022936353743687381017114927555178830215622582777920607484298126899574228364198856429376549448547634651893222136563693138884924754719667595079243362463079397738520661425994009102862160673309832997804184690921277590669543508559887853250060973483018519801851579238019778294996026058639615495057525607744729123678336459311041363604613806952258199207861994256721254300052126553694163087454137308807711771928094764085555662506704005455433618282000686895475346439198989785287430334680775871575940159490925475273393423726295749242228265677130198541531651628221517567990108242310762996792846388895198536447338097993073458993983082779541687400849901414815230185445619861361062687065466881356737373996830192250348296882472314548606674815740741779984152710724593159041155038448771112096132504194523648672737179077489202874778822962054759500027977568240721985386836770246815219831890087943930024227393662724032515639111345999333391959397056822333539849725304033208401658245509910640335653704323103508849839831135149226760458483131699311541851291189645508351306799188672440005607658969696137726375540141581518417870015763188021081451165215673168077938879127249444629996967957074141014496537789307296621985079137308140849457901488531383770138351096556540963917705802214397033532575503548830504772181942315857622052711413708119577504862262481008621225657831820101683484922339172580051561746757903432881458136970395333469962451471560217675351805964328162670991751278234447848158129089688392179613352973312833553232947536984738472232748185276761891407148995909061943004567649633031986394725147369478935325673747279994857494837280065542943078170211391280085613400072413350794257469705435189855646678138263308485573776619574386857694913874084906346708215907244661072080037609105615820378219365561406599167568990743061810292237247820203099919644460214590600681377638292523072221087988347577936518939067857765906234769683463590155919917353049331246540640852872042427225972195568468099410037308523247546250774505439247465144785691109204504461836949225728572709845507434038056599264675869202813363772169085953582880197212112317251261070911295461702018925013468176510531928874621255161531192556859609796103111208076348886556260599077948668198488233923603975940015014880274797796488549695781410632730428992039874055217117774365080738915614774322340703142025850341460403752971967845134895358805959751525213980668522522562916210514561754356167191985807170251990831843964899002132873738739603554634672315395430871411799637232692934144420050652091515634874256112779870989895467833335970333864441222977328933502097679167532850062992031606418590709702040491410977699178212790546406411222846700893378924720092910588628022117892969237170087170218488213223025689474235726676027099614941765977908229371414877704121654987126350921649282830591503224950939252674654757634137521232059881539196690211809983780186900339486412570320874333530548415131284781639373707977378266337194983421695497579838571519882358701211804150732706653196377161306730711263714054082191191032097814046401943111048464019958207768518793112739475431804437151737393079509482247723297317015451031727224227126296569931482814385677185102118700615749184384012280066398241746824188898735817898279462650549536775827357921108692238110559798557559546467544433271955272140707685291344720180490103432626773566933126033888839801184235269002166176412935590667376540712130787860557474623784245173785919900405555182821582277451453406117146451307328046286546683119535748521934592134727799824574488939466035301103736755423046468792995530974806997311231811447969526177208571448260119886035078860808930412941063349247058774965721112115343707381458640737466264812978461398703232686876406942833465809502424014932206958984774061865857427605165735407530291706451450524112840292475547290989523884915396291347084802924143021318488684737642319990058313603316783122582438094539742843556075422322107176481320260525289677975072057779482013841723742401649446261474543849342857474074139129261568695036680796687332920169188898011466412348981658201005640884403409499279303468395012052606657500907066667712019656144244322395836843540154935581302165589452330240546845660498014085059460176927621102852499780681090006687191792725617826313195825564355836170158200672900033531095711688116692876326731885637641057384238332768406418301337301377982891178315875638823618612149613844165752831985683363651434956818236251416985745991880353673121369706951482752590291310140988810697709856921449926540222504677215488716563869720181462609013265147190327902546417672848105248703270883967110549161281604331337168515905867637871139993336091097306742545417115405406126396401945874926702730903515154194375632230378778738282907426231824934417378896579033357465361154516986934144833295344974505492629944322151061555468798346892224282087480756483918154568170112150796712882649077748278232227126524960796937833620676869730278965560294153027734793729848946357749631220773187216207766930111325119641209107977981226468816306173199540243734945057902125246699744088302637026310394729174080914580097552424714535011693892234594380485528542825057892091473547650436745318512095758809768029371126595160944828042953663320063873387097784537982960528675144118702282049972495460746834529613011597031323881607490961425383000815237702751594983672352342059673661531920358405941082145815380793664827263867558551564195563088683471662889106572230238405359225112158279029960730448644881460558254489149897409464786216436370876156025341436749747363376292721442017711126522918159206938559771624121493997495159024126835852939450891911368384268087905864403879365570163136801286677163491675541481290960533539141496464847483204063612262010015286206354687525047770641134008398326956950569540999300803733011334298402260167383999332201381358116140286712525361505921692645324773988313246725855151494481441746444866199955924744920917950767152576695076796368158904720480953018506821324193983924307040166055567480598749170454321674276885483233305353321742280602581603743110868229411844775983836942672335381800689024108660785879730316938475986132207066317622420807568334051218580087215687671426056090070642672302912933919680979968162336002453124953014998533506299126184347877236459675116461318876648054112914961163718273124436664847500926808102739569362695825731531970792371990864582249219866720811015515187937745481112228102446814368959248811423797921448900684025625597790291460344809374161880929624467416369635421913908690929813137488052325201443637962550379560630328890401751621233216535918383553976885552056686609759659131287461948604703273589350357881410663497214338707902666762995594690082338286291743813060759712862800389276602328422122232505611066201600817768182764741070082594927235720248327216317169749640856760239013301670083562835597585026535673390452944671560058918097954678521049618288169570179152300978999921591835413207032520983851878556246357077846298102518857673969950657682874805967146618455781343537462969116202032477143636890493118579014476056160203357893353619561622797153670397826885670816500080572178445787562296788262889495802372995105038489859528756585439679138587353469335245162106092306902217247058242425245165191447377501729660126375154994748512912222496108749079256077582459643021084117795635859555465370676926756069914011749952260217518513790050527817621002854249072252162653226169381189986591508877917248525454795991584085912894526031947828547425986150864801232453378626755371983457184933577822861709707975655875974726835196350883592675461505671428495071903151997675051835280875393854691359027604498875141434038752429825123327178945613193742329691208909526759410206298885775295368954969695760659697821902919964611318093081266023469369172656984374364150421261787571168662484646659083431153411610434321371491799867645042710706276242493634210578290236057957841275787522032540263911644821591125395309248313460522066233100457460602710783909769879923169830585042226140559583346098471053260138525264545459092885896765002522048869478637080082324721637027107253119995318243268082157909106594660650557801329360166094017233120806734019245376445452767775275062391854869697270319791665107719758606483304314900656941132222246049100627579262282560153133231156985640698517360169713995408023647973558610133366940568175762094805585116655372665954080143464808625759988256708604268176110400998551972114495705415471945267181940013497041236681368419124014079578294417113597645582678610780118511774465769729304110093007598596209781372805043327251042971494203602875986203945147780784268829333985384861631291034667717574474281408836251164146078790659395719557898923118344547709485973029013127678001633558282583083091341533098046888149115636101294236498691489916706986125823737675312486397821017365881976248425370610929869298462130346679483084473921702042786949972055718716871755260465074532736216173148175823876892512582803771803794497236457553196814505222040997479208075980989720835803320363328198788315834363311180886367781943499024741389537997423607576200512417584256486241673205588658812368137854060407210602501175363261283641201944501696769902782039840946125123008854103241437654669421350249766291066238345004479713669202519494133714497301392041430441306805157485028728641396595284701844761513588067265463513476528516249583289390509530809242332523156663270082758835259236817731499495453385253172309456212993361325664738616133305864795919036772649403339705271616885798433253778109594898027745675453746301595579787965048729691839261645930472842084283554669783914604443067891768877521851912272773881311052631844406977109833827730875979614729505248855025648315677576142176885152751475235431854022250538348316285256928079089113270940845964152385796678189606504978777800165277314496831692627914783962999923191261632078877226674399305433515899822351399289227551024376361203066666092060038105051023784081367808907409280686540582510798682063976918763965180048583306080274653435582930282919126456077699974930858730322485019759442903546306654397217111677289216288603802089750914652822115004753383085754105628943415905846592869780845370969466838773239892454202653803417018559652182528636034054333895332030088505469481555998886438941926286048676501025223425021117921726768798512060096596754612820629890039235341151803487175686246663061646926122132026561742508939000652108244646935779426007216244487933300207657275037861038641861590611055910116262351764897513508580338325578240815263447243690036522095664624601417059278422620722908155861906377100838715321115307489009265740772961466235294578462315760356506879114363702977156586812359667575234373189095678318622321098383942436339703374539088480827251917818999105484101198278801135986898981026740984426015706879298415189192367489771758566862180049114058301146715759145940322822394074025315917754937323001925809308025016224113804183458570482687931625967920595299483179540447093836171906304250066000592367668879040737993796169705406324070952412653431277233555510693289578901958251066368282155644566585091809643139270458163054743460859872164013055552036125181850656121629239690239547799899782806550512310617271509383740239296170916345764908784889309398024755907019373676625724438872121467375028587483648437951666628691801288983361848539624562218299242049049668604619050165707605102675897570779089010198462404442194336733389654916717460748398483813420161111255918066884969469769797718009509680218153344467125320393443324810590113988046259299205663401922428486775986384565847998433519692554017726846248936414428800565201558142074579268619065183131421759740739077794552660934311754121724817683255865581356557830252644004986749510673960294110668190509294943177569977394976275869601749853178304579983033154217920222850063170304910204409468838283619847638156701441044985558303525010405704477590546685364167817054892262332691346632377858111763872628192458727420781846623550548177510418780081600325645980443292419440517730719872522346904249769538804089008230966992334368472402684923886637780937412970055873712060506134665327226535410772001709063520910392158870004112420487129209313984557997889531464459304352636088308215666048453923948292403048855944911752400590466088795991916159393495452544178138485737198647053597464053706937039749483136426872747053581913534487510166155474385158336014792278646182850903131625923873166645009577624344174838611072965739102962203374719162507902803848492823447241993579774808563722946859238506913010835734698211477068284450251888203895124284583083219171053842393766070416472676953664018945316397615880297312462593554152462541497465205581898652832824805886462988567776446993137440564016620295486556098981770044349418923471107262538588408986469740414109461883328792008860452001120920077310435200436378145572191746308585564497757036804400157969150410090699201304763172122349064247264549396667631948130124303368423140788669005682523965416839006320300807003575441973514969555726867431300109581990711871409165198500309698152335633454342092439026437534253412478899022585261299446067925178087139737570619596005340407634345790288442585003105557456171456460478433724240532027233257561626273613411510253762398262459566922525915405196024781873847666753631435414375097040686778930658060891047053162330499272813883974217621757638854003311181917679430515428851826910566630979806997219612222206201938467645424755684935800947312348652715678916787889728838736702033109332525721274476587473642022146668654400804238988817626230780809700703155626450452505375121765640192515813042297971579992934253313573640305793200023828196905055401896259975359980534187937651686548041558997747220334210031263119776794178010790683857116981497244329546829299600883514515775030880785446514137159068457421781087775128047677848990333153844119512954547819382473748232433280515824979995787443191306206784263290658412105272622124486476947909040949782946169103410314867097263236317150090655631515696011934857271702718008579050235781715289993766515524353560907533088375922357620184985750254022597952735071204365692347255076252494594975537514473813211296559059581152693016001403321041782740620959129118986883436851249137291464133372144372205292006214879057482644135741274981246846762748602518539630181317171026336505780198208523087500040930654443189318015600939324837195646672350657951488831522270347354831750915069582924943305709552741699613515482290997804513785009166748843262794079401586742684772589860328555356343313431787893502155359742683346626333931945835590230306435866799516450650223797495677572760842594262370940856663408699162470037222147146803052932328452905635663592587923788620252494800098578850969431694270325040048022678612567499254226841576195934654288698801204651390476822693468554959322359675875541410716290022121900485318281928865826881468028582718439139207170706870769851062378806293858430450625948558239756189628390666144698324789462176404485624782989045172838987828922002825169403112882827581145239834998342476993238756288988885160367066851284237299998821580108812059957252386093833915346367421006481555131468855506955428040687922702195030879953922610391259723580943753701399623018679879392588016136335965517346897074677541372493787224588312838908933912068221921285486487051531697158131235923697021628251600579676931413444566495236598728516566328112139625792661063733815410758799169484962297826393833061060357978263656239879625425445091659133766332549885634644816041074546668998084298423962785557443269480568078618067211442322121943237849111417928882222690857469807209676936110348180356074630577530698859588472606430268833598403833264679893106896919516823039538245594518584829162884405974037282289003528556557060873273955091643301017820937244012693998960126646050307531241393138785416098277515451602218175506413836254014859659487378705295642969282886512533371611341141069291475559500657793409808583831506133871647585607476890475389520037823332502507726910229236884202244261991181516091913128079416556133078199900119209387025035381966414816325767591700621211424573019226495277499893224116818321408675681855473232623649603413579793762712726114103887353183067100131502728957282385178636608212275894216404424188132375136102404990092158377365023950963831687126669945265510097257822424645009918584394868487505879708658227606117487652032659378255365888171145569420899972237539605097863160676302999978694975569891848961704810276123568207287519103776085719833917187424268100210260594851398343529706965323985464021888066570162263299480729130114926988689978458642739518218677449625470819258328278991143729984827308414409435094240825058623481431195368444870050745662524065083392030915019795763533197776770509505623147701227879424637741717958689954378191450077024147751987849322710521705716868347226016516292517571541346829798783657519261860239707678614915399567965518857694919980883309659593774283802318544989732807515450925253278473573545084178740644013997413074291080918047300401399160105046909982757284587690226701915216005036436801173954930412946847279010353063236874618550208197288824309111837921191880058846484814158471116629840471703762948882418734178230929473589212573757265119691211329083268799317024821177061202303485307977379174593495492471946278087410420663108328560016675995219753222875866821379443119096671302847499461922370578442659738611146162929389042752880898005276620600954061246881149146143064204463751124599967940284617471433219205406109168747376359217006228438733443308431438708179204688025074804378405941900705564351447255463251174676281257343350460790018885415038832365108218661663123400623469546732073176798820194893981971819240367716145183228612262433327437449217160955415997989367661455902119165196349297507215959339799160640706621325766093855109343600413120247402811192349570243130431003208866557862361595476102412815500326468701411291186691742998910360374638602210677268241765705928444256998429064746233317877361067647313262640814101950101035085707714754163576642802379878534546162945246728007295651881850108208429596147751488504016008168835958403046208909579777395203185718140646668920191646588700315785507081320999186288258136351762353775854210382329594736194849937815781249930341606976543765248904452006422346550880660275765394057441668973155808475689855124056681433362988011515197743828494521798865907876112995320934061070340479720434318158915795199254315648163696988792464401964691598558698270849126117316201174014202257456631693011092390675552233376987559207235537525612551961220700714044015364275999788842243144622790383481388243774511590339077199778034755469332972549563083032562195636347315071492315733189485430195203932389024476609699700095732042484422753737659986210423013061135199844398632132767388111432222245144228059690173838076385348637896771266245445174097999507465306486669112101980215953135977930151531331579846374215511667325193663054804909230139466156603685527625416589587433579173607509346824517051492881429112644766260661576602042540007254409484243504689944410374907150050100572416986739428338726701355961640685386905804912629770235768771445637521219229752425965742637817502300243837551223605225492816202313221136410165845150472692099302455185586300691916949342894043760022966848946329031176914542285985213423463966146114304815820406981737804947032653636904797356621464925739743715238487082351118245595015959860318665951156590411908104272280813478496948846877831028250621947394913176560498606662576886366320574141629885090482874645361575862357699515036379885259941751292993708318167981554864416509642685789002196222752577900927119300541805798028788588916728911674183109496242261995015765146039379536572230461001666069383405735651755728968305411615027268085614878569616034956557310860059876518929439486653865567401338893210137893123205537229215568102009839257401461711977193242315822359536235107048721560269945045018072924963290676754104634673518951565700829926626893578749405574746272115192314271469793381546106509856786662013079574641605134777659211367516481113721145975907695237847590031671121006824925716374104809175169399278444163721335362372507106395528725829823206400620776254546194691953464650441386852376964286334891306963806776067752294599573985875768931556463906623683209860095187182039193245544892769757007324233245248603150594235782931945927990421708004048334024839208901864484741286345748453836991993003977348429147461560018439987089157704867737891435853374921483372033902945070042633219165345812104914012043334055676600192580906198480946146162368001774535440716691464017736847601963378792159529412705707291638358673903556283120354577902456992962029519032087872265158719689972267397185403572810090400346342290070961871876065063951050611963936003043368376243637566321053014579152165871582476369931402384187095284742028445479965918178028203196641364145026347862236703510747270208074602742593075767739796814709654327005923504786573926896006578557335131371745792567200321841175985262733961277834384805417181094954810166269214468614232400179417893461707818693461132754909548350708427343577483451033815994349055137441429784426402949576716073301448825456445311692575231232907868589987112961274610993040309848773758097583146760015021447099861922498294523021231659828367860299618723865700858811296113344796974848246278886774279556272745951420746975445714686040775404715422073698098111206998588238014168198277688800667595790929570835070341765219510223227494816797196578202773341180115103275903038521960589007608808946422549966531756167005650577163205183929930941876851179661478771126414654358882348488538534185462532533963194986321189399681168425455286679648289934800225760313299115669748027133346161267564870485619131811808912188213050228216466778496795300567374051199866773856680259121753040348027806136232455743067079214918729043948035355996640659100124674407946076121045756355536129420439678206570486038819886336014718927394833002517291358496251620661863861592684737804347378311941518788915456764464543408357252137166026029439834653967887653126576667099498976893745866962274320912647205599993611241774016885540709647932776079286725175091441001927093861420399595337349396933149295925749994671106428509068454841553227572321833465088341249307252052175467279813586243754793090712334442441847834273951418608463766160312954553381228817474196235830857512688134613919813049196718037151129013982568463464887969940823888077106647164009183778179209991574847815323845276759456047547555800469459639594235525149254228038801253428243186593825573301467466938715727817083992140805689025859122283960392485380361414856359068625645748813306850367791875878400245865947419005186439302223031796963187221012296859521372582058620728395898536892327212096701096593045187125012356243534506104089324280475952924611839343111610776857203682869046207142606416563508920829272333084788658063089707076512502308637812861560603610600929639269119631093963335154997512331301398462717236450465740628219341336120485410212519189142216740682123521301980158424100429688496455899055126013539343951949107951133533804944167043504991071765592250122285614082573511006032032149961627018259535338674554084272547241518962136387110350075873315507936803526316800588449234123432601596777733585716269704299656654724056846625519618138357820029579217547901792905961884874751586300656530091016223814702220718576392283356229484715617759908849597587553846091875168687991285239581424716025259961913200179921745562177780193099898684224352203798248871456754114596623344833225764707447175230296178124948708501187447131569199064175112111895587558471864768746252182280080374657841407432605617863179427065530929895146767412666594495913147947138230980566805286766156450197132624855576206297756980678364677422171960480764517576727391008167581560653570652562372992616442422348120290550068968240615292235691997865052871976029787316197469914173809744394184092200726892223965526120376332809276121292631127445756686483684573142236104097925091510400791174674386050667730600563435853706630877474973449278322889854223808587925393399987426897306272124811001462587968509342552490217974324703164380122891911772723870569947899743188870671331342012149794981217703528835024659776969502124066153145736470808201839824802374870787838632105062171089354462251005904695879083361152760407436287604005544917417264332866023799774224270655620500073261589450299403747602015533469040348820562493632504776726175983332126056446634485185224232866709417725289845899330944511624436664571942014918579267100883113273938467051477459649300575208481923301402812162847292778496366427492001500946057368006675146430165963873681959209486423752091804301243875156557757605797906139015800165627113768979618297443400159700795038627742183991266348435480329928696611390956959199601614250237528334563737260839031187978934116185153873958701482692021259383353140644417369874311007030107328397142302204718463980962350127759906906728577814735888254455163371015703918330047894915808951437272717321225725623218429282188141121799488966669277603838660062368740272379447205807491553128348456115447572924103304771991353316256739889375979785791421357220363014327611252946755953775050333155740358746854158982402107258930258527549528967874361255380473785823030389352267103388910934918860027321665657986739827346560740739995204388973847602626637475499257099571615489774309104863329446099727347138613292329752648428162698050773412476568483451308206124533578025486470168073340761965225860207548579007615847689823708088659465461607479225206815460196646823245176435525429196838198833544356516642392480224925206140396081629463864169925961852484398999855492044662640484546704630056595402167417453430626160443682504925576560866649915775603689340063564826916103097514666587085246658016030206728536565896111259184955003791155549270651133358477609916945613258449918414369368225089589541706343735384157238156963865309049929553608744979259958360070230869218110676125635141918723619132323646795659323005707422004334741716865403845564694987060012481881724080442799067765889704856685820776050764225663583143976074140149347327436146158872156553856595268384473512630335484683692116867724110441824481072641376497907316587825388744399169712711366661775847820649461797630990928470387368971383989159880475756749887874222945815447996189372774788991653915211313190150704702717539565636805454856748319445339056029914498663681747750341278175575471215367840735200824989848498307269347660677684471531372515299822889656263748975832345262517057043172177018747251396671634926878356572488888376228754681225825855714736390321601957468120335045582612065931268549736278441169054228163605667243420381719143030953272657469618453939339041157295578941019849243003699228447800796111575983449311748194231855523486155450716642467748144483265497597620532756037002737611183386200567579767675902534384000876195143601656010601067940735512833266214825657683840749775352240250021884710807591051984733217082980274525580837285647899820921408245847235931691147828880111890454236713673458734298988395397375749247514454179821820274320310714145149474010034559865029583578910948621343545591370285224381922304282138177776681140137548530972387845939463030578053923906688513544079567719231743774564376655500327880287426269090303296110211387372643678302055366174715113524562757890757814424992649404054900302052982383143139272133715736936951370751689157950389550478330747268763203308503881303154244324726683828962464853309477878614608757188761752848237274993556166912519422296723773372206978522872200835288831859631510511932011230316503189225872443680343301358189317681805787367303505623921431219910433699212450047976991409586252496608489985181229792014606097454382560090824427703046811550804620207321974120350115411407774832850656708781744849224683858328993073190012999314425290600539663708796048780965248175054050255799113638575713966005483827863738128123014182824014048152715403125038912512271106917715332106505178715431746192667196444812889389831799302834368596617006789737926047963905337565241952541214017593451574702516093985082405780459462623687654401158490141301648310741874633207075000150941637192106315874084040884328363115128776640964741671062622333152796072645457760797544006675903790645073474564473628041845980485675698062735569007899698405601176653732410497760152268012626510864178879975693214817305574616227264406564106613268940804724842340079905470864802885035141778140594770912113985711953189853986414167409618176569735630928951658314593210986582747856139853767238356735468785488545651242235262425855311050410282629441770058211616454732024050448768043061630899795571232232115387807165634699708356266407958151526262951530749201633940374347744799400878521158849232349283168662608480254467889753187914690931347350203652262214786801149415606580608947473394434257460890634833703119001648590551866964223422380106592706328568671629981532997468034925147324552471052865453098585497221488673397649759605227964370126003968203194392593002532949390778079941610474435106278188515269041776401239273340606818982209484390744795985023454040416930129026608630740328967268479269171993485510795369010405314136421187670928353553370994933344693806845579124424993212929610065361980013612844285053969895758951984989448911239003124566875106156010563386820823096445800447432926456792035187794274369728632599660939349687870259682379889367633755700678177497231054385064517718134832074082409089413982109479672170536212839295006184667229378211187558036145571401970772550777519560615627858318123877620249163936045914183848188212891507779607507241799124195315362294257941356373372865947861505946293308114505138466961979090963767417851900394329342890957818690353969680673417959894545779883924766094580646729094106560353931798801997373163451534642814349187186545040439538986898598479080850943637973530713531918728453004369063199511980955993251317008670271568562496297133307595249944901097829401632960016701793736892311878413271962130326360341684724927311576977543818823666747407517769151207067996664398699674184135073115793309283501969775227061926908198044155200213648321753526838655640144228526237426086875014298854932672993094538589774999123438802813586501657236020979005993852975357400085651548630263918670842549705561808895354636873219526746961521589210503205146606029663635940519590160669022609122174162433026792367411949565864421643655575372903436061518289237155973429500169753986287431066185201325908400952437451005024877349979196725428445783395323939018037730904666295345439929112116067753767643527750346764018965611325821013519111857352226031647995375561035446784879198267469891572320611260857513960384097180296311740045793562695594322159951440503258225368499165201219587974990383717808758864915725358755940049023052023544774762038482298456769201980863338535103582721118467441571803127367014929421717589472834586411529776153444217826624921483474904890964907545373399565581580260372411258902870386827962116049369960584835510199936177984311685239674627856357121945390830346583093471510123615917784630225615035445855421619766315411853699110804688022172851862283544792298483600713596378751415156194972089170483586404420605079593536631784905219582264933139447207193656053178684270132340123299366535837703289074346119682267086212051029970952738441231221046005267984599211475591404970182387779469545727684832811650059427843598818544071548955977022130372354998676128993466002796383650559955519516520376296974143163917162123016311996218393918444893675182028059822620699280990251900385046883028887893299567401876587575494039865665833650084644306347997479457315905374649453276779465345667048955304628629814250815494047360600453699257206324681175521437781610797694077224809859569978810767359115859204233316527097847545058976986231993934928034588547617595111607735844363628627387869368961260878042894984240518550924968605192320061321715088486177999170895646054220638962649122020418844908628685757101280504514002172937328688535131671396775353567201636997839043192305881122793799663177414655293762286496441944926919893687614240053008819689313203012862272228377377432112651366407806112112865701102268118212763853726772316550651249132428544126704176507956362647378842713883296135207800315050921056811639383957356989827279917117830097863899352204866585623210441016721100791242861243260813489010965964588821882482442677745135148806023742592001803625701490760930390033631531853042959760313311668818695144450916238012511839419680148058980741224612945254703950393981162676298355080663335860418522979670030723799556437158324873558719951419076276159463548119855370009742540943441687451182391291377844019356242886093767846053169684776910656683577932077404242800926635278531099904889963825839012737514481009255696044164466290666297387691922307088166110283674797547605623462246494197888964302488128492225538828621381743741051625044642837482260870380710694250525697761408970031604006958388397825201772535684716554572647204232844404833659657570004711562431019072941410968101678247249653429009499061914256076325950291371405249581197589693990050513872139213098847655907841348618955848931906157841464951284098057674697388497042171718003775934079875664018579858292200619831055244198915583482895364609290334990431884180874418445369331381352581494545590563608524948708002852630134187083241177536128448352613036100926669449116311389166349490571088265637818176573053205590631775915611473133314991907334087673759361630561973171690037392028452763981281659592951547989401775963863785061257776520040029367121123546928969714648818346707262217032780497439315929909068326506314978006884364481731110827498697045781595377568403911698762609643415328930641548429345568989576151192712209385090729775738542240311841514235682986903531653149653009786206297753603727968735305077649343335235347118551489730883408869049640460696491001909961245480372281661431316834042956747299133524837945803009001662746859769195389298498402592651641068694683328339866042416633887928265309044632739679491022011311412397419918738765353547403012120127795708229707880808614349892677118384642941361446142556320886091612409946165582720157633939678713679081865869923984837447338836767583318013248806986529453087741667260919582051393003394287941011401135730760668365727726245966680345808697436397049848804579184951795056939450704826825140732379434553728152724263784985490255025574829824001828225577619063044587677548393081148673796264037395137780169842164091449657913659923135199712882314966330980790127542672605883345232629227298898215650282979823506067203143169390998065228779064101601867063798230934807322480964020587528080942023645471292190611518874613541302139871014778687719843113680977388659321087456712039073562666808545898045105985474202367150565434315231987640245484927931282365099085306667727556459891075456761410788041700283550245235492305413537523907190618936154805442672795616966726017376598978257102674238982214754033208442379901421800480773275534546579412317958180683225539944084059242000730874052133871762850386130939670373374509706724951068311437659929606428401586399772291315536122245981553497348780840411834513429763736971672915626738664571082236882553884180674565965820565185303251533479167632871130490004318780825628173471916520476595465441118214290063051850148516234070095849375471151465348894761545285458932665631974269790939845272007840632182066940918321102652449849752109330088272331856171438780996199602115972165581989187255560576019258913353901664075024258137968598902923823394091879957818592678236480892890952662547794282054347207121945559484176164753217727796073550002526985476370246449312780726851182426506474763983534570483523241531606739103007899737361569070427906384054848485810478245316269258742255883746347989132101736326808246845226037725589187683687482966832416625782921291669254686225900922081024341182418347184271922645437928289300636236791086970907583579049888976415491217997501535914504621829220142512510046906195673869779473990905105036880650195564282301228585003848826752424687933570058919740816691968224463473006602058266732888185813911671047868356044388599270572477342088111025762668910227030765281604695291145215018558708309542121845987710677366871434535156677858298688525772452765580211137273270446347439191399478449743502518050284844227591849159418747680830057434450853552919002691106080879505603643876197317619966118398979640301147501649011258789424414004723973441368064127655983585564650822414256301827445829965792206935499008224094465515300502938982698332529519088520946084869530194720762140600283316416270596974318459202712845360093172376541363187999430480695899136030430603461723913089932337332339299965123655178135832527080754515812456739083193864818708818892576889027230162808901078292440530445379618674589933727254312027351395318835529218384990513773136183031104250673296788928397203483497609479833689944780039227346599001528507938226773153864939137291190709656097970326549702856623834076357596057576818153631230171843578091631937565305147716035368544669850293730442994106216380683316671303454771582924086464470276876413686967352570294679910293127713679138383256888616037089016697892601174980331534466558483959155505421850621203057859001875212178303011198751273100233949525048828615573686208258186649658166117857298176615721552503796656217152564166017047918106430167303104051542172521596697825650819051624387315795630843177722220691163710188463337209891212233261402215804809971214842500157087131218891264731491340857405112487853252496110965826570047532584011520831104965960472907307024658439851688789614492990374793655596651496377643382295269944439382988826493460723597485060067130548509180239353157900456530221328776176146587383113168717561947509932564808389621561597570899448200310392139530457518599579359356169820015722395514056901938588749245272009591229314808935923919246755161391426120518347730869683959279893299942181814628520068696415985201750334690377575865089984105020996770358432895904505254420108349275285209927381153710380028539797226780126357903135951540255392324613535729864565816084247667717972523845049007378723769458231953799026053106484428427336671433946615084139866756754329082065313097516018361918573460395061131438919406995735427721833874866760252146927347275108616365198402707685091495132511215661493021989817172737384965053998179422483712060001192122707149799203849676236407288653998439160941231713709963792200692457023491573347221977077806742987015293607516115417424183729052440370293639712918503721688083678370964717764083975410794178582795061949963271112384499391707730590997015910101817178006499780675073756952345421045023649458156666901379646259010373507720731955070734780213923895134769909267950232867229249642714082728703464516931846578044835664712997274154841992196869867387887584336117862147697005708416236705646457938465363287341467584924685614318945143681835592527684842339784141509582991259760434343601671740410967112623856107497178005748173521684913257907252013358221900625952270877985431333771358143746901549710357508911540438829453056902985531286829219299864656826109884277023298050254525814029317416748469747533556430621351754540044845388888131406840614560872978720719395982970711296829626119276116307884059335600148062767728600159022401724828306028871431825637083889422640330638146315967619482942788844202784175626599036062992540129600261100631187192717568069495450419608803454630925947852932105177121711462075087707345279207681461781517884504713665221860514516205219444062412872610351490067320045198672071009155988401533196855237842821807238502451433430336957149583460846634104399742033642524215191052345395059110931906505904140710766805396728252221162517718602494680909651242376910656005289854855031454392837320291982846786390231316933838665930230034176703663910471829310143670840746536081506866165953450592510039964061819769448708818399629779724895204706814465408764578736688260084674753017620025331286715941499823413997788734908909450579798162398928112806126966440324932487070666383610843725146478633464875964097830110283411368280865215690673046239758817673352492813519246970567124003463347595308381904026451070641041216047720462316048512347031965366807711333092786257302250779191957642876009641087045036912657880975689560563073800841123440711725590063030108648016929203488449966518868263583909912227361236590352327557757616731361150180602874329140746003654997243756954133121063714091908294511053902225690215803743877487537530325470243345493939808523953078661071053711478531617136629779503375101578031346330942860637002745254817470195581468243934997170749042450610599933520917480308586777305727085737651678940220330582087416925874902805073488690970264559092176442791541534134686122783824244951328193209371011337833147978486999362963845320267673847988943399352674748722119422415125232564020512915025085573321154932183289542671475468410668527240849607772710886744246763842896617107747403786500166686679447444494474696302582978146746195550969587979158329823492749300389269465521891718843379327768173959527069116588842999550530718242422416429899241552182398261861067905520490596394813069579724986364669490406535523930175700362142671894551619844386308318007601310856463686022744487048934039286709642956486678700072291064850899785454786650603832413711332841802495214599573915964885036783887226003068811274765686658241250599391197835285028106143027044564062812331348228182695036521311382975747705236216523956823469610516830737421320971970203209317829385505045858294747595718303393455031169629030453237220439430562173697712491420810280372270354726961717238948568572881432568671269835558239493527471392417702698286130681244909338069654685592324678268266542545044393993347468725524260888449028457861914308522962174171207137646548068693799804596286278763524407839443841364565431864661437267961297185321212618438264432782931364884514869433806485210066274124426034192835498414831687615293222689023077651865383901517413594016543206480670249713529962399507752106159078742295710821320674987073971455028816755409931658013613530154217704341318494176696733278983645534741069318101444471807991725380024624136531337147189140344165116171245937326664686931225889452443967352406743227116593253043868877673517383032606353902650877534498718164361176846558295831283663254968724523014833114494193607994460489786626271908152745559070333069937638866968993654857289819631035517326516573206500916930054438558916461776911968689937673793587974231937155053851475839384073262702394303872850075318964651177620726707507509574246965439188496118626017333060008297044310283501052841603198379479403787972830164930311565231179019447352793008172738405238991515280011654131409801112625961211191433628956434287652133064081120001702412672548795352476867949435834722386113541644537801472792639917129373900753892775632729207237278030127043316630045212038405174074493933102469525990522290014940475692618624306864530338256221045119360130161361391621746381079759135164286711707864015827097800409078749739160542744333843767510234269816827278813642449265164306448360511242263402330355700227603166846485414552632643977258433803533170989254585752076978412374846551790403241555742805157237626357535781225935249226299746777399682374217163635885221047937294111361653482479534002921412245870584042760232696232265364085504046280362403584099360682192701400812259105931264859404285261522328704894120896456401288365156076964222158679170417947952487664216193458196274569862800359173329512955075863964148658272784585009618752616124455501210362248559574678564319530333604619271846918778764577420887523058226842855284757111750808194868820564065456655256851425307939077224650644667152906367300030392266998357722653511453085644239307017598784229315911967185102440591868567540605288667486049811669521287343079040270772097101526651121653184117622426352114695048811303624922118829940348868207176021497827454059567236010110855156414528638522867305071394457260293779818247355524531209748863189540189937370196833462509680687360455116146386010185584345463131501804577905000507476608866528035532585428166478368211455195922655433692130015238589341215666161903835512424970314910503635902539085503813842378987196845248871285140912206967962832484074967955441978454574270383542752039925626757922668395797987688001738668450362978404768028561378492622660232392329417777410837380653276475188918232217414514075833253527492445343973271224269331131012364355333166820866754824692015140406416816112522017770412576516085613609055636099473309530952495267939766032944655397884408382737227403483142458543503190507313292765838337255489671438112428226417875907256343206733735356471409162572054560200893457893851326186582372956135487755935890729238408141995875493578447919821923519615226876419022697567652197425622184361609680758729482820014450528829732733232450164691976670799494970418958795746790927352459852421282480776246965947757625921600956542039380912823768154722734160787736325985435046548099682899828117959383359093988863463008912341230448861990123272256071556033239498990525826572743440632930026322463317652521710867322577434648647699385244758249512711923371998860116023947511553979881167345158672828369958086178568240615884635740632921000460482546959113043036464372606940751814351317160103445641336882156962021265166204125177587671916254591653871196081338782025718852119294881248126559129481888783129062560311310800277825462916688547500467001479592718691072435213553357978731099324136673843916193813054890401088693524787485629655372535550399326125042771735081059172900419229504890774390781668235188297571226808004582382014283248117946144374736069251065818552086112110841447001594365068570197786492313194208650971633346321593276800475679131990312719824672450822295225144821592148845881051932494436421134573923786723080064408536236893411153629623953665716032655467115256469197414865441829676171827916002744007263533605732538855843803657576962014991872022898082858122258874136713750014568920990908074570537092251471791823178393436181982078344651434541615134355749041142899076199101726879612194595605583469674892356229710495247869522243834254297042054055499939692955212012855114444365211912778354446988919931653640290234072951250096727973925945739713745886570634903419795822512400377627486698967639897316924696435022841253204340131871578680532828499644897269941842435237949032182495942522980747687387676769163282768112415934385503779104321380870143709456366824158620819449298812954952375867558128569408554244952279469029943327921143904138874802569207469624246834091270987680103172562493838711930211979733302551715555706490226221640248024179597467590622199804684653477034863545837219324951502627219690222897150857948516505603609059343851041408119268541040922312877809052786242621906770301133543465846804511609854029313109836489356207115838753485496278797845863498277551726080552247370761835166114241730608814824296830023276294584912686583686199234726484956524651834380210274097219129304918006842480759556837004244631228844022294838661174850617618647920306553156727120742033379181498738173147383820851210187378460810885030797098526106511304928281955081308793224208890057520022646871187549525723091775493081704491333952144916086498488800359177708854187258149474072896186067048527329854836704263251280757648543616734180284267869501371089295093187851388918670269426255162137605622527111288582115601629282857919171973739186275168590039646859551564020647646290725570514210645190391404805135862222699943522583544752365221781134960173088816889241451450883842324887715742227948984312892072300440443862051315815927363084788238341149451657555467273104552659645284589994153407236055572072496351735010053082421521387490999557615750618185679447394515713641190625269430648019186639367420334803705749132360816991286403458070521120869941633646810337055589191827225616326079428209870512080283189830762680547019059265313328759746225591148208110801850971844364158268103771233624327581159303607259765541339810514805163333957627314386445409166742820796946622206652820997249232240042503306837530806294100724656261139944068505795470253954315154744012230477035346064190792541440596746036718831983953486389506129350818110053041030241094879913487380716184555421426047361875329139121404633572327242580385662840713778528881667933427172237897286412206515115372886970324186096846440365521619876843485683469060079454360864092142569376679536949770722885286539193616325925869554236915543240417992844321154803453223177423610008137349705002656620570632605718447833370023853582697556212658785117833912782853654672595164072130908458893809511476420520492784409819688834143943733765141186719008831740947436696020319136378658134449474096608888855622955138387208021457495915879923423382266028787133433624994161612946747530309665197254892816900736890213628076441142381066770612525399242976462401555429713424848193325002482863010387464924492174631019484073871011721869998849543544474664845112438261876721359657901697315315176666801665382479257365996204341201434081188913719825911520297570093775421510030507717211623355844510538462507100508075017900683874794566301704963641922871261640391856442673463296230555701263718154198866277320688374754457407221927463406901315380772040686899157269383493119648630839628135536465056482539926374432834767064621676703977141353642812466580606984083631980783585908828111268720022599358715047577041060734699071997993221020474455475477547431911062704234964303494502155996246609797569731349252657166235838025265832660608473795492382927050939666370171536832939255394804369066566218590813669104485349661932401968960894003128348707544925483667419039847546194472466547706418923898602385998269351896381531922498262211912509107123825029526503080146604096423171942523786931222249047813009892182203029757577863312347309658973934671319888889734207817335811837157786425729700065064816386400602602020201038226591390823021385224230862015147277186762884562133229572229233457539621824990863156746518906852119878225746059183621082188732275347143916032342377775857722697244731499175400326159402464876538684135069656695560936605836749191300358063324221594780493670473159124747788626791854665138521760723235397222360939790794061853821478218563505517419110466622829975220745127450052866060854762950373318169903580213542163697570932927996543877509172687743930294689531026782272184987887640901102501092472448890975694811574967426732751873228260818543123180694978400440979343936532826037841106851493869955873492194977577717744888876891545812961570405974240907044035773820181535858586059916093927824971073368778012235027645704521605904668006523435940798387363209875331809444170856320018323902498349622812499767828506576477373790548060714164120136468977695142802191787620741170834841290947970504026734270539945171123912178104775857157178741844245403096212973860270917798283138291423401493450454871033426251274405563128390385644363131994386972726854067068282362270201953947691010823186024730774370375401749902732929136090422310633785876113089087220290369457002088551902257807240507053199801558731800922116894205532232975570628957350108166179379725727276841064797907036697549912081236915610037277046571049508936943527601441626088502103822105956823149549164998498243252179311562278102071136373138491889105225276218054553995810252827390690739622945446073409145293229166444520070813596986193149908359610284421878286971621534568785905780557079070930886528418800960451900022224559343075284388213825009659338229021626584715274928881029703535352872760763209568531403985226167012957208312836686595612847043765106509945673781942342331279328144287083454522902947597932848413992943546418065328299278916986672554422651363009176421236461250563676039809192808925757563319451015410693117760207866618781533083187581027245050112721820281076549146614603163367060868974116414750046529632095193698188207233873156382233261303313579273737292006162846865202152085180105047062356944376319358916001933312030041016017460793513999620596441526409435909068267921098765439742092731650732742599501135156481668938644765749566491062311573938245008015456227704661662695981661333874902898010966741091533357490658846114041329374500770121024688866391422918859794116087343436191961495128902792554984263810474922665458027024178369545299082730247593342675188867439930754964555591615309495780581618324076634974672168376807273910220129652831856179606667662014254837398057980874647971833968685190839003367347719952151690624808855703724952449100203943794498055227087939511285644930532890912518153197483374446438009720416552782203703340022598465149807936628795009049481294666510396973602955794535973945917312368113045386276211248913956404179059759627051735202606777516889394046615265288745767011735677970214136643685259927819692559108448061100847702140268609486728257629104853940804931758581378251513212850116710774351397913799592078859585617985146366488571811503945623161236230696585034191232515932390885385879845013307697792924184406041007760700960758223729016850134827382118002730277989086467379367787348408826351450804042116301631826844365054293763328621649780547218256053623156477693982661049729914450377279065046803194330341102132119367565896494894095093137143453548975482727950805649302123802817542066991959835314246666605215781892333293920037426241617125202164522137254895380913928417865905381079096139911100893691587029716152097536420926915528663535295217636622613936450254667688024804748909074953820360140865492368684317288436582412158946470784858486053324988027356324174031401771854971143997744147038592687119039890986486342599609057223013240051240477494905319808035342546367920874893051720691395781497883783040436314605938818044894418474350684516580752692807792001740282904535253954060814811120425966153026507694106569067820944634149336018721442396386927674678245412105187313874352996786298185124570622904637171486439593426884898172732876417922853019231913348160722027510359552599038673271153240902123826237589020066283068485144952540145649745847163075898014314195930980882128938940351819576599564339635091476024900798443018994711382372759740021250789666321040144621838086235225866103977390151849167377036442421616746040837204381665507706556685324822535598726461495518546118620667937736480069686073930928291111331510793135465240343916282728759295605700502614649519286054911416847555527930186343224538989985712386411213424321961802389536929400670918436241706830285041616018078946694896874022422537923782893344200486966676995624945533120773879801905505488030243374600442829667076432763182730268842678987990675784765512675354363947703665191725398002872383824053254023431256188379105015168406528155732020284713767485991865143684486376927505304377882670294155059028805337985643684105282415098314849077537478466232924601215507388579337826339924184037190078626516030959702303392672383146965740678627443745894250640041809336603885741110651832737362931054523059000334012286380249692148166139802135886555845542473483568261682132942777410707097556604743315854508852935597577419444348947692166223198101797667789023113276882567208261563754674297276540147679242796956420244998118706539448898288437157331150176790463306167669998531044083957718711143021260839584427244748322497091658076016476549776127294054730118576643823087048458128522596912200167377067377943512348359269927249709291386285650880023501204330172752662905515527159254159671782220602165102828643109071102254626590807082170235180352805292437879682748163242068955411429648918181504877087624980464397790876255475542546251647193447098240676018491409927757142487026722133097028109594647711551381050766000573722810282676288005167735888010754556981610069508648559901006001597888173567961157791081321639243372179210815407487402903364191090085703138785595621844298770392744981438757602208466155603606035554452774636605144432552394100821184954771442655874544108825965338211341444609862855349443067609415129756575563471876576182801074767916648997766677367491387242920154364907977129234923466000642255123554283759211013876379365190983560906404023204421348163197076076098157447787644790252867205283202154682373054271614510817176432640122025910735928660349332291105791751649040291152314674989143752036328746338135294460976560972959811194954283792454286880645386899502242638417674761839563129315722305820749964426995772355113839062675277523754430751351454233183721720041597020286595538527404548088490601820194699237002875378685636121980784338063484867064905783574578706929754428630757745395773562451442145271859147920354623975954534241995242083596802049080269240753662252836194157970254947818600933316648600835157522431845911239742703299198969169052069358611942619325918675166568952276615301426500679933999277725046308911957232936647856634940452671411592402829904359606512832032066410939688501689798592002694630604281924922868445219156510663753139194019273293822448414145945640358915536110283440767478984673111564248608844379290528584940213285849316396768361930199020964497740820177929906301669643244778122033461292557954856805367281835473284401947165599808381395642863041201386053262179096469669626858200449450220436410816973617706339980072229953813202895699737969814263023590510226059262614581664010357075261357864192479353993754862046962533793767626819898389649014757768262817555219003323553047909240963360460541438837686013292543078510274763021340487441995085524656220671689017151134223306017634330173571742353371490472140554053162974235163312119773440161696118860091677525695922664512049879719467084575493807224177536553811869995954488331358301930820727122031072440817091386782710003588446377282793328706358666710492994669386226976911570516109114165530026675824241399093303476187775629458768477456621196172887130414212318298920283147584179406174519773810383220732102675511515436202568362052842460487818313346293718949660937269954985651403728272175305048349923424700629388541210404019945466811056527323621578981611251077543096872271650722883863642782744999755817799469449862093228585395327096115273474593963282452442115923479743083341687872689628472010457177488173327024657539298746973129210308287496642469429600905022269541810624495287087471058116108218967587999370474011954220352117842569178155652045114468317473927508138296986214969093377758343960851677768947209196499706925600847563646737436051938508220122058914271834530320128778942443336568916469670116121566159315820809822904354190277501549128726158609499722843429133654375286725257504843193744872228259062528427064964934466909113568580075529156637316243654420790621581784889027865846523087953572941959762808465396152410667451538990452661461851441824715115900656260849043479761369071253061533381852867193540674469554346350283079409815719561204759906764882986851962405530449867255760539405093905502562081703669169575280008351197344841377516641857896615793494190786775256292852682511362133892315756517871751032142520162573332936974103973452370747339920011617384244915069972514521865373699102329164383565129022008353164083144518881328077275232732966628763319520202022856745940769182610442595235805333358407187325529202870472725654312022333778504028160021496300560731225491394095796426290203968525844431329969234170437838278799701214056339569444002709515088851193422937936421423034777880645751254261356944473697957818634658358758837616458538707391371494391934123680323680428730412988235710965648626404597846008529307629255465980934774865291235887060090339150350013061023944421874443574910177409440504036832456835627238819259639518855375982631741296338146892369641531949460792239214184801800107072815039594066286310255501161653710765168208782472603916246632849907653406018955439849258587214559846192051548703445180593788402298041132769655768212107788078899842893248642784510571846978835608312056861150696495432793517411110963243334564191338879764623039934698099442962804384293689396176136669003955584302815007657561147506153347519349699141438135066975000356214141926597365848161136285938148082431175239931767691398816691475747525062609130131042536899588920729513368786985525602553803541317738023508311508369517743311088083731909182264898952059784593424345947436735982619459405412133965936388373145331760468061153160229751436051798692116424323688308357193685189083555128214152233540617307723726068098401548678569270670985663029302773141541378606381130565747204598213211704451728915796094943751145340413422437606661995183465466198479601153207536466766619017201719441693294304872346097682658264195537925875713609282698302334133750382609130160918646768050566268822778585671855868973855777333131961964082620418550576683120146519719763919817407015308836952635278519848877305082065151087361035638357015986190829646310864130587426921781784514651028833683666065015830140087576326428077287348230522337768588350415500238284021520103809680348173397301920489175173475124725281637192597423197634923120303162728040047463917108328396755648082955588781065529955640059570523589104408314875037360763869102626850210487817132011110720442916115500479417009604711369041251720130045457027747220776287005308510758393628979976392330927702895919302086387995529917249196316118437592763645230397961152108577754710760651742627467067954148704069109372605028708006349224696469050219883647334898501019042535148889667421274546247968906526354920871651271155689655028636495305213105577409887380459162566946692815866105787512973512477300479208563243349529684441092768201513636813867565604214586183352738673783767925655312748338987937682935518910428892508009976835599875926900497867295670506262384286542727562194179479406197791935854159453322519754927726162646405957225023617337677587561632334358083337482586865091492085643274673701555317717571318430791838704518507306588833890550561499395747195160367089027150865489424335102376138849885761796716220224700936615848327213016387822975700882809043605406949345795136968096503182423473082536306941262050478652864210487032408342756987306184872800382430552556141642067146334284537264305228062292341357914421127770835993002286830558467802129066403414361788178024506180194641112246520131405172306275430020963488163102313269415490761280866096279032510324568209138713810337231168065569837572258407946750018816342997480758614322742448779815339162265373821085668095544252491008642149527717996734018867395569581319456381886916594757318461358950956158837623419587413695390434248224694522169750262524121376190876566696398536753194238745706840973882362466563568028802016866579222627551721442989800896682456121683842604318794924705395577785193071606293407317277751207796784363823268819772886690865609867883397181375567488709232622080364581021918999294007336956042108865051263674330241834769322033571951893346634248440371218763640350278781147338103047342013938162858365002620602729365948717685593804026125772139704258050399020570830269631331908234363023489472712214204428322372253964668990123569552337782346898550694082065075756459663138868514652908042637289711679105574099520913949949483546598938635264191958170869858718504757039397028054429425848589799081430088917559800415309923278709584381394995083754767340376627235852716830817677347650502800478719913689181375139204307637850364547246522593207313352683124645685728631491586116504247479217187629568093741238176093720581671751758425520687393415784701125693006184059210239932418138660281901023586065592273659685993382266096972736683020160206711201023360428080744521286962706758463611877503125270482560688687491848799293769138888938375246731314847497694664991702999390619800672864020754742923467090647016791975960857335908237047443552934273662793603256361266611983425145091984908833380698179178032429503437039192312702810164250386322989760648662250028251632960668502183397034633961318501280680470723107135426372871928833025135064932151602971659639125601095577551409888608909373116618596310466492598033579132668130167659252190532503887728296403427138893453462283685789648160848282611169414064956715066927151657863854806830858995468691393349476100740145578769893427802330512289312228355809709631685065111754402178335056708499005612427257804133359548841100229116597830743563992239587211526026547310542176065251281496737938266531856657487514919775372249210756795544329690961836554368413939096855932570862515956487279445212365163618051837475542862297809453686518963694592685670985683265449953390857154810537781856339583464532738835108640212738121851001550632864202142745166785456914349999282143826564639513738300766384794505601689648696916560472961974113847598308116836345925454096258286963478325933793248159116501679665414931588506600328806837190143180078851142916067351312911377524887170170027494291804069721274555459416401765403663202067969731405350816790779877073529873795526848254470742188921656585022348726524088285747999670720971302895646163646028862819288346823659928624860898505964327578396989086299998311864887870521169619156266837960154279480729876880972847837987258233247315290231871097441947429905888311056472697706983397348065667394411009163026422237501956754467254315367978176889595303880672272644898139167970735110968995481571882044738631842592582315068741535703524239261867639926781376880856743039542620304055265225163536171492830973462681392796149656207724478757046519917145992038911962888366932883499624232415422135057627790032559636572873591659606342320193201967129248634395955430497420498031949721715093961269950142197411550336943733173159358759939295190513296616478443536503165841007931361935143664686868687538090748498630423127514681853927322330781641771145907030559441017737433224753998962757900634227839952310980370841669165207152858961177178238577471331818915163543486640105897433050205171626014628543189931295383926288957466306034630491507297995619039105673012736131067291784259448899753219840630427750940408392521361701329934000922118320763245844626544941161672136524358955132333108320405003585540830890026974379687460065870608518584965000399980101690889834684162243097007023322177498478230114271536093652853574336283575503674376330901345821902316195607818920480645379636748149061767169349394688162697257932504431265278473021508202771525856210233875492377797354070091044941075756433165929406034419806865460835382936828451086223161080672927466378149830994421744090417991930346440597982027202691340556283774511147623193472404614038797222256513289870400344311895470279853594919496562970202410810329441720378732591183509833418999459558552330290985851310288176195266559015812464026875157146212233450374475419267745349133364920181678157543208885810163333057528561968713523846283833602005589262360922574725000416495554551235274535027334544693084486543147713959151199479276796971528930162566265925947098951900030349329921069873145012388550818266600341222674590521717272029029640988983656318657799387615517851628716978151056586889777864184233213736319762871272341689629669189922642480918397704380775896175749050663786430588755711950204111073513156645212761972735235940771964266902511627283089333076529666925988329813652163956203761937354119258159731402259510005907730600292302220245459624436501076301406927530059450394554073885347946255177484305502110806072774839017023662166503217128548057744851017883562980925651825632950352333384874962373713628864703476109088850744335026628117783201815512016340220730046252580778696134911404079025028246847736342562695809937463376146603993230272490474900839969378866672012440391535106008461759749248560679080163068948209379490117479433279984036110128601619524176992751000241393649543081057831952204932207537352541634026208796080623876742668839177435410371747650774006056392514059346428549124575100541986659561031187273851142942184107403321359164574344862025463200106298073264800119695535038564457307847707381859789184658746248646422187510141057837262491337825504167727048240601906599691961428336723082861432762705720159180619948330740466871215349175957413387750161448505418931439777115981306546065600309482511169457122710006841295528275080854720649322926227087938634854183294176924119892157098865022047928798548858851715895641165853135984560449153878776475535244954395550316155072916353226692790900269202539536859049547367277330998910380933064962022083718616424325797825804898997387688930193098836798125111641210184942061566331554058059240277270146871212030732488208957582070577514496106632365015639249495045033417146550722732968420053069665664704214431402064725322154235541354576563162663790165146448255588011867389013329975019228784330993298994954992641329923672301472563503481687114455834383771655011557450407660405680047211425550563430105186266813749960855443151533856915195753463937582739227667481607655442348126156251556434176399753823005192807961422980372721610649338417124907899791855239954390212504847861194680896701589594878467085093895952940526817836772270977339965863075963401585506537190350975451451821783459791023632268028696608628413651430872746474436092577445348752415712827455560936956940815799522331012311864052456165818661098672034095395242780530333946710788276540247941446952469995728312756869865455152370887600243734380827786793935433670914185325438222702451212456448875674801897838531847986667018897712595860856245580140456716035671196456532709738317791056055993745878777149093280406384325301451616382958355728821783787592007566418887336496923589625094802343090780140154024748451478139542513693226005786193202476702997720220981969522253244827424431377620481978148637614328353733457805822933001910618172027047708113189239442957319416501400216884424712260483589367077039081698236519363021096643785248872487993288999033077215776909633294227953587205789730080408492024483349693268478740322152710471593660868786440922617822711849994683834386741450114027093849050189429264927906273691728931750111267247084530107979754500832528731406539808313430867867902042059628409274045809234465026767582557655043839248498363937807894751897748283128403355087786594534471900025681868388335452938184498595762770499899624521645116458281845274509705318200813312037681787081855612828275657804687663353750763377466079204493137695952451840162259038122764353193015337900136605050132223681103148618445975862095102406300006736765152757752639097666739078895737637214568343025835416325092222164037628200258542592064586428440032961928372057984006974651483139898018658834415182876998984279756020064180777203332628973141947314301009008130062639985159772564436341530047315942668188730601428955941206257261956302069809041846415594159786160559610608012662654830502609729785785379555283055750038151868818928295680089245027781565055245932959138529786802789163577748538251789652825824936394432851802032705514648885904400719324152337353107597023682131375259558986132264830205267936901260117891739473679467227570917039342555527277562386983731990265966563051640234961818162794812443426306696773629268867387765144741757216435246256455246998180244243026522639480950205560507246885983236893251788629434638365966106889674840970945137539436533609245713941076401703157079199720906275441504310100187378892836265446519111407998994746947453559000892273497306297473554465356630406887383735825657633802140342806043148056473886294890731048566088730984791234664746608141171982656642490299880895568277255714424267638775617888708833786605074673330986817905657752428349169977772832250445743372917072835699094895962201222107225877323127367072832662651893841578805641633007940963345905020262446308194370745412362638829073187439013683467103103927053114354923474661162157651736313490571615651910396559523928713818403562923021484721821556838495327569782247971078313760565528926455217403058998706514902088668063484808506950764833023265532297945061661264248270294127832125287177973313576488143988763074148728848266350458420800427783443037111141594779314095270853379101548339471467212156557795231797399574425349338276303059635277960058387704147531784975654518490310652410818142061540515070830463395760237445554184730539652681308358844872024808934721744127919022811095601069945118852236394465810867409069418312172505374774931343351746752819513782707895989190523320482877190244567089775942723339752914526206251208696297485784796926464610534157054002813090044863451260827433922114183579943721224418372752418581058119505895819561950137118543500286542721276449298737134052466443680245243416919589845793285777612977316808119217328883505485596433451941472442136628316973012422850913153173369145863364180352637812592483063165373311613690868889468662677401492445372113656349174750900999403353252027547798063054783731321668107534208290962318940128231025497600130162692794665138578673987713306906437561476348523526585975478634462712978139012351591468751306523649741737293062895639440658100499827191097712813498744221818176284907366840471203409924760417280867850673428165468682309597112406930088470641174924481472161070568773165465058651884611363315868253601461129672908673412328800513371262624762604506856660709813596954874001389050404931724532185355995938179477576836524459341738174276374965854901779073975915112581358865659865550048488783191191360681476934894472197140123794987541699614955471263593531073822314699202475510745937423703812063582914287425211642591027829334334091873385851487997432179911880101600476684532198455351928613672380340247891278733676880444604284326585363478895044341001781067190910397348193852010883473459114513665740614594801990366206549157937366554665853681809634087930240445432136488027692595713539489745750925187682107109819906873053029846468478025499538776379158741917475571594947823134846672466372299944849251671381897157622045011790395766767625634563318443954976699535159022414608390312155391205321363154045460691054283051779792704697009769818640037328272690029514039983260091759916234052056001020820524811049863587130750255774486317210460543240494510861095661204768239463677338063513893065962114178216432773406804497839423592754530787822288284545087108601748934997756587449113113117784976403664217976366860521954780314078112070907440502698437173503698749612519514833827801224833160597909056156815838608867707959040389512826672164510435096918841912764376985154829295377725371368839999198164759281384307678608524391527453321390168796432569875233820008296509613288997532865419379572685756144307450295522429051756637435467311535432112702604705963167972663067285046735227780889378833538708295317217808210576681614852969396705415652869009735115857493449733779291683047124266808632466329138962266934487994875682868838550659761945406052483453100335065132832413167080896849656718981246824215203212003571042445162248970124968331095345892888325414984299429855191732831984066906445133117902985718985529572633898982455562186530719625253205253467558101557668067041213973300245669371848005174257083432281945494619516483147336320076613836426671122113796057838631839240311952775695295617718892033985899812952835701748255832504397514510370443438667731183097620729679222186264987237191216143929755964216380544598099081002733994851336457163142698084472473064656717136530427799077687973118427967679199562351060791708332269902300059833598378883277530366628073231286623932227730001254128534313399516695923659943701256682622344305828636302351158155678753038639961724351827688897411897112871947032060884265246726629057773451965359625794772850287232350823769866778940130421243276459506991572500652771622686618593686191311232511650184644129778420078882607921193242253699468116529512997310488070553905980878347338423956906935924357418219797174184036042984904726289299835790359819406072957958361851837839086954491181856018041798296589359332989630867535022959447107424400213375906132195504296929117461606591514426102682978606542279737685841616893484222134083101941961148726791752152136882746703674520729654205262276402760891728056226128861173468356547263688605695650498515028232652693448309672095185043955741714986278198864117530547650802691287526792761916152878944819176647845167482747643551950634903963152969495391322664353273408791341680798224312447902266694690690477181615475901049828689943261720059823376235283401708594828825228031781129975152672324079968559172852259150886121655947410448661226853128464446937496235690307933501811006221251161690875175981841597372570115860181578229205753916857333866694631062776197878861007795859839961793840391015626359914609441939646962626650027235602682429249595307470547291270891538755280956196231380700978699639701312455864158823106649325875812384044168810629990454831565222446332081234467039832618170214624579597617948723844776056148792238457986274960087152129764005990860170352737715812241819751034400838780762201884418257376380383700586489361611111560974933314399264057236868891053758508606819010796600488287903775686365758016451870728821325658254413664276667454784819720857508554649675494840127297450427827247072188059746621795458727100538402516755697743997295735946007190248612835313960817865638552041980382938184543936312894206614075381543329094457643328404207937060096929353146440704225646670453190408532043102268944961980620577350751707849768094286266207601009233163480388355243549825898720800493494087058432454180682839644712111549438564726870985159325093603966997210973846468850061290604360018511259438550326752159783510304683160459453476969350122697072840405781205237833569968015850086827538155632608663163564396672861380841637218380425157167094686333718100505282771227549971687723616462064390759655159515762291446400169377665462302710183616060807642400399598163291402110065412441828084677153738582557775748545586304852063606500195702932471679783914631431315443996745807463447140298223463372802041296253551067043635676515817741743050866976916107916085026468679640903966321318443626304945963862391459457839515835023590027541140167266441408699500849216629374389698080647341865757408167493611336544153613865476454330051145325096987211513678968284208101286923249256243548853758628760374266884094859668056733948849194274640615001155025989207407249296308843727345229615538449311690227506415371258649890629569568732333897705403146505149480597005588148577902336337735500232330615872735310717764321955096162780520201686778910918686245913615692337276475454004368158953701763290428460506135287000331289766397952237249279298342227116503032546639587503998590832592373649845070727149994545603660444413512599607684862426432943740514107323652516056549346670153484082880416267202298025453596597590242255954629700809072492940638976389731200695686386040835695649981410998141687309661801780619976920703126976200554993802373155304446105907690487770104346238722790992152742400215105843764266449564527606515295321188282646136617135011729787337714987777870570779969570038817044229049991922470827090429299282223971980071909636545397047566462226632013330876057805220030215697443723353083571609721963820395522041460603722190993511348596951458218755689739531265370527636358103572247248430564021236060375959680322095285799092542651815645075597666178787131860834582944284260246248502946030955182704869198822343540044875815510322955947943735620888788102453935735977688519587795765049060299834769947826277811453540459743646569685536221464493968436761605973758144960865299373953392950362708479626689959121776669991647618869637124891973551368467143196700327391850163423438360048566288332893693822529016163786580149510011354464838228932802049893633211508221451572819289849335703210644710414919478748250670069903020279712202006346417646580814080090947396906683221269134595854652354867028253229631168479004280667799675446987081919790959419082263164925418501945653009150151568174532080995251106019899939342741905647442254633018820945094963525040346454763695689762946979054482278036291504419513719452838846769383339999183143786603588606430255084668775820339868041430165716085005842839989828830873177241112835151877935786463316108282278003327426788424864471728200923765040270176606944436676785921552475066224319815857328036379704611664902603548191444591779207536432361673363916602248581959634213144330392149166840334360881949400759689849404395156621811638313125477453219819209485728364185232074940301205890266833993576828439953383557566724324431823170721559044308899814849899388232933163276001731757620001376644140541059011649669341067224979262368200453349573368349573346396756397199320137634992329758121145067263928587689115806347896757159676182420072564877889344113243306356475422209240825192150397116651858831896129175484778050609503662508258787462886514301463648596761427172872817152912771021077933329685487933192595715568012546879756340418118279351703885731640899971213709885359274193808224110337909620146898086238964871560588679676827449895267378876646204382529958903615306901992551018954149366530918938813550030544468141348052916324662966138169085665217277441790475044318273284420643639377873307257965720246693681463484623643704438248647697095788842625928021022307764885052226536000088683331267265059292309189986666529351732208488419095881322064020591430373709080653429712732028899109356868424901112411390433226167916575949966176002409861268010298740748368579046398569740810260508779918190813486976036360328533099038610948549536517983096931934751506281698703736130966702842689136720210406005055138764526327430467900834762401197337663335100734627358740398363556927512893771297264681717623297774323149361907873439278310152867417811780996202136988001878820289235654367377134689164833369477036065161875818564471262328320414239078036699624751132285885615829787684449874497719905702338596301242062056717864100846519636946163189521138728790801011378345927450842021197085329640482749620172487151929035545583132243008617053343213938997894220502472979247263082996273300853658476143161797048062197359026263290318431668696158188027925914140308167515981743626854211655664284154172737452187311875784739181592962895990624354721208722463381795904662932579007349950867667343277214884681023589578145661110573577887785350774350027607266929862978959484637822926134009211439021200462463646174276770050989040134787938109120786908950882044440362433533684442337200949471993070442982367811569585841116082013879754078456356844147887131588831187500274171593009997493049827688682506976290811119707714181907233421564563778438551019494530432883805814604729032728661546413458189510544750778008624856052384536822830899974906504992652128887320769718960502854742440824017366466105490463868364508309638834150000451160635376773577181859974861987885940742017062098239239591943357291873768567592648591966753407239177366156626617159321960028784277126160038015505959654098996464283802128730193197315081495824836982001684272462689397631459421363993279856598394781517266729265669214908868247334965616098504538777124165042567085206393512032564578616359875394467192651636963899710239981149319161816856175795302469110066576795729847668660286126844299836959962049298862977025129729311508690021656690378616575096457753695883549273304552502959541639434917592591457349241371460644714615298355049610881935759096897135357170987946713053673394229523187755713220298361648999619202393447315158465938325833007194514145015481559300477118069003780046963628078104577123497501842456243949546094012112386793572351207317453960561396409903938609649825531751860415815866716948514022816439672089930456185002066155264098847956581331659778703549654809967680059032482828245635037259323287217996155619051816078378795734425829249182254044176257450616185821672503166599476626155605355351307946124340119440726222103285863945504062965256141623043786059241501771658114441355278764805702463408941273481432254227581829828894834974993803019155909785288705816241769318253295966121711758836852789146185747663020887083755946686148639768571275580698535121624878229149744528438177373450077407442222949867932538348117671375053637356367117847039641829592113871934105675071905845574610560529399349897421101393532866402350344634557355762019889728561978511209669888324548341302883155346724960852697893629428100546253163523936941013930839895109135999224194687675091786141664869022767384258658724174549084342114990787711226140325390366351360835010010732382497216251697141937648932525437258813377723841371649931703030486976202453736680667858407382644593881462325997992737171938031578967112585421566458782234499858171279391518339648044037247024345559329208033647541730732100341249233747597667610115433044712294419032789432552235446164846225798688259447681320653684283009883101610936244020795352440012908993228390326324216605612485714297853732776162919412723222038571597067817041716746021678229748989968258337168949624937912971500084929117176136943279158082400417732474700843189505715320655504766585996431463028536914589142092656971391734342622553352892924362177843877813597753618982193636960423556364183808773268657329842498125426010742228614360770800264633355333134016727179704096381960455591193344377182828911304546646718412160010569232515160452919045970329487480417528770153037459797069382341833826413229308087022292164525521195654677401978885506379925355658508627553765956223379251470106994474444429841366012864447870725080242106708568408906847043870739075677808777680680654658556892085496250632204888505287242619714776942510541219443647960914453176756690910616300102677290777374776431614316158778145842007034964876174296080533384374571025537295528980861411204041432262214580925333533615236326810434623096989287890946021657743977104920249672225594616947445313159432910327078514599797449429615033146522095321071513104267106341244589727544494318057613400740115781609241579403399884670556300663843449146059326795030518186796111568168195933715373705343546116772691970261813804944057902924454534690152103534127247400791310691267438040229202241225274879750002607510591856610066376335743896898861624796252342313520532850569109408086994080083353873153865631115998212192550189795159580257420248541585881385913922384295779866013769121623289184855450295241946624532444637617981778914177745036812257360747529959149094981024155755408493118173016382900957794702904297361640807487312346977312159508265854340074097457430049578849896781981324486720343928030944335229201877199135747218754251763827370992612701133612991730008223745477347095033519840395969211744432141218841911680444245844360320282227521610586044168054968225324502525702085069419841096898240950909136846959299901452233756063149753221149632855370835055093909367133942549373460250501967849114993123338052786711508840014801221023485033948322304900625670623745844358070164146136801664444753371037306966727641144559854247584534809043689540075632857146883570053334659548267986835120317668436167165974118795774156255165893832285876765211789571246864632784248844277150398856271319233729144657205973598239167783521013471151071579291529067057131785764309070419596798419986704041657831704001262884402129588143411216973815941910088861089294419815164022941643085991999360798955102924114594701236974033269927629166459363177985351479483994772788232408625529759476351655055677301607431522740544056106328341178477576917375986890698897544282651625305880904189955834921629742943088786054619567168679479377909815594507669182595676503819766733788406075992478700403104413061052317749756933989316993334439282812972026734887647818181215296572055895289540637998282692675555673366499929776426087863472696244086762906514430251475157934293019294557870747137092392094268449841992400006140699703981302049689877958176654864650945127780757828048184776971648748539205668990118463449313196705188569569977380702060707233716324802978676242935710748940110989808076754831987096684933628780108718458309759923803118078805136332350380698674184100986499600311761546160899395564176751525939176025123108117826272945559415030368169930682830985286451943569470356931674441840384408533273009271349633833669615109022836077734570649417774906996407532558215080669906523888251440314873384013538414027290915714544402215204477781520521042368993312372346558448824536535564484291211478564375049850957658613314785464790063019983072928921942653013474497178286875069735323849538512597803107875440134735086321691508725773524157444235706960838545794589053763079595234585104004124388682611904000723625327923722723484079101725130477412340954729806694624933165174384003761574176362870952975875750185116932241544031002240028154483211516646181280513798597238890496885813454666868874599132654607001435148339011710346291740415725783886628192610233764799226578388711017861304263831983373848806229574729258160071764459793382556429770425248009095829769035200597007894590567029215028346248225305259139264867714759679261926874824071593645412141373603192848832669441801802982423112989236073062837826469876427956691627725814069603393477165090264614718888764527280908143521708542640647475995119544980492893524288896697988546126346009800472015286774603899941063388231801171814418734208899472341271384384000758911862797130796581469212476325559655292454458020468946555289347116488470997920850409865532398175916136036858551775452175029872594434294308121442022682158171860154290217321167225065533961601224305243136373170183318682750775018045363066716916762120444253550619998987338162302000299345474625111114078055903499306169134585934851378492018087738460263352406664959470574691392108257626045973081458875983087524078228502729113632822494866408040668128720810787021160344187739728557361836108539063049044584125455149212732461778032498611120313675247254166632049414577568295773227017887688530064121762588956992056127787067588553810942815380351420053011951604072317525301219635394373603845120739494125139918246646584860956187591315394418090845409418051089567940238106099588444070875502049755500228792803485504093755208997120961891550201649940893655290034286155856872143040892205563362569718131560689254588567701271998172215432107825872554359987464144578357718893780891054990169712559538159913317244364561703603353740890825534719929217433344729570075589310046767380017694761016435597540738082483138095183329916136586558448300692210582619244047384648903592662609048443305690700237765138898709689341028235230190268289648382798124407813308935349138511942023400882288585613586366990977648923436458828935974651044519061298158959546358832546788353382293770233806330229293353299782193184963405171553660826816339576157776620952199196863685040619940421790766760163140145334597019017876635065979667163921768609598813273666016654179583847036328294278160546922625964322295592214309145699877378272132868408741114391756989449641802701926316965222520540670643232941822927492848235222701671343270792056337012971520519465589248206813918864357332344344072284251663979461630719896278034052331311808730678146734825742504980513304187291381884477646526555770193055755128542063420411765374947146450406820475155752729562596428035014667174198038151397190065373443186305532126705726463116162769236021629838858660981841999518163222360305912879953165583766424356040443761136200416339144758692496231134056553568682312706106389500475104113643703115069799367352632485056443829618632257452006015115013517298064311168501295571866983893804332887380447757686108822602229699003493688620150597491092238079065269301038536532718400075002511056294017793963825910825944072249203763023143652820354183824635361952763212268409926919039961643669685239281192127135294196506381716674987964296534082165101979511971535337546327281628418748149161543558785685786715843168889513454642138714027909895778604999101453521410649200565198900330203944628074258303000107270078619764294767677250799875586209166206108063067578586031349148416877416933901295934488891307294954565736065199084905194943561104625601152833357971791890891412304062865009820916789570273067805316552151942924670033711373561504831114326785088540805713056648881365788329201108408867061176498602724310668667773559809453327424127875965586908031350617180619579791763619337976915037266465262653765845842923949028044985402202820427820222445937777847051778866363431244951924802099633972262111316580192680039371728623746445260668024825796390953889363145690152652947669906754783268280916068338439931325407350226035218276829378351091476769053591791923309432386596857456889982240804216110633987982305127599314778794453101259945350286908194808304065522179923657096316525081824741044292929204768135561645163845881773925107699575534287947216041791777629413075618134472384418766015637253676957311775128964576312106135816047140195748952847152318405562788071689871639261063584630325722832902270734713676356546019733092768377384272132125145725679678925313722143456922447982573206086372092933020652607040992558057687670297676440767242634449417165366073693167543817044455499449808186471839755807247469677194288241459031154023578213189939157738301855939147772505905845507022053435843066192858527250205937205129780624274308397335238786227284537617346389160965372932309269954474378628184547578513804043381750647391674588874717554601866471685150313879246281856874774638058733594397019754181436351074443099516429760771553540087970606992962291109531839567405414072603240498621976103262305607261021829510747521256172494730588412999134240813642219656170766725797244548725480831850602799735953522893386611606988078926483781764419052560383769140373642845787776055412660517421872327051372217029954413071759500866613071961187973551567928034244889688388290584888625715491826630222152642402317836586377616473888732688869447764151718917667496620457282059964821511858746909164221960204007787082258498512709429880182968740392197569167631347690149514090535065091986301585906757443779362945426802422994459219339979923007984888721848543923843903414980480424891869644751649650074693722058881652226480842310292969519708284997698527654937684054530166034993801821955305113847626869904060978186975877115845070102405202851421618320137956953313039955745255960159474139349505244726755029059009156098909530157924261214521632915430941941994290144659875811402477044102225644537916641236275371334102678630401478176187771521418426716771508765814837817642721831862505300398805122778777171901395368974625110891204307794742344941953131241238931139136571337020823217756341157761590101329683477692329810817091432791488989343828937910805737353636065536547776943326576648557132406810086047273205296435367505234883440344690190175974333917283698560524261278265139625266502165745808278951799216260880622764556499788654798697760005590275768642179106507089800214503737699711685410200820782355903424572965288423276913061754927840930331337511900393067195864884979935676074677633896968407363762384561669581647429899443319375813367700447844829762894145714659648346009428244128363843039746829006457570663853973184869975947245285463953283134452887241021082240988222956217522723435902739709684509750346350672267062387391310185033174776383844935296362135957619099893215121178341656706241575105138702417577656450867837589417912703043492057007954839902150258291175618862278688989213010180595232110765910242293384371169810860917486411650835283022834895175036083094083059524638952001018147685081204579079919873847837422110567070273422948123444830384890536889624428394909079755797786744740357346747513798262020579552189374585850736444887467138311126597203366530400668388551184684436533313395823127056118841484551561740108087737866934165429149196493593903582767410865430909490402105685282618442166893794900370208049098295258699396167005527244201811545236038838004909397117747231786161156837498735549262484625970904421031358960889112052253663922657893985823575499410614704924604825171621148003247420794187065717032538259678691285170309981853249741166975660211650717749475626432969789007397625164343321575217495341866459819127291869656679279619608140609744601889684022263054248369259773449948060909125589074526233377965737469065141103715449439203109453555717803225760228981125626060491946221528233763651784692623506263805119987445459490544591407082068054417989438553502718310442053712958283901392487833295812228006627062721484833946549390506380070665977991929294475576629652081013380982861186607903088533793998659139522158297046113606328338540062800294052365870204419106011298577420284903811250015801317933313855138223687060768024560103676702952580187237571304834213000551536207188494208815966958397822979898409144972797195328818811700219795914942549502759718450551250978179507879754643456947521487829079031629780484572859766428870849817116685022524661506058867415118293769033738956447347573203786386688408421239034357309953793626445828012151826865232347277126759534354773519156884076688536490613748996996771374932676372517976925487754574884784354693359838791788550494308438899345024716807886046838543272466910994342548135484928331330525029495613538537927232275862997068818139875199937324731736618813798204139392278740718121624672051769832348072639411425229139632559846734817494975068141104305645654611050460518002596434177525623362712599567786835196124847037041751622163047864237446153014183870022362156234078340169181557499800854727650826221660479861282630580723953535394411782351954054708954810250670929477253820298116972061531902846386805380371761054749202243125824350684434377207299592152006102438892734632279374374460294094727014232725564930497906952404405206478743192157730188866956831152144611629404329657621369692966753160074439583935396478187560445862883259417814042774996483193338208870318256702671515974094526243311515647817082361565985102678181715459920173469048071944804097585569309090936237422768800613060930434917139750912174564131468452831672209569333853022525065738573916792110154174719190367415123270430999003742539278658560622608596670532982709032366258949034152858262046001639989181780916244932444468859610211375326764415672697461439190223200109552223279709508335534375322780740407281754982464084889458421063308854799321689788553705806098443405155561036453716832164008701233612041957737350770632975181987968930998423156507038726602819882510699286606631941213070524364720894049317768744882797006047368884181546416803568302736936996727213941512023927528807267617673129538594150305752922878094091310155778810547001770959275153116931298647780546697300086352890623644292848225871537532357887698772947135446903989442315377732667493180568267645023877409091632452031293121152640831781158994697788150643454981239001518245137731370922688958647200405940783232566731501494560146186769023718504959914368914985390959383823921948823613959763804081614125886111822565262917924286203362856594102549189577155574630079224544399671826658450349207015670901110903616333802892220192605298783295435764368305234401408573998031712516830597340484530330046564536595915530318902419370112614340255601018366072914238137860948693635380950959762137281219090200050924001089195075024466407322786816084585173779989210131040828505608677022502915471051771029019028605849763651291908604355206514024258930161947192631669480609704931846151239441272484880152581259897515988145601954245042697071741502463112575029617728699723894585093774871314043556422368246382248163126041482705914362989490646021689312031608765215661305385657422877121755643936949993112765499959220463719337202987170854326701785903309414371881946930029879320096503064848965690211453961820651584386029306395245897079013287195126618745990092843151104073718231961765701597177956152357497126577559954510715702125099884727092708541414820299211245121507656724089940553848678235908129122278958010725729665616386727960258656791151320731819738091370838310445272132345390999304171846666414869156825584595579765534178733954839510995817640161339768003588519601531308657028654266005641420484206731922537363725519929791022027539653258336321134122322496915945265441604922191868984199746132225010125432170216637435325309472837195453066164028139729070395914346865823049895461928136458168622522829283958592797879504489692791046165568577866158000181193674661385677999654293863560893581197262238404850643676402602269513908696413072903707833800770873433695858895991707852815625421507564889248655634928977170514144384549475832519862518683221735263120333528682128090127988661543641249034991814479012447854839776749698258593442971690272468114922331452930873419261261519785165462665053631391131997673611916639051541485893704234416408115173652543276576039023087863837184274202720628441806873497861311583007569787674856849332867325202975326295037184054472709679510986596779493085706153032484254814482921486815171449885897318422599137323344414141027452640547475158672044037463271154312626261798069422689270399886866361547913533369128060721134494426818592360156407400916826453312102404127601908721229644120566141212960294044670741000488656176638028275001016300047497970815362854190439302862983541073865829855918023676445403397465527452703894811390024051808067637110922495344674966343164254007345305637089092663444382436316359761381225086628197394233453392224128267255845099016906700751777675262692547315366296970376073971893354113341782085520733377933737751714568887357249433124520412266441743387069791790549714187116354742948637332892701448078744164624086452926520015879301371798673335614957762655703479168176076141108502985793552616559380258240186102982173452189970621260652937983545300278644251254712804620094111995482965703207048588608855484324021681651402696262467248752343637178612070435985421849475444566519187729738923743451284343453094347398987129663010499119732835521500826158396032618410273857404488734128156946134772668885168043411819395979027041053899183944694242762897943222252014864642860436334568073459626138524740418962697803767578491001881551394801743661379417652751453113738423957507753217200836918902708424924074667023483301793045635806501343118919901833619794171234229823352113857802978982530408865771998873760331375884694348198305474038802459049242881958340971801586863804564033387905733939269057982929478116426051070479797586774921137208098275091863493550111576453538771573596209946993318367631813456722726760044121468637540285276386443683943633158427044798202032240806380649206842557122451187721255659633826627789181519210842569001664881179995177214248894809709984582775550521495520933741792797138380535108270098929729790740501102505858630669534753242605707297811509931650820753915590524022669145084480676114771228755944247036861178011590866111036970924267920069716139955993643662980067534439930008685458424443654059768104747290214104323529694055785611734130333895918583823766217263608802288792560622171364526529227091236354417287974034923814169754999266598209181405162166558067450978250112150027057354887675028073217134365068533044243139449960011733033521651375724156512438885809696399685279979862294433956566654001731796553427441873364998871039726524258599356285993111547806206407412778139668786140660986176321401128505595189894098266739744446468358278852824612136618453692344885714545403219103111500224405267199474541150826209323856041832205973406066774689799902873988099074393537678308038170095792914465126962386242428832245878566017390388233225328441282952906216105561623883715748693767696427605660493653897703700492968863856731475907270246389352652292000948096312423609689379534198764881056976594246289834865997981283601521668153495400437890308113214063704753838632215391590416912726831698780149931232342119465657197875069046094999952600578565692764459403503885440662497153712630678207266298496092784115446884933740547748485985112024420378672326035906785103557406396558459094615198074562083977160654171142006233166840353370039832855937066530781802157757194976452368009184747571574580683066959747555220697283969613582996199919445711302865365757893478735341106779535403673149564683659545723327848818652963121279221262464419142980309337565578621649392270404292066470685717841397529654832816425670105392704882147089051163251135232339564827368380360902313400502612302787373314925454503404944966925604933653992595531709985131647906677095335194456192372346293005383362088814459623368827146463135638322344158330945464923844363677638094720581865038879245172573911795150324403389014332029519389490244658204100847401755306571819208737198713622778538182938748621103259464459698456040413358053559303468819856027899901855626037801139654159627152747843809488594447225647209983913639724329179312230701019510212359368179666180370133444782635036192624169115338039464608451364154604086831399428006711544272510001136712789577568784490581790737036393270250985163940497027742263659492981834010141429608447063213280403885305013343133184363147246985789978861727916171329638452008693092236738701830174054053041921735315351017746398370908081495105314428107464972165927003755716831719790314815647140021729091540226779676641689226850584462332141860507168751708870804510447838439326847849039707524721160436914873509303662254355594826460381735269995025497474711192165534018744730862397238496825179655120001429885233449212875046665524425461035749201114805532780846132447059623924153628068193641896072372115434684622117289084241880329246771507186384085482432515816316089120028093112369465337826297026369514784736886725513392518387884525375765741708631878927380363542290768940946457982864938115390392635534871410263150133578539123880479571860858005148812738061761395554892657342676170104623188150357827141954921152690006211519213490645593499043168841380577788574492657732254505455206288509357396002542453848863500309346641400855057078903439172397327596021604603628586830850429184537045046813357816404264401228736233126577921760081246896062426402545497563019577306840192383147237300191657242495657005212114898234282955695354596163027095113988184407426732062932632899407211487730173433134847183878158254127267493018779562781142243867459141506383936031302182771366270603454515525107000388064197504076795291105594982560870349233772543052979479791590067016989408803787338619649216401583479720250765463437365611267203691404944475631005959370271739199576153660496286878300346176023633811714876735006444726780130022396727558480587667671277627325168440562076217582179105340008192158871731720316278383893004702617003255386594901268657564668019300038094970946580711062254037635368876847679203763570330833022615760599739219945570744959785076752106945791482925747453969703096335487297028943057762987884747277967981538267928100881645003170558047186294801883790687452652237193205147901633770441638366591364584541349502995369259124108687413436542307823621478080466424104424619191892137158042196575837666406997418069220035732264378182679966975958599700337046589159495450360991570797420881124237436763315809035834222957116058969044485838551882636450007802169672512515470265173716526739898320980593006169852182998381731442469861436774200836352008717749119090123807917985002682177584855276684877723580409841887028329657476067009824518066214242958582242871101505205599743669375728980192359494218828407276217452919837158240518306098358918096049697114262745475517769063348147966007536018310440405353909889870089031756088074330725359054314838882647885661400309019123422617989260077245257529063495323798604024640267047679561869387835524285908682861563085734682776720084098064341132696389638823819408627555976034209443958493241213070915582068868938992715061430311234889689155390965392095172838310619924524482588469803583142766505779052264979105727914851858193574884490781754691690177992639074757210697358268581092286033970524628516748971334244988227342746134487005715691478790535425393643239537400270441312950838621515578187864701046889104934026188349211869304311028839198785472526511763853175860015985251840991455193060518946473686949340000851660859900795112150732793471038585510396819453237200438633140192814121095729067428334876150328173222711916774203948719992309237401193867079635834500783700943224233322797655775284201934527461296650250158401031478889458754812750169929412534703000610598283007089252342646770205401536934971005036577162148933354507706986907420327293691597856785737469281910115631891598167813686272363599765536335533402870423973376703880541394024290099928606248552503977074397920299033410187551869255233806339409154333633715947426855523649633783933472196247366602323305486174671830510453360606257406126990821518261257501946022026924440161223779182483760852695987161205209156270050005762987694896896253509829365319852595454672502808192518583239046209782531123239517365787983484979614572920904689923522242922067272141962847445448103846083534990196051278132510390564585082905373898283334984565449141988200938672429319071100984365520934517245174729915173898804475969931054326913698146878676911448310993814124354746326890564362725461950148488745222087324807129094601519190725676532893825791733720975071822132247145568657090413584487452361552221400873490641852671274456696818782760556573389192170922403367739962495682378392049517012990818024858405900747513289478446589559858383835338965967552153672111644616268847926550460663927177918470422522135101585874194698908762659646330208098431379647711197818414007295472441953522699692236764215307908426264400198386782507947494131410360669169314246059037697581982369167183884382679436991598823111401719261491260263135546592726426418716723462385393908073115339677025531813307396657386925135786122830042882189249210454770503446984958093477819628408205118103835388097712169874320296793260607382769324238669288326675984511659301522937282262088701185949239543706352912827423746511175451122609378596637843584228922593583358790702329818473183534496355115745077754502854384763560824258289398289892990493402178175563468771968670875648418724835054625405405037495810897868408605958772020224009955160236982140695897400221765585407631839929653228032906959596326633697193566365398337676070011649686583269359166229608919180101585687822333340685366390821814274631548273993244304514161473366085787317861859329592909853541797581493959501064568361289332216849154631604914361977382522382414126594226570746687596240245459916700670256768944907309330379902823798929516298085636672808456868888038195669218907187963406688123329054871816453534186908188056937235358880705645022015866963388409193820741963714562137589459103480378432414657588706181034205443705516321412368464618908566982566830925629215845167232166742153749876391472778176857528621665711247384979927999116912335109486802502605178172236255667463049055857505797846264058858927592418817287358260205119337762846309889287205759802877597976872000655120149933832776735216972890278973385447151460453583199127882803669412571690527933717123749931810887803277389833350864717763346022182707951210577590248958789528140231164485052412469971306714632315517699282389696718679433999601883809990026493385971296555706792937264973471883938360964363526317862453954340356362344200736894740596407710714016313464133692480112561109975455217313079331064298318104505840747811281394717983693100653114917070251233883388055779214415789805124653103744146620854862473086617143968874536853821905199807256002809666929184033152986888656317779618984688580151601640945246078441134392984292630552225861490686613246791641954812933211685581580146514279248057395331249971863181569306312038321918365102484165399251863686822310827238584967399971177863826467296599561447184805301101535193690899617013951078169497424330663656152184771666314982856302431274039050207138540270376404920016270655836395945197765949173793243669594701415860576117045525197892419971444294248153369543106517621627273936624624499034591969632796532727173934411443321225400770009675474996133860602126528105034430861871880528691369135084092572384248582227743315066239083941126231928383468148861600973466915438129225095873510110117783781219787780927909620132815713361864695272741522196043779732973300423628155369285773965690572516318648263586486215244554257694962894884800085017632148813065863260041664511519515320937090837907486340041945195300148288882378605120028694316594378006175403809882527445655101716474689821257411952591762285766271219452747594400227488196745207418203274464430303602749588337933851026244788633498613323904748567472776975582243342702884901952163181501810717521376794542078995957787478254598248112782778631243270779400407929022481494321344310505243287672381586463571490076521406819905460300349259984020186813756844309619375144544620494362187756541406827600736882726876902004855612844711674873173249336353907470930793530604837528510504562757353390414525011271117160583847551371482163035035987341283068268355050473700689324238509719632219202899638404715147822545914065016988975032637237812180648634554850939008682795384670530794310718159367451954782939076513097510749783157080963669576515863131382644382948423456918971204522220034879703288348849172779680324417767186824160465683770277118176840732191861951017418873751972519426032844330334125678758996055148958902209853465280003281361786535334035197112243415464822787998703526483890914562492058086459210737918927027567598477931025727637873470416020859987454728834641671949520037546228043205536327181502783559756092288087364963550872457144231726802007146568510765946262653452134094671665041232720478459867839750243044082673438680615672164703060316007768250036712029380165954281712608331850038769414475230109732704856482256356964083723243360679409932580849606180990396022855765451856975648091965202989964140308908066266860460085891709505194902012855565917768217334681070259834106552951484666985797540092695502234810699236253849526868857053528353771938900767577639552793343565113767760437612961890543222796793329907963105339443716111573883773904114270554124115633385995064944831818672180819817002749111682933830526095351882804829905525062503590333588974024898070182825317567189823991500851051646978493820599229874457826751585839478300980409148459118993104674235573904086286315189830539503899807030059172242796797269252399497763021192876022083519509027855279451107597750086836315207451957842380846635338098517038914631328172185210615894928237757654511807262064909193616702986053000361002661676941179127997531184734368028327525867892299298024126303148593752437320876621222218593091525300468525822422887603011272149812970637077645690291427867579247160842673990238624862875743561431387207570187646851409066088039699895075193367070887808002156642279931653066175967155930380966208231267204718971298515155786506381922923508063270526721369398339790623361492214684317823365668806021688464960687984695417450263749057217863582283883945538301779373326160983460126894301629561697707087336321928827051989051959157109815476407147095085122337330879573752394814034320062869766772233160005718057943582521016826903642975927054245176575043508309116519629396452170380837126774233884950416442884139151356639233709868796449398127158441584719062425063644203111463948740003264086028748521922325093025471910306035305679944015546110457879126470526459354847256400401579788453474387842959184875049669870804302941311757560560781311097120789825213362123238660748161704466528388852941385278451923033254146718536183530869152417725876086119030775912815178966612128659424125299732828848064887243791957512796560957670792022148693195045805535775424665289786432582601880882924958703122366664620581525873778843617159430742437017476925954188535376479326278431227341818991138694362067716408425509155129650574044060673588583984266337670740923760124520050022844550517059874447402495778343024481375720403574256052959091480509572837550391792324088150122722569067187946736204705986787523489617215296224627139995784785076606119407886521682488823706220536677098637829075335252339886555542312025132105612883407295778636127683430293596981996571471549383628636070838007144338412919743571366700172281580087004320540618439672944110575706592523354326753941981803461320398034711900212850735067783949599499494881043433882109022636050204902221049712507562233289431117091023314395315055845488752497644176507137551938174735007411542812705708633678598300770304028736634972819982783769057536420284394329090297314610070256260036897670665554087145090958066989577738375271993801680832962001047912854483432716753997542375325903215895803058346645376321572579558088242524229776315949134278965462184460462526267238187166467466774876975806477998336135785674115393708121342832621076965778310571061113299565616135362579953575403665863599908619848496560530325346127461542451123482927701353253695821022054730244117713067607014548789030973314421038676747274614826143184034286514920912894333289399483579993140125494543593148240383682558984644233089327202487983823021677493884167863357842197292964514820741385804882454556705103065592149434022757695037894784132205130347340562303742424640837290990233340091765411103384168284712694982004874288546635422153210727351277984589636654627215049417083788917116459977659625861127122930879284635929153125457228645672257384214541451627503770176548099727232674253954792455795177860601076788616040628182377809971027483627055354571153911174575225651777947385669787643901896529408880804797256184437206851560096102913911712924248572566720497239540284234938096058468899555901130575502811506052465062296451700930979931393169027379829060629113716608232658712793366171731754911592095057687060939703085257247787569683019572955067943580182968684439632104690325393042807274265370632111898945564416415553834625762892310547159959636331228355061978138373884892782907577538257415247824668027483751929939209783815351363120268017415717819172520045276661261988680541522507517664920211792451483139238194255556327393191883691955039532831143472971579316967598149131250096439693951709217271351713384586029319764933546055635140123767734948367020957785718306820624666578667834076248883493981063162642787162200566028009332813770850828888087456730364784989754547447434907791340575830475750787622604982389854391706722649203619623156597989460342672501689231960770742978443939560214665079366324740031583751005306235313796667192709515967791152537400625864536264815024177780346353220611634564165514450053095416684585669081968688648606627650339489166369004446495381068095490929620570291874464568908567036844417838230745671968875050991894337534621914668055800073923217044864332371050473238931645281388111854221618659441004463953416459870896166127543395694147484265524135399236891685373925602973020856680278216999271965312729978267864893092287482526884621236299529437481914016656662548363576610136812127537954284064529011398836765822141407812043463621076285391669919118407622241994770422048032605957766543933896554900208480297811286483151606043506716865816499293203005484597158558950130086371968217416295025691818107973178046610057093121158915950686454672314934739343259137627076216292529206368949187364679139930349155137773111737807152852698614190854004309134074254927118697167189280513147368160191436049803323766343458053868881051336107869380630723934753726625100664367974919139398542423183405096361049503778004104000267144924095822592047824853029475641958722821677886352655993656904883726804976124469199534528227830565104271547548351643514305283797547707810411312069785343455022361085585651566532704132646019028340515154762716709243795705536515699838310174710932860560652932388250408711449972675974498446725656462433585320197881225698005631862123706215001162823958239212757313997095060809599120534980202036671802335150446237438889658485397579208298631642814320758928876549844440963935700412853970115627437232743847489095611663344081456770806657123171119846040250486389508946244851078112169527673530741409555590869306871861445876865500412550404698310358549623621348802324886489392364539051709779670505911226621450495667918051085379207912987827057932277859233998471322507119145100388693719090299211515215027652950720582326198624410822382430129137776043630991512211624710866523276667543989670097440396965586152883177900867725571946864291194833197214835537133441130608490195054799161269577692224835936099198731263644996723516224302796953486859415584491899639225740821819738489964625885501425346657155865383429680234141381674265129445655928722652067461890982661833327472706833153325902594193623588004308166634882080538756840799758152084004412900149015039141000396415005792517856298875035637867435135196364883819506490030287928280272241735642565102873740305940110682829955064535103260308196537707740784683049287092949168119651327761623577197338520550601042311175840738182963664934874911998101526474107858325811234235293887299782122301441748031301611779090612550823724706132909420218068596369591322324905157496172400831103238135612486133885362838670257447697441668599683836008263139764292351122895864191591411397270669426602624953532220563009069789565929283742113304751927416162461786649585090170183514601508431319619583535683768242114807825051295452957317552563229037177848876855256956302977708470737678627570825059818362177254939588356136966688204263258642344087559302642745494649770245981900610121959907840250772818153077527330352547627696708335586953593192937883083159667034365453244403297898775086731538163168682765377586221193723909645162885634041528782393389969941108690352455349626813043194520696744467916944509166361445269392660782563182847265931791815337085843147919919174112239466102009351423572392995200380762766933361253234054184848243314095451823311997745888212200921952653504560473854074002137489522066751893134498717369681431832793868444161723465114321048323677345917453707049682157873413354255253073563212764436956550869536352281692114247508411126303742451803835583813165019419206258329927846214418567766862877650252607165401441454999103084201749757661311407771768117610266643769341096533098037620685589467135386597762894951622046862979621173872206717158020123292172188119440190860108724347942015674479715934834782945980998644239437304484331545131832189364093558331378240458192098925139712714964715128113324535886736010379588679908858495289729927750160791184904659580974122031888631477945565451249405882219326843009325781611350573009126355310896853947080853863316922925147524831097368657758182588247039907196400724689442230198021312583238156885169761947696128194557843298067146410860883394104899934358835660072154368488092840018934844400493914829243031975425929504359001322363316676805531004484847000282326496651327110223118148993033710477334711615529091587683588399422738257430313043501862550431904668750111032364645166818176879245466030358837841433894508015827272508719389169419659198509009074655924303456142195024350215133627572485939438548925878284623633614513868439254728210104488538639303541937714058433423237137015611042649789714341400950076765810611828260171254274122138199305862313403299808761951932012295724918516037727553898738467336964290093206451341318303455469760879382837132361282864028546944114081505088867440093384803444458509712463263463905503921218028973499457933986255045643729864404619977609860991891338853965055708901619817834911130370523745804675458601161348890582937619268565145811311078667724051189743961530695075379520520870933999172022960608509593268221515006911195063746020440163105798567011384109554464389886212666706792627765809552160339040241050317914646064673693353788815063079065272436493292987761754886473386248656314316196590735410556232867430178280345917439463170392962574455961711339707145887393037916137271450563237746351091687047904222688490799462373775937174642301386162658879337651833690989903420011806045324026472694768711938314814677839698246915974829509827189963927341962133192235268568449576137997458341968560292800936907446888706541514979708831195218742073319266646611908417559659084527429980695650967365210477732079118064927362982202356009343158368655157201764144655668166582238186912827390526317728950990680058086700243341778929009208898474765994588669615386119520468605467236095379839231229656551355094122465874783305695902795578101924232304384778280106016185450128871110099798111754070712017891619800488756302452514164358391075346637601615313735742920441448258793897143932829411675306755236441997143629099290253528826085787016615698101549941417067976409122323566331600292228011416800758331985030091920116717587475217663842116854242332320785538653965289630915339164763638351533848268205350263537088240885325252370462107880914701994129692100618290897473829547911228021090689056083699461586946934935965854491781572124929675644464110099557902963386722822362504853221534683463550588307962370655562107103532560997423739239104877846475697021352737353096947899878082461429212127824565634038820071276735682635695926221360729533138716695261141458660310020900898758321121484250221395703469976610676423177581801004615149781419974587213515544629770027107466131028844436978552458476713805854638777287777094499026555766274292348478212613397385487848117063402461666925693391960497656568292843270403959235408900565110709330850401896554018374254540276283762810447631242697596685536818963076651187931417184076083618627981756057835409647746870827433269581581379679603543811706225481397125923589484984468007650319996376803325211329412758217327134103945611593103395168167626189190707036812617455397861564744194386231438084507224797030591786743959935146911067077164552128042755572552470339270531493740224543093274888192545444995940939972071939044802736764723374342599533257088726808559829583524823563002917203911271094245184118097626743194798876134939822305306275080292327788221043491200735955394182597278803216109291917524717224708193584125994590256973036417223014152966744979185282458142036706665832050367545950934753378447842618821296901607686868117334229429696506917000084148404922796016727319616317360698830499566999003832694998750098280621312994629089065895973733226777813010346146498391529936993974302044664229237861302941158772891404713185870419482592032886003297317115717588741270734565224920110960591770717347552020621741075083425983942163949966920956085366434249023737887629901291047690930587778395035438770755681255293108128019996261929343819774875675149403421103029191754166721396235724866222442531288925284715645602570805067738620603078060961753118508603881466696407502926326628185038161898361272790706027715033532887651280847541272588138270246526504150770417599891898314092736234734097290759841522637069644963413445688816700346936547475428345577601408813703264434765658828907512683296151680618221322917119476327518941389958853527140799141474721368688575226237443310212965884275153363409654066617228740305823555417591202880901507467676284767411334260777303628349069146144297176609327744603237918003321982213466379428133029828346616953289748563242506383493434613890691265527376544592941645015864590945725110769068647102009048998374156455251559218508272146399847011145427943671980399024034973104489926768702987465119630464796034856089112339275812875668740130496167390387957668568023479545553854108090842143967091043684150879260613546640322625483962729197634237869547547178981823280531220828083711538113236617242663260798511707061254966426713019384578247528795806189595147981644698894941695350907743662809554976307250982581530423985764765801358253549261063194212399082597140042705044364809689273224218243401823080136646400598724840832436199479438491734947985775581348621742942208281983731827833034726646932229137122263792931684771845656446630688803811018444332522240724560560160553588074333510553581224028582146644214915541056215743778254564857318317913234356502304060630851321885279574911121691756849959330012080709960442652589860398367959759796821470845438091056113538822985499221991045327902931095571196606400689902869594712179815254770543479822562019329419588380018347807467871255760458895922444919449029107525522460634682052577381408569622211683071052153023839500184441904760219545089362248188164434870500477825769951394950658988891910482016289795811572775424721177571622276319760033096821847275159396927810431387348581794992207075923314948081212424029628655598345452861733113233768090890222087653402484810008040868320867024585652196214490260076849825204676574394849809476127736110372972497277036254510423539241764479581196056963263093096532162073789723088809464672912790188637265744523886358475152384169166859722750456973066535188157715831863423697990377220791223239596069756736189598798922783754732447987058114573284080639429446348248825780755385788749923493113171722641548620803653289486822005266729187842093839088631469656821679705645836680322346701322840546385847909569524451028590775924796227143142557510103517418840572275671902135735993121559359899412117165734656206471951438489817657385540355586822728851476073096481589578696479962815265823433834458305190062679446128549771953082351280446703862933186923440373587069900946903345275437076616353262001652845693458056963493020296149148576480942957192392368071106778757570353627806756301567638813814040172413100979135720463827315444204172816879134258262524243642787897845712825478010115355802219538482450075389600297516431114709123946563346001313271943746206290373226325364622008310929845361856867491322699697512779782326636083214973592164763581288571035241919695644668340914930113468272708550320429560997678206861259563495108802909517197121909523836259443194492178562303753460770590611670041345701595864482200880697013481808545413398630593737671342780957347541195518311252143751607974301003800552247365701755036944838243183221397048584077559593044848788653002809032373045058111594325685228146525613890867626537074148544826950110415020524565370043842321878690699526000706684120846880032826236059082459804899369693334485179519341989440638514947276268417745229710587867129877136691789349214987589214823635090801677144625054577822085899679264275574942296538790398346876752290877953322940819612811278062735951373046572365707312346194937190186962990386798905647559335805063859734391369734544603619970536998094420859169827333610992057165993077436608959662564993099734749821277935805274327475483425790510028838180633287932814700519227637300398406778488191597925036074948285252340040225720479486333482282513713253258061833685850119507254686205061293834632152999775691130875778119753364171462065628409444223074398937201191649015261456628818141305292128674904739739321918516533953504191052080614003821422281892148002571326458870052342935743750421534244188977703367704255023451138634219127432997119391094597581689558150554569769707816220448698867436956050057418426561492710559620375318704305059413063315500421884909613588114995573328779527597946223108910534670574053354556182704806111819072324217457166152961869182953388922897926248439518769758879750132649722037694165607268532310582687817799493527787329828252500971707132047469584656341948534855454979280343572064554527667359564721693814100014510416427999693098275571507324482829042027262130269335341077856466069983489786720638104241025254171284216285547298711268409578229349905714769265012672852421710190477507579354635787262177419393910046746373137520666916337634299963568645927325123445988068834135483390994156753532118041915281156718045093004823319429022469260095619806785676233088407449007935004644153541937705241319496175569476472189590234801744737419938708644883897547212041471412005718037843343618445848012660901433383880292203258885445041280018036381232459451898521595820675439508347699424199985881356376580164432857948737830909195008594088160172091201251391566991549090208274326742236090011807043781453486713723217111360971158926924859991443136470948512826546052739033244387825762825466412798427176643002539315713223812589975809513192855311631026619743062118654511170076093336286224333238602643384752347978228873870482159215365074529550879998571992382260238126289874277864887501893530631497748496270488595900002197784622538620263417360828549970121477613264453543063299829092455083453096845395130650101268732295508029064336876831912142820680074838098586880512807464255753853808880230508373666876774593221160289119536731086558920686776382994776568752029771984481257044963964718003208062000527730893443214909087830353489785602411386410230095799661237618500384130474146416713445835709142426002990689964474043676371021922936063810576744489140133321305318218881020269878505874510323947607486193020545518250504198211231676684310879673164398444813316770257548573407430219767489644679868989258281984150124645030766992209640078091104424289551367927469920853195910855759365896525122358110413048119658770437679688509360133180873480979263316213748290186670248216682834184608852118827456034310262544503708749811800831795546515776633039527243402402921113282852403630753765929062387460184592024123080706350665815361164221626233851921908885049572065361309875298177704674729658270090684071522529089181452219613594054611777768348697462408490721737357145264881461864822224251738053800182285666832769815010810034317051321507517319894307595577002928588371930810776032693420852184392376875563958669579927305502562920177057145657708710778183360646657361747985052488927629873576482296396537110608142054323922315587691183461936848184090363053775029782210183499946850907363668938011002281387246172861176498151410118533677108722307392314490100385873296261926874144777437386910674729787325639512028823465164439742949486944047039566996452759351091697192612470586262680441966393686814055543622498600570265203880766598837001888030106195772875292271373791835991266129598675827483209402608977740662196374223817433787975699187110096404261073845896325711435365663085262073527429246682326416812530397002638934340379779577263983164668143483759870673491463249932780691843998971194562007903529762324202831049196555239804684743676256328674962140992337903770402330307038577168453555046927364235352338254575011931392179520161681636904287254996753135274282598949511143645924650615990634747982027153014964841536957837073120815473493572577950155304325991115370995014429029619964999802679390741538466706345098000439092902431569643100909166132418402645299650601320233484594376636558207656635874932515307191338158025965775054286292158802110455534515263207653546681524162846618252618253829018302452530236319804208243488572181192448846773014628265033887148367919422960613009289220529401782231301193478184980502235328602542927020658901756207199495848682716572775477994989600333270557802546718275588682932183951018027681984909187950043532187649719049777162840853835429559677556302208429892791462684408040158186021546943412756027061642624255066839992237270668110693111033510863909929787925882344810172837324366542664683380464865706291913829631857380724813505525531590905395797537859420575839262441228170253894038080953285645803490472369581856192983128743261672672700071357001204781550084209463240564235627580401667480416500253027586767261957530435176701389645287859163286886418928934388235638990739795493796126040884212802347661185069252807265070149622490305703423278464100474466983863054947597556166568502096019974705567165474087723513445834967869285651193330406128154207961468938614427329173016767416137175699742141226027146676284310523656195373166767525239513548832791462942368602951115743149694683548623879867450763460830722142590089219663277871894525367106169454868832005021262187109105392956144707585302555589519578511688160531215078186469827238397384935627516902807277654360675038460886895549683202653662651032491529722657477498916345307506815369061279712979688703037697334173980563649730620525972815260357725366979175557253606477521665954566166211546763084130361237884590313155429860768867793123707496812643437758910063143598492394638340178728087143860530902825700392129876091787263835344557042358762141719286526641534581134097664185409526396454345812924918585275219826029705081716554573433296899451319051956255822607639000157654632279182603533325089555378005342002777411415302131724443884020675184829751789443937164833704533857658450018019593249769474147977909928740630247823539072202742131397319919966830640753165670424440452605957914939434517914723176831043148965485753610076299860141168231293902195966822572332284807894208914284999843565737771966944712436162449507794083680979521184343903439218635416148199804980182099036364719631646185860519569562445981490725375694119867577460058422436359247874601850737975727591386533364466875567031587496807630858069482605902688995209763730472919702776395229050859722774186724086275976434074577593888655203669819936349072022640981399836049540106601670194655446631781951280583749834029849322650223547909809961383315530364951416178479094177874721629971693266132434404446413758160904812333381408392244970531300820926475747810874109204625025371876216053403117790782194579256074543185330466318328869599440423510224207934086120578481388780076785235037505365482361715423568365912299681369272041514803835095321920507864951369108539998942578230811934908757815967763079890762566491778819007258114505932973295359837999765609147210335289939052328006507235135920071853573817939747730969096509149026322484805171732952085604160481829017286239791439539781564156620314977540658202166867114316269191124318144845492414755921862570074643143939046937371740988321373582442893231341529751676749532221588179622310190274075849206174046390213180100835332189587997979174144273801855683670725380817406627060347122050649399492556830177643066599408481597163500372001077682380587295522367492915694635613478771471046898515182063836267971972415909974240606788666995219296078881373713075760044179165981951763758119582139629088393227487132896199813797130153963776384620349719364996983215136526699156124940201737361227372977095110608146426199606050071524648575815866015817074233189625666682828590514190270808008218660328127850957513202111392213317074221527804252077957340509046345811132395749749110162658880608594241916474380794719881273608592227097709378107844185843917238405044827487005632263865729026416382057921328937995293925559120480387842306464205957906170706020097231950212054071758256978434861053629791286993758481071705661008597416359951858279088763524105003540718600056444171492119145530690589759132516122424788520634557922174640219561354642831583615450505681401025123798049068075673524924805096114693657621403122824794550320205550382513455663918179085662301112216180586392518862894730006868663451336702227493192839636521824637104178612791518408310841627035966045588378915187090042745472705335202499168726658013224499669603682079502115879134907160893519722335376693174551374154869115456442061952579676569861056698526047456544242981533069565147568736921852511111675490194468369273136223831709977793697070025549007674936285946730005131058039022185559697033340108986259503328057174405821538793113237917187316202542142518434440257284353583801071162965463836259883353639151164155150035927356734514348951901219443074847042823797416266709343494331380647353876466175890065802637443042010310053527382637050019110320552710553449935818180544845143288158130091534437828418221968475814108812762494062751147959692377781149039463865458308941158396845917988087601603029788304209462334245812809640729821431814403392290409704536071348894525463402513088206363033166891693376445484328713750829910236382947070507323699981437471305284949455273136768415363375343212116742167792287406658035857781687686174241463428563935361188897963277426543892806228519820393933774621344150070082707192271573698835600767604945977065365434113543724028699029403818017412401679429835365367295098316897815275285888435425992595482997479293683434754344557770180031963491042771615554999995790664604132005195290506069010728920773337799215440773191932495267959751814718325349432181766956531149640711394406937253942241533318475050948820349792023052930004448937753360415253800650749932695069483275431186316332306691671187365920456596076918936834879720058164988086281116753542361028236015089925456976007488373859500104019765330447861749844322730451121251437794645161564517425790414632995890160131221341026525677196876825573589643166151430950167187116628875793584306924750928433289650875806876811638209647447308866077294733107648597181223416525162490300515125242462340149478431578895990029551527929987955769831475021246628909301811844778051158302469033251063715817136405667084218945615920448978186347677769581252782662592291344622809023706460412306123582309458351172187826962952483350288320879291786004311499942915096275653174845056606610720778991776946759658394432860779458564146623150990656525897777296218546107464120131083399212981131474610892498522284500980334995781401167775442755632189337037491693614194819559862822055273557223886221282019008715054298288839822233975044180515398011442884807709612700130131035480459049559466026442807727390711971743827475650405170668221161265279519759615813267390252499711253201055420777653372530823300666525787362670153746370024759376986876160653027372477683256347229370559087347299800670274702410216730940796013431880871104411395935022216355009554078212004758316506971934145244383052840064355341958369469861687294882094577621557899146595111768252802139235891697307128026840713372939797010514066462816238387257597723321382147868425874329730200704438970820797167249104997797728115754119783603799046347912407732476689129251348841472207008517726381049706485814606755458142905074970519486452584927053266863791499806647589268618165859450078659697796901293211912224304930031574173375259308813072717016144364044592835369451482372303501945593197461858643677555216879316652475881402309968846410925331472440130833861823950535848133028246998461003180127197847891696401063226290452013423113879135658657210140251373347377281821258156432415971139906204503437438248279202855102201476837319101743424040093192168396638358929557354071513057453934300525934882081989458986855272079639606754802486801521520707594997570887599432795348196213417500927097180746980105869484665312287103665077470424455958784353367046840460021472033477338648923662244950258754334408658470839013831041397851999151208771551507864121001306824754019064560036615178715716564999809679919040134850872359326876205596820867489128272288235203044028683547254415301631276888067096054966677082044605910128841295039715447089742287246803634409742143271844271632953779496820330668299677659555180967814460837922769017515102066088706642044415512217100422001866576962637157175678513637694812459135877656100890509075666770430358123504150930002377872325591283715277548248737214628366702708951074079322616597669675170525689869432967013282231166895558010142658307997925656910828543182109907070086737475003103879575555270410995212632573982211960475060681484115089594972118174069156680376701449200192369147079241695147199269800920567665439223541425391321603725923938215444596991996379778251673382090256859639548330209003084683156087413509696319774034041169852080256182263707373058612677645041984366424695915000655182252884304173953131876221285269333649822128608668108284907020811360524028889752025850439273190903167569936976327675903672877990985545082997795673996236476482569225768963496190937341783031611173927508468277278250172532938935291977362191460270255724026549933810198506619998613480743932409584084496564963750974334617586067233787082719653506346369153382270547367516192237140350424162119411213487581873299751500709548058754762083210946807403799389262572679505974728067875145595454829895481600380377515454539745499157790588396947703010216321694659921372203684450198547845553456729620617349422476341210107901466593071144803699436119979383830308080475713385499655953271955133811728655439031475385707145094678722770390910439222302614338960409571256736995117993209388321387653502043907587481369910793687383060631356302989017992583112319041906778611072388230313894216876392137294693022691743492510531624783880244719689732486938943470175610606067469119357787601629583476309796154619174306847038696928787682828354020938129578385102797296685447587288779669674715570502554029175899537625680677357718027023923749422944586367245504132187529928041587575254618589280757927107718140374801459465704660148790115922408730531129264137829689272525667248887817343643376361129568491808535403077869765233988192508159033421916744273162667677090506697100915789973851396611064460190704853151890459294750536881316468056075234309869070652281683677780441484724683428506960247109177155975070344193249844098248083686158921278720313392108231098043335868952834458740250737256127791160906662027396538424957937490607874591389780518246146555926629613512666062238949180896928968262278400693977280677895376979855823721062131082076690542344389080579633809464094894762827841908135033979849960519578862959980810528057489257685284064632955897440221839005934374667249167037539470791193730828156122280339206924861155936764525870216862862421116357703789199897625230022006596845275760174985709824421474409092757494720949471671231161468648647732897045326314369178707584922982638503910543087712834644410851287978807304048985308798110029073814319572283443991345122955792501378425930541775449952194040034030937466018626044526334135443113573578643069932230009019761924263843458619155769463831614454103172048372916947614454586698475935392101592860823163153306301190914998678269522173190656688995811113865709595600657118252161471903085474008653274508219402191580773315688889474354706333088952871016942948570136234992892692379989251049762879947017461878503907971411139117473320237481007886455617165831372420133905120421175785523796468509045341539617490973853319402149047817554895295655535133747177698564499416341299365090207944598169945728830372277238820222363638850390399177565200294124107222274495545781996030556598554241143504942174770070311206145185461350801022382490281724763490115770173756207704660961497523807781113877688694246134976775913154451637836694981643853677842508841662853232021963974350383227247981477208503395834257143463183765299776518198474448200512357204872289641972806526826450825527834778235949743671179740403162868997890947803854731588760892472485398142513452712212458358385390763656451153725038688892420487452393468454655220815359407179154411059367202138583488909856191760284702243513733188826300879022863143142936785674679539135178091822167684168059950307618350903870160745870098673194162658578485516138973391427293029620412185023103104493486484387811256026608071597747350962518816599891597695982428100628973711705968166085436242137444358668633833717003532802978064405859852789608582336940121013438957481041925014244977916655711354131987212896838912582782653898503447294759102844752124498314909245551966410798293745576855930252251125984003209281352167960360205117694411726160602652647050629935814682340017217702772913210529104748229867552111344635183322974382840274936052302861528105930156328902495617691254112306315757764371706298365069230413418471520989602623381251679394585326956219417976768869381134225573526491105957469832414217257363227369013096133277572754191338508294531209563250406734206602070462434255360828145087896758853687347153600223510602845264641583174091338604077297334374433543220042259241781886446510101816676326201207660248998289986817639102944821912800267527337249453494765213325532901611250823450159391877718329866237728500109064595395101219800754175498355074264849538334000685942834964433435173058953615926436998777575851079153961348267363700479655822647010933716928681431509840191387306752636678430189933344269023644859763748671795132772002449512187784681449429762238736840683475658874664964408437392532910165767254420562445867432290681892401476682198014560680516632030194484549208884874585805656272160710929465867509351740278161956929965734016871600141980830651461338392480135573526637607302611773549050372352472448971134641255535710896560463700000350594313114838251602561977659672551029578171168931437356288530561296695134360214786158601145563292392798443927982071273943482040799916021167962641960026334137125280718683114040289424866968457232271886431849348462275777378297218739246544747861351834940202257027353885591996126928767833268227657015315265442588341985978412430161764774277735951198122854595469780883731082281078596458805456143856407201066919751049997906568623293494145882486050860463531033356502347892763135846547106184921636540415754301551814347943984783285199344142794702560601240057179376523728826489421961335958335638449981130476270805863005061309673734969052062747509673131560414683971243367668755028734793660639139376147913676178201756548325128123451906365056387265064121859780606433624785223765087337791101485389175192471974283756668881964095433514841250244728360894901962667554299036323475750699115472150826654790410683292880886589361656761765684263654133199191920745877617050364046426135737805040972269916668221539530728664724478525290293421669897576973059041063751460665948996744919183203902205270010518225466480480978815672464261133958956775388229269804362715882341124111140412655342820210733163717284926673982806760730170915054358704720526158452837560196344092835886082094416900907036205473960012390122281344031386400148075465744251941292625149543134556743146059997322931973811724115189884414509961007299385638946338388372810011621105823004667123591956830608596850958698251482294920215401279721670408854490976058323450467829879328983544058399249335694172706787474831792962116688224868465074669553685670755670236685423022586382503965772501099553610319257091412965054456274833081890552259591816139780606347029165718492163834169990841215269342168189683404419015758218925942026652102345138671239772380008410639198578466743429391933911727711965889767352624176814898061420272860823354040959838525862361728665785854238924937391891105185913197728867201099177250171582039977862466297200744443783011384694198669505222710138557366533665602190848324108474760900313643212062670720662859911708679133212995978413015562715657118941313429535128002067679526017690720319103874347223924512003028695480942171704302863063600183593727235818621325948467585401088165860376133178662237488001122706892236007860136883900806295284781188974962609862978308732972889908082987985002139568275355125080522658556442222812233156535232045192858178164157670389084043367494384675301471985646529741916070882153633898228572326098377158456268100393391078269827558700819078248197204180275251079392985205912396800942521018894781205159478091999009837397424031220859966062359814937708789224776528926487678381622162702698847869044897531099543714119822343469914696594483756278039410014571960396596714811838920848312190128606878015524313618046282731996198235511650676570151391881283976857140544012232522480335159916172264650579536196577879174995532615165504814368937030264029609900906158592798099844287877547973185513121051320301109643691834149784060845028562770050384163068200393208969966308223746115391146956168997635787563969121806811015114221588863834551989211609591342718588039443583372824597952032602828789053050457990649414896083701713186754609947428903800896683941288259166096869078151689739404332005538783973171307439144100239848284092310147165781469406312882368724882551942591232779979719167368995903895578896978064433971605324912649388753089794942422630531463966062271712771326642083715979194756053969222107234727482404587487479096661757807531716542219169189840406434600131907671864458386892246761868247708570548110946906007612447484339061637439809057816492592833993511931983626420380504504113707225589592175329928224582105220051159865470662634455062342273557329278796673243015901665530188479260381114018712492422609589960873158125415856170690040321675740539147605235206875014733675199326322225039882057585321789177992931259724798141377351091968393320115172898722370796006006141796780680260869084875858569175610796055899556399675860117998268591170251174992147420276867025828140778190926100449577915366493641758400614814449347540969815493431306599081909007675360922613515922696002726990388646037663192181388848709754179620848899452873297531897593309957297525420712371533208185591325934241672820221908754497197211502559627591005319650264751516111288815400632491859665822060879856312971511216159752342693675900976902232601470646298608853139427969884820898815495517318203014613685462083495940470711148654484287919680664566163396444647765980480395908044460788056724937599702860148136724891948248474944735147961599779756569909153312610162157479062979193392137985449841104533646199379628850209522472585949949308312336405753927681594785326504655765800560573713118182952864077695333458378066527446443976559310853963341769171612605275793674350510333258422811337635922756606676044697216766405405835556828884871841321015673432587568736884705140303149920151104431380484921995178821137245371411435734458106575400509253034501700257709333130087695697618328513532357004464905311693962853636816688851255603163841568678987171746340960699946756350926062739915578101047468901848844446084572559086044464388970244616253352100727454218439978626607442389804982975673317909714317157186952259052911618724427436704034322943709922888583408455288390520320573734685345906269691306566368959872088895944412630742010626450062867320724789242341998094151285589742186248389383268430566642095172325539727196613106563469735393966711725673500965014935629651642602894772552296703530938148399969187255805272602513939417473190274523367817354727239597636577915777577249455418686273987344247220977145497878826746936553188909960563699061201335841729320627309836481917652721721883027058912795267511222785197844181688639115426207103504784424170188276394023415525557262410937559314112965321539942634205715469852318405301678955704229560493657857722236764825709032398757537341225788461754113798049988011442109684188069632725918634707046616326327640589906659832297851808279114130989742777868481862159561430755775027388951710485533449090602405730739490520952580434703872140177820982662355106065549809843031508447748071766974208589124039949874676927875848196307001563791491409264831184846095020843279482039816510585494922800144446446322471786650899757040989221122856227882950742329567996200214947972295014868312951699345374068854100208057025748291814141866950285779123695561923185268625447919812363059084615981655730005695628585550832903417798126392212927990094177173240014276699143571807727855598675252237060967408977977464138725923026248797446830373675962081506307492518692042214781809889798867275392720249476120413416824552441266886545791310094370248135017445582620967336546738217953082467905691869813791102663529060434912944534985887131229749924653306098827217063877814077560993814204061707357547061449251972088192008354461085680695128525087550795563879227708080357153037588626219034226417489511621570756139245782554294440358275856996512321817909159205502891719764520500534853339674205342254473163256113356843892618009361206694668508694713056969128008995247764226248374657851658655690041320345018694609295925261555371670008912496009365960314532633074188181700564436834486993720135833388158007762564011298081959429211684237159873631240286976718790410429978261401204054066863853168411449441030109059044742160910811561930143526669384288899008958978732427751357507224187156377158099061105263310781322720741009238437527362968726350158877125408417460610070770525807255824266813899218797478328659777869981330489313619452181497096147576696038635082950521443297336166287087216408780091341577413682566062071211035114091010400335462101160506694579143947103246046560243717227917972739755866781556081554158776845331501177530102467251713255530621145629434799242581683930775306855114365570749484923463527851249913242025841542531853952608735873737532893503548803206995845735745000025211645250109886874410014203090831285159357578120729963827424973710047728310595196485200187442258706378237292204995677395085867225827956199649674318123528503345964411209971586240578061390282810841550410912345044089466956991522428495003385256514125565275691673682196628867032195763748849546179410982486340753197760548074407694715976119350519303304052414253720955374783972821244059479970379439097724292736595429569623525550892055228570195988405617934082458596436144071029814755195287079743120306009596424208421922116229127977121252715958022707265345258155911369639446978254832415834341955748818062660557842189929866633323640284804221839010410238574586760396177888390824200000017083447025713967366162476355836970827341836805975782001781020733288155111426463981289245957893657249677524545162672405730894521148679030947732134002444041320913103193324053436231058876660802990435688252639852587929189356525510205064141426315559443126746588815156951150390592643658013690058685735965639350578485665590812632229132040687464111434389857259055431091801918931296532768111146245504333927960490211412136246707486978394125628227406541455302145283463524190819523900659383296891657822537359815823134989723501428457014649285060868483295135768965342820519709429751884781075842224683578303089766182647590557294227403400325497227885696802509518050936229311546171703240795932497042032352501735112201953443357404578739276731714962428565335649600901236406346900640600420874872425617643810573022559272028814566344915862471676018085589557539193130658989682642066287764044406515358612335062986176221738099106805351143538083750054398328677172777025010240500010273299432075885633512740304141493992689811407170812128929214854672265056357320894178829161001339046359972630277935582033848173848904853325748486886955533142792560108670526578653768436253855073723860976279678826302208368559935729678656925025695454057630975119960610198576951250072932306212913237161141750486573672299792121293146629334272260791642345317561232263972440394244064210708483567248454738897073593150979671932200462295460979320768366173421316087095996810641506761693376564465492614892535955003375820176539217133314802314802278243461659049677061044849524554792015982815905246183841991122124352897616163008381599931655496045311120380699985811901546773052526890372556494223016931407073986129877491003438393365539118586739299472400123456303893449562911585700128429163053018184201826123334209731491853603639655053384070779259942189715582829798995960047327404856800034046436743652420505778376154825739091116979429133108914780441501664972354084603579295040753241740995683745479912161211641232422432494403069151029934465445581389452456733132252571685290700771587610932986984944539789037262901603208054598195858473679243726244606309641983503853348028145992249699632501011435478014599519754824645606675643122109976587574106497854028906925443518789375434348684758960142732145347023087741827688819218782769725224008799301406073521709084384304649839272444827885233020187518423480743845983358912757215527694819192937991114286454395523875421243865187131069555457106419515094096724748648040251943869740466805375587506888743411284385213433920233185977674495748154825415172722289235617243667100676861709581828840187723800206695278184517530340683194527719816515160695504438329017704137716483644036578893714724468809017265853988196163091649383534438159329305930478413193188453081925171122177852625631842348890294145170831736002867413448289143968731233998687635857372615988139935551813409195800121739695232226344066502738235722275627057728762420512180205623521485988317829063050388424758263033476080904312518609843243206009632068466241287193894531575642269484908344014706742213838023644871379672982568341943245080859678274700152476480889466051025513603904244958074403717772939876652551474801225137439259996381769892979775117100434385901228523285357885310480075386274488492504805480242361543339443989429390623033682759365323132650543637800096680615912696026266295199228412530347842003554899527250745035574970164505721236701807379738520101531445044265779148205684921532779540218489073217926905967857729061635190314523314575356691390212000151852504841987365759901120576977881124520273786051559924032023422849196934969755006591230511213202540242550631626809826906745951221896110814903900239487735137354982550377192587539451981217048882351419531548236956699966102639002630984329157223203922743732263720565638575895371977947519328485467648584027139862832924410132200240137470322707360643406077177011027120660460765140444493281692469559255299065820057707429547691597889191179657615227532527664193112790214726288449035717378131544340290253620711035480421089047432715955070630815254260564235037566739226417827006673051941125382049083453913954055060580714243593476163167236397520802934976270988508095755989130673908011626344814694992638744083356422699394174262999723917283126397674505702330518117223808660042629598308831281064030755579171295705139625124359361095244253140887776503622327409011085581803570176812839347247738487458637254409511646525096147404172275878534916161962390197149153621931140176817151266977355916553386155798912940433190384457289637020887669154020491728074958269286720153635492965091503996656051156978160254959666947416623209562652105609244981522715054240183184605988343867942359786203592161572837206288320533660651033377998781714500351494475780772369969924429529642930950074235350465511892897500691180897535403024408673108178486256181815790219146432394838812583912118777204774841308817048745938229012968427007788621145722124184798471116140448342865293176303556624768189049575407259575388907180097391562021442765564849842120847186284606345204506024289828236287966266100177459057054907736432977622083599625814364191754187897065815763807434085417711203977576000323274350142450724447872522136681700176701624168889410613255163062982253101556508293128432815089924383199819358868344275366974696556049678518924699063807856586152442705225978170923425620383769089292628268313480141369667058442181844238395293201591018474477854869844258368661951156795843575008456356117301083882392027163369556943315938838269058422932972011574495372773915020472988100155661371301027442947566840782589834471916556555771052341219715890970962650751004272763041706918198653328041731370309056169192675366279956322696263999887066663597612376109055451106980065125012529634827463093929841191271748644816871616544479712306744730759927688211647928196522396061540139958808548006794320452457431980902120511292592930338968871291883911040139496826521282174263389137954790904881454169251415143285276994651996801275260511716976585184068568165309530767074916622053019794616790695232943043442800143830923133083441349891628268949696552257926778737245063791483113777434329583436800472961741555602464692764483012225418079311299063975727039396343465902934920423232858610997229210542155600177064962029616884776967125953783220553221444891364404214807870609174403308151872218291605467011341326139511252288566558538571778957879232523326067095695391130873751040975789128269340512459234492533428630728697890845804902968421045810047017288110667924327833532666602631794952684435942747203558217851256492093019977777004660172702533264797530707136300448444978589056713241338648555056328705349006097607274379192052860024388795736061033996041205141925639498280372560628357015648060509849114585981686786269476464773077227629474205587096762978713243884952247459443672408121883790402017324031367700071151623076221159829160399708557796776229108822178910967752779118959540685858722956784337003719193556460209972491067851647105469781663667447650388261854222047017554583416805413195890707561893802647807348206726662313112689105715363514895521956230858491844495383766622609893183102059942969238164323790862926799233534224128748638523063742072219516571880454570845047529925295192957314603748803416934787000639347737311561239909046644384933679660477201447845235124535416371753867561324273252166229785735833261623583904547801737271258952216165060677994253396478868313940412727614238670490223651188016026280031041464303840053261632016597555339202784135221512244104175703265344543237442618538678097290459203841556886853263702659430486053191520434015386496311123263995576723427373835044084107463324691359375280862223951569266500826391244627120559179554274360213212251849844608875986420005229093558583893393312898484425816861362370735916381988897023430960448334407489394856444104138079945708583660343313111938405619901611284546800142458006742190568313829795993405210751844588614784155465250731337768151559954611685662353111496217017429462488076578958117068237236382476277339943992618602087068580488472520006324985164846948871225317633821361564920384568024088031736775635154194026894577278453891990010016351991433201263122055506581735560928118008759556817217382196157819736300748545031079176956400531056640797061493794305526793075384499730175692795818687445552805178472575909797234284590709577988375750458862397172152633399607735179231930765428192947974015772049479396076855472475746258959591523128678335855039400306208089255204969852301391470624177722625259884183441564614185226171614365651950179773507392713520993527343764805957254762055078666557014377048525148944520326423632790985933036795608359497905569679034612298241529194207074533315773724263045529605204682474047966249931021385884160900815080897636990863895809880535951935990516174140847225503692653994531487658840026135094032554484706092466684001872985095163930894803872284036809241315562708746794038381102495151851216898490951801867406084740513178408046233754195716659370595628359787706593338099332491404972718894211385446209423168604610659309641927537370929363808987195861123701383526587126238642883886733840326979497206345826656199208042018665289934731628036864753094201202843096711588221056380509763557873382908682467880048866398861962003481846202969356530648545625059770209381672531133430146979509508184415949733591838396317341378322924579519338248633569293193587662077645877234794117799383893001878031235307651884894759075483887003683574949060813621985753267376376392233367477774307250641394316778057456212404496353717129742228678166050864637658831823139110649203824772843396338010020555230671120050105425500399032677218004214975876061421897030512807869746310376966461206914817800787986303435853954472170923099697334521819574643167249613545793910547796075152232908189068820520566216377071528327673296745323146628108374433098067370930669450928257440825117543680719616575428447843629327086554620696868161418757450415477430343885678878417710145430028521225279765952135382861750912636755092061027125318071701129419865688342689474031098533782633056315248649406758826333724698828289441197533331449433552038888336133118130901449574302799863467173988927212870501158781055619334704017138309870660975783533473077228073053915744561818949279069738812467589714664758585552153468209921574644207586076339629238579470609165093364310269467532345515123442332481268132322589988435530923523131897831238642260208332307708731462789576695216670951174086523666020581554989465746322822532661997098027015250530268506631073474401409537708986809716123588716334862537416766362861548866296019537138239805375542294681449769004701678289572166200332397058052519538993567362726888995958708108872514114254577896983036154411539345594696547819828140899266738531315382393822612137926058583960874152689406752210104991154012842157639507988388812487117183567842119026374798143115762235963199302565382808225770985384952636988808109782661983598654123437866453342652962388762801897956797523601412983223585328357919994743877071579656188494313378075230692056608817876722232472379711191423564607459066005581173913346624368886528368302719269517324243495861843656431023204079523710785394057998821468401843675917522395459495809582536432474348316784908574335772940747587924032929309175484784797979452224983003284525529690320953805035457957292070100488925315029110848067591948292347750347301151599965451748288972159939733326542876317852433238208613126751671851873759702991221772219491160357372363062631669614524800672774032171867316459831298408133110948257693230600181630123497485341017075593126027317482610524437177997734411015141571716816977809511865923609240125473911986211243102427529200961972797604381470734564017128547802928296248403299625192885947658970339672862813366783414452112158320052879627277000397128467279232585370698808486171353097874103090577413502308305288980925730190972246743036772764659890619802226173184677230364092705196351760040275724846435000678343590702484404112789996942506701614849854233424328812938256484909288680852475514602045021552063951033482162212804987834796168990019022048397092940225287495872063775751138569350689232356401185303011554335345428369469875250900936248254665291767676694946718589313264103676040276559307690856934233585169319571708103306323498856964571480205692429259222508024912824507378536086851400607927795461979436884119961154948369594343519751801932327920620624740475423166851756889772829466806228594710583748508996381607450093316944423365016183929215155879600304100297165125563952514845130904247301466452856896803367015542194121393734542475394788693259102546565720747865532520836907678856079331122956332734372127130354704412772790084056043986620297157374413438248688919219116182648697291293226730871338643539033304236703176778177195199609701019309912422559870466441278131618153790229038918337041204035930381999928785187032705652274304623609690654047811434409453966658150877434087811853027232294182792735973296869896668831549392249044476572905348960797611898902474876129146257540097208831770700261065756493739346339658481200589738125920181159276060476141455077708223548471482036357853219539431818654402644132120964480635447612638949230744769677188725657164711761100356933111459072287309066248768376192404306831811317785560137494345574313262725618703687965767880302246198274376922253608483902501903624885844931833434574777442969766761338489155636581332717868067812624328493686981509573299057994714830142872148746507991047102850975855205081128762312652716085768840559696880276027538189703364407414174436430039399147533415939041216977714629213960775191639521563401248203902558597011691123195603337895050800947212075388290205443423936246627778109243321966151854352408130337749839692916615314080303077895469884225935423183944397604102276801169952624375561105033478633209259041594599110773624299408016346976669515451306637994722797546602204130057855970295097783197418304203473554487177599327654478212073186170839226173588294927380256457137044215026164982308060077754559339280579753944819763166399558427996791806592853891583216552423855201208859740899682381704867315348580445830839945976138201737205887693118132024291450902675661312435297046403178569787965236632804320970646684285508553309696899165209198712591553865821414985154610118116779722057348280666122693367137190846383192211423190006868681553772270254515185830155257075052619031007059770497413091050923998037596696265930705593301288241116706999147103657503847958346235676179932953949832641723087485328648533113835914793906617313782893561720154941470166182906816702546975018768920503208744209865309472371185760560106627959503512135387583678095842024852448172537289052132025216121161104746742311763471739935547811315703467179021590170902699677023195576039029317346916176045138406563888342762061231995891803296264198742158186621727079029554952153765976503767336517112289979673758168415076109799080701845061326822931841519393377047751958968688281918804777051692753633444038940036525838059970502600475581551628344291435025882032939580260526789376475887410605898274775183834068668311743530212312085469553951491000387287301916005383911889466917856388282161140478724261646949204989545429432977399524683339810859036694618652025695777497774002693468196837731374462371580951998964694562379724013077966247534362572092645192261275325412634514079203861293961770881921038722651066848990343996794483118432438873146379030337955088048549660046139639348498628057685928575707690153489582111570156902798193564738266799592210010130682339097785004182329141405913323893267750132590906251833784129304893873602283294465381991875646222840079622468357172549403740987123585091648843662807691098908632960212781336540127481897393858771301956007495332299678826707228393401202081442472323241717370526557545381769311456301836605850987037613480302859805863199681666798554572141088308499191726475179795494711934129277889315030224801780311602346418484131319467162570265501960242727975857303453690830654329146548912819670280635925332903338853357930727760470336521248699296200726944737868237862385274842362857791131401300656919949159936290280498192356116389197358931688160336411757406505164590171540677542931982654560799555695764317378230694939624672718539493978901103321909136509323726711529684361567770158057224586554802186546410991799478890172087274962224082775593284073035499985464742219625041841987407172604581410581571103671485400216876057614689635388735012722883471464841382992843575612206407340259478416053276056005936899607850776978906234511000805559448148096332056067531715105249990462558901072244761648695119050843952201214980043447500308378638185043237582501558167561583893825555839935570682592340853117189737997166297122219247804326789180872561710628982469047771584895322599139717490035154797111218455859256659119414203302298185377157765394095003268796059209242677376507801546974560843822904815679358914706937578571999023663410004612065972812837362586921667788284760443800790999772315980296424641799411901202584963612915675916478723515294009711924190760853219053028432478750767084266316562498360606270974298607285265057782177558120173163156575275468309778401989430319764684297602874865967951497341232454360916775945647837551806725457737670427292453696235418121938825771749339707852643495500717930110058950449973276105847645476267268450738064234308688633005823228700859998255515211502996771242757997364725730613373138267849095864634866395161612695817584945365664429892933108790150635111683320465172058767397495282174677158668359130655707365810965378457980342219831424590243625827346926212764205873184765222046564395910925796365576776325499599794983249487916261480069052190388983263083897123917383458381903427465089068713150059974417697439133125799290370533080923396418455154085141185551566410911352883496905735095924970508177996877196468859990224819987610646681070537720053289550448427546818434548804559522702043787267349465502653257048615804871131184032461832966756760405826910578133569301274013210226072206065220289729705952508238535015756931714038610635575394646209713259720454779651834755698497796508514953835443512897461481816485584825920095673800102574582559516330559261047596775340602828642886879615673751026264408363075928638953834561051049746093942434196354965972115691885549234119856584731603626696436032818644556734172048386938366813034015859746790611311730005283509636626651031296371413547637346593545814893425967395463974212235793600321682010638982624982596232709953516312203864005999450266256932630619847181571090203068273498160736859677069958543630920175708451644261938875490345164691946552094235635888196870557305247798073696503616230930241486330940647815187537635934997370245861741359792751480976325350458429791535357155169015159881186514928973367307043592158977128700929957964441606350545691449653643242154676115106730757177724523531549381763207643545030192581694247879522995732488305916748068434279767165092621517844601935571116342133391691588843414199763750377487121958273507765624993621899077011567313951416527849808086237351517458032446861375086522500160375980325244640978383896400864139447828604139589129603025172623299672111340571763744835862284064795262936592736296913857220027753750578458674076018238160022693128327750870603594453759522326926742217985622975315813580506006704423243240930410032666060757652762806306009187629544682368704734198638539913789236643925906902852335271758862187663624591231083187182175283378170784461521380886284378689269914969260469945727993405150573902452056849310566469484338467221576362594682346948483963690638440696947891174574896386468845220892455272393748970894495822389860492312428354938466381985600512838939923809888937099232129891669077837668464398995364588561066043506411084109028666321138904388679469651597175683505065649348875726117757601261209549241742100396965041477063736583012606265352565900512622036366478602526584941643632173290930641148465588704209884015218519541976011290406539779626281881541851704414307990008958761406653860973972569233196264404477587842519500842023355605709874959447323467528169387943347267287031073299957642309167617731641853090423684333599960263755321182924108878757459246584726861021784466279034178705007774328608806460529882857376607410177706834019459529440088298932835978801897872853517670765268148969201257060935952037359953153608040471639917604454111910788366179614495095479570530403032993923938412527559018434674580070533979840089735477058853765852840848203184598951611898842636724192483025981177420293913066830223686946830939983332886822801556709548741566468164627666876330490793905021201354825593707849230666801882576751727517603233524916452580208772303297584696354168455777729759898352156735858707104667783294943139532763551903961662124837249316346607853838699927569689255896675574986523152073488435412481849688210353222992994559366041513640673549513832236246039166091366896986888211147933942434518230837645454816002943338288591166976724470061773522028575523473983819569871859851709689100036529608417780797659689642989533371402032606297722965628606859133896733146969846451869081997296197524532968500933767796578049476336770542693160049871251041892202016313444451989947404570058146156274209246810157398679247896525378626826241505917802151884123931881429967626003544988576054480776419121224633814149307581246138327275048326334532296672413573502945546434440078950883486295406081663676894535636928833369488293086224100408627171517921009008450274725999143220566457888529711666509669505142046875644249813380750890664963861683294579052378150456176594918158076259968283401048283420236542139979445210263873507870973317824278840292425040855989286862609637109676443850441417235779477678016475002060595581312102952575565232695590044641038001356479976537751873699197280818797495608154495531919043807107398181513876427007115526391750064579608090156723000304819431082230777952635604548126840161733163974751040457511861308186513677625678487235589580261831102161222430311507669294036415341044457614176134573539442412062863804313749252334821262102020855554228951989619266695096155371883011916378044792304482519812758989233604451706869785803149601199174283058972638754460541716603480546458530031268124144423992007912182656654459416002014906174568612442034567768354560554152145058194938421665873840654826006944533864613776091624839535675721817459829119664249944064428120839023073076141214210583375857085692636393660222786748245069990390819978064363128672046972198197217541423371540281560288701570716388348256644927233111508771917483983416200596006735476628649679713702864028593142962416436479195153267785892517774118175005730410512919234813943054006735928210324409377544787406472383162993548437086461142288744013238729000869210579511122085323205655051754588723974288866385891963736401862584826328234003059712709935677508597647963414148841381578747807009372081147668981618902672009785678902342311616081153855706815260662330665359927926160148667608341824379572440634162984677681863810327633828304793739348923881319993519183144014310139215270043109372703047356659155789212557621939161921176805752597481872571629235864037411025162211366987265302539131963541602489609605719869738728280198617671699040843763331358660083235300869699151721155715134899114737953101029634594399969883000290258626780304296632282240750334034669597069812057071460443412357187135862824143729872086063213887377295224777164226814831401092518642841812067288141132787484503678883977863593732186158325578246057239485765709492987397406488936083688216524508067341447448566525468511787284952669607620679920831725072578919502218363515260662240982259201292370738736174580629631663962428566375896300159671947887575640268575980357627803846375449942489427353092273679459306315186845698771200593286286530769064799897760557154894788567055747969673851604163861008862510062012733505589341720291025274662170801397758310447489389119606385801733079844840880839330364808344064743009680212712610331549590364319354918200041365052587985625253472246442225311613598948803224023937735875138222114958698534352449149440198440877746080557277747976813815407754773082027253907862095140370948019811255374941612492250269146384771894364278994739799991467760891173336405508219591632675515689589971604194296710054531396828025388054295486851047127908612909480367612483319578878314897889108418613287393782208022397471372332782183089062720761273607397759416121406060202899855617049461962339429227144077013894223069285220622747699094522796403337020278863659026973233885174489602242570179347452681701419465215520145152180375545790864199443726865789225955948729383246370764426096999900651110017697006943539674422315923496317853171797292209552441048208611431126563947816843665061862912861025880687450989561889775381680277112501745326411405108438504773345734686144363147720916816592736249894510493179211472091559003083029918400572168362038580351236170081171790142237870438653829085025572920890847514123055982183263792728844651429747325366977422251786387919649962099499490191505953168217097436555104395239509927924826962442038971862808425132033143587298668451635375246280584325330938821148281757529383072537573582895872297940058332865356911302698676111250562152220069256704921857790390154083425402151580545464153962242790136559295331757251014137613399740009082734652625608025672698165498281147286731374261042819463157691849812383068585051910925260356937190244963801939554065437660512549030348217997205014817823159477140330366086138874674014451073102977594304495863062445334147747484456115779173879313153427582481610375537360998409823164951026980633092651260877945088547247085769994648409273758902068212712932177104710862745625505407508958830356419897970180259886390203209141249854857301198731994706021600217547558537883102608415311379846299250611187558048336770206104274266168534667761764063426206564592267911138714892387112443217066222533032063814333160015884247696521086528003493794605845133603326966857963770079234297703712720400333793234797868272496325029688898400926981635113759447165351923943497966020672752786482656914569373740092745843660359051788932714317319343055975963961071693673089555637357666188416835091173757547206271244044250137188035068609971578030633401697113502217462567662972700939394013919344232469116137840076334077537585969622847647102128525000274460765699837156281023433903601288777165264884415760775776983225420321433243924828101786348521251003934228601173560042559960762262287587993739647766075949324632795951263050338869877522880504312003336698953170734759485451269334864067654304084384314713331727968039448786575098869994013909856169474974754162622177816527669923026441781359535356081705227112295722077563621879021234011837592150762519439534981126205973275619101062936486276748508020773361047966329713967912282265327775115775625041455730776287664726270583746544967752018587752053483995911420055849053302011118862597927023476404306624935689440742738379297657216292445271379380115563645602180505422468204809114266920590622115407377120118115145316611181133249199241317359780977401073733425868792072905813587761246524194034810235695340066630454850476762030941593557760223241008946990548874536550217639295963261607597184659070895391939749725256717782911193874900495359743233952909633677551060958709809433102429110196223958439422829117001290882445013618458655537328210972989972419898214086315073120916003551867397124349483511446431976156069633084302239869429441188647799527705924527045113513631110096393310345977820092584303830537214505988582046353066397882934646133980177383870797931133998861902653139818655447144862564684251959939570196574975786887463935778289013725295067969893532250811633022729456471271449864491570272915630609122231106759973948402209886948191370246509549176435815038924576461076981833625356487795696935022258876994258570062889040276074972223641559533110325497886343992582981847039507977790595844071524425670405694190053817793022956990521774278436310477122696552068477583695220078296459837248054246697656262241041710981008183582519506527280190183855943660246255852083491889508497507625738163934737910252947814937911144953232446972968182341769509127661940084008751251763540474005347128996958392438359751112565554419059244865982104913864820084977046344852017153411454699617311964395163784060263135120884335045138588826437048142823723505829586324582221798546477781632567278190697568648216569465230929710910836570736371911469092944842866590290775948053470928490678459499326297217666844494855678124487422801369834193045643515995597196075278418447625934563606698579579329288361907784458753507294015383114851988328716009541799327222518566644832288758381711458260728303159623970176482109735759560726534266023931659023040528899723687931132992469200174479685876147992786399352937487480966592672286459501327550171183098263454982169299437987434649833221396622939048403849230182383199012157341017160716618773746914772544876446084908233578396057986173998133936541566909715551536755383935349101540241151990934099971704820474517992990409635803584177809507215323259368990312630661358333759609328490595791048221836598659490153170074635467353405640103306560640159841682345120935172584334172988533413042611646857604292918943058212095201198583139712421948630827649080454128309377938635366134108443202595487638638179730247709974761373448057849243845286785370670526765071185965505307550724753852405666547924332570851319419494849702685707699102333960134048035872399047059324065492487755697683447164504749006020967541643330890823209103322750942170642626446422630338382301343282564920751257404550066582115694164507543138167369877580795233948581471727151835942497137334516574677708573900630251850663091960748922951089525385193318438221604899308972065350074067526514892097104661313433796953788126339281306248891091042764086050917747589679841146380307434313143967871767353476957245881063297058377675482006437405684505942181595526211108649302306366477708817905593281108313844209240995932265558817394029386321149311682347096621378403275084576854862943207903049506079343808476309777076511677776521525266850632551871313257375660788016463191971482061116734913742179000319526579533876245089956722272701024697540495417863582675556520846858124207992638737304626163593594824423672412342692523661611998721946825864577882782977369966516660274820749842848954228264621886766302305668224272700242527280290322682360011299526392278244581329233538193276030665444298026939325745377392183034354369347009940348662040278456158615677262464777141546420199060907073948510263376168656703628135908026748292607491603304962461626948619252191232796832308812887047198864665619762131781957214772023676397999810889295996322910037089181480537923934273169913629509216310208241254869486730224864678551178386943328274545729828611333984218177841015084119176465772422316410878198114243197998804704755400898593789500252628384776158220259514576989939902206250735878222772074326650470644235777294506333991774661906302009296594359130969918002445618415919909641055728909999257786552997254874436747504703424079075712692685294957342005511645551069493197330155165052574105205543927497619056583753335469977063229474042647816567041282150790696497928032385037301269704451700180308011723138577671508154356145156285283112768361617856510579046466335337635717664249101815017111440273720804363774976063668752019491611747331572792478723501491096487104234391246269423349122479580048045006686166270770622188757071456748962402563616916379620377568090465402690408792423561214529725875634042660903208911597413690556300764345185469271683102368447388917027784781034516057170690473643369963453131051587829184957375836124035533933852217441731085522336358008314380175060978765464838429205753811208818448087478097854109147388202793976343122076069679554153094737327024396062870520557685390965240702566336479021059417124927478462955632552147629019683096914405577665345279759181154402957605025372670586074043499134334365615826116776831747870118563052424383247761599051760396916262696613114098655446487935596877518371351452452450035799980625917676131925688157891282033590191105694874373445113067178939688074001834982382195092025416795245101958393753634105935311939858239147889083874852285023396583943623147001704529395555793701819512274751530649208394840346920827247171259988301883273244488775099398893594365535687335680954242901010613773174089946932369818628705172625933590866717220344769720979310201616813013642000507466023618916088307128764089843447558998522547360946950660694338506863257709266812095235673748829280821187617801935955690641613474451310751391016639892504990578320378069265398132386059136747136849351273698546306571369556499352225582292610124643475744682828592385057376649822837902702252972281872192180576820656161133409338782172491789169207352841491527045512618698556017874447710212343824611053729902921053315123900514250295941871956039122211981110788938058658487273852046735655280421631575512006743903381436543979432688675063777898458540182455713553199425826057075776541448573521237224077499485493359581311877521459742332883056014695167719537330659396867683133502614017869417300068522881814495395740425297261925064375690778995804022199002293392030315992504706885394015656239549526955955399429962646851865951825205132443703627559523373685475411068432739000087671375933973708229729629914748129418517717368095817207481053021854009775776872841319400014699764027252357150622558675072824097704367003446676061547348794137592572697874330918529415250218826649099101344311695505352148329677847636109772139973227598091130176463956871148782857462243914774427796488756643052934398577697532324121657182482998742419186749695174302346401809799140129962819498811745107159988508048872046521509142581418715830408826663552850914189277086593375117096929280665045398880707152127680499434322439868402638296696783462465743511630641615969402619485089023049287800853454216772016110140523390237719210188181705148150895828188324250332619970340252764505373796340819600352707476058366271613293981102738932150693424665252888529439354053289897206152417205279157112054316440341069119904496822180940868564093986581496478336766601569040439996593615909815588193514650095015888216334054466292382657071181018135828920429417425221009805835265506153344141842675413906722715390627418489807160807548775731631579180738043964471791800095907764366586658932430236757889871604240538378693804483230875130538709285512513884293668851174503788996196843959677720976595459057563951174233093190802974828854747713042976770078621069793843413700933003771985922686180270614972099076016229803474923696090571805940259188898393438633911437514773769021716269501058702835657342138694939216097709363624868096036949039998027513414999837657958992600682519662669287448233888325288288261080388742862219496399849196679314229045687141331973193527430038677627364936611827896591050462383260824603287369450428641216027124715011578099745116691057496873071174672562739867955050170651926271890666055065796092873781060165896571195058468741141723045096137486007159509200808994444244761861760507083335728193448168655561231467088020046932471867898330057410719640737372563156890878141005502978186324458135453336180541973842451529646999380414684294562462106044383471038693854231683645959749447709893569396579838443611016556909272785374544207108460357873192182821192326722998383470330962154606617371833500385340428674273086469685619627495635884010743991934258890234392834063877771995644393387748153714248128733484456857377732275495240556425003753769608815559156292711101150550166462394998347541832851619713624289435313392922450890552625260881244533293118748083863278463232925145586379457728962619772607212343559353121100957072340367658738640779502628193156916696644173257603536543860569041746826946098756350050893681785085070309611720669847840217650554057186438291460668611897512172965556360738241315780435974895909607718691581897667704156821356047504519104859349557857204372045980450821895368896956284443282393594742615581406984529736851908143149197445121009946279115935023802703073087512976310543746630731360428696269017307147884662900677559870509440860578503239443366867025581997050188313127384916830162482455247422927740629313518779285602360981644958323505310559131240317427775531041691705350457984961219107722748174270490695110343656259944197827595507457365977182036940705817028934797984490216665417135440284116053528952535648399022431107028803734831899084233932106721287610721971352303660726347267185468845051993795268776254659453193847419611856541273647406159233743337352447354910618268214127812806075360644381903208467508708893482000512107654187208889353003399097108893656755405300706698404534626668719737339221059579553486920389723690988141167889795956583964060076919961619356383144092428275743691854857759923565125376619377070816179406351514772146230473530864789664695140850212202389229799693550898397509384747650938332421830501879232152566311409802190695389256371128872821936434165009588267355063575457819267409936111962228921348306999112980325081921242958466317628743910455067377934267214355512160841950834545944903290021207628243131575394874791688458501144714168769111730677248930655211696110906720433490713182847023217117848134354023600904215471969310975517819052103689142182486251091966197224852186841329410710391046306626517910401217701242938154401369802331015930298306776909527226355954523891352220629727887600608485042369030956786540609358390637714705035272871679364702208733765199256463559413886673432798106399261005097176862729389630008711367949014855518737839035652297599860437535312201674047548335544128185308341678034394189690617339761434899845465748396085380241812928477798245507095791804896490181980217103512581856343920038328205741014607252396167117505363613713297099751522582656014211210311796435208597410421552574937649229695779618681405311114561750211848876339333252430711107701962722016667021220665359201987558750432871503576398315025117007471013809929634502872397056566438543784802558389298836721134107609922142943466345837829138074352745685578229313807521921867513751611707620940552620294276446713201809676904932968628274452606362419545960184839402627122459076366663415547911482014347333119440148393017989660692528783993566180885379117258009664173609727602135835574324269871144246352820603262988142178178526691981774741832151191072674567488163741355722323655710124059020080297379929478296079762954370986241301773641626891731143591775855814653613411172680640108048527424151851990608733008149803623108108618021324707789572961083115028818272243450330376150276981174549730770637784166451855154910971981441010606915354828695313883851561120650221850805726868612055954347040612769084941623480980219186932518210463953601260010794463205942484401934610562184585323274717845343484556447244573234373563499196375338226538959872330826357482052501675449196172116542249886118635907174651594808811126283339345325907687088753056816740463009661165313285072424169940041290804090056762831350688172143973188687860308364759701571034476208314156068853425900377247255086672209920167140893938092799113383803828379624178717037512825747881770426903830769193615595021718624665811546711780010100013909610913889584235505030299488807844695982782938840197524930346679129913000753620076464574799566090939431804912502861342750073393156706551513298206213714099327022238941969575672716251880062062635357093524853914046226882265520193851564338557671379128525080663699952329555355091840647496023937125788647263719956697997028246522551969545363011437929650436961531151632578836989714521452135093064940883515581942523131257924451596190832013702681849712892863058585760076487577571200340936828593942189884233126841444098734463455255015123514619050232736419592266852341642387298280930055024465770516165302169840192624721820889257699047143118393189423347997211128247230243516606937996280759013816884624199318290477868157092788994863783704428346068736438241614380261806813072561231487804823015345367893871456241862707638417588254228950625028879210857219176343132555514689769111839817926658084715853723105955566447407804607757199937263883686478012412205012749726230403561433639054524609409014021997281762238018637036116813847532578209489887940021476129301487263526676023592153418830663292035116678969481753152461971741931312296381567353048283014842499731311967485933114645119357488915188658440106798278943103025649406919175608474303825295008568620133143986519538713635498162281446381458067524765947437870218542426480671481219192770221747103248623952994372328220792942296367484554358766187663997852806842493730382395342365501030458888407368577597416481554451776332242254916920677972337891201116477734055895397656397594569222624052820053035920684251260337688488758178838038722100602053091437702811054792832693137716883648264138658512894625216670490560219921328312838573167223059358762647058032501688528356633299052813276720938063564734219235775453558765929581665837390277637642537509492431507977146173960968650736734791629364895281135213333839064408748592794880160966977538914860581818335923185577648318866802472990849079663415183225609950422636671666374796543148113719841224763931897416850647496361595528430985523165907735146354702712753561405987584972630434154658271365774092238224414067065643220440951438456646212171287888328356772403833317063223839512023983682164898330961327959112568903326929790376991074602162020155187680063027741496938331918058867078253356388342942487094222919267118635205948057949685041039115598965086392582047321055097069779612925526996076978801623293672630450707080676881712710166514682345937312133383876831282868975742498538695806648386302204224103958693180930179508216104211530364115476309263459706897818724756064171894043359829100154430065480147585998494807401007181866399196786458212011920654121810430111337913751593930639014676827113176245145293578899484740984765932023634950099932861673655461441420340694103631036321327359585616990344026538512536624409258181037587188516830070261117047595990421332923512634868239258531639545062923108002640323846979598399767419442522775975783058167128129846158519896822842735970351526588517476767991667715151911779325998786062510018923286927389534501055277030227642175737364811262816699228435859106046427073755920915313065260160076563683822665754795815168075555979550557580510894854840332451315889930548805432725226253456593566272253219410660414218652694182444795967628310698739024597762465555973113636946652686283090960359764205809005366015981395591439394332504445995945117098562840420401987728729860927973028137933247486428912492027625094739854263966935161436853109031089392219394655147500675669595312807558607173025328889080097915679843206172021858625515917024786405859404263622961301803049909132110021526835251027452593579511716774202026230725276967480438072004629587220855635257000408423072740156616336215988145003149511671334518607015823054478568198920824202967739152150581805628762139011555410841683803086018375933676137769293179208855296189515049263332991240175612209882001791653479879620949913392362045203582036004311421590507787118119874745155563182982305949732164141791575218124030350567073356498377178924849888378496384241200235335722678598887594221075830444219936318136451352344379267267364408108728378038040234093106948702807375083080704702376533660520384621994076956817563774939487083289372555731692964149796210149638186726024152517847297495803590234169271213468379454641112478379219881530126744611285448259182594519569953621640817748517814438776861538850537552829636940079703087644775520045842824586848725523553415356142505257593698447024228944034024266345849310994312087798006271421701190507063659671536539578300346500507281844037423919129984877002932680168056111128140963707542355972426768974072063925263165809376622612273480601392845277925462916270738800169620569875413997871845293104599987857442024859926604609546289462734169373444428895625271546197661015233205422043461080193038592849422873180927097371478589099755053156703997530777972499663960322160028787857540752538066636238726614628734390180359611738442692498429232119314058681603422483352080338812558161557868607532623176619856243972006951159910688300226886954432531644697160592364197095858652997181165848111307548545494165292259883437267265866314485977866468380921222012863446237842774814713129212325933343628194972191588224743963570740869185890391373764237789683693281061511829232549037963214351725826192189862877153272881244508770558315160539370184392708273188377245268434988526162544482781429019307546048198988651609888127423634432465242889531007003238636444169117161031963929683086049623355100960451980324287932844948024266531645383508117535183565759679396509432222612460614936890121743340441490710847124225667395164909154851609578510029695834949060293358712270644198804787439210369725286110345912088057607140819362767555466712255298095068729707704552802913312266647075864679307954689873666500686392347966844334649784237012584174315622095251833270445314961857448144000386129837079286035460453364322618958568165952264697972101025546806190509408047004584467127263548988715974873899207888157269607418133675023347399040821304773510598060453527020059521049384451155951731188335766171386188850004539689047233445291096490498303612611768553508930984801302780791008615830773337521131509560302028630557820180368015115035965290840693697617051658667550014336825543407404048177807904050719884562386512497904902610082379661650643645773361703259310027135455852223511676552945065985415845230229961183951719261291970939052911531009985268246213877820784342172214869278114609091725235552198113621507901098617546631888711547392515759831328843713048927490390905043272787965822525059749324009909368276714288805361423854794799731659467777405025885311162347197558981090567250441039059973299618472749820732733202136701382186892730868645515940303021917625403551159160469360606896781165701017139320488347844925206389706109328175952130172017177713559075261578025386504125339676483136522242419501843972665959670929791189084019135530536799277951096988155183517851874504319748053273010257690337434496205635320798787295589044205254998865723780819741571172070956832003694432729568295601174262991095009271586105696230674304294281429386225664555166931774272079631790493535886704115590818368542077138744799603742184160603560092952386607287139686382283893402731659433818738071116754899736729774912997312932542428745507118951594255462261800355232862445437874580431137712708653564745512736848972791165842885428454450754994370464337882876926189634532494927534595922421266942597176247401350302652825790036682759686774714028510183880943268427584749915589444193267524672938916291475495801894978918535218845241714988110878601157491118821342162351754362228350573382882643899368997347584326482510292910546619982768568863829843985427587264138502828125339811665729759740927398329799018319963841776607708300908837923429327977262789779399241030448504339990249920794672980548225040100623905053191613922251397073042891659845467872493863826932106995562404467853354695420606089882349083127420036004685975827342777066979100179980002375441420864131340209279107223432754661618618851946987265926350892501499642575470344937258738311436956370049664827188027660929193649883082166648033811092698508279233529700996285956366528865421364165361670093655960505519512453688590673203775248448920792753354112717434803119759460891123604041291325478987546884816645909729762028339106783502147602166428316211787497556145599128040674741192693580061337043315060135683125639994199759946463174767808425955421053561258279392450179270960071550268664828399453992218915353077511926261051706176258438476737970948606308331418864913396995067299141985631560089581441861807380131058722207978153086499734658039432187508656906797558125623126569076596649996891208256008291795112686624437888762940305501157623458897654489186161364881055696562489298561502182223945216984749191293955700585321721430710569975501648359940478949421738037270195586787868993412890922739219347879178624705826536252182170501879115700402448850457806962537692827675895187277227272916120273278859523505651510454780446787293624711515938953035407724494536198003581119663127681520239647298824299104472801998383174400710343519294543285156487111966528266850092015315932120864688242678691361049296998305204529798261199068235499000098302797646287909834990259561587963986729615836329411018416317829622706130859217092884926410273415891559396305903306499841258330406713467180600279945560330820847962357994757589301433183714631117575746819251761310510852965296420339497811068112102204938818022917285870870733958028467467595388232421174623231102116083059410902887554719273741679134128932196910892540157424153588821668993959336776990247431429402017660815759341733941302847674515014798670120384211457294632929869980925158476822265780271666422488206653247766077382945804223059197523194114667298115236747147674420711092095306382840096478639658158414259683458491010307630997498673662337983507635832701213939722954642293088767317953221732317969901614811568238605492251010905938320409581383598990826118374710721941381865923577340989287704925755085386490144898166042419392072504629052035624825421698734646044801336097170545089031474103853781526460473628222119550374021597356353056763546159130271570709949566160846825014403230329830571164380269438573982171652219525801570254226646552926364343502690967542671188811322627699217844675898968639532395982253357458323177542218279213634882111816539309297785491360791357504817047448449273753877144844857505854616128080806537021880981552693915086035194694888262029949496549557992984005673614026979672024668540727704140995630066711775309613268809926920781760005199341264436679541699326338845652232456786334054226933077292804974333913057123461239810295507198166444686099689526489175308001525042670974984313831495237230697784696893079205302475895493147347740059252923594372985688011604454399328891086551312849264151736374624045573621838422090484351270890313879949521519701610356250788424077260670496820436139289958901170667881520542674105619353837108977337325005946485934557386170519953235342880346985268767265685743640563114163455552777143669148009280028737435751771417152384519890393493238387569667080637110311786109772552115949832888956815846050133834202078554890844469649787423808017554961734891288505318582158468354951915784635787757409192380528263729702964765984258234576438850349783018922650673647462416286458795096463192629456496562462573813256503675260021963207763214488555550656379984985509054043141308385028672957218507036746194929565807752435534274134875921968240454518182743844443892868412955863945722311405841158888897928260556020473419431423444418027607555804917159099623901496839153427485237962255239387974379381141969521550567870561861738345490263659100458635206969605667129092757941570034868096638154853221730281089462348334423802759402253152002639795686782508345404250583607472794759347915540978366115195313447431364727984253243373610120960819638498253267116702679631857993003432699387852419354136467917632107700178092418519261472382803769938409770458655111245601644459533255337494031754608175665991631219596367700776879241032172191583690655945677783433896318365218080732091745371078276970969591530048692849093825645570966993723067126884476102873855037933086096769044267326970438278892916680208845713872336509082397802116288879411208154078432780301891492764784705140803050241473299804389655525147732269885691784678651473464685326560970386606143294563467893865092316797908182368766578157898202812472497727175008918521735260668822012647966330690614363607601119235843728752773152281782076722259232984792460750336065310574557793949510672718621544713491802813386295872399704779266919213186918638692853487187611596437928975931429253562604196395802607450327211461251704223994783647359932279235803150221302401925971085005516412500343191274143427673901147738065441808543785521123446208842053405349102655543712541119589413063734082180355660099821954859337835895895370992889856887173443220270188270240567988399967445281072747030379211190087749391600076708522913778141911725069570298469022072254908430095194907621567726156029238183569913760783806919489837215926654457581289522989419921459046655097718292373012818592105608848937767383432861834947940542770259821405163539976100843247369421221577584658711615095009488051068971440125608455737303902984773862236052519122050838040681509797554176761953220298411438441685102863086313418165000322530547472815262860173690490499292797955527112027725896570529096788109938412855165347492197937934911544008548062909390515257948971530160667723584358992403322103893142095957201893847408101577565578624576655194251105187466600682322521100437967291614587284634246899921071879652645825300306406301597679942605984795921318254324763931899370250711808596008304474887537706254315234760778758536312383423571900516809245479734105416455908414713618980755676122325270438423589775296646263383908280142119496735366987883552272101428957849381992064827189142162144054077793012455215308742670548589620276928011190017113468759200397792558177110595676095098906435833558308312205754129758591008308042938522403390290248274363925404460730469048378377684284437624371020318245868759356492245625796404557058428381577263282902608366900995246515437670405091124117880586269832088145660806253497653845042353155994010313372604586435210029121192499322737654059708296394340840197041567885642241633170198703103787308233767284232562988220981169018817691483818185822809511737305973267232848042824311418403936047083956851863735747672984344893507841389983362617991597895701520749182355205973754884791247901292710651037284049918173909766946699379429884167786998163926969784411312060990248833226493373708710786931266948466537130040820620556306894925853689726453826118748489547992249414797500453493575316580859290330481181294382284593318583819407508221170411832248265232941357447791769522814244251850755353570763557009285287676378589597654234925820450562304101156633838257893646556016743470687029570628327621426186915713670948014030312941688366828160683740711536563208513663287818922032983998433977818977973583977068754115193826742646428864479497392123019800903416371126797240673659296541472695565020683352633772495248826791490008489945414534375033901892858150226051328085548078722727247039307535146002771191032551159740202080792240364036884677192774602641348850145872512995651051268904856778129428315552901189733099096690235621377284644110836678439345041202914172778525625967140279003668869037131876234263499832162274358472149291275875081864873995646293461005337608764779281756340884703188242109986572318904255272898903012243343951137166263054885408223733509286373215388795809194023713076091221690992983970369180079480868458033645658146179967305809257068924542271300226476576919971182011753646131389251248555600674823160642122977434914814989069466458808626823981486106884194672042202860379290579754254887467776874875034256965460561357061583494532608715349126854617277231828237408490337256347581714701101083097136828379554610626179272120440121633414298131484398887492071309361442444866293477808663076714107994620895728035257439825943339520504109767216842873820430849884163539578039938290960599622160772298164260010672957021992520389358062372694732039334173344396038325021582364697255301689625144765572348840825262056248009652967978208744190166780316947505240516799106615088277683860180043963098488058532607118124786998925840449347706005370091511808125392065512226826949322795640513829657433139276930544950168635033790637025072038177297856031213462291969937219291401613489829541905579441181941334141944722543632728194813279842994059911051054661400875496261224088166522800139679549148846963471207609875307946740919949738803623104393122963013045576267756751817412636232895317715004235281352150927478984456629123177580126477793140256741987959686217915622248153644477690317192867708567883211982322725581017911119652010431051187539803815128641069049217779097426802465404673441854529607958731126979408651890832840564944649565077189634749649083125558307954987449222497913636850053528338136423741065488535505683432442798499540736121121362902643248854513465172835371293816688634305310975246039334351254341512921736093458391910548324681489811178176726065853670878102351963057341516735883046816688686875689535061253536731324479927316014935803906264249674632082054841296266459734768075750323702828595978688166975965475034525044746163550890693031207094795805009606177813355430826850617604495805600244761353997553546030265678583688087762546303604472961287253559432157227072446887930505010994975197910776867467032520316281755294509433303238046393296049279782137693932954135302454117485663434291889275317115526137832513197973738739935108919506564999734378595484168956620954033899419034560960183732795605954062632892450773947820799405125283675263644808199747754685231425040394068751889638399647560433293474367241024033600479689980290414969245481967269127585045063405728250358012914605691922114749190606813159528345410445425259888487216366633635572591298195091691543297430393821937730086470744150487868476297353733062937443987685143592319169362871405499794696320151776573180469066214180667066757752523224763358106655177017849469874378792666383775539554310878997582011743385547562032747206526901252889123120453090224443384763722833460435575420198163422104546821706012747414665953033431184569239133664217232813641516851869177121480198603548654017061995558836333024600581401652858250336117525785261341195324729484465229328021303160093040506534592013167106544007025489408092456204343783635757218391168393698819079155560864559507365197039653573668559653062672874279326217125737728850253369077018448380611593019610076757632240560739454571987599662716003945159403457852314760436553630472579352552987584123373393940054642765617323244463124014057097578146994370345351506007216761420692371082380953721347078925503916626060800718312918234607964764151635238271214257677150645907932456915474286495112401802830643191977755367525016175797757157422769207227494900022479582048695987632940676908406716341717210011575408561956511668043434862879096052599471322972448115187644323173747547446260094815254191102515178747125202463299178233022094409227084053697297470916353838639704173645309278414877834665143286559480193937214094771669060838129843311234267355093222528465156699174932509730755988144517415220301365966796497945980988162046476440342202096194066142329682160044864535425235983611571122994042841755195408667503899769397740518747802448457243112269816202890643357156189211239987131286205872935447627229889794373154743888301567698942250340193783259188378375583200705139054798503557739238213317443785468998526687700506907137907853136357540901095352636202355619014451543065635049117066710095157490343123754663047972041736382532038182139465086247570448286923809376864669710435826661342151816802545257119843096193599786941684137279790790335035054226210822153273567121737143501216830141687927345393163789948749825662117513063955379200758165855750412262064214018219675206554461103782490985696556571692337644490434575972019020706583998100909348806002005036313057637866630903024870075731920929601947102072168471358197271218328220913152077502476919059878900540027125918777683726780634714576833637965662627877966225463053840358090225847015119756476668509025749723966566637637264161217003191029401301382476565378598547750974500776044485563892870061257210541014593351613082432383893187981628607156836815729106055239327335315784696225931596777863014549520043485911964494479176366452670661011903826023280135372990183618423560883432614960538296190256745099116967155766617034343737751589255144062725444076385614563272394795016100621761789849566386205674067009820286855817183487774181734833600056298017565676389521886376999283617843347414518398076620890390998968350058459585464582375610376331896036165072592897151713384278555382669510568518449599068985567630998607389303482580555244658774531304063773843267548596147013086130534512753332564401376697158088000481935605238957082463412373960805993007664391743414805619906008392442636366512942562766465476108198883260187638650121205383048079967293784897966597732055378970611082954940186271202696648746126167025082328394156662217832408830309570869645302531950668918498663617974057402378128983273446513051066771630655338528552478735367573112368757715850665948050809589414573838334481818594008204494179360940979756619593599438731336234423590347470639902108772736759712571939884737268436140368435908579746672880221545565580597749887723412761866419036768016397889493464682952925680777673777045864132293293605411759501862225666215236629657199266695178895962968580586527355950758897239225398073849008740442020884662372571969742536818961478005330244591967433874198563186133251261106144382186211439164408168314733042190786438584283190030951837456223513914031003372488568398163002120551658375740577749136931815104046515863821907161039215212241246657600205783443875446668735280443949323067327708892601115477233415329973935764553452091298250836356193849486411225722535425707724498866980462930498189641825909476212072439125196781610068778547871847972310530028249940638702555689518072120700300089641500628412433817400154847556130469272615017148566089271186879199651128126554293495899163011307440641887832930918336723112823995893216358880841473372862938730437243827250159100147473017109912975344413308362873482865982398341067434018377853333431141557230839262191744204854537449171480355813295125207035838379297460188700475498034968651016737729828570233036216532258103874679066330794119878513016017310445234577975459800631048615584405253863240211052832110032815096214205805195897562336664592709132916268376579992417261448781245761912454318594433796978896338237916802410702970335159069816812069788270721115257577965449314345165731887617555797010437554979355347331942686834117900908543099660950846683311970510286487122713856681974312944885543287103023149624058343193921230848267874606970210839298518539165583559883356169816611191634083831647534368049792024574708768406305699566265549569885715247681316273081613226003945217895517628220740188780016047183366319706025088317826538704535380110858658722997089360354119913790013173027629890211048697758571681386010569671198268208177150872830685731192035824297523236402366923181132662772542866717223620197670713003669127377181971215976480686492732058933944770683585792037476141542852647006254358847159918038732677108581248711564661416250095733812278751488539444745758905650615102952434975119569811694920455290505983617338629919954036504286843010008173598748365803783828272991603827371666852971182911428147397259614528182125064338364554448545525407383939589068670995732929384983320984905608136002509302225230193052761149574252985148114426290844125421806452574645389937159683374128237042702042971728817537796074090203984164525723068086472196785228763512378252858360261953757519683467710665344598440444792503765601003300908657792913164286166769863783949781325654709125911650570856340426571635249429035701636893192917002195476618897221412331893574152275276692008490341721673704072597168881088591062723726164738239476035533927628181594936032467551369595637194878225408695056730616910966142149412930140403580643715036898225717975707193016140255708640361836813087867632848389264789735875873974026813988301150518890340052126152986886206631498674219254207960254369598245166105271748232392418401756672560322777515581445961588637147764328119393513761626755672261549228364829861043909362143742887278176992755969615792339471816289807048180007167480582709791713420648249659906651936170917816105511987694576051919513781341863417506134552042351720717829666166101701997633737493313201838573647915174770750522641817786836190554787169957532880410671475492494466136476961376600437685285262069959043667287274190090347948898152898924450269413544812201527838086572587558423876391696332903309397020164899465836355034780818707250428120182886644092942630865347791514104943232338669432013969477587198571908184301351716270713415221281121078421024539828016941539845693178031440346717556682150572610314041616875737927308696913146328570859460720407072756211154884129506010124045023966592860818478845345316976943928467227745076204008919627909058956017082611851840028014023357979309299099348129633486930437718931270302068324017447487579990523935917200328122745989474066537705172803687778968703283253223641220264382017379491252877368709940716952874910149757842987909199702077563722397567236740129203789029160721395023883574944005972739878439389796403729444958193724603055424022251058242016420519650563015991873531772333234668097457000547441299177605367726564657793204764862781730413402464370963811772788486198587443803956591056401541967378534884069101539714209277585008407405389289343103904007782137920367562342858241202718940721138125808571395270014959411158738262770065568765363291697424741700991875457326776527905854745135493480876659905157352582532496602694940102666135797177963203100209576456174602051238096455215817118336229444252770007595119782402157171272275530166053858274888240793058868483396868887502123652358441917733536980582983574399379574471796448779184300506485464456972511781699791530763967722980116498514317387941329446675466444894516479440755987367060231984142973564006118042320470536063046696950233125844624373965807685605630683820099385714372752571308172146194390125637243509508635842819637814262189701951112250304588510212101010807079866352786583477852645578315102126931162136338502688746447881921106319515760017114187795008744416174430746089199889151189132543236846811087653420853001280714693575696087015115546340556753656204656532861590501302144058080383389281905316605678164149239401459106155784998408599963049419748975644209912772710527684714341251088317725312028744521728933929545298844087144807468144781038019084970390181983724642266386661950568969749611068987728029534943411349011988875608090885154735434274025678138505430746027322091786296152559272304976883008724480596479752225062607904020387278537846619228819616667831925527522580144615517666954416111442655146951620766175030514361690509540609698496675927765731584539757745655464541452895848990800830770249542398046578737651900574206181755931375810234290344210267218033024482623456293515927384324268298750285933899130143345277249553271183300074581293761153012180598958476443170964702952486497978358295724112504769634071487878644873078196233580158329758279429280865202415755777932812020108414439465951712555222917889449149198887111444508837011063934169435224275500698794065227216213422683474039399515227708691410685695470163117137784749223530093303022995033939849173681297220928134037373175856021329187448527183624118938551784445363172575688460382333046194747622775477598780590553409727176718986234497524380244789675920318935108134380038615871692702366823860562282707737586055417068379590105964694082063735160736683979643508108737353024428421095597567794253745318452672856033575201951043354959599018964615336129871217354032059430741172935777875916567550882452029596489252894095167091679551194997398368996847413719996035219194080263437354154640940139827621478458662123369370551590947775861810414251495872997739329599818384850883812103146020038680172857309629595212957825902848593089804059284178815836448787813586785284295059692863629070734171654516870470924606020045226984630774467387732539528311060610890855986559719852146788167851481793439194362604479756737095568701639296913091474698318880835180802832761722983474051271613104532342926516224879999033594226169478106702663132406739090873231047827290438041300806403242337862672085870840771379064670737771093164258252952265328184908315421423388224072125707870796997945906163245473838339190387838776844752999923181444917591930276458457809406764161240780711909518547700065905562883398386951738484411127231282682282635154689930110851054379430051224054042372196076033265725843214305934784736730126436057264863640938514124499432000665333926720867980820748854238389471790220730417989572888526201601642823482213103075505181878763551332219878680929874709896933474631051337530434639253684565734607590262871287490904167255351192041239823177390657153778420284712534767401276657499228864589275152077903794141416140404017509455356424570618357283243693369313657057490760889223606571607030118729427456372976746099909912399306929095249219649374627185106988841390614354533400973009228427062113086527497108354131909817505738215181706540444711968728790076664229926113698608799488684487246436607352076098287611461917022458257316380803792267511116423325140011921852004320938375260120042081888783520684572773461654002144806876270107612706086285058399866736885642527197232289859230276622084838989862998710221445276512126765440725634245577186272860103083233955021007136917262203772501005203764509309114192481035884429927107798771691541377819698037080958611427032559528639002222532630998405291545459002453289999621380827717882592833573132920782673093742109079694645709532891591861305846532466119960100562809790189846642905123994944548826533825587951796408680027458829703710072645543107157053094750392289813949662355326304137749025041002195656325542017352400831691065936895529115050142036523574499563545989376173759991753510472295714366135156004537543196781299901500397750572593242677975538788075653061901581443270595753191701229832290761484460019701384887783042837840088689827444164547751307326933460982522078049338963723425928404905264777813559600710313790302938437441905574817985972957567657816838259138496299103822597336482807430070343995270433780991913844332722556199030349858490443892899008915819616500335455917052610525479859838148027724865301808877614435526647033335530942589614326834514010186171083943502675819206423311620330315010586588185387265361567366457462416142519086394581654538562978838028602265988154062751666214228200881142816722625866911331648667990737203923344863894507781672338896233838717742051014738716083680984658872166542201305209474447868365763836321313179242943758856347727825465939966152193746320254519338918012281039453794030918796547262122530859307831546123804893187001528144953494871141036350579706094841156684567111763300606034854066762240782657181696259141699842323146273322976194877842962482614570237838924856607783703572570708890267804147563309975513154860334986243900699249506242953270790541962717461073651112116174515162603147433363963858894511168061494974373828461976825826146983330136060554601494404733259638268034538790729821721652726819152127365047242753997721109888953564875374328495592684221825585308588229805337473088918744071518766211535961072238934547145544119516871773198680468549976773711083598815228719863442773641003463366940292813423815375442783809274377766275164766199054887225485905479508968228135373138547398257807085696656204626234806292076008984954433907919387328921334802166723503023644353695165156777223547302349962907810928725897550826007480657584753691207074196865922742387801005406715236188069427784319246603222969049204141388382161298120819690699028558715007374787380546664635176514120554472337805765765847425426762992497146232820063036659011592243727980759341763898254077206267524590580903200039590979271551169142719882359872772183391832819426041341466136294193237663067568167194238180110072856153732996839038950201263128465009552112262692894512086051108195496949499623933856277855543267412590732555154551681836098841936914799951590886573777762816306686966461806855437579868153363049218029320358413280592814590814752990999528452965653219318544186387424617151657668517569662824879848953977321055842025293927816351930085067659394714540339987684167875668044502774285042752635203194239414978835694386781761166959398105942905941103814985259353219250013601773443407967769210901685581798014636573505931924524769074987126088398618421367272272151593706413149080209442657203565968370539620484236718316895649324797559828023445684481652744054967424988037984318453726155030534027057436796995828745072980578386150821756767296503138064530707206342080124075734310313443461769861637286211137410359116529992948281339274685251111456058191809481766447763524770347112185034397714603986721235257275546253173433205248839788317289436792194076094920309082793000536542431674438536373145732268043447722253394156995147542821268498876211929333942430740485028337007374893974607623336077936307223420620792390415402889112780151805282304024346565214206053797248650166666109528899299046975952754838988642680569112739878770522191146927218328564001753472409685658991369346357718388902360367641868353096141542441617671771754587977119407141047688358835025283126849995295421031480177762409685250454819771558573982444653382643019703721945540359640943511267432551819077653029285360940929222362845560726529509249029051024810584836051081151823656539635538553478330107982990341445867590990299952508414027297503537710785388416601436701974944806502763295896491355091446303654969441141459651152807717680811688789900429801761161720958228351109010046119975430552408591435191989999300565011973543846093850584125584715946265034480822602284609241598991047836853831842700877670525192646837956905618978292930348321176258119798720583749435930350960418476862472026388037974232886500870857792524884299210105533739480844822044457608095366079767169083759810886408048342390970002465808248082652877873136836183980167746335365091023287902443714377391662163529818261883260809023791827334536027580351595784155864357861462217566054017296929008025070364705986293608165313218659904869398137848925719218575770667691930141716525123467031445589166005767765548563176294738284137397350287253693589693635117306332824244453944671290577788590183905273790215168344639582137220754669378658259356076627444317357456729531479114782226077823803383818955888746652001764989978261939505572316828242509705260591244472411790715013667164813855177298544385389532664810048254344817186360412266083319785871721529693794245589288520784507523736626964366949863510775916171559992157919002683380210923817554879847818954650354588358715435402890190874445447723931970427023989832566305764002892666942351344630607033434223501145335557083517331806445006765600735619208939712176174252274720017138144753064234944907287621799392770607327863905264028526345683092415852818294802974904934977603412985425791092516306910293915016072631136284969677073404568888264260630546067140056413169831792091977277719781949726086549257607082246084184359539443801894290881721806693458746310806502769805521817724386300465290594292839308394784958496854298748608790402308363248542839941007196952929731056654769954267203546475420065840678956355832150352347884875028332830335619394199251567951828975299213989176793859881437057086692131573206070274690123715038965770233974783075813302326759014038830543941829705721914538574367420867657453083894842036283532783295305210616949835317319302704718065255079896152004467832781542848470531748888430503311801297016626821822041303604480037086595176262894290062039656905501832018898994751502746023145128160430916378429218682499248027081424291494615035469907225471669658671737949610501330099321105758543754855166924868645319249292342813999840633653836892202563780981652464557246062019501975222581713660742916509788925329760861559721500350950221969839714889602211089316074836546083665740682923527845202558142309272718256132581511277586758757638860931962692445557060229744527348986241089437929041542898306295983435715787978147821337174074116269237163675375867282447679954245022577699658353342836041794456918831126155884961904342956430025843834447325572861636999113215633464129817112779351649756781475240146869988980543446025228618206783958721680185977791197658447431360629278064466999257195455800349322753408354980199822216559847298087468193375314856560752055533270292343960430904482626144058287131809555010981886606547224104778147591968031808467858805611468165462750527878016362602804857205440192962081954518984216068509475148855825521261330244146587037247510581904333983461483634186630444008789894280718941220857280570967600571777465571030202077966041842749630421860762174298004532215859892080987262640512957007969070490035603594781166605658246894287082204564538358522809646490752001822210353638070894641767314524073842606915507765720489514357797012900619303034455138198314776626907546482786315226612325095113727677958056835954735216140051065700936996994701495496824771014693825747189847169275713717080499405338060210742645887118772218445569203533427730108431658874686914237010895452806150941030221928130659254587373777595344699287892188772216113871310433107069673533502534670240379303399787707734008993470226179857118588828406761251233380150580301687333132198865319086601523512562849987607784652647221308250679256444837232497429984836524622873831417886585321796484494446847669407767567740683304276874411228223032141266529850964655567443229402801231637731004729142298038553301205914809172038153360869265286952264995317508299629768417879961023234780692424280252037757915916075534000342880238023388355121574591117084094481133529100614522731614840781680151942069807647233124847519643826752334535495285897915810596303739799153399013517686372486807116622175623381033664726456173898373409119720257398216735258738322388626795900984301692411175904357750818246502021341159797837032605451381174769481124267488579810207026637863238350806899534474023578964462263578838206688300794038284141861570816862542427843373461506031804606504681606086290522005094673838171186486516000219182687299901799137871749967020705590266910725443685993497550550991972244657572643279981352676355994821445973653954676654684367172886712460718826836557669889569765722181206195067033631043062268208338170083304434518839021580599308981511388157891002430770050285265330534621450684632545406708090314312076678574911531734403086329850572714892693392939667344581419596384760900873125772402901515519217893630868612930078153428985854760901415189256944874755855556154041243295116051975826033140644836298083241554579542187659691486365061884351228369246111133312364612775060007093254937259695428465315838505605484660155681153962335821359159382329824645576798665964012887929877184160987219066529487804419640656185156530596600608957556527579023421753814775579789786975202524685955347973393405575919766691666435771542905390892770573227382049189163421688749173387555525052228320654483167965582524571999190798490990246935257443021425152948735759886175288684336256174646885844296094600446988177032804033424506594176441748466588082469380625849686828170800218564317426900065689661335971107414307549470136438908681066575311618042936794715103495289232547296225369869660749981164811887054476466683743748049228884042203265047326800065450266117256478544785608563981158796010855656424622221147659031928830850085320087262123145964413734679940049720323727745534882548407842368052968227222285228468946551226676045066801825390844071956250506201634768360520769405404946389157213941449140428557903684699039695005820567201268208922876357634546338816948625813422165126795305851717837086006780496450507237263633528738432381308813975316917003249381622168978084916037875189224795847083378606285827920190138685708517281639502258227641402610341680110564658792986046676788970059892836269180878041570530150642027292643296854119920485350559308315887280022584924000113642824265122544362974484514857299942478419815757621028809549014397669963133719027805618070080635004469684083264586718374520385951269782211267654651861237607073362271878738219692305195247169946015487909554079185255918667565028495778984119002810653824418839559482737057948223324279194897647583222832053291110282805749893159326107926225875691400782822916289590873006648907963034654237079522168485736066343884365412682057994236768206722254438838959717745588281407895998602700913308197565596650121447125410743651206623363901356704761360715025106002672164237239499153928063788799216231948516985146735423072526804920723163049164598375486360646410285917614464713896072538494472456649395427025475062417565319955017747252582305463026364735151937177561246299656027774057443630953645302992174639414012514158027771668876572060096001284083100629566150052499146318137443158599219236824034655170085041714163307223814839208569934092412619678844033225410458413371140904463296692653234023433873824115794794939936774243895839578038229207716627881984459509732517199983070920594212333975550978316921065198626365315238706969532308828251293654555608709739766132207349367124034308820089293556482240440500774945724074458343208499232315902765140613220886422432436844854354049092092041581768898504462639545521261588154135155964523070909428760871749129104029306213059544761553419359940273464748402616427890657695413067068336823137167527687365527999308638596260407243968196145401479917724136766008011363034792123330451179048235304975836095861066203083585806225916416251001725517104220521746566475932511809907405690723947201239968360722293058125044688742671093014085020691306090377436726973293599452103212647070355119164093311983265772308633834166080017352486160218856530544765161344408277753346395584528343948009600145774005238450606408224113365094967565067861254243272139103163256704198310103399301955891329277585087907930874265160814136469499836751995140500544520915613532987350022701289745208632437185021596296233658139179326270480572693874306918743730652211989416778148134870531204204755548964318699745774689260529145056433996401573347071305514577037848595235567520470270588997988586326766852949614352089310315371249874547216773335209352334241852854443256214494726689142936820738004204305501903776787358338606162945892046984826832689820271478682409091564894050402267256405307315246346516392516800066566748453626225701109124364270845812129479711121219802461584015603496851169465054889124980525737470030366594051481134225524020663841072295814386006857871438521155729225019080304225936796524310882263704115932440982060390758941858010736694450439442254527979564249992275049314675573777932254252485495525882778251157475582400434680656240450077816409556224538297355783622860450037397731119608462985921497237212178549636752479582005682346866878093707362070894055335149640981487061832307708363841398743617057401032981947095599286999050193796746089418941018899365268513111802676888077172221219684746256017590742534275901498701626964636907347575425808315835970998128270232530096424939773122089932020783300880432795214127190083750392376058290216032805971869218705434848176116921290449621940971098769008821851848570810759696618717531609253443960468984211308061478355125281521782658871402332587014981654480873125726074986619512297743153326968586368983907859758351680110031533144977138768959332174627916408422588109827159663993474478221584674901902490448190749012317126973384769493674725372222566979599548681641508585820793421426642225529145636366906378055761475584418887374879119270147739175657705385886813523130576775515737636548309392092738380180456935153124844260701881335145963148553768916050268041652003251052685648269097320569920189152749501905136421795321802803136448895629465320280849231428286146807769404047590150748743161639385294575836049314801980786957951174715166533950784713351605154865869304854292334986877497741356954861044125036694939691258412500491817209462418946001201180292434661059282309485096424558815673592852138497916762381231670320889607734248735743586748898900426701385813054611110258224903615992253819666826671076811210117204030192601953008795730287294758677086137037626660600124703356993075702708813077909142974127622080451091282890511403738664665737256657776607367829689223390465118578389014647462329357192967901261506380717314546791645069154957422694944478273928514381483298254602784321572835198344384339418490918555179577536217992011896875183249409404769893647797082051103365500777917404891403555921317244371846203900609049900375842139114363331916715635437755649094677547025049492378559270931498149890408690365295475729182101753761661427787583322136256862074201953720296487215403791586036222416274716143749842085799722668306254509181452702814810548358857508057539040623767088254891995983550089146879687120202474417931619971296896426539800687158502179139578650563379657746643988062239714578090547820063396681388124609279501500826860737035519253067391236977108176502723633034379129736077676201680216864660203149252440018048921460690815633106286949364323829227037242841286560811936381808722322625901022382931677768778751775190931137883376558898716057362987149276374291623530000406705809591824165579532786820392278901555755475845147631207865843766852503229408431406348956527460192417399777111858923983493971862516468007054695442975087835861835488582015129980209508286310738004962669312045712295762335633004216722233033362615241311274892999154439403344166822144636847267376922165868188640837831299060914738693995148847663900203740401654004039282794859129246688571425628959239966446969077573608916742728422880491254368193918110185768451321674162337909170149569398752675981112688924663722991451108771455740210782036954435673149694089536249440550656344231374915261301493893338345860673971255631873879452730611580310854309704191301384607983207877561175790168488207274905755781216328036157864581763474994563389689542959965014891625908299028842129466381228896205513675305524786424580601243074576500794301049949448336132577333182559828906309031261592965769364692104336085058158988096898300391026588338219552821762112854195280634174594788527260460801877683674039226143914936421175829010750943350800604653964660256599579007831798800450131475258870729606798292978583930618388195614978664498698495194207538006049295895210845607989225160942016466155044440689337088851292889040174903904602363901814343677667345924762189441488175961081738207678087254391038534436160796966842766583781270857825985566445998646829638851023640195682655988298754136080015666049957073885462941642103068482561232663318598751500417604272088987440504216158896814475347996056052166315271000291353335927072526861123725424149702966220227751980430829435524139625630866796527485969225601095067062001443371008236753760978916978705410649860572373639548045896455139594634833066504949310672623775525074690467748076381628980996175735693989751917300443153206317215416191162144419570552065409850536133622458347788600744459276671055702776662756310889461977009492093133138355017489844324392310616820354394376125248630692926814339266843978224641871193202842643031775404365499036374172002438455463383195051577927521842217495295428617624605015778298348084519977819218896022874613275948091375733912907010119304454524553390581139536055983450621126047062817750397968115703281368442587041451714917395146182749292472933712047719825134784858959031507264403637778081364294372565394836392590140244555638751250512792886354575297643354007874815813981900303316883050675157327238653175244518059177596982802490821709124595349684538222890636320024824047830224922263286928114473102490927430353135346906571386919550487702257888419723170856227377311309808824485649217691638040102320665114322561483312096815129775900254825058579169398737872591297699387103415826523594564973968858423714877727837003361189789850615473566609268221678526740539159251439308033521962810289821495557855485102595928549553034605336699567354965501979300811751962010807828690275362417546954618123343864638240301321655884511084300914230073129824123572091840499977360325603266910537118962363180067635689451298888702528839185512852625833860916560298721560763575142931258176747099108088331661145739511653799220165133885278440065307929605407379248602881355353704908693230952243859993799524782289843618777430530045974569539590191727600438495049756751168305023626122475499107452381063950426079584192122587024298097978304369267814902452958646299359349156123052522866112625383315601977581337687844310947785730519036704045509005768694647954470966665602744655914002657097005740179858971480046917829070945904728309829286918154330727994871952647543821677825632058675099050771226388047470778995901142143593458854805376146818553488731161465074741953438170643780749261181865207564182115700345873702109034944552847285849790515025723855684694108410474970120860966989080482163552213629423559789092186007834437136156947757464791181264542849878705076343320253481776122724816640202882847959592546040698205866643114393659843873460927078975861493513475552606149915534688361764302723922884011863370980049813012755273987062830213399483716167038201794580829820751231939289789251182079448207728068472605675924255540067874651258958720540095806083994360676408783365442127635344548122876030459305966265856090453414338767785991153239488075377164117361440775377297280254069875220355531281196004082271287738807612438131234032655640136560338709051040040443836035349131180636025979405620121235650703912931488244858171689715215023870657238328753257372150805274957222695609134939672722213941363200448102259428521480354324143243553306977495150739803588581061837668182778921179109280659959442669467393576466357775039687863809494775532107519388894513311374877615757862558713141346669317022863896041509906265112203276809865219638840534882029434635309829634482494871890554265419156909826405704058147048938688015653955390603255996958868423668588528094983869497850458548681138304591949499914115987723617662145162947647118949036960881842003012791602741492855506508457177496348983344252366217650755906750763329510660731905237507485674287247110003323204724858170557963407336857438855226566948745509638685035688555356877098891187804297819845588293315383772519280626809146655108273845068630779907335492462252652742929362930084110287357435494803096570538272474901783299102056504861876605750186397380323952595136935692615223257028849536472820985568471275300667755880408035807885975982909773381523569844861013397288646451942697802317205627356896987366465481990554088671838132335610172223599027709466520303707747675929425550219189380960865946096883963857768890947435033733612060398961652214062200881088805889003776560606898608100771869412006605907001702138968814513679766812522890409432916291127224713669719552029840513679321061111819377273385023789903653179036819396908809583927303482004108916014231974819475342876839126184536940839205947610166889680189427481119369544186576185677169380201405087972825517484323784489962570297132945370810604794355701031234036539472638673062694803308484684431713866984796518363538864403813829549547782817416330860060678759785208534096458071759667413136098221314872087847807473489165089441831637927618118617957766129953683640083443366010618873059475362233530709368967517170645281387096562599411484820497623987124924074944702376845327378933602299952445766295532093199543516280709896215591806503690688458117586579538244526826654658590694785441374394767524711263956178723045515026773034713229523999608036012166983501749554270403248349198854435701892738311603717139770194400400102605519307707114434379508282680895893520110543127709767542860789699909053715832628947684298206715199678451831103084749605029933915423950878262424119107099693716610009933798703639089853078928148808906372099278416727029312764116089058430375240981943989646265890200857291149886021952115423102544007255289809034789511507097625081568080851558484612840674092653494045027474285352149767655617786881037459542866389893486857051681264964725061959227269377185006141610350995695620033072983521920705396120181352561147539620469392966053382959503591416244333633066615466345915138180978335730147189384385821382812265868924217274315819152575099499637398794231919539181703686758319443102107804546343755694373465688447469834118980566336797279160122916131895529212907243485815607725732640571749095996309452565181293414444572744874969608350548897321597389075664494330319416158632001265108069170458052902105626937838615465644571838657814532655367304864212365987735370258897339327862414682954848259141396064773128025408073274516391053429497173976705477551224550784941236786326284512939795443877850661007852489405518849894497587286457536648288687738505958321943482183972133567215404101045908876120787037882977974898601124291387540537551141041805729940121838161481172143847489325262756069946344208238174400767896827114220243723612374801423290899234794477326888389918428880878617014918060304692453913221864808039578836381326416065506276801014331990804211342580904487634442369005092449179159147223637746315231908717002073538717667927631068989247582083768741443672241746328898100865598386937776798559411409735477904102512935647722556566419635506104143930038999101352767665734164032904277949104117792385947240323214397946824519364289439465457097119658666777683342374201760859957029978967576191726858193645027827642384880713302715470734267468811270214324956170537843423150946075940187283117788747091270427683447953738228285987632854005489696865580757230286308676142367502305428698614592407180997579182636518436550027311811601666680605597605301303403005910869854240759089274189316072477622544583041215105579906119325448956263472483873948216048409201111536777485631064868573099875148338727705375270273815221160398086173372682529030201445039416071051222456796194527023026862776996307192793415697108688979036004357185147898103485617013594606186538473399520833201926403650072917838621937541760254493990256950255008211888436446031543667548382575929328729210030933798427639958887608391152272220976761912486402414686467656674722483106422642774376426517431898317861682324216638259499283338623199694652648740054959933214087071297753480426705254688019506495416851172643239887279814968202636275504617896106766528366372452716885658212583062225914845804907620407831461178937164989197905648833287714542319921211696638913422000873434987752702221863938367634723874303973727786404590114968109211391228096333215613656987751439713805975666973948478526520938625872430260786032846284924312580571106239382921809141641796595652778668258294610305183167862541591493827824368117768455656084093965964830633919520298506470246699885022622047489918891586294672512262383197309234755593978993080762394670545063758017412978257545034434727918864374119021842358787330939398453769418066576652492546327319882054097796529746438218843967072480346404348150107529772957796243210759859152811260619789630669776328505105938537295788856778198389018124706525382281736594464527085218466327616775452910886554536892102500499367162633955365842530068043433275582260703700327300883165537873505740092179323955297857399134374821411509610558744349357845143838174148236437824477885402218985872338311915520604738795316147591440934412708066183906386499664765593211927554371067495027176488412040098787734484824332742612463467592196371791925395417788916416151178950060434616400985264404740678468361898468985085081205795393317489852521722816612580432794451402292762506697472387773181713008746764984744323113980423043653877718158840014688097513212399315380694732840818752320291832250289041008278164662912838542789274729408437414859245509215330970883019036892799925158391734768358464779560985822757518602030769704077320517570572406738867154884764998085180838796463400250675718177632856783284054223505861387891087184495818903252057153928416016727782698627630896731987625947909729957326514650835506145087038006312665053844077787988204212122286983607451768296182447985890429472309408521982251945413402187996382003725342844104213068015073648464537618743939759620597319047173765524158207899576266293177868692582675039657664092307849718220316770084728417151498645711981838842564322937530783332504916436853873606163139191978790552414588135520177933912220948555077169802682858421089308412209451521993077067969000432050595963794219590854474086582645967704866750120732237473539925212898731719114986813716133771819455456017202059111859965827309558636358004524407945480648163357716986407547410338647098964157631965587070159403549783642579414707859711571533923232194554590061365168791984170458106457321464225807701207579889131215693072612399685456582719302436494454791197158171107523974177695569675284365759954338123172616496703815648161625703406355679916687893305493257638206436710228989337340177905819992707560204997380400817069726708888010579211161469055132859574577626212533125953271386387676710113248416306791166362055357647272664423069422681885548488734440527667379444027669999564972507964069832926821063076687299228592198096069008316020329627274824320765676444626291191767807297319434708110588907604627720160217538306827975454920665152875394444674115663230053729662761024697190362774225660228854552971503502005212631227658489551229169253390011801419469399259816531345510135647567398244869723838121362426465906829701908286704980889081580963378470427446719082116623968802950170554608058825293081203403820824503341420130119230357723782648634726337864361398879306724526678363026184379458191751817431057402862547773059549703747363087983700371131628454598074370005813230969217344775405466615006450155811090982361830533266922871446853422199076163648439252132105594209675557058113698788117434116925798714739362499058569291660781766522511123557381083606071494916710062871926033851761297488620867139197217925152778558795590636527536197582901536378318937752067776506467564179420157028848223967690553030365032104957256553327115130292306473306046216997319957377686990033603131989233678256623252083227399924075727439848009654434957092081162198502366686690454787053068117401995615010802441351455442224368338874031983197961597608788915193331133402209832424680909064061320160005135434439501417944737699673763009858114027339470855383823558415650071652482281339886091890667382073157166289583067882346486324246107477648189495778266863599917242438946486172922129779417054105459186946939823455971368210312073732553732528233942162341294453024018011509699951144985686614699444837199587499959234518337956767138063370639080708279392121138442401649520629580925074997553203539851250443379885345089902196472795628778023681076724391931121418374027919183400962504493891620717119857496216270046457734648322206064992958120042767962414568320197377179295570616454905722527884326297809099487330471289664372086221587172880782114032633287133860324968767323927981141212096182397326849380760982998055141286287687634344550019782225847463827852404486582906690548135912939086222818985090593175326979682804297990245897745719133318145360472873588575909768427234397038857250928003205422271243099732714817581266000803672289580961719462671791141410565867317162908310489350598180795345145031761071523798590834570628037243645891796765157886768764944974705727790378305095294732474263463289585498353746894427645559403306548915530404014545837728840725155235290372354496472145463022718049266567414523693831455981416227877066973029546279037305231973362984605565606212082874442377693480540469877476730086976726643971071291986240709246581489888391284394694515942864399883876455453182109050105230469043383446878797875504338786135790100808566836665486787983351417988756139948045229397964262839833290304526206745148580776792055843359958533464380185847657573993585048569613939669969338437683109322212297922530289248735362572965622067823382085359099360612980299547991244188329241100879747543037927641850667430803111464562643423905701974895223370386123615769369802863036070664414413907818143321854265917215650176095965227717658633672566694173832103524896236038985559655423047743576536918315079245112182588279901109915665166274468897178546193654190283949709748751994507685811956364275763607397996717269161442853094207095243713566999958179986212735460784905980123506089438506122324143629757949001073070173172938291429594182112498363562603435848602015066432661076135772277654842527723987077498695582150588416980099156322125305140226695900649829588132264148839038545197690310433344469400490659410467700255275654569588156420336403148116669312327222539601974072484681393766070952318991696074139137774196657145548275221494906116516692212927473622166639701031952726196996219768457030347154965524827727795124445745666919355223291681651453417520651656146653068888901347749545363615971583999637962006944003943513726986287826057648656832293162751979908785257600190458092730850104066906602551889654118488523583275342862838792161365246121940451668922218716266561529956644975793342333357927819855936321986020844115041098426474948562539525550141793264149856437847806732246596261654967870585907259162130414054277802140200660439096853043041963221484623329455336288037039051371964505005776119116997800285569904322752111923671073785666585076010221351931674363186385649692949086116897440473878300510720107948724684093061498401431825719482248263828156178692072521829056614108152599991148075371753756596516795553348469850193807480424134598906528999813439188992972154683968906531334281524781022489519664601857394355746928686641546739888882659044129971957899461993365845042106802331741272260417587025296527898479978495436302208745291082395805958290136944400738490456392014054407412575640755486659323983387968797450286032709725433415915300598911245251325981192369483990671713284401806660703432309685972423173751379908767074694574965004101830526940361825860563514839979582488759618671689653678249737911834620559859515398739868983684995032736316347351731616613787592622190934803372793378735593482703213656288940427066227819651069611499297789173203011816335778694085286216702684168477264500574958609655393636873595957393792888310959439588231359872206498426429169467495216774476282937045150105957534092003087469532465878936324070395821322518272968261081508561130525536962680822332854086404450653813096451895985332364731946472569601497167285895247114917731843698852106820865767182181968218610715124099843668700554930951673416043403656470478607466930391303018609811976491967653386419111669204386763939682206914195405158405548963348414240827445736780963469068238908988842999445569221114214172269589713622297447172272817403155966092885485577490299862135203196829070078861488341247731194603874729203660636750677605999698151892594288854694054631507692689137788274541586053716736349098799377897402403230819584385379724613492040446033235077914242136679598111457711603894241089989625835730018839469198995680838741158360567084920423804163764799555413979373887516644550926739056423902469132493826246256597767059784961457941178873848546997985953214919768844280287374678084405683649265899767745173921571232442271759835495357291302785770368303824047066879614913456808281768505818633403817401015237402132928884169173903577812557126276608020336707854548116156003515561920139412969650748902097215896062588462496569128106102718701244585381134483853392611888566801544948691028557362468862186566824560988385015973512503609876930815178139934219170171947482339338483349809268459227675117063010906176512219640946932763984714386995966537980948266391390684324617475901270491531191713510999004076174211792345199672434755462581238163417960172037406614158533556617135187397996581848691899440692612005031057382555817840689861523880950181304171499413590702632264337131091915768093914871583651504088824658663514063917284882171244471285870499280498864388722223247505169086155288859236738601273493381707960437178790509322791166436614051944997855421025339052100957515509598688703707522096839657894520631204127660648494989241701307494352976095155213033734623761770046758659551782820674489147383296377751252529207503313579922114636763304185893649116372413006577993473568018648213953657670756058586578503931555657196758184658121900658025449448907125380443947276554634685699718778225308145171243895283796560020793324292644202517802824147581516513589855542004248854500594502342838976797505419877293214464555451192344792441008725890290457447756885487739569646231174072115012223374556472906849632395094657551823389947056173190125245989267969344083917121357405647374391043532217702547028488542650445491927781873724807782677127543420509184837924688421769443419108672355970606377242932428791164580042282962237668257382323022660087985942277809512913073698609256396839811319475364297528499053210590579770694914261490527206304418571791853769883184168801287135662006117792858902870741963639940244059381417841389595542791621946970259887602012373577335981072315306281949131015294712668304011120919346445661981607511977357568058571065744897511922717047241811501549235768404661905579617099103046375471916190175195217063793700598349332102050486205821377701965506918483613077998870891691916386230417651616290390923666433903602755234039473180846138381164911243613088086759537807227713613337785244551386984841074919154144628795817856704547406325206395862040384420211501597149706739640030487943267016014646612532227874332401581512772039810637301772416048111667456192636702962661580772815606216437760390400056371175073726336475599644679125676740783393356065268678519052894658144536290580908962709970111869305081087209672029453762238309571709022988560681597849988925585119813665247469430293587354918758077545582679075928344415323469831740979529613133314885355150768602739623299706325296396234650606399030568804691889759306343913991277695424561784197770815888410488396626251105717108372263077184605507556516840148929682287647471158658082992647939174344983823958984551141766374937069434213526376076979492250018357501302745524612735213156172360808410830278031013413754106921468948315906871494907612930475771989794868951102933322583270496625871380596279708829042456409299452726957516807159922803513569503803340409967729187973708322576276540855729243773896865701610551233106911796360279828190311664402672920886933327234879481663883082302557034109036375973130170562914422144941888575656891909483515117138148881660174700754322561043799370873951443797380263966846078732026538988110156685950950132171540812668610297322523869790435649191192183216178551881067215661584032299544590165832327361702498076680015367316835418943384008275142272722505635084173365873082930079352275894060777866699225228821651701453592392030366718944512777413743850385502976818748425034783223112595216044588959497180180952349350372523019065469971844886483117349526007691043294634507889575216113225343799218178021893700423440608726011454244138630060699571513742488933205441553706397840863589040346577173161175691876401319843214147178748893796366854675325386086040595422518402308481072626738818980367219026310005135063755810362112659320070984659878847184837311036219734529513789372492985117484225892320114958679928250532149635040144431115810556747476685876746644899472915831484111901368815433459302319511273671627097219764063066264342679334284778151658905034938082646545931507085378266556425798530961093739516262704518770101147907105932900379194660405868779055599396194876381565408582304392611671497775617709313322334802744524008538412840285869826195558971012563194554458854761332631489047420779379152911168424226302576077411422468979867446293846949453891418644146212340252471802847356029311723629050635312677130013873062213178733021941627594731951743994110890239677477709646172382084569214863360709532528909274571770073007472270452295094292970644380086664157810148841958663360757014751932773720849200632040241737948643038659941027076707964339887775717596154658461451669574442681424368930855963631567184830409106848278073099344763464540999138059279930033650791164907924898373345294397070482492893327966334324826396775920717525383568669396638983522658077296333625836455790186967517584509698588390795434583430711663454947442698444070259498285385101019705308000533705894161072357527703688946921304600907505945530498824533878516350859331984454242240815503317776210255491067720987294343929996400404291354130981077371461755137775485338680680665301371674676683744544974023098925673365481389751187056027620653253277956849993648812528951806321190740321047570458137358919402210107952883718034735985837628987892217837151204952619661554786699131981172773085363440077376757876949107230432402687176900358350287696858264470997202766326650833252628825310470323192383192075383803759402526176828807732230931070581246093464799512507394003727384087729294318656471400789375814538497831299934101237176932016321970294288187611380011271998427439030399221497563348444854619750370245883985332546019708939035915166629240884759665612566271060528738118775798391272285360984012311636692107010656599816231753397268958439868393114901441542862318106902917553503584975787422728180495555901130599538042304637728065969223129945322811062338445533058046884367490383001916509957698530759587203933551722975924820889756766424225212219457877481121451591183649583942305212673230539503078522653657794863718550489082742499006734231096202326367575630681039334298264694837574265862326919709279334547093237238798216567717441110109755619797766408891658775526189679791504717522264236321542950971079618178102499930462939212169225257311395712962615749894773310293644012917275496603535637783135639158778461238928302314108599488474513209365010133862940172639883329490811368048862738199598992352882281879757236790382398117461452181149635357692250014894687829536904158937818055797015508456939218606897432365377231267427564781463999641833063275036657386090663541738581188499398533399402719995840697510610677169044254362274887296778667405605981612614595087240797586686785649560027564555671706279270383893063780130713277149448540370452506868797445150708834685531287293809732326931526960441885637552431409998862780424980111421335281737200397114866674306990247130126501155346462352454705133088657250479801949314745377599282802846206442523852182080615125150895086038168742310072611694946696270929007845757990825214097852565497537030828000480608062850604672861827988170169091191359990632202396637282952581141124080708755142006891627087465165577232088583515718002409364206327568507716224084228153849382474769446032370147153058624217504499760231317031187666161781937491512210518549690751050417639848856405881169895988022572265472195902276644144266804039193902727320870245135390319649306789657346828689518620485016754331745758945802553914986930234103080398244031110417637394150385236203661141814684325044493396659958878025301013978373107911906785375908648746735508358072340934349224224587917472362425190687151233563679415204324786242815248474036572802748351690675906312015075910772971871889324680847130789913160915367620557279421409140373531454162765728563459254902054432922661916628085183717746570596522110779476379460595995784366308965511809963140677597217224464088156376127910919960422176084955617897349090903755489496696920541657211287860651006424202051146945664550379102258532425016095174087252155319635726560202920291071537879221528179949440595111470326100537973102723777958574171933289780883349248162190983945400108387559937793347960658926511877471338411953444522191631881951053863059503739099242649652804317420367184669335042337763729366083759478648496952782787955384904083832425194968509402429569383301616484530609301072154261701644136601209258732664764726493478129489173643654446935061774225568095985910382475773807909422498325428433334162518773965204538650342081882827765255551981251653627565319764319605753745392804170445842812727876572955382059183550973594437511813567165809940470678248364104623311039621206420336263272848799853980163363868071227417762710285913838415299982153860400180773359410563158306550588678698054966161542281152438368815983287240536450058069553517208123036000933887276349287160383005112428559576270072225281785991002095687158139721160361559128030864638346623549354939926305449750180056435291048515402394772250765691634728682137011209070766426907641032059445914566684494099880816407072144489883537133331076633168144697809884096632367822893966892783476236163015775831182362303793977913110216266771357188234206218906870925027390528149727774086108442879174325852582558758586148902324740107245151545844671124600738208592596809864895251128679239927376545298058050772946941071836774776515391736589673679523665518713970630965366716698734621426202773130950333046962216484459557517231622895197116298543422430677345772892534775065017946081394218398531168326764070797345458574401624606109186645700808974128050112127371628461300092740980791761830765257244794371231488784475297106210711047121788349990106736617581351935282820620895370599581110259721511437690509562851474128455805751415453336315323261629164372733562084282431309745682278358465533496130036840218878829224432806539504320969066163552171607806291149133437236422502463339916173458378348959215699374491290158681364314731962410091552838651026022156765520338567269576381761866750013594558990842754713857725484930326498763119296242129332276705512669698263385197515930538641139258497133697288876659221570659947326464726787184864688726276613593348983604578037740483152460268389534894285864283690371763425830647700144930463721425823246346154312487879349524383845786590840223296146381946108939421061884399953697822949470703937485205761729053719190011446168970755282626752090754429368863900860491146220808809014113473512337328147004088004121775574265449413940471467233157081540996062677467929566230113290367050260562042350315333739949434595665470621676682820231035158225042273686545580403281357443339627182781632681404115053961920411751126077776246807082270178142660542043268693175363366183767589865540245550602096026702779646709590245930437341661017003288431938997530688010510529588356967541308990344107060718128244493714029116072162875308327651197439277922007318940211783099099093516157014132928023188934302022987487242474419209074166397594813714689950167995391342104318662599586653175653598621376803891354453612432515547961478215402522973332129161630759858292554259335874757586735953672640321855408238058433025315565645428553754081417383687152949422439985677298522199280357106088495687937781030921598105803065154418767469109565358861646376449007614712435737162113520442006379931253644847929020829706202206846754517386816296859049037614757659758211363698335220525572933990809502823785368839199250923061249908776534842195695118724111178551926123008149075125487810401109714235502368558379710406721092479436077233697782571543338132359155418409089819882231624723713298770490594877767203231281445685151098223623985312838155349875636569375646281710601699439253458129065383698938320984310697721787136872766372116486746214087777090069823487937811334226764364025150902896822044497132019003759862795636617869602381934192849630013872756242579816304082292394231346679653842630277049614732852121807322873247025707349871393898923816113105210669668276795092975913070867219748250489913830840432549563197020985728844132571555461879091561557458863371894413639619068085159778145239159931283467165403671169341847448811297341581790633267187011898262164637246497728723622899857618210942638132485347580380930554716585035514305859304386435098447889211876911052649152697199355336405062153879016227000194076719754029001148428944628511584253905721770821585775322836755223269440169412104893552139904843458417273798292327876093167884492655279423231130139495478433968368780279462968782067074385383569579749953904521933634595689802120873541181381170528794233397901897965456884075762394738561063801659196008659749775173410421275838149754376518179875523027295178810453632045115709966333069034567417648675608667387931576857193043353080877240409398993753142509682353270680569511226299400080874847607174871406918127459211070083477066296153876064668744333393603759928183803070546964382059205495210811008435197120995020798219775593250278335355385042668149971454298770651578496748453487215117942045793696130747058466976119549197735458086061821775921273164274663371771851528054575371847352747120882221561809403808397470926679838759550309230218247972997959720031528689496790647943261895924830104416756749488458035460585299991045180823215431896119774919869893292078822753228946583701406412302028673900364607904499898530596936361692962585458791087016606771951148019177931934199845946221994808149604747625565953827128441991322676920499508215045388481024643970462720067811648993344601951525710869268541095713209990595318757013967351587764134980315280104036344015074134026783545286770623044599454786468683881202370614178146074518493732587087066353463332510174676854730508110081624937204209663994737305140011027355082735314884378486625118708203892192223437540091915088412384434310049603687240468226423629214816547256999227707178880944597037219654474474815681855756586425811821688187724971095379497323757265784294555659647724027898453171345223172918356159288142618392621171118334912439277395450011868131307910024861896268769279930402135634531037866770153171199020484873980607432527185776445115907544999712925814617537083420319706307166920607070420496209580216453662356018620940755839773988192199418559200180215868696718830823020447626640084982591984048320847831766438230975395104500735686231747822107451212583869266778414110085724059129547870627063163855974201428543433646702862591612323616517496168525529101052078013094152453022318881025637276801748942308954838064444627234626197639893850241037445950184056544516030606384370491432463022860475603398668971360052496247916196173660758334058750339611767859608949017747823679022991059813512236483809882853791865519357679318334919212467309971955982673977046838082387620106103346019397290722910853568231563112833961885187017846935381205033380796288358123263304573097101978535309751110631674311483645941966831328361857248676916441258214454482216640327586450404951570258629353501702628237159247149177514295605351189413161491660759768093163374121557398019725447547925206647181268278270607291630335037935885204569434333751371234422824991641963319083233220024801692972874685984103207808669793309867381967652052679117877275157204885181974669354876751564436418241051892291340008408217100392523964985632955015506037319499448133168315958841416214665877645267010266026740289605368098264277298629671143905273599158951618485454009849569070675624891797187496516905080471107670462874263222698519596752368121559930858171916698808594165840959632382167471800689464517819358647980064005447384506862111571699718672429349379938352602233568445779331971235811074350810043980469483547315852858546579494950419225025762903176860540361214375214133623414097897251149485417666818870691827217619468872702961935928644624107967474708452635106821927469588515483930258677919388491532120543983245102968799423236673430596848571608994449978725867590387151021273402311040460694891362236176019549880027793927734349974308322767288999295876143780053615626019730041885991443806737556416572677784623501538874527925947520249894108639560803293577045923962915410212558217590708386047745072013553839308131460979479302497989697354592310900330856353391256245276884031423969154020826394242247271715068282666515903925605200618070992657217779565840751053715791520622107400802496562275029010812743564482284503361637964619566823904090838760780696260248204424460302786422895279531753802283936352086188855803691378273640373638903280035323566264189086494810017395807465200903026463638400504180969533035696546950042799863104487452602604086804076903784867676724248950806101943921844122101397601478947597627118476477704905447458903305990108940984528218283348200606011094463980784758834824276773575145781629539849276242353207084030000548415619006525371796423071409670693449443726748906462071799991584882671165379748948973792843117832212037649326379786644349395105299836857364152115908946474158120545045425125631743212252396884801164697473933781739865305957192917358328003852932633066135616492398933603175719117269259303560950941149903891700471299601865677604761656846569108714370956333136041098547110215244749860010262837581902958677089644032402296985020211477868829897663303881065482615726307794900141441993790140975773247837407382846750914525958936377368078274827310618454868370031349421183678070128404600179186309677690262986049165153161689455339993488704861370377868220217082172091353439990614222063054735170007968692201768157617823789392243075377957030615987436328737830620274121234104220477144206930776889125177042495054127159522206177499063807915233592395553330420374001498650692874776735812104976043956941227870635359430455767284520401386495049318819650081305541831217677607859477974312465942550479152249567956585683768995142085174817537251531457540890269611402916050779953259765544968444538260640623783840096023223484244833828323293247414692963956396760760036821613696223660714383480094126944033986008045906723837403597057989252327642770312515463903361232794262235028543571841136368773815423809903516891497273302397305043976275935103118447316983161339106711225216257262888354350417511594861491090577694819262389235800893471462926581690310356388392903664718682421325284722534966403331347112771008199160826538402634694934195133946252361535459984453331016218312832259894870810406770827247976990103018928831269494050613393911809047066817451474206700477090338434120465514603954737098001243660311833844305464293948262398070116616191892728636269231708564700605410910904541161548923927968790928814697792170474047205557664462758719759330506365100203042899664133111659701622056569545134793871608962883575292767407093927496109344372369450860607222784533183714042600701009242044307235419908655085182246879041973790228003048088393971500343450326143337414166374236050060259260084926590202299187220390895227770678194741805096354065473249491895964368307876683656575329848718401083712954795950738583882067126660170716444460069094248562137506417081604439254381712723720176885587612463845255562860732099622990012136969622680255450778590935651624712337267184005866771663702376015042324968185555221037761905874088455142904436554508772929423503900042321285487445731055763611788201247286813270892617461003253777763920291545979818647687918598965891492808171249361886317825232772675821717750406290566540682202771062928390234873555424988328276038720190539928753695157154963822559967464169117859950497879595462009908028321920293902089463410048853607734411363213099448557979207173954005330940616465945139812362110283385792819088345716346877814891206011934286332659553183582261827272746506310769018935892438652562995444144450441293479604665825720786401139606183836768522359573441685025538733569083176350632455539672832076155272265856173596786212118561985124459475311922770141245621199681148671615519142595788005894625821536468595973434485105436508625737754337677235746885462123632527486640991155285296914319129604427933471913555565634536464779503507352740299011578417105769557507124397214381879741550197548714575811064599249703449367220496648966168672944426192380542906814155857254323458256323581387005506928362205650332815674974989914916118443544246641523054353548958818470060186496859420493653885815771721737373016807649119055202591393246701597710015663387077218257450541584025643969704541866043809495863266929959779663881107879195585407442821965014799730980720867129007828132349347529153476948520656478930393894120647862960890155306987136271674545904312037203125042502400526513553358788432890403680836052836554585132955912655773129588237581250198988464728825302872422291523075472281747651407026292401018496705817341968126963091911276507584418996759169824562840823610307069444089402742630719189364868538066295905211975514107424953042501439904606046238223445429096354358020034998288056460421080143890772970820853337444109979894132626081316302015887534429077699886462455519767325224718595844880301897241821426260882449600777705876506332179303706468525239722057382764968628876256344031786405269918117540275611881245000251237327213736438662293310224433912779981328832877524900372017863005868033949179371770644241313019917338473573669636720201404548673851595122037286058873122049908642605205658918521103082374792217369298206200698384648368102314520970531533909084387058048183866224954003880078770439374963034116110880916303378320621039754125587023241321341406881671851409037867271726632381170221034726485812458037021894459873846131797320758994243750641268817971621693693260247025431417997317932794239589761558127621692254341649882393887133625936806256260610670525951191247434076761224151638407349044759565882302059343056999355140291783677650410732075731965359359091055964275403461270040212014680191267033830299163099912731778683990287321110164114231972234537893614684249897947732496912886818652087783983045477231048920800381763495928009436681177813851805102063600865977325805596792352254349227655258237255945582174432818578585692027155303923887733183170141978040420890270785517544011903374001941902533249296676442580662896047948040674932531531311174802000576387080118508550693039271152536726890200116344632597064074290398949302225982098141434413947883941364437455328052427214761623960162570351017424338695264909406757200514179200838363779731167784999842462127484992263817213250992403586597915355943961891742609904378946821252898549319696339192984567415649249759456046537942275354186196705727903323185458094734655698272774770413717546118182863238807562450281271556124761833124190719296484326655273048619302488376055127758242816626670428995693473646641036553769194981025230867560518160234973527373338549281024954599816563435694149124981696533132021317206474869961128545773602402343523268022379140857983222045683716775775749074482666266943262258052787149751101868604743358811241263842080598516990198046679065628491383480522944414772595961356660055704254777515298753427844778266674567363311977084018126201475517789674965162375770474392684319371285486042746620469750994484987460356830892033428148929473873592972991244390838551131243980854589786216572204506102682704548099193096724696865000930023203101527091479563002099139516553689984667032276588160563456014201015257288316902327313410918063235555949883926597807181679416147505201194551042837526423487410746921531609182834201339101881214535572101067897425189937802847388422051606123399941951990191607518849610416905464488947717314674925228330792885150857756686725540987724639518070015983054625579572707753643209754323846778368994945948496097193786221537324504181701421379947581254687131833408648677420743925442304718494618315736803370900671654981683922509845054748178460170933241421893271038685962049091015799882389178450151386778628850969493563208069721099227523669010882696377196024554290454390722721800827249259960463278749916640506961243017110687297634110677003571395213917460635928614000831403413095584351291207511750540393694777237294398252434970839186083764150435638047511001636435775140971079695224196495959733161054664797851576611772525086417847026910397080897130371159051718282887808811208013482056697219824204208280722367205498034137431426430317751953907872814336447786038997662010181636280597834068825625019194623571729985569411379789335826433005627192961331254861285961962390666196126703504481768807104992983438440466670753215961175628625793522138525633089076512168686222886383677454970514694633335033577847381793216136201378039047896919483610874556486993189176009052913014795742422548003811937997167689479333986084351294692603196804900153727059677995916904451639803142678376991449583521065643847954890540151854548724915040069295453325315619328453015995327690511714003357979762542271002983234847234187097591616109346843955562795095814609755301901953679858709227934373289102716280687962999075086119079712569252590474472778831387322878408142697433702819548773192784926073334178838948648647720410456401171215509418354948206218359666218315198653240412273597239109819250627935186268369247921993193574391974325864600225553458378202237845776980773397717519854450494748279326374472029377205831043028055127883721379157231998405530678679829329638546019836642556356814017315302770788949566674669553630262014489353595068364216907008687860942434537077546755381972288104507322817639505342400582332106610066230883027857985115234649881605229716343515919329037169276143302830625297659749296954526460834222961112725155755349207520414901299643841995307697554528101151203511767871831078166021445726760711307462566445455752441910106127521617111148678520246252587394040733326696637945594480561323945436363475427816999662275785239853975536766934015936590936108886278688176418543775909508015087465324954949613842356022923775716204448737068513633287344873495069228456051281047443824690528536751904582186807833486494022911180230599655670654905493612754888166098819326299197170901603779267624127921467171293548536018774046548565686360882509090733446205604411377505259387953714456232682339278052421285945909380517865495829066559260937373069594676340318345688518958782132041806192356803967853786415814122902732546781942155969485479657439960634668451182624331415968099128950465377021362575001770760750662663846898333353823202357689972541935957437527148746383590171707421668466055009112075182209396283057880823949370353706253941874794018797190482673529581587292840173771019550386770148468584974673392477260909706932684002843701131050867092127343844769335990655972986641258631624392314046138364230016288494728946684891799094183601488619350883483214306274212581665298020906912391142097611272762822819187992169298431159170953419702783121551722454163065697232371529292766273295651845341991176419889198462401768677879830641134243824825727526834572569459949422244349793552363095705706910346195038327058047111411420826675046510498270091973413688018826378703256518820181580978580993285781229117881514586895318869526534927895672621934817598637070320688357149929173993551667201325396974320276968327348630290082029260811761731507437898777584388881667989796012389158363181946000804270219097341274695965375599040404918327364686993739869441754011993210921172042399833497369158331696796864601365606824218568494689581563982672254439287106840370448721989346138051567531534474379011364478277736623509790213203725680640693459678096528549788442193982889166589483879621717205270885976238335228184672915742913890894409563537540859938001396046861339981800581662805835267965164778243946828149452130785061521792476015709395226652033762567444993604847560608994372618122364861276769459569569879760070834588382399500386679143667061156982027927814519421486398373955177019046619030790156765002562840371756423743524916966134640952874907795491951858686818082768148550747962295812627897793638489564571303039914776309239980487042873055969478970145664350097980264473125536368937144447864794282842046915335846398444381968979892271826766350586563954617283146216272970529619845278730347918186650328327315183245564386575999516606975242454149783320777255534901496466105484662741752297577898905398773818655748181826092376691888286220559043204834516309580896574526038159032714970486242641663579189033290117950099348283973675413129631561515818088447288560119959053520645823068552049540530122210023283991410780913702578583334994429643540515019749818149192243943194185481038499059992340407620190402527313365354146317423166703211052949865842793175009055336658303221281240176594325345109166911285185773160103829565256328492206622969823200595384914708372030876830570741476888922029417178898285609124383728584810100822407693632840305831356944911706828755534514188811820311212241078542308346828566925115815788243162065969103626551909998697374627526456728460261448532221790120617124837652676041336774547302863791134289242612754712343781391640163150925716519611965335307142817140316402433618416336324188046409860904887075454833024259135887538377923324557409548217547071023779223238263083379596192393815050522126519732253808066952973947789196353286194715342178747739698894796941492854377471221796971600161528518936807360014986757993850711677247576563284026816537873701383098747752846451954647294598117093611963483644313383226973960716308335247943035959518181976357180851089233890125266475853956430781476028815244280497841184384191072405353286496590181168620797838414781526302369230588449877253689974878188856481280752042528922337898135477934734586641000846563990445317357113134958582401472722711393728707304993163702453111834680295494672319841616856940605998696488223227673322115208308126320533635188429843520338565994897705596898186186832374396759997306937782198211924927037044342588653874229566650124721831347470445700326313065168816973132638637568485676335818378232424580633153818883176153872715414761570197926365968829937506681186178644731543450512988717517145630492198183424995871004840783431409943838015684556915868329926068615427498855404190159616716837586925902528315127215005683653419632577211758138340225111627177508001194521908955998670438134875623136091667680987643614844810885281864656721380579635123841921039791630777738846206813668972143403330633107247269147153479037182353059537734036880246961185582091825519609890025389664147194976569940867234097993993350587815883827832642707345792908716504992241223599904976744116239250496968969307818848340889587633461393322307117737183697948890533213041943474858268150814492224915893695542140715414072605085339479820562073415573052268871613267928309547154272508483334210775935831856878542182193700630499291455023222269857649834682536940916926801816955099332872536815452750933227858875404978195279311272443656195301460951509078822633506057415454827242199901701098205668721266902541646703706119770647921361230292468630847724633305921157928887290373736890230965772658524418944434468886933312528484967375549445866656694521960102323831933229649033488578246102843436280417241070161639630018011419317208396511719981550077888260787232623225126781397892474374604999538408404145011416787914140244643087873331986369886859469362548548868451194496663168175491220748939242594116602178982473181005361899220773865149454877046253929127292768218272824198899140722699135135468231360675321220751927360233840880345864843700982712478605549606628688096960824616736582082606545941699615769539935033802120003025632642728815565404590043356368805428918944593574857151372357991219929974733939088770455487646171443526059359293196494410860765850177746007280953334482042770315719841647772838094253007787363469618103211348334576745848788363561937910556189597371512766013350242015225244140336164350492588008481886057997888997865715200171886855561559157149760000178741693735342380664482481365812696516582993041355560680404721456426931854391032543743284436097613469479477892883984765094475162448993641575227326793298513575673157752405878715662971882690186508140487104674794685558078257470783698938586645102437022986258099507201588874409060747132157366505079007040498587428577566517828004636888511105575990209549592506682807583874706159961798197384602712353164048837454669200243364284014945195143979289733204598469508071123687326200978207873383966714616090562592742347828576888304391622280467528169791491946464309961828860022314646441586870922249819067251835707668372361714916802401061371065431451398599261114584530840658995190071604813793453965477538937951396035937790399632877526364852940779821722319991795035627938081387541728233597518251487919381444698929836686715702957953336482183967378370961606584077354018618669515164138875305394758350655194964354753999604658854976280691028972890390644058585090024631295615802658373349221454893636175141309862997194981584370694817234497481604070351433282119117033332594515067220766490684477758910359740432736514451314343263693605443332296418605464649124749084178618079181219649380132549844270168649471381654453876961888150101800657281569179196813746480880951556707517625743942650884736778207902372126074176841322197008831587065870274444124699722166749401314065255617104875634024853324145100654808223478048980224160416287420667431751806842259000747201805710685865410750222961957423294234234116273676870537126189551199512070450077708693181085701654437616856020328651865300618147848696929015425448515644987089333893127441657393168378197023446938737607723010512257964582307478122174942310637780437476451271136724391796188426095976493022062703358452213928126226117296736284474430823961871131610350096111761157113218450791983761072447533052166827837701158781360469738020395933392032663086884309033561099428351562835608185826332841861708148023532694543662592134519178034990849655406224585626762512755789815989570256895650209522292394067311440290261357588589623796294013998193298182907880615856134379960365186156067852633310396242621458411231249236711886215276419164948239904314796758576487137228108028991681947911650600858543703936219625850662992839531668263296145315844978813910540683137819279395840585459628148852872509425841023874279946675798593914896511553427541961746157537196658001014745954466646815705501142262111317937844429420197390953271911037625982525591571313806522219743202604342251491979256922825808401897000337869672337262990028796757460222165153172857259015756998161394669642978107679417191003711049581807540098457777527820666604810837155750791274170010706796716392860611710477089313400802645251925752037747777903589690115347872874237263682708831078329856285473880131618223028976597765576204708276479423801061156796643377372090901677781208951155622634333823830256126872680583730691090452724531381387015797860332733914796711797255946142393241233304227173606081411287313263729831331532243374086171567909384080352025310409128393451373090885640223547135464969447310190945732859598767240672069224458208197984240676209706306460508605175438134361684355854796526276058264402582709241616833762020683161066987703437586090405958587034219121530284900617426245157305757896412007650810706360866848464906618537480900395441188870601879355003954395600327290617281478732859433618919648113796996676106558873453000291110681422821927629705372038701631758024046424287225193350719341103245338877933365026571976142528952986813193288683409014258845377884590193029169186735413906249934580142277745390494850998926881047495749889137572027157071752102498267805129893845997788639222943213965407119462439401710950869615145200548966439183939382649219822005766813777732565016294860615757129012328006946019873035684771959241759443568097501182445461103469087493280472485526577477453119969136028382770874773261704224493724162731332683809131714645539663028180792259459447492398472256024368366307519817556544038729873979228874007994186634723753905133669577679118432227318982678014903190678324280188590021937017788229222332192682677457466742971704537095613789722789244428078563180272176465789035276925145701045727709994255282718033562145682842743285787465107238135082281863392617163765489706732567966423643603985213237761408121931377130317761160302106704663223285275218875092677201824711473502554672380517058043885117770359523955435225338514176047064503365638633601619348525166157640496800354456296347130548066731604018250703199592836260887953747250739631445424989165308390916999672817883262623769869540370529025308615067167536360178111482820697929233688972497225747849846079738641080568369090171883781897184309084561555175112969700132654353139163018549921947296315109693664052229679820780319147827746367361063999200387753510740930195066114995796319138226869103306460232392552855859065232806828439862829665980754032362327398607434627824655305054266827455000471289416157153403482568706104636617852953233035442401397338334573088464437211197710329741399792237924896327378192004934258930023461151774499010790371496909927251143784362850730335735567849792358681042096782378230828079715916074215749997827102688868166169400276400018000149253758239974162030820674356560336473059910577244232163996655752867808634578866367123590747914797729112883476969388303721424737713558204143108718275151724839879430904111414836313590296733427515255392064359853674973847564666051650352897630321622474520184871236117409768926025415764970414473014698850819665940127714624970971250052060400016318062647247465762941840532645518605558811153588598892762156241147789439455223321976462558884709909572714315123022050259492643014157384664586597604012178694007686131884867784409949269605064963172748086281465311584204145682347721260914185437305364301763227731590958069477959426475519923952414542949859054197401680697046940994959218748967914752412066583747285815081502459963774651121115005008056616499954054328790598875912578143157764543268418134375579304956902470688364984713962648737326677133139008536269681406408799412747068638138147249330294643362007166033023697290256702898901707260560932184033144987085605027711720542305647853607951939169937980645335680897811801826179492188828258843646879153237175288972183213943414147625899014449831774813317335657554490572146020614405536267014038726455673169987483821810084871817383598911106256583719960706484507113914960929622620156158604119017415404548665906566846977480566903968829862179589321717569601737418582064025745873955781966323435048574210184784697702466713108761381232600147628847437839070768934128442132217910450379769563672649192022253896079056317447883705811349696822464285747367681710953336672563100916715627655302171129812934894920301875968294172668800680753644360342660243583620086734682604758640781975556128700781872923951038896686733227513457579594873908831158637751460667763373802920033466899492899049985175936573468038057982496470604630217231312640027018217190718831684182383477381059526519138782455963185921930531029473891936934099321590757082646196082108587618578675659803765011579318033224134106338467030851755511266964753959768350703825580735626331885331679211151379146339593304567448977881057125414618387887059758662074754368104648445792106617836621819700851352994549153536266380924329443816564976878905294393095002302777742111646477187627144221435208184260271494548322448368020108331873318732304084531750678127194034274193957843099884481066377894246136043496021171919324076628612461296132719447637471275245261665713893788429679348942747086268600651583045668499628570487383420708948684639492253074851239901213104029034304531159778458733894343757072589330962854184355596241669741989534908038184689660481107347755422359449189048069518283805112306864575040912880426714394311282947801781723683956526206554379360914352277094435197362683418198853842500589604924760328330409967786274308360941568083565882446066242703105530068796372708307365720067978135398641306811369960700612387552487843304808553222744636435541809399116439976492191838696681843226109253387847422346271169976492588281003772995539133291548002338361480075280900550888898105478618959247335163210300685443192023392272158782197535698865295391835160596041158398612512057797032270378951193958054067817509977869529516470844294639285538802880835484702092926120497098143724195708155292526627393374305071216667190812180497570196272341388912617109570719430663656838665763599135252116596012336471678156594230774201321608086973956828945578455735713994254377437496731637650926226040056140296730889698717950350483855542632530041222687084258567329139255949718824553251214791907558957986237651270798202595294675582511696172727242307038698240029496888239065905790084619879188299621794362059680327966885838940610509156011722114949394845954407165836255942890406064742787248195097366341003219496480329463521930791979491330578963508923563614616641629727483716868393597287183122744091423029211358509108071295130097079020438561943232933379502989848270407899215890611545155787829901812331126634341353126254218377979021392706462827676622182515314266007584409038464014560926169163857879029400695139185543955778625448378954098098516480339775101928589002814983964647854594038243143346274457379179270845150140849847879822749443539279838039416228588351641397377941312160901080772538174262770829885448972719009951398123851123004394428878975929760914996734945113377404875246722967250728351825077355896955625939012420220686749472884783653085204241964286270731689553735270446244308986641573819188323270919944749934588134110287388567245932982355719395301167734750514172065135095147245261625536665704296077514189620843289740101023961546010993223970546709987100534900832995016974299972407746670813764966284560417053878116542283175962364918546103327428227563010530272467584432701425596141469186796520335999772254341890074509721695345251462199781593627961352480127767180648410458904567827052282373289085205357603974134442018568802247848117405683562213572563269709099397368514535395838765691016097536820425381432992707467385579781918908411233596068038723235861510609800423994262145814482013991620100183309871089560447920937925486409127409087327643015269253835157291411857987051965552056652463598603360595316473834064098788704120572561985874964723031009716035406525018400046187159744735494087951723241267719885174475559600415028100361040839732023073956180484183353657371996366288348759055271293124042098775425854800275269801748230413849817603384369538896862603778056297957435512396657558571538146523486391685739989362621397800373073189687446973468714711076658544763806987798145015208887992007299829395460559317812102787552244284609612283151191909343056032532506915844448190166506968021297640646498101293735486970854413175601551027412958492509166589356794752443998292205561967995388473885939789599968279337340947503982071492155339810397587952697183048382621586019040368856360613469083247361437255098329965188624312437106024727048358512494393352370770100782982844087235390281630528947711965016570278011696536471546465502357218700086276241087774009210336933486206016541163354884417717790166450851200306459945685299508261916137905499696999224658691628629427258574818399806980420654570564894343008560794354133892470847045169400125406773667160883880048765239631985093171706227775729019062854590108916700764104502936767972749377632528326733912519311858299991465183051967220853761497854058923698986807165438801598312570017136411811169507428483354634813720800521893550228865675776721662909384323899519306205846089816332483767858007902814440665933030425791001620316532947943005101817978627828024976834006136984070290894574707633618701635911102185520183837202501430707037651142300224978649129654797399942105866830924200404711217114550687292029077872612070312258755656949726913503194237866838489966636846049404493517255301535380703939405981403588276561139863951289047047680219502692832561131149542582009092514063840820258691536629394585123132099978520991398757016452689794929815612877059170687253962943209430610190449770991831598493234341484229791996548764798376028353463558306125189518642733755437369065035360504748667131522827621602645385524954751800079913106069972944855583892285431870368851461685805763701037933001698951342982882407938059954685428205564647199439469282903827911069841569129548573161220794597012009326137743118711755723976408981187868986124413108268202871374942048626692395288618531397142265792589618642332115605406378556426589782347485125951419899224749317871059600426830586525850300847021168418005734546692112391027917844532888254984918303426340563750985754206180375686245136810820133791456132373829146879575378785501954296061107439584785756379477970576099013499541297623566229157761881680734115500175183667203731125268187102316937312101414139590039228194385879333225909401835641903322375980137634649923516674692793585268661585053209088410902613524624169081387420419776267691923611359502919762304760797433788399973985286988942402190674879152316809280097877784724877037401905296881713517871207063285064830164659921216271683035021504991075349292527662745567979119344391411762141214593121815187018674292113883750377203112162489627712979671507996159233929270332181531241727654041333950029772668726652430921210951790775516701423782283909552197256092539232491295227258288560825412031694697430927174871808957261111824753632782864757109676074323225975016227559009273657231808717099363835953875943837567798453640343283122059940992338628929683628167377862698475559134229138253858654615771783402589428961868261064566627156966137177110156053446148684917985720941721541971150100033507687504148444438419835740441855176458574378242137136546307885605459614933608930318767915179300999933695451196715237532973658385859988774094245093226514498624655452056087477807792413531002364258455329148767705654208727879912925048786813760587244338933068499367092854083558433436096937313146340818940470382993293408219670713177718569315137062849656316420732526147133810494021221316759979591156761370080880746577249067354240101385372282552713113754272997068697711884882573579505392085910258425793043850346254223870227581151212817502587191578381677337279121355553132154254893895901420110868275602561927230472449434742648206899897272123347896817115235893347317488701799157108944007041273585965420812099057852785229564126114058929027379013812827907925137298233511959696088068923400698085286008303881821561532886952666748199289686999998859657556074986300782102389662512865843910308736330001197904770597694138967216064900006399656620134503948360496469371069905923766534881878529537517976020134357709658581619268368265710658553074193874128377354366867980245982860458130201681621394532534205476774335799897381341917702848030910751039934702861073126245364312399514123741855024224467684741723990673074168534308782780000896535643546407305729119336981868187849400915089902957795385530919206216675289902061937552181775196700249361202002733598054812743122962570511602636989107934662447314206661495295288485743642827402200573700263194636228215670113904735651822970593641346453177869709236797789618377451668132549713076275957908632862956106428193830511392879418549860929439793896851513716275771928541335184036284914218292909495160990298660854714348350893722084174856438998958831134175984419933779013906707394441318863292469599412621683361371097590395087899087246480445395013817472766146570079009657575059998083430627900020936123292034736984811920906740405069755970995535025264805329215781895735624534322596971598474695853520137774129154314757102309192786586477132829968892045643385473822717315191610657210600991001481164016923355966377082221831720458037657783307677936039298964196768927481840125855480848251364285976515009491309886701084659681218021653962489343708682722701202482287455005250637169116156019716544874690128802267729676139111038545075801092746742217898275060974970372352320771536772782868589753656437901128105351360536690094906052089640078535594599471047649540637479811753236132790589616268005523692688302214021648021121402498594751087192069668818187209725667807604976289998278342283055706613987662990165600883047870216477639495466995606890267410643695608412509181655969130012503642303286388163025081981556909074834957351626646611402569045063589196832349666542437607071572169234620122038955186831422579156230054834699221232054632414134240070729657531428024886480536494023784275343372744058266486317779974330651643848201940777223627828448280238786485026948965557060201910072754043895544970770918047992943336500822898598613117256522807250653044939507104126666441250044468876666967876230597867591398938935637043539401695489903358897257263592368406624547109313552781573441430752256239723743061037690252286736592791036155156678168151961309465938342083724275731677095281537170656468749881242948754165431628322917462536216669415208187539609792723321500053167693090853946258653438433572052644926197337631384907376734917799770678304797517709758913265343941408268334250546972866868234729902398269501408280390257845436042742910356549866826789960063659799321102096741519997984811739822435080311546835162502921026805430661139358316221699223864160473261046888002207840946891273859706591669341591595496885168390407693743893496625398189779536467661261578284802541300902455383105984818085549623986395547610877473258788201037998857157425477024073663951455790767279884960297091427813535418468587991666219374006626918203213481911294932376445702906004051134926068130045264109748096990657038748343636864393119894497233497835849854313123242049990625812929846950244907920117059215168649110798181916270659735505843617276829902010810825086264646124235507894767577807770337466420408251602739126577128250737681767397325085729318014402223158770133694194560322939721042309438454673474836817046298552228783731060852361593085301122184794062035133854787228567686131333742712307991103403926864276176960879250908849647241456559522429531044048289942719994510265358197217199071143016369804426845834961324422991693340790598515103388837187188105076897676328110904872828836024199085846281099863614918571283348059152753908599972769510285237657129107072445411769444902062911375432805761128649561672785723352737757701832264507199802434627026783158616999080338497071839836009064429511258561429458081736169401233777005726584145461277605215929957447522615932650796466856514406763802651749566846814754871558506873515508223955413079653016530206576293589999406195514977972622946739221135565698849203915587991825598739712527579149157150214147936698650710681381567249602652448112262447459632573579065749502196730252501320374630345254126599811860337233105191805543300108615120356146542217657719206090629414462075136914485362981389168601188577790915152242638036883993256793945344807070686510226695418777270694319758713419158861047287376825185748390114712003605005499403961782809467586897148334625610094007434578957615573275303937466540595902139469661272607989385527425945497163089554082870120585227394382305556751214048061156470030132927935053900194983510071967097802813082421444674128375656485225590454042342793600962357044034413649615249387233303363807480858868082109716784982426338992786195092806066102481933667546088845241676133299803339967012417128376695297879375948249618623789559058074807465653587842035519245523119816695507445379693404901090149738549069038819412242326347714310001283751130097028338803909015171441310449948610464504055967529800431508165792791413582962046924630893851186937630354578203636010918272011914653777921352798265312900208841377575858443354488330370843113318650825164680925939841844408361448200337571944185238282200198279642698180744887507919198605684435709370312390979498131998499136885430026542405235132176449070589054144082760593553868921820188068277066941843542724671562641061052888128740897239257084022078736804503078673351395994721579469583690517385728081772118188767111334401270958840452317044965725748113045953980753882973786720062434347473395190677568971043424152119090629173341895535707444126832822974025177655748254911242024130716775299125113730739710679139455856584886147613423262769253048655331476802007586812996388517199335368719489216222326850688960823317104611547875678084397488118847071525984030763107205909772856416306304040945214488879131270668758070209665475904989572462547081124987684915885243465682352631963518140757354945225776478985110849690070512000520398835920307454262029950399820187810769651920594377234104713920894241934516101102797967064041585293856190937548544475463462641370369537587484055960034542025994603042350363905804751656613353575701584258491155570901171596050490508566309560863181350735993966928614998582277544062037479960381354269563642019948733834103690651482019469433121928166202257518169306474416530476289608600090672434419849986905186316670400310019915288998004261655656231254993796232432278290786068542675195160228860064260283796251004290056132893870524341601983028566691648769829391396015203898924637502211668951029138970631349302450893078598786059978704012884767165259535484660605096181734582872558560706572749611725031679770828558928195379262512932248098668914834288563344426682354061743389830398492220684307562079462044193424959767016442920887867891799127353187172663730137364558891887372239788202802686733355750768285752658121956288376062450185242572963338511255847903463478064789728008836230496125300941893258120259773007542831287832357141189646720278639801444370558422541002560070482584106800866669259375793274032293040662104702728509244111412933039567688954568420439528389788830676463012009549329998548852452914922677398688533320553847863265780781210263593997122424725714090893369415962073400491941465822749419738090024533037923644705855073394708572231907504873759042598536817411737712859358323709756439949523742828746433045893773659558342698290714700975907626343619708412941528964871604329914962228951437607171896084188092667961802028150043183910911091727613968337439836170574884729863303827875990035170385639451438858504104734883241291984312397276884396687932845233373861938459028871562400572584351298012715392384786191357538668185469387208625738938221475880988305704424303675651135461211634911483513815384176289111316802736528076648490829300793849172850695589032210830633225153026593485663281020585751970885171137460621400220973802121249399314225340676768999601001609963326599334290371349822756255036008446412229764774666338477092780860449577772178923532402356712334124113128476395542490616703500558154484231693756522031066682620853512827081457935216742111276040940439858608600218174251211859538262354872619252327428477823553872076088602940487460254654487757587859436693422055773722615114079849742607539887617810301789031491554218233776341958350988508990894176714242007342820515426271921196631485287377963526628253445655654811864372727042980071714653577280097757587301637749150589005042929205856772796477361770589941603907655319192948725236374977385692605903013326468196621594675398545089764240889265341277200077315818402573928335663489101760172364073573633038725332025772329468102680786303097733436456493980293713287714702098936174367760592759278041469186080184558957646259596738896595946319246577071527543439274531636039816423310039253928318420090041248892098079048022513834136572286420269022758106952210898410326076909204487220633798686284805267688108435953973625824333164198398832784299144197180016920071294177956823222526660427908576285881670655714000472398267857782364113953424252013019613855772880504136395605856668173397144123064257458305460371634408226951439200382743911480096313408664609302271513492577954714671094567066493408674035706318185687677878423190468627109512334595843790129083181061586804583014555440144180719801340380782814970023259629807268447063448936043866515694794421462054218722624396298541885042087445328256802729298130410575409739851479795437937842994836985282834230382933236312912311531723095379941001544400895345933049182872592893929761531802011665460997139919514616120821665153294169632357993733008357093431214018636085160472680896939965196473158850437409354694705481782099922731007294913582044820782109867335267057407527182918919209500683461195559658684760148499739401594262273923142853382116395855470337402640797428320875533187624646885159586344261402555055004710948413135169056792100735650968943060615302296149382526064474642361230677736257981667016772681609306922613696015967347605198612722117125189399769429842801355162305191887269063396330822948871610114789260173690363866637885182016895160916816938032150375040385894394364595084583330001538447894363674330627931329068815371556318754440165430280983720859317035121764265594070173735333573265503275240463535924681903742191652047124411613946929309509420948373850389188099515677219686583336558289188807609485858980073353088045242058475100147494189982677897269669808261265336839498388961980469736354978300702692928345312401119300204252257519430063906571044318874754167819368090342887609085500186760962433479560403622789498329695270538479352395155100864049757736156177058682525984433005598022552216861891583918414478219609737151929301842186161798637923376372571116505702757675380280857876191056967920515109378519303277529636727538997397410522399660135427271313905580255598204326266468555917909762304181026400546657475349726238883750500566281393089980101988931530961605361585418633305243420436699993904970020535919579072567764550121432891039810460694425137541082861903967048508040412279345689794353145316477970424805473334035785499068227735707755610356049657025503951804054098300409881592577966802386658805116591706616835718617807665464975907965904076566810183128186593797091979081065020965584930898646980017111428148504753792504915611753227405605086733040393778945444243811227258533694739325855532585432642136795364847483391636447232934117961401390423949105551321452962835145101098424502210620360470759369492686358421124991077699916934248390468991250118238945407116161019265386166331251374454142161609448764799997973018942274301552693538952280118599061180246245149542152042523651448687379795039439890916483847956964777069894888075241412211902086966184704881750005397833831340373515681338480862587314393081808913140910498151105005573946718188287342475430013440636589083917221479820561939463383778982023322187464536696024872926738379614801959909772437891710132004567609655188462230548331235738634342741341728228188520552282173173743039821179237363163048322409242994578234750864571194248714436673426183087505129088292089905282382688109659579778735532882936360227997245181250110412357733399338120065415175536234268335061746303478312024297735532084551840893111645550584458587422783352266799948861233048387863910923883250652440053824812855246365604810866589408805161176639741352722174074296521757173008987791328028086369180261808477953207521992458883675217443698941817349395895882759021531062445006073736813060816933136963449162474768991148921781045099773262672100100472277360616918424301479752257801279960509968497490024898825803215465697569775902328420104248355828980342560451510789704630676529048526398416414596261007354744883002481817387956361989042901788034296466419537933197179518750938608070790070261947082349108531126685937053889898179326060846295013701525806553193304953422105477247765621522371203008201817959574255805163193130651147509920845604552822070655982318064651563605332220278592775389978297861019478442022086044049304967494406634442605458220886998676502085475406593391381922740823051012062931113315633219486849393247922964084063327000076130869124812763166873605859138910870385993425568116812655805348101337859632045210242992749906674751762799571556854618650169355858758309976519293809254771357210303982195616265524476847203814071671843561725479220246965481830112419707417086403048305260676254738087163528774851844077654631546820162413590497084027713408863559270762770551551343021135508191373796538089834740677562420005854882551871661358849612097757931532504036321760782203629245589688635517500085301540964119819176963173890478510523331052819786366433334890590705260503024198902275369257381137068985750100465509605273463240664510998100010243264443091160999408963685433700098709940797375553513924510050976717771937513328586843565055503304001967689495997380704983812605118239615507435234525660847056148921522941854456331234579486324331242309479996777588267891827106979776240016294250309349094401264109490627394343250637169307757471968337001493718827477536654803154834066956341730343881557628099082712875789141349700892146698081214712076402904375301952908576523544241666648801278892002232392327919516246338223256789953526744827323450950825838918239504006663700222243212532325616756931411177768797119784956705148903975400725879325688614515677572819990150857577801593419961359837428123091413533654683676668137111609402700467963616822768215870570233861894291632617487464578912096597629357327572753090424808763599510505378227720291434624299230266734230201186365027392131129305146989133033959988487946224900390965767464547397312167244022707461784579943261821764638487489540080837906834821805168968048649389765556328772302293233170914372275478371294387211159222087246264133520290437963882717135505850043839727590452743254564052288368914845110523039558834311182100263030832371528646127837663601258250028340847781623069883301569768307683884652964431894064275718487344562529170931817521440730916626373252340976557854106364686206245778427885372760033572084716751391793251185949206499246103256707287769059854326188583509188317954318751655434840318154413088162660330464102024538636559936488498535928928568108929531649239001257187501519345200736348493749143812495148387205677066628633642847150605768167163626629453791854848403407531081103751751895605514015734247469835222811752782935661011105184932054621869776870779524835021076128920852819277177560506034471179003761429642147536635169917474581769837972062429868580665345946678262445319867957990515146204314211806538144360595381887470452451497796700022945061761429319971763591533479098108426057561903545192667661920016578933036662779861764697903452459604526204957312641301686389480087675128540060434624818590973039205570779213475329309319610520246444761884624815906492741714254371616581493450265739092090835924623987172208437250528568476325663836919030146203766145333745272096409891161275329105123887610344964543243305779423957003557857819112580194299332179184849343057015022454210309761786256772928286487852905387826977377728699542649255907499882922080346266793146694691502459195362529123852554130032905569333332483279876752476208286694105542885546762812721214355288616299461764122868771558139301300088457022906361317719015011924192758412678838617703183650957208975215751547886551197909277827929271203935662620220516815980689788753036332102576277902836981464940184915001764087709090062965626973682027610748566437272188646645588499613840222190045619259603859925661454683962756850301899473204521887720227956445484017348932595676709675929993815549012813756167261942497900319977792700918888597078126100669407478698177501059846516026403129254458276385301637838458692718287510097525314854532528825639323199678169197608326525033389894499792508295302136807976655786220440806663058465109142156624401175114966990810463803230256649271588748303871272186787084740713804964467779567534402556004602373851617479145846314208226014405738155789116945462850098368708265842487351225710419286339493591379798543631581100770635561680690855744295023224113099657215556853490632000023652842675031110038217460021031318456419478833335291478498100931768068737012634592263856193525845862172741661020201612587814226785025149613283879763742325614897454382742453908858922873382449147218482012617132828530823199758559091021814948475246392560978027643247863840650906558357221311270495338676067033421681193137988056119639004572327453367466731324522699755434354573197736339913448568555824778795722782394821462784688690630555036811747616659630956221070415077402142130484985491218269514991081194864868437259728715337078406218839098455631205882457799721630014183181080904644779929497756456335556857744571948600901772002163182066071300777650483629534417966051703924491539781850790963760556708555668160616324716700073373759159366907217869214779069923249115606573894891538921705005023991228353316681076430328497035641613490941166072908212443998221523803533047449320282949273648241577657432341021794223153690405594639963172400496760137277812411720098706741113608399444640442200839605943936484412792543123316314149408368483549160374815461245095352340043207578215119749212996753698020556461875742562070937040968578918500826698425473086554637806879380593418492069036161249776937229076383469883928361862000983648119341125196301379909805245969132882728312578521809438581731935814107272178590231329130864671032264358091372214224061387903033856170044139396071665115554421577852260293338525358734405996226547197823817075140005366750137773408223003661502327093870182555332891005323420230645142481473878148339845287383953333687691303020216944467883997134796652945344737472693186864936082629704740829712586477158988491472408116200683637456732833398884705204551759821663277633562051294652888675676167413013877833835604069277805596335560908900779013778055244918937756856224813702458223085449339532354028917753171380656280952522030907084333217342013030512181750544621680000807986040459055961990535013721676305828999607000614785759958119632508141809801394708613035058679466799050828769134203102179634556372260374836322872196731096437221656587998779284587008320995264479419921241909951142178611923001894294746927950905039722510509646503084753467747680186924569134011575922114715575488521415971972632536474707168370584183011703444371934051800789471023458322203304149274044713307219702991429934141212430238643463359426724749521782096354004694977988440156541396558223211347885096924326101492134861687987731012113251640654196897810982991383199119689560806644364327963183180122666763991872911324201969557546079366382295452103509817414445431251530257569583640809138931550318900008897977987962093431526660863710046125410145866963740633143563366160617544005371060079795344046148499743291867817933973933438448399980933795274828623868420380748131209807625310314401309654421664544934792026201109805838211334238274416923380111941916556279296926524020565587430608659338723479432513917040743968845667529013590506733987577621651271205099929515855914514356697882236708471489926352252332848868138933354954013540014777129376541872084127955085873395536041890140034029467736009136342957473845604644764457476906156650253116629051861948216080221300474887075983150092726069232920948755234800461460724778839856127038649088142655491465746097493549356129924590450018402421609290406299134270458247330200167361507871952595997328753041185119174778930883519304640339994553340709479025562820189258585272007062543678090109516907426477245632910111448608964691850038525484706312986882275161284333011313437662661922536247879542971436494574647933953358816518700952476582599175585616900495103273085435804790380204202025525912108124993017238858911725083419589236658576695380523256636111518562987381212510530816663083419579489089358312146799223452972438210704382891495917166883145679873566848980534727433682655048301132631185053394998999239745257100434932518102722880206833954539090092349032422525319982013802267160142010411618446226793236785412712090707141329243126684222848261415496266187943882285522180149237427780805431041137956659877752681615344404660239122377832115694419649558200781290439959528185146478048304088474712493172284474872186033317584880329374389296497782682559509532914071886356534132381004098853728479981698797109081800265134652201539471941774870065110156458790282867678372083815471459010771626289459346579650476918506065124290528757118739092163799869501690463419267432810910252434531195028319700752205560624321611354579972913135721142388473735995899193030762229231773352595876318587342363267784050595741681210440215657621432589635777402575009511670170584444307146563869586329803361074757513674751252378428455180193348881535341789055134966692433468684061726421208321783385464484204563761904122072786958064973594282145431230435541442269050493529080519721805522749482932315003860676776060221004165511258589702499133960067443246211624690322558046393909063470956645690414615945535778899424870145298244897421697408126946661523544223561499262199625580460044003358065207024751366108135823311329409525678083997642086504173329940830654852388181307362219772872301206109633099949585507119818898946288794602200955150641242632734927294612191685097334709198796644148066072310889108976470001882421495862865948924004940579891265106534272624082925848755621580103180800017041979657658810765574798560542222907867794011784731205445515466928085832689490494267590246353451851638881586429868211136969256667938698938274743207249179958343451099499133802787849231950557285198337204646671034074162636809044586143211418181392084882307585214182358744554007664823491264692584571677579546066895843919218390980000191659239468385603715458723347501494354544313948658040083028984252662947737731142199152066968209942544767704683069139972417916053090257112382116449474045720164911282298601022306853333682951518307608574106238067196702854266860618003667559785405076661516383872543302785592091235106747421580697193369671451407749843824559713376901169502742671099223761320782276153371068041563308416001076741419284967861115590896102904481226950875134351686485632349491349354505117295992084739446738877572857634078229760610565469346348158985678903068372388449966576883825115159801636630193729205157816645702049114556882918226454775451102380306635458732301666160262223465578962049100805062174800240220382900824674554057115886740447348252782101457493376402536334728197263023404776957707060000556940192329090450209226929377366319447767418213283080728367352893913127771173081404958641225457567642645411076938461764750295598202326740427952919237242504707336619547041448474592971756321789328751461308868327054641525107643040368240450201284504331785870340064781432728246956516909585103626868772042897804136691263734739281251326962741668086563693510414571012270401509368941929712535396886569353397883244226776001525282757706458572481051321463531206700718427602885946691330061241569032813370453766572962998795358017622476247423161022980871757316647566164288457573423758619992999663767883638405969886319238432237792627240719344428272738121808399335247523200457168801829027458036048198667306923350469925000051023433165973725140715990980498000520437389509451428983742477632533595172517440531878526695755300415223849335196278322148988981887221245956928580026764332802213341273935144450082120457848082008494328722231571072942883111341274935887299180165526487215254545214548219145575584058682427972959349453441832265968780274095397770841739920525629002572770420853077764033492557377025062345187422654513528210360853008003481613094815647501804943933013969466220143639372021852157701439255703339511930893027112143016686346362823365892199505508599218069850979592042316473746179572628602800594912179976046190734093593824945577763441391729247543795936589657279289547683728763911307514782787630754206804285936166199784493588443613439306525277644078916066830068650151266325333031817825338301125068717014884226719896687054997534544865972883033035927581397606058584150836044628811167166955531628245871224633914363910921186490875825511189563037564904966335486516796204994129601417592392973915688252395086977746795817093864236003826627280492460557569726958785926700834494714087662700774418236899072660767038624671621381017023816318775895070557488576197736978771548689823950239396446119221075470393149626233019759866415355712923546910118013110907627806979951244295982005341579682445893805465149100561346176865260417800822845465039025524827045984172909245188382227420938555021313195345984009203094642645241300063313924614492401866217823122767502564709299463579974901699897284521938283083760310347066655161668647650637908708730110295278008794883704436677055050103075154443638846010031226992114926988681253562122424239824611911733971305263083327804180336244620826815437382795942847764437878112833714651250600770675521955875590751322996248942297101356928546628785163215535136383308764808642086116932645542716897432987385336968367431924766899374298155446447382755128824216591566206483257609421848182174114787515388955306427690496514253508549832357284532914243159291724741753741162033367194513484110301089097059644235380654313095069779375509870060121943681488997202366830736975272515148773996439613293412213840183422663126005785471286027114855767958577895382041469762185818174748593342854470669945860694475651473243969901772467721454524335917065057615728868824240662819777429184950081448182912844629183838186223029401428776352484346685673325687251870474588206785161156716280010776895287095916551098855258287132074866239439053873226045829656649054085624581196884494587133110247645714873077466867408348916235871431156463923444793786777429651959286179863352173034087786925040304473118948217072094568924050665627713553591078567369190540705628139038914507032542337205753803032352061522378548331054466596280897981921254506457863678540398506684881511734299794578045898112679919936657734120497015208224617693266857550124052604821573913731080217982611301532286837546966712104990297487353316688447707000727344175133864118330903931804626117291020299340518618987685432278365150961427064663155270281473188510145104954110798058589235032513595024024874746432110990256820476986593995851436092571581179248225646874247864619740398194747348851847518877825974672447040979834090702210545585672833548005691460208394299408886600697548153187541646768717877015612632209838364057339340648990986925445544974519694228330797521897692009624181206472407698258113957046046397993825895804216728517027086165593582445093075717379104191341091395057117913098007893429106091854418684244405987189043441444755917358308017687434956418339443532003504309734567102147417538418485687235304629924145504713507556238930279190948732252480169312299746112231933137279969844892783617421739827250312352618105144699356244155538074712605785511201343928819812512761348834615249680066810300476440966944350264812763173941524132569542604415346859855988462037714461547886902367478124908153301127763466865267110882198384935266440747299858253110557862664506491086897336247669625324545674372490624850178759863510669643118299215223456954991530438270197627582418795434003429705100329454559560779687961370337501380561913684305294083805993620456767916542457096214545613046507485072124861712830271679312230482278205837986883897276226534986686234591029024526248688449686381523107454772031004575604205469869378784160040882992541809329835716955366012043794929649089897730985514584664004494200278920732867900060287582139264906251041098663251545447787734463130104354311435629592669879451582450611541971026277234929110407857189071904843577808785654880785765188778911917361688916631011317240545908543600351058713327107312000468842437537997516481209043358543116327613183346119414768925244358111979372792604081634366203226116793946513532429573898256161174560894856899111427711614517432885164867779756104890876885671758606631265719795092481764103873108399454403844974143435274033153018116810784359434331113857386575803713464308139390130461815572525741228762749766215975933046237422527928341253324511176064301221521746991476845648319715811488088577715878950238643002006640009441480529047253298204096069266521503436286947849946392449778534037129776558132767307423117741296559222705870235778700986288059128018689153446962899908017045967534298908723610579287009075936688516581699490341641091857921430841115597208560046759457925920664826024811217802466304728375670421988924511504519058869057497618089461618198791074809384422735534754597172579709800890817061382644797907924251944865590476891722874436350178846325193624290704345526895846056825022004403169581191374589508826505869255404808514882086837240470656119237095634890127684366494566692791276681727532827582085645403608455636836473667464725640225748836997613229404246994963857658004198202558342784703636484165825063408925196092072573158484757903952625460688560168073458842706721872247271700992191754769672100425289451647910947833313828853702243364793532388641438829306551595976124565971891769317835732161548855312598710565062828119657440441766303723968102187122462440015195267189203266048932677466785675661551115084745511074992610494636082310387269076875563165483178020813062457630060920868033841226546221166957652550399146731205482667796388097843138925238224108465566092117168692522278440970113447973441276635815511891524655394319299506462312192922949200159238757108904081649437253401735622688553841237485698807147254590414738681672376564046303985696620966714951557211620371010004284972970414636290956702434377783311030692744224512066921949396264334956919563703375875489008801989658568048545778420420093128681189876795234706135280790185436587391293089501032668216793780894268687697375703092038700604998920427319311738071686376910974264716694340980261704039615061536718798241129205754902263273942133204778465731899878858307997562807110225487383669255502032965919406413779463088467839803390000945723955980752275660303584756302744890709442277833146846003233078449417825240747497070712756089459060968361121687229892725230770417263570852783030402162727241558516127579624499380686779777835998806276480609113862514525486521960636861771518318189927310549761028701941708207095288859572793220588313259980999611179282782271215165560538716067069057468521290670106212567571838132403370787997941225574702860516982265540929442447083204993816258725433082530596578182325607518797411440651682030604050110774235508937820829697147960129632008835959449838378645416829942434312424354397591696413988275677623443252859026821242613465190871832544092969580842622929297874825956203519500130531757598545207849825107767196420035413586018918583691061786243956356260762446605421319826243104625543194901062115046675131995248002620380513928552694093403763224138138123554217802549634050176540557539548114379963025647826077291044169785680766250942959919140412707729928212879386232682680643563555612921821815440732085883831029181645481693638731583359510489293723401107565866389768409065357282398906349467637170905405630231823694196876399341760812305457311947193664557802904100932990533695149083668966555611059351884581820664341462679170165692247390144006914770116780153770635845428794935301092933329889418807967753407732876425202784107371512409485678863037175147973975808949331291327782981884811695822301534483812267359560864803349483704745475536205152843459186953189773377594294795677639547899328988885861573512160998129257424874255165511999766464128854235484281349482974510857002806708481178671765156458493230970390595370356448503534168248417847382934701624494159111876904862441706640855868575392462688470480839296128615362821242356155953150567219080668653025970611161780184924354594112774651824489344211359227948913535307352376683037999270790632299497576644232328289840827639091059156770488535636123724110230581758768282223271780931831650574503495571835555504049314981795381141327110618665920021961497412412464174051984613120572354127998364943953601034677542778408637961189281073944465303728897714096689131704563476188797853170058453986066975535379334146483276980497643104723824076678969838690135902278404691212664831657633672503331236650426091070732993057599186364305344231233634803398151266297814598364649245425453447365489997090634528795281279023889139662526843654061461855791823411590347698488224704773627187264262398814346452437111107588668149935166370739409833202927085748365555399331393212760483261328247356168046887959210927502119831135380745983574764515799551471916859061450114455410628192632177052213723476813452968420333191569846016614982719692129838514923939025723788828538061364057484048043205048644068602193575070737139603928108722237602106391845416342375488183899868055395848289849902273801775235069777128966960762503129270633367685380079744885642953880075105137327567824034531823325330060967911809091424234240771112742586815088648917295507946135742509838449875807048162138216021944853467971022779674210609997170677489537834681008594300264813365472315615814993135565849395838284132365515897000942411101253745058649591918319671759128139292622838033309885823240696351919144965970348566903519131991121866838919724168653393753473223425553242886222705968223866028310122778701358502859170731682486069203806028391937305111509859414756396031318604805547290970647143306685400893095213926025233985458841873868242298358503308544154833292949335520087239680963377193213419046408407449342144021254856588258970945007736236092792395154353366316459159761098557318333507232874829519972211780426042346821082550891616567427555036733985539898744485597285748855135029893141741651276583538184125408366429101292242763654476072321324998063980387698737986568621734203296217946325785542950143940184113316825615763642322627364882883067727687270035323345892821872666913351434487148456366036191141490006744886755828525407236015492791276748903504829382207688833129773542225527036832663329871788999863107737503748840652818541230009404799692969471161134377452831310880856417564226217159177706424986138675350524594069512261413128643948532179034048436979546900010219333746101517593139588395352324015443486114938597435447666442005599248372266497694210002913650367118434213263649727707133739778704018863008923780469276462031711945175014160470979201117974688534292365294590955442236165632374888949851774771879593687077289163117541363691526204535165302070250468101090321650359658673765388639330666403070516202383434427038207911441182071534324062669807472920077640543371479658793042500832616832036126720577323143834058733441796275428333061738482026103110156145793746344152878253796750500339073455921940124803669603638542484642347943772943116382715145293078430097599900003446314592675719099882476023655180706703067434636960607193132296606038811611191870874031222717643446607814802878594709115869208665397376841038197687466702346331076128077041371125630436848075024109785904852480630502013497899193931738121032775068767003066978119955500577005243519010671067239438591139309501360682052261773408359744180817013436605867987817862670709834152332506780253725101663308257803741667778967044650927341401215395482281152002050969679552531105064734885951660233292432011727681917054020572665008451509141324547588918662368663869653003580010656760922258320113485925261865250949898594109987860266064954064123681332180489512382924278875387827373567517761174289899074839083988750489564132158801862870666586378023605936645109561938487427588989874991748601019579228202634733951830778676069757657063452784210739450638964290522195121610120824978099947873952327567843578987022823242874377835354236003412869059652762733954773581246314392520846542114632552616795394676794646804079550538020821428171196383032692157185070585290841481442143317627118415985543023957438837204195157416497123589968134057938099245662957859251304775686368847711842801579927177589369407158424011677722462323554572525826318125918687560942525557812526939123234481375124459710609080392206621785542972477889485382402415377949937479071959936399285589542560404805136507470904285547456149266958753894609843288549353402640214274174220843206750087640479157119132111666464577969835625443747675257139906611462385171084548931366384755058510134871972278292253372651467708366307596733253047293687455934108383042739998471860944046369980951499961961700178711984750615885028960233484588198242303230486243899864668617127783089016429082900005650949861286928407994556524887455725062059781885479513207912316819352345265709320499571028090951515214187521866456759206530649812740423064771302713313008864891752494801239023477271339193072945520749979641992333151585417798826971791725360253668672070572433355440624739015552601727570258942209065587616600040742839585298170355532600743127620878494648473279567366917880120918880273199137187798288391411374922262065723547584285542116817996058429919424421023569292502794544869953564955930079998542773114819155675689914444559602875893608295672625995637405483843983808505552763574797989405298574628628617308447018274366931581029776967429893401149569055458762563020296848528735892832701580000883995975907770900052598867652888709018407716890975834244255246597855525006362349930808279345903566721169293084070154518840286056414588754779960041850461209929209814021397288098289759903291759582529753784944010796518896893149187835883089832478061471697832355192135127466442013285750223696577131130958710679715883040908952164924269819398901602790656436117703641464892680380160759043059173307094841926379242443602571838576929417226091272451917717295394036873910668256895357057917969248851630936328582202384153626744254057861498030208790925149642987354634120258492540731575482142064637683988488931309330938071537035245961294032649042508119421049633130655401204418061192779670393906334227901130726413505238008922582846397925952505535715192736786796139746589740197811218884324278457599026593318696228120624285809511151325664835612670206249417750261234387486605112345119096975838578227329463178993771059068415094146518978974070474985234559915075188658169407807531276785807482123594543250849397046812044639980505653462021692418759599049541965404869426367663644111976853141590717106056922277634885678702916391675113563669385718356698243108133672444471634505553614168991831452525305288009956850414619133241100134617172681902918870269665852855584331283087846971470752196668655204274268195598011952026002531801914003672088329503749248781218858771807122925436702712248371265308509688543174640209556493899671486255267787626930256250418999518423220006356434012407073146761462128808246293586415986793926128951918855009825313707345431854237639750806278244006051446769315820546011358665692240818494236891541391978906599545076929173959208023060537041134523499989792793711371601208989400140142818297199810770223057807551400370172255703911632107402369035606829638600806590528737093008380627899499905218562426809939208376391580316840032789625344970393179979832631001378309835079470769121365854820454240887278564655345526255650710338412471113161513408120619334877760057635709949298896596962215599727761303718765461857474075711384355217468718721250757049299697293380482672035554683265426101814391521834177744219589662162684873892105973640180500505971544213578202724563976200171114258527115555629288292277886073228830357749945741313782068664096363066888573828682675515463616611815402400123235784844023964335107617745407064571745002847456636219813608335324951275793452095653872861195799383901867336976700641850554684002543315051577333549434679017986575324915689182191489050652091041559851435647515208539064312660515918363704315959670689806757651701434208264609013379153271562829214152043240111210297991090116638513821673440084583451759562053259246715486563051797234906377268342370598617794250339210063865988861543418678102365728657534500093995561723807284919606950066189435534847769334331302773037285029058539660634549812233074680903782388036200937227476080161823671003001629486965716088719079630201391449014334405538963459542037056259719752351681476595636887856448823052688734416337708572299210356593434108319180523501767482325913825956098589518443768849825073056567603177893188097782020952460209105635599383411345477926036209747953642664700854936522475973990963642488790010011886569459007651616079267687429632145093526267179771031378978886347719052896565885070777957931919999060650708879655519925216995442575070310238686636476038128119046257851042102538531961046936674063892636157067702084560945687566464322528252949491980953185407997539288285722704182917937731351067749642664703289207509819348826952140695202905142397357525665055037182245513429596086237524223257675515107978020403809250259310712663382866398186415535929783928081983790937351671773233703108361676265372112019428182378651721363359937951321940609182863500984647899719817864282730591512872289294742943280160808535096596282695875884651271701331321881592065235076473562583392274043601373029653233989011721602654958440452598186332230215814226252964895037833478152447312950816405544779655243856126124740174980605898950794502127494722609836025179482186983569707608905977121213699485759410685638271232357189271998331235535242160749633241472654109186692582207288822847599630307457571266130400166416486779351075915677567670740685895794007668245303340222969661837188243746429728289593319664942674342268335236130598794087242466424130482754397841457780484039250927115980721438592887414393818249657986355986751151271850744263584294111608586601621839791661584173119448045459565968761331071030280708531629596501809310379246848337778864017150646536538191880124178808747073933579954452841560473860505764240144215432982579768454973517178091813287882157118365656134941493809605684172949999572115073880450354554040038893955238848480277552997792806752260632060040658470439111434583486252539477970624280938611661922086290992372271977325176561831525126156260741567067664350269956555658067346996548697297819605740607647804401282951151432804540874404982402662716040403144870485555146718811611935007227201694593818815138546079546315601537510013280770788630820576633049212210978983895714744177336906411482708329169754480802199840567438920279553916605979885866616925111949980301978963185813560992407608888458515171983798469233977446666347012862803489124271524792715909150465140399121253586799804721740268583177563910094087426351359899782892306233694082590290763622513338404775347405746982941005045780040286349335938456169790405279574757818614096901776824514844649656607200332947428494503939435860119337847119561716187716602692815587835568727456215115472559861183399672461700391002587940931292499793760562354083941160206617220418747034399171990768621934809219616896218506475161326876586696738137037242964614531525277530424500847769432235057801546239129451580261747767412361536071450613593015595704300615149415712323642971347391825064360807413664959693702348049045664974570796382012704372900486005671819698613349278945519720883908882174472460253317316151654786499896314337657171803915593797808981247421447188687797040178793270381565658917919127380370028133350695308117942287744078100079796485546193568672515373420794854501151941770296023251515156126108112128476446875624259620133222621614256581092277828068648762631279016055776815401448514146979650033688319980789375617485533689429329741091326478787059900810116460751061052739843963727866454476491237671362384308583717406056635148552179822815514440457235207849263490094103787721788165710804277399252557952048745299470192485268715344250918314308510351101832792605986624810578251135673424902337209673459590019651376581107080671171702058577705394582662952170940882442647075466432737392786708309346837101966001207860858293819534641334524264623828781416062153863692773310468419650078408400770077897076015030774551057163186444598164737487584000001712266864841454254762587556610991037552034379848415444012449820167859329353116816032600453560664654580425024572266758212327057553211489164784941572323845220029710052977377317542038967298179396779711210430456220964856466135705141513077016622519732694622965297225113301311861014493599574492566248029370336447741697695453565652678263349187490307180997579393406928203821051017944303293908666316592797971267159064608495802282421448400114234015976236630461167163165915490795814707170610426783578621753606683552355752742936662653954520655600170148671037063419429936687820629560289758224827457193844730205169445852917998210600947408458968198364084668122040646756999206993405118897101240537284738898168538724347779854865368912240162496010897265455466872419648866798650105888533060811856512474242644123366284537449655331991655502220320405209967743278268477549839678027972318573426773362865851204939922853265018980439386368815112588672571754918009622349525399258342749673072041376912764087309677507104971489420828180894402126689756382765433319053865602585453572019287369442098820225425501525827928021966952756443700919587989621770282252907936627699221800937756444767640795277829491509620264736460681434819797919776454257485809560137471813402260910997432628393005727202577822359885062333896378962513305547444052921860842906254245227702726253472130480372972114749886636283829714700588420260755738161251816149215879354420435738963922707902763707426465401432382487393315755791991552475673028872831640726758252410078181716583412745532147698435167424106977649602743316940477522159391876941512195401084489706406852152128746116830728874780168877916190141529411713914400049733254950090966462831487867826515226935785984072787006209844380782874141626738447253565555150022762397361190122292041151323216286147519477932089145322520763711109568316760783398209573298629066531161109871454311618686973340732996645173853077894986046822966979300823059347574624266639857631720586919040599170409060212052424219726142690468167332348925362332219202604725574143258142258020188389196454371026406534286126748646384733803002712445538480391453859219667899158835032614391675991411014620155510178788998888372426504598402624180427708412854681195407585172924101848109435739579147099123611213198207610436027234467737835670327658713919417386515556743246010375301155079047734251664974969661347311980516601164005568902020855077332880234770258983626973275578556815503834225299751349081526626332909765939401310958391236923653491775371812026985267796704193226709554223643213691728195589405674006205427842775860903587733980723898523106373705345867928125681274614454389758078512886919422037616268965812483577626874219646660772972858942013641726283220746571938417978761051204159136093714542538904473758063869200940578324204674662115345496788041747527715133760286705329063839663711126261707487529395118478243972226160728829377262821383996817527811269863950981401985156817243854104274830135161601745429596777381584153782454595958414986463543254768362627390658161913671981881654143055852597454617748179775385695651100821429048941791255215891683819035070006451639182107300724442164918883179602195637821900449071956113447377747546291766960339957193073280990329088059327939962586256628558605731380310127883125396676748568652677384961205046556815410889623117883386500503669630937041884794253384392866636652337451398458402133279238190161317295027699779164622122387778706021192235297347185591658580667782374000273028829400567625560341320711997745231965939094514626087205156094165478943783051998707376965826739413594128612802171390571986652975601896884782880662998601214188394538004636536355676476544413754030880518806478966740086028437772562708480385409870362385988304589705522825379923279922792223328380495696838905807977967944052004922479639678837680880842418789826367763786127051278217658736383972090078882002730803333042312532846346557302459279252944587728002866183022955342139035414163995046300567161322366980413319850901322447457124102671506868316496275480842564918454385847849053535372373495777493456701956633189035596643234880554355492184148588134911116018115086377472841451268296653401922124684026340152669707166066520788358727009759902422506850124174815885167507120888384123326897291071417223409469279672971384340553137124137999177364523683871940062626383358953810719538465641991277081061573410523586168277862041764633221929657640030446550457853443785814882672195582005086196874580190166742963389589860808327772580454883105303857781965850927140909902745182251095782765308854042330252795699871686427832258448947554836946336136204480748875969680681564099511827866618194521907461679735279788977961960306076977573482947004244822791154053235185393827702940482520675166411653579452605048590571436795454875914091042144874342960032665837980406296602738812437595910708445259881669008186674347177083125374801371104038539031491271431365509100225112986969137790502979003954159807194560376673359747307920815546771482165638829151973111994411153654298015895295054478413645232363668477996692863804620248449687647331349579472463295074343787495365097105287175737149811696619114993466718289179791608445331391426683698491062948137645291190567224535163433010730954597109629051112116314442707952187857659633666020797869435954530976243343450028991938383540195332720532586539195615766306592388731609044227166406749641771701937397153079788858832833693161927967305542724949528769848493007758422224140111393856765572228437471461559895787559297546744654101295959373884902978037106383493600269312027485836112841080526095010041634720257311528633598140533531888516508699704948255422012849079050794794355495826540656441332322133976153702829551343405289744321026165101025023456152735689058733946570961408071516208129147302973914606610744955205042688606512561773612419241183663874424055298195089259555315406355342997530798738480984336642681814881119164648682555230390032599725860468236368315271294670933687352954686849929988706409715777711382320883814698409139641624823825792835511522133982236296489237956554957331357620125078580075372898061967801990113388993392791819626115602775306176232136379184392476624338188393889807691403390283881278686209025658712027637809482220156435487452492654704005253102271666717000685064422059478648067040144363667961517513791346198262942827535245030781429442610464323192282369378000248725011037332070167145320639401026740535563122319867145713007058348992383155992087292522717146970341277963361522331242930463465944792310759090837023578976670934221968097309500556641193764565151384325360037603813476145260039842054906020580676864225107032775845984054545278171298054474261814763807548674173332113911107993226209739377866497495716575983859668235696144205036938904852660020464613764400178222366244311047103031148969291187428702387747295725843986890224681087262118802091044967236001725646039539467211135388131370456165096015477664142508188202444969889354410008645366911636405291281695978619093054491121883263591678807038846120276432967632323173338823205152269147714333992753858309755896531989729246827421341510150539668714451042064398662151075057348629452251652171738299169280346214894831426422175306156615973815283540141577590845016174022686318184967486277385396361099664692114329099055080815713132245609081897165324358560553252164946303899778255941467817032374430220515924093458129774162225664839384740473108884194420518034107745312314016554727834361833405729550552431334592144115463310544027165674116334251193544110531251897361992858379840583306624331984315178686554099236015362684793711455805588586139192776058377111782360106991768971163618469982656638404668780137817329270448064179566883056681142927288832265149957468778945527860630710191063328166128568169078125669925693500626442657209868585545674068451870190659832596031178850512908151213952909137985833095476895000454793972856863505890454641209506154660593137910665177639421126096954339621622894979841100119944233843644107588680866523569786814846603005172429824031964829245590586073759393749931629254428873627428657428442516930203366776974735706221388823663109651873501190975677848052758436868169038446363943242555144654133353181447892211401459826237134631381613807867249498173359317433458619894297611951730316214825293168350734131241414981438251831367900111867803146756903115571363989664344018105542490155977820056878217613448300251344482119640686648762773383715610387893825603333191230517013091394843056228013372619722019256694617683901040628160957367255527119033366085697564510026546394283197723340141988539489692408001622691211705474071016203503230697214762188244960443468342648559043690306669767128642254171547286814199055246683383317562722523384674583156710400945690292091444916382882265151397010058716249802188970886087473100825844823269416088233271287628420072662012466445133933749437180256511973437956429774889200762805076201573885488931781687346785247674515988482073653188669481325401009416550413577411472622560412702966745018762408731480025684629289615222484470611293321076458265196235908209157253059062426632152284818863970980268352376195781129468713372721750914579424227458991117983686538717363173769173174636391019776315432244645225239752955404482508900861236055570042826857785065635162012626134934991484075955107348228768386052264724225645478405601685336801214084208611220632910197196829835679974320695546105625285633304111452407540181917932001296033702771052254837250291649948210760276038206954719039166024144760730315245406718518577993089072105494318251925674253182942702363142082435570993405948837263401718980444608617719946083789938877117063552130234042087966544376730549539629279536633162309109082357568802981338241157122594420938910630354403595699963341014377616438235408417148554459011984925908830405590052966853265396446869938775823829002706769671709963273401074724294339779701868646242860838153846521018167917257530964355274708937075219414703578767229632696652529285788757596382452813212087123258567758809899376580552456438393624936335720107846227566276526055393505005115426397103986332709347996037794923389051487900650712807355674798027658547220090964356161467866400321675921154473786806968074886298310171205359741723592262657772408813303227570916513328946685055829981295699432219772383443503109074320534548805432762984309921588305249130309540991708189398918840119126886791404773843488463144047089608309716841020725472195117915618989059376044405541386383121909774319157200965986668262778631029757502148698559241506430207029908039997491564874155021229737078194157097266494509347251596591709680111883624322071981698553670609181385900974747495124853118744920974883842539765999734047226170190498738687860192828875994308260848631928744106275644147529518354926371388323877044647063340968228762131157562836578374412903897994849766357739887683002018435246471260018476476696865525375719768479382291681797425090280143658770344981464283902118130312538602575442109346322237425965344289584926404784928975583828272768407101234594730292212835888783187164786554453755803048630530392544932588843668226348683263873540013317600606140215790340987415585624101326041089042013577586804359460078394740134084097582297904572867863434591367444292254238148907348385057342268631996345601158001275128217032450578000935835898500626452476402701998249580446721914365711783920531998101050285148634324781517890724472803635879038922177890556303267718389371252932396522127899321749328984582457539596782810056707640392009536912482510049883548121819258395939821143502665719079114605955951133051078545708190513915830869900547106044599719576241334701888896257118979606761106466015610165064112062639986336673226025674454353096262124700277853105465527082902573871636553089798443589001717027861426904859073846344583870882784323858575714083060317811943981994391386362949863637019425057162902448391607704281781599878306022071018941389975669171105454092804609861455491760705164913206525370042380297024280924378082841195782746337924054982848448826393974206432031512229359049107065562540445558649044682307893043147828127202423695637512973516801627239668104484827870868391545354471501515546253108581898434499504503329968518387296270923526016927601372613010767617388864035699432076082674846420069372119113247349983267359514847527465276571879495358254749866378489582154557077230362775533955632030778236624848890540058317804550607673855492411972770128825695234830803565861412165187523897957485296336261227381244369724725380704921367129681175672753783747197863920816766455241956602482552010076311458084067362617089665131171166481367227706845847203054496995281592545996438598308460281834685951497660372440889146899590811590927229534181293237765760717973579531253321858777870455656800994917119726314538495798663195943442144026193189447890111737843711139401330323019353617197765655844656198170035604742267051687496356163512782189280328225052819940311578470630076167818676337700322976551626958095405267552311351608774024555259061780204832306389558830111950378492625173841737251313069706700747055158781816034078991125020463954989242036376368860149966945597097271250932595799607430271498020759196431290937946573642460489870444970353118498240591399385663253074149672127468634276460194221247964313269229173961854265488462674570212857292697393968241194465533163775235345924123379097258301567096527244170413812136430267446677363410316826476562910837885915720555786363784072423233506302863242345661512003175627515274746335993943546326960728426674190848619931822738725163636811281882114849737615860296066787052173335139486240343991177646828295543968562450947797314758655932731832530899626205468294716675900032773304508707146728548350272594206589917186822904098821837993023463576098389581622444923452566711700657248375899634233684138312671311187949176304201818796851986798841591027205668869317246422089137417651521557561762257108330649418560925392862817734883324207661602751089692881793095615002762526406619632903488316488107488950985856873505516078875216489385751042905676221257959832337127538742613796518570863860083852038850816795486737321505043750257527179617792160955057001428228404129108256796006530656049731748176043248357348001599624110023967302901061661728050382865646110407684193155569401863050394795380536826887828640672578715453219873245422676210306174885879935993808770858334330728412273987453037696619062808106555755137289518317521087111864056853801195537845713786440922289532435068242047724908232243640421629627532133748843184893635469639322285435002802177558261471619491562471502476742612500899701089282567391714580115030908253055492723297646590198297990503567360440017967010265764102895017015174736914520824528611393509548418435268762715379862358396822761464747504692878624611445494985478593410743765016063812989083921132423098799155885495846263111674987269628195381248575166531932433830293477182472267241438829869398022983498515897513276215596506246544872377539295262915435405552322853813790891277307086778270583958918397689121484221276065228674436187908166798219510606333041516689169698174062402843583950734749747865156747856526641945814904135050167070376285825512750073825075999883852404620728338501249225473820582900107771583714350998516213611011667715048879835067455554032090154274719073995080447567770706229897109130049789552937441723222291496994514992721575995163327608735546927878579178457471837974024127446346423139537421067567336222205625422729299184154938860004594950883924457256556626758858956528310771687238982572255314537569579427656913914630923745130526930367763773253131889283062891534613399949642028506824945649919756563085892838020772332076778692750851450567925334106058470555723966824660976798850977245150008804218272478987154357221037796178826219130571664880951686041535923365845148938910299783796161581865183911871134783654319580864530798483568967919087680550523043433404175310123601828733632417088476983468763585649531962728609463336786927554966967348751049757403704130410022119527329980562682943799285639544086752439393788523903509189365172219711178841140452009587437048462938199909472487190730636042741831045615010740875478268081265884168112395641551403972584447969300742788610908477218096699857196380943131444093893616011617269516896746930256823096618430898077774284538558665798956852074300614180112045302067986872709377000206469922071334658516079576178663135181261429105794032400765649776302420332599101800074163968691187853686664654104521578936927675884980571685196615423247050144479289489279292976574488195157251509379080588547851564301922968364272042103531380361415645210416102873191419993162491127308903987667227084199657906211912112856701620277853850617588496086710420929760807192338933361671513252309709845240119825546473751768631733434819014874314124474199487662296494168112051336014438388809299237271994902743182362901503966563919257655783793820515726435951362211892787337585589353679565283791405319933550665590145263387888376272348655282055312776823508867869847408191038338012322027649426906123842730458026069248560362411570487654402625678175675614256843447559331880220462729802664469323841237237968974131809357151572282662158200898440943110309762528651059005099978192973582029541649323778480531951095999774746963577118167730037339553220112290572505435718140735799042267749096679679157355396805470481000455535013197190182607352574003757726904527746159774559087371027267231116749844870086899837162337227599300939452449141761725987232415665119055104775113975656450337603821242123934951808410867433924686230465561899420259121757434074418681174820725864601964449779666545908612517876000202058579296274157817034563141528882262701928630245248185780743472532942314878286233412322823347805637825590776329763903712411435669771301766427281554325959536742449314929211886960472021957448355202286191576609651946549194422162626008433720757447137305949786108010346273233272950823189393491186547107677881951033324935427586692228141121353150408597712552480688276547798446192960416578042024725382252496188039915383928966226678404282684043555334106820878719387444502742093761448399756510864168541342737552077971577690285918456656919562987913636062122963175410806187243240793916248925615591099236942938851635785498829413534685015994686969599034205595893519479875926861266454147590202413989092518412017092586135041078124443556377404949691996207455650703849236823881704141438861507915295557144404724950581757914203465779310365046634868771708327692253861789203525258039387922856432136901861122590344516870728257888468238107572187803874685540407858015817012913550279179801618424718835936968102429548934579702273190679475685048843472140884056472776882291249139637621887869518063190110761240541271611882442722435218366202337182461001361639526718133708405013310752474634732919686795124428765349653319778261579464261615117268458246877713982350300026512882609915069904170715702885765862218878790397018024503390935640514863994662190841813827248273134532955642607920990888560554014659200804727434854581019923692232051267424956938746270121897698132863236440604118565333428172888855334209156285767311783492537430490165845371456005304505896010896673141198712358488762073607825764518323772420344841997465665316388541363099704003440416776215669239841509609186052932253005774784574936886336269443688825435419286552125542656782034038288235350721969859849303417444586101971192218576868881257461016585559038846086883781923117729710049601996203340227579507972397478528327529117745330651740532895975592814284229597815350579436989640377823711823449187982086445517726504661053435416908110926327693255869137636334214540104887733713961367470254108930779382585668581655298424111094691537639589825777202323659645968883371252015428650946611088239494060174358858320217828146650288275173405248414047760494601077897495323393653514403622809122806837426190084712819205665859518624247059190956392396217365351482415257420348928825069254768392465008782954152851441997491841890151758744293880635518063309983678104546342849684656917628592367989159582639314796283030572612717408518655376492289701313751881448497657615797962728154794991553876373384850370951671339794139379518106609013966917317296948102567112408295411824318770801271037948674804686465627148235202253972024577036748875558186793590617745011540994867265935737236153165633469925487448780134568788134854386068541866665003716763620375261558562153295503191192489346044798359379499861441375187846382746667312930344438541831140052627873070411585758771878354490829955152447980312765883582461418631335145744355243957177180196205237177008246195866218966402574897804003602607918376958387348678365973900615890278437616332760782160341273742914958385263278807041445471527367202741840338634561122208914552921148142327819113482118914485598529798360528572925143272951581048363105039355509571418035113740863851421978397608248461603907051422375277172696170483295889614273199081954482926270214165944162707247421911276415915068723865452685188075734070200306061488000622012719789128422749336744707055631352314032904711956687907366254952370541493044952624415800449245149277855011983305210567369245665555810962797846419970777217798411908869219813699374423152642527061077961870558147934318269818676421353996195713784877306454574890906212468213054188015351648416468302579822981440466040935946951249204336097865930207605941462466180959726661305998460077419033855535296763666165706555352025808521858040065281305269930845431652223503863658588189834918933003186131870065756695938075236000664615900669935783985484575141562037122395071771850012624525438167348957504777768762454687143395044192932166981659703251063050449708138787294117357829839747268829225488171324554781731558897760184163401425607373160126807043890937316094410659711769321623738738753440900784560414575743845311982268460616781828800047675273887223610169385140829862955281759531242509035745099360534001218286087953020393428854845307448189544240820886234202049635145500935226934863229748474431829526044679827143342935856442771495583381163382423624982198212364941748338661201504892507751006271699629095614829715064685413017821015229407084625474193496081779331970427963192534693566032833296607178657338572757651714322487070500206635714368629475391901278045468774281739744990657550487274887224645259806197126961742730174413187445225659141879034029675900420874530726079772172487172610087494411380432829383772684592393655107018328868509933350661859544826737963290865921825696449271278599721507313714924257341671279191914832089351939142579580270127349412909416085724681733871284414886575262732525576915423812808067949199354592993668111916468922684302809831627278038936089678102980476687590579259026475828105593553832931103909572026009769501006768574758102376247605204066132097972376198236009273550321634353666733922740823001769772613847904726339529768273643525164193364374116851640487680328756795307078993309303553033022245725580755932131300931310811220552515179545372446055431742164015664788966526278403129772151225129450672522844793349723352999597378471419982714434771607264144793273933190415528018438192608306632348127307974311620321306367777923010036699913765579135844880372316745383828871107525949498416877302164789972001918280696347506418883830846812101822678168494264627493197007873468613672012438327013815306074611215298939308955536918777088960371613907340813458860780960391161347345804760267182205489444503986669259141248804551746607924659410999901259216965657390839729593086468753513889697104585824319558970689630438435481053844094473132754527150018733397359060384133780114612804089543253042120107996574779180194882919953759337184421999570354163113466947183263719959488977510512461425089548125536078295679631756067877076097157096980971890755798186364604334477432031944360526934507288075142832152116045201272929857553831857154627119584903990627007378234798184092400151985828675352188506138524887494506845552199661387844611963274933201631715809352832681138058304397746132451176506138764288055610459737932070088275004632281588841851122897423499932842124475788544263167663764634254322693592507016585804758818394267608641233667797474917865893211153974081951196758249743325567403652026062055597634668446120498593149508738871430403399570152948016530512911366522978691168427756218034488480707958407399732546757888695482539904014349067419763117439029370371688934046915699262086566906886132189371587392386346586576726441934300781789420728911417402248297612086784277622519896236647254497778735364260183218909780531457031999027512078781374261916672284337320477585626022091376927040833874842718615668124046451835527050527584363429103498905525301640141696586534127200712219889022340236481649115635518474794980869672764295181882385241508524780913256542089181105378364598784060213889704471109892133479027566657609560866360891818119163660748864241573003305549496456694729779203942104900568116378832379230619809715390941080483187968029075286084740019402590494263497313282368253169839392430728421841816110664392200613633456012417441701348539157415425282824772919458078285124361509660852805057884447186471481686072119229859411819256644035340705885277627612430765214952273019576902750861106491747183881177391677516037017064524235102582426319274038938579702274034730481515797494301078010940496585784027265644019819179101061722416912241611640715324092194779055627652367649535904429376662177880801756302751655453735143385519147281910278628248213605232889352322559423720492417569032215156592953580649150680250027086120800095209361439296545330842745573241031584371982005339570313484265779507591964413648392928323214131659965226574289150216169799351063773197027463486065517800926645620562753680721796109133810449367734500129470560801455878093024554425989116284995735350635535651065971933676907635706445152401893534364325409589353265150125538440425832515497503577572993510514663731278927822197415773661476000746743863918647809296408155970959787311033246195296935435449794660203235108411870941115963064897906208399970630648370414427163235833695283995534242818352181722860628640673831258695436259278605308989370831314687256221125273841966931185745329051990189640993643066506485032217781811484467172627630647638354346370799686618259823676533187563948315841903452109334222446723988639124115088190140302929328926051042624846251522697249628102621392481484906700076969935697855648494806589817436763230609749068506157884774197357274044406154796399295548079540653683988579131053884241596756498997905531549673071297143242805205980736234405874784019133327556416729554967171824826506306863567964339147240543639889251278368576262125207748275095586664203832660601633340726528320638527698611257644852230236021803199618240350853212211632162087178643174917698512819292244574458050375852012091687537032172947424548868411040284316514234121291627961389976844008454495380716701734495773767479840210390466302111687491190806520632567664352516299262579356045385998877706161266154936800607456510786347166735695404001194067673436091967619354380782303826432228623110144516645088580708574502847172237598470622135627489844211422274173733231775615538554267343613466281947632955593804597574638083705417946992718539817819076348067856155975872946686285630982804014555107374487820915859370572064070339596484667915754941429211231987671733736286546799583049891655831209690468813205482547401267380681242033109633264482441759387233497602271705603626606018664380654298233488731306573489805893964675210692735254226646958828103226104214775137723871491502674244445435402430331495137784796655572753788309890676597975923921574995535002523451019069038053033623800849602739244186048813134680776634764149987534553126039044786797584183552003398667871305614290006219126329173847091654801482432874850599810002474210612879772857532002081451250776502164270664859614357105929967300209116644243886586253192618650735265203891909652399573614056296001118927038424034587067537414555047325459067073683093167974914401148595199082817456418173905976749103683146718831663312227061201780905130803814682558590956464537934792403066231003078541292028544838406558180513705493012339814565960436322322777827979172452563013528340219572658279832964932381075696435398064694191634196535951439245753930167848781535375517061916479075512957727138106199049117243064096590468642378369567145779831253065070052499823481904547064409322322136297263990641151140061512827901089831001718025200306160504349464354632790013023694922683921393163984567444431790184569101375253132969412851931347348521028308007700142383911621301232477065187406136355165315060892713103035000422180298252972655832123525759834070060749625436761892767652720380230935952443097271497753247938382421870497544072933986267075745979297567548054579854322061062387857158247619845955739227125783224729592382659243288228725112216296811199022719722795499130156009028838981689608695823191725659207187864517623284093318275905107439731598847825423748674077459077854952366404360138993705137666082494585902806028034770068256895638426535461477041850366721081491367020492853391357164372593780543015816766040071863054106681068414929605328643963068102762038405707263579280796598985538947663807810617715167004980286558230705546615990462473387701553670991718978254317221991732645601958589588492067312119229838425141661786216905961957279776088087529000532341020644885161141318620468898190361269435971680114761511960298327731767571750985129250683658459992256669097517369238539297232675318045998979060180312581145252394553642871664764530510579450225754979297377255462869126508972063482935857828673211627557227853788259183979043698207501416252014385883470794060271821634689889470951317576298240617868309705004206434640977557974646529357324308824152002403594859462206306990002389846193510325479631246878043494962561995939067996033952693688603101223502381487170877588490591474647235795528422825098318431101738793688059338644836601686495581067921569885094339756386227623481000722099545159474729415025129906422073505627754039676452161510406163828602988958285354970332763317797112889858822003848395572676297898952599192053443524342991961008630849076286361309725979917794121300190816702904054039587622074958275740154910442685342886850151608455386311860597111280232896638276548484581316457076183028898509236199622410248154157620202439083797538046791940769685918689344368253210850630320486006293134656794992612274241583978446980047882719656117153229680362691139309159932949106249334382921891167204215235296646392894257067898155781298083661243830730349943902330520370358179845544316298921940921170227477631045082484435224077140103248659862958589455363693817061718851164982091350741870730967244843306244520392267633369461324172482328361279313123653494914688683782883324470616818035957815371851463237848713032703049032854953287397942030981935983199648420003907209476957065438771597181169683057249163287312507976553277560926656476454525350178450155351940646403782427405290143526316781251324361788774587426410504841078799246345639962327029921117931218547670354034938722033002039203743774708411945255405323391125934466869816793431239773164827241705458833441470507028847033115724066580260335930266644512734065006236846228373049220623345974026557598202564467102631316449161338253770405585778309495764545639080666460824969745980264046611596380764573458762405577247626777033139221908975240155481418786787573125136162166610859052594090235837180434234425868070690229024478084733845872756831546445058769070340382794300366295287101613369497868948052630349351235641609961214057654616919627966721037877343318914214128428497925537341019143916168717666222554627085999804240698130314687050541596100985432136674761044347572349875273169755968641055368435594786662587374006414646940263710464964703396560088411614269811701231912916571479737276342688450289160323647946605998567927100946939134209934538526422303681608107752881529820777447566720661116272662672461073877949042399022259306027182266613987997217491274854221268149522777282897346929403456978029152740834945579425167808632589191325782728460459002642694209024142646117322813471736958393701143950463248233023396753358971095661439012679160337233358431427561328750180533911612130116496020597727990208806042465666915030607426779109439248535177596034811238618695711184510742783934853545585523945140224817209284962476029179614652598517404349138303320522303232366664780822376012735479069996090185007838597846103777515866679565146789085115168886373935203348762838965592864152361144652211971322393643410433384037195318104137348855366084582588638569527175487720021062595575266259620263784224394043520626348797810827902860053210778707539246863977316063452296082589548610463871905497300498189909805030938523868371938847751002249774454570466784746232293074416200786736558671087643942405017491468028450354159622978475555343871351537169528909156008941253935372533772423315235122383847573214226460597080753324931222757903943699727739583542096674053350679681176810687401393421526825452713450801931708280418821060838384638165955001832233116891864008183440369847747708523905493832173097978167558546598651185303075433535622801895146067916771927150706535417087385425746325707507289315496291461475528337233311117293060924155127837521258633268383881891088665931003250374163351096748546271428197040924852533761667963111669320448098681465213472887992005329957524174179617523620020462229717806916486626586875321467416279644654720227117981141278510318295016917406016337423147665362632283429281518528801360958787313927496719352534597856095857622622927069057918316471031947735200001417033102080324507450097825867601890540281190262333680132575995032470450337842185964934804765346274686152745645142069624964496226504453295204282250018299846700500943744371078931360490967959135914927849653324322034261029215321378482378457707955060084157190756254430542929626919941276457736730313299937449243568258318836588993717639865671731353947610887728016792905683389713772454805717864246433878118912923041442893474171723610005939947501408472228851824815744197369216633203726236971943061421786128417290883529113701720925469714856364253649028310395776335572289109855952980679645558559619608298698170386782536523024939470048001294997713966638423440165487731803285844874577324199621300491844159023347958005028429728714750167936320902368179365157489954764951172629985574618316810529662088426563233133247310976300062597683708824069619062436424238517253827732165619275421225335678378598462649635140477016734372026134467768344028182709366159012761224339480180052994365389741308405776752051339607313771348048853803404787258534702058773438772702030127583773806060384661980706255067366422847489533351624034855286654625411607860614582454558755956096313143490915482643336902349053897702167114766988931720305287937285499309670723058883818730012364365562567142290707152290327082948394236592500754058476742315273068197479396956351700651267069817966071720737065758470033977964546756422254413375442066232126639212845702331231558749115833171847424014033689802822611260118362712855091506082044156897757896620610614160605043433992623693433138090487312893674128446684535632006979636782844284984571439621928729526322067787301087154241958231199188954725604774764673738836799050089501544554054516691529522314034918908992256398957910105562245484502784737066823775892200131849890521888635835689608457714105589582439332997814865256541221776796508211620150553349254647744041106655800853514630566655075580222855725362590926883265361858018912601171745582744703657167335429515958662784449115355994323149110515387077354866966216155779255890738375326087688583145721965662653738455637289697567306845903723985559904454883153731749506140367016890835388136638095349264399966649965916669323794420477106366830799452622959844300194819002264220163321328338655955509403055163884174159641919721461730655056443715305502527313757290127157074623218556543881007839082108539070056535727923054730999324719514475223722949339006162875030000141706455285508543939314187885660919852071839787684771555271505998023052528985367876870746194697338475714460068850997686598066885652620539762069127813534997364238326232389902007406353558776338833374091602856914860004048580615321835084014976913382771499279249191855772820715703617646201799163970124039585867396837286364617200889918447362288980050162075486012963302233866209853982167348425164642596095657537242337855542746725434590284618883572313311868664895218600438440595104076963444854722404693157263315003175168347719851188441297447721555828546771031740311813869686374474396704982108957633816296689136105700902777990844721540586336619756737583689936437061579978267148212057096405310584099850973805844944655241227145479019217565672297287541619664233544961190843819160202144685491817444496582512765784938289267463507611696852972148288735323860185652646865988410140586305476100723315911158296719249231721033212804808512167600235893385450936673238198849892579337395801308041225023270454837657808364510364926456625036469536603136250597993492898156278570819047228721981443751055388253849914187660344945659632683354906528784808107500009057774720072948532770868154608047248113186850488448602099602169059126319923528734205254404037322723924113908283608412286922339735044480014399097614593308562562006555192727158042341555886135489601977324748043362047809542050091143045804610245582261157486243682986566277693201659539780706994072332297928825317612936545730158674265573518472502527837447271664627021554259277589056886507100543700227261684579459915886435096872690204357875460127407905050333106428657291864579286226118463602582589077106457497696845828336032534272848333980611606919309465492666247626893438070498690172719738027757254480743032049237509352333816601807452498361926332558128284726992662905984957336398137885352380734495192556225238739283807888642751184329419799918610092948752053035688432233989442419095160499260615510672467791527198871421900197698922205766546810820880229993247618218957836564103865906995976284487366135651922354681156261099194507644794207855201721061071775661426322356325365447087977796430102711990244491777398518479623701566345892709347734008363551428148932448255232743040958510159746722496376745766581681115924963089268106627647684632171797606542877674820285584285715830532917233536163868758706738702832317408647188613292780576294981546388004945029574157262965276388464820582550625454920405327384258870402858206806266384610520951106634131551312121899460769907166093969511584687122517247673238655424368839664107929155034246297501447652719431019759193903781155814623554595566113337955188091917984479663863779017913624524834892474694198771464660104029979827013780170324179439848921455468293258550452855316481064893048675761570450484919119732299731385569026262867648259668047319706086794450686903174883402047364872105394091399787249300422676120974413128432909899085348973130070100365388870607043503522527035815191836558525282749549630637038704249405672068583666690012696247526638787572416236332378067973437956334685692101087827675671439249561125140488360288559892395176671901809726015436971723322936868565212164729209392234260979998700003106983955670878165970352895128204778645566910674871698543418110767052430517771405861171993590966839536912891891912365373396121934423839945169002647781895385621582461306661180613807540325238434789575009149065013979780026046040170713889971495769099532733349383505345701624638221151941380508458775058155900911245806079239904245398462921348821131667460779036054295007906069059574512104452830253154730582216700724618589116626694888308384005052826014199406184082798904840060653262747257848205980822652622949910672579503216064267620408911208118926428060513186820423143300419893330181810096795850043312511128977504301501037621280326052582179112456363441238800661478414467819076484211600524388332526084988771692307683901308748107350081656223957788687501249792395148539686492512201065498862109996378107522860645532037198526402596314171681124767448211288712386147198059949061112653611530929384255456304678060074967764499831579491500324099798207723310340733355006854526707675671446750493781383911850870632284803066391340663626366004265020863138875370017016430344723551721882419987823113939046127468853018379533126395575845677406901883105530867651408657517771131942916259160584833319068749245007666113768412661592043838841504649316892631436054714783295992017916988799073030134958849576303620546784882536205770266514368403488952140384633859135706035786044882789037690960525861169373020883606064461155084092025574089039271022202195503272220567941658943702090703476631109483162703921424219692841715962806449227656605214445319945647491065426162457625916433625389565795839213786991141113286093910148510112759425061291399318744805310210615179932393232753885104656603372719000582149948604363676784180064089694078561364004412929340741473026088212964332655314963531862679796915431039598040590278384159772694392695340639249155932127544079575125850957215101727831134552944644056865529649265320472927119924066398941605379937766507556189394673144865834762276374397682057331447708758734599238611717892262995551862666046221949983350127902163435447351375705687345575629095524011672011394453428796411501274735144952406478218517629088625436596892849095140067768369327223581057411624450028997323995672092375847033386423663512206616545823668700129472275568255539442260448058764273589604916164975269976061460142071284861604853087073085063555594004764431730056288019790336254726586208700100474300561643767143556055541615172166577876343906783671884319389946703182821220602529714196963604050843055743199208511762547587570777644764186246920679306583964222478392524298264929928853835054230094812190614167763647275801594454972148263091319367018474310069182999478281648262869971836368133633522531244398481554337611567362423557764538624043401597035024492625935393801248027168264798341956205459265926320873585085306026687974919180796058348547961908519089992219131958984891100095567062113644584760238547402471099490694688757387302620881709469539812267171084103036953839713730095151361852601243554178534203324708311314467706406666926611557165097535170349609512169542547132669458123538642934761654818871391556547350416555859169876327643199428349475280061537269708784937216276750808013411122973828245941714468256440261676385632930579586562236704553463473168305720981776480960903093376235639416049259121545394480678069047773651415533536560388572078922557279250179326746480269384889783108974345899667242555307548041809453083103644871407057512778436538559350111216685462250617221647855668094475462858829420572871451284131876768742457108598038714253037374611035344512727193333347509782447839327242250499642034262124474234829717126078986042106725392418734409101611163973360758037881358030181807271786136224409416740648486663318651817402619309052909394180863847233526966662764885635235969031746358052489731609233869601752297522807884586756899570998818029900550458785540525943397192932461895110651748182971184551874954034603376916695658793747027530854669907189050838075157601175630099870887147144447399908857521098253521742759717987168878884393605135371487204789249488368178746051519498750200335127693774302207597950248699531463677813351679694556557124519698569345345932629028042749413042001347937401170061979709980784831671967989266919166579085851597324684173097761373990060387160554931972125495581380968115337730443877437736194622457919737503947748433465692042271872446760893626471264947330141536427127124862894984040115275663395666436366552036857814195746207084311637527143016375050099075379568681889041698671714795734121176685104070349807938391222836134502527934602980150137413425002897958297306385483900803628450551195196523437840728449594541120898464855629641930309078525858470837307676679218699774124121851831317805281761845120941495725266537942145606183008186864769555653383792239959363643681749412164872144409053966115867099016724908770916961434396768041890769373048904153971346933743777926575739697192766275528744627470338986090881350661315429753518825735562184137931445252977355328973311620831643812070162248468633468067521188746061677144301635269871614661866504488887470894325760256589609585812634329290070881351080914602058392154754982996969964639290855729041179600197867624932403928283879460897170015561493895471116505336755586747756883869874250844194246549922487692091439419560256650638486526346744091608424755667592724903436382804161108112121758609497997780119441944870283198797078731984094599640528644943300412807818675021637796939522000647260689097555587482990117003070411759401675653514392325808796349341935850023909887599567682438009758743695112761752608644994753337880391731275923870742157866561920479643870574529470799141355793706886899681459065904774424168085161778279370112147157387641866540542288176563460731057353618351545752951136360662087168621714880303544909789234195952993718868641931102218827596867074276353444261076021223919923923544100729003205701763699492196667081749796971672472791462256504535044099260791650080428392441813446285032060080291607578218236160845232756252326931260842823386057312948011272375665105118169972797439913273467504507812812750420472546793270699889799066531384947816154517788021765019031705368140304213836080376231769318616425891975726674754506497332748952001544795779001154548591884154202714737800608242333590318841247480587047129759421950280842886194686144113328274671232337096944549216513371668558310354141422569496392438462176646710999433517368262335155782709298022291403031712873327889002665057986103424602293913700465174663070881358973171008214386399373980316241760117768606377209069919503837502533554631032973117584538559816452373080786250960803760593767107029389115631530613371023583909113163285418105146404878828041653061742606954947605019588425957176343935491913686385809433248372934256904015203788899320277495560582352377662406770846043193428507193641309994716880651745195180823303867374358128141770523451022503625706727942524460787590392262891034325470567957122309895275679987939156268694164060254334391358191919370426030354550828920904364075908865996224950955229132061248727434731575808567714149779411833329076037325194076655769141331874846556982676507498341330498904286945805582067172958526936532250434502314868647175449506223230553977162503830665695815134609003831795868454671082280656443439675727779119372172089147084912820722619387663766963715819049483539019064023861859934611564681396175775614962452845621812070556630545187167762706984285708416900784158418768676971599094299421183040824762254533477107761113104834775814367056713734928086442118378902496302235056526197332771498024892929844316993786013341633015400011605065001051070212495457764037780758155515657963906908713653452461954872011827386948805432903532414444366068696441107631346828453359737543358637107089442079782793752672317594228286644230294753540413383684664883729199732744599724067321745595316851197749797895068120071018180128442445937523681222690710981038446677979048931119753940051583931311992610607407451326120681921336334246783571298782235239061815829595027778565413763967040400907190954650863437358912081364286120123889130651026056489478533413739264179257230307342305447018608305480169150181777920182829930546867102408390413746808915186551825791107250018158669554752117194054385778509822579795388646538405434941728397576946558645401302086289846770592680635375048573542517731414531589806453550119244576674602027168767325438175856123804672182334829001773510641168754903301555457119549565502148897650989876134311305078987384584875502851945032986787749728013593886601262104564677487316263100844468196240544909063738410004701587973328706130576623760497150009683950656955503002362052671303930449139373138613839559282865462738811732080895523579024573496626685671706861357894131592567222922180794175122232893947408504096477205607343160107326535243323652686506746100133899484462447243458750635293637414452859655036460764533338605034175697320833802075469175816114683975665169121798941431292417468588257602924391544051150964554387994477563514286337045675604446979561610800972612628729054786520694885984384274173399558997763975614441433162734719308408350253405997685428926267453677154150340379468496249014500530549619216067375920001953479761579136300492971842142007816314500773348084994683898913192648418946382391847270508328437606294398997321155483574636256069248600530806674830216298817525597483020956021264402365827719490169196929421449465167694391505920120107946620702332683532633181560845268540024237057585731995522558232266293326475661625871264356146352317220597207633404181401472297982634382112459148873347211799556322446199371089704946829430213065018045637919279127414622732461507386096169180956727186878070852360065644605135581298404335592906437958681428310904346800442704819855057273390472503530927772447869430352278503418662254072794483691035291759517214970950983936315300770697753532113235520532456737184227477564698187659428438380358085852429521826431088494996654651217579171311997078931512645872164126603870117428010743791358797839716552209479771655177968287074378957451954794055312534490859499563695972208037403353064880345971456093294948951716620917301554807109723544194287589814562768041184612957309140551672036163085186342920912167779615734783303626405062916945599994807810963077646841627875161531667543828854400634340672863229847459585830356625586176440632783921499106313836743064518054312185015907236496517853005671824238989231152650993918326115838887222506921937900582254257184811403424166375255510783274615109549405343452222167340715740523050385057904987904322024672371397918034818517089915059185458631220634133965770083441915772575759050564827275247537153511607968078622640882386121720660824196465642850113100769702949681987578958170077026936052718797171559156373683087844205761307280315678856344533099990105153587887387892864337126047487294674395173014467738308682975376599475523243850733581845788932927419140102295418686517156648584789986533498869752625768388390700680765330306955847539570822491115068758555434803460482329138434195438252727164537542275682265998259465963031566019403510131657045831870121963956169488882708166583756714435930500898036294611791155230324725899497424258748899768961642957042454825083038094303141013905153545896216322052686113860181735965491300907621882242453790801980111484773800130194663625314530695644504248952511971812832883108444407475705337298115962923157864634996240458124522856260082992720813463903230519329091762234552785822428496820157752626568380041672979977012837434154910631904386731514365564684529590130055062972620527495005072211882961383095528257091234537428271043538271193807250594484876749244850911818586845608475091995268339413579542500025006469690816909155190157775698649256472134749226194192580475874291345797895122406878801334623474301176307665699225251388444140752368358274812485808144222158740543608479500322819418820867781738620580270674915626067367750636981914883035124928820869241599175311440230846878530287364389385333387044187730992600704276343974403279709003074486679462361593659527009175913227079632350530235577477500593603757555491577178414797767652707487865364432373172439896599149107795939797543299005110050556058094247254602673565275692209908044902261474691026836582317414278240268444081538908862009213647559984000795715181579368163614242062230668892020793427496781027290017619873318841393192108069487843732806222179426186996710321591730647148534629512769171604419132482407804827709511251623275772487372128435478961758066307027275237139485929599692658526859463218251526419748702529714540453007970229751744347539028467408848025279251119979139896636894422196816496108979654650791603666129570278831184181421311557380838586911544205666452402394060015594366106215937331968390613481925838038732863382277040239278235230850540346399541164885312684281529856412983571265759522656640205812218543381735712314443657253366237546381673175587569085736461196249675851089767783354994247833350220553517496120581985710366928535583244115080958873998305343551486058685751153153750843956508726532106776968809347270597550791499832948459727305921436366467889746257322206226681002773958575693029572011685024794295123679222138004135924136268671491006913128862245277039248743507447260197215424870518254376531991386812610266030561691617826345940565017591714896293381421168243744002127061803017181073667909780292112544688724679469151238891258279050343443594798117537465529188214914991109912903571874336703196118014821237711916106848093388889306558385411314051973420362485942883701367359358613328772978758177195049117090396837999778955782907438539046477161660156650399293274438215290152066385661513624084966663689285779537708880520054143661556071830634741109194780881985836177663370395372785419477700572872850812169030956645750765669493686198559814675781029889293530539811968224605352610109834127839658277581306351941311814008873426539186000911837677173863597813154390791027594022513510672573995571202184970717600911190832179501295416997250589796985250308221312050442100118367846028603094152089913121793431394284799440690152544967119476001024752076440934237142726123181180541319136158524259541401195886099467486191504604858659298638030200942177287774337071459816635035885353956645604301450932341515800906367538018335267213550610460706858519174508884474492992771165628344678390712245547166813722303381302485939689110318191508428210986706326342643948829554871856727034621695692442493303850474027186946679865571652225352953615485090262846816151330204262285263106627591582445026130711952049666794383238052833755980570395383437284908799965767019060591508103576261729502772476270069474595514071583503285762473994260407649610831480980844928860478104129882471524567657002047735382020943644790187472433569211955274969324238485377306416783411432176367967562652298035978941228091243631467598676207596594204238456284126689618815759161104829079452091373729543318947495275035043295601153164702941792012830179259036767361144884042457711101335814724481498298867630771701878707739607916723177945402589206765276501634419279369736040831281127322779974231840098064459446846406619190685857760048865015613281290494567241002297119920901218470062341955558496318853733792176560389040136705382802634380473552586902588266104135673492239701411988543867105899818072476989610939632418549635369280600222513266011628597460852287497112044378380780766917445399325786028615836368766124756449144445756408926986864843172487221616972845618696460292524607961178136591164059307737226947887162839159673812135707774027825301215592725406600335948122276456642877590127385412910615011759161968332839482037521254448280459005192368090541345952843158652118541861818767465359203338194604469513915587283860190405905977423889476379260783295516266701837717242000138991110563368845340849832624309733109535349838612975146096152526762386151528478746083505305302362392923376085631952725716750263275686458728095631330446087158422334160949702157777010671673411083795679972767502959854195563511414338191120186050200970765027879754668772167121464103621727841404964535255914420641153183980138830873329733650612460925087242538270200195884178178639669530308646156570731293017078017258181341818878147547312687170598710477784518513781760159444187806335971453351424086059996591810256712618392134134117157243722694568422692093489800720167776028254013766685908504638651032756333452020877289423267711408354423107391855241507568271080830901029939674706060755889997292494334979714038006583688334747137745573341987888170156166161925796604565822069005822292353828958018475202146256700406945669311531614702996657977905033787223697808971725911531640540758313267624186841505979050090678961915083373755370537359525693304002633816677833520588396182257207849611353016374321732217440505462889748161720374634023577473373762138898535732263500279780464394075489558239213108386125266475464369453520133987422736360800376049308275677468216143603727048110271544524271119732402873744189004530300036397066218967224114196336709876547317346885485495311389673164697673727342972095588147479583578810848405944863108954102051685910778077609182540746001814789409776484391572758313909113094409311294760293235594259656672481384342850683804172668190452407773168286348214489827654692837179404468132864455673591441365388402346212125748605266991640512742941987585283770777154925783469798487712403286422037542256555998308414559905241524709342968423765065159321435903895419380554052051237431161999608606060039986076622352801406156655964315769509769391340885537728475860879995333803428061309141418414715922059796492557776273826860054528803168585278508316403847401883711912667340791562383654358328550496775846406479541254957308592987078357234179714439340530707982627787029055464590918089138243426095269154893691536591664174704428876705432415021820827725113282477929846484811575733108930790538580750806274778966855058541273486802713910457344081407529004723457376451145375714069120304439718057466062473211402175248738211778337019500544928072739621972654592731228011713764598433867913308578129994919788205791279548442674290976356454217182774874721678091183662871848948071945934051514894199080523260782189428763723672375286444404839406340432617610025587761015232435108525817476512647932722911146397019829777605094224244738116153199978671901774503287712444984341857271476079908451064902096470087393520818601738444610989389177894343851584349895241438359819828763771749831030554475310236752506990342180020985383932430221454626216368293290658479898502522254006046384876929937274675295217538087539027331127232842206618752567021313837345925969825177651776077727505002542307416603121196062533957405081336504189160896464679414606727435924351176973132065125500314594189698850054068938511481413402904267133506730700247386554348973662675835821110340083325518180053179286811177455801477130441330787120896394062397264352285515272593849499935574264343519404740967591520091268743124611243565928746546901550356640642796258316245606238029015442955518341485314333666570806284422404174947431455258740794638607294460381692680978745266457344081357180221851769973805167324954928849248135042648933073601513011993367365902888191548726650237002402847896232886179698293344227367859286168981115341775403558950841497110833589488924594577483206839586938630948832475149554769542165962353357038582249967427025430593742027343960213436585564566704496162915583861989498391731607869532692311027683770219169537118994261834444758001315403987263164944046641034808369741037930434490442968389839417529181523505121342413718890524742541886431902391981762446333766651649909470901499700075735229424330174608806373155602543970940362890925255649941720401811933503864017600133758034954132292064053232113643958295184312161982286265276607539862943285938121942884512471726795180804957019865683435990174323510332736322173714157606234955236661124730486162674013148442514020324741177096711335942288322169923968974244290176156727705988846015138473312533674742664633722548278499987748383451897320018449903974502324786192703995155227356634791580542246720330377292576474874797455911759087094478287575024127708725237283064473958018627123787153737099515711805825401075629362283268669157332904331316507831546775386928611758603006235335663564254079263136107515507244490257652943654231864503403663520865960559876601520449900905416761706557904965700882824649557392052469942686136229675922808750758347925626315312210368538360963265604767482327762883340778321169839802079863035735593420998356890672562165075169385972923894206221627619316961824419381689330739530460741158148012597209905486677728900951384671554609132948739682492832153416187004474089001452135606178245336427547824016932954902665450990145571339889074042882585127845705401038292743669875623125210728363009158876658019837215903177520979112323674383162809029018794970433187928469627661639754492985398810213740942742232896700787298940211548148239973019006943036179429138505750010679993821135597350446406704174728367001555024798384947923458003228881208874077229077482929009040482481644178771967753576917562817201950784826841577198355344566983291438756360592032095119361517148422556631036022096412843066702169462285775160069481909637787806194074811954717427217393179148507525385937564112169133130740585965885375101806045818766433057833490204814770172930813259978236306111065531335856300970117465143113171845138463155116596832612362081556416763578154271036791729530448099840611471877510773189113962638689081492853688526562200833123002102108174647420113014452514171495716383898305604250627138390672381838440468859799759027987150753544777796020092839738261848615552368872831184679745022035815982963983616437078392162560843800339493019945374256591461692414214808449314490998071084074251351097721773424715961026064494366653692996520166951596678303680691282472148314475375420308087547478113498208280543136548939344431468255669202596191856723633763716392149829020627138118995004336405607410692843156363202269479885246486650684616915752349575357264219043537003794976691367468760897596704037279049779719956183410947481781261426242427461934926440104258035033049326469280323350377277815352397965885430122218252902009604385773384223974894444097681114164790795885651460405051257678588943159157559594583100701771331903054231062298640942868779978542552495358779394688034319636734544659174762302914900780725762310036009184786722846806681246438323254916992198567645647819343563050950703723589089069480838718326041097079568697806886664265002857351036437897376246838368348233808188567561802199049821309194759168953440617057290832897543809789751011484031719448520217549450775515183518357708959281529770971685921067315530951409510127284181663475485506847834910884614841935820022187272709513256443281884058179747441752741577948628543203076024173991497541964236506158907008578187086926905200030572932433412753617378206118245846364837866575774479380759725284116716062219165624514473851477941558722497790427150275501659923914541081843679722181041533462350147483751534246950821140268173077769646340871597488488715126410669418102608708578647005176864615394867303542753668581283322344888655787873890880034710902896107941773783551277062491772597583626072804865853018628641630526940615325555017838118582942309469511119874222466114390077938964423753839855945481013413934321594610509324171316235576674628981983435741840435282043705050115589798833635740775006040975172180244441270524756766760457105921062888020853690962085946412396238706401975666931029120208229825789659828874855141044174225278191079436629964214984647526091093970259286489931533549996831472302630166021484700625762524194380231601913825726136388793665730984504775455454616403404598117576563777035334391101112926703868333033678377292417304742021152844081472024636513685994461146604369853898399342239131598215440961475779301076234909127769235765474411480868831373116649307353392827845676358768702092130142000449752675458474819133476780861997826805434453254039169849862776879268215469438363040906294602141290274651491183790879860419518724499632312118822807529780430085820604774813882750987422546961293914390327056645221211137053306863364873897773754414523090474971849773804091931035609058025735696597211810558872583595860045667506242532523155783475602636182200774225297728633715708338352178155840101689021264320588758723412952815645546299307818640743451206388155310405263648358040738949211830668746390401732433614277132577428741336860688367924640098808777432061248448385817747089523253443521302532773575960476269078547140669093048027611809242349303924136869910097989343147579578297190230503277083792020950017641565647934508366871602180220271823356776531195608089657471030993068219875984290985229031562411801933124836257375475213599002208686213529625292249505364870371672887282812480047541954473377172901216803037971570334267678009356424223006701600424955385019474627403365149961839760237428066518939288780198084138225717453090053199660985062635190802844967764245349845972368875693713206199570544077587511749156967156715653687566546184174523582724380450268156635780118634072343608619879714284329585952214620745227057833628368734083295841639506751535188241128720167463398676152641510967114804808826801305444748750631386919898989661492695719023452546100585691999009495894509105742154798843628820522005974999603577868064260960116131674473954110645449996726318545448745441061798828335639777537861455140151078295909044876654029733825204928580902392052063568551298076339967136234685512066897343849930957598120143974934041391501982380426154511350445094571922620801139825194062712340719378682185158010747002190084720223970225957829586372823077114906776101432104619065026811434324411249523023880784071907663247183840401225150980145418705555872155839590378682915697968848287088397910731855904551528395772757504182519614122405167305145608696363078857452696777308215808693075009924947477607862938722842571783866454892240754829925626407863745141378003567422773764898597142232894161382859247046335618835615441835823841461608416695075195540395887182017190509761912874744372318107424445942610787757192197001186325856152196141148218586591459399161104375054937830503430148694734139748856131529177025598921123673492151794560503152438343387712348389281608180517490329408043739964818886185098474861314675048104761023618527111385135254757113407689780244937284054035457041132905371110299713380596508298564102805074880613947456098314430953996748874310080446979836906602074363050219996066657060164728337369371957313637194246353237424170968917873938584232522000021587377098659961243173779614191017220909920875159293470683515465913204987500809602295304916717356699608807933285345612350100826421119947320226244741204812480854595938317991048304875657419081225701601316655553570213435025939231534580617465774115839554519368128909667807543538051345169362867309400318198862986018878542472289990950276168937968732109708880674970460524143380573837652014403515467627900359693565070676650134953997094932828820963293474434783761603519688669388938698164063707390517084639246930090108460158477367327856022526031355386609448843595723393243537265425415163063336315262099932975809002751193114820857197669835115621839688423214843637134024039547929348207546969010457591016280624641022475598389051091075738301881855095345850709630002173974112365743970913926876262530516871043485004982893458162986140046073222653242522060785543732156360547259279875114359620721807416117865434145559513496718093189827156811959007598420642255972455423948564934026017397440324330456952928664386045772913840939432327429765052102962880825743545763883037675848587992295071107029035851718805215896724709398030756990394139659157639246064120357982023295259797032432338250242607274180744125151551668472907879799463442887135796380306228736157148202467069434777470148724363507040476186379816556886878912772969304339647963599707261548447652240022804186457986721042378911680238698828862903619908541567433210045260854701505743536395724234085274377739576431707942205811985796300412927696432172480633485163766254012185884428728499252745462549042642810900497921651764653310938927597170361580264028013753446723721737534713405765503319627572769571929264289474728613697078724314702405007684489242871174627736719177753354759684407568639359098214003553533009061566853072243859365057428168240197040896921891356127253335667156853281812101410823897459315897344248372439643833851541728537133096259748398130998895082464264442606576595094848458677154031491948063288352968839795475970654270114214309900561881990425862668903513861481746451554328779118565378557870957916345411717178772707721166629131895623773619052982689823664210108227437562777901178131728884325960491608010609144653659011951777856507991264601045856876915448455142797141089701428021633104232179181449478795008255021292496603656393184638433265898188074057093867234175623597479816597801206501995601674995691026798103381190117513142118572047897849248523689727962731941066246408878202226146936597914495634178570123710672047316052090431353893292927300533766785769360904741784941651364050070771343881787336158736642226394635640905740495840661049793228741909969790735219409061030319987007216644060824982383367481417737876149426650111230783526364362790561236683186007469685763991370706063982417246787488594316225673130105299648185401737980562578264988189038844409184900710543921526553491655530346012021746998192452682631608122458795843193033241674392960079547609456066173745413623709622659396437329966830824175448191195242217125166024258311284133566347509340773462548877504418436557877606042914937659087673338315105588437421923653484554696747846099366429875435753443522086462631858637714005512125889359462372423787714241013084436373833695293742442976823663801502303450145624149269609006081188515022601215941848793704262707675991008973282783386581458981978285599259795839514125915317037565762765745232733672768800320276596109701801024163489977029964582178304058244156980808320862487856826372058556636798326052131218511717791331772913660075680348357969272774594427423846961178568741997953309615549585708825633288572213623390898306858640395293221748694682477693821256138420946664257596586251617506020518078877076609652701893126488921954188058864472896934062599986958814558793125988588343050971313437583394911970348337185511370511082923154624974753889430669469124025985857028347975060111085712455896069200040221590169911936313014738916825387359772003784128492589719856256417790241958546439666372346721621244548872414229193236368240148327173827831579325555883562454710357830094569094684154749143069647265616023913193258645454772163220334773889165341465261661353797514034681352401193918999649598190566347774020923267894644256869771322804066563038801915317417512753038655420215861535331124705907978455057403462077341940362647527008525779181776124918877005171298753326763482466858482040743986917814928056027521786490887277851782430508793481000713813127288139496535875750148748001688931715395676923359721426004510369698319296392296323529156897327198713862369028115405154501878056009088301413793502250221876139922452145577592756451358871538534440494457072577290827210734428862130806246685115773982715901619431526240616430168398599049653981799325556059731890522303600177759016196917760123817261946580858656041830948742685996596006964095857043670556467047324394211366478220997804179213560466066016144293000654829628035045921087505105935925280483807344140757635629249014698350270117612025481228876939246943178822435881468647820261794133919722292713223813268139142300850471302547238510565653905513020762016400793842236360136763789575831640125631684089953848381946489553031206537939904002002827155811013506491504806337010399712242031678961979133065094522891902498386530671033628412338439556553599792444568324170480338070159961121633473406137447104028164469731628629004946638521264770322686077092360252796337674844581914069769395537078426704537760925052567350263806690561026513489626980740501911029882863161718808678589448342667855462394908635331461655219953789068588884899666218901778971961777570335138344973107853150738256745576225835855673965461340827764503051649007854650834764139975288748499240115652202567242427285932392591167479495170580995121904800829869047871534423869733638174370740982829073159829259422453862338121803396138263486534680857546062393145181542640771752328019696010165254583615409428337370086443658459295142603902397083419049968981512228339081419611955916819462253230553165253321195457898222399639151242410373396661052339135795218201023809430514833430227334309455260081829755956175343061169684725285768360567957613476469882887941567718069049274707239103561538015339473555580126265771653880750906622119231026140804363971963524129753765757299003566177555840617737509628424048524328383018367316350852682190930405902842167945132517272861955500968625372882525238947804124344150721111718636895273939512239647290245348607225128810920415523094341079610103376904067680016797406583262246529421081234909382177931653817373183241163331792237067892725655157718902027613834973275999766967643048131013278525466140494313793258779814799117331593002301451846880342271919795133883195465302317358579852738389503872736087278257392885211738544660631017218113678656109165835063673800792750964844063288405933581887575552610272928025980560141714996100064201982859865021031385915962686075841751245645048974721520964779771118798889756439917870848296218812422359695330672074817817867218987332638715353542669695389113592832943570296059467073707492057639570543166138812798313892258060109702910177981296316773648029062472078912357537718230981479665953536487340932935615281032681281256899939460290843001217578565845626949801199237542259029569281521715487043800009570915321552594813594121868755175312014381177597354211826005292943069314226021341143034859683946794178741373557359065256414944842767336582794422756271858173415112362581578743508763569844686799081992812064430933990884430109186232728263108452247694545417827385213401126128245075456821234295514037044144721717600506537394152702350721472737345409042133175563928632882970255567626086971469927081561516356724793233405321351622996130783625997449325926325228008637364630962818676256866056220197874185047486809077985363404136928359979626110525781325750670318502044086310161387049459896875181185619265998202741639584328157754226256218134978028484683783533125779484457272194452682773838048707673473527670614670206715119004059484382384755270820501209151850811599662308539985528744294691439155496820105079625196602298192204688888022172293554458665169194669772617542813080663910961580438623276015945617128006872132504021285114989328054790252497552401023262150248886177849812499255574971069918216455309858143089511449414842411930150404239302258641317433691060207835070812085015517202345595475383732317507922537473222077039018117308209514169512339607265510247825533789712651883822666261910273428160834612073215884113170434247588747400434231456060932091439432169243264635784887268328476286892038283047655804931292149486814303649707624043466304184976414125041367691554921810757479998915713752925425714421385195795778260442829677767256804235375260194656491063669286558391378312014281724626331295724479549156455334855452116319440910056636881590247993345857169568100323768779217176407318391828107810766483375483355372734206319181192847426462652025702634363949319157419094445308415679810720862923964153233641182553997967951784663310702633858496078899710352647580870876934354364780537422787619339715638108318772561697865531508867619516755319820340052166484597809946111658163796862392839514714621298104688731679222239983203472114506179934175962098509110262266988332483447379064857638990187844627491142142919851261695711704201339385672371713237930928385169990917938265521874075756982563654813072642861352668394742438474974120063435132215445200461360053883521228585121958586144313170353870459173111002027213354002280467672052680534874778185585639131531408736266285226956701305258903091379101570281664797452412123011705080291647909006198462919534592809206597881379154358962689662972417119423002664398218453569457644124124161903316785497288869785024527966589452334855639698034400400775449406047806251367875091409047832508026479886521392694462787837258115990252725094005383450582400816533198046946802542071087801579472849435971222170088794278480255050765352812934142197199779396268176652624787400584232831393399271243299877682348320863337279266886146608672864375511897973040829473097582857565177160475977181484354211818537957201926425970129528844218359049889276126876790031084951404472828476521971272786541366876030829280244047672159977770531144922683576077096661202168581777814379109464330431294653302541720429081434380425476735187780920174425250017966370734581256144539895644496473339593440651682139648092893846079653886104838624378106745826592645794222889315549804489082514805602349050925867165540888628888158598598950641091750697977780202083754478986232076679156266588687079180453826921523277276550127960575736722862575438574725298304802389699077794037892761310347684675136513262553972669626558440568782789185970472336020446226669139703556256925755681617218390286270218745186310202042813675536711008062765113314935581890609029169028842375973556837298047338698191979358713043968393122018830618479281061303875976589159016394487866518112271933651557829473514731263305563399065847327447950518133192613335068350785950265755181543693460299265797217139293131858268319655831202077126485820041644404689990609871251515105473877754844914830934127188715531667225479801024375675364930242800925584829483550864182152335764841278279657585501986782156205673881984325415880333840517737522499727265281890171251588623917376634512299320899853684289989091579187322155079285168646137799934116641195248694337727456757421314254059528044759211185164512505786251897860349481682707869601071987107023656947496329768039888737315683326644133850439021552435166761750889385252702238965227681986025031098484421964762208889239227543401825603155651891001317366879029759676250934984453197414956186576796337061462485457152905104951665832200006906356374158840987245445786859998366406944444636129296730427225141136082073678724484142304330569000026165914279852385678081217259934644517468087455016581315390097505873299771735599087450053126802175530015096181870558450826196811499450602104847863213621106703442300918730481304637179755857464623353389343181980970764239621642543917513519931765190755062504197420657996736960886427461005935663837495706597807748521773755265504759205597368695003094539481951360175286097767942532182785835568564348465475350927191313929209912186251532433664989291214651066445974296296357609289689147750128663487672544392507211271768833849089569489574367696407891058547696214869793869185118700814330154208871475520194384916800598754483879922715756293898506215230056599141565781046381734581945319074525534444074383979795797596284919219025140794265609019259240872974344801150599877323565618002531460223374075173670977050049688344003057549069890074190726566677482124799366286439208931946053464686449044521362539049552123390066896264459628783187826474684269480855020221405694635181026241286382340840040994420138660360063848204304185627786671178190509944666268201594447314256674656806897842442603447345547962013655063563149521981279692630624511198105000681961894741987048305124081407274584643196976152801315468973346927918174660588943741548705295388980546748697708648803031411111964142081227297071377559897512471948962388533857529743406136739650406419325396101895818979712984421464551071750718261633176083296251315864035557953611949548947443445125519384701234097161714012843835988321825017821992027687859061108082131394785911234507827097472209329154257661523849508383056130308153096821849457959535960394731976650896675186000874709619429159482638219626226262922967829608126005831639686765959937511348395713705057548883662372764113074412860597058469894007015566079329766708918829635342254365009919459405895855748982212540813214862759125061304673109496408830346225563195756971110322264638636128775072547417331749074441690934739163045774065846306371735935448256044171969614828874928190854919930702614080606838372795711022192346615510427559757002218259136231724093837402806099401875158794588841901356394855771859343726627274800066099392582872597473537663575842889133014539598306644814522349068857403504948270919086516698122826660971620335901822386099354067765405135226696445223501939053113318194250213899990969506833827316864725477127086686475758045523633134486682641790649685332583084316091352436494329040397459679472569231466251753658003324842693032254328446421375199428553839022560062552120444539173047987433096139956387833703983886804597738118030982848393683565631250595663154451771900900302311555156656259991731477512847112933583978774133381638100960855146521563540044717773695805681865732768804691665742284800152935819991218610362087674398986525755460374697337371409933932359339290678678265861569576244129107903390972506262765287632308249373714888912891993364149103191731154540556146218209074550982538164767886666319605892033227987304700810795615236611829482361602522562234979010081848004906983460705482138819518491136397134949633435340359898439752644628481833876371277879873867069853030045998932202500827384222120496277845712975704220467523588665420609571264021068748870673357517963993564128801754657723812332252753161351917606641016200101696140537681813083096988081783674055273569557349871962913771223339457731455854579154619929257065269643767830213535741253389730250386615057339351448987053927425310617162790674972788761201056860949019818085059318569835955014874239089882219883925725512471857102464305686026375301162193908881807650123966744184974960281195686972723487485842944084157887463611355316414715633866782290387378659158926138067158334993556523946916871478422899471186665164384347617895602950631712913583939096002581781662271236820192820486850369621279902434322681703652953105418047166451125765656460976508461467724196225618387433766056873210942984294666460013103009540605912266239144262059890319621698485171176681310011481550935985480172718295626356295332813446417835379120985895642258651867143639276074224281911042612276987499130252497118141743240719849836643388180047562218689146203610340590253409370047112051180857349840619523205047772362495302950483854416929047483843113253246671996228472479185242887305692323556379934869828428033711539558616520038935741490511770783012689000860216078605791706615591539983925780573089773042791014219152006901168944465499776329107434425266901809821300355710079602732315770520735012500670876515362663750237484830822370780622738718126128822841182762412468567672554908793345544040549077494715213285437372007601726853314147817917748804197646204182407017977325702234482453988125460169161168482569720457181870345921546913088151737528473779755853494943053270633226754772834867236036755979136607351502301824161983632056250904908524930721718453993172750852727752595193125574671479130187956723692217230858165789557426447644548207525107870492692909110215661331431529410233250601765606745642546360556439344022709554741629305568477549969813947943606809954544523670392296665748595882086451770850558143050253521293948959068353647312526684735023569454706776274295016948024300822052460059715398767010620475091510531340950477078173638067098011793388579906974525195673059333051051416578665838108868716095439396668968193537665037121586602756074637915732600136687236493946761396601571077260254243017064371649652143897059228431703248240385609647781051412880861921769210273082746269044784240698000020206067335606016693506729736476108063800144105044413132367073742786621271380192918326322057733819023089365392850943856229078402818941112037398158833367547231628104261730861924060035395664835413356352070669120343474299976239552091718985677194862710080291245263383767439577819338367115780482293188168954866837850498692277735890518432082443864854011706676437257525522755736126659101944718842975070261926760615041123878834270478504665182175174548545779091648585621497099658573274992684234455575824807496912392246511312955455198743626123116319211184853005252862940907844938615202126228889951437343001495263465575189872437087006509918226266202952972185813299475639851659316635474977617963261896931194387264676410429695169397219990916309865292908867475984125292646078015184616282598425514401484246696970547606827718345542311477846370653213773113663114815991219749540189982669024554161906014352323655980974569539620067456809467297302594724570990077780561906714822472221482011376234216125729247495470101948224502703796023843775064146846382604851946789314049140687498426885302643792606162401627800214999495424327897023784230407711922779578170839928322741975326722252897433924207043434667415580698128747666176347359242021523010450365947827121730589301755602647309143360853791899214401574821038102538860900081871905770141240431799772682642291821275099037776040697811599537212981602954631809642085194205729428034940466466889467834023802432373056677117605298917330719446657597401780456005308209654840264729008920473674761568171027350978724854490278382779145687411662375240637955691112121166314903981784042558273379276859303229205877441878168007735479943078801764372926211945353946106950783843882569197603159790782587585277124424328805502121129960428665867276747179051746376252690043296723904773480551819564804285659941410871393338941517106177404974720044033753831845730733297222436577246632918133664425563224047511649976550756389113135094767140884493610634060839876489569916292692585449426674460384926727260690709755554247978542345358729515127693340455776170238156851445354801920293379025649643533036193017795295719708062518691734711016619767487053923656928503000127210408495145143026471073720503263153241304218199715257679603005560664771773943452291716413240716529686092919387896724247019530056553996262614030934761502890967288683921142963159397487237422429733765308695188809877912416897393851492580595057583270185401800564598507860108566575092339524918470638092817696350055257186149837321579215655059149478773985823198728521219517288504422223624788239583179158182573112221902890871717673238034370724913699068212549242391660594402983847283780108282834963256628365767779155763029679332051475320833861347064425364309177804726699366861339319497813320656891498282593436887324519558956437180694840973696228818306315461844661137806408692475865833331125201679318515304810988070470934218894052348104045159240816571328300636266717711968780977183424268936371634936381040152945393758079279114337215468587788818142934807059916318972858830537438952818228995748335696653041159869669797602694270842692697955791884288706000002697418027598677621411245861997610474979808740123137820585014512632427755542524060734728940709078464491214782161063051195132773233212304406336843947432301137471867347794005594813148148957815880935243466325663112029923491667727608110418714578251386946006999418032812885118789333817864671084063987519720167618211316981456349991693380230827380974152443554785309653706475339284996745769577376897260197117891635545474962460472113366689959907988311271534416915916661072473303263243955110646756192855707733609024539323026090715745529969860771513278320718238640872706518719431853617142555228500475566233349143977740730496609946989621212314607575593218381695616892475879527384430401898061303571959331457176416300915263528288171914122096190958997912513331963158227518294515829085809493153593865619185447209273918584948317074869704722793232229013845929084500543170798291115852904619468902280245988979881197267751142404121378744527096932755324391081952636392468365877395651618603221088384745432696924104801448670732742910272364830984179897645691437896491545694235044859480705106996729907964898283606001195206906944488757829221072364830382281362126552413565903883837732667893824475309180233962623457344652026194443158981642288420138218670200576961071965321197280963390350444969390175547339250061931264958168285035898375292080666131091450550884046427248902161657726415583581959128868825886877340072861649712456807545537210063782023431279739746103223272786524229502315569399300814932571071000850419895587994988345842224153564618561960523990928464842028974161834693198222809343664292935830430279215163782683600394608520399217931999431442542491207042807867735479338198476636669017614314368494893851162876992496997918103804293632166167171236958463224437185619641631442891085175330646270934449898427702115218587161016448805011397398770517233603354402099768742594404520104033342057777363702678791033600623760848395825066220007553214899069004781267968940775672560480953031460881320494615945516322287299264084281781597383734550564125042733252554552566529423925424419305296356847447810118920123935310894611649173753292109167687262339497467248611124005656527297826116957621924044354147313684410002384382287739007826055016076477134551872988156084210721024112541423950466502980881785855900205044966447950122153065332056248309276011644878043789846906139002077429376117445435974239913493855260203243564957024999536016767341612837006481651601709021263285913837747574775700179181422146524936049478295901319006238501263682318844405501276910499430209742839988840871194203636003125434047430661774748012062700003653845948237884299234701180827382569046841659363935930472543707833996000980073749287622654885930264202443853981694685983070973668455006978544557619862106695300345797497083880565715041400379717155303341854339230871984959986988972693456396248254878701095425876438960087609951580993547968474268381458316644915471777007425659478588851197578724720134458442260685279427395905570656137207983903463154509369749515270998359869460669718609982135729654342805827026019233628425883754891328667303302001042185463046133232121844754078447703421089893732962410434566251916755865017608213500219648283410300210669462781062676008643501709528485081488509217999422862995115983592583163933400767423236277244396310269571910801480354208612651098475892972680841825617468204993926885677142147224335197452519094802821616637908858027398230940898511820777548568109836728758598337318545634782744326274291489125296423180011726719416911740136020692972088012876527057545539319263844454027522603105847859599318113087596029195692280110447890766652361889469520539614118277476489627467744879314283950994075563178171145578638286083760738552893101380829776836664001840169584712533440441972036705745515018959447532306860923055846339150343510630346263023227688363248716992194511248285184932738427923189910549589514075211741978072525342497617795195827546692560168636518010798820053316819342024026467354458594561371850769391723708794398138439199713848211100387697171708221043721103816819907406609611853096779017288901604999133683068797829213300340845483190843313239036028501915722721518340124363027021727603279590891534275590248969789049659745469929965898224098969339686646627897657554248079031252842167070857518776846721782428483383127840816324743781417411117221167317235365455368470380060324851467463375745976354041771490443638642781579921984206128175623045791466448474931639625934533976486366097311462140411861553442117358391018941792621497638837393522701030421161880713136870841722922756249757784605672163591629717629194696394689864853337806409154343796766397006819939453350153441790066223591040882436832449145813695926344360046079485929721956843359144850043826300282606255937753575659172357657520460230596480274599747859003202531827894921588376683730831632139585703077519005106616584136416024445756668773511076436187863488230599127312220254507957606571707390490042122324424367017647090090033710907209612074124464772145125885074377911962397827537412487777212366040771849895911473763274409225951342600977127891259886894075617354057003301499846429371531506757974212525166273358890131147476814638798762685251731401133420175773946936330271743736666687923502760074166285380201222812964747865042318461585921702542987721454929264129434363872397573764162819755648632450304799223438249286246107894691501957024925489848543028756009890367544792828505451266364848402671379862801719095381941097419535984295376218166379591010411518530872779115643161156186324264398061758256280497371740999369000798371479509276985561117664806475324265797048374445512932118688511950314220775445295819869719027244727251663447348636139399612455363526145170958337205220760829157244809440610310889160433038543686330604571207754885767116966784766558795113573906881701557541998222886147911025172186612162371273660204251144291377261243942422058675362468868020925088015558499660251709330076475096438804818054795473581685862631162715450169479828801215684000925178660137645558892230555819580100731063993673584860687351684778836647210524550730273540607135955509301950683508185803488639311654517199109811314806172936424348769788369710945220485801821588069930801593221366107052178701855391746996585032557446075238233744885951323968622425069515632496283048910938364749643324424004030840257253862482403309409383468635992096044757814110802999368225457674051275469489710452633716650790881087138097499505922885846956435627781242867814339419785994010443304111287014530001164266333594666111142661351180204600540234214532254625012955614387864376755556141197457295554817002815350069458375792371626293052139895179494444190639757974941002834386635935183751122982324841717760820945940126214328842687031693159141801412122533529525593857675605646543234580411825303654740450280250227315614697820599122391530075285739630631827756392459488177942132535083034037094650470090810614671064662184837188051153435434847252274326517734510435463459366318445828265158428137842239178101958675129140910343092352217691229908705835390025883092575802803335704020401805610942408434231587923522137375952695530268948894859715456247889069360840590226479874855857298231677084388544403592899838655714574633073987254284968692205588408490500153146948031780393346321213169856272874516980341354911876053915619566026790874711915322255739118889686035618222380847367070546677492394052054495727601066706884044218850536971624966303563938977073027206998487303895211588971843169048834841978853542269852852680822631634381132085999984206581249668258673534199091845423702094280058796375236719713050092084353113471981455459571605929835105181912964276040721676829390639290593767308354268827434673671100376324213704738303511007092172000885538247618350182812499705286470024290653677341265089725297681523555367926187761177913770703964071798642182411629135964305691170927400122426673450719094053369558699887645972981352377224702106487539242250628891691044217651622647317963783595240157630530277451468177005601928255677716352882131719656489319562373814559441150949733729971380689662892913754174519658101138695202960932809304420398882529272120326652482850282272850963233552859379435944265465430780481876906842022781100946602679732183073834682979449336039927079597505748258077204758029206211470674081439115410736715849399242825158174294440137822477284554166998642387587294492524527706102417952152859188515335293382155002423742797823613309555946020765869816565790921826056236163069674102932847321547085010916040690524608805178037843991702783249120354289216344679160643494636200986502153389143701397723192559319162136049444965147234864107676338886757670552061337669193412953446787987182192859518348612177730773917729914834472071180598783707435885348333215094711150378795233528377213017946157412939420591459593750040636250913247130558395589281568945941987221503424177130988640285608566111247512071274668660748329510582407407018332200707851337885881575268777974079304547447229490567846404411401185045465316971589460167132939933626951582089981739893905123627596796481276533305890101071350302052603119842167056134554705600354697620698576911679592056385069952106741298519300043822007705674573606911794655748308862718466396415608214479024386310926888967520543352378289537811007939919063614315122780678040127025833457229507763884323852254608573312976494242642535353762595516430049697207085301394819086244814942535488710075233176578941863666141861514056111621094463986709358622946658934379275912789359307009590267413984433646567657751691262912150265585136219489482550251126795370056568218405190490379239523913378732616488128390498060227866903261270842734174234895781316825937942320869802255332660066554918065146211708681093334343492309989931179763596858576408689333184674916127748310085926483441424513226154552746018097881352894672326562161513564474691960725893158914009940907051737889165268060434137340584355894433598372685445568066087079901116428786004160696014936576386669741286486130573064389491624347826047702900691220659059529144346634010433280644055606711593306188086341727146845504116257793730738441066149724707166154825479103213070745151447209638761054787505380058422285615330668500358922524399236495818447866639151858324107678733778211657468040416058355636632503384627400751650363284083657506249332850503194705614338978729601896161600076298231651568419276511571689625141691711467511953253875907688771739011063064553122710008650173469691956895259335832315810130461199426291798153444176410515308760863788604393719529821257869122770532624902016791189936512023220453719325681380624050314195158290266698594404962662872113217800098575109928510056826780075574231231733917459723158577402094242005241084040106393222120934337969839367931533225357912867885553021175282798762186549163977307589063696278342359194455018115350872748225111055845064960518088765809885127314007424995995320168803811661149281787101941949514364628862484935648510944940478903346438509334638638498131444416642302884441915837696190068732653887298836353607821470935220220927856115987760667589588536256446572119284839043779108378098406508959579531589343607065427618445918312366842275938777624869014447694573929428441107301816541082958073889489171153842743293573862114609631289033305557413680767605295681157296697037401091737069879504249510498100424512240085631987765927681996694916800341922731191342673418956972851295522705074093320735619855724716551611219784332118866123220361708169959447891490297022232647298611457372203422814762638209355069656064494078985822501708278024123386079541644641173507271397958036745620857946112330254510700121659734669266663293915406072971507886284983360748783055504548007602694628363143203555188862293578837845266816572478034237496996644430855567328105505668426772666396620515879623173243605946830676644086057066214351776134611818376631884658136781641897859264577081812573096838627758409174251112007785764190954442479742815154355287391079294763123246227284889249007777406027765769478588953464064301555327057470021190798955364751977679647370724853385419209983134164395322798814483810796561820443926839638058683148904579131553930897501100776103343326754820610099159496301140342354120250806248512107931851323706972991422828018923592867470663687845351396637440375465867388851121022743613476773488198299396613806193682389474010496555586559260136493176645166829295774209001077874258732613881751987678605291948111458875161848233998729608072321785913379338204203532907064901527459849107240965497688916844339281370705860280302067564299991232213249152028256442959149069160514542806212914856578250814171146723685844594076204006005935962738394644792114455162020785294246476854822897671853102934001299217304292794376414360733854404748749667744445628444170008068644788554572689429247800558118709426660126108806423952240951433420339632971576754928073237592792003914781891806782354011037469043456832530249301035755095256488963197905107669535374280638321626733427045169964299656021692291346212992093078578890336370818681937150936886650553435634548770436854981064545520272274204826509848174411697139749913972062069421321038728597032853470028404630244913891346187152905507979729145926729608094126178163983193547784007415632162428624085545742129116547678790837685021706455590661228114683687948185062012609578413402049709971460337839164106104408246709479844482388477108288756079911815446144025204999911776155968768873604815067711236503641364455152867822511487626097998883765520878872962207640633819626248413295310922088379670873573219638524732226792684453838531313962303026920257831493506530661694585804315673168438543552095838280515088505220322284128992854006706801491203855306105898942239283649417055166614326477425634204277563834354841335337265054330031744987678361118379663188976914151847483768872519404176469638742383207159507002625988663101148253725653206269340218891505560359678199956206921201317635615158042573833744022165765023121920830630876566544078750188404611608850090988827022423068807022149267921530081315805652634134576040888762547765363211497550244799740685390354160641774097382234319188077409188707880194636052256191810475703529163391889913182746950758924049195861568419015257182482172252745039766413539237481076297642337844009967924979103814411240534208417067986781360607371916712982963023760983269452638417667554736775750020609599154433546031491123823017621028011735765526533008907332494803378980520933439006507271627217883819662677532847115006225377557422932412266268404222133742890135121091956649648507232086117346684573370497936705254258345453823402846627909021364064292290340847927132320611351879319707858775854488497108980063070253066590022879328309078757972467912999685794818077443716972014107009522182534683049282691691159187269576818030503265157854123668568712889258750958225645794206156192374669651550510838493496299430264437415106788578800579992228802376796420809176713345399869977672398922821475653020803696928590703873985547698614707983900513363020945764015604458847989730567287280264820116134017420886796882413224797751293891478733382398157697011183562753314582655555536842340224093322866471141374217948531846818090700095948261144506982935017201609694734991635945803110615735923453340637208711129189823481316636846020788669786917984246643509305621116274023620647082988132105341752750401091956165841014770923194027206926047299621761089520437344732668096046951492924892608953384385967044012217053840069713105533196106915041350867237904441271854180359432825216272189258216545224072427777905807431008277570663968425639589990720228773984236931729867738139237410662292421807242867070480575664636672601999306789760508511379334543745020768343739786219944000572241584204273971385065393640689652177355952610218877125335881380640031307731275646141181066928612540457139904746432595701866716911748392438196762852756957623806593894172634197340796883592389355775476358735317409378439879547818080784668341904905505929920694436901043459210733498017516160688013365437308234121863709679265879583653639356082286375877272288679481375408055049256738647849472301848824977012743762326892689652822021008653283666446196467890229872933362337725992508654187056837310410768157356818942736646433131756434767963736820001501025331326413330427675340516717016737597366131024013057126344601602122134106852204070863879595122551839446831969437377648976381073912612723690631165640837254443869326951234223430482247406831134817968369004735418814644197694552681218551051050218858007586411612438167264443537838824846174783779206995857836685933588970343543609961713167680194047194733629715252357697360681305319891706408525600635589505872765663180365123032464681093541463936830299666572566310799836690167618191630602852142692577336667998107270353442148269658092508016087199062901247381597804735814803584623148407897816955290839332002985057485020756267009937996838217316707379124369809494719983547708416744108573426269995278250559798286910666338965224402894860933994626182172928068889939158748772647326667620439259312805538433797751217296378736178399741961305660445734468687735121854490152496420346702919735106224581562404610644474956249714672981563179326791390787482688474368769551191196744430502627002861795106089216572579272222934742165191161811118655156405189977357741018027331186006822929685263966218685915721559175262100947916197522526979190264342484234338472810436966761711289813165567737011105167032255711026853273625771737137040533690336229887983487896608930843797463642252107867745911753317365501021990629357728593747254186076782201445857243391845535880901841360577174266860609178450317461240089954356372780056501366176184451477004030070381131039926657820513744600219349188833890115813418503937088101802417521060629002091266513116326798626930733397048548604838823885521303553200356448068969398938446671699884616896368720433997191694645335423822726826118781600283105243321822367707011889164294813332813000916190066643328038570695886136829138070701487439987863110099615022753291458620974838095487632993669084941528232852060872262066137459731369740378728673901304272285484591844552854201290098712053472009697117376173513734474319193572880365397583886949362827328328036260173446859984821823457307386890436463252217500889373192223818205055711434296146235372893255120904456189920373516707561346930684398355165741075399134565639345929483577590740730397823000401297078167473187508459044349997850139378776212817294839261327073307796555724308491927555560263588555338173314084815339170951618167903204917713036257694183025934441685200725290213235935078707278153166961821179082239592561950911198407120795737116690172524938835875203312618360254541446648134561777772486968086343166997000762351085392564592689073890823933509442901397156020576383903815474900492396732797270946888166130651887706962214276961897320446079891173688912034103560924652794243085127300197207777547587320032025632888082370256985917358431154787575083863827349104196463694001594849948809104506338324089549124573063861863773873421652694587371600465329797278706575530952451648888457290216349258531150519761893855403199882502458395608938064910305160650363767326556752554591734063912700130038955029130817503185519619436210165239050068843533346573375058915728008646212885204266180533767144230373465474508803269119524991933571103776053473502874923363744711094961638359891423711304415532279358721106739141619268805122377932591571040081261361998338453960949589475438521330546066366320196462134946909066233604750984020586954972631928441321122751728818930303643571692594368126858370654015720435780797203056206111491995364425257598006414595677442130759668720506144039865770927001372625891403406708185916209330880371061547535932286672146623959208237499764162971477642631535054384971535775341298952658191838308469808802925634980421459398800823329963802168546231519592019236241677530147103429389003540288992247400713210063052652733575629023046752343284974694597214838306408498574382075996274046442420713344044370892870944127864751094097152370246243314304374666859119829150746400384479377822941235688472126828345309887178353198587972079710452399717641354977806167539358107251389026293032342980848086282099379589929879815168824289050788088385946924641609638571999706142189200391015983798473490397351073826489600168164059873107488824774406641545409066155188089696724749685891161335550037619075531309412436794322283201822806501992628156675711469094849327210717957198488060769562211958764372016294354330762246980111878868424823928273247018668199692419242353835072644122022088750843640742440437935300519427293985268784407706779900380077799712442432470558692216929279912876001075706981276755212265664237772420310185040017645390830356699799858636052000174805022477506189093927074323880223987456181778393170990141399929031441685493533817196285528936514894642064467332666487694700540689029725677477541242616814026492492772350634980908904753904293522894796096665643562144867915347452044904072651754700696293715714432028175774437009654756843207617122188485605212252793106878743325789781259031327901726419029012349072604690065181337214111087466158075389079612867297381766807445450194603121710741620925878692444571265892241771772821009952764445035520864969015295572196098287480237820308699919836020638909649254190331074956622383014747449349021647205312546153186300538327325629427601002021575721104822607435011087281862690129079954646827295247966785047135638371511933815716724769775985766008366761979256059517426677147575847027273390597564760348731854462847792497845054294800300330824108660233356183488927304870934186916146439808895447915289096319060860250715951366659657367566949667624491498752891321304189834435666143197989376573407276245316619419260012933268412917698401533906924332928439002747387661644247371075344602428356667345197263350225958838861768418323070639784929630831605180242901525625533477807853228879497810939433377850647694904058549180259963488226711579816907862981796290302838874305976167249508387585063292134177201594949073492444091821334621127001996738300917794724195250317880057951192267216538494028898710247220356996549931944702689507864611108429780367712572297810652180607852860509685390213107071663783444401801713031869902316475530272309773329275861940798818615623624205072293956747578729404092134562107835362359922547386884729324293079883996642071976300943221207804548441639822627292861045547235989088194796959469804132617077425983873477225090874960340761146525331900415927544546366122485684343710644023469260433435530601737530981506001415509465686644809788518375735121505742689294239260178484537820051001229396220886087153043540349171467824735094213501796618562407248966897794430957046895444241230999058463827484836767240925112578639751530049704964073972775828721959930143921748680164413873322955315538666378868234993190340047371529371847322379284205223947717092352898505431036985373609719879015309213661364660903780195920391406073575705643431884739598188011518353522280745383979211013142329653196840757603424454384340823556948445169299002255311027727212504323445069727628350136448095353909404420739342787611357840220226924746301444802105622697422755150130284991926216919111470066351847818857620734063768340393726033447294503957672063816370222824195444471726607578647628474325977052955011506656996216294715760131012479240449035895995672175678169462555470844898915140145692568422120456987172403137571189205370009767545433268280513457449152953273968034709135464427498667855623097416762388763658718106344489164729763376718939820619663928322336279402872020394288762845659197429064688600878069505690286310138071795082499901175142880820703442848702029996030666779989368700034131198134980408383663992671411494519560248946451252854656689090955628959375832542175122064461055187524498621040651613379132837284508215579045610818336617226468847386268725287225021521583296623907119029219013743065507533364130723006321068673065764493743443355347991727074118784031251765229043249434340953292581505112871661895035447936163177051902032353705269409307912257872836369970487846575956593620600820462374374574449188292179438295270456218719394647726879428458933136642920013049998115962154097950752147083952486656656776301635075014149054871678006628171244788815198942463527305334044202449763974413998056676319046498411535869758148422250584552126611636332614191504053038741915480684385498174730359262333655621003676141222730721965199085611458388891970848373898789528961895369795680085740442601735447662161746500863667716526361832702471827969961300963046562388544316124615427848807304686051417384327782711675367017625670176023935116703774756401978492253297763332344732504833571980090541755922454293889574280496596007049676835327640895764807875121661591018063667171714238289424111047153632392466712857353277449437024681042152749729012944857451974013899174355929762234170987084076470600395652447753457626096141074131324879058854669224292701106014787239264990774589164494078882609958471913608610367063917667908389460060393825214723465366668927795076449214760462727645071306716299874102949793754733450384842493236925464764545529915884897395826783032964208313545840380315945041655921351801924800744660115976755288690157136684555533879483634331495552794135067447229541330088740621806108747583912468647632393561221322221031903937520528294993631238730014028319052906663165059035767962146530809267355229456779224285367810963943575933311041410170058847945234630864447929718095771262905541899755546464976674115098231828560351969934107749572723372287127808648117025145912083968103603056201600760408696358785450900357931722454173383061005553739215216753934097576750246054996602562679007095635301332745117457323635346549092012732117724981833145281830073847185757279490181291300730055272982327450024394036841365768196337852497564103295148640467645539512514840692908414929303801058620939722534740672943155903263562667091374184942340796953864253128381507757264418463513061863433895909071526972460258096451012663699043434433885797531885518048819923739672840771305694732025553246377243880897163627067829483571610081038384870097859264373476406316311268982296357026248478593870260848369321798104412655553176401946912388642321428380058385431021602707115997675971848128800329608555828136744391695351952499134215703855783083683439015203229528548331248482091017212580085536875378358507891062662693412968234949371576619560308757137458805374121790477723964366320987537877689377115554446929246851075593077093066175450175124195643723978978545714458571462009750871377296587334218399484723538810864983105571304178175920682039313375792708078345260516638523216773663264843262603479547953956061747491177625136594863657393742179427429631840155167567063171347154632469868289994722632865529133766139769363124100277888142633516333296735395051891516890879409000989490201307491324946406387973551018978852688561928383934035435570452933094086622038170183782582794567559128735969032943624645094480145305367322636083606361629262776894154819447979660504841563847960834287344787254188249082260064200048424626848988725623102510270859216414594903449294847144166747679619567599919113355656425568618949783437364189835206118679567638025879660038913221319608458682079680122580444775956820677702833652139383885182713542889636733656311512905288921245026772288823696093591457429609182217676166601626202559451311132052469222997227736440150826178193792673253070396676053734692661775836087667274488399733673202193642781467912869706896036684060463960998250768706366983327157659736378562741933716021422046654643932169733712534168691452592395842244781383843520400438586238724078924182942755380747302690053292788411653811480739064313409828599591490436895523029846629904403067710213331413490542381603155847180667499357750979219086465023625945498181364639255479577966832970605046661366541764050739541397308147580125588600038398264016684625643990946626739105424521955463423718302256637519082974527116493951281565439097597762581916230988735079426217171366014716846243260943716000289525823551565720273904855809821899829428973024557503212299147144955180398712097965232791710277928131220471960786618735856485366681830399591760946674455322752969712847331744762518593302661242137185758604624175834089031443468362887538660331961898601793694706043964208756808817689758702922541657998274652094263329829392997076698028369111640200010633054378603562252147141825221195430033140601053582392918295907163177032502089313871530417656408464568570063914197489794141907109304395112828856372606858630936213859713488231549183043029230433671809898648671545931815875220102211269479789457486253675335331742002776070803330849132037768657895698380641063289591684569034665778723775448808440438558280716942497173605225081318118419390588614499131303617215683974096225095589028139568995412837406976089271895369999954317679675558841833298643907194670290863403597027028753555123976816112676109076486281704911029540674662482708894803478653248360856434044963212544008924080493980062698523817699696853372009370014701027443528977796097131177617928195570446719154601373433097537768271465436138125349751362379531265721618290763979843189175645546891463564337028760172979623175472014556980908551254009966060491508542076267648056594342646266296670927012280839597616600114575551049081597713954365200009181166137217655062016242088841304983722206488458259973082616988188471032157837320810205456440482121471896118996671397450155599584752638175568610969207474182693796112419096776225033432193872144287415263429700652553466785020325477841919633633772241484821609278912151427280776358371275272358277599260582437872513307133446946421558363626586596726261625088073354166240204404957892838710839483411918308810156283639784364718005988487271597931808854951924416796753881745731375526428863202673328494319745767270767021271043486869636923105436017221532223648886635872053326913658505413804145942543965083352672739187155670892026953159733193346743109669215833949393993221425100246223741625163899572619484470641481408045758572148878364782212871293097489039239224254688386602831785873765170694550506283731568309511417403133201284748446920476248184208683998814270165592439232682009684199894877716416516377178255713603118955644787789569754152352532123695170155739417009357913598202364159378976140299247581972412509063161739756962311424965353932809224600093184212679663215506654313267311208984314842656627022266774276235238584865296300333915460451711888331831559864357972389722610860632878982839721503740188301419274572030033237703466763903155951603629199151778373785145449790800458057594181490174559769576162840383210398634958923542374988069346051605792821162934096701899692728361706977717152291704660412373037107038317349305162859998269004878790142099168380384881923617842660305412836580750535545807268395736606510056713973480527943768011576591701285555865913728704195987661482578207826458939820955688870672673956754948478620032747782604588081503029088764755388456967433017901357755074292340431320862539685072137470680942450398138122275360297163388227135395490822013598379212744441420752457886115620629232195271032548345470272890784246667279230504171032648892885266757154568549217729179106362592650634914964891447781196446234844219435671924112458848430290005150071584471419573879134944683589486073905546023992670299535000844034888659209459458998652110680484036664710759510755269502649269743002526054233641366657106905362630427221363297959116972090810229984982586565241586267791395508028814762837556895741436356862616409615673615813379164314944573406316164526376520600114028352879078455416809925482489818202777432036279196912276794522553405589670399066429556033807665085641865912032151065132253538038073905677943660393162484475696088922619738916393363989905190631326857826516239987636856522551509860250939621017848375644933033242539630255900342867117717498519305140473804878402901197322027391977750870281366232252766032917719557258590421953550835116281378073863917960007263142476861610155981182557962942023642940486396260117631702686457375538953821281039269359580216452301073471320498173792821722142582310202140268620844514514237314120166374480742238547316589796663018535737946523628678969066955239573654510700694009058826554970198497568759323524683024524066079028224702692365949960295972681232428396898113276258490758758982525377781775052669033474376947932813490257484170142213554397707941629292937895678167542406232132757992611279882954144256804378442209068876641612716017639232663186495065872438765756980081292769465413363007643929885409908428750665493326960474742303286275261780356470101995981136371174226603919098981155770306103751041218198884028129639961695985841860701252047132657419302465739827344174596284980964561597837330998305585897900684986613672736269251191425601069200446003845996889207687772250513805780660375122047802057603102499736844597705297260773055483467209726440594393461137233216317514067549511385122033943035221301712930577458478200770187478967564475229396717206158896695508622955119098613360813272983214072493327258502584422405250301065174810161435150880216892629355132334440668810654690842535812244273983067012824834475279876752104072617616275675614188860708674321928154359998980899063101818413794832756433255742945764372605863423927066717674898667377153886903029129747843636108676977848397970550965437875814261635899054775635022772563067864044459431957241334442244942529737377889701024974891583971397799495790065118244833739815326704751537030442312655087876968980907529911776283981689463985760894106582888553229564497332332548654303092798183145453419136274073961986020010543147974887551176544845312065462806124638279424286391824125586887523954352694861590192659169128490995012560523063529828065475451482938834618353293181343301845990451434331911317020205800441453863021759738839188117002867880412896096966873258013765849201105521186775542156220294666224948253481588299782747647038920779437338786689267759123015233300016240225499445036824049087265899813216600987993430169814921604989122199923794234860054902478552998068136899188912425978805230587229101080607441037532897319859892624618062958622721460330369086581955971957847754104907156618176745037180150883844904271168498700005545918135664763343662033391149193706299312033705257802860199650964184521320418878642520884479989008471547077801370552201110312413396237794009509092497445025339556825651899718430558713572298887210063117950498522798384360018459090063833040665805544185692989897509451603022695780658307887548191683331662746937481494508737142137651818067110105357113277442227812737354306536889586415745439279018555305805003929688120802920512212864626812914400040848673933149127623918469061306269758812757521831928383344060576160469322162581209685077497260337565566921894138080853344263902069688064770044385878616337428209308040420745667207067840184425733852041913219104540247009483989841808229767272508257828299760426501054195421823024364283274185660168797542438273215424017123738108041650850036642525432647503937927822893880798006605762253616343632240730706650171659895729092276656275050616316040165204582584444450357953579005614493706308171574836576422922028272819092178727652801375506919567907286583797547330773599942844371820706632653200503749661945222710750271934482771776362889209224640067008336543616856230235617898850739663531386896887472920453157590287261180059003095608840362842995061742544903315674928219381139030527645166932706695431693626432860868791261040726224081492478705818684576879934288543617765487563328999403175828940232385738204904187803304729374642844836386099346294385785736823264517891942349264299642485924225686231180932494564954437130270990369195659984180141356588721889979169660810349895097301912728429248409137485297390883098516958891044619802906006791834298938970954983121061478544018124679796918497739738202721051065143787002863750069186201493635333752534658116633246207731182182695911260072808826854765316884308891285123712542053598576438361486231093493381860835550950289202827708664928624227942469634200273360109929776444607661435732636212894328614945626158023907092603877666227594832979439777708531569624673568424521511285678798337548453072307344262242015128626387837787103123488382762860237040127977136780122675312348128709569245213201147727233003472970962392733252481837714792958069976613399578575550684724443032435542101483720707438281177104138914199167273155051451955093516384094564412245013725965578727218476615552060335330136558523840740065359240511156402266734641941955032549863432180892865964315499144505779758419479286453232545954690814282476463596682331606622790493403046981513906239318078088078515792963266689219514032577938242277687267057463056825221562258603017757208964014394982107574740805619489490791768176964523113271608513428845820612392533888161032536508423124362960153045584192923204549558658242866893409676792149911396102250963938993826445457837656978007524043301857095435110563598749607291124348531535288230415713944626470632189315232110809697953963013276413418830723015216944896121905912094686310758452532021596121681775885390592936820203859317310970650356794257987843742807158457933029315028405009377477749215366688396749194995447967365160127548876111523600469424326699483502096937968164856061304175315812939064714785954385439079048046064042025572418793178647352294970682191994392052939810131988005257610352184361175056520490334122153824072563283012761178196405220516307071472254677676934499637081461295355653626330309271112131328597659470052716726500331804217539815736682423187196038044015994157478155722053480353228467334733656573946497454067952325803637031613145026187231134349445442498742170397015600143804416041248497602833560590666268220324990931611914581234227331071234250611954644340103974292205368458262952840739417472580286740161842153273042153574434635569722549278116329449377133488345991631273903234127438180882246620442520448908265498926558228917090205651160833130037866733442857497350567088987645570427699150135098042390281466415497360214744998848551269671003595798600715907137868338250976703933496035811534186708485418195386377184288902860558992957722456796051886643319206162470717633828257138837058059367157780214441607877123721340500465479705647586123761854706879274673032793236693271064061823269032796823944578954044353704352303534368030299881997688055585532909864693600819524580681689900145347174436691114565963439443205307765715390372280229575251007910253041385383105416454545909483220106827005756966529528807659309231560736492545769916699113176508305699265402971245419440139842221319187384866225087908421174009790112946468081105186592347092735883456792883224155358633694282447175424366364328531688447691005905068592961940648535551079417362223602693350258230959052229568001722451707930667586083763082556111485560637755588826008945108644100140730820922069252443926832498935505835244010401437841864814656246683103825294089059481677527711177436574997410472352310748145559834920473187516531692403304400329830097066295902793114821605431548505675423162763936475510720777541918765789049052801831232713570523117680630481503424322187039720129732091966316249909114313932527555254164762105691379718896978891872924804981336393155617712671415741485905985434131053402498851605575833706751355131604623887433158420567854309186947834149457559499714375720189691859147279944807794113472032488119555841332620072859706565155211275510027704342589377136959652547591879275150023379560548765412703216127060037170513434718505159796385770441337259324362035533474144881961165247800041116938285900631143182668678966187858974692568812027331228551199186462418331782847585254872117815000045164901838037076678276891614140538256848770607925370057387937357009106068424480059577454992572478038362980612714030736287146207493791526678149862186821796078507594382986958132769374784896623578959085746373346419813575101630722675464263964937091929379321481615308918402304594930349693368242759600401620043237582188994966718308696417275704860953735408753164113690818570588818447310680081061145044560596767645600442519626185400338375387695054225322777127215614318353329815733015168478631458040989600894764145517676143243595803510755106678249595311312383295433111333853819880277114272018650197724748066194554549294934320983995437681824547378829432499619571017601096795067850069890750198979851458931795880440793894152318670827766805364908971605191598205555219531080714914495924171177427328595592958661588623135137060510481941941987623878717496182846682583370862700717526782253149302018564969407357429698458942446222131634871478626428239180358676079224143917088870582216531576693836620991960538654556328820682806593816879697151890588134123944679696537267411233972686007489299580079168048096134195304263482420616328891529582087557897587650992892124704454195056764522784008039484730182896492795808398483599675525712990194466685301731513776601868384087607197312898979160792266672850348157623300478332714104735886683449013977851449434041318198865690596968762742324315726056503746954926091621955845951014667293607813351933635054552164318456507351490884224204790516347173780308160348104578769498357309517925902227507181442378403161017857836536868271578037927401662550475608110207728875936892694049190354627117102246458793661947177150587367054994922334874630178941099746970934338245756230727891845955167168380834172834918653316710098247736764403014015991372820843279231663510636356071884623348244538193962204040059137570907462336884108462712774377550376676360987324602856525296021425337410653918227897582097862414940718708952946221087139122127261772978531222053888316072202775830354556723760273180131836724879824838742633104358530776484231088264544156676270445253581274391782191545906602727867592194541188972054060178110296563350816618205816540142879564388650915409189367185177639541995737663434248554247840214318270926445126740795119132567794814572296131787301320134154598670845572374093353319645104009082729765276174393040197746318411169154169722609219321292391874650501903004644380293414167818301409944135567780297842439251221493341344352408429389210722659441273585938882055652435171636678670619844683672844293471091205057828988395952345907708138355707654151580038000261997774455629335919904356201618850547337062836185809224245597170184202626616239855676336577812668177371475056297193700820551860188890694482480406543622293027305855867163979812044550011709236692827460092169215934647848126772174510091034583211043426908110946187151077664645432954916331679956240810664656230380741514579525708447414660750810839666717959756619948193924640284550494104229584065721891290089190185360727785953644805025710555145499771332441488847407212065125225040830868082532322591376798844255700543838760822869124294255259895789772895253721289663966249238830922988080668001051830192357015124868617299934358550778437961717638888018799880127658151701891095933333416512862774659951577752290693387842750982030604912513054577093455950745116858657300782088643809179532821456214175678278435638341033518208767994385512324680117429637092204289256630649747649593809269759626764394964035273280382919714005671419173899799051696065171092253685942900564871962081377181105350405973819235570966261937768809264666388580543502629059285146078419348781329705278851695183231634595816246511465162846268952942475203084637813672182676224477053805268197134057442052273117830892381489769316858821083502906629237393824797571693539227964627992389395960586392468526897947807969457799239831103684250738008606280436726600477763990109071264676153330178638456558464419486573459306169047799662433443424938411654828781939419722129005476107611421407612820419146711062544040245954046813191409167325862249659191851911754383536710460103144122384987761706509931298840149733990690381245731004744942171479900041970057087228887465863936865020658714633748143631231588563272171186636160358156969291391348886393227796947378081682185922065827900711265953808584633127907682814712533821684738312182575285737816774176152664352825570094764909019599444458999636099721824066272110901814188949306365211442765561555198115091652140472470669937062394570561755209745505957804548422413653320411580141043347819276405820167480501375798170312143194568702263939821161824349006871647400613294265076783158498396195699922473815315678718972238685747688707349957069563339644663930885619875278335567777143353216822129295056441386616687134154064188934017858741039524505925753959322694159391713937862481845507339208647881957308198517316326555322061098721497428715275184083223111720319000118286474827001817646120127588060784635029566158164155965215956787341934165561626631978923784491156415394583240957819100394215816151070456267003882777409772232828334455920389267958005310847805526346966030880689655005040300031572182673761894372774987775871797043144296525008082693682763235492783389517449265147809996859405636070509375013156600329349532371105812808543212384495411201891133618929010041189612951850455717673340252475604460625150682557387532832768447102356331387329608491926885793573771850917991264755974199106757826747216130573742579141601918730554783447708083843264973514383510115698677831901320959759509141047439708461854497680300292153813245945294619018695616828937477828089202635881431992784337561334479371139456520019297672355630164598730563101090484485412009140716758824188980143057330154030222933696244123105528176333395014339230267671759713763566021627754981180562437801936395684895727298255426659479396662729485765969142585178637028831071660944423200918817640547970684205932659046396455926588126733114116740788548198564974130783820902308817000411407906185421521243900520582053973216403640912202010213703342350319604460751596824214945866271705326680109558946782827949314908721595354969287395968529867944539410460995330454771707720800362039964447549701025588024315173709541068974690180261107922156890734674381948134249215605128916425945631121990839465569438559561945873299426316066539284476374683434421910119125953973432345735005304458018564890166111193178437380542474380832595426488777385248333927247726490825522338368800485323087381779366035679255246935830564668658072585719012435539456451633798510688193139360321461483467748644393628588018059187412157037879263187093258731854023523619706093217657728849535755997304934835649483316407185394307950690424043989085291482680860514201856934368891566314652023981755654254456610563363486252205429443089955210267127697278951110574547160901069502854001430127364059919480477610242863386090160140231442975093198295289888386492187740530194224772779096952261055643744008869454930590992755939978356347742767461531092583609543688898698920485992466513647470434331709022080977981127888786892042451306793314088161351467093194717736976457651550456207709240285247746894416052465596062214816263576745725656130538019425620656267933515506602949900970777659990386476475845410186063501070926738225667462604294855103747558079083647637185960488573426880868368798172869805254225053206281431581366740524798589086561719316501106516954283809039432464844727690093916135571760474699153494529109341160567348962223752248771689632018913577686028005755078019062844322818926735250756955475441439625519665289124132289072424538649054877441654308354385998476457003863934843705076697447247947614376098202595597934334165720454073127365356117700873088005873231914172896460846786161273551106807733508028396174495199772515043601763167527466164380718373993835025341142864362695553235662471577163391029197060163643774473895034635885599542343959206811396051824885227313173433442172004207331072511606041506365989122045477900217814700201109542469234626522005761512807897375485318163533469888472466294054427988041119199417848450070744640726013359437151477503701428454606013665020030844364897431982766938796564671221463976272666852438438302222474795848386757780730569091307550298346894307508121105064730591861590543797599015187993748447493335985331995714142367281185709328044451885783520235320213883807227201344329685868477030567027212702124319166763205070792778631008265342958122294489044623952807634132777886756971163070668049789991672937321433938437508515153065087922312911162201191512647247511517532463778905087854141960378758760669936914979831290092981032598324260448268775829222464997519639501849300470080767303188754478922842347786487835406035953770696690335326551377758878226137126759801043005251151633999704495861961280141023654887565729462510047650836015819367223351586284322282131473708892341645984083482160268165703867510717412051788218204987616733495264127513136740826809857727368379405864549576663589126075459693582867971866856330325421119098608966396554727560157180824416872216918910782166509951980414167127426298927028903128914529021533977735494039607752175393033044792194839266621563972510673987872528396722236474692200588937618287439638465620064476815851729867917036245999177203874857356774843976859498449583726385865740827328646717948446419187624364825952393740698620051649924312806529761317690041994079449661876950798446650561760257689478327678976313754576377861078244132647279051147054776806436204484603742167005869032249768266494415019545642248386313396599325945806621850405722249245470975268125899228726313800595618727247325487080589582878464398181303300305505977735834929978759371739425943484145105309786606418713847314492924592020061611216924464374542079294545055979463106119542323315599606484816091437312053029728171806410683924232667759790754086535636747916596273812606565896734268886377071580861422429810751689549359181784189175845457620310697023204183616865471755815133714272788650491995724753007682431479813852167009611230811926748571723795342310126276424092798952969860785241239418541241912162294570501059646513409363732200450248245790065799190976435746910602931828861414194764842282491476782455738476264842363297469441802614956783820024896786381425179302613810553630252391387243018116778503574101086611763409665584539049084725234130923332566599493560454276199465598082480680222702237018174428880437414282474252751964661352351759799173969223794711723102837164335350226416557247718233193644042544844689311228992886766321763213515207699161518230941115267208241267701409420090999742362775674806260527344286349970354887946096956037684950562436561945714996105647084162594846925250198541205812818840162482455236836786439824418753390035305495127579259155181699178638444610251630349434803382496531453820521463042698782100046733586080990258181874188058440730047735850185822396718032251123369779789289542916419188156700713144526854301416355678472684465549789719644287280325611701300544711330349223901673656661753915420311056050453159298899972103253252088819970748761062703653239422744272273308055700635021123310107765123597082190001496847257022041226611123491231033794414547323401186873381902526474438182318389937159505674375400612419112615368813616654397609190003394083438989252288533331959586630853151615710631721644266773596831189778607110559861015395413468810513690607944442979852217720803962953856017537639468349769291429151688901908572284090009110866934163896284624558283674973121171620512049090898489306437085086721170064855443522779814526282749315421710553469792148872864991546225466427455672714043891188827878589747488022046118537690954290194248882290329415697949326570304394519766229923005820917276246914782068089119498104211423412140599441253776500542858972299048143364921638643306224782840413908625633481156026639905190280051336610134458448558806952275044422812803456374776202135140320233947616259314297188982770156023343612937413750680145467789681468896556798697429695095703534132531587879335379910774680674132515532011263139766074152087353770981710506708966451998300278903278109148598200006951144776077299577294541290597082815582305591998578632931906969672347550129850939654303698669080157665694518094347956233352711134797543091784816360276821201831591891910566793014540165233608303872013907720346777317572104100128414188950505665486240008114079750962620248008018383041186056937976288894471316926949427947734698461752717223739309958909533568997086841874514037191295049526763438841779799135248027559111636244175761143630278238818687285441993264459603908051297204288904740408891474807159911271678468829581820893636340161616896974410798440039536259152039631495490031750486894609564471828757334770683710584228280246870731963038553581187200189361919196457320705491115335575352701034615718955053168172711147498441910828840084310439920933999341350646654663889991235474850906225333507524725391094466089772270050625791907515221901908722579070050647795596285633827666743903871938769480732661627669139315563307597663374979480753988515568219448572205616206113522626693037133885160594779013738564614667221666716720812779374501839047519372389995281306718459736412203229030659820255684718520729299279919062493103619955872854728217658160855049798097997663549412349795210971149004417372614241078924599230956114300252068222479550699869315078004606894840768558526705963648693888881810345218015849205602730466346787766165688369435186747236382034066247571294378523262305348788280451939723964752197653572683526388080754174349245840081303933958214530413870114857117740406026143780790981796619903072046569421629936606901425776068032414355988710517993179871685628730854620354379642140795276010605163292060686273488653171811797781929596278418179035369104274635761333309701089205418820714546763189359171115968846308099181675700435797189227231351234513146802234945113598675218747923598932601218699943549156608476068703013422618840104909045812796207227086245050863979578343621116367039137422740730459675632634124650090487209707792711588685694128708154066307618235568224166968196970342720930676250901379212468870521371235160673390401364462202174649210180590026089725482954518820781274257709907851180994492375756580571880986377456851868800291762390459401954766752499996906251965496549482450372670073386767013244386968840016969204066269639187573007782977964673510340739068948738309558892538882338037511198484958914479617206223321316258269194041389987437093736538244407306049451551284698215103568040262359036559029036556256761947528897789463821571105007717607670307359662560845570835526236851306295491951095771450764254430711355934316760161119893514657959469241807337405997109606475836609560599362185242064532496144470460464454516451541402237531413832142697124866234156220321442620386526028569303471976523753939474854982727667945494249302354681147626029451171839523279460856309068083097405778495708209835963411270622125522890246028155309182626249395145687108991583800463757148716920693895693086345717238478842215052729582472465772215362626384833133551550860648386438985586286686830866566827566202119419434097488349169743729936097185245014146697777166133328443950322713577290167788714853176270385811159675962614267507447866093062773234662845373294734196511714192593649583973679055431142154199498762432286257305873517816473984598755170565567108242002073292114442924295041743757517155678296932972800645389346016840857131035754164005622554735236236776563590365813418286584992394413721270590429435307699172051449155075069565326072681854043109063425231181719860039630951186356849108426876943775389423577445116358066060611633091045527782308529518609602349369548543490360663182594818504730905744029152221562195786658837280647483241871807348301307901897990980862445121331607800265752258931567957571306439342936030723544473121014139349525908495654756872140826718201533754921417205634313649121832089462115525621814062292445544057332139178396356808694510523445790675433812745748751652009700960403072629616229487177632842034573569498755770566459496400339515527620467782844579394040488486758671218221774184950272199335386939886150219127856306877670322677242098877841373168750893348295807176896140152213270571003445734028191101623873285892315185218744808545055667045452349619069167510744478540170006876892502413688736752425923723135936157278782278845269431828371609437678395808917703360635266698866597708153516421607893591251722282557458290037500863919441616957578373160129085643394994892791130899970664720294901622545471805388697410619269757251025679360272424604095200544434188042325598365404771757288748271722054047916571078255698549162339550727828274203347270638544210313715891877211950742574739788944376270471204336720264050436678813108158019011901627011642606186402629399947381787065049107963668301982670240406949588960736326949703122136280680052572886657332653529291961961198981663289438085255580584465449491223566044874665110320624201060096814422880208601247654388281060293970752007606006317720903658858165006574698717018520432733920776647736835465107662626455643341104126865128965200911772952602279820968660396782436007396531069325676457605854586129733823890920875648697789364713477436770230112264559166104611392809327974949957001752435588522556321417229196071758075792643127784392460658285232144847916094988646555637706051126552300024185296070466121230590488848578954381866117293632604454491165098675303984210644783478634727266263843139380274155448847390883368163448865456387419950536788720097930338095827843038577910665409181900380501150480055431943377785380897738884368849879582900211714983737367170638694639450566456645922873197521921524976214024900349073392416123723376953180325250453792362098227939382988897199991171009197310570456708740291111555637699703079950167959669593351676709511616084955836321628947514625782200984730160907695374357356571982856312458376470982850674205257746216006616979465585735339660472583989960202914611285691532582955370854449682319737702044374896972494301916111378796195706216707823062233277760165257013849614750811512727411892702692431541719261675962621497113443042202299940306816233348192536168183598997312716977108747204080115490003113225927835048821456890150320827426887182310767277627913693654620117890566344111878370176378762499499481835787850586922475334990312053616152982090848532633818827321904405511365644293637186664401673521056027077629897411890571723702537901565696029884320290134574512880838402778976575408662046516694175871512709612605884622197082386284177386223930929437945493537947962102784268408188972435645135655706655412997646545959894670338193123793016056342473081798113620508921175689052101835274202616147825954952051349272096755115611239031697519947672769830581645273035307411762169075939001834253559841533447112301007140122493363502522863043267478638806216228965881345362557502818999801913525670737731255597714169077468747332424295704610077784923407775654482068952312815846897699316050031102643857772394124261694104658736114732545833512971376990035083563537614086052939637988307200864417111627630389558753514671873880991033166473866448730331330464596428417879467023742353280435618397436229140700134623777272157511357164878850944425834912139851503436925924632100953942420319767149240093036768912732618969162264963935998650221461749256543070410491251898779157927031025114855183092604028798792760366604319601567783322496699734748776436160923880514230622989534915966071436863415085957192409390212135437310998753141836309607408245522603865605705287713130661755272684607447016087006896408094709497239195724012978133409388346105949981346731286262388529820767459435790744626386573152195732720562160201640533441102764384740473315861258302473341335393651248351145046274442086054653568808535674888660324521552905756165058937815467735031493695904707351289579381531993298977445600619810809387517467434776289033526035033305686823062698818771008535783257654481526917780421770910397066163303460512473256681237420519473869359762725922056412198394285369995474088881216251933970251720554701116015733586840113549487675250228195976723708613784853379115428775613025353333725350535593547077880914555063004835898721191005765422323385723740088853386771724951204297453307328795980842691031724788861086219096627363347085797474681530673801159023053972441017810931462208187854317204747196155068222545286771412021498460183531614721136382221462471263512821176205703043664609150303976928694681291024208043348147599419151515018911726720773445781228489465527137457600317657948895529887827913409412696629817118063679790574099155293845923480339042833348162456302781738899900637888363376372449974037306099470299807847564024462737007684493323370679458364390272857825429289999369820837827465112183468722471620823630193936990824261829076027612564820074667973532365956718041508841967890243827405812435183785861126646702261931170259938051264167109774212292686587776671206415162017208068880013983759656018622307948752103765655901654411348937495110322346755134801452325448231722044186769877660855487144337170704590504405885578623070267198934063460690892442144678833795848204063836841373886412675846348575694550038889203292815990170564929772021057873880410256910647118117706249559739241641307796289496336826727942051919988881221140331946531923480337407495188742124913307061409732500117453327739449852170582271095948228758599307584884454238732802913273567778825376451991253670059791869639886703889013045721184358056548857886270810373058916291891802266669177910026747190803196876838398745047335888631308105868448961255439685208396249704649887371696558964916163539513002410150965624173700265183341099653704069183634685229192571128886442472094154900409448060024105525501002158096611406278395402117149147136790059029533304802743351057800859270516176278111429321499129075216574779557565058263409699504747851091182349470183028037148772982387440062166104632310462525501002623199157254632977289520141510135932522934581409508662474694525024883246904845072695013710311228448932727445179205626911218504253630227183498248854320779822157818810806173212266326120365384320901916830164615037478629212986139028607792387582218341158197403461930747511998536626191189628671734950790221961644854306284203236405613824648363428497457400363219755939487179504196381865149353014648349973163617496897374141899511266707148985095297141280323078402050625454511648268998236334446342696368288030227513249798315566148662675614667114261024596796229643601329978745359959930223283635386318118625342420446820622665159625594411032687454286832927527608972705456144488605158165432958893285513749861660836248604253862107859523694831999663300188418873106030645775426852725635318675276327395068805488110485404590598231211184278515918884745280075092109767483068613907451258581725503900826750587718993867281726985545166221711087855584999305368425457804006653877408097079502124726236654173495346450566892973316992727882089526943305001359154407304988681183057063423631166135114785877479477583255523428505990901416034965738059805453148665129117581270713614903182273551711688306707712025843773882146835400958032936976865792840330882148000485277221061683383505885541951349127902502988821879428229143746067305568444286017970096797179800724192909634636596508349426024231157870151669477751465945511589831866954748945773803772720469054286255839790801807247721642695443231461563143316322557091372165919906317032926651134964191536878705857298257652500877383569762045474034039292272699081527204193293599176800845794851195871875644541082445761103900251280486164783949765640969037008790513340521566530151705560116140240162044547330596991014393611838267295706558090870263779178544661749034559247668804282143305812648324790393535629029602788003786861598312400885532632914278002359226495550371280851549170226428352827685008716930987259294320426676640208718486062271879755762817555115896900920220003327526295719627080041178231907016896708191195896080214015512533984942003024221007068544183734423539229573174657143428861237252752480371592630296677162901425293243981711954685660171705787507616821757491693074137954890302640275243879588970191015730214029569966657607358376311310823288021138455969846443385280556984079413781735168053762510483837879566670605019970419357950518038748070189827941956274572175662794191912296083147777717153577959106167484642173909208259167613335229899954252740645496181973229431718209398813952672928191054883833951939813371775196655950979044587377245395945499303744237401913333736213519578362107042547058939634235785001706342643043024104700155739156548488274705642261296877131530553262934811093076833204889805531271483538702438055005580875775816213990537668926410912304568270257971745703061964867995217584956356400185891220401972147567177650465202701117115449088962002635979195007969389973003937344539697397210799066456527977157729206490814824398185209417678818276856466101323714321614477949713638803076608626127763025777883250883407156116384618451184242040867160464770138089746177344402213377388113244728458639119473693865808929213208478099509066621359720276082241940122036838611339917211853747327049758736157533517848793413312052457195856766897321795141219547090562402691345528958558933280711959806037498259500601503293268049035588588400270227224126822874333917440978760823763014992752344023037295661730878340128925958839671425052505937408814095937396796675446163773075354864765034242370927383222374439276071894703164662001617606225569647317455578780159748676449200053048419517124711218870113227150931410148799663080451798949322450897783058532734614389696244301528175172230366039553010236020936063314542210747924959498245447685846769024545130023387637418007782798901331663903699362930655876887024584804957972825322424369922484541610597474979708955333174092256483537679708383504428995055433276000997872908051957358409589731848330586040062519903147173418047916942648768827345576676889252999494837105705412758169059338763287583780969022283573479826465461728481923476384784006890668264368439225165378694872760514871963794915947105066571553985786597081456462065696780480050689731241451649879001720477870646256209822173399374539422328227727267771099518194299923708101335399092605115770512066406340251750939601405737357485586962306844157036234631680145888714862867517828775688600984293589731201311703822560320314735811256621404277009147791677385226742141081748564063823400786109283727238840096024879325500786054931848845171845433509932500174014430493425885908622271378926101992624092908803706543096719114199089205080359010295844572984866466492931908050015072150239720840938924602006382777594968462146123231032979016113355082522756519822080090268098820860898845809880846196714606947701639176479068026523200407106501288903047997241913000542914586666367206164023558343370204940380765423883189334809750632771343168896835576468889073013426521500123139751282817179756802899121265799243413272350920924883516947283443899218777437206120053001587295735435566237890798167753587485623665536270572826167425200087116306401744041426024774870070636100266527537129806750382684698923039462413072725554095778000761005956678112654818867327173228642802829561961442857112991258464218248208665351991222575911050227102846858041900519954061106074599094863069550616000369747138475800985191439280362578633384914833382317486120800253522614236932722819895338675991069087532923889294908101307474094658972062580587805764070472406271887033161844488868674914502788720367886968812642267572975676536206852591595201059362457486548046838888907542364148202170587444214982295427277476781952889442679117404998353631157389383840972793539516642929557269795147607354831373551202319906768830220282242370175132116476468694090907303495056805245475598968343784210234027997504100218537248308395958822710874038403639747861837464327904442269065081088799322832542882807125723348985030128669004334850141289161391168431141548374215199265437679773178186631277739181560560457260961044970128234208343352247293124334653434186990670960838905854496125091141707439003835044120923906441106544513391861522472185437420946142441452425027883605478908561239528875111578666098895895820671205179926495922103871833396235958232642773443483544863639510807375912709564629149982938020606067416757812784543688193458145212337021287122565296874625708929587258951431436123314126677820384686956343154099437931204958174675529183369511240535359280704387768390502652649957949204136231575609097703579381361627367973576213787912965799209060834786002888255336676787751957668368450590945092709909720615726637066478261803670772448401188921654506775634517107716605479358407849804332672747358930939252495207945675026771073409117869719833721059496150962955982949224199573236468219978789166259387414593429813174463994564064500431363345976441348942878099266724231526556446793981973057261951955195375767165401564326117848410970081935351231762062258645701134581162793413865662771461545652468961081368648258592625576119839049168462492409957451308689091609712570977570908385660996604428771775001565187171286169433028923860678222309221195895382098637883915938639488474417989424598741074817163328689453316760222624157110344773729321483710941794774556510222249382855684970768289496958683890782632901574602436003822921222579013230602745491677535716761174536503905649613922029814252823698248342861431684084525333132103960925484977115327774273592277174410719915449163724451193551495038399737939099827782327779565262691577476228450425765053380426104108357957590864350456468819680071390030300515960898775190741318881496922944089028503000153498195337364090151921932858541669050681719777562058813355381498059884776765925335893490846656202854273177805463956144509126590978829361197738335071797124126442715424778750504843008794669969697184529067573857566360088982372423208747967803509185745645543771861701729573033812024065233223228696004369652922916680616012262691916233574455033410257003712038496890714733065947222318415401334726738606588571179146303234324361215948392425628264208618423311653030027685362731151036005068480363452316001471047114648701813647745466313347965874551468857503366302545899950025375998662226615538481636179900529110281677159670957141991191684544067555319479633983464781834585628956926604964093392647317594883687051504653751708787618748965591202048618366055517892306394563169361618078049646184285520731361366612807439290841652181289710428607252434153417626053400844515296475425537204432026998508530170700605810968879098622087834401027977296305162169119419771108724661437313690541974851113141244166538540936499787411811764032689713047951435772364850078299164842524395751402020806310600714303136546134776619060842355118481434963374948294951511004377587261396889422244685827349173132920550098433641844020510823901657716501051423985919784571273012494840982338990060416502768804290807962597419487742864041744588155492397099528772196906547553993985356788454399194497160393469705922266291206918033728123931406522671630320087086319420216164903423123581145976432385961263473459319098085182224294980683763845175690589028806886406790675890036171468754524494609060789544965854310402139758279347359945336936710509035504106454766071904583262958190002255197182726761520205826191139953606557421201995996633299436647222521629405168746112754136756473270090424722976018814218360030386748408429197897080097822459553015805914410238141895155506646482809586270331530369790463423592849393741384914786402101424903359610952621205564487753901502078984095192283358208182536216256809803368309995426949464070872588906885465248305621996261196337748610316157389340096014930691277517550153718531381419754876816789872691857938574721730796065177662758310123410840652558565691256980767611473845352003617180082833973642932664128580691911328836588074865224002795368738100625491833743235855673438449812596991974281487681068105641278865509594355791570890457804883986499353464379413777732141465732432839354102047028620518818100836443397508934469530206645483920545713451108050403099900560697438157359638532538837731775891119466388196782979762917217664817302774305390874598518018550227774361256766829133828178815076818570584822592819276582719033041878349724784260982331543080546223319155781958382488531865864020863947339616733058117894168330290066928489312496635834246219000423322716974820141831369446907137884465202747493189555610069136043848486187915977093324701315806137936594423477550188722547226964127174761728829230226264288768303868951169587162204963086980788883521387635483162121947761045633786215144240751659110309193778816616197941104921218580167286345069248664331113428386797447862205899649237759243034731813771840899958066694955849346047912272860019737620461870480849700638595528671963448296853846967089111929117463389419172321015983179065612357598261980281976318006556146395936139885116763284475427217469785194404125299373391902111766849766210390206694462583016510311178466242038976602126362933419590513399493087745504827121210717281156192833164793715153661203813520919436522332719709470771915212014687382419145929802595215864747943819579428330112503178635920100496227372104023334446663322430131357334564093669901933471779638841829311780373569783513709808136150451288682446985224098411579170583300575626210055793181324541365037014355283911278200304561280479707711544538179797868894118922748785657146587959588090356997855109561895727827943200620424794616633818109501918843520408728740290872326631267167379303086208766359032412688008560335437922756997932000010952227926743033023415222130436184751132749882725805492766924076262296670525361330092361433704817585764160130875271044144751239879115734040294908862745868833706906258732069709360718961514911870616669230926688497659278378473114565654396429416590756752023196611956424531307043560975189702354787915098716646581815511906623362154477041486176263283868500873836198854534631777644319800118481435961078195344744811111609933178056818848407590434958399007856616793345101485105698527970107802358816703938637199111453476567649570272736988992255628799545921146609041446466042619149337071053226237331633128531774246596768199470781566043476913997050495452943449864888464033524109493320022573333571907290668390649668227418622968114109415034233520541991175888507199568282655223952443119382076790930171928533039372849436201309309649490034567933525854219307543500418868379274830620004088738381436022303129087136266129959114810278100116692144657523191589199941155027600571473251019257177505813642033733470012262702470958608750513893787236361506741575055089168458066304995671942456992453444589742650987860521561793749513942281465658179746220714725042064569327713100385584800995575170229985199995188323509469673187815274281414500950540744975012972786124409679498304540194512309103724019065024232250794866202405152270837646062974793642481653435160834535020131530186917094074221380934543009981995772433081351427003645886121849233904520725760737173455356363224499535622631641643338111874212189529156057214091530635909088719342272831020806529438230632781125978970287864803157138749286288307701036638259099325231104805623726837333008558256131628659823789271917334528188134488235882609780589250086977156003306727438836027519904031158350221338919131229628005782458029756582576802773903900274470837147663036659068719946766027494580303919197109975904275687416594804248581447307748784485208419406777477155594539273850591949158063235392029171888954633356363623260793068532473379197063880744801668769071861173062217817548058291090675853673079988359088345830972707645383562471575188468613639598214924800973808153312410641219779412824620077890553875316254501872517137832972024656981747992162618510935038873611583688327177984999231751766640733750177535350977033907527442326976856191980904773735959266137544851633637097043212332698406460029276652904466372118328605754463651688447344496232844906517251998655369404726086008106087922620156789625647122611964506175210278415536292609012967724605705890476678288613251732186555921147961593559203848234468950196369267473128016394669608875230320267416950332389321135570458915319177527800494132191467878894721442291838782731523039451200617224798893002018004847722747913014645760993557054190083935529921875860102489763891724635378321006465721988750790580300998016338146253530203758157438994586958854015806683005302730073175387518782253579903727673113691483068581540863146824727266186452546293782348784650816986818769887780422279364256238532652078076099047454412216601150368130052864077047966539659018446063491106451550691892968460850264220435070841895128882873869337969027501543803871168933441977832126539713093781820480133007038824663508087294983235847912890413633358576901125581409204184019483586392938302822472793249053069882559650119785582865666780594470281217852823753261997531534634005716585273677495602646281580332115172426529899612605680865717371737057780913194934421680537530267301156109779754584909120011341517398977518865599709589193282156000940603313906475599091992557119303028214451660608190556797284167248428858921457548405801437785024226904575026668015208774675538858612338973881341844543247991040808560403628468971727572757699000515941838444916998703889128099448807801471768201153019505259193457766267062112492808418578510868260662063135732693806185297288851535461798810430302339683373915848264453174094023286674790063738686432056490618942689493052907901289237407553186539133660608759360511631353474184994832340108103827899056269451627970772139862929340995008572851474158539846952687497946818741428712493738044764067790770067386838977172209754447739889825091275977645724241571513457303974391312030992920912093569055111958849565477523828744874958966546366134468061274218655824995156620758138531999825229965484204359590266708264411149405812374073004785234693811958380942273595078500065588782892796892051429484045548084718687476593166836770044025360095995329222240181214442841279082981807947473206452154769693499734146424644993650571976174430070295138652357864197451799511511376167099194180081438852026826186169672285059616008551622845468237794013511144675553321999436896757239665100777520450497577072605804477987609270029830129307101499399033194107535825940332821412721482619531293077397178022078419607909018623878600943159890803574323010513024653812904767199104726375357135619868656835366540796969379713793245983914764222957888860317321631329947303841503984373296905819607490366537840195524487113151541400246931458203904631406320804650010916990926458724239892749548206683963661271533074689969059788198860770301910493362494392757052797257529812883811090791448651822801224186183069559536405852172661765739893237711693972623780452028984781213568920522085669329566353210008576633074403001702292771839695171756069059496040496482688951360194539760481975586797689119074044327797929753076258289799719672210519858091392597448184617914717710549022271006483703299154674693122836872482688940822009620498608451431226951495670936294685095649892268383452333474705751201441543343987193109760723669011788794299605561427321745927150912861999877993665960479918995117502368462169587708327729816297114680002937062163578466609618795705545624238980013050162033653192116466518984083638720813432836598486252764664419192314956341206279017161050861411679063241531217132580619701340723161351022332482774159709997268804612904697297486894838356867616823116020633196953894104048345517648334469559284968347454613640626112839246380046688890379154891761119080336929424934010458327972440577215105305708142535763577156553598676501403747251063091755558830260904089470631195400690451587652085023504838315307589205876654181093166001641380300843043548374226832477145610064671150631059151377009856795585394061305169664756062600475053066166654303870509138868435936519262758731320587353969374220216612769595511888588373601493605691627208551871548880144203152656839336485278584325756668296776295626381655582531636630218797554637803726652825848785117054824639920728477041104115003123584945882913187016524889408721915189784523316058815965072639755639947664254797052966120673278146891823197588818809219378988855986474520045366620381862135136844599052574513997065952699143946183571301358048773721794662545827662016965012875735239138312195129675839018969941844444449756129953939555362761011257972985787742422204817966759006002518842833200362241944888529509758974609518971189046331087620997748469855224450558294138245876129998149934819944746037453144513587894202648489321721377984744886508976780781959569689361812444979009181521060021642968650251473961923907869201138542703232950916179790521136995614756101416015489974647563450725370277515867234842271525343469828325372753621979253419283759301386026640119657224130377344465765901677811665879068917963954363488679090407267008484009365051992302862642070057316833957824847357025169378370092524633771350809331724824765836694744923653922818062407448903879399756787522028923278850151605724648745032666490790548015817459944148588887268604357783220663723155045978034322958249786612589210496990264458863454040650562184123375242096194332615284710912134364205986366592448260986330380366040614257486579165933595500223259804042710570263233670661090788566674878928384708722876388339378266040118630786115390568188040593142889648734524310879871005666626552867592597533115907920981544018217438957507059447452743011846249577747173427051347251944042957160344196067021474811348763152734366408268146093721836951529325744565387061549905226062603949185893112101850249227425417513810440218107762873519354309235325145525979381274422942822192236593099098336571390719448465775125006727370938537173572113681427248847631340189925169803976627414602191510834231309679091861690441961913409870780879026723070289520937392883824731597330483753340773657200412725790563461826791168881858574107433286173784326317399340905795189461479745526667147847775040986188796833871611515203781970007581075423098959660785031030685385210212072144906339404514259233790334605620664202453879535815723253162329352943563604547012623262330869365767494987307432229097012749359779818095719514983634826878974501422333714748273613810641271827273257789474706365622445694868102888519233274200919703782872596239513340248676361031779209807070153713377699734902916256018042516228317660505745233255615585002278489376831984604599752365896284352592384525137362231292591210987624916792951214320252653958922621914112604268299396511490212468694285723279015307713759847026187815642626885190747314155894031582316999221050847911521335026685193199755795336081072458356726196275700112124651646311657659908907685311215935597712585592435302586945600039203119922122591427869733770726785608900214601736661614189523895669471676539124634220143502972351315542116941721219568798157912693842916972107230094619094353049212802979816029678124843601672127248800767228629684919913299487829463979452722578324263029792190037263194041028837753332595044160377003554974742102216556347532473257881160225852397621342369488030452622136163124850999654395892831403556183197978612867712668109533431773064688200898089932554377217433329399106591836347844685152659886246922564103623905586917509241327712533688089428448930233319945637657181937013746988927487552468150831335665330025025986959534456180748999325248341320800344096268143855985648261263423617107619055657468851222279191672658817753387507425101114239675547407054246953197059534356749315609961266472412861555769929710651160658709280462256298692506361867235799543250924455561136385044454440946307747098437289037655525964038994497304832929015401552965545366280230319613663744506672150850026530522476728078542714177717195518208876992626671852839848866238635274825761484755936477690870631489211077611150256575718089625838333230780698709765429399362205194333546313051285904545110237041198844160970052792500450050918309446076772320126492541744785027392380867999403286015522456943381437919250120081669520348276708958083450413898397857407863408219466798843572015002143347949792759103528737549808688919578117191213342918712944019313904405871806915386871676301604034931420539703687887938853023080745724403763341016090662238826644341114785288538644070391912186137858133408668350018945704303356838762674665528847379282155351452365009926573354127181161058728893313952554644830213912247163729893868098889888269650572845639225065464462656340492528364556361272062454791922845310293311166869914480076258003151142617287891404873767837457742948247859529919372783643100991208596595813975575739241767569975572404618839402750051193197669845819554233258135504818567088183200302102510483442464767267122200650623189830372883212828401814441910830031242942619998022972631873941451943482473658659930392317439309866330905268182332266715310686886175304188084194628267609105629381439102757450905038259046241753387632563102850461612881722699528096687228324494181827010546769139534550771364536006618563659540908216911363727513204761237600972157794824223213945734342829269539850042408370923218788271603791168169517391303838019751270825646323104212876507659245658349832727001438423565024541644007766054678871825609921596388751284528890452084249324098815985965955222752352728818668035970946629709514514453454446970725047974868720125811239463209719065589473330892264537870372110498915158974945027201374528023515238868581795996855966404644396425507514734782672699783243355774271840459800577426753658320552144975136114436176393799413627837645335364200890245557519934878968521755424621921996065274819842369381730348973878833863357605340605006856762547872846652319572523702809497087093323344463213274594736133294266408124765848247884091933460494819335585485766459404662487278325360006208867113105419604067442531587391384015379581611331565161407749177220504455659839624327403148994881757559555829314308091255332446720051772893970271209523660033605156465867313634296962835313003923495050642672385097039525374173313822388312422662517561260102773478551966896698249957677101183758362062115408994007849568095302160976554781783991969164806766236969415905543746263404109224540151924564253012844074298173198734976245353860284291018102674407381763336490775294359910926943227939390636383451853887139220805689553804793566684038296287459873823764754616906216036832050188115776840556408267318282225223352211639441171658090606761632461533685158796993115456443282899023882752915750623847882805965330093748700556031899766467650948542051604215316482394183184679905009904582289245195442100268065008499840984338126410979868410200499661371630179604214135308204969869388791656284356036665370822839996200866719541287375031168677076071759506462973401430434153988995480864812925656398695306885815867100910633408292991263053653923538809078842084498225399680647243024225847408190061266132834688225142652093907213431392723900377592097151363448072571355916455187206125261864762972067551349722838806509879726649436492797885280084224186519845035673296139836771545121245269268594166167168603618304245548082165456861519346273668779806141353226411027646337980180926874441233573733397057521079991455543559274922109314190771833776509643436727699668097261306106508268017905637013105344558398542616559481354002768002523456961530528484968021495062394534241706759099451729023168072253755122310943257932921921033117107043778858097231122639182075423480174989002948749239131458472332130413779273536404914114805634245379250281853616740825414390841088279512862183535608056907178521536115470562232795669751586038816374225219106142110626701935256228355620059540846670370639717248704232147507013154732928855003921811948488181006536365707372898279147586462738679627171636419306469526559921181365691578962183450523227726402107727297495689760270488939243030669400611994607710166502779392074194664601837818748370404012981978056843320071811901845337069736788202435622277688590988008440080696007125025058642877982306681596701169966594476374238239698670685953743250614353542507219457419654501890127051900749618011115212782643242739318133589925773854626535875873843887793079898595089386021503855563251929963570761518924922773345824148223000683631434692927409121034783099480557374034656016990923061396210971608745020195191669141092805248264990049783651102176964293542596327167233138286516051593722294853426167861990741620955877078728432814587250490909113633757580859149555297232608627592279506381917349611336005254474761320150744663144010491804196448399776509058610968763127356052766765079806072024698140119197479574881214718677809142629390113070563786990163082632460049871510410925943703913775714095611115036910084094025227387221869471021319672652716633198321993502234816883266161314065646584859762362590736390883630599081882710157441498588207824410749102529551314023923875040637008279735011080392435223463614279195727597143491127858656928868637737590618667569388720981020894325992012436203535038367696449027909767791665133788591686247457382386945485276370866041732937842711769113917981576169480650516451027275088968437353756237257057373138099462994951066178909203580763644793780474347856841884376295686901886640306387585725019698768867042170926198622587765361694361464372430488498297184695621693905010719045236927256063036457055891293220231458189107945265990358622696612919179148696111117101700450570400372997722352395811113477746813176618920367501728708472208007860552506039809292095170917381793294587552412572140073329216045064449255486301207989068287348715644421983713412614245202457562213233607865724857574329103250070109847658163456876889832516250283971434068743256573315809685021332948928286417045455769902941369488786274216611181482069694665689756579348231398513919915640525964348027014961583053103389946409302832808823129509263412738623872505101708286602649570446334188385933126744726556759775172052485824365936920843391764540747066855261828303067306244404955818507687051094426462703141931294240936594727669174273936625867109389246727690777444216889324638682626176615855224416461475720833034803559239441273579474413801112844429551612462600864441975229578481082019441337810806459245384711774686208468802664360577101525967801008959816848013521599854601355895368630128932612017410017767633078514598387973526390532849271562774261712532049262569118260566766977724263735192188676462377845223704755424479595249299788377662738768398254912752513294052541582520687586084400483710346153718616054821648916378119491315077021789818887713047346533232473670071706082169302178087185817930269581879674890476481705745481879439299694885023921794115786695202280790017462175407945620114251440556682098467403128899556548646435458707107497027788937129526700800880924039503657475038233810974124155142793952166967066618343679169680977027985786348423393360467124434700091756430634136456010562889145183959476541082995952416197397381101670128704689446068043590760067186611215923473721382601638941559673970770878670772659871705313766879825197237126406258655558154582234513176125873868502347248387068354002291965493926427539762614198951914217963737597944206578158859731087450004798548773968944384096654719272094050244474799235972560625149758661902152211278300608273168607188450349118446512237307183304969531477590404461393376876748783346015596846164665733564719257247849012492028332074260673724946540488335732793669745458281905261485579436611800739282930931568290051660082226488111193823353524974924757529648975245906348305708852012825589478883269704121387052442835442986639850250428309058477934918336226590461893526056208198517990470434573256010045685273811058936911795595974635640237915022450570114302656265162077891892309271176167549338594256294071391385471267070873141495317388997949229742633203453549188210757012419446840242364310566413090877048649112188269517706139411316170283056165885660053036459933540391613652959404053553597432085339386149088424938523566074771751845501928457121954214951608189549336511630557670319596205033237567755740826560188476187078299725182921957053288946469221917033748702741594093033432019589356031972861321273414284884718684375570466465584048273532569050952131180032145011343120610226648925851825987953067553232925588824642603876756085551079985115240191280782330185494688378048918029812701122079140265807983507006990173248844520892054358841003652208533652726364968831234240647398039727412421570004150653215923463927877707033027199513181515303199909521373537400078212744360706153640057726663297347299794858228736912622174475483901443300579009302028484027783078441316181561809855439454222157245285704246843766899286753406791834695293162396630268205423954954282788489379604459237904865090852519947970805519893053227378502360363431803025750846708444276105952143477705735235396876234393681601921894755662564789081566960512002770250987559136434054710494378587724967094335706928901680850022901991571525900615510235174294486549389699552325435665046237325168372434734299610384647346097159418317164955669815419017636484762395833961404299813069564418996250922087774657269091113105851507656284476837164429475085362475787170863609838006707198862152403462738228479793941548759805687449885354854069731603725710188816927731738998824483897793254019589199591223920527836553045607266782824818092813395348267671832434405400821801974615205794205813350068090995951855225843940870777734042248931175802113982376605867969294087894416085639953056740009545076681341101379444719375022095822706720894123629418186170871983587686722981810902662472644022527588420961494843964592869867789669351469434085488181776069061463257539891106408759731802876317658766383255416076489984517093485662748053927465072895838417860920612834533624583826674352007180791141679739414670643091275046799338424671474406060528345058256777568630689044327120170513730649324202326429279053803007501444639986582734733172033215529665557893101407572118563512640829116423684891487075144968414817850586844679737044636469876854225558371133991455009779609552850463326969318406683271931712263040731343866217693530390526745862637765116055788767755196910720655622734833333995128813187791169344275842439823268446891096836348597288451842322589869045366524546971717349789650753074266612358117580305037329607176976085799903565217916723183251469375833287291865674895762513048161293834178142510932006601077325710680936344414623400175632999984678448291786268727882449224770691405431804132586133381526847313963231746376311443487778146081718986150207199292809466562272761269493864521393371155762819171086571300611820714897574381992169253022367998446446856568790444221736785183399272529346577942598603967557530713619630997846657043144769296165206076034242430562962907870596503041201776868975581338324691993727671217437716176739768575236779550873163343201390831955813562950865288147762339933086966119887305263534063214907458565686985739838654068899346955144258238607744052908649970257151767197543125760201724237970905662100283473651118489634660762164646116120160967523550383115841648105872855620581675177326156515205039413399065942271254929792149145410973226927016364677416720416413577855476439947712046612565232958993602918545114781222050066396255064838687815664706962837115682101797935440679766913349354195688135725607523403093090978881085711203198999397534988500597430082509722330657404702564237857549502441172915783449313057756901146357529631032031834938325109845423905835053342567033318803326879052096050177883568886507346425477376367783632558106516677522326873564118673929285608004426747582208703959049939424103953819182222972406770166603037906881028631359885394994416966234872084867449656782888960392893994993762468691523856304899188049142888424600675535511515085208747049236825122107684613338092005952243991039622263323784759462021124124803973833693160571123925830555072675899294977767895335067795870708587425463489188344771539783063345791740222299964384655822478124295736226459504593683842306756744968685431947617057677930201317016520226530780234054824177034466772077488316606527166000812745495008088222355194229425328073398624248011143510386603075599066526802478446643288477498628269827981885593362872002726462435427986429428660237192797631988251367153815525454377771793824046377329382425765530235126849983521480009299034195490082254750566820487295065743360471300739856531377984633958869482039632572410295091099005447617295608301929096464356343022611983172787785321115964183796200678419759918167317071754149800121413435756674878759158463834366131232004019656102048634217955390680141594814305197505290462478079776781722607858806043586990995473504548338034201579448658940208870266254290309431337000451019405338527863288605472663523623557398312492279287703676375652448767019236349304457767784026489090111981510119239649859533115746726282418929433745395682387501042563291825897446928830500994228880425317034676565128945303000063145964070553967474129954935264067999242563824108524340801581289799408717800544102768610649443976788723438435811488939986649124570940203550007463126843835050767915022413449671699024074391809908798243928868401736165863663585157066906088290000098725906909031643517064664670175104713284442984512360565377094744018633836909106742690848122514359825755067266973800258754071966837589516417315831303909605465782570327309943613860353467617748015763843515453783922164972634689986967179736909182302461482172737432689259258166674131295487840850262933709471201371102678732687953730522926864283611897950502076194219218674458547142918649558825637181969343576503081423232880298281692853235298692851074950449960207602175464860431236099466701159293581717369343228027401344728698698734899202340617682225287660146679090336352899563413483493871427118534460340874524533231363355309638892607895922060195481575398905713729991245751406088649476271337350491893301292524412234120431282721930636781468655239164684323397351466490651067195830223957862557584516247333068857803732087409358180400474976887318933612293537041421960323693309643447279138228694980417774088980775873680222264108455236027248566862655037526711054714282562530499156479825833094261997221048471401477763754554687547334716290216002629266371452534038414583269859048391379370598905036125507807062908824785442051261755244077257879360622084258136741016767966230299030794688137134378499169398785203852977444230599307849668523134626049830675296018814182784628621859221986710105171626517944894083169512277128543118898696772312400588842097437493436390665888359874091326997159936734090640249353995735652223362883361171426806474855728071371124214628501769115397482020861447904954835672569223129160271886346617410273654442161562602454522974823154862140875255891515962847522154529636119161583036181890017022723010307574447065458547088376242592770388250052759748940256968146199217151334203691771675628273652333451389889251998384724845812541615231288656322146839234063216632769125455634376369340764628922717222970835130422084771195384976847085953977136474456275881444936842731611018281259536912095910726488098698547992850664913296157001042202971723671389604159905596122867404355066293268910086361962417422188072132651371024890242364658362105333596249090510424322922127126642646604079964398338814204964055640427935203024473625259376589997425358550584632124644352324746427662428165509113677212521468569181943671201585352111236677316275646166456905428917185092856846909004002045904840435742645628598853094781771153724933730106534899256012447628697347044954961467764706233798338797210533337618610590405160263254334570276876402785938145381925050741838415352121068741680392895087700744418909187233438498463385869694489100375689013774006367567802978279612411283287363002630075816059623030648049170270938177423682377090181238141539822549970599978649399610010772473504203561314157183788014413810013002638674714883113384564370840242170229119206099366288651466818404223562919955849994314240233065643604137843155364573738854841056296539458132963851286218206351300899970083639578845659724354043123757755529510371191619633391064777118880921879278373623787424907180639172754937978985777208585313752484804355441542604871243853187779341841591845280794155796456045716430251985075673594107480000803267700376277293997268411066728648758923648294890060615801718957653982691988304614977194303750194223171421463892654755316544504956636939656585699569352035355519977639725141652131249368178430252035296033022456978849176916326584844063553710147414527756173882759755988576264978223754248436272452493473089907342139625522069437130590708235416898120571010488806652855368760348632600310478697249397291484128363372975213430006752842248712661725915266507584352955476693434757662878802097084948248504260999153877843345432911825023587108679050338199116807289891434217518274449836028464470991268056513460900403502642220083533285170849709310039391129218301329544711531875393955081494524767967962270861712375308730684466558769972869441247733797849833047804595462115905642176201291870638442192544836523963944585730940757662632134494393188574919636836871008416803063423487266241879221347987177989185482676034187737753476276149343919896953404326869776142867281118360142646913495379344284949635472887107961549977330025202652166961414467215476041589386543381092994331219522231766143220383789836427553854255378953142812398550580494103477287505564000279876919421265184540233751259176634067564422429967679425215705813709188696847984394327096435740863359185198066387922958545755223120370306064177949535437550773106891947076793599449741516064666878360441230867905327320490903080126811477289121201190305164493273151036299452984865771819353580450866145327367075113710245431178963602577398347517971289501686069736238518751892316167771069377177788024419429571433820150052122452218218711765954894468318165492836185021931412313017938138798552843414530156381717582784327356213759417031292279287756217204864174708640528761582383222795251258193504673939725815484941949129756195300791833593759579315921861482040518671806611785183717176604341218976092659051293571670704298555156798823104779527454375575847870630294148855512605478657916479644676728336292918852394591643555423499279023472559973115575322641568076670666734232610199588263063471785046089365967460524414690524735969395791517596730294413343917825454322331447658565254008635013265001895485267059818178718675838569324144792518506595141082778514468391699139091712935199820486752761981970845578209682136464785561869062348597856616328774518458513536805496967495153715321444115904021126228468913499109986049917783408363546444433181475031942892716551202889307201449590574836865499047985828475712873406042272068054443772491757826677153042673639104002053408789457124311588826958692960462999036291424187859002267704262912954892830637293001889284756956099809606378195067901532271631775084899055949155517957641800430439380363130686632230474636701394810463073834958099270919692535156048360452208720441432180521037286328817990581780116849174164293395328382008902983845301017943122857688618992744648779839005082031814291943990852968020913884704649010862486753195166304636067045414885147845969521382551717040418985835082250806634562361650849122543909893247768641850484416221464083138395422740682140990215533568816778895942887946713943767958625957006017942554248855017516959171071475011659502605077731654575866518041032542150480575756850405715877794446285641248507892888510869593114838824297020355519226014608413689679793131407762308545283117940388452251155211563897469399907556035735183579348469768496916211601077899490593237038136656818204648019166441041363199839420252054233548212340171792900199998892793558143010290090452270800689988456647231393107914683381158023048415157695424818574672924478714082441052921700345675556048104824445375747327607119551926564282262303412580880301009022678834049460046283172124996786237836849995305484444201052870033834727460626026351413509819501823616441950198121510675036723786066795443145787294758575489452437480000053402516418086511665147743254771494604070367340936713436142037820008518418395477893654013914417923153118237689306687007675288171200007274918288096393755922521124276262147373983850103023338207552818098460446280817649530131321596217132920375304212724113361530689408027412949047251231740551478252450929888412760057512047367921559336338872416315938178179862115953635058613156347649345506598456730626670347339717759878143382020906691365887679228586282744675265707521990074184925604513148674241392491452048143323607504307539520836643839052247561020282847257871564699102357205454737557667962949468129941512088819119161149968608820469641671012503753177324470774999473782940010560926255822408373400984093636430985111674085226333719476645393804212533707074895508029676308196438721659799430296066496814574606139651315828938952257975316728178124288524627203972694353435897518459294622313019388878902719242186136645331105923516664497825620590963232691963006212061449569611473012885367130503695859083312594031252211673836843107358720280895582414389180334922658891866662415087432834098589021127142694969981683097988837842538321527976094525225963579612983523907012063075911820175139391644888803618241554228154569456888082268505568940923788929686860378618790319220319872835289045567357496010859183890849205474051775524666515710314150878969660763903141473161189627631437674920361339490999110443619947402802904111676220986733979289044046462711268941607709402582955581832689824714637002626609525056649038982504900196964701250519485681438844049849422613853732990045354317273315717336509075714185311573932179861836303568792269885450143717884957822737512700823950682392481003064307990580011724124326072378739112312270794545163077878941578466670810250762252527182192094630948220709016404700716744857444979853164690478998972442372250374880377737515835167455000428333990869470968726289649487904495998705966642101105309045524926774562644093901819861573889696568993376032729947263758601065286728288607487301505417447998944889937755989882706037480551534263953794883599968943995848886495318693347459940726545755852694472118583941665195110620823624658665712718771295640964906457991094589867149655460423323018582615409110715466371985642462259357676562206404348332865721257126247442485683959875138585307341998039648958133513224816466489686262211852575551451035421439535242636752778029143222118316439562682765833268140411001992662114428977224702226015470066745669327779391247155562450896032638106193396887877521233924761086541802965974003516261178545768592571306754195269277309533978636887806181828431974341459831043766834585229183514853421844816612591319052161390197405827734168718911053055830765962314918618118672775345310793747139778659167216355443580466599329420047037219244497998921673271473414967617095382338870530879094441503581975344537198873052854684105917206961067147550059192432323235293321743871291417610151685302143526613212500914440449182468138404749884987265250604441052459609722970824693861399751521625497548989221511445566948123985507716946818275689566400242073226790935276944647785436712776103014350793713362371441688839584750692684501054674287325481604229745341612395447167095437071930499011740993672824435274816729189561294177423784327105392359568162880532218320945731246728010329269144358642811044767293326503007603976511585303335598368822489948098353570936465726358419110079527864786167764062749737453242077036335374592340769691690623813253743154199747419755420891723862314618701455228171451932842665569078665030963044652683706327842713223095754095207461390727159903737652783331970092771188978570273439758628713018383449014560127630881015243698330302633347873899563202459169371258686620552263142558949043094124249395077511078245435888578604948845889456226934547909512177233383236007564725635467335231763266859189016138104654693700828757539319987593572798717247849809331857571360997741963508670316129467473647515478737925912286206254098755802966843414756836964717437339780703927621788237346556890184197835507860893011174649610567928861117544354000740030844764000897226580348520292272212363318471388754951301125752964186802867380373578100336896956011100699793985287445482851668201408875904677371548238964960906736719214614298808732764302985893847531228616019867395589838846775744723334721887064340652696129486488437401194218801344253810834123634681575265295254323717974454616698729566240591970660015655764939723609676245461513738690172798238755415935914264360097322945829283664135109754008713139596073341024742710671327432002514713455087963730440651848100996722423783694757653075013344504229715799504017282748394308079324400194028095601402314525968380178806950210741054559159084042692999411188536324844663429400857279038970014252084434450617437829844704684768857182640265456291174288725617164391383895658753015592760043392167805483438609818302128777587694668887965882110081874149177735836055092483123504888998820935485363310774824812626823669712094571815141305927784935668315454503386894205408072839509597229948447727650780026000941329430115287701074563379189173785943759954450187065158601176176707819018927352683488861336779496174198477417127516140961701311855059798642541184251465574356150437282731684389015529359966088771914100106049842029994060413366313680779876225087242660945919909348513074613006085326184464726729371060953639261164246159072404575294737610665794384533874868008228453363634085669352632954036041459934056308613713452353938504476466439625567697582674213269864573325696299415164338974247115887800246139132306702862998023270620225116015669401355995760660700379761480210918328472279703026527922967187711511176567816082887823768664126454539887848511286892320459644674853023294659334241325006559857382960730305350805194266271689285722963995334194881278706268346192381340244456372260714983631573430061444485272210687783682501344881163630141296885717425074899946054644210430160931132841051529676868072623446754777859958213992331864021249262471318209631705993126231934477957982393195377965615140467697146574469966381237998847939653669850133825958443850986031429069987643887572958753072319933673434740899663515788660828409453102598170149746596350744348853618975715909781516980313778639818924009008191373665528063815034898400924622104134097237990063293241580487949769483596237974391558728302117612050877532269126398296090389673860469441812135614609507235524301709599247264536963295213906496409280183146334702286389517287658468873232619872366944265334790633608157518982811104466306418584935832442742959929574676436118652079459785840900955598441742957154187321386328497899643324277072162081485984642963117046788038923029618779440813262519486420117728503905196913237847282325210420237005814680117002554265059010039891948829200959128309399789529584348482398616968229739573420038861739467659516418304694658593186100014620988649920837218699368642124614461319431744022228741524798811626112431417072900699921924296387746191449494297551855461102731962028253523763267261955638905013153507235028831696812124883459205201009175321507832313996223380268863509247816135651582989773518765536656865802133184018895086778437752629759628669184172999309090738062464908398300010926835192396325174696045415372205217837589272381872150272773679082443525914471484743432844129244641560398547569325967198228874667762910864327154288225192895787702566141477007473516419155441424877034428565168783529373781565016504487189375385273826665519961786040525224347889091341591294980265913272816867753213020305862967427567332596079309201580958454176825610111734875268575070798972108683589365141961634061756374381281505395083175849798073409054262175176074951363275017258807113568765604622588671443735977191688788117903843086571838364809198718089230668023545304052094721319598206055321293537082811558322545191038027980866591903231276646679476948439465793471979076913858950206876254243518120916722589371744562212701729738981561244093287834928922867286314124525913008181749546660939069701155928275262045927044480242198729868097547779739031985161235802662445707587480774361399374278132232728054366357833392682117103390708239074979409148057476686534581816040097059025789676151091976097853655182762600639881632265151975506598098725916043679916303966776114600250816615787990969348663831522419109032070472816567115311945226074225982002558085300425615231204580668744888425835374660741259832605418248208887370177161446554035956962041576175516566413907160456275458238107777284424160203531301628586728483583924182295602505987579908921073863422862378029510480265260525244170594914728216721325004375606433369793603632982831585619853112987029264338377305898157486063929613096063375690807655112916532379355204752633129355363615202271323951283144742031003342574197976290430170881133865330616052208937071774677497891098421408374463877740729054147562366105493319944337028740054132597163527281434329134049544719903972965981461437982285261621942467928194551729433073023021040329152711408510126138857914818606979278645128278205141803175306951458414962821445759129631670160340563242979166397805262793351102889485751029730025558478103692896244694684767514668350247986389483450607895704684222744262745578336405491598394282798999002802420535570465216679906485840555865428279445643508999850891860314529251080336116092086617844539070881816807162772790859539916250690476669798938034399470348567211940946327637087396527505997036538872965805337520950084935955000309999165933001000295940004023065084617674637923000608688953455183143327966693757156464356727875634539666190089882591596016797463508535538467850761451818084508323731004665785000391814908883859745170693955519948860188876924023756168884056536164174136601976119792137463242716793079213889924744059823857824286607082687096212183236446416452377992726401721457719150937243516764506298208580681833368211119998156368301004581040241078802186543444298943011847851542418496299368204373389008448587526233401096686840875968476016559360884768904204846784993388821438177455386922289979691854746999912535573235516287376919394565425173663598091170811776145186413383816694114279878496502546943767652338544953268390954695516307975331726703649949609477936364736687512888708772664974554864808102006116504221503699113020681116562898765684691435849763336021237797562003854386012459678991688073697979589907706921335212905303896676763906690195368672786904821995185954705443363581374485884967810110405728595087641458624823245161298067079915869661646772988124601265516850747242970863337523373239655256039296211847385841350209182486091982003322725575565479269312611767449871938962681486169442072332166200920306600337339827556295769668412703770468485436350318099158534456491798896282868637587638828145450873115265818979003540511297694820122307570948243193057394876507006468994311275436634513439092809349708068773159282957285162653130613492791842203121854825303927631509446343822631141720298397472812488050229690008661253222139955355859725098139209388442926780989940486580779219287887513963193249210000922661875725995032978916888869349847820591450947844001173215573652392260429094304983646160719849759170521291369512293116049397644227317183675571000155588193849743433904443856467553093547294523238602173901122572855783683185366713805010498229835857317066931193773925344999716323207310358259874164240754185595030553933813582202034573696404319575518034631600400180828924587375854174640676901549706377777691609553337915555893491147148710254593858151753882259987194703027415976320513244768405814601001846408297351557389296632269325207040200232622898481115368178197600236402100804355070280690116220175331434620609874286161715221851051998156096733302082681824926699712535982016042223760738914782679192594193093908819425787017879903688958069364672857012653503330588691372633570596960323625936461901227024442805400977405863012892313288927921641985058136454474526476844527904866740954390586048101417241645619561571742558603713604665572080795289114353208462362699509030515223610146538812144009375808095625506180451753683679722154937103199306007336359657568076673392778652076574066215465566258629253131027510312544054283740378721053335711336454728140404425031081779570778533015246359593268165033966931138997936129743429191212014015181779026589332211970902412130401177397216396237498957345940714818966291667322106625500229010351713282025137393706697950519873063010872609723009794136080582972436828850745531180424420726185623095278681603875916747075147993672045038952321343446779300173785841074970324342357339266003931709409644271855046432301964429197947644199503608418031809904079412476292688373162820997839703949399771987897361280104245204137553921390638144167092902545111517172698758696646353823308108486853409020474116513634271779011774557711179179914000891292503658862227129884802449497016789764367901565599082035597528186469929820690605114337259797902383929998120490736333593347555720444468133005317146830370389899314687247777672328006937274218392304805159022838739565555361093681112789550881227940216761338146750574476246035559411243011880884347499336453949352278174966453522753846837223776370051152812699547576044308189446170602967062910696693837286094677602651437869688126081162359001178273044925633461698075853633481945196744557321616186706300952280080539221927478199635024426509107151178451516757610155036784710870763422283643552484192801558738283320953691155945327015794785001458050621055686696615184876546138380431633515596760254628564992593603180394118682095256910244015031409133658234885026597689738534820857789776769736705089312186353177622668231801678848008390960046719337682269430029712096600383113576032589922565509656378803215937896096655329924313034884779661089799312104305486693689801764474965648147488438272060723965460438960519735232139109178322484102443301640389487934376635283963879369036043386182805870120680633896893456582359968137541757739208819079870233872847050972891152812716031544250717643238932375716460783076178916629358564173826554705028101969683220734071406805762605239463151399628352582863843083611144472387045895682778945377034554485839505931543258049065794440150837263142744018487124448867253974163302380254911247365860435762124341390453196420609622063474040079274776015729969879207839575043589340032618681049111479781487589586056622277724800287768069169819147581030684741805619957606913962461592318383332226445532332304041325110632665249081682609071876258239206690035719268291860661452529725798230784008156335834685134008307170952191889943995932981202638907767965434021421650401675499160515157713000005710363044194822127118866137231082472511022045651309113686923721490697851342140164333241385330918052359359990330714959522162465643444335650172382907108229519897988580137243539503371399563108452628454734416001171299377096309650424891791249520465258350612880700925484005222253788126051109162340179011629165247202622913106076414554301921176780480102366148218933662816875568047480029049383740363068194441652873096151495263755349299104106108501892285761353514876310392305741571037142651540547197273319240408234875865422289322074098852501690685539084397224517338129787536562215854926952017645890848293112079014630719281184792019690335027043165343662564312761206400849333551257635243364200278090095639086315910693624464046337770233378216368136934161631032679494786940022574331996613755154370691932894242372619783682119767110968019026495758609814068415303727056066151973661731408832748834784857032113974206864811220300442885317010485853191226180023614597079385564648684064767162811842371762774637430919720046084267110330281501446908084147371898532425199449580717406270968153222766086024021211168465684400953151538830472033849528472783576093869222825872326207266756916920715032965481135997140387426338155353528147941036498006866035833390730288754993148002984028967827597109940119112075249989124668005536869853787152646954267985897066867861115971857092320859337365312286826939194641394952247246568933371198848310162620323574667870714826788814508684931996659555811722616508162951330485340852136168447874046784701523750884994155416696921196022868527390747256311443946029696983071621734944579098670647878112633013672981755198826048892257181008191008465935973394066495459663658470527488412612798542526806237052485394433125114724416264192234549832517828313893607584832461637981800329750731230534284164804029390785485866106358506665548121393198040679856695645197170715292692597126070860429127904162632876223144419290706532035931994040666797181166493229884878333346941700813738392347280446781319243966815745837320589402687783793457762356966078547982030480056726971600844220864571589750653249559311856813837098535366944687755601265574513282619401873285192005356591784809709860729813593652744839566619274752972519372769240689079491470080254887956966867836253823458832827737236726781165549664681181078768155852220502229323135364903089095403874132973673366550869602806095314958598678571642768896993116449814450829138207667440490269891950769927046416944025128016945176632218184006609702579109196042071127413340157804752690883488840737350274733490758428289018975556151643612129693667851478535646976384751008266612257604953042438094357059815309258049094442081171301232258136048833323732831307503820567425954511514498701784779827934934436895849607164534332441571216000977245218101491920089922362802624026452430444532795013886581788552420332930513172521499476473478315858894448396422622568137978994328617220646960370809917565921775544051322739670963771474935053527927098855985552889207285749431731654137280865352772483626008291714144728357620205792220411146326878668120316263147432476062568051933770360866927826024525575012093127216758312465207986665936472095697371319032641773043139084117862672800409930851119152321582942209033559650022490877794597327816823831435794077453669324818246475874667656668508416305739111190581566411882166182335211061897017189301077514822593268024699863527311560834573612831615619094476617994286097392128176842518764268066475178052856760033655861805849193608441674266514578433428510814704639012248213829162886523680309831632467423548419907853230519336047254822947618191838909615946763563299214791799382155958757436118852374880678506952230335923145120643343048123368535286839453826260944307480930168423480423779684951420090290540502496050710569616683525646967606160844966544421482073649812724089717895474468070193839209640562523435060504264653776984191225567400867127766372054947979754021706421663486426410924699826377557714676701151880260396296820747332502127767017549074671930853703505459969982495963345146909076056014157037327671695837324616539734140182008263590305329237969233045233404753984994525221491812152916087765800465955227887725643848946815193619336672008970766112351430957194452156253663517667320150942900312014649582703024041470314979018208293717169642998936010485896774969558729186479786833553248991528934636488799057018396840674423948430665860645917042957058046442945589636801207754213205576681909123391801165467072600228530966582201772378578374162029997690265278562174091166172475695757283744710865514400106182318338826834656090307964494236774349205267640402705253847726683367678135890565510075396476605236001141573858249438029826120766626431732391135871282477842366996368261841790495033035989447094487245303483851248517105133177713691668219242663954773053511124860098980555449850244995451984663443024655077842753240912181935488313648867508217522488109450740887944468745894856320070281094106815945935401665852724661393988726164831078152922991641774896529809634593618493702237006883021900065623611015134397439655854952850837278699158590018755346132303934246757863930815496851533800743014982381738249441458487220157741762497395920260050468328019775807171363837569253712559588993339318020058064415222169998751972691535066360518080433344444092800191860420970732589905957637727430979121686606030630987600845789604740793192581580678077124335141392531868859327570515089318159215289281930193980221318314775109293465276693136254385908467922216817211058206170307960843137296749961507346751581151656138817490773874823921144856384633454199035674260641570160815743237727197263080867852393680700518590436384509259897902081393148490497299554883444954937518525015323396427865643693132383412122418189488400615098968524519353916529320674801942466428570624038911345874700724567542039198360839042999297176593060186644516337004164676118610958856848054571727558788024960059937026355137739920921427208600968917246464481094575294928463511304740822980093758293870920790910856013220242548239055232192273741559665286009086942743083528590212237237584548455413408350729463068799520819258889908395283555338676792132877868848629282017970448672903032967164824822101488972530673042452279587754628984284879862250014362931726947530678135226292473342572093490401854850579896468160430863678233937703332954685431135761178519369044151855999702708579568626820091188156154544800586024776706378490502158803466587977805351972169965655758756013940238417685296648208060618546901608118615716778919765805232301580483364886170399549578896469622821209387222606619848778809934619368829475375409494247007687414347065395222069138609218536491556785590050350441063285513510889753047699756183639716689568195242338158759512365971700817932401685891041826073697212375678808929674029925593177112337312015177500540971148330061979575129459250395106334900746203191238851157174241475067976237365214420239196693827931171000085639481302111940742061657505003297011153210566738800106957192235008115548108367172133143106154734465288639560870006344862675948984016111543686140318553725503199773358182382732563706313637860972153664332865474150721756224253656688525348971935086744290429986859189406051956997314627386064446191147220945388123769871283221768283713463604800826830148166474867943575513644026233432238124928208593487305065930961773704148615039576398255080928182874787017074164426839460554474590102945005076188553176327118791186839003556557608102139896662172653234470789494968691212002107480361386093824447494250241463112614753106671108780949345083666541624997101364683509901640491616856892908715515237504834514886982593207491732747225202045039572102770099360371759179866503970772523839314926373351359221348152451343778256467949702052706957577295706422742067639252320052075921300863748395851728610133222148040776801775079177186952148173604921887495017929355458893584800159062148317907351446166866091051979710162672593833689982500745021651905831387635160983603514102874420836496692720382413538291480230562715940267995153563670341873238708440754327308617593945198839555073085354603804730902359204126440463992338687832545150972935778805051388187560505841589047044592668423668009654513328034777914203195642523045010454742377122291739742574372281072457972201117263218690418555671377114642624021398377749777065963399498519841916017683057553353834353773087639073120206672424571464623422598343875748106351792500568091501678037850857595896334297027054165864268529035845848989754033232283123036938387339993076912782931243971435552029517956344406957291598566150269953975729781162502563361163633741852457709446106698754962953299191942573644887765088743313237756603107275258626174752588934057796367259879400635236626078918432244605261965022944750737615489524686314152692643835504237907679657211559716231908723051340843762625298295161241758769560736550506827839870343874212787458733405222264095537439192738732321951695044170726022153155446804924398925412342090811164285667325901845267959970917514477962190018824041420427555195783867278025648112908077390142598727835934818264130603795580252854025889660855818254691591252838389929435036949153947877480416225109831983449744064946131166146183695860792014437049115628513922746847584108891074797712223595994365429351074128584885379410740571868467344018088230211814037506171281173219702326510671396023074708964696161776545524932590504147136846120072325077788550129428941038215419527816760844328148671259741655669875851294373853076075559976875119028086999511708762555508119513216210971648445979274940698290742616656847019299938041907622289484517525312029174851849018613670976682786803739846924816627757058760816747422413295869919637671234804761638225634898222451551288754260480199015481086636040386451863315736461723767908338150163691762674870771300946351092967581107170022180435753470994298832261771331494740563798403762429805880722836019475405175885990266282561611547465217441899664493426563472492684841699667858191322945825368495070150315977744094595362097422632684212774659158831368721569163498341448531841711334778525869559291814236451095776403435032300268802459129309609506266992822907422417048285140910640846258054017468039194956007739505175534537888591334442109844050075021962521660060328696526691478781327694944361902694089692014558565458883396810977852190905986391468495273610093128528502684307180396444885412507196356150178968271355461666719897097086424388261090719354779677796014920604205506705796590004254500736137940465362816631467918146249495019760377848629890663981614124915296220484175721583896772964234041082426297747342200843649165235101154943671925821908050668681075780131743268826741938542011162139557753807668171184736542006839370625566231734723562121369379145290036109403408509330154402548103744766456502700987392423901369657995956970615846705291911496066513006775574588717109478421162557327903970513049674472667398206215603730407980867552347683289272321403432382004542882430386229183637432202532750494739148957995978732825357675247718042755901085657879520998794798856305675831484405039834061486929052032703823738248765881070732067992892064525306662665580286900818920672437181872261485318833901006233877893187483553254160046424152245700285845336768234082595941554063270399446116039911234159871518999942227664029797243342836576096153786223828576019208378946198221298147278928318579571362296096023412619739893973486480269996412825150906143245162296053821564850769963328910524420429028831112393924369545480292907043906433814042145636475052237544493890220523286016725865571433726098219948480144979042719802371359331945448267858732226804002580972427047440000971336303156261172872157181726924493956070595529005099677799340520832698704624983250878705594011538721214983042251935417413565680900433849080769886858405080729210518914466879983442978540103029763713458354881700162656972652882809702374506780094269919488198678243111153229524183412265104857052633183113094830517158559778652218384568004321605088006728765360179662566967042050195150482363519442566175550617239026926921064848840938989182375405158712062183959690337083173640647390725609972393845280814491444149557338186635412912547095708643418085564522623126623178663459607566496339239967334264559996798645710650376136019874174364307911669072130493421477138418335110002566780211151816660795648869858805294496485831249853586084652875565679307379691710190896033962447095976681255827812073699340360278977767769644785847849762289344070920529243248449281419977262681467577012300706320421942679270805338560904454690460918729217071103615171722053607969120076530568792372733557096128519512314301213645691282492390231153433182121671398748825048635108185992654225025260753929706113167020726678783963589877644964711703292257080243387238969717434137430928362543017690244115732288776839351954674483780345073068941199238208026135505928558619791361323740439447399700352630175752753512855475643820282017763016515934315853425398289451609607936926464197688057977264425240454373412268016656563393415123171100078874877609531883834255251876668844298566016391857933549498894470631437710845808336859987795689314703645307497686113895530997290174649946766372609082772104411575549560174538727969947656922595653681133876645826155804480319943176248857312467738702474438027640299921199652491633225012550099435408640519616070347812223849715283722627839309856989971019839439538353116095484661395181650348458605556651978644501311565776429947518716609876844635798127987420155350733751018601210478946641966162792633419935719275800864283405161818351546515933508959616846603580615721773041098864516787778654964913036242816408985039072875611249998030768084026514457258466741593565940682082221793040301896308801537703579626367432201973620638799852840983442953455502262353570185237906426625996646315342415552756084577316531668027447399296631096185917644079803862334056695731838048238965923573258652819903786294712440826818824282740317247880136853810582087940915817336013692852487388558004983331035225043899480994815524609088894439323292473787484808699446287674096899611562107705055543023756367878530661838950482160646163003042493444707502193843575981273157806729848647495334215482894480242142347129108355339983169947026630849233365477356732949937597640028074288429187449133970268082036671186756542740674334215487363022867795908113346692024113951418384293880287380530706447212067818375883139406134632086729187729473182548776568155410214298247100219608418545947787413093974013340773744587848671393067682827172852927648081649249744710071850936899424263541668291412496980079661035421578580968415375705530352573532749341587547912179411613739426582034660901820941607236175538879422355202203829726752347856766273027182967452757546248839752898699109692566306175374600567638335258970831738136890371706803374570101319414092065185528674488596488324698987757934095211410291159422280715637005779791504599197799724919476686850723769292801800766556906944478756119013105158796321185202527700460597231358481923538714421755939764998986230769718687204875112863614498819787190766037708863019061302119154171002540240793773413444683661986309648280788032235465319592139845639979829025550479679638391793423776103614774891180267731968807279217231807669213652528152713270411134103640154767617471042264425148200347909446824811542923091244306019251551376567690132409451660353538122276545614623610441206781766846806289344137381064481542163919916480851891301233293964267180208793596018564590907907212551307421063032496186432649225282495313316318047967617516325988191278322760418521417897103971170982259460513768430083841696871760941213293960985984400766029470642982241184224047315895395931748886818104767923120734961518039083936085073478656294666727398250222299685105658275460824176345184927969402707024065478209297274291855723651381700679557125667773815078643063640536075064875572033040654146043533982373573889472100490907960850314529243378794213795927669449456927524910931652105701127800420273868997315526017846027863918124812330951511736713590137292001556406540154648507490823651449358558505598845540295279539256112177768175869715128989403433847771896949413496076519771814959110937328359538408759089500891443518222686973622835728311838242210624705531303526165273716401197517933679982297365358049224862291623049369235612792656885264512656773455325939370829342158886050070639240713096597433512560509936414094053213956994244492456635921071537596870061727474986903929060919231354658720209245263648818427551077491516604214906993270105775940942302209811606126508665930984668409375456384108451285072320817472415086926201353582806410336352768227146646813147830643560787326895430533134646014506337891099113086920464873365415860440833286959334398407784641255568341710615837720676076802310578194936178495651346161624601768799311175724988150687821750107423287668470058183824267886741820147476819802714077855358995362243069442133105082937969855552535052632035883520120201328135083299795356599588362587035447550734559912286208620946576394918296635872583124607036922946682195986304291464276801717537417496415481312094579987488905683420223072199917315360532194036642852362105304548227418942028920879868197489244270018738121698872496333741332992299484389374126884596502240352472378612349644140884887536615141833189579506104066527826869894024942722439080753321478285890204069203576145499984874168235432339680808274664304811760852984467061807963539344243159833702297135079084665050013005585374972552213367441471807830755805107271863034305783156633165109126874516211048076171341488074837250859821413592202639678236954443168909417793526591111312146969432565383956643075212893651137305282443607637879661561264003946036480463076891147781857342418568959415147798168799604495285868270526792159249346964996067161827398952752786585049650924530895267981957378396497406208569211082407814116319736927708506945500688775735060485911141986214510073491021170267316068119958938410715791761450667644303519814738158989468462941006402075326595194673633343490189219474808491635007038123567801697846684292432899594877480302321369083087662919068403675963338245837407446898325124054085374873950970032874732610412982408153527482239842522756887422077146435974197199071492280039263458274793884781377142254449318044251472986533891198967326784319211049089145896605171238177830921375655332041745993127615102862810073189762025723429685025239057270918225070762928114071987890769152087067412398711899984874317637119111485389261543654265143916583895480219015542900154097641185219007251694589296669201635509678481923466015381714710903644811767908028918147816077824851079080012126258686027311343109938349781352095062239465260497747705202657801497377646730783971711907637788379352743922475967562094216811587372639935512449492863357222553467409083407735082373043158295890563850566655819449059253199060911090622716670112496575648077693206216704279641636108053419395961916603835994082215732490324398141958492503526078758017345992823954561277989519731309296997429808672888464043819281185831875163180757194712955288337053328808160623837360538666529609636748536288142680150760630671296727293329844710257264865970518884521100419416335524004803444899168905309639101419598439193423405934978089975170362913064193732399132474987738890313025475692041481726036536631993204375942025761466672743121630350924462587284611120423075041658075871338541438344307833024362418131814796656969921012949185714822608572169797434834837224443575893135696374620322915199347519091139831716988265628141026489358579781207663897178698300450958974413311618290224986622952764606947255155604829692466559717231369246096503238354688190703069169752812366698230532455269524116934760357275771136262881403557223553818360997120306268412772092910257695535772559427491683756989962729534051291718874052316972304090554664984897743190887025718864030973607525381674096062897546138684422662764263307311311772048398292605903697121565320180116340911210507183902402571477140328998804413147848028325921380331246068052688050056335990260934934899739131441547656789101928478649602675430124495787784751167658816504768210229701193402507343662453362239640991977863346077708681882812710818191638663323493612138441934149588705233794149583577413045775976804804729068207285185905307404884482584503233296775820890248768402308987900534462742678774244014772966018459176469465191663255753539784038326703214438643508420555311600244848441577482645629755836229551255291114490914498782262265952938983079542361406054694609748651471188231659112759358598936291925927409961371363258733137931941670599986008469254022140058223468193605119181032057963365491546263115845096358018220285089537751761204894441483641453464692026596760269423277897150977047401555444639303111888889844989879713981847582586399898088530561465441049568678370455756060444226258389608211083626158643141213292362787749559144121227449773794976980410004191030604419842160146042990464007007612949247765736163816402835628360441963971445903388349411870749037615026479937173191454986859845695202306166673862462051546510182645926798589140642689047955035724884600377046157548461387019407872620855592097880713501730063181045964027373342319887007724508620038917863201691978307345487055782843301858740276868228356343087982868955283238402877022812373570540077585172098911528997519538888903402931663243596629953000939987563421281236180502307175915870577998207485165707979442674269414100863061011987808949410354087298925707632839763021706472180429202476094836585507420659614329619385500795181556720848019968395325622496493257910369569759430534490452799919325156216016962574284642273482384159663835877259431040691155749105628853746134756156173578116621953746212490095280152022621600932501057747409809059281604051473277483900631571995495117779391947638384212876208412774193790424651954735029328304715277748450990311449295756254294075120293230097656654457327933212827593512847310012010231600534772235597516708078213782802261060121723293623361512818585670734233399681725428526297149354046369720612981229266876747598995136569364066591263349445047525348528410922632663724594325684569942412414097487161849520120670869527321990975121325699116816210231678878834806960858233616011027903789012513594225661947172945922651707498198029536193805515019560226454811773589096948610782055051374822021273342992243816138601765060612916594562210442149695230739252897630389010565769241471203045322128565639062319374472553894396588030961012729763467726739342914952858893207423365927656594513331633362372295844197900179165329739962202554409816466478419511558869954282581545531244602052200883983071734406674716510695228408181820565135421248340816829369288078643823247943045893029840152625863348815065431486642322906712187261279156435516211825369961493852841221976834749380804494749920758081647885680045194070898467988657265932771585866406232121936547223785628101557637942990769458920975723373981104694093162533513235257302593666189327408475346599061364726306320680517791940600522599701410616053586315453288810146850675542011835373073067014791400156146163987201418906699325440726804288489980171431318905233540678403566519011560175739769841383808678361312536854897725945256380721876296310217689843236318588162666888415300117567061912544961132286823136266726692151907183328391733446486766851493955980728052479029021257849518498894948539375824550225377566421185399452083764708417263290282564834160979962333324530664543217147950757288133365647235887768415091322835535146510181496725486882306257994706393375981391436636949257676979808238632011291092458856391608658272020208207767102815022623813695590552087022040938684787134716589185313582981488066753659973722382686628882564254235771336299622363653434623689249247186352005443421530686706086523044274406753869873155549237554051907864047481827840311026921156742106455113243226348541015285501663029629206940437078009898140883631491302768921133755631797755202612876933092534196180363680768539663028340911483335973708168887577549787121575736858605319541018286789452185149494281414490767811428660399159612311946978246962502443522627502323776982410253374965456785920502084752684788586358200678280601628554600511190320772631604124763833961688195958913546251618493622610838169825432244368548974616804823753219066183369288905628746504224932043285562164602207957929544932207293471138130585545783682006073518370865506778495962747352331238237541392887210142962183784116507524856432672810044850008785481457431934368794885769615445693587689219663742162602512091660915851359082210587669765168938942028539134406538620390974852859638220714232083115943123596616453979226172872910481492874205674827521356054771966081484668749238777778481261973152601629707859528899919374955894569723921521155419040409950856000740149915744247556240452624515433000831316161103266962500936297488035207626544337639548828298031990013879583735623080964360870933507937862478581583020605964331487292908170912932242059180042876268984104030776575239390359736082548918323083058633929249283040372489039071057072421656932439474569302770208145754717630114682792000131311846119215498614405100110491042278543157911065843180621174781694286654252867747652564519714301803796671908902933289086843587405809606211660013380185519204788298067485245649375072620613591224310554046846748779653473405626740605757221778977487490994098675842935597991555371627338454428006580550126022569390522835016792418051947951515522357461676158344719222080115353814641222383509923338891341619475147920061821325385084891225664676628072978944711306280605448555694923933901176662894682131928537712511722941841565842280605749300173492415408665445943115668866987567091835679184504724728152677222340848352430687348808730624208813931058653848215991495896388658812088043869828803097895914189782628214566942163400427351774394520418416108800283775061015039364788459497109063294433379239081359414871016824114092444658385958683456197757304640151113530807196799504140920368024926715239899554057220426905975243410263504320282451217284237216260818200565832086326045543145041229912551714160621539468543894842283745515845848775807478098770897366490112468058125214411900378417454485771510132888234911472029230134814109087878772282040849250720757808459766894998139621695766322076494914627078053311639462466486519869767741269167962836477713349892381278639417317775350442526919233239844580679357925405141847102308109606706847326282441522075885935310646774566890889028897458458074734052862546756790885516223243417271501060651414827187574427769501113399361008205321338214515691901773989832436043554816213360446740649653136294090615273719463341049575149383355676593220038712745386228046979851582923941686310994058081897058933893504876350849389551468861780098895246823282301521836939392228806420327364748030480238043272174912574297909048810267283658937008117878709442599170006935106110728199729138869969737240304368914946615486646382750795890989838393132261318493720314468564102861387376991120974589633543846636598431264557527551504989200380624974073877225732780824219049347171715929691030384510052219790679340198884909208595829866904055568287401414297587464194168297927594615188057264971957811532903481380349240083206528557175994910218498859651009422920376497979655631522018915565202956577864871843837392588773382940282450644730273129233225576081761000676139296783620473269241568606823139884747687458408769125070468572140885742926980769083915571186431759713822942056304220748007475000465451166787002767906782334298049721794796686492643655371559317201883025105114448785895585068080229580324082437297034930592722386366822497360520512403462718487750727741644709844083721460519361792080972195718970500456059347711408052867410577609167329680791187970997126257380314514872254852261959938473896641327379490449709112009251253540086977560592910375444274122990661764737014109223049808785609623837123824483280667515194374855877171045467988196921919929433848224263923996451470432261699109599454868129890627335953605987254892789628828787325334634384423994663446014132812799375252525951982869511499701677293591398261910765368321277582656624881723424511572766407603564484276586467540255730436033360288354610216304594333455615869743268066570520026741642542462769099359347691018845431804506042280388395641704792806491802430540349542106939164102310284672776848563976419248748023451123550775689563534122836500342168272811841708829298663817421054589013809031698027994722268178373166419595361351096114339475984726481390956003118303209015522031642116879129627727394071956207488536313202104600435307660980637858109128332519350891459172674605243713295556099350131006038057161754352083054137265613301809650540831101602088175865157083536174643659878109747646976126216735001095811826859764852336173399740122775490784272662680349346072541217916574199690228029932265705788612709717208142797884622298428289161033518455203815588235716866312224412902580374279274602337770956743293092916577693055939950389761395214795924775232846431047278055111792688896187793062672594883348206089203803518323203101986973165167772649506604673390922125252491730788704750957510160223582886217730756048832868666988009009137470721112233315429807518463837461925742652344633357041895306560406535787196109031593942160230491337138332543715151470580665077769226957053734706594139057981307509391040446740616444417677827509856447950252127316575064551978996930174533418803111527685157860742524717551309432544399970782411430395698895172913908481974173732251261806692948653130067247698856676001290723022967834510458685930569555778846542209373842679826768504764458516993306467850407288052803432737272160189122906363128300362955415475168060461825396686361472431637592846135981929905902047308931154520026896334040102387262224351853695664545441392969695570249455542157756433104987413547268572830783495792319777136632328617453853706192488767902055053690060045991502361305295089160440927669328350882830695896284034823935703173549510028746817853995578410862973652664938094993877622935692673246685880170415445382867227501144450502777694903354386688958579577269820403468207323212556650811737785525848102815103224845417634898053308803706034664292444656765481792109172731855251270871500694074801580119602985814600075662333716156296119313726137874971534489456061275939161826376832147930326839815554197478549710398108510836800972431904023817227776937161204861646325851997722840678034804947440088159719006642664305858012503065570335329081520477984413285093606407921387007043522269734245749934040282532391920367879183969781893157064735077528623089070312832120663922643132814734498062087380012170908032133322839621487191026915412725248158284238362152780101932651924681963243786830311974597072489451711237153589724192192281918311024252212639745842221634320298332454112839227417529599000661918365602865209437427833863333018755188296433434214170385397976250685088727848593303293811201434240864653836986386605743570195908772030691423071517782797275276528342367236725902682197486740064817103944988532433578439809129800501576897144662616679622253996779496389975551597772344190154251400093704046295610751599760582152297140555333022355967148701639131461394351435349047037334987123868399684253025788110419696363498023407109775994194137043162120442860769581700267668998404292744201508449523314574290084369140607299676848948703347997184363334054886708584670243824269244716893920200092364185242322787241349178925592753382149602132514950071358252819138104631682792941262591220577388727303902769817332444966688132886908119036082590750275989835614119610379171117714377444429966868057313585694411192825614110789873959508846571313373482047416348977920851987065103816156435925213730677937429504501647169271828816061327020003668967774346597683322665412235915439683939538365613652686486837298684996884292949284011387485292386273112669828716702718481136575614905583233082043739549790622263124021160625403162933221099868737970167758264598754338836062154642777537529669950125649812461179862368466537131910653396328628344756616044726423851814731904504772196468103086556548042184024702565297515250817711483779491465167745609334634454480162383303945290418849053896295175185918133087081935591830882887244436699334951084109075892698160330744621861522753977329325440118307692950709223019183375373175352159672363099960534067160588020542882296001707419324184642583257264016922880373981281278736273807593533740389379048254317657500072963519053974607602935240533605340803417862026666401563186810242124020586040366516827706669483221479716399347660441976334638652913539680872192495023436736244958751743022398854864763328783636890666781018938619580194136349015293602568915205203731370683935904310203407816187976314508169723512077635423365701715755554702110991886072571478009316228368178293652090461533929730041580873322231966670264463698375176218393047210604369936880260595985709549975933025984779102935852169162040810571250277493488425887327671535976304884396623059559359487395416071991969883916567171507161486765352734137923975906067924263455158058014712619915831994654311320519735472633840482149348998868232340538485368787783200632076833445435223704767538930567680173690565677354832851795039565827136633538416123443477223704384048024168535953998788161303477407130952367492117507896834500336270501469501651131168885965298143687691324488669732086691392331850097768089120975022277373916290596827296140023416252740492414030734436382947409914640212951528702911175092353748356745018568499832460428946126652992245600277804724251788444884800477332038369537640380786380988330830285775574201894604753167441502934639338010939965609538205562341607604077727268076328168015155167848742647639293455175233019732378100583491913462283204505631851667562976002733329197973919276841477258393279362292690780011394818602961189119287374336077378391532792900730333462600436313395936947454598222268299207211422349935198595201498676815296617153894262967086505489331215149190358364549972107454986868267662521575247134337733284925850391155775619938852201292989767739559324424491669389245484143811562855264721066798620238292098430987202083501355190808057529079045227310692233170869401911178828079265968603114994418161702916668904126280640605619432931477576380414231685687298281244913680193426171841557897517352485321028531431436702147582435228188460965853707299173930891102765367509298548917157134746644127736379886974577201967256916298634674794771278797154474739213266915848240695026156644200929226406595417712991367007656424569615657826190919888924997718705918459700579341052709429326622305771955806777135607863337292020334288563659029538206995455974650193487038973263520613801332103815255340278710823921824577714449319018249071942687946409726086637021295257526165377397744256626137129982476722466732424321822264169934328304023458592036866489740658529339974657988777543229791905772596238723806909383794257518344584792694468067938840548130873883295699856627918507967898468390060011197143268209890523440805415442429722940809257319368685569809503082536715787595750109145224137383171868340793148172091529860870730830050997177104117320242461033893157907202302242265962432862575175371632464106790602908539958784305525833235854682495467728240319262126472230435248216828755270331821755527195617148525866197651367026690173333581141972632829795158469332861352532203449990535847500968410190861182299176725155104509514676345238026659146461027000569983550597784911165428997308934899604085635611530742202488650217485759865976505437916693570630437776128584879027098025741613567570350646157399899178362198316081182681323306573570990872000767717945131931003295831148283448311589561163122182654805237765973940248204402061972777461249497231358500976458604378588530667645309566089234750986329469789293363563008453812954198538467632867658811547275003000998370068084755501627603677080286798511725137842366986494114522882586971317159853452365641397231445539183159033165651742754077460909167859782940198967472950628381545016410966080511132398537139225875001568670695314368124296903540297600207412301824268342745470960511332249307941546826779434580153133090957722515718387548158618610210258003064725235668533267240895040409859699439942988065448727304152662000966526607880435320127990065836272279849017463830617109504190646841464547386323618592142811274417702584881964772926077085618182080161868360783993677067083004273881417061053253761950236356450866411661176634190191146255361141669381587067686727734724460521530584533367083737930380985327452998274918599835919197788443780462589727333370734421160969838288255623734381676513808421160721166771345373754244089716419124526554001971041888559880104698268182393864827003702781343387990053219080869582131125633149012986686538645995017446478200313233649384237096480744116717124413105219722493738723775472638545644508575251703566945117527840479489960374564557021006297957829354486702224104411606870053079407011595310174006443787619855036996911392030118465946531689188745625350653573474025046134485893393286844666266540952415060796277519711471272888624161609528260129565555929072123994071118775467634816138385507887608342553617923356117923813882511848035046492977245239462866080400970324458237961349192841085733647322431521707703029312912648990326915502810753823991988514428291053210495888516081136844308159489080386593069500648359120811857894714307125053219827380148621615742414192833158523442804986025321351492938016529724420223836845286564311462249112411156814176125641546357337896899793004038785717931876894638973739662597012626474163138937245570271344909010844648044659170826521702675082600606157876247984461621825657657422955948916007058902647387916465230869666030637667799082995681615241850026304254007587349079424876988808431146113812762053352565381629260240388435963006022038527450975765454383246516522216602435943995276302278242795895333148510194354359514514779930707639707874587225645620256537901914121031742996353053076920066874169686993333287268244958614636953103642034966251723996780779889455203897217029448505075377929967793026654614259765752602862652263240020140333845051582891838367141341315084514905727252694843381470136592109350653855836903397068714521996839210061514543392118224880225456386367624383490926970628535742041309879992673468216205722935156727041516010140520375152132044791984116437795225681490407994357845479962681081209919955728555775771125047810812981121308099178486235610034291273965646904830185329161240956063170853262242017981517621230762124725101077194781808709624248483833706860146764887428533537204707916801572966249453174528907287204136756902964988661000029181814320423453659433987562499480619088977246793550293441869908915387101094330492044465292865582832090763372779551756928939707900850105890269838548295048341455743729314804277184520144346194358660184983670977376720256135283739145183963349520571852578608106637305276337767788067498535861712198047410772720275278790409475495127321337024823454282900012361929648424743968818383822783156193739264396247870878685785380013758458732626779866177844208338120708067040741462939668930189299393345668506378011956732029517801821840419752375905611441569141367769092971333266434450117933266171561538631400088283671680368559495846622412570284130753566293228713349960624328227271492778497480092510959657491646101307347416400445415359344495842636861583613507926501814721711515597916354270075554535249709151512684839920008271936276020711446669727553968677216611612527911763971283885979588040552589047590869479818231729690599007172365776238257991150831832389479055414755286210014616644019055767125717664799719401139345794475446361171304760852234625337925317054255615262041082357247940240122379993146997874565406462021279914795816147013430551962637965599496557068331560829229781771608542410902900770955895689652239436975402416641233197482156012564257272038600575583524277279868295368900221638847856704099143235616978397169046777666365431475761421715023729553653068016058597344403606690403819004082355674509241198518107857879016867590267265513873732928093295911624677502554453927948315332827357924069432712430827205964738923784646914168051864035376047937455207846312463105235702409656935871797931481575441362334474014233061896611607929760549455078834261659901724026933471242205675618178672708484180088327825031867531731143364581151549209162612315061089300407747309212835480962846563804909447882388254169123690320279636101197538707051667919716253490229000283683191786632385867415086454405133281002929898879119309956470957897002460227316887282408222948591701308056849896722439349116906267783769296619616118713637735327948087026082533364103908170331213326756221307393281064950475509059276441091643703221590623316438435912678344811790138472387495230003348382306699950553395092106485629755417432039455452858180468709984392110978823390674860828237962383332359218387030396649005218234816027101457464494228210694499391843186132735484751311069831956147311429718453705570097349229260997825677399040262972949979055690557744361149114400196142916154146720802538010021277408669791405255752903284467782694578542207813429743311517168210037436207439250446261642060689719816863491189141118270444350744068077726670086995442063959919904839049328604430589729705348875134607105725124101948100740977504015597816311453661389242929541724369400690094932291110418833982629275488607353128212650302170617537788901797323666152448406248989425196090715155775577394003524920167213454477888708276499971513458235448453452456948665384669898772839249140019697896567539751105655033170834295382751770630923046085408028654943401990320551489869109014815676198747792762591093882198410072382692826071693885745174599490975349216932875975330978674802232587564442301802025092234193684334825537750358869614370829316708167267689341391262888051045910878916338294462881404614033925865197727985893367611382834213483325422234096178238458079999828782753331619129765485840823841279274581920392651747390383718805531616290063857229973836073578500175424919120960536815767507109776590617380253806220206280550353071124665272993979940416254821447047612472712144561022744593190563402485167888022361159389934990215411909810694422118378858386101540116396744174437568592411205442492422166605719982070225715320034581687467345230217230103652177975797384298650856477909388485993579181409133860237761587139240672219698531181963735388901977788361908036056228581904673949499718221161728193281731911645277510780714298791727870366473623409257618829241315262223981791509663770501445220303406447734261707543065593010681421258455337413621944570587257177233345242835775110637178088667780811061645869985590620587730247245470564483051097938714478821894145330490344554364948385396859024886845984428591016959835733879804018963809065083871971743851703390806451533620877417406651443507635185531756934735298305221863955014795659007563977812099787917345552008227321343236868810313585944290852913345970863589114080522416721470991171082664510850884576377273865641413694745886955340990855599651585887177255722032590034702992281058447870950672215428957753673966493397353198705881044508167152858845018567372734153189105503925437026518912863619985183472466321863880291088811116718927598774066006454240856179467965077378094007131109918945462185049032057249732320813866718692453378205974693410264443597221351579959864993555400785369492385530248030379228213258737973642874310541744841292767430763205321655243229044400782968068150080618962541223746922029888777507635855694594433709199956147320390284119835687696927854168802951610930794685095576369687600150964354442078723414119223743159205771509306590372404153775336642032663753378337926282496386104721262112609670789544794326139513063856603672678405014479607280015102146569311316683699813060519825364543981277737151605486133926555322912011452172919563803002856411612718716791137940778800701083112384785128758091207319287653431203710520937634586198841261623295803111262861819199284264030497427116126065601732265938403866589481766847507501563446764245156866358149064922470005067839653354828741675254264523025097036549756452121934266494680360638997864264314144149843153572488780122603511301964298061045589140597758822030373315278051957486838079482873383093049670285373496924696541267382381368920532285140528744742781860664693558352867161619757408146693756009269658262733661499604807628641096017614845663672096323451838088173121353997286085319043084468184984577914595702210936853105465830703930372536220159581823493957417558231928405358483476005225249490457823754344788409813853384657008915936884045525711470012773636075731706238436140458336107588510671902788132409429795268978617982291303396254240556433949452155390893271291225628752222925761195683534968908120804301570437097325838603124178219260415772326108075927194576375930500889882939581210187283861429829720316592873465282816247036835097434807705652646556119369659174865887504114266510737347439220182568793795862491330597754050998512516747123075709715583474701483041589198572172860464590283766763407353369870604550096803250695709074942687824036918280779513034806194909016287959368502458695929190217332047374603083549357992345493908180971031623603560790324568917978435881169968894421537864145354977697861869785375889133222152522942187624789901094310331178123819938999404714408974891860319273948867077678979334541454505518823813543096461793781711504537944314150960847209001510736719339440961564024302949104196712906673894616542459055581297780247545895722768357942029724670963395209095995560057126907511100053910718088492001036949880162603401738903440623509418305568224640020264861203435036131179268903150976842239076970176374387063702934890006618026518376008237808060333706031765775689369491900352971876920641352311010755212490218819443935898720517560435123703918465784212840793993632315839007484262891919198007471730294676302162382147838199137604820384259925083328362629253088435933595844318342494631465943343161139541000383582769368811960838736268832152486907388087045906886378571645069341792936634951136694095237948474688908734591155442938574973070770547231642618865637666015594438028617750568779925225220034122625881022602746088956209067348487174672741465721765763958419052870830084721946609029255067084158581727476219204335683554751703473975283425508582040168488714872500820658523398985202704569625424508032663618318644558773845284041945116439453763630265864499520297717571479592919185802581131749400675413893311381890012273677974493930416820181783427993536250326565798799968306622194570615735900879987188080654188453090731985402322369916585314987641775632942907359503436144526377328484594744618890348440803207162657583145377815185740991252762895796926424292813978787444100099254448909790842542207506042233877065092499913294432688204348368789639478817565523855267143207679261057036061226920291386446609003897509688617465417046106720373524629828488769752245835067192961863002872954242090382135641243303762031057690992723813602370286707916434553862830877156323551424144904309743497559909155177709394436618183277820119443678614652094422833722501472425616498693973402311134990224017132590660199149243325833436562781075719605822167778204358659181172328247689705960249107375647106473518371057359918424823204081189421981274234225904477089489629024696609283799312624605266751868626787881285949311812465339950183485642816131405896647178199496823154510741526553769325278407298253308423105864569157811767449493291245498555521394371388471016823367959681761669978487789614987708435108274289558388194982180798225529340718050583624731885229718102579517632110857714782845111975290579751285403705504638963324113587504455351847409906829707514601636798211747540872179304059225292633943819499981077934093244343907383015065825214999649463430515829078506169658920622361769652925697292186562141804843814951075135883696432523209076020466421628070507909876653643831273159556448821842404514079941365220300726453596450236561406963508464704812562864171086225438947524054408700914914058895368414332021830355956698939323105306805740916862636628439954839362040821910217995509826811693936512423318335727483630640165489213718319577596380620668565801921214565762175937358997891932687779492480299692906088458334797522026580582072360206662560498214726342385885717316242269257670721538165914033612449998857288199094917602762173239478654440210361874180497300862348629318512359999146293707338220465338407214775601438630557622826772154303390786765416924231470011444542209265961441384710283332955982493576214605095369607739493900815900937060297123780725147852337978080476083115470163412383404897893881602794514845922279976685305300424050763115081489052500630059296713111958621422149493096995014933740641058612688366981321578914865469562050906982807502493320502779381749298754991893232109162411281833988289113890209707972520149150214952736542988357359864015698785288026358113334970764615417893125606398060190535969943219056695680310725480324310447349589542383825097385598905367752179170430632214933098862103756516143991244927570549187900373990033127840120275085292664664641926522477095023639502472736879674536228433582714683861693190925489930528753819871307787626313628706467620738558652813723774438724923203296040914693692111945797502979203007208545593465448626350424868429741660085608175267286627930231155737678597417525822646055204555671904734885705603828859936933578802044447123950616691997269722162009335308680823880162281482956408162086574254241675216261442049898367655106392868617017600272506248782609761289382791075979014077162850775035528918698713410330530765314619507473109535170423634661071043952137276389606109430606185505848188280527333698172229829534641164053627204576022297290080387074775297791928893708331158069936693105130877005466434426140024152762016231393159955142630359376259269163780924866277066724931860158323405093353108041920184936543448114171274488924517292491977190127306946160793618471363219920377578212054294753373325889638750497288783542277722398915585228219943875185033877055050001493833184915334152012356262007349386869043100562045971499408553422147572054565918547284590308211804618663591787997176084643601586373066906400953417448375695542667806591885203571162795842480575355842593319892948122217464499526395145573572372031623395897204487585770384480062767470108196176425202351283778131233884479352352463919634577517552653021561532238617194958406923330740894601140599494274038495433061678106124001810186308324605596871211849123494896031515727965013404244295238712050886377165331283578103066111281298203124557513003465357897572739899443098482129083260635564895500202155997836220507674931828251342991434618469998310899729935559476840320665096605232817079700832424782315169822437264963330541507931315909666857321512100267224793258711331194353116011130868545842072099229938379925585888061194682876537838074793960601502456191130865768285581717793886126686975422279260037312028482925285295564879520631745097102275757839657770490909812519990069359028374178764262294596890178380743875306575720698687462458482683942500244506087698068034975087509924250604157124191365669390684086768653467181624718850840985534712707147366229172486171549163100190821929151186517806466468882283654509798494469220491834824860083502895433490169831322082500185877827082447660380727880632682694425215075666640634943308727904105726302743155659438203771096655301393064343508043558611607134631785755951496453002323494826146658918572235819966567658805463258334957633468015764655152319955911008568298160920174566128006480905572790195638242650896154603296479606921748186226135116075999531859984030059733663562066772440540402923097906315901453374489721015838912519635134139356328002623707520695402831254032166075050377752049950480052288681740939298305983800671231020299647617315878887691953744490621343625300506907926288848033889020064295263568086750373328820627892396299059950535723153346045650939646102997628024705155837657558065557385183508721487831595004416356493587687911106676294807266267386438643147412480860054019006140243139275521474284942622469625390092529673123579440310109609569416471911090604301613116735245533979900468015812793935707839472661798671275125943662447163274174711331451640965335314986017484024988258311787236693163410564326942249533187338732520929505632788070938313429638920796310692549281590419614260976968880532458033059353648733148342900228866879469525777833822588874589894918056061688191246913513373958887350695093397259814061014983353181789751374687085193055672883019258301051872713947580358453511382336171686144961104963032395359545365118279804309848614731448471304431213372144312976692884365198765127143400190670754802609672275681265071973942953516237832552332630992710127050678572968451310246220489103827761149085284963330403063248353166747564794492913023728674919766873173385117244040357942394532397313206113023749976370498437837417756534140788546052582183214002118245574949257619423545158256482675689610039593506038513945494756735028518741292117611966308816622521025687255674095699026503867715376304516596099176049104035234196859498482086654772229343220657956742559718954042323113285003834258622666696337910781872710105618030963450190108709220071673432742211082751183402571685846432369342632751804867028787346515307478138297215764099824563735108010182099084447466110936511542137470979188919964521267266833835540543739602181919492913846409491969728708184833036018306167177043536777838086437503770157204390943903099837155596971965582347903719568794013777404828146081036601226452540771050856912125887385617299018360287619342599606752649476604650829526669011009730594520813947420127307405101275795518097165552652913092478457792360391740213503834764434095983375490502400002805642825994456108634832045201323603605841523526145399356371253918713368057823190244543612843266823655541706781221595792405025597102511656726879290553053680341639117461446574234224690278313674878079525790638633344971498282928382221053314061595952677826923617921372508437497289440849050120028467152750434214291998401387389942466415506748231208899424073815642938824272927166365731356793643572124896254376030347709500262581887877229825430715620477845457027224462183137848321749286699374815041994588670855244826530533501032475466146306208830120180443226440014258425381644431776173060476738134969743054703488264891216055252512058211765997569807507870937245394702447412597732718343317472656839663005635825425606494705001121386250372854945784486414290505982299737604757740052611209728110390866216667442391949525383726303671815819861959937486962758515064571278615224193051485089057609053181944543667161565457996692007065322091858907515858776130509272447803550482030194153735213097649691619202265992004744538157719195943917586758265010933151510916222533427386597294468558443129171484597348610634295463696015392728702431160455181621997733424412374256914227213327250436145833624472616452728301009422906063950937999617430322490576516173866643789532750340094951536996649825907138345270108244082544038245942417842998842485364916758290431924159713766682785265476057892634037135588815680402318287838357200692493156038796870395746280440739691868969643280630681116501761618344542583131429254907171723831393711522148181667195997678965622303457424660102638389979509863514486994979752732934343010668128953116876429620048195377707213846500514565890678221871265271214869220236051377164696853140662015174515748818682503968817944592451037690780433707207056891822917356023433342125825914635925938205864128212736149119637109541115516804201185074647867661681695327893793291048244494299421101393538523474506075371555392910510932458625241717233068236878475359865543462986209623792879064281354475746741365923727391199419041120703359482985178285455615017083652303981398172046627211084921970597711677525396448518895965610932946146474885588720788348059543531453010125596467824618155196759878492782021930276242883555145105982386416632247565745254551647756678434354040935477236991302548408845172816394740710062635921040356656861193460664201601203748584434872565157299149848663334169278871888430916314875438875283380058414836029818996480158447025002837003479172278947932212194264959207277035867457004469917481147505804893844157446516653238472157316680812955094144776249260599050901200130126965967774049512202317181009742291278302066301260023670691225157524843974825155073833298265687474752718035734339098758547166425901881659157062666266552684469418930775465840575237915671570193760290993123489697258215523546620238343367784468488168067331903260237813287357623253953248265366064402723802671040403313900487707496713406095414164906248837302823103908068982344051060923109917611085596981990164992069987956775849833706048045230012789199617653201370593860222375059458547463965965490505584444318243425822887774462611023195682537450656241029368958034039929186232672445897226650020136029268516174058582320639421205726090962073887168287450332043607275757407761695975651410710006921809351007859350943926338350554044055586177287920244556873309762941899914796939874188988990875074738638718776715040823668110671376469917587030186456912846584468640381045161426200373567332507900484163728773551369637384086349927679970283091154160706720573008164883415397753219800288898201578696821798310968059182097378128067038057913240780231943765038653137356192856891730646343524467545759041093752257600320010418369390153100047073024808685255796799909908921530331020707781909856243080495099790384643518969391142295955467472163535135755378319045949085660141767920373425970248992542321886261234289942471271905381026783180940310456006139860003031292555940590015504456104150333104031874771238285320383624837727830751937985777651022319763023427725112348492241967153040118596375360904866723201924125803477519248061252818818921458642461146754115878497551546016787434754518198441273325178391483219366309709899010398200311213844805187278696703362801196892493698343729608863698452341812831433668930058153814830755361611589529008576364960203353897661136114173486019696212635052996574451092343737654456003522523764629904235294186565604650166986711349914753082588839986980594996667469429082189490491884646809655418939248985269868555960228152952507015458066646265403200323659756612337796020015916465874901516251489441874860306728633576216284776792261490813805306993795896862070680307420110048691338816587724395695601518825011447807045527563923328794408480612178900893815064248297910829428473288103815003825922064796922252272478577959728690073648812689753336909648983161888220423589321707623341970350303815029553226910942702639348546823794721918323651784347039426324772083057238280389772978983350757796736715822686663796708314496212266043656144133606736812057567230011710347064697547619087571533943116568078486097210283253384924422699950665513506155610934099074337533576183067077760639806184753582591593898884187956212624500992239725532855494046417081002575032690935208649858357376388356806773414416107365207654470230680482186839402503891395824527664861450866212468410867847965102710151306168492163642552888950119580167052245941353330235270978115204063850821073338275458119599728169924401341516955726364025995722028002374317285849242004192091601296514131688804295402373344122170917085870821791262867774550517645313675965954661737473564481590280402520472535643656787839234329173073291537137194780370418445982838003337267213210865808342708755542307575199697891643583291886549037347431411875461174048004526039516584971897089344123136059268404979492756417610561336768722981597062513364158044180066248323832585007644371521059589460406306752492211099116058439652471454713048908571659967326344052959044250309269115834392707912469143906345428906757826657044527521366947131712948724110564373525964180215934983350430136841961748384301286421093524429238079985573919595226461870242434927028150301326467956920155718578193214158619013992220436129499331387389707588568911604426604603575641633018638471701163988538569129592154514387605683206293428103207894450870819425648759403959073119965863551366668714752681818609713567876576057602093223918227592169610836067585418406263184874177197221229162305144399902806824586435256223148017356808179424084872710094553423646946866311760216137628820130421310086805688845767368677381761553542800594099646832869585184224076302135764280964972281769362496730633712658201687414649970272265981004804029901675415165579130058292584235756102812390120035609752795894995774473029011045718412314519949762919893865763612369781371929053229738409305926836876311396592379536783130490889103380048527065747424481658189728583539948120029850296792923261036674787033546787160271428381259739442891242204365869261495187046149064085600214192604235266488717367434719758236570808128290020541439541445237024367807589183405232849051013624298900822102595024929770866378368901470261805794763545118626268608988335913948527286215017090304464892872799108430310659850866010556938024432174812783292080079423186360776053148407061388584161501939577093540877104541086140435442282641152282283945018942644678202469191829383389628598334301697039264930024483733732138825533174037040013395822141724446429308598840496588486718041216569745327135270888088809967639032950030196385682490826108920885509040183140794832517083996833485686146530458636774160776530832155388961334979994408755865517735391159473446503809094626407410541339718109779101367467678382067561619100749196511465579048290520310597400513025904154532956529091335616286007916098108044448077585582480213961437784872343387247814027575886164051440100212249873005339451434871508249476875266039297799094104335897883528227415938015777808906009428729770360339617537409543462715927651154967409190146846252765737249767087346319478738919257373273045575893585448393577905056891863659580708675456390881262043136655320776258570648597499283249790769657191269393482650818150260024164982248514108973165857423590213632816125923179917454302006348732299215582048684916505236061769733767878378964136124416080113183216699381900235178901799637651972813619156475452383176070877043055257742905244330898322166148231549249317474218878649121829532754109510037562413070660800433125264406121208772627693953847108110738425992440981466353796296280189688116479536705883534298737924418911082651234765271969547670314695361148476423300629022900953952487781683562812503162130316984832440382037315565903993635491940154721045022345338029585133859953756223542611749868366811614514956461474347775554585554630635284396741099727275515056221913277319856561416002029151211572196405154305220941654876644168977590777252062311102413595436230565449992751796921534552262033621318513560017894563378158119895053999164101872350370524010973752457783366440123317174373252144049031934651466826201360127085781323159818257528432920893800491524890965559029975168152336919517324018706931940855812344055479555342091142797292637529950747002892346928985648726003377792936618508463485935444914709807072471886249164810466584621354415778232339980577511820012965414986170008987482700724458746027060295540382197023382705805784389531499223883531217556464574015302640909787712051625796873724141590714884467389245259702209251465595419830356297753471155582754136422493179897125629315044263659836191312315048335306668698160241976016861569468810657955339755009212510641475926929108617390996696573859624664923106531785366094237811582008034232876789539426311750078264098490909345756877599515634980521741029915794838325458323428146161274763137039788242517467695947306483629797891653335395162610213217673470697456162733341677875404664972983485084151764047655538451142180514875726401986751834596244763643627307223068712283420182741566932387202668264238926845575430582125203908361461828470268641461610621617772013976016055074017459429318188251237782949009775182285882936422119352219667203088393018148394147647619651740355890796712140557912673848701257792474506873681262193023959146335787969553347878187819649629404947148506485960807159624206856805274928727358372259976373397789970447410705121319538042579251214082575253609603168834523092536387590330003374619555413291386143395751939802433360911187949441984497575584429267286428898951168369745791277050245854477794629313493536037763580571703543690869162465239642476395278931747351350543516382161193907288106862534187096902418621241191593153425069996255086505621360107486314301249275969494173653553647835913475981999186924787717594852257635988879709526438645096650247354465060285814982674701747934640021420730098231428363840718546428321984873804427201666933929963914796255707509322987450115537442949170959609195263065636006755883640039275690816711571140718702898397749468181720954023310373402190921928637074697573815693370027026387049423544915550686038772281741820672169210939660561087823385661955869181330512968556605497346698382308493544880485972401114826601798763594669432213618023546421547652061916485265209483150695500267876795551216312368730878273623180006977577884669814915388298980805497463551870763784339075810660738263188488748012572987804151253534647632713014716488046738185847311389214444979782905050889371623567080472268159501742654906472097229207182936279148620671606574387211094315669258737893364560308062311838776037811998163062461480766417743732419925069499000191640957884974412583337466925070929639874236501538532881319563791669941183845265933171962819841213889623968674110749865760204686983196546541347421415019331153541205930372669319910542143584886120362711946381885028809163303348034657480335083613979787310067292417006300399457588143056754661421731959149825166776513149264083109393678770544086828839356740524012324921544224224291344793604066382856550731898662440165769824577570001145427150560388369944703687469700228808997734848991110855939260676380542984345830189100582697314123882078549086115025807764036393595591329433813297700024115523590852194760225514398350091703175317785680816543893668413101668928498009244018503277988770015491628892210646455404617937249141193050329689151679911667180701668892392122719439696434170734537338845548076457321735580236461225196525794317357947164033952294821703370896146746441346285100357097896432159806941521593845128508426608105781088020846454897576497303459671584203475366759765571930300240524667914690826644960291269299787356417993664165431514063281329431504775478296513360598563580138250280103757973588056105331001173906856551369416062835105419729715556273781119858199827450658705510744660224111074950869513865569410496303642770757430393868050551494788029463138073621306933740516325975545628718869899591960520261708923263369895397637457314599402946495820531501078207570526836318591224903461453486251118670011009937935050367973692907557800645767169088608627180763554072810145306751000779583497657239972681064753894562676630046538493699764604363439909224954782427621164466504254702161417169431311054985612550760339389473518193451171657398988078969817907939991298011965073674722730260184809944400666844916020389029758346038280735815551913896042175760715672851593263171057282168858163908731934601596962517883071569905112532328147159026943713217498854879834503965841622839659652565669346980074149352963906892179177261842239410748768193872927767034394018295069404695870163641336929086094898122892282506892357378907662455847977067575994034381687292900869212287155791197501287384233951385944946382688317538127794628992743718671706258781114195740121336209785966620712283299348692677585285964360208350977194000251872543676070150696174504674730996702414577901846597714799953902337795460600576344354235455209229687586536242602085354952429719872662808079877070462407107303311698549164651135794674756015842403382294695861425135555831253413894200149423239198221626710596641190637977221349447377245981092489347490348531689843591800072906517395315511425664574577453293121825972451766829193994645295236524734663097045157062992400918549586162044893867639122311226458727496109743198661088876114584266305558721685479292554998426984314670771602686986701629783470512479882016599497122075123371628796614576674661752601505520823166465500934029304499456255106276905969177007215978099956041544622954577615783842824842808367737513556748407873933129900552029484523467852757068890729181076914620274386061322073005015138279136447449975474441210321344471328019447512751851787398784135075772517255781297629459173495233240316852899692992590585156076895943708497716182436261752316091332213255299177978013611458325768225520200375957499583393577819385464052186130223061495890439701558453482315266327973732183202016915450098395118901878377409423435320660470542917217353222031189628622510929295285540648389689736827580551719176897555539677914175224181451934598385155352808858668432309676072184079572706105069490885522101899674399666680172283198996974767435671409062134196457210441455868276193275353840006692167878378617817880082818410801202000770832468028416753631209097630044212981750515495249995780855621292561249544434008517998341384285228440844546869585997578222168585564264805178056833547318680001517682859930042231742602234712557356890805456215228820316110116971858232484863582832805703090014720336000877420092452771835647259900507535292984169023669031437955300531406822699328392806104326255819486925648642739539565339002737299959344507622168497222646532475510284632221046208239887594882447899784613318931643692502848345383965790355832116013475675955197612663209660337556804605312414968678209637999445208723741665017473622106565913969423134813253341939580260934170133498481027299234237201848537725365348291794562463531757982009857321988204289545406509239263233548047342694443422977079674838483107948066713285021264454777537990316672369413927011454596108832204819999908579747465095008530433385843599110964313720979996080868906417977362866575248316474819856273016787231679213659165971237319652917492573873494798882522151473672446670359000179996774441478052491295929236702010514796015026934617604453133603856941336383636414771335120573376392439970124348716644814454568489171697044983979661943539529368452845482877643896525827398587134831773753077739459601844000074221188261010875615801273114504144240933491483991542525387364957800355304016326335822816880401091404817070873056007342553067099658649948008474149380460746717269644722407422512286927849806310233671573383730359202087209345152234538496639761100540638050242468233046862545391692309871779098613681705072707581028524559465167409368314014785846538378914196514543421477662336483194018023950033450438692222810187042245509152398934759551794093196833041007337265699265833703185142078025210366263326089132532152996580897015274912075550700784722836163995629372673561113878856830307501088577101188985999729834918493616025735803212981710403679571201143679230186420005788350090420961627476258486885881549217141624442584123757867524901099046101943566535113348069983587781813135588888482315741162750995011592047567330723830338275562534855931113017633629326148400410659915488313275910596736201699609764822492331585959748432634096703890386986675084271398539550041958515407256377430659194341696126428645927073035425565859102153717198400146088056860261662811929256399671388686893652995602153653596151195977640538854181629761824054107208760683589352649716960146557338637877245056304592502192992348078670820788220220927247082619416431327508699896391351045401907024026023394317077917089245887599861765565406295693716955385918652362578511692482216242488934589341036316153192686529056517175264973444537911269290084910579549070382448377606256251836141012626833114199807666435592407683874823334191927197209909027242566201260477888924144180206130950563834943260486118182095308876753421140124171289490217920507174989636023306595120616950862600205780474398222923721310992008899151006619356425488215537173914576361951296100213798482551852646261907829842787831112350645862210153429276310603057610390344786944135262011803783471776713646450388572102137148069900138339663056237300870364914803870617811035875721994208802152847580512023631627101408123788735392729155822628809762419897539674625074945261596673432305095326543392294255063932875849490541895481978584026936134823677118785251679034913441305526833161700718645042011131114875496403622190459548650690935491058310469651305409129371942430741969492289705171462515148674578849151418495675657315228684771680186907770434965070042616213102614071263667999231759160717384127845476109412151254219120278159487711554266666510472187772677845677117772089915947242194433101487384053654039972647294814004258994381256149368927218176758433964458674554477098361003886181281864667497749315190258535163050613444546970546270967000667042719409252038767340342345552054570168634708654424849641041650066108766493760962648749694478973044110030116083730324236089766639233793570009610963580552566867327330350579968071773377434056580457658902185097866070831447470675307082365238779393823253523420595475241152247394961248597742010745669519439885088706026835842435895815643334729638690709233073708803208979811922511995423034522363713465651660976370851836087506872437661609951401638440604828688837435145909976246015652505232813757762193250311753492091243169714693972198853630543148274772758349642150634161763063900296585569503492346206223579419414328292574727265330782315000875050980583894232483828240710451656138390858834796341161621172289685062299401637830141153405720491075172349142461427610815033888333205425929575820846977218339645003590282076743628207187273620129272877680574757988563870166360654612443331076023524717789317052256434141312042247334251520357933332649751431261186520049109160674639081335577754244624310470821404795778128747036499161970862581891286419334956892029728725663701865902576604935206773860695583083634891158945147564927903265060152295090941703640846200521789213046409388385860936878910355322144705101619825998051172719489498118878017149196493144410905865570872154779559377921757854110463559177954146665574001259440173615962173798939542893624574183787296420377768409523846833020297010466721949529738502875881865079680590932401595241554906782594743845140898790988412903751994435405371850428463516341268956564997173734893506286657466278867301170595169636774251436085008702872312855038489057438992352153255976612833069225394818714265920619465905264325625634545200647735067310290705365844964827168175137074134691804785139440492062157298990186109366588797734964869797077939733622282828459121412151137658566895422799023344768955747559712761219898684832872808940476677583460323117965011461627170801149188141093245912094227704249175551248940121020696849479874284593313401761657759153618967441741772891307962378498129234567796817425748048356472260649591677616608016934430126201911809764939755468712389896179353131669419575543870994352638423136901010053402713877185405015217089984876371831505231722907952257528269861575850645847263991372205692636568283941381069795842072000094003111274516187186920150193333809021451049237520882299006314059358920293464076903232987594312167711586632566373264660425616062412279393726320736140964389808848708330133989524583288979935821725751214734899643388991164384971752427560381965067375067719628666434154217406134117710534510864697096133051664429982665592993668236479119671809945865876796512784012427401145427249643882189304992328620067196930232333797607789272719945248289903156099673636231215865468980379570045629827202083985887123896224275239461389338290966513518415371311627172294255753354038652250528783540240448076835791288027295378121356969315636727950803227784769914995039759499410761416193193922263228127903953859832740889485570402742527713857111866483936752699279168111031232257153986995546775179007243178341764502409323845227941773597480821311914241275498055403335278433050387036461255126510443185056259708830847912679771091690819660767528571592778368020214021464265238050867130463012693454083640888056979507523722308151920247559956084263120731998208194504203558256224516376853117092413931317035563125272581690288755322843547408899981990194897860187419465379097051213879351198425401230294037173858026343676926650621105095593994967887622529127870655529564860864968748346492998188303276716357421367619609963968977386832845748953375195264885614537771656926326907694414344594311282482426491992465928144540789415165395316352178180390407435704397668405379305132666706446615685586814504528081797310505953915814795278532473451226593634802069390288398692925288002648922552673278749853169051101717425189008426067388864410273055629420589153489035582736378365083413157491611278754572890097917893416153515559729234207797734034324282244925077550722904550751436229117187055012372947408043597211307539086323727382194162778218661286417235569695512271118895966400702203027573907218951478837790460836768251388372726993432822488386344810873796771396863428411328394627421075009690739238089907636190962910254368584704143958915613549600458837169172095900259539899739755760843957301597297519454951103911051612816620336635536160627276428941821974238515293501687320499968122128429147476447510211301382458586861746252487549990466915192031380853461721063503792084132305172257244641161715484364754253357606282752602699900918036071275608186986760429628636045924118861236687661333058845438185460926408779041251186176728584915719449712447390316418201824869434820355372310603757906738560490688501761840383349601968329004914572352355929579156494227456100847071010393651665105098249651371011013605049175166086517642856145129958753711368305720677266743367629072481686024787521803511824653148819127121280977978124169289899743420679080594568399520959712070658121009022812365671463317530805739760225553917427842575238054666146776149917962302569030712988927673977786319020256832262580837981371277242625098058983697343809460333101715879691207519076279982443813571374983678675232166699146070121284722305826292344186484655481631577135563173158621810243347972223108838723539042193399245333298788478932055401555413377518858042761730118578257277442932850430621180014098627325245721388389357436858006615771868494948894099288980209405759658450737310175066072566429018395928375292863870934607339901271747216242815775783905621438984669271247272257179998657285440296030020531629658212389223620255415492701209820629381667696089044483204363149748569323623859921692023376705382377538287886920627033458596333286808289194419226363124224212691327071328628363537006374381081045048639505228954309852039970021820405538395435331158874454322868244137180414219737824898708579160838020018272005847634257213982258162757436772412417434054508485105438299589671727358028480423621547608151671607672210637912128354781675956502406452145009638034667060274025102946925228308224079960494092925621662005573641858566167443411521141258345905299322049886307993972871023682560327639187717288893431992066390036310029701517714733431019509591075706820851149520271981524712501867977727160712179757543070967593698302805467583543844920502023751308533460793476777796297741596983882747140932982888133600982930800149868573723624115834069000847352440646940695120097406343260074229039943093062279751834123549626835959640023393577435077441780822385425268124307723358527625684480763120366074194480940666593666143157823004958513767316641647148055493947110726651066425571188668417754643121525166242041620764779181868243643126225508816010439506312570723704227833445098160689523761256380944147968220482972198421744043737036480689204931443425220715607660415895587691226898097506539086906703114987453017114853117556429804736461049440651387431470934474246279455427788375705065700219330542948487850639454718855763084749797245429003643020651791628135303270634717814689814605374299100974486340794227568068345217128108352379522687534155661920160239140414892504420900241129589058301245674208467007131626497695351339948302461424037679472125890233690887996606433683580394435156081143980876335280551849725329248282296793035519663438274669925551236595476052554635226445697943560453591797455610896871343215387410126829171810276732766002224557618915540306818006533221331615652816418070754611492540185251368485185352541057403468071654402636476256492451647362450063211846300499802920559045820239331982728532187441088423335404670874547349229358496155008874185376643300746072940036060111280488650043474804409453171606897356568402257455552875098789857578796736816426304819483448188011742378469108323342390884685904034148353247637864094236154611862418726669772723225954905996584631730431175521337586801966569595993829372474139349697583272420249259779481933891646799298249138154109096330188386436902043774843954733945225854696738202091100332323600449655769023452240574960325157400611856863212528345270057565300364353824596146871134341781290429108108994734686957465922026556944084585871448271993422161805402834134210758645580723610955443089919959437780477471614479396572482567784603399144407043016253147019811723721585257721912576573635756426733704510532989367166068682920374506953810657996932051362997909480160125242534041183461007665986357520703684368062817226582742073928826877623170837105650293895646870633819243228934813578064561675186185445261738682774501445749250440882321240806940069127614909643772468121860094156329803801558941647271019770184564323027761767208460029048566669593278508329582166083839743976890645210554152185702955702333546402764002228990964355871536607767806084562624610064047751860208871353190074575481071567650533253842361584048353888463106098497719379147252312364819157199728485463926278104097175342994835205860275052669574462593366901530662705245424488851814421721097786741363150740525604273142469570658084560971813672098897886327103261774664275341688846220776824515059364791387887324013267906803024127763249171374852227062361944505018238460016708992379895770726023313611619385437708658921708429169370078132923478135532731755988840610321666865574860713507112647945101173323847992520569501631211429024327574312830738746515028483761245975885699966607254723061636812342273850553574019646899653850763335374554771845507281297147862149301968042183182149110264363987751950297404442189675343433755517700905017303209066620129503946294681709168623182447263644557208581269983208583890963144442746962647374945969611940409912258898835620640180576279753875170730817400257308675545036458626102685277397768725597460533068274535084932196055105091408066720348262956191027089053870415880961454234119787666792474098012575267538232223155043971702422441357294097350933492044404160287147039018963862589189570956455950202348973416048661058275890236742550568888465695590028160970439570465484740913950715577337121078020046181321063106209519605805084496377767823897598783246257048532281069177233354969152778585026654814477028062358621015789071952400866882350832852144521972268816763765104747354069392544172266508910959407737266161851011858153886071069060212578425113695010648969491354533197166342898376183330210027162099220605751866411830154426151291257145661762010416609591757112803780537140190412934221441539101529443794281294348900963151428935996215475224873279712446790893488112719753260248246231853734663197688370924011524714262642534628008274552726483365935229290279866141453230235106879763055925421387413725133706195847622952281690737969692516166173851995433905458547215413302124587906823775758484865262232471250727369781628330713226510609429048904003903422863009276137458944917005039569528162228042015238791075716282465854936374639566553889773156847279117534410904711086377845325117519807599007560326421002813681469775661206130637874948460842406889681492864160338681028717393119617916636877024975272246277547160109853949024312026088161822243550285827200737462511244387532667573541835443019649131257034846285358599278679780654145259838702686083209209243928136934207671886260133964733456500820421639596732544893057527724510539301211057336471476732912418931965783967473572623990193376141029684290906508132630539820057951502611092892830632554215572454952149174456263922446865037858536383427896510183762238283149579065476884907793261831911787779823022195935240074313879241042065726215632401528638542338961152874690944290271598131517617859441770476982036672306398303308167116616703744000049614592482110225029425154407140375562622119463661315607334926981013199061365265708119973580707287011914237249861626823279209371021423411793549331469692809958232520061171774409053057727195718347986694721231491352809503664670824019820032314389580073152396208408540271949207974148138697936156945074813198066432214705012052677538428681324882237630420053689806333581821746811100797403409571183573242126471038506502908494089345530544779859376021890235225608168157012030067381955142399638041401198292653682122557643658977584731099190572263922628958579877382081827889932342301089511998334957307498752446654727573440472230470130938186979457985703192432410653553246530918039245147585302401616444590401443665127941886664602223755594010333594049435054581861834806574389755749499600099960618669763381158027541139437937758166590997669402156774441411643293042308156582373537388837982874991151919232894673227685517737654768076053580318559118484794275791798752194520649196993326851756120258597762497311421333102722038378803901052420636128483173967385215752191219172926864900480078018925290997712196351741726014303254668383268131474593919128627067353995625616564369049771081273468500271842145274188907073016442076515162509677763106514207069073831596152848796260770233203613788655040506669836536523180138381850170715293254876658295721148972567885741238872037695210931406314316445330196804780752599865956060819933943634432897539123460226230745897291886015228059823309878412789806100282448479963287121531710738932877493135357560298644724503419887311387436458136762166703161309671656796402509632389325983987699188501933624481962546008783980529549014064467123105251851277046544849539455386540077730085884926840814937948524519468367416986248381201069646533950078824838484092603521253994815894598299277981549311480400602927115305810280202735153510176998867979403761767309826194818019972185233302391070061033383900409688471857727963574659833765885650397520880483510697763014939194722447358288331940867995820244710249427432143864978990423440028149635344128079734493382741785226409695290052265661884802827324903871319133278267788159860707282949394278815501220669353727136326850284180829223741260053130001041314360880407905179444347873814393762144313903933337320602091672738942483340758016949859488567324524741343918886556160151612852426169625508148232054474720507282819806797316873874105491896886529886164134762592692550169183158758617930740773154480213936311297607362337616334408266284841778912432514030768986030732944928214117537369992762304578894601027201250272989944577582990962449006451384724369764004758743603071076762512368046249972368556519194759631855709081160028371642713824109026538257803773114513223993403302343832743879280423329378160088777992850185915081258797745997471017674831627426310818117277570412097660864683068240316170066469962361893285478499502041894745932089673924630082359805779182968493091938786846226465240771009748428783025919702193773346925400140458290142116418201130792130040530837943007079345324860595549917657847585075383267676725232662753975217177348500512128421787668950520052430524561597995590819915916157055103407447300249616293297713499280245017443621900763560968175176761920824766026672787144994213012839729393228072471958669540382154547230520719359393405282627696051871728589601427737578436095099748753348276394166316002034264557970613235936758466053709822580097431771125907195550917200076077342773230450553311086753671489184513620210108663258755136144864004082431074599292113163381057459697119797322799339342494322059280639952725849265430720673145660902427209745296456503287020462679330562047068006055607827850741949986490732493732466442831348065891267660615955881580866305067874629630908503154675735097516789808837805915790965728852435534261701926120066959725448818506208655433540675086583065284989888126597344980991044546620507704649712632563788818655695125170032665167827976458804468111768407319830489824002387236678850482935971323926165586617472374369878462783920934362096274657504788219666119637356754989184135181722007438584186750008434591668962393138067124192839130908967730462465840739431904904279219524500736994844419663209713994701091320528331494088211553177657509962222421340153232389079986117985417843181640283631258351400642083621631220698238254991463235880545751560380664386669521778295638217561380246852613174780267153835602009014288554957061154929811173343846131316474773710613062459638702670955015140403418882674642055093221610690703610126803155701007616323248062546903710825566512606854852932673767949680708908421153892882140167792740883643779182264717420366179293413970747015405883179574930865000390045834357702827701089645296852607134164974828962821958330862351103415788494527543895870559532068663505250881208030073963653436272431888430964484883458433915092816545931607052132263978902861574553987510251826593481326307790927705061397316459736714184299337141111340233075064300340499326157428470902757419882749307435609253583317580501250405040280740251785688601544584331744551865395778176130219209838174483257927253854518794680990364466204481871839571978407212360044225700016660846673519979800597725264529300291972877643100887458683978510782718684862208701583822453069124158679784325960002188438813240847252672440506838572470715664642286823516141656573821265858358772501547406831162874818854238580059920110600313187891005225968858431055495804232098234660719367790246888666791913874736030991746522726906470792464007674772951810404676139169855890927510672951304246510520656306997767984836853037775876490990707319667736332784094244253973664296341542719629402231902156798054726833900296900314283253954544705595960797820787406557049879679486173355417941997052413030075639235456637430247058583788470999691988147558812349920986976400246807632184567434901623769624678382750290920843174697328501134969266768653280496921975324542500646758701698854072695113267929452377445646102430695731174282519960936977973884204653360463130157081073624810152181662691154204599993234411065514356714715696385666375985624541217238890953987386835140140929589847321413895346883427895985623820463045038240400788046193846673312473190032028589903533654902653460592624802252781609960148839115620969171649893653655345696990740661450044709005392178492193331067965713553862022517144979127907664055613899640053555632978005625957298447893522189282976505230624326322288679114414448496734087434622116302393788693188598926473063983612131489640976860103674510996321104238107135807776338894964016774492037592020437709920430678217352643294480028820102244053416094350862316771588510156603870180291460235277428086277497171747860853396454666721858818097432051392081053145585453091589921472614952105105277176118490422003025309088954668986663658166804299404722523254929492065302936413686355246272442603560832781165322490228608442329421872841162833112929404760503129027626367101002927141281441615485637271189261319698465554075690550504350217620332426652968384015414548456721713834360669910881711361902887436813380091089425198336727087384450207239633796460567653542106320742894782438434966544828978538992025335712671514304619555758658944076325536254833082968384191250740630797097060797729963664946740793433988660255806506035383871345831684286588840646087603130008995468233038785645095337967565032164157879435366016816323656215857233375701257440621352269271615061424966807190512570520076928656852063565070880332064000334290303938465358567191976065184554793500241639175995971358529100885798657727231027390076327065120364515123935114594204578238198696594256878579446781219813803375166323376919048037664463204479392608377845086301902302140568309368245905519783837967818049331600834616075189693426239150223630630188178691649141285295574617282745468642627498894747468914649043367391714002180712031950173643207328225223726420205310447286867411959859555554677995037394820974177992698266329155992321827932775977566470071590319287456694251959748573081311588830066128813002111630704115650792764870524522281653926678857223885735942775259903478916571016806957101652546593194094903520162456910691215046513834374188579183955737859025290458078880445660302462854799610848818515481569209731414500894968546892078803582964549324837011465633359950571750675583747614588532749591380601933316138369260994324315194339123193457800299327617611533496468066528514366459366200152876173387517962120817610553241215820714842491780488255189449356099525875775146059232157785876408805269554531404255892396475436785912161278001773491103424199155254121577502002577153869193512271409294563170182003260987254745314918603254752301927261683604533401153187178242173847722128643175923241771332607331472946745703520764766607866051175889004515612991380275497610428624651173522087469713220731776081355745760756421133853989606934869122419366875265359477564620213855952785298717702499385595445028758226771531161047939407585397281104631182874561851429252058602704236090873480418972766317785289074464124232786236866586747573925641543685386444201349068969424901079625240697890734720183504414860142071272366840014831664773493569152749152212533903330633226065881330531727752597448578931428182844464447230502186749853560469440544792402481421980036091444765996234776063056379227498561651315955149435852881852040436001450921346220561286899541181292484326304119182345011878632307679943513205178585977471568634481261354478312522790611996204022136189873866758538252787624068976272404442027858735385444206532214573329367775300304074186707140041908474379016684784739012538201807169736176150314789763131411766966934610827242323665158622734701175839578134013130247737014691802499846166627338322271537107664154019642901617059857017590426132065878965702930811891605468673879733938628463692507555407812145329713047089320667945890595853633725325935208679453767387016958387081791601742717119327979605575178566849349585524455448886411864058994639864246755076347467131375842923959761760103258326831756441300932079591101191400109254463587862507470185914914726572051776184950548498478290234566489107545066317110377251881334726205321031518238826975219837941697972427635667191784606978404575384673800472786905742602415033636478952846001658453811059299123509290696022165288966968263886914897438998946697972496603506072784997639694933294622555486096052801663210258295660629226615501682888484410638662348588128259933552983851729817375080400990411723307851255821059134393346606405805506219374785859059132343973338958157895461341215411830023237032246747550908730620325852362069243645751677851703461037307426600514321825226177510991682646160235533757879237362858108602621681708404944460805177303185724388877280090511970813516109808130649462115226896051415852930654318878354847462507273613840524112753166913184587275006195297981938594506966732671064796212854172540792698216914582342754868749609856027228410552631584168326937644654356748179957240752001803052379328737058405496284397215634432210096946897260789270392462540123540726910207109573729871541700985731298822241640909188902610429910002824560524176120364385900901160246370180384810670687702747173063570446811422172167297493654549512942919293168385251755588867034085213357243553757623309684595770082033303357123517920271394136224299750400605879378218456137627199581388406355166043302105833554065260559272799303135951730586778735002293345457794869822646700652042842757691471652542361347829809356713815865747676130111900787180567008289982989422703398643606834934564545742469800106249475156641153099160145655596465239336142589362269658573221686315281865151772545584636794599538491221352468835903803997042993141405234880272477342412039218773351019583267237918290466028434482495193891494533505110520688298295628653766790209153526661011258310731108306522040841124435026544943585909520574734896285722883209346467781240603973452963248326599221151514051485144468543910285645139835451144904725463447219126496472366651130053398262715621018183309475468316922115960435144725619997326754275248511549524531166647535382830001614549648712709167263125123428638098497089655853246098419586696549679701863558196210512818256778000141235078074833237125192608159158127948763457239314886489864314456124298797324352480155802193711131389259541386546013766533253678171130467362498702175002606965305855977003392464818153248104303777372430707439047805860420497543572117114920902849227451340811409996394967290361581914958327473406690138768661282996675412484504830983373431645391759609952485345879678301578713907322384750960308083665240167064258129500294129042066640134181798679633165640824209468321862011157492436983915059905706142120193294944474938672484322889092160619544923977744953766226913696069698146755494101419523488455751933246714442450044019154396679235839404141065443882657752499876232694424161551416217125178530888705284757841543063533482907491252271290353147766591970185347922509380385678064652202789268535463673692261055503722582930407985692691122512943793137815435210281321686307582361072534799039892126190390758669998960139218210682192822862338462048900099612156622969194812699776171925046711461381611460302965703341515777859525241974644110990637167898980416748355983938302502815441286288390151361490134375195431335126935047482690299729224683041395858548338717734008038642795468167256768792693589708550891777039248704784317337148695076344975727723980510190002844517757594253961219843317941064679428152735177682020620298164138486343551932847645297172535702032431235244799342646317790543129904884350482901545255797438376397511829335609014855768710723279931196264455952103880066955690889120662586515161189088286046692513019248059025246375953591069572721406169488076101632932597934592621021044525019583116335703583528967055530064468999693793770816256686099582331231637603639297717823101805714297936761598152022374170172002902934333322593530153616036512006171017431701368757675724670178086736942259236568521473734397654194367892419673234200671048735186417273699251433646826954886701123756878926451375358820721330981479031713472345377829053909510069384050574085360769176287497556779139277903675474067460036447365173297174219807981774923268272542916372822057015853854607108332209250749129260656263070722063247203187889799303769075800787783091549551578289926304207481778775324195306890664596987908504603271868676405431820616698404007227232540926347986252547229083628768408868507745236721490338584278036963740487902858434459515117828963774726080170724188831658814425628010268368064168237371750951132604042319720296463525828135920776062285163827484444874256512633633661187390632730183721616685882668942960365753669496237397616883711520710809412267934609883409417142407625679239664429578134773235447667104919226142571479872607884855123867684727931101106712362208705048937266236594615501704171698879650730075667238463687044714281644821434664900419476072400009102131018399503947745337431100416830376077314365600073782673558985189141600522573249585819809666294219009313440708226650045896983328975289346085008908459310259629089760234055878871525372713586501158400612335502920778191268296853871837379011056012338244845419798959893404136446043430401875371887868320392718228063424483138997449150083894066512921111596186432996861696702285281606262553561378138325834897526775331578840194255980654609332945793092309365687270881287674992304124529297744078751464331679543141739192051534186935103599348138640074140155734156750900078864293982897376080272490189382480930297241232024492414018890871812079242424150968346603707181885579639565510692958518054534755252732575280660142970531327290661264271870937699074977506811792540868188430407238976945324752976775170490524619347226402244105213354170610070969979162836476217360034146028748909076855129869671855116189189416096115624580670776986292652671998740859120738012613358047152475395002651499321331376370044973401910378105403498891305220553934847700250116303056936058230342151062771444864983766764112830528670105257549069178296336580150905403762418806647018596311391062320099995406265503637719656743842201357804466199785672850731569207719558004264506950326703407416806488439915539168055464267300249908773826162273556559259420874435887881746949047807698513228121496214001245156340216645734879105214539885544261787465805360882100886611006958867106532482124619104097044769526546818776910582970423655291279061006710202176875844509109545646075659437313972326213749210323075897980677367010460828125777458980175247546042456629188832965383120303369952751321242090208490855508001521978283450369810944745497651565656701446119655540197788900019985576586216958228486215064749914011065555842350972870141223236556181131725757187557178752275328841544651586999112710865622452990080015357751166759780541353818887693884292452148301127881513294879829666706135989461947635470725180627509843158191690788664791990248480512380132710938749023493339819075384281588582578999593021594691515695871501353031503893461039598318203478294078723784831461468165422924031666591817732701865988887032816455610942243620064056143285748593237327658410567058007432101060552444943042498891437832209700284073337832077417832099718517365683606083481452094545685782502193895434371111813559247674359429699160120051548396575141843702564360953505600732850081175191568955184714358239254322424196122442037183247872849085687251966347701864631744911963329679244712778484234511915891826696901714056972893539593088047681051862495237792596383773880833755118351909080197189325711582607477239396311699018478869644394461939597746391867791384029633431264182845681731235364652818150044415372577393862967667424200292889614303553259458304184322438173273243077481222829354563195723880039570131639234673487598441378681725347297003652299092060684263736390160230257090537695884281547714343742017900986483357699679782274812539613704877860490416985359556095766987348101519213485307012555410668161086946814115717942098128809330976552234681083538847049720485956944193579167995844197522425930911014625053149339478831613288432331077998516919542289951107351445253945533174579695074782243592211053903872027806225838865493246061995559781365069114739922712945235652465811776651724441547133207511999292507794638471569445318181383774420080188341958458789922010275527330629140236600206532586411146115851362144382742730411010059664385124509806392233408662929843609863435937364567984139031852558305271056999073926208573671537431014222611878544602995823773643381824768941601967664867575874272660705783057062874536808796209153091743651075570715652311227374295541647994583110936085603560384872992454316444355432057744787493838788113397074454727694438299622768552815852494662449330296388075669336716686292900001976629039946298471241745122456180910045569038261241251070458836483208119373898178762007916272638424179987300462476068506813336319740478940088133134401869712115989040237619318755281674155242514406737259732043403414365876402341050679664322110459856830076004640550442403839708213447208379911371233826014961582813525252345141137776448547620313782336380144005709830575541246384134545416354362872709472771348479578843244099463324463450366338407930936273777442562851030060029221487612238813443747554085161646243911484318644760580980162352065020399613971601442850059730755361879261601771300070860229300023103578226554974591329321252371102709490384745220750157533264808130906752615784509763602496400428456898407264076074718678056670587639437891930348910720275036788303617820283185108142718301655545173586012627372824585140693408330845000418044374153001220672779746602782677283601301411534839579783825446248711340457254421753298206767634303776350427619843415709634822341124791430293594464191759918576918755830145150667766107662080308416620378182363411220119438533083979575309577944557685325888975628854344625803271966494263770678569673961193730366802108622014418839362136287776264928072845783708434166975427290689781128910119202028439261749220211691709072300156207644852959653343744718250851430484980422459370600688324869027111001916131396202939339115851210229367264605877792485263291243871367978225345964488029043846395641398099561948903721366257244787357083366734849488663791931405586966121713300302847583068725659704951561218161881757277712185381850194031731775083958093816308777458870996567647719762819061659572010122252668007238120525391063481406701559781519359144642858874685830981352026049507630918007056968263934169949248112255802333819480487463757007679609392739461579028718680842952230525512990965966642066967691311656174188210595719615280831575546157640172145023330186511425353706571183232319323221903174674520793138585693522812142358366904043868567336952170364341273826093010581728358523731358190984866367605279971428062657112933272370602290057469822965519510341374030386888716888641749706785299911217912953579783251047592338809146481649214564782745375689075655083747320451125778222984682252538451426346687953148411636189080692415703602969047283545983898196079233143045873340759201134015544966713610940140421732876773401820931843617295347082328577362837634702998338762211956957423752849725992651937577711719802690800756005962125770530313116922390151783070516813316897562852445575612463127041450876796141735669623828978260202504064971225591940517857393706618899018198370708294885757961079187673598249622529517953672450703549620189051412375468926495063473094734875995479057890516062975359988080685211438855736000821139208078620378412095505251607066599270591428507175420129718747607560774737687469396056352450927429563965803321071613137594515592545507400407882193097411684296743585259762809678720378506875638285293348713286251431137014991847345528481657553020241805669605766081741517825477807197101540912338421413206620916685238483098709968286947487675303692016868969871700090734199628593503148298247988605825622307707325041407515550985015469415767432230894384878416775159336495964597115946779606861520606287892231683737496948274737660389625962167440503427383779755966031727403023506668654569527271532298903891575064417741895019864427852629353331391671884224621950908192996058236156165031420228294079675395952369114498980692471046954766996555638898799987977207799287530099947697382017467628141290855090163597157589719083695674153189805319485225448413569968294933441916693653618168925458003240576112768329877810836231881720373917930294060983420465778259914698291615608780925950163685359471538514485026197884360179363482371000312243729258168436820502708430348525477856091421859213940433161468065811460898314624131632660283471132124441393169540455081515139965978165791436486457040537271754320398820228583798909821160149326833663600046999600838151257712948274997536842228021410358192417686936199250972036160474400227922336364084121118443686677534833916559939374999004776326316515014923877518788877299868366963384827774909093823215201011104045072872471666153907253809633348992353404382630101312866736517169523946398275063523974981898492116712352219142425789512275149259583927310472806827625630939413002304831261499835241077591367259648007890093465391206948123734531513120643524237068014939862588451676537152031541819107618964929606792930170017551298484177609859700277696805783017988343422678273772135436515751720839173232034732567323424461297735493588683893176462588169682197817987669871003020007966467549136136083998922495918044440614962840293627083952520322865486387589556523853240132283023671013671877790973804707882862099378725824447088014057772046331128165634355411169351554844560374926139900136512739714056750726612433748247913954701881761347377325796395525857874862444265878458767355229091322690508532143779220960852187805267710790641133582879166415895126292384304273289047939311901608281546911730550548984997118899530795829752266154742908017980287484428381578741366819122012355046872092789884700556001900102026214037467095635302612334995341305433115621567397432083066595598776979756823595886393951736672851409536560952686139379524335306852675060683231625051468226368787886436253610656388993335209354657666867616698278058718699547898590462610628819884987762854352933900912404475375350535880426454565725831260259881301021255937974268422560454439364369884197256661043182804157533682754698645619254516518261668385837682998115331453145355058469084905529883042480354526552008208485449514156762740305679092087211786119536321711829340426992556821391846479805495804199293269152714558243545486670265234469816750187076173687324431300935740471052911212179349670683048451501583347165312153633166524470481605039082860736479257632063417093711373638324900402028645524704349189024131068627160241316680738877138600563825077476839465744155391863574320067108530385005330115368765023813957162260633904521728405726222909523334416889608500886705725192536307638714519554821586948426342239064257845882813758193509091305287061685643178776243726970845899083510636951707771158404231275504204732788931744937771247758710966950695440417927578740359632288802469878185422131165344882742682916269257642472667926749141792173667154734796947954109278123051241463228424193470220434031934121970871179955784888604188411511743814222600112510361118273637702218975294930636783960845858696283482837891198876739204521741244162305162498810369022810952090338552523290934617193088628159455102345520801578500498085540568378480357338627205317811258817473860124497786640388834153102275840543427049666751725086955725434318814047853752433522378945311825023252496370279135770970684221829674114864255279505024684290058621886515302188884249323808729506263550138432532521463650340002442896505930190812338618057912538005557148079702599244467089914425428026424737801143308202050636979171329860464738965796643105397576486442692090586474700023966502480035077304546425577353212828911331727474147880782714226613417035194097074602798888549500234378640150173070813983809991203702161755922161816842033119825656199649042565398079502410742779976014884473979535642269059009175399719822119349306312746987904340711010567862017267147541399094498175772106910037444809768378493994469078658038413137411724112378591791810009858349974037082755906199323323652614510586104956954324626228168421239822218781973222847545057342662896118734081365932152544205338411821151699705091877838000423156146108643759152348944159887284353363389515360430025111044431164164888690863983549585961117281796601102688690055420883007002235771192334793227970919599006402413475488880191632680742520136897973664260805284224758853817744413825739771105049226233267070738649231103171845689747234536152508024406972573688366354593483489584557610800587050791699832941606540974220622492425592424257487789098313254824482102038079779559183264140128374678935668339034513309695946710860216449874726257476615860422556851929706229840722421007668397462353724398178308132118657884260979229325344821016213547501074023819185733768685209864253143729500759231573427597316224181766122570753272160661983764388583697971297424750560157261951516574916203585995390897475261733566750447562226701248241508365624050269337568021691925081895612431015689228155543975792926817352066635807011180001148665369441873169182401482729376964324143115523995798930087123832108559819033470366738436666493757269618093990086564671288390335693879688191597193928723335459105244200045513021757140802267739519630979354136821237073610616254766230598937221987049795655485440065730343405593745588503211568980117975903668600226398966196904375064215375752676114898459369173991090606191799711777127039819589506149703089970205586021379701380064770572312285725410091568740950971924665712783445272601877966151549963296602577888380821915322602601355991127841612539355960388881401304590484987506693655933085992889356162642277039217054518275108572287878442293207632333662441953269387472095343486306485223123996738750177532664082656533680152741062155085013022935729762295879182383227214209187883237020738608109680719914176322341100311096634987000022662523993586414371865361166747102102801161817325771241759669947597869411231575557427450455609525131222981384236799167312925102513071361968265641891827246372544472475449156014094152476920047639369866642780495137536784781940821907801819421652820583779516958224128476295771798711304968441001251142535134030310704811967151253341688814657644368930740627591724176283273917040964906616018421139684918928141566413882905435662617709326962895379334109442643895054062511541835480773728913802457983687587586671794937158840804613680833179190468148064117571690092548962233024542704719872515985695337697476908436225244241770003226465289844113150116553279298945739982267107911524075342122390368608534980314864015707606026875763557538039143006980626548145199638435712790329482058130206982735297401507210996042860641047503147461105766877792622886178328310716722429387760536876792418709367553908043647305415065910277205501159493168777513817525287813148652047904389094524138998342612499717252707078191040502944939626391169879427068706804096882077611543800169004465924127202834164134499843543989708701632777042303044690366970978576236457733020127657017433929214785258025402032763272491182307949094338611485041638046029233343912662182380580158766104355798614436265818532204354011791011106945417214297721819830336444237916407468410767849406004724414759046543474548350676725493447930941100675930927834432891512926315243068820465106341401373774779600567645233553825190058954493420357464925251610570805141861780720999037085565426235450970661254210875518231590003412342574949856300449997390632388492701399009518189102228170796683583048564167491215625329379971180937765967161750161792367874371640736328526994864129643480723999294637203228357889352440472069938250510777874805620882764702846385037576531119612869128525811976083163181763874927667506598959976617054156275024902976130867103961201341649587462442433589306323228674823450832195401935366147850134773412789950004609290003269930254436935338021272126766959437616390052051391309603210623052355832385896618738772116246358161746022205035534522375825362385998754964536853751952286278306807556574585229893105363860439907946600141860937419770836561908714067112028692675770982050842990772655365359214472729835096210727227604177922014035771291327211200072971839840565434115733515356810268363110656788959915738323805229126042504911982473317729645278262003985749486997215080003267454897013849368558044419844894044289913272453696602953314979291796481877870620718738715578955560661981688505536065870354705455475676006647669024820796537686291058310026984859296489622946493169790922102270065489560068502863756868452859891339895039709384793087901342658215023872774537539273248301593275578190186337944702396788026449473797663064103034954241618338966854099775861215057201218526104060076282274626956436573160106394629972798291752860076871571503420204334650857242441462484009846859224613133118341918956975700585379244199934667059144233499621957729906919867125365758864024849558842080356155281169453077223845609105923217649130033423812389691144802264895624857978549394439184775583704713714436854488492506136632547741497343205820735392653113224493614631561092841418850046092189435896775297079650791764896856792907393315249977219699090007798328597407405121775418611345155450620492947563769739464043025838704722561053360349210761754968213086402620058149514358403348727815260912797312555190569875244020610780531765451178357772940587072964776369751527690016009535616036090087043929010333255477441386265531257992421327196086426966114208872192508202904769998057853566115813749201985457646927590374257562150395077905585693406657074640389816278161679620654772402880820051276564747926666493156914668655054811953124388082827065603190404247813032407831108710201959766105782957596457092691494492480169940287174847912952104126324201187035067296306866504870891957533120101433324956368385626826580226856483172028226537267915577406062725535828635353559942075000426837227937227287073475829931154018860997212535652447754724034624461662104914885455767644631223485238260796574212966711597350912383195856846460209046081647571553416533192880117825841987633828426254197615667953655061757009126026197478709132333676080340140979762742125019866399937451631492703443569606374996425159075402063247280603211842069793871516700500397718557655555769383150382693116095916395966524485825064016953285713748757036145303776334877461947618259605801264878610324711133535833492440325675477344414834665347155802426155798158130312902750574960683447062300903496343056941363633430415760218251905667764732018868785604460679456390723633480981625312427694968589436175422027053182378681854165158285562958633824026315478878698202363161240031549487885200064437085931281853009669506211712138200857616941026126730785676364985189671184910653060981620641001292730951324928262298179562346311743316325718508204885756866546550279300274812712302035180069141635626413155656215191897881709372724055587854947400430752591373404202015842372718095378072058738767447062961512087035916862632631752804016971978717043279298291481105925158176085875143651695441931878867564976713955935584767645320438067988130598275695540845093392776826167351374870798627956938007793401753427147869191522202776140005357561908788754207426978304287927031856615940901795958415469849315913657798158824226649250744503667843774509351341676366229631109886446733632595985956644016864631976224923607670144852420571336698035560168905890682541438559502232316321621759683661270676271160757265825395526395183089773907509028070533028809128570868047787309267589946563907382192603780681625713624469784633349216099471233455465977557627393472680418220080190395885668295763806562997327180193746800241614406366751672609171760458637564360148633628112196869238037551524805870826482944629665321032922354525574245455868728935165576789600070470660143076318964204247088890611892657361675293784350197549491464472709778060064127527628429863956882967510868404424885584493252942491572655868680051694057888404762724158227864567924421811525964494283076232913435020165000322266601988533379895618793324300661240892622852793818439913842755773171474775713023382480567518026204970552692149580280527819586706967929514235301225007992289973355014313100731897986548130700592024550068176151390521434989154388812325924276783775966441849543869759100477579579189045346915374776006261216553204918907057973539655241028198383864070203085327740512211795059757414950825464221448531449814968023898853800770751393185149183921323355921484215779906132653821285303769029647788682516638469938404339982724896068039626639726898446662688873930477636385020145851317522843931519202077752013673528364525034669864598861026289837795057020543856286460236955757946272834689202253727105266708751624841950528072733887065133181951154614038662209410475106906341077339830077736391813879347619098012323670644747933229170264403247799159595894157027476541718644899042626013362219495296822265927175704238351728197887579419266106653963349901373064697978127944215832027228629001739884304623721478347785292945422233795901522260004330911338615691304435564764160332753135539591229999125351947823361600052426472117518769665318736621546532809002140801766144262068197856764275863679138882315056841128547434677081063282416479514464514673071291995285929704952218261975254288254439493591865406560898096249632523149425215483792356435215966572614837238946015331387095149588862146742610876518851412694460020106413988031548860000190938301253297010221350768224321428559291698092821916334090556848147591155820160001309561346832791474697023268413463417138171079966263749386432879968197616403439738719188873848952732200048470084793833192292962485204899224305949940692926839924095957372853148941475820794059650242151910218852358558553459058176733658460144490815779577130064499755661894226651256976021609846225006286165973842350524483422040405930764052377228311573881193937069468480529300893528450473806550117082122802581653009951726546436482108012352467921718074167912440366483411115028300034989646094941973177030110211307653846464574449848281784216435038392013927179124839925455336318405472264529065203729128222667010633566057799525650076835529143905154371048141313494994893525414141023603723634231114110726634733870948057076276836417597340660795596634759894872984210639383547375481688318813060447204608932467097901528046669725504330793701006682665019959921300172757214329532598308300576765859470560467034411496805902302962658883388080885984261835608078898134209376974758442955466820971232332797968755768223025544138147363135260854513978048727498700061813089920589645822323132097740628568394057246419095975184053380923255602945991330165809865992061674495319193416571852376289830498605318105783391128983125066811876867993867473457786310441612929070742921635533343569030717733912743539497678735823199061292886858361037938180875141710234939635942564180122973151662347543256149448150335772929080149811806210188385032019278465332911138164558558539522420672375232859898770395090049586600178034882708825325213921078038632458743884971795306326650605223884247817758662126958863145686186863723004140848280362553295098829450972493675570195655784781214006764266828986417360362700418542810706189573368221330215105265570860791422755540923916920628762007043213259995281509850676587556385514417640648488473195790770317121864085719447027414264871881750646188089620798772101966666219824764226999244728541046731853285014343964290085254415078294991477128492208336864486801658534409137041123638057213485705992375219349079585923568104821171681312488638297612668674511853899345956974371346510493246029742459078858221986895356636529282622814980404373608206717883525495701085207511997474880927461435187641222157740865058699459536810579373640327356844117639909686774770228964564261496202154123573067836609169011097735935203213965146845341171541270684017142556202523917442962209920353410736337098789995355397089750008767274835915304703053815555645861642286088331741805329187406323313846575086475370194009145035871556037854893628588375385901138639592131935228959319818705706335415177591292912173139072015193539266550129930105203151964233681024144727479987754856516659804750581683802246603995922529571986892459369250789154382547640766747610183622098704822753549072561900206245520165365693755389055996144826179171580163959844958577709410208170102550690131238986455720064210208241980118910931295672956536299854079744157915998586309521912761840870829789341666654343568279608988187821456046718212299141463384957562341741339284012912579027631479977553753393715925539810976288698623330140342763282997886207434920663742835467934627610285123172585046308490355264367949239568557164690481788174109532174482988346137382323503391701575133607556821277155560945384350372218111987532780363695071847760922850091987639833018379357074034758817235430586847309539783457616989298986859974539572130691204615272262234445940260223728651936059718508316246139692104288216930588870232825699540187187899231899648726742580300663212482005895256743422287177764941717140388563090375021353406463223594144141487441457526880378450532010859706195251867021442313825264542442316350907105363069971227696014695148894377856169063084734696567594120842303848539082690508643944422943043570642339040984007363229818559856738366160811324644854503696899559418185184077167780765324398161388941605549589900873727786605377214893514238292820393219332652904290690053911422383480507636941053512083213769338711431042311658935096734404202596127580214064832038208511838146948833190377471180028063346127376401356679724181232498001699271668580361514110033065053231146781816909694404656786191389037782056726995850746733947785457924305336288806770568694654975022034500329014560272790260342894235085530101801439710932030268122909670647983178551465675450415692858536362082553723445669822385003489814499003068806330852966746918610455189909498979451245026836943964522615893033311288408459022538854406098094876532310692226024592810605642093948508075105994121156665270597258592809534703527755787509214819471068128786353179269441488948287916600075923954614441431055812949250220787282414796072305421387094131203753379903707481597079033046134695501444844795714969006680350981053389343697272308341862971283825304942940883952623002245040729430973670236672802731106148054182156825998558701226562064520758831823680544185431666066557611861532262777130605296286729169311380647524533542352341138424012719552563042963472278459264461905526870644967239211728589845084078907020390075109755263341477067651254512617190097473526699539873111589713015792325180144060457891476388381654931675908621811865764038384050599667737397987106313608155486285825143871867975945082825667938639699407981139011134937842128603965531805038527244963897415683030955564404836184705239202047808918367736394398927256486866814221552229665296213786842447515937219288116643379090555443479226898182710874639066039627008963456144457635645034740508162032589281574852523931973657191858287706579746394140717111944157584583215137564957054804487953357376558478728172299283220357205304225601930368496906294348125911868047486300637807285952549880012886644515786846447806210246033059229225875743467454103336301452956318233475239057258367625910704399745373667173953800706804380184383319949455965028321204019304668042781876178922005265477059326273624894986230705212949135929066981590174423893464918399050311348264932100872423132701067382384669018319165887254369494072353326955687249944581486091614755476048384105877386495338189538027473952786132985858951745947905483978770521922710174199572420113824646671295538147719855095143742486143494736466842335089611533366052127378868697414018794876328099048497600123081434690338426394876761366947757598243049702523759053303746325668953361186393265847869625272655979063826386513574399011274365030584187307480332841315065253908086585981728269757477249805006058721624797966952323313985450970704486125551905736554253659957358033865088072131607809862395995225339179197649461185452661681524813542692930750193230463041291769972650576093301278429472138266493794088328244122365149038284607573370259403729613953783573697336430729163683769167050471905441992262251306061491430448954411540579838769590961195395461879087639182376864099731238209589124898641994077393932934703284129585239410462013920752230744975175281009012793712830502439586395345585844219855409370810243463210489152737861026546336992739617618075789620448895317567659009553129627130079763797198665489110333769623577045365755276758665604882612852091922600521368286999971689382456703755027079146505941497115488848544197586722409899252647024104080143819053731051856939034387322791907020163440428097568401336250641274465767984700402584492322773340137042597843364198485529419984586884903645047471943009290546762462484977369224706966074771195222242103022371294207923840236169103087986766022322856504441638796810544819709686318068003550847061940817187889344814989517374689907442829812182353096458201615197043337715868257915724649709259130203412391401876160118052679355880514877760315732870900976219400367474287453827730766213721338620876953668473113624815826131971740117987564701999715558494236776666630533506474407831210499685393917208719040446121262605980318517039176146366240112029440376190268458123248385714698546302786124139815419514547313121187553446638434533965625297843303682579529569181056711746897902061586978861392810661350699773416564950161265952984415331355925311942390564886642440623455687946279142883025930967083619412695032637616700404911289407248090461807434135084335231339360383602136810602716215658941364543688353735962061528092531342330937783577858796633129946754666288569710444999189870840712189288341655814998915123037913600970797493032993174998736515332988791229506623853724723737804948941528559591681013813461498683654448783945887431196687928536839862572670510362137982258345366984659986862259543656265954578131545605295239163194167394234472549827807499635233687003059119130229313762240819698727218791306901200594630298126082957800173336372045038872823830214558075719265074550432955293861233532754425909827922586913400248203794059349471074737174689813349622204117413594924992612381637044623683392481835769237218118582250384283962458204141057243835774518889394190402307676476120101341316953140574873506210803526642976492411038153369656578838500866888847787576466314021305163410948934627090852790225910074052503650647978714101824931458904625644210085429150528794338686665900180464978776804102735305703629805955137337816496352722331019504261916468065151907032453624094040836633776356221470669967023326119649753876309398014584584196050847201595505494887295926986771516716904874617434669655464498124064572227899204672184236339762726522706488594501114098596770035320042402401775247887047990864134130234963426868342898948067232651543898612055543638320174469169501603485548408892367105023802670663505012257586246445012428082182966220344582560144255063691896637063909373106140646514462360544846534658652607098763293860218469302372715048460904329965843893298494741679378565866210848498047064857418420418995653800100590847407061259765269103862276973957498481922991350188452204172873057422086282180201281669684619781012009556169600895378655309434927449289761131459537507617915919559292048991243618269333280396354540783638900989029834871716059867391754833852587583738729233278638579726720939469732125213339233753614773143306986862995146186293489641877603435857451716450063917370703401999238581899193994578224570747127320844003831921426294145329125334259699207923897200733416386668026037775602549493264779400272144454620671628073229661374902718190784376979800143037404049888018376035686923637034279680051202235379413006642979102397479378909118483970674999674021143602466388167197867101732722602828043471468452738854132356688600603554173697648515936598948128921912007704268514614607326463265669062696497391319489929922548058509698578682236682706340882347548821138788263121908160283652962652711863748653611296804738534492140638319678162702809518833264991843091513198236293568860761043644123556903725540272692070574609130907148962855737419681605158541707534988801917603635046427169943378107436370391723032816972071961936118380878805865813821892010122678430344479631441217721725301562007745031015222017321486208227694273539023550008157169460946824198728991499871880082831323274209038679333360108350180986507686476776799991363793114753902029783694514805551379975113094295437493702063799985270279588559252630167080379647072767694585725761124895214654161419254211852090781139562357655870673706537907021515775675652633770380079950910377348007514665879222151612484927541597922409506438121434391862111761744396935489415581005542340545661796410572386003119574815093499602291641566935301817034361177155064231827970002039703301950755333398897681662946004492474564728341406718458231169561652698118506113451399242973010222397184747342463785548442796606493303833541772606882266985094234563282785073903297674693233532273184736309385948541676501070190755742270671794889231666979780462431008694346745647745911743593272263923479942393290609157979762554428419557847692459688585511675543493054350115375369245987984754163823588777230117432401747414428563126458278762950648420714433507650939995076983773993760153751088531940849251411674736427366906420291794611978290671288236403858181995713395890863643370927647295349156952478585415611580425589643776016496961410772629631121711112172589632742713729622135779846129965621263329098474261804196949952836613266567413553656361395348767164669274853139739875347045923278309923648412850453243914583583446471748445591581677351708952665623517810008385948127457603051379824992182613490845189491229953172421882809211847602426719554185549861474685553001413666214296466986136908285315348589292397294090376236449606527580288296872154878342466366313106323279579711781502132144735109190865948499902041038158198301170400004785195643909928228798857046468342125898934773443144054685741965378518894781172185228078641014876809783358980392240327934427389751328962805637916432778755016905120747279075829550813489475003714762862749653352630730004395924761624246116833237891455301166441845049650961000219075928353569936951295418789833089183649208742602111701956375895638845023253952366543474611420094337582823495528722184348899098298770944561195145750990629253848561587286870856299708876978566090128925061163045541999501245992187019961115253725139595102697322532658016281218243106692512701043261675830895548839533061446363395000796212461543881788140860000160207728204222306019885032491343229654529171246145567742536967954803524006801822844665558433360884537357927736762789505633202008468209477607793677828181338740005980961189416468846539652466651376772415134244624281896070098054779699962533565648517985997586535972491259004823518241901972819919291460330471197374933531425581432457223362030265190608980376429698512909858380131671948376601928974984344161686146930076493816339768113647046546381466230302801383167364698856307232399048580347229256552488385531446351148927510756824114365108316396641666203742666125492991319345619922425601657700589599578595085727948344259447355687786684749304492087167737864551340258997756828429126271765277183511307554590994490080250057912128094780566340264560950206969777271951771986582790732770384599740694701369014101192275422734960483544914918297698599044605829230201780449987444450465475358421512872888837815140281993014997878928764273617279403493987884563309643596336886702906969712746868925909790689199959116711595019787477917870452484477519135622052583352063241776363429814700612869642558251414374313537942642380150770623035324114870869114405290382453868483804143889709461094026425961899576546870613303044110445856487995644858412808807034577298383387744785860097490918022395629671246739994683831842618696515643619528552545686058666919472145082390475292873256698120920896844184070249191518938747878154010531000112287100527548435769930286281517889237743256270522491146572698187232906523857779612510925338344790784683215292373777381330952829054529420822729709280446483124988530788896241001813798608385301449000736048371802679405474819014396162943401330996075425434496551862718704361300770510940098288097971083344111875613776217667132552326687625629285774303660829829462421926216342883350216167449628274962846998764910310859780800814572107913341658645404613714389221757000983280573279222977125231843315484679927571794579367081188952995525031761460087962963148177077965842212084291181610371986372904101196019440270501054846700554768878891420734375366178794924700593624795074419657370082344320209008442164681827338189581032508391381098309650215859884673585252266182887196964420530176884896406715461826823979943605394570193451789029716830357609873039468045662435392404399932700936061071733734164738897481418180272859633233481342743013676818834893700692460890519737612449751369788975205121661087451271446864458420340239271545660919424298843532482027509043123517678325628533280189783550997072190002449207321701755543878901717968149549299682777557347097634808294671838222549801587643511558283049026242695920237356318073866486799589018223788634715992314679688292863809225094623752853868251569069231929388298733871837917245197694239203899524599112858657903075542579474759386809790778440459943555434249767863344271705567676176202455056540117525435684952086685319708325783263318848023613065792569590134317875370606761892536661587440348585744268795977130882747729573880999474370570937861503166047895568863245169771618678381898434742493691521617377753195875969610618207143088324306861591743464694457544620943970887305541028303980325528657127589550950921959426313623821222094857011124171370338425024779022502628030847007913109507826269254170520658287562332992911240747535055651911473828783680245444842916863244835105043080687647676117626418638327769954294274467675934926081084138172736530488075294728693454218702771225259729064768852149772443090223493666445437348444246157663002798763112816240959242019258214564736204600310779258555241721942481082059973406057985387506850885468246806782650693851939901013956707589076680558523569471924768647782881909816902117344483656268034151289172196990029809918383573705930979914088163965607440341597477124296641387504532197694386816595789590371477889757744105835497415510356459147462733984707731664437514774448884340897498657595530892170215797009471041589530956406483840469319532213726934147470898587480532732650670371608621872941811149280327440202377168606345387899908330027417108283264419674348603475721909617207880727545657351255894011975082417102373663730993804690726823278592364286019346891058992897752837770094091913135830803583573607137526918649659300466185573172749679961685620163678860122784782455273484778043801161654766778534633504412002894018423230592936177542048127904183565780280032231527064192381882901855136248890165167562209487933839896303346456360621602404222456220450532297234356936892630282417086549636841857394057604572793183685710534099846712092769152065629487391801266457689718618293225169280405501372739023978582195133175489473793144451262997431331940956390611481696282037881966302339951592665849600642818286428580180971857253877126951894478519158758438954595879539065207825868858143350195350548376143779752769095418008159115614443897676542307611584724737466825279485092612812796306411889831443690768424700563422884000514117120952174933580767303612758399779245109498076709853584894239393967468805879716480733784727057151264273006695766221440446990722423028715897140414913601896742031573253513994889675844360228951519587130263586781704129298788121821031273519696062917975427035471664697498524996255238902172563613358985286574378282861201965292268828592891361105203272037693335841315919284120797401289313417898349436116366541009417782906899723709379539498948070491449653360604003739620214343574424141657212210269930862153749480244240703224889798541606016101906535795374544286424318425924318974645685932133684403002624125710737407444687135905994378701259404608192494365630270809488154139210503087247855305630932397649193476339966554555297997783094455518508646964817941299141013665320367719725744792005145872091318101015223499109733099836459858426637772247395017428632870287001403994791358163902757401782328642619037893132161376936615477447474069709236484721853691370945121399286371773283624183315989571967413583844910490052411503067936197869648050882628369247196883386021452869726519589579166005976969744753711949405490134059545934724871810381960846851526903757660934880952755796356916362645059321267206790834140523217818901799908105230021224230189781436797451591343427297945269198991437740518204388245438950730759513637107375771923266318406084940270179292774276151150127145662108705080836092534253525129128017734084529306544501199394635920799516686144683511436418913109866625146977754880141495998460005709173223140787544567075639674483122405281769508642191383123001876289699845782069724195689979043001907326456653754915192580348916034910074935438489841129083213907611251301203118490832034778736049346806296285573155764732255873944385208845093514631080528023151401352815540645487332427966858246289821195172980972362816920746692924298222026604261343617512134820691549048665723609944520981549254790767949956719252642319525120725246254919437858820187671216040804596918880448265474340649752946562097085315163650884139395544281260166594700406493782892375611221494955868484231494414691687251069418963623651027369334604514976525921962845647228150292852697950132626178646926224849676489471902376362639789613598680244060838290877273775205466375063755439969075050969912494679384686103350892010226471286123498628744699348139577051215282586500610250951715338025320631800876203683728548258860501026231369920935913013978896126449119872342555581915909465041064807539922681146389710025589170196250289742481436706885628941854874354258763719255697079666643279586842325245057978635070215224311252254906215989841785078251602522407006567749399834739880944168311777526953592622055973614744211296416842921218709886364643735454649217489237265246002615597209237966724307670014900136193344031801912569260348856140772076935799708117031108893121352886341359581088678128775192449667734313727330882274824948247390394947543101442743865612218139661837074425530270529365216010244057374032493697553538586975071063950715507496648251085264204131912241846686960707570521745841765775094476296732565287724511646940321577062854132874250581707774043017951695209976318859278199395384886007547568667574531543136875588142196944647411136320125212549543036031663411495433685523606935254104355607352241243248033829830002796981275563292069401731062560031571139423203720011508455185652556741026236848429604101664894469822382382001125749835220391759994631849838956751459870368239283160921891022431962837095363612897202537359190846842155425119684167867143270119928959645667367994285284628872318734132546501267833825789748078970992007384852581496311714717439269045334399871949825024930406061282478766043068708856290422179060463581269283644675075786130253638236319693790695881128941007561895243819776154199449322439140175816574840188415333804749261166432494896940161838318917990033304813666963534946032259985380658370512619637150461622288056295342535225375714024855678517908345202518084482454532632803171262541861853700211084867416049342452053903594735254520900718682205543808100067877574631944281206600365537234061937486734155782014925268290385817926999155723766208947299661520622626963735226897153882404369114298824969529931201419112026127892809181902759536192465213968310520805787913922599603317811783745121658531607158375073099711351282271286781387133533550252651131361891835623256045413214885315239105095250419662486679543976047677953430278175231923800666455258382419590116550040113172945863411123667798914709750240430415150473596240318627711714597622072447829997816443774446692684201194111550107195211652649349179300988649189288171323428600360606828717410401465757673170296510728102998081500927323789598825873308345520965970872537251893347808105685030509168739991174796902141666361057405750375566561509762752848298605011202904351161251636823387792547791536309033092428820062721603736845908505880041879111837626255224974462335420601585832385690352329930228181277066316001225330413750417231365009954680300845337702522373812398664363765038599129526522477530119935957252125338963238390821565180805875434502220285942376781877167759929197746215647340151296502442247662636840083965075038508583359577969579056164509074579411612706980554303991021845198281817831746173879098653096875148168216213199936507626605395223237277251600496978906336339234470350971335572571856504008947518372225048013289936887614065148314709613250499918158125547742819233417263152489474689949722109260927643762485202916073265166196104751500069504226585338292399382531189197607314857025269714696890850100672054596818375879984160816249228713948190024657442585275784887010538850309653531454878583137355032183933123958028675607799456159760822640984413628600137860788424374636306905970527514046139882393588198293005192172638563521366991133682695695449967496122825296626302695837240866310276129850930612095426734799493824581477044035213552554025138015891351122545129113146935796250204040567428856298766313217521779248405454866606120076560580066578213349051733451363549759768673848003866862249488950811076508034238535406399014067945390122794950483989890717799880849148809977062902233243340018488786880100477609538217332977348805804417267463762758941525137957731057745476166559687443151963054392152308682072909874839116740206380185601982511249210708528194007041207776358483017802794061494032105216365763871320407350241643572619063273410981467891589046164804919717412910486838686187578979334572064037112768414073821179217723586484930735974651407766626465971036606956775951784980137339472563073523152065862900655526034332370794857589585764619540209592182609491129475247530757117188705197053400740154466113051343692060472014827482459842713865063137976087603927417570346677841343849563280763839170125779642415423310748200625486115948791151883543086903751687079805927541403401855772334152128779335263580313590477886605261438375698728614700169084661131834176445547846464176056029697048027410068114428641824457011141445789830683211619946370714627444349632971959048702674461715880307278852240124166565703806197147986584598858184996559870591302248792414488132260135532664082735047776385267934836163744464246437322026565127522705362696867878844871783609083024982017274907666833988535049557898950794902688857762467625404275902574101715425234354069658447454074225875172179983139770131478946383379319507200882216929018130068283776655080667437556946854122524076017771713053445820742241945329309914547387740319936629871406686865847263629094702740614691129607637633622961108850371535061246855493166228594738732894929382999998904893510138435563689390699178240401429776699682656231967787052637660717374421635492220639163681243177739596416939471321603330282528650747972276295489243307488386454830446977826499894630504917488092384423311636098780060695211681022538228468773208033585007983008897544689307995454549894105717837733975114970013568175722817979712523800632305976861077680404599052914296964093176593364888191987575447654480581648351185698212172337101379027792204396204056328974214363837131348071802151753238012698244034334021305941361052838330731900914812681923410225711004661162549693120770198892859836079036598676615848637945176676216134169528140874421619384924498136714789148828441380444216906894442335822936496048045514441775180301634148750501189905330380638256020658634744025354494553239682179739548365847128416245254254147562941654064018929310279932247232508041644627208897281743367405489047085090227361141844996508951965253264314140227175711432195112194291151600461660468454961129577471803101414583709713980953398186207481286316874977468046869301006848008075579533693574001585409032338284790623897061591896112059523457356403983307899483018365300649948560117212808772667703928203826151124701683923910837575467434622315547536565542702412843318724950297947181979252187703994304430213585932947499208088548332933064279374753006876258155349578149074347203492447008799954453760530166276065133600383194916790715590626634536306127058880884391669940577737496781525602005477507649540296348608489778858502606529167181426596792728384062312610468364151525060922451031123957174252384402023795413335929593672718018576246890591315140195021316324236620045875262156203842314722913714177887153377891937263361071949325091877165736004511194175014414209598996994243131115663840201150328202698136842820204047932819776905403945928159804307690369132119186007518155356427174026900575306186687371618593665754416638582136714095926306791659037850795969140482748946941055067453046387353450468818067036252164969009487287732064624615300647344193301144449449908623081855478974591866704067529536380605396602306687856733336244569668006358373867389536159300283942262968036694658620813888071062954133531236143992212351323368508193161144846526376159544522113311225023482680053245719272624934815244465863764508734019049744435161111090330004839630940712518946001961173626950524666611782341603354658369533963848521654361747235754817684375888989649500242365215030640175131170888456575011434749503168529425131426650765886771106557723237157727579619188908593283859539508313389151321097880824808010794304575905348908829877453213427706587399070377365043696130880448668453411250719066184600065867061869070830296138153603695520458390700541147732504400378967482430791271392143999988749956236688927984289024073298371176943988132821173473292277854433104355367189184681448257468634356845976760914862205511531704732428780937463409083928887808782452922214468140821353818913638386700348019191313131784667973864083965178808376199450495540761677679345283019354804198901457720451564365329738996395454537341077932691677177367473169332456620014358561670277807913601222000834709893564439934765036787211692870619768874968376367980187563102458285953773691903081211865907297542692419969961691444144679128020004791025355978675760898829216939448568405354003458850982256965427919020064171198748873276036165199993646895294101795230288619546402523984993342892886131169648122039989125815524317805793747832570960401765111212841000533835564156037213737154306463626220015135564275358408621807978774046091446480848413055462184467126983268193520845341051256786819550042033536665266882459512033394354134756562962726324980886876929446312925976424109258615970121453181872806314796719397227066874214903195187610006378825269181176067750738858539333150864982955793403872554941472939521826595248770595070842284141732447722593823385523718070887286209327948197880718529300413966136213948526491079896315979513560334860822436080994604225613865931188158985952710501594833315153750541376547245715859049304301180282156116330669192255202514257196374192176557656797246483032133712459247333764838649403983369964974187304340918498024792843222986721491112960545466911969593435944623687624318976359055361917467320511478896684636891297191976348119346094800550990771411116008191050337742331372636207295004488401478927943644574343618275874216197729091417642393954847095984738639538353488511592712128076342439715605473136601539972660625317195876116385714335242166215188512202583410617367040296877116575202832528313423064537868032487166564861422747499836460334492478289698212877917717433932941392419543121717667097839187491381721427519093441783438793442073712434861861674855784878217782214779341565661714400080417286193661182212101940226667469913753421231099204760140544918402893748924396552882383602181632114625187106563826018854249590460735562236601988249484727743214839889421412792952786095616235372499747919830426494070739335790385719716545447920653727197047067726390764075709820911871735332872315262235663514840489690777030288545039804029564834709381953397359033763512036591506141510906118684063615652041576132010909827301978231638329324383553945875854851428818019715834041469721395137285790419818633601314131211431175139973514013086614785242657921515233010578695948203005805445865106654915084945148299328849058366680858172821564152691914791054391970389628937641889313420702655582552689479354878189381706518099891760385309675129075657527901816076356857520040370360767986468088630144580173600587384094548710075981810681144225028007136101042895188707593488562957651250954319403755456807588956299816349614919952160897154040980604060242061868187085428227371570303000832623231439405221860767743663637326743048737079768984386543096125810306573438689977883914673362568642717946573853416803372174354208488319172187496568377931068918003463855749274773686996862698841609560258902180046744942669339861679803225098644603978300921436367843878587950828477202322252929682350205020858283979592898074416190363744280777023829382674449777022812670182678706237386471129050888638300675378170981940862286194589493832119231267347277700211609382086904250878350303590452161463815928442041045440860284313781857992420457247389886733218439599507975281356215698141804212704701180215445055376673313660931624111363792899413050831495872963020661475926817754865770127989611115855866577191392640171846008036084846108254915583431838704189687417914663699098338114793133171325809877365336206997401003435899520605968684712812338829816494802879157878418173680953877119195473762619490271087765710126540103924508950959015756862435464806875763788719425300877751333268214555146375546571650640602315886031084678331373537480108139121087623372323204381186095170137989748692171434609383203010930196812199169426139048783668039271045857795787649620872050435136773590382735306368786272676382972644562526280186219453403603573031942720753559388365023127419231074728054425336355449664349502746513471178546453153455125261199413725725393917619087735191369130970284216981086759501162084909982403573501174892311124243022157494358558816312780313340563313184703108951721064126770347635550439940130992183034587019368507536995908286577806569611878957256761526448020331266277927447984909204116009134744214702433616842418551956961728657665317993698988860405961878063601086970288191992423173145151651215281949525041905156559727338730044481585483083919855578301246692149610959240576902824204776811992098085764673778689161665140524673861387800019563947122148915495658556627748064606393412079673253549377413897683766503317892746027707072574295747688763393247631882867433822670827460868375021218123891615491062634842474112538026731787177521101472524199449814385859708155856823601799890556491700538042653504215977232894935868102085708172581840661106651524026645493487800536266685647064386336871545231720670238193292676537678530931891746203439632685373833560579314006900694541358175676090326418708484942938004149336074076918041187545283967184071245514687978075975513379540807278095915417936827567734457744947953793505500976057267119273348781507585389313274543561851764813130317495512601608341772682399833570398080416315481411057247459441680728643009214778998662755164946631181460417328486682508111897235519501482391540659898084155642217739200572263423481479215405011673320445872997801012792988685926016900190556566481552334350537540106190240678984411762707171278483356829456307948050313856254624146079528901445103002536682124526005269869373340626228468191390450791202165955371703840780674393766711259369956835636692448624175374617957578515091525386846777419968043723220064494465650949550597493123189649059455736001221341559961617371378906368016162042765157552965655707793356430268527508757094773697845986110469305005593480133469134544800906355503957396026211283600021907391746841456306346091000671173817927028286479714830171528668601763954898424796122668280424552428376793058214022943851337450068758383802837014353242124828347643872017283601595682606064188854137590799941074691958408471149129659638143072320052651373007553018214636093489073370107750018321119739719946076812349195153652147817526002154643081626052761645023192193225845577948912246022958737547197665835757319621228879509781315748079800697848685108761989522180192527636069981724526664060199029004352679342939190552418297311078543451244597794894190859959065211815971527869126785075739162567869797049986572694877352994857431708628954597557273667086040762228309386039877236854894420408291869876369030813162742406557685645370878512607544286986116499637732306045788768684657504655546037276690397929396324403237252240587212722992031176311785664107990548648799092534384168363432331824637209414319521402663205589149031229594167308717311261712146138936645567499435335822245153149488792954482538063870254441457101430384056448578621332554452862829551695153558902108382554999464580493115587701282973292831621158231514110461246877302937842327861146915706182446026548922905264423879374883867644974655706739815956094204149237439751426659403610282759495580580390158850769057644176038555621921870772916587542381940738322425820459960465562079810678469227234307190316286825367205508611237042174812406479920178307204183246028899367226011264190275529836360918997046482759585915675882998102078248519169732280458397664753044682435045786169296564598468880772718906706139936906399930237989181312356924217037516947788513838539853669654100260803806527504210417929766743184075226098965749948315600054338865231283288060523236571444898430290271804231915272373686817472215428260836147344522410149871380014410188854409151118725448538648455121860086416355801775448174724169636514928801919125644646888960785591867060800285067574569135141949368539666282975764768585817622235211461977577783150708460976031447647689220971782358314458422906434237815031908729870910807991844420629974250392722671872348191386247634435251484468784068183268213340380987489598293527421478451116875725190660874686800731664084116290064169151886050418094554732611871258137399847773444184298863514091090972290487085592588074694877294909552669726774448007601279393163640626372977608469978262876264627707231134234544517979572704636753746875792678768474973047237567133386157243722207640641615494957085376049029699471148438405635736910464979713791614823873642971704232969161538440497580570172640039122999892378274478502499090051992836915219271856182360462642374607023274213254388774357142305690453877912337962926045972401044850831401976342649052584606471045309052862037304428189827574180170767183297316408912987814148638272053049798171407984745732828836795943826344596995482950085778290824649273916415648063628124644092021394183600343802015412512853947404603044086077142979572997895319455131083343023911121521440006609390494547568605404081011435011004785939671415101431789052850481735623874431046026142047457062363223139128846030560993338767527325207548482035944731720477493838136855320830487631446548539459402942632725135762383410421931275011513608750953333849950868365892292060749617390471819027819766929986411342866387298758017479862937103883330447626695175963523041217930954121913542362175661858149352816525297258581272168639016889503300147124886776705115404310726814391091046031773212882158897960652793847378427189050753636143900180815015269190584232258374404782005872085882835641843605397414546803301248347143412507564308360892822326514547311575849736232594205219455561833904009149387259721129165733368233329551091401824722367915973440054010045280211730575194553457508914325481246367090481164761979247597375816732532686372000397585710431268609879403845615504438950491597340720384593358951619300283062613581319770035078211955879391468261197403124637962682747268407897856912324593601431590160097745826059691149660770378667105063718083887800446425419405050918209319904839305267303062611843303976045560322056167245416096757542506454257124268677326212778140326569600579806903824860163752596745081903929049429813903141472244509588572978214712239458724028942480769493761991329495492928721117532702800338039467418420558670774439460266934951391327098385794517763704276175565971633575789356483502570738495270834871307866422286549282335248453584822797260785327446495207512232223925718981766475283974174986597198412533643516153275697747380742971301851113838203984498380573062075262273908946490786622534471426586818982248135893884040216358066121401545771523305085731694358138685895935748015358341888445327355196119106439157485231052186524856544240077772759929100662492800270140949494883682389073939769647293440933753662855325114821419222719555858966494737519306856805222700093013349620134319528859560271947819403611074718565401137106580588216426280856745282784634293227819946261926290271191556175983913483054214084891832685476588980592748154317367465061142534703002384069380729269345612984573569296283248918475546466107402870665748638730968883350629548445173236486190374470883822036552989545815550018453703696329927014345214599793471822412278808692398200054443941619490536555152106252855523882206182157387526097365353506554097083807778106418281963853241611178087014301733577340952190419576802570848731899444555424763620201626971956333610822275311222885287460374868436365077878957112635694212919982134789340128171349956559562553073978038149875465171510603437698416649372467771749059891842313680767139050847694068540943514912940169807156257646697661754618466321309766499311596053532753429813396527895744654436187915302204753499125706217828017158461784182468464364919796626071428355553886274102819343892418774240643040497658170642952044433624395767721795029332803234382361904309707118107640549410245679007126685642388428838492883539593170491041888254034166363354098864335935115902718064749182933721693263445156048892513609432232529361713578666565839141963706895888612210337595256639751965590156984456143814368355739332954299977491062437815564417199412437071073166045030334612530738442986250808494300943243104847345914275876578851329601539321655452132238559694374430783617052662358987332671303393759888082240052946799929284501871681419256056164122452292315064733961830301703841829613133769123728713639446515255348371819222570675939283792608981738733212027066634799199676511493120718088652959056259431495606661175779883479834600348484646371781463793314625456834594970001589476274056679939170334140122719833320576878090393124173546485320923000713562239646962820619226920115914593496166442264442452395063337008356067386881326487548696815753002751592963340606332033451049160010606898066895733384792039786069527450472735002974341086643293036835733451299279798878194525240544990694098084067406132970931466917140426015503854857382866962455315630455313014179163728864051337627317933627667520312602567704950733057212733638259752045496163061889892901269321202702847265602384241135053582543492805255613172244273803572487412840721818726389345254064920588826758720546214565109556459400610232067901979963082518046409803047910400338295526667595788860772708798463855612127265936442884164567849955933639650653963113987992049835356937668834805909893800441264272188266704858500466144774170007500643102800772751113318326529918623965596070119274204448998024347938495740834871503268462846735654230303815334912713733338398084502265502620177907777753412294279468364779256461950991242987179814494913550468019819998264333459519952956793452589740421347595282961678327701636195025312414293083801895766302393357160211037449401920249996466657771236641384111128910532917097081994225433297668220104538201380900488295258627842444952089399485577872532758924835408172985139928404430977775184831905173100007376562723338029775631432484408339001850231674206241181741270092422060391370420156881947862404990470775341813876053562784780081955666049599690759116900669663905699552958902801850982609937992458010339611361834845892893907755809670726317338836350144753792126903111759774058091973775416377983307418330153851611082377806997537849750636672430645812465891236609422287116359088295460893616771959428268904856821251998470213596733539400881746389263713120470076115608141255526687539289825388017321848028979456082598270956894654297471837269527429503564712028513875679185688133467122664272893888399106064755352947615911392105402345689269722873276508066883158822992143840699320533917661117925302175216908124988335333982190256489813399802127579539090553262230696535083536789179121461913129560790166759267871336817345311606398087341035538077377597787109642899750916278705189725606641117936400370085518434079582280878701936530103615107467893593179969506414964096808487528792362407968523343997972839000111922407829655234800906021015414361140458953521594659568200485377160063679479667752374430474291399905831284190249801642423311898940929419866184951060898604515812377435440850692628004260971192113513043334545168580431002792851748125120478484838354372012319467337534877290738082545474002628206895013529121284482596557459616371582011912062177638374589707784018405429794037679726143301043448597229900970464769997611697340795768875812134457108674784064297827089941140741725871412766017882667411317301982612529640931848837378893317738089419878463032769395702464596807885516159675710118915562252263475098451299978726629171603595859435676587219287612834180171817870711270677729819959937683434525651485370325457241667215596643446634459283563238145584268861327666745289325521334605654813694644970187593716599384506401422815977095801748875303027502144497114681563279498751164798124937250017940952844591424587813840286954781180216217933510262388779772559792840984494302562816209117124849386636355789216153998636900497211612194387571835471472947452976180540836995835146608682125940333207945534173679907103767213549784593702571745942992907871999423280239071575778300415426353233115824313043900998056204330093087985721413216040721108655026655123190793881684208194390820001846896137843674181324227761445820956988815245566231092999172091350747944210587993454443421984715616471595764848930645235561636364248788558717012996503690041404512266297252092408871822317000891155619472643379362133068500483391953107593791287539267384182173114366832111971812136478953990690133545328353024002498641042106572145730140570150957704293757348056970358085292634804962828173322457364328668394189305797233334507449983617455230759978404061888757292681667435141396729016953284296052674280541167136465049915976735704395011012281376273159898806691639632874575099170472173528083402491634703120022824185158382758359199531696230945351747442707299981494510524540984038249893964938873644470901566483264968024555981764221204693958174689755791251262172117014829609631821613567468051057088499488460097704125862639270695802412587680963162012468927998031423975767688327740181786718303891976485203670181651830699886307624450186742703525722178489483998576243987699450056652175824951397373413518909091037950030171853586113789654385436617758657186887214191368563112811667081186614460258441057100353758449267586780143497906740933272644955411494887326757211081487872577524687730489809172284264380218570728461601011742046680930722386715209336585694962286841225324008901392755509338838132155931818137697835276022284022974966972863369591742435042884868126417069867180104828577459361291430685874344657859776454023976639059221901491967541069423952699289812199982364739278640868518662308115239640063076849522804656718631400686519518627971190300315492668567162178248161843267379781665785696783048095713441670645028570318375497435419927318782190045640747655228296323125761851294441746841884888205715685754856322752721970858461273565689785309138143907928261404381042132579594857709699548974964194510195447005641948943216563953987528610660232931553055328493121624634658258140985976246325008299221776357265873169243736553522619863043730394194560398646308318545831942394447657404405292368337287969568040768878374158669716399595491700886137684388544866665928227495080814813254259350873827692073754063400111581423062474114276055194723475156275256233058890873375972267102385377723399349290386590677195463320952279501276529741429561629460981738171205050105059510427406243223703053044576048390068419724299786075866438682188724892861403721847574596947438328156066415509693806375195679033935906435840831768420611783467130604501565294290391466378678174633430664267240921879556880037896030544994395527064416485003180960195374937147792379760267059181444521366932999301699783840776457063577522883360558040879322336796924687407031300489558601821226403500176430004809193672114677860621101110323254219293914765080741705286897689503761907936049290176154297384779655869847843171961748716699571033434228051399318532969280976779636191030256421630229147429596283975440439622857838164245087319696580239375915476489409077200832277198567757683557981329620678361958005400966747362429202534525326725531007505360325182195772956565271939876927977656061466735437362641671735988385652889984170408241033540800096498780990321436512278674943982972051531935681368259397163842697445634194329146721587431849778999003480515500851243017083372567185680436013889098702506952065597551804215524023862035562914000586419041611461073003825265038872404446811419074549278455066821341055474045796328903639306833900626187204374358921775392820632414446379778022701055965702042493139745668309786549655240332350358694302475543917902823820028731410270074949792767722779623362826045283574458919098551293194784662859731610421555691206918805679184370893279766986633696944723981673102949795331141889518712864688791922100498229064316325864149731443010888482402634228015949790255276310300404887754394879181711839207329595294372959648151544364674372530520654341821489779481836113649168672955315796410470860484265196917777482660251874955783614120075879617923040847971269757990959701846867904035055453043284627181998811054558207894391210718501314725051557264443343050067059837741130447305088215515966500437877994281788988932741856210498491207191030119880985923633549045929292355031830616073256729065862116101715372772906106089138717973736091354702806209285755919330314237545752891121527944020873523987841066237315281778860910164076631080429347352357382703997520804479883753508901104352871408613204031999198804880256301753705952837249230573795577169688988427285294115957518204895894786412073007257477312090173638997471560940442999138617154172711727462058258978356383933391251041311739208248374357509581510014128274468557968032078630204544824483626152825983294628123316608450089430776923426971320327593369881445493409442573005189727019502956789109468475996213170143661114415097679082666478710835309069334764107746395571506712312615491304216204863579136776860942015472470244558015476488427977823678494391230109121991724355176492388327004526697485525028549378606550687885465224833387635474291904330610223580418003617444590213624437520798381437151890087897426062153009820315257887058515458983883256134911911284584546616936862428076424933621497584458228951899964467248810703662390677930109790227912705137946447030649840324538221721153434015286210574702362505937547077648150337298356741165737026007968941821642125289223678508267206418748183785861535161017572165581057771934239532327310246280465647848792266546537395029490738465996231893906549543219911590438509007165458679146270867825502121926374532773381501978186129731732302797683487064601961574475337337449911951314156899947847389603607043009688702661841760463490653023653779846263955054842378596933108881385288029853855330981947011304819012819501020485334628816127855740179366287580640732995912070033875153419009858401730411430064115951654570400224042136271172560397944574669638490603833764457164873059464446457554649491985515684694150491913582603845714912352391788180488663534787535483793907568283893465102619892275620273232733944186069417526803364022782379108730798062749078928391448988249332347721291265123240103855906895528427590833185861473232765691243813675942059241244120174301416336021571148746893334273723081469834285540551728794880784608208594307106668163028819486339041786973893847240649806473699729141120035743219305879123785224653082080131651384042511208631507152753713797467608774396611782722615584960077047924319364937245509368115634694027540861995807605943116216529027913274465644311840606390013451855983763900862965192767134897618898535269007727404366310040199586024561712289540342828458932523933352497904167930314824047364133560565482987792356493334583525770496265223296985428464050008454076015975846517824770284932660558610523988147562299081888571568195581629761178772303087962454692639508021584542237445993424533737093074122638437407698071449419768701132483659984330413833950913906802198128586558565675666209005561201323985289495633876615913744856669465123207877110943937930491060225454856612583323768470566869333037783338921874423923605984295476161086636043414108980137346258595330405543411128993374302596021189034136700180941306639928963034242999634502511336237834564344967352768258472378898242249474671283447349378229211281494375641396682462474025250254049601635027386630930892523819263725338997829202462927855468311065141865536284462591361646786864800884153055016728550910794513941992744412709143183313691678156820754373830121598524742065790037236947608039715486860400591229822524152615169983046098644226749444522790587994286586603148385904379142522577041485734655243216298267067188009033093905990340220664845036237143303598928742918191558903279366533824587226831773443738426426078824476796007045922342134825242145461235939475489505352052237380270738638608277554509075833068409508586149451441129232704529878405157134929080326694796080406438924463053026335975947014022990651024057961630996911283157997254351076050708992223697742002546294627253141107149215002222082293247593797307844283915768411110929183216016547134860328837557285206207957864400077770080198164483950218880168755316025498216375445813691318800457120889172801456067375897025094874252495164485959637805965069969423665693550046821535121816405520812013816673315021631812018107526834822838559324385978911863812733790961010243108032360344968250987355376849096100342557249164808999121662602504918997742268631299613515809684550981640783888268881421799390571569192752496776449559083506882754239072176620037709940154544582301362166724920350421657721988877270458313869788175826528856512822766496934018444341075154778735672936497015015291666640698536862008274499629658272625306774806255242497861820986210378878736003234264780315404955434973517368897863588559409971031458086683155900361290875092745338064148519386833250487381740480103559952944437746195206883759306036600559955273516173667121249641129258451627879001846852462942540988030495671506784965088272274885498215705643477007264522484573531675432201935231877204842137993064435644799992385363891704033628383191521597905794681690411944416705728018585438724130574007474603173377606187536346552889795940545630290426288389859687882130418323786766318577990390013905700691876076228983909709272199623692410888074782946135694564878246520689256784850658316800062528752390764093487754649217314817944497643304696664725212610811923742553573497003372901521148773669765313866006862812608246834922329559125151408377944298682232152604985582285366285808764462775331210331983085671503619396929866295448849459066973726425028737669904630034112448101854839221684832080424464660844963968244635480510123471667035149036126563932210856279160037774390083498226563200873627668517578644181613394541460351281702333654882488856568272716241610322096002940750018076545736670846005451743096299797599421360729642837782467652779976856690029388395873645159624209336334771043972458011234155506967826038268225355963625605155861125524494852695164682058624137604834021006230347679671632032074893887983019357413396251417217392387868848515532923272188645029729870611975607067148460749452466555677766217023952957645244834432051191311783537008307340835463079626999129342691263576505789753933706602308002797099533953903066237139998943082800422054723937696031450356830271361681305272784646107150707967143929368390543427556738135208236077277767577420134401800953281778621287329750926633631015038543848680746131160331505193304598547273017946871614510180929847238585461029134371328190142186445572781476047663134694396629852425850347614919749200685369527950502496834370148968188372034748592598718715603961271500898207442147687601494586030667171235513360802492750062296805706242157039793318966538251946972369486992088207309523711766293776123367309378605241142251987660261081138269278301593832848537332832139403978222510545756064963864975981782782760150320537476777271891689778313773078912324421447747246111215754664628986015047367346955970577709896935046891251618650339540803019320191603808817544578780520462326690082808134358092506449962141983186216178543118997173393713012051010021941465624101027495365361532467864920037485784689007856679580433323106749497328757130983538625337861667948611025065594050419015277730805622459541447466940043706951840478009882911111683248670166083117984660510095679967484937555483312602236990057231321774754568124185886597644145137413734000979726227526456350562412871204245299462493312754040490213605249912258942404415015919032329408952377304258196200446665473690455706854891717682447644754438740161344174201457779526599562985099110543522697575883692174353399341303588517682861118682390604536056505151511589954415068469877252862347016966189321441998288954952728732036132277375289803038077528156804120484540385143071121592845322088747155890057665997287598884754482483838604615114707196202706188982375649116272458858040643245497801798655442035672077502938444319681512265810255134850586572187277361579586799543401298876337003580423656368340301913050551277736289880567147503492923239788263223130493987538400159096407512490545851388861287437299015392277303250320921440485528859969173462627480538755262538809908971258676414403269402800605746643379772323345554347670562492400940448824751592953321762716712334086945439345563147403219642404146076876457076328541826844891496356735391919518599683524160184511017656644155023485217438986201690797941317818988877687367797506309876978065010972814120695633267556936377799218421714688472762196877498365002312638972620881275226505248857337454520553821596988660802724776100921034060569431093532319275968713740584303615959736905380139520296040124611112018331059452933499882438525474278595478072121375964649884043960288254668837316581504889695777192027745679350483975370417129622105560469962083142005011209381064831634384285241443395916831073703675497199516592940336548193771345269713046673053229744763548169446834778383873411185932271889967100520312097634143352140594728712315743617069363839718443836898194665150440827811206593378996816918198254199980062753189930987103102062555027081627721412978986292058006054760937250909256183483755325767739986193223672942315309180829463144203721177790132849773913069460316057800298540751124007855198154231102190531554583893193712133155142053262598609777088601229482509182603028297777028459482886313277233203921357357935708912992092859836735326283893536367115836759758849059170037609208968266255255388068776930751011923769750295468996185971279519869817184930414351365890300930511454927995467396008742379920143975984623098522399668900820229521120187655154815485257026677936693844330665618120054261891532417724008346493736523039249602310765087334961526030725786212135779311810265956332107933075428300323948972683086465077201417455428827450415512598327603245219508972305989079853670659540680938774326242308208914076573002074830348442095137605821851425005808538971482685388581099453214962563384158501068836380042874997539092381031558230400778267734776304800208108952670701256363173179291226729501634938419208840218975453552517541451757737180843353657614592042389471124058762401392337771671645297014315525374108132346245417702739745528188626072270217918282991204800801278762307430314751408772994618060455544264238405016788528221315445466643072779754695813972418372992568445363034812756195920774440312201696362791808343796501777062164275613296919568848245904672914238084324157366193706470203254816606118507213769820751326903075192703364737059429857581370295921669880779917594544164255030050773809036786928878314026599573550909435737593944184581402540451669571641890933465461678709334239599522000673893881512877742054295517625198298903656124698705799104126234568456589737349782166335465992394983356892700858967564612740697531344655711757664320364819994360447053135846950760454912413710979179372795819850490617379452469557946883003117137388206165613297701890606804565468200350592306064022380821308488967907016371180668316791173359627551588133258777105209371992809487181375166823050571619812853576953264264693225385601368382747047533785083446767580345327060551573278041520367727285967535094491423048254810866781098304243498102072816715481378336814610374928612359208983651978683197595677796652828888825520099941765052750792086673509629904379642756472071564553713900949542839414589903259431970259882562918062139352725191289481985046299232833313035423278111846498197166062693934008213464232376488808872681940910156240613565574241577886734790448161112676420069547174955119686040614004907753156626404662314082371429781458737687189846390812479099081390055845547701724914337237969067170558514817197532736904075974683309775175997747444764763656689618859049897631789170422066386961783928943602424232275941429684709567691809294151029708913113790245397489073217329375081729024971894261590128048564887980837437722298360584348332573793326699105495288559272627589144611430127508905176640701906297168504966936451855520812714916375508612657047540606672465507239190967423608637619017378612107486449456735672542331610668104354482852266421494491260799333128623612133208872497156896731570204000939471282260405705427124277405247021882801978244121392733005510791380426505781732346338288369233860592642249289832700389213431032498284350118800151650125059719497977008577529999823507571223416849940742971615188923277096798756029184414702908080489383794577207986113000920035829851796723074250156740282923839280590138015578333857372832526138335673310216123762343488963454725263596367957221297378040295197011582622398293714999076620400472908120777693122168107122126398181845758816463769792829861118416842344265436209011122055922643534002994069724696260220721752331089665599212350071310591387430400553508578584951479026548401968516071597774188974504498359233648378250036857417291153052633063257126381928279563866172290506660627356060073013438429966481826152791698522598326270402274750859638333474757860113738248919687769334413432792927395060772778334193146871214527645778917343181101630981254122767173340807024535685252985025000334102814224627665882429383710399237326930987998987584050263397570866376560000446331233044554038566299924002825522365595301839678360888792775758068703168496241575283999648538033112729649556459829636477397246828952960095587542430592949662256528997483220524791148663659695467627786368169584473551833174739947240660349182541554434590752288286267613965743023285328661142755302012964688764821708418962625490388507988257841350125756344180524418481873515761714801490337669940304118546240257952402316520332705085060626755774273713979698529647516857972820604606010084928307406695181628982663145613236149549858913642950856715015989870655911903399510948036946871591300505206433928584047653523044657887645296876552115583668640552217063883651984717582555973522851584387604257645939432247469083147052574300667378858823121305621240470561937090465820406684988328825134808383039272800263504370075552787542804372954353431750748448576818760156510574838987650285298676614712902035178132380272241159799971503716023345766802221806078842756636110581867369007542581169045190882158524056723972845564746877043934245882095401308742422602150680722531702652522874587009465411386108947858330920722101139662635892462579141608230457326690196392207939404376145582423699562660324563940798243143700640723531401478335316140265103399369166869198395462514018708649521022709213580387949822725504328443760620626686593221822971345327246778852772830623901961814465281241394110832967975095923814192187875388485968797356006220745154375523284862448308151186198379964595484935119695987420168179733526331408741948784377095648655827547120439691482334740188686287837699415461990631210962150061908705384370026150376336752454672083980383720683214919320910045800406099095960686268216480593238719604606342310056068353899865692287389962400320952105291518846173983841412834262981871240119371749143212045691540782534025414278924905488994161315170424437717820619884690489693955345475385930185718909578734333842695220888112751785763412103684523488635433761796962268043607370275156824428689315171262930032657425319620548858564099541805835036875437022893024957354829471419136859771884192988927082024324401074630646749621952847577690658736496584635124817443842106383817278770874504951176556749008766466514474340160309120602213686821978959317136348237402643762750251783756434150472776273472948896619537276415471821184098057086047713631905573904141426918700966213381662379963977708322325906599421330435563160936776361758697681862377611745318857550888592677014465112087101626384616467136448677734560189258184639647062470469402092481362205056703511418090526889322595446244621006570353506096075363605506337089022317693559672100359995702272471646728865915622892951173398425049330623968681167128543059001437400973658831711365170712496807451948328838022519610600517176253955126384736177371264857081678779912712315690799907943686267147095649002806586837046331844712856208225572850985428890286702561092715208795906070905677503080141844568941569514153493532081125421038862079726514751221888038280261768440539472016778809222947969421514337880661888866539537200539791869443178117460108710012293896721613932047913941938679936246111579942081652191530231375112390524874829662583670875455135973702660742633968649754312127529717785671411013047177244266381159296527934760481251349903131629872746010996144243706372884996858497204149973309322229109008223408853850561610457375491327678335888431771609470299374603480351937139555994181274484239715760418224879214191051674139621269700495060333610580228712770271328670654175727115605437850486579072867555692145182001756783010994824107805197107448430051472609850613811394738920224674581066623556319782820080612865373147371480825904613702971219009253505802842856207910651984945033989697350728107073937855179719483579131742667635405341843818133192013584010445222684249292877495942031670370866396790349194130966890108588170804075528115778109860806209740527278920778652391425142920976640233216238760861717831816947218310671869608875521728111630884708265034113835199167192521872127807497447107746251907546326985980329375899520155013165425024922537273292983783182172923164978222151858568411983845196599054521883208035725611755913867123354134785283519442898529441310658943863559009640415829177627902070147775966884867105224981951485347521711497819543264453069063300797469742192169926155516989956570841277944269451778096780053518761302814062708024897962372386532429329426110286765044415962939873783581920473023104924043705168157283258716407944364906829357627249603807014123657308578776534250360659145311678751176264679667383713925038049972558240944787560996592814869682551077716468504069401598772437798054588537215551251075661671074347915345562085461996416665488346348945128327418165547723422626498168441842500004839373279186510427475287459929271032529999140114339103027525695312557599892098098834717239563993307334548868816983210593440747932661971872156980513233896118267566477233651881616606829961276007116736475685361529405530378451906498200690705658487805636299127965719253344911869504498730130536471855783658349898401308135912664917072140451572106695544649039642385745375052413189440905062398848263650860104555828753572965537958854081888698704582581764190967712666155839897332600236537290324553806404234002627203629662598651080619742696414416327807676413500646744280676041976791178250805835562930923033339481595131777515963306522241611671455890474942174751538285245729825856793822180258831602849065948656106245043323057782232671924531175924626168467950983651387889495632344372394578093463922607356655080820978780051347896636541111993650836579700324509284824507924418739860541697500796893509349320526876725498747280510825920248655220441817975713960015119007102485439450719610103269519409099479515251382380309422448970361083622507060500879094608779407536549556369169328191310294696458360165311885885059682023592428106092572610660317735491118445536173293026642615039888573090191938735706281614849135442028341263119168446254410586728127026659277499597258198868928165250107672277220490374699706662860957327731895934152474721659309868887325992154099458583475496616085744156401349097169351933328308813675673767142687902208154680794508362122481880348280576621833876982621253702594955715481452338553769989276745624436507290962499766631776180953049089094616064811457963613547311072512454026897118137358452699872987659836048420635552078632156718623000490558382329158738618929720651791638941942701688905419724971533096872457364016586236588034110501063065960037681063251047693076703634695301591589931074941476446527561025061707290328668464622622155112276419729925064085081444591248970898739853083233363886595644512220431269789149803339128378234991344896749727983143749303855215657560693400034260834260067618749351739657456131560847017209896305323164721325892228335881972192434667708951695507618921486343652817408511912372812617727917475352859356394771079321854382463008892618972859874909831801784456919529571989309774427388827681671434770993995171763616761565703102252565353841746838735854346843593944738117810996622194348041200836448320906036837546881693865773001575930138852102355543869961110015699515805958862365633673063930029797966096727538072005487023757023172264001010542432708886387069075218907054324897095988095687981364353381957993634362883763884829864424771497954038511390028177776196146131292911438894965547813914468611858220272460320172654467321700789563248480197239063104668339506136897169637037369884359072898483022544167189155516583053626689840070023665303622182223043062054468533364254692139958632365584026306653289216172735105110877697229512125773152963680826501480969210303407075316468138993437146203432953144486272424592858057876625424756055151871763386451254566085255681189740775120554311907931867844103895189291084703317089006645415821840437921046687365843490520133001877708197000421524555515340939686531981269858031945501558344678037101387093509604888565030706086052993348680823121666359878929419483408971477838606963785858087320995387842018013240865919882498843663306734083634893457887528895207887321526550265670512170431153146276328783121346083860880489147871063370046853503516860255523520668613970153051133434771821013246159180060864701992429341668331195863653285586972622169591046781969067433320781718153449381979749219084427815708264774246960523098355062300252987991771293741600633536353034970508122800802230056919466463046260727864895726598309518767485721215859372750185941419213235092465119715388604243872924852000685696867346627805840792611006341803727985507875883635293767805517755245988357459485284938210356613575162591310439194937789499047575224911057592551303237628790855418749637696731903698890086408143884775975500375610290430981995509370385646537561327607432458546276244691869965028299716750195349319907439509583668917213957015927153282837284833763195496634971060537146097219846733582641798338839235493703413842358818937823854920261140863027786937041250232221084984259922481494145173402841689762096606478396040533277521928361989287494744422660848523985638884088061475171442074188256305466342250118170496786547414924109662074685636949931421457676908750302153120930364703923305781297754138258367290508988465215634805160688193179367009307767130105714356847315864094333498122328423784388174410308421912603074404536711819138572170562103024095048331420762676150549775939975153117393686564831225253182378224651389945262344329625410712349401587811312355867533390057660606239704185647267364495113286095148171925811574296890753257151983137491767663083882088254465158089656856154578579097142351702501366628683286287849879006717220178297579521218338404915428756057840930597776911942104910454799839950422981414601474333045403061758324416614136243964909681457604907586629994707740814329144317917931324240846158402936189148050952675867089115442348741707280619774271771697272162307932029283720099924170946173013198859603539618770333446898177148392214751286725986792709856975927097932074388608107343054339083302889092601126796489241028890097315329189855184044108957263572967318902802348617578283006061677147386904562373568744210812660846475598526682360206271754191810722201348827532664336710991840747647322453437959216157930063632107344559476158811806630915037798588617791996367122607098064300423852769518443226229357765539657683937110026124973271350758888812277499566023264772189937606715095122422126001594752068142732032513137981970729160433861237352939794710038427750861379913725026497244315115410373873047176419989752689726013946184580067721324380769874010678089202427312469634960462311428100405615742515163354799230754015228562361704591766256581476421537431931187284851744414444141868193779901090682346432585143376766097130063480852463086408854190155819534677441290079908711009022132358109552784995307456935748700992023882594002830458948376036270836153991247365889714943180340166513729884423839371494449060481233726003095783582913351154957856504852917923242364767471125654757365874597034316683578563837887465143447959208875360721293184244754168674364594773580065409256804953779738807272891758970114157110148301329519565365513532060135221410585116130467557084662998366739930475047921296589694495147260330774346717371496588182297464774793545700662370308634771660831558728731391974139609324655155786534227585077679132975258625115204068972512589415802414615079324535024566085387619449179134296693841890695411035455093052129191459458133843600515099648769217360051840326991480818114637944488183806232331246949108155172252167908092750967846069136532633198878078702009558275561896650243668174839145904147514247713748518541706074459431217234304865869839765342638538234085933524920097543894193391492267876025524187691207450839811662404416479684867431767630304405816524321612731113273546411313651617527830491477701017184609611340503028312192889924820554141772606782190335547952219192937384465888895047301671187630186776406167186317136119476027467086703044129667130109273905429000793089803141899907828366095296615478672975281580564490669798022667623906049577789559571368190454317160762467659129349540993359079028457598000186838484468631899356399337366346772493439105157345256098446634301312755045214135349028036849157554189591147539616530939638614206934784463797981786266549735002980427834507129677883483456708171179632473187842246346697120153164062813559924345542768374050250819436471643355274272971730860864802914978102459552504666361874887639034667620365974408398252792346859006593031536681240842421400201299514514640489104663366309372117882243153412882613770675103370189198970060776963785001327221396994047916345185316248494068231300670292477270194345564230637391601145422762496758415095803812437988317044259058128967243715804235056206134874897338128882794850775045594242201039440113407275936994394450124778660289960834271308237725958264116646109140186726124348104115974896282425472948875008959395787021960641276409483092953863627462809097172863654321691961537999643747108638043184282322535949604035049481643185120627582146853675020706473503464458427358544327159002506721320071382965638567443442239670459227514260265598919356027349861522333433893416378119316219578226288116543000030325440144550960997597228023490916039541984600157342763877107897893680763615299775679337074817408841874954531450101477700632589674154085206001816383004926476282403500115234441345229347831088868710654160420458961725473813673569006452604827927974547186070257117049220273597536909950756648897960766554796582172132230166533399050125003992779227582091184123547624755345083827700710461931986299509100880903687198651553542044431302025210884902630837676609980173287215420225621957756174976769738423123345942286336172593160358251741022650657265034250724543677307471093620016733676197814991593375133467131326394903183451779793126979976096927040900488816355156192174861014575032959329098735075002505167782105928639671865136504381561276736465625110276897318371648694355085329540508744769282426554181063952547522218926495334560091492617341520421515568630465142005036039679582362835873944368944765706802643293709760310990075332459441025927576904363610043045009101686659435305249877926069375801565155671890091968272588799942731368620447980981982709977392030251113008263253989351677192893617091094187167732846561694626489296793799180691084463039850878228142227228212490152256975912090092386682246144871607734146334083576933668298653067009231718812743161324133171182341753279744770410455410706987985000756483800817603476171669157686849263333225173519483642771391087744759521546595244886428501233792141537208515140690943026671628055890657502104876481799770393927678247314900091401928141212937804800613923502217392451039383243295151118722859719644418460720231276055821505198363644974331378494309079628383549574180250834756484740978933261458873834399306037268859441721820878534969822596412024495881379881774683011644329337109405788003969977167092887630918869951010751379270648571584225856838636873641602594734300980317166947191108618210521967539770835460476841415814691789873140394311466652500796511389030793057995308006515583950838403135197205383531175917363655477138850698314508621743159533607592219679916590837443249828920739824930280389891801928685664690074214374941718148890166993444280794509970266589782768572702097384146074360220164809744493542417788839056852283735212686134038912577283382639239021537027683817393086586497851853347128449961912988153832912381745518992127301870842063831398959417381485358450005375301561916095575708299590906853813680938518315976402259657372947659017574588429161513095822083135584464744113477431134362743822517106160077036217100028324040767806228038337547145171307321927464592844314633589006028374542269551850816305234248868980340069447693459319161358133522205228377935714354769635134285126018215815617398512274453397939367118606544712281740712461445423273456641047039806130966019124869313046879240739660035959391942816157044143943822439402836904486337319309236359438717894409568707223741553379913040492517283023897054417274533782653739451801660284359499599039516149978523596167068768991578014443425953547791410087238926850051362898551867096551940204806601684661299812529154676442364922557885074384568897639901554391216237185405626936181273496905138131889956817411161049464824181738737941677656144870600872065146747094230966606122760984684593018041992774330848888429163112565964953932976722429952641155525753951601069995374786533178354031860429910999172757236202363476883967756704018887385770698984501697847992435574926839225706750888720397612218517619314342241147777833216642587444864567642713676232980573058893582134323664665832228640273544976494536264018411178604712198895238280775310556845117944274264697147862460936874654622958123941991649895567085017896187909538314059718138612268221657731851616321166526520258957306517874452731777922142685782282909961045206232489636671153231300219039460355299520013012118392330950215687019571004718192315738818109730720841769130119758488723245626322148658768273268075670312552521676855591703933585169840743117383839834878749736026189974144724631857287458901520330581555155224293596988987183710802507405305809947188305876893130956667198847707812088943140261986646320585902954625973226942459904936994383956765812727860250244147278638468920123921593869474548487734577894236388693440761491624363693615432581066280792926901708209969936869193930215280274833630027864126172971592733817901344910755846110238641408027491932016996665954012046578494747148111083189998580669433505181586604002897315428585150520163135594407829809687694692660901963816058662357088561074898838479300852030322377968903866057487048280609872793869559140445205309355159726799175516213863086024420655135847448423639166923395293513135126251573536694718009338424901063210317232332281990286680240376503738632407174902672591154236938677103098297949170933210005316284205321314797823697286766919471636897561860646698284778259891251779475026916979305490284303996250731029584573875640908097718723928871517974158413623169942678752220226373313310968867063403475742225666564457094827496550065704405649408290210462055690137664268656736134668148801993442446418665533303284005616262405661863139930597245819239170150107671834081998477313700900412942541586784911496272196763975540677650327855856286725663930145035168112796881945181013688630029953823709136423382737685256982380215441612541011961408424607463675195173236201403112715099971251104245390214617832522886151779239599515791063432040640054442293970265542029690430066197748661850933600749806967068594452234833334043101288561522917357357290526517683524861796764869723413929475305404768045907328946532155729525715246276372353012743884631654638590366107807805050095944204477862206991797496892667876161223336829625512886284455531901996432806333353824526723202405609790198513687867799920223652849054743590689604057658637527330535046498528006803533555155450214548187718444375427162991943422522126200338317491412563225345534456128472076594046833262243850515673055864508926624218514663139808374555017246043345990391752786278143441202962956796232631593995278262999499157006171631465036497537555720565339583262352381852317212545318085255578018812940806042042936799100072187085555888394286163572754084012129820110030731116551580720509521352434808182649156437552810716522726250342560166071122610704675263175465208771615226315318373235481668697286958892401466370707882943761536948618658767852127772256773936210895989863553957737534838199955686066521627918521677690187885280838865156570453969432793673707169857376061927081773887540473664421746679451803444762325237763193405799940869017311622018024192653536200030754318145425215259982421143039512913007679727823081141962934821717293946428535620264486026898710021481399987879767811521024002021295749850797499283166723821019865486381157697868587127699104900003148981010864283781964470884858062563170006245709091715829010216751421773489798011731300685349807138720522089506934414581839525565942697389526692459700151139849222399466359662951794366885851021695997135212737018854946583698966525824280724735998113699300825934595591671180637439809178555336413980363025924818268657751393376586079407846689661955576642193610372714660321730894325583223234636146176438040164394398131103927402794406545159072711745913241795729222569381218460532417641846895074834073930533092967057451067734341822438309088383441485100981716388151808731839523532902004423972699671491401935861295720811534756674317740878908035871072532011838873996928350616753870695764988195235236143413386781592584422930762748011948570701526456855103676750346378616896515018524317366708903000745419711684886015652104699715133087541198408298806268912561041993389755315772956891515455652080078637964867282925412206409387417472769776293686517567817787246139440550873959715709084878606393409174861046483546163321679550529510356093223223937875309233139536310229716410091226167413727119725516507680660989322939743924873087716313323455367333476789888975551736778836336064191273409084711757291454874377583617523687230338546723351871730682576512165534385898770189305411730101311492744086125883360156447672893003712647600698722026910058066927958795154378470609940382626763542392708763899301093921349518831069665058166582928205503285575991174404499247532488592459866421719023144227213390309792545797927722631341974157695514607633653419825102247959365824002648873721990097888076031563760347164254284044938467170838835856451134759009227058078231671101250039424500795466014786042437548882588557084342466195000734084246118265776835124350144682345566873546975373275236528821530472123792998156082747949945578879236970124586036137727106249399708722634989352103735189436952967697620952827043726293138622394759851832068841218438793334726376537742810417557135844081582939014414870571018743522049904322170355283020767271201432487537667990720378224286522570271062677062252100472957870255746189335590001293162970248103720163563738558351586900729627961252051014965388275641059645300763594941688762362478493632598322316925292229430115994364404948346540834801565936187691626279952293887573906587583900367345170172930853011579097980208266758776551926823946053191172933722846310811092484379800703481556794855028565022874628656328274309397507126876592118119515254173721085497808442525938624556674594592909328454713683912074768145613316699619842690513373492212367384651090818906932204237619120100042503200824732612096112527221224376846512527107830846485861807333654458047199927607350327060980468022548832179608508311854795255390075659451496822421536129154193306209999414588149747737765955772151868362000413419124792811290877436791766836987940642782931108033899580751649175579126539207808969550063885237544623811868240597630633176167523102993099144159102811426987880626280576306125002085225088647750634339862948376698405952932954722752974194989045525451686184211635292037847445156514241111004958693493620751365584292586793203876663300235576949880731695017177127531324317521742206398194554639175347891834407888797662199153442524098286255632693972672244189608002699898624488910070263486110057361482518875975785457786834219907479193213450061316370177262275358824745631018592130263578177808885170352851884026527513141307365118516963525164336435043833546124667153881148098181047489380124600609409099281451772870098471210115485384071801393261338605833751833315422251587577292003767740473447735590474783347291956990517524656284737008575433650135147391944418919920794755083741134255686091285587908327009211686659902564347487593830586515758136925788850044385166478586889647645588995990948746541673319985325463807764299879556391879269192886963714931685223157177827459102102850930534531712866591669382272126634578115613484023243873523904665141197372070722480129279539638166680436013051253859660676174801340602535156905564355698131060077795453922592757089236967309791867855376347119261733672782841700443396002300135762507151340273971014309459457453164948462613817379902669781269032832150283728436131699176828596257513199228552968932403907691114115704175071518049517572972452791578097202384939688810567955708911808835960989362277398587535032380188216024179313231077486482711025825970252443165122828176468627451035757406409953172624725357503366312647414166097697147251001785935570287761586853285429691833939123420233491234469874264495073096445136286550335457992057258199325861567438410792758264986945178464139318491134380804786165818285403581269381207764901660405083171067421985024551692099282441338735045244416143841743708815274239368492904601508448157676641197528594079199216281998437864627145639689177758577115949256409744519369180400565348288645008037519764690025471141278353394243095357551271789670895151907250443242809641830490207260032208559096406033425430032316142075124715633553143631991674015623412973364136569614314943868685932695185638458922767139299513271279516003339161705133025256469878745068784230165922313928315792250205268780291690787542930856353280655444638976971871426479710284400031532208196650915564065426387088311149285234572244311229284772227935217911134942340976015335203099440673524956091884289077467046977187869021221915427681703037509595870686141258511356606222696117136811164048698172995171739064756045454438337353589418344365388924708793933710247588392204941587677234805170305271533452577406423432372874849982773125324795974550780017314238113063327987145765848686873127231651729411904941714731418032057000070165921061449773066415348856454705306957265957387935847504936197312267260424880384620022376485150498675683213863964306025824099638606814618836472360820960245895921072696957550248126060946118892486032157233200184420273591884934177087341820516143674966245609626935044629391206312868407281060486939619095805915517741257163529163837464191848469504183117650134155794624427466042906069188988597151418520441982163751758047920706691474926075727738985943401264651381753744717101467738935028808025466790938008596747513981344643679101944506583328403201078964295545074679877760946533606930872155629583392799632576501702555689831779710513917017029412178046792656555507194946417757251179754712169202065633068170048069852313186763700128637798151957781777783522283992245709374085712206694080600901475670014683777476252984252819839981235084619109573107753101348030828516286838963067420731931676612515942324366524801046866881054617246362426057782467889178547006021778117428406918890074809761664386469574193603583310565790197581374156650748257542663566554199265237950281479608646922261833902223785586202052884939236264426519017924092813114906235073464053693412118117992732500860996866139985341885827859060019421799019825176075072973249283305843328127908621563499680950026340111192155718929480085805808720159451282204738305481052862890918004368020521799390766043940364174284550065402077232160169699934296635786856581300484994452487996313323255596619963369358808964170994356159238628820484101050411202098182439151314998719875524283930987077831686035254725123482907535127453563854185941782757498188130192438011337066750648665926575452191992099713314955712579390635582096469628839523863986777116113166388296977633184722941360707203930736798253665138478434761699673063701095965708029213979993368648142321753154006853778744328044079009921850780459834097643229708718536304620463260692273022261284787263469570616651866596354527124290124583889803125203814457751379241078520336988752575479941015352936487233629993150185959801317721719275393836440096374445676330450154771638109140493060038831014369748606077348863167618297817439190882102182373404583319138120755879916026276070520356183505275199216710843302071914699674853874690801876083164000417994003002316661835219909194244548477225074774324026806201731236468803750147615470441033698784916068003715692758675051200890820682637496732250227270267169383960635648839651860288942415413170184432704274640270133944109603651908806914683485433579284489593663901269786614312191243239476558280624041098177238206691069478261279120031836106784724770299525984098545222237859205234195526888096249413213058186112886124079921660804442220671066750903205204497884807387442644839631912239634109212402397005452693512786459612369324337794463316536848323637602467287841042098997238992095843750155942316821790303485519046458660298712124377640594424853538489479194523360285582125185749284398024683484351420996497558933794614272462644915120091256740660919554761945018780972468592176276509160922409495125598404955925388366027007012718583513677215874939913714786786234313875505740234621348219325116795489955086981211018151325377903219599623735078220109322331492324550363725843370748942870649696695865365465754931226875688448691575942048091155791607834743332808181961374338285400325984229384761731567727026379849564519701810481718904411694397956901977461172679829676107817722202234774100133132104087953019516635558486074915015525051568225979759496526805534063231623231926198503457278131178380746788404312119141717224517286736733072382738246703124148906404416768624985052499615079059837846573835353083411663470113429293488033828369961946773773018893296941817882212706784582694538913079647993862589430494670760456194989864001827015780033247202285614144217062292631024165826605091822050902404023764401119902605405830089863508121089585528052339303451953696373361725511949295859617450527047373361024750115196251307814073756782966696115090028588704343476672537453050483298832664005252254729711975796279871441317001138087141286644324376722537674049162526919714268610432699387945316199431016725525548736359308133692178078797975734304314910933027854140165251648259752510040353642679761635609678086780776754911164128247929614100136066196285419073257564966274317460239375387965050322202519975515286210394998974857195566513012277140724368349438774287265780511575089150302287666617474303943645968412865451330167496957527763929770296411775069909510226634598709114096225765163325076732105948959693537345254544564361293875015016847091283682364612549351068726567042557766286314508715455973014896681343369190558675471385032964923653210073480944761292406326804977248053008587339695739905793623488884491431800253097767551054027982361700516907016196264135682012630800037573940300756867436257436354770628049089292048079597191420845416081925986437760277676201526029945121633946853568029034363652005245881389861924488453339955543534487053892179951719231309009263412970765214911047894945861799140477586175486546603295583618585618241972717673653557111315193320900094070576956132044677680770778222912567889949540182429908683180875222664119052784225033298758882666271043889387770302413346175703367617132847326407629022516677247961261441584118185663058314532770222911085992081351821812198293908241376007719306950785700284623190047724037302141922445873540402082405794611447469772273254519533055723061436051272725706166705411436525015002172831148408604788806350830174171641342752202237276347570173223800713393777833341180529715825869389248108450310709704576807544952675352901103316849562357359347879711304734829713127893151430318930215251880210182585679638545536720667952539933519305604945290794170887231982367484726479267387042576724635124572323513302538862244650986763917338091575657463167945818337909955866462845678312070503542614007768417835391544525879524421780661020813250628519500590594860467401353677433048508692868468645766372292002213979888543291514654294253758815135664458067442426648221851952999408207381572677042542318342275002578139088413575889249549825251646931577285831077977235233836869033909180279931572073770867399439240542167515365851268201363844877781160035026744653466789742401641622888168091048448061171701518652859532055203562456026972451858450048098332412133634728495019219350836381819487952143386413267493066789082279584755391889334185263084243832684005946672431738415381337562799859986803684251663172778307842949973201601316757503034620128479378317647782730328851702430794299983221818893116601085359936726205661108207871494643133507829099029717231077903385721810150787966830272425745238910208849585945680592665107430975042612361843555809378304880816163531433267594149056689656176100130223986053056788008449712787360616634279683094366517485534666165849959990654111454578433142336554260827795424385543921977150740026202129504540822512499626734395137149898199714316188555717813166667287063550181022653662641741735099262379367860487662828558456229050354809339609375681655897175960336763847885117895822228355617626591459746073400384274918687433934628834409062813025766008911969076824724622360860785429038831806992786153190098326474043196080874440461794699638224412807150670805005689173774913118483913162191603591355426608024115782216616147276715536118975104070245602988096832788064239790059517170164163918579586163217401457701748065710336831248463567338412509770712412644577405127687206415862590248923544791737728032462273107195340538994405614423293755047247422169839945732070005159971751028269958299403170766908438091505282451847974268545333660797314698313861252502813664485133366863609646415001698999768583378266036454356178705382262672186912072646201573342116536718180083775584051561228287473185275550117989940937421536099145481785805961001932025628375826763981138903779444602951682527138271748473599648121998739109032778291459070527755573355690721756194672328578907275194182222767583490193903250487478488200110612577029366684947690107724159042205022714582947087933776359446374891888475006496137990666300485161658567565849223427097900466784834983247638718292522243083495364307866013099344266381080853691204006527096194338298299805562657367892642264067644792658482103933915983775625637523222145337497427934674511349581689421034195997205228841031146721166830580022638742303577147104564303168548933018793468654538252712271384632188196597722435943764821218583915776249307578497429335788228214364591122869101927962371020452005202702267921502156805360589264415457073113779505592604941786661749096076345107160102450829631647951637111135590986553870162807270524322567695180654139055203898234499990040187422304297012154850911175362973618014243311538925485370116261985846333619055927702741092836631726925169024585263788069253850773043915489006592103710481186787614890605094833276630992211333489462874205387909895537698249444829138010697258534212324657516240211443051724926737778090580561745840952562256433598508482014941246631240480556070273015278535286722224006644208647161338028128495594229703031829853814101063253591490591561241998857766699926021299268366850709930836281150180702995098080312612850172289383523705492463651266384844415677705089736567323331204841310125887615526631743977744429114706544373740469944827711088106258363484092859461233332181931705781404521951504897474212484048872722662654782993626994398547283466396331062146704101926007929067638672621191461198303706346629985585221243275783207764750715061959197498536002548197498698129289185420284178561714629263900798933068770888562591556533973997154229354211652106920994660210074786581007469660927301108075706104264581046342206265486019716534828840384580831321844855649341463198025951179761540044212735690047524993497858445710768087669105304889703750989859256248129387835912830929023531350155726424554391445297470924091784139236911990929625337195481818802356691323631476328787309777533827510516929940266089580792804280398317945000142349320776741346414896980234368926568410489485992514349807671085210772343471253798438807217122495439671956411302592911555719473093883306740187476761825365244015820617630645982952248828907200380990036813107043449603024996563822761493556394746670905671120403760807051967512254530089837080253878153552325197343236372951327787508768243079261420253899497130448990351709539004750587534293955587793707018671632858766619245703635120096211706270134424848101840823793650157665264266355865967343505785637937242072324008397293557948694327849564472873155070706294337132276913868786450778619499503785654473924956485088365815982617998035931859670805601010197037275176850325616047572962336080525997168738988625800370944842554633268261969782085907454749632242726465562449586920328294403689447024677218885044327803073238227813406083463634153388717800357725129196728818917939885991741641877691186528007011414553340950626307893978983489712159255220749863896302350179910062971318906456175909279535366757463487545908747366816434255987199240085681729868543971761086717095667658355322439837420401821386599431516692950544791453279933507377094854828030250082152031152113030021631160551418411354286967216200642831993113506041547645931499319383415451489634170933848122422261736175527620054354862707026069097344870179427039338933992233128845452468278457645349719027951173251246415722075838612735283015218732173357980766851804915803183406217874911710811855754785936927016694844707156653880646971804513154703716806488107302939392031261165071279569513588880504056937490557639434134467451890756037106349886061089046120203448625964606437207699408639925872212078596799092160523807551390999563891554991429060025003252835601144962778875526814855099403168471784324712075653424583725868210170984347678778011669239390024208256779416678142484382522426575004428456246304820730829797410459113487505013633526584449746549439578532472159100017286775406334927992131998251540344774401630028641684747788189241176442031724828441508659771193596968485342826914363747077990578041157331016208050895486568408202726818770809695992840482495211192328518684517018465897889089842030135458024722935908523221138596182581361894685688650111670732646888153500044091895744914822832236577742153004936581305936406672709027817971305888001520063319915015298831652939440430801383237772807674302043021495944279243856419572645021681108189427311802675152968501110256378278575416514415556514421035736957339409872630581134448842240624415549911335308791576006754752954271868603622513322864263088487600685127396845786441386986711342110581962486813017277876119716048989008455072662898550208413701513070144202825539438779472955612281140206437532927471282865321097592221092400528318037083748954552421746764909992713064555280029750461198169974501670147264323868718029464088131385002402000248039907038335566694992166665896644289919838089510638690281709576872270207201095252531822946239698837738226448434759015137136299945051533277110656925541188647344451021012868785793963996264862745654966895849395139454633897222341301273796898331630298748384901429923328723431610683239029381636457594277272496459168404232838369701134646166523444090504941775372306447282803617809084523203866280334099600269435824015485230745481744249695826394066695306569637746780930875588217173329717802311649343734231248765327957976672936924183807637237818557267242544568382469452147005907947587072669614584711917733409360423485131760663148617034454563198829988371908887035310308714241661105218683263254453088700016219729498475765751942880772714669449016110067848397439154632454241936976769914237617442611610674947193494094288686424964529450788822839084345427545873268279502957927079322236984684887956098894437312715548069514616105516010835843325189076751484030402919323488432966216708374913782460417901261978901935955711951503914083197972852198178433060131532335258254919131135386542644921449743734196627238663008605752799305017835826398392273362107593342014337546307721188761673213196719817262634995739139806607886610510718617987114632993594526186383191308105542623756035244815493264097644937900760680149897828846727198787741533639894994093357656015321306152885831764156289257900284505805962396142346240787635677561903977778167276956858995045716032077640267959534098981823709976513898179915057700259953505093203956727954898012565217584649972101139860416228233758222945913272218489211565591085034643750431011183480126943211854725211527280113968980091695761638536872442346271130952138063401898556301215906793683888021329615679364050816434161182631660422047120318813592972351755100434069959612502569803968688260025153541180854792073575402353300560142256438025040418157425954869382286725734658696234244637181137496901294203007740759336880006372291073635558943511118549391324542005924260653418404966505112426635545574950912110019304202828360887742489442180688777671084172720143513853355886347165851346892311519455106391153234481582841049939734285058250783554043777749708408296493013833516329204486077832643452478180371121815708776427107834371511380766307061836848456264675983946732022748539136535625312349243946255640521918949133043939829185262854374854078802051699194433119661695961708133808866271342358919204283244481232764932247811871815717873802590162468226034407360417288850889658109942210327877727778329240324920258739325316912276252018456016252572844134336562831229346606516847577282995293237031942320547810211922720554864815189826356816479838798285078123653966504240495999411981522313361818975184942544336401247294161782771436508685990733029945254174894157419180697252555160225351526461880046064511324262292324284130710649552763714138890424469108668938579633871695060707375691585747585701400878693927614016479479207063790955748753841939611454438579999610224546501668995026657375443475218405261263179829719762769214984862446246586058453857958022967224403541710799425138513812429637933190355649995676885490021331482452483160946951773620196086066650759999723040302681458905907648210105152733578834751060438343198217928345160785167270502916992834293961762455782982275064566322038910440392382435101328000920835503595723910542107362480806569193832257443710355980398385468972852213018147470424724795255046982547532171888485106625467198228779827930974103763707833297774364710593469500972930828430264110500475865801101528936816709841645723311872890423813226672821622874910446004354325291310589030225358104891996112100589791809280617137651393646978278472982467218218569937075154920378398428739864221103017337240229553026799098246818817112080121199102597153116315125953007253859537472025080205133686571464261011382362715910252328731782780707464182454477417058919088932715192992181209644068054253650175847176254768569218049860328390521011408534943102694698727949394069468414831289152414305478099498220852036847502475285781197843716093650749435127993126975791144265827916793074870339913563225606774705124723984604213435866072154623047402596376459355946541087474800142575558772352279584097064083192375027825520153678470696744167330076815641188247128424258631135022003710108793684116815710669537714950116437724923292948767770847373382926406199249927808352180326138796886188047741332294446860599600756522231538377933870048086807165202163416320302901644560521113336822455770808264006598252626794797341665970335768745335970117673268209882055125590807551778014704599639572595690729065842955432742812258659066695358243549574258993799052843417065609562180265582989107462282996114678284484246607134774915209341071768689217016103978863128227279866680636114764642494531252638870366630457208836847421200077447813109379873373550617449339826627806170548774294447460891981981468639706411715876737315892429916397840139359445512567370101690055671962307384758455419772242544394042734173613984965759608900776768091652715177047491475533159336410038757774575107265130450839591585196568958838587706335295970075199230953314935221358286543614165694950137959673655523218376285311778194311158188356599197766375798745572439123619468814025522278568701746474976039138687961699182969287333774517467032416951439253904461896439208895778977513180417907805939330728274149282169381425383149894694279220321552912575281957222850497656596052200239446378261696926767572549497741843129195762381412018001410662081387254282259510973386747516066435286783748131311005705158854762037989972887183158497383551009557488073277959280990715734290438633450440995463755202060928221481647218513283330253956674444309722752201753972863151705053451700706013048096486860032601566472247427000330633130920015476156181622107028585011089610866240698140643386714144439790987227731532327462560544795866217286007214535206901553914766172124544489522981685800264344434409039920224319116136264670486451125396684898518952655157863211783186174621732002482541895818311575690821019541084631779478799498508225145272406255568313594923140396347537742249472236624191458534161628762815704529657539373996037505528518177445087498122152198112028949751198629547212129636855809945617253655071103457218765462887057590198685406270308185786131277734446514557428083247226755434087623080226749011584320903321557146709191950406659758012703531281156806374226552935794788745616249402090727707807526293195348172145984470966637224146455310108250858461903786276579275970441930892501968456922345397708111586140873360264846370862016620663303957800314211495368369631707981785924150806525383170212372048010285961699081001998794272870682225244174142328331192470632013475542814225771000055744356368624641169731206405374435324123813507849124737563707358840199219399500557931225420193532678872174492147684980990480471241855264086920110048715485267669810409343947782328796311851401986165280492706667347279631097337621065252505449987264947914051338820781859868746779361468850252119215695284946673781761681044038123257120662224490195303690130979298072593338615293408130735760880305196560458306947272152263302772934749132795057472113843708781793079335038854959919990930852355133143205254446605268286782336743627598816605622096251290288563972837798530357408984408555246750462947526993960195318663028207838292652781059612080991879089689260002955480435356538344325964756333416294196673431403084682823451321697729189833021925734961277526594441825450373181760480931206139632487246929342871187843166747252016111021130234194237454629510013255012196803155392188542574031265653803897113473652285186222863187077522348040323833973060906987951439984393197104385546363283326016633578392765272042752072718181627925893888156882741399650294278930340770918119826253275192185141071649983539952090422137985290520248182637405438228992587407332687824270459133884685041804510183348072222097993929837403590557370327906410828530639840484287944547339272989500240308331906726223915090306676902012674998874617796674027172418517519543904499903462631737041751424304952382478466042779983118259043755213679631700438813594395351439326432214385090248036379022974033025856069926091769174114904670871598769500246241019604821778674749626117710596081216271847579690412522881002846110676884339689908513650171063371611957285532725617876780130271882114618930296628345931837762847230902849724180775665855412344056217431740508474689188208349473448745028522460669240428301055254601473477177139739800530753395674923661593439225185146461912395463181079833682531642409570749834481403552911117298837095666048582300257724794462597486536573870550913895459810200905690967456203000183070952676624859284534152594628506680556662667539815977007362530784327807393435908125602765262935404037531591966089113634266212024740965272828391894950956050902225931523585095640971543458076726068345277978088388471106852964513008364305383247635783836216241501282958144040033127050502664742177852145779527012681474159156924578518197445657708344741276032555448960394841328471378657846133166971784959848640510716247900636003458827028672370821483037273213331725095634933462554638080983743235736454056244690628517961481268335211636061379177698276892090661178643680510956853366074255218662980270692739123417879148834340204160986718928604246689583627890135551860716834975863823119426224743550934062279477760116440169971060027313309706134425243687590940762603952882043136985009299329168908471867400952958720710555268982869492810256779350879306958435822864862541656048762519878883665196798940829157157520140626872399531144100492920147728723833791368046315373737014874762404834589202464415616307422889712120486028959129433770311072715574794140719432134475274717975848419649586203922689769436866950425957789201546414678830808705777802336615996062836257435727102977374505133116274703870968180079092496905599711667008767935588330416842513167308524921612218341786676771048040638062555209213064814018344854555498492260565714060275759447870898424877849029856393010429321164021966050568590234874590119219525676375889350671355572083375390358085507495203576475954483896796361111174659510451184811097630325814954103993818133648644996602480303554622157041242451761043372610193426858218882672292096571751681243318046644519393301914582872875725885156082362878738423088027436165430822678168139632104585188050251218565333467347235984714232681753605502265981311790545078652497166674790111483218967592416455265201732905833829543119053525339060728786500797447903233745899321359047005717354292991184247526724554835143582198586148571911291294642829662067110664280077193701016636436472321463031825345220790756185480691292516773644240883967585704856088040631936987471963199181577306613464338781827093940201159662695964285511525588867617970149526392245925617871433515736538036794533563113515928831679366117133167306030479043148227724087855623810549156406290159517934943979669738946706570699846724446611372081446485597668409574255762570211974593407973102511402008321506987853847240645490856293726426061638444096296463508930091435126049070641845222118821211555524269989188470272116592702122649079354483145276987549998946059221622199324295219647575579843585587640375210225360654535553042947635838996960818038696841767879141122504233416582629300093925329681560851799471523578234479473074261216811681538822764466075268735636246584306357175028826607150944316505894066571840408123407038711682836333457749489685152244610352511902203513843327234998298726296469091211275500425322126410775914984322918563841712462936233306609969787132371068158285364460499807251964516066212355899609080953786797198698658401122887009953230192549128239692144373755695757416854470615650707740421779641857160640625926071068030802803050648602194507872635448602569030874036652505045706073477156334479603438567729985925149286828761324261080506440676790449063075921892878130303722922674313723973771530819261541379314841949672227186700565213008482510059489719913215097031300060488489285852188117305477120831681128322972138909843321374296761406439637608336872075550553989136011607405842633635179810137547089830477255933990782101600084242756153149058088394911056612672893987138916883131177743992268673528741017357956693590871219382023947733051154591196603576392289888501106161605348715926828273679640301973757465301573106371977436085080404081898649447505091327152976196856839068638839741050265739761656640542542204349200583244026040642428057303486704767674288590199191325651198602659143294830686434011910035795190065634914862419758102843631313434137275548401692204027454001722483484797397552104932150856157966736137415471603764310599408035785721434529513455872074213986954399177927708021001269365872815527171153665947591415255545027559736089331744276139656065393950829370769417274649820469632551164463730529510186041040329560944338492157944539871659899807536542624502064363599221201047704516298281868704676399284935249119509515816421014231634608492104174679281432130851248672798743854970778812400991556124335861408839722340056373161185775970612055510710027827527396035152086052204684254729622451457669419300679092103254725226352590633005155787845131818458705508662246818857650523657513113688476618224994395520390767497949271612543040596929439201727770613488869083928524451460458203493632325187673883173719861871421515435713932330560254271213863833288754595169611974345628680692822020951661775361405243655228409253095930705951795955606125344007030141318880122104956141207753824260559096716105044901215102795367549246201904333634057017967040726466736040391424213312309449854457566449815609221201165280127670398406659843576958670066841079654074344030335409226237091551859040140778195015141302206925051597790423970779133709669807000632293131331904785935123383942819590266541857367599125755890176958859112114290279541804908304281311556973855445130317950228695675377676141564134510532381087577195493595710563822325360236012515509110776306498215305838227735638686736774920460684619468345355015130541295156420668319770202222664466221244802152699310058404707418313052973425975532561087243943362359504836393152703211918993418250875488358966680271352044189370177229167668671748868296810570221402556763520194684221943282006302708148312985667908589669765456225249451272816999497021467721359609255774374313991163155502025309037925621302012676514159640645308403472921445741603373870663175373616464597754226415490193849160972514841879603553812211509898192710036287386609156607241213608849711652567836530671595122849608423851040370927520871694108165882998600672916143071696447898476990075880714049427348995189321263072460623627963165213314408158181887177973387679499516288547659397877068547313802889189261148139388164703031117585889146788543221430969157825006777946579189084092538928573091386818807871564210341929329648647027654206040368805952352428622430639223560257174459839247982441940957146191062103501763129873111331807787281634254391780025335236919149736038901418662785890215585501749086443026437762975667817440466725261540327344269712461435376349589430157855546407714097530679840774866226891098101724479774937047651398736670104890681959082517518138036579580194065365770282442245423529588299435493815146105134821656112913421951521694025955186338704209516895820982132809250773083542139600999024850741824692543516020057891311936187930731602734810674621148963347339114831220517847507422095175959999535739449543832892277770472160680646407035923459749521412025524287689769123873826207109676977937096182212897918797821099735691810485407727539214958146030058328804969666301864870654151554743208938797737042068919780122987249136301944565997119108380731233285077362858719194799266755867827070561164378890100014354441616933554446058917929118117841250765385030367382151942324168707102347375553167841974396674462109961290118292987047747241356451218446819653532501275241164676408762058596598719416630352805351452384027484882741305771735923264918065734729926328722877274177115465227625569885236398384283270160635787256425365970036138377497356394171353241576918291929810917238106633874887168330563709925890553813563775701341264480819067287032818967620671548201640785336901590377176259753845476662339616268974662001788931306415309529053577240507175553975986087445022365790813078056471615322098187639680048105130902644122934141816671705655433782797057456181385439578220885466252840945868721655072353963384624754931326190483646181359226009999412101263433600011741551043768720441995258968171138081488570392391868782430512047266308640250692851494560806963031588531238318558813880998602211236686242036350227946215113273503680101174599895655522109385067830421236698038190818549839593732733134337090032344467501580558050582939487999023183094784541304821118320000013975021303881070117514026704521453543061872640705577099815089146967929912801928225505967048222977847165385476384874907526135745874847895284669605980943777149549142180083032326423182293632223420058279619029359413775145126825464341205850170546060577491446662283777951567043132298801463388593718644432860901791335778651946626147204926157111161730721638281168792820872941538236672480512826980815595672020736696078119140892099534585203036050994747642564469860962665276834794558008044610361479580280132055054568745065157130604962314300532650236319441714252629267904519713964672645661858234030417924644633965750579642390934523179071012369851025132876120913888709924997581680446236348426092234533171157980330701777924442292113914184172901971162111494360637848605344164171624649646156738901749419989764080065001111933895546791320432349530682537028522549938690588413652000315617147918401940690058949619560764973319638257763292155432898606534672044203669943491863968258286784687649155159170426085927471250572377077397316354946207350513183804442739906774326828270576493710246806335105892469728960362712163454009486630425146259918579374978212368984577926501271678553124954958129123307676433292784829709921374055013063530594577592477984222727151487216830565244288991179487440343384111937466629941486096397233418464979948932807244465873839365443853494616406815016694108794532085208120946362755969872985365755056476735983720944772453461182092025646046935165781240219002897530962119066656454597467527577744867287511490212265655370415818644839081908173272681772255468614555398754827119717655453759438563511577332928381193392478388748703931212044353826312257258705657486845441519741927944548476865666761457479617606488587318272370828879248553221835247964573311660419602284398171518846048183798822334750347410984327958060932456971324750445473300544665299396532592310655336210117281906449687433053140983952110729681515286117680814758182397816698307839261682518346217219696135563356388554169829892450851226763971867020937503653958305427743119364754139900597546248488039744830887710947147143653156079463882167749307993603348073338083825026702698243715250152909180970963789141282038066417921614726724266828435219731506248279495331597026469047318112267859160153002310968630291005248539441364843426405172099346457915061929594916553860332053966902068535666658595643266418666617316645619058406770414024054458298622478450522002665178735561760684790503954417524373476257499627889948269670474956886972062353541949131196063030617020877195545314832296615356986609190829036618437579543318580637482862379082808877943505717109704301064466847138826810901716135106749781705132123408685004228705243971788892220520899092916988486416165698811772317670360561091811128070078371447390001809514634341004131770730557288682964296499364534509791066977014278443995905021569252038307240758774246395079796141169731895830081798942605634535766010718086078602511466261189023972234500378466022682616145896418822427286158624670480459631096330960072708641994591335689816547920381321136070642102001711460393851222511599286531814514159131139094984527689992562369638440092703866262185798764181842628655632373035976187073315490056842554913086931796408012133772362378004778931425024127890831309091220775208961299095580785512221858105893411078040009642330380745071010779747448738138665469390957984452215990386278180495485982324354058298910240514717861632011876958157619367724086354134694859443263423113562778683245378786190997514481202940507257552040419842018022132565968746411721316878805653405699966644611209252345781594133678009829937025038232131362263272303614713557316254338364495101400485808741806799049908922327810832821530305705095847676551288308869012030388164050775566068135229632238896836435786960755342025536522608300192912436493141257839562342780227707013168410019237109784308866010925281690191307490974246068177518231846386492389055009621562001342658034926896371622128337356968202879192745453912243970219903144158058416571449596538819068118630365663202835999651876927227386002830849091163239775322932836643940747176743040615570464824137474327505243648598221365855094735509578311253992306910339027470655468057126078478523563740447249965330031885454655351044151037396919971554898988764566411644663238700954886927164597354612519184903784572009256591761941013287374836350287415566302188548000327420090562117047969771516353904744332088662922475457461246256594079984453270324197715961979185109355956673490386246403509120727154525618598495477102794255474777304588563273597544690176981419538811330059063752491765586195009256597282000839749815071974458546312173048814374045804241256052316722499927143288345656006350901696868693269489666665198430749676911048175652988578314439081245258786639194439395536255136634157327392156946172827069415254987805345275263943217122961017213258080957161746059496134476771913376436052988163460101859839960491928233524655065129185480876789595583130873273255588130842163973521827927092751769945526445158639513855488719737975747101732742497482258007213212410077525949270656263387009877881547638668355826341811922797803395278990662930862100155106526764742897627632803801859720372430225810605272089295514728303835022788778525505945376695683355406729000871224271331137539178498107225252425033720157031248084093827346942174636292007540296309522518168988011562987792234757065480732068492726127006164863466180713400993509897511050408376815235030758228447378446488727991293734763587004980310708037429920149745232048137237421521657617684878176440653915749426264006390389137784118102602177637279354556603366086466398913081843572516988659869302163448148685501785407933382827493641418650332590255361012750785293294002285676043251379575748417625538889548638310366393284942620571944786136193298610172625319481000107150935453442637406816209232767998288631950472555941264159097540443536722122668205743822956490425359396751271934914798658731535205914770775885728344522894285945684903551502868872219217573444365319740184554668991473775684789785398506012369829841801501893176147060681916353792858477782233191344825179650058486341655783007509899728874571375267003138863266726223243354993728230295825763392853374039795042288129407254455254435112466312621483382296909462040351320522420712551077070825237128500610653380986986844283336298239187187001978353646313493109503570477117645213964032503987636379070709982302139365471329637830472711330608035656067277631361471395997487376772988271780535975394431728268360261551485252720459254987102825604771202773989941023486281883125687357438492873012631969508042245272983604224398350183864167033966957272178538908660031949033343033303969715468776108303243094003967080451750170224227705786622546668844045082063060369758085081181728630974423617878869855702989230184972264794598998195951289772667830768282293424959828176104825649095467963615591404024128637861573603138278613738392609784646261242057183045911118440747683451398657198516691967191236489776222428750699752750251163538193507463600291303257149813214605873546362231206026931935072714783499727545083614513523741346981165711471973220604653377757335669798539406690705593286161840712699014033848226072728805712845789945937774910741290505577186510778568132708346380677218332236387104217647493000173083756477561138935436630751157031589902960717790774627162110602193722799413244225919949810110293229061407790783066730616605029272765814403169618124537196662813339938416093082503412270503279578772630614918457559278688634679202693540133763438032032132134650155911286845318909736929443800708046280228024043883929680977528178646779691907564363804243416013801889350609843709345837130518281684615829328738215925663522358017402441885035255684244351444858398751723594380057389237064028806559267896809240230910266271367335395386922501083561388990745048395748790279425927585590077524820524651696560043402263332516912100084449199447444757432855466097570650262249170306413351987127122841105597941842050652355348630392046326785669111777769496221788920914853956352247225873763076004140786074561134797441484168008366788454192455644854995327981439289566585731463272251145305916856525040405731160522950044898029967204941044112505991569297635134068033068999970605194059381704358456263028910666011930949942581839330768003334336260956441521820388929764667271430232494472911412456482902873113778914354646655141728919784482200375831739291498715246320114064873153147770985111432634333853539318283588928802273702991344260072354190357518832630813030964695273536174959772658583801383734700608398750663196683387238095704418153693386781122713389986904088796637787949373889470230014710447463463133039101009079220192751887225548114138525174148209031455690149047756810264024621908740773297297137300534540179762265826433365000031151676415407655507846310504468223115878292060791123743360838268256009338618891912167439177852045903403327846718636810882559650863189790823928189057647373266221733594907138231478193593654782147017603762062126105944431755732525937979832248908419890673190764242842251760450514711041508825022018932300988724664168955655947689805540324475644670481398818820147880305938713409989889827631571395798407323971410394997021647895810957530424838922130966362261150955285090264525768226511528092553500313200075919708420112416289385809969073267165722753593999013703093732304839411265238963443694394562683942542412745134404355517098005058548419543489245015542159820725341967514469408121668911422185836256345167672038434940402298137849610886667326695996398150422634300602646762631005101717611705957728871266904453346915489680259080395341980161246061933159959457231843599220506940160201035384808214004418764709224373471269928312552873282598432468243603829200668655546790709779661348003538544229466481619708858933063016702637099201264736588686669682812744522441771888337571492442478253910306662802527470817499793234990067549038505584277819446703868215951948074548778528658320444005688324459782118406163253912515402718849331192214834930671359694125750454133471883678215690824634338904368943789779461373907608379113734647650864498003493190187435724101663613379827960646401381835480759261315817384037545378730080664626476715556859695018923326168041007429962410708743076322227578628354026703467026152366534862224368532582228790828730225893112073579006411163827532905197074963123504053884958773721697067250438189938734866569645423765045366167375150085251386511684809074333917887640461841039319097412403418483137367940520231139935216093556307010414835499632420885657899298074680558883237066455878285728084692767469632785284994323876314804248251190312667983135547554081351710109367005984658954743712385104704110030017008946800229005669034513992664803707761096903216502433101339373136023083954596939812099491665246485596566793063206649541710577998787677966086639701300626615013920357333026835264022387549810872648304129427179140026755080176176028729681533912246985663956549186540384449287917728379315486722777039830657314944351755747208015866098956457525412255502600534621382145574597627825247915338551969968714661009906745793989721104296915383121888706665144415069142620113026570066497764105977975512500842954574494775882109902431531256384036798673388146742565505069714291552601730905020509843282051174167965365548951790454882379450829299104109346462871156002826645476820099711065377673317410361137501225504883767491428663703385067927120767165757967814786927351149583063105177412663417468143801478188071215920678636944948803233622462308350677252272430950791401462544293409451874405826549109703188090102979238950393099787100385025291879586217681975347495485382304159632796634403690758544960671448280486116614938770619449281216256876106405406114027282350300543897893581577378143685063153888465626688716531889299032467729450138050722230007260661653734823865042527674336477625934848054980719821363479658863795078388992559452461641895648382711236748082659574776319251663141038958629672850319255306545114172351696770704646596476326714490732128238393612910887364657496272921494054956456824068737442154925282979521200511689350075573953243436785702649043354602203642330156553915718020173983529592625709789359608218347508454305328761097562308397159151898423919104666200519436585730635482042880467731352980214922653128727063998764758116619490132303415322034394653301395005995954990508547379231979380941345485315191290025500434660676469827213583435204657292871122900137728691518221940381360557285648495177391196933583147144578454705394562818713475390461438710048407683776186088940495739613030818318658528770694281986044033622458752120712836795464678301893641867422775988725052169501886999956249690982428332784892852266079100670966523156935133517761485166669115691919096413983132274503440374134199104135376970469500292918566921057530534849894913863937828076411703554052616858687240228388510273583821284174819974000667402274492713428798830540315356949720070520120291942093476637792564023819712901664685136726608854880524917544485876073386911045543224178168284523807798903598023789934681905963036802023343108876462863436100263271115660220401613436917786945926196030284262870774219114368997866743840690360977588299276288457046769374056811226113593330361422904580111275186517108493000593814802889918610789331358869286064595112255784862496070924821386163733290027641873445702560751381273737286710475324246921227136961864850302636260596123062493703593295650170920257370565963273159572662591308767568825473396283251484045187318533399648230054332076820689205521721131252583915707138054329181277008791111353667713393804860058599956436812101675346436406816150937552123870106991474008836777842426485692544294256797019458221747588165443043279117515380373842542650244320126765503314535158108666755771144200604472819939390982168287609170403536659297606733308397722760244717866096648299058199487197320853985642116459648172532977816834782554505648876293564236324755751019923186139708284917774555807569428224107390610908920988649162665044308126005623287709897574558015901248658820737572769010077446350643751413925019092895298371800375416402240210592413991037622966430411109969368297908138986892523811793419071622378572715530699470574022954736903714274448125237002108947024142051858041148264591162923222398843069182787091418492294032323331927706241041407109207014931203710615393159659045053111747435184345392076277152338197988038216250994538657447477116603093597576973374573561923299491541153681595370353875012798231615674471874569062685580993959804288118683210810201692208512338784626725482787581777634217582162160212145841664503969661599699215042393162418128412973775259936573333831606058335758203235326236989862198158716875654376698786442412377387683246714158316940012231218978877058385530609480425548043895326152547527156030974760859689275155496386336625806757194121346699700357866305460072433071064241372098550941827209860719887021040431541408194363140740070576593775751719040371377457182385311835942822744036145378553351994852014543033713501231904237694269120743518426256145698772789260032707434811113713923269583646018198124523979306314232949979623939245966142005286467121230289495293980499112430604595089238425551744259850436781849129406342925069727683042978207177322628215619500921301516446384558934078691963938759648839051746605804890018295063991654812355261226097514710703581497543175985831223259748354148400528388455967364726769751256004221515360355997287340054659282609511598176037922986336388611279800142861385581867261596280397797958864200025837864033749435075102213678848921073650442897938619317606132480554300373717408198401826438949404398017689137435063371124909871378571316619960738741248839087180138619557378756407986048543642160328634089121796991543964826811832833459214589572340547298589784791974881094112319045870969137978743383179158361216395609257762884457601516340783939975669717592103412079184776622672052315111976753553903216052190815462005046127370486988452654426128901182373882992134653278238509319664681199205624404329498317793381328228477296705946008823339399152453354876853664870226137712643072445664038726532500945849455832259821718711527442499566562444662370546033071366743924613195513176799970326477208795076453238131772575962434867582804387976972261052875100112490492644321335663309573559088078968985392864481206193973152181820353103537506657578580426566164436355179137123683707415941609891219080641306097328637362490578244167233446787965838759356708685488559885663609410409388149233798410765057007132388529397504917599543893592661220674313192902507106003266383281180731852040101251383422236121679164899579633790519904599265717201263868916905883781754081867996812658696780004472108555651493895063916823880313491618444219044538726307183461969132577973282272113366040014139476165377299467150925985170766760021884647948201235869138815010043275233135080623426154445281929601378803043073543009266855625362532222547453739687058230997797063498806097696925536419921418612488829128133660370526989463210106492620361150495800134900177387226026878996195205540598830265377088223884507986552821276650034511718185184016126617844479018941876665676483033176691651022774699535383867933718174895888187010683758416909969797420580496449799469649085408060823252471916944367543539540226777328724027580300791748857721062758199172430068776066712984805691475107444182765684854621606698611026376400197166118273432020063264055374298057433733421355415420163562050725530702842322772877989860295707816225725904151708038521776893835893140948009778674531005085235144728600604907327442778299626145466635900326899811551870098875550604863878004855615422727914824788096528035457990931565629314644577026216500955823335252210554669514532556768599889278233851088949832104581496021036468823898454147375226055413799318458819662081855614787336147752042432473359459646291188520214569276852454004513580665613195311108758674356272067994105800443561931579936970430899734442511654186549928298248539900523218999990413126932738601406648699859710317869523376307339017558053448879445419584683592105864854858287967262798187097956054804714936948365732725021466374496367353747242664299746881437508733040913310592595273012848248015142534560970405986113016643520042719989347222216247862493568015477603153120791437552024078525946484090754867956351635602682311450064750200889398148287972996581790626386955320316125679464131785457365786366222625033309500672485353425597554949672195138468065636100801520861815831552447269152158409724186817070073198127153650223701854851000135541598693674191167075792364856503743344468154524969757568586192623291826193122986629891157868194204862339589083867736093033587569860278998910428863511564070949652772467811457351216440734736779027475521705186026849801600825472977353986165864358023044790390877898902323956594315175592777710137512869080100787292768045302157771839966246474857534891211497891780079875334019071228877373381556969517276784266789255159190291515845195753809941692495162489314270211012046378709796760055314488001292159420628158710496875831929822058364803975799768610271558557441827818002610963369729739907760030826428216470470246749156033786432453172471373668473468990237744198229949693990767030091148381947072836248653574710352753601767903154300378085336818271346513271849957689841342844677452861070434892009413694904254624772621395641117861913378347958710978523601780632042450173320486450250751254958905593786339540805582623477207605482056729932664464196564658211638692930567364081077127833275158112265109108792447103295746041614178460648613857786094454653241313752098791821633124995243880303746234498355455631103593164012428653769604056437358256368418123763351157377540523711150436636857590192951649193599047563589501777782289476420850351254368420013010459445508613284776071819408535838711696923396837383917552912503569076362462180560412002065805473937626791688068588221268395639602185160551854044235542423734157224610296128739607407052308909906843855468539014456896481932158671175759799529142583215969165851901685150753914694696450001667735161818272687396528274971579195723691298416470684606999867799940710549792015513738458876477456109064692705544486637050182610236907864053324192441749833379562553478876659699855948686450101221124014801233880928824123434130769541987191510227881598666029072333142185708958941212756955486553464890515013879715262378941660574831734344432172145537272305569766868028116086591802824377866898213989054260521912017181054916490260739604781184255090076443084813871873309520055177551784606963845971399067682756110901146272231258427320872974057253327796147795189070493923981980274986455869767507202873393130320790258514867296285941581905660270661576960818874704295097228097406853559477346296447958567574469609105026341704589705583996291415049372911866474012690699452381327336292055408234363360947923398858171008276120266983859171654147978015178985521847546713108406415539627014445729136648798228117523772823239906843565351538872130327945599114900838070902975400878671877098684394692129538539421211115099157518743578481448996398804257279666623073569755598587069453669237009473751067344471080610008952992951182057165658193669511250390151870250136744232116434296920015441310137670520788676962515755633410687015048429700665163144381380643951551637868328365826842243869724225529980425804743853908142463577928370507430040478967492787361453886852329969779320153412039266281621549822842396233468638120891411660416239293965132878203315115007053848453536838267394178029251747701583286126973641144123390974146725111335869997170800093112471788359885760041254244978396380045904348047933469504211649865839751552774202128378149136018059073597600606758768584022582233664909738686020322137989357019231815308335265246379068815017159831658900305023980896460520034967123277207174218593844568716775125878698245836564855175510250842880444399567593313532031526257647649865776421702962224614320048459230328820349667205654882400246685352306291490237359234971360338900693134242602866789834541250686864210047758404691600561986937526824270335205623188406261142411922834830498876589129743573558091261787551538173206048322813206176400468076628652166047675436413412687179529485149330489819121827352535434387700540408221081052146214372749672205236032714528913201320855399499376879968118961584793426195861899566185620603418835679098634350802572992337178503060633327878934712751160661184855207956577203919620311439081276158870037043211343545629070782481199983806289083751480480424598095146806135141188442906025725548219853406322995686966989750513768710506824061274493253050721647281021947422581850499553924666991063856575473031969117416582064461300352865144078546915488850203091277741071614710271368763435773405584680122023833938378017774765104357257602446133931861347525384922957924592963976500918729294745378939763552945792549970437410304358794133607150870824701870592738877290578325792137621642988111023859298616926905205194755610790147214336786501460484900245166034880753933638719632567049955799380565650639622926445462185158435699033241284169191644449418354197189043073855423854812804603135495199824702254259639377751781290853476845809133674578471589537787681278157823512280378758152043928044136435892226396679851707112062212353291105755154135050173771813978806177571494051162425045514447952567358510225268500939190474661948361837134003168301078867231154339978551989908163243778490761354197017450463935766868823410552872169935328065817957209410140439425516954443746986332323587113958451849183959054510870753743704574599118788883122206904994682165097096615225880797941319909158755348690011228768294642035837911859208443572781139976676727387925366129492257251794928041084275762732988229990938441549167934998570798982522754401497525100211225711841603359802681387643768284234624321456534893733941615519008858761678154750394183467952309433928112329957979812609923651743246958780225037544283694078726082229550420316306852993657505378541866597143728938166254057575819053607292246644904667962430641033312225781034330152866910393611398677690750030326402461563140023396030841570073622335836976509713115923570264342040599540921427769054622892894669536455645273262832884745321090505979872315995580347572657146309115071560222527739291516972272188214764145536626397312638413554791546219244213014037312374339181589321711378003272557863721247765650494148285923045480354832536696598597965167741474206372389762000518598415648384159399028290438783780020525782534164226014551933970383803090041855530202795418524009767014888244286102128553902619531393349259732804346366199305946562773443317539028740384048533908675355750605319909619982100487176433047455022955235356132034769181084050779938549728514863620256658409531381290891758773246303313646117957051866237176266065679080568893099667363076120293881361679255577551471307917572811610958760585456964759256726239647897125851499002529041302944805867428920619286716702545195166413844489169711901424829746219648635135006916067776554963889312685309999405145279311436927327974234490336026966771250455717947904357200055129271058667555506006480226638406292195971663574809202174439219679000131359853581833681402699122328971060839505714621683560818443279041671677812186749019263563792976433538520692390399692506435189430462428508120821884786324676842489496631730906187418861705581973165091305951122225497993061762799317248163901286948899394564234074951721382186561386965757919305197801362439735276215085308466972198804791941328299709074906781955660895055391572084130105649828029336116260575831159561461133368390776075706925733762358691691986416372910536053786099519811791996595164025076287704113666040654693709439930630282577091756587547660608769931930709972467258104798068063816880768886516887372330178441705201395639076928104478909511035494719138243473207196744608773828575108980003188699816844766896828604735757839581373593224231388881595466013374585429425741724510433809056840592048704230330685940250897474519586329745386194144689934899508453122587271891052692932081602092427841412512984933083000289966460250143420181845368173568929994225556430358560430142299343373510201384560767030252549309936825830773910800813502632267554241538023495314309027734886378909227407877941198702422446405967299097710142802573552652150116952272382300500906490303106172116555549328863387814805171343268118235282846002212888187366774818461727728477553865507802583209764579083258455445332360466793789193991975540005907625678589205989700550876468293964778089104822785102672736128081289226235268483277765422749012306821556082224760372226197869755043392956026763920471750309052473388457701651601793854558455676397740519599151931165227025841830056096092019820661469756619294620486896383210753666220970923017140827711903396421020775302245825280271278090219922687747133122041008834666007841351863661845481898642895046887869236950929564985466816977911847958522033397998127799552563792566902254095178457329823911284092529630350602592526434021876949579820145347607479425584820246976265431140781505239245999820130803205794583824869000304852416495720230442592984998550483803553863063891265679160652847180620516137321024209012978726342737872080610372513742103737386855072079981696706224316122968975919721521295367074416132089059041240999125957751788226135128085395397633589341231139735018829167821353358539972279374694938726918787285240168604096830172360923994625635728146855556122697483514683541302297331549318780311379030465779425968775355939109874864700894265326721108263740151191813875373399752359691924027733508575808631202379947626993333579163813654351250193568596297795782526556322334742294568473749256853122618794734089455023181341529792258199816873554755369904185216774184815859781974925567374422633014942026291740786453741420274557583343552802140010021936636771813749125898585132208195226987369813760221551828201172125691345855504593976008543769896529049222488623667723879006639440898360561931747663625158351802941999722183122538195748644816423285139068008578797028392886091853954712925104917360840403692268043703385568188853517556209215159240080193843878907151089697308643871513267722829654066718198904908810326778478948110636647563118090408194235658044052491914275485301100157318311919472429136350544845059640053290738174216239355629572015053398264440745545598579936909202171729444901517924788730161269142504609758342996670974521011600075041381110863314338736932734866303312497984471501273482237034461385032035841428764363288759176107931980947428539143541940969453201395771837843420440718966197901277791413038548474450679075184592490212479994903167864607867357558888737415462809257637720330883618758529564388519642580313975130993032193545520886613769534571232159087081822736975872691393301880436058566109180956451523133123659502673447233028864645290823279823007795834311702176740384615607650854135576540840440185417421072958648887846307026785099765036851759046824741911644834693830655122727257860764836705361148899523917572973996214676499155683970348220303430974012907927943108076393924323095414646616081187504014878940902699891205399428889599169237505417055337084527970237293063520827168972803953161927664724608908513797700589073671312788794160967910802185818093893110677720854825165371985209194523227570734244267496256848163211548570820190357108869132023205994487154207408235656953109408083073123117686369185077924920569008640362122792775414376960677332276343042875672480027580206677006624556254388702939681622610653185510998665443550920141742010866064136184998950921936219026699707860472543744663665957016474825401622551973721678276938780161105904456155038031099101984658434494778195743108939259889968080855620043734697230468927996852340960511112575126390902722349545663699674161708417936710828530732188406029528997571710297050246202171891406060003718819875177148876417024916596077660925265492764701237162153581884234950578615709747929882262137980401306527771280515605932542227312174704351701121958853306027555948725740707375241031376892950098874419416516980889227799317812954282788911079245468305089134432055008150152387587543937447955970260585868820027045175098967843699023578229079833240267004013916815651796982068778988003263091568762150560549902803070377027374019845679319019697501489245207148730705181097638747762337017095667394566872827681777542992692990066683588266985867392029775286242571731800318698290205801579123515786029896849051014173267846569321425176443519536196783104481262906136494505743710464790546158449108180690043212879971701448632098104061349684259687787818046422966858874640601293605962001717237246148294053466494121714708867542481332386066091034193584148011545576884158372040314322622104553180856059009646987087077917081333491115427919042181015867875636145007603845709494093054762072244444386328870958381794663200900967682908073060943716486033004027902144829419410898439699460547054982124585083857198673919459826144493100961261818698228388515527123625426056199147464524184887184348204257886750353742577969686912946430187799208940076910260959901125531931975667610582506038989523789765143306554561019251887756524334436279456715425453023765602800931473787106803624115748795583385285537345202128274445905857066032728901394921195686380476837191819152245939815424158864227305148930861369112158838285822164035575268502084325149716015236009813899646832476858601692206651695716474173678787842744929956338332576180768522372085820644313795292541721058516280962358817021233057042751705500513219123546477683679695370314806856716221806512900638071598769695641547809292275608315133814530313649665467543239294780309163783876973152535860215222085321904474526217813274585541962858825551302934450453854010517897380995765556752278691253917530079413325811517229226369840842190856238172914486801857498274609975645268998926665934125075519902029475853705282375756089757852991197986953595326561367496563396910108250378812256705181096021544150825843050395939879527713800596211191410579949555653322617738819417401895951453785074438393229428399366079732664547592565824374653099946016309465586568997032597960683464779149233506793343923264622017835878911474980258763554875944744559485637569019132245531420054664155597180241508103226831874187231554254778775326378949518356447872597247327747941144768274564767522471312016720164727668879533103297964481396981191295283734030478054423576244953766483618217222927052128939076390100665062908343171093241388947411276328805418014450355797742393891707103733175261744762515403894423924528646458888350289917156005529187694989617491500958830509103334720080117210071895341695191464599439315471938789460175809063418734973929407984059918262984769633684262878326410762067987623225228832876201755248795031363732970063240906426383598818908432566357775631863059288276943678725814548600901764507010011005504835470213891709452847335795185752341873281144092358393393138588253324623295963806333277072597122328189526841133470946947533273188173901806455770246730162515607761180024139652385382097299965637196744305050310916143926453452295261797096708995524353597135295159489685909290094011108283187951810338331031410479906242473841602318672679954630287920945931376056836711345741088184628727955946933603860640840354541556362654742134307994564632263457744863642221924316955095069726821217905902917045736438884537987489669660623026533642807837940901454642453001311627465457671031712054545698351768549092546853146823847136925147565682540080462619009233133545458115111974340008869522545423176518342374003579952319793824599417238165750660217009636578573362885027438249788377710863247535243787935837019064804997332340646904418801137021766381164935562800601007182052420628019150309984434916552780753617370975950845616178107555843577266716897167916088575838520650827639336881000202519207976459910591410412122523185013432378015977445963681433298220405207768264154190052110069679669052322895877181026906179200210178986311583276591324520042693189483942932949294828616754724179792648457262885031989707150638095874974633204778534013933017657154487261752651581368263834755138303990263644450554378980008198460084819391100169760853593820686142050882506620679633190894923686938102354646547754377096771616485876899431774706444019760240769665981537414007216256212640804657825531717008110775392418618392107226610818714912363098771880822472846394414727631982933392002867898443846921454112960221913113881889449558840417250439381280492903894771995268097242208053284469559022038653051271803593795699983074107073818437254640194556352673163736459069998854429369433893122433480689397302573349503250618012879854784607789968269375114178386511022949016038668114401030737486601848783588904064769707547163676295465865240059378693652217588909556845802509932770191882642413833778004494060173773818452066155938444108388854467736968226387010693859469717283553925912291714550634419014987312372898638666544568755860996420672953406044550367519014927146381836126757712397117658254663619080242523600529792252443142560242608573698903003685980878698228070445060473523663226230021619292186755619809976115674801877768849302841397064171939437117191318849994596980535014591310790292776757701899359853235900889324763054690044050573545247931494496508804422021625725508628563560650389039526690565064884877440250038551702622578537858454361598736731851531651511052981975944924594576145907166592183015051022604317042872536460729109476053040264406859876761389271886479492193761690237502241996314923911280281295886483388301725206068359906900481260496394319428841476501026338297910178885003168221852231485480706345723854069717900280817977871927127002504233237652697327175654547563267619120967691336463433053057219017563928586637030175589872788828704771157333260602526391478329374736265934252445733196001038046382407329740607321364339019654390798317012208884693741595940682537431943127684228272929823186497712941753458988606055006193164109094706400975407378746324887227573960569638355972187959345360824076455270778078573885701375782934883246545567745738042460992749819166568567721214599956460430207138124671259162674682508067773718618739778669753297963913552493230707801692924820891650050742124003970945823666039552918856749267551469373906429382341535877708119494593976431137808509368996895487465499680790753886592368709234909500180491159396574167138458501161302551670339084667776153108082230051265589950393520224558142862920850718782868211496386209420527579746665636584514656817998146676971170223223101293816530520843583436917244515369087980350039147015178786480414505326812021842756381725445489102756349433135367267384500071023079946149950801574931998110599933167634270533818268680012645426726841215845012648006805454472620456036976373316414374683098080799073362902873700513348760523784746030312867403605552709479729976254621656813420858738870793138234367140695599443840345761078537934478540787249272720726146809141716558174665568559521302935589736205987519186986937220122822061194563696010136803082458025133515380251079477941984817887649055431165926419792124660529762946369822316380428187577356558689223441044873335752430224128948275660328618973582249101105636141139678928026222248456177504298938677480542106538767125726203831326773074883727727922973568389575732924535134624002770007817838593397826934328711060491471993196913124063123198888153602761349031372036869895310860024196296964989527270952676181088704977387749544566491518498588535075349160410380531082670380640181650985930421785245830552036959547887584259588506096843253297712353405528390565156709470234468453869437226464641600477000706676751744129744529862765794483949923558655781749785946114597375301836891248841584061801652578867415380604320278876895901207887655148765511597626973936061715558136285103434387349453594518913027928256035784226841957680435457066872594162427407907257999179152995699925463141534701002902880779551236533599000279982860004032687030386719590759663089489193582284377227808808405545950069480634959034436273415779173127546419727002343544991059719957102741494547779091392168703310073106522653038526863429745121675756838786786229353306800464792808213685225566097224380162945539721301964488420255251601139558040108240810150995991460922330979295521697205361738049672606729776829835102276450247416699757453470831258474253507049876478756642538395848790340918871188695083716556929727722463035182867868838613685577641025049884571258750452303194330189518064327190049223001128935696410014944788641575857019432591541523281564962748584190352756637686961607231862578003488193549576525710761191645571813975206498914095005710483214705442294516759910611768363281916003983760560301677418074079150908605688436239516530192887122732009142972031568474233041411422549803071158373883580809128476861800171644396394239779373330455844884292943125453162956050673041003740576254337472637171306921069676963301880686824070400467022202113023689169740646441414103446242519965989419290134700722091735203848259539425404599868241201403523592711327142402345967532110888809935858721512535878271721622791467501884286198158136431319278350419638593227073412868360444820090573338205028563098871387656003948865286218402756986108889116765414752155884934149286934565029346316430841786053048782160413579640397756260688395870189100706917130665274619719321507789919122499381595330220474743051383364950332069251604795745729116867773860604485371773824101772473805821496485720262862733727834818617333763464443470884242008200462749510102514433420391774958938541216549095096628979514305422458724562080273385594422738238317047394271756148033128738219420522192535667782418292927338965099611379766663019757550739395681844799367041979798539405632804468271937432915722499729006440772824926537574197975692174647957029513076911669520531951350449402073614524975578715144214128104027350915352749094193021670714084277430321074829936806929704502362622139610917509378937951505991813976875834120877350258736085500577894006720513870983945100360846890394277070640312211889249058512938321149064410707438604163347213073995207207640228009825819340237508647685186391606797408936473561259502055723423095818401374188313458168441824005023595604273005088570818569605253762900681788705596959596263946344834804554975082576966081874687187671903154080959291348897081926071715484582979855533123906034414103042679386674349023107764721943363152288892929017884866501655590532291797903544513560528173499315386513657250479830896109939476236716461656475099364146648908322072615854484202578868041791965746404246341851880413906192360914775653418146231758913651719851589472512823119050931646800329487216749734989802219559436913065773938208721318962399137259943558394712865439540252892042087462310085538461879799804621518078748545157962662865911996595345365275759590008231495777294243065398858226330162731281773022539976697391414034483866869489525882980057494316489373474417034035091984779912445104104027256678976977498605832124885392983473059032117177348603445559401957294180784695344084228761577122958270496198033879158596059438437936292882474462727639061910808032498107795908819167369624341263130808817310465760211887058170919217078852131201276449809406645716518083475193332701285274323274852697823170593484802180564029311753803972046401164831642319935975653271624669991784343789428997835089107866100798263082962314111611069760684349308647120716046711083353625914497515982733167826684509279021147412010276120199926981475839533233519462940659226345251431563238331703673502755482659964280299288148238552217276931418599536768513003668976387254228863914635190446817009093916729942600961479677464158144531997270761507466100521711744199048139055217721081737983462431563066318877453519847914782179384512980308109240624565098497936410415861105806985153614531154771193530690847816540943286239374173286449255274072545014734669097788274020379471433671506569227536323735283344250303804207309632107077108723667078848143843103272114808568954572124804043828420853150688344130858492348629552419930966189091244706290417809838252531281322639914003293216249789342406239519076632381067670847012516339809149821821042024290212732378412448128049771273875339830408117578786252342326837004701329145850925524321388622484081388678043472909113602936089612031421388700715974289406375932016941692117865908446507947034615415294425763122162418793725839407305718581977502609801847144557741336549974988575766475949121855457601708662015454903423497824877054141747153441152159602571720267546758265818406711736496482622569395585732249453976902633535373498359868770138416191713530809871673511864866707884364481417683178760556492794422511595740702129111112281454385203887000968312481954460432535441160827907701082500515233450322770773603831348121712532402758103580198532115118643964915255227555846475658089809533688330159530495489110521200064519372780293590399127145200941108197119778745276575352260071163560657040180890381009549480277212119024463551637148821690951928266677791662217960017026530384108106875982129024709282894303853900106139524216014993498773859428544823953350364185186656151388059310824716369279395207109370934327687947541158689641918435907292246274701051724080750881998660788443108703368679042467563604224887308878377430071521633322940360540644077328366167329513275412480548579687566380940773714795716370570573574236341045020372156032137944716867295326779998498505700120127103093439489305762760688480632700446351853270473160713705719600990480781561648125330394201748238169603434794613777568815006281322723075400522954934488566756094012453164031364576440507775023648477672648123856614110337848568943177003617001379868862421036249275108664255103368028483964655168474661497521046566703075301158425585437167170836099015392404052950190740137523073463508866691238071042021223029773709823225074838725226640028661296805700199892718076750641277274966048614823518769406757095503708463308469279720235852538412593802693792178514420609629510492077230284270172477576161380038595998962752273289924883474112099041732155276362975333414880530963626535132403788918132674189813182231219216071764194871875470038498866216898619021681804522406186041375140539548575190501294504873380336446032428744076721919033432427743949373986340363063963194918929949284372411162749162397523288078618854011886849088757763432430038571570644806650425311855063256236980024756282658236893495388655576389110211376976552123308216834117468120074325184684627953346462546490678793296928687711600471921411951024229348316543681521163053310975990480440800162852507900269064181451438519566159427667598886903976083188702576912774038622947211131266670918004790189120355054912657561835590470886220684147494888475552114393496209228618647965844770654116947624001656464849453191151387471927563134216939624650230509550144002830687938125067165430777019782194597359721311331552503216778306975965533683157353666841769181699949694429799858303397824017888785339496090879965059838167766742578112625239616732332562404106321483507264222044837090000353678520207794336694385085069294383057113009172610471886986606800971590494806461414049059490118771080629601353184656709935456960592046290808965790135949044958289082127560410556890792397895941092289379303500707876023001650681847872116091399626589626713230314416191677909784247645689656170584168786387259336122808880332881178279461446854594735453081018895556890729678384358356955826348302396805436551083998203591934684855174833949057438013661168935696573103875616338092322409298363530436486583241709252221879270261834338060731437230656837706139202184557970326947388556487351130698782873499460326906258178116047800633338315295887585260977072217466324073320748823477860302922586567367116942633773376261475236483686950674885226275961340763028804970066513612641041883750651929648419513023207067129917330113213281954368258722690570206949179086762651419163866604277275431788025742264186625073587427109464702248479008095017651974118814188490274823092032332848639845481827827093843937893451866148895190349660472300300087958857902952220171538635770794953944548847892771323577004887990782689179697725272732395652609744705901733272870058265473163905247541908721176093020491883743447117808389269557391733869870195779023494322049244098198629966397189066983531878649611124028280601021077031697590425743661061493147464073640501754224651420866659569214718535794775274700922636260294588982868175144462700546314477373015253932716159684918889279356870979303997413389904398283918867262778635322563058959111400431432167465779697510675155982334141961842303053019811365194849816241509871488701867561657258098767030343637666727216904447811358475524923558792823947239010061838769683492383571054081846219809429384869397321047976467654424098389647330741957244109721573882245742916501962735095300467424650037734814515706731338669686061511971234504981749440344555678509238914532924843681632601408529486232549152887086823530271338095121831704516555443332881811881770550314767361730485993652325154333626248001010466573374037242677820499798194663161812169203533080420402240506418958592113697317460343052498459866131232840893504154106216911020972136115984787730820493979648193697696521533371344175501089760133865313777427834204125378223631724275025007101970027556790720280209298599777292348999076713424155783949270469038879817384962705687498039659902271746628939834876672260599561810818202208614608824284767452294767667396440608716223632757751426206475385329167864864210944923519513668903665534693632092792377553215504491628631079112149775213317135333645983385025719715956605312690187710294645774721653427080620605518639798788283820613976740194635885478661948307366941317783533490825358880637823636243517488734898989510651272422897273594008942291472039292354690921475456143807026233856054212312032117055919105839547072867727566199256349143613354048448837100894852697186338600880560559354351479624954609087789421403340037218699508109334490691016059674415967610391894691433739004897205262217980666204825790449523381630661447033303601347310735929695708384750054716284080338378863539373272280546096445250581696174099165570614037842491862030684670007407141874514606345447549958544008962220564329283342475689847642464325395361917051784312095364814995493212161995638245017796914262902351346620075643329069400266342398056499688238685316445775237183169136733715083604807499559787836433436670803422087530088797840890852910660113773875301109646551876392611566298407306019396563826655406576236858428109433324851406991368640689294003290767451643102166877319033965521828268492747682418015236290469470205929511451767243905113064741010379134950926684771878902415869072086552221880369509230842869128872364859054513025292635983358852918441798209150774336695217908992876264590141373690241623192171635419779645185898268778823448267019858687366006581601464347719285620468673377329372933505820441732936624335112551987431011074122190343062032307757989205317640940052383883982071540414437832510650883255878758687591774638911174694942259876021191304406454455412217063634776670520504002262358407318947734008773515346824213868137159078603292737523195569998784616386408885705480476106956535735645471195254690608420134097248437572981259355863454006286519030796149099169365515841248969629606176366180704041595784509150888759283413727693578925607753063831990820487220338375056528043045757142072994517401684319516777377745996339782287093903715307120332271454334155898765679387699724537876113033978079286862295604093830143869654402499155490631273953918292522516281511316503819130291177016396326035141362543995312457479671579317504004185673047761618215234913396078228927961805410811145890738996048124801338255858026676359949249764286058543892272997060881617308325100838451452009678127631573577819328067186034489208314121725385041536411485892639742292649353541270844378909813990181927224426475588263635124943967828630183729668938825193110236156435914616737615709280782589868479143650188809433260526920867746296249070119156844755420764357371735637610335501921174164343304597314915778918910695655544541034649304365660885676085241595683827130107905223291860995260602586328148579107964828533096531005183109471638298780292268889205747798799637333480295078404509628714919597314183206534610765531005498038265427070087710839479307809826822877604719732208683207067674207347696140860944583097483885879652275779889220559841284748124243352216005157934762914948683042326227196573509047941018368145137714967458778079222392618441511833344997354464198854522708450508114443969582085628337283523950196100040963450261856850883804281045008239525812671267318623530628958357940886420513425957778835239508709397507034122150773747791583564758232332473593774300849831863000628632598481805885639383475167891887105699324099481799573056079817364890231725034713861111097427511954386715084784268800295217606334892362147371242560383579818961643641787755061440605619523125206506707545062773758572464116625291594501442926976052940338095692077903149451017815563032121880883671726700381027071439864729568875544982848956611884695339216639285462002548532060011946491149094302604360978047964456774624506668799908292069222409355530114905408999675295748240924683123979081237188452098819016008848175371157297406155082232616585959511170731800411335720158133527965117070002185778924862940067769258754509277055953219317423685480425362021021920864781410665625667867092251859221133721687548454654199086962538805388623900717654113179688728333517712583037657085812250751687383569560444404282373870378526985875474804801970564566200288851611982885247473842303522722340480292573982889538467224230069589255688110838994354026569748523143734550921902560127662975985759856009435003692436261033370035562692788439696691145821643605822033983735014874916192330057432125478351269587999443088725635462452671131790404775623570596486335862561209332030060698502968100762082190036277372631270118734708761621209343230695149800393375510677524681366898193435549730471934243813078094625841491202874047821961395649906517677402676634136862991918355834282583695141576088834079600203893176832818489525294727757030620069167655187567079247978924394456676165373299628528756923394897694462513186112559347230528404483012131501276742839112931519131491566627292245231452201882748119106093222538939654762947299300645024938146704060515912256400040148447888086154838028121857201734182545389111360422129392999509274664064375744599323514042687327178857253459228626285072949938632910256313937632309627440288947236526381622688325263326480280041657787335824126973120276949359817175664692090846517617399839957507707533462931053238370430969235979578006980109500281931622632348302603051044766978769446245914474928739111790547966154375148187583339209045362230314116148057994046803928458470110073251491478459393773093549954781962985778955269452396278568955190437410697158717399564090305884834972201198527219019481221232604624395975479218059647257430150092392245786523297097172433750854839430034888913447979607840568672166121560414525136319698747596437288305540198970833392546859365511194879749165127244741306771906364025397857326181997683537759608022738725848687802845001955339718362040919089030222212544365852701206600721530165462859819002844347222517332415397685706783879296736155425406118053515736729784395472821008404748708162509812590680904697435570371615624995756077874248446922346637985261880475726454119903662952845628488391018729443879233375187267706121143049116858966697552402220074157124554738100498856132543877865229452410257080707990103594416666927971385888855966244707899183740367516158520850778414115865243046453444207307813356754140004725135763027201690934277667087464920657203077887304355704480187774220889102052614832687103240751033147880439698301368258504796741169383410904022572735036390311979124389135556835599216862560468562205988140826676394032899764092741967652984128963809465624973299222663699749997039504143697708209352624324389457495450686338900785669217522038775881296529259177949127381331896230092121997786093081889343431944090636481825139720242773541469480037415962903623450330798042998744930298859358385355173821089477281085482308176541773463396490823818267515305048618732999426011244596191724840866311456334809209554084866233877125439491352437971984734341426959371852403368880808720023882761578062154157387356681349844262312905890765040769716848586575375465944447496732639903608509762865235434391040004205601424777247183347387912421934349155166404276099416199171281304805586361781407986247893256041201734193914649138425410726447714919381570199852301593074880060552281668261783536702129990412011984547343427088862631638434940828966459625553993264665713408413300555711977413023149170826784838783317420149475674241107542588838146173571130007118932953660062370154105886904657072676964159768492784511994366452213780417657282371054252130490861044589722940367747627330015784321105517452895810402062637473400184753874803513344218747024533057769867491497740207935836330091645276964249365379431815583016843527315315956303873703515508884999915121823188141692637406911044204211685045932045826563824408186298953130996334631412880277935805899780065714624700357531864852431553798687547882140287591900445141330452253087527012530161591800832247036705190207964976040489247302225070647468265711603987046955069539955826709198776059698758608775930384241770885874826974672234770853209405788705212978965525805535111736001264792758332461937704828378874031796741906035000635353704191927387966369053266803224606587177295011409639607871808116999893774073747132599262238943613185738033897957234270957090990567539334934404449620988521059066740148106717030326804459920573609655524829087341802407064778198081548883639842611771596145631413866537072466945173602596385823338317540881988337294064413342074078025078350427800199021784925468302628379339320197076605057492661955412881992715659920987435882316237809378489423642784086016451174673779893672279047271939383227496916321378850763472608309957493532451572506535433249957138036123168123308544353660517743316387700218922830448500328758176514363987889060352348797173876356506279940616743309162662672479552209658359656942712274230980339737916753459558327978524279852705417821614092445379955897374883787113683550979267983778833000390131877571635140910111198175076429123173957323737586785879518617243870295675347241613584523222157707663032287631132017764996548182768569838901924965297518340462596916508131529688226630684165495618972369176311441405512409987653331168654451828835388207644055903973305851598937277796809258045764340871014063186275696835693498321326104579059060848904182247252427900624556443277529502291880616251053331267936400411068064442581594195755610850543023738914567343920625737063830843253983142067179566309695525794687810091079748443634415461459265989894827152371490597914552750986113740212921852749809353084810149454922634336076999820326072047744004052309436981628412682802263403427127731644068441917384632410463650657055630304109917088427835799445228065777736795668500957844502830663983937429380865301242776423186121443437192287007552335652314472966606848988054068729059556285656563074905047443407863800795088398008178978361661693328533343655200362714988176015737900436413069269582078821237812178567120077507250296490403455246054650571671261806423877259006033668030955947471816666868352538607664389574640087178943642951484351428078377931722305423009486829217818111107750847759619993291124261422500982641143087358767811083819075802885212302662323037818980013092257029420357460377278154613325074306562051708926757140947651866465142598337122088282660559482149225334587387684069080029903644910593511342618718165887051868447486364017595757952018458713478070333418963309421376409774033493013504082676080249513336356079316036462064404755035555402327623915347564569955449636034836080745472104838186576799490081562012925133347393173583538906114128774094224069766627559375986649062531325450939497651613640099605772735074868350710099865188531833283429026054993448602738574998660759264713289153316773116964238244621584211427376864192526157505598424206438665343790982227009114158707243568921055511647197364682589730280222629977644071796790438346678173789555979177516498109764513255249040901777938271746566708880840505490607962115618228992735516808947930906513082339605700595540626724642091635941738897930465678923987698937742499745089798872421277152404457182779166299508833534341437105615852524607783531163019937439577099993977998710209386968700456265900235256416795498207942560325850776793447386735994804461487470849766963620367229035897924892119149588783781927938101121925930700907176542163124352854393655148531940361926690491830605154457347212634127605050606532580884669145797881457690626626600587441471699903157801289732058497859675903392788622983478905663790869875971746439264254867539196656307220587573000746873131686253150327978145218452030658916884073932251198441914869341295013538631924207810643649386212673757782299687612733442775607445193141617915723221110692619939342473962297915653189476562349831659907649586240887438046939465467508192666516435861167542863659402852131667967133997958364573286660637460264802570246877375020135873357769161425140456400389811692841594356657742589021872715050872795401503673183488965637880810982649635002376406138296275076724538744611606848194487201450232960709377521615765523354555713160983538164625035057464529008189896558371553544050705243892818444400177239805724284586803428351252138070897018305886737843494177909087163268152094891166078118979579889264437937001598071781123730276497170259179409173885667970068673853613591636045002757938397172100524755797267552803715225674036556564837594257994182040595385108650696601113828869950178005390453621402145553487768884378813194209669669316642402241659484682730978831174397905230434933241487836015895229522383146178215104057896946353920724817271269483676137802272504730811912277981080713207721604720942242154235011580320109579119980318705595283689368492554692278514086991811621866426402164804055852227209642966720886453725904588225143712435121019018089742885259114779354542349964716740334427652942649046672281439585396941144601919212500282849357521353325378322458621962185265289297231813134481637915063152374455169288950278474736476384390340746947489020203493113427867465589272328817610809127688390730223754798411727882247567651067833719397330256574726642955615519077017992054316289136393813257112894999299408690761548354434960735880837708757780678919980087290721414459465504670420494275530193637232363227617567604639062551681845695897518907970695809604474530315777692820642655254912354598591508584945518061196792450403974562301959297175380581682646258470729860603633549763748066853455181738931243889387323071398994637882297023972976796096092282563319486693617583182803622580691307303965898867474608222715677794033590208803158857035012551903831260300882037584549400775753563185388343334528173925744645442831543415576528081858944644907789615700745066983658535862006146571006062144918315337806537025784808391940902621305165999726997818090812020484880478528035928701587459148717468478677425913495096531032822472896249789294538098815626132831311001397691893565781655288218617255935378213171807876579147345863348684778586983016030387406002482027755647142107601353375691723691411566282881967135814804412394168338703837655990248555728964263297492192831112789387883491495712914078909130549842243445252750228488905112572676165801986891678588782567205939799260530562242882500342944577716838436632239343751508443307480017763486449177119458117359979481182583484520674203012077252624772583076958407528222168964602442098583287563137385551808938961027359579656004269181457985058489694952700535559666420808839655625482375924617851281992766214647662932291210204490322459490914719799867107244660784121303959666137259886213269239370950460708325583994146271798510385318836982917827225104447978853219682944450382932904411559689022720844864792287754101018505433357587353410102824665706901089964762148985897195563621201043083503945242085837736989158059521389219769184868266210023331355905816660944081062492134540267186532519310142360214418332364700489862280708976185139094281785927462303920638332089088233847834856641235102862878982831345207159840424042949404434302060429562587647546253960901106947867027806631313103795742493546862525837070219153094759046024584630393676013989386134464413755258110712241406615741964895495038850967923096576582448892188272641527969498190425045377014701901815856119566872718115003353811412176145205442687576286739909886252832481037523759545541974624306814208811763221566736134013282359978869488947139518616913215213267397966949379019039438401299677249957732184275102469242970772681001669454095775438086306738891417085304498553211571969582158679806569254978099366921249743617358303117111078964978386664381984843716906614621171958659269670099395576239791703303969668171942727413648305859091431441450436733507368930542867809351233531856686103070714304203749793866773237027172626870960389579757228395534230671250379119790278041820396272710277114204143060563098298925398673971130236416818363246633102102195403516518465698797692054683838372289560919511829223241971803752357715243240418817266676365711165027541716153243744998099896555353499755600388936376610910999168814159817845150098392156781427857889846698365310365919795386340064572677087864860497102021074180786215955448687607161971238970120626085400138267861407016501342797025798763874707905351358282345384335069785119950561594052224641813047780322131252682309164706219624698620345936058082901949524759704474083341568195951484151403508095569025629985341053081876380037855493017643896206772279337545464617988851470951027804704189183441944267211317810920961451099257242272587383805836800409024578521057077098118440335444705456253819389849549902115201586299175376114872440308655102902706910390092937863295453133141452244159007458391573544725585455273581865499621479664230694332323152475674532397053351545714361112147101136928143817250575137960452101602125208707858262825940327780083455406119303631340335908691711526771172621318817203214652601515925898237586932385718514058349527753234066963179608463944848999974123408915235265909595618831738183894095862381986605803341173531595327566577961666966354883217082539044124078467014337438912461607997149805653469196052847712949659452654245506764270150172295733011208027270114968177023998555370694176549577639006453101206092440746705446999006932995654773732006390934097576811756444511183419677747640314237758585597690468597836609699459632648218458091977931510410443650567661213558894803790445655475123649764861253686580299407272549187384926218767702541191734265944027291970091574619160808573251161551328311338232937282695172548363875336444311858999934879889669323070713093368292146435206076771933246184469371401364775369477337522483157782258939593899240796101296875056395371120443998053848001169374231971807239781770386584692040618323395629224044391941561144852312084157744073294401676391564961968692868527459319591409717924353121323570210099319154621072032756608115072966341364150205646087727348658402873453773441077794194781441507966625226945307182896074761903559140319886987853022127970608372604393893089257165446632219983001735251930818144354293907461094855076089319784689748595179381696642823366891082453303682630419863483595917962369315452076143257553773736961205531663526593226323344318233776378263610422986819745495346911252240892931337906440199856045490412604803388346884393209368246796288528832362921233199662951994988317146656526395168480648056018246322171629390278614131323278853543011473397108942691128949053882424977236184704814999284447426346908495424132315825364130591488707971161712702284518648423011417304044339101957995941455170351139474870944251517071889962480975072798141557651289920969706338948052974733695907299520172801074005909517846821459931786709654228243526802779293603540439368422261185532043436651604554126922215861690143247454035481232713451625281406319872573886334868846508944477191110723622461320908808143072034371674711099602491387191977897136046031796384134777154165877808224991964151870731627525757119007380737171377133841328758244906642703319185468830514830999463467448784860554582604488558958485888070164467911939260416513553364928846199546921120434607539229387500031052669945364559148977300201972282078699271922376897443844129568159417823950775449089134679378645654723549860110469120652979847407419043407723459556614296752507422819347834476153681126562108359169842072292984547395634013608780962518229884678207097554992465765129188028767007276616068619266085883212798552648835093148194677436408110733095657319901721919611872087946537594007068993457850261722002767367467372972873979531049664748061317619345376932996586824050751258577244987959897521540368800763960110199851044655516117830066324563711236628527120593249662354894904639096001146203613706977225551061296327991174475432045684229373802797821082770078610351418027192327026028954456333806190243852860788321585387774738985559509215945346679391719174436837874888334404370282464888041628783596875490020625013020974057398640534918374611791863663123620489146870294146920921020042984274300435646023305550136939227761352676013570847552135536102563496724957255409963720547844302035302629660660678301873018957282704557344583123863312335615858294115243344723658825747340997442168077433238649268823518989294677318210852462801920310254215467170268649198853488689533671738417240713751462175992912693500032621938704866292348578740814793404712263020048750834744207003692837457899558624738572009210606637918973459132846850465237252334390398196378937507119396724785671670364569107087152952288459210884586159630626224632913082600113504504199074676910801769801077535545989171819474277079724384085429635118731889516915076447310424329725066422081109328733113973576352771232540479488291210738330255606048942414032495712506963198187651749555637238875056152897310514185523630088137638400398487095646740611727946997571375326604157659226966505471514896303294083244554318837975341661136262542188011193375654160374789791550124253243194176110127830907791533819106163233085638803125837714555767993265352026525523569937766167104806047020382111650824854544596456143518759032264927229772389476696294471994890534534512758567600809660532720564373022329836233711971811198034201873984817624707072853960073933243063376241148176860597562477112042780715388238362498540575293843739958218129842488130655987861671198230356581808804769665606964951434124065891811418462959205209680299964283149935632996923002457553328149798752007574466842944887933882766468060004537739214899110148818674775360824292464379047204921537168491946944837373805181149540930202591342844196723789429781594164983725428598539586882950570653610509393884247080022818960171111637580097378299976988120659266634320636009804717216412007873858877771169045970987993989047144980086694134468600586680188227272494769318081209907073670940149358652050138682839524694311993166013142225839576361378219335985956602043821313701959045945353515563148007015499800317470627420265798476852699805254868294988273751024235733612165433158985831938521314846688366823233014748979472038828567524980008428466878805731580812660822309821350496076284431532666188018176981676397817136122573274379806653687304295010670673500311131973772747303068087749130376756745559864701146664254940379460488690063275172543594737161417554935825875676161138507045273539065005360113556601959992413132946469957413380057332641041517165530270361984400852416744211307188203567012859767462799689021235224777985430314482659009560937420448404598505651835418865987056113257957346495902967943565626556752378326159557900165231162336038809914027225922635854552800425088909167436601646359722713318934828896263645208908088323106766422658381368457492217439344877134019705244071129608942152611425785235981801851381315965623876474224428951536414549426216260665988704931298467112577721772990932636346583767787169967375596575337359430199906367302346307448926448309010691952623630710083664093689983597984605754041333647378754078283624584230813048344877499245975690018961538387006089107241187307118410828047755830139047781012559063633179660324264813785768303385873310712058503385836515136495584451549291878418464587563656312814768611707905746570907844977178115621526708512307034496666296441918421342174129964309156148534254398543839663689221727885597042685973382302457287616115478486548814964487315676424131325367196458745369539559388031982699681038808603182213956831584267311460555692673675110581843466397574594508169528671317606549467129175255017713918585281430231501277246351379270340573871793549739380277970384208301954676722742402316912559001065120505612337930563942994042448516251285293452538871361997323427724328634372094375380563674275764024978094347374419170712600013249248665417296431066854190121863758728055019797504459566673513539658136685429440731210329714656509419442504168403444790494871039195587237078513786535466694037790723692630928003333514967256933584032629756447472594779248205658263188657306952422575551383239473852888872145921976443176356484786949315265766023527040281994322808207191826166711043246817334733231728928594617695738629619140050070012820299278305589280254356154557326886639475199367539574836488267768847164310410801193359509889877231380766653988550478076068502793219690247729539668547976759613258085149617541277530911469251395354649489637852311878278142802770612950902974446878642567275211532664739402655041595080991087594187759627575139559008828959663527056389116691211433741986032385904255640559545078357553234766906253337657262490934541561937712892111881898463976537825616631297909970932938018935079174153277371891915170616078732787481970874878384244623602508902052948767740695174901861069824706793347312160349905291670778601545030372924817631695439411350125385806752118832707621102392045523818204638256703403661325921407858772077771448929453917309168505449054332569939630912530233201698152203903456022234701434194723314027970777478556354802736980407056844526535111874620737045757954853013264421704572200295475456201019672590404706856208097772016770609100551459509165795516421510518591781201447662312704817166741058978064302484333373918776959573181599041801317512126921595454758421581822802118262996767650643307615667880549026760532398526960572669053869956441385919794396205486100348930057716530889984174302954270349084076460573071636821480992796891741841875209787735666075921950799940008799486370381869800827664432255200689841539464888554100077788507526559284951009908127851647384589915091468505625199420034296819330235942781165573033969771247610557418528885948283704092620966405352307138768448118739024362302243186157128419306762882672256332426514060679373376855276475254456861805379196979269406917086106569501295275408882071291589900590451955654319472891765930748855983069068340334686687260094370077108332829315143618694316427340489368102924731806837235910675284822043236026766768597091489096422851869517257383764578648801158930525726096077743975336398063370142393626553257796453652180862473447382580041652473965329906498139468441826854500198746479453865165165656199190783937835522191712577844221498998056244063229328665834574354999188324903885885371371210482439174957664852294959390371138496363624606983078917271603112292267997642524319427287772677505232718570944297697603750515950855191351107312791204573526300827261507668988282894099566357101986161030955998013517906801450844869229170359709884896263398686085480717441147181227737082382113829647678269182394934421700424571119925140538347365252885697505654033786915969785917111858796955330467457143225589897807871830171021365121079914376240504721150641625571097142008901545592957704876672422781115300792978612853791104982272185607839610091780863659463761347067346545442530239339044227864937363648328697485263859367707513229271220345961839195420873570033584232514777665935794928900786308309366707104039766634265122376187592924100664365275458253013270296441513026204752146298406640407753864949649539713627118760714974595681144440690840012162938354240932000464140590769041130744147127563790510573514141502310450357571899539506203031305911761081165456952065463887028236873138532020934843047354860851732462552436949621347202650827949221458862357263626046488535649681609775207907934810356230985974484759401486709712541418299059602089263126539728970356565119236007638377136876326773374915685570933600784718659171932508377490193406242160884838638891036802618092232857930188804144628054402415731294206021061710941339753361579255963485441457858756778279304684847052815582127157795201341667681397395173456165495929861213330493262648661703441875183245167637214676234899568372719947517860680608472070736937537676981995671193140921381745957895808999064637293778922519101269622674759248878258192652814831246589929733327915773506489690681382224408059428498385689192209062973252602046044899440143704213436640392777074246322255665519005917485995945192114923384375238110862628794527765475742502467785273726368361941066039278180895926793337652355515146414222065222120986224346293740700824887475240519698581225492888932203864143331250850789805334751805144318280799898177784106401863183130592763791138152797681074496587763750066444125198781334677627345320495672665395150882910273904268651383518721765971860656986332829778964032710772767735577399125672506510226166551841267137304595556766693169406136557957707073721185045785815507821075162904812158145055159628382221625902695701719646245953765975078810899249613110568580988089956007996768389933596883677976708307489716889695530707715136058156489081252875695278983085828199464334608333893527268719327097655856953217138879382882193361624195980007868014517710315570844537443730137268564404247078290495049755905280158841899086043673391775613374288042045989404371938413788445774907707626822397944719359532420547645366844179815324708332720633436230898406631231254010623961136312965726909233355876869033214482056154928966045597682168246553864320342336672556511303957680379136429544700357430532031575838871169497849193598538831297931319411371386649265925268085548007379676978340675472521750462251407135734715426078327369261906525097533906474659514294339240163492939862890306346788237574307093127839150811494279627640760473127134167047038061383514688713334856076393614936882247940945791421893644675043000925910018891178242288771554272984479926775836601407361198852295756693460639631878365297691772598982019287294815754107060044185374475438017719762663475150863680151664621841762112120910004656224504695938724537830887742328893774367915112539228132486021322988876646450884226925995410790572024149593406539650871640213997577327718469254031046851223084491941728732504280553230646137134511416053356758165641976548856570522155546871726717972132080551796612350131271889897826633045877570506697438258271275102259516714812093459515882456750720656970831222250535266639838991015002981916211420536983967862794353197111751744232299302913782734876197732296208585717133210321584190031437603728486901759317978420701079701494917057818376819332778847671655726686893181493936697087430885015700170683455599773535919782298336419820770244850342741078602140943419785423760134941569589347422309671271560211153373165994206497655780625516524303410165269553599322369527064007055949901705516297673559506589517499968560909971242420059037072803488029756769703795716962344205751413377268508285153417735364052142350854789684707585777686159052446099737270245336056890981731764259380002450238992116705070558005722059973553515133914431985581471095819693592411569119874193766785587509890525254580918443608620242980117580203637901934285530725484778962823857116243084429704282829858402217043134265326402169945752694995126905189036251087844505595495386004090826009606670928889572449820412409718904126194839708584712459125394321703096516928929765800826411031492803600916634123555356589843384611938886355045657099788394034903093140665469165579644385695732302328450282622125304681719592526675402015801768070940877531668494329254475854455235723420517284686405062215355087102965280127550746907899750650902106147048124658140879201070436926036523935474795040944296856987166295248031460219179592313022152717193221404909298143721248344452487816687796876867195197027421571070093149840751017502002893644338521658191299879825832197022334337321464854266496081784693271081316903846352920346078687562126325958837803900686829131701907214868301951848654334164056458008628323018444136323647162739951905016224689470885042375506710295959401631658575321453551708054166819167451470598414057277282399180700388066584811743823682144462330891920249343856495471222581452018925138207339303752111587807066831103630189172714377339354809670730255140257458308629950350776806193819342855764265879579886832832887467204670922339722825870353252814906815750272883400115989255377730727530778809926081912291152591145461207405457646401418344897024117840767532882024088446716397965380414316288674221859263871989911161339430227866646037812040485835416104841048574865618619419703167180834323116480383541490287417268139146048981466460870787147465703945279566561566107528630342496864091970608280689989802360946561913646225849599731021354887481390092417199689958254146570356192371467352871701493140533596983031784164973570383156291300884532837848872990214116948288250130885537854476673901566593275063832808830402552008142841019974223952089645548791893018924873181006905907090296033137205329018718353082263513650692334620135931475372740192169036112123983885145812937261869303782326782082710296595329843478423488939328021151549827936749984291960421610344323215492535178331550069855317799873830867847608615506642259403479157624885800036626731902512276407693868006107243761303800614389034096048038050592522349470108412229166608185412260735829312965425756819408709100310089875074361229390014330325599466629371595422023714940130103933585555372093682501899863045820112523528739040191717025608575921791934805471980902328522451244154815033652182050804010477604906717327114298914849040525889467143723792226555278465020587286684498085787420646210650142436067167574377429113051943109060587447535429309708786637274559032553250786613074604862270626531867789950131829845285093508747723459115756885832941636015168018681190734240006200299734744828292224822593346766953726144285436624033098442115125438138436671502850012275273297875794828572933456073157478556525878599277280754045041443180295568515499748651295922321697565710581844394969865059694502010370102429089439245810921540918269019790025072002451715926364145608659584545615846805984426486625114147401647430461103657253867044992830307361549369118101292811176074678815698386281507386865348550446555114215203647158778497767211834669561588445252125490990869827175966692164365826396592499212194092027818651948699175179885887723836117837106403244946374810695046705660426294176280182592237812405382141081120973137035243954361622909663676785072000647632251429811476500560276942918626768597752836472072978855735802561744504875774319271815582852800078588822269768880934374611826332432745758948573135091085709221096635923694008637678920238928862287210926175238064512106019980571472412404416953486598059919634816957316712737292407336068977475952246963967744040344001228773269554467006754086322405779054336365739911689072771851589245059197090501292250924494782637448129864943721062470028934917794270351261088334278435256912624859379048876710750275697355084191952067249539521748876659008129217276191847981525644321451977935601336628339116776836878532972405838930177638579456341199452085079339880110134463722964237690810888334761635683500827623862061660165127548054225434420798993221784470932572857690321018681306854204596906424289248293916706148346109168284113348581587336306851332222175699992617112995699831187165898815347640140049817707492190536358260823518286958075762206296016091002552004677525882413996705376359941012568544902050754355868848309204655332935438698631604171888437904922817986016565390887659414462209182815517945248823003501089506887575458036211988664621082211489455903425200501395269928287577288519002999478265839313819335894328085278299363499779843954483121129515162332233085421751148574898758476610224100737619717410957638659736638894236332231183392062538078513712438964465108215804891816636537328276945478110070314779447022171710215107639351170549553442660050449894356175946678848272441473578260322306739563237910929061443030043522094290024367074100884226243635930091693905188062868088053931582362406388969973727634870131232894631561692697598259373634715178880358052746707706731573046349815972858723789761837012259802202794001485412640854179927233108837320275027310134063982433804822709317265375970900861451707094969658386030146460063273386853523022222198832274946024393809703665236274762244778816062471457113401469362878853708814282665620611765219515642008800347315607105452559788477952590590587866052001920217968286635760341497637703390202337882229272078630449059039581009384696689276279813795081910654780310466890325992529762658401653116735533976178920385307487009662774774625539548577580135548105981642827613388292119607031909281270038687263352204582749695302738020509680976463878651653710667571509945633623106780698838339978151113125434630635867353597566673940474669007280854765658852191640879703830159186358194988383782608217458376482830965027399714568285838508566380440701482229286275681489083383747796717660374831321895110156176879828063074528319421936499985810946518382343154157934773612117560338262697177913380885270383862404855222111009816044561809203245508135633734125465105837319147325463087281482295118170455588488536294905444374274910046754572781508413141972502672944942522091181660041087178887926986369490807418258898111888609917822349016525674974230318226968316820033986837577050103911964973217389723989477475989514245828091426728907943551620931330493903703424461945349075925154985203871111868904913307406529414017885468931017717897830811735697059418769603035874752401744733241949129279305470367385972010948026750955183445572921544573907158415584376463862787593755255368552331817740818733105262959741169566861819758295132123527584484801345887101260257063709292886344373186368906385131081765067757945271172755230499285592695065330863868593300294221657592691084738629942798896945416357329640508387072431147086263283788156714843386459539036249375547361626252909489954137935370319496379544368796807966159875104154553414926530034112065342331158104992608816664072040528535408509132709068871136440291797931238813918540542975696470427770083922414485910443126041943198593832549654230704214014641521926602166450720839136335011818036336472742399917258476265283046714588889741189255706790498056395718510753955912594794131376396551306656349115210784397573803683760734167414478547431096485582502376973733420011318996170904757561280727470959410177310211871571418074798433214312663864792800685153060334497241518524367635085404143519926530008317021513214984621071596517082426840991639594253701599978184574430738544941249515011245520630546640756475134604232149986635950440671036752576299147386414972424688998881431410865857713587410826314326958186202244376253717690655710374943307517627198651121433650049309035765202766395056835493682316095104447633782757017898226211537061257642320193344238199214268363276686240379508398270337065977710435350452761210539470382199767478626446779939422387956519104527273291859997799615897925525008564616538350164386532568345029942799823237027938838727470689717726078220090451084656790189246303191485289702766679553541517510515433824746729160858169227753099210687493718565800320928752618698578425264924042460164084469797509382846356119237802907387847599924809567573388600565773315985241465595583631603183312282315018068892051561023903880072224454243281054082987548583156104423556092057838329292985328200781576095138025306912290916900312749920192844803485610282187386937972193235211573764176593153735529596070799327171377986980298650863245606006885323631055872152117596640813555604721062831476920074895774900174809594585059333923670067495481633172213823206659613589787593948085662304186930059414789905052592746935988729085432965202060991747052780277370266519277143929388419839327690565380174097808117813976478475437093154276372121657702222269694480907978777284512751876120474286570725342661585692034812831997148445357825908406808571509797934353554676210616731407984463360396783697057064877164965004331314473146460700757126203224668605582246167255780341646412868072245211816029800259397388059955967609943339259016707547215235793012572639471877137620249776201261141227799913875457057127213361670130185949679055161412880432808587522303499094765326629490921509244746921907364586295593900224528631971383236877773246006621152987101586392308119077038712456115240065931559417077350005949217972324250274136134650372804769107436874534821648159240597916788633544978242306507980231177108962169166135746692410291045084227236752129613383789124755004770729568363527160736241267295197037860637159325787422000995623968050425491450785909496274427636042902364076997054989221317826201096770210438651159489400905529323452209483818025202590644662392546430598550753342677193800658863797510542202048762821546095357552881271514066446858549918018366095020039845120743509086790331693064707684915893324624873524980918402556909134597478678361940138595248817024526380678635243658519154060071631661971780948011009052158198322939788553044267653142689429910391428630767998156665671429010968647402777160199703993981584259440214026743535961521065338788173815554379193136090154188119880848126916978124282647799487860613887248681074032613163040826819619149974742087876853739187815422445031314104623316675416803083180730370057493389056894616807943221147768942243226752253683623106779549831270720678352061107821033579398049565974659106721283594572799526644244344384220043451384915616026405048793178133106735896354747696397587220822397899343140713280026611607216615733899296558408812635800071027513350292541688666749255907919698340041806715863131568658988791217067445809110085008216882417937595615362157249150638346782320812731801962702704532071727319892169880181694720350794287353696879324580115827305473914136414167154381866641515460762478532921830094202103758436043826507740317535987644035649897103196043663896982502312296776020142437902318932470270112261957269705315410557814243273747754505479426438326403855812501064715799072617834634498934594422506080831627697143489411454108053206198580955989132352604248641280445840978218405506091219558155262398325615218757637726771821889867542401740931182137384161134469569119416957461956715039495888521837507277258600174805489135842462900747977866146120993636081038845277902733507768204185337606465103190113517862486264638423426305299489035458116577635997648022831132582973016654830987434538684236784172530917238852943487908350631622582743310399571172291532545648499813240509073115441428611179506045505258762702233559705757131016907107511102117228984350276423136011439942618747334887444858771080391406827915227849917218255404903583162199749588223933154347843128841402404926615465830676933784907353131184940908581949167920264903575679229057441987860544257954864978961842311320049334907483590431764342784597305283283712016290002194703059550812769852895603141218044508051249775155413331707361161099259276549689094834032585873151317505078694381511353607735904775747684398844152844440109064918894133318882151733767969100813346653999516014515324931940375749050058154335416176886414429290226534324868597027747809919573297053516570527077377483550342150415785937012266279622254498745902510148155070523675658730332813327508035733589437610754005986492591506828053637932082602925695140464524390135801957645614265192948146678586015966020648798130933700897913217401595793333514237265338536976087522367681769986392267082112701073502401780381685006422477589890706101675181770472144165122042102345137700427386649141662175417490918074670820975892877478902446383881638910286773644321750539362232047842983237124586053833906468312696441888428656815216328051097010511173609342113686363466099058245192203886522079897554059559473753303779399224118295949964926881926940661253260535095498671125821060470440290177169318806815867224532001572927819914368759349806641637744145086551811677227471747505622597027785653909212248237779087232335999890239837388978133238191494753817235244971460415973193756672657225260290914473684980588390995973202695422261112475434179984700975050027078970909410860604090797470935199519956344211202652832779890511653065396135160796160891890561503460230110544987695704336893082200598563483986833215537079141320812691427574791014368447146124902160503145593449234201335480834574520269337062144496035183291908267317864669716047927276353907409721702340953860857119184856951144656486441259768074880592319738506049369270135724054560600387667812371871836651133935460583237987079311941432012753737546648455548880114940109317814936783938237651691557090208744716395844207133423288184854915897442015915647131082886234657359647154038503863757179853499869317937945112170770468129735370544976558876854135788065875729444145865401675593787011419283586172125438436039022671677144238731839923990365771453272115383742229862746295574712927043809184612304644936093218414404596492130821391357754187638578388338501307303012712206325065831581976621916852025388203588536147239230870920748531116711625236501236259038068308776996525810169701926356601813032117503939726456696342813243164776293973223567002667251300482136159785721738534392898099096110613868601041043746305603434552078534933083601412703818197507728224167146799547493454878054436083696580417786954500560112022076422297494386327419797466052277956430404070331864571847009433783663168705075895934835292487852871371200888830269317605213049668040848367848327494089395252812972584159016245933423034771040521162910451922389535426092270719485699761422508686814007510055385718409439402087873018759457322651869433160639924584518716239108221622750095855946331529219009674984966230361921686761248449964252683067144991839547733052834474242519523580854555040191059947073820944408273235793069103940878373584727569811990938005167643548932067749710982164814702362688811291964269651602196264792336777435888335155054747123043167202659362131241062531663049844067913930132037542506309909934498835223429627621637157401010213769064342879897661922772345561821681130577045820148980735014343051055705741028278590375667842842050608009033960938437388925327490365835608962923586995993168351618604149039412964647919383675992064685700769431263914577681767884496245857934488682078147902950529540107591606023995124995804461833845444637073495706729313421102168895988133085556824163386905661208400385924574789053827731041357598269533585782362816009337512163529768247390571076668266099770028284695975125082436565479772579671782417812835392349839133733825428273231567277361592362814925138652515524686993808507675026610102120226438795440470503199138389043192583101382898610640961385255063856028592537994249291578149870833827030618106107642728840513752024407182524469336924063680819249981897274501579672356117373028730082054371331933401093576881555664522385314782353080525835176170330399828757948755515158600151343974690874340025839585133266249942326635462888881255545415160672751286452645602056933381333937801087353858578632536366823938961691385103878322483435225394788998299536713170184670034977420707138245922964605763433247039550731370087685015859678283602527070087818095990884570751156797439096838132625958836957697830324232637042032314883064472919106335476750828184574929302197586547067663047107301735144257518590095858182283653370043095781530402260073463898312057422377836475037411575028145678820725358759329509960610786713371184422445531785411884208585620021744430828835081181899545827883248563461636525544595003174491285856781620101810181980594714191760891935320203490985934750699895662226306549491356377726055903636424441480723641335078544302434816390896214419075930904498034371719952038773692943559658913266710497596853168681978277458825815883542351570999406323167386009043768982263109101023470237283654533199955121409445621415747107345173635473772408651026496235491406646569156080137699176000421988812745253614027699934500266910909726466675590745031206347135708352420574035979400986496986280002484649622844325422210211486597883820477089893000317754999241455687944164227551960776714195750901417172767058311808936213151543998880926915227227955044866042380621612960511984338435468949833153126869975697751444384717892611281260873302619206949295800149034672569690520367570460951105847230420186650507319754092903873328864123812632023116177180652448017452775401162794602342994257388177781538794280186430635318713254942775779305107921050872361123409772897001813829087813488161941675776100866200607972629734999186873832227823210653651399288205560408210776414899051282520661111451073183998779662136603781385549536081331228256564313767467372526270620929120367856460644914316072697302925785462408806169721143080483315199740604231923731289974398173661916302662625817515751389977530863406606772579477743311270567109547687179689834416276152064213853654089531217253240137023516345792454019260041868581178934654262727791979175066871248738706676293815056861158672080379826420735435870525294781787429616939316728971767503347701687698192145470951813330851234752816652319296328764048971950368035361401067136313022375680484168115430574326199619681027725778124738069686943166290110559104407861075761423628708568315343131225127629644273317131002015347517196569112332894060067412174732327734221431455065559968268085092342566938174894406871193735101978258591019840774784886033059364274049702984505658662577784071658222766662340256710172289056394117263766597540532643007838650922734945915883003838309916108132492138250543133157013373253340501129035796284280556944356842665953015819389237975693025726724615407487793146320609880386618710877067825497014032101795260365170259273140634839425777771831356354614471231704945128455755802545402665540538056235469217708992465152550504033726607676795640697630422932525727031960638883581730208009433558713507625931586807713201207521511627595844181522241257187338452232733473699614765877350526778259069128342790507665407234080434783229447458082654501085746951248912594111653492345799305285721867069008246479723718256162443615087802124064112072738574053520120256686950998875633880040219020291703861456021991857862384282272456849416806064990653288148105189490637089033207326176125009756674305559940261019317863320874141621142872942412645594783134217282755114889478625216131775613872802221792517587842342528851093632721468776817038133323750618521238838550609864431228729467138574553118065262944794797909934565767229557964933604102641277482210602520951037646205820239268540006757922971352054396533572119612046502725895570907186167065335733058862932683909093593794374517570183033554301625669992714584025062273297605438750531573011877662478684675065623570436595137415091276247496428211794529702732046849059083717158151149196327562022078854050165825417609599661723169426635463597734707765214955401706371955067778481771462073635304972124107304808233271159399171511367629488478807286125335615193805736255107256878384349095107242636163229486809069392190547771852090993526243411317247411977140410407539125135116723602633521070733223039357102592109006936692860588258821993141353068978838397767615587943706703694921334152646758364839926712522322589830695370715528956007418497374667378263148189145979237426238325543815260647811192590637981327600502185592345956147605073674008846325213163747440848870551943670022539908597517170202805926157456534616788842790169874983183920657559332180564919097964302385259772118491289171877161868178923418376437446147734057391085686380092984636360749018170970640161032546057572721425984748580182385930489295848412534946218085674012841868876703922555007462580679031483991231462997009155988515951737947878178340493635642957730623938874587955851962583444770366622413313715090217953276408363961454900303030612259035771413886047964848257399198594312029465162340361599983956036641817757684388938861946618063295079068361150633567241819471165731015029905206252907887894606001777879603983149864254496555828515280899518098444575588261403417164967987441818019431277718601448832240781537917387980083824646965838529838635031296895139703015373843937367054154925089770666786356332070209947497313676110403712648896605061495280359794183785771883398581046918966605435528487084814420628109166855577729605206096394504140506119452769801709687748739452262989122052627072835439137091371056893125221233789932962995643262969103681139748920779178720551649196685630410377929544652888228307640994941176588082641988153892869603682459705187915519796039416393997724939258276909081851763675265437254277100692626578823846937080158143045030749054700662462498013847767978625809309464751271755892742121343341019380723325649224897878726148299207044883655726380887646092028571406532262939054367695636777606994573747665573471970134643310966783926749508585790634965914412849847795846396494136016456018661890227227627670857661431007890720887728805908046671330273849032325719635747123413163495326272100345329664197889458304351238762573675948345149711737858847321395153781676953830034704017176115887454447919893050853891136933220819645354720476563577912887877836109944216343739455158833406736183332541360514388072073782612832141203775896021228211328427077596314848657773164433659530399967154641704737846844674084311463665055849507309141373595497072844033342073402149522759501882105166796546558426120791372454381646507686129747897884420291898437963901803208862973290886688408294643415509548043591522506879332032164800911619337059786299588974643550255230939714265489496838348992510705047529319853677305743097874511223480907001022916438783313116593733522479385073396010233967182113334753816382851865767889534152771238037545017662404281184766488946690888446321131236283459157291205310153412390380800255450448021991129717430822944279962151433739196314847120929540695897746114687326477339112254322950171824686479615650647482317515932293422722778385764270591896860208301360262987702548171214394039638901811787138737822952734899280547285607245350803893611878427338694243356031981690658228754213772850808888455199356201567551303391838187815498314281639981770340374517069633134200228010889459765652909392093533747638261166159958298322573683797746481720704674978306565538338211751841268977460834770181879666094993152216998698529806799272810177119441150893252102035665272594852185228459997913285902140316257981472446113624956276443942473578782739911247025302377854648596740375153879606397856569871911286683274264618689356906614325803456729904145760364719642987129835678207698869185777240699270854665369635473991688250467449229720949500230163405887111362325850759465260614954626282049932657643524112065015754874604255508228024419042886380837154635792477796042526836517456042024148744983256290201369593345079225676296068481354773755674400158764824032877898538971046988139016587996270819162118511679507727195143774070740936790108860260638882270624179569563851726548837405028723690007082496272049310999192908389946047961625390264477573502558609938538994120949503880694722747087638559296760088437644298664026884134866473377977432591302350934313950295971030809458741970920217378181208249630956033751194565815308327237864173387777630242361987861080130554469858945503931256829451598253091080031678511169892223086531671104280416862971933263688732828591024120676375249999794514369844213880441281757181037948432135831912435919223207213833203156594082456491994470077404418368041182312830356027608547184170195606207641054847709220487773945009920572413018790514339056948167281515633667457008248777770278784934469599222875602872717972793888390651555366664566599152930530360209313275377123558207235302563852124578254429444678741285206578432755345422402448973056569357638753876260847770530715716997708762155734212977417821965256818069161151554793547272053435314291621653143211411188162975285342089688037446032560728473637919444407143863484646507668432518827962161584683254843764881242873794157759728086057041875108427085885191705032994852036675097766910480245735694624525470846513566009486039285735124669879957790147764654999899866642793640383412981899319987968282760577208004944950656617910214012622990180279099116831669075421078607235064616513044131680767195019133393739737860653816653748903684336980013439863296274011896406484558465136390761436430585717652657552568117641328452628114166303617653805127630888103575054044964521077657683728680266343269302610906953037272646837001251901513025458878159145548296484151635757705547267811460387356978102901216016339233786564063707803326864108549046763735889694429892974151623572658006235455255010158162075151761898855583507920901386325204326307665391405848870984608540391795760775939947500743727431353677241585846696927103247231009544288372310221830579665697536715867030740987743005798324936447197126838647790618438415150183909699860506471689429454223891908970447570169243211425153730509812816050625160676557987668476864129895117653261778274044121133295192053796850812403029292093336996950845067322850480650145993639865283048728664588042706512413444865068450846114769382352733765008099002090507068679554278338654528747862022039119530430224291365603283044864183222790681006659592595391870386974846919000522869794283010573295912064658806279443681791291343505550971627180509887221717879728797118508296811939994687415729258432116078754744620427377845831163726168432539225994399847430491385434941780861712021062620011198647938144122762875062818987673461591852317106444361857257246416633767490119477833056755462532593179810633174561788123170817455790296176484448357995420132575375405629771960242126058716371738737813084521169939909756946328194111024138063562383813079034473159872301579645027994725351977205204368167904045891250528461574582768603940750700819390858635007856101470323065497064358650456313948354943048199024731907380834239420639806402104255173207903354369628704097726203104676791763123827894296383557186914973975598366749294628468407070644299598230179404667663141444492351196407392856538380973352135638445357090473024924816499631946760825612006225749103061574934097126032876802309890016041534857471944587997595502106263014217007738011161950837309305338260035178451034507704620414550938529449632468368433028421721005791873335522038093160379412037683515171555149081172692614481436679995507800000177994373280921974191991874306677725290894344235014485606140120857812777356250529798092487866433923190128526232444102947778237515969118182556739734567760750444677852463867169515081124801820764932643770654481631784949126531678191578271939894801416723106981719476589531072004762003615119360500061533299500625940339036212129167092672447756934736425006854866921660813490544243621175364447667812014184238243609792141308863242190995043482027116609560917516220691303038732985956277401024393935349003219855805745917071169456571423281744678974772465689878384418589802283925437063648968545697877888256522188380336534949910965953567830888918892960368300067287378634914976292620900902165322983488910032122505324399810007936338583219998102485571794175890946149881715325539927399056695532573863425704917268923446934499025185561322900672373884572299217910367505655974363198146876264416418491593766316977910430799443955481069243248818680746693648765597355588745677681265998677177720648915300446449724683008571605547848238887430090956864848308710606431163808153728751828136818832046688632668351756942973562752178371067305307654114853689395382360816141846354461954755626549615269307012111926008085667382960861257372003044734117226445272222280190715704476897673952201214442243759170050793357056700120463369643366968202532312591816984990565098978222329282126225125484306973263542102730528046257184821052748516203833556174307620762352786082969319004029879244254680382277456276340658840350752541105527946588322873575789359875965316572046690870921152611821613708500991696471024781183752065160188695588380939511769439903998474053014875561900066616314855370856363696106006303954403980403188576207335762083873858386384531102371041107105460357277802859262049010196895059831576288886864139712094559242525234838773791187959061344794966695788346549566492358578353168365302624882923044193461483829516418641979290444702139014922185315023658368941504196762750602998803388171353673950983037302058102162349303812936307714890597518352032029372063097998853284698357574999457898194404392694195347325992950052670592108302666454167996995314307467861970037619281823779303446755243132677850504226600561485671219956779868170077522591800674959611104280714673598083848476453633970479162650656292939889352631135222645934603890436814205975014478951844358358554489214766449877891170949210898870276796642557011090472928892693248875620215653172484929954317080225515383328969890954353615966707838220035095451855387766551183342925979583614355617342758786531651375687345472593307327619286000716471800458414897414448372071835312571290090420309493969599339514155233892125462008397223765863794821197866945602555359136120301636437943560204316892060029345794843734039299249364316171425418541938861948213386504611506238498035332570096703180425136991968516530467953155445744830772924210920718616361065573676327099441469415305987297967351452953375403377175422876070258443261990555633616084836538234138660129305244868464413147840366106378660145454957098268326959857896233077014850167040646208513063113425474068348234141678484947837253102836177485246391012859135392025476730878124960252886939727674818989163478893691773030530994106307798470218153755912299323637142867727951654098923669883357789701942800314809012197127705687678344779817116214319413143524061160423527446558495076261156216443751823095948827914871488849428850810566013136086162979835040975270917470228513048389911952326038372695193275388054130582233406531441711808914374196176008845318540775860143321168965643708818899814114130537763543675780364208417380023078232500644711361529551847210174830135527779342779576729236564976942969277278231257083867568350132323966284962244881618253106165404429384309112059571714639713805725231265842266437715312035263307153646237722221711829237104548223347136640209220927935295154014467056515443313151917040618285945316878960793202840593734832939702815862998229330487657522717390431139597662192529851508428078253068101823153671542007182175190399624454770273358536942580091313068789548477102283325242326404225238010452830139955347211469093437152633074715141801789807871186642916497623892492512541421628624178271744541733255178791950513299611371915778747774885954744964213816943342378497759563161401958631689570211033343931357525250238987297661393504584310180626083358536580113544272357628375248986935882847005560762275788949839096910503222356486523055117204167801983481677699885930851625832313224787869785642363121542152816769280020869401445837187344483756467110317674698343978346767113966338766746042388644631162773238431784418820558942987627658372199334175711209669442601907167493592215382478368697184813589717965708716208995298738590585181476710313137743485042838763124591721124241302408317234742313918319434076595632289353181094607550959279753058224549039936386302313446090339530467123484003360359213359873460293057065058683609592737913289557896659602409986527593753617555315226570842976403646966567876442174385588570005877098356756040012240527861715128140411681643137916738548210630435595648159830024659031648062193640561833013723962063304084413005116830195825831937384686581228695001243920756266409175568842123644664541073611486071845394954897911476489567801094050058525058070324073745767446180692372485086263365632703931274170402113271868162665791720030133235082665004670561832509774627779017010806471457378703835243959060855209422667854014670327499549744581755459471691563466809501041013000934755366687686513047398584836783824796387909099417102536144344307408352814118264025403321285423500873252165921132988857685935079025209673286053357746662981781708546752795869813206995284551208539813664530521349805624829445888863221618471801653452909391044627701135798971507984293294298929616676801616661190866033850128282087443882034033214473852463022919743770146707062945399753211159142447846372798369169981184613298636166788635542737853981034122888092103062790650633494210958584290807203318939766000310483311453782948284786913532713790051219192592375247518097610722782788736465447396958233219329468234270764305014201624414241079395582909792399596894997971238109007546028852845906103904238683988979254803893849120340660289224113850328388690586272434800606458878396861990656198958640053217842078936918918294854007562911077606388912130367492550087794692167149329546241709671905457943389254044722775360035210558931395739626605485995856029618321104861964482772860436820213832568162376348558648656915614000985189533154626228774598302856932592006865051814553688093752458931583204442718954017897295868061839840498251068240902412345631764520983357950310477500811773712725520488925885651072098036703093912744915204553503109582434496665369924060760583831086308346987497655969917357593386670714851121074722620948988263670735700827411684107780474327759688583425649360615879652206723452102819156659512367349468012494128665796510398458973849545772181565133302510359329397613665807052795569715377308809145038622568388592579767265117781631237088500044861376867736456100062683192035131518235552872610863603108755180533507257459827959637548315088786775647147978038359953618539806064678769044992486792690392842497310866181034801136067044300449224153531619114889339173580595993575214352111374624388986361110343830050318194056239531924049312195968579879889653077908744949735336503748266488093343693571126867037322737151170429568392048937849691556945966768232028674251624740098678118130011502155932767159418361055007278158944386494676848376873981213501999188985343614785064680511306224143536205067349915021351461274126520942133298834636261622937588579962724005497624371462474401053230117764657532190082359922852554224127094809149313724597354659402181173213062757270646412760616494941860691379411606983085334788643134892683240649649830862477367228655205420947158062359978939156154165286306118809417450059909453257024291311427987328804992747668862881092593892666928649558847420401201260353627983695832588615037032635851572589208530238164219838886796114848365353372278877299980807850066312114405716137763748128551518184313996468504044219189469614400584082853324983411585962228225474483835295889386299927796974803257245184529565180752204596216292859170453392928966154514366446922791354490001249117630803888995166219380290586751193926282549546728053515402832690908683978560650443327642926968383981915556979299120211847471033475796281162592027909297080146090016154005395534367119562527499652594004728279787637086002474413249401739864067009998755165575367139886158738068385873226948715634681294935442544054490489796473145445494947823078772622424409902813822636740443401341180011747964207197352331468964697783800803530898705412087468119733070640628116935994610435509396617004657063091693961417809425922496886747382769487311955252346465802767074354639525752588444268198297318331888667869033932381338135657229428267654093576558397366685014255790607919853306088680483500825824860277843323183183236658313255403137914243657566142800806612925611060412644470812156337378352297663054035838714608025329145860958280221368668843806532845214278529585630238316997481219055321084376323727887963097725124688043838522837081730605277512968112384745038975619544570418483517490504153543775787419395855563052522416045061419080179515052636200949353869831171894663426836860170253976795622040504968241534510147802290930917128516937217040899740362507067259026289288125859525947263173900582399117120703255685426994994281609106488406969740644181676195841458830993017446109763238613875903443860953619279456322057237472488315151913656236680005499955800313091358159103065527521933144460561376742245788083275659985013392254334780997352704919218021393253768861126379523855384676461366890328564366944547306196408306743889267807961576760852825001035227118522961924258148040463549514831357766760987042374127872982105213086174516289769210666425769336161157843962831991562692160007122423122245484391417917141040395415182619534830899402098663288693002500318890483336102128536075822146360882168540888065802412357726218389033097542227517460660113468469189806288721202753110273959355074515680620595082365669321912804380161783320382785208061302342329632206161499864497065934812913395154733397177484451621982438796567944171851205705520339845945142393167388610709626118327230383823959349163600854564415260097212429332366512687293973037790971199488901694542703245826030690588899243326030008220930730756724634002579537129257625154593070713723348882668520256438781357700666555232671543465481557100951117439579664964203167277748049706711299671027598037492881291812275832729307278528133307608754593650968901150350989787404787399914915130731682360696676021085497693610597987200246908888115931424252053223386176431891941336321184977268431624980079930126125159063667695414424397993802827449284144393292053586435224516924384454687990806379227873077266187506494076651723259502375496000859539740503798948888254951394696208763516694177274181558042900371399864465435077090458112229421954805248190001149497452154808233425160949400549039460599700923977748100901918144694371594078477394802450088810757776279088936501099309872416728322655997382007028216462958366372034673989440815876346794523029569810230303749795095414026813890082170963297467689423650287563142283932842771528223888979863313355429293543244619781468983275695818404454427846511030144172984823917458514935149859064865034373849396009760308437824199333031882211764524771743401017587985818849030894561344717125913215734026128935569964813099014375741797478022442562347050034971472672181318200904523465474987432374345872864496084174983860379582855611557265536004162056148521226649914124584263270159444253643500579266991208870644083924446262105736977722787224862031246760767292403697983596973481917240679238433100258233946056787420157145223168109661283459448719015891738722904438668496091136606121300848115048563583274601515516840765824197533127286358387113425769455857644760971877915313151036107555784713608651989903075072497271747047580918874237941352344380163873628672076128061750152159389064186569936905722593010330720315314244126008230944067348997103787482311047956188564570418818510845651437674929759494895784464134362721284294168158866253166815454536994011748424061002918695225876854657886019906218931764579883064223494709594335943298838492809073349017189150507632137710350450974224212138823994321673569233505257257108107506830418302140380861487237556608745422691794994446097320301788892845147820346830236595087751780378744537840879803372055014586930484761700627756298826357411261201556084569987753962769324112150408883079405588194857121020060085983772137162815484101052203339583141292393414260243180160490386522968360081035827132235948936674639324085553055538319301188380090858319018937635101105201432998649674701575929257901541883480366289616774879951899863030572421433666046838422909390991879463634965997646769142279412643078479341367908692790587297116278931124373376116015057936459055251972387013453434796571051076866478890208477087624200146240345697765573527263662326730028718627293409821098607838778824348158736723806441405025084876633516771446177443035789850056195764115326808337854002344969279498095465845740173992092076116125281594364389139929538940921538939058627339723252261325406936760020422512911634747848792312813139117980194880343815114896332529369946944211738580929616499737973822970002944779631772839654177803887201476299917781918333815746939255911958549906471605778446006935432535935209917971762028728097951319129854722349945582266636633844615447603577405688819326567190753734353394819442274454775203119207038909094174214282055691274526405493791696312825314960071909413078748292289538630332929462140524886489329395874031474657769114013637475727898547585352146309573551799568152691815747575796842398845671535125333538996660924164505339897819651006414253334691544811268440096202152664111150582488763156833845137735280790189780015871864620002478440254518937794462875443170380294982240332419435291575500066386901294842001185603109742053331770108086766987155890222187057192955770253738906256903813212982186761858338921481443273753537156274071091933081826777855631634626639727351589597108205968998911595602458088134480122125007075832322854158873920424481687887317522102042676996184341651324928570952291098549488851666875434591269052741879073029036106715305353099209492976518136290356515014814370291635321630326282676282632720970380762102664069390789138011754072081850667612667758025688644549024486928162460696693911849603590923335875031024323469540458051694081056970016720134910487331209474207017539364202566819788792697904055587388613766500063738795015021430956668627629696266638669492507451333152912668884783254401325551610149038340148430052955893024361197721987558141391440515878354351348868275435216625551982679775829993892084126944293504602531039615822050804238739951454760058634032656455530774601631941206395058584608552304147622709535634163616735720716814507130528501729007260882565268983230100516850832435747888236233814410927011791345638242814676031010545473003665349437659509714022781051422702151963962670904923181916421923571490557402032505318132776193576731951919720470106481347838521531526013719582790597970222783642100078312856357093870890411698558600261317275249148712176633832093752552787424431527083079608994303039983914024257062738949973151491847691457463025735085651614842362183295326701109606041767468085509348936411265442193722519443642363213785767401186927990296572352132343006103931310019978302124310390758321843907714684174167545920530605557508507449595817538530970414325463107123385619114557532551036006050314883666790347023116190977829364679391182541681031322657773219819154781246646253245295738612883682389480826950445312175655164210975671525204158591562853801624455680968660978382129358086604995517844519248113919461037498592111196743587232057490938547900371039686238537105891955994326019269083631049941501437116341013026262683516955449762508767889902598776732950135569623776984561454823009044897927655260784969582169077948206417951277081277320273088639256922731465616370885602392006843011544616490381982562335224463276289968796724180182038414489140439181755055425062672950782965479553922959701175279418407056135226707662133156771408753318249871048974259108564515308650239824615917463375961268055408312107020747665320379870438177875548169103097144202571147319049705930922562677029719400973390882440950144961237349829262734587096111277481044859795573764117325889177312435657152437229869144934471628493680867266867884266121276926519384804572825527229296462474758109091987815788384142076651673217385934827408090013573840661269211931739092311706643473623816739267171671079812987610200464128199900657910570697991141563037352159842591058228931933550059361209403869083419097516686893055782931435115281443955480534527895896139375465376392008139576923785956332393584771540790139048049504507974665454413889339702672936315403255684817302390593418965382571151195266008316532919554214818575704358909157940946311370023172874899256622504059764121149225329767270734148658971228927526225617100964593606177039584660442975280200002574602711294076481631587536646785519591605878162041812771421306038112285571083095300880445003492447007582254216160851567500459201620895003399444730463418532853036943288420562632104061716607764769080010376290748427299121237469276324451649807463982724845546003385665065055525572484140125448761417752726070811016584556064302253025259131359177096232451131467674212756246389412159130442578853920734885785872563502344607997861602372819609527593042806398685269260160418253965551580201275926593272417288311620610874649179374810740930510496297381788495369063528198154310223532983538705871578491147276554078744331047867804892373370612237856428752247550813562545640726543011733737628000635341519131149369134208938490737186831879043979795190771381714399637228702492251704844210319372914681648732350157442641608574484926410746890206807290827407654644502936182521734908696523092168836767574733050898208390418052191800453317098805106294990233100245728743251896452693918312599954124475085863568639338790230349665857604430495872207615907041153008204489654506678510614263410231342418771914042783260494239348476008839342921811420503111073392976784505896512644335768036384593504265146827346207525475242937677473747339009213825640472033219558790695540042552845107374089490734316565824432388848874483622578753806909839397986270914455817615946477741684626465006302975839676525778505879544655975290003420392174817023073274800765623764433842747307241642787171431017754176255581565260053536843898689457823022952774710661057057076523286527045070937579330337426044303357254990159435018044286055470163465140813676107292539549173419675282011407963090293352179025200131227731488065468898655527186417656860145103791321777657178827780191986722445299488009203158733189983967872282944737638358146264576540722390465391263985091149508381935444619322618445760428975272022965807986372361400829631049270029823514122700348713590739692861274288930726381997526457458362905393724339717197680019550394842608175219100479049043823598425868810738995751051584859355789954659040919452229242665745551525873941493193366544023519284690171173287639552884891007770961603371257241399046462902938331268502242782490389345766402057382500854443560931895038950844271675713897065230483571686734571217313227093899015286134491422761579456371791434879894286443558635106512864220038998409907348989088469404032431712113294289404686293611770633825175146078569756978218664691341911006786217556760801629578965609427469881443508710111605908419696537495640521858438843399991204750287016941118391791065033691375258686353251928309617253884947028550024130434978316200310397184265388816894992793530209393947874877219383627372631034359542788626400034849083794433989583514683426797580836989413318619584059524262269686011169557331832465851932870908869158310801687106221427113802221204791151196811998354935682510809960208968128122088571484692343909815030237011843608392539569641330832258930436060495770912911487491897568077244555083828531993841073596118513765734051225110743251218341700573661238483917656188415585611048058807741510692292412208955481955288218796005609755993166559079280318397149862241593709059311647749989541883319629175802090683181705434442957375747178124545851741047765918034318047008014776605912531962972152104637053084862268848781577997219793675330610560363192291255594970751371744847343137196948454584931156070067497425069062316933298449078338541760332716173167258815669313104255623647134312359579255163172163959612570982680109082482743701095917615308546152130566773694430182162798175583975024196432730472736030566624652846025005014988550844029257299520061828211572644827607487243545496569235903802834168264188499832348304990057766541304352040310308144236677260608750736940552506530321810945436945872075643377089949524390383121844029472715453475405913563914763982244364943054517016147173800621878660111807215857933342441350491498786805629433457869245547495899135024090973977775791221912385967460044536244886344775232509785032047429053123491919999102901748778788709625335390188417655155258852102055464344775785834211580535518544734354963459593145599666045100801701678989740580622131987924429000800255066883557015077321805113793220892869908352333309758439298512243749589016184354730559904723178225997215624465668235612691435493950980511234260852137437306040420462072484797010155631384793586137274871145986123067420557157421224559889371801747582565111336411493117894522029825123464205240508972546041079723628877241687873508835771853886310771439222342577063412044441134658272122396481588502884566245826082791294775220711777497204935312904754184446648033269981895939515367231470459042846001809252473601349318015969750721050746361062243050383699165056593032032842483320348912192852006885579132894429566100481386616355144601414823866645785869284298997896951509433461311298594601153108441359536736158507472870929948722168128807334081558326359655371925955725303367626976263492620184649122514818158915967518961772408469564073110241672807515026523409885080522625349618821087941330666962894600438841573938345231926000393658545001942851599900520053322936049959272328267544700347529093763851635355930984098074534695492297742963772874854693729720816680785177651841356103766512608780149857952509710630482858791028076868647844429716978230286399433246415445645590438275700269398536120675128238126063082410699258921425855929897100806495802294777427372992814364947092051316978976638110596509503650832213318546859860816604254778400089670222799683352670750914741804857837271192950868556194649198686729484962698715197692058807417859123980992380856135334603615566926162279455769113429956263428976089822838931338683163575655168406495384943546386468329389379628026684486204747609635192458903980800286989832380019596813327968496359268958545421805994362541406453740163941609861614612211406971901442477085635236589964586090166223032903207661786319868671708501175568493980590523970710483044700361515173395520289764641280788832464829457750517500728966091425460542614432411636369453863747084018542378023570774856716140090774628166120794270712284246106009839152739951296631021304544091597917647180171443451080894271996920004068084507781450290025981928012632854432926720294220285538421242572272693318436382465048132575162621045288490685358084088515281770600417192323943496408842476094996087821230621188797007438942115690094860375186806837008853691713725561291591562344554768688595449943350848086494683659519641977992508742483584282267480126774007617672671873892010828167099883692578491007775107636484172993732374935770050987320693812255978461796709326630066448539055740754528823870405268099625721877665538082547042896833826991762261822641351144485836132668497508691794998998191757264360535700702307949447046067897024691848091395578128607294727751689654546366433957931117675762629050859280244691093868806603226207709139398740533407018296906920854331196751173340632604130687579474906801502266330668157324118471681456253471665432524214333337560819690645986494495552423257681750923302729565791776830713595821148656491739454191548173407446212755562165121363459112264310577070397701182787944041347168564655538966492775309343909195308679806870047138999408111408787549223837254745984887526145051089580056472051204143777172389624783246980263405576326631053601855133325382265306326742861890934366594047617945494410256098480153520622460154535613657979084308363602627198513774255458272224216536371458596089639116733324291446691797972556193742679538404173187570459654585212878868582693480272380494503744544116481402264412142479320090511878187151620124136348182559398375783011252702293250461867770958462483177102753091539459625212661186723010710701857276761866809487989023508066715875362570876927301225896835620163397423266764569670292042501563021364725053937948420309945045463936325132420245797721320197770056340605824461564423710528922218253481428710162157219394077284845288389752776322991476421043259477255808202525715975065447630641878595152596573894972290129469359951257110749529811263152309472730051714811297624174548061499408675983086486570263565507587203802706859487101131526780132698328553050322642663073914325674403257027953494766547626239926815538227635376046303258888800619401638492872368874796447160919959086244048921750014108711814071157258988002133470067086464731794551907312599139985532732053027675217830051069530098956486672516828646721075996545668314101792448310476395965477336665785632832297276254095908138596063715391564966886121616425941869683105703049101318666507529637426372873491712251740387612955595577415095465561807803813864160178675917113110522255319489329921817670125767000988532930191138519022009194843979633396432806724245404761278451133826016320653862922752472761460946305459502860377535933366970041489568803943063423173435653951004756852860135132977500018921164263924485024146276186051737427044635729979858986392228243815500224886004728384155032997796850333986127766061819888800220816496188277793204454662683353894526896742438276162183353468238552751829094824193933145927257788854025982125231810515454402656687140159123631671508896213966076417312814642689401427809043967102203030028743459044656143735740783360456307133139165101271207504182976410416583920842940276942830037921819285875572733146938589858458988368615801571983375228340673943904918437900496731271006857447611693747554237021249770754287187502994169625205962947421725333646144120336484503170791470647095375882957999181618520963232077833668754104609154818867881457514681306456610937580712623470988859634966277760595986529503695038378403830614971494007083390311436056150589639211832385632275398551974627140848591112737961909332231552734480751584514734352268406066075797631943300462000110417370264613358071580964793434323720337950731370042629753665600559795767492435569952159104023338514394114976359547129332417133872055978175966551967769459450797755985412121762470793887740393399805247327388265574786963131472723501229826405601405558567720591175151607020400172759335683796539196810798176739694048875477679747939825881461223304075194806072313030290108754937475764280165754649731774384749340596142658172530000627907400231786458717491354642216831885252363436520857099516720426035617545643963468401098157234030912961364162389696041290990349363126915516971566937281934885877092351317472813593670076700862861741416902391507743567832201876910214075226746632513186920795001102922793282256763957087904887722385806811268144593361412032413092154578730393373693319066935725614899183173599204150725119231522301914790968963289212441124046120225399355080306289097201377559457334766456428108223630784998685480125756531309557239302118933944930395065982375640136227254641376356566197272303611773578124099426807331444590849480896039899966264589875666086423303097304732214694336585646290817002309752876403315716852447499564097765557767204564939379658269666453995540161383395355788672782422092494590472581304887348119227406943708900177140041966958326765712475886871604600031024891694221860977700156378746475513738989065641427247681449401282070820660465351906510785687589007097892002542027864449763348982073168428263247428213710715380297607948440776180294798458285792288308511709488788509929555720440020412988627698786320494244838823017985960017788770265798735714835323687291573682101568779789319112803668907402046058779010687876845775876578571809883154198438593346400475607108664568441323400200707472835482705047385366609177523807793400084232580687182029827159111501501222138121408579330742792833934561192295672534432509738890631252704644127935302105207138135447408117414428844783078261874155542230354676450449118198201355609421276800326189188871682023626422025880625264766516215708983221642615717329763805574694521101294554658779880086914467200832478215544194762411633358173416655465392429874422983818860333716859332300248736498621753366514099315478172891235816919162854426145398825273983111947135769146435020905074450022511706274084892260768638298850999720862660905655420115395096297339760647533183378985463848946497761517155388742192636921120718429222351904186357771990372504374629932262785193322604752281999173005740634286005381947286677668451327753388112940821744915853010153578855715945828449938480855203252491721413212687894851516973373156051252607075568646582891420771550459540160822499070369969485634935354201046565492296496391298479003001227707969902627006121015422977304181475744470082311894368858704669847586221665287472479447209197099977856049960220323164698029812364002781482088531179490988686777172056408555303614439670855409982827100669976165823965777345769462750553707571883640459882188617270858467994080855447911562882781692364012695925190770473895745933615449314143268032265000678788718246522270633192753380990581933312486344873534645312834007232718483487259424697734597867553709625302487854368802080415767582318384183248059915392156451390856715535270843865325282847399477446858650911286113976785073014881525508488212236575044916899823715126356832558632105203480905213853464518819456231248118518508419041002041809189619401750458588581996687984097708985440664142711860310305756167734602224170833842365337152935314184308267866279444608039420497154096776044890251848216029082926906985021339421730435538101544860637661709243026223308457617354238576443502142110841480128651601574541157437632457361054989806986516421044934391467730009621323543204709473097561427256332597872333021463770291335510122118208132127722131438838212092551893218715217324624750217227436024827153913417027766236394876073693480980358134932729927654481473926347453041313745105795868832689108585441792524492801087517087397628977976126195836653140495209990673488233481678418916699680918749657617179388001069844272982373786822660367484708392887931887285293550673651755479298251376204011958762203499147086302755332763312256620809068529475682767305620866773031263736789198604997828408624268526707717727112266280404843101517739091770169258138056956567765822975676299015534442814569491360693759632869825771258871823808471285038058909869608646536130822290030351012124138709836606880742054741214677481179664981907984360338953620850831206637020645751982813081891454679646167083409368277726088236948880767245891370784524366508067822583980715072821420093137258608510017427323490420321553626857495915820806709513402923541167939925270506803085027777311131841367478870511828776370972858304452778765381756416721152588645092960147208861045473546443701435733929556766243807059279611058845392788131064644359290870514368070094217693707207513700935604716018471233157745532529780643497860999837739134843135435638579285925197307928538656130742370140808823942681584259998889309842959206614154202392052479327311184350555166141201500913790785090513638040993786797776948846243330142420928134698251969076600188096251167211489370101797394127924957330254210948886532353322112272514323588552342946187451943351842924551248851761801742878120877275378024526493003933073360755540359740166860411805174297078806216838516886066141091940077092910598475267262555099742766265733421206062630216168992336653781119539337303061311608943824690919134158544854288779889437236297356802533883231911416679109111636638498982782094865850276991599819956947507611100592494810951890242891582045571065682448084683660809123819362248112646443322280350455634803909776393966635284155696542538482060840154167926460786248366749525599332594526138115653978661452780858025896139468215751143636696700895274784556602669839837812271189397167212428885552482277030577938399979030843493109217602002855130036427576522861826099510711207621401417037982362906088402619259255129754982004776596858570580230671591580772896338862184540811776582569128100231059376692090252303387193753796363199204374669423222185123263232920479292753129244783406168781438673014136117760190229460013975141748455561138129016103404268624392253685822291485018000571811954077795226539664092425570831889953029154730516548392545174436881272586447666022941339658471745736398091685907630091843613146510300227848063263631095095394430033706008412238352913936834148727251650963665693763964814925426312449440860467468331089694962588259630597952270994921979326013451254157180605006788354693521580474408082016604981314323019002613479726429535769367744749337687709658560900930273241665479770474653149417205563763822344437930649367384334574161775668192470019179319048048937739513723162122636276056227417371825894649947460931068908444171716007284970236374558264524361080016783724176535546465274974617055500152826405580933859596190313585662074135165571862781009054519121074452630765864946694312654311175300849215494997093136715753207528741790283757783012257102285395252619349677447502087923863282837554760257776431734447058549788150200237864373945736964869465828223207129965879433676882475201220416965240115016886964569570472160279635031338029437620544411244915613710348766375301759922214803141662552554720459922825004843694926698728256145343455033306781287908334323067776081151967040648112619933329783119225947777548748755602216253872390347428379184097037060852327855204659309132519763521011352037502166480799578624422122296147554884824956660253188699882727691866000020994967839641008223100252666281211196502362505536781925349193088121294986294399073808333662567178673574653760942591731699689642372408821884139948944399755004688058249531696580600108476106201271774129123827339656522832136270143388362697694968672746958008867123545448112758380471781270514020880173991130053540585298659299930849929313818577290111708550335967318051827673726378143279906255731266078735359698491503913457257699943060782315959487470627178088491471564889814510667166533114283068966482105610165993451239493136842683202941019611206148427388919456600903737405715241352087105894128890741045384341765980831777185450355754320506353465312436462333128051417182848761478908636389344834750014358764549350862940974704068515255797471128957094608907548662427432688881232448244932084814513290410680454441938826728068390657147229898758164840846777187854321735151105181548012066497984720431535854942406917140585127569584168576335640034085168051040848159281404422711389849716861667841344120406634346434297731293784778136257380389279034628542035996204524478286612615037093569376108561850542449987951120159012080312251607530856860073639950385300971468833721104862509759466858628369696204824803944775183510178474461157957906706729511988365642997733776853126905161306871469987671362771313840061828096019552164999152325459499233624390159855708959521043733731237655392662576050810976974947759505685027256321670124102253695155751773446796234483532069041384654856066672254052622411995729089509823004804118333695925133728623981471123684960158793516414657636256611043463014601561389063408792995689868061237718531564400685863626897082521058576283741867227495419374800788963848364360073353414400276162794898947987359212641327835657002991332105827415628908694155992117036325904966903772912350380105277981221367643730364337451754935978986718111660166138629418064786565351966501331258150372737690714909653030311582767666260122903291770347992667571828503949538471241317508534283988392562731886379844580426260697917259724846913662744945086146988166998038816357409094487769189547408448793794457520790117327339327454349349186935935176802060354653446328539770857887959057215698026855561983742092973119967592061046613402206006135398933259276480353048874412002827573470764889480768101318699907169626542036549109801622193260075520216603289487877573643918254961086420909748839424962325696330177785627924024080683043983579927864421795976444416705599954762179468646117391326415905550576753463888004546804741496297324620529284323709094096563586658478654128308425479705219010834016816597351486844727754200721174523177246409085927253465121131960785346576864343858676087976668376921279384123931513328099830632704311488933873752757141809541806577734751339411368286866115652333617463479872902656293296031319595775975100176163542019035093848210980297436450190277983674996344411072354711016702393384066364362026386766626190577348121285805655660582518157765993372587069556271365290761474537489872225684971068700401273269847189653212596596240170331017633948537734064099161535814859693904675077213711707763721110982704487371909761947571994724279673886051091214153450583088881796929789066720230125791695128851862830576054555741256460687391097241213847192787288354497705279107183663352809191157993549924006993988823497453272790762273456677888942148581083281403455757149148262343535531598423227517038000226393633140970320096424932401934056121570751187403380220433422471288201527674801611970842847059340808379848187378438104633542204832122553023697510250611362576948818736887392130491134190088420468774968364686533174516798295323267526692740183946301892697760671971300411073128140991929227059271808505017069230942313191178025637329519514331065885934430449029086301699368243950666723516524214756358157767947661714472522542456664286380289229347327573827744060426352880152440845182881471048971652429710513183562302265661968797121866577996893160603010502321911903120363565672758405258966570695900457145957108198067728271403560998909752024198979499223119138422566590706657662413508344869640054813602069058874179421668710762006576723034171499535563024145224097811844378315323643364314639702631330216929922073462805478315228630618022084717233274208718182109245813031496460012941395660217067176653483903124859889620303736418194788703848100171668509083486948547399843869622092673437041217499197290836094793678521353606148904817419952943147325112934249838213597206324461460767895411197849117029589821120111949167554228767427620453444005588845427778464680955100761207253804825325259258892607411831617094452765395175929539639322840548065071722263747003901859649853491161070078658175110044737403690063579736202097616608141788511388758630893912254161488484624073341972301629115597563932193805107578562072169244367727949516349225953494176965886332846362514490394565517517583500101311674461507151309605907007499836779740241511513979596119744479994505269867811502656549533798309605787470612898146217199662643462569005524329453165103608133143225405001847592054691124394225357939978739836526353369287112121175711247801115489594199610217171682419313282748420087352790227745368441332685938110760392020916543770017066313872368925179002982588423076847716791154570614626089647034294916838493650516704869740403389593723912297935404602683806318483944200235793616367006616299503869314539745809523974997105560398086906148145573350121803173240476668970758358726306381079680219255087723870596366725690143539002068786596512189226360867571782812100249199381681441991198802661503525982582779531696348962027933594994995509197822758685731392599721178094925269718249946724863525073752468096563435411343512118551573806873086068550092339775456484193229855755979542371938808978687425747767020163139784659037820980628355508554836147494152506213481784843029687880865666672703841770089748776931114549437675091866218696561305887612105598133181728124224276208995728002542932602380123474254419570806091923175003364631484168390045738340125331622412905288145043660656974637742461071036794365253100751061158789342130530152133462021185175524574862406274018156315949814135259091091199333972287377379473300616391326578103270262972084282286806901138854365245689593094821562272679082321535329565490818789256849191218354345273809739788751568907374362730578216500880964696322649436423250015975824538545971132396425093954787796941537499690574954216648872391285373735218898838214114708160886021573452123263796101234652517114616973733448879663829078143718178738256686586036689964753767489114887435436501289317264798688198524251362569792892855713280366551444859749335066194324925243402501296547921795262124918472538647608320836158730760772037906408495386090571419185619738929536146295739527594073919009826925136473567249747088369574005570849249874887472173242219586097044764589479464822618957894397798834265195139668054736078965688555124303734553404218718760438145500053679813290945743039852501065783253542986721349366705133784881947573761743961743563370243068971070312594723502474065568733830715007949444815291091625177331373172172934483163031327009274750521085671303917932370852982659227560452080597796778110170949039013784407846729250320743475968226793142958159943738289135774758402139817102589488294875985338774558494392502355102806301764419241480232600770872879674067813554598348946646584335984191032212999042788213576832808754923720562487373016741258842125474303126251135506554580211284725127272959544876113141163087152245056441375757519159286091429357071240528475513779453883568732807652328689878172691571819494204415708111999944468066246889961695427560190660439534725929920379731186586035417630492639198496527301650600526244387482255983824515387211543298431255380122679117923707124032617680603462787400873899006375148558301068168012815874617888839452568345688656525160116392117203393026105226880821977470866459158367585832738980363892510957869396765749489694024599976809211152821991664973256035452094792885502980037296101550480494769314014361099320759276444631279557421806339802864695744606894679566424101489102425513626388067289746191953147370789496244353744496751151517283848667778362003713017597462739482185779936974199591877045923941940255147109741492449987101577476794418552987061419952409590190402864996182398100299639246581717364116118419529843051023555905796817905703263558675717269217892802443176222905753362994655363011250616649340105799258732697900722936222614564216687808479139773700379175581106828770701224520147846196481119832624728743460223369177412386460595381240767185691317247078429069554334077170527909095240565669519800146908184428021986592954188417609694282590043174751018573292449956862364695539869346166870540168856065182438874949196222804292402190049878761363646185257167194100823264204699841075606036948767022925949358799918302678155762067737574476182318023438570729368470184459492203335598805571072430594248911175398875727926444528376644622017864654208423328019925064517301149372918187148980708304737967349973687748248100453421972356944073742340334219306558068902428249296343263503320516200540210188168321376904839252309747679705195786651843776234435145613377504504323360216700113647853242516255771408764258297999264523330162929453571836054748651842774438396169857409463454970080722182481317877482293969535163593064653319295733155263949553921574928557471723476250564235003010985013722454230016365609651018663140570194734726434170194582657928655636248475199736538193851227034633016253712039996541669296032298939396408145374393972065635135686984617465062938400850581155826519127216139302359777901437540703715572756502649259016215909145146046825720519583479514692296149550900730143860674832288321856056540581705984262801527451516786051364509265651404104756590942627219333104042757955640719780961900212713881330909080622085414986893730999740822287871414174441795450550454225966780711624108368695845079401346566160162187504143758531010400910088752555544501454640940099729889988895737461215525114557656621243813719423305896207927000683575113446046490197836025005310769829575197742713856465209746154274784272402636869112244811346589433654539117384713526233138847882799428080040033584217375800139315694359424169151421974504193941690587936783298421541347183007760039707230373921731442585767208481737858038281516464148020952149895579426945377995238554386498204625569466789366225961812496875873895820349664516716126742092373243859917375423266583625471760581390031349943113904316854007870852232023380996364751930430568178999328857954737400060931978217772295364431695872585097692846678145300610296392432296961937796257776345582555764945692875446398132761103559649118702784810157580123844320944614335538502276267021417384273380829908853324470191755562557477688366491315730940120846293549494983004742177979159398363814341215057703944369511341612971444513433743724325664639114974916220964208094525654467871145860893973893985005052707807485149293853321930975574210331880644261075531622748129827828364188997850911417884989030315382702821971659680308354415036340154839116504528370395634769048249859757261609378641158037485667411123599511118386441312434778626265170244980118919959917062953849939895069848773311056725751327585580330359951681603562611735269990632840503116751254979125822406659353810589585513005429553572392319613544494033888529769697263813622195911074837426470808670778408107381444511574943660837088353524620551427493426305392353015294148647866737614297556985745258953537851248092075714550992402311522852729352097314893455773570029529929290319599600235858517844798472561175733820319368393966196209565565305814580675483543009505879582317526373692553313000438840650864042104533568112758101808917104143512194639353884073987044052831152917235042156334160609221216626313296491076170649775546238102762666098518023089487333161366486499260290576181828205149405307179248075760680438276041600666448483563104040590824219837479584622447248368731355810384120493002762300989672363167596083837414108386674426484572238869698311182996910153625696460419296108555238548671513723986180162620953303655207714363922751711157774687700925127343309602341117688467925230571935399379503071139768251897183465803755204963195994227256235945967900881228145869482481482574867780941995662382958982142618145946597508166640380785857699814303077171343204611796006545096183875501351542640057008483143329060194419053187707209798787236401027267063108254576322966047139312174306852292576420201729021618623885220238245438899856489680560852982409962673463585271224605637252172580380522125063267633223400155277168782825121462015679393254435119337145406604496812909605301998920755229100476459998506757400432339479848867262073416906608734688593412027672065351570251716204033932839678628742090180125667484759370612750285317820208095935751128587686605373761732871815045569328584659937775027711205058768117490965307920543360994435285383175350195529084860678736893648460683474028341517613120346684193901783617229782241912420394097620867507381887358552987065411024875030107140076034567386079936707427284384654170255226928403636309228969496222344787661930871881158088629809671516528022723652011583244155495540742773750468661614182704302667653640874378664431034429796795926273531176844590335992322465935491023753656750310778803535487127691762156760725869438401534059753457211371276485093281966081506160728695991399605112609958427406309035180814610689107080274778779157075647093527865863591021858251677293915524056232889635387491155354226499866159571197052160482303451169153019991980447951775518139629656502730043559650926885921295756117124659569178181783637503009329131118447603329040152867034683583340075094645116820206384280232827097945387210301404585688760257231936623615868007656324705362077572132335764402219829406396289775758378016462764396076593441016758695491498322427833799941537951975757121569370259572541087309885147781489524143664912005672366986863216868306554432147803811803119709233034793971139698217998608363137021781187559976680971487907718738423135332831906724972515726813821240809664571265023685850028779127536099677899859264938002016124211555692268463595221302499652408111988189683847798179056317211774592103884851333150082184211173056134097992262560273108130113333809086835878838738735079518184246298636874804320431677468370139205863262145060238891088708331884253852263815952060640098605543537885778060627461028840724842733532984397489619230545923958950224268580569248982940132240870956053754896379332665946635363129687319812963212201644790791038174511654662554885029015508401283698474148468334372638683776162177336719757584467605118556358964085960184115255798368595980588369802377299612863133778760735845334243676014511067942582743828497262843005993772978178332977538254363292399526755358414138596940542011531469430830380484205042491005029858406450560594330919987824608291275501565366525829321049223435660666745987676012477666426398590418022417907322029808505028181447921214841631925201282305861698352655957329007486068259133644045258279441816029790239941264911664729606772977936078085583746268657861837826375223804373284244768612412589356987407718844442068694119827753846649974053737223224815855487834978932830856926244545475875389016459586169292503746967822414769357841161205198783838144568517230892175443719612194352740449741798257685283631426842827190002453213118325080994499984713479361511992021830650037148252540954537036638311170551396780978509078968827564410673806553022416065973924658042909612121929792305311826661664044054463747796704631110025407043267836971853203418768866865288888721313350445363297562997349860214339804629020934916626995935635355950199822087805307096499707017495657998926174584814316261042278392983277182746714066525311441723362700597348928460873255554955708520050915351917117196626070656360709032160396202209374472601351862398027410108288351693993093008993124929991286473286711085202192424580823799809299245138357530238675297493779878101904429436855545926246906982402547809984908061097432758988445217861669546101720883537317473356296266915433033595262841344462890995755364280363700696972258094909574532143453754694228965434825155244135723934211094959838166613665877758773827086555948635418568261533322018493379746641342666602563844534989641716795039004453761177179272371933200694308355287805313922811898326300591395780892693399657542303860187429256250951253085235503617843840109652118131159673271129909144045177491035053674567353328094846762303960283425934941480874864473556329528605950611018437675795932755910855884320325215786155204260385487217860995790723254672769825650111656669816883481918889361743417684540867237937496800065657132690449425228720219697944800552331386161754874334505936338478449022735942483531521428275601730653940704761020742698307510815556249649127416909675487499563634490733689299723928380662856451606300841409287145130148522681283362476079574903379079242942189179733379864450796401559749897187803006462535434309829543611522897600648019633227768958204518527851426661899624434374312857432610515091765050203108940112306039935788715477883517513353484489432194258632374774089409630946227794627433624946855975568294208818575350155350500373084901975453302665564998225098988094168520420695168372052439888368451099108495195215246804176134110922168925692175427888614491782441449724513004139124234630002162568525592435477938627298496697443720837565729742569107696774423609257135935625431830145131597429280079577622357381041720530272637548800285753318809781967203814713235611370740105453884800601712814097489716182579688384274416282032697183395152590418217091767124287648278674254702599776654722994114795202337169707689506952091031664632912800361149501247241295800518163843717197303759739234921457623021163718839470087418466839542910927806149056816690836293850848185298558744656854527695489557194760220985889547255342620249609836025586951474264854115205210258196799972680806374502878175792633309966472408674429476734733999169850370114729017934134660442612289598227675642692574730253416047003080966448286397787745512469546235093596895972339222035542989395572367730955173333423109148330008313882300854259719796758067127367767126810774263527225973875509209365101405343376044319787286920677415203120259969862152972789170240294086599772907004631270031652650737831568782964045829210233697528948475434845896202323209622916274224822341666391115267568516879384109934365319540969914066374635661145766289518381112347042793576802548979597423292586559752767498077005827426292591601451209343936983862902567148758059431637019977634693584081612908963750646124342916348179818100945379595910856980408343471271459206844060170161021143454477092588747628095171095990040520864218867712826809511251623942758398337379209819277314823030369723685230771231101036070993680306881063060717323304147694632192452856049246665263366929983999871083720506302302872198137678879629393203995192789037390548419331498310010742808778697939372333876263165152645544850242147767000189099597794446540682411039293522681594496542580420400936831175471597202845538840239045933556702414228791916991749956948844888956963643011014088573527773865939913374548443520672740791439026133580789994802966855739521887427732655947232797824333205147668142544228365129392704224332324829332357178146485410141958554996075355408253036989221983182113993245990157706335565711586076580555672624080024454737752103474272892983432427372203927941870463999638393521981015306968933028929165574978032214324017988853031235546656101036801178593064280476168578011255864412298794865618552837163343267914113335720767147311791349659055428310181951741455207753878820384631818877376955438342190400311168053604455239632430809750055391195322537156246452942175036691001895658626776406281069613585693679380919490451374397246796126749391161931803660511721115792166762088031332355978784994943823826116564865832617485682097858950289811839038706938721857472269525955181249223464481202865722459163544144746014691823442034955980999574919415936056081297010595197537577012265914735126442263565185851013291195074968674692802217361364723839335386252172974402166486408554621231434168998942004131446929136718581921046101304413430391720693921630126877495375729291530807039619807972916391964281109141431962583845752571669251330332383827527847709528970263568457950176408497075356755350557623547361254773350574920214385980708698788959952974888732936845242716610983671868815303679333059627009496458461681273620345422987668483133266499954925971640983794712526852133454220833590374144359437162007172561571703440692087406336203577089452893179448621636746672600541145860897354884427864427759911414341020154879191473177839235381555040947675542055373950896623368281619995453876129923819233293786572676973871360301542828920730606599333210556218115509237878967926214915764776609627726565334381710116811475020871808383614896597528126290339123811850183550707652370914538892924930147844970015917293973215824568089466718829947449749670030771397991508150958849786459323626032814733482633068785495864461330843807028455818803071496965381272048634725419680816832052276771011510124305495190942507895930418119059561693694630770570337602495877276836849234335177742065419990532933048483191781104602812876946682108127486998525280018345116394932249909258285577811764280184675549637023445392548755833877730947674182969257289269296357060948851892070970756327750613924206398852693364052347190998600483099547497521387277893872751688796248773989896662681712175360682146508504498257367443412889315512252788947574369898348750087275904559907228957299528312419670557493182120788532261177961426643656382462085758607161323326709167632660509356077633269556548601145807796225352335938846005153800333387094901552844243515522767251267962673311811950910731932846936836983651476262730589612132497191567562067821645287774186982342842323835903593445212506663721670344316604944377017893111457678675911555377269473682640530113515079550300328014921432995623704375236843998836945316416661561462502049207802894181335000450169195181633332921419402115302952205902845452280231702103358248625160114134084556343838356625979452641268093294926601593816594716042756688095918610269960369073974921153188726266275498179631094798793670394650964468973140895168748210309373931763085308701042853510886642956529496308423577346395677266714780856384599903920140127989495146158311772585223029884662633679225135695528709928390669247557769140769802450446053465871824278282767396306612074650125828839801462724878039918296417255527806396570095235534722914364949063806182269923727783654635108065611704681422485394281899450735496650838089375647940577316935120875493966733901862057668579912660622338066068868266009597504206981463091188627581033727189756469881601133482732510286444906533388334540939378594997286222540380005739534011802140204685084622109490046315745469143166626573602941873591723798358007513212738434757954524617471204233261790387919290703476280219026981488715219560633741262640013949561048372451897309508717549577831550025316558727262083480690927697537416603360503899937807797789520901548972262041697533244230208281428395204361817984647186335534257068060309322559239889349796814634144031787035065765466546179180765276113830311593399553948457443292485690105142397150379197661374310964783246593617824375603178313365024952785984099474376622090275938986020829977704367457625633082840779746474483667990648008023411236559761501108007809290996350037060587136505772887135167697303744634920760370520170222398377396082531162061195843059686615986552310369620369334248520064539783417894774819940838096734539981279042621910571118691000364490474368447941148865108617060446177846092426353006886745703467745317989171949911915039229638305586658108893446814681004561238080055774265002858345104026329563332289310077369606110668413535580161190044399807002277746787599005740357965942222288490149555985008137308752532751342180536324958395342971513013116227199981600530911419089707589704852100801899783385203441273311306216563714711414376144326048940503140073425385004095645150104431598953205958708864092733795998967592867750522505192903295592930340945613431179357071475084644868773274232556432264166276061019907677296406331428739553320600841780542955780978395466378262228205785487985987759068540674084988239860702881492592492799823059136324915174243450687047958780364351070651302827555489588600878859820317202706973454948035839150546385409711618833720328056023151007677284601445175287258356916362949629340827519262107038567729085896951717155302923098182100542368474153702540720643860666881938346825074969640243017032997399280526004004381690246344833676991435637466072349191172903147997854764623238550364067339749284195228237820925006644656963934745405877464326010228987686881226044200248993336104282113389252514270075616694334236312170635159445084026245873591905892873124002644534743660263978593812547772259140209676318100294289732988309671288099756579436569658087402714168192668634148663706158170037537729584778178101000977148301568946506991256879064181514690020936613955560913305139000852558700529976396320361587110404842381344117471201570182250253051233472017100127957381059596013445289531359307219975888184036588434631086428790780835168469009436853906878412726278283659907736172423921130897717851920571791059564423005535220156760373245272399683940309500537302309264521364156896358947578339506057759182094034665627233364029146590827849569687893872221679818937598916916167168094026409009930101474005598699661953344992761001540474754951598197619949584705227469786989548197094684967544423439043462347207243636997356907320669925859809181282742497705452671883612684725113550696887611860115995487197781740332944994384937901125419182119655418032629338847032468950542390122754927896145171636700373222047672530729028313213274833981477427545725802822325035967695721102976039833262202385819711486169618366742286663994744308940220662959985773530903753738875677082186022801616437868171242281364601851920096833639134325965457139276299186923828808334439529805612587431651568242812120282376131823179735216454492956828039546163787389933380026152113275950008716684242665458019822199233675188771991469371964346133656864887122855751062396072335038330943546244519976173409775557194886436873830406026716004603415556392036108975323797448096092999032477689819027149394246442771139133605440842318824992788513265299201971112820210861588149672581245504233768950695824971066314559859790295755753348047533266304011422417628727004489752672387285211160888634572879811282618068740742543634694561465461153118271155541369998421261086911945905943899486657619939923032662402870283062900517641648358645557380379662988411620620243801654504240865025648782933366550575480287060916545237029232011149642449288660395261150996564420290847789739790385704406351507076786045427409726322408766606559089325548408936170726599147772795071965806544045698836327622029173736588152663255084288129653101408447820426626018861585770325376910236708893191832602819101493000047616709029331737709114039393552739441215622471099929117141582442540365976158941184960930040120628556603106437066402015363930517339893106957042342389988158968293648902773525845743789250031310416257775190978700762054110605937203147783270329506866297204707046645863734419605854349407304624757889268034404220158962581756348206968697010111831097063420345823782971047837184548729113103332806292145906179809498842478482300403350578044767381940273892498746908747812232076593309299073562263136502429037710470604055666249979876385733074147370941724396248445421657862480456920863874428346781750686671888285768454908257920871108934240801619135749472017629960250040433314099692949610607663927403989347699919578791371954929160376862429476473983721395158433941695164364513662433190743482571908314861677219815495637499155182553808364250022795323089822131153288066593922283690100033138539645171274511031924165181305425010219327843118318183262549183019683336656703419782586362464197032407816877377160043022847006478521673038243635225620171308078687002821858636087397045390334757502422315335449622783431125893203490046349934124462756919983612460260441535104333072822108034714809322597278066310462593698491256536606529670348851654762276505963009889025792582239591902004323186618103222554636000158098736310391616437853008301597499071969166965821702401272235751710945755032878795220327175152210654230385101538101161453136940940719489500450880542596246854019946897658155518506366514781325492361448060722120421904465016338864461143551023005206127237053832861779039932835336940214580468809739048125609718561178765707747376260955846094764119594891258025474760758500729702677258277509245016619592516869444188207666320094081839018214159838695536040041730531082317644374235178452416129449919159277908180573947272043220880800088690493516263206704203517425381937529493257356451475938948853094719900274969620867483347629532340698060707421412132201764059190326453588361994231862889311533534585342385416941700151030893939490951189384638219169394162895690872841040360898260558166010384592582314506180049016712095947807507765603199660651478344635196363992655480477018170502359206237476786434029204259352534506257516138588595430858898036778032871569924035849723099132436646326712919229509371156137334787418419531157490567613851195500013953273414098052934649701155631797727499499038971176264740011805143455833171837057853177355870180772544624172135945604372326476827599443437159492210906004509487940207082404190251813361164124568261363297963802296353238582085180148368909891835437977703688045087140160274422916988779053049419266064326374184759971938558719078830225370213569798999664859397415463766487611696683359691362674813507445997746959650965436017564550433208216889976209112517168182896085124180151672633103015093009937251764875192972324069731607163356698970917876809003932526529258161266826790463044345781708695937319346325367463149454667048254164789942716516895638037493779018301311064505212358920884015779129102265172490004700488396188532523667781921783274121952013202450602073387975697866368531606661548507176060629149794712536607850675434380415892038831804235213285004897340704297262004811834683425932189180389099777720158950498121250944144701092536288072792406337518079194276808362095268476625214210350331498691006367635908778532213339246565675049401767122107277790598643031452085008837839557919252963134619651247508854599305108495342156125846135764021552656096350741773083906284687723963656115118591948981731240997131669773959488606062926106301739916076489078097118046451467920909619700248778106118570880510557411018254570919163775235399162364408898291449674795819007541876108578854755690936381328357384314570949958728513323225269858331487252533212667280791442573848441842611063090238171522467942320285806472782874121782699901117781566297029489650147377930535139543334926457254487103317675601673455707140573602283131017584827987976069743830309869747432293482052896966254772740582341553792037277020505679391742892627468052755776094915682420932826243671668817248394047126583231588358067735152130215466184103338527667237891390983686565683318159209914575880192015702690616043509493120703044809819406565261223448198538987716072508546388886802251253523834100630567547869051179114670942156171097892234394095365983453010465888954828529813649693438954644918627638101075136757157827527556865665886197345023687059244962318431599461117961635354444066605390861380012974184824434272215718004102478875149055331164353961365529327754703883786648749533961131587247304522874053443062421915798160846689195705860334890614158442964492910623469388744333868040454753780094862411685370364530101272583706529814483570911985992939826309599922573166008713509683900425802834336795658928839778641703084487824887439218163349810300740550620008025171935608074666586420925049037615060038640848374119581793491200791541368596314213779024776219176728955814230007826810613692372712303762960015027996340037835391355291131862961198142050230834629953369496589655114709115338689715992147788092196780337734937227136881541200991225361644576879961005512840916513856107901789139498591479325941179070848512320581509477957673181684373634296361261778292516987765413359903419676963820347283696672532904110118826650856423582547476957444618736055895804153350607117048765394253722597135261881730403334634725176435857099271961022826164666074683034101174832187172620682479868474742520925334991432487086525944066869788700476209153266028190164226511336222695794802555170396142806437158234329827464599186736326999510578642958290540594040468279058391846934472071395049896455137086291625670852507960968144436713116910446317960209272414366106223246565074312210188564739892090239474241747955609592982333225567964562197255322712098652803635281123827021947478686157238986588673107345770485883616901981359492691837777403855073278859300508600664903079809980418285351406306489396516052829942191764828494986894003716522902159051375801559075788529972337521318873600756890420533839729165026747467813710271764856144077992350137120249603338136699164308980318326689286825868371834557316925271819931877940290770943443689034630489389620344617526697875660265694341984722583566565457737344181611523080078427790123341398485511252357017125325994704591734731079843343601418439366195533970308611036959234599840063151169666552664107925662910761791364520189408598892765775750447480257863281031676908751895110085543050256711966394670139745262397482495819300010522949744465878834235220000061415342673351581730528102134406625890219311589132753880456325086174022179530550337923476169138980196367321901112895279183625693196489121085766638120126451320667595982151405154983525692113728388923422661352316057211441581700448076212533463382862205171456738473684883603595751875661085037532435427319436120427496113855839320856679119078483772096921688360944006398011070465526519024011011601650563946585401041842936883877565891813722596169077031305807143535769708445462922886248932633372592159405420860301708014460363163837260126873796057568971264599299360268037924771797393459222809994797665956341494330307112024951100068436846869301264546963213543749141670365221754200681048626797365739333868396694744019262544843681384118768807676630777080966190220747783008643371400927270922316753462643884735430123402570287418966130925450781515936559201110846982253843835278140678714329210717791296568801502163118605966933450152370760403293291478320042718996900789885944853669548336022007700829211547764464344960975163451217029162851939291014861634062854583731086493868282680822825443693134406622647768253888403415522652834791272353867434492162954871958424786948696293049684512521142642022791717193521077690971777302098247515158033992371309021085694864720318396872039470658435685321670068255503759898498716693312208802609425926756933811341703064559668529925963770895979063346539287199784063207537675714600453453522145179857549382415729067792761872034398533591974340221013318710515209034363437011334707886426145713946040738453377326807138065533509050738638551526315431421382520929256948823840830356717392138948887095695751471084823494707901749646380681775734750433170597421856625816939134933822466306039835545050568452578561855493812856212070219783536882265167071914722174152873091433296457527902813311714812659966457433438772062633445109880816210011157794361761552740211025723494546760733771256424661029599279325862248507792026433724620623391395095931787772136888021184231951663158539380183828936318221259878053062833056551266686960832203717551781869442933985991234611014860710248902622643766243883504695282049117136873463140586655294547787352469404536725858459444689841113387458060311621740323149642821706372867429464786709219358800024649812511627279187294067204094136737250398143179060127672009254297003725149254081471976380498542987401176059472014596262460164957399349336776918845385601440075028534450588275896221235406206997457925625955577708123278611924949575063260998527636469037018599589190449801701523071988931312938008991004189606757790996058007931800460631203805145486248522863416890530304549658085490712599832133933300315646182272234696856308575322606515572729810512184252726559900697331718354077009888367115429180948282796364566257331572159373879907214310516482792828472006481735186315567215168200289842352684078871320400632093447678873218397704206911003536768923438604608489401655756082104172556866649766857261662110167694217772129452178867119350066747446845762933282202088531493503565280466776774272735483437805958991367398652685280092701512778376361572140305595607323466604998994275180212809293690103080181076744970027482054331571799929131561118154601990104360736691703404307789038448158915817749400683841530147771954267703550542118150626458421014136686502907759585792673791503274865777642977747058910034409903102778213645214153713399797448639633000242004324470062317501298783894350680411893844247360510807514034196273659359635227683875353746472714657004862651493555390557108928986689464327096653337692071798049625552475803590622607651754404585004301006532241748378714060844712879278664713426139424676744356053604061888289009987899237508799483476440775857174031598299788553864122066077254403047720026319321535775476942629184409085335287709025570800152748387348493714202238444207468206113857172975341569906113371525245714825261944857223130792255243468360507186188455043374301544743104105402042919761405694382350523444325846992948968966687210779217939000269108396227387364342878688266602739814645512117939586226812185664555216511642596993463866445085412785702224160618304001821092804856588865437301781867329381429328026369824491441977755496305516879368245699346052764877071086697988185436388206885850916715343998623930986210117176594376459510544627929620056605478729363540934102964068170166388269675988483768757681376979426911393896574605781114658144425133944861224551588793580216209629019575529773145872418213150441524884287009149515080849910544593706430903686709531197546672461043700522791227900404072461506986577584603529417311972226073457046428765160758637142258209259054190054713931179085894722493157630795262810263935440065322610233096831967488119920552741153726674426120889146696251721675866220439768236429046664772278138079324094848209851991797936294661343322109661431129912713938281496956085721114615001460637929410700389803296445251633173539169937373100950929233015620487484979068067809190063687227314343567936345244240391559939845843659342790982909979746269748079393345602992670121737767379758636611222888076072461183288027267676465415837646800556698163369913794363802810358857286630396639328296554957488331199458363143146148853648117503016705338368939213404232687142012751521781619791346400398659124025609899105182789795917306339252325322685971028687249143279320065134832491541360495439205926043239803874715394323734997235682438994996650253826295991951672810166715320525765603887721437074467142777845091612590209631636881841930249039865294094514049227600201361931586609902598666030304498586648736363558727854049145408479593451055221478677094467517455818255914316274664465425760518302265200444507287862299234466680487686060995356230749551059438576122909648474462172531979422360951307891460503743840094208196980535184275383162595312756416679472386285382413382680084089642026202166553112770973058150439491537543633257972943462633516817092834788369430974154705863398064366657880279486172839309352590322290161197896267227491441032839623642748379524357037337964605741693159110595720753858709128926306368712955829308300663623390380588609798216432365728837313766610080526009872624793503361360786680403890372034417741993440339094129162651551614185695279036385250241556951438087697518742545166136113991520528511408801478105370886273803048130613898480568963734279144983323646915256922397230956899241202850569671510396154961138310511571192950064865326115119240249400912794962084020499305035496994452664488852394214429022335031507249313511402087082585631191090288600023362709137324396243565001107936433113387953327990222653762967747111204463908946760930070414183653346050264112071731456633669892830503199985260532265046261683579629887327099087860646026488527004701795993220618741542470627368985066638751543344483305560234014887062957123018432350424103168322397863368508157500005599962013837014503681205570319784074429510600930637455247554706842958048939532557047795642763851589050367251215196295458078848744063783720680363177508756619290744251189425150880227847321726845763360473191998538723745043577430527196815189915485033448414980295967423037940751488100963752980947699165328007610453895450277566249613620916552663823294669197947340555617847025077811497583544119878089495484204322692444178184408289716626909538031085824548837292135330426192459713953653542821955217867941102345763233238210415465870384416211271930000792864755452100180948516291671209371130423821751719398834264022932033654412694913313653942399786638341720722444896814876664335471555371566396767436042062926322774966027815382073107943415971017122204172698288153832008883413944727274678306359655498677944038970031192325126949742917610834205379097966738672747038719208806001481059587073043488673377707813879487259300264386460557280644302316913076720911117892172578445748680591729155147094794716628119321576912770992595850524072339653670799665637963339062864247796431280551195233973618263458656492826682909403110836133252670281075348469066233120135308303720149076447222276988902978814908589889863625068803220225557716505608416278926186622000001317733769845162557764130178152468556707631518489688602956570083267451224899104874470460697815229112130566807832924612434070387405338665928585127739518760253553978916334180940510696693958724859903847317297190986089774553504740058464728526920378885467577404818961742203164297448082520900096444789240116268390366271883070478189430357836134389549377460453668220788909495972253784409601877126107246369349109370654852861018035667700992743378986105400603703937769660571073524947294181800458231247876171604512947000736080156884150621574755996648737792480665099725291553281095146096807596151072650558902018589980787848326604511603035364574811089614203487312579162266185339361750209800826550396589825746757965396100368906963055393515800029884018626579389652826476013156501255543778890323844808355686850075178602123940175834336626346650224052729887314040848368099229748524592162149384871887731769645775897444299400298843637008793116320116920399568040098919593300796744706898040790850001681528651592528586394834493537035646076288157554464272422553951815909539721978025099167191383161598470950981324088190538171471776915975540269789235071871189039999424854329831659339466944048627897125880490665651873036969935538806946292169150557572343881916722675092432711347008433705321494073059912895445297574392978326641489544970932846931639260086961436485670827936166374107645492794948004704183797238705138032398221575821656221371736354531023525822121683031048256016945205622403810453376955513067686710150887679019436541305477388001726927637210660619186804124421791750220902483205035637081598733146605715043327479225152804983377260932336824126581304848114176259068896710474059784746555877358216920908767415020128062542163119642177570440029475881786065874903456698686085265259516932167618624628205682247912485695724618299939181391213497355091087337418004208391600960463529245737627685786356947113122362443450138256719413142761371207953290143388110700184818401734692424617284416355679205230327300232973477949638459366510617676615161218418914409425007646661239184453081363882777007367028861006952009580833099624790345297426187029589477020132670570605320400751336891491136773415482740325851410662228796432625946258438310878730280642844227293110609324265792340319346360786944199591409624960788306716974591212951081825803706296787685015255751305872901834214635414433476134811206164817305028940989363094437390639315772034013771700376236409681858108322286000446668932376683672840662644816502381723800212036982658738363704850492358646974896669510228622835254707454646987513772667912561551754134574390356177195377447753523160878422710178082781708922462925173190575632426280850019724318052117357951496621687373187356879033382243956538231269783498845887018667280626868582434398174196012879708889968758640866947137991253992839768119229503817246151655824917811935241227241245944727771775771115301880806478062186587718730963799631044926139932122139636697121754268988734399207115278616319700565406469349303647181580189970168820936458010587041468990323940279601485064938626309062804122297895216717079940473116893448000020100638813015416116457339287084609730954068004725972014730005647753327446408718998359959810652078604099735063544055408718712245438928882935531756455646816359592767145704347568929854505353931882618833479332516922072125751741937111564171452703781850315582710003698506850695522651500023970686702607836500298123866485765085053607185806317126145356554110082679000257856211704241626866096550568653579303293481934217105791083965878960743326421062340968137317225000376176841023555058097203305332648548627350492705155646407187006023176342845755392076947862816312985349622411310993737314883186874584520311777257511117581085060075407278002387643412175369255122306758342992902147937676492158804507363957902041035637734251745723883440852090800979917312869739342505861661182059560756912984488815679524989650068135583411142122123982249326627453725895245219019004030875850986213376316209310386874269342459597616636556359736922206084412141542540843715252928669823436203521355207980695769412010103674976581884254938519987717120370736044219366115124073789540976897589947274141955563286912141052028657578534231719743574164705642951885842993212292762378364194577924102810801655989225616479993278822833948888955986202829766354095003440010174877321396979299696463403966828323904716863702125525374611731892445324043741000732627375807934480344136073777260593671332196963316644872816749923461289500595927048458301335597726516705426756842475677692766302200659691207086374320053991049177499527984799792147508718470178281678553525498910160441506456223394787166194883659279823372471402829576663854058128016039646542116861011171535879082732029512312328166872571759771385323462986491639546817185374797764220485537674786958381632245253195705942877378493990369821021981245252778064277863529737320621008013925240031155678918681119303906639805463727300748076731353753047806084911402625186039252925164589715825652760056167218198765206870246501951631895738893437479909614147416195940674499913519327401862781697585951140121316107949841589879977824002571897569263584266372263388272861244704429422064406042133235468498829990420051500770833839787724453842352861387148041740005393162713129199943071574406843674903980211797432585265280427893486097582727781695750696555793219943870459350532595030288924647111072487527229076695517743961753784525948505207959509086103865777598488702575275481770264855863429990612352214396149772035534329239936142108644642606254450112024885011704380677366072275139732814920594411303249493177173759822412509038845348121268607022960455351336465865827917279618318034820521087581072748457952740915366836612335702440373735292596874911997789692986577194876958396331711900078826324939918668556858597199345389508350141601021786810530196339884617138850916458852644444004554845127150383074560240266945858520727323698260058688288300711262609612459025102610966953344540360761711415253022333301696744815380683332638976730043137963399156061239084122885545948257286967558366806940503178115982170925011635160182238132231965580586240933010050541223018308161284995790390572925702574840371968445995180168721341268949980118350574910950959285922358247462283160872187278504557711306157971777810157253987521590352654745274124669881186126048471161487844222218465326553351647225349699571485934799157207881904015460624694849254583372259412890925071990154940392835810219254277608405037517402029050739160177669101099616740905346072849546918684515374712948484083398355006958033785806177076037485746133589217795865975438412245146253986699487285267334893647726444553545062272985364937256143521260300965515298105192306084526369428271505316222808141408134580769237433934816685687097887647763193666103703195573142971083030853638626814525504838717588940765569800477303561998087771493387188891454455323388773312463238621676395624877870708886846506930635118202384759716225692464439640350723475859399604048852769729225459121680850362844473221094659758363495755796789751141058065494516748867447670546820608635247081255292946790031813114081038901966126702424548068638481884179569792933352011988449767306686299321109630525189542463071232285929131625188440961301492269702697550667364793158939543205796265990560921596201616484646228367649650361791695679905466531949028960581975517543949292536211051707631915269525340201195787648670459096463227337568547375639292659875606017221648948726118740270492097012778974926948466124535424640100751186371370166352164981678215730415959521314579070187686706663646192236437187137041304581393226564021047271632314807365249374291346636770353941368672766156312337345307225600470863162581822566594457797291747642835473434450990861912687104770935819922177739801086548620535969299991654680084660743678068283991867786168450149911984937192301802603104468614799705622764358728959721785390779338217394569451127649342680543178180567019371674933138063987523031847931410469540754861891789103073669615853335515998491302144920034825789718792921955276847191902012269171138077844336650849729490195312588961585557722782244789622655463165740451542868676015671206861377076540737358653966639563539074070981672889289182303026933512817308915318252321837866034115844230604032571136152456167559325377675863678290528721890580252015682327431867333438240152027752235741056330719241421737425335644752405214990361656107787987279713366900786274343217040228629354364540038703141965811425718174173256007322118506009139444263320885912062021094357302093038341820233768582550540106926380801120543367958889192501167596254215027965511344061562496000755225129602354893922430905025143864612226633600461839913442648264185891325496516910227853990837892940451074936807369070262613141668935372550217464857860760086350432393374244094207450763567574009651138649102154354905865566604868748932561477256901214557497890699131838718765436944452759342739357727546052679017468286424625190841985663300621334663795778558578184777804525547179679951370621000926911096501950823818275073590919273511717318064559411159166835736176239642606676148886380220670801606991505722942238589373847549263998218448176380940397419641800556332132365379123355532149690599599944316201859152850002929004411180487878441823004082258224642235750133986309337174494396834962812389943468664193194662554442032307765364547575609166504575038699919661298716209748470308538552225934444468579841227315062349714353176089253582435614852649042722063040396239559278908190766892590880346230355178933179988460170625743803647286551185477836579679552999455471193076046246101215105005491874451229156776594566740191842313496087841190121694570046961715258216679917798599365477812983189772881480467895975679466487046502257002631166841049524897310147817926123618139792602242200220279537287159198583596747494120453484254094744074594489162551812786599963527273772109120245172687399522300639502336779409092847826973360110441959019348933275895848235808487999331335513170571237366456496707674431139744968545842597647191889030297869543492060077418003810787828517387702543431490137164562504784492624638168742758829869080416567398124036054951373829782173560329431129469889148402929718920448400761582874269067787223653363545427450911256481892740727986966307773740399493312251591654716386762017258849364199708402280075036102829436764226222338390762884902727843230240063420301536677856516599481426577485514455790050423511677114574892871647283924067070718954474290713993138409122711208523215404573896462103317337905655467665009028940180717421287216956052150968876457675664479056494890686449842345182050686701271823751053840829305629671315160196555692165406242703426501819732163971879225947094674143583843411262101681104703682928806242931286512787166630691042347734300918946109947628333840503704552091851744071741917536915363543886921064129316061516145881635105907449106804651592693095258163994505171310088294443188480891887429696605537379737323959490159606002582021787319509922409407733700877188097815632429088911200643067003390233991045896594056488778204535409260509470282641530762826528777899044819072793664761687159346231733576095565728239093909254234666682595410458475425586148621194166963449345188617806478023785757173685533807156592852734948089572594689067518370109023094519110488650360310964194823422202354856432635913943878567970656146606363574873289881123340136697973473487282056800098486825470673238090768943364350837989074822621621938396832483468175142132105862277099019745699607652081870140736505628185330545122928950614439661108094386274395755255238496404306512236589235279086689050379327875799774222472285419762106717311681883450960284108631671563280119915715081695325935971041940823913903205394643186427298900529713361008762156379432885207148676090802295480826201547271671018932604283326533338771066771479421170923313489291506690509379927334021907223145131402868235908745000157582996885342144118595910566040093434699426236998942683994086966565441488552763253382144155487996909597874742146553151292798766868030526492666544521743000330759241491302196573141003229163849913866128831970855959250420198224008311305732259028134876649601394532930289611929296901028201353155645715312548367740722682636568009163112038966749279765908737735538978597313404574556033503407702185288829080260596660575318268714343260940247707145636078850824752901848377078002601504166598898634761153212592017873477509089912923694184687582747976079949522255735228288019656972231294101958803147492486785148697746071469128908459663498260850806094829384369543334419133544102927435720751513458881250459536481820022016144770389696400084864924004526137757399615960452159577698533340003895140819865234203635326452227562748765007306812572001728543285768384007759791000867748067736836058061213910004076898758298534269475051044808543841841781504700618425279031455537962289138512225858781876303242904360034691577893929308045509751175595703267920426011208867121221898064907863150819787143718494663428741945880623973907829203683276146460005620463376439169400059860884336698079602423082409251146522878258289666684452019127418698712034766607379776501405934830515351430972937803371928881775822612135946483760221891360753397593781556498020321102605334541266080580860798643703632568571030268995846617837901518391933594494383981559817811077578488363167084224689561666636456683394910549506353840036536739324804986708179191293586486890163906860900579840212394783997084257494339002261521968985562579534531150415626612778753510489559376550757826157174566833663133109226054512081720460198817549004941261548028507730909399666939318485588302778476499285198978120832445382392168230068102333252721757852928857900264277412174153878735991305382523237829767341623584176477693161393173301708233401325588805847775650235795329649060477956336240466968990803079399999404294596604477962950452527280235980673975971565223950392029275583133314514172978608272227259512468455111565955366522833928875477035633612052358791283117164392112257803193190072237432457238570470457863357385691158208553683015781640692084951136278049166245599463985070606784510650096065424726725070359738718581968926465023443355362762919999274412446285922787811351605761989021583232007590601090165111310752529143513491826471061962499674556404701894559611698727149877488951739569756077443849884480682867878456219898031301138109529237420633134804011738960032985970925444798185614964799748072387056364295645834136463226229623223957172026586577493486389723597738837611658729983156032568111698303608204732866621673164981967969833571744502326071129284252725494731542426429607068560587946348937614053798916302282554135057057002754814436167124202418391975248048510640481546279960071808603004321679423055496416765849907937409616298399771940093409826204637564038506126375660320844667896035529012403350525742440485987061444420819571617991756755503232015176984284649270673574723076624570448288441611734271678202588412629331523799474561727971892266348400967608148725909351311512863480503470516214447696703632052516745169248676247900470096128484025884066714836750648868609494546598224960972323512828917513812576339888408765817165869324798715572428222609140542185307060174713545511063935336082847979669973292092636116233704765920495912159711017539301849980159596925287650889836032214085687811811376244665206158430736045929366112195581030854924581564935815458200347099574880005595226400443227869315812089531071519758911966547333185706697900421671222473314382397505668100745362889692452911962012062401608681733440348172871772365612495294688595293260928598210637793499116272927408031616291924756509503002512322411298884407746371103466723389287418026355194393406258106550818857911527441213652937774609564138568466632010272187092205517839196012275918363186521900196513029418079789721685706363471552736420682983638665360879204257083014204640906173990029564708569049332715498883495432945670815597830391383370473466655425655242621831963619055085849622717098494350883065004016008392659183972996593239757625277427544903031919828696682160798659118719133048781405785951727237209497252162147416529291242150107726604109271973460628781216283358945251423141322781349121413653550903946553176305419225110682683035005412207748415867719998527259799067710232200014921233815421120504572550180491821865068792948577950005187433491601074518439830460575984815473101850221630124618345347172414116031134500178303064088880124091967364618891846689596430473067138129220184652084895196408463674642786887108805644140038436636121765340930394731972333333850824055604329964698772956734658108038662179693591508414329299283961009044700542543679564933818178948628707836771419198326782540152721656789750731402416329770225957051380767248827263166741435387624382732978404277822100388809443648149505555635766685835430122641617259684090415119063536135956216064380773107110835116772723310449590312537569293340608757190576064803986037484466995195832491875901057070165361955371929361798277562906207923453863531070835441811545581111182968964970006762774171897964567981608892979943474001795829712974506155604231267847243209986818415119982151209795086505706428976975558393817292067787238334178078279227455339374647724717664489179725482275465928131432904427554523693942671131635165005283556164940287612549440059343734128554095727414574483761268206554121643648473138184129567589548013355250703340251616611429493103792802581386932509822286125242061648423824860499642527856733629307600766558325539420615619993030734318286040243196848677709275319921144800163741807812299307082754734758651058994670008501314864306439795133654435904814871138461008124750124143608250656204838483048273558970100940645335379981865393124963703762962696305416333169891799019149376832086042733788989543601158328719480547483207956923814384279624026502648011289824655876919304998587356261258678865873077720070674287984377056827838006467564776956257592761357674028907145387815507598274133251010898101302034721236347940282720799971136787799901946200116663484567923946248848025487485786521206106346991165526981174445438427904584809274932031175379699531095669685944273692285426081899344938704276186887634504421779679016856701392838915100639636185467322471663126479194401907473589782063553683362913899638489517607501610738118396873569326325588341380541421139767915915049615402204499140985995295922005900680552145712210995716686810248782031790451450254521820613205586109561044895586689127123839380933616326718757890690772685096591779229729902669613488100234716597432659830585975724402039003642382224131060066263961785798738349205742682159362261037396002497647985457244704352345588239328356060827382315662089436889810074108735113592282775036622248360729340953024804089601445167114851552404488368991886431725147136027980290513158457527357631569668642469586483433229710943224259470537413123092769081807882636144088989032250537960822471774067858487593885333729467627291784265910426422683518388348244884004090976168994763176330855941992863736654420804797324002107878434745048551900711468753030413844600608058610632922303362113632545318315667136441372907402438358308760146924257540907248910944065200022959461610933043138141173305504749846505813344485712400699090907272727194829273897744344989276584156636226483773572270623357404249449234516961039399658844445915930708477810175140775330270726442085608069557571654334672901457301512644772372113879943895358143887526430542634438957855329192601645984741859256940744296017536943777566327501411577003088111251123558184890859205794467747890747460648107548096051409117147058492998919038863792632285429093723317318590740627836340690122901327734778372962214694178940428093123770676048013318096063757160720166723576999734431067873209923367000493034962469285701983288313548272437440037395265227513783052084280733469592314560551049607877574750544116565169226651215900076370315606338570275094807826435641937968968513212983593062408054013658598883113578859609794090356334806281075711504007967164072423432717275290604624219332629196135677029950016526447233567761115230502510199154118578002631546186346815747825336302495542773701934524629966149332373840131328212282118752012244133890330433207950426616321903695744590979600127907264456882319684754239726625833133581419161601807155776500470377569156345327599350915551756552174053693356377570316373310015106788291003962738199244863088895239519926409183542393405346619785708949553170870399315477595874740390336362635991494484224776354047111462026617233042301732561384478739329976243227943712765924446425186730792639317806857469374144450723387598085913041703521603842418289895479439632642947395148698148028699965366374112360585980344574144568686085533394248074087295917681568194023842093304589616323887671332511033351939331722283443455748450150413464417321167596773590089189713910060959524897720287299546901149860209527636862773233082810516478443363275581158115059355564200824882059161648450750094424476564490517587239810242714652497165018405676616014987651410425195702799122236742324211280968760636336077342951274326911037256862828151638037576100608278013407812184692938934422749156015072457132877130543811819621146198506108225713234177173683858148185694905420672763959192255354031512579500401959078112087315036704029677101217600131711109872205118788411986989111722994014655600998266047510052908877469509194324173017304386038602773064163074908011876931051627057884305501159421783317512603436465854362112161396929555931455929981560567721400344442335457372944355682801453360256246422634770900748144585020522540042941481563995333272909889647492132788107750289713600828387663990816257199699669053118106627313219373072171719574282275110244415586637951205370968282625887371221819829882863714258508741165553386088483123856858812150825976732991292967487354836466775833830089427239329355983705338194813031903654996330942378593398971207672246408494647418482294005255610329843970840509869104980039879535361819628197463154439522844039440914718404242993741268174458823620428224393294289362183229702686434429546186056198481024713441080623762897308704441869771493032033437563681052288886461071911215814087844420923196099474239602708027594375535121471419320898924752065422907155886931408432531733519452346859817274155579604566884289872634434179985419775409587269501306745161358873197580288805486782990925101224989188789761372937829230134298369635724920868847991783484356620764289783114387275241952187515679464561906197021841006841283761349998859869248327564991503031596738253071754811316714939487068631134828724410925568597686830047630607270047459307804077244681123799747666690389539905585155719772599394197853503994535762192490993369776117525596241873576400842702992314203447963893578833385006158553925242174775084888802626465948887729433291440676077425956402643310179472910838455014068140859552973697756446717177855165823587930731197605140440732261841953485387927295264064012439429546798582061377837322820433936239694652224912892224257424521011100137500425928395346570436785894279507549488910865771641650465647684864048011170951613682656444336207685274404835906500470234350161822667611713178869695708332172413415160089552258680609655483614670203100815281578877466605020803487908623194220266498765750635035676416114415681629851514015356227703609400931961036108747422347516597027519767165665113636887017689568089070062645720213526264832409586094882020504349341867665181948357768990606978933150728013513052799451929976934382581403805925557837569597462054571876848167018153114968658759285427217530828527083060169724582279543826275569418628322094797564653241162784747680866875438021161611398328779210312388325170909111252966912714795324106183307473724116449879364238320668312504384442129908890497746719811287773605802595358849392260302361965008665687603101540924669013763426028302838000438078076380628301456442731907770038654032542023276651932964199294598395966753589911808389716730840109691937838981237948121363025896865145530396525063630687659608604871999898290416367128511061898531948994219387648224038340272053782199654955102577187692621920712456935442048324376505793994856395069112642395910837886536913939066684069934343918260707584891401663830955839358532963009499536456739606825917371152578184001322815077463647680967633503058020835696027554302608026214968115123274335978330594799598753412561888003684629767071625498003432583123146618444826268704570283887501171217520690253819102664944930594919124097746996825981782772298183608790800704156006092964063187000369857782676998123088379944200944909716905831465721307076228284423853142739426034286290842507911148619057918372713312054911859569828425766957984847275002460265279837773841537434277016780917649360539674403863538004389661547569889932408438923432254162310363186962719090980967585481428218108270334251184539172050926737614792292707954539546418272390424598867239954027619708736068184157795824771535402527675495553079508504217614859201961696739474046458082034002213794820315253486520469073444860143463712667301525934644007099167065961471253470617727804505134340718854301364295041193367231517161017814869668310451495975712603733779664952777515308202052597224472783027378394298920541527442887270785895366370835296298211545689942224755044323372980635616476522029419084515734101093232925520606458020520170267363019741027887968150454084695786691659328911784525521880092038886727897239829817660702102289317657053672657651851477189564137375523960945170758454151242269806732193361086557559880002576484736667983308368185321203088287609546275342329171670058552081038132390298652770443756097663841844297136442424351927481449810382354086183159391623323257141175074584693175110014979223115463515512796897335141343393967810405597387718332492082265390335044126685671743020751609696507968886804759648350069257029735957085996550431556597743376980417326840990052171850051635864412895624505372410390942587645134941244091012333372097122315554844391699639573156922642993926987245394202317758972814406360479249537921830518193298183817726709783643203784118268086245348691730167728473671014157912206857849864010522844566989210253815218866867222015344512653806845988606840356663578346588843166711239324214695806399919045730593307605791852369842619922814688452573713799090015104157066731367212534969238787348043789679500178679591366296872583126385343686182453491314031987628659506272680985848856594741308666716946341894860419083906540646175091168625911377047501295831426259751548913940915137817721405630537737473052439289638450725338949545044317573371994584192101934268333899313144408200823072882369915396419571327211526940348625469876984295780789393107375662907750996954655169836892289875108692122973667419316712858778948498690022869367585815959558326634074424685639473118758691741157704458181046713134187629250434015479493438103940851402980227018798497623889663233612084946561202940257908316997946404813405946850065703531592500487986713908005025387905710835066043802510790103507028630697585600457365009115596416194826940022771819691514861332115718622315732357862658115013070271651432131051197565270833531280513008155103059920053562402840556877490519414867716738967524467912098784475888947768735292754309486514897216972958955535082806989074884469216665488780729735381615969123171349298811708676341389088069237453099468729826465166102571452532959856157294081417466427165535287833247529259165851060265252156803696096370579355672299449509955821534511581199428333687530907370478118719540506379870038099052916559330508306222105123913065078571085218009381231367524208744404142675750445770123541212670845889742653539255307431888079600346766056577150827286246019089595625426446330477361195635088549886419419454150153075990122508213689413123911041436903738291561576160193592141381927656031385684397784095634020937598316810973259720721232097045552801864882056480903591905898184807411427753710381127375070930811817916635904120530853627235347438068059590634418341874340724530008113066536310955201706357087538598739455898499385086306331860136714871628101118465623391628266820261555587315646169305389683039093994130601291238197778199536105326460746997663767548293122442150938995321888166385503315211060344008374908158474158272910181545731083684346206243593355175410967139099877042125952312585666779631941604174958484722348550089646732643950298530934644739116548636246453316370762659049761823083612290705781457576216425468090833631904144682532283359964169996500611454547456988471042090082391794705454266597993191996548830768925815121833436468994559036432156536311307745535274593986368770412200779349033240624896516463015708389517005790703345937957402770759400372032054899907532045890336923467161172378386576234791181693669331393422056336013857782172967194676125108032053822245572888643838736810675898048866614700637192373676829686122442525304845626142114704428745743849519107428294909861076869517991591646871303631451425054276539009637886771214912236729703237981462830672476569353953531844252538668077887210166483838042348334677903176021920328294423399473596080190721299485777788169715139186947587648956262776575669166553290892489671070797475963938072215535540225676432261492924930115160950750091840706783892895127503016673372350019047461416575437217405564055437628339122942356923935358818194927017002982089262774430861439928190623215137835043798096928184686430794470897977016860330706835627521509065019486521022238550098606096341853404903088942886044069007472216830716019419436771250242207233282506183997017798922850197898694919040004752922823594364374603801452256315554154054533820921435524730117622488880306555884978363156533724238836941440388803916875623876887527046383436736479257898846835060879219748918269744394765277420220312249874439693208552287808319014424624213869707900669023598302116263455022535107505675467901222341437015627611740536988033410669980372229782091638241946214376110329192220158917642933955507757078725356072414121592445219530052948097673255243957447673066013478225546105719487328524127073330201066168455905845298017886862824364244305360968576316166348651820301375280214084852230490416439787073343127822581202908167672215973136988226961927208196058014142374885787926441469504308730899889726696015026351660610073374229969663904549776500955503841733736435623444294929084990657043679741731070625025209336788909868707335292598551384935148481686951389996230829630993908504878260927426002124792632830902584544141222873789263450289635127630329857384938334656661978143882012223530262894863055425683559612907243254077384380452766491041779292139974099062147176012433346277215543653172784238544144790824519364479089381035265297734804865002649832831002412897223845249307690511110046179923014252553278880930755646370529065071362724086019659774115992507363905993965444620853954818308147302494180002083202956453989061902564932425709980300975577872011459782375802692699989230400879471238594322505873410100930894681452106741734063726620874600518587794672753498107335867321808180755795860414655999713928802215176974088874181004545413304751149255635121202460897629704193484609153748719094471018826057890687770237023518416768328312018344000877946048217540558347419208094563002663740338104459273847459552345023047642139138876972160850846535069838201101740941641551899086436003635938057980987167896507440716148862217904111617967272839995920281336391620436791321896537698624746636865606776937174370882405942298062601382200564310148901861732942601073151958575590512625249915199638592852298926654439260134147029555070847281220189634268611437012565828681210387941348523642483156425315409238188985205134002295344662463459328391079932085013740674640598778510997690086060836487474789519954432027507704243701289162430704193312927588020713327374443455929346514949300595984612630761498973272502744754701333202290919896406676526757499656486331241201425728199740617976476272909994695946496665291286905055558638243971474504645341654327904648835817007069840484001435553790630246465948881632422098930348301793709671643645912457258460901944163597878106372205502959324430816277208754660633490413901439866667973365992062468877135171564141873331202413921739251121864010264011038597361443117604140702073736319064060319328996984669413617831296333264372030599220706209815921745117884611181983861576319183861557195563762098592507757110287437442845581419424155347963405962183403648082132030045473299015809840706077160015378467800029145814014996071722184506108874267315049572890294389702821368887963194329985693724478915822605691069294588482688125910850945220630131490256570509912884498227154828252356878929666445777048320772568018538920378050440031587109764461207412958286831859261142595286996693219459624283627751545907366661106431876181512432496880751784954749171806663077891825869314578101251534340747805140180331717689367810127398903428285877694630460968875075325977285594027407466584487403248743465662736934309478414510386374908290179401153549585983748846293131289084484901680799183070438936183292052539874290277858519305277065560716522408833717045732457258853970304882074781538780633585069257051589653375477645562551043485690375495425000750187979490076386935486165840759166481350107682640388067925139691782346327369698303479679352937419512135044787879708604818097346303052602088947025169899761816897011142169520916555122006933287986277711718151220819062598631888064257536204976877319882664506961721106855236665295919480728708849361565341739019898467844901131242619372670945878806972521319219080735231137256364253701253757119651135274503504663865167271998463400887557702965232729827433289720956302203961967279670225000062670341583255132874058150659123237537152513214729006363358331304266019213138716540879529873783190609496036183742467685877422179679321062304841796359219396603514287382596538531066639552418607294189088685772060783583001122075518492606217249642239358937198851033502597011768465215399870027123533051719028913943750638358875881257967832070960561689728924923730542449135005437965342077804419427924449389434723080714818092931307321011680940370253726862975758821038347062436958006961896345934789759266655196118822792921482294332431695249514651695738525760433358181664186796206677627356654785476934805399060088816270759227937092744888566392730848323694532816919107230486105755127274596140614194171026108053497914083324787921435854033698137784871674341835638760652699029842846815739990618675306498706393326122077656175711563119730189549528784435262026707135079120894471497778688058084531004174114988457367341689820948598419937022250428330263572602685910401049166008469160325294672291297575511750136310735003342583227947683426468736981632976217018057379887259536087413339859852650406749678941635795430112576105215628946137606533841861737696730424669333454546344612242534468094194384628765955465897382890016496535515750826356854670258908485283595532752868662103063916491918128846961745866970861719795234849133429819416220078816057885514952084194268003698901833067169567307450553283014558053981214131962655042997573220622380308852466298975003266075100425249552312901106574674553542201212698312160995983719680594774286486673050624085418659618764001511208281786643178462497891302455506667930965757305158773375036871135348851135806206794984772755199013486993398755809982313877325687825479269895810497618573683891156233628489823927007464014528916281601200056986265894300298241381313118702495349025667703258130468921257261116826988497826086487007138773106034026869112563612693795955360391498435199717440369539843215263825671649415870040839473142096568812817162949757796529948548819654716647738879821041486541424899079230831358753347755645316252764853050733111840248952229348316996361810621101187922123864314160938797722964998071379150489483859290218919573038220090699914585829486838101446734505814274081260381601019859417562659918850054608076901700552890414029313047310758163058511447857458759116148184281827078662034381183912064269701475142508754302785674842803135952095805638522336772119337436534568805881349700540429045190981607583462379250778526664305273949294427470897866329227870327389639623761468488359425482572429500645512380758525550828289115174569171365560869476428695376123661265093225998766391919460664496191384967118446779346363010440227293878126408351133809994393681914003146027437057322789315143285347799570966470394383868946814105522464576498560119105923431615222608521915477894063089354769417472782586286050570496230110044606163971349375341418037459417762584128256821119226994992886759055196368521664433359512152936670960605692457645198338768955892910682829021474641377689099362358152070609401631440503762052918529717976956603542524555658235153536246379432352036800795358533384188783682667457386697920586966562160733792803808958725202141648821516208146912192004297295494408877330358582610569582182694979232027609246669008966422730615775984493924787604603463358563998899545353871994626838434042718360487535978244261629768711962109891862741800012116255534129448631051081868083145251774818361507696512417639513579270352113820264511089284532279309036433267162503440715335831680674656644532100243507673441944100842799525008588561803389901030269825908541089306850779358836690700475936961362851985016679915292059965466576080577516074736342181513885702141448364911379267718353737998509057602762942591690283806324781308949352938353106448952190721727467613126086955145873817697355944700662504483886419923608470822174607309507695807603563166257937437902145796502537757796743764011213996905451362856219838072938853941806846886481616873643114098125253085713675337004181902445808904487404292273022121816239236092074879816604065920177596490000036711553565023451364226264892761194304200543663413849204151459403017337893445028351094778793412560605952303999986928949263501332077089220513726106602013180359708791046728040663673228826515911307062775014167300933959002639845047263874615237116043248241272900461548450776179588053771768274277241527154594965641803887024809069939460788585254376043572148665026322577197647158719169214315142708445806575848587010461998507094061848319955628367223665649547209744067029956632937574424660112958732335725855752802355982288897098909141647877419060103420858439531537683927142516677759307725737830546879536857021583964058315499902297796037184418146902857483220759066826850213503307911319420367979435704978126629818870951625897669245509715853247038853106361776725248258838925205113661213169793164170030784707587823073649380821925639453624277412775937216564206360791123164473193289775263803314060895022596801051702697637689707136876742921563185124588883654361914314923306849170406844952918825247768836051494416419095782842608160717231595123645214709950735442572398159106010706784998997949453815170361270176047703640512383684744315037624863767061315375899460204862853506550668211100977702904492250429227479651949145874650889508691882758154939771684556424094801796161390043230833590403102653154974187684701376875283503467237562337475465441551631525330554664490827042243179422447595621898810519706086342440118217709601412546343240517831643035873086982977157978240760721228755028376713178286433389855354566149523561538396658175875937815848051721645915366676695046161675208264567120833421878574407081575807703599700894005662239517474831268294740286769794643850610206616038625175044488051223933677049106165926553817900215810472090624072326742726532958450167387906315882637185244403092076005280307511588613201463071971749645480104696018272517328262060224122975123116575870964139622913624556603407651486550745118410884240139105083152858038489093801006793721724769211933813669810863054674628074030284993662549160606913568269488900646858807492030113361013359911500303608562964538513532167416628628078925004191653782840130246048053943421883913996982605247155140675771128945233686596856150082420801292947604096547243301398184131256919130417156097779448398068070512572550744089635718586600549957757825244874822626519632754997369930794288579659479331456292984463316122293385672173352461958423233949343773901549908188759044192914241724515244443752019901344354235106628234240046644411413104636349675569459816984429058014008233236455087469616426967977726808778033914322735374336463407101890938722485287717397267753606240785752105632685412318344730903228579514016611215125797857931463288728231996461646829400204072272055347369779562783560942668827421116624775688390840910303143991591863040959399522600508669223023341015210456889910307425130383613292591874216171792836711226832052979258613237362388942490121353913506411344829426402964683089061732368793232257442343326389539025026886978246642920904463310119831502971568914308906695989356947670662259228676866475843625019375113832312841774032939815500923684742740901869291245001536678055838966421958816781915226178567248700096343860214868763111298179289829056996939878708467901246733047268028230342722602204589072118135579689413994649999301812255386356591953616194483907081451945205244629372248964323650846325780502028907725667000418552088305927151345749782970283035193695859635018995882397037897866442573288219520961591131080503014776837518367133137643515754838691661167493762551283592823038899717327168830860991884376320417830695714889003213595938756197526215534445557410525347221338948380458282017080768647396967061272433629101489857924926142245953069832277181538514398867496601355845654084536381486475432739006104094544538988878996159127098355230987200906968115316219528503810922618773140238727987295323145561584572946389879768678997039905235585818491249209992824210741748923427523965975553072385360056401013119970891953395438326500766716884647886842981820691636624442559828861786087253045971925785542403903984410783176277953198011793074216004151416423917456201164076769387792979518465821794259987682501236097355608219018785819644540018766834572349667206124040343041232006904240004478172385547434377774500122567539821656145528506511837597660051571652318082333515588401970646626782397189679199000747168231989791512503371816488715188077495678357776854046266205215260717268421942524162476955457647454956933403961977230992090199987158159419212350728532748291106976368334298203577453857518807976361133758020731401980159222867500868840733571721710841322938341510890537955971992186343963714161038013949136381146177081153042844260373172769545682809505213891031606677788749345807946649970276986099290576934219659308144901261078577144035916920549406956667485572793887286314928704254189201407782744981127710465861242672554282615116696544278893366526408562974731311615783189143196787841475722536536283568104255905113939370720052403135757530015235388890520121012325089173585144047846335758635543740861103317253188791047473530674300030966078581117306664610443357837352437938240020095867955383148990799038171621404181214752320509313126133937587438889586436704058435590939698375014121815657630542849808397983506018235038289597860209215991656767371187236403643373379992262266334043344789964303325147955208047742784686428568283202136658207420578816249014931585860375778174957189857418374979962438507798287629110331586931246019894747614724688043209452526549496953470360560033714296718520226041697940503531177251397400891095046383577997412130351632590401827949490567510132295042848177277689246253462018482400056815146943266562400291613817074337044143921703428317077812459648723750820707213340077099675711590344339937982598747851564851568024438453295611332761250717004668495103882349734751603961120473113465476034447355044185839344179046482812694089288426358709455086195302590093035752331778803796852722374271053717797086085682151297035746847488918189741523726510274592123007476122106063689821234489115703168547712980744767968126639969696210072812463304519669268420921857428966621659149333514994338185580110105200621718137236172444833418327370697381569948267746608615243262244423459826417291543958991375880762348861517765345620891085473014444251147590806436248709688801316087857207737996129943157813819009685911749151734102248146643459001789856586145554097777563900417374833079508299927102235600271176028671128506308007257024769223641325378684360876107859564788702840074697117168268585316422939025057624027658821219919666658339600390889101714392402818633116548180888447563955276444440647275970393026315973572771796949481727799100992080493918350076266849183052948979084818664214412136542754073629988063532093552095476983183601524395884837213986231465093987235984213624658315090622726496880262007701554336519153393950897572076431071548008477248114125015108432799561527263382303448350554722047717151043843133577866291618248724127771607893617232946216661634525236134814481598565005902139594694452155111560097868558045420039850010373768317644955174760481470094231303070184138224835591617216873657940662265377692196737712504276618977365881821271327843422881913122284620392546143760062663704694254514231032960819939924522238575565221552172730127317516338217556483297712998170531707932007525502279034432992706333908027597497942822786813142875545198245440521293981331928196483604044719054651585575327978657399910207243092381473868003545246918336185443641333604767413646484882077141648455201619952072108629994747176489476729003790708801327487596948497787841074317684876103191457978475114782761065321904876512604318870568138278318942337046206164210652822763145930670188100104805039604407827154672649309314486072654477076526021742035798093675239647030311074132727096162816835780929456130092557376623904628979895017105026372989276663694537602633666722312062837258963209566205350288414538081864199898031837051558029002107695626398607441498449571065647513572310040045551280474792061415936158307937665658527019865700631363810666957679112853193727601800040549258190272917525211483807900683319355831857632088306969742075734850732539361658405816688631831369308924282571455668298031511403444596796810900357758942103938665056413461951282582687112456836154411042381300428381695311899887195204217675818884183713472495494889983195195684420475422017955829598575581634370668456693105298005875848662043584944786650650478023079360470609940394433982893181599723824225420006598649297943845146127789402880598754870263642879569527737472644241397221349858977847008031680354239360730381676486474040486651718828278456709853460581905353429710614709204411462166361529655608345910752403128495691372672431742029511731715404868375589565700776598563359752983719126555139790442372588858708480988071164370324560844401474659268464190914425382228249023089020135871783326249523926612636760927599243165027604790824347350385968070722621156675546326939605595755298954089116906374884069596780443326923658270972274226241891731049145638684250354414683445327795864696933707245080829028801285008172373450980061051636866961051329294277336575063228963268138777884760596105909220617651945595547654285562207395665566252780090508941896277301362072381866096611657837021499951994721616520663435310530140534995981953602110751719381558481187597883910666539516713499820799163553319164955710430365056855281453027539984536813198784107706316980792964540304339464096732509735109904565032522994432062204434183942011995856094441295820414635587660678022476368456425565009610100829609272074573708342194743064084718070467055809621986856387660813373952785068300583480832716333118565842932466088446545769349191077255037737040795843523099881343618848336546606823491913385246598952761642954601263743196096418118200974022237204253202916149806026466704029539150846150174131999156368849549599953922088414130649390759345451808007147244830365349041035290186991051356784302696765460746776409222699802705445073757951474395269577377388642059550689146266038999775329772399760352077488265330872207344090232056970341580873737950953057001337277958792013662466743479159967221063387090832359450243841026104233681398035648667310682453774965112610191669166849307242776071089218120242437881358958928854948839545835198213546692528992342848875943437210804143566402682249244479128638067900696571327486829783185063668491494587598655551831004741572213577741567508595672889974322072217007636789121880647483977096960529100073368744423405134253781070858456613778618159577591049513910298814491052926096365972189803407224684244261608469897810144344448139744398163171130959192861626461220200256942974933768768738740572382274618329163088584405363660922518833211303780141146695818022251423413373642672108175008389080988886596981528214364377300506605911599225334625716340514370612352981179768043299257842499322896515347019882652563222553839725597966041777097408111545898701179314052518540768781395270864728690630046893040143341074586384755277293820181968643496144600545280973819403468842088897415088414644343544495254104194100293780846608207334807370780075057954532377170321101783761090525227772980407293485549214996395932694613191728533427371992563354173147595718975401376917139874235440181976453980774574983534261437470831384444054205682826077985609094864500969297016934779866557079795926620730808407160072080142628753897870956486391175595824953268532972314662186116512468784780853753788630994270726351730327984526522743657919701526972890740202151346902827567408584159915542006803644728402956720477118402137665636951039672123893281563991349720148648485643306793701590486134100362238045006112092095778977071838319912122933653669114951374900485949525279346588937057834983391388200402322185119115150561056535107670725628271380763588396403058406043785303604140130572337013834010427222917812074787932870304938406404716896289002338284607113343671955819206212038553434451797654617107208950392132064313394414042355304546206816416216433104971854511933257130710068628632921728624666664384814153400822546731339059007421828635860343156137112148160646657293142083103521070036161663089728801576733622966059047259618592831687822415982329710081029617155307991408392952250267202420136414307938383778762481277114177931845516185619849138414382112089360689123853785152813055897285958933171438289266659509192425041954083437373236897965570512434856423385170851153167344726171976675751528574195248920117792972536734357936793440852960571927181985993921412211072439080604321260595618466226492663299079394036580599994878070681723942079919723944187755654893097829023215553815101672187345981247135330979596720189597778508237429948748248039874142182141029066216621744577233415557472476841433794988488426391434576854750008905395739283302967257033186815230025530668298877145154838336282086755780697954412983182828892138011985818304985951717565931779853004732590650076452761629882810187705639425027224697285184024023551799354253239234866091200143046464402155839568077239138322149480843167003112007971265483493243448163626810888567973910746702860160958042507315977942393202664464758436454833774178379175104755569017984062701597134809095370633326387982041849160184052571813937227524865547260210813621326664280860969101708739117070579402053268338374798046750772638103616306199342643896463759230907821596837105433820531308628577120652630194712697346890329073512528795898787546670399096710209555156160843073104490500366358857310063105702334767014229834875702487962795037387209984079206470070001565838418333103263547947830100126428585799886514423869529954470347474557151922834533420866812404692355532479548258844902905586287202599554760236755834508246492795327855249494971523529957771565118296165533405234578664283284725126444926882583393648401313817156281796238321985517110322590046546826052249920538050760750968221667236372820622980530189242494917774449705725668203257601973730503054213299577552230952032092051316496491969280093595765309671265500876328422212710496266002249646432714525792037413424888525946526205111377095224850891428536118027121086020256067926510259193556627172320832956387717431168975585940019597591812182303291380271999229994438007571769340535310803688663260620633039644232051317249043160096885407699692726093887845390809424946264491217686454796128997027971081522842457209437304961602775123217979328324648138027993276933609002080679675481623064432759143033413701392937211086400828241540396320693180707237061854473827406083529130845988150689009242550189694208331205928920206509758477786815405174377491098016870843243961983643734454320300893075433390523536068744131126481027137996657637273502142478388811853271371563566545348263256024203089849467030660657971880455586402889490029655234105712838846645344295186156787876250697350689345002698551077382565786811575755704598424894660918922437367173612685538759496208846093624922709698311640436646397730205661458370320225955594630236855203883604161348994656541886454984800162521809356712780108219374113887587445255035647488601271963095232242091268788004974410402581699850132844242175011443615772696837086876240569530514615388435129840265900472213590172856693189991050011596174840150168197294869285582922599857783979925421346155685537343309908602150174771885581608614074111903667422163473801518279480564623634203114406920879869570636143057033350036996016783640362450316303291177585656327859363627671957397263694208212527859627117733207864782949085878816226797873786564693101283327553308674345085200542083190092160061743113678585882447620000418770214417803594730446903000974282510251938574528394745331279759709756110390536068903699014134091290986539522292572567781655232792956484556561154178983577206261244676271071833399714759006670374634187744319743425905800560558283141012030021963093581254965253811222189194210982301374504729858188506093842738745627347357217249314150664553616654990809219375253807084036809710558056701285862044657610830030732106904036596267898248099570636182979194044305545375590138663689972062543581388361446892152230343405572547740111574892906772836873896174987565647114901317943236004158161206799712284913684855196395866976058676389988553780584366903105609076917317313892545611787415805994362060575749779512776292092361651833382313978739330143367076957197180789312413686283728621725030273384457237467321179612435543525807905257854640014051299396686703644573801053427508822824285488008334017174054711996214907875010838276923563574580793136072523318927046802345535712967706401320705558266941943471980075325803334862195765318033266180896510089284246548931811084383836881197515252378242193976994780018804966630877775731802937285776284085123011051740337856113453408373602157745982837660653126281970024566439141110791079957284395630903585338570871883493151802692051732251318470533140469475259665854931352894907980741700686102457083341866673719729720688727504197891928154717661332626053270309877158688017491952497643037819401011925111943248136234410828709001937992690220224829789983600352752106398274671554687839879379474939585692147511722410113223471960209829784275833207924994305453737293948358082331379124264625395247283157096481888234658556048287343991674554750894975504914856604003451357158742608891679179098266250372269732961529867193080318925796514982420950381704342278453516223913560497758088381008031466785471660097425050059079845362452995892093758108225404508036170083104397239179778843352732992571868678088309643040300335745040952104278307848949890701895407888114196455415437420847915020902426636530713432903898578763461308580012486898307285856818865650258036327157528964429044063040577470965824094409504807159397125453393585555794146927228036775694180125166744888546390244722375597294532391491785881800453987445198121988194884622848670885933452411836420490204536193226999095632973884259810881409718761064058859844308134972939850955390570540045426551237902213762886487026635842187949851296766831015384661812745187937873440807944997345368304709860479613477898563526700644756492768676440790506702073870011568420495612018678108795408750138410769289304408193657157973901250821091031762444311930629217895421630008115534405708708825659173289102861153488083153768043572461250248990606244521816599051647974998570651986521062408354860077772180887520784712455062116190704407477549778387358543546443417951633955445729016131194433342979990693780733948190488771557490789493125498799752720723106857326386772103383854294107997885143836750417115253617168118125715116949662045357993726971997933805797124294892081900004156399551169529975898331097849341155541839858236377784254761354056031192715555909440866429133317138196609786833664693202002602244121082775032417607710410704125784149085864590431993770055927939676746124147383998043591527521288536734982427079078537915308039035728790283623206503555538951751509908104244153754183998595229163809176268696582587668820438774178283615491607680609020289944357544926708482095683405934908533000243282234464998766444341975617487240181105336896639970495498794889964677863520698571730243749432679170631275644362055570071203737501669642527682547870505816143184144630287547980957406814371881972544703257166987311076536613668241465385881891362228646910136315692384180589911791807472752032328214336983859069110226279715587626160150476304936343417499553797082343148756217772034236052568088556278718804150576396020769299493105426691433695258099841501880534688493794970878076002977751336293266285231650247684843647676342973547559467252119047668292984414542149253938114338052862145130547667226565053459640144418299745756128157881795853329659874640484897327170296368978556944324948704578784533524272036789321474994018494370168723005805045702462307189663516654588880340345459961894305182956986668318778966944606952574950154214687005169273973241167889482768975988816101572955927009121022271813464055646735797849367219742167807523170182624250910037829377105698828539055988481955639018953545037848233064130775435352752896968246939462808184778362832257525789871423605728481987371595689755975832510046665604682028083545407129644809766080700107214316236977311664311855320809354955921011042248538487997981454479214827733727007611566433426477024497602053606824427931107300210600410811638230934082716014166956257268836471821236550723150110999356522496019028992412239643489717434408882773918416725960228972268186517063873634758131780251697040065613039230552431959504451682602412866886972630953564935984880967712687579727233091742964308552237440501428159837495906707357546464338638945038705901729789511463519136885230203266321900104217521383071396785114614464851442060383625114679062928228003143470857842425439139510335345852431341715605061422362629993942474049864265526065668782660812731374558031277234867912094406912041390902222868848064275652335086479690635064071842618887655763594117844270823521835721817546823781972275514455017613392195885886864544494929767827157988580379405910474200492733304309116016864950039920647989944856551170385857058052909088242690863481913628546898315506905552385180430119335757546589432847713915913204412479183709528146119369129560634639453532381304849321403536356251197715174266633820843356527123706005583181191135026343615964884515764357229926394063953005199068605025362315726459896389667866458796879435479852881801587988954245187416219004633658041593344941102158773118395724653458210020341977067828093372740581456690744898496924277453165965186134772643457285764282121647755393273178216890343896799764953439075964576875715909356608528457340514937238406445453108657005588341046941168642782383974986257076213521384753996061635013506013986224186522471481513367038288674104414537846860336300376066927259189357436758773934827703229504878253482697683434034202361265562636613933819433415996067647170145211077622153757153831681073170472680400085123978950619085373144185865497203637945040754040421498781944063343387212237137243857936460232795345523247330073423629522886815073953424022477765123539599241080384341591896758697983593012506641628083078125855659179813293740379166094360908113399782858503832690903026907126431829586009629633227235514619226952442576678850551516107122606850429146847519314614954137627905125973230407589043979796051045728621090522239894492023342860586351002117881340208230595792864063088663371492371302265448560202922848147089961368281189159386431317594844373104200003346933761404562608777575308055513686193529101576305292485023900263806671017175326523500312707825267989485357102599260181037320434287675510283248912714964638773966632171033802506220776419491615860729768311211928108986364618838460614686601288782674138554138722957729116678216742134981011027436536164851471821376297025826532420996570758794722876260169364682599791797297057340971449664201468981262863048214240965566531449903250721630199130800484118441256378147797200305792009031714765940175705648934479316037650242419801237748148815868456419903494522853145186264744631169354107236308622176871939515386666245245796229674032442407417481899650808217197610077445729765874865046853052850436487165098554158241794811937805179420553305593713203356277363008047002405329793289963771492282483097659757652362948738524079750472192624733971263663662354590752426763139731738704667146338214809791583642098203575459287878277021796254476904678838141729878543045669261315011990569153199500461423280506363732163230058369891521280296272117492988714944430294134706830300208552015052084392150959399124632183780049435773554490468744472972019561146081559504238495371655469130469489893707774801223144661586573935381314888273573661045058169498218646934450513144499954008988012909455549600462265135847789604829385510986507234377455636603007134480694631703208778511560455141404881469037781817029853798189046829865349165200262994909239535459363205084642163429165739573954360624264971878189673079604266938361956211262103601221591551691037815156119545216245810573093494034587809633913310269451013388621826917757707925593731408623808813732440689130323617318459298283610596441534584997854953427730867315272309902624060563884255200686432718860112043324421182779185979524262187002249669792171563231066624740366905346256703757915605884609342664022469533875687736147254472679965600091246042694421213254028845099964877618331970384531537197641911560494542301781467186632367889076394693033725338119844278286008007002153142806791198010511219952055149645527724791671571199210212612444409428546086386499558945873712128665874781745687400654620944527128448122698991287615970058574355977789560416475524194059481359044525125323628877313344804790259875589006253841607887375877046588417782709624904025470802999784945961579197162011577988651827915736199014795409978556093421698850229790970511640480362813896103082283743823365641767818201903928867584528712269697511830850108908771564685596873537629133339768729368863374654959528711252962590350075888302799900457443649102849488120262519423543103351913180999935068080269753703570821673901017853482145656431495312320067224807476836101586295601520010994991940979696798312747860771441176879903688214200908480006242722336695248594158771223933709314159917487277372992673514431796568732780938937776552416039152976269554383309139865876000187200346005519602941560697285184635769606065021575928680207424189347184386233805385406360830982443153615042920502116929401464259028133744707241940737042970118362751735948464387825863357586769610130407201439548485184952767380593612146398293822419931627100481561790418420022453897291653914764189990320911054603547660574407275355199388129086674108174610438704372409128977858783903785455732521177002861191177255897531518085215766890199863894256364873349195625189106295102704062569094698882802527356441183908705972575554707106041513341895580367051355421547968343025155109761328936740486031765232619241912081318176424618067895627516662910986563486068761567504993197312885250399579458386021443672090260353335988443892667664918176299126779184187567107234628897557156318560489063074102212429806971639779900982162334178633653646526199266706874727699966882853837979839041525003771866703037565776432357601783795390113602922584906849341078870542904868572704694633721261683015812431403719154487765642652143185286874612449690075100440750812435257861710936567155489913018589875284368102659627243484903939155217744019704898192928354958084029734629585090382979030918315542340350760028245375658690060819354576240929334164142663947869789129474232638536531183052467169694577221407607213405733787193614786045464268115638462282495370247967977577945829339348120445944052103713150043687055136779554750538984404174714064536540676381692048371474120887799392988909637765716684093170930858998723203755302842449874209663665083703916425310400357213346288815494526941596114303359420115836841361485283958724148869151532881537358463456256880850531772791232873402168994205958070564116632397078335588611692268674069558080133803806748756567952038466364159118791964617797403020105555666206593213521773404772336044017851698831105753676645500362217599964302040338608867964651609763936906524346009163356483096482766090951735945633037402971078437127774913151773983521164811828808028995978387547748462574417895401761791890559885735429558199416088196432903645178872176781233993145004168738721501705755238247329106747963177380118342994089944895140005134005412144847218708791498564681859629754603200518505963200821247172242737007224992531842680589093567856261082074608080141623907475500297890591079969652311618369522326553093929120436699629120378278553262491486808511778703088563319406375953444764279020867533532172865864412254649144765252395380461382665498765557742255351295673802780867465970571593906072844421134062889729032514435997029252238393940879512541173923951774219878171443972129471722012414442640271358446333137230402441554348052168966061943574410811810053213247264212200482679227138485933127080316871125783558447640913080968811916099826954913438764973930254154928977566735399373281388054738553252369724153337039178903133944571617468438892776224124926327815207045624388051021047019863499539439772848323382331969181326580788886194816272953899604827026476517789710250708735727673754996843297659025399734599013957648852524868076608035213083681935502282126925841836375084783237192992328319050495539536869515349860105497791354188255417451027872107888252676331480375331313187122219840499504838635545181427313503918409815648874626964075271776568506028201124926487032588826861685067877391375309898591860356351481964102412523051605787524356837655822031389137813582685474116522117245230836751389236452939709754615163909592463994848109664599135280011017750014371370512435752214296609433075223272543473341471703700393795413967244185665052595871171449683233886942312817495873442878606305935202017110293456315320681885327163975534834623930415631453617769480466100038914770201979122587596474453269844452527474061874601039932380781305489108569909439642331184872754193480733029286614113760880401888589851268926599355193223485171645131130008167408231947236215735532153642168540885900431193399141793544867699905741638877197903902219977295789570111043470615519822572297429940813314411998024437775408935741116085278280368592717298441524783285658171487663763980547875486504934442543049246109308421690992441876052430743047274493656292844838332597684876906019579612796561286224721978703011809886180526066882374280051031457576563303551637440660013289151766295618954910975097287331953751453717195146386573980858088737458027881208957259512985289486288842440471940125470760185680386566737119975777646352293289239332959985577446615915786995906746120090172654962237979849340800777505990765907624125667292353726399372892407357631261707289349501723066419440580568059200406295012305562127613953995624730352363817661064958542181512965389638341666396002256180012138404668806631608696714862480576882467356918111284102797641318201015092614708099411956626247984773136013013811851965910734841378262910342706668849763451184141106759784043341256125859692382633577333542762747174524064557507025948098829006016995735097150649353409794603847778653873590049492686714679901992663762958710380356859233389605381808057490937507528455555824714866391350917059175453918183657875697452087111303676790015546978692002682133681948865701171532824432151358133325482762009767472925661575604861099416227577905688589312768447950540783010259480550790462986382757235422683841107362056146387979255886412438362302834151646029473304560583318443310855081143577991050216742808113781725112560616778346873859714859220337780085192327744949068940065556370478839181306349403399486517044085260782208761036743671402487600861434184529190641354455174317453501325949997348772970587727614560004543728998426330337070708663591787904534232442336404010567372621380052367422480041369608158577112795795815614410338808510092981089438395943581236578539628059727830390594638711338081464999944063905867324261596270663170201022523526493529728265012916247809197282192631791180136490031136516973842383117178792729169696252469712850022401134219836452950326377236952625898259892675896147548999894481701954187862722435745926602898520742904855723036399276895159993440200601381367436208193459775614801800731911538566096708019440559987987534118976445390033164674978375131697002311553966486157036943953881720050942804587974222548915735622250201126628022612899818630341384745318718088969702285074594738247753826300671958008961973987878241886857227650179044027982641906543293253132343850247785364613276417881210557521298443008067729857752370579147008709306226164532152546834883794358108128097255389403297717847895170823006374166111655812532424074615441714492065846617573429641072808163859583526973992611114923570936005707954691991350350962956177758590899609835869633164598916905109856145427968760703141683863696288044794786664812831796561277157019597319057884625684518902265414005349356581294213560163112250427196904631341579423792368288218396177688368230714916534567559635361970980137691499102067547973264861198941905451676390679955673857842866064790188364531317362306175079135642297037989016524185576713448975182114127068287115245218958955170886525858537100177575299026392117290834425337681878480626171849725029417396411831736762788239318779662741038788276873008138232925577140879767738536191290427164696026088260404431204500074477412466746357597769265968285250996687221266869950233351467063639522049047249867433708980126888004168677239240056228910938358618020154733561060447626288564260812840966087660523676812591329271463685409445417266487839983338241479215517325482284243624726984494755767070521300877807283337892178030712079869455657473283760559793329562995654685563241396434876674893388214633758254660859305278166632179202289921667259802703781984873319034907162477791058976867697178773612069213205832896407086817392512263682518705542987490238672653057856784970761983075740466331169061817462827833120502318967427181325911046597675629768808153561061359228457898949849713847172428958425633173753968297310016011020212855795605323460848310592429125905165464227295435421818229273299306397609327291574347499489190103552881075541469990549711300964710437538660257393579439392087807465002738150013720586608715296486506802788802218112871595677382158516878069613582491162149803219908803127216414021026253729434034754594411373891543433675262708491924477692843215790950879216549730219121820689761475281156650788033806264104932040885094613392702684999728139715851655953625343587535189349747282474639360654634294551608844655969929291342299708490132168044806942511431712346903058123061029163659121438304363514148327495862759618575688780140023590759215195222449915961308202766812063449212146817886016989598310948801403493121901912980159949046106408037413382329586019359606007626705697356057499067270582101192768241436604986338615465714813169814202815072208267241735836538071707805300810348529766154640025326279572637079286044459774642039140388682238417878200881686975539018740288157875993579774203800185348473987703506776381039954706174870233818117091242085869052378547526650025225360850071160345427146023663526228314379137797020908417546322322749674952046561613139094456321222997237352699488608506981067339293434272907361352148852619608334581484164083092917296682880026241630635163430764033239035299592476966644656333495188714357298192413804735606073731181724078172360493219555719378841556770329870056769225406480645080703754929740065343481419316754947904831378851410098622171864931869776578197905059535024077614817401630392232187494005176331662771468675905843383925841416597971190430656564529255021497383685460807860561635235435183526286217233779596358739854664843510213576812402833874560495104060472398222994189394353065342333008337458579667044531714125973843064398554404410873114578668764249329110757458192710149569570482393393250947121790621701205064422589126937551791535900731598854060040584853219604717597550634696962748673897230242762473078811811091666593922972117719536118846746952386835582950008983990957030879059482677059749319381483539370159885742502598784070608550330817610249802747818927757301042083389398172506085351459782975038599869559950941677345759348751663420101989872674405706241628003160261231820261762417219571383388932603032400081990767979723108406703001765779755381353861137626234673721293527593036649338696387377265274966071709214015728169130291087350108752822460927514095395846795586849062015555011096813341323697129771129452516041597419026382699126405280870580091710836318444972479969507972719894083239358397025275094705700581124270370420508953815351635444381534323653530607806862855425346693993126497035747762542147449734235141371880889317067540114095930377001572192607174821878193678027755452005001740551539605007410254480212869446365683724409138297770138211440824001228625829269338259108804222505392155075857538177998642644926195961546703473940061269673015617401097256188852796521424326965699018967155727135671821121529865018112252620107093999599312112975300960353670990085965347951014652747794856158767850913383497607545742412774879752812805211190086320383899043523050605048457738512275224862225445799953390243412554181061431511491318239124664654090089427527808378818455239879112704326675962440984118916614593680476245750846906814346626500576964633689075966669203774547749676371871925966741894894723860643750619644164601141908978498704262201627368039641370556576474481447765039926537998875234502265972671519372958697260873939677147777048754178458299975587473362940751071972130814426811035642042776715743488033877566286197595308483957519237098556020104310406940572569315725091245071422983850221135738181397738691225965899330990083268424852172576124956014007052049959747958143122086811618128374236689103809117875807384724073174979721820494247075100675603387512932377583188902060302709658273060712476696460385793153177712090452256458621233457023531199273266755827553936324051759639014646961495966930689700018480887845190987787338431299351592056221919371898781883784453107956698674498961820869916839169830857607842479808653029026811178401218793265783275928818827846015141849623764561010295647487701617931532331388573160620943560417110148492773926250135339238192406332252628582595456276384163780437929891865081258368117815007828721169225263578770963952499657618082481523254959052993583200184428576660544594388864288292831927957125049485909938683813570954805605625534861297074678409065042112042539744196681964980738955653535678086841296309488555600212456743099002867063449448253854905612205719457349557113765564500004702743894229113767340919653115379904746832808019248111394958360624946641262997228455935915709721806835966051497194479897449396981281547249938536478235295996637013678172799279803271075649456925778704144419853055435129100494966950454065189896398600855264997587300571259030584994584243704252727643911336413244944038373777005317810567374658256214302170332302176590120939021717076821869343318995345869455669007000121303750697897651823199110248050451181720199409443141638357765369473354057528999085108300188120803305142190804310397994691181363801370999299975151936990665481315028813410114831538133794299453043226133772229999605182947826541331276172379545516284209004432887937333431905081940366723005072587694369698158306285424489186766891563368257627013025533666781438993585844706716686790093630394918417736321266305013922349593298757834995847535112866314706118572881728394992493081553513684046691604138189790632777206673127089593477546192924177474966568414227794258322363015943974039501197833782937210960147367096659547096794156251337627050818726464009462313704064277780971035252513859252675272715684644561187019363959543751151510600819327783164187021631189471483105198603889459974348633893467466470011047178202856410261678033557588810757269003374418334623723700440527888324884553814240166490104922327865432846112645542528030004105946695495237078598144861113300425479582583627999996644506337001938329883718797528113363427418556965286729110409857723263617753482937145226927882604192647422095942599630893131561057807743599642274195343060232264224360315183992390412969103889501003366052333753301900609364182012421008757439048043910028664395260797661282659032937596526905150364009861534963220547945127090596224601604661121351497704248853817782941611033910005972973312323282940840258082277693052328690185526325722775406185599394102454719910168656020025502019761149549222338147773728368738188075364556049913689215307955913363035031171344564165525624261309165276702064742764954472811202828558141660830730453514101774500537567403778387635941954802937669175521997524520572762085523884906704012413495633364448216700813918495137160852081456810863429443192160291323705711782537274792755753145391502616898971725638827019633522534428479572671026381347557567366678602991045359747975747156933686324464977478175058855825106817284411609089316625396277357487907609538098676454742465457076136868919371226624241525412233893070319843629586115220831488711717307558835464853236050302222847005232737612170842040347546585048461008849362793414673693712830817459468777203882070682442500524833135006023408500295575895924825446571960368078557596265033991496244675387256062991132176062611800567615261104907225086380449532536673837051502978438694230808688645779147004734239483507496142161252364105673108811732586762210083372297425337567095121352795846931774701393427370771092591280880034001213523782935270257099853073982108956025876243126503072719421351484057391453981754842482936264512433182509946445126795956511418432135472626001177448087623541634927808931543650843607056653824043452933695292176780634425462536540997716607668597505720578991177506713096698435716555333827386796604652208747532309601485491128589680839159005746751704751543306588319556338897658755527692180407190463461793139610186093952305542558233791886265671929415019981716591752135467064702190206434779446606289776110915379966143962022516281674053921571619976618478583736811278199637038925102331256053838973147004791881563665268652282323531634108668243652713497849525451525381535600996031286711654157213812290252419356086692238422917740300992897790090346324641558481549103093361647369984914381611717378274770255331518110570710619515340258912614596782764308019853597620578105608829944445030260844785760791910501425967152168808119573996920165301888448010024299377584256105428706411468820805378899489602604101209608606327423680440700318440762982901292568767023904576878578638815556269636608886668858835725799566397274100284640068855427935702910813252075440584492193284620516564234900404640314602200926571249072391522912728863884996522431841730301177578487719334311695798399473519103460425257485114939811540675837724675559332099669273516882908652680140628072894546516531161100686358179854096532986387010147312279782159485816465154732562410516440404380197026811210506940621006158898506190685543781438246621199747449007693846930014237395405035095253565430050256276558706879300675054113901364572872778475880601570187539616095611787517758843056034110331898129463327581393095235384366335780310990653063552739266907253980678291848407069196556266014613809689252125156754149627899467858444146201136158732120338351224908460220606291728874544905337132100806762213233064197095440252634376318530840079967424398013598446817333659467824213033917405460787092940915484311254401888109034809037992480280107257680681345962645932226970270723590982439841202074479012743864329391039954413028065470116146174124176052772126673459492655935919235800918851209509115243961127225246573782015189464213434280211333133580260254140003889604566510706455397987904426882109455888377137860484189435647924660720217435692810936700586952914341408786030703611004098366469594847781877868226149237343316455604859551169975922407089427946102306395774502329522942034654939862682331387945653668505237256585383544442113723880182978662929569194404386732102777397932816242564855002105161883308136001782410204628015426709189311291900266483285735295553666207953331740349093342840905068271850198539060936232180123669990192114358308352944849274981308966425452641218338610483284151174278345121938715495908005309842639147961240076475492217219801657992782004784971289402025523735526244036183601898494061103579033145640020318025718135286594424152066287796463421145303096852807287752763796860405881721889875244894481430863246693562616672457280635528775568851895786787275627252902797451075983967377620557200832915504983523330313514453197019207164973876517084680164396433692597253948157553905219673898882854302178639269114905017359069922240674070964650656190511599849793211665858605792881002814773805468688378315589984781746725754762229803992060502069432068657107130146527755462849098416312727767988549764208127132067423061311625136732852775564184983274168691898671012470523210597625135705113639156740927167571671233402325970616448737002125314369431631716636555730410640094035319811908455989550816437393774009565876092492061190834375318312283427015009936034136674031627721490212077750696069203574567293966133121159612847152139628709503879700025380729535616473155421503888942594915603294536711031432416417758347732629880332757430882933522188362282377374836861955622484251065951871836696533121556256612128546993759296475751877699657306217712352092129913075438504041253044441023574594225323990083352588434409839621095559808931725897274254086503480237316071605410429421712436231014706922991312781741512666955865192682620804999309487561158302380005346258852972007815231964407167806210829870004924364662051749582112857553953196196359421421952339675293935618943236712696971145005773868474752627529247834871376581445022934658189985797591192233742985557304347643545765223881391298834664087123971071464877987955277649947179655282645014734815332932097920342451178856830561963712873600232115727647143426731297222817020362963512327970127177126104399743479295338003593636514112315203536985918933754006709728352273632853091528814869666153545465412597525954816509474622803708805170814472496832510110931631721569863583292053341450055736461186613026795239209137029398062009033423079014626742798256895605853518258320622990966755595166362859123841400461187978657649278215817762025780013081039570032422175290081064508466921332887319590788577462388447069592649044073972039714528309883359614392645649099628605207102646035591758290091369524244714924421840659700714748570593218607719160986911154360978456743592233418587237219135917078774285573286370788166017628789403216704095141941743118605655540283004187554531364139553694352274148114831236848244629005320859912773141188004421263449404952474941733253747827626273035051286302279628576109902032530298202405804338419124892496042370621320011451360081534345243753088128350157414539969815348955300525453327708332163140993556099399182359812518069833953515105965060657112851277682376814495611670374638290684975337850441983429300576887441010663891170578055609515836533222328136120591620292855342454739902996199573487827932841802507720199882311638127258559337859915807065509045084412230584613626958384822357725890623621864678069405756276843812358697948381033457114597320887194199842210802383937889089797572422716556402595607353417634674013466761856618483757437374570154974430820478170662823573177749228465402673190812666421463778405145941763806752972540942559540476405436333168288209302291940846304414607758436938190069335700366324914573629887270313702205418287028904271959970992000667152560735225244097062258191011797907281496338104508891977478575369716425172589088199967600633869439245852594044881491803821806910801333404915025887785844717634084360672058580419770555130783563413996196059418047113817531498459676595363644665748570571907791369492763971345385625635087083115415479014289509106894491545536623851520518792926629065462126674592378867059196830220731770374192992636898433657902018417953401008217965536238804631449142390283026101772051444659021754438188474901363121495249527727356606490270988457552128031336989263986290230067441736534173864754625497086411122563590495767454659811798269131925050777507535839736866015965931925158386308764694790677544408063348734437942436343561190695467337319681119855071217089137111817742700859225202568785096544115426763829505477898829075669623676604610368315952728031892806172605079581310612133371601998446252175967868854580525756465922996839374510901812058365933095936081463304906824797198271800957488958245516529223682753854606086001491934095615967454881192955391721795355787148278851941919257306728449786178682756361632024201533934573335662039942870886252403274449867782294884607680471607692189657804027958337471787658477842360880273978895232708797816460232442640056916697198428306741018213632345849982458251406247748750206681564122889974302095778963754907579675625952462018154782465777116851040516682827610593940104079715096226961762218575641504550174234460272245551503671197995829404152171537247213740577205217069947011199175698037674039677384711390238712568974900500983073269688746016881350294115968441577782995570217972926385178752693223870842438462213235646836782345062770683548269529110574677034368214832278214761269120984012927323821648711766352620814074344233387802806344587659416218331940113796036430113629468432202241263529696801484659001100467211759563556133674502808729722839894779586810213691881176859107928721873399189242199671147288372031130035992866747323253821499783817694117610640659693811440011710696322915812723821935215147397874233594527654135401614603540978349778933770321843754381309018822364771301496282092359910583270790721373224140426421889688713542721091536811862797684629833927635385931547780223381044562509124469518950071132086256123012416370806848087978191036728427611996641963874331953195779728476744431534146667074725282736744749662646528824130698615427799518704762800056918852614836055981575575320048249169421778067122103662904907490305826991682481114810429484897945676901541862619675897576925158248225810779318997652697098030169574893875722879350900268050137558108015286160362621801473198513397507880707241185486660697247099794546650079076997809619435193892533041694822652419239069783361741686483210488852804508041324247772158109708698206389670868081727654919690473359649284517316192862944824311957466166301561761645987228471191195701096316725185473057464618750343100774612462471871322344670802582882381854248190616268615343027700805055880460694522478493963908882758351827704324956440778214731402848660871849039801712310359362040150617985385208892785119297209641913915100645010517684750877387304456792231718570846250354284767926788803829093907691181340596669695009867043976802344297120166676994979886652764712935594009687791711765479737624156848334373999722506125359046867444992360256935681318772527138173357147082366680141341470673010654070078139140786379271314733892859825340292113881034734454085333822801421847830131312452655054197796080113104727790276908010010032454678668869624533157586364546317515842595808678145064534903788748559439928855131242665142028297192492911498154480873801533883099280393660425468877998252337069514307166479584632590253075650254708138213436841861961570927586746405284918943775816781584553537337693795769397144465095504143515865129469970072707267222176312731670647896079433206978323979396834192860811418704305295458102452209551563779925898796301329940454061126759289825221527283403565191507051631902258199339633832206249122798297495917500587322077178487006504207598296943418439632088704113469534704473284673329540023064183853827218352220582858967593708433270693952944028197846967658656051905452125621505240124849565905728774529234163371791802761929902647067872449963488642534875218551114916056405886722691573220624473729897128063314800127135988094701448731460276424047829202978444910615105259300189393235728233102344397175379738374420975367304912851632546430103182779568389131099910545151971417815132232529772732611074105078332342750877842217464413401256200502835384308926403297694086459768138594154739685562722368255615711638128317201426240568785359188022995310064274280766108277663939033063746046737046254303939942776538308988629491702161705805982149454316546693495706853151693688708296170796996529987276327424793050447069993937192959847759109266619632128496139122057980275184899515021075226682006644431335366178089176548323202494319919876024123148326901397506341164046706250438658798333632542232153125118670505903615052790246320915816003169908801449419731541232896286464991147097072701424234017268916676200487027405145936089178634498685349645788378174415628035118874026228798402464609421712940284138486292124289423124044161664291460519206401139925623216474008114863081857774514571317436233390319353560634633587656803355319033213017184422906980947235296650759513438559959787267014674706708043115997909754318003888685724996407451466199651858282725185102491866333983959438872009370302175459327615557797054082168912297061153726241460993413880627760743269241638023713128578071555650513170378469295000614164035150174439032627662953976946253466261781479800704010249230065031199623477807485392163394299759759862435806487779875441891780988443300489602808518196132342719493982841652256587083998167852113972777999344840212371493089914907663338086269404905606148554548652653133261229210756929550734706401160285154180621805726751567346802147204012868710870752569572734990581912623782939187799343078880635979407890016062123570776521651664770955157857337333028906417920501462398119035244584858111004963391552733773686758274671662078642161907616775882902177357488087123746366779293132835857731298313389590142062305949645346965726339200888761130065973109624724401495736404511209126798701287822901289569415944776226425236381541689320276639086961766527259663299081941304033967497409096912484383647334568221053648116115128935993067899941820697351114055689255149713785227481056228100691254499822127018858659051636596071925813606731666370553333972159758191485851042905434124643177429673641483341372686893354665816914144517612305320556034464579409588609409728271851339632146749094532866157956143312125317854501687015111901388553676844261574006353852797896291456703351715131654531132171822273547342289809705455379250103467013417062645286865634050593405931634013350812900647412051614622245420949196459435030728025465205577523618119851378014046817588411450146111891894271609069841642119770755313283947960714567462142685424309845991687366607564869050341066077373683436218147810416267044631066238399867677609849516294841073884753503009086033154667085600746165447662808162449072469973256790963911374119173917046045438015497282974361887033028275552446402698536793649705009141023931641148597125946368120682853123867010397401884946561378829728941266107794482550177013730639294511955085062135681217084531718019501233392832781070639732784016351070244249793406899089006977390705003033323868117833801489967271660047807663981187633126115783543448603350810438722217829903208727067434718949226001101970293764369745712464311254070733166383243325225544611007076552738936518401503563067165541484934945842305753241266463918137812434944630412936925517108829431024883373280256427084595213895661609267616090546114638160755165424692428012873464521783804063052825908983634595681046037033877832546806839291251399982249937813098453767501448097653089436256448077436992781208792672668339949382842023519993623907547128179450369818727879124716350053949194233354606847479096091772564133746742077741906295903316422699240388078081618699068385215572567393070485679907805987888960640627448489924971460693511383802602501416462017428890294765679868699870908416284045257207925213967775637906960035420576038486829690289101258701150122569751573509172911070523451662757420551352465023131623227324197205287909603741341975669097956131975743784328898791593357563391121838099781689085180097510369834519990837380768492993846817577515172236377107945215737017442601885648657359726087588842192984498936942513992309004284414859636981047444905644245229282047006738454098579520360844639070417035808870217297097969573696284731316220468317268222861774925578019328907720011664707776298897972281045347479124641115747546697374202810204366639022967861433983199972259655173753540713894557157023810971768421529681984878885223593678637736385068825374821529161607639837317842915971702797963149668104681508803529884967242122690927515127081613698257844197495440704424661695219433151025695968632756657766153437626425963861066333427763200630049580134050466126354392129451713222275783117818260244532157659460937867585915720809955661131152480668405701735450339923249216368879250812938975766910531830349486509860532814250371497256593097265384055193119329866955413099579965487815405184927319630693360456397732866276317018632580110656835450289724561556117215126077106231987458211714087944091098494621617790781025110164540987507397097369382990996333484141171799162592874049682992943771238883461446494079735949185833864603023300855234489630691009003306599338216329933407078906010221421592630780879543688340195203531343141223332503726589964738686556478298758561556840428245435241712121917482795874423071813586760998523760933859457566401155490646849829948766640844083760227728220794128306231171491333095104653886689926508255206597916222376968101911806105180979322247022586147974013398497821286659186761555409835252409387874452412572527415057160427010892944331067343788669792654352521052258251289021355089951488139969846128849456036409564352287182767643644592351409411783032805542402348520015595465348012561051718725915608301374915149701325707000581172693848728085373767228566340053831553290495749774735168326273257990964768091469877384291506694509059111889992947976365413408712085633318823658638634054102630311473712942788743885858848495575648250995955364195514045199024511754207715533050173697268614152120450585731162380522777625124938653238150634426278670213853285270234090500487975320492640246835860829551198606834203536618965235991349591739862134512873358022809065759160811022424650860164478893684290466207001059507772746846673207640677079705814341345440753572882431322331700495427112461494522992837452194621847033836524005799821086766615479516022403891872594067467374311819608981607724954756234285506111081015886369474092171686638861725943460436996203743457405242134231658409339973357966714104320927500641290721953598443503082627610189922471383801914616401190531510663745599375592483966749374384018041072820673633479853731926223392508232479321904526433254887032666083217175579578937230619453514730221696198994870899459007688212668495167288357430228907452045899840447389114198597723291740374908500275456090713894936579413673912536175801885259883015138229674158491581802367564713922486093699039591114477877791784878274489009883978951147621769799353024569757509148640210430203160680341955397873593965905852173603754630161797103705591498094598773943396976340658187092129586103883908323994751674020371570103486910559637574580027148460267851082887674306186334084025976406305153464527069208396433542562318157302242248229531672657786641988997654619789511618301955966773148621796405860671744400393785725015855744851314619906225050755645909275239225384139629050595582348849212660494000898330614389470513821749012442900496596954350019088735570991649837288451123311891079981307354683175414571743323207717916716509194128559763846035526554176728889003303151995361423402814258494759757651109891149356597737521339747107989925983902665435891923246282704899291296585960882296795006998616951503829922181642488027821435705587473315226327367455956430793724733355480319046378686047993817224041996045526688369718770182583304200256250670050728358085133685634128518435038836086357895081663888358289769949505894383277267825232160246875199744473044442675983816961016321656867070082652369932998767566877890791241833390525701534673279054118407215150241506310360383403236377681639583330911535638236430766586227062369733694941715293543399951259487400908141806798048311049110564296489420518326742388461026766074151833520147634849205685244291224094837758323160957401625584384531769202847384579873558391649961341652515951248737693397955149135819801109796573870307723290934797433774952850175404260970747621226276566718450595145034660493784051126718712357085309103185083338554961479205122624875206311008149710652820335131117550475201910651958740567648188031063968982007700243889899704559498921495442400801990492572749478101913233342389156306110060468882455826434203475771427749450929937266405800520326047312240543177449486444380553410315970999549912471388605706908170729089027589661063472861702297282283904974281128206281215094264936952859804729188985508809810113473531960030398195601810507852760721934555130807381159539805985934826397690221797574945915586852239152499533422761863459036374605623145689793702976637022469316019109679770894263823996648886571686647425215596602451372364206930889641346256626508536705609328397556839417208369618763261481903025768216742107477290897517743773084448183810454963580943754286601785512643585873520875461992170009152819513661063950918937224256002101780022715917612909299111271987359773141532172753061291394838483255428065419377137241793613649918656202975074299443853677537548267396803671862542345169540451720812541122588011040945051472321566023151137862718101351289408232799593138917722084359480242868796015332131277846277049812287531476436286168391625635285718061854834740124925752131986769016807599253285592546336787744988606221860842597394265899230670679658106798130783340754207304555657660850688380508875433414983978427943887557065312124708897442474783167301085918715458647276459654679514266023104733688816968668493187469111281517622365193652422560686650526686045479730963228754269725268451761074902357869388784112396086971393678142766616253238035425906886915628907475094084447437926443119839551591825388302326707096600013748072042633861366726902300623655751861658492074692117198046619444445234841263194163803549160593203719597376465572616583749654454795939018149724636695426236573970641029688728365370004659400152509552538371750932252830603137122831275296801020426357720408869386403743389943058466698131783463700094457563674075584115023516946606750977240731429680004070810170188888980625317403356188076763663561723439701345087824483174287333262565459916286915643424791651036688707257512819612396112186725514593099732707796496498097593886399485907308854632340361192074113096729729714978648734965134080347248547160075792844966540324031804151094245066474369603212807320202943434949310138601997677641931818154430967994267007636568569602351809093827590170438545556806622254172751923120705240724848602978588543152837684478156012213812874316009537185544086337474287142508428277638558698401514369638435273501308886777580043801964748822446326297088746842234967612478960997219433860799359194753015684547649095283414679390788764977450854115781058485357810913783309439084483960199472712539704592709401884515861324162284251233241044099809089327088119938319003250599903450168817564383902347825055401354590801987513607803892020863858669058008192303686979103491445980589077431733377719302858103141475954215418313896205885675483907344351629969506976356663317866929922547649708942722441537254437041907882426090973388169353971036284875291685371403452560703637739150541344593814097342395291308356719819556934562420240962748398914729953503518488862517738476497798479179653961396892389727210977646441590040199207540665606397816318332058179427838914661085058186158870683490423153985600444611922289311111929956364601872543696636034597439890234453986140093549884919167317354400032043102414148911666474545454000582491043468728482186825353094618529779124685160934875283048641322471986961718263269547536734178401393643234925516943172659883022916801278840497865468889293674724609170169845423699374829143802956738723662918612760228359841732148822855295198319720771284391333253202026053556464309411757890274717780106524594818790073356652957734229775307309948780134576669669074985554559237028863504697375400007753187513379088756176674305052838075521016247379260239500247436345265070109141737609758159558254405002951226106671826955546962234015338806586050119179534430130628023573070662465189288398253669073209189583078453145891548995478019956286222089170877485641993552150425533885467757593509935780764892771289355540350614767650478860436613461744942287883651052725277403912546489873637403696952583741477508576595615315528780825903818858946189821923091027859443045033803974176764787385201517750522728486060169022292756455697979982237253180524925496872897885788354877152907963920068346842882216677473781428870931513122221948333432824783551798605535499127795331804722048971675870268564413178850888448098813911172972837976026102593475013787286031422522213852673741991726693786040547668971502806525504740421740768323079034978430008478328973543822479417734647826097082221136564800493706769542586655583466973941260675856199622019535999116426411277808361123498851027909563666353095270941294501611371564722231073271872735022343438512120326999301961138451195451426969799972026192093255748904404348961874017972229586916924082655600332656761909256559139724616955109293880082937582263952068412152403155508090247621454674379066767892415020072848267884173663699732304473898378148604040327376217845520504538565446491184643851203247017919083888642407453008684558714702710445224446396583580620983554727839471131578823228351682817553768453843687516847085895700629584805144557319348855569310773561488079071075955373053772206000699960902603082780872440532967097409345698645365006245633383603981594110594123133773833279828488127137441349045172575346514573777637437709040565179098386803718702141849407028834481002325855842782812237562768261350629580398552049020006744514863415218581231095082396003794677913918947415819607723729326247432254173406255630916586431351654402342260036325504366421015125021737778127611717864091995027951553667817035177596197606116535948224391390146835116792621969802080616670217502214729733096438398219262117008500650401657816470305225632710524447967574614043960589503784045679602487402200610412502592752423811467362482285403242753748689726395382454417005852216980433855999212425387012923683473286165364532443700076402852973367258962054304694091628390788841747852069410818173534231332714224026180237813584632158423545527335734281202027215624912324215772437148220519895861155413018189006828990194101603943700480369116495236547589076673090611521829419185620968019632685480887600569113587189953204473583651806030962260380963888602348934195281531633425884282333139683919380431958401800881076002408412411807086477752752886021195120563627453527871164913842186641229612798971545175253568259848238706761491033107800830576827850124881381599896403108736943940533375014354723791299019328095654533721383911107676020823710942331200789916063626214876661024123800553542230629673014880631184564654752013633599240398522584463261611905047251522979686606602273966143211029032409390804829344526544791771348028400510097704066900327524206616774818178299196162989133687190382812051820625408211931603459903941761439697384679989051348679824748823620185736662328910649155156337068585583572191691766853393788573007232730140720729931164934305955538937290818556540621163110061866489737829586756016734453743237898409358482180888913543696332372522688003510170236773893476621484831986878886756858979595030922235636791071216273956273975673765171155593346806113077236992609405062888020283943794983485789807885701139294719834730491377436413717335164309233004915443136774485268053358841113801281340025257399922799632454013168356166471383815928018274423368720075434186438041479576861579230445389349490553883454068417336429934518609634821002738418232516076653070742161987879984518377542991638184098966235257643495350651340657565184049835787851471524897863497787773913829451300349818612539960664253891165258741220017345873184745818878417570373870118322576500956565054169607556902217823680953293628639495037996775276383775349922337384242785001235567655637519078123064510589330186060184183494664163681887498598861813258296236918982085319521062357395775637478894923373939258270039693082489320125420137109552017118841202752052246004984761566998536340152908870609880445705668547991594775178018258102818715347371946773656513202012614541503301309349389324002129503468366961538936126142475494780825699440506859703292960157324957542953900941926031382764583031271760332079524034933039863007045249131055191934696942011563243508782762889669365033193140293848762518281304609524523991893266092977523942643613424412006360049876959796406503173518558342066739323922801581550358200130181648916507391014685507132966200938907459831939530648701154233231795321078381628801326561891781872875143698337425069617715966234783079668182727959419017951285735956690591954189302255295457900499763869829834178670696366988111794795369847019239720604171901751937790591786472775024462468594992373719461550594013385732486054776146055547750101625156244284949771513696619560064068946713648441979503052568829448702054186135631945603654468412212145564919098060654811397745038643677219185467513486706650925206532253407372980377204629359732445968385645467837240650941595588799652695873982505983423481341406405158110675019262871770891522617195865357803624715719982366528762087589529958312244060043158136081859987380549004866250628347052472708662749647971701901460057667414422978757602868908662691907600738152426838194052193905597464174450630652333633601344097861297788004341226271221785983359242776594978763472883933665373734783876279434803897524386660880772264140913474970293097156706153636405226087238514794858953576883156980762173741102666988131813432172258687826587385309601712125714037712068895712197612340232166516794053448052511473938533186541893274314131794899953216307574064181066938978838225809489203018860289589804910050336069488275329113184762748790349144479929242287412225815701150159858125681560662975243419774755482873540675451131681613366386286947287551410926979689895656148769315341837246060745122337413825420421013600716746230614574154864139224994214658204822793418612044503227312788345251929754438277798915802447427500393339359369826281541994734666945187833996788991933803295325601063156386771505566771910951757833094237106788220016537165627478678156723128486405153590860092943536044785325186849399833746274511251176952155836531122319165309396278016908929971456674889314923345644164630888935591648748826166760888319043164719524792408593859955456783051757176212172439438666046468400921319011612900934727599839127604962831328623068171409121375079830809947331982526082175838531415408819877423416400408290670735817361196854333526137792301885707534788343463113317056440446296104202440003376668141362600057569045274875829794555915257878591805482111160223784437057084717301855098578201093670376528778133790657804164741650004155196494689843631132796026854860623099308355188543588069387353750033713192983909250419616702721644943800642626346571826051665956016547109074152618455823025409385061445167428276839804889664038324511357153201799094679189246362026280836319435242274099228296263008431845898942201107904074887247142015725772386529131870737438870368272620786277182949084523307702176672193492022519734923306730087471522823623793335314943807992458665268962809164121438219489800637033474722617893761396917157459224793750412234336903627843311638215690871582112442199354221550290008764651510157378999386704906100308899396939818673994807059374950900275674319521938451303799945848591402106362381691601811443727518589267723010957015300293932947577787707681222537227997637477265186921991757368705603671355334613302089664580352743671643160572324139632956244016464282373492947176037323599721046194015327125416028245358948801370719543630411902165930556530928833358461959562488832697493701599598659245842288177343723597237559321348179015052144708590961639833974616167263783344515768114621860755708740829379400087314299076163459935847207541414971977125135680318066400326356269530698301966365552625757908583189024628474015767982114508164768623097186187539146906063383954671775333855676092306594223170962559060216384828660458057618220062427959393241677905048414157038440307148855294955281721785674864510596713403284479454558191410149762498224541578045743885961038527716077445589677938450245396629753616967930933137490063772345471438933867511290999993774745324690496175385034637608054564955575944923265652912699929652134323617036135331701324519861059435005628987999413809837156807625440180226012068429909988801826252006697944611677488091052949670993701014252715907581039025337130971894642048009061666954773177541733003537583883409631225312283726916465242835249961122549164876995205100700568416331693935392077513180453747602912072413857735294234761376710934959456602411416680788382564601086895647302530493476853339989139407256466714916474049020109120995131903686852813073200743658533422076165574073355590453792424753544985072906524722948513605279336543598768522673345173349362372779332983445431427313363439643313500561933035724928297397458864586997292058997858774476263495705539291223316109215337631166211264134298774190406715009835862430857663375790621426442213880907753789279222329215527118909416949400525394279335916910526114552148898271033793218153307145125464306773087603478240025491732676542557371227397322433098997241926890886725435332030612549300690511593451742561626654324989945771660430619174002160699992618875620115392209964331981149230444885323327962576947423215278575546710131215880490858607346144435507499907933301658599177179004447630230661847947002559470210248278270809948067880222679095407517473561955109875996817613270985436946677708391057335080749440066338698516252700070432976787938181591647101288576906918377339777963958515382114429205356300599157444380237081883617086411457151058157917814198209744898154700750072422229615330699539482312215246731776212533530482863092662475033750378520242130320593824408715056207322298054870742132285036961937616143897199262694785653150862079861527731437403581091553410559126500696177934777289510110737403952080413168251025548952389584734420339742205760430941028505238913815908792571625427768418653043140544859485465297060565029588868210542944041716342256006476885381709938874078335641858319100143654770086423859207129665539279410577599307410737766964219147671218878008037861906651762223411809994772465290687774672518208753281664360797211402536615779029359196909335823901474792739039034117285353486919288193872746891434009421474158816299289230077509191219769820667954965225355664691003522142879678732713938410050778989609140531182426210693326766485806546712393069459783252422188657183951494895775934806537559380289638689366491666491427282241814844690956885988170632368736727974508289548240728171713868352823451886685768190302945919189250594705770235217305758313429951580242192316752634697837391878114748201368607594800253491006008619415802290528359149131209062496255712298176537928312621945648168644065696584885761212181772053603771646039473557432619781374252381157899858459465770689281223975824039980216342519967020510620570079576673189683423030049663958172823451402534655007326784077586367870042577374818064890572817440932627434179746023785236797188443264146382236471206125343629901954411832676216482061196208634637304244685641953783229209673033400195802230221175936223370938583996639995380230274473368753850406609559428399019197327642502269646034005674955869963004341725000106389231415149313147880045259493911610290693283910735254415536038985411756024813509429765447584749307515943879539198510137004000771382899249807191075035898114468656260814231873131775209907722909663384784588806597289082640389383238718119895016811389087047068336787435405242381591778459949696684211137736319136138991322120811903741499227010209003225806450167573128890604249652547765558949395166924252041379639372451219573816902860076963777225367464534866606069428048214846451917976937108889148293307792183330184031317451691621552771830551069312302008694340881606626541616604447916857482561247670612311969356151713056106211832791944586637369524292756605389717142820364182477343606833625203339277541281865401560754821139072341242037822249059141430560290638376756473838445669667351602296852743905462551223049281747278163448219263971425553674370299974419522189355649983208894703995262994106102513283466973623942810715220583350231653458487154685606702880531527263258359460536978065048885579898860483780860207203148850514509403138960397846921874599943016033507391418892246725657167645422613709495367025095503643191596627707258238791514802567892412442287093723664490936403325604164254961472633885082149025949809616291550932567010475051370292646189041948841410430906292983920915988236857162662473853059252115459660137723785287371836212027329998227786733636319451262242148882279314343077401391855356907799933829849991789284940244766553530784335053381637644044811847883486854805770441582809752163920238115545054047204575684688993177402661280685631479839640932407041409521548372692893940508722793819029231408929712169885424358294726628786624055866094475356595285819484077693172161967338515947971472556073172973260192114978166018421371223833983443506219586701508695324874618557693368202477657929888422209640586472060430065169684423877268624441491123092659210127763999254994213637607994286050641594351699690359506494993062667699964647499265434245432565114330329257172967041176610960734663040495166759640966232502529445583824905071465628406115099634695413914913707323831197774763836411303633780605473654991924512365299808343109055680997353466780951053289851900512374006848211735328777682518875094123540327663910612458187952432157235089750993658556086457311071033300554751505867906595694872975093517602790659895660158467280362950005110603192674846577222329363402339416054248701327045150722949070006007004310741858937762443003182125156658882640159890383861282381186506668165605088168458249143526316050158796486612709587755078854787504617518285204697999335357223090929538588768188337231798544797474933231824139088335539652459576631810868851485470879746650923964311909994720350814726195244745403445043994754189157058572328553356597336632699649628995126688953828233985979716324510204110057405720320098921353441103483100377946184291263456343808402431683189748224318355603412681913554603279405132386608247499529803220954358638389681341825749567380788802577049296791273548626279541149044351501590132802871049768680672107943514777176042313427455241849542536671723925131693125325637797410768505863947454447945931860615231966738503302728598038551084109075694543785700885882424861966794591718025919527962784060530497880306012179956516053045482216449751319606822290489107443053739819425162244830501601185552819506247882192754402563087876005517720637845787219747977598646268192176706004822809301386128851596421724537893202073507138566812042579206664953622289404141361683206521098941031400700296362213259056366912908389793961540456580351910085447725313794845982857434278314863841564310955421477344905876254079775138444251386319714221257230927943542820002809483481597143243225076300995167205984295563563521083773018359173329539767089558048248705645629192440289852677226786393057145879659894529120682178112542367659460186152514904663340752939959652696727406837719979295810570139638002488366658217241294395557674172640553150834093121653745603232722329299453113261378699267347961894668270100343573227230434213148561232888369433389324507819347383039969953337330796771165954483435728269562443580902717728533719849834078769256568577494831592456955237527359003333919229578944972831613846528730630500293314021811318279499368162511713395418010743860734006861951607669004814270749035856927245292577520693318188303118911095613907933099668095347061743543620468447996795584410008520943711642496067981023984858473657268314392694309247454919575100162287999555497395027079439585930462712050310554679780637974817048794462588757499400095140684719546387711549975205717577870184345267077833549470917900875490941205290566313889936628995617027546326838340124322611630383472740302409138012567800319235722863156635187292165036271604292849989805469189606692813219930442761216034673744509890524558244964774656487802063450891087888614670284824787427117916931576766003079923384217730531542484772984192921420962006109675939542317578179931164359198840456908696943111102710280644738100719560632424003892451005516641162545023669373928522144434450045879382751629643786765508551598302351882884865367358431608188006471003304286148434878713085259503545984811611420476244989832960714121813466357254393978750534686629962320272479912280532807970629198481890051589839272856503131624747463725366562317122556454341250931009942809751699132169616861337795537922802269186854187013053377052184542280638598087374673405976782103221953505009681850126466316288247280875268275491990368794539865514937633543873772658914736676860857752801873119498423833387708173034485483901771604938379180839222662382296632348240837497947946866308800033947265949121897011589424776923769859995823619964458865027582143824437962346720410443524097590105996235502309412179874794303850550406415648422089962006425645762957234898012571513517558605637338621111593942888923329684011073312349624663355796055875524228239806238001019574126631793202495650918237117825717700830814776584687055160669082068755159676191772670734415382093120218539820584056108321000538072167929283118002664370478339096851715547334343889003178097355008010951762065974837110455638749347364689121781614085539028015692416643623899119562364538415569074651200653923197146548748270253199506743771517140775433032040910835790908676103552334691651874595275053475641625715898280406549344670331539981980275443965653953294949768928418599674580472933685113393376660817901459115238843895602056662533848532214285278201078343881663207584896703029160855215378308062039692800606191226734222590221664845221684093942034403037961714437970175520314068722285150709462125717690246656635237060658430353923888627457440653504079243789123340565926044449804750168479454061159581799237626463016075147004567034826080888163242599871683136823986967948333337268154041502285433062813364092068339353423655544418884875774672439501407182891513291598249655729860541620497089578200696536486758179337068511101831213579143954413648186831269633500286578424816608613242318690705929833497656441577573720817839729050030142874822033905055789680879908723348123751532848652428375608182610288339175937021331582548338353194823139312990972504795325113397843048886897896217627859530263347728390994127079320938514015050748505574697965866369605924056766367593189624785343749822216180633678496570900993662167408869486063796409396130191314004210269363011573357778933937567817247241483139579990487626019971468989858117802532545565336049265326685314845033944311698568123882639783958942147185862601350816976140888546088243074214452716110255476493412665731693069045157914077248674827799488339378686636925220770284444255437633726935045850022604937725813479555378061851624700549905504909966160236161823866540861216543038777870608490050335595248524564565030734204677598130345632501233185762827550890385354157897537523299936944878628113033578230795264750683388767480864890196599437555557130204733231816705001521730692788820617272557369374820927861068278381868779484868120384298405147797656459248482973760694304732504505173220000914484790296180432942078551077452804283192729517790324709448701453964030031302946238385820746229295415326112326225242118963013235697936532449370593869848372797790090783457234514591025281036285138571254771974463850978483714350232683221449836201718172922899665298602043284824867844573764346339686392645136771266243134761093292471992657840625844533175116632172864789210433712670455310569683393624001992403599666346194077935488144288650627844955246662656525012567501166670320985190966833023348224108498073325073736271692441660893618684995276492050037095897878736750899494099603503439349270355983147404436453707523095849788993739167142557713588879713463239639217491793471129390962872693538524965883228683076244414654050165145536921392008636398178659518996701717164721059691924390819151809808035437306732545624967409732805107995548326287947586693884343709899147852412706445682008128281305016013669693898945080902791699393969885535380197633019644167310440861784727277746148416583712572581687581346992875155395652881592116806697848673144603377774177885160353415303430611940130459579011971513450933606376576988913349361951073741942291786343158810748568098110363356018064773362675276212269037503055069981745022619557562933724654593512684963628267793461360572657503090130626092117425317536715341727869941076280003971289136871375432150283074354986548517404778487938825388813911104655321520626842497273772159918826464553932119758723327328088345246700916383429427449633086476254319590666324761312346985799602311420015494225522167816802287708608725143822763618777602690885501644605230260758850104918741778139748247850655363774189302853370133468877804461075972446232029381439702220497733753067817798600714293168916957964293528606835766699692682995797145144985790666161255398813391854892371798274391997060097416730271849260943995926880394465059592828196949727681273247439032206692635794169031891944558443563163985456652134319350267970174764130116535833272801544674819834578590186267644168404671404882129415858924760244044829913267214606142970851179635203791217344401396548224097088203316967707214997394261191838143008657211854818996575682797878559502762135952593210534532019238087210393692947221009543176040777292469927748535355212230436931857074075089092747162302699334103594550847599332400758816406493885644976758867097787278369666407747034953398609097768028506113161502865153932511478474981058608847561878869177946691207231729360117327176986582966300702235916108740392484063390941802150317521208064106676992625615162904063001986226861427678010125153922833843691414424096762758765546295498600695873367286777192678031872855195947875063157570902297880596066875328186702214396765681112772612340149502023196559804500603749105244494195768822537043298211982421602622827924474516510217809091622356989930714852012510324598072790200613959797445757207041128420271535795591832449167775848962844015809321861807614921720474064159162781766590928412225797759314617581405941311459015651653498265405348831381003501719775391397077667462439094218176088617077032349017625839003797134868149400786294574886227790361757739818178206354791493836474221169342273416491676444197864769303688952148869881252999726447869385102098491100241021697314892484115461147721698661087197667784961965082292719640734104089501989182412403240974938977398689263846803590051897416560173354552345804526216345634139326641620057279098251564577306796566482108917162787054608041249717860656376763789870321435340911902263836936801789712499036246532405206050968551071924314627204046918899641759725458038905706060593795343809131410767273544440063415899294952178138307077497968398102894350686037675965285148208131292232405699627161332454662829522895255969934053045803493430552903392422185377267806507550058304108683710388336144991452790320675221561196403621914760009019385909719171048307022535265906314740986968787603703112512789549575139979164404001595198201270878853189549268916320399452804398906031658920697541553161789649436750404136775085318591172218992805720761005839681546078580089446838869745591485128935909730040500422485861011588965469641739355839043008560857875426017055622871427642187318519570484076769729506332863692853189860630265922195307907491544572539680323922877772125271265745114188646981657281719484252127196163024192894589239977606615744840735139524858551193578998308226598386121892580541755341774550252490886748963144862994365396791458060969663613088795341252735846832120050998438450851463119059265676436546951544619724600904906238660882979012897173873436232381797880168498686283578534836851233593006218407738066631943443318408390349932899861652399175268652739178593892513594848603911734320692167764643621644313903481812647592311810397023399599836817257518035099548414355574933514874430551544094790539422487902459983865109495702505014307712187970207367391963729887000346091865263931527171834618528914971642434994634863886296754757786731835294898902858315162094207884287702762459460992883985733695073416691167254388833785309617280118869472989800146593595478765173900089499973703781486324279984742419352825142833122305111643573943037561771770316676860890441907475163181710020575101963085379373392695526777409899377911283774359479505044963183229240777353657811593136834436161521525054551017925865993641588468855028426749197647801577898630535787865191607378275567748892321869735759223671787314977959015039387682824235054581043905682008310139952983718828579317063614283346061846819357476100357839615033625921344079872730280109515743816547833587513986638451366097686483530908478681017883582917517801932161879639779645369255823274127540648886318856093725390921127636428067396234891963866883460812564017100511532336230355207871148230475131041425009278724961309053755398584177976859800004642142846971062387137597965676990797734389171734663032709182575841047529344140950617306803087590308058576961447883987238691602234432683939115930013369098437968478958867255719580568452775104004862032418235657364301680954507162114475962584299613281773781710131110576490001313799661380379422521363647739260003834845314605737428648463263308259682004331078430526906072167692156685762089369805613702699107958478191826468632329355686474983226537485768307980233154171408395722624721047103623384324890397566307327123768148658271274646185637451978532855989164801934532740862276034870528193619552754308371469733587825596718192645316898445588842424673956189679040285818095109970647415696387219693013293189131351812990702594993812341497627883852629154956609437458587047396131920240608715114172865207693118019937673300911672393890949306540702804753202494498090066324881250678570526126882011794153564855284316623333928064872320603310275879025974293808145259802046180879383881637698324821589618544950654419672412202508513810994686107027881201201259860885142940213089670011503532711574277214388252088222591906001843469567957713785372758198439685424239279795397868424143173182851228172930955308224633486574833927326886739942275232985112361393132407444822247044114196462122661388472385875593657137821305381375581718252495394816284296707064974835200112286014179325941431555819300925587715932068790382204113037344585171953422966307472098727435980853852531335890483316760616830230682846319343556150757816365595891626009411818360180539041750667075790870926365999580737214185701689369133400612593034355463495907287090401913626977165503242520122456973856195474297022936962397096285726805609707155903257055125548523516728061466417457146613675771864327803184199091444794483881020946552801204700948531707102035974739457951830836474377986777330364146051324528398843318402219765895892350216318704555050039153120412422691815915226372872154969134272136411229223975896457456256228342128047726953561065561582743878751898498098637187133601507072308864019652012220627751525771391321374118312296862087109080005191913804461427129302858797845825534517196424053358434102050598290026458952275059875091484220373902469032053097505915919960258796872183528429540691657347351595446250889685484193987921656858049123227012263848217088863651535867809049842833654343763879771437415582749909465675031334480314040630342422218406120398888962884515512928203279068032954071413642681540465072554816452750759051036723191546449991281356616098820244152750786315807859845861909334366556105652587857163563729598362928709479185421257809708778442263381325615597376772921378460735305651610030702776209735558540876857447845946472087399250485226450217674496201498747676971048176048899393847234303130299883294108368315545048170782512419915442237690061432203056625673138141409282202679338508616384558705827612986089578597843853420319746790387715455498629682206318004764096337716417700186439850007960756312759262290174000115576580722590840287376449069815204628172414474915542280456246387676057418458693519845988051597887516583530203917710750299508756731965093413419167406675310895480650882458006891071123222705962792478655814245604421005823815958842247031967765758133638964173897648326660007580116936712678395253357184523499605072600657918308447433662153738157583706357269071534427784594664058136110280207773416220399861929097521241660151523923187726017533348581018925328511700629941639648229674429805049258142840054127387448006185029436361787142109963683231617502023592532828043550321376692324828224139270328405549176197415806333358947358598525263399356009706317666054871738680931112541862171649889604942660667121855937865113402797932084446495148964872003044579409355952522956319515949578662770731148788633095825968386131207192625635330143128153188853018248761256584126982037751216928454206180469035144353515682852725572708539676677429669608206208817491742979069205465757232729762484544734140874158393078988611042907828716471702313468179402662081332135299797451551356385569608460941606656371602139116856255136956901573876096934939640413115219394539147554157919352494362259249057835520887017599874872406381420400522524459981496506279865164347403097520177453316918599043282705312812601352768529584045298225901556018767127437072470215302966843526321158292045932352153597915478097910349390386586447467149626113017620098436269816517907821034720569649707213986155335102263499533692848459392360380992414390827031460192522995817233475732020225760673950230230698884433487522415774393595844044795860321462474376670763801184660624587380558861565573446183109054971035767735977628384551456966673507684892625801018816319422529852696539942245844496388704830591730291657723520351878389080696625960328161328530300951184398784895651483896081158859172847777202320574107802739034292231479382579714021296248376006745547136513110045944753737974868403701698317629215510303935802902897252574040867798690530715965657706154766034874992398556028608841567193399010604354950276463230620113799990860287131899188054522792621204813738443539923433651888873327354544823551687593553684006603231707802383454786383118754406942341651618990201652555385387674794453908895443580490737056342091040049928081060531268002477126201318533714537419842524301732573519320597664354838370221021984480374080261380177312419647566167204341102335306996761860573747647790720199330299546023174725692500398746304877598603941764023089548298082585288723636902197715267393097180866011777188033819807268896121131205876336169720570105181572575469305705988040819043144320746769502560516074880969733619368973642152342036627750690391933723885577101926647850314411157231528727375007519301195009736858989887538543113445529921293187086392993696092025603326860902022604447891654897525974644911330114341102186097621223638664897317878836603832826161032607131673246008680345192309391302659695375758307842627526118574699020505091494086903252276378522506559462856713133182261313882321094059645211194754144944163892468978541460963621623234360867660191784657724127826010930993049502439764922385045668811196569142300083860981996721129515319703276860153442415874008802643811433688445749197796731550978971569074987093311780750788647135556178051165039022485164280967312783071126563076404051081127020953024142825658587623157940829030931112539964407957515386165872754932976694432622454409283984067014978778212236160107273273924407456732486092639512644291113943731250732468471746470219919611216666357051940110595369527343958153965605386700687516790529362138751331526654510588355448622334393602771963979081375861102523061037376511555141954474831961389864444581286547078728144260037861009649312546152591014491704637903004154578265072572681487924145055202135652325119754901079915809511128559249864172194913453673328616975096461742804574839734895298994180523795437247681896950014867389276362763336826324594765017858694674359459689981884228961789828047017841088773490737920062164722680265312625601694924319725132360568639975774588701298123026374757806473625258951205409764669333894701538959225052083839577770694345788775131420059364027691724867178193265255486808213940715818392553154975244113824246832833619029518647980770702067048020924128230021849189754825909085482287033265794089188338259888571161588553405765294831646193903950076038394261061188264048049554381615955719346336157790149147063955854080263525586877432289855258533332892123289201778072099518832454695172224488685231901009516538369343891809953263456732214230901210313081038224759107178209031014608854530307426412334787551283276694494668090523692216829597815074535271111263772593151421576445788401898074591143518938814476511018446851881940892294749958925219355175496962968963963265884001664622109491502604406139649991596065002151455474543917845056815923771563601670981263292505365091911396547554834436246409594733545856677275758960136862972876033468112095210029682498968661964425488549166696458338832141883765267351845232171406901623784178072991197811120717517862556597593461906717620729489076083775725345641124938692975166079282402722375688364531628800699354233004845768532085981232014405490987160058804346402579448463806825991509405984181757378921706948743809795314195326619097778514444874543485923119167630731236135457746231470369815955012271228738114638099976025578920424090949112435315290197072545608017490746635429361791829877729165278283903923912524740482402052210585823322947567252159725623411162802833620273472792668860795879251035228150174465951963263183857489088024308216361033529545202785173178806309250339906964364392315631491470464536071868385794348986817142283794183210306830927981326805910945009091709138068565513345733324977869553772839657761209149121979344334979022917512042056450604042499548488380010773071473380934066764232955175846234112093856702405954718047675482830835673424425874544946036298755562294850635364783246481801745212614414997892708633587353757442514329439317574909935426579303230388975745185835622891274860051621457479639303519454650926494309358568676362225709978182206292589449928106156839116407247628471273154938915845169449773702155378007955010936649221103997746275010604954063683090002086629241589337542385177706342625789614247068932913903577576470373362091758665209671700898357751530212635369568825778286376973873568321299006052801020306987711795176734539566673806860667301490306615640956621262720456760749590272159152019809464016192320159507255705067914260570028398660292226298690892052380337188763207618857473198407460584956031458070763695408532587969162673011704433421482198356391501076130227231149614491647638142301783017167214769465692840677106810197376215683654090816309616799104762747878710083377723904358103159145960029394289861094056294870462296229339520235694290818733668391830657226556312148996409007368248950670125582081619814865583735708742234851430468282111279015031601043730862488046799226989650557408016581820872241488078087444547007787663738834022840256165230135934527022209772524897013617770682481866731264580634630479144137991289027443716942233028279110450226088810891195740253151546483493398567056620190998642023935986257350157765401626981550114028282675557230567220637722511020888790792632442564591006827163225786529854100586291370044818527524677212856843843808483260765188111520358096346840898557494540310311252919336644604292065970116168531718578258127710442970120371909754317054345136217959667759181145427650887402632614031645688410614960488737005258325707377212041880013961120785171183287579103268804988666534831026113068281967443172129996408064737428890308498112818831647151501631750240692215604122521115631916879324143968180990813357222577389017258574355172985051935546158286820891597588525461648121115980901916794264759695816542880679120301186139795069848852322365364448378177665795423069582768337264308322062358301390704325157338857563011371788695898853005178174884605084058533839339708076019942631105748718704398577536509763359132136897803215003993905078762564343546712986019229200313992451458250557217186114181414873846198560219954834558941882098992385867677702587374445332108121129072614122175223034913184266136884681885478930766007932331581711005341876111942908043841013952167343915336399772474894901800422345846069633021936872656445828544484583296248423955263808165743957496617473246548144090748905926791154517631835138978181160543436881518381313255439021219168583466974183824496566073392366731913429689232261599962097148171176648931346350837829879497322797802873218241620005372207726304680950149802910587257803430697912507020382841783100951831412846134987750275797078887062278818694638104710081341142941662810346222806864698934701744505433097881055229620005857766033224808493591204130688699526313208602177946136044940143640615050625735756758479434731713391591371857655919737237426405057428534875863288340045773607716294111002557518062139224799563132215066171569266144082937185639370466723165355301403302466912374032395768588739916326427545383321130628216463219711972941989772932868884824107486407129395856692040786020547495100033463745090934080574453850284442192759901077649488625357663541226463130300343943000310714087663609610104466211442168091227638971866195785969763517510469260255988704884005553587665314957375844523561886860422742997102642805032391317718317571972244878391225486121392486381941179433374435372109847523766816665313432798326162970965047646042782258942577316894146962571613108055069356157887237292094506168804842622246906199158410568279774887571368990732279754107912464585834353064027932638200456648039868581074570878078434807382255048364047814811078713306275594444911503853013478574266453967640329889870908913058901352335152102705411033117117933229475951573524562864407077406178686848485059910137114209547350291201105912875081133269680081320873473532254061658711191235916200989728168972921281744525992893087236020896030654127492317600004280367341004621977419999362798792710811267545477467965263375970897580846462371377608986630478055321885334817741739474981750876309800438123699966822852159216054821461166297518002475662401062545829188758447737292483320871488275972718666002932007062237777948857706522739999452688603750997281097517185373391604367751115258256985691615157644870887118812522888634159574358143543797840651678644293627064633164771785010031523721113176440543695224098355525019349037092331886796838027791381139888123168550531843286780852070283404177691503599348618192684665518071395031804842790361820603551685724927170370363749936323354491473498349930234713502804907536027822510926785382152275904378346730814284647691170060794111795831480453980001988444955199197685113808067730949804967660895003915942807285384829553764635988004816318823410338155035793760807814970354215045590121984164860264390608423703624080283782372585625070217592008695191683381498248236926082363415169861046950297138205905197899253903097326462354457087632285513727737629599705761741212449947830516061877045080446484383188244047462666165935542146150655251257968365968213730568336039503645764125284753207506568771327015047049610623119686639249980037550929934859666460927033300759885086719044305893527890793946703878598199494639894314189128696282732966765313291199656533751423099945571321035404890747534566871657115943141357847508599083670137575852575827152908001838091340499346055046165144490456078104838856758101531209724792029837421652874661650664404125834033427598803817834509889553134383224370172557645097570438338291076826707544569142772455968749482508132463180368441699025736897792119606342148717237539674350130444259890401914286874343687523985666755268100409020389537092089309109256819010877631103250611851963164583657792366410987487620173944110136509488768927856799674477808721957983348242415614900173040056797188551640863944038145447863996130730677422937418283967843507670133332377177066195472232999282106095163813019117670526900548418539908361636942722791792650226409290187102710387189589959049601412277771184776590773552667297700263162053059976904748015448721350629282837022213322907839479507385855937927088365379338351138832271618003193939467020230471943264653170571725181498516513567661345831630272341110878186486732200830589603254738562865056591200553771098235050684801597176104486770906831719970736164244458132207767700981489201705681972712927629100584531112401312361886287974788414923601882666198014760606107799896638878357854865135152330374256364884744780362675713168917370514039833392637765948505964747271296850169519149500771384075062699457203245407891256831893220059522830981980163578291061791994363786159170999057058051858163755181992252014110183769861574165698172664680517954657153545696928710338316423820081407822799187946192341281195066908847478462785234011468955430791478163487948584118568166878845894635628997666045397707097043213310847949033559962527674234353300169651901632785891379255818366320437124809685635513450421228870404397776151397531914872618874951885006888551257363750224501620751267762943217741959626470656224440090875207599355813881735805861723491060314895859350018947397531404692260299588482783962404773559612241679116149253961670166532202486933128458722305936452970660889566065544113130311002208109360823834289864689750731342728430051491243566021544832544273913207055659218611556867348547670104755892372999940001690492596416052483905832332101862650854820433883934093757328008477363134895729530093588565855932464420450182527251779633785638424906807904791140840146367641512995121279439879803230214919176489410652837485739618360542019962931538333368527460748529849793072411228922470431542753923176682810981769988805789568127456973516321499868890147465063273375818932642032291212157965211163701380049645827443663303629465853829658967456456742050112303950665857196474504680438388180500058015984506410745150021479634158428157164520257796159145733887780887354558966836871553374332558862844889358050472468951023901597509951613347028350511326250518059659399658236819958082460006879657626603528276159535248997162145554100399264171040176762362021803707851419615642432731201448251493539248949924992045329502131127366583866483125220195672335914917537869770899547097731637698503415961187527517736921641503948745185770045351902531851512850749759213143669543310433145262652463115314601932649393197356260923946613429563225777153306144583103745970561872038727231300621517830632697052648451209273900301411228559526422137782243073597035759927995657548487348618869651473102812696449608935305382886707802692471109764400752785278414862152591986131168013463212664170045226748298466829461134107817507087254331830732453378021172426158951008109324641468198272092647560455108781634142280372254448449241269243890895467299873867054451292783993286570604762636350295457551168267484574920373822996032417390369573631562793628661931617095377564561696528882515393693533051937277088872306987360613994449458742559959525718177529544926118766316494493426752038909673262799699436023745616160501527605798499638426319394600115540018502066970909326178937707393416163199704624887653561041108589257961625086971316530536729322090060344760032915728221654442192407590948405590211493835907347217279836921917857768927776151066717051837476489755370913612445325259641393423049686616656793680094975987038788088770962502308886496479133480460188137667193950943401606712273769460505998733590339497795418487628900614431176487172570785669335119638175507696156338867670529584708286021186418950375082059815619284290065236641532043460426735145595356971599520644941820080087785526974532097395391571456898122239882951194052762628989030082109568314775887489902483140933849254415763778379781271402142293644774131666103790959415683072224135407248186168841239394066624985346979030231529637159550330125040630909254129674797383381431608223729357076738301797130309560258599360260107999188589343365529353990260174803671064570120330569147014720588076130289631473193236869805788418942138754494272141643020440967901300444597235603570991761067120227287274875241202759222158788565955738480659870361844136308123268264405366653926206950193192026354320181837480894505011480445801862200863782696867111747117047050276494778666912420401428379643210637162012387963176869350883306809724095210279035932064573435228398015939265719957586042496432294302826577713358996596095895493744158801187085890483308426048641894056493200135789067488247584876641277871575437689378391245505797041800267458703834837826564742838969756477521299916265996762565186117172381224261776895018436807056241682250037476759231205681069598459711097397796607293644676839583747774871175570209507843901520059763350974715526867895967714358647888688269502327127449939286138489443627634255471581415393692417190042524572150603781895710178356633678485396509229824124835066229177733706787065101261586928240065546035711081913187213130564651744365448235923927836968195208584629044191555148048152631216432084877476490711647614589678054465382906565444937589024288997727519887612690972175356416947493331963600839131584374890184360634820373868880977340165308171881442584441065791581261036657469659361741374570023685757898686433841842465541204613827999564891590351044856064014934709712557600682007564108069121014824605518187696061342537891995528823832798028640045442014204082842883968151311917415607069307314818738286693255826334493779203470066492108265378331533085899315444306696216447804577352779220894094531654366076224870097254007295105916311356920830523755470080937947298947649925914163717474782272710499710496199759042614245501858335057885201495255975243359212290373301330784551960257883815243011846106741698576997885771879628048666893314938931808676706619691280198698037985944290194322828089442990031589221226649392614608084923831419190865527020583488613738346888878232754551664812201188644064379302961189422412009517215835929174502572653649106875298176490181006209272017318485408998508668682708593411768427056762179015007385351113269913913310860257608719113604126147624257024832914886650398758559283370574737352628536431361938885015170723005378159419799189342110981811712810062895119048597190996857951785611931008318477316917926842438023885241805076277195630708029745080451251476435096964493012888948145130594622215861335909283116762787865877011701553682977906129509438486232767106892912304767020702971902406647463039268276022035590526822357653263472668595892618911108908393027010666100066278878427117987100770208370652066018503495931545117838310595087993999084608978051778511031529969280135470983416027085002928010162150646596039061222335074585341318410802355505463365523186539645272727400147883569185720009361241507563039655008405637428106899997759948553940820978493942152705237946564215044821333101523397549435204612252284387383670620048337491179730691985154652449041314885606663498613951923219297899874327471605020762627554480723287251005681877546868463365200998112918340037688312004830076164934085671865847235474555128496366109580889908187103143170621859173819316624292632736296287734713422695982508860854868862915590802153995515739311055873540352894895363354010002286747661763993560576493913511352128940472251716221862238234040658455449789954955734740031205734675571923784781763119087013524913138944322797263073731918809036800999284023399994985481076859073461935405956236820427376430969408231155477181246204158876489822482842983099547640688922565555897804842733471495615642607199092946956798915841873313881919543595463027756922115206287031645102049226692739394965815761883066907218934034077328455004569634568222973489980063043528857241064238447462272063018180232758576641890059965856610146057868976098827167965208969405111200558676964735853607488840566962601427043026371350653869991945755030795521816805865310535223339108062721229026169789859922074251522723303406589432250252636603620217663088012069195778762928256069070754610008416626471437622392942039271094781365867210294109322218544935762356163004296784662039587103605869412270234491826984388299159200818078157385083404657335846911545557800150337609404222611577318723794204264116219892182550812264789861385916970611487288027880396374671874407521320426499471698190526436954803521031200177021351913716861979911085994885597886395535660559522359976451733365384747876434593715521368213971730791218232121263840873876397668099496314807733313172422701457370329384385317937380771887699510085039347865952243370537650383051654048411048420311953651688938801549854829811509880098884968118129885660371616006884139501809220897397861940637593218430887298046124694227821284886058285520996483409899338765682426819976239839517063047640398228357627278380297624213778323254033945419965286988144730800093025379589050380903107365178316558387476617746608671571186296315079253174117499092260742119211836321396391903010905858008480226489073674158069881286819692906765199936453724712338460912208358881185984997641551317816618086081844349709672998969232408779511271041224226078114919298020296285397329350602681906770905925967370805963295220436030043234492140603049567049764725007949713289870958102941664495863441948383304987440363448600658415428550519436491049899055020545641077913911426580865091568593329946465238930814336248774168700362743876000350176965750836288600418085081340818007483186736867541948814003294420679441304164381299076554445435751311876162991875841709054336949826588468894378825010470923222781596320925830067302297435329924323613363506736667939581662292501924375711216140089151822340407149608463467682042102664539605549713117508769363734829815862874505404917228415107064950134133470058605868529879496535991867904984152487455774935422576805601400480367373698976025742747344299147219360321036121544249720749478514689665601930196488607586518797632262987216128208203939733837350192990690535629914018871196368690785860681108833562077474794882258919907922372045069260272247427680740537856568049671848439332087552649687824812215796558529505250733902985931816113662526149127876254111080558948069966202714733447665035285659077432827598556410307832129436011903592735697528893048121726012203492842680145677469150496091053999023984949978373350651104533006186635710133751474437762772387539249181937412377077907820555319528231631783222886779193517347267308179833643969994657638519244125185035694050736748351997830494757429268032494697998804492528155524877185451329354314529587056067964853838744606485256202633437987612743175641687921766548647448793384482968476347235753663726267045860433000048531114599202528944814814473610202398827481477714440846165952391392171223104524131685007795295125742671900266809294329367755767358881701279139142739262418365145494368285254956143238250326333102202497412643665990465363942442178752300410746766587144290179963330249399042185736492439727690174513316964212495427684338882510184333825620627372458183428361177488958361986847920624364660430527494775838794506202356313271004879241237472070138893645295177081536878013456273122157718365988091748421354531576164482978468308873313702859550938679987323139997956501752091577053852363315969052956335607573133787855445769677360249427004948824585648654678941014151671767846607967934651989977205481740105599755916160626434019786764225106039458238144922643661852097861279073550200894799518303457125458543885031751543503449240249290620149573255806331809184395229434399543021284638611559630473301286608932669754144022566775894656267500233917943670278546434763046104336984995219010153367746004368490430965329385873116241676199947906714198704192785245165663126798568882561500098486850276829124877179322518929618894716570428669844831957370164420256218195529179427333278747511257419909048693211638531163603495788426793086011830814477204164654734712200236277991863147850196456038685683623058986582260092782478990629812422967287428645263662095148964804112618266514040991953910531109339220468426033408693912079908392085747086072006017471119874730479413378642233159643796797061779051585336826362021025080500379980698013451095148510534859892531405858838149426195223885726541414478118883429353342580210142573147196871908820685350631255821853192337880343952079540935944192223477492878346609255060633708892774327133380150005868310126590234009985310980953789111554133872936896727797337983221499100799786143060418017083615265597183690642415409675654797184575102404788554975490466306959694984241505225304366791456716157274464481655904864593527357122202972707757858404885808854805928739355618564531471491543922005685275607034297768296744794747329354183692877162668594285864719853476095259392461091967374834831413730740685708669077616683259102732311089952022008090606645497739103112601539203784640133971039741454151156255962801361101716484098386202127180257986550840235786736853889961420819780967181511203373527084887931287947181563755471728053289806753616736171538822583619792742203637840728549861980891727739504147016039964893668855750181521726848433876135827116357703753571277204348709809750078085597338116225012592773309072540366765427819520848516037047465029426922757533055475267165568836414796107127870129999747609780236740197812421598361507129843969803936991545013850279243564889075122036259457479261754197699494787083198374895897157966741234533127252168180551557492235354581908619627780138481095652759237996204109957408207827141257361080289693521516950353176894133202270238295184581996549571647729679370294923323777717576236539133554301724838454675408669237224581837184267880785263312880931627738247576919623540342577390307393079424211344339340017994922555585191762747674271968562338720544888926914711644052496621062507742332727824036149329395188329702666244948650635860844339024319518770461895709469037687949991888758067707972893397889674772480805790759671830816974164637973494522432121026458700111949863629555484283457470205043120222933651506087334210415984879192510823051336029738286152924611457529119188871514917769951150234256781728114056990308797013445736598426750804254064137293032473655018947192184830517194779186889953107792880674552530148595894316028909243556578938606866255417875981379157426204936362349329146560803050294648902331894991340250022863636780543243362437818824481019868093957981086511305817826122784028380077105177976903810985889242129154138615524369383647375422256928640744565351710289514423379590544179952302913558235916305106851696227607483128406112889766329067667670936453918853149133384182444186449850012865209660002394704475729425595553656215765195638269605585496897603428103906464166604444488526498555528822862947984727613547407331062380132070646009113520853981038291652428962801274132398588645315786959233115832516163682728969512894190246148231142884368175228221116905412615149394894542516512136772823679467652863483296295253356626709358535073739348543973038503269091674725783533349831396375215852566548581806521351061287614186271680730241690754787311669474434166225981886761890659080360508660451334873890785846254577475396371515024899784557979911558367761621339540629848030035447509286854650206422604433672452972647790694006235247646340721516559299086698607308262099349394418514916388413265270883097946757623310906163085113276431041960669243463049630658639958289307435698560004239688376008234637128919321351083044079804709525546040501156664318620065635079592329065006594973338475038139934479299065717322110232132505837057773226435790517306198643830427398336055328133359977771848741596654772375433334341957126212910897603173743620505743156413901134141216715786529952460466440334117804706319882434801099393855186068781353270065710000392244696112209397014787086968248592923999883078917075325486642264884808123577736046872735634778619447262672581363991573639390148520690549773159284032517572095427418881103747568349632889086496195333448861531965288378106915211690492176016155028231049399656548187007077131122200834926447860265813580881067866404639488619947657450787724454787484535938258347822645851721441254753103507781960937918618261973796963818441086281474102961646035502296175649075725298722034952750182975077362290879795689618998055256711142055842255031589835543211875068512081040615411118264039714819458843462692564620079609496998792323812479591231993070978823103243123532134062967721550409846960502330018376803778964892706118845353602752599316305880450263854012585173242115607156433164364986495650796397123450371161913896485840290801956241560435869634743320553328731189217393849031581060514371536916886206045506105857639146309874410527679445661162130156665946804178684715102918480027763344309416698730622755311442625531033106292540391765170328246482234339669238739790609160985685622337370130188820096628640349919834319356116906982479153973280554469598159329450428274647546664046890557923829823542349122901959755515853869109517355191700182658032788092102069398329505961423944241915503535218984319222657065287295797748212707472608201606313488971502018633926082886096627255997207132032442659314455971270112096098384282188422038139772812859251860037403380923688313698347602144578851795716813601119345779858681846847050239430599245915853238688900357271765239689426540150593984559935633639037505530711461099229327198351445603588186035123828837099459589128665168731002254327616967606384826596696529639814346217987541458656536261320094131547632914694734057877142578429860922692394717846165263322384509662987342111757661080664598406299420779142013304644778715214136542398324012756945272591347118295946728101278036766374949472499190059532095171475238366437087298908342084923895362119818809219713792184956918262120716309156678290120852027328077025227516072599991456238124212034889487014916286477553957945274496986940294097492034563561490549206661687852448534129509784086406707027760407860940183778087889092201170801459870538968465269919617980879252100468836944736155267439550275767720763229678600972150193942438341808464286590555163826069215262228173478632353571538285259961868958082333705339913328115580503372665169635849200367063981337169612759507498657890165188411975041230085309371146745157118057562903141140389630295438609556911338660360523840092940259974521543620950765695876363788929030958896569308091316517851117859573912666981574480935360412099051302390742370077789144332855711643231947702093765228178818728985709805820577594003547648731880338016644137899965739510894845633807498587697996606680576515956370789080359348460602266562404489686935166387436925174345882717463293948302904283222212943261703124074583199636227770050257309472727056241563928829911673619847756654104626237889639636470879556007755511298493268112804278786517881630527564333597855912808824351466332837556138413868969579307193931401771397561683156241336431992094521011955183553307558510152504178249928097180993039860136648392096660335365563996715858936705630336622054197974021854176724169264143605680358247488983029255187285939506143880048307013246859439208018311160503091787052682548111775830404148992887800023778138653881192859538637461497128829198889360979925209479120625100282324326649088407187332405586846874117911940640144332491069684442844042924944737204375203224144677619142131670588376847541317828036945931726166827824564139003554409463825062935492788726070845444931635406828571571832504576932086977401482003682966622611113681290033726711520756989458392885191314929428069102638144956167012139862617396114817704657725226265905668584749535763342070736812936358154703798731390081940238493562262066963278132738127465758572796789654683681908697803905328795879114138595297834775327813442257710452537136668775571284699612500646199082217826222173559297665146937322109824655010553171369736482633586403907636468979252686487905514024043194517980211951920592081207946119573480773228067982386180929507842780458653992689108378374377512285591387131253035935739493883221455762955690076363329261579442213080967971609576264154151531532469180291155531751498750854794525278566884269383034201285944348185606009475732319935011095729410758019722051987071466739091350630821156605297189465565130290148578190031121916317417436847552465242937836120252948086628590105630945316465294936477004383491370814244925608280761928491943271341486703878377326220414872557823183840548901958316846267007257092996519869196377542553587392030529069429308325547123402254977659706818023776938474524421750218343404357340693496783678234174926821229793962228124425558388981124219593619393088734920817601756079726950990338397133260926088980502224375045634292856041660077688948902602596182528825071223410902178405424316248423445201792326462480454507740999280396687152301356822921127887603093825431319546899090880697889019039789641335315101758509693629228915439391364857586432763090955386797371961780564258414871948939598315400970563154599865561774895944184946595778705936038410592293042957869605624963728163165234613853323572890540254310730165198822184177502110559756344091739444188512108026545306063691488901852189681751944395384445781585012613548938725910314934499749038099496861734823135601186211051984044436185927579041720431304918737771748294258067288852379805723264475716900078940383524809423146368385172742139596732499684010984559238708516674042707608439351188151095697989124257979038312958696186213891262867831134530071675971144777686744170812035221908125033045940387829187637917831723244266979527754509196937430420529187607220004466787431492778383407574454559182164363075015858707949237015758131099156213193286266019086705662783687224138686322164089855914507819722071943308695125028784901210254538767561954721218978601085756095665571423504309419271887428631563908163268536533626980229231374593425343837738599512639049366883006168888389615491979462918172355684739569918973368562044289932612831165513160406932133321896493027107463085877174624194415376479625314701336445538874234749440667877542477275437366515807313139229640156100124662741836986987021603816428045182152991479726653172900288022983713118183879586914834256285658280642622102202555094267261391821214678391947885384296348727899214156393697401827375665054374295634297237016302837816767135438177995369222488771429377038926490244407858467462565094762559648183339496556221520064770406421169212066847775364230715450257377712844563654355532274138860695919686588137462447878588940454298853277872057125849145119938375077583496702993531170033240421138143158326569694254467610767983202754751128491990133354205033804431632605874376212711101298301507456663276497328260177658420305740072597752332866503191847901429459946986405530534105479930428296994752024089472733703661074879220366075265747115358446362726146135221493068796753750864631401213550245289820345264743743910479137663676590833411342636092557280815875477082488334286888812435097318671974667188212309950490221724473262628371443846849488217184912120486567634244122743171939600239938948424967283917792200564040964249326448539453192017551114077226695132833937464289233741513851648846659702496599068461771349884370131842624333496573357060492288498578794691755618355471987993661116483973438693916018000376934619899844800072167967769453627485829141426918149504344651364054771056104754397399247962616075494230364305794812326247236692554369268481421971759245607305942473291695656364843551013842288550955382178681677080687132531370890127976111098773812217742190328361020619701414778570689284491706777248245240515324895235156584175341893872335372074204259867505091236833477296069876125460740372299879942465492597894896737058589793415861948360713754359155186481762270693959793815112864560754117237812628529736952038235078102531563789986317464374087863974201768076684579246018113527790145603318437456967972205494763541977058548348132316439290365230561138136867721498280824516267606751978168927631257728973357590517889774047283220020978924291962603501712411183087309213542680740346629946915083135989893626781979793726510180387652805749443943721319636956337905487662334128693257851632970770868571421220057831813469347433325587028969712581328130001464080309677035267711858406222460678843256486206698819977903429585161190842199223088682472268634747372112307216635850640644986250714086974843445420296253356349563272436981927045476834224267386301295524200540599332337493049917377015583091709014111135809534582058164602438495862033467561655093630620212394234017196979030889183336866649628295456579854998087380057045237727164624532947599655334415532568590116912354430999577812381638331260400655474284951560939832259188043674690431151323867288977219147350122160577998692753927116532357599203636357851347390119433143583988076524238693670958299286142283831587626683060177354781054064329458834084183640130570692211616761368420802493036049233447447953363684944629330667317613915945986029345091969849316883688359520949283813304574706296322256645296422560624915282786796975282690672833790060067529809779200914654751643082018880178209867379580942270045436797097681223757856468208377902689517729817820861533404401944854123782513796596050962570332971453736562662891460451634562671437395103697902922659583690036084547785331314489966458001170065650155466148730574832150035167420099116876365001000045462942987257338440975767943971508332683661396390660364491864544581707626657800299104325421525216181923867939864206989131167330034527215270884711434213043768485426744396026394188046091068713852245037037002619993752586877600938134415917611429761576648301264806960596398652058820676367326405379059018041333693662314412695654722701120912351990254798939392092344641954282498567466303008700406584029261939824662776505141856734518300695013320714838500171041012070956643992806534168334555079696424368634880472765759077158994693726654365308797680446215247263223241703622424032173998195070538185998876497864841920822576966854026110537631224530734866854985335313193747730961917347244763843758698087670483301724275327684187626826289003165411012903477223696317460762904205777076957451244166835410909973516109351941605817890363989051524998538116040483474858181724513619943063433827522191430770041947480628462877063628247652098688941854128912493438934042441394660597179937660709155637578607605625277244451515517680844960764641261560301376124658911306853128293709233105789891799224793122089839163577810638594038924050683234272248228962297506872120757547505763646294524089843166679354282090530305542585336364622484685478116472125145083062029339806425902486637005797572843813095657713876211184664600114425339098265507669207608493107569261267002960220079915260163403829173913854801803800778750137172262337194427380919279029063619072396763061410120194349946342227524111945768265014390220465866446783161918458127725945898139497101100169225994756695970272489629260128212159321310002070304787013393361470584802924452597171785997105289140984088886834293695221054165578232937474640740440840080443274557581290149091243232932137398695708834122518288484577263177448146211387068695738645614256615881963405379994238940320046899651980562959458828248519888381658679208284438735980138064994295245413614206143906198961778260910203099342573747755432821850922069786484840451121547277374929553296269867541970927826445235466183919787432412456953509601969259678419087923404999377978132647535618714784330968832390798359024190474691781376017479693124272613683464525164251088759864820553613703707409264690073454343618094180574710312033653912741559683264421941327599211604659815592176666954402213643148350331021507751955492678998487891198343462208338327322806548301277857064975726460585318269462662538265608683611900183438286489357826239208077346954654097413101258107235101576444977607197739640639397904972852981601941592900874545948141273628962164230141627197294536807661025837706097997823851740014255806419406677322916246263531703064238013491864390343889439674847831271663418579069881640533361242640442377127922497391330552790520604730928343574778052187144436342616753228865305381541227284621696509158825301705446095535295358400506844455094434158635001294770925794287853074404453772458862822228835532518027541866184679181002909493790105681015092012447115338687112732809119900026861805493987943057289181371137829642132339605205612715062031375598879014140063960895722483403769659257686290364554394373381491074102073034746605428030868764104022336561056144642164759739665302857163530167460709944069013580542400287455212841636993276913492960712348391722449656412164561198651242044493002081912648050206974988931369047271398946476198388693709806358111193295967815471261837506320328632948252701746177861788375230754519127369325166051415565576237141268930044053736923018726830018687688100478913170584463189522455963579289991583942685229070898809997150642915153371759301420148604622699642393837412627053687721617921537970226573788377858825708385508634536083781440357307710447374383733754389949609812419581406291220040912056276694408791357324885355789232740985121532889881531779002674293532040718199341990430748584858039122465266136810357355372233584432833025522001597122199551731043143924384478499467737904677063789708647637344719742144330319853234567080636707665978013180941873722951884581000850153139756501942967948295243938397220590398777114490784733919641530445643612657170990280933136727906684057284024560760725669098952879194081618164370299219757366221901509601085377227799527316888203130495630147497453817455617435297582276499679323955657468866168741203229144167785168730017354702339301381406269313492484743869888539949528641358197054409607026167950815516610316661113759258247770658805851164273181453107324466414400418920551886848265172767953305215698859176327833142190978275232300291041103702901104611165869888532295277213636367808338073549827700012668718730737842760530996920997764637598577213671880055897353180948132414494283233744131027462869348712040804435779084343207298421525990415747775166990992949582498267715017935927978379413846441010548627260395505139585169869610999221869632167609817563230817976361731544394697565684325072785288859695971466769650825924091838249609216100991560367976632526212576014398610246977611847701047768554686677818381327326517609468217470926951568594470705054876332956800402271985332958484201419541597644729751738505533747026452208383229505871106214801855814108082069925520837813364760189832120882087344342772497993971241048083958477260447104194385348851274550518503101381155048106175551498532515117247377943713639227502661211420208824469409978880688889999309105859792745986600387473254718827129638107666000502771292354483201918146969764606153142223248056643471974872687433894588085809617002793345201350756875648306913592478262667336988518763701688507749090979421823842196572399495730062413366894050075509987233967311261942706355556281400550524643538243595013039255022010907418800465018994367488763107848043599395102012321591359975819363387593290464548136033668236479171356350005797818620849529478154033442754377221731341416791110246227003786647779184582803413361141380483425984269366190575127380617604037747844542057139535968372860658436614388385003131276353527606458913956314723807365387355317488673596657650350798806132747797568396351776764449652589191733872702382561904653476919885621278869515180570835060636190934461437643224321332887951066174811325154851375759102507949877300601110846842567533138384306624911527252793212456122802119173770851447290200871875431658938167680877150366573526355078357414991176969366827654524264570575217230058688740416859876053713596096495600812163507809931934132575985553672397233787535449377091939858395710559830554186088580643498705066893085786772131956512030686610887414821431703887998115135095216238702333101755980539120368839280431553549016091255023777828686718164601309027506485095115050623603876219342112480581913429030083726623552786958560297400687504142795445226963539863799461329195843527348239080860389866835871674248857571355567289712507474079539473960627163787801391208803110478025240800196408217735724981799597491919746576688638639866966429380627557738351517907596765867588291215862442656509413376765703167826763750808985220751105165959791268371595163405224902385134009809752374436468268244145617619634899780349382225916326796056393853778013839928349879551156987742852610786689715327864924188188164861325267208936435392719186649186851366304795680180702981952139589167200364482360695432148614635016991694310493896209293925663941258353980237503128499722918761949115377186200175883383423703090550383579931438215934648778613757449374425534450009514428280106800063241275684000738490423428213659785591836204101177031087493047253195138810083556770396342153271885517754276735900230733015623773638655325116940191893271855063203550632473993542674577307832539696373721680595690893062952001254185074448651840226373297797084938668107299376463099682819990028108844669846005165011297988357150160250925901606114551305731354543710865308812369831177056785081681072118462920985471969419804355220909713920605068184238545525639361561934369407150914616044018956374370261442501159495098964368186811588061859612895047296241583753278561775946163800111872790553384549659117187453843204971552844306032228049123429485567731001529312519188796059009680510208100418082903748612879568244014154157757137797709959082494139324285331620364795799350147948125458318783417738803432974194609873776545625567591026967404457874865581118920217574326522095543681169511720724970034329499356236309065176025572697292766065105805451629665150685860820081749519402869919242660498225234117133887361419212961611633038417619381898072826170704261847032512631899163082064100591406092600194363061763988339463173352435617744397444147967709953082126948993154677919762528112771453595493682837930512396944372829729282203738828858918075149195681867689923464909051497929642666356775685070367243427536558148946197077982447908845868985569687624713099170914362229435425634934908727312644562921325178815374081167549061153420471585083384350200809469381437636030183510098966504563782302177214457640826253788203598355182320791989697676180067577304322711024563411469257224343593965919517872703085808159922869102712086909375265509777596552651511820425424806469960812236971480387368291096886842004113369183135552712054834667354074738423606163487884694805619612133544318053525224203829118420523820532556640791506017488822065794845353675963406679547478659125976409373936421825858370613728424992045393078136731406233145101762339224243659569731014591631034846378855239711768731877103848669580799411072439514758037692362776663990648630181724059194734408258895040706783048584793930708451339744537095346779577353792755324778608365925800298419414416703344362830528325812103487860268317232889663576115269556849344741232439265647125401169177891565425088891427068795293961073829384395910995024660091611916668928732064927509827268562463877651076725215227418007206210063926075446186935797644804682528309972655480308713081763598734069495821719660767758271265491038906221222669757856999580292003674286936181124646983353852715775017451586692111567709827880086359540367394853805121620698374812776284713114675370139693182681607806756730323353710889327143936928857358768641159288922258261349853723042682573146943827896706954063770141045174578515511529535366954165932818923393493389412663422563302239376227299135664505119196251113410046484182500677483303659460444605555388826189216325566355251450599040916171510260153625566032141520447871823560888782006967329880519219755652422387850947865197266315844995287275062298871662207730503002217052276274376994283691990014370631185180911956440079117428239214899229038240986724890844451698887784725634165690255677118064131154381253611049521510853600597795812643325044863567467214929652226751617411469669561400220094480866073553425215776689980398503764036343470742765492389077380070805759876458771393852941389560685249911236759209683607478605717421274062099075769507740681289325507250528706887937016033841345825988854801890526507507347677640770394528997500030822032334435982906589590807380300367993482620493870796018477248417261810559260524151074074437296031801549263638695310519918308821828844080603263600277426079630514040221914108161174516448922544179512843697047107431155313147928037147819711448855557126115663149954104435883267764319939361770723461958619547882458598636178149853651210551739092389431577549370467669351236073880285511392898707557854239558266768773193829707032813257272487266287505141613600369514046215775816922895800715886079803115405977666223211741637135697720851452415318470773157341106341213225350594380491853876715980473032357040166956231050911994567444385128449442259961974560532583269794545318676144737493184570153771015446093679094331263247880534939167317354961350150404773303731777544077726090864475455210048262493251419603726821012795050237895885053971971043468772845205763999866107023172993285269941097834414026689162632788043022088800508940850225661390712663882337808141348671205924614765643296731064715786129398813765441996432873079683280690785113804704826454641988463582054457488763284604138855137065239940029762121089688569494659092826468687376451133517452333961356006254894730350581095943775208782713819242577178366750145610290247243319928327750517221453537968423657957313832198297040894280669453341578867890106192542420122376549615011640015382473754126919139128938935443572598466024291733578987698179149515019022599685499549590318994349329179064734252996767395196259712458882665767243780905801860918414051331041408047590808796320149176407076617833599718498919986781442180756192348468683790083311115679637208392416918895306739801951750141407129183789076985341203397067218009125538609710591772408524206602132038885783347586729120669148148476502955093956186518295288289297195065624571439346296714767321185265336215720151490088427614114049379854360708465993909438863705862072311762166320180858456547381650214954941221983633784202015323334799154029205288159735833849772170783122185682693576893786792813208548505415868585851018953638625302295607966810814422266656568428718228499785591945967648398936392369062318182472685252550665196556420805089916609494170700611305156780878035477903402486354351937193454178343377699742719767536670003062595532250305296782342027798598577102305383713400395909771555406691198458647453418411369874753060870544794381282478151964364290457544143335728948692390282229183131312326147451069829440250441561415555389157929950460306341291747762947683926097979191991341129381359395509857969748855687029590913453411187220448517537346376973858154922265615618505149932463058591251242618052952641543349314296942828631324096592664830987491420257552019822462377145847747667751132205408386963137658381346621766937713198289243820661444472303414307536189835915113312162823944936231040935833656574280163359196003399344508810979843512027630766589700048557502520352020835127356251566556948824482105353170970450267094401360253749735107700231195778890707570876657591155652962051425223746049813057398075350557410470354821201111865224397921856162732280846501896080859083208544028857735403065587139133816611668296093162353864401787596532812985629364365975565423022171443112215282461457174763796082895607689668144272675454261718910257295363978639551244564007282982965038377296735573544904009840553737519864842893396857009562629873843461160399119901537507429307742214510985545550892027903000695271177609295979388707953435607029232003102795337948055266074649914383051792351105081904189720997574596687159006571233998321063684420841241567330054407564276027123167550625585740368473104732770992319319074167504858394203203103290628199374786160497069023102687844517165275522839794826130130314554613083667498637564039622701215189368035903379819299496232698091160158754909119206622783839946134539876337031270117928215022025996874750637135500347486988277624072996238684808961507663614373893576861339328859112857642697021324374185233991389512331780012351949719215401318218001157032438779105784015618875131288863117409686379508132744001368148922507786425812457461534731124718130242360590681749815212026068839996347447224025342072969542802021896561058817191310022152145328966012588593778645418150572837700350064286503242048948138300942090368334931566136204094685763893503575713226793472126447839678986355214868421146209817508951297572569605770072998010835362647345854848932380323670288733371271525137207977703855897905417871614968555822384472567086252292809364424509955509870346328606469867861490393200269195822229219819401823066086220770804626675153235580805561843858085641728634500166373253653938500100260989268056685559943261908814397990891073737131478515737850603322491503103479115747755136094283044729041893124947303868425337115570276245022077784031728891373174130598759345307652042623162480587207328228393638710149678121981180266975538807902912119610152351043312262884228120606678678071559510362071057051197080083695723577097932576086981026906360085526460621743931729669481921865885323042928219627108891964826878141922067141622519021340432405397415767118147705674859369346292612894654480043351083821319407843052890189537860754248861864841351783977072840192888666746706779474833067460803999647982554730035827257082148516580763428886625156613370214706448084053242858253292920622236016171700680732085702395588515035356283051166836723998063562189821805271764080150853004473932085256321569317537958084836185060619650083641091735840813827680071489912023133927853042922619096175551974577328203020096339273025770421486556698292735671738354906018710766609183272011486887966543252373601393009286751775917907939275734317279513034680292318503285156444771484713787550008259595230375609315777316550594589082775936103093898312188319732999661730054972813458613235572934184715377191792547355117582572262585998209738622377457855095355982304770339068617000589506743851080341720645332783261529022012833449782131997700582406725076895995955396274109092639252575646294626798155747322848915372659911714722665171677528890891444692312841223237085991851135828183300147773318922406184526205026156631224275118613230997440255314702358785221414354998958160786050859005648110007307485123262535018671315968364880020332897385309485253828493492687122097165478008738914955787181023300967448973053314012167702658508197321347770509580181018444792267169059728420801391756217334412394937066082968558161885274471938469132487912704682244496973432051299054719776830140727849712866582313248476509759447039168943861026769311188929140978464704090324837930749918009493575841774008855801661472177553740216919299941639678893901299862786663913435810988015167630105028265203394760502082748182935252794400270579183550570741482200307434319669172201927902753019985759161486791972177385771454634464535394822292577326898164168684799750281345832209041216740059461961210241384362191628856643247201529857843756406030410084022699084583017017161976771226049619826015817013428535523781133249166806971080689743769551205494576483835084034356767348538193509209445583648874871701956596238039310201573606449933556318516681153309414296596606710539814745075606556340444594334806706256476562011056463276502948300885240817838264865362457502752323690785553412665898474490624004512321416037115204620985623128813122025426000629517944857026378068290337384579068590941089509317072251754095368119129928083185893844697907448691700811430505154444272541471704207051846485543959949319758029614203864094179773387466218755539702911733466860816272872074433441637656147741347153442524494997777599124139933941358268882676231035012806364991193949875137857487703054362914438497155265943042960442244497764431587522947346355824150337552813564041995334938158056875519731590449391452088754662581311301420226081560248692821529016620225693775119506858773023329925679852148896920507887859740999667369194766303274602825433054214437488203520432970264925074081469043018414193563689172815483647562502006968148063088265892112321261823052042094187534580328104896207139198823190022917639426933831266735110812419425937334183504843026832460826268651023741421292095915026607028381756212126179212080543272237809410879002188663235569876289972032547547002495084762163595019695010644244940138211228933654289540617581990225950688945181415949881120283094659665005581700797274435208072380447816897011268879725309352742353166678917812197873888902778685901532504861625147843323309212270873507627629565553988496159030672212532053155366373935326600099837693770161276844834390822422572364390232192063882426413097240967772528733611052896220660174402520570014287716078433523357695428934550594706243290526251377822294434207127876074174252325124015823219403632275735563678172761387529335688438974378681467533865417490130620120732437145048614476135935643179023570293425408965735254729234480155400486054089680364314355467082848535421841019047036138629785301492787598634778399660225939877233511486567475883121422480654321685621464461753928536349059665431952615409107445027045671197594116642513304837595189211229936333825723238351241773732954226922871147232876603004888853908606902242245601984396561605643961690131540422750360232063162566650183379306441697267527837496005745407798765028444407191905591013171840751785945141613370074884029832870175037496020928727239578133383043071040406228845808779135744515893999970005999405267487350231829538940396013472822036623719557453204629949483241975144834067636701463961153031521288188828938623899479371509180140281077478982979701629361845458669066798384615494368007630297135225393007358407653054927436945126508327243371803513201478391545617783007997704872328144179999934137728495438016619120687967205505805214628759959257026650226412829991358399806861717987963530806233551598041565058912161789901779858674729123541526319786037763468048007192007006703517967247286103728456591705284073215765689533246551456770413260251431294564468538378345193212550139562223157460673137127041689792885530628657263423374133305809461606022404577363065015141749762218708407758777952445198907903009514731858766674140752102606648534772276085826743779550353402926122565302635702963174235694698792534030738788631859829904731216304799197876236449419952354897959767007888680350369897788532064018038543069404877977194260883088439338673144106100356684599000658012473989662609229936628257821419180754424567884983220994058083140466892684850970651223175129333508267085478043653790459917372634343982987954882929815734145961103176315546600399162589918527903372584290945155798475582890222287294422236044880730730842375522097219930800635266760602656978199534009877874026397700040786617840967450750452813388162643111236693717154785375763220943774446031158362685860371617711658904683717820397201934828345722960320715470190767568142250824159242038718460766352497570145124854844224447951924953768702637073185463122743002557197575359441501984623517799008960204650350215836257588182194815828615591459884315366382708847071434298104185467333996613216699629996946781029842924644558118568442625247307155676577911055232648934556346694134044360670173192301259751400164856091462910977767196776261894606040271562037907003841381286682952159051701688791730451778025126252154330275301404006445778774033342715955715183523273761415475739480527413902768385195828443349856585908379305696473076580871337303017492703133911050113559197533607285710018472544972817068699501131531775137505078727977958921806393698686071007689510955380264111565479791148168295284297350828192816625276027961666100316364016359214427954874340565905945758703471755955965949102999509753563142421353887584045809949638165323786208982626090741330165055600716712086837581298198875850442631515341617301403935383415085009802595521138887458391855761491485238944009830709348738647345369347158669773288215265384690541027096807687786001959650556561055070547327535987534388735868887007925114601441043814885171494421652991115164516101782845738672873590267455834653908451464998539752954617208459368205040745761172400997812182500723715097611234355002898004303741039146077377592839562084453948349974588763749984939534446270543045583794290438838592686251815850202051653628619652704380465205165214199247565405958228446230455295519963502332101861733479007768892633054518657776607442246347812924469589688119362056513041576214534826201275682025823863616414341502376838822438013889779408214463667925798831738237125506654697070470617773691438169495522621931277478244701773247556135946366969706220426025401205810780009038103430440813694007677068474535449822679006654031904579810560743887183679355539553529975801600663924285232466876414178812796384113398041616604767335100191420892481617316333846491069474921081154513116718055077642079274813467290118003931158497484042817625895299096627548661247321590251704016826448678769136006454013252250162198217082815415481055903366089386460902100645264886217910033528959585760138071900170875441044018981447267562061073009967269085263545139761652362411165155557636488575702976354742291966704062297000097035059554132543339206224394214143853329719935119062893165342396754238721255814230220944538505901643737432667133256605811767571059778440529875805873939238539715115241439435277979940026050672449586683224812630439238308998608449945559189778285229173087129477307342967000750405805227941666657627580193634185681083419732106808268434824803104992524041286245042032741093048963317283807517556387448754018633383409181803682869719570763179291960752490424134024602644041314447623642454607860307634693322022598705104068172035653829865215408337497917521067562737010137797944790635103079250416360720051956333945320318815152906207939672820846736700375421545890536553869409826452529052832230579038847892832702115290945409055194593459370839894548366145604739663037086010693043122071977050933530360088921721660275399169259838477320219282824410706241826520925305224969741853733198089677344085435858238992187500233353217388677222015525912793816863324027558953289791678796900515180817787433642524474890521774160006041458347879124560403263207297047324514618421526901416342646624646078457855982363960038904964742567269068419029495146879923948591777495504890165660944963772383357327428004368619271924829324429407323793594688136265123495527110616303129267966673099161557985870168780770224184665546994540802226930009144284578940595170781149191133518811453999172944814415576920600077281089473460035452039455374862001922897142649352112892143796095156492529505186541142815225375554788337449945568062006474331085049519545723964754964128173638136079686809221926025673902022818573195709692247435670621753857839785175964935100196427377568449512132533302038818351587171678653749149423796450616954539487412905714685269135167383622844037576205648211458678803678327360100415090296259632343944484679852067272240103328567645553050298665043412488670910734719817605920578930954864032827405845909814111060306851873375699787570233520590327665761875402919569159783753139649726174844093820162639211545364533192005094805277699914657276699115693974877317724392341689967933731115475288802087735558493301521743290931595877267720588988579451604650753852712390110062364326615092798410318951743003369653793203221175058637353488195647683090745983329730213860403813689419266058848934675730678556992536345429546469190033044079248913740031328799832622009685801626147067754149185626287848111887124121618108852501328807401562257877216262670974135176723075595549576474079787875092499812690129733072299225496113630828828894449517895466462732276417641917542016034902767081967788517520083440368019556464159521478824499912035378398331175894232274856765966974194757127950419038466529840600674346863951256754037531481587666751138346570139485349254256372080274964915915496283383914795907685048865321110223230994533490956497602393388283078418603108391097639796230554738420046117281669400193872034481661914597357807145457006810719588091308743967522285412133746150199438966755350118259235706440472291147356881721389293706330863925541294495599466221959933987888587316314275581139609721867384166733244490826294148293744660617260727133505692047265467839609207905175584444541043264077596636111840957581205578643384058538100415976265456250507134150563405939072947754893031416473159710247856748304574850495838971838428145555067893872758914953405603017339205027899471827490906114420395492534409892659241457876902826028961741371499922370323664502182577670124535271928750144965179671779906502026964956218964011084486518469882767547913917801840710727013565874771101854945667877090021415168579002199034221144114378596709681184823388571072132887542763738417502831219087818307185968325072004141307581591526154187587607259066307777779216937856657884266890263356370888440085723659539586702217523941677572362969279390146541171358534740300062903464587539946848983388229927011833527579966236108102714078336234596960323741522293425653535066436631980911601919352507555717442855441511083202465963361891972150948864643843182073269437757599544974741479512919451741687045172974455781735370221786128668479937039332515321553897455669670480456822432210669179633043503701993308958322323413529966158090413884634588138021869683155583082214422236745601445868580804956818003146956331506835732547722339691152406899078658982456622417047738739835065988287084796402645671070124287887760119201199272757464306820106845032941950349907696578811702484890009300594644608633568868728757850747027338021931367126994544070739851324655231375937165426371188866438425021964275511163516952792355404222752814162289940535200440053311516585604215976950626980028847798323647910934069538523978199146715684005500378437717599047119195858942318954800908995122058248055430433881663634212423170660664467467076875353469157788802174141466174248555258976602541503249171465160579279541302643501410266017913023362502600873671769717592838139976800363315628892932616459507135405108034077077646911338453911639515086037226377427420102153012498934185157231374678699044527642074555679564767531300477707733288165317397203608886962669149799532002148231020723045678999333226511799309711996903822437084965237060738782569355305795434221913803958890824901259107749681597775607020501042730136108392298675574599280179384139113400209076452684664206525536160064027245024971876343645367110220855818107442734716402791602794987289582140439258045545742105236596510910695109974982871605258318355671768501047487248364322842642748490388412138468034300917205491496863126695860084637886662656546384550256221862008002515928956623122080233600551920877984834336221414068577310680306141108031968213150650643304088902700635947021498835449241906349475574651269524361358256966983448732025590311957739114132445244468680328559396925966317501150525542227709556981140302965869242552854608264238015432192194243161929858358541582799751403422892242662062328535743636029543076242176523820692394543985926360093793052228717763681996740977939756781686714045203757621128230441606572872199505037305557122652169340688998573287771153185086958323631716984453513161684073863238526688582259662944803904858468437490122394314864148693038244534997311905347801112193116752347132388252785732011221059197195634494624669252677763073091193258640053445251318613189095842136298030097808524046768502132631436524989114289445796306676885191451756265006934794100883169198826888107673086270283838180235155577185875818218436837805695121721032067056510555660088902291392188123510850615458550032092360125907050660381573365095493830213591937114634231566384567481842879476053365903855985031996566666900961539877038314933711585744837111060108223941303925832445693202158778395791110895491314680685671272418186951939119538639487943862200039828474646505293335326886256432661717634327776741957923533005167496559927318845107679644942993329267279428060119716104218538814322238290879063314459302264604856243957908958321851031418520173898383397531270538432914001862066359447136080807279580386614655285225752263062250315029445554663511446044600861642830025040695565251957062019591957007841755764216125881481367876910909983608748618952972238792368061087896709218385555889296598467590976887385823691630399258743783623206956051403097214006826126634406841738298594512523051945758742518754046586018873086525420097039105316076448639728676690754479557533805071820204031815963065138731996869019956599397354221790745411562689617560736807792967025873256778386846500211097647548856199201755392250179963290079383206280822467532663231997267038056886766172694460084621546574711674025842743889268092655545062067154278829254789245646403977306205746482222813786878957127854550672380407185026719579425753659999834865199010558821862491552647675707595664818042104904288419301666585214745533764272658441815203546279920266983040364495717614292172442795296374675284823203492440472765326152654821455089613747167468028539849485884688279695373981027092600691905531096616692751575839435464762364299848619682479940906120142356800366466574610131674282029313337927188641876370627583115796968457969201129235626404041006328809752728396960869051906878186844256768939797793200177407002470556927032324252133435743308702359767477149225569370170954424066924820514870863098662216547121415708147365754514259218359762634932334299722724347019861918455927240210148726526809988975959414080114313321636715942908171712947595573443827632252884750254214147953536293525547342353406080184116363371771182002997994784020968614059244015871087822748212198460572799661535064933562141869819089418558695795099130686693992346567870721736407246321777912475300291394074773879557460695977176147534091040992850004344589273361524447995558609096732474472222216615789549983543008302189309699902202537463535565541995187793461054152193529901962789651333439028979641788263126900250543441821112923950419652479435582461200384785707998634514091853293251741425195029816937169471410824054197667264261740736311969418564947863411249076577053454071575869310422393599770525812673668399478740592518444425873998090923432130982781241673249753931774985306705602561783701250011715035720631004321482188815678104565840745703194611758891255166238975466140873278799357196200360341774941164120601325090580273206924660363535203407657197879381908577536956324265231341196074984431362611899835389378878849755290939278518724673026163757647388074001563166367838013349176268065206864278802571109868391197912083972245743963504363316818987138555327958282445604922235019479422691364661611910015439446199692592989544476390325785868145146303983840934013040681334548625539491902509640191490563610767098929275344917327922659403110971076557032180148782779313648640745189873967099469321052722936962227258903508064170079549084057823611212536541531696887924986019500589915374768938149756149347889370607204129232020252464617887235156606218437243834028136333983341270668839148808249831196582648499491653024545627772606236527286768170503608662444596374545580344005487814826612907861843891045141716039561748353785821542433524920280217809755686818828055203471636271693384441706896455400873005083882076251986650482081090491883585988997441858137905640934757454058166775446814627191804392004207407353220309895473606089800606321502955538483977292524914643921452836257729716629042075709575511001246522189018426073096690848892439537682537221360853925111314780902574514835639316159180430765348950607159787185442207096013536822395934186814703047709987791943504623011362466410533112112628261525969602608333719186053189123532275054635395195363879278653824450135522097543343285288251548217519779873037393682914829459673953542102174255395357050532363987093099432435937485702464008756880484366900313484941752892774257843270348294755116516275284643230677132683379154322438299728014880665237606918539883837504540194081390171648960111665301297821653308445972255588057314861297286547119842112945284087731922642697954756421887159900972327189205535680101409835935948284834374775646707204619860052984051124097759430655473527127948736787948443057133422027219961546193140301672628259121122895708684426614370777962921320723071151417003071820397117119756923614074829235275635130885846185906330941986776762126301333513141314777885340119385049991044814852111923509704885161484939379078192040574461788167168219507394217370780800625908107354013075631854280851258930390050342923642746523214634224084188691820573083961540712101101105112171476268303328365488879044106071121963462597182026173506216231215362488561776651504452437314682599940479734382460696998902625925224879769356109919120646386519637081091571087433274375133358335646770954086177456551851913806775328204102875692048060633480644260651049245971423785743460443213580396728158148603848810538453792844061504592821156680725484713572768333848055919812555749994512395920188203945042752153956716123377582657191722149693761653159917260752005972424964592819632515960364065617418232512949805388575870741114849406816277912212852755538273885684496628521003940559855878324323566324233706993999248859608859113683991926943621632092789771578759196698891560473868092516891707401790398247742138147574705501571989920666300442788775143398120350907374625159900176824213649446437171965779898009880589212525234505914109282325865710092258826136266034982900700880093105269368919577456809959141303141724761812587009732220235930544664952553437898609941833518378608263249638511179305900971012380570339783356990953911103234235186595812696121317652118854297349135626768734867156472758119879412410022715915717972572845275027160910567946645536620354073884165783666085935688768900332733137401677404536703456166816537023733943157631540466032555693129834881735231391437395186519556492064430846036535954091736890246178829589698020338353441644602961012737707834661494918637827230930681940256061664873676227006074247096636133327380936502896908396904289333496133951473378399117318196445445022939203411724382123971348295454727244097042388773330543299051747160047017429486478663884525772589530780386268530116152988100394541628641018887575436581383803425939697613623107253603362806704629258034249115974813578957785884208645697737413399896093094030258106637081309992823410115998167950988992868305910800231181874174587297807692817000377568753883659212599112771501734005118003983007352881018779028054872842889890856232721857904581673626024244900559753272015873799501483364661696448584850078087722830625035731706276311677275523258361109495453783459001914673043518518216584173037796402811647581409228506640409230363576294524063543848639120190715395285408252134750044201287728426878138624229327129480997857283064901547414124118881140704362928749307785776844275259983120363502670117300213271440225673424775669588866334525981136607882879670103058825585229593843418373273478932817749531550916813900357323509852676361470420145856129563223560997234282004255237409779985347314410787015948119612304841448130678816616670350742467911848999799787652465485997780158881358494472098486864194450972016240608766219674432960492912887163654683992182308713521659261849730164690856415248988922584296731031680837965021629521345118360740715201178245060082665383502036482719694349131941998012239085993079212711972851153627875296333017261623287459717831587127603398685841635534047378819323285809591710477642488184395957372288955580404497243463226904357769883207483786398518070225593539565218656877652172841609094096446693800281157109178090000611903934273054384872950627870419455826308796660713713534447355113250475501605028836640943208780988318773185394113144080687667250335207230848143392509220596265320792381661534989970603801355037296823341538600307901923862268902464912093214456141574386273468220677350024931475614537149018898970935442486189599114635332280447877660253711102244778102909915303736301168255912848012029997172837389325278370282553594482056927796276999601542005124596870140586033488597717404188696640156857250537471160307057379144215743479525924923154232779062200700712554246754633653983373345524947579005470636143927237566933763645616349253895953756117097044993534591884069013572124352790968169521036704291949949451892726472763798448665330688219432022261549729589541461706313560505623351904157155302456044122158903368526477302593622101303102740268094929705643106263395890020431012852860561998157620532088072730340091640917695697826945576987982189986113788347284670884216111655752746226036545180758210520304785819627670011874298102792145231140572933003479418907245218428664116936474538792526991843822999846307284043876404597853379246080611483977635477494081101331869480320254093876879992974299557986865608261740692616150493486031447387441325270969059210788510656846863037989790121900859310688382433572822472020653866799848651020097539225309019535843476727290422332442025719281009489129793841695550909618043982426095132646752790594948606348017453096922065253756714305363127232755121043453929040447026155190754680279001536270598797632674243458648142209044438649029678399606918748548322177806251845433587198753172740523434089281503359928470054169728109349201930358116726560106589263987715921983791212775927679284722463128225237151698081864543900312530314024096768427738467761603135791061304607385104321637551156804897129906498592420362062630530309987071550536636741533246267260471293026113955900487677221143632509754669326161649325985831334290717683156902211097759929736346364113928149883003532637127530925646378715918810450462366741672571719923532609395905494420495237310936758883225959383556469408670705315465360041249059536710238086618468402657163324303727940290892203547155063663506003356150013446404024760093312587258886987053625091024094407994070445169166319068652948465238288884166864702916957851490371281895854161599202670612076648677209160810438873804090912491225053035280095981973787792027164031831383279411435671592972191305732020293948492158810963470801750496176739023471964066896304339431575745915633979669172907716723690689951848948377584424806031247651525970810057189805962686752917208203664230562780411760063603719447585140287708674125618366856663174913719594753759529761256225873874528664293312165168276686446442657704268489025981903247758725194894924114525498862110582738147267813619432914156846834901855309868068729726359665822094185729242955696917761281925122863355718717735005873474160628246573532015058777701338142951520904830765848947690379316572686570102993694035792943112188336850294537083779437139427781170436896101692252706934858207585541190638130786329073171851376072799324092356845665721371200806337797221506126221080816937261406976123172103596558111714854885625986041262744159705420956677862123946512714226062394748762771030152414718002544854660319158875540768330931287984284809937574606908369819256704326797575671371357297356219405157501877529063530382210938787598406069792237564340591588345197026522050999617199637164927824873680740402039521050482076636170152329059081673196926163864725616079062051732366025343374248995434656797587515792318834880239317208703675068404847641347333418926055696168531428429447797514005399801606419193371745290241764222452646141165661414471035287779636735009922666042401591832612656676833322864009544314860707687400508041186883768799053938423469582155452214670387548398947142967446635531808884681027994617260093014332384148022819497668455826820727257274745591802705845325893638763352322231579509341330715607388980183347405604024427904695281821967760721627615116947761674406980309759182538464673776204900975383664608107197655129723162894361678189228882055783766651265304526485728767688756801382329131621423160347869626165115886584716837723065721105848372880305801345011957785597119303893214792029353648180009318353012976350542704398464883652855581833447144666352411133383257814468012805237929015064374824704353001521022482061023459669325792870790945647812131805870135691655284125115079954996970268838134743459216006397258707461764421473051426604424508994200189787225934734488370548601430914358642309133298639850141871578685653972228454045814279091205338499407865060411187864645843347678683261204086700480265237457269388330806842776608720441973973945321772824050357914107752643605179504310024824284050852737219528983162444500867221522850462470656542087190321978977981654258782760296776661735756879183710580716002535086082436746987954143511300972072827955404050759796094366716749242308902263537916466538852509724755286078157094744720516874557510321498419892184855295316108517078011123266584088565999738540415254719699485153706454591949283576071922504944890943789906079435270243948119134959764710997625342237401205214795267795614191283087432868623636652232816882312259938269978456678548563562631020625574847412480795595428324414256619476477175134991342650544146573247895229421810180759072344471868721161654055670406276329252926710671059953147282002091161628150989047194003505604725755132536320453829609933943440759021992137383578423209532624430801363297549625919668396888573868144340554769715158976150195767872720189019210674198319856466720389396606441683011782390772927461614978773691461628227782819659878270760146264845371721414324910353390133570687085520221050551182261156668310918568948779971067726588293997004826646361558675146025681529766788464300850123425151716759184432625398370850393445005219567306164178628816332218570465512998181089123246952091521081138232784899250715777807012968681348587609173850582966923018275648135581921937052242099748028048664642589107231285929416419102101729276194704333881683472985646964167866490765581093210407127658533515139377517803957895727863785190395016338356355145349150090689692511036452443573890045439017648742420895925634288021338667960309619342106279904662321731053808690230568169652353315460828979940675380714333677502296663427851528653858376122728835641867108725686458316888891088047135423703248272755123829074241535545206348800779880812960296270303624608719012027389277652021160954479648089072430025074391140595721586567729866335211039644241164638553259992356441373096596624124043920674700860794418999582566797639184833419181224043201683683721551357884084185719728913129305859049107358837828466843456637209019405275651152574686664354241728745402401931926285739829666542381285655772557790711440542359446373734076086294016380055217945907924684875671486264344271194653040855548356481593024830972964758563292314783655333299566885762587279183980880351253749509732849392150276875976872492773284267311211900842819257568660373715580010645334459905572753256640250183498134709712803514556588801655030732275039952998997628724675826249394538479040319224410467372322386683165891745109142127774257834907166962609410536236135294078401046690573834257938145756825685329155796809583667907641874523528256599419252254215814239825690078846099457672283965796725699097148706792034897075233522438934925186164191178066901283475168053014414446520970779487226761378585918817455736640641704881547096412570638366482849382159547590105993370345940680415921838721253773792024444906777760404561285855509630916240833380567697202918946434238783680918216821246802781953888641649786209810346176861918487664985932628248091309963361429018952209678073459496547551772346934227203893088359261583033617615310190456483402671144945366206173792931627386137417868491349937766527428580293249388931544263276196129822013321415319589576139983981138096535296256441731987988799100615653816930549452618506750125622022490035954676476416710092985881320562568698628960855722702034192609649190032394283451765338179103054335024564952223279681650164593434627005749921053557930475115858822410635732591379830860508718697454593944602137487331928593581966208617982004186309766954024118774846932568705840139990444871444105695736335258404178777272256005937404425891556093786673888020156562816483996196479830912335145404613118190292861788887448963855244187670430532994886341167617262747256381403204371102963946171293096444151591740616283912785437585954700154396205347979885491759458579079862171746243845872823567156878016182319796938866877966936502112092551958913415876320831308799109370364444568976107984017749638333453752999507975519667161314081551518029603041392535499314485221443203957216228150897951589133799713645465023645023527872090700701118693461493984055014165299103378600511149480795583150907259725947600855138069243383834067826804837563055759490109784794438330896305554589894180151210549907049968999344532103935717478178770471323097051634577388338617600019977625822036124793407298858741449437335903569248856480340088726337374718084239688213755844382523059537441122343318389075212829042877666152384072527401811830579499614409426539767838245664267502342520989986998385941450753983714155172925652070589503805849306271243973061303059007983120200138855295028831504643275096229321326132581348318904727484405777007728645344553127388461789674966209343719050137876060307489830045265684157245901816588130283443435618914545366817346608504097261437706160076551512528048430216924036895854871782204622854063608411751841339307103324366385853021486907280916718578339319821863049645246207665748394766758394959526987794264363600542308781952496192269619134696586631122295868560645986911487219901100626502619656715889538392831695833984193068235776321405663862919000375191414185034988300214915185544056787304525529618880592679995563998145674964282573224448786779196379752723802801859063201012125457332442547972091099614707848478583889182888985912739238350761062512652494919778481884968189132243593411281424520452165755435733902722002858829730581261328196065695085414916324141141891871333464649324703821305985879399644900456313541389115300445150754147616505686969050750163480468532204476753281719669376768142072876201729186399497551117046745843057766705328789625815978672027544831265432607989342084612292051872595829600062196283971998094567505567886671225988905842382504567964564860457090495890674561440581458852045922856792029536377678696081515434850295443592325031785692329851400851843719905580828732060612499935564652806646433002601376123170034444400812540849749209871590806592337076812353389005056654230668982406678877354117282560807627729604999122713423379237496204057887439875795077454017416733415071791024830486965499099010061149021140936718902984918220222198754051526331633367067421050819998767706522092701052977125379876691717504080639710564842501731063316483802425936619032153675289699473973950270413219722069044805960397326257565537431473201843280264215285774148830713781939396138162069814090324306809446758007615960133582238457548150453668755095243546595078526621302918773779404878620021995617104439189873102669838007313138025587277287418104181644553430844593264724510834440554129080641104917458214516061334365250643891420986434252917373356343182615571325842441431895019285970022550318102604871060577092226674023507947913593499861594722249932847286245067010375664209036548433337831117682915023915604962831727517360716806756545521605651031127374051181709779607924894293669867801192300446887885426146414489230567536553417905884278224928227938089560585017859099138836676996185583318638304759558577452911878299001033476371463258316174103464109174164590223294131729786809458379106200263792968195665550282317451916584821117256401092211182158110032300747189007844327912556247133213971089354748485992421240153397761864981944311178939310895008766919337135475334222018633813915624353277364691592295053719459736636416071000657556896190386991039204560477450302027221357595300633693182528730426209181893541620420655228809550367180772693721397250969409865932141075682442547052195635869292165556201706149013414252535438848727654844120852649669984691691605503599821246926589337964759818566058219977046648218071270149103111019574975611821679428759234880087325929010820589656370056854875019748303224195442035566678288827090772715728403230542240655656279873478283364738035862165481582812826371435098451590189100469950247975342961527018879923297843233636336415352342905656687786908672924121193177458726582580868170686523269762103237405342166883894888933879494576491292768324723429608604085165691042885949266346956577322271856143917871736475150207210804818284628855658716734750455766695049569698383557516065801078651728415414832289923991314851624048259596269207308023495412657479517369293817824052845217180015436739671259832628456142956082887003205600528746015249026920902268199161109325865037987216969642722932783466505102151507380095218565152051611028877547190508520188562698000630348504440889152135959756751435916568736611623843708953572668511394724412224099822341787713449284472149402511941952636145554728145802171053842688928812517264627628610815832030577951574573674248902906956463037721580111791209335911537509730205580501202693574424037357499846800211366861082771767729453633807609943292826898775800615449188558767804337630156714078448610599200830784466763685258813402768962007112841549407957927214221530499728322515365528200254458847812074436369104822454431640604172576908328305502171097640500041299299788012386341736148792147436367482729387664097175796372459815635472698826584136402695062015265566623110824297507119687805674633073406252483616738098134599843793558152079640438244742277724951758308572004676917539577960787735852193582067896483985087081595588764682709867029831621992011571937853145128551841316092907086418468965654556612751206813260650042491894225036905177228339839538118695624549674900748921086290903120586780761688897221168219700007403707643751964179032291053623888093888191895517462810898642627792847259746002910945278959103641270057357539805935477764745261882111581211457852006438476343272537737500316522229849916828310297059861050544216634895634713278750968671351043197264226048230049908503502151474792991200333141705702328795585882045445157631113033442758261452598058549435898832792884876557218231235341806390443637317485898401186439399426660975089980442970944282104478324781401578428372996929617618864836452384590126444050922316880693260045412129844687874746488247254382740486410611599326402145982770718513146069122329220159870413260871580213004777056103022365841113430829115105323464558112631947066611644347577116792868530709117022587067029417162799675832528385402654650188248542564723702643352029544553040129736083884696828599604577650460298549827704605651123905299111927032723072144075022189974527445177330248554195046978722463062564532418723515648522090708260831391772632461589593294593397598877509416057398994680178837940640466903139119765208484271272499101947590765755931424586157699750137801594289121669629131291880158113574342152176791806530814308482186616244630026034520538475622334739840151494432109805857572975385712745639078603466325865273916480345680348090202429825161749673217566581156353786048978066614666040424757060258736982115993337629348647861678360099456795334896718984574892685726807598782846104614722653876187367653001984392359914729815562379903691600842855358660897138322199545536687753853247284543456372548981652301849065890430314619359316882102573679233215267137274931724792154270602619846021956673250517726728123965094741225735077394496435252806727110948220027800292551179389661396824046780881432960091931369781310363364129539968875246740077077865314963220881477262490689354540830322091020335326124177924283698516894769683418493424624562349771022042315559342388280512094037208744688417385231884170978810598999833454674339444298817263474369272971327044422410420476333707255258735527135353902181056512922270264318877252252722317562515939077898371858871083955597502175640832609199164434404560333983449792989879463614487272847445872564696979132579078870445333335489884528053181363096097146890320371078992524378172574560315324931748497158010286118039494594486115066275249974867706599852070383421009556015545234710064433591748636032957524877551804439544987195985253606393501333606758534764545513976458159430071952383799358109918861211132623682329234711695891391227986646683598740531218516957733677479993400788891537636265584945504027913014912398314367212768993346323490900931516233281199027067556179818689163076595183461572517773898531116098663960399604417608004447885320860462919733743168706892917587151180453152919186595779270809312355404877398641664637024191882509386311290398008234789164272187210350679970103698310662331789745523852720172474350876629330131891388368891122941022530761712738538047612630901134189434915327096837703063147934718168013971600427964801932691709821693658442934370681202847484639853157790370952073606941244692906463379452646335399945488166485220598151554479964777310802181986075836710649702833729729833716502144746523570341652795415027064938673462723473646303362763819583676487360129403920965702535938806417094784519127120607473263801436402568344980199618326970589557510541519625202169798436988977460222835956193553943497961570088615393639063287159519676789405844991945004231507556573478831144666170092812597440173276289647391171371544420993562267660114400934423673752064626354203619142613548735545989568768299177274460987254327617870041629115810534051952602721568781858689925913472984128706067104945006107956276255069286167914209283102415333236550148324065296015454302034425998922059963309296176612977374564339836153430084158746367518919800387594227314999653534470815556757568862222762193256685029804264297832506431660140587720262139284477685921839250994882869011159336422065892773043391928490711477923836190582248556929468166465974343266312615361118846583276155990669044791884180481537610940689314568053951990278941765591521614152255301912640474408811193512779559844432113335688586364654719554545077318618779722121121916474114176050361908771878987283863955058618331298607372982044491059702602870171106166705469348738705468042236551932600402503913283359013570415510629155947473584262616715543670070220645137304372234425851265957662330896568023377839280523066604689956005994369654101109916060841006038515215120818343132349324447462928963934516685914269450441760690317451570144861271785043802747277101364891897194579410137904717782490128467193615323998845208987446171098769421221755386398857116626165529258998192361535486924265082624420889787895728891123548024582567622053604463411941618357087784415857092638871567533261313013613342024876891305860445991877244512392030124949279118723396078165031854685404440363507485743525941519902333250685461837101638180774123462484655371714947222558734338029815104352937188291407370814448953714864893229274884822375261202565801980995727720034738643467760192460575107205806905366062261021368931412678537576492748053061526245121612761820401762363086789013729912475195301907171654428905905957981506443986502947425976713540972386771605119099222403489009137337992051811415883203607728451386057561056188849212845134620341672019315087002639658472591511397348632181062915139065698044978941429138410548584208023042393547058949261174847036868662111465908175015280289337738086415090018879235863069888947278183449873751828069954087818884207374208767812251559705716287575188318721226098681418496575346190924944497140606243167006061998577617691937923830628569813993836845899571183872531624679005064369249128754597100488220870500376211557468190347791334514393367469190484898414921845397495907289524402208836983536174687973399129192954086712938392147445959402614266825860534434609551497301246368503032864603605795831913294481050889950132948144771961941567311068455823150633716731629716977860781022646586143116305065731593377985704587355008853822957747817542316013789808388044835844921731059403814711493231987871560664792449343776671547629853073724651321291415158393805715692584376829033656655401556232723118790324921504304264459266882453105684106388693854458798637460413871918615401657943930026998766208754892212741203247907836625057128810433511364913442445142766719896119171226972753945313974182779610228767567333770683836304893298604779505038094130488102735414739249269135335754483419151224747191398617836631776148719865979117801896139068181124904724046225552702475879631143974127189144173061119393716763105741973992446434915830291622361478886799344478738760877364187417537404944413518520402383294513191146641661291080088846516916279538320913413592782837991880698802929330149837287331769586813989411934878086656237712072986203404117452125617459040152034566954453608000244970077917587477084436583819053705684130594898954259021719626218506979389632337932016087611245547103561794537090625200887132266036090051606111454423845595605456753571504965029638168419362743908440440132420498313397442177258037087638018562277494215746752272890668913776443623896284165265174435839916567063564475623249082851385149284723004519518313517661554512286767337473171767020060699623386085591090544133154995809466996086530407917643524408290521375412272604864807977594043780782041680722676734726927563872469371053706182367467137574936367649425005585159430521896712552551944739808810058913222366884921468905797398698160819194794837323509340866806016877347119453368106735999997417535210895392371429097976953089388014155174466470765123736432385537635861034832445064115300360141174201734044846454244099908705595139984176429306450859233934628561571773253381875357927021013487480184025941824480849924703195069541958614555221532770022185278969070098181487591840470580050113031219780648293028525105492174997074647071462140143481589155760506894373392850377557645401155008133061486073349413563521563585956648203764865230975837887094680957581486923093201759681656594818884732294194661329135927971267883916956831994809210315274735211945443114110819773716548660253286410778960436015993634140876219133998136265860096262498769845922813229027593014282995778788093840488980703124700822572324484922397993569564979662548596616640856643328084249192696488033122847110901632119054480367634897556166229263924311987093555020538956329404842072526913812357476992907369734409365930690463479600089822287882100529192464047792002791948474228395364918504020795155623632865309298906093275736764267218535538551549722264957721529323575465552496058663510294299870106658363714701282655571242036218423825660638498102357365806118412411301602964004520883568603245199398442713678638780272676439767941893518186567463150130681807481286805999816222743991807919707450505008679635885928396472853333375806991522741825790772372794762779616814648379406559425558380138407047102853742261796201150087851432307977912518650201725331577526248339323458799971457816340376104813005206381000944794633286132447790256667906382391183463143533109146507219733936552389177647518928119467807107349394503881412187218019027415370417583800670663593160447349024312274243550398150823616991892121673038824348150866029011575117204821494544232258677363765184220549187990487961686246287864718149348419179600127818133909398425756020145735019480986512224986458744949929252975252475127331659515973653830040847146950372376374482475768770911663849926765077540796963331467206459716648376445551024070743512885478247336225834434670226159429247754169727510646152640294936752077437834592743548794509891103173032016256553269759195240047715343542231071001867874396447111444258467009984046796258549910981761401080599752763136066466280193799629701891756799274240359073546779916661206390170338120190021199563444978887746465035071922113901115383097310694774561915606869754002129602360964371782504603464725042062963987992393144366552867751823040338074129263507033356045090530193412932700224444086885845883018957581052235799855717263101196931646891780082242010544102022264992090714064536699892752937522994479018669428221232099290043035898801469993657204536690506296876988147187501190887299532297745385247801903840654968576189641041234504435934139498344263296043301389783780733443193260966882502903498778380340689746438049330656042721720567784930958392798638980497621854875503151107498315479260570656648580640415442557194727149882099268063866673209814187198746375039439518918310836619335809600326302761338082686435831469760063246381589954425332743351901319486396844502411160452068720952704594436981390702780745642795591924795251431254988053797075622593055290478782931802705159669088758618877113503677104913739889497496103089500672717597687417361830577764817911537700810803425135728697624041786535417237874173980403337886992693551542016084324652782530417436032605291442820851779088602545623161131529177671499914651728813300407841968226564612337491758682547716822069187472554886732936523280080392722944031308440376546166446691291741413712782677109162013639960651271253095045266058887308267301491115035596478338473046050089582256001933126041704239765366388426555507162539104023639048120052828174429962117136614465534109703611989529973637168434914588216774154956172907852637769997845014044297786334635398307535579731451708032449921812043956737088404688321363246526078380555136948285239522841153376188561603903605294770726346891384924054332290600715827877401066313748946575377587484780129282566397930375857431410283864899247029896141807552836345794924446745721173764255680460539843427163762737280859865347745423933872236604845899095205454425821236816851616962513511105070488971008320381704989937311836495825554915897077126135481972177507218655204393769657733908842681550228285135171965968488737715028920758271935050818880157676808019633403254916160189604135485708916013711357033246687451945666766457361412385842669060829323812974112469831258421665630333636082810573514079861108138763041516514709166579091041789403893946861367873687578742360096163639014889438107440315455560033713554896577785761667553351765817216105518737269376717662043823959760727973533887103550818269110365851431752955139837850050409400236820185698085416950178204136177884270533851119932234452694730559104215513442148400331719235320361370749656503194369385751578694684555673884755748521428117864229144802172120663908435802219176629111867908890025294296748107829935203001877376977307638631948093472792741122471996494490169970771873047946075828381300139565520724108510889946514284380442499889979515033021515583435719023400004779014509002653628671147343980450575344256954187833519982828885238439334418272694947662510966371018412768719851652559122283005622772410242144341407333394450990957297611421049289683425768530703382860041775945159664294220522995114292074282283969468787324475000123144539040387483847143555447692018344794341451823963182516577206417583799641582318638478745843145170638242411401243874346488825574623733386214452506465664798836632678406490815687600435996859133901280998458311763506730068484229884132600067015004776392632308986699863964032539774710723743850900439270245579161486891076646674040224054921180497730085888723593767872665353330475866873207438708849492508238208059393054504143593431150375699907603390766221806846585963042845246959234389851497073382218799845471156790762561869611362156446216460310615763857390505204390301892774371255536027388190657279960256493121385898544557963483126361506952047200392960396676705056150564020244423304550193905097135168895338409701803178864225307304657115585734245660947340998897150478777146864884601527085724843595853055628262607409520498171039391499891958522278485045911354152061746745201397656450826569089588818583707598537014487982395950156809742268066753096853060002864760826426435053592868319246844256202148374068954408187909559372435700027133298355294973075873109629947560510514736182873900157389004351577622536440154325620180165982009769908852916208749348804862191102962862619811295111489160046260175760042831447376535438839922564600348505483365216203441411009824631878818262156462723220600586805712714337712667098613850658177615166652087432928960620371000920658789298309059966987015397358715427144770538718443556113648676999646883879888221776441743159844970574310610262530807866553487443786068210654701035313714421779756620378669398271775296814868291654157976574842197408036583762909876313304340520071751576564009013145259233749476453685883502336965157622831954103630421536820084601509045387674631770316445652113412338014749190009792301067312575169535131331211119568754319347025324031222753997051269305933954304093229616354376870389195670095692014371220350552044021994053275887922472225043189222298814243020619644236839509345185408366924469278984469138286175290726491779617768246330540510968065415774333249851460202749302247535587088811978216490215474872714807724094845403134769247374445909414185046037203251232684181204523624688267461529522303714223250496782671081771923714578108793042853610034369896523616863089702851949407654026892352766410940061711662545743606138313556115030773131323683981714291249844641441658531367306131924609275784970657823472857338182493328556084131959700657439498879530441845448595810114709333212068357328464573532535641197926651567581290328485501429387810439188099472084217404738468760843759303776098070897281568325123481266458089168856132466445339497605175118331616121399619528826934118515663062543681578728745654067969647030717038097887666598192886050053142415824065775740396005828731089024684799566206965913342439617083007227605707120245083694457295273775192807642488114804521721541744201569362373610026441164265296555281415201768824196220668340611611506795489201567965006315692189738786382543525554153707804958256494588764788961979489439397139729196093163560529734131482659581681144705359788723323648466193473721399007167447752898117634892733794444420733383976238135531060617244815875026877032406999038527148148997237287841407736816776561918626517969889231249124012729777191276605218616056782840609175159952586347020883693988199820226291151883108179031688311146835543367529425595351769207462944043529947345308011750437444334290520570028833602542801074945913188004617637761977375312504179203947459903715797711365596279738928925512330931750006094720344046128146413506407807664470473273614876887372385020396861555276839549225977010902921274172303118296509520130666262991091720463440830546838787905344756827017459965442674719788456778213196393021335842154273390757672406600845410479176102365200397023614364285750102949463977004713732145378714477164080450829438091035683963031229160846456175884316989003113816686250327583764252246452563494581592946139389637371824043467173324069905565435876451664358234556822066156580528458406950720098053138510397852780434759454711410234131805450807128706314223371477203044484103884684178349625733735005779528914569333277118403280052320216784881852167477406063917387133232673426106874256201770467539680142188828095620423969442037208413615592356770320258190196161985098377838365423077997276763354594311243559020706607116547495680391335536017864445218832322851224039119653475908524899108608640182326499352970881116144270176411196593073676626281005062034108895807417339713943997578664360715491106072132725889315990308189021547909945479297875433784561858330782422192393463544436057967802708719604485630884127866907630123016408251563690506213605105643122522063472618963866764667663048302262924374391657596022225892871590895176790566129957166739827256675463560582435067753270629408995979947795468354869267833108816639813487059197117758544258624762067239874958472557684721835302219049099321658423311984237356005993627688472593708057782671972073962278826053279027317494007120838728263909542753236141042760971350133835790659524238517469777938018279850458963488243368520428854253673242045871802847997583045306215889215473032374833778085095120573114160630074113527225952171444250970120701226303957157618673024284403460410908857008023987572747826099397645858526998226743179607228703349845500521000733494773234567120982173839134499922031419422443394078517343489440899077243005708181217590964256567534746557212531190831524134090561679534354375074512542349687138374472544847742398246447152753388146693516543096526766671770441346818407697465261584824994219588560830099337200935958370494624753577272994742439840064001647120294700838651924436158208315794913168840263105334196142821850453420831509202438301631223674246108041308454674842922679832498679647779821377549882001618234173117932221003531326572119186584528901590289619937495698199733304832406608147938596404772805641327310654891359389863569740868410606815517724634551679182817082384784727976168823250738437071791356272615168993393460242364265273606070015385167232266682526582937099697499030137067163760583347215119009359830357743799582405801296284333083853713278628158727342463461500478294469684840218764908704611342610394338371880676812550090873620080202648151264743837865476464546746609753251854490137104735535697344799186014117169942148027038250788765982034428280261059619525575873773253893031961109309800602313853449171280023691411263188132465783427144639887722221924209599457323691961412074654773483778780267442084152180406542512545143958332723379815527622991598848540794743707140858951777687788225689719549155988154610961745525091286854197912876221498233040865885738810201306497417604933040336206950206004051835635817395712465091506136530281767678343625206552407952901409086796963620841815098352690389710534075359632615905745219889240512661709967748129986880972874136337210579551952963000104677379949530853874230659175040513132274450317622149223591456772218892181242831924294682035230085488741543182183965035886436386900795127951294330341582022505305577373933225268586957363050602950483383362591757353454717326212965075618114858831903525080513034671585731553669343986338464702661602854198351540006873080671662063594361188258388255860120277746159733388986765864890018532295980615345924181421945711789173886047079477409810557973433715922140481065016278916238122133806557963013636062799606047916174484101555365357064610179231131300979439552566692022578424914348462218944268903747259032255278019410238105584086567637775989695457324830645799782407497247994694755595648111025199539729517192084783164013099856677727565750009687251018107962358090155764691159414579147122512341997134344706961649819755662704917503254961096930582180325369141243935438111622367963147801275462587856167105995413790165553687758710406309465139235032853761197749760187358471604293240842623930877146592235689934089729922920364928545868875422783714057568238232069645880926324465028433791254009232693870878348551866332912760146196299210842166077488912708910244079975531413727575812855869064320770335256831930384073534477194239105725893219660356711630373997475337729213063842369234173048674015193349786118522143489465327485729924929770484598222982706608609806796277386216312607246467214504026912486805573824470063783135217392642183244437262131195201779318160610341264558927860366737470383321207231208909039007812813072152600326730522962422824895519968738311552130946298017737736869298963049160339920446700137303301172068115722603599125793702411838015701097930354631805316741854164327812796859302245931386219234913284492934907460537069263319347077889353641800738268637898637931278379445583434975900726781139237137106139220962107559677658303300975198751214108434136637155386693365825555529359217427623942424545756053420681357726523345705731173353225479601964641980914100924072210371192140807432588855633777510307871249199513203155264675027990671000702089070762062763185924951087699394756058162684961909329314060540067596027633924817320145335433658546773685734637369145667492443555873918306703835162335531032237929395234237027847509248874859131789274213362602520273281201366014632426918961366484913047948881756372440867909964788901899547082432074735441494059599460236105533763569809649202467778587032704041302388970816468456074838827140020835916823367269239975783531982821034857394437686591620999180306512173326977673285845142654228970185963005300766700147436093161475928649237629003709451159037396886363916488598392317524899436697809116799693282500485049333792594938885397741025961044693716655484417985030799153820887162998463395027501304088902275642221734071931699146294362711511918967509303195180037515143865296003054588326305853335448584166725881785593204032967966733486986761593925084655082699196626439111694394166383468612734402859297817971334422946994785399477650099358500045631506515886094526931368394514161117180346696203730402125629434948548017737745272550071938453928672169234156883321853718444183741691453167013177721639993963242532194708170974397340488634009455286517029373695804813462930291556453276807253200778278689278224193443437972109033701801818218969053464747289963139017181550593644698347625749067722567210791703311692634411967839772378494500166851414969811082424253713256120090096463217833311029170686175773036718980457806715899588940031758167830929080940213255765293152826439253689760159329144348144808941944912323247987103486339123959056696955579975406505870896556657046920448693355346145372787878776128901879689416614526035453996864289154646909086161682917087707381497697611156544852988352104829823540529512826586861637044914137505547193977599912086271289965891194880106484504793830787950471871440502047502205716556632319334839646564366862733116610721314102365788381617417791746929834626700511705452627497744369074055858834063664486247802466710232547140028298856697394830834236754994067898990692565572872953018923965380744929011497557743167933820688408399497100696140913506774675819047589043520288704269298068154389362008790800038870584853412310916509608625486821025498588529009847793473005395340118281988298345897339089165156928863863776950509536086439371793059793461607732841758303408124373613225178096935384053025097311700589283789005267958070953193678702219304179651666805399512664118073390384205719188820892713600811730614127750143496493339571422168791471574213759135221683054062265116439602905318032233085142997332602881182989638324102073678360330765820893580026045841217420073557668711273418544278077980421867030040860910035032000609612642093806519712290758267833211648140194998297732641761642618388696024204975392355934795061601597860532781039313061135116367410176858878060535290007135652309967601708437368167391476116350250384837531991964712993284007982931961689375193242626195480350639270003791831023532272895664518993283144717865332605084068108241746030824211311309946869586091876218032490555715319363041579245314836900909557987851667482005216414259402946542594888073342175241819348111263701579876375450705790101829768096844388321704168551444542303153465806948688330508374592037763345532418545562592273758082305774819113338496054622904136408212810242413680640026263369826531029155973364255765962924358286568496885769681499612008329366835536541709226558892503885545547188540994367942806304095337411019559319610333479858869379955919025434489895897953229540150741128824204664020317230156927284985242197275063858411819005696223339079545833389446237799592560766067803803330113457860567359177821318845615750266132217578479847556845445737279918349962268365460385820940567266269874486093167652323346866534823135732272740073129148050333511233480711758500532689405286918490981822345497877177953941492586411923675085035071603406710073838675621575676990313180425657668231889317998379501705993503173881896737899333212194235309194968236358753198393364376428858175495357117581462004267724415743533915368838713228686231971273617962565008370726134079123513618392581051321114876827852125960627747050294943875287954959738074388425446279198552995035685840025887943550562186317868661193130510470108490804692261774902658333105043028614472405566048825618376019456078862547992830452664568415563778610950396921928775548512152037007735812345384109532184833318160321830994665791768847936487272891731653743556314095835076981212078932094756332423961761840236572436454743023158580376540231760607385405607525256773177470991720580732262520933438690485864127564148518641965038501803015461239880178573254681808970047905697916304496005118805119520279433769883826963967503770994567472670032984343126053070322837042115539790018138708396637809844072053753769562531903998209695031837350217877480185585528835540070154238777144362072453638199690431373863584845997297909264422823481010399551860055683219850010276734080771623101475268590928049880544006318826906398427302731341179888886851364511208908559064474981363657132119038254799875474428422540552966262363851537743808741868783966207125372416541503511150120701101078236219472386344653706396330470041494038343844609132301652815304295210298311621416966770335152771322135792603855510462636086755771511557134152639704499715134055231728444464052401165031149371715072079727358891709097402182271302705519798813890657187622427047742781994210112650912112637867859276096338488930486305193407317573007988084467997556914195821581306684520536764227948005328806620902675648889181012527621863583323163475537925845314642780721294863861517551154289147122820258064310495588590786558352208040502926951272078530494301237516791429892406795753955415425224399613401516428431068160349155417870568457142800648115714482200274453894322483562610964971253891984960159003441450677827455046899904024189033969278825935440903133289200895244868325120163230199268066728948315389862346019307555282254903239492929485157947626994909082739845905113388793746573869209389039201627431158672806070352323877643432283361630917855189647173127916522605129297916921741921885617827423985590473932690689832222027154394758787132422358428274291167249321052281293776290127917761088096716126824697819271737232670947950715536977373046163066009262122871158029893951036133286720990949915098138891187123112567621035302941513754200153142658860478941856091800505900944000926310346407343178186488156874076145654115796399744687419391892405661355266191539048326205587504122865045511744272462765867820383097289935659393271387207677160888254337937283741429545066598638270390893891995415426970990438940745138899553905947067481119720277316665698947234000912184450863496185406437398551953666923132544447260049101251138998422419407613327303661831502844163698985818637569139745014371932562753469347388627040867371961078297821909343220600531736658749774884129345198835588065022391970862323923212150700155570223188621772342976132137371944171026072183708177950903247859790194932490704109278989666459977051538504913134430393753507964282380308863506584721346800512919123922828366681316602220970642773015330574988576088154907413007167607791437882071089639960801134344292211301054033261293583318271467374034451597802376352894498722763004676470036121713996673179177906142469180898423135340279046234259066761960155992320289473198378340055705824909640771991996844695958270778713775545214969900317845108097902694248552614743710384750652863032459175635825714675492931104534792351123259511135623473690438498056900392808091390080950982378456790231147086058526662092028337001088639016081110870616714528320899740599835735680375474134918971985158454107350802604363162014480718576617359607263249258579284054083560826084992978851735767267365488086615682939978379244937842331585171116401005436861137874565103748885543749113366972076581765493919097903886038593997285439298011293184610956044424750535390141974166691556896333233379573655116287931148798149186607179859908520695243272905954451097502217409296186625746697092065596970286836463204324854292126465257713130175983666350975492988237858218911318646127273601367197245804017122091855507737043777901954576159129830732551402021659396805244593615802155954180684710326047127867438563333815632726755438401630458107694266537830152146167739893784577087242787012261301171595291749602245086697309734820125781308275309097319613295677635697055383502532787518813583575630152073483717447190348050081981486279209538565239329621386393559607546813832996948812402162375879753171586356152673761348831101257308513038054940209245670926353385885833010163555345866683027141687381269197770602890530839280897556572742712640955341870021532177091631905967224256879367796665477278925268683044180179399901676228093814596273724123416102467132752721851971325413631340255693057785420159473666224875957244259854628179954667507547424570179900279210332798936956761237899251396767090582530562741635672454438765406333664992938570300031925564149540415585264104580853922057196919259783492043879139656139966212663007709530511194298282720935651773869710725593306076337066146823345903520671645844348305532810218369009059089909859088633894818767228645460993878822368864603091912795526414360533722510932112945889578974748903682370930395794655900918661066141631056947976425887997892983829121591886009953385150009176768553497444129279405405190183768372311021090130956428794024693492963825141058246396266932551980101825192941376861792408205550477515790029858721700133926111128014746765736606092055249517303588172331730415730680542739080075020007356903465583671515951374386053016086416953348975393065058342265092618306803681214947473576411500821869573074866480744386594255592484342756628216508872821812318601809852567546616691209503799295755838878342385246625656901887432872445959541951907473020264067031006847232568495852698145861200256331042068201850779057914000131615023850549626960801269649919476476801306184115295775643281680734743759497219974851955888890586463940547928743318874287173544961301791676211132319993738745951923113150442875548382310711257774563595142025620290780840156356640044996650215309127410930892241689339568846621095003430420080680541081080995189267310000978439870569494200345796807458905518499504029115428904779442590870275640662866768204822312189380088370339975634982416706499383695798808437867618552786022645086064537062732569511215275412340098318095583323054086382641084641066209842325347590863558200215761094452180748427149078552850551565087400113477132326441477287101930456888461893643615202345898940258393954614784104709820600984806278001810781698522259169315961578480175676495557673222350777889543611878700637234624502084520308209715554523674604397261187492973093231081876331353668813239959056203249909996856643083419400874112922951994026728702363464158992445707280413263686123616679237229691918824191749117781350797032107914408306328628006589393563428859837924761629572139672946954040878249403321458104349970992877901904455584752918816613673193971809831947522338849395863591313997680379989903744395282752865371689997872395534705844763402931810862934177909034354845537402762575602675415723436985761020277639477976959737979282791523971357425870057850969947142857827041398092231035755542082059387923966249021814235442137898381429184196879762893532866456507439442648457977258220041690010645672507509841257026576354501340050104985739922915275682777060900975157391729319642571572316593345754556422535210395805557141657269385098728554870719240670801359251492360612783897189757378352434659596920197257238438222084148921717084143115885007475700094818547480750799361432856682758452521052555679583101837707309331610511708424442427356555800860805297953120319680530425056413003357985571743582671178171647245468437520726123299551526678122138100149607817398848962695357357261271603263208048281930628618463595997487528983912533676261253709984081127872269037947674835526338885270317036166251400777505950281738659933614951544350300166448337581637692671873589055852333542487641033535900730550626049658448577351669865038990603707335886802209879479489038692197238588638949108567661465353797046307176320268877897499751063390384795012343939402718812049903993451900717631726727069437356469920329006318695228814641304471782376248064168413286144338214315324773781235834304334726002511325431802861546059398314137666944139006044746277193933843914013547667047111769773321270390447386950639221801115397763491611655705409894950868947187930919658760850687262035689446702356375273915245324257811559833611635704150282493554711779297354709501516421749105804661784692351050646064150234258219688579532195455681436559151537018083741626363614949194654776828211778355738871261467996637561765634681891475922298539100003260845804423027906062051755456574885726885090849645342111947164544749479864915977381944308997156535844122403694584837508770207120822900322871539325377065803457167790433447187229313201240197118531320521387096462118270145116841358750560828299202265584289873916822395131929154818503245790778200749276052464849625411065603669960256785539204971557900226725430742279778357996319070396494900232159758602352004004614850695283611585031315041538084202670904928083139924556294278796141101922479231892902049060635612882487159684302991539535328660079389052504044108007923908375899281868805762318648961908228440332199377102094310766231749943115585085723334230976711094273293226430579096728441919556170973651153444696453145963733434324674156105471063135137865028293637562008355242301660493654535597029606024472400951384170515869931039362360861381311007538641969613652898865300292593694100514189523182770645355018841920664136885447931427547667555868134950858434209309966563888062282324476516201793056709799764333902941677772452083506296568907081007185837542476034382338667584409775408263223369581374043180711635790254307101793671819533872450858929573940889425416970861259490384431085583608291441207122445842702967040915032004059218158093494045165016467425517989583290770137650573227848414458733528964180898228417033573696172266532324807877457807352481628061931688797948887036466950710447991461887531420201539753486406869488294971965038757527127670285770209694161563486107237603079706738868292981373241706087909019008382266597600278644190470441173520120212714979149405156872153425171891752193907167493882504824121704235124001391303894808541507743221988464242765831582425754628699811847629141804905119059593948892499414219696267953764088660986477874683174289602472518110375242705583451048309714231196052248478486883165237271031501176324140140915444371787315789180248315340354516655257677809092544273155109075737441756062054876056227187493849337350369430159323583623710221017529978226174031741919730573276489744695890274488076247392064921097105306372310645714148528614907017928574368767790555892889730402743081744741298456295140241972953149940980014884045125192558262297456153463190645717844733877012253603290229966257247099195131482715057234625218997469618392162067398686746427600863166090832730121971868950302721537562151912420980540260276386811087465138855439384672694358201126029992348688261662119199212737685812054825459848341178671190085111548133406632140336463309834033229989004285616575040676370070341430116661524644700543096673639060759657246443703547256744217122914404626652715762410423862559899069427192566355730943729429116232120206586934013359443886271162073513958869900037016454054465376819885192061407248534731867345323951392747495778513400861833296232605043821631235592640296274634801639068305423297284558696180193385420903825953088388129018185583923296213807611825381848305756007226788517030081331892439292582183119666897061559856764768761509777327403149250903328805452566632926628218636886680515469373424885982494079768570078097399780931090938168943624827098436703387641277180258505951596617416767095511683863821131536069707513102576185605642286860102198640530384223107658058453816697435235050158270180134441589840483613846186851909684733946943172163732565616965571787667330996482744291047757838515721837806158897276809041000708884929106584927142357289542604060210646410233961744529965232982035878521237967527336697828151324842925699791500561248754865776041450860142739199035850503045853247871200122971689627079198979715994053647636923622848570691188704680969056199704516111999481283425340054591427443831647477038274611094270922504022018441168151662917213926356912715623194569170317549115767173917231687013890336019319065933960018738477642814225436857611248204922125379297166667731088286988670641444381418371278191089539640947536338110408794243945287484567654115482383351270808944255523329348437714588971451992076327774329969067898626431665630085416323733959597197868589072062931880154406921898009642197549390782412976550899143748768818666759831562926902241980972155724126801404899990711739656414792514503976351045690823369425718199797332457274972086448276838380958999756433543913430889076379441945993075359777749872797270384291585214083328223664157812903051258745099968486877080657725989141978572026410646067482098430083239706788784802549323418232331594554999104192781650522132625865247639198509629605450534973864619341305964375679824705178395717663570039357099064873752577161254560458863990550191606947635134389131727019276091054189305072961245120619350776150975493679550289281905714117326770436791962195469759041682448755569509691748724302162903298691534515352977984055923463464335794221586138697908887724201467334465648606617241913926886164378981916470044428848753846411061029678415195914329571593951962644454671763859685870728243695690677807738944738632484811860977188926346667925976154182394623700247313976258417294360331629971150429298165458445515872450055982552306973113195140633512815346535439267689556737458415065060685824039334889987988729112439359505198685525157738869385718000927236501362757984471791089413564913732737980399348893684647055509389938931338987724428032433684469877779958071756028564876071993342354660282608709962002075579574496984232054981288366187302191758439040901415945925448376691232044252525227317544030973714449770170729084460529127004693057573523632459261666840984943439157595281230889643950129260483275239860340735893489885937519413046807410565364863710639171525217325741737308324936842164048981584733965715326982410420608083986041805489600796231762935932767475223242038507053319226891831142405737186053949484822193235885611280621914415026645958466731881367266552023437223016246575963914691354974420221789409989339349026330931960712791473681984619365262367623866619744864113042640145202298802979484260249447332689347625646792133287777521810154892984582358027040682296253973340647249926584802479089996857787565267901857190471052892080997702675382058123738088440832374473728633104449541338666064179501114495087339165803227296410984935441072076611556807359966282778262961768719737678218376478608211649111864364777112078053762081005432363151285630993994826854617452995774601342467529479448170090469731302351627223027903722957715172428826917099183071977525762076537967762811411078233628295863497367466289682858921571365769006701097202544726068669156529810559033598509501055183315596322943867025742760526011957507579656987279080413509686334974848397688269855703369138761961894528392062624061386777844838300848708312792158954408516598327277149031781873441938719578062328834730567438044015456421679128787703272314230285060360979506560623634682404887498634876974397834995388555684432069134765724863524004260205023315849623306638873407469929175628572125165025621093198333513689616348209576294127916101754596564267553145389146779170678729324709950800075050201161291630397909517482200677616159554368191301128941610703667828888020893514961718690667828846548569140421807551069057580076593001277125750321343798474107126926062655162628438899364012823649103460640356886575484752734387010443712513886344642890802445026785222322531622352511753878152974310876319852160756382542911656657201031648559617623018660670803178659016944538982396691443674909049686224004449158919920238544879939864989394202500620369917952994970845488565151993432459883196931061977227230986499175504922089761725409338805435129721951974920569430334680274126373686165256111592127193801405473994630048394005909714317947016204853882551314777513327985595087057128730487702503909315774362235318497406952624613020228995379879159782029395607030497976472381060860251501169087293986981444578471720910675640866343956644760837865579363915152099232356849687232316406912570584068790650361696802520244198338906730117015492259072106561893892198783777769123013943357698837358533162563228816673087016589730296210710671674740701242557227616864416766658257103524339712257847499503487671545355751214926394258409429013947665117856000049112385136743630507433623817803792730739897313295858949798185185081475511767886833682459519119828750275192698245534417475621316369320045122028279137636525294512844722959675269958889326767607654677027030374304871374982522222785222790100491865134979783434366855476642056818137126590417977211678153774091635019642578090401161206270685138259158928983180456575028434805696285743405736456513185006485332928490047848310909912890194453567759620485144905543110430080030028844165140239599745311068899207636119419980358188590201250552955114743206953020741072053175319697626960981253721674987695819739931835163698980050832729616612341081187371888732667774726963456531442778318080019305714483673855354467815638819974826508012917246236077607812412648147330545830349855282462277752788061597974244582438408828939361573321355728754527685422917294339615242243328465213618618249374623466966917387569775564218580107714919040576274114135250805206185686800623182199477805416339763878353510711826884238641858212377060896956427375855067191922736730016208634202127811731464683694072455777506418063599175325180635600268734246421266715149994193641862922041738987051338934535728789832997300908353775428908289153136573502382418676081628902654369662235188216734176287214722225054290926688697267705866091694534245261280872805588173259942598401634301049918764337041463389904093748453361749608251198539746198148012153208523514854093531701403907236623397509942054080280329982095641252579219199756849394420584851760612726458128418454934760608311819881532919674101303785956648407083611970874073272311393224405646162310428440929400059696051065711393361413774153175841409799853897885078876077713336731424462047150445093762895828742915589071526991136007290785454966624894445120087537873762024451785042298965652154054990098031293004917391795188349365446053193426711710755435570354049132412673487901854165907514437767431476833947412120153890961599208408558451661528668478056624670423949216962558727227779511355983954318669153754721035431007177791072417060519359966893467770595627115885620162272741010615783884431320593899738963034991609502623609442931234907814172597917685397689380634534813262162481362262713011118027010186518731684556347391183810920895362979274554618241813274236086837267859121031730166897393494502711177341358944331028396029557614753609715952891118001113053555081034347047245514014397826434637390889294429147378476767679072422975834215821604482623909719027844316526397632713563370941991526983006906941185438877605597825945650935629096684092648027170222027848482355073488469379115848614546153072064950011494858495534863337896016112173946891105187186502644358236571338744040259706189207319708897485835156215419133210916612328326900974784035413740900337760035212636960190032727640542059127243478942385348816744255404759134299783215898112317257105766058342573935347680517624160079376364607347400113266190491846414356727608195886431711464206500086973475025465257894106175728735343312503228272424169473549127559897015010373291587664344973987431134870302923452098201432575426149040250141711282326402845339194987876373399666293218576841379738142969126896588299503336937786832665735154330364371421233836289775514694055035821496967956386753634205265285697554740013117635575863048624029341939553494227831909876138137512672488767951896556572227077201792817792110438395527094918003050251449766585274043840944715020644960870872474337671881579653183588627145412476439288550748899367283134508894990229915179225394464860154830292669402813619902129241955741839247883759460900232623888591097582785381856006399300280264802818087441885381836722690494110056425274848284487624608357469329447387760736238948871609946923343828535299227562924631964680609023718299466747024713526482528239713389098273519026823540530666051888864652161004001871631898594182155851619919815989808547987979276683051433631950347588140171507070006278320929659080515862508398028407174176336977477659624704139143350883230520914581449819683825961694692263629865326676820494060376729028865448584092647722557245622271590365393029009917233369221397619165499191459849789111194034165294939148076502844053154312590402721660482045853922381704351842078737133228352514037958940409415594251675353694245835926989905608209081797988165371256774520315573263068506816430256548246726833597295923347117174703297700767653667817770893393805987788068237398274720896415176184022832768491489283702103564160475338545260404144646995888277230873312900466097299368838516042411409328386552476803145318524107000874258467242129491716309067133086072639415561666177975055147825636228516042399767814194089960388726281245765716194678146829318332720408083511394734884481423076233077901797750875837218422085559831389950661555127969151140417817594421286489693697122387942363329224455733931427649675704288146944020893201324413380985374134027038560254038275445545632160246743699520114835413099781967500875301386584960609305130638499448890698102606010725784174975595731918722702752756275785581750284306380933972073139231511157997266918407541378646194748926977154946905537101287859089001554213297717667786903216137175701055137796491179924553324790237396450743225600602440814827846228982951815377968111495006478953446313236948122512408930920710553948018083744217456638399719240291054221877946183932634657523730968259997543030669264348960860864389404790637272471718158606166471987837779035784010860937395351635403613823390558206152034928210173808855724323127763036897697553648070870903015807272779832784520140713220079899297466664608295272907219255361536130958693832637554204744274330120667166965546587487642494246839400315355697424024257429017895305356246817995872702971652995319956693165788842606360865965278799872320301075810094732821908619033611911609355999879183485758331588370603267524878999837377893696182561788089430119818982731264232603259076134975492381807331377462957771477462174275949637186373023314836459396906578257264019847726394656360799791494104728191907102514107907783539405772642927111124639853662125993143946929525752709623048417695586771813189062572800062633802109512220561260145720403468440271190564618858770206837439049412605265416743944395646636920761496234471527009306881132313391433488163340673263308884997688477549984310875934844349061087264935480381258375815566030826294638669228499980217186783471613486656800199339552343832341864425281069640276312657428083602014842738636960362103940021486485072514548070918237217109903178437797854223891451810550134966467080710998661978965297478764990500028189273007496035248832448174472119765562106003789547681524081780940445608666235341941033990108061157881883813854409650289083715129073987962269910393747173321046480226998308898137745679420578486653518852978516936662140628260205001863449105638526239683749230676996951652903609408096413434419391461119630220616545496456837034607810142061718898716413853446128833127747358216240414453190809320320012374878974952608328979226422115785932013931590852537263231319831001345774403550568542933189911824418267630478296530849073592326859643501223809739110240535890611972562026462798160873457309234773948157799078367300409756985237841028514273854102357339688885507674430844000301732463648683888126207374839104068048091227303517604666087525561607276025366794556051825499922682878870665287962878557422398738452427772630363124920454049918295096778205810846370022273215690895657009053188518480549965185450631572164605659871818108871439010887614932161238824471629790256801242508625692598354787173959840559224496097089973373112401476820731195556225334643719965406213939229196131890759371911080368854639957624719695469087330373250303025188146977546982264149034707857853478024628207021879575506976016867310894364662855610124893712438070507979441241707221623303214502520152121654507291505680326256581923673150618380859355024195588130782817440635306234954042716639952681526895284106290602951184415154496585259364713823286858630718827447064880978293463385500053218876223321545789056335166305781000608175302904972188066113859736439544249169900014077937012724778247222480323019227136454342838506689152949059401952986814598896591541590378330911609321105352760339007357035821340530282388977568278800393455105843015615816433103205778199886573743204770373219756455247558868528195631930884277731357224700718429459895276333313632315667898921159217110418015049657452826602592105427744045855540422232727709602992673931733636819080191284103282966887734962366024387389808243247293622949595557835635213662587426406918185224307816724043963711605948442422292109147360568744819441019419996186175166388231647601479117032249956134191271759440654336352994633613603292900359349820140421951128386704178959593309636638256829907160018826290123397684629630354499240427306233451980005057612384755953062004478975035750143140324588561265330516499446081173583675699271057072173908057885621953118575799327242096141602166322012142853528923393802212776643775756189394784792305159957988189484506828998482179092182198536910896688522687055681885024605309296914513951381930313447044128878698188894839918991511030116820699605774104666353582979547098774836067023291342723164339464439905574192775672424616164661604714297208771711751663534042475394128239277997073372209828606203997078337014407155711702360902642573428158197326004117449028865937603001037711675213519200752223378731999706741480749255653143053450743599347620074665197226297741544749452752040572467720325132811194899873031896881051704256034821768608673850368135176501814871503562829940066563060809257984954433192040665324665032748593353570967314759114986855408989875988652335957618606464557942039137469730398770090143475309683380324951152562240160396526625725888335910332161790665642331528093590655990953178245812637344270786938229005975844222645582844654897721685716140441443447070303451661297148566467124691266951253237382748534423564809616702239802189506099925655110841197598699281767103631283551729164485832444211244433533331472193146384042381466337322502701279669836207196541148692418510585254077887705919210794395527783683322908338458070110169082139385697452843084462890893215707008498997953253647504763313260003459219650518312880640512314506393656247559660089403575570038666314486850067509705652936620561648672479253123891958466544269628209057614803795101045186067756760764747088692153013285869432753599387851366841059307891515732718013485419513509101862988448574669512789060481151123192445370213996685090737102263641171674073383572286385559024790854635028275352374464919782445537617392702431335850631858728496024083323267929034455631670120532735024477245369169212756199777704333271590546169026496371836716908553319600311684773494830381310827574426831125846325156670402911482262343765752994082550151994513292377740572280728351796461738904814175729987510590373587529330772381911691587955753653108156662503980455458085080333364425743340319131814586538579125394130887500919082032602282033962860238291539029549481390352584126826818910409847927464057628931353352911148071354700851802618318972618402347305130661829957202297065163884970084369102720682160718436739818219642759943912820712331980829270025234403171480302492015244888588613311984179730826415326698589074922423133584678702300324464370350653869260489503804117051598051200783937477597713672123669047404860496166876561547353405123858899466393520757707014114365204906698469994795663578646694875924307903158583336604591986606034434366212050405359169939527905884538555570147501341995698312517789922642503918320252254338376061686990895874156870082101793631029647168975115213893409904175928783267206361572757611708839657620472325316474205020098393132081777538693533376082459790172655150788459412764277456510671733806030928300277185054636435520586702367500923328812420064750904933750933709990609215755230207898799081998297250587467869469758619256988463749858823937291662964921281098861039803009560631004609954791459464762461233913766426123548522098347696999200354225098148771912965648153397078400781825849096411645370793096136629322606866501123940006170463188486368970481913840669917005388875564394512570614092489537878882581254701621510307533725163219072848045687113159073049346352959063121320459710747397034007691567431051162247602249129828976236556605844447681917972851945245388447334558759054772992276257619711446190920504883987916613755678628559648863611802077685216687691761768990938196141635181446607601025243689301194686752524847083466011748227200046884923181125641984776299456787474431454862381894837860032323271112372729660413268765396949632622099266932597550785662443041168297600939803467607497147600669454645009929039205579115593681491316333086239350779777764027850984045123221139249353507846368971495370580053534459623047148175259848838084057363105737486969890293287001670532304901216374513871923346497627626632558235703054957141038205429864581390895338736964647279171737547411416693303422217482244211273966723987371996843237104287931892829620237731954647624458821741906828187052306961468520549518498402982709154849832352089059147133445521953180005603487646170201109580065488135984862342326199680129376540830478891717847489948056817263108872734967090026970187672013259676816343144311485995728041224457631217923190828164331524016982014090431749257732579419702539565571876261017088774596954243123413185905146326767127192425099753764370273603449327073931887029319782631308857047687886223407531721303693897603008797777121842711018271301064928406814572599338977464372775410803504302878559114640317466658335452420543616846622447000095481242284973837652565018963524609172821314117279344403438661208440208640677438359360228757225893816708021192458139952741717860845700770915948084346155352726747279620853374591864033246568017719115477323416940756324678307213476550449456578206437006542841244604938944942963900685706080335516733710191441539182451230642687812079976954851665485005954891747362356181148344122822911161266470686943555548745893621055724930783569583442725328445915625589271327074669712663440638969962253636766985879544005701517352490412565423290089879421509174459236664675648815193047361801293183161322433986044638648108298604783872699409801032173721742389955906537427882783633167998825452741343094725654926129120915744463146972247241244553140017178486045129930281443161792847573000840137912704198756323019140924842592898823727371533447484049060299502308186034090564753662157595487694698835716001526467055831646589733537885235145445751481710877652478355049390364053045737604206260613624929910132483013426328691316735369745916027389762935269964453386473747672503402015390677734568539047880020119829194447976279845356564909925953330940860761070241113867136151555265770134330786931062105633057541452960912428775260839145719792155868543427222941327607223124167240728065047555955481413454101590671426583255868771428509686278450407888193074231217700172291129122984568958599576729498694882870258085185187271552626312785470603852370766339346398915819715482021294694823409659097868522466153594548566508481641979183280160656085308128992397507139531546639413137318946858118393093100298009956985531175087948776160474827581343711076226995477334077159439023540755583983528387135091030074130045499630324907564875542286042423773112986636915591651902731768805632944057388448651968287935929514356656623945136422694074402449913489644508674462966337870016781335966889971506811906465293801561176073963276097887333365138755440797208632892173101042691406501927313908432361623127042900291497572803024270026500155430136021000450382320574084040006686582371487695610634410436913015978743534624884295872484082243090822511321592227128835257014447878906711096851550162761182072278476510102004536561219647408823841663300868114749160067770778474023155928239280294044343506495924593527163307372295157739425847002372751437085788469431335689162108965142972894230291165015244245711874688517368291513509099223234549325186720061494049473043345286286557064577160764021829500615769032022407219411404468635783023828166650130021497176805230047080760767632919627664929806969556671607145863826011748043627963638767979692969505711214693516183345292219297464405373436944614392654222603028807817015747365276830087499577971727115986292391444569926585466929737699505656500327239938205219096228659832249885452821861866664384038239129859674718110783785982962880074595933228037081827147502832104016105622476955620006810009919804061823461319308313875145318050455326453926181219206599834303311687388656198893169900355018138175619870133144209870802786379537553208708570552807879266150063904627113448402545897492961972438321229095742828895793677440699998710314800212776755115263388062412640319164853549439754090346186945599757967058890696367467878625453118053280186945033062561842845863902898443878372296340148156884620374889364662283860966223079089851401204049415025679761805812736355228482301554227180274596439223364494837133266886338641078970973892644964365739859828964926324303428936561705421062667994087322478150463672932372293253457997112022023527105977845915354477861029631465207898535655738891498010938972768456821463909961709084097922505422251818813918435023581313419053431784631150357638519733827975570790577873331906183615358551106726998533526948299416092518392363090414587651345347697333684912163135455324050005591357026564802762564174997172479337448076497015641356151287544081362378046030956899028567816128649692949633035442640640804426950382974873997762941422170812528348637247447874032873045220749476041510533744738574566698128484140244675014603206122619281858284058552190401898551811454119639215934938714798429713946384850027101828048415602751730841699455662322403412970012248506370352825265469386202848266739356560893665338976613289435962982488880605709622603241377135366030624748907844042204385691067294552886163911421629485572905350634877427917831077511990688616353771459494883686491623182351798493212787413523528694864247515009762337743008591206563606008572174951077484395589352688515610403497354903237129972854352481632415794249575843868024766946469311305822781241787033600843537180382123444108545310260279100488768660890146895671880240322561337043921025592684772239727072722018428558195463440503327744189399908405069620041776456437555722974587095624721282555902100655067896272007997059134250778704267458692424776762576435612206488680322803738682810448119883644192269269244125607387263543818992450316235625712563687778050151930857483821517108783721426759860137119609664064246705564666983722246407056105458050334345893176328479964402740895812455505615950158000435442740718363014495951532381264294257243382723017210413809989592919673843505922484901395357637005670226480515430853641510274526513098491494595119954568559951653525263166668499323798583534054139193442548835574031051959416262628408635365746080855890774772195870836029475605288770609364532737541469078316498709202007265723842900132986399930196134569387857512909047643131053733728172549756899388848001364910411158562880053986393528797425831037400093672627402444657976708321469451437875519077447542678117992592379094738786387140467083905266385369084386013396763104097452889358155446430469348571976308913859702330200582089085772517896877303617563698346669927209876499045022768675839146963828149168332967377866732676274253527596642535359244800626321528038645577938852385231424837543060817082256043623155447655328495464316162249538769756087855138188263971461365579205496227398976484316932950283588217442332940766003751626047424228811358426965141076242620184721248769016933550183427856316975148575298349165979283318428304508558429028945683494111316715520644286816514449972272297439168298475154203960263635425620157134284749646869429550204048321674715376240905885396572281445002331031974619147327876267681283435483815988983095383251181137989021015170434114229379048741038875568896865410744264430539168478120933796535706226528031947020500262795339160002901013629501116355718972089548749819686823876291207592126168598410944064055212812121362337686780164719982710857612222197459711250527984962999701341354509460688786943831184058762518116078013075760986519683531896370045174510262395490723293644276159639736305406027431672426885908529970561767097712378670636853133427597264126587119513290886456922526386408738092612015007197123863789113185570749591512735682274208927035697423810668475669183457606941197909731179681970454431518478705667623095714555560994785651906230041333392882730311239890534682009363647557364914941314369270017407455569170191339615446744631609788634811540761882693967461405581653865531825952135727138164094712390969964609767065989008437680707198424769541892721970489694465432862255732504684787154674588986139425518369007356901965159537189784470376119531667453924916167350131192301667177205003365973213357788951044290742059011449989291187622813615207745645579595122368554964276956176954255716712325617379016579101687163897968526700426048525962433803348961832296691529990250973824728106639870991681491272081141378322077552160259658806160687170206550087801574419690806773109017889586944293753753721042906035288365527878818741182748305110927438418374104338551475899382723912484642304957875997927257866702502296515674144698743556574097060133267281022823436058582107952715395826627810623308152948089756431086813418168514542849467311510962318109101362743084337362545178197760827988499867810610590845817734015864629554357582794296238025198093199280975639334560916936982184457918081017346182109797553607160240256465885465621050697422986780696373235822516570202200058347725948588293732611566229922417842305407750428613857880486078670994514919462912360025298274907361109638504583814645316324796565350721060432133798550010100246004395723748009652667884610477662535435192940944204089297509254932578848599726233779655935246564242965398381165212089489750486791400105981506392537189245128490008387600301121008807412425241656066104618213668348790488907379982350779863746737069984961502705018111980592169031409382856891645053587086638794645660715577906841235263622373815522392316535360178783620958933179704596594582458632240227627151295159260788139344350302116801534953472147282512088164417453185671697378803408761798648384066501345360523124861978281059585752907956685537441058908581300448994268981141340895176683934174364871242755491835318608729796441198666593164948677927089568009842018087921410135650919962657246091045108597755482289259802351173502467666420226040748254328780740879446941844573438977330958118833640559006629324102583920330631667325640008539718121922415499736989039319449252008461611288212245522990685547455092431838216928313715415262563490844720386505555966005576492226000393028491893536634375348711915473457960608190405829692403980189988619846054791238038089855437300355272800537961738056999774100795746331819061743894119922568198882818044727207137954105670018989138699701408787744216948918109752527283143264614318295961624460582879569976853786655277663595510216292981155829085100953258809144270690135361032480660543791979722917322607149523082180040414152657394331126578536824323539397334903624396623342418799619818600427053396018493787263640691500436610824808559770877489090869826296411773827926822313701516731947728244313631136466339693527469042599667197645194059365289307448411635509808526808209567422848714952988361691297774230953321797632516967122524449692040080739034901972258086806334970156332455051360827397261506746818665353019962419399097157316488554574944725029373196901228034966950697544764889469334794871336648736683623859897960507665334010442350562608519235940302948271422056819603341270330638001693145542586132891841565485272955980842332932715631403080525595245732055581514815398998164558265744609811968377805149596694137803105780894413598883679834819414106237994026787792498545365397664792048390826799532236628798733728359545340901443087542598543119913319464619201308465445611054867925278882814198481783163050072322734351399577499452580332355921135986163992014239888208524077831475811947259771070557308170790661614687245916995862359578016956562167364156005566452112002987345046402774811902678796324146206602188295074869901432763628505107363569675880904070227301402486759132870368696419261538284017066089262592124473910863289830457640844111091927482719866437295321834555785731775919977745427929175363471786132007960745359478703579476001118827869192825797384564473814014510467302164933258562836465175941761085101024898193310262203454848658087357706169505663223975987158209970098103430847917113614752724030884753909370830666585207719169056589102246371218893376333392800305245207566908490202230664099879927414007304168783109656024762065634711718657129159448127487776163404211123447231543149034279458681119164290403358228439039194056306800570656550746277699376429292651412961465619822855621265417203627541085985947011704728590490961795957079362120246119414616471476985022456816414701223536232923295556390935238191411742667021966786755293997209891346659132724591715553860795908318540506995023060805928285748471958181350523326799198102610103483653717121598716400028623255533130021423962230134754398972668516907746996377197792511332542094934925852079315138669844622821819214116680006781928415701288423117237884930243051171489569721050057474354462768794144076016648444332396407481082776144857230726341685990651268181602924282674967833901980846929295635523732340800575548596709012598370265437642950617480662523457685225520358258663686916660733644198619983115984446444239587466475932081713132119352222599635063484023018327136284017616042881485392413402545304681753849049447060432418312252470768609344814665263662206227687840446373865204166760975008862195860846085502399074002816431689113067052131823002381210094337977306764325710638229619962169906694923621166433648591170526659760558117587827243957276517245781626417884417727186520528596640114614880311905855635109658814923555417741159564106543948272428230664491745071205702955706429946250375969661270333834509525257948522429128298730183743323579810344513938934288370733240650454602767198704525803562876768886513497389064127719858680834033608670926061603192494109545082172366222333905741867981245551327032297777878872645217175826476481711296817724407433368300918012428188407179960875545558903252681207132613375455847887099508418141901224034114216194244404263401654132501135052221193310640489749411140301137441406210938458609894943431524060733629190685945697599957161784296286017911369623571680138354274450017812608306955808236561826323714503430036300643316793085678925510810946967399105717064403714362390802252377667546848293676878795180321886505243674477359122218383806598936907422796817824058615384830395610907613598497968202643651047524407699848043736777672434784669965318382022871520292477276319591033658319999152517574942215633300614316420963398372774779445811655180074818910077384863437652776575107411878154408804457784165221040958919286410734406227249455679257586402354534783638446696972671184050726188058835353119366484645407889581440869781500456436155324661908814764044328035155471813622137352320292533366034092075619601785810728342168669702288884759309478541411311747708627665425770358088444433098582697883812213182032433955366704279133624004228502310940589009351232945779864904489933436103870255955622007912074148304862678622416179959937393969624709482835000327038596250191383231688873946914767382013881743910939966733750713298783538107072150634013651423893358795096719017354245557731946215254080199443750081009643645331381036155280705029328630459832243810127822499854484698984999090979091373368991857486207605682182853669756046494848605909879685468755591841099959632017826745835239832158393028344961554675831391133631305026353744086461513737323195631935034279447877484089038075344193010871821320497443507295462884783537636979286666318930018372999860533310546980681820360349791632355955626789304827894102585534213975134375891257063219536277002274566055230849391321553867174117266601519325696258540596729080906045911135190092731180327162602235300918305988021220452867780179418007884982548122835559839620669125144438916483353752803764599507407585356126471560692042864759939611534736684605975802967228231960327124854360429900485085986305704339040749852688682088338910857084959879860000536235070585044977100473898249803263688988827456391380324998461920104700040268312456441179391322040567120390680336328665982398737557842482998965795444456072173687796290948515818464659512063482366439170360358348631741847916742079491668460343067003021835999823943619365259407728381518624183569449776266640852741867080468035073478100931864748785167702987462437033060878836698040703789794607273333537601657289391045565468892981118232392816494375599634873924575167266727491925424387305254112462348930193836672999751162961370667325856276166681103047225280469116754743559871544464511893533597813307217120548014554486593169807003087922764128280436329633645958182733929241727292742432420686331363294613989086492758045181357881246049576041064234578586176769744291656395228433405384520389313810854169640974982159089923694652842808079305355364696476107920310681371097572610639384063600073470477343172726898116437185457070820344181827486481792814874576548017908635887085887871579431330633154976723009359027873470197796926684602535159799415125831318028903194105694236999598363752449883333951772700624140625383830872701241050526369842222089129973770379967901736244672314806016284841394262243592787936187207529543046990200039190054279881163666138867986261303159220821091574679851913187729450396256203526264559944803124355631665233815947321816577990781118098507643891746962843976223994205640803477493402056571132411780474856266147120511948637181848953767127978384081274023984986029242680058369423034378994687675532513911394913751214440625314374601152774128864721938351696062324703396499282546432937534876246670032584271967631550503058770598366393878368930522782115739327383240253636558879961590573983835313215880977530880617038097916937542093943687206442025727716297758748044930533666476133279485740309118585815264700492726605919351313526949436144532522504752852606216467069800308847403301695993755747433047267616432331605885558520704601619735374600275263812559806818622622752443930784746922908317454084325298132115865205788039306586233494547494649074594788259301076349163750092675920165300278526881823213333441732650536781883684124013191518236926628676870902240086527264339017506105284144983128279252176123404841353587098161369196141647049520160449261106264977326370275032405373784027775054035930909134740683449700727734905755416360861695579030509810155333329776664300692980519208876362021997921741805311995747424657505325864734026555687275055728910704264714912613596680567385691293174889820924841391666251276246810546489367995515176431144461261586417287877422884713505557191219665417209529416946278417873484621799790422064126453575075129099101725016886377364108820614901599490719018662948551387599621639491315318110289907223728297410972272002498044089624429467427601276153201374690270090412141828100231638043346767984775687795954995865541557014346194720884857453701493051336485418147018293007483102559443751861418814781825985440505020632300955013410627598763554401754583552584541625856797450711931524531594843552063745187262813310617906952956858373762238413411747196488720980012205629537488328504177870167036483969804986825591935681908094946624751991947257918108032225243842888754871390787508612326249931868742686794825867780260549945016258777756532069159703586432315351840555151620828761091278546763583199886624446530448104688940010447984153044832436924447746153028802744895616010401390501993679817891206305684983901438033167353293875776329619864587915433193216581721178136527217783590750862874605385323921777569754333225985191923048114889191204980577660640135751902886850325842274518788708974034196801700524499343768621311593599385567897193795838886375463195417155733020319105868355992426552630972821587228871852302228998513361688339183833647627481385910498138392624443996886870870408888507168570976075701870743818861647743777652097769311914046584168384624506668625365346954247900530860394041785344429994865949982528127938279502243671941709668687777234741470217042863040622825629360131995738952688013802588808612399708975852454811278119241438228457650556016367115741401418029383065130908449696451206614217406989992397953437622127925430179627572819435268007641197489141107017780049665900060248122970558640828810643811365232302036661002537946568225206524298901018149120053268602120517598554261066844689590392610504943981743522172770751569934744929063992666655401666348712714312509082102854151754516854496342518746768603354147230026531716847296419982623586428237446273586663254638873186169820243912060171593938053965579232532697231037593220860122856376982812042657611687090906111030111375744150542904214968364170838617666934730974797475408497650933720812914507818628459377675889436745880738496854601696396239567263653251634720265696590777221001710434972088635897165557735650196146923484079074818173553880640699892101335965771413118075580047733074384529110965134760232351910719227192615635322585239229401325162869780974756886175624274632039354202516134729432049407046884193386631782046276015873358707361228520912127801687149552045656478715096573245254361554477437012275080315248719044015093496029718417045299381985031733330014742939913521492026348000325356378160580333049387961514308386597614468889648854323369642653174810205562742788491512644947386235477253356148434546627187981483770630114151702302317488543680595900548953620047592510463352010819623668992573427906370124339075411691746115350817744783987671872960654948552916621705221186501953639742128204384810163113498131663352220327675724658571045280296458299103950978322837847540814504938245630449190001288909675460747568352892653645102473269993975418947598326639283049954502538344159722760553478037867944202843618752612738303771933354767205667448403813216765793405514664529146729234721716880062586567248734220828836776585303326518018709721894140805795420334803398027871203723411947032607107971169413559410206944347053942036765549327611092284798799865841303089125088020542587359529929243720020352135735294475172630340024372942211468726362676170725906314289537111290168346631893661055996824191128961048525545823309583214181869839931232944417615618086709049408170839082738718868762231292422286389170492111267775342387491112120566047452443760580185439861060175359515305629231882688728808803056990816117190074867168402224355385893800355312374392612730681854415950930406331995312053093700513845804497663828054966528294537515518865096620275444291657913581594671431228603167255008375418606864945096868592814269730677322861700475003149305480964604781283833333621869039167428948209353668987332077857776670604626057474869660512663168030821714772643150021092862259780549865957236762217136960732825834202743804264224804252849736642480841763226722328403131106679229227947083640765992620295852448155339427332860090161350115258488248493794122010529700908774256556943391247084879629577612643842974181120014885138447667404590383700848663362895242409354094025279604299372502238222427527309933757519287395682234920367200559760492929077100723372756695506434736088105166513236335261353405729439524767091929814301179580416274829279781704385729389059864850599018020195855469989116718657056691967955876893928213821647424714317443167403406759907579765492554146622045583176817463022877434647642806183010412054506765257065252973251463930331539153402713557005964967643461912331484960607373077851655564034440477465807459427047342672326501784206676882274718716599697999924197844956806944958945735167640888445234052771971092502163525257514162018761204368275828491636323044321487129491839281239392994209769368235359073459885969167152804589610863526054067994046888453569407573129414009792177516425640968977872159026316123484526677529301876256721482035518020925705559003400032445068284115737491560750529720646486413694771381508625163264278383844590311486836834949934421771975146577246946057152524834720528301767288774462950687636469114094052081666513530276782083134112203283539688912139297268590853796946507500748769984579354171425277441074411633178910136195206494813381379889656012225683724075027141064636852088734547972845319587419146583553019385186443705749539817603466615402875490964280373102734455083494548065583690398961996313049337105841347740955441680820730706691434357872824597812757394047524104112169434846273117749847394486648115853253410849581236721451442708781421646487863481012763286278500820943810145859888296104659027087051478570153586250275549145262783982708982371646461472625856818823495194875058878567411992599728569206304890869720580921241212326092562218689104314734669295435317867177891166714337002035600582461673529472745241337935641648620906308175331943425114002265557830408813503156122043224492635000328468995568829717117517622198681482377167048713532028072314141167513471051922175217753607543687576159053693281235430925238294095923884716765337215803515633278827618495650311586501686878171147715980354961594607277436661133722042571471903220402757003884399362185626456413039983943553773723852436455897428831210227042372616333570527509038140062215852710615631274167124540746636927779774482751259108631469916341307180396864060253041527823459060660836311259400782493409721902822888263375931970082184796858763649764546171582315674104601627014197259234154888471864589151378443779244477528107872409972113304106447465082300072597269615554007788785652253821868688561510713708955033080378973685505932499949195433341978038590070104668443087932456447676063673231321828334784714304678926636117950816101623988786202733770102157638686724912303061586856545208489264809657980019656500504386417967957697227862902698402516259371051567019638080470244868537353162512559822940707367234449033036947582124217215046073249925052307549644880787191285023440621495996859222940361373483467165404599041377048979651779623850387432366841043128528600230807667215466752099885176392830642698278845391084387351435294719988348284044475184942313554942013650307252386046769402580835196309941301460353253113343584848373309003951141912395049417987032076941862641761731762447068645197738092329917984014505844145311015718285243832329741740175602582912262377210211919651830395014362683922593249167258862385807472310169743851231343020423040501513982635069549130461012026634966741719209432315870106111927880837487739811035963563588078316204153874511092879870709258989685133833358402521176922825623934664677327587053910494452068344628393169676102334377165661327050352745459496750407824561496134201623029098202702848907670268777821533214351274764567047944419182871279289114788346953449915652540645588660296792887588040479114871957241984851411329517255058255458377730323263307489018290341535126180800668260255895599769046576979095724879241237274752172419641892269940212096383022257537039796929635127558660855922158152131430492096805786447043935614410546376759114309961187946428074653187862816592826914958245393984946897414536523897954810869806892531014415668108390637233432740006248517853130659235336034826103164185193273587178563598084761480776053906102527791744883046680656126728609762273148455015959112519362736730402836278486062277581126351360876198860163755861575385173031851059958322291446641981525295156043237627246653999108602024192264604768995024755816702472859720407578955846113585547154516348915070855489343530318853511503812361416474317141979785108824912227244547635417134246258713254355006644607460319100541857074522569067580777172440626704104976067160976781601285638547727941964866574447418050300362013916573597764507941983255409719155255672529021624799748910305186954014166615361321862766628799706409263936345138799372315435179418682434086905420168217060915004680003670791170238370218726262932522080626383522654665082022225953067435471034512390876990485339802116303883318608310323640017136108428928850289579575967458772780286668791805048040173593538001352262284431696140069974005686452450726951332507482689475317492647290205428706436959058215328977334656041495561515003528780240385715074725381817025864115811243764184440205911105006874958761124816386185301410948503980763519372076965269231058870193124892445733122032673040294892918732017851722035135111262433192166398371376041239451386570537993593871157505469538168879251105722536661555856427555710576250212069741495035046167982777386300565706597051032424858984622369885745152156737773852064913444270913595931160292707208890768452260212393726726906040931227110230157956028099566532317827163985231458590154441629842744165005510041286526511335632448611597949457870901725602619570885147598613782575279795745057767589437607744379606539455252307767146682483931508594947169262345842179442863977974392037967402412557410638622514244316833047362653594870188999936280771157032917312571235575855422317573710187335528706808979439039235812320171250818739393822362514669312578072357992823874848485374220334913917157860858378164744470718942061287570924846492174098239237648814489942110910861411123345801127218320676738527321247147255281717643459283541127896285720795294150490376129293400281734083484946738405418381002541870466380300609431074946875853664231341262163568959733994151689363314662686603454254354108111682313125648677155986123521613568258486063791380310716712080758189234024003620592047257373936099008780193782704542109918834086945955512476851067111052613747345626310071201996298031053385735705001983237942069138143881339243543866336147921206372319469293188185372256156086704054619304440275156072227467726661303641028294700218550157282182031597002765678366445428249408867201788809312263222896192579114881782559025240515041287285426271898106067809791984145501038757220971633587355082098607650570319905459432846298751419257109741466910456090654761801020510429767255124341336181713567133657961249094187242627459252313722951643708701597844991087930960647978205679978872358223419547280640582759053121337538840642110540980617589996123877796418489657930375153174733380695186710690946326332410849015764358543750913543228799928287030658261936587199635810675008276437388237103864141268789574005096080734103526198287231353163319006769450413023181209683438774160136975535908341251413957958936156152205777551399527428270215755707296839202724205463900222756925021409834939998960594036904753966267987523155129612630845298102777166980277684165546014862033372668701333860882206359679324173048524550000424472946485670923630856432605189932766654826010600929664175420892527659479356821756677577269590311650452768849655775850393240525635703441600299600976949558091022203978340114813828011300128648794909509861745932045793807399840787173207631336283134875935967991348360767475306785071509142437034935434240186704812542806712580855347931440843224466244052211457901466653113617043719183835056970254409181553220428810126894012508178256116929833432653772196474787610172938751343173479281571890732298111128444272583903483197734254289121449675963959370928362007091261154176557715670124532518629404475777452561030053825323485283412620636795605315690220295052128191817277895032551629969205955776350343710241292834573866517621647951396840436299124623056512563441355824922248664502984938743746964539795814878963417417620934568806744017663908484383932466686952300177522216077376980772617964141832994057873502990665331961197807980287787330578436693220046891987142815272284850536039142404554095898885283454228482679500260727844729250313225841441563382017932554793544865396263213018261985929856992142431769698362476792103975852887391801807031681779625110507481560078490465628672202385011967774816060632731413175750552747160728613380296400658378129409678471290995490170800063270584902190208524720951952325427936561809829326712364854885280128965917268371423191877483154749918014136333518310067162267383956987389991540494431780492005011897478188621680847093460323311306728384012005323585475342233936748483440907665896827138211285537123635014066538172130716556741169099212731063513617188098599498992224961243014357691411872331045916657662631675484504102246533106402466197712699711658624062263791678373430961226196315380884001012193132715872232586087391643482880175593010213710690315907709599362943847226533597277311825831048357343484014251041787595892662654367501084030749694834347606171080486391049598330856249066451266334961322015567386229047596390193831622304048702495990218185237523664008963708383529264086509387637428343985339234282930070639887481625833740405195040235520719246413778014380461457457867605516391034139314939344059948354775291417654264279019827263189737454857039446555585575826080033148286295900542031310636589283965560901006614019179646740375742315554543006224086094801634931571916297608668317486747143775029031853499762785543854488642843768877535319887359291726176276744334402568045830826990618241580131980333419765292382949960764804281497041823703765330892677738883070651241568195357764100336801534590983567176833218459936257861257627212383987199560873194866829184072229631925509644673533213997382973779151913494671188884015733517082894818654040955694715997507631432901589290635111093911133674374889238527680845366642882538409392698423526036227628372334434178591935874502095136008596858555935867513581580864892813250837172588248269431423139767263235396118841494641230986222017782421349339784879567743945102866576357314173121299820799193803110445388089240075301874316612474414083099638621770174605130852424988908700591353917809509126781489239280378994126802588312951771531690597094473780798258225458445620339991791185630341002277701114594556309836334374311332204089102794274816616210802310057990454994903595751156114727405954554141276596955702538533091158408815828009790515351341263818638557315737307210637229823586332628521352248757737957892679426096537975998996668719852434408837262172439313700486747318045593144439432960535270610507587884994495467425331673699574089406790453702861484693837374550938301232581024783807423805180460292399976244061407927824314755054425444504092117455506929061401589119488708823319604233240877401856204178486455997202388458464961148424635868159935299821492742775384363322437426411179340366605973840514300040328924564797067934159337913392864740463064179264807073928495797095384244393460843663467349402490982333772969892879420321851007700166826513543495289940119286999101209658509641003195199853776982678023181624876641206915754263180561073495459015933566564135443709176986226389476270499256904090043816715697971327354330442420737277613343632318313687184570410355362938424966136188383520447692564254033094135412108365230471406958356486749757209400432285038068577438195137260453495751833037549498037388665022340030703904007331196881787069760946961988092712617788028644757689176821349408544905767337423608068576046242475899574395528291243624217312852997349390376078177955821146670584467671166655465813164477466400005422936829901304493590669743394058358448964484426523951567606159708574282706512769033912641158962911019547003371658303917614263762577880439794115153565185974527436455173174790069613540286315808398996600359086360558477907810907169442986528250327171636970670588019359966218255570438344802036482147974184073389576590885543770948367027632964381148544334002727276969137004637721121943584068474899856402278356960010237957260953514308142096972211627017466538348628651593097765010791582641331811979771574241339377382091960218827004739300803131152584295137458467667745704032599724832452673012224624737626358953927029427810347326847751292539147127596252950716251670645790918568162718117768705806927788856597299087188142416251643668163280271933074488241693637166985812000715539503613467634059128590073839704354737278804411557579924251489545244030163088544447286402346513346476112006583670137737123204351621022848724910140141692987110942092646082404821631152345411545202409017761142825553946142376426955490052746528389665107376134487176366984758662905966124364189085847138018619596645718694074816451229899188250033073253541392690225318205281683839671251683396721066440838099102422989397124394288431876745992556881575493730086237908754746644328829756540130240960552493705096965254207876442391561603864632628805747530248980288721098203382673796671460299138609227727111029407639551018374805422925931456887529264461311480430443025301441747725486683089119883484782002586773608252247992724797518263993580019975497095875549315559393370534881004864452774995241354006593269015396851406020679796284764447755670280759564788019357957635192151501109655510118410288145751244999250732860781614289484846764321947735914810025675693915321301788427830946140469786200358453020199885517726649801903823430801560677279284933179248309563185293442581300643928064536794834760829488467123741364095120077696435097571135063844469228831738992916780690892218605266347954027185164804378182217913859284732672312726541452496441300982709375710926174941144902899546724375211328142573122910854507023638018958026168238677367784927375063908330936355871187596903524483701848229799281681640858301153241304698821342252057853286944045951490355906973174592987004103257783132508728571805830884155256046216162657315905131091611612638503375340613966354403754890282018117323144569179430533567842370323067768456251247653930475368624898733205117680842362013303151619812574124840112302757680989595808548759350706738692300081698139942134359450549060802108060370101338068850495798548065513872736392288259029698630803148051032532176702224773213275408059079043310391695288166065840366197582898787205422158336919486540758221846797520501631650545925730138287071615326312643203287268290161887139507747256958903919233083634903670342551404548221349447891290229529581030497727177331468496198532503975698983546839359779254440814728515049747899519692625708276435669874446604260906991143801167312499282134710137684778297699483926349757604749199674317555632542536481407037679281785296996835149448897704830377843343514252919287677516938553541949778166042456083135916042986226648507491597529814255053395762889770387329649251573396022709285559563737179281608841567527052125419090333894280406917793530513709348810283520993802370403226464448488439304973021822265112049233750308309567465788562889206379587911958183834767783320443051879316282898542142655650153422615689754041619642061829315924996402338169392831039198122782897916874354797805495059411809987805657360068258166420442088819928805103858473893711792427952712398826490140905058437296072619551338570069817898180053950261225660055582784008838789776562372560498697563114921057680937048952698989301124263130512327026792818982053157865175966162766834746702630108334310667087111949414815314080804856543151561988406543523228487422790472306237419804089680988216216415159133785904307923106977479796319513527277995564864703361175018796577000131422935883816272922840071037204588348089429767169967791345791384521476456434922389469736207501618417078021960283790557897162710273231046313249094447738868310520292836988475070303700310471910705473643033869171111074078342121824271043900556744614083166356436505874894166705377332150002111315922763399320192511774639463478137453838462769119777283933186159433909957551151503362521323267084484111647386171681875286412737994992238450531105767111531486767665518381434540146980519637197703890446298871191272675883455901165728900932943663361006653876694603274285752332945692450469229013979238197128675464914996129850584434974635762667390399886645230531467118287040368483620775936671245901620880016350023659066596618799612491389823567416793771574349321530092302060279321660468926888555537634477664442499404419591898772766343615897356388336787121850071227534158244976722261934305112053660286787753362976333072995024590611285286913485713875554294927302155368562247044304685137474298245683880502960585886908874219296782753389922411197916177942612802887100472447554772215300479341176839131265559472600270755363839561068838753472900387042893571352330012323294476242668706523010217164531082882896205077299354067785601755240395726245381610256093772642701276378959166272573030898196957066049963144320067829468599467904702295182344910579715904184205015873232994949959873839876218384843159169312969191182028996575349308000569575190450640126449942367967381021780927783923942575896806949498207047445952939058493504613928562363636867744682788548850275012795291847655298309038813665268930809942523808301272469257436863653095645482198306600431429814432805960113769712871439944763694129574722269246847373681537150904203692237232926720394433243638383325421014027743312819470131741056768907599682219115098423113845687863960532908491257838041558475819933017647649220414457063447877990671687130707290314294560991286709329980033432905286052081772976611748127246341660479720553343769709189217614017277594978166603043153645121093796684325672132743741080354263198217157546020801841644887215715384389631931225268440519110679646605033694851735051330799001210559819344196380142949686756460186384446213407435902108148734680907788260114872251792651586808247205473042235645596611034958773560295282815028600507213668978039364993002210707688310973505671395569638484387768216310580693089880669814859362146368275706033115586243862734666912269844701675085129879587163382827235664721663403564957548262225763310429175942560503955299680221294518350783653009803786525921744442653750709963285212286242655942962127931443320809312309671029554195211044999325537775801446399617140187285370818575402207227012191006221495852947847845093362570149394979555532711089435867369085675128609177483517276709383484638199274126534255997240969932503556591400974463767578004252161600360641359758375517236800113521255974468540600095982102625044219822872508997111281496422674676376703232910500730779373324908769855813524498673318882230438995895835315028149692574877995963129917706303319635528877957914359018315165537775603143121812035756184530535879921786183070995119817723659609133273516537653693844536327046618462002347902605579322925996093557722735893372898413810733090515571695925796964647377030480676180753770044970531627596452042990719700226793102009099497361394586278362233335609932080385275013906224756689995289255419288765652801215763932973164464137108738462068666783349717959274799358348930756174629773211689280679132861967149865780557009503826817933822249368634208987565582017608717149965227770927897319846867979462967956813112658034923402405359872595622805031757008898561032832051154997641250314077017381351002960899249484148156031915330514225216920501336800883694107260932246458010879569646590263927604848343540432402076260543820057568513242176929046817217483723919978552181614463587991776463077310755629610831805653952470532004936169259153486717128891572519836683764587270627887487427824976946742555541015464696863642312811366230075839238095477344465348634132011885048052204258581354529718917777829497923525980472848326665072896478986721936412128189776749292713025191996067821912573378178984455422318221286369826946536964010551818190738898798974361922000841429251308611925072247603235150768449986841931388634922603921565570367241366255471002287117051347189980083342017613269911976448256466968290505376678453904842343550991379623630722885607820278876733046570194612372996904013117384778966437999855092855977869672083994822710446263612686948178166324846010922320211942712354971994116829341783630091925275783087640652783496414223861154308558166053633192833941316357786991772689611034413569787393642923493358639239048727361594776725379481278104573393495405995760023859370450079792755200272754016668907642612416175119198287608022216135424623533258268861782046863841662026826743521068315478077617831124323857046859711536122075129176858084263111786457078451310172088521935843707846157006872751027211365297644588036609958982632529775026264393392791030969788927024786053698014996355772637772899980217327795443404094258094522430049214648675241425868959375431087876455399630609911621554222694886792736770777354985055156228052563569390785032472240517610037987006808277489976297869102059973269141265728110090778331775548835996183275932338836236306016511840042985888822099625160268122852515164468362440398452376280754961857494591644930376185816033822677959992513830841449932038643263222050028497930828652917173940536901779982124578469214968692374586410206103313925857151638897674003630347849922264839265359774237947295951745175821607526987505871647702375954755646916525214304894575766341518766475338680976588007143970191894918000939903868430223932886792707807190282936703479238153538374753767919043267164978694140968937200036621488511493019110794825594682205488869762591693044172160751113453498945575654657050094580189909927688069338420234260306170384605612815204112419528455653176102326974238140298716094695370838088755866518243262564071383803460806726475981037348698704913242027652597342083535813206111783129098986221704191777118288472171693134673657686349806639090109370310906589107702266860016794127718282217414011502050075448689230876373985294473899980139672752501815510058094026680927339597990501976104935857672085116120224245041371158522080146418496485510161504093145749533152777977865599042534229275123254741091466792470638138181966216489332173063898790957279919942701446763719768677771363432690549296408652857342969632223393610085551559545049595253035899630027257781450381410285613025073848936277020503104050571155714584134668181949055622518513488751046351895012286028917142026445003379140640182304198242857369755383557412366613642872676527063876796211788763370979268807783857371855599995174208664505371289754397136998095798652319870528677593032314972827135257455757752923020182615134672115757383723270825090471354993190731299583298931282020846886794239101435187729288289302762401441969547046070267203513246750503634747670272651842831764972472595418246471692195094374698581660184853776535236431777266591203295774112145899125576468016279303443545301172717409694834726753972462348380859784325986117254343632118998591226864314805755373706499770627935642066483475312746571664907134188662954288437832057742970579236267165503833407945167672146031411031999178094479560341294743016956231682022926728056517297418943235825835305767775370238377412251605067638435367437866243084587170101855458812174790489434127318955758043694654390288657012217163308948360663862881721237340693215480279710333554470259253294807055906196273516980942831667327210502755712166810074756292296679188670370127837410721822687222494195993971753443711951705150876836322538326244662396131143241723508057757136556436707283731409726841433010277089855916611682517973245676243240755774062317020212120614205525959411489817510943096984144582662408555796399403288794914218647472836517013747055133974206081827453601539377694899008958105126056557762106474636885636962730873198528497426724467805825630444478667344172088453445312770271757812500319362197994573355516424686078768513257492111601883295274147882482458683474664101965907683189555814425641818411709824030721612917599556136236109263517178287655211634721827139789329544668227087152647512036422050779047811204879464434773732786604393241919796351097403666702857371098250896007674082369590411684114672307093696026434325042595856700709546481358284157022651132925918919995183306151916591603742566441918885762081042124133928341174680385993899363017051740579038680486242617438948625171437518974806684058049372165312715690919783278532547850342549408819953250039222839068501500492833211852559474187129313101708655780221704915342797197057355397495014730520465760688830136341355742863126870163648528756064266979860653241857946505252144348931882337599534908230025425844327265409337601214137340672138124764564332900808988760893871139171114642729357057635540055805598815709584281185597272892303083684932889065801103268976953515877103548057101890561378064692056946813473551509006546862426255788915283477921812650810885241791252083946172943378050347756954158473326536035985634145733317346073207119444696146389027810125665505946511123311850884069662033941340147636240933350294572052169044785961297549302959846115358659312884123251578907464910774752765271407168037163405546680884991672566220828288535706064304535537051229307037931087792814072614772520464637723395014124838149854970398123890222050227486131509193159206018543135280549288582943417426497166400905218006631692696488929810073549712250550048998733577348376844341121179137836902891616228552416074697185263817639256252158912103984267299102364563064800264850640036956601247511604476009967941965209583406235332667043008409444335053473448621905340595782492828415030497211870159859587737073505523196988909441389091154708783075157604129716691401457087103204841442544513876099826919803429364822746730187826662653592250209895121909837036543283978073327892636090784588004423762175278976281834476840279896481904891731721157907290687222424162844087450365527227599728199415418998596591870619413799550671950194088761903724639875138681521076776610940409266914208648610314324228338846250439798029284267546200771750680790201859676470038688376064237898258827510055072014563133288414017225188281709114545797550639986169727105710190515604464561701030009511467211385467776980374818269977358935048036421348783432860189920689359851137006343621924920804920263896476494638812063280238980868609546091403649408454580487665934267957709385929299458423483640791085368882142466535033820475371026592168109575752083322025561902041882805379824541376340082338040664424542124577906851404096082101899933081918955187618310984343717280677513535678322706571736825523876973584610263283839499852699983025634983955778022630509434000166898935692890181504171874432148905390717799839229965435436242787078153228916353734945699554508313640519463770884780583743866049651633004443476950690961267134228761365060090456169705679056604566346946378749884071943089045839722941466532147572880168434176866222861632666416463656952587061507494180593807141561251416919131786599981276516848468513650858664298273239454420792969421258667136653250402571801990828932933339940068895436079577508513080647087849297256875364693454470508092016001701200797734045323586149874943030489842029881728386270763988385806364923822742301060287102590252741907067610834409640087251837652960594513948968008445299956095419940619544852198899236501547934768099019253796088814468265153627738005156441029104060865382057095923056342259748238831811002256083882218578998515875786333941106482910445097977130679690006374801348246277048530180810762288230615780752517300741462408995739584164086644565056787168156156706233015314753782951900535017494537209709905466147167116176569170881732586909135250908090733028939512049948321357963013537682218620842994393731078663649498408317569941167876445198175805967109773831434574014499935247615818536826259541238257663634821661501437985221413375782594216669202193645408278256599994982394151173297475190712271527864438246207642475471432760302962441563565543530500288318618071734891719898548713176624111859863377382688256192318094616448650049375549282768262020090821481638136220826467904455297053271259409201483682404161876804827420043560407650261183838626805832459593575477849770765244501192696725850535920884954992755967528034138445532806552268466913068686431918638275216166169511630307954308532374983138350583878054202955326431900423295085652023405308354310512591089686041131160096937245878443995083760061924674723365287863875114923392931945869600936299042499736532788755567095375277688537148582079077564083199413325350667233519378529530244165770075504467885615089729168128949767928194670701157257275480399919896280340316357564847016498110619293182500760571982722025306327032138763133879456037574722193008571431860886758078884401832124768554456432404760686005537565560499319863451943870114421961170678516901741937845625233928543692712788108874678195544288340448476012736040845478127311965858306300703952932371131958567230256778905759491383582355211951568145154868329660170109003271063779720159275026742668042414407941418864887885830688279292038304277618587699952425365069140532542110757253301741615586425539180067005138540065001272294309314934282445011238842534419665675857718306523039296561290016813477498320169902868536078079922932783865532932743839689154292338250497589575131078379624515096689297031084557177540633204176100070274761307114924476052892458529139172694798945746839443472481104738121205388206771605918094576473163896994919792662921903520812196481337332843660814044674189073544958692900346973641866494672891192499016315917037027672592198623696589215055773569139630825863560580573839462258707702745680881047017414307635638947884181948639384009434243537142770706407982647619994083948591258984106055601212944584384053333608357621388918874185282499515339139119998038640641827682555113556623270901033330841938130000408538461963358182724578490721330334250962576263435661504094351125035506384512454589121195494672360960542452756363283057490730988602910040041530128749716080457461612374668371811250592727325145224546403124919236802236191433615175615520150671773851973283543377099509043128042553623257793700750735851204217701725571437444842200482123383350768132662287586216047761363115960049138523382771159220388694270017673616319315557200338310937903330313449428165288189891623519527018526835402512634397687131605609077160817891135743758261687860158217807212194116868344594104528772868667896540549301974081155723473366769854946050871092641913938247657549849769297400641491034670715387264438055622995382550585300414287517715292193311899235860438114665609498272808786718062113320269357696480656881671825149614231970752034386024767460627023596665575625783101537873135552555684539060843131466379354046494040793842587645236111642751704520457181737571390658870802951293416311379075110339124046298674336692277093808351576025271384303363533334099635986563881424218343900805092055569956398071718026525391347189417742271218979805883723389540698167896758186160942322182761336996666206424278756087572157412205492107187505265810989428399531195323093647221884950004940880850379243852327855687200177682486503485163999006743973065850501014175246225967266830540073876903651233295278600257743613420559962786095824829492497858993334583377766033843115287384359490275803227712016618387791301711647730844735270592101836550638275265301946125276038098220485991537618707006251245184325758498091071349832017157326618879279148896814628009146859529169993934587533105220204189309030838328036394636023153793533789305865117154918031089318865238413311652703023909590416997939625790904379472509171748094398210486002956836183601872215686820795918609110304019115435229917217622242354557909809655559086536231030396142145511742856870396698235231181103685135191507867209038411548182009435491777608958801968634639100593311695558423345013806270810020337270622740283208993925709470975629899907637226084996284462986461178019916290342847394518115369298794551597880784648913533752864478528547229817961506662970547157080517884078459603071466676557964994138239193800499115257565776451674823276717910934740555979199371440843898976174935728893098969039320366571921911923514853712174933250491338907440977328081905657371678593125971307901457182057729700695493702419300864980754185660901464157465469226871044574112418441616920306759179904544333981379548321163355795046499886000297203096162465918964454893459014955830170786798655587722206273552649349041139164960994400501501614590733074784179470000926216688605759745110929623868331692937173741913814717533665268621066356675374368606579323480130167994141459421839903690450595674574542668109305568414681293434142969911574006629168129853388278383606846086999845244827717894703112522603468450313194427475255171028073192365391852047510698924189674122909224918155692966569878439424331025308097155757015541397417991349768117940065555547133609941256572993724640506747562276991631799438546249805806475766453219035212081674933843564654329383927077032418719854016397554112184292034009149107735150190746058351344926461821404088274672585934019202329854366954896944466662751342336314339721871201748209752686293098663949875742671929898322718538655630067551278679233598162984391212066945497778326945100808230935230084352928161598176675053581537353572081265104858541395770446663436719477046467776000182577650351251624022765075925122157278197312696480970162015992328823605870610419489493941251097799039599996945692340428488518949301756217034692350488696799279932656005602033672505403765719687855767518306421638794776982741691768580786607092219766935220525693049709492206026209239722027634705836807063927379911316330022134805097524352193879333574403870259473061085130545133451016899613582664021803717733117343445773269258590874024014723605949596732428164959912713663648752075207982081182946263448194342149898620708842333628500560741841090611727536040033439663155082049729965829947543272119321859616042802569394722902185609452006977180913827846896650009170425337265717645048862904956667333271918709228159948902342192927565470097532373906852541398813138423607376408315270238102914219265112057482154674863659986243433074832641491950778711133991673414816310654853079361155037873815714054820178329961489194024172487814891382218899861090675650892255290039946994309177018758472059867065968705921517016001835394645644245296329034392117857354387409763147067624234899715851185036982419497240282839146462734978184502581463480693906630635405498560475008315514761837547826868279480005260525912679255867342648237408538680102403177207756737246906574997832570486436042213515545122374416465977060463187860643563878080405163701329570102732638055070219276589531362646108723173490078513952092567903901493237064801347790638928725965390754473417958316480289096888623930240318749783847426234528344997653780109135225007588389980122582976815134448261346884629748680004270397122035474065014267558175284951983753440527711705371105093606043736675145327551731141883494499348072731072530978668414086387916566591837941675438622506081815854237202120415705310423213654328114565622495720023917972734026347396422170198575127495732143173088538769496807200522060581237055211631400418698641637434199631210955223045727036909279425773618301600854922087308871738987852475651382207517292998964919268711265839614957710490139260924362342407441243453464231656084770320033100681998018969022850920385960070218055325858540728545205284087620734762242557515299257584601306330581816875104912721278192004044006989826437900974547427396459487822576341228215907856758937989026992381471912898952130530885397489325073193437353384654554485857028115237535083077263198950859050668927319411942203678464938157799807106529621058503031230982730400299272511857622107554678823608521370568752089870067837157311956305835989205520670330009741643613591333221932536153337601243359284495404170071759584052296341987650848572843064264472857384163727156209301233136197145476375498434397769389473714844607922752619022479714015926186252363660646214930015637439509625222144420091819076265553572498313759414659465052592985548203262586467376478456142043777062350321064925232732725658281693057964876864069754704849503796408401175900804915454374862750201331879427788844187052771236935135987337937853687943675660816388320152806687048719170591869726702551304770531887983833818630157143000109932361815640141567846996533612949836515389442711855997988393004829053529931901879152465312048288493518184020447393112423891796329910061753596321127265706674987937404994454662548458115386657687158130755574471350084760405751627640978861666346793677972062175804891182163572192985654778673843058222300673621936098328656270313381964238296351875379552984511725905008951879090736901006538644177782197776984204480754792044765275781224009375219517087537932622692878379047249653565018470757633501856455990640255871091922429873631227194822658719255508039889864573650747649671593277432737583733808664614242601489766157755184852190845440994432110694981519377921167677272688301163174264243724836967639796792271221633228331641373174857727629171590284107538619516609923546616998251506963237188075913253938296032920682894104473646978742817826083435967232261307138970971118363023265971418985361117382449353881676209676382615156190863788677588285434731485020218856326318434543837952980445033080104629602640258245118883622671691176504728423717872749016196352036913032315564615364040395845121776914652804769840676275400119218131370400326392964192017317764191346836855058060757580477403943627956468366174003694608833468257660386490993348986920957592942534948225604489573617427386156884219851443057897263583344474191214496628172719644550312329252019285091993662738138068096037128667381360038738686346354892652451756640225886111741895416556031530168745729620109134316679869067180258775735232513846160095190776436773021894019877544019685041887573643901269162727316876238214753045763812431346686487027638799917344181717927032411962230111148526365282961876498927799118055663761842475861723697520065729778350833562312060030776787773549188474595655181442000281724213120947402438703369200803312710795398309105870338187202996345074626571053156699642780311221412936412709216907105290874647063579610641190796240577796301827728946837196670478582552399027503609602625660589416757789743438534020388262623993959005231196513440199102409997064625136902909731355090534133010944670787687787116762757203990851121065394861486343048325230351549851299779346589080904759044678210301041482257388435300277225154016501264492539694768781314987037744380967857070080932828194614559006755728214368257611102430676961148728729227708711827667269548603201233711563552729645172523795389236716950677398029615299616488691646082480928481351460972636376374199901956594109707496676642952052575827849437639328488399829232747260987376285134042234279705439450620202715636497182260327914356248131779076350867978385020747647785387349214362004235494497559092923228826418380266713173560234911787213428466906671680780965643727350583623003223119515983119923623192735576416397618571197350073180230934072750916619842446768086720279234763274014229566744696197486666524406638226741520485234872748895706096266722472807670597772905166834622796976549802057732967731550824157860782178744504786288594264792695733338339642004129261784674260897206564955599182331192176506993296853346933415881008431508188333635578381961341574209916092842551298751927496154494547045135434360846219475650061157630954913534696984508457496354665124374753052540722237200156725470499851382715633518572945547333079702166781319238409673817890463330196597816093370437978625845846548143572789384272023894868310063059738579300666929594237889517797342722981475144788319530059244945374336995473569085934122320770265553205790262927609705757911372938882365059147335179630900376156539409962467925044903166885631744137209935562788175721154854057940024332714709718044184649144114090492035534539410100158424515322036974657896262287851570555141718371969734993525720603279359391915083808006395624015483959831171444588471633403218633921207113053321154744070743033486877285922941071379847658783063462553203358212995220898806150308481018425636036788569835514621969434025318100769067302006128288107845003705314766524317722438526497654289628834979652726747481269024785028091089098944086992864961324481252303745204128629096150529916178057040653188141762660914214485659378873224675747999434334367123724383305337702376664276482820415979029439670577966299266660250439775573690262750669223411053109008456859662291656183501536624694753230531892085447032167199385759915767261297194028413930445857797447062668504904615181146617949793187310452132084554416270095064910467313185062341771418895749871640173352933469097020044994326048439669087432713121691410102545384320568102934743870963866744553412563175758746503520151712455514794701482104699334442693477312797744610532246075106968335421976076574327965905827085922193495196331763529345297319614655704439420733683530261809289682726272321179244068972282491426957758225304336933045408369353974986924405539477809799036492613445190562102639161320146248540345514435289175703865306261799817753649524077852423917740496830835362765979990290498588435092766861998440214543597225397824422914765794476376199517416549449096682035864298161997056057564278743194062597574219977586931648182004510006672837163339762035291950911784387196100633823542156205271356107847729207034241620040985241575443526301827509633545115096843725615114709069949393500611797801624331545821066894503213615256848502548376045353312727487417899541725986402804686917989238049710615890242773685730784882702715377521733865058213884498596153202632724256566942260752677008905141606358867068860792709264272520177164990727151721953998384912081290903586288018962684125771773641223711875328604421069163161360866922533356078218701045325158106575150528111235495641047564002376827182485350903935803029640105168901310667602678907798907136864949380684760404355179688484364841843921909772361885990406435138460273208327326216345718193367628064653525661622402149704354350952607871427443998083440662832235693441552681172279933160363529418358126686772147673538364475895997760135830828740116463442186753732296602638395541753847980595525524959816387208465849116750417618991886356297886046453539863392514501172033891580990532448674967599333915190765238570340617358755935457349597149862651013415234615528733236283312997712985151771537355327943032992597054949175399830308226169470992686653792689201526746873526690939926365768993365544270260963326346141923937378674222375093032352876592771360013680886907142047289737545497761980038514631988594667217513035077343449431905536392433937047791002030314898551680176262176638804681414702610436476140172332309498192047875243381843439542209023598810795494313822306898670726256296592841493753649387605186047097544818510199281613056720307521562612440750442471823743044777828985864855100984496856627403222142422487926032896989030815775137121960449410341851156043133713882334786643371887268360194324015509187265057297682931664057471219531502882450412689940017500604644671725586109141220708905745807478257849697730226410628217227021106267166432464895282339934654459416994162152193333599825859590349367518939790859671214896138565206284688990458356508812552885728174672103577178945631294398002048613935800607225836765229076520358933284744593122272833441543858528737442874712653892889267339396791263154670051346142613053041541712975161521640413649729587004298297352328800004679944097344987831793640818181214749655302552263964610858243015864609654064284885957477303904189890432379791754534390441998732320991222975798083188123161219902690116112037098189987822652474929266393501835566592473969109014096242979800551699204272478664815529970810755718847491607716554417722218751418605631812504695055795535217605285566605631183336792854673050962524219539395407604951064265840290385386888279065155116149849737799016453953743034171675470483724953412345252115060827682519499965029494939361520645198384073052845414762829654055867465265034276801491717107862321693636979641496375047099071658025928320105048412488729184310846029143330856235639280570578312756700758974242865609225242929750547042588687376953379206847152759711615151044018315615866999394522968122306310332592553555550493719598388180470321184253602450551094879665322459238287137937127667237581667603610877940278448653633634741970026271928368081171061173117313133490145455243455696466410943841438098014967732960162757824821293133020940614923206285929981197735708902631532222930227644563253571794822429821989126810324605649962406479483353163803893423047814875013657594702398630976746091172264715190187970589116185968781750391695071197702091675397269964045250865356858489136582472877636526132224135533447637012562438866364477470501772219898195304962384169157118731072242893126102529555276005449103238263726329347674337401219919842184019668398052505280334468902248314404885070501485939234641455864431377520567859212054416744372920029437273007848500029451563652793367271425076551567136284003171048487635334542429669992640674547414848762817594925763596024511550434880539545503029573524593834987056560768687927668335209952538571304182741267341209883863563776123395697001481950400010303867892130964980574602846984658205601454465739296757271739803909474554035993430633870689284751091819460665516689128103977160174367357410779023817183620648660227779897823832233262697783071947579045108387816654643592693084216142077122772356163375539064342436285516956367071639238706580296867842414084762732065888441116468792471670099237822636877930578655189392031060135816394850245376648961759621649431772684635739886091307889628143717741939514316703590938419241196589442921986381639448616908249027371779984028535968198916096344058542293775727164850319631978466238481442430494823111814986682053876585931365883817323498047094521933176730657548804858898129357295089063700098476750865455722983367689165319949757847903204298248518733416641799118274026207022380394438414510864112181491933179809596146583440375471389124935326813007054032083199789025208259901249313113995880555863014555208432713127265404779682925485943901991681586712881306254572786803673130263050101298301714662391990636919526300052246786374381117823668348357489995917464221792381111578396136630592205815662094042448367055586046239525336473636893271653865683047485792283773100640844849461130225247453919314899163735056921023060560523406751786268363378759648049984303554557181097102634056886055636231579965829538671446228892032106020603274935323197026221296402027552216473836323918998818422449324298185995066697732695874911599681481343128022344352786630580153747288111618588960388494103136703678981735952854554101199735638735099802342562723015368001981971757840113082155573772443138326709843275865874782533690873155686771962008863642369593156391881650526415177365854721910352387436598810811825954127180461477683591795138638166053946096217255918076654498448809874276507669933558963336796689617032030995153701444542931054816535305573998939268219557727199022969448464538086242459737714550686461759778976979812774943333832589856343830599068300196225435684948565016003572981592689876915930265152390845505046316245578278398958254695993003908392351242568241298284122954397557753262726020305020130785140284861856275117505772799372513714287076551425399700987332789463054693230645255794013180124478491390156285489487603271696121074772077340006494192178999322311830719940984479912124654534666764582558319689183985745165232640191905946298832121963359650194340184200807589599367689475575297528880965304612495496512848403441387341569977033077598914730507629794885922654528360726487328989009137575583820159586339686277557144494492858552969899881530111745487599545614550858497021691904648552856713518927376232092763501239273838029364403746697476509175515764122937265933205871117706931351776036250772922459759398383985684954278031040253515048130166473118070998311642005076980174150570748424765619842177198402873935177215544798231060634633291564505190976223184107561764852247812569826770677246665465572702539994337051684591827330996005432098083526180425934211493886474497533562973775196568324434554698570712372550871185858554326640819044492800994094883020400587574855530914570851203029259439613263129817710761541711718705772175692717447579692163500612876124854365167578610219174795299234406851450127700747583521628784690959772927080651908707355434088668325405097433587110598688723380466553045580315690777164185900129571946609588702293523464465319641501525301367710796103611767303578887667070177557779354361555503755178343576933505190700216978014146807407506669065964621436126442554311962767034485123475902372226913570490764302067223373217726121038277354740669648819794013399510643254265260255241690786843935169644504348945987264708203393489359100630344770778387328783273302406927806974846255261221484275002652455884119510943661132547967619948933413768195983848155725473292350550662039466560482308668533413068182348311302621214354585511281923653038669929452098224743187774562770171852180105485120146293418017726197736313118040164455984465423880398763618488118767587176637928784809461316335707128000195806213281396865913165135912832258440288529637177078837441197224530950343746456929519325218911760170076976795367682661845659782769837590152573036980807758833385377402953121753114046304897038053159028665832293097560877109635621632117396193734873424159574350038785555714754899747052240572542272791047230437450616470233240355316051833409155142903696286801349090217959159804830825199864988743601321680400313899607249269513143145280365951113690293606548031085790923715273070029162209511394278472999538334649357414040261574931940278604165582367720572860818541513218289072678086341425340336280823124229823318991242296201446366829886994228535612106495897082554364357707537083932471751814421294838893975939320058545764268057624849308604900569486466720796499860361208538178711651214091704105661011167915931256481228444646998892099830253233756798839038294328399462155761722608008065927251799388070488776500363451080817778496244537360619324092675416307292008959530595615316901336024005650045547858359631193244614216867846255786633766517287078156436220801531040395340557820384917658070952589361607626236249561067720932232448697805895825088227990375776181688798077417681442590262894011805942089028780707989360331992876902371865467049281580345146328986022142454610558582762975899046134448268420985246763166165978640127152806052127976547149444024243188383737910526293547746048802695548311466011188051068138300106928601101682972070754104849590370000575117403089552888852081405428187977614077233637332563818735040553042144936036220401689538462498552752711903387502910719425548406574496374519363476976439121168183971143267045651150331487674611817647692345223339382740828467283178375941889413173312121292476540595683368833724451994081140265109158181442362970873249930665935934052487111281927859345145439312507785653923228709036483196975652749599910823393559817216712555321997842469124878944347144618602019101748319149541255346212979107791230792327369698089951791841023521538385483835785660064940310565094804159850773671939127590578595411295681431458634108047852917844230503209993773705240532329111227187448859568331298214200926859795843298733842044496139625970678483318188577131386455668520207715654963995386318786352905247453352280742652914436713738559708692609404026332967444551756433082964303198130714263684547073514024298245964544289212055980030521211028902029432438611691911593611837348643920279766034302048344934556637089712229061179983220934288858257518818912676038339183020888431161502564078245621600957676060350149810182049299141406329779398067177902174863030759309669050948665441169986284428623249988944958965141065298774694744304602407265134846484042915014978560295442551234260685729498998525216376183047809897207395159618944496519924643349717296134616786316805194983794397701282723443135172220884816122195809054523593980906337798575844195397678304208430888916591826007262709529799765824814694589249756334119911095780635697235757823453036938088672493502978039359518817764232147518404409326132774735006883967341274180366459393573562147412565879466758799273507670163535710027255073603726472012071816481856015473776115593008353296635588092268469882658651985201494875445015958907907088566379279263010730421414123029904843453534208434498516358501471128462611299644431164965510184297244691105515797874355365772405480721063067783371162944693099291977644178082773670952043524862463633809085569128595490764865703310731570487638916553112407136463718532876075177869422010138615353891814656817888751149579963757249116078770310718696447669342775953310804100124647840951900544002033705248118877162291207066440910057899594849113733269018368908362442144415023100397941141103273337747790055706729663131320322271100519895114650630933171952287458757803668674689702470358672305707337059123547458770181121135991191235152557762513254423973867756778351596178307279592535062194450740920684345201479822913488360700298894565568514433975951580809607180501130375350676813365820268559956305783091038442361693244468485008417693577944608418625382612867445041336852493138919076718789297730074092063911455681627527046100348474392647844596321620151073236251782755791447432182462222919189837449041733091259471539590888585161383825447519340793322477021332027266068603307223270071103364646460588479280855363714326378592166855030777623383412160331304898995037236593873931984009177076483614379300459106444578245113334291850044820497809753486644223377975160456454654227990982585098172227888578344758223970939280883038704876843943036763073455348977218915553596828868451259714371856711086858165353927987036085654147625549257750488552850097134021092550113087370783785876201924736723671922587787459110629990712291346383766962494673831196401532756607232021339506691965075762934336907511076682014347040739082096362332522796290323411014899188706217357014360287594034956439392602978537325347785648636921220551824756097463043997604171795610459899585264392978715016135152062769759001103357151845889545164080461106240675037510678274121508226413461985322054881995872272325672647711975997565934003800065677489825837385114870901862993151895673964222085478927663572016726649919584149908599325588414963469261578394546232562602248761424243868858620647880310476587165468016590394196117173171466126596511808638303515571507193532816871787457582393752480970220653041670982726217113249656790145035003007856292891208658455244415804750644901058967015130519181997083872696441404266243576825550536526968724336695404885124615020993348974025855237151901296127852710007187291411272518409562248259579159852808889740330447152023078152691863342915240366286643858933117914306887839501423354874157923406379183634822039766913109545342843606880787597653700605261405170038518339858829747627278658076600804993595783176766336404512198016425693730744733843816433676435985972304093932212864589172824935543024815830530713911101248505367684103381492853965563288967767525937030367476098181971355086278751963348421498684747439325072787941216160132432686640390579911326217143169281592886274304141909381365447910835212733581426925353053439036581587120016979165689972175689574329710535546864127187368400522342339626636305761506626410086482240993739481278696473763180104599209471524428244813746018297908059136672550062496119879599785482808252342434165746474696582207362438976459961791037165504588190829876073231088918638211145637535571977944584605647270855774476116064309220069800494787945964606675154290337157489890701688449137709982771149784763623781085438621269044140322172886399963200762593997642880082827138624572522843410927791979907610706578995240160080384565186244540261542220928876560915877203751802929191419058727408424402062894689912980566020164745475057051516428845534222529001632572518881419945870017698982388207117436791602289658908209752278353155738152227697202305894201273583398272350726307706749028757255792383118865885372531316610901744196632540366453036133954795358101817173521045042080759238759118542599014811250123403629664519266193589460617201249498500005147153365632072576131774073856755246756112428171054524667531739933483727864352447298371136871205274641724608526383727406660617581176790509833028271930326772234906857907005820416149932360505578528085931326333406185050877638548541196056917266297690568360782108405242881984431014305224732398918909994494932104621197248359941340179052833127950012684989935984692418226369075640696251658370650525913667817093503609641824780764145524609090013639742341923701106140866804897711124601640271961392320968040750594281624482031831536197211727520167236178055488741886981872974886964169100231319810467069251460675442532436386969754892846834535694373157262811487232998726378097765911774072277024533996806500574863130701744729205898738116537791028065054730292167344350924810326532375952389868459764645462898180136627513465146007618748715554613996146526151048772701778882340190053010204679577019768421730571883851077524174359079204764430387806871634561107377961532983989244427401859021412370672816348794195328118414401340790732663883462111747254629357473103044275458855115306609000150872886119470627151607963944692262251963297075585970691068144842503526444765068308096218411723276868020085719282004890572850213807661395775677286370776389690641809633569830251313993963904447961410127224234024000150679160005410313613225198238935410194365803742382784025354397249017548813678551091046472169755067541615525615514852715237103532805132322676249615049934154814698865608801293316642817381903296260937578109341858184934290991505770992937479635016926800937860764936477573093151498843226187485436052243732418306403097168476929183114664629738343933746730437165900879125212726469068790422296451006625092231600638811995279826737335155677480352176643083595631239180762136928901354135512739019895903804410278166402841823521795718512869580653469049192339670410763146321937098698758854104054432710270861361147726722375802424291587148506355014430849244949340985299909181030384429236157610132573690773777214401174644877283022586905716529720371217107478058464817043620581866514562397228852221067159402015034695150501098066369971481867917146652809512419714444761795440715437861950509611534023812438042598067416150209753761502607050898738960263161271869492996925219757808243925780998042094858272818731540157927165609974398888720190946304239843534846520986967650133722700221030540813465104400179986378446848187699407861938504881691123984986924584615664356315570501349497416959717117932209163788929295302255944215822904428834200705863692922247014024279229132039671237907227600458044141438270661396069823571384430916367645820663967586575159328349676083853949236547769063931668490948668942107535382094848792836123802631543257175904693931138720193664031206917201476942364836659678682975225879578178945516787829908779226898110662883611107110324833947249740823406603704153351487831470055284235324149821593325714976881647804327496927989878387281637248626798718596987866516513149678118364058283948213734980023687885912674229495114469703396195709049001455569641379599349316368454183693625301925761559775724759608283853427934215003462750931067712118360544910243026156198699393439695851335010705159574175617133976754228086988031023169009372987660618380651168991113017324159499835452898840217412970346870068976921800810574996723785435439463317548885229463913127565839274439811205196103479947517700385885637920381622137821320124119351348832658504323911739580865899232786976047322035018215343669758904678835860113803517513344625694532624053433607958590938401644222309530824654169569621527969333039840566336874361745200527973734362441105127271948874060401698709832173782827090605783585390939409732492331445780090003802574036940037552128074285931677789076100489358528726984309410370407441744426007522190321400027336999185192270889435011703496841918797673888178510084153946078852519682579856764129080440637826590214933390318121475159212987757220444830050420105346748827055067836819638521117913363894478077936846719267355123438163393497714441598214744105555504213747671894294866815449313954257552351422275331666457066701152670588194625594205505440155862672619237261983459057590936346821696328927212331299670077394124910659375698370274143372275563744906976667133147746604779943071268051948919746271872109785237174787446560569027677064928331759543337205930724215787559209220356798116457544211606450710765822570488055975470208255327072498935169025471687581010356856457140463826815273770672521678205787684288983177305024562127772632927268041421054189651326552553993993639237117699433241397790777166437549556734002046070096065273650822630984251374204247513342920742654965235750294890438339026642942142017393611814657526148715780027666829493505651752598196135769542116066543416821622237401745375418323811773324441430634349147221961338089038254811966565224975664657448110042527042853339614144473953710090919378233476422750816078118144114267430967075959384405662716789436885504858892644746663249990061748579973995011234711571437528323095629254783238081441525306495204853262596087480152456717039883264281393824631124672609262667160443041009481319550324072585114877419979978280835520785901022604272447460566089947237220255153681701980801814548047591733034330310526100554629141461906730233644623140575747391447216910706384599985293203658131941536238404154374551072467486171757464766903136214355217486911674686351927187950141954487943279807326189867534110015433465436708722458612385437583173719865961328940177351073457812852796363196260919918338460714687872578208464133083764199651707640363791677268976096676278036403122138214406777687493079981921560391923787125887165439437733793662483356429612362378965201979942357081540326737619508041551000490043494849310782153273561425748315139958776590517542734172942033471655242531081049514874928900000715908247557525173704482711260847151317742914667901378400947758108557333807603654483426255791598719655397860898427324916315886177793053125512532562621543109367224914892496225248298099170878523030775033996277692751798946977226103888736452119685472314694118421695204356714390979154084191980258853562143661693546237154660721562428351040571359160925768528607386405983820023147010317229987987440960888435286761059195802440455760861288597751385589145829523258752695318965475107780204626446153360768185363989102383523088355760684770036769723560632451354250455856254296161942895711932836458628697946988920684589279053110138145882812572144597850909342335206435160451469836421068214759008440136338572249818260449868716989682389464349472497684864182150981106534988323843394817556122091299552406134829203273066536009894855828907476197564624981065767317172428697141699806243295146976866963275963662996332799558446101973159881138070804214974727901077027963639078392413137152699130281883923918398822947397637461980013858981821417402910145058728349048469511856250192384122404709580699069673605293661336713535753910969583919451172560342925457980019706854060443810125259784019171127006791769856441351971153110091571308167596297363419910191853996145449639816655500188851126033423073046661628032917010481523837323991943123314083827270203714933535242739689005485678143218197018269415258252046855191286833569874109230108280300486278270369661808641740290988576857458381795625609911824103661262215482994689959774418629386688737515794835622430465288992976399538023810529683462244544909923914674918107155105403485757180613967208536657370818362998262165601990080768422621441633154867073031035635726258892134773600962224523780706640540175440864603038450585903971892229228617343917750687008124647795972785636917921364719586295024970078570155376339672212230676243538978566993976326773529403153307677056736924851220689238393709738148637948269865704789831557907795366690659669006727629967129114800982525359084514898475976407987230916159498986944877885489399905345029415398544976614205979141184483950049251201667246240731198891196674627815913361363344159056268379022786141878161681682984113889920449540790362660207844631544728222621754934209320723662755362445344600320914834699282926546115058852514549388937826014271608921914557291840540881250001440509827004368939679762279110917063411503539171079945718425582889732668685839033061198010659829834410640256775406446582351126125979140678417048444260839053307153912687508634871442355732119383254301133422789337843029782999792820147823929910176893584816172259370795200446117807755213047778476518792833437812486160180209969071903211122214495242789763223528916678943473500485187916392233701228823756992055761630051505545548334293646686158562002410453933748549364029122541621854857572139974894549787455577894465911813159103043849447491059978700876325764890188642361001718969496335735974994841879754920872265344018740015837559848800055432262695095610376267304084230524970706017744751709270335391290384195216137139214099620132336381008595404014859551477380917719047632261129159979619802582855328795269926036773467272594873419183078169129320092031681860877082936210979880976489694253684210913604725837415904840364484511287807380745130731497222606730286368641059324448934069280289451950087245509121424063633013397752432000178787921237185331220206249214461778451564124190877369072175602567835755598349810970785480916926665889876536399421572382987114307614362134293739649838455907824426135504552643881556139575755051600354828133892588816856276298067066135200006048005206983917542896427031263480317844579851827846993978193514153045284457370429729047336925200446751850477227517381655504828309190651442620709307996937174877467689379461929425946204074787269877819499250300001770117491706659818413957700827957751050453268533530540747250742922800972552542083002716130196948099316740510317325305562751741308187634528098192173550747243878345946981818474500291809430034206795519249528642455109494073904172317226169015276939173830762548935027091960023555749808919640285187443290758449952239414734122808666862399283277466381947093946634645247022737673467433907906732015282514506636493547318146233886470639007746894314372514829426749493701348031882185383337473180288997035253496697169220965172372023185859556787937723337936877999941627230009106812891278212566956922053119405646641982362911482003747880769093653348197716385567037804601585024090614953322684679187911629200812370968508523297243216180193039239058639165760441013367031105427988482808950071387333966475657572147024762250424831591331651519331221459635219747257523912085881827744559952338134661099743682227090469317878030057859331437821110876705621703872658028848051297305039722746650714819824698635889515163619357047829972932044926389839337896568752199220101293570325315236807355206747596871223730812724697764835649781093150803287206635575021751823935203619450189910944596778226865920676055604543487961655452591838842090360223464557368536117149970270315244897193449552111897794258589921243298109794302126768572814210660597433452574754407405975026195119423085583129584059144165806802472609151541814696140789994677086308074671391705432674236145591760665813863444194488096656958945105203412741424541105421339059140676496567564448219791330255002114536588081224514179358271170285762774799244759120274518229188651149734026948750312270634872162495437514893005141573409830293034564480491758475224384532279715240203388420964631712320932869941389266702577836766607008885885779565259245629467929935119062447507090545109503246087656640245262281895281420677213930015669779917272385952553870148828340077409703913648049922269895717047385723990851480539673481652389023681418573893482111061684606806681017801112909230673716491012311137568640296329240589756184486812993537320751230319564273750618517904489995627422981949875157210267665783136834229690004496806088364436859875174254620427956897126602303589381713759623643153964076168816419964160047235624875692328781269993426072949450446554305046830985905045494047905091553037969594652522575107976703617385398844659424599813918067582341045025405884583719528138456743644763434770439208378843664119061675748514267306284382930918668851605790258620506834238113146318269990534359959007989077906491470636987779516827332678208310047841216200510917602801425266766266621134791812882817762759427466491056773309205136857787574306155707387962836723068164699872424236293013527956545094082714307665577921966794701429691015449669034130715132927927278174728966761097510993136618761827671366721801348577994428587822078421871109051951900124317260914585046346978677235751278576545341184368351620612332891581389438943094597200654382969997625518426641918922786166360617917773645400269644856793838446804835377200319105387953520153472551191197135130242185403024908569179945222149057654583910021354512145211714883722255030645528282474231434977567022869341333386046504092785677255506565075431391046588290927829533832861449748316738235015686823152617396265437102537272760676279623210175862536976074909794865640776223702131412316077658121916201357512474640463194401398940477014831320720256661548465184874160692245518518281334915657373723366851198283931557322338916279440032162798937768778400727785013754763470159879352264159206914722127997254407997763164195311923675599286789907503586842634672272193829399144496717433040144307609199392943278451657022570108613454126559692230109820189319101359200140549773563805447806647855379856243766398175580062338756387182824011380187466659887733197451274387867399284558274652471540429699613436947020501459269060745093239234946002114070512777311507692381393949113704974236034248457359863413781735706751156774022798647179286299868434772979750258585141269947025633990429209209292273997846812597660622367813370759238480978701867830923226619068367214445063739861609964096016241756872166106002064390942717646880245134483375685616205835456940303935372568581709565140202327579222347784964278835160309862335845095957410367515843041937715198922905455097042804597739075971373835769129143049147450560999669485770975772385745110523107139676931119221117794321404071756139120625975815641863747921078259999944576243848484297106252969788148304380277449824815814426536734395325639445803315790277374849880298818236088541183545518256917036987316436650836849790286178229699302941055700035978283246376937109997881175803223279482251837083162977726488977806296870171398617031813852539169390147822344369952456285447024663082075698879235980943240193130415962981564189145517400123930810431426420955692707725176806784280454910447056625826115175716929916044283285199881499502194989943292346256356111785082499437131728897419780182865079132412801961661124586786713671418070258232994905584806372723534082311279384355106282956501661411867030829571446382799759268223333368607904462858081012790986015637778610901717925075410157862200729581966315439886519107782146012606537491031057541648095760923043806505935964218756769472709997200948055995037958751141322646261795651687886822041791500563438616423488734447700733417113203791252561617905331436781458641752047019170357162756300877313203307755158567098244258906088211182585397396406126679064116492592835793188665986915418759923876330355668051884533564527146833411784837982104218873266444292883371671144374589970917458211730005995263309831672826114533126329663141145209074109001879191859884842487711668038674659158162559776588757860828658122760160324796013672353025233496807679128431172722211610695478173819339179351875102523993879049895214892020359787731183576998265370166075181776788477853781609306629266811559107177316158312870696393801845802360291724462982275732112240101184801734685763112391651021073180040977054460879257363142227403757638966260440956819734596668820609658989470710710390578266603597630102869732240585942644445165756045568096561505469832640167743553137549167008632439589995767180953308971476452968460703693713782233396985208740262640379903780421318838558130242382704485298380807225808941048740527988770466975823314990226866268207207649757357577051031264664792843016669262554698997154675969410856223361940060663509667435058352417556058447834391630373995102421664606535286216867304308563525044900720814074464275128442793487756776369045587842414669770208640115089228691221164912484107563269017418647955561642250262405763912448063292182165190197241144717196255988491318632350541308838886540568690418177728452465568560622920125969710365714022221155972799322257383253974842851259461336926131190825994306407578825567487045607635814250705733302810374582454017757069745459899427764944914788862586831313743075052232898052905503283732100557073594371684789064838861373407271209586319657648059014733631114211466785046809937380365659164152341493303706912131931342367978747829618241072290098061268685148994542190470295391416344653140491581945295520736939905534484764140488871248973756843477882646605089864329924991965779096655061193016338499768544878613823470494854175152502729847707587132552970820749198544235014776010340169353559100410053014943893238360994773682889175282926636282527999197026941833426422100477349998271944525557988578701095864594123746240122457786858777124762481778142811864599352954495578295107398708608633822027436042606027677231524091011490891838543104877052662314897306155336860457509209688864810252564697083852438285039079543534050250598983404561351023704508510457568158277193184960217027215873863005380381248713926302156673298130264031842812315528844536124128549019225719098617555149952243414543730057970161705321514821174802639272083723284348850404157129186935021448108407640871056356063989095549180879826541991595260262563684379553950356763672788472791486902265599961060609130388070119211731739546409630292975656506049746499480653162004032434197558979976025442692534281747801756133600587406286109354817528271773210765200073850384162666731612219925702150669526651284219491640740407979015981269113266291173529090486414736240722867414762625692848062665229757872339036920200114730815996578881471438475689607489106122904136666482542839115458460974352793313926189739154787778355322835415243127466261246798874236035307787880628032064137297174370526096221393197332168512974809432465609166265752797910285302766215649339559640591775047983303124243146678551792086174084487687589463582595241700717782222768877671255750184660776358444863842679618066369790893692764568065976924260118873603777563484722206221838635233433042982921658164537455871630429608368968477320230733865941063859133188751932056706546488877802639334106637317087462829943888594047454645394082684628669115740612030168853525454843994262945414039964065127045475462226792522298869495076878843142830222911118976929252982220052454922391470568589388221960075995047407900285132505716709874151998348855999542494741757843708258637636380969743745211671390465308186043772458457676070837344144073035087018833558432701244336707435331965114674915674290758513914799051535285256554385425940185095070773127118328318230741918695831676603558002521558148440079059906428827185107287336274888049503973758268212841101356657680378463333760576925327268686123353285550935525802177827001822583520701682774171213417959063018692287507131357584443521663217515452328203316670637054439914810380437727735706376840756679468744066873034559889619353270066758810375052547577310551887062685891299947996568286415372063952899347639497480862837568396521543513190056846995023758023835530900508580618601837164772922009942137766524787352731572650184495934518403920920157266539066026012878889234346093350979305598749921884367020703296971145574917140712880286077828719101122689915889064699946881245582060130872684224769663033656639968275079786226108528153110396893246962706560585579403276064398950196209397553286408442948826817852937469728867598949345220154033122259772024827008054057118987328870999472004886524910790146099294017894174858413486728293385057323527906906682502967112135569571228220896306814984017853863937192515301353177728340605966791302478234889093619566083335460539539445075266698432381552104917710739404708864566897136620095600450330003205198414302625681372399356943320762014325580541179544476788219406290845100208146830330580854266356720473381108771613485264152644400001254290379951970472967804472897115796832772754325938933400916474309887921273429012335204690792962361869217921007395249678439352637767305448674546288755094559567278060015429125301227927905362358048252138517067533036833119838005698892659218936790850865265872781350601101623477035789541106295011312228698300750227807450652033139800392149449363813752646430697363279898010391253817060687149552770264288060317097395106076589215308919120763750224238209621061667611406243491348502707016617416716778161292823665079770037640895774325680792367535551603904212286429427504726314270740803344745454434584183023838727327094645611093574653037607024655636838304103887833558924340783790522873684336917280123354776849412626452372345655053655119177599804428149999363864436961744082257334456627363666729358703464942569065481391646122005044820638491315452259203129553596893288934953593799711887546724659762903309369206647858950187160931746698248167406359005533378879403183508637225012229490535417395377641571830189071637637231135434682113562285089606633020164630521298641725958270718739775771896325897861597968129418091598816532441454690339461774031290807251563327572902900782022361013837694466263098219653164190778960675929901347961525311822518218432126325672513233684462175725513035395660596105888998264036585197346902977451322613188673629143316055341389467783986893269621748529753133463182093878098260942454658204218577497299804526300078974481882224994198913493460809046524946011485603648160797467772381575700463028058922647792180538291743923838887550569159425419407632047028023204079403331270907858010280927033931853632245553625084112419152901030989228462364783379810514040125275055298228262546897574993327882745740038146486355368659672770699017861532237921246545569083437871431887165847046602308449904792462913051133639977990116374309760559208757166502273157153062956687331772376798478455899030290931894794536918389491052041366886828419161061755017073371195228137869418825822826612131661125817695502408054141822795009437630386665109510496681095731713774926082425933259413910468137300027817181468069688720444319623186804129748135826918266981531182834375088419130332047639826127395925086117768246845339364292049331969671423791860164314671317123180604302175065765288513282852090370777642968839691864245751308860601221756799803243904612307170746194600711067846681412420951566727395779713101329770262671528110871222076312883866550754261101406195637191842188889407164624154081470719698235954771704764763935759487618796382265354702417950150408046160114134361536007552811040542631573631773921327801370254740876201830860010021279795030005396466164102493109183941145203964556898177336267918152334008572622968164302718001456116235748021046378835332463465456706145628337298699124619731352456331609672772090885047557877356610133983516964002607466780199854766780182459637514691266036642169603204322752610883189375104335201645465175281740555051173384934193758278721166221504784870351905686728611101937421833057130355542628346176281452073790590697141831590087922699040970486272642473320998432416082195728024845056920761601463976712651637890975880332441437665944380237238609134327030908221159791239384093038526063854599137639789122715036501115229510990483565298463197726684289119886001359395082436384373684391316042263008531201426676565093373036744912951577920073319524433842833041939568385103412494097785747072101740626534877083487724218548504344153195325905198572266833267983426745044870402269715997948627160899130124197683319558912360456032691317426439188718089990325129485346887738886846936552026403845925790100673672293871903444499374531785399295826239319205182075999345192209446415894920783226434486217325325812338412902369543286418382155520694809748077445922919515931671074276259606313665405071090076490181142845010613526007715520716897899680972275236023903236254332652398046495134538762813819147091590964655764385255223484028861974529221927547552932770893526768366628832374726239940870834363118354808925003017520642102223767963961587317040659382711962604276409789851453854152308336827098189844601765572422635737262694360197894584153125731336843966403096218371945644379914635816332062635476791350224623937981212204067161877016185592050048131604889946197040852685732031970109934524954775860489916974501255345990835993938545874340269033295282883192589401582330011463707986209199739406507640780128657195434463502573183421656587418192506799278447058441660675290149674845653857359472237254633581117066820356739028052145849483913394354229594471699286959550283523636794165405793681300138867611317894810861840569188953650543956970104426413528059691610857095283515961324398737562304738977549140274684625853650578503350168145044854528624715948291141748944285935366122238681161476785142181416454442280410796242110096757143867354900831907935631846049818399744157369938464434819957442054922959600188871280736321403483534964137328487936207575331870244841681461076878920553243403352039993341819688196657150004258931861373263454380327383844831733333647259515893483788407186823871220716653356874894525252301847318545351211964012081385745805922017660949613525220954026552903043251423897352591973622296685799536157475483733770072516501305064505330183063913469902978675449075591555418237276584076798525630723185901837577021417934935766428758996661592567340077057448681256932604339894099360169745880272082247943801933714538226447746534718839883650631805768451345833265909215167361535768341762679672142750932785933105470795735652617385823347296405714858319853194740398943347965492204866077252402913127447194886435092854055015118796132324439182663430626687229936792524799603172756364570670482771206158877563163432553345461973153314979067667374148834405639421573083752506778262527597848052572011615546381594034163431064089921478301354976458548083699753404225908069276615138809236226883907496049473957761769840055270804877876486156666341950329165173630928689058614196472426543553041663141608903724580367352713304386976095980183644718718031285201251786540544888749274933655347105440650913817209472930929210352160862628802618387723178421896325328344467556535180747413200290975897124067970416427903779485847307011962691946970732090664510028722441547872255550175049350870303630585410100538490601777995724593208026765408679353171536531956632816158386555701389284229043887289538506065678524367908759517493838540815537238196595751598860754931395064156642134998777910343586474976512512261225437384730975000388961665074017217383225735228057953460939557656724967435231785510056118005747182759939531100222433875309545124802371467112805436858075617701402351925013932601964228787475795141626916129732088774230402501561245481765383144693984759156394522617143789078604325824963833162912566877419049114062641533074546010367782151520448881341327592560579524253320886361528286525917664094260967840378787196856344190437794535372229714353698681006742817035643195811084362009669332835776468298673732058671883952437478877930871077315164204204801449505011205393816665078960176889318408651496148554519630668497972509625531264900823820836787139495232013616957998339953483734179006636534488587523985463331820162745404022725533241822840761726104985869408064489814064634429654566593005283832008075168277894584825860978664934690422528854709700525101401546247277016225082184967927371136909806390466859288260337485840709762368005142808579300061108781657452509966924210532186055064215617684589396142816291721439632134183257917911705177706154503059919496979087445460213568249368124830139361080410738611905649427088310156921629330297241933407959218430905193586859376001504614946194054176299277114635582032929132174668330401677182538199713816325992016010615545073854799734238344077402153420085993144734942893546177450789146061016910098038902682088766941255224271700406793632274538006043089823925835538615031545330727682180717746373984611008688879226831121155043911338832021326971228557678918728711331817602812047231719510738264620932678407655468555545307767878406212564506179256604133524353399172957196472479453729272945275896066016038799080393487990115756436411726031327946332989844520927381886213355807709369726898485682724496405431025544921648275456044953646363255199418698221823874041031815076755100733584721815488101707751491689682856099311485182787967416537566602537215922636068991103633262479217318143668740815101837350101445563485456169809748925743229087253970525396805468187271942477467813723924282779375147981952247282098649626439483093958233981373389617952974552099671749605156876355926468719917115844595312465339473743294639480131893728232264056783887642232624514125043162560528766688392429389983374675569244545088692634377811025210462273629562283324692476575747881058597810970865569705937520439362896153725346566332651153412986047843695330001336626856359966373267866907150781929826092464469755420350487854563167550900153797944587068601945530880760385215850955848387743898172431736755614223975312725671187694541437538960464765596555806807557256360650561585777970441946967545453021720249149717244624592157316114700363814381219585549442245912478074083969829330334517017225089962125441530266163576464167812475900847485579010995097590633595495694419255812969507539757862918267850167477788963728658583035337647113149541482134919108633905256818933121716641681499681416718014728370806738112590568556212286058605063156868497204801776343588481940563090254163388475562056474236067079495801982961114933713381520004788592820527960958619170453580833447946455817527146465062157961035449904565320596806030358189277584115518887205086371474888096931968569432559104718045368392507603211068553787764544352953583043811691290817551459762922434433128894112167791235067648134721512129428296563108498786202150118451453988714893310601380659214468981946269793746145479585567519614676400776533981351821093087836329034316565242927212055626876630144820828163325681674560456560105032624685132979653103284352730443203410069098369828506668855262354946469379494997530054886119566061069281163398848528717487009614986354308470884072071978297582914887804882239662668551011515491495749918120534573419234502374045543908316170603292443849653419296048104894558655231267215681917863086613113935816966818217261246310034199707370946963548776653172311702173763078835865376935843103360579651482374955238835149960017666484112893199202889727834290976229195368093645656047400295161176151080796925529205701900952482776698581920740673732733167465837954392908615583886283612574920779535513759872912721250269595987293671840248649511427069997755266840878449115494399675501361616358033171721015635668922462058458094296555255590657512875990850180672558035912646775195013266588942747625256438588886349154256781558004687416607900828109163570899717739661157499096520260607397543380931954682462713497684995509282934575991032378001044167385331487895943196824458236413331216366689876537710290999150898315025795923552315839039531308300895788447726980717032242381758697965947029211515896487443036601126571492773971249098711735531271781797073089880170520729133195448309530680232132749426444671520211885873608665660554498723706494642501237553691090150780628186859419257639697972933776261116939034780224333124190162336085357346302366257085967821695010571840170169267206913944349431256235104924253662443184975005239990607024673520040795319951971474519683489926985096211686914306457410858604590920778121688197149247457742854597174117130059492273890909044826530009946628419617210154848766650605773718371484269530097540070602380105566819981010500011677939639325122226241223844124427627742391467460826435977505576348115006061836495496376088803768155407605783385509790907414182289142067484932105705407537566558190160655982845038565059901695957267315246089636415004313404350491408641686806273593301640331105568038470778538768992399616370265789013664331339443053256018339408674369375238950996894232588070747497011609299549373236653471894308410619385999639821704671704917309008549956815718433197538202396352410950562558440871242953061670199662846374683528641586970951182079791775846919534280180940712968920793670197893537742911306578137630598147820505229690688765549305233710994069165632536121777465848534400003918095384257132311219130920036535472691106924174067763482609774388435370828022929007254976241704208977115012375682467112379416530117052119293954262732703897371452409895255494286862513220762490994327032289646144571905672091567046063835374836300065481603525896127188883666459875189734315948004177715568907320413903052069236905889724039755898463897775295965719900404625639767220012296807389912081470062932062852703701718732988013717371587537318682498980739727648331098924781852376999146727177468426026184930921041989069101372612585411655887036844127729933668633246841534040296987075848533629876587302311239632854004987299437249538674345372581026604505329158988413963279688484806150733428398654369445509679731928822058804907590147165477544708938590792642339880100165636938904161968814840884368103895689154843271821881169470803528005967077151450556534717864206780219064629441437563510026006632428053667583873210152245472790312121429399212078782069541414149809630456124338469594044317167845846786792676446774897562302070023499657096815753333259649054314549791188761760343148744765127547883667080191105783153354843335617936991308320141762155836502012860982101414866468326852522348082944471059472631755427416842913719515712936571310163175008421969518168767035981067077421140335041213192416378955881522150222995887651379102439400018135383836949980516317346527196113697985926378880417454400836135169008232757538907509647036198657752926625953020997870931844704477297632519500229301916210947234459467958791983097957188971778885964675065499411948905449194443125920753193906892592781082709589322638290982175648850141357199053415991376279247476127782650075694479050379767262522648720259013867051310803852034059699499645980448840715601882728551574362241744747346005885272637170406470845431380440457515293871845873979076246514997228328201975520993724073707580391225257101946935793385174632206679457546163989510586072809650423887537339845669212449932093001692528133912456459208189062692950337383794886786416219741138900295424596278317114628107468182563970232103906438537180263094205422625713735742500445403024283243413533570615470558835007836210445393588873069538303723247050302025860042518402680614898831125179160866641264372235626692916725375185160405240614804585386726452588278826010043407661187397967958324953721356079697527007739401226612104463882173733095534888584846160221302476153137839335377039273488155241089180607289362879108432213500267511741053983440025408520172368557585616611622061522268352365212089539011932504867340102143337516560081402667629803348272071062030955092562570221428652645433869165570891999889075486489362248636565208868250451506136920448634372660260043655475329728714188136965393818194619558497376822773129369725803490089005344141945597618159040066370962691498679318819614580279057542917822251511778896793129319101930228052548975875553029010801166190825485211890205471494322849246754147807837777915498558177785617768846034796503076875851418430609153584111409026478114994166899185716613371730164434139934738792326038829965722496140863002039260815322336307231942410957036663327282514606184588559205229033776610154965170427897680914792369876896815886751560861051954547346406502336499647252563278118590662523502718349699096939913807911301784814163074280270054965205375744925726679477041613776433255908560907067916152912257732087962958751030637108704551278908605254148591373967375698511332867121688070217618502308343165055851225415552569030156761322946343320052531135749204497830734516408868832128323762897381331618367886549796514504097476513062260634934722040661353506690311346897433841729665033709518791346700891134326213355605679068411277139146382073938283569530629530085638381900684472183416703623841717204456720390710024227885753212294254815900121138709394699214858841123786025300981698298453248518794775806315867003443833604987474851795382569359902835854935395087041753866580799557052276420767310976540357430193035158863299598907614424071415871114719987450162971689406284709190041246896299112115602729756658210790313515662356717300819436532220749611431651292553208622998998625089828345150994105474574174359161259631047648957041138088341860862784561361973078945950573779773733347667428744554955613713578294810314335999406889606758241335917998011423089025437794224098078006125634457100005916895235115288702963842975414489326804943821138583129310835120829609303515180364643413321957561714075030094250262079752503291996215700803848785003112277226691937868832008644409364410091334920556191162650515978390988029857307829445933378553268520642714334964835797537625622184475401302096345410672330450825524670626852929237497175289250320529612443105740262408378784435015271226406986756209842149534443851722004366113393354347590681236992999874094740441140826099178841388866295867997759672106782180315931595762773617345702265683118508781379480426800238424281176075583103568126123307019156957359085018373901499747925211359774898649510187641545538267371143420871196605332126789080094674028966939814645596850810656430904344505424740797607955717456463707660577436321156844447770864145799362773373761860089014191411036675399641289494345627303099850272287924836723447172863918417944285296526547741633653251503068066142596001231084420949432040728118109874626246039686163428834242184795772640631165821308950650083016619275832905900019972794283234488626578666367815217743366768426681810098419403817695917530448183474303457620935300256487449629102292585691384924994384292845462122034997232370470984617336441561365410028288826176028507920750289827977968182772331987579151363800298629021548960704526176364485255856054530800627720390098685937663443209417693714734610902539598470188750387208636163422653702305369985547085307632635510763226306448039335425306571679437751053569220863084790478813579899298664131319473475332611241002824349254186062986800524716283754567243629443248848705196708119815628151039154627666457546623695420339351167601477642649211193059755032635934900312496235862759989727695840651848293127960273186089765516788768337208480199442921458894647813763675884144915469192178405983874619096393775349849372856654078687806024114000982256003641021466543282702473171397985550414311278109825911484111250634353013238402490274854608590484323585274377651127066041107272512434893835325481109468069022497482310637296963430152343421801875545791539931927193865600291297255584746683994803719828733024203567248773536958960925992271532365217846066197579017805564582270730137079548231227441524761653864310990343917406332352367202760838567803318901888095034495231664851354649844881295836045074249977080042054511687849212037049811758916683267640622718905685344288636941463201410575634837687693783021419105686483217765412094160439557678297726854565723107833683267037930053153119241481667321755892290320111466828119479838839429869869693289406067575607225776785773817582947188900543679454307225857818923018307337809943657711415256197399932179716516315348434961918415338115252555271305949943919088658121033393780401333476549094611848017193532470259805158526625835066061201262660083415810928161780408603885309178092840872977424146589943304159773144639787993792571819423284322916126968555204703940869025535698007920303824866614959501309649021387074385963083776798613556925875618822137910262273415679941785784566976112908749077436545198354115438582069959276029244010891751125072080142298567965256387322692783897574284086219837225270234653705618543098747330554500703876730493622280933366536016750525155774600252870535198551722788196767311887084384894637079245321028520718251164713715442277310029132601353273193260875003062341437886531508156235127824362625167929974942948513061996068242987332729036898831731659240026671024716659594709974369126734389867827533428417375479257803954410972957085832212054005355253875414980470276777429851171317249774460537396751675606732609104564309562287622233432704460004831448164674718554015500823157138861782075679691271582354310783684387690594245914555860760916403197730185248783521857181017242127391399519078912018259097275041569337689050313195270545585451055879499368176615836371264942820888988843824056799575889092933619812522323045244638057881511358612569454888106609722665868365586529485496730142019499714377696236293984276476140237506118223793634230670509167720477762968309975259491949922247026767070429470752988389745504775784201059774691175489262576486265027867833344742460452912544789496892201765898502973654407495312515932137312122612550043570012417322316242520307778328711998619880347215315929140366020241059761619407394488373610818434856874162253986522286242314848225480421553254721002028628437776390404547719848637788132348870551569897083541649852548914199102050877494005473446299441456453454159615111785688634777012321440091888301556894293348778544132690688758615182582062081636162228774794582884695034817460854622950246854675477731273296717993888125265299227583984657608893446092055256204548769603062947592690788075394618650812008980194343147336126416623121505293199990906808329493632200890458479689099245704648806132628892547158745293612878658350517396536087078033852131404331441461335683209410242213053031655240960171202635650730540165469028963753345309099386904757069134195253619368773657907488219250238554325497614934232878467556080245076871483061387669837647860303323722077458606265199001910436499687396786775730727171767051753852466507470538309338396109160590380511264531679559466989536057739898837892176923727931927828239436437757216762326896350364058348894551403926143836366074885935422809090318602838408950908109235345532906307166923525753843380554960948855442776209573305879101642888501782274580304908066820889078028634519955108043934985947780529583413356580720771681727252866478111733458924958316532940738339595774472699824835251714634359161585324090466031593105584655015125430350250900936088477691633551412623816685023410802022023160970764356442345063947598573466169901971144531200074289903971575552687659827441770605013575847958013867358572492628309832067989015142851884416792796745283356303002845787426128810921156203947422764030112159899463987205422019243180317167109583606973421132968799015604889571884251252875278900126905162625499448020427930507147770070542913870546137017175124342822330561056869484420069016450356312169107757211732018057756234265754343431518855038878820909072752006854029937214835804542814550513013465075431557158324198071906100040055391826787575009529547247973654264096271193550629377435896588986270608609652933215847819233417674534517549770186001802208664414800040880346141563368573680013467251045139393803220975650040171885513576336850595827525756821630683074131647639486568524160414213094601705128325640174457694277495253052443896761976521548529706584200287752452481380540964977948306874297355650794248193380571567207828416899935877861208543901002018598979887033382725781778534268491434639495640921210310988224850394017131432554706870367675298616488246751396481767097974708597397726364272156408099580954327703708055271538785617097388505091181128034213527810252838620922047323224197885358406469509161115826800441029748214581263616652361133284593757639463780654791459156397133858596546485674106762993979735340396836528706704835735121933215841425350292139613049021601211478452966964795723105185413244799551886538084943622079401329918815758195014744332630999635612063694667192003418419776043951361340594957426681550233775612885084443193898816670889801915767834810791341330113008386921141757509825380484391646250582093669116077046607757646692704740054072261379317540948581100450145268341343370762467144925995835060765245206371306336354143221343636563926756316513887460605202054191722530562625743430968349562252540597187780970696467704009456298564261788360069604927256467215190627647413298899379939294827745153102709870815661169833663022758683510957937483153372312178936112806446192254508896665041976945272185243574204882580408668927946530717811625096361802194790215811156145305162316448921933292126615786442488182509876999020781854073028580040569701663143565983956812429066226775075022953922376089976826148110679673807423235869154470520701291851412169526361229347264822404802664182665295970715356644799233006316004796519582387218699044951896884444439592355114042583871369975259616750260619559952290262564269004977908721813197670458677634156873186072966895050726080853130368392651919426210904606125040467174127737099582728182333832173376310015736597853477040162191511171282768061747699351839537103909427766316424312180452951809564311880229013008574347722467050123773509115350172255917297316124184704162333975225621041686248267841651755893880610732607393786109509015343954508625002736849410655164548748557235848148545272938203195922268871512039173176583485731947272503488833795549752254670286814473367424753362330368630467081208590568408936811849247343985822391509972197391053331978602690475976900324078975006112512033710641173189505511426180271630649782519843906604459396308558031623028426216555301080364773226977002695223026153645289632341391354867935796532641287977409936535925242915099760069908665898666950530771315058503791163052606396416151050811733458756976772667227952262007690515468503055142990951329541740594675204708357495722688696733861868212268497444706928714601052874935110592727590699699796215795966985598930420561739478883125527151031808773626506481017413340539191148767738839976447731164094623667198508773393511688525398641130264719621832603993782269350797361879083561128547480279297117446962685717892510885578198361219582888726942724099861666764323540165417243373030421937616595249016939404113701490253200249504881512283521437912168980122183759957549037418384266716089436170907442426469807585369347684663800773085212526233388382209879730606237966086849401709674224981902243406164081558490354317884251802094691978471567005571125047652839157685332009923423292816308488483262420495282747207992199051441891848496549546915775098247312537740753101335892634233442459822297729056113534903669149041565627029656928879875250946359067910365452158081920104494729148094460594619328548631353496897737778622442525309568504968871341393756944796816154210705791641754475857709112236906143811988970771047473307190349921787482128031664389374001670293708519171142204383699022499409941371787953123869853629989748901809119894448948470148158869943532565890361717509012169058913092719056074366111990039498817138259861489235015901068184364161680541606366409718915722064776685590393978371853449896839218309099918088456736208400678040552236917919110005579581366408639854128667581342646092768032154493557156834022587924329619249399298015948449572587242865971270620825666579512396715912861306048373072529101324957600652488406383517199251783182021435985461331374249996237293772985115510062632267027390519662540167182137371400597928083759911074257614558739215412883455489270950758387146199811235646176621516416615080978351362939732716244805721294692013186011208924153556889306979237240122119726262768421890885808863731787475082280339636458579526514822327024106267688807987618559437872810857120120635128882136839060851149270559923065022216438651830916470902140088668614324739388397723367292956868711039748005417920865945972540686413287621952213351695890485164468387308931111839370173436394610945295065389504013663583946796454121602647820266039118998814244352144335648446010938255696327735731674083927634029542847902358917785239238812891014558911618173911242469393444812893010890834194562040599450019560476783241673449222545323238559889314110629564793574067422367466863932248198165613228430790393699466829700586687537241089103609294109674127205870740168459343452883424120428740790787006238906523558268173151061832249571845252887042257360917210002160390795968382751175977440747302894791284877362833114923809003715214764130180282728579011404350918154998667311292864313429983076684088418220531249010593770220195912154505818457391605503238492088902378481097271263754574892825220678548669010896585541606962837450197328757222286944435374998763344587942704209688344608118324641727015703435904165209115726813110386143973373876354320709628343217896139576484133550117161735824413061883522179752434353930330296085575180349968609821602315635009984650514740307217426124530610050319142975158891989212759417595460174116943954805367944238044476215377474165610222710193477761935596228387201473255480572223218777998457502458388007421333815858246101989148372936731156395889572682872239722791036829015772166279607859717217211582114064694876653291283970713768689557244949686954971216015980040336343759555595977053586304183066277570277951457991392775578466387736691471228783732319422660781295613204952061160875703461305538682206292151152760580811872972756001743189129172061260681305234647248652690136738657650902252030004796854556793372752649051441014178378561272436694934533309915214004852194326393314209350511521490295767385983914224547834870986889525829223823470965650012624052785789883671572164420031188004446698202054728088849178998153750329082590460740136013704123509899512622118744464408329890225778126316579955006033567191399185938537130876356469041462536107908524622278753450673635574938161354542526528791763784630157177290024898264082714189831163780414902120411998354740450629393161588337032837940725393652390063790080444054815943810075998265446107681062057649437467398888990842378123578322282177801384318507571020916643936448370906996780622439470953590839094409512006744888503925974341394459263795630455253358546906832775089433909934526335735566847270505137059008918554240996449351319227758344702422552045421375710053770036996377108706748581123357179227157813203648745092161038510295378867656420558198492469588455586594017720593561600777978440134609267196652565383834253689918663442115777296484468048271557038113646153520372954427646656241638227212974174463901695479089353504689148199911118817838740362121939636768195717831000621381099731402436326610939090874536043572897756178185039515783074900191863963644175251946733180400903119787617387533182927301660269896900673796284326946314766203363652238497574283389297634061896774226484716036211008524907880891711205204957655836557239308176120964509063653756667365654867287337422780443436812691045942097994149710839464187318298713241634615497033571999835814690950006982233559542717342564589034569147522758216060572157771192712607150378434365024061062670043926423358005114050608255075792443028454869721127306720492917731104757692567254427990880732707361531204853684442337327531603967844555016031567193193024445162787021723224193432016662039752365932038481484495911797401429296746198976158928143825789262203899182552611513852440518377502605187768760392216716001956043207784742996848131598018355664208135387804307966588478341025190647137331788845823290080882266276941897296930677857799459304394128760674622740596039047341351907158031563862618637923531676991576054558262380917869922402941002774517848764570866087105033697944811724998964018376326919042144351711677537746827496112483122165370083919851446112124327612316173271025161980018548867688847329367627882833289488591605206713786678401119680662195683436348999862055541304429470653150807691592614382315866772041166523577563253726646138572208086801906005938381232153898659628061859730626992278239985623036215891307816016734378120496249784706676369564160080067698293903543582136026834126911500983300402658561055339213091189777817509997971263897490165641414828176659554721459844995372329137807243986450442565306685396501380508078525083514904917124287329937811530506066960428398034843428379776828805579260120343244508354449952589722768572354101896891191953411303930275562168752313726905401159944383136309005964853374174544077367384448776658329623652677389943578194066072138899752445100531633417537894339740826831334028279432821239028998683789541388798711724577154817761670262278260824298826004838006661287711682319338925974439774145255594149908735023974349077204578296532025321864680677241903271310305283787469786161510610605101660471652661912176800965681947905748206678691548999779285559635149091177419187599649141609974423389245276999214366086106111421945504813063675293032003828776984199620115749510806797084379722741703409285913730367520453510827821482770997692783680046865811067339830031171628823145737751839196993863250898176029725400561575840846323039284087425795587096717669478339496253360469185750105146922437940523241607109084797628862479523346304816993171669682730535745781748072358848223921867568237609650185111333846026060513596091989076262918331154988474527522756149408291357616166702071583251054234935898688402843707988713444907339691230670578343242455357340112230897196542994860794094263577611749262220529904777529843303396662758196287866930880784404524449951603705333515495094357447779916872079076855746012826650110407242181634044076242797884045968396597925174574407520838626617717966701523873716964563766385754608674319409251087250182074808620674797665044115542389483120045062089723378430057003717028341744992387263941449741030523675654055929564367659792537712570597632527727212916725470082327237096953922937423927964886718664500680270111627116292647510827199272731355793422575044919852160447308963753475268893879739228682425716782751890408347025330730214533770862088257846669939147259364779067110250392841145018205827979492396502427060210100862963848125946952511142294187500634712966353543232268310824126202507243708709627105804665169157427265196145719922888452149571658253306771733756172011516434243038659533618994467007132056498677527193719621115982826857558085152717492148077074178965904428412110996615122886941074029006513538688365440247572574662866416984066836725293851052422409152505985077248180440816561295275538127633423797158151118056406424228613779268133409952203287309951810015408395111322348282501675170057906278990675172927435245691077636155864948794998728434274181379709472536520055050240909858702707924293534509374144156291738869207073329997255078616050630560000539094690313259048663362700725665299247336230474502505208763019798719750130074654867189401880313499862050531592090427328137432668052148275787708160173947858196918651219336481557629045764600541518827645888784026200445648645225098558603013997430176189149676908075669557848696290699553630849976568818897881551037932744022272494133716505516053494482238962497413844284259744114534316418175054133669081002229087613377968548550365068925465173465040108703603603059780879302853085559332969310434824667067842909381263755540472184445081274109214735270088122748144360967455536598804561089857925010834392689051419232074452133254817249278149481626730612490790729275119546739337738859747503895680998069571638421337499214507068242669350972792566453061938556114732202819284047583574866292485727152135451784212669941812703931257564752818751942333412156278415675260756758118771229301308886211285233819336566956001659438719524805859975967769750702643161892980957779649382900952852486541879554344828604907236767283260411155314230689821182917340927770327809599115710394990307037905721031828569955097031076331899779464287004109033590299442630725291840263594197262432232195654050454078997552896445387496280095838102030623733999959177552173461393975121062070435531120854623680565683118490709497819373295711597852876683907201984308952237518171854579522767841512012812971530524131750661368375475224981819545915136485135592325963926174430387012732261825145619447139499688419475853949015854050563277103235974231288025950679171993974447189243026543878086708434852654605893235110446012679857262686135255478802281374225100451102359641257272167088966653050210619423554908454757959533804131871511923394090694118776942071144593194826160421984952614380174729702364611376626670439128391266995904213895274226506895293425841570490018109915674585006857671702429576914922403186276228535333119099591344894074978268859854345768185029041226315560143561831684737946388742209516582635508311633557540890248359821607560773441001574703914213398635228283606813106937802066009746346170620058285706337029273877192514992991920068126199966492763040417690991727604379976786635643525113298290511441158461062499876041732127264506875117989897367335516506482120583477389812583020755854053683133218544635625820233616870660522552667775254553017239358913253368542992726866568334807087534140768896010066102512869603290490275016791608783948715557835717212889383392674428918521216730688646109123661442306609303393554323539176085696585120120211330488688638491967987613704817861402208305155511419346301861284623558626766973723976769555352340767433412082125614681406122940954044092820297574408971911378784330650123239740316930222668586826009208601943452801660634485160011553035622094157716748949965577572090691908473162465170388726335834779680904495658563420055706235367866661978114598819582955919139885351944270749167415893927856159637063724259335261370036502811984256480779775913307951068147520549021916281082847669630221244011095539066721900386672955227688180563192304859224150431409787079388009398739505608459799259305510085495229402273461944208599259553846913144250808475700440798934688235324119290219673266231753256452098498806346576231217664949045460099924331278597985940958642487705034047959461376733247390407904253545391334224072545356615300575128891922867833324782672167368114378229760511573426371939123112225725004774171707855987993849828018938296282343922708216565660370797086769979877838471793208123938666864541425922881406898278505830360046137188371492365011178143447522204118770798521518550756083417094361791780822798700184722091167457207351850890400240327530454539095510831231757700930744826406540147184285089129146565710717657704736406207365715683672302689890371647623616403832873572310850056623040227346913252814432384266374684970485822135089343883710721789925022647367978877169297228193799016878138936693517660507270310593922264218520749727017131921689370236159801101081402266238440712599504074575584264386609187939487857815942719633509729816843759389731075117747427859977339778220240432552202979387631866410457188531807160205845168428869639089519238371394629191441992493046427013850901391509359676292767502949690222674715495024469659531488006422160434936425495467271126557733351314478498409820880557887644333300638662271230418761886599799418004991908287168844587823619967061382872326798487611700823993924997757504470037308852943595108683448698480612242538336458001589788456290169103193173107704070212149668832589500394220109917231285821429002679332811386982997127986652050286833092686612413930945845157767896742236186584666484171442698826889057637524652855412763542412898622057505352852373230884818886852515473608621949210287489721862955789534414099092633304390459989048471705679436112205586319557723901908262858713373324956277480397157077364394913948856084215086119656139975207592268571897458308789119600438386111142209029183169472761235326674972468111649592036335571385050538022716223635283404498821007034495345971875624554994078842268878028547925352376510025954020746720306556924821775504978805638094656643282138227370109685923898760746778489523084268217290039531773103343320927362934222500085385807037030164126365142269031979448158607957228838294943943990798434255451888634462388928541758481180799916878351668880062636161341187974517919096613258395707693330254495613029838834315069893716652684649658086834794184561596246787235555262361626556149310286053165556925665877210299341233000684674060420252309389427128266394769300593638497070350231407132067858545605823220790830737206457868285449707258677167292567194261236546509693532736268796839915979778537452359506465207791488547692058215963835287036992703326364343968864071514370166424662803924490573887121831180521042562993639612175545311190365209881911432728756586626655728699703720404378773054139219473842911336365930456399587001156250550279079124010448922870954522989257483641681060167458085823133744710833458632199379047848512353891315175594946725178351888474949384518002360595589577136432674321904834513913798791928568793284764083650692126935752498657416870793823472309990900306180525411384739128566410752168683091715602929197832592019500715410481685360485373928260864156491461433109078788474882975234666375775452071495777013668951930156931526578288822655372454475390150964145853820853723901026678921431296175286534170853590864739919622745619067461146173218639846948984278934366239370609516329560653369290826647547785384115722506090170546237584437727784161096035423442342070035060944804974303037543129072816578679808361109049065168863621698307345963150974546449709856359481003805018002091619142604241812197664691042888204847485676414916260167648360470825201004813400386087755368892654513056019640690482707567480557963461452525153356793275864696357495449567642602589530718225862746375268730683678215752722719012422436716360192747421643072245382870017150508066987088998369849242887924621562588528227388403189153281423220510366545431431750246685547484034187025050817156802165953113997084366855102966237221135950416601658237063137308643041017821479004028931934454324501603099814589635777418198892708339399498497445345048520557061578171919361260156059461366490883338873304292949314278885031606162911110483249418485642214660828253534801308614178235568679601757328753357205890396709481422559838692595064135523313543188268449151127464714435230882899010393704542596835918326006916095197868144003205601507802493644360496790226921724975277741719955258904900160076079958173364180428441093698868764158752889273305886126645905854988114449655115609247352813526685608820552455406544858430712313647063482549379026568736449293266441057037169299449301263367814629327807165235200906157543992505802153151656463045122893880047579045532081176303447807784575617904366534520763335064500140772520629325227588735146783803147901300517824749642990122592803462815514062762683781900303423195563141943577018163271276287832174037949848522701519464019950506955135845399004890444578349079233849935747711021547502481130051843171306388447098875183406508328907899175561916392200329813572280555256076242641514563469994603542865249795816497827585998097405409554802772576481535079212369073568269103538687455730347468723686525796955001266243028961254435890794797480326091371121130925165162774383270959344385884237837065519592709112273330830268950016268395878007264994565428687150332175965309859692935207444794062769951740110928257412237111741573333964770065987551426915649114388370098842486233499312831457141334435452071646832611686625780922779942758493952066826045591929507409234636037172926202004887699014061545860264662035782576047726414055578091292328863060698117015965071409958969083571542483341823809374610843417161311994679029619271656187569198082046619062574743268273494357943678041481206406398485171192616133414639492543292502667696365825323963981952576817982187150551351725383350229295753391256740438350391690266082048346450943864217699871335170030575736015434310148393986732597753181439497729327572478966153919757699218373024748511377210184045449755621884092013942766564182944882595446023460754916987570381093131882245867562529097954283590359676187825903375249491065720015028348360276707302956346448447110611464165210705411178198256452800433420337289796959481633778432094131950397084178469555163697907900281768140304462532006539039405615029524461607285300608010588739747459640216082454589864718192344327262722480868653703191870491236911469943814271258684677527110340634645430122972162171574693931012260888413308071615817602728501106317020758638467899492790635771204187632386780829065506011940881948081752351809923948033089664556696368861134300668801711568757444806935440118004501843515219198332533109222376918341319491464510876395868019081915465168625767737207900174656635790262553878553006397555284024011519752884401445309761466079807201003296234535768929361532279217642130954802681993023814508414987980063032974879743107663059466835573307766282809333312344042686182410120005757332594342408202139463283310198288572210150499933549408777769482292230389024124138748769106159088154521589704762195542375548385029654397672823172022250084517005218257743154308952480628947563569456853454861996508874800340854606863209255738065579553717245788947718633685965067960045608397667008708686327781291230738071357401893755512308159344012377071075058345819978475838769499229790620601814508654267010374969091854043633544345208452051463120995043311418795747252580279313575690735112361584557751560368778341643816214025225417291260738671273960460542694040725384446445398520345149931021622651613859719288519749477261148397834837721554123117653005361303197571279991499811990756914954324645433083651670982742021604984976046810267400260032513140856151297705641056407741756876108449982575921008434194284763406916362918352965680375627872834194185580203884717952036264564366045531055716763686740848308167207962949776235316878595057604041399918914009473481486990324220305697720946592143627068361427953439330444581327765893966928815196940110723734970242186130225674678970060632705526252048455786757260248945866847012275495396565411230172082370252385571065726037478926051408418369862454682752286590619998996460107230983569823861290574750983592206447745133822102777805200379745516523332516621421260356934624498731544023276690307248241787807802944602887045693131715227456107874353409473639030967052936935374340154060579373649596209794191159789540114893249468711040252096729663470772234267984518719471028292389626383331187441929253196702052162290633735279067838064359356263060906719338145331834200211772046778487303744014713122254460569428347482776057919891636031783557864965349076455675012769486504722464849702397850822951536093755416950482268290239604147651968535706847737832485464410940743419434684626269778559057821824687372311519139654830014570675294958839141004958039501367069416066068229000641343737989031231436966837687782936378409162012981757065766340519521615848331304839348330352307615859610513972704285232691893921656326059440884080154050445124362809957934525921665328982764735595303388656158114069454515141858708145364901515617190670322218227696051699644182919612156960726251753539869351607727274812677116854803154430619400675126689472024437561615636598273362643844266753622413951033261335496360521428060882661752640397828470577057317094230161149918935357972640090686128670262090293647329883083142838753353712187316136733008578690612532735218043032151632019464625491201516378780006658335868837843080416764641985188747538785062702922929648924286001286888935336988260862821218404250278195877394066455658651764254796827833926600438980001294514214974710894583654720819285316756348286468840471398155891093206504019896089667285187987196683633131712444283207466216791266123492931314993597643917268876948361517967758910442335389437778766159897318855734270502612453512909594986031504971260898015825140146477432781533308485570300602480133831510751665233109986960322033984803668536602312943114087353794408285606138133748039066855405353838744440064021312997230553748300409454416554832450089978618916205908411285737083333037002059804761157290105758264702560980838615184056632380334887464527274434384952963844025770777332455485692077353328766377603470664683889551705614125904486241630626006473069606543170246199713768349662613539424965796577358334687516618219533947617339250811306491643970123852201100121555304823477732814378322293696068250834616560085141374692939307169942292972683315101233299883362151540333692294305655231955871192029285619704156470679175293154495034904449051337092634949991066205877514942777817133394751624110387677626521866322800324027470694388787864696102480589112869522012879379573045200406922735815918188549413492053468393008785066050556441316705965367593543929445819435930459710634260520580702401898631629342474734706594491488316044704840763555614245641828473413196140607993654043208086632156217155775898634896546351781679640785119204942614652749720215533357256830652330734507936214656654705982480759875742775635797593751252710351050779487334483847808914605145706666631261454266075390541472680096169509888192173282903595908756339146073857159350674172757923596432844309870164029579211630316974489579716145000333069173142579364515574251373084661717651303281672838130820253512026795734142049047493851245403221992861021200119457034792231132140342060250595279510767163048627903921604681984701942685574646470121268139747616445648853887171181301781185174122605471020370059366627404758818794479534062689952235847876644705852397999323967661824632307242165029584082743714579081345714352138528248771795651407593434275126305890203582392889821460116436818907839337838672440277477182330450858715509428451172941195665045210953100771494505348968680881293961098350367625765985379905633616710800043117207961487211953577161019028225078296035801864387803718136289604030709326280328797109244016834993381069838172541330583714320793489479983616356297673719939176195180465718683781554828832765537281571063679531902119674824055148560959869607650982567075662511454860354565384898144323786873140228059866220615509002456524437548102353647911775205314865851807443049208180337147895243639797339137611341061202694132908040594253856091985440455415257343547714030788054250102047688384425141969646181975835653195503390278441740934629410235258945585344721674978285664078366751041419620965294340315647054862845621377732636488137487085965203294959325193357509565348907818661671621841355051111378205788832166494616826141784976619418801416975769833391574089095404554820793752698376854635316392656923212930900464318826082966580976997904574414462013765854374338731180297235722019898559975552241586072739676004694080748693927801241819608957946249294467981584562968260381223748703672502305859498079404484969623132742647152702435087159271912765577271116256808226764649709007365108822264783977358323129686470260606946652393226832782961682680129639004580384264487251689609012763178473240068314171646434553465526508675636966511451962652997162549054922174623046191167972986166760341943010348955651388272123319479803324757505609502628710046262469753496144496809391436248204909813339372184522430590025095801872799210392691230657683604693102031017415034740746466990909845682948110704807167759762790304781118329707760381619994322866582935915205896553908923420873754161387761456823006901445060605504817206525333106270347501570737606063794761717812801990193562034918897383422120880986449923305953530599173258712467020749063318169101542630259925009728603362431122523881497050257445329100733698036413265940400656218218285633421055718986581301724232930397839168636049819828517885715278126330032537296424370118391297036158299903642450428514866341053332599002812769082101589523299914715401793744255833383447375100574678144187135678611533859386009479129536556640750873197291214474867810805385494592271028687211081544216987029554467848368663492713561875312045145775928874233372924546792727872032999278267642754194285767986792857732071423657974402695964696579965324093921389137315263753585913409409005946419198845271600624280207044128418544788395152188214257156997476550420462586275717749311218360315891360393427025189597127198307861520330773396839885482160049016718131593570649120443755645327436537199313165030504573738741153995459007863461070494663364892256915135553809328322879958108748318191782575105789452399750120465279242847503798073009358949782749241427937842356543849452474799127815033217599937208869853861374870223629067682958627783268783664469935513584342552618036217112588069710041791361458764132298893647763490057035860804361733723441483832742284541419199896650337808481834359589152471121673213519246519194860249094883236331562003292495739045865862849477501843069059443300189672104412838707007778857815638502125091172184334724246662410526209941019937273533119272316954602067727422012346419089986385758679699109349027885534374504421873190299740101031719783926212371546039988595493558784359744457359989721044851389455149489248587285355719418892483902524027483723550944865352276099043535094240188333927693569202918415188076175097103607673385405001788791831408335449886968130598804530779161510730059905494433609534057128541718843411239024782549425066522244632000534563639235865854181745437525662744257309816821197105302109429265346471099287310893222944160071310248191773486495148584150681501931574178275533176968376010432269680988128268280305235542990157682923062258473254279241547711084054965062462192188939844535472895321754651955587735334532361107618860487476972167020539704848989386070479218152611037284058710166636288037961245743554998832140899338060295701603367612117174457723288826874311107990649242563284882592591318682972803048330196531406508272092716260456529165864991376352920246059741605538603045852657742332100016633506297417602215475193804644800332945624599015211981525556445837757731127553125123183915613802027127406524592763673889442442330625282595536788584023233322905454285957784857752136989102357684675992586454010721403419643641680649989669247036002336428489790841187820091233659808867365059147562455469198209309777630691529364099816321633847328591473037206027105198110572698609749501961285361074545971908572385659872878256097659656904545564375132039657084075067088492679968060558594316476000370694308239774631206776508571848609389594662308098114036479347921452361971879009219783008122414691440577704196324762454747650181803472544490576413222119197798362781397825835404591986842801440308545031817270936584446421836133869930009369723342929826042553649819640541127839309647766859972259241518324824612926572315613129985021529445235389317420712950495017300740425654143750484122376294981993987878437175621986781462026740611232737733607947146613142814449841592305334447963254935810863262323575346833263471319058542573129035767957884388729277672143710421167341750814985701040541931898015532239705767065483519375012576795798496791065649025863510156335335287688337464047084905876187986876218506584837944966935331589070663157926716020867187946589514140599888220075071661019124107692410495016884172758943633061167772321837985233506819884575663889860054504443265486313461317321823690948501171586644412514168851683411297917636793659707756468766991017120663880378985384806640136830015922177708312311045556629749589458991388512778257626443102600475648212677199639871486695130119383202520916777774514347051389491930924637807939349142015836705564730479078866945014007867581097203624235072464613850864525289262574651656304563718237130797174845458715537404477293507398541003559065390389219084703456372568149497704436070795668089652330476824797081500750110563292911410678534891569122667007821087893922671781017140830176850092303406963173222557652961196505138516066350090129172404022677439269327601743872469697977991328208280363565509450416212422415233613807245980423655333033887180516457401035925772603271383680058329518350551504292149510506574002874718115987647691164610906004532945200488498319108203421065965687865973629006328142723888506385858020170413607889188861488612350339654301307226690413433413290486525811394417864685923629186852934789558073609269022487376025088593085019242492628638244498448813320040857140134301383250276615946195598599085714702832567230177063950118593577505560573227776923752813132061121594243844936357706533683664261060074807452240827151595576780866785034941324647144379464726626373958885182695329326013368427179039993549346461403267203296780990159985122484810162228087596098198390962958441749688105130915702378587808815379463505076577163123769363857600719002276268424441878751228094313618542521975736789813697915699772873648214432031050974452585093322303529731244298365956460989504863480896928735301204909949872872357747344282583569584050008642460417110595576959251828781315234247031644142514761494308451913158641674941327527716300946019674869857638496526272708006697923065876500706263570710342844044366427583169101640567069672158219541323522003451000082879345353993019345213292393676528187968610407288727325572956486457511241336287543864555125955934096889405006506620590955243589946351235180330725533317300000930331415760047917475896787765641386012597322578016376065385253021754149491693074195536746792349031116227329369100807664091134695672606774558668035793101086744799907579324025614514473867576468928861505683294000604786318695025881982651955519709739937074096165000545322442686589665645259714334269171027983312666140986116229668026058827937771103201778554794395801818039504217117415906736977841732267102154591306148958960195897384551496216474255936514702452602248818059118980013812800801030778296200987742689134823303225939856602240675443886048417304523299592224172425955978656736509621655305943053503948341838389503231450573703492871280758007633490671556652989778546236655674608601279654204639366446312095782179314815561380025362461232209442022899269059321791208137598421751154121204741941732823014731473672368319494195498973205061399975358960803955610723466200519830639978072517418879994386862768324335630669868660777277506590435019814913858003081300796986795376180648027472801829509214307714437163243672006486912999554633757827238877121806964526613015650156115692400306058881184382668517617957532635785771218261445641059909072682489254874302707214290591608067605258040925278094062000286456178257017173584868126939221801218441209518395754499902765802000649508240059350738168337078471298202049882743874085831614662805565843016186345808224573236214236228270771710646029947446079238718080834988682883797467657718689973713459328785440822217475525353019447820506913095316501954227511338775838578318220552104560980534434379925216528017968481362110107190200435336435211712339586876542809384806400983262627599205332328949592393220024427854887347460190966937109695775142327262917105075584722497088192612822209348520760597491184777486085191041824807284040753679023157336430722508258960735600159953828190436090629584097880993026098158502047400914205320392495717440556563573333848612603261324402495155884834670451265020205964558524316717121514975449994681345966874429005520311530465365111224130638958198848444892887564853795401953457379353179312311562702741055253895306004397615120064448509089884908892618768806428856397127127268953908910475438176252547412323937441635578780052787502241614666240523237900888468505464433385604561757623134450311831216115029178135031688518033511366099636939697932379612533181895152458904517522606711941636111938008859497401267478764092466135566393563276949226628442640994634161177572170113868790191561854811156221897259436124465199469872886473469234110598402248042655688888267070181898829314907380816256713824391661681442221167985719888206927131489909454974689590222260680169221797505575254523951709487255832312137840592932197533871354412728231758680329853607050446415418337433175705755209615345622673355354880317243507647794860818663772994444274951108346918201582748421114514999461719916913426243954240594047183168406459816784710854776593452039028315426792448154563292586972369796414893482910443808177261947798170837421449079305348697280785758442526510515689873984134420806526621945885857145997215422463622088037025707624474090444330930004381274319238660234452515560222627077216486580734940086556468290126852239729431160257001500525054285509291985228243817055881004037964667813326196391969675104595790910736658180942662352591353103390815296421533887304140998147405861844337444777360550823484854852521282830609433125115383165717109573594849592578914732254929663161292274988175934118033857561935516912592534217829066875851626814536187988915813955766680666865436487097271722888384409108277619898511919496052335248320435925208543131071120065258475043940464241952419343376886280405370360101492723508030789310101589880210748431231937916872536616569387939894992887974452727744165219152243214980730809175571962671883638547199020864089971400807485773641017506303930042481046247734595067098120056573826773718747831893418729315999217540020844301855282971451494526795897675758178341354346547081716797487276762220218179670752727510408504241416479077374117412871588305608454802460128868555983616015840539012019309627194006055362532265297369254440999746705463256166490337405799386376625459606351671721485703953011065634571210111813091223325720033104068059266630841769921599774560871865789406612451471024920714732712396146804731960784565963033308045957099474109336099437376155688940686104444059838202722129834921299740978098410801693638086464570715516052558280254895132972886298641992662337561612564944651992967015676020402670429144124633561993770043786893493618504135179363396406254319160583264051557441678292144977363238985116691826382104587158684942640611301935579960949792040547024280061566446957431336391814791976078207469561018067790647362511992358022582972925707474154313922373113261876583506668365548064032556528870532317623113676145535268386463886131580112288468550791032015423779549933249675089308852487024460981699167560202469754395109803282015017121592082497918324230436273030922804568583712174459575444901139293739454874749688297927803604505068759507511629411382866996011989482055679603732494607158370168981665425290446429806319566238228695379713752844239494911417908198917044757674816514068666050978649541893393675552074617671283339267047753073838795048914044166264692704189016198521687606853168228336832211915044549979986178140416429657778099849860693121681399146586925991554166622113309906518391611584790834661512219375698378628690919017082034733300121643300123713094051406726605268500639152750799724259516581171150509374762314751369410718645243467845764924391817493366591457927868765829410738753906499428017572314236041448157460738838193329225638123421225212067248520999126981206188078194559927126991265593455258569445656026243065248099438553396757592892295632139670233086637444132648909226456851829599085054988178731413414862896016301408445426681309711840686505552933790995863014691727383143949515503438570880116312962604478984208938486324770998354841356860800698024426851091965300195639793909448178116958073557292480013994334326796752659134483635377353234111784934301753247921486606200383288631605587172065518725251318769941364076761875228351987378931690872318876447864111397503033883188916278212521144691431226433284987756179084191045193500083315776592433333080012697360028021152044121219099789658728362439525339952233641732904093077949599856626369242907286787084972659489603894917290174995162922458634423892841397150645216549623306697367436640774439392492566030681489157582741882272239844708930036855522472994099240716539832745724112141538566649508192071341765817449712774637994268452869703893878088514643276377031107677402749523427645351416075443045907625722125082566519585872561046142766887568087193939028467471936283600942400864863151589759001848976486262664147369059205627141268586709617111327900198007295299171523073830136909026408657163518430741257625205550498850826967612014313466633681997999231149732647149582150767039157169242672425006536115871588490775132187693324607070631917521364774479710483501096527825743666832170374936233369034856858376052427204444753626024085814011131448628489743372704253772438337935800166401815968910859023186561019383346830572389614204298128140327228953426979767145521146779087809440316492904269895393910243986148021200411260138753360430184680311994602386641269507925538682471055581199158123726331538834017766450302850097241136271580700890663779434121765192449455190014143189049885455611974806702416170828580980898548235693777003652988337585995365708377094624180521345808592508835708858430124276910409713359671117904383164929244884579456389175992209893774232888260926979419791899387142425603388948924423740555232572223904896164826944055926872715404308148226340751153613192458620747171045432453251715770508579519791087473365264327234194336072989943069914764375726548631390647924547142144452838894746989138075015556519654254858783388505633534261202839658030643462701920780900776057191688393198917085896753037994519563062440996046047729629066437590068119109300237957795654050059159436089727613326618240795546335274770586533537927750204228676637807803946097207259635575598502222412255871216936964938617533854916518050319405347791459076575419992849965081973204045287956874379730364032280607633824115535036909815610512152926941440650289611064864674078167137377621170677020033574279585934075128110606559299573748276904563703000673919419370136124550705395377744027049539219500309949907436799911397174540591293627018081893497494271547818392758078399571284580301479200344757766123114719006608087017021829781656998508108236145758305165926648907104754351976397270469756655032700214192373025684893140044224083573936638017676866703171543015127801285992320817635949238101404150834516036860236375038921308287234142542008089250905840710090795606718282634565961642302630280423560130310257528544248815781695067074705744611693364485890096338103273771090673450113794800902163571358560299946005805560456228820519445080067623091603054103102443251941834089845571589040192532174297471175293142639112892344602422916807314622297501265345093854076376666916830898223033375787748626554520637077621388156999151363881078533004565415673197116166528302431627749542651263565791571903284297883894143410380515999884049803711251924679550714410337363170387632310150732779633928645794097334657180756426003531454678622577400409184457056689925409494411598283098378654667531520588435391436693194591084440589185189684486223068253594029800710295362958027872220477431367981207586815445799267692046264520770534977856557900234728524506004079869821997060733576838818158165903942515539410040810631697258359651590184000803820795400517002089282957661842348228354464813141080818181736127672702844577953522075998164533064147644448363497390810845827567205674098141110080294983179479878234895619544776529480712496834649763792048003178646394382282321290882107609630457814445988817914409530089506727412923658982494499595847382158417591547048186188406753199567372473976541490020187452147983817624181177942110899793059361010673023535421353908761720769756303430177475262163017585167995938061653098435102312649033910758508263698243076263708667241616136038718364760432278427339119006745028588703576063609646416740819354569526472054044221423027915940612758305772838087705400384539993845828398063075647317132805438203791422070311528564110533973000833109551131749168228605696076257341396826322376332010899009094517810147948827190827333550506584969530203506332410590893377795654793292597576728748429229894101955832802099994935160352104898356412797362780514788877925173611648406608554935870988739879680429979741712676827343682973847353151570777776036410685992346220002429377792102990599929766557080642216916244076662321658988798395255095118370108179320252800886332112275643301524377728430002604819460320729825180400195304572149495989158512693431917751289102618262676022820696169149849209184207998198254522391978054671614334754812295250568965224663318248298320263907724196082927265548068223052909706930621079116766390365113768234028840645171224437237987964405779108552334151478446459485287931658903852520533957913362914169295291495973101556547483380527298170414693839248806570061512402277768065088619312555943430637909214556479603895084376122763506403677264343813430614076660179878002920089155635101255173902481658696426609462746105573115564533819117369908308513300019619271071096432272103055976724435989055704436427397263400916808734662292399078477587934141477937851870106810575640790472452874860213639785526556504437330555099239199936919033387215744253174690717116822680862380426630865612436365049433330668076912846267520531166228994030493233659289536747564347229523192385301079791637986596017792310105629615707987111679706851980855988929199065124591307354031456021499612218404872300194254984540420404906383690132564233074830589772808971755912227709116890521018383241006905079996007100771015160330628768751340261193742970446013863066252988175449818062786406235151506948474094923315208159069872943554117921469356401680448652312134539408615140074588829946379199895720146347667928559319201568018955401466793959114433998382241739385511634287685403136268532638315195442556445015983400197045625475434657564247162774390512400227707823442068352303856121432703923537077489101680917113053189840415085805103288373847128558740671182119505969202992527835932358741676420745933081691563743896215401120789935938523021332949952321986801233767738806340754222934192261495702515576462186811404738935814450438792883723318568604155244877554569008649530620771757290504418507055038939950679102068787988211989080278754743369420023054115428822801861533394902925306676303266573787247640963249412347902370160373618159274747723154906657780485500680682241357875215097366961427075647201774136425014607689371152334714503059095246897152448307117415341531411585480535957331120417528946825666503233001091448319684534033144930024096053869583233574619794279017479428905938339689012218486342653782648838401811927293042282463078038602726385781370769142223278402793459115878043883776733648534164846098097889162321306199921924278153123629697509096356591645700837496285319772623315987052337666712157260066412948158650462027053712961931318532625615296932153835568369880773747981897218801619711937839717939141690385353128322532354124652428264397970429227762885550222684496268528265620182530542396356999915379343813007460025057510578810130054076578455462784049291695317577430275515220861398856021185553627466656195763933825432437277275459374365421042402295196484393957705922379432938466020299609585026098003382472771604541062413065662361281753732032999302394362310887998829758425897665852806948478152378698609564617287867918884796445560159078210799178956713769187612730729738776672800098781953081143854811524653824262436739894085823843044959088625998370849548360859878977611634831147912073895525835647056083785577554776177402994674039007206930615719474372842851421761365273449380594070237412115067467066487145463572280089393198796218165322646263393737994757972342745374490524914010458110115961252441696504360611329296086612874823573554123989873736658225101412961208748255268309803520106652749864934768249181746116992443857401690638563891746439379439694291650951656657680123355141137403587988091133252207539026981800098556405021623164550762850527347711613591301160167098411675649986576858852756763872635642593966524033483246618664451017919324891318666823309338306640159272666116647202653272418065731762495829804274641320902849695292515690617796393364820592823223516172175736691209693051992790193754863404561943821232906251625014923574666139348397982957809010866449260842539891379807416393778905502046553274756721783820167706827153448275466765198525339514015273076675712140223328696612288022863392794404819361691444112339996914188127837010164707226726551007412817134973770135723857182350779950776588034742403493219709926652856012830141644635641031922464461314294044655047080907364674746207379927177158010381680369297607197813571550166037876368577620659304367454623197739675281762113970715566180000534889653741439432616352308065578539825128991082974897311887557174763123753350988466893282289098412015709145593230477965978245414843212238384064938158836744639787874752074693351544543777011248436438586002202010575504516155055762820903178266687898024109956785748457342062678687428068565999322288871649198733694980995819140469118582222666170810937731660416008560623561494582073185165284328796701117050406994946942709196091978445110007569453220197874436178107281610916383655424743842780071847119552848926936385141653415198996781565679781121113417041533228567789314583828292728454551305525482572510542523272632008369419961314088920566309704305719048492215882399221231682690983656648451828020721459957417669741662930516942448868768590929384734569631372436383028169103587033238111564802693287970716755841463833046408291673314463242152456526382868972973813705354721103489512802156639668263398315345508716088458854897442146806703902536127532920335826328685927364613496794796576048530741633096163035291984603115499225251437351605957329028890198940225138723729175016830413179514628267998066221099645553045017402128749989281219505496337770133460105440139745560257809672978742991087105200174111050950396676401456611497967786339854606113672554680915675684187352156511768704320493446134606069832814321237209943598007423176046277963338091525565753071876444220967939117275430687446414764714332053318241532162956112256204234798250493610618546070033996901176761265418511156177952598037346569054015365575366643314425937778307005166843506652028603883496171888413742528598727250626444015455083647760529243472119916795516539665458975293600109562055358736228803516807264688982610535764589570753203613101433655910283770546070087340088724148083924466578378593890525154721714384972777952860780119181219559525276267549997501121704504922971637735998038525681490029092433441683638876972134197437477186589641538355075301527712993422129916225628012739647943199728112016489668812737730969127773037883274726236903396292957877443566630066224159610946850788528129299773403682676689758719341358597015757249228452066398512315766279269275573553403531082899515525159430203524821441933058026975083124685141915371535296555328758979831246371489904198067123498833576333694272905336673560134834574039662646805971182230233240960395926237878197577021403398480730125663843472352561258012738175820015550145234565736106063236444094567384195822197293265546591156783009703502839989877812825878370336341769282633452550108708424690073319573845442601967709970648615261867364529831292985818238720586699740321430536479223199896938158855774064356625194355050571893556963563445023696079292790754277485200585270991730133337999155894075346625808172462190937946841885907284682969467520938688586920500055616470136802015075175995893379582536435433694044628460277446231018160353589266276724568783865466381875718234797403812743920403101516793660355957592193340672939158416322532907851149349876394433439671246269723061271449998778089482148052779133209924964818998125962475517032666622565559274957146150224258645535093986171055105876648030953686354866339189515158241992739475266613447923607088245623836046234104374058185337221870539532755021834796932999274942172053271222778932030736733537570419867532131852150037800354151592451972596632219124255136735149172680837653477540487012094735535218081370136503422784469300918101632149007623595500793697920272523408091946914424294715658429597808534973625600707323130352841784943397896323770448472237355322622907843857121058508891016298840512341240719797209906707901442479745138930895887901193253621159261306966598646897184256426542517949590789321212566565536578934453787501587382849459077842569989662127832366501013865445024079042493956641209227615559662450192891653245563060677017664707427431851931300330452990149413390663354693560327598120078668729552560355392921053043773156108863900844720769729503251556864226235532019330112300395671139003500603358797498971295548943561992002461763917339292779744392698569119013772468172999655893671376549188416100142962127561196701702803965939761814616123074286633412918560436626516614218388047534277150582863689455264796259431864178275947793903938535537058502652187317945927633174718712906440114657600375531562309944104667975996963349040583744693658009346084308152114457646369401722701649336380283398682568659771985326269468944314079548222657277811587454631058236648438629242220538687113961543928678444623783088239229476043578019703925036120205597735993537670808746013638355943009531851082828322443942754415677403294211344129034152817780379063944553777888043178421448694059216003362873018670582182122227157323801356367623559404465267479458086110859727400527176547225223391999431689992990973049027671422673971139627697066344534761374546595761279297662231772943494472344909493610531442880225415954990029878062973039399051660595374537685497854936676808881315216385238199112300066156101355381038052867377473131248530205964724642986279802184461772063143340072943272900347928057576321116487366092283210013220998728843749851350529251903809415758976124694104208025891982094603990005740789082977913910364967432594012505452097945632204687983062250703944553282645057764847379860152434727767323447078996850689639824412392901005588374010537479779217364018297693356369350526773505657451604971304366501292455318172608687588165457046908992140602356119276449377734568737506640963525825959568426664718660434940494620799372368084108689515175486881364299088257147354547027338238736415370778826425555556215470242520060049545681613207655234334878762156834623147529503012927890949511674296601013839552666838597589187651427840379848459085253565508137185686289903949102912793437595608799006179965591525133863552366483851238648648700717761992390991093846133166763120453365651895039951228167003603121354140574800099398955736045813585550249436396928457131205076854955415382649036783884798795017199968299057204010330414885693818242043175042782912413676542693272192537776409292636215080116245410127088177479479613816348338525932980310690119164355128480650616100802815637259516869599614366581435019440263186736367028450793577535546323495923360340891773940412480869714595933779412373197335898995566542741938852212145067169123213389181575707636657354753909449171499041484284820996469447869225307826295870530314942446164086130964669236389887583915949534036978834793240049539202358187173373170493385611970758939036733832889656578695791176612036729757870377322346849564997423403025934705639076375247487854761054799387702990372862936481238385656351171397042870191379912568315615775953391231208063540936772026834326464673913171242799756417292947024087890606601541050939611402413376921364582596535655150272941501760785254514300416326684732394929239544298299823814457391385007550324435403258477962032619123510327305347358875364330144415433984617811816934431397639269737387901507631771329228308970199765384577543815144275259971942238508137542473235267577920655097247480246500695486827410307094527182481935347900630771337664365337986683639724591889569682502568414328643395314592200381515032702577363837984551763678790375099102096386435315592182357201154765133572889351773141083487657893848289665157447699960332951824450454952843233898383955559246335178575388138345456736670121707299982342635047312052812321622281857819075925772395619596936201743878093930415408869918232276111603655350360346183341320615414833494776754686171018027604794600003512435387332970485049822429850251369755210702627638859941138707238471990742093664087742531724709223315280111411098643891338065245516684478351685223150370565880146091463760953470901278842328957853349912559916018148819780858306534372003665208899908173680493917614404093709416644782900258891828706621816311854522713743919960492005045272466829169067364443411903762218029659497943190201386535247205042598030217622391637644813999915645688502122706363087935813510243487732094150716861074070376980460269321273259610520925606123980613660686587528475094783175101096722604993329592363201619133626496636671264983448142356530583240397918989477415708944842023835053976736225057303154965073963558593697487285237094502650092258250433844955933504364474701339386838680498688334477476275958703658210875925196824977513478084364735068989657898499844372272590653295603885318127746846768253781599756776115292886770657002662347779482119959421421351148378856425890645507647673890626703856265173355595718979445055846023791248730407098341419253359327810740466977263217010228222152912575594463225098622309742599593630268866842285542350303113523227941319885347181149016815399199343014690478598690420169332466573088327926857004751255709303133725834177234715705804466691714485985389823679044173636365509489390712553850224919764027618912241497287496538343538287977148516612809916725617464157934532030299819647655678767979787959643565452755874800856101545163832839767135944659814432226086583663859520737359909064535894079380560690249873048764089233898899867861486582437638841579067627839310274327325369712652234558825568018655063745192522381721373601637964485455856101733607361521459106939371347245577017110542350873993540070237740120204622643738699463468293720420249128043937353987410428382472257138893172189862394330742433985709985213348877585622336100864179403668402886846839691895485751779699818051431247817113083189436393216695227250016571934924995347376508599367318556835054045166413033179485165368322522657641230287025052704683567751084265721833397471072110242974193579322332454140039739630485471691451602788799785699917413569625967266418650123652070731797021078265252551245858093272687041819964059634481987052347250767645244141652773748693361627125536361644787876994629070845181511490146716401045981202939687439710706559504701708245748983599487880193141452440731713267252153605222077252706987315959349600262670540949912528658159919177800053814777369634437796176620604679592972420748371048700704149635223566371636797023957580072633166409755455562791921288169669741427081781926148293096595909623358446717805321292107289063994937678664812534163879074275462942578281973359277566986513489889313274789136432613595149705229416080139434527794620006784969695273235342168025270364043080825226464681803636098340942363046144159484198922451514935224208699648044698909262550338155485494019596957695471652523753598758157927453459185326073805173209739117712785798423803735484968115651073678702115724901152798299030095188079674339156077006694597075015227460425073911459291122748770903190743204216794528967538791306838526345030017411667233931332479661770596446740823938391650163015594489162118598412973182704997661219894787437883998990390594794605026873034284904028491934369336739234211335737089700165409981864363301638079486425579350110670096712739957861787726718997860511766617886942552060643539583774163978194680077605154808719934028727285312161113918867394903715877265240283549200413328418068296383155724955843594392430664106396334703734357527056849267437478400668322508469586484035832978453920966051228017089824253731061902611853251531278687853102574866361266711194554904537166552164814986462566054191368589254174055569287413689399441850964132305855340327968238328885296809215349904696939358961563893567203364471191232425932685061874951805660159688909971481175983659059011230782013199303822607609924188839608512554772938350426855100586802546237545224500397953357456193298905194959117482333264297730030104089480469655238029331340895647824621816033949902480375908654481257956900178725426270220593066377477187579044216322493576690608588708738615768815573843535968312371841054244559135764104335283024605162190009931192422475545438758386652766958838060440072312436365050223834218916540848285875231981306774424228928349118558962873286828266619031158609247447837706853594507752423896788755664684917809394753122341750091995188891700517413732485928196630736278904127833759572566035550203442593945852146734731423648229644025423532719842801826638316804465192898591954145737199116811684195312461451861159633645409455847121111435657307774629933643152645218576366853299693365547807528296222059407914153874189270102173060181957850011062614866364398270558235174295730866075606200919968873894586641326541392745601094876264813362688188391705175673677062052125789915373897250683447590374755824616463332895215676974909682418241867463690395037114088432305451607977886706940983629516543236426273106316789792001232358840643824814154274548549529266838752120989269610800719649968539604719253601594367706448003930126179587126938990224807437325356568602258133046167419526199962068137613412499484938969771249867423187843270335089500835383221603303509288929873972699401717486219678467105474514882349652716638177383115694520409439508278593033709760084869047896022386313477198389384353224149106093561666751538033587062365246612128559875983873851505288785975691890123112635847456677763995866157135247754621344344242509613853418867656534396385367202856575308578226414189558349873580453018508935807121632489565425005624791442937314009362463754616695671410937228273747141258591758971686851847478381884445371259847467754678656823811294804455137180529203518717854730997531040575779764065824281666270217443711928175293317251979266936641996409476524657361727350596357602382769621479569781462438283731896568763140727425264921256053027402106409546744841657065945235238160554404225013044346295280427154363234843582092634307864547013299940366595601871926329159805029302376847437981482800983110147953653087379319509166314530065787126713206946270051389801078893433422096118140453727267254047269243029861529774454226544394799184111631350746982875202089094035175492632573005469553173709097389054686284078330905714924953990710492311857821779010127989965135936918441234171694182536039262218463753361304600282255325258825240968129384575661101257822569461910738212636518670192643223979116433287165747197374765438851600448941496127067163688461484122650010913543498734814419953006113616049937459923497332394527567190772375186106891707844551657241014615466751556279698079162509105698574245345334338046807356260179713834600823147081357398085039610788113942887805547722691563669086483565213917987556430021332375751485284234212922472313617763501167921713874939048826036323299136516907363213351717305779841006920508051489392849230217040445296091338521524145961718487378959479157946424285523782012192800160392900004310227217356646067592228897058872637345985965263002142966890162342008974329215952172602507952183530740758341384854236914514673144018648230421606754374608411094653185569845764210170111449892478263224658833896277414029104355311439459814320174227449693664185749725867142961317788703963811276512042233806076304526897117714113498444248195224610477723428777132977083878188143614452013164723144985783012514000563048108887770469459672738222552676297575705572278740719417212124355098301838545577663450048735857789374294414593737402516698489092221218096254455824840604144099741510159914038547291129102355510773522206600219620934340368199774512591415747103837861785183518801253860272397950226336017788671990987497114991817702212509151631647378745037608429941955694357784018913729659661312507652200213809310012187896328564464123025950883101474108733599116727661226918930837576583914024807256306526819936865965448131088939861913166505962134360889067124563350880893419744481681270653612632949699152039355077209447475323241449852733038592287964048571064742333759830434085566558838449516526501048251537111618310895078661840250768373843301821487026311787598924763496159782717017316718616895579888126373660951477376100883970398101393555504327462459244152940377504728485290953125177127311080183509468313720851112653829815938624466866186126020342284812106324066611827626165754830738515751096540713036349171203624737931824722653668518722027773017209792629833610286972334023039323254574354971324248909070603753381723877351286408628239344953037997415371151176558716838089259591879711166081812595427081346502652199276642996636584478075205562305969125513379683291875489656609396262665044511185679022710526736603006859319686191142299338478303693922002567001144569314298998719404610089332987743411530597733896562359547181022069586015739869063842079985979700028361666917192449711620580417678418299900495467479062688616673161117714740647670439240982010074605844181130061364814267329502236748078886435052105716198464632201434306081234381444712691237031690619994084474610623674481035958326335265819634891528763540428743096039422742795389355636254527165664916135539347328681471695157798650364480667209332938361885576480195686339115479047573438683532553481086184090461266002702692212610007568017046054592607077989184218080639411547566729766068636896706763771455655960861983789187282935246030057634643969403566017170305230435717675496990564927772433919059528476629827723506955710324924633651305854487793947187562407333706140151687468553400779915949083999589464722459692958298983934006499119188084679339077322403727632949029264247972833888940988189146550576488664828779866026316087750556772941255076623457750535458581482583382935032582201714521202476586916292029042461072827494584417430850550188907108889069819178206737238928815940773637717457234894108064794255612119727174292851821187117006041841789447406116841198256296308989493984026769147809525201665901050559298241381621357064112648514406484066282988038456064316302928287918457312795147781036209140945726729588631876465508353835555528907782870559086825312002633909907347378456994016934475256645092114888421987334067776643140267912376138115040811006083024841191836380087165623388704418147714398616743853408503191468903496474141567404841348316683273485491159147357703814529452404825376003977289090235175100820006698420936117692869089899459805404716342246099315489401201620249724319892465336560238562945793335527676722119527968547411284293821872592952259746598864659418679969959161673670654184894180522317498403654623858417084676655274861744237781174526789300680904297278970461312979638711085803598353066738787050189650828274679268472340054666947926431042034570233397266135597189375716750881506380896934405837624848145314960634794086930084743675185509721058855716650314808725503616026406001686920580032911498908342531559860939577697720645337198263476207323931402915133490749605170021072816035418323337390298961781079905847135749931112458150042859009881110381842559120878045866114766209227639266957329616692548078355155523186384279728751004240237782041730170640463731787055519725771856865609742481985498919189659980246424304604503700482118533907884800784929873569328318248639381867934783346455067600777175057073995652596092910028247599628492797989133490230034246717946916543116704871425931572267700510509296098121952040458192264253860240254092705809245760852867856425926042517839545328512923001993175807805859285813422328701277581875270467216963586973567757876799600876437346669513017510093595425787959136137285079768396001126680212550988181097597142107074669412403378278299983383132757496662523880702323745246499623218955780005715448386750800180685546326151805045831680538398122740114712730855086144292829732019082205884570023839848151095347460368479528687552198185153685277438347013074508599065134700907247133660604038353069562884474005472229549628144577567838297919491030652213812029658164028476887121131132250545329205999309766452638921218898569514247660102803773286838724271488528161043596003596137869677894430888473681093526383574865150037048411094685024851225745041315582292174041738529227286918805602351368392757085023748806065008304222282042620766528455222719142918365181206229095651258193470282390769985984398721296135339654043883356743164725034937441792960712114153422924074545697047793016847741913657880949815870645326789216237192574023088712259361659282862143653157766195171722273996029629608353564715870530567233111244409744017238853614112741169351787778540260914419278797684440993837892492642529057628946768592110225016919335148425126069652219246143003660975711387755716980045827737036977786784370986473317625430078909812136658362010321707461156461808583170123450159341717866555873845101496806856420576339899899887774185482966796914238219173270464982332464206101047031581275938100719937064390637722739107123802540434848485908993039012373329152967338615518661979402327735059064789990737444975936327907249965829977191642597433793096674294926229062066890935120900043649872030459316051367002254914740210783615586229172877536786524345607953112132514402535226047099668535212479911085162104164376981306527493514666932794095876651262192057807135934157404059727596468510635707956871203577192806037299672381565278846775658731182689849230170983083482224065449080224488337172242869547692850514752750266952684089181003729329525111627280169240576112568340154517657963972634104859197127093848188463369286538300197901346632268622827557182499140171854029803663999215766147946743428355321443149702196351159677929824907325317265660208351856286078707310397662279054532354769767203800100147419724889851939131957818163184246862579905934220696326008699725054235768634569157498745106280304152859986035817869404485713736751644301035389878604551490773538234389885576048562178554250017854998799074383404840475402840654461288053675885809026900109388695335716159459676832092193817939564611381708445676428869607861623135903081450415405966055477203625496753156320107896600351205223541655560545280885924376199836591174845428725223133467420717234538266833890824760705311993612054929046445367830802131697463763559784822253923969148691236780767914053460786605922470546984188870190099568073152781142204869740823362181321354023595796803646738381267492184761808975791739980663013058346204106251346369900846180091531858509671150373171393329223648570607896769491528407102644361474636859197621318182086320432758038567909470085766179176154984846153464730768341458363532432819275293551529920153903831326609582241247882521099719275644196339662981488086303586648555053230991056136658945895514741983478805020073926056388879504105218425689105761228401431935107018888595908242845865449448328385217387186516109535226471018167623440796385218083252816566781183462483426617115513492072261395889115776950585386871320305871590160085764489222765204372700000605845241855019696761671620799342861566510692563436167452830116297415977939454266720298347625750375788366184429837840693623228558125822733724268944420558401398066079036213558969273241332957658286778083814155573465003289625117373920085643453256138713524245300572608369166766879480107873993914053697275287230324091949408501659558746837063831010297758882557419792221239979131645985788668886357903486872662260160632595605440736272680677402535842119742254301365358462312332454459087744727251156347035895204250780160137323556475973571963724867327924887444825167208086565698748472052589623886357653933518137993496566908901725773837995171928040737416930999677205629607910957917663493533302886307898775335451369122846773805880549616567094155926275114400942477489732852078791011527927248568881223998665768722670459651282002073635568392048643419486620266717292135711084874907835596695389833148891730679855725431796001611004903085785858608151911053252839906756487214743326859724844324835736834431252006924946071066642557496205185160631838711540018838653947976601600253809182592132628625950427883733367602478122515625213288605206979858217828048551635701504411042686274341841544939008203013121167375264152829856887591483103250886882889723688942951847826821745549634185236654527959424997358771526337533002436986960672097875764306798488443325322598626287248446290564726831944264412735905481942839975075435286770892461886947677525376676536372980683701815291798852427514297990625654122706226287359722592587234262763625505708434873352193292465699585655703791776873272573673820976734854047883386635349300175889035050889664731017897193019118366512189589979274489986941129110305782438546590235637893598079952044754923367820579042592822378658965925416164315909470599957650716336893666801206975355443080905990358254428435219310570613416520307719703561484826650855434368478400757291193356005351702196378110235096948044179472277426467410537478952679946005843378373979979087370393993944998527106215945999196736683501403069981171630162459190757986974538610988057274121224762863297282853481019768259910425277810421801972137022970330611327068732812758234976356212859655319682310011609302182827434950576739991178833466860719767161922679830112800598237039745635959599324866044880210103082678139496886565978705132082055949701772934115648764218132405244923081498541474061890075158974972178294363955067413832072094194661778282585832591887750989968285017549169995319923864786539792030205849729419239196237047636367520518820371462699817922244315040304392069769365882279750713266940606552845441856873192239887542739410363358416299247669736595953738374904020035280608021777039306966249199747011480425037293548155978726424477158878790728004995190033472935259194483705826289881019886750724893333782846359835827251297594563040423606501394448530285824421442408057694206593486017852649087188218660159041647188915978578024352975785670728849376351426991365685717648132147298491622169025840213450671288395616266130135618331844423217583731535539656038145183673548888796917920873969760340106754737381261082580222117057291474062116554863883868302585748564026143384210829156223478569347539659407772080803229812056058845296845590726243515347145225835316358885519098337091896546349559897549570807015782534455139898353919686399525082019893041502065675232732331034218812313064415947186637679912026189992743072057091425460783503474796858265862859818980487825367792192589173605304305097063596285241092586946149217097395504726172539678184200389162913438013126447083973842446557380200586162062182603638102284060257742491823381205764774146670059571158705973285587578016419640692260037075997290815572479188900290738863146444963102083579316833851351204014186040632604931701917500838171434494297835283687069553977933051420960483648154504207296746290219053274921134408769474531843601628164724080592489410993723538529628561025633425286248940326753357881204958060795907063280556397833990303558669922695789405663224963494395013577535712201990642673699134107710973833089237030483609318522822483385267155702443526454327391955276290662726432512704584597779555759200298711300490420566121323687993134896205600518626491287132529016916203247191360351158136193566068856669309827704578965269450023279004051604189797719300885189171890431074269051447934886918423437906635434191686001957526629578553441294781269810593681978740872845091902162260885837522392230229745765312695074349677747025076335694898112321320965292262635223147555781453673261091466647315644161559128181485116716492679642227566103238567285079542835854464118256298221387289953270704424411775473494088373176373694483620938775907324286796318597105187958695128461332735791289757236420729791410471724278813942371952750893803269103049052186903898544045440777757340815610710507986801249676239286573564466184499345759081784038586462496989673180149721936302996507616497889688044559566133156926419302647986876531351790212585410532840531409485028194948855014658780940453314065001998211429880853373986189738398380440253797129284653411846086666128438331273922203775102537644140249410872896207374691508713529930540810465097192299968661388735322543045100267875492899217932234851691268445288407640130279661005954585624625542296631539425680905543487576382003115126789123834628404678171254499104294535959426074790816239644407646166101292993655964178801761154366990498222471691753490056255521006367370892585069589653791420517056214105130636278456528300427206234842037700131252319001578720761283018475451085548223547611109667423027102107040885245690532599732958467535607492180475207565697384136808454843579082315543897313996811797152091435772994692563520012574803745746918347384365403205925339242929299897774933869371528530321863745308737885694122276300898987963637376065799082854864036870921380241330417553424391291539731665594527991331466299196056132740606331478057548970208104206194359342873823262422751488404603137992856823059647147461897896603864011873346526061449504880554909185181836067423608876804481106651232985787384941852958915941745472566909595131901368819847416268395117029026951135444016426974132332212323800010342526876879613371446652585677687263064117320661645896643040405666342190958906574856385142083867517978529899353952392971234913961776797543181574797526540138503167172049056595376960009111429093422303269774388268109665684010949050851994208797012151947681206751250908727142444948944939317010332282263498979020969708556659060895398170638767146405259243667280040749370657561656509458355430467808398527411466605705442442943086989050871531876534291303553763416181225539015410573081688384052576317702652466594520487719711648896984746367347041990283851595161623949459300969254190739821833215819899362849129761577650764961386865202039687701142610766066931332335125778811703044749528302211080755616644275072475886352813258683951701354460200322687609600485299926347300538353380226385878639438385782678114928191214956493426147369941881397062422499214403683979773452603593511156169679895068930744344426667905156969730729902434716135060801648479092841689927879262748505640634442406499928531633040181793118798896885811853821779944868472289384229010562341384183115620809056988056729831942641974654366608005720175179511186738256182877360015147976473117478444910639309737768770859944464558993828302892422635036792337077263035480987300774353391030270605829376523932086441488558134757317528821594561767401139487841731145348984017552683215187670075194965635748446932635458067039492593387687617752853230875224832960624282070357855511767468672870346850728248641198530784081460291696169889869012622995648374707305251242993066389274292562866580011278226244725843988395739332177391942604008120688658435781462246878649584785963526397661423823266496585877333595201267818357040215368936407427453593273232912517914851184572813061106422681047961955792494771425939525862850668969708414153109554428652316016313699373747933355060612684573159718065283948251626404437515236211175870674539119655065566526447809819754822187080168758359435107530971681124070641111412258165863195517410818456707661465545276668193985508665701824110412118110221099913914580886098193989125057474607292515115225262276996317082953686725010030652487708186062452483654145199737702810100519268321473499776047413557073359238462391614683053465484765597568994868731218745238137005976652776456221220327021723250812625408686849846215972226277126368426070467379976409824510775682163856591057217673475722342239313079263318173967388193017401135163565054909256309546273179089717286016990960917870681754216259710181430528130169251325081300621746212421145154567171839983512845088179388309516888754848601346406898999286354166682869071463582671704479694497681545619025224686288073646496666811895989742000615729309888954671657064673221136409328118985840236211116078526003539406724890749746792368022568359482043106190063111985766035949755920499862711560192754088582601575937593017458360368462377709381030150425251011044916149705451462131331075152663417545020798840492103101671638087338118258120725749297784091111638093411608963207220562122941029802809281588348758376652631111550151858069596664191629163815043601714066093211399128084555030514797156754672929177575871974550692436372953218340065444235376395987313980654401749130067138050518061826874516075557694973249191467296412797212848009269442200901313241290846299107666470166913675464510631386156021252655275493509337022633892420190662483474920322628160795469309064854824556656391783856320662357275619330786310547656723348996449804008048574964284172086690906104201744330802193868406120009354238243290421049049599688129862175257043734804242184693377820142805704413578919757837598760487034043324418647620610412099683557323140820660005305985101791277659414481716430961837617914511719687746823100686006314422060062115182936303768153441136202188953576231124745791850237437188762471549412047517754516388794499121657091165834167091776448564461882056849813094094373262563478767258803801124032242287696931100093509771724997325325838699694879405220012257766342427188137935649097293342478856818238953540338151664359611416454577306680139587252129942389544780830784825272960507519113825569568407554432145845616435985525498265497204540567842356721069740376912992321646036788994787154541816257968865091114777036766516060358247005277366753679186874057657956103379998548302598918778993452689490904361317517297875139525692551084816473606826647369369078309097338857249398575280453980200033445767455091922645014518968319737831436645673654453074052555274735036342728465038096901978479896540557433712805907648295019896072366984977549687712265777290245958781851187492794784396067462525828675275528868112816275414894846633107720572223801084942289724566948174842713277637165195308597167765927613804571484740163220046449688318421315231958771523748130641289234716146838669794187480581466654359345346397111164144797119257527793038904952207132833220998784925382798278029500556509461811495360106870420752325289506447611780165054833505695059907365919679333663280873931129601673838714187466108981683142122250478471325938045447750683925225775077722708544385695131656522010402795793717776605215840675243267589890984936145889747143879975395054536742823228103513952371060215065716850960050977641771381195029701846279859407226305443809422929840606591095516719962215996802580713304737649026179926710769293027798932558982814112888486099778286596666391411782129000318357144478415755405365197863668033254830796033345770764143870097120771444262476919308538844795731918636038140629081551755349003391320048313547053316870857058962071486685222113789574020731250951387614998650224709746504590590104157085991295799829029794748433163689952208849028848132102453858312077712374277365133663608630074854294508095942409138307498337821216009584628610419840060442014812463970773504688696082710728607249593913207108912862672821150515339144131885449017220422933259239916388777254276782195021736723265877437957705692105370245666773210245886646596084690201594764823840096825828941961105033237052139275268533569585389505075024141589434014989828786514564616115711089804018256004128212713529920796922409986880223908904270262051478853003348281387628233561620246383902884342776984427006324118390237545605536938131220763677869462034750873768327787977292231537278265645533799037328925413448558610762658309468791468699160121553847132210300768912856839505643194204199658156035458967957660427950009096697367747674027740061742331017471993608960475748266959039647753610576201782766009396760139905272517146432633017566271431519086477222394765225374011099057600166192813991716233655584096286082920120492135465507057166896714984605687890886036576335422323120304612062907591798500334388872826911872874936209567656804045223950746759876952293458686691295165713449215247688766221505144712894055813094847810924290562950215496004021363666778337751351052273090346625057942480010620537618577187134839775232914616682218224061368320719900895527380736350001220017555324340131085125638944124306651213826456523606400516121608893622993891815715018693885154001453155112502864037295626884403659121412419963172473344209420147632666790098984112635681816938194059480354673236676359416179494201038402760612882079716396307380402337547758414179643043325735590925128672926482097645736976699184425099784429021990642499011929110596156382611406231705993807700047793995743648480788712320986304967288314137699024223936869346996388489351574701008274315903905033577766460776131317670599552067905602743225187872836685880630611260143832775860543495107879854752675684859537243347697378467014478910253458799060161094200102322981153474948742282705989002493969771267102951658631612411363995159883957739505507889530830500546680899743730387084783157077031081013008426151205230413426506632718414395322548850899443409108040131865442640525934796137317042315788384228676686832859141645893776078272677956566637340062262932768026656508906092518689580136524313938068976982681784530852906185969131318075910608726051889046944357188550820462290580089489351668319902578146568803755051389399570908704104988641708101572659358656816087016719068739722818135109092200782441988994370736865084627505921166768716934315310583343867115035385083517778165422762130641860373709489097508476872495928890621002970486447058360166985027714271997534913801714861687413021579771687706462286160994404285735417509810811875572494328206311510541990756412718924458889247685750326874590483232278020095075972231263842781495147141591580375450678157027823496328262147464668796769006231387609125705752035567371618003319833581702518845220736599660610289813523187176414049252478237977142572514700997342961520053088988295556580160030107917360017188446726832342234598669735271057107286884938783057291385209694772346829688264034180621426457000337303650313191619279163087876042001574878414207611161117006747393747680325870705754993990573122249921751615375130816360035640004481687051907575791642879242294395680681181507512664682046364215013225618656032880735333095942675970054653134926133623479821508013603455201516576716297801787500291586887362765609391952511096802104357981426743059478591247917904368407183971252139599345335740016936064404024353235124337594074618632336182698467302611717098466009316259069802439709949204134729968993369157033399220614743760799804300623257794916334285514822921863240845155410795178113757662732944936733391007307529025077710894282275515922479867779190945926465896028971903751303088991344907912711785751768678828840887147137234660958203744770217100433228681887403436712879196864843188384409051995307387455830970457962852463945843328349012989615821020562824840810098518713714893132267691027161863814974813390904828190014586933547904312999013525965114184818129418655838263805612284592967217529802893400984744280102495563483344022288948885972184854533281517756017855392893175232551042622423773245719693780745098470928573570882975494061523914190691793706591140007330099103813723908066281712410165360956753057720768019326987473774455613691432216294498194818880084694036367477183333266496577638989692901991070846218017780061955315298039446089125441942179675436625765542629113560786211336748550385353373013919435996813285921838019886279863664433902218020907900122692558738872845721398806654908537568923629880813570686062552377984823705000982351441464214408561115910937168014867124391083002328951388265832443541854520805844946470737987848438008458907543249738936317348560841646689956234863822535439248107561461621951434852605068886146223352940229696157670689811183584340111096363531862209876243594378646771833225846520465382455132198410958959096347123839329719778691483095574125463988803381803708038892501486967382215710545652647023291070246147319387032451526023735660072832768210732276972257152580381476181069242642839402951337358392761768711053953989931850206006459673159345607913171571288719461773425486944926013825466900122687786826750673856494382306763102744359439408430090601743901129326132887296041621985628158872959896422826709143165540341440313128769405853741641444943463739186731987066368114753540629724309017663691027293521469700890522073928244616793580663461162172824562601707017152725838826985488554316491815088896314523509507764607672809319062463871718422822632276316293054913932624383072269542598044625864682754520681390075004455831391512589967328117577299066728171470614453524622856675807122367428564303952124348120237849298363608727042684142730015241319229474082597187983810883931942673057479353155881096450187080902969576977292630393571228902307945978717071211671011573795442979345738594337131756255363837277945892609201890341902658165091259975878893540935097747149095305216370614353171702675567114381323242175345167252658758961336660980906550778964243870446004451289743552277970776376287096828273532449809044733115466886721538461777709174432344080536483364879427207976472229320589875995630986020507877882435292870718661927678183486257406786548353726911763103918501263357508043211554030316164353600944161398556646128193604144186894337663352417795324389332574611261615693517075603928145067358274478701734162892176075523517980254882534445161149197229396140902773213321276197198583032728568114741442295806670974288615860503598697269505295071657396716238045010692535927488456836845915506726672541240549199137784348807247818005106323120223373745450530982254497187673238790059661162781532476013326261501391219059814705319012524467159140200097973964985980935120337586144828855240899327465902626050928152637956678201525101776262631316868496861258001352808423558639730767119160520416190057082844001560559036553416415749680412244695617453574893190052560748947244448462114958276474327821401536713397076411794216950548067906725377987875186659509185683277244253156739259906547237404510044921699684615703424019448141560245683585106021467063403982994644692620157864324179775493821924068297919971254326781956988467922688942642154851268445738483873488437057965498647070833686942570395360949330339244834842640640015908412266912281402675606337275631192254946229449140745686030778769767490027575175314699592491464445822685722526944384331104495177906117399806365551261109139241075628057267295328505252525734695458756393880024867910834458492637811186631307417049581734998329022193780492503203490713098797087159175571475343956063121695119461166477740277902310552186294696095341622646913582606888196318132756032109394017390855006930258163409112920145158408028789329939220536733740774324775442965359839111336257622605487909524855033954925648097887750163095416306934166755441150940222120860788931319913728689383226501633006645913539006608350544829832826873619200954675929898952150207432765794939721474670741925666927732132694413373951732941751700382188258222478847858173419360526233608305085954128975548095831411643535278837362878573668733482566955859435968951390683398873066005025340873824000311550035910253462849578722197561116353663335826655460097877756336821680565431235057678819162295271542950083005762030301079971668764357814324387042404157557313012390290055140802490969342759436757560712969756886593105966273830702003272159151052750080960939780958630593518428053951791181507296636979544763819127926360329941840896631982080451914768744301233669453257781405124110251081584294618643017844705717865630872936457474757820339747047962723479965097660178124509843747536350190321841754049986683469050773110742348964376014906045375436820645428664881678759669498276678602030885903531040507136292048072900579677820938175509048364542179065705999356022701282186675198018499075051793613823692791345857635073001274176127085875007373712344837417595218361421622884466324380958975896965765511838345591968027353683635810307915676001157361221283679064986309011573744066719038512422997898403781899983026648454761162982199228778955775923109684414625044402035366011850372508763387353153438093809710594162783496429551496375924014045402009691342898218845825135689689261332298588888513649122915484879136135458156152500423388028023571531331793534948454841730155804732433600136153049570230911404452380692759048825714754044583673954826674769730741990907293585575454407342969184163925937013371499515039233027221744029027068188316806260769008055956476775485001194629988107482373318279790947571942028984472182993416277857135095027057950376285621013060201208491556964953972838482115628568860706734748818542021908940044191284324117011381199999876280915453184713470624323404827268452039242321185491750114881820567017614383582474634685514903359458844853476394317688535029629583336063811910069231095116863365361954517562514812184186840628493889278638632548396435783986705648594440650625741612737346286665589676199992750447185020384785782706568150041500363167416935045855268891742536624932743548306854757475835705378605977723925442619005751500483867778351708460348614601774022370358249571415047179672282561055884312633784242189129216801476677690348932461529609189795839369416393781843352487621653578672036617803263884694399393024974827750621439359252201887493208716904127921356641636156946022691694833752039143233580807366047886051627209463226622590273175287712119528636576923032275128796303018160298420988323260387493567965743943876767921335221834583423883970762100278968111162843910614170170104461034598614423471546841893230629265025409631221344200180568087844276432300721647905990349310449758610868707267730386915574513664276588486578178617898081095691058233878661772651614378440010884969247032046659668398406694988963246722649062293741391101354681280748362144964273820308924399063889387833277331659457950438308152864957516673371108320594742665574937381755620871464484829185523345426905814807472800962424082100216385435424159720656846499923162919039265633820889815613837744254762247590694023008793972716279968916700455607080175054607673024063152766836519370086962146921972456548784103181868737729895510131746929671517923939134325982760473225441973844827868865110371978045087970977002335284888060250493319643478513349315849762915404159785934967080508168047462441862924816571927432941142360362731843298483305810196674995321407178547711097661015410573043014316381026281625917123817271781308434669247193967039349310119561365853028523930587829757411232039704450398061553864685847830338654657226338527171736569988397628556840697166350514727017640516766757785513738213670854399197589403587344966605114278184913042112362576684801415395609654125060390258851073258714345239724825128404712359386066409021210867293510068407601472070288697809959010376242013603951820207271187493223439192833189877718389213746403937440324636823350154658497313781961766552794556547280584234652735419491011567270613926434695894213863992041000767120734012177730082153305570765622538349846929790771068094656225864261534396872047180007638428014522773050361132378418282352230219959807601770378543685156929555030233143726350819796387773581534645253840809213583235355520349945687748163481238163992219563121592257398719958196529323815628304879185964837443586425596591336729626169626113198211759449213174075083880851758354230440840684930751772747472611797597902940361777261016007147724674696005936182941450576362009661197019860198163905001644303193012066590456277532670385922599576453168478141978953737658561149200173278524739411146164988537113351150198358919784644284961244440106363052138760060618902846243208248606698989955560202387377477376497142517245170486011947642181374864452497229709001086457072639567748150974508160236060516400488353964368850789775934848214175501430389652402967031407539807833576013297245729085642776366257566941863213728970869136058897277650706018265452276508308882858832827258180412618132349129768643462275706101972022243247506876420907988946280797613830819862928267295601433453819324110439250210024289619581597924821930103883139553664046258504034619180476224977682374708415889366656772587030175389705303492505414019006854925167854018283383855021685954379202909798294755168787636956785874769718844252728265771219752775686348318216532362349555746802584194922074179068341343166099065531755594565000262524775846806726085555835578779584161152208186817427454913705262477405660656126582969684292080882194540852695961531199286427896828414062712839057580491314010809340580976249876032291129771927892444121715239545479980071454526464141102841041171951050582634915210833005562748276313208020135530802657141763301332521132250713196820630880014429169790884876742412684476809191163977986915370611222357697932278296311779777307198722233250941552774394490610381056948270996021485355190930305096461364527133834756721587861319986802205465398276642166008423427580823327032701688624673507518509715191497229433694516521285111745116012201934457314094581764384622648836421114861729456045926753076272130903022263036823484679269678304310583078155754585088253873536630172840971548596932356271904243573257016878917952256548636371620259474542783837059689093407892602808962346212423181390635016502729698715660321423102118566253971092622090110599121438994802270297444831877428831022090915885190164475100240284129788114748505174389021278811714009626015963229957853409567647294934991584477371528765469872930349919646978122044288046836409051754010667152362762670650171406180262232580019791450057564788537875392113909373076563306712400939937670053184492586877144411584078398684464458113488631713690226863705626956466673368393305641099729283200737331903363839001992688364681800620226688306163841982293808687381922037056422012245986816257249329706384250391201219115723767145026673490675986798477093372962677171259871445583138681132735388969536739708916591122246237853936499648136734536261982400290825512866738610901228571294776988595766463897491849789323478612018104424973699656777852343487619106316781407374257108998001064817635204326677583050895469625329045776493419305981668195785057097476556146742488751116630394163578308854016914159283447955168106360151185862812730617041022546783068993477284734876309304625159948074407821216094664698118155953388739941041510030104841136089302678161810240238363540479112419857491669961514408058768909391708127969341613027178822539928680090172209657939803007112360732796298115925253006375161494698882583171127323033633241883955025557980588329103698354856754875722556931222838269133964801868229437462535570965658547156717924579715961252638780329468938667777981538300599067506684423595959830516589744462259034459377906870211669330094667788212605121090410952375177636499390902374659317768573493556844029643571242022498590666972195810548128887570888018957392527986424595490192945880821749781721052209627363858209346135769888951747992436134274479681980536725458854549657703205823723089590113368834929603365944320114942470006814082841232504321612284001163397043258475213436189735266941000154896932270711620893777373481622403440935343585135513087839803273718331398283080358998237256161613378531410394723640213452845418042496754665564114675658536793619960780335508934973580183683714405218366189156843398966913708708593162071077509600120049610238395387008302195920895892925406316455021537290518864455239697930802614107934376551558470205754688128337823253370937337814182437434941254356288543707943537068892718283303201645680883102206083188071343435591908866589278540818264252677177918740110105892735159478507408378639137432835438827602303477644039099518012795464429470038586623423933719807131949849241811342607459275118183806440319473571947191321646432176084079869967574224679259003323110342012566896504133870572898722834200542012649237327506904088033202718841730011250281028706291658662080925160369013499193252204448216300172990408856618717820687870661266270336046166851135973913066984374889631399863321077050249512098754542851487012814863993104146114607491650664667051427662018657458298029060799209320642738710008465304000344598462326856334755772388568834647599518532618495218975273938092691712058967660788521706978076366545777989968334288367856513679015449004551414677181126792342216219092138811311351576746131357085028181896586328240729660285288890271963739026168683395194523059417820411672758658113919185474056438917159274729537250667465429543661760349654638920617038675039531632236633170997904845569096911164060285848199753672644999968447662409572628382699477365326661876490335521811175275324113180001887176703562434939700860434584107138316367554594052255045041013642986148159980990155379618492233283339995637833804387323609730856182860591269674367091652199523683516662548323878102959648236582390255169706359413773974089961691491990586635180590034571422668887695682194171658978337911999296692822506699247282053818963305442384030921470025407242564410083253587755926664335384466905554557036588356131041890006181140995749998873848821926950209089727160221045092480524506509885943341206001117219766026185702388973630585080049796145661187349632244190984935555114054698369773512931473920715227391142153634626128250159845961247080367876819321207999543504814950410946955360566735460144898493687220191058650605585894696096562514680164026611668183599498933245484254233681542603386794780784987789769365441288669348672836692911321396705480699397298318172620718431946083519095725541230909047210917501485981914217391040457140767408115417291793881534384522830713704648975299872498318694432268978675138892222708058695212503876867005531873851446155816046018339186374676859233150938168768494005264811026987478317518645160444107885605173544426872919049466467848011839943832270347973044121948479237590642554371703256159003839114940673813345468918672968000756930638918050410584896772907005500181697707241584481043514317640829290875459849584332674809502620597449584563848760589802500216111735478505353705075291147345765541508616447492200096327441786561796239752802647544195766249810394112677215248893349275927227632735771877594424670476298428582940215188395378989471995356787445179297918348146109830221554450453914464243206838948064343776565459608155048408126869305948030279083171724993169535338376358211258317727056228310856143798430493177193105459036749522688237156388605133381421725245854372415165501273642289776291906453526046744718456920368153022256011454686018811276527956287108416463065183118595478338844176432879619930137965426886649081839783308245621276262105598169743915926595590666129269472590053648104691569196273894790890053032320387735977755597476493046566674862754895333143860569283814017997871581631060957650377768761851373140605520800501904427150874422333453642812290857981379150090703754077884368757713639548224779266931937919251202488950755520984905257828150912693686651391089214156416382160573922037222521558440537753645318935978685040891537806324006397030230483380519918788139793815772987088380549561390760281711496218224504911394241437453417215092513557559530381540528178833581416039462200823585391031824605594312647057314792656303246512451123381270616591175237387467203372579406929394486117337751104313165098195766190778135517810860283633322247295787666509180307613670668994528219192298493843118119208787952510381913078019799718252960503836083483775810525675710751545445798292448803098824681038213997335078503393805592143353193025751127601958289119285199623356012390553603300392684476250730918851399768726107093920678672904889012605011797000205887163695522709671669351962521836318253023653367804676642826231279021222707611165353545518565737891000044950164870621292878904468131773801464361205161279593125423901662034843373307197775432365655923623570502601300614396453879003709228599464749749767744869698382263646823884525525655536438587560437342057752748545435742610517339926361415698038918999996367172257803859791882209546971117607347453872859142085225642671246112195796376699905972465613775875910490056893660391598196722748387153658252512764801952632538981806399575013574943470558717388449598146778164995284213463107211372135609449361985750564348749569063483824569554271301096404230328084560109557971350690536788840778115953130444738255101349237258776840845212827288710543370547978904176234206635441162247951486137247387322664604332767313074953674522281590368509380163696400474583359378003990262777166174905835340626309366660979202067674588691428436484063702043827379618012157330971130348663560073523646748697031632354902558603819913879492490200586712639088287487708704411575091109703966350727489341938373071368205857656909960349369881077461295046296343062087382112240128859095043082312701384892145086144879498025582376682881814845809937155921675195534627769798867569666770281703980915562689784665287224961716525971346396027133894691719880077103649446345850279640990618917730693524745208156353629492783721097291927740563990411463257599435250727726416840955852209777653095294122392990735232475740946463313851029965522141813468838080891511393592421657843760759668831531486992622209928757607215796557928117044892694583247490169093130740962320098013815450409913622546372410327492323463188046755565198928867944756068412433678616368858102075412911100811476117697997571632311602265051684826381893097481307428293332275066512925418856794478332318338539019883477405982755940598099779882300260471875646858330257442911616675186245283712418587914695503807804211762096499291206610898017954774457948637716464001853018846449736685840565742730372322301799912282799066890567191182765962864971488111988566691448635505897266716218320118349932521300460203016537719595246288393124399372845283771289309402861263048863912591838793051572159279562735979861085612728008398726495728895577453186729473259810542836657864856267542019711783572268613879881393497676062887167178386801719252956796854621621417409794227847322789347865274199294266760844018798267301553942229877750149809300575463960646740256008777002496131824157329050825953631382486450772928514505692475584213306892537246517245593427990626644942516988294810968246579834381858546105075236665780349346600124602313679634083350572771757246495062529052581545063956980483680530461399272072165934117969647001987861439211529798772464569415264226456831571478351044605063408636187187737813858158026285216807353204886815302651590309185725650940289566507399911671338176893272861666727219522529903991327603875266885179877441639396125296440455919890199727914158030312900016284843678999498665643722783637137715529934557009432230902536497762839580167960984335849282817210875748645881238654897060449271076520811742252347329207752193162539362181206207944802491353146646350396079338110449657434104396623200974836687132156678155194575270326676023560371944018877320887542164572325832218584525087509722218984711735308633291375076412155458799886982264968291521653470504596746302901215951963534984717268306185260444585193895716394502861046659125903403805180664784278802640682828572614859091707727392415678677320832302694724792103575812138650481398288463077204516526881509906729902510128395407514822618398631946989199152794244651133046486662915957958941394588782075518778064063353083434717789423561539952988881317774694956758134763047484727368844048906143896440226219890225828482411672934066883405195488138848256502897447958836383002363433668629810890400750495728248317100908207472266075616157760135024406552137990565105984443288859943581619581907993366628068666490431667716431582053846974080087843590293329944895860634740203891525273852591081073252528716979867576625678964566637311900868490991032855893569549387699023125000773384576698163234848529020397986628383353754884191639620990688996893867674550883860487178470094445995990749313711399815158762105717343954838038034713074747414845275384833710636649482870811195893446078578353797017455391362786836195410215564843399981471880154893133190443090368819611384876318439119261419447170220963663783477538640291392008809097259283574720389086745394906656491528755039876031146621081385469301106075758069982426896290987319202696240654451348875337195559861908590457094361737396572991643527961134010923702141338593789237447294288814517255527397933039427918538958860788696662254509953297214203544680265228575968367967193324945932288098454387457302626591906391270231897673116879302586466266013563007555996895716353109509883104424971082050663489168337127589335219266698990138804596879809817906264139957222083496369744951798436059494229482230648398779865457990213246136258611174081897451873628843145291034873362268762393212732256992546193668395487207489105259196059758684533121344546076307963082958415524698029232982428533287961161632028267568844779837032450127044561632178684652598339977037449848941643213147255071792256129008765105796782218026560016226015546242869193266765557957697323352159862992213064363984469807210936682527063916806537768069533226802544794715478969970104009055330756231654475067338445920528266869132408769631454698554903204891839108481618635082888639410205162160850112852721243394792260854561236917911395637104182728270744444395566072575369341655366336850267598233904418221859124163835998161263304963394048265184929721572927478934385414649255668486926062376131155929363687938376612378940349848352474841039521659526875038765575353419957086859461976282282190544919855722369144694145063526210649523635064528898256788405162282242335825430155360782749290209283889165337773359364474915867199055278918913721286031748624482217989058055881322172092533032854252130615206385501182963794688625806589494079007715281594011317275199231253007721975268113169003821166603526802118180796737092405708534401311978319410033522764720493809172190667655228986849342130353316357546804159889242629576358877825631498929998882584305352421562645922270192703808285740967480073685653630502519474393617788656044327219798271509310831294342219384887059087393462586383399956600120003512889456745152623881274966144141444781443061793719969403157131366109809220349072415554594079962592797082754364605612158289905937566136261989212661572563727013204742270929698097312055642769451230815837297837877337831078642154612772622013310947286722366574033608354589030555060623970397853233720515361644655167238491510369028348254909888185972157220542575537840866603031939506356792579300320343440225303293579143342662098829150530937809789692942174813864114112691118896411271916248778740590940835709293090524853918136537148010168548980332723722240576133448585339258147006826940406331968218821447486027043175691647055853058039231195211810389641725307520344129988150212218551194117303257657876090945649704325775089147108646067980759754145923345856564849792842200187563614432508034541645190447004861880341520885785875839301495537030780773941823136875689865889799493064765732533045546650111475142043394113296340266009765670577051105311726262005708137216380143528925878887991376934715095657229557866665609952711838540755694420949756392926557845349297738988782351338921568854860426511238963810130019691122846680386179878177776185676058090324247062708791783012790926874137720323258519523744743441544075261391629964796295346333388589452617063177372039304858380306388326702832495599681002540174151511929544684290545617098453621147235438186440720953492612295624780301013831634400984137431798858522349015380796524315306798627082505307421453396313638598373809010070054097880878259619246587003938882518549753965683610061816391950053213644406978600777838503089515044833735102316162770559190588133338350230259607741647830092733519127993750456488057675175774887957699570125628783473893827687432916300474372915441368757875219438217256821234722165276440900469621833869388002582405706240972243376886292209000109261317020607097223207026134936709024290540326273497025043237758054577936508338020946710425166065207061333861213727975075470078730857960081376311567531931583879192785506626854097783107880912441410527681077670689131594028883033306056163223317710311336855753522764232074602318995896166513273553083597934823019064577555967733463017765260714016784601472158649545421325290307734826793980020951067916670400527008107192756906187763332858330088397816847856516488325080653338806608219127930046266802408343013041641450032616593115193752543163610537178107183865143829256069573642099291603915206833888604606213164359119676916484414596391534995395813930938838522274049825649700589945158772803792012218853766987853123718122308260155040525832138521197658771925206185569754662100899833902181746032259337247590614065698196958208213737389924975291962372477663740866239300177557860402049419072537075139799136072572723012512660017765035070486038065238184480400453627081861144089159423616015911717977381544311678163485975723458448496339047126310065054835539667481432236313892997058007728469589159876150214912456284575718963888817906688199309304312766471762667591664637528704756752886156443697854243555104476452713645291288774325299127307880581726375716565886509552658934701759236593731577404482551014421831837253007721861635927221216780317209773045768235956855653336094958958504239492462032042232139839841104996425672688195793201149292935047839962387703393051361571360330444638275424509521818245852236423964980191835025022597692862986139105892002177725449425019562263725568574385041028280146075521016314410897568822572372614533089856870717893776438098452821527884262743713691725163867614928045238817767589558316528461629875504633941456776167322965118402326698720128190584767172807958126544151909352439210794971772741593930687899491735378612119974147710037255409408930272205651054893993496489111013816805726715620504093441037030441951980506382276283322560720991430814129500198048470705847941872840462914184538707245057305237983691928368984801221356379623362862578566424445272637232842993729269895865949066032816558277260694068104846187554131291110429807814139832122044734960449909410487574255750342729963065107171008567152080646945277470968205867334127019435951397677133797826537887116997436920449612619742221028110177121721555267833165852272888923800048628393132379072824414136212985726562296445735307418383734224812568929280050458628121164222212948097148350911177984773769494067663266819174530604715926887192701966764422607538646024619035986275962359074256382826326076800687013810273377751506041903616724477922698027576169463340021927694353918959183529897326698597477637943570223475832319137317126446760426643730735747032077798363197293134239818796694374619416923176954861129444766213628343127788048052230650713604476401044931478649978504818841110743467388634685850243196337954833711662284748739688137663676978167077927521134305710418092044916868546922712959201110435436021219369934976338456618119125896710436599820013698230669106016790421400999189335483116313692889368787483719425494814239845401996833354115807097840158502216210864547996374794796381890678567520219215890892859928816450624962763318301423805144532950098501662557582109655479701375739672964877366333404621320434014219684399450561274316188556419121633363449220261078165986271125631214838066529374406721188119780550167530680303696925777461552667502565483340549584958358847672270745142959104207281712612774977401477210488956243562539531224455932998059166005261773663621717281041562311796576805198591174523315438816076353394839903125667433748224160228065103337178650427648920490915416855315106707218316064747747267035939728624184747057493098739209866941309070698404264161497041609945919370627440078813524839157546875218001055587262666966098190820442079561956763736734324371223079391214831451430776648276548178547896131429452187782925555538765021605328574756262878081945470303420395341356901615294288897270304730701830932935166583646027725714117304402356611372633782393953339072008776685496582021387025557905084649657848976337707135799272970487682883950958274562682023367991542916674584905381156826626256343454371601676298226287661369280840123478322584552333565161327330284566680482277763115990001012643480376036436824474361268760887643202499833645211003642903431470620587556779634659906746467983440248150092656246568047978127154199639642285919293554118777955870745768339239683585769132355304112456505034957156710272982570789997657664208569130221805454440507564962355320558648638801630612981958450440466764068756540435859981234013831256662211659070852337588864763158207480402191162640494646289750437233605431164828312358609673337410639880547397078761501748159380759159948713377576514317126214275135551273362995173821415534455827307084531715033343360328487281767195518337572223518554303945809355282863735151608630741416776531707881092675693346756546194231440163252829136602260999209860097360838629679289994217557596175949050483493178509701376044647313767875286006561284647664155549559053052802536103379941277645926844826264075627714203936810733020031022182779126317451621258795676134122213197309043465943824625905336803946060703511006396405647387630612182531914234695498552486097771632243517343244147589676952525447298649050527865142160328131343839598735428057939546356709190022232373632665744819991435942427923872014243700719038542426166351764192815130780284863622690550521500511279509721452812127084652741337332709449182838024082567965655436577659584010447832798054100197692095840243138384532091729114708439939050934373466777398673363883324140972423001260355957553168511039842157859608620167969444182057375960205677589514930163772321014143688275342980127408245987635703433292230820333494477994911764482690478198499541672198383829970610964086316111751009638078595476354592109109430128031897147164301214421376349427995849994343522246796829251070509471000703069380393410215296921508426196859821974676538560027486530838182826334791812028343240456958460006210980073206672811333832842116954177839449702998745429232738280676277074592625652584159444296683502693830646910051292893947508104436211579091151565912706296000793146970741168005243665033659356893317705733313335497338512563945969803883262038608253465798694461160259810000221670910816507376233321117787114421252165250805494498168892296015865455640605731499012783382583191897715251442976785225295336854076420504114757487854355031835931073368012879549808882102548871168814686538447550873275869200704119013542220811663221681866360770376269082738868413215083868668286517090743630392359866519240748736769572256552551781369548758406116113454445275125264733039513407588565224706071253021440582084157393476519676753489543335726824931891428628913833059016880703710774987673365981516507479607297322260330422787890143670908097817239231535836249013981911371120584148036479626845490700574900572333979018976463409871720849475190468229561893542716747010076593184122313492521314595552097334285806576974889179898788995513605267165626581938805044563195191047340848489247871693026445270049059150602603776692697143989748777460980361010452886913054810706630927561209428007369490370706799797912791676708494092372093076699494179154783443354316067328524877926428665793522148430303452968987810841637716944634673416557097563093689289635535372052943783548167754914416554390743622204250187303750646813746786237490141155533862847721504155123002643335184424489821733628711172054819329318248800591328804523265839318311387268426485846707151209921572888127206953790290150411369529138646276447046483486035278324926139202010073918134855495547197631384103033686184611054161815386215256621228986312459162882134870675543745210812454038874615849094608362726470623968595870508096891751629515805421142764822348526120235794870388445654019590077885660796377925541037404498683550135442659348466933051047077166456034924677808665561186334997690305529548207081456890243061652543547378935334359613987780086601197806591181403158543135398986935917067187289210714467262062210213517028491878194905043098916820631217732439691773211997504577806090027697713945249702683554517880392244738924543480434493609741720066285477123257627366506602089415728607600124792481462697340482720421060536366409383897500076629518295321192823730677706307616452692049463776451239885859336938757275844270295886956111462963452141876703524003687521239775307165904493725165405405929919912106798751913516782791638129510261567797898974769224168678761706387611741555783636142516737243794854648553278704485897542460301571438006186376409369955423117531947860380716661512168838457514006251764972929874401553769743483272649203799272256845584795376739224045391795056301462181518359437017747026321363555699241018977675478178693995650958465526004579385457906004720313775187701978976739385783725162686001496068537922956299968306071335915869661915970250310820312512869141797051146755409333658987955474724186663892491265003696017378857719249001710273621871463315188921229775066188407691525982005967176849479310909042067631677589229283052900534666817290561424690719623057494512269101425734737044495843418635809447595852642873707197543018186298628388002947243162601634840080078550447271760609138807536631975572692682041619967445725137227246942669334291883562928586001231624122025243132356414009263504209187890006934644327432614139247876019897690323169096259381845202135106660109187919523193986303945168781582683527290268545396995751271567360016846190092160584531901175801028252393498289122884693456045248031534732850245105063526393272930860014325699003336574462894758288922128826839514031220721697022142991614010240003111029621970505675053828815456166796363470288485611220961109974769923904094492292827026933158174215948758156766007947576717409889238550577562611202396223360109955482077761185389266110876268855343453993028200509078101256644867837742766635127391804680176421862503905916598622212997476423319520388117521051746340832443011952666763400290143127699459124263984591471612056565975224806346568932083042573533914246834979694948657722160514263781913153343325558748037325897712021316825128998491652147599566725457082390470286355473173834667948296748413007981851806250774891937935939899057682361391174943978087610272963963350691309219167834503840643840992412661553977305298312141918082575288796422312603097738930817467666780634250185363751236052937403877264028442044314321008990307782041676167216014577286118214105040998685608666457105776197556584514752265363730894620642857738544076835060052368062998284547882046040521575061800428920201782551036208129314638482653533667550083471806473586175168354317489349565359676923545623203919171964904584617082433057817506453925648124897010430257852500014120028990083220155924207162813150327217118549477651592533445967971116513341024373554633648595222413856790403809476076152036559603564801216263665416263176694768054591849326849702222520603744426047007145810756100452463030133569406270284985484647671064975134565985110162655025138689951308094017463224542388831718805315507708688641556559766113144042239516405191899482767143603926168141758375962869859443162902064467062155385468979889861044147943540141766530412489738209787836249005211134368958828079819041923003113346647719830989814488702692785788707672374425436931663433475719168026877308763145723780126776795876034991686724179363039935247654082413054672448153926946877728567485169700891651600067177086732442216628753285171664660967145599213428760830401750047075634231089639870041064281069783685180503923788791722571859789004612172066747163296019989860890514274603429933521905226095823253952218224785951581100258730308456055572831645213531216135231801259603065852610784205639146346364208910885970138681448157853353511937653302622245075970147450226527249685981506487058744943639807253117541391098240523676750957952518072693348348956216301260097527491259665802480654196146166486570613435148585765950254661857666653392351270904341675196403289977521510264788503396416103359884551491638690967539260439487838332451610090956550783357752125466211644949313035989299996827780849773630088700989443512298642265908348593771406793368487045339312353744937432738343403353599249435325441936353680817575227894011102936315423761022458048592773788714637510562741541092908188184459501780538002851669101138177758846657832713480682710510322819207778295173109424923151364966354466750154525492431638614221280943532134004670566229223326513084797537181415622817626436496387024434494240697491356046761217609233660818599605600200883609469413976868377631949485040447598223030015369873239242043423807720112641689700666779979858339460108642182825515322007812984296790268546459773614399321256872283965782483062068864569602539624831293004400244056924495507534871216312510474073122904555090843703055764877567766647567713202552832822230386458099248755278222431205183667604510891107498104221812703845222318708257052085912157723817325849136844817157301475356333789242406732176554146147325493417914645527181286220079424371834109083369089062366361810258865805182985232439238416608454208256585603066547374583149433944979523704108206638699645453492137723980656737101170577345591761779863553178775173771967515772340436495307705152226507853053077942834746040122753614935085924768115950859507353782728657228414193639798605903048891732450406294473455174495906100148439950134822049169171187035039766138770564981114920854144568558147378282475549820870595132749368996256785182052540304453054855894086782210227934706740005906814517474590157633475612178350482088956373651272200609355148224775294085993263284396123505758285068722734691700471540983051461765983093516652093423693663462725747233487398316378148361673765432407229595835458668020847223977973288867516121836133633156681469669944590310229286602177814201570982939814371724162888921499294528744173788429127861876227963390197674739496985464716741985249736916268023771620554098578365288348069929803072327416401747176823829693652283930594487093706386527469169538851685614779490574273806000612609359512950310838551690069558845955595475491794089172543218685890704632255961855543221888332168205492370444509116368744492295448237024837270494389113540029496019808461825626838472486135961331992286577835272355624882013025518613455088470631425935140534500076634433394559927057719101393867836580649178427453502350602780071519998377100766332533450070367977340425132025007199896468156367310839766381077599651146100310341843864182775852472823965592973103845502650038040911317076144686331120554207749183728373634824574388669531734827329130363719082676622080713118551054255580686663303194675729440649388482657698244387982815852461849855232326350704529639917109750751218642633222344171387098850004895831898535962761597701964767795237655700661509594436015062494087741471694730322493871581985856473575719089890115275918506911646822499046115634954717672911956329995404805219654556711291614774080079525220958023817382521690048524431941316408331782161556811084349020196101820090152527181333800214381987840306251066647856802215979466031855635533659379243358342325261548023969911035287958918307505995911843939260395590011497626886773227976954568739054713720527323006616611407779785648803906753228333524611173673263173526045665720266807853256092423303534616670632340822886507998075918439325149976063581172270100810603850899166709393466106151113666696662365823946695749064852355207907445364715202610549989072360819958484553899848763231182640824451203658045161005880479067664588581235247931451290585028914777242639273641386267759774746922966994089698774749919160425365456696768679802676689555520582344838202298914153398978270452760496980482299215247759593517586313233569817853464493892728265065392311259915874522216453573145192143666213622704483337113581740113768919546278206131801382776096698396407171140734940600457990402686909544297820967079789819284118829522465224401322308991290600392379731528385329345344618688924758591624187898323723533818818662589189939525563727129431976630874518806962217946815472643733086175526035481973382369756717231762485943882077251375545176666055406274202089363113809525533967126431808907219336024948393287959559429213381690733190076958327157480690843268089833129525543258927595503985464757425418975122602128744509271008792846204507777204452026161311963570327508680044385693213154168853730159988081323673492947158439039747911903977406395621952126799863057006926208211465123230265339182271702257013106910125971756049424664831039701916186169009169378072100511339713234322819411344437400920692410175778460695565120277320017448467363791421522177383020526810865387865599861830931254199558881017861699780219133587750549876184187738032295985431576462106244992965848916407832366400956331855388382298343286398947673881793958782237564515093280576467946693528879948111507891947675822818229979277521164023935544405974201147019659686526739150153646335447395233784836404686866487793363562281559729745846132250506766453033323537391406076142348076736704214860494907633313241889058534881308607594875702422724306468812917285241388810434391367003064934203858046044539325985391019503710449478002891324271098296145167182142055967952974075526563120536323913723309954159166619542510519852969172104150516690137174918758736639126271245217432384045009152258194855316450883917320272129283779552011214894976779711329592066986231893022216357616125900317513514915300101649351491950997694859626286875395124224340022145920396385842604735877741011447284904517817874736771693379889263485116846299266273667724202945439407536946354499146857629624017676478809192572669592777234718221137726239658189543027677327260877678416590147797271906300250501105032036031166780044830728435469249766493351806192353413483664944836954107850296039805510076187953182784347765797552466350877352034390649076021817299003971737299535023215218852160200932686601946050881877060601371754223890778911040462331765099471825480434212106707719834180151865609810362036015137011529878785466417514077021637337435466241110677441741018526005111278240069732933641094573241386333126753787427420186052334684167090723434957791966587411322724440548437154698308737483899709057009762695787306163239431868835184453459974693759371413996632966243150061933281374637853799555154044989714285543517108066829170911973266728815602682380956965849633334772317168789431662881563699772601808723023217184227103934475199824974280676711763280600217121566634280885137667329269717317405014089252231655467942913294964819771173826816968842845717031301543898263852486489925406251881255619708164556669110108347711322712822578306204041676208181349854313114691502335129669346505641725849066952666524631202439804617929450440010969379100896531847813010741871865606304122649504342111448672025375320095723983650261774824016986571471797519141940823232632535610994477986255525130365865700386028956506970929581115770432702599750773077746596996065245758361740518066216550629480538279087244399239814702312663325275687004302554915691534765727633163408265955526890564800149202997937732314918278608511791556168726905686181878044796497172038549192570505489635984490964032063150934770058329755210594947456869114260738237290242729191215887633871554479178065931998091885645714560621052941496683946786200682137099141440215523394113541822720216228514204194471903705529063860673086647193100789959533717524754415454475834420116933130287695209171005654383848564303357135186803295863113442011439785634297169183483987886395648393319548918402703169162342800759613956018095622875386389959064427557867635341763342040125684198581777512203437381107074729891538801485380944586257455572892375571676746837570999057245882862066601227696773070025351225729007980634069054778711609439465447010278302714507998775435382200269192530646858253073533629201316634333957421753506632791754951408677963684684412488765204366333625331792127537378291115607756603962700567650909069707563270044729237206081233241858325119233447339847076654700289815299005779467445061310108853365196812213573108936821296838186122372520505859309610472987706811368442992774620015348642052543886328822049764220148193520742963047473379242198720173119241882652745038493623565977482573333228719726021046165370133360128976900970541352636862711830262108219204789472019310657118699464843350931458656109141516089559237004761032203380521965062853564090628752929195557608185275427043793670987693132718063795096447603458741233589360647202522308492677867075377413145365187432231586541091367005651929652030989674369757905803771626878614270053924477922047355700356976143775575869033811566189307139600115959607819409114255188447852547740293725407637577412609765934016355260980309503732568040358909580145173174248316445465057499458713186001787744354260628996866482046364865954833621280087397429285839624180437442941130123866094406037946209659210101555705539621167861400612146148438248017305526736198025775256746656443780796172079291804154450724471749324384134536116066691440197580147855497673173147104107759921930555645138857626704165170690126313643454964002230057948475203438421283481327636236165228361523385977641149965401328202882142064597318034507926206997680676963417527735977390898875453649259170456774645599384258953708459412789845658688710848166330574977726433649383395891594316789047599398107411111231476115265455198248156865615054797015474207741128695014710185693455994494543420827348085946690671937137049137624648444942521124231203315181270530872969117595415360918890367206533868313620570177031036502654018416417832617877054520163071086651821483161895541324185427158642201756447340423156995630291096773359058445541385164158119567991650010646300188763650000845993819361185660646392945779813676449761224613940972387318481166220319206577654418366954015669681978824250527648670851572599224525522816711986040187808436830242846450015128739083398301298696496814468146073520435409763090620038375130222182311217001360451758515843488168574753386127079937874824494219283330694292211614247775357246172747030969020252390240574367577664111974748443271829376976624690697725720642104617165514615863935517598806481450700511956939828336077219414140809089293803821423745239074500483851028594713247219477524031961490982983764843152638784905940256745344135791629019692485421069469529825259985416428215714820215073875100951246285401465736709667896378406145156169701585853908691372199736064539429005750664850098584088336042677506214713026942298559743432072699695827306165378383540081323474621985463153131218825069643556377572129557476879745378007440805034854271501371410279310085091758168683948406837084720874528260366645401830169024131518129183719159740610152961184750735277033791347047409046191173610298580836826121020187027250749863113259853261543433448816251905883597954752916325072647720528600894669190733184759234360321397813057010550422352128130891336581229768908682281197779046820022050974346982175980793216995519576181887420128180099146001836993180948062292374789674108795528711725827204785864312370488774664241707196016181608336757438668379556558063007149682732712408367833364117088003925412665504721572167326077938646456105541910214113078748421520385508324678084149401180728876478250703365870700504718586806576929903763288349310483655213491042124359632992505617414281443987631834721538036911166774644315998281762238510797687399490280419275260082496899109547275678107460354348923508833812120975419967950295975096543800672587600277058302764387186029313106096100347138751817906863690661605160491088974086636830138344356033016196512708810806257319679714422063252512354512556665811207624755989036287282627994325195222619137345772728149338434825716698573556358190000524444689869735629799599558716412976651322176230323667289953540360091077472808544469107850743304144487145503181714335114411287164417048502292794959876001403140782527917518750139487699887805125693103890474222589994108170371641868382241523670020764287222272461730722064555552476632805549895200472010686481604812575457844804684294150849330615323227462664990795205665611808093934775140791801960892447239761808177238163992891811366469137799070716216993853471143834466879168940751749561188256497239299349829086113344353480298957984767955983646588343245716683252230439441042804998487444030991853449364383675245530361218921670471379254195188103451184251154197378622140696248817842717893120839167495400545603352888265682169399125855971379783666239221002218456156920074251183683940219589858391981165199988782400170097687034306210375184494927116115997355480830474562194890940749367655707541339617942945225551130270112239821937857219940379965393659225249154870024452497640089301733274067177952383091070046123044330437456165121119971004353993129039506499721830815385414182610784930138938443936754867090960639458370666674673387597827259127135006018715442991636901152275088056538258684233744978239791783068741420488492901253664066597774627629561995121994708787292818531474579144960814175933269942746452736928383981896037263775189497545717143295217837149358163222648098428282185450403974297113020612843209296757580588959904597504823306034361267117158971225149130616741479356945549983266942617954493805689084402405735561027624034377530315024505618552891092059584926643715910340759024609524083664519200415263985192499516058856328897856448521399893476930651344479895922370256287434535713372485727310523989433961736229768124585022474004862387827751051596157719248152638739881889854478302228239165678242787630269819674780495390985722529569303931535932432979566084194679493010599880788508919481596665499277778436502166323382671701375432543674766728518898812042226383746581251668565103541916167288375707944878907146417318026455358687654955669940865180020827715021577512387009342652176501255831309276981817047965658682532685365673243155698090403776885441742886525181584428915030239460572947547817181817946029712928726997881882298060528978539978255765408877093813149527576698279542973618756428243547991056881717383613179360594973037672830301640471554241815168819785926206427204649507467976500255215041821210229241289918573850437342241740797550990565342526517925320364517116507576677536789791834409640510892879640848392183971409839332999303859753163527408212100181582682454263255777397307006641702210801488658248895306476607851166392610658903963637148102252515875974167861510744903761996444789100247619871300579010017834287323371117082924832373179124824845494173013985263815737609606761828347832731983999606653367540817943032589881386396116709152012517399322014452190775473733141543481488040548861270176920290354090681683425018598587233496373388334724545552887135621298614577703567732666429870729574798267512260681194950021167561674662136880151753880767491620495203115053246108249053047376767771164418178013824537073250093316922699743436907717337648949393516221727630190542866413202984654450443177783919505688988390926639835121440677761444232320723171192862154306151228823480879098946549046290442453270065374845797348924875271418767337848294870589319538768010314523838393334106688825019089308524009006933989603776265214256145122662991269596963032016472006362322154598844167093277041659542245961563186370351900619109819519600593480505632628184848209806815986791332646632996983397233698332805604553545950999844084336871585152713142152192052555018791230980366175058956141021354733279626353639616949172197716504945652029257568844512675176021514249876633192202728040622640138718526235952413988501615932615183594524121295374931674207715909710382043494045031349354259283235420296502787075359075790382696363398331551007852059362861723864997263247000403955280575211853554540363187622107202106726667493976325468658070627432393352718646923219773427721417182046188588338755007362253187932418269485699677930625206722152933541668819908216816649784509323134983529959780652905653041714123670734570303498356854830555778601932871316958125413537188378302534111743303975362939211470702890900110852283092327335214740046102341686073863728575785243712890315285115799540167024524622926875085681259194736529699027930802837756234183628252160269086703045040653858540942654112546640188164408518285284156684704154116269061836615336381514204591492710662604271684343886929280566887737997595312146608170119468188896461572215550737879870646803548816473641239282248769643210765194928489904607409053072162818717329390731631931480440735958099665671987214662633080020562075715843975779032495206468973740864462540290521237565900467569621792880204209725633075878856722782911600225619195283959016419509094790986796732047326656428814148132875730788461529592967140618665856006942454846826729627155166537705148511423416494951413681351649886468731277972461713818483762675344085552986980350697761062814727959881536812964551902540441028778702347398836441357271291721304913475154732956314720756556178359288527964875270746277320696568305488616359032711286214539602363868461412610916837502146317637753624328867263127843483565357651571501351552549859113981242302294954581209057584229873010288956896903651780359906214474338042790281468385343204537090828437899128476899643132369599428198256443464790987602079176854464169430640695969489326132788036914452443351940858606342443702227354919725773634206101104309691017579157111972583408383012557970834853252543270154034853728988169729465265430000770954445847611118203277160896752712216316338755165378544227602195040198367913646039897938332141717012169479304246802835437727821040330046505957078914475424875261759763904224964417693488231781651909919031191167347132358637532729876158800557518174395636099129289117419029640740254097064471389882363647149507503927586131284494596522717390261653397832913993092057684629554675505020572128616224746209457649926441619589892993309018202973312636888924178928638296583773759747090491857840304636042281932472256377002424615253632194734932353250847920725092634313264020464455893443794099763180521154104230867271669578813341683993889171245011427053679374110877728236545789727578776956042446586412241057327876990042302663172789332884743514019222061461225176086578060902861991450485624120281434394723249656930587703739497050662745100739874681275093356859136109235862065551807242514204659790950693423554243376517320043001251789543651894351082796417325835215553145285688690381625605243183557511102968210347545671099074793493454165540473185375143259895642681178019746329499563154998864487515514189090945063277011338972047185732918577435522900562825118190109719588578347816927287135917232806594003459213137004352952203869789986380597449316199897070192994892318030393478731812044620265362817056985552356258181683365504154025121604090923589448840268309160013078659722303061576538823041638197491803381262668454927940862857969303952628246719267437708954160605216457838762150613634467841784615804135834284914110038510464237513173944525585736353440608954365252963049379996048742310253721657292609834415357495831632575277588125416904583437815070679770933587856145995075241000331618889852095417335929541726237577817544258348078776989841143238466791991340353981079769832882182166229289839339124580342424360451165742936542606381019989842182605716643150529212629047777321698174547548126927850323712778324173675327491759427757494954938906561362301736130119066456441929807953018276720086154216916924756884088235649318559038826662569427003965903495583445508882178391971041078915030866231638309732630154415018989790605352022952943127710741415666886883547037760845097755828964767086502451918309119076831510631751186639901384158420855391222843750608556641406528945257065736286937922232585564517066861546079488197298176184345663407868516067590900891807375840736710190422418292966921293528156514700828169080060868982197899454734590253807573216804574263046340489328062665585710677979381892897275674395454163996697790050020824131760152108582022467801056157888717835188111171842252892368846298011739762272972176032601518572181453770451587760643249859697971731675767257641653330944000563588700459570648313577943368169434743912819808266331810245023979333478608044429116929106817249918908299308035064857907747143770091923038432948012751434089741909322418403135549461001440597198726576025096612597865073401565400083290589208822651161188344538134239554976683876155059100073952408288133098175370565456761306346698789389560773372722866464369974665765326710737123345496598991932171268803588724342502733626307931868434012206480332664999257494692618933268402294461545376426033281600138786988467840940340217276991439332894653662549545259315111498804217510163776558982859437098973452237112848912703209435306177179930051750844683013031253442392789407304778634813541107863599817210100984784095523361203102671705903518317353909851230308989761278932575780890323741462039491088237055342635752055263539124508942560274940996851787425054538130672298997103012397676859585390597742506258050141052281941953117208839635318750099310424954404322569564569201619834246789063389497429786918413064757836923421465294250044898243196599689265889952140594288050958735402464070624277839702076865581094299057746684416918247227592670933314096162491248472047772385502270744902234240691248165621390831520961099716567481108158941868561499581199947837197207446490387214265930781133006238490052021389352334595852516788870450160495579803156863272683478706414000573428544021294078264715934877570678158587334705986982500703819593109344733261770167923699689711745020585544739202222453107119614326445301779970473536647820507914167563379698663701225667149010500954307527307330531149265720660156338605769839978054017293363001321458977758976124407583156708536145701391836660776907250048227293410023347533605515243417635903810684712157189628456609664073270512527810223147970352357529377779280124033187151086415725807320120295891234372492865698677230273281990224546781413692705120641705209998451862257155959959132821173854004362908127604913060322170009119362203446786970218433866947444163569877953619150138841444529610845083482290394040584275457399537196239979528916816112171261118337224121758430161932818213554056273904632848823765935960303334166962569152742880439715577969587236310518803357812670199966522127728820207992715559626557920625038006463572783776466487152152395062421715172903130325794285279690392789657702251170825116772295520614847000186147732077817957032400962861005610192432822448682778749267191703284881068436990884235353125206363361869335498971695689435794869831822927143526919048168924873070314391942629372555952586173521065656612380070807641718013978143154226931803115884339314671456008509300293106827806179733018372022455370156981433632901854663560846363623855413310320053437721276041354907401554811747080627039965451145999192959255329736035039449447955789566445613572528434133744636212875366130461382415902006867695094048964116678613388642327391141778307120712254964285862118113624914391015145181604354434871703948810667941775405334711553857095263612779874020262486070468745061377561983422898598341204971643296466734064161626101457566419789622520960333329502967460683005057458208430754389152861950119179638424355068576421863625485542801548229787604666044287583990958420613985424869671950106210758502597317436870391569771681163058958000713925807459120556603617600160720976409318973685518877026312678629798041003336347313135836203953808548278706255745531288746509911136525755079236151093073979893102330220498067611290222218483458376279935753293555746558221839002518715190926553239155089003108951427347247895769097166982414848600449020263814090665389559577171058945911785858874437816972685539317246105947987642823901409875255657447940416008249754654936275605440950960544404466337225359070587954762861502258882484731021355333423731343297758738457292451334429037563008923198568921054068316990271800930287619921044840380257259173492509568468415093259318556250623648647756941364876887855739797222091992819866297179046453948200828241621756955724537688138943383325340972630761240190938749357872769982563907937162116466254693258279302437689973107767482442193622231098562788696484398337639886495450233437704853622612967604194947377529330203151062801895297371409385558964448763839247026875967452868630996348408105176730801897738957602743750957419692999115190671416889918640575778550404814251470513048764148803216934613652730518053502009608114739556760213972546703235682378597610094883229723081596821497217680273439866740590444006024207471771927427555717669019259579246703652742882639451354935857482740450307948778587384786254703524832481947453190813497048549095445038008779688864007553106359928146589515853609731207270649222873990576390176083997695771372348861912201096827804402729436286935358760033938036845181281413003984877411753516853442797107124248466935938080353645688948622038155683511383101902393053731120554578774984200357413787671499924918429498791066662145120761788912420447585528412738442521673430451197931103121508156252166897716057939602596489697763951740586959595976142053793991592011650761935339988098544770513678590622868219854490314684214951790972520133642439948119960368730596555320426363526149665734612187325874985549549410490577743936613012775224672909521158745724309668762377611685687025592974576604821055152845904313919824324980058970029090890138505839985863656178851964377816534869088744155875304347693030669015381297525612889196645744998343997893255515299841666024125694865991132899605962284541106232256340006638163548693707167619390192441536845341192496947161126393176945093257633329948701851529374708552073616363724800508362701158745693226337124427728386556858172669332569122789902960410263226636788314103929706592282062419854351675523926645500086862037239679990621096812830931604483139188684342000912486935669291099164880240955310273499513071523443205207324634545310116745190965557479856116656379928975457677488017215567650615131548539383817812406659150937970333389730280686073464738404884101375367412505236540274906663959982339482292781580070395143578820682641998333834259937538969716958966179007689545206018451302973543218163361429519573218482043165786308847989453764583539969292247718282349600890469327875435449125398115556115343355431315134183515514922167960459174401006985804046624471290759615813779981464227040182036709284064595464206965656722059356643383236582697047558149094316075991708973458552925276046731406403879303761773093949725691205292832871624027583869445171580377533478544817688788797727071413706668693306209758436092983417925163025702638236311232591862392737281620849362168947533943962196740525689895715922292228963846853651871255068981544002026150186630576511523424726495663650788290574518919075294196558783121228850821858882335578718166456566041269983799624169881149455422668560826417132963323386126984294010394702726500123163804278140109878291490925357039033212593356927970956301870959878624522661585729879968267392853229616686935530198372508633475200164158009437685667427881690764410390066492091214636046804315684775463007370492439403943401841618220464779442353021381499275160403103614070766787126367924336113414185697336526676792979705081338680002126817251370142096655705548149567910358011132603019676997634537140374238614338335131149390128142767510226624711160211453204471175722136629176658894204699381196721151365879000415824156110774384174051192483874718159339970498946886146662406351952444033314024153568356506784582165867777105680917793439956213818218624295181198464385057908699223836290644912378774434156071216968931907654512966359611776095119161807433396124973278756235872469281926976361319556452939896338866442675949308754986342146840522115894473612497202876268304538664019035804539441547997066179137496566230392623394568036501476227888590554174006187818907959748558458414317840868442309715538582293249813267898087124918681018950133028682591216377598888948829776638588048325931331774971598156379209100609475561189108076164605559911059004405833571497476712038365505741104535026217663335606533086178577331219531075469124595324309900308705624937719059609067344942151538662476254061864019653842613189530179672427624610484170557437529659729620229733150689931729112310792977361901320215010159405602849669734629363132705469160514127971749136333046141667033997015904511977424165863249650709127959325366223581297746560407922791722323458566287568156544359563226813210021496676580269205864689400985994195827939468399625618586889027963740755271918769000875032651202406410134999759768320295730279412961874285645710161600389049839969581288350328951213315470365396776006097652505074557325874055106723194469576921163027376468726434734040544742696790721069235207456142079626737183979609962848414303508736782346002353241062542301554014210867494668464044076043423907845933078587865011318945196463210786166613080638422034363434737157222730851492691529255914371390319165439136261996000128540748843665146661033547401472851615534590380990524863343973161090902999297807084087002958754656967242074053646881595833885251659938949467220137515868546314973930933091024878475135148954213867521686931199197404881136632840128467654899580276769815370796364590667699690187104607218757316961340708415414876329639103996011835769317426302419829588554656013499914016225498454829470861393070341594663579026354035277396268550485761137793409464920618904421385544550980536749283714760211411902413482894450551305149103256233092499446394381899525391776211620415127457565546329757819200288826506605130377164790610307796632213839108928339149639266493105642135635764613223059106881955511131420043905346162921863395435573105453876540349916659687652265245450380881392177353414502937552654395846560116130880395353873424279216696661031754534802010174093569134346974769522648070318887791990832024650559879513891048324860873575145283378316084300007765127446485325884360148841042691030878366026077821203369078417255586769540781085488943799896898060915390538777018297538021282879618104190089326861115162387586928199591977746794930092216793252972565092126944680058493253665253100083429736127733045663552175043322392061166864505937158479743397016784597634022122706716455905956217733280753075500731693813878244452967876576438468400556436733244478076317342159332432989524668022245820206827445853304358502863202458857066564893225681696478982401597865423755842518242789048173816557213046295211257873211743046655804960380696929410861221364209777356223061643395714017286100475679253261270241894440662539420519426668414218165844263371065916337661814116065483428056642598305497122350665932521388023303511836451903603476645667576259044211928358713942787781067895335905551448047314628880395218706829337105741008369432307540272250070384782542009253571311848255668628625463066069064845998714251436373998616134595394781806258588391672491512963118779576217792737231090913264623783838506708029930014734321808546294672594448156605421074775482916345446972610615939094859650390658403997682878036411813629836228585911724519845354567824453943638716636396633995645651355082511693036685482853550560505651963285223974080684328097825259863875777248282960215129756209923568201081393276594994673505178907885181760064173315766213044385620487569509131547300832281715708766030300116573015254949886275727738864487154383643915596736645753190797403067001176704949128885198983393581546635370259218517770348417440549818460249156797509046821074352472865663937580026082989402340279656951376266267723690086888725214072692005638244317348669273745429121240624220427733464890605384251936419227584243529963731917675437669148565163413456751738834061143227209371956029718249386276607036565432226224679274575481366856502790486821821863895025949495219946307966178357697754787082798960667158072818911343968422716573341148417298983715498393703154153216355971006881817248636180007971456043988611588906722220562159949070083349406813784479331179535924461076001706303058381560703624863057510763592640874054935326966613340688626951324619523935188489332091457065390030142425391226676372581791647917560864231259853610457747876184367930721147349070667914046158241291633533445819545621228841035765271357412822306451706717548923808154082455100565602254286724242989779992765801952887555629242067811922856830088287488329636286646130965306779647954489720047949869361173111243523234461102548749913637553479472797476232599001420653081631283613927657762743873071819341736155222418148004355398105493969124838060385477866738595059853248617932100027337590938447681738730118893092610633113239279893323217611437503173485967776451765433017135467312230117041002629571062786331035281591820727160240461608337178426198381879271193480163509942349413665763686160934392977667893491352234935637879268129658211969105301831914564478258829677629372168190018603404372144356402452995697666371085239129556116841896264996402891576712085121545083605276245019067623928462326653483260672389126816083687354529240902871553945901689594162408631314639873389955055593996493595174223046212363409230845725812146227148241741528047359508623637857888876712345308465414737207010543453059126717795519124524283539093177394924046668234093091604581836161898190108303699467961134423999670649831307375709715508229931129353396717516144065412797287517925205849015541411390237811871705908400146572350625221544766308231441314948878296840123538109675387177457784611566123347961225686944265610634935948535680079513429505220625772953893300594708208909153405398655518679447259573445580440571078766859124231475456917308498149375545374555219562062421733051228463973456093994199637239104862822677936895744192562805625252026929318826794143606205410952220220504095113663531147521932435969474788606519620899983730541347281669351139264514679937636970272792198000289750964022587510980705838753429671211067439294419922972453623141521768133076986295145600017747170509099102841294670955903947957838828722140783830330438027732478784314328408837730152423240726691852478416578008937344070313208005372248648724861071045793439731572407335665801384536967591508995401715538279467191820451154094634260036727958349585434087743022579336006653166291411798186933782548935401619387655968728306815683787126152836262585859800537932820712003090602814084078534991966883803491589962907242823803798619057727965587043099362246596814346209560342754185033159795983921585227798170851505881056284937694583831138551384344143677288747132864929113471840043748239757965462791338492834867640179581560145266966567967994369518947215902216946476636034043368565703152779822665778428922725866616782479739755499657134422752970337628773270423849740460586416097224834982329944727705302015120287350161897968705729376936224564655311132443232049894871541145771345653996709105215381145035946088909383259444158566527905879988141137392967721418457607605528175859967107339432610036435018406291658105183108938241700922715371237085381604384938223113453683731875620169499814018316505624965455344215000145769282749782402788573681012050525214489630577811960805085938814825595936114718353934568594153354831170774915304190586280852692715525853250172221102442883740086735070513119631003201694852822142113064781223565103475899668070737974755621503742984167317864922479251489558345326690521335874521842658178206605218863628204897096922614154271540653954182758061911537186281704466808128146981060567360808106840669429004872856409079797505821874762773303516148792552171349426450635853754798400246256910777205070134434070981763214721630598191367978469189415700988521322204059641912856671316829061419606285443063108418135736509014734232073606016509231334558767220604725968001643990228143171339405343032871374669624930526233087055203672691128017958695688913497328740795993515452634414722863260039936528612441968688079168669034838996324895862978256954074234251054733491997789184598756457868390752367715249706641441033214030396946125831664211280621488152503379809052692902780175105381409325526691608689282354585519100917636477920661442155338702686541389829295999970895188329672362163011316730127153366723015692244703543448333760365322797809706868623766865022454032021785101316558503607511250954628955194955102265754334867231270647590291879819304230418998392696228776806129828238320613102511647532719314852587524296612280383755604549772269453897004033733496292802959569819258066918169587787440277049552090460844228597977440621418903179381955950216646097186468956129785747456811502141671274250014230691567558135666255982220230235365347120859308683337815712390228847714635700685334800303063025962207613594029549076699076944852548494395895761261318298128307071156125040442240162104944405942957050601675300323571991438547628766037215676690422834072262368603660781064863196774150384391250348529042050382821692031149133708352881530778791311966016415759573402053086260028146809803401649436740938348650095371151218862360744112779628873671718125872319839425445624278992891058065629136478002640740272986725226199081126952571283392668377640063719488174785673958580768273944294229530363690895253320199006776617077397370381753529229172851703381500537997820610692200146298810625129119043329628635666895410335027554486592713489311568807060658240970105156473269054311607117847625419717002378777412011947870163257517148474686722430084322082180028934542188677308520208494818565614347956379043788651988156010777982313028837168304981941506598890505984959802152066664071576240297163739845138354364875596270950929048705463782926063357956166288014838510540628017151206202037219503052392735551350163274037461913424935329178035464019663105618194069690296409100966799721417787518089918510286948175746449123088229360266197387505402524160846186144962066488327040674491757667147907830409908275130594741302206442779638892155072352875641526744387663321572289075061539161324969317155856515831787183661301311902139885355276814003956681782805044156758297446708068921629255478882531296675165239233153603112027881524810313829547839523313893218758260060226497790989706062808738065751978407859063662263054401647034957140993246796488241280244767522508027563466555270581541824188624431786990238149026003720050824531497692669344580925528343440817186771247108862604381508856520305471466206727325562749220042287658158091800948239570923324763943617514941449616359596382406058890725285817897055711814539253183490357189708902220156763736938360081090846413557749798101734552939356125222526504619694604351699266395107059027451358802159287360920611186144172421419082735524937841152076908798711910305726238260586748589726381544458360906560673037957736417442723221090628384504245639921449205279661079854397573128452295100576860808334657587551115241090386575459586296703337566110008678687748435624259142821040717711762057807246337637663997234616429423811267478081597617028482422418566763250938902213992909888382889078665885131992223242997465719123621472210709836075201589643479294675629709304658292359120371707707673224983972519012229159544389466630541157810700331758001836400992559547041298336512921896630491208056739408126358317934311407214311107853772385286529155170402934338731982488948708691700267607235730410307358003627466904458945043648377576443921186135476186291878316743276364496331652755794592478981824964499707905603572962018434249497329379879282283859639335042058305438825285758984950180295194199843239700020235256702742934164848957171694303638997095038173017678859294584185370766216422173877992801986895908819116062164777302667796554116383865652867723673303592369115809409001160936671328817504237992646956590568201128571434385790941727868266743149897230574403611102437314213499008963223849198194534828409991767824330719257668551984361816852488728766909679806951604721929638834889887977669629447010164587433825019954567024943188833730916125875866146688970092852007082564698667577999631434607921434162612218593648634465756782828054899786868379515001732141182608530862278500938482011586487290483442877236574798846251781665939504536865191851399473672482381052627627331283857935142670354924091888231743279482960269263641227542222292835727611558878881258861697628133218431183751857322796163485695804062482956398182799275889688778813300758886457246718016130019274239721245582689469439737765263843021996957376791690100415998622436114761187515251582406397895604096131977523468846961906497786499982074066291686113065038172066556380842468947779509808243903269780438749203499564204588072749340822169748203615568213849982947883392949155409355038444649346569697472601374817942835563658827573288104486549792329022946866206934440205184703644993827700943700321190339465505640286917277468689018010609824344477477251778916728960112919904644440796803837138430246461413104855142068062920793495760569625742327534825280983635869357215689101610501420366846795368050312096798592787074342931139881542188741091083316019140835259851916811385165987145443100542799619100110808357525938471519959802845100855265779219114209347499834818073665084846918827082856714080173599000389689082503892410535867517008413705425881956986731327466424888026268321460105096244952939307008857236003640377251250817409092259867072135697781067484184250429051173790723851277588091794148384162650083476986137340068351450367410509685594619771244352874159387573120760030082507884082063322838055188795661810305799882991892550566565381456623663073871683676762814729303995563788898551247839571202108574622198994038179013295646176142891007152965213360781525205906843535875930005551299745288814658122082527904565032880872991495351246116758876511176143398013349389598889094210850483288242743835886497868738651184815780670072300886723664070428629779504591978999482914181750401781186601036213789559684749951984335573169128845314388154848215226328226177986673333874384271816366858019214047025346682628393998133944005919946608436882968850103785583871682866711951294927160150286850320574243926772256967834879811003099443158927401371207798638950942576592366837935682804438266583960463174414458759418010842489920230434359614797522361668454017088314696459904571721682564595309546587112836200254240283966206216662236405036593561080752513140199795157268562199870219945933930720939626891890304851235971257486985118906023654015293996055235695923036186185409246831213710021645485247207412555399675944361183444426062292940462421409816734257153765601638612756012852305278797547199528922312705470264396102213725438147694162491105282481210163880511436392866612190497370819208375839434505135022767521092090064757441486804058688512367299171102001570777008190311445544467161528790046453187759979958884043392176407744889738964383053179884839275377599401646828201739545472493664468864802991544018378448683742765032513503644148684932649832973758246035834563842183967644752273292978765590401407232567039011700930730064874565841052556232391038560829128126481641979421353589539633898603630827717222872112052649908057852510692098718403334625478676118575221021338876380247025005616424215257593717821521718869283516100177056951313597755327519346382926788568988794425338677159165831993153640502110274703178580749200469807289267804522336682957374637651245276490388679897717498406119070268042975374224328502967992670901247181664223268012950807551269204278969551808585826864247378698886821965018891155502461293581276649433568608570999187526332958083219940028478324237971265519436979480769416326172250808057667971471702698151490581403113195596482138512136818099777236946650443694479215358470608956203376812200764380433661635023341716816735570394179066722275329009038055789568071654457973514603090117170621790782732279543860587329440902894479655788435122648545735997687922632271078865955695222590575709634172321510355386982834466896226484643861019262912294512961859806376583824575563092588221470168702920770861776321005401172678955657714262084642879583875463549144842698450479678784588170395942626601864135447668872979967142007284346590465025365534818224360548626775294700929202285823939578033403950461683830294838509839323835925188464387564980747851374067154587370761770480731988174243863989335547456599767301250179156605286566210912012555487457737336299723117795672840308401102279791421136730935129551816908697561558761421342255640876140291461224448892121462766274666784219821881568114934372769548530931480598292548372660169171926505210505290560641092112372145091507329219521789741620694657133419991377292114706928766445334752294522647989107072649797667040647494856038021444378714269453704303964493313705339835062505042553512350290332815416593833354109279252735552137429749534651870293678252415970247421131644368830513755562478780889074562023620809538878763614897810980791983155698223823600845597399112656173523397719520147945307961895899210634490288823945131259824353028967518071417547534198270900944145071557723810872091536547173896539088698439002444135512015052431488730266917856052763485845351612940957516465625754520074853936490157845876802383059670156772320274243156143474299741832967146501442480220554148867631560446367995400996159961817402881114297672824205202618958964936860008550777437224342419898014048882840002640853565775343128716194346588377792096751040241244949346218638331149041410611961596124390715592249777517817969377394864157937569397771724059234556948258519089764387789456906727935546894133511508723270533164919215634533797172753122172535566291688734333997186475604044723820539284326435965921813927991808858998226514380167319646622514823355993001402990924705831111659619764733987131733677432216109506030110467107906983963545723270700293258877434274540750249649711565991818791752593827841050235322265827311926077081777901638556319153190340035212066769131764514216622384950632685481770478371142620683156197533579224621242097067833483414711745465441667999855310446381891041304880600774997791196413179750323494144727642994749901049867016489802678737201275106759480240352247001648379250307386075137643969855831534740043686587266901585731328823789474511768828222169117354233486606234555699438792725572384689183639313889687357434742278695543374512268734562621165246087022324566328905834427314486409099844781421115171522853827024934478348519104976822069499728275514861589450639290620467743561022278325129095463580058086782949795332799745567154095375195677155878971643443735343510009539030382014166041669506289671827661042934614023545560400252721345200064318396620616393497457380798188797958295174629533074579611947218374938564395872353604239565434072728877369461293883228939802534397166735627657556881789331796296316656267626783848444467955413173930524623108510848148006196624623025104341590182086396377957530298462623015884243511323385949022473477303368963410767334002556015023985118146311182261954180809525084322144414243256868938346451688167858190992169630601571052019429070071258351502032532227570886783851777463193082019306124329307353206391247163615827219514883596255574849304572815033415028478443296723885733214146717227674075883557874976443365641507031423393103592046777889458894020031527655244152332972633824339468040156648878886153316609796641584550069424533089216051015307290069247792823944793233527273854837554024984517226097703241086848518476857997425368723508154070735457416278351674606098808180846265095442393131146576641966683495685074213775717937192209061123411626713299040951006043132495184334410153737706038564725046038503234209857820905263138830587531003020884968378893440868253070944868479189245613880954261540169682443732769192696117229169449397105826749872471760752942028994202569344295153676398538630947942713717878426152512905547483610026384093821028138844819080067895100643821346153873406979360891564718666398955804970822189079163701618366218267599285211137218916742946707887842019304034024693250654383073733922463049052094363928964661547300358983466946771369261961135474611139370863423345349832886560626378632572037802785332886566999270978745190382806240750402109670547212598649713129144110861936364645040611726020391322604357146996178827806066848339728542136526116874010750963181498718642661940795960176627872638975546094898010865228110437002516376877848518738023428402182416985457048010331000580094488663173541899078882811526241979153744321312075189895364079182788280110687416071547060966782034103449436064663015448747311846183801433399205454258428955349364725895532036783573604757350846559550710864959506030178290286037715071634140344151653723214508337881234318544519177737611974983056564752397542961539432149775407051100522851552786660134103671676364875916991294991788171392896724091607364626750422500520181270781833956596632767170164567296804160325388698733224585879101257901163598020897480904491547393584585611646380152117140471102056044712754003712022551239384299334282248493757336468435087371267582397515301894748882366335270820305112844918483150754066188827610984646583582812987022798594913091963631976884238665743140246666636854539443946526586667313169161376059489065656595918931187964834474763079809340097631506037497670813231875695454297051505601386742048675996745438567003553953738775703063296353083792198900923464826766161864459198545124693700823883512278300782409965100623154528484579404899740488911857005584623444953739051167310009740154398522513117017079719930624102054746877364482947781235794727711964760288827043148455792468105077433798386111804658496525954045305551013290703854930638929207610144046554996072082802621033074022346064622974323356393960931172225963066714267662021703385727573422263795730807425676561081144222897535352974510855169426397388615981506358960196484236672795692897207722166106598433564136316836657470080544744233723219462690068946955431386132021004014411945855123723531794711812100549608348599310501167741564917033056253256367566249536808290947107538443960053968432955202351685821598753386260426557928603522120493192156495532555706441465719616376120213863218763992780977441267481291428787867870745487901582222547945576608852732703657029698011714160590011962496943766317198182558922259785359797641943916231898515345997946625343031397783279941102438674526032831925788313512992904120425938562605692708233633982209543706483781529067476863806498644650365251364916449723643951468757902449214008212490263426698007249426017179308246810950681451449601329077963282065816442279842689554845203970539486932216023565663133557750735471585916500823061668084439677334164779358314689831250888666392523459960507367429346808940542945202272883755616079994699309199466785464486477829836521669009137898108540827683378750278493779120295038653527498622325488769659845660835534321563670251874762927981744962923124373548160103383514972635787962576271675779716868459874103224522852792764353192101409132666531131149515133476393827967770977101262128208261986791461823064645013988176984465960107869578105839136459394952816824174305279971991021472573155930597879995464772589352032268502258644182618081951713636291668018483934642510454575983561569625273240801084464218604244682311695521358932019829757560630582093341731256524387733802902411018070713597778840212303410467154722203590336579913057437320302688157607080052360934792189346425738220803521005563978606566728347640259422207436625813122619449793086605430001593816001817453548109051180936375368890160981828248265926704822996542249714276796196771244815214408055689444757114475870472281450020784462148556050238871311201573633018738181011202082645771294408373029650272242368609478485768668329267241382606147978786514810846836502173453144183718445476995146128094850395681390164097412398095996071549217988264054460367012202546476705830489658949189153070399289344390449062897145686385338480557098462339933520214296143256055327802220050310441322916176547104177419558229231741438306238941747620696875083185421197424222870711497948290854943727954110418847073370103375050928484709072102474463527584094643299357941993224620049495879268589209139271689557695868401135408886194285895936263388620030860994146927395571591546950134601498597630444138491195811659424602676120563255791473153568827120920777554479423985500870899548727683283965281039670083565191306693983893912543677678798044092818716501086704825323248517630677904014738179016124485552761337512318763792981875291073477688655969903903245894766026703537002145109753685959922368679549825798910703504271689751569463893699626569954368581803635644772529343561723242988183676931017928848316233708635611579563684231556970820780058971169719783232137699668201555357836137438032897772673054774296551880850554532411511396681281837006335467901258288008843907980348210317539616692819686836048861224721075309161002412004537961718386612357874694945734589287609198810701680995616349437459520891957101199452389565720423404561447307411204064265785973355062152203464283181553846770919996140965459783023553921639268124063816919189319529793823515497422578507487600718592192525815771514353946287461411960518827378697794286338895328186670756393634550168742853771845351024085856372534556007049983355436389426344497126429669801470076293795217726428103808235357777653372017947684760140666327286316076827769160458112781366889477238123478018082668413583701888110238801757688673281521623652491379618134139404145287130870331082335520550965094906025383233840077341390359280988057689467292424212841882181589695750134992917118850397013027391917445012276875245738782863759284023936072557728271499033489804446363981781027917905338942288976910354019387100764676119568120358186116917774483163782487305366137411825899819527048332380348377732290597623120427253846978277234496394895870224463996131505366879129788452452383410064079841579498973253285506286717403210064434467558553863817744349540184102091228033072211546391332859465957385296778640758140483168309813006895779548571831401496871555380998893381788899307011878626283936245139116634708258743081630035178406647065897047283718908338524766562540743923030094059139279347621836446553625120017738192811167555071154167018724291536675348681564436409550006976688970029305523067306031817510218000585045540938460876294527748245209719151807395352195330265429713158535151659871046142145169116131293105661374955712387571274755546773102989837850294503839031814582532888389881278046026424814253167858735624104048869972006861702642033698015697322487946768089203173749957749119392045354237050368029016429719659879593058845826565664044341543810973710237447371087795363422885567582526689453982016707010837330390426184913381477793308968843636805738526839548607587392284361315368620486700099855797152095283845607996951973387843461406965509365995914230729190727909892780040878417393918617975634566593519899940865769965539622452056910111423365663887433434590436532887707341416832874926883922796438656378133591034921587314048046818152430169871610738860530896541643523427336897067988143575030887903123534650828806008571995534070968276015365490928184472479763378081178813507646212241897363103631613540894906355557866049837497869568955661609051670383869410388819944995469332454885804533564090864752783512730988864043607345724296056022752865454945461857117464898884680385890864169937386839037714164637995326425564190332498835335785638828810512267988605748090247040329359202239993816588556367991655539995902815997555483371721967284421093655035051095762322997296273799029092493023816843092458810889107657488144777909970060100402378066543879781864617214768607030293035755393275105002322190694942284235901982983970102308484573490343622479354099859723926431913464429617228993867093857700263230171246251645527406300783760505859398307853589065392973936729884112016240529562770556765837836226202467195101165898516801574962543256289712241197366644997553669105102335028850380242164335842263364434837345275191299477772804753558975633706685298498186085886408355473392687971267688411083323063045934801349237547543558788751847682208531315809194620390808726462077435165804395102157801463041276442507046302224612947458829403219709813574365827624847070193905531995410265415132774686461371055373896801383362398867636901643534509423644910877890641098701947822693222191449270959342452650107693597105703986675305548534779586181477176528063708191624620362684039896390502395314934098072415576175866974108464384297054511632059047961952843663539379489968176090982672002626112028147022339863357271812650715480572866447502728872953546434286128000781933810546013206356721443649830585120699509072190122665357942755312141807927502331678769135506233690691653433740373685686838025605389155545323345823628297224312166491187498266283592503871699274529652844665747801603623359488123201888350736246835597275889412724797906710055373708578618724762544815217812002780271319219828472623399855320376738709645145653186409284027901211912397320494146854795211418083685144661587220441413494914941103539987314841607346554114001335203631496769531622374299994995448778185636197639546972993956815131272280745226484797609654116881398804343529405946316453669912277946030444488625841612155019462065789545568934638745950716024886223711207092439863007350346445740059013611084403499657254083847348584445540250748688577691643558336279603807076065060224276783880614077274728722051360449042318132278280307878940286635890049067727906853033898961989537972045310380076197020698454722705711651524341247617107196802622726277347735422381215842137329808128398083160214829999900620659129787620486250261810759242783835060572665976275153851330549685566588972644079704182850144372072562394502653125718117303998261524648815390779229700989783726143805110142788875421142839590808511298887583812708930528489343168516382815537759330105464676607244398585316564444698566522469829147148701919605514825558981744825018872978932920216599370379128446254431475787912179735078920586558527834839398632995620605739819886815760903490516270260057686111295976454792191806110403158962383181879375849875971038977952881354080616011721851928063627849911790477624137249528866804735495928080343516621740984986971345382289530675423817806342106923966093497368702293491831316729070249090984461999845298959695696084090817456662102109603602896579533136806195362657244956996584966973259343605874942757625444745519350803606278239358329703337768883003079724348910090722507026087221945598886070987751770751107924971087236721088530099391040559736659753332899772458420437224563330342316193537323681757399987693043456070872125776369170303006716278093713321697155701621670555083185085024218855036906582948454019810588792710388213769669871440369823768827599872545805843322226268870242683463058128311305486730274989057418473717176784718859121942825780752729667643285276061963072179408488988469932436782705001631004120749197831698529484808532050197359172857575789555648463514373891051899041432761273724556831110703299322452642780717171310865199982010115001317893306963858368823499708280982317162647229809434207691672907580569437652555294199539999464331057822493809562347725490760416084020025352942638202397524979909702838098912853056970777002795219364265577044234367765020975727130368130281413595527552951346952325083160702470580273159117628765280250202440437457678462543434943207337229495518994967691288752260154371373929024862062372020345029197879495460730840969903267468079128846041127685401710563329331971512812120537876601461132939523513656445057681555644807770135359756006388271603909871496682514538473866300161654292872365721652234372435937064232898086302953218363057396625432537131884751027110807514656569859726796242308984930532995427767095254309547110200749424018924906428441638689021840849310257992676848440880718759531706369028701533966033446584505947386883315398796445549855126003537946226021445401518236904032855848350438719952432565628691249455495768450953456021938891410091264754255814388523676519054499656411817887468911511683192995663372755556547319021021579823620856655842750411153323199043830349435885971441544242180173296443069138359206587472024609476316917330861712613355755505648677800767464846132638593605209460125406781642998900724489635322105188902330357387342112627782704167369825796954421108081727466575681590742714717594756163599079081222961754643095549805188002995994045542093012446339422739682797923606996258076712452870332145925755110832702155213821793191629490499342029730815821468537088811357130004297988800602750011180884375639248219860434320512307457366478287372797734132504761442397594046245984158333553237078092572079751216431056669101782994300094604796375882413671371941375427032456008388325677832415758897582395971523151498530557071240389186441637794861022458907811477427867248735568038920541287909761705785364757965067102249494730693827505198536439189268425914979986217116400251776949139750905573886898802476590758848643020973587550704357655661039781367394657694302346314191610126814388511318424495507179434360360541156968406508331785990288591423361517289691141193942447811554531625488727924015093571662763014266169122777057009439022087591751596217155614863813180535823891668921524873744532253733484602084591147777386634154091618311844108493852689027649558606017226550923327000020107738067475379621330404698841843092042621648639367344019820571464584364198233312689187424016845984400483841202801489337921596801275168676233885421594241395763595269870269818991352174790597149379052528938301271499505618992698739422463332517593889982055437781261954428108885599476820200217520086702268480897972897627513420053866874665776792248954659700265116619414949360839695586401362722440159263184100924448533909544834912291985967344248606911689159870592690846216730610325180657828358152633479540790514902322245351307934030799960101569413319431447399682945717058367368219950972833018156458168255043072867832831034448486889578238226031179031915593845577317862409533547202801267190749799996851547919601065420408540122627428555729900851068625439420140348606716285942171162252379520931819293350865626654633715583477848889383117060382646694650682333630139224660776130915801099144257329104680641684653334823919096645256708856023836206268820819297342419283848184332416501265231303223798889977761295425668084358766112038637026515181558778123997849406312426733070740327909663274245976378793764186326530780638985789889287271468959146077236021369796242539729821835019261127694031256902825725636263673069929176259696137026359273151588546135111922851338152633317821567323005097966910543334031746338140548128585407714455922255936808541343078425916040272557677952903503869529312919314447028375926278883748335771929346073108287932504058096815860625740126439410456247808710025117073351358436384774287972416826167326127984167566382113628428946574236982445659116450147553377839087676342481416290350183660301494180868266540772220622997136880957221241175228380242780039230812873548954325217018800787840838448201204373875237463436250017014474570218603506369182255500720079844053440506384509792628442809827096741200382187473497417387691225714317685645300224762338547491339695494406901004651765616876493182564259549155770196785455738089203045883175615288046707560265255281889411564912755283383791334115808253882894738954727344933594060965970934807084199068271089664721295295853651862434358601523357984261584498170858257384529094156514594811814216370775752533054367262370122815239219254823745590595231247840792200604202029889080164765518546771281664224730376041785736299617467170706422993441814971578108654200064747392018092536037012164765361827347850100039944711692723964821866314281332360520949686779063683336445575286152478982644356553582482034418110559711646472879957511066670296857645674342133625244805521522028462062784758740452008493951458345916677129863882532045229329815534969563731632749745026683134497436515921811330927614594011381219606973752032022806482638732639259567623278509316014723480839153293286004916684356452006783475733626707005616188862272568725006303546406160218379937937922200257614325571901697849834370074215879980306019017619782247412695302474409427511601297728678688953417319561299327274030858317648010480053150228338073954793084703045355783297558893239167080770771124051511690815846984066666314364158376840366194378559077308425703005900773398125295733884893069937040258196049950450397629300800811125596941642899106524974226000912990624041755750823333257910127871408101963928627642124034158184821208573922728724467290557400914416997883791941222495707210641207319252736813880562893333006794907446902683092101328439034801263180780214230046158760226096139468334225319766373261623322881393991227375609700466849345374505906032003267193136373757275601524948856600563665033238726930887815039069459615503812062733045108688210166659344150381609899176181414318114974761978622098440475619047218586663495068537094936015816696610748651793305849433797005506845273128172789451026072897648127232010101404813662384728445874525896867690447024901913451199008972180853715436652333436140984577022237927247542184636638424132796346362072206893579281554096021203649790452705175831048642448990205889764454372743877206863291209924864147571877368525609125274570700608316273644391331545887942255132943784038959369436053929188057193464573166446838551762476891352484020501009694505950055178597288768739599621390136494090175941793387519266240802378941349010788433361835287100756305350408119694053095896993754996229275995741402074291530092338222415696279025258929690302654488920699169976032841818313004714693968794640721787899799543878769578956827060189326665638047668449614616186797433860136713944749244735136923266205238079755712361703545116384038093862170611358900729276359365267590787487972168321582223576202125324393454242935664625994421823044059670392180096912786645730750539968752766433064131772060310568654658361684114827522452114105637457716582475033458580064437990134572248142722839075238711603475352311604413779095366289915973622492467442697533415820879053256645639988108197278512586814109770494740275559447880596899367877242623201508099877319988169835623125319691942035103444270203930966493637100635373122232769114807255466217920550788995048740979712853028849345321193794908010430080296307944946355848518388344110997592243639578915947759599925625713874397190077678204719845475248524915787328363784816645474049230176054891879775616542010205541185372060126718064722889671021531861435607736247598374952306808486521939893106858313010445703425791291497681000244152567547614739555941524912270223686857778609897233260613398193831929565556455334593742653992645174675759423001056443277392322733783208332139396511809697950728845190098955291482521481691705701782506010670828933516316131165682098929795501302371502103995251476272512606870999688410468800346476038760679139488862882838160220860843332491874909779113634514497832632831365140213019899043699567116290879094202877749101037365691324503324091091049730676816254747127665203165855237857383475313995056750478330738796402468875428601081516321980351388678434499626438029547265084426615807293685668148652415558868379303923521653831813339755917471826864387727004986964697710481799382211097922872556822712503181492311141526767881356130280712779906987982244974387484189120215566592876986166644040789380848234428227353976259192453313009597871291719864492583634163274522103056988981412308651170881338357193775952140894144736924093956966674722153497574646583956821528178139857816314323972084357883985121966763621490556511439934735442214885799758623366358271531726465024286579856798570786533165971388486002909932077542120284195588084215763924666952303202871668077147070141111056894442667109665966415708196688267645993447286360781649635897221135987393290232055707217481951214958207294216379656939681282245492571453181513600305342387633940961135288207631045621977481741608892564135752298493918602677965660177690865622076314034018711377474392340906851215817161441363698924118169787013889246756455785509770224001184515797655553126720112914880893182524480026611962041745321221881025678083180883118555197586616435643569215955189362189768580870758066280452423162911333211682475268031462838322954943360197712961875186161072869447089691549038911327938469670227018379731499272645973721967606949465546765726498322762107504233776159233796250229922877074316686695015520130342059053379235194719116559973909160068944965261076679262971227617066128811422355754157408899467600933402079459632077028413129997429477985131675484902853762880219858756150791854183043591920099606115415187382894305381902884367460967553751142910109846395030947766975115321283984312793685541746450319017701549607824366270260196773758599905839291497056071849052744933526702592133527553161758067445566522097034818039233972460824379146600163319784561885138283763071986383250591953858647296886081241981548728005528947599414827231577719323398846453230481995826467965272305190634625382836827430890428107600242230264052586633636662881756370740504918197824541632954745670612485300044595180937984718239714880810761329867808878573099159403113469501005025323228853117207240336852008453922055070731938151049041578755341732832305099064599595378773171570607001054416745189190335740714684032661058813750309192406246923524604515345140677901134092853244201379912603948951661693081909514299430333317618203230763692982163963788567575822626379568314969226389101383318351400441730915878173641135061150381635630368912133232087264006521463154807941436883363514480070526077280348106102203375108189955769198020094408656861087311729420952971237170283527735757274377830720964662877076870187602455923392802838228094952279768918403313385028709548197973606101736369528702653735730006065225394329593095163057182561755832620464597083443601348699531470990752500022268277877695311178454630910401528662176709989487451530510032531179273177186742471933341193268559649619372772921451045578040995887014964373513687332607583509701043328745277464288415827987157704496865652821439726865613476071836988088636472638336521509844952929437185804588658448014817375550717266000176470508678827629881178491298168936906973223649922917086329562934899426628496757487714345463246293755421448526432547652005271551404083025479826873652608910978398372589723485454879485046108490809340443802180783823477870683469343625584438191045761275572254123705471704657995685176546303576405092943892786159150149165725687885550276405136463341412093876161459207661117859582061986310650888256857586542556245652123932339061295064497205525700757491661171754450753106760201758801171169991998423459305822074633583414808259976801804595014304193247621656080612903442301313747834915858957605429831523821256089877666205491358925398354223187337716318139515840114839129005465448235168846957751875536811669480530797144233695121137733263271007790974178494281156776458644884573823579237594843609686748449159878332355770373754655309808735925454623896461670133848812594195431352781457895756405166256637804560940402261668319818682557184415283300731238292491087134430811722331133600757190403293448118464740734758261481974808595105091198675156264606892897923062671982046553097188207454861324281515179234854722888838763177691905607893043862968616543610633545988794111848477926224966072242141548692408352817407034904978731463976357135580525785848171383841167764316070130463168615091251768047325849041213484429214869914068067172408521852503743519133292524748912601700071445644602116876106161407499452687820033969545484483648714593339794931548193702609156543057284745968697174145117236652599180980666771456401072432182832194450362529175159808550597053727324912671252107602831962892813305548582977029185562291234647032556439402448678548977583827810284549280940564038875692699831584271386644286567323888338597866190667221163156645799202672541853970394581740596957682417335758438382779703188700986625119297496871440334433764629207189072301438200888999763689551225169676375822618569970847788506710045057466059517182286282918091154890085791971623980944723678257862423925682652524652571217505172178383004623802235451644697668043776151019039087502843879975177169637300969667266963970383821786686067782908061426424687457876462067593246034490923163187957736719358849947115973593698371408589338848148746660960504788609102291617762466640499875424735294601480183204693623665507302011936812493636990483564611410112048854618768268236112368892185334657678850032418452540321168531962959600275943702205163535159694147772680047763990663646897663654784457179794400614194457675753600810470403876961917614920976080992767858077348088858042294200414379470966194329195015666903304759750158262780447684209907501511546068709768053559665693058592750737193018339600744204253160684723233883412494928597729237734550768380118192105273115571454690674233515260616851715211079723593761953225143937699474621387172352681116540609315669161054251838959415339147993101815391380748025829025230873405089046477451907842043500966441370897647525890498076746570310313469825859039511960880891076633657367815234091681832467138016467580824726118119441360773278966851372846803103628969366855323146964133950172765662523152479477012580887524154694399638342804581338963617482856916794804429872775548666448378987950625808282830673579330400787842268683468695145759141270465489614539056386973541579680462171453058027874815292446770997015943755998007574436239748955365666629180969351413307837690069826729789210693742781475856549880811278215239033489235244057074328568907956536736393893458605277443027234440924844349563567271160821001163364872353107588088323665400605426019854102847420681851807423585624695818228369117829041035791173321780361709953834009756918036337762844246548069270731778827628258124654271301995111846155416101536766514007333321672237620761618134918583423325282304027608288451535056429155204909301248166642346752630080343561921501775208127313244912904883489584841851120295411952704591892024650688845885010270306348251139858161221563724306478601771122003186694088408099163318463945811700537071736656321587075231073603668577519945318629766968886851751139821290106510788441211237057435764951253998972181685463770700791246759203023081529429927850137831459693245528690779121858374448942897220207772206438678646121796719305359248365229230644215175998337635727777522582898875801713360195522877345855846866014528649285783005404250547778875083536453487812241324886081641094427600546651585967245631736813882602358422179400976051178216081289272651432003955087104330163974629198435531891730423205718849034958421684769907339621258976495912663935797870205929659473649140736924510378327448136800532932978176173939578683907911106325660133382427222266376626394639945934405826015333642285406590751257128044817410809623179107420433279786650372289026168098255772314236624478900424599042279171273431392576978113567494060992838667074499162875178414879496806501436273644907511575010690127167386553439674973316353690494231686787094005111248230283043454729046061828557825587470424936206597504130608817848012855253848807126566307417246822291628841633653621694127005134194844729899495475581043694325383848430172297788854087829306556835075850283862259637401790832384131993381127787624525648637823226369386137316769415191448458736307336577722485830003577882003243295997860398114444204907587951036673044980077631442356998437166862695648940077290568675132239777346680981675284350740727535980279684511232757118485391393983659077309812522149580835690765785144956752993712656285807734257003558945116326355917398151597468274096666628229110489963380995982046973817512539896911982718562347221968050152248603396363989490338629901352291595942179931167940396264822712952592750006752791954353534304701557771468357811101946913762795826001127998174518140693570285274591474607832014391448013047360043360837778995611038151851292514303806892995913700997821847070235747179493607243331964932500060453477701433903966471454253433674372047488845775276725178915231890150185564698265199538555608907229254658562812450032860184446835824764855702751692649027765965274245211228584310721161979785105850259383136555806897609455273527741333867035677456644841917460868102877539205179195756233232292164578686501262666527092116541197843815149664388941346023353033606758943065711139192178799182907527256852493932668753078064286406272200064357249742217030743400986559740710113953025570676348545507579662326106976434398462103230464348591211421856142869106328907293769194851907525541230323230824217388176912635233670053383509270318794754820880078775239966270575530825891322159379209208728539337100094171565271122958191477146892237953874786981287216192983212861170781721172380893149837314426239492435487947906118818782925670608279364713424768368608311914156411968496227027669035224936446810979106151385280927314216376336945593542463600319380728814990294588486482960141427190159260015806093688472594003082421946905048378877884222198687770904742158215624769879012777865166324929671975642027327698302255766046246451278561968216252368674679455810792905627831610224867439595557030702602533777122645865151548579348863753584614899255314388474803293505422639484560962442636095311674089793564538314013057387316737927770343256955056835343023213310088361608738986851604608621177773645469602322211711516012871315484555524849827411603149005574345839288616621338072647771825284847084409929029763584229545093566344638587601782168480640537753295397399061104883313606911067061913968539251961655630450076886368914977195873351290586859204551469275685479189462340621534041097576309434008813811446311492767043023556753484586189743483537592511186515372257203870293144979450097817753442848169156107282906000146819413334791998863735979543666744648210521732787118514798229176733858115352406314966411418519563988305935428532917286508163277796475201948283960579733614167812929714649180881890691009035799129727619766422970808773279817177766414201552276400966455712154022641471425007132930983244651819637046529363851290580560352843664058714346408224590171870563974173902389997558419250032810612393512083411798955636821718880323432175350967767171051142252583747597442634375529765643534795987107209936554959920165697668633005898506629358871715332371637521816495908958336630576862789349406711641035259589631442221087227281774417208069884659987489761943613855222421823767312317223682891002550190655251999820996053330089283967269725601271859969718953560576891940604968034540477123327778294603983152069523484236679442027156658981219313865000053039399230135996652066990342509184622351608920978315162076772053755202547072211891237887750869931792985890383695292458286907314090931028794927238623725757387905350446903209155264614758953640580001480202550245848197788029154739855697861891817662045317695419154796223786747488947042270926642285021425245081922495737880304596767162747145098317888402692001538957909015114249703287093573243309748804182517799869850984367335854319614322084428364095760698337660143516743056631505723695815680378086199289194686633879032711352655316010110662332459213213890171780884991778095400207908739023123734960672916350747415339832260037697608707097109147387488593933833755244170408988278441765966059311328436181077166254382496058062216420445720104598260093312435216328183214711998958282683111849580109536579343209219761090679477875470904984532221306242976190860386030323704725249811697597341047346920556042486877182934177718329587276271963946606100710397351978945998773931510158977626094184230269394913666869936131681038147608910190994549905936024107174025235411920915618907932447562132938827639084618763037260100928771593304989461451375478716809374910225871764126844980923754178554775525162479514103083108235188907991939915812512301420175357219633247648773916867407938580822232703363793073575510842222142229570163646209773548482044706037315760113643781698627493752382857203297028058723991401535979807362789478389648756354291588201367240249634851162337170881697188098484107715783209540110465585317264142022281811706554899684975126289658971232644629462765867704526993519427755235663892572636236380442015371814699750843395950282646632061944465841941146017387650565273483781376341715211536570738557388940215323309866285016270996263079527036750864039245941305530603407537663960561865581565238806446702215989602988953473094802099214542760139833406801061073197302069831241902311403779212398769104466459462926944358857775562383212557222884570014787557258246291935383758502248462588753205795636251349268389915059254384723580639280054466747300291404639386052073360201006036426935807809542040519739762135360345525035054058449852840486206871304343651402763622254632056812935860805308974996082662544137540496029684166318050042637392541545051676787130879309234671416845991734298387856307865708462727729590177013599265729399115868136586604421301896618035590261701930255690425655351661537996273421734428187209221217926831086239748090438692064861169921755897650802273228635223965587256441418507728338809885486075541534325033988168417079278787860884569981316149995206890446516583872913694523779858989084607029647107872491479743644699859507732188474560236487198802860131289900827550505535286689046405471078518324135381472760844463600190072841098648640793315706037616637567193455358902824476381288254489858768363205408946249741435045470314602816456873656245325956218429560010674208989873341453842107654066109284645657058222130786227603302257619289494861709350497641894219615848734658428541913898965479724939289510462704195807031751690047056612075575643453698954581113829098592674965631450417627710799101154059980817972040438228528807131071751862999783677280134633762459035433979076074794075064055193583781282874068591915669314509645060602736071826974361364436557072412305900029845993342797785634964550353386261015847813398352076924479781065094009382506764941807906031356042704458219624690998207559646943233979541839822806559034256004852190738004656090240558423835106497592075858277425887838817788520888012971208457180025862130999026237599096174240538858389837882282882056625695807698393079885897929522175194247989506262114556095031253210122278466745600215190907614612094111593993743556401636210769430688221645037604834033215390557928964296316858350933110877681832124648038885944948599440452212838680817029380450332528920111392000495117101180348119885624083841318471746982130212179679421296111352504718206060269448643027049708760290745007106573948523946342361682130689452799724450301280321285719917573390014632823663459952502787616629002531650031924829338080647959219359145336916534781400280001074170496014968967554421156175730824370279217449780542063843677971786234729566109038768407986896387743637559111831125331214217650650085301097776309140121590415384639763511759021994994295774078239884582229220611008638785006514286224415195763893504726456001447164587201801244662629718314784031703534834658585799496448335491955510672625624357311258572728748493218416311759979259321320806135491773268960962334254137494875760159177583930493078817186027024066200717019450359016120635876840285830198899128485942694981741946512226706471467071957075138722891865231888773107322757758226879742058439535302180255459864968168128805221128922899915395785905978449602515127256909360162311570917166984285064711030204863821438626472409204450951483212333547063663449345845708136570057982889123790755945056266588913454883584386936428570258292191237083987051008181917632856622360880384631621135474309232887887136980998530884614921179907601173445141940473941244599776640263184766235443423628604880790156338985863822417699609621853571230908043317499823278048216780894568730006520376154720231246461953570681324843071707268426351836716424038431142695867219357113892499835688641582866192511918004587783878081166880315997074293761173264201897031547322160388586979264522903710699200736919506627167051720066258338460513939476706316024620568465088367987542835454416519042607118937926858279621022971332206776078728881016267914720562651240844125619669230635923440750152155887407846625541874268657408857890791844282190171135841144327029470649238504966764504629824598684074835206079192046359085716419496349660949295501309460493256316535222431020873251370272966252007092274564937489957269520025269472929362406955636741549395919008058837797152770812954477107797659418203616949933111282787068333213171183113888106504758963992984267234622160089291593446550781765029740855191459978623222106519527887878048250861351351425599693028189721568807008683835034309496778911605055534701658685776847221029203706585789132395642566661633408482524254416571351041566951174928480124316054030035490924668488562784172540750458631026082763728923930537647584713502256205635372205230163569185724555588047164191959051073825578456279151374535691338633086314150214478368875474852443780878005810408591020812988726318116016368822275928879987536222270339850151942752056316379489328174834045290862150225941448084903281001981707697170972915595734661963098195952057821819014470217183009495464395860719496344604240326800791333094385997935244558362744562113054613231330854751362970231003782924880776999490795867755507448392855653199346710169699948199165356560942532393495499584646374500251091710436698379403539525330930067841992875750523961859232332675041244041947296103586316561239164397022086727716633628273571361163390329298770264458045774619772802532432921819904779607885167642197956311547958608633715010858989461448066430034453894344197568207381597285859830038072788885627863024438454142218474663846857142562665790346957430105088279073170786984711299091410175867530819346160756933858191930346079321211203386082244796635074477391499280625540723882829557375477243527834443215642196887023798508319495452330276675359550829464478541699703196046384570579444686178212015514694659674765685499678390082634066294770793559445877912910165818219827881417022537084275602011585527937282741548792728348724626801510536855053797543927375535667956797077620488786376570409299604561114592267843142737408764980433552387488996115333696119812322535377435307391536267781759397226450939792966076342985071292536027608359751285345142334797403962368102121847425742035683677963195045556976474642416849367032768300395743213196019038643288112632873620902523112377440586830228716764775497177096089045092579265658364781212333819202665310340747398569874783181569712490978980444251476126264228255730239381426796556638414275729004129884145416688854679221585248629339662605656015712591125461578879049051447282230744871657776230853998431240344950015725242382186689074030445124890651040900357002721097714169464016079820023136982820032289011614571718557346860181837671048668635356936380976440154894081354286620934734975864484174619283622421261986436893470488164068501541436245952643885341202834120264242138520518075367681545572013978223543404959824845718379697531710305072563166718603930707320271922865971118690389389867444327558307719277968021069643283570461297897151199137040220742842476688420676822773518212299109885707138581190302358945345744218376268827206670482765352670943523416078980296327448404073217542215393445722164438202490420471137840910914230801872063161590416219383431658282583693147692859986854128054707469622695403539428645117150736476537235230307980932687725799215175933708912411902388015134684394696000092208481528830401931778667925751940836111621131383427307420966229070802393492204253076026734746566245372693256664410024690013939143715407607524228271180472073617023035581845898559406788029618321107857808615503257221486836911259988728424959478785554961685222948579576996974824039870845929918091601754535374924522457699802381909057787168934420118502243671764981507818485496001538813916152449025490473664854167717594881051582326112160746625972553431729412271736081966281350532746821141137638107948924154921339734440475335799531108826722054754205789852015432835019735500958124853479406556783903842215848121083552683185873541642474059067398271872393320035542074484637758900881162068963525925565296595292697147946072014788266846516381747951410259319838457193737624506240071214241914122778928175735181222785331060270179348862474910798894746180742952101143535306197998755251986019974175667503895503614701857129925199986639694505615923097605077015216476720963692972384966850518386089072120613545944716860997952882395134788774664550334198725669223909955421386499882207589678946837111876183771341568322829325428065963662997023519701164336192805083637160930119921715964532827083340412340335885605563565405215927563052851575184417996514192564676303690370864221919851164928446014937620065157159168211288678464821069629538445263085313434481813349693710397323384139422946938741532864027434700998283288854056941429131863929815983841305599487805724361375565232794557660324455518794152860649862073029459786634132150934747570691361530733550020601535228372408977753072129559778646946336384401566198722315565403355939032241100989480523373722274685791928376712478140707163554287851409674908360730239826918408774961099088587868683553618545211854324844522912701877997195999802552456479161189625904968057026992868768665989047993596864199841136777411758273680164272848172442223901050247978999241910849479025628458053911827321830650041535857672177966178665783463503378984395575117657092074611454569619670015969740240754112899758731684912523764496295231377267517241145051009483447151523116074209634133990664896029993962461905680636052120810150639638372374684626277806903368376424233206185243233009991093006327657041845626903815945763166136448992027124626663887149801858033148788937458668219907854613143202289973346304505339472309229246506311607586832656256162640019722571744694103665442759256302812168009247603770002418999869926324307338471155506296042056799978230953216695888740788057512120075081467973173496936958555115590567216842984586265423163017778387711542758604545997258077582479078637540835612636836310578392636550053479361831329700433001707246560527722085435773728078078417188825307053499222951441178215206286551990198768194332652674402530915806521929020271668903226374618763125150766258736036180208551659379261836750928660816109824846498680819409977750255428598152283006327515540837850715749932308918279541960125150182303751482411677596712058681600040739914081252959019628292668616522695316799044621303884350878118378136403015480553090114215479383933637030137847093665157239655809250280158610271034372110326484330575169284037249690034099962739879577281266243877050958922852168180869838546039278389114137835119884911946046585512422708752472713681429497324978260793347308526576633775351748056538317334934892358754541068410383354729322696960078555113407528076428671884193494420022071254234534438559395236245461001668318426192652711245613474903123763328531451466268650991995022488552297482635993544010022186584157896171961235963246000601104654579992807457290047283439350916393525170654698160259711876610610417075130330295601911063119437949337733420742286499252242217900443176846867082984214236214507655838786033774413017587501994117414553792657951160993759997917302033938773348767606116934543382356677593398692579333262516519356801461277609938019947132152743888862398555202676552710611534373946295311262880013213598696898399152753501939031824762769029675172279928805323059054187194031683533962864303794476950071506381487656452364133090818108222436413483117598070459632322901688874160421323158746114191546344844175660676081892813023955041383942787100662348081974054396025672926493337944078037200249374699548070745546725160604964786240566322917269515718962547081761621246601812349936178364106092482327370053442689821750015320894282223739604897375235276333143963188912089554345692477830210538369563119944991177472136318587263605392693352934705300411984308005117827579199169243052092702190653200627111224219350826411295644996803702756096691652325413861015096779953788110110084249443582916934667690691152921431562792181751281318073301648719011558545395886790145544380175318905876130404815658799836888148245844000471505627227558879111357332194558536141312242744741836650848605679537867875800672074554387064519112053026208046456628390574142585370180740665940993545445939292004003908454245213370274178039166797303215823521521224811349240102421389180140771619598079384111989370609499401393088354028794082763771035394415587997394890171369741419191735896076343613061173187416138457252267748145298495096211723428329096388665972626681956932038298119818906437261543054043196171818298939106088953660751920284296113760419664814949211198587551811698241927352662622649838207706870432186433974762020968180827584509229525200180547240769714817209800751789939991245972527474743181487889504670485431249419933613459989451528382620766234161167856160799383154229825364711355940196311371385056801518412824404637655275786853457261222342278984585703791514386517800427992373065087505715942079248136153401891029309645934126525914338409453458039798879263425030257599640574658293687093503845428777091522532134240873133759644362980654197736921699644776081869218754789051119392545155164914571124301902109978676734448158583286395554548174784124425251760568125349572765604004835748854070113448780665611827443096942353031697099395940335148719076167838374605634935871094706733071689565558259816926501891072659938442444010425132976256616990869910897600167507262121326217087433264021876939449900635420927572738706774319714043049781569120746799343887945539945058017429638813314125923951938965841556675438931267840812803814262894410546842245697416421544544150021433661909899606474369788862997511481433426197152596984278713005910163101351706347696512644832283384761920962702355432172872723323455544795858125159359953773763492053676775666836069004451256696180197298985040892422557638905349553985770466918134556234503274160807202730025343838837438858250674036367643286558448149356075084315065051892283672064143905557035412468008873695297793472381557487451988134637846814563201077528809762789689838333971144216358913418321139777180010488159807701862256039706662685559084566098285383028072145524644702346339406562268169066075795022641637649419469041097076051080377837302726645188119638726089848393498959872835286405244278136233746760715717114956045059899272290731237389400105933045281427810373093676010946088697193392159456675662055154260709315497209988562685257101155526721505798107565324119646961428487865495854958186013196048690317209405941171432497892073809093940605588178855470102899439772676660404830950641221595605968383046838027048130010794460888180717397109134703011422981650453834129262424848750631152433707679611646000405598352113880300322116538496369946704194813093552842931236632607327048608775113263372360039585949159166249164706030979867017408463553539044208727498647822399779569598883925166278988393446868296836959565042891553713169444134370025296934792485400875242490945291466488434576250876403813396056580392920793638492249910973720074523774560720100306961828524178388480687982988667280730964861281427700141301488478843984580915720193098353076613980858709697093962751598451798096336709262093820609180148320518109477090610494377911109130809863768152287821645742501816850885095339442465962984957576620529491886915848569242783964212053712864339610811929171173924175206671416033342918520726444287446282910766199720211563848269049502753413768283286200458326554690622370320880379547905040427986594192917342363717789253980370497047501981978492529427062486081752188958084179335524830824997647735709138464376677438484278393577033636954305391722316729629841429417241253062541442006200969391216633409042914565743346989287535856342942904330181718838495029364540589793691019583125949656964452313349011383363921194321019267637115176956525764634123628700754403307563578451534741023272985364888958547418699514909613008738232647239233740055255370553077560642804934166660681261348313060647497914653809159052041188912961553159300726027923933204122904490189494344813766733706039939693525160857129304194908652724550267154550463177730795296499220194504024297709999349931684164830753056445116986005938732182765167948802970162553700197682528854033390350591422468115493409029176761275594123392556115526107880995303447167443819640010998213000169312541278317064494144423084161255807636634560133598236002126445445374720998777761976335124560924460050898872741238215912760480605735918200224449362285019940633072472221366532363685044709670021458640335908352239019950966381477437771899512104182913628783888258762605640067946953994098788465461751900088111816017372059372167664595753000432757600313981346706414375255252360275473386070030206947193135857969207724142686020432895891378719939006399526803350623223021628614789577766955585101755663646020413085759856216765543855035045493918882632335855102221901216897196594842103179839880856702439420769470517136529402656699476657460541556098078165123552294706243940679102626233204844440044075037923132969397423691021403709189200542206383407772554057553753251567807599473329252803695366556051375321644679349670467032029526431187732407249831351209057850005766426194108967586571813870241974986175206515116208981469727071367132611778246226758327952152136568059653688856164614424753619126264221980349663961025702128701954504685237339955972177734977570409113677475864800655257938186867074105656362477407334893677094512486205783795150009620328939075304601566911615451479963717928488635327788002849761001930545728574003810933258005297800068705168042127140881282648229463782400571719983874909790459731710688451654201471076336119401269118386449875561642056051015947532142395935180531335485288236695335831834738981892768707234722860113874774086621082158342541069314010323704408429075648273217433204951529480587967416840379184661341025070110449558595519348754779847364453769931039486272364977922010579094560462836739892218812644212382674897747044940121689528251079012587357605438308906521353866411035136017487261125056181387765714958836316507048673304449778858559870058551927552915570514937094653221476112004748947781926403120897438660347991553852603911457039848912394518985795682658612595434506668287123792979800676493389644901210228930537442621915390600796507373387021678124198468589178441787323445047002204467024246214104187478252510741259326866639930144854620150868036790195164878532168671683141255557017801933286711911133948055174086739291750209919680080094753898231284368736072564938361060630673210007773301738159144551638952893363417762453205522710714571458183152016146557391279531841848305192122891942022993128915314106490241564672830533101292007394628762284432129314933530840200519071209542386760461288293712543370358627813064008043817076399369747960182307002155214093002924807963571288390338507068834563757909616308336781818114786717444162178085740047513752637964918623127515619847032430030158285653817596463601710212625993563397633351177378097943166829086600408447944441880666817708442595431439992972309638587261816221593643685043883433530152328348536347400944839225379681348045402441583260508472654795548087181122681937220913402968092541054047038797682816068393006081573096585559556458231871725895901212903763444111779897331590955972671252644441271926063658506142436729900452503824498978089924939158071724120165490772450022285061017402349054076188025209938361738262749129829405222069184838026785804238125979424255273557668700431629097324974120403216162196696528911318312974063745488402006784181851622758676406284995316203537073899981503157560608915267689553060528364534767860959678540410163303859203502604636335941714941382599912588765702870784271128699789122654140689153083339314607139807565953880511648983582507429087718019073382053439058998311173243520479639047282111107561128797014823812077483494111047365148798180699635181890583559152463759909409362690553511391485530836156811458126233555450681149140413856772343765734076287504575442736162110884026906405742731233750866772769390349738002907939415990934290948306555081320049448467322588547232209033698066250123900018770326355786477416960368297983829606378646361946000633541849984370965024740126818181049361429931565549917058487403376486128226262606254503535617416675648529872575295896770397543220835541761183319135499695494570990042650897904252046075847956074356365614052167632525793938596589967623131034027982038731742014325554892089393220895772855072052608145171241940777030581398215469624385192397939817134495516236254853382056631831028843596488550294918700699479086689505892071762348161459887692169954107260746904584200698161987525141913424410816628825751049148720733685638703613533282735134931625781038740301220997451432076362719945740560088664595669347894212665334908143867394029075655277742352565813408328153334608697484275892009366280338653024490679394702798516759129045298814016385661844655844945289500109551310105812718854538812943264485682367114669067795199922587405102287721034373786021363974704028903718340301511824553271054692931134206074330947234419023945497446352005683586275860365179121336809401650762114047392283505691671654380714902072957615262155276599115639063038770955669702185640423594948978715008296399032191829843540370870341442247515788321066122983495148842562351266373010965772377827353216895181049556604703178725538261445025228977251721832793651339508688086981214465302289354088696818808412438103407630458964995492676115820841381066896513891960466670938328611921111192018592353289206792590003169917246623438663234191672163789312890766319366639068343486408623994795342783989592508482987289920928149388455150096979902520355228280046233925002750819350999073835854097216083109816230827275462950250076484126224283744280817227175121794590340326128302847014679116531536625163155101593340697631407669233116488345575463219592877964666787582481441990340343886528925759123765921987065580313905498282195751977224904199598238118772442007766408335709324375311519530085134213272338874459838532252868047013062462954108376050256778055406637434547200881341942257191371390686676496988675750246849812932721169686586307615128199768560950611263715685029696797239404888104727789784396102354704832612595423725336557341257483703355775200229942057875472393889489168304849284018254280511399952547164359764296607223765997160195459581270497010063655490426086281242913157392744882359162099208470673607747255927929916607750031115844147759744960398370030785173252261370130378013636357295226835359705720269129755293899739206243822617100339645721661330446373064866537203135790237097572383624872376723472147285687490914120038449477209474830292321191277754099561227210519350722423825283751017985863749031317996409909231433225678805756886278070496379782044370275061035501827794840104429764663080151641243217987186691410031354412057843991165179362187975545784454572379876146651082775149502563060281935759146742617795469882772814491579712829745860163925549089495586098719238344178079335274455187519824647487129240680527410352966233544310090591980934600045846210429216839083275188616751262669172587533925570448896929340108990432765841904665190724587429681090803979794517629404858174455783441339741853482365320070274270313149495764509500064455697684415921710842768487545879255625918911523739075030744867457424435850335698782561272462428141588154543873125063183602373158674088658053423272675042747372681426092283517489018818590819964279797418416678455201795399362803543913516504489162586010675678855477119520255539086754050249540100474419836502216975794963060688827297381946851976021231143993376790585804171720907850403722912516349070042450003753398090482540067795472902706729970226751125145744961706938537069888662547239105933567487316300264895523518675909183440319848109253347422227265710201169682360714561771619080306010155188366337335225618624283868985773011357928689500426393246604260531333121626110508543899688394810127537392369302455776975073085876138971259876202846031415524528774371867133327099070257885440615116359027234030446390599879351744387570764194027763580000124369739517115019814520735491723689540316731925240773939399689758633799184692436872366938215911966012496843401582359169769350750116849869686160709087408264295200381668693215362243381937997571337805069601089909351557930175785942777540459454763195191819224458537713386689675859569214505314617882181067143046730343355492399563547126903015975242441366683820865709300041120911255534745121301225877637435261217369912003058177039282981701019577352486334438359715922549088256958229552850206689910603155258185623766070346692811025890900687320476699442782849031126971011391781383591764927250666341578708017263911038432338886913947827119176918876185486244674860100923665250460229455636192334163099543260589759098951794822516525890944077543699281856902305933882540431498108112168615160746839282190802035293163217835478231987451735689439763224337815231952291516912808248902959815111776361142531122730925160760290076947652103996970030169204781970240476309156359588505017036565086361565489636446888925310903903877156643576593338871608332219129944770421441616115645522203759890088497556275609128127831895355548721792239661491421428962875725095494371341970942034290438363875783594948765429282401894121514513607597945612664447986822416341257892132892660008726589312370604430331793682961512082342214797518911978699149718601330184560945819741246799721098622992771167821159129698770474156175100793518048297899016738790699825810526314927368819711465486677126922244784061841318865915147754825751153696186705869866281703611054827980672291575539388824292984319209177515042884798942559824995217180493272763864486177815441558514058006882704483902849218494771654421756979558891093435587830296475088887526949969435014680551366063815567651175069648220785986157684852055166410428966974153325819715894280442096168507804554393483432776638382666603389415414762593406048274399302393240815395093546344201480609671076878258004763612333256040694854415463060854369790066075334669611522642190547184697140643789030703377394611434187844792502810497163079857045567367187030441837830742799906042565977818135163186845782569617641498845051758260063431032116245267027128811739528818693085739095560381664509476207005195515848809159793842543640166226712742513273639229084084843447406479840554413969973287378331494736310532279322364351347249014379613995212274874042337271142762613156882381421845977500373229743559999255915456863139606704547846156765511291562724172567103422515558061265378466784514672373539203154760323423665595650423069518507126769751017137799209065359338266263741009079756658069620309013359357589997994750975516498314359362117734461653637425700114351360576505817356665263126915997563967720045384182138939581678985498388940176437216438053005657043541785954771219435956611224782861301561451769793935141183169936111612484102363860944608216851820418552160193384329163864959125749882306657984222770221486122878737039262059043382335565320667454254040351837423963074867645946781780637627245482487005421690640423718700039067058677090625763367868017367885965715424033192491407133943035586580601269623730606021454865866755191296970093305071740759711111586412632993303397046471801204588787425638572139487099015392779141642892682046818056361694763498996674948301273362859280206995993369293272491202604415097190066929313464828995928131091541600831556309071017329576010421735274621490113789867329776965624078059345133366792434051231754924165173001429745828807650796893818883398086408995170564551991908320198675353138411171604881013215862817743774092494411183665617904406085883707203275601544317413868306386681391714030890760506835743491289797127081865331708205005086997318727796495012929516194604754384887672682450883842222852368493194616273950215994957562814487734777298125182999991875937785025128660775635406426821603028420477075333093755105142391138159576686224419393175633391691793478504942991830238375748466461925889725929411396707414077424297473530073207769705555331453252969399050945320016503889830661597297504445148264851892323080835462511854142722012983641251601889417032900885996687442129397854084730031385287508902443804016089115230690119037521347851366931229634628307833415382418164619402309501637279054237239628258194963479722008355236248613269171982783990577838655454424174944625966747780204270756470199486390811080122657209499437200566563799294530677397231469989718403647942489102615990613052513415768180762410613098354891704654583507783427021676762194112261291016642663800004433578156485080589779141031211822354598155154899734965794634626488834522867219261879230777018982349725120859877522119501517408475446784152490257985302079523691825741627811641699410497915444889659099486076650503553653496252278363581129574162604960026437658832564950033491252574108548342908332651301735922690321285377546287733605425230497600799768621314150003788769351969679223295817327363089283464775761164464171112903019837822222919769028991577759360920435632011923000451487559091499492855061649304281713334186917507642830058873435278545767360018042210907628622032490441769043689879420779081365705497710097702023070365242730769933490716756144488023941258436004457921988543642843678229293754536422979521125249016157648252610373022063997823193056801709332565698215907310634726152785659824336265732864269156968041530973216020407601237642476788402122046162136666185108886247481892566985902349085784592946370436622510554810722943747513811099035557136777662365442090235717495800596003885039056438377431322040450674443472356304133894351533732082226127159406144267055572997877244925039214308595241574795415708356247383510305793646644927016302057417945214577768612833195057325276509564493593743383328296961208852199336776749998341864962703286347076956631613742721097595898880877395176089697548421028184206041120576440751612651869261052351321509004334745301208288180258377697971220148277836015462845308622163453185899832562314371900954588297716840457571357033696535496492890118293886618291994684379639925161694351265605833406548188661637133432807785791411709020739165373187348902356947664027803654659996915722046784808427747557054387572916843521657989068452929775603214630194690342643759809916626254607801626048592236844304738056676777086483657809807346468965286609294580620010575226338104597250986614674920078645968390088014270094533735167074155006056244092383854174916637132929644344499222985053187368247741262233868720630261752871685948933344692291024508075125135422165985180304314554011692534104155205326047751379552649638868329589923881682613155673187133475355904033982235937684361374510398879914385142534311925605563030367786756551343816161178245962149602429220794493755588582420394267029788805152928626515345809026097565784418360909997681395523148109336020651629824699584778535416471143154215327744562916011040283768591262226738800591738201513970053260204868974013255273182482706916265107655506523919879758935038523348474837044177264480469690046548731846882265821361788361380054209047832000547668092758915210571623013957704365677021079173600886923261655623609123836116011221938908758498713869430524306234820399125381902370900503740944819654817187121827258387512630608142529708998832856987064850934912334946135681142023526250435711890197174951497459887604499323160210406955459770924063249777421132677108523204374149709996902019065204211071314883772207515818584014138244756798969321989766678026223931417947681084129515226539020252561887390498335266415057182437990555781791582587409337561244072254768490800973128169572144549701251933554661078648406796314151627974160438166809525585191983875782898583431208338154696456821590080039891107474638146153319371764477335386511187147177296989971661290810163219264008393327192262306897508648054417291173177140924421825497076548772973948964538213959934934881521179482475995585517157766390112223318320953813504006862580580339048005878518410447211769560191944440940312623296190923299166144972144931302774933546995459543559119633836193091282948613901745225043633300360309340737744704965917855648684343505291203587813376258767578520645217550279048895674898339222365193768524337085562904217541579363221639327184183348951582550648217107494827961366592783765509579961632768310926788578305539142791080773529104562835014005154037526093497265082035256812573469816069330572718903705314287809258842136876130801781623184315377705646367584112884659188681501108197241837496302235338512422259819722561643047627759997242674076380442297622600505481089013177625312789693722297947381433008712652607280053304669415005303738531175509084845944237846812844511215980641485970939723918368141559118500364884924307964581314695244649335464527595088734054890818178701863859289079060094982679546211035100480902730174744668476675351485093251099735160713545429224888678502847778262426949000103360314532016013642260309462530204783904038470947080461395709086955183595314125992945879111842966611293955145693563075402978483545926670494207753816025071218180039146835933240214198901206776503005960712147803361633123662360521870128460802257071171121305597556418529547029676099468234887711258953704259496393473897325328122806008188415420192886714202013413227803018868005775027798894911718818800777300816844374705613489868746585911114000136077982165705328907158519374279248442431478623094313307062858094986992953082888647026338861256394099869028331062225809344051896494828131588168888941606107638559967550584874847106348556074328985913510515222993518054978580465878162898781002902463927356996429835929183552255421202615033505459447005801557713042656713715887699713366026969878157545331992915253515094085128340209160917532165765181427271660819450330503865449209357394238702116197593243113892044848918178649346420921734571748785626761575197087574704921570061913838435982307142249933741326185863325808750050147724344787127536241556715452166460196458631358342337937440695592954246174203355439102628650022847487271939598993801057810042609025225127186502220108413017123723283387783409994154377133743314045620560502576633157424524362571915284486779945928057975947714736918690913285299222646751961652704500801075226606575777137258714970694434714389128282307996232203453166008636437853790002661086547288909121953669322255755390382496607120062723450209122521896691074709537410885706082709444412229088912560953690015855311318596332487766710278691632948118574422401573557051278319379751284078052553227069272509874408382990990423860895211850764997627055732199824214360101201831120480553410871907377492216381971813073703858750296129302695221388274354028855627653794408495351987081280971020713538557692705479589881311823793231516491128372804776270537614828167297175628806223751246988566086446822226094583408266960596919259301185131792932063101996006031340098437647923878597433998062687585508942299984549492497845076568448586513939244563492543190650471643731617158359701279917843131362551139724850336801357472917408937364726356681540056723013183971201219649108974962979600605044280940542443431839249257132748915693881479227047620414038567938090670395620210256094707382422757802935747380508710500854960949423405586926486673067998605356712991941641975096720858430557391001878857765612145771006078930158776926341387777230871734811755981637650126633086047677568997340973611011898261169558495092718673141973209648469565451588236871485957420259290698952575079621228601775848919674472053259813774486641444115397116081680485663186894564747704085682993188615025512892851238461919088194631579387110613894834565431630759919391651289259440552264913869155216427435229246963978074691573672605853997148282744043534954814669401513413891532178980021428937636296723474157374867200487492450003645343421608590567751862283388738420037698203604195075177026831952170706197139969125904619666707959804412169381928869443735985657337386115198825104771037282624776351711856950793101275575137749268634450641082067113592882611994790782761492516164613833414702310443741357086685537853039696317837571507294671207483181891905040579754909943833130233933784104766803875093678827485269038450492683189392061695471420971615499627501890031978904419310558808210355646043992165534116890802682447791551844314426956943813524343671808403134089822771645046550541673744018249454253490818170385647679291243605827398513890415964843613066375244277797275194996534150560386477773536506378787218203947819164835560611258799593740190395315569097729274695840434781687946785255445787099238707757610607469104636847917922212141070484120819619214980077087689102669998031896835537717432881947156521397324674676620648869280479765516404089089426725308493678864865894079405698433465800684441996131313289462167171127487374308763787049204939490550035858129664724041794316639756775961394596739666026404597165831745028204975443047830720416275081532320908566694328902692882727813516713151203536213745229588512450144607080933088710306632089706670658086672618398052965067181135277836577446269894570402331784070070731704435017947387641444138730256279321732865411903529664202448064433763356051446580169115544053548355419796883902341994136353979784523361274955743988514929059672311762851867297753983530752693904131461237286466634170530133518740536433513474841155139707220355633902796942028619941710827634729813249242892342283621530375358747378027692406154826288125351302602333752440216632349592104516370728519416229969767145869888816523309721072192287335986976816801117715345430222741398652072231478756282966908024909672512296197596620721520953057465852594507848742880899404117378351981890565868006079546962815552278828357229449652203509343870489372231863548873453580485112169991450068128411153286196113566085570341531529452435110483941820039757854828322276630167934608679530910074629446828183514493640210995568523909260783086186080429342168873415040839483028876598744442189719883007246498484759362760257705350015067076788779505290743614118399014754047901501250878604600313053384548548563118735334959202768605497015655744592176537762610328954859612705509172072553885785064741969360177374296628518020785325396367804147286817455278515738270205577133998897635032161028659553057769628912964797349124835113474953925833190110944900098345276597672999498462070814554340008981867078650054172055826505568773008865549164746324457232380480794308006601357196005185528535437311794703165079430270971805512287824902545564385730885750297189514295357217162645693302328481465488144889500893943373909080254493927336644604564993979196088958994637925309611603519761089558181267137489905533881898310319354365846733278553045944895179051798526411138211453628349536246925082840883428280621986362513145657818791146535050663080400016860942491882805114431035091503305330411466857764060667152298423220998077908967656837044406647954865031330796706309962120259752698381794492480542786792471613254552440774566902172492062413093668553537396233575844457577852352942053499519223172048618951565208414724287006451377763203009184452492009077389289851577732424690891048512139012442228153118151326196347552949369677190297724516411099493739273908220014183772440415574146838746215123327350627419562782199065829973258803672925539343983084274086178319883399177277970566995016558515569044202142533920886171074399047750469202208664518390241952245955351296304916802265691071367783317292605270401023553145931617826384940144926806687295983491519659894866256753590434830830795203060941721130888141451621734828504020173975255714561241425829540067134412658449486857775242784769074464851108593159841138807295811393243644533934180190749532960084829263523313484664684765762948406351823982561265709849930133134319976872099689758067903488141081089451566115529161118885799029296084555150424648033051926358429100034232076095526404386636701988065301735422188219086097270134585102933595136892931352547002852449742895605781091850783490032911669505634691912353709239896115280027863364870446580916480121515501905693099591619427347772041355860901388418651149882661669050875061049717153056824421688114109298934581432619313581242947902065079312515602219872392277810412983308486692316922057063405097213182793776711237146521982913108653661400580888307573301852378266122006895220975525270123494933447588712543226360232310384675292566050790898158028744671470661916372002356943011988070778676022941169851894629631658076513934745365035147758868254539856424272220962367044985406090681122194532374951057295031618114876313523703119566567374682859859837881445958395931112264542254237392385278103560616440363871250116418171318165517746605972108247319695009533170235786806011822184234326022804308988755578444646265941666748514868383213015320185366629042504216466256728987427855077180194099242758281481977924015858561940477454866369331240001226077391562702824569089317145818726216320318017402479023881124267191818498005435683183458172588224512899988021667360153033481362976581154835725807236259757946440271035864719641899120874590490741715644894626730791253011586628893365575521431428847276196312187007247795822571785863839839739564373888308951002298101214723926126960543630313886012474122174206296655180540174938023373733910171257170048235872621348529377382810184865334588126144062376701207888805882217484831906815130659796567050719824361912222597270670134122407029115921782576128810963493351268713890775626202066396447685189679238631581174279987960318410337225973921780602033554784884962776232240795393938183148584283234706642866000159489016350663455824283919753097418242939283055880097548802807312179252628434815104541534997600669781011824199161715110839202650743003731070146488141076796820273337038916668748531085034292911458499366981466566060240694763890489726022872109966010173533536147105454452931762728570139685691944438033139931483822349805293957127017520032365923147562979016638717355455130586677885049381166351303455120701097779203390604903523424439881066402651290293538855190842966726533060362800415155770928577661763482998554450934198248062746176983620093134983382577372566668070074307259435971433917912808937847756270418282247930638194385763073355507497632194975997297296959329690309458317964331917170889461664813727467397649053416055793922556747598177555980081206760858076735086362744209206809679295545272319726505522168628126981589443932299165787241153378520844553239858721332407763634792203615297732508752105001299731868609503739320257921869969163268288456274644348755223311183322582191065846573335453639238045972133323264516922148699016547117907121721631825168351338395733817081293664949749360711099616996944287801417509807516826984927559624890065467537470863621746602016857511885849051041651792310014530941630621909022620731110384231673114777323909131887901359525245413183255272258349063862551587400114550239719612511426325174947697277159885823438717181734893867011486473298905788023380942830919177967085625748931637541222268030572053157374795862495639659502615114941875160732487224583163676080827520882466161840310201851200606952821857503684867346612266027519044706773441328054670192655299401394808127543959957614704620393150928935353298685528517607304120318363829426704681328395978687792740989563615282561070190144190640893227587665955649145814459170379164126724127610661029140105509514882406498697500702601769243631407229133481177525641272105630588803526560684280986470325641847036968419936121555715047963228148792434431328803117265541281011625610476147091924230704173630437563501813520605685537867588349136336730211989442646783560465259182853227585256976821354254752539888526489214520486524325036659579708211922577415095085645773620584021334009487752498258735845045772404679074083886462144405801259592511529284263576155552840047132306147228842159615420596153061947642187500462829603384887238018084644725713753494207990020897096859295001569779882361242883043331273794818120316834045888719093257616653741029214866883096056864866341573778400147330880851745377252007278161382623226421875797396284521545731752669595137734805454678522968518560805035052737090258954328032449103764669987164761289522434545404042279258318741407858702519692712131006267354992088703800085128162868492536995750459357951721289325354845107093316746507722843406443894944320569405079775621189991180369470461342147946126936911769870351372231056544035417726561414547371203887829743594917682806835460215756118912561718965831878383884240863849499980886682933226238492092496922228736155944294257468427643475465014998356081890612834108869466166489861369289659306333104701816107557764153573509316416241477782953299089986505344986429428585691128375869106394528961399482441963367846554127811509287444308237402996977281781744571254446653049486947015391929197796519567000349112649150569933787726878538395392256998866120211265876986192944073583419056337092362897974033512149503587083379556860151899050224688675327970078364237342543684646541213651648718639758294970522587283583864748068531941984259635687281055685079874771673001873408525662502978550029126765879091110653858541760512142722045085972989792888354469556259584360243823110568882093274248497069618475427342684046031161922693566171199508161068611303648302385224415222002061880545070861218077946408948021212444622536411341743456507761623654488629116711356058684334883167114214354515931967238211228737609787437419536986613252476909827768709651578651241430432787393264812761770022318001010586760060411271075367919747285351374562442502673655079620893577954815331302738324289618472229129091503378299107530645124520522823934915387955437871967921303491015282513058938402951396190760157178460037520270681565513558996713531315862343440787800146059239229174156945159997474618384726583446183398791110455585892832770888428242565888878486724882372822654265932962811860374133705193327783057570206905997690883053312452672299884008138100615022210702190563879205949134770312481184339155540324750001989181864622876602615989628574879284644276586894507465326129462919410401080757335115301488229340446191068353928956956470760742904443512491499352632450175881390848806638688430509838093377120854433290805871769652014304785019569690432205217758731822065025374165245344023610806451072754097844200879650245242137035034377016214029995051356297006835158193992645889997833680910315716332215093843528479478575850785625257460384490806267033806135008432221857092612426463124503688258671022376458618804465957383378092519446996016905538672587525557425828076213323130048560497141154032129085973117319401806535372134312045434848023429349430636671015953109078366909891844778008936065074557342231272827051673932969525375414510672033535511029644682348393452952557004618657266788731189196135677368583235631290746659235143677781719313303552654568579655894571689312268585023633676096213760685245417022980214316523136674428936038222202253815086028655222596391781999384722749535169215543573480926109742984852873585630413971834521268410131975787978266419405052517582648015494964693158804928417769018896014496714524169384951517141153416159593284426918803078973460241558796536544236714911741876509907748020959229921455045462690033037136086698026497246207613665543761033905902120883010354563905155806627183747180646371842100223015088051861641805350606552054838587172151390772949273013106094786331223841562775448311020521779594290559070225938990649329942253080608692029421492200473058082315073296937204904389718018746271234674275110752808529799656217216940702711274848507577957859220538327951140181112470496534355484463766023412118761046660235442462823624506667101999254692489229563848459595698406735023583021963956710747254118677953801549931814004911960490709268271119967408221512632985575588146829111666221177457339385309907178224956017494816774586670469399868548547121053898884671996639010206917388871950794621988529934113999228260428224828638607968124171004477878361315258680708117512561392690802471128602988875795342147064074039359035011094301911212228129515612277744917134137652415504046424483390501819160404557843209697080978910424210637596132712868794760399631332708452551696786513382755823692491302004772826193601349724404496963608241558936493547803789082941926504741424247949652017864838529806874009214367381375419243713993926319505753613521713227670210847918402229151419598792040667000511651028210759049581118039193537070387950360924040187006725395655939709911436894759458852959361036973377197879108794990047682903881855654647679183712360765725661280649307902053723490105963235377080840626128498459549844615506694816694547065955908117084541055582997665160003457594667776839401673997032995663831326280200046851896527030905022542203256705189398846392261672692815779918622614919996767706643720282660842467479357308635893130157268366035011091726200927427520875873257605013230990679061853204522079323128348219748902288765590745959492953882559796537361889522278739771788071976182148240326265925767810073761161441373444035161958632553732838361080014443937001924761495616582395294994881125018233489584280546761853074101089166494779839924049519943638496138514096664986507953646662624911450068795306902749610493512009805966416629371981582561262642394355878801657896821084509928312413181867448203318253438044785672436685422301645601449247865894259479348318317664054056196247290667659775226910392772033849678979621354149468320988239677685059451869137561777098726016672315417043267586936579860463257615901941406821797439658560081415041005556476092073590346241973912009900924481886535276836750934297833003376837576190938641766149537466077671171510389174574232792569246805051214635779827867548489419498089728726302988524239975612816577434212770271881917394934985177911941558512043200318499944582492305385488288033263631974436988870339129661884511409988539395054515619450272522125419313432270394277880850046699678940677412989887874399658214840068571822310649679665707406866638330959919960256939241854347088029528235255570329651742624133625677141414723287579541214892195974279754529172461276983212380078610987361168783409988886565404773754415804945433179127393455933641977939544485979306165482990489614405325184375878636001075684234574140333454831401753565754657225327299180942823038292482375484447014606732627641940662704304482898892044376513004483925623040406874686723965839059442984804263331152627513495983519028216136680411250907382202388099565635829182415607156116945979630283321910219788908924215406964527210698117029480541981240848669004741848205730393945969171316546600519226776675650235211398894466168736935606983259031085855688761126185411227574813672084724078873896683125244131959590082203578632484322297108113736699097626915568638387244684935605725611068405061681420947765449729527229786146878397569390283747120389044105700531536308979261511964564342255472837569241289951321604495521082124284787258993404317835488595495902359491418533543456691973356863992797194936560611087754151691471368202073804514141504473014700593025789196467520644764379247372072087028787439572327061668084857799481003741159639328057357526744883248964702719727731350067679046387529691349671237922320056604142500704425232911307395450925639862372418385272140904622015911724715356446286631070605414075066373119271248233217748328566352365722588553307183288093984605314398123081394119651024317250955896334109618478966957586544985095464739210614531449940198641787401651982459777260478993453442428146701446785679631144987251288265414258433475987854746228341801322239301773557783252563699488014194869563458759690836606937460883840714053053854793745285004379146239525460452782484022360891083607653108812714780448931705698609509257269069300918996462660247423021185385928253451628714065708999639894358954833912494489383772733802677320023781134556084777897813479232934308544918064025692913785075956491867592592357173079995917852711296869309724910565506377212442769979446841404220559807059518125419355973675753751949836708508697581325834056222543740058547074646289727887739649343367947129028699652545105396557396614049046321855625267487199377758279108059118964013924865920045003367064531258927437834545161014109100024369913794024224644189004464177900078938825949121418391812939710594496812967721607069057651140391544838717942449486257450938955048402594133106351017649461185345830899727839881163339161240568165396227433571813409574534392015997883688277035336284857006579175184457001185861904613479424039486824164918761651408956921432226456887249101976780963866851418367097092198974669299272306465342016517404556267378274005457630771441229460384304802881618446339890309126319745316724291162278280178113117124373693704011578652386687906629051754662409058353357596803989319050913246099833468519871913136758717195743906663564720107218452888805452281411220470428921638844775871078492631426232001282091411670196763640285437792509245973733997981695392560627208472945095360590629936725081194400202866333258956459528915338657053439105748494391773351231005844758785540492703409014155952699096985048440288085279597388145655767862056519341628353130955052094892587473085421591399395036268190397498526335570873838418056588340318396904183385770082117202131913380493846101666583248794123762449398221440098527831939797274591396897930785523554182141898642519599676689376097107132558376928341918439676676357110066141909988248955208523495745471616378018339695135377020967796922526762922021569529817590761521473028179428796010881514036258188378204899910644099607783935323203498459862511710754852498421020808842957071999259364038980600485888664216159108919393748373321695321296217812853693896540607636269079873116444741896267153078527839114019034635050103948387998389126211214491091562957282685737086984647449291397165322855578750130567127166700324961504964297598565836852476895310464577039653183574887552529751810052581585552050722113924104268905399937304524358452043000295821754657311901956261584376273301630089781804163562674522277408244718158076999086124260044486007874443437756634965592952928522448866329081912526579179705619228648955098760736093610174349121427083969382391015822058731130515165660535296847068985738076919060598326604582477520239776691852950719103187337511426221092672296748567697106757121479325608921189688528471962239108857010393482964806909310740527763539040235652712166578406761959623076432138765640722964739359569582699760049604995445483321358034242907941432746991195513081824550089265412681400044983428915292767133309894481738402790745032446504935125466750238802728462733643449119513028076010958102869513115448825317438076850684560816702965603036753485649248343365294159257548604171192350359066735380944021626737647116572584988034233986009493895366735833230962813214789688789698046945993029316609527373395941249713068045541340682260366384543084613474093594354333845912362510356171036717291482074166074137396434687378604076398670786505498143186657520961626793997853908155381849623427878926371002315010851197693645959148009674153298951745752419555378397751328996003488233444639132395734331650971176611719971585976467249943282143991143305414808373669182274186384613786634151546585630702357396549131978246921748388473646472328848299719607954311682452936760182024401903216153413031733929753535507105302885876049279587780080694312539309481460120412970506362569169286207191194491750739346002838906984863321512230826802167284630281643045856786271758145239953944010197377327120391018099974452748359357743309683979692193214085125548785758744686726866845616827462469226218616538051165474328640333214071329137305989700427794743936044253656794680965562075233394893800968156294423821266780062421243012756145853374410745260929253508134385483109076950478576799587781353668559728330979996938153280037819625684428067752479229797070211665371439542172307877493894200563228294550233491473349984307706037257822661401474823790586032967854119947028436709388999371135655703433992624484016255401679920133697971707586090113859662653715535016611768565860572150755499076942482384462296162178131907774715437459876541566275927026233157115052350945268967699960336705500019395817354278972210600764279663065720585399608653405821089304739660800978122572912479863929714725043822051969488829486407785459991791811928279256671267968553042975032223842919875800977720097082354061776415230105930298390852188198004593873081482785420417237598289808744771571085665782678356502056034591101920149517010946834636844653368817604026731438287818431801873729277338004202757765736433195999270399282581671592113887406573559662416753831777393089968745847685172812152539895641915321938294783489698756899400713533536112835170914078701037404215056312289476794355013351901506361256177481081668991493461539384615593519641653474924048649176769180148726541622291356092431115112832836162276262275316958761258180174483223128684063163969366144807992193841304910347937737530799476051048311282207748957254812842098098085876467528654716961921369232905105028572595311217217451046339919083753416430301230951608749525144925202676625938604746500862043317258774421128285115629619128800014012962793149652099924767340880590053671696803129073888783510877067338713437149521626256986455667302950754795074450823721584477342048709126023146316695941778893348462984393136351809352683227844862420787945836684599054633005288556992414055483225918882526792359180627517005762402308433512733336081108908506150852870147361362577003747756461696759763216981922449974627537146151077298862387973727815793213141849243827186914320165899623411246259913292419881856704043223941742405448794668989594102106644159890461600516436384430355038917475668832784060052528611180847933077727184725535886493941265680662930291997288539386266005836728960834448790687201728221196151030052506514578508906136863399548549103908397226110580009875487833065671541474134838326012534423291827348547299963637057833413251805240883465194563376671798201968388425720903406376475411924432211664695635681776684570049932886581060189041375417834424398184917679979834328763987591890890162627087346537314178117295872091945087456172750762110580090124084597015858613305558825910615831179749737673203182006520275464173966190692373017928320083862712295387552747841525347400189100779569201071841713747631383190408161407027886602373649563906834840391561332006018003182019025063550499835738700164957299894734381579778095414969345097208977549812985868900939378761106062498384891190734546512906004780718569339286116123304994896719368716996358132674854668057319938195794442792295589099839975074702452720861294029658248148313611120353880025440858202674802862299581026328422731315460478771904508843804789861881679500124144610671178006243152118800874586504486227625103768718287412597488905376089181757241631966067743514103731082986020426164169415960752345992713762753506209937715751141158967385012006420686644342916200126050077218518285441067304257806363502603657322522105408642819317897084453402765627863475081706551886567764560640866021024174709911197922917127170144384256524716435897527757496485012473260703901170683937458259789429266151490326090913342218273017056042995740219129930208423780028109973942044229444987197693846055035497150077395647617949463741129091230182432660484663763461916369641974425608194808600474819185491765372717198316608350855658978153699439182407896846296321051645694635741118469550380599045451421173520173312754657658267845950501256037002887692793125392503750854055548321333030193874768124333415218591490395810143753565577205720732814727561523768046929941744531370267588898287354968661610480685824465217027517158376693525840950546874853396316463331727768539979755934728807751318833287039780412104171430610672571343631415572522164654361894873666403931368529412472569060272061555811049196446867915177769986046265818821309420790414657072107181246203192649838005933655182843785033611427874826008320461041287043687674343603613285281221147425729191299285408374534939147670687767375659374472243389582138614304436290613323438432459819574025872272420952321666339581418625275399720352504193871898284421580489929433696963812887336743351976740686709858301644085472285016659853132096120105070614805364690914256418936042439483643716116939602943792223300431778709614224618758280561324290616504748108823725041601324273553662512966091058552231694444505715912822549523343244250658786504955703844505725144725184455275302320501148508975935347834327684098845210818431709700027503738122372084095234424734482636832276480034561398727518193548387775348082879983853815209117695647415018612142557521658997692832819267125900213611296383581728341735844534270332222420729475553000434878120196533705944632936239725595940328643642989296176984304582907782174431165589192272848356816921280616426098657086607916110921051416649256325511320921395724286327317029149124233290485087264678970371958988668728443170058583485665708516967208958874502905053996202037387781463268081459295455658195605414575496909950948410223733590484796147434072351574582829605367636082392868923270239544885095040623131142970799823159947858420415704720140495336273603401019237652011843713847494035511515478145037492006502233791707352398104428424531121201381312227269987652097691936851409621691950006661583472643375325504112325866125276361857256026389369848929431822070481563911256184846515697390332808495935851835524090554109161700870535271831522946345568053328046365005751641775853421663943153756434012768128758901834214475726761209540464681214067182876786786545928810464605729006024917526504950613354324998679502153676408368344009588374713139092195126775288127603528352735120868430195108730496978050456211539219931974073097424914426831578460482555345533078139009392229182352950733811308185490361221732559693394303281875033338087790253071329144430053421420403956211798309886511667486549040940302232479875799457682283855637456974696021620491596603022689021147780109802251184097676186020431781552128615796525516897356608138345199704297278722070985682287658939017189862041048705933273998016320824888781755286967956157267369655011778390161463031032360284277409209573121974577022393641084925820040944036699916207469334137393113219503610361336271117363256236400025994765919803379901064839984132804132506763472739911669402126570865108710634117611320694807700316085651127823227418641204157141961011016570560050139307550036744333925226166787470354848113861096004739443108836959455838051261361419067939337999427398093466876452641398557816515880585670573102991742395869093831706474820826749941430916201975672678506536648627553385075770016064200995713487586963659888317289475718921276373310721528951754393516434516441358093675273162655464823151023990709248221720815367880570048049845610586584750860317352561267686917714958908083820534594617727684863052325937880448690915032980432095477637056814244070229407308424538924999751525845554938875061774822373121703461172070285162423867174491698175928647777522089772935844563146604342730207160168706453069892179208223492920318607779860774681872312968281425363943144553969989526241742721703130403821829807437906726780227873799461789809186111371008696511347301467781582551642878197458786977253687170955470527652560703371391326730002544648808303485193374032959615393600453272427910586461819978035610387573287350572648127321137079673011410251516144510562450265208812000689521992308394727729854481335490112253040121268611744536668595113176043073165740272181789353989034704016619674861247322794025019085825482163986590472487650154544384975464548496089656136674415327547193464917017385443774008059422250065129421918055587901431662926756860363170282095351442573096297904685473584146891843351211718720371109851214459482032764515344044287349887162602377471489832664946106706254458882209840160569138378667987457625060869103503162595981089668668365397855059686015094972885388600596196133268802779147380259889362331964204375424062407416856435715788018562412763625607735037502810175998745469846249233630210345146369842032963831444796808160096223066531706714992067509215834711068998497158095351940760662975975770993007708329957353532241624011134011353175378180163137405236833622645048612437239176390016643664222594975883437001036237004416239741189176836027494775574748459180529879687998740988328951397360268355637156590855283640931387033999052345703673098533581782212159734162089758349280424414201346856796453573877858475202530277836150751365929656058212677357187208918111711054787312184883744463233897656406586652386659266412297187528552295069697286298923344282375838686853177105283543118985559932106466365130239885709667449011424283424982716995857963755602951099546140453532861946850130936526399782259578759398789723672099496737060499763464712532324363103513765705761543273496387348242855691748229192495228631970687271793577621354681680696132658373679849362149570429412439553229384838119932490117581864715935562476632055611516246057982267166153609264162675941906089225916905058968870837201023532939624867896480215810047407038337847290244726563639650040402303262890383617761707726610307064869924953230688907163357690544093596062012941979829547039954500206228343788605162866202213071969648953605819327730024773000153250399228795789227759220263485790818677589161342389462562403782364697459412491821599166980012873813052671315017620415750005755774865852948572219148400513064286874648238562141285636223369577858291658003181968525777708294045382296794147150033083971150590830808167308715136042117308957748186726277352495801028919546389768938622133245985400312936199094238155084001897050028977656869574592104928314182657785660224248898995460438022563868704934273002192297116883253149805796079839506091082690822975581523307942651310708571518147818825531099844122091568764020629697742915392218822531098843830970808299646389448757843982608816288308525765763557622735581373692818696701965731959349868317255083238875003012618487038023544996952745000730627475838138334553535197284264638173607194002004439756670123980611336013906140222817801980414111440829511715388234849685964626429708988494340769527218617072423474251481887212584323066670665860537837442654190580835272454449989889812040608316499278137973445151356955953608223556068238829709678731616809675099720582288841558881731710133223381228674781449077088742365837583093101697926648168607618395286684678700628608830557329286520950109748096950303280897609846980611538619582880570420076068974858771476035508817521590285690391336328957733519889999841075239198300357824623668607365359231631690047950532647761975008086679506456675041507672409797606006804322846543651498235375039803637046961430206290982367755226817595062607070170081531047769130131700238550242482755926597054094778101942175641145139971713828581106522894937701078638701805547836294357444267393964863152045337216181231379277976371896093053216580149426646903054746054917267676665755888152476211132091568111400883192385313009275419503964485466572326797683662768472630661973876998050531850000352456072314104544652525866586468110335283999061868409803383659720224612660032555751836513415587363830006259837304753269788052353123007300762792302985144815784560048730555038735726149120065232077568692332920737199375592474380379348805116606287684949818682357207545465895330869152731504810570794506190215455099023306837443336743888734620054177137268105872451916702085320074398791491421841466475845904519683798589938812768327203066328659615293724611442112173465465800981907643278611159068305006574444502856340086834645347492759489241187393766100650298795069950444940835519536952355472824863794761109321533190639503096068192702933105548038617054766387147435073279875253026928367034623431473143692613824815244180211174810782904945882620058751476724101230690897907822865816823582954548355523417588257271034193797261164762724215252384420438893791559780147517337591936752437628764173967807447876032929598875756027723696678281726760839310121624299505056921312826658999713574998612264523569842414266317800315843421723013384030902481824254286938885260157479186650618692653686935227410803424584509359449121874037195132375746942179982612478518819604202099645417352293985568483713561912291480738817120597729992331597816362318912501435818168033764658916129928979687319128314065529727777525947770291270348572367056821271481915532937944958360090205666364441899136466955566413517370122066087951149369463670501832929166376441609824259009208620616673265860088487659174715476758539595638059605799654240531565084074645939838167277399137937164870698203171820599662549799225964512629553896800327642879430193062187586700379548266695486341692984969184508920691878380913051012448210543373629624055331512428975290346656548723842973502599807176104524142117184570917046552770354713018355865760639829503124056540719117427390001321348703409015645132431242465250870537943909995021809488446240869505381281873877362185293350629410486100153520546151294746820251005103742848622642618131972556937435026940169093873833544298615365904737770499567463951955981925828594256219112969959391651750710987876054825918984776021079607933839819599656020626909706077763069471590715802493337319855505371786922951538483755699926562975193766453550299712215333017638140843509370611982702028118017650938052716671493461227702169886450208722143655058391964411552955457311031841330260897986819783603069115282792512555657419711362058218274776659896289913455914873086330957723847044838746523364356364987972873727546815174837179333907230108724311234442260965424383257293405305107692604591830528005484526379009111151744523357735487375184380495621470651821742651986735034804933826078625945573464105421195359519423382925024145693263331327434756837517532029295447255924158887292052471168077587092695770494185398035047264227699923124108449481532412552819823225812483119337846256383501595790556510141804977063346475011035903133669682174379676552991843672093170078860544414079534354112247800217666270736666229316835886408621435653247871226581291512233420968255928449748926188113100739820513562741685568771180017726026458387673240243392973819253045988371809011996901987605076417500958442625911285414603645279489932377465633461425828134050167035268124821915483337236669591307373648017104126806085637537214381595245584267288968888069687082627083292241110175392044343968462005242212582046116505551790560709120664960225692726033751368105853611361246794023490481095620744794602951102426509474996093373241933028507381763955708607991169528910904982597631683904090280584122258981358276584781040415613180040500691472205536826968387353255618112390065727714759637844190724343062066702043601252765102550118820918252843335026805062706872842958023206497389211701913668177364594592743986510642173108828179587894657141758664355245991491579494439303575485840481541448777367258643632912554099965789372291045820379769802793805773489388932746737394553706612614765275527380891243134157925199601218491911601431397685943172844461978338798002846353286336600340456997244593292604466795923958237084923583633367377690154971018309592665765944807245930406588561387117556844256678954213768676052209091116563392693869466412706467428733224262953899195230389832062906200878405023936927606669082512105116777331495257102518158957341160132841086416432939976735242650494216100132849425881091001155500721729940711040654182135838694008957202355341789541415446798942939428413677285748061317160562177302340736208727542628920402652355966869464625075748112968340616181198191850300574228938266123359987974384282989444887932841274228999743008877294008555403848508296663474243710683556120437744250560246972355598774089378653142526753470029675171136771939503683059998115939362919258961986145425663391794688004043759443351446038040173925052928972030398389734721242901543798777976381633139500507303902846767955512963978641648060897503567958317914693794391377831457871068476619680200717211349671117818025644962622346155874083703508890067841665547083903909744295031314406935163755663276068723728113093310405664257928858660244766211130074503621836016813443334902271410962990602945600901259961857567472420046990633599714317925278021526141851164763100861035436283249298209022812307240702469043014992055994867114050793843719826804684518144515738564016721460773538581576263772042538338284177899929739699355341990334961665202542365195006116008121517166899599873192925559697264011044777915996410571643058726116383711521063080613277292910757703233345571219271491324650806717325568067075251805333946157266307996598952035297645699726170196838109437751843202624905061292245512929018397678790910203864343253989977357723615607902412370356335576759183316824084171146045128970961985929369038517600188053241816993830871109731680322346575732231136720527518428387102070153954327077613503634135941829404219303361241496800776774878618650092457685436275196380868221793964912083431116820045790331051171799467993632751787350493215010152218629753166866244091028164928369988983626845609637943437942864268292971501604777111714850688826195968175959704598784494453257651589077651186360395942518400000585059881709988695604596794152777921185838924935344786744923070839227223514307175383543009796816129575797556625043670344736998860920552650575437613526873733516072574351630785333088147760235491307274603182951243885400230545954593396553476168183511584097143126295215584885415111027772354016586565712174713650249675377031021277638149536098272736095450917848036700125453882211071119442838797288313835989619613828771539753163393488573740017599443190846361328851451446942050964873283683168446374992297370662958121498841442312319314547963517689004494912771393634904928027601703983467081900179821901091510385973844823678161235630793824129069123634572938196328611177067519557151348702121890623115356584306119991647103633201059135816794609796845623012903640471259363160545851232007009362251526611185582082012312021078542306247029482085202031832672721144515081527672744839626749672174109270196098579921993628953057819583774027624742466077004577368441627398466468789551645022287845190949975166538967270244908069176839918414251532488768094875243312304023893177684756727931205721687163606601717651899739103413429231425986866804755029079666308101988720703861996899152434579408556807178761816206051437919197383556959312083460362675557039084059255297036246435426661080415892541955744231634950884928396391359715988121733990427998420719004141255024019144806901946154212677449737813667985122858248361274165979750273172685854333484467778799726715805346464538767990510820769611498334080644584893459131161707354425285796769728673210597589450689005411636201644209961559844435516991213238275828555317879400079841998441967838850426690323998617939392726371799197885234091373551411651611120233603433593571353044702532175557707954738571956974222031950081724635309149528295897079817261524473945730949172344997110199965537836693294833176527012217812256784947889712724663274144368824441162833067661143815594586720235107227174125877786734814823478980581030031160250036468741223988803785665626527362029119479103135907138865043399889428576087746230554983771642801630071499733803820020821057445363726839905045581197224720558398963711317094864224075334770738413714908026528194254242489697769330592947862221039753212162933445905733581649646674616670456482611030136767349237064846943160000332693516065617964061331533208540667074086010929988474009462721058437659600940215237539115023822071166834932571477987962997364047615392078854169619485151773857585348764838934265731081209239372961603798836109392966936785754531919539609004377281071525333263369975620731478707724713072308304778264063464122240966375725728061025699968335968422846566533317911744873945650257069234642928093074924271448509197702298496499737745411635162431498078839448829608639374763401482586696994706899375885571058541073218347139243045904549091180874897919617506198886994360160686208263783809377540881977933371321760677830385445988199257754677728942951742095398632988984089283959727375171289091473337114925357151458774331578435029663717505228914324532806534797100058008192663648291624129577993970164221669709669208772757872207182176482989957462041542193667707969646730170826050087922457558696518429455793226964437809122545626645066543333842625299094491533443282563513926425343934111080328499946401216234181854617755238474757308096541212502818514640203121763852382827852163212224632953736968278197597044211081117171946871309489958137431385411169617832146915310253551538349032052928639855811802536290736245060878163103108967910417070054172159090656711725779202068517179711437949510693300915991887295004501922520129818628016156030244372362606204420176797126387646674977017080183105629998925047071402259755145654677912160949678185862697535553336635361742474234977471168985230494528544457777499185089453814259721608088827374207539739065395668703778389151995197180320200776100998359851860106789064821542025446412719973227112165036757503146545514310621983497898615486974735871626780927312368158454745093594676385252528395532197914556463230799320352354205044964254895079944502379335890038140044319935059239925021896653171934489441686948081503770283441168151476515995700369836647983719545895996867694742963952590078334467061437631106054442562162048276747414656588127454980032780101156607822636663798086531655920680789334286148196757454826221206186975847316404072480768936456230193649549137359727225791650079066913300304884178857249999327584149953128190175144353489711573966056374557149303279910092921395544495065648983495845865690989654566097542909326935882123249912710477602334551194657058443797088866664743107920932427030771952902431089742398637603961535158292779304668680980643130741956964499231156916521111032709630328310156205035332246317851635336284867205509234861822939308998657571270396137428479626034631686707394635686054816831092516168615478714845004148365977836982885792597074319668791992649402938892231390422606307681803378025658579254946102504818316852463224069078944110205399589013763470264850979517164006611981872563845734050621511360340312951561549455345134552801527145920528898907566491191139100393118752993877607585887702221790713888177867388143747887926709511310550643622781597108944208537568423136113931634307492567677681820303319928197733334353758941286468783309332425010792672985018721543544767329765592535714958763464310038069607197603647312068858156731566021411576864540084425851807609322745669248553782199848731299988583059087432525069888870028942178053979973864124823943249018208194886267427806368491215385610679546935918588526599670510601758729281722831825748401781253120340177761060184598193904032914482303851391814513233531514981916167449897331925878835112707194324775348989753931547318068586730257729461556410831417224662717909316532669922878064500392210304451039462455470170222311654867105496500198326017618441542432880335487778043023404602967973349875811416487545119586848494268696349803972438310868243019618770297455369707445941028089312405960873715388732019728608709796408930345573738384667485222361456699290957249760209174329737451381852820611083972632081271553277547051238920485591529144116994708246376207134638447188812736788761131164907883134233627949890839252848001662900219657923589879699896202009530159036464626435778181340210670747460975199354517102496100474429320454600403056462050548755926258029123013951968983920535667864619904967289001504600416170713354324715790516222836857564871191625824381769552797824342546589421450407653898391672357117084112765963835039358390862101788580568849465559174929220725927856386064854358934028559033187825772644021271835882367160754079901662570463700253508212828427299706286888425421262362517871528723707791375531057582163039168708430321453553927888164749082169694497840105228311879061292486287078841429686493097471703682465866961014588187567057557650260159229118343224954196326239875749083867667806523966989603057330175802830376427674584763398307232362427366850497491852191156747856528204561956200988775648238070011143598037795634621509746888316434642977788843620807547652222471061041834215076155970438826895858972777403315205843372823993517510961502213471645745157473624050644735268376568816454580555412453457533930007423478819182296053579922708356645065108931644592765955654698358155134606355338947585920008284571222328912658565889654083742175947816868425951423278867109729150820099164385414395673474059910673283731212892075329802314143930276783466454210024592942278964968877589765017426313464637098795387231567316171625656988610551081405697098469977513616762871600277615084901929929394239653987086065992991702227881090762654764096973525921539909876751124169715860638543841419853666311170446271377698713907563371435149763161141200949744776195566872197581193941660280980692911967645996615122734841128347492116373324242262129995374331807416608063882208037716785525354698825262550739350000702239283772894149377414260259366575583627384888386194986174834410492507060801759086946777357324860355452268462172313273476311559350299006340170293999178480777027019723139139509597108156920356115736537997683779648496748221879329216201621126005043346143155605819473142447547472032123220393008176866650816051990369887722528631094335071635194879692007091442517325992800319417448042746341666530532775655790347623660984994171993801365120863854366996376170541512090364355832752777663910502491351952348580597733228645837375973098669209722139634098314313665585422444023230602669948502244060899668087421805840253945432000844746241646524150298021219442305020750294859911906273438514290790919231794704927704639466528404440155525743936657866834515468294716145640933131494118896204435879072618919344348173921498188975011031492561744896683606111457073746609126451245602659135694300284306892050947968526590194934390701428350000618827015253562203394667565901588859914067874197884170507717200498281040834134954354020639772830687185943568801869744209030224288732587449895711079469365359008735101320191405198705684677965357596696778141707831111148191526320359143657141072537852687700578657193696701685352349328136825402436179442958660331970669555050011552587289259525193104627230743553807276603572258696393788475201204089009019371011545782405500768643401284702945194510706917772293161318255308291697522344220492762008731371636067068638744679491797892237120777288951057520905426581707198460166201651666615886473718499212251630713095936729478377227604018280284345649144266637799913012566462688082474071123606973577306766484533862076682891008787613186945359901364515072879106461810280767569866693886608235678709193123826114375408202848603944814113750314148069026655434152557664492550398614992699553425056827639438706518564188358410619395751319099406695580430913125543413493751379143796632629164310507277217619557991523986512196515535828266807863763991282735057830608759565393362684690154116843608827244607805069020823019239902188367462271943435942753355952358651552901844153212607859954196184404544541931659447044405515707333306279156281937918898896255369700051278602508184456784958511881276579306326576212178583957547812657395617017637966859778225547485687081320405922659222377205804479893171435208873212841007720949573246637234575138748991909889328922021740500745319047349959374802147813692418671509146437787310020574291472172941460821043136628743045399055027156711184436253374075140474998688117144929852138145982202066104828245963897952276450544475338980819139434335686832720455626811271244603546066607651038587296651583971168544050352635054518668218452622636924471896284434771560098355775532262042321137894934037096568154042301200535395605752793623899225222544205541347163289072054199188638167983872535823605941341796633826705065868154988232000095201465651597709339210444273259234471429618303440739080007876785188189599894170422625103851204841098963683868764017153072465264586043042463228511202732017171012618959224837995550100390878301585246349799143692075063360797356818438670780811446440107594931168794351102007244332834403052263558037127773172707467578345774238419642723190507276752545169949951684566368548341054009954600923369111833200739637408423907779454358126541399902449122613677593948178555866296978785746814084159503520177241507507123103728428843497627778515350130037877672897778894715743065989343358927253580373032386321757663108583900281095824874690161275481960049873706784631706182975055152658591969275844393795947707798974123259548746358279925944337386285625528088661858318041735748018218718780378397000485712772599029045160771233804513017379973078346443952384609377628209054206742623969218422050398726042244983781299531002619654319113432964722016232538530824877945525859807482202577878249220137226029325245069146808034898611163923702790966147226758221838397477438623734694592833228037822105722139914686133046685326307025797359944367526976452640622091670106903130900630887520746804738833064867443819595766936150707653200740663069932974618645804589930187955585124728798343383057081291513997310906401643177850853541047153132117530540336892752955774205596586400268850572322254847244382522148958626851840511906175187626890019228015359658686321948697456223143825248481646245680189670996841442247019418296204872272117410254896924405067617944257911274462811142208796364448264373110310180411396578249647835320417452141619398888815200306480000766494084501892804668482772672896068789991275658265392646927214387111988311015595135836891661147826283690550694395948286098584678728855298213297768433354786370216958346960835082781153669519646855874053981526009399334652034953319293862801999969451436182844366758934156093830845528110201316949641661526098187162836421850426580256327204547176594331622312909919778710259747860336162173897655744374540461449779349120498250634363489646908966138961435879675574398466190535368910730069343141379520324811901144032448241165970311631297848225343297666816349947670547689427384284162493177392908116048108741395911538419048940620837609805140289984187308287195988563558386076700299623958302353882696344793863918097831593222259840638454043254547669859647114329230644990553640651803931567185298436310500788974013609423581349578564461602452513730192851714014878254553106396189325737507155926361465993308870180323669364594035335663950707729675114894789458835310183825359031289625446128782284638262542841454917573946211360417483003051540532281852938059634177338739472431692492296162263335263614575712765928152674457533275995278378735825397760729555629585163667395164103957497072012675311824157970428432711060669853603594867862567267874716997665649099033847618106472661342104111647298143306249254233901649258190524094042451472249637634374918228558831812978254605534143807407630316137449027973730156283258982636392859568825255489407318613382937430680369740744711719876318377205967190650074648006212314781939051008220808011345998017592863116020946376450467516579122844931168868692257031329708189715129203151880012991826493644007064793182140811697278108117173164869493927409951154805789061940738516326088246046615174073522085603376803116207050190658122410703977173242095892569102425386633545168962878858162880822699819426534314064397513280767413557336806975105709635072778195327730527090452979291848880848443159125774947986898983899241146626791165655124150505097891087390748102342654678318796893093068149367480976158308851493151693903675340933486638630309506084218197772413322546985892335305612469045441908858299065615274879546134898688568251695646336573355495251518916291653917446843602640913813760859708361495746859365582765296640269135398832836260034429262486753189503340801329772561384101001166238457701445394549051130916763978516436498993491108110359544430643693999756187836256231351931748077104245580474364629894145515993433465922186529847095735789592558173482211341248856514637754323360961417326003168073489334515816537912345597688714733664989893759604026316024179277559740964265004063471382799753651595166793461831469021078417716848568515862556888135061826770439297054716394174733225794603885052179449335361909688207221484016476882510612677132848016018037553205744631846740783004669040812198988995761166988697597674612739311150490860162052794017522864438599577210432776323179065578802280601941274533313203243274343019897743617046678072188321652337971397741265341400806058645620331448535780576539731706023659715589869628134629380774938983164788654656419792354159352967288547882205063045788898600996930989868153743260193580673352537878537241336778854850063385145904369713222166779745443673558449712560088721368161895232372352488395496967373302178628198066905861425622440248310239517378014981848849818532636490442661327446409710556468515526418423229567960414343614132934607116445690418499030503797881300886595681958422099508002521895115693416466214973200300738721702360350886119407107660794976306349346468526111296606659219036408628476734266917365414408828879433084228789849537781672285767891136451770239157184073259715919101449511159905413490037051927270037168019239826575643727760502312081352709739318981135783130092195214265817320351346939454730358110148904722995726920918902204926418689603097733382870466486407746583143581639053493104107093366300349534344707839850229729138694384124987331118760700774496751640961327179489987909903160968733585414807926858001323726741212459884667175413248883861157394374306916703207239101896383006988141020101874455649409758664143459862661012424451608012082165605377424617388283647726554976224283538722436360493425949208790761359196389463215872974904620897159414949321637308801084331077258551493092298527351128910822460712113165890866291066933930604186480537387481811603763816029652915891733332408452559602231927466039619914108636046563426123208380375947345219718754145173042022817829813872188344194502753171612271880444928482380684073586153284475516826304294765338161703315619803750344890268623348461858788179070665144326240053175770025638358233361850968053681567830563316930670305802677951929662330446474429745664788786618195259438059514047973550203363009479677764887381931480651838465475435471349788931433152150049940098352611517090970662298062991620628468921484873247057296914502762346708092976465504196166442020548322190803332058492930615381012257767857342194420794257710026082934033550833682397312190973512244889860231608578837864278009537675181989976523006143113903012751882749939435570518318035877156525696954364578449738991853938029445460585269218453949129102099864037498088419910812482661422192773020172982242002650724255187654478417564038003752042985135266137595868837959354065996871858225158180537294728504468030225779684544763410739756924235903125441209601879166372386305006702553130748243000127169393598779966325485045935271428708241969720420562523276564468353013802665904528286927455531116208098641071467600144412956289759341573777478420409908096439500994098475426681495307121039362792703905917978087165958627082693201190106738044351037236083320634608619792198857067987965989464903974085689334518247008729756071234200763383489660756067978301490097299511913371102313296392889844952865142486560517825489067917324575082323651124206154637867486653137337537876573337192529213406040208813005722341020107581579277069111571232566846188957891511092850257557408343386990518550834081847002392117188536193493558483155130393755623765033463515188066461981440798392290984857761089469532080051498421235770077570471988149799586340279770074748174515205846253129440261204169916544876981863404527124657619362037640625540153621744423598854390314507698397282189794660840150760158886804412502851390324378265589447857604707534885722403666284273994387818816498560482028917029572728942789640899354993754043709616104852600576184749886127053649460963992448827604972162299390589425178922308883804925371612182604546919975901769910001385496003531844229917291136294528962227614798796519298191708117973144488368281613577905534492789107131686362135656363691837618159429099210773940260980698387006845024251689499274018590976842800246170972670602552798911502064208475057371470845422321658844326538803574144622338993504573433206569074589165758107377011607202130974263688894586034406682498869397439466602946637335994013453480135316884312236241861818533582738892417954845160382312447561639584193947943958872260199559842210971692989647120509261232477913887787188079596078282623513830355979048349329605325255556020109553132455991877324942847052029550483814324311393624806873597461390096631952432450924389026809511817265123326684685813822180385231250681574390959078755858163510875360558801582670729591975914129761873210437746460586651786189411245478798790725303423256773602018320335464072009661920631315023701915263720817901023074472037526166591536672923030375870748192876698281545944032862509329717771484083024497998257139904392328610584474387992449973721364662109942762872285395783389294246544804421530874210340127725540327082182843209912342682047850564821652734176845391232883437366304815093855171860901861389883901931021031162910203302567763666020342813301012871485000105029950605204038427357363340700986065883223969339917682566422438204736059468200846196649282433682999806943100599064036704678657834882659278230377433144614353527356045188489567797108156017614011675727445104124521006635393205820679683611428133788701822703692109288979995628348749830853818697930228553503979937220962006109414542177970191415113703173940942176058543527254944382155321078495817097337389969834605485342440480528220482527266183918941538807914589921632366806983844638282684643272149124110342334884120457533479430265998334427178607137120740546223468731729454914149010172784405085494603102122171472085834400220148517981464371769625360294315315073900833547330414040841026363281739067845147487316646797697301880670567439656443632224868078352391425436886772567218589614452212690360436004955576846269278210196236998810169973083129138671552978326291540964789371756120009811721679410180034484038409624482710857197452857660235516831187614416707975555962551460798377981170684022805548469833103918877604672158655762425933202819286599356821369368778053452133119190436283248942137398662028616593633671172671319577359127446884830310195358651513460181596354833575825113014182196622364104966111326436486136374455031310991779758730389661116925023318171862736168100932903716955690527776091137085309114674517784998524826089452071114425548647122004721492845817846699921250047080237859725231545851256452058697088518416885320938628690445159390567668613269449419268617420136242674309691893234330502227522796532743631048998080364528878238669105703710004009548233150544710199577360076413410077994878066918590011842878896084636392788323748949654006523139886647024545805979569075271645459027062689382901910888320712584231860112946521607397138499548880202679595869761234286464584474426774807628952002252138238927061875190683629272593723482346312235058245427082492432805160647041938297570118842098800013597864594249004904227088949968495124775219438319848417469655167462342336565635299400240852586259517086219364498073787999835895714703308757039391063770701526448054672347670656478342577152747110662778968977982482910917221939238241440272107261438010056592462842650526826147885230213201623367814467636012299736841892908221249495481870219764248953087713722445538879489554744530877180915203076189415623774986154391602997193662574200826080458601035642097764702806840751755074930190804031700137379587558094021303550647370240610288252288121568796450789118232989945483764328726039239020563529493517476265833163557805348608920309317363086135887990169114339086447422762722734214753931808059207915902365276846108634815605280752717324500602107853672667899393852435485534395879495367823612030939998815879977110798390969530100179574588995563563645723369400381484592458580903194823808249589004336282274430650046719497107198977292178749205047274336115260466179409491418296925793987787180569387182239038961487895668353835040738718856454123697679781477897908871042625630982330836842064557924714295127028415529953859922530329787567280301435627735216711171291867841815392220190309125035144721339440862696642998691870671925596656230780971579177887502308337994677573635274155035189308017627234657164282922783164395860648062298491849901008572164525888199345322755723180020432151365991028097793414397779983980645216095478045823439915340706565865830841271261229568313716713616901147429618493056995162368085926273639225000030661986043835626612724506055709524451878803033168237261924709074262021812735404716053066582496252505401075297442153642472689577825544499596911348052683703436508481666292302728857105635161292402804342906739889583793510465019065935207038239233699303300159687919512158124326365030074374164182881030531012183168468586355540610582929369281257859004576683595954664849679457685930783688160361810488889637370358465500764249859998249452605678697403390524320696287639004708917701943056758569641106892781967640965527331814922803319367758024288101942068036618638488235385672420246377927691120617057289034011008029870929823496639282481009828875928501157629534489601764963410710228182582183162567219024787242592643678425987167196969147107983528352080792652156664097272188748396598353006963967279206093616885068660785421551633886503940985425967745313760636070380586878187536552648990693705971147508762534029458948395322571001679897190149639043888783040670898381305888236262888004229277285212678141764580449337107341334343173197816437585759546227499442974037504495144190018407497836137634248963703028439364663434918129382287101272480759961336576126356634967912142691418025503300853072610280487590987651322462732462270926039838196068041431029532540747581904609753934687588444191349471795371810205410934489690343629353911091053537033948984262241627631389753103458375604386961527164369800545757239678307310230013100545588285960183218587427203814361959327292492114187458252861427925950918798404168920763001352767014264467692828906163468881697916357263471580183595277257847499726653813823861603318595749301170189329165044408212382096125953183556189634384496602184887211864339379705764225291020634370429743869114877191263213926364749651632591655357887043213687574393655460661150737057862044333300643703213711471070390203576886167616302724717836015001223850702551168131539535759555535485237654681815851500465970253108040497972210705255103519221813268811157538745794759002711068254553493033943958850786030154358563183874468972909391229519777684783307508360284608483167657134435885050900152248328873898777366821356589645824559252707755651537825308884633564613553761077473116013633280781166199036158065902634448621271118492357029574327638730627951431378645742049213495273309368538734903503068695756654024627913535409539016803860646866663225829020654225729579290173935808732971322160404733967749418220957293923082104779325250953890466550414621896333355763035078043128345490187298827968115100692048426824606596159467575751890326081373033596859286218848581631553690048644281255176290110061967120492596229658063020580899167098835875992909864451048134722618378566626661128845355855471428474272581993396577019777998214872980022718966855053835855917654346568013870252360239998125599997997813249144680845218398837202295731329184618282933373020476961377556797082596189374962246814030030634023761074829759881317560409284312690241309698564073908652943908454378154140016321558048091948009404592342744454692766130595698670924209245254649682810163771011265265248282833848880700583424854992142875551348515598571498886752580231904320438257668220350962224202924190167050855766809809164782878743295068334897106597244767542845195066945692419176901454938967850224927952642080892002962806026733981791859564590775091119103701596759643500237320565937431656238790925531729530896183586458497610214434959152378803024541138262413052896619971760596369901929846147237196980310952803040996165763265456498195870886738539104104476093885551150686971994987584499503650715741257187235823061153026670923888670373442787703070240690774614291150777557910322930657988298915313562409829604334359906994406304944616930186072795499545692668311416771211944503139579486624153049211745859498629019726927205272182423549260851744860190194242992116685192576675289004416036781452234156141557422810737288350965088042096969250599404564486247700262945492052153381123230769431442824484012070550304542903480303302143593050845343002102184564035155306671923600358813227166736236557243839034607009451203698998748083181625278533158855885339772428371597097034825382422029705142032240762039895466624660693091769808846295400296817540908503012295230064951209207737436407650566653935699693936105033741110892806350136552987681812722481980598688622841332492774652163152814380900532869985590760239163906932895625338248905592803676400017187906825825669187432164329550191161779912036165780611961885728249687860025861844008732636401917303464443553875895804303006494698379592964517808464926337970486912001657944614488920773178673184301944408572782389713180422999764523016067598090162748755699475522396097069009554533366495600749676549904162164307300554797375415046669149969254211846969150125696755173659032915331471835044258180642709833298534618464062188633733143502325771593987856475200642510839230006465272324721851482954001352893530877764510257650804435301697920573343373799769836805644754399214227821936494857059340123517193029058172766927878011620638063747909441087118036190997889386794057034562387238774911653502246968042860526106333134437323799776987961104998035762266114575772832264253006177660281288863085367859187438668589725098029495695527731030384281184737813464994510866930754246591917731016435201199531071910419441587060116241272107170299872154117834649805986960356765949729974227930643796403563354697093748004747865998900894539085029925730381648965028475042790549474642860220401177101903987505177059412068133783024113150722952181659207633440848664652508659338739251858939728131937074042270835646141486438991892912904634174598804450323825132017834268381001377675919702236705762531578912478037087518699325139949575990205945323580912689437009645157547916186890009237111296057696671644024835299725710187490637707780159509528115237308483485364812841305712304589764412963751457981587895480888159177597960728337497864070256847824013008166614180012192645027079497518915745536979638222021673403202843061310114453072991809681688697522991295221440186099953969150889428256179697542270300663722358653510648430427596077464029444538183812934236130383896746064547093962986840426070581327369317560718202133879119569571269264936225667826396830294801282663671495580524571446435903592203243860592228096638407693312983876978100687437621562960002439034228528544568908947592419172616412175583241377375103881270648144150658715358375413813534794208085012483452386309827869820297002659872988464120874254401120039538209798265220523089561546974310989764931735313682823552854721436773613081705380585373264325601354669931455089325721042885540863255272831148234114453406913067171379929829884439770831919090135295663525065817146277536796237613493717486596517519457280112248097993734092470203639268185116239381347965783786021855083649348303652399584360159672167951847906255050947868644839888175045448423125538377542656046426305256966063681439912165309092565064393371171433983143018134618362311732171142470466128537384639923923385855770798642305786242780428108687675617095212241566410898499377584536094297378394324760485463441743602961995998884325108476304884582228899386915834275320081300443570017042471380207766072725724177244923317447417741966065690331714422336442705321984073474460751415149211177948806127191708483081372848122787721444082058734589131051967574022724041069441010250841133584719526734170375367455015874773040056572529985408398506157281841959188113929891808016577111573919472321409471448785976205623751346329788870130016891268368365765894507928634943718244696161172938930359778912640194329989722131850802522284595241098326799466855226959393241304096607789910247977180533221941999086857703500484359649321109654642525203401488453052897678938269808392748837672673087620216122138044008637981117214844142803748235100689448575326154770999318380461537847178934749415634404897736810036165046143880681624938702226572754366841319959974806578142197458655570914816210690846261082127797705492652418906287930664968061757060051945074329309644928444572410722536125649091999719295161186253050057922172232376350371896172482989636206322240708403399107733691497164004107156491232897473169539346736881584710519326925405237206166829186402758381680149684308351013119737732507448951476266142500864769944743659388982530425408793178303519185503118238049897393486026007244579819013758186084596073774221017197206343539305677949807665456680386614698898035726512973302301752613130965789115082049570352256044621011955489816883247154363483474131451942147810801267000507042697769308622599601019224457152393233499760891131214923851401335679669831577571451915728530224948524791705467058461637539823422032029496492520940576762161790115068018179358847462910260213780265753172779476947094554709780024115411228028367638338766392023467525056473566722881453112388074390677921762719116158450179083581642278150141646429145623862078768755282934405183345655850041057550222948231614275940803545892066213784326426318114285226778701245296507999756844268403016947324741165234141640775425326069492996255914051930491274098870272382090536961723781220181411105012094815692189080337881175103250468104096988868244863377210554676704096674218054349680746060953173155586576648388440442660185348087192270072096829424810641834887537289874122004867191186807646266304587837940544069917724700799066275437271558850806936066276919687417398989580989231456029570348783122721762069284440534462310504982515881381052031006191085726141008592570837763780891032764673402523160942095641307109365877803918231315222539300328321276594912074523473387185450276729651637353234972354634306208887551847587631122877293041975975324066601983313657939109651482155468160411558462950315070200075049561204747607332387910058471257443438064373094417488876812882517378155177229396573223837261684760832791280071114677472067870650549496207392060697464409766938044650844365332563990719928229935756934474688440371182515656130771581542893848299924915996121055467242880371796652881407268988786390397259023474234591266338601649301474092842987428884701663353833965108707059172751942358611804078279100591996827745117430267407860917137752191477099296816331391235673895244333048342883862121098457361089768720704451492058295984758279890265744008692399478321066549018247455284279616701629493345917553975113402237011089399040882127077773879808266427831106246564162212348820153193607221391715547602019968138458043648169985307487465250700691215189278090455979910786992162323970847381855514277797293397654284709161954567449948946792695358775113428555982930423769714451710145049318505889833285776292243891707843778578605552876325966729270704711398798689243859990370919616990552810827466254321107081854638312476060229229874833770534860269109346059112802836899245671704243822295231033850460075970435023388114052564015209603805249332712931104063921115786040121473986194120517882198405438635522403735671108044392062594512954517798307060455891566204845707573868689579605560674611196550830302992523097552503485497651779382673248423827443582915754966457508090562879997458856456683144890190937527355158435522731623432005897794699358377961226348419480016725204889198717942149732625070935661856684317430144515261619918039852677334928208442762383602840008822635294338958746642061296449172995965559434610363752809793554616065920096235048735370229789529633573797425178035945986305756567701479105420566512645334251181593068793935167485623297883762588641981563649671397655794720411084586066552200752899732909863767449027879218813205139185717450501814404505367774601317588608833623572962481225019791900571615773038182504847922146684475262414917152887874847337125553744938858311403890259058371257464723648999716287277337987909062157447466183241020075061652027180437941400790783023261651299947947395868358113012672650284779154017568547478225366460560217776598103385337063985025355893197732014218722478013597466681222522018909131774234235426990504087066776145188581457143210167720321918007798539628654306391191707589272009644420223378167270271206248717717656412017591417589824659650479769963907365892923523820655154064485971910852796471695159964489533890452387512855704091367125982846736484875070457179865393859236332631640515116738952796437937267546764325139275942864687741207558265706988985322117379496650457092316968186174364555499233517646310466597388896107997519222197597746411396797590282139354486335389644651604228114728121199732411493260323697289563613057639710238074507377921799591711942172925334596689526075674020032770922114325809486143154521499969310034955693325511433077607335170718817827092642076085340070698997356528995276006912526104024039951955402010077209121228019327833696866458888636223844287076570491561310005248606276298364478643518499753874684644479657015479024218589090002422051235019921417673901911313630231455281029744274684568085379758442349432742106416621501034735165035135770407179799734061207813302675804691753064152434441849651392177121091578357819530266016309067890833465959301063166545307386112470726769137235760612628109365621884279446966563587875834044138667535594996163173336162002101273107156651703471216625157352676845411449081037480734301895895314795353187451106143198160605270139304262526059818408368195474453566823282444916009316648947929433739898066914706899285949163702901691711412074533459252816464984889531982995957034580108819858016253908445980815808490120883032014020491160196880743934541662168845638381843310294036977226923329860601602245361699795315657265323287831649976568507288408123170887973034702780117081875793846722376824405550499895725337212080513765913322961381200504163359061384233265165237087956375391821655956803341569935669182139776281191959682073288405627017899247870333910425491747536624509115868202546739316149726644173974751576535036942045194278305654727731726870940617703660359224320810416312648170199625901935182686970862030923631906930003039068831323072698179526807314709592371802895321957852113831796940377930992165170179864963262658743153576532737211615541788057715988144656574170647530169256970191553620770293969915814490341440378848985069787784853681322320597295927599675351984896693491640447438317917859660085821115550175135889309559831518480907540736305912370782808457733634823985499368518493335718264653244274927431276945792897733438925049785018937635992555107133156976742490486536850647294936557716873427417316551484055283800925114090625729081357332166333519150801022033745628370499510175601404253360907975455116727491943726417044269262693924319959642576539192487403788801067966607152612090426287685464475231419084183283664823030939882609831694669925357517567333358476054333613291485277467890303618948898765020997594492630406304141107614556134327246995374908373814598476826542099605653374145858643343009481172200883966528682891332130074757892888856821993095242944616333765653902902974312774791717930700015189732367535763487307120749651628919364780935064393983702980782096324225897267053499979217135307143745029704837584191829790423608525312119786582423591810926536767364735198455681244852532316423733651533251924271926748706384904882775083438856439667773308346963919824822959078107328183785181482221483666665349711693230381413335797598356715286979584272726713684648362891095768395288856625793897808375023120384924824860473616520205717883030497367916620420362651210881578702321513660182360967112925887268904200665407715778439271577398734346707773376403507508500895101807629241747844239118624363547913347734752376485760096741136534270293809262021839155906715061358459544869284298524594215238178652023619793470557088768993179177865683408034402727148443274718077245355957445066067209723172281577856738732682871919167406734323339037522148695920211422636155914413998981634203832693769982572510650909092775461510664800921428305689712293897358269785744744478602390713677357745107282968824287908735044796117939266083567398676516413066982870131365131403472620293261485439646485552647822588993246337368534130581079665268302651143039824204063914990811207539000896391539809081582638321963391655282710885954686803234644157827943735562275172251278833621555596459029008967391298619264393565316508346529657597517407274552922364935907901098122155146026269259686842281502661970293033394770028802752200847820440010023763413416033328692322108159100683940665402370841615505477474969329345278551493738523346710360757313381960994282881558973812690856814882748477280258175165772064559682196478497707145411798249200584733244751131545507151572079457153446803768693188229732266883281983987032755551921860595274523732924488983977722593958835970601542401245311383903675013193080051814457716868956273655844096807911346104579860934221592357633317280763669698859447039927927386336660688682534437887554124265205283570369715566919352835277547534791853320189999690382186830701667822639410697631371507868093702934622310295775231590083514986115251775900399415863589970895006998274576042729823747337568279951164373393370990343457070945231979032137704982563360685241256953033951282052212354490808194643633267528803589943671589787024545988158812657282417529427858199591751560675665336163159885643486287548016917184951489453445441378613283510366250567479603448058280843434608870209594909220684240426331554238000350827849272540368095189386588938213070811956378977079740481607393083634313364771504722333236210932382871552162916916460644920641358933501737323610037855080590629766979900790258701226634300876090285359625389179382610790805537718260891218767448959499657970804122009196808246484365197728633718267589461347696383438232918113173171205334939609609962074143779344237784873022345359836146403763342108615770559761492126550651008257369350921403167275272785013230250525575758222630856060987610369823989768067811925152279603509505547891209205398983382152513182147614459840781594390902624717576929239092020393248169554567248891902293263079919583783072721984823069020130215659283625656677674245780599574869808757027193133319530486630509266525335860076250740906363707439260835124129097331585818051786462932031629753441313266172281900076895673291807204305169508652337353205556387301222167548233123686929376929045811963228368062645966872959599126687888983099088546875667004144392935066694863133729740229255610088662860125486090820851380406360029847729377925977630309707592815323261118843734740737285332545334603931057204840624219615656849463240789513641548616563543004491087063275293088915520072925281732984226853090600233002549141714853573853090496625879673849207001599920100961829870736955034862787466096335750488191241070301705884867169613149780068085318649549231741269785466972400280934162679987040403320332886046512434148843292251477099134452271462033898238481181152575969263524257799927969660358876979534149351357671231475516356424266573780764516864414889252331858301493001842151135325482794629171181156767157095288992187822793566962836110275576398923821115507993471702946436397210342590377189053482467758218557488962736067670182027056185868463968477910320346608381675771060954526925226485587602732591264058220859823353291347922948279991987314304102748953024741642121118951781980452145203961795722843893069273166825239725208319606410353801607619609665041592903209145511373968066304138194652621019788116581642082406748788143672225336628089253518613012838907767570721820480885820412869773850409559709208874965752732262580145610606590800987035900681522284528773526541810345419579936753204489184835495985023477364970474780721966936575206056604181824004320982349158557726001746468931906556455404695507206090291690176751629157264698325246128374387050613171441987313185845199127309646855843273594640982322888976438455815920577824192594032084440162577505825887145990571750158048791514920091709017764291247814187360920975459017520649803604683023151064544451299793584721133653669203378856118814714620851808697630195273782682312626008653985848998718826589544533316742881182265711864520335443889184486312492786908560348792939753885936600888032991920949659145370246956220501569592763076964438674020938427754059517218412124592686808532613728368262411485452998529366299604029556330152380061928098888157141732199456414320587337883399831002736844694775596680964938356001214703783708821128306799973659486543503655968152334007538279829232323401378744492957339727451803838394409488906706522337760200984885158954729417453269914269586797222590804099619539689794342450276286579477876878267954017916729889944799870474541362468550982693973602741186898634563499285861117706257886134486379313403771960932517297953112625962041574738825025651434022284532245889946331116604034812486609883879716366526890371291960646650232447321835427113138339181972360594753800049589391989585571365237334345784978418543758246657923964310770475777396462609551815525241605305990596257594613373484662437826665495222410225536221900644225116673281575623371516782504080898731225691341178749381480778204771010205231103918597307275573779324882023388049761010341083877153291289672945855146755344850065642926831998850197059951046932307253314188057440436400561241219832787352682211171169027784959909762248789076762497958473741815495330327743457554267025391290116246623653375619183235651045630178648263298019300384264580759593414522608630521533743724344290059726345346784536126307583849081088234241295844735442983080833337662228935295219962791909288332390524908897089312455667561195572497527257568528991601785787042410200734255220723048978033190156065426488678841324161087644204088990144454106402741235080563888690806493579234181463762843447551270745990078472794250685627179510383666501699936084586312433802462616319153943139027042644445639974423810401787305347204645224081919676068558950166752191268506223598559964484798869711989417910146280454375850511031910570923442426351716133584130125831035412637133890256724049836681219908961101628183781835595786328640173447974391362499033167393742018304890962680705244110877293797119820595282737938700226735119980530568151355034503087264943418759495099955921279656812796923398261235449021467189675087958220850380684121406077654097779363596468970809171212231559331518161001675438859875703925106536191250907034985725834796623651337559130962895481237977481100895816131922767233560090566539955923887914447669990803996199133447799427602481067624930148718119216290262607533716344085073330521403031954887919621758188063131085557381775043303128869365625930056706673899128350198296272452956475279355473611619063583531069594256622679077249066220475773825577256690532843396729942870092957656942960348831438983142200894107695533875641920922857975661458161562226765826556019766389913072148472475592812588793326000452291592966797977080458893777995068523795244424818401170504125051593390934326754923355071933510923577520930120605625652376316701440166292439555436810248280352376902588604969873633164508306767700307968791077466084898785828023195889629590004738212604851882957526854404576327136586073924105323489701703667484145737535473043858963189145387949246025741694851362536605921110132934101995272456185297400883866109130994266879527404073970007276757034260194750651075944463964386448200415809850582706269219821156835033435121573305403984645149567136413524732444974092809534631065251320345680269171692323666849744558901654171852558633460717507380427673536734795010594496356822036110870117145589032424233602763001100871462996404914643060839438661993041556478114351471133670556183290368041175342977330744764451392559466785147499856644404631129986761842087540741120342324528517474787097709852817579700301624581989257630093322473662110955048988055589940515041988386303557719283470096826419442418664584699416528015355296099859026663667745781737183948025945821698297722664956506013688959145967752204680215947233814800379131991779712405713729031826490100446226902320861020241233362820786505515944286969473379589201259717193416087396194116947112503913457695269815718389057663616976225798529313619005896472727504525183769354496463581467727351143389605909660385738648737344440206050847728604584091640233312737773278028908750982464165199977132192501120551462354304549874134771143004652181529125176928852670160982658647958669704610701763883726795264140075655470584308483904416122850189905430529470423271917806032206622896806538018434064409346946095210014902440636207695108238860565753339319232128361412205291264224029055370371753993795039467149758078649196195384510599542717344156664767808076470350681487521095717745121166076388578103135102145476347083761357592246949531287951945681750379246318396515629774497581363372530698515017862569207444822528677484896562467550280713102758133330156682076495643121240865775574547042537295165146397704754241632107881180495765280706634759983995487509056740772718021939814703715113851099766508845888828754753594378355604736812944752709642194304034044274294423261205099205464894647267284278718588242643341078908108256011864187992009932467586813282181397504488236852055648112239769481662649727848577098111874373223736116052909819332767968587018056862217652710417232873782052936119584074406158320416756815716687543257173827563473574538999341717741186904220664487593546862310231987331469727486539987423788271940310829730996065618462768644676734727759664543652281104581512335931051562808107174633743314613749861756531679196959244462996469460030744714605338439509737173226555048700692212517610614734724351602918499976207192615985971520113236778259123396082124030004560859035370226657696188269393427595362687666168061391328560617885539973608228144776644600141482971243788233713400378020608160424597839775452453494327958714529735026807397143231721169903125706393542522043733338600330189716847257102682474294872127829923262899718493565513399524527943352690336610789930505462584546548405892873556476877732485923663379116925107442716533859397475213023503771207839074012953042318943958339157499034571989887665140619768845594973762910329216420939615055228452778689877890239985099188898974064087230426794137890258465731848267659272040896509626474669531009630911726441684711086411414965526880185622099834897635535792156805342845607378681612879442912363086543104190588370828107754002745572516665158194788030905540403619455440675940201701529354748014714379962607554330461560002986956598734704445141419980531862553181690646098519827985150185118497966330956999119693290534877060640665656307882521397757417664557601947547392868218621070257413257898346121482684790773513153259919832021856433815327806464105551089545833221211626436148268242959462369995450462303315892204933845115199825411306817790335629111986901251896159987011975478984026181340411009871666131003480238712683079261274156984194048208449843422272757279667637464742287422096201411851724291842650366548203523805304494623012852880745877179705386492323023107929689339962799828033574656688836399092914632614320509181677764577734409338632434304701277923525338250342235013458900222259486397856720513514220099322973026790169255610774954406132832663392649267908454355765761849265078647668847733182938442063905873622094108816093798518104544363431293960864123032051971729293126078587688632459193118194634812728065825192589509273322368318561849753492313715099382646847466244583711116474756910748023476931444296706693211351983840838807685386041883165593218332492441068365773293671245121872082608202155127418284090651995580159385451739745563601213893950234258092126764589642057698283534196381870436093153264368360919961565974730551400830678836621047130128732905961906660686298970271492744011737766850279814656673677260067287731117394742171296138641340552245013698718420339114783629254115071239645666237208807224954978353501708730553952310280659204632327566868323535019508177067634376782056282258614670570672731209273863092052540560810363590465219634542936641987606233437555345262612303710930458419475985684830931216444875216300387337088854911216629028546472809663626344541331761090692494966900041666201867896678061845405638226009676748809935861045469965753397878200455007687966160321862366881988381820633953411556181095769951779236221062452048966718936291316699410115737551149363679859229282349212297766591970729566388559020626238226609116000643834855296161814980597631481982417218339310245141261750749722720838821209993903167052558959290984495023623365961654187106551842748165366396589997030348439693747163565109036913810276740959870984655322008536312990914005929834399407805726994464313333079819531660494875743840067337637905446137423777191185680778006865621655079782646206605934300417448433488608636666220887982494558378954634142759106474443400298496789817943923496113475090722116296560053837620814501164006977921479525516220683574609831848165511112511484029003514172921723406781027324067130461890855949207790843089822035370712843480141889289406076195734423566446298312333201093879232639471425598424989725076484754756740897572202014237869707218230687158132811631358109110783034860496331637261340283369471940027331768429755350842055989525657563988699689611189348646987656471660619075647844381892533592555729367613939225296735579859522658717257655392848867392171828980403888761203574115822902068615658776275697784290503037079853316702317321946892851714379733986185232210773311952416904138677570369935164460138167113173317250499142916061381044619725998567628323923322644111476606705744038921166346819405120412737648148964634687281681353021629955040271077387577235863901156462107024502278976848204834428087629012846763367893341438228196385384549145638878130738922622479425688559263311883127215150790579988488038914080091459315848018097284787867709019197852656351302338168525943662302459219326698040267783566469330393082641354929207180489261347262099605951065150403680729839183914868047833656859761418518003061359360060956895652464843218343620365526251573316950567814518610642795539189822781395864564805052466577546794157930113135166509239509337979366421524563182131952794293082038907648331353252115270340034949280308367451594193890749094188858668474431568311290360296654585572558047534620822345892981570754662275016305513849048368883967521256553732968294065779690201652290016139836638654067083029393435968759193343741622943940646870816178110113101012998985825595599768555249298774233967439745791115608787439362158300366273098065708960792906322967963499296357097578217593452306915341712767264716919701466234590465229174042287134820363499678921093994503938959531761264251402994925691744769664552650040096723014735562830368169457476629316246754364188794924544061999507083861209857441617370810847019834428401598085483339695948495966304134832748402161119470068472091664181313729430510342251159221496231717812136572919830903761908833543173879943933130547985458243266960416644394525398668380208971243395626800171957742277489654354250546143885854582942948430742221633784855857420556329350618432579848415787054844155693411306280141710953262676003364971738907793223320006262414547471600164283731923717130761216668592825213315163533617390716412826885704426090763837215870122716839256372923716286136708668831518418786050836603833166635082416681850888868827163432664225439048847392042880231585400996765804984661233410207632339323201925416260144875325444581343634705675279487376896634704399266153752635623444794326920324018734702720849849653077273405962421738916370972338496098298753041560052806119571637105772884915343378386289925467630763407920417870355602059321918488237810293815473635565407696575015833160011367720820811510284023096895277359899173582171324632329834499591225833871098225907246194846227714525978461280095638865392479922167172826552319864944641973142386689045051590864460647878618967670612664250841580560079019636308552906059846917648731796405632821592122480796235862560407271346391825457167480057143071447382095731959557403918469622314488900857950511730502396332961948706486125805357178298712298525105934016856542718235067214185568196329502524747319797082392768275635132029796446076529951863465983031436629927830105321108069497116523456163454694944918235065735915755062986838379354586797534606247721248332907193585934718796417713229227683839718219433703087819611992618867260926511565181020731171779210854823109779965021105907708092829735225104204899181529706910586855935113211241085898477058642613118264530999017353444351148047779299301953876463072881400795464716742968797702626087690062454017348078213676082383512203357457362239152192678680148716445613375395136504271681408915477814176335048497276701814838340120864363707486297011201105507738728153228119254657644322826390581365266648144869000716042153975622954159547969364901211118595245287887857110205778279198717078033767412220537778870991294456691857539186274325907162997684137053917729446009556590763258889818810117563996869134963038312789136449396003317202056744160731862933967741961683394028123529580351026458938157880626805448171807205830339274682514008034934000877266415556212187488497068203987807298028639379952144101997543064952135575940605570859431414797270056395880127699250229562069468419266578608505391676099696691669229036454070603980029265044819693584520818694620076259654178464190764116087961776457026903519434349371248481765866181367512735402501928727089749552185768243902595085136901753917909483576737485209028445047919478727168237215702221469958068309284132483983349749739277357753038659826780096434151849616049658401497201815729110580396048144592877433671362737128513650974973568521159672689678942291533819250233415783013362724248987148887707000471816765639990002245633043512940086298341210636622575801219653542463483972836793096571134763348681190797496228176403485040257203781307996965630789188427466535146707829120590170595787867772588064089257622263972715173642136349567072788587736935987671690859608936528091148228748137259432041688876827464161562318869504775479107970278081927664599242956845981575058487680282197719633903721708187575437944300171826810046666926371282712399284921550373379756672388678721397535880648169087734327340778215599018021051177287361657161857821975367889423063114446200807396445814283915912194162987757981558782146458990874794922711393701449726609240905086033699803466982558091637097159658571521817591950438768845006061584511825312678503534518918147833937484703252008716867025795013162010876844373862068921182184246808135765782315224426323713911249674428648276059723223767668450877324446706147839673417333239750563934324842356466038879213645296201873504403979224793145738672317037828199299412012612437378073976950846779236068904775235663584820976846626699618259950341946533517382749767374756085301261340955925273408533322731447666729381169565010360024274879057610736799626888602145190686311888244729870117149484836086410108209785735704161776588915452869358311224247795142435461046962962645277291680219737739849373200855394636068347484382594691587709081895504167094594418730254769289153657995281714116971708335573195219409174397027618268638179979899537606389285852407594629992599054164359053221198372071304459410138007380309325659664699799014614559091119959877436242542493993255205606208069041814906853262305636729225292921669775040268969734271859053763716795077119917269500094599014732943970533140544583029440868418117055105872431624657670328413957796872814020732180019127947116828284908927222638643060548494932442340445903826158671908442396504639664924351615816997446229085643244906926533942020715443861574233905219619318102047026126742192265572465297691999933591346022210835173994746454729616537080457180861279824811747255734080873662843985721689426258140102279427052115222389045285284219102603005743248652457149474484227695241745540280854176088152435420092471566269367944819235466943892386019745937118955475904771927710007618708264825727894141230568644161637313869479797027268383029072441357286925497948576691165126274347382241251164425390385990107901864501109749899010782197308141355170490040017773822490586051837952017350653802984410118638907525401096339262890551138533432223807606812557722182109727746143313593034548780743630206734640044124334379513731268355337160799655226965620422050320932417099685532516344964151571531890679948796165193373950342285101686025545721117097378374286113055189866417843402477757050931588875530986662035049532287277440550828217859307172749763491660971284778939691630396024106178013915758038040594340346514780286118288522806893516894974596137210658592947647241199220117960061831081340618470273852415478737087979305314774529805257979246996287242404351360731061189940726903561539564702688418578890278683576728837399287430240193712079208937761410219209808940734021626372952105620984378512712442861190127865690686034171666780868915680284378703544969343929270066890078246196214113844324520723913864414541604122358645508621179367320596768496294430961058819405748215778147922972144162296260592887293367802527945671556686063614777533798796325235332728625169541560265681064442119838014978206443753138077307279704712925735902714666022178312352510800775938322743166622852375497423330219876361765430462462255086717446479854832560586971981924212081519739847029147756344543980608973864767224546272436412468558944997395799890819547291333220874779276304894071224678695994617220038726826625764024298620727023109761449749008238871292809505262940347021920699176121161360740630635061530293490907506871577482229440489592806635117834512376532766872070217186745503322325668460099829625625733512814296779926148703991768202977450616652316907642538913381364198177180600480945385848452937356508546607888043634909893726313380283597169655874476714227361687057550968320970258842073892045310914522519357021285238326442137788069074956787813290416625851451787550429848073765395948254242948529271269259294282909179616415107633358326664783961495493532776660314860004352324600701760772476397049364576126452879589908300018529085753642768001712242570121352197864299414525500335683058969380807673992923067656437322929155082578407844583572665831787365852600022488373329074405241229864895692973953203178780963803878309811007181787876327310953426026261468218871556807203671764059876047941638685719229546764529503330208222496327864479293338071425659333436575586626632005531616678050850976364952943974399566028866663664927022296710923386622907764834302191912101655451179177836274962384297159965424147890771410309504938850192801470641912149054990611257968041391902550952194764310252347953609577846603973297413826850086809107784382485106660013184160710687068382241474585812970573557234494769064829077387552443593109399004207072131571258952763238361986812222859721741859257286777949241470288568570371734569051681765249354514059150213223467212385644968907928679675588476917401055721125625292383140532990407146784602053773842782121005829115667602926519067101630078433589878429185612729082218836380719192729470127368236211948649411449564261091830682691297895768480616106815481219503554919218965944790283616214090059105690446224253785007372336029741348698478609557151380813481435318060198277823993414679841202481024256240462568189542432943759514567402559073286579615703788851837122505627905918453633806765210966133818914536001872022282240051170216074718401476838108286118698852826786806522941660626726108191060116387162548961529486539030177474854408988613646454022566776108153640066513618573500622235318804075935410456491476086406927519370428268161096489020215668862494826139997926937592991934116936533324269366551334673010849488824694412152024140733941012950664311582479570073856887193997944111759363856272573476712133754404595806023148663628392451958801382699275882182664858335679643045513787471105765478925784836136116309416018003398463133997105694581758423835570341208718000131042795572295869128814290565602403306831313554151300738109162230615802607046853079216135391376817440814245381610584919186753474224755066752831658194111680260090332566040063858711921758833916844701824982653419518781734012157175487604775749325610168236864293916022482915514095407459479377453342632591947117923145953160850487116207063850567442842082917740054633201149289552559848879215348296069886251007764590374495660515609135358314242722251923835838967818257576617783868653458107658258602676436674726485671095171393144442221541649213013341938989945228652822050091987471988872766457132728097805989203242966905126805044401016979201511286755730108949150796004197139546836664682921530207484491877232272873290643032058568056025572512988343681371255330695581305943773417911637806378331705137911444888063530130676273621287727191544546459613089994043440070379721546814029723064559389109917995287274236385051397332823864895654277393091358673236508998348408819079678713091261636554121481004312456654135599001880241664123188414182084622420051050633515982445739640406341809944690701653399882247127655669717069709621413922842209614401129847501619933858941846537786541679006947416639385877951143542676522322152307205209033633002620779824455751750328169997129060594948498987548424482600008560022482983657611065030683103114401070645717353479220056942375795928919526184142324077739768366447674896159303955643691144093474803017114839274777925190147983246610874794938154559634937087853331422054574528367743629125197424581831360122282291219128737517760818740094410997248101085383706127509769673644414720131925391244149052148594062564450448613913766925335085281763733989164545563587163282844080277867702432625452476986039623211612010081178358015577778207454824395287260452096884040908454265894566557050067692232491434242521489901107391097669254989628158866177729171190149414251060939049439704360904367864117410346971062768925976224653109128267988094330867634613325224898441214090791486594948322534851766178574768110240781262194809811908534359874140507143796084314904697209845586457912624758089039558275419722972130884429144789793588776775362915299297955447871428577128920155637639360495044839915665936379131678067549178392104133147817852301862886796060315952716363465580348678814804650156392076946052730884739201741071026125609912546848306642716472857029516696453095250090633013800274732604659417715402955494290307315591418838986995739676994058808576929160480430170862744696205651364681290499217071632166277868778787330720020158188262917948377996723127289491644991677539298737425708984742960933381636396614432101407274778789651238778293642770752020565866176108667316044021116727125694541751576661679185907642172032150694184378505656683674225394864739273476415786459130412099168610052249383888229770750302547768077796071896926324217424359810343939966994121914732514711136451368709538423855273807913490652052268945423989128735209517442366055982273742377460358963002551538067891040767987716220955624737365056217573851985216125013804116643823511766119456630247322692130320019321272006715958491706080541477656367428335090437641143528009358009171003150557388786102028840244085687410361121577434942758329348537650477569696205601628270106903959407399788900601208389628841211243408998390817488688918242723320534506525812936108216018875766622109743791267371213816157415337113409685836662413307239335609788815716189208112672025977345643185698424010248325019943198109340985641648724743888061929497791123118890307458745866391805947837459671101291453329813972640183287812917781378715714443840914059111052669691527921523421473437628989459687577292144664549053276998899726736681146257724088686594448515429693317163674603454210333169496985565683821571485389025079309126986386404885588041222349761498654972454941461919118583907587072952199092955792514307266488002344331636953795286912847190074093997501726051565242786081970963766463667043894593442179619372901215900571955409930953398402278070702096853752963036200548161228583671175081668680728348257875789403266419959799750983802535396632280313720984800739591144527617281861877638868636003626165320292611581415046030486764420652901658335851586617735625744887648806397914347941560704006899772305301715716082715144264212063203164280772900369130411639109294278657922269839041639155431448144503354011934578453317766701305211766811336519956611990634952181921587368585100644629538281682133730221821628559635721282738266436742632856674669527264024711924129154471913694178887302704961644747111081605217170894780723839805918172979035262270506923410162562439374315119151657855247944485370387284018178325372720762902838507226554850670313111474046655841041494610433931250904148423032224461777786888743057373230646721615995133609944923534951010145604013757864710816787309688752470547247567380632703100173802697219912413280470426205360873932050931479180719620016696401273298476643836345588972999647978983509506641622096574742155410856097624308409128443182540448343956605166271241211131886821865501217806205510017677451825754051097955504031228637154023158929944737535920067490798170773404564294330313510208785351669028217200248843331686405503011284575793424777035961611047917615766401794240802937009794745983930580823585740059173689058830171737100851687463030427114108246176560856560519455970885793567436662125074857007812787582721686620531371224350830412424491824760740494656506566567898055905121679171728142976851633997499869137458870495074735778807607784511010701570373506752343925532782617993347288897991416808209483798940397324070795658361302906556203590305333068902626176027637260014088613435778389080385126285149823346076260174582546084163155780016953635738190553598156302578395926488010416318391059052129322548043426218855628083390518276484357128392882846146956552397386472538281505534594604664236104472717087517087661887733154876696649870077392891669035412593001098824641300278067030059027904821782985076269027737328785142112349259851163200134059104085668496081160613828609210818155349236403382201594589870677789151257664056442988233943757556307336928192349040199120823743448300973442588967568855066613785338473844585596025171556958930187411068419300352746603160513633463641043451406229511085636465384393040179678633314369418695851918463923297560761871612404586928394249810236084312611105891005604895379351216888738365343699107290309459402625450268379506880983008798599191336975121461100796735826096606191051441742818158808300206003843535006614911763909155842665660530036494934910471717086125782964540511263921295223434807649431448942499664972697152324259911075296514932971129928353535572773033056009103520566012730342533235378773808925549372045266678453255200176498462022920018013868213304179346605425299778820872332621415044175076467978872890971345511748996984543565578974579520902031208121427809327735965173476514444467855741419716797992812922561531031731502575087573439347829279625897617166052941030020078725899307852534033164776330922174420112195693568019968738310640590068236764585830671786995642675716341283183660218636122528546473516204920742814485326766175057248189995957019316120498078889218209236477230385752915488515650139095756158083040380725159809404299451663529837958734855456519427059625932065080924748152682947790617683599430042217830854716491086565080662978028010402280551737051645515011975883866068497750544044603713283743748183614746432344985151224834612906027298054785304111574116911429345421224990333242110143030096854649903950226720273928406632926934202801768933828699067375828139670406179778498699405156719037412639681445349655271172505759597366966773536643933720946757341775480181898384957625324307358448988841528211786783452934526153395545667488280816487604800800290950486629965832486966553741266232012371504364433882330049527235170136054324514931986531726089830836731783047014117776735452246217787783986295769785800111338381336360997419245096592814130374729729568510962704578420870030587607636377476764968793663425781817086654577408863040988062544086169628678993067633179115996766511312959506059201709154539072864032223700295070605851049181374917182882764997824935443737625359982333268846760013715095455221006991770353243188600362983047219326551382350979810485507482651867697432073294030049917675058727182509123823125587213002497199730772295056210508145373352843282068187055694044732590429426478564116654133762945864432691949545837737738284084680540118133724321610427136546750947284445581847259054043577180314471566608680073112347805352066024048257048799960357897374015665219784353464645736207038318166585914669328590589531056036745687138266517739798785790135798541475122794293061623463673480824378582452661074538005091973700338545226769388726457133803637071447945865030921744272804311632643330702529231367223994262997362407341742407873912834760362409828226870720019644903743475820873244550302488003527253974865011072047940866262249620715001284372601085885192523400022042151530521162766586663174186811333518479734283579596247753653474363866403731800236870970535455509132943036511472023559706096294755023934633070211145915960684326028303803447543899203007945201814789398327600567694485412465390930360095626415002633141085419988732651861310851935892504987040411994210365559914210682558773432900393868727184964573564105883461128119340777535300467983039488177767645426322284560983861123862579572642707111937287797437319742696832709382815566785876133547930838112027543297634050817402138084868811728378171522483178288394863881476623658629838582340061373139825852298648462404828215937450693522048107472764610561347679641435517491682839248701309924928987115174818772687946563959373390881415489844668000229090705309939127225280602612715039669706666519146346360660550373687527654042835595462772111954407627431887762990217706214501418093671160091487603575866150127569178265038449818454612296146844058231892066327832754544603364554045642427800685782312323682125020311766702915189539358523941468690082452635685933087006373200399179793640097341922762879251065298920017160071964904312382374924979836951181719592104871271772763730580805465893899774921312155730704216826047985586178264980970204522036372730918671169140861247063963552155209320624736891239666362485097589095622091000230039114855712723017960124790015343775257624643998969041825400686378141731427215022344888673183611874467221821315687319376042168709768138272105896451651610689173980699828207792494677320466257582405618256438502707281901143383928252223557788682085109912131555140338941723273982822739627398506944209871668846426012514920099676435094024920272050607064171879406295175287362097436705275517950843492185162824034295482187854112290902078500488435204169258121220965334941501994582406421621663164009680242746327266388426470203701803428823734920044454189894969253949524366602740263224615488123972640444877217949346942261065365441153850509618959044222414169740354826109585503874715095917337727888990879699062290670715895272734805745572270968509042206762724557532312577411481696331518873997468248486561488256494078329076762559738594483165685171139918515371358190291089552452737458930972600599456788541847112519960963927225885784274349795799403219611871943256072940720405097381666839227517575743064352053303160704522880645369659403823857541245680431443238826598735678578515173695420832769020776642880175806370597023687589862303227579196369021909944459502998786806495949846553422325453542976772763851343418345534405451324843774233681912679464060951132672198178713416711333927614679793726083065825728760720676074073943669341830601955578364615095020838490156683890340734069645459634109371688044085959648716824004443627011803877938023776254257769703863947886070145392005680572866155325446763235095412675766691668376805984557245496838941016956658144590917049182314268922813931646616169734185487182656387633792027684230670313666495047307426019686358645873054462788990199611542433344510689278556692985395963682763129394927287011015849251018432547997237170308981312366465192193616763509757834672686417727762404883296483951969008043045527637054028913421183159383909126633651666070700338662093049925040056512271901810933003769847123612539320705950237701581355851668685596162759725494418219702476231870787647255943906088990481844150804497078987926254241484519085068592744693877935380720409191550839165951076657336701598644421249453403802866134324796600294038214517323787564258188319831049126437900566038566527341544459929450148594999310007018606132291586065013163853665468577511536880026983884023334354784237241069793661070471498342278476946084117289245479553862941475717974581469261788217075500070778125807779537551058730527869544227707648042522690135881102977331635735666778787005587240091611280598481425769316217655735022392312356843690378868599868370004440800785951949880263349056529993737695917734219202322334051691172478404609012291655532887186394108553098425076746930578894244514757036077900723698301766343631287929233998139458330627415807199297479361825574038034313463218016034870311569000796014004619848264227237630975964159534010368543615657879125606380310453786203231861993229738808659491486351087766174694004972350988656745923378718952864062279606140152893576083189415809747039571803754335554857608622638120446925555661498282861262880028381946169850594180835276484072292387394198144894235195966254736433110905179709330303433178628148391023459420903075175090837577929566441459060449730701677269867055943690318167035196466119866440423116896652933140206616543129683124714850986638288779439179222609656720539165938033738923857518039501618145168149868104052863011681540010024823751545753726332473954156069977340667381252174559097558703249861172993649956861422462648918735984369680024303039580142647329952758913112582729557073242405344784027374956203092299796697412317187258430527851444874420876269556030671107947103950373924694562775870041042038372238368638233525890193776325974791837141679637934327538380214753708250627552413725061969292061889714425389936122254270597890989832165600728610260533838136486599530181280132887559639814706408522513276394225039873362686961215421004966038145515195509818943618497218531053579351289330290686857413008527666125697632985886390174458966510305362859430645072196868953994122992201789900419075587070899145308333922278487832220778318696298885439735506939328859353847063421408477561260385959270147929208065139706235528920736068746984909894251058215379295994277329285357933465973991167257297843974001760087014577976424713279275696447996873158770818138195812166546046505916489665299004732694564184917486485764500460887450101124277348054576100380520254538052499067783651470154271685722041687059602261026480243525771694043508701666727213467422665396170909172003293727910720748343747072167982461765951379188439110835026072877125671387131294926230457819164510454262663086860009482272024639158717623516599610620396675944070354025763063827225556590528835574721897558684717107752190093259450781503486956809707715386876991496509453713474710862022613534640748103470756659632351527240591735354207055717463905256435448897487668631551419235085052512405969925787227058913619201869475932058714994954285405660437612072312104693121172616108623434627974833334007340478552471006813787871784609546995356895334941502626813449472960761503385427010487495975303507152971642906997538216846987021875606770921154379847706319286129124899568095744737850281854674366551797780231066116440482474732338200453241664961854072823935510790281596031941390951915994746706974580713825729326846204469112140984665560572328735097868180492121610585885884266999683266594218556129146526498035378596936767741437779720630331316858358375315313275508870552111046287850593080477890697925266505594425213221675208748023876503015116462700979780350867193772409346479560812069356621994897872649464252499115924617140574618578100607187144285417919765305320753879962920982422603527669334239872692813806214923627197820767866660371114351979257233166626600956046062154779041281429568922859164242655703694228598274444213302407413302365337038612758489749877134183313345063777023884724841195455034087045102318611782039368200357363430323392067139462478540162498831115871885666346460717897944515407561839233098946105573135341947764374344995980723772039262057899941526196706877565926996408570859702380885974135041595313719015775257013110977080425607451200749086990406842429522641474679162091591813549430781572814852292606611551810730580854724199170251316979708775534007410108994834674107096987623049600032372749371153071234615845545227735992575809848511135988022815619457988458587079018743770824696036606301346172288457591605136511944363907427138764007134085996168061381877334406066511116725764609851172071679315684850604940514932395892052867198267764767813745090208842711531118462126208919427858342836644838930660003600668496870296500521109089057770271749764099959635109512847441425223358618418829051395993904069238028417916429945345450294915473299640521674061135820844500427613112737537674102760825736632009070563893663686548486784207499796321674473330227216768304072100821540293385652109590324958471830140242615522616419431883967178097566818715544018536664115239345674696573794781385339503247493553038596658075169193681372328433694045549859223491796162492524190713370335290005226067094689964704719115242346057348556585376935534082763371720554777781948069792830392677576123634791821607960162692987956509261921952423840488805746203372105023119056721124192070365508649463118785150818253432878189173447936761359476325774591260115393852425556160757925857226220687441311172573721224634062209638713125425082429990705732720187187204502409360792345137915800345515488691871828886782207420846065940799365857213036579153280062321001774203581052016243110892458926305518756481746360783887447576317791357019410570461757837713163591691110065703345941289285374974386491718720135319514389966495326431064264950634925688106056639833930479065366521846823921082429436917161108713179476640942450758073995090858504471347669409217597658979130755391748232967005197529208783128739801795693456219541245285242477759298383416265912432261578829180765798166886339763929305954887340603671355480379482833928948510688901259808996772243789223262876726619023899104069883043889069715258810504641047145403512850346568476651543237918382260942592733322775603915863290079589640336485833287379220345913203358812020456855293522325479672515637465078258385389844102620037395240645010335032443742290798516854512446534076869633258901847141234398540462909815006241317556019293944691391826907906884188384856319147760055533839178367847197928583069460726751630903576849787280822258331666057858682980602162117474691006704470182440149996408866819933767396885391966016722771221350870830819397147615999418037105737041964031066492988567020470407426523892438935691280418815778906251908001623785658108917731046277814392517910532941500523673090539788642558729332478639834051553125999353353545937250063811092524179283837352711035246696698356375125253120483484671914390977313666096117176106187741666452844068205856391130390224936357723242372697528772827541580626871342090858658280863421884931641180727887805679236032473846909014806722457796454005837368893315826749991614513308116063350454879903208475672679682840374118427248729285694440460885836006853372288071071487915366376404949028807343712073453552701379662941059982612907288584311410650858828147119621107133026057062190684835049551460099239131938405503801621938537510301391225669180809080295311339165307010031851046301281532441026074065227368087271980539782810742277231390863788152200917633699501632651025615992919139480265231208414576279285514054666191463767113272243857235697531016133370352200310905529239770003724864821129669917534831649623506413726441346610932520685418379808543887250324551482446103132332477634250814540204072886478657861297086198136205792259520141832168306741404382757853820357126074056934245029629061901913952808422888076891651015537961548269994958236164277364385340765280150592725006344381867114657613641753803752076634299981107722045319640724615527709153888413250662215070435189112527017696619897596477813057518577467737882657524548455781098525739991190526449335983865926779346033698319275271190806193933115405882692252447995653633864755334475261438421887580333392891826164630916445284431650985734299213682236831290812737550932683987806863602721424364013549464751104520709621128200706864527831610518702616919982614304079344991820740103221818509993551622926855789046719326471556560911344982446537856837860417801433268293451730129386633789118424998765350367828628377698195150049738680462022043943007097436811882557222922651725026827181501463185272589483885225636847618420873149242106218325942218780946214179380495542694051606721413022490710158774560521163381224608232119663603510149883213330309573996130031274005264402636027042441514968718180855549936671932963741030398445277024534051345204456263389758933910758764117895511532965003223629134887473407038460659607577327668589805390977565915781550925255301352860505967716400728728769415396269318029144853826415984219936551395408492191794761501890474652415134792560947780346591801094933573723192132512967516138793254178680250891192757698273614940974923360927757238562679656666204533097099945272818265932572705174017564223271863030720997728698616399830403242048462991356874873856943217447273216673167650246924362785650522316019827584674106246771552453707847300771040475961452780515721347480765874627484413450802958462075936274316788569083962731050373268541629267941835662916507833473202844810811022139081150895485248674139550161440054510292340946416150430399257283138599766077383271538076351284905710654712534553492548645199358414362034437396365315693323906854755773305998439754300465301833832431046148189412209083267132433520670335068241784027106504181647096960433117427424067253062516197472706223554110289920153630141714050118307386693809646322835617256567196107694202537382676131199430158200444024908965080114557879787470863469889660516332050686084578450444178970593478464315131284948355616637730220686823771702592254556022445081521448563737314478452847760885151276345341539034824535968652110683121665945780675108144673189373710234792078052489541057420169625499894661780967125687187770316753577454537996315431306077181008994004362670150452059111625392344865757373442324615386592861019784053344415231821977145964927217602771782314706517862605410961359745731601110723201707356081868900557973373933702181897633919148953869613626123350083757838317949846869884101242617899149310156019170249709325101904268592027087012010229965979576560668797513256491808374938375213679755282653945731008744691832040283063398758334201129678604896685764672872296413688582948933774280700878733429880384863572823661224056249858237362186953899586212443475409012740797530316528726726749191685900955805737112922926093761987904393303993712845089550565507983317036795299750668238019643202548935204761812576617163267465547639428021563511748942932042336249847398110985605966548783320358994813790941661391867492024968820727923385556646177473543534874348517484301085456617534626512645001622055441325660621911823713446281973257935004636333583673697685487414780049416666153302527261368069780038081051492540326114782763673334420896158554907683825980579608962152659209044030878979718681709052737794066248103803373370055420837477351767814377656901180369686978895312358634169092075310977242487659477093064130967831357110750656273211937701305238595186122834262425792753611215893922548164706225359333820156755539625678958341757148010038495638523562087495819303977446552904843943830540124752559597845780328005451652562699781318707219607696343379964182997242434327879924100940558054039202639244636305691543335645122228606353805143291017849338790334909905016234622729132490754505868628796241673298832038837402266592740459230874773787203507848169744452288655598648494386127130887670742810092528705990883365970449398367348647701888859845750769980298347952747349835244998820814228448731776186424726864954709637526364878325868642312494091327037762762511287344142381422918112696379893751242583947008052147020848331265659936950248726702373176232893148016718837061010214900972171143685581926832820711926746467383036021051241012307715840900574589955651004157680629218223704564673544949796533464152636003479785986812379922098699635504666628604983628266887145150321675949559500541202442871654543502596309917320016979018381696846598582357012012634976760635882829236521694155557636966944550134129488176835097331278143995430337066117752122733163997422836437342524006843099433256027643013662159629816029294042619184419272782711899407068564284818202959698429220847714344601711696443867228582303576642758918890931778898429118217528351538786217617203115660859757951348658129202847127272213645838381926104106291951151189460537209398569342681157709420226837647237854145347873536297621225810646430246206125029053521803683178959094890128437799399031433467502500498193117725746543274760258459947192613341104374585558772389406391759480697556772255065307685184677405677463579144351204055073767756745637332589523470119442932254650405146457492854279830516557813981156106996915666328915480955216395566605576326714056623002099133007626178529309026060439827823919894526049129753955426751744679582565355132654866376886030471894014867812108636365077472147891402264266684998055461447328184934763482290303236663188311812665738652651987877696995622328026763916248289357134112426164537672801131818150311605930363719285524549859903838105828710072196788445258243575167486973123587833788523892579980278659605562201436109236167273763169686782361091472554844186538254693833254993347840735743910193678673046163193817422499163749846353856510505547332667748496312280293681805796414658047649158306757789558433009010539073958248833072175381930816341101298625108004523295512192984072104118182519459813524263983088063261964920886772618212018441513606392995557314805004024328821472546928345493300669310146001941755510440642959569171745991376907037807037111016810496380616954778893783299506517634442375567831705406390518573446279611307201258765815035373773886504306842567413654993689136654824757281735223435408466959280801800924019546427953609422491897075478356856774108939406472669527099844690034489437869613550172869520183729654101146759862225763746794347896719510053797586985461162051963124927759669985181007141684081918250198608869739926254400452118494535169375394037522950113222245455200701794220855203590356098461186476944952352362354477660731295408003828073385197336165383145030187565648855143136582164157801373529318519564836218313819288083519006516785375752690339701922713897248625400976483133475890085682608212475902125642832376011565528690927726530277931598769744803312791314031125925065358901073208134405174987028621368515324141658145189913718014167526134402265286113920070318313551728895869331940543079059993178269734771486765976695559511889338928095587784576635787672300836025468519919030341153930872300608881307809166032026552516699385652310276292356074812084478477914216143458802470793021694158547594073290071091989550007022505440432712023041264275899068451451363984169974795206453920391434697817753544802889934846696424303693558862860772374832602988959549671329450135399144781878370036738653926398479013960252156996369757820363656712934195495109416011224988279836551573903163274126061272763698956038911824536058025074712953698472941293288299641063466096261871761023609340221729460944683328976008858786537464751644193323884266235170946267585319219218991562081921417917142965403363064727457992624473676328109114530153769439775702220328268271372062655832494278123145189220872018039852562691765856950001914252960500550873578144524074802702087323684254094253841194957682033511466360603491339065353906501937927552463304908726849207513400656556573073583814033364551198170773342456245810163201519075661043232293017067866786492603869443102140764715951961700733277938084365467070985366731497241997314668769717778823849436469716764846270168627125274103156918582728380269678710428874071318785060276649599284722909867348610669053335708615193770945466570146632346669681361392597400362421653605131343123453894282567028551781708213473811894630025216050929265358158711662916585587989958988266561418711674635079107340716857218219982971358207576204227840088850574349003847826879551683930666594606175335324860301367592702596957394272407754181592245769784095545259343976242187962556272757188956397148165706277206703273523708996881074228176620991882693944114189720540731035022466912486245579632667254405344922235099139827263905210344757652474999144881244054217227281087099059493598878029538756958288835052113752477086850495811280381299371407066999319649307081396166534699381076190563795568634962384961327106642443544562759965700763073617225864503535872329176591670604398301662330006729848653951187424435405163777608418736814735994886634148404309222419420673362100610738034604808009142161073900232288313846254688951266459370689846694302642732868367846474997024001600430592121259242417016108242327783290193289893701387785792604463947080704935174459599049077781608765381087512323974381029633507828955714361389905575209187264172619838624249023587471936416841027158302297506961023383339245048941628413896921827781621733820559261998135986174449103810120966531438107819086716089764161059974929968316305192509448788996164394765443450639986054807210768633153420158280593570983018758309515813512590175496267895866806343138174147753749153647118306002822274826365205007736010778581754682091699429117564963491853064394706144775908214809848002451151548930706489330104475472115973259321573129512896770307349796939917490523083907714692097489211780794865153196938309474834348098484784838306444784733564010817351400574104569469350539988838787017136548837344751598476749478289898846416411856320980859806013519052055834414807604868456142800384975345729347512624335957850471341567577552462930654484460393413748732803381084255824781457946525841730639775250098493677647252713159862229163642779930716524931931307252809929718354329386770836170037340915031468813238042343357559507641614947588863555291344335744822433375097384666392173303746101064293334907512175872520728957109194126276025022249973059230511205834299044418066603213289565391595204383653883388182557099106616090085673072762902729952767321960905144838493958637641514105281624059850600661558625854139493822633141950916507261608624923701170340661008858131275626667805777713867787400299726638063620138936155107357125832364181273868507649171077708860227605882220607925415464325619085808515773371089258217661911069049640363930987921511904519020994818007313873636105505037557095421154318803957778835824921136049415548090768320974740323844794379853572615857239963302013319736157803176390807603181093937163512098138289029441624040687117619969235137634753557783575716119774175092224398741376645742077435467138302379222679467879045848914861337751911580685955881869502131145187404089732546853672203126781389918776794991777842228877325634304717592742563245848247007052938246832332851901776347761359133299477235586109143426432447414835323037755683056643246743697948884562441080146176460064157852710372733451183260452919346222751194141904315558704850515946957828108113178413137724857801169989784141902687035653881497217367917779410996592897907756631858346293039872804117109623255963934423739562347863564234158262380472356021740684307072405347479808398444297357248065600055837992187849795916761957152779136082038630137708556376487679984892420246029136905483969398614153279591405168540536399268671293187207437516517488122379085425286134585492994699880777576543019273852433366663498756452476918015661849619808251074996370731846560936670065004724307782044386833001723661284559030803320888575316780004586993651771568933740466478356003121597518556325366566740071861364832393398516217103592247459795119988864025917853583749813537784080020141090203018280086426123941849627648938970827296575592786756622729104202875032405896743589216029916693057477001723142906423805189020148310665794734649461427207083012376625628193497880729380215759720614056727075067522186027914863629699305204963209349054903568156198428035321423426228911401311571216983741009547226072445958076850320931390598407866460264475659162979309502736534201811544244270848899967161988226662272935749490781977163832842597506281593981346101246296161979353419753205784699408421143653111240046030501082428041634891463623643738378662566115443299714889230809625393197928283818857959989471046573179907892996016961477095549656735085253816299150128197454643470538332790537608700531323718928825004354108686644891311486694705113408349011501970726779823993022126064212196337840512868628302539839956140407120635862988418067758351874907408447820252781345100831776158594042583661922206106382780441125792808925518140529822770006176626380275083300569857541211058174953939511889563913005504280096669777195467352009213803482851371568646992996708211594618465026708032855915323299009969733207120595831491924643629699555619584514084346505073147445811254893071513606928017278425167591825726167271123712076133244252023945395886300588327876519755471775364937787884447724423546785597327363141806782045566377381309677096456269242412267080158038500563148272870628356892641084638482139601402033762063702850945843074234414219438395851336360258415197287069699944423856381679599747581351690960648910864748824240735621804095895851587128808166202769574966799461128756956331801494066869590720081971768702861993205758109785801574111316064458330027437346910414874473635462610796014010075058296274923828673933577757753507469094785599955744830144451672788718726291060480306853724446643640222152993505492573560597089053049524207900851001648469029398640113886236904438548132381886127734063652417372976440982894963527840517538599616568063581600208854506604233318320932027525350050302781160243337710157679333713228370904578220740157404141569160283257868566212412966238868848343963280529667141311218874922963811939346553492240004700661172341992777318101598556843910589475761460849846244097014641875302697602826178842961567420334369446665011037260847118965675789709930759895673287394608967213557595394500395897380240572037767663698878900279567414534567785232129615137671717037346848880264335513969853137574649046392334065303227588125871540706205018001462734031356959567132464331858889142819988543342331228275535010436399197339417906393870644502870349300050555928085227955796783288215260497665977872606191601950116800423720586492981415727166592111161292173848262394560384942548065381945836992710142241362049117300190212884405611832786633968422515993438955949902031422752125114308664512798068257642387043263561754548904610427260563837110876529242993349727281482027861902107879041706037325439724996946519182154016130895504564310777161243223814130836850039782395972126056340545552029933835069566459266903746080989704693633334137196067603159652541226302612820853682885972675994360347506728387767616710723057504222269693434535201226494521428365960443558221893440473408081050662858805844142011993385460544459609230455887666278741907168354592450172497407947247363317055301914672266364180449904276914717588680329732231452945668979572996266343474002004712782981474184116929798962466669785291237906045849560920987579929325810416730777441974009018116108328082578836842454014618145652022343316283557984137310104118125210012545997614022202063627031604091418414791578350000224168964370036125484655019250537569861564125714429109825299554272366694124100283765122311601749975198981231306241847615914445910901221219907636914564090402330128491178497622519318884879871984774878827551007972639185089070700351783662762183449237222803585263711291379999337457211850429248969885453467234798659845447628266999466635785391953408718549614381951724012881159419163892620984584354551661892844313568249931593185333562520021952188341709024790021033085632742103760781817109543207034818887697205836629288787144409588408375031022819208296750570879586728369884593425295475881471039412735343757404367726630413291533575343448388290231240176358139421313973166940806709279754526180018514184077327638326531353285676595855644853873423479906321429338391104047015329026634470341471646594424298322367706168942781788747007764085653926803671729464528665633770303387816632049677908285614560263485289419147440321451082823961379136451982744908619962741726507012528850651221998256550122310489041155903659082184791560595741843128658464990714018639462130229258097271870605156476077525173467215806471797488366946475859476773269618479842179996671661725846285805953954145318383970890734507377882848859390320085129819411206601069118810179994585502190836522667569585066135157768387707820386674692422501889803101051526409108953578651323125313642242598052973564663366172920970384585216778284378456428594707128732769791288434558053899906806156614970708733709161289553572916201152120946252486317602601090400656679339231734822609632499606016602869793962964981369303929307062629447521177045916206784604771831765786024793952411265069708010634919904959417813968374635185599431655139645988254125382853786960878057810746119978822383329533243411468345685035028484536062629803451748171775293616011753133681568804770362733443594849847420809370131862764559478084207505635925981304973790030815722281452868725579491280592886175085083554257768170804246869528175301218939104595176447917976923245101913699031256225101204319517369234803089121246410658875468011329737126598436349139188632247592002174324472037067494823938128978718907349023284351589722918791881874643524944696165900137558443011445332892493647014818799263260794531556799639506457870603094122450334936206098680130667613753753632653657707925884686560542372018543585151394453538218508368745363575741455572780013852578894851750485997930952501254164137890253553821820945982390217545815731974029834670153782261259955779510701856080330316614482653769399600005170511890117687276102514828032578993739185495965564434929878622744018876057805482234546125218094489535833911401369800990450587521004443246897225101698118042194188085421840824872058984877590911624609743876259548286853022404795375342826837063497862477355202316628336566179921950396364059282881779175138961246546273594731210120478329035782188819174975024498337726347744122764121553085466736394310864320324484188153540562084575718925947569737223743974150481341375009941807875454486915248740699801247007852209424239373336936137210301529638984387794056059833083381161505757819925858848130706359535979842560118401138863962829594430454346440778705933012335317709120448611166090135226444064324654720851667867292927077606454489701740619610949281405861349259226865639094680412348095203520618434221065227086516948254540642968189764085774884360721846938799779375642342308281630206572082460565512676557920940780721055228065167240796875058070148730279046881261392018528146702428730637952946751587734280212681884391768324525746432514754627377949227905027480607943114702694616637568016000682593422973769322300683819531876263345742280285188249519626456385456043589660325596432592525908086521482416618605341098981657760339719825230670760168135642354240382938997555154414275066535102937205239939383298695687772264390815534460619673046751768715634624900727071556239435071251820638066689124680679026745886522513549616521100755644519872676589181025683972156383059214987084173461976417949155386826497966828273213799007431878362847609344516194838473590466463269127199142687008309922726167937475505634318071734912318687663164585124056333356500129671632841693319457150549176437991228928787264584389083809130425002408027152943921224495113384775707295420907927931809988551300145653165614725564064745145046632271584814337630179238083733231282515005555443725730288761389202691632471293572972414891341520662749167742072337928557150568551113589306778637340176423152465279990820786321171109597923434698324362382545252161264115092800963329522267959396762342045832451080762886811667519613807490283593573813191918783802512068125420637697281423897338468053430050918240543609000261280277666092193189972987189651584681550596094052382409810177575232117207415885505476315862359417786884704618917706439441637341037717767723942396210875800537304619219414565103030676757953783884960025900500774992888725979117245641986369894886614181788772136523905577403583002962261003347887604241084239241849442056228525696491475694641886439746442970033493739710576929465932415847548866942237673084455359212769160590038260246209328714997554678943203489584933088450120060992180838270446727342871575130118716211539209167371661157403958278685527663771167946859313677366723486485257549820622635865163587863384561747172309132558996459620289428119771940425099421870770297759847873912161568567953744821712712048545290465613032124181240949726170527010759230702089271442097981106711646173217839040845990187057299273837716115819796469379170232118418907634410367043494814628844070626907437414036471306801652744418028276202376613031650461605340166573881623932853314137081572871622456476246360680572920374266237517831963322478760924132991912984540247674627673163178085136694311115325308094070331496193823423335050132606465578640129627148992728250239991038729017422647303086934344035044445950935545181313129418707066560552390547054762075206501883387126342249747295161597507420796303554281640303350692319639296466863252108806293694798948496426366107716022712058483864975103745825544334317026601848352974146443947420094242427638428215149637926465503116851526239780901752431352054832720005625111227213711153935254722854482731116076302004657872498293684341989435645526895656143338277025571633897661383765422571454131831626517064024211014885633546073762414624842589433831702286581097950420818768888128013008548589121221516374832769389625814395816680763834213257225305731558041483374935971701496410275851423368812877874287620321798086265287801424816813747322160717049112689777712671648030044038950959574972814881210563578763980277442726668019927701021689077169730973877219626267130029532234355789502628531716778549200425214462514510972736289208191575545623523266879176947628640824581041176208745902815434483207185109856273066904436785144358459583075299614779359015687648515674754193931097822821817564758710109023538382668887734450728442550155669337243949004449715138758054808647891994279181510017826963600434583337220395520033125446431111764428726533494351296312978339680437100890490788670156530655391438010008074411557805049623272869164254818661293766879739661130534994465173739621529810369030398947832017367643877404646462284522833454115597427471610504453369270196115112871257547057845063470400055167777501355810919362013620339683050286518853077982510073283185749161666608464330372539312167782066262986564733045736285437068371496568224449500312152112379242652825385825301229694032337405452650654426215102633264061067422911735251336167181115850648106303474560313814940541406453548974551988269225475422810733964437895565228609740449903165757703096408170628461283687231691174548641942562968801488457748267641619127869855911526121003401633291622591214558149591434385063330838960641882456594222647152832532179933701562681864413593328218840182782303655277467212404842111404626298273115103088142488214088706923559586147762953089635748420127652246588534579651016145885406341063102882639803708872153682778637605674035746188421048824700553224897794728309976507305448057117613499916934864263657302479220577876742810235314380434909677601198662388935941836429992284179380225087368829520559299440844616494307286720342345887218009201606312795592922029974803534124033063847053149687250587832595760221848944198554747185622468348427822981817170910814340262651210762946374975020352392074479775791497282879867436596426835492093425681187884870728250134519425927071123635864973326150633598604714671160277934707036592716291115230540957559290638300064357218428904040296358140727685827422087720574035005330270272730718030795132914687732427904961802996003103622633621028977400473726064154022910750056067808184189064166922590700888738435063203752565672695863763139650383364749087808401614828652646555986594876054367782990512077564328112851438388515172986815600969815146151004355481142439422094042944360705276435777031754095628615122227702051869510869940611791700021360310094816295093361687317580217537416848946183113756513241481993289438017062254005858893815469114760690779275656290033234824086184272752159145598004697561366032443457192675269387579853972905573364343022121108422184100950493568198442361794774464373973389916489015324593277291665439385807048080632215411394967754315364013237668892743310925828957260373348252647477577060168755242762697635051168380053033059068934173727952591474551342379796317969816134874265710960931626653365136352378998748159029735645738814887261595442592636672534510665073267110862991302497538266604749715490143302084998907726282231020229179312322520996167051289986400703100180326017080480861680585156631505047450684855330366864992693361763924318410456397901530741203017159174483110202678842462462922148232253036801286904306637594433690606277650556700853852814595442703184236878904869048634748204736727082740465278024190782622103459381287558724781612668327849488287921636870026851961673953353031302927415343394056452352510299255750096693805228951319599655730603075919753346548902391778932499223715059374156416803084436331772890874750572284918733751994254809287373684255353319904716018269978157244010562223007272913059694688541292055037261762248681199839648341965790506437568830462974700554763012290846644152622583779947666978745096168681136313047067436197572217130139384690368830807870518936851354563301982147581646204836184296262654255913096150028087147698412244614979730882595670192046651532527251656963188186291698073124807569312252524476851777335753507565032339895865922569783936067210332282983792758339997502634414000657271571108722015161153085106512707034695880259903213922094802168736274909792695352954438810343011318663433786746332077891742731131605574242184401606860023886130298577287640388445860348729643094890747643074366787009308500649894825410341505710118688688968158071832381258505399006589024600606578185460780363377333366602297259128415036639489893515441936340296305097264145973304068483408294929662666631428854600327357041241534850018304280523396667026815597654023323219347278425354931394019566928195852868641229969013681507326244471911066814903153193479738756261764978322805789306702717587757052640226146524385068603436797261712334081103860340190540459040940830942649451465163500871433121710907642115717812345163435167555262631206525548300148458827183175524482781014973759078421803246575193998066351634133391187230526438582225481080648571253163449864694069150679506377860390784217239238438380420824829210103532775920012182718084212480985187869003377382205973894946322035949595524987598965630922359322745192003911217440441232172771324222996713900217339770941400142869808841163666909763315575957255936956140880185250824395153126536525058970144564205172763800167284823770966202006673007397884100317051988378409309404796066741071123820920464845570754590101300400875627870141023787808602529512651276521213186529670191019746126032883057035794920105380515526475391640300398635448137090645467050231099973244220728401866688590174741893050732821321759334191095196505496058642145550631578032088451828570116923580468653038813129073479628638874546580829466486362618812659928318418488279504893282995379993072898473412047807067800620976535064312700580079525940914262296501021134502341655869213685960661473485798267925397598444800951150919050936215877666264900309775069362384607188620202196076424969410377476416131665584711523454216873658242114803178880706860455644495902262769146130471957414794129722331601663316377914897239514271335337501958059592481939023857402901154910000768797877425050507505389249079927647377116201067386827731146136297682358724411987911917957598218093479343810386345139711455106792433014394256731082625119611893747795264992429188546499811302363991490523472724395587801054262419204733612432759122058720427690228420712087840155923448212180444569798523389599679029174077513376334098796908949104682809796985484017941441828676670985700587569743465761799011618870769463323055880008937562107325599073090556186493252644831074165695708528082733867109520551904410964103942012176051081412651891635222590938734913829579853512247196366798798451128471666102704579679545309114477720339791053807077343044442620573561666348700022102321741286621941804358199172908677507173109782930920526132699870659061538591234176210621541747575682896245876539765561447602503101313381123202967651629676545317689272315912391151937500123877512886252633195103866094360734030594179249132288839903975357035069093099251433193784214746561182652575350653326684373155721724977490485923219519527267766015571210097409377417535503999477811298563911000047005483662524735960746825714554519618799904553572378805809930876069742404695488958093354157374305860416215411862926472604004168512773965342264719557352937554223090577748794390871893340656972055139204751242333398992025620524120687701781831843509996936573529974762164142691247983598671506371160620029214302484593705089549133541812838233646433604745778858696448842030986725253290076021060446555766980484725537944762068302221931627309857007357588440886907809662903529155836177730529147518732142170908782961362240365190653197434931133336917589365969381222540286096959523796299823031345468095163640232845276200520446974736995732099864799632734126648396544283058609390898775747560759992962765731956951359148106869435366990117657363487504661630259657056352122417913021612850525961507877922668284768141056050987930898846515610082615185053007136867964178893640593830879505229334479775648981080194599068904918478621682863519876644794249343463263918397498699067465440489048509981231013631210948568271623374849154973499171614327884318641763762106568206050396304343927702644074476298167128345475476216736644591791204895557222805675247587779836997844254995790501998518978399515987755090768616640927399930746559304801927317742697826416904005810097068050526207731733221393130682901198192221856511763907457678921440903601998287212853631118002021387500696463241723383466865170653103842831233786166076944380247176845753305675495674127030447395604001592624081764661233597055845233723714475419108343037992227047553559112539529160844006201658800645222077507728302134994663880532626511188463684473349671416286807986272397822586527677814613010844119559529511494192508257545173302643764781771302544871021407234807230419002985848864920491791472337744971565839524639125779618010600675056777217233078541915432923972616582058834384086815617337373047865734277951183114939209420018947811842191618224907167385570756814268710527146003370857221375451756998551700519130518904729909270687301390699713551000828692179641204858391248883404772379859299579878166877800369600625729581292125236295818898809473727250364596025865611339513483856523496988568505901523515946805661153972743976089641381521727937811764598421436896660741140538586649240658529074524497513334610225368145049397917780258984691305782463281438013661527418070848775419363249938380584392845672449549060420903276721331219165741397144250881764509615373133864710285815709619210161374235727801508917017739333078173255984836474065773348623632701378603584900828279074563705272329839900356808890406742588544677463357755441492903446897194108272085674567568268870248465762832165777308037273622843661170540633110748424420162631588044458302046538851279180484477298055918929342519781096339098092555316450706083004203352346643341266558602962896740096339946741027357788172505218862752486781117127289092997948996162608774206508022673191164946357004634690620129821154836186233591099005580959930872044053457071824448209623269861674579580861832559864464909127787281475166596828212649884085787613780920062618448963088053248474135457501697582624921335271732401049395301593908128503972003740004183680991411122499011204378653224587155162194947930710897805042688425269161036680610185038685764934456879376139904470064120674940965924259507258042080100064950836371043028434954835962599717353222563975675514374200363537155420210825028735575826706188583394799578855005354332169572288258119922768143993821250284763529902295768266928478369947358486709687368355300495437772559247775816272443900021869975207372364721981858146703669360488589641676710040219519252189701129877906331679142820436610255680537465185458465078104829189760499917555967830947896354252714146277626404393477481701844221553886980412340310263875926056236995223080979309021128083363567998880729172156891014213144316287760550983280265147647364048980807167918197114554497667354460942421469112530401829054845468528070064546338704251998206782647040889261572985735953265214505568806568226957670689186490974715574823254503489902213458396177301751290113946736510879396000153480949205955275122012148337432168728802236031273708087145224913761153095259435329541718752674986577476661756276350634216004254711902487074249069809331922693035820256364675730925396283986259925944431328075163265367224396139683976093583232137279153142737181818972925141751324351856976154859045769779904344302649416864991180689855215513137807494350596781592625694788849368438202166499674852315191952890979766535923700317647725856841735423914694671506165532720046298638130151743427983183828227279698882128947936995252865931535859567895729000156313918317166797430014391529552457278148922808297735445394018951654231284399725849870661386503354111804515380206687647376382511655183014439743714315322888740202492900077221423843758543324591125770938205688856795653142446401583057471407216619994152174887094827567016768235496218589003712816208058850258655848541123842841721897700754155048801108812766714003601973137651422041239837359893557526547627691117781935634495301195899363833501956238960788577584906862689191197155194515347357840923997368623084488547588361146258404532248610119953133797185710773787390478258922586004181018459707902954264205717056688732934178676043880499887700055604703567315866701595208565521547965375267961151758376951239286217044539765597527862761421804173756122415592903179652631390845105058003036746796301478252898503171935387652576174264399900852291363385435021397377303775302523094118514898722859805662212602231552890886161550174721469135362679288840825117417912015575146654962607119227570821254313520536729669248843224306663748038869758256722952560543142812495888847354447911433680705685520648771553341642756514815374015224675301414823617955735452024027231293325740995593667763058378767655337904474171031979152870063399374527244821542278024266939956989554827544343255803972168864452735319448841076736565765213628540636995436899531168408436098614954911792322428529686471647904529420263444569391635418209828076841132727600496397944518611192312538377917896768290844456473369726611885021560945296065445115654963210505287005443838194591115898482315465942341572079170115262796233723806940531225879031527599508337248064496178104218054580694350721227009844077194246397207813014232319689521219820712930758361067880473818199404603323684974513738535305318639715258310268358375842714483580651735381720333290997110752019830101544735830260701251629400681710287020396094859529545940673946924431368191954901725980442500119655741711283964412448044011252904447873415038673055141351369636898044223295974014676711857316572401448322175695419258127765048883433077811254108607670477018500769767890625102844911169925768930700809153715511703554958056639165102637304614907152763445551756272884966592131885604108448643168400914699923150077750061686503630971993658700959242757516833579295670338179479863817543272660579660992160140993050378331623949212450294751091423592375887453927679788372884096112243643701663512137782775879622556201012971138743276132228561316049799323468600499013271828135812384669252340862475598200599725529741491669482877349342767425759039427604119820454677954453004474609526371924616578369023526068102784381960788943811235074135170092801860202165662729956545519018090135651751470267177499141307404632253515536054449743600925579609795887440925734235540407002489019315824200172828324414625323930670554595502298762596244770582123543207122928488855086248826974492020209175805989349482649321936864560970621319363433395073899719148923970117333988684832157308300419468031148619388461615780452435803954729746911113847874454564541889564420414853231585940551597518371969835478456669522242679148128644855282752288378659097241583188107863985579642272495116079907211102134089702854188934596568256060376539204571284817196995587563574740846999060903481477198656992224457278370370630142786623809432165696346434158990130415983225504705086050758892112076398361554571917711023536926197006444534674110557064835776529442797391467609409240203910318397272565945753614251400249942318293024641387765476260779277173797955893956218293714805873588472468300337503046939665292760283754455449588576623009745030544145752642997687819380953079825285604317395959655752257850171639702121337625230463492431462523463117384194236423748820863241907012210909513571914565027910345967567262802951235089892514982159914993950649533557262493002671722859503686059995789103124920824344166330054800066343914761566098372330383676639480293166718777169149301153673543511530215492411693613922706798317043263195198014272433861918154891666709580684742966672222636394666502282252040521584997716790529380815310872224756125851284843365049620236880568623009859018246110578741957508670044560256264580336211425820489367814443244099008831073794117588942528056749156733522875686716134103897026757300126295059209409785382821265269355532479474876212955047597273067008826766389225615528720829154609825343904790821704022147330948665815429410690951585898794783307049316412218420487148120705142814458418056445110251173107419261427875060634331824479906788798665980421949796230446440666918722687811457360971012393306203807934694044262108774350451941381928649350148037897844640414728208409506229762485475415559181103141548109255024987262098864831405938905137907452324624421910140229446712835267655757290347942786364793374287511506913462549041072117014963923306742796086234401674020622720482010627045980774442803878360533490576672685898165051063636053566253641031053481422949070667176443321789598668215551579991372322430527290474039282169284143046509967821842828634226074051456669486758631325256322899950938941031167221826990329540317843799945385360977579196430355460999294403560888936577168211905479938311821817975508966341326563953683195583616569292309123552409977890601388257618744566864696632055467178328649023761247206158816928731585661775841432978038786496690230708105845757424860350513537001040168088223589457307205488629582989060373830618671239596594261980344272537767414192281176466530069311960089907510173128857980862383709611840349230944428320588025664052748012735234284273554757443306753187908292024658270097084920462227572432372637901402616261437003182750948156867112828404104344696019310315517935427330332327887219880077860002432041384247653799330837471861157755128489108990155515040055864756264279884510046129517738007247555013700740711722268867017008119188079272696445011942579008909438078145940975532462723617377564021898287878208196004228984606457636622741934703154521606904182783873172250874015966476782380909512955281306074388975978729224214081572041182954628069289501766822753532094257235530694930532877339671895512752378305850891681897267094406168104840618013951357352735702573459214534399958811304198938725106256821106536267896934371107556385997946375020476474934545483440349719499697002447488193662305072088901378888579531968126827614038864137351813491237093132339735556335807951858520506564158443735237867685498768326982793016298192326605292305127675922792775850350305276522132233192673710836163596281158705250937898231889479499209969585867436299291855578890557010747495510237639478666782893158165307960533198997750145539482447141853740577976307433747434205644574398686930152389931917732181903382686774902513996772858035003624853848644118215868886358294640847803808016003944748938035282623431826932704752421706864487161048534161491103336396750409050191361411312982951691334161647298824158780731552252674361917786946952730479219401755191236813531175601387497093270833078012826670231940534054256370391975590751009807995438753464644256681236458740561365808838972811643834972253398001541537226269659110215849211617850310225521215624788742065985073036613955104619016680848754399507097654957203304285528226978854686138285563624952738541460358017386075831618599202824174893123253063273344959328117123119549221053575447916821462141895088944057171643568154164759606891298023536831041845120176095366694472091457520303140426151046444750522846036289661329200749709312267579065162105717839069014445470447098719914297663191434131530216244881256133810157989785052707268899888904356249311463822858184153299543230428740150797676348200758432939421809305672498321434793788762228626765322964325107567258993475145999089235412946961736107381497201943696949509925522597182834250573517928448256138088440436561505312507319755403469658250113105895988184476318232977362120965336741948678936688215706087812937851879688209645292750280929071790988801531938251562962917316192014966645733297781830065847662220673037824493845890956722285322949656677754732131819486688856314024679663504984493464899207765768539451063062375238996697079110183533510920085295957234341912110448325106401502683285306592568871452071083506443719902763527527577069990730277823971280393603961141473432603788421898670940681714494852703970633179802436026010622472215259729590298832319336342803620281836559646388251003301451558420954240616827951310943904279397080488522429784242940476926298984156655199099552017024817569679983015219039380984766608868913033034127074146091690399407169671236046124043230494533079290433535020396985263162736037291957233166099335833100863891934682256429339069698846842121858724326567924798006028640430844637007485578023948007697288802228550052786290687687154946478787017269237724793448304192453732565440081417500283035455847186894319575490037659793032256649477435216624303626831787405849697524138172608286451547135471547473496802090523784421260048383814662216422293605975909157090297198351566518077723955904401735807480051382367688901328651264925371352270034999388035999230976061909166437530919182890546333608140460851601271522299265559360960630646602217640331670934888683340186807822598298218765454280524436303479828889890976199988554772599682928350626367243418471590373366115633551280808564068362456835776131728286773098565971490016589374006882072869849854282455999441894120742228962458993229204729572374149629698698841349547264977081086377634894974702653743721921298007019626134415060752256347254771196975649801617977739787128327324105366556425888807413798466826309879019079882856703087201196995639749949104903671062810008825247878981239172787608716636482695417819570413403101336804858952265412450433037325065465110409416671753269890368463643483078956875939324491165027208688402292629372876364597673616326913645394088912424224736287737776903413629458894029920674780852005622639351694216214908329475010140796297365743264243802456693560343711128974394257358494990144477037520407412687868742950559888032106501265443857079353328089455860122594328838306479845970834800693235950691503668172894041191656239537311284271339765025404721168750116838825392142207209740809533814248608212267331944043873006874967817420911522365394699048421055584705133616204504419510328352590688922529465142501459457509067038016909443214753373653086426852157684378884416757292485115223861811934462042522108332498216157821579343609991095034040401587449840638955792322997534918413821097540098951582899978246126696281674017662664057409055850688483277792836441593906080727210110020588416297005092373523135125488825014982416074675598466568112277728348322522228878559269915281541041295045926084882060414988099277555294246828465725822336642077656510241438193069453956013342927497786053342101737461621282334115104829779262845674265236338746470793162999676575311848166493093793801687872399817422713677574198562900066474662088765893179542551013457910302052902837490025433759328214670602736849827549358664720054661068374703591640568792574508190580901604667980886723623706879974165944056840830247977350977116233210953265991788087232806937014395372002952687437366901583596746334873992603969777381573674462827356252292892233317184125235108067735808736470809143967883518809310479227044286815050643628679874735636660681925152165207375966912845030620926946614951204033470866039729970935637895723798740566091763691954760093172474620393688579151333855461558768983213787673490982598037030095048106651437630858542666784889206788135948846261883992592157079573415320916206200603861846686205527266102650618981764138751984318342929993811828982972498987739672651124532897345205512309520212679519409808014794136315894212030619397557954441253851807204175976029931456969279924419353135189470899820320650228610153702121803884879669251700585306200847777728929986063476131711456629459600565672297437185413413455427285597375057586471519226413445158920020582876369136140695702113493221847897335280897006209776351094031717797018587423482985307496327255022688639120359255991917480076428235019530369379138213368488697064345535298218137589110656116002236661225493921919790196537209266753644460982810657161077171858241079333329903573790325914178453643755291589670306254245498401570563949431813153625830193948404614928665212680616268500885950351613720268853204517043336385402205097278775356418309555003329187102124982312657930833776826304527479121591870353472543523538889760426301020905004053965259205529214449462777745379252101758857402114841408064781149040309353156105214135716961376196719723579463148358854544879512647841927250859073873087349894852054378559312060449728243973934257175185590226716586668809299720019219042816648713491150644150947662981535167332171489897116280237854159989553301162916126942619121622417237920126707126619205988261778925608115107133517963715950851092314455519591933707187776610772349804184583656198864205285300634312440556336952191323177331959457603272020272986169422971698024204664262930656471461549883746602636277951846666813461566777459935239726491768785910412672577041430320726744939199356472676190246255970692168446930371611332389154683926241637289893558845923363687512370864972237532497616581263546494178017903486936671635830133987541867909804510010519274981874226200484730450789172070315915303893961761761684269026328198843470102642087332592906184041880389984498465299206804305986416616555908791775360079212718900720472947154524221267107674518189417174986393545031081234261986515725386764699967952355545946790309287129697890424644825656248038092134388821874280577406114279037754079185444808290290805133510804152187158989541099212415278685650788192519445305075963584828319659506702511819618336561471186156493551260167978186933108996725505863355213542940262068985127004954565958718061568478935630226529965732695920111123709084742620174247831985027760175381073531335565777099062457981605986463701554537421165344220806671053494329757253237109013998605531058140585880221627180180496509858476562647456360959855963442169534901707674931322363461778350190773743475898524508718799698118771746480750752991625104391217991587473000142262704031919652250265601518492407711331580936234325513095309609527104954321653869948609804635279224089866631581001620862530795947630696137863589994279501929985432037673823717777038744339898455499583353732060503998728566462976573361506570695732846985681705704134725211230628166593429710557105799398422326656843455143438336995810290974245675697144305569688061728508916737769804572991729406183644366838485032721026033397760508673790472377587095308723252621553959448362835996067361032951085794602306680824373377203292196342311767146365891667279202042509487430211276499226496953934781301135256014786055633202164075192345227899101075861213488186769536359530811653425180908746648392744886214510167075850748462004894481088312788574076416013942530869792010803581781535216980645761432071768719697202953425339524688528338840979981918849477237560073252674531322790857508775019458575832418337780914482183408834685547395959218178213366257220034506800992438051111316434899679785018675811978924928120264886078689692205102460786774013174283752313324896668964763473693541635269182374466659656925423160315469431692423741479354554027507721475983930971725346361996216416640443849475661343984316109915966026001039642666950184486467113483255270384555806083143888086370592285579050075245622987659267510529885031782795034369376573410378598354107359146196829639068233428060854848280930936929132043683670266684837829149304377607372195209366686140196940732344198494913595359608266060557933252686215020767927327723888890328513946516650412295066694434056635683678828008785232939968086070550322060711231225069168554983350890578108490416374085861577269569640946284404726261557733211617424715133543679955137156570833764958870164172760121075499840708059120614844555449965741352704144504287644419767403482278497365060036318315875312133259943797079373087425856147831967207352593535191214405404245298826799750677843774330490520544695056376446359776585881923585281802616817130161038705903365310433471574505487536118141252009004608604641538311048276970552068143209926036011122839069554344747828414665578943984495686669939024461484672283744548542079791114353073943012689092412967910919259058882662323017702282308749827375929635818313983061821217711546415903691599623043496116622702938907570062278321277258560779009937923851919140454053231077814534590784044552137860946590810989462763084948293434591958733325207344687943739374637075301782102734422296856841777713823845376762577090130710515808663375622734558732261964300420788939616092871901321401297757220251881809631955201404130255966247158513745437429109672858444227621333585751709656115759353896747652729266527776898038660408494402181220986219294445519213538890478135251797107352298186542652442756627491964750310403388056998615471858340471141638572280175318221919207617833222017830381750363691602617370668160000025112021019071474431842417213385536841611583798356511833317279426215260086142953554010012427409774247363202966828952727524664203842495448783300002893707997205803159662520319500571781748135712056897220973195677621701311655549171110804281407306498194098465654895806908868496999016246039857848594083161020283750454067721327563655192652341242366816580051387287033264073423144007907486163082852417357640272329791753527615049409682641050323882973040953450432607810674918767466902201166983305925525403848424270351518048118075011458681326008345447577399827074146330578077026292977507146360553397015171943868527237974813578051125427881900911668302255619596232862412266020825500474267783700176560012291036004890437754050558425491888582346261650014890656173211468855324699718826096534392281747330293634101987524954462257109340084848731070889664058380011471787922543790194303154414258258843167413761940702184699338548041424201120174259539085753012184320610544698102659388443547208002132012651787390197457210803400298406271096886722056003355252495993714146219054231455942422642138158487082137465505647682414686119035670126684503616754284072470133281315116746560529175472831468928318471282695097469563150664219872587557926478694742564388612788014789409234054790198634631106361380966552442455967947417627185781743451041954122330922248364424669421835795603825307890417983590392030285180786360615023461030025147805418058738702170015467359079479692016232388656599736415745439835896973691296717212966357113198242378679601306330775206047474488248578175240074057049352683147415425401293907996270806961258451043096691628284301868311399598522909080562123557222092148836200892754849789189602235172945987254277912460139796388710124797261261581149160681408592880760461988940011545776922635490039042163962702584853530604697470937593125246348157491762690915988096326818829500550969692474221489145419197802465428088373261620377715230870123349762342774817999769508648563979231905366917895679391420033910481553527024553161226970460277875334591308345473517155465015063805101492617233549702893740339363072308957642029122357917885870640466401539844256611825418750028062920342864461563077560361446226946943338764900156007134013237234823588902249966077517092277585987331838105464862001812193496107688613693516329547015187737658262045672208422779801094228732952628033824668994655389493020875072577266607215868531133262404456397677434548395137718873051418870336596956888179242219290660264704228638818930209052530424834401624114913171899024245993678242545218525511642394677902893685285278644554355791737384668655377938801428503051470493310231388309106401112898368867041732869023516653515001881248403671898358000469260984949773054142286737479767986117604316979532241413162241734814047768283946226665289523410506592095567701147971587264855587209227705147821746549164860324041679885899600876737173705998070071652328454474270845428241902552443785521712099688068513708370984643501496408959155263163355530976851872421431668887642362872453326857483185328598785638942829496154991065939610101471745985640161031903069530040974282654561365872847928753420828701126555738460395259414205451180914705370739310798845610433343724838065020313537421183095410186969011654166175540943244510715734786609259090949394252124146232197334189048124607386375464860686511831837474471837375879787407697917409474142273831523712061726469702361969529686115105559041771850764803152994224735939480545159326953292679995658022131171232685011864599025811160692465075415923916833392581714311220631970526689593860581372487458181840022013481379329357043240553378172961910360769630869912217978669351113024726011044551057177883894001957477422414482532626192118798466029526433062152950654369625744888842815567622481386348020465888472665505019034503741959026959838481044827088752324920572792739880272941647208179835151408396305802908261993324043068167034276673050260648773590550745740608942375877971536823307548289391671019494986192927227724742961498332147382459172884109159088949205675027405654898574095861612378362068388837309602318618645940362462418281077562734347412842080768556298868231929086706209271135222522899783303418181607538272863006287096038052692888457179633720657689237809218787146963392490482068634975375378507773201435664496283193825097054870786509232616049191370034194217678369744392536782905661453606618986874248829624986088694944232559444622693223406807790507400695322134449810481034913370149894793928827954318327616947420104580599219073968877011440520367198598664130872804494385972739643423217837841770929543224479628191518315110686597995263007720852863192873790670530202002664748726163378462147492905296009904866856740996357202251775199350583578059249749764832885519984368773856681913082729645863491702312844614842420342849192028292755855318222529308267209119729084681309991383824895757075039555296622142496995459822724833484224477589417702802705007007714686714936018113693543531494510383144022253395968084377719803497623800375512637453773066605172455869581819349926165231111273971287975980193215581550109283062659067528490801992598391325794558331904595443680024804946520700615059660645549199297533274453553884846405302649477287284798126522252377659693271663724091867329847484456482650651308032010865385132456996195934930108411585728337708311913920780631172890478794817175029913108198390739124311445220881420135949652354279016871629594375338666050265001264202543248345579922663737011644126928367701656579876671621992081399142846740931865844760450780136794067030492155049116779193245233670529971506772699632825579398765044754274918274508360943341563865892843680937106052216440695276194507143498098360650376431715443667103780703505978852944498199517377647944225498481980074607906758863676108385487107026081115126802991557884928066173811543104438424664479737083799311080977848435432230456892550674668335274066963456493307049578628371145344294923650189293284680676448905617462589471435418373342701086646325534783582601881206027946136524165226949678731371137414546145099124967204292855318858106189369892955154690297193047276609461618745089092868996487848113006213680673454494717497733924958109264396335792719744007697494759020148694304500752773155419506301378724533157630567311803567045936221161145747735461297722944819465778460048704613847820351051611212443228766767609662377363419804347868912816005493395583247830998211433842401274261729458530367911040592378497371360336475279229949835775438886126951970597746702244840293504777726875216159365804133801671640341315199810131949343912044423441888290960957442673377834003510713911555084436706411321297880697392428039046554766166148021673506882625789273885943601454998613497141518036777440072931067897308452540877373704261146531282796581685349686571990355157999922688671333203896498828279638159843604316361861008755889495768328550938166362789594398608442255116590508154020993746378640014391320008980376481418892521428868203958917709373051300057561369632185019410612762782034870856026380520879429289551001638074944020975601434326890823323176080745810653859060298617324545187147093068123260594127656911029789441221290796288507409794090603566601329422920123260316371287382912582779085535713703608452853952653064614294829367426378107995818332011619560017794913573305893141213077208112841767851425924197633276063025422201054904537041864776839913887815803152980892661119301232463063428168720181270080151717734563624773676914438683339582542705020638222486406888347074227714871633712785839734842003726915913312022432907085882855444370316799809486808723033477556535712022658063919518912009770625739974184655916927647853821542206950924622292847348158776408380475677800490887686522803918322846486306970704456537804976675492873959091049385977582793630995510540818092980444454017421218480945485863290445153876693097268220893030279113792178999178763460924384099643257931699148128864315218483738030270799828751905497953773065742765473012788048783150251934154358789336480595284540681204536471707936746912083525655008473606934523421662330856899771081814752892944805778498245758339720834046257190803474476210940815211044975887412089994978264708978453275714012750917887914685036682374202554338445081644012592949744686890290958278687970270457915595796634999487481776447967821734794579111830109076652219200447242254531669046273771609892028454777325458512476659228621173211299831494832104465363389888163577442773593111853985043138739839351925649918564538440620209512419894919771955671850355703980413311691439481525744802530316218187146254683859427366235522189464716426388414705602171256169660012026004725000308148704069361788849923097230549791354043125252203689545947693771190936506042138690285970927174564906289608013706160400967973840213085747625935403056937012613846515652887184891231362784385014471052223025520256456994805388754125647228873723032445932833450755740841206941058777070253645528819585953816402041815276126569779428482809183719559290988430624191183166151317569818787294074052301982623558979866999378038789812050271308259990293833240907249213719355039723466132608881680278915687060253127703703721223425117332835425316233451516152188829581038161119464114932274451693899851359342787093672938987931628410162301656354491476985802455855272521139907124100434749342226404851880347350167131515792287203713328979279946223508747148321775905007609850710133735883093538223462410238090433171653074309780282537919835382766555994945353536375622905877672718232677230607633430473568995490820631200996754549699566323348351435949558976727633810109436925931789434563360643437512066002255354332218417958361753951317761989626358503748341558168452781283610566955207279939611551076718313445885712821043346098919902087774696369139256519187243822430607296470153880960388375866322857594227221549764582279869468724185632781478290130229602840903545004353065877713336519985855443064454436795803701038324450532935303133408488083959075116196970973086154074257408458926199604431519416409755354101546071101257476736666410705179665171060003011735992293111461415303608062744273701799514199237022273849050575876975568070928016730007201275447224089561547051964204842873514042933760726541708471881661405687878718573252930874899415906480719850903286636195427530247935206713660447043650498975585576884289119269052524315351882920303359051020118236244445547273720627423529295998113918841840690557362000341838324329634366083089500435020738367108326248340727544905206015846115401528888102838212861328950636909167965229912681268629033991972757676586230629766497401768737883987618659872853086559693056962072838585835847198709292337749213253199590845607653331546942601404587138827271701505813531779321989179669992793844248408964284093038609733117434346647145292086366890213950795969295096659081116712881791995331078385721005612967212482513139925006240705989090922620818234525931821206255589097423347028013966475248116789542181998729928761600789664063499031435883269769920261908967090510997840715289739316975342313619041931506686560465273288042472432403315349195305805379300640075199918115081687123132636892799294870089281474181096554730577742523623947583617669739483769674440173455795062243049193249639462362069293638408104121251630881398723095117341174636017089668554667379175446580852760480709485322760489904609567250112807183709830648967954037260403895742526484155358248913293381777693202026624305835156586545519417557369798646916965965177249726420787534311794953382265321396868064281700385207171173466052738109752198965542736508940769391720160667045510716529096673763953951612397700832507431734262500133549729979439371966393535272340698552329591027331094441295136140293886919338291612335029298072262509560665456278419396698447517381917560143551816149842136060603221445294427709388296350043384418130053063847859734773175070794027202176987407765148438360845355793473977679630374845213505823338870874850992462945635287232636226193081649667764676297674870561625412915855368263091053237610857290064232737253011221675709870840146346914354179911214551872590664192702628175407822340565739660604328235004025817076305001045904875742452651922072876277812358272435308166553584591118529174571797786623175168703251368836797169238552296080110783319490530505578629411207601584292764637468597390426595267154925359823853305671141623126705925269949408411338169403988358122365506529338216294249210147598253046577527650872140992798757354059780156018110903592905698661769834755432316315066436474112559471516683156079976149576404431239208819647872253704856682606194548676767254899998754524994741425036028241190819358863014950041420810395898513273908999404542241334798070241488115890110003562175883127600887049786983918175854797130452661001886877005343296708017703683820762827763406552958255418138581257411491166722249177529761098562196132289720352147316867767530896127379911317444648816276002252354891236154481942116771714478927577459758065335378250606552861012766210161515843306670402278744631568641202560587219438581859497238081625642224624237793592593213166001673491367278094158827591622066055359314370276314682706816093090275752578735251715060006416918005457672599940696574583861192155625201821763168544101338673290877108740806501422255746790323986779054118875017043289377330987537114423736289751193239168980913919809750874825792783239782134520760095012255226827569293468475117049159544730233426240412509274927378345947175149944922920585257227034406044145197880453281751612486562171810771751720680331035909427821285604506443452858696415164896865078836718231678510326986933224895960985248271941444704531746994430963094434323743029619447363856191548139953614425497883177341475346198434961662805724506575574498017404413576012761119508376631168009835034214595814902198162428354718912684562908200858667564078915298804349285921266191919339585640956839616793311125355387011929384559620946222574877398058907307230916260615531802370732179584865610845644969142127844527204556325872147990422817812394712455228519322954336232580875371930544404639728918679888213733837629081293930509986336393328131201029782516404392163695004183261358711750670177300109624777001856715647289820735085796827160161845620702815196829122839264653598777796533368272082176143963332166261072943153137272521309257929572551784007862156695862224151596540162923456053176231400682404126816624738734908574548745819570305696505333846254431421530873011302960837108294506410398365497197311969335232833229825811489985126279953126842558708701311267495177353778420023500747741759785126460278622739391481379739202206905615172324933814656101941336052516965960341717043871979337931193833831335221859439165567374487157353081116420635342285752916284704455235343008697358070037460986189278802772755209985362919484740244824276183161415993362333885303418168617616829991094527689901782909781247067607891721434352167214695767886937759811291078304446147113558548533146362814470914656357634865502978828354973839668214275578796959976392865832123207270613254911632360619197329632049751479430721858185163965547873168389793562098922680777009544129265259977773413555837871481890366894495463664378943085910748880719669390928567785311971319025109533091212204130938166434825415050399324777274900240344783624547337537853378234391707642244744501480771338929117888880046770539811160958022741336084056753838659913213554863601022223258065825303685165669272235791357179696392986310125409274339200769274370479566123444540087340913040461873668723868142154960560139511596762091762511852876026572755117633915352208559648067571055844605040035868928456210347688050891529853391042478342006949641779887108677548044984901413935246752955379025517762657401349419097187876792349882686646804983834238664344717237513967803139036490287220627836346103648691165316423001478965851063676638924935781957518407488726752040215854365208220632792380178842312501871081642555349093096640482438227664431163458909350423178929322975277108330597220293450446499369826091079243424702805097544382490796393576853215338948933098500488333255060572012648298037296865710173976319303459465940888670221263040076199874401884789236831117992443069530071243522941791523705634306620578639302995751050978942701448242308480816149564685443830575280128826935072783435394738066102230053413812837033453456828497253782028313583961073720627296401078649825492562152824102686055499453475554734762011639879731315590644623081232622436071964726188885623844471442756160708205955548653711645370164865185796195707592696893719220240582922988809639357956804418003371537200850257328159335026285898043738309584134602521325267407529959661946109893726073461344160421851219704154638928139043213345571706341834772156612926860915522078709190291639002719284124581988370596220384846771135927945409741433319741333792367857942394949970111465304351083036931644839940540643589595322199996993236448803168488964726456823383882086217796395299856024686911833942788846646981520291816444665518288702116780955211502890584462490189443052813401808023033311555393296146701871459957264724361415666756874275700694176792365585540743950359591375488131422695919921100303019182711013166733293342276422284087203075552939864362248428011621451557020031720535922801724582170459595328014470625715920393222105165309908797728769184496471608526341820326708029250098576859349551189159721998333334836980953971565376030391939223216694278196346168331303481510664180007682933437917350406410515938507117294551350011556898475624007158009976992564845568729196727593927290683574803300382966912688319318158516640829986356035869555590777422748307916543652224320550609549239364021464843472277332651715774023102871784655178827475674931090750354467837850166759823647256004603189849211251451433291573018372584814331735873363424520654628435614797229214253381484982423979806204042288064610255876384471230489100594470295734892170692941450323836158520003922777185305890545527432248614309584921779726668491350941905145830101302947528046294320041766226607798572051930152169439136055844483448785389065777442820668390787508110853450745538503441233183382027959740243584853336047992743635225934192338639970691394607031210015450077762366533784939918804188730607624149691331073603474607305460225912156389331150538031803891069502535783954472678551585041564096612782655655629882698218659989528325027983869159878526512068477895678917513008082426604255693462073579176293536912120449647143679761940089381699617624443249349845750822801471002368139083421921054658064811229393834820996648492642430376080476763440025133451929831860728058799977142990698926079176654978075361974191258150492446093479799634857282038648641791687807594917029916983933741045375704207585353374109668470885137838325649469691859820219745004788261540313701647668246083365363105362860662727264240182679216787621413583366893534450104120051286999819409179285992109798431260374580763974570789577555304068286301750836611751844145285351059257392525708247138808759651876005900069266288651227813446906629972305007637265248220690225423414016714531824672970090781775379423505894129560731164837129406300507253379704755799648537651962204907788375425822980815720995563694857304765307527968159025160471980253241312142045923452731021753920417293638343209356278492472984739836288163503324302024797252386651669507622489093291365318176878708926598755161543459026341139727874002718752350941207433230255244402674488875490173749207225884132438041692169099178385016159311686334460566707954674712467490298115611219305741709250435468288698124677004127917253361037370135130609571268716007289506625846669406907246254910367087670746736570905646720839896079400884488988679133242576286350985701370668181492428929178581148621198738574707039076709533112158885889918456854594622651677654152212772497272488155232733610599912468059967885268336716101106488667468731810807055347316486796851186124392905015354966195230026921627826988771396395864584263344427111706551250316150048918131129319648082359904691020696569271386924314974197356440412342829210497463682946067465793992180253026965938711424829121524511392706803950759390481263000475601176398568480341607190011988155725220021502305042593059597764890855874688178783305793299884547116984893611774993636377213479228006361781136979363580735247053440781447386839592415622449391983168567234606101638533583807057342457503080612704011633477307952994697165552267884559654442001072888053414190278328780138159706200004315593627451904193777004083382196756009578664646535792819356605238428616391562351188117617864776738252995572108772377052127229311742594961948623093322377830712635079516866216334449933591405301750995262766764972496681761392428602551632175384562438077449948199186317456011289275371729624212768585457083300322378312470437598006448333782946762571013912342446560025403834136230169735828473139532688988633061862878787234769713396342533569463709622594629280447225897520007964348163985885175024477405118677019754316579393613624089300038928526888067817098438486974155575281958837010299855258328591571655935793804038123105614497215425179253302073859635226645127480999998133947550343579705455376440872729914586470927430705248276321265043863852197269121657429893093813153881906189806282125812427982764521499224918583304292410489924997456101138121527785574708442453497717582174417031862028618681535196709410136495379151401242959106804167286725581636590004056081486468613805193120177362113803150517848537869871321927782043236200677301812294908090827915535448737095940375944729766402909901682781566841342623094977705993266272885133875985351866080303364402566414662549670375061535707166800333994823422507426263500279304184788138101139201058420074381903347530103120883531995421333935792766541680087399977835264767570520682960946850899770032943086397485071844231602528394550233903834512630006296780545824916189151732127495927760902466222139113295707785985312331002903951822565542675631389853644067950427639331990971567197506496910348981609551336271453108282266119459574233164455043029689905456732908443152717598345601592789211671428714931373795673645669332452058593510219372220246303906811162177594044148265844963577515355801712061628294314791646901853810090169696787275015877617663440673994481950870593598442755065102700687367002756669661765046879292273673268007750190158654884670332691845782123878441802849896954823766501267801347284272885249565685634252774429692426759198986392633521489073636751655867853021714019255154221166848615886306472359423339418636019705374876851240413950472659013974094379287480865411204134509970561146762407812993819790214979073337483737913703156068966661242069795282871265452486246928488029324454347413238315208513248316755328041760106464492490345722917882365901860155777768146694646844856662242503058067972646097972959655659799613325656110242920362551988396041893615050625995627043503408863284639460812457072227512153820821544202943982089167435838769870962461540968081646490474245599017376158426149653333287178144777532708708155072983955868479279584180310345467513234400284637773663919333983473701278738832758712961246263798148883642063903862610602381829026480820600040568181571887654857933402848657147435752634675505415266405077178618201490313855484295890145058162929025735436044004198411957408322624634756416970274638291869166686461938638309163992067923615183978999366606495620708489556948269865831199318699512915538914878261953950342633521872920216167777531633875961892180087626822184733134229014294805254448523904002132176524772176097390207860909032962399374374427232839049159424526901351335077428988466382287780714286315551272148946530656274259191571164954989118820117581863218614791531355546158346674135460903042575457669439287277086480013309978171833696053185496893650334746975874402654744298985734812472962787592078094474183753505061066347153167734299153263312897431417206164926242737920253382608534547675702084901841232906019499575018254006286609453934662277300470363951765715860522536469392043950066366652079629742190794453993585989408935009665684107449688067971930694035109414378111474721481874947174173800321192892748284583039580527425602929767735535694228353709691585237355347313839455023105708509966227067247652036500661924304374848361830854173510128551174392472534119672504873183428063327707927011388974704725890404267543224012796222005686881501351372326050556066835413010973344273527399268042556344341317308326414795619452359271604560768568655456076708407456351918106959508801144595970851029885033370916228870061486614326659774658690217000622688753629600169494248707857431890385488208984755868934502979526139546501737130659980989667111219077322317461060785353490681958770940350605615295802763962850612280050952486814450691430227167697922525383618106508469589419339945089798434286004528875880683206652380180407149453324481619084780593269163474500255172270693448754490897495268979389715899384421033773215400161849959526150447540811286732393777989321554132540447321476056907928081891574783139533415831381853257162214304527118510486797569675154726175149847704187431885608266801586496232143923274772430372684941352795302017129156088743382913781134536776546711107920577133401171990891508851327887034589177284784318755754630856124864746328698404927600544298436787547762670955153084133521388878136061968670013684363432761184777393781270481171587051851007719698732529117645563631224506197187849397389233062824695061636377718048455050394513882416497107154265520466489325341946122811605986607766608883137284209743574297186649388125979928643083823708604367354604944994147374966236889591347420043484698019972472670293696465340614554541537720511654009826445371561415380392333819539160350583198062740281935637680703002644241236195510228870552101535221596658733362684082750800809667861051220461323274515602782048159403603573825644070340065925053690431950293169335794482471863385759157661450972473661966607236191703992550528782605150485652891557361602459212672263323690539465585397976437204421657161324581258350284557930389417309212366392984300853975126688474558271652954906149261405927555450818201454813691057559660851479914253996672785028313741995015000284829574880473512022852327965818267568340729394819027415990498136515727964216078546129327783870760340157970298678948338613949111357219239306047900811721496259448531188030079954823377173568598431804024227970002054588787890483581182723465011124217382503595556310440017720593352597853524723185208640823976730920266732741283672186359021620007509190241490862116333694324707142790609909628068275107132644127114668246618553201385036200296693158447019115503506620768132771877687530993470796543592281826398758255957423914016127511738158861751483890050343482217490961109592397271985554567650709184236718062526268793239144964760669389633819805728248084370476292233761794530896074906241141894930828559923944304136102778677956717700577616555508665128614757716992221503344119908981462119253684408824487339402286212066146041875503858746354925240179556789096823276981260064277876909714412810403150552566793589632341273679821369459961227909786997811002553625885796585184824757949031397097508708695904379493050371150796431659762296383002934756924498331338299336668718635653355482545947411034684114606562215313798203836897756902971998169495512462680019541500036120651993539670299925643709066776629263453109327615325308845538499792504605020654350828265334398454622504313743429335486350082780807762326815321799812761989584431923316826692195051028729549451112403862677420407374672874312524251206098773876702644410353879184794207441972063461150980231102318661787509182230626049612546838475220417591368882601135430503275575753776767438635511331567332655915456365000187792136722489953239535130591967676601921732407049091894502802887293248715527622146390954650547125037276812232965875495807183024376890781110770415523497037278621745769651449984837168877587640863558436219971947464582528770036686518237959887230531247341644976262766445439579812456710771220777730604492230383565450964524806798178608896965232665401838593944623291311303832438966494129600474282309418204940570285369976902880085578190838277052798096794949203736942601017399550755795783378415072093244025738033353607947252036241528488581910936845389199043354748476722629840031042727833310084408419782984744682962360795964032075335678395836035919677485717140901639047397453327642661296751400834161128233858708422571339302953826930242582796144101280864053505544627989058700552730951956166875205085780454835024745010770534058861666797670600153150667667395851256261039454228035745405730962516783727786895438490021522584809005518541919974745791272497879859672446008679021570561073026636236274676688940793169836608463429669877291362380727086592856857162760670497353864596089575859754109302360466774417401716905693319959554855507680491970353025306786241491158638742501799328404763524659443551331969174761402079228493246818646530554558584199236254346920693318087294428656319161568040036487033488102868723380351512341115737817413760810879766537609548072526806499303369598136213101902435524701910174822921104679695749855536980615819483920678948054584307510666138004281744436918609127134306442518347707880326454715455165940757470791164942062957778172464983230314555669557388653466713745481717932024304223980865256178693230970474396030508485018740163640864183173522266176680482036167658487361091995138894322453623158153822930814229713009792360765934295046018168424460519478518604647397269478541867051227984201924925689201286473826416155817045799619256131678726055650643595528650506115595100149096331234881747516273220409287440977870647099208853661781403023081278186039972147653943076044978644019010842237175265661905872822536692549931934615953569795789548522861535671862137231385527348747539796709177306706078261754972219953422867715522610286500026729065039866771697355717692635666563179989686085278120920273332258350089312920227579868556645324507468372525471256882196606611748613809336204049433234906535851008924476450127040165229193330494171123307662725355139796805812678326398708634923557163933911307197632989943686884270131274634753101623317811686654822067251359690552810363369835395311113486174023592565797702092911913824041660425704405496069082454672535381775553085987142020871106482266709983782725288697962567851877759686574888723334448859333363711880961538386782637167557982143727704414828277970112642517590902807215987297162264523973498616793828707124812403628177933795360523260860638932421174942244726714266550317675920475847397814921052782314666467595914826675551675402460716093626049577401607000718574851449954757364949090380874740476821459130719242877523957171784958152036085849148482307352810051391327940289707687895996088877145338415617679434180200770094996501465150669416180320440359207505755695239603726304299391752595170381346900558102273035592552363575239669980728592317578243515408556938348254487314992868259924995107307724159626668769166777145425402646217947308005584813462760821123293812955357007240801669357691613900072595724282825914593566694538636778359858021455958729425065627197700834327863834513615282042057344683823182614240216975088527977202363489068803761165616563053418747026476731474596662617750876343997673912311250993596124453276912223996835202306340790604313114697560711521248001720435732557763441361994901128818354316345031191279554169118288893659062528983320987869417792518627691425100272889015325839600631058391432775673912344527937030182801619997783039607666058312696614543881862672579560102738831834246072422134034019216358324258871239961553582748631132687915629003684174570908943737561065580579909438980451537884435056921672088944385932241829771215842734477873174321100383010922564053715153516842537371884417755255886962216150680811254129640428362937711198267088995004289058815665831476827642326492872438904332425398000902027365228070203263492828665726229578633035337273218699686578781413786094876223566636742611818300617140658778228192016746537278438039080568317935652161191525251030263834246982345219129678466803118489345414681806664038544676396972652279470535667006268868859688320479529030764332795332506764825210215101972569770276604733803293374232233696804742485736155169881351219897015996784434613063289746335200552131117986441218317830442022669535180295698096612603032088191415921802653989241626278137165090856733814131861937880506890301774812875428053047911864327087128710968287149815307052439841030824655313304984244619696103573697980731374740088532405466883500329075190837516688221626081699940957649784690873447760826655559338072187763614118965129089523550156005119190290403426612798515776303231043799990487120945459525381507797298660488064859043277389048576655777622713686026164867740769358470741249517018303971084131338906046892078760183378903608409444018505778260657539708993734529885542595876404539728996404826569458132105109739687812454603272202317520896916439899818189378702766056206780791939197489860555068611820930395200407047125735191345352778750744195387281865075603228342953977919340032339360547607432377501473186861371656209796300486470646672163341862005051407831719944840721711190215768999204441186825492858996709381030363144044759034387280592727136869193552056732655905663671504767343466678471646847152746284850756651500260064860108954618655058780255644202842223543345091358188076605753216856923035959934682321904427619147057557147489549093223127140214117222565302182019613226259152569447143897269260195885771415080823412063371404318512287173599461249861550485668308363317437520366825815348989210396837213833095978595022577054209992483231261092015095148917102812517443914096604973761024033148668092614134698039488035261831969639139497568574507953158314936855108491162550438084692479329703243336542792865434087047406615478884509504746334594565240472866029054251191885511943502497759967276289859859954975050296086692657495722431023440927015583950902713844130105316311659880848524298976852124900561646966817387185989664620039856548996464083993293496692870191596372445662196141068187643327985397541410069307911097843601430544689269060671757294203901449621325942271744061635646365222158736616397162824592607108925541018096085531696056489189551817500144132751554918549195814614379723848620679425239083565997628766596764434235312150496446214405519233708440448267092653276308864412581089395031469633543584972354022548309748301145086213775700969961375661586306234160866119968677440001778096316535899017944100202163624279451923857540304119875550923023254249854035887287046491841297572783001873982130000059064773294177051809352741530598884671916688536868040349106726203146048362300065977627920275181288291874821493089829035008174408405128628509252524225214470694523661436531958117964041212829396740052352369402428342392843254223316141795049588026140065537335412262445403181466526470928841173415714872035935592154523810257751144800528282476965501518803073885401916964518706785977039882064842163024469324222887275858093012535346357647339378687889827070807171046534908671503727449256861761743747601671926131590246526109757429388959215988858422819516369635741616568497587996227466033420049536762958067603793447973362417772165313623084554834987992006105501450699664927026099493444015519594987161388500649274109397140021325326249809394973883761718012813750954896389770763548893785495897721337708511077827190265765225404424116644544515339726216912218343175987253804662245312957974571353149126092965351517256739736889742023208767646805159084205882252696745743811944551230649453313825693726964075132859671672740144546795395138009619711926057252937245384100613097547981539425877817084651012619552090990158368323565462867727418706671724240337025044099273163404955438257464062015639591017535474735007976492991359122326587581522884754353241894244908641357727332065704103059279812546837194165220824077230391200192333727671351922047939524523510742888661379241578197692441232002937399415810831906383944943925907405797341483575125215561236943036622434551892596614413712536793027964954740071642061112806687717633823220789550233979106273139889209737369899354568199887691580787332163985036271352172253982126653000559530020878364787236822714056862517372582469065598947902285940536042661451529002464988952488702048245261317121816125983931484883993947932482280588286341219075364194954239191162185472352812194349799164641433868830732865579164067075093698803852932320771711261473298697102677969912670815414203627217357848020753411678844324733209116675336455645016426045645224760166854765244609160119316634281296863731680776904561928040334085661271814126852838864612978897242052943238671273535201135164981592914431632651306709806279448626584995081330696837767028087701451694618243076204656050173189717797238055991980729104102279523929788162829692932003933298006376434362773264540768003659796973717564277560341616537788723349770633892992385560664058165333766523686226627823722211802998756352230494025461908773719439472590720739036896253469366448340375287481789190950940482225285180842170285538658799862402119707305585499318325156482885991452543521730163937690763009902185922974099937948594643497468797332299605828098664112913190756260090385815908621739480501336634113548314743310176775427934533826135846872799012547892979578260198863702468921157179511903376505845097862713019831613615524714132422105335812380503822273718182766641404539246254972568051237693856133612303782987475380917961382647577993275522235573778821347544707558769639837862794570497530934784598125618763963464852603191483908392098681571004455357953822410097807344672853375466379689612462018000151269574599032785775534060563519695256600864222022886345643142179303122751043400494380711090437615934678148718041335084342043229730874851908099532264610954282633572428535041218268191490759193272510152119157779060424119573708529976110452666984726330566218742150052488610566539018146316774853817978484403737439282460424292749939898996457514459162214049243236689594510797204725241470881817117089486525364486515393009092868166139059464861495503535263052505490061126398198000582568375466231831690667758823692351333763011332581345616202526643707113628260218704232120364760556815289671419563614582504819626659504495870943241330740998128458505709703337918608832713427394883611179262694724683228651964198983887013047046056141057848991911729987977970535779655062804195196522483787584409848333405594342049189475826444286949293423516970483359814061731476107942584483612476082094972207929225800391275341146076643325185934237081498158261603564140239063743390530465521964374813888844268108707614284795640297668804232024866471791003294035577481579947409146591051291226348434733706959543774720465397295708536220469378038406102732707432379769424257434972304473412183178328294707033589969398814868848653499646614552670255696047021133518593758039687555217715218529190447897697428930915947188727612050746470986187587750495250567411923585626645982714882204631384296365735040302835101530324330111045354185469421594671154500770644740387206209740794459513878163971703556805707866228029128395121867877657809806713608570380344139535464437328106076367695114571063696062769834251451686841182631221646317760563703938528775881830611544502422926884920891837338909933644860019729095990830076991783803934025651576625018921559098201056849627401781583459079514273389915860983637923512446695075662801362253224278633175832228493448573606482956877260806266199426563715142246372547853253602588324017931980677596131854103858007002123579305974198590809092344791800879056099178444114617180963371066767819221233629502472228595859955821478752340924765219443679916307499355238820167084349652414994938021195160231167223282681690614620733575750012576367924070161969874019275434656957389141074428893729135554160088831483061343535401820047027790734124916911605344649199437261729536404957200104275181123743829656741473634429851482521205829047925810232626788354479398462148892384942626963674421253898400362800840473056307012220264346119142677099397253684567922126174153626668916616705936205954036133511973087341771690268404253911209751949267196483848541797031678774718691225415356647800406078821910827014936675680200326488004070348978305927274437544829865041199353308693464251494067693564080245217605112360468269523234108106463429637243772279305246716707858510867009832652661374489720099628472133888616092351122709262430692641636866294289884026285226657545657413191271733222802651028090805381029597034754247402781177804281299756342763159695428825657259542131064880492705087042808530909620124634970147234836439633414997352999503225889814524238550609473190023208337186168984365088989467711452988857964341713276025262004107689261351386409774508273756126606919341821059189920872007775307612514601212493696516307862784823620430778681825359811122672022796812475828702150799320049778043267015869285019038410706556612510285598508029119593102207438117729444764147185892406050153619492915598444646085351727486525238016958104811254684677817485014273945780850874562246826321687750147812562533906302505688121261797449875028767656496061752481305912829718950479914935716422335351413088528738897250034719160652811548609467347355029971492883699068288531332063131875963847503982728014910113295478016315895865873894442551289402022100992875536615307803495100249221678770881218739270393979357382854876234330559890652802709411383458339666464899313014637418892109940153160247385229433338091554410082711325094983348149507911723491833883071141150743196915133046465668097220809333980212039575570837683012149759510342723511844256872449208453433328599670409289858147038795407440544963883419478266655145031755992960101990453054883852069041686813800761600522883256704447678089430364092172148139303653336680817042910027184963472516491778656442549286850267222455217844336161329828671147364754381460559698959676992557453696078793465258988859010826085300012725690162477648270723869782851325420655184227081667823532205196763131549311464323844489464712476616936511438359601523905095718441794823697611216527527481214631437263891422226353105239498188658884966313141462794087237285001307360592432585828858378268393233409742349798361115134469054251047559104822198987000841991604008290297292502041500847019095333416366590442651377456917497147513507976200032980734418710415415095295963209343044014979847389411745706689430794731671254741045151632522870502738119495673843122932306618649851569394901059433349101101922382140843431804664603574427706827286349659797468832802814350236602256102667368799218779789008631983910824251028958801433680894569703459121210575117374744938126168582795351252375347480641970353129464016542532625403595669389474946906921780317707646487196322385903092945969617102547158214075745015325707911378296300197568267111371088634116629799953549953546730993580923593207780547136082526340225402774412057723199872839169559547382440758557680689102676458973119391837837710668792682545754598506375536905957716584787240819465506169536409074108142857609261957995509629291929042226607279012073230826137281203148461876019454266813216661725227422187378580910711165853285078900893085611078696684148802392355589367273672169360941988363103214243725310958542763075334446844603710975351436445829413004104078650285983441610977616660501591528155296651496090501924168291457706295990996595727074982424167742088651881050344216381285015998396528887510013886002982614457482339714950672005770477125364991109706134469412775959879855262044956270806061026446395285953679417610590878637940057053885812355371267869526175220157039479431093909808672155264692027826144585964627460770424179298920172303347517063187646842113253833027552840644081205724982908955640203707729758147835751953975147416224424043277048440667218888553875407828294054018225888690353645196524291119220329077283528924742049125963915730719672152751185561750085897648872364694398889016068330303137331891108552891924910815905890970899985507990457266712267673351581748897875680679287708197603369274397591736877611815806985352409982675979739596814576958486361659085817698973944289548853033494204819189502549108590845518769260467673244293754154424904018024346923222566180595899690990677126910331993618096635123772105146272671977963898215856087413528094292287310384928202107262246457468856807089201724490989073722428619671091252836056574067249751642636385690886660875056670040247104203973942757462591410439320869886666503708350287725551091308355500834933223076892494725311206365451009551569932474085828931834562992726172577120769939634952540816507050602346784377796575275300853767651294606989184390357689717049244504468045376193315894046122302373390859073928678710016436914345072942219839059701892204678936420681098597186707458351388068242564864198379992407249052157123459787870427974117553160051718573131190643619393886429189109251302715247612838164504887832941030548032432674981671036028613641166159751016845601822065212328877559309128547143909338502772699464170588476447609193439875491285574976215268539572817338295357308058084785273533929995947036983147598239585737118877696178731994338106224452962974548455621998452751566654382132723426266557169615322518551990073783802342205910781654458730080170888403101858041594732995493036570311401458975460490547415377990160827955460692363180093689532155193502643241960243408522597566346690134478692452014417387520198821945504590978943810163348117999102586626463756550975724993638729786767952054488217819657224835548741645960337010886122227871227813029224786450299647179945081851958278591759148694166120696542321972580882987122381362547374478406157609838360592557774425695070051700589816234355632212566233953799468370096254108799136183198451428886001737388290995189849570083092400977084206750625874380095353034767177836241196707092415314101973443928089362717281386778916204082789620837695344908234147578341379777224107651383672922151669603695434025914041039898240602243048313514646527726896845895936283206861437574094190995855937451755058360748890269399552280105162916770674709681807567236703497109704923779594219454042686287915389818689271636847524728912639464930305972001961504260200566070676571627855581938038339977591393541561521485051279820870919237564595541748742857596918200678332487683391560950439715063684470511064481816417882621692859573322153208373107526079127351257876981532738838224934317497291020968772058241151140998544359042884774686412255799378302114856156167978223566143023371285835516487767513187762645759584686734578806667089327099892074293142390221685028864247307575958749382643964925161674291762221117605145570715666976524509510238898572206452619074902285675414422478754862066931076155130144047286685795320281898906659400195811538051772354111490518016232229160055260324016367963695862116458601411611422224033811519166986773287252342033615384554625952876308353383705080471863037155936982232881660763354800147195833713781608144015557166915031157492149330556315248217014388835833545869817971266621834753831741484434761653594020024512044461443696018477429733242790323999332980379657486513246116930845942087111096029731238721818011407444727146454667125406918953047387379505868136897970435974437702564060585352328868362394835853251006313089065514072315913671802719341512445783669832497022544558111212355999854233411217449639587280974730583011751881259800461900191397982547143160049248602318601228503538500570092090073934741639320417276581760273213986799778389107151430790603382724927928663698498717012405908302183022845979037721534809330690819461414313349329211781586554468489270591295987237727282948576531446850822364136684006353889628481514859757941543461846991611105062944346678661303690293772853919613585752426589071340166145509770750947329852493953709971838707033369643588268636628536895000812019254554304622336610426880868723312715758331001504959519773090969327836077657657705345225731251635829618816569013727862519637138488309622733658814717469442488131034633735596152909860078804601469187758325723296440259827751489156663517689215117453029050130354586778991280945478056349557093330431561986108599967959905608673114444903899152660766090168250223280309140826546713684698619071295319020358731119118482665682611954501810209343906622035232319720234313220357530818084895298053391010614456109316457827651552002051593588117018647574024300750307709508827358026183642711085204358110135084805483523592761734016109170719048112632870902504215445700918192096820908801197860837048690018374418624758111312188181099463393904664235035279055153387745599976486744464810918927682303446060802034291169764836193984857790052078460806298623905258035196046210769154762959381637555198268588617910026384258516389418504807384227508015591355716055806038766066150021752975533724817852875145938127101531306943531397346143953977456416154034296671470411192019367048488748120998159931367053873527435453266221651819313591194073051293630249716092182726355546792126337479550060775845619577682468388694997906020342284583563607614510493167549558437266492396834647361659516224167713202635647503775936285267954860775714044602429440644802880549644225424370723067120671684463451960641644865130277113535294945840748238295148510895292571045938810232603313159555230366448706399465559119453407581458486719766289447384641686164322577037247185604607159535216603600764779826229757059331839582570365618210191164418781838896236025535827904554258601494380928447360027843811297952494830157843743614564528907547510709453783527691145641147629472667220992166328402787006261476115862178958648608763140838758884271074030064109853153835159447924310234885439638345186304354350347261920846630542607565038325913129260729584932437523342448179438445624731755106615320119619262379705828399308517257735168604529659934523092561721522427341404862705823281252633284516249682046079171359111727399489581703255802203943636816429236689276892209166968690882623959706847785844618377197918895855595253300292596221538364213351696940492606447667116177964470203281792436922498793661545591458937451820199041126498268463178714809199846384235850032576601587983713402426759431035944944040323051965716760424256693670704949870761519363309807099727107115290438709664208388016709223067009508851116028860977904873607749733835057623738983079477391002951227186506428055717409771453211831325697530462977427751866296797431454931141301231527434108290644261048169485079619513903303120898226302662055705470813117158674775218321330298022106929191852057475568909178207712709662747929456782975558307369129845171069695424918825763236909135080611703095746253699983981091911172619073362645854947234402896509639046621553320732652714270769589290542146908053998898506804846387655247060593376393597290514850256236819903319890585158740555276092444907656762971876908795791684654645433251075164823585478960906411512434270892166237353856123177810306507128245685502649610212028162525877530553958931786227347993337766390066250162349067454822748184774324096363191039721323665153274345716575140737508059374257813228813198291817288759102783282161022840329099014268529107964598027888910140782088230675866972094886911783357039463819787918613826719231248452087618360303211231205885534364106385601204195599164502035835324563847511095021990805418847147620331829395709760166439134673124552734259507987992035741766271404218831645145981634775945224176613463375956027099530416080209265632030931648668779133638406469777276996103261774212309493008546217852419357099294772872841100432055843696101461205665591700596723446757571988794589883445215318679700413211124561781147408080009489610653944843003027911330133137755061210177080239636821871809151623350572009062895823926137778297002154937141439967646823940930756785099044230707642311580321836688661306159415085340806216543797721637298213813222745591174952952331930776622723677285183724361785484491698305396310973079932433274419316283325914405814986601768323876290521191888526217280995651794960592166814817611625844629248679528766097418111971688271849233408405078914934488134917772703886877371880155627547386044163385296211506742612329144781985828941681016947856964874038799302941280612468136038383988171564300199540806669699169552285904356419378852962523351458258325975655142621526250278502508104594954969868936299006383392749741514670894199428355350889566531791220697721929603435476896097499207421799466963572313158926470263476615408558801826600546948312848373458616718301686412945940960297240968734114962069622914119881336471417267259524315122815109097938305798910592106770116465024334887666173387200527764258835753912930012192761873906398000839365730501841380106950302956262393460434319920541396517807177644881078522670478735254711017334989252335875990217090456932073359886151815360355039676805092276206886892937805535783494687949134364738950778894989045953916964183612104402549303749875842332862209309998332298659233381524835468112858194318719100723583415595756931856707709975104323329500709192717883042801925008507743905103351698404653178937880068923808547936632998917351879604026291595614397637048870972655361341307869397626006190610285482323560355361854981668160110282745403223128065058627122547940816346235848402653920362644640510202085867898906911718036252892443521362590958602624910411364142565929726260855508112350720847513805181086927723233792082725521477597006394425999961625724818474849680161699536522892513330588925848391709161588493681307323973290731876564729436635632078124610973452169106898151236045239419826736690845237470241524572874666393199194305024458607133484978076607079083049785431078930159985141336101363002451694839326276505140652604707046306635406592170606145149920095071503732216192073447197034772355724314296837785497447823022872747998163328416577402895581486686832333201340917342808816047430823604166736524107448485480741874824100934069121989902445892939651213119115682001872227593155249886124678752832752478053389877606483410636590437406700050136254797688618362479902864904699578968214308158636198161358667335723752758598439322353848988854089680415361329708683664030125468226907960847737408072990574755997076451791010736274502442313650128540535935722260614286787160499797226970368932162845572502169101921752343361349901249767850344846827285729491524188771058507330191853698005423169044827236006110740739163315545791190277810303104410070330464222094757502332246256611040847400986078128351302018923619135938266418601841492405627220122995070951684153238016841730384458853894561076442181396638709225515990339030468900118573749338120845076789581209269739205066707767903145477642563684915413234599089829975923752774877262715012127633769480013277336830525422319032859800047934314754776153458356507495476710782077281617393410297828668117116089956583885789522382058069336394359166917201469721669509283227807519583551552540931120004419589166331135249489124851218716467141843171529913997917569852821509797032572575003260114076378486677101833047466914583484264175843229602704618629270417860444580321716533282128571086625615318261087335115529133403105137964532026302252664580993152048840410023962353986837609787163619799397129749509843985152214797005378854547418126923816390272937780687776248850727016404713119110983172318242560173423871400720014205693487283815312684467264338609178876194450029667948476652330891253016856073261258877945092536741377843583640839867435361462004079103738291587778436336893459312388350801123350817072111489545059385317725329099795619282382743131402314904900822766781610926444267509326318129061703780034609999240478670580487859929980229359948810947013798699006127669237678512724907885298546569611961479408923859701367997303278619121808433869999762759475749416635525739010890364080113241026761823438165949508364941042729632187280599589898198017855067193349861898111615996968577877800246705816442422872530352130337683413155872684749100647721453213820570737735672019785497025057282192352369597641436353636078110843294880507483929892579048082171189794637696190198311735314306598744600212640284589447724209013565658384031553355923648890734144667182264265976685353243321207174482822340975874464894884559901240652033275983778352571849528584818288737665698942048849791983758887470906449077165708020425483688124432160610679796190323278865564538560336685576680142830469091550712697787832444943999963155450415438742185281224173127504935838779271941710045301800583730600247347871382272288924628289594059580059794215087615843644107419173781687837301409976355736789429709041232777616936478885921957290212881506228832161335320194202395443274872979915713658099919206333453680436300307553383592728347253356529968659430323028564320874194752188283593904336545947729398781468151058104955752878622400617558936501324789374343384194677102794909221244971877016625672836513313455566090582711950031715744575805768938828502382463826709498378371917072278446411368208516461717880206620112060825151545901573015849991223774272464085514036893656669628380159848067951636145449475978049451721870710614414535581075033670494273243314398521119034604119116090780197282597758320215634990069440217301527674269568613607171538365639054171315054945586114760997183723874473010235748815226216390307531602466714785524418512595439744399690751934409768615214535842456151828232771839937278236394276773453073397563421776032258355006412739184664396837919908958293010694052864820330516315803200270018266908751600372260960589865749107697065313412296937292770845855984800076367423036103545590687318476494367912270187886543998736379343577513402108789721870832321149502027006440827849965888728468908285608325351166041943162648277190727069866978887554246760752367386766672928616979237367905125299251264621113952281860877935326839574034134835459543725320459616235993520382727533645754000915198865978097959114918711878463057395028588597374697617323675896404631626235502851587792027177379794826331085637871154600402697844100906312044048395406710857169384646595819922963029688050748160258863074671124701785021351182052517046409979920781303221097305675397818272964050538082852411365856565980710862943008861480247130986781212394778647890442970905263170481961498459099072586313573015121393946290558481420136416064445727086922296428395210487544345090729630537657765413963190258639302136079877158668652789101992781867217053688901605534766054218803394055229913560415352457893648899704910730264619803931986985053042425939291005929770117656895421327527179836380635228618603918215399409961869453509913674343337490547943493444122526312959483752338056402292136609408238158734126893591933491388280016116923024140235475138743721231764877038051296757958226740616954268282151635060000427699584627977722839439136451732248279248996470489646681446549165710619163970975334993840416374854491719366407851260742993048292136313847151778897417315901625954045633777259186554515089753292339538610626670461426431707191049090131655592540838935192586779865018484242703419391891085708073509981359278154053295260968551403936163641978731849658417362318215977000823916924331538833952503217050025800928189723904480175179745038195257105691953648072586300557319720901295321140553106538512473029564784648667438309828186440475052694226066409028563402124516902078836165320141119802633248749966216392164786663036015111112115770499325071398964838801062466792754337218116426426461828182795716954375388384068878454093555681919708981502712328389322736635048413095034983451214276024443774903028851814396706721749909723654675950944710994147214867446779749974981644547075950161472691862064248726435492443248325654776688135456616371293413611728339302110415769617399246292766360290515213931539987523088093199594008071771981178981995318671431954269955127164434624259862021590369021014974293314414710482585175442489312987054225920696569659999301107250100542363690364981912686858855643861550393539000448315833490213955414608089171211918247306670353563352477551313728523981655871459262784805555905793495012674089001668370607508211963085494174088748096780328765953869244006942570193324985898276614650818674663354821791392612887388887140551965255655714704697455554521104977666855359592244681349247771957648999410453606274035324417986313171195636620453541315684349245464883465127448985398472972971697611656685284456401176094716881949229510989351712270904758004531137092626741393484858217013743246940142885753125051788119066296433768241599215634094634316690379092977985303269680472238691315597877461823524294350441425258396164793909107618308483041221822951976624223529073983137879753730481397296260480691340824229016664323434876785248353703228677288162847115168116678750219125137657076401722062480923579000079494890576922505622413841346414332454614064870433830388967626719859817765346469197934931240794771602132843707006068129353232115328875889786590716025904629907901754285076552068369896501344525837584063139447664248933667640708269178903184965462507735063406577937819119815345481087340662215568696880492214700338779489613277052987660710599542788856321155500341363248631442502349471718208586863756695316303985228033411603274198737883068743121627563122046850217246985017632717957528341705418132607115744545649912303568428727733536216589496515613823712511652027229753591920255069834824521159619371548315875145435087231732335743999496155161731370280708427218315740943711758734875875374346447207625211871883311016294142138094077304106441931963800579701625300472767399797953183657506216314941767741977915648730506651424693264074733507682845140509905248015883492076109295920307432903254480006934225785732978085227885666981368399847122714059646533183001291392264683533096087400178497245263042336107035804295779022610428165754999993609543619553031794677105151318735448762937522510595092401170248726582865433366965266301931825220555071784202198479769295507784770749411634334470152318833902455717120517758682294661071722135919657642240985641686826749522117622583964777614292619646596037548769600403804041553069972709119054839840095373223995529528527848152508029127921355844809628524650186606732363115370668781013887179412245469845787847193807889554497243732126792941219045827496838861952571679652037576610040986048473702748734903862117150672700093152164256218719061324270722649333865746698570004149825420864575839743392328754080331833725354723535764379895988503143227656118078080053144636721034800276308445981405283231855297463358306870007536231018735688932489773023605606512624911359529629661350709270676830186937441173788982668711080879346405688259727673816509560265404881018756144382972905028460634690991689379277317796676465323983039724822707687208298901412039029347548225678032401909624035402417147329149305522019385469626447389945849118521450964045534493788284955329321873730071582493549189528831282077187706565309292047941142192056264901189450080501543590625917280391180299314428609494313411534746140553372966100234611403514982607990775335265669170543338285729445128256049422368907689492419569944155400073197637186621102838233750153487193440734267841556532477339445410256438677328368354980906280958878908593498961105644911067891205618683282601104301595366464565512009075447884546891743185562788997675081778096113847034469245019921861613667912149756858080077986978464514159133665133170791856324283241316537929430034165185395311455048231987196623445973750133538253855975216305313741586099851511117501927159429181180565553654630787130149506994513511548360247382859364286972626363590279894932100740941561531452147467123788830816522120851491424406221734230015205080842319642072875981650638253700137430221837163302816199105118763956553569714457061453179618203575483087372012350820338600570250189528591955180960455247124830517607255804218386137873324637937761733235460580240488070191061881497728313474155291928627895023572704394387074556749828062837907206542304016454500905998503329267463010755520245718699910239941491594143344178750865735664934035827206805617689884486385722293642194058396731230191456531859153873393927467411981104083570820507150773552471593200595251373771806109568842587630479092433222475768264422678772379830040038120781798652034245640228759838614666038737104409899705518356044914142523306189701474263192939985824626843882414001945373428124890612903078925542232269747828364599562704344303777725525777573835360737454021245621704540351392240557094550099505558770362841026658491274780050179012891902160827961335808850894792070973835817741203157654111356810066541978248635065734278167175651213739643971213248175859077742573574022919925405040764359540585445885025182790170490112371825592561974575813706172871872243634933533057079505773533342170592171542006489320932874024925285478876382902461077411221584895674027330072365834856890397930750765557637703034425221001974556722216194413010603510279820630201631246409903792036680891124530899599447242190741648964206210039189827400594264606221124685329555719102578270874529855783979489704724690759687134875300996187959904470788898501151014812464396193039108158138423752552238034287243129673139336279293041102062467414216764932065748161154301600739786015217871688088059225853568776846668385146731996231047104503691733766425536128349815388807727808560637506854127505765905122066156399798610017784692871203891562849831582918083719337672535516868688361713360909461860638974752065167958254068192512918044994898424827200481859381282195822014903068953286567670513794828355972920772495853556370039635180072343720140143566993957068594869071687852165621490986261949328161110395618003063469384426245073686388207864977534370660241799168275512511130903826279042993798708009690107631057198077943734065024613936691181268025066273962824871693866098536215001392110488941472767249322426686886856404270547012296696674610236531746999139575116824518360229262265320711966184970591963891794389265933054308026090513725489954383481360144871322084332429322717410945170160300028170018044358125565118158015610921496532782430182128371211440356959736832983016236888402470202937323813997510421022031455186316673678987003197383460504274493278691992969804856222387083440135551546172882559714462544042052301246154418853743278951920345405787539521286947763139257416721808435241651594962593097466459609227085892277608307700819923815723226167615178931686447850011121987512006003375223727960765064343421548331870858793255012125879074583463035882736097166715742948031768737306675779750823088657573670499057432852063361475404311368540847482285930068491073818701905506070167165816143488329488638656569421505973529837714522725339570527957001459992371574039654349958672598466819703728226428005657541591522214037439981976268133650159185021839296802298056676645311492992644002500694645974559453287194058700858646936845591447266937372536805502586248576134298282246733408938836158011474278842722821408853930319888419860895629071430985076157596966141364986028790771658338341161977429712496896420809238586564965728968966741981650883473847980036431931695917087365518548188952072108562575702676606075349845958985757793962566474099352079460320270647571885575289706535011045672733332070777396447590397297772598824983254116052272088079548125001907786319220941833098147465691788694808858822392995004338976977813836294643986634411377366732907497182966778526396817966676298570347401549233224958883158024392930331575944624864738837003677250150695367615457433744622152521449326069706695526279888068072972666497400440178779084910246326029231895968414129911334085155674614899395811013900912743154085177131377008897307463424570377203481105787202981316451326190378131298316223144468191059114240534324643615282560855906149207350868444538190528994231673375181382896549175742363786268015942327232470309619444861907825227402216619530473587358503336342151827931609357811385565793992360914015437639844475493147500125883409316159931643809196351239174100087848425160570583289566313704564476173426570009300093454246277934009802718177595218995550431213937757348463549527551391772078088445713503211324428573921670885444919021046944749932609355550636590562032592545202215148089875836176827542157870331480384768862716861498968327357401047111926406059815454104578264697780278988499751051740050579386813897939269705502149352727985508273358098682204974637967708976465124413737692683287536724752744989805146274739121102294762641059092701825333132784089850912486440024095041449230770857398170019044513153028290505858419966127764785975217892497809753606375518716854961904294602397077085901038237505685948085300114843561207295060837931165815273894149227054502422977126275080335746798801077689917467103884442898291514417831188174793975250171937559980312896365086814982529522859916297916006502546385643106770302703830372558201983477269024729085795268335062550510920519835655132131014097869814820601204804150304792336314850964483637801870873730482347611123216218870642174030628329400528458568445365330821222814070119286096089848685327691775142525180542278625131450615204507208001336736666670041424977304121252795837356277552832242114344768831933389577765935082832169027195022440015021965735729614264008568100774883430076089720363684236943312596835833798478008118120630000354941296391370890194530443616425039670523054967750342408883605966627490408929846074746965690011789147431483065714896373371294201462722903232427193000619340954274642289324343142172107647791020702533579436072947668444033528747979308413460553645156914821242563088975481477312906078309853120325952171453276474209663325926372510551140974927080994560925632287769429589289741306229376246480367624284216712331953152968309490776696115407221333627577530407196363445548878064989989784591996285359216078416323983481675394842938762879046237814447994385229632911829353039209215180562884767696226350281512027213222566845982180235978445774901840778356653503386328091753537694800335492470681247275185491825927576728574660109243682618497844189855224861280417753826831533253671389560278945018871541571056761259881002649564454182111358306586387011130781591989065035679724732528302479072230407944440138170794368065798260953530046438918115629262292268595915942691118892991507677857104554645109691727614150152930880182239244760028246996565847888814432420562590048434659466329971547923585143529906439164714718052532759765682486265610003528500201012724836770568230597283355168609522639624134828160589654456203143563491150634351742468356713332229604942661146091110543393148447315931111491692077150291724931612804949790683414305793729515288113952593515095795230355588309459257135857939235739396057569982946836565385162956811916055530143047305262427252153332768072188944739466013211536983631735264819102198182663799598820083769766109062396799882734371672393887124014656006991533331240259223488041738358373486641842825231948634489573935568553153477729255777136895148796748089411391606170570292929551873209494426952608736269685564331051698505228047904338875608258527076101057254425634643456026969841038598152515286006980178278671409673021288520003599468275040599410648771126162235767324665470138611661862977629389167573648423065662949570312383866196904942972402031141240854737479451442196448573082783516435312071603157458826085361331925982307504916160291234227903817115594090088409305607793752853110656454345148026407022877675082554319440686737274855938317944801950711364557829866133237060375997199053900052729929747177457075495784768077398212029930932873374853602491354312634023991549985416818355458467612741827627094669722200382679875160995530132431157285503097574881078656280301229306753829360053984086726158385500264524798443433964492482617899801709011984787235452563284407693710507421418632430704464358324219737054722954695889680129280365347235206150761315333613054797966430232087173921962662594144157665645276863736355962649048151910319927683776739387043471902563134882350037660602118383449270566981987060351919383225760839822131556416386357193699699259576459352345732506405482359142314719459173762985286634625298394479522584762935636454565709991662927381381586672393027388945320101418584294503336046992061103277284639808872828436905347738338714589838092752075024372963636486143067439886714994106616353435257952490607817175630607395729340350191461875389381244956613657318004176593714347898237090088378945383407445578575738019594744818468389659462465939586439801174536124627154947847041056894021382052994393966888915075426394760203626523107753282410582057661848408596006424773933048252922789121817461851359177937384699678342830906434186663923960990955695494170650185125649770320321183044417761391396277220474521542564517659766001298404148456027819186453271012170137136002611407771330054472667183683888820248941121379251004478361989483099616290934850795143704928701305114708748580424277890106944618389993386411830571505746047281946966692925080567756254410913991254228163881717340814020143988205798997800976297209820506371245271408195382863412396822177250078630463763376279751679247519140861803631244421227120330858385698556040455118203332997887252293640350034305765082505686699663411094788213793336984153970894751487609318982158351610221259019837476122402923066656324258652140746550512270852758331549904037194114059201400933302373558319858499723838119135317109793508194141095994810691113007720870817045011527640184497443844289342345098212333167745165490110696044819244045340329951406966458120752410360928446878368336238783891210870101904392501049734589232182525350738908634523797094138078385252983122598408780501004093470445535437053752179226776500745803107192989121957368944578724750041853019468950307077659498459459605868241122979594549056907136626999401471535319609566865382110826981701460647222442331244399922656974617114280032886387990889929361135521823254134139382520574078871665402117588035437051826082395404129120936082972137681623257512544069812244327280054106931319869106370378062067689679006568299959457417182390358885790511366911281764644904506331011124977276431611847665776419435503317503024992026159753342401073405716535716935203462185848291128372835002886365032844010097698931285069159862328119845089751048111577017940614649456907516124532414196733518586610190631168256236201900392489854912740905412583121749701436747767831003782593140694496189450413456748138801735668902613621224532032172210798510417915615359625981276868308482015096816131326258976878065310069658630375762858971512753817245246430954167361466709359429513507903686516963874559466585158733824489061659245067175728568720235273955850248493472414228522841808551409304872541381473937165091804595843785623441860124453606529690367887578511798783621825424762098679122743192497632496701303424542472301386876893468966770410425528650376003168255792168874555150861618656969479534267737784664110667365214521321292477710533137829937469339529778798770961933156716984418168166457097095279466162751330430846112907598162243956824898561016430784157789126349831998375120303053496057698827410165802876890187991843107998569041466847271947672344418432442953503811813969765069427112976862751232410215759961420420121978544895010583345452072977846723070297337161965390338795211997409817365210225261984129161249270772357344315822895945955017939797139951902110127368200407504600330914440619436881385889270896557401409727052681858867231005015330732191745195684250881302638146197421550499617404733838428786587269281929513629533366832166701361456414635352224282724224136621138494460104472209578540815237922319065844152791247691590916513075991907050124417303881390778051118414474505392930942857533650736517148927959495748923143746058522874462748809876379211073094793771147408287185538285736103849911094660789499721974646232453611993106203925176603818454636060833869364189839002243751290292439986527515433685851423523915792796942961229413232695508420342393933910594794566774755130485503129884292491641515402063141124875401918723301660794436321752820965483981981320536667901201891195782486243139673652358513956141332756541504734893338415027035468082961186882609404050780256058532837120308512004376528668204668154059640407208290867664064937262932704968373869706589679867507302894469381490999575980190357687938599551517755847126917807676530598037515904429283977615429325634433064484234855604441591151601335566738574614607895212968239429478016282447349358354102605010787247765672269327345597074269768517862805578424381642637192944848222141832206794484921276956619217703816289684831178234570412963834489075968745390574056786486464781647634158831329923319134486505173841267905129227964102305067604926981953919069496126150755580145971822439145818497091204076325826128247294278546853830695295539285993249050946153054683468845537381487122867698840169480990172681052163117952260693763234551279256915033305526581273002906381348528356372216361916295680880364111586427825925046990379812591894584018639016363914808912640913345550752129140992567484970103002387895426844265790689864729226427857791435761796596734806043828102154197713357405064345080391988816547974349289507710062233431564432104047579757322566391749070265357806831295308566108707307844670498520110661374796100389037469047397153183378103519948120210231479533760156936622181203464022173801677218011719898983796163676923738600914215590134228738539367021870319749191832441868045189080653339505118831218352731844008340797758026474725240667522072939336963634748727199076217096075825206632945978921953756525997675577387052303379723677608917835112380228661996794185231149710528127688742330286114198619828431229668283347211851755635816261929020748562680201356673548491837013841211557847255081320690579494860171476499504285103455138859619102078369044136488264071345109740183387509960570114740843562390496656235927874021748896257307690787709137129854009733348308489734596671131071447440913888543936846482732034925780035615622392717895934895247771962549724741902487937131380851882965085247483617526855909295933410111615931501668661139228364700679775677133824619810624031132146632497605237527091444957933902923836356550695677525103054125198766924082254683527958711631887211679902084301848777863586337343371206832990582080740411251941649960782247495712569080284466126703006202436741713284322381206335792256175134297158090051234615223701285508329296392672826688606743422939016235247027939487710295803507122656446866761471943906934287577735685625862236334233968957069118995869979561933889069466901263028483060285082982990534114902356151109748091715609199097483662623839476754618354460461727905355463571162321309494794196157803393995449012617349618845803126788423001479257670796989225020751770082023676812342271370010289899975428390014540795943619140002192457827512807373349180164532755110741087584889318736343313126119819143861700185960024813487056836468855251283940170915155196762913833986749410960350723287839984659590358039935668884553586085879559315608984012518689856833646680453600239137574810441899046445062060016401611124939071395519535666595415710334354555659603369983068604058065000174707813892235467489305123340376077386635751297974584604788015265049367034416734871355217406632974587364171686373460862410453162056542765591025063656656705680979941057565834057279647163383679971000751782451896229205680711553520686866684172354417565119330211680760879244164801049475833988466218861548840672094115623578769501691811243686706932351382100721352144554593870059782572576370881829136513336666316941964603358766593784173857015639527129519853279241160546298337385962556075532892677872802145746838102660777395738368003392543234372384719141682306917593806132476950947503507638140997558306283483167508952334124000642991846210276598295071128282422439469385418631953018966049131457984210947636484627241062208975014800495031886536011627877406363230776795345753078479161263892484907805777908310823819898404503021156854829801551984669793215931050934252789869384601061781867618409036436115015443941367925737573462216231650339062155332370719949674714882650490436526839896036081005936835411310821207548479239523604305777554207032401653841439883660765070722276395432556556248770187888310948362045934305741616956309203398835913693301383021426493473300396509055879339712483051781517832726700981376411928316462554761679228243548419306249162882916115172414532271911251958369182437141670538018667820984600849935534280365229248034805475631539557918621277714736501706596010992446893460320649432214762384123606176049596903452318576980036207465676053104595264773401719474865706578280920627032714465340212012798947044302500697006709387273965618046258955484422909513771132396515732740578866754958276326305321811966801397870427634852065445387315346732629657243818440727735131951440827321779268010828237942952823307367882009383883850368938728278408309251611259101579185177021895725097903263069295700144584431311034537963520093924257235975012804660994931983496422477047906466678696272797382741537629769099616202985803830082256084332211137792912690615929863999810733121322930014529312742423396053448846718779906436623909424904813196765991269064293492915527682864109446685474643261769257741171369627912522372455342913567863569790982798855305486137742883637444364179154297116429600087541467103465625199917988446470752402004724048603688582891626530997238625519587678398095211826827761020882233781052421904121179765110218452572178543288327527688310909769529124013370866583040615695587778691771008262283715113286619683883001870559143059273408553838891214927807894227619623360325165630099392220408966228167679416131083759303637539297250711329497414318950122324608706085673435750333532608249016559013349746575107763044173849094477738339223882887757719809195462958063815798695500727315027340978660909409434941371231940567001903183179753355476792209629012639980659613556321943704592405679662961985036371396617142184254550140212125675670381370177610302953103015779158178051145759703514452034594036908645200716724436746948963139643368954876521071592721610068797553929802687527234194161107057242565574321965318154136596478591786422645216878490390187088176863947417366749330062821695758201638330917281837012692062619996129742389918014697655632227993561743755213243394368037260132125405487908542353103225018393200904153057281159577681207036466111083318919450155095296205514655065979364928140539198196470732320073664035682312361039849342839423128825323817501864220946681727380893973364035882484359789019139155446942476023125657920308634737607253254930209003506477899921113100022485772701495462262464264497232676381377538035749561076931093405989389247628190584572571853147885824535913322783105667967264219112898645819322128762525637320694582472440917348647037730847154368618431492803355576819403729219422315263214916191490000262048820324286639451880348425954302535475750079687344543275141637325786014819176072228111511175098077731913160842696948535809759122791004214853049907651641371404372038756110084629180345876796799557286723812677125416175412210041169880587842629889198043723981795009726512006312305346999221515725161494108628047081354055022907567901490962380423341767742988046419870670447780375480634368494943920266906057312763462635123989920261319400987892452290542647770848740303622373077951738029767046162825616510932411950906736309123776918397873806428326888421468903711285413533607860042277209540836482643684925814329462670239448563759588181850316036853319306408709379981678484765612817860136366347097432345679158938139387235770937657443954242156424470652403700159433113139999246189965108908092734597095953038532316776788711662118042003489010457529821491261009030011876007657388482723923851526010103284882894660701448737008184743350221401578440158177509577152659823561317471184873668321850402784021439834434145809689901914371214203409397536961270186083185393232172795653716149029856356498178807672191231957117534957588193616665924820440976784158650115153679225764694425429948852114029766786200964408452856250798288173526865211872190755152920580257264017996900895188321379284908230902948846214501344786134612375729393551011510979192655763585539019018038763638539721099432217680796154156451186538517719589195438425947058036826460702102783898161339747603976696618276076089095621975002497501722212861420971849716362184230348216369470906287542424028514888909358505903391951072748933114093359021080511345090682958624572178927944895238390383166794914609187912638496455097137016986262132830210677694262832221317167763104851293319271681577253428566257134596675135072287249968066572932358154023691692684853535154248260794820713311413413104353516472365012306740740040871698646121423972895362862252527344634046162620437432536463673983412919255241371849420703115736918032782637040255757333819601848320537058473474588082584305713306604686255126873390044168408576660684048370460685142697472238413401120792177166410378224981601381657078037990762627830188785472960028417302691963487489883611806766521308758139973456555639668240144055705477983829949738824153320712245166886673628409121676584975736169746016708434218249422985082334782160852146464003974598328110214154814829259305752890709776414452745926332113680926487454942280058646553809935790638535793338822568806669299837572239077424239241640589837741145953775058305685005649067564658099852062424300507901828068917952619165012703184977360528874907754977078845927479241489601945394384934789095158905366748827471875411334598684613456819256843041769942296008451533713449721343783217716790787149469272373476403024120763384413166700328041751336807632063874620433041677748961964245887645066940712450930834799536828163233816204951156434948924900241969207168033490638492724194633617379481811941116905786151743704617522189521002876794843056913784935794992865000347943663313473852629192243062570733861346916692806249442366100426317862613634377837509936957591637032856470378136863708394371478723845830808599624035304294080313881161477051336475437709259476806871681269720519738975339151175165607857951824696485321001554019949413656788411290448793210120047747173569735958090484772833244024061329677631495143396037199885220588623521716238345587793987426049726367436378688396424893024188156266813094454253436906546909795372835405974530118177643198990668505417074294794066703982046212850760952092942275897892252761864788742937028188703046520952176700115755485130509989981074237927992540772170378556288795792511445580186009396962004253405347638730468622147467213726600415338701759100637331270919212026523203604528226738985725280629995530824103320120011877624077476794776778286085389432250677503687741203702384382053865382653694514973139516229146699271170121741186649298298152616240571551383332495051445705272492288415580102613534337589860017115920669962916838401146617930537333838265886563891407235688461267981235699007635506741094520192135024106791045474361537399469867264871453807859786482470157900836264112223164046179949777507639689409931553161422424318590616213549070228565476960971750638002408217547496291357497811870771844187563585956137376590721819537386833480165580577889144147529632008218984976363935291915314000591284632074731425309217827901633923687477706663073085827686028348775940640040994176857166776203789898652445619553706533887540284666137444540158211915605093493924894983431561988112079132384206710320035025042368653270123217310455912353678408597193484327018498094256495326509821686152805846988727437459387664437843803459272003604519754730830447764404730883709535082117978436511013047337094352886680802074782776614841237906216030525979505307715039107365331683403175366726143444279362201249649450636313207458550698448616544238095588425825723391431088860617802839363839621043555294322226725266226879119538380619431645141316070688466226251428317280624388229012236050952511620906897271546085962647109564907762392023717367886559998093398869971353829417029395276986730804123289096680022756943753820785886874632280994672557168497580989397816654035634122661777853836964759472220944809209120429022830548956169113685495554751949082525428126602076239883158749269845361012238829079942652699162725330912949876461053213232700910664527930858992513284173094418247261244608125198600417763549265072400383804500885676825192282330565147840946071929597352710314386687484613672612147106668248915789547503586869732396451318711451938511910585789101209147485098718027918763631839166599464348110336370643639222557796732460060084226991035715338207373735765942345893186359546357299525998205925690132315436349575965392555904691168836570893446034195791826856334753555215668003133564757766448591892716573388419527609664905724567991203649671771404065190778245497410005623417598708658265464211896528584413930468710863845355661681427576190754088321250869373588561391101138730776694802097028027642575999742036931956178396020975602082140028987169349036370768212727043846230171786604379769458236763591992200923612957244728861629592351823084076160850266934696971034530780877531368537624209568278916903219732401984598929932322763868506827707014140513660561055436470878545483529901934822477650375279973504151737517283753196483255910529846193828355843243321231454899435294099241020413716077320574186646478788368518461653417446436456535201800545294111586388717709249688048126539381795906782942204890611155024406452636456768383395533451390388786983987727856697875893193403611018469926003967816718330324489808506211954175862277978996786718876884125138327618468609459466048999620458327841376286887723081974470991895874686498638050919018888786895573422202346214984047433046230355815013664127361756898292909745535474852019390791685582904014945152966098190889523141053910678191029706570107743324695255791420624559666275491557063507417600071100486663233209881943491760032734683271084551880454675517059357077662775104470901697070141191686971120076925055547626960621226737612784452015019013889391878095949217290876373287040947275783926740946706722573904329943949967722719115342786159783616421153947251841725840548967134014261633049747674881231791797703358674977285995158417311537051483745391419096790608251430105253694918288457386362397259839481874768428253944992312263358681959434223597730563052165756665040865545790127712816738981674848123386149877973695112117727149258847494562622867049596658237423044393097026659033330429201917918151790044557440373684407408319922500555269960846615372805656142756320613952354354425890943322812880503604630822341186352920117597633927421692851719615823918109611760817560024110264258630374440954430632428968098224208402282540838004900697736195266524236017961239048574273198035897379684768039357915939028990070383906257915045841498140247874473534858106810266567248544029324012696226207162100976466999983641203456936063925593365390317416835475141630764686531194797652578867079427858211471323630931999263826277886476325209961897881352538122414693695152066844216148340343118441252551594408350501214759520378785514346708325742776598049328526247008809826419087382527242775859730473210568883979876717313932392919462459493733086368908241322067156271075934733461696438831585477944984908826758945054613716327326441911114311868223097406665176823919832156025248329468945717165783084707994725019778505280519870069764087327416317827855417885640899428026803116595120804189242768516639242397034166062129586429274382018980014411587174393728815055727355976289375212246452322348829734556576286622499973740541111057805542406167501717219703071335059918638717971530225681000957456764295503816246546375514868878545377362802632839074603483502727914028405656580621682485672809965441455590902232758647207789359795575197129444145160751020379966806418787658938136315520911516429651500061852858286064976085586982277481498778205166273942083115058411330623722447552489920993601235400625326959808188165413273574828697073921525373037928701148142218632910301909645278796923895380976322396557241215849075474027485460540552381261564519154370623160326079627622238289814774210315779852907601745765900412537903097576270883504788790868407859119869787196259089354328866192712598486028449496991013712050330938136416939024251068511266008758485026230986912043067250433860569872731032020421165414038850132363837987599320072681522638143533751208220685254105739688336520685414315217285170151617494750814821193418394205500595382976447202076558351351385493989842684795322548582012745592358953986242228224573159727754161793103352294784388753401447846799533484985053825213046196500794090477990093412797386383137233573033848991709642261196051862065904118428390332330565042630806752287392731043704505907603501695870577612042064127108274103732674173609969016538181305013795142723919489467415565431836229733014772628718681025930303058839205430035479369020565802578304970315700062253074028127300830923755922497485012226549902174568869321800182835755743580377832859476064848695506043099154553586635043577189212056082135241144962057703676935586046074939544423653761963054216610508435038721074189630688763831446652417717873626834666475268394009577335865178407568206485364369200597550795243727861306723960734583471555229639361325358162517817745672438706810250504838566992149603906305993659908739374866317000405887392092946670634651762554086972600161739210808567437998770151739749480395789746627020139928577158044485050737280723494218263812320229042158988305738036725998050241413096647541706049260474607354831804006155794618999106051555993455927133614766062102265848658139811415853186835116298803604931241461551145947757246658895511089795027676834193955180493732062363890932646656445911876468369744027503624026046710199898615239244830296266408680622865647254538370987144364056206968107415861922699001249256060103387629355583950088463260776013032001382985567266822065049325849170988264146989977013945212883008014718499934536122114413358010821317115478950738946105522234967877964376280651463477846065805660370920878241691569131531815848158274630950526273221569531179851109145656142688295001503533629977080325756717324787514096669979194976701701189043166063486199983002611292625245544084022347549416114769688082118023812340527557890817963899937318761843290944814911876694745620102715332730994917811471797605101338563423759566657140678366396420819610189131640877878313870805741720472432565242950469384379064217883378737611524448253041575845066948345311958589451462493887713313532367347969556621254308334300113898242506291964504951955002978845462071519430209896037694356562518919496323500162598056628439803050524551463539875119227170384292227063090740735134997921033642976069320375749528730958432066810609943777158879954720561264911952500165786079890725849011359006436067599922283611211958783847074172695405056285458822826957695856068624164589103308253476576735439435294429499901731242203394872035590652463625123974153918398767715307900327798711057132657182383407731160146326433203816273287020816204137979556089241268076189033325885007705771352598483478180948498880500833347665387329004466815503786620130409423128192830993038786389431741371340596850680218490428745638216389921476679549679618062138518160797361586934591071980236468129682011832691987273594414491165023450653707099706799778476521603422500240699208636401158571623391945376143028621219563259424296778750523210260899792854001860623196145008322077450061862541059570930861987294381490932872795803649721713040952583346280917896371974640959397882909423605164948694640934391256687517477555834563240682795805870261136186974145290314621091259692626585554422622635153877630252473588558979963328576576875652520750047956692786431854356685471206177463576890446776301681174852359139392446223331280774297855659309475959983172998590392209457613221434354640557181379176363607210326112236310296814782978276598744889676366478828984522134916119219691657566301237481534262101267279213451992248076666689175066502340168392343859819490690943101729985064288368082048343891776697151154756290502498123106252008759675742569155866453488975713550948136986518985984803859113215776947129414478237137895948150214861390756957683506635085105045051296862896852367342575748005326454224684126405959782265048711078918135154382037085381749217671629953744896953363394828230621017960405778073511678429335737272122660607019270422862425019122190669300297247308019471009798888243509853004342676419699735797241078683325257709647677261280847963352801820626476442766653302789355797721295189092743458346414543207975211427597289470403781325840684492915694636173190807916063372633539022531121219656987551611356624725623181281382260610499375445866791871903951636964312347992600053115561002760526010911063205816750004324733630737252029611238293993931837387946313122357679790942151372016451079786814033966310411682993634078208117432166623474659626638226286319768690417891983249353288624681377761768944352054913448042472390607919437746218828792244878773234079785204288648226269085770066834923659985652322850320588383127202292886949061156773739261074272580935570526583038578326039209791159277800758354271123284465022671593122739006162513071988353262016725883116057095426765915627103880290764751796023594075882189502518634980010451394058544253032729758602853753253215102607933441417191895721231139022749069674735771730823921627115001398999968956503156305722395563057885785716254758042982671017587911276751272005522005646111085070714050384408435836491505060838575698855408594932390753875184757003053000124449932207512494689129400683179042610821600770815729587539370213846313992039527240946200630891951057314164800976273139222051683205244845064336789316459720135432342173245416236966326830632374737803517698353339103460575601060618227572035715279199768276900719288711151965941105421526720585261217715418815703012430792308977891543905586613073458167786776784595074189022512799705198130398395728017309748009946248524379519294102371855134035071975434874442951744362401122224305222296687663691542320098049601089341751038194396138530300127376436333023257840322493470098870535933299559149567065004002269467012449942936445662289836290190728205296105711394047374128603138624003005298747568324714373700852731734585934168233829502978548841258829765303987042457763368807644555955162133362420805503760267972821946592425385838151964980248921181192246853603235626090834820167702760438951566772459501121737135968091782308817564808969279992574642987784254219526808830661237439664974628892815384878381790335375718346959905792700267564024034556128197119863778026637815481790540762055370881314707277698318636430876301965360983531882976363222504000330829138062007267108802863397111607802423333449076772969998593560366628725107846180077775803674830499265936644834580291143918788349566086559914707839241899130728063841939575952889495980661491818225961330646722243322810719444337568921074479391600207523851056259191286175253176069314745998779576032030256594865101632810101719807260360675439271384478883047001543986568506857033412427380728483655685645601088504975926741960449154806293881145833548006201020570075048963936147631660839399118436360319317519425590106471172214064617973170773922814919110135791069618931880749898202545357145480528209128716523950139938781474503879904941122341461221921429204843693129406936990704432002195108497400011841671425329959045783930622113903794798273737559785345195671783922907234525348992987205990807633505588024612943586203242183397387682320218656213368838744326427109856556291585369947197789573446695044333812041022514687392780097151628401983091660762943455901814274218759133108346078441127534243952179778934948405792557380971538197541147947382255930461831786948042177033136767804010864623734753434360618949807626430393068455658385630843686891450622973641420893927393554282024183441143904327556033919546129010939958498924133349222422077886595343617068524994421040717766357342989205677240099171782364353983624044073837697776323333726961744022703214790032656953962076722163962549418616193315748189504636258740549033872910556276770507063039608915294957190747362357021966387349818572992398339172129891217153947851649178213634287784196006141237727589990746245222562770374878000678790886152223650049869400373848622475969520181331967029107786990459585300728828407135641952344688143982509947639298972686609424346040243352542056744922499789000900480957218807087543569625325839408716499119511881453608330206141392285066761549516708992766898717449711663727539015684018689858482503546765845047595541593740764172430604857053010510098972909280907268138352597686551842472854919913218453782305814075383938020845239131829935638319923473279799186262132635026944664231706318300090998499731410805870879393385084242635149744055289725067102784906290253260172683676446264790719939184592859780619917013230816884440534121551096009273005400490833626112653913893588855445478025909528404933863502698399428020758469988346362010994352648849334620154167154636489197097043590424564025028781061645706837411793671265832818018270235787644864084767584798225025266648467445154122343354545797853305369183451464393875136005960088825715489721830065457412340264309490194110257373541076945837594135409809939710683021841927552505868059593968973906183147725840085895968689612602024220002134978404930189195139583815541102876383266466786231355641841714826224560108534237512751630711354690698683105673899080960769183339684216863340535960330706143553385837110244742413500683101903379417648320773381673286091691971886605807507591894331325267924613072053838983511349329148025484390080196610040025991811029536756862563792557084256522980379278922481401434660157099681920561370219893926158869808432394240283053296449269671138710207048927970299684735240742675026854737827418473951128052391748093145715264117629439803833003885163809357904439945161859326316047463066881907904841449109181176614449037650942683926760208840164096140491297918095203968153691667900490103978343641032703187857012467291284796401521094646537647782203709531280935472425162930122004064181125868643825582483085310159935963595084236860880347786295655423269797660758688544790246121845675554867231319688282750705085017792299352467380984306297746910776146105860643617206546388020919121977737085482626536897856387168732070228374190928851787856216361799089245068863791177450793188236254313527348770615442763637252063137832210705763149842747628889798632543049544432074736527006987671304326555724334082792293962683828094095655026574147228821503514003084290012154507326953523430387371635926632358482115611609135728732106097605151978424007621118871319070164882354156902603876087677426688317365818780957289173795310887789291360822453247361317454989881789187755023556666309165228199509730675968204730186218037695079943671730995529139651686059828253825214072916693520484844194773392469173280791032981574858800105006662194286221262485124991882543911901073168993303087151498729730888755763100782829919765012672969470395502164604740549378349565993997105766631922879110222649833250286861167640234457461028755622809369270062477040915698037571151801243481258494509701962218467555071577197499839536511367573903815813475726753436109936291885533177462997766069783940527237325743939319736601352124382249927140454948088481289112242608441092742331837184018547100651934683674629025675033842030762277584912868272032904893938896558575447628812848071905766385100447936220839549828643683627168944987176585362470601624918518880444384978153346694215220849307834020660158413800895586566105162367423389253196196161771380969556053928923960107738047865947212846279070073270973124175480566887087257958140223555610248652137696182494408088301975356142189615398692687747627572398270725144397189418374464821722309612594022899270301478660311227387049641884442880135505348582442051664863378645743101485149191790928800811543637000261522116393406121644820928606585497554843022298673545588063842199099937565610435002855627758303732151233671685192426342048030967201712268531956932230554643294703508056503810423423465497925165367593852173201809453036973403500164580011616286887030703575961387320673188824683252219759631282685450666925319657628172890495864879032497652441446367851537768710649713476765556171573533023341479616675211073792041651758474708505046988365908909765577437972655105189693180309187715176464452998044906891421645346282958110692185776944661710530986195704303126717246120896750026246034029907412225844252633870511341606647563971811386418842387932447932952065391285199807152781339028231637575707121968289161780645341383600945566577111451098308130664151973763834445161351702496990306785140559645798880357255800879561784324918219124532164267409880159001839109044857259584080600929863922205855416004611450902578266912186914696678474745312041860488113564118603071260803668509219108163971966345754376168107081165246569546306328486705843368454762604388764929290797973461051146129578262723917862168991446546518208575289574115786333496555100902608634134362606653198769202436266588809639412812992337069882943739218108853095572840176651277566865136212831449800781079921880328989874061847755008578214495106345844030208150302464891584573674502605772930344455211174246768907008632482210041222054742366871169213137387396412489978397873106700312228653888326705585789364208097000051537814160111238922349086374161557001139571177352657420042518548754546492506359964389519202989788240886518880999417141504894566410729024495245290818244670677126412875666213667507268307093157620176016933764671566274657908854656053288401558947702425807157839190511607191357659688969800242945393116114800003745361581881569754708700536784782201917203287799210499416273837730287682469186398159446242591185665325652525124238874438207735522995937828422154399481370710295471629595817115495553758426990174514744272626636405498463048430795181220157124636350401435181203285693304883446839321957294334726784105551644394663056830608362115712909751935754458887228087395193645402390428367405241968163896117633652729838330764522244541993296092411902430807025010072647414967286977301616118606519680722010021930168460592152297811410277198753516019929696720982606992119897866866563465493163896765498535290170058826828925009689021434919151760840833366172621109913208351135805731544537034985267271236056591500628858552902035139530593107908226895896199029711635450671111306634733188816825092707819744471036206913611149961780998990586542050714824472140032576999459451320197500653114169868238238828123012864508656516660040001758290065915876202159531466810285469014167422372873103091737268696747193804176977279631867949199163767108624770099249846396958891185705471548913479428463730178765555095584527420437138830914965913909558201289398800486514578151034423430370478910585311362759751421007240763995542156220592582965200890803405127847253708343116369092233075483460138062791701578311802407029150265210120587010840431423814858172202659237200008860886232173237634726213528480137385129505872342108497478325173695394750278210972864220590754044414930444951559163663789248200401709699463895970313575207541756398363605988885340324391105371109464991022921908893641947948476312498920552044291700045160870596862948828962873758197296676928897307415178533542285290424130929957053945528224063844653308540321692109213989256666093757223580800350877137604285946018527049398611934519061767045612584059103306042704721908142231030297204901161338652130023110488367497792473309645997596494026534827855818848574063764581650600146201948880513733326454183771079625246702125887769708786682963924913091184874121769532276543474829521001905146146384946136381166375519453568270276921188313645282923328054256624529385906240296999458611442475370709714906728081459821580378033494695147152518660374227187154126983639996046906868072810213901505676966167985782871359847301095124445273169222309507809196710328859786516562138666282084102648118899583281100225893597184489810482303869112108244824880190318077336176487277838181657321822859702160156650714542843693261675159432135547021656819695533231563937045373172815337257322648262502033270795376627098279439172508652048673968746122808099651036725037544504279872273450561098731122768652052212754497615037113090352670988545121413215843160999948760903294117248308088198775761976297766055795288744434902820429969699757258491848445946319378479874908962947317146728213718912507675023958702987226655803202460301569901334213891608138112140508354424938583643350903555042532706714472870765122887129759667699598312390095460961164199459505624031932616951605071131429335641841631964843851265217126669225322856634545946881979335970579574533989457155624093799260734779195828163721786179724063184366181310990708697307644376047690284089887081630614238313697900713569511820133698915789283627567410488575986216255634623079146914157068593530936902781175849850790664316064984570415457775572130469842962288285656946211653495751162247921587881745877948850509695700127009176231059185274345843788104687231607098348146859705653641199488202568679336055123630330203601702213336821804648521085294158250399532549777228801141769327681257208690874604125637967507369284799075963287759310326207018478769081244593248210295696337903360676506201833563262091227261023427657165186539335498075341978482004760079192999986744028383534050516820250826529062309070966843791936462839374224766217049721119966148816571888129206332276394135668051066810983975276351902776716306470033592603731031181686986131896031353487383324651514593902426498729450331299228999758526483360954191487659296919534660470997528316234028853958924181328297293076757188017119220785854204885390538464720231140002105329187342094606837937169526119951622581748464861739603738017714015532339069176964220029065141236488348481310858569232426468968257669668754546073313495818174942614116601827285433994689517851263664603911491423512542873831187754025391306010856572573881288463600350789746242440113560543581573991075966309606634488705579271253419680564268979640826452215484426190910246895325606800450792736656070410694689564141294329537560925447256909361374722118526846333856460059004568811276785906099945047973530172650567500654675502892082493667227962941141824442594102225842981548762959884304980773075894177388862185772180647531540231778348176679206402830139672464540490902987377646322953231463255839835820124409796872574897983374668216614402598806089273697965404294040057750131761480093200084508947928851332806937401959583239357651248028728341008955879655668665000411475956020520797027142434450351647653993501984394084888340342033187840219004043872618156486134945513329797676542545566809643317020887635875898452313891998229655852395444660314575467689649517207986669589483546522316124298203977392323726927914278833704219134672262070880807975385660088679312245954324871623339260508889814486680381436665267189480968219582244708935416001229337154425143455511189624826726344611033359286320701544249910900590143515273542538580797109388194069242797829337831507494683454452460446256582215413934919894496836805247354469589756727427228315006852604929135026452356977935475453078273506983847372978608148002590589936862834462207162804310390175829636758000138020232306155103832665951389375796696715710885116281786138259557453553168297513796302964483300066298411233248320591184160201474641647899738843746690917314897304063836352528271840246111915971655574727779558960110509834107644346684615562211851839585320640783771329806500434792641133091164188125242869137735514134760983453990351501085040191230147118673118790769913344037804281768565844791081844136025460814474261136990232358198838280849890746752743155345640058063206437355728902125536036292316141677976251727385043840561047930282387008744863340520652193622571570176209345695143585785159823728383966138810965309695059462504206627492698960031961481172313648062821512379923693630576240523919504876453297315878906779225915530762263543154209253506851546905314170780013948373970497681987201694393033416565171574838532748727538998843569036978463694405948152557093368380267933281472681483954103613389206789184041446430772383942058363598311493090952309048202493449948008567260250486181925841248295062472535852390675822977264032325111543510553488557985454115742170545328718503909650568022993319951643287960860267355330188621131067761248471139468912747584683596628631087201014608068983273958688748086806617352410906956614938573811371694416520222697562386764452029262945814688401108249534428701740814697702950895021307989014000747341165548141948492727950644812467572735598977824733598891245183114234266000025282608686469988615208636298899608670157673816966441739823679856429783375299313150573412839073961930094710539830565477008187040324469069184427224764233245059679297960506253014207364335684470807361534993308156123080222525806765856466277199660931338838962298130284467648177234372522798458730386281544155042935292466469996252966402297380946155765647287366340694741891936067146152056841722087297749434269211498302007342511910047431801913134631611578227568506526072836731571237192898609411756288549923731077540272814204038728711087153818297259482109940297181133904336753167257239104265626404541438857164868129379876905114279069725163584804293338272579214050763464840073943665701484273974931006241277683770837231325762053382462105124853993185843981709183478995532921826427814522952577162135070917249137483099857987242454476336393788964111845252378334411618112838814223921982110598702251046492143378390686811129534976162180693161686378686000608135257202776703837580733400630050939914354108169963155797361251710484962220979005521037850434945519778118875667689619059844419669546811068034091245304057339233192970277970735123686631692209436386839240759294260233468740792456644506213790349576264953012870205722081345644386677641852135979366066973120469241012303481947523611773639435424283388697531993396756874331612829950622991004745286437301336776408401740210511208419261749914182529825823975770054480292627102215161138579992634289736104571278623788789217685749172509373658365652286896306289238333689570973329036730054258527350505041547559723289385339400281500994036623784152048286512292364125295553217445277603362335759521420072635439606356700460965131834232088044576438477607541450951737566930288494722614550803609658199782512562603177681289224006342061511233033003491642590429645081477532039070725659570014225448659600603531590858625603944028467858439224335985127754036921421803963417356960618864932132119749317708813247030371726685051084649359782461128781174915219247877295968225848304652629073429031708025720285506983820145825678983110542901827790934453286922669392055041456396593540354886981374569450092233020571183021919403809247088094269135241835306978182607289957882004010874518946928774285224138388234532375312557534085592496549335320421377070739787309581251368105713788307844498372217813465715019922936061792028713149118266146254448001032192536705754852717895561950038768796394814416349751673825124250246806234647422784956149585158427546505906465715066642246795288137676565206959117739401460222049003075656119172460366346155088493007958131704333465391559482434007788991456916894406176057786242655204153279880156824952690878822785292911659045951914224536921204866202599221134692528173903177752333325993713311647080403865026015024661703113807826430251393944888329033470596123697656551977563088260468185363799595620836220074569486795972762492760909947322393079805377297641670722784074539640748022125072292283501079269101268125858537084880889122953328330339465539166059003469556917092622979612378404311592200944221866932529682526080518492727886853083078806175229334700760722677885425906430249682331150296235022034861671393890972247308521489835776456625617772887890555790664798586356528668047791191245429424254160650754467225167348590627065596888689521187508570685439649770433855558146142141224882464275213002467864505597697376171679067683494782133695542243461978562131977968260582295050958212875410607496851901588891358642470741521303662901888847820420333988920065318729359772618584167660725115464773871468758578094203703587404943550109785084154077538275189640287024594701252734369468095343662474608111482997101644261944191808208547786374250931411294870486278835489273875180710704967285003284501449457877782536845009116816610170215434027409412710776350560254002874436529154386088036303657731939476599408899720695136540703858700373135891184212093027500164286714306052362731586621011944930092278088430165357402920195393120865087644061775605764497032435663942278725579464437835177997232595288954155807269775437385117832841434808952293820043181036340281820952838822180685741808267334909061930229282237021095907872678416747526610285202380014885172304064210129307367427836287151584069247384491185287468303812540555244318591856866167588320482058983641956907999694374368410471578979097339278029177950684204081667421326104347702927313241366339595245383306634402897856734942899403568031137012035664343345836345142997491067688589677728580031527058481435391584501372621151631175808892960566367256068215735561056682236417308418221430144385982019690917674358565151468950864270257930292819932704842072267733602398798059913499735743769640279527121530424812823653322921273583472431118816857422084645474201770953745830842611061329894187301628890932953529136092871909800924728714581484176575134395663824795128504558745795528772706235537363065468863946986878306468124943635575427373672474215308825137427101844001729953089565325435637895588766245407698032446063132984127891342456080451021744195514007420620532918476265201630950306892756957401985759660372040183855794870702108964284964774834456571519222391670186316953391564939163400868346252958996484699893813419792049609689215029344462246212524233590245098029037510966624353003011743039693167092688256915661109024101881910706125996883873885747154731942647624436787692308584514600458585014810969296005561222669442819040297446674733210858276073703672752939343242323729795177684909373270467768258395895140851821484557181151280829444035901394931168240796798501416246683070549780601453031912446542371492319365762260749079645241136124422724829838557999018452699016392174001847380785295244115059808999824165685854663082988790619354055011454169368219021748048661008286957053579827926485577477228883443183513551240898389592390028289754333539037343644508204026746435082791660368508786619213107993757745077723088876411759203687497928375209606329031873471696794668216533552256816908378464699655796339664204671560134286804643137846732479777930219260110865138727112275502948661040813933671770893373936314380598877837734033573018647652363139877680649041442502848799469825529250779078496901204644219429741581689459350110369801022067454456638034402905671682414755926865700137732243815756892661495887233307001187719316204302752114806761667250970707477496884345584270098484108129569710065962786547881548405015047956113834910736670183178866726374021433119745075059284465266743875352040071111508045829691967226987569809680679609121506109630798687449383690248156037160793291042659337448729851701040789722203122232229221948108507930671777689402841921933342928884465577042438903190033375923205409195087383115311813862273112932500965073390006188449482437778109736378842682060769991363145889441870221744637600405294427021171941704598875896777228520379966019709667289599955248705240843459099440924733488962717489944579582434077564729773564927609538607791775138762100459701682941673499319806951436108881856280522282361321936104801600094905189672758252184022123699117464425453969725692747204479091192457128676330038983787247811243617232890161288928255895768563097275270003283030622111487244385474488491032389698979406245186102751451085600710990822300328212998749461938280684959162030098298907465743796257079511708676311420320341188596251808121936068608071357026319744770040172568375815532760547734946973868490995271299430804290009650077236719323771062643388100020256872275101379967516114933893415219804347641781967643747146744552401832488611833922974963351439605374145268122281548696825746649563015570958783927903853274742916337649269330050991897152660368171717529369084018850186889163526003309791677632452533053668391665149126140010881673364072134319731201353783814089942871331588608037119885202476342467016738675915200585985004111194554785582456076493784034290960599845957245348367225562425672722898541448037038035285175530127144479326213123958259808723565902166980350484462713803252945080471075312430606232486547318131188763338372171117894534737383218940157103269981998304910509617203262435231272528356955477694941653829760980185584555328730812898779542134578253889027436453237883049141541430784223295913246972017922641367728918069997178364609999158666556981907405581038692122534756042842986179710535095336822348229922672531852632358952848788974742516616675772271836111698205204164989997818196006113746814545569700291537505390771167848322215511279930374420688409149241729277104600620511425763248622982923193126018450660826880907696925579236871148583946902815160658815954855807795120801271064437494746683153311266752034376562292648346535724972527374797621215526412264380403607831524906517052207930315291165696324269556154365622820398063032129052199441906247930163366365730295180149184536167203811005118523988903824198198679446304342037091061528320065693010274081387663641695679352676823790249637392343589169475704743241972694040973644688280622411708420924740440396351549836874310112436320832447932174558663593510314139835330846437512537811511804386300933074509603754402709404464872836055492830216825428659874750456724692164722716966251783625957287437861437482900839925093003774639129790094549578648961415248961211804552402252005503555041335469224804858803027205272280180515352181300666015548717631916128447536135486817500691138730552223779595450770083292046484246250281911150789374847361950616344452084920851362246049149003147288933986606608890429331689751675760011837476405928919370209271946157774309591444028217564892873908462233616994976758495880943562399536992236417164767868092438963655439361391206209183587702597894266233022787900748968361223780146335288434438880721571065586227758009883013746183136220978398528850090407978485484633766146645782508179707062333080131232667260482907688927853019383179632455005580552111841306227422619409176085786731392849983235414861936506791949942928713654441624552687104863255718126152696928638778335149594233642520100831547264775642109682178237740850661188820824203943585216559821830914988080798167905629393891343922223300316621756044895427060063702072132161574244472274623430430474314186500904306380702423530799681728121285586081681014725307012551988990110574708318731298804977902957646435855997690332957266122481914118382746872988315697147728129763322178478953803017015006799327624203748626745975757740946283329114825568182550518996610150811436497367112555075169951299289454437773931252283459121173804578712409506922900856529239973179854715678863372718313937782832433523873957880519553099134620370077230831410175864595336101310431908975391135281400044441721786283181820152009372160195345798625668040079804313725798771191492565397937950073793255930128353650195723912324373076452449030446899682642154992251953459339824576847961927777190285046888969990736446053587313852475437090603854054260049745032680229829606991932077071228765749709939400036758837312484260301476365307181734086137600782391433350310115220864988387611435055096032819805525563418093586319061246364581500568610150311367622769831139769321012589748123921127550836955732627330828792762333408022332110706532229781323420370882180217909827128429359763669452124372745038751236646812449794499477037873614471242076171702811070042650635846327183262990578195700438537768563074053940086792873069249381658167592183288310327948052701656968301289770214423491807608915057840106083752350776042775362388966232552442804773812301792424982711893763801409681297577511285872564844063606824111606547896786578544055728601122523254199634691747308327173072819176438448120517430806393333615929447399157641317454954126506905348133814130173600165119256929743514368393700528724287508266848843607833550058383518714486878575492310424414823345869075913751051931455275038092935675634176055412238404237913363681641196336801079584770011493375473528093093785527421661798168951884746360915947516571274712635061981272837942106670541909706855313246589749356660537222824524169778147928625737884508844263240810439351045297761038575199587202503499475046948430523453265723361336231142077911827649909135629707168728775155511499173033601472766958877200542001865163158455773463865257812404162734671084978585598517301008783733527269008170162286044567313572363312727781927483595539273924298655118396018710078205063741419649244604540073026154006549185302460339205375192249709577568553803494840999538069581480688137109558714111893864891169765358417279349506181886953466819305582132662167310243187085184768487994521190032572080379183730277953080257403440729018504402691646645209329937758723236165318064162745562772231193096909723462106765951298973990251922631168051501745517558576429741129191639360719623996979161251473091059690839739693648599409041393199532522368358570103107190229296862839532512850784022513575700920804389544896411135772316962479816213874786968012482281280591367783145471475569998098415314561626290120164258454762442924815852791904517688448390572900762547147912166322888274299593134551962734495518293198879410230570887022814547108216080967025440369126072950909815482093248766486430473800130182856673656973577832842421464721330885849603388808993062280899926517307092533619761489580882469417966335760885672713629687382793310130964769602395486356363588089240909995285670789354645667851912192061294090182515008613171077008397266900133302583277880155079737426760976740702732493742891429099305627337410699023484798475024538826773192331003591416169390117074041300312399508081140185733852478872557959910720342813945688516452045398505335830775586600393660859116641635586504535551391333404093258732680122187044412103895265187713187049065727913455663735048717738561954889977427819075219977429171618210128413070405622716929936868732167424564101523211702127268099264233207630934496219860551707729994241907792093066725858857091900525614658069331035799097117311209271571530198655756130004682953886782835869693649528872069629699665032323027727132962299335744357721577493975249204362041888852944871925993622468014749940895490242363053475232157839975796131597272279325284337980037598960579301012205820825691190989756456119396151972847876366877495623606081624494851941986608952696896608072012600395044468987884712571483289966270102017799661133410938324453735722194711544048051267311132211871833864844865545084822974283313974532194977551759646731842727707371565691086046975591027661515004075407515115164695603122932256825297245178658608540880911999276856804946784637098859359547943867532816115001747216302246858352344038011586869903870002473031525621397196109616712040791066082264793998713965567588561655366862129790533333406687732596048963930709795418417425048310558642555231661722215343650180662428434042344801338296224011307571912818279082693317073530235058511613839376871985458590013219693752560356399067542836193247205984821054966938312585774469185575866570175969183989551011254955928723718679796470761831812671226473944548735808655684765179813076378460254371578754585190358151165918806299736675393342032466733658475898336234503551871300127740198525296457012266735509928228609093550713192243349287622526579672355288767224282204753202670432555000981293433819656950139897463576130794099926051536980607503544852019966859478607223158130118992163092134141769046086272135810256020740887606766954358587992191508580493494955281887959760887058582387509183058391982971237400009984605303186769324509259759494417051364873385727110213562284992266223007278936104306192709053001023199057628885126289497738950906580186177265370948037273948440681465403809405008997834025320256488751028227955390186317692467421538211647896094596271897097319959376197120154067747522639914203121519435938751256153193464116939658603211152901365861878058255512514408642212474613266629818589053070545320691827476050313373620690764229753592875903908148153639539612441210243439586477509283523962036153509349856162790228953678835988605980081978549995313023269340366478274452145891787102129308029374582055885661842274955194666772917420654942166349836364276833539159142310538181342150525061130908834978473836369081192972495265408141885969278507536128109560800462481415960848722164283257329551189386287376366307504706312075665780694817224173316710520341668912312145031272184822434720608492774150860267429735396059550356803810870512959100608869677004010513997629685719126932135629080235980173341174608583207709267652731851252377978743630245394331048749242770662932056844590226662123467939702630077681787006447793184255865439594191691564194900230035866186740303272007920174193882405938507227355603910569466228913830863607451166586697879405756864446741698711712801673088750296650367932358470727377264129030057042004905609613927844728692894099671643140282587107289736334831098871198085671118990465264025340415889856941975826051548667177806738757825255234696013824309323539616018708931480162315924059090566645432016363613593007071699431875739475475057140318260310496717237307698161167413120716436592107660575093981763475424265184320315501579579001043434532690849319453835135834413756310577103949215728529119564015422562221749345516634875452474994231438691687063202209740643853525215240961118616652452360662265956894604030731895951189662640629526196103869281544721205870295167899503536719587783034633647539727317135055170600875401014014868473209465009416100440833610239484909093015138500206223730513205319291459261374767578767422471767157050812545178494316001790979753729379375250428916205765375544138502550156699495257955339225622892615159457455553373256118038479903408300662338247348440363589516584917503088031319287063454263279433141972681991713700025421087671834662294484972680000861433742814296236139993959366965637102806598417918151867069675022621778694686958558295582199617396330070318113286352684607944703427177369595541356813411453922190701724393253257370837168889289992908408735720443887880128806683061376799803391235565562464991305691478919523031471258252884294679920397806220106809843146651027009678442722528731577940876293113313874453068044199563062864427569944511028080726264060066417057207218598493466348687156212201020537956509479789200571593111098329064232952757051662691368855508577759968402961237014575636422678048005461769576022836128989341872084846549767355874972177448510329385906460718191914181663545405544193953646290037876993442133433943900688016622568044698824824121873985323996460237774759591048893335279668915315837695711038991122539352522894914846015399553394685482981817794333074554735483480360969238784962636511638676414043250010090771424019812542380010868003099238490108750516894800996837552299239201982133902717360301314411654943196699964743072410995332243121255271379612168497298943460773553748719003792882262890510719400795892013881362052261477701203246266359373417312432164666973645294606316215773439469606268379029161175542051631270906512134698779754095755382157069460173019221753540236106460536967055998741225580007767183869167642409076843324293904952552506752581790321691025602487867931288365221581071618618407437109465820633501627491566461730241359538449648547415541973689805740567514570714388191185407779409154880116857620583540572004586051731174861000735780293033246438765352616293704406415541717105381821825703771888426997738283158302154621075025208252074827260851695069509296372750873665890908407484661549887090024093133082074724300460345481613383785284957964940401050230577444314446489922935802328425385349244523251471105118503293802143094743535728141473246574141722089548422888751366709942610742055120044532678936366283599102533029190168735787454193031755436173850405667936656016816785330714418710207297311829476760377685844593828296459674514206412728717803134974695340119953167628247447594384728229754206164081129859324018340028848495777609180620839017888568974883707991578144266071534668709388485463711671720614111044144554240324479432798388926824584568691292432514341795530949169182904677761362173729069820048761714949749678749013371847911197980807657817667594610067876885463918757189721687825401604253872359325913873951314992359257995115505284395722167923691479371141624562914272954454609869096976322323453858215652446710848280068040566277175144973263162921263121282209394248867171108499245286201353507703092206845441515152389376603852953373232631748260526040223058378898431415145302144479915062695003676018132550770542334224178095440714105797359437704448584375236798758113573674941425544152718781573730221395860614573520809339735624483530794306198830202245505623875115493547773499895977533372785489993315351941308734729838024120646601141617877077361821834946937789285725340566350413965275994199507619441547577926118892395788070886039412827872310882820140657693875188506471007881833707846286109887609377599883029523717820344356691790598877959646035003289333993373631571312084937219251052318677069457495227656308279468667048151506119345208040026534485253674717479154069260090512085191106087514619251136358739371300889328920022575637088277050394668779756649693761325162143902706740438520917600424805742207448373665422328832189596453855636504918354805877417336794966944407459148743134625042859191120359888657749472367875746462540275299257812371736905659188033073810737589218355130983286107126023845074406345259091990639641885071796408240128881117011074693662896269844001613373366582967298614413933830114584015508900246359289061072939311744456172148709100898276488057821852963764998248946605383668248391550515200099332551279596716875173536107821864968041872309927943664029459642380612971429573799447589329502687771043670690550457110881724693833408224243969645500318680944318316772255623059779738942050401581215162585569429819844291378199400067645021645171714727038758488623787884053713060534377529834092273093400953281443909092665094858264197749594165327698558446222385112132198453913646629573443403953843810611662079570496566142012390979827440261729908070594685681432174546784431760502799810844007832710885932789862688727258883385353066251064554204465158223231003498374589221718952095529067348694595731988598085247394962883104734541928189344882379924549081516710672107678106057823754807706146604721076012731284524453123046425470627186958900201623399584821242290160700587673657429967694202698084598248713677176630558156602363253554199809992381973523051648897962242454871992150825716173797948071809097914444807635510054481515837806948859851948597931278002403641708849891978215413420356540942198682953147591981271857582448404085017251319224428328481222885423660537436327129176023429681517528214194438372128274340433089267099442368441074527093413944669704412132137305275722771382658344562952304858267624961335941351670145982022925890116536677031903479001742019445663999363356879506156894536233707055841089649256074934215005698257484166434537354294704149101207476781335109394282519649171965993043655485889626069625221912225095594001962602963760234180355557659457597915617695966327903747187992375548523736623389096556614822775131250179824311757873578351608598871212180942882311388512280547075653850104959277443637384705234566238418156560456249120096766840666147340008828683630169028092410105529079629398133773810592974774391289336766030202930958226012150877623468709330756070067147098305654256341455608725609858300813023135917862099020066897764787010638863565737835883676543445000999975312708096193770154952355314897320507820021621032026807097256608987934611574920268857641765733248195284116278922471996773529708716190267613752422160409048068545144124440736475231338024335611118689477002739432575829656597894766882226080276068544162516799858904077668067313944956927197266340632459005213483319114163122026292540633533172481197649888851322312500433909543433825548384210645818706828903383949486423551801184091405011543671004497429646585771858528549074753851766146946383424391141695549142117115249508956745324494336043231541802273211369666873979177130991185032369550327033416621558293441420324962344856526113294991307525365894897717807673340369845007304611258502914676712713947941882197109960969379090285421071077484246638999780221994802554213776794788158993016964909199380159430716959943119833892470342039183533116719167946168036023209948545630172789014456370057066379186955056531570204046352760469126637125779639899723672275230902158403033258222134212103245717648580803614609668648683413142462476449267205217514344651013993096197487854953210730300502324752372364089857737127776725498252865435420615884071078731061444264842069408742303794576624412291293383035013838250218465515498442656180913407315449145882740099849364362851084367590467675237421941935758859698383075455492403939212459306170328842529468091727162452659298553465089378548248180011138370941148638038695846896672106814325060112641243264614114543782903442052331511902813637793768344838570607380687294895254587512212323895856413332774829402955246814228549168740239071562276892297609870690213770956331663018068723599797057761192168030351270472885923890058090873091328963386426044302080979828264366960263875421562853600048157389145883426086386421130795039409733455721986396455273582606773312142699408946584308264115454031033473524143383411822511124733383779082698445314375486240698427545909609955917522531335893288082632271861741213335605731686638858574820578854713014399575339655631721036211861790783180573934060687176495215536715145008890107972159961454456260506348753310187897947513913017173218719035916327049852652132113757071963984243270274830829487274714184664310046161977655464733037445273355391585066777476261605038192677246211101363282783750820975003396249760228686847306569392447183457964077462077880270638983733440428961868777592887101672844637359038721401105700552396333440614739087511624584012248754336562070160854865885340039384806093299578801204740183734874121711943612190459709428293823610811453800846604174374692746157430077948450165629208227674811593210708912592754574927467587090545191705604839469419683052465838600530494708662162657993796438007608528238529012881714126888884053671730956850652559794687025179097098715706992107255028109571934190042790490329064751885640597621667730982236395676506803456275618716501490988916856344493987552070146424895581177503565529485571051560101119557532118880995657738295066727214760553565810350656904322568989065994986809383830173702606143466486283739995457029360821388262478017508401905414486870019895905976246301059902315216582796653901853670908280359563767320323889376603357648340457244919125369157327989609480170786679802420781007464457023241377726234053862031245418549582508282880957775810478731311828043489451656868364619443337441819484176744506511036909223448502830969046348774225382629762635233762876162038474853009529398111329914131416498668354542982701645958361562653573549487370353572973697254597895558899199309287709249504022559257620375880206348963936490811619810574690289299458498421656306383290214007565378641393791002192748149266330036147886400364877063914497328557110432059458417260721444913645340594940052371092759522059641437904689214056051159581549384701289658458728498481987080986061831935722757264602449567867975816046499706352745824779611881014489090288010910134122504186956208900782727602129487239060143311416987879036458669261439078773767060515059165271493777040194504823970114108282544885955619978374737300170275259006596130696587468508116627962048263578032051599576837540235783818757784029124065664717787161986567655212494579415659272325238824116850401598125829816123366291871361413574529854173183235258229927910261724779586284681983292102725593619933186803429800522126361470184398702482166225187605772365430578958457802938206368606313253703848686796200574588216038233361673914068174856729254514985388045970302533415294123000470182762726170144852232008570412993224576196905719125441878554879779065804284192795249571024179167789638462434675358093063184818387495038542648399567733807443715656834269091804536579604880329687292205429988097900505288193958811180520978925325096614694052078885073428393647155071940388892148074716277974524371776401648675014673957022375798315238354550337545305026873611220745921822171606547695978088223541141839453101776690786857715363695109494740197487368265273923585217818796322946526054728705241461995581347327971233888401946260251119009674592084366738319115068958916124828389851901401241819777958963382205722290794689089562295237472713199792344938427312825257109731195558829939969809654770646580858182379530420483410981612535719825275474907325932815764720087932034640781531758123266541867847969378467449410521870176950797138235970038568119737674491121438820697435624355802022389161071399377161238636458086450205609662772015164880756112580372895761823081363639096863359344605247973662040922071749755017566048176600308653300711375005769694483562875794497175606645459646700230507158912760887299731269317337140339173394869204108203720490748318961138215426424024191071880850479418461342291351429406336319971251264505806861035726439759978391377437714974900230883210005979719067447978888293141269002879012512899964571110514235971996139553948957077882857345406989078340888875019239564586339140760074814411698812706376375149074479197099525265441004962776780548874359416462500127287828635723663138765348091333696764081018330426068923923488314148812861092584285523302976438220387600697756580207054059267474684281544177684726786231510716737185424264715504610560063129961716632892170646712792116140031944400141300653510170641585652033868204248143972023623306960777504656892350263393617387362308915221001890429206472006152302244860299718526033592249132803937332184160737989208425310707046647827858615597503298099412405780910439999817420432172665957575234630814569915232214812729145907971006455762192750855721633007473322174738971237831551091903504393553588039789757183719548449917861438429506301862653360883737953213247284977072784201928666033686912755734986938947463540011464661378506922989955112934305850125261812246098145944106409695945123715789444695106078730111865219062550877242932459367684849476767230490547811602915448263925189992734629645932575701894780455587679183848789042028454360140591667209225314502196729449636589048850745287554210787647247973815427864938001718726101857103585370906437285016574964225038541984254746333202946958436569583010112428805533282734299260680525684203444604209880860310038038102645290104463276576904142306762221482826839719522230272721049882158153547074622714225470523132985896978527052051786100334397503088139855923575345798755615087994746620956609207578060301592993545612082634263877290775462966037685974752197458864420210185023962169666165836288657308574058191819215112966349323423207620709165056510283838205830128626640891320148784445155998471855835829214691409980174556768521769667497576443186374351050210309989611857529879838372343991114621631965745874297268334033323512717414826466599046024379313081791535160742841606928512967667317099491776029146137037669830236129553424687601652826182784722429345360479610190002421122120014780165479846672782450342737036706735778104752188526902911906124523723777698820113561136429800973685899512892054982801971503301422879298911649613673402855194117900381724707827321108801072477651789167171561929019013935470749518366418411877036420052448292302059825814563938909917799132172442010025004183571586829879816552174703990948496150474771702987868183902323282799856073800580567412755896776893173085528900810718721610446545219313514387157330988628502066467784047688730180591400655263780532889402419400105306938537611372395478327872213343132269836319514101632462884358029457062921600969149348324491551524391763273649802807340101687490106340759395344467117491340602967244715036908724696210032686276049376362202778219329612865202413340733931190690411021045917279115013350053425582752939566340028940988294018081584907664445073401813179325755528181281049663229978198234932585632379318824729433743453443215773736277038215672415056973934591452643331466131118249072287950318123971899398997169341722260743422570166633809902691144414205979965708411330530629341123437049578268557611822181779879573778913586017414421197850023747373778999668067043301905908919829344950589113509793525049499059888802659612278313620750209751454169837637486544922565193489756860371065702626471015424329142771826343842608874438119194727036136325969085280009919819950771752556780445288207014488393343481153547421466014810849981848669573224598343750947516009214970422878742401338177974906573820290958964344154113042111295400079132205422341381226638657048755352335077146354669471030540319831125579489025159722076449663744082991408431958315243428877246279498439482535334775885157152139287473208299403870834206604394088147661158737301362826553364029619025538345301502732717880175419319170805598827645457155585399617097181432526226701803746044611988197836521505249877432843541761655528090501529946380753143899152999174737286380782666936246388165310170684940570307658020691425499756218360564754213975257702433427849440512831670017993495626044091981464889165255172668442473857909123502144896499555599711560998739435529406061109775514089263973913595241521565397692571629245451185355861502746680101262691226090767249843491078113047475043234278616791217667906620851990144850452818252600252464796849925907835446727946747543456758214140024932242028593807212424335840809242156307474335425040158887952377451075009724642806546736835724894072336365611846543037293067513820477990941009595042410801279033103129228257457938348489263006358099651024217627766509913947274353424452431903123374883427159176413946196164631802851069945298389541388628812451892767319196929058776493980255607213555761375412663093858394357515473695238005099137613787162276187098484103117044400734519090675085952394700308313895604420610439670454626970673296509690421219032056535573044522286095437895581037508182287118102392690908576338196230044774671948453868258452949775773033783159428291539667329917765116602645661538452014849055151949804719865104558409912087991469800619068581600941253313409344683161592189313012755438877237989207293579447530653506216833737855475387640513944018198873880225960448690564237510775879561990225934497280907559048824329627383391669579816800279651788114653269518477462343553882906142077318447984300897178770607980214682067635119458249051569745667668841996394013435730339940833800413134065288903411944912601750844820129229797323308535528623014398143132331765235339815578417154424307223255719096345472448001727027139484512681387240182304119540942860244499608050946881481660731832980284145978390823116128801454006394265841972526782076276129956172512246835137135218913159416781214733172990751881427655019240369815381252869048520301850025199811175833796916889600211513659460366724137108497556094953097315948732122688107747669809787419325117248680768664960298126054731081930780322638388278989496705878595754020450395949846411251714551530978179905785246200107541158509300528786597449870290032382957586549539064264077138304902869542183653560724887000196894906525951050193712740335123511125103232291052229706487019977734356879861521928190395192605277254922230600434547760623223906990953492955095913746016748133291554928276802708197315413209175146465766767793071864999984153374222109739172161281971125945540447494430229095939806011669482696124148060245937423980918144698558176662690094000377097091013465153389994487365505861590374866842556990474341551126179767078219111030408843943353424312088992517449138712639553700901802735352338032330744347474208531441465037253013394716106272662389050480079350426693416456786604008711395764728903101562850224397359529094720061764572663030656908386227726609219803080001457996485113511258488191791858824538611950521554063116680168067764741530635995427692150822114315322212744544827492176161180803391723454197277921422431412204801265112669681232266327476558985050172368132113897104201421540224735615049373855651494709918661736562543747826953778595967112388195644033275265411431700945588027951644190171578791065033830698306877028967922401662586374003107689973324702421772781320818895188558605002774350898924408839396910029299580656710632401086889017438023581770601027627004606723482036922400522727389495392271008320879574145045995330772520835726894676068207344578107766153800776359029832024178986921287204962597145763840749922080078860501842499257172644337211221126775072680474042704742403003235799886089989018251654017755423929142365750724636697278487681904242534646104350966528040541523954550235860948263337567686866693339741466058746109532362990994005667195543706393055419390063423521427118681948144391080305783641409470770692727548574797019926192995330202365104366702984758582992628254334168462655549687831356051294130539670566326137476958452560832519221823549703597966357884802615876200924070592527715080725565966374661483797668584576912101600031998587359798494128869075959971235083191470077819818293688631119739721790013408100459391629801948687144701395422072739135363752934518762101523163115520609109580507633913451549708584770874762720790982443861451722438858185458438919045047449480070820502272909867065124136220216759848564704272312342409321438019157650832772531285014476145628837813527889366713328008288394548795538219163946669358956510745190809854807118400536138228007386761831915256986271730925231349069692397278846863267060117698281620623141512733444202648345654942613869623321086432225819953223765784625086019071821637627202015387999011576446570043816791161854141325885097057322068265578359702978732951731423722606446116247202511036670486169257612464045906279221903589543829289124966370908223719291807051576847984800363479832898045346095475685054925179743445294716605591391494612249489076240707233485123192494367319637305414369603986575975951894976142504255059821511339397094741919900690630858887779496962292211178110161748454269793853410787712148898594522950840995164775251296969352399979054226332783031897418647423673301303995564852962059051588653660957881003243739036400173101617182188038476183384672195289194051038687024023919623458374213068259293076864137871239787263192425935772579499329159677432620255833794652481254687534710195098838269215505811567021341417148280417137498307539369463430753089255739540312988999348919612448000061121148416819339667003257239967498186687031380442281422924400831652818351359587791442808346277136417296523754776075040548169496316841154518089470281170599200725731244432538916457460085365442779521270400515941184077074088785538577956268458493114512723877816413284835968227592011013869574348645335331119826283683985482491105168310163335618775824579682805184156682660714498569426746103957374107857716369926928252771936230406980093276680642379260070562376140635548370597312970932568611865835144215311835586929273621282771106087625080484039190252324662383192166302422664152374331789918664101964481978415413825654553513237540360997150313329474121905911342475306962231172085468970841609348363574592998831083147348453102611193126546447750522885673046633622801895874375348919907488542889995878471553785729909111735649790681886574162740590129194541728201490792184421087947308571455337945530717733083699415822479218677132161009290538549965708841069075473122668832570911079503943392577389648116468848942769077118728510381049000564411293334765993348939388965746492663440576072722698087997335263526786109252019108444431953888748123280236979352897782771390288100330926422988543457491651198302221457374557933877347700964041808314954906873858071176665258653259314640758323559247253639152659652280718523048516421167298576417624094921391684204363989145254843901582247593782137845885495177396702624915217390722663783858969435935137114780778469703985367828870394489159448021125771348447132393131535177307980110165242030631560105677067301599614969200800745745255722267696354594963202529464709942973777667673360532346308412444282107375589994546293099159544616234281302748689017788993383089689675237899298886558288196417033548204631923510554446022865348655116042782838838083387759348013739549463624426176543605531669314024503039818289972922956658830963990462938545509038666258872782896718688819681594186515161088572445123904548252043701767366062712264339884253612867616954846525360281473651711523608041010056775432683395143257837323034877814542459372727838551921278519060783322492679212840902022495416074297747281114282615195484896169875757799143961036069379502259097238370159251876791117877941559836007026087669812386048446186811162322054349353267170739065143703567224720221950780656825972706921697615149580034312260047361654665435238788652659230546519480435814026533533378915554525402617007841277602656284005573915306967422815912567897754321279560061347395311320064600181276649986114115465691282370971482264951246319669918218374770979433643486637677548178165532983819245553777403485180259194374276583358262344319631367377114131965560489045166953221165893736847856069419746935754824111853108626436037336133023645330246445125312991366971562791512413332114067583734871602785682476304251008472862768225029014171355929143155963750457076563552054776993808706170620072985813201207095413595308060573457862972359058624792951987448335576117500891074118900249970785280347913102248402672390340592145801685210044404220762542373156725324156169602680957818328305535620302066707279214576244745242944249218210663750068958399018115355725037932560406841430560135293525419935218798022156011764010140946300801677554684322755127669426700758249785465781705121042385378352890477774978486983575053593418615770300450965145019115344983667838594382571976924442070547318937338058196090317267444713716307090987755695771103765326224243408803987435279022388964532474905039289589646364242251459742277651833425020112916934532391883612280040523565432260962893531700255349954566670164801901477527764303265512685242135531155327263649690696386167321369828882649277172496924851622441232868519349771418102408157228616266443840526516794775062669244046473018888004251141215888581660307720069817594093584502234138957425885520952751984800192876747412128724559372502962322428249150760357840589232383076140989685396174046154024291442335312185350751080816301919283180841773923026890593289983080266247249138921268226124547882584637869440274477332742546211565219840413870464283655306803046406033002746876689978696850187158969078786342257696499590334325157049122459295116712957965023338986627638944742307182945150660700865442830155061230108380853576533571386995223834768744935488856428701579988816130423305575968233028705263998745645912768749355075274468094065453033354739304174696963386439732202203578500057614748178881534619579935748668731602210769611205534988939008832371326890005653970255639705645197237183017375925112837035907851236442097019854831467667607112381380144244794380878351136308040067734767008771341231672511810585905623225724600420218696941260215503531774583374479664414305934530745841937948629730102713678928191847857689012885826873249999636985372539356287201090246142407099129342521362117571986798471051335497148377427335616125069304309028633882932932580220707583955821288619962438641228449634939668133534199541386388035757008969032987782288208527339031482178554827155276055576230181762948492428007522837567380104041168434915734247869551864610329786257846777341531576973564327627072701520118307436883748603699106415671198746815365295292123790514431580383980580498186369420203790250912465742819455396575706177422177877388490170080761840154034566293738095848313034362345635939682192936197102761809661751669538144297977437859277358969999426232842694485296458603935461514561786656417793391798621620380040269740892766109250903847362665348172972379489186389470542118720151634177152499394717801873713739612046129110430359552285096601187720444820940256319113705121115470587240719981647319551273511984743394105489585914729585395165188590296153805483159699272779800670043916286838604300771127277862256897992745763118851858174672359459694041255529534182388360472108637206660038720118768930297211495692606646591793870484316113978198601210395083853749798601661596790536383447089354653082428170739314017161544407480662139896816435444240462816066686577614221267194670248682353812510800704541951034120106288032641667939102681290420716329254254809138893096918918986100491115466696408589981148963015389612275229000299042593470430779728433651889380728610229345932662941033087076366279613862296125015039558954381380763298110152493837271228627612627063489682688005342221159851794062664285123405272782188546618605656420073164263994713511122285966596027945202838798406595345450832523714468918030678004200553699933301624917586214495253992436718809833426628935324586126024478035735203268389979547829443081377748909343521368358651881002354815104178734408587632824771246380567054763287127178443418513600704652375627549365296809953474571502557988688712807184894967400453894714550738535162185721294293814341021672022353213020991874746479165999456469060431016710025513461828485397857262185937044375092246293621898610985398466928013025976646506917642450700361390898714823758302372495950495017613786948892720432462603452866728107104650297857838829012857457812316944458716853498898046441171827179344213910303320598578828546692348171258232681832215961363906681842867900508004110930559538692232633557824786187093189119672958082517744794594272856405082664920884134591497663940182452528759264302689141058041294037900970240425838647469053624562151130938981783696964295833044154108708154676991094795804086367694325042654098614083329256700640994941411085539958335155218749122227201553929359484954260335666626330760894161907567877837911893691215150285384074883860660345086512761811606336106822838531575435900353300345572438511045276508336205042982630724943996827653556364348838186096740002139467943428601959747923264797266388784876136555544630153763414887721241812632623781027886465415868133170044080868661103706721710501594626312145179727915650622275826472973072103728546180981731768415843247706162811651110078133771430303139809781347873933162510478332055053065888016283952335523335496978355846623388874883091966881064496415671667672108560968652226514126275915857427550915977759352028279797886729851609234420378914516328326236505529351929740107225844387281397102947272493844767212899769913635108245754040387765697247911680646713016091037526228384541573500420610894795070092419936384493284147742131161318057930160289939566241193571166795138708606179269453103726435653683415389904256587165349378715392529256898082257452758153351103947068294657227121032616069259095485666526971998014821747044463444797034744529046694011932977410779682721744123031871795233871435857869386430766979059883354965781644576293552080388896813759680887567293114806736797172063007775996369546447387532406471009155283797663661981155250934768078590377016805010259378740023978954147756612480962235576361667648648215105317242017380160505146711307012968815998863519336637098197504527672508521245906566331580017338186010519750800125031940204002844201630449326343534350075620434914074399695843800172644075581605866523807034641313340985480066343870192101190007787944452493489728710398028941082553512923654435094464068046923418765423763344611433033690362799506332189445758328828459437342924252961359848137038137741322006697420274972134756487476855635182299351347643444587623405114875466355276198967850175552674777308098734429626798861992869644583834577144535642267000848278321850389805102317340578081591423426151941929656049263854285426642144201860746137254242999543519301564499819373365817821425624030260024513535256835929550302575192331706310980560296472731381206853520665576269670651348653993729742654640390109885792130441266434881860739988760061659868929548438109187228068738825795514520599748825190882127335719171319620040069267465601111597690655790699001838632427929489713671115848871082275440828589868608823750723901748312717747824545435161837352301795180882392749638767275471480950434223052627223198223834381352730465153519956015075455302213305715146055225046447515832076790849099905213740165544334832981878559018614368949451136192177420843476583751823734043411375470973697474715725410372459680813336943955020176004089207425416701731869657766869738848241250919137730153864230349473073822472579696393103974358823701359533591597454226863208845785048045359224650925335598826478637053497119613994108161501756117521522899767283901485096466639270195814820201885793740993028608710343264197687791881890017284463956724935689471374110678232391759366000560792280002266532500893459404246472363693020046508171721620894933115423918467721847682380287064775916766262303201690886874530618660970463356821653358248710815086844037650061397946426141980089869448318323864561319487818618374477874899441066707873683193930368376943389503182187090395827341314257411822232026412303056362030612394507106894497744073982313395665719180618105750322897001339810547434390996120341711537950234880205696493476968894162915085999052740991208218428114206055245991467557959380321962955208675219009198911459166013970173449185312747432120263855729315533104408400573419744552011289608625239547825284009567538997061690935447594430853267979042163521145248886939476153365025050794950497432308776337655813689856563451275560242158796497136197769801110912747328005944012605486102724443014989657704395548489259248516002143362449246895221397172355779005520631260345274850275376243688462122486529927730146081131472111493161614378618117845077054931328604174241160037475459177919324807831962508011236740522959356804331163781217757029328517454994968517349259573695966784830252066536679636338494117525203482772354679451900769800256416349032212405505482782588251915797434454978334400329221954518506275304821665516908076850557635903567266612085526637685157165707356841261409286957206332453290790597910375456953030097246689598172333202709542627119729010816686475980974785810583875694479406546437980801083885449168477004297063647125106061332152451721012204863017211253818977680519701231479931673795142690259775829342921965617279381891505954155594694885957886803071924879341650844701249203238120412659845377655037961169442345221588335233975895962625263108510107463090970403512113945716942029265669949921962783644373779299736149254401311510168239077103598953889041965857090632711415035456887599842796112777939367372383489667282830695696396505779650975211440873132460890095051119372117821024999721943113807871566570133616511573824745310601915659032216929123376808496551901665189107378385913300565256035789591590115178234888359357890666526107326919262704334436970272717143432627169349250156848421254569809664848671273313837643237879053598909711327944791882714316655901136097247060376712951311142582801172534710184514107856672356380813093513404902200311720282296096773800891794252458136754174936052456575476816993543974232322928538672101688372377433982678348245614642181052936937104896846536274842217586855354547217326109059715940054950932555264620089141671615961757558140553890420195855858469001565904065215251918602528921812810774247922081446351819881717250028151309357764614918965959516128246356690297322050726647444193428935466063342669730726811369298591024591487083318998664965891741236805375703693240657071879206266891683053155683181381142249465818160911785132383423335587779904414435117075338499323513116905703290030602522788177378006086327466256874731601697805258133706243217533916925819102262133399643997056737785539700944842552940055893189531673825943575795238638269586479840724545888192665754272213701275621393970226674255321123651167483890819668261939757649514400629111681005870240948063204951948583794920104553689321075788312986178833766480475737522765752818600635022448991314185025684428591545483850411891096171811064447801410444413750420613440693354385593385907362156061830461120289084639739747306208228951523684543093640531577454088004910928703407177208463350909062966144366486624970549898659848053690659482777666371557432772982302957823770597557539457637184985230317958440562145789388937636206040303766342854748353186212137210336472945700936041160528284435023180423175909321305409152409366844972105758029184465975360717676525162959332764238980459586350923990524952426933494984762507222710877530555112097621309275793512957986047004570438935283017999728591839231761358020441939241261227421311612752169393678724045146140030702904573657871595801118268808168253193705557246885692941491992132905212160336727316154605960040188183125308043979378377400357082905588883249796234176096958498383240223395963838180398651779402320583416907532002302916221972454331135668302635944887862660527562911598992714704699980470201380534023662342712363594867422073275650256460441869491662802907704168520745998446968305073311111619876560207545772687358194124175101090728948381891533071305564874743240306461273617496009166187216815668865630812156588246204029692502460135624215257476575678602804103795045220008155122237104133043889818089867774949557029712119218646080787161286612043262759746968534443200938416998042078251192783378654434566980294755417412409492912469775913020445662133661279971202446506313956209719902629423639001607091077946686231645625157499087750897401446586073966943937591560248078184861214473505774844276189605031687375065089058830775980142731157917806568578182538977985767812513315257235412869697786443322928423637013663587522419469778181478155641824725412989697386250642860551472710731395503602569023797271491210590198717529685774590107696275331158748999561190626570311400609741430680377066480801013800539941403476529402272535248879063479267237563055046746950907909690555963052041001195373000642736853561737400236666133194553485157344297320158835437263916885273520545171999726037872999175803985391664058903996869515467265117999394183889240677766745531206279304589430889101125650803015235340194132244711783605419822494186578775138166138894497548554732092184908069454554241769952661916774976373191020495053456030182927366088614883087876244631331006148540955384743426835255393742539832676579872966184391458348947313557546740581782402547883650882741904887188561018093913200593500831600965353701539759052013000698655698991263674634331655078013136140494045261353704395887575004204459858902436465662747550580040363069063824313622318997658339477983205965459326655335982861159692370178246466651543617060530186087252107165372558966365253266220150092584804291513761947017788574670576318277955019787508832906692959399217697213267324039293157808632631458811387136444953000744425050638893772262419967750124733000457313495175148848944045771639158007206400152807203004598822825013788446186590306978199473558342086648871110700200618271182502312257705727285736546715653776437755169956521506966321864155705366904272341306050245642544926552651792247033807712435180987842946707526919675826173029416688743244483645919663542787724709647422473670244559093573161625750950006857525988963182895657082203345230509177468331310124965579608826078216739330690507117674084694782069716302384443303931386766575565920794353103095985554900395133509251886512579148621691351012055230621673131701970870381208676779735172225751811031925693663868132710428841208172793180203738705909527064531788351265456654755244353140509911211062834445236512368195134530865936442200485586632750915425737141642359658526083052436114975286799332097163942214419962493154634504466946967131507870807305859166432475896284919526151458377141951598890306092157921569564249629907261535919983057079755083965875388951876445735693726509144488347741055798036535675214723193829135121294041019551007475278904131931328332608936130940234228397600724567768755618743204223498371755442860593236122452829942001472827255123915185182263736790802705022259472385881514736487515558035343424301489720976839747349115919860640176361440482602772930150573699025694129372320269638670463719686961941971364999936871312343482533148696861009808272489928767962399310117723093313107657970997584475161083807273241230620797158713986458900950793869935899259493679947172266704019363222187512827897749456424342046234270734739884236884310774617209359204162863634801744530476737624567343048248231732154107038997899558181178832998361255352412125483347427104738983554040939049059692351476121862372640912256455828943190760750304974600507140925471693815421128783340564741695060028711749910373114557881494823607033295465722360580037249619843254142426030976532772071476613078683446402674039248774117259968265569093631142259964332112586611285810699963774792675122484483829583637011527678474851243382629913503715210112622835182222495544518852582519903746521336306128956426948754558991233468766101512328368117380821142438132413278399629623925942371476254421980616489330311180522684802791308969478692507779287066687197122107732749038851986089275947715395608369515090088078988590609579240409423829965795781679475138389678088503616384111039055616444457082857161651151291499480694644790823213685270028365792933901612086117280476571039936210663200132327952303972018953353313103357439929285782536625200878475541732731488378413569837462609183917733077630589317404603396276645379944042311820882938912277925762068684121019552692231156512563556614334508139769729158063820261534301491312657280883938357914987417829536922573453716910196692673603733409984900027950345286027385105234264124188280371635822540983180210461113997498447237250997460342297031198535058418046036610973356417090963197566383650127030781056381946941625661440558286734518854043891691058853775976605912581994367356541887894105420184653941078488658922707396934812377378394517593347394254514785509596197721297994168480086052538750494682062932792813700530837769032324269045294674727578481739983073648073680959863686688046813949548729096500864006095377664485476065287293825419161467279666613753216671253845075186560044201262152899721479628048134976662515856257732527317723973268225848247792314902282677083496330382386270625101947773214320336648409340566771067711100787411243560345580750268939846215288658281002831085613243838069859771426198633673818889387150996373455031932762788777049169432008817576080391301091931381347179686754319481650034984833159827904493324404752964806138621140496160691489674196022450253480672428986345950809751790751041032638536176711413674714760108967165213039557864176734806807280755779650503831675917182356264418629234016749152802580957493420485210772148960748451227814242153119879076471735848951577029747171633666920410567389008381176655346107052328580456215525739332668367989874932536440099898759780787859176749304068963876890208717789342242729598376858059929829910051935292832221622163139516030555521740609455407126106858251357775687270899021947252984288980603765514026934092763023068661549475389039519218692407925587494706755649511163835421974785263984395663828719677533510629152784544568982888867051047793923972340827346541663119523050137430956250259878899825491921205052479557279209048437541276934554538648320013462454323324911390573911704582400989937744692245358450574703367928502284133554981052690994533009836961360946976306018027590493952137648312377014565315850572526708389378712015600025837168344890490466219150013826540015234003146552358393648115927999741785249255934667916715868091878029207976593333749507799235758935048450402103546844759442688105866190339141268006248156795080648636908855918605802826414905403614969287133591640827088797034678268019345876436541020269962688747152279339278874145637637689016574580622532346986390736664146300064230351319349906972492261376601602527495962551311296340696465754435394043513695228411723670242428828816526004524375297357198184894452548580333276659154762673601245290587911531593616826122355028072139801830139110230922580774580750202130742141408969290378693944385034013596837686217274620580542169923690316340781134753767888085678303884015062296902750459611172563604849282924964907108174222145417655842683685208640948815427147891785480394559859533197965793083313501192115581560652080074069907223145545169871797555319443451165304965919236703661234495072238901118649835797485733459124376740294848468984450963097109719542881212041167295774173323393760805913962892103137003574290926085916536149730354759312816745741497864009421364281126286176580341499711514589858077220450969807593455533839130458419377966205605998548407705663970489120925492819259499014394520311773056191834967909001653158115643951697770035524136812594644579401966474834329111469803520902125848335257954778092674636895142574421095221128962056028018368032945908273233202125685176923608664757976285256955253131143477404301266421878362484729916652259685300087903453816569519933048829994114696535946126399669343749046006234938078788461206400926525044495474318574074627708290579340289727879351216158478192011031638274020458688704723888219748147958893626868690213925653281379124141192827650492228920439741300127768434410223484606431156317615239080925594527009875377154182177696946927575893074170395091186159254944585217669600369090760649272874921911786112483161833801039874451362916854541895620064646048358383399629569703778036877389509968030736974269849137947837490714748032157374891840654989665856080717707743496992336643432849037211536274939387348236318084523179834074433604296055766213202792890219944364238690759880803245042431193537190460758598085729995554559376496034189097057493649713431001389063343836085682182398733220914076914613528991323062560486357658281315454750424833913550131004608922128513509802221063513968952613822084077362193259567858071052923354465798934967197332050573490139130693915076272639483069504292122108897665176123351530767226584056059614534839911462981082339177752126797864018991648927664998459779652781726322436959888163500459889775144809923280703310943060009307637580148045895256591568242969554495723504152122157559758703230495246663533670746146629422369231519165494489422694177463771971652754199089855505196481546462034441090444757200116864002376599496227682562632787692222533757949835746184822273719400791698108917179613033746675055951007813405100738567208252258429265188766011172596156018591972016446006814243033807960184146225790422512226875533658772321743279658287898369997127726781609564595701670148197523084098534291029788698777178707930263820717684472086924981043698377471205886040626205713827843101017307040872266745945670004594877747700770773316702935700503103887129917670849828661261402281341590384005854012886361149515205186361600996467118108506454271285493064856108678706274941511966326684117122280567471843519716400423968061963615095452394596660384300703446046085366324498684833243924567802128724396561613132576014630234694791679164583954885367377477183697421805733532920639295256643560118772492601471984142156631453093420960227341959923617589681613808462591295952294901338382730485022215764802687215522306048385630232658539363604924565380878276703071297835341601653421505462437696536731025999109860574271412215801968991589864622364828662786691881949069760310411044818824044469550120278991846822476199211951315575906896110885229009185293321316258394002177782283848256415247901664600250661893159385815224923856713538626223303466108818130304440210311047498176059108003583856823205712559059852217771203962752146850629044849016386620877039054146546301300508816741684077961223667256451906038072896526224469919078981728176857540783671570861636326069017334843577580500220995885608198647210528193410432134952825859652259494761380381720193733300291486401257145004235590383515648180971898158941725312619304688429915551337106618530964218978171276854551127715067370791376261523925865372216906654201451392022599125520407965347960407411697957566255246730028090324200484939971420712079097644150708112241157249195760851172119090996714913792836147609633431632531849003704794871853156209695541279437964159317149478967633812320832076645431341632033165110202154437152515815380716408405380990601127761555251212768154152816704956603715150299427292569018874512075451895394402101735661647298950740334677686552807271804092415603053037615296655488136259661517736315293871051337134945628155212950636695238960163450255830554428630109766869930445092294921804777934964125245819321410929437761180754607495152275146143555382790979365021969777436014251162087928891106236739698389317268301114280216584672550527494669214698489273957792078315478052849301526755527595963627556176914244358432379560985111203228629753283058332399886513225287617070560632614472615258463354078488672131703366972678569896637083893549552689651095660576049276789524550918818881929605027933878100946814301599814272066108239767776765233322629807832751685771575006333802813423394838827617505620488290538601287201065798471191125158880644660844806641276860084322807253585784373859225430556405151834596175307091991608707203567088300787834133247960800459974949214291309897458238485568728411391856794672271576342741225800672715038428756626351881800878305672108554096206040063577128599318446900904378894364740616978490804250634763588453748801833915825538921367017320062559127965987196205253566629735473638416696869223150716393844175037082174975087372530632468347549854738756143583724539131700643307701781166032556374533664731311075926680665739348034501384078842602553514240711402419694679842589336626124088593501223294996447316487604608235903904467183724397674109215309677436048564463393124262773457633089824066329872982994661329274042175495464891408060345451419194449951525500600475641010028648432415584824626287428766374027366455204207477933358323481727523241763225864692005273740090500548769163494608661113218705958859135859407467498840336987698072840778709146308759056382430030666151185899953446626063759881995959732793637991949092485003848252063088177365723101985815167484021685635340474454689532920419210499541295986993354423190906951838782015944998415509533197116874670451537236170546984851640193318923242857216349867033857159937658808224719639019635289317367533551207943971048415303529641084348007890750841600657819647655632252205320921189003675733701686534194863715418911461502403860678895670102911204379572896108228293133774276733385406865664757808078626159023704341089117098553910897030229687442741010186993443034577098958273894442531539308523124533791791248543481512543616746500454195280863834640693411568069712319834999051786555744860756364491769796834559732976782775906422261717077604402367833453384698070062615989616284976405661511261909944862430492596326946210592142358130312122669594015772729853859492503432160905393441090678170274113462629591119666393433883758670929458298728940534026838665015784136119630819967904790729701692987749232908385348934767149468672991413124261677593690931544303924355540563259408472303375859658909175551791630983028657421446685331163581572009384862342294748226945980861084612006279718214604026600482411584863398840804773285643600035754908327129930138283842530228925150417932964115486456593758708778770760975551560074998305026657644911765235570203759520939042146810574664763735613319594634648979747847758172483801221064014146273541515429944181807089850065250295191452008273244851373480803056969051665758246324829935436553171208183082015799958447786304001200112928634993312025314504641633813241948482374146314721492391199730423018301017268149982639056683308365402504776937200207428270678878706518438538189154952768565675417168280091726367139078467615346202391143815240561703224046291847389389136102193190089897474363990572186098023116228701782005993562599011792678558996698918385901326870902217679859218127863378292574161750564856410028128040014122431634382305508739188295897797855509096974704268054488281066811341255285815352624215638722568409468738226817384844696956351433663938743722558952534162104482037238009433012190321422772369029914998922596766836576415114642198331756543239270628314665253894246684080874563054659488267115061395329337727586868175542053480135813375321397761288483457925452077796222192331201629216411702145534104801576757190338964166578421224441137956861167632693316549897912177957475322410649702923271451918465220348070233700135294424288204076923660899037223257294126183273427987788660468736885874264331604489738096643038373774989005972812465639885845649550389106130150162094226687163715661563799102791787988253823084356493193265269991410214402797001227009136712159387561488508815881696894881854383001257131082128675251694633529895551463858078560601793394184042752371169048921696331656563355651170147081433170055347985051484129055665563889964384248807303514652112088698613827575449153299986429670341715074383460263138032257665363048434451679192583395958228015210199039124377158119102748779398393425620598433124264605249788416569763667368366666915534890580075267654915806007346841494066713093307233858309239877585682554685316222326253492025719797390835884180161591492470863343464528641810500648030876217884554759296346488327413983839428478119954411372044670149165359647742751798717708017748269505227814696597802656156034900359467417543195802133622136606360003106364886494802019974392350836442023956654758492917154043320676664285514637842990673595868063699441439617125740963720032131656815436243301823140468902970843521076064654916002253753446686808976389885659881677823373280818105612812335820829564059781920229341305910962659484212812682035715375251549771189564684244291807656819112273765161536038200095640678098026362443547976483512457170672625014560081178673184913830166334188970903859897722009423305304962124221456752387550812759952194555142256470935502742176039075764738558153489786793440310490893305752460104490543061165642901508064223033138488183791974442231551052670691049053452621869531351002727411021894795830468893837483393801291636243923197548447035211775122226079061043634219396368035434381991465992760723602502502408521109864488686609434232708162549570929802597971424834665723005838554047039820688189599377211862013395331074360025426423493586312689024421501999464348300721913926632047565104018702610985106955671605568707012062084891869873546868482089559739523882456421406664341965286582668061552336739744327168354611170168169456618961315337741013074459242198164811256796464122835040925592521832998791460763535602418529453962243439160690513530043716577336288569402430277672078206157483999496398927308091585996898378735154229335670125179402247915820600165863492535175968000503312722580071612241734115654382298577115699577428542286339424890274935459979047014904273778640342488737467885856408231131261046331285028408994721889557291837092965067534982541810150297137749133038443322048096779643978510219921610310785843408675642912336297303578351108940947446862691364479679819385749917591754043798544343531631938016631450362287344651538966654564395238736692764424840967663922013655504078257044104491046161848011633001686615330777804991287526597170711489924626875818096264905727177954314808124100624760545645634251727770589410935757971839583724290834078322910220640455995436940745817975923113378139216054671878832755867453052206095285960469830726161161678944635043205657125400329068015311509913473555774650071481002442153340488473060644448064436817412859773088109716539164326822456472217061196663810227964892971629976408647717934121778628153999506548413323645985676147280265185547452968639237437747797522783434027693352078683329821429063310201195720213852062628496548728252347647800814326397892655066465325152429960550312703638705969249976559575362888976795238923058981600915896964445019975713495936582428673168878550960304538841930812712144809992475025035448993054909021508954037229222235834576306533872921335930753420977606321510392391179147596074438352381219784972445706803726117403158435773133802837629639629959442437272820675300691429175545930011235436297619548837313094659349792523541346730718885730485521457391124069215685160184811389380225792409788347058951411739067984243281655451710875857598420022190003745654873851317037804603996185630127523993167954581152804213565246330802522673137893140369653193679190545311304411044183031978766415446581766822093929458509360161344961799551412219638202353003581070637631985065898958908477274282496829971349097422112761132770367405465515428231225432533425999203035578619596084211039934038678514456569327730850062776229692851925387771998558213475981992907967082120325038957917918408679510172093228342362342284421788940788096463929128957249567804465702214303263533028774543219799860996624609945701881780915389969307560228468416839984945017345491456905562619782608632616094694074117697385749280127045506744199457924203596495091231465928390741170933770106246181035857190957043959067582691177267716573224817786632062546989660083197150943607359518452768824084391311815748741997229844692494505298195048238112175283534323177842324309368732075173009615574733305697954634738152279061828400894107101254806083004097321156128223901243356431196231392841309717813043303913083729393923085117422796148449506209961772454831324044010299056112056653699388567896242558320415691632236270539455401026156149670790141816051782196839753014479598145108209029775937318010204937298710979388701601648194859721855237229836572706449113437705740652643130284717126706252491784407699101017170710556552684278978893942459722233497296138925968364789882902913701883170724887828723477675878345378643722594703464993351122499796741458088381081498769590688322133259504729212522693677109280655493878472999118907534268847549860435523427989046112395231254233537535174342754016735446111620426317163733089406250042632563019542874620643230491488356644437514132442386462888847887298915074226979299502574248893115886127754555001297003351693362510027291067117082159750667057863400603559796286412379149791959946267922399824140754243435092646407242149526499922367075651252128343538244284866082368300613391150144021016911446551936959020797107374956214542481853191566557290042992253239658524920376832454704049767531128455377676726034355059525112624708012821605528390623485707622051267982470324609365194914121614655567359700646501206481396638824111992876001052568723148054752011207399948027667063238447798914204746500908066546844586092650390575204053477032035057642217084713398444666972060721318006935483377367034683464824181065981877767606375665281457949704312532373785984743191252582057469853439814909620449462648021311766196285255305279423556577803305551786646647554289120584515826453024962808753248358905853806030774498430255905612928011379573939429074787606577408231201450596236078042401688813211464398049216842439140163284952241928885527440137017815004685281354539050215488887124134412292864000750593501345982515584964735567455476250266185969298962079911466330006494238225171073382028105952876682339223269184759850230921532927765844306609433731186462332857152442877550393428760542887453428029138454664400540308398356833809124742341495046649767590889593448173741512752537366716327484203706553001837686498539936371384365649717595294372688723062471646997991104111615189558419206712348219116976094296998343162813015751240501462438026337809369757747168881525242444305729228881547696502347386084726273396573377843678420921567372708688516870971986108078586747898444728812172918279791712399963661041375251561893827437737529598479007182961054637509676820471018091423341469911502313809690894502244140679271505949938383740465042312372648039682732812278076400650544486816183291433542853782880258735934892944772833899361562552913808248971249876465287676943576692030508486356706090168203480665089642597110729441659313090823693473292586953110685637656428030808127992407114742892475590776990757499670535757818215510024221253702599465458840825540894676826012685183023484469665364294397685940735086906969699611318919193076002266177569712926091624078337634221444596861523517471120745173576689985154718386595924344431854223297525463401229078391826742393624108283430749003904701385767234457737624659898633738523948696321508307475265595563388851591541315464311463578812187605585271727710252375037335316265574358597585934394623127799213479400632993681345168897256133057939917966124662135569759249497122811285443620629590910954358384120252376527975307697695566386918640879000929970409439289513498409044922472500285673649695498997417581198540107133087261155248188004945907500846132596776562548448313586989788925818914456086416034405972731233689105311828344206147228063822846447300243094856464138698943976074928936402739016540988257824929644486375674324237970209447791078906533826767335589626117139035082536232235198932761554588781471140461264034509667630011336393576067167588488404068676251327268199596006065903518785582719503233669756692172069871888256211899913233906948565606067775848928777245677505986692642797593136762371534223916463111295084926177825956500840273899807613032703908645142958300755985984692480455443025719514122153214674670902512412312150104857490177099388156261043884084110070473729346917761647587415290059612187534418440800856070369059283484761307155047894109357597694448808541709905850548056531392403741330195511336593497299769969741233503531786193108929048832355360097257355077359854618045346853755154403812182491340997458914133909493603015687593085827717105437962115383832649362139694381772947214563061619632771591566488058006697702924444149463484221072766155859212257672412390492703685543209674154115235554119474875264198194793691852247028926966933536484031735844436996987652878992113018747172028971148551614183125852250738663678392930073542034138633527132244589696262145969212319806027010641837597022010168620768979266328489669484138843697746902894631991658728936619394637645022881449668266185173773169420017647111384453196900848391636704289786352819496934475881797910149263998135659428777400389167648203855043654545169594578889819167780378965361670303483171906494590282431329172204849265526770716348250904780047589141550851834899269648043049453540557695600022627060248269239793487057388618033153574280786443157689935433158963454538657675357003527805051279112525653162803826288147575939910598951951826661601019736009033343637941965805625491140155872726462764294049650107619235648143858487495278470754212978908988270538757917446164493085462341214593811315287176067550414411115631589390712545127464079975993492801241681626619654808151328636515629643766089957864442291697573248475675061243078876629014956711394150928460960374833491325896879292741833872189720765654489120010551052219290891261937593879221223159691028858869321352436773565166336467292523812796878878696834771284769997076384513451786655192803091851608979083967799184675396238833388761726402501127824681531476795434418414991113385180806014182525178433747193619453737347856320277311270576312301310222101895293870851029338283182983681106054570470275251296439790185642927508944862104315314988430547745290389169076218485417472127828551429045692992601850484019322985277592419646756122743442785684220090187336002870900361644396757862953612194402578119030505422013212915312858828432914296846907118151971949542395088877345047825312974172980639260935043368864579881777020763735176432982043206497609426265130066845031016773033418517721712358341614085090618344647728128386361155945386939504902882077303924553853353183687882488491472217882713149045552410998865873191946758300995474658695169180531998769730643183073184964903458370733575208251261822878520274344204814831842217631332478843476759464732937255890267797120432719551155061114880261027718630687374746528887297304950683590647009242692513390545111233682643595636454194932878366388664438475306388608197941702608276535115262534833825565079769368529389912367829949067630812725556726964405050325662201019000316762934187614659597094311124823864875503111386329940460134705775227265885189279185750986031935773709972784583860103848587520697763192950904939959208155645895771236983955572623118543947164209490293001006531731545133122452799771200800123062573764876180398976401170217492566476446323673022580491281871432114994827633928341213031510007438709960619089468121355426990704615903946773856089394793627991054325219347220274091334343962507520457433249245370020836629719453720006277227199939040887475960676327043171722266657999677789547833076155132815826563544103645358176390334352102389568300248081120091974633483906001516182856982527040709656127792622296712465537771229742695929789751690188352340210785080829334044157709914961793977026022840923693965698922975346045781369002553415385821105033242474254810510986728946821507356040032629433019255731734111916157427128431607755564705386870508103149855773915142964059254381417595385980558343123956600519515707953322927389859694764265872863909230503630150170363026249402222714664163005206372330654659857356861803862408497374741397680136286770104979731414965675853337472379871249731557948892060614016650247185891868183226032396943188337538871780393092840604028731324702247902718675809344219651071237475922667025369571170329417552181373051557094651069081363487234006373336032648149209781343992119898363357473242883519267797576843452334560807691323757723900977206960648567615703739217765127992514363040528825509179214659764299854158539537011742385857250652690282903028951945962812886993860376759533506494274729807211738691655431559696595079678451423687866045511861658115710709107503239883178696909601847254402925926229531331479173131035168522617890264113903572656653173049438001068165267232296474956991933724738410592448976855809163428967050099843099194452748545514907023789666915645568091133505515929650456939468724629421840190508087374725271781997605869297195994591937615504368647700868845877851173744659451715961090181671767653668290782510169173584951824418467761064234809977145519342279027392847768857160848771435713101469511995851447387604524137045854376561208879669669723809894411655245284829070197973499759072734710763149697842612003247698876283734517094173729165522137122218700933627929451583948541930864036013215583954931424320453438776790701283651890362004512188342995102550504210897796228169387439904384109023496920963530622679335327022320218024221503130889391153097855409968627330716819458056920283440677000583293524017251351674652832117699466728889561194317679327615690635918352581667941991593921550130464585347822833374472784930793491796782241595464155263643460520684579341375566123948177953303027277028893145033539567154608383056460888025447156372751188808418806348160159734299175675220994503532585519159753499216511630212076501740424191396839727598100664723903698913658980231374152304737280187794286688682117234626518491525854023952607031964538189132644585375819459932737416070616565059594503045994954929328554252863467075331292563719179694916332079370051990377455056751448342403478859060397100093310043763862571509170612930297977997580280893314579592885756726226876335454472219012582487584484710095984553293346216839079689178206176483380489448949711536945130437486919010759554212068081696760084726454392809129326190250677949609329961659578577253030230563131975472047576161691401010530295148585146318135072202177114171422867633360037648922990656618481977832634328329248571196260981870255406943340260185387625446413073751996988236039426321184409770252471780956104633120268199199632459554542623525380887103240735856066463780662136254490628840606782291354951389642988397447553363443186102804439453391029103874066646876101484762035014782738354697326732701588924907785408603028178614055403880611219985558920193627509109780946876168571062099784226094851830937632893764011944045546894764088552217404252559032563154512701302787764559915101758357872909510433227929433902601615896871210903428406118416158881553841573071549387891064121017709022076950756800550518773281861773534044345887297739089695317909272654776524733369176506101056526673664900072546561160250951157872354615614477625732882451284563197653364958192806320487135197751257398812917974553406111065906756319982521964405748128951582210437771834877271375697507962213285701344846533119306572952770015008641823662162016319582586162871286347062656696910038428747080062807529093422208654533675489248264064069805200473497491870466828163512147836924781757921256440905900219884879178529562179023906516310223377707834428125645813449209699650879309443502834974371545282620619164924558848746362861081571553844647235817910560285690568032183178419208206644958390901604059994366461820557691535771124132899548880319464164012400726381074402581770985973434640371885540186983788095638520792087077829550303495675792676639863009675381168485866447795075520714368219247282928001591336522472748222317441216538862172016605685693160918194079251223460582142184359099273351542031140516864371770321177562113838593396116213353164309314252805878187065140119123353345299208299220474797310205412669512193008625316728320014494363526911035340641332352873935093206422298955581499271705910977208260508687758685430654085223880789081005632747442071998504596276207043701929722188740235521826420932867139082030226995759761960850344084087363012274311005894051477689020925740834937374046780356081175734844206992736515128583133233876651699455764614755946829250508593304480932260376963455545539744202392091736545767119665941185579360889712618362832512227294713510478543783442234966117179878592012641081224453623738676665119413235078784706135230003868648485228640105731583219257454463290483018490765342147716937960434158357720837174353734180576564725058128279440543740740110698455888507712098540426170141060280062156341625034888820939515786361422371766905943520105588312183479358601428113975751793122194474235347511505332291101082439716049919448835076947727521340988616946002869739019766309301778607842437353369342062636187443770442773275770724388449061822415972443409671703352107731418027696788659735945965355477074748015454822387368761035514312514477632641955409576856985383492414279833598859706903848950791705097436613613702794072835359380635986053890043088758748370582607578965492367124180195770873826379904752642838594631817099348543591562781435463508929640883079414929554902664082512461128995681676789886380902837731655246298519664828556358733318199384934136272160292423098637776030782578306677158618605291711244328306290565141487420842739789510762631583271191427619941407469211410627013271237475074175531453146762385614657368407289915082233248228058556784910976679735993204384203476995641121560784613461242035075366559529123411596027444767573167653845329079057804271939884835982159478451796061579138636648667749029599701991102037963121925835739820092043112647358980961294987688778354335368696317774488024620285628257876191137664631184231529976293540616347873167557628520447012716376181579595505202835845793014653198267358407836003213458316649328315380481736309570848454105441232094298029280284919209252183665295169594949162186132767692716342793439194910845827443114222218883021835683412120077261982404963940025692461444275665386122307947675978371485053013055653057963373944581672444701481244708045791443404542641822350717635498157709331116901186762298036241370138259339497312566450240441507605057759875759804075124956419803423341907472127430762757199300072111203884281825715320556026761807596979384475586078893087159687522141141150243942328829597779475303485646179638807552865213024016279512328041672232461717003594741168944986231488533022826052605168137368233455803628408965387988794862893322741697881810448345339196180219310488707005087440177123037573129947044393464366278606712266353646471059561149097666979816849160711436222759396978283236481736556491924639025819248826009845480336094773993451668783343665641736812329658904129420496835576752006140331521543088964777940967359708813570136951990989090777474189690506847370915562704723824380296472517751493900747801915552331703494102319765465749304945991201905435692032426149439471340196243727621616196976400455309160372806487998555795328429882065560255543589443042533605843421775796428811311140838562151214586298939301350985686845093509450332429696339878548335298669497374107836714319165541609918107885528721993047306515994416078228113601260215654117095336672939876517391277905890065374491719233669368303900253389739897112678456875917918427322467181464473651628923965903723544999513564493306624331502107054176054793080181245121874515767851990582802134184832390231119682078839423374424150408500142752882529432627116861090404350945286881101536751078604223757240067405616073682715583376496956162848789533865454781003068415334851861349185173018705764350135541643226382733950366757949633339562303083672196559351981328904519654959141171269183071936070084283811912717968403648243326427718015836014051168947263326031479847316226467715335770254489980167152383301022722169173168485017473981205566757467356438666979284636064331428670325644807195848940436563430907903635572650448043034870800125798117621074013706028170511127032293605310298166728210042151987033393863811844866309253996227253269636251312078437358494193912690287981112577666352052808665795301658411427125484182570981412062889146483918772685469079765672390650970288571559802856049586074131478748909169643915575875928581222298417634809741354895995516638532293435275970616142895786803351362134773338073025605514271195440550115938542245572592265034599903545734075880452610997252198855542776766812112393273411975271317395271745641059376468983230224156663267868640939443813779200377243446563753999246952905082768954742613460014170529587135591115354229958590843450138598667198213286555321647453018108568013068564233897989063806932074092615269351186154223157140113446125238467938559085235380592949424115507104477896342328104490845725917946094248333773236197302010443022089986316939482065852821903810047530097722940265112137648641037895975928499013833995443211263394366384201871959829192097038849722331680903222918592504937694560091119522033885746854501541671312927275977814726272519909640291669213503822424339389044325378347422238453542382030024679011603639449093303391825271915969940277575009162516143043216878547679450142402986738742987914908568569091714096305755979793943716532356478150941998446694033344083341204833746927346424645876623508890805149804795912341807743341823441208642032889120551163420269918167581283215245457098040026902522041451343336085196405863013745211494800850284063327827867014173854858654222118097903326441218552987685025287152994081136409909913838423763561765219716651715040826503630889982020940654300780433354828865997850287459056720916650533929468087172637498825417594853941632569870752194280880805819021261362324925728872041224469574270373252909427156204760366513830442144714683854055732361967336251660700307876909874484584002389842308806179757421135471824626222872475841982676965005846906047397679803314666975906849272260090191697982246418491622786111814637244241521649861036353242132949156014745133366800733780362494040386845818703624783497052284494362329048046592625378479953575982142266460309396196137125153917740084387058706710034761841607796799792883002983567339282550760250411325273512225210115705061789393525487234077935433409572693409057746109665126054726342686017731235486464653792249766084413837127962938489263646587369085143691302335195396048342627736810332483706040930166001006986417303943957292810028056919004411346440642605814609074661082265891598236279365068035657495111137393318460252060236872692925530549033446311581841366944626209304827909015651931881202347439223808635511882190536189763902344291236950025260718374522143094569314317893956571897972201665276486475046356399156723773529683916793436511841917547924928395405216300587467002692146042405680666690655919941118767609457695357101499400221299150629635832285709094198333722983913455324530585552187074638533831776478072854689813874086865167633391400600990051095352465768459978248123063151024123763763857407154726642120825756477293219449354001140510856711970542847651559946877017439447603990374339048099067895306418549582249200076853286224873928887356653705226021582277721963518080412449955916228562770205289886410720713440748282637275950971186894197100568733746658622620846595695876841739066743360642693778481589211499147914598038568087531695006926157531856976593403123346107067459001409645350036933771726460747084996870648718481367995673148012495808551151747512065306090523252887580021639148035495528032010991367503930462148327661957376310665200717438270258071782123132916558335089732945682994415808352252623902916219635702980580920563693676561519321788150367431716429815397430619421918323793597378366435658413633889532314947175523028694595953068296163506161237493924495057524871020557456689362698362540754630704335003858108859279307932910398332672950344465073014028474383961380213396592181771367114610288399465346840561821460000380116466553560147494450968815996670618416588093066914288567420406817119475086215718601365194775919000262428946129152711044839861524023846613944775965017921808341851926539803435535185798968199101470926278917955190537084805693600070323447094883310564786020990933357686735878774696235939061596416982582881855158913926847536964517844696921200949305805400260674742944023663133377868867635819257343962077567375273197287015176728129104431938878262123190415090681071098798022186800182143294144221416248518542511124245065209474221258525855896807748417910496051791962763002666515640888825431699636680035708189039967070693823075107057244583543125872542222711407757557619888019464356664407810319630055865065256441879661732384300287830252454068079749129667531353867244615253819986430959681268270782565349775415310085406891417908338885242977501723376526640944073413152599658634658026089170566144598349480026926817266367570220594684782872802986310263107130665225489314108972269690690952193541740254987975702354148794035526358975382671408568232025907316805037113820722454345995984618840591235338858253081219495388082016338295713548548216505079581803297610924537043094274173297976589251034002690908054442582091080242449651885161464163435950815854101870794070481379844946764779416134733860186403524047983281147578680795440466201112108681238937787257979020601911413905632675498349813408432375260391301411973478852771175309439905564211934625987501633253896387757151296782320009162711637088889352810290828855430869324422455060660122456557993254808405544923562382728764083610660377540741088696887137009136199450369257830624750206799934309241626495744247409078598649554645116223313223178902140093032490624693630036158539640527990391220873347327022101445542327068177056200277115543035698140328552214258192074252310523902278198671884881986022452682655613439498958886346098963630999507367967025207508829852045899924816195509663508998622996616466319800568148339275166398627918514156627034819473564395354814866278326630186590786873725689850482581201728471168391677388437064253724366408575724554015034237527048292198389910285721119729750539676192675458172258663559690138353529193321552255499991490657525743717953253035777103445447107763434699996685326754638337352232505666185639147594698827861575826338678280176173612238434371250565715165063025385653831456086428216732016268615364646611966508841483982242869551971946685634195991462429845008507125397040777569576628289807182027371254163981300495681424181969630228988307945881398952326039141019911524727212558767683189293510804586292293183575949848450518132762530718224212919961620703298751355650280840654063113596497116990792200187217149393319769768959497666884960122396076532818143952911539835711617971137740183468766971423335770472151302669588791611604751424099586327811394584193631603018109967150243250789484034768396959517405938214568079591828608880993527912441093806734762993300610463812860378915077495895650329769673068077831998237266708768930430229412835069971535334646381079098894065991572051206937681817490405273551689053229295845323561566758534108726643334877993306376090661018797742915085852971542568515007639488971612294723052140340482518852765459595378359930850983862918005233191826764874570995822394925967642431744781987285454415178990996724848843456386350652468896380474932406710108012773465236242554912090496540184679086755919060615618746518818046471651766119196854901974711148808704078050970679064456772670974621313980092021613153100496402636930675486172281045001520578205474215513150883898836439960041040457798343962022048259483389054591607023138644823827702195765571240937628334129783819679143126183431099466690993471943405681392964888115481204704396594028066031331382583769787241031166616184587566741443770094839535531354042111084035195273694570244440647099786081944052905675851437053479058064460760692527055929728025765389130049934285408131723916609925665101200669262946818412833364138589687976481570627240538102672251871321008769686616474803428452819306208655511156846239437213536842004134406396181000886104834286190902728881274340189792331597003641421858253563734309962370755503260462586721241099750291263622779007137843827811281232594254888476406026112578938929036243215742201377567815145456068079439998077795641423622747972613247153146326463941586062669969569388864002022652053820029785715332601832883804989160442466172390836782801351268613274734044008861364892477997372465475654839885622038677785286650095842721838067589670777604765488791596185182008645548148730250893731018608510382517973905822906745944711156274923419116850506858716494570619049228830387039576323868413883617322504493919499941521686631933541708582258677461400143612257035675286102231137348729023513087151357340040872151111294539316627963801614370206055073918768677703510266235445650261744752245852088980256559952926565968169795322084913354162729519253689499118285523068766609569500774823331015197952972903400442473138435202197109021498292769291110383806253567004344943667758062520944834621076482211973213083575144068403310890085727075799607004824625695040560695116961445315577259687743244786358321931972639600381268031278159702761740363795621058178520894000719455383886697814093763789809199419697938287193577378322973051503790377237449561749865008547292220491757554639606880738007259259523882647690112071115857189013618540214327516363219619037637752752155637348877925161060536731631555818423501469862127788961758253985999612343626434526284121786521733658412328594878941503762731743574632999038546194582021703994397470992163558897954514905940379558396847421328867097384204102505177451542192573258796166720309727513856388493503706344832098015738177843745475517775493724714975371941327921152502370439152958707810653567363873269289483858126927664054850681993457559680289976059593729192565446330652236275061290243732529551013701612417173529952065161972932283228592617776249622482028760695015477787895858399680458665110337985610947682434407694781834174115565522347599431814716343765543294079964901877941032143798936461947235471247105263570900801962495622002405243489243445377676964844320669213710285884721861591349058513148258946540719827582884651070976424596668686722495745340072098507437930381624593236194228384612159603310256311806855359057692438883893727120979090104507951123294929714849899819721404031061543999526604114785758533001744105049181670725251300699699556695680398794890167817581015188666689869781285188061791747759397537049717469358859632698605956866925665620906839507460813422210710650325351471705836674318163193869383775130774734315420505190614095620280750365938208936621876388941588222111947040334013444250689317243339609355536571312129291122449195000154431009787863023721504160110658848524006860599975187702497279921313758751549475949801539953001957301312014819487433926325306265551331971268252693444270443656900611480720306729017887591655484633329694426793017035527449736202884246546410213669870581395206052920950791052442568251311603059824529562740584960448009884248315720698638397350673504424538118676086341575424415171102353460068259952294377471061352298913035510971485469157687413168826486753456373989443009323551725537410704321149935717071305892833626626745398788472151455045137009888304784670948500774560713634742790966975951425694070910107068512333389005496437695991864179196867870829364809003044252513969304194331854515685944252606199744248586968265589925279638879426739109253050443126914263944255991067177225541392933145511141133048442401424639568265694564800692395744417529446041116230747892554426304721464672627651233474239407798038364268983909650131205512249221399031546775714449791288179166805688372964489327285839023859908945270584693900601185163100554923388892015670098603639389056488429151012659392283208778352562980590244373752531801531660106332994900498384455847768338114497904431209306121643882425456434036247237971526540572719206296658144684708835466955224918651865915311608652650447505324689841908456418687738344407703753288588750089488822222187633460077115939345590022220109601228768924347947909265533273042670277954524314793678057321557412414431001655501848768834011268195783053256385642047607866595224573796290977689303030791996554884261299864455461895228705582502419194148289321572034519403045805352451055254566221557670451336982852983070360578434930396776546796800072622673372700547564667710285991966417001121613311490142078221340117926831892015328092119985653943383142377444982696697465743412912285783951221654925869339239923690702090704456285643510235686737072254055131092154267971573465690146949998313202869951839821571808484646583427822077432937917299832108533538598301229626425607009655494227555741912511105909815221654952467633730534637117629566238047109935728189473967425691307768736018289663349909826936875800253265322271639186504428126817380747701967687767278487914785068292905580246643112445556162633322801432718853227806893596314641683972434474739264025762000957129710841053280304766972795980054898157549987762203448167073961778659475266913625953950982955871905331025683492594720428512727619698602274032559454327688749186596240086335003505755746015060661151131743368473467385132270523998525885572279499093919289862934275688538842593425840889372402950797018023057208769555661170290171838780660244103954404741825561290077426036309884535454426570525597684547143389444356229637985419503897990155762380222565736784787441652364291897122833590759113944688306310067645649723438058830091114515213595111787076960090552007843797103598809065992194077201440225627655817094323276100920313473086917783900707036231784112389796261901722236167294303423909857883298586826311447540623986862651400803897675114534871238573337667185508459538535767803851265071321864105693327640154660925373765195664583243884708176355015881205272774994891256509226475264021433946104829906627773836985976167124415961167728290179076637480162193652517413729886713644638674713568417000543024185252548753809584661319199385033868455938638717372158585690397881283677559113033279131025617224243033275494708860195866181780689817720987373381803216595273633988326474166777255083193858330267368862415305939723483490828659337740785379214891990273432531506792714824419473572090842483882337957410959095960507966626819924651162257147695069133088490528867604312356104114193620765683835660969284536650056037314383891134023264851932314776395438894580428085001742555033810843688337672766037411124353059775212772204311174969559729522841499044528400237700405645422939880223117662302561844516581812039647075738560093824528287307710772545887017811936446592756890712823822326457650077252351225754972741146083718803298438456199518239044681080138989268040022395990027413869651333926145235764681943774144094046482219241071049675796914156001035816510575840236815828313970329946102051202520766219511708788891368585776489063205496805959091699681826973532850495101922823230117404727239874966177937678331820873249978211957099780421345804892786213079235950389506561174929676865511366556657445264672216477171309620845593264251593923990705411993741084895834220047271435502720301418475131037562725156935025297348578208023810717988668031892335459006914124096843074407708513907036570088386560990538580670725610200908399618540767538930332149188405059319626573515452566269790299456459589881479323870865577550946309841623524293692203636020862848859200736555168023189101586656976485849419325118637575542682280694937555661027905738078768541012875945358582644940944704501328099827160527201932201362586159782230147430273957768264953340058780662249174852666239444305859450869421428724051065002966490896857846929760782195577699500532137739788135684935752493549616328015020327130737178075973603905257982362727573457369017099928032118825414752474316468974945580895874488861059076277399178826070095205321402235149523679139469374857243207282768542485860052065578729070311356435829705861309924394766680378185616321084882797133805951925575568214819310494243302534964724815870095593876008776399052801795056367108382567454180699864193470454398785101909043775884683076066344635001322275580676282911636224371347521563224459140819653102153876025703168314948795312813936271571533376814646423664335832714585143847796310600033131673342960755013450602052584154308684812194386023028757668832857331697129914604455689492519371302520238507265592811032439394213109747738320816955223627323133173389955388220525611424514539208965834638534667378923212233684594107750078045780219677323280481231714092068442709827535234864555757013483316355993100488810883122954096936637614917339736802145324912513467268815856264324620404815211964518552395569260383100642887798607081709792854929597902187930605472382825250879611326703410204864959447335090384932788917908024987158950117006708743538454298108423160978600013195564448975335835004788503636120331973567477538154349744459238807925820933950558898746857091624135972051697495689553578102337392037531244080544528361482149224842548012998635640181122616062796272039402925145645867947118542325997188274747273482581030034875903066513961152478116604192181149094034164373015423894130418232211279340880220532022261329432293820045641771925725685720836908887960937368512160547420183096291397250682148820502428790584106826577290162484059640336731876896761450325509794125306935752084067504726744225247883559975311898820117407115485066708282852638800315480327099667954284996250853571409363298026711864144727295188619594809007033476346886632592423699561151827760906311732013913022956368060188723256499058216774314616673179921490942778890519555279276261233640421446328038372889542123124269233565926104937893384548127898013149744613019110486885246303806398214175364632686211486729153605643017626574541640150961173831320183770072995757094342610331370347444610530422544617446723888599125929863796738416284667481173019555883347327330088802458546540010724304924241652977523370375471312757023031015387651615787862767431149619636271993689378033729165220656308591332220792731354569893369997668373895968880926671558773432282412467415531754241504491451785296023496154431852600977623824890114921998522107005917664703302571661908050608865125405905046597993357379192003941865926638833805991780762885068054417320733375578075284839457679461983706350569327872841117869193035781283306231973318699951260638709731973660752614643305607043728486360792192123603085464142490404608845177533132134187644809322745946156205494209928882149725323181770029107105665452530434668687760535145913664327850498021870343316974814195701311250845032227455943033430944045078518809760002955735500841976227056949111869694939337440515710081722022978234064835883216310569609801734855956612712657807377113127972278310887927760565149650915331388973539880274365158954529867620974974880122674724447323482713944262750301880513012928953952310613570497634443407868438752810745170392620936400992182604705194996173336182171715747973139321188284143026788448840563368323170999721920583199301058084234517843728451421580103561466204233859048622044841642594836206200662026871908392102704460747707960943774311238856681526548093679129275163981497258716668027581375901520434303796819142967412578321703509210167069317320412470624674624946979091391209640566904606351769262982791271337394091023856331648339215705130511026567137273829191665531876453319952215922154124652343968861772718337394661438500721390289873248627717541705278609134775827979988320976430698727460963722123005588946216219586062403317396309250519820387269892513314161604275201562039752558509354562688199319688472708648442795219066789481740641576633952310410271077750865313699419496563649497409565078210524797190076670980454818937570592957107608916149142021508041260983690094429413483712877873448880770558634794084719903207259098632460004276666749813968705845840693835097355969967173871468739440856398426735330537145139631645319672737286841427015320993372799819121205532512460023782598930096321476135610224871856284245625782037987419314428566112328351358788072572645868202835249527807046799343120147443510000241782554773800455743511220981628705896181554632656761951337113349240216787340346473827054775865551497146317760441404239053147662799094097686159284862722680851146615203217058124287996952171203033844547924155355716384803835161199586286830780192532802784396605456743743867781690767935800875069648265648368651622319547363386259731154976465951144146357962825430832304269253961823887676052856349274580436919949550839664785752162046046476436402706876381998242807100985926845717673213199455432886390828929552331127106368351976014981449793549109631893309678836524553514747899957774258739814904147693160523400779169650441753615434202667318540775373200372071543795291617702092472821954142218292589177951823401333417485930067612080169111594379274618418540551589673021241834942473703633680080402006510432604179054862289735026918600173099014228781453237202062638465481565875978256259579903566818148403166812468324598048538170051553399585020753480896039420661169953856818025896486550081933353657831187837195574874857846737774697454497343142798163279236028992334101913958539081821065629352864533050595285617728100501175161741711516178418225403346488198986992306985463291917893127254206069890569892746382032870144104556639964963329783979503026056461993748228481080324206858594621763344885568311120961885344025449438435850525534882215522388077776343229705990675400413282196889305330960938346149193822257824066409005549572547524773610629216999325163104899782977929330380519517695909748733674354929857812530162632390600382888293795234378519957955300878677525186480805815384678577630953506272295824065272609383327816714455062261265781036453808370067308918662713367820089846455005708030287713567382912136651214686197283555022734854168182488372997824521412521790712795153368899696521334766256240249868680642302606040390137542656980134594920988983726870592831719089525579807229236515868378793417453273925194231560476320937123556395647114000492830789911401872406175901724928553479128016540738688167026947243572751376503842097625713748676884442164291422212224076014785827353039793737470717024495510068759265099387622289426800030952589622127589081751324227054703405693003924663280777780936192457121379523305362729901444218655667429169931433169427565877926350260232716223487426538341747741187853553316037603380484756600335019512416864874683272774391723685850920998062282451223887778245799779591411574629895794036188266454063659254238660964389341262574777168439787384583612242923262104101348046291562756306825259713834752613015544327423143705911916936459027011324200127478351334005193452540593648397123658455954074808679921562597916656356980696991679379563653792297573023844482791617488812648005968815393396684912267808836489107493555171215331770289725386539841392076574629084439872534694691664601177365757397770653004366004177510403202427608452014383140254349463115479679445952275464849631310010865090854518802391209578081198660980849982565900378137504576511245074263031766414652608343519744538260404016271408021486569538382314015119510871191819859722633546252748327246297648056861301871756203635155293127557484188260133400495580368247817621606261950317559674156214957643959908534603846113606215758762517236302276168368546380833821153772167924160001853562942899661461591113872037961299405743701077180224856895459230864345017631959419591813434913787574430828939580354195797725408961350588350229570709424417833735800344975995394155864351834562964268829803377860971794935046423684769110202764567881410651693643074944860446236004316599854889236909756542599671650886026671668579262738504367215511981149822213681654768867329237255856468781934480998237151238754882916338455382975393680515563134615200841832974957942414025500033949059823178099939404605130753517799076011611589257385722138028197971937428886257605210224104679854327202518920825589895307351271544056875922362997298768714629742510681210370931288075812163908571391152410731777855222223655430020902852870601982687886913850429756242699851178451228440233217758231325163766669742633639325181411170821998762046409635982941228252968956446488923900502858684042127399109844059327780127160699588945804876207994825663073253802637139614402528413485957837299337946238749087797809055229738585384741625428700884263031597108478625941965239939475138414863926519718317612438913881047064649952139514886444656684098737079884630641132923880874315866693682680511845529046227957905964993844115700480944243953832737821645354244991576211700831006949314090520148933921987781640756332002063722305937260792509324672859033479438651786892465677229530132455532721615434135877504150130603897373782789750094884745783563537487529427644846209888667142246481524733678975645231664884014742566083199010026672739580452767724036157167951252667516367292899465195697528487888735134937968802511584615772333946548770332241427189665735222625796897630797096405507737134566486476726450680892897796477648547918160298658155990143058587756420018726021059479169571181562233111770178730526402260361929769600647313974083766271979704466362829023260349592981633139471836533377879472164711259752385417178978701141408194001270251418605734414729317377470055391659401869079653040708211880240540918266677888685160880579457405692443802901652771444509075932570189303037306740593214987802027211502593357216980993075003171053027619561128124881371239901699801379778708853562672762433934073264026762729776155861853486396148164755676021361933445513430943086458092750876782648001553838952671070426096260159805479206998338780642461242409775658288962477080395673344842688987436720738154946356960814879837445896888385211892496909315012444973784882271765181213322639547793155646584510068250772954514673026691552603128146977122896747401850157863243903711316651266186866348543922078598097957095782339647821447605859696504225653786180796060974180229488209182585307448973294336477342176951430282608805830400073660552731072813167528620094090510316286865170500247039983519595455750321297397318422546904197316502421211587038504956843853654229473602043383259084376975841129946647499399842595241666883236994985246858970478631801002656361210741107149425120034456294545628200335972826749703173109065654702650547790770147503981905713672297184082770061931656350389902448672488612298740742007249862445263940861894234985857729979011919335457000776806042514122541287513298213684341520415666595115469736376665785715065226513105993716968899550544629074149972648522843672455133425005945127431936493511547371715732269023554422306081892709103643777766270681449315517656959691393440712059568981131910042128005791393194235842546735196091397065079021215926088503552010927908996227312564949373124981067898418900889540569272342350605791833816596839992638816192296277605086276819761723396912994843210230385286240032415850533176886216126880928920257798941456526740443435320868050265418718017017046212985515470256835154735040617883206080341782055283193690037292626400316114991844062099203622093645391505922827030491612439698263990195761281281971084051392003035464621022452318568833692012973069718954722511986031588450712137452373682472409733631584397522083491919543232970516464281251339107182738070345359972231431150570765550395220797910990332938190622637187474678807270048247511756604679381568531497892619126329392000158343849757917854240112508614515954586361048159583725414260384399499421448141371657628291503712843354106837619911474159522509785875710787510548030816006357448422545973933578333294347968812271830863668968694686240545392528721241265561106473824514022868898319447941697151710913982566293088972250309328906782304801296299011250164006452635717033886311280109973047664293909901301465328631939391786576694321006642998131069202021707439149821002407378444365772909394061687399056681443649036409166398080287423826823520558724327339789143644667764871099326630230831179435600025912535010841872289115263190592949114941685186147096054233593360763685816826472353404013574641596909874000811892053309817612747654507912100012371794318127272417287459695711908883301297920483132496406203028974417872631507368812243950312671857962315070681866140865481283064831657888714314400127530925780181488519294933300380100770688561230512006230534496757230051403087167551864497162808920065184063654150974971152801734408287681989503255869050968593576332344728483371420498649245250360033773937376871026948922700218491410564418251438245039784454424363943786465488152489454141620020339917971193784631569146194334819254479323453424474607816357185219368893849020329279413907224750908266007512309797237426086169152191427440731719840424050541102824255567464228983755620453387456543222271265331047425341537022538445458342690939117798275543942677524176494809394677352024509716572142979309084379793316194738841920346034881502965690952439734297112086636947466209383464366014657603192036096404591713395186837921406629146467527322965787827551693722755471925981680607424112191768688197273710764256059711760422447080761442237966377108307138887542921482568499498079403306100429687408173352389022633525088524140294793963357263208447816199218314199004556560679231290015130614461098844676451130972215433011018247345836860935013271683329860674506562133463059018144283051657115296720027254749964324228785764201587196552232277231668699598189294974823248113216262781841743601514758399716888626495800952266991416541252735590917216378602128591140684381503020506519738071630473802113322078176602651865185808432621887381787381071279471491011972028411272125030619729075853040221971998418401422470807647537860083992621564156466650843807424823796383588051651896726127889032073484684425219588074202977440196345472978117498325236657386645642556224271393455551312735713247380347335567827530770202077493803249822967316450272729880147250561890306370899169961063835749545307587077502206723713953389926686309665868556655317852649825098408222647046652382226901733952987980295627475356611008555490173668511845564781178185553963351257034265947907378472056449472695663520958046676351681812317682167809385801826564815390997608981776855007157721488359345267547540574395860538269317555077376834274241309034334220661343921941624998404114377787277774578698605426486149902786974729747126407541519600540887581861012329364579142889711900233054616028704823765071906893908258793478526585436156043302093183391782141472014165960004210062121678063000677540259148024955727611305620571330383005251851754652412877393045594659582498228351262396038350866851410667240940694214123418824090482759822950121724223606948611514744860727070316283744914893887688466288441821491126032154402603353933342691528798042628270560467565877014982781016119586641685797361752779851427904194950589472800261192759165725915271704710690428850687943209327677113752720246338448214575071416163834852541787512783007771193694616794922284956039103492754266549420575537744249839950550323178000949210410687778097734582347082964237208668487374489362863498710460313282194795600842624874682143249568998791841021081823756002298732835018465871858599563231898910408437748363247728241798110467552373307586231860800138823039924537324982413436668136699153208711031850640658420103982277886291422920727449099710724417990284916094336024709156127981574198913925150354525024252955607027145146503770303490834386470631346680404438029786700246851175497710822084820058319606923881819594792554703890188821038819304136428171137172586814679314192743165608354806878083988561481059866433192087651357971996591541179465350359349224027115596989318430676685470539261742044643066452923268528490930426011044316729929038344700183682268120429453358274781914407268720127106321909637830938819003627712987381860627205851304982799868374192306020561112496471745590428071137558436912431253380204811931436434172814818935877196253641559621460611951410093956404234390463782697468194726266085791447586176730053562113877898155909029057120680882971188437691319391556684586499047602090334765626134173819740131931698887684490385110491720735994414387713060410033957824711255057184111027099905236802854646118423496275632417050535465136752424169258923184904231943926402746872852205719410434999751612657426866284336347813056812548508098937372910854198530191599341632370809017213666110330169902149409565291381428353352590027115695854927897461600096874847378145032993041589817016068577112598524003593076932766670336111966722850967098621479861168568947600364746776796060038300159744135569594338581124249265941358101477401943751571658353454147571985786270085264976051459917559080427940548397924286722812273313959758901821557206680450538848969713145783014344260499145834125127794276223619863346641952520139009445037550404698558563826946839495912648617525392497584862470318478401016247403795552310027020790959229525623754591270764779990533092705720249783282819176455748973213737328577397245314844278806410683563071100390150988015007518090498267463556906104428229929104432197082330241958254350303387144639191911409841775526536148276551894251221214628186176028619088460258639294361989590831527101399972117093073303763960442496866033271992477095327319386152050341998986682994510214856862169488927024855285615633534047109684624390025370463188956554635028416668345858815101794909496621404467485219809296332366450365645769999041041293344265231691463761084721256918999970919981307422949200674117679505667362231709485930294182072143272943201477892651514773599368961019953243940286111450933194292417611772940632203853530983540914173522670145819125626347795976828076690506228953685192897153607694493449999208170803579814402282428878441235451733270866826889319953952055074134916330578658798084243726665520585075163976488411153633662632272363789783810989909996301447039518412891493402821576662105338193169797025735593568310677965367044817756109476791298774897486416853253071159161304165529104969748006609780528107963182131791156557020327677542219151127615753389720164411915034321194072651871752869280462968589103981345877846911035861693083156472475817529533405780154617415024385823217994406525535744055538688589137681120949229239895233978999356282864709174625745370835118175126588356315423722885960633224764987756416518065915035081677168074937778127408223000389578512605944379750858711953359997763891292675335383299271771362063699169088595419061128763090450160798127059673099895580462084619950134440328063601812943635945907293572051027490735861246590184726609569934093615937753762930815814671229099697146599773687081066033468935420785788004812688470278617516798177886763202520934409463391352750332552519109131133401497875333163642041589183212010533646183468322398170948952571704994011064300324141883923975509128340671795591357602524482609205718756239493054964429680269934427744241327711843062441925599872617121859350319560733071893376124699915509785928932854013926102853671326110667309882160356011612187140757206664130490635405053225840583242750605342590236039848589662756288005992549377695833557611203536344940948380554910074113199944264782960884880624230140927864320609809296514093581005829994796491680275729704621594360244271840370317598491496111867897755091996274097181903714084335815428124307870136440001079781561012909677321586180748475679836180530842556869850593112465611587446250036782956526707587043172643444812315423858300877210647966550918163590685338486651361847429423176344372914131300885295772729371342785110348624785864823914687560046235793670509549592286187497518639781094661576553049429355629126851531600496191918773527288908596725903662427863495950322028952321765672426264871332528126061531182850437814292248108377742851185245063402171333873460661308171195503671815879576789427716138063752216498204392879589989299896742110883223540552886511553774542379984272828901689967057591522998865627397016078405293592592344923131266561234048334232112976827539338489052901020242184925856715389950745377399218031620344489500107969513079905295768206664022632332650366059237247789590262079115263817948541861856583647499997425364614088912175631091167031186388446397993694014225345055036245221312927684511435832553720071466384327089832410761173196673034108679338148717217210146878396611083368025096712181284811615416578573538378899418498498302324213600466717501996122999023235859125104419006738821402669822966535695763574535818127663250050187462550476909102633348839088726225622823021430452763990516173126211980354281686092184468203532429251889524842177074450648363170160122185982296023285556050518653304244710463413889770543629590287698785786474702598604433686962116132762520764714434336139437493169250002357020126993731524334482728781941433139973945917447565605958373812153726950948944206474791440239649728279211153336995150683479996649545674063130043071247487755940166860196249309732024375927024640839385103387063760422837733375600547597014695386824003861742913597884166172854728145063700973772271738031127597802257643703030264890700677976178037315949412992636389700629565720423652051189311611615755483510785474803632793115433914651802344646977896291808815885570109604976529463079902655342981714778320574648849894594623948052059097986202195700766660173811119398967447730603760497833914046380214940315101302692522246205027525728092904842388283409926965776198829111326320240175113324787159027376087413352477257550835117819988837470743890430006272218863854539996884847125895889234802871579688742379897199511946571583343558870415568944409128983692924750219466140805576602376198227749953957064759057872450908861494498731622016630326204885084616341650795576113689133396133656027043559477596220752839476918694320866265010636599819023697674123003896846441339037409788735311301489257337783607738007790123055631174419225357178908583559877884350242996463441540635334134835515754091278744256511345579494580906278352672091258912056241964061715121405617274809721288973909871165389351074234181692329438302231163614366514913185765312423992136894884648797559446362535161209794918670800956629736301624747827523714477457286086635815855612166444952467852756305976904126246358547346631891308782225045064835682892340957874700991509490468530407994054907035390041125346099521319339640389258646273456476960679042855909962251962094079222901692421956449116564463481222011956887268625701140938965936152645977079222367414000788278273800780620029676550974476723818832126479324856016011285849984867926198354071728868181917240797332572945412479069060466323509229593862551629548199203682877501813004532565926767147856736371159912791060598548567076315251600029881304405463629159641839776633162916166880763245762399894133369847669655176810575900188488046777710023705971908780079380040551932647466272154788782299013002096480985328552105312185808884668889265013885855606415789657940715437885573008281809919664569246460623909545773423186915230587915081433949534186226639581164480159512765696519534060265596929604895605750915407053288244097200571750969405404982153749827760409864134899103161142915137202668121821607537940566388780930033940603342940221761853643521884316244766262430144267096605024389588604000564370949056859803138727309014201699760846439419257840109160016642282050167849044055887225529338721290529937232479256725691640954094787624614188269698089567941452242168999256578585855610600734029951857034025431617630208165049100148046876793180228419348226364462969947102186428313981132791648904126251811450390373657130631744532125598643144499383298984467613049713153253470539162855137145632371998529455711302185577452640461426243586098566931063120613416582034500715048286690313166391246900976003400417228533251553322030825195815584407743475859436475975139521643398912040304071766522580002267159437879419276585669154780813497834746382072536801614110193769400596266259493838271713435565502527253965362059116633749430025152025561049498865687948695229998379133675835275848611114651938264745759097364255593998343770944316945062328535773786486390227973767131271403706167458925480692369196279040219068285460113604349467563150707111484999253187443978591979137623218090934803708546122728169325756857263998780184368242758487638950974940753837630657294557661323132657705783301894661912652439817836590737793885598985967065697452349700651739323778068024061768028876626913805075611224898712998438522143300569744828141326197911846380127949611866253853901597851075566101552078735766682179746443122943429757195427996837632149876700445209855879526184737077545398761436569505616769867260286225812561952633315431666456137552590123861443774478033652237664514024423002226125883942602317936759372443633587089033882501210291655498882763348173505117982458733892196618795724670500010620660291974661282044579620576599257222295245813096453601256030475394332799391293887500573890023605984774061054657844829133050258766641173537163589991806693871956786495087603828743721499187829247304150699546427763868651521557809174578375515028472447632164727625649271134682747322437207938721824291144981606869158256455686375770077022895595118713264481674472724188630878461516969787827142920223701006640656146726926744878390774238337419717290799223821240073024467002021557701191662620892279965298816989346543427761516625353857234819595424714524153468739991635253858078968399300552026601989340458893796086235559800765665935982392113966108360853266714483469352182423481331416701563147421790053873347253360261047235981788449958635210983968433271591312827694774116765453913836648147713986883002121383593242068701363480957148310600428159341067081494564364576593465840916530534116883946912133640133393407060288551417043728127673930491318492091547082289439510979178757351755418359719334623133387175665366077666073441430695442300772636343880753731210033929067261734641906611761590216668870836628551377526539578104124294268076661399963872584507421798137205991537538452522054933670594533817870111707563118166644469127222235171078119278451524484102319434924766411795884441405912734049616075675498053044624835165763658309629624219889522572710652495107955000392944414396741427040288609219600820746866128355839307662186833525303142210151659134874445044188996795961472694783425094896577927478999414238098334373873672262153389025502885236598594606230490147088297861662259903853727852763153992809518458790556122563096745843576052262335790543374207838749751553155435909900839185251269874849957739110347937180433550367942943791024173451657056637390676594885461136699336224205543495358025041021275115071814457457047476997321063455668040474455511095904934301961673606371947290358504126054020906594407420637474697229380393044889787346632236487900265716205834772528700651312487799529813877704868736498342111012442627520533601188839878685210328307758858214807664584587730997410705410131195279042226881958050667725819179210144605419200243884608535494003256736326957633473300207418761793210882583244676417706499896009121056674527986019613783217419676592391787429389044616399829079617361927828280821993433089971882867206779739765910041880402309004283615418983315871631070425501118986398420444313009785440817484953200599125184309545158424858228384151282794875664676396328085142648459474114596449453377792544083243584186885450034176321455922997327958716294026048142392171507684274863514190914001081159722399204776844331652827491329777975228006191232308001165706431062228264058474299166399922691343557923812531720946883580716828489048052006673521542794149136259933211569338806096960912426954797386200582681567081962799520727027079058258219592773052672977533501062016731581634293235159339023113415231995417712273119341131321660352099898208929846989450181271318366631494965461098668488572118324086360685979783716191725619912696323212617098211792195885032527073377612969334686811126724335153790893934758743657951968506002317110896317229429287056757856526254113855563373430991363916201101060433398542876440092849875722506959127520016647146699401241448635730062529930114147691811575240516622075005405755133727981409911370259472280419308491998795347655054229953104531227842239681409897690208056950891433303209196536008699678072006381166241231006884210271521593731191861133091559537919479719228430723809831457931404049049203139225497094808905571227116955112850984822174446975084731280563532163390650190198937891637411097745761453354856463954474892435198810028003906444694927227114138826186833389441625868994247909850315835157935401941365245402802911960087645101177341453415380239440634832559711930301673552204708087664155965983413541230098213276858065203235488225781090247361306964964917923346846911579307176556721020808912266352208036241276184069922793896045297690359022486847612737876892039594101191080296284329405095690354776895471552750265077616484375862848679722552064368195612988452739328379420556180500262489167934742665218188524593902263604119423593619088316641923729863209758519579812185178593656173100503867066975878596131091813093068427655150460881928727541284799741730783330674533951599132960691675311944148786699635739433649596255881878511087928383317164893713424987499076864835552274774887843684965600744064576621705831038386264052707010186676376135039624688433494721526618112762619927880544913442284367604364851309253769229406309732077981752675142579610613355443613794985336872850054792724013132445475548911719436240229190939264326702970602091942372474031799105931029602972089974539130903729752507909788213219061063071805305120954802737119657614953528190635807254241889256071732037909907506125452331299059239350458396759416724500061326538017488164560644336306165204525618022620810825056483731515720336342758035565370627773503548459086195513283077412574304454824245871121520791013810610951003658658931146730244397917073662601803826382081118542251082786590729798429999993011944764857498585158375695074558395759036468852362426366342547059182231381034167310901053442833195876412537766492534542848720993946266199151143062318324321123985901075819043931726451418513081981291749808993323060828264296980524799537073957413351215846829540751851088113366198392893826353846636478748170617016627300700153651696853946481891078663693713413142653920235648935937744540108350746187321893445251188764691742325701888950974088901262868869154338976771455633636045654604048950459898170420279093429153565640450181872004525421215760548976771536012046980124073814533821632240664167932371154018390353749142058001153801332550094025762226954096314342731928411735229911999919576933376827560671836986392436902677429886524082995770762426529439962985626104664661988226015137365895083458724260279050944477349273429962021549704663838814970360057295481408215299753366470330548124734128502267319842114426080717026759762167839300076364824054811649712604628940026484433907306954224648636403160094443285221888961527652677865387985815592146643026298899363463640953480826394826935138208652149125492258473276947290063358162642881896857792160395449649632688772504104037278848792799514152573390875915568965138676245660027471188102113666501661340098252949951988976753349973078406729516396644639084072265309968922450219963459668866793942106709906143701092063052333357780223996417427129063819934422958093452518652575602410637582620924228814670370559255334015710380788633359444353197712866206853776400443735429310761700881993121537353765278867110263152710129994599032513593721685515814154866923037809354034714473194925414808097418407109312986407774509732306577354686464087348335849143350545726748249347428977459464037523648031968306030836305062136161056706735914874968819252497546846528455689484563451700971546845933383062608055983855986363598174012685813599832946108193893005908458798112632957112043067856610986220773740735421770441162712339200990586652708249803679086064311885514485861640035489752366731971806587664600652322317815642180306129282286845541600272316591225642181908457805740512339931048262105238343431294243339873146587006343649893199301153746556726600382140073940179881038853470589422052120157142850675870395993486796738356570184666285875752014850721657825107306815529198156090381198943176060440259928087359982756357242080020339524280310682963645292871812455401217852319894585450226004976368071532357866472675352184089959958353463832995246696478005255377646169508457550781212543065189278439618020401181441047811166830580226820670593417290704633569792857598019417950341596876457648338032468091056208682248060155561918310606127188311159126821059899451802675669471348268406442901510251729934713748714602255167759958073768008236401005769897446020019874491379186855588268160909632124878318457840097384095097457438861453096131103700027119714857964692590055128453868803433592409784828369965451423511834738077844753088332070415840730505454870076049647960731722553982424027665901159127837401263338000988904835817072441525700141542226041940223837106775410013684421532721731408848797575384976031570013979440859762374124909917209221406910002746123252443348849688641950467383167842649495073244412534221585733193330666119338430826340521604445928029303384831884683770164206458947481454510259944111671499711388431250784745518839132062774251109445348350549490872013378876252052423270460271255588652322223442554553673114922214895015185865668684285437644856857847413289979088156229663608425731392282539274137749643678251069987205421191920174228897732123835182906814475218021764250738593727376511638049289806629820741387373600389582879258388359086190441711439884860681354231178568141240362703749616870337749628532802787870151984410133741427188728598827687738910659088992519868429909441124515406980950049126097985592632518599247335869829076778688078550798658286067947326876330545169111947924375111348538326939228501192396354771616562165814566692250742491009110905469270034208525810985238769780802810878432590396835869003854576555404817766345999932903022804572703709373029731402450038383377187623756731858288450920807580458194483836247116963524075934966730143628275877916967392959507905910183890197436045712151524050991169024927211080163294671297702937420197448879699550953389398214790707157679619566764101637112741506001882553214380807819300057859678839178838068885148034936189699034957384019881647248030222043455528162568235505986328463579690399909673969038352054107873149510686433090114672434985047077878098643734121220238273931213237087219570739666581753303300929201863716577891781579905099182310205284933868732654329624773775055171469692477110971919008523670178884740892283373726004196559586465028085368145507667572354757558507624352893119992182785951484205001940934441585038545105627968571968429053201771444762546356252410487413372632122636394059724474464327080566405780929142479003743110340732915834359862022623106636922016264429088388625175739221779401998280263527835657318267371771476543262976682715431907404908990409319319848647471716994751170097199871005847110917168740491326392175170831770712184517734485996768859988888455146623734808678465848537790657724763858193191049551590796183898404303504608302089954096097947134736421330308598237850848060227498931527332531540914150545025927005145706424375161158682121809201217130984173241198160831257215462565688056840747592877447494891687160049698052273110575106002810174132163872306414049425641330403569433790420626450869132377830055338309765254543141245568519747777129022376917493009429724271230874215319959459721058098753863190409603993526601883083608791415769757275431781246395547006164966752881536013903925332336913879352264014256326344985814611274311149273616721980460785414705088561368601346788157580606872083170258706555669786891995855459874760888574550426541911675259484475125672678887338223864827024359531785461558853685859453238609111621195446910832333575305719624362704024833227506523365353841465242832514420884513622461196107614482311379707238472290731808761054410323143422051357241704126413757174187396764201088608170826458766653385925206585646666742763890402026964971766392137463981428012280626942736567982213801971101748057805295878676048472847542445948090816318817436572340508088342856918603166028058416238092596175863419750628910214356161687711784857234848353337641580478786825143887497005685749188924072768286900784515577670414326755650600765769670863275157175706388425036584723475790891855506295677116748066899741345265113575846070132715032112572395160247902336517146455640072487710143098546217355963505935837170671140628305568851911030479460223446736944314698720415955270020221417380294311894071337862186872447987953572186567521534994412305811476110839309903253004593297175054442714215708854630124386728095369178594049235042683540479885088685421875937797908658297298942146390461394758633073643402987043573244744038886181546382383611172449171376098557959012175734550980444584087253710772638369887040864195598890646970947073373629899102404256352604665004209315801371696658309008080552933099701273481260988076676502177878462029555603019488153589445278727017401155850296266303911421986902712964120794212414925683920622607804027302794671632558152256061014249794158216658788180838122092875832141437134011112208646306350394138964249744207798132543984510881967378365732472279352986475297609679851567769966833643655576263045486333870138308856521577287711718499582042669095020133492912955438611949095256470604876930310125297805342918487913507515682066499262941507826485130148093944065749543778013657051253521530410419409940632850722132513923167285651783116674219288725656525040903264197392423826231136471424814626587420049531360789001992481967164380306849232164174238674210686411629483524152832971668172982430554061357736497936467399924232577354272414627026869851691307363045546426109901610507007763576052882202910760035174833072522329000796743632050409595688184805835802657930446677916503066524097007981498594204492098260778996754727605207784330913651987436556856433333586263449438547738873056358761122178823029851239778714904938478301085621793737943091090474101229568403438559403145687276823410264530459469075584923280382250005460811256429537658237358501186716941503342987175926849349153721283076538821573832053781413682402546648884859088626725098023482576701907724546985617848701637265419818696582340067034525244170286967162668646295153725905329138104975518465587005781367924424664271071849176320508466875355321110798138104345224463499685255644835027373989710275957924613908467141465943324951905210968001639893138115713214881710066325289833079365742923824405928486144026523922323934236767286831333158466902588578038703980345423832443115453418488253137436820119951389068496678209029232265463627601561528556786461000849868483584455177024078433911943966070986404179812615010032938260264302862903635079431774638951152429269322274195656439231226070687663886352045586406934964483670720752203996109968316036338945571039000617736014684781907472671159201982612907009619677868723468399968911708245300991668722959970709111764773638231155221464790898306590614599061938252313544656353631558296718167334675451491886660403302695186713460841741153421947296966753459578420102570236722869469290396761914438007352025306308782331815620960600476780768128214522295669608661288006939482832879062567764258290015313410263552168816458865780121423397225106555850610839694085951868797470772630891654424650884024140682706429681885896307106975096425449430131663337098094528603963464394215516792329651700885952002202384784920068501375211490984511537085895535776995043837057184265677253253209152353356667172337381259317449939548652592642731483162273977080496485044427090233862289493199696222071775860739537405933280775284337960501473821438248465359674648186373231034129238350735433813576090147033363575135767970143861902124108224293478791251548260144022801994682468669719056666254353935616883799959061732609984305671259287563012649268025478994333536855127617693954665090267572935524223654652092047444325864081831044831483958128859331003477110886929697172720858516656567618757847245656673762220951797304145554312299445419639271740203037216877622430013148513987152682821234895250700028851579332928739455536732642438723063381678234597671248419012626005578636262479788025580309093225080520262601537577278842941718855630622080477668534598932646595784722216959651369283868560381249579481350456441664528452794859282867539826989607007284852758050163050113249390693191284567176683760501326520075485684201216668499959588258082910639602531014183202007320663393421447608761972229372154932862576370872834400722059526227678258857542222585972755269904389317210024151553968506493880669272639412495816287128508636623494283083975577207070849897909921187062789943031927866683818131840703405928646544490270606470277846205500439234188852671890774530720618678791790247246818269989324318746942046804449451798254896050758348473419383639327208050526073822197434667703334225652123873083403855837404699122094381201927567035420919439785805901814741141156052120788638878694000291960777321582091353567840891846393958169942694159810406184548824072255337984546685350244255355630527396298447790890032679485964229934551524003137924437538704689469898204142027065624862787246128454099884573752179138654203552521398491486972329539791683864595122372187559498486328154580942342212741501295023186230714745969812352850828122681554033451015682112770605382572805122312056814472816042051277591398618387729638848489761902637365445502899779160738714542154735057617513533029173635984248153930097680453651513650624963932912215851127300640515583876897972001705745239851580390337709918561552464946521917356936893865799700870572332341927236087304586610606859324721270237706871584980819381534869646739886522193577543149997046324415240181140274196687192717624739672949843440262773563495990210756735981882735070450628668944533178509507938670090367675901302513383727403246861518297824381437721603548548856669046904834612755634018122838098346715334966123936980430308537644464145226449138707258964478920427632966479973184656474674027510782982393314815676705015170644333392119170601908051899052881603672134766914241897715843122990598580188065351389470000311808305759949115732413190171499316728507354293604072073513300540649248749468133092493949298211743538041338905297954310691976668402077428860518738016259386140018495088334426662425078133310007469309685531027725344524833031564482580628445047903466948799246621690346318472131997661748657490531013295416765162257767817927357790041558330130119711771773304044726848019942202158689474657683823178400108531388433637853567579157236329842793048999263582886776707666899012688665141137531851216065509405487415161077863315063816419687898384913013998786834558547019266442859872850143619879649991538158520677663629950272568655130037474624307351534130806511303530574895373998526695163783507468078337351979839568283073493930467706919354697142472373471371935468221685696454204171189883005697902368488990955625062901699149316459371506942202776433647435341024753033842223805868791462958004160649024463795896107810887707005988436289151483897205296821233044553182397895027695024091628614954947832088540984093022416904826635126395365557967239959612806358805701236246261483955525753850524183408055744371768374640467715959601023856019493653567199359141445028825683586514809651823020710514387324171660795772479764691445288025204148128470824576339131253584414063124176790908047621058437810934953673312851183056732409031848048725870099689386320053474513184817719696982017824520623748878187964913972890380339521943039079265647611977972412223085644299569899465925509597020187818744746527790418747218641917942948072671901106822737608389096369603759894562491695051161866362035866448648118533707599501429852306252935261567977391525456805466958280037386272334566626505759849959800020802465665767258753938505806016615746176236986212845925526023321192009133450169246760875361686756388394656900061087305426687364729404222369563085574276440793062617490226031239935436811043267359297756190101439743461449570323403560993279618033663467716883751751672976753409137311801938445276076000080590658155946072759336969439186995093811723987927275808596210949322894897048431881616364816561759289638672462832009587676308275278333959423452876251442005518224870205749855390584474719009023365021421674319823007104339930872431811102097258425462376990230945285303790923829293228791664320403150039136477933909602172563722028868103425886496095682569072332693190710501970509511927134425464745114066338073572498155955448762009314760908964638077216256278434293820214670575191927599068913635421307449906902485991845147010337345554308953181750824136389025455820928618797916240449630480317232596396639951445267790168339550887234107342481597706649769601500668712218009524044363420697337006393954931944875705079049808027613770288060198711168958321581256457714001473985918130388197429544121373999256488606901708702264341538405100971096318352413407257104269147871707712864027895322995952088275560415066578313241915390685654963143856270797413916988554095998909434298195400079180661635180431478612892296080774430586455582032684304170301493987949350677591831617082381015255135593001694332668948477934929229525964010589847158029183619945384228394459059382190331392545130756802439827360576353551026967105322341468268843241805695767715851626097284880300790000506688070334707371019499492772648741548164405923517647292427758794789209945447683573013185553708132465711589833752223302655529509194739310185886924731126161448669720631643116603890375181626443232001708687715161619382872141450192216394723757946250806860312747927356785012113877135123556331416698556380008850521183033238487569654025336919846692292958265479991506605247345859733280017769727161846619134276248272859631672107425176557790041634320658180987354717997814376194274186254851029967487546760875279447615342264552877612391095130831587439085390689519362364533751324225437159809610997357029825321240104606804392723902890941252345478777587011609181628983506774660365509139256142988395612643903114737381208960625633882750543862614568492446447048794303475147867496255011970272489540271889706795717266031752921142135098957507683280212069899443600780800891281774331236683411754857953437220089434300938455681392911155204201020115249588418311076344469147289013564727800837144291373681395829988591027687786423712777861304797962312878028149042283227846437448540785261094636456120331387317606582609041284502387198187271588464004848756423727952995155406717762242841364128997796016218180249765079961907783965326795636315156336390994754047891540851257477970419312702781132606321774342612730046753063835796409853119777682322805727154563505836591002607412537692308847855286012621224918526949938268453875881681967049665194877473162189637974877996146904200489806808080302133599580686582192072624294720087887641945100806590434013355608832796396142605624655952539252344790060555205677424121180277388639549716593982311448450371221128020124631586042434885339268490004784515706268361016478971334873336319052355970421026875865243956221959954162392473887792632454395880979051771989147575778597247039304120962057024590120556181505074910666306109745310931326546800317587195760328059864763873991329085305696345726689732460799287502329229400407982706398459954125943580699006528042656026514196026546229614783587985255356724233138494724309839847643388806411549263201215573589300756689129639832342908339627776746557919084013018644309571121743689971296613344236382325281555447333456173824882118698146931050285066157455388043733046518980232477020763543811614740346800207953225527264950265360165890960306773029165383033296645131469009528410735136699325727413581201333105090033352492402415676059563605443619312382235610245231338513601692318086345692876034896643340183322549927777335601250501867886819068202458585795613854120238065187516976287090827811105847472415750285413121327594430665011168587682909495573689352390134702377446972458860289731997103969753299987400156327556868824006178832587209375209178893322154313108249875351500062712082716481361969302534464404246988481596111610996239688939794153400324281905674945351058126738303789277318218895260026263472110410947194296523194638346110546439016282374607857135727111043771996461793640987397162836129814066103450865461749945698626408766171615376712954248038466644221438789618497195355464885080413682837981073131408462489517045438274024271976767853914807092224822739808415376759105268287265041532636658588438343077255513737941388133838875865853030269542866540005084104132264393505081377776465608219949200543189032385690092738245999422176815921767301251423925244035979376024724510415211036763904013307582384181439398286003266693184436814604534984524690506335438744310071292033782425865461574930708346020839695009472319045889403126920130452332153505355249418690700639686522083748317256042076398071479383894310379116835866206682060288729140513703282864320510785854994522662734958646499167274692773651046143800316623856951683368968993708626180684779465760965083857961618048360629455138755434262508692622781711401470297109538051273025716928880942316087754644103597234879374653138622420962895338759821683895020157226126928247679534142739171132515313495164969415373070104021204534111970581898985287912927471853765498995941598021547840956921980063908803417401587583665925364818671508003545300157154014679991225460202350466781789661814887926606851084105675272586637107759189810082813169254393805635969433154962437613429458936109511832099083683977896527159821375602824410127048584961053570638868302030411977154012984628103870134366751087585682574605021022857371981831216460548698572167299624097034582603566751988379068211839652208996377789747644164430447345354330471293393831753675094664859046565508418684857917019489063990242422622076792753081484099561793730486578840143268814182502805991783931482985506379108683053962047740267615297421734680237480855664069548405269166721407222366195871922235562423908026116374341099050830088151978923181282236713904070858771285892709191881042903641447704265628048596179842711852791676608543317867517246154158908486544639430191171382471029589502722548909282244373021979431069509212301424990735025318750127904687809397840176481644032177021584118588621557906886902626539239301019247062136027086169177135879233671571876024374666897107820196246218195657595375427981599815830699786163369972138856218085821075232315301924804841888260888546016225598950864086908832309143793429230522020465051351285241067257855398248692109364710241127403304103563967932979031148045188495986035512194395062626358257558865335997981795880884619285984791089300924133608884799241863632395792733041101271778294052341710017409899425454894243618374835210197374706835776168792692493130219676362521892769315646991372695975905893703618538714455393499170536822495123669500205414392562558585086238407289038973746578934251305768604999257002277254301382698349750586580713823362990098572766920877952564561299644202214420979741166995846518003248484107548488744686371845583525349167380324487935849881824647523681022497532057889602314862202738898499678677090586673840548732636860412184828199718406962934792807141159830053094712312320446039243742859233628744943925858990438278309930467956576419164586767106791030716739865483692483718501110880595360698759006998679461922376438278468759167510559628555584073635321400639430445480943806844887871810055629459854096919249856588003865788743819248139479921446163717667693836791174855002722856141071001340486361336023901785847728202478085670335485829415326454317345619962653353877484210463019250221838351857274190954754008226778476598705494579985653062365778116264565471833170154102693837652095574540348928608460055548758538526784673467842017817190503700029661916333632429796370949284538515746240489631304450051330963743054702940196926664417571397587419555931181762392050847931253857485686588824296614472506191798008278575516948045218368609591520759442285755106206744009219438930239312474948196736361441870054339510297823003189306181329233032345174789782597120914770980130767338086966111985113117806463839359883060944920437345647343827394897734649244668516492278121141724413889003145058004394283392300109635573993271436643738836277227766948650375515348006376254512250110563474482637998357193089943813605938120360553232852708972031555565213431519349728016471153068536789327111348885711095558174609234655522846999412603855891412557871146674040528736176021862518594391041880884280533107414352855234130307238728592677733673868807896565458117153615680203414857079479109496703573319763133824340414715117941269399254551382451543836968376670423683328006742345533539485972646844096643588538396803461715849533724781952373025752046233423926254517772010856200557859904950032909681097216816814835321032573082375068044214099462172087661656372319035676299551154250013665760923540163576990768360096720019819613423186196061998632569669797274816047412140697882818555874025014362413392615595019555451205391137853637421067614537134382961022909306711054575664735380510035101605625211332947184701226471556611759056096056192308388417426313158950758872390735717020798880993712591541031210875059737307668785249075767618594123793694615055528291750981943930027592307872365610805536018721187176689764925566136096286862783711135434701728040090529774019717626856060310608742786667273710854759952007046690741553490080675580614346733051329555830497880080280935917503834422568447348617205878766785699602000626312529994387530050298190444599294878679777915239588180379272661482896378705935654935088475770325462684520614871196607513266512772808473422231909661068774853267839283262284762026939469824036940203950096881154381718159602320090982062946203637920254039371899123823254012891521492363219004356438491137394356020946139043281118809892569589552161596576131978203554680144161636260542960578875847281458662771651509303527485186665897237936262163663262260503742814930568628600707327991097099375114244669281370404517509521973558196442325254075497511296682760205762313361624521546426071898911002177457283099233317298154799351315999789831009822781810036643824612064978327505794935729795463703778778190054026223342324418651091596265586884325364228893842784941917095488465473865156266333176668125929631736199488331177415419299179357696254711066942631952897000841395252236394555648778045962876268924826267020381320191778178014459855259715751790973024093393127753881730746004735518013810373971441893149886454475698533826952998302122022077220257686664330978600484411179866988091217744186363937772266871333620747507605195067320101653959643075467632264136909654210502582171294090568618682418256279552081459852167841389201349491718788413593031188937410077334379804473380248471791228472761984389496867273809426131788829346951729288305297735069169789894128810639494585272890255156174560816704952480217531256210701537456395227575737761248838669579824262039094164056842873028470010206957734501811490218114272509594764372235075270444577472615745252459033583111307888920952744056736239910827811151176612971392882354502119125500707513280885399250383651315501091788560043531860053512932589776301994938463954274827493694212835756707838021445127646006229944102315549778372823916583097003064777980745304972018242991473821607938995071462802026307575588967123549085582962031549909020715277696640485349230404716051253236285028820319599491260586890462891445664682213870628081412047162409114695447014568993505545125068092458006425673269524379811745821080339121702807273851585341640781170538012908600208374052784039719642953084741176001838380090230443532095570221333837092708238576637014104008385465373879143815611213892816008479149455723425385549207930633090755012599190929745694319986381126859961504575721955646999209847589850857916973909616228768525571746428628751591754658987938280733536895382044654749680606382125341212640002595082503266092614559813954743348152367318653207156481958310466755317532506901963851304876882192305758266198250574946750759481524717345098636996587488774984936809401724639867147157320587257132029101802381031165055590043462263231799948764409964916674644370010980427168564007310997565570880933453295942859491048818846403138321382227913521632871060735931773610525206869982496200137505986334941957186590985882154548333543319702478875881577882468311097328755293625537264147037508699523596948945300697824342130465106550494737511615257064708217603607035855188805806228214023826435145550293679715888509275489133353161673614660531159811348685414607564918489211978978635656278475855994224925284167076227017034454974753485915220857121547830052576097264033983239366832797663359954836224226734669825337523296715420349676173929650245892371144782429989389862864054044470124416191094316066963992182291833643729072674919621342297489342358576885583466869210971808607511100577496199055164756008424863371562809137186735360713077785426124891078000113070515776237296036696980569014842490339233511045042131447544645566156088611202679883424320295896611701161769211900071314042874689997997801280937606443563743699111782513678634767881909984546320035096263795732515138264462133867374648313063401102740277454453839349670406923590334051721806791411109926417595691804936051282519492110269825970459332031854555674659541593229483625166666642721565817107634556728926508973596298075499200514315646332320002548532945997643674230215528548361466706230908970823657298045847796146762279059792290178951475184664513002200234722119166232337920399128016170958214719216351483644071242103076036556551059344369197276636645451874306958480733521810496842015223848056536584552619297509170820942612198098935956280532452234531243938746114790411177516027580017189307473463494901073581327150155539597537815019075974134737166301519124245314477524679127120162828552730875426427435111216918346260178107216260602884812279537309346034698538024120717633364055524838355252687732017906915429043142987506273449099523207096602276679829855869112425977597242506385329035493831908469318519910101349400165319846878712259361341628552312503735146371056693603004034073492482105158099625697289064229564124246518353988016313079534773085658030186905924411279893893196759329175625964492185066458765415311476901714704670860859407261755702652005444478533881751559627780834282663325903452223105213568015166123079854095076113170941380717163069747876612574813491627880954996308787708230943565041854616509122713924676741658042455475080692915928839105579207626637119094635384806208377668602521086347078316022559402457125898212948920991361889243710485730158714367563213531445452458506953910890492305355513814500039352819251683675701831216030528236602050060191998507602918904284806749469477636852640515956334221515648140734315086316314619089792120324977273312936992690700309570430402899136550628931054169786889263173457744969620304969467044707315574540999755494525513135706092821849060056055295216338417872014681290903986937014788902444071954530518626508488027337156890810793940609599448078721010113954433684191548486098932773298756277037005537482641069963816346611600174534405981789149716083241042437464520389095020512507935497214955398677726444969932568376691380805011448744693015456438876444864762230578248678563239762009890368133296644084250297615872452399677906561905526708336316382324346065440383941956716685919052362188216135428760875310942463847695563139886544164727253765650395760743332599167792374492618385386837597393204040481251015831955074094436919917546113052190066510422914470104664523811403315522336247152752174966861911627723306001085309344995132052131350323857442062875543428715032434316656806623049496707700308113489011273675576091323765759120892580353260915695882288864270273486753135789245574479455411470419123727280840303624769173141423993768931163443169448267331733552250104090639595192781088267198932755525347774500379846335541529876392386952817630383295314999211639084622220011662123038925342365723774101467819835245272401244009379008410822094785151576961958614114904883973111758062426482186004371232508694790731224173892988167525970954388472946054353142582271242591316093317460508064483178038220695322580753926057582821481974258181481335913937575016999274720307612567796450220235995166224305626386879025472003630994776803760188113384746164573996175017053829610742454200803895958574953620066966591325221583481224735443798675327348693816787804883209270272245153104917526065676356650533424411533550941536233130719431602635689953776956731776551013916583087148552611860586149765736704083309624185558020711616684414072058727193221178376083216536445541810796679089457626674173199143667788967866158263728965431056650799372724667621992981607212029896825161662061883662967110983994324497767190506629266152762966169056278534142498776255198575818031684793492989951700889272378419925928920251769340115532778736335311873413008617715717542267893966262908131065265249686815257551607447119224972775695645097067558679793500612298769016040394803943384075547099216350853838481819979376603930925037035330907364790076962097287633462165609218139768001376313776161938973149789639912645163602493685538202723792466020934298377173185657695402066044109609500637543238697050079579987665119265581140159446494151897888438145621470403860744346212737156288920768724114077156206900564636631728569372582430571605630256019328110052495682475766436521791802987236965891745998664757342549866182547800786055193891172564675531716835157175483100103244834256237190533235733061566682415026360447095923883614571167241525965541838861793009603714045038404961368722604250098815681725965830922929477032287978441131443889273489117518178662791334397040832235426478131178133509363262583440949276393982278382430710030563846953136060505180396146722465459567636851486089856608461415122965845752128575739085724714497219204533146976329204307193522976219839917000971318516178282968403053964799154841351014820661674892428798798010154987136318895771350116866749552423346188767475905898974803731232275744827589833024893965093705984042933589638683518399313758311820933988080495188714711466242034569681662901210996448640975518539685821588110936031402201167568752785781549352556655855177895114736281421488203969731018724825541231212128023052109426337214335979124053156896231371230022370059232477129950765060875605313285283007525022950780471500554850088268151908327008477497229611576355299403145494741778463074865032022196395797976745344130768249830525103573130096053667123931661512731731160512689089022626874460853050000152944095156878426688322733345631578213144193220625145174902550724495735045969856780663012964689390800023526041784682665796966510886137092610402556354832684126687258580288430243400480663031815944313618628873718104674743453445805780121151478729700449194709401482209105633669262252182372767229108133847221202346044780550349046302699473399143894917687458137732453662098710901237079210449769516229785375470077501766475388153115877172655232147680812444174512831089938917061379923996015700025224542380773183702825944028970755075367885547380684886463522890614864711431469725797557489326901530804762176328476916447939170133370316079858360791353518846831648005799462738119118522321469032885668345494612789897355203115603459422277456623020520379827463990122419950238619367882565162785803029892366292733940083190428118102627496447911778941527302986093027780040069833035172471006032292144500108987617533430086720410085849633406866016435579832397541481455480935395444529826895601156496508980169490964134495146484501188158823296110443556455044646230100292434260795314947399061604632145352370126825434788720466209974643151768335728705310488976314415139575283476698392918546636264872253026337662473924115740109847565832969976965358389362596648307530986499060400191892213583075380607236357638015110806018350777412901256463441345880403471857687931608038202263936984405091596277073359089812202028899361150162900308720384142415814378891856038978308679662409952413287579247757351969559307031822546717806998931241654024599488184560201526623591313721664649788336641698533421871538588960719483613697487168651486353992090043616353739353834101913524961190093188848823695370673868179174209464811781200664562596342036567538587737113870371692386933777865445277790381532184722878692820033077657079249028635524131226194788350413890382939900805060731234239761931679511554223603974935063051819795507175658544355019430353607578024645732117389752806638794242910544920716945854540913296578830674583003887869280047834929563327427132513882499054029069875360520875445753984545592599872486401479410203357150589800223844620821155340285000511667668100213291296974500628004563159497507007301763778229262029669921506245525044955070780339509886055833168384183062284185264767906723918091872270959674413344316767766897065013521768386787045177295302021425269442916108185037733596633536866482403023677158335066683797938220966543550535448058090783875526077649063729317188249294522687636295776554103919057913559642108673485228112192745710800284061514507762636103375155382180022271759014738407028269589901387941012151786888301998473347281969090726173455225925441051751674477613897199316747989667718900037991399975234305244760838317164219057856187049945564076723352218324232692422962151417732166484176207547796440520479106481642967498097741728227136243834759994152749871950024459013748790127576984449110397179449256757573279159912800048544178564287676797029667512666244563053505443841223996360008571636027209741898840262000873904253073892734531131297635755909017140204891974518367450478305350786499434631960958828266958133430910876409782995840615991847739760460932925895035197358811696070431326192149549079950656449156512540304203803447112445897685071243298313812301311329325678945263055550163742319244700868400782534590890468736198579755290409004783507070477748619497211553200137565628256112625818603682327536931735126663168891214412500049101905180162940627336481574272726666903540790508576036389858183298654996400890956325376425897576511662022269556095054589013777606014254884174187882446929348823158093415741689188865227361586286597180735988875974005269312090833080302784424289015181205434795376135739286297978199914496594966783806712732574243571291474358728177206663189303162261931131969306636732324164103137323772822730733784430663038610917543251285716474182234801427738473679680045152434636966223624681500782437479970098538468642318896363488269965951742016564086870679013675291809990092391821432798123916166454732811628504776019997309023938342750361694771096794001296364999610867553127073254188504436998619795198351540375436091687038772562728474912201602089857156202279620402858083481694377579192717529355204092599253791193980371566481236899201525924389172085138917038573155403924005752598160666433495718253546018763220454927937284167452426675025928823808709588696564294009223978358238749797467115831208922149840509518086291996746830012471609829170699157560989072651235447597590174129399101749120660008712030138182178897338663532658766643123088709349459998417424053331274304918559027870356974099488206384528225350019330071414914454733009885812639832791501793345219518752651655344329502129506231460122295168964833934380357454758589160163192709744023339315896508482700074135584098545735844470202790760913357280860106412412941521955942204290120126488531948664454565804139753361712505146175898011659989106666613403997166280137712638236350926618366616045168636929079970801497731218098565440871823695305269003771904216127139816235755432227043616831580027246599247802521314534965775810560833894769228016724304957664791305865763673072349010459916297472485612848466280374184137500192208472375987802967694169081917082458926349406316904243519825679081050369395985193508953472980873303863587724504068137276732872577784042199138508945906182222789782489156008229213900901706128366798422329623191873618451244385834038673193132304977868990038255332932291094868348875377725059793198205788283408321061838160134448650287024267726716036578459403114126156578970351120079054191717542494826860200116883988941281876471537736852759233545342765829602084832125353810588478039217207838768370125086475067286623287884722181077766439963308032603092820132028828800259920235700785413866463465227869469133719490710714390128968354926289047608359983739115313552949604268295808846233201541464548116546306740194661920765982895932867500761611715597091028334013927154172168275715584126048797786369149124632593798795160822949835229382243758355426111179751745071025301965163248413027375545110901277878794119595249628933125386827612799301360094628994443522483625918443966378030798849083748861193243844298306636395482467234962356911640431828172413028042960381347418341518357582737160052553789712445699847063209460325296849648704397127973020247911992236472470818383702911375506447453584051072242999185566246357317670190590889969783764674559066887635684108860021538315505987002893017818777866391009042391047945498227026642666868605231526170006062729544649459220938671008620768162694276984260344127727984257709679529693105654849851636974808727646902097709746290776018047552388757000421620576652372246310461758392445201268108358068286243410817307248656088048777555849912410800082400596469204650702224085451517412443791670375923901176197960367266484516629706853289899360362515499559083303636826756402768369321715796028991390287967420902353456075065250168319632312147020282259847663433176743968783977336140482670481923834096479957079595629730455773933850041607557797253440882183364343867851657493717404966364924012661989361618690674173766475119570975597077797454374575129614769604662723471548072354964707959213555588407878944914071156642802739059532908292409651942892909255012039346341445544279176341110348362780556217155920526833851029924341690826521759331141427630207564460383976953977265096756478795569216315988655770100359402009160162243900129647440581257820860853789943376837161321016560850914552131812847336758907008617671768895579794756784907303051745300522850367472751746187242477883572298616540980559403852286260518591508397730274437283526916853382465994944857819998417511635899932061826555529812735008810371109803887273098506802667131356775437304162963507734018342671678367454880607541476785796065099028054119102104231785244549866729446774738188413837120506720659896632911945736099160612769706924555659800240405288732225716687467103261789202385662679321118922632540242835323182937686510914589801724157984093918746313098798453370345345449192223814835774867641539799891105721580448315770904968238317183057675311402332508409606391479783762696767703580765272938130923595561507213423912250682873268950514126989983485536177979964049485448255958034118311343343393578072580863505031824075798387954508103793681139665606496693835540480873545057146386206460545995873895331832343626534479465116194146032564329104284549796896958924255170617081563329397588550659653332347987568064278595497157369294056252614246862165682378695133660961627939187634328327194212523793183725945519310636903530017097509759967636248559042033350572392838752980754252725468423764083322778167551536408233060678189510909309098881712873004208667236854081397700881098855245043462556983051098737535880101503451841653652466280099530810098428954801189271835316621183001851662946041997853324842889137215114124390573961046893278211895808092686013504603337373966600521815672739348999208696175390792608143065272598561152343088540058689511430074441415587770519404905371979733017883887836076731774054044873245648538376923601268217106331984344993828870951821383892436772384166394548558828357677053111905062992771705028253792951982769036538917817541929546544858775917291350617327049806480147296438069766691070453770497600014643499879254401088763162462659231730919951442450296309459291176486806060876006942488585670738269146611939978462568865019120991298074075828837958893106948126335367024337797281133749830170093385968761695613564988603766548727586780333081039292523982927692799037629925209723362076930218298071302721675811692236014112720220295312690897117154730907612929079981350691613280179452917415956340337310550018470316922337189591592850407123489548494683471654599327182724650805785567505630603109696430875947885354289537004023949084722309871565790057739922312819896852834384826743132817206216959812731317387057403527168559513013855722461486648104581033755815133781553567102189123783374861912246477723998450312462193371446135253738514094025429568684886841952377386168797484106418454395289978800349823116088209894384524759866910252666184705702313043970868492376235139526226031923744159962026832226711063395886407323220842430334014568874126431118664878520463243058473469345268459391978313135992788115876578523056074836497784286982087515402836623756467908448440034509741536708334587032145122838593856114392387960068669601600303066857420052473691770008341097705181899859349437586186711943674213093454768617968129380503256685978026913082435884537158993245938575858891528538754693456568248513772991191428977542119088847630528816686063567106833602186936749991235531135930996595461393675626982542435551016488997610380446817499958528222768527896467521591624494596869560558183644092973666584304112015470260781496446573163723005071268272442711373282795651427860966685943657197495400736214950442987846813807632820561328572098861144215366587532315398695047737174253581855008558903427857801203793763999102460429400499639353548620175213883296090146511963141729475575474656036271482889605122922053553898688757368857778611517186632154222670548630722531245832032523972529917476313566690200545665607903876136644403262033423337348491381635281998319328551019362329095206218843072844390908347604165630825659792496825190174632178246115420643321043013419363784711158898345818169582406824514058061771207452525812327440270267473887504054770877986589585386957453338290618407570565296662818950195880010792936007612103329628134591571720471772861799962815510213292551548200627496519959477409037887780313453336133815336868218698768944504992847930147204608155909259876634664152145697118789039107690383850680870207639750539607929856275664908429232464922988639989926960981403196746223406494292367168076355446113898307240113145191707581932320973130340152179494768843852328896994890431437060052438183014748912991883251282280029067009368331983695520593472298432874505761521727795647207091092038959467380532065961921899257186660989636199155876064524599469193788391795399494405340000211913760695246751867320421736839616958054236862697130928840632233218926558998330708401929160882865531990419844863674994638402999332638864258571267421943841183824893807041912643140551969933378920557179458639452217427320823663407626611059349455739028390585157554083293889699169657720273692833661737339519425592991164537403271099671589044184353837862696646005131221739433763615523625557293986411138019654028990184190583276109531839461888748428816724482310463083315617843956110610837909497521074661733717108037460960433779994282308167971046234056603213613679861890188189893957996011494014515935495109011801168226428229075109429215437009709330957540377109184832312455991197009376815160124932384772073171167572538738283310055199517141305836970201036526555937736302451035069057445372413495217445025500037381858563427151010934376982100009472320048243590748999304753956275890036311438540315514396680163835952257963245068030252357849077522329410213570128816539309322831706550124633610466505609609166269372567202521150772924795757456735218795872567050987892419560728715693433506180457869268954394056668791698212205844008978662515260678975723540332568353701418018295033650863478039097398028908050972803686242854505820379866338729659729461786763136999394941485009981239973060724464735422719615055237772982931883707054204958267262676878278090646507828606622447417573150030182247114460125389836172064630070932823247001585803524967556400599591013372996528418635331377130537498718605939433522305738907645425015193834967958371445473225915724178413311425866678767296455130756544443741421760681482149608582723193397023673407420664223462577443557191113384929010136960111815951057623555943070793531566004154838884300829262782131432747328582539308212112263838005593260527798224982935644323565343795094928404711546278370633213229700199260410609972424920253625259417996829612068613290736821032670734460189317607657923973921667352803469090493803951501989522679040624003522013799905532859304458298678363051997947926782222516791397263681947292783203518551481260685846692034986753793760853080447057201473563524199741124129260548015207635022621764287679545649391117622035204540533186564234329644817220740879021923880265597841747359344897397197091966768217364690445542710591937040907929200602037393644886827579742376547412944398475397092784445867363842176376320785160360041426616333465086239176605067476120983469919172234022256585129002191661523910499889049215522799397001364422185506789051481423551541009247353775389566091259060057709479806683097036809297500615589123556722437733534024955782858321116129565951838485583827932733766524234374271306338517267451182798439125533337605455729622239530853603473140197669958729553667234403839728212745378894563787245351581992854660956713070395271844256473038705901628492547542051621176043798274583549852240586530519956748317950402846041301028192072301038959790901716883783845870480881773532280494388893672121125849318377128922845702562874811540896425993523761570549582553715783567231142064353241824033334040645220557223550667147108069627914420646121645461423827728238215180351492305745519438926257207997102994160152240872705672286378288304469121891681146978359548414300069230949190815403131658090468203557188165764805649566498809405092645839379090651674499826395876593453235072364814722904651226065118962997177281445315029584309528292158642924405292900890715912375408063831795369633062879256899585318039317399198666094154775790142852270454343521238800315766009187082976882060181785046620634369987145869750088045487306674428703319162700483389882431219014341552890715557189761793979465732242290885880550647533011764140083232073131376374164202298212338943131703443862132411272141422390039378445156072011272289043732211870541481987854982961337857304852901309687457088545193810561272930056856594643638089290988332540369616574637982383626625059065631871013468573394869528759620645273191101388364868499765504221966182687245483612286807317789503454601347172272308941516932416568991482538754398232011440446802627120413133932882167221301223132015740599764719486502080811819521627827067556997011039923486924389474663289944655215009572469839380427368786287119987193753427070269975865555987973352518824152687536100429208204261558670459795293748941466175899458532365504956418631294912952993063242732867811335935923445288150146717439107597921675018380168546382252709890282151045638702192223313624647876026772460047536882654117571289765637398567794337478554215275365299119429673302108327201781011522985695839334132381383027946030531870021667198101360826527115391162583798201829016945806606779059396522875738799331302163268481708710719847241625061841441719140699187798297638346762175920514850215737426769342083043283558687305150092522174359578078418098988993303173807530015809972591150918696685774359628114656711854398357013449478047481962064054978010809263132527331585421851789731353794996685505251901420692580182196237558690200207726342718957839046946432348993739275068540155189859236627979917183898368425859206924630955961606805993711102398231144832597697471650299286610633623184050079434098162165655744372691446243741194631982490942185794654481028215120961956333450851261742871204522847364071843137733777261642578980591687680778305416010070034594144169275124767508677140367194740355174374530759071201240713982497670043664059859024618145781458379821323317846688415965716371677231709418783314665815384803094432202709516086046475495461088702032492344275220874906388662672197056314987623123209703428296313056048085493639136023960214997988541306085959016313323371290434042736629737902585087333092968493175955557813989288970026603348939216468705851500761354220007525412742863963288404869205872004744612108357465065939935174373957030596719837358811559741273278824612147462269699446916728700480607580805726384838575846272320827346058087818477044283572551315816021014273063790358317317277491957104802310053359656042295108313828225584925350887237652848655998054749015845205488856925527822439531446896722077707225938866385917717151644698204988684917840869837837391702118858815731107113831829567982083316809555678350059768452584956741117734879655736360716240166076919017125302654340470660049990967378757333021898511374198762296931845097600347289075350139830708075869010105585512619639088350215592644919318390773727618778494833348059343144569877732934173790453962135235020194552432432615619817984060755696294574471868571808554602249593996987746978481424197524510564212937548386956045220114243758883954801036778216678292921215200216619150265105910931257227718077828693532436008510551594311049726418849032118928405300845619334363705556618036592161877487176338050037662399999390360998270313600006501035148400345791630503058769628673066920433338560953237055460160369016799511705466843334584846355822375381959119252320910149863482733419479665511055525144866478192101365914868684942090882015910241457038622617680931215848260338244964596867547598780628730314521744339431346820509741375471141164886997782496423668529442771214913394301351212959333036803583668313302267446129387524838156306395788211144659939149083469361734087395585318520139202842739881267178391162654709593202311721970865153508933882438226222439331930644364408083854911087345149992713521201568942342787224972291150047050429793264493074082352755978847700114533249010156384901742768027469738497390452522369513663431473831994986446794721670023180080260150396341405744828295672090969821491457924113427317237755895384681693381041442575276118120428058828042439122040837334668877140188245860308600027825532923470925566948997957522409445463954926793883687571267275412397818990140675486153709074209922297981042408236348356548857942696788475616425879659390105328826457335331724299063761856378669948685132830099282666792101467821176491480861161621113483098887748431545258150050376267054691197649082229565340447448608371777171273754147835243560861209172597519594856355076114604883295788000348810674031626238553019457472515647931148716561351958018537465302043755437795390042646734984815661488999641127479974637475756793578549703815072881388830262636520788907705147869860463880546003983368244567905477467072758563939454364148848686919590114115411130030829698775448592656265002146369435540958203725437088115681420474971210431357294779497969391828329549854595143524756383121663449853691272000738515822137085549299379194590605460297353681028381481397308693688844490806261842940389812873819473423904325244890094946171195147912061059945368312770190834218230090364613371288299914089281580147734038509601602199928724667194667090725273090000671767536357130119801881856303888419384655960817541909735796665194262823893765445567699237811380291173768387807309053266731253028932562579189340156154075874369674612516653166243049483714909748436186637309212759074062748624470769724212175522292819815584887280990621035744248232687944987743422677490670209845916438848835652410597168628199903460858581743132713432594174050215439096994042127838398592801371808557574305448639775737412313802462596888767074766989082776002058208995986260033259359722890130042244380069149228995000167705193338703765425622557532219972473105031596869878136229231349166763643465348878491086184021436765275313168889506992408430488678788806388384523429466058352748200329443317585128329385893084111966596509982051953363802506919952924788451749321686546675528621797005914994520156741487449941773281920499933836788609208508470760776906487617619162363901354930263996705604314665079100661953588173751640243642914330291989805570026302022353942421818702490440099743742702077017311806761953476229837111317622748384270646850293436365870851720835025476148441195716763086149246401789794654108666358102362034854269541775157318526574407148914032631682455811082362624981929260721100282014673870274207902022093666393456726003688831035553769870120980847576925604362813370706917706856933002010138429444385902778199347858048232479810860738825101050603405894840759335237071543990582179455195554981729648019337862910403915381119328980149162084035429328266592344064898402613042746272620743159948607118751193071965277182348130078758171657658304102011749031582153004616225203258467970162095820353636719338301252673448843713028163126927657730271610475543476786833208405382867661803785093789448095607654204890077205604166107447512518365347555574677492047392584721236709691129048989318604808969966381953627675888124425023838957179229071569989721805226829814609523386163035935899320652803580758678317907225622873564572032069703734113685317679359946194131552252030806693374235158523892511906929630171713809277140294204498813947459703330689913693250764431019050114370924106220835260773141759961116482224031066718004093092060779600932996137577050336631498487818120819982054711319249509974946514830919375018688738337106414172879558603618149263332712970716269351469721195613731592584114184273873875197349899130441115600783599044906844110282974022761260593872778289817258393142280135876444910114874224336506364678229210106930133317914397899682261092797850679474522344879140333744878119599516310806616425032317404597534875182118205978583537471860050100329323793389429299851508934935825965884550902903735085164972647736669564895482357173077859249039645568775235127098789448441424986257281884953119556339524907076416365367444175561178752930918416330341884740864066034582336241815462731794082604619279334102795779743267600089945272873974726929217210801686700085940633374423477050467399553871615666520713538308953673565729281643060217914720570023395017753111046578361932988929589810143707239637898804321493689822585611302797465442969189774275676315542349412140415150282568585531329333112899631740497216222021057138431754812770822613376308120611587349078114353785772287226859457659753663581509222630512768714292175968183148475099903873028397450904928329538408192933371380549782180154717986834868981341454574678721606890491096985841528207096400726208754934751970806706746659378141649321103936344553079712627343941729421729443861682171075369457908324542682201558366027422321260414425365680963541800210446970147351739254543187430276782121048730163102123535715736654906131061484522898308837747029451785190558574218977078382938288410971229846395627555265397751715209807492695744731588832792455214384324100674521191961909465645899544548795607616885995022879059333977317335779073767395791459180953689601627578639979625695238512545160756681026632827452476451345835327964155169735876985529982789918508333470176406991041329577116671450551472831674441897109944808975324203010206234616255920815258666623305481184403836181788247105760414000682979087382778781596646697532277642494671692287775338364789687796333944779371559333837627294028225903349948813775819414134455671973990275520132217587926825119255405230407476365533909052105297713571632055390536012901788397833156715782561590686474274360015970821589526584739730894117297752296420072460929275895930302400554857501469465177400723417705111909549734957768852603195362675020541118354189057589281589616783977940225643050801153777358355882701097045773924343595822180856408606602435815096908976830896841105786466981916661867316422577481737401472800890844872889757754397367335140547682318251571123349843355196265663698215540164912867738269886700560936390327252427415054335225782075749702937310856609554849357468313254692950126205586514274684158172507902627527250878297434229948738520963255031700756331153191864020145801078514517194928988997236730594407322115660618765197353171997968038974946934019506950819023118729187308081315062679998783137679573444811775063975430316620904245281807705809853751502874903486999585782736280789709054262527362120935024412231121185600902905595088658615094312390021487045446850138074444085190632480180714726211179644459672652535481700324999246166122658868678091974483483437906399945722365980504246999196577420016281136190725899370064557474256368094794294239411209443916254545028231769623109379421763037288977578414245008854294223355524284413974447781421226670784974518179036236020525880116975170802302970035807619638894548439988573625269781612226005723071572943390079486292630959567192749666546005240834457052965185255070183504659630223733971157032733162931128390936080523079982970397958148518971994521990635145880456294683351667765813834495210970492944674175110627948240735034340887794966667221809800362840422494433013025102656745675684317834896975300510722492592756017881869333269126245126441884602435225309744158453508374149366536012631146340346170640656720854094726139783915949914359972241824900119601228789201331041733032501501920929239098829925355024474862122004775474068711768747414206237261981402044531399775689260490335165913505273046034286222282532471010040923956905206520713064109135452347050686444560967793504670632505112383713972018134316345800303467858384179838936161888897258823674329735900932384305524607816419139220337249780507648836761316003360994516070822396789804496678766861479343176514694099594345485890192630254415423537784232369360378458629425216868155726698770026225128967586774016484538533261850302455490842959856880078658136333799776960185299519056240446220753118435917713772799326279463502794682698721320284965404696987407887567162834676211443880597016011586918938921671460547219373957670588160394861087420634482926542336712425304518505749230203270754009535062995115423687623790374602922422575888547671348026767510231375653644958045543615221833566902296201819492127596392827590046345555975419157922126431113005030580641298999062006351210458307238143108065877618776922188635741815879591480942909266585862035775756072737168870626573479622147860064893000933396951946108786112803783433916226733207217523265249909658023739795327754521933642741244989016460371307577046796738204962025196980855700194877200657410552348797129072955233206465481336534576550169676623141646763970884092484585850764187412578799571294349200482983472380828100893570924327242636236162508765910401142810086528719857141287951041639529785608413469452880547510616586414720714875959268386562021076911594441438423864291103804301231146232834145576268506139650097985180693270144307305229134624921904924035728865305039578593626129173814696725877819033176826273096670477606080726239692626713179430570120583595106213125716329237368999818075491144511209349052050982203979444277935561546175115738048787370490260625995082822252150166604341612094803448549603023358352453793819067624188951783103169074915973720208570362063849013528502765157911278105781715964162245238439915340791346142321129119305460172141534197955739676896360700190276697395504009640072857851532819454476713879345659479298858632661527348400111856193150326031353293337793639677489880708649621246833162558057567340774355561490964124099340759079565003424058178883256389709896471374835239260265589576401089529015729185821112462237250197667229123244758953535764200592409977955048682580164277167345292380531026696448438785519732024188751479692220588784691057900419291163997681607073333376983017779779369778410327641772703149151890726102603088392472529338305305551243624853342851454567246264960041787979363328897378574824574207396908262436623163686316783218881496169540083146243813264004472289327881594739651565505897568477854527757714112892889133916663956595948085741056705495950315105925743973957604784565964080073895234145838246281651769520078803288574357482393833265436818219042117144992430165765462689241891149452349143059329886042548954405569952123775546392205387520494379784544857492035594689866228599358793846602912991320705855913028641228888366288765141426502898309038937505303160543105047879593871813875632036915090499974094372604794422076932783159466603790973494897405775683118220181260865095304706806034505670868209055849773944777642753082559143174250180244671880305483252341392062078165981456418118284727854200450682524343097005527106733203728669544657459090595100364478811644464561788586944039067895265437522320322952490719555000395608352185627748962581049914234996823764834558512464053377230746192480331401881961043516863015954138582575987793637271531351756960029364179741543502168306483929280520732864789878020924855303272719006983629573415662730090134874249925716955416397908638710710052876550017510145727085209017965949093577859118685195953415708545999506673617709514032551988269569853996531262504989518692112735030034515246003836151718058106892269949928886785092844617112256653432356146361409840487893889482902627772944811656497197305471358243093482700956151701541303272682157425734760254560665771349608624225460163877219079508315856889698495783122577281521819699947383058929836158881923408427272854672568927898096341764586596129373884533672428773191392930016511868574749145939685778781292880605014502856264089218943017275299064973603656128013361669664916662490795632856910427395618803837830335488714057579292730788459452176200734742470060882156477175102337714286164871396400159163715312710178258429188467303065988654039131709734367345434832355552366270280998448144115355441829877077720093039560341760129594689134835990523692521700356360267118331168630502384842480758319846771159459496525866673602969779743512625484506484647750762863092867954421758805750543871316404083290693584032329467429417675916132810903761765527599764828462030843342412177745400025970744036742804788018706975311346479226405317934983157809518707031690441315466736844970175588222628572133643323690683351247811968845641423694232188524965009446882779387980763403701971290806514420518614110651570010265257087812242599909679194047174798809344500609428194530606372469546029654846977958967584480305893008934303153741727522448440861859026692600541739092842447528618796323151350417796479340145121446874653907531116775687627816276348648985094340643098268940990991458830279355431259219255817685098113629792504447481647458521260627242173758937200656747701055230970172996164808646562356857550480463112324135574190013547495777442423161189900084703626392257365913702820739983205202743034819672151315282540245026987800652761275237906015622042091134454713085602290852813347458470359564670593691916488701913815350820939361286439538027574993876077709429499241633135168001863796121125307285950042123591321257197179990027691396196380518917559484070789604410070571749117935320589471719358300871723014122600311936931208832001832031340194880276366677448447063841317481206798720274142819753050081554346710613815024926344868669306034651854594155556001751747368215339228773262111496790822016718076717352430319377478073339917228940685948966966305614729111842120018659199655205512476809754151448548415391935918310999739837385805239310272322224168615031582107485552184369756378349624693330274546490960972533662254173391397469993549264964429046050301695641502078560663004567939994609392785700782673029168728312447829349875978004306933586894623805813884555770073824475102218676457456123023817849141943315149414989925136254328105018052122111940706940851206177326079221041649584495888554589286127748521042617614338326916524383484000027611144637073097798496065473796366350296143454482579041746183866257424806199325661185108147915781361395387882621572870997246563364233856340126759393393073544392427867125032272381308874175621016960121997085817855110466352900642492205048511778532962039080335695145834913402829208541365025979516948886614207031511379969306339322129650412089590022034154590252296944327295441332580071951353901051980598707968690610417689949923879481164686752676361763517954105430239984925056482303490428720882101098537729791418762775901937220161688497779578123157634838946873235381062554826869924177578621276853858455429830641938470287634569249111021539348360481421993100905743122656380403492088482303862655135025615496260177060420045481201663483991798761402434900263737828378251552120016257443325347451324586576386201887766230923874482944010152540144346646021036092848916159654263630500619118590308871616196739330162872423398403803699066371436214820715758839970418720194125763536663313582864777420267992240524955562845055504170361266774522761901496436264126295255009879294874630911212463334542073008246362164590825848774756981263734754898505735948552495626130486257274352419072534096638718328052851440103937489186419983681367867866314524510499127929101483169372788812652272989278175387987882770427177321251365612946566961265585172151257819120516230016118512853779567459197034286500116942438646702591839798427672118273541913284399661363019822969748237795486705585749749225650617127867932485179182154780239208999704232647224647074487470636377143572733255735591618895595337174176771792615664672228202845199998606195460507039628025323709799548662400334758466599616021166464272537702977569198860594775751860457925401945018735365654813476098818286182761385900936527413429053625201536558937885894049210652809950632243624044103617178498290249845290974299362679243310434598659809181997106778506595702102783298311158626892389921237379007039171889316558465316393476659769707688750654949017148203286560262571112394905611262540556561046098276391736361778071631973014194008869834231711206851073751343687340425788464213096601822290667348968951873443743211531001340587110506473014938063450460468917586030605144988775578961882364422511980702458719708797562082414255351749117910238790975483688013450900159287858571826844458363324049931293717811549033715346789076249625136586474369752084206178096948991164606692940486382344944786044490890475009331313259609923560859214942114747930074402928798364964556021564143566657498624662269761768630267911071377337160800318353497830829168539901430325556098527516233236641683479585288703466151055349143495677872525110286665402526625371481529637384901136760132161886804156364535760084392166501359467900871306813791973466161445728697899361494217642295254060012114438819654418411119506712314911023293400478628259680260150689606380899828158082797094246263907696156355799094225700531410298069248521479862210102502050916826888817339104299053701398149380822022442610014260164205080332365139381399474797786707136895365507999147978432406176404386612344148968150222568244022756400892349157452604270702291286980718548742006617695628976086419831551791278052412487821606531417952983178463843748897002963142057763053783853120295608652988597865786075559464630725380698533852712089491979991348008305433544983266387787455907517147546280538836027855769180880988875429062132824345141818691033169904945724757780600704767429469372501780810655120220842742887459267190776808084283460151328847685569914486056109779087434648770991754514046123208365781702967483229922787248053458975709166207948163652695853051662370934764900440262128556583278301069664919919158363176216398773423940120757080177395555463132651047895594902321821386115235693791879904559837873940108979879280049335649028037503778513286114354568726951694831431519560473601488938956015611210737850280645311855990858490078412430808215403363866563408661417544084999339211772999874699247850330126894256725855662772780331579761764863058724731052109045093173846656238930481508279957751032126370756125496567765448691467171919694755329284368607894213646116623322228007809348803364298452451852801718479078125727546393133897224165847293830799784176420627770603622953411268757360099187919652963026968062979468187758383763254618343688478160174667995753366842007775461182942035248008269695145887574475898758986011426189302817189388982805583146407510012313147716454328201753423578660641729481895223836308320266498002258483841502918335900010019815140564771201408416719840597776932219740847545630054016844807235478140487182997134630711566845848425991448156338424721685943827652754593957650462789734543946076423511062643423371583685184439080271072617777096778042818963641009489533741737993954616230279810862200320767510342514112734517397358722614272778306856444526143109941177731043004196666081236391340105412350378963198013338796842151694672512380796800378981574455342693559441009928660616331614856723636445777531299045954587408400053236804986677817075981597616567397635771870281946959316237346786031658936675085412924608894612686210722310461516304526625382042644624224114733221412204522891567445638670266985036876647686175367951129776462873611252453160199070264568642739688246542209195030086647039443992910598158829651554529424570133791893155766283744907275554148722988917045308202124651039397357534769786157246449821498237505279078616708158242431678416094706905594331227761530474659649898474821486960563307417465644179803018427498364765603960832708030528580187309290421849701376302692309521926992035339602840179667611694921564561140388646509212384195355051432105631622356407427038700856546440675146906305435111644022501122020945502667017494056114940338731293123948193631167185665328336252532743845567191073879900572673746355655391838827659810791391168556625257218968501960635041058522322695711551139453775079457627462566109469214555466257934558377336086321895897121585248122534267850485976274834475846658093798328349065440126351812245770022013019178315484715164859229856635432645705330483703145614587569473804847067882373331497691039238695950396586548848474284391322475804571115596418773893722170729563895303044478271351839324167494614143973841442829785791808976326395787854056240009747248990059659008362402755278237296858190627058485290017034088285455684606462993936708455253191849496905510127500549885535945075891576676629850059452425011151900395373467778171837766045561061968328281153132046988503398642366087765890482192926643053437852435303541504548009693745261804058334116917226667136697193808722785556210911535832274980819575184427426159691807847709643791929270700640048995084589755122576556887560161589219525129350652182138055477571453985251847530468698391464723361706647630095269770478737257807929772381081456468798183977267500349076140860250009876358710180420758418416298150520597170728689824693800734392090071642071572797990222556309261212373270559685444423185164858583069373542193629170424915771900194603804631975924505308997001422478425035551761721774804150380164110585530801607459040526817413291720108889622198001145670092203387835665295595605102538567864927700416230390729890946718747763822232374587570332735205537161097439547525165595006620161240792240500834801441812141900597700463388888750177130848489127165627867700582784889990847081836464465217234611741389794128479202283955042127061066300641777844862985484930185416266404950548288212875411074508644027803626411605289249852096473064228387539653400566676308946703476345379521852620591575727083000848651546978228912294421317644132183852649275076973732369769391195476558802942435055356431635099435742991008329083313282293399558082904518065841553217050467932003933751918380200752196045408625626851019454774905212400314694752514569130954559030023627354053945922281944154112759425626998100273854557478506281425652686593333166998189937080198964374466938272464259272882264938585555686052458241008803801809920698309187850215951366860110358412193654130027349356183177322786447875588966855162498128412888234122875898196511572317169832612387268317978617740299381588846362703183560579831484503919984759958397635073745662778937071423047372098980700642028243819388010784047382511250420418496492120783887943150635984028325926254431592733130078416683434448857190045360063589932154750330140905342371356496596469350078720092476181004774566171470309721556168740630917193876872200385874370433342453494797932032924238758721856563903620765313972335879192789931020143676935351026953860182357779395495531565162517080372229046987255901359175704434700704512327577153864950560994352947008280112057259812523931282573657781341949887002680451335963278308227984475494521178011265414982988203307798897413230083631067182431186711921213697053264197276604456088778349780777184330739764789600918866806545814125439840524106498508279561541926821372925632718987065807556560387454033577599146920325787965972734750033070932822520341949198705255770067598056146812308108857878875722275252423911331078711805589948847330664352406072930729384596629316889170937802031965425391066412228567268268273658572142756989866252795161288971122739252072132288705480283345743647361175878784555822753793245888897760655638747026035158844393476022168155355912336739702697555511096152968424302552213829955833682379876092099775982568578729247349998290999657998022387843442555595575506475256082308387900072958594866929307525658203563204241561985643343574268533586044452770111599195617448033517466161541609155280902614127989143503658790625187148555868356517917754515805858449352813493235141614552880244277172322258422316528589390452978273757520492024974818388136174531427961284709803089565295929615545659719847408534128074198862473873440401843270743962070891050419119182002526336129971346246710761565181476033625169582009270400166399565152577235008490544924193800389095276172243322083863696044012238022046352605192071403221046452343568090227412581203705505119842113323667603344225818012066144646110186591740664370073986094424211972681949597575600212540104562305864732934311235324534964322475363661208512568322776109108237216863320343695649601426579818507860236290176600411386647124006954708937247959155637564418832398752204779153568412689150107503775605152516024903448140167085062372792679819331242082279495995698427916616632723898426401435775395489264847214411994138868977897072546211693028249559226750992525547219602816594921739733735552950827769231303795318742661327080067730805591829239231196674220466960516543946254750412189478287490674763216176339220486209178810316694809856561210340621112048638094071792465352021077487057427414338939442581110315383089542605013223320214858114375250849519532175287747968587494391736025377128354985370390316971725807876582358245368050285790479118413321811488824076340406279107789390753296743705402474801092410737461387056164897180880210846713466585372425747623273162087637621208549987331106063488610510951665567486196224532880563600385581538934315707118788739342463871830424224985474432946237867689943337880582769959595534917412464006570405650119826319581740677598599792996183017380375056979395899522235815375062194334542960009236208916778361924361899109995848462249789610945628010576850783426093188365282120151018467068168554707991087748827765306766264284233096563972530382393294991778264383332251132595331910531360730580935161415871933410171085652903572214010689706804032076330303361087354474777698262888098867199106675413647406705743884082405524360458713953483654174382537926442277636076392583389840312525721957395932383308247025932827812852337258453618320527365421916697203841934462429701909882127771899323958763769028883961408447689864454509922063561861321348563864530430040979325504284428467772977028100176534784406302398456211998965271374456811142514171094099724991290326678375198518505070560021636009123213085665953971698534732140368658803347862347566874816284969294542904527688834814617253181346812571143900462024548408619125041145243360596981884165924613496670925427816657059304829155953178830090217749227182562953652456953338105133333986207417623545394594388877976925042481537647649905016433537179984308786986437732057555112427019434801727171281570583684508446017283328031995346302592732054687686641027332561237717510858096622837918106125457205351692904718994036033340581340027490025706208591619302527676262227286101685265061180278350114887450238379211233479000024416944520525310896018457793793964579096965297375434717528388134766015275561262085733205683758571427937016227669977751053465703113446531121645513561315106019044586187919574732125098721174648348519216705757691125310176358556868504421213879181091837336525773054769432300028349714104526631745026253831571025562163910041633628276331079090459565464695637040240764129168764466842924825458863849335960491643770397005982879654182923709507923206966996191912339501978989521094061344367917584618424368259283389723203034697575677547735092027562548969544737848009183624272110337492051168767300782589238654538191252972991282255167566503880638572656096455961023217707243757282068996213659142058714836727230031443464524958843731379594822600106510365098161636816413418707781948104784364896960626259584687628345133117851921540429584143315794879215077031746769054372488442327858262302724264087009999337680359059760265070548359270723567211350104880734375126388222934873122194891441282064936570764261485270685437777466107994164265796476017757855382537082222354658437736468305084237169468738208148787054063387272872244082354455693471988679748378766875819644435586012572677166262397945483604215683885021359007804672578460400559650771583607555958701201845526774111926089750434198994615208636513191356299568163996832581633267153605625599039249126343783762664635623055932750527776235064809906527013931647752239029488564992034934456341747607050242016700193162310271163408644992185665084838616141449716296202866358596873810735097862257794095328336798946016529001552211394046671974500936523755802239415690269636779383906540127208611974637898852164353254132605229536157363265681522401676463321264462485499932661510406608946339974465998195009843413205538910493163597055164281109714691431247949592072419361859966173063573863060398495731859909660707624248013329436324858644888764819380902327895828695636018275217870522229614811335955577781677244397783852779791077492071687555361556804807721380645521640509913280530718938784008973995704855781507686956612313823635675054176675442874648635588387149961330322583768660147630447920034327013411737652277338403401660529623179122790321104035546908675346932891924234945423286199099794714217568256992525342763735777505535727688549598108804644083005933053188115801826754366515394037026179404382472974748785514578483011671044381952760638232320793783308367804043234582992408125548100727216036773506174357068794655108382522795360131790642449673507125678096539184407776048661533530266133122503960254415354835629604895984823220120996701472631563411181537956845092431842701102745476588788715901765096662165234396854946663729004941023409793405580052839871613106981096435518078358164125228503206183640803606690577836034849585210717861943406434731951347606785669937782608145300003892283522754596585246033145806805233602428276145963316152779482963392258355282107009682949247492696898275250713390041439714882523028203026329758211898362200609723425622163848589990724234270214972648701538739525083389542225461780066626593611993074016474628807999606176804601519946093627387822335841905202451448939164269433835108139917082301483280724417480600837433941306137169618735751474399046110955643437728468155818161365695597095868142995047149265577115922294983665152896422815875885358246817470168138743609374842810366495947643898227673748298537458012996320896281932334200360431103436025500083184595935942767608435978304921588616532568565169814154502809225111491813021473738997788645686512301892837365181001275665640648398714585822211662172420336969949182725468882656028049254932760384906931067835379992004676642900631147701473554583701169798941143713062231993252825007274378838676275093542909905343681463536061270054979230532229845987665845633578802293395509952774664014171784886256904409729618771497814883295403684423487958710474152409599790891830719083729624341640289571831278574955742207622182354487817215773450034373215441034328652928492167592675225062288881619148280893641010176881277792364280526861587717542680685351074749076559415305530996262520739946055691813260187002000244462535540446299354436753901122359348859725488991431356108729053387599228241142086168233572209924919678076481496805148102015083150653881339213893089743459373040568223244730175511263703655095744385087143982421283634163950313551185534248224546268783780186868246154597632077318554341236009950929902281535092736124892813202988370837513407073971027465558116795194675490921656439106782821169088551259549102038583488696583314632422252194972250362102904821784143589615060915816431843934747884100244957497625677467352792388827316597032275743396076740182732907689982115843556500537651800528593770573366114924415505413573150477512599637871187645342874839377326197081495207342187149067553216108318022771753893039176355724916729884491106260630858018137550067182750318094605018702775289984392864122205754956460806665547179332146234941664652667733770566245553907538338190540665767320651430688615324182548759963119908120815941612481225677159117803986000244976987159210466361116332384017843105653052676024856424574661655126879492465349076604672623652270366925705693404923777255932442166805306271012946997308475357641998616617761825413490466520372144381443196435402882217691950238761873358432814243185058966324124644279654164821565714531715694090514227716256267549258113966753149937339837800430384630274846242938315152027587357199944509769230903394970601159869419715158991841892577877120363893938945974838905515680930599380043554171183163717039718915031146393156528462394534482510199973727748914295556658861245360064156424397939291686197989832542590360941009660011498716843281664091442623731494634281963675781564212043264659859355767936030424887628453856741932107766327334685017690377201404129877621347443925742931087021452981576470389301879686627466504334065630395359222105837597360174912029286728167792145346415067483027592664880139289615248860399494153450854543682920265215986140662978420694637145904858816128362747032704529889591859842701006405625522769759365238975128287697409898385526180657444327347485469284049588244500123066020619011404687436905060026530009587527973967289968047728008796379114833267773307026961000897834025889202001316397218650102922258884295820710678597509435909062012706040702068193533980414372820967093706978882617766091455574002541039183527907798657588469447397062693656318009773200233552369136090964943862969134275340854925696637270252368784702339910379078405633336785037829450044269164222852138943745427493090867030516913374251198780856598185104939307715580303517907721092184735177924215211047828481395452794050966191767517963077022039480246607463299920585733666761884277451398844103917505534109337689467310265429272506573666067822273394630185693328106831467315293904230530850880664777063227581580568302555155758842993705899028423556680339430344671109058020527219927249196157162448886179302113947858000907583476107034134587668960577065439328723473278892662392853774691042231591553197164999671501511313840979115745093219170574021842551902558184674001356916953641701103244682344843744847626831133677404879713393128964667017733503265144814675634040365607268036611145192593818122976230659102125524015201032360449063133856320266927401760278915366662635714966687363843722059703523428613709874736248606029041381155390442146800463206788364327147822570984872344727044112471874156528008470839195449354460578084731402337641001141663352699320395154131435260366430582580619838935246966424615045811662017435221330328024322759583743524331291081479535177335655662488090839515086612291671738421677288026576267043320283010511234431849158066401279904124654743283338399296288928337470703372682618699193300095953136165208511888763352915141280296498166970066941099327273865561496981907033895684774712614201699544234117132087343291584675738931384412528640275253287547673119658242458123834300300285822727686455529478855554517765061722358442502655659543846155592925864521689598342927886055563980763839811542244828000189004110445421992019483686582116917477066155669845390783884877363797627956904374336151898880622006181469394519380084188308222959144224642292738793540326435028231335595966498309145295351591712670206865035257542469153199675024947376356523099608228529255559920971447755871282003145451219855553174313503216769099528326344700625370626141451032094634675618830146005759803651870594545551096645824094066672754881932455489917344758057145359763062688659705704858924284832419536806693906080145718344253983315627714106846166305169229123456279746094041239706986086230522227720579233435536522212688228509776522601141626528297975423063011917694931007827496332843542157630974802211393618813399394031959948778175763452297281128377527391058768834616022185571048332968020614648131574532339166632732838654972640581559714376870999241149438822562136411428894258119805219016020220138596023346454588013397087428147661859615583614726058850091302172386716422535929675652859903898027911850293438545134092131861961956089885177439052965876734491822785798814387248588545057756099332377051424924969114741702712539923905991335196743610683330851565415721286635026307241826746095038124941945951995474266055498448494687825620863138038216617502130928275241743281332762365533577203981909323405248008319694266459354956812561704796126599416281124487165320217276227139040137893199579828853668971646346445257889691160215039730677429742999294449690473355521215895966466250174509995220053309185557909676825602952625632043179464775642296636638318514579923500629405093129939306244045263152460283890790153582770154526169502135224291430866266669526993035222014335388540991229949633651748621920696202450991637146237056398663880185043512460735349182371186635621721290743860508785278248776439895414226411153196069309140365604868417838361754170819751283956033090517584996096828212213748206539428469482946115664543633914759014569420140521505488967937735974313615740838756464207869016833973972544877611036503261405488071663545397448735780249176316836841958728196209901164708309736959982680577329143920437834087371776886450797491613099058479249428472201376205003316332591123052229905401589773392155157659247543339134973239045749003554431376774796177377593099455357183947710595546468108401740346898122318706685857049374743996661205473781084226733688131816996866544480492627051595651383493383790942951845111958759435127542183410332488582554132676292574165468448529897695291819869679992116882795457334046263800403929765236944595542844671883656765686411151239826751896960452052301946924540512905491002805541803375702935741739096181281304135108214978932031971465139789848197665866591611002695972055032084201709759758776424637074138607260569756741651715501542332401754156471691049474152157069570671411202953350218391396236776590713494371190836637072273870404465247459946213082856660529556196004302956218532746760820160719640663065378035087955620448468895586509086686562395025204807817119014486685503189123047353463499959796755469564480991826784007882435816316919937836216400082091654168997355081019812970270496059015582761445355214031967785527669314619036445227275561163121908011972834536061217947901483207683054456245607860676417046545323377896774953298298180703429812310746830119995026029313665137199678565778203952365257436019473783943311346506731555267625047178245530816197173234817249521943068545569136778205654942759875879693796821867715640207168431975129949097147509354982416087390742365034171273492497451006602515144426659985351990528186120821361474121785098928582175899707024291380779038737007247761098350263856545128573749081564596961496226606679600619142008740167814350523319135512322116143212623489564215212528810864023869082151508733240593273985463741750239480350779679573249876432132662867448206560553448998541665485377320251998317806027138882730226825025134715635139529698523475088135071317967575729590185872491549089539895254094611168988047722452212715719953795254750180614230051915760279393728431762271086695730284842918413825659429621344726811679290381815165872696101248921476577481540010794737565121101849871602741897160973352185528505342895863186671853709981095281675521102781627947790535632511165983327014490549327240208291815139526509064040505577726223482483298672670209943979796465940798171976042928547787681924286240236460949495554433980536192484533247057349346942167620935829784962861061999851314576491359150414172060742250721393314638353574543057744499663629748923318548768002210224290445168656072311581571723990447978779880198977895400636230874430581470427283142980077769391651076147767576753793986051708411183959009085837525247844202212766839861160034862573811776754386442313901972360732736400783033345108793326030020439502911667852727349429709872640117157386724630958191001359843144730793599628950805682712672319528830024337203266332319343231833258361018432104790490142437524796021361194495468030887537319198860005393326462314418788656091228060226423021717150378282389249194354819857805368914592615549633188402203763914394963979065051383041010265853047555935148530397835458855371935144277935335874760399521867199864003107712715727953425336335911383575364550983108913569813723330783033099956800327352826937901331460832617752761985631326397919814067768370294090800709113467181885247991526088156873070135366821588626830581385026059239406184929927840664087765543288121265853256518389420395207434690728063098286648377181510100204493988014408192361994393970362741175997466109903975970090638504238235170630992575615183175914135943229742038074624784856283760411325864512553665948845119374154239413073520583742831703911694370265090926032768907793432650642714544415428730309090776591432588619414322390448424238975584409471606757361913024285622076522610860721503325839324935715459964202970243097244814806940249906615790975915213483376949659587229495890291588458606384432335609454008698519818482340478932269580227667941477053454548295604685109390708725611624049722468378217880415654390561125605515019912547118904136935460097335388007780590041931710042037182077774233350993843370901537742299017414919730048336525717933163262901451574206308222828483772649751991390059808770489496879017725343842602706906021255503831982649270796677415390935596602389177514744896168547663985390018468501855621907890753977119075131600374857424423129901790832718065140682697352526319435282675563450908783854759192810524719727790167846848864335328759080498029642391134660134926848439507011693749259352304155132715907066488622118004864956048203826024717190892260164265148769766775974676622169165826588464771580611332051091260524909151610621504638934604220859911186140444404820431272948446661698135817524400615243388280402026292813818404500966691277190855822618503524024965119976218891519166488280473405017039677086858010940767335934952454880760477161467135516437652091607130466016284697975476309712695939718708547887956502862906291068252608544604447064244491972858667324813151522452338142131755386706183500501542422514749507615496105426717888353155100391105060149699466030071579917679018410404630206903361673493357064992923973022052153670050431985065784837172964721897481960112811194738263648578011469738185556708637819865686483501050600022270483375870006273795079560454539178870569479784267055286286811909501860617323895605135156121587093153949563354682168349245848772113120022785012392667225871481640105864333740775831831281943736048996303418227931743281195966992365191760413785852856048739309905832313068044714888414765462497950687571813340103176968666358052369416478345673853003024450174227383155806314364210579613589284520080434876844350096441530192134234305539331357331904270810579273804617476302322948703657194116947405132071364086615618191318130397795056798596017902314039137529346994735811128682542808708734135155065578620907875707061209189169313271498364605665946652570679691287872410222361518956846622263646635209248096532824479881300389601871288460213127009557059628439409778881392643113056761626191404040427922452369908161033573348503755734055250255822821396958011542876449066103102054336850316776818834246228671293800814204113412643394485261280899112527157439208087025084609837408020440015106280678684553759472137144955368512010910760940519881991659106813368536848890928039072709673186631296481319712230233434699566903641188603968394317589293467728713578830647913853287548569377266382806362335300288776928708528130038210203291898043859461085680332969361924370602568167940958591386456457193315185916379305777584184991376092900678551652508177803077669337159489879154970176548522257214559811549668805321760456976439845263407253994397359806306692219468023188485965457147301148011938911259520286172554273636307491014460247241714549241194843513595443732158314525199924089946302818552077323456912647083142971875636635461156098213241766322453481996370156289068349382783417630131207059061633204650052668033823696792353765746479508373601912533341574140688759477896570630431714759774768174538534371553531201473494831980066044310936485808626780694123493222573567273459572894165342856092746869211398346631485666918109212573841482375280659639684475290916475155846007165242538752203479821714610743947655118192306029145768049398066786501263397212590867221264359969339113100680256759290141084334294957612821286871024365360990605451665148463084373493737588879489166899728492812561751812278945062341647476454916774334501267693762561707161089248139011181277887321741045330217192815245571453963629798432448026644109172927074192394953728767884673531553298232457239417813366843250173475210744948665907651493603066933971996961059887873699297942980960544181668538513124826006333219076375381652039628091826658179837443315526726675540373527593477136013203098610293420898690551328226706581327685681045609647804017233508499059249050799696550517813958813305031855297809383778530569824672848854330870079897219281788725629517978308438098229613962038096857227719940788480907468277441313740740446113823654278991449984079056561493558812389812794771926060353117119491569548252342618102951086364521005834919984199688120124106561987323154125045287714082784761203579010651638621165357771770139449834034672134622997860569352897935688438842131812732453974027690169338899189097755853359398161482940634714955172612923146658150871009198735320154162362901166960958406105874344988019508515633855978614698417645938341309957436451613784609728156270304915130547736796391893304126829206509757721499795618212290799004198228729891698610131412013407791317937508336501436123469321178548614034090123768910144499762836379023026981372242787093531532461251883723476963083488474576813427010804613747252732311867463484094915144458783438204727820549655905662354865688773066911679012492397076137437913283882400320560644350373504732863348104414542476240990204299647228642544666814492096176322373096975503756685887079194311532981750056105653920543242025881549279986804842438865264197990379399775468676839350315858247734500683647835866841130504487829020526584769985975683441055879219086741217870345979538853270381224997242816839931880962732733261756734486144242361976741907542501513053458830662439330611253598442605925602168782622688863117331759018749195512230520693610226232844870124913470365780984362625265513986800483321947315788110235043739019120082828433347469386636538290194904109449064240288239741393636094865798908082187751269025948361642801134267011060465129570250662493453998824867807309842223134794599118225704172213893714581437711450696146156217321564299327936179676068336048326003844348927811732968703494954261198922446612088151987277094010827411879178509120787889458632608966710113574221301542334397135974177450038094830225650355007864528254533272594899847659543298259175645115207270794641413901966715613020590328042890320440129704759871892245130245962563176304708973486873232772910833622123231998561247204046431078313315527563994278623352719447794592757276446696920389478600732747719029605753597080719254357562807202866722934751031458544394368219305246439432712217067903493167900317057810629021586145963138125712980606995146707418105800497421496222724353503568197212585644052752789318511110573714586239492301766021070783463728270209713311736564098739729140713965299607302677342471568678349650391348438497872307501126247514049533396984874820527464437621845908534347804222087961349820131871849819106063914880665799055631061975504396414393065376817398739473847351922513406881897731256143400101365117163556655968301280968525410598773103185886027071302745550966048715791368461963497765963868913561300433593284013013085026977866000981707440006063763480129938098140424922267808982750468640193047549522469908063658430915291533836057785030498159933134772397671011188628978265822158682092030840921119238293883587640990577476847151973153383914131121598975147705421900042601638530171683161588776059820355086337728004422277040918661542138579374245884957615015772023021709221532593454269160436842576332162596777920431679176028210099835286523546762171741688890524299393454135013188601366883686179671439278632715597491679388406840511114261215743708123373730337752239205645186409957697891457001532491827528860668456144883552031557856078033785035806745642647966051107008025929989601482569561052404674126169482987622427760285844779733374567318337436987521786452751346460448988684348351190179027919743476165815581423331349695426608401603753986520923223401012972602181423293933471625214750292382395591339381296971945023765725860949686457209103055970744001012282828482125824051369718709034804181388840746395873782458841056517199837004966411296912014669198800307363104881160982588287500462870478155062891830543407913687669994856672886605361190276388854709483342041539733666745772888723193274426216890563237996284620028018330617941999158518090362916152111984512731808461256858670714820165424640093243641426392754397247109887610486103371037624826335551613264575875749445365646009110916517248398845997557729444435457887173503848257226340349022122575474115597041246021151060204400342552370280960006720794010041998586106079010661225042589377680150072786332345890819794746800744834729512463120971470525179117970691868396887320843922926300127379408890341464580567528542884074143227810010149028311652622051056737273259611458920744324614518397532331371938992797864803616480411050339125511867907254368190512361061027492292508012339384302493312910709152519594603144699988132038956576970928770049724243914783159777712488004706469991454044633684597360924773695278772099231983607211369327040755724171708230962048887423475525724483759979213324059560276667453515543685661443423269463312359503992468926867468698101883499127134175404855911501181830472428156678568829990779093389550680263211752794422585635304699464073922237324380958474355598836990735988275727552399265957396550683958581500527926532956567933409776195051078865024986621654190638295013060329506817429730183053106095944849058893381224095088146121081011099154482856788496318105016714120000271952855244569170669819950301206698426567377697272921381423520819155078067780818438373798251015605780768480522026303682051337931624858392122091587823736410519357289464678108340884430261765587032249829083357091615524817457370676677652716973943093784752196400442007811626964912574274003055040889343818126548077750657613565998509435380348293782445588188044816218792059424279269388013618319989939257485176748155474658430159197459384747473542279829089182673086486080209747538476354007920292398210667754860280547437225937522009117158788146649741725314839030356910348541382530087958018055142521954701566284877403697814231232194291900668803215873240558967713694607314679539151195410484010545604171835356933225969429747110928128228371920063551384220717537338441680846305565451511883084427985665461363401793132690587548885810430482584906961364864416550574146072054388049660976685298275548942088876621414833031559002131569520413716789683427421667907857588165364248188190790538577890415161309897514521758628020310348205857211098534843313890310499089530547024577664108052055408397063657020009435433934365427039430957696200728127952650926678807667842958598460327055462085660584097938137526487753526554963693664361896907636113759093565458858712897975796200210925595645554561069458886477296616287030458883720669771214171598452760369696427821090328646536479261742926847340271216703024261941926799994844151346089102669720144718404596964893759963958436933450137304836232090085196942023018726725513345428846535338990974919283855410178153837849377497169470049497477853598789795785439109071394905474873927092735633062378410351083582745975819930993567635227311423235591163897675145676562203174495108290166698485151467892775848510036066230098361391571968905409343229563002511737456947103999891470803136204526463183565240436372171250286942025703947525235662748111858826545120352109477318662935560088342244072880322753387340699857164233969346946863854561813721868665207087822053463888734442824518489985965552064024033115010149067884510489223733784328181520584558188312458340386293831276630817603160870487653132488219575379955440123322742199663653750115515468534401111003061496282287177922179820281519311628786935438021854446220034334807291754179359370434895729819057250612395932135087373974501440847002274830608789506038716430448783680223269521503784390084847971951129557961298920999670968278302141502779739407462167181119992824590660431591012446777725918976336488621614879511089125340971403831996851566177235048108746232810399122260032408716775189233318413516323200087485508560422062712584386077105078363850219717138457752565903347405613131313427707622123626639295060613624077890216123223312176896694627663254686744216092698491830996388281786871865695102323198068254282261410747202333784752573257903605446419424618890812621969404332907889345511595462718188387172283252538891531774181232815980983481514381610368736662610920137172604103057714549045757668549859418993376019563512678545430712627726312008662414722232476387943426589798627841757738680283950672156418850512206773457920430121846325249634275229943984244508367079493656602301559280265339311305400026527433310141651842350045004958347028991272917960086702745968735665096797010811588351655523988857969937109416549966039947053984479003928246902083963670142728789908720740853854004276805179560514990908793329151946583563498372866125166481959180460660481525161829643069252529990655645958692951353980089011727868853306414610540572773178436475531538978406680720506016111849834210230606810157094107849848092470471126878572396419659205812308779491384820340902864895558467204725913646818229905738540347988035791849149799055253222737621488072625089699207487400052764651885896223775526362763832636935691067696920814858091478508576829984043458474322562670683958678217652992085348410381105430987622335006907449185797089105495546883511975732808544498186151478210119972899388827094906231153144341822289956891427048515110835130132534339594932143749654173667390620389772343659553412003447676764138260185346894815604604924219929886628034036456608839516254341064079390584051921752980466520358309571786147271234471744690523329044657311536898550012569625281335783561550014323407697042356309958463798466866192358361116378622752695699194256210074821606547699190997870320321333555786789765862699159934073959215611730894597683455516101832521443714768083251657582485774810549293998036238405528050597194201619697704581453885561889066709810182446182338729286855230210324041762468695072196974410304997097069519863216250779097531774517534460029254027243825043745310151328419507689465931615066812385441589975141943401238909720852123904247991707753840014444993160697957533425357641814488225666608277757848870985887608995480542774639210084566426543574390139267276434647433145394209972495340564600241806942651977435139061672548524698838082456805336489361886389156848821417933917607985794681153344975459280889205122843453968021985947417954819572627190570902859551929815726022073620954440797775694903220759890197798389090300796138644429110237618819223818112991787688286073468826932913754484263657777714697607234969765756082320554253769401828978641358539095987627218600348098792213441567351630740121888742597509196698865255665110239764413830761046276281452156402169102062902342018318712811926837198845136710433450010116919135508365425267588084606435515614208294336221374257455339433912374702970877570160762567455273728299575058282868993836365031826462360531681406623550983860145308643770002465240773072252335746901712206658228542376514908829259156475172477063440113336174565385510051113576183529347029700081207153243937028735733664605992770475192717439223547848200443696686853156653177419435591992877111015476461679652333769742026216575177085503448837352397234676959328773351357969375053088573920312107988897675080013139078177345949012789291258346236438435689020993706058894183794451245625424304063831963141632676558449362565727411833522521936920825081531830135059012802033159238710265682327801728982823751843839406736181840077223438079332353463508316506450849638712090685653729087046765915052463061730571625202663345421036514496934770481532061549570072100617757768725618350518436686597892664603904888410510799617334135406005839192076899627830191032979059272371048570609899471966464147808737905706898381120040208834213650174665514376957273781136476845597099187970370671873375904862184238683618702493766619324314505264951534687451266675782025535234748031746825607818026843139555430114901822757211961048863547913933239969840630228680347901758258604417233849592396598268128806122401975236829169078088611081166425604122183402226096425806706292168984840293163798067907716000494518517044156623493132057807300389019274710018195676511602315702241566676908804561951399593330316308707188375658846301077051228676074215547352432198006204419929791347814949194846318548908673098936561759694906000771491008035973427310317704606523532601195850651471278681669158837815381539617383579782972759971687618691644005851493228595514799363010822697624570486046552575921517106325611151896430439541633001473682425660982287174865553306674760126334734456348751196211869836226042609260274758932345006095103454375436162406818694765975456847482936224197676458778455464183747316801435299017567130868791930389572287866965575218879888557040751758236617754457984316861238639846193215559717967574922039958799304474057154039345222537835131493589143688641645540008615905487270878497676486552010200384246276651410647263151283499915614222659834982814865000575846945013986912699220736035759272681571943173818599461980059760941175278013871329886010932087795266757842894162186257208902817594649639476165184559068137715386802942324154206066234664851286603479124034144531831952385882271376930567470063509295889455771822803196522705185463434539080108261974528704439155747723243230074591998604634925890873830206753570443514880379291312223901850643439414789249707837242458508945225422878769975166808934523344343136079612625249518698965143754923159572503963330096238256939444831783350446102064434185393839155576595734941542192373899062590140969241933253824545103424138981411282725159221077810628289489671262060150289485071924226503859014128192614176796035822954602736348855983859138101599104585209847506618908838477212025545439904700260046641670005637693874464783611384315915908682360146277347468743231584470893555346369299281954467001829373319821645444132735330405278397229302675827202864006687237808139037109493921701284751495919631470456558552220350001997456946671412661894623833006444699526388807077167058663021770537688643833964584509318274008850919514179457950266758474391788482449709066970062276930024634392034042980149571527624927102273679099006577776714699882598139136078475757568632144406798337792720545809974694649969121538613608699215091998626110519342877008489167850043468544394495419188951770373778137381701010858696211343920094697058166752357624457480798811908684844778952093699052780456826799707952558787937800065343336901211875886770116601548835026114883938191758883678911721547234111058032521951920377969045224375755599607403667953263150824153290761216830349769617325973234511524263141035648770465254763528249253338655662127755199448894710980375590462064580938870913161995635412206684996855041639037451250109203929943621069480354303519615975607243655126909500791610703235756636485514777405824148109223451544818488666261897994815156583642797001741160250378610856965694533358986869757290232059418014753108682571783267046200163431116636318673929616268559896374313379067956852821083219199881336795703243846692575374813738231560400107336808197632074974943817690791392610420663717770915085147264903814625341784432320435910911484725171052665996813759074649847830660585224685661201772155902296839242367593083163542623395038545071182535851234162632001634336005271664599068641180545851184035397999184020986039765644203091304818675950712229008814391799005569114253271503738282648664419266403279956612506232422463223209085366955761044604796418774844130145718048540107564640667331532875145255228836264846984102194570166432120133111363555549080053020913965511404334155558343174265614162214202260698075056616350234950871281747206897581974944681498164987838016977885603203908994947666381997779309375049506991247397761579810793579969059133066337618243154331807040285222913070038240174051581833500718655866201405955018723079187494350123002513369961128378942119045609843395287726978244201767647944867361282817790749744558834408886854207336477795306942001880598393323929733268392684264977563953381585004587935370626005883414185291722866225297466545969797426610826096193518488014023386080458595376170934888199175034245395588057595669456846072768363222375426799936074257498398701614288790143672942921493430113251148055094236335858997421846205300403416662718682324208675361116174661331651869809704465797032613765093280609735605173955957156957596770674587756446787086884737725671530190425935614704394286784829185466458408129405203444816376875350569440251788206853714501787817924043425566775672195606244514042697551499562705029252373790894309990352491789211510948814306395428274451908218676129577425427524192149139715070484633277411295545608745910368694135578794283264599998301262029257923229454752370428087957252721413811759556300632219594639427805042482316779189041735687027443194414146841525240361897394134725917901836865842655585281832112255366271771631070001450012746581675473122980154403886897681509048960266829016501741759621187357588744047609795910025551167502566406314196788701698193945790106400300810275201039063570704133964402450012267115697271067023268731504682371853124703888579343260663296673621169178949252595170108884886854745204953322213109248797893710424125667321673899230341415795672083153625911980842675585989938511942569381136505723240757139907274700322292651640532873460218182103606451829218265658673312159281631171574735718452885476534577197473014502416075064373161710668413544387965463801878882223795405470609791978095942106275438685543916463870107414152201196181257854414620382142409395427278683681522645832089711481315899006853032213882683616009837033055375959363453712215217862812088878892324979243789341904359141520570618365845660056552057454515740275627289795264096862965422502778108987664195099762695141283805783876412596993938897473591955092650555883714602181136388328576396193013856417057683364753581015923013917941068038925791363917526873551333220002794039489726678986942334651760027518396348939569971011487243868686643337727336298702977376244805353856008695028067715987086861369563217574595245064212379683878299364022477456640632763830950344806083679180440235625903763547782188379435816079748163912852770543714873527236182201048659324652186590559037079134169029697053240786356650321865925818302912846457883658172660928155601603231769615786734387438051122211455851095606638995664277489864634442079094998860929173462420524008809185454932728512510967958337441752152432813081865483653151802058939301866906354846101399508133498205059589922296224598555814038975413342709146760055427796542109011540533332268992774003910621246534512775498765429060227856972153179634216936741191496280023868698510463870195985943959337853476351299325389646352820435215515239051898286806515885060380139756940915858704008306259970961212652375521470742853017214556175632524002743339843440274247660314591136328956485000124832592139269980435979051945457550009055366935288440747942206437348320963520878358188657671328459833353325231116675568294993848846548635775826380669158958861411176017466810234950928602706039635314014191050271186432398332172255455292419933867027189711093491704846475127611088557302170436580912322127911876349815181325092323326541017846015044326423910739657885704702528652262337708277554580147892441430464161091685996508411117130945354359740105476670009814041730834016319650242874208667561947441733927625484362395156104741434320569434541221915291176866018639573358662917495505072608762497386395904175706163706495208899666709237495418584325614957515015451309064832003394853020611095575626178191814213910721136482427653131523992936206554159794250637751688898387001233234537951580720038562580735697866402683274831020024758099528732521712522800752872408180073878594348936223513763296671465810651736160292966194876639037004583164710681102126173413853241450484836800242900336940214991128881313608825369705691222730063149835075764180279609739818602527895297856637072157264370495989439316291522051717470618315541825647017876226195170380806721388750497664438873017660467418833162849798911402758975441596084391087296810199686958359624006299758898992323594828095561687644176522958441691525935124549578337356820770164944960472685098316692396014332552206649476860467334928905640444713927476251451507282454511249658498069384508322394898523699560181287609762157272369969402950556310070835945156482469147469615611490711416317445723835602226115879872034429671321453487055723918794251477513834163721637504556051243100090612733657350988359101142260989410696363812295924209684713375007672789010416075761907837927824078253465918139025012739153238766214761399001156782006258704348439799482995708560481053223614581685275793702302761114660844801814799055497624112629992389698562027062252275594865004049240401863100731240668918850797949995662560996040181967914463515544293808512995149308909232771088667509255063544142750296856486291450160189115681473352410444179438846127902173675277860117207380642771774488722342995287689773013873219944172247137499600457699587090113778045142691084847472739455969331821992748835986091974505486354286471838656992323295636540737750104115579834333522931203499429833668883250097471693920953512705417206310433836950971537560694156409764904584334185413134124501072660982545082410368403988826817782080136775910581651270193588574377929489790805723046755251971302448203941095389776419773695126091221479718977310330986966083815530813993447268556538629162015436248902487917147760537844799154780123890116901581451764363209903804517039191908702386473674191438564781899080157369032934397410041519318281774894094479859414731464379748368725114602289475196349568807274354349693443479941487864219456335672795792495823639532905549906541394320937490292446505842073611850275917674352776689445954674231637654727874140656936790475019908199801134793973776235150849176327970246623443428450100502929340863198812495855531380606909339090676618385667086308905027425778849118662279761257043248312075429891444924509714887044296809042797509038059517095236322502315537831320294550191973582195268826592699387713950110413281393809443228817598047273967237752839619332702845256412330412878072882327403843356448012234464829166029202432874115786285569545587059736618966027127005235866631857756926701934090491315558947924710811786178580975570178188200741293810680903252634083104750532033478233968774373081409701730981275474116476041291735938770256732929917920824987214375441706360848112918690432342686688293059904581103088578241100061443441992965538941696237029230867655152282830257687481808047231132028836942369436147457201715966852125249395144420758401320455411235976780823445725227289343672974930836996956951595864736937830201277003816822286739378209664344199793879709096412981952717155155693894287338649675611398467151743701057327752265147671665136001724965921441611190091260861966223021502416767156209896251079861627896727257865587977201242267246971910667212743838866691227348316716444209119938672335584307137340016700823393781407763427143726684567615998356684974135065967720029716419395034131342615712846541345439163329005599046959018448486526350845361852235316541730168981746193346651738995375435418986991527660983059161860220332435065254192277791123576964080523911350455871116052599830354095050933474275264669435443889005620368517877292632946864987284894581796517490189340053531553974763161909018937483516547864196436162775027163737785575976282249884073047893452664407965013937398664247881140049266815713651285207556890648256896068018511794609855285203076091103873359906857701494413465007411069570378774976755329900491659805621454712729969556089527710074005136127490381448447097904499475657816443851947569658883582244205468786016927667446917518933374958821902918110992994857326351549382525252752591649608867715007903130389108785747228332632364198533923903184718282972006947381909499965143297256426118947942115096540653302885070652377612868188247618722245734899940860102553608509309574736323996199372816148138974867339359868358325957499569878356271414679792081885585581724125144957695080268814291634755482084549094892689703544421810664831057111900837454067655432659857681410469126966663230893264437291564772075064968969604753205261654938515206655781991129170567439398788201802473637926640077389748398796980666536919536192306764272906039526553781204853795324994817250192468515647534900435957880180163354959972273981973270300735212429246383984210656494360809723372185014363186798286210621654211800392805146547497236314278339569175314640871221294708024184058525296171177124057990850714458271117014533797737330886048430105626950399122937307240437626417007239853109192250783455526340960508965956412850428784835893918028739109211852489802217906265086577956909756858325621707009122900340231534035932073782530904290747037779363767305872516918631058402255895753060204450661588502983890014729392663568011988367641237017876131210394069552411129647888872143164914191435035869182672583266311510671835157850599254384594491674576653496368101502928629714531893085468272034381015585685499436856350189649299872809957123516042438216087250341891219384904674204171037574159894284896684396750710745329213573642328285369205769790378301871360940278256111477614920323732229955149340269924353506469313011603390288225225705690702333551972357949388386914355291959400444212390968184835398727976619476691622253803625171306277209497848934723918730596090518712773524101865714078694567502661295909194523474990877945141372398297857061760096377453770645003712278458002761332103473003599960384348414938604901552105322179939396479857546044803147176564381813385433871685178467807309547727866642964967163051040359962792171465711466133595945393136080146285495269244770512302645092927292858930629938639370786344314072957896203628053923428718048516288646638363624371889182960283744540814121993836521070419874927103128534027019940786124377123687816955355000611795482359988165533559858364867391797714431966096324426555162486250502579926998557989118688179496916938361826711460030985551358012895766560480277854932863094592728232147118766029164778933642022515879063090032986265067655002842706436323821445699391371179857939524146792036194864211971850566405496054264883636835511497289105077179929309369015127689562340575588383441422361079026623876484405064085807333781637782922498212153035971787241535028600153774876886015587844230308117469068283163671480383388454283835631186133381208958768604515590715787467342135078474928855582458370155462481791235445181619440053072433719455855010898330196189471869669443474344481094289284141565998477941666801853151429725182825601002497041452780302113417389629361152967434349536333305249315383178644798939221252157190321309761943091377019819150798910799795989024158857131011570205113981057501846559222028760107722014813238279257203520836038907751827197213246703075071598115911190683844641812756169544985295539661685790899985781469487517145122311820367969719265999014618309332889714041103003740242257170788027805452072176435632065165798899011704917218157096348836795606599222979880678575420715250932992446474289566970198737439466556741035187354673757730056400966897459767370277728595996954615653174933160527543338909233326641702307583172238927762563718466374054745461552987494358376098016587348448062086740862096622456526234618235053040956040327015395345277246196357156774989429846896186083451479563816840992057029132478866426644153320173153500040140471172391248526205943334777401070648043355880513790427909850532544351009979667570915396547461198823209970242648433334602681207049813561950550790404132689095524352638406361411949340859759684716141947192493738964524738721937353252624931522274862480869072770825100680856385972930716099230473285990330028240288243933364615956378318400458338884383247929435645604578728691962041535756362450686151676092825226548203953455257524439808736643827580801293779455384612713874515197992947760448401321004612981217438707132481507826359052642964302882545512471465990699071696289786208401582508313312615239228459808185870830647640984703919564063496577875882751365254210745519358642278155095505565918616565772561733593308126563979185020057543366556348504403748779332522618020636181707853960355506548442513736877020705689092156112699254209432563940936142753407973145650318843515607626821303844642703726851882643087035025585748677889159216380967375373653283452587776047277765282684501925043878429283326201253649365212817115244664015810615961782285355333048434411970839048510391313622133513938503140442327562905173370758782306152731033398712395866726567073258914157588061722214198583942176515242908281308107042973863432716233935265346714316590931184997338794995367945585257785987367904207248762928712307597839416358936600932697958888524419148664165007934389628660519206370065046958614629376249579854946864851443210199084396790970379529534746537622620113381602949455657473772983481893528062514959330583704938671861974017238813029226000482928085747792566034485743765648309768453585551587658010290837321267708850224666724974210588044757144218272186908913740952260636735493392735775787064348418782587786635055818929600323950867292009442679513129286252831445027556326040765396695730125331914418300978403232364439944362600680349017285662545923370089350671064201393667287794331124254213965970003580847367386739266807547607160871010698043211061144903033657869769185133906303158590924382100900829711291748361153042958300625972698335893119393563169347306603718251709998373262060816367806900147215762691622465483094321853528153414020172788009853496187011366383419284946790736770041163536893332564132075830167578022318302270119202853360228934954449456784137948535072969406364553034334643677124478889663673489643285864098011757163397742207099602964122378120094018996935752977901515586898719084439001919728046175747885331362812944043251110817141872403112029605974008948163639084523649633172962730014331458972351833864667266531366626820893265950405982481733152834783947682927729461124505667958021040966827298819043159777282818971267912993383983725053449905182907074078656994991863552710706037894257607635336918942773804235498814095640078426518350199738947958447323444763583249864209576889919461957951536545605348443992481309548835117372856539296275514727962613659425413402174917722530392694370952063896967786709843609820900947564990069950730405723881112198352937184927789899429431200549561908325660237097445730680027426093978428139578445955596151300434972703100145277067234013774281569461004438700475466675808871910598149416289462243280129480545720469694643050707302792017529941449159896826261895910684084756746787867446765109371959938332802649506811074501504698990504435606739669437785351471105881296568235110077718236649401967745272545194831037998563395019496591945597083624825671730425818343052433019673027416365620622141864716536674403128113815493802591159990589663204200540911867625460334793667975329151167800221138042965889020260740573128636929433676188250154224022160240514103364201590645936796139345838137880703631355622369877723662106634826039999842255847832566212409761933646765650683026760436827024362439165783788436356935346112380823451883445136178026663653400510269190977377293953704962570475606961042206947025629075950550129012382368757600410228694136462171441117979106645721832815101951688336687083488507503408051570312018827945182043777732991970478744968193116040175450170997720831864140736725726931119590931150571767595905175127268170280227272381558500989589653810823921033708561924157721044801711341954949425131661620604140870510691368283711268876347391363692804745941493938333941990409755917440112088578240160861180038667151158708374802860942675990595003528829797040483939909397073797155700196586395185718985653297677092420513261243411264922387106994724145277605393495470319519361482219313109969484853156233417380765113088948646021104730660969007385155006916139345994087435354478672044069186623905361493179609408659462337198726045887061398438334292396856604102583398179352913082835307565171567302304195053443399190022282648739817991575239693682408196628274521520379513353356335562047658694956218326717290005548583430488972694218118461084373894001821384521243635468784185755070075665335300478119029509253202368905981904173086170556382928309900836687992109224052255518653407621157583431710029816178264501839512340150840778739301102217192323590155786862520824843304063539919863331270183758435022658884195006820519694466867636125507202510933269967745298527659963329640375118545413205879400850286749106918295052710618757953309746786430945821398835622424014684556778158755343147850727164678973273649905345147086846181326155681193562723794837683198123170218068207107468492548355783997597828532280785641587863395121643772314278856095630200245917390588459096900775363673088351053157280951092513696241828386537172042927146988978057700399194635907383036043258342454645194020365723558147275386693229925261553012193501161241635052714082620366123331938266174727664402153850731488440391897431484014309102731334034739468110336072211469541830001453275731188987029763583288037648239119654926401983569396614680756269533938773582166991306671317979870270677468975725701024986942754651289243520472807874862560587390843971521800191929112949296078572944211628596979944860558649464443528666963837607057285672064332374561251126784683239712300880254983554273543052629157136600059125261936870912452382052800951852862331932207073028590988140997338431445574077289493627254857997525038858141939381900284123728529439335723379155533992053357034575880391815332007128731472451318569780605515976841932569785133922180222019971622761022963027531397955428932769874206327606747347283143000515152209962955678904960428190584750125658673765409931046773190266483987369681817581684673368284252051182955219047206815126469017326902378820676178330801770029320205400859572317296913382705240937238791652769162408115256458821754780705510532702807849444927089589077424016404997958411522869368218578766138983202201063490502744226571670855591176718024026166699540350070978824037423253400377723818950793236801181559699120130424503316294903750821277427254530298400353218312358560108042118845397567365467291560434830530275009026496973505648082706102157993225892471303471142875673635677057399543934312685634436765108988915806167142434978509299480090651174868114478425140886764872868643236038084715495287633755835788084159792580038134244669152540790778432132168031590906850505965991328063439547330174591478192663870909885969267943760534212704754957433568840896064494483713290206832781792812116666301808083574271702163826446005537355208261596312613130365436890380740836484336863595170285183911209311735981419604104553374077220269173706493137646374899025062231881278704979162465883946952028463915168835029113690543098055417089155960979399915558400017074263937602697769420757756691539984419542891624069123634924871934882895708685559504633980172839505368446254949880559068034491714394546251614917083482902729084345550140139693825840930387314793669446878476975610321012631346996888442062623626564100161211578198398461664939163173810332973342196840575579051307591934460653160557530954491990415978623375592434680723511314523547556935089816738725573752075936100613614404012268055498034114452313088586003492929886106078704991069752360236285452309300990156709432803695497362336148129877840357243877924078967489206565004156310053855492658951993138321440077173494753129265546390368151807954638480701348739649679492344944587958813727738182432014585660222104127066977761385898849167836523396433099943298502070624623011173692527672154773743198377652332202117693481129017067238098979150559908083456984660917206610535974025082499966445838521985207151857226187468845771218873144994774693135196780439899306072645960063721715950487677727446685840371859319703660875999083523674272702922003081835670201191978878624791785312487759396804181142712796279584937976599943968484411271112406910231597204122350905758548448219451010443745702696426672271980389520681227017522219932577955059728912906941802530015023654864714929346816832027029503008953065550023065891976952639737084670607402206064104777612567286365014656219430208128458358161949176222788171016536587317992346504856267168801313155798107728909443299511734287040659256243824245622235054570510437607227738927676536436709750373076773424670300964384427199144332438347061442794110118833196823905022665678706674638667921217184454043975539179541323191709723297099280944480903252281301862810678920107850004515334665678572143849230246926012595316343356481396703161576613085953289222050393796576218006316782386461468825611460622506812460519404437371696354541505229983551197784572828382700785672878245507873266228137366140486955814128105698086458120959414663131222614103006493056142034933612409322527377168553798127657977407994589462548945229872695886535432713832373884532677353914478829463655907901563469128713980477798324573038403419659757157590762926061036356017557274055222921817445225166161703538914103937740018454642341195308117188716680710539825620061759366245491076209950363990499767262762741003136183951587417369151114450744667459877695123460525664053299631325643100750140207701898670391211707936005346198928522667043439466847663984929836592626719089334796531486361856991408131301014610244320917769405355738193239246316064080378909531343785724133274291215988300396940519399194056123315204924608587434879657117005649353820833508987111500573731106230960427820042006846133314110421990967996809003974136227148829024987581750308191527377947267521309237527747186911716555552856369867139886753231732643973423427185977589969773861067362106299142793681231520220330007496883850285266599498808997553988538088121042223177140890615384771068190769603845728614722157549670469015956964074297720466849328542930148579874934677109308252770816982499884617783100608744035977911652721243732550978147787268313159266059975178250711987227159206638764268552119703205150415497879636051352638552783112455182305120852377926686153064140278340534193326564758530237908892683365704026446688583974255644452370495920800778124708226986200255053051473064912528143002821292547055249325920521839415874505227137083822036964119494245797695953700028224894228344382863453994299882601020742106670045418991611781378549967985180908756643268495450599510406723636517583911341112795518676443824626932497945384698836537983564891139084726505543982703682178018471094870229275932598498534505233444244866698396503692003043498262784804335645520664787772197580188854985249716239438810433470695355730150462615406744792471549991606907419065819403848684553025512420089818157315950853756223473989352642774172072090172051721192490521956858047458254305239427728000002876238282597961172606182280448703473923850945114404213192631948923290843375863882082274533577038841185408396403517254720809662168664053798444231667331544842387042537259630986026881434593696922746449724555440284651176038319052839400581421144006626984454553040157768070457317152069854214672668476096154060849332885612381940935493082948332074430355194482872881617348354711479327225020883609305860851773264750658882197870366981306007438515358751421549522958406051172749530299918979778191171644190188517165019135133076142434133742320011309623722841673163657008347346355827773303752972393070695066371878199021795093955724793780498144034958145812497430954656103693735854564903417704398419724280116842794267174450931150502967003822010487492835202006135854358567290285525043609406472055577067369356995995753780162742104096260056484759351087243137602156785300606821784292005958879752818934025051889497415946334395319530628760711894443533096181035215009627200016544505391339914107679022951171259567903052718797517607261004546829356697429433996582955102157485074444392512203007405026622857284994114809609913128951094124241880375341866458905663118234626900319817809038022266495737383414153154586945036736052487764751875891741440318790571421182177917797917714899100983837739629110982382750808492509182704475276187010258747180872108356260538661911304788793852177896464329303667540022870361571961351752900676222143567715056372397144733794993282325164064687912365186443780782171952293097334578314840160464253721209237055856062909972096260692184176441727139896136574878449882053103131094402312331032995303350038743779683018937314122096603179539131297855904546377378254857223200665800633691591677438908996402221306738992701798507283424754966471553110408062089857037729673262663828574445065751777941560885279364023707338514369871341898220747155332181867041014054873902799434444509334298747725873496937722024746446864369340902583507334389425417769073358149566357648790240978237442702882970119078868354783320088051749822285130138968953968877555580416776242361474346514724805235132821679266899879056257963351648126121422756899653509040481838079210725510065373971056866730299884566558531400789563759787292781509592571448488468951037754572661999107683094580803439460527362507820089555198259937112780686018204991375240467984098531180307192351628836838844876844013924853962924116315287380739231320645046955667616255319009251788992307830687735184210600155387976916572525779819578135567904910037835058286210368603583008285441999862599691683365035499569283191834503233796191368695428049067179673167031389341736088914448392872360842235248263189902709496871428057877850122151070014533125185777927804423567194183272184127897061932159003845196579569890344653138128689614066164480511026518981877912080950949616275859485496985329681828483636795490880354201534350632723904222182531413494616570615290798225787600863024183564679765723345219812336051868637422061458791933969963322126907028918381657945442390608919153029055742289225749298373928362615479285627017016311522445910650790859583286709394415244227193579048732825169110234433764304452892748142148474071859358011995569394434420606293596080712018101868332557933906175690381361148774641030134117273750893253639707042628499207154244675011074241736993923221729584108461866637759499968074102857668596044468321216956057032251469415427409749363936998259616929776709132424966276032709655832593328902902860670463178927027140355309123755376053245175333202867943911708327437617885308321616125582633495332246284786468379895652145846534038894821566104273045461108903468164948006424405237210423216794021248562025460094213497703280431697299654369222857443224527413217510237663324932220469395215603493750850332129284639417180804268771668400749251168653478640973864430394609772014935141293172371753429398746524819226877370735302202174064569541243884787757940420608225847498943795625680822291538012440848639005621798401713355138603533563379049955326993331305026571176001345769159572276375140445830419369358745978496002038160379071017072304092128493617774543608689875627624189535889030874700907678109342168772792340620959196016765943751814686871763482807462120938117903424302218570027949076159359504208483069362711812080627680153313000296055553424494466133144094352186734306510310796267927639548052161651478130164869490722710995614509634847074887300934880865939465131100111918394126108080204394982152984051701288565051562313897869941043694882370710804332300902066024468930182728772327876439694294774059201627690617347446185326762209770849309874274511772472732624355895464971351711717759325556341184805895982151070394014027392163935513635032291180390320217711436403574892967835016370519543239533164998611425784924284258562329882321433843434270778281352788244572326554794598096112138832569357937536293439249045013118266636927804474719297774877872862642811069466153252509835856667242117295781303146621305696440237418590868728190259318220949070323794565640147033524837369538446093579066108197678433087893886826808178785464395042031010722191938206128886863846862275865507758859592194417471067915131465981133167367202038731679399577363730024522178295408705340423063583384480470147320325539688120642245013286822059599054634112641033815029895939841105730535423713422581284513223172105708724764576155965623609448737026794121686362068176623279600921671141236066570367616754841034221885354058775277088752443679908103916206853428619483215876480149444444715991951585580069666811585412784799746548376039221932992776038704649748753729718838271534608026824733470677595515603782233932243765530700982677714673871136723763188199357401443730901816148770766306474152579241421024094937659325663829227437654676689469929070459879663770570095243536835518305351717318792780296241281403127779186732060474998372659032803172799777524559049212395861890380639970913419134775679842336711752148784930433841577527459710422213660522818359971671072744071160366833659509384092035006726857137899151621585527157475737254553653749401390559344004591884156363470544523064209650731364138265825296998881049338105858397817802134424130678096336909211209757417541541540028758922419743325717516111720446949183588790487837855467387299459008903446461712693805763451393275634381484165634713645055555736941573999437697511035025147969449826306591297389435727539871289089190824427558967784034767321789733246382748404211253046993745457557384937085031077015338303771236584660235948905455144881974634578983196119110657408011288002208226683150763343343160514024678037018514758081336476285102711482352909875974483982725752798907942063615766408411137420516523090129209389429329673600806214898714316712394992657313097345235444848598676350069924691318452918440829818742313211703810738929618852416074345008320996588050580818680604772397162152586464724955589991405713036680990037415916267997903700397281369201925202764836463273207208102414116134211360470361523713488820300821366415412360972285485363750899536923669519444485417686945548612663113991575511185169008618946233474556165875010342666848486111149179046824751829015483477899194370245055320966489578532974622739756503776648058736943460452359281091356678571019868763500442273535569298885403153600321794034112988621500064436212134620114632545138411196447328778001393900880041055272192053200578130705845794837889614141615017318847998805455104125830837039898518892994716511246901360936196761225371717033181995407711954587213454922787419980028039177026650550275030714568067460663068956581458775422263819228428021489068878472491360782793466584268283918618782393156645615930309455009693688832113795733948490360171843207824515029724825117625843971821631807596203227712329669547703721729799247967207074899755369240199499125694164690423737137505632736561257585350822398380440082166215908514699379009267796489282205670075715056962218109564476980081662554024107064423242841745437889562185344132719534125906975180163736801784640426327204665602749943081956543153089160137350653109099154386008276842382990575162075629452241916014579501557770881325641937425511305310007751684091121004164335864373846027060290797900395030342398701351766007171000037856212827706145828197448553957386864105964059602878013584345424071720856688249842663648994427748563256225840174685395767848808978505203633688464562989418938119664609126799125404343795394885779713985201514324961864799804224606131294723451222505906372006118408598016594588844270701532984300615555592326553951244316721965778586647636554639068597772334356146331397766730364705888092324124519918154079211057878556753524366949486707798519173807467393181861374087356085572335096212605564237271021257169299622943814001291330204881493455579535800793270396934251329808729749179659329513692965560348562752040418777529170133275569311576995691305469399585916942868221947420274970207183213264384448978620519289088321198913963132639582540515359006466453316604194641270280946648621985847362727820340539507963738541597267781802089687582731233668126381636071357585754968108230928054270532215228077117120337151830349638743801477041909893886476157531253579901615419441866444399581304687005825781351871193675769088402027891787972865105843850184022620083092737949430442300873891959341839910211301263325085876045563549700996367349112099207866483139276031979096693043559586295145887894564486324664994885866470477224682961437284993362696528992351635233518984363176277648756348193634958649349400513168815244138237782464355610977207804335508976085457865787594546703606705427814536913997009446603359640819208163358626893731132417593381880280904143677134924517678525053712961939758717504857249541803558687459521517233707716235490580125714748490383663700631412921244111900396988746427120363167994292100856094326292975952632305107842890747215417974217920887023870057654631446805248373052278861993140634902780545358252236732627839030015167385153789177072758482809996479766048312429029680313060813508267070087545058656698826481302303935117051534236761866119101892499524665460680091686657857874126840134524287285964145281126729052620683094366712537132431493684412398263375990383192363787296468402546370342415089228802483351023855584582195679468743399671971933134079648693258806478099861864846997925724343113711859438814623242396893853427379956051829890983637214474501298622664810887105282882329329533852031273394007823174965802567402036251360992612345932507167429917444497629672301100846934585856122707702902931058078306597201167614135995896992377671817226179121346179231838847277769920637145263753350399660081711910188450295915821741076165475660154284656492372974933261312553353204559596950027440831352484940493459738538188030050983382087919104862661498666267945397773196108863271807160467981655143284937707428953135640704702787827248072228586565842294985129102276491898400621267615292719829866712286802589372535524712182384325147522782944405812310564337265767945854280309591606626607854831901045906491914435884543999305249540353906761030829497525947734512184645774943933646881673128844096803036988438142942543239565448529915056655986686358245832205513439660123950829870418338180886163802192860567458628860992939581003445625537007152430554393910938073192090450080192015581678994855696602749126323034580165795583142288548409493296902839150997240366656454006441057199333223319448436717927421587885387892479263637316894595221959098439347768452337146757578566785841771871347288127665248140034208299233467308322202366154907235474037188844082118349327286601575960213552954605011473473474456269065097991664312881481841816601722816875060671320431987072009584977475259370149339826546061889885749378414988360025376301884736230058623905791406722079011602963014420539096719789611996317738646646588872530234846320944534444997444127866519858372413415223000516343981171106895619033807489877524998579659797685347761669069719882423453918821785606252829516132395341463143384969315259079251618309291254569230236433117017148405216688508939298580219125329278650781468647029420021592063662281792199495025976120220205675580859969100113731721476004960155114450241510643673422867926804942967731285362099269192343274503043270674970585337327381225185271420953798128654085374020961295534391448047528141372532076515147293773602297429671917963632145682930650111108913704648175967669901566820857724761430882874764809858284607628262487696076990759494190748399962759874132653628038522639024429214763390548472226069259064068073823760813524599146045295474239734739820136781078590626944084509506378753629479729183424754288804351542686297174647241468343872551953506847164402289538554500265302277254708790069945882821635964274238866068638236879009783906442710616344993826191084979190120078316643593535801224247991490583673014460730235750013031785541702859910372740315558785277035721768409811841638677543870133832076568472652214512511417876243629118095673926189941971670264329747712787776754822450396186961085969370855155618138670680649874268418663194793488750073468461510201839757171933035624236449964462964006858495675303105756840710663785563150735697761303947944969267796806635434124725178835506627457392974401831405508634007830702048873124540281966048487790480568217571186947088704333631935986688019387883637447443265301673050586245992498586533405352545379095081333542380242285438316105726187514733170533944767983496798162781081335286297831087907677409662637792571674762695845547424826454077187284377927309861020288937026962085314148129865005918911133994406570257869633111489387333960713660350432684140605744232624467144742127212895533638714369142109191589180293510430190563358758311941084313270885194701509637412210624944233622331667800460938598154514562555410717738515899496525740808287120307544741263999483038872885429271768113544655657560286756137350967328972677459104100103118645954900310887646768184410065606710316450271130543119978309322718579075934708242789287597821000745490953971330994946686866259048094968146945965332359034210379400800110891187275773726735278875557556201061308734890781498153987900870404747530320089297412551538439061051039420522687200458752200743237864811784877031602087854392739187742130722696327312684139531770798231816096641409848113905441254558772248169780370584269042937269082378800993306573998593191541993982511043205623208107108217295840278626371670197903003093542607076159592426819739551731112702076042335136787522560173918292511572204793163175821146682961236113568722383084283409056793604048860477720611467973638679422322973679858819372115039128986840389272118017180895977005823261538705366048420394447945241409341156326423497630388351722968733794302606412342196707846110816154364586982077035255625653517832824169035468199010070311944856711017187708856494089945159143566108789127367176061407985367792169519128887772528914755462101958808156776960146794338977299382093414643375904532137546327738824939669507410232906580977577470311567865271010418498080753706784608884920306566918920457966756986564743239350274674147696517269006440799319028762239864793196831003326277902410195978297486418110165800700637744104360994337169613636252672849784749697309714349455380233341912794954550953107649480058107800189805117109296758006980372699732340305360014226474047390876194088936604611354307569933965412215933925064952095403530242348905171820351692828612226462645767191682288549134494831545423498431336237208558982992222457376345707564779233948025438501401907084699150103424724424584835105421277164759366471507899983761716813252125078477833090975965457747541617136872189304281254346364180177193759348271223253059308748406759249175259440610460179112527603482821805998641252804898008970906349188314541077943577140893705582095877024746846587986050056712187561627211121985924343299899191198741751460978348329503581316243226001082164554987870036432974611777134118613233316999375148182868825247951114429706941921219477633581317744321617122933024729534603168493394196778178693031275021313197460557811294915093829009913630604161163683898564349886714079116081928900102215303673910017138547602962180026542110682077617037531275111032009421441272580038081553817716245841518310407411014508771177569209119727645147185718869795013000119729769767786389718946365869307065018002197212525189666928605988195881138170835564650349390836421282522495758138230707329772056706555555638782477003719005019414943011044671720796079301477213523942440517162051040450265218309238662765611317278293476790090221836906056657112078041955650253240905326540727456343966180045168577370371391255914137434466299121520080984720646210456496603889278059658091665424233088502851453279241295503706473955711606822896306858414927197840529156281064968715844033772643312260310248879251297205089735740188584428835975216319023400217149645190332023831666108929799521862608034162009131803264235672781885416970526537308458955048969347866938206692357128406218739639202457868647935296615135723450157396328228881410845718860214204464746401388432381782826604365047595709544076193010552241086847611595430172660531114414725717323108204187661494988307940831735683072532003434774826173834345628137861163869853006655255552786480084344653065880055563207361132210502800151107914160689576023729331533910163851785867798788682745693700861115925069015639420096922605960685013304318862469487698178114176911829130410138755478749229607598202091215278708107239425246738747982759891188586137064230153616426875233083740184112691122593603148670731708193615245923787015830810396925944980106599548865309533496455082715614049770407395980908020911281996660063401419022495659969412475458592354311598355280029855914525119670334648805010488078429103737420623046262708147265723495690601830166141552791488079819772894521696576582365556257362901903304810346527338016717582798557458031438958370720098644335116992806875416531632394921074812369356645349357841787356435635304872464506016394081381529164078675930262012921419495867988506397612983912899427004021260284089607577553965790675949352182829889279782688881938350353821516463566997757511998490807397538841711157194111153626717558332314309307248214523699903932976193692546435865260048799652290864943126853809722984507755466345753767866870000093185400028487732078294150505915898880924865426133061335518263247836687189850778911179985921923453036023757707589560629158392480669215507590365131722275400182981611329470862201998996681804172575061885013764667883297840337732915458289435836832813394056540466593701906958928180941471398932034543228721134607706479872788277225712619450253598370960949602824766307580060953289967968562522485727257684518362932259389014013537280834027536355435723353225233361848629031337956729096553791060157720246373510377364612503354801322179631487718227236554374585126229086792001926061854928907439091381385588649334354376423257901988097267542541690923707168662372005032504207910565452322871747581456015156041587135406857734461524195085756491773367863085116792742494052313516704503665852396566661918468594483096786919470717948761430547300874001490594743809452267248110738577721224396843471679542882135845743716396990004101881781591574464001500230475310760227498622115531153275956143044772733977300227396494139711524131994180803599346460127900750785094325144568124881785289842180960207223171357046086572975473694989449192516425878667147470126186898433842371775835894472966628121766005573980567416571087384719754452820732715294317799132649536471194547885185401795116429631823693699852884952838369846249796736298411094804518221213156646598178033436529877054145602034457095146099623587886088953683961379946265758359342516678966859261052733845721308720620383492392564256924828521135212586171029870582797767257860442281437087139122008761389222975054373884170002434861598637370621298275025194015378374846107220286744943546692647787602051900411437355249721199961350156355957158834152372803380641918507215577814827960483119190194314419309989379800633497856102005486750511412066093189480741381151476858544829223224738559920387991782139993928453540997177431514543861716132939671629765460085693561346375790406136695474094042942287343145129520015554844996389337667451831191447559847016722419077396998094668611087003745171414042070798693834204972457918556103361885884213331848728729856968967267535381724070709108585768530084100336122010520739538915881617295136008703018885776529474271957567115082959998663166650928267269729027658193285571553552890679969534995690889836294778708947795235985931396693957734394665460808972284666164539268607656450302487504535255640020030919850638584166371217572684718387670596486968211886463049103976807481994619210319112374919919968701107889473882505520373998793837517821836699639815509833795602204230555563953053764027715791108471046740461809005184062095726570661999723149624445648467653396364869314465483320056524389185039661770018988238256688347135700786832612613022307025638566993127067695741877438597958485818294552795119583312928221195485023977877919041626654917058167434581404909657869659822730656040379942598132269676502019960992336388511735301948929180615764354775271967494354292498177879639693990541923201300093858010355980497163524569187631994613872360770173841122669036583233186790916377831641767911548665281092356928230451948449638610720086594378995469866235827894465322264086503230408144291069969502303166782617335973585749783384695249757025546301156312416403798553051045354774241677459729324652102713820197538365688035259764473509703286367910695924429402374244862175968647488644206866769716880464059114992725775723386239517184162481123519425311476970524110392567926894446946903468748504047109248698708238666805340040766570708285093841530427230043524409036616236421194637674101202218284036242247730036345025952635834064540775048774418783335757288061823390167037905181282153010383561042168761858982593110040363148194369897907702360310528200534477661617365543058972789813583920813522841479203967203914220590071056616564639861855107163579650486127734251999784904912515554530511783434361308776902251909131569853670241859968813761861477155182645973964906082810092640934943402210356842871212428523969361491733886252763819522548751131951818194111245718323801353986125023303390055722395822660297045406395687179239039548372138056304954308730019150038305824727023146463556578557413486373085640871682879449213439588770562193890359327496313335139584704133969157020383929461996936606122158546051543095639140178219327700424352598802947553759726317367320535353340941102947977752131927899847560779471429136159472924516245456405434364436715396943793641447218754450457453805214014850823929926391508408073432589765236537935173250088400853599749422216526435499738436091033379563314110859485137414850864509316092292132679850132658812195880337463671188856020208418582929957392674196501614472867639780445813592955706032451873450617501605634678894011371320502909632390402532200984106005412073970784707108963577163046335474731796464443057248806643791427348578981558107273134690716846461119948930273649346040141695403014984511894046385222325380978888346412512152383450872030941921186428614264855401444664416878103303609758960702871549408495696127865559104068271026091042226117790851080290833178779763876414403501027748502148311661614880204888228573781283618134541477294538350087492560812428276611686358003643358125278027367479512383898520111078625760116552971827513729817676725073710471870273524502122160789490049722086997658077225543560147295564142642459041676765575718645407219176963892009768112717864784065583681874991213950388210961784358007262983074515682230623823632789444420428405610781512512229299355622317942135699305206653942969534968193591956370462405567274539338078867092140411301070778485443517638529661642350271042667285721398667010085379253699058275842296696944233332188194903706235989780466010980374756033471052267919379142376751911734527102502775035642522608823054692047685520182628478354911990303413142534658471762239430507119653195689876465459136395033527355907858589352159037171581349204281551668316984597185431583739417437136035579226310824090026369784596207540707502062427734884694791098014017178929374865579256482384877116285858152315324102748206473499466393243359077353099875865802821221425912966481421161258495544492572272711620002761353362612495813570765177165662099072030582909653245276912746981236668679780605195392166345565627618199695791189005162036087714583851731806072505111526837683707332019771743363927296346643159775703916547425284042015601901503920210518255063544249521839014196098052023993366398078145726762453717354899101528981385119112337885454598620365130150839559432513763267510096208501330015583739792537269286466373829008194100077495241869208030959695118455812967256358021219726136365266797402212953734222082362814522929826562218480283248248822431933437132062282771644245651845833291198444482883505477138338937662844132937103021073351471929558710591922621366746296742428580409419598814079053489688826849534934896449515887313786716198096075706432079408467146005171003900979260995634910061139360006566043815316023542713609108293356171933806875222659779618807693692007275612759916321158653947646198088518557090592332982727415540244693226865455626468230434894602021783593897452021012466782382707855806886236220461314749205099991607977764531495767815565751446785599780544012469358906156447935380495799416957022909724010700613821703945395536982966162949294807742178639206812571594680422502567219621219293162585422773306438644612625196726983952739798477118339986884119654589035231380524193572921204790071850500693627938866414872875433231853951021796677162152752110223890418137739856511636094782384620926259082947436838968744322516606906987240555330626471111945417037222647661871960492042331689009819123217921676437468217409295919673636478975414905729280501358148559362597096938949591557674952506906663450541384496757359997287886088246259370895748406726450669883554171247624196924036276056593489265204315823926711311441669675224503196967957942989038338361593242926841381460562356191206583750690413872368507553145208244871869918347017234310956477550786301535858060200043625464252673542032249964983585496847174351696121279596670571017970186808187303111837434964769980818130017232753368443583150208876446532529225783961903499881757254512290832031913257846612795622064057777055411211220635498124268542028472301407594640460901820428910877760020140627024584016006685935984817600704007404599809236338779580347201360399328664902094058288482016449602779478847749514126901349487100357687124058298491689654086375230329099797135162770701679288791145990340187812567741974321245584279694432226576670187559048106457159138858850303156548867375546328306770241156782754667459087062321607095019670300915391113777530283440371023242626999544817655706812386795574655498818080310548593458236095092956771656561605012366589934266127481475784124585150157393649245738606794561583367648614228789466022137623668680955820107981162750524124945822001931703335858140830258598234482064362106136501302984818511951590662819039932602174832277769685210500843207984702125943670272098161235252839243901779296934472163863558309690059074959228747213438314004130173180674244624933414907445285656185792598787970815085214986287399838526832709074987414036508391688924055481536176154747038975906583644510418560701179490329495036268524051991103845639222792853424933670062588642790016060596280278777232082435414376449192876375027750413893539521983808491109817823988907873603228202132592146002687581255835735671848817754464831554310960078377786389845779354070823057744068446415288112078884930741180126580824757960733491767989021420701613292157826827043603583691596484562175374799603323295595102279242704212934581614454364078708333143718635720267511360123365828044356253819630333849817311273176029437785429897610865179804427978902399389672605666110636231462062420285292651120845943657853554202988616844821161066661260763212512472878338421360084742183190628616147097613578129971782177770570300489904322365788604289395977163856875275903361847453194432643321539057035245485621005351833395154879188164065799968057352688143500334733057479643051103944401002758358328242166784699976123131658611705530929212590215936499340796069884631385626395503280688724965511885439571682048498236539102435921623670825325103894136081991470449062809797024233689154393703155343342601123548001677200651166568870851464947902060112006348136706547336998031729507346961596874755648185060140227899063597741050147483216932710696276792876278985349181516084427201815059296994318859150983438786587739880223163799395831328707915448181796738825399795547592702585829137939864964088105899975592793536507687506440894885778039303566870631069281249313908356791576518376574381997386942793596411637379802827844155334204703832137994173087018321849934349764531738583280890501891652945184281679865564671238381197875306293701264311831516829641609398271988641505381087535519359145964721109866818212097789321532009388831802252779488961170553542134180031279934295448691587541578988034187150980516290557302837683900249643496881721411093854739577474999973525667741981951944511467525476745353116864857380425698442881873475669231732054849774712612370274072508016303074339891412492210071027046166513603579940362933046848694583158405754240420736066980681773746065109053866317518983323249842922431254179766955011975896049377193331478486514980800426478966675961568194561663206019831136617470392315087610206865077742945159428935951055161322310372677741499933277754817658892202492294097654570724167891709181768187608585913533094585511150041822213767907268838272307908424150345120886549036593195804085517158079651513168654471353925571322596260630874890437492281723178041057250148867533613362759738707659180335557555617106265627247953613306735849532173970099519939255425788701804969602853328597019178735626692656566790621133471265291486462087127878195395765088094627516099133404584136706849543603141345083057851319664598630255612632063418577704914077297792382174706561807204857292151849193049115584466109531348042363089969872002530956355938085351461878400908983711690461594313127836137799012886122392410336670777811851727701142590374106242221935917199709739914112067559447087149096417778614765662247865293703036619216676243106091273014950295263493736235829690938565173049826616062148676569948826437126455654377641808259488869684860319917192269056414147931888649212578780118777066211285987522577139901768306727984012104606205873885170296304015179172304277126193961597406237407017057348802456270041965634961255387681710571606008005330981414533755303200921567925104739018131844495651454629065583546144356335062543761894646063470393339165639745293799472970516093305820956234626160969374007109539162372435763585513115057648979470420547263290708630833770197229207899759041058382982178336395335501992012466205242084060895847885409942577459594434005648736820457031434250886391869836503172214083984414715902321143470753702122780686347596453711942839144830855359241391590717629535471506163609582828056901940455552873212126830955777860253945621180517385300877278479259563110148552411776686275719948025008667510706783449076063747632640245046340277049055418606484475041462786648663732481058285454039518006596129044647676689469065084147895380478520957626524787173502430391226464329051264634798206432935182342407598870738802721384875618322400901853466241968498096963606611867381514586235741861631851217578487135819994541903476870436791895479459633402209021198075618058442883808994091226221865680038327719330893938071529294506249226270931428857415637651936954923545496068570475669370651522068064400644956264071611604691965830784436870773064415331755598602030529356670272118797436334140473308134746771342379143095194542377511599663663424597889769330759975043909493266386590727906875005718963415149096402939091702791241257275218432942086783999011471621097062842320208464827045786674599161118789641109765568339919496082536211138765114468385102683413888694205985281933354640303656782982846100679683376511214792419249176588366952294552147080758113836235056638544351143669961319855130263671480237327344566928077668496836091905960034792510768463807868466374146895726346863825893671578892611681856452972636416967498136271489795581950133003279447743064243763662759948064350236299580473191657615058682126932843669625303677174376395770980683736620702353448620800188197267789634840498063827204290263653087157374069427776930328566116175595248070551396928326512652333855906169455661625759939306725102402575441497050034468114973741088299699963719997078249221631932604986156860679983292726187425773217485678042135515841467024200510202074786053906688161967478737904620476177954359793411506648675884305319964961459274202458035680216409068272270385515549671944988096954254878395088822999808124130517487035670352312070211999566259900016069075151406578582331261605953063584808656278936272409096762400648185595422771341290459094573329134654322070158912929523790607703999949779690888477988781093077511386162967971143992260455236670096628384471520137676655015497870356042739464346941846241587403753024293718898905455648758542430203151429328746558869999890607648264810508619533351057738751917644738045624515192979367295886323508829172922525744639270869672641586922399869834128336716517191261934955750807202952439731510830161924571277982289742616949099498255677695301359255745211695225855850228471787195920064029077459486080648431570268488237517540719991529309756662722629692436728495466081157645507847952490266356634872654602317464809923919679736690259613917615373354411894678646349155862413357779261099408842017915514501977165954416997761884793375471203273004045734684404482055707967853104326748853163403128330628155823633139966493337862309850144308566826835164688130199614067852858444945253553346275953288203568617418190496443440988537469198167889885871780872270966840894011216803367130299951936614955984138744678881002450637446461755620761705986419294895361678919082536941780010955101452611184524164783291372100401683720954578558617653586947655211096331038743503608624870294390654298969400941953683856514596515251983185023184571222103620065756005562691445779397637302835777814492414957223928803194144533553007852492842171819446688461401204598401801151854005761076644510038921797775356417279185770450039072508671294618536352826239989938502723207210457016515510736298875756761106856023329608715817309103316392085918958656871478757663431955091434305154974454890413708787780708494535780564220283010194482000642136754583717784439850862763189868230374314612983644666258117753991374838211848824325633439914190451739325911149522433969900710716834762006474214348620320581014267912960495613814955997505017054277548168434681003088943302929049747462634612261178288867074670911083095867616207987315365610598083488461256521592126462961147212196871872216733172656380100921162993971591179008771386328169439984449251029216735802499076643650699622857498760649570578926977446496973148360961883300380930471688177736074506060684566153703762720376729770128763174724527583163401379084074757417968373315871196336655388147710241024966224538624012153041041011279826814217604567529313543571609837594638204648662127608423500618560732885455113010543727463568369331720478954362406737278176942621103318152100587071178132009189186681448077456786129230036155987233096425247021997214065432749080376461689341362522179218285043424552470784200817487695487626842961513924934208172326041285366202686313468766505090656852736143260360934915072330973922993340353468164144910853918867298738908107922156496751408186844878550424013858761728519371812625737417622984516996251337923796100516920040912715090741517714394275150170989146822255502347740876772156430126686689113766194311771314520583225280098631444145316797263382288901668912103499517461360937373438263742788175742477248691699955807563811788239215031055982280983172995798723285052067562298692568565165944967906549174590940731592673426196234552010878962135124112219628033197772200996173118478175599467439313990507239357153796137412924337984033428525280420293780138539940903785174582947141119224640739185414380101322912302208756275117250090832449702055662780861379668405385955029653239916693244698492372942313993139494280406204093880082217009587572342257094237793686774918049438609192127288527913201497975485331007965744398785175451057882164346984177926174169978573649736581968542810283755665708654335803134079155348149931273007668931170121755712481689218952979065703408325512075331248412694315989326194773604123957161970314526286963587030652402362827859419946303255356359345460923250181352204461741604566164650896969216804877324448419126421864650257082791754219588730168375548805787681042454864665433491901191941078123313288326270500817770228403681857755409044252519562593671985560097079347275247955506769524962784066985995852952549243509295393971202141883271331632997206018204685570750714923106595444475495894788626570465398742496346817067185328770585517390414882778599145287464809150737924423984404001152986050288346663994681112995858790534406786658354191053157025981955118086412515345619231817982630059664615625664163902264445307839950587259298412450375353809216271610413770835774742543483187421117841299939771093022869333312571825824341780186830710326490457946373511081220232327827594571835513971554474670128282143603303781163215655483632487547157937526408325528361038355158926629768177605754017622564222177845667859766603651416240104867132243773818170974891535167822526498663940149212753656320312076988925956608339913120795445499671266598896920574435050267859001604431313043061103072458444934289453367447395694914683247142160154303213001598693686216481884604684479746994537140273561601266108804320744947832418709287609516623113240306637804925016432320067600178810982488003986249911663198265011423989639893019073464839683567976367208160899870181584497333837780100054060809774111939871678970989093964692081192690189475141762256368866059394442181463319225734217558037706423022685968551417166442374684845495043020454618196408851036297953050764220693858230890014551717488853078246139010495150446102581708932390689005574519477927402778805837280857907069479908007357506483860114787184327019094896207418735975353358765041869335097998480398058236416575957499367817023726945946750762663501011826511537264960010969028383061889907748435863649440362972535866981034761340493850006964393308369336879714071805194066051396041321209156751884316369675757132638858271646785602300373932293845802488904129524543531610005527240652715759574422461232129081423823453894877643816341399070841969760282876340633189890845474877497954290496690377621982151102725033904669305121348254144671749621647551040558869751805240419133967359839957662949722116743790320956157068714206736136416259801691543677711693151256200293397537032299481375593828106071546876345158715564499292243460046437412189402598746551036164733129144822140686094977122789397871610550850117107108292646950084114975809401047978794287367530180264395427969306562722277874883671926135965776653534068567130125634354444571129999043445214419154357433036554437019122528384576376946779222317628422341484803756865596469351493726362867259518161867374414965336275831133191351296940444994917961270392379701739645929413011809929610555445498783137503990193102440612094408600415801603227640228700209179467930225734486209802653287490921466426978286362802996285614292600409056323854023777389141821888555358211285173932988606564357027232275908078819487389079440259424456993303661622885468651145502933270937934786158416883713086670956589248040811215846976428226407082610848338738500845735862560114396029283343863114333465940568689628344058105785437011414226297214665956076161126001270933839555868107922636603126294685589399701977617082595942918359508635402674691913285652165219464288613378200618285127114950141325955305426798071301488591466514223128136873525329594610875699954477378103833248285496427728395152697643119367693435261968454705314506185644085243724546790184875919095094479018842134461927770448137974339797574441838297986826331243191533074765435215973689823650775228375019738903300505251759821461035908494389668340216674441140595398732496447267437886745476482145477793296765529902463693757703966158650007927919307971182039861181016175038848130569365200765120516378113390773943442611830993950863213906941975570835463895201538844135028325751518970378007435148273475880424976882729447284219250899112819211743344515751224914097029093852701457722521193582249948577649306285977298617308945745803842252679515339168249835217146525820080540287520181414707458486704133382647638192040522091151664452232998143282202944343441339976202880670637067458795386480014683066986207690445727177672110579896792802990775469661300867181970917196468437305939357303987293602095093766781249079714353276619466690715124430869904440181572392879352831090807791175358332093369817238008527855813516219348371298756971125378219679225814892824397810075614963350139633021737399928697823384635590827488025726292132035986102373180769247102673408658239855374780434009247435154359636044967849794071167255055873784055046204183136648545438115008248694451023093372681169800069390704718098368251400801612000191521878626880186064023155484647693522561552674688284131717997300087010548693763297271415624399952782645162440679285884575460171628562976548820038282690361633517712725177145973259690077977618796158598655675598088590932032416356877980948544550318592734477051322266046559061645000915124966993316335479128097848687542483716567194358828446224419517420727359955054681335200825673964257128008722006210788680231665845281147144334423999225911895360788356491009939267014232913179993362429936589952833923430255192922439138282591523063210838537619127232998900107381159444029762412257428014900103152686217441435667363269250290630923924461097061954812876759177023481777890877551054288231540864544980282055926809528716763034748100137806641000391936677105038286624358419733385983534890526238815709482403180445139595220952637607768951255888006546273447804815008172016026279338136902352518335604478181826194213543376110037823220815339703168190524848120503451111858988174744131319833475232857936395753337217327201220761685897875957891150497168835871537614339299161363702846824603961325095252070951482273765208694879120696257488665575263182233684414452692539498216744501956718293314637287542353580872847028778538009607337157896125290333534747918565366023474744072879135619992307114528467981670103609715594636333466696750250401932901223949478167807064827925235402196162462880668420605618905161330223512083527917941761741165556152721206790043570339156188971254403228588645174131731902811866435616427284360650050025455832549237714829267799678000470083194809740547088464201385223662971898796083565514918108115429605980138584915026402636437785016394274611070215022462214723795745004101877207972537845531426226785348909369570964761864321513643629314776766535460464599928975958490593371736006514410300378270980639767831530035039688635973109292687784618996250402011989022696576229174212405782092304020510337339318714069204905036354757740174153531087909627660872134026389620518460078315522913644270588456022676227970605497128050163855153654240279594842167695051012649886861278912188876113699666428184151819664039705253274189526234962830501465569205387173239534205179790600765677263191570367726609215201626981358623855792162984957957418202643318494299026377106047445917909268598545313618605007472732200015916158489158579676051327647279170545209241773655415399041092159537377054032754973776359088941688997068932754178156742347654215455392946917359960997019320395573216217587377808434629150034671608224570410153304504006922721678226354609203671699838177925771108795069855290038926958210242230786183803057420125902330562203138577558420377609229980665575870148274069697125867997335915738376949024073785596008659170946191908290512214948612936342500652813600122848177862700969170577508099228968760886542322064261751045809742202019424053988568332531430645463875411134888590191627469482603461798463169583787698817470405505712904188202384336770987195752744440210609819400135565308893244676504964165472000805616827785423308708742464136536814287554349234959933303375567441143634320910580440952760848799126879603980783013157381562216075299546657872558069668833270302277245277421616817721216000425327432828577597935833147176237552435627063201163474556453549198883406191703855603158024683970786152850562421410390294701299543294695232322378264827788365237769870366221269562962033332858363759396341555962437984796268915081774913699718411874060480542354195119370973915878451321085808633455223655445638276421967807122825385320626729877472821588361094967140662383405451046336072125283554690898111212296024801355750334173401882469081883100302613916715227712420254771626973492583774080195616095527158905688611370207395425073881749965143719669819618022545263653775835582969809064924122508576764922228985309016387876683354764133893509764629115132111648800367823694546998033701170657104539351864249235056847996352354762244063676978350064377904992524959659833369500346524550169727543963676495318765098835950823774475551056785294999245117804752563890914457819592621057935723378553454583697989251607975452430525197257552825073821406248700542996124371089915626884636405839652117743160080761808008768468254653390934514925238761770158493458019486701316482800390981560898747608618033265223187781280157507954245633767335040586528678358669739579017884658151236812190398759211980864951021751168711420114562688267083091608289092433146596157172640571278071642031031916904909006871253958430780083539594128680921054006998116710252568717921895442717787480675132714130741191646057305514651616913515375092986139792172678383705832631237065758233297866204751025543471186976362598824775480524502738109921756784388673533654842249174062654852967468262786124325789834065650756160389999991789813540435066685336713379040890928401844890343546497181239434069239410775063802219705686955805697564048701712468558242096721428396372724911257406549099413786149183649848159027537149338920760651525341684259042896115203006463535110817045073161277953969067652368033841711186277288973869567893395874908573675586134240761636928478586604660857594467410915598074776794764268187688433559619470600582699465554542042587001852712951075803965559098643686184729067753368995586804881042367528946323782276541216730155657949767889950625989987870226468340058415600795372953433604967137831523493035766074247588973137717129726608957904067394025101019797629408306584597555353804138531228919377094571469759270958259733659002016097073804949757388873098799396580748212107291360099141282941993590006301589623038862347512385842832373289127531264603325911171935473720559746305493696050412537944260048864969792100539656100504249199883321123705227803773176746924893427575976614550588464124947281248441929623745786612441976030565867341221146440644577585221771668914159923664590389891846519918982142252188301029283448228004902600567256176090418778196958310849674130888763806717838853561585652345126168007941563522163578766318313101347772326608530303422284136714354090849197738130713169505457487199997756324202924743796484483687577620879843514146098804071993635691532445406157968541328649458952270044819327020840852999564378395631230136257582769804895638332996483872302615938407616370184251642586936696542144550767444422416058890469202724157076275702749566158102191241714331877039470177440681983223524500599624046554175506864667082437048497433394835448360775979508602308531478034710259884766816113097669782333540835790421822707834194585108482429853431793265792737799604825462618045105898690647087641370382282134314694012904145730229285428935288855138507947925755717854689402980270120737188462928799547982825124038637295616089319879109654364855052393304696635217789206375633248815194905948691127198391392899489417883518868096202885430008655487409109526371700513424671796943869983701846253825760195691667275812780387334137607576802423755418873806595555923301493361514281835548816477512910067421664723991070302623233110586465782295660841451582090896947653603065998081785420366750353358935601934186303417454010812409071317607422141368949664594213952455726243463565107929117132127143499882672166390675179484729583820806642959296633806440321782251873914704143853615774313834144267804668232097009476195324630688551416919411252660862088633149299041890935027666953887170568834201945874990240229422010580958572382738326922398637218568670044718886960315530911595234374735941878999214054365402375764242394343817898965646534437708186349994719015155987430809264156719870678798183190837712624279267831723736747015830988231386856541881854660612189033659251710945860319669207231536558320930517042692820879301363211076372991623471226396921726301470477852454602206490000585930072938369339207852856221073397488435748457789097656009041542690438535946619977202092267756333405753600325372498632400374481487298082196357530182870376780533870617243145261525668789995747220463606214992029424953741871613279615459227520252098083116098658287776464051329241334257823097471429440594610579826960965950116423102680002858034827969521142976518556127568457446495406432304593026186064345091214354070139294550756396839855254457736809307800304566454212186389275903195436499110404492591324566170964277435261623647798516824801101706391116287112719631852823373259597133988791978606252212409537489238308776283006323960428936910961721341646217584677948766101351083313405591578016668773196688555664252768930999758937334425010599565571264108843378251674807934124733576930309839057814493768475010973942074581618517864755496230492931941203295092570597641406095948620632993312916316094462701993622502882716474747423981901933894906709273057521953703061065576508932793150717204068259045454338459936672163672907974891390571793710682238560562433943920304692431241841928403358262400610174464684766342716476612792427291458715547015965197841597157426521048337805000551425586452418067574374853701818787257043086830020228077653691872816601362319425984590341104527353070641041857455714857303422711483661120117997201114783665403240307368641514630505577126582978585042873595988697195401574845224364274177319438507803752987958034570177219465285802157560069872392624496489964551439592299124244631545043589542261192108529423561304094350725959927466226632045516986454515640367403277617419826411764576140365901091722509829922756128031385028309217244294651619663733278882201851790142881845525868376815667764418463217091286024419235970733057209705857322630897633330272924035672567572006360683816619413344583177313235986586991022537782050997450775214028486867392324206987204508075142758441027597383501096413750760189431018515002169976278245028718278812626525258834150547193304299729915809348104708357763396753445868933656367575777527592880195905003960803347578557720074561224298916791144686315182008672611412885859644630447642697102798088526964723481609520823215490609980602768785860125365267233885052857331698068630543505665558145841067656480728418664377418179764600573905054187020174414348432951454109519065248591486177994427319419433512228106582114602426833816701087854049215586522561755231833064327380577516208788175882289351113007932599672475531822524110356066935987450053105803054383152222079914600625282503234162743477506375991209851757289235586197603149430088269552795415408132317872515405416575768945009908439455234505777179543673932847270147603685698074273083649053861472694001376525109571709617896167524731524921769690558069614879305459091628176130051856653518952468071080545768258721109724188863322806045550827063192921633003228592403770423035352450434632667209285242695432167534583688543856386328142016798300561973425311100770149445556562423829916288910147090538646522500362306606852034996174583035479034033273019575901267339915715670927267557995735498993841461397642003199194496952836108563627113528507170726471764240690841222216706058424810903052412208962924588657590624320481845160377223451144290176131229244562128933072287981933503713541413331683860680345766092754783089234366004955852114991167529783787803532793406028671366594086966772189488707390343662667569317782626688260199107681054866432313973957264844548464169453175706984057568486190469717324397197312672767411324684061207689793169677484424094246050564587827442359835642307932876925770820615643473967215622231262443036205650610902986031685557328565848248508346818918202141646058869559353140453288568770830446803886969156570195965086681363883847375839593805413488880365439108063523366420059953090403819187585281691148554368469262766443893406867848139892300021494396935619933330697783606238523659533810638302889483127272421672005719399883227929983819753733712867744877700399872995909917351240929881546666240507639306631926011229965005081624939066089011904789141341662909897534076483121268878590998675358731470566292722484191054457319479176485899806992994530213370034357551010032134720146459808461440667073392835002583028289080353810101957566958594283149692622079341265600676421101272523481992574785987129489158381894625967743277622229459477937376347924846611205963464366431639306771327737118325428897347913398469519862869938093691920209198109655769724637911543356278771722850004693541892495117672586451990568415223972928211490196087919530606474323132368662579078102335381580901639734044226339494696252404406704253654527738949643590081389788752524622511291715547144484993691026075176706512877206417109996234603933619119633563027800712774321579843097842268731715375216264000058859798035779156913650511207898852840630149302774059323395288809036405506614177009948723047530847257319256233240412551150136306460501742933883441500806101751481358199217613979205632665583086259010469602760856667100516435556958082407774025240268486778598538771297763136915113536301934929301917933644803811004725319776671231995635926023245995530497115124521233770785524060100856318939944150491452901282674100289235861673452641398759858415869801029520374360620054093415765172014908228298111186848289269002548670066120716971475906327211420690898717215101164398293476775579297953684194444688101273260077427472288668446048489978794630728909824381705759534479563342522882732830066887054473119360991403422820473296324627689653313443736058972424380341976907532136389709629448549264369385927088524068991060352059349858666295383835900538988360217705943299438654085305714986778854233767204448070538987823961189566056794292651903038037840232626936419820893629073449411463933634260856758617971382504011539329478250462717396766839968386429601626824976985648224992063959956563735000142133738937253967460126787240879315450181501218107658255744081686636143035144996735611085773859761988965765953310897739207684974098519526063469082657135718552878126020747677138641159216650532005339364331670241478714034660168791357683191857121246413347684036772828555533095359823183701932561028699622156444777528602044113586797807578824588269147413914952765858307528164472530021860067821343660224695510873795424030142432881968275843616882155389849365246150254790625021093803553475764594861808641708739871736893543945859523726754567087325256722089725054319798778241961167253765216767456075987962976622658163515108894160334881191004672372351440015360582692151049729505364718816888639536964387010545668213015298120583685396439993314745763132474818974299935406047517108794393294505651524912682585730261971942142508725615665127564657969227671415757297494436997723271404412901063710335437893323729302545715099880819863755300720583264116345577359796061269043375953011334735521414873082283152445989929670016972274991560572262350762481812181784010002743256801713631477485807188432101882214286038607260701954214713727186235612152627327116472227785741236832834184680343663600879430042978645128037568825913592653925209714910942952266935180526816682218710505025213418626228820265232770277687911393539711151663414134089088589414115576841620319752807996224448819453525146229101869875082218988736716171953928897550430710399318967341636890773203419344485219526095705106877491144665087909491712413516715321290575529069995129968142606446861323595429774259590439043215151035840324370371774442853941015867969041946871248007024964784203791233014111994334395999742144592127004408646313990328575931611748325060600051935462332260026938112656525364916467473148507038355571767553503953268363006644611529320019750629847557900888002779319288129411442776242218288567410368270085733487933267010481545794973291520150578288383828801439703139879104765106339200157495995291267980486377448193718966066887485010735270604803925889053292237449765891169694269909776353114724885064835103674321564470823371122701370572467331411144781344347601299123941848781289356274269136213516168687199678553490396793173336478051901747521243692831673462066851197252717294489215472058193837833127203913271163613139356434299959887385162465881790343853215420879687741786387742105061269560454954203521231737681103565591269591784321469367932073966632547058566958731140124448102524632870165982242713152373244388899079712257189339258282151277119997766910200905176145184776566330020111350526250929735075499205115060561779517976519766472344008643853806833432295777987051422834739502798161499558118523226237430092105053517215679735381734822685681162774212566998632345189704072248178906230476665933179785058749827221867590752338281474766387219291583695768532178704745897609750875812305005377998316721998738676048942794226163505804820290925313755715414897995759095633405168650404289703223847496704218090078901194482066307707521516619989868001871252210590305682589661416797490628987547018296279036658296751700485098165697678571942010576602320940279077570068263467545282643897329162079446156566742476522824381064217480493483535605388139976534071211904878250758846071393766126686719387273050212936973983256074315039764935585822394360877665773128922944053203491582943244318504143640471321920723357928890394279676258111625119674438368829946296851798894160288851053539138541318874040979475312311900615792640810877831874679261435210913301897171625385510615485310967689660579460822150513010625253080052180708957925504927681187445616067125236440237726220831217847053267418930517786766948555172449096181313921202848368727364837224123412640356409046633574520766854483159274570909369858499294175560207301957209490980828707908441232559837001635485955149731808596758559170050856881498952471628248659770484183125489142768981358883764457203468073000728853925770295519123280911278193888649373570452050295187878007071049345054693489162325260439389195075157145856662468786178744710010400215279851903050568722166344128466936757519647522091237712119546933828971382223296544406739732517799398066580664536779288754723799846015550263909328616858283005855983455320393185222260267843592457589400405590230011692630348333985816284045504152487774013226313790791052872826416800613104366796111850186853381713910014659208319937623351891731597909171369383784058048702730619742320590214447275727245351420031983000050971689142703128280265608151738650130636347221455814201053959986936473323808788321131219637702194324805808758122749790283058813079595427236326382119759445036858238792034721323569299510856415906294858001913373436257032969345499592830667033500500957153829370944858866227977945369326635073462230571977977639961599983028920498790530403951661150874353326099890452341505458040570606423937999347391266623436862922165727270722274013784010549846827824461471434615994934843639906092750143678394548069419837016250115566908275384455017891879609999317335135440997727037451170796630543517435072075577343636598679121434503833522221962257241976920395521861475661836844054617507030978788955344841703734693379555235857739297857782548712994783508239842354989386160611938497016886404857631370721803486435029823794444295787013527297737574676790856892802620409515660051185610325914875741602571448024463681274937660493048276560267101724514956832060876099404318060754024342840585641752390144838849139466290969534784886787353715090172496667201950318521152413795164255268919865559624145149243528038757034252070415910984645720589732318674102238152669944928931002108396821903419952854360562578332456471464362374493467446153437524924667788898097338340884985145689797076040843214208850858718141181768330878565555993960080341512084350871588563018717489470583388140566027295351091412658942391875690479654275919468276307613351733315111522380046951817409457348709292998818326767572132599620213920163919968871420489302488224455055660284890257803732208972326199789215821792791458151481393173361357065052138537985324076826949183293861821406019556622371416425058083163269590457065225632986748796785016161542544470378322406513505961473200338122763090489283585415082109788032464297067028092035156422606568619472336113398472071456581698576123217606708048649664332785641966264052784365704559875498678220361702196051264638883575601248395267396741728005247654294917503187086967687054374390761250113985417207892732625418488640966768573104793860837763714939546441116757694822962079623776693955655523983607367130222629442404996876383958069138520828745891379278115335890981226207136258914776853520229267014553093998667763576833652624017438690914796192182942648833571256904447820030219366104461285813869472781634591395959728707444486859279939643956910556902777382997798297762717874479332997750823804044246696722902469241173361068086573556798962057066473470605341751226088726391386753228126474630199672320179539222563053381499903166053684179641242156055575673153351943020815038596047273488135311881709240810801187549299481279075917120691769004091775146021503665022937314330743495564752773599136245536460365285397865567538529676888476516107319869979233096200627985122141364147454708522703308776691966375866914156144871101025379626641745608374384293350345394741843767770141617346629511913060693268723761436065483997889551116364388221820745968265900014297583939151209941808218056792300154479200086367887223401709289979078062349791910370197824513881422426771354045213296137139571678109516989775329019854882851045655920644857319439301063713849154296387779232027004501484945666063085577001192925545373064395075736792041169497444448692980408634429524489675314656603746038480855574275113983068124175239879585139006979370207670769104049100057548984743873102822380181344758442137701806813302658668792086709760859896168280015009639631636020241266966027832960497386213321234392406461772247139427098016733351515226667156556129591303093276689572913675930774473450584638815571276254726513169202818940308618422712505619954794355419707139358870591473844836228685986324581104285136195890034230962988685108325382717178221070480390131962935063095649299768023080900220058804608686522615361305417454301498094899299940417613220502770909347289046909153430600804061259301563228969366875334202637622263740301245511701316242156533521741731184642027579779313736845885334467093459512134449139968044704146658418451946275708401442521061553779903301833069514786451001256202137299348405504100521440233868683098205935985155139713338974932625969923506861740958606977919839817762011173866790571135149471797854426253787891579531768377214421946225216425858300949141043819893931535761702898076382032904694127204688197857170533453946254960110636955300849381636732182476169393286100179778029371108027308003129446893243639290527064498025988695527216592261364932479280046653420573903637860174248572522278342742405695055871277943658830178548199515454628151069066530392680889824981126751211099397561496739714039816053749683468497294571241095841534854586564988491744388090786900882160846478854435636199658549026277999530672935315835090682892992457906776611035667657972470250164750810556180442567602921618432134664741507978542370156322088508322654830382274785570106998072748575887437898071092548350131645037946030910098064767442219558022733484126837784486942661275368032088381602372861216194887088290882862443694191961095880488187920536556567075207524301112710444330547339738734769222581298298133022529934762639907943285206048562544459422897317879563907466008259117602194795495968261526185339489513737107235437763217810748754835410440708866339794558892032307414367735587432990606154738793832958082247549084029792212504190975444028701639996235105517692288370902409033334620284029868617954988558666595625975684764519243637893988003449284096245836303217018184715323187880879025307215563651123393678483919949523809026976361060846231375536619304823495766355259130930545858339927778242636850428635068335515203231930921396255448789513481445953039224391687349189457944806714087009305132617614901141698529788327471339902752215201140874085551262736885994328330301386626915006983789972084897933436613465242436908428738801857101811484647350637879191096456460194030898254334450753061708805986755999594828212049904624421902056296992135760250249866159798353948143362488650535973286182309147590252532782365624296425148286959046623152250288234882056997664061950966404180808847248842133577723164610063220501309347540590971918646150970610591239907032521911967616895186331810392123695292506332558311169943196054315245448583813013034393350957038126825790641609305108157315410659233136798832396226425891132880039818086990139485657549419264169978153394698764760583322527176163861895197881288864156482150946361675192394123090301016800590163750658037050074106730487498740918285099569130074588849991855501876023783825155205549945762768845596752505966672384504828750111520976047826047795771216974422641029017661470652291479854208568730210395613435770061805440141643867913148211240285628348763609308641209356020592166584961019234043775717804353408043766967013095112787277988560368113924696831516837373654558742845811661513659335855358347261178311133817742452092340366604368970055164978612372973821583274968151381604156920432283715156073721846808815229444687616634742331805012797118039635871851238509785415343093498399869304850483304251900652133751547350698426742323643737781427002167876045899856955557406832796927622882240517264459647063957916190728134720850315230121925691871005285727953679645821470769718115034889982507770580886270992735261455393617481847256362162994705319268103070696539265808828414224912553086926323911635436494600269470926065538416049306501534847221389125338412947028017508419920615218993970761102947355019726353966568196704022445213227226864441280937878693778852056912123756179852692866701404871838439984286001527243870655907005219212160736597583012691585132082116108446461091113886000240810327324107100051450008678631258254848494806989414144531140573833301768722796352014281938679831908260964899597801932275971729545697926720133148091090250555269194733443105736111276530336862886894399810699675341774892075637029756249293398479226082223199655855190211329496829897751553297927371083880738462890158799774728339511086648676738383611171008281893045377768617663418943989595685222220481618560110721379609071274467060727478071756954709776038966650736348718017854479933831653234368258103032148563943690224079773845867183730455816948968875112826984486217166145111523406208634754260322460262012783791468055111231593086368729204966893240080719006189363927125368588202009691517487543450310931704600296136484532934576548281683783132718956453285392401972653325060161161588420337660226058419175543828870072689255815203050152327185191261286501210970544173250840325838752782648255293784373781559987912183219364510482539589033052679367894978538490342229966595324390504387791166520699926022902677543197533272647303001897357076117584495797245302150001947164862097179834725849206653521981649332559963717993024332411387130209245149894790788139106051151975924868854901470942311005709870891928295237446075865149006933143375519587210186196251657090100531038487941892828311152783144742321254100543114367122597385003764411991233709248192380630273561270947865381689125794590832924538716663137348756737390321598507442097506981019045620296852948021103241015862362242039811059993184149986526759279670582300740199306073522600012418479981166104811651302387768870042722197169315845670499903000000141778303326044192890458955246443281705736544987114739721233446584575385385868446052861909053750116722770145510426401351211335106768412583325141186773082718701447920567829252436961000705426986254910160514597645858869645145512659869867725029486049868465875537930267439560309042166648220057732714938162401950517813060509055706655550998396194463447943357285506431315056721474434587883930194170332119199270223877106520280467439684118969107470928514290476845363317005860586597781880714919963969372682071991644566829613242591628719195735570494265353200167017142011107132588274621807922914875621538338695785428811810524107437750431907983328294826733367571127216140959124617880559152797470790154600801881112557231184594368796408574315094419820438410605082190419588321528133153280482590511997788763406770046814740271978312069088374763266250690157084005286856939345296047832660266624687144431299577699543253158049423308089299022757710464351027867098975419193646473456944414002356471485495138205013134607303584446685077457426361578853694006610031447467163835390458389457154014325379479347081688379513234221223096327096054368778482889544146358472035137327629224366069489117456235742148583337071506117269519375563305692239935556555648866834368275831260351689299956876726931268412418635575484248217218646924648812885455292673419561864389613735133516089278794802295638625628076869449206385806791228733973723850429643082132950152763508606311926977846406450939557931193569325980404416693151134194615616973690610497355477629667456008040182036060729938543008697774313322639777069140782538469622350160466560183365466334592481254651837321635780298758777153563652283140500780370264895585115324149580416428953056656820031777423855579009140452027724201613612550904644018693343464657795316768228808000403464362351880975691465322858597883828869770607800781785790802614595675189157588283030931188836327213699265278661165296660916513029161160768641436672413605711222663749278741219015625804138549231392129416087162226027064308097422861498592148378490243039192750475017461968894569313628692723757816122967719414040942829645371328026369358197118646410226580751848459604834930192991337544120626314050001344684600927852200353213316040189464411323167355390842995116940630247238478240296631802287833422444757516974375920664797472710714080063376195296909856276689990238454075205730620825023950103208013157046882709717412330340053462567127690469334811869885765138927801702084336877405937308146692515845707789749991626027697487327491556297686446871614016250449547780426676911252340940830751449083978370738708344489335956659735889679272618439492511955294307677874437389145915002362562431001442973443092768067387488642236679596411784719830149407880124883012431633556848119745695011016501370905053949481475464489999245754507470667393880882773262168206588348408888496988730732685885021329465286037876113782559777259661240775270301377945510249055162814498813309207922551218573407673016825989394696176042343428233056601154639988225833976563295205322621910492198763779414338759532943452521982222103072119890079583706031076100811101991624552153029516637737109613279416194907057371811121598307008925392074165522482808528548050105463926001851830972171267242994824304563499321089662512505454104099172135644464757089621478847713797878500192703904444778479794455265804852162762618216975102035926403336640506590116296138314082310595689464981482894110192813388927697529798175676870466846721680605114645657823178584802425970355825276186197764243953554708578631649615877393483113087905974567118044914019883975402707919082192902153239264486189405432833333164238973676888645120382542660994222031973120998137851109876911471064732378129237642707019339705219481341354990568698694225687687880959026471390752712239879983566125789723074546911888657914059735329768518608888220740397173669115147422131237749238813967253051689279838673363227853533096333995107115740976032274380436598277216451009568078042244734503227562629280245243887598202766542400839985406431305717137204265952862065008585213021484491860644736789273440451617542419389978820249704384329105805562825016792568972011498267406712116638453845114255037870340196239545883861781555315074363672426388232464453410592380956548111971204135427846905788365373362427572016920920685868828571123712185455261644868049921618156713294295006155045244622173833040741462626573550000684258760981963066192499673919393648653115238331076175088251454550519436013402149663940232891736121529067590751298426148641676377102086623469852460764386777999290361802986843337045387811598389217032017371906954973052912671150023951834415123040780385113141317900958590040732210117223651002453128083400818592827443649716908606017039978372429962980759745661220672272828174824725135605070015027404053388974670259509841230712769677931209331859004551813089991508817860063129392186569139437371192370373777589459031153470177549836611156568358809670097905839139582336903621160047159260566617985783533654831679561010968306326334374632187318187206345643740126175161511530735435903201418027800251258543440998297632173586029754414918545741176031535215625065442485225260292682109557436123102439122188420061368078028833014504632129075327924835584462366909717580641114257757254803799254655294560422945214979842628875399172589755133518547361908737766396665715476782837007932215242573591350917010422870974206557970484806511331403461858241018489750067647727520929077814756522302230018753838693374419595696013508754425995298428229600931818769154674887054037125814483948630623468968928288242284689108640306665067904601890265632363967903559888732153540618789786678010064279609230791526214823815095904105267704328288177309837951275330634698054713786893162312236817750321641571717723282280391180655443626396567390142303813315918943708796094994657209607428692419373548293524668668834396678064517732914170239740800782777819282805432186941775430694804526722602621191340731716429047421167691675077168229264199127880314826950863379211513652521244471651248433884517423111970660589257626714356392682403607414943932764786945066275629302776147386328735747218881696586116466398093880316836853230153755989319204709244767298997806247745018074618475896907019234375771955692705604004499515026889728164510689313205775984206682209610648524509132975063449552386076716976081543454483539348243659022887415664745491524803927033474266335301260211584038168893935180831979255902536109261894102863329244242987449022152472835050738616880610951077902263977587887730163974558907973081487887749079243896561282142064702176775428601321178498825005324732197801663980900888479118137941398081100330852906958758804997343170806091538915708674481891299741686419723479300282739895768930700420565772763413267659997108246993717033213016987440575094842220486274303382238977308858827284052126767111147954741317119393396630412934391134381353430697172809092172541749307671494994899341892808388301677736725341228288825248715028246261956500241940387101806653220819923226209248615350177448473844096319091967284065140602843331888615633436657195275760065561563291378442763062879628822460119893688132690188726828050799171273705854394348066841667102041406862349539204933795948373563667056016738213616616290925763222909478227791216364754606427561284363056825032927481145674335111270403434468197304892973217175012329296376091537455156755165455372851695742769850474581592623572575775607273727368606008941066210396952425696137358463618287925936137034095503281651940757040649046694496615139827549548184889908153230126497644718846614465084878633809520074723854534577738790633571704124299068921060060141010655069784394938248052344193024189959444384928490454559837455481394270965709101433417224937144877407370518379203929637981457363531051158878775185953410736685384985423061666619402067163541319642130167805332759954096112466686468685793813213920889713698916916113335025263905016955560383276681867437888973282397764535451471958051796361476633214708544047471361719904528234883577451048844609940679860162476229587726828820483493790323138742016242564627709665742701041260878997917837247856538921557012791436943510344057876443690301865644095381029672031569512945545368984703986967727597299204101957310840273469818591872437918123826492073705012311977500700358039695858630404888537505627606763331280795665799405165400925141297311560626650083652381902890492906882027102758272230823925948436571471257071407646734434846688188307683904815917797479754417157419248718599561258124128450807473461419104933996273830558700796143865142029456637285686778036302466276759420614151411320312539601360558529308143038435222702437883112350546908768670288692720812409859147551201870455457122170280250424510893080497054960699810273832009322485592582235456300040239933856796314189646898564506712025848276494209069336859629074150231974555607041175516811276665745890449981823085439718959257206699835654961869587842085468150260975087808396390314281087060751914228232578335672276725418894455329730945411674956915004990907439715168939049750052527626866068874309789197836254041553263419938471456131764299838371952777457372011062859370469440257097949783192579041153265872835285519039951807459118382703500157514428734475823467649955697554781869798462015217740004982080904878445562202430325725323068358728360597729138143097430921838795833735226735605989666910603119859796200468313621281821973586518963427581553525893518545399682275496226586099778086493342053884260084210979269712311606785578827804836707389099176397151126646703418423717878803725243383559977597765936487788326382941851528966886999467750755053002235989408384317893503799558962406919481197882363942143174584498331368899085843669489263162428841628682217658701860149869707377736107741233207078304512453051116137811839251702521163788969089057851297753222798756827559442650115415224949920358297384524610982967462613627617609913146143299065738791005105391125798634196605527653795103429576998029912584625011350764374711723729263025941581152235782095570656469043782196132115341075825022194909669890337456612424171453479071208756790258769622637465717754975530651083555539577995066667250054785261687239313224042720333795404408339994861553256214289266661361217960647466719725018419007671344261288625213231693077394060927261673784865761703076844919379222105014306248452567833830519943556112658342677338604177943885927872301607005160572973832591819449786851379228563690268366602994662954167174014820106365159686317504821585390298722985221853547907485806177249009602483471289148718553369869694563540328107481950869166237514253201208987426903631080153674249305998789482314744129073925100172647420731785828414156268928605733467004289540319868468191012842242762288618547464369690620015894837083556527836340256824734941609338570617953952234654067841401166514325380071937885058552179434278053038875339582460292703381561943501197177652431570499778458602765614824157610882657154455600153404087719594712007333036697548667414962196546145819291000031431975401422505762633819496254669982201705077874790868924235520420708494931169229075637952645465206492785771393538457098652556072569782113178693005079611038141267046820435001161196960183052216337238432308742865582481896058985047342715250853318106779463111345688661866213777749897498850706641077881831526865869831298464907538087188072464692836064527534720314930373009614854164483485247360610266693576003006187220983774021683838595468849787543077301635806205871173694976440729256517108962074801892161008387275766295849820302972880391098605224959584512352692378312570037685642620844313168392928213010616375606860982320448963159350685314692772108450686954840719573266122941010418783369253456848917599996187446791512793255166578797880323813814011007160567656588411088062564096940235515060546883270922014379681050728749778795652481464762710771854956992053920344704007644031739175823155640616852727614822341451476711234722696473988166800388770444432137426450968842514533353879657351585084571244735873112661256906931721210271851628146932349755714201853716480084014229312936807726614852157747004988793293902408837535294555988721220237918419480723940179156170364057170188068120245100227448963242525371870188260848425884887068475290488146157390397526630326422379845268037793745662598619151232374742926682400013412777189176267286352505778427895242465344563322124525959195059313885190476089176077986175670211943075521521773085832170513671503464574788217428602715769217306642293420960945463109544691803521983779336305435652045550657505593621578998049259856975118947808473578173661629844846775334009430155202686182959067856655315741121661972187349502021868093626313176169371013730699294863085703955174809102740190472579619173533229912634208323029084505333698014487061269672036928604530932025106252296938657737915868896831120829064587729816435137484437060260157725582387205798892568917717873371190568425743434712708869533313568075918748729748413655012024114787549633705287706486429592843281557123455249802884153565804044467468210621505341264876623428734792114995603156411755225028936020829036216869880492956521606278407188388184107368222991328587377813151189014708087599781571240894945407922154818961452312457530233214965154832258701518563466810510456320719161802253277557533054802431386801203448093990216581254503688821315091813695227772329194982355506597742193833162432351116349654250498548095013568206957435687341434320941995561377116203676035389114560816301977414456943891622302772663189144262726442270723119629172280453858501213802403137651870061727215001955406214638078269937843766277398163129645580771443381503497523606175796664685904363535544816717786933133138775741938753320249619495444160614975402374266282548889513219494776595203273500632399848048404276436090781106725834848957642747910015372196473349474677218429302290601066050024605817117041611241019562074903497064217313277618207329155071490803789978104456949574467987474507008987292539507300757597408693415758513284751354285885472709319969114621221926784809090559952774082996975894085108557473202993185013024005654644585042673011697808114617869299019990918377900940365602861890932187773540764108214041746912592925845269837725015938014373602646578877519236818163484108488875889920712474450783829265505494842681766336625453931828519488232479851285605735815144677434167254186530206970319350206095975359341154944393432798836370685892816937922674978952998536633420038023246170545185154413849256479932900650986800723512513373542546071091855546872396721852343538119833868001778362330478040850383304173233207568840225697136631325415647911542360875739193274710261098607847523413756150165691803297337453194989038321713984789452418054167065076525093190273453466845235300810492268962471959816930903436395722291730174453875114326539662256856081163697637672153360626234856135987143798003414267846139123369175161130865114226592630980392279840483520343241384412176157563146869225944586257354730369168041082005053699790722998528791985277566765208008757856786749359172446390875989572346681083484847517749880028676342988855373152218150388246280257788044323077592690584500548515226647196622143098941727054511847545016777928807649776543659328335666132119582040272361212480891272455773028186061172797430109580847183901324422571582379938923169430461005782078180768355331864520489006281149321875277955610717974990707768439952028924285643357216354577387166167335054263826376000068208828819502669208216754276459049201557403322547984228868976478117132684579991633824136877428053670567902632005922571917646700422797788263617748701861783221620051917921558299431573021270753446872099421446450165571581840898147715599313622962670930592513504901378914459027883227521985610760180369046938560127292865156031898796432427732619479358605391703483235012120376618918770274190218690538141870905493943538259971318735148498507199983045610309630599157363658688860929338078487679346716436036813862389242154458448824633740550450368862844560388126373450451376807429506097492117854890764964566517445491859484087900191315799734706925843066432008927119656242391131905146074261315650730714887544948687925370855391859914763044996300453454538402097562091702524707035488177708019981745046851376223974362096510522567789146701741460786838231400635533735245721789948548990584174496528877294910240390500231757738038101388887934397092774263202503771783793909850864354249724499502248490308213812331195957206820140396363241532094128219195649475570172618302448874283134231750941738631880813118854317129818803861848218432032770607914754416563853680746380806754171632000701937261649262913124214862179080078517612787628568815092819784696575375871739877737632681865761486795474633601669697912011095881283837378020818766660534593803636381705453691974299382728764651866708710282416452671985382594813245137599490769942171400937848732419314696682543186426071001585286592312495089211761898935185086143826671648473588070192349659421020613811481331516511956859238896356082032235660260733503109534823081745490139435947887963317149088788309494697629864340196550751166606764334976266630880485582852815598490979337772548551752860963666380620080013485283272632421311930163159789545268247828017549641419050491883321106074236769916579309315184618496045972792151554397010043835462161278488332288694283414536395341238027821886584910168860698811325256493981966902772157855030721725919052708569695266278826775345123357917852298139732183295675562688993688865560843420059141156529801735809909676593489354536808127938609304853804079885397210506966263338976863067525083334483355929825208316615836597102203578894136018038011412100804448518076549185449742637283590261737404557155973957433351635671133188322097516256621212102352445329670705612117813260854565979000138530095201746010514083834958636780794228569999241759855646940722762166519801307743104619913688574491138790648008232919942962023317913242698673262874928456602322267060057750432444459530817176592920938824332973163573734322121459356152942549853723151372412005419873783021967154235782657936674895037864314715267001057836461307727344378202860558814664362895108131682139456274852681106149084515263636159324946590201569622378667563164296616300746898771893327834469985491312524211296535570438040787483075444937246303991956060661151793197960537579832949433712328131032677560824573879873794908945313886661527319223684602562512166673756543911768088133002169943863899926345105849275752017661004429945413991985652465473716952430051261503867519458041193921883300653984994047247500722109947745586466534125865075931014535541674302326631622377295398182114583499438585477633306249455024624186948485552137181549634446672880964294672009948816257428060981514054462789413429841209371120588376334910634376901818425918303310895088985344451404937716415274674309950642999848632273604849518253728922324080558702706185491080079880263710489225650791657890024740903949910653246197363150800788622758119870963420042983454076808657062758570255601645966272836690037878511620505863999575313302350508622432754722852355847415733489502251292683438419989010848418255759331238656784044005642975120462984761536068533265122257271903747073848927384483705896725867543999022879189151000918965136391981693748606329907452779312727961642285049594294780131668917836572455759029987002942185224932352304193927237010056098850040670264262527592948121774934161219921908473907719431287422548205836923831747981661603982985546139847066401186128356540344741995480646445268844660102717795127081377888434909264991319457892756748888817606468841825991469241871450003994833439121819141278572858206195479394636991467777918786270736064400916459206170710201143332208157051711721442429753949117120448145904502333229642896735322539877244433446204719279463633897382138301483232284744654865937015347024396723746442491672662714898815405615388182612999420102061511555269008749204742079994221521123215411739708901720870325607495473441717682739389041364513846667873237690197132696157115528599203717909347810153832620244567437827848566748190464569233924630478990318102715801103386941602156918977316337250219866266179169988554670469448622446284836684951193289290808276598395046826467048036302868066657125482028016478834918844186800074708861327915919230151423966178272304611768244065282517347899538444463164066672305242965454192852686810047676202914276783081210927504329815584555483215356960500929556917374363943591567419564055757268833129300780258682814462882118885526513690888856746242970421230450662543484575388506489025802518155937120546562879637339270159433889479345171928578439439909311999108461256287052871922568246835706112365182596019288405010079492909351815271881317471204917465012283210527384582543899418674528202705691360179207573724271636211351742059698026845512138927468361361164176479471485642366933889655955931361036976145499541665822318838221010543322554189733895076889559536507959109108132760345597871982987786515483567909331101937650537518818161269567863132130428073814823223487310972194835220262831773094683334390612688062090603774062666169275267188865591748381469358487973507296241522874433533249760916691784546511986862110836209114175688402055180114104926927601006517372046042050565237479656240346665529949279522361636658526298288690815417593458504167444516937140899246973996514150782960838362137795079032899443412653944433125868195878541509404817714529171011496198019464742831128554352515546821007281013651044440365564532414012730853569178133087739512157583810991540390133331818678557590602014824417813709721554236799678912908265994327534018501182374529502712150357424677677360678019635089498118400287697270377916146756794498053134405389915487168725563646503756236360590957513338872314053746976431173217571522868584752267868475487102840247117987138686147803132142458904557097860675546235420219289364606285340554447915111066793008564940523348505793753610279532114883716562381464045479911335394016474896721223485891887542297203931598903389182097992307320780445218546080403811667094279199007075510836686396733080915346073561306021445915862122607501381264267278522966122388557911209330896113361331341052309189476486503012765048394553236013288562956794076145281518240632811098171911252759659633180150148846811677713746002828460151181755695079869172074958441318947174100928251291977905159480153689416870415809305081279631580436014130617978676693086915042963570234633532334120377042815492877943722857548003720752316829810544897295621240728213838230312468600773015936041353364160178187890948803035168093728123727026711777289193990465551987533909690418986205424179337395258859269319725713630328270126525574858338667395651902070588368317526191358070174523578226411616820516792437610489132268847037753995343139195947449138183286978463188624012983474204327414289151099907456945969870886352728011557550397078711527331685706774625803395459660283358535219082153153505000741113073235782600164870428676250023447672720821882450912661436208604026851420017005935527619071294876886439863150252066486721483774055721886040899111286931517313280149915451725767667224069434561210194810525602905391846557167286917922519928833375345640308555835244201719345241188935612527631409001744364939729995492946333970037860751745836134044271391768295228457158064989949729927948403754562678824205594962394715585589786913404960196672078607152556845480964481683813357353429186383892861238606972946995619810357659411871151021277845947911300048453593479924298621962128956815146443351635430516454860018922866493588213896914570808373387972877955641380223375317721192478238614118869226054391651774664937150504427714439089712923707339286503259368612677307425705992245957430305832376264279572176524752361858759865587192279522971977587561549382363261907237927754152686219807702414475421604641882984136965369376773754094643682719920664754275056408512177746675932170474193111289494077331279768395590342850198678378191835280274336574310393308663302246205641767926912189072214984103227883627205171263492311432196479262317844847443542246095983750221620004106731595639258229830258044640848633269446058268433594194443599818057973870051059498996506098594055992097091684927972485635482911009999361481495375070396838372768873939593545276910409768421707427281668389579457097363015691397896201777218563543161082122385864440854997249742597853615160631714540569164785106892098509177980113425054390728239559559511209122650321756648803478483841021056037164296442782337573371180438972497125537795630588326326934362303772418011242736616376478828542299932877978917747100423442204797464809906125368224332590299760995787219721878735490272565645118541506110692437678904303982302947425312458884305649953573014989146353836228587253726536758256945787084959537234849592236922954855571256013246673443812577969116449464404037233209427570648583775167594587075675094563702111266238779375792510095127807983098674626496989052014910415758729389220962375680000427578290818683881073072295838560501019150543602368017218588060357473102580666508311372193516786814431049382613155360761886414138391647547109745836967603968841360243916895117569514319138890280655658951888534140675274056669131006376590294369874314502794748394909691626401862382377985733356337737826914737872238674535089481607009862450157091578761691853813966673306677717647940129932203725204867863112497901627409622172744619621114580023948647082868728456804712167699821017822772126262623969195679203101209210463634204142090659218542307428418663473664755318642482153519911992063237742267006347601630175080130573306601115641978141854918445839585114540024636585400285353539780466971854757930450453804102891444769229202771957555101495680030055430431059172836343618906576494473385314287925585025795669392354599112241012713699254938451923487097428327060084492064779023976306624896410697958818844695226614778346156893497256957514769726624969527581679138183691533691070887052710368783639929410667087464277373811581298352595349791544389147179259750004759369896300343393117105059138546850074700302495559074645611893329443224307308638253159326661938623613662817246712917894941862721112071556397270140750523905468401817283395299324998336005616482249755504489888815860573904889508691513487490171298776697612271378968325354820515505329911487889763494608849668515471101444473222105692491370345005553903027797389715768862156306612927892252269544010372271418669802320365490101097010751826293099863209600461637246658972605183699944244669210635121330001326582236456895582684265199409420960953898421621672084932464026173634748743930844171894360033321158387534125066787223794291582861061831562002616541227381112211115113299188151972076691328332252780552066393412690085313181516658066331672955731548609964402402976675061883816519959183107676479318823793572520673689851878471611638275255433878270802658743470528722912605153163249400483180347669700621978707433372584337630324881430573716181608599282494125683754538677623705355523804144473228627304654834448305224763469592540915466678198414367759013242645175701594356406150179522860001045970342926873884749373614102915210204812796835296594465029495370413103933764049025847951664402947519030325005921454002077852450533987096889016374776233152229227220477107974803492857400603722332837183599002819324220606441528450721761965245208649649520857206519182222883835190020651119416147205441484114535844404717426430296746576971307911439820619807154481999438053115340938659329986492361205666719909475957041505395547178541940010516693251287377224246112986567580668661314332053894252925197519374727558344617291432485627255884414005068341352333676598478465229387520164505775736532092781428934415676633588960255213095414383870103535053852396701884743660484467123215464567981160462381570052746008325426679017137990025053568707598456000696168838823883975796273330877417274380081166312378198240691464783428882079639237245422206250367699140505044263502408364651342479396346466453930038770702748890613037605056561840530269379918033093925217625210148583652852300975878703033047341276610123294283320555529130729457520267780226078998602884441717646344408404168558857332770858837010365116099429345414723304753147826310339126663501568779291995558492169878721259727282124949627029164004185700739957355691515889288762992216159752796242352456133954883329602061102057848615061540810800299904543132573457766308418815684794935395609068236396400589787101241538986080714510561968157833862912844943218317654206123800916311944649346800679023050750735517565583391262206097178073498585945932614417636154155918992789271483687996166949037969419109472451263476391675938770589548614072285916582652249098801316754757184114547290504958136916087793526961434500014817199366710473645245421600049471943025132155158831117026126329179061046775127576274923126163694260836563504743321211958763374198867672086551630416011995167900112530195610697513795386810091213013752852626950394574948733246379680191978772974691913130750597556757851439866825007570354464005653586709993105431641362375249524463404104610157735643664484136788504891738103159370861505940769264357216459681967205451106627271819156312877712329690002194830863628144595009968836023713804145651096841913968938467264266920526168456834280551877474279442017411790605387666359694443389504819634527277974398547578241531921691510933704765078390336620176361114797028889209758383596016209349073009413382125672217184397076918829181167283851333807924797882923733387342788125132488108354747332714685981748170793816850747315968248625377958721803452663533926590542807446318841457071724503535836071615537116940705579757265516451820776527023394403695332980871266495437325541707229367963312271512463136612882381630385604114982058416329999347281490964994960411961638315715314418406913557646821678393071669679148092599149249876807722347425417773411555094302874379400684303690876565242192861284045255965472427262280309090729321529920179294767778013784632061393108860967719036310728202459701407044306967338940093856235693476253551084792895076952808211224321391910032887524268595298130682342956418703158163901563365206694661931797402228349507495432063234788222015920181174626914848670218969547472893863777999714411279313883657480410478034371358344553241487594238354924389216692490807535781361742892704972947595683739748870087174194800474922414223568786372324632434302245717617744592883863772434808681399611132541412506540811649814563588330201108310029893365497937144643277644074398355465376935208317298671962002752577322368687703362719321604507804491059904659878750084600356844356942770100295955096118761827384604686226069458543462599143241469260666759427503470095430340852665406117767376225985847038882449413145586489975666591572610708753542957353712772217093879546466049432516945571024186167198118480695489769338456321750886186017714857301187077920492860733347403784529627796930704875775383362737580970758749343945294594756198662856211409533001502605559768965818655153709919900040315998781473514659514278984742275351460188995779076212669532810479221360250523750168668636312191439044308926515028250451534091768958227810870662319579034703381516023285532271167445529035992487202746251105469557232434883513059829410311035200132496809059060410060706690388849674924800678571689179653771497946398770582670169263191882745846040397951086565332966658811620480606869343890603591245449996584879654601099261176764770546333178354202397438110889969413636014741279123817607631792756995489235770691403837665922308243740649681850957736497077296950526421029211520253538814068673778561828039532995868905094576386028389497318521743099220974225828583445289898057896912415839262279563519424520951466074258051635435199032735237796902215803472776430226243049199233777522709982852296772843768641717181391163888805438376834622781218324024188375252579876467860590114527353029303648151545574983580980082112544451184833067973206992146439213406089348707214644064291045808852895824412582296450505332406503884257095631558574501099858326576525805524574362491928960048472224866759677733687768335312237812966722324494489112390049255923889868483039763311296972495672226807400969455008837663268916339796809783289260563751940980099390224987104169995218505317927606811190514471822355146258356990605642171714041762577234640459450318888290651202074478430795347564833286280525627143783015639343657967203988217421644290498998086339483802310077752226022659928461561970854519311891449267995585039436250447016593326906787214651172900078909454117263998274080018683441877786544652126793035075786113503950786438546624434554552542334122223395672789743565325189518455161608654750493075987212443645003149439627530376149960159724276669940308759919460952701887420409159352593439631492000031966125902881794262735172016958841943686585523834216442552008778126167433028612942315290375363781047156712309886317123581087988660809545271113971236025191806310286396131379600820174171537035380981673264398105729261358962397449559687126088142229727293472615989003152223250341316398964681918297012097449321054878496192207586339143909791260227465713706435978423488916597942579631948228518947595667727168162106213968127163858840301613841048001466917418770726370851411579584893455407256049160787414371121094203174911063823877977492674541147738017420356802189573865715307443613696577710183355342451404885809111865776522911434823088899894751313391594182980318630231843844631066420641670919844694583229740959002176994989898972564640473885600944952468661799531785554628028583187958118519115454875795453893031098194146903209023836384929811617042631525803994010995811633865364178380976857644539058566478363262893381560344813012285944797874559403286553883831790404286796020134988034124318147465337099149043067366445650985724168930818759285677623702774961398022769815299797787865693682577702807906213996958646674726706137192871757262025568270122981242211213629917459695342559624928755381436814485561489401559781120601736482680151290766250629765051391850898141643193641577051108238178428507653022759551247019307506604850081793415907837933997069920938108282502009838702975349074886703015944629456467295466640454962974221270890761084564798578246845444046668129277991195806119173874429641938080640375693227121456053936315808686299981056323237031701666414513762406113514761930227754285610835097029105333251085250150994848207092375559028174034853186519363569110115144471154629174084973180204527363769223161796450484313940551521094645072324271361525945641422178294660627350009845896898513949300276590482902302118503821697463965079515506362367285406061217033059328278093781074165522161853203012856857945845442144071657743241161946372325844490584194519302681409813329091956427952907995732815807288288084410003718216302580832682593407031026364440856199371644741947215930633314781297267690675169399715711524117924415889640499920690543846923177764849323206089488936200415173804759423209748621402150552254891268801106497769892726043540691094015280665562408733098883686498874715033078820324861174959850658964546138614960050936834626613572764689532563254144246634022006199964030068909175605621322156611254687956221830333793235415927287145840935978650652164402535128542090623608587437744676610506361704279054090160349681444134086306509133555681257153061583868613800395761768907631620327293804917202063370182327260150442891133007563597196072758830155373326697199900882588233007111070572274438940207575816543286416557991163345420288309674944505414286681625399357240496443231450393461373210485743664781693686351928110475793015081852876275990567494545288169232649896246142205579546932532700774454577047445277836229225293930362847071601080925925563866367174275100658659113423748294011917430001639741035183979821403395152728700254351435974948699357923727004800106399884018756324961816947230455667588774875803618250492928852598777050181550660526536039174936879654514492025756776107880099887741791981342587615437021089179166702107274992375249199251825770176846814351360837756116582654898701314298680150345881221269773138883981729927286227580927580514748525755571058809322343198657967307787923811282880946290570463705739717762305195331887415078791550039041606510508243205782049106825092867868858382569756384786982095610564837954533670572774732075746326931102161117232297360947923915921537433165969517495350109965336342863364382347255189835270268364189751589966539645363829562402901571355935673375280112470501572129664872754448389318186954549906676043977569312246882588137064302866896439858572216182348125823270534033091973445728413205608494969488770872419615815772624642279820634195229949764072854009077173499736277506952481743039556587251109598529893993383572071762928045287076570113424820725445036210323797664017835907044482059999661332754200074318832853083756349503609701025590421024348247765724109003209207902612244725684120897077115385397268463831132327790881447632810452764884491920774373335993387666989396622681413655055793287572906893958398059390818820879501692249846689737353991433848368682482943752403496622278596232554758249231036905996418719764729291284387256542263893625531763145297791108714283937465012909099611487585298958207343300794831928613719390183837382015001179835067076186303690139122710885721914868214761044620410916801373820213720694030579709424045131232674781332775595541759142709715061270908753943207643261739749384896594538719868895008188519254757910199326148093853184647738283433540078697787175622333571873773944387815882596904209553404413528668781346609672028082619951864251949197192282272628672229350571257437089021820233210447285587803151283967419490634828348261831601533441435375236002082868265710972721543483096821499913403373723271191463655455172413586439335307703912685406748541267755819015995930170754387143354258649822881729145548460097001437799861901873455812343377323140381705166535461585345231536692920614390025202101502758162063032637448851085161635105673053627742095583733948317149943255857715067594148484585991355179849296878859145363602429810989392177895587706912241184089819980072595039264372823094025602743702416262706208863625844766741231016479226389898773578328729449217718044181373398509306385972435319231928933867718460326938704883938457836068939003815712221968237889219797707458787655438736623759355630913271009518794435591033098325753108305956358702682635876879332885479150548099113376997196721109275050134351248795098795247708755185378957208811342175182622333129733838467942803225024084920819691098822892647281424301672733810154852305574547594657929265060931310796424520840402385827618069072363846233935186340227737653408424500592934002349010023099504474554911142365016536731638990343428202826586351578179858969565974406429335389954719223140393032407589451074102789647929166961800205939375732413561301735054694557380264719208907647293076001973634829566032453930186236955270209558264193510729857379834697001256138363312983922721714129266914252343810322151221823755422976288499775096250942880561925576942455525236132717847013630275684025865669510007941102730427293138933086695877758806079887650053552309413195927730716959479607820749842793504002016252658764105838820925896682379430107678733998420077225638586115302950522499040790045363150900534629982980589997285004193981676358727281128367849441046250424122084641299548447961993501011985994649894894131744129184448453173805475570434792572500848513793454869989111378409541688887590862536989007135733660825008535190666667896092112213910632675372984560994041350128940324234460568873395190644541232933426626368079403171735420968525724906720932800147468086613267390715259648872580261732065150604441266804361559252912775445443404940026944408910507003511315542655984981637603048179461915341789810552607461876046140708969494732781720962706054129788413431122588216910924542304723656644242735190230801687239296415349889108947689041997141185170507408688846095188228796793993027894133940216057103355502600269356578144647967280670106416461015685600247509394864825433455270206303648992459752212858245053007301046320867103459472871855837511116308821491652924258224730396122115436684193663674824780594584144502102210008352644343061467450249206303401336870708942483276515159757576955438804940974999698229686196783750475347530842785205633941577857047228563697206417912946184102056660962003127125493406033102777927469705379276989994499048127329890904427872032172220773202576220248149914609271852319165714674170593714995982189767762666506945778044135211301792880727705549157580262466079660058425244450481868193899674882502462937451125515748261650360888699759012120671824327548343034696866019442559116445268246402271824051696658044331174375392429319704758230367425648817794208807587127972769646825909251923655599960084646209883092730634209224565500221431635805071467211015126542866323446818734190053457729574123988275710348914264897342311125739540041041733440858593494548154536030058563157869899704012904531899942693630144951795227880997367631382664150060112458098452358779160858551626148983764880716462808067886655995938286523460405777555601184230092486898906243267338477218073772250512972858734239825327152468633608223380916985887186964398382894246923788348607936406558847711760104008907213585233781165974488956909327176011604298279958033697521196726367429467998787385335109014387227816066521504749561060915399581256934488995163621591475118564843616874914370860036067176716076802756045670217910676035898596250915955274222562742716475169365185714093026820953012773607030527620089344032175699827371534952167340858245250282051872120324274465884120251686122943703189198829061202831020232264922151851133341082938865764430622859748985538375282460248696060628856585246312636350600227931161070385261828232257516710847087349893640747299525855834231863008481380065816132663738877805464584634358753678272163109747482415584905336172667385060046456017854923368739086912386129155424093492936425217370996441483094711821115138446402737791974996498264663440178143657885076813138512725250673323465453787901134543946259102301458459404737013708264061899821073963902796920635341785687250561021467297837260095560911546037136794440518637136588335291256995809633705770545005501731825727764084614160299033448494650347677410388983166089898518983792201142426752892921510085821511195045495564041189364933753266102441783394150541727162549734131706245474929064131381043008255678402122408903143333673162785673005583167550993688568164800476929787233936271345374489342745184031892548829039908951582828954029905572082277493968017967817094731438390002755461503038969208173891302142719243920276567065204621623119372032645335208382252204763192992040045117321246696963711458457205187821415182040308552959223605219796559712007493982138445711634833928898903552697540256166974118989835936619053737601352684768278848253075998859074863750086824995613309623722453487927107688824609174419375047054348520707571924875917069112588418046240402277138653642315775421110078025108524722395916448253417430322341775846833273645403036521740233416098624292774313387826650601832170179751337300983924315556709078633437719437127269099666267430219199595711207435107657020593737195653242937333089238659672508046696975360955903997921621442074547021564005114083892039818281860432573680930165573443077973770950503423774205511143898151494716588443189938495611499127505051095328322456408399591065414362017155864262995012563424496379898608960296583755484759632777625129154710392407204171836694638609655199158060796122721785832479706571915939375922500689138495191500928669235107290011709749032301973097466422446813183570695735209838496707674472426794839626034127638192834932634677535181419530811240190033598225384800985050879802258837730515676628916586677511197592229235999217075273737781114276202465504865410176672739909048315981379865836900866848858962777327196642644035249089020280732461303683118805644304587700052471546393782891500903043659978784601697634961452975706312571416691849536987267272696258594757593288256204880230470685138109986763521671154839404265249477757440011343521570686046213551402675472045154670965890975427680098338534708668379492498394062986398939225283220345454411616136718415875718763834210794631678270041862462227373052666371726024433520802135902653611764218346128556356706443189733559567617425721829142451302575737329058830957720779749227742742710523985292846905995106893003632410203108134163946272523507597805002587286445910985677406761098874296005281004416480840711455132320305358531816714378745025498030956717526854956399153032565665987447843708205692739609482160952593165019240589190532559333810150005524607602385930378686541828027452021787613684230359594491471216554189003275783346743328505172400494857138608524992408397664634697716535048340268030668036404742737712032990183008048130678974097950831487613810133564670886106365487293308135443520102892959403443873217249468490339735318208674061347706965884120176410570808074134826130137749249206555712357239346370175612499084079135277918384114729717014643933089703340210901567648568188486698913280815190223432280984682054352684725155652315167420432642752211505006411169243701924171485020575219157103355885426156401370853581845653290677233529365772233615466030376262766270685840556453601077429766739541839263733201909472884613425387041110661054125255256779329576216476213344465186495603099368442629644225870880433328230840725288851009344891256292681517056747706374563205930464918081087780559962193722377412190305206534033639917636779358684347002962553634051414759422416015787378522316107441871832782304569519942841873419245972417087462938993592457289693674787100759921451130718178283657437526573686044668873863795030838435879609721005828391603217826940270657844013629358537188948823383616862949486844712853294835415938520944296112404691792777727841661425179737541395554332003792796037144301710888515115474020971224875661729057282512662562945416962019052483291939488384481955507915256928914540170467536749018004112615554432387832178488352645316374370987786430599162407460198014456382763362889528382893126085797148978660433166523145906104357877943573380704871211580742735422856307222478026238056379836986868311271323178015719796153483315659668278667515630776309211043123404328561408398870662120650197619351261888467003293360641285641584278429873574207556785914954932977094555308625591688871845906445508912433307596503236488593899360217306641912719309389048333297195243402793646349899052734925386052071483514657429211843297461614409474880467325886813772713423380590943130728034925310669251780942043070208413484075460744793810754497571732865014692774492130065534417145964778577879034434563079043509860663117800437641344542322500726934122828794036734877449722613831426911769044177200465045723309697925845309647705417904284672192991164921392422179198774751135771931313327546155738831368610778521015108771339736704414259882015457385014893334658638256629445942937360202874276715063312967238015159068072738923629673195395040225460462650799819399076207949195621299341533921216277564569631159045726306163347729006198784389522990735696037269728252054714572659721509619052529237766354164634891634202020098345305797838674606269468340566358136269095461561464372164663040629092409095916957316099952513216421751801339334780735200484342759948012128886234803538814722390438912067199590573420495719292982382335689168209764338849564042695269799072770236419399652640986395631990622870301553939681234999962067841769930070320025631110273591240021565160085040359595422693980043689157599565936337159886652547226986526409595161451179840002646152915253836412562543903992370299203353311140759731627693613169223807923357549449443337642260347028848918249504275338504939464484880889917092916707301480919556198595831657317806676753202357510011227354553947038681116969516448804025332937559003116593388633381985297999176485345482941761950271269096368876865342960903908804400583332853238552067545721071543187517888991839979338508490623059993287511919326815961122914509973016027873277945809793196509727636398147898341509232914129467277459939906896869189349792033576061762380741087160327264417130541392515591216467706728268557687941623592696094231219847330683591608230567998400211057011337307646754020175649494237410066332279681559455721441099134816012670740293201798420167511603653594366174780463363991563516753799627196889564391487794576287952636898297687593393566130119308243925538787676656223886514008036412079423446797993901716185036721387465479065278081617828649825261669150465627197443438491449956207341995777840329058447878086811557043548457623384215077306845394989563883948049294057789497177773483183424357157570003125053016083363748590373795173819191289629910296138194412110686212975456757181905200094710544943725307274764455278890273998323301591506257743384637796764880207166403478515250718031273858502412541127059720179556958780641175186922003065381990392397145664565095212012810877839081590809887667297311771402305473412135904646536368910862172475658220607483489376001624540334304844020828653265133852482094488660722619954855336270172756181831666601619946050024164861887748540927868372505132837097702230678790431389162000234569342181105716174856584618388085437039780777402674862957037773096741784918396815382294944026163956202242159132118134542218830680554916849765238776736108516129929457291808091478324671595514320217243301855993231661123075411939505690605925063153161556611316488401339250170423988401252736606388582264789257478058633387132653683224840838091021056453549458102346774553930927094536815551988925619393215868472047904781379074149195981257297859560813833318534794722852963898169012576416750335537255320434874198079695648962980825435065197896835522768355691783495586845271459049205752001925630446478139556037404852430260947586588006616334376634012903355043793117170148611601127052041544801209167288246488860600920496417854993192730834046091042925617767449105582732325276039562824077311019438197889579784342256950294222648052419847832559058202908133013710579706613212357502445938342614961132001002843014072139701962045167099799761065982630002698082526800019470343561448020040368678625704161207558249399118987287854697695016984390577155681755973333884696857375253602216367822676896921112686947055318538069006576486867088335578560103682093393906639581541648620478179947615656242016215035698231412173345516513625176505481638976652011857154766191253875641631164441651502967553226826838683693041503230214284322635358676295939315638569075578809297990552567055834801362557322632753554741568668177472378068837465788732452635891526708876065948427688289286330184911043948029410465570961839386138092592975985084479063101412933267636070850470818678934938692752939156786081207060814409889686478730060072118003834356479801161683441730650869319577316577757437444146234915653455811278062472758784394829021394294438181599221169103811868855519105867194886432257224719305599928524213224666793381263173675321530248880404737974975446661969903971936700661998775007148521462037224821277963386276561006094973351419389529190153591615500138148610092568386161513390356902020167602197570440097104902348710405834797201595505595881120385474346586039338187562908658220027527237421980874872626380087847691670043456704403276455987584525410003607804766683331664145018185631849357743628738015518173764231910877042903202313563343163230612695444437413497436929430033291758105571801498775271418997911535537793014157945208621780822507664119654339638013882315008815101158299191891069877073179186652600469362910882575169012970221688866821844019396413540933143259336016104519936661999191594488526985281545677658482387616520551014138418869041901997586435628978466973670460528436565309386662357890681323318625799033902578258684678623468964723472700604424811949330413692565240080007028674897196817455023459966065239990564577776690084838548018757936860383053033852177756287614995970054571492679632873786515930108884093378658281630204425355627586775099669833685731523609350075392424441875386509690159005974827430481660281592405810247345156813640199248370296563463809810378406155140912266084820507073845950613155831678174735064547925482501835227887715856469895734118726620559242160428597400829952665511056819332427854538874030354340801545678904732936642204181692859803769444982681038177576290663388925631665755015227528625187157028586445941418549217985412163234549122631591208567508792312735631978673850353856970852527234785856168151577936321008267454955705025611844624302732216369908696181305831947294519618551037814903849208166576488314221202535838681024061104002268895018545211900019542202780248486387500054470078426166136711836190570969182754716967001759682322650801691195249140341231146142163884420414001288133165878277570092187925566694965262443352268551825933601564907126557324787050636136342607995803889764852527453932044073454614417921562882803941403336155690443061713056070898045856285449324245849293211127082571556211123715400456331976211498466843777126695596571133611988737994752931193691709897847327019341298658328819394071925270910798627828689701906819688620693539776119685894923951892686060328474833838859967481893805179023995670160337675233866604468255567738132767820232206353480497019137366640974402651730070702833357309004632076841386059173527287095499240217967662894060105224920802226148962279509083312602033371775294682704677412913923535888186008938890723772767840488095958500340971373798060067677546199505343568499521052700683974861792477457845541671618636738643718266237753670086568157272165279917447582729947413348961757271806895096566819561907279696268656703611529616452205875843364435253259523333296409903189387084769690285229836156500995604969394756785133831269759251242342820480130890552854472681361948896197731212488981997873177061704092799576261040687489849663875917520016706655285317306163310816570475020528680793979611385452271335451667627910202564045210562395806074919426856993070741875573087806319777116255843222748988354324606741182442391319242557686968614275686400244028473112053858685680037668527957852559336036216762551541572052886410567581761073973674060928746364575885009716964365633741589971634700591123238778452463131206070145736078063375012350688917929217061448013082160899452289405926739318768492113494995044465961203268929005551097206508459397766716504077167444009008384911157262464476665949557387335147694273650950433262504469507358128433524609030642763982197121495829322211954647756200604938292775782892037473297259782024702354316961875601395045947804322406263515354207226929861578135476835146773578503373716475821121223380868142512829053183833151808628489782539536250633595672473997091665026581358583706003879883783452136289763974130447803966465195527200721442664001489232556435796876411692465602445119990812828455352628145745708277742202365926258011846123933033523297678705384291646778096490770699998855277834026957542192398868261167572075918324875091087372792994590350929722598143993088457866137860480100633124623002285315445302342394218858982046424338217809695541407738335572415884269573319841758420671722505373275891511570597505413410170562324872329406225693476970557795297048391260671368890583192730781133144350799470539815015627084889541461446655036720399684584653731404766980279782927955301918022293007940881658282669542252907863715330791134702636687556817044447312591188784042278876876974712915982169833287305285245032192971326664314336896267279813021917269158433597047833588743384599380776822751904017508894829923457964072679228782807899417739823723411712093340091713530238371117758101023606773003127433126880174212449751608159521393430013493896588760074918270221439964674169112670426605550126199709093831177647124891232300069017463895541342115982585961316678590643458648263842522874930284300078241159350675768749349935346267482709865194180179409351566911231925770799999763732953997012981457358735138909469343830604497980756217656630721715853319772365868036991775752565328882007381553086144652375317590137634163769702092501079438908680584275673342188502893920729500312055432015449868709794270156142924114296673501907123009578094633101321068072886499107830412433239894437368304809853444082776038622645622163654335947450448082768390466221551205750439968477866575651507286630614046950119404978607104262532064226602757019119480218192592330840244226534944814061615441520959659142323722942310567459539251159577261095121099769759588986806806587692730025421190149983609778801714274448718636072989664571129013573530632015662553576331655401662750565537328117810874715957920264094877766072694028879871173836545750916168084389923905828504230185330546657707779088255670939827353230266430502479998483220962118656312534334639390107198197878552218328631349534185763565160520236457719955479345603774380275428736576806981197957678003632099570283208815746371601934768772405279011471449128296689656364829934426304424213517556978891893036586149077412039809808428368908114278098088520673528402127879343318776624138330703080746899513534212384637291300962278087957461880637372589678949349318380434560112588551624774056981376294068580984984281395816778809245138311459570122050630586964978367791013231640630743532969664323782731037667422807735658236054068348788931011144096581005749311045857132514322174259470282293396739322509542148467170977391848931370191968388058711011465526752039277422353572939352485617830299438408363843848836762023585590692099949991822956666735674726209639613413573930084844174692926727017978937175888128981975466883201000265868796638008228505613363953044798438285660146763098509407079293992835570771910288441036611015169393242576029993948750439437431474234181987461544101545309830976064968857299605134487994477759292446476423102295811865601872594962844800468388619927966970751652853082245722177944320317595269169352042798640630260274148148858618915143878105989848625645655570361888534189775544453296539692705630018977694938875319237019053180764531650082929687707957407770712817028135788182553583332079958935605400474936288850569829432688088734742346835626121294568135967829143172034199439462049607001328829379213334631446877203413529728960998684915436534822983115719791414853053355304120860853810443328695265468690722907094035288430989615891841941755419755139629245461297131795388074485868007950746371491696941408271553831240787403055419422169120470562440805712738726079116781217039172213892604919718358071287837475151202086267217358717141697872054905785814344896365503532935180770298633002447308068961510289588136904163090392257391042732140276057649276502616032846902575787513875239966889749145469137185401091305712270808414697068035345534872247177170700015140093560742176430835173727953309810940070351088142533572669561777177724715937504926126187795838253337722022447914138952092140693304520503314756645164490186042528491536405481078262102887461245747090253992386152706937747460474809543838154097877515061941742549298508855298838265992495826814162888031087844054120228687232413367327151421237582190117827282308464264733643087329585434579060946393831091811121599994866401694111647708664976802183079611400562627562543428979801821654949133414648044252450179237039431416620784218132319377264273824939011629350064356084494231918723405542445581018222949684867563453707162901839374985775984052333656468220493734205209423963891961909422685284473280643989780653916555588949591178512142378205574014511244544306129481537203434416448101905958637584918355362996378502077130441858337905008248930749495824277483279028291434547069329482986684444728349743674677601684507328870511941735066508996437346380959556898914411563743077931331381580053466344733527832537869884437402943047061146263216685707965922884213984206508846408244915004995857922215160763961640929126738589371838697134175978650494991471052609304033997966676451734723602151881253586979510422299353058257967533806313032860504500623314527732176774650171671557053076024318376731800653990594120563291548547883852006230992391696000427426942351805003942044747732810069780590814460834766111577909682073535151725515380560614724281209384404263242663249431193277387722766144881594589584723246566287112446697103209699973773386770771492046091995419274875638065831636705458552506176853430164600004942125775797660112368671722090190178113632505872014981286165419805144930921000673796971039048075901540338539609349708154228612843081369061485266992677301119519329302263722566836067758481808139049210151809883982709633472086276076643620962441657818756782793560615926822280840832791106775712704961768499475757159121580710183475091405825154919763513271256459435976135996477359937103966147430813684391848249291822715537287209664455243856961984015962580816883444850702606943913989708021188015506255329103486466323493868816349842764833686136884543925146745822619828178226799967065941827919503222680968385686485144728395164185331335778384916098587968868250968962472707053598859673527320950091753069178361659796372267428006859294059532748096283107593112590282468277436578113053131856985252274445281066899691284379440653347871297404633154242300882130080266483487066753852791517783891747485667132648501439615323102887737566845725172223831889611272831296700668367913882467860315370987550781297340154451260561622813094753014334954996633878685349940507044523576745231494225087243316056660918478286677380012348514461059538895910949275083785107955977301949267130024043859624412243883783502846456174053981203128213595031332574782466507055132629627501630598208545536128274283518026523599761649445402445269220928674155766619947195413858205424090957195466179802820582642977291273594063598844370823190547913270650563799628221731030805143415514360491494345582946403636727755604110691887080260184989164287522236913575997073537726729039679951693489426017287471793730592910978304382016411517355294248235462398236886286570133688934217005200180068656551144898437745249937270552635895706445058970614617380053853552482654201443865434496313813092916787866616357248637956882611058818120094004820191431338377712416841018193764181962939638488987445293527903603293767932714774516089644118595716832054105192654087889953458178576729749617672178015256010504906813038201562534283491336808609518934102300659297055216390238689651253987727355836935403931182063544162415398340512525468834644256078068603959029276983383767917967541403363681368163632592715910240688136494910584808041602234707883036204000164083688569304698604249805849996157363549352191182484339694825087744183045994625854200931565284113158992444287532247953524033154464341115478739649582359832993272169982972167874781847486807240488453341439055923137262926779071988981319871217130757750607946438405097550747024546858358360422940129858458244511171514330572000879269548232897268328808400472910920108083118508132012498020278489674243000019463355304499808833498168116127539475699430094954149007030956614938143228489784569377113938604738323467830638466009407078836236114809843767559337248743443335263655013309445407459035164203063107249368319932800332035619956950167323396793236704187628191166503891590637054834426148748142583188351201447272718767807163888136589881577851829839251597505203128308311145391656031710086377974650293021796873650993331945292314505738413636996040587312832890994947962062920541441239175420127567477579176211590744576719977003487632308488572234893599991539293219116586017752132583579652817137286274902372082459174760858388453049490485873055974051084168884384504002964566647123470215965178961984397305676566779253692789632554783699739125187512607183766854632949358353695399751751552768782441455121837546572399489450602083833369973222184516699585586357280510402241466488754692377088531995502080798729201333484702615401779999521619535563490163078834317680834127166873711530272809616780475799870610159662267873436500457080461010317420848742176174267967687588937025314128780709248579913030508229048270585457197866802064630508969355024332617866166781182487365323257439451530430705313587998380898084246903945689086831804563176461416770394141550825265855815483860377831560006553390737009358482187505360096778828934166640962922907128860914525740549244586783149365369388746712685018629182326166599452448722727363432383151076397069034302700596360144176155404888160794889907797081615458622587551064212084691382021677094013676937209687729230734721987668527215372042560503390577265773889320787055893239530390611875812220565610614787920643176679871718410905368516126922499242687077262350995298905685376166617442399284900986222832752054250557338029310257227895816729238657547376847115848738793444861700293869598146685833260266592148834821385741122751018580081807324164531243183908282618630606924730662536697223720691156438284617078872381034577553144142387947773522207688681475056126220758987079614845287148124216269243972410589069625423118752359811711188784384117519956052982339316310121609371006405326148102399938639751671716311718612056034743553798805176709179622344315384423914094312681118204736923219513012264560675879543030047327367399537603742482569509951741444500884325042341493036773972493880860290220015951153138778638137014241791463815366486436190751457928805244502409966349564348268841701483398163203673539924914526902146440884914099210964074331503781044049312042082939796008287035723421816302556560910216819126104851243214550999005636474271180510706669701881011540845079291841041865865175847605578456414800754284528611549320338602163569405355358350108110066196972411569471613473019104420335497050797342443201807743352970434082899762289181344857444642958923193774103323031618231372087434498569408655193420455185301298222819405225499849508232641589133738876732132916794282225769097684541137024529802957338978522512647480536671260543764400175004070601102655528317332706381393952865051606847611930479734066573690798945952598194999510441220920505126745088766674758965436543841311987580113027074179393373348825283222698845644288497159985141102020125749282710012537609116310729051099708166575935632599412938761412809285245136893595966748092697860262581684400925065148043422587870768674851039626534918218527723376195362131298099159868774931764321564075450620771603405673943971969268213184248266612217900699911322091657973875392071995004155492010411761710346069748035918402992808404539920434306315937699080633594109854937423290443213912828473778235818514331471404537524840316307868192167457426659636350549207713569776280391444504158864170683957979456571619432104216739668306227814022718332812603058646211000578457891797368897250176430149600204663246396220018975725135514272976068113667955016626392469552084303869879267156044062315836505672456795758067706434931942445607300226869009831707781419160577260576421721520309116264110240142910289620073039767268331508385117646022292625745190783285867150647257959617011945938870260242023475027326468298770027137661640934819393441794843270662728830861308662237534286032292007268746937295724751459127207675499510192302923801552863775754959350791554055912017025686107767468654316997893197419022033535253730709114514193756576468057676195727285070674889072132686533108146899029164449794229178834060030944977881646347382034089356748547364098626218034906082046192427252608748454718110893123494885885893753534769216176091791853933818119173104272147129722688438041942806543198818369383050737017013400795652173852128443666347015134432403349652619249718905214761794250002593114546123744084639075556479415169124106900978949483714410654138321552529946017955891597810700227809802062783004253471217136257721556292949263744070793006225752395327055304280800851707275234598501173697702823432194492672123139462121763113685443667484620344457058664010154353039207323999504235690190707103683237089620060391373617185073942109507878709590953978087915180600855551111115009619677362829112813556861730208276406573725461046290601289415261098905236709098541445019067656513917847640144827388871624531750001647252561959590133622665379951747766500873968917354926047330703698866748567276114563575694984386348255022693327625036290510814186731416398337807800038903629720963846648771538523762939881817678601126747124259537956958247896210624227772411593362959352719878358812341853879344523497359235973137481204654094648880188513915723554374951645165459307143925570233843191296163461719266255233284172989541057569704895400054837676118977880560162344512224056243244916255229769501820067167146928545824250012692228865023197866582791089645759044534950005128194900593178962180038917186111604281256739487264738959934738668832091834771193886423391886798761047798159939813971996605976207881901991176939183310552059165668548762160770151346856227796702065474831626863121096173022803819968693727611342259378818688613182279038899937781570323342440957766422460823256172448310820612834371989080440377077526895071295194759848377576896982255184492920404076532705006727432588108463524412179546968073527079339052636175379994690765451717178342168522851396864859588780224794242387068182413440455907903841639722918089705306820971600214422479886190815479361984901329577555460630629692092893230686503624255072981301884384288380090784893025971800861508173052413052087428639075608287711096166239075382209317633472649996252307227808502188165036295449306739742780123571583126153003183830529145777037171097713450092368034292150062602437101467513883866342307851205058096895883954821493141622768285669268724510787836689988546510639857508430753534348585511910622823706828754557054793521150540697034155293419913711503494484639241224167392450111445102945351003472740091599477974775245566890092579598195263945709636911327599542804801897188495771507875123885465299663139666644480031710581177725004722323786834813460299483531388434687745801165255940445570772841002332229567195291571046724016299056293209753039650032023826660943476709335051200812520238797068404439687405635777394867749176057313298580581746838397377010279875604039017183556306824094227481969556346609162461430759890797475301506008815275388125128935683549113564567699554893667754408156362243988652409572066793885090375991935444099242204654524500517708993210375776349244334489261146116947342119884460168218279308312470258417583262173367556798738816877372774154268991824252246804307783059954431844441898013628509711427934806050868404143094177310282607895932346943864235649663531943172052899522600550343767440954007548012246041054657268120967902606791085607920999724655626253388899287592091544530223294586918002979431882448421556260516844327326473012054313687087162738846173259843203810964204836404912192120782335885778328489622312282365782896309019645422122231497671992964101514924206434819844375945681067386822674417563322745548534523179887637158182019354572563754261904898371465502404925141406339039356793194625066058680279465734506185144408661514538519127710836199220021322155196887760097294913232202249527826244624701143720190423976492697908710548776503225002583337586710106742800232889587367849553107495386016306085347115583683113387720485042419533746802697919656499078377772066629865460683221646689060937459271330404397695290020651602535206524920435674199918987324054957853403255331184965084026922596746617329569375536186778043803438681689654604040980120918489465496372567941449959741943438382831702869753487158303862956402982339010041450318577626495846399299871960484364947284893090295592477236095670564264531533882906253966381848436767493314752832288223453316222582128154358789863805026290668329929195843184444380425688481354917584726947669364167164552066041767253365842357970219528691281586347516123820285659257316516405675150741723042936558328986935894743444145148874037534956142688357787692074273956201444897614951368486386033873014300796998994542970749735408801399532565118772456951166066574485052972660951539683348706196322018027084508030095567988566057170201886849273964809762239496765892409127377678935049695396724777065644163040369678603149975115101319953684766348439362666573550000970438807561514225972824396580926072676225100990654528854978119043535496980146949909721533104553035130453559871732869464296298313978620704674045849387851170955316408342478280645369186567171337756516199903251206242674033810041454649462148510444020958805465721601798540301090928161023680090219802080394581296904555511948031401823214112294092974890663123689335437367094704345603728896531401857234107779164573107960196242235284433362557891988625403362898965475797478398367761034852133364351739489086411604075889807940448144490090465115128091394678800319211391974175283839925617411804874308605458739605599032655330655917076011117728574709795528400173335645089285311055652727950077483012448050667538774858727305916537109037730609019178737925814473682056372163197933647322010113109314781783953966859161342959056718702301961925070662959110642270775864008049130179434116597041052564252092023385063282466986432790667481535404334747245009233226351931430795178056763658120684786097641738010280782734650286517678292884208319002154785171429607485462987163350974147589726764132271530408632705862490172936821600649923473364660986823299814398568065593942653593821385868237345861095872147573325483333964208642114544186552679654226501735761296855236370682570428854082983299399864903885232224676523870123359943324731220700874654792175464006767384288560752250748407510279520602569062321194133115723187303494626763708695118112385379644414659632642409095682759564104153258933043344502090142917333504543645665926479356262703045319911231861972458493275782648562105114363058723908996149849164424325862237952804150086424410822232137306302624633591462667497072859215825544358464300951188574866554544309942403434059693499594132559889611195447503813416401917296466667621482502283485819933315676122901571458898179258346113689176994335589278323281949204693894171542747881748737720848997198223331087505576886778346520590246649963001404985585950523319571388785832393336915478844614166461316293581090217222931920973659807491244009446673910078553829340149218922301792118427618244760988645816263928039985456035520922241126159634627981907109849853220551156424225167359319221744972330508976796506642179540011326141375716561572896341834876058270963461000555076286920374118127863938915997630198572343264644019642273251513768831534170273747713063114782025216798978027850632819029450061475610447562115189922264500739244169853310247978017692478012242414605972010419992283937802958474725692977265705579435606925380186370340128441607984657382572680949117486474797437970784553161516146107018424403019073314927745628560551106114067434244506646967496436609090929771092304302739564568392255864051188228414972208480390373462756649289806924741658224424842083250354434556498093085904619193348580648627584377719155278799953604450374683697357550878415418137032086609356256339397352257376504044838659734117131326442232638705522157683494735911257730366731566084107872872199427220241186197072198393574239583880272380302051497534031030021115136639349215250116811236081071465110176916129535752572435801629416691621064908602029546245074889283396898712608391847812651256114345067188329015402980408300569349241147903678796272091492303340147639120522590830060339711154845905822396949132781181752356508965943364721615448221557190424066806065581159549283179414894396303904473614449493738692864931001470197901908278346188264872755390513433089045616724952511492687083595307408057910455726736809486408758933776017601966650006544955927582823235376631785575417917837179737014102251400891152945471212301698833735953512276128525613180879123116921049937263811919838996804145419017121568290227374234163511236012480925734206429431789844072252493212507295139899848522780601754028782403468068232479563089551164591595699524049569048175191969475096773892064118873877297887090931363311110560929326060032845130606478010324583238766826432750158540883940905137377848027263469696896337509045643740112950363014925152828107221696890654917940593090101935282147686178649293800424096390501128084136017665193334680487323415579594782008954405107167670519596595147071333634088415189089975642163898369051251580135138841430699833108801964335288178714202992858183217693385965215720273017893185863056945955127819128946748021148897247671484114773273701782607379393881573237435252912926497966321607590548716918843104431434918866982428750216135496039794763847101108739659737616487625038927774410742992202036182261529542081524496860587454764648203595081511950100282533314153227026161037445412640174395408746178231477877426026443621291086737375090911061346046682931770955016543681942881526132589924055935590351267842311482589647681942770559827378710404521904347549536753467647446244164876439122298351349996239537874522295283159998334113188708997610186516949460168728580659281084262477098082445452654542932118701174509198812838948969775953343600701186351801051084959213215175151690642378300806185449302860758564904094635317091185286695848665522741424761544078612862278976277924584892236165503861654129619671325425305048216057686163376044052344901181064053136196526924831463071022832580860747843485284339872406472771929062477922861025956068717455868818229401894110481145758361498251758069290985258992188990277134372452599491291152209493296737984733165480806427115980776647140676121342065750751886225875590308068958472699212114922285510629940591846773236436660781356029067436484186049049534655982541198832086841302737546571498865075896469044498342227026153054291909184724883536115059714383719909084718913349463925665346577435821933702477975491079085228867682848414153978117274086337998069411208837856399752709129019601881800529115666247645221177758079756163308211804046574676844212526191675343665207903856273792727093278047474444119190321475326131103035651679799634782149337904358983837736773816918212644548312949520228740425350778162148414347345943628297717543718734346785109028274861481170718216204509511032142214036851929126562229531418801035993455533069727969781357290752724406099075714883714644672421089120776214682682059304728050320005271994540713677067336917117385627171797994240821720724315917013094161956453159956001571690213183692644909711266596444801248562220849050388549649825122350774840299658139049865090641605893143516229600775290575156541143694297144203725732657830260262982316892173022395942773428319621601897095290415460535498030343945622283578648184662111831310110476481611767670524515236719302905760997704490122875300651474424728539907918411144766680671089167684013194057822905536742736248590046948453073498013893851080258097580804079039524742123780747725840390671226335685725616740027045602347862174536727383749505529020054769116688487665266882523358610208874588779702249312865183545536558401650373300225427768293288884899436822042341677981519646157570304877831355394987508975195055857052639312292805485539339782407932834286169758008211889559162855482096879467248434630545109151885710076381204375927871810897267892295781799303866044075289479853571736489210072886586816931694965501661993308485578750427209374198229053012879955130877016804135760672527051518434370696234388695658434057432542252809712532939363417193888526663887939438354869320616619957097425889627344117791565854556320614429405379273616484747526306479584034815992330145131813639148465196829822487930493632650952971770402227505133473448200141723982513962775436811289353914044888484427641033028725709016995833073612817048850362429818712651067322185434721248099081630668425112834291277847018737474881272109878185527420990876571013013540193258400286038141751406258710155672787501490411014804414097861565834567464076929754212149285646493084687248371311590548335866108351075170118766269966212656153221686540750669938323915569664217006577188476437683955310096957234341284746379675362364825654140064326339508584440460661995511843688226831150094731339721297127660269460892489604158702004294266738553047666153998273760698476219651781614504027968318823990369449221942994201248407500714403735031138690912237567446204349390143143236549854066082057131095903662888330556541424236951091858960679868542331728460743988117710561020414818562234570196871366095321651856656325416030367742334031769701671808873880550090194422798634790895376530621022594023403176711476581557520650067083301946611972837080780041435679877260476454641248780514908660902653536956371589601469368668361665721212026217476156407972983238616223784527296557817997502058354993842076617884737046452646018314370716293095243441965659774901364879554953392374532100803631497250807495677811343409277657613560651292845083473740954464479895911907598493179660517215247429680986379531077891340601482041449648459253008331253880771017244030683234622193997649462787033926943026424880169181560043904687900640374807443699420802107817759151271422649285987283770798259124002000485093424349804462566211201647429978924049652462793102742052415565288262391819793873979134787515171922045083035002514027375880362277798122484953112542236121912356339013699722791937843245205472406729195385596196723016257622099301100986059739561655946575860591515991577379423517039107047316173634897327160181089901917247945170510287385029757557951149895217252182918167490519468997193557574305568265917618907421000725953218697531589213054592208770543522084042304352571495868274964908373768272721375490697276516369423649986493386399041046916090593635843145473291225772380868501290973971506751866608652438230090998384604121401912995152830020341679849997026615825069020786624688940520150579376186083527546870128258484544562820768711741833483152470042712680735146596502236676534162213151138623955520878061146302978915936995949838458284895262162273709370204386771655364003315528439397092062891668826110617765048211491840535817788293097637738229761982447812381508277096191867660049335321958251445043029499885415957764554022634786781500103522141159652062035345417859970244598055133460110192777677490695295092712191957975294656134786272541935318462252828157178724749269814198592371017977985389598963665916087815281265757019134634124259174241334521278253357370374818834402951959351318817192272955357025095034607498210330177967171057821911892005213684767881064222525451334798880953431251436672187154713871968246644627789031700380059084104399379682170204841878875157946676932903233352206384949993083838154196949260434519354330913110325721345358149942026216058733295378960329952870669988615911492687715705366780491518954655838493203771512189018880771509376570964844869720501759434769792917717229605805407722217612111614995998821990546088220555088711332919248226667948133028437426444903270911559883185580209094050281632384833528537316594610133302075677250420359268463260386066236484091471688682485999170146711074758872162805624970124626015823680701787333121928504410545437228849264981591401135282806689154526100094049922048161309219349211420051869729141965297629077610167809356712521608288009596408806764308368783411925124657483577013848325500499521646853614942400870376746242934712186176977251908387975068907847327992661562780998911203102643122902686467032435776716809142206519876410049795961871332952212208734982199748771424509477001405387579280296462448647741178938895086405155391154053698290322438582139269469882192737007620544448275566225190764867394731481785487427664100077230310504176504702939270832027256231492986619182306252495701529877024444022938965336886115403446622731012251149764358933086735408172267812492411351573233311876808116720502307646632751062476312170274732710724377457895265983293861229481170815054987381028079844452142305953882156533109910623506005937682908504765252107324377372344981014630847718794306092093305738480763583202987026327312776197409159108512766525648352236306001414796801340600310297319185262492991455007903917389739213507206387389720647039655216658218049295944283951121172933210477884474704517256468301875802376803514153635782445034480518335068616022714874354794760095555115714470959874520101631083786984228472537257041065675972515787840245917802888994091188684349982669053695761778205715760826831971705125599408670918164784410789172883899834762424841238773803510075842193870563955442055192610111249070571780408034300787946363809531457248123354658013509929916991238067725478453118200350135390172359091144445607099905801358472510618433806652532710627452377186406548336143296723767904557963382621912031766076239579115787852514747427701766522204680144215066415983634559738280931410882634536864323641818965415196665989234217675592810198928216778767356848323759027448750025390094065697417206511928325997304602971032686460470936733638672199536035643203636441181527667825938409267004667799858448951718071671610228918897530649233879208802222112626691065945576415397372002331592409780118315383787114105273803599587480967087846135933875653468999198485319814580885496603600849439982040579793921344110037892640569078074408265636411294517047854700664896319122982913654137023188512529961245223600500685294829321637100715430799503849046725826635166490190873886319508265619838166702450185549970999331967185384558394713952637717886976674516385829879476383004806077492349439911738679409621791405998648450167284067795077296034113295878929354425659123797897949830030925303774823706663106566330169541883831525304497385508848348659767807919687621465841801180654343921192550244775069435817960418047658684458962345310659489704034418909118921489640479843689703731647893989770548705875870587837540030433353119653011883663816684596854309845770006743820055176768609104736753700815126920254175666855396694650736408276996748359446988179872749033577506946475348664347902788881770671433402478575355847525824019770609143415800617920858806580427142753860452303111031844742898944251390239283346957154819027948959367692493081604169269177567609095538724679185392994876221346569934377950115018347005212034398166546782035081026983179443089385399483525419090154688222778356952931793906540815448049442147810169052765584949465411978935761596929582820327156126740198592121869609341152186156655215296980849059346521048200428303021192684762153310662717163600255248770164430693012644718566731474155646709357444153793832715068154961250051829481913510691388824155760372065443860395295373986170616677741590046091625230978689424234204446075665648974528404520971675554437897783585290967192816291196902817901502188822460879085282704998199464931405520548321128046799468287827064760444527613230870216341132515509889496426602133635644236494924078747601416037241604120465418379229621615798016416979300422667059260692152230400239880056085492634543518824390364515041858255043585165632935693979902417931270322252507506757607810014134174899328392123069147473335502913926878198909062588598806719096830244361424360229623003318993501638278951117118216661538101676628754791076787690207157625817419413140145243241719084034557889331394446414243697543735466286483640617740599396921756022918891892169165369410068005310011167022501287406651003306708550841060092859836661768381429365295296420311497640292253055627561882468759563553918926331479966778194327087883861215674470436830322137744211380407284053071326235866972115650920042202959692576460258506470706162772721533584204599353056600697032436025932522851988442694646681033869296813801546652437009061006812100060432546468134017704371307849418215484081170341099181071119276400446392785489526756117596498646029085928972660655945072777187309132572726410666841467863998648782058792482561462713937187968610752477164917418504032909170592194573668372100770793535307028300371048022349549897540250894743420240393330336973124298855847478497020340555456733198691064404395840234515925988797483084227575742742449292771633730466327327278769309366929849233431284835021389450470934060302473645746637028558644296406870595013475285763270961427010727170747549668366051639964457640375088351662626132226046124571403270046807485421728110264163093268770459607958785738374087862556317603961457488687786920207900555576615017018597517016768335343516990232127180801344241725801407743162099450831129603957375512861756453178213251039022869393035941782513232147779484198973716563315307207688859339369443018439634464272563196012268644651735641465744216107764958911746901340238667075645062457273193118514630884912368907874759607762816712582778550555704879442729348829400036701841536369642486761190210002227896988226395488384409040291009183548126876896637868192795888793519898165418670251812214051629295355340851707816472386048347168765261990051652256681959875346965127636092246829638160485417348425739354533503200039572062604112585495046120161550493988190374550831008480004114592665533698876561662924606659172262221150225015646571636653891161450058302243147959121650620064347021498936734824088524557443057928353774688902286645924377247183175797551089209092578191550246309504811010201704483446024753466622559366736740980508985283537638034955239946279055803226531909048541896450247623254139084393026633537890955535427769586399113909095910761605369050836289722504332237561586510074890257884939629834523269858834587566518019177655214854886830854427330647708228778921257086543307233495680481287635650598134163592812687997689200848305618605850201516887017846908556009800714792330589915026422371755648931658787068441643896483723046117144249671167087822845016298467015837877910701865894454718020367976342621709950105041800491597406633571938520041097056720902080676075474058053637711246366531700049173924860092824205054130152371838638050806802006951108066885355464670572144884796784784446831406333007431033133229409804363485475235879604524382883482756784061979250558053410814456733770342129824557429748155554470048424802507870013928941607203161151184412812839788350433273926071176680307050523688811026673274975252526024159913454280836359967050510282409100281578473425048579583576747488503779635401497251399031918929695617466743300475996668922653978802626841281728119104542382381307150578036156331698675369343873553208948332611783558617771879288152666280072092406675006275614930614585316404799376174776775866500433099869902017499392016773057956789737869109501298275454187472885713679794089608048850688560374579599708204747530928039877221751461429033045133236843445166711598865026281046175648246991700257882217700588356615918043680212072361690171665105799249492535575333653489186934459215701792293343715718596272595295498279086590689059505833877591571781144189959419132868840984196244451145527057883180868500896765020923800659536063232561261330016400736438188608550625259418298672481402070367912405813166727748473128571374523016304957436592503310656586330775475279058521489192877138288181919002728122581562403899808152405894239047378229435663875959774191682372650384069985895825372535086985474575401473213561273506244804973023601561513236100606866385919707379804026276100330829039769169676188151097729893922988171067267356907208397618403557971960238255962627410058780969733071367242800481769834903498084299270500290647304862814778474585727281108880754197472589036206459278843842154134362729977970490483173077011478542644393542823709504900173006013844884163870321265350020140783361402630066756059060640047299033759023379990255714458224265525948597481027234245691360837308072707715232703094435596886047898235899702384643718899912288337450355644769478597583704314957416001301193854895125864197427091313574868678689112036104538801810360409744253202138252705374555364860370248471429466697716365278170623747209706817365671967449753869533356062985025131228113262890023594488747603039977990534616888528092095750964988899743598860708689454547275802858666543268210088361909992264422521371962789312972343557254273179120502079773070257579210885219076079921310378242024499581545786760447328430420830778791364528247521927535727661447515477399951636051319227968605108024177028362662816548084954308495813891410571259820209117077725961012578170526031292454990423669177379176027653468489575456123192585988087983744164196695025848945963154562269844884447600977893760259772506497220094318252098381690928875676727941860877802153632245658206274477336994781292464180744865057401889332399532980516388351771499959826995309682743948430706560712103232293997143942170252867529883966536103301339542285603799498467099444934334043146969114585270452028231299601797692265276812368219748322373647060685557994761822889752970786010602661937168759594275912371481570543955549097744010177470695104264083444808617480900262476752250820208502167779654371400108422284369541012405443083595710466134455467577102179561116696193262569934943442652763240839319638006289907197892252560102953644869392202638504369424849381173126441439032957594034428299634498720287076411567255214248874340638644253757964833266931792608399221912390076541349359591571796623603858365931079517594752810027738169906177341992088462043959878690639691049355099022688173879049079207856350038911551124704002812829703635469423478776200102457511791037355185393335979719941707282021144282592002534386448310984693655618030022283050392189637334949691252786063165954935577995649838590001235866070557611298401585696229754476334538911603541894539653842071677945269185431245659356682526853085257938513597549172100444412925668826400923350605291686923811546837487392430753751508593337632875101677321660299679332133547223411886957481774764902284134832189695932657448686624621852391720035011106971924083923075737622325525109022284379738076822842126984417280380152893128235340553844540968075032913401575521738440264334043505419263990068439060315068833141745402226915659632462554536130815474975203192225093392371744293333148083871943195755372525945362820892783832887533094266980084976696283232483861391549532828110039825066395025070495187017334759502970985760687013439137344430565732616694547573388500097532123834930540124954475864525645903223844036581550743567239370817446333965896670459077296015919065890231786660473574645331912683916427661126024849375500629216220609927323058141528167894103934510400335794881502073803601422099329466898361055532003668820548426506746209649822466887426405346670184289454774056307631407017916939247327818656050555583764716258993377914093121956989979563588454856110106965793412534919423201319029381126446446869288441243338459669264703898662186998374747721364199578173093084477160353992103063679728322156139209509982558998233966051362721334789936400850144283730587503868722424466946620425914815359000101903657838277791593611255945499664043223281957933911649711583115317828229377938223387154756873486890894932507371743277158633683832890353197003556793553382037692278146959147991468939628098290385676354221426577521947411184135138445981823120418069076395155097024030665803549086323152834764876615787878694955552800217057426351620226667359715686617265356752798408806615791491758859284459073534306655690101891750911285037363694215403772901318672412073043951253492453106417612252147144260696116240395573204266359112150222915933698851850659583163269469967147424212140719403289303880692420069150326203682892269548499858825965350848764868160976675571917975006991796122599131827184054290972831795699894280197889324870164375211199220847412566786075276421187531715789415615607057250602386909879665102385189933415798835070904186707893835426456543115505569229175917903595181822533608932078785941280865975506780710817127396175216147434084049647938983856767132777423468503585343938900857524490542567491533464955838693266686612876678979503964175171506091368000032654993054780303223579670621850564978565782325458637641194701225236042637705564121027736606057474522901580948898439570414445091073185140411134013908352441122985648670993867295688329946614814876840386098061091349567981396480143350551346256032030436830105129305085977879992794617593645542944583505929940944200442809605690464523247013218849983406464460227872699677280849040830343312388136567943662784150748996737086471630472870252833078958587103691183233030575411666143473750445192107208077613699603518213355806853730771908723677089320023355885362528951302604653211626149690659331452795009706535008465725109316364676101287181032756620329141638566170742585370893555730166381203345211639464317841863304239425863009026265097560629870520436172130629162365472594654414900955849343385800200894759740148144510654758645272626179248593981601480868260026950253474269951679450415545361561820867065574414928100954396936503327406730734685589287709799896345001296168060380064819825261648581017217382175012612016188582117926510898048298018693001628934052417496295298822346461283706811258575492807391108365369560474311299369772229127280695077309884563864897353103648633759127769944249438985093640277085875812762061480418703948206320147157611304119711240448062226837491730485257377734686521639308231218136334628838690135230438976142312430273781753661596603546589580197746807092515820201665802504927696008691013203307579854343537900844510595584495334019327050377592253733631088370611294896570317146729808725499619409950016477777862420074502138512700731167262698827442178064623671208022945824156363307750846052681737482735856821662621335647895287029833412440599123928812675431120726569245143882015880897294273622877629834408014925741310867786187945466964280863566811057858840796603507511386580333707143405993961563366549499223788880582874376265869298055028324577917791112001913715097106490707897007085133758235699236563143442967117488106985264867217060125604703551816169438105750543963545193427873285807266890004196984196941887708750008561542402913055805269993564885419685176134680566891446774103708680889414444765750230572100180225401572144513486515989546203913582538424749459194549272619647298448556074677337823801456097377402385350968543760650499894210677049723992769393568923179860982123670110540227897422944503276091896181130154138265837873830802021212294738723955190215449635050787619615428069768881556151631942720080422620256930745662372701557751075638592916694086902118171372780066411334927395749480676316143587781718347479919133236559255278253451429180583825964038874535215975483619779170276926723123454530583647317451038267511903962491698324142968476698289637056612163714362518469222369023058664297441539740284512822586866172020910842219729282511563771027116352780087180577897664848255145042007885254988805914162104894897590066188276063488916960541001058076057516500059859616399171347144066031417224057198821055851266850446254860599378022021867562346426876556243855722238725225301481016689559342007953262567914505125780755558459144079420184834220029025717227904223413970000674709717635314135377914915418141999913257940221682518470979044781596480173285447568031792897892847956367176234572298774970276247964897306494079934682347662500750546756249689386107275090558226515998767794861376120423712385522749982591835984997497563681687123927228174467506474195909663004026005796937804517094862758540142155957510274728995173585434940636099425918050224215371522023556868801133968326377443793867347578511746812587567117148881793739762300527276256080546738838162378838264116606881456008493561547973339186447799626103884128188959783274266017525559363602303157843486801012241363191089064087029537453661586747851456224950518315895232918993009531335679216537023682193866051866457330104135868789294536134623963857995058799355327502049353076527278888933151251585675907920325130034974402435200739951810623974539623185360993489933518371853801589497289761519200768508080121667543182029432703840173712526845910985078031662875527834717063901417096346499039131400152798934836369053218764183997943707496502820049268791745093883729971354222027401300619660184233945632455168668573911836593487122959351480874631296207127939884640946657536838552531868586788693936958266121474813074508049397710010818275052745980441041526615743679354552793403160460262958596787786506662861814131195504107797174480323836799372599787597779207844461521195066675033972818956937036209168308442658283367447439778122587538228101553467097464007317182088312116780665438547292175422271705766118799516208342080296967380456953344095896803968207784198700315294566127818055636203187663136578067361834470280097353533487723426758062855988139845022757712539189410574862244132796890084290590236051851863542107444860788708574050909188978065941210215137396865737966954573243616006047939819954249045715161056107681455374983902061967611080900182300527712411316176742106014490021287525196209873206658808432178184854657704510815487998483956634785736224394371596526171395354333352863724880070945231196790193478984945417006186462268010091936205392304262961021730586744493441700530619485941840829982506481135518063054271799193639254180877782994081731793356730778124276184389307015737672663998754135461497810393948277075533268258321103513414138776998505944617830491647969634572452739983176415910101071974324345259382113587543735665840585240669797959911747543608444052471961551885924078656668995988940248257066133654395738540511898517575165177654400272012730773208010739279007744800103081643085398818715247738296890855253582329465754807123743921138443929361244027215166087942553019579398843940507985901497332857470470306588737445289315486769162348076640287090925634013630338913061278813419023881596173096612753688896113068811113663052700615070254476473038022464577019503014711960362649437993060797589350868874676277233170057717996266949686649280566628677915500900733562274254957013846084622295940071952473663555971139121457391225632011595315694568160620032235457893346301020517765185857401493707381187390956198022797715969148890756486228270884910672350173868946220017554347697598572885705726740149463125006078787823488763496437824070675858852364409928619438893726108078037917290115444691578164120426986450181671902876697197433842004045865163303104649715322281463357007144659867622248584303744375746799352977117728697543957356560646560411503289347752839133148026389517364740320411678020001409627953993522597620795766781069451874191987905751984214717179976524502557394698679204825726278125269370943330600184190728244379326952243181594468967721179251806783334673588267747410471913843391727009648263031338143155881982356056448444510715651079940150569061928705859366453255114955001366704292542360006040727824776862642910334000205060153530332670008931776039647122670387300213381691248599744272105097720731538722536363727735684629259574340832589652003890176664255537639420848687638528629456164660331833005516437927667010927749410165339188590811479539553273017195562374236786573253293104165210361714851521036244189672865837651029350404151079924028684639375027742919215558453542518222741495035171089229765127911686230536597593314057495420295840992667723531359829606188544253895881555408917177497806115677030813995997366662860700540837437720166382928018307342902674410806169103407441629342665561138292739859029426341018144247432824075724466895233539755635078609437839991343464474528297168292526370568411385022512333286282631583247324026233694527870481533440165312020381352272255369548493615819273226133079508298061085597045099868607518779712132788761949202464414643925501674420372401550236168964134479460575757403765055430527483277842528725529670449698067690423168842322216837471446197834013779535305612528148795374007126814214102738161638493651211783995082287756184308376040755496657425891505329760703784584645370782353923385519789405328192058865606699558992657708033666300600089310423915918018082187647038644508751073014447596219715046905110408011384182992716592183187726898175361491649425029544534463770947343361424548465419149613873975286736028148187925816341498244982252288733654408017269927812150257161452637816565496247079464375146911823471042698354676226173298267038950997057549812401870688663666115958866184259347790767550266465237409975236764037312349834193218551369768035414229252505988725828265476172554344340301640793591419508617046336804531329490538913410660414657240167049408748713909568212819573727949202048517795559070496322486147175853218764406560413476910879097284212224057326741443213206335841547930264817930593135077925532075793090105460501082819776395674840517854281023686518976227576280165020987007302952135229845463528772320836438574940983187000247025195510314870337308899169047485251745518766609825252079620248484617480892194282175345399888749151715811197577230647426942422389611073626721067814886139122700545759976892637773680126008179153741654428112253262405844184875912775569616881763101282488697903214641734874345234042756148503303110882864255786419224940693086380565881019404186809238642219740685699097829996353791849653518448472778369086620935849975782698260650363865694010928836102961667570916543562645533685929660035068290743958631761063496371464407564649720501800971233206982646990445526680633330211986412651228870415243676576855997357512107330242559484056585374470158955630343891961140582916772639183187598769207367196641905573060245484681246756132089770444614910659817429871902714862757401437305010921461486052830705788944861478576614019752439459323842655444976333420817365804484729144543146027007369049431032829114797424993895555694893338298849126158747896864614834276240639497868601202283649420634987835773416407798094635960124967769643393446066398549212916451783669324510479705391203468889176127820616586155187149450696292088210377326562567581214013522079567244927352022632161470128790383081748902099669155971796008638588217554960290732338794139958867402202464115016370461118577776685382966037995882557223150493186922367881719804970093976815993991945554873387229043283744902044068942391703600818840331284732081778368458829299639295819096001259999232951976443334520831465534691276990267213776633728019399442499585383152388348129800657755127098209751561652227887607236886848634496435347394543758047225707932060401631814675345178079103220618210949246733582594997326988498804266760152508998956728126760255976530571360755979811916560406128617860340451117739214878758329689232625740655802946851943521613652126403146878685205037106777937499866935315786083635411969855192329687831847511936886189574381726570102286158394271493122552547630818270900666493383078943301280407438113815466367770440025660323422893314663482153648121846296735164022939524626150076693290081442062884795967023256414890677108107109446365344073427183513310887296212275060318438668718898351512298471387294579483660656385365035954787929821138620482097788582573370021977300440529068228448219919241729114792177948558295065181845899890739043662392078267423091745937490917490428187036140149187061768276151907999497005753333385059649869943634594411590523994874278688614291981051532262197108965290677218555103601495337238763805957956341000834225407120196413138840396301899774185930876405798826239283978600523568103114035366211681491999687041100285048403135565715224152101235506984508727664516485976702460363738698295532434876374470626232348867322493242979267360189535536686978037065667877549058733724169095558468106206561031481464133559977444254746957474101028081556106567562928118586466155289847793815202446699642651650995010569874550502664187203679223092388407717079800039568539057869247775991514214041784785992692042945428133099827444729522216700033147727462919708976378848852703573114362323882277921828868806406473001929952990425928010996499431642434726389780904979874500746109174269199800881429624224909124886303350737306255234549260540973866506134533582167836306018998452426905327115360108910186892572862967995476987129082840086000344732075983967185454003521027662694563708944134664856092626257142903154689699761164251150223727731656651872863004145317751941793210613361546905562823112986548862380310696815329033245939590100604390484710957233713867242091215989924114670891732204400509859575234244683835487724855825393663866126204211862930208476583406739936736546165751963913615785921522175859132847590470561085675362805019474722318130751882849974935985570022608411249207776913381981530422456144663881147198565054168796307245289318947066591318242487513578843988738030975799207491115244928755004235875050320657858460490034066822943065134002829568544193072741487073483576055791930865237653914749549926694919756785529153981223056652428905609800227301617197962257139521012579001231774284814287894550515803523388086531675207816240256396501094360853935876519854413701811504826165456373100926971207528906202882335867179043896206666964707076684889162808187047462486761110323016046669136648584204835640620580277866272152576060628202954154952227951331009927260767182773769811587313909073935921624393717270985547490095151418151792385209701410633047640925453270766385386988726450686331048573013666714034815943108131959840778239013212867370817613003994149451052436205607588402253276450087499619253398690763872540699598263277098743962001657152448613548717715699218075476344082563004026501038820357595360901513682979176721463448273052992239523662359242942148514582688398654783355832499465013566401422980813807851833814392024267991130612525995904172285795680725796040845551073252665894033167938861416261301542302587346223153001908692672565346944497326573244662512284158538057231935476176026670094813263119604240116538470289891453808394687016697135542722984672843405328344984190621340937662502501930534431585612518976034751758400826363779497647606043694281063136895002913252185447682663766315696784350630115351177362544596549785516560634711052461569539099458449700214165244907082564135630072298466239640627440464281325867976036689325962411307152429489843290165284978194716228066883113147937185000514305677341481192200690998674777821155309604604947177310551289007648423372797540585358266210959371282024638337219933345372407939369892864717904194679280740701774973495893503086142081077272641539959092171907600909972228741504157382442359161566776687727543737248551263532336650229428717074828015508220230826147510813817496170581954577772892612160593962877232355937806446909683308211576043030879680339349624117550895485246382697997885772727488993780790098031709024026875129047569541114456497604826624925949297245543674734432615734546253526699284637228049618690302219773051695776668809033404115589991076326754916879247664048513792412521493864252354381820990526650724763217226510779614929112684148936943425003758291327080880609958057680619577299479441851881848612786367944956020920007213610988866611072890503922654598098779113956205634483667680512055720417775115499173370002284405449665251888418545831282126670235640932569091124774440506540142345443962538660783930944766654722405385971461691883008881872026559096034654791552480117687463295239673258123247982218814890449238070166340397727893861770513896574487185825379640682817741238878407097538356706779784003685294062636878214431725870826486015869680683245581897965749605382733842705808461534407811321637398599957851154164667176406515054394269676064415587918465629882673992030385044894668520765878773332802643036494217020287577528170424049142273304656854147953593713317956284699917225343476410955678021438742779816355824263131525474330071136113899740689531900121108934627477160491452250859860360782844186451384763305241303710607914844063447559594255082572561112861513761354053725942702041349219905004556661437879247183383361653201871674420084346638914982057998004318972813160907955686110647981805751716418937935035137984495828851944762196125032450905373117629920459618706822112122093726527176973888746121903577597680753642903135465330443868161205258788570531451627562459491126815986314313254811789070341834010916604685876516511581940175095247941301271692063030295297255290970040137195768715551902167242381065697077469704015905851343699008077557335148838809699233432750649176138932968559499207937375402691394446011887171974839401110742216374088689434713426582069750672636858746722267857822656013974465858588713653267325387549764811299707771613371529869278172240676262682837150061940571566276898211287067278592176560395657924995320291058749985577275253856542004371888964084402928931989022803929933461879144780791286143538863913463541250230693328769450044009739174025558416946813408273654533137494248882222321884290992269628021995281359515394595427435758690706554482558664405359477820201125536391022147900284290872412583421409023273099291806391973462122943567228079719036136741136263792237177141574867584253862086882656883548322804160005362278014844867296885766651799180743919965775149635830076985376221674057622125963792778441038230204996540385043775615336360673235878689257887498121343804790441950244101115873061686524404572660202131572914554435756545315916897367905205977704853039288470964644026818503299929545865053528240135953017072263320126119742327285742551238510910778026327295022646177671520813642283784509607446795712347104402213520605521730109329766769811617220024683855489197933712958892858546570613861827219425593172388681231754868127064495455159615003089024620648586391592451362323189160854961745752535641505947595403149542848998343370108481801778274681987000094836023258070789386751718946930628265289617913241166403139170121763234323283898260832178926856655198923734901406908512856074067272972484109303533563965924870038677768883615662263066983726070545934229033821117459096193736544718854329005470149212170731146367367859943134752740239856859757668306195058357585438631557815775600847367262597502933983529475363297377877954775574028452558760842258442602040166170330874277600842834774168451739146839662600100196083327735086788506931455792841986050678302016639492594362981836099504231505974559364024031600832705925781336471637030231402702092760900978354888153386798107935591815206196705488856613797467975335038201186936221803677649942715753688905948191964733108792222814464279015012091435640449777228032591702568186656830577577810935966217527562570783687696350497003106098021671738071138060962712868363429053067792052683270002263821652612313139994456794643912830749566019633476422082286786767279043710131671341197086558449123978712320852954411966100506131002511263083475227516756226165985871848511251846593037598955180306880599547148186182593899432558989920535979363943516558685561600606727109751321413747453147045111496833316976258806387221920049566279068267009849379304508903807122501573192053782045630264203918210199968298108398977801041265785021457018814717528242465718712652415706606732394516990305018680576165683510426455962859184806452702476785607348264087761972330550906069944741785774303395803723429185122184645536106150472100330750562409126559880185435702534060505330531017128834146615669089596687742672081302120237635484613137253741526719348182822858757730820454124316889042471686358071151827602363420786431192224210981253657722983064192011240897410650174968420269978181322162493643771689316437729580885376675374058575043669386208004267518647857659952267971837011534334707676093805307636410750517664125644287762416780026477479131848514893953987582585364992186346212112919058154418139848597558492800256701957461870575141950835956184377332935173888275460895343943965045685529448354508550389427943411805501094471912124455091007291080785846604627212023356681660604259873641566173361854464274752043008805307552370671655806484749596195190691608816328974135398727677550145377833205053197409372155080556418738699583162844150739660538408716579028568840299906729558455279587083582269551423445222754683804102608435501743994069835047920019396958366677415953204890560330910471224666790846199250309502322219055183751861557950107933065310274969957258639716353140610965971007698408073743087033818786695718082159297022987851326220525383769010754799157006808202014278459838494019224714586745327516746219432368643308966823383390356260153494672751127833774248031140657207841466070641611566422916424289316439161517360401235384709454577994668664313799579541264808229612135720990557147585611046174247951028535708361440190380458036088375909711766100921915783343352124932973890466074218977984372235660954430389904358739331192021179011994779087612168014869303160277996373929889733644418429486818641709439115637795843047433143153888246488232078734768497628420200884054070596832760841904378698504252964600288979858436314508835557799037565500199906726170158627904974722930795655928980575509532056510128729648798722004820427686534217952827172120365500913770079100458118459705819596754080235539913628550807132211369215531360876018157378657203835382956865847468431166770266005729751078588071728578711152103769029305241601938792750275909231761352175258674611676219866623993106420049589738309412817170172376086351811212851947464664099376833948507962243700166722950501127679336858413901046178137192005721910239167257999737270528693285719720993503671392023676368621344605558202115660048026524703844339017380144389713335570240119331790534621481572706067916874900895228701320003984128512125650635134847386877623472579853907684009507378716414241550109578201678676647942041530697436257224906235000862958595593422342533018904615484196516099068244104969623892651816267595244560661914985595243061911514533006263207641366775943458336022408334518513036559685089855235326870751874461608286063918124513662684105649325055316033199250766727010813920273348441812906134242386052381087001072049566485454534137554341492696897064932705548122539414570511381466426956608468296728626689160498856478474383988203254833071432906099759181547686627972994577637419546618142679329142575637152613243675429252803785738656299570490440862868494611651966383260858779061017356803903945285076060454313744280225590898775412869078377115263464754406008559661138674776565750692962615528897105843844389095118831404951949830458637607429627462364504690787853859510441114136867236082127540069184638199635784108418561236103685197729991607332003906429053621964492546209263288305429718642455775964769686643055939099120098450954327191078665676291770004137437116589021361832239793760589742815145527211007445186915399373116038888053923614462387293279468555959573659862039929488060188614698085329617153776624178772916449709127148010042428436306107374922177727503757260180939012058555248059256996869977131875401712507688828471783820339961838820961749171209963595190004255145585272465751386307954240559722090322599379564437734037831293960831462003626284437697057225081883146435116837759457316339177032942975597887181201246940669248746080399591484319430047838797017543521728894753147739250944780347841679756006731468571892247493950965747213815481406305352777703815989935369043682483110263501756462049312326846421582317591353260936949075190844503922730712948624136774377281432882461274030764531244431745453462365369063433378315784926130231667312984195346369311703151989935809845961145463501154363814775210664910584133762582070103778556645773892952693189538232766754766300818182680321903224071939971043926807577304184492018276172475618228867188666968605152134014225108098763421815980305787259751891949539938136175591452030222129364190862330230893535655960447530735025307172605493626597942741710466432386935667968074774378952989709884483434386112136681840420432570676791613930926806429527387618925376989152062387094069518213929159742405763431453732166635366110965597493292019828079689063769253451907652511993054314566898064162116282474391784309535527815465520059705358244312954440944485275296979176105461301107383285377966630208123380463247877799813578389051249562128818563991742236008722989810677052925914466763335710274309041955706350467274331377865874863255393467154290923069885607060835382563415557849905591210585965334347062239738670092616299201220356787831538478924346456019545612677382119104664151662041278369750265878129794345518540578986179442121750536458287658259788316718013375325168689172276192994090643093406491701378121627457631961990278906357033216304322042383336389367929285436515878863469297704236335323211853826249787074172260905905049569123927239432162997331616104399527933633617226705977683954202193778839820370932822388885546239782429031246707984215542706175469739386262321102675769362232489011886657535613749864430731804263041937582198795257307543392260060570078509565631484600318648999905162564194213503123491865418619491290019084767440342072930488416749772672812005614359340794960830999064440544684538886085120625536397419865992673069167647274876165334408889280166684829208012479653133547730394730232652080218408837319976216426380180855411761553173243187419645733804535698554419460304479009106787633300843524714117177462094390683587158017383582921507857270953092829888771579884157523814934528369322501395522961294132354490562668667396927801098734416997901935542190196739446823351643284896995552320534513629773088636963149958263263380450655091114631228863806433435331835702693267736132374045901719280711519045469024080285825136367943510553171653677552853595490511542861031632794554335630142057194906739499210602198161781746180358015384483477200946995981338457978284511889191483525025005006253882250878159379518011204332199740812870377687958694127371147726613377795637509984082133330888028976851293267309897951068928429165937126798667519333206070775276385045467820270423624967623046326274517475680728429863528892515311351083536177025020246569707432581767740306832285154500044047074670550203144915587401871904149377395449802058950216294901781662701485134934860938911901099213888912638366054988347182352638772475023580620328696922260270283980077786803041940214359155376405562351818036363849305349984156908382581872849175520739008179008285015605057189683645949160903795682532711560827039951258541313472827185455723203165338216217131760839865718676435600385738463350181123937895969757196745654798781999619298771482015472884128283920170869539784643010633417285582139697574373657886709174675835791295156217721190080353859121547046089471175213173796901270418201703467800244127983066913415936353427976037765868580967493819171064541998103265883742578644094747085091324112893230546128105864716925473887045522370969460268265797115007191661114769140889117464742152307989861341201350706507359302161703343325865155720473830120299718239670305466745229248943679421651253642563703279909735650581892995127808419428759459712566465762966146035332284910675053406053879052358564073929728648440960633877556943763894155779483075340039046923343965088047612055415556590194152528571255711480637716315507153258525454318220225691452694300900840179974527133134671850841517001106926937863156017861503280726198835819967843031831065602338179668007425796072119157252763729924987955722529353260814596882516785002290426298482210167902914270881229909431351111068593881532618310235073681077897804982006271447463703614427808662132490017230413579728722525532187094247424632589597306161642491358904762137456828808366237249149128216094590749656326410514240979873175961134003688780095900541245658435510768749650970104683367856190360897166257013184827279831619012796910412847385898263535831137283738349552722988336162859566600848554684965208472203160650082942825636641417200205681982223679427946746473296723879634431392962840609497884347455007669225710389532337264062443816492760477720491416488976404520588998561197528562704719102693119850917965947108626850467535031015593957099138524129541546934451714935834812173243701957481309954420393712804854975121782083772332826329489471168972786819894765295631983789698754186806193601941264511465347769954059493007820462233585671150207945741838017031678197240598678140359940676451155240024041081379111759487924223436687912082774973858285216291962967599994241311989060236383188627300308384459072202857124937874044970773006764855435043297290944389726799218721830043860200098962086785581644433060216504827657787581045103880057148981229462788044512683379747038919392582381892755202732289626085897573001169212054734975920706841522536324937210333543014552973801607160331174725578053923115288610885026902024829919233778311546951290032332086086819571277779404070402594414996247400799467846731307034189192979850617030230066546019848345114158081362028477874791733090885295233929420333021797809214935976657554374853202994765853210793591202205817437535969505494134037789902105257582069270559687381688244595999328200854709552395603606768002519223084085797356434516676478343716046193089134136665818666425166444162925945791038032564569048003887674124274779850104876491117229754573356947662329757189669933962409304764891313000067126565284833485486382852372648597681318450652262197863366246666706155093315756531573419876199375002331942692601257403213725265166716302720766154809181319918152834438562833288478127703157814245022366322521768595768819530774348729481095062764942871093578460511847063411552708438197730091105558057104999344539025205520216983010285930800132227612371508034881516243498620154136221835264555198069956604305780887226084575450780681708677194016909711254625377345024213870020258658903086233319046895447865358911750562955802048063278369254323053442202210716729268767131301836545653898355817787134288930350645659521248055793659144355716135833056182168281013316208812599193440647958127076389350729628262022737418071615963979401993777054600130436649116081247518093054482794932270828210940706292027009861962700646785793817704361364072814346074413518359991287258119104149795401996839396053107672296113205823125465338157990178037575692332343848409159991631926834301875960225560193060879706754295604502402032292033516338589454433187972997384359283891888418720160106012756810585255049923506088232945684382957323495854912511433960386322966856930682020630998458901185398330415811124196758662627403037984615263078825885323948016554459786955423401821149583037730234060140808552693965428040662408731088312405541574782175299392549231380455333581433494891953374273244752105154161839635035252840361931567356595154835011064063405613241530504197139285475820519051565434126501468909859038710450657685614719796218045362752206696290033431756879060552734782036903638029595347964834799814793910835403404738844618536055107292859245805655806490866113158152723481649903944869171967406406969560176881854745522505426765688440503652745857020272745854596488969621200903028700036356523128245173297181917502268728441485784519711063674332492910792226306156005842960313747765791934911582999068615796727456531049711542883903434415846818963451022013451970676334874374254478457129596194005804072898223336708064478684062215137584510930882270878190831391737737870098822653018744057605764470505629181724583044920282843580348646084091065106441721734647117287315002940513870385645362728553615872657320656037935853542176026354320152659128330807362616571559425761928318903865785601944539048386378567370357382820571471435371329901530951998267069681859543147677597342754168881237817938594663832557734372736980820573768664529821416833182634205268975648516398110468242942070050386895135292180675126308091212186008060974821172879565620557409601290931765774179353425661608909860540117779612727938259080578617570233071044854594073232284262283871635308303521798502082422069304162065265328959505385638721904186874452531320145369039931773025888893661620356308330847670028968035862736820696966426880592938724833887795763617013494571244950296777906760521719568335797245581914000697027365152893356592993908201768767751285851655320630922723537075132510326224567462229894343818757579566625755224491746418091454724455587043461129131599200425395705094091210583171737230888143185795696708356287194965134964397490939877767012090279315196229625933620873074744876013415098985279621135554701387532042195692398999505335067022437847892459908356377055323173886300777547356721431754506820921150063822157678323948522282493007848621649507119283151572288300219844449517229594579960445086313208999383081447238536670732283385826024921128935636032108626524154220861936391144198477109829054055854799699929219407487014952511211003440122093399180969145510459320260345479486552430843206991880029149958347970066263581302545758246569777865046069843146088397106457745097660078582017064571507998358939061411385672795383556908614909224861769799290774344527282731724192251938451569984730909421943703791561234224603754909706636699073425926704848820783763519768557021771920883211403031499492548660545765317007127392465936758613931087508936362800750676861526711022831400192248086583280423465027812451680734296621083854948095254942465310138474442831458970409664629735492586395205126916323815277107324540039355642905108934928019632143777609300942693178822490836310876945358129459924025654799041754289189601153539950819108641425440678633940943229450834792856648665159572494012084733589267976398808285130442488885577470516277916121783862264525073956619803358926352474984760734609913548591695995836817681347336877700669265911986343969242302207049422605998767877458661541408078296193397960376616221980333276496059532758814811591030618140356732345470761770355328733659882720158096045067713958167729207997603141453835805434287602290211928610460764494068951198861351485149070577079642032007458955107310313719302179457677347381317320745113193392280132132793294104302588120698181420592434655478730143242848592347544404564110418268230207755559424420333575467362973389036654243518239863187306407854032401152441098994277895587116050470185470321990546973927979571494104146645684028161888101190219952543220778504522775809790377486373583222390796456918556480911915844365363174214386965631797239492013241846443146836002505352659872116834200742831103873800126562122510576281614269694427187100661244838698740135101142361939692799953386042713663399757858389304926848122063086850160916761828844300449424850712746333636645943459002892560829573343888763777397908743827240669857067362268887224331274618813986814038309832788111136917006400927225495414966250422684360961658956286068360054017706136136403725372807982655042713769052470605297763673905206186751231503570646111551743996115045869617914341112810420079939875367272978330264808078505527267077914743839256897401052586264066721337341475247526112078498103063823246034368300527574283753860010445809295974201714758075600417194943514936068966805842203872930876575227453680419123870125527009826087932943194077253197370079824459909933588346283847390512342797587173885183034437648895844354786846745099289956741661087174466282909408084108497181307561016174599543489315229588090680490681578488789536236989022488019612350658049395865315054682165073672793919915830005797386363835035409518732593879173395142834130943676900830298136984180211050901132962807959481309845851346296599480400963568736866493910363090138037896231365857913663247310892256698586917891615220530226617328573264916488617734063758354940822388361462589905993226247914819460345398104682776641676589762546139704581687607408912789831863665341052489445230481458140589689123539176169629989216933995399850110804936562916699474197341700994942438592349618114918158206082278932641819967218625981081075010491026130540005865838905188485766921974329570362178830149406713328953600727072017186578466068243604571347818475360783283279908519088536368679305571346474589537277076866984742321334121313638386978829501547909527508436603419829091956563716570041598685147805386093440925482789014695223970112540513672945035129087085580549854289371449985892677871876394058180659797214731585886546492054456020698014967462015365442365788835843405012783546618970364704368531432791143857830804567887668877234863297714421670603404056334352443299113940851679404905906958047905291855675625691928241465911278382238380830283484661256477678837622928351721023459490213924285258602283005158769161531520674665273721736868164065160901429585949714627432796304831177003335504266056145449038052576207735757970006968396748720563964665733307642812908678609110678419140420080883411080403394983147210079634251052182082739120442613138595674017941011251812478594321994634999027011484594528532106640466293566786621659797041445561985537726914062894431429544117652580176434177592510143737735083904230316704390884065943552488063854143677658462289909446234552967143183202283291348576537556717111800063514941098610514590312214925395899116431446524387337525570958659228209682990970556290930573975851485835493376347235177344431489274205082445434606640954352273946949733325155554230855572139561917363686199117094356289969928570911591881020327285739533238870760722281100891082629509418034291309319245855907219545598235815700872511542659521160141570451499478883670962738460250745254474928844424561739500494502201652581264696794561238302889610322601663342730765617870857591619283432038446591837456300831414689508375144010587179610990358678291068227103239717181661754395677061449670244562809272018512456984490570190806244851708074676629728330318152137658979252815000608389217600380146076577571894601515679780589276446555623898191257626720886365651463302003964224546303777012612483325790067837578080156296339590253222651282019589273445313228664871663619352679515845082179053150198528682451544461006182166547758735553509961730072280156369578139291561875300613206109765270552006828090593156013450443544690202290880466853132647030159906548399012577640950305554391627093374720607931526508455857167267150589629500365879789542108030847745067627493029982287920465953727578038264715419614751294741638400481570567248849018313672764751936495740452836028960804542202596561729244526070537273280151411062331292581253048558990146772116250439191312882531471612762676037450848851794417761318635536462655685524098651670004900930077169984978859528128597345132896170655953851116670163718795766368957221389302274630255320378831525437916877563264434603167512965492863385887911843149131755069619026231655586426910507472406101208378554275194377515343034363148169659904074036532216808626539747679712561823617721292706889493377872011451600545389587860417682497917220947032141437299181959481521911735091485418309019675540028650939741767752607246321651769801831714527931299191070905842681538612712683289930286747232760910364261104078546790031988309581679846252429851846708573521539051233264777597770991293056569239035160630284274634050949291088833537337613554011406452521023618247493986918098366091488003023284238218496821814892171644983805438201106910274125447799842850120461222906525832378443762834231460526113409553263683271558375435130276576331278082722730963248573470542632923728014444487556947172081324172107617914126516547380218045104652910925101298449129196876629280193708275190360116409241495156856652129623079941550414400609397734549222658356819369136050129781265039876095305562563514737139068057087054470340265776869364876189153152984175805240633898219663084729499313808235238076732838874728822628865108881441600280583401902803903241972176816392163482442430632911345508913514860807072222743982288001813791347737435300656730116476119758616870647972097171702236660048892751609467416654333582164594580269895390957343380101020483842976120262390824569331158306841516373310152532156321736445970073681618094602915834453351047164758774141052475763007440364019540683669874469242245589978202985846759715166855073477265525283001636075063894848988756688291191882972233706091897521439148340308408974589082476124765828533360655140634914259438035317115090614349310289784718012745740694290358685412589494101540987616310485573001989300363546494155201979585404492441495667370991448771637340010432303447894948736483188178945740302021302445008515421561750379884928364481409596076768211847373290290005495577848580673483672736859089649417264530322766857697612297258081124953649975221644844596633533258708044474937871800715314279399091601398376450031769461579529805471412281981594441184866234607961199507067154311675702095748326822774897178277195199923668207834059754005024195905432926098514632677209567315602009121226324274759957638590464773825099011756344243763475767956884695457505557799479082037295011718443259084173142493260603125979586835868292083881739636453598546936875348907145319101265894978338885969217990755271284796485177098445696722699764483849396579349929022843839651852641740692924177321246157355900583964524960734533490842632642540848825031211219129284325655149431824655924413374944122499010824670584322417296726997396209611487828593618013287755783642279258478658902112623203703074614687000227890782681946231778307367014303806865482256770453004956919621088099750674411911957870374739517962221263340375044858624186422748360010939366227637462334988906145684310745574403512032024546049167309239756813748018439328598852997041360496627085716014151133978486744750880609488837256263210231384926461144854047973968793824714553337138700773221583087071043620937999873581203164646002495223939613649550271292829197266993426469537891369165179459580058791861745316130384939776893629628606363739489986827361025822955432588576016539177922954135599556238564847163304566237572029419716489972671641564560490494383514605916485793676759000544310638345599781746570434668264153649548928407981677401528861399420705048904944352441184568616285110828853707948091815382529864043457108581217526913749133002020471661548793127476277833017169362223176299439228230782534555406870078126807999589031695477271220574372581324979504889552042543745201752315478625765689147941917382353522078025727935683915011990060528879313177033868137920469692562942750297041063392743486366704919063365771013689410021392317112284231095752913192521624826166306008756325141931554205035181287333788882106471013308978329295753248561952330960558330349897863222792080696493613960468694145976354609323596503680364953796679510875763999793779800045319043068792081590667149197058052678615378314620178639640575133935936665778236314753537143586134729823228293782948608462271497551955875961563640478051247132730080221005054540040591401930714102653157425821573438868971305536676412023150369207301400064159802938443342723886671268162761100127961065383026674962882697324167734367808793288413728461071801890675105599852711980420165776834861739614175904558586677697424146949528254896598209158264107124494105871948621900385027213508161014617277244913005666878394809471625995728964615984285247947098813113300740740449553415724383256069798556661800598409268854240655001179077058631480972922002715323081094048754646002728475901376400880479762182482749147977014168723848102095761044378004971343047552617595764269299887867665180362412807168314786942128125756990769835650947532984004488750830551384014759623649467404049683414705268227739391462425044801974288089911117861745305692184921603097914592266171086525986521536648288575614678737444362926565716365775321040354681869060530241204119916659008956411685897129478191351599898315804958673270010851539374359342111463550317250810550052759120479387780131111746043534136068302956461542024440066992465982276399385956603056828825162943185628722336739634188573562774618734629398660276629237107376982352643422367675752490855951803982280125472784422539215145029517531296883036361732472615500134368283753471730569478832866937049125921489211769507383785275150747313062855742207430624773399899309949482908517939393505951295580503033370926363552705318401323754518696509411701871722530167064088196757115305302090058103590104262532339222857552686015687496698800568209140998920588699792461604921320790148490345022863889446990158119420087045829090217792923121201142271695547227651768042714905170093775274050483450449073122581761675813494060210580900987624140976169620370488955115722061822112882054375242076996799790222729361443168525275582610748557323694001604288023496229003112884956345690484011194932628904744757443363954288574617861816101411199910783459017284262525673353138935931043604417808760771267117348811484212965123909535282248610041410126703510856825549877775347806494920114312716252868802619761907341880935170425658570682312047385169224570131368678592866060245408716750886956231359192216196533524480590209393530012419933339060208937144978117372969174251613156227650335072192729531892316073553856607504631276423050877482874325263715228606612244939264527015013504346144959013338432225892443934731600071843456352952074818366540845827485687047439119116811367020832195331443566808428639483777047404848313093285834518871056650105035917438230236952845553913320136881417065788411628955580583766284845378821179946946799066182290108479513477026679723069254817136307615748125671526697277387966987058394789546578654249849838009312588404463586717531580948412166408655269321158381723764498631720515989295328572966457390340487681775383052353565916392926537783579385365585733608115073024216714927568097605984781673809869871435414277122353325694566656310507214615066946974845546217220203521878251478055018461580233565996438418289115934137161601976533538977029301494791363810573143441539317251607699461550945709695445977685339680511981340857779387726781891581070773951977074585023596802085211668589382279268930865089908611528591800516732071876925254096098010559274119942103126036915295770652419950230856354554010823203075135894301075166525112345740408434897416101884484839956509364659589384734800198465209375986385677196636470440030149996208908001557726291257400979427602180197210272825303655593758647231911191771472972633271890947035370715885991557285191419133402148402844913376210398630845742897290028226995836631084113902876330110250168859199069489754905674385308662644722299265972505782492449901658738738425817915294764659806851341428318923065176058748397671563331012109271669781460405961447999862282102990317367944178093840286603511740218210493433660781676297303925162957698313704765035107152240306151133943350943592635949813598249207840360853846806688304452453173406225921206563791457939076430725566564607273272984519939675722082060790770922716280654083541952431532589698662990421568905541542765939003734389027114824218542538480650170139630063674774832885190679407802051254125054297631973281870157501559120815218030840750736967379571601963577325205316764342559800424311787840235066548557756260785656417786306575646937003553275083536228301670514503853071700898962795436232939012700643252992625511939726617308855484498904846235241220955621191325140904529388704886053557724058364345405696844498548460025846084884179759416245943274149524022656313463770766432590761363744858391337080195551724457537185617678569548559365529157730210046700249356145892404228692339290961330490791997356186642306787790681536924023331672665251787772924718368114018161248140484185132427685320279964949177440712273483445769535711596395269468478289519782202257522161407807601766327362022098448812928898708679280040715538536675342009170590801452345992583689005800650818576585353076732034624337158183544920845802407353516073136096404295567921818489904804573988850805075376932980411667364948349625087949536844287002466565973265581805329000118040429990965123133550708436343275733016755805143185583974798748306408253706895892792108826556499688244234229479891421877242178868426915363620670405197644172138466799664203586129699641649945902604934595897267698006132437296517546364146550208536434615842622080096279098082337686345310635241930076978680993585402062544278389763641064593022513935424946349797067259956607686585245267007581078792088799792051610033927190873183843808565689619686240028413535163028102513876277830514700508492110017334835974814119193764768963525689854402978686852841615142419806821388377867638454201731298215223256326132427319230637883386950331616638762881086462462521045957183484976833201943834002339874065076226541169301325964903417999900420216196624286476010838378643680483986716197278014549935889270877174776200194923379675710694744338369149418274063323651294690657446056697312237632725351014699076342834702536064145414500634921775758836976018161464900042833934976111431528713640082160452169968293869978197053787854663439216707284342705514007307115663881341345289470063120337701753548443593564524455708411323804641347635813642450473858226875267799742339020447206421750699488979341557928365582496806434347881802685242487035631805905907197113508556695939695739981877095070810281981397201603099560444210895521014989084124653052593951589709354284847440718551289374268557926996708528682406732973097519266463768418293133251065113409714580303711012215083200416096035758025745236617093149469329250214089914425701503600241461145631519067068590630771706155523239565728038080308602576412136046125139827291366934135504678547828669598378632469024913914348645183063943358046444859154164265506866309240973290484117740467817457372457509286076296539754734623448395847400822534653293784098259377238165895431515552040283919771344883642301840311404755474701992852452339565915648491125387326961839565201206486704684687553694461355341335296811669125774042926772000150773823933574913985991598523940716427416209435480052756275188400102620606256206555399122913057394810587069702340370675187792280531192135371968156243099893141073003125886519497586229188063551119641048674179211566734159605415121305426371271652336680122271801972363812132231465001570529496457650715719011374021857739410011502914379316207091809737308688758019138539502697680775784896429273590079801896115319822118457107172946203930095815729892099227341773060894162086744807219708442715568107663161606755075700228082174542284648289138199795508400659152180830438515346566790179148783689873958345506520759711620643925251020234484759626913934637492615433219222537303081018671127385442153972103091289771959612952064907708123591356593210518823299994583863668407406884142359540057792867601297070757039641287561516191624116903356181669757587562376209397922036560060297601350490024289286707364044820691313198799915580275505313392518950663507637586971944327215963851141211025643916884311910174050333004543734755623538715217819025731213535047001994884089922938877317573802740961198566397025106348622617067769144732347796143511558858797445879827404238421726219332288762383060054480445601393826569827304696115267607707322602148460306416024361666618132024064183047939520683495354147695321390253067661493601579289161359150945242411134005983700173176577470393084177620293544806926259527427107855640423272416581677851479066141539942261152056084224833418437677334195963538773894714430965327829176223493214717580025860543687192586604051970661064602864065180393494210317270223131266325469658114477307480482152206599455703126007187580124173365576585912659723908373269177657967035278237346942044009852849188608645610269549665337363879222841575532728461020082486203609467601653157933304300336292225138467872440559441908434178687897336598906888999261229804637513532555950819771922726299399035334566039803508428561993051937822484206857481201340581667904689564829482150950649920645389263600738764522515652277939842161127400743981532229017401801345150062941504922154229811369538778385286930816094928524457208416188066875382289766023766017959658896549110454848679401427297034943204705839319035062684783716881972379961794664390805238760420508282098171983608930898743342756312822752853623305864336345601773341520213289486617895885674312652854048204130564604373523637130646085464674691363995331477279460969900926237641699696109789873620957143335445251310136624650938466434242101485651865692103998181919274933577134267942922757942318212945098773801789387401920563508598976099747801218357904738695550483512444082965083803073161798602034344245352619907473472443282884543498300866222629425237277960117787226374563059078666195301042239550484980317271017839479022923849258720985011824459269704452531370839659871767579128775545536774359155367177639131038777885872616899404628105532576605475134858619561903045337592573642186944393139206065009699879706986613455621848881393978257912601277031025894165380577562364647121981405967369974416130499964939090156117474160119684888133434358265308056481714919564976564953008405271330796381926146261024691961827392798100338248228996054715527469522723613099707476365462887564143445088244291738189082443409797226513628393282122055948107409516547843692779420996138696078590938941771348176120797671807366648760941229124240542459466339165547627919672991779407152040998898031940635000061540755116784601100309056406579797911076717922251099787608588401873234751148157559390343506241172952501985970439710916527573268451581514049843105789011760225696274353754677616564389687804497583618234059572856883086181216810175588262521969751577852624146847147297733217094321564111546114445876165590406959608153471999322336846276718889171757762968891181481413192942516474334918126177539082957113558125357088436598596637198291573890322419537746225086971866986181184768213566512145104300973030417616376779352900611484321337053830735966514592909085392506580656858946550983795522879560136880705159970146398635766539185890708435468990419336018372580044550021978842360217474835751986268912339504902789051811838992367456965942170692817150050021696525654119976635483345489589107710447981016351570549324499106750116699901221139165076386501362946832103226631360227956054990280379979147729063076907064210337072568769273192037282216157865969005599373131043381576230320477653009738524780873318097816397804544604256882984922954341840869572115892898336053853434928861997780608742935056416185652984803005300998494003374082145988833856730582848406866997373591353129892066374412801808780152945555237373865059050848187227950381524495589544499587076241512930456087969673185116757870670247832727477806157241206520081399845552159999586105773531151300115282202944559931900389858860841863386261812137235028240862150560668766635240687684245636359424935720742722114078363818860793869091615629273101980769231837700973304326259441057489656186568767296571093371762546733948768478652440771398727434154983297388389443949184030878646530024257230973641569259361027195967875568244749055525123316347345920103525427659999519874110496050654448186587671599464119343208072700517035412631634485062583231968463497047719177007748376811049433931939612825938336446591335485206226284934645739010555664821499585172026900725971162127184868297898546649567357333366079414606988452594958573849203438391459058612614490693786474219276918714174195552224273640999246661189666432978596002063946268758301612481544376238196827556040022396269406615549441930901205999428676576444470292128351850021826659964444712857887987402769821541942939818542506014234826689248498872927104280409050475815454496041558867195191180041373260346991030221066318073153841622234553722172611086291477037726959646241147997449977659192662241704260821996135412827322365677325478414004983058364274660757352727488387406873620266361964504499878679076394127475271979461496735870609473205771137344471837746765090086642391121063195210929060875401968102562435791625800858781828943058715712214023969339205414410812982310671527588580269414511613130936016591410420088419146902765528098759866298493739006969233114069943096285746824548425630980396629130460759331579750485926161387523031668364132261555047598407239541678739177817342117576878289798093102963390918480129617461790409431712254226566676184976140928283217146491195835559283857774984505260581895371214723057786196025360637220065955014219444731713201255029765748663459531493501803479512633096357027064051241563290092380356652991899501433759735016455195483446471098450890642140021633048396507759988597198571659483383296550002927577125385447947939166781136487336910102416927061633013453948421579216911149277839312927471903340052417672878756421261915238657225958890231207566849939524334011049642378727476995045797507198561289813416123675721577637876930221122147807375104409409520027514908914575927638795301632131155629028119624920203091406118451879215458447032058006455962032245650239117322499312965552002236454285971347752357175515319294716882057036060600950766945452121580196920259920898801591869660739311328389192792666259079400636246981089006674720212300922767848676251420168577301371701468525544681643559471043227201540706473970528288775853465734581940672238064279172626806629256944759623270273040657849778720770412278520030149470845082966904144885961258629241559128142843832499895790133508124161588870858336625355473866990310547444039386238021836193487808995013843061807566329427920200386651311113711020783085793752396385493700773287104013402065432977549826720488699573454307886285275879561015234124335735786976950444193214903146814942184850698279584704887261397640026764625622445613235690052361215812570218512268699096553437863060106586974148329547619882047564292338873125363448358732743370307413155317800044867470971915572776849864654215541998105891016929624938540473731298509528128521527833946858783183279897611791093560608932681509384610558853656559516725661656649165361612639333276804834005747956051606914985479875251008928663438506109446033174345268480812036877007384285510855862872431774383348527748073959688656195087432075764441401742031339045382806591959946167250259348707202058252005728116573565573835752478480023213847647190592598724358014331834535022908729265117211611811553088559747633402863142984490265214614003011966623197068087613941500703433761897700523524716271763172707862574629289070267610037657200363957139307498923191146993437339831035247231527408452754963679727387253138820771210050235646491517376611661880894408705228220688575568955178277601824189086171965786214933080364475983247897742616404531363133253680761782615233433607377714332536723705190400694658828590145024831647726871317124376400227782261790147928280564434025300331707415177874001709740149829728955778996514391463268049690357712539046053306254750268644193665008338381499380219800853055547721650011239076470659621008878515367455930183221221301677363473178539216397764816015903269344540858195838359630197072737099476892084799253769390781694064868914522827616104385880042715182626662420834494170788307058655538910559905558444067859348823490976228232557989755012491393407320728922625007252572449827356261873480961964532114646738124323670474348413061480907466330346820615489765873141043250459811608407565152920992869908745471122176506423530144184039526534071740633947421371062039539995437481844871243341428868105226967233586341845878240174453648186041277354532835670865643054190304946662991978357679018402258738907627855509837044244158034470928645969464153716319345943707160123867326878250218395349851344241202947940172452980584001012706059314796138387322688682082917999386576305232480315670730099961659235141835546905074983436929335276488860235138494553360342269954495771104287202628228904960798690333746875141803582663130664199002096936945937864930307795513612086147865555275648923167792502822177113660732347515141156307511771162002432951479561252376317870650423498238312115973101618158415985084779754773457880950455728774993872845521299880370387553955734904858980942350284371936782857529529055634588141666659401480319493693933920148255155456852609840962275568692563305748525121379286778147822977546195824808047605686414095918320870061095827993777294375862807359590785936197999210450598044115250848516265295698535742337333739623024669788092690406046299941743012124622541800565136361694299909689073688491712557278044652753083382193116016835844774680232382054548696280152239170784453447052545561782259769845205904179961641282807140322080142005284557381143403031494471653580093468986070241901808829846987181550136039766029185411538560750947113389961965987954340866169859718217727184769109714603299980584230142406155093018099256175374031801699739710670797708937244956923131212121137335187939735208924665577246441956552862204468434239060123729616276110999301312531969389507696493082612840429345298436568106466965129018981050016195359867904427214056823690469276043046438271325186443975216222217905240640561090369156717152031995206963469871169749090695974619942453652695430132338650646512596362061313415428105844505969495198944096421747282157001560334455361062191739723038156359405614710985383049015303912684232635581167122484776395554374387486197325314698302223933062447647879185260148195852157675046588179211673100557681468891384789801920854516705082766209732410081488898211093238913122336667447993481091352445436831469807336186944240667486579262366839316498057672696119810330505215629990187908448524995472995125035904544775561419253109368296865952694509666564046612098179616500361913116973311576705414137737431685025635687374798998954150168625395942805466556308990516741046697642600838128244105947021520290110700324337159907005064302876882134071466103518158247922907415642446004932432510768576473149211761888220649965223359131575785900118390107093255347141124085459573235719624626827328006548483186043807094920726003405179607725159813707531970083833438486222221985785314583966053151650158343938853693101393630175567199504801079022917783208906513262941873630961021184048056275535315948712897457366883944154910667238072799183687479813046274833201425622312662413794518758008577825906483662555189136275175600504093790628519706758860299981179247771194224408360044050319602852446987642688923970818108124834029818175992946869586737306564477825953236477591971931953749001548079954016187457724723650338639057792585122538000588155220685788824909057160588488088412798481630721242627675297706010633204409898867776304369490823877868556862155267201481754353994242223813856902591112560883491031587367384638356766302230724472940862654134423747986608844738105718879170256913814560119719847934792046362896979799130519268594892779453388962738282192331418319693726678272804803121692872544227438532254311606593204642178738632853373257174829226109599831515671130756464210887884575403937649940139419227574245902561875495588232862877448580181086468717103247544997820950251759389806844643277064378389328437483011012976792091770110896997035031911562221670816668764182634275094046501760434991490934581497323823697715064857905059217835233275572278537101189889500528205824276211093605761949885343846754474462257321170104309324538420030118642257400613341042541794782444268834870574329283726372184652909808778223791922398347147915202443298106546811157030649361551802536519599557941254877877679403815655516757928436254891376723052697994500640400909754953037571075827661471328357497960059271237414225218891426426593636514697409017442796662233940967133736618209256518283572164937147939625592322189731244107589443347298654291590540797090801842704637904525464527257025896506394007861329340719196293665609265266631049462493869869452883581431408403290140815849308761246198269572265086228584652185297564022795237923665719378696963742792621947304672430143738365563143462589094420413675612375296319155412385697216379294058488671016421255994563487971150260693966858109903275870612682304962392435476211683316061466670556876443509702069727101025460111410584880670183075530063603839890783533223959275297992865562377670337814319266874351518590133183850990384788869635788990235704288968724729882908391143195537528110076977846982266446226075474844852422640472861908452925302557744850475513481973556350277334487580686967184235810689278744282862379675000029257142918540152353391880377807820847358059947317461341564117600990041673928965068086901900317074379483950053990802747332866012377309820734219639789283242134069286061909273536994231199235433824790448506528506965249791940804134235154054988618335270491787644813023856054062430762524108840986375052476508176668763869758606566214474986663169934203434867443364635023659858580094861996672762159901885473842328046844785632999364210868989726151469309441320047631566241728757922389915559685817565775260523100932651564184461928478645582006949208067470579014392555121213456080689844259498787566764791406190935992338380815871398426688794168187406976120859784662097879966269095722727078958982651067615952845449462771309320092412210985381393954136619830723616278820105236420058755291125075316255201646696392340899124873261672172871665025354450879141967570919616525790416271247422509215647796848053426783259026737353675136843594079739217063302307935597224311471692312298847878942410097695392056239320344624427108902195649051356618822184100870728922442029497078930918647342664072421295710763781795220133277251871455108381325682753788910359934045737018141127269136561533477765044714945840248217846201225375637695648458065851577736522880839176795042742813827269449923559415276403043669491395034282663260669789836912989568321108405276622531843846998370388305848929976237809074732580305932713237501219406591603809296569389154596371257863068380984592271804883589511826902364930877805096659856371360869756669259300566070349875196419344332049488345833156191849777553080219529240244434998847130995899921391642982095365971355648033297330860435847713578547201370273074514893502398611360723622909213038366531590937619301159739213368695249712524530784443409713603893453102044614529701980815166873774462848637631782434057286425960295383106090565179930042437189531360715759950472536639111800890679452904699505366213888589276381648355076237970962815274437937154902673431463292661136410027495314539748215449810010496373151573074547986626562303063518627058938918435031817183432648297415736941506007757290680782858007593336602392728090679982886772168684973180759828594407413644533917246499318444178060064924738848212161419427890042805460240356819930821163431546074151625671321840048570588287022191316127264966892527042675511602377016488634577073696868481782503351658874305209355992631378888159923561193147805034246019603245004723476005686532372349981380970976026215018616910495894102413616650098670381227946484415763986132594134606032965408391021302035943395216263166329319539980648549461785715470351977943760905518246575371701332159937571243565789847771984917126625208423438099474774632661282637420915850093076032041954329284649860629707636031513811382955185803019386850271537183091943945200211324227221741990283776719082312288718777843785844973534792380227975511552708849038328575273529580371679506196133924093478420928717872092488886777854326869148546174332403247398259686250740804654337904019930579570580821055798339171789000493726592962897928448014313340694519054945388411163470298813221743746630464183569640116109994699258694070881723645497073238155681675184906401640416000425185914408588515006714435225861478340004638781028927729604548711673262985301551386506659493044703237483261521898320020228992390549798446655322151505620879884486277839226670312080551058413941616354575052510409782101428313912523883468987542778121634219530787219110140759899673228053631661690212901192331068951946432896293384393981863756251834951644656810375414612049077449627041173729801387912525621127560497613578815555098006040059965010866970053000900870012569872986660294466320404975127053193597875027599125575568733603048960615238634976077058075830395356180267600382549800869180306889031784997308025800595517030710937238845810126528388033068643260517162061369850284801705518977447685925933885971338116845453586498733607743311724549141337289234059247039550201597781652676105987089933579867665293602087096768534323087591670283791125684412741194512564526822379966308373885838654441320864371386792944217685666162400684865291417382190100033185766929169276347975558365838732583299914511305327633554510854839674732829763979219297522177337231893994164327408285972846044491461567330806187895193745181521474513609942182600486166626428797862685782797592395385762002885411564940746581878505399887698439546146061759479813539282542098282668238298316759594067403173080997099248184684679228372506253344075296640931258237964974939364307436939376385415775451528265857815155901302721670266689330347030549178411529817317089845040836573867252666475719636131652660771381748845762088775618270945703392460234964634989203298366291310955471978467118747270151368717719343852703253507570194838998421257895336457026429348659843297741261533088882107850199195627430700421796036604926342189303548924278827940180650587427066440969887262699634638206035297968257734906667313287472763254006203170084510565344228457483277967798995201463826827823347563230500161727899305242544236398916641576830584403268999790176747592715657913214591065094899170713505043782614927762864087521340357934745435046827966717783789243773467127608967975581934626862475393278066559712185355135700869923514406279716378601399609591914867463413626168804117993035255101755980901768276646433694548393267352028403160565387449517019477200242673691206364623064713710394814563986338808592051778647641623356608325229258727444871746922807931856056644895151779844523761258042109713419554661033598716671988834233667653942261062441461478761220620396967488610607945366133943063571365372527325073508613785118062615913790378460535969465333870995452902011347361674679259221174781950911492724723604599632019358996082320000283933285082697935687799419759679409340449818419103362091940183010212798747279543557380628266517708871151724771690395704240993707011664965987485521037707976860850415131846002819936262869589068744309975072113824676726311951374011035640474897917888043419364964418295690460933219816559501708844904058596369710623368398998236110177586754896907419618156803130681182249118871397181570472305762609728971358877738592241746186222731918016159034595879837805273151391491930958396344496876989541601166574886172429762859064101968829469357439433579663779687712999681270850502756269228611697096319631245339889372660026673995919297534535703750642780349385231157513288107386019208447750196024086812492604311775686595325371804940752840477830010899952896070399671043231552102762063754306454181463571825266327992495508362542541946541826414222156027382344176083236976511772811967782813819800202054466496415359326648355187050662712234246353484127778592491011083995797530293213607924782073683922445280609208302845459500908341034169259993996837143464656247120475898406234691342906888874481025619733432773135555887330094409958195910651451693094480348391075390522720855431673199228044181743112142344038899711386924280959371637219750881920995269552933567798418766251277261336108345623560535603500713612999561303976027837652829742640939911053786092619280159441934894151982675079225381814169501304341135196201559049891194580970993170586753894425477494139000165850055389952597372570284296218799015408992343853848888275544577429226460618599219878049092051294846973006414527065574441014670374180855628280955019629262588590269185597138576697498102745113309178865504004217732352755012052335166171579128653199004183839017677614283935219943075380511408530815722301021794038344449806454597497107180141491740336107023666967165393973123574585198820802774255880540914728319152333088530771910505837900577512397654193637576469637283527925518652024210316322800517824022036226035254642871262748164947256532111899831773243536054364670554730766772494407819311168178445476724586524742428475580274212975629584429506860422425303943326887998696743006755273680393402497194078081710524228418607634042247027674677734309480584236871951156117306309116239210430147402071751447272048255247596604861787586312656304503168147762255028961040650724821678074796627335966637489820512273519030574070636886499036827765684085074274738292343644887445462083435594479138849024477141952165778585067112985471378747688903054134380255855891612900895853800798880117927553359319538332101896052924637762761341511281634819101325590515452743289087500238617898788203221117245052369348298367803663504964648943147601664707961224340866912832571932228466917361333078822643305128448694287843537001229018788492084442027841599493576221638134516135068938366795629435048955676008783502611784212436155354234575599391587138832468196266926378924795989529377740027540381614481993283121614492709896498064300401242758549471322965140271668997355052073174945662348020780741492684384198739597408240383337270238723167715688362951671689350360537237657937414214753685579418577551782872079467406211399585505918718171553888114382157422783342022331350489117629860577099697799970220970712464824553378134376188206895650832295277229185666559879311187343479531030091492439191858222178108583048260035299622113551836310834889537535795080334330692561592638872301460304628251345532853433017115608004576551376148978234790438619496803518466777621611176949762189337245767982038602774486254569072594838676541862338259398547280789652587415530558419387528715412421908996959965976249293547069058591390718577441508348263083694976808690020041531727579036541420162273190339905982458480313152996951156810808259567963221727619686762679665869763115969897932059308884841546207408098191143757198941396522475337345765731189460096691550137060679828039939837195681302079382802577285883287418942669671842719984893544644458749652615244011234303068780988847312656684006591815501371043276304024950297190461545161797122905781821079123463465420324183150866899381109480256185257336948393921867816760188955597115719738335011652190132782772093963395990793566479895395280666813480470235724330325913292259178917683207844829944386541170351941466468931839066340995915624214449860574833603150037288528731612895717132538455639949710656211028469238049188365421496723869957998383908585667127918598607886105182056933579821298366172085172524065771043749020415745968709912655128923969616238540220787818984569203068820110672739062531893320910098105510376478262042516944038132490507334479193233173185410229816613887609330218453046240202351565638494403561998698372691853748541306350506213953705235591789304900246539989571779289795868275630169357591723133669308137318259326053095767781189575039411437066081424005413595444260353165281891958361364780641473804702786404401783561380299906844581532662210062488568589817135020084521590373657348802850166276121808261242971193897458893098326680361211874578840060859368444982998683882861295648092343044569925633918300636381105531109940467826042724800328961072290031231289955930866292656748746366066811788194875084885955931469943895088498513499045208535846358802618664831661506199041339405253263846101482852522690489687280024361455840827364261461442015339050934411305938278112177244188731242958381419633310252084959244731883917012123616692610263709531808813440134767900856579771852608586086526131947972027675811183059098261606517991173107068153649280748179490920346648076345616310234221625697006242503877414383414299884560775986166567037789418286542736492869495128903511717555501635548923846411417637184453959949601373924601252304077404785949194749479596893270793919002066669405245862423450259481073683154863714419220749379157478532999805607890172651552935522201132980670687874757512879038810500400953217553677334547075274584837906083191404504675756722103948436425270342816003487929708449503196949822588718368927704453126241681593265774169374348719176943867261891116797877262045770307794099767403169176138970873256652061500193020543338421411801883661246577333739467571048667939693174642239808769276822589007235789298707895765388508762594577038253388705297364720596594623932968468380697405564640771731443121856027456385186471269997321671913689670094687956179927060607081027799776993632384110596856473550960795484355813539598854032069222123910239731319499730656419096938167354822368464682923704696496416904656063604420253809718024851320866338110529210020525410754365839797087940608308486043979523012440215898065617742374983464545420934863200932523386404753662452188023950297623872933642746217868044000884863179812728853085677563296674083737905858513312163161069138413173373974825988472519876786653535950921829860209193938235397521804258839473035054927470196038985628251112009051385491489268502484735940706408518165157249045124026843713324944616481713948977314833168733496918848860436575412691831774963671451544987984203928928153930388615390157527104775987086713805539548676961112888820938628690781124257199461160729130740813879357993905601802977985774633899789343254101460160733276812951432565276378928210065191151829144526575766383879162322527698575776751654631122712648690885528562721255783295955118882309524093127502989969722314350105122605400183454562375423136311603872633097233976886283633920750051506307313772061921573638462815490817783726174078642487723083198833757382927548628060184480278604716527905912423350769669318545747479005537837110972847742589540273783904736835297807189162749718259380394140884377217703097902404748430034430628256650964929571838912147352939331850649268755292063514034521293696004125458662164462773935228230658816689346935233911337088408306747809073882380916325492079378907021691416286339952159953776818009120154570353365876783951385033308761304642054173242663840537965721118359747764531704931271761028908116777624505015505057399904398017806167100691323029102065001245991087547467946477070483926014857977811936407749535328195968450259286131842654423944259758467384575451448760972238584463963585604426209409173852906074108874386668845154725298777851501169794986725062212876443799412796438602304737915678442819954898484318506249903633616131024409927867427221446539965878763148312248033353720429278575779015682728136540367742973708439718729179650846540375299782680870443810648697597554507337307750485916066315044313097842865872767662777319010369147160157134007226816890203723422416420243062793970172912782238777467190234656739998771185848019682109369927649523554562021605454796494604106280723871700332241371004780823931131467759420564255643689728373551838657064409422107391612763858697110337057906092984769457697491120387437545770277089916910094285197587283258735570929360497315718610532057331629647216881217984670506002022111424267145582628830588328958646644570807784655404573556390618359693456406594060185126742932341642956563287849220407860409938663831096037740432407872904618911046389979428525783697251797297218440100182982443321560751757593611723294154631962985325652114835408691030521664790589856860960336022138850768986771465775191455549499664113559515311402882119230769929764946183353920318311749072007485599486081122372803429750116045484488946033303511878466900514625084496070117369708269691079124215201426589564260929074727755810857520857811636124821946900634941676948559032856620614946244983263284874636642921848435969114730461391604172930503837098123420363273889284534916508239137325054029159427919059349334380498314653144325746552462754365358614403670760114336598762625176697376483415893752109728700154042802333054595395461624524446592659944356211757653598037884669632084800290346986655351519717525993665384077829172514861119797709742383483523834567316723731784182910838618047492617189394838457280243336929513801147341960996136569627222503226738343703496952412958357231994114413392045051710783012714881647081670755042871812409299804700088035955616609157411663148603369501904160414213354548044296427278745528484655407487934902120518917125479450644731502345210560088636916870419160372835616454429527178388538165811698639823274192096262395314508638758457770783045779270640872339547685879862500009836859341471496276713744486768069224479440947582175244961935105720724026272383855810209539476452436768332664497815050256022763913668140708403408203568235550942939076101668921475998418924562826373148791896964981021212276645066365272695843047398151683424829937383449225609011253026275309099244553033176891470632029675035462340609774457517833627546778885301266758061640028418548987506714812566683474231335773648996531271950012638371010526186848938980039723031559474153710017361765361399613244972050019647746467933526170027225655008579962390791267796127105433584401379280141067518287244058311273331820650022452945453614450679303987029134265765036305391472576072803660015372048135867263856300184262745354452851752841423436352965355433747822019568456852279602243446223797177365523410040882808205934308625364235458816130786571740629376373176395659214540778670220725097739452799368697203290121702502402408540228368754429744213097567089424961093185433485010858551060871842507000328332015338542496273964201068580779093845187688773743752775980831635222610345914903364886869263386299942056061900965143813661724143195055952058629025870017855021324826963204038797081564941633440717427442104275500740089019776640615793139426800884399510703082377194417965753140855087701131098262573064128811098532639489437921021585798968059132907114737224261296169097419818659903856962252244152492981561222669278438149451751773137600513102409437428569445018138008574800843095921944839352455063851690929177874454448043370193741840811678657751527894909495140682147135292113791478102052745840175793421231921124420294507839758316273503306981223138694029130649832676259249878017260730971676939227347259386197143697676642200132147484962917583020983379699291821513415169400978618694917303459556449961543506300650733040360522048467701747316491012083378265627655330153623941459504587843825648892327481408693355993675274947843896085604568841057718661182969569477867366229278683358610129776158424698130074955035214482033715197151994871745543635418070757462299889871115953113344716150076595903552398398106836804515498741725442562190255189054933371763594021407650048289431232844011932766177084404912010064821107385440210981616732275609843577376065768543040387691507127430581437271200757273443468566825421207921602874598002752576685779061945116593112123760039305276399692537733287435645466631444643890037884607890088734054292532896273156698703962327542375038281297372834569449530831585057551684557121911357081813715573016770373146702676865370813811109118576197070007864326391737496309251870239886714077869127277627173953069119323497979266054111161510885449103596169797155340663498220443680568505473612124893567044898095293521630300829373957169591373593526479374590666975802538388242269430523847098085964314347198434172439927253797515960561246661224714644473298913853510704351416256977527593485354049788610484713926022505844998319888274310090999694352347900766160508371992271647452306417533089389442891551092418004248552532536429384842548390503593228920831004327493677816181888151925233828445271749491360261106207892291606779077827067149201692443341700727465991120117082231054525543683506315247908761571342043000672796130389581701348086201677035902534176339408155150388942846152296340272733439865515151928330546651795594693594357252219316631631779555236872241579104655172567018635125240147072111525492280897481840449212719434133490858236354695840464587102308513391152980464998847022779235219937517587813696244333036978606473699528406039660538501214253278821183746564611177560732577568500223732560982483608594775852908455560020107954968173358177388053937383517651278162590586375129725246863377297958469100938754728754673163070274846870094548656343866765790224944295876009883980437277578004733169552405054468349865092872165470809995542243365019901735475238881583258337715784670920760906766232056536332925121175975854033093182599776933886216468569072694982113290051445484558725936282671343742634520886478971164232318586476241159245555830225094223110547314844487544970916801732431891022054139198462260231687316664361619952761240448657076426747106589826978884622460078380214586472980393697165208898129307859662701089615909627012941651807308698138979801849568073354438788988025957469479539326627040999791819049798816202468362688224172066053581792371940810788280958243163470963853038756680822076184360753215639774127456842534333786978160833864553351320188800981250601499875785900665984519422541465500198764080626431445339866630518912414673870488652584735338432791126534490868334034129496237690315277727285694566037555773021091903160958108105073223441133895603256044616796121671756621151336945124645859574445054652849308374796039154185262685746945831482577983640674167646113836657062718796623341961870544286591854481054025024241038829623501203653959442421407250679973674498026019913633593047448909921208364754457984536237560278882372234270214171569152799955685965257478140279287255143813922363965518065534307767894412041991349041750756569158647101050743135627041377165162624069022281554506053720345687164439954307818827264116577115967891397007736798904030756483273266025995580022737364537087165302165297161880765749460776969381740184811143936936667905353625938515126160311167417569350163394110532971943870069808288145089729123032683851254493722362726028568153916823830459889998533583195488303902441998852258038707417128354941538440964524065678384927598879258102042176754463455296668525399812431701013446451296878291822346284040342452075041714743085438650261212496099110833213820761105871058183155188375122973982104213262169273338972931284495031485249808739628517664263531093776751820689501961758885748842871647758808244537112335811565404190757105781681520359409536994384574878913913262731072236080320489685634269519087003322051632249483023641858478143381200390979161558994315048184465438067930940669204721829942852470311788574481542110762328534451016632406483032175546898247861104429240684242004234691605265607890614799230179866732281651008780061662841255020960928654872085773889024527564928192397689555724466777179109209179146693834474734748756227211958201939110185160368102087840263452917513760235224684640922379797161784553365640869345535892866489020408155641266995173855612090688274249694447465819304093784583821581495237476862118647777561817897379315085329168185369838605123504940421230363165812481333391824230076925678814732565772878852371103855708028636852511084486421918132169444635735482735816501955476053738332544154460523300534309265438850676725930951057682844459192915653158302110372687778682179903734904931123884161568719081414823981319254583425287901634558031508001453576456161055524946425978982699984170402073093743623580803063195242762752891388351281383800709505541616497275348335146612863310439056368505724736237537890013461999943489027428619983202816861173617269279592600819940438433617690453211036960974213834315193346039385525355914459477452117421860852357238317507124260642302929976044733264198079651217291658753755708991307733692049068446312511940872401369192102667105460744380107732356094871808160123985161971044950598220919953115886896567513152913428456246126181273102474485910625614928052388274792660221505845471243534321716838249727656751162973182596002180114241356537845128792487968544785086797462047471538828865248533052526883270269438280792670695415056042721626336182051373424062651000839069049590678595065241559539799809132536928351101868705935272884353941754971415849552691709396225686434390829105502778103198110030455189915113075249981577870758419732861834995904288454932766607932961088078182165272609593665157523062194825394529610977245885859098431735417015784149548136646363252548779411903635087996771659019259880590058569002888412741248667263066623469964962575571946834658393667025020971490853978612678814464843500049858396098592130743098643360174599613076983039856870236845218964566329019737408362911335782847059343707694284566796769417321235580393397856183128149138900741577721184786830363675696797395519917024048352040392267116103267699785538841839186882617361576846167644688840529504734692835595326070108017544054723190924812709489007141491711965415732364377944258034031431736803848765522120528707178054305605364675595695183776716187251318367221253591295086217751254977534365772172939142760341367743170451497674629772161494601989856422962476469509233961124999767986160222182252360545897127975651518885688457503623987423884994446916607367526153520930003607372446978154701675132368088572860001056625538353537611239701870953517003935417256363420495157637214224555783836618914549053139540709348429161798859956484965693542408451385268888528468934718981640971030205165642623395503874490336238948079167606820549179497966889060419187787221048642092363726512485819776296558857781166260259540528445646317026389915052137307528447789753994591231347567183367499776801314507505468385803988346940918798524093752412254611060708689715735930737317087254208612455929919347127799008918793997611540301077678721032384475403355932351980256015251267408760449849674703328622046429480632436550712976557832345933917691770098019780193702096598949492901495683503973778418578592791507984832821969489442918061604229271885275116857650226660920402944258520942296043260889023958779772471434289231748666758045663209744523759227854824997267175234750005015209385210745524033110443798301824172686129933474390470921921342730128487163793558764038188101038638892481422630663213695393037829696785892921715451430915684907308159846252846246834075133956814725267268364297310789132702470279658668896657061038565500437007420597455759022254709090384347346682718089787395410658172861694510809640480259041215969839687005143140329145385166338788920536709513168778672123044954808507046638985950149423648535023881802374560817631989633138090486798945360816908946589294757850410117243366484717826095695689163287819714672771803612179899552489786919514026232188942967586142557039133698522256066864021291681658883632688163285329060653929554217904307419679240216915014882036410829780633581480450298376269355913450567806394526902000014877765280226037514941698787510901954419618089726779844007647741959817707017190594650719999676231028642079886267359883628808238746577920754369029403417285934678684727669280347154104241227649874470042942570256760539699513590466756800329977000895542975083594376379234390637806381047185330652945389832142201540844588969761334043034766651349951813056419336970030601800174465436347256018127112769569016576591654751256406091370822777101446850014802047774958062442936842058071803921642871416990417743499553582293556081931785450306641084258232307885802108693913015528283840647609417686682480154122337497058254468843520489873956169864282703394272631149591271456903682294594015123780461691232145988912984839280013010135952302205103107968032330602617897036409998344221884973791288354438934485952223060084751681179587608490003943393457969977238234006912235619013064940343914803803465006963893654011086978261288814577136585046498445012030359408986524955003258959173083036608885579812321948353993026933972694825754291297522770135218295017054174030213176788235993075796130153205556653387552181111925562013676753105027488216396021163130209823682112532749738436607212372641811893814281986895935781854839357978891007820776284038986792814358833868448425088604043601179036759034622054274038805402791411421807142877616081250009496895525781583625882190462684367340890236927560515210009669904118188848980078028564505546851305321308367062509387088710461845574239370725572734926614445409166929208032992757716192015422422639835041864077816531259336684901285402290583043836337146789227170911005886450813099470317725622368029982584311159938378974211029024475890838772510598957901985765787225397017839181962298470335713191419485301267986786347936883347810174506581794193937754672638803890420892103087916923924519660479652780183987552911413531670950657721819349197738198952638779393940288025588344093837778717177859331070326588394808515161869951184733328911176951711187199520167117521588440795749008140076294512357474461059813258447333041742904700258142137774692378572962368024601404488507501059656334610643233160152144972703900178469643752847338983284523013025606325862388695284886302284608301534820564483687976460457001001248445685585335448151262902922142179838047817221072783489308194363728210855105871659025478547621668750748642750741078970825592146171146692959255727589176007968987296222050297009422763240681803886398631556383687993861113339951175745513725745547010525079871949870107775190987827162155388715401298684631326158781401112683138316251615593432287260999039857661465736666472119151784558948227590429950392621865698132594189949528968468273920201312372089763470655868594201855770662164862762229380553378291510727829783765368332943470532400545009842035863944283052957259903747820570780719054904082597168845112594041886863119002431170055535118523458720985223614216555981525624245685661296850216447927744366873700474953835692483741203614971274361338781391987219982699803965820000664616307146289959820796396579085158299391825852770512906826086241563911051680204601258313833365047116176376819694345035389035963395118819185523649600652170295548721636151448794624350313589165884339502687172057488203364332245372722507905961618290130946152654859568630913659819725520982529024971725067709569631210834841114506774509368310782856390139957842985202471303619419096569141928955242284197195689459386976014337429216730363003777440752851970329819678384004308287640178960933224028509163652920465907490437979205825376848389318679692958007897366652518358410271595554957993706320904684935927781135788085883482719238290621387176022621252761260232511954379440368342392626200906923242693785803905278211423963207839623760863798835535142377832021761109171020289942810503793480385014603371242971879389121735172538093075572617847029018005062821985272997264405417123015374235185463024028320705888689363135073999890355236245920822659830437197713554079954057813144722969505120034009967463289013521920295352811978428677054473207034408974904533529904085648275224240347704620528903497250942783062474657470918395619202904985506540870029113455260147696696805474577241867880446696483666780826337646273631893847885830246115468512338658165852712270890953982832653875399964359569987562572159821523843344435116555254197137108654484605332049354234695586442234848877001308601939755646691875346682334264193856882136879119678541930185775317186864140859613650329413645196605153715967127999713042832557073635704940857357733493767535350055438521099938912621733258807520646344371118172318546347742767016351181022379703664348131618439296945603919179130866741712911045839245050020637538331572493437123606224589794429438059450646407086646473230040542521794461692510232433797922690430620549275904213852517333398966932666182338381546355021698528003895190535919718189219186674211353329784837261458403951774124551823613456278027810648507159593100042388649485846545748364167966487093240328231548910268618243861437910028575346669031788097199977434118082671482176669649036513621027661113491050976413443137738742154437699724389355901109504603196102662413219488617417804886723076128963623019810160456783892917271177203302063286475874084731653051609196988392263383263573218392147424540075626090496865577170970789076699222393965083616699520548344893773527754944684176375243640380187547452357291227140944933171491302923772134025899483769138975162323596041200654557988806824203802061377658560744085125709563025465019505090304870560309593456722679628902286061255862178427554565155662502606045272759701110117049751791776016770025501602738461903712268084548069635811930987223597567208957866581678338795246971301614144359755136965653319979569265581945399053599324637833137972902721477402895385104732641019150483572116075390163969055377072431957461332857980014955156923069736961447604889913783057157195677001061857555765329390732693447509546183315440277825255905137162785285532710653766121761038640443438015683140327237691351224470023963853982643491408800154274627972638381805641354067944101108632001611850899514098194874656680315129027183504937193217718172695583732026211338014397030494065195183972111059383906823599215234529146184514039590116059264984407820654385991846774966487745837956112136135444519659189331086225482297240325134000687331914005927789019116952889818722395623465383444065922928123887255233070659604419309435866977594793917362777767592585390857173961951971640906484426202706375428359492503699084811547473066769771302971049383428692280561371854025235458739520777230555997384598079149757629667660198228282121109507002660188493177838474617219247073729725748730700665289851269615961833886600070557232907639320992556631546253154239277701394930232347965556084723031254848164609438145726406858811090791770720450395424838463447673458087151940371726212762856847915116484776672703909220536017622810934054661474890931465199301841759286250554346010344178425155682846598051865354005908636300281349873657176838855099111245884550162306127963421312132765039751441855289193916852507812844241417289347472737778242435380087872159255097061698286541125452695632492918981920867032775526802297389388356148559601393644124510339681394912481113932830148627688933384632123096382668951465364485086824419609026230348313599691462688070018467453346461907541938125153284720868947131526394028631083012606403992131351999717213799295756903182365483382616825425470737174290103488584524582549118315000474790993183554126103502868939186092420792751839409494080720232867821366126057014079402729009133961704156779967583607505392362489633150317578125584979779168196216138250103357752710053316368275198042556347420060885247228346850072342414602765020851907455868143419002923211847841862522129199067741593512916013083153731458660429845562660980678071109500565644345006540395990044353405153405136064521098996265034307284586311195322743411144965189234674750059956498270655317927529271053609550026098979052360094418977850319718822481149851244713706302585755180350505231282952092430849275971453793801644790290739559285474110041264894460419253326562237182800065071212980809627726700268534794862694772344354469276485393544027580578090098953568465276643988560971210947522535037442871513856623734869124788079393948129962202481353872216403023417003645595777669881093104197750306797336378368150498005585111474201398918788522816908098385262511138981573998873191293001940866339212229497368448228030708311711079615980745353005142114704496228793192229664072400614193798434682769980818473665241103183316778899269794407313583712695666589033491919321099125051157081452411977140786789157058726219138143064803639757737818072431837807241318039318494622126368642925802944141107446493678581649770870004776432208652956458583616105071924926017856630550053242478618663955887919192293285040501543268782584344384146683718114404885909660816963598591772779547795579869351491524370487773399017859433811176536853660672579495112814379234693914619798943694177399206298648677143979451693865537617237873574926643036358102156509099677582015013468649428568389449016336025474496040012027304023832546314009390954869952430120304739056386628163017699516609658179905666331983192740572806986661796950788201560981956418944843656928168750165228870106240915473069595334932658983859176962003615501238829953873154759776548221613945985689284602257613790618870819308620981825461832496111521996054203752469718387447457054431902045071177969135348415918794517449370294217461019178665332277663688039949112683275745913760540539362065171758684309124958633547717454007659247929124194540282821102598764128236951598103090193959193004616527049525455234104127301705504625738069692423290753230559051621141115007498356785882703877131248769186054500994032030642316341533651122351610274407374754898844727987720105263887932595935003229320600200821405286864084782093247240659786140702699860809247731630522132168921741820578669206653656065092869338527377201706913719755031919394154096963815303277189537990984400759754135494376380018371689958459986635791702178214607387478591982995537546039586274055863951944155421931856778463403855332075653615992458850315564633421682189701646042893520676843450301002556025852229800107850148275090784596968575123393831758626477060509994247315342503398254920981614333609571265539991876769835460846834389695800944163721399249158994293805302360416310617334018460987426463956978555038083906480502330547485451967602357365466083934097518749015857712073988240127812671270662620195330023078339781552674496144851917074095899329190783520548786778304218381668227410535861624864085865220968775811479834449766373888095590864614385553746764324560053672699267076637066808402909848155952325112198089310713653259950299859307087362036278751599395931867810501298785662728573517091101972430696055453026625724214242250763921072489852172182134055541579413761937105901254225653491445410474232536962297526616914714861057648861421819742176531967071207579602138959786384704862411659221410095389834226890853294398529830103842866219544288174472990205938005803955876720747296238888759348976646149203932844595930566751609067220404280181023102759034878647688005662947062775681411278099839153805198505085229668533669913945506592171300734248143203174555547933209150789151703417641545972060279203714109433074247792281388919176989131935572574721076311836552287874260268156433372350054805246869498823853752312442510167595059423653920209774970882825020715480226616856859828118557966124499709480005935900088464539439177265389697562221886090484528639999252383702211498682831530403928405312191622968706992081740301389059782133688106750006172101558374791263264700204236206819590440338924140054186426891869112558585876590020843839177109671141374805348602059694203962934158292983160227343193738318731487307950885104109930242294119648852882185900449716392147486867588752566895695207788876493779460037587080205463275645005599792175524419930262722810599703607785340829660678139156564984967699859560041379907812595121007421686283389760890034565585315874952834362504360073991725028017608999973608941651382247009841956929566295788792041561351958080097167622474757841508077802999382934976477292419920394837299234727557196477312974444960717797053584348333998064006413229199416011042554607417646231061199552931108856032037567863656542639498922228707903674480695683691078294025411638180541926413355387605363670782272621703034390535746110923835143826277428592189604845486178734301829557898470791900550645725884556793543936451091505272971711269794627136076513035655788060331592199880256561930255171171150878250253044552575020230388399354211117205474930999197170243790296948902484824980043003904198237469688971326496924173079557581968676959645415364781572377145146200095504335921359620342967629476757627124440573266291790073092875634681568884885239413669903792926151446608938299123264649295751914426530314446709999995553765762683511609975709731277826899420614552784529322157783884470836148401308238457610532034992043876497370345283379651117733022531148612388863465772401975528709275148112778975561851298129713008132760822551308607892566242804667236192610911018200024560298206831937623999926752799986401002994785466420675661219350383487315345493747548525604521762211536258085663585021420535174213160555042835556826398223169299206868943565723820289649422011371348932721085117221415153646045762846479581483205461312742652029715310337602916922959580387242267791890251585290300969487406766558944979207508798578915694853551015507360129437004065444494431224589326787985894681374519058784221031492719607647890394829031772702250397500493743996908887828457355054329084936708551317239371569103664819454568627041539521062749640303228511367237531777980168589065374067420072891471708308077053655688895351905118647821528921722110204839579494529109052239806423881718147057597937158060091704112206712658337599504330557253214935065778800343617159739874974876087873705861038234333293332529962077234668471401131393351098198715297984660187272480164866119126009188634837323080327274245245218999959354470555249991795075689808443457403153229065631711486616612918810953512322652841639530297665035494951168884926080273464018431294114595112413008158733076064884349722430864800079574190621752586455706904559414972937487798462003717736181856473509417498516023980901482490330232607019700347584174048789564416793957031764199570840118483522759168441649054114812920880510165405722489804733964688487396718914225483977422748134268761313051679184482798531166149402182230593902369099345393605105878336226770549157332765441309955929272723845902359371250939343643477159353903953379534460097073432914641161733521805766626760178008090560827491139104107606162002477910439902720325293059718257096523616891189919254093341229385202975765192036798115474800922154320846772591323111352983622701508686277279347877389625884353388890391713724612295150814835748455025941935638038437574196721806583466912835236658364209190337330568761641591732498061945014941820567662592975751989685305467966528174624563665623921340138622957299318474990603253579206102717374271442447111563184521921493991130235998782099427026459808591789870656713230723302116431892825195182387664981665755941835040603512449683664091664061582508305651078184709186988358799834783654207545416663158107954285407980742327785975639148661421745885700255575677675228532057286213258677458558114197122238923983329606314722945933584068825566845917038117151355963046490128529156651158732807837541838043638606717428797918685322377406232284173755221285375719102069447257253718149328234527977722621466810167357838786142282571385649679668832679009704667444175208595644947138879631645324577017107185729046898062947602632568930946858226174667866889309228494115655432723410160574303457699079261767013424872769536694358669033801374357819513256177735433868555986079793903382896787317541360068614201580626091490275019004187378385677365391086765468275101843063195520132965033026431784426357876930242242080194280748737393797255767690921221345929403920880439313968580764062767684325029887772872932931740765502750730221474428557907549644333354036510273746386677300526348651885291527789043811882697350967574657165327668024435242099286355124213120842460825269468609671664987685323130337686018791502436389039379010714218288091249110479998101272576245563067833958803927825050164788738508296509903703254572459152342366374703434195204344972473147344103718117367717474870731305523942115696012406804955080278217377167162483337712201544332688814860886147725372138029256348925820942049128695071410975243125025640065134512090239319812854955394331224787045080574644706324530198152590824539281969210610550564663790201868280184480782979400348401589994688366069980402671672691883421457359143815535308872483156888763092080189536899929193821442420835176664583531256370603297915167349381485508574927575105507216823549317488969194661611174711704336828071528676479798901115748494957135992369730114376967362170971128063472208578441741911257427618781388878198887728641666327817386835816155002459071235945859909863995679639203187516573096627789072046480347485684740255490950782018484328581666253431240547622751178332198608964662160034498900757090186930300857648535570246106934963333143284817086402743104369092663797195494706041940577149012931723287622857403912893372073315269442193675434715331627580644235505111669264533959920038001735352113274771606236355830392927276198285202118473705161047869453014563774509626379164302114512691201284105567241653777817934022297478737959296498608437477068197677710459479513030633801164360746630382040282091266494782186668812025280117964418331887813516165832399162886335715482451920651348166437175723399767894240943980617616218191430858973427046638374039261611819952301146971517568606419668156479390981603527177862258480261106656013803313690952907491052679909593326109552713136789369439243378973305180718255287294023099024395867581893461674839776233092072116535319242017299608022177444499904828504276001204739855396883854617198592047252434529541604127124843036022882604877890357869189034528091366651116918065329680409331410569665310822093899318683747848972311824123173287525922198536803819243300745773059317547356875274832680275890979231156151564169108431204122441202625852086395972465415681031128154379401407874908623099438046738239025309014067575732614024124034659979848625330574651024069347929730485214727274168288392283451665236886565656392544519854248517668719248735872234218136099743455950607252170842689003138238738780455688772038110257581719076168758796836070028847265196692634517631797841743100539220312933898468505318554704814099914825517128624216478967295073290960722003192194529533426441481410550934605706760167112757543279002971479447980838639639025805733273723211084372751607621944169828289006361055022337223535834634830823473641240248901638074369857520630987513063445398999953539700033216415857919357755646079432139170894108863651924017918370018855519921956646797041904569989195545662859162842382551606407833917773673369188973548033250083792859117625468547531339775135607850917035001371119885498006492970076095911248335984945022222326860489233291261375500960071717470033216322031614171964565934969084859322162528806044215938594789571768679359323156358580301553806999790989258284270489946996033029949894265646797434924706516644741652102261837204809110025804155977741283889650887225691865039231422188493412764735249658041943581762058096536771824654500147694688006148366792482146101336453933343215214011466366107626331265965180905668162948134083269457597034125136839385437654234379339259234254264913363711008837512026979235290094808805861994908813629400820995403384784095138185377394632862711867124765360091139259933101041667177437522929091497780788866601635865786841397290816894502342425471797944512725695533090282918898175353270336506077568095715073802092813724910939829790240174180221922422072870076736904210221007110283254408632344134738220013977928565683485872796727025890490061622261442676657903040370594807156835835204374985018737964705392047361110230718414136731921900586047710553775839301348389997884331380307829626288039318832472458667504669112822194458815524122835535372544357520391022888130669771317809102132492047025573265405974364379210467359185241181591330388439775161732798922861964563718111969556615454876150536816596776639920415349648122532591540235742045120883081211057634791581825627676908221105555039363034429637962394467856895696290422713069015007851302331559532448560445903386956478521227185960899725446991464108990768066087982978136891013641526542458284902560901281588172374785147396009345456298064716464071094129272852683537563065371604499997820410113576125140097910643191169654665855675774369416537206981686100713324927589103029549312094540758393655842262761822755557665717771962504994543909811848501230123484141585355428432901849712886231007711735964076493817098132913087059422865037410331074923753850183201597824515887879028285982797630387221358112944780634461585800968794939529316670576526510890070823130052652334081031076623124204395822923180289841062244581276543170581588859262748606232493240303312735530111114229149398225410035812836665925102729862166724271538703552260096662200170142397807913274380677406390570230633816187983125969149954737219485018549876235711112879751613060456703247309063616425984485188546037716179837271047622837349981898813083615350464781019382367577287552848297249378953265466033671507556354449908727237961705273077111833622607110724779271390111310598008611167075605001772782027236127584543547841516880351405491165520830968664487261481132151385915307360893919811278320905064727231320684851208761616819080564875578919923274621255554245683441955890786876168201453066118949838654691273650956897984896360343217708601149828220849653109417393218936962385923853516863488837325147879287727191365082647290618887701184425172986802046148801286989776323067576272163431803203888595325935675716459396505138989158601147405694394333273210316386134026711775433880947134570344951596240295087143329900239963642402049366225981078749726951866035700944143162054108947953234372491081176030789410842890104733690957644040430577634300410889142730513120388934291124875742828002306294450677356122188153047226066346875262829122918372425069817820796683174429873106188535488685606097092107496157253310174020401920479535692137094993956719736283569362083815366508222319294334475034602659537990626339810925546992097126270764986348196082475664819868503598477620362179699512717296498056131054142407025002344493905618499873624256317591006844081722688566078108599815143719122153576126387480850803580587363622420849789857554236836084001901685637144202626385478918715767109370152842892903080905275794029443420882228774425541757668068284611775396319592760650704883728990313102347604443001590209131109085380406671549649050878537030105225052834440609749681225939775494782933062376274421794634357154931126976523115970572405421716721086866734072871839825624419734268193514561781272812563854880488980527461044038896684974559230273312609522351059771946060592263641513020533344439023730708922733429078013290731092163119556807723045165142005252114500964623273893393521244880050382239105337646142646550034202216975199640663621339824542392055620138892127481282858688165043293854567414139681616655416538341702551704707732944622692139847105188189141634204908634075952901418113170136967250080577101553129520636286506762572114847942110268872091673380827325965198777791075058769413493045804530984667080154048382731285100712089735258890663093631715580235173926000330643402447237443747131906612913433844119939841484501726247917031207189379990889129395878890418546981495444007143622375576528700763156911894898934928902552277781802432491399918663502398540618118702739074407992360980694636830736038672573798748744786286441205234061813507850008073074566282526929547895343488415029870895054641965252029459831546596023690023616642470622318204015477027700357785606200493927057418295501940131872286088919096054336292619308756053282265371624062384262952956893338842766054384223166013376617892641135867665565821432702690208152583637329862363390121922724243760191763485589065131892275573169136535950035220426918171849851976845525275193661660173404075602181543289144036084163961393377851884200139330283574732789274235861180616955177477554898023549215485215253382114018185558549449671657023681418129871277913429649461569238014937733073357771500782540830085776669997206952639877994518440861955629440238372707247976527579254769265153778449557505331716072566829685735923598077614405472071671737758493831473592329283730959782301839955607865978066512976969490930763259837933488009968568645657202143252547449772393527826492374584713732532396908527709979238544219195923199270111184715901258016577369531929177988421196146642302259224208392320165333937560129106347735446214824657042141425433115760911338976171906837431454663489690871226353032996595029448520990514225561431347631740904037209198677636115139239194287584761130768969768722974399590095830222881786975994939158619934240430705895852587227835520475990160008481071714876937596977475351065378367197279097509218475058895159628252934378845480971602325655054522311114856323956694848672420695495861659805491190156437674464195290418854535874139292007568004983362468670217896994159406079647579697978454999342296586764826405281218997109727799256517915496919061126780684699025147084717938404592049221142712106340675981765565199625004443092113226895890058330901327219143690751862464295236485523424775881173880215922811316844603238092427550874429903782484004080509556631252525489255334184636111993488374703616156858402232010139059235328600593172228638393938196012607527200326634857422067168586040794277069613164702785509177091906611138088183490082149782591700547501051689546320619307136538119001618802249455803312868252623223460375254360611877063409618842078133488750225938412852593482844935258382324993530266674751305733694382142184883554915925531609661690954475979337073638416774489673901324778302789649284475722018923017111435030782176735231676156936084909389154452021651698993261506709302261057231270408740425154644006102068045925780648809573959082423016784905811634625369222502916974986904068832606208612645479211459940791485147468153678909702835831667966420907584122302529593079958514892274319098141376630976085511338969354882551625863930348458514423646010056005378247462754285357253741823727452014209869793734086405305619317583185843184127259707076407243406966047527062154012625838880833237794454313664555472031219388682976738547104004221669963269863427360500003563826201144926183670964003556681588414552681631171857625030024588483716873820921211668634447248888304178736949543849392920605532481093859200845587125127308135045659752375458545547900496755127921029547177872009916070047607224396140828735782410478043306510058735540290626352822052225278824531350870689766990106582300802872433442452894911671101458199415771925819645676611150638831809043234277994776940998445579761340317415250526676965719236420122706851376938666843930923221235418611453719806799834109858967683563774987498850913084927496043029180894368822085299312726048368352422326477094388232119001091126995589354438386267490882537485456473681288419909572117871229499398846534530194258367703673770040176639739769823359531700212262081952040895855578063333187442040859295380822972807753122282675421707228966679961554585671981371969229963645699694782112061264271017696259235006106007674204740458203592791433026819932906061060393945008982368243097695330147928979687194202113113967625334793080682011953395311639178556585429276217519800385981451668392667307903085939527783090170626583279069657542717919055410418200152305115478107517672028145754704979128025238487193529506246621623739384419005456776492848287572592702527634357835111618908739543727875152907244012302128705116667422806299338324364016917827609550783086004975033193784544526902307940449812935239116247582188250366425365052424637390556752263849044744384213613326816168759696005071380041843608146008518668551306953390763690414136477912676757400200382952976909443721837842095150455783745113929364595978437161764359910120408339667020797971595150045475547507791618147766202125847002100463938564369120434186085609411324621660668729098126153585749947804045026809683026107653515838553363181560993980932317647311192128773375884169708421232997004094533382993312419984331813228723833569648557430760627436018321218309984107192720336930245605943968895819696773247696681017033493077483963977477411678180699461424067796510390895084759674418329402154308146233716356034211909092371459212514188079345435313085826602224370146109900680070623408269379157403563649457306507095265236227192792076903864788828101962965811368521606783275595394647043069117271068305249727549615312528667052226312102826138194588586306697094850516066767180271224897680582666951393142213477059772426358662184340530490554761168396128968795422487873546130614792460586199434335536541703983540954740280871901567385267000261085150188975659253133283625400499585993342362146940793433944935493384676348251020370829689779164970249623894552325243998407527241022346297195409206519466909761329069772830895521643156716260566005936723808164994714941034982166209634675783277043642524261393824247416081613305363810168332690278533971341176121624168527876292156031916225744347387026613330142387874077557732193740805886998915733181717213075219486955572707461475397367123321985839506801595378298425197061811424406798111333257291854453673914338404697801501034805496303900769730226265090497097745410039193689117854955771963917541385118725628045566816821756666689577954919127114336404542670977326321895910572162970994459398824379947104596105863021562398836880511519503785351419108718064837080240819316349400621015327056502207847082001198277451314452212601153741380969439350298110155069362640561111365248463527373002010429203784977430473984477718358990866738332852836482793797272009302639077827303215206455932792034361141519359220688489793267556273151014535406482774718531319602515881861829405804713124735913002210942647373845467369437488793522523264045156765452846626051946191365024283204284083688900763427145359457533725146887368664859183567437721669328423925542753244929909898258255514083697587568835204079440296747087416521646843389427555972476983982998019060658282113007777125461103705537671674268164735571870359888687745671609004415127703905076613393515848195943041000762817198806533106720302915561589669185427034892479681911421651721226589871996528638407792814005247219759321291165102466376964004792821109913859292780802374254233759595097156990378067845138654138375708657208430636469249144267640811748057643778683876582451688139043826416131645613027632633101955738936633003652503348285169142799567736320717865040221211358701590020028275185947459601357888578234794589826342365346574880307812079468414222467179073998157475031368983142787911567125579602531504955962699070271767500552420636284540538894189868451606877528821509477255676467039152680866837213412480344930306919513737681337944364529742465638390326317298505146828078079581971579979860267474682577813372884144088137690155349175186602084706294270765381232870823607433375909464168681920661096746491294360792527410395681466734511050928695460471281853846996802287336333742279029348045493221897073716022837089966004447830523896083196805078940457988596130405685435700529206656452024073123401314566559927238449642927053737719981887662798266329257787844581341614945419950761590456075534974775324753904174718102322533885092142853505036506884522774226420006286122554447237377973332264597909826568545483261939253906920607506014606432086222864217225657052744502275354867311033074427096038263361834404164550137018684773646133621801599598307122749097288370793489693273585092134349583022553956456789403512243464266780098600989413506741236446607461301469945753962378664814045491908128030028760097274996919680783775481352565064737760238497670492737589871219382920194438062204130085020070487320599642086767701473345452067881026595837049691566461952703712432302745258861859496712473851069693947088964805670434939501216514824797346181335845255356357005720774692174707373863820447538227873093509591717054623694439257221135849017714285626568832459900284562259214864066672692459250077080551442025747505678571199022198034929845977405833395265688692998415743618558056566964042758935217573601830251288376793501022179554592826950767915368707347427851616654621440928540292872864349108890247750851957283241999705698975732909334969214818259843806258788652631461330182629836189449703928216096685750515501470929930991422141353683698974090372985774830451181154006725720726736334764716582098129917205124390362956123208628790427337795536267496743728057729825357994377657587644473365686961622092141966106870539737452970233835410253846335818206246816958585067122359395015801161374922971366819932471257767578320007834407684844224630466899817674687143223941052670327727639531984438516444399694023574120858784328585903674530478776642971049450083742534110497503384803805521269355681421436641394205656256340559599273465067621386761927667139772682276909065133119068780718538014770863430355073189431479228967878937800460297917367066042866496800035464280755803913406719165478844396165388087661997352036546432577030291085146990994993266760972042910305980404040755805835799511125801205733399585464877242446300724863136202829246592008525787178718332206832943938536800766899410023870280026608380549766620468403130284645252797422035692709756723163304513875620820019917059255770626794197580072665599019360968168708947823760200875024316469632454447335916259359037783511962573283683765071648446537357418193384925004684199779356074803167719847709628532673276925722295655256954678246723096638595785039797331094045862161647491165145554869936145358006760514668289352804402235046376565275319698453421743448553760073844656171563580196957759697946368559374923962723566160203516298298199796407454842510367058317585400453418468697667945987238666974968929650386647077839713493071874053095240369285614249047494147420097174519527180443793940302041647612296237178508070032585032888882495886233987543149592138408631392091686104706869524760999769139658037536086470690461083364834123088284524468108394918989168000600310671661858261300419124797135254992694830452650506656016733332497190823855921221758536366366696923472999228683013925000088612700750843242657814440043195220100023846538094615569358269265748139126545412184312693419700299752905137713935486204614853534824198457425470723215313456719505647055698111078390876005324696131429366114875510612961171037882718635853661048763747048338764558818105766023512622463804731641491866791232813710333024151952481687196509155244996630162164715053296275575184463344134173248564258013631941003232330845991595579621466453521226288578261275639372306576158124654518799041003903324130519095030659817051458625705670292277406862762394750234179553602620625932087724734758765091490925438605348194789044491639462518825348537894036764968421167393677659609104285041724008736318898231140667836649747951259454906129515495575912190956549548479965186148405522855394582034899449787765456487972948895061257377088733221616432310169308126914835444007447197246264484594684805906155980056107906952609796471645619227823647364320198280167638999200836710743547704687258308706410304077652223932307460410463705560583293723380666548843201868264860477838906244081103295041736045525006464468755709011820031041957099732569611599338171942605552182765759620178979766956798898338845557269244391304008737194960543448785675691579619356351963085113653539461953757216564466528384202520440717417039879011136556773057200997112502743351655239963713453488048035644474528012116241577405099639300792249783495073544413435618615148107887011058018089045911158771821868591024332572822654860659702286380848012449227779385885857702648343513114187530565676356951190962271429569712290693485782556898869998945414600827508361744084607956184863762341130706088183073961839287064182126592862010157270155474894810021085289552993488197086727920891050390429769098692799752518803230171076940555171865715079793801739073233064163714402101112855488190023800943863636344574079345416155531698925223412721035176983288017450484366086643290050721209983462270336831411159043712700388891773782194205408317733081241945670713665276777799578516957975802564062286992413679402388274110526520162137241625688765351230017195346093086785127568796344987740963242309902062057006103680031823683496081316872450536472481748061471021653866716306804635653054191450287931981979177391423749565216432370407937631711901553549395643389216510416882550522338865128970595120307925820537377543827331246834621273616499532033711908154074850230100367827889808198188736226210088542927288968243823455078328643248946444132153345730317561056080411877527270015496990457122358660936342820891901103627353693526377745165777708351725136130063613717180722197702004203370429073557179854515397030858132534723954042950711258595317422853181177756453110045984089379843388082330553858108277698586041340609345971947246046734977227916980703137990377083129394373848010387576591321509364845877075323816617637770291964975739573944169875874844023399764922851436391922168401594706879344573563830127522141577388044321794875222978192814302010736238384513896208426602242630109118884441606134875791685586911094834818450528360249282103184700526991468146613354283533354202668191813827362420592442001737943502701823979415634851791199031432810516731622499329096173084767801228359378265161152416620150623145268051956962237686709408777354776681832254979548356229101587097588065574236999316956049305208011402763393641285434940857023139659528659390699611394828964663593226663433999376323773677545375465080858198322921346732241964278086965960182548353220131645569657905419595448464236462790873092125782793548955521007485889789825262894275025435115752614477765114849993630118239680648720035525396344869672248754454812251956143829059812435002116631531968548698533128510401689275758428136794105970023695655681529255378576119252762255220029446273508823316210100257070437661465283468227592218977860962280751453851705686194097631776772578815080563568221293555345440870543020613522667053786039092468130575189447287710198371754594880673035402228740854714298468738145406647936031716309196108787243717968112814574713755692083459112858232545150514794369362681888755355946099816392967065150469520410821913430146245834727409131049752693796327376079410350652072129111988322675024786946930623961493345137036615298982390810475449932822863665544383522406767008636358783271062473985394611839145783773220454755447988474370333371418385391713022873604751142088390440557403296935644253936733413065715234852807117966499731608713701971885424628036058737219055662944615114524963996588275279275276502257400200222695288949627918931469635059739391073384809744563248598245269511102161211226384906585263323719874416249344905705536984992343186676422040191872035813461820666238461120609835189484642613294891745505601446841293038063021638167114480622867534717552555200806233443632215538423009716852432208080024861313586328320227705867714165723410951248125450331887234888298357335016970607926433043576578365516522875069947770797344671227071204617927923146364413001888616347288910213036945701539938487937994390971027888397437540906518606532302669727805239747756050477370942578098238128093852214866835574588799216031398731513826452924837076256161030088291225696198819035420097048976820191844003682535180896676747361247912499359569728809955898051576708708985008006488398940430142105587883498666586643932904495024554355849893815323104894770243770781117501653561445577073405965129375290296572028644131143343317049186200041730469067198097422363518388385303955432213529885373917147650836589926435152929134797601165117743898861243069644325912777162894196928722110571949108754071838202609382323584153296486382025998929344085250740413858152751274381459324202247933429120586556322459212598079755351510560696904689445383888204752691515171436330459913778525916362545119041517258180753222993829722336380308534478536034901866698641768441186914066386725833873189900114513931860462048959382388028971526475393301842341442048600939717285030821546206734502372716660384638773780615995636848529945792799804625619941646870548275257895889019975408132284546112261176112137044397014578492755251640801440603028880308136326615745397978207456010895253102585782796446118324765900784770090092347330139226418558307616022444461248619005195221101092604272190999692858127753920981059579957338690875668461533183034372056684185275190871484075943824221915464428850132872230230393347096208209330710380845050839082493359401201604979954098041801886587264133718208003903919466912197600092968463197924599808300400869264869428376155449850441068858363124089324126721577762674238612193545590233390777317679070920152800724534499543787214357491173137539486979226603520676735913812457811593275113261079659179122335225376086335030635898190374210600843919569837216794791619605784795342753858614806162126402572105752290547871306097266324762898531452298389874573973433217905300214901744816466808311857694251210226539740792496615262578806812982343173967540272965022981253370890653962893285983675481084918337023146728079140387348676246950326959574638032960435882610583063273045770096899114342436073661307258807372320936257583531970226459880813837565668859210026778266035124560104329693603130379653637356704377954469758497461748050802122448305596146616244579679540239858106825779114948095318298891529523109252148699296828839996043665425649452079866215123808414124517887860975604534050561639026304862232044038763706185902713387700875056419802236377999048255067414598042311081523972772019939823808827628733671474799768347303948844303363382975203490757710838231805078540151277642230995820938322317811039214741977226932170777401900770869217246696040756998038975519872991777590663811912971262362074442247742108048242875619094190249058502719186107189805765875002607309228690987569235823461781097495120908941840300384797861124151589730090786922892533738070968379984361830801017125478008889771485431811244040798571676833942775757495207801778921059013228716572294701330848220867602358490452894409941999533135376639415923612997592489119540573891099190784334965875541931785408235876781421565357579383761326591733051931336862664471018527866435293540428481424306287415291781665394300610191998263017543176685841706130736629088427019107466708137134190655992854179359972443631887932159006447738481492046864499583945992498017999273070009054035403127620756246569049099263006539220562235572015743146575553691712042553585070919680122629926158845218417261947714575252788200707727526761285235036605101022688769544441804777588497637060272697661529200901536713337657335527781198532640571425333741184003782451438359161499297471686870107813289146330107504626661340836660474411676833499371626647505561459432492561876205449116038608416754568318678049084929468625707926067722899911738295230718380031523384752156175847584571668969850957540365790333729094803639520100723996584233781241040476677468862842594687926474162408415555730350780291493213751341088354474073859228527134048336984508046328781196742022896819141334927092725078344882769395736373311928446404692752162107131090352206069306728441406782501274747198027398447744442702410153274291231705629484301474579910482075668473668332816405882680034209000622971381161997456798100646706517170162419414549402271413552532363340101010669911489797577334020054607681263068273739018630895276339829166506615489652370430552702572561003335853623204558814950197293606834133778860681917693638159623386554280020777206740307619756959495134576304634474325120154951149808510431524605191724168231242012214436427356458120287703172424780160158292404778486771086395377297199567532543191123106765857543026075524465111095109560336432520577328013298601785503053847154098104766945117428739746162126724777499029390332857442317114961793902060069639076979863729575155552923539307205701880078440341306245249871015549726298943017456360581245966555009602665358750744513148929240030469593162031266319196842185364733259000510271759535508609381261884149449141102614596441124382508084690066385980618955308483484903200015902088452730577362321671814949441837073613061825399420896047221308488174103664254728755785133717971600113190978286178150325679202674995038207522215292257966654579272136744383295011723973397358609533058247714989404019236507434886831766863666183084752753999704847453491103458121327003273740425794314358009662810555509795771134319575623542560187802984416587042311653833217275040669749393949849345589231416677817448514534895214331172497299967883493018102373890324061565629120627610984804644238554622951169332905165173430253208172799479018294374855391512020964483331485783719066790390620272299534812787536054619580944827384116890870122725359724476277827056393793135467823383005058636961723702233616227774949877929536788510548243552465518292033340430755457613348267586466213698780462935175028876359008269390478298987222738212180872892818206316814139421581046474280532200808490432982299488045298710623600773556382553606996095176882926373060017325160418509157064785998694847791435926637574400444235280239918414009740112797389123756169684000360045006341220033578153234986220467053976115558357614143100287364282064478185322856713165920564849887729727086241417202653681850137396053228491523666118550995801567869270758346472509980747509549776231283097579229666512580886982804366769133064780987609295344323571770367871322215975437440183317557271439257709645934573234686975353366888947419279109600492293442582911654614505701457510375075448960386933287593490796916730661852534726444906170847548384569369864927431067307660384664878614925933816452269341582259732083887479122407115033180508771160557442582951307981521641458080996688150847425537738214365303184800271608079346564998977143450537103468998609145647587527237116978063995352005006028252739841742585092689333790206948179994881025664347827784114065823556775956563475979729511150931725556964373578339020124367602496488678273712256947872110044110976491589973946141563470409690341875879662487880670456519275762587418375695468558299939318381741959784915132419635234709695003719606844684908974376116348882433357903332836200237955689142472767378502859461703914261889016984566415163100541599526848743765415995419913105817463196480224494942813327893094511447009750851546139659559855834707282416439182469559960101607569835043198227472186191037056628744170096083770098274037658497284876355087888994528216375172572599994849125430384153132075141062897132722613303720379175608826582914811438263470192305562270896979778541272609488631019920780364508296313600920172405745591212490883958525528672709581284728183871181847102892718359747620905317519972972520435791366721049148520527800646992765551779763152123221359944516099594871140689690468990203405171917275256734147326567008076945743340369291367367020257484964476469935325023967198002996643687662242441996457436640305610788713075100654965790807323246252506438987187495088356055516448354850874414907056218039083105278293313669343804522519119579625469846990821205130637793892139264251516677469400170597922168435864662138365849993345986106525630057722856426825004202375723127029242165227093559724321830077317218803262731716069134719957368875847531566750941038126194011514465088272199364807108941397250367942164498612458941742841233119705057037347823325146812658746643987030415847457995745442245224555788124222749602432724632388124691931452513174553515941333009433174386157553353971517991585681009349791926211470486331679498416937402763786736789352833558069921921962271464010214965087421724432581202573198867329338614720846112302127247070954080315489121443031807694272222069007297092075570914244322069873719189503286136249090327678063840171705837525529504837330278032541337833538852242098790175663252706302940761750132655016731322097771634090667626046120498277357056456340570384425411944322732047968647388765617889289217115775068803213815199068350814129042924784145200782156099793654205950621864418604635739066661355890543847324598261329304364659187817677889048719030231908939556281792635170893794773473661560294808700323122823852287798002564116291271112715676536697315946588969154189175216560691937136970279098563706424001640865727117069102899507892849095594498559552989589352489251631998433712768149213351661346976412537900745419792798390616476879129504200140737018312543351115646732307508347891561564904948634151499936321961305783214690582668704068227966067190302097101017411960437438066694474745607340478395780796182364822796904737469017064483877706000406046036446364352247498278937997083010788465827373881489911230703866108903039805260360375804832438326883848795107821095041279860297446924382837291316505119572035348495610667643037486483336271918365378259868771393474868327047584118283579631704789817346222359194850164766582096465756049366100933900665030129025835647764516047696249790372214775932180817169787246831715365271173351436813501602247222553890036354670424690935133588444647731616874797241449115719496593309092421719383932451449216256589489591244925219014333910492133203272253236262526411498267824792859016386631133009925176574413622265154235181807965655649234251498413108636552389044877307736109974418559110532553117710500801474110107159953025605229590003037333543194219441606315328901822679424374838042905984834234238623896532740904301164171176749082714492644255044343098991344448417421564158574160940848586507000967678032833853903961332268425942813387903306087921595275975172311767396632903291883839412681385123470634371326618319820974253509361619785136986801330060525804363482949531621241335631535178712518633811554679825155638136517128241666009701789743852372885175703657572002781733821981685881230835028895485258536398757023233635708987005556154568311184485195820856199255295511542231662241734291063653802914534635908185412680690132668962284875740137870157886953163075940282913795827408431162356599080776009418286720537514832411936757309882148605882938393320587807363080746690382354658490445753008593727162392514857621080127524949343904139593693511136227652259471826621685302376365395724883080203053293279034384939100944909051201667499986798640221212701001635887362367218930034726506584916798450147097247610277435956300606900897517128799339231350986406174882574331171849664064810287937159252655457138079087535957274774484976749664216757075560176349878960896500627312722028587807396672339901314183764476514233946610202143662889137894579396534177117776977171127204735429627690043761328198686062124404247575932583158870005896356159403081181810536564184495414844998215959110371151276605317515079758032075730734856744713792781969169530822608760227374872566433161353648742799255033674443911206252105663877908328859854657813642314666283389918976021418403707953932785128803090411725992531438608588669404048134186302840388590642458480445914953562710781969231291223593954512327887425878765197106664698711044505646682021078942794066362004494473407905790618819681902359921447020937166640399429673502421378688222080149187349848878074377814602573898636234129609114784085432882243102967637842933756149567445744459058632221942859287130324936594119263585109219219254809150310685889132328679568685367915043234719203952757521368155730528018133689262638792532037867950968223739579827600553760647080726013696860539049298554797514036335273162843776860047476695710189982916424335195811794922357946390412071356819126128546411107380905753450906936436748133481567209186120108074767454667808830237600577688428679542582479616882103320974031097238344493693118617343715207470417982161554246746482776635714896644645698114282361370255437394093145918297470237731923903313415087047881468362114936087449114567065663781432427086439567179600230792649137935175697706801199057568718781715686081756025899501526514116106276843886710544428942168539719423604451354724745388756202788647297339356829045573854405903992914314014876928271944690255012354954133919447960886977875819042566488857853728477292032854798129797500155008442886000305482900597891432795437366094610589900228318897702599223934446136372628271941673453474781114501393483425098220929161702135886607024136419643193592121056176627721961169530127642115336415548057280681031743634893180757443330090476212930991072854307822768764407056366236481760863992697615718145662767472504641193579316395638609162542193346182503131284682943830804300356697977340262695298512329874416986993318544368835472987480697736030626123785456241197288489518195113815632967323792952342563855434424854285471411332935142091283092675988697724455869804303377413057209774825429340810712131081798272587982675248636438145942987583427742541366106469916130473069509273508877651107306487448281717624664769539468563793980901824087997341541196715767666747950369618602736649431630566698577775220802893700102316862367350310359674227047216509522647653603389126472383816032355007396876843663860516539904045771556431477367915586363459833384907429938862847612543709022859829340029449672181823311989701992198627640295286562079953249306733675777722755261298033359866340961084535242746458876629716943446078512860310668050470524585337572378884592215731182612917377892508457516330811594288263294342309466869682609788295005192269765589573158059817999076870291282664756389266249081521765202906995832239293581118629504871383842878338048741451988495012684446885135664132700516956554937419609079769355557598236416895999389407358829834678951743195287816241079536510890410111286949347578897848297434202954001197153828969165667313709402166624619931555172143457157492633030733265816174104035668915248661699245275238047735012097644113155546111811527328415836668351086423032531041568190286827137515810512948650128545745814732226970997260774047220254276800707629212149062195979133524359291865683310969808466280539950320158705588919356422081291738082713957823463063966080714846372322131504801666232535138571640583138830477520529488479254306791588501161930103454354569587012185882980685947049347417833951160502261310847308462812963672673100362628438755421609448951353670150216638553748884585089816575046835401064449623409895938819154053552421030386549430698542681425609235923237193743629911513947145843138628072175225677404555954057579281296732895478827449979645943844655538104817016237215738522484931279535900776541813134737309087797239553669143212751127937621608284689618949657886421577540346595586252392412899388188465921849488400877402013147696181797841432148586444124630759728843546478832333842768306751808336964197129895763461716842017990999033411615131249097827544561384008405530000534103495457461680887176734671230691256780506000485893353922789904311290297311377380735811565767374541906441392907438043087475885904968001663759457909138500708259690918000081431079737680599560100402336884184935104684261587643684749475498266667594385618867263483743845532925887213377784831172213987835540941119732675282298394361001125103187120068596062664621466191463512555130393158335781933242934200002845795182848952536655399925122172819193436593576639807856746237949613594586577035885806385851813244550376184575488961601513036030387398179048098864025968240310879845681268085715930147421213320808733243258443842590847401743577169231378582754559265768071243626342412955398892095313635625167221083338884080209920710845957968872372239623200966482154643885361589261911134747128414825665904236636624645496721689716517748505069686821180263308320124228921310582667107221068832906111920479307419318364309824661040536098834461423200322308349585191899832170774410852218134455979942931282425949868690929510083964492463644496082134114064766960811242823439541359069434183735745467667784349170059908843397604001338646147491704016937917596368332132864011299685557146822430056404386467030338815936130100457973081448381614494834693488348341822253328559129041806499469708815917845673469234675859387006296793764619686771275330923219794166642867387126549649123559073187563582452916263686225796370864343198041091606448526092657653984055105597854451136787659436361887627213775290471448951759303860595631046933102334064380532119100585646421393563214365784963691791777744565697700775383919324374471636388836948762019310000688791643483138894647838399361698289843807548835570225555238359834722388634087298886714450715171302427818753356914615942930400174544773643964963085027971258257765600129093319587169507889066298628415375430198804659569706060444809999002661853362528789201961971223572546850441524367708617674073210773120046370776386319728829403933449362358048854819235642380173066130258841413841672452253474394316112306737797182351447016313076796725540649537175622984627149124711509252386363971812801783543701204961612803492754141735096357688469863360914133300321277780634078825036870782292360604012879969403668362139849920744438780327710687106096129622712746200058033357913100814499667913032108747766799175822899486320450335856394238219967740679234001573575968306554003498578951180755100339359609865461247400347353241049272775920376287382700252143383258673934591529870908136349938288408892672843667253062099797486426935270414477926145413710713011703329797970463179189489634545869721232255671870719506074303076115899379866918227962073223463238710818516852779138757828539695667141447167988753965897999885565203890667981304574246068044561807698390384275362097724022880024591797548024092694025803088183330721452641028151754126070107562464438776082063854016606047220356990183088873944705677966778547045995797555856133905501369588291267274762100730240628687466123353564601747710934753229453495260090457053463397249022642109650262804446061667056317286813420699804209149227254369953571711485888201394813666278764690596110920040863453369369507829907921338530632641295010139963802079692509145322247328671517068831786470147819521488801103428570529810975897249553194664516442770151029953417901094579193769676225673913980323165019485680584862816678710491520852069115513464606669517025725208634514292974245195179868825922687948203710456227337451657921475387065987069287511272955902726347594149450219851036339746810013677931595913998661479331013048337269068492687626784161868994195578027803575706900356844883264529943606606936827037841524233010261353057045760208671083038877985782452067694462623828995859865364956090664289713754459941494332008160411442829679643321597120188322473761961997020597538189458139059282317933834395619834609451731972621844240465710257353723993228902863558571337042649098701940953133035893610751045500143907688817010616422072728965530277321756857198375026767765967014497722324569789885753500857781762435539765306657491905071101770016438442923029040669346069634111480779009380872513313774788366085977368972442082955447241339799231556905838437700770449185248953656742681157483400492496007654306602223409067687093691895278554973960916110129073884194076770917804386085652545344164526759043741003710158584247192210268644607736033541521706996395343296358131823982240789474368326593304807585194077797421769604964235294808369099614583402491926177531843780333466564917952111260419474719840415723259855799928462645823605381391276111412821839931826145431565124004953442396549268407437420786290183085301927250039463708729054056108169710595805752081088683687667409360589330054409439320523187131950664359229276629801624940738814258168095911311630179186338749363785929348131793747878316195644011400619224704525221340067011911480886665296617619551726965172126964030559687880819320737970422199361594577952461923335534936988712174211174887737366783537479412441096260028828499206695009927775226895322624162545821668950834575196817262043102775199632230315701708677712756568294872553501289985089409056602557819381660895409534968468508652038402953175301020603920382069486038631813946946800614883499396427829515585593087600421647365093423372265398677036761736221167475846493685512700527790422997821527908294797233481791196614199044650938357730409536967708397057263226626945806304528028283598244275659329248952096711133716051757281566881709917730560621321989493454427335250860343817226036721703200916566739829215802684485951965909966005410420587221221096455955269227306241862837441657772387231577682729247482004504099751599300953378125287324461356041334509231475406179048490261428748404922443837006157048530834204536509448702146101810520940073729451752809518244533707249121889708571609070448014143785324641175672789049058843132973832087065603721817520067788208465005056232163638146365136229009942148219995267010591192187358862332401003640760958474491051796063022336802714774797829038122259008756564051894493239188394923404543287850148569237795830611238707941462507944913602890516933144642941202210562958348597407492208311257028565278778441667151476182312741090272631065687636234494114915369132253545585745637492823032295791902151183470983183771923681919337207659658203941683614874401556018558675526918226932482028602775181271920282812974788209941147616180201138265114656871193834110053366376486719079966265489707415717928031039429642236207863794051693176905673397389530533181413462847326500737377376787856640361654296645514329039087960066733667325839216315271947257914452803535332101736671808602977751673291744960900707343021139153322331321584519391467146867085492437828445043581364840934856253310075586444277589064818264984861037978605564841911819131929487239639226255792067033839966735929124771830482315973269534664803232192073991147922957257336172429390122859634962921763825351414606548598670660253532547416490431316893539737050754379590362483193462646262831742511296471701889762867376243557133235831311707695835807176745537083560100299236887123731195326704004273186480338807137259738604129568474178761889493454179476284185998872617102394066071963682279794601781057516080530307630066336688391868247309878823347129079644850221875036060465778860382404912489850132968486714099579698741486733904054681627462262439032626687409462701114191512986254975803809855407287855135445829559950437343358425573638411627026018658413348542934719969821491982084804104916187902712499002068726061703964345341405015724885094360314644521664408839095121655138333347082453736172020052104959289908662669533483614997162562283441510361920793011221457060189655691676795609347307498193019826500975624475401665639896510386145444478631471830817366136222165924246921592216957452504923742648331889898043402134351858998496349478308697108852997969019419359225224930967080659368345301438702175282747204975110080789786622913637281493120705024243398464906228492793261360997300957198877321753261358609484695991175018460634598864762990078096329499141708372059095362981117916606035171554317327408230927579046443457035838706776912448963643630397832943323301936829287154820998174378586588879193544052931408396855603545918667249134129548416150004599334221765669705764533183649060978638787440851003642672633015315573155532935533030643435530317816621172966301017706172426805743821793057799597989902661805593689718535983773038439823152620321613792507151497453106650154890851341127902433471387722082367007668623406876729673278809130893880754331235372080356576999176886182017003181909763934298002839252715379611796454869610521537735084345928064141329765926601442159498342103769569166630952630474681007090180169986585270695916356205756894953437041330629967249564034134161018914156740096674080954931747593713786866066715108446559776792978000806264212237121033167329029693796420197807180446584211408900563806495106616009874585845373893022090292860594628886932200653626834245425306036604118331573419257415778600844360893179453204370373893877813887892638279493235293659805717215291971519664779192915247465992742917832041260053464792614319797288749343901733255722846602525817351070294239710454065862400174085776560325255520096995496755032985275232325979657349666165522425486925450062029628573319728696042564712423261618129065172195240641677046380527063424674738560423791564255442543575315227337534228963948561581184353338529120320814423873784448502453748886835927981756064520990829065657695065413618585464070416405560110797167944171575498051071449824693472631896188230012749812842328376857659348068844668547957577426897824728311661872251072169316412203502170828232021207425178740330465035157220952613420210640375554777995681930323000420166759631546947882616042222501078985440019373901989546637123914731600798302708523624826704502790470261981571552195072142373194586541468376695232892073185465301577313861425110334852973938793861046367427692977979936508965039821383011467620922872097280381595918432413083732187390411344287233376547076652527717073657438433873926052443699559161673219749065164453206482442383243858370367167755649632278963783266727576028971129450867596000274040239255641659063190135771916583157543660972194535157167951535630968447037420366975928099639383353514238654975313116768938289168725804291980644794965202902756390725796589209007473902358845416139306726249316757720883466399241506325911037813959985609007177262535172325207383794579156704187507221260519960243922846949391290480195337701161102572892759083846118410678323883684749854846871217135237636040568517189376845038509927934029923803140503805347747654435680065353039967450437909084020094356953096417616848402477053351254413598779595172121949015768502017967685763223443279061248467693065449379830400030482942146740478129844481083659326582340241812596989106655241993545771888094645845852537806868603399150440330912894804236138502876480800860862268597409275155065533438563379289663169451655486847729901687277199157120191810302091550440653151130265630204459458070975983045258527508179082549504003063127418436847111782524825926060843017242456264904330856722393462309637113356609366233924642818048008015440083049137410614031751190494535306811265602114169205408943443726885435071224358068594599163245182126515237384868521096769113585509813604718882816483143236337680955571937554764572084234266032567562199558028835293961679298344158591037606541878808828991853713001198553839686101991802720467057993748627897453372181038251361418300449167434164223548653748374460416659089435653576781603222040943271448781836769921917438466316602241363895543915481796361709104218941557065642947729837142610887342721850836132684687615959321737945824362737685330077134845934933991904856113083289802385494043112773728002516909184162184770271051672439057051887108227421560343425922358446413385790208027075414453796852641244141068064473323118593848549211341769941336361052259423047711215132475381541138667062130406167958720432587321349776972297110994824741446216867014371281569121473985978683249386189056350289875187448596414112324542602083342356860785933020283164755148529771631884851547942948186053570582913548016136980972864051834096956440955889424113382396743020265154923185539528938633803600568768244316970359837412403059943088330091131243295829345508243165970593454060882725387460484089209197938529173420522711946168218462844348859917939769000742784632426205062749812962711391362942832061616657253560896298726527378838483015920577881285142918573758983592758696541561396527717550200628302103941948511625921515505961274572587653572275339070820246630143555866424483169295095015302947885560610639368688635350721626838331863988341735627964580368246453210124329704862723421053523381693269881433316727335811052870340568725385301248845207056257520285205007452226637640695820866317645038219779840574378457847107576584935455240186483314340768413347110671566338264316383686740128645570493346127411148051878905715599611401508716907896041805099601345577712265637591046579365420371303904333908952639964364339892558926401831666062729772917588418153347533989137977916070675355629777456943274499513182737850812607179961371804077661583705672399185390871842921466119972898767046545497970937250852448059396368137920415908242429337845287668658066443558983575185908539043237812644314959370095528264891024977373529146105119607579254966302066384690962728604910325781434351870256816239799530236829687016246089742136294437136709643505873264669987691761454088987896137351952842684497082298389651543686559993267049039235614471590312536060021871856676679994687608330463194706111941786614631970073796793057713872964445092915630455403967821116897534982164216598447275937030052647670512402406825342195465532409924507575946062919485430165884320209116301839620218576082993000489596051815583743774535314175192173741276712669618369674846655053883341000963133238248741239142124167410604791288847211730562196500168707319531579386006339720402594592495575968132395039209273035553215355608551285249778418645291304110301988209804027698704642186227637572830660144647815206182669364142782350914104507647363606727449131974290336797137515013048171912448706652762139372231062027368236797177299990802973346715879507390153477824569555412730899912622272649042325002204932898151468618217665323082451380193712620232583494548699476416335808608327058609559080572884837511331026046810160036579370829413131770329494081734145814261684759685345537933587429056186917794600354189419885233734162465382654048013154027267565735206723834771699779347955916185815486467956923405684113088744479492962968423250895359246913642625936432602822989448437841389512387906196794129110718473750013231725541687855840576295542703436662676531143937118358401666172563481474713417343345170869513845694986272830212467724823175837746014873534989952979207851348203979471558093761369977269489033485075925276915177895310407903043000725990321294933003326534860396075216448418692189085001964205696354202058220513124587566220059515574928663389269437335164815412996236063917143682429682505755725838616392387510708620165963465321429910964366679014524439789601869963226706620673860105909574027857204604121977743075230611339818778677451310288616539736669696090601853689954439072136331443239597447790793940854516316542333127805820248777970200076246172266960453827681702667103555269851006282926654822036745987279283065156524669463124438426472958446916515804544105409374200324675467253487018074354763959813316281762698311573846645877798049901441626177260785808639971882945888657252039944629571485657671576506902995507985145980503971337097584102728787110580366730386852366712618099117195961703995034323318363239837602542450671309989550755386255521197976770328842977103620002531298861592588094309831710899461112596376326298188993036686901472566155398341863359489444827979645715613248625260693037306970865491444775901149256123163941808687934054356157660459490849313995365915263406436879966179375542514059367979575277698559309562435330757670719445082372846602721591703537073407433712832376109109734715481220741826305028347182146128605576219517919438750083255886854317255619921352621984881763196035101171336491081335159844916886386888728317383974148613658733150362201560342955253016886092219549370770021539099126953324648407428632369692844071368826650529751911206762270843892064021422233232085922315388385000720431588893369669027789994447584719052830846760155985929747112754874861270868075084447147461818037726393066995470720245842506144175057719687740051904535788645205518024058790917605763332145712854659355549850256954312031418661978537073790656178164920689085951737151513390722372513746351444025606027911041998385993843575992495651755664287866215449558649390993497420925798847123110917307563187378840124977645870961233055421957631573264042515344683261563463227495224211141917409818272680485327236184849228471582493441658342462954512469055550272594515663564106265732191120506860905886025941466285896661479622751440961286301719414465173465517171424217166831267327039954085295710006036418470725936094804033010976562195640386184013236772921227616343164413743482001473780818726839120325782798407231685627633733462517469027000069228996902396363923159418221698546720607701905131725204475954284520434444054471622710366582555756213843419683969517060481108457675209144757012294352698945245299456836231452504539454026916266000378484574121597588868718081061177232235987413970311665970313850857863642605309601606491299901753806455526744100869255610829734895940264766687762037873663708064733313606150288985428763979113501188045807581070919096302674483164728889091953522199219483577513947050535583831211799247311855391533503871226459122970721520930366945765593993543744577243200615182122511825898724604466300295284879746284660574811716734026144002016153143365256856127381960962553613879333836660824568148026186088381652976993730036398904167465271833375530466905183336962386020636822193556444852804154102411341947948521686961392848812276754980010127800153529202550232389246764050735288747794102087521747105384916759172048337651591150487887484581104847231713863608292457315400364861559405879808283283003329227766775284379161721114882743960683705164893245996613649688264202748206279935598732666942375804309224351126208471423461397480188822110856691437046277781285350338501261598714489501405673669214643278233141288022735761388257679682778569097278575269652057236591444354043604533678622937473979152316444827952995456195937102712954306248515874857414727980152413285866493919856292690328791494014088959830142668563184752215846008216358206985957772542799743414859485032912890131423922112110278012704027751960058941924986942608947609212726524019967238022056633381835440033527755589383979131910969919017922232001425407548727354447718428658919782284754672840793873019757356997716097474484823950294109672292882603585841909532642730933809584008376287775033493917935848622256364845961283821789474087231402217410347128213388045893267121436633600869446458343559334674712346161820292879102106176255306462143897871427819081941754601318754423011062257768690776566748385563793882264891019298980397071797348803095423717810193263591817554227487901952179711197264511078344929432650934785151978315050520117909880358998530432037279033844911092262043437587502935764770277480113453067699759372599082598468737243177889700014896277573297778858654759635192429180538223064240595659154587286478877129969782964679274832280826839390301641019018700716815801270284910114429488732939901212287895317029337955554204136966480020153552746955981604168127483150218845534632966204218213002543976489670347373905783982229240112351523879112175502578510432549036352643046411781367768535205233006109975097261510872374513803785162528702579818936612129527588926920617377791182583501871054151528937708179343287752331037944657443439054282134037239906970984904660259727030565558674292356669463025877936625692210813362583593787703874497278626573396601483386732930775221857832349930991232803542341316114913318499536741813361237238249999237368026900656133271181954756867279430156179057700481527632150041863893874166822639533994520447084829677602934572273810331375659898983173667039021387649966138834302102138319658259556449401000067680475878332220510946208291240935238741072831127795680373511298028684773888472973819377477890005000319788250063655035387333342438613707946322660485093496084995545031251769688824695287498824795014593281147304797873484092508694736074713765961910050134883258448448817890308805195648281082680911184417626894365910274711908277844555721466847698225525950038044140528693980601936501805910305059599453231375553010412697485297752759745754123043259397382655057529994529144320783002170696795679153977002227993088741123313587955482206182470437624800133024977620618847393119909829205961362697251264160072319590488918154419850992787698949539301679503850001170937001030010542444366073099838717504047582122789013939863733512869749677627307417407745131020535605077668230342684033642593207580296433214229721246957016947769944585081290154696212620577125812000577685015970119890470882988641939157282329262830589634719267692493873603239519239484440900769111111372477046916209621802996747050580469508049764979501738702507449555112610328120477412805008860190360502173630805072898803432591865194592000031658996445637304361584589269786686124252929088736661248962074666639905293654812225591137718592513870540123591846241039453875974306817111760848315546541805774018716319348902386080539810634655074739040998543428884798351797176373651265047325264654052564241255587957753785037402726408953080938752262073641794579527011752110385423365588033243453258269448327527997374381314864636528438031797394182757437970501010637914479455875327032862598244458137611452576486526131764429225452209515171722898276283519495200197771255690542265004702232967941340111390938982800954206110229406726140482872273390623766715797860148064162638972094318227629810984401764845874012250477877682554257256184584710226308381139685519472264046891832969588037250490621843652406766493908384159326595114637851608244042470703826069090895927936375568911744962590856179827615067163786098995992630951044088229825281037151443774435227569417340775929907658536723210424521018122225277549548193264119927334322177914491895986875381688564156546019396654833752694977767743505051615828657398008577960681912940601047725523679708795332653507333845514972203096961113802647005811585013429033287984339663475255906784296283590670743676295726590335108069769983723400952103617616527792940839577220192941693629627943674672946854290311729781736671488866124961016642679358078062185896446771693751369838471505782325274009484189990632999212104316073876469252057127696136465757186705801434851206767487743329849377068055110662507874438423220550142731295055479812669945490681046430811702941549310055975924421695998429709699117192876942394811277260107016031567576809292080646518428396545277997391754272918621926342587351764042176275489588561605715138293772235832196637764263175642725241296887372033630061584359227957437607742141860398736449835797254267106276601838650505359711379187941124219792048790652814496857071966424036431376612643548678951773911067451949911454248250839250610202222075616099815176487823580955243557661811329334576721551167880091719021918851896978344472606210620101404183160683996058954540374084266718726036644464208732323099852489010268713081866858342546610513366488649802585208384492233891230299255592731056440018549075677899357752419122437389896717476705351811963950884443318414671872099484944046745506916601818125843072482284978354844510420667193691847725137109441328737857578711788205920614103506425673694044232398220699150815926282778244625087578927028610289280469561203909355094253148444013619197697165154097617281843126404211438246186531248304386653988612306895333397388944681418863008949764938095891931227659091097308815760722164674911777235768594099208529342435670987050524523314228730895387352572272343895415135288285436348549262263844876789716187523576839237468029334084793360665564523620264683283038617173366071633038959139870024909199672680347066850140086407827662623600348710794121417389297713055736198781095319265294674750971093419494352285970920199274827561117430931967514542725738841920343642678730703010008226825361920099957055462708832680097506078285632735373349473834434493435769208800939774388122406131150314058178298627540901191253018675385087236351267301303661801826294558770546012267626495246634642308549772302745904732784743429002613402028211547552960404322433422217017379468917218473356957659688388850640970926185311692675505206997971705848533302511488758591496143507690383917742199665873316988867751203632554151782768710382641804760868593684321375766408440147537179104509557294877504843527011270716719230338671304516656126462530510577630826735364310287203290620711998918746361206928788056957413593318364301252279099402610586092672666189479186315656235306350441399354434945295546889200158493212628417296770063210025478304154840358810433247020852253734880642103366625934935681492192589447689948624948918522570960345743878174965858094309706557353074839297861690762475173205420953436400626388540357839444812287766012949980334177993801618372623332040538261255410737624409778880062612511407252260663947390975233536640798533006249903441206351474821286964535352930479950159954726926430279630511079836412075288422704210855265981056762979091899642254331869984061153002434722403559274354445452536895129780218700579817674746579843868800145628895516593166707609323012940234906599791311970524738837274561556590369104736161870596431721589618654145956737567083757317015178256926945296240418218895850008073169477919498116513006619222072652135756982290998772603715800550225374221432527207564571936006359632296887477815197310103653332120752174406656430810918379905001150145270113051479727922261787518190145885517420143341301716726485436950359742337931593613258122898187991954446147890368847786202474327167551417173959568021524037254905846071357640118058097422606737804701729539478581871433749919509753401150184853318253038101862406813029814154401986837575006037547758188535051131921710085785305558620279419594908674295178633150321522393073821391590536615245410974599943300608400132048177617937096935163160530537088012309881098022261718496582818404859721206121956388020932089656352558956708606503013424688556545988272527082498953395751547386951557045996206177299870710284455921900640874316926046380830919414537837536849140358477906086638204930515446293965722016504276233221696721228351103934047606023112995032366971053089556997666651328644426660403103713428784387073588768774283934654146115001501205590296097821172657455097143902180146131354054023804277238687199232455790444606227473375406614316642977268364378927786251776342965018927261318595320458253111245761152588917546578817197262065364769281358883027789891493650789860497285502505589162997514429792089320743100417581372149842121616105266284329430069930538020768269041708652216862610351475989227670863159101720201245266665605844182921269997559079480030321501133446703497167331811920804448138573525787936608965481155233014022205763555698683068578954548227283450063595510857273611183331891220553680916781912003593475295947038057013130192041918752945653607203916234527394399684042139447756038399420162432486816735271673433931987515045568256201189453663645551413134289094405355064439371699112493837982454132501661432669985975769181207255297266301928383326342379210369807839482389859694157818924114547720027543544679279676063928873210295758531609836850059563068806301141324808252713931315995841507951982063578728766151391396921400000642503455165865362720806383477834512896681633614123939728692597204698808519971979732690792325689854080839330815880144137497204241737851669294690615030376222627227144676669301686303855191234652098196435427929636261249010356589158476018060264485450922936777494989947117564697463001852207361674991764197301058776315529292089481758084684795244028913978931668872840260560896360004595515360998985378928111431907704103790505861097129331623547280898361378780776526879134203038777331459391508923247520813024942435814663457507352995851314575482066854492756855304429071069404343834827512651875660439802217957372809141651574828172033783866151143123884188173743756340411716245353217940533367491709973120489291155086097786246107094902891253574749322386321597391980084050391451622609843034636017097556606131376236522442596741917518022631490008637394439430916799370996070831605128757434634568051298466940532571187733433446327277063710123691251088841273670220008046571418456022925217672798691685970460589426388262398007852354277717845606246061913029875308879218816033032467736498936789060276873669695098792020788627749532721213002270720801785378052663037497320695867709729042989963394798548102065295292318619490944868580201829396704763938668936468603267788834636553037166668247872193219097635345384872961687616302323332040495036112571392698097002517257112468044454808152082414936241952738639891142568984708786467338839282294164690308844720028758533419408872162322484486117627140630793026469154163733486146971550774850273047548978429407872835382061709704530963420694450220178838117180690804081521924012608734508679468644048414691015726731462945962201384018186692818187922782014565591593330382374817227216752319367898582909771053282859556863035721546789084829129041257067031854306450826400609339650515630956914499116525431621461030308051846767229926084602802046560367342086224469635683439720493638913515591373254584901235507969854636004435176581608037075928997963253674994965948558440298743738392474393263589389576023548497021432107381853622717991973032144820301459696686948160304860888364512069577165547514351146172256819187858145219325178844506450572915458223575456863178612832280216685059134133472438003946362721534052202966709516878068431812303234758339821666436294702104251339989225658833408988686025569651271446276484282263141936638917209928105256836391500717824789576402533542408965004204758697569480364201046530615273783258978890175313412443430185308719835600919776610101366126305420634149935478277104712957621221520930457461094897896034162876493742450507309175821802783853536361591720414345861585254055813322394083152350994069040177587787675722308938698339070054085404978320706390683976142430431652486742712270010808892053900008530852672780811467309061397709029046126228738553612772509395789118626077071608448641087911662673620791297968843087652053494709023553096988240315504255876335429630999576770932865294905965379321047026181348822295386028931572854016654215362271687741545028840648080402299896013147959039749347840675390434857000431910970990271922400113510054439630980016918874328004735327340614910046017086645493947547735615157886971641328674356703999054590392429934681702259697905147750760025712790473197149867476177993578594009852716597769619404605231233627796949255694532961215450284869704315265098100142660378517986705175500036191868642850094257444058238118748462099430080679833084553992820047480777426251131540322225243963387056539014850343284547411545867795772349597097464818572205039108391956553622670985347015874948195221624573719539963335510646758984567783047275690966698111771417039616380407471295444261432009015165921517669995193013165991293166356480023698588512834428710750770421055237677710266163691369975512489879981242946271468935957204911578294473997768061412187597886560692987476971193899324858950570344737496183505017413754680615027131398479575669578211031754796527294909475106691475400173000919551962709794158220473718454507482550240563140127961090671246466210124290291002353466324968408299071310057797735575754988818524102622747415766678065135323619388035193169377822469598750309342833588292677223233092226390102451036385826285795423989740281820155228188626551210449356045012084276214037582091125487659608927487137933776429115962443971959918794217658973885464781828211481524310833932227076888842068462120759088007126766830298530316500366148247491717989165141147133050488810209561630802772918972928452543109047261018117631955100213215051454764944126030839541656333137304778926286213229622390723901368761252015415933295711072941265751464301828746186721388976064423782225371038250394320545244345255817675801474139624738868971441178170904722908246331610932842345644946596295262093429518728249115707967444286882393701777134559921895648547506800713710350602025530331128888386325065131526676428403008742614951811033642410797003128669380188287574085314107921237795438069563813458248867882944439733348870895898213853178917292907114424651903426379731823483172419447436175591322459309449507519693428253326766661737933373459809335744452111683582142741043333504232147193847250609006790773953106350159299002069147632110910127376307762330069377101727253519125481327911614314608698035474616046906412198713092577177708065225707218773167621892131008606851127243699138452525837617845941929498401277413323033428305157759964924470618395041599791516928413910069151400061928015799568726450848959407995592480858834771896998624352503087145894045010197098318729412666847281823384183000022938659740076366140343168312175654036314759455210685247121359633266748532258831587973025766197632495416519519093748757162716918610590929643416852912763797929573074896094761042217750284021090507066365236953512980124342607741263024239482279015974349291636921011046341670061058865758391774993441738402196437994869410258984912393629207324237570133144587638195338052742863611749387739711762011886053848897456979021992109735304786757350746859704381571862051860421372393350110948045749251926570662982866692124230067105641221212057008395629356710975154446625695762895963258278955921352837293172077079966984766924571422168267009934476437843647190351087946552706395498223550400610390823037865621980962001210446265954659600657361851666444626368814719501420462997336609601868639785195850639299450164598073272155436366908395185806619314258989375732304969010404679115521416140878390332518716686133329801580897815734337823021323525327368775810964271193081765835361111122972558760460801331483096139987907135876347182934032024372629051605788307294236146183731556374283864058904313961221878628592588053338437671912762409336246844099058015595418742876372782291838085919323102549217272276342298575033207710378183023287706177036714684623005517064343077210788090802301853572879026770113424038534766316872191526783237941948698473545141590256754950848244879494035634720905843292554058496900566258268536743187347430032669981424441466278745721286910082911141379177221478034944307282192010755588517906638471331268362913164640063166794657449621662305923403813451701087553257383966408914249678812595688452844855319951255667906793627640701762494207129076955643412795361567389270772225469840070709158864188868157312031394584971988271164312416291454616813864741443459930672021385676419703892786815940642542517682019525196507780200616790880775527165662325883773075656950187527462371697222211854324694733461122814204341540360553190307888493425205960764883613821886811303721553459491699851506499815951730630371405257832795152839148029083737759124474769784132135177665994473291577304856992139418907049276863650059747951906664431657961210285794993557965503510934115750131983731756444842296640425988813483142618764715680404093376237640645645408874561189699763577224411245270148566210491709169134569208580972104782752945240970292583315218050182300365324776572005665156819366954132016144119002554462165593786032576658081298647124153719573121308296175500043433728371882308267292544220808660606288930170344145654444804294764986702529020758853430679247514573919579764067990838564310204796304896377322009981235180267848704279079104672277273263031834332791696462176584823213051115516873215422106358866768347667316640705625023282424533353938544029387785783731884275979470946171414066157793819941003107576756731979294132247492641968088858319246891508121114046272985291363221862314557800444226926225201791600113491644693650693688689375981926902135855538210145996804367275045224734961186502435299782900444150171838075974508344269258233170739511806501062073093551528963675091582176704462793712790198312534183750297662559747864767971231265457134383767845435428101319504676741543521637075737944939164059684349219761629113766500173167814317246187553601807379141888237815612384320195499801961578054882584435570908745106132181560994575613617098435160100729636124439104500828395799076348239705479463776333453085197341169877621630151010077417037480786360126717288543394212790217399555504535240101435280729714940617053046435700959271355340792475743767201878369609314010318934892200395337064037139734200374109913044435573297905858047443359537009856465116225030668874915866407209793669660031357226286071756814949840446607018950940217259974367936339003435468243491410462385142655835694130738867301252459750564247705906672352104857275512252065217728432889419205056845461062572505739542649167051759683174814911456858847356057144733415995526316474400252976377863457957844029262867206048390313566987579304491621153521526456429156834045906857706433666753248179003749745901931149497206348709408573823548073569202029704186628521309471342489069636320109989688908103604274393895037045947975350046630551150924620957647053825916072286088713375165704279005622815978489303027932107117823646748698073670872828399588573451620724583782315598515142879711507833211526583979733696053578038068889653708725610499762095705264150732201136410211323459227482086325783365973370072920256695466762846537623800950763039523553640947433335460935970322829578296625406864833196863951390982479548638690077048966388625940974132152527884131802932114210274052405769347852685638068741164713714588434123662016645773988142206268322629110120970365494613734684984017021228256907360251318714715514773778103276014612650529425768972143014489962851954859358643353250153108416357448223970714715309318374424426526328276610934768642063767841035456834156564759461043188646920740057338357593390885926674954531639631394165470787649703621875429394827553143254417722346587630570014577801323733251111351965041191968253880945869466071299399240253138779790711522528841892995980499336420057878523256074758075665950776721853946554414759594344777147389763885676829439873423262708723623810822740453719861427535994313456655517905461547235295269565639502757626276178434442937361780282472174301132120163091681036464922273242318833187264210136356324813111086208444901657450364213144278430039557417479296915248155954983080501905408947676191434877233327746652492433992775203421707278708814641145159385896221191172001830734989774867360907415723784260867250803730379368531621646233504282999657731995911934219471205693270349500044673565244255150843603782365592230488595547168990000936142613335069735956037786878340799011848365908382988862759088506519591283838998577201765501706700769020258017848812200781417264653876945622896916837457750569222841827474201591877578454523052467089128515976309949061604054928716837287226408732233508378852251221246495775324810609171308869529769840192188828484436871919966065304503092517255756709044447956261342022254356816559082636434799638837358007484225881411500772300027979614326813360299626193036988039605472267504785740273991099443696254499138397371059191211598700848096462870073728038120143065158753032784227792967815468084208132823599410735479333304164709683266094826494383766343821567639537620466874222482482489154353174336765199768831004523829784422788834628833998678195817456588131583391781322368993834618578952728692179034598513030096566322991082644773743358040258811495901865385979260437262089471113503875501380709863050805830662188486026158771913575977839336597454104701775837256029814032768709170672191945320586502475375948144337350002210191205142510548780224018876055165118139246740655344891029445527390966806084531696345344006161954848148924773304422285344088138904270043316984545615592513188609512822055614568895621606650280275887285093102527776038042308897405217591416147550089404010040063858082868907258385192800406552251886119831195396266032492542494687786707135237990027801980726000801551051012319761929337594843674058504724692063902336160298219424153421518168398109056429100644949781328534329173513965935525844311735866284755131876323800590576455027029529676277899356127793234510707039312815381351657561016382984090068093429137114750156422242498596804454130635265380885108715153823614509919146690902170159942196355537353873692010820001510418738322767697132671636652145796275713324441632939866603738674603134140599557079870201850782005203288326491972910105205643926377034191639571144074874778246602218369014347473220573532853697679699574204973232203202440818092665426372250601024416335378209446819206866441101545538930523621393510350125605713541642523273051515657383923825856798558035683188958083558068300054973145451864724505223685222751849089640328395013664986899984583210400540244421638329122735033842659988631496370281301787880723400274201720069627601399207711917153043350933732402253955869097728509374315196983309313777834808539694658110193140516087585133892893544372421665979447966135087452284294302172556313486081357691889400623045754020730871049316300289388687776433283653021892610005475171215867512692046323774197630988788680681983168353381605643371494081105341256608950197435779104977778446549768668294865359647379437770999748788029873132574303362934099274645665543945034237522069801453232446594305198996632387293940245279606380130157701897411976328289424962723105100312626742948818831347852447059882771915678314314044529890437071842941062520756412215542721039281860452967432472223535063353450416378699908526535424406546074152494827222593507718001456659212463374455990306614623207811986815734026564233969760797768201724838110041527725527733606609878464173322703822431794916347547995509463234801996364219193112039444351795122691355127268844324197957726260063712938944444213975894212613843261602604385842045913460917351036851482546554488219643580685334397028885230266155211493514909982681226278334478219185935145219429910501940965044333550393623186116206549616900642832028498748600966879738332703416940411665576980422003119628891513700208652663016957633397922440466163151990845684053851595655661581489911384214372502146110349453098072035009524696447330352344950088733832543107214486180344291604517434907033673120323244937673511803873322479498904060562338083249350429259171959073243587907337838157544129278730377390541974747548762788668015783867779097271880108726297254305329607948902955255028433924910744862673199855865099190637735388592113573031424762491257077538621671180004151144102941501011393525761560698963506081224400299176835621271676341584011261014053786062580153218468907685885936585727339259152867970387096180887679794329020488930794364743394112862280563949170297898655375887225624989050415164474211362303603569134695232709575850510913684627961057776387128971812222979104236786016203893769627718109965276843053513328960428068473751940120586461392103632312990724142614534918980174011355417446249463475471742095574460104385939084051416388926342753705322559680180474968642271752694598186635672501741123481290138306931379650252132258868982437515633708308829242166272742699743851859658635038724147538096376927893072709763417043255426370554298003256660842729250422584932089855048811373846818036943612390215665638865155881075576143180624442760095858660572662968966893317179964526946060885820068949146702525409281875284438886499061873304928343524898182143392597743589447054262937157291847947741176768314622163297809942108273347718894202497629142565351454392598170914048211011239296317840104482756360532475877499911517954987676761919051304151190205321504734314282175398261869401091546401465104199820972917282395909337998068183649837070819839543263490240930437082014008100096862953034148838215941628537928176646991507830843083559366247557380626641901802624848921564097528143703177618895879859441986899518990897390772561179495782902788224781089718397706411424953856003557141204632616473961175798937562103105908227621043070128483931818154678107990494131176090511411094849043287693510288945165770871513374478188569277557447073364228955820484416646513362509741447946949819999565890998698327403084769235922791355436755217891389533781661494045828207816585122405107681813160453884778581276335224646752090975196113814372705275244287064385630187855258767004921506875474372904425293081864024548325882605263083151402256084391708205812529209955467702928981435001392444694035773475119102028373620649534669408816521447170207165462085361814485756070125032398392132465826745954013463247385907687272446568961661813639276930245001847672986133314253938436738901651998759821698248962504704938557590200860639278724204485315708355459653682172925242062736256983644464304105008394426802394719787330583882937360295875516809336441496004947755124206677635790748463044810782408250686170392956800572795749728198915971853483031765521834185011053019758700718698834613561632697224154447341597696765725650134183405402244993179072878549793976688473843907811829698110384969150852196436351043136316328205889561241412359011606423627187055568663852646593632128277105726608293841695796966407624087893922065484503684327815209135144288332660226858644906093042171939426446006068513527240247428915824444181758303296795857865641932072375382403595806676397319254928083511842625446599284350903035921133725692928354368503555742882374130130865039537597073484654247880750212378439147391732039759545593275842086774036772138105008507204948916494183863864725233790153676607276367628673905319028076230437021527606007416473346401436066469725787910054680091098631965939556567340445716518296979528718863201588255135214806299700380474992905030366882988004008920492255065473933066136376804330327290875343220743992160946938168411073522680447637764867283541008792487518287435882693418650878967995415414641693505479928622330826277817674513200730089622065570546154548019553782754967571744603600376202226536330656575927515593152710264368296323188315907227419312088182797353884450169935419229359560058321847768314209986857497674949615237460114502402519287758969254632857904630576012415595770269164218028770237232102114594873653947814173080189025442979302724418796491722245447648102079278770406995383815843905351014455713409986266502016293588199774906909350902747990161131240324315613115002837276435554186605790963779175128167196902902465710553908866361314539643618014490540462850188098050988045416646658915632504945488622164619584610797889094608434676322913911921547915395973103161523867192411949240618774919208733631706354562568752297130452878736351271021591194227884756827181911110572423843483869365322219609589847115267323913753955323208095245910130002090518843300271796395772577644035768604423457618053335972524570572248071740156801325330766290853218785856086624365719502810732877185664021213814671083859099554384496668816267337945370823692948503601947861910271708341708667998221053263972645352863347331157528464187525777434182293634540300276307754250230200938216518193664707683161961494049376694218956866904062894378438453479100583725223664726143676977921269925422162285178866503452913399693217797143440138938742174665501254603169552195836498737182935512205515909349599865248343131288814682567781703841086451933559860400366074659402426770141106492156433745415049776774065623402461201223346015723519776379776573105958763878590794391918491586510158358288977781556039649342935322257899154174616194794368325274850546633689585247220153951369316164730775456482124188329936024656885596747643122215863378214527885603769270396459126133358885000554415095890167574204170727819155471442402287752861399068114986984622361229927471458482945788517012051627302559765819836872465897267964478170509706101882512584248672972069535858272146808332920236626122654553671990916272669786646950842501152917260188043084617712114529028490886231848102030950660165127162484281594087282765503710735449370308020699917028695041262665739860342386365215321188615770357991197329087041176360926052875746303730856228847257786235389452210853006509104517724037036351571664694665131628595062058282551464720212212088955468143745695229025314439765353040160712459902258113299238721551244225268113176314900924131729436017130126286250917422442014266097084262014714710369850351751438398117443842346225197696280720196731527425198097330313107073063920196959270852441487039780216664966781780174375151025159828386771037405240805577508820699988595352355767845211576021499830737694609209637839509658867319895243207743242676248269947200471717584909694412169053734801257726168445568981536072709452105996824146098023852847948944521708448718585162451171512137407842714345680215410463677429739740798216961868160362015879545474434838327975492790096750559940947530901193555033287138087415838553282213059775212272799024738221033592495269036070501160903044200535777264306153614513268212205980104363489636895381890946061223161765234857187365955238346804426150756534511722080073074464516306115433406037825021738093203169928665113174881263262592812497253553213164772014812341295910988417800626012196680454807275520948971414364326533650742917933699023815160749217152246747082414837704852951386042419166527061266868760355710526971358250630067707991420173368511871264981656563799265414208313782238238982937897815378081177159277210701159079232908185297437362763964346860722198175537358934557778235548240029841126243997373457711232228303609335283204706820155580135319960971523665373802963125593868858242174758384326895385314029789802330105582699395406053268974199180944876905543513603205776871852022361892318828690424406264027610026792299330650874436702132575346741159583283212844754411763030687434416020982074991715257265999284960361574177701567354961123857932829079128045146363613348043499722336311068514020506305537578806886073230715397555427187796851745008918712412211491752204090780319720279991748423046770137876048736043388632041185036939859642460148613532976737813676421848648639598417683806073535168642779587071753218794134973270491575652132076649324811390963041317708319881571786364648494274711573113232071509145499543340851208293416852407606761935698591185932674664016892843031313443264614598057455014163959961362489199406302852171214628514039725570956529242184337867594211542189957970915497582426967165404985147747166160921996992430826932854947256158552057775813117668312856496125690845727458131010428924819696965787569567685521000296087112441131482580485171641084734311183208930057069975970848280805001886705579138677689992330780588588231648181082992326748513526829463326299046751433902729466829530441497069379858911260902450593515577189465338044710229894141548132755327929058688012161156528427865284349774282292892628652834626898262948836935351230348824583237399325410221376997276899088913913438009368072132524606278744784553038075875510739749384616286117220990291069219281223818108087763084985314474742249327316005246517502129404673865165444700743355512417698045332566161751956904291469158185281061054125777129727319012003652057056063013832541805974032908023203290261672665360748416702574994104154572267351920482230328164805057384097190908163719339625176777027909540591273496901097050289934244826857700936649001708463429867884014612873313101220629572019954119903281874441598425113380585323148146718394306095548548132811416533596752025543122746931894516157967376599447827768888945100311271851111513317138804874030711073107173348117288200731130841885234827181129011092454730990604532069967454613068553560850012522001374496681733025038988645513883107957389654493398317567936492366246904587060062894371265751921663150395245864927003352202249979953087638833306725125221331315009290878007203022140236867580263384909958671333284043769083290170127162922485676847453751439975228612794944418291712126852195267826763757557933217649771651065232421708984307476985861689001327963652910161228882679386225389118260100109679494804064770045496884643569898839503359783710375780483741843593862977443621599512968617786104197596587663270880273212403981274387431855838011885300201509996059189550506963984388142756326388593257158743395395503408601282240725625717190149195519731135304842846464231500952337932167612147618973032115860695598164635250320106669715301549132440896605924567242061023900715148130853793960238688075445379833776501072441134958876144786912956146566719870647807427686539330928877184436584711759652875382585865506340694715495715163538957651203392592983872040173428562528768568519204246137881660239297469798398483758242161790018724344956141984913718414512587317714132748540281654490014472761042722833603127744139060671685023668985732418634927773760760035312260084352881379551340460711259431788409596535734431701424765179305349820174582342702816709911745690060225666399151950917326046884987464298288821267740794146383864172904966723728588205993808771080321195163102902861671691737125181520918266495814137273748443952459960438111689865779687180480299324402155861861259971204542235296184054097554133071450948604815636979420357068275955829945218075599776087917378161593517900903648560970718213449264097208757655203294803280331469575106787243653947461239879197675910410279011448758382522781278687109795765966263687874934210837664030414928747160164081050318146928812808112515209034037852292287749254477863487632841764521448562342750139458890078001073225036458286031625143933370651173828584457984594554343429821001071085154596960519431188310277090962458619989738979864036032868883867412244332415996613654217986513814070655192372730466950350008851559849516270922597710919228945091597213103246683829936524050081497699038331895702712582457371276359841649087800157098826789267848619162713034429213302930190672632673546377225495184671897482554947350719222228926017686091067147861774708020965802512176949332254022704422191327276623291550487293850207002517433875257363605374504915288122517718855379537635047249908056063488678238214418143836665297494613675418982269366444408612732020323895715836811470913246141763921433402278649565970695940459118545586098217327226726425654799163219269891618420311951220948039485279828725757964107349236489973236159836063037740970972978247616355009262655683254303445472125198152506577876288860711629600958355895941418927762496846064228101673364377581787381961683463258024834394818069902275126678121682300082536118130088395221080355171391999173538091279587374538653302971394396962737911782960918099964732099477627338024795614515924322686828438215167572059556300316170775650516463894197279276658759778944528722355961269231248278418009418540839273324479932025454217452616685323940167471144757176562518438949414631027094036158441584296219273641780003177328846359679984975625471121141854222458262050485319187538118241508075428916281926597110309131293740969829893706833213624904787537704478043249234300235154080798415132106111910323901429338387719456443414252755922514018257523215697513010587816120384075662286324735685482752391409739614093794164632861242224242005147730525501804247764796975586144392300682922527734569990228484883608415564821182065251534444822085017624977021301898850501336810921340369954931878629901939305327362810930158886996896170648946945998243843532284964900292549449320018872368655318257949172589152128379104791711150816732987120473799524675894042169285885981239325322853753145189432816750449509277928511633929806784872382009189385235522734599149776667287062482709758342939485117498113200976201111567863328758214506250576015415313683938236378644540610194678505500943712775770589519702082325607676296502632843441317984771937572815827485628963854243034114281388386053149181426160242691251054600671395775491672072279927242190426812404480871888516935062532827818312057626441277603425251058550745876070740851053592439308746069294771532208189317006183830735606303854175222497713625615958722316529400912629935561948370808861202639443840901398045915715156347592389458830819272332129003266734231191252037665790525101424261734465822131659816450064486066636568284418900931701133719435860248803248645029650138416989564402402844653085116786709148949131751363464934198428219283246406393745641447557093364155967842674297367895001566267019091895233221460615616010649315516151419946030366065021031772072237938743372636234001880945324266368474510541324726659561260615237234609076719109613568944875679586572921506619758901321498961778936437249267349713713398964440695202013359187893284770752616276000015864117404960934811115295497183668400528096682165443266886434948250127550578852368126928244264218081996302804540164280497624867908279539684989512783355132218119631239885136048534394964318994146723047096791046445660717272921089349058032934293634022550823077089014061728664804619285200405368419858592966633762943304936231552618269069099529862660821958304475168770080158180835144159054845848381011884280691336478673664153105684561719293698546650875371076909541438264708070054833255790670671667901545760199752765574222301189876870923213211020203827958795799947798093790221762295801513897458908867128150199604561496821643864606727761013939948280726540386717037600663568576321869330629734237572630358571913955542054859387626531755930420302607682221740744632488735195848806677126264887665264648603393480944648666730738133962680589475323829699540858090426554054225606522274772595671032961920856820932286949394807832747235797966305321475134444590172622561745022864545872344436641824303140090086549051036590227433213213370914395030194721143809177546784321181771578664060236152840469225944616569270553576744593413650811252621784357204909193303641378500356858317150369861244599605273550225514782116424772039789538463124448138379336475933744697662779269550242067969180835729936718861886144316844171208001100762367891790362117421473950151725200983619197696873354696170441260542898046327973582267043695509227116857056835832358841383086803295873709391344082834158106078178864197654269751609120084969918296780286582304132719043887836432776187783819103249088011641332056256760669136492308067422768972746863885091663459674958292219720263696748420522257633344683591432470438067195690832935149506545104003239582272969690530576328231503320774560110173669696608654919290921907314038440724404279691062388006651368760985118243248802308567173239566144250735048435789059166080971162053467756044675719954660611235699688127144780433115067926321421472082149567638901887419916539055867819481877166407879111544880384717367522255657929605754258341624634153117516391944228950025866425785467024851533957323414904693354538982435450148126108146409099743525046668833777781919190272239469153623782334998568860212443532433776500023369204005036087782412234533805920129072746583254409891273777952193418459736022065862606659063050788017483642597289027610223743042886504597729612858046756050803941968888504324637216300363754547004519335067990958401781370711692377988772541898751100592963237327476780838016470681489597723943550113858482695993732694052623377131696903260243199607969566240599029978367201326008771256883974457332481207103164336445953109789307512288220544065238802423371287744008458603562740042258782174213432511193988129713628346397197271634449033580671399442638911586125156619381833210828523037015342924817402790629490421433837332431329282634069745362077941570320569392753663493955246314386334798286221223385641821177174750226919645784588855095993641846575983618758512413529177580672157786448416594793596447937985113780714523459207311763478875484916974080038683994166506667883851455476384138167326846544229795306083741827542419369743322152612712184292327991025907956080059681782347354278989991204431889270415861480624833439213947797389133403383213236886496179000264422215535428017565907329110356216407061769514430850247071492758621719013925806532313417263768188397660501428800740529390732869222408005023630699799061636330103798983842077551179006948748608432832808913832826667303248588050023001541186311681180305015952084933317203924001069602870887066420910331761790802258107887699961313115476281552248042101886266289869259236069994267835181974519019153868876560339395704322795156641062810570826859062123921449395863633925580824651322769211585695902532429053266589544933565213459117022604445644835256942526691402579254523843274694937382329972254489343382289553213388451243040999682341189152880954821879464248805836588850314365220019968377923400291091860978087876295039338688573198054930742952035722532140185088189657554183386825361371692469247268619003228758474650010464330445605250492458829016820881726911700088755836949898634303426197857989514247126667690418479149781876151624377768521006787506725187801669872114537864751089059776403198848375093536022593727996932841989185276067553217270960569533749455878071217289949425752491019554290344952268201131879177128001998468012956208930211068573919154789965318183296002208006026244146291482926099139832137429799315451959632669775163608281071465503313050716329561767282751905828376844397418478909191957750507395572199430885673212198887829324912625529708916320142268126696878843506829277167771034607053565655613973025279210248047382806135665450771459721595475925052246361335205366030318765703480261918947272597535817877142986050762484246623832754728104868445483862303078131978307593536700079071411779470192061167631383702237486802113237291262176798358172298356903562871031643144879368859124369821124060949266517452610774241788938777257814598967699892570831013389807172718044635801168933332456365288586143060456319839305798377744249753241251830890674124659034035075278017555793798482046104915424197390564496017582403382484577327381595913184614162572408828023358935616177520508752488803629904364352819513179484078970153548454080348779518831070021667435450308762826959629607828804485014767539001751123631980538443428361310685771985058533365939578455352469918172471825414155586268941173467931096478314588633682127552542830459520213600831655359179616454291851742583402824599400741145986239600664418365639999397835097696385956158145836313496666712529578921993960963411580917928730405506194063765451647677650514413280201541153993222701313636426461257114227017119761155136764392868658095067963592915361665984468441652003778503647481363143819146358307725929083695575845986612826532450321653550922042021981377820952948289787414733449236304265542888409348823016470020357956621118873487114285335089917444849722515886164895304754163180383385734455190946830209065887053420095424116746776039906794232341878645233964236895912807741051256140510517206139829442759359526468380817012802606531367939852438239280185265209710236718764608191925454597176181423435539512410307269794505861515124819400670456892635114032245074104645661391840269712391367201313304656822227860294001237808666043819909837106108714786984896337594980357335238718957425436890818548630861620191981810753281456278347582086473108176836732486143013587264920920960895283081983331133240951752959018272013940313266606290248856853197208373023000240389571102541102385358622410094093068310137538698908039125929854260070905441941091127506201215097351941330415744249466105968001373890129644698640042432512250144014499074348970187313077097002208909630142723706043448620610627370112784558937500497398603769754328653956908764173427935071406800599859054471885698470885758314715303101589707750679004520496002371081404729407231747884752821787732452932157099058652979680051685477202092982720030368507737961142141267128405095888975411541622072451622651133093856463176659070596287074387184426588307649196734355648139639097625040695303485817033731242309799115277264270497613358939176774718915983051568855946234544202554910835164458263057786607972795696426155286204469980817390698846866882989844072332319542567726167318355832372864098871651673991089388447696905215356965359241072040387021739131815368165696509323115144927251656347326843564314759998670875745423827960304684454470447210572190836608605853919499412832264221095794490143143437850660446201252068499455295489418492162251455353857489078530659369818336586990667699959507441459101030696251339657613335646594664422424002631187431753258906329534975037031554284255233354609004918138804956272886259557521170725255188485795758179070790362999331365460706749980782945393284138750156070200902261514571405803449899739700434028729337669572650249044134179724147783932404425526379195726916326057353540472031194091105918429040864159795620635691674237182363934623198637940700325152940295833643710387094851323963521455900456658971463818198154714239448956307772442773526573996739988215500038971004508631466815859862327120888041933694584310369190989958689797811697981717305770717973244763121134017407139675704752151181402187831617379604596744340678537428468411353595966116858371592914252916067458086558621994507544626330701248249065272371778534540000045299785031070203128852966151943503381429710451927001316177630465428620250729237796809807504854878221127562490995337262703114322512926867551098874094384268699674154878116719557005841688421183692493662064125184511323837771683566099973419226138465395165638745604640090828489909520757426838169521661273954502153568341837670817131690152646510669868489756190064145135977700967855596694054760899417806542239688188694995925456718912460026669220295216670546932842442964214013203431338318300198245783325517657209970815607958170520181140649134001443035001502645237036612794263799125227504358916597045624114375539496504600928388543744420583853954609009842292480121441794245850605411048367683329444732404162313338054078010311160001463278031673520435729030864191924928948550772351878735507436325940471971275755934054945838573692953313636016521540626264708695299455749810833514635438593944373920100650002774597332060700991231509453956157378341885318561792434623121902201633996344862168126860131479718932800222363718950363342698793237712721171827865602945764035356173268648219195738265593502367489353761062762579819190828688808520042292768149917926631130525924710646605537403041785946284500962103256997423992052607464083360785188934276513792063280810642999923690891853969581088612341827459505682689651029693352656301479762584314159219163644609415303293178075668976949529049493176494904976567384929796319825590302436022028849309924124124754253452263838030107990912325174748050087611183716841736387704481461586985002791281446998611795512155058473277174229904857033078536861486586470754353089069287897249846533468141598395837208357036776638365254242693761806792815757780255760568996370299683137279189285177013892023918518632913180444134197193393336486439693427233931618667213633502281454112920181130445361012978607230809154497291513157579669523490541812359953918286555818554719953916953176623029853831032969922190749751965157099704610062086487758649149009085606167969724374280007676347506981020596982229487062554501258726959847920639465566873732254935542649662640425310367423542158668403740767472640183152289735477786266767380968144822537736120240979917660192437717415035325625619441244976246409659884462189215902289098734766679323199414543317731885852652955928730543330524956903595678124955561592878012939324417401654203580990776083432036695829541501894216174897342776590856006343789500932950980937601677905091721371128103207303870366162708975812886119082079477516096997493016077399555072818335630837199681408535402913881321347584821147812235370061354455899654955338227504636387890941757420254513485372471537723330581324581279878116605141308634360935272513501903570228112029661530684331933753633999564489616467624267421059337351812375893922588510663789181841080719008780901628276450683978823134690695414896764135342636738268725438320416684103682007594425514792247846325100015469118085768260977189279621254294964658797631053190402393043602388100060696688925957773436976747595720420930788952175716580197547265438434383421690201593412704836466403070258567989544542985401839210580422411015529461761688103238881930245330310942840082924919643224425661369931038225256757802493281400539686187031135981631259842021527450124898301461573745756084854152977895127231379986342078978680589280577121776448004770674707143905389409316233710414888399942810918349578268402283339800129912571600650216214593373411348135137666766229763735698561344489454997011850442598091849872627041077553477530409680807170573153532254811991811823906508614311072691761649229612514325564917718680631806239748792584862429920720292758883989074170879005625633727890851035303465885980706572132904722341743156170773794852607644730865582873936899159484049895345238294250601459087406847310292905233106537134333353839407286480161163476923977826943262761714643335039438298737341439877151312494653504921919600596506855014098931020746109688814462307807945298603924486943190717331735517231968165016950955843511113540377360365408909369021530777362391917895083290343477082285892724739614666498771987626459016580748550992500980016369533052543445400215822773782680420388067141604449485018541356304308129682366675789937042766561045022405763769479434052346025556285050766483285287171939908829458103033231949325332433015022018056894194284620054555139065969740188529750905333610122531050187801343236406794909884785069729380878524193985361538571594687875788746210049790672597219076051575313000468919843524801611410607281451788825325073970262891824204705968820550291461162205956307550895071448129969537254268092797842718872703384283877949373281550270555752462892965336616063743324799345720370108759512704926629787503304798333746112483904863618783022841650367403603359753114641442932905694587543511903142134273928810876908516621600068427325047092455474171578652316738865736502810313024518295947029792257952460575782059623480032257707233073004200238730480231327034836089183048603707645331546263847863805304766782311726139513195531851488950403935539704882947936788655096123017833846122633397854016799329272765616038104257681180080538954111205744714505236230412599229837202590165579569075290283260356337704739969729613942949119366164333681423034040758667877636891313166909654489404796178589263623731950715815789901226790845845494372700986596610788804241918147253906051100677460903162210132136620657477462644191294484356613698760909358822148353257022972713412086357067222545640143885058501981211469100499630613613128306611829290325597581650751801455420996548533984995649531587945327522816234925741724008375082568242224885995413401169632066922857298972463623273534185572717041633446260021404894908526414636992521122281152198052868287816387107755712297542748311644721662422299202661394273231231308825908388304081509566740430636287469716775999152187461110292355519985341931929758137706002682394165607148911522624234239115179733202085685071581010250779771904654586900543696934608303369930287877278579851750983474895630876431480053312208159232824368234195030876744858262356035508537542055835437786773141860489552773735297692750455359502073538665341301587547113108896529377705773459770627958293386692675212219199082109063847246810730393034115874609036263702452480077072131216914027434021987850781850764008050272365816456860082247154356749292323869699353261446612523962476400739927850957606411019567972187752553054992123322863319848267582466808231686385242547132826358232147253147436572920356555319076350330660414000427654248495195251751606861577533810859135427374279863036235044001232945833344418337941945885995469889912069264477556408532776168637823545566458682517026313181040159938037214738590427383190971379804704638721599505800307730436107228133364687376730647059424240966392927429189330478622985385681226586016783412452308249671631928091690525054342317490612438658300962601931468726955335089298787080385385192696672659811585259382271991839876842117683853667798929146478597716418078018006367214293105820397020404660954020990461181387417839018445234126896223494268675679812545668147551627148164219995072091136929058047935961154291161960505879742009257183186361921422869238015519590205404317787811648848790097350734678792727746996990385664864900193466674668409622089993956344872666790435795584993306926878144809332043246581387140068644808039510668690965215479541648381683656179654031080163501604073861931383499739049945129179223330551052853023776196687886509252017435414095564049915103962432488143734934347439649314625861999887912234857191408368580294995216949503687801233269887560444847022690855073274947314884904743400112131052403196753911070008932186412205879812877175445719282214091733493605388903249469553586776695993188910185185548479245283878097928559954925944214819720535876281770919551107399524581848338091335331385743315250012613220813606028146828513874836012107221572855833272379846915290823624791728614591231016607290687159239742795663867568406055770046153616600277082206929397488795958699857097433311664108452350550586313721579682347206362917892551803867585110133181693457881547919232256615696118076971743782500735909271499762147707630107454054230264805061181718672843668407302130012566965253096397939943424765235320677533735733138148740212836761072683390136527513524764989615048620586953007761708779713283946490367104033650785970137274124799373719464376308927489891768655761632770451293406259741501937367719433226551038443756071204159246555519706245828004651489362675578863824289746492827892693953634012718420152474242792807236233091484243067918089996759863514780964454248709383074602427748731097946156762641574787632283688971565569139721795160505653945272881073094081072199793955167923396958936841714925610449026175733790748867536375646960283136426551110027068315141854629755717545333412329227553939891464393686124196488838700681003716553074730759518426874089283568976901085123596815656839509170216220785857223421346276523018045887486460677716911977545202512858494382525225813316801707396720141979859588865686854971632118941308607746764654039244209603061965407766975628591594214629149988580137965133374404296947360924089748962103511263429503865115693105415104668076618682939159667335966397483769773917313361073676995894222116739956323009691169433278188032830259010571097003628799276361918778920021449482086932549664861978188035691574777629658359814025168388875042794593550337631511906680612230891176189566712427202320840249813791245411235838094994991655282469554667781638327775651727868228176375755476848047579859657814376549973314286283294434207006092974502896616448185452939392642684627207855716310847760121861490105649991220190454049051971993429887595586528203176869829644279477970112717817597828518261958451094602233577590806403702967771085807539670571901243042182676694390877130047182402296755325483157621412768382808259611843018383595632205787286413961574373387744395290755242478053809902970483286802397495222816654214089395410490506073131673336666286577170624693265913920709690266798821412263916927388059278031344289577409376761054269006563720570946622238216781874221517829405864892477929442303601603312432635626600465264275136166736997724256040648864765557234286407237656925740221852412289672128461741739355764474618060243921467278456225273971115970147328654891491547491664052473166636097592077637081150454848185296583012820123658903071455839113420160725433764596075702034090921402782107161311004873998258634122142442781583246012088814134164832854212347955391266084113071969706523465019200801437614939069784657395485501282241071010318089352333807101862397628278884552149044800852510677308791997844695859901919235526490476892288324223621167868358510469968977461723605859636722622376111712925854923994123044741167300555642688544755542662913882253964783753332930565783836105727706420558008725792975174860876812701003294717851116674309278154008023895440248266443767914216787384517764497874562352290883202980717149433464374923278085749473803560368591924033446765082555986475418988653365217952520321364500794983676404766781027315808213635503794640259598217721777344137059959979270992676878989303116262053133835369549804366149792646404007339558383790081712335789098543006096048506193463169848340872849834789068108071584785714271622158332046043126264372687560149677408034512415529657707168978698737489489824343652439722209174330479220640016485105160576979920128380224926412769447627011038791594134372885795849299880696737450694944465532943029898908801956039182214103578976625117875920627530499190694010775570919768812598760425491377447340830742189557884431913664180357409999502025637844947659728438898923171969026004358657373664005241795599316159065474601154135055045462695543088770229464627668557121461048551745861199528649378854955714188992261728148414280737351715627585152270566652754228249766611530410342425116005460582020863648485081601736524052317928559647106190349626594860759865403315409287592271877216025374039255187130068582478385756958445315929465638415161935358212255026465495332988102209294712958760823323269104911236173293441995584469959271021199793771388472988885424381222175413716340465201536029887159604617710732391564834473176088535715342837901713434746268472540038588339319773502111474272399798205926845574243001157742688535984959041170136668572718653599214443418684593090258138207575064646548958038405193228816078621710956555067631905202402536955957391785065594067736700135341720463630766551722865902781961854224270800431440103834391113469292492469744642706159349458435236797828548378364533716419434843306644354466569121485196357476949660902205965583681866758569426127717500342801085725887513860207863063676017724722461266064435489306304839101382086789339494774018424325346276242088761636288893397213589920806152957157707913664093863998148468038174096663246163076453292122298177963750840597471834004981598500371264354463907077832281832097207792435698707839248104466492654810258689266462365330840783796348793625529831493332940671620402615024222825656231858564707212899325339737021288945592846640644076391268446605076876380104794948218729127878222378365257779876179699751773251108597465091294478194173088613499674521523977472276767061723083070739969199040372766150315772321740276160540030336776614995204610960990220524774045215829845039390458588180637217230591505990840787253192290244038751858124736368859286184832287858303197850611213281451726816772963841351524779544788152178992270964693548651847218410838719006889606507456719223478185300399365672411167840601644041895890543496057555734048033955937367867585019119755795203542434393936017770864234919484905492579324223912698794376653832613098798222788699041232113621822131143915810939294764886724732223442314853867263746796275943322702854223867048702026439067132982073001151004073502595010252124026855244820808464953241532083436655692015025957745960162368343376757431672685333997812403718918846296479112985912274780280163433912622862337397807132932078648765705663842929505364913196019087650258834278791144667011912363723853275823374716155440249609345346131625488407439337979295576633336135935507708284851803011628046994615333830487814139350746714098090579442703816953902583199397101184773936595562162952328744479674617753928263586961539880879693460857982643976895914875493243359870571322992430218650074020628064806366608663007245340272989663136270941257855919415850254793682991156012508772537671836751571054341947864204925850117408624735342749643281651425076874063351282431212583637443118911861774320357214249092138537822362244160812102276215708302471408373511317304895104030274644294468845468585605017404108231871072809218687305694713884465500705568305057406727499028925556857091356542633004188569392812822975704549628224058870462828761366384707693866970921008927593446623654685294392391982984337879641604630621230068535407083388502640231229839978240650554043710255135768738412162314169655951213260720833853609278537257954867213536318493287655426606182521349785406873826577855230936976587177047076701932584802073067069501031980825639887332953140841703850042615695168394341099379603502637165839519941004944775879677466993604274172577532959487742049490830864918220259728050895948906186997962630876556965682914944843251250607133114793238336737240585725976185530859480408524787864103474912710025948648924064482285689810996935190086411435829779138629504764128339757043907266312541841348987899688470599301132438723939587569860184610967537253709099225839119283602478216327013012201683654183510122426937610503729618464553659760581011773656088718697044290874245586931969329077917373080296259151987351038746599887223013640978118535213373581777561133238589932404773673713303426999035260611374764098828696762058208556472644606863447452820653586628980840796412021835769823964783049216666968093487206999835386312716734159853665180904272935078968633167114474398820310245250139923457765216389734562186567721809391084578679561059553433054801412277853703505107590127331077686960775777674348655194567449196842425747516162850423624449987844516775144637009636897477629556012637269565613338714824110713266914835894663169791439629148656480847048017980296739015527451531877952558522483527934483303568272646231627859410566871943515550306659454082678467598228844651749067936898568170414708146885929160774195455205542923718204163649221003666367700884189143023290854704057612143542764865063127332824297112502787658722785830438134964406001482496263846891902379031840096854824465355924915562310132482016168800985815096352717861677782639521710629305832254907109688942032877261429426636696054719838842860221928432585030525681312686148118545942468875574310010307946309288661436312691747619150922275892971965558746286878560585985080647026305548913508413434665558521287949186476303857930939206778445294293845639692827833665552596860361402057282787683894425829780140816472449105132641667319180384457659288281889357463802734386210400937244515192947123535813614719943913361798575715348981720358723178690362967643756202137698639628884356279713643181517646781199948832056617257587754744049061978370958086869911943950238134204983048051205200967593569848265453591398174461512309554640487460295569430718016282800530101492936619503358812768193592926383318739821000280529813945146823250556067001821474292485342367833433590248837365940910766568601096051856135655289452058314243169892114168947866459817828362735298336213226060657249479781115399164707447230122611929059309957471827972545292076067814903118602690908108258548764161087783768204497837646581977457920615228824128581071500342720806381365954166626630290605144005294752763848124753833437868375249849376434622951664748241929812564086727309909999139252019618460505117269346357507166559452498573457585412555478070065943398315494020492947303356576768666990680523602770437404966287356212641829254084868517680590876177402358967722956467653236876423963664791291152823395456654331408022684276488503960747100134753666548320299277153548808381091193358203283402980132351239371209479973781295718870453359311984488966472355194069816924141419676305400368881504239508406721555164926848321274602194871395036880002642257139494906137236784235183251780269244530362628841608758135012636312622589500795361990180696120927493037863197061665050118411035422298445647599610116118183200333221398775805587997901517552302635692874366294161237044597372375978350622211199368126731777141019127852113507425925467735426227243012627272570913634395893659043060950751278037487352374459987303482013515682461028120073715946555482582285921035516395033329001695600746644357451803972756175563546722729941718650440874317264166320302775760304816955709277061305204868284244248783048781136732207540824734755091656298397278264863833102327800685380215170720578970584374124712727359705717558907519305340520391814830953238639560229857711750213345745554475287090454678816008666220535892497249854691221537385734873376401784879195011461281428508245100514406420171149095659428414737707393209618606930037837961622829553436934465667086561758365340904801152342261722290148347071472023848519411267397917629556686441212015284646261169134835587418190157418720358342922341569458172418012372222185401743394417987544770909715379472893146892292870827223296160336289438439584160402482155987227775481091698266552124895630429320117197815753489227102393340126845581495616472612397166536712644962395702651397035279881110940885866205791805933170465519268958931831806081846317281491000345611249118506402292327366118583388428413808657273682567437521015993503066194466000438299872601535086630467951977005449758766641713003135627846938172072152533841096627972485388702573970710551807563306035565339725084975000626445339686166431968522380435443637548710815479041772819470732840568530953099360847395594149058006583973484535621467225330111664379834807058700666064003147945028522258981943154891535373640864493260833631226240569494730124478933316486287815399282125016224080315609155454326716547957793953956139712008597245420012250460810378517814983356848875046753121767059190319689566184450887192681964266173641679683691607105182091303276968684164164901532923735761755126752234266288167515224652567101375387391557203747327180259882095674711800323195853702349262469650662756913979162069803740185184752737045148968004916798860768745670069837379229182489409641449687559658340776991717668519653078552136132616526677733246416877137561866456000111116926894046622961905130656326290558404834855047088264566279468153885255016614888382046851551284237746027719124222566292312445220844524474409062838736386200796845437693935804316390717823599920136017758175193411569969607012004813501027259225985328493745063387888141741600464471102903091252560485110545642809771783834234221565991825483223426466332751557405117862645183329295247625512710752077419600799175877492337854561922232796582675177978026996923123103053986353717338266870515859535446944439730414930078155150777142282793676992687310247348085071109582785507259496321975940465915924262873456233373513445266487689584042759686118968732037814532673969031330401688155372989311945198562277272521683605902329652018637365523144745604477981282543648426053531470636469967526148628243980679469486977290001787991789687751045980039784436672279860075219099385971730938200132734020768989427235630267800854488338829764729729626964213154927177763960202231542228229308312400691956887676151281665789048180501745034986125170141552769729394190819367629858641404425521428088523994819513923465360496924669319149483166424453892909373490161249207694937319165503915656892020249453775378707072378356419586442516848774764004017378233240934683344251967435778735610562656381336849620322415731194088530271955656049805178125139706567329670592116925220370663809101779328644505529949114408476179597201405930492861727876752712757932543800931708480756028698859003803937900316805470298540176746244174288796568400616200028847825900268606563715215105606909772735323232063588903957589288789631436177742062909194170976770808517705018222346582905392978369778274079953328599426727493999917113381602419180273020106623742304250793408856607283182223963468132997476450870091112686112696611650832364711911568927508663809243941939702808111932323614493032996006108545070627195264639831561045444579998074572914871776449920872783117991135037118826108100930777311771697870738027508100188100678170748991687013723433059691050060316691683358751168014048245750522717908184419448601392450312205786302971698873787718685649640615197398196877599912230372257713626125991018641517717931554832990136673418150588925462165182854227332328931759262245584144290155973383857465800012344340210617818635933363451173612163600901625642467489996096316904201016369257045220298044743379459207531682645312631968023112327359287984033736863648808427745219026153888672249136635670200014373952751196215870381206335276077129064433018424398931468226434000304374071262974615575289130887214483897192082729657842419079489221989294263257315033672802578696798064026672447943137665358396317828662814310362734044750308561834675052748043519742661984695127488675774774455292494373024300444396657139539599200952727354083614376883613295911010348844840888931146363528954306551247271367157140387532794577431115656927212209865063840672674759269276081100158811688582186827480469088689620826733695421490869189362839169564267243547176938122455034508982301137304544232832469697233255729908164315173058546733230935182054067708653839393733697950689388894608736014354903784232215197733297083141375105075498280821839697482766653264467798129642286950170889252787679164323939018605596472844303630788710822505178446314960406841657648756497072886632965366701989217510621584499522013631716227501061735202355592599921267249138466843094340977808956790663690457480173461269406904004551686881848893028423965089258371901518496361051223925854156617138250525819344924522188652374540528237334961955780576183770629708656011425813165775875665811625048239051250160253682557707366732489323540267577447040506552639525965125286428141790607100082862793724931593223389140121621276821359240244260103150482521834046983406666578099645536210900276249325326694967029625673140457569078131170074737211741605215511636011372825173418281003523194486213904868101567128476760236004078552631671873897708059497488095773401187144211980218565585089953163445890099117382527369942575272097221940426875369135411485415513967251180778067966334868785379592621790765955740082064922412509672713612184231756720241234615211969584878113750436639958790539486177561216399069069314596406832208256752249722298189009844919238372322193328682028393802318921232199171613746860273843914066756684415838284219455966043525452132652219401033615693406463046961441671015053274217645895326934975437847353772735144095892501980156829688580622336305866820526551076290659638265844076436251364195539054550129714082057781104828932691899902820141303537609949126267020808928937837619727040392971653245898382058271828766721427981158261423055060018943219821519582412416757318711967268958771526127187503721833510838022285633975344447483589962270976987627650549871099232640909713697658185584020321810051919089027420765242771522070857161224336505086156063684848472502794923277486377376170321050097182100581058639553457696109583704497875662434784579813233973855212772049161742079803523774842489285071314899606220659175741097060053500123039943499963113220140558386873339407241715193820986412963611659054262300991804871575740671158654027101299201705998604031586497889433212712481335559923428457563315149288027063561780652246000755242048850991417176605774802234338552657822764197867242073997769483917820918236427539007254866519886856631033561776077161584935376258184764231938172713766149000607703059881809155679107325569250142719617883027544240121871954359102341479740557353302931362742788359667991892649130959968866791669741005096114949675633015769374476694173493118248286129538355376853801406966092033905783082333473749906675310937825059284965843427730864714892558271861779375335648155383320433727335604275757656251096652298501658719706032795242838244763905717148653305392611240935272811384897459268737171456519740656275998947462712893291822587197602015103352560302539965589434807283652801790016722910263708633931999628254651594057595287129792134124094260834413452190173495355226503417837505889858578066889172113134888236968433244669504936717854248104076074282483708063719292192804637690672807219163009050145781621941493455642278007567035974292803004566478854369893777277865135920061708666626526018099546892243605390087931334679728419481601002165343266506018965510424626545792979136430393939422499031589682968918774583407322448979316704428582550871391089280762314559208102777188108144912737610790420532934796837641652932801644227829385586820453688492634694624644704265464498590127194931325431195562621245863026893956548096127158570025475217509971522773213961997705441422637370600215870882865392898616144301218806717316680445056397691741782501560688304614545925600285295838158732418536978513001131159056823433311500762456008395830378764092480814996321955868176255193086457113936753828594037230660335961999234092792554302238451020114575316922353647437731022211785921907623128793050774350440543006957159290110052884690204127938542616871194648199161854960103702939758572252425033722270300306172510912546271447823219241179827744580397533442202463545052017517826812290759204247373799000552287967536779945861625382086042549509839398818633986485558778566342431199101269204609437943675406169722883878332076259187638816513341842134393147986363017006635842863389606200772861874104349479051338640846804923474667292233652802935881967092310215996529087613406736729097704430152422326061702031849431006386928589096591334578547246343471783495596881755660533909496445978480426542765375513398262221780877675400455396059620846622803101025332397884984504587698944231907782760182674736335931963156049518464927847270388123064704107106522978020207490596127594721760645996345969114662454317056882299185146910616256094348548230373126172621529544013564678406821225972602252275798014088567616332090496143293268289637452244768205871157627429905126297479357120215754018990615204314086886250399505011638033218412783302676934896620517450175376927342306477912958857535184806351898378064713354957480993055272767210368109180747111020306410216794998559091370520143716071611004726493676481013682566839497363379832153996828908846278648461757342114787205408303376963316467731911750035734308102740798467606090489307953084613895561661600830144653194956268787186951750967090693423397605730851304318329191902296842559140033050344176322358439841723590897442193357879657823586054127100041211538328275878942359415727792079748382050431025882742597433134162136346837043945427752823045161560599029622241753809323826162146756777313378868848888620770276173062622889361294474885050697258774239339521185732946206538039240805727575702828768496025749280327315617636820013194283828100602454607962184399173059369429646090358001676202772337220562900899345892961206080478124357451583604139426701417808809717658822477010505818757871444773042297404606232122922755744959498755555558414266134230033118092551207722656697430020553110066069504381293953016389260720641814653747095553365323249231448139660357749695979216334113079112377212928610432174514685931430033296900513961064526648687236213754152172411166087426041773863463285228214494605771437562838527337852354949604828760382146191377332884835325208333477307876760053856137523032907134721431406467510617024920781111157059184335347395377131031719764087533360337310624867645749526112009442600101933496974023467664155344575420256440614964460165313688590004439104486536145192843198813047078200230264452842952612361135434340115356471447738427534213537323577201662692512336813230304080138002925762302643014246532160862887088976113238496486420105592708725329563348426058963618145614007647636209648569019177160272339874439345630546579312297291245381605125108318366384951621171379798872658170212451036066498914576474882484728028712550834351654380693191292367676698840874737834993704507902595832755853147294033059083430180032015679125830830851350209362274281887987860200962879272920331376347049253992025563189953869060406280549511448079922728405751746549517547798821615202417332927036258413614330425316237059559837366467508712914105267989806427419808406644942338999982924810678537161971367161703551166240563092106195145312184142561525441062975017402462553341864495070351750641611055881986520017803838558699086124479384979576392478578636218081849106297536232200242772409481798830482275223114869247175367660668166908417814724341833468284619822823887743751135611497017638798084326752415853345659909507590356785046671920884004311363053062856254773667609202479946055430309377755378080260774480727530628893793665860828309429438670620203328495920852815608311368136616264988193358566198871894627754082573458104366369300871996301139235577158009656446671803621355646936113279779376597275554877200069447899831907856804426412898349376999448758383359484544915750167211975327784794792351725977887416956038757986755498040321737933826645369292588242211394240088845720854561403249891156598902239856656863966529459337735543141252428367195005244779836600835749773255791042257773467755789121620210413483742714457777936225297392928069236518124009578799007289088959079916762741367841932820310048643405471312003467323630383515733855900021164643690644908488444398973829802442901632778784984509432875437976177863736845899848470506878211336795914409486128009678435562149858674959636053591912681543110413365214829160663398588978767897178687744268109605035414861180117527591261364656311194359729933449700884984902428145876275211279650671099154670131956020742221441666496862163223492168605592398734309247420874291269342756470941740693898427988446305571553755701168382739501112136875506906094564749239479192268146171631899874017928363842648454556113931606323116213172795683776565017227484001429440785164099148449760979223313207581762958197247926498442755027972136286206778534378962663309121680157277279238527338051409185015282672685563831048326436694236899500308050556190215224731877508785103884818046299531522584389664118698332625537896784578747528691064502008857946142690219185125269023541580438093371885364580210738093521125996484469330036460583591548829442086375120714238269987979321556487411010370897911195729325484073403148059769206092480958602830888803794034112012984271339408122089630257464658447234667549652506466141573150534247864479833685757825114749081696889786662047635505276780069662940053022891035279435328007611100639382598709420267987456791482258560728856285784215066356728630254302065780546338857959611178228748223128793464325434367410973530183895378287528610521670542569965343260454670228792923576589393646042072579459651339001236752938775075670075043182537927139639678021595549472162932476308034063770955626860096766181148093810309439432213302915005721837035963701154231970156096887614947991602170845899445890819640663750751807601444788462618673995946698026637711019428530597771735982691252328905720171089733847840588015506722925902579928589909692494652244606648099656473473465152890535053599930714250543519842059175392814721144756757675032186243836125501089708046549846549508340041632314486318903256667752992653172887741062373637762873167867637853657696706661032263170694468438282012754785984569357801195997517720270187773176625588346090166745147575259064047463314538965253188541465655413453040522808281137894670407686674451210481663367414842744983258220746133592667836023950789350733900263844809026491995869977266190889549931524079976343006329517044562287997422813599520467581910272594757764223932382189051543578917164528471320896984100134298133178621177877383122558347630921453055762510254783429281539924352230115550632011618626838744642831136079472728014800369231855520424193436729355189015439716468072830119355794942792716264713983513208581285845862312946548219313594799518655960067528800907446724302259917637032407917194371653976328109348898136960137645290549618356505995081765110580643549292421468747610730089809071097354914636391796045323377274900960071648134799062002561786757633728164183046868138660464666276894108772292729428667317053056564729726632264640440492208179975123002221807403412826485619582027580576066075515190889590282051684827536471477515807835430128820132802140101890530586849934878658817288646008215474342623512901559118947949692314812313219226247091345229305921839502220440612178741819175702349532977392637261779650358459742186074764167630968257070782173237333946480392853796095353514327836597297124513058951530311433581546695170394256695211848777851831491115995052190737774718421376962225952451757146329309253460388428093711070498975978340800767769003066133071699386954528056127814971284033980975233609223944133149561791568415179050538593959148575582887974237309311725890011480835834431854444400457122259988602791791394435719592240593398293984441838605714891936243217201199601333711726193124733949676996623550656689034383848905245524873157596531886923249843347437352533515667402174541605203222081212123671477592624358333174041796003328055676861739551800921517009673833660415966817723707200070458101586172954376551342258437445372474671299845953535118452177615160464537408671898521319389466090646713723747911868252996240066964361507097415354357540647175582785994969835416613398568129983642976122553188944036605033493021423358613910201576533497661472608666162107069691355620661155879615304904623978864968853537711698926830336584909441575595295050658972022018908203040777120355860261271897024718232298754822114584176033150842892068870820813931309023115310760902148016128125492286054064821450567794690542718981801695903157039319949612306909234535163200142274676650322809537408099792002777009795372503927607322736126584496669764821143723647843965983688177526317083505125496016939494564732380648068648617867071987099615913435982488696063033683319082856181405618872833022438746386265026743960902492276177640396498039422601714677471413339276019807685270052471035296337349031331527508477262214639513689468576364713013898841166586879396761230785649021958815190155709396936820328395841946806000736885718148099941632425072752226199674153020502064419319691775850727070880876784215534401476377111016005445001181507465010587341583835370414210597521107379619835370250808256547671707711892173201925755690295274275073589748690260943817330065912454345200234999574729301761425283550594729794960896875973605234304575298768271618346834220137297090485801439942209594641100771796774833952826717015363372554306829737265536911553140626635568296457852550873877271329528864832790578023702467097951657542102096886590771984334883637858205403210605923101079435732835805597855608369603701167451311468333016205793416259598124214511833161493524920936540942339688225123642555348082694731705665222673027451584276232037448710362148779775523294729092504808386205890356044924171965278366670657098454966693283701358927597110593273128250366228819234074232091300560556303605569451856807983486557641866513049304791140534930669691104525372547989456654535888794946156472655162916252078870204563375357471978851277911697389052388702694042747665214088353098966923007605464092469400944878614911140084441862373684548555942416051110976580201802642557640031835677690398248149140149195450340938827804401745889988675038455903301138161702626390450618830499322484480958073168308709648504929551683520415399143823330285266755747738903026597976208808453154472052492308328740093268482614571681871001817286859284189229393604255066663260291711553409395069942868539871800962755364161946721207011174111376227893153858564624179446659782666536275090292933699909124245729174396121852650047542989691840018131094716914873101344566003208030317731962759028837498255821724741995935941740193168094954002445949251906116487320117322796390962747001848869583690511923611235473228428125806143638004042106188904855496449454711798664179958421276564698403492134180087312084886252956119217655904180566088546031400617097512131772455968204354540251662082095886376711284063912606769417174584407995815667936292598968353908678864890333896025744007505101314260533076884773002322351562277750467215412639118140058006119523895910608005461771905461819325339993688559106286553479795678401488187082260420018856515915875843957431380572699824350394545509599911274395785962996757423424922537512568099372011375216670809245352255674582358772726325219783061482163174098270008223133959526396434571905649521532530132536495432762876053081881457707034954322211666526144143798088699858694823445564525603971322201657296097934128870989298903549923966934293722970128224594380420936746154576187084870362889318524633827399043566403406634820712708485110924958311575173358674881918367185612463021655385997418712491552729613577312192784275729883568756989606313729684063991176130892371739540685492924575009645617091904666870554396872891325617114537830240863993359944668035713592817087344657556519700324825600871854837693242399843835308625664560527768679499643247443982196692478262316275995158301296154264526975299147408426923950715676973799473642574815314572963219349250507337888030356812344682520900752836916616278290910681539722379256269673747924200829910710945552543519407980857146838237107753374550845427134622375802170388544669105558304409807663252752172319797845619606038420596753814962305691752863920867972588000805670431715390762727248138620804361863554121522974760561331916646280703950703451722926382977518002984680224138276518609090940527264289445701503517608412779831574906277539954718900382421932562306431848537904838758448753211255357258826817216845736578341805919754278045420430837549440625040204475755758287238562912333811762741871416638125141352510571799150065058674844493475977229359881814502961102152242955860852749944533518461000020475097222101678892859298529369168138131585724883617675395308379749413723750547185302206794673139105562976129170799758352780481608194607648773248767793459796051414422888914788562878731370964394127000445923777998086645703330773278750284342660878192945852629300158865679986206024269382150917952474079100807694275416260917702517690418880563509729120999520388725442525984447865991852691405490984404049498668381735837302771858935469357304469360128224904356691391627163481221037863304549728567858357052563014067627980409147077576939394242019236346992025810665507011824201090741654542689021968491219240761113083395335442475872591546731478481028553184754820978492857566109524801576397111806694240400983126305801845914238269568887514593808426072514820972579151687563865041732290156283499249322759181173352388150238212169193799354638484437798276619038220045983749790977397518149754207746398706575221715599119400605150988971871637084691845367628729304964074849917665957463831958025194855877638680406705071642647333541023279715980783233685790381454149855014395329562604659726648774744527154579074215099137517567609235982023542117153859443776979105956301788470267158283188660310926240360269232828559417760779989724552781021618707992151994518581587743943392217829837163658455817245081515292782280711638314654954828355025048901548415828461572182873004332171760045550439160720396537407410560735527940068128365304581338884451363867474888261581588643403157311537617666812974558558415472504259779296624412121307547770486100999751932275387437022746721353657030826236816860189766199478692102251844121611368477428180113077589893596533963842059096269059201813542484641394569684159632324458050748295155487173425563129771028350229317731766536913025229613955946974430462228954278430881956369737868660770474501095385198596552890726404620227509861058954049997055765291206007461159243845486241635625162379469857962171212749785719933055521352399745876655582330282385099761878483988504600025541678926754881057582317553854186274513795358955831501379697731076199909282217595007323961406037564845957494953971034145449115253803422290588327472822329976175187892823002876770116147243837232867669591685172120812424998484860619940253118917506679272637665715952792391787841520031580410559585526270673368943302929996039831074095759858855689881596727491982336428414910975631635538110911689295209157291852508783087968421622752419698763800413260277851722258760861043014968588261046674745736819889225673035408079023125138623109579960342277168527696571124573398808490810374815373392696963596616750699015434957711031432990693504380873363004343010062660404102457795363497504904040450807745834564376404353543963553267987444953265681274898526332088392199294224792873222118546403622533963679932853376803352127991181612286442660086998098689786779671686828930337498783162993683694863265866037492972227650264571181692166846992988262195734399030251914399402600582044560067831232823752231806880479899545493816839159777237388330623474592780902957827660024007605077213671591880168081353841755205796233414277431306680421468756676951470121770694698432216392815500992153228246076484158388578432514066114316546691486871403864208401913004004423068934312490404397765870485145032593653441239471480517537773778935580840892359967811363710073710434054646106160345638315572972920831623103682474843235655447866364637772335699328809668200813499402948575054103601769294290013060279193794319073955238192585465350596795439993800913252736579364261287458103170368319581069806636242583808280527146819454340509740384550272172608151370334100492056690969471621223042236877314329673443885884716367830146782771493139996226755496715835060850227008655384313871778021346358223054731923559622190700283249016710577115772929353124253963397852227088209592551603324942484652790259491351454116482349576734163540096383885501861502936416865175912796270833908678317811621709063880162779980667512699932900549636096041866783443384631732196489473498733449417600788076035063632473324908432888163668252678155558767649388142340777928131204761241398580685644870729395354794444731406256327599545834462250026080198836616541829626380743223743060846999772172437273871625809884860474162550912973742072810956852101508571542096821464644370406375201962001002255563518657865989375474247774010162033461706853571027510957605430121973306207630716624722292337183554263203816038147293679555507734485749683224595941295235660452969419391784990198283652376492354010492396606101894901288305294678470428244157333698637331866629014571531284927938438464110870847341195252943741944841322955819243327041817091347374017722792120901559755403091753299200545916638738861230866514566742168208745197651762351340926816210946755745215641911532651898073668506585278490837336335224108339010748921303432501674762059795360289804862788834659163090150064401739926932849033683451821525656969305879108689656631392955887770142757691319604802798345128196619048531966476430931540835693051022424720019437221740374084032693960456076069019876808175766025022665810084194509021670339836126781432814786809344328335400587604964885463134599023124360501404980429615893848700519647518009800181048815620753205260697129909834889357020447975610215746606486949534018331878349044578646049425218437819566625002941839416912330286256435132952779731042459041819100010110523627356516656157731352762695869949689350317169268988801124152327323299419675861533703315892854220755298069471291813590615791684028330339298430147700796808772887065593696348296536478166922416472676015178548881773825001415102717674531831068667856610219594491398346605681231841581953503138601209409082434657989826970798885412822515410903058712796274249854681002604696310266196862382853952607972084738561310652432368518871885922271850349153340428824565248218178663420433757281117770933619773052952444947325508030683161920813134277757534876211743293996164918052221046484429969442953170307114366425612105355391694650981076941990250306228097219591496039085467692857911241024148315335154869608400337091041271089514714634265042510168361275798082370595224677478216207284975407738600905088837610673411186129587516490629195203384126628742291543104637072177739928075094855160281660589257008227220381810584879447068744360205450300800187496970025738352169227165180750362533906377748043934160573772835457980376578430513327222152849626735454176627313506337186478599647544517701587666738626221130629300524149076850749747170506461263631072605467781534314698657375627339393587503568659532654526814247043753792493555760666303023384774232179481849165105351840279369004072397146915002659259578960467305408341077464789943595336134789518261801410465850918973645159445442103149838323414615896395582580018908910448529185105701375536874548350288898398948406486433020593230501933868835469877943860871809986178154034540628284569452136293159533006007420856475730914677070296442190253505656208005912096421564450793300744601638944552794571451865130452909825873563804958935710181153420307658639708194679702888391019643710479009251946439268372433484776952600968604285587465620137805150565352708515477124691314950651757720751300188819674226385952931825411460440775386836213969971208611959803130721307504874514341785601361382554566896758846068425304089464027061893204153690078329165393610234507101107669460764187837503308119072593489441200940346626890961146320418376293651699370833709696234876909639397109703580363790218089891147215237051826112986252042334088380466004584458334181870670689953022043888001929155648454150565266955571443359404392302423350802864302501895609443621675910601371972767224720745273470320392152767875448762153512747152841636954208519870821690237145865180766139356917272357928407292908867164066353404075680682367703269902841834128621360497041861258056000329560058405335987544226678248515350971857048987321544042596234041104398233606194879226542719921161336939898668512593866525031521715787499228861683934916083467320987825400259914153015224919232949956716727202141518567124794222916304934936085169218064653181039767567615222287805174258938015623887625104541349893080497986731876836390964748739493929486911515230585328062500460431586444399475239993086220049134183991372896724692032767642435877768222691136663663534702237508016839843989544966280794266549310407357198852777988906931355985626401594662603754636370900847744446687131982897299000453965000389260103718760800170405732954571464833394266851209298543382971505495785966273635773189958229256458454176222805820984624124940096226341174379135289394296855996004703837500479163969639510505544055598112065982382914440585867868811435303571596328562215636897000383151861751832907018561541804422627873265555965238990898165525326784697401882378225027896426124060157507300700177571621408500008838981570517292303819186528883645825422792646300571125568556599492463483550495543490736913220868853747906947043986976318962778969847981246110706315954048408067499767291742986522382061810482276573777107103248940708711621627118480293202361649641453059031129317810166333397748523465999502773095537240099191569931727708217737668592756414079835987523454096892461876864214107178173243994153519533759045151592933282516975287830425952500596261910712777609268029710550240163325311927347722971040242136513487112387666576119551611885709988796509732705175497959865427822255672554275510630294084462450582894780010706165987042153932410814428066372616101476220802232513838767074207691412329210438324241281087365561335685879744658146335038537394160090068121222668092357559226159023600401904259435656866128752314424032525667680275114001053751684480092884024723868938737017082154950776356004014865515124858711416261099362566329360611595909656110689783228892067573297138061819195959361023857359588328452753633023052107801196992983975999977083222806215925812799306767282710120687494697894714833171837195665220627622010196761956752563250313136877077953555015501888888457695610921957497005573845767531568639143337621376053708436564875902689024151001638879089147429268518651411332933571906787946172760632710190905360149457323759497541797559175104333869910846036686735220057873205207602140289012206415054901506419152441379982181588373393749862036506548480748802816331461793745182507948634740438892018496473352379017618793910530131126043235629679849885349558591600303723592903744531075695503168395370527847087540204792454165204328648925618523695186415911476655817454050966278008267178781555981177942824864190414009417739270789840096422612112229098771416329859722055994175775608407580815767420255524572417582020824969885685656876445930339628944916581931938557658457539927568490469774787284092631616056730475136548850754448639992358624932838260522052995684814082706687179618966981751762578157378316935303796668964279619834171834228076211073238312900775467154036928088468309864087892235690219071019711709178773670733075654965069420476904149075621617378966761567522037053723550486948802645303802641084039586281848930078976049398076434304330688021118899359447476811626145049748132768894791164353799488386026807894027286247037129655056816647591037211268781807297268327774497842491772755040898308345279416188041009725167581167526666691809589265705583258486593174952575455702344614139833337228358221541219053127208938724661493302362136633793442260588573795434076085317919293274353143158801201449410393013392003961958841136527237347745295587967892446918384803720679169815013509880081771698656173237978778559545266352281541796300627102044306042277364360950590184009265350218651989500913399303652099706804005863142141176867073216974121771673991532589937228502056259227230206426831843904645115736762262777214964622251212299878060153284697486914661714224850515746348937265122408370735129120635055578692996312686079736513860674955656827133451714995759095562736956579425000306110603510556885352524302632396081066213001025060906974299570265628598005247170143587958729597398991417340132171134056637266003016679575152789615056559525145943427244418230525460577971171558762035032603656680190719013049306559654074209473276514052274696101279407605560009365464011800434606364403856238560211889878613589690993415286970328062169310453005005737769538669172090079374113594091239542379349873984340710285915373742253802841706049876831457531030744600714398332104730381545272087321846841759909089132065342746340608488539176758553966324926373111801858694966252544995327861052026001115414244107894548219152462655967777887845026293959540781797696922006077133653385947120503207231950948128492442475370211635664133604616297915852063743915382959774394067934776509459481242418546959556538189382415577970053691273970271758860361406516345302565662094427320322853315239227705974227592056859216257283879765090794661896207842195345550045032074495505457116481818356718115571476065205728127038041850218523803509279770221108860753210967655636440388914735050995879997472203353111924196573687207123051019036056195549762049240644646294474071233195426725614183503087879304880333401169609623888895158873421013283905091918475417794071186802943812966086593014800036121658944959178207750785359823372097988060155763338303383281849221214996896291055656258062874576650430403770571950928045761568788843221504510898587788140794612913885854060654489286111360247373370905399418217194809318734807593470317424635426718999359902411680412545590351882143402529564784686146495059945279186839239165848291603540074424521157512578902049802967427406436013519237630114879480628486969868621876189454624465388723295497830212578981894751412821271869424849808604834972033448364756117157531302690924240452221858688899859684210264072404465653178538740730213175216608381987642506419267586793947420185341300504259511647865774689557162301140345247010125840462655500956932101145951569749917793605778514866183013354866121136062348483120573005779985873280333512356173546383869819778515421030937356462622800490718723540241810474469920653151631262514351266794016358055818611920266948664977611630064457344903580024857718823880628722042536785277563279106904331740144094330916690407233662854167153741631135470411895366479910616215124443014266831494661292452755920166601575166640255524833408105511358933841229847721651065671727379312713304336217026037751626974936642393183832643740917237250756621880374032036392851310002278726761898089767739353587498882747849303653045298953080842556593875077355548644480655114126844409184561084390471087915433992718346229623739727171276575128730097382040203539865712576896859487772445421101835832609649528210847565378783320002557290417714623401871502654487778619249767104837607733396460700829861143873103989601479876589063848955312775836067170491742777984638097332492518311068859264149930385343650321584111030865899047812150490969055474208482434791096033103255487773805203088077723338339780424640906971106220735743649103721831067135056357626257343069326428894254072414160220509379168540655989437319551546715176200053897287083278520996783222080141192593724704161514672646353831323101299476095324470938530133328330016137121758562035692406906682459422715381540679120857639732852356238451306712319280278487429155625444208473485619392173094851647778614420231060667013909337232657815615896348750788547534749102343791606603728117280142158819585697458490157573387450876222903110452915990910861022072171101695724951605657867683437975682296999185024303837966345461236954518723567673667300975936781536806487595509983587992454933171094492276909380541102444519012751042611588997073109831590849683128377844652516512806514452337100015446276191135878220067641958601477660106276486876457511314551534016525538945766397423631347811529435432984880378731530264240512177621102786808178196978077272768570457706079123983648248300856186333077991857406198993621061177817143994157258950085120477866344302520198928482002001294316258861724748781625843494258794242544293914578537300982951986042178808813432218439674728043873263814057701296901831051550129056289694957247098633778246405536837188624300116208292793680524092610335592115103190528211030651961135682384332190360823664031794015679248065891037424363640742313671233271947479065694823218642826790978446933560883958070821754696698083131128479381047477389190322204195677548506676702554692916011987883990335325301443266595979734248167160006202491397918902612063440056151188582565858547628024610033157278013602276564366541117208988698384128696837488545558824231015003012584356014759994910160870280924263132134243377551855619199393037109795652043317755082487965142369619435555477303661467330368850371992090840299341517886739538260253339289021159459690260841329772612845636365145371022496137611898935440180291692765356498161666628494837766413884062371209759886181577787452266129015335114754675021183081115737632758926102249258646306495380106130623297408206229050544044273951699950779017053611042479216536727991719731808030798049952496594085538208789819770039651789596175297370515358379908104283432127101771877201923829765158975377189621529654395442743284192874125489721197709545015505435145837162689658087469187521700601459732433341141414385519760583804224300615246916442499567373308774628719257873014230317314412369426833620513067882264398353222534323890577023072116652578464111899699599773360650190719836690163535100847731965793989960526365278753414733413543161797020805588090014675531462244229833891570479557480083136603536211651791615974970985467409946667087604367111927090730490300262644143949692255556360053083394119883154432911842194773859845140768225321675597048363413516332501377189152408527319157566098256166013937312452944019453988452636979502577351840893802448780310674912473814870506218983999542721419836765257349672706163102892130323731206691327713270827448561416223772299233206611171033963057583373874489907124332926179908965924245850909034923747871954410348962686305983765256692123197187654284254159559407613969993785521144919373189778374824858254618565440808281241004046018428328495844490055358735382090938119026681896716457894322525125268484903423232535246797718352286977229317638896430290775881481308794219341755594500440009292663661379866665006539064052222759640533383344356937344200470537668100161072033761494893009099567876159621040944141141537889772929104416593542040140097163935676341084938730278765002712425755198398504765945434489850254763996275772594643499498571243639881889015692537244414468218179772124065391065253508588773916195874833378097736777488621125416521851276689472493041131711798523911452242084914900033409787955776425526459709747443368882914269456208649686791261690397665731464809404746262282937265523884877905873172738072450804196873885732166060649809012221933391117005499750600096773203511080202167045974288953895766789697642326022201706722425485010827575356632108754925879330003170673389468827681109432456315636737522587323182260487862887456110089654202751365665192209667701367994775061142400308281939281572743288190641402234742910310674190207587890300546547153122998238326841313892248309001551246186709620473450275144697466385920291883982602268949965625514111841151971037871983589700307926755486293405875663731192347131782268311862059811968932971535897280919621976404087585697091218881130333390299928755365863552004165073366972126155803648425269105863396561927387160201748900468656875289039987112027089815621619719255646048453520136398121250526646071271852374192669519996328433612104455871252758463944139806607061359462903177770944702128340035926023954307735116388942889215843277761035480978712597620639818531844806085355468271033800310665053454936129848123105097840154794572984086350350921944787266335945472536363223840379819996580419404152289043625735970243397911338761870870384026726685025648120935805824963586624222254700729229320978340188125549872771363023168373937001385807686892547014191651582956131641491538499584994089766326281802989326192015805868335925259100846680714516853476239180435109083649098513983142641393054638473591978583106952903550751812869440464397774819124093375602781269715080736465389092978956497324683792079619164995490488702960834727668646692326052576736143760214161432357956504248270805299582541827332087695754514410461803229795813179544462528970859603379937584454397960666096393249562523491271697770013878798741522997993287891207669962925320784326399224749481642522572468392506326629160850557955856634061652008807733520635727651618262323629410829011343115440328849497086060487861802992460232847151305456392058222352119476146481124913329153223774265997664726371550307940502869139288376410837074742294929145565221465892921150461054589461399253753578551730063397968044067258217309067531566758466412977667688404571107834399545939355366474377551982848914494536510834524452152736004361233212921554434568322798659551291952712743037731015614513401562048362021537893319415923458786796030015034329245197733309970970327468075966365559994061874541787296524931498024702839162463363652188525323447575892221056023182623378659143922668889592803193366083384826050068524189403987398474939442375063724310810326630532780140811592027873373660097328011554733215513742806880576271690235379404138525453305361808002814054191497486064135924924069259646495156246706186983674475588621721489871931018334374814663992889814893424733658233977729398526888366569022586572782349251355066235887092307913517643292932516521077303490104553983833428071880736042263999445314705392359655758910829366985983855312154301460801957220349625163572925163823322549183831061800726708432132231723081107342232593411812315833863532951788317693771502668888786074855519788548381884461950218018414315682021898766460123508577323435894396775077390719781501259110159967683493390357290789905657542931145311909819515141532321025033529131688856446257917293003094124695729580561924898095225599007132579061204649829308080464540699695824390702467090484916630950696998466381859377801717920395733732048015168149519570097523567342220620538912614970019119565397269035121940696962859625160236949576821262998389814008866389366773029754388231041364376400406102869787357515211509514663252320503447288732124163846922224443802142451219197481313748163188134320265776116790580029104033614161880385542318342433021291108491270799349041817187989969517487734255149400890063202402603634826404072512122448893809566305243877959088924142680604303268954257828968070434478881344110297243939775221541216541544950429722867887729139026406706907286532733616633351774500068223531782963662947775036458967006696247982864318550264135291814129397006235971536183738344433939977603363021588373573349233958165593588714553413470607796232478778819705187590632965983580230887889655576112070442862626040195010553492803026865589508837111593092188276061943630068531683483063757052141775759540207844123634215061275905994312968157514725160984476548583610554083649036370422165752532908394133056954453801644286565831540592781079255967726909539965293920895573539011282658605583515005336579943564787292377878209526342410972719251415366847209516330353314253527389146697762242726927800961749287803475210773149367631696256121149661752840202011172272562340824355725384895928861499136052374497243925926279500795786783719219041762818786882603416054607070925355768786853629371970028164957815291905121965235016286036360719923696185107770532684462507827955222781002062046982364684222165226022562575826321862574979467391859483588115303861383199686463432779804912953484511951552424387762856626481464143454550350768729339712417678979881308851103918754692570612620095841747816662777448145685261720168942583459339252521145162579219923936875650566837214022740382638107098634096857226603926349504848695371574225051970150516628935635149164323220485303166720331914045666271185694124020817598386637746846443501419347190467870867718745665649223300262191584503150454854855079990892565831549070154173767848427364457860695642223038717534421172653436542524433455664405372540094477675418194113574407051811352165143269949245269613971565715645601402699535922671648622522331199649777189285215795231659220284890122234642502397295679385609274975717817760695166981543576168118069596986589370007084142862377291914226567177113406043318650686817964218029743628870976484272511533836974107331987316933539234557776134642690108911708190291473457115510278056015379472598219827032780378479422646871125599768485651914300283123077684698256767803827862587941703620182940558055839508845412840544615723253346171792293761587255410970299451696957044003483389711001757329172645837841331637791973544141408797722584191248836651723475862135021046526467065103158209735768063186460575041572919151094592517538522584598093321529301759499392420243639574146480350241802817096166566212435334302105338597745809685459076545896318621991709887878230171780057882215384366005930407527134856002959822846608838459774794961882994139578089632075892109411934875773950249557427852156011694592102325926168041993160722758575136639343350969041903440780540464795445572769327477042375261359807948762645368971966099786541700226044252741794472135303870073761069134986651401885063589847260877495866187781880497866639504124399787169254465474343608705809810470578109418710915360958834859130447481672446442934306471178097628483302284843189859080141705540086539199013423108895133148771241299470157245396816310810511560428092747312030130088219872705340072637095051479936605727460097142830508294773759087973732225243568838502541487774467779536252040477979028768003097612639383305271430069636933525279518340486575436717469049200423474148726072351601898201371055097772796915239045954277507758391674109989900607898887217691851078666605609168510028561711601315516144939212233587129075835241239452546562411988555529868957935332328321624149271942934009123949309339458663096990647086655767991116267841361165691532649289804547781595646342062100549304929025458631576711270282083389289874213893781191323213853587827854045527330394477562831506273987752170843574641558327456973749446463058183771421044221917043239331862933122751845981438320320476613830509556555132026182163880736801835674384892476726941751560118254583103401020975980163856764225879069832875669122028789796314412132249347392201827907580997697277050849575331351205848752209903783338022271368314021973452705706011156290053153469849562544721125449699510699555327353563649153022755208158056661426941673297338069799878321179069026130177134844683884950019313093412880661454236500244435435996560054380887641798022078764642566690479241542230222125253143033519984441037464513436060937227251087032092359452554140345778028927738111284162799778751999808810827486297760428252382150011413248966396186898671989175374218779883547593865296840834159000678422167468457296924103916539371801477941399917474487992609231344304851286295086527896038031833617049042668445960107164286520905939303993678628148008494480510498801941071467277745344470026774952100801616699689764619221834473299942086211340854652885375221676178164838503252218547080906270575482427838073950116236133621627434222599651528936599126847568417115529502906328930389648829494027158536906576015588294102888354567662948962245722790230417414267062788936108379502748303118313361538963275076264551572819224946202225693462526349923034790800448527441490194212324349894183404117699188263311245732929304344465866155036640876714798014459091550186862119550839353062277204407065273149669421645340864071469536555353220300592792571165796446142439189870924104772659321347659416248454424916045441721850023144292146663724803607490052085773406004864699320359752061879248814950328335196806117498497808077328319447667230671550456115543147949161522650843516786077924141069585846568769848072872421138610709379032881375389501744550945648049207947832764918237707051423361170061279326507121761227779069011499983034714429177823157955091809654690820073551386717388080845972644053576880717437231431134928857428055331454371258885238832454846597696722349750661603635103857414610929948743873387520227217891369415084346140751569607608151703162691831733287507818482597797231911762293431686057368747612532406322628340701989604595041313872016513776684597084937749337971819949235544053961827863582940807954834823948986413226563840410429974941706084481092730278828130504452347108026864813042189167815925275421600261303790559999473823333068344387668262084449550110074099755746490908710011102950003490539990196467404821411029518504254462236225363433378192056175824754066121566370186523835628877698818175231765970050317009505396305738203813886421565382094464579807323637443553346869652964519829634512520692366104925856157352328606020022908393774260413732629819300378058787490619936109809981594729435774334600942526873726964813706482981664184881912082720235043085527711451238327855192169062866026944924845156140627411280870564039219634579239906583342041250630941720465730054638589215386138718068135952564647664649064678847188266049493972754951179747104740203539815697127250822816516978397256559468186578661453891093949364407741652245835225878847853670723601291600897591595558795494401059907410315891514988713758948519118560375537610084741109407693650515194360455501546573315558560299472878874788783511637103707162221794746500718110214790584253590917504750773356300415425432343484371487745218994515184265471191363923471994231029267401195165983187362129356517436051054097066909203918611055867463241632007049642049000840023731928476898360658113846702523309346174879840505947066952883074675883009505634404452218161440826950133818287985262098680545298593225678460594256379692517514828337716045172943480423914397344303684744851858776705264622405126924988162728679995886989222129182373439297633707806573273880422190530097032108464932353902816889349094719522379280543202134453122531519338152720252492778523937897859494375288604196362584511204110464612620306536534420753838981891438920840198550806999804760415307513729508815625724258983454715747683030688554197134431852505877433789376939789563315420630893072149336466786248282486285929196794520752434045861556711182608228928428268255984877886695365788003212833950117419832489786802852489808373680412801508800047849147886178456950850682958476613734199082048453380440891371311673719487757630308011714105000344008799740337008415694904886782760654437836954824164977356829584394147584463794241950530367362268333431410383278153483030857641018088125532881642964224678190757489737492740073246028424899251502602978308975026987792425616597887661391378971795255291830719437479308926047512564783848004411336485356327795891229025141319625147581169834903698932397605767948881706424189593948568888946193579579846410394175646107390207714061754447318366219712547045322121736653535825878048450543161817625172539726939321110345898201648558786923310720601419031841293716009186509770491950371051375256433166913194371667854899194785547747844139299615896763812270465932811503098875262093248229895037557449743652764989068947073593447513452503364957109359846786070897520915621342298046815993821375093392690351320616571506907100238901021947802965387128429526306348236486721303679350738031797469748143716471870817433275063952623082125813817980511298559727783787082866988408807226823988061039548902147168481374197113631680430929976351245606305520103992723012885089105818403638422008091237023766416492276587283922338757293391448476935351563290132880591613313412128640809785036170251370049445337014418217952010182138076151334172360699239964847531422295248731507280168163312234825754853815721379104623548367100313572014935090064041269642003368006781275169597672878669828848880041065523125589444068480065854021574029538786214177313916608489490855691109657078112793294729051690779147651261403754613422018893745916214144124059050375999811163320678511198502614959688703324848675237101675168137763832444858115595176729875872800397091486932921482048666076508621903483915953361764422283117828260994467706355862518809937722860221592765251329534287693481812172254354778568295231739836463400850008727011509275960845487514630705772217318381506040629129361117984097205779549828295192899228687191676475544815410792264440781011084489106761063084144870079657395701593650628759184271919055363479285757293824613271741840618755292790520348162847335563141018937845013125287826988358251009324860343869727474195646715653883731366514732550518458270899000514186345426792716429959299560004338203611741043292255564223034087004199885880271474473701366521906129815181143511758099314886160308575265928877375716021845682399914908996843831467693604676139687829500739104722217392102945462029821635876676845323703230212885919531947208168311354685715436499076912755295469383292125735154751271270434427220351160603942580500862306490957660478214874799645885734805490652666287118356363854013406249165264842165026547954606472814891191799604824860968220752759579761921462582527883508670742826945926018438281571055228341527768818312424350170704534887941154971254730266745144048397894047687951302067559920181953760212753349949787882555061405289338517004241723136691379408190235298016009695172620281756350028231460785291334145486876303802162404225057415258470764162893472983861149509022285665109781639064812059719380050570987389641317958577279026407009841449984729207950624291261733560694004700768345969536002026978407808092904544582575989856726634078070301800321459194800486504309317243830036296814055045064724496997316625521478016326260450716276227756617157377031486530592793881520377378923071686162010281895589153348511478275470931494814746396399027845637752029160932680137437751609313332089819213642008781949499787492592487012628153649021550234635554479362422181141964915054639177745782179547255074582863449920575226431980872573659311428297361287589040006255002489268732699489932215505727483754311027756939634803831085329823188297157063023616754631261780703578470247144544985516293927068448937628607494615759849167181187914058319425455884770298817986504530566650430333185733087242663369481164287445620466465310120522855073913095980764752282761105200182859985866457308764003829704280837432762253824513180516305349948140470882751025306006268726764554016954376441716149677546652399131189959898300096391269660348331292610039411105696109233770397265288859777288439380877526763897289799290920523829888870492697546571619176055249447592646656474165808172290560110581961884849965521782339639699181703215570333125096613642613328220091811541214409190805819848637670804388480824965423821399219851813094988060695324525377739947771478927746850185348363235845785868835761693823612531591482709627896530300608340398297993064790642608215584834429067710329349442432288040026523287568580417750250562090751553656226768647837300565590544112092982948889623816792390245789932175885589121330263886874145120133247396044587360712640078429519892560912625054097406169677978394310992867467570047346111177500392975423697736166360967793829162377702933414543773807151603384180782239175998299791615188460651470541784274309427977884043297141590025666451201905777541089096482741925712482876245540501967854299254652070370828793944008779566891490025618593611397163591963300622885300581130681851285090520576782529346864893714480270614891974182263274345452260630274153474045105307284029686628320921597698566360069026942635402891999646143743372382420154539470155649724520913962664379877899480395967406479874546836620636767856127721346834381030279985792341715235614226250837717836057896160411803212537921693271448585680501030016954387186598121009348984538257731531169792364459459964097450709118319446214092618842652573438139963731478175184729955413661964270088666639540928948977195463483814931742546320580120536706720806298834189664386848970784087682649514178271716089189790831580477538703999410001104806374163083170946616261487751201995055624654331234426795026554619599872989141715475546994029287859861004664113979299986319073428656539445720507857686134617143727217117313808219184158528749564944244007166433723725307380694104140992473755890281138712775973759817032537288821562676565710749910557570304285124734147365858664958832431178463155331660291929137085080093346101722764003403397645101461852240952824269970605684312940011013526973522161676884369240241523252857081564954697992817597889357598469177341338122043098250743382342030284318079010770909769128510478667130405412100537312776626328225731332553387852368740681864833396955209806916345268570503619771438886459769712148419938691556984693053575814207715100146280242778172310794893626040825878299711651289413163948500819628463966633695535408418878624292818642930450338731764188911301790020829908318676375285696494515609962123493406576218093805752190736647400455387331282292597533331507457943954201354358163123389331034426597254856524794036780846018218439379175560271813209815491640483848872750326857580419463715183028731411000224802767820037414077107761503259641960807980890940990222458123940230295881353613430425301404722463867818918351908342016098739535617106451087440914435124977978113143786697445576364666287638967444697541888359541973306862014438984885345887454333685600611531932937138040751509259834345389334732924808251167128649230141183777174661947222037122653927433554221458456302063912460029702652541864879945118429210954118486414731796346111740806114514806054346451266954828570507483391880241518988094782780950620123514820285566333505965894554153716644631622179591901247780884720995158073553986910365318392017830167020860550149655544843797414298926194840576305491995107576275836065694773977822571422881674820662821718553661708685092754587718056633691289655091644110210428497261115445053079298838276484759343110554733486843990579781607681795032535796349185257517065190153312444170762568609198335745958936671781221731097105180585201272179875468215219267627663433642581245311332350745109956019443488426995784598102190371325713492831557248933760016360724571085614314805147301661246327645091942324762664302656605719888124515610344013663334324115302895004739381768452713530887365779000579100741918695335212192977881385821312957459250133893514898930801310614470687604989964574152007116566354326567659715757665886838266961734673286377488250711458723305708757617879530552782809633849591035400656437604755200468229170739724205396809249486275585201467354591818014245534931305663095245853170422184958512397257553924589396005334846552664120884819193387800852109028630007065082938640633375244448029323342089965842525744106922360342206966233559518235582650433158582607795384739554796078769276021830061662515896924486493275180832492427709255690867857706803013964709747944271033395889673522039982579334575881058867603934363717043814422626251580683327847660004736761695469037248578011481464727212401195402064964469437444463705820916099208745333299766315877620849388289417788707607265049966855380305354219328500438381160081860521766997273889696120021652788356175159453288517496539558680361725178352288853005630137161140885985487221864095322048383520262863337985582474744046614888070650022091876830767310052121929965652742901077053202125815395449672080111137581742259373990877505994656141074907190054459707216080658290946158557854612393859850249852559823162639375393967183360240199818351480626234477505953972995665626994328248338606602798181254900121815716719574527310783678205927164943215585346800008940946473644125428095360469282214199714860691495658855624998438504884904961790139946984673450591200803819687155802901906541480130204877378125792415345669551409291199295478159892187738086029214461084763644177822805774541035579862359796117173463677664798843795665190237002711782206740784450030906734251624196933156278913350860137284199770843222965195694838459112278058491906314330626808966518646139246815837383676734273698299329103327905679285367934328574392751570235390672551238082209929135134044027348588162835202805670149192566656890957437229006064258829841105275499503978908373878707109101483934061581916042845005974413027328336402898918540727546736606825913117215613445253845705854738848868606132437526500475911284461041746683941042567627503695742539636690219171645530767712388898277362422115402696404512386727070253045248192148083468124099115495850626274468918958708360769075793021919659238919436703273242685388952414285455882405613998643723017209631804721469392621195196497795390355823287548307062548678622365372833237398690968993394330543469005907874917397169224335841058977104946838366180910967293956639027999497349319729198609197500648433317707304227277407214439926376084695258275579609405380769786408633820209709049079836169256411702186685543756624393292336706332769914297278467606666132273686819455563007861979453664627732586007372147645902617520479250648622217926437872532897573535434225415922109368028019899666468009558276181859993065825528659202380419083152830152495605316888292635604680554994857297116444237910046622037026924327648456058235861499333027042238602192917341195439976476404062444774740707064159463064107793763443265651305313530784253454893647825599002597052482675708396817371456279595216982189907233792586280123168101347775210901143384056911097077397513726164088982667344386717057518130451365238239922155075902121104492629554165322676935904244389477473349412136913378443595076936873762993000394152935473597192531461358884040011716872109599606161490514639607456080970959576872416389425855428974391943614959985874598181412458162704243024422887528803270961639561251343772531475056539772789114529313257341099033686090691181443135650913982826350003329578492718253132164201246450660456884087795293909497746096906499601637754634015655116992158142544389063570182711224117351476957274294759729618960536879641699754728139667204987159084359849230405231123958821300563897516936181642013338438912849878817384192638109610831001712863728451953240720809834280216984573569080408279172644738941048066393000256424155536251082742550764604847793970565745341766480454487386596432752939553698583339343904810193387928575216952848016933542683576563524729813287111156614148126939265701414514819330448955077176563718306740054078386570711955816622338770830558366573531334460045548572693845261153373172379255937719757880084634550022761932295058477738916932602520227802416704257483348256164000588195008323080490570837092612536583436268850186986775577623203683741784014394979947669810955171270307323161056893370734142233252140141980405810471276903398993503817632158796451807080441197158247377850001618822582935987695299936107259454427157818614402710595353397668281184392844779850180657445042519101211472596819615529784671608601258466040788231368726546546734880019765827936932000807287980147440147595140933717986712680394007615757265483558894435918436717318486670415191130096901829466045972422188841342085468876794048096539802823783626967384414342703869530003799700107715962860066006577304358806469922919710709742219175099348286144672786834290487348819349590285867234393470289223785437547573701896803662742565259658113030275520246084990519913634885820596155686465407812305475287798109768571404760962853573520649200605362226631137469396426340172698253267685881776063473168998314077773255280916283233092033264874740344662711540415736319948816036080479734926320615143305174687143042806432246913119873568723634665547434522048287063573099240687002556520097750946493842921866105946514528030482370613352378640642408261022664654665352692994990355388140333783236328816652439352266760868724469002430262205856586444262046402563085113916238540049761602012121584065306899330208490489872251932610671781717613886338600087867096701808545735043349328744417378167936752125950139382195480859233401231218409527509354673746799366718194348395061610769173067057905250408958267473779518956961097140525145128417390774556875580606253832309768955452569582441908504768257810857134810445223505604186943561136972907370513151719387696863299682830661211207509914656528964777907644698226958392675104032199917785487546883738134424618601773609745946397166995507054488004929049598231827316662326561126745276767930907245947936153495509917815557850183338259880315552677908748227925536655416180678385539131422197332761215640727812354607879777687778757436956447937923466245232306789743276122581071798866342397971901257550554863473329723318356234374344960116895971097258768921696474973287869181482227025561791744384259649438856734370622749399760947489353025728534269949919538886909607550002506559519120159674673808376714540868479836376251606899102800278274696173735521375232617529831268924271613368357458464773758714222656747492107222062085333328949656104476812926372733992539510790663326323223970027467847917484958849862162120156674550879488779665937862270107672272218995280237323481777499511537695222128465426845180051665379072768730194384587139651719869062632376796858333008774616727001848013680840061284227848707436267358776634937102252781668042034703460430226014594040355736309205936131924977504281479402922539728831431375182796176110365001681703322506073642520512583088716245789885148580547749144365293558997985008689216680355873853427705274696929372347479108704683118673366038922843715276983057547766955626749802243307468531798559950818144017857774438868821907468554046445834029077900513275713358492130815745538344670542212732727339796645058978314600262559742165423022841511315711296479883042400701758052892292931782361532284953398652882816110542138590132488254447813621252932491590194623426795451463261743864677093268203781809008356739159706974009114763528447789152749779270715644593155696796806833710900662464141269512830516598746135782731062401992107949882288346211712989851764290990211359609277352554016449079921020810680289339201192213383949716878420431024818840184017093005263216172352426945418342089557021070890694417505112309147440475092254573535356895920045976255576006840541974127023379593552741486569745048931741706334819284954135166329624262980036598997675157966428061670019529096641447419353966182220766196629033207889581848058750445520333326527910404526487799010374704352569566617994593496873965563703347544154059066873133429148397907531490789600890314523303526019921688326550720782025932612562497622898596157654111834653336496697745796687056963933275599749219775099109091980693983681383482303183282375413903592124528292553448243223724271671465428532116632060642110107525957480900117132388505495814623849017566389290456843566643297899392342008451949414373098741062480147251674031955927810523642444358507972832174221496939199449597752611648174560371889074504144625646809373245328352941288228244987644741278063469269903123360005258121063256852622491899758390105581569331986416389603783889980727054056327537908075966812017160924270155409713141897893590280649494112163385384323553330515610808139935158797702888660144205293709621123538939139063380341689241907601706122642290372406559129404854964523643370885550403720515365650247536338938243530262348586799038350311654308641316843321018040755968194408127866239126297012697751491091828479292106202126791942959222357420354463605031670571078346941812427311170589352258068251010095688122281540402209558152873550985423294555033324867811756410865567170031815854518785289522741856436093722813703508244528559339126430202361880550336866314178736742624930723651792750789974480620933408260297866443981123899388346014707368353123209764580225241295133391802330410346308198458337098380948968916001041085943375317136264501747394426954790331262532384648518429787300214021250376526527579300544276801999258693022836561763845614389567825770798717616231807803099343450099345235114036016691262412937816531775641815111025770792051368480914473915530663630369094730717564501522619670423593123211164206850485742884374986036980796765425271085369738408324602891603853605229316795613862124066910044607658456883343474147743673528181767680219863993922814153759124332789376447427544388437828364069340572999100751916134097784969950047098465505864428426572373178287961370474657564231418283768632765479827829529170155029444019205909762810310014045378059786140280941446987684881616671619685534040682573910590221747857073115782918989175901101444717932220799413081703917405135683639518493702585016138269100481307963419707817205391343232655185335134058614231020021858294008548826084783146940476701273789642172607553475805581249141419189270905642337356553169728047875047665352260275646814586200842698609865036833492400768600437729487816128759488329531641938267052555323546460004435490625134386544439519854877576759777537187040785351318197094205660914014326610837506784092603679408788979936086539166211155925444372633976655412747211880713860447654097823415673835288439230686078953491540708267138635584317609939393172755339734804331646938031502072961540063686043268213054646643155801729687705934249471546438650578545371219648510162891630149037682937052830277763371981721536717381113916800775876905458117242228835919086771557621436616637386975055623754900165408988941757918532364621525077580331769787252186834886836627694324292102265000260048853313756218158757239224676143623667444988532251350001215259672105002114262192326351181271180616583263250031157929946513046624903369990141751146972033833511402047636162573927489651226752236929967596075312986494378757681954038312198156217320183070375149681460814794983913380229877327298478590499315817979447448184654843600203860319762992251684941116531885873312016448338167323356630768051910972261635987634510657474820901399292439129777175302891808101583743156401143861512822948783207065550223331328358933236006469629832306532333354501945893783009409045301095350257807968510025930206365947684108689807716020594940937475369815445030769910608747247303706342734594341216004444835564575974893340007090698079675940830014763532862475316862369242464938277171773993729637782634289377877891191507969017224468798076865463924220487282622858683411027725299699761569563447829446346659778332220329950415417991867409226640654259969099545925760762282855083960268286267946376653757384804322687371347863633758086088058673009467905380655298066249884144640063381400338181061257468563434427143031530098753660421354239349002616961949308105534428872717454042331165180234024314377638027708978334639506720563295993880654074152136476483740934320454220621282015116105366125477825628638066518128577026906394068445202138502826340277528617085862696471332939093646706349035120153712970983579601836791323477254321382856172524985020949996025499435068502165670369115099283814997275000589452696284366702348606220488429722101841390986019297267393768874936499745028472396078804822577536537025140879202512586327081644859441290504165502159592759139995366744907780834756331006037864903171350362866636316214245786788710983193045289190917110263368135204738667508207468315824457890236312762634780716656275497088990465955423705361575258763197155072717698163416280512848139558198191230946325925972079592821740989416852882381001325041699115427382368417207181625685736178638538704494646528832346142347238840861526574357689519413103872040424734196400025425960730892464538157576980039757611169723935864976626408758622358069230920936357319592233991938694173574369827934302354951903030199070421789984354044680148269750942845006690469343319112965166274316315982999727191298182150243621280750198564579454722323207326231212841099039192527191101783894881019784870114569435847057392029671032293584837058239768710254480049296069444641833148056929582558857263020323770809458420999031873093433931113071300986488574127938482283528522834753581010533866241884830680867474977840350855092378619848590686489662831148937987951381014987623477294820421200591111315189085986150406536606730002206491882246781331794741133523935678161304043203952144271123045965448375452938291448714111077720415374772550697495516644204857738641211529955774363044064337803953906721511611017202137467783464788378900231157897261262799458454086307185386268288641114186542850532711106770635306937498958640049199274526889853640524769986287772135743585486519896564456483278480730637502046048564052894237322767828151407592438198179411465207590720378319397732925592158962109447548268208561594936142646852904627933134888071216445353381049273402493067148436530276473390353179678952522476939749201130857977820395728867742685482746929346095414983685554613333334015002509013871661612802785050487806552058815517052291124809762276761435055598301007417659464799103871852738955309687876042954468035698510311177996120917382739205044979762802253451453258455878472256630181348598671148761394542863296651102190363678927758433042749392054179541894952103717706931530368103025695342822172297831684074762841065118018422221521727647091878633922237014388291330777917521386782447116778052977982798704662402078140503161885966863678658112273744627316803596487914820394312747303997084495215079875614620494095871875209981890850278146279478177014144304772181486613461470442280106310445049433410695662179214395902433986720268147480015072582848595679179805371210323492047631566521416923432912738422654386323460706701116802897669246610562068181447999932099358341204771948481948662260752362981640213496022285358029858336988563027218153109726917355525853929847003672596323206433267907830407674216060771888859470272059680425199984588707441537728993604442012159649228047202909406311211522507297759984854351584267001636885121460221096338592875991156161683156527400363347737357717409718861698740642361987576602385274109596066937780730627560134307455077834439104760511325899753444061354017560094974114504474760447334204135928402954016892473286409870140925219955899217642977834022357965237599505451330572249196111827362657042905666732196128864195805152946379169184472036780209972040983682558852955631922753780248450721450588809199996176709262298638584620655985449016432485388958620719015420680929605366642941123697116033135064645040689903751057665413411603927536712544830296252679369552680137745866826242028001995466316344532719876028190125563382479544230836928159042658626222438388809134927181192237954255781942470830504245691706162656126321239219192234068969480302199969425989243765986567573601572387163578949026134668179118892938476254168333337180209578233690053635773893116241711055225188119598794407338370782552510893737996431904090998325596431387426542767773476034815290258278029999017076941956125612336506927479022612349738315253257909699600207006023471863450983897089426398994948588197787721286690536301311202802637386701702438515969384669526648337292637905188586745034182928117691397320027489158389142106158188581245731627384706855457492720383338921390837834074252477293608523165146703411489593201693208135089525914886542626293186649344414712283507698378776133939281149692094643366557706045251815416685810990408770853801756723374707568303300542082077296602648344327782639718495277268551727647498149826975401793881703757205207500046879689937628283254358669650135499037563841954883898961309185709520589410855144887579333526255469062185756621324387158244850070488264569422382545050994968619589509512368415884044765858733929283243907490930158255312622781532875818053133775853454387998028073908091498636549503673639378918373730881610520172455146113777841341152544593217021554686280932311807177736371043825785761226563160208776290560341606921673291975318996844011374475573465954852746015859785658677102036169510075395509293281194848979889041270418189752109432382052337914719774522675453485271613751979959192007679458743660817897071561736350399117097706232274860478225331704297744487888463796789293586236455225203864346617651784516156230640163303896384530293991139864510599081406130720279326649511131115547504225212546674977492398589164639632429888904297502282877516782242752966548084198740770318336881791409789856286915661214064228424312950460935454093133038859834783214768974911677808992218453918986019139142923001409388986204074287408765093926871534228357723326649301026327941180653550976009370533439051190971339610919474332702771429328153187712602660278274088947957566294149264286321406459429753779307180945833307916212870132209041945382486939688658249267141364333395772251778177044297647276750248021622031323442738447820560581493229313873353440272150968000869278519066806481279637151473418309073500497143179012584290996766372157960444189791585593789556947215870705499606475722897876476641783718918595945152264320771410206692634289095294508685249985206702655305794429556054747260220878559796065806838657312631258198754480915457201764299547487633992637380185301546587262942575026143963594947818360009632837386844555799652561236582906386470921925129629188525610306965004405491729663479067867630825230492690618104059107208943852767772809486818010901962726905402665470482877578305820321445607565930215030984641192441186965870512718128402352666480371728866570178297123262655884292426989540901863765488190199735178388789890360778610178522622130352351736152929153408002794421288241585146824790116739430510789689753322938912012551554892163163759768869669443401712884408385422424078489847610313283326548455979639608638988987110854787578147494676404300570380412063495500228189032258198127424532041943713382434045752240210182171910836361963022669116516336248688704958893634751418224340352432955856656931459844892063378724240080529698950761534930203015714148783850910451611731314035781396709935101574609756011179708960788271808765707485141021460348741562891815469666419303427111540921757768282881062107659318685480739986148927154256084735414803274273386853054988286187595083514127307962078650528894160116286737958818805063269565136221869573402219420174469632509165920252030284986550545988296934314464257513456648179746809988781561838238590415564349185235719534810181038369558008488434377802622395812066535688240577008727005426446232397156691568475685555184316437008696942896057062576502074823704600328147961069506392037595504849473855249076616029313253336599834857168967704261549690031769865407639578951535858159618128524766808414921406243779265705198065767599820691122910699002992379691901685996617619819763851595474075752979453694682392825916833485768241797943809495539698715024969219800277544224680452633201684758976071522738305670682483962060394682068740270661778923230438196927974361077822115744533255734053295053086158609671916981400040606726148073220244030934142365077818509442782355732167303887263482197722457490819577045368277453492592016651275386286600371615197230277932035013439608281643125178280892989493552914655139340216494934148952870012719219012102703431723302521595326935018997118066899907852129821848335420056828066054402340395971493243033402495748628485484619473132615505436703013520943704109444832302122981486325388234521554031790330649871885802049376256815337734839259222009777235882959311500389185008535738970974815009721955758162980171815982332052323536388157804015701778671047498566010070755767591301346102800789165782966718868208497316833532229564159173971454138115582825481073998751260119355961997306443070511352378424410642177760054925582226792025194114832274612302836269661254786751082208777803860532311863089330550478813390856375351067694700698199813679828377890349773754870924061960443537061567555573226121183590341421223556303699576927260750820556739958193387195569299477218061072296498583484384806580315539501377179484076050236731996313876277741904744208942088726378549785445202823292119454126175633028365300645592610658716211965069200866272500996689777467727641456979230651619328959774631414899794225553865989656383660412374438568261004776105607288573785102071260716879276004598948981882033496800457058977538817458312031769951810526509056274460855564625914437664267825249161802146492808171720137582591676897199249687043809996185161223129503402957580410912685023976818302663073726675460070233385760998869261204409024538311627533118775286490461690726901206640413458846018357483619614920440620318373356929564013119694691922359958200549454094699789925713526471750809082323870890623129281013615514498337633990160538013750080360290037857360065668549265765488721990556125250657375571849107556048522205068417283273989827586201693966871525426169770302492357916570089470065775323039010963709869151234720822999159148162786281427180188531283218715307512996478775920825409053518021648522130377875577660737584252540471616708631126551765103645872809282051479715869013640850034048700251796601136042683489627635966857909521273000826149029026711863141394318671330978962977553426503953884108971791885934664746845000691960861251706646146387864166433338254634955425278542345745614073940921487317544544681796291292599940640532463450057539065207972445781609842950246298489406728584331608424671781774471235656765031122842438485898230983555185753760740604939952925796566841217745155128408629916347268159338453795146848854425828093286258886710700978316854735021156275415171708474569807207629001539585191385970931550223033818739756737849392650207142480733159235006434754395598780882147379770267576249006033148295492006854258242843138567920480143458765744357094397915256389718655387914612460990662513317150983184825351518857985496310022619538516382538251992518651036644752968275442300955634982783166954899241263599221881579073802126601584661822350000073150877437490345061178458991233648379950779444327796306509700927838729361139983982860070740241292229433990046148690815161373284812539677605878743256157571360229026830545737046861965855669676173191596371474482878205938177032199913680420822542268223915970261724214414384084391881127862601008993228401020240055960171546012203378485148024676932936663798709443681411454356601619632931846688259764389462478316164856054725648181834955783546738521173439777358844958877098104022139654721522684396679088982893760156429909146799132142319410165640143325066931658363198261110203966430527942151781434928529487282743020238430849325673117767938292878062310157069226727531311044149325468417613476113166064150125603659902695110528821853541266855702845913334657816796964524422300294156398260180105612186711202488070506233909409623583575898369196129471781477259906659522965547713551731713857489294086202103404262270650010148767142184771270686044074384419240341667072097173071456748890168157565405643820396927340902722992427221301231205923871454852326300071593177831882924885053712292869893090581410118884304594848328119568518407843003665026242580015214311816405187268284039610504229973459890950614203631227615750414318230378172950082614096345272792734201602226401452260538337366441250252870556488315130599351183455822020469680226838691172870638211804761033793521115979194713443731952490057373821164222754244073155738084194817250966461404547389695134734231264284489399655391092347953171332023397912086621479495986330288639766269864665718859419835347186994100927054777489835452711213346120226971005930303331821715925781817804616016571613054878426745491034480243574350999464892457079946895685517936326455121898500910863369684718171822466031692487367481485526756002584960785318784722470106471141717696490747911627966251556764112316123755124404170565918920465555361654415116714899695391313932955585220569777616031309719115538523628824405171267270921570063380358418862670935809661083110425428359167828306594492604139876189862755711827172098364961277141650985771796478429398823442656866866652467810420660710080333485908461250003648306969553530047326113341682459714013502378278458880278733583096729366223017083871700309941840494535952478014579295393530635218589358041866122041145093777289450680989481989780603986211906200011063880272688537717564079336574374454349238322712073041146801255658367565597449256785800577755466602729779646938931588022962430785967523681808519701168778259230380969481568450947155007227224155592386126426591233108937868381067902306091297427155139673430788723002804162420798406748860388705242129093996519292593437701541260213633371543360221408169844005225087643443751794399333649946159301152820737292970709412755660816789953672404390830662403015927512860318295739103744533513028306793952481841206571959491076512450093122553618322619181739723336194734263528011245265096364920973876798691185244728188957592902006590825168293162279763166169797413762317010169903788533497970579352141898820557341944319465085618478192965171413092735122350947814805059289953540355261055648094322706832038484783417860464630992707632958397547980365341154795492943235742320738942608899559954407234790380373532217039068569840858565580875797458241845862734807055723357919727742881048886291237529598528491212532699551663400764506922739474156842814963508124416273258174149837365108120285632549267636830029875049392680282422289557946409682562592599277484697773941937757112310074889865380463503967425599115871900851887028982407024369049744008391393532379103051606906145260354176327440193057642290259269983185678750371621427218596138972942366917356976668483119921437168832559882037280603412699367435001971501354264311605559647905415983847141427129156043418384802160043599760451572059305959250647750249993075195642246938834793081411414497241723806646228004571259985998621564832949583293107812728820297117172445442944775555490747598637580434060860915082849461463645048074568542673685766338206881287165121717068098598057745011148590826381165146067933284811920109703249582905758803769614721292208880040037426486525102383703493433652229016724124874998191236103650790111406852376795318338298522889657609519208042952559877645054932127566998512592872530223749567239139973356592023514795218120651078161789199413718649607609467176552746905293638958349396683467578291421101732726295236432515427194414709206904467292125213505205147249085892949635643001426544114445248748076778639716853564901822983673990726225875150916593344144715909125890653042425439110163088913719066375677513269739309352128808452357374840474113224735889492515314438974591025455986304372937353803683666677332171784354134499918109393401298036592785332333755457957221944684550901462306993970299716851523966404865004597916306253481404682565290325044579917698246926970481629337612940199220357088784215522895051496928888570834605199092110128769837891873146891433425429036812068729799978180204142644818181294476503463080082863311904530515207870115726278800532227163984873070974654102064403802626636635317700014697226357925357795569099912108798540842262093829547464229126517498706825728030541437364682139243987875118547858748712447452752742221478070161225482260018249958622024042267724669303082693555288680388411541483905266067033769842035619584158914185345070281629251264085013657380138451806970772141516860199226988275345242785924503995960113601967178916589931515908750190335387697695256965325571106128949837844787787964482369413253490048219694561646377687045696368890602869883441154199478060809552100343641609195365106169089275430828364977745052013540367771918505626734177378014840410303237202173030139415600861787788114841642934893579549073145082317196729904385919508533678000407135772861898189029480436583888532205785098170738963023493608689265156290802552287803370567757881305979839279587844770906047938509465535243925945844749493267048517280764893415463303682078614647720905473166272401543152272024928378600036383426702397814694483729603794633361899097373817185063436263894601010342878170724037046386556619684582650041208750813915993133663965607782611388226189015315842847342517001081937935792570302438821549048970592382920142786909170409629710240833801559473947412062136543842674888750951302290842902025189449859541567544476093653430154274560663872467014569359655180492157626347016909911056092233553981076973681822186895762500623440376304243000397980706664514733713464116554048764445978590277822252297200630810833576070527406419643564535798304219560165884474035149888483822812354867742917553238697202348050370706180635516841149721080933880420397754494079996930423294038367548334856725742946393653665312138153919514522369756588262053586849669858884570449760130691455581177081743879577713114982495855220950405348238757281452068146236958955721231374958976151621488922662719660475487647375201220087875300590139308538726322943816733931304494807551591177953635871477554185284796855989469927058038514714261639228287043900764201135731841501288556965203028958588082803019869335758447895790858865189276741610428609939978554273663590365017461636823148163384747673141861016265374177168855425699028046865292228251874545430966960145472951410213614665629445392293225559707824214089837539084149573456233471548717269045770607373223968008998985888362429282669352897624228918046818590308383166182297507466495441826623511019688091373459540876461843243669899430610597197979815988357632453954119025876167905063601181137705732669229771239541049795001985681119609313950688063302952020718314550113422929207208918654624679344792322112785495169905840438987133264211087042707559487070509763210127359566400920471891718006718502748785711515011081849551459027500579970999064118453158376536303302586903290172669612351516783410411042060574728106472678640391342595962952093841951937955228098041378960454051998585292516671285728520919858091913676492354392780100095937538783026626593568915859465605123921415256771832564087933591376107663164265582142825431847825759295694506373360565813598723507402050793490322572080295406223317565365232424744260782902482024652857324012546188843015916501227058804783326491307125602186859357650506096355569448835301257000546704369261026669362983638279324252414610328493043060895019254662319220669180771984458191035679894989949085006979177967624580443058697020510775034335026911291415110142728734237925975067213576037983471706839961284741549918949614222945608206557385022657817580063812370256647028432759115662505919022402756897041560888116024688948220371522393451550888144794387528366621763398214015214109685117102778358112988512584592533712823214949157853022704803387099664685049547797902472890872964635915930940949897385384438357484276360187913084500879226131712307717243850972830016257506107910284608361010367324994315590280519384629690015877625270975142561383645686356099537940623151793300825354547471471100139655892587680459142438292662088018791674957599571401050370316664424275008016365037302082190565112647065935512497555366394415929257645885376298891519299817148059491632956735459888129843828203573361584481496663509274611124853120088925403405635245616801948341404744281216937745202369327563733677355817391554956596514501118818767800892028533322608253313260156341596627207319444928756491984431286428603536617328131439326020096625091470338890121801820084961259841101496323753624889679172537490117975792059272629503091826766486588983216889956438330331003967339415772790974757679316040995482012702626330971557378939961320871805296526404119122349956887389672661956513769573203700267560373986489163887980893974009191590035401982937508143118306653934861373884739104827033116202093153438338976082755367269301835769655269876658823326922467730022108027282245748893641723928325201998522045492349834242514921119987062497803544556734944740308121606371309395304796352664812889812166094071096636440153066709193704921844972157949007628373612172856288858527031460689109794576352076409210581016059843945787519837627450583360418461410933758884850768182982124872911412021377516247881522458036395211607438908759607726401864856258963424505766461230277217429606584145615234870805209340394911242041999057230027649442865691462067328770470737492192291493117010171794506515526823758818824327921453247650012387051286506479914916511839962232730488560823640297060453548317387335627873024864245568612570010343928180197423427655706613938817855005758580000844093014587953398084987468375653325719700080026526539646407524609819804639143036727108275183695721040217621181968504457459178876569091884090686762208984342756838589644953958253342447015938104320426483175424183217763577686317742717749047739049175498275970585015827488260701912157853446894835473450724586811567147031200423149092628668896528335419877571102985998737866933194582335651338981827852036766220569475041371479101167891477856155538347716752097132694892991780960554703073519202622982730900815966599300371995815073969554197308053702500349630990344449570805958341024817173310554658564029247455337537457916498709460239462506679864523865962061147378007839677321221507284506300211326186990791614516096436288794728651057580877885011560823118927674284563382858282087169026028386636028574637268037099977873338238463160260597803759463396049118603810605276500044652439868266285485168000741116960158554806949895976152850214258511293284075330579217268986114142543786186869437019569574548163933906172260573574828148938484609616398654926367427631965384648561884061369738109374135299285852910973894010934740051054258715700440162087848904446526103973682179143797857180598217590067426728825004239821251184905475373370384102754982540030294865119726521569064221045155223739096931363821657975002777713522762536230147430100782633117171537052882847702492474189615929378313568880276628464801522006035807592746064662089396056699570168984895020987544586484751496628480390132449706618264078328542155775278427705003252348995841921239545358267966620587247100099567127240304997170279562592833084686212584026924505396766862427756074955539434542446706735562715445543702157175893929558385963007447144368576552003925204896313022165442535098684334512027039339572269105245747919662026596192201663368670264418905562161322223083834598840621879864899149704628240797158459222045723838471816632857842974046511795552820053749001852310832318028650829840134796944514263804243839573329147073414828965096230515077067211076677336756192389051674274607734305799988749686515983691910948209076766545201154213290066856064326382573799025970135473922230499285990611990820414714493332561245918720141117074850406974376641666460848927904373214470450258605225614490099320664249462872724796425068127906875668929429503972473271666964854962910800858462335833629847596153920414234326886178070846170023703827387092698780996684908131798814191336957693429783407431302956471523097098674021942994609084250262494251891643945925580755774341957189489660661437401371800442140311964994701994852043528867623103132321411734083910676314973094289050939071187450062093734263967886803071408284741319798289203561058774834972581778990197397637661065478256565803524376215226733531369794138822716563408774838340762928887594020339953898148266171178991054050196576137324380943140047495994415260683811330067117155212065083394937191022128889536830440151324737355018697491451700991569701355386240873091031952464128435950737629855192448511629854165485354133474915633827393338479493028643333051351365937629348506080444789686957639099193182555250563239566466562932849478161072638813548851797667392006970872901089804726447340465314659387629107991215650654992054859393847378576311620995236311312734051601612975889830235528331683182458735248747682469435056676315346061818926420314589049398549127246518998299419567321566490527991261795821473444898546881014617133371457574039997192318530734154595738502562409901988800476881642043121412926351550959089930161683299583157501359914564773072734354412850129815461077460515949036079415723901650237820205449163012506914829473227246662906809169060408802814596897414301594759033383681514510998790410979616691356659627126495368640701811952936861294005622648468001032989469422473538241088796932751819621478457005087194732407825881614255632114145711435996324926483725541126723904049120892306739905919809849420495485873302159488863403964175982238727884393223459450228556797568774775084666046181930677918778878693063602229535404277608959426375826361409663819276958360322172009400667532725732948043778741693193156364535285213156923810586970312300487613559383001678752607411512233308511078353488635965177283916024108329067620533042803891245311263785577775883033189598434936813371091388568174144654898685712616844893842697208826446389818537910947717590550489782226459393067992959276810586794097561015052612524179433680462973469209451796877817433790432484768772045838108698499204192237417617443286808100203801365407070322052086639384995907217571805337238688047750968038449033360123804958866258796526844075730227795013600568318304757344225666452039893705006197676806001048800194074494801756145367411952342451050922133867377862150394290623925415604362518916466332560343867249930806774394365171007910614462208374170305710535806320033628184963629372638767380445220847295246360243097186016095600888323537645511451377933427826569296973357351108151739105139268281265888865386318554892693837539311740242567309266629040283785190820024856844031864349878897614757602190691457352450975575236099323306527327586104582696290448383820612198870867982430886990015567615214909439401903968273925997005943229313550530135583118850455277417720234768440643314970730727528716056431207574323265040625392786651225873098626134429500837576093008869983129959388775751083259519449912645378544797642567096366305647020872267489425886373317841278178190057481072736585793140763506307273116065529645607591729106094183653634626647316977369581207952357874942792242183658387528775055823004723146409945714613430854166078138476154391832185403421275336562545691399073852872113663485156731266308579377253476987074624210253207767412246957910081812967967295324646878339780438675205791289285240831383496950430435581622209807737751790229942450404392127596613487376351621578679162952469211087334290376724200438893288044248006291921879258023904601877053531970770605836138804282241467649211007660422033889536042755931054722142478343405076790547035619244711085125491704378410841419551822071817159673232369619311710299094355473649192098665473328279612418573849752623876202814408427328182554469724704787001703512625364500106152343565216471746242498533193128404627686090312604819958677394873131211654179835902966440069814266710481281315613794948835537896230971014902205449089088804643735370114159355653154744245195566919880929255030126691031279541189927869522557190979184836607095979392166751375548974246035926947497561346836887045779675843501091823166237576399910551655003324335190191520185999745772405812893647628609246269986312254002298665930493656944983114762153698362603457414093308761158406059433107594717405540033227880674780247646979746772359184549474595348275923105048902481582999870411705296548671409566989443427851502238879696312202395562407736086393048487078184256460522294000312023183714734758666777470349779904983144373461824747328889617610195810377992689003844363823155058904730614408006465599087681250215020772308245387805358542390121130899753974934045006946699660847557671777127199188189114389206601953104032474762110508625543807142818570920971985601731626248371360562425720565211972017846430713433431095345780361374456879375568889352259955998023833285271882461495030122712310770971243445591487433685037711386277101319191153815335629576324383447577022805387107507897413934981979374914432306513739160852754672712847126850146933770428485254198795578599481096432850848014514894229115311724912276093405091790596350725686441960100361045510618951679064764682569331875064212193361360601331050910359669202704503364588325954483380469857139565465429378713255032816878345916212286564704773193899504549085764688574613330505105317028572687972677434428476037363433510952227405831269222047992145467969876236547450901159042301222521616881212486860087280634493549290505059399085137908895337884127337266166280919101789864566184876117272655461159324806687912074805516656762407547844238835666955226381014685927749711291202155471036871588301719434228139921464369025545974022216079419432269633844786269968488416044352352264720329954622579480128471398589361182719299035408379273067657236473363954860029816260185700702085890082038900988483547259115748567530962962201077912793540773485364836136161335373135548132021628660177837348966610411175945142387076730789288598126571563005984976231111946586522861761423764316717573949054048882838144878029375482419559084054991501064928841988703508467650537761212639655447374024592187510903899902939173467720640518404613045628398791853130587203247943024737316113701272373091430344499845391291979531569939919334386535073144326247757085872732819771423893339291152436969902284084245395716267456295639973919789903267143229863961534925122933540516287386542901034538550487758015631100943736223688814609725382517813565512790188082904994371370605607242301360230962518995711886138166403100048145722118569848072484685025908667463754788612140891900677691053058783919915083714536378845533862403172820478088090407818044527383792234287952066899150825071031691104145478518500664856531098755566708444577629309149717098426730240738380452906425007028215317834145980346706300903934411302383189430114678797118714703713074419304337200603538645871355949913446886450037247769139383536268406827295619738435342330813510274785698617046559809073616920783401474381467905469620422685926330032464387521558537149887401745129647730432960763695429716434262090658980305423620428785854942970411570743850453264021156048269601918448328851930219337087852473252978502002406018760051552841374716164598745038097668437140090954273973104870850604115509475129883362098905708496245613209863198606535054008931477373730864432634140090915542044258504577713094639687692154322109763939339533421270183797039199799657551228249374848810274511045316024222162615368808154156118595648088594920592162917120474383101771793148977879299629664543265927390570805318060997741831911046802662228582767912194347531488006251377907557318968099040009621304548098908153954798301500990057511683010801043327151823973130396586925181664057244332787880135378470958643477247486943438025313524277147328200403891383202742485910833468942071190407908127597458982617684579893644608497779113591159002892594101708104427100370092643247923780986727818422253162187839637610521425977547326596082560414627747581215053236224628404246530349327278168115463802135780491136792842722981891067408848716085615573264008610227466021584186036823827226572898586131328710008029562982871958313125046700893889629065306830450759401926262213358558476636770746505860270469836525068074361552580258119471194234362373409961003229154147227526602105826971041943997785183758325686114764786849615056974382429248989426840015860677015895880006525015203207766496402691850545001217842869980004620090990876815361039290716806230706777998053210756669266522578054804475102555229396150509039587632393400148112989393069091614232652033459895085300390399880114326664750567558781573555139847632918931363235803398503305700278155630029795706917588336320173757965341369040933485010042502601394848992800663681592633070469546859348569097882000098788746808445649461180762802510780267381178436619542386255691263667228383192584152310008975126202021121390653912356647867283260667372409446209542908084785348673564048899978491201875218119474500089997372659090219967230832850496906009955806213443730625036487805173261942822215608994849064297677380449251848204919064554328627698137267363010254420486002753880191284331157069865041932004107555863053441102698049259707209379866783184946639442928962978355217830577672448715937790552248857514127624553451050088835878713619300633683891562370634286399659973463329595650160888651297554973722818419989035876100100636165944420077969712724946538762869440287358394684892193755652466577271017931973713609015304598756309280931601525183279268922203540306010570694597304053012186150475890044003859644113537322925256041951491320770194211912152705747133496915470043402881554907834491663800391189565183032349246746070835589595391455702834999776346777234319645022433006528221591486509029541014637157384260516316586336354696352825833531649116819887043433026519676931847414768896718692852258929491669161890499234860231147812624625675824956573261350182252322787342821702938802333307586594800640602449014887467421389170348976857646049685897207822919770579606598545580347654265412586006791465393151139791848518346315970823028414751695342271522344137876975489418728314144409244661860021017636089202845248877308839869984081881378168384274450454214091718583867973398632340346787140292243822150156573936718638956014854081071822348612464251711482785956554533001751229068432605955993668803579177817181850630083101893716577496018683625849906437494210587209578808601914432946744354475477083895534781796604479748363085027819188298450261388626258118949973807310562373693395816263825910972792792956669155840493671177584774713297372842063161599686538038042283131166164899845885976752173810761510451896550546283597187249346797126530484686999252991878358876492002173327950044296151596362775489360727212419701067484808400949993234929902575309960760150803035945924486411084872878154098360434461655304146134744418747467170167432166842849825448278498569306470612115803324309202335887087854586653944639047736729851394466618631584103102950695973223938109919858614469917092415292565305251899577226471727409307807749479089633954773377840072034961345874213196274021103742047786777406972142304994906261652317005465236038854016856378326318267979546471267948759607025893075261564406364827175816385367089559497652023003880958259883614478687834568781678745472367773236178460982123672289549203128416178452242476833837973635255654032570595379993393992900898085930541778043026526912128344147601696151725171344737362750023237325595672790636507158770225892491705548175382664770686504973184874283933145866115909246785150875394780949809727555048379164312355614254183195417189874452397864560409112389020485232870596495793222765931055080134829320090070936628559943429822581185973737724653185126776218407379898764928613751929991079284229321905137530691904707435356713036220131869581801439358346051435580772827859871528895372298060937561339401107877789366285730264385848790521626225760965768107022092077448444860742720019209452984195871643629799701712165510025072041894137555688493595623958019442826879802726147635454196269748826890022114620175496007453400119249919565688509049354750240919201108743007556052280183429226726900172612794387998800723488362159692510235718515941623476175076515147547525867775334855141566073334369248115903530670605556686747658372264867796848333077694785774519395756191601471003808486446980843047041574379623245891913290566829694733798456000687737874728241294031537414898648192760394391279750210519965913638390417875384100611558961584366292152866300078413014231193598934928393426899155723002256248630225179751108711421545629359527574863380657464317164005194046470670974453485187917422265076716098760949464683436134108048286462656686189051542187689988237466417563762410528863356947629014985467635759454793152448067571856738464633209430257719450976145030807271963991195434909797014589268456181113604939557585248870920564576772308145222731105622536986625822609753475921670156507587972450292721630950963293505383130858732511810785362153078224899996025625558671895380963273419457709712947689244932704606081768860769283030714801909707348412379397659594082862186083973905699916805794898158900757888758046030965349689749150366420075740644750090615645241047409184333042092827800629746899669940114645820266253477300045247799172075235777567344699190843930081237196950081810643809391220070355216035429516532832921814460720353119763404076095022004110943194935167054642443277773236346872309976782156365784186561401680625559961867254629279859272871633095436712984326888058823558582742748838705019874637951996500687582952421569170936448892206673723543897443849929892266331583110075360586263631776926300851398547648728293367401293878676018114867694564435316193502962300885215677483821565090656892429820176153515606646508699310130514172285417725628019410503083030535472521916290310437738802851601315958805804139271417445152332807899651735513094174084218572541055655600038617418445574292615076068208894397563318984464539584409435987914816759168143288467125644871512765232044754449093850006736411753376005539540205141912435974551523556393781119797819226285133237717364076830610251473420823095551456480882163053987539533609727526668829293680051709679514908063632907144001159438321944174333922012151959828941938224951559124217186019492052364213792442535455145683660031264113153663920596540056112685139226945145855638249604095457819701582189052610066792373238915514648325102279372078342695204646958729679313694556339542664832523967660842907084230896499864247222798662026297735621285841012189853250029712542897043765490079965927542877445515480475271438471398400721477446866903127614278027930504669770658570861947381506931225373622410030463309950596126298466137032745980849572572723243926131637689423270069966091169250386509335281245997985484829362813559371373848531291296255503795786951869787191972338502192177066816883968275825905459114967641983301415266250616348651477117891809393735845701232907487230055829340688897679001114195358020955377061383168447055889737093965706433643175895379057865587043288711489070805221024604905058270788951410329031651885979518157739535201553072239213510854397171204698356401759943908248691403807406207688666230056932433225477648616352818980414802226871641907770434882275920662093932847545205482589318276704799455693590518457979867860375822987747878866277895608940212909621396110597809746890988683911690766755176146604069138292753661817291539222251211756604680639553085005608317859387278064055189909071118317641341316569481181959733593177084642960314488602764719470833560257426615990155163977494754670739713814085002532578697372635426796396228730582492350529870889671369460718876713700392594952021614019110242888544794758610920890706642784578031715001429614333732566063919310983325245831792132289674492098310336384123031758876299855565389570649824911215601713707808413479208513016486787230294577920443774343352714511886792909976464454975938084633240311097886663133728703652372624101135979083593658113952454104771395389217641616550599106370276111069731507554793889449783726821406486041869927962960999022301067356326723633111242582251157751392519465273265007394311266267399003706379789484509692571731240148363860942293845545109043303298845996063666928605810782801554233533230840249030360129436255803740434551610051936803335852212314500777725131217760239729391463238392022363308476079107802223263548883411860606778541212783266479930323949310318017874357226493364553630301887748486359058262551706943878194751932559213488488481737167933958639951967146942163732510921196011751525131549319205967296849519851065968498318800563082169754826943299103801465693911979193267875541621750062794833581185337917077605022882287792729257833272531212899960024060757212884072255862447974770926908405071570583711061793580909918862112813156990323112234091459132342545265714566726509024386290690173677497507318428467830122625437953988348224675445627503884439432464803468172574507634814755214469386440492515739182473199596108318206217549823520982952157037771874220365027340944462256646809296965724545304377066265771666179686579961689797036046254973092424778926205247686931023500130232157643793308408516141298540186449484135832948110762351240920253892155765031019717094704106298127440673670150089834121553828442776523473167594869960716056589597765731205704766760547036030617385777720263504816859233093756755099762980836034068526449198769937493711267005535937725970252605858428558127137821846080295712053771376628290366374405545268147732543083221480240327994088092615076441848058774696754281300938058723520239490338257115410813895835208591295013129046290463722216787697646454596055350478984842061043227647805536191897074537378450621274426436583157336502372457265578350944097312772627989077660517544336979976382342509122807124369720119325692460103095079131823917398113871153278548488963427006986272256199915301274957334760351958428415263868043295556850638752543417604670618380535741848521739224515369624030343267983045981895176810055776340315310222221367618574440775269634195814660561729448322412615635353725659438201090891115512406649409834096176520437890368056778667979367581322031705369684205512699199996800977915132746340486245063573476477214656518574916359394433116815177211668844020572559595785668907352965662944458253989392951842194296013016010765406697355879344768120354339689356994907492596076500041428665896448178334201164144152572846031982469229320859558327861324246266052306175626817864042560901290797481812228072871559836948955102057487363493367982509610413380929747596821981645681162803282940373760968447044709115483597099106218900920530916726184357446270154742809781543110109572464410782128965079526658113803339191350959368138784665071246446630755792345910609849293200779424340346765981855244339109891361355476564429296630055495091636985065401109065671163351174207214804127016776459555459936425949715122627301541006766435638584466154413976407867204163928581373566764861955840620277540039201568652258115709426254785490910590534191498428099300089227227305020775953686051190401853064168071580872549564723645983346454350761436672145162886551734301537773906302228809672505415122563158656080192634887563838397457899991870392378134322026692263987809023718100094684020621020728645173276876238250573663525957204956330559525138062652005764925999122639813817297720655240998666808992807573009564428208857820225665410466590972046997839667158560043346471977894355204430161134400075921467016588038625649007363692730325282265974134103074823657887910153693611794583918849291876147958119882563166857352870028480014457501520785618706098778586449589819214666481821977999207598114892780882738954986270804202724004454868959098997816987109736799364294844660880733134818363627876653751019918472578267992908617618138297677658857727228990526266159538955534647284657971298664606992181407666341330272848142271280190472128342545605522722337418667879328735905781948509626129315440028375358523562330839520767183008193657249826454524984887611569135787455279678739227482126077261964213807716187115022910062637856768070946567616208031196432314112593003378749848005752052456472557221601879585729571049958184970262009973037243251290024231373508917491607805278482805309043536611393325435621066549512477326128934775145585317872774973419589843186176760895340748275722098610413962571600951210990443457115188140340227149726754118776803097231199205068258204377117792091576419744162172534553037469542844645609205612810796083174545907854654743077857058521841552613302528242541423504315988670435800557269198344862943998911704247684176913396954930274025597160328673124306908986096862030906285149601622973739217442552413665418639235264765880703293954432472807682907882189124729287335204337593974002211501254997712625401620866156496763324807916484370484559496283181263668986122510295843558383554454773951084204473946492859464058767264883540363042972697780453225931070897573891085652064790556468673364262266470124202613684983216741215739351970004560517671970166965230866792003051403008215122562995871553293137014119517067505400183824652450904523056589932653077500079072099560212904738568158345507614861249952662631400453343182678806984316688466529822069616757044468322740877830602306981523191336154306283112628163507494998373607875727325172849424089717429975467846598097938287929464351653756560964474374853015073185864017603046117318170307269238528425960759727483974734442983340165047957572438138444688321119318101839740678044136252216600420315840903540576371999916476844731438392208475555163174225547610550706948532713130814439083596964050729575531214511327172156016165284671263288314010197660556491661744995009761922120915220802496048890443387436786537961842507970908539298685393781300318556933392045343204941437078507658159673031646785912566254712513898320746826341571158433522228302565908853791223909797139177862803659730934405692305847652719085168850447501844600568537143915972239631142328592552994029023744370629535965983008902853543033345143415013790519670614747853005116130235310434521100860064031756966135675222287822667536739674782261309287090484030732420288642794340711670746561769148919562411900166830551960631704144159453176876550213980920141582771692415767539399783888951534229757364535478484400325566797383122273144076345067153441324169640716547948495253077562201858006286090399094381300582342080708611593720682397619348096705227898000791957678789912411006621276461685252762871684921977015590262108597846870517018200191424697000241418391839685633990476286252842230199959619573571476142157900184848365043020411068199150075900143956566082254273903822655126717011407314883323854103549898648338594931108322516709350655488001501965032758722920684217799006842520699779227731499344212521960811020337282960746455687578555522263591902584393651569486956393422680895029750695055788945687135809575214268000635523247884736543552793087032452767258239054182954853529801908024602819402737717099414288457447654656164737593542684734163653610498654640923086427594009207161764134047424395807374759537460844381484592082823892356206868376823266437835211914452357399238351134664588607381969105071878208353993458972728673263715282364156615453615749203750271407480405730234052174138675453808606827533126302225730663544784363854632786581507814163537831085617787424345296362237544992700921015088863149729776479176253607228515417077895689877050859518585698533020946689280534210483677491220510781593414329242140269703712622902437907276181634758393526395268535202033457421323371289733845043136389554170933538762631928132437184695613077116906256097132232735861344941554583269321810266561690501888425947432405922003409305892500786962867307611877082740740782965531535934781956767936680977126553973693512738207918138693467910096196467105726438457270190803061394222180181402790531497607737587239819530572519802088689552271576773631453763185906733270210899114757383269576463098813765671452320570706464529066570901675071717138389940430688654819715565160798977349357819529055846640010383469974024909455767529866569465181322696687444547161548011403087797235637172435148340484303542544537125567986357286711145397209835328464066146478042358203814566763338090183608485944352093847517227024894251833939046250604566150216790537622527733348205081066644250858553132689446927269813068291744789020065687581651885040689063136303832778361546051613945417581528104520916997117118888789109278902447374994653660652206462750606800026917636128532564762849252358013057111402699020629539091255643229798061695098036345641029737333093726995103824658952606101501030091024275888239226053844220938153843569953049952107122333621190569683330712233214921878098463766502207161781159781770912901444309543803129547044420162581455185930468291427038649324261423525117006601654532933161795532938426563506995182779622409942991176748222930250962804818892543267257945904721622215909694511745186027601218872921132879557266018256252060620486594992194158662858981696493333493906917976391270366268374144987898044786582558475557370686966172003044056768416866725346019970402178809144870067701256367014144810883880537199199670587248901112497460109846796339691423524818707614359624566036642152900884056160021028600528754162667183643451740380042721415277673264813296085648268179683938387624378587658965756885208716605463305640884449843540699403967362443217959260745357395861940525894625413321674236079379989632294086134265993067465553189467163403393744830138429533388590817311486577835213369012360753474775714292349386357900341144786357332889945311971473488830421514502756225792922815137543633816392631591782249458698977933247603889396267413773540549233040039973982596220779199166173862297290382988267835372713107407254368465146466221933195042464664535358605752376905382232237266935048710580946154603006517189934364191416185108703266190372153105934071313213774930294464862115240780590497644095594799354530804859820333112001329796399560834928568639811068335089929258646287259181281845477453303475366384491711575298070098512350404705258772398144960612994470177059703085868174083159166336845822495310984464121414235217121930074714917356341438944595952886852296662066106843816665785315481035941369073537937313823672661548985297588752774078756857564027217597469226337820840711242164983782546232759966697800496704642962566101671470889411732791791144598348094778953708287191876379483903024800409365969534419319093113431511953381111887193083972673117760782092348062247412682758144606017795136348833400487208203503610429568339323481619602398614426411490275983860601635300380248274802964919960785436296541764907249137855563530211425555746055546606303793880407439827587996538154299946975670724787470730424885880663180888821308090963165852447985588597267779150246162168075023304661120921348227637377607888222292631101153938050146606278205129001956121051989789784914369201200143027638194849367666701998214053213307789924383144501464474660540367974677969580817873132353125846017300853920502548514747793521723864396857237718739409373092443667618242805664906002317606689877591669039764913321513555965243512114328490171785261273656081823410383582297022639654374732855970848424305157260485826011060047349869627104829879984576878801044841296795307315743032286573216944129322731413650824248791496301368931487958053286878681260118565761583345783344947965912555853905947956918291534816100974797238667698502470507692552486691415061504861395692267062179873618063676479943789416540966927199733897321047980039669456443914469360377379640419573799450099371206303641901876673106440249118278752326096507271060879013051133088477581649815114345831276296931643120045714514334791238989403514424712206751289940318657816163690503907227696409966176313868545657223155710689300068323838282137638744105375260490780455113026273694894030167146893417418733209280191693439191173683467743723702171752674081694885666973963824534889394928966094862794424805571051395102520767689784415335466058647807161190441716110711439538963386413014872395223081782500505365085055406288419920677134139455386374360586233144490108105528899804223034259666585876355736934700079426847081348270774341074467067680099055407129845782528836991193224696793982626452330088957545519210178484653875650148434905500208656380816224974745269725074888110664200625544184668917375799406869102395392538702345456770717570479263248237567204843702530537276310463372627005335223863691202757280014791360442713792468944139170605316745728486734162747317176589906543604800831119271980081920405668963859914055314629299622037135905406149586948389365744851370544295646229513290698640196626979018928036589197785665294833135111587413893391282436976125547875578119107361149231634263780488079645339346733948618479334977574818538043683984101716548603075759856675682491094001591135141255056182641236453840121419269207540124959041392659168577979666223790020062026980617823839895960491787243439031200908690949850270295165257873187478490137231863132855212578981097393671040471764778532489828615561682611998623684598203445499783563800604549333965072529437315266284323164400942771930943454945096497304553026998354935448725875761491208551394786755976287274353685762024959074928964038624932089326270600421441478034099741071097919090978551429725062378796568426306311183217496089732169173934483934615420415298154427746978285609735449748662105615854987575639317901390251020203205631451959596085859485223974821033044266796096148826031524841758282603439001585975032560414447335659365086936750148150439298574455269143968522988032519478822010587709617910073669214875870294249626829375870603534707702973468299038457093307112842774794713432683122133945908574855761004480310032079416203780395855162198799581653225322325752498167562426304061493895288747983990179583698229155321020472195298155611014728355922429771261283789536577214929155817089894640554229299524011428513505245136037746870513932349606365861065703431717185156596081393856739058198478867767725200173450624962718353075083586776955911462125816464632415098376007201653201800306339584441327436156174080036307537769763989344793583457007812921998442158380589629867139833438607614331645273013038816320567480933318953320359313379516027597579708849844986370318847914206240629622695365130779706607132140200922888653807123413063914869533899131752557036919687888464398243483412793964317362750079676481952885167911416016820272974156502211207654771665261876901932820829222577941418549001384798544580296447053496308076703296145646065798042581689091501936999847874104017932649209225742335959776534626955264312188621716646995558403865810506723885275481386470988615197217974718893429526898108806131171382418434965594600347888382013811614313642117151315219858627394918340949580199534484411217540468114028532972406680214942511315446765972949911441037797250621651013058333490009878029693058535424275667225016291449008732447267804183711233386962966270078806451491621157168645208462170853531341789046619028133707970562987107918491878830364146269253244765200189224956944769910705260191365755699266489111818574261919139238471002028369932985694158631388356556606216882686495685748774523428641586230367137732469512848240387497087623555722013143019478211890706129189584012420757074315104242147469280546392461381895785886889064348684474721938745856085183750533033841292056573364863975972164383989980900866995038423721642650014687235373260556018324216557380428505971998420245912213385568702890107421114591587660658329919932900406101704498144138370730712164362715153456497186573669317745157665724701041512065089969303824304103575706586906380801219270524906805227489961945380601145603641040895716975468391494238111226939565569720877659011837853310017073364142643931408103776704334769072509047941902325601000593179871038743361912835693319809249971706924125308941803132764527418628199546754999762971671722595771300044631683870262963077246141708422521571862400779061559172596023882713841374205351272984638894699611648103556730363405736122372461709314545309424082827146922004499679979128988066746615005768028000410209233450214192815709704398007672753215904562573634331837766636435026058800742546991505674847850638854634426455902259759550895820326708766265790595983030658936021973706039424201581393837834834829156543560821252635563726276235648368069585096062089021498289161166803037199384010634515540335621264513876462120988391880607637172876969461212655955443931553507634103587290724676631412700644564585501197341922354630221008526859671973210113014637152068220450413670225778443617187473272913408227471497713495760477974628821257223758836977819090531500805575067085026481141979529686034220269206476859691763943658553253575061093184521331075937342502148201440043285380515002721449731347974787671117510272298989834968685085155442490609704926080905033590361893092594757675612706525675935087301672349586779697955985762336503203450251050025810823237720923482963375780980456326759553271818888471323898723934247128403518206520284341896045309214634443950003006354297673530430394295193917975479168106440221476673846075639424493323673022162130989155272286931497768402426624693067118172692976788077477296813479849276604578091762648611106025582237743530263490389871330602600459468934209805513999860170279520708135848892987296026502133465860866748810271002434343754647526365573944933011457495719352474649659716784079615021169928586012844656176725768795789402149664787063449638444272001604156027937599808819746969021715913629116061481569308292134559926308690164607208966827503342188091782078868451036822288593645060518512673126860891745128248603807485185009209712716559005100928635009645439831336014102424255486246933249007105217548803393541676807811379341822783316402746341482875060271855928421166948727906896952689473561368637200922719921328689461961149044189983736391202296893800084944752823094417511379142400163399970683318858793815972755789975785988369238962847992693126571489781296596323409135919728318643754119641048480468769155055719861490215334663675835692596092412004083280063553693629787679274641738819871857150519552877738989086475287293297280126732667127662596947512041126623492663357913494366030863617713622882941111000818516674147089495808890906469499657964609845181737784608335011910538867215427381642403800034769686284986149185244723102568579171745596300911058868819042736493600428277773118987462084751566565314523381604840736620787826102929279318174285688899958532184289882691709987093849804581810899912922321965567948904629917278633028859163607194024253582989224516822126200755503340871427355293044083473175936921378795200216275425916145508631890953322038349943441468047079868945448274774705470299880569897047746505289646571589719615647139968926885794370669928655289853874432588715392760904341822954197645771095386900800090823722398050608709168753222258453590829528750826394079032067153715745943390219270286339155708398672427969424303325534747897191389666575099724670872520475875667699260821692201974197067857820343974077821351596335716006691188839270097298168260020777131965817456710957687406220886005909212875318969772977376516153523090189753823581623352609526437436854647659012705742117277428561733239610638711355906201414150207155109045298343500449488621879237159111325339868327701812601344782670971501578830221628847914536766738367378535692262596777858148248237833480413938219539682015400311515275109892824608573001330678734051123818378683623950271220518282489117537945744755127963611467109218607016389098157753350841633145450717558809866969307591551295892379757215305277799174512217110730367194192723524826362971495175544268382546014991894907524555149596160236287131592144193775943781771257374944836989145056021295180050527375429199194051634577059309573939086413303479112161459320223795133468662755967145678798599475181281169317100683717975490337921463861499919962693886995518107493982577824773067249534605803695194988250490492132727483785376615938874696641189901114969440320986404618227283958688209767308859990184042176329666484013941959204029951842555768677326903988660996452132746084628456446058159337818490404532852221497679404673243851849584090117515932312179899353884028789972290091164038870576179303393799891083825184633925370289431635765696050849851948020615522973193762316117246380019409617186419050747430844387750198138499476724840961745731713298063066535035010212410115884126320257333119732924737101573968798231771458010082015810585903589700388704029167694843045216661046881301162395444641692813500280968498852137073435203476137569405727512560642434190855692117436423261689640709128732663586332384389628696711105602584376908582516144343883590196300077041496647147814643603783498852989593898314280152865592688627782014638669688671889502080917094271478151622964739063271273162300983075284060693454496228886747040203725879040779246024825536513977028972092419744706610823243029253648958892170028239260821620289530081932049678406009784179409334802374924883828119422705738134162784542180183257251233544473744430982870344709278169278576933590714690683121917461079661207187108169661808755862826181149960271486830466080847071175859891892515550168549856657078192110776268565253932368640585916522735344949454031495278366482231507634792028524467437516354361503036626591146496930190770613099604763366295605738747514992310846212612187633385347555521561885414109578950666824030372157292009684204792128413971260012514691899617205233275614573288934470478429443758063227463988689735256878536586633754240416443060190717187728060738378599000247093747700009207244853155874283863271661149201232638119005076325099548993128605387830467864853239487616552636061068071451477472212186097678805753810082944660225178082186207059194986233015009087207529762471295665537453287998174198640700136042781309335154458950337403603609340746848055348483930921017945616203451894793160788649281075235089887412913253172767815603561191917888045784636983087601431854529389478412156253891420573282633016190871282771322723676086069188763243559409600346691585854310724010488531686350577252150951797833950425810342188638931937910689151970632706695900223771157579489188897727623883464462142256270136490282590429173023548693009186255455481440597908946252774595500869040704336385591563946804877690206407152864764260390918072779926044860710472108380809206608092597882308057287049287626079000803764965360291011876587427341607830329206988269122547079230223634258315455329401008757439760389342629401196141139454582331588630641781668078475112241986859920098838761523601353973042615315996867039888562783226096158771911499953157897117744483908011513200659744519858020874120890667191292744354166871015350000549540248515515762936005368717037955975268856676757134457534328047433957753810790339618895739533980480945385160120032357551664809174953488856051665355746157175166580905064529149585102830519203381333753025571832513488497041095207200949851052685431667565761460506162903084972555518724346409702532747585539797965198064892670255691921639866147717787590370133617516208886056626119935561837170895847691955896419603485397793672466855210100266440070666479215551300058786158932379632673763141120096034576061719612917519613164180536741726290278092259886293748600376879470165353497723151037393541793606651077390314060715203239510242413696853281350231877818907054105321909061519240875833359775800027362195914692822457305426412552104722106731319153525028032857921122299452634809902664179757525432530416873881296413860244879394416176774884021089455410413953049809329572110949003991762636322623917831021161856815520330128319593851574590910802678518477298251328621188067394326763590801451985236318442224157488506427078480709953192543420771720251835852855025124313794671724376885252745772831016167037330180447933843553815244467226296737013537778094931782639801448801436247179187097411292618293554485765059618228535909171147754613721652936402835429769021323158463456514862741393818996895030002648266364961273043014215365686099209382853918460426964224447267172130740506924667087249487747673951037902584278839991571600640507659627022569289682106608705225609892406883465555615170193314117808155763103893174460472384390672004360108445926915760887826487046679342742740287371752833243676362407452282369113327534708295010727607856547750859470035993248788291672581241295116809536534614512200026496536114413522189473839388087841138217028466072047956654441242754770406029156716573707518246159610872102563040720193541280779797489636345361205241576147448195713043271593542105188151357919561090411504993498616010712547196858998939123331982608081613489080119464333348635268881422853453773981317598525139252110618680978722101277185658629702606927948666211944701473026296613947925231204202489112046928756341123385093360785271834954932572406949549575131386888518168799672420773970188239816396422360134447219342555229121995460578821384860920448357003608250285428868854624086652961766681074765913196715037338940167968854756376928484670927219126386994210202072969110921111258728520758953924025658956352221377337063105425403356536843400491990946985073797809115180599126391741543941523816087037383674850440092817149035279330312876604968938825459107738796676970362222488550609993395516278877728618149735962039652269861295303731621722057683297425356037769713031867242438711929891718086291032729194752956406405915198337635850565677698737913918308298038520676965989593071190526253938362792887565753798444630679793689553223596180728156455841711891028031203954602435727641829071507897108550033404635260206511357038977828194156267660914996500598804525795058086005958693496758368953776537599922696659868532559156818706688526667667842294189116681797362487997005462298003504823625327107783768871540811820911901351485951944950682717448890480787111499004325481714237035430214238225767636483176956398700233378173843104398974508628661435096509898128388643598129233640244720051481911914419519505272093377021381452434592702435379658549809320960340172367270833079844860819663113901907029108382481952684799405078897709274766146132680549139910570606801892235477533201960804543894872802520696949866075348348745850974537566922104816834515089590692095930130083097651553929190870060508834033369062207609147830881353554726870573389397826192031809892618842214584242210190389209797383577425819610984390350447489534390018115726101396519489562410280168250881724221998348541808374692560848632367058142181966360413509662071499043965180494562630170588001216063957473333403116681204821491105830606532647046489334974936800785481095950270735798845399984618435048845556442336348643352577141706411681914915670193445561034117403881066585800422232449840013181108035369180011311141825555677030078786770517882982620783243104416218294298128129276891982078265165078275209142658652410074090776634905120661865764035046906140586071257352454839747961110187118473039234084013751418714368010445246695233250520537474116701476732950109629133460791027284291249531008497380630758393315516495639983923929580044853182448907416329021990472368136950666648980609656304004648350439655374812916478434080295365951183156878375563241531968293705653583634892593550638094628770883543837765718880369618755110496762874573593958766845945569033493118368993285745314511762817419952961827605011405139908337635639140501612413618053782194164101684408674360293760224947086237000343162742383751238265661404205574599202853903213408977180602862030471197566258683020209421622991914215176465807634188768215989788804467232373307717017732936630311634811911787451920632295778526574168840056512803932623132597450849437581331287998587021016901416419397579458651883213819731930975614331609448907618742549413205639158840875199848632084387759343481960287631607007791367952244916940480147670176306151236563896421795124220008917699751722726055184466991121203124695641878779143891075579782231788559211866603136192805042834716401710967831251509222473891913172035806540229799351815198223425271469145494964687456724689929931945004308401449478303718456086544423323779918254954217292053988461866398920340713517566527440592234907123227488462320072894558236119312518656228665471992939862317935806808764914389246614437636963711595538922674036022183652586462001729964200996922493884677143780243935326822751876903792454930897668629068911396076909145532025722644459813103598609961867159714891808204191886422658004549820932503403606113833717318859413066355515844530846543538655076149331925066860329193959347558930653710842832023866521273494100731176782205019811584502590514147183605531301671878837670586012152146252786988654952395347173055508790879707616023228942578589587978463891799961474223382123837040362364574070615030650624811325790701976620988463185386462425690308370261154911193359046779835907076621451509120179976570044251171688535259415894353239191630599992583001352748665679117675687249669381239650870328402928437845325835132757307749448803112479421383053885878030112150445708909179011490269392518013665728117145143822525986427931091235883411891881674455353612041104935794603260837982362548853808013648909400207805293165740696694367457468848456423887312796500659027414178620804560677317420914684515527177360399681125913570816839861913745168311342158623475875097307227257937642259644688920362277176176030825031008951004235106720481903998683342953358161637891766364177936085069803594076119801213909663476496548478889227931413423396511396867771570059393893508370685464895089588384843197020607035520478890444386971377349937626248142178047125673999578997817989912929301922564685693245350112806339307142687569889021483169607022792051012536091798336036495949059516885906291554622094428894735905181241725398980653584910147030114476912628608602197036051397011225103551277309055031757698206904061566875709814673499191321326668053751599122007549132019471282543246573011747055706655296048265427988953877121269907495950626996586880163725099416885174902779637145969799420840848684699284540088632160259400340164310569546881567200340422072197981213031800111678376909877516989150161735352655929801166610769404120335820304901283396456458141767491842265873875957464495255344026364843015858764461497148463490723526625687641420417496358664668279004519596362105494935411292359064536861170824433488386423263436403073556949242041834063711588514461602657115147390550015768024752812502747690927690301644721160220036604591473378861317177367313774104079880689358750448828794211491483812048191677744096596769978861211553226619479436123151541733089669789335890220966113064788009369709879203149538106916019662932853575528501578940572165592129752778333554621575362177668626586326346833261979618177498169961726456804693599976238753264102283760093490998631313934351515746211608668027339514834040715560270389249420683529659015344793387286213157119463769607804118595647755396609475715146702691191978380561133481152948432303968728785226956738071093814698654749200273065659087865681958524604962915190711560085672158370057231973315143394352650929195819210294602246740234637877106989812568182245986478999688489480071938937560805557943207801698489406040004248357775636170376380748626113910297481107254439084711517555694413322894417671276329509338593279706570232857162699694887988563699139557642075388164195820946505626679188711862997396163984800193972202783081962227905772436577751613061272031116858933513475353982971394079195083596111436488508141755120022292882679864825588938297501893745185077061602547506883995574829879233303876275599219879181440677193205422435902547479475133580553389408020653204240626276587262766321380696581230515424572557153682831758623425071432641872168250319102535983822667225556126686830500992489715073247080191583753875442381219383948955582650104914213267009725563338101247208979642267337669774906667849785644741867030470687436618471337568536109673551506762033803801600577198258989606390357237109866139255554608965652205041397760523015081896716386259401295121926789433098985178909337973747488369101843009320009456155419608832448659169071834760420096707788730142784783077704404332235467438629034896918170755870949344792682634225400214237232932715199991674289937952778988206834704138228261341221762189237609328613529176834701694094836199703899417331708926201425150848000055320384623209404754864218367947975612518536518899732307531489682309597499877970936508556420335970137970436465783422299722159943052219512805540261516916505865392160763865508866128632445030845819048386343305620601656156057810133636534428058140366455338231742404784849211280174260906396266326628483096990350189760618594637897239950558689770196483346831306037445033902587892540350978252382921321623522039656464053920161042131333072679765521539303822905423331894976688279519186390780262657443878330250214487300533422948538511258994046053353723628837706418041270291319497383020086404531286762685661464711371037125766786078665461656289073953021167156490444677645026548002406875169960656758015535239020494669182802790880403289693972236964148477287303932038867298338084464319697293890341067428675803933125363926701469817447061591266872371297120754817573200724198234740308703209445048688016563829047958160758687864573055707203151845401479040901141941503379531196581670401069989264516706017523922732278495667928780610869812578169581038884759346633741213824555929547167909316390818161553610590793347747790788160302242751091558183001469177488010291443909205939647338867636041571294823953553868005973579473398307764426937346170557236186467409894416376606059619388047853827162370971542454629829019938608230936741560443729015426762747545830054439869310431212754421249666798097265428590185061975791918812907537708907341422279093234431500961863584214572527254203752997375809021077430660939603632480405821220692303547623313364243046320286421130301088877160921398988129930737941252202479646510333988433330141012741828302456133420060656316508271546557441236222915056289976063815602053158532061240541222427309705339239992418928098451982649153620949326448743649899935918878364816785348768930314998985601110256839111591249692471460493519656545846047232551449740729735061749955903023637410457881187616999845976079789418976996851618219949144344169921146095550573229524088401101543701797748478486062625451394764876924284819494386017780618628784906030649616130611218000297431965800484924124466331729213241586020275872369293920029201072359920776731641403002031859847766195824115155569666832001215075126282240130723108253286618064666827063350975799135051220146827097947768884614214796964773718268829826357666066790637432619844861556077267433738040026645979668213962914667183451373239336169854043380255826055102825048472448905120985713401659068699640634124761634917438468199066771979065253597627340498304872208723553999097006004336816068840504359568199069674732229541841575435149481629978480709592588904744307079457793964780630443162361934433941239370366193816088100046283977552841038022232620868095384148661738928262545843166500302877025202465466701009999767650546341774446932395905763988424522231147849658322598731159608608828551231169939048382037393017178672181298314190576187239251224261184776238522686906308508739696756628756089398130792959172601201896467818269314858717383226520493735699554083649289459418241738154739086292916120108554055815377590300459793975877090452845880416458578250309376718311630920604941695751946714587175295841254467950310561107619355714482732439851715849583871856488098255650722609338789184088406862417337581173324085742927907994505251278009931282779817966957812733891263650094707969129838918415628841080251648990633474144799214929284868155461953145572755574360977270682591272897328021462681009592255329303507595744828315460630773903412785480353371373881035365871529283423008732284138545293192261694935014870139285297860052953380629541999351685257093642214142872589448586607884227217934187337386941258284316346258808038012636415043894110635367995798783985267007682748826112626909830842771196664980565609542113795771786554780650212386438957944003800241256419953246475137256794007674431396366451712311136703683365432479324869542950355067224138920125458789908451803979524921670311245331716073059414991168969504069541762713665476211996526773810064085479538056736683545191332237556852327564662382078931557500545882924207979099553367882318234429942068814990488846407961796712323130198752360207984258072566057023848644411543766625761860099321470202117028476235480710120650364751516250213047739796391200172487032542950934122593338109499833773415355756931554910842212324987248669792085891292410074300519882521230848928811290570902434172793751191498255834515234101229253579612945926677668063958481651750581977395076447773111929990843080495530435923473600485856321440844145898635937628049718947156872301588652410551410283507018106182101687693945523031942231456256681002253063685114719164030858886167620384747943598454136722487458007424518865027737341675713427102457722241592630811711821127410277981697467907881983918938462209557365639492504703575418740250223652595572612866930794732824389670226092169521083733088088722132709645947028385350064010790573914471541702542624252417383413391390336966598924500023212911221046019060603350504693475631879060130392796032625625283450238421856535486114151319287693519820631389602979634896274792946775686153691119240740491539392099247271071680907037437182479416985379687501261865512033353727113509742733477995572707994609781839260895746277875111632024581190536874928218871579321880228281603070020838002138244438275287247443456769747281225650621649349333551273840784673659401827682129961477803303384126139624753036134463559934503429180922990922096120466545166403186483939388482417579354908878316654174608193774608738754995909941878877573105024847782400941012654547527532801966543490808701193844700730379849214688308234697326797134186764791241175820107961258916697704393345101283728002067777085972343814435669470408400354299582600561697857654232039619042964076162756479144193445623637780722451013775472396574702587087829466531331394060663437743651282893265570503821662834124433525357456185929842929973123007433947039735323628208420938905079068708803928186871577715183793714802009777219223540758021172296177335751962389049393879402029443355944125192545410979160354805275051734775761618129846931351970732251520395566066577610323158074879678455128532086723737083946927746758359633509468321830911905349321909569298532804148557758196356311237413309172687234129479223826440354637663631618028754435468641075483280001508074107587216791628962912128358202027294674129129435483609339766713861755153536532545079076969622046170910882615333839404500371779741672695985005682374440345016304412612213953242838441490330084367378985380202959287217341194683918092885614419300661819045220621984359517662407821138915778765761374542915791367355415590611713660160522404366608042782864923845292005339973392598879642402959874191382620051901645013687620776624160797736367542691595283237352325194988506799965240329468108374655423183815013273462584542588141705964325454550518870045027310224671593486308063454875537666678879547373269942241461496815924187588483209358425237670710076949395086741177060907299052046492893583767138349211398957402142934147424313789719059394358035424158818101033455133691392496524845736593894743563597369296023744500034577198903246117393542752735667033108788345701724364383769118588387171420198043599488428992895203486076593172719207909799713289619961864125712813320240686046107536331374316827416533305157168929471248288050197872983480763237047213464824294352035795929610255893025424677590983676374071686746430897777883258475218715482767983969004691826875799402897239401984604015506087008513607088736804562506742543428409216418348346018540914573786672728196729447061925866747844730249405703945092548967909365210114516532768821197275070766016025050366367545131930007799681669012580558541559231386835452344800902117163051673006261758863763129888200180729821678729973045575823773313736515014256283114959945725157508129907559814080645985171989890108048203365689057548191186940540817237803627171413696811789199401433538791448996180800901436267635943090712903628396045865051994054971612597406030363096398022229952874396518142857000469503733191323753624491909952372081231259204312126219060118901724861071303613090515110502287396737528796292302322982622166865136381462362613082700833641633474607486318671497659723894691002331767875553826263775623293618012624212012800173802113590821051739897609749978060241902677837814631001297606821898003920273046507122328314896785980990999160980608239149672799952825479453145280870314075152344696626010343941872259457759259028955934430733608641364950746400872288817496449044553328779699421628620306822883545496955505297615722239150793445514742187883915042963315076174538191179115042293073133336137939788713810011235061222936496108358553422721500883267129514534148503468858233207916361161019549930089684843523258888834439028614561444970252643467428060842171378751266816493787332125083599542835053319099735708053800271144630154496860626576707516767773552169634895675190024352831819539045477567930580281402136292480174082126670831117847465860078273680107522775902564653644631912816704080288842627039813623816475449788998506517005384969823545558998876833258916660616237784081404178492254656361865311099776944583008451384853723374583198697572865661859847777088029413639677761065080476687300474186411568188612079250551027097893651675591229987981986468697685502184121716334177274320228428813743698740173147010235355418275518738304050356379009521200453594561867402592088305473061699537384406804873196682157078256374730713219597937325563351746685180742962957484208929572851936566524734690505262831564278949107818008579833572948993013378086111453440961074467609105071927902729710952830137877177195913914897663640342901974638998846332287566975091780479224818518687230928390103902044925111758746836265147386770224440407691941962549659908513692058983190492226557276578608660075785904508101552443979150610167193906828772260050016500999969778955241867665465474853646094773427492225050339084847812102542192290883704681058461578827147722916887760230822393691200143980942473429783240430030205760821926575804752988147317138070129330491936550811412844579947704411851752701538305314946356762244068838257130705327575054957124607076908983948867705266846938335094811452875275029311782973110879394884413748324317613141621427134626897942281207077404770405376765670310615662620231226223277748662046717960100875677863030091609730251412522584940550699977271024526619449847602510752368204392351914156523005340846622841741877922808078323344625523032686003151186121040707250149666653692382540164383310081141639980558896699880036564354306731394053260878428871943274229409965073325705966021578737074133049152499423338283839702515775892420999107431312688307259737101793336286477984909371383110115179076739691194131327118293556663884589133287411262003254338619113444715341837886919637357063219042308713422678990847961160534860015829233789358778171393928621343920264496376515120730886409299832869931082922487678851747145374704008680009840836312339891563360650752000337423498403523366480765308504012836543700034623381945448784542457812765354018433398415618906927906302920474385197771170430524324522123572494463372292794676904418297204179272660527213200999205557519401810516597729935085948430323560563072408547523705359394542561410630647843315693595536746010337959666095754485844483650883615641652429318002247345898158449269063724156244806283818287312062668758043327016060418458868003099262379702395238664734572872902592621970676715548003983828612669504092372736238987973151567359146212263893179039651290355049461822372218979498624037527999233421512183352076593959462959298529525323176343169497920080688009110810393005002512923244048627216117776875955668946932393417587147487407306826396498039471959521578844683539139895731917183202888718875904123188427267519296417488628339619571601730787156162795429704840635808810707253003581882253837370033587038305388769640879313710206821011076348510065618083210744405193479187875250758776236723917809569889467081080979456423081085514331539408480648804601373995532023903883291341057609384674455180937166750501189574099090064115609055383689054565200547497928081475989483207174976319598586588622005770626605299347796626577325373946319442652344602073709601208329360320810740865941942743612776588926958758278622685759644109074476928918461559633384273298841091855098977498634711881186413907227358013758480604049743550808565070920301016870691125009755261713167249157152868415848495574152684037547405040045470546010527739192136784682985893978506752089215511443987937567737557330661368133445916346256184888213966228346306308891072941566063896372937171588448650571752682281641683281425347343979243911758028945725637106811958341097080487646208205312054900016231355192155463252572950025074134808589496227023830907484479985719219637179907560230149464474438735660892950508611195754635582129869126119908744448881339912447172908823868144022374113548618536323031330951230104265226817854003920292155294652902379618467259588965572940528810487163505629055426480573818037305727867261404228434436402910342903520752732197410727553627557502195169182073675863852256190601130439606202159904267021121205416252142683730409727643909307177297900789165340483285128744544518614245026727562125287076508580058608551879359492909412811955558763077137439632358848727383093273825829114600227909219426039338463224943966435743870917940079214523640587865917289829558190555696026666231145122343884137654443250092233577728180224813984009469555477384845737109900150220588226525764619428631776850447268039181036627899655684921582249859262603965735725056251373621631101608558510299064088708612171917086806752250324055122473460667559722293109935260591008514372642004108972653872257310952159910373440421393267171106660543717266099058681998545241022750131161124570725876387426448746891562804594415895019386039439363655388526062416043843932519948184103563170962392133803673022173040104811328802418000756599532790843975169124843979442891505962093590181148107011125835613791454944240877398978580306455207183794235241186047863704850283242366492213756331766408836015635487762036104169443797899914653536218690645011576241063582429765710876289159718462651207529851972056314334296588777913228896296467360617060771488078807169029284822110597826680227928329014512022003217972339646493548705433889668021204390316039249053508216876027110212393853440243837710078795661837295041113936973679725819026369916294114756890512774778955156638964759870207681433623740880882100085129279883307186250360979376820660116302442880354672435171023450711683966702143735664059665080434293674993157185076749352858313670269540427221224886245918131404594324619110671081299048558988265946106903334836560565243873717889914036120387721878620101977991708832770528918299178109296452294082550489483642632517734646532001560331954006256156414347719534039348784470163844282573206936649554451701002032617207927814330833333446025703043830187788679532433121792328000709757331991518340024756469470285767324788322257877315065246618437071082279720063644563423521337418719254281517535654776046522951820260277036748432134708689603791662601088201720047711103464067415658734118455905920404651175793747607660454896863690807985010941085091436666810019244626950363630124070475239093905262671344147489486724792131484150708338142482775737454282908898341770854965678847923887360946583103866156460977664543435663901785179589491107438136407745727922379575856901367508300419782976501266029095372142606781646355804647312072794796172358238326999241769015697250336682849335947426827960123886619778571484846764283597093547387412757138345178239234510462735737142996238049000137557903353687593915337164529059211633349893011729204039074562016566806170287419699841281993747324844411857978004601617517280082202696642931164999104608525879122975458135404094499854831994701124049935665710803349248631349374920534015786876850088346281848944799147131505113125490161749348245099833174392588879718787050062691932057838436434766471195638008496734480758332636722885310331652611081168862026187192844092912565975867092823182959836333811429314951171340869262794081976589061411453196072335429739586509978227781486166340300635039221289850134170308077479314989008031885461130732293743737375015507495251171817310875383473537658528098840792487427505208194321158597045889667844379353267827134879795578308711820527460083795968874795248358157378772188608934032545041271105749558099835221260249798831153278798396804890441839278262243804586333829349863490692357180556716475911935947126361517303416686326115497698919674895608712288418398276304783955266755321133962742970918920382162033616927816884166053429323274425405620022650151253370265649268753201762225903631005801164873394958488142790088736054653187643509120163520162241647258548211387566578668796586927562034386431259538105116925989964404189803945796423176109989822423023547849879898450015021535160250151870557518598635691580314271658452983102515726849836343662074747993922210691013943284768546385994257656466612768520728557658607874928758972572894562079012270120346770498576798837496938161883294485335213743567191617420901432700847399599279473745423165807873508398801957378555850112557492749447719822939477775948981443135789000861956322968049777977347381441099865988986248044869222163224416315801174536778695049268973777149761889737763669912381606216129833191909307004946871002532880973794489577347099870037640617709568484162505657570037706753572885876702372948077361345336221751943487972489865599126203708448299468295924717148195629856659738396978403384863801819046159381867078080054687724932888774356864596963474215449976442277956101794895000600698672991004915198822744750358500971387731710363668851495860521516749186130723255589064212528798844650950094353771726297206660226553071969065621046869136201315097490687284617518650770092714849077136820990730509170188687311139986597013942812743702658696643899199975560930319984170898520851846518517358117084213535669332461175741981340051743869125846441057738206704708703842124288436301815267698651162487002925684221760895675505644433847329308230448738584250762203347284739392844641446350302816948656641107451519963454347677618348598103805028121044673067594736432622610053453072667537587506508814638749483283780221519053034735796310747672171223106640334120883614034356046335027922253867761840082438725950996774558107624015626843341715701013064158162767262166365083105825772353687694990445954758834558823546088778161515515052737179277817868512253591062630320716372291036068839025272025955315804141613539264618549332786735264572743603480425397377714487533469826190448491554394147354872296805771652950881130940287100435717154225152735186427606916196930948696432600934188821340319975103804350683947940473038468183001489193173913779155128485551789741879657743741062895669824073341076417556156634998978624125082799484920030217781765697195070285873779898475193754066352858513608123288039212381413242685752980325806361058103202136984696532885113079447211301883500040062367673753712324509017598241617128274491353850516570424092550059350040659612095722342701895478956131420404676786605980305057484834257438309800263711645608754365283667509041541005216099138854357582302098865175854894144138613321745838394665565299146839638829602436186223698125774617617400081991635965812038414458586337963648577348991095516749979250174925108567791134607554329857643366364933541824917562387138589753092645619280875655294721842367566466287404705663233898025752330003771054731128494436926191205953263015982969477485454927815124159014077498210524447454181108800481381443063180071916476507115959079278473504071589485046073626114459705749381758387722923778322706422074264558357963994599725768496739256969034855617034775369458118231381225933343334389264651798204026641129239574384333489316494819114936805949337557387236629480303169379599636171470474681097036526650774667750945502765851120280813460273401381264615947103914104249285561916612940110233362662646873024743176467491722005692216629130675502289416102830966709387823375567574208360546712117213264593860491587837467472304245796652954835212109433653237697570249327183243995259559453927148731742344946844171012989164634768382018614863294885987346477089982214253243623909142311654977915933186501561342302177153195550969570099671714279134515032262925308786558326616991926166254340239603218163956379593478813904497887754334332985972318171867404275945501562152482170393923345019621796602691429383552271872406941003122801237425077193312806638936503963465432464244015184045790927870483493298719124525817408485198062738897408571183378459196122614153122018036765933733154486742448332378635451933739539839754516607495278642091782500917617468571579228922164878690051731504502527870463863718564099361998948586813796895242233183271750830076187494590918433660158252783865492485063199353598158896458270445505941661532326096284204860728851282740649796992804262809600083720904879690516626549688289006879091557282081762797852101688082164932732897961595365435167602771699056808110556683954610539762104595609652905276829509143731281594202222952342630146043610474871343638991948223740744236055220869561490926303112063371003575908114969379050301153388163408844829344196434154026905966819179501641489620455380264023524550499274539050949382108844916742585110306448948898051312355186019106856933976224904998074053208759651330519322081590943287359768294429380726701772344240328426636480992667254300394954716521628816461307182355479385303508375329044170328763117290679782852530432895659582659453806145650851965561749005157915065538477192984713085056816373638331475043276754312408872554221589258205492767319084146699810717425767981200277381344835356371590183117045311920767295426955582358355992969359104520056589035733041521742599340171218647596963091656431498148156983321651889028952228554868228146216813060162739340678472784012160561102618153722244648385185341801357431352624563736242026227009780393689623070537027516150926954895724610188904968443272264892411653720384784503007874430708331390061238972668533309211949299336908961202571252805719956017744066066843452117491633991820406019650502670617926057052273860934975500912219590707768823441286754476930524799734170774047164563898155841823289046369190126043413199632982665449123226061242685871581961518544731671731899082254522836676109029233816213581307044958826931993084899750320206906407472006405190459438160764661109704273974412583392874523766537221289960205984453819307229855614212873303258273593615444393788137099960470186903267078492747146498765455158292585994673317107323395766940267282909601346990035240530080068344362712030316602324173407329797546639423060243526874540416384103032378508329874779353934063687555436827431465713776480699678524356010495347541302130334397887674345697145677857739030178819493249852855250063719495688280931437587191173478669986032915898417211280215911048921738392542690576143510361473181969585368671725339310949888291714751636937638585720400367040037890181916805715735805886968958096073941866487436456062505080477054231041702318125934538483397915650779002214246280627083366394853054583614517201567052018012648226277391125962154350713818057048110760301001873768799219213895975836468509885502422655601157491729916013003944594263796621694074127628551873790354842067602861898628991025438245922925364234696562516845868597187080902692893263406400280414091921491377660364878994640988800045693936395518930217676104148723686390208979802975998814872748070572576616703375274689478997271982324331024535498556023451710177636474086133849068525995483194743713307094248137258965706325608422313558678193409591298137007880027009433145740271390472365536094657488807271749322204663648635872314451049611061879015254406424638491971960938696055289791729697789159778087735907097034282339354801842945595545433964506404083295184298341823996401104828283019431887830351357793471966681451726737230324680440330366825281403179213591008595112430897803323491921930100251941980050568087530160808149686190983632188574778999090038383889526166738507353914536589632214706445062479629201892218282209785325149397817296028764556412922989371431181144328406160632599677731731089166931095289237810328100808427477374016575615558020351107909182575363428076019192626417350001809434176184094974709145592233551722376386217984669610628809973921413388916281506378097816494835250830028476421699351254696920436792081658586839039429551558938538840822648106424140595801894716789631879109463090403120564533110105944558155665272597425279510092223278560613621833447694254353077817334869471116975382569799588223482559523967897432094618224665176742615030529588467662679454743186289823046914697549617579981948557388670068509046377905661291482807159222291462861787333071029465157703434156114056882238801600103525711662361049512507616870743793286220028558442960877944876917956442378019806892605493743014797436600516628642365997334402498422775170512893105158147226911362334958695162650259643465991815815174390280782901263041001707400688824863001891704917108647653306999400034099400745338024319565558686128921633099215694496927119072286203221544408659348578118714269578775229567315694192809721592803461198785523189570779734392314878364481353580701646446432614378653805491917956500111176860665926443974381083281098699120445203964491002509147689868964112533476597673326939736327802697141971119177625866611911647093387119527283824343302033294264546865545882673059246287549020659293612181099867895466206509794491968394482636064937338953990681845576388718245824994852901561293033901837411405837790767688080601954459000100995679269451978373385808671151913028477710321294890338007814203495255860216013022532410292826759139353561429590950719067370739181161516296877100754623472695730343642070000704269299017499037838149982293573153753492492623418284047654626754864718007941876540789665344630509365823222183321586169350960836788617186883334201970305150538323269938991519363689129998812265712059623922777251742776886607447844929213019979475232947005840125062224777059201741770159540431094575022110377724314954756572431174665985839590191218229860685027263915052520881789349877835301508851161876172939630877354466726291910078588139941145541091789652809466738880766874936360956463866277129818422418792135575766260937770002178089256529645118018327149913582374359737698462895450441880108437154693577116671005341300707420921562993253328589800096377237733401100606528199645329006663105928169590710831051192350485639559417745314184972625642190397977507942033031750231881843410868143179996263940115232594020386998193109187145892469854448904649634578249030707829589872831373381679234428773167296673813307197931995315794709820479170919335487674875928983338046847170025910857318405564607578445742083761173389021354877485652354853777435786501058985049499372216261381901049802104638658000781487217125835107099049507871552859207001534505213655959837285440446602686935984191059772478497051408991807388187878541938645531836376504304179684305567629704726632561867875144819957894314715258937758880130116203696770752877616938111193037263482156714867892674791442947683634707087095833589201752805242206539720105046137848847076497557458577417659156494920316939931154839181969652749301845719275669524052194854189685465671886458497452719462167192354511858904727647295093344194728259344645269731978399289177818904648436482785241184582006890196453551038561108920615256355934303577842525135409007700087516033427692766195617747269420999626894892148026763753597029245278632132832609371934613177380605159417487609873092017124998659822616243836310630180703821449221002537185418320817901038640961718391531426379157170476683791352755354555682660506827607691580254053129144007580627297106674048839524360179311246462974418154705761100505263463832531156437363158169795625307524938650532866756968435339436420401997032637046529276693420846596181151742211909366033086788912412544979572809645507471435236199908973161289638610476461371010582492445029842003280937553874554746334419623588883420479262847024634758380675290912675765568096144653374879300156764236056193402481349423269066186976714333503854139661207111731854437222783164402135321117914475480266118139024104168510755612319091965286415453541094201790461524343443884047650932413679937007370086708171645599189642625240600079460259478492517282787334082816272104598600194348322164664738094074200615071615496963649571454299847879217560913689783317157255038985247912454695750645012316183437535906730597823217139878774278573850976775310027333659204549072072998935396707735786944541999048495300361314782912029073193688494534141318638661926748096927902537622449985400216885010605189042803517529460810604084406452523346126539011386537272433128655709326552928947349001914731273300652515963045832480899527686873481309919078471439897201876835797003237587912831424151054285231624639079792355558393849109292760287045688445588804633511970616591550194201447616121657116524165319322019919308028542475174442255232565611213228773878852297676879485363937099568099176859766375158836415407145597225161339339628761063769451443598523591968759990989668434759017390580175248070841833018200095131339394940442336679722273149666028353440499180205521601709766869379822015976575779291053436286313778312228662584493494729119501170496541865467153845212715435928113304146294841166824570279949442454206113753642942567147504887945210574034176767446441975188348613289383582217659490461492185409434333588732428461626745139872523288148392892708037358316432589062048155670187563395645968673344361481371599349975452891457755983101560689254561258160510679937389371822871501537248273269894596670137637113913346126587785178136578434635196712841451163814158427256471553002837827002883124088038521706686089343882527762128445787446393907660453617349513053210120504443048705481605044630997102683828678323040638280824346193362230556094862627648989131527809666424817111167066987121501259449337523228741295918092244691871798342025400959844593189974435034765282385866058977985280788948133353815321190845900266769868256212012193521495920288564551904220202655764853350080456232474571213060867753377389706464377291720113125137646170307395543827043901653744155663052619941094275101957806008628987809399034559236589218198736871755630275315993808836743202454353179432215634507362462027948029335534342657170355134824187598025785719564060419698673408110593536323168826521623866303833567209536742779490125597369383281096565701968394492946428303172267351399280688642129306753709014378146876733151084616902406856075136329949571722628461965511228422793668891631925611827570589683672459177559890381181019529602278953773787673233587531412104165930417583784354128989366002444673366506170252292238438349255729916853469511523595144770838662051249928043964971511938025543399767458000540565656443360300443081455616308604575021825567372677002507699379317060580054190279401535550596985772011897164215013390057692480806317951822225857175494214235193250618023480591759622009225839865272921561180909429711633226955411071830502307457650039465333944542167548479594040445395110839775713558267090333130536412220594173933413438101725433619981660410939355694145784026416958563426138344694711116977287672181025182541482632906832664038101921538439118940740759397648695259552940808957123107184000138528945368658150980337442968949662663891729677789413612320344951026450927772059775899773815095211858867895955067007637765890167214878098647973854622651073662242717576426276699234440008230273605188142412678727530160446386690774753757987978074425721843519349184477529789278343673935176347674784651293707014695633756519762529134033256889065651940743009251907663195315669561449861335526888689842112450383333465625775528564775167054380675655072145972139833850327173369427759891052474983448499934794467430446710760033981363890372696355795088233157258493100408584228093709402582703764800455316545600904815680224439457023026182459123562954894454662976419398640954943846241171860060883791124706380942878158532374154315222749074380354613942316030907917367935932569313547107301594289873073348812274362197062877026666694725683011240243030017185245170492402256021562029710507423471424988333963097933053888107999623350030980772967569463520499910760313691485594260734871024766167911941949389779607010844106473869005142236887005005555393327809074552609196221560017035479546378177552060415734747031048733060159683090852112740397068197720095758453004154025865109232473471786226769523590428978090055291823566742212004288105255657633867404839413702969118729390959704421559109652790320417241010264876663224975362629446433857179201854150304915305172969785968526594269445849729103234727380572577943859802792342708401543402923578217808793759642926731379996623631838071932059631761589647169925699007489555975756508179285937899636928890214087266723857313014744315179843181275784564068828971259275355780667126815604940300926482125704211934279342281263907386708337758753521358644735201902349469281583484820624609714130755184959993941774618400002728062219266469087055557548251393694665183085229715788165778400859929138650997894062557877164206309184453401087462228694015761569994754577104809219122792463408278490128881040365339534343611205060431143054963097111103517015374725466223998164128782802643369345603312010543059341602768187074999047450236506673741276040881036525585882548309689169790388219265965056789573033864685454643061676414491957051625026118820433300301885313374696521557353079563681583160411641300210111199870401996266057345205713290198390040656214113407247805530779576239349164691237502150072700339471375923631922495305165277928127032977809330959091059865241554685261304853924476438175118937057327994370723831865194974684307634535107714960359491625446279388577331886850335224128809198055516196727051363884470899800198630029624615109166676908135708875435859875834306065364526309138088873459207629111134465419375499511019228350877291811539543144445879096446748077705829595682999222299888282787832226470575443716900115171955565614565669169174838997869449737029096216535816590951882357278496571154722467890404505007335923399969578008700912696701832074240909756732698102999877993749387470139486325839377965471111852490699309005197488351714177544366043480758074589061340468645723269092166901408870499395644644970030450564571775679871411183016048649623536038695465468749418310360999105452408330255940839893760249463164605316597747793214920546481600765453107082445370207495810275383564708400719569537328783575679268871021283775609014519900910633428456931953918516515604221787449146901509927508539042950056117501048940380243965497105074305893091717565869998270287009113520016121128189680886338346013090760304747016740740450871600080028861632189233261303677254189410296268564264963535345000176112600339488993828870583432430431627544992373819644891096104463687578229511109252024680821094763102813842104793983408046994835907019883423337813192015921388669594304443142842466009377235270214523218417733137453184215401659287108242511167677812520557940503355636965764994660227305535560861621754002935552238422868428697198371840774470301619076503712897333805304714285837555256819221852806545798383492590062992183400212414684370910352512352822486793731906831453501425095007400517681192253709165227478335401086303210571933400332655034725238631573715192315230385964196650096213291445654985696819650031677253524045084238853323479289841564715966990718110912749682207823810158391728084084010894559750506283194701459944991046903660377739287183591528204409178159106747236867056803297790325181873224733330926295622169337374223785930683528452573295043752348659028398062512681290689789616402188702504650061255203191425663709335366787578878934086017294613428504910337048337865714660101365351546221879637958037962090162747717422125829331059706107270610145708036526856449459304868398932406386474024270532269576954459563320031222131494079652865509402760835483578921066859590554894186115490124146256560122520069677484303896416348891184063381426924720630730577209647489680497551631641318495317113379292556351779054213724398848778366366141505789200896357590995401628661339085188250983382381663886537107079531325683950089039087905879071123203269222758903596187279306730431973155916534194460828202712113997645599020861373763183870813797686208179382162144452838021466165049893868319381796535291504590202030537246791392322300905020070623236299501186604632446940315056741424268878561595197901110666607806575397913900382512643569353578476378408940576274840339883814926546281751994210259834521417863242403081819331038291853796804854517248121962669983951217329396357220729660038822076003703646823481766675614268661960054978553716412101576802551481148976986628578072490551561860687465687380892526790358564558407909061282711963206458314693081477615864540535436631640128367494185729781907315935012647232934100824411392448929505193653952536222598658835984295236607838867738535755091481102868004734157164412104599634727052904385305831074220503121771334707339589567593089188568008277543654130615148017135852496388027615961585694672246717903647066433920953706902275806638859338299130006136967948171069860802880572443841423995638703190195062913455418166475344824584204388032464192509349889416347320015970519062372702775395247024027710815386950555200399282682711278817036944918808244779766486983034135606376259624827195744164531123783226220974257620699446298384426272943451858551225660392658179943850790028148139481268229512757675954773733636655396811306866470488526570308512774241963308859887276706827981302584180900612075071004248748869537553163283046808523398574719622092872974464575452743096011648739818919319475897902252245818197033617522238683728671303460401496639831526288967100031258649107688036190032600368702157212484145083298697055185737248412944053316443219107544027325691386794102373078666257416810991004267081930857528131431161072662697350799479307399393440464149956133121096357071578698833123508510534654480202398976510829758691727656237977627472280956131138211139080817785115218938423458066459446208683050305896498437451068009391681632546321186180202050503731297850354167171397328308095142017817721650152494337201693204496953718540807541620909999942701844224984253057869584542915423569282399590825505472240684620962366898703315470244118433663025312025193271100691963113465642592545551712522338610451101371909991288079095455795275585637654758881359099890687408998469869268552466739896958964992763981731368230378450556943629071698135980721139242721977135445791815602849228627655151409728179820563471349986295386941015629253377523235596046121717918241327315968839243025025605649453083241059562774149944580150500813504620519332312034089024350322535702538195066851841588961076686381657639210640229751454815530024785645923824187266158543813855316493405603364797555847052362707518326848355102722522983961385846846056315049154213502074031898531803866261889970387912423261028847414434156355867804746916800746344671737494152376913918772792217506148417209423746313457571692631956900116896737956237918311537619833870021739626738237549251664961247798242566157732890350225671630653088467761962771221567613460584798853091445167965337689525087798117338178393296671469719949344636322727483654321486782764527414020307969722749254923163019175645761302525988636336539686252929149652731643718994924817532903055132715874479355372829653708991343989030151563549746948445189869342279055932026026705251136973942098861093887311133768117062782061741723386621524862882666350113775097559137209583109561915418855347739458539323087390343654108161639723443283040560050179259202060607733091656726210983612480941479389160659876912230557364065125425021444424863405248289151351536704045808745361084840667742768086368633806703584854919258546596273367973090002850966531856688211142806094625712980668827071439183584682104731403774454986655210091052869506213937405767761595166346736418694963175214849627171295205676708622846102304007989701392992493772179727898770407855957037705189201555762773791608035915419754739352301526354860369206763797793123481692151436542962444827654621740979869998560371211180501345903875575240840679781444638552180262080548861880344097172415176083352588115537611182182607270021221481638491627689427212133385979943241647097393347300357984527677783531461061949346647809531289851273700952802827330294152597669865682544444597806829413891194810901614359168714983010684077057719049568699471833031971030055261686926434228640299909721132319856057441265966308847114014065452419662022373267932526679297403557224456725330863343557502674759352714559163176425194095833847027852642194967269234546102568471117669735908836308283912731923725994047606132316280774834459230230640489447350615380875678071038911476880961519662725822635804587996919267957308486938215867457706791206654850724931836844091895677021095056427306358612538906706984214022438559160712122426047615849359865710906493601485897026455419536697817636852901867107962908045082077237353921298177111630522267985667885410391377188020999656945900893014141172960532708551401126364122826250366093761783789624257768876469134186451723741423549295272640734672533120571598201495702325215998044320517853255896217139717235108529808869402939366770288524241090101870276214729059995215758595275527633687282172012314544408062073996390555141684579611386562378664547954820397302094571166199729797457810933362859814156403380666856740241955779265602231221980460697267882156212396910000069149591054230848701503656120823819335336470357437214502734482444750826349843186190626752355221332743559873707789724724893185334359296088273932781195773465981113768436849856925630268847507134113161154595942126284358516530849925200246231954044249571369870235901365055985825308945252374356923902516989039578041779208859078275124857975920901434476643965625571920707129056574877710656583316928845081128664409701909403052154549100371700102101368434599967539369133872002628971848315733331565549786818407564558029527231745003563554346767854671540067749807285973937499148628617739569660927354496155768995533866237613742795052559039070349060565170541314422637854253843682762160416565970030244830837347450360362904004462496738426009976533516535709120434470793913638600388247105574649685511225726668387218011412154959787733340012556286343830433445151108748376669556374146581041447709788453910447489082926483320838008516924559137330594095962943018715987647514113381911304828271214844880153182132790415575403481912932916423375149052151428954760336539906384848911992763574395685509813073527748397228607348864696954558804658908428242691461295169814647872776429740891152163897731919676470040930919618008748031378433881458844385528232591386696676142980188187909680369711967954178856247454514657497023805142035464580043165242428854625606126838525519295061907977139864770697163425459915498429429394011440978304845620336921578934059000885998660657088035459089928269408938071178973891217171690026293038504826738568389297652551305003871777371033046171628150054566413476426145421620325765651383928832352414570436188339958302643269501717597489555507777487525895017823559072964748227946945632883214879743054377748781815834834460761826464711406259969492128774840208809965438008192225867845741717152301007732798860557210467174798880540431820876303277522886139104769446375739208872653615478190284711485696230352252823173378432328186867399319772543489497019670686942948933751021056706976600819377455208051930988393931446885912833150164678823673125828663363675062114490411630120948844557254884656053005989531153025946824009242975859469756249603607705622876357552612744509803168573088453373043200614391189547734323731136473130858096320934430826255285917609839338298262799733147490920126203318508485851897406070963126230329079086723207967222189843390663809561542286705358671829609754751645380460623085178931632659929629910675238357197989140132251131650822368781114222712818128536810903688393535169468503049036106974902158590624270488113462691753347608710540383570254463872316121129527180517993484288465210216997457322118765749205356477941498848082370037306667555124975877954788448095227201157036218524060572501696264694682616217192844184929704352520854072774765338111958047493413225701881317151740670401283952439202550803742555381665057886971914537997358068067414215291061343877589445211116406372846126361730624564068222508154092719783035379204669125307565567765194523766345705509140343333590687382301004518209933633463517724637937931337481554907783423644529834793195532095824008962611495569089583194046491848083522858036436651468269850895719070719189688757182187901138063734762963313208971059788636094912342187091979172302972035142086751556476891370027421187197639941378335928026195900191531432034050853309554118000557293339032183135357244854422663010774245069477472724031634480782251462810195835092452229361732690349519506814241397068765800645149506362042337222215190365632743091151680371999648680854089388964269196120249818263458311225814950064740020678322047655280623369992269028647810814966221251789248054118954036679981511358244677368063070348396304666427443775182988620454182893616441083013187134561903436329213020505432503094834733344266696867596654806885464726464451701290983897300380471089185937321295870360634121383288481834531413812156108769232228388368790745882489175428592368115704413480995560056820025098372804984104884313724831493955028954551108442019682312002891302531851041553864248402469729935660581731448910085150257695990674754190214960167754665806214774758928644304538383365961816603562675789922371795945805911658588844000247316551912563120118078264357716856328244043335046351196093232261399308067362902924557755756776989026541580066463090744604159737905474872613120670431068367152411909576533420415319005199355103520823320889427044859966937739056168954894573446610666633682124097847834385206709329192806527225081255826659685566370739369693327718602169182228345323018719764211570557552429434131393520988812317831971004034678751639640186648992981512857580154337769111985150392412611844138717200834499981639685133067446093330184716895925465596567041673023468323504131009163862741781563660215626947990137089799978606502183080343493900508545766258019163089286843016654496073983880290846881591483394746485984285305033809364746405922142356044223195667098496556715878731385299727632586965779387324509249480047674737943005613331085515255368193417714683199563805750823914432111675742022097710791792170495248575155851731844551418306050833316296327173804425550231963231371558596051860187517785601855922998685415160682426973391798583139154611354500696826333924212945532516275575649057135310362218988470038360067545903475355606384065839773801267293093396006114053776228655651699939510913839548864372009522723622454682829855942074725511990027161346610526871326983390406473765028252837220884244142253181384561896859568622813443147544779086418452847496425890475216696099846238515542707783169214414840996114724019530756738513265853557027811047651842777151038325455551624906210578444477661037723628327686260401306777712596858989115109808397566301478087360933218081778066243801831407573449722150583493105758651974343230337465170632073863739747476126897059543005026282351414439681654304990249376940857246045175522055183542520729995777127075533479422431261863501917507890655734370289247143646817597201818734541611794560361377934853787651883513552391702038245401260521899421513535689629584445834798403142130516233987178166839378737490086729937618497174633047563656461768086025316677465968683396897064143686000348355844704544904067602362127893913412900703280053028713278675628399063989951454251402395697352409110694882097093664244477100864514756633194028488188707925008986199264182923820335256333260520730224619353853063598138124785236928522829809195165939209277578018820529183689505980039267146670041648994615473973268336076269208220086946472064430111921998318873898889419726644660041053730339423398225908735684674668425400729641690624517718101904413279726719822170524519834068531098928843238961334901438314564262897727811738314786907622050045729560770834024562055208567546074973596911379973451270908977874891457813343512399369798698512066070521053810512527660545615801023571565961285614922858787702215559744348020992158492357641122538853184459695404371600880343242703656722061885374860100476123191869621383660079133940894227385008459626436275824006226336398266542783353467367019739900705639449186733506569119752788371594321220269830439171715127163633107552566730676127446587687138612152224278562157156911385219313393130583446284097406155174065119352909317476693258972877632347672031283299310280822025181385168333769660841701135612571797287712089264151481318724014635361499609326292320976336851436034578471405401364594463431258177023369754136608274815840892008959683181812768872948416661140179172024606295237047771047254913005042082495389162216819442224344568144032437037431053065705023348713165529141585214089140592354242367055206111858161441740876384151463499761714086232039926030862491666183295932389481307424376764708513654646535943150473298684621455711034226257477828441425553829131565458636299655327216856450067684186607545208025965364781483033901219329757352238537951083196555832005612371663741502989192436769467512686899318933193015714928911952831282527668315792150855144651944995324027037216432203877665796887404437067207082282550212623778888669921402869736860690481347502068427592283550186517943965906610158757051897899755689099219935915740128905317608617493109116761373721328443144327073404983101809881109879206896571588516095113880079345446033035064178303001628711387620465655458924128280183303754267049193440019498259639450771732315961423803080958703738356548355221154834859386870428730225888833795327630084615254632188607372458548991881525585456747872877393426802762794739834246242641259940616247149910312275352679272454171737404896785971396400368352391690236334111877753956866584966161658783275154543387488408988395178242547875386720215046943408565127161022915675035183961371350322515086487664464678689606800109183305636110599463842853541268020156602927884498994534871066943626165682145784335253223455010943095045816597661744075386338103212044108162548785513003467172382533002016780523929948932598926850055920787863923935160316023470172088264864220757108504927937744816857127281058299691446105264200072793547491052758724869315931843881688823123735112620628295352567266203462545369409547052696971779882305559717715153606673060900140448868098199791631886002757625022093500385940253970821083862404919101921040166640967532210196148065227012404631696966232748658859551760159578258789354111352666420770660352408709074382301274926103347682958822144716648264836890318326192702250049176495001301345470087118912919651828427126741858954631361580995511131315986369407524682678593157830639826787270241840325041143623513602965855945999281371971490072889464559538035683549712862238099871848901649776037445231313620466889579942284121863363281797987133460025560056745766517270031722129942808795007296712312179558778052576753286770492516582404011925919479055125876322742875238199016905245513529567525198883262434071786158131802896866954675234226506947849492071805962743468389855215066852383084827923534274447923664948662862662926588472430508567081790382004215169964841337584813779645474173346763928841303394733102262347912411291204604774552857788518605690003000012640365406103894366266120761296665792541265326496731434901447321644314943160415281488548728692718866281157043445511897812337269306614054916813130876284934487816988631638970875759938946755235561374052551706564227114947334694390654755312267615605466201375545454778272786248264544346289524951978905064953495236962826787195855840047664492954257999049598981917843474140051713843335920837420660579910760939767320733718844052196403895549507143371557053862002694721632119724936270382145747092265218691885606960412756977975950847127640459449836530062544191076707186489497109152252612617803236727206902887581009340886961250137389082799119976062877224128692197321856468960072709528974378288451700151412429271364987872851826681602732577120247103750660638848113552086469030549523993541165322619937253408038679554751169895244043028658596118131444380927165160235644827661834181120036659103397692595712742034706559472471512071429598353958718950636619516983606835520917883672818911583160333248334627238924133621138801656412640684710941911705180832450511260153292400090143721015744312244655949479579438739356242630323186209498024650917289025257952059395197870114961383216099941398059024826246964772752956207221733377633914109085379488414686002766806700765032354564152021142232448408462899872966745395619737891654800549367454941928198032254364663269311471249894692608832676618691016015361394181036224128967929067639614237855945356631710331044429994906644935012790863157062298563113262073063445271365361279273678634216951947041420968471166814478601633485561509640069331543620885103005859055391735252778746300261258694571507470669528398292494705369501219209173612214118505260183733217784942289768304011798661518755518166250201201402138225949926648543075817501059408769495831140137518267196445285751413319272751045547819030560055513513539379895373768755087885902789774089028506027172743063978496956314140895869638623575498028459061911208867002710503720125897990860435359459935634896753184497022968620949526343165764256268655785511288092608042791504997676666865571225161133009296304940224185943927588870597772304347894492075966219697572588125316705213011889669576242934104531963570257777858992110680673217996214334764016350627886427709904217238618515875897725043433940241559114945288499177294119947619945768428311571294932948108437526549051768360649662158333633896448036884095028031942192171044265911258494748241063395800708896285367843722542209818030615463121377758909845413697621388283708287526814881443079581338548222922392190734107543273388509046283047318451532134945157341961248656307594553185060002090425526721000268598271404876788360600927686317326716957225012584755404709230866953499434574745991384661018234245840599716250472958328172451203570829145340586528274689528807123300030688284666631616275123352165148700110121945677012503520710159725253244439647262546315446292414046259497903717292460440581047700038892442487259747584368459550702302178736234921237088951144552541060070862751503178457962244882403996058069119096268861728344936959820693777986477403655823050997935815735676779494373507396616459428543609428275943748467303134443487575684514351715664661830426377427323477761784207719223424319649870736661836576255266177585942132024953971723132610695137623570681171113942123945114807139336963507481601446717338967976336059596313404477798503271432563072014304043080349694270474715668491250134399567867614277477307591074567154415856248732146153340889498677772574125892370878335966420594627214601155964767305639722920359406371906919858520987509018035091131249972947241817139632000088295750717620280358457082642111147175437843777144934342865304463705068863634132708949061478660787427620894454914656250069133515771875432184163834777854990544372168884440484055816333016722627343493149637642534790212279016523727881193238926624204105465453797707125029697347449021448902288500439369534920076371211877217595574943370123120127002134693392871996037608685864076669368417757597561053808423103962733058286758883562120181689329369028981583839768094825332554009836542910502584823667698200934591027054413441775785025517470213715466077683968327511723484304355186542464157222759868700339591428548708059245878523528541593636868733020309892280365767107168005938860263481765660503818551303455822651912457112017469591153135088411728537300518914639969668974001855481216121703374565312806764666252117180675156630233521249563192500928524040040330403656902392515319500291788830272983109060610834292611810706624219682303322526859406591625081087128628859636572374131804215459677226986573863037936451888914068437824166214569749793643784780916310590860086913988393143642489603968832818593553893918862700455884548468952790568864605906888403993212356083891833544396735449899327624465933102373265882004204556964486258942211030674198460210135704052688355593043886484329093229085140895237523832585759670842496273312299453872570210166653376182314175113867841016060371425360150355194921278303508475605597178360044364899592432186077791758538025497973634271938961108675214250172471706019105229311450066010109411182868795907568699556094117620442581128055747944119611929702520848697728163733600554160901025863834389599337912101763808955224431491433276068521155689803230471145077848717224846967815613263511098487305660179736022632786618339917941474725715155196545998037622439053035176932649038871932382342563301549190931905472580401651077287930431262573950052672274351005723144700667047668606502804685136930637172297012602264673643948195340015129433118868915159987666101895376158309198984048143874770561869599216777545518776500391418682286846695702895227751896919499214880689232102210039701628070818476102606923943591817814830428632964576568520811626457118087840956271802417059096465117137819276970732529400744014134622339451456835580899941118419140407781909111151009900499645796940671681567711769757358023241302316754908899348690500846538827028016775254902407822127544810428614492084480738434484554722069807156751909805433163080771257254377588515907658499892566423520085317306287257533693504912108243073011687732544179723194593823305462505948206946895418794886207363299909523039649842471278643013347620743494635384912835723642965773102648407533295876465021277440627593795830320856924360046376262862204120927738076694305356685715620756633698650721171319427608833642785383822335549455295764890016705255936508370470791659806811041360448103133711726485319495035661889199430397531839217392508624963936499432905128389244951783829545503861049956767679646830342045138305535115785036912385994308229859317997336107701967469104981131254493779928353346292455511696933421905904243193617159445976755965200391459305186698101589301721749653674158164035555906393358962980982993274026395903943033300716613497701209155929946583026444385289761195299281503270728831515315963655538922914127321752510977441789145127080835459201547926211876775145722548860134181575776676499666137489656229188102734544975936499963452531742289453600263418700046969923416228750532979465476608739516725088919698358765891222481433629327701775184118418513444206251458555624931359371513249662080540382534646987984396886935049927511295492046397358575672682874673849491766539327043785924154686910812828562332103709556202441800943394087768981361312091932409511557844263352997956423103694599174314645403691779623592362188982725623395358835119327711448376003961399266058009464635948971166015676653847680145171378648668489939227837787889396405419002989431166395514328962396308013388983308571106368257515125564935721550903034720217135685744182921853909797436050320524456294905432375457481569871243170158722180092282618760209547324438259750275262396831056757636275313575469780752523232312676778176335270007092267813539667703206205127180328159081300005489492972139281323665565428618129813264006751079496456177859501288807046586878202542034548763969608598765030183207380079477585326115412497053204860774659262636410465960210423077248573211665447971209493873489415739597011868905112410574555970414886641688238652856268766756192314827207139966920849861450443288630920428164059271577625997528616816973567738648616206598945124092309688318254656484904534230974936935082996418186255774862081905776996253564336796160010773982032149460543487003928833223351961773950467327332562150448013971342917614658535107939297061322363236139767012871165253226349205249011774706272716915548950941796736946095281538553671967559829257280290047543892493285596070182386505863135651208047874861396780522765343198848430456678522511528474915197650558616400877325512887021045563771867948429470921004612500151704385146206393827981599649191827550559990232249808654658925181176680663715368764396943437693214879062631570397124871968811447396843798229420929791625546565869422593593930440976723606191027028032439363365445227879940921618966546268031710025342489349752675683624964283296976808712303828983822641924197052943592151383122089042896590587890622632036834942162417815865147766087655412993069199687095317675107832233333407280901279210914112887727836020350437009492062886844646534976521586816166391605414203877651585306497161921321489103532908519886021157195961779964176176532590821100957804702546834999217386633507046245026314286072939797763365864112710622267333822367217795620408793786671787662906344332591365311091498989638604690151068235078100839924404007454741330554547987250067456185108085304826931970160683270505783003193598126482077692557027194797649788259429486478108722410931282851182442946290537577390730701003039585547822055550662279493799651451663051120792737626094266256255220420791775485779293702172102664559020604499718147133482983666368152760812444127339189115135229448446244670144965800775359598351759672721859926067315854828099320026085629589045489180659722347725041301795759977546698889489965399620475050467862752198377866425762996585611900175105131651871598156206156936863862111438540641628381561347910708659624942432603112117454025376792734308489762368814256544034651015896186598629445197311711435105099428588658696436988134450637130641697588506354931005881497151102710297944781096405096975454917603850679635560271007111408610893683596836534875153316515157417844020798302709298862072131981567820679969509099521159786898278134754509948903778858762572658251974099651461452831601646474083003740327174520570605169888225185013507764488040811308115650998618006154580719097315709438580726871328854043143190998194361651183629674372426312086384339400976594673223397468384358631609819013194183798150859167597693590534263803752733937469101958860740363093636085017620949685838587453810458275749455720441073469329047290982771778483442225410644302877166282885855867057407639220253226084919516047830790885975545115490249092238940415148713494558837589546151853959411560566546796184831541269475462745316319701918428121071698628070143340456272905595339290425011315298324737393096186287106195416516176852425960184932468773306753326725145067851324216067522729388730182741721981851209598355029400231679477150377040128581201940056630132285962874037946694024385651472557564963312563872935338468785664511030296285489043076696826016873519275660257060807885516005035228504457981286753331142282214720876792878266547739786401905413157136584108617176479741482583465590608160786241765921397068771588760049496128290364048337927200545579890534483323564090127423904845134423306103796692074691815087733286672113245003803355820536172070038405382758166696868528426606122697949062626546485480181025827611071730607357379141518567484441542328440324093426605279144595546875215843238678230524867781327365273737794627541248554356871818665944086447527228058697100219286122571681913053115379408005765754415962388771853298049533162125406948221629363591371542613764514442787181477865398613254334742822867169361735123173966379174765983487020373355635617377820561111868820353905553320886810076627603946041489814583567850586774361594807878297511512934348957670724596367326058037105655100373468556808431223107577381635992294656112466875657489896041427893702570323767582663908118613388942681141046433508548864337409126169044864157535291456634677307714149111932790953786586866381522200599359640566374178926604694574188641362297199264315155714268493919571725695423595556851755057722072861750630859560411416623657320447880830324286895999562034850167197289691249607201691244387861542259418730485218506141937618481109496097273493581760888150984546926722665492592149034018869534816642323667064894967102952160704806304227474299335280409495774599575797338574117930250543984684586077480841084012049373901937789549664078683809836842159644079924481990957736087883495203258809146815905243637395155648734414043727008411967038680700388498150313558918095447617511670938402977486511508043020493845968128020512472334519002728771473989054481170414610102848240915745794985395630765548403341434539437230429243327281557884814911019492567757566772449214104605261885631240654403944828603073665533388948294049259368326150065872719649176190542390695751373408261553976891721865810736962617980301149452852760042295415732066044374181768754231404882207411659604874913367010208914960433124898026987552540385193367575519467809925001671137622145535123936730141624840473881068659213963562182595238575996693777225711471108989147422239996346637156867669097670350042703373112198210182668726553130635811280284134776870886788781007474451783532509579663918240326957650173308007844553513873031601751291306351106561310977110037894884598325547636464419326031255056941999789725781304312404623937934013485679905739434662118314535719009744350717295847039357135185130588318515283141801850226035338385827689862864682048572488631841138332784843703247486819682327341811280041674813696624754711987243107836214706170241456600104885201998916494759184737067247682043611415044926627077477434443850349014602476968053395691797315265888828138180384656605604687320214676237960908182613695392325340191665829922999411619431959469439828908555472931308523209736031599183224168077177669216238924257298265123438175256882760130033816668218695883767190253158351907383790294028330575716572082728874930246672109346116814626392186855004814585996561949407615628017781976693655223007256357575011166450134871079609046846699046015535591185191466683510613838222706107874518822793659469620406905783420083425948172694206932285306301391665117952659922290573575396177057120867936574004589462742456782213004711435621300339538373537117283287675783247953022957405314680536049512278746485282243950410229290018923533454870049915098676484316632267749845948608525525905934626388618997113977794212226931474903587665622192426104436863311280324449281619874024232014920172790748238989955988955615108959427024281600227803618711256795765660566645454903724297474951837797191591746975516514441455064160150260100032510627803957328672575381030084611801603010428173341708333182109676208513974853635852748922673934808550558544148730538839050430833467753236206969303797475924624239561861243275335030123323092181238311531651553420532947218136512466348364015831005513725743443992864067858274875198378677082622121923563732896555839734059871674273579846446375703813206370320626822800015585664331364299268544830187031524071477075256674943216651545249707948161621172875436976238897617457557884397734879561634843244540314892877714226942624605148606593043283604013268943160697737241620713172359445444295011397977972779931439783754077197076682102355194200681277001791704121814598488611420623417191899192536103942321793760577830801852334331226890805150703786979627156437857348821326087813091780793900333795376906676600146811865197441131810382964510389841016947860406978447875175537187513737864399663477072394276519139124199873872056047041223263900542566689504314389550322101776331324306941520289675582516611907951787907998093848714089857664520897635671063118504956218402822122603736352485205966293570666409097993063658246652657493216758501063213214855498080026907254838860232826599509038522292481838416776370066375813537636248002822512375140455347637472259594165258172344655888482906937943289538806058576406692568847063374717227620117856346853378853615454283139677069624895503687426816230322932808808275416614464608812784552948603949488091499370678759383100627285986229003571615971001886476187729615542673723102751082079060299011950216344559624959052302693106495391812026921752691991455662907908081894807738181579187436972861267615811849035668345514079898469368979289596873412253410734039154085734751221412293725331858796181567237324122241582853593696875272865349700536423973538469667840193790584697293397199249947010569011929216665600003260258421609111008431828345218374195380189766611614505297166778432905545746371977567354500170139450845388804147699689940128800479305897473048892692440353964137790854569174403008110325606320316391656509234464866319799013007679759924480495820124879744651237577672717424699083926923715437159667019423059905305818591983861281772831334623728734991278732629211446056199201313388480977771850170621290143527258590915529804566291609595192564867950217646386374430042381075435291981019886120961165582800447185456700356108250798560288711589738858571534338658444219832280817507976810259254525070387997390853661038902775868226922209389565732822895249002329798098698594014519321581268104429260834209102535333252947799160219015551827592562258823661126144628998097561722165800038215029570848814195849168805283969053567447895313360964860779778156940420659744346729897072552782198139259370109661365036465282985303963092420923323228301933692860068518004223630164515971609363228230592423132069264769632056449049223250343964836247635327172609345303681949574052361463003800317794369171242214646947808875068417476320941002895714486149209914772827566604496164884670735353061495883762510276055434706078730091066322544002649349970928294145142353197819383562782520331508011669209372477536041474455925684683785747216570181428454848207491232255551001075465824444698666698808619852605231945631679286144851081192058538127110914717896792341818538913251196457829334909922215496078834062588535748663472014547507605599000131127749288025569243900282402401233899005725574170546491617923544207134086166406984952797149497846311647709662634893850903287527677634573354546608915771965256050751665674471642837619629008233601315661381262831918854563953222688105255403198882285093207593679893550016900632280017732592126825208194953004559572774640812779565983471148480522435862498454546207225540390308563161301753109597996737157135758521821867637560155752089988559040258588917569441667376675840844332508773428147044793175167670812149063061025574118361222143810654804644916224885384262434344460166763407559670581599298641607994964295190192234052170565869123379206335491617916518462687167180727849478918858651188643621618316229848655533223331412519585157725985874546688797025907731062146399359659261271559138173003847919075386769278121089095240868387167434551046495381728044730833548978912813286668163021556458150730343922462702173524094582007756085695892326295887798823711786337084518979910548190978882439853483295259505059012106660683784771618275638578205315134231398512375479437602763623279741024289277979458162553256383134222984108776383603507664968142421435003003037390873078647434021690068444896853003885536152097686521098895003487247079977187259123315632191501828161872991379791582734520687723394697307868733151439137812285858256783409948777875355790765280916562762117535892759929271992289031323777274097428230937097824268120113122777108303791854287009417869229917600829932853442652308056268719043085125382327993557987049289817703527350445775215540741519141937785646971084050223922414979143982831260038569089506555790964681806939136794994211593658886154028887935819108085877915527621260446035985327546001616312394557890116357195941308452949472104537667708136062824337291713690251746850036457357856816993835599641984905185142311314853875421617029122888961786677012423743361191948869811346743305734671712302929656307931489252359335871265962964908545989871592156062682776885837595676750991170825198329611043029278505208848638226596836127296113135408506232007133056543446384582135451166091632068364272499987209926644991783788519095539775808256896070916284374264886406731396693106752656865528226730001172290769074555708419418382047874132770114573291273772421455785523399476606475010787466850399182107644733873282810751687373546854452650116163561564253324817464183338823600841481837964327333664171111690446255219565935209090772730560233938209147622390958510363166660476417618435897338072766320003529764935575703515804701457798823505364168138443450364691020796585426346583528535860016734045904342032566719989532470966050373724114808451735767219166118418097395782128393818460252543232642123159723474061180137718403769730633262206861968587415873042114934797936512378586590628986313031841389853094546669999809682078592564410391709993178173131747995823876127655575168459602283458201633609372779311104194923844849108531677644294483062428095372942604404458546644073688661175654286131583637721052473522103213216180194484811393064172942612835283295944449587275747633152433510143016559893593489095163387054254115726836052058412945728354175429911541446297987565795705304423951881224211295764994082581954938879478547202197466254413723687687767026530633094238772850749829904036315669783640713199870556257411207868918370788402282094830281561660213976871801334633492682527138004627673826349209626588145945802370831434703095848010850126230511587924638339563477472719371977612686248605466222371602459702264756148462408854076191503540347367104987532793001911939772776307411102428930738522757753603576562752510436536847491095415365448808929239877201458799403470922402208194993122188725083830688403219800328282160476999946969569575296814872229420091863097684829371442029911082899242634550833480659584080211316711549525604687773240705110824196965791752303897984448357755465025806687493156584185074864277106846549301909880003260276594166480002372621111406477820877865353499105765748748538697417733619262079202792018467034491401844082852346432536629527584437377928672521376594025811949223433458290806239072253143773391968551126089185094316624684103659792253447056286035004792887787166574257646549922781402951442312614277024324242988452543248077486555744249668933833240858492057015130093736337127444146312911192430470268350138090948112016266226286086243335531412600766215377969486941851819255728206567206471264583830915057173838579363199592243518986158796253400431500690163203593912601660640901635771904571374285853549664627712593927189252897230681553662686529698033268809392115804005098638793208367834114704741000159546797026619841077138014746285191839638124027584184960104966859782859453432087804220714716231831086705062033490529335516381774160729924117494063470282380798534086593288402472249772596628862932515885975013036243625592494648332656639300717577022888824290060382155470184972756972199978193572449035792396669575181161432345595170840926400752064477341829165757832125890728070711975215415022269872780832637114642450550426097693617755813894266494025939040595480873541132360860610178673370183325264714659671870525360929437659547303431225003673424191090577551990078883925553684813531280434457660007045554472106188760886408337624597643750970272050469812308087816415952540024399496590031527991943456350565678298350767169097929700671444752906374473162340831231865713585138194531531376661034234954111069572622711220636811182021149733329353339370985681502984282157538393713897647799780037229119808807450257598422942437875885916885046662615478810772457585168539722264913543490031961755249645513546818488800071718950628659654670122542462010407441452148315557431429465015536159758749569057763986388430263549514867950754774156653845069107181947073915548578700870604379250228637438777853546854684036227071860707609878017361705346193089804594151086856809780599056496003412495390273696353963750606468323515135060547829238985207921889792244092221271125903219423775908941245411670439631137021287561777188800072566661851378291978437467434648049042659873092346337785012417501379918975449579899008287617965946441751080315544319173177577064291783899470056603484213611950491719673664216749629356794038534811177817386071221456565863998698736644090364951918853835807642029268051669858084504682745660270122613616986371769435608780007498637500050408131950341602190256004029903762497916958519937822279607345842709026756676480427499750996675783508048053499864882061286268837399012978494999105683053794224757344285394211011927147785179546978122540075441793528461385458717516680573580717248811736269129631511923003784959961189202713161109022449048569623564258618410629146130222668128645527937555928035991952329966737916288948802151899778727353727823108803820976947414596904329361964143212221752641657392148114523953822909735626106188228049165293949951654008857699720472089835146028064802185464296956908607271757272075029460577097975880488729096970012953787707160354220969406873376070682026685954478929889156006209926739598975431348939543067090726049647012667277274906934097662393374576045308607271277596797340070211063538354869006631266526266951236993760994208255703434447528740095148340690965311646314616130865030222053217035218897023220444119908070811158171443224955679006134366034875304899294798170092095743629273364065405564650124062369843915437204796496489553656201377173665032936654885939869080320463103702489100389526997692593583749206113633320799971205671225834638050638540408176383981320042741903995193975133075588828309646802863029270424040215541240351300144145192716611739134545925569010918320971415480730564139017615565326928926690419894716603573840702910885408379993200128695084817696569832630537962724028300919690488260019086716786708427717164439532313842033023746990894434069491623788184158333162283456284910237363585610872640775944846129812881644195081394047411156971892291368808164378413469765508536594330346109240447460827367273076618898422725753630341778720140288086720152360117112488857140228059592854824641413511372641820124931036799116286357763888043832752878592017784160495083501614043919327165024229272431163634405753427026869258926548329423309605656311333359911386025237104225302483884557880435297308750866311752972304963059823999723899117113296257389839333895625140816873656925601488965223189392552123663268863630444610746110796124625438301066291227798404883271922981223702606113911219527132388095325008991395976537899831943330895753318522574077489826599868311810483601721104361320383220007403407199266974101577181423990765758774442717228020652649718232141580139053529127159438858958934561494933970074199818796991197797030973421088038265373204191616676552370152334901965121744766324177745447830461887362967488982879291673879371476919683847096385765818568075871339227791454422538765000872703190170871504674259774900991545642845089338403395277717067898125978010293221426853616997155599931594464471537610239898393432430805098571819388859315629727413048393230806020442702347280962735642336751341433393331558640911270029644249362386420225693222629661421080369120102517230322038419954428953525599271443914857279056956749765484083033722170133238755104673071527437273394309909928078211848371621824117117632183649925801012490913049356541310735388650574955408257744140455663711811835180162820811907785816624545433792923725394754792794792715333627647623161534731020857339188200845692198596462213341470163824301108347868703599740427795925810065469822023673641074505258774885549403751974209175964882797774096805868433354226964603905964511276619626004627329288115914706331440002972345472284150287806523892696958593244955445763527026409785762156146805179654615155981314870156562062960138129622533806343484457050314721297011125391828437438230108092297232792523806154898500691621378888359740480730856415264368191140882932716232712881648843244629050379876984371523665017783331755954760209187366373373076970686566084857349989505529753118939361017741037495561114061518500121423600440334835359772217018013261746783972181988486610103512836433784275303823709250298427554074810306854376616716365709720055649670395884948666353133631805440544777312765345330665867667611745575365681525752108253969036389142539392460941716931072117262355915286848836739527851791583722447194267669615048721677864329151513511431732632787988810509408925712718899058397082732928246795087307456944153030127908603189890930956295374157344307816194831544649142909053909413855891932604790041755460209302581471233405872264491255060537930066466637817568448117907406304068381065766633201558781100723502853648755361813332778152597390375399197075987855735795800371059201835150637338639460376608174818548048520027145287316878318278537317718483558747656378515849153094957717901410775055488647141297334804133308307567937516851316982494881500452446709426228536509335178497426459558953991163466453607819452991437614085790624592251077707160527089401376580465755151185018049028313955475268940842021911508825510245121150295394644215802543471786251514811913616770617487045459538234160866096299017349128782358686165194846617929355324116718418217304568498451891439068234999133709825550190527527032876841432548064979238661963691335222901580114446815984157042046463013128673205568890040698999859142169375030311319309735562632919232064578739104444429883513817855056812621275048367267150808297713918026650150646611141345655750306543284274718770908758288356316837799248609083230362627720364834326760394546470858943053406662547743313550797657373518225343028960307445880398931123513984205934696534259831982241264976380034394384517454799950427747250355853859021113721730832109089841859786095574218450723555127452565765440608231792544113714729257112049468872349441763100435763344816879726273936468197082712996198439656390937902443443954583941225645566927433721254660540297010015238483513416132791741576833894884830887638010211663336931154781571311490325226571399205043850537359706826129603212592926359023815047103640599663858269439031236254367560529863371551404420357104687128492720591353301464339174645199893523649323285176994543481376308118483018106990338097188638285648494032315894811729980544751870559828668927592457753859002078999563394743248738819104824749659513849214894302512781682458056758041708784724633109990004602781375442530316403187289509358689779197044541361836474367854204909576915180017041348558929927492664443919725214009879076007292209452146554000873623932907199819060792904488624426238612772653419771146063844717066075224280898449135649660988257469247792815364096850676149594053268984498783121829580859670229497478363063219438989984786786888556151018912333411281101133478257770051734740792249347596509102346855556553531962108937372122209188449846990371750039288485719298198733038300729149995628100634843138431428766514572158607185464499065625823228083753353848830505181172800881719502149161425276454141235064600378572773623431323574452399021830862266500031285603557875299916612839718096189943945070246895582184155810386319059044694656031963117949012605391337578747733574396888952328136550264947926658755523271881128976064547345735356113034740041345783616583251115741164893405529317051028454777141492397006896489982853234859335682120827169063410650822805936388673635499765474324868615835033528641865275098629446443181340729892782353879673467312202013429087636116478547312618756289792350256658065630334122805104831683514397221742204281202008084082842593574939247901961903715929891848568747971915436015634705116488552305043133967113956589455499637240671181642281820418028709362350230362142388529097202053205668153071222249019405169253386009789612865130832933328684219232404499444760595016511359980447294716953765252702696920995860133853604382126136380030505358709046623363869560380326562791167545752463355841992235002492210804892998521035760435144429728869629479207457925129839632566944562053091547534755829183215225450454862717232114121245481688376957980452260070557720757608806156477733841823956252873137963672555478867318845780253420096025630066790108472718803713952570280993934089194843410375628911021795031821571666916634178319282573412935589914682789307852743437449696617210717442708588645763295288401303057556752624852912561788861633870984136809830552764365542267229733521083429568837709410266433947934271450657769941126959289196673240303676528435505510446518728301451647682662356614805408430290797844445962673586039915264501352574056804614437006827449016612223647566336747771285575625074165613763997243719850110517504871327879295436875105818026281805759859128696608132000650514799816754514033417804269442841134174789344565976032835781665928784634496035517320960989709077389448379281030973941170756118263858345415288779561579557850092450616810062578060201624545469615205992185765613142116389767034588259132409680316047471405280945101868754383595097352084461993926985495430327842975966543350618634731693017732028821665095140415793239826457305225962389968370643440191454794615734040994237695420942597923849460656593961305620957814147287886700463979071384457806130037067190712227028966580064173447658404619087347961383937349657873063284624291868930110258110469995149871667751639985373124502748271941452550810364727722375793884367776242483314815522662250221867038921351079079928768551798972836381171975458873471633695141271117223532804455317738838701251262106770983492786035758753891022258572898272410362941854203168835242558031305224425782713634954063244029467458167574068475004585242006942921219002633571114517282198453772271871487460901840169147595755613732227095731023517718664521058027644389681838288429557529211537557668710791454574598977873919747537923700086903490174632915025201441725985362418338415450275488729849325455113847328129135770343328816720543498781081601375324144310511644313774123416841445997244961158637025983433421895219325837396023396129204088419716589396213513263112814186649321486670244622578222183048475224267839645560746910114978777665021632152744832976910559699431649170569750394837743828856341244939732461383109060194375542806162460184549057429776088066802970658264078373632789074445948682969789660799370733242639736410040737804035777881114394873664134364393005078622418791348128782980585666448767318211290381169029350348796779305266183911325639156302307340273163543604941927466939063562437930441109632839115230640016109445894234063062141169681272886609593334954723913248701868256096195395312819243031892761187136725866297991471447615654751067485919379196822815096149877491731620809698407822619232679220041266132469235083550270136665162961256355319974108216979168756207285263387926599851609844006731739421388195397547971786466696935340752053095510630965384280871535581405477681787458802932428616182782459906756916557287265441737857532609405442974323061728622475990700417303100103080751058378185067541609312352315819282235540483708206868685287810625577546250387179865535869606762009545267955369653959514627947204296187197411002935757326973163382747464868859849824055289084830890974473782840414304171503729782543920953997534776688879942339796431488761617204571846588844758717216887383936172579731748231824717202737318587116789149304117239969093770842036517635211203439557716764751054588117612601792424762823385109197178066741712405214244064152624925547130145687297674446243173761377327678637756574642081920770727753527124907569643097534763872614497484766536683507156024363635216992849365811995489518992272634531459865473180507722718748057539772832272643722358014526982359286729003206116305719736846959720011170173981193310953325667105862559168399904080976484306570123830378121584246032485340299853805861009035274914278415986790876042055901201280351357521254461391318324081647640282241089724823940196072678359367564986613705798189021069986517546707774578920706962678125949783822308740821753195482714222774835375672559086918829776801508703761738960208091328085432472485796114067225744211046102810327506726583910215305980236835989944875683896903679422324508616487037946192580478617684083780752454133293920313503125809268986759926630347616878123058734712116199546691560746505989590171879096512828116027347170811775775916723645034295749851393338171699233353174419084479687101611857783150671159963286659650648575815637504112375967836043088688713629774899875276877224879080257435249031893853580094045960775473269954350090678745466541820832667856121190671031150607578933667551493153305690160304515544991825315097881602217292937622436257085319768476732733495083012127059964119025230630621560220493997958454869228511756070883196351932240739562048140069496105176462984470092085695289786982617087864772184618267383072499757211244456268203827591265874732432233639150216358421415730881172038194105711338079649976663409061600544334690234612174434158157024363998547721807960179998356668605613986603176298886887864026687221921170411603962829453676554899984232781434930366651688535232511111399332466516750261621833031997217222867987928269746541509518246262402851645291259491260533822357221755528807665711315257981153267536444089357890032767962933447562910622989231911467196786372007278247456873197478131349388617886536726637215891501161694064157430033846161495993843859781149503336777583888576796447167772436368103553247481410519082176273507507609222892464420157612725248635592060593382373118440108384283739078252071451956211853661630761459558924471748197626595796090643296238889345431310339973794219907554318867977730146264766532054341493440079678909224339101623511127672070913588684969220601974631270316608745097380521200332770310659293344909720092754113433750304696022214191763480390768028018410249941883619447054275192070391402060286670722704569347213288458650334367737637817764680657851681550045919063095201670269851919469408191102665178092664423171031684121874935551637567428657662319970733241485241326364416264318116250348475524279009672713255277831994146679976585444209494656563636668555752422766304275662236353882217316074589233615774706912178492071033003194576933877618685615491305407202998708929586086802968014386107729137939538459732525223966801181990339225349625683182165203093332539214795707286861470556656564859000959403261548585271626089453148405496806502424027752422715995473404692687601175695217038791642641474491495323281602899358383597152335049345748091285511900764845474768954325301262312453456567385160187949366474158138153311169732846491184713444351545769178159413993692038988282807457389996447881183012055449909563244568355240449316972665989558838722612857940079439728835965833203287661893575376529100599179469031178976560760537063570805229398403647722959049380042997533645494708526469446694924518687869881278283536578154686277439126747717930431057008743005210589808904359045601728655606634016993790708589200785974664486021071319658510834620623199500859390772602485181556813904294452017519038637403610609466413284165617664303628699231526105046540804626216650285470058338904539640788121724544011089164095085987439000321994518085752904873640808139795671536475842769889674821897663434725565284879612326749003398994858823932136097558754077913634467803999789155603868057465091895865402334381844381487878292300980752801770900118573622940212955884805069316931824127875023733705046756180084296654263650266942274846040351664835992358490349493302646875194985994074635428927368827833342423683807182214085839501689979086152041514969737937646358996934227742546110253680897496539492990951264996669170932153757415894130963802331915081688956323749993079727211420387383754575033180360531323271967204637790541177239337207387311136796786894294070876157472193493433178464393921452293568587086618013045177500686477865992183920755995665718540454440054750010426859416636782712470964586546136534177566972364673327184354175116829679748831039255108821560992861574722603445010553746369034971521207771024586461953249522191745339597975965953585657208576958744775902537192333150127931542638012910795208785730929910348737494144201445278155706596934460199692788366593065021180670851134523954131026341608446712312107445970411909359292169643239346010832656829008024900113232574902837680842049046278521237551301850701622395158786713000453422069113681786012158158091320681833841837106735201230070436481149821550626967773604940626037604956020118380654764663438727662366609507256309959157270936429247477977557830717781758120594985583020370924787087859495396975675387303831632747421368190686744303681175244191011306485451031879049926943384334429616270730839747839074612084846192048338791784632421035128786270581937668504203777573843353915947191802964077495275538684040252228179112860500902154936315252838016591169636448107207361824074849314520006489951601805508652120651291646288666345339803245312118817897940951076522709152938641863747933891975941385068175482592569733683267278280381916708519927772690473282504959464459683626052446832811978277570855239760015545221765471487108557500789004126153796508626464085709850041435667821275926218618174059428693752321139657570302979485083042832996875214793744191100993423094238979681055272053149257116786544430686852132378460168681540012216880525030819932568478668952416484618241903900637845897728504654812409957263479420923956801434727746580568397849155656660276077518853773019016825944735026873159751016958423896756204665097345388961223581614143869541148385297083943415044281360677967076903046885952711182611282231680850357686378635956127921839010292023522125432636181058923823736819512132708070104086752809396635660227499522623270390430885205148879745981568697510280445507116040276768568192016398375977573107193506390319948906286704672367131974054807336328181835945588537541836498900701001573358866377452057066957177803921771641151707491182951677067439884827171854279860342495425569596459820490858480269048351685544238310499197095172041317268192087254256326779605519967142853553517345481857944145558326515932882603356529620962232645793326508426617518081105089448608466188906316434844742616123223640893583261722302173940829221131490257426815060226834053248971293498996343874571143951117469449148616211991572864850686339414197573710341903962426015050803428582004757248199997484404485219819293348374610416663120815165868622983678448496463403236121147552628888290217805364160602589118340053676045179004291392463423009776381112488101477318466458052485874683495579811252684847663840971020279109304903666866585683326625352453856873258187582660781669871127926777961883835291013036249885055207745304824712135149736560819907339482047714867252021880326610601893546483017393732233284058989275244267842456075720679254210975189083834808497973248502705787821879716838481523149242232020239884114548897459115172399807206221772666058933919130959716793306233577014921184760031117369719254778465051437433230010780639265049546746520979010687536994534005602646563209487690248636881947973460391884809303847555007039919580743382483871237395129801781732604487133259345250440348915410843735411670818007304040882719832767698963231436824747030890046726560487277912913146559068256300625302148620161481838936184979009996991333483467593955005666681672893867259243918104902578579525935044633272129254065465935805651584521795175446851652211896503707589599982920999977548800698999394964258584404131098599091347495761306819158928501481547550285165713407397680643155169567987198272995107346856215090147470297420540532748376984142203985578704206547169055903902733442613671349982074678946676117356597411378712811307161850647356112200716611102910315879975439819644346453889863481716698260152402557686220418370498297001560997597452846643806056016310044111612295421834591840543277664067643076109838723920693742126142606915794264978758781439955304901206939938264152994580802109576472948727354160885086120120569699184851291931751434967855174736122829962269823426889825324926250484598714450272848106561102229748431536806887631784733851330422211513182946887983784973567531637798850833398215201530727966094249565226979842201710029847676102487861443894708237242088910576937566204493118919475279329521105272257908496683455143560686522434707699725068213276461517407236516551651949455384666031482299644027212707809452530376133271773406511239732981259823674682689099852850135897891680393881599082036745380792193254600859135831028466301406864242373136361442908514787494491806676931513342745555093361028957793552384898926504072864785105910706975280819785355463240195257354140407167201212106979333596309586588717988882601985397630621409501456189111858052440163787648483061578539278511036506156980697141419453378835252852592543851920846936649920095152424642136131386453252201725619342029480480477326934712681486359043327099623369592952951224634794636372297114827538614631703277765261025050789786028180538143155035041715456942265052705415465120294375390657039449296725671901506757084237693236299768152836756065477888193587956700445590573033456324523932374546485780713535488745532491373582427994284000539634679735734311066852149917075564386072082441243577786535551435815881418283225865311211148131997220851728271242241081603234594984194312817285451475208348823968596604967928253993673018827288579390901377664694921889310859368424893614570536544275768025017172701605312958777246410541588845766884753529043444021311396427359890236026407082949840389841644227443739881048392243231973801157203391951420985152912546560608334796404131084892280745311845111482013952586218458732300927230788778776233767893322551311107154726827334122299881905869753567480247839285222095698862470792464890429480213190101078877481025526407824496705195143414160480255497134748546544284117256405938317262931309285555883321162656544522261114955188801017755580193540584246142233187649807672114002422939614816114217863462860170031111172238424172222734994676710799242589404086397709885663818253136030034487274790041745066740684340979233503268327937276392648888943327276453606217185916345108350885541270209426731653409887665369136421897654777586741665570671222825846114835961169301233339181162535307777323687358160870849374094046323253821055012541454354299415992470893603955520801319107094843672773863851752399049519950720968731687045150940671308580896089009482870934134158118712162376764150990497369293441226172433825016654918911046953096924082748306716964263065614280148737274962406516472148936029218405845537972849936909489208957427890591624395733230377400045222391827740032772508217872921580832117567049251757013695143540119787254246549668430164275196224374149047486691877381621617783596258728037096164102009267031974542295073713908943949145246513437430057099303824067010693591802028317634057455799038990466371920109173302517933052335931910997914385178570100810605407487621771308181788954958060994811016886716394931564456735931957804863305755377858169461731264380171489082434766807886943381023600178781337285198397138146941099309728639177502931297899274458193799595191365514294163912928757998296634386698310169744905797560283539067921936453099246453471739095835215446213607297460851349184409257486891241370283258384355242825799302376103919173333459081634188417604730613330395085363939023214801039374397212066297100088562759736295442693258909375261250625351791487470482029755776617580947496938404324642847127879107427737463434632503000307931231696098312125823416984079348666829287059103887123705775791105899330387047414395775161137544977647970264469165635170990418594414597800967323742370966381186087101391565357429242712896703941627524236867431291188276917541913967267107664249422383151183534042401639703962769784616852835899924274003891948261384794809509237046025811801911950036886537809842542362378543552685837807376544576092135821259155506189855135280256739925264512966945703657158111739166059292479839602537488736154256792051214657221535644354408268814176621696375328906244746829873466923538996585993644617616147099903772025239844741192022283133752544117810535674926252407381098712248065206001057057174161015262759706614877893291911327130259004222242908485706204886279211604629644913097127304297263134175100717898358180815029362434213925483716792888174585418769344566909134847614378962354365303347866881472561098719303138406326748894191544575240020602178971262898825060665150587399259793283537274279668066962592155952862227866377881653079728042014223608228523246883576464863877816541610300598935683058938552598700238641240102008730238930199136231456931735319856845566027129091993707133265604177299119020761775137759636413090226908083720696162891194118742112637358736661798513419689490549063977189120163064085568259998395948268280358503876279148281175962874032529426751253680436256077371413065415250604423391602252069355719732365012353589338101620744677126891527868339200738071221275930065735187109646397905725431758654871599436850613246975258418927983829959583234888362665447045182356656732478833686119137481980930192588300494914783553427144033260372069610317886095732977913822232374768305100441409918363617283466984869218485107942029279496994071281447277502915893259357432299818108356319308829786857936001446299886939793185586059678273192237648331323141448734226932797314198323908484583394006822734138477993532158497446663521401095634634728410806142170636815132515342553885074616801915341310292738737383362247977619361152860621660615534734791549340486312108185398279044952386946411366358523253878561995331214123083453456867824221927784817586397039378455720648839536465023754885280628418083085317700828706833145155928342413984090628455205020837912689117764315522335933872466319092136899722124901483666162227826748009190980826965914282971766369455889237088307847122477623447992204542691376216948820596727563038314004556584952054444996820978305445439513000075818925561418600830605516462289979170823817992780406692439778369401869512922540300104376523128655073416677938655602144381960532330594450720712204990326046370416784067121715873826034909661822040073942780134622364551361523858278008056244593197428149096110254432191370954707593977758222540779566319045788369206276309739880922564358916535111769536494126142556282245432721598544656287430894270308251315652506950339511935375831100428409670830691374895114809458979613724470669644780097185365764953990897179687941013836696255833595906608637365381158098869072388613207107120180177112670007986025143475008494379516031245428120912222201752907779149974483278344258250720215608613221595847235989229927271361635219805706939938178542573716817027493323269302605550840755813650310696433531997363187019120478957471115499543255253351304606677221067160129243185607916068451799451568439398764260309079163626517664433270614239837810037663018662843753321927011254044347429280799133163087836087264069044456520415571705795037319658924900565609523207600813209426813524551667593699231229895284320287919028569943388529674276122496383944379352991973533142712045184190727981463958448847111409383740014209449793224923445361918844088951380258035738377909704794836136363175026462594859485368618386401719368306576559164233448720141340522537843662300388049321941286860095919616713708085399926996759636654892453732757010573961093498842184602839965314971355470507191247971642121725833461581986330992167921030468995620026116679277836980109064529420119756787576818891191467052575354764903588747488575054927416698917213456796504583056359784075491871964003229177608137815038842244542605387270600987092587702085718624658360319079137756919441490443758495734498151997602260858084643978004845400874990697717226240391938216425283751138702804221548374554460739021957655126753083367480110981933266247490513230132217060400020460856722826047979704467350251262379620883805647928992656440226119448501428342667749272682256665547169163593266144092983626816266087076368971247870897557543027283802162130176136271396478423409687098069593113069837528474646275622282499593284754873892881978284656596113874893895377658805401600833830875196634031146665035540551206698552560161088758430530005388760244558109094761265434100066037091453258015323613617729320568349409339418363444805766923010860039961924179410952695513547363399974747510156158305293826694483490108000623560905724348370746060135118909215886255257344652403236594895613721927338832104812376111831986619217370926098607359797120406572789788082268150074107382943108042638087851197131979275434838377338235021484122818716472225530054365895826098659956149449418663101328199633416853783810941456480952269356796883761641921919603622621684629431218375041866325009914514938347935488638904329180774351571443749540430191462499302092407373308665567693426629972652590393150426023174714290982638675226175100939705284043259925514273707738308642283356465262111378659635145636487797294752023728916017523311324262354967351753948439270593844162808283482330139319930248756210321960809789650847609723825174962712102617326256576551457243292973511916327579643272327411859872445469977842563262375426430289481400317750388641130791637502017095267945028149424887338223110096729418159383311996749542027773831757058190168109789603841991952208175651467734323928612612402411269046727567743816221712243849768621569199479948457583344582326788968429257450942066293118267086846332218921753493791197943736818256379427040729196149585685513162431704334458133070462000085370810389028781550273448793977335259370700015329821884516890255993997578331889728213373593877300163512566327219346493184197915576062289523470605743357137923044421228818892156518933299355556023209437407578389008873998747529365643968667223965034765324658212708829166280859245138865847887914833547573607857957099153051773370516925925732794958367143754538360968941164131499981223032488788010862794182538059478578825918128779969599026221059410012741002669584950269938077159802029958275600068833519932937997395363973773700460071126536108460662244692384366959773722042158924900301779250668130577176870089615031411253799149170649461543785822887614231390323759829556439363786484534377783278751222956402144009775613184521335867296165526805334379832690245340934953774366784056756063754925085845837379714273088066859761689109442904984873547280708878460641988855592734254525747372139280324410784247248791119125163955611435195737742519153989127317823771054565711188264595072199405235961222755470189517407258769874695814686306012560501907253254594819644663721615469186174344010890559765557447745331239878510434602010102013090467354929812621759917948329122947840557003211481280130614636375386907203699924841623786393625556051997948542920294846754291538860606358558274393076905027743062506477002326407899406231640745281078088888659506984835816043877026951425925648954261385114371003292290895000013754874397260438222654394030417511435899214896912313846685136754246892429159628521934725956541270670283759728541204681543141324170443398370863322630618760277180651488694391510306670918728110568614136310235868923082142647831105006178512365722898175240249909593762635113932959633340472966946139732549817800845571322090544209573845222450539522751020457013643799032547881380369612393611768986991058206170254187292511139046968006542621727016788074121044868180062374314381639669085562471838204095754802342752657545161649387029767754661241839821077320249592719720748583973299786141499254344327012205192071764893129408966198646997146455099451440066667680390815726626525431226937362908197924962252025149502470555756687183777830714792781969964949206835796967649769035649883972999142586752815087582895790890984540655415075969548651184766604276822137537391032983824265631252186970183573630730594160901137747434366142600597971280249830897025761573118139576148291801857368839611055569275682322806196168523051634405198989155716761239180783145327914999857804985198278310222077464338156338391978859372563265392625495609436671280286914181439719109156895931656244478641709939339807083807255306758536440154485759101688478338272901298192946210735007676642067157934738044652452152947311700288390030437378043121037012473620690746403857966994906860648945990877162025302443428231381088085509195862342786677321570788464232191509032007777043150783667939513254068395224050723053955880279798186083489153237465054602149316948497730870264886774285527631331220375982303779403106281163832293383135304579758225366009812135582041312084000631678949162599249585462334269188835906335771847536482267741420216024570518152888214933323465606514301798562108766282021481208741278571981190247313533316164198405000275158729279257537809074580246665557045196163883607347209702326738674126009624608284579731317185444647860060359038245187769470328315357969147594312263762082294771234044539311612618724926645370847643256472815747916149356081341838051911197008937335853525767714135484543567615891637040038619562089784474377206296089917702430554094636603793270945658181500422592327876922177023476857370050794135795155854563666635240848825842451277268414422323653860172895885116465601487394157360327007291993331588424990395446091273351670099056952882949859298814138094053977144335693715716288014904534371367628892757092890247502605644259564315013770898665517217105775061457944152812470434634310379427915322496709758684347731558427983096443465299071736881164571140396788488731409289943285441342192863866065800014695287682954286434309914790421854992051569159748941706647221201534461163188278045895697334884708496499673267077044184747034527680027650620209775700729058929885052573618070012469408184012934786128615978799541113581208780146847370506201586548689442636366852163442718367267473398149314292121667462158261942048904996363685682228885388578162307890757594523955665168024455973640847548544805433592367931693864749936473510922008222229812376388044745901927988513417869040688399229805292669221057981752848581015285793178901195854792961593859240103101289816081930783891830000687852857369285216696758880502481946084891894886002298026775529428365716371551808994549477877007076307956643437406588908269255286995618533054582945068962574848359629733697517326337330045829659145901046005258713183991713483963264263691440637709424863687028469345943998011394066940847998565596247825073799506018436452156248920797009537700762339632525543531706627203540567581000294422592511116935470935015380593639021475048272174096024182020135670023495113502334064326361988187810843546924049054974633280620608119098336669436624424934601194415842641696810710474663094275737600595437021941053018028900867736024674274761873246359374740743932674457310711089181477372415674912431499607001307093992215378142052130560770096647118759625270216840290669731993534865020232491566111372120612663308210697135033451630127942456855129017687257964966013852266679133031219244951772893194942916223741069737413220206135759785964573566628865377363657288220704203953539859925154090138061187463092923075798445356838078021318899795996828763248456061648995534549863196688747031821431486315960104476240509340839152618121092926011561135658701396281610737937185794951735571806122194995815718057448540517405317217792160159616987578640321669327513813393774847277296357747035388685348103536730191744167708171642211731692192425328924488717486334246822895095217613584722297108811164322481359160626214504934468676503487259702932292330462273069570670399264135936517854921945796077859033861150254391999497728226940340600203287715348629884744724958440647001162291612914574710516497473139961577743273706640903725071796200136259479916803735899079227258598777161994423776034000657596014714997915360223578554683327230836744641904832584719058064217675309252900232966923025165693291934039736582348714462445115600906565057041237882272145602261266061683955409209212711670767640091026267890236889643818407003063834303710255614358116925201124671802730112979902023775256627784374645628148259215471476716413864057121967771119457725327840901565134251307471264543787970696402698652621165295388483115361248783919708860027093333614690142041655058135461380052083296421350693756512356782952734403407871008352261024236936513856882109129100866097313776497526967649599235654784402335134304753658125492671128097297678554654884519707866333752645168960499447865077134703665162814028623224799562798478136667033968068551317415078508105144730272052231074566817360036312774450046750876324975232804772734332710022254921143840455516824015069581090330640998113547628707867080714877963834004031737149272450764050722029695187615880596366763872471869163568173162803091849510305445583810319610968077071216938069127240981134588043793873301960440346542011099698396417130900659005747192588416815128577952054626645352678317178835493952077602879753894899297760671202161249539027098712935213017969097651217041564966017401434960252779934659632461697293106799292408000729373874610512814258688271810792005646752383099131491098355576158490492138148378766980498946063927958460818537026180709596267509332627131877578418003450998466788232977649735081736307093408499655039893136873368551861971223707232229289452880546825132372700875720872479589371551769967411799571834556482299192989963545620012995642391768295923070319398910642505314522149120203010618126877105063724493768444195141657435047369776895739452262108466185368819724064302897071752172569406808299253715483270069822242699369166695391092178221935400633163681133943009636618095670362554206996153745272783046696297077259163416327363903076750572935622857892784358972737127589284912949679961851615039644532739150043950236123252851829732276035983678755190811639284014967086273994903790613753619404884307957285511379468915567297716935942912625118298532632207758001420134831602016124237695625929208233508520612182657523315134797054270752941806205961485895892768493076246977600815920768543094518065848360446245542296272129109366900035013422439362466945353308149315298031547808768004515763316898743527131760977923698134444462753686656788301806480665645464598513063876742484812370947687182291006310796523862385771386404718274643047716653310877177672929448722077238070529622033603128682639490014970929636676215862839830927793034284212846513496899615578304077548412364572017556643924508334733157205272115786994965853133469074622137975602750568124390324825777923139593878637683529449634393133058740926463958811514109105468029772658645384805184275045289479558627377255428908422082017707528639537953729942537608892315706267949413630542639679547299887436958185697434587129858600584232855542884875831222144799466530400454430683905731184922559323140045065816961341020552652273221703767040704541882658496982291608736022573720139565350542014589982960456586316954302687331201712900365396725102062000614938130919517630965053394008183461445339235670935713224046661258494779413127118152870909883556315928930398876469900504449188127718111992558304971743280862866255263963871323713604336514505110076764911974269128449679415526755213838346545156797205121899681160987511170365768982904013490627266283167608949853447012220341475737090052832747042195569298964906264642200669013256059385111544090764593123485859136535497839536514757719341817439123391989607186307921566488892971103582142355097131677968662950510914687802605781629705474036679039434405823625737365252430738663934328611067765884306660729324970117712605811692266438113263889457363015795257327439036575387232857907748632675396487056362389790940568388026651160146721363615068653228866104547223780387419332150211527353845331490047658278419069639009009016256133636873482923379471490509900474005791690672869167641306718575531567905796231749610481323045201284086470084693499027632997245401295567930319822865972632182090396207875848082488502243767891126811972888009511115858845891326610701440696435225380648498204851376814759616746462723914068289334451521627101171115000908093534387580394193470655229764420343534134169189189824673807385940847456759064979474240200881063701994231128963681641790111039565789477081301402810105158302980242972312713567157300911263043009999183634399129406438745512276657112180630637406503806903756806069411491453392449531325543240001469510011489121328909244264477596017467735996390919282003303731789180266979839874719979873115381488138175823015515684735355770732204663667604791342906160138104605853867506778464600874837593830676611983666814828578765958695294540345332804820597183950399057552048809348950952580175532298305539434982559004538307076498850605614983183429595411843571948421671063132517462585357951516097625464481544564875552082671592886328497991418415152085872132920629828004699871185729775191143175590321606190098142229040111259227839399372524780187457428752045448875388990241572562310829825207082638557664490726244174947653508547276364609798119875058301324215307619905575006838924018620446119289867818555669551405418673463135475289276331650389822521300279003953062101981286644912549843069916413107653980739345240493646567098422464597331483522597236431085144457466892364242734701225888495327663156308986516414202751671412031017320179769354677006519913616319857207188651872809581348538931681739853018679728254385015527418992000165439448031456984883543201727803700531023135431274875708700037308492565724988298808153994194703686837026678365468186425188851003114114742151512181222785700914229803246079028727969101969947342736554853141074142134022834645919519791100356026240933692393301880227316923180510591416711306872352228687802336406505237644870203236839658402571230129547899499247158279492577113314157537895549153072747605196742838250962719287347501792481530672875616872545058316222339809770018442841143623158038258620542328617827630358718605713914336903503401718445117443383807967176059321742431000687144242855898999058364093609351143362790291231442485968345863173889892583912810885453267841209266592157755556176774609996884698100395067262961147128802427204147171645725821400268785329650467637278850444308792868685737672432484353229744590681583736595604204215658063684294813575484242909802972746209647180078587945340028925285511131434472375585262596098766273143610357235425359089014331343935869514185790694346493122760890962355287154165320513928961542223347924281752434506583125005616709948550403467492003446897622883403461544518872950505892211499277298298428708948327668864802601824674534947622779267672435419791022912548290846546611578614979617546302419213167061132208726126951932250270189633997094857600486792610800630275071573311112794514898812848625282252597095790164331359043420970503934936624432612913437112925387311509864943513843097160861624335359669802258638729302384929449210897496562790297899292119823726709946745052539833158549171157468355389974023434461843312233322581876885054435427971607499489188770105706944477948242043189809214646501568759433575954048089823864478057471864069737658336126455175119660215491440031701233881852153318667931412458194101250179877705590768839249314060145415280278317955677807060809570551717807700937230514404633977569630684069949673233100742615579261562374511818046546641552528367640185337672237677932440132697957783179295821294534316516246383361027206311654099805811921779918782388092503880356906308397517451164684623985782470350068429288160846232670386075147382429376910331106668899268351132906806186877242256218488882071180969963637606369024228978606311986809592967638210993731785446095554552577541031538655682785981388780767063465096458494857409685024869584746452754473562063985314134342877813795564426766535959579901377809565361347851883262278049643443054677699861216857111719642014901231107204159758927153400791059850324222230998376140253269739565998384867955309750296629635589055701895814296327964386514818175241662092716369175145323275349398521987146283056887551766833467744409180086003979976768312192444111642093481345243612325636917668540524710438928866783424901572596303133671473328311327534617572079597954377969951501771698418372337896263718774241016947083835827231068855922568459727304033346495137186000836166369766123341430197865655787284433380489401946245238208008789461721901724801165348275477565735336610536832832662180153499985685282421961667024195413429683077160195038116181552708202713239511746361920695341856008500760124320779241629863392246125814861087967190449122264908048185877462958263830879468516643805815702586664672623589101299091367917732069195159717205002104708995544950602343034191312712167684510559655549316356874011620861549386887694674905008120159486031216192607905460434111269491759394706087132680762701312316412958944314520222493059377675444224227811117734527393556626436611428060027608431902940707026091744020805760277433568467829472469317708972680710605825642434742305974833853917110768430622557184081159614132519142612446849549787395728780385820407184458008071176259748195486476155747901244288740817480788417720918069532619529116943796434937050210143536298307197256840530731438716947521686476584461063060859048215667831187623169170344077850107538770235375218950448800504704480448142621354322489276737202953025664131534621684752880292983999977500633156798220698600947415021298763560103420921120102822690042624209329398907224398941252242143059418454488115443438341275722375607430170128681861620598947510151100774224640962645840221555595784333472435783092821503499648416735367149301714155563526401938460084817505473423310196488334308762645737656507350788787735683433959899128484232656631550256216497042888545889514704534154667335117365516658480042811173860005582670554317547857984669040030734706782601234756743186154884483232876789250605080036586155164946799075632487588263036280790283937148091981985607108856621421893883401938680219523543294273709763250493362242781573412054588719985568521440457595659189383609482679225034829238976686108470947018586423964987865978035884249836287984758011952973049418621580674796935485564883984881462593550361301524026538987060260315712979771444315007528462564500821425400946865164050163902816966775876468073591552497415399003039594184848062056884324552697779864789811781204339258006928682949022396911984842797377538788610923421856727257293617134470127401399969209233860287041856755843132895757045189377991952761647377576155906562733703309425345492321183149359894071996658725971234453690602726764479891544410158361108020385448706558419367635168560745975378898111683545754778604666488065428664930529490409935547265835891023222899899231829087682970488944559017012344486712020894313641707592287818488873878548505066154155964042823482029994300656766435707875767589339985894642653613450550204457885339808653914669540898913477322781335361550296652889570355856709970737816122571785850970036163384101158917127268282653179011470833968525058275074336114792253912409635942783089146171056144727133811909514302918838105724209489539101210505786294926496944200298174158830578581956484136447840749756484626713690406841930847251550984860715807866257766777229561385846897380439377765032502404001467994330806894372461194977437387165693010729640552214431863115839937410341620907239242515174543198787138200541296795201121297042863992083404907435650674499639433447289571250766458941664556362527657892276823347924644492548920846752127424000406897411329477151179459526600109526517163740184706069219946167655616939173368251338383859723064213127559387059914184940838396649285812996502289028965470341453373178283274347567140243961485959650045093235555787415999933500864751732504729883964018769029595392327009110199212867584890526631908810739373955769797038784138533695847285072498491557046102967686605554407199792392483230673775792610994540486050371757551135420377385383144671890715176977152995399183238152654136850541988522443274790065417589687184030798169801877841621204365886728211475684347820294924261851250424157404914114840953359584749680153173483680549389324924139808319407528446202628993001282984643994664892386084656174381758763197993481295635684520604211306126819442330156280903521163514821496936844997041312360536386165096317436223301657722436250670830229079525632106005616170051819891500810897121154105985858299842009602889101492216298130957628559584166915934390426445035298723018775315167101109009777153730082918048843195399759787304868076812856015138683480180758863278566082872791399913107318224947382284679503268133108810146938562681156241108371304674996473696742124594033980292303893214214978058736856904893897442590261580027749101518566364578569712510276304233770594454244560689805445595545128809372974563820399819941565421437540223446999977674657603272052043786218823883696597681613798401403950119186639902964114609862633653858157336096055390473335933084841421365060479559829930133029391265236362483108374102488863941938208843051815257244152043554050369316007314338894058966756827151579567451757556647578945156346913276669255645834076126541267105570161404443989501452071744252115089500104178346572388438250005580674695589225058426716749702147267985865128055666172757575024607193553381899936637086384244480570016660092880121231283430832295471378700423848870234124484123949628688452719708351404329011244913985416735400693894984433876902673705390617569161538155534605116947495261201804026635036636784989813645008218061513694619229222943614104697266270218059551189556884134834639643501478172900244662965912712969205663870466661810343393306104509701611288334032857734819501402936801283305766707194786751461875980437403061597643996675220236781857999280639578926795806395353789652523842531670229238546725353476767068526085575575972948284553814620748206060531104387470449742167938546402950718587865403873469153373976558819464504438400420989814098145577717050484747968822571887765993731179867233775776163596183806198510677834622698539405402691815300042240384681004469382706037051666616359468301546598832838790419942402203905995818050115643437511261593832679675881372800406036208840467435645801462663122856324551863973166974696181027168628411466338703339269992204019039554037258159317923388354330979971693617022686216133111602110152187933524484431472901664070270921691053544429637133981138963691364596421487424771901082796690917706605803727626124726014350249276836850820718460087252260428161409437505039511276921826522463887852053691320503276880887242820412874414149879075285268878236365699275553280590154619753221918235980118749274042102553309609951014181976362670283921376154368316121856852472003291353628455396787370685662774687877045341026082221147853547928271697958263274012874506696705556860244620319029897027436606598885120827976778529915042984196839434174721732952950567619873124634450570605767335558285423029038447706223449428983417912780762178618860420086459561108630269845300972950074339147041046879332766861808378961193879952090206496251003780467225271954681121558458507686364126047664736502243157419759943864445870502286718376309052760275193841590425834829658376114656251078015372603131419323571367680752322015464155916415154627543251180934448385203272218888008767129776592843614368631071198776834180299834117553252008219426577560622082634469385805862770276221339968840271391951599379684503087022457623216896386836660462962348443002742726429064420776830957616943006481028744652988734951716268281484885351946170973479721627000594164636367797205021000116097316983341239035671390116857125380652518260602011648242162514870870045117848139772073145946010995687250332492348480402312485647066479451483084846389060223411581427631834793923723434252857229392308738027420785880624299974333405581170692667530346795486440924488335409217685505767941506134597846276716448866420465442087179069278181219864829824798374941408827582557873587045175405304997846978496923040453623989891445517411604305360961151002171977058559839287795719569610288899423886083090003518791289990337624930523572194208609988490600425809792346598841936858778209597706736011137013051599683465256425605818409886214778743981749762298649126375207758945492510346482001628403202744985597856622879132017457632177662441589167644220794493640743000163665490923581427308951931400107238704644150394867042008256130923999808982138761284455613035470213881206477460244479727980407594641816336839668743074031407117344462206768876278658649106624230416095237256264579406596979866481647563236259608148988956192413134416913838895089091676898956395507611400762109176470448949874909505045149994342702759325885023166199066192994461602210671332065877916319409147412068354381936207179298980832684187788692614608567058755031497747595122972108976509876475015585042125606750763527232457566161610243335606506339173608219393028903008758187456677736071185779305475799003898442929776035143517569870191814838277921110409459178951353870775335105132433511250094891168161431685382690871174916199647074977091009273700627877734834359312498494447199841231419169578208510312180043020982951195164959245496002934067436769815759749428070155128340353796105738606125815686978713939970769490974591108730779479871083038867476507289256236676524099736580020761945689990198354919039812475485891326422288769132099944271982726173673283037423769979955101795921087288823278609362453801397594214309613751137440004653318873712771420560192102063742823199789607460945165726182489467348500093267637772942111694114227574881414551979642528721054173944900155911589506676096208776209046796264038406677829341194796915742591875806257474342289886709390523359704863632807409359125494808903910881366272010220358703677913744361736410984949631396168158800003274738925882271416175207853018042110080503989858628823612538832136891693293779937227184995997553168503693673149046882175091770853280528475812669417775809856514043287011670475900422084520945458568478952583079923106773310675223800485177141783064442022001586060535746727998409785068393063725381336244020091745338119184233022481454803879448339896357136041381891238524397899803618408250196213656538177012228893456407585280501608825848586580416576526580747917696971780885922977236031503344888310149613406849544985195679188098837617456029198694575215046316294960797754911064868848128263962855986300667414816112900114393773757911830243416430428389198795090613975655915605115453966888006775502175220728272311987225436608831195071487681413136079584374301473154114278701798767906963414327290898562395747957024281180315277323136744249605555470561897547317046383934919808478133394057746464485453854386792740381372080401130055310407393429279003572946727960023337764026757011738764861907745997234133929485673163683833021925695078727488597618356330034063587819546650768343684829205423774535397909527172382461146506558054884742832086372746144168780426814165583535722745874027828029506711140792507859301259135069458858062807139856570365551814103247293018273382350866914381602392465614715561158727880901873092534594485026575933149970854432806760186378565703725979336932810812622782333777509141125338685423935395251796430534377605372998791867031612823866364765034699095821159868643456284746620474368187162437214136953480689364291542820618459548943407789347676313489343760244855182212500909989415529734467599285739415495865504725849704219370860210112544207768582858882310311925671927538442738701756311541550070745632847231161617172043630878466437425227944091965500304707347088668622865371866206786348151463205405417157294662373663132059383882110201218026477386151544389411567221714905688448319119050584450297407030087049099236573195983034769159945229015278160985313620872284194399302323389892794533013646918834892662152009563286476382493302372057113608395250580536986356429031996481729385449358804975669107215856418010726959285700131323543522687601791761822172429365268688179652921827872122538189267738812420840549354607990882745298823668811033358761408134308297885350580820531205488875935411936680736796380748207289438869354040231246294171338057264840647261540212473918228132676369822336710361625952618072787021988937837084175609986958541865268324624973020941870263187311918861164724809116548704756273316057255901695744519812166238335822645366887500657024483588539107063520190633920486776026602782332297684854011524898964939225267537512222402386773145130081235528072769516173598199657704147992551629325899233665586125791494881438242048588442552081635580008519747573505764394484934563295132053512704027014423543094819921351510649883914566305834085109939190864111234767627265799086498272172906635386607444921995617665247463382321468720083819991987926363292555384703583127132897073448969989956523195358953231421546923566009230681708655105975671340063046312406642577916841882020883175930859216761007533364492754411139686015440716932649773838015093709119586589759391235298473352053203776277016851647027233781676711159576663991254750299091097633683095827886731902715639594379471166659937931091356543763392373158489652429974895138837644177016701850301211077647804956757893573265823181537648206372901207150015648920259041446243595815968475465290761385933787079540925105195847547822602559765715584716662208799066246004066215270713294986141328020336312481998118850377052338495623432192650696047094979058501289154628253931817222206281627982483489024955259927548101348562584423943786175510493799820760920266460262934243223557514842040411800071347921337352883533658503783699247626221739602538052514367399502952749346335482312258384022423834457475002817295549028400952750106854956704568832836695792852291077794795281968824863429187546353037772277368281547823994805499849641304848547534258017928417666699308860973276584739409050332072267666133944983002370645025941531545489221236008003864178890257063558315874589372537764364775010882147318701456868996721944339692699033781730573280969159053816983424414972811459224634163941278918917523792091304105387008566750863222255304942287622771044238838194534009067805784853605361706378433895945132613571687213421138037239460645974932877850938541958927632848210387961784579672846411523973483340042791102720648061414276272410375661041403333786404783993494407890991026344773940387143281408555847859153466523028500135557295790079778521033402140235954704778712574870931692326421373411938827643845038093393921101129598046898314384129552594085168618978892211228820668895868044773758065145264578808801448486948632283152182881579133874456424149474069177090833238851848867463539609848354624418066038109711618597229098176527064318270622180706032265836376299011989095590138112893909619885527062661076670105881481506888429447285940411502235100609613844871375626067329853735674064208151732074046156180459811321813037027894453260367068802805513118519203381177204993140976544636018400885482819911108553271110681809459041767324811529874349184768134466467749658153228285223663174911581055792685641083846296127326813166273725141740094710370818065606804397767865940116425925103097577358105119880989850928437523129215273094457544755541749652923736050387912603393769265895973843558575467266547654277560304147380698627474617553920040774563524644007016002912099760842410233323654888752781207535121097253761963158081033816261741598400751255795910320340017747008398165422303967681119211100078117977420500871873830644824357924141642048833900979195713407073853967196050138884006368687607401751629278984292767100520839855867530685014252241616835463095816569445662426706477481941354202289568750155132780348704023399621717535627086163571030795888553878540738609172245647488877006082714053000794608540174739495227408973986322321592206234243034514004523046339627837229777334478222677002311721606377432920884730805879964314041172717085526489304347684084752892805496110087567933945749277489472148930641477331653892911353547167689438607968601558512047864700920824175647862888831417558780159442286795298081056497326209315820822683371385589862921534071485508025810722845748177550080915066035833038958773968255053267265505186367927044473275751726095509954467803457933456849271632640850690249986101674655188504397971888858283957295053427823544262142814894609172745118828823222827938884989722339562561439085101023498966825163960716117140095649254235747693190159155101596745715139398659592188996549123466387998962661796168776705566094977835797519172680244299423417453776965851389458900657615231104026343466820970284412793104568672164868995016577426157782934082384428225680009703440696887990522830288276154954891614874229874579770849514051540464508287882176791091847205853401594040432129705563893425238889181580933467154126574525751107735326049061022919516055601491081889556879341027719828933828597645884356948464265450224640277615722339697587804219668757838525590768518368867975772579204494638814149289133086238896848557636546168075755869222977507147014295490738375186767406415443934233253568674566943140456770279203457990347575814690335496939307134023042633268110715523291670182776976359616358589428196465081010091617280708826175397627356247488230025163584475904072870817075168349868035768021528693554001602750740840378475306857824618376335536261672457453566633363843681531274866897518296088781871102164635842917958602263144380499115372273959424855031014322878691590750771695211023146034284467193785772531986384904297047746898330812459818669938082324589131524348501130867402578779420608630920013851868902513781656819333087315166015553203280743668493087574043281055149915468280084543726443445200429762991441129500329331116538457946399454287716972714871904358114025527630726345534958200099934874614578846960401742339010219849794884768226882771504099879238850801238462256242737375651214718055334244745743558453544897781613300147586855402472362745339442290372990779447065877484700360515689475369671435646535129741351777887985693767251566651273690813985130399133336451157880137471571918177097600050703729318813617472257613526456477841322214321314370191556520975405155556184160198471734715666484830598934920692578185628171332443010670767895077501319058304069608563967951198668613324420883304437062842581377669701978786686491512550465600490515806397888631027266639131311292267581373393693673617326070857042170282069765015095309594350761607021388537644637487517221654447641672153556420545972714199814694862667915087677755410759941179709495804967381856219528382268986297894104094943865119320312198694004348679355782844433290443994610150774321191684428975144763306274557561091051995945547386215265211664625976251312485258110305010066345252085806947828395547917867337762765919840754128605347654023831709828926172875083665879832664700894839896958026690209851308554077387485924661644375124508411830374543861624547509651374729697260313711932787939509391802811391606809322879157791297396160396770084833390657169269970046145319400859743182220518320011884283194866649962188754964995594407302051811673885997702518819861989811401933735377675068368445942159372271372691373037361036012707256992592823722556833273468281743305809305902071500812056338383797837608972995340400638718301044033785308146433851248110630671126586211993772702278711511318999688997869861518622527284557719074119662936144848623717954861260797255431777862608614069324058407225214579378754080778401679214384226956170745346310623649589755131833415237018980011968745328206904730314488544000515444980521680026257071298131417777749629608608770961942299927323873103714329169384585106196503395070171871055042476941987187375519617523975311640910624348247842148555561624967860810060599930199274243020531051043680563267858701088574551488002718647623390905795255542296051231759256217569508961317456482193890892366393481094624085367766026138157231398402891089552620607864458515900011660190249608813741585845374891487860702724859834985822058965983746171231061560821726373231604642845766480493343134873372014251183829544122963853715370925359052958310441889453738653124197303502180616789770550436734497813923102680689599217507629667286930150758130448370024535061796618790053361611189832016601578889889757672972347554310999515776013429534020323028355876886792014518685499369451538545634596757911875277666772396212492506980164888861997796421219612618293749832613289064814045033410242441916806983975557676671274193243417255222474770437444811319701253594880872023999420270511770327191601267819926059085001236965477764565349753042519664199635344614186884971825696632594530996332127307103297270785568182158782103714678462568257050674940457321296074383090319735468844736677690774082223668874485345600804998059724425625857801350360265978347825265029749118439849767523776710386003668848557496042917403704367918214566829998023941092178627842187693539566947365302729558358781178287333317574779035532963469929595837854097747806466560946104106196924203637126050179571749839455790531680055428650279411317966172852602949537808162473343520203266154856999296285545847695813534872226008045611682171334549577221076984640846470380761723001274293163760219985794284910781717980381736706844075091936520998129309110455910843751299969876428915605455823192074421358476922522836037486982302433428458699211927331132238251316725698877363784073505594040255222689609081824549642604511026361947225660590122136642210314432791043200261755090673854312438635614284321431859192953902840055923594348391705213129418521622490626298743941043479412004757162653363852975656999625556939471495024830137746414386441424841679590462574797150454036779151493311016225144406049198146362761824908817470996608735610657122977959321435324935410603099755769758621955340782972580879688577519341454871070183085181369611925058592222843598077934238613873654705868709872739580263475463785343763862270774976976710007057609558502603625291231452621855859706531210703409565448766311359603009791423638797454796860046895649021224799944343360662396252469482582281946132032116763260456722648438223730477990039500195324075595191458021899121727449652395666825234410125606387720080396928724940199243461624273802773195039240350000262480196372689867999197227724006908248123511203699361618800715669413323043249864405662021512970130168193738308959965394897423140424473416310027618487176754024712277748210987085908124516895948266520459303036450186609176593911888440153492764445796968201765342352555010266326048241755171738936715013529701390145687630330252233082085515185913153125538136094452970557539111818202048871997377190201592028829740839726754375959435747263578758106342712244359982944152112518711242809734798657042765631215199857324303841001660652699515454537162606156782122976151471946774972180115390668581183731516394868843494604619292440704433936806137253761186687258108560252876905299724165007222857407451508230563209157935318298279767356557374573700465562309100708265903007702989193384511839945272411697364661532432413829342364677233198713854068958437833396665571564827825477855806328896320882801289285038347646962831058498960485273700711584400390548250453566904693070932013832018249334357957521984652680798018938101968009043577126677681307561868431911305232152502033815047413860159090485964689606203315659545209020118403988122620700380970147309330932436670333376421631709826707358607549929829314491559905670320002268922430990696679163941774002621721398417458829504806961150430706264379804567053387339899829970050338267564754475659652415414930924859262690771512078095546786422101709240977133312671194311260291063388340419981501192721356793994153558875031905484840471045313816523539601317957825708678040161304291379691928423424693326024069975853943997396711403403162448661853973491567469938332226513640206900711606203552852114316311611231962589959107987065652627341547245531606003959833752411669746923915266612087304192041416794469959331157265680187751003680018600074519383023724198407063035611498453066363895310338917926719768404822251627455713896892580437733014916033015432529752443988750949901670999125223220096252314491798092923794617749351746210565344288693924137085607960585599292968238071153710697887085316378996805981358429895135605636969836674214952828323820948572884644656750713151620100798309500346045944042654711848275373843365461027382488377976241809775663012756098154534820828986102920011458277067288507300259273808163432867920982286197656985017542616847713998355857053066043115393447025456092711923214260813779513266153742541753141557257035303216623855127291622730033877772547944966392821711808849449698868584652650574175582298849827187666349186797947348287771713667662565189280473655176649398593564152807865914199349246048810333902871519212414617283478394076279048832264747639724371764710136388459066000348709242955138189783705137289647261087128505284233496448342867226023850353181060332120229722514951685418696535119947749566485183551287046959082961869002997151088784489970725123874191701959620677404620591067804427198599732920462177657771828411934870757311992644854020104651300475765994846093778733607982779011834668560871069216052994107207275486241767791933926634469924696458244571313607870834714170052761441321113944454863955509521946637003803724425339961556177378342749003115019105391516418272405117718027807911107202336641671748681956283157631919356816236724743232092569740335831309715112767844336432809670489264299297023969396611289489515651774450784806087008917261995939036776191482817314053070689149300342871393363952877884150588275484336364415689968189901219402628809628190729765126155114673831905590626757539158600824290425490060990650000549124356988774103997792272993168515248356769882284727363657921852195486634707980693963893572146413051336105159992708191359211166395188627083370536644368590944997159015469265936312479376351264392936158619283607044536958528668542725324479585914216943214215787924961748847008741038717813189488007090858387043745663205326393282175066973908242688039091473896768080056494057469419799990427661122074946046227227510151958026035853938216244484315831906158222938450521011211961261818397505530325314556148836745578404818318264708907973817126891480160721771983757639828979555595138432027739587977850735922283940831387009273718959405677028147362171749665838063110207262291151135981261069702477015186359458777584090194942103973914753372990275286964977316337236963237468661694616579018267355779295037493458433236305845755536573266603504809327869276654488020893469039589744392987094534877542669583783565966907803604772795827332140521665392919063395258698312844068244064546486348844242971493270879681277218155644278330831567445225919528633223314818926100771432618319076048845384767920885328780610077447805788356731610275482347732791318385214136493056139550920528500773541223931966099141697363833681922456310989337569539342176234057158173722409329211595538405977315087243780102253951042377722687499666722668313578202936150839285051470076046839125804807929646076691201033706954675283094336152219359919466227789409058208774793880129160482522698218149013551664757037031286563331426279517344911530869421426304985395130230246209677515463743547921273391985711302152039227048547896093210049422484624844685669494068429576777081617680307038076888430344522260425153618614104924192853983162797721376478710600296539058892026098413004948303463197237970183349477914249152906393503833650393620732080687971306498519061989833135600510278607217231333853835680691226996881159070984754015552161109955712499308163625084260586961090977648809989724881189652498362475002614159733363716437928072666366838217077678880054796037367954776437493378942372816348968800620457574869664068239636995080502807496618804575626532410825445980663684917696316195422596053409576085756300585258047055540870608832124667882983853506026524936957287571205018021670379687859186776182347818320233075459259912910634947611105454908832294786595598505585354547856361971876048485802103666555356269675523535569130359147675228470459698228397404225150249911284740020974779988676378413136966706686417824348525704376445532132351391957955648862009615282441775608575791417615948661692757961696263832877420911159455021233537304157236202562374661812328772143969569449357740863340828731840060964189407794199240849969372680015529841263814632653387572999660640258832786518868310543552793233653680253049857661584473041301839855948820103830062481244294897285895910098527623984411344014375934640696930625203249305427405890150481235341800434514526916003094980146418433273699321337979560816283869234085905077028854654866388452663994120181471561918583795755286532836757724286719892252301387789904114725892270771813616425286723550393396323265193598901226525635023255742680177194396997621435301811144114651772521439412321273926074219908391191522321834078987384827099827445407017805558638602615412125314108401752216132731406859690077725619301000381809008921835812136974357092153785882287185564403036290206090149157788385654302740106596314470086583461294170027015623462503664886777588647892170297165523290905667844875668018144956546164191823175941928600188688604333246216126202614995284849057201806847885353046635014260451638358940211867606328997673184900742105075474467092991777264469570694489768243642102086069943346218640244086601930834132546706473647257033291152194156450919541703529080502588742060290707720551912056766636667418302624361982756709213841018636937278821341866661981832857547743685203238763622352456424387689129414599737521689506026933758479671225558179344946851141672814090552171149757846341830014313517186176656148508210645076435627120826551147601749657724017046521833384368488939021145107492085384341668778091077755840426769970312144982030289986721209269057355645177834390777329233152503162133465313386129022436009924271997473696767576517105812488507585500747273547608791441914156520077789204582108125551518520618453119987077011632261154756420423095954708105420031891369733343747575510584572710793484612988480562332044756148008279101459000315017154626776637644005707144103830972811134950673815943480455994579217571197151619644638336061777267338687364907362758357423956898752781881832588235682490339393649162491761007978738711678158205724419627596647030109923152365054786527932772137929179662003652554465461942378502363474905223720590042990560424294003516734555988267653258342945841657333560191498205538250956110058367193472654169247816200389689142395329697708922164558524987902538179473143357606404686285634387942070227164016293631864755293706503506731168886930972868071960532370568842636630431802741729190040527679471882056348503692013859852465528630007751615811433460958453546127172167078311001507650644165733207081551499061187012963388721793910950527755321323240878959588101175667467894674746775722447988215156036476917374144370741170525627695578087302825509815916087832785290938830351076052155157479678228669277783536012557948720853333149809441997020356053758433835375623991650141624416278229927016790263251481170237949702297671123740348671959245809885649703130297236912360552955228843985279675150120501783733169747236188421378117614491200633767720089269249212891794495312682247108368763648543063971072347704130383969271189952663811595249832782721015784997712796861252860718749198047811977255694272576185141999830243896417589154828288580274191750026434329367157098564296922498490209273402176707160749091154548505765305365752578965512795460616770095997908675350396557289870212509570008112039507592139095748968440416944919876898534038257088924436180048249532014833498529863189148717193516672275277866896838923763863746344509969043778531719795828744030270744915486755853764800168901642325056372331647510943043399363253995652261652769952229978757500880588283743759853555823826440731384540707164662427369811932659188211028443791589866299008521512978560641509610198513128910247900505847522137646739530206368338286810563916383744129920201913071477915310467439194386614032884643086875217303570665645142861284273600845504491464721318087807687478136717525876698538008106844605857294049821336703441539391863276867116574785040335408808793497167237334190314547998558786470702875542170058698669714126300079096188359374028576713945214367397877660478696758926277241587157413024564472465043897751111278649364881753329812739383427954186597426387356991757268399611024708205265882923055918013613099368481167854277789991993815447904632450106645910672009920282888680926432805559086424646683304733037590159800218314022325425083751405243948982020433127338912946115469761804907579414263280355966532111845501835094245656603238538881281720943005490479798300665709210900179331113336264466497350023390374632723447743292173616762515742767015303584846567662083921067723382837619520259437004524941100380937277049250281437522148218682399578834668972204996928747846740899399840691255197336825112450463954742648704516782646149806552203831433868576884533262852163886475050945639910723958667621596732903832040846724329601410232083191273327606231313736974672738099536275250881055973807311397624866897024770041970884925762670219496903108333726555881343052798761621935689870597548297877529422220019276284224598626430481700521675002719801208726391844070838691046196947406426976925237578978280168985604677035148753097435995463222669302185268238222476002669677429392147713192975028953258027962243551440120339307459222248122582625269319155411403461223192801473610459845625629435149823616001497256537979628061226396205311302437832766350763312227660671323488429463042441393475238497776034972943492900540714598029094025832395662972148997547046620243733622240643178344440906099265952956180766316416755157822446396360406384881694399714982712880451114115721364128975238788721307916229888772128849870735531052521315528186777207089664797967229880301461845860715592873611716619346977984050727191538622547080560390806255557062793723561830374858881519322837884025991896565075239024647768526626766628291643294972729536585934337772661557809608039374271021959454059530803762867903299810303594040793860892090855641024054040083523154884591692046385893981164541503076499231344425942844299734586614496683016736032778994674849232269447119658377788796783643623365520460213531252088319052392075095788192104945884630691152183118603737372867732022310236751711726659174586766385410492977653217810713783802086692581543503457256260337576959331561616624748835364225599642030771825070545019640531657261865906234470199306037794937912212029159855278333747967709755817379717579860208382914847289090000958792296224119519332754486484543686880899672588553963311928699324721497664745785306073189480517469168642032527311087601716280641905260275004997047442361958844317058636895141508867252400501267906999511043469027519043693579462524860280345762608273171007193642971093949708184355134400080413990925485150454896956547375423705139077145756689639652531363451764465527929836424204987051849974034881890955166736008420328247220329587843387027132774087385242939127052857936736052567349415310894707595004477789151685240749391786060902561043235008030202270388278297931045282245121089211096308142675518208606805919411929304701103068963438569584635998271997777428518187968108486238300732929724447738591175963485445021721789471169348991781829929268718948304204790634696424808044346787343608671635995483481019498892168179549764904783506994547295343212899121396782733130305645750783496510653664580023161216735916967900562954018771144289922964657858885230302891830413369848256583079949369867578863674340684645955062376011587203228674861400568569233226838559766419026746288059832127548158131804313048655579249268898732494968800336218794397452859536512716381967888331330242433859880199569461808357197881589362820987404227925250335092029253531135629514436302091236161775900231824366222909814893212011676166939393765806746494304896092057066763271922635892095270345312248436480149814557220677288471278741735667618826757211119895133413006417605348046659377167385107888893529681154600315472708583827259420163792783435286841447414399802364875949212590805595118422283115853658224330976768349577744684937512610118524184921146518489612411659981397779545665513413571638441017118582306551821713232528064688343160894998021290955061026214273023683979055762881403334535298677227941984593433838818253254600201418624467652212502590597109789422411841737549098107863307237292611564436943138227756916892600744507046563811883165121077812453150912575507260564801300429034257566702712656858653502369753954013145811355230456666436631476775457535550505783822291250854234783132916782138587169430356183418980303211498046226799710398311169206860958236593835933079496441049667587162523661521783314934741029186128597391668355589541933961024065766972082370674927632683600934340244295047142772322316678032189159302839182684711416709122555371225310289034618775869024279318744935249003037008069742734165191091334136542484240860648658429161997290872727370863085185011489793186801033737456206289107326187406183066381960736074549726058577683023178653982873747373539521483453745106972387372846758859397850883629520268578482637706837820638129883793437479822745711826895274856752249803089657228261080638267866363119321965256462314226632171844216102702316462359865404782094337140477388795187877441265939789926706744820068901902276791338302842528466346030849722681105631934316715947166840374828065387098622585860929443672227006008366386265871149380445919537724156020102818030821609808284535174622957345637291189444738383286929900975662415443931838757876454851403097752524781321502651535818453345253356689170097460564452644936350998855381305199206615868827587143753565203071841356244117634767536197624112455132089852489484247244963917559078376422914212196136608451659124043799617760601309899526612818089342741083412999333227126138438877808934097416986513295065508881172405555844146975048819931965181188928503778400648600634312618194095002250661095627607207946785914185159698230898578620047600051252003909364517907277815394067634789672495954229261452671346756796558875362936495156732571353155566336386459855376190696242858991605733479597650777900546414655086845765234470198928065791397193999860683952683979862979662111621014662250598350785597709114180008246332537730947124921975797683237334863411221287334702462256948397911778412284303624508472985737541054476179878348146120362240235014415882215470845927753895857206503647820297269732107341328515390742492418740590270953154908717426144927501731204787945100286383466631881646952712793768670726611120163774296294557983024837701628995522787914335801311487905858052717782329418063880091818824878919858828469890326048145869695736465521297123486056090712186854960249305686874295996988523458248265871156293245204896411593326171290211769522148534519622319888660264938303628573830714459081381310310484763572154593311897748755240421289700640044227586577471034872577950405786730532079069147046718473738981693756758785477320352243383148179514789359119895984904436432408505109159772099726802716543473219998812496149575659711252169346875772083791696967698046379043622672807376534310658307528556165304290674230145622796544314550545743501444787776564830032131171105415195678863293189907525534646755399564168063566284509537311640077667450938063005130179929902392258966392397120187578318818274448053102667727035622245473116494934636697016134009835133293332883505239608163317372482486154086191911386840481270199870710246881085077187973299591375962379989681014216007649343170549257612710218726351824785836148008896051108313555663310591209000528328963338514010670956557275346332668287190749146332626873096291938385461232140723740528627051002370849664185884580712634829688468914626159294888320908577679537696629072751398942251603176821080285759809278807089469455434633079364639703358091828792476588474156654010985288479921817609094149968742891500037959108138726903701486969351902148839010447037506375946279760757049038385917410052831291241945245917338492768136745860659991427528258790001416206157618464744501593514942523015128168537240184795103852739755385905792742018116312905376452160891062328020262472427408323949091806535524396935198003627806981150881991588328733457727204509808546919770451191948654632384932299862929626505596358240262746721725902971825038858037161905314448585244475246085371667459431851648588886584592803158617676736938393907942361583765455741174669952809313629985088634614745393630842247456352376315406897096599987910963977743216584167770970654473465172839220464559182971351725191107525476606245225945746148344694859471360181620281050716938172432027131204630694364519267409070245459927938650133575154687125324788158897873417645810171853863825649022478225609924330846031762379357400589795892539642869740198766123909748284234602712702841368512340229802561799315655200514709491003386415256733904824581881027716804625013506240183707565188656316509195034750827012942419422330275175350634926432977770685749291021186279762497073722706865302235991371884213804202382946334827257471681901732607092232541197158160433536374535705168433950086855119356423368572493959261911212751086805844134653280824746271145735830184952672453185755768770771306364514087016113574925990590601092558795798134169535563924756306024824037598165062883881262041263900876386395791820139020345876336939507421675817399640428157827931982771954779875274472935693908418476271293821270495139434447758516936182155941170457635734868452807105648493847364110002563339808452092272304930370041145087202304286536003168767964487399931855706996596424401966376160471118199938833108229649410667656245211521283528467495245275472239781752161573830398991694802807460427053485370362237848308910724761881391358023067742064810457696134059745867739249664147362209129374720081303643879136044361309478503508965622890829764818090574509450590114579409153341181715511115692306984540828603389841468885149170541408941566713484645134072906389875455262331234548802664899448682389486286269926108852290342879951751712887230364594549688116924528288586901818611763291467709963516347862974842637471115769084046525770809307333059871897733922651050889504187505553165797368684743723547359107515832296281454929577863496058850404051866111825403775316813510720801046975352740387223600011813266014081514047729581880453548290325691257660743950180985876903361218529611820323890399037131322199575433026053283606010085575693885152367828340074865128420804573001791082764076896432381913115585437011946003924463412761291380534374708456218821461709438140227440785638582847288056885484504520189220807860405586515633774826586600027031604921555173208693932396004399311283820616888651149779773294818842108354567188997922506223352764479707549591968174888918532923741245384910879308340754204644698493191321197542469171676794605887804647177899422487437110888357774274811942942708857467236166419852799948320825592999412289440267388311773983068800092282032874534753669172111682135342735437593396397839973633952014155824663852168308440510799042111666279955745264614845229046496157926948406418166017648598017754889884544259076578448195798744900319149686175192149674477464414488299747847685369553375574524997371916618921455598509907660298273746848239482157537604965017815235970817268831567242479781376313725137647599517297541010840502429355749277159177031565588813674583748083308332970926741923641808049900653050417281945483450133716866584464623018361888344553461449578154759322983309019481048853239959552255902273303988488422369601109563768745233808328454970615776551922168637057247896884189896421769106368993454998391141033250597721864432196723767410526344558463837091844272635925868742991669995434507613276885707850409288246779986099426284758106593606716724649263799226498975318855410159856674564564810276315931033015668852407277811075252663672860294529836731505441787539551267494503499147635865504362724490704799182027092584046746048517397942480830507873542645939179141186000033510546073063209285285394205201797415554382467798259480945116311401133950924586505847931822069107769409853691027164711632914458405443134801340325080575702531675863598366093057658916624318345950968875466841617600802428409458451975195510648427299450429820602479239844759830577781582148377533424843695014950107138708947774737425456309708792116397726269929402750858169920343744760956207876002807209696097743662122038481726179658263906411302663450599573501899703003186315837514035503751040302342845926777698265830282691425382616722419756092820156901865482459143963416275004681462010510178436424741720359578394425575372325143449740308126193315768041120358127737297189685433793906921710065439204876573938256213192753616298038453369608385116535466386563289423715259194138575180266226832551573255821443265085906742768385117139742950676523433226193075581846025490491285544021388373696534163435920210794498363555618078729946804936553449374367964011441711501264259130467650465134817802057709244458132278225541183493301256534743419358728078585837087937893293415267467353634511768916684758719434711777500867865174865250175002808351352637442137503089562636466654526679521159105388677417229786146477764542577445371577275808713569323327135260991170106562141925394353948531663002779736168548533873213928083317092925778482512635420701499666711302612264956060672176877152527493367343326873503979193264571586670230520371572747056250574558274840800316976175591099797389798113706359314397353289718909374653832116376895664023486736611575186092357480500238441262556635191315670101600433345697682918744841624112536793704684821630584982547604276767516411980744549028392726173847400646836635784542760718256539586917408059875838018194155025835214253280317425226636243829445965392504173332291885316608443961146685615586681461581218420465173128322997785314911098280232061646421268070048971228909435143762499256730589593700591847944959303603194747319513311870022783054188122875345804853442538197572509568212174469673032453176400116078002251666332309524141366524106485731931142900429869138604982914175985319250733349691632169993812126544528411560486134812690944661546279939890014468232132957817090187874506968423366113541516692026510277320419342942705249424225638829824295243803528486053938903661218540579876956423449979777167600523463761786424442854594698687829519156852605289927653526655775778953903275648291689263214048619134997260035056605247451353328519318539101381428207630670004325291827589142629374506554640574632421797175168549616730017477783002498422348498140123700596197613150252813879834454901196690612379913548352152905612924445269818818554319957517581156852040071987386506392130652436608865339033477689041307446907143768783919134530306210928604058951509585569082193253769826666566414462360699474107783709940148124535423329155659721885924937709598853837028628608682965646950863334120621750521629103533862634220915201763802047658086752234716030390391942311904943180208276371564007216971195515654875853184314170583019080330614497051314803408822513470507312760842054727009689603282982265165282740090353448614052576089108183478289046457372112999453282376753967630425802683731407866435671938418354740070263821177386886065780400421357776920003267482502502187514966796987368781320725030541954686366006741735754938368462680020589462478118424964609571924486337459598682933093818936724995605523159897008536187411637551562922551764238755805229586542018949545242441276949682612687855182828736533732458636429699369161032506063445389471360048139473756931226343361492075783103908525800914449105901198055549277863671908159168790752426932636993810213928770705485857673172263691697311806748698793580890510890635416000301458193204508882853643277066333118461521787563158442404182947141692129565726612336011815951991746584969791081563864038280336127215443407175640838920391426387714267359554424634438483477428466368874949646576875168010719323630247352240929297255264933794462969574260341620719446509952312094702009269428961303474582417550797286426052362371801732882128509861580791377529782309092065193617093980544888493350678121505104457371417277053964323990322783827650356775701034289695939128087938629316014744021273155876159786016674490270139324031870804820419523281902908727239625758465280774389225205691874835501806334555855016570316343385621666036522705760867154396870026454086921835898642197928977181542724606636069352237332967379960612665496436584221470575545902471957658481913531722562780832572629478704796220230780208478213203800019323892696574411864584664633057779369964104058225891883770237923307312472217692275622761052561098293570905433427345503227159425581351397245048379787801398677039065840220666576620852945513476098227335266803436473270695728319764767211784416790697521477643907644945461287952254697966024716266605248925596535170543350027511280603412687235148331089255821642680783912773800841279852159529169382757744069809657797232551578467723704566669200917333815673856184916043136738198815569168533181358676474336584527768765002798015657212885006708485393511581295899266519100023099003392722300268823566171956972058937664657997782538501775725155367693995766022470322745885699851114895005441770921373786595812909602237473880563156684836314604977275287588857927459163890168840327346339679301063774820822934153511176258021781146825115077341850794094491808455987295420590745164915100678761239988006083088399960729852647097965059868763480477611532268161443203961622237798210149379825764425737333415778886297191269720017358918579771806473582097672245465349874116565740273953153258131089795020120718493589836529825400980966389179925182236905973864782866009804538136955350228541624425697360403499060562281243298695196980545341144135080133302550437672719610862604673968726290381104119175931514203240843460672954206026462450723577523645815523793058110589682409836832329041622557683616368182884563542248389732472563595947855146361181921103328774033998769144836506243893934347382073801944065336801072186831994771338670329932986939063126156409395010892917685591030437380080116393094393617366576091760917635327508352225282151420957847236843972182997048979372300311894734885636122246068487273014306645930780454506556042913178063282231545047759969836118098246405638531211268737266853625219780688138423069511706258220911124475776311525872292509408407158800328442508377863444828103753580630116897096645220363966790156695562294139056680103680614739170150838009421270572703167261216387211450909032904491457340574247669428510287227036426871497970817289450481380256193410286856537364369713413210765195889298491807673440118477127402620432284841665682257321095370983068483373583868770429413847915548961135277686938315228874466718486532310145113793358751958696555510128831591884936250979435561778694872082731332942700233812198125007362467413058402850157378801717790049968561935457777394964378251588062844658892613978282520238254476337604500374317498157064520362788113048276757236691941639033126445112520501456712928022779613445778320302472319317138586360088625034747481025079864507118916872916643735698006205986178055313003385040645496440180597197506024113712340030107075326749850260960038609714575443243420447239012160472889405873742743526495246198577158858570470836982201521870421102919629570007599583476792492772385541591768894210809816474263296174702470335391925983180800478809920385341425332161229523738111978811813649786245193720863598496879740358164381732990839083630176145582229553569860135171765566189639935754412308941951864881719444491958459380825350632848708826536222514104772813771232066178266626227908305810523637644889652748332516005358182228364276293300651472381755287877098575139365904000419757994540705788351242713281119451335602264999297079224061276872887786972698693960387997665466796775010740589559141363112825465553898475988828650377369888140529217646447001720764968632045831885374023408947032281747713027773637296885327245400941205233841399660190162014705647828973738976368761264743278284209043687044188583978775986974522213837875013949291730973937825238496596360758676023790060084170053438157369019920417527651521561363106766351179144257516577987596249454967573921332510239043806966143792357400443613592865997881501888623136403168549028097329286207298156518747851202725139778280714605602879594191850702077959611724569876789157474865839042784309166084577126247963084915061843961180435873779348213771197959241548250131877755664429293940756884776501603624379728586840501772999751353159324925077185460290605777590105866774260430428422420248734215035023120954106485909182245540113823986754041804978535231698917837840145812795644148572641608596881103931010683598524695373619758485086064642381700519633066194965422594606938819260384827716516107852508418673717520166282498479631962883447454355563600104058473604320443400459380929767117176251502879589651209824226958202528904183715716411323067299313911865358123632085078028076777690151088769452744265224891779771836883333037788067311864328958496176725988564253670163183969065604545601646292028074016861564891437662743646669948942492846037080699651734685540587853981633335212014204299432768666710363507575381329708462668184335663428207809823617128960588744054716194783386188556431967192640786878585654735512956902892380863883209438644115186125811519694279436097454114392107032782828025553164516065000578715634976593075734058141719804763547941767731811006675303784188284810460772116623646045287713854138180119526508656703941111406623416574302106943487022356591779902058471295603109411152500560820815774334404064739857628485348517649454124807964904688038244309978539593155306076295618961332044885779328667438393089804086854933421021537166986851831934047030292903242952005758419972167122757913366429984191570997056436378847942750163707307232873410673043645450382517088712885151218894235962394583506587299127057096119282614333889829952797490540171827481809507059091905435510549030625887346425615925614054737042407567919011750263791042289504924742513455105796769983297490568510138003902318146801948749425164518030007194231248324304862084763021012733304648542849050977002423709832032403125888497841209008778474379766662836582689703928822864796991144292974154295211347463457458548924282606645307263457555806862563316386553084437855136544532862360908824435612022711423229218924344570145626476399588512782094276017667802512471449573980180327475707946409548870099570828247748237707816974112899718089255956267304330246808764699709745581924300224682452043668211481732629228318614321256419540602632506358337514468793767056462174284218605862438909850304638976593379707631262980872561049772918721925083602938028785965304513475752078094869360435246084140475395626452939280363008943760464570303939864826526191596453877091694150604947537923933409958991287987974212030509454599684819375849077567450168193169425020497725586555380097194069815984422023110294687557519559592550786886296580222004057726304380934169712930971258306747203055311097125535943925165672928073119383977323491947836809565796964867703864896213647630544013929658616186862325239190425487129621363931970036194344821420236121644637158407100330298244443695891181348648405248150124474163659181777777064161427142611498624833533557912092463466080842043634021068794505934069305096493529750097520429778369571716253267326985788137918523935894254681152081841602099933450788103113850592057903623425489057656214304995602284813490149258006315142991037161182497515939043229446221945850106243063616541136529285885527370656247765777751424467014487515406389774240205011244540268301271888699828284165117099809310804291782084211736244475971131496755752595644449997236493047453380450914814294033255390338886506025374074591503176686750036740012847633471514801897157976086054261047258613346973914673161461187361756450087008281701009830297087039706561100805731282456026967873074217406908944951440924682333197304074532396966993997177423794401822178548783737479536842142124926127111090639330616483047181977843632475230153853368450526411811413063530504801587173792047363476345779281078542615230534005915520965156891059494933333931508713355326580535607631250911623311922475291614113472845220720330049425435720144350096624174718804889756716798867571603490542506061314783359785247104331931118499696776304980109638868702414755050752689794381031871870751336662112481847554008176125004948715384540983467536853778749679461340427248391066832500570475721068834484442335420328475916564522472447916538426274410327209628689024924924129552511733826410331057649111980059350034135081837004078504582444854679598512352006091882636197097918854406881927723346886314999253940986755148164836671575628686294810744548929466452933513777979661277100258084156796620512502844270782279241374984303674833693276237399481920465576401372985135622910798963739101123687262272247352856747745452103201560359786615320973782748090034615936656209901205122303473516546258363204856850208983987744633156473146648501061469453496593528565248507593549275710638790370761309964453615416941222517426944159902033579655434340983657582350832802361758865732583332047334408643033283176244322512589028874670680833190352455762211957696070599287575856220105960785318578337281461520805432948255268433164613781699130395285741833181870051695377842527213621583376516439439248820328563883787200371149640094290131235530119455499110898781090376952135196922477835166261178188669944520549665805604149831217282540374068563388654722480596660286913214136049821194753591246280658090667116329366205041048986874634758229646437134753403126822530324868894547988448857999916650352135650915294589412808197405415323953093240446994074582223508629110261053093016381203183470699811898202909854592350001644633223952497447989675469179902045781282234325725640000089207559834613445610790520828437611224453944533537729500184358902710497711083942600259926075875270509411040880111842626410925209024252964900710299081876448639451731254845404281379872157609316098024654711391147992667472816259036937983120284380255525420812131903695860614131438109396801916771433293245522243723326198845600348824485844293377663508252880778407326994994015557701426353091598475647448649947009300600206426777757242773783484689446249002853735165536577559313856633519644902634919164701866444952905137763727139308083493934751683472375202858311629051946348239641358984764313869618503677593969861144518858596973879173345700415798528351191321801108867492513610982239146197602487806141009205770030119885946790484564387639607989982982482874512601087208240446076496469471478041231524113453399891823976249619771190595564608087452861469025462687030460159037555459404290300963691955677818429912579286661814487321467973311594631351976638570818055569041540251541781581036646081235438284355570179034444446425974681739195702390804589257039326294510983537927636497396083290741000744419364074602405154750746761556357016558362301358520574686747940247387586788245520248508912940864683701832688883099857786939100876596943161395889749937709407637138102019577238212480489457456106956539424446516756336319750482234244403332188508953335864255616218534840663023254090653349394206150697925263807079308731016777808527949423394419487796853398667037360285484375774807441982652966336191715351607353585233956727469996849026703819766803954482111956932979982748863548070395162071304728068700394629101426489760863916013012315608654824149377839224932045950326721966107441184179861895335483569791216599482996435621561868817891026875260172501019325211971034914232720905538631354400943193203347466418305887034123897664180955963555645524646064032701036225673374897266971267726703428873774873712380235892476898828754969634127423012609605360323080388635688463515518221017593156643093498654550569697889929163296453248691096899968674295787820839492691378474125094642300970691055010622736927124227747612323808363704134905902961469415549439295947345935831584760537389457033630979980461904151594139996300137603424086143151843428460586713096281348943105445570554371124574638161986588455493108569284976675026145480783014478311515650623593498099452477201399733554139323218040466557939456885372180234364967742108226037383379730737158482150510349594082624106656605022689910043949023352696486963825604036226949949134486040252497668814195947589304253861020220660759971347868623658705423439805192539507793656348539874521465035811841366982266429423822358285670090972841831323256146337088289885638922911905750791905905515750233151117545350418529500988854071687281065590049705406245336075802380655090869576078469496604233660014940291042659542203656426954543143456844712518809331410571267554292210397619975525465871516583756815754409065914400716092158124959672069281667591719915286491059010997241624086868043208734278090445124162776341047789545217495280213142249299464248747774812178222397950340669847699052156799400744755745227144772705089023385427027162903775491350180080697749954473099774913604688140343860299555809432686015733133085897941423600136120611330598484704542056707268612248452412932738358094990602093056803187903944291540326488740887549691321934879970985940900127435150042358779497754207025910047713927215800859670602336425575915932870113172802398323157531396093800672638020514989186157652940377149226144267760878950959869449812149660845248157764010821041958824181322867424869104766506550371684956172811827647996269380515809840880752081820652196895838778827230812104388133061527556167817989544821226341549587996262735905300198003941644113401132084369912773942177001240000425719936357150498518785864335614936049308751681152061996679182885567879199981022668252261069923006380311921348752081371797359832140914685508496256443401039612944884347152868728015121903596751359790920960492200646165651997723313432227993021092542348566032404322534153375650952161279705689194904520729353847760955986856907134195335884206608409326876657095671405473631442029139200518963804369770066632715467535121609924445531371758670546368864032483246408116871936176438602268123726025041792549966567274891595658994076524216379285621047509991918480390297915962630014056635327600176687746117928225374062136398036585410116969064341044466089555999271062366753698830378906342668131424411708488128837113295733813198992618600090525790538592411802065453473583188609061037570110902559165486767310487528510710227135135256951252425749273839379118851871176951756887151350646090470500557271479423792205902776346355391902961547959467265674896333544748893704894323867959222932156952062691267478330513212256705448203240930373756575138185145538853996386496486740720011824436480405120422766180718464512780880910720052489446772902696241873130236414934282478649304466622916963535932416190079654656902118674880411588884156737383917183957040770529931960931093771162977778388688140702689890890374046206453669645548076376561187915274187988388202851827580471650914048769257332963103548408846687343062767711125690265475698686334344638014302292087677448988364250291144236397848123985402247454023637613977866830650711173666195229415455113535880040375582838864542579230833574955212598066296832150922307987022830352047662928250036360550871757011724348160044035843229688213881707923454278870051794578819762843051710891930379306059272632113059742427800873909127199833982592850329641629981025166894307354052197710647978129762846659520978984133790898057138070330524359863426711765569122834421617145315047156294138872850081838740337470377894653546918421515138173421263246483427263837473101460295008409799515181112610778060925376772183969417590773363967413901256157204297606417465844695086212703860824408530888686811160373525976843733234155773300250246388580074520865429674701110148780098471716859931035205895984103649429541744476453995939463029507940761121949228784889734400833594808687510083835524579157268989954427414656684166991306029986505674361367541431059348387277798782309277243768553977549455269324292104944286358361493461477181803238279762491979120166576048940338166008409144802036049030226803013079709555263946773265494027909950097269333222149729205101474968114041794588316209731089412105414468517090880653761740956654064462800548118065033739246962801682984429922952259999535548832923194697586693725125065930378764456996242803070405683824618152774209213147143083024990547176293750718949499661619226263652102800594999516308702528514193311162295582173988433703482783783102599472318524573492156027329281001433366292615264144405446953921499171150952882683753978154760773833989697199819349581160757646215921592135978408173196186789282836685022627031140053359998827517151062477859637058147810620378263298248745485496985585112351282614222770128099746139587197156348130893937884385403498806970760043375211161663093304937556112629065989026247678919339719057260451945166165171893230873434569741282075235174873589952110770108394505079490262833363265126402158967758583952991991826580216053207881959800001064317056974569789014893647133692874245617761575654131655710720670746797148301254238271229987695676908807098797853150117306491746651397353637974104441203243257690271207459948102828955689209270134776410026510916112967816695457742923307741317136709566961010210694474057200108180322725712702679985884358372813398513845990360065587836666306177484945240684290879836908600154481805911342175236152722159586847787481493650932408008008050275989925065604339352170907868371029230692638353495474253461358432327330691319942545998309843114531620323789068908044320696168535685332045685167466469478094624743201910113701842489385254671520319853203865769976111803307681792735757826930039424231439593300023048676794614998126769582236413918498104367095093839880544011719175996645051974555476767513658387127621944989638134235484461254605690433169866164488684224004057727809143765474879000489959511707098362746209421433440619521490327453825771014632416143479510470770384930425688767316103975798326429374074016198961081770072049944157578891882865219454317168336119254458821822084882086257004502364875509051618840008455755066709329139318737771390359630242527574327441142380775326394861778666498131868172919460680122647791395974127814612658251875179701046632547367592559125053978787192146277286025278758981105839468213086211779452070543987297440118921529486271503225133399257018091292489539252472326826991323609528307992212022790221953903131932817278804021862989168515089811544547964607103070776690987391581763068687722097380696263679334775719254222585731938088400020261028393903388820795671692876854825251719834483162042774394903973463293939206616557225808699385286082717235173292688450630010659071823142140853842125662552038564857543831840433372282794883071491215594511891841900400490608256577328623487224843002472472140946996532554815180552119682017808956322361515580000000849001248799943200449288903868485682414970035144763674888008170941993825035849705182270557814673657231034281866609386178364649274886364820099318477569492039030477809479687573256534644317064302797555724739998386260093901846395554622445918989703474570599436671927430771882046878107965612793322578153058952660845221619650689652356333093954139311763766530413722092182942209651751506831018009336090312243986371138116972040202606218970093265271151724641677804253238631994528946421042901119206026928940314374629705374620368672551170706988465742286804653879706055316657809020548943540105681134476583883552310866879299766000616445632492788018864993406188510428321333381345117732285980445612379778707901022532407761231067654973496321770949215858360539566820408735116198105798631436167591050668282604067026590181359909020890838531309079479800771440591750560724183458282822769322702588416293448855792132981073536315666927099274230431345705570912577873423369399247144502333020905616294192471833619791613044041883730463940051154277395802198760904070233275821266954354987913257032976945894636539580404512975492575309230739305457828471010596935920845196817233847048150907953919867476350017004703229693255033092394311763089264641867223111759371045229661615949735126040942785551784618044643025250838922605132039791529623906316502177657766092620247023685253156563385456727205408932168327796014908259230333136902192165071766309105608294532970980871464035618006708766455848643468011072401411131879474354992231521718865212297490917703585707567919354726864091203528330393263470153914785283648530542997570583327862436148043926778893772684759959269786495072415930110777135258600622498938643277706547343301429820827547991659296425603571067353680689009249497574653035565520100297019861260452622065449362912633658771175089955370089976891393348946501241859018000723139316937774187554521830408463757490676282153089648260201282571848435850854511986974611628286913695608394218693048802152416129118646932642703510001191097575928373110144813618534575203793815645016941249448917052725454341915250632292394598785180259322964216170025621150345437686647262420215386572407393946014445257610336163151742623851378897987875733352851143656820880753562436842852441160563200411184697098604835951333046988250447282043383261251569968692967640650188762211408334245822933059142906296148510773776109661531999961208276957352535016563569990917722778174161716442333155154482760306581425983733213803533914465414311281586027692560785309210518022293451629306430711898600903746520297474784017860935687117864592925482744691659179184726584804406321206922991714123133442525323664747103093084466269460373751954660892178152600449151987120548158313967048625446563154869457074330209521453503785508413490530090519672296858716418282220529715222476558592135827300409429652782374294898727425371732710386304920464728765414052601217411625372903313787964933146425001266842536037141475495639803119165523418832529281820637007587270570409379856655412852581263363095237697789044803272573877631488786645471256536509573890936453101702023942348657125180834815700710172185778269491396386371927988965642042852826630762831718851505970016196852066029939584425932308612888279112926551786627361322101350615713188497532074807240513820535109627692895555083039742083648149583738404998345827124584658474214193541994200026168144774351788014166247186902255139928258592612622887119765542121857282692052709289591482075829986905852197079023935772664008476185507245923349925810351546237187293763584179140125854719467448698984222044649966576463693557492577445515198348683712165946429520333449659137184364321811499492855430860834216004461515035038205401514790724777326934825231473211162792650886388200404194724577654402610380989097311526209736467316807497469424574241781832426742638753384806117417840274952075269089161726633325553415971688817357395905957287111954387874090952323792794236253460668923379349908152951530692400483478245627559405882203971208225196545292773650289022601063309147509667299600959010002297292333940382212844259127202198269618402689960871071575671006908181859616415203178305491808602253223183806822955572873344590178319306721176212627647949706991132464440108402056734203852589204383646267135435025172910349356112770368434090137240946221061898210222888872444203582226621574727389230123483348321816887226550890792992716930109540480746640014458484717974257978220789295223420760635155726625318353899760546169406554597831911795127690426816829576308688094039743427967069993997165268465112312554996004723824715161707524640451888189049458544533788845161650731020258122730788958051263383193378318713539141180244421437117194676218775003619802394987375222353497742776242967971703091481172212552483169943620743249569008589200335001215255591256678331792991715426073080195854521661665927896388866382412091096085097425240723934314984748099672042565336709620685090476823656079039165119169457124555455622704550324747345137031568354812318362681098294065310347898241642245053971462690819619722733416850451398221117427499481738465609097362598365895614375905810925888945686539770990193960777568382804611476929327127781554663548456911856545485308663483783227803344068138177625479011013595232324198134681736793984090648612617593741564279039670058151267336841067066966425790595934252861629995546059952650505395136819567871754517528949626919571099676962659238750594540598426635517077488212446079237193553005290473481838612230473292542491866588312420611708576654501278126004992647148321335608636482012335469660873818412016727494630475250865993354096788140947998659543100921732104328563235259466786186106558923752760987729409715075787275027878505198067538762367537463850612136660000908392903515301170322333769703085548442346016941892726992486993380058882691546273546716015358043186696712410880304908835270413515155041384369199178568855308921615937095893675115229760312350494930312143988028220269975344218944288720258571538111260736602293622599079467693154713931113733480086579657442273235314984431684217374855715931236821834765986622895378067888406757945388722642746122930955847415796686478115053082444581163050036237860495313527514537059695830415252751944761737241962693593394737655148620671201376407631634479440006489472620428014619581822870275196596804059600905102738051666204645322778352988406297732067099727914929171687095764150948305362189982303968485857729640888998481555743099820951636395200432894144324757776934879419090096836135963524738154228902379072203532953483004195136480716499675514541912246174036162049605964940452644840369117338925833278598521716317905909399575882659545420163809878996469901350932833335060814505108909217052175620377437364661953546546953835017542594224934139763375309123532305687419115617824651786408913185187049367060044715623579363804173889297171912409769314407813696304453882614061004125394451947867427367243140689187054781571284249623588831976020184563738764488248140284020983764495281997475867129494488343910572918593831743027654466231403737797929440880659060460598963078220718636163517122664127452761487132105023446937951876568319498524107000960396765109291239651483688606670790375602677418912067313592556213397255265620400214784432996276850168952251366887543656122213193195045731949732811034201974784313195881744323236841176167936378400744231610162027174249277671458082649612787609331260420930596671057522795959760924745250033105759038546804529120214966270670222773473226906289883660186704954725024824829870602451404016680271590340685572867449750818048250035744074352693735883136177996675428110250849672355807517788828536563730574831288869334590114175241018302541707035883354820752077173603790056647148295925015038335963891837579160756403122796603768883834345517524721578252164956152844387415617157739470817279017034392849356395953513660557323920266930948067619029835849649249501916431614874232001570085951485390094805800301389946535698649601516574162561033242710440974004635861496517404530682416961237430370806297894450895339894515105982866697209177024592696623877664778391256604417763557888883811874614386455704622993508901733282709226166889047422048912209320853855010354328094774196244454425823095178059742561654365597748800835933949825904833141998478438209741541801394901576981326130726355950397540269576643530141795039387273125531467217458254015466606364405400289328129611997933907961740682141041676205293919600076519078609946531076871328298919008800419521651154669918074356377827388960980851816420814568010229194673401908416908853853671295073677647810118013972796216774498483271271626274848856447006309914072021240392596400093506475105608068962939654999445772138026520644778829387439040047263224370734119226923154768715684045254328414516668298886690452534706320931032418679530987989985424300643406695850506360025377577631349170272322314692076400519231717158657133258486251530767331137040235512409214934111057495405224944926551342535559190558474780207139499326114137861764605163797131804537516802442601613949576483005675149275962779933093758697347883274026314729575495387732740662694461703734952127186708453612012376582063007394245652711137026832520646107696488122132220871685189201210378491370368656291703020405869806876161376458503880380783856700319814332503943692842163758273976205433229250671792343434477433243715000542405597219937906233488240973746867359115694853119293272385419540797037532808479073423978209819880061046766889228787919673190470913997317974367648102819035533116071176257902660773261573613896760244866783414229381769658526832678408199253619821473060382595014079431734338612296836350856882596171787085976421993843842718097105597128590456858540548585052638401915498363806969971886898816526135354254215958784445757502056534657972364357448287496277353179993199484921181220457060751470932988669081792390820898988931664932296592798070290255806989623710135812673012221783704717576598958772334758711834812489353600826028145626763337578318440879850504419311414614682944879246369775987640845014071052829808247429898068291591208087491027410504523149171651401768484434793849751957006761830513995235169837798788604039663823965199295801291960330058105691406435242832781739680290669951564091268336946258162526804103019982381831279587527813497300373916829874757729186297129530981882482007253630744310327374645007142512342766770677347611838587245552947915898151083265572163612402734403813071710724393950838398854268232635822162625413642855900904191551552268617747342353875966001250709906043263270987994841937877833724252500995598573937836814944441243302842570876872966507434785114863481280052582233332399776290678164900596323141518149435009046334638838642428955711623302557329655515294150597521347943022722936793358933710982541028871569894417713190736449358798413235334118671543084050100016899989358546103610530608568713008046428535188259694416680397322134915058606361422992801551410288632179390495786894930756743629555904012115348015633585837077160767492730062757043744412361910343932371443085667211813160847732911963511940049170139991000053641599403594167161090293155083306949241255889416044013416155720483619980137349959902340506390541849452827063542878200607991428306579864712378006624161836022085040005102789800161844422471449004338865382076635968913142222171637933190007557434808702530979705551807734797249166562277590791862062343155279402421491674580443405022965418467431523302717235674842696050866141598714146573052483917337030132829232651456382754371077342097690456694987935210074203105924118365479783285263788795903966502481036455413807953365443667899750556264969551344178267308619562828559666876328226568515663272238494011065903745003609677916998047854569191144845762013122997448358801503053703465511710897446846664204236354232078307950739686635758344125424310603902267040616086103208586060452085390249796412447547230963254989329226718621534689781279188682057181820858643142264037613270190320548243159914815901484819906696830027367331828165831037455835951402065083755239093041107639328138498703468788725750493236061364650995055889409661363656763333199906683796361500393640466379220015459763937181797930045242471409120012557797331458545266250215794675698803971481349679833478814758239985842516039439438242871358274896792669176312272537057323438455165250220187785620528436605048953379095000567939121170919200300563390238605680583103312274216513195669643740404351147940600441383699095676908994726238376428465923890743204043222466075324499424678865644678010065885039678337985791019702292388062216730473291522698159528106759013651297265815559138027382561600040485273337054600597261422331314912385131027996448684403105713299892435945761488402937418366279462078669722395499786352564700384095271149823265122370266496635643137967832552383873764851854539669489245863792859929848606067416512801286126957191620751499574243140364863340976128914459230843273875160401143111846146143486954179640323222807382795123267361923748969086185441087125766459221156757829254285887810131605563192952942709053345054398999364314034333892364801571564112916544794900518011560823736929164226622204040032964192793335058160076222623148082876597462525099725884109445706240256061620378095909811850488018474868498996867398731180655734336317063123756250528608934337594337890159537274793380340734774139057261150995517537887625462819239471404922735615700072967183245902524770786789908701599110925345704832068237692361405905899243618463092114352222905804446928347896736881510331141725247613270637603015056215985660617224703468140869213835753638010235750079327507731732434939778806714772507121318945648795502873376448325020757013886305642865940192951152581673042827369705170843491749247993566049461996475124077313817027917495355812808636014593702169259932490705502282827364607255203111064332264510429663892116110218277371258359240295842835945078749257811289425068158060565967985005473522005193437806536935297057166314457226330765860467249286534329746372849054174832049319199755290828735697659289346118668952939943760465370588250064978201194473620412124013181485777507769585750205793924741045664855219661040175048381869073409500639495139236546766091771425310828404321360804160962662688799255685682898194203861052146358200756899765123061575052461364085693541783436119963021573621840498333793823920766294840215955316581815667842168384187378000050014766991254303934202073299025914668419963203970837467038014024526857428340800619656532059733522020188893512926238526089395328287467098343650175255774406931805809454472169275276077831971721277945652628596303387067221809467695890324717650112917847385651087395324619590045683843806461258782285188723917615635804404840237489398151706727030233125634171532470028058779902211264868378900941210877570755028484353724547716642221965818423170832871131481717673303327595443478599553370316575127973261224726458416917065245811592745999204493536969993139414274775798976753710195629091403508987527306755468257727428410221236708720627591963697623643518089414117926295273858502131384561960829241812478735159885359877948807066488769781393435518791676814480128514597069730795173545866592130292493549377285068717904682295172128390483435302165299113392166462325315120340636815605843557636807836422335674454034473901770241290021688741613223453087447908550465599351275905311513408891527917456904029361400992626227382186118481451955901697190121599907985540363688869962067612334537762966874925925196773177645591100579297679625373536018227808720412159719273800456393798872925936303231643542382510209281211991094047745079923283429065609483363958137004459566056534432233449282204459393859422471095133329971310331837712541275410095943819993279371624187413090548400782553283518816142905133507067845438349247814648817827173378741735070173869576024699902963098850613826737588692740418075365540148300423174390795547742149027948816165667394946095571219981055917750206074396566636705298363180129316496459383373210322007217471988805454116502344217513193859248895816375095980858554819998997688496657924931637087956377425627981212063334983012647889266287743832090394069438062146073435679375910470990113173568174894366252032844611093093208133528613184689996682393009762309257548667476224933365075457427251951273323985891926596545948846250769908444184538983531017159107470210503003507411377473763735259633465287530656989226412719345488005863723301660592905453441890973553185353292665557743958464866881759104932878984580547300234899595939885493610428359388793618021454108883428459605767260476014775519156099545417092520926731122128236659336730112814671204749010673400403720260454748638406798336123520202932804787476935840752377469309837884335153580499244187123305949621502081346532822203977765684975256873637199681813093025884650379173604605085469932212236246587456604674549904050555944053776856489766114417873239743551970895156736396009430198698202327544230628645496224109017192533267286236978795443454988972964997588829736120314489875942434843958340909522164717100771737395093504508473980794481153677082218787664344993949130436846280808688336631941935171057265506584302731859386716393116480168386079414462953462721408278534059141849950557481379177969086490116479795243084339556042932898782447186061792584283598696895978683949879792546365303903791056872402102332994871100593003739972767086408385590527157733920531146736245870628905354306836310570894453284328229343848525697527070721008551659981881401128894723253092130385323397054633236278687824598120019892209233233287169859300801883933918812850487834120347230987423819985446080883335784713079862332646153143969305392219103189454719661353358118906361195200150448211481353268338018068377839254665084497518593667989880483337022393627897395345808783941388711130740916626827552873503716013258212706313020094625619746456173666069898744256413533156845945405833574613328791149134985407745857000223570461874867049488724088563832327664035654825729163907457121268232978034151927957842548766296897407070884122968547489818734008379920596612005757722738222721684006997772341788198296873261376949351347057766160677979110819765450236644434575947591645322191330616430277497106146050318168300463268531689309266526115796858135650066011513805500694668763521940668621447629370527258518844396684118559809470339533004830226965486211177000942928324617070579494721364205208479002597126435605426333785833503088751563699228649337491549035640498213194417284763800162418771607450148441581158134820912885626938884445277468455008112193885911838173018326201909457943396251986465389499550459735999486690970117709969529217219245084820174273036540835793795592487797788211248877786881485244261835137160055383496384825783268251222770903301298808819121987182991961756509652167002725620417459741142101325282489378488816580083803283937010611323340408531649039830686794371404011776985588012362772078017187365676574527264681786384662971258870014681204679647084640241349004642929148093632670875337452196309168436269210001131221512023526191897574022019789705246024629434062938582122440118251000123745363228281315335580414356731937483159063674666404414456372663327952988916524230291884764138077256312696510286637002598667135377321872263204839247146075486359448753684307042704076020978905716460430271367904293331042911587430962464005826077911913346620146787546662243636981571747387293472845791825700194521241936712268690912453475071474179350786533640241580491338045954652494488509906762470818968944482520272223971143377561464459752981775844480825132963194805424802070061453139584412288028393399261319422117349889463961558495680926010195260740699695070944468632553122421995530500578147369591917397126574505689562542512903022179342251610071193947768223805445871504604991208429377680387141666983348795676463714679353618332052541824850018453252182553613134271719595254727297131671773878756465600599495753487661876892161807460130356979889241829953137873254807345242376801962127821590341125608044995688231967697279464817983218688754519704711733805199272143574059702333714534003455742728382765556447603126763892304180361298013463083331611661229849563267341523723158139190115425492989994856550363841450985932446371524962656524248084261922935231964388581735612580373789278571727986836091883648239790834779035129902771657405275446105899455353585481695277687105573737950527116368176439615073696483371881350483969835326930862035387796382620162501644540321420332812711809232840648283414112063887307134123539510753904630868624643413006422238733118890149072438495708335232271625271440691209964566176076631415049409696764349718758156211619205038349231506173503854211346220056163651872121824667474647129197239990322969757056073583311376496237151540563334991367679202848162863478113266936256953432318765672891358544166425376507570554662448672420162696815069755538222065454382186898279470138290185022467506959522621432788467998261079721659890593266341874675121122479494318662220663743134332559624208100231357229472381029925435907919876895401816705616212064850278107121690329627416955907805439276540824014697169239433183918073573556013124211987690138624302472186063195039710927974103340328286743802583711679340672504046132602955509248927668902753410471940277057170926583499130402659278102901285660180938443153776273638496685933629707593071422975973645639691100297960123555453751629593129439006204380627310144932013671484672532664337648839555866707065741659401382702341972948708630347811746764961816144820137399252511124755509663529676457713297884275364269056562374677979106886844217747338155329523495332238687000454262233324301558004568950237384643731768085462873727689445050814728893762449354218542841437747289114588127101753772745226142727296944763609131143124033773876274718763916495676235152739542269974979354218245680659708653167425051840323963924141696392987630634549661171693968847643446271835533452551356141676121445403238155444728078651750356167333447939627997760327947692049434213039975591363740559936698868839125831454074767286117256972100132831408110016978230337572147001700304937192390692674720230150580495693554601150734851924689724412897992669881170963286275090253680151726571634809444876935026109355116289239381914316219293656884494449341264206070174958789202818693545460367811030452139751399365185092578275814516088589810359156994837264313762270622794046833617313776017542835095032354519139644434094474059006225877028132353847120415321263318968225144232214780552020063864017140864820519328586954140757972017065404903863072903735121946257190423098065549520903995526701495361038193090633101996683838407365288545268794753597913306724088985374887159678917468828108331709284415735725437488333531065476792011131425986156206487422048831623414390324214355772022865559476126841381422976550472499947938978645647003716816793690192395121034675117483730190321229665383504722490120355352222724428378255510123042153762794264322962832666357931925575191357191740442855964028481840783646417869392032982398669297309335569281015257996080868206254004501733428094451669269013336869323832048259644699126921924077920957628451509368117380213074618109284986136769420585535082351271908854985552559715854753158789181562482845936355729224995201176718462437840159510614054377292713092921791315910535473567466146819947525990991582183586863900410169551655240638231301309048502912965198442030294472023948873629267991080379592908883293650282287872013016164430704250170207819254459905224538654005354922601619927964523610016422359386799262113036957824768089530032679395450053259068740769206129026001128396401019726636160585756892459304450960422600382147681213273665295644534333953423704130878499382681687768829045421164485921984100724931177917535093571515401593901034751742093800119322989299742473178403807317320191547739366841979453895760513627355028759049123571172381306109299441565758299063122468657785777052549836704028807258116275069849236696995118001143391322912009794648181873588478188854418728106659466522806278146750813170170273686312486762100324875527860798422196133643598900705188635488242156028458141477702011800517434657397933531492536753528667045617910085921098125340748353765524577528628947901296477066325408238391062900307348440966939068601122603392637901000854591142586732277352575192758195024906542124212234584010417228246820886428144276930616811330783363658966287247696931058942392768656392904101168296936807240335655514261276561211832779243167669456136530107867818203389470082680555172881187173752260279037377789125356549658338569688307229853393862380636942908709035969238454100625457799399873841347377599989997329255767000689263371315414002806896994456078557647312447434711133158566348156430037682237296558290358355141213097384486930690360421923816050744649861737024436224303174292063565648995899268725874377610208263076890296473499035696373322073365718768757727357346385984362880956821597181586678941637518339289625061085206218299930225521993041292137850921564596646347585659136024294594154201019011551797143048179878572939297591739458961052103976521088749357012063265818754858012102932434914505785047116138011129831559118878187754919813098877889218436011431304011609463536534711607584599729080928859818909442807625449313444685528754041276519415753015473572636169951044827782669461142488142012408796297209141199405968168107878030938584028204196631860839484287632502715316717686060138335131024761773352295904480438371407675489211455332533126205349479872431361032620956500555206495616402021122950141265955693262925735991323416891366051330847805259958213510773795995747628503498737308925688697569569573500758157412579575978871468044501209169597166873003265058689753181471080424461685138427414222687350577074855315972487431098543231095654146077322760085159162516513042079932931485281988892532663218102798836526398618848343410818314056788733912754760266113276648648777300015245012238584304904803833540034017800745787609249954048837572864861937984559280768615026191843663840393327567771856836440442120790614620317777036980089491398055254002338040682234480889117887680798547592968081520900259342687980953116385396079187078384167821792678664739690120544417683007877818436906918023049453878262106644035405960834510812682689407789918445900032855540678478816713517721858138521329123916883121005811598703748728657285168092421189803037081889799696627440697457527324988912161567740781423732199893908912290349185046698575216627613096366289142525187121542106095984997091896129902904438196412678062584699901086359766007477289147672647764163040073710549253198883152983899200645352604488741300809369792401181934328810742611009717352759445492684288466542062569059501685560416584013543735296725301031038304109825492304363175376961013729007359703957722011131167120255653594876625085056006708822931119422298610324989694368115862704032575934692938707742912512247542737871204097323301459850594709073817756696724100424907619349935662067731652096699881161398980572994361433877886044834258324804599344049341290636474706294805739977753064304055789637293348110772245551331087767663945570050960367347179055054772806458524218824286404586533684476718438786871576940803297221318210463531210611166324781722849386546921298303088819903190109618057220383990112120422420186376749943277524485759575832622016768577875357683341858946477770910056848203191124179457642287925984421948442932749931593155488983594147179884185763511125446728602264505638775367898820384689352572080946096664674667831326927358254021708793863496453541208450925257382679816130340751104310471521156139401906488952754601838528019441106125681724356771752924152119253107274013537410737549860681336244364141617883705590717964794563681107495493433627651854361888210854726998119970731124798118896309862466088655139105802301569681642849786535682107131539455159596798303504307251050547441881541077165954562606599232137713037036780963050331717481591826136586738065966101425660998068002302061220332338308304922955790295970945147897655801390662008378168029262519436901736900594190412052022132502679287675906613679419757375593245114922981211147482566086791551165919994443218980651351862832118941935397014760080496327514357006036324894172193243636652391938487454977747470933086025039184462816893682381162250754417302657561782916716624760312553048300008213638813739744475216459919720894218597899432659281993307033466440288434455214814015642628386999194738149514722702534321478586286117167599296831328923838382997816347191337249643788796583882445961180707906315692836517923948075436349543512270181555911529349431912394904127352270827718858489433321034161561354731461202037033110725967882690283757116012328842041414614628424003721523006923638279940315866881401020841888780491306596430133190523100452079497042929823670435484380729329584130397792515652209621275306988712854115315368684236624969000893779066383764376828836630230037045887665233336483776751376628399766744161060354714147374471198885286668031180078219954350317127110799744133514700684222380217239281527209673956882035746269876658835883312711935168916497206570928428088690620587903623774314367845627238055032215248799387668437055781670076795019920240921016162479508258503234399233804697591175770802558629357125808924635056445296190879095210079830507563164511151159036860834126202874406801123918558095053576789857489420530596691899717559221364167005074998539712991288623470134028681479786491197697887247532680856491578015670828518420000884586193352695925986897863483202131587454876785317185931520762881833162224888622230078415387943460757678990873771991002873195745060329936378629847306829462273750563835380320404464705724812373200900603425194387399456718702018739969592287410711392850968442472433602325653510240810163733887607656614886283415709676573160530860673441267117340294448507108078242478224850488951367408014418304641758402103824635252424397986480771264829622675223108001236984784196804695344645034018508017939224321987307180449184846652823708526126967630829092036076599794112439906211496278612893825374396879622595275144222229869785248014978710376492360036522563780108123476955810935324561771944226189494985370706698000233521787949672295779255019069169913835679648672918795865571664173841197362872712113952606940436952403123878845578712052683078835684938730303620533180106620926902235522432843048868193115386028575525850247593152932967754898853209160822512268056645556926150122782047754431528840187975979047744180872804231724497425185468638797632624328700590530525605540922506172436364091532423516739384613466895883156117697754739379782861027309701438465782534434529038094834635702996018536987099850136371142279075369449383664166262161161315098226334526863954734262889240565789141816921664048564108033397516067654015684444946453147691792085750871059182836483157214497782407617012939145849428239637139419967481364186752514054055709159976668952672908010042893195696440225725749752792645107004390682240695930922610567256617376308681737461485755126442164139395225646780062060412468879650190688965486096400214128627074003848240717332619419868083201740370036621877950177478430499467613199871553625355283318588952803449521123508046264606716696695539200357897971941370181309953056130730874341034504452671106244455451566765822535369511675967027246847429197791153828920137790000200285255316448834031822076409967217208449220879616234399193553623590517540918276134704036437178321287127057505050804834045651290360648966178274941270290493601600368596952564613915382420574601979000904316551312196753633182867183446707425050992035114118964238506374659755900164463781127379192734120562034641359519776973927382633153829391718403005774620851683137420156548141013643305916192446232241359935645272063585303914628307135501916998095947869305290700232140360822947665245293449118930047738003384070513337351822236541014405107949031146256141517678782869896718658929721240189442206270192404859904183350647415957997451309482329810242867417627371155052920853100403326536630709417055162003113627079681718911242327759799158989318798793733070066075207552371461572913092451780978220132989086380006102732771650868356813761433740913510830504713213581876951566217939299954627241225015781491466877793043884750938651775323823861447445689254189740193775799410710116847969638794755633522867938101719465881434607381104618188921272665099313272812707816777486550403775859750701382460911735416989595812727976512601349257983897205676711214317902823676944731123202105049876164841284060529381735606368861402362493778421419834037475070462615634085627223934503640056062010496559850677328058287656095390603278812651005890340703047062040725259334294179208611732072358823594688064724575863413713375270821461851457632263682505772238983752711057667509215762187697651497852928367742462518896765631565797206632429775421537326645698342754208277283196779417107295320103743374401728002048559268031843546745897405024940555958161783483368557812324060890993839565263866841224340765017467495015259815242615465186846677114279216809508112533013091603716686418436302675721660682535030362548359741435423405977635990587480357085911303121890433798119320072156505800170752599377317829417088522660967959467819379497960617418210998020476679746127902099431264948739284013884563613667317210282944303401976517589417054744532270575469678979017028774729220861230899856041594224787684778129834292999216840053475573547799912272113747146128851230579650101941266514808680111477332876247020168704232663207208870094214761412754915210440874029494862092433478396192861940825989277759482338024055475721364609668362953886862023084880258138978988627227643971350535567275726031827712318997094670369133172530323265977732041822130329460881582546256139013655673051576628435528840186458444884060656086767687958853045806688052289899642083578103951694766108987274537351761448446447193915530280119252470702838725850690291921985835617500627082259442286662515612656252962023471167041976475465681866617232984336693870896711956990304549213471056503335568300290010818938700748896057142633500094673891007778445834226570905888114329947978953217929778882737486443069052271181194608720590801859705627609092999607991684005239768093644916928547447627763892629448925348581637244790504621343885685779031972500804920864757515098487731378189662133410791757036680065209457889371594931905248142511838263532228520957365281684844217111483764118413044955018826265947282712165988317117705072861570550097566031946140451683810828590251732953491827009360793704954982152842903016291182843686202756266779337250307378167872293166728128405797162116829322133977090906392916778558654084598681493424269569423969942864279654342415578234077926330446138162897112144458525002179515358618921307542631919321167802309962871188744331565392254716177657315839253835745422449136015548891439883334184993507778255422153003149919986283255294509520643047308822038336825924760221524730060688185043500392607062253688211630719087472412872452861305755596370395835809013534547661922487028059814097433781808133860506992155491149193441456453745107922902903977831404635994018148775519688680720723929189856122163309047758053779502945297469416007840024468711211464094908862463763057419391470372430840972111736153125462179041400178845799983718927467665742414021365642086383508038702439592729376955991522532393331489278439511044336370621113191574418709640074036615703060357440082054405149495600374604837424403507050872319458852046118919274324264707485163664772477686949688766551897132072738631116396307514798610090968683464866687090937797796929661653762057349471761100607643041305769871254363263322838690687185411532157812867373148058546591050709577213932935951443259450240267550226509341555776022899331945815472363193322728230777742444414645214620389250628825123440373270886510009588620195931738087775186985932500798534358652316429220051798907702491442972865013638574824380370520208720502332910232916962225330629013217445247918818363165283912633965798491866675500579826877048116245558084208048404676130530618064214677107912702005829843452459940671352437707113166675490681449772284294518596020734189073611702701382438739354950479547310762924833946283306692343979444087410506518955913377372841660217104139746386219472706198869337514881418873638046653085776109747580163886842022626236627463477331729458398219356183181457900193309465400516786022275294027856667830148920662126556905651586939333337032699607731007943139728195898706482569989581213698615607593978506387634308099913326664595525560788333224665272831916637437011003342861100387377319142501047497247387482547952860059558838149816908900520672653448173425499252551086512463649404503259683804027172994694174263108167266180806949690574073211826165289628715935370349183286608804091703901461594529206481769964570696805417587889745828835941362993745448486373612328821821361068949884130348677202560596530235637957750346223973941809804308869888333223301660300241495382083061781898470091012901939773628576249281320276589060996094821400590537458142342868849231145387842325075302295299524276819313301833172848952577775647271715754673457468241296882598254245651362961736595898979467972165399317709224651951238034240996539113245063226625492093320595828117036318752486777816424561658196841937107422999145339223047499508257081442850494107567852220847475511483788301897292789426823804224696546459137208626811529163949662494177995309306596119892372418509077944756826332441251538305703162657558645437138442604402932665029527327176628208360899032205442763088763847227166027339234921794906591425799195307672783774396053833688816867538879277200452870670817082518191780853267729133238970043597501600152666294009658228530200691979228419741681999193276715031074799183924789754031471863698795103108680976213570654155557588536645038799309319297395435806975525453338838946438919507239028985519606404512385837892739177240564749546334430090643933046340306693855363156346243536641548864089065844375094642704811796277585924994642234341855842027404090480063902488522768168460412328689433378572841302099842893705672981166386405337710126328942540137546657737283264239385719397977119969642633746006825868491281286963314024139224734211286746639063497563394793801551897081582791861293634127301188648466923503320515623691098906934311824284265575438932431528742599486303373480877628423819611537570559302703817156162574987417060477251808988427459227096551479604139459991484370693398726733585046983244091076066796550597832281821588922790224955473670249112366261973819464398453701122564440766038957824164740915270857258287644717946902287258152994885202947523984873370621532440804132184997995859322644305762768421694309428996815085577252358741985165833449264579425542922127045689735319740396995545212922069344950240175190123535749055518997037191653790791844049089297013829550871119765511127580279661518975873984947540325872049865913388947290556698789807324021752751855454324217612659606748968244386545767118814878000847609748620695772168717668569117043333374535143592227192360925346239848421644204751378186162117359719713450714602064320734940179641521236477481133738122583782931907573327628341926719923684594965964807351592516330439610607980902523451802477226919812058464500623204105805596809959522563185103602330145802122618070919159251884706738252431737887668872085789682481589116221061259462366198597233906238720970268370927732553603029640742513723549656346880566467838240136080349788405986338486811207093875905185299291265039292462374128015614783092277874246910467208861218537236951311935306129645432987439675533900382703943049880206024958521705436772761188658745257562320738293670518146316302465083921725054867727362234638152272710867100398355025090037698801797480136395710427107435583540071147205151349259798228545790392255899457027425802233015708298338831451835131400249923491958007375824726725172544719625770739148277276731306396269505575901156647130607847643929798746594588397279522034374426712655658828556797494462164302240995266704487055760194289078569130731704205835542669435627286363356958516363294515469835744897134738437794963105225071174467045853217221144351963600640632663962574705716428270186967915083701115948275437341731349262676105420289049290683702866950872308661974282478026641760226351302845334212019764693838709386855271184902465255485658692526846048844245510413876067258945489815737322285084903553194884751546881518142817868780080473811482169432872878402991736264323190232012343427875433274265041642491738616405720391694864092837349209643050093140887658453188810055208481461965898269687464778772443949029901069538352685836376628596619212210306453963291428057069320098487120821381929147916114037924405415472188518211538033926479548631872096787727480651219211300705000137913146971437660828145992884741244944636845302473180462766143762822207446445410569647599427331900086322844470434369084799107960189796953263593274970857057266929718647316320923561096871133539025211637824910599889772385845518779125913011333392387753852476052993961211485932803608620891230620029363940007933079319509686261318102667520247756688442137692676237551112647273447958529683689142285043624051747152443742089874476978398574104544415653073640496818560564924026893427358758917364901583662834650026245744102861041665183488215490797925569612728103357883348706574641907277837957327830981868032721055853802221404833450682807832096374699698918240046253007014084391521562030517948620555823493799576760350840278709334104189502476362765233593516959108086502351066638179811130012452464460825248527152854297050747955064537042042401440770028248919412731801839894560726070112543845854254014536140917823245718683951717326571171400421970519595281380539484386828974307461686306076681572539339129082789384431164628820073199432435380712818858719427661901681253405080327388840863167916235293031998859806580607846574928443899246704449230100131419039151702698410503759614171372420690363922428780675072299262840669299456668077452047610857386749595020329502742945639141380902549822449620686792632857236905917132937061536206595485316430220978087732655145333582111211758274799401362901432413645590720499510933025991208533883318077521815058504998200965731578963808062504911354494775391674070844218614377398415933173379314558650317197860225463413445026862305370847706367968351416817395574726092456863326249606631533241733996971698470876576688616241382609927088107974319666195813879226561031202214054586138872093869644991990290526852661062443078347129174394677347755158076839641757242156794275361151652418245020158704729100088663137605522001188572657848607292524035124508490074677062721023980393127299057513905237597378984328327283401928183525704471665874120168377459799167215636576253674586769058152921922488295106128849689462938378534341023236035798867011932411272723595211015120846890994741820798320951054209432768424987366630781929884792270700445895390095107712060752092753813620841424740510352002840480644969520731798126074351830359325551297801186362717595010336469518887320688707820779503142916401293563408391712853131245770919449749364495629227220056268053680106617029939786230895234365760460904556889689953943797139746866718851712233711104530810138450227009076953209535923031160015647808993292740824920953440100620612709849387112526782754018756716904523781163669708886761333685866625183352867632268039308664249746249331180945592766998804157905296244115929414565843672418959972633117005295910689327990865806529074812962639844219249373161018666550072497088083498568215332106320770267152430660813619415580299444614790570054439479933967688065175991498909457063038808586746630904650779784749692122374979353527784456743057946687147307040472162665268795435162469621510406760012572288136732430268217314080895363396683818207627271648155054528610932860535295006223457136388959783420393281964131009262132100033711050262660074307382352199464382399429876392869830412454266586038843163788821356046794982058116692794163595798081886671512795277643182230850120172185106192687835157843012596244352782453466703075000179698956629137246612360044391872438344194927303246199491155411576418477314875185402891464826178237171014009368966494340796651317756847025662236017058577351299868000403005444987852821682329186516024774119821258705201521622751319154433519820593246455899743192358509055880775942760637195536173301547225040030260895860965637685504947972517732056090033652686603635972527123667522542297533500070117484205841198758658166087956529947469656051908384788730291860698026583145952844851779147213442217735240694323272925340137877194735070389640215839356465238178368140648979445735576618035299768447396361477899144071356841418486751768650027349630560456389917479034824343739339919559572268131659744398861025571721912708886362905362390547679143697483416117572347647813610489286968724071394593332684729190428393534210081443883725936350819898394446772153114221890017173209130288974740206792589883475845856501559849723078561516560616670264539331422224689206285946070937763656217070854736339614156364232986474815230214268683223757876834683579275496715271419701979478604814966822548712626161601812569457558347736786510990324281738490319442989159689380207887399744886929932152584995743377700861369245253297040424505656950900180614783605136858709267937695547926391932571969938692809978649740989700194529365423889306388228941956075017603602121362654307976432702736830594504172800873282250686723190178112393588034049986632630019336013837420454164454434124940893935930859954033501678797564752806287124589325618184023189999134108225470066384354897758898677146824248019042131100451320179955221826444849346914299369616859385269851511021212360812127774353162493548012401713381022751374035861136082039007845070903347920215795073543033351894636556528630360341963695269282344279857690031879949016116192013606775763141859348413575412593734002071647905767631685880506075270697897971734082809018747204376644164728305880758381533170137523279341909928249047968658534167229955821540438563106189602300151730525016781914913140284872168652604366113673458243630823942975142052837373630762001258712788894158184893404016412318839537121044657145058919170324395489700314019261276811836677373617658706299701165599235631685136283897647524895859220713960110237460930217378699198122312767583273000335226838810569799819809256620165021126984155911904757302619459303916155196336086617645195278475868515649226098138891814590849430274707812252680494471125071250693933276555181968378508523024857363489486576120474268986283307685521373250050171326266747541754816969650792749826220290801533410185349855372504728382655267431302288617566024361390204982280909906595452854773169433254379505208916051403966023090645739879427142811719502369643967476831218756925572584809784560276504665342854656413154683612066489986038888451250513127088818123752369561180641896535005060339836792305571678618179745875402041686315498693518000861259052974541122438567051786704108025709117332394253112461102537690950325617150407991272250131463288491442955508526353907572770166350554496480394869547503375625566809765573302967119921074595395546229793734748911472342808370402593184256115724375304694928160090995434063078841268345812908740481449040783324288184492714308966954725054107882859905817636939915589339500757761022404458029561151203265827195154210139021999083667385732233846815707786807997441996428389083391913139039576860811506297050565184055486466771854127584093175990068643888949796948821532008014150316321447237064653387169129526978827051664374318112159293195543686037989922337212308147712990828938207612946886408094835678851905666475097435911316309740033746260509889872923878257744360950932935986094497333049820830008268458476794937256133049646893749310670082247549814954330173429358240512584402545401760991047043491904933019388682066134423505674501761273473221544685017724564261315775860591671224675415564855825681521676164961773663438075673862296967397471270472909913985260603642145653928286726679861965140967407100590781272166432241210401441266764608266505565683096983056010240264649369724492519696299116309231724141498639043909562278343310487852089965656018022309259599567771923050406399267327895252601762419401266003688736435587070183511461192694508902342650526051833697871352366240046706662163989784776783266616603958817731998315341444712437819397856390282707555003342312356633334186755103629683633349084867881200006039611570503654740821427409950989894738925420816425775062143421837942108249640334485051486079303428540052111182800126951443412905767988519731390442529571385376915527535187682868665748215113749900321687282103235922090647994821719447671727491188214995710072499711199002348696171623235001151987773359045546753436782039012292206580023826845078440883444160366317875320700420288692670299979221414917331337515362389815361603422836837762185955481296949782770986771150730696669230998903538727804901655444555073324977993922525254607713816164485449975554929533649960309365569134765855835127507616940955592309205295572037996290386430438193436029646165314317754090486223624077823792672159883482963039086676148210860593451760000322212086164657719223953521499794100191419247901299062959943809398137949734893534691812643204553610005408477160578635931207627926571263264489347778140748189621734134993442530675812366775542933862546403230126166094077128110892375021851178355110787496837195161850924376029577649364439330966427859633536460982291450898073485990614111888870591410617874078185026918066804205135084201466328587765346020802129316542450025155838274981627254652969988116086425476155822149594941434587670399833324740677014835374290492750899331642014144807598596810328976784377871751346235263530594557399633484428330336765537279737289571987442714222382050368036805375871054813260820263048003646743742287814218580177304397839865450492781726279017424136009088921043009401559375386698515750489516201676253662942775426265449564560399172227594533392620247286764484607552339402318113619482125739693103520663992760644847130448567894674956669003428977111124823477339260937543228166172982551984013976437441288979534447655447244455300560175591923009864764130024291872876356292251610683504399853088006565595923496986713344254989686124367157834337437497995864683992193938736771475216020860211786741383303107308281497654837803440295390021017656019501973055319019803891032464852915137330190741590717556130307101055345401319745484896292315606839452917387952616362114954901636331917829335189147897574975178283496188355546736079679152146787676833780362638289507765034929770397131981031083867976384752689389318714552783354140227347736477543694997773858998450839408821550295270770650566517661656782998459092351270293926705079154422286129655575699887494713303427056969616645754778685889325279106216724618679649740332544813102895042862478981764219782827735453541045718393751250834231863618608019976163779332425731783524377830542202427113285673388027041638255474640375859748220924652679679465757394503286012909327993347399290454153773213475985109895069909724874055705646673645610350236782322376119874765496394822126188410435724876499978689072963006768284397531596212611160456990369319878776292664823207463021129279195532774042949063644084997454431101875544380195925627897285812749867132864524469378702357308273672602701642430664591070685999645108404422146937590355341651408502087197894903189493473378160411683069682078140701667016976918099352858399104753761802171343658654656571796050784084453083967830136224060042568369589385289679196896825281029146130128743401962140426061612932506184821930026088939108858147801202574492855098464345183151118770933343183750370017846141121978926096538620957728375310649350311492222287108000603928856980607460687475535540061245935733706724598893729321047966894244757328145649136740984699279126078421712619816801011443623776088311199223135216565997354217056356822596225448394079398290839521972876591585303443677323597180691306654511971487840010771066070566365086551563629038091451408259010122830180457702604790092235676161442961267830054112708216971861065349116347590477685643506436455782796588108306776962854988148737929518777117229095007296647026504706116276721784173068417556402693324736985733347735455294828380596399825144353323071757772549396773819917591870530216583281832136811190744636070446459231156392138494491388659859408045033465285800346865962963378079188440663603738764568947383259378125879013289137162680525290103667076407628901618197434869984012153694883405625889776509387767426226748768766573978986700963600182138550514215742940289265374705215946075203109529346482881196456619667876159223560199987899743943749437564849778347838694297942915863729280353838534947638911883534571434195552499829649205996681984246520944621689067059807544619847198331302907582375929962680929438005335839374940104943187474327920942337511161117552345624390768160243322829334534565127006869697035489881323267723028843278635641546492289877151473930952897143491805111097763054748315558186768395495991591663596746370144375336268227829990606706861076909201115314151095113620680231585991996631859613980283971239410914019591584156937677535333724913519851373340355889010195560777423993657569194730654742668736973541127742718751542440518270723058890025454454163635524276295579425043590966488535840074877693208127335203979829164015166668010474803716523653684553836166343163226852713752214694167351654493230578293309021596880905642421718100992790090591802036626476638776038175183643747762275175663268293078977662846052942886037846914461389492861391637322688882425424412841399818715619914732191435203626990260291136837743091003935507718604658770347894538498004331041431209441775007746404772906369182059104371552965727879368713054832286715668575577909640500912986041856648077955626986474673975333796056782234625962283767437592729651232564269767103229080069112695248413518296754140213208641556814131873435813071790155910848653554344581465902833316556496422086743247362072348367346087895197512535138617191827606275360659494546750242513759189231164154410455534472403674994239052777347201437597143263067443489830167272311991470971538112725987623471137851836187672769739295587681668666042863737719710042020360098458915821124503301301674405097997082330507348127649676601087495804688359534487067270746431966915172057658001239064414758504497519358225864692844400411557000149093880876088064630344955207163472549067776417432690761516655698038969222244461351747347581404198127358696571307477609375729781288114383191387068017917959016853327220983246133530303166000726607344652300807353955037515579127557534128794159734146392400500501479627296127313390450253819169644229966241019320387014985805419501531896567947598867810808807914242224947193818219613169227994428867258056038484603226693813070814108554771206083744870902861410851711179317465147503041367237515352695638527835972299254619573682772619632215641363338145559007994634659752709096934067227209895979824797148450745692417634525255228430738701517483455718814782002303668687630414439122974447090208158222532137680046347701377654479856296594363478649574957522866793571956833156504313647474591597822532270134622473772229998621786907212412668140129770720100213002335483229273331235136626608647708035181072929863997977939237265357917021206517099343166994156568421362133538770149843822406465645960054441948400252088959895575894185030105194281638326842091762092602061776805911054515765886404261989858243728382362748714536337573717772562887500937235651959639465222064037094948106719519362614926375640264971756853129257362326422555278778203820348588693363743364519899233353828942247813549874085969320160264919338889224258448210594122294549518704165445193565651253026924586803967941809968875343424970650391801903170889087972230147182528642227567125735541353921951760509763712904528458791806101886343876801688134710980467082710400467956229766522125011542916668739258415789829612615846062719847772119717839822693323307641758550783572822390500110217769091843182210750071070528305301655308879822081278076184355173733243447554265239958977651060234950826567223618778752725421346732604588762556883686473982934783654569607181983180073925838155031283389474083326397184176975475016416962523271086950498254590489836632544364356280834773887494833641027921675609585963918222594810244942847367625614620152502971293923236120736357818056186252340032109145414258102437825995913752169344861677331453664396676158687161418361454092616518661432975853831101160258772581206142657079282147892807538527812263813995666855736385344978815417347783017922188725570700218522549742575822006740542012775629846110800701070147816927401408027429870452468187198644605872283135539289713105050783954348376233915578063937676287475064230910116011328473459661257470442939558395945942162727580953025706636277975789317185017786072375443323886620372771904755277860646084376741532282891992728299527415943433036911418470643052082108939414795261516949155971572583735675276830969694263026806515585955348286525041990518930337034398083823970671504308793199477893876129588821302108709459146639457376258393522393070866493575524354047543716980814907020802140076810428500722043844515728661644184012401122907308372109949061934636932131058219311433944906425503963184321002853274043429366709780389875110701639711605695494063694868325152267575599907953640954304380310802854366886904461773527707591662819347112105295169536687389526227739974310638539352458397455814102506067040633564826036896850306401912149445563021079128461314902395081138488222287635135099100360854836438763288959510482775966909677446732690414853924259801701466746358018219415543389295102444056301490987301020971512099554482702160345895575000839941446453345643444592348440066793882184485232066261330290419650828755640780157893269414280131133230265793478230133120210729465865060343880493019292766122446088056649601459178532245089556827875035060394296431377437096797937869990863035641863854169681584936426874569932570521500089589140858439986216621485598062633483148144653447998179554852585219160523025534193486928181903598089969902842337709789968268525824464097326796639176013024414586454248386790146824398795652558838333960668070259733200963382548101920885862662289262548811288169805206203061594614963736935908084401393311968866923915602605173023896476082273175795586914464933279882429361975877626912039809962036363784198186354650261273973118587909551774787969744313675808153760120950836257578423706563743976653616730281853801259511058259200207410531578925100090491686060051174377338560169785394641523132700371619022667005925690351891619821416371428903325776196525017435917649747865673790327325161024086706038307732568449997870815346919889574274946206978582104400753460929001320002960453320646026213884569867889110237642617434444679515969187331718833430328563471876609733941959611522355792491427954630840872242983254031078659579523242792238372000164760880369472663606745818878228388407094419753790531257036842064229501423515878479120354115931325495880997733674516246635983466855772267826590323797403834496558100330595497249448732344751121805436868124213213979698715816552922098497532974547710882225045895084496180993822904693560614722684576046117020678798512197875166971621405749357257823940941380679026287737380610941708689055149334933660910982706805131583605828148331534056600991495066360430392083595008996094899353867067176639160068322383044916755469020954734184508867926484455251142954821537902697356829451013242742723677598240699315383590429532689481508189573284983651076146975530078022854683562742938312806088319754481935468636955282312907724510166961433154342301854713369592582089447905286543556353424885557634737008485988637506142619103493425196254526427683481771705540134087746359578030808200755786394878877315639368581970249704669437834855769953470526092547735752215159466787055438064176191480306037281532943141264902454336332066059577407834040751638867704219076048903970758796969703731260182814964011179409687934886289613721481642116518583674635149951222457211708496151045233670713228980821989949030269812862276744404701662686034273513517581169820060088615244883738659491672472740009247900757268836606867249874211627363144931983800629278234782733260313615813837564197990310415618600981586016760329515057055449742796812892255048625086125887532212595674724775646917620250798634457691426470098161023070694381114366047198298297805350942572607077320674002460544432466292443558461825841185422555245714692255883300582449354619266826703574879650322047906786416021889718765895356608656887945161752272072095132176404323887290135725975517661337336561194555307133506099444048173735191982894108369888348868601348306837441475405480369118606049097726112333373191694486307090292995745656365962873056994495193430465471882597628073014051108486547748537553040483404423673064853264202069086287750963573639782979920670823608738637220242819975906031402335580791689328999843574330363077678020451771973301666130950840474557100847793783014932935498023662447720548912137453421497111678306255463814677026592735195114631351343756515237353441049731540167626026142303879617701507153480101790484813460207501714879036679828704116285397080312615885124097361007383705050959714081916592659025062145276151039069363903897072764240050501381679590628292844691459640846294416023709652696972669995872364483151775048689012480229433621174067708236783378274768005105014312382432992662484361752540203352532583429649666163889097394031625083084979142381757895101582499554584020346382211904666878586743969132798370645055858691671512862224493625868583139000714883671537648508211699055094444500544879970706937718192964406867336807197730031095318350865082032568212924991047793498121786669658542065176219037955798292048797727196816705906000296167711183927225540392240223127065473960383050334285549444170560352830518540605030006544840710696169111272694337815448121677190750641174116575698013875616374159523019191062552796656155928376583667602105851059142189323732726447884246012787667308949583628904044473393140090181164908485542901078897500511531820740733124457537879626599534816400427750846639092788771258818517187093335654495599373690382833405672142737099149687030699141881351745926432196405279361264461995061205548019764567054539927850577495856261398630703565963800970324706041548514676622161324969504070001920195630983083509812933221457544086646672090599210233615550680091122417807028080806819446409152099687591450110258481760286797315540100364503486470269492591100707980943801863082856337705551913105347284890140093275065772372585367883624625969120707098927650626073260969464853345927323707110797399218226905228365073811870957708367320757713673430836321656976852108689524291603346144230036603903478338737332820325428471739276468259215709550308576054779973892703170989826752221086603769206469451007162886133378845001075072104919807646746472084058690381093126320966919516869793558943596602217774661939418315736917359627900326357670211987086130044708846044922986356074368550906834246173999291278394160419643407586748357962201002825615014540572444672328120538629267662168781486436906655648477586587884561068125307576587576899899654513559194023152383956489291519794479870280454027983086796947995681838611287427168016430634043130889982234506120294173355804923771907463264275956581229021194858915500013327791840191898282665537415796302909780611644191478477691044349832808518022866499320064186801040925962348544809036149102190337324441866039484014982001007056410138300956591640497037062614389503973341100416955029391933480806441132908734642752265475640717288931340330693224656423069677589273794129909582000229533845326778256236836438257556732869978396874232004725559533588237651229881122723757956769891089194825362355431008338664655708898926560295106144703735159838472992775515811185759331774520875360392562469065120184691817273782344824002130594116393119386404634658314490825569955802365744193692613821437240361033606240690765635714590403639559187329747816023616868195181916556510081794519837029737055347691861295917081693265137285949788109819419535390322884711275441651178293393509793960561917933319623111684992664815752314181597048546354470638540823753007654420802844844990970913477893635709700235579167795864341951372596116789947489190038513884180703952268439108028087926108831962808323408898062503562441840754175277475602942132876264478975482207327699246974497091595162383455841321484485334620507085988836420914944079169600968494821094862435692339022532019991696504257607094685187310989566373641930450912016619786511199070369384683329701324868423665934887720036812727474735019133865993354023653930897138749163561824901066143276117238321379799104208675109802283731549329513317861785579374264094451044296039839222431497111277974834059892467562751953052177553099547951351278002541473198616606192392240034524123494754295674560743195514562754299068591436800129500215946510774821844854739139760726529360568395466238279930356823418067058964026376513859106688831017381472029277552853312298188089630630800689758336734582881544227174479938275722981606956645319297250097317194245238640061766230994358355958312178090372451847375066791422909501719649303971200555672840389306931690220395800683234931371736933384589628631515113882431372669171551395550494943819716250245111482246952755351332549350891355792729284280026855186230186419381628565392606037402291460124217897197573463912743089811679377146196412941386587688549058214029244124619330942688739236200577233186399654924592250667795534708119707461907767507226217450764714154314876860646886966193591304877594673310633447215854646098782149260405481260390679372594878051073521931623586661382750411270464478806582827852459714997466930825922268913175687012070944893396592494255592640067795718755417524198800958258463052294876590065312466248375446178828135162368090978128136205547706675461398032622469284072509007802580162118350124938122779878568819574976460525024862749569684554114139699643787688113396882405386432258926599286294760357028829290927920471174391289249697861023307640111126392278237485400702341900144032626351288302896677201942387709381187034315753921453226555956925942498498467453428888068167603404775865290170884160075133273965457550755960843866489010726305259378396191351766982921663471553458826329445859583197480776536875211579845873849111227988438130179413311821998722974416240585130649077322020340788515150693015038533002474692290866584501905771098162712610219730212518766737771566911786911515165253750473725395690297054537506032618427851601947229355091157468606003882079584424466958220797892674989808735143223239198667422388073985959736452408712995310618451242125412977748727310719823073511572516151278744000864777951112456282732725795831823839944758696911128466933687824651849664684707183735093459371273506925015682324831693922254076020093638489991729828338194680492887202632083011795281233725059253481808267665862335925855724142487990650519950849116909616303790395998932349456079126144578724400991268927658198527438135254136170390170791352058083992498771742404532572376866477649666224511220418583279985254538341992106596189949373556567537949348587889146460837959231048289236187012796523933038020233236112830806753128775166781199578825640491807898955933728692431013186422293141036794482007811855242786724998921214076670042784937313688267322763092458376375236826297307733806156180274766044573999783383268229680879396788260877318444556518331248008682691851104189117718959993524208492005166900551968779455846147321371365373304884660516979919446772045187760129762494414830389733183089268213360096927970869731919249308837267618823718110959820571395526202264618769795569019549842396636440169163214964525543192272432524255399116065173284907175486015266611429349174826216251273704469028447743520776625076672622027192952109620883444012260279383880620251385407520970602682954337253363272962198668757744416864797844009966138995192888997235375124981540615239230962686474889185446162780875314453552208844958637315453412106503506179072044179335748344825635165273709020447103992896595171360565557693528836550427031185731845980671108940553859073348137144839569400859847075472460080424862877028364217007742363587245704684112641357259137900886729037349444487079490560779001372560658929150840202430894877197717833032351291773171675261668036646591913700157234261664344227592804227503276736107842686141812352882445664481256048267305203932943362285089712493774264479371969810100840001194215219796632484985534376759466070502159662824281973676756078174949989253514662050817991878151002805281855048986814256961755960539905239403869003710756794158827207072870989407665944936239907855872155603551094766895792505642419214312641699030227268577029567802938413052077939305403833577062547981457901800130637833883353262935122705384841399995414072117450196613718077624404582819215927782618388529005724635114771044083160369317481129736807759190303315410293731917015580340047502557382552201962001893446721893229538405761465174904932066044567372450789110882241118213106948004907643266702257558178650344006790276415340764811373652779085665852105138193866932420798691053662338935209063482618083531481767696836765337881884807013383664938241660464670500754056989233213394215307716856831243704871163491787040169658771850954546035550281624445862166694569467404556658557064777342623910242451596018547789272177459327077171831606545133668733997348950701990124903806173457792695948163392530275210707749283263699034994016196406609514369206769472234678785147750181941297133816421920128337576959956709643140094246050541504963770005963408185803989231364436055280406601440636574451903767113046380399703368827203005028688593465653756667855816543058086891944875607086234197218631370960627011034242327523998803881695222932501319828453922615668026627079783452864474118143262414481876418929029457740650365968058346736154969760012841754586266524406787796051651399944682370762417602986886662070565000049537745645448497927074738838800736238279249280102259339224368248099246802509741378346636525930303302394848950421530562699954737601391087370565289691702915991078579413538842178650354568680656667294532437591549747356774517032991885759409380167519876965083081850772544268011610515968318968350182820471292510572548903014086236930638015682340111893765583630022403211083681481482577937308701440150022487901376854483912997655220628768550006850471046651063276847797257867760013593062008021378263061670331349956962502457436709591226942701111331972847030314235914115391577904698702773423781595027550185129741665968661174303506411434725291631026366283305347266229326047952673632119387322838350469142166177121989122787083185722374442034207607716305362732777605694003197736824664987966068603223738009205876679316108633650228717249409935468676991522522476601908601900205742794984849603101543596009604497917732757177689567160862212169029828040346485920319611381161766890771407274999616712788169822288040888122641017795955717517756031125269517246614498577402778243032898913829192009303972373765482485147931789061186374827649151582652557253511806738480971872444611873047769124897327541854186675576770611692939644040943120290011698460027200029864569365290588094631673864057601056141700767632726580987487387176685233200781040559124663058145311573450878266110151475461175512358495699322608779219926225402845196037791100805266967047719334538297619494392271267884213862653958502720266411009505131927936059297337176412104572446481719105780943314569608346105537466096220498043053605038467647195395653164794192433006785480580965421311658266828680732944197452814752428168091222843175406289748948500444418354979972501485054152104366820448904044853526724416725085307989882128506279116884709211515993709032406177094521389948172042729729331358987218071167920582908622813986409768105662997278165248548067044126474734623599777253002394240894288349498909950647044440258340158581046407959031737681574029419736173663605819415684230842562192311909570876845210359053305224297840068991338169818822767920287572635703807372415579919715790153114464008796451508952732742897669802078668311804267899456228410305818088569935514923595249987513495073103629873035402383594774321756517620895106290986998624677231652489423898081013344619817997218181446248668346557913772963120004222512940235517799737366151247844493289166674656631256033076356716597053199362468291207962513989311607538831356810784754908252578116149028704968004080899873630652146161388115888671512655072633633774490899501200697008121635727920141800298049775614091715089837264101021659307590738509210804913591890828731431018345439928443736153097172171421175058889427652931674174110076556998819766921168672689368346125090331304547262503552462504550372337109840252555193554343896542647893780261481590681425646381480806396574846874717011235260706746033172584983859259593136162741166024101998250495949791512667541737995196429081734874316021538571359726885654527205143248229281675483668656956037860296121996759943228691493001316262523024517215444974706583744475395221735644746441417587814967242318763550584524231054052409980129362606071919331661617481693154130371719248751291022769225444958547650748812198400206032311161080533167100857608990660157303462359325562533343525462710304851323531564693177324044182000743088590458276171381576874042258163714526001828125813888441307469778237276267749346191541005507555988753239533206912062010913763921798719921078857043972442005380929063721866419170404252658286054095791484059440587785590694476683405367694524586262632431852677261931776300595260826107810772362006833661875598873181759433138404007312682934373931628069897802797851282294767820794820767045643928517857699562904496552399357818193668650735479106878958819008429621956804381908887788742426570287886745124721376476612268515296469466807867484864564964274132603756829128629962971591177262794268037477658155533953281536538767223139862014887589902524995932950639646918393886072221718466341454605640681347927409910455498525597068784446493276553867279430230596393575580774107563796675915790544704914600236756676693739043876841827554582072542728432101311321135929722854002721764039964954892230155243505328811940811393812935785323911338937653972276120545759499258688211020721439976663969276335184826027757457588796655640603968642940717418548011689552781835930017824969527394177903529825140215165471420414813042671707288936046861913594276755367571784691147244429073558186524983731332168299944708712293885497849890539330733386607479464349259594716791251189631982330494391249418960704090366825415324743203505964050544543583428537356898299488725746984779330623182652870177787921361300463467393766788386751261198301745718699748057344195019258209000534292722122999866172182896003108808713767037607438209167306979112284539833567385129723049318929660590726076873235357649387933347691234588722448351674412777412225653996793678544009768236285776758776001618176915644668949191758690270666958679279538602917765697196604523249878951247862978708525465081507863148534560347743048136557677204313697191638783942138342552971102970573185615465856400740844894101075681570125811465068628794025133417353204810437827629765138998410433467569987805036737511318073300074184974453939625006081506041552316685801354405056397972284194827995557101879114004868842128489697064316643322815781197085686853464073264476502520329290353290804461261486461506639339435292815712733851591967286397972844028181427729113115904580433379941956078568604412549597786608549848722984891172055833205806413908140116457412648386886337069895518202018812086415069300306095146458244298874882577243483422949264339439487620124084790721062859385738838232163849552651159022630322485255467327911436497454493041123034886015334912485408173456463215915350602618352660602312772442194902417347069359750816178712601176144871315080606583429221051016834010157644517996849017825057857378911245298333019806283479953705139202810299783851745492035911415555794743053150840532111827986034916245589038869884828812781171189542592047502492058631475729877194646621941403791780787436862421209574798165493638805122158880497637311514798761485996386398865663899548540677611080258853368334551985820860150841895149902234690187520968976265892060550398432718307881379998718550575848658863844940666908685662048773635216017851091570439662902140321476592807116705836050408365448224049629084584703408634010240036236381716525768605978320977180537966307690606309400369412842352992223955338560850270990442003010868147524790939061098760437417182403597757746354867172776533653256054836761624501359862845213988033351561709127982955632765718669259144623052665907813434878783314304902607446067873308494838571724400554206337962329139700482608857397822060401815270260208728716605405891288399682803505001122834542268745707521066659381208345775338776671675059850516654872744999509016021329251537655584851011900593346747757368776604801464059138929452183210003932482809439599347602054785388579775499239827212663487495660541738133983919048284168229473522480895252267666363911452746987441588847369072005188890709973598548117164757571495616328211276465589523399372505239350812066563831475439581192039046937820793837451588301087960564800308095928132678929434554127269427167751942632476166996921212362065937193443001300335773426225826846445239914328787191345286411920460823509772374050592048285609831879733159302995059733783092135908360408413219256268175872238776397454433044633502021279454716766993072520910636250359550617794188192249064192399829447177542320677162330442265443503183060457947322927933596193680061485089335774484529718446281875983003069218100624155732803142957345985087749228241372878740987574584228890794979803012006472779763532185414052477607760039386374523418004031159290430435245036984809777508679660765395946358609282371766042847222554405070308859251170555654671936425241126116961506923011194264347990486225011733915631938774273884026382241991669977454541952641464098047658956489441227707015121671225197574879803815392050147090972124278076413009984272032757218618827004502959629785151005261544579053151527610008086052795552946954651627225953095148002123534664837353300168130006389586920041785133209659399330138425647625992035909300878605054115434031161507600538028531473434322813845958914230048429911045489557557351834493545636652575530175103212255142980994484182186311734335367852651647592183279449107343977062798256071561289232227141603605992533706168046384294987802894777031409370418077303527298709182904255974389781532001276950163584174817840968561261073385201139862454397296533688479306135115942911187793385285162817790685902562088231344122172461288618136035140680719681721012179524169688173315944585923859781956921602025509008684619855619062619405935210121568580912955344431899064860844261526817619205092241476526905987696283741014262894281910498173367229485360856910335148377514248422525528882719733326350084336370624435950345130176872393596674300979221622089049230809927289616347532348611915009001603656397278687079269518490486937195544199262221064275209937030646455010674393038062953187743273160678982652907774885776761219468788331218879201099084826222647316118983912364507444993658165726953845623124246460031549691964766786043778015775924701356433506197341856773539611427392029615109518825213889378982640921356026939042843480994648399700820596907181087387441166034639065923105049104052542375282877103681221415685515156682432156675399789174225055468655343741827788470916627037977044308126469825863106355772143462825670506642986699036406857014874547144185077653013027203394994290114845602623472072767063873566509220951452439375208260271611086762122057271414455474518698131747533110873117875044899561750659860465150583939326491295759281553456042307567661703479788417072863147890356742658597286254268391051143198614654289209996782110828441687875561893798457844748159937357268738930441663870038521773299986970135765918676450539019810084822207447562010338879019103508669266629011613881032713595003911446465531871616742364632502518340967199725476344584528790111756629231082459940216625394096993753254804830878484354737389124025922195861787282285256540992428045938950513611078400561336258094894710888722680578948719446635920968342264656082775101429186762347006338279739726820229643925333382411478332368157440400768560183043431306523731453665046831217242874763636066352731490940438465967383289347992572071273270355963656500756996518745145519811455996097191100805661846519192880331507583269658852317073320448758409605390017180314008005451141744780508936311483301049748700911616995834259542488674254768445475990148585260138663257144610223325817488300821656917336536860546530964167860007020364466123321409204027682580707946529882315968984611159249739612261575362680646814350203739309312115398678512814958693687899809847387667635359004057367355680445893416372827854424028425812140453699753646923268044954769478156904871465410419243729142627322586473094453569846777295198717499466426867886285766357356300854285944430845226747080542399870866957505642150948306899287131494283662726580320938872720851072106561273215116686418663186064579577445264356588039922098002006815208316795256314934724512523871300017895647142428667760759927104112108111398137483285663203591791980760325150357791971320832668691038537955393929434684526305385223774508063735006095681046593621375311848284573849467139265427721390268980880057951049145710756746763975166176850988295869723949097434195378377488027928478314555440438652692627505650586900800202229476451458593279098665639100780660916893349484457651492756699173558914716261043826089272108223571577179998483090320255846359766312300730055736266438988938241070484400566342936047222469516440452665334014140165334230971555201576621784869054931554834529483532787329123941280316964899067850846515483498460972376302087098702101988556496102046517771621524937072572800534896673918479843157800614423936669561456789530994895613739984360892866987624146867536161591185843507333914626188791213732861062986717334945122230516846024781006909060191770831566423112495826915892709885480625008516214810755926319011710349504502698680836015560324104446469402267821907993186912787179099681017740180496749192818818932607994539177521430171564203298689247457850104629685442345087706526557618455547868326386657714947914364930519974158268167563096679906108066007150380508034937654979680531666359856486999770278953636940778133898177334258750560653781303050595159451510988694295797213474471201063180971587890271309084563357946868591002039675248773564663294345081262003505026332111055569678767030398127977466843003035073367454824575704604848034325517531481293493783412813150764575065552528743162074413489864108045644328958428687328049370349804954462499874334435547995748366327057672153188814403380649278277203361166464597256391039423033198190243414217480678707060285532084181841608235403871253668361791300341256099576311988709981870327679714999170335699656955330853817129823294835122300572529697201663375819696675226912316614052797003772663985192762302688460395278951421419134173020614868046919164251640776132526999878192244028825908873724923329737178222706670160539525600903922161616007931797771247426977245265903483102150104617364962873546426222184287510400746351639539679913741720385117726437524966576728247809005523529253061025472948559477301021579099700297281377150348900628911525024940803472439224442513901938306928080452357635594440372972012945519362710978870478691072170506282289814829842740519038040335072917763485259199026055606419252686635265034359638625300738399096526742196352650535440016464545828357594321307816170557393135177700405924710894166496275137225626741232305716267096322421888987303863549829055685137903445818655318670698860229341602453589962230213468013029637238027304771394984188816818534256384984297104382337656711965886941332212570391693567122608530161701993196938636556496467944433700938501686349289936221301014562563660898681879555506792106002624650512188260714013259839478074062423943150434385935198438474099273103256216305986774858455506754535939315132435543179849772301296424075904525134006201392692931361939178607051766893371560713147790959242140267471801313833524186278915578764772634405884995914574262191991054537377538414568353797799538633022291234257777786501981272660091594461610112601563264251480060618390378042852637296364569766490239458108530490016941156611921128872860674716074419683529484484732404300308994490464953879815528000487240992820354488639323621238035126348582825063982847171213762320103949917825548880919201948490542784777975453999407531654922471681814369699152157106040339039830096389366231336633609755302418913295094348865884803897444167016766712782581868432445697842033722442330429682584659545326901938308474876301345880572654661268583891343767819603322222000638681245443163871365038920230664905685966170261377405364834709135129196507196414856363248221790144465778144423125196046330761549507101816893951491975110102649916813557679327327854838247020735628738859300979275367023491525369058143942741713503033082623421044702862354290183306906075592328014868398906594088237402555439587332924814635964682151804992239574614921773089890316850872653106000340088929408719954160473254624310819241272473796607516809608961693666066534217484574338467316581165189826317576980016474835026327474142707941883945038898932657457180567200670209107544090348241607295626371452848557781752195857580314282086324935832862026378000349637833004267630250772193617727517045068774112602986796110152029164485690104258315039561613316180212051419113518461423826377926348377849827439154182851838594553610369265877483189511510326634208600390494267251085151936586242227738947862756327103750913144883709941621056430359089240147207390602821338425538673194328495013343654694969080546771322719736021536603703776031557179214812806953364580995877011744634770349118282570621868871962708976211458595304836959614639005291140014194647364946686194867214029311520839067909129959469634220968193066789797989161969793918888099824068595114283294969392435476134027504900616478378271240895710618448267621017738073494726505258886651379332104354018750076548442325208057471820617818183909882818695384333285542265963951668269421095288843658026020027728765196478171156486082071182525773404366728292866499955666904293740495186514045081916214679060500449205301553879003890468565323180004125995355805347527959960564379608042614144467471640648162986415878486476165409608145592249974929063480677822479636314742038365874861928873602223233268826659430512902645359415239551904052421516282827495897319083223571838087714732230557641352780340322246232703610737993374731876856201544165056342804773152937274182208629394899932350443357773928993774498808696308171961412062006097511470765627518182023989932645174359898841574680428199149388477205054637960524299258690045745739565958212229472198213910450784538790042557639226291666956808693745556596568549490469352958181583215849009148420101680082797497205762717361138110812940151984391966025934209901550569371107891373584326885890707112369811688904454428211895167549753911402199717827838925918591474463500498781770200082266267547721258073950462220836474233039731922412966202429097584075754214543087144183827328856301845320329921557239242158385966258525760402723172713901702291827307300270212985984234950034603587905824839852178559833754053113825576816016562959163276432371904363149950626351299102072064515498325632455279459759760929528797787113041001312582371089574832142941562029515776280335741888200306938545051043693915709571785381430914822019594496721098138362280107785161179862472117109908267198127996349239846549413858075962548598414811127119198208285809389668114785220069115731525936144691557359834605425025807815767923826108893708931088200519733122636971745581243705174602553954671023871875242763753880677281404544182398902039102235062237477243831634729069525264674690624793184520369089785606281241473085298174915577145276628191975494419875260536590978620411773267826944923111722675632063386652080308770230780382901351043618591355844684783067839934276526425380086367662592928812106953473254588323358202772081196615989765972625811987614124415354041782631366769121370687378063487175893546634154915808423673317971201375494974061040466707560845624301486799823868162059661791319532841540027809532801042644052213057676338961740699375461616464680160060760695962473408427998568294979692572861543258878072674372518627050788398540325125665056721269379018064928873299919265924012635001180206034979819214579464573281648823987078183145467545911302240192607604765576601616717554823024030713037025665229792283652240902449911015950401846595431581690130387389829976464938817204326109273147710298043456459707116244125883164406853454305028694118825166403425522446400229989347399576723354290685809637948997063978138109345711306575931507316334703919650267429163859703338870625311215728089707866613394109302445082195976562765172310728132217814015029190099578089906095449254565074153274564490870672263235716622483101837452145525926514807459634876014333359439654370398980792326788286938431553864495387577059865332053008579352842374405907597604299994857239532417017864998811622772191750093826646368584548377662515212493220582482054995540359877655397734132014059480849662420120498244167093976431832327127820298828889131501505471560573033704833580258726588758329932890826343406645880231345668770896706987212973331694807326837363386128120963277392988494309343896404517739539776116150594186625532292092115282522396820613728056087215572946563935874637266147049100661048638562604967868034344579101164202624343607679608023256087146593490584166830361051069638430173636887885853762395179621033541387332623382310207349636776408247641162631767461085413503861029531068458880437345186164763786943709444410516991788361766373289034390179897050298564090346670056301773450592839726617478441169328983338264713046605907481315797891555692505502432415683033988356830428797306962290118180330409587002217231614652082186515809692483044326601333510548317320621964052451127905865025065894038224690400927715103701952150059592370457689974066638928340274411554740132158595864410377558256427755187488406751128452211367327101871163974696399370813456417930556256297819960794132553096556724063211396207769476026336767837831646507868169114126991747703017743386952251050490259548191494465871223242064792613645773316880806023182279225724705650709228268519469221538436298556274583095045594333711948892822115851347592181291127633515021569331336330420050167492203508174189389155899610222387236127894623342824468826044771619103565026818746087254137241847572159472395638573303193526599386773475169895419221442916205946599965158402990970496665168747107780135116122481246809543004365279086071613479211339135687808387284342509149924513494594550167915529183742175171104782350510810654892637533667442242983946760178185710621071952240706392321601765636957235470026241850433940549636837427421742494385757331887015511087108746658053281006994144007661587920243629202348330291014197441236488699058749228801162932789468429479168316112117990955163681992039448061551642407089970254609495930795159571778572218405072715706567834358055650938131534107612430451249218973017240616684377412744679512236994432295066936818697260638174558618015153785069100968578939627453437441270922290376171816474685576514497936493108545258884418438113029648184858171934554127772566174288097702433607783274283530415936820113451930982648154899278516324702433242331698108785956853807906405807688796914935249592876022406358139496976283231479484627517587171545217493938437955054890206452050722920610667142418111919297226001947795767794431756194119899705021816224866000960811225664306676251782610623307563973447410641260225689989608628053097995223526065761763283044053496719458328850946547266960340911550760295428415370391832318471619512680195804960596679559508875059635987137062445271215947983893549695683146396451791206554161831205408222633504449946125585220486545865913787885952894355208488491147324964190327294195989506414094723039077442796974990113587893773986292001385906184983225529644813020496313614032775734224407780416731270364868914668563385798136187835222028328758812642295725332784093857980620881049601201404406256984939926326891732538229686505900753643734274515325584032641666889479935810133090527867982603847123926472806345968942692593897985421009187719414852764104803753592085890965557149379196174630545483353913329171071932319624843316681090878408960100319838154940585459265248999466918227715560375966481910953436407123356579517222135640910955666955936468355361360017645379542296247074735901963690832884434735656498147891794810605292490934320394052723101561877542233050051527979432740014507535578701735022163902213990733433267634378567159984073511959887248253750230674003475963926164813949386217954283790451792979174692580901332077018273342608172862180905727543585713667544612657399939160702430315263777481471253061931756622273202639180898134051557853787712189973731535454028554946609072803727612665386205445498205513112868703771043296112968291665549275418711381157919560424654159211622005341254643305926580705405400950492379383084049339288693888257846334639024575314564709265887114563162738545987654986056806173344408036962465528195275356714866352038521291431444868777919318690267805833464654784420136397482278750923314760817713443295002503907531625251564836258534622158814336187486721957014438728800460382496128578035500912399253066927745744076556421344697042412713205779796108643211122379250340141724902252251497484543497991173923059621640776767987468651882765659906281524499733517746566598562196389195363686018183534073061541746140123058547128783807167902484601917323145471072386969226979519273327267878503840026523729702178836887733592671198701014340719321261381783862755327888505632880260375858746134189584532576025719522620905065328063558171558103462605856235120689539731033266751503782272522174008696716008687847340717488515090381356005904817633697134214969056478539279202552225541583023688025573042884341124082694812070663268928283220551305228348986094654350557570106914140765813447194289434021081927753031933349331804184872980509272682409669991238110880403446815058993318528777020378562874615284557040451610059921671897053060559939352253409803509826133849620338614685878349445816106182838645371814504802100217107244551242473849377300915774165447714711110130084802881303834306202338555726323392584811384467466055237367808463622375521465607744797630549071203302894646360789827480023790401157620953826244444577229604972999686733655634348677385921252910310963938300645530289677493213243503168986585493481560027250319419330958458065660298886413614273776128870252657326453655029054827285201890780354268648942610036994058033236452555148999074017807947408024117516527393388978374769007794122843161171877589230042363948776860954294600083174178790807374627471329260495679236877335432105186688365366782357416372732339438615270159739721525108406234665196578423949687407879192402699478858399595527296188351936057689837335115396424418328028131485962326948941951849488938234279484741225061609456017315502934762545018363248885739752833226626514417305063580687646219948762282282728829403464025671035674884358817443026708707329042718403973303176560338570162865878139161265027530181426711485401626275335549304925526809811671948049767081909023990892727628968188403667078459794156892270586959260113200686244415813621495693812843124095757614102005910296652377983118534355800393420123254010403096893559280096185462328646857122277566223359519721928359222914710243769314252874118659940082212355748127154634134202611167307880149746487654138597017364309487303187673052851839727366425190689119267541660226440971020676378120834450362887664220483418356139425338486318943157533812106608347317067552945841434741115519177838087826891007260542094702601663766451847969245975978843387312221583696190217665937731903625236854952285816630342974492189912822972057427443148253168936889483138163690869882071989135917764165097443966079840525885487934543618148223939009513006583847635462479567206105927630386583561438455538548393070818715792642864958481036093361434900359816196525767470021263668216318255884647880477469891863484201206258323291285145345910455118385841360318231169112109616035269509317869022141172981916820450689878331895098538671069309988484718107248899876029110342380809813676591299191277606356186582771199767564555951673905155580371251472451396841099551404144460013841882493121564182485315486434943360837505843183423853171336730231719623036536971424470532940298253612595721527033804353082263535035390870013898602046551871683138444798778350450124127287385616389332180611376626475442789304179128886804478422294310851012136412926548883503581840644754303564587785903248993937352171096750252114882260331298072786703862258145736001910965460164002172357593806097409901748609601830217621334727877779713575016598272800442891274214380808683752999329312712227888286711807793702524563187012125969444234657789424282136646515598742851126626698333789231066240969871795988122988727080377042113615831844910200976682852918566235551253513198381096092993127961123695571499017485736874678801557492980455349668196360637102944917680100825783714704033106639768479268805465027221609788490634220125939251069436937644178272038656547964160433130505645162747915191060935417448719986898814134909165431625429239186452240074900760006594247251350333383462845228444486849258783287990377687953545665004272895578076770659021014657479570529383484717094597658390684736542044477029926552737342747474645354222743457047565611421894145980155954314023792958644530692047377235302475519674026831971645807460189277911265470604281271148722012108624204540733113185963661509975187139616398019263984330652979128897815659355769361614375192990329270716273527125680063661756772749347881679174057439578499974612198996127818466197130755130627965489654451449978520314306471817184561958880312748274483157569621305488012855873188145500097201205598617156082335938024640129867509732038997273993011067018958748036875174448445064075418257574374443187433830961947777903660939256130493867043036444785285852864925586135724922338905129607385489603238512950202740047916044252104319112225946340459417511141831926029234899107535081128531392559777892624338602577569111874883608167642379144479067284608272821654733763326912722339193934143386647126711583322628260406640801465497975319537842659970266741294505398935766130333750312039776014563290397738029112394692416391829298292890369951492409541966377026957898519328252215447312579560961397786319285105973086619128974633415113601679452916584747734310907303954066379632971754974576600475440873577872882854948754423400555827223837299480649536897876604828486070376079307509545676478938450833331985577323021585140260606055422780361902972003918641718415346690374321384055187097865814261316758860007376572528112346928517737382579707625903915963552575789577906686929665841716989536942523721366333885194437809458301229036830317088308701691888448643768384862403019224181395806760674934673511429440298320838424716102873966605300000629141595552363608151164326569363141228222019343936353047337534666433924210421020325993775942418345095836064677728717804826453478232556473457369389363485700158234042345332330790793035141902053536552403226148659157918814117097938351865278131812602903952808208408179275879818620454628693637756462842079364491013136279196218625864198827273196841594511468861014950030953106003171062961571851393701594393662157032179355301706244909528439475747238953161497485738727542353777640915989834961065559210952478098659422354558232638497336943718093447218696746568519732903098160563419662822955192762554528845150304819596372248755136746638193176734670081225299188439812105135214989118366817601630625314725378147289142825708829182267440820811880647832393704238689893080037644808596256126157464284767487009158028222009615825348141669820138514533554203254427111319663058349554303071019184248330551510088241757908798015460377224300747777773741651588524449002260153141639042008914453385767848794348937880622195133385615468157837775133247389339517144787974030669140271993548136195493789772038519069214100230959583603766867894253706494261911453747721890214991531659051202320107469774537188989437726036957762608711558128146394317546619799079434485433683819073326766389025508532383236576358627617392829543525424440397054123598518716690837133567116441502623905237747574111344487639514793725206846440546922108716918245383033543757351133389185444534191027720360305041968278634360003233950813036561215139197996307489125183220981271266482930796090506303707004366633102670726088850297695902149628706659872387998592713927564663618590226087137636273811580209947427770950573981029826969481603209208318930603987993240715952809576805824047660665110291144451169497866324827520917463720636587844323075969927809104407174992091878809541631489899811664737500828481873592388789581318751282478945005097293905013918029609224225385408759130571697226674640918539258270682551179719511375484988334037650413697606864706650759951411925260037455142493157665365796498890665291490822056961975013856005913703597669134145663069423553033058284749420986246394127190819883343559466281558473138812861531505626376469492906020260276141602361009802156157143305962240740989714987136262700070070211567264798416202513046442334807361219287030343331832461008532624710370400931070965443583054950732650585447740791337277374745588654652484875969246899156670040556599343097381688168799896449969474477294278856094289795219616142345609004543743298414068673160108819440913529418537112684588530293958296797388441113398287195700506530092803847405408448218399253479756712115363240519301638438842533114241432611857185927412858689284601755028944170580279746173951776795367907311955332654267677967408510802519817468448603734655168625593672184584930919712995969332938495340292584583485305553126672846457455540389291209274110207917350755261278426651310636405393389740424933311250373324712029454362383807735600293830168744212272389909238155053264728366682207643287984345593402359203508282237222549291452422327434496038202645203462823283335470335855022869572345368515653353804176917100837816850197883332188791750934996086399263081333443478554047935970584833813278750838927538231947485725966520884677173300117088091648032982045285530468946571851841073574382498917506225946370220023469174548822350548886025283149527672911398483015253020734849804496726243369170959545127527952256878453415198503893561928282612525837072729442928677994731446648653138579689514365537272217881822095448583029893625382216456186273007317826426463906512225400871729760323670442835479940914464926854398275614373765101944517807603323037346380602045221195121459048485275206160007216916925185113317418183838577821250848201990389332146372491778924946994166767337685547560707210705221803446577861050176819380687278643425227692331104252867349524145180131883359179288409959138362951180574183376348146157579490040268894390601802907400338855165442285763957128683418086453095951915830986228189039987689637787671889634701470205075843612297935158085149863305717427134570147550399344330056657711295935269400718706554387598131650032200161829547914133437869743475113413272830961873220222949528767010634603269775631095061171501502030574548744897310219501557406480649633947878590509353636772073329248665469100254186685568909106101347598793821499506108229640677463602242599842269918478428586065255541708268528994891381735904083988912025768358201297504666301061837509848227344687158327787183949686206948776995069948647933259844900162821570397208852034849696308209041980608712580699080514892141132881162551378370535544383885731925093675701784907382445518050188575879656225889225649869922017816884245108014380615754029453992592334183061231982431983379948664591388313697631372842830159421304920833973656087269164354739361249903263081174392816713332669040724900699747758379566317638767285851895824597645113045679042699465619440575056820348065118344678249060926326045233454438277745477673586034950221677395083066740262082001481810961622376843364846963471357996004223641624483593527106095304045816886520596542885141266863235379559258734838244645809815731535492104059763005714207398730873291382479431877434081401721597539196937666095564538409603937218457901625708663471822138874683721703375379322691181954025968195624664844793089821568325791376803829286065162333650093948605830804473383343083664362261521922117180429413641415499005879412952072884485997404110618277958984085925297608597510900011804338802411939933908009846102692036405296964525383761675593916547088427628166799810605860182995672646962619560858723084896860219989047361333177498934733174483492011288363908147775241610784180350500811100648371768560078752683407121805240541225160622369672723857417900732053759394165239335279870183114811734397267875215855065589822329003889777090086124009587639587752927092332649229644979169961834951427846852547694128706919341029675123561142464465519291884268613572493258929562676021225209962466113573492449996991975999229769944947468627769296326136998482119507783012722034162137130343229713876220831652773936184620822921540794683632170787877786232137901981601770461493581238693904257573579569200777214339255999789950691638256947629346330847162188878213967808705089420901307644466712449098334042374805449300619693639567085076777671951329849216391450082520354580484361896294431839030155914821479783014893619308482989066434015544451224266567220705434875203358553054889932915160495596997477137593361895290009262285117958460459840722323225885148799384996450864660387591338863673934581796744664252111534003800539700740243385540357680288694626404686330704457032011204488086635687660782569410905314210173299344079426012989491634358890824614307669619252173412297459008819727154644914174618117025232013663916631854612373033069088087553100444915284741125920001650017852873338743578597761734907137739799097976195758918354518014198872941475778380965165452655826797081727002210147788306696776398948823585651386352718270123089525729649658673172353180411809806104446101325600894786986107003449794454078101094187063373795504188121514368820384187336677967981654553210604902013897385547705805247098556278944367701428655397985737148539136683930271031216742675805831865208907731162523320955298824661236359042159095642591142760214970054494724308660186524483313274818928851040230509083297774519347036318299814857826041158115310763253927435465780327971609931055772408744062853416726841405989923475181302223652388571623506075163785378884370124684072538683264022636524231812213548931951466963371386297388599911630656167982430785284581422560254371965017449264234194715636247221079015557354785746814335133152505757339803837748586759604504932791247527314401383151669958907877089472637341049279135446473187838241521851643094476314329419519204612026721516321827481374600285498433761859065724168368593615545017727943191762828099734914840527510477792354680451344873276210551697370747565112778550374540154673672725922789254740271769562774067194158598438700487101153917718504863726943436388309333886048142044866528238961387898973606214736051985519389691655973606382785898289939919622024193359212296841272182278871749567624521199952525102878586143218170545409777776868333595542493473934573711250268693577482338093847201504131101293072145985679278072292451846547379251980726729886598565242218513166662510390472787680145813237927511492855286231679539549141418331046040812388456494724485874792280632582038068827468527107982547444326586979206261283070904323387695264143912450835523323210455234570019060972261532128699376657910003166958289602315542092626120352405879082388695508306937403734119702268406894354730195851016578750618412052601792593524005126166160649999211024407131696379558822171893777445571169853987813855291877023616524620348607238990738106523205903720477872880822016853567153624294478354844668217653409154641103658654678887412727440703953674743377226345729947989579544725181118980811302556134743967758726742400711171304915936861807144908750530232387863694119857880213011112743727274187994474342278303580847795143306802630125773277263856362922491086185376063368609415501826585313034837246592941236647762150316476850476341033943658837035514333525826619773191366110291217192536175045174859292550240412068855197949028256983057479960929404094406024196392725365959061069447931959134942744309675902263734526031928757117834827088006291707107217638581731664453827870145187479261552281186596771607604056333002740276970630157272901405819499014895304586646718889967710132409691824693413380273390487757569566075273236618883636438166291568855060724238500308048092193894005848436307126841991234228722481208106139739009550168850698283228995328697703895555382896312113752752849207715631775453135628719526377264523280127305044984621992331305620120514795944164109242575830923351143681212491088453362341368988053847786047815004579245524514575581694301283895107338673153704673048885338229312881113504961705322594343484384567308324341694751628372485462493837953880215410007868054360273030123406431368394018128878949060215624325782190169551259743342648346421201846453335878794411590290867843130247696613011921661961962732088340292112252901621216465103686761566003903876337550182932942391789926440938491065012938119257907648054026433430845333102541487880052156687407373066047227916734725882134899288785927940987807915300057950012240742348496979331230014494429218944616036417747101795151690336453172671536458687875010890796075093147590558414365226197739021436779941903937304702360005295602029483842096429156932387217092558909572362861449113084105096817186235368680055176434541841640661319222435253800140155690835175358647412033962923632297383681496532172540320832502934679047506588305334443996429741075416524565111159258006155993127397400189909372143880849242102407958581769253760553506752579282846594921872479792354954667611221938082982858638464974469472444360092466389124903012046273626866622614510654849183140294516650453819919932782683924720918594880040250991208700682390670813911102665830577759946407394196901092708721480486673359383235363683726591703822179399759823783046069894106866597778871099461545799512036383828926195664419226986113613592578800760717649685664803113346200836776031010891438358069948034361584331691332831621833335680755534773950225119658218460230381412141838664030749247761593269838547642412383945128080261186650034024855981835888587283553052847401460629162339048194867998170391813386482402743403522762139692870921660083013158292137863743384884769239318801976840601301319445043004806193293080911840067056512078543750336220227867839160107874907462666371452250482745988543725658981258610388463167931054093116953845037862613073963477518334015854878352545898382815954684823497222619804152201713041300641738586875984061437750526344449264084524988448416922453030153545402979710851406693344193900311997760187898598097736672761946510606620759125972836280459911544998595594597127920071091064365378565489432358828160490452921528749419134875598110272277127900424782044883594275759331912531753776515260746127387193106918519149954550491425299736936399273085822428184318916544003158504535458919551630152202212590987309916873218033754331079776396386218295618608039099187273914742423340584698689999175086854292958851607686923162359400864436277071546776362971569220627487293280239108019809970702451083611259684029923677889804496965751653142900749397223450322132459880600919494974334233493579288123236000997377587860214583929327497290107875928806357936668617519894352276126913510194156553610022849284576386317400238223909924104471459928324440194903242707068583404314637917598039847056319101411905636480346015282998826389872665282381562271620783607251175029912096307989559891175107957564559900770393683538258138907933262297054565948382170906593246501505223506175537673591967629429493377491786615027346862576456230062017784643122436323041221844064340947441543450453924464815149283072165793145878490019588115130480774465667650641103714449446984565771645425461809782363171229600555627644791845637046459870498545131103023283585379169424662164744553648170412659128405903414057297616401694323204350463095430012425596151100571378589839125103496090808275857113242464062468734450777005696174311793958316207079974610842987314851645209802060932600168970552433060438857455208036212693074087009988173400516462781598348371871257653444398085580119253759139598313438232835551289455116354797404578372904980796548353740996837766286883959576413472290015902296956312942033518272220113572736141407644353508221661510724414520158275421962479123034371928826338005822068342036613013551971603063940979473343785054301527342019221062310490753351485017989452379706717312053572366210813251883194588589758095621881282878127291640160720373003150238645899612711187244714008566760975887215094263574829003373777540650762180817285696214194928866083151380797014030484478541766870432475312322031307067492282627913404765644093076143923476940615364113477168931011812645545598091150455405788847713230535505358023641321521106243853190153974870187077048255988438404226787358374968885669521616353091965264114776653292416152692421337299713734192340307074125162533369933932662527599555484877035111968965998525807116909703618928572414646934624890474303753893431074995717523514971276898953756148382926048966704409186599687656526148783738066171822800517295578505000028437281164759041018346581323002270928218576328613225393638501924043288151180165594628597714145395161322830467324917111132635518263435260323494576844745495344797335194501358706976248271212992988220644738937865086204534401079460356786330482014583347733959183182906582784662296143750430270355097840990765435148135039124561268280845497440903307669811071346188579282953841051436022142810449624779267135688783369220257698220656795883252756555215967719946742060844411599281843826825957639741637498660508445223795365696047818686423902295962003094717327384182864856655290670752884834827032326762245069419701761868295826762193055144115701207777846364036787562598592570112932935120128353675456364226373397682349806694271144306963552438444069546114989606649825335735146844460486277281397212212741044259306229664413893590089542555446705043468593358608012160032512198419756680797290034054881061038337241214952875589006780499222961877523263111292880116376713800381452141631523997118884527828113137683013022848062874502466626804774991136377648520222958020824612459886043028017165756222022263533230104545790627214307200324625961298868226188937757849110521329401850442903921355494411448989919879472952654252677006347110330836736037333896940023423097468451148380127897904241313990405396667354717872651193532495539568683624215189077032522360359862086655069275435639980793115198663815610037067480657591177459415519617657367451840800095562439305402457525918719378664470784421634400461462132336879481518022792147759793693111301528273793114129125547649034361811118082595920663519954597266430812394640572839003228881531856908946557037302195439068456020550148048355650548443027648103112384526174615559105592836431778901181303104643265349435921056589377629469168272205198358325237349975990995465762786861984268902333123967638870590096458525508000710689124997679847191642230208394260690828577902887856400057411949306941262936261934015033992826412986770167562620688696643205514201689373083523857961000744648989556589858262362711508518061640830829228760199128568470412265360322357457249149340098465700598129790626676448789477074857873767645244756522423750972143119409001977748353871135319420965434024685413818331787410356100765120329710060368451812199914990455608699702625728312821667014473880741692364256250881940022720316674910404828098996038877843914518731589973628974859020020236163537348219116253248425284215863418759090567760412884375319584116443547384336811389820452466735581290505554461460076510880495438750266362503843425132766952679604641715290065903474641970303525945140632949083095481352928716007815915073149556499592180606333653500471726162893714652703110074951486615296356159828370376380099902844149849353008371482512018847745118705860588804083085008311387635494992082740648063169814682940601399465766003344060694264286312617060150636306190112646677266640510385482702878507973825607575131707879452213326402003146341797189628196073282482611720737046932187298034323538423322984011474205157251823106103695527793831361325395248654604299076858475778454118381041704427160071480527270030944300427979701021272045391637654483852996516895776262176963786994331469389080625057858393396663711313757215956923825376181376964719545655439108534486494934995433487211876015981828932005236338577348053924601404509031537209305711935392978856517691561239614598421252343431413686198846489932496608082977310331414483899974638601646267231379146411220755798116544470208899131419483911662335519504494592632969721455992988069086597959858865334649291812865176490659494284603079102928849311535614486251236570963194676427104884112681351297970181721606983385873201684423417830041731213336571508686165496910930550613269504044371779893262949389297011077366767243460214497051372180560208481435966750965783357062718633886232162125969980539307995810398534172469966996985589412494917073875844493278747213837239986057531799615775219970241738140343442127461699343262383675142910398965912141763343969833337229380759071526888649115291923399331226526624662032617478907755994446318225856821994037433286920440885475925382220365087524716968358757099616245622121835808365438839418194781414109612984039453968317257278822521310764578775747239292139460003698658319493076579974756006718016859698365259181034578019808332521178777171837751242233847024865988425447186556990474001556704301569896161221549316070007312533661563814919922928868555390508361747712086015404545943530259052409612138909810186375178460497952194525225915851190431589167882692658032412214548591048474351361100961519678870625058415664691732503771049916813676083522765975871255049551101882415240304934228801937791291016521406582548163760996102924813463974075613306435397415242742933105338538623551484975744453085024062027393490666252798540883684988104208113677137517959865700018149913178833164507534852620543425580446232772642883002613308350077791525740984130443308109808909837983022437851998936809161808348968496584255721879454139551659812295855339752298106945035152553416061401259604322272101448297345733602179185792273612760705797473746216531419642683865787597201628359075364203519742929307303667096785938006032763598234671117670208863510779644383180742005455227765434894146447831693723595346184680809982561424610391482160862590133763212380182250002393845855801065996237319336884088720147314309098523819068674915696660450194227422434804960030405696580631993014012688319238730102404020901580578189638010125327606077130193180573566890607512307140914979317186487740841226597913826393950833170895672093266539487601588329596028532851444533323685749901383269575997282232442401043891298043998807954948076764424144729286628350762105515542551567072212299876847451702746174406757243684041236358387950009164342907428257049426247532273821921701268737574390630040759311034868891649331747037622399105780415016606828239211860913282522960496075943629249431502543017835497215006854129707182574180597350629730603211534463140448980463594217644266652106666774030874057579773303195451304855196847094091240040384403162170882193395038285851773932348323061813164747367694688202598634352990420996063305872976099004591326611158319721086624742056047528345496037190010690615826917803131299039781807065583043816464286897505197076334398175873140902361232268876607954900630511631636106078628007792832783802184260460868566793764417907145094952487294640069180058560339093744357034449676121504687162786586078277899121053661914676549765808514591603824665096633282095478699450038680056902281584039369632674592891647869442424331649588804767781161948643074401483196984640584949368450682540512314377467357612427659084881965775314474421847567854912131021820174289060309010662102357462798804807256298794055106169313221716963115012015990183450212723350646758432073387798111110141829607561776240899913785295622297913182648022627959504820601234773181721391860237649539605347382043950347955210204138128870726383078856875524820566366761279675752085292551106728814706943838062489351787458773233755972728274901628564729911274806487152665551492944357346037995806300843018906388752156906974040562901400217201700433064618078535845561896793026585364272042039332546762148932980114469785266839269267295560510436336922270207775219835109634724438110185960797823509536457326240517794934458718784651463657112034482996508000966497674680268574998723963642350439714088436941605003473847356826874625789412860906967985169558695263515159676104020124449553732580614366443740606222768733348176406317858172796306374039188319659695545366976689795708518743101417395991964114530380835020235273205919589654347314379720365322940540657082893559723834001034769239730093913687232898096178960440023027940266886892237405398177325500535270697224463195350993916751940084317571723581157161409226064614752250102051842816164346611800061592799179171677436804577734468317774550156809846500874515494701733413766601781722222053909460341728556224129637241421847843812123672465255037049526631760695908908446285918417599883064274512848448988794059122394266414882795421985385100313788017251354393010528720928574669496062388474223876217131456020682111399280608218551800607448517934639320464051133449562140459566879117946220739783890833013032744750768194638928823038646442472085571294694396984260161723179402520106111196283702157860900402206565927438336508823893889680923849191304808530935987287421204040868571601365403039659296011754120613577607334176973542932214217989129364734343203462306179380831257033922021741741046168160237007051166147416020137819445521983855670787750556788497224274675646855761776298637565517586527685890934688962953895112995564838853060063836240699126556202473890818291175456240609172539895382398626560216085972217507780528808303502859057468104775133876860449842998882981505486652477790126445355205561581249396224698908403875534606394312254124665947218401418352253909545235785688559370396348867170901919345282897668544838385639587402395046042905793648453732785087418570668220025024936013117640994904919175408875708992297732235543981186237614919419315031662218511858124014753020823736504634661822650204918031064478641188523143843620447303097873748095573137453747685625616666071206803678204498822832767172305238554716780779912678976649387837890429895403030386974882815717844973737017231063677410102273370299960115832083413987894745516522357263275062048885931452709545414139454888712694587965528208652040820821872066606608770746609105434033170803066101575648341371672609301864234832114882278826810333306199852236765393174087475333010928928278056567484276136837265751959193727954173093400873940977996080757745517225978341950475248746278921824233079489612833332665009343230120661223580441048316497354894583056569673464632856020219301861111865057234465361010292822034857253451292648940474266206596178515978375204666819181380222754721028848064866114614924123017361421945978545777234073326074087149276970145841979917751536711166916109037047586687045883357081246452390573619322910315105441290555142856213589557615695033782617791800882736583439605514202395997838007197884267077357452114504101810085746046109403274723297328719747744680483404593497696878386135707601148448392243285870843747383582880131658738819005553394213899915540727337731399469488975538366826139068936643169377877599599180175964748561674769181155335416859900618693475178309312219669498677861506462994477586537970918842382610945343029219302919522092694707337693156063455602108797444768227940469746781171548926615226501299684344580150127045492440366622607480998684665289328498125370997552536086203447586266594896577167280632902525749718005767680205952667022627328267866146924587871946471073387861883878751231361415468800964166137764316360975412733376084489046409584371531698708160616975271232934138961523184843542330301057529193136389115119432665926671184895995461129246623594414338239087054430885701684793591857358864290589021813030084155360815741362045995277667049900721448078983099756624982697064856778335600903013719522806741820061188891847291977270318881997453173192511474770259250527406146959302666568698184006261992926673791218348623480775218516654000244411450766651442025297597938441633636048009899207197803574471340541997847718037638868548868041505614709255155623734093272684274053926405011332820514223436537140240088514023680941243631139408861195459781690846013710829388422928587134780304781740088836276563210911774587516711881190838745256815525561501792439430824432662866528947138970428315013994651825067207216460516362512872349264054325126951195729735616616443211038365803854266578893336305577046419626055349985152438572075488463279258508321473116469843352007978783974080290378624150528233451205693537492603700743963324932893682816812568466506578988459098544404167286227620170273373508325829156228621900389899979421738901327067037969896155284997306582471553823131227643650604047169576005423591161493874425004846759395779758158897519403518827730225987845352833649747705486037210392950553917942395626171801831944957245064129733390332462735607475118713555490320302775855190886037033356687913659196459834249956495055414633595916354406293460103827746141209468850850817466059938701687623196542781318998585908744063884644687444241043560436225654920345775915041649920417065817921358620566910362663156378729894767908458894412555100963679713122343482444767008916641701205050708430197439310235777738423676757383858741318329695270648930121607516036524619576963355935755732127645797393791589829684312342527015703631725772959593264657343814721551809414899727528570216090293422984752235333488423982234831819233177056572450551784918978444490030762250189684622050970469460835590602274747801360054759478001048678446364797883628027559040173613460035467820524555551827145838852236741803135582133614480105318180941248168593371788261785755551442937243850884160889628308106101453527461051255730800959860556093142925972384743995803223034234296123872897587613100869822785242176006474187671933156410458468987322377701543186390749157468522255942622854790438378724514611816291952070065104486805057507120130470130274272990379456830783858369080992859363837789197871595232282893665811195085926227139544921710704907676579607433975184469672775537557857468306774100840624494848057673180409885309532872453819501697672997837946799294061016131776145239747724925879495962454054614085608864097320795410291580233521848425923233551128320357162248136407729139063215487467611402192984954446243575301746825450659217990375875169764831943321413261125744050319067022077689747841636050432355909156197366536967049508217252128627316743674499340863962531197831115164171371619013741583618140604619141142672721425885292407784493710811537362069797415116825630950916775296124937672729234016347581656349961944623624170621820718036140750577120556523639507796778563098454726982255479515642101548720402876074730069054568930983900543454976773098917434202121053376625002099345694490686092530841969499266650526823545224544885864206926822794071164188947621633754368258943843764854864223092455760840157439889716545137506395249628692244622523103933583217885804965605508702154040379675350768784839122112036046763804363431467120141210710388910858420785858447364029047931989251031561983283006999845347003011893733338427654273704053662347054192356531167410386710199975178563139144505169021077209800616640543981799716768671655369976611116204600151307395048832124074002992337035006051916541053945745434879822346741426268063810312274876202251743986931230223241409448797342924184798599934326846644998524148542241009152052764446805274364091454626291066690874952487345436272841011629448836352802798689750968610595040128965266543299326148977059926077132548049775585894901738498583924550761120167075636423106472273532790990018195598406152967976616674568466767563667627183723914259411219462178848460161910897949486080951746686636409460312135897326856361165949455269149236475469656477792162829905958531711169393682410530653529888226670310775296638908280638588873101386669779434405312048103760003195414931529446141972301796337162818798091814947246955245860141424023580068837183253981759149770644833517955012870151939490334208137231321875103117639316561337739879214481711000634559487391274194458737357957457642876919109136203281092007012293698908108242720625666157950977658526025042944719908240402204361595407254109107729175822991493636920959761862360917291202738308533134101708381898040335106125731406972719188855772480997167521238476802077153698328983059206153189136966524681056615504768319671956272785040629879421643658381841047391898127225278763705170750984881376687365869701273384601657161167080079384468105864867537413461941325019016891924187095916701969687870403648128821359208817491145787125429713111076786434756238147915598353539176848627902592431682467242955306976077923139399286518601354796804163959913632992430423895800017141932928223841910318186372851981233094012922377225880981769242303215862071038268411828660278757548776825313568463567559312130384425056269409111004565022057596045220397675687685348327147799324734463148745678950817387401167364044689334492160129777402159936654749944769669033458198414924231849753083369179253646438631267340992813448163573670627593679737503877576005507136116505124460881051107816087170686749846926368926370244821209821446207731329319961104638065557837628444349940361690402017577596507704625699713769012850590557786063645554126301798104462075850622629613841071661882830073229991860729371457199577818263874500006956066799314015962657996519820524338695360202247913369960514917252026268947802749800821132419774364551858497521091643520219823281355208317808002716454574742357825961180411719066451318862376967957237746766046091464664066400029678945325040570233804712842490524106876082882793341407655672030079234670735009037136671397381043061681378089746133440249498508828467918791170593677624895395132345384072462111041421402835117501852090789379423898748301269624436831738523362062396630570876486395970759576199458589963321749104943999973542836996538467192498330823306808572794652639475783053676009196488229913984726016765015704154939323470786166090725266225532754924486860426173199577516260531237434792433313269371292784196771336082374793844032028836552084873345767054205536560574798434788078050393183311115225894686108329956966805353315303179679685448842107800138403825668370511270515206657015202534377325217824346885043681124958791628055863910269915807341739714731529499603099559043092096779937125612608558128596400424184387715850824603417393016530266142293458453799695419585450280787091030173921540808982933979587807767212454846646856820317646990179803777858961982950663884425358432035131364848812070175479017168888135307581156678344973419406676127089998254439424580773814271951188005580374426311763129678931898038967628275100694083775364049657226309414910893828622607755781079084957158299276482107540375813623383772130259908709752100591699542780451818527000968999344813790936325553339094246268406307742333210007891229988151458159193773824524779629429196108164711353427330507699339448800228005380991794116621540466956096795021066732258559481987741508950259186831044161270614529884011782247505094323640615512552891125384142107982020355318284201502646071739460643307828586777393568122938192931678249792366689997048204509627800143069612282948460076036359118947656534614602416272784890640466205796257383140355990640189696150773475310696414064016112720285012940853184234296012131756871263027583003872093621786421576326322093867873308192064051889132723133693971566912169955595027917406854904150300497373444290301874365886551135795325856365305108046288130072654561258039259709986322432040285709636532069241520541546986651207909257131673935240930825313305271628646703281716859723639491017305257394886979321796148816185105620950195856834352856424473973290890192023193755373942143700997967264139667592120826176167106489695546601587475286162103924911067109934928585901805869477714181369286455793979137356482396608089602120510506387690507704305773220001339568946233815946283351641973444781999933332372254156946187822427168142164977537494253912294461460128476269137131962010078677354695857076331285905862262526817672171011895940289951687324109306088411485206367945722226518488380146754091653295295243543181826555735844201473655022202704532103491393429385903994070204344905071284987682135930003335516148165023472738453574203999919247005064919576979356848810690178865630029208381289444423426075923651685590342206090794227511594909622054603633260734200246293079765563099643008641192456836351262411815141894332210734230110834883319447590948924688651579473071866756433223056690728550822892029406434415924928823426317249792205441549123329078706010993084977835722547723778897645421006306183927711029641074066531795484986319116946074542250909889552653848561948343945879462363796838944744400957534435435753756187859885349816312822251167418717242955275743806658708447362101841859598550194539397244678832734267869132786692628186889386645830396375659791282467738074072443804369965081824262102882527091760162435217114817806712725705827298851544759999365694978395363005353598923761344524934424568613170475991160686894803998158446559357149221582319984612280238514325258609893572080649962032991463980351469049707991599160745948641453994677711961746743534881237429827474282492978612912434748631828949316922314108916548675312899470147390021934232256303318613150997389539984243181553439562083902424691410288609757813951627770657368634077320284483926187260224429803046513887092202673262520853852474462024482104387993778487928645395084789413094879614330834437185120192030230225478729040144610501263720517812242899295293074805367083732034136558017850257278339369908287476086257422791899183612766899088795697283199572996389296757948234759246144058139311838809274824115203526658987990089767569347014648002354607284047496658784690552031209132319020747171945305236537861204928730950572844208683555069355122023977956024528496434797793225140561263315609993721124662010135832428429694188500464461726243018468548989038406600822958075176428777471714975797880628318042216242785482867836175209877341314017320743259360556454341307694973680335729448097002626403401781704797901235519932158274804132588203994912603589341872949372345374262561068424470865635194353413886972219715452757555827050090610658967221060346185911889288416544000888348457015230850429058758269991574131060419607548432645106570729352764162611888226724157250319871392150925293765946621194058633037434766420292169851166016445229756422684221242306957704084754168345342703945307271586443537270070195999661330883984295235807256699784882270766336789486999408341049703589919143909967253060895045616629909678671467466520938686196235002818138607432402314295170103533506371759467644454953420499768450588181899951641416422296499687229190077197256996842758196385426673169617960025373197366340761046815227256541496517475066376519043418919292072426658773163114896858590815983362830236536089458966051101757889790616633321283783318584034101246415559541474066973623665019718906052161497070526634034088973537666496806050706170938719504548654986355521234539820940027955682915852596607936032350034366652016203039743787783878245634109503952295818509133433200164478868741999023150240187369637438814394246619227864681336563161037239969875069421726522751624436757308838893853884238715131027454411981516374968900427799112352577442747708886063408430170875708834689437284912185205288605597998975194033333240579290627346521007143670518429341901635906186920517965873394172773157715334646143972047439669793660343069473165032191673605500625112563816233959739385004747646175985366019671493633946896658882879498059671903064839330977062291014400048447388447738164164494469767977299283784888491059024841700628722240561791338527051253234113794237728966083275209289199606660455439977868519392059923985239120494245841193671254727817924013839668670779801079352275120442057702603622685522956663457811723034194346879518994235114792690091104976660264988516527568602294171036015986712844390508670362367830485869173525345084643714824749700634295478128461430425072469617358414035339354276976159233544600480141624548513335882408796847091021384421697007153903897811924719568029873324685574341999192848953458678207066709627439357197034892650459589877578926874878242720927492390286198845587656275806157092161603393184176816734612351094221651499718466048048710436292128483430105598505557962924602736371877640896087109668045592647533639996226349096111505560958743987452023337261029796207703266794546838380499017896607587016861309204422714172799689242284512290484538001402610367314038330695668194406850178997961601440023318301157199620831883295944768410823787011607653851885124292081093418162811635365067683479630193606504059587658232072818758028469070218660500107146676310621399757753963960590525159790543579045500125929815174225428972679688946725451344340641783077678721790008186399749326425729048416012254373994362115124501299138248773151297057381169671742683354881344397248441297278521204253182311650678482309963002676648682645240688722559807142050749591524068097608803253348117023287128381095672763416916920184586941627532920665463621296888064798103503541669164947689861805972066559594698221116612823830956456774920487591827224568774596998094993927030921490003530509336597456601143665462932768497093433737660151046929936598510588913635228558890661329164711264562396801701590583849146903402106553895409074418328067107630891838458487960444663779244286481370502202842286190299732696716889844510169524860270744025037891498678155312779990697361318703648914516148621098797229388394930643757143177883196822037238614944373562820519534926823830876936508020548234010397927979452731890509799958871285961539226199869368648301499594499327482675077242106952375881688609460798216515027081082496446716293862786894883590638447325772929830525135247961531212132166409210601577210911336565986763769669163570590725814028688088924867009382135290101486014665012646790086835290944280592378379109253289290475434846153197373872113091345824650257600048009191786165319788828236914931534253919091240001313719774072454430487356021516495950845386790892372156046640424931912253986628984932890307298199257881646330188369187074746803626777223378855206131221861930829604597183451677409915377853177568776265068360863982366337230537196443043819800575966439373035964118668128676394713043799964108838499342964034442816298895100179234385250351763850822976165746038593589621040605765663036556392892927188430272406216617197185433238245664769281645681807327967488908023488892408384590342760273633624701525950011721794872178723055543418249838011917781423936393460892088819751354520471866566681099111075541294018878509974193412597108162331190422219057231581792503338969768500930331339733974242423453280836172639659486625710779542943977986761418899343171510784492186470857877331871337991816867122650602206419099028108870183971211477429441859138332981985613002775202742565570253046270804722221889015246938337979370564906905904826553438726929386883162406251109022937547057896266800707692143013657296177639346013168734968131071370124819552819528145105265862778382157978526274623977826105968669507517834208213906627858453540277841012036599451433671178177855768109217715076910747265755788770660113431315551975950812580359426601950584812720264356455744091157752128924204384979185844241255170225332806625590731884502545572609202999906743504685827719744207626164949971211190284679441188725123359749192684937346080898592305805269609234729125311355007694674360988893657643842376277781489159055710928770093109819692616609721947976382592773093995284255167175821289767250226929571829747377283281225412428147667138435002818263214659031070836894744050009103799997510315651231779631322410630272510054064403620495753608246461853122043303197009501555747081780845442398890678782722226421643022819469619642976172430134107906677936426282969592227644101941257721143279527304131194759918386592945404301079345858157594892128119687716162660108529561315943309715828903542035843689942556878167438949224460517602505655381884380339341828389947495235829788823490980031457810005911714765347899523602056684678744766834155204455814147241694573077172578812413419474692514906764778913614407130514702982659964187466800939256765479539694598394629395299898448869266914504596023023060551628094129735807202272212629623612245299854630282240450251553196953437470355979673564872456068458941473821318176691663118783039341429016268917529628580719295147849909742361573151376279765717274731902160493594995303257786240757666475128186293396202533084461069044073805362007318327451199110824903726348796712908469525858669096136461969282111255304447168148938898247460627601654063552298769537016129497198107834309992622536592337191842722942033208776495401767419556844176371170949342978897285667900797934082757931786810211201911785068960567054561498249933363537130947029707877095420493429842709997903574614666396709865263558655575058840538244545754089261272902460848261010945625549196541442058997088032733402625484590128463515991263657626340640805282003026906174972482791384501165721897280645463831799400216346434575953413597844546087863856408401873001106352270021455073272843911924523741353705660747769682800557409474659992303498203954635890531745099352510004813550604366626645343575169099504383336876947738833963562234845284373367695804621102355542820604143662501074980791597483849781672298361601838890986343746096365729521613126557028167000778216263749320674536465891726895708660986930123982361315762393031724837604493320469083583701906673912607719869873706697094268259784162932423803487117816857114758543267679510712054473974086105695034917415566919984987607967099306969213715780222039323562884731431635542960420990043561819845513224071027373595252746656680606466432194427228152989713812980266360034724283031423596087534351850745589284814486746870064042128358840370931974783757454805183753428348441150967089895318189008098219703967159242377376696084723907645810172214703062045913493820235053796805623334811017942355999608057175192323443312161341438624037469340165588766253414415416431402028930900445435932156589492165429515189527660604973611015717480660019746083339918538774333639581469539155096734788128809376210006350729301643699898147282215928858207516692690272789668644344151622276462785782124625242873398799479194829460507224557073091317058243498407367360653055715450256656537110349902704740504611037225661999260485093049240103182009792778412880362223524699798663441533849493362011589592702804642595253217717299420038721988329802476153344166603967514197300397584541451732779728241980764774082311298206693499711221274049136302262493722122345640607523200888282576755211632559291982881934143633304587917407744217463240376430393260346915254031692321903933159738475411847679085010145852449808686966230615750136309797991313876076428707176943817778105028024995279668831574228932122867617729398105272418226560669466257357646290904256432684978889821357408087393776419018450001039223886670873222487417716135416283546558664652691718812383118195845314428980172180979150502800288810812560797502525455336395508951915321205647533241427724719946864278075343747319903377782723513633511563677444818287494700721245889966693802521901200904352806629312350113304911677673958800267825305590185029240373068974918570442594948634887738354161007710254277772712958221206123183326429556678584671875279189315521069848341224436760200214690475911327735755698553976292938501651629278044874312849399884261130393082794542677944549693852952048360616487674339756524299910986957795074049123165997522827294148226393086977085969254118390282345534681841670383953310939274791515497535972971500204746659526993344380900864920371358809747222893843290594625676356679994690418013342804643870746690280203140661597531106401141730249285950759072367282736361411216811091493841952040160916116999642177942481627467495249468480630812505501619032858786247924228144510651824031908468918652623430275154123700037190999915334932713353919521951586828947026882696945209219617935374432552649238642053674801692250562612448006384033528621164808416123409427615635756586971736538009593599833233048654885172891784061989444276105573858859088852866196095159848986958294065686458584264165792391508747399043287496445248639158944104256424191314234581115383335595432260208980977601192191350171270749335933107656963057883652058658900470624485998754860085012171735492779181000403705360168036819798477683167318182681891795757756813277396501020793553953118913366200098188184498577244419713146665143768559027840887852166660888307941231117266438238185936846176197188155059597354711378719211552222614970592764190947468784676617949842864681540475920420599633189921497801333789727974044499437918125282086652051775103519508023920198967184119408699789675466831736571369195264891779854754962122167505868735515192151794317382645327661449764000041779533972128447764922348832099475298337057199140301432432070479552674451169367242740051381765329942399074777475524283825510741796775776134432647593620839316590899578827149424601559072496991550128447140388660550327576685540836803484511292998315883464794098712134871238505677229567612143110797191279048860207623311247110210150456907848359329381302929970811495345137722316603583727170368094369516435888600906226735747986584832226616730725311726007669071855547447863414478197138927329280753714722899284614546062574792188694529725735082740262844402631657159223752349104077282685518777609956826983873036969057440512563314231151420614204281645492643468208158604342145140849367069832581697751002218472474254280113702311752430828760016022547344482212836331522738042295414129241029292926044724952792740584960904181663204312692890770770516675213036835994346389330161778618174993007683160343960729206200770650314521569711076553068114513631186235666986804077574075553730455655558264302152226627543545408871226534249600104943679395480640114126950780193066618270314898076807386854672282274142777938127756163695062211821938634293088584547361713698993741521509154136207978589447474630684245839325004190325955814119241792588731124427963092051333578256874547202254764596789525385009305512637196807975105503250784923516772591925048703980628877417381332025483434897154169493202155288655226225857037385614560840893748439373323120540727904900704598612537285000152060787185902109885997525161642103299072696665186217228262130097307563548043656004202226707091780460816690976229827397129164723160192197246642154539876016284293554596973349024433806754942013039647687141759814937554240205179620109805894473523949638429108652759735803504161997309755993610404012013659667012949548402510867985120037078152301427678471010799001524258157239388069505692789035817518827647132041228993178231098113161653300466118656633563798188037861010545131340045023543881265379685623252985357257974913443502841569545365877848062310348050292636530745253424445690953400575327896340313663111746158485700216498624056613601940681854422740705312004230284103964903363491575481310013270312191158430531046789498814694359269426272982156077793880426054601423484006482666531515467074983836224511903829833375615438467273659763264984494468097717732126029373494713715889931848435741911117210138255416053054631161189998163602529072254601576777015923556469982680324895252000152156502282538397662535843052563017131880530654347631599123020678963053191990508804689657337249418963378344225798855309812238589474424323504509500045182306391537699876872853338994087811162742687861158330124273863450953004662553291122583891224343780598226046052804711444282005908716382071639723864511149856679661410762780174888552566261283594691113335138448230907883660503196202155072324180389117585083800494283808602742448805538905425230370404510389875344463196629492516788368222158118827784320001144145666547293199860142957316472804998523268161469321970873378987275147398274194717627246570522724784782907893681622967497294534959117935612121548601161109664608858287199185224559475384270284426898028083645657331341454266378926697357692329090169043082138062546291189224141333549750764812073381071395506574030846801709764314556125492808327478555186291806056369152298017795237425610110270893914725635224927593131418740567984720227477982511114240694746997751075020747008564661630104705547988056860591935622231751776127388013542989095059377112416796118075674729056068467608444292701423019370570883352345717468831243326618141042043562784338429897684417893304455692383593892611111040722801166365864545668414804806634993212132848763690243622508393516732562474927911768331903826837629384327139301594043166102340813404683250402517824554951299626142653766844116854736198070044340349222196707574632639758799924682444313056427996267657876933446056827792667026488617551611208891792072281906267183711431898162608888708167836136153874543757713816842662348257694637591280002308651753026831260574021012800406215320755967906573042109303109998755335126654955693621466944605416995255462852078046363768194675180408127266204658155094438833206207191940570131405257968552182972291658971944798717346470450902235893342919420786373409083398986103235583808007233024087469095854050687391404640006424393086516884255260471166363379615810485517265137627384440155424697099960966996867824789094158537801054123686755568771847220334171226017039227539645863616813050538751557146497138596341420994028814805168443298198833394584846632683446717225524735429923187430691679244413302337583728401916691368630277846959903562385976951697860811984205228277278444721084686453736950164428067210684429315364377035536940556730313350423164191865641478632254651431075236991277207180985486674233601104474842402971604944861848910689993030617184491309890539600721493242358126972422916902305512831495288506182889462256396291412007856686150073638986983781980652035655180487652562982528524536348242876554215652941933553692254878488208736571771636699298888842567334439052494387237400145153501163475356319246696335937732262957564484776105966795431360424285317088135357236009895333329499969390432621912434211162976878461851945489998302651744025203509514665763895143681906009851523320718397614530509473987264461028048998119350714281167606418958910495586661989790478203086150634924744782111523707987777283704748705809348797098642904976655719162097129683843301980875333796644340032349605875471956505753948224776003515169170613224121369211127999731662691755127734657654670232346253480951598240023168094326261391724935774712468253540569152329609664910334712065128517207158628382901422160163112145275446920441234049005721967031739865336078740265149873923547083310507563195901580416537739666647701061299346207269244315570788981739067607825356642937648223137985445510117354623607072779995095777353546002571338132816126279846757236756099370627229610386468408539306942116765197352670421293653189750024129941554498829042555992876784124852066981736206090607565439881096705672674578828567864049150161955446608283076296508690301911441742210750686549518519556805811030608284830372891234090584492622592980623258173182231013185726495176221111088429539754386551915139721610740179125060075807855493696865869343686274252969150035658612585061558551908851001271995526229735224915916644320180413935939129641599592445832896896457001250072016269825351507636295483103540867128345517300874437603810658970847308594333055282055436022249985878335670765420302568637579643136159210744616484159651157000160763465666757067257227189966137598891465345262190074566013158524207594835998185719856570622615000589012329865899015896941096571597964581097527059473075341121754698280289909051062169000680794953656751551008696155403822084655797880940641730580900543522440686385573899122316817552493144621890839293835397188004269411721227941610668967589368122416302897046020698590658308174470387475513541058591305768611166379845473871787969674592496628776399561287821486480510644140050760687478072410827518120255891070102962538146457861006092511260657794592599470373060443978513830734554959187359083400326948733741878495543795118617463485311297713215095428599860236879801683447874934060848208968516985331090364187516667961115585378034878589579744022866433219394825546297620073077129370521603511940196217785887697506753532288309579966245423979174624466220939000844716605205077428986962609308457809048963208111335308652329304693796036016077380009718481794815585592742764170044655137673870045384114004108512145741949834896690775309704793544685410589062971664469381173784904290355956199425937883989806053539597282104844415565891250596116072440702920857704402141643368758237897640731414723317127005916404820176856865968044825359424443498833981955957955842722622393753164605942380169944456618450374831799093699643153286227311266180853495987221564321654519293511504446763700702606470070200563496599136756943572502227626447424235735594217933085277239361199117478812221748718250622648613589315966183405349237145048355987627420922627395764166322673916428926764147069848107769118315379140767369798352523165855053091763612906285739451001770183286716300857363269377207719438743370280264381927526775449757569021866528969078339833742241757309467652947313748572719607781516652434672837310965302311313846252049526464769412005034795592085495128175269574146613644551392245600839016459265573810591281507122787717062547630943115970603490294695655889884286019910408920940189670391874411828237886811593539867565793736180115520210156169237138751242860546300729274297134781851302948052317853232355978004139040022102385482428447643783256485313624169513397643991431424524052451408779201599489395103614764912371696101144524772531327720078436292805939121910867091849576415018425765498776062941277240279634147952871164374246089082925074445384189944204393174911050634029953754573086462285845111406166238194986910958512033111580530846732085286105263925516703005620800844341744853431560583747351922959603242009477198642124709769417471077356355095136755774341874276830335615615506312676640509778409404193171421821246918688530832794264469308311659778623090170980484633318745949066594498506230558254465876014914451913557437323447052599293367291696946769429295006854856273281101149396152284964376157475465286806709241630274484701880678277520908705954446585893205047893354459172886485464765171965845230199768099557941728394859095695470458647819787911583755581208656279476865940592265111370799994046467459196633799384089131633137673567672185527882057326628571711051312199610531663829141437822658661903117234700747977623719963561997855261010452581747903511871996436903303508511961760053609572435908615207026085412075110508335656378737882476489747574881861654812746928334330634884537283254081371731193053225910922609776082517610985324629985597019483895686099291941687127484934764629806778883729277374386519176525080514483563632613281189035190741292988483928234311860276409896241507925323186002645408826127005738783749374620137767861795263082568993264432209598360824628361331042884481590116209385344279379091566700211929012009135967302495032135494691777290609598372542753694170776741220091262187569713994324635434491846924627479981484751705549553393900194368738006799799825658761174487634714181812515154388917566699954190314119611827399518666042769904345638639320005645489282553489323551031355430179604841509397071842407304762883201290911376192230291316341204097578404786989692123499120316322646475027898552521511435545727379672046957621298793419202998284544820559460349958058545902986701061625294945351173151299790780817296178020664734001522999255326498019510746228291828762705998718624255871170124282369017485022820093294273629159439059081298068628126125276977336673774953559880900235455998883086778392276321587574310468712770844694152662144064936873536289003256867736248922568554673116772693851832744713396020207354225652372532029412503465244267662678202305853825478297369492863155786528903548792882599734296030796648607495564024614571212963357848662020590197012859839641809746733763331265636002645301032624486805340040053441212583396609187098150628032137245515372033894966574283519833759997126824967248227284032962478399401052712557713982915046971414851767485138716487375939442314238488162275820991524618496927740087723819326269606678518615093499437766260853966147466116841229028751200199563731037864972688398953284951990190357131030288765556991660843027240476815302689918449181326222034046970492626006061072280576652806446553488573824088685596529175967886299490303285874277554241986061651370859765711618782599887910607312712168049810175482134439683634858945235694173759563835630244680149123586500632090505556427633143792506188502169447475222419296066447178457118651354154965912348412520570951889526463832681767509058619418696487343127740744765649763801089079764930492452042975111511519690096607317830759156115267022230629120357372090044850933431390657702448510605455640292740824732492008907032959696099119862793980834040336938251092638248146900092279106401723120289778295244023278974038048366273394923311781558663090236213873744624404478752073410889915971449326107489748895209165135267477770479815315668479918878219424238258415305963868509100287953368449803139311589002748646424588265286867259143275227421284985765343910134655077042127293420237690028462256963760666046795384983208412147752787299694291361718302682634284440213751698133575693284115973593993604553207505336070455005863703403506042529979979567825121793352567591320654133222507041633009884526608752821594861096355308570726786636535510988811062966774164509232119143187275604994893372638883510394833989845206842012195093942815220814177670225612721359136025535892448107657073358888474392575195704917854367121196811336890032404143141144394112913252021072227083947497346145658031395117936415391219860189594364745870771347903189695332682799319919588074482231637828956645741798845055171752322418480527792605342294879763417463008085360910547110814193906568219735356308434207799034750740574710692959749265427951238192087777896520254490357720372370939825522614561426400924807614973911687757537579837090715454759694608566700729186386462282967412555095175952418149106504997612039217368959797970946333240822533438140867958817177469739414982678033791331536303319907085196211762497621277713701530316338255698718274721867896678131637243253625554886876447560881222398547470492048989670922581717719742519023030795724220194968599960375099229470633419683341557180677902777370972264112357408368873362892434434147279281452006136136688502902925174730062552135150076192837831508669751674696018740784747808227223010685699362558193813300583742850775369209446238488606945115833295092064326730222850241540771603878814438374209234533851119774216691264335530664825965834860960208496608792414873378674505308425883063356901641859629745998398696582624715925020378915853478293377345949892318085043766499969503839169600108420044375722155863236129748494322438981118168646091999104954717522049307422114490105197285364441385380078045681606354254654645412111376177626012709414842824297707412897342626109071127183382108100189953549852500823939930439141266783267854866853610377808949594299263845487921360437523525605820881688268456117611738377537042668710519017572913764482670833158387746699292129901034677336200074473175520671195618179665117616025116351859296818936905959634841995662717338936844484764117472727531804955037231733684785802120548188594176041348659362055531717766911846715375332029681786376379469272506368101284309066085542376771096889322121775429649857313324426219064902591932336328538831999911751985723144870542059319528917480085178343145223673639557118639453057856562977169427732931928952064630907711483617482052292743774098796467059058947785555466447098857836451053363334968034670796681228996155252593216712626454196813046739032018421847418915378115381874735143441280839249353602416786695284892732548373798564457011741521043437014662848638905254764951315350986679487383243657255623883099015170898673462907946653079690590101424761561057903026741114779722334772961712998901131228930524375956064171406152171308211943660939418615199626854122702176354832427162546805011588819168612499454226684344700310700600518866348926301115166900479646217525684668338614011690227774235651783004112854078198977165400323829221042640127824731445967920683327585671766115850219199174152936189380657409866547074244861426246861075863292963483429122895059048722500942151133023829119773521945959714386122228919779341953053349708371823164611800585276759720958171806438653964955351007829376542739532963519281122003573916611060440809583707912373815478292164133525405134810746203695867682989189366702460900920835816848678924333431678892409512570097084503722890184510922634133857807736883763058259791052059771320548141675684132652175840986934816020351619896670656237268437003393898892298946074359083956671185111154316936018976155239874404702323285686213166677476180863106148608451624140618645089127737354404491120595202576791047788511239690209464819390898028149389741070876616135227200440006243319559055915491321075947458892009752632434148463514503157817617598112037678349097140919870655249934417095800782327349478488299123834542519565375752944556889019308629243111746379657190396168166760594217252441724091709532312862029576344768026890254620186997409878104621526665487679316270521888727599438317317956683854885747156545112329249611243792386306848956743178591328394996769855000907916184630718686524092256581746653811717166858895775496681477130018361517678684494207932438525048839717338261164372204851412590973051344074545117404180776704127542063842846808943782113690622539314253879516893005566709075422308947414346123585036089247125788928344462757920933332845290298290712309791207576189914042702603005934356434510412067170019391083224058204423259864227429291422747996835690810118992989491039091563172305611757022132270164589497411015643483515146746781279118897202975930319887665120863231823696222635358532028105582811569064856463382068856115551413057994109418399821975535729282018273455828436041142510330557246568148726816356935054940860501422832332728584093829496464376191169200948586859100821906488928030407990736118909315244751150903839134062826388010874172305226089284173203836579006928465748142127470599397930867032585906187239328836352414048149165591613993608917770376982278820906980043489723152413901585040774552882518656985774579015543684214223296528085537835008541914492648202901844680229464374816393471112470597407370459765721475679064484647525546202157613140633003094882281130814058744328403828163945718646929653013391598381073815305751851975351206332349636346571792323717942951234956954891035935070767358999548778669543794798169931508019888003802374336798627745340229347693870896166636932351234571241422866996647849796517655944737495489338011157913151096644199430259077908803798836173972877067658366116267303938096105806628094622886177951651946377319960200951875661908021722490380586173257257370173576158946011279180693995352622214476387857942600792718613343526745858772160817956757953207314318683418367467706572986992352634414415645531428217345301316867893190572023273939975799670098303068711043831655469603159881757211084235610046846484856559435513548498969152716579882062885532250808841931109715246532257971538541388263774603068838305904741123065371325699152899068150803543556972054444803626322886291333167878604497244958790740831463787069260562661268576821923963714599479385837136843755024199004970878618109148459496036567908911461212930272037585429612757786815525430484601190056067483095893807076832628732866786359966940070169069554280239420923450698622342736041125735102275269771236243572274548231699192057022408757605207824299023864921922721800994910087167052635025071860409222993115368968552488332803048605386462499037249893607456843200554193055679564169148071901206235246397123175483063469108763004413971441413667487185220961466974108288151508572690698996018829116845874950907059579319294964406913862531684267726043561326830099356918929819028672358738041365491562571618534615554037496287187327268799756335298018948583800544595437432158069682727571534197020034081299243550484765864644562519577236787462552442559905530845269575929893010602225365531534230567278624924572908412633967651661337568874748178462730517667958657793864104479407867196603025927986596389076872252321686763325465557157099165287072705588460970519235111524838539482024505971777802612010771726497272043352456009966498878389036463685405689922343554614651669109903106821940713341819985021459797972760507010444137729678002209466934789673455326141658942844833226320970298707387855464174596624485107328053319842166928994533134734918603703018114175868152668826751111769581885901051986381865907418024125908269573039553303541138940983585986282391816494221081297226757015479086097275027691563401442171639121950156664857941270265805289407897120832237570650594263834918394277911658197950326816303000392393303746368968561278652978747493963626415624072233348857829290002891220234848180968101282023718451491883328029328937684592241616642957784744115525713503910429090414953781665755596182553121769032612304608607451189180515419827560657690460542052928042525275355708011720876567740280924952687860579424244312179415974038419288619005941178037557003194192032212418132206129323387224855782182262885534676767396401648349082590098875829091913409760439223641399397739492342929569322239355201642029699897809682154362374596645772804434305979811161934402578425506230871151427095615860291318452312021413792919658350009631529790463493608568540683111462974791603734160904117430855115158070643259401257103662128201410423710239677548116718511340344579016588773999715760354495896486403575876690100026961947449127863018991294446055854204572197466257474712750297826045802354773768864684890911215043539493604570860158028749932191607743339570695480703054584623281551669118568638293186221566879214465867110691808676137914358322566373972650434631767841404026615518800161111680887576067548566548577677376981623070939508930568835979343292806226370895648860971943723157657763717784241336841668128336065119180294798610484512046243712803331583712182002563208608152146169294160279951089751119125998506530863601410831666622855730286389821856630356625744333021005594576313178959201287750410588583724423637785629161112961275129573653001631471911715921590613681977855893306215551673724083151906326948266745112635981076515604700233438638307275369450507961722506990083001100057526945291232152201860025313763934979746562083772183657709895364215109466187173674479649232189535849997398772616200293293714848445132886099324184453939399954417051538340596123020384677932874572404284306050876656446171962380914588592005864018478085955475950344633429542878429404446551820484621226038765828517315205224902787142947166122385986678150072338077718916671912936619785302045434919261361988127075112160749124360374121638581906882786581285080849440040551525213596401559259770327654927578217787700701600157415196907307062831396553287531123744135395938589156214525141857667610580061203131251569756537359622332736024325827632481939770270679264593172693387066767814654298295451470641549909310507752312472660516379647027637115032754545884468035083408177831990207580540903852382907522917786831900526353145577155422899042635179765497857174388293099382892777153843984299288291344957554547210655571978482291072211555581131923250048486650862684429416076975522605115721681573805626877778313739747670172606744434009075099498519314016868956990198811202038406966243212697668112830864325290363650052701679565922599411503845741495373219775849273655694592770517341076310831955891432053106528438283530161612689828546875106285018916109402691689402036648209838097004028229063972098687850461200173819937431581164524272386737987003625222247274654455586322395093051225520142891897896865018734998751827353944597969598122435119971075851246016380954311403756127729406855434924877346479157173932171393819967757792096916102651809524194723023774180450718541104162627103906937817891999031145624520459648360671299484149462410744782830293135288030300432104576266477034624648708169293424409662530922821582395536409932439860431473296217820652528615466226755735945247413238837133934702504701000003285671063931274472704356576153766227025887863249656412522628144096501239395451932639927161146797177500792929323967003285771567968462654825195601519450339022450484318693358299729046491276580061964603190223226841459890526818848116581430458583889788662136351236533544521879501513873339634521016278365897625991688682117104601696558803187843154818061699164300019387991576779757052643451841458059335000335657176080339573867703852579592707215377088682545409279410336160355443760312645981001373737669394996557337178006441762216313938748196857086125045984645843871974083936162294013742294008746137585156009241531989312103374395501327221321250411554286979047159273597150882368668507124716207140079414150105552658447242608406171072540595166724526203132132525023537722599319040220254721343649128284171227463905318006619114542387956361461662081649875093637008626420133987941382612049373353698673382926437424569332068773167389549638340325176373769403935168988636885759269361176908820414945271782697299978532894586918443155579437067539130685265686679382800540927558785373972192678179915546917073549305504856219989226588889530751029013693966504874772087467876793869778690913901315091966242727524196887309551128813229093753468812300846729955099937639013190666040891024484156887455409403826987342507996064510705352469181314148777085583063414481535512886545879772985474915774737219686558736824393567757928768187427545268601905668725842781516285300874044602101073153110323913183246462248837943598286474241220659616774628985572699300217097745294555618312278977277571796983541503474397699318546155463785342206748280039692662809921790496074973813840715900522686927181679422831866075545798677774672097829188683652044769313195921200489536450580945120057863806400828664116098958894743550543980150465327765073050340444619472149968072365968980434109030466090020529753727471710747920296290635114495460048452502201916359379636472448774621401595926024820917816030292127637248422517038505872263511965079298833569820971849497883224013301299578820722385688660956695507606353471920339705905392395113740599218823492679543884075785417119315877425855946757997060069420796405432593993447229408911454145464893828101491568095572433153768042538781999638305117842980823507526267149295325775344045145761578502557294324147176420543994513449079690854728692414057036434182033219614997674299733583390511544558304996973451427998592781685068990580184737344841058948759045652849175964657272129620365612863634793732578356304285554678930178450586779532663332538224076864981810304938262757114889962455797876548858618365380613854400723588177492577302648253598878441170784574429459615889548228703127459759043920153676841616490806729258234586208839652714794259111778580264087477816135015654370690378739575996766961391764548287776774887763938414541759117649850329422436083298404457001784120020545374962065574005564414471998788978292777453216627154640998551473420661006097272836901835535050937611889521853534440984859722489267406418691837995711427579200423170800502524150953244115649563456681174855690676173248078944721665823226578280526089532106462487724783379157445364324561189166279379830599009481976396239723751202053654026944377392502619406838959033353133792175039986351410996731378037319118364714047597662870038480337059026451115672208610652818765114801454062619718462740408018043049223186658927031704492570794070425940115418620932739260738012468026459570060859180342280652589709846190224847983332759665947343397269981437044290751382495768015151919650698298294573449401067408373875119756481328556695107390396533647171363172917226096002902488016218790995524991541911383958426457543969449580893610290301178697321686877666021528362687295580818978862516028072300366865498561270706069247019303183994837437193168935932607714411353388941167577572893187084375898452847153342712780777144924594398244549880445428915116084922285174173812922280081654206498739656960964759567739743256318405456956120636919712761989416334143843114009621136304837289045381453866204933170629445219245534850107302134719894733538682715473553033955445017915288151766419615038209485416881074270763024301899288129569820541477666347464917373521461847247643349018176660738533416298019861340849945877165477125760320922522765417871618369809732084072634494570611525469631851194969390165352109557737211758990122294837239393082455197176523667845409082663342431095151176320609811313205632577764556953068443357681230354203122012030477362676456369904059956987353507975866023642411773113614630824368767450319559306813539589000357943139442263205287620168604056461213493125183059019783116267001785433260461802941113645580883613032284405584330937505815128272007685458652009840966603422767334672482943158780518542579834542219119471800950413577602781907097379824185315623795274433549254840901743975448552535988067126076773364532398666012378323498789850499143457741438785358706283227312037638351767618179607829815448213725371647106836558430638619312335243401138078069529959294054922027816271467548950240439527911399588379845689236335219972185070707704442060026974478877488080306090906193115285105547119257218959216865013764154528604786450135579189883958239895008492004399377488941790697389010980585775008291820949446074701669636127582250804579342588912784136749267820763356542669066967268120978793748222414809622895988895142434729405222092396705604657101242897962898537189059118676473013199918075911185714776992315694340686053162116784893467526134896818023368632886276168645788846134151803938176695566896880736373190558798196333010563793949979585865474213969195755300926895574253540773231409075391919200464699183602552665168762740003814624067485639157027785824556019242390369673542824692531824386621926014092924042112863114515647711312000123217452664382088375213989739690402929809271501809633744503740351048906626601230856133474976588576474493327759131461125902701730296446413451896748646783706259569473900260096000652151604291051259095961764181957359530397245287256058660449822135631006827171585781625374761719882452519040713675196043956226605771091451168999580379514074324026959356327907507223623191999183257251128234905739519682012510365388068789698036651796150000698241978503408207181182705179627539472591924281521672434280845751378611694114416682759432270619238004572281014231383833037014492176133083135564905142887669610946009532269572542319652821249048320740311625482490996377378953817264232490200016710810126996685215660838313146748196785636105789589053395741456993727542936295127176735267183890370001906324299590233530652158008625504504791551627566818483386198284680531199978108327803041447866633239705120925613031141303831362585676597367639582156483874598676578926993495316078539075641503092800486219943541187764240599585996465168606847486781035247614543721480490820311778203213600227641413554169251782319861430808719228141104744136231707136167627132006635757780429359492395544047178443562919585191490331201614826794752826012192644391719656910647600094131909751011571451271099545872243330401563852908346969090731041840258210889135203979942818639309584767110931164700490508511791037204631335215906552786904657439615933397365797628225557807616882019357971400278527193529851598792314516851613716885534590620060710760373932846388289077861624014265160860457217905522694535387441032691888079317167593683746364997216452445195037817600986758077689362262347632375325343958324164480907780530174950561281931516313250955491974818240129585607350660668042531208262973621059316236086504377320527131408862390048631177803404540222191124819598178986394366724496500019769661054643452995970655681909204540499154004520991053724306404951774924149991523243874902526997805597772934594371403057245053284143906605304985153057508516199631567802782274846321872181665018279436845704677152615228080726733567778737876767511000488855625154602124840758044228449965814924045385550651719265802467846399465932177826769290182189114838016653034380081873164358646178643319861379065505165114405938120680273133586488484948522577763183242625970110864774430344187854931994709802917990333255236234644012298489785439184898242883459670270270416575688898656226454711400493575724714516368043528740094987112263752065521305490737385395941080997531913748543533202683375704480507429444985924134888746158631741678677595710696915864100805962352226549154178130877096357333428933659202934245879326144432545770052320144917890763991285626978961401787323458284819649568959234341825289489399593485491872693906193489941873114848024415213438406638168737617392464071522635981586615794579894894262984306412593282833314132314809334931823753456022132723636608273434218174366251956508773628063872674797291076095275353211252492505998517379137169772626212509575525541515993928244036809094961677594867681893284153830401203609247888411811295439320784671444315794843304492873726494377554484809982145612455098058810249704577742812362609794315675350295158735940980274683194211373460597455785325281936930875560731332291742047448046377817452046712299026201644725211553228458961634132930926573138682888891209009097039903383799086345296277900852328943476497127510818328806279689592954427533788483867752519120099584408074642131045255540942794737243736638723142463065226134077960198738289632127371363945212412536433790753227961026814345443532140669143262310784115639057231820576913159510888127412976028874129814712705477981745927117530436410045075143927527061711928282086765283701341885746714441884587921612994449536902942326040633907136355432485992595169187078122821491670046875222199847429504108535940347786843908974092324944305066159413363096416102465213021868764039405287317950779466249829766019604029996706980326003499889686103663239716531445604783369634934996383997435673383069756622830155683434441921912491442342837069620941754462070101056963729783657739983559864250457702799695400796286738358146026168166694613097604510307275178230549323022911459425239495734838822316001175545760032333572121140444699751276708077257992666212480106057704953682757976546698750245594908530910803526786698111595341665273523083297338847751220830554190053580042936842187274525551422917859439227633467016833947604093857736414293643713389186441464698402836554415975816308828434637618924136964055389052805590651366067903738160799959923930257925657087529516064798222453424014467882772500785890608598754323464883206945996914093526614232059730242971365347871628272303033780444236060783310535518543943799104072108159355529912929878927426410728694809755478736776125750522143720284373927913376625967647861332160378471835819302104505680352566100642914658921317916906515993983032799629759347020319180091613546366096721682925661222366438938350838093212681185776927313602686110808528912164125442630691032819533442697518265503054880296901525186010371012085118423268626801708284632994570616400473510647878998984630917354330176507571949994481257127366245294758246249077603188208368642801819882411421143201421270650228807688691906571274628670875234274931096305120433599731744086965260495499880395191615911776097877767273991503871508918983293486591382749287209532037578435732251051921628092397270417349827538599222355781637681565919088272243705918456071136304310234462618767929830219881867759684259080104134781942450770615238371960084368858046737347183278129261642476837881007308360459883592425934609252105801766020884537468911127989768091993838461169207280045018603405420222552844309650471356021060253579747145040279727391161690721512298496012854337038602853138718664864998309003642267191999954103289478284659275990286496297416334576341176406963968560192139353044940983034682571183362990967138770387251004223798722360550597472346592512747290868962094097960406248908027750835224666933111297116443216670217349110065719293534401807001564854086175583607722650488827377796103717494661640891847695697515795880178369274710435958770835676695424693343590699768689246629125607737049991339287009010435154515536077989178665023153801804970937266474501115568401532761667946199378760228719652245597974338384665604074987416690266506330950424206821136918897820220968669871158178809722654584218665633360680937331379184456942563185576507265899571270798770073871182036883785765087922885206896194531051641982005432425738389853849888801092487204552127621846840539886162543771831838444014887443261030990102405878220398274156042351675945726339418560372506198608196208534174605929039906888382306262632436829998274101028573974493394658584942280669572872986785290273897490567016745048488491738972977041904245440486973190984698252302304949640652264837377841107078602321295370384089166728598804395327583129796105911938426337010882581362706822023109300464426273640821843369027531345501727628115031013026461442316393514831431071175290134480925980857293581244245594683928364713981942752076641965937465872666889178059886158559190426136493743951399614920675042094511218058597928805160673494967845894128568657586387107145861227930610556697439823015408529206547472731447345012281429141340197034051655240384165058984681670503750370624991862908191928690575166147962746240930990837472334449221252062482461319149988692293804739946034990248669657618328822280938451263804907780068952794546152485551933729576790551931306511593988175364735526467090662511872145928997179128007934210682868906138823854844867446282766229291255292017442253265670133655779050982185576888612819650488018932234021768086554049285694224706709645184988392279234620590482795605325185644172147897682324761541940544735505959206284851515230957895326397956290972370066064549532935671388404314826127614131577415969838314376285997694399475599410083499430758039873978881402395063225750308783621540023299258824567753634396270596351543577057137460614283320330558367292870732785190518545244396319773310127441822309352360772317430994774732876667149375504031002063812642807211522592539718999014629727423392682171368286240809608984200477275335256468443558242427539439344222412581856628579415693927552096180398724083141569657582450892405224385319662112368074031952959051754280318587527827165417898382143359684632106597557072919122902246801672385747865248946099416803444939079003672418452319255333809586192896395749011280054684985304839518576079098692641012611321098195157582839191603248236809946501332271173094268054580086811405179148873406903206978998416181032774409302131632054445443116187942439066256052857092553277124495053006442321449393933515363032991033015081327060536487276154119519451608304281706397230868419562000764577369858240049427955316868100476511327149982039880499702068599653327767442459113383576105272770099582125320123591587695448311402788168336757070029558645003733194048387062495616797689029938539396958928614091057539700342682590191689098456637691358859497891381734235301216399931639149295152335808215538447592333845796826159235806779894199774101324088258174537461139159378298050177605334565874674271064114601954953307282783667870843037819551901815470254450546290412608866830891768067215478022811691287524057628411619749564739544114396710897766503971692637181653748798464254571076363101290912710926340704845706372649304292145661991052183685962547291412619453989877959091439405107379418732517521567266340389676086917025516707289364778509316475301465153375204429903104673607718921974291065042959033032646552539784802784335917980747942043488607227191083102220905710873782067397222067131525168412767591137872902027460789341796022826424831432775376747629750484029108333013796845088548064881479442031071944140055747038851299352974660652451346050914875424044332150232181882883993067565075522858366471361198913009262150789184981628618863801772649180214138682439277388745322003257479804406531382505660336303315265803591377065118878769914929259104607000804486097459707803070186905637558448690263999134903217709231423104576195291217283261040156729426601379314649989047074804231449834622850832800922394697513239611206002340440516547887973878465140179470852802442771370235948387897285169249160233990449003814492152758039432506685262728698605727986051192157144917973865146819789539392429210675509761380506350001340808684026310014097816608607153361524538750823259625665379624811881206826438709958406139678764893696256691534940724142419247725126451858614556254218796594968929584356853997307899032130834006331968007995275609406425110347789449235394597048851121505463055018268348180739220481819646384146460695782819536831825598343315123666728516480415222594654762516245830203299622618327284794956518468794824927580481238304486183549434952319383432913341149577695405064257642532729217709298515104089764003665878137893956200976366206385394050209673940759716255058652606413982051444908515405642718409037553445556429951010370304152800925299400020283394848518449361487508701234215849196224637175376711042228514636569365661040740583289643648564302502804431230676455487723031545930327412257074036161050060122745859382241623307681636810803793626523837042716422530330268009934812062330989869139331267320611931811679724165430971752483568748001484802630185632719814937321315288209251161664344862106052585897138850054019980392201297428938717131323542808140242130662340245861592429016901018130371722633722137152392703848328800667789028719615934670023536148689481002995691864520887980638383029074037840985315855845131822144944921096272756983389737489246843102458588755628614425654194112788934256964660997798209395702096573471900018763375880584787648272644356557502487495892914999259747545486753618996222786696481639910717832294021810102623053170003683135967662001955923489786824908803581473783939035630123423470303682648704521135023917091225027368410696986166321301145100665177327415000655456960041516216251220121447931109186359393264191103847887420192743940381827974637258844314189493112319476660004360489183940873974820939922002846778236271391104751206824270658413381329327180027809416544804709535555171979961789866910703596338523758706398929600524541957315928583955306188074753041527793880414096195950091336598400495358832689960621447326311539996787915969067100401438825144485224971026562346985122613535531528994351763456082307194262847621811776340491657455160496513972342155287761957205640803855106401117199361550783561212854470192377404970973793499777575354320686818180885502187192591988466720607648896693039476705193402442619798733043514262401251587959083524948352073054383329847692166511677816822306045950268183506500673748447822229471729789002364666597596960565071151160422852017153181761351990294526967869435618849410836293071164138979644692517454886019633417478477066148203175082690085740234382072811225873258178632414687026478879889134744198550932942799307179160956884184080062792693568287928121452058188157151298396206601333407510261538461215811530677505195622835395970160780272913140171891156703995662222956149726325206249810912861569650923926908656935765525189078016407620029215303931589744937000182839407813357378689361962406264773633399818010180179656399255092842514361132140807589733866662073464485253033843412219602253926249912498863001403041891524753684090036935903313806525757637498346639977041928952665443947936912837281736543378808473831897427715148941663295512314895759669750625062878272194763747113705603277418547728995090840946446591899203642694200098105928375424405745495479247353404363807033582047262034617109942909301421844405894065638491474188280224157442249706816117690806093765783210475604831250400303371850692072318542870207478071570575331776895928294745939282881542139465195130803062052821577023567505899876843311200531838703888870841174554148901437302029018579183505938133850226034177443643624991068812936533933325965415291167831708996937981315075022054993976388235633551121370968573178179834383569803273522883459488748563185855366737076909631402981543487385029036454918997092231188190331187625692027564382618387626352670074639425743837804783706757504625708537440637194207880495553453207254318249988632470221118962194207192673818643410865084768007016160377282045797710268576001664354648521533138771550200364628932346637674249938878261602390188169088431363540912919859017411329751086055777607365110764504992746018052075312727808096984181599161704536640824188974071444600554159558612085638705703926189423158279375097952408628618726905979900452364111628361318939328403784171744135604251841801983153609325299569333572456169831920416952830728614901661771053900294871312873180877370331914451882733547691070751628340600436022475178219102338336557896501208193760123533202766348422079772236359364537260636448100175875506969150249890504865072820222734173312363810038790413870503004822231736944508782828884675638265470592873077287335899178082093719955879226525352331303572110692220430474403820973957963813989033601203534190296765290369559003722216880639427615001520548918410220394216423522255904948718461312260506902238836053838977427458720076348625060485554415566559177198198580189517519087225739509776733863259785034442971623018955820576811290487584502802691844457665847388574412164276915931634914966541535056180867417456221680622046073975063086900154719685408579056376715861136898083452687964778859964877491137055694049889622854038769229570211804291138616580963527790923457873907513709156718112799749331919544810170265882285909267046195776607514140236807103109012234000128753676993386788543962398178829568852866246887455319027335869144631194698695379158227671404020570954119126108634366898883118792656772573374694101281425427007218571322030404114863544348249215576394537555665925603200131065713283682291307734697654960003522674897282903864412221878721672316980684260100938676129734874932453741291773090500587190204531445656406276223846247381733761780657400364886519016403985853566310471327413500572711438557555283509601999734107158197350931633394476104659374533710999018814439351250818606486981988499325889012214118337038694849926156000326940589670390701533289321583572816223010498376907702382595878665363211263833345295202992315574025678846017507187403069689630750162599395135467528442939705106280561976677884109406245072632549473939116383143068364345149809620189589621607343121956133826585752648809872388718675702653411633342473685171094787851508914324057622314544476980507977154430889101207041340035704159338996143894969556189925415573271262241409892588080403527444482369556790691700378854784762444991734130604377449638514004872125061114814530521746627206329401385940832578749659401841173783092166778460832117861258877037214731915370500577932544649183556557294606715707776357582598449518462383230968418257342481133343151983971347912188338112271674611865482851606717920420117293794152231267039086851087395938223588445168836365153492720288612463954592650902759481820869528453313754771779137045878955979884387922798311817915230502073041217049375343943960148939799821766338612971064091046643050182243211564989668364954849136117706800879301167324015709047655227568190178001930751234319855488154317027784629172793853642239070120055936947381095809568511521225628476049729068018274779552525574680662353792456262969292490844161212789611898960831923477780154877200378250089654363411015674443501716122766139481730272934936651134419477553426927461906217127107973751130553528018549122714028480935652229294290924322158781461203317522186560487271657012468012213084768295521116251363400972526353015111124500310435552611604127361329831154251990064753599761110112197526777558428602512267275160672098369668073032222465273935091333254558140599718465795460424120549201389004717843535890580503527939976915229176844196400169288391887798741279096673319679418932974333827315115891799900606009140180461518185182711218241522687935704018002515528062569662712519789177574262077004875425344430717878040249107318376337915515799411562967434861514643847026989860216415523071215342509507124579885013851937297908133558707245733744466915084209412358642826889689734551643578746929903268447241660752413907177602521778144229619969531447391513711809238316655436924478006689001003131727269488705583300365945952658439921588627493682399794491018045220357264933987499750416800471356209602635217348552166763451921936079664944651441571348443014601933746380665389397330848927169473763991158477164939941352929846196882416149407256586157151198395889740906598066938080216467331262208980720003816336033187457106957909293523190501838076085188950151444236192513500874950945089598479325602596629422586906750579612988019981157937885372523550047431394362109416151535221338896765801077407016515867787819157097847318369544307347020043015310174849060055035673901366520545993080780176051435931795751472050074522672467964788480199850372049059598094314328444184115375181698348762216704241179752456028405713351124806050203901197158258949319250438682998676647663463187258108209141022857493978901561501665176589979502758666492214997249070696758502299801832523938879767418925242882283961925517131019574761253130992365942124696946632077739717295510671076679510181209760120444928398277742138747334249922546010408150097883982716226750193812168432276377789975925233064603051042419196052138142624545024757683564869604106220432092963043623815571798568319154515008000958941661156562098764824824110758046191103516485702425392816610300147430433853998696237781703698142658901947452738567247500914787897393883022380337855580690553693878150036788980866338643132037826673656236737340061428006146335919146107652439371480801342493012801894798312789656748385069551398173159759899589071031830322744802310741215218630894319884488938675100629281737483840913994470352106743124373185010893193464047263736224927808781707407390139749787035339107524940164121339153369939134508351241531762404986695352960140805724504062802239259362621506984778570929040025823086816997480976247259927611996798088087449685826879500587325923887464595403212724380429865349044458998964473310509835653345802008498298849903643576524990602714919896911497866455341606333100748693401958618126637824137811327197298080379852314988149438205234143403141491620065990135273016082037080055345872934951833271705463362913874088887276151798709864927135163332147670467228668820932661831358818647385203573633071276385668965925609010935159606013023438824542569226293504200355641026194365036080374595917018713124960598712243571200534957848851800608246163059193864494627804086735887273055352784068953177955440305799221890703512226353296999666303641507436447446236914550938502813473375173746269827350278375408625257402783587491220667575090274369628257232656017789547337500566863388405903825850707157649749662734202976668024739394484354462277188922626208043660208990786853248190468986972331165392139900571910123366962488834538920221381793002451392385906923175859055196342993821046271977325270796906623479449841538240658462139628835026884248215005644169337564908903001437814780155151078040869354454402043752093118822297335573252921770606330567856178219430169746523572745626970910415819150331684094974277267265649658056213841926886000181998794008762931230225859052309441398807810794101688014571515568409412121381110910109849694491716780096805207663997902128135850025132850131851485129878494808925768388001203827656540093720441827217765464098037125854453546314995570975447817140963867702675777361791151350433020046050608250892869158521274637406161040123980209888833915229368234823977257243102034742663617122106979147992774504398257838939283110763462998716847379429382480396268893929520342211632201842380444295037626092656651799982405923479751018802970639176581567098100351657970219177981601175565507271997052562726191369013671687794915910563897911603684577322382437018847852667301721089229903500754790069888654703432841932979012371214083928888658491227905027588137469911809524549108679517552708604069923399759015735861234586309786071429194861849167987390216410967732007593683030973592675911939260245313087104103916674674436860241466078573084639976864421817964894765014960608653491507727783027981609777145722207729268612312264009615531294979130031492614713575926653148121631638967676653021936061755280910555730150935926338324257386827222402949287676212796359680240832786738177354832334653041049300376528882489941000660667054909876851985437585965382614689384070920927143862873356395711760114571394676216679664495741977578980512277126413772003908724384973306508774804299182944819893839287850667222156258208318747180470063223327007339660234963249224607078011529884038172848347424591711720715348074347065391707486951927822563799586405584237037507591661772059718750694806038287631200132555169637280529803020067594763710627488128347859329894726676065312735789430401773493007118011079451786184453810672641845872511680790843375849244753666083266088179937364396561836590746831470638051516075428344667723888741729916787697426755837889049649169863435525621148155289553584048632746256992132931566711158037835728173720940278387648831931763962965964151395019927802279615025996676801093904901535850105905037116154492269689280917967659616811940944685478999796835483195211664021432967578125999387241631772252353913416120371555455796139419422606044394658969115171524138499897221520513777544259874754157631882504918853991694033726841134166136842878330874241185606218207705175370844258898038481503959656523887519908943876667509640843362643046537343898087110746698323774898912634881150189399073384642564490165886069529056940630218323332596915987970766632463077414486934463569650261988479825002588211438420588760919697567465086031819374901835769291585353294518052818060578676291752333512224149014659999489883094284188166776923631827545062494217120644067259344908128383746887618214374390793254622396508725868732838701481409075829034125174647494788842132876680546743582481257983657466508068207721364822431504333028349494983644538028616576808006375246337469291128254475863015662577956556467147669764430605771717191379940840985861369690362647360474021904815783203790653708615404990739064996250940916825903975069862191158056744221094618882921847699022402884419458894907981246116221121607872148848173987845032392217484636500677561213656341945902891166043503120592047233514908539866175375719806350349824202848278563430366272572392331146331875574352850005737345612305773228570904048097318323605222212416449601138467875932204667834837398710216394505624624480644852485042772895615406504838750971760197797962228922969517049445024716030515532677509874180960328891931114807895810546195364752838272099608763943718769316925028772552743080465810522282468745627738728493270857891930503332070743014253764014706894541463595072771413554282398196943992023868922724113029807558116505882682929769102161804475849432869898261440994086568734623779103366645413331546055950710815367192923130427457145786882446975709544338960036945327796381125631669157667306275154187884856314105336638034084760834816140675660972426415271482242657652496022558734547718273240916485879142368080509708353373749969613234337894732293525856965502282210623712444156357485009934409174041558375872565394450721361409882109193212599613384363476803535685355064213174233613854660875917678319937135320042787662669292229097305434693465791705747995751744663635365427038665266045663784300144805663702728556619891020152611231857213477741609917795346422567828253705935817887175321919000108192785456486390543461561036188188689103310669666616164702202448054033161149396591905374139383308146597786357945647225571548050484861007653828173440590625092676683789571300313773985170079313084199801910096964617663167483164685075826292219065286237011310810407493533005096586399464281480944459597395288507872586939193313983338018091055560355064392815241445299932622181279829388417086065134844578114456755338031925400709655884397799847073817889519998403094330748645849900924241017317456972024579192993175205066098231139333602439457370369112962871236886671341101460181684549028181408210562137564134177039807540124354373458192908757238028977656454571923101037382671023526831525756725462849115082045301545653368626734814349407147617494903409322497756093820947103829196425349793724634253247879021325108541009238149386454663907760011784123546591389014238533325555542896079514698646703390349677248227785717531161480183660820957110203476551345708632426199612441325868248868364458658247616357547616903931210384793854165448434047837316686812071650520223776155973268899953931620078829594214612748575188239535570206552730906440566734682552594251961806160919562734360639350627059257120644175442837801002751460642749232210584644776301909059506208673684800218527007257323646682167204568413946769309063138465321365000147231902967968116884872583687106505588453598644295213596153877192928761941471557471154687206258164561294201346543599826085231952241934223661673244036184313435460644586136073572026557519153067308562347612212204292056479964054555290562238205037608674047795661076829549442804030597379372642980432480540018934507531542694372421905814501690465200794736313590479394169646466887145721075665976571051988642000805736047252757156417595428358326996177883896170448271020242347821979956302568819622142887566499172778995511384656212923447793563202401386379267743620890311390487896503546238742767632997142529942996287020443532483373756096070809214913066068906312313946474653401631737354030422803963609716549192394788315764321761269822664948665516949985074660477343368205732121833347378974029184381522507507642884415146211373439321620863195205304822995751033635729087964307474023913435149952444956523450759374357961769172987973981124563540943391353977429744686166217158338350660558031873041202199807562925328060860507169594883871598144050911852564155480277320847348206574057230675494389353571233403352408165553101750630053917390974423304182601071407644391821221501713322987994143964317931333745582214308231174111711658019080957162592563673332732450295274178608714892234766917797198419989451836817018057094676084418330206563162020200396129175030634196948006551078192404074015533510064090626690943549136530825074248494663143103390958295779963767218461181586858824050353925730711070157445520482203936360914733990475925187646491551391826584917770980777591856716123050349078685624860941778036491119468942854206570935743064129865082732301690104786867808843945075978489030203077782906761818050782015908378852650249450856656277659130020093112201974109736165433818132862427142678677240942402844220043482613355551197247743831922592623002605263752847622467798475845895851304066608828062907081503404956715267700554773169448061481942370971929141918127963909585684549627653802240124299083653836129913418389766297553711474073228453300136929109356951876874756847988569984092872529697958992153857475654862114705522286025182540761656686715571808180405866712843464187079805743109853363849157098231705522669139580183048279856151686447252179657306909857430896119958643595139350842269477651325880822467005356881521572044815717977305136965974927867990058081856332283679922798930562279402875893545120254045039323430817625016230680511163796199730416114236429893079743752514104567984638140960712742442794516550661974619756288173785842658575383485454679371798252185772666137171587579024675068756714507261906334526958263737244115219652852321580725053686703283474915490802663018833615755715301487182642581992598080980084386346370566101440902674384409036436858736172466996102264919425609490443897107189032463883991624966866948484734194897411887736183308924043468157517790517861430508261680893667975588125535723202012074403829454809842391811803664969095602055361136201631074773036004709540514797236625775505674838494357479718741566310226134686439200840648539795866688543631870643467049998577836085209705911030957092772302250753143895812429034596924547596075276650868507056036602998819547900963029024082742074742213602286050866490963461211109955304079803335975183894835790262881704878296399628860153315082661033767280900467938051369703730955155021532843343785311321474510104755609237103912509563218803989339879273224050398714866399901576357284775342249608621389694541096049140870937185091297511867680350542057472420920691368406361712577013061882851216916828377013699862218760274976804022175405279084652924951130807395876304688736122303908304508760027826046395528577401560990366653759804524590169728176360741841008028191402167595705096502002406738919232944301587933795850372630274341903810922570976322024042390925157710053431224783005213081092663944038851238529423469241573483748665279331997129962001963437058258884031047225834665126432301882576081298753737375752059999075497429960028453841242970723697825812644248081736196221263543025815684935055562770721849564264268038649866762115331465445783040067662330567976355729348190993706593070969674348989023254331354604821129757941164176840892196463273554414776694973440777065307149328608815085333695500185091141123196016360339080969371046065068521569324609398473040008766614260453414361765713191379731702707084657358955528912407914887675884336160709633196988747804810441853058320372613244265314878745607680220815625296883421899324967812040380975938020234960330871966084555047144590085390937025424313834557221385961221038562788843668969122070514940361429885331733559063007560737294714522070507699183361552713696161788542939676540734836145062775601979744663032551055366401296747301278337416552200653826462252177165928003849807118124027438054141202885756456119887118057207733709944523494658477761467867448504065458952540497093204636404256827635497985567764659157879478609622232481830738561419296330874316224239252934977364146322960963796383194874707684776697402214756993791681226386336758240721859701605909406361939097969508233789442001890840362741435341288350452751810958037093088821879776350366776297957616589953602493959460492823218304833063152229488174200713926559617545215941781664110563165490148237156414774153178111752316980852289519015233281810641113924245019325194634848893280397229993662254881135956874544920588889418384118285032858459266797688718258974362303429175075879395178759122181872462078673363056982160417799059315701125706479857851111274109542412719518771549556796085187800609062791457620160481443093059691663875648825541350362704250009373743106946925875668657078320164880040875445721037637440254290171506524980644662489249113448110808286659067285634833114423046329697088744209051480928424323248104467304943679658131353451076720310493889612261563986666904202169132806240418593349640767511911456207744407318901473642794116595457517160833940099595831025517270613485162383360733188409377644686602501546979641761557355914109559215626107247613909837564354992676739932503256664097477261632446414985944400306891317903906253897723700660384598207527916979181599920656564827009951940374530699627712473565096214110695720702631505985353166560072810011315352354894461474157212989658517706360857331304772848306986664464695661856535729260226209524123170156331693391617075608672610488055729948952792617190642219196776250678387064472486403678856337205418100935345258541937813983287364978155059019809587446693797987934316086382982128849550168865075691555742311294197969695273364901090734390034868765408004249482881912487875696798259734520394319523821411930365565584424791648173115513303961092148783336487152456450286755272180043563803237697875201460696387678776961650862789403656181219723863978619555350734645069084846722952286627313094323123846372742954956279761562330839283013871603498470127093255646067613291919897029400665498829169632236883283047327715645714772921017025523969681790613005924254549832523479249677548416283965810419165614307586485598763210715667419463799006013808420923670402953820053573696401258863107938266580446365792658010433130482718658827226902176154365835969639581871688831969088476880970530353553674779844931815183413822361764369168987988682980758838442952268415990020522483060480902520073851074915427223120114996130712037252029779470908256979630834256950542364339688638243627554459767099324759201684119369316358852881354783104805638618915331919450898594920624761042045151898141066906123936424185575604080875003767480099186159392540434657812306492944097877014698616538117012582833294097120780950297680206998480951035415340556072951094312075123753915686710187816954326737970152359669473048952624501603931079322658973513846623537739707811732035079807510417499033089523969282207097912568637639823162163573561038777036201338243610140561378324813101039808240326426095625252675984134802423447385421765292735022021617516760924260614718090533019069639685309552421012159015271805073264407173239035803940778736679464016097026254291383089133179509342136653410351854621546025456731924725341032768137802804366239148893362422201125635602392860349211427167507781025205114794904123829590896607269354369153181159204240879815476225088360928164815108561673641356604040326709657025170956097139134077311250764377438725759075898201969018718733121456405833310793656772209755181015505708795069077288615588851827170496194957625570732183641726598037356974843094667772839837274410124713173748847383164447612336729823303460157665819342675325761280547756911372084895262122906760100487038113190178514419637832821690904553160690057982095402569347570441202449536508302331655028958918813616015435101799161639102226737060712571225365941649906328784662563769622301711986385183411100016813843638977525878750801619095292605686870671848085214603773949848325427724400543948039510537599124971139273595577006826086172052680344301976721455711559178337222756722774514975356443173152094039459823897950028793367788300283369508934345682529116695618362935990443205738839038812518015042654371587239910009219873668425361837704871508607249211562693942496304360229981460389562936481081143717280589012612198532787177426276222183945683227802313017826549941063016705982098399977490765344966229551685037093198028702238805294764520659101485187807812298153665084001498836595964126511661800956640103113798037710946349492617796262033746585330482613446901366695373466896313697779365976040149865766795372162403853931574000700479497020351285266583766491191879285215265020196223777415846331842444157970098418446951181101177475211064794433622410427519609072645247160718546445718479632073157545694582842488250086064508687402238826099592266000971277753937981424799019309944400537254416647301977495566065410775754867422287884870681936127461762194198909525694284748670346376597859671156355452495932336279148796453781783137866521922855774821508113246226718131355907760797204539060012189295586414915904710670297597830020176444221060652112609403097164050649488777466926058018341560353854963536518483366635664495296505101684058244325547539304835974559901353466954821999841188419815760771551254488532444175468983658941228338621921745342707870075107373398748715973877256371469930382452408350162735579348445070325035927023364036932969344258557795126349885520706769500665809862868057517631664019100711923255447769217194794996772527844781006636225986091598141251844284106443930126199125532179679501705736677950496245753931724713891026900463260761188282134946326346509464395894507700867274987175705371629103137741345158483082712385106914550782774708442900543379414468208289742351514849413119348298386418746496269707614529997877676123955136546663921393842870504088658078585418963582426066254018363332842506477487640825307872294944551175183722330404259908040046075932857535243617980324930284781438308447889919091672132180010599701275244864705883501952020201027718233108000293083464371048268571491806704155019545848497352287101266942373991986165970999831654279053507547769473979937952918474989901268847011611350156579314677856087407945843339846791074867784769621650026897733950074359946731323071467562715497559515051840785958799008971274965525010096468128264311553323602981480642005028873991390533679894833329213613115934545560622202048532866188483356693877605613003387208859887921561797906629762681381183534027007316989431215850886354084998158555136124073569592059205979649693148907424252756210101054199855194178357055401875299840002691340911937925411018759351455080328412555506186405596465023166310942924844702700240709301197978468959227553306382282581840910342329543926461496864959252817864380111230188490592819750313760882184493579898086832615607428655445732701755502472326803021083210578143294996034588878726454624708440877168702451657166466520538553134045714307588887647858560726125764571393832213090214083717514442410372420841939366476313748903543245545400161749153919410993216975766574725624472386985528982611220726727136857236314594651408012840273798677212110035051432004131903635712037949300023866704286831467128458413434680195622642599397785464094230210954014420604571400765699954773795131265490618211217783709086758591485600810884507115122822860393981281036804534000900870808129771143906527657658000516190496040907857511675858823112612216342012259925506603288153738753361320929960193437228776074116451151697278789116572766620064505763200945095704302970906644754928625165156327041596539691480533259036300523336428065510252384011934435509125416236884006752614069576962535471747401827502442664475908396095814034682154047225440182985481109700479627298569032589961067837367984418405866758442746123466709991895912052758864872960509121934127929790374425570855345191078022568556854411591648544159671835406827489006942103882512979230599020003531238510776281404836908891454296522992016642572947543734201189711474535452036449340106850797559295307738427449008623175038795160953878712229769192692369592954274598828096496974654176493070462597553513642156983957891611888651517408134364957791366800092866197728202342555092284243529725046350392135269909187178609204277276701515325447729971594401353862863756635096816885730569454435143284228277618940434658438868783943456357544567835351950610203005941694247420172034641128135668822062791741721832799086753562562735323576900565819713954386098474545390107219922198694859374499666957515167306750720185311420516729459838487817032045319420874743025368699515882470275163275963596509294920551825359544228660913660101754122404621057187673177214787317830497176024588476878884777115079089912700714067610790092314512557568573455153535617155378252795777752561474444056163313865475544267341992714807633240091334127398057578075021297784770468670597469678425225957954714113672843340421125908187390619938265599375300348825118105068649344480097858741444501400301157888221159071677363285018884990433359203300404206632240959345942050525356974386060459737642184600363696973504772449631794973461372800043748605314737454325191482460625448889933660009901305197699789026614089413803107585777166150851463747645810427885621070505782291089160655620575063010517484136848829810033016167518458357107228732820898661416637587971226833122147425776444008357969429522765326120345460523712220689777803575892997254694313770122522388622732502368080559000086881991120298559723893677475040162659144442508751338030174815477795903957519080596505128573474167554224849992445052790209414023351207533199205556239340529787232373374788273888096819210959411159974957908907960405490036338995099197060870782906046389513377194900750497736589432584240306311541702451114211599451429974026138589629992919081434267062764174147728227668625986297510297155410188306182716546566538409857792302164403392458527144468279256690697554231917956830057816911674351334669371538611946528779300152829608716262456496968342497298123276061208733875296173570797917596556403839838031711940880481355196444701073666986816234572245082988417123067537163693386724035608608490177032577199120143671564345178291255966606358865356402321520737505300191470485979230892707926954260133904565603874737639620980873666607333034998237191866778851622715786214981302305192898420064654972802217843709182999117705878374803799377053414338328838248381717275585371102140723465803089525633273803063027431635636027481908012973977253288039865762561592833768762622444694865881974915665953504982666001910499412903969060369652768015307921903512518376608360331064712573722211720761492635766412714641443629025333270422632075141010333831684533299453940818253100761871435608844483002226181625229910124017825651945619873113697218422687385549165660751993486070976198429875511865320076485199547278937189090738947523423020772115076895133939804032230975296742977270090226673651581636811380712487152175497156168430127744110885369113556132082603038519888263671539670645585791880510748724811521359560906061747096630383416733410260121928575285614042146022477981622298531441574804948056739347416969302934842055209234907349873906990098756525133369560300599543852486744492710981461695749173094927535452538622181169462760908509724201760592058465751901854971906221783670381907575502293805693943175586473699256326154178334736062488434002176547366570187160444824910286921575213949979450400775637621512849948844481620070231029302193093700995822643131782223696365892167203601674073617743281434673485320707643782362040573810121459932034667745140968990190678455083926053819911049887511191198756109481910707380975274679022805465286394516870913884613438723294758429142813498619406271946263813559485441531349943074489521340397701134818559763060113434332750206871389234720730244187707679112535945377854801703247255179228422027278839635225972704620349764874647807143179782592864325144916084329568484499435411251099060791984185427000930682358233879511909528707193166754215914476860969232897360046851310424406094848638152226733530875044426317809853815216049461737500755542932847578014384568958831189197722088161594801968583228591534295148421811496547005737331851034033508161865173441817960329066824002178067541225113685460728767067898369681116482210312679169858061586145089447038354441045645272791604425432774312929054912157987362882531954427848495732884667807656778461410330155577978142025566482914211256098375728532802613180081178942051646321679444398879863251850502751650624650766604066354103879145398764538510254336965988170005167381293548402842726197191280696599127072229815213989066369879230953306940837899330386383360417513809581053203240268778823750093833987251462808135349462169068058788966346577446983091507863621942576312932476554442139942576922121294883150134247480573368083969479048805355553805443982337460727439190085031832139250797952848681663254458222460857236231055379778478606865519441906643375656523614357200533241620821560787740370928157569876963751305728925977018079925425323873657447799945862428991870715228814318145308041537226645373408732848367790028456763065124386542859331440142920003561546448999053112624166787908748326319039807788851318368436611122733207184014188292969332763550263363093692591155810892019354734031046356826046012657926616237044326370981910164989258274893305948791791393717333660984615194774212922340252337152661133244142692357012910705741345763651533900868458056683988765321069071801094873649827107340514260356129439181441157699127227577023203715061755092103716067137227688611778662287934800584226346326183459442160916233616378536123680146576483186607456467619131940702253731112596999584371174446567694747624975457386582957052522704874469054522258107017796971767071433067459246761450596519159442982591017850292153633422847796016575950488370822007512951916770536790693526052438847133361050706250715747053138680082353628101978948829246158867290230950715419185286671500528024420980013477478236814387425857140642920939811563681193598569187389494864086793061000760306960320872888284044709326931800669165474364309969195218580205950054100838094500445711936910791493769786429029652665013827075324890133854946532895274362683669360134882969859696242524950077280378509678820775081207432681563494478933436606386992558278319288270044909267268419381688520715737261653371778560878352712198628120537760909721158931321800383070574004970693793835080580999781424282063290291349033309441530713597558879383534216357202288744583944415760208725867304898555588670468690891244167818606565681328772869822841586692406392436613712087398167735956900780310942311721027574283527637522663925852237057587705276146634242361365249596994130638972788999637088980308155218751039635677180843091991704612812705316517920529801662478191549782894412620697140156205035363844073794095844394298013397937777484494467634474359212146663818615668332739359563560849168650265845307468563064251540795758050082500916621041479659854206459480641886683552200014000865423246167755147844043884920083521140193286182072482469385761361394669899874406182829785276669088449629507536730825943368298542053890812778244594879898458556312880049506126387811915018739245517327432192798935848801287162970405626815066672834716585395550578931904510048382771899226168878883822070314047908600092010824504609284020465336964025724151223649939429040085424617421915207947294796941615582849808231987072079019825165763085508179395492049216440986679020269376669243649394833872383052332590065065796641721594037479453193994117219857322234795971422272142598220869248901499070785523201184980623251004544985414558381963583234807161188761078328817419181231806624358403892273502685832064932441501722553613932107088672329097516170264304286407883822988826791610573913705106505924570552511771324329879955358392443025417858745483645555943454220265992097727999348419804774115586760380457238561346016220872417977749281379293188728489782097410097191661729739003884494074407362865366465364147779366532175699003278768481976701212543407330229288380007509314747640105635077064613179783059369288136247441472817835916633569262307835018210712956100451032484397332396168153234412136445986491722271705324932031586314701661773919926962692780569780912255862389849114799916576985255420829265149961281461085735243016543858481672004610525605064249648007580506909882047886665208285230598182233726625980849522576217597491500005435413437877684896862221046940059923112528295433873171043955006655256578162517374732224334045751643382504942207783024521320031158933478707869893993429942928675624815477639763495942412009628368229467000667818732747013310212779897638302371795359957437731142505879955503271146028673146425609363987781181273693668929067690516949280834142933919765460466555233885458873846620763592784721445066682679139537379551589467540256354193934851664882316901103935979406019971366007322676720105004454195862554654300759745649709375503349263479593011479266697072493171280655050204593217689843579477084126949021517474448747779712384745827214525061952754453505505750209108474967251212181737615113246059906421100424002045952671800864250087049950423333544886467594719570846513843352746756669163825122405409537758222666336371155907208784716821167090119068046453238607335016049732920397282620078729771886073925991720187751935921008444070373939523127560286870654245874784812647678809516787774722839967360836499162928983167215394971546401574412349653352110301195291965176261126173118330802311346972794842416739967097184717758483738346962697836966510249094979670846228841121781783791867691164431075720183487518159879607200432920478754535212815271834321400705454742027775388102362211348602558691754265850635699443992196896007136697592407630942589088283970681827893578814888185193035245345910634344230904434950862847808189553876332861051434196833923349267442651984324928509195116682442697878609188817116893453498443078204769964808918746790918340722065468357230928859398573139570013734545773832401329077867032671584290898433595823070942096902734014157593602150427928493548118773714932490097610322955857063167383824507788156075837837976036156997694695716318366699477993930000237201021874343852401535777972365558362673531344767277478046771979168735891144728619335735547171192772667181079299806721429012435256550234518118253399832726087316630204451871113468342665002542710740049978972863915185651172094575101522490275810827494178975674676996530182588043375611093563811120250196716122416197159296536588129014700465644524925576170159592024888119204125835341352920774320446405490727528050176238833915364092602909349772375034147350343587812920797647665125985005169847755789062746721606966506724813701062519603897192337185102424685877567861453294037778714169395756496868980475740673591811570093773725738818711810327848376868574894815529350192927542617928609359390558188228010790507857736603783392833122588171205453859576258519681168839666559146653060942255661323203522751247739607241606631668524149807096707335416598123266741539077164245473229673249863560979720913775486243025500696616097851476350923459500305956462594942411303762974010607996005358949034137538370946151098532519974581565436497385106090829362075188103682164224224683073326986031279912916186100931292837700617593261576540792881776214537757331757911496715026671594257008359786079386217037187615800576343645484844172216345223418936957363489791337933348246064838326966486055907284293634718191694824559041589297791191355287554631182835203532850186083815643718567326967510461999710420242456070800384375355428849412242682024589657327777813321872433194498271051063914583355591254391537011316052595539430883125551606295259960613465480612834663012383664883179279796000298524103043749409356634031886078242178863021520865964048980369924898673377984960953762015935837805357581507166885009128042286691679401973694793641644042387093986244051885130957876208981725589266291090282698089929703508161387076854422991084745110333107617111158706722750920724237539935253018661104580655517126501680148561519165138058425959196967826378258702578774003026385165510821227097004785855007954087043502858016878574131456710759343681631750681009650980530356487814056450255331116223762409397537881950580031553830610425630281914324353007773254197792462673344690579646168637873625982708244111500393264616395867339543015003413694190337702752422934258502297085959239278294900404061216414541938402034575645632745361443673485409397707510904305286648135815712089683644551416366230509886541267496744048322302526043240733730667550522707388203545405921735315619537944209697069646916586104029539794932478376590816773055302300514926024026542205122612807988456147733959455449518593526478174595942565785382206674727007190214038492703722344250927922455784732389202581773528512170803457214598492020120564477136419079281615600659063738964670122039599355967221662035236095094650507709237398596085957228151025645768008317371144017077848898614960461513771223994689893574701651271165718941212926702467643541596213593497119431708545513995022718900728835376262142520152690777257697947816437430211095566692494057949780682209515161125499463180746657502484036454771500372557723157557912081810626973286751812448865439623754588129654469183386413284745257275657022126429056123823455511090781975062801521443869256547129830198002653601765508895344971233050679932698240038835039274082956057858675882436753730272442957382651744694963502961329350827320225252865629397191295020443177682220111859306686260350335628321910856026602328022530069990767245810983747753449396565866576154715822713540014099888353582191346359021656662657711028036504145096287414366230473545491781495929602312064458021626695269229147630524446944810634657922220556627559747195952303570484085491915003055376270136881916776559800050568887099088858893727636585720510603586777636751911981509606010430090206060037285449390145177580893973334628776706811022372431505094057300343038707262540426560866536107176118564911268507618088711031305174768586816572653705809549410956889172812668330642543557922998683906406968120480556630096895923065692350676589502302902405825433390672696727410893845960955851640487696217138116708027233395946721292939397307949535614442164983728709807974950368499513429306804784201079234239959728358280500460503711910346016210779374186681942436532077403817074270707102741330982760641881299005898444729527559880388883741845045150175448238030386356379938863734924697903323554351903286764298259986440887980490405178704254691081025309571666358647280474032892330895942913369435466806366441789828643556939619277298387469081237021253898902120997968171166369977146916431554339387149206572983501002650183642816211668787626057046838372079510464091199492745817940717444769675522344544534868207339262720782922309226540125956698116919317800082859684147405513300367005136674481830064691446257881824486698761362146715131679911087358960898553527668198371055256368253086743786890973578764866556264995999291722941895732395806548780036025733776526331612084617038550928386045385509143529097000277351554080692844881109426709120512097644865199173780651759409982502148566564982707934398862233995557213207066523577047625948138324143063374455534942763196761044421935977740818662626890972506953580147549916594525123520555080079945097257095735241087162727658595486861300519025842661356268593655204621095802762907581346708267820533634745834110790412600070661577298433159577662801542322252622760760539612772014559782358610798838277249596888005616424165526773479179210452287182708199441566898110748528503190377709215486223810650752672250569094572732026656696541544434701380903795924749840794216637649723476992772866536225091819206088262220527314692583312466573281662572247003097041980512256785293346023968834082124172952177271398958324891166666267538812387286419077402355519174089722463108835693192084995371790121410455452703718089152451748800106014330768637241220472587032055836378854353033228380023022039727700057880218255138390535374422220139221097830866470734255125251534004188786287830853927102966568526509009114801782826282898022276080476758204760809314277834594606229678126470476104054678977785664598803639714402293496723496813071145155121410098868398644957432446448425853381926461946151812170858543915817957743568345523374454273283491084956633458530652692885596571380397387035138545206434866371101661410327649874130543431955850971906219944471670701805623006848228056364356064575268828568290628703294062607498406370606928396247696334597453442275758299960420186361358787779015655613421956173013431434833699712677355318238386839774234172714333949688004841868548356121603288904407378026874071091493310189453583125030401049213830713860055811170824211932571928339285564893494844761024529561036901259708079103626809429291786620818662092409050838348939196438075361059597108293313630271402873647679037876321590762429635348254787162973048219815102595275224199221212128838486186719939730387614995965664223392263967587932142960899472096832750820632620696922487784536046451882281055326040798806235000621234630682495306114421224993975738393559298340038348561622247595423920795912594426633781536783471339651503520731793957791111245663379908283466319898912188663551064139280262773215561730028871837919899317462172289161128266691783544895114957258062179213992556561766759451850180463428570669870798913046894831972080944174994644247681354697162954680789346428612323472002585555376413400224335255340542905300188231752448831188866571519900569426604978353388204194800527944008098321147356394719921934226883849102781580028074548808370253530509190047865720253405229505640746120650385993655906676511114350442823708204363064894159908918736074061898772122986541093042896042990043269640188894059383527323397841729410089559163560663508942885165856868334827043021228217368169309908667265483564229172220559138251173092911994123900006801916017952690677039737401641771440064377673731511965982429165871059157235560098859266777896537333081803025798399170032438435516313163894075117873794019957186363445004122612290044577177807792449189931263934294531958788939801002918382970881442480387190691915140816208935379614470016131170911243477774163088394794019909900513984895680510013512503700087191949840169462373903615460045537867989654723012474142854445104464342537456252451399433480057372734269672318271836990722226039832846466021611761014795682249019579364417635248430446967461629637155598165248498033795754164752415587277816335558454667789985394815502187748760220047899973158481358192996387207274572204643164118672842858744675711446806111716752180649926453755392953597221150661474660805162495131569039252538743540141204491320003654567770096821826633240008990014756094776422105496562214376984142985452180685884852435066698066229367765534120617329799208334770432159388937793648400851205260977018112893246989300935713066176496311831501146956470157536596378605017489952537587696996858836045604162975953332858145719733638008886261311104988646572905158150380987258320205567247932099390289326619230717649791222148657255078722240610663922832412650403061070464699965448655358896312192023064093205215261789715789179250577767554301174023457095744412994066740399651672174299468179591585487865789687714227702844006651974529183547708717715450540235148529086215595838898547765473079817959145545247841757358063392705474523142368469050240485551285939387980440940947759319511215895835875618762576879019081747455941922834781741158164803744058070444896397401338859131306358287875823442338493334875593452624970671098077646793691301376306077980629588469490130499411454418547261248854646766187360204768174238554674424765567834949332162210427742319985043751796319792392743931397552805172905294179714371712637065737473301164863544512654307388481041825276499855876123089846885176603550786201025728302822250365712336753321007358658678698093490608401291121583463944863936142833130151112105647270899325413275889250243987837836361774954641035166246669340532183220009094166237346987214211765396874747036087360248120194583033922101584637065462203512092322349260024315328820286811268571648284621185269037811877818368853683785580409760178093417162084475451474895405388010259271813635508063290344043940720192702068832883156360073076605649894826449018803507635783377093639933291812442556337461523090889157737093849803980623675111260071579098913065935986630536313236264904858739131775844517412658902742587583204501573607230863868701797728951161507373206679152289386038900633285508267989806613532685789677830160918039995636493431561173686759124837422383159595708317948920809661699018968366966472179821164421040164516150154383187140392894949157128674881319719451393118361386000669552405731377008111538941032933417583600484251768406671248390976075219893666824831155822424823376635772715627058980305343911600533620781151444248143948658487568326646250728991937325179209056449641245543339720269160452318172254626017586136717182116224725132832842772351050834366003249247781477397802910593896026110910005296291506097121497471681256060614206104942262343564308882055349122258555222495650517059835989310817932176269175847693062446806169507644896000075405143666758809417561971180603776192787002661437932453815053938697766789034082434651359669971401775990072444703500349258707790295799162212288710683746444462624916776819417844469841084428234821774408359780807949184367411554553446314566870209976427089597392590701987940325646037406854750460178953791517319650187228458444128418516623335230780370421890076201823918821076222124387606387546818211411270475690171428133888901425728419887360471756551524783125761685747230791536802415339156610889152787399381568124627142819729360578462756186707193204217567318721009893139092562741334013799297222723435194971110518696053958535779843513383596391830420657016165089511147877306021793566914178722487215362685127742010584957552937291012820853215204315321348436856390861235617126881259165744042576523920375782150791979269166649137168894328859878980415145876310879700904793849511869908877957195930800580551933921914434231662106086203830765654595262143854994300549997675867785002010610159483090365757267733724808267905466727519305917417103062358995302759412276314448182139135723344653936863543083406170577535092441169663986016986216220985222194012000065319581558383704840254401661484593938535191683146700096939842429910585284053514268385870938485582647087473086538111909577685268337289522084441821369962497577279875992033409768637272853262592412477774546820570082166692101852886702627613562829676402459532315383533841920695026267543500137003132762796354972129378646810232812467249595659058620182981367761421165586868117665904286728338259193017672647634430727520668301146947631909074555446450766685994613599310029215306152230246723358307393816748643497665013368283640992676964664416172261956899393706149405288854101222943096397856628407755270007755473029621660978280035040922871561361465126356201804617073700463835060124401426717056833178370430498657408686306039968084237311146657946182511846657404838554488200748825644716598144145884622059465501122508481731050436878123208454371313513175671204695110096664489762988909793709157078115457529474332515863493571644998035795647856156586345372198832812002181602554524804291175759108736681477687901809336273701067761407707869220353686830587558696618029652098990296992637018533146337568691372638697444018767769368188279807329392294471903509591026911432761500881914657016082336208247525699887201724895080017020818369803060927140262020648697801960801293418275193545142199414993797930207771252966055715249564245415389438973472097677244047155339995769034958740069509072052282169521181631088969107398781809305317929047141504808457711633791073491395391450764593160951792231697017454283823196678964495584156454763002006727873526708820935567288353381078448553422630698385909715871696505951523158700615584544963766575255858935857098775136441862618586084484699106950527419542352444999158581635221022511779157030652216481033172414585076471227545561092919182069047506043660052789278309122821817965538883790229397253827432685699644067884845084983688754662247254735338840951185164148640972980265845671335857748782655069660763106272422116443765250301333521909256211927089303198074742824865321715743997328444290904198794833730144733689079779087986578031254130467858454265602740487581230215399067033883226378749758550699534951019951301693422247766053660138436581134458270650120699288108095186518218303503686918759691280262380177287398041261998988791966725357445405780250920308764965102326933128005720759182344519415216675272055301796171471001378069882681390539828616022958169422020170212030086701053946396990247664642198411856226930807214856461685338056596133255634431534036506095353680135317662675836992644254311637607558103619768735815569368993346583206798882842575935959042567176145563828854750658015565609388172359749305038776296101712361515447377427227361196113864212274663609902824171130219944899861755367611492261850407947201086939156039907565565426206220996357509304384409488769286977710252072961389884087184643211082254246435863258989581729445652867274226143399839441951863337461742191324890301925259389906418446268596654907565641946824463750815602850375333786931908837163208111982683871855852345751421457180461923223173070767057526593292376296623388683259237087250744587916242299540952886781889380388051664746283102321848253075575861825165787641013025602938329830011429219974565742070808587822457008042634614160233468490971375191650008622109616481507293859365605798630215813200970870515451574346027101802807624307952011407327017159799343277101919078254602102006542802748118676830833268156084482862324262383064652297998631717997211009369263821955269448725191790602780811973908881652852171012913172633983426884187316021973008600325647838615490735298030848874964296585052812382401627501026619539011421986514945996470810066318468763424251485462523910880956814672403543783316389294041762231349151619667852263249775951125474288122526218822126276686362286902952912201862128332596741253089404980377215217773286047635494053771960969208152979476483563115679186513883904769811207867709498150806479844861836414690103723831609841555627524887693054274138613332487202860089682174007421684227834044040230253133366955678864736416079621897344488227825349648062734574133264285504530704287680586997876107185246133198470684532673460406782435165589466384989697639501560624866348697800305770631810648657801663406397356463768239736548638053899978158389720988458191347544158983834495414907365910307540350820514689532661013176813711950306505425052024867083280130309294377171914931637328248556181876600860091560922571902045597824568424225882723929100936087735642549443255294305386793571296721015991742639150696509650841293826803798932156829205144480086941901111792257109476352198724005868860296437847053422677098585568118214117725675348835735984382868963252115155466264630606504932535104310434361110604531706505900048749330105140936560688507966212244883632303311688882851356550744389943497546162016241661384327012790749836985923061271760250241124597333547712805840636929138667863423771913282497520072294612652809482014684663951276735080603378623078793355233710056954638908330732104096922890836810413148978672675928570896758543169932597658598534065721939120060703339852463444882230008102083448481132073202504901793169610634154118072259345234586349245983099114744874711507325081146433464512719095726162812066793048267274496945006987304220444326257440743597787304810264360297545385405149881672182875058617348374275955444870516411367439330608615815803118164308495350697565819195673989603489024933590650260259512500480214863047209361905270990804233796825062825850929595472097814311536149477151738341902412799923444290950885961338853968143646763861475847398522068092642372960891608126248831301206253401961509739656097355085245663643335218205947899556444179990031103681348743218021912136287913100624853458190244880233320282215923257733677955065968222610270138956679803041421765688361526420791433681632690147427894421422805930628004037369217158323437675819506567895476522731289767610519195973311589716235588748851684864665183394442202621211125326356157956119449020727999893098757332056201715306816193714424068933625534278047570256018161463647649302826343043806369657872420583156797548926041525462589862504070057257599653700656477547006024160627866794785938102140921623304332234581849738510157499893957686272362677985401528597379423236568956896320577949187884588644717361575189108463639044501456967453747533293220785863373916733583157127469408757679047614171369963053967190502443585196048148239636701169545579828339904404066677074636351752708255690572784117872496110843935259020860691216588728583922178626259773327800100926776917364938097210564964277297436018386006644549899319643616107691507535236768277300068883252471870565645010598339812796491705212515462917626586372101499050199507651308054370417168754585175443525206809515704039456556653364010486807248934506941148214835175404620949510480177683217635272904441711567981564734093011660971622797942869295376442906188546094867141688869462719795656181460218498912466303930713303267034262744571290084687901806743795992476828475898968775837369635656074910092283103271066982962423389650635726230277230298442933841630957420487294698839394584918707254061786251097056451996124752996452126648584795302125738589859801272809780434658848172554826038754522835233725312309311409962785467446175214308765403191468999524734793615972412441900683187562898209765037983940012866115259152312663474703257938751466749600454913126735189673376325092357573767271789486613688636634747706208358812116868083175240428620135282669036759952684770849530973353915613182753345860249380004320305002551162446489561679324505760307512594999013053183657300267835310030397219531023121896610321805625114869279816720515775770053919158325655496314779478510099902072162587444622673924687561992298635049412091990358356045662260006156226981264544094526384006318889690849022635823599975459388235058340152552365969984160695637797588740250685839711399065301523116373471966928902774732401047913435257133193485596862400601809692156465087467733803756980336913937181934175066682584343552212096322526484080481654532842033651541609644993882972624173659630121065810578289436395617433783850120284309510406310246975245636799359718501214304505547567863541265861066046748903960029378872200106241224903788258280444448619799671020517590060457730403847826176432288268846967341031332501981369136252144942781277256076660967395000022589032698235978927986094430802464598937493811774417836680488442773580976331563495967192242174794100145323877257543665560624505657621118405030769409684807715450028205139664410197492771932134819663751586612937378700060771961379683496703003669330621208056999670112600148962960454554203761505375903468246113373724559055454521474477931304224803789592683505871561310573823732351005012642697389908026361509006247095704550165055728108688022244374960757890594365464028648667529022518631138909304073874924540571394280762614562090285558785474425612385880755803323336131179707249797470697800024341278984670613377340639043938607244374899485544430500930541778017517163890691556894199912205833950326732925148485749385612462937569013821954806219204780187293654030911872923605146138404376686786991414046374517474359747452385180773563928266579082079074659741183459109190738498615471045299791700710030140465261137349556064553828826365329127304601508683544049579078132754702379625395588247593903651202015729137612354890241066788134531074839165642961783702293680802888272342155545314247233043265369953320573325769213559976243276935014299459127435506278318473432827871135623188697334242203976246508631790736911549393511101637294630146434806414181678208205063127764338336101711955508510200528082348242471089307441612001687231307269374166511234424106455655163524278875901185273756484209553838630815684470283654254858159084759067198956906737977349421365898220800854599702277929849719067325765562710981801387142146740797414884703519916682054482549166474071636870007628468794816634236428211338237839688005408142640269482440353629738779453846423256748865384582247802564727449822757117064420094255425289388912267115970760112385698721310626117904924230108772973519410303089322448741657968582278373412608465289525456062940208597187456521266562312799620674690161468765129465008144402403954880718930891456860547527152948110822309511318980053769964292769073310287153263357078575726643090202228820811672457539148252662937171699355124338201489275931354951205082298124744560166261206097213106014729064649845372731539415570522929968751115767034578224590615977691780262840661362743411261456212997641168225921003039351068705487181068341369096789595192998815416565540568458373297625031591852501942821603208780382261517101057976546546202723304635142472529125943033263995074100321679932644593044666467753925367162848301912502107089164478957992112894732965469652914337016178643162555784118256465724719747453043835583596519927915564567757577934269844005528989033492301625898845884478179890893535204300105974153550013595696116762619165418900925792576288824718589803514668462596435560474371464485552582826558682427329775315956465203177937679659936365884709971928078341766209794252826345786690520819726994184313867504295576460670674832979337140912411498890572562338984504882232834985322518170099326695797703902933197674571086707695773154387030089029132730949110603620580321278352447451401862939778737704112903237706033415075499922394129111337062857271510463183771645707480986631787207520108921691302167790117403873024250503628824081663256013235861191357683228198836088385984087197923842272630555496061081880372655042178748359174990298232945392250101105564929537783617258356497624580664633199901394723495355232376505086009146799761126807961462080436797601678721402056553629128854910536847085099470986311989955962304319476740712709404307662025041116271834143769474450727953473865554359437711830386086505289935619880018458007861545294306482963302712017706217226730579143798034452946696960635456446335657485398045908669162031701803272981974650894354527794329158834457510071039147792227919569778171458414687231989885852408752713049409967882217135078122270627166502639623190885127854704751880792302149750745149134726495416557744059170971471140684569422859698238228197702952485695715263369952578072661891567953568198565338866024919018353276309005827915269074011150297955190585730562566366082687170290899398581555274574596416017501437951429100637555518503077735617970317063142744823418355221134796859208148816614651801269121691750319864082837331495118158275845241509446938292257942083378644053165984243499960543091725672578345150373083516748057812153042995353358732379089286553866553614903286726966073274051826783678951159898318939410241625066451431114509113768211818633382073399492804936460294427736903146321039888926830951438539758568651631467319434408125449050016298961928785867270390899735631006640688009966747655574879519320288303482491320848526427755006515345585112414542076712260794285551012561319653679708945569836943101308012401849478491636183920207002601195043279321820082187585885226632003000346138792188058391154765681795619001728005087540483873721978279658421821309474627935098937688163520627849661765693812397777337760902262894666042507579164175254834644660788131485334127503709763010372917761768117788006895651672074948489083781819640443555868622776896573997813541293545772101108433969853786479998281822710990961909048320147671215024181420915868371852629325815323651171337440459826051862807631811660284313134373068873176184591449656279331513936831540630179996684933219925691725340724641071393323324016183342120721122550290186192271906171044557154502692653862538296891445411763144763003279933632735378919907206719362306037790824627967659593498069387855684841551772784361328676134247564335808361999916333154932087630394240683107512831517428282740845562268899531619340686893271283453028285749326823536467065714403275782062857245843441372281101983203279227697094437313153060387749674074357873759920152523759845730853334764347732766199047478890917012046140020874480248854966314486807652039441448263576869570234966555913854930764729951188531448860662532879743367337801263006117436151121277502219738127937646483344460489535392834535014242331858738057086397637880568085280270928047637036542118220284674807203741962648124677079940024907520685146026563610047789991932659017917290605343423244046943896544901215640262607051049512327433695559371376718146899708464717109450198652211234920333792244574125486625247921768963248244457696809630536499283477165242814451888760652153247558123692742245666202886303878276865215763837405275037604380638818446808996074720766333854867980729298121450468604372643342211521897387253030925021669490284423043371988625053016299042190984234548074030588481809253058785762936761619922019479965944467956613098260298153104812551889678303491420895272210223726187317318407142782182402536635850634635089295138195644905429038895935704637568512321912706981042241092349091394153925605212268629354088277921475653766859553373127190507332640077157864805432478930475711487529881249814931603922163345195702836634775192230042978236556635320842862335640300261344288975280012635186794462030796463362563863724633983782022454002467680372517757930782459373309371436103604162181916453211476840643513180271716892668952004719074731885787574142726562998158089694022086450562455670743943923288500707437929359844826592367613366665485985813375056975740956330587569780534758322737968532827201011323840937754419328698491769317904794239738236292754039417329706627988988691618697888682496043266977135163315956656477566005223681180749328773068725009106574288400161825340275686742436971339827990576285208145316618445086320797912404029536413166673340537946987344315424794059572780400869764214687783458550607175465786812330481025804922249414780209653485020246197292204385917794462828697871016243783369758989292673723437209593282840008843960606427144391480828808480165704540296828612849518860012022342960038047968115933878203419798258663756201581374816943495973361555490443376758097542236696734695181566225424509693682718648589814237297361380663800334900356624580444045268610763020014266082675678581547771902886137706545311882844862517438198437875571511943318750896331931918828559506773530676254764648379736920725575429893292262081711940239159787927889130601517780073290855358862198670534711363512745421738923935210394016463702116684882031241647810023021202897201752144508671690819629560880929830432888170703673326265592658784882769045182490191916385099219591816943086437675350079612989797122247365441631816998336293808749038355667173080390203555114391829290303562388350334197807437624689948996697629843093757139763349566292683339335845855742895976935068843611944972734318377857326216193045260211009988645645101454270316912941178526130500703047368034174394887535767489453881760970547075221564924880636704076304892418730624598478961949697098733530574228028058316833638420214979409708848114434211756507526775187461772437289050573390015957242897863218765215031307174624162179485256947721066079865116090669645612532782517545220214150069532821911588546868963253093861900899051184148737877848797382329143666803077076814648103644505800355765936141101192433196339653270854018534526376524341192360512187287713965235908471838775103261319573250881166048028233880375159353586456702308070352471385967325321307144720169699585766907607405422375750894180560349371110736556128648216270874128106375400985466520580025066179517596723454331920622355726765921526133562851337763122552851565355162711131920054057368443237844125535350839036969475655962898419828080227982235697554943673854026430390021066660012317439100883603777988986221966925652857208394992274112336296396091974789426205684942479292122010656022604240019745543430701961454380105301377628012484565866831236809792222724299394246188353946612646274727621876272090128113530721586745934571185397888268644001967663067575896345147055833881846033579167582200641717390095592148793571527968053501615530153093326193564307774062251817058781433784613829449858705649140662042175958262417006087701949807242291083099469429667707216387634167667838428201060495433287779008767829239598072242089336166003173080891091283856515139533912424193195791254747659625723253029989291805197880173583004787282614226108075255911344457246321481982618712438561132661332828206253292572745726006227129974470924179246007395524078019869655543241932888717760973636832996091088301535668258959919924702931258325744025218810928278391389125514538280882954383722473317248523877401046638950110250912111135239158501969998349276275354098083587299879684443877939443591399972913887617558746162187454611906564886621755351889390797014738201553595263740393116069685225422680591900979547085547838469159969676323736396129415447363239215109228600706861533216341491160361535790954817779715354325397277978273418541512913791081177401688193497156667617354133989335529497786456232079952678579505092796551092386948782012920520981019743047959892131302543106598406773223054114432609836790398253070623884953204200041895587436367888044215096098318773370434617698349661943130170027625319220479361721062302048375175415062325957360771260626758638756029464084427487405350578466112615401217525574087304506113787778194733038321580711661739500515417461669025787314793590670717323134464360714077972484818935867781480013030109269008719763085755584924667498742320605411125305970059092811358533319984335829799231922233279008890506798636957204185663137322062413331295754942768196538106325804131979569807665299743979743599777984118869672448078457389365445161130493241724608126012537964840788923461611171793499472578840732511523377004084176146805429682401629348536163112604122235308027902380304169438058623155851254450917894119269703867090196914585921619882947103588663011948480936132216910514722200824670855630572467032043895451739267408995158706235552524511238154901170757857452576443975314385792278077672111126445523241851822385624072737235892104588748781796559632340196030299461698671607730878695012806775641941673740509623818668386065725397822021672261697231018997493112526247523565008030506077483462984808439972615616337101295991314299933889522107430229637714925151387009469384130138448297833809482566501524726090358988657208398788602374762345260809597069463874202971464631768440583771540223173604418830995744861056090686741845153334771261816747571131942108562929683135770646417348446976272626164664925061356008249090860223067180865780847087351939775342677419289417078127808536951292619607143115485399540655214552134731152849030446645163849573046330762629501396595026260620650394302792772638166492195260644395195153321116419095538245196897269621171449973198689602596021627963382522499115897099445900844906891073069533459907616841177772530066650111320801538024074822053705469921064133134989247357875737914848377174144196725529982650549456311740943823613730163954380296775246164204838381209853874446015079884885540132999576776686599465949261694274280116085541879289609414815261732239831486144216588141299497572773610425819400870232343589669578209888120063856811170284890129339710229140033857327172489197196711863682625246348830733850213762034468327699643645894561183928540864351023053582365002658708539586329217584962237751460055697206104260730054128418141668423978532106860347711314304417571036141001547647989119123052362821976892348839919839227799573595880021991441532239387280256295929249795282129074139099890920477835072332757004059543743221476178822555750559360855985907565378073854773945468631124846532044184109227625239101864692608449648984948905375326154960077745923667811153834853080755136041532687383463549411578634883916445182700496118885288295294585303626760899302704951809719501403709795112486706813583667510282175761198579475617648947170965942385263264436087376842882871709163322687127709015271538087595804928052041205552272528840389572521233336260115941188058682453589432137251114578213605797213410062458526929771872607582134309422406783919677708098797275113897839481229324325560391117776453500803809988352483185341819067702721814293782852000253551583026675817827723109858495267803029326236623062498163531401065344701040824624900051570089191208986791812358789827801151079316977535564612415238131515167576595284943479739443624016281209776526288520404166717448819349518107882136869162872016263862080625449163974738420632164739500284576381662114857907911436568153814495650789931861621981249383084299833241797160271201981655945568451571021210101963015163070148367549254584082110260897927060195880775239041552929995416034995171006140346068205332669431601702668152480075415563693409311953429768069937402015818715495321761901209037120169891575176982857925418490663385481316935142441456194404641414301230982783442840318298007092560112239900744541834941896600696129814480750921245327278662981251305139868989020779264982376330226943394906055400594024413196813983162281837044410284368671172578560242616772557108973181498080465023338821465420766972713536148925052187888368754142376629058486661972773558430355298482188398858814235360806711488632131645760046883755816687870289932614936889528597958580457321676775977845749233579975601006070086372443935362295914206550623493263593004784008391539140953474726246863746529465386271178696064782883317569299433987737494491740492449321768588655870871098227858001758654250306610576223575956759149209912494459264722406070367441600246317056962983814233340819050533492067972942830480922461008824703829756636149525027152961690141128391427843746148546264763109299755148899115669302042484941811833143293338233047219198989745448159805029720496716384188070289784130897552213431274408465249337969499063365515262423438618279292173255545226569827604307554470240707372032834311620649299550343640769622402768628838810811118693680042881976369758110702147475107399791027730626811423448376025893817739697295339721179016735753844760502744051428914723739584236713751730831965124974057663073873321448881747197078455847357798974478519611795819630421381141911866238482693311739732550078350898575666293694932408995771222631047022399605973006456462596769636932205821548286738829748191868245327549441832253737003022494282459056217110628911947299436958947677117627727063975245625409687716612283874104451580210330028071206993457931581053481106940123727151829028887042806781554154510781694331249772360900449043049833250445031069544388650314557898208956420683741819875103753764014536738441120023978723376809946404144665878459889896781108985926201199707001028874959055594555665323881150736592528131698350389872479452976739249064652774202223375836486089422231839401425039492720728737775279396299507909127335956217137459895562834002758219538507777488783127434846666003038111836741683936218576033539543664949335994185320494044474805109486712006940119799581241555067340773286477081581210529907011962958640061629742894294945310553991766772098881405377239619572410986521984162892210275476420745830097359486281097479803824916697785829066307546217230038847427348850588002062722232619529426266340075198819125122655465416954220823762556760652622327586036298373854073287472362846589377112135308413858205711826741780033222714766140986937763643180374162815140170089868966416645648587329920190329432749734217951593608510844586971475089038591385405734780217542939112218179849427970409531813650045499277864842461463279561529117199594776834290315513205721102282876971601777798995243734010449777806521038217460505594648863605969091061496194929571097784253120966559499463313926729910339904851494235445195132805799997334030569255689610805489509522723234143844492708803499627137013854671643678742778130281494674555521348601113622760074554918611126380882849251204627306324416447762344437180368801181552426869510603155463000910073640100131644760515880074996392728067723883949215546905832865540348232515016478235381737821636660468990115920407816257820873472948182295090095852916165479618464361726815955155721056481354409671706943965134467008127996213807985146636799415297402567116623826971336583378650425177645875982482104911153105085549740603054649030534360693819142513173839524585114079313250498807958351248645877293941913946850370260002997642600370616436643952401859200531451666294570066728698589967802169282246546426090961064624696668735932163225620436659798456125409966952668401884407986838074591065353004214554713823032697717798734585943496959233354380435589199700623738238329132603411785294440092204616409690467747179219047333196454185847705340928796738159197069965544264333398001734115723098618218661921712504861386797021637273450926303876065927777110660245789591515313668274208359463788971183173023145597830067548020403941155154951662352824417207015612550215336701639062114386774940882254738638422486290316630388714469540016639235895363630272142813674966597566126816663252126244231587467235026853861452441653449456821289370681309661902119118720173151568812011334921733526465075549349850452512617375795633934759917816818132744070471456917565646367033993030035533728798929448393859913182761709879372669381743010284885294633522223946118989723248571221593937871107551343627496911961256497540827877301784369552847979419322377479829097641277603376096558532290615729366653536998920412233546639952832749115065695935850535791149145434042117553248428872539128808047358985302080134414434218611033356269761024331091070407251217699408540754833203663039248801377112892869721412033375036020386472618153445913246656428716334561943268276167615719911274384476839365165468857774212715858703978172393196378041100448023047403047474899294740037711952596334701697236236315133747071757236089358712285439465359563819999601925939557315557401905106425526857089399765639638621414035844014092454946676578045345609058503573738054521531237992510549209718781128487892927132198194306851851827355980798320017175721991805545439228758528489554476859237530693962185732454260998664942282440937181435651235153517224857840390341289600289194453532781612404486353978437583818864724646120445593780408932387509040735744689788093322752177715071742804443939972998628835138959242400317257208181760230840193209488469022380163521989517327757121638391665761326260530774724069438776290133496981302939524165446300558855519605664752931768859414528691113904139238766983602861239033126898104471511383076112491684389631894962309353394521144879317528940879285463955960365523915491496012787942711187573800294744829035925141525293716660517262180147281291325807726113920056547575589195615638775393434694823986077159202273834563185223596356543141311070987010750089776839965637379956467398791659654645046297981433308343353089720669343479699478369614284786614512419418977657144445989587504181858829149991571850870818292651863543736150499005750362107173397949043673057064132877024565299718001320330743368421817480718712209495173297591379827840076448564305993454449882091114764545924355964540971530508350545782079492000749267796143713299104246396600447824798958446316835782865315467008935871428544404637876192612261539541575686044122657714855676560068803422785728375286010777746173204067970602909471360675438376712669466071316078956825553079790313087529142262267710087637456606490832090640096627442404192040308035841069898762125890511491470834640237163712925916347863240746918051275834565422431039178545709024617014152786775084428229649535534671888867835819311124259479597131727125247150281424669255514598420297227352242706065366506805971063675611625429588483497528361772683995839050258154975532039568624693478405151377900149158014769397460900077026718702405567068893911322806837573081953453029287001257375686448340648038581030930838694215025590189479940022539446727494404752181148134895853178071660650993118758954310707646350750220280673156221675884044603602969073175255669708606122424154511373003023991010004324665454562601494391055532470132135615156864374525525539871392673448766202752606421147934461275940503218474137978243385961437212343522549768440551447099779580318534785851489231754604918652019948470156172563195619303792146349629898171597765840712831078672504982160004347276468974048897086205649463542127537990209209664186285702421150821818185179329531556148385013639338111308055960748737308016106301434279486067512715088304874832454247511006254049303588066223617940542196004084678955865642208040672285615941542334569198474920022889651344782801323866288495062778656179773879459217829876637408995420449155359479975081339581612435834367754729995259382178654410952000738178955170983524621150642603899837158494994052769760669604845058052584206644659266429933864924893818978595019072036624796584938978245589521915819225463549412684663447542717436581260276835045610403069398612579813695551417432611740015987312112279935371108667984957945148383445703138611946900005287277218135354565377178491159258902928334956738187490595869720980065141152197906325483842949280658229897850314687577575418223919114873786917527400588917757160240566697983556044949365573497531085221059763589265705675016356960968015629191062672513743513659086727244178324538951867560456094993453927684791572662907786030351009464009198588566793099923960202751084464185490920026021159170759205044923388698726401510357862250348195995895907802484685619416919586961151264194591117897756688152398317971455240395454754885204696234045452510540252630171622324316649475461190467927549556010585793461362747907923087439347224317995406147123461067574494785271326680376050397999381350009937221132249749936397009461191738854023080947844783774616873841901484340234940052087360023312411401947807481453435808689593063661273002820939731153955722322598675703435228955504584158376053012148518223308621903598638247324032395036977264860972819174547688113419036861136201295621734056994844658000805524649591891272257907029062219741011427269595808880930401273444990723187414210165592590559663090175865105665347373920154461906132234706007236226775717082236203323313793623766944650567419775669823472464335545726507558765196553802485971576988181427564434659189644167259910092162360061649715454821094031835937771394547009965690129330412680335180720425995183203863863410090599166396163095523363286522557642023208143971648162588215066005538020198290812608961009529667124005053557452005888759300563720066834379793281465742884070130522653343846436872466505245881146233939276630578832926324933732262046814020742868045672753327702840577121871258323484409514078640063521388364309982471661147841642819397604623897519176370312393722667318477842983656681964547862395463508928330779035298193511259934206356029954332748576194138944740061150841690462184876386499825394511676982216972137442799410122369258364810743287794198502848935690484077844652328568939924075033280859891965427789774974211273213616476979457830369438255116259080903744595958853887252003514895943970088852809456000380376278044770103366451135381337651795091393512517394981470401986210133626743396625078644554408690218165174452464264439711544385996802860351203443025045525327214067520832715207332929534747930876636058342109779341910273427677887312300707466441062584773492611380438879443341750160098483761480844254923567894898799450372042741720954118981073155951914093590391534272086025028415636212964482259991104016215203451415387889060798592981586878196481067786946941807955146436576472444556050970268905845247445988963103630780445196758057404834459142951501633307031469607704356731434384040249602522163114999054720850006128905119825898823194867520111616681709863909002557479568507370870943863206792254674733533453722258213543517121111726457408825775804193921085334406662181337253802821798135449860410405372784905096492068708562039202588982862842761543822988427109711835949100475548151081123480685291241323548285381461763770604740673829162494489942974141469988151157615451660811855663525878728388922720115774669468762737727780683285296756294417247292559538499021910056960891993946586143480113691345507293036925401532416242435006860233535181636534849755771468401509104700015132768874413887250645772679113225239371247053557151674450109154530075069503563717552184775630436929474974392380477891094458826156647768446885882944276207682346728790435059037771814284215153582208128431276893151503142244431733266459678285609935453643187357426821656981898292665186436746749092435344092672017060216677816316572735098109202631010730372951107108198983260985309032022599686963513639733429233412828272412286101184114508971360098611558669045928624998017951418570052651671268491058212798363414855148850880511225735467661763974225918562704115648991462832726534840518265151276991841171601267349970013354770803731728827585279887488458882184305964504708049059943437151293861992225997853155325453749072252031957238065559846957676040270924848499192153679592892286157573309524199528606247178704061862102291073983514339579559317895202028956394199272851777398612180874259523776100102886145358561075053588231139847455508889644115633292939414935790757103955535344557385079807639217249752311156397299328833293796240038366749346958576777587853250151115321191422805085118648143202979346624576354993232374995875895562954463702814240429135560682976220130543405143449645944298995858577620475756370730079666300933716193455188890655534927696881481430628087489167557671820262001312855822164640058476911425615937748715108260092163345040197073217894517225934016675029209235419461824081271610912902984560187752866814082643143102570252482145807020194807458099338056373961404718084050635052132136209769376530836102013178182327767209486473451956872374535566287028394034163204215301370259067577469577107876117883290500868453656200553241748546862029146223115489893640819208966111852002353781923255473555910198042499407604918477455289597646319123490919432101688872075042268308227435616838282110717609822326567481830335592820863486778254398840509773479436260422575640908959342242604230264947111386153213542242019155473890196117782304921173149268878206438564375305692844781300784195824377847843853988828401247527487059785934097222668490522839304071715443355287717993669674911155245836595350037425460893022661479279337553059894287693012850489579723297331671136865488368991851730867517283117174760552097740627872393115184996400663397075208935659156603247005460870454860115332626721600255494624911427447784740408682039979434294832105424272954413442799827304669551155589822478893568708898007115109639705353605506348578419067524382068202356259227284118327828581268518086087095451258801288610000620692120620598287254188168405025886934447661239013180962040343367672882789372598143439089143922317238227729513798510238077343687177337782518014935077526486050308509849485266048006419755841651802951031445240865354219893032581829555819960776407901055226091065527432236145715754719364633880842514674530762784253761111524806621040452282033081853957353842966229241340046043713920997147466054061064277818991659996230330855155497723385091083601512704240076308301003352078933722119713001589830588274213168817791683710702955581737106213907983790105546385078601712733520296616531554131972635243725113748290959948765553158822826307829267118845747084413473431976265061337886835700762434850579323246721868213794574906462601022539744175157046745896000179410642956521195166587751103733150304488013180124918844705894910216117692888421502519717548123057140278587954366613637997489977258515639479739458896056125285303609406876963090008661034951792499933788844028167090031203849009239884198529550999506226190738557073270591376450592933787650207166993874692831197647080442355532956274096443024570561772037613797117039235857935506440089215138449373178443371605251164654026848420965284747242572416863334385046950047849621294215586359173067384096828273528142585078525091385231673317671231889333433848711241587848442822028669498411646083614297869427830004749673609402066351485732209977284456245163634034915202267193490373530493389478363601780569082443500607311413887521487685814990273609529868129103326672235986747533272438174333561190188730535629766676831237906756864318583963206282865220097609580588377057577075680436274304726776835765683378523975945409895550917358955672970921752921038101277792144069965966155308766322087876026465525049804862915073246620950893334058009761777390664363563825407339768158101366830914242052658524937429790692555193572242200917790025005138456425795957636125399135249066352468812974522638475228556342192023686420136403243278208195550920961745481017955485046000471790798330665845658710502550774185083381043964873946298962923489743654191413066329268077513207097829903170687909010544748350113956737312275888448684984120357666184350594421165286182546639460279891756724538044437886569771452217549199834953772383662436941048931931993962952134618896121488678188949213681913903693217624541965134124702320129120484502685656408221372208973654968485712407204841971534626866383754504619754201555983036852885888943831768393022699446983198978979926201970770073449099365510030580190013828458303537092418395734916453182623697250455688259913450213533802570841268620576521797464088686870770543649977209854482804358536635348635861492459332777565987669698257992995618625675943177173805453590168702949188716406335200412943033225609369356296594339015737939219005621760671616475153361787917170121590435564213142434679768107947929969926203835296735146797361031065104454870933078587616826320218188009434220229033757320810288359867960079645552619584346767283396488416298892850569660384618433818352018474314614788722805399767109513804362012292109418575180090260452977167142373651387793930530253017629319698960552124022922597585109717774106489456969284613262581156443229668205188651172394334704972408203128069137091238177260786178773067211700929005468546658512686788457909310644828619681761340720974757824060838296321802684421566384279397426790872264056495824094513403406368574951161967723644596028593325276007791145728784341172434940326044400673872056160066191864820667446982697638263281134878142341682223074345285207403174239579644805232618134177606409625288505773653554171004845666986289590964887846746619432343461240928435053033152717451486731060089886263201861747713607473903697359544620347766914504148106027438381474912600223969205499258639177721917331199835032264618896016217275335553226667856359015061672786803375077186655054153413257274627383864486612580146740401142167537146158762631227228521247611539550158305920943442000745575007139751235651705070690246140762028342489529231604829521587157867761577191746325958510212448670414865298119973485095249250748116379123281338716409080227693764479011100290166217678641849649091737665299985101042071017400206892970373691159835839600534780358617746790173504384967098451870537676153347142527108367574861095311840079967054555547816091189674564224394901098461230029249868451675442425970007820604519780801515908392560129975862050511871787978825640713810264130656143186226061020377651128709385395952724029789991473066599578512701403604979582262036535148838711252167277147390356662298506284873227488892911003712249618901510149940163692076108920835085512919224026967335069770028895477312151986679323107185680365245066036457735110852479684361329089376443725313449812126063958064910247102940809657371171643232288685525747858525070532987893966074857397445040296490089409266323849892976572966795480749216031593724858754924055323520971875107149324029916491661883724610980460145141857915449577051559137135522614117435606883289751789488124434787713940564179213305338448713507616459862069843945593495623489634843031159434180578626370303886548857203615213716546076084841369441126167521158882551414731333330156389972791697069198383296391635775682421590368580217458434369521417602280577575565735586394687866997690712559814500114349024808743318826884462350398721559811444842793458782281964874328647824080898347837114808763122598923309866730480983196677426639099443318526111176529226879279577609117117562224409191155065430436240914037045973127359674849095767201382234503579239439293932157274391841483092073300285813267509971693322106607653731468612089920945619724926797472866836737265541198875633264209248073811164929795239581361011077514076378850193522398101944074274758366802661892778655239970328565755205833460736265732302344531036040356054518271999624801089709346945554875662969655138343065005959958036030346857712466184496738922109847098114041834522785176890885836427504141474103192088937787528582191026338520175846883694865359109855757478822393515410071592916667522650123957479659447351211312081346502334118580440904127952415339163743314452470370610781983960141311519477120103940489474050643797215221373583527221409715893219660367629606270406967139172428281593153666469078525668226392171690196445718189149058297886342794606002025465175453865245805285341520755102573731025569240510400629499506175350669480511746407524976948507230933738190317191220939735782720337785037478218370384760562902499411561042010167093483694906930127019885803588294462607310200153817190026478435736237744962492308698556203196501290914782164196950866585236911417075431932329888413358081087542548259720183684878975379214337494387323629611452769246502272997985446580068663825186610555961892637499503441367345530337891009468586758247509400883463716586461447600514480296584292192462194175120031365306617187351327390153941521175125037896623852704702306974533143397473099429287709520414821818962444788430523179936396605246287392861830934517216021808461928954568301878165372623060303098615175249565665234619165025469579408272520245223630780459055079956308334715929503930873741449381824350187753650892668398902047454059426455567428388352770195079112836789648051565571625869052461087105892391462472677529615161313883275178392106027074860045823786780616705929598105758233908661792624608926588605152659433878304733670143620096802375793912349505685606788848391579170846267830242715167609211732427559147914018754522854327418116272329953217330675431359042319233664263737418201737465577316071065214479779716518517569725793733566157091086179373886578141623180264601345262552124806268415146143052668269043033443557386564055171014839474052153295485413323716456884573525659674671235513419653800884106431116771049510072014093284984306008955012953892203767588187394706831857831187967504264026536628923760265413068854167746654133542153032704179658818325771591155280976614468894878080599001724393327189444047901751279322877236882633437772347752195761227916170172535099087105865565592407385883521128353511937271597734594479268980858953605510790322419839469916427134353674777682552886542611381434177902097157861280023736948066268515150562472431933070688413281374335010828112662286080266573946821594881076495070997282225172820845520378406147065556449217191293377169890278316843818007569736364382408689151151428612842149011772210967414643998536290948568722859729419854618179946560884853069440401465753640008555904359996710258894897299884762579143957920856505834942374326232186368853214650859296009041205872762449759004648537349604892339792338711627764070767596469035866492236420503206368606326745154003100735734659553245530689469137363932901553250826014179986523163189850312509329913283069696808150795313268416173300993636426031299072194804420347779061548927443522758159679315858574901752160533118857928500326287060612539114135589336522129717480622441814867317223723177628964796928900528186921791969676447483164743115715656764275179125659696894041499022034807907763917077843388034709014773148221708165841302640799350873980501072138523092697137248311547970701009243288457196702807049147619995385220942340428635267745158519762566984626605977963140925843823332371000438440700026976725070712559803144833784566763003005479392328745812687699397710958719002153691998848741276656684259476893614399184478359819662497021378775250411008223585670407961104541601545601806392982297372607135877388349246885230372238041696415493185849658546227346284844774608403766708094416072428058923593004748587403156720260722097761781397908239578105456430461525098134121763641001560171263382963073969143010604970087687380639560812128265980179208726014966477378839580105038794511999712008787679569072928763087223295293518145222335419412779535096345000925043906135560902452619276046837272745207452592709047548652408242105652406269564084739506830549022558095897406746923935951554404421939851704714401392733885559236192582804467447088637574635961232953052939617149918199023292625621554103430985919140225806870162810931257589520877944369643126339580744633119892079632710299255130315929462039181294484490964864014113065700894135435961594028729751880945747552487707933240486596691076122340232068089347447486190843201626488150933816647337243938063429549734070084552017648812857743105344615705328786725315273791452344062999453551197551600026822648482206277587980054256223967429660906955019584827951447524834214267373099172689860438299252736000113651751377113617910876648138919175833469495038841944217989266122843183343305876084750382209636144650478433843767393520669405673476750333289151637727958269017978376237907697453247463849753804108636575799644079385163241565454086374447012396506512410783097634235166392560697877029350382207352870234637650280675138441298217539731602540322193573876238067336051123593497589251899715708292025157077257805543646940777652575432228934984384420636606266191480625727580122862455295287155686191844539173144984006838988019142065126888729506880401396349175167474491823457796079689881465819491502332216753159382413410503263681314980813164168718284997687270667137485623009233006497276821121425943148134455340851731635331113879097956540991709984586131012238679643969284145562308368607502317965024812564365506061833339734263045861765918977334519901291974416358049251801162941427441444237359718225201619900382149751246568161804426291687300043375991263702316104992140771995662387569248372523744103724503489207687471001043919903684760293850728540069253025617616031289827264292301821862165020344913423776499053300767563061009965480204541295890557336757718428604827495112440480566170293311652672025767416612769501842417734961221467632604443247568892333714391181499165538145532890914045285004345219460972517281180095847008915504675642099352545290449157293233651139291824059848442683072020636197704280723002556669854664995282015442545844604791814139357298148756024856259796426832557063741058329463686336165105812340452214039315901276024053777076363312555473435798063808343962392213920173253428629395530362666542274582218723106032447723917531272687512615766079243462708288710992397055234579468797076030172200673152581568589488444066869729477737487011914743251961463601810891890668390250856060506089605156601366134981019600782975050938358118893653813162892318935104057159830294078154077879563902387193549964558501056241682384975546204432145782573439825510118331056597331836370108854871707786817188870737866245298049347251753095473895380860897725848656191140088402131576932881872331531404906901191390126955613824012360584857507156572523638887122811063899879032216881782263718191557956341222517341064228582917494426748693071760863602450747734215406699995416327268634894523451354364891151084796974410354605561793615318643376765485127701091427028978018428256195089823587205832169947226825293665684051270413877394074383814514474582099649223995110130966199718897326975022930103510037066729266224653832148376835704519596212768384682089993753472752064118003925588333668463540235665523609738953712073640192203755506618902084661644760144013529603464016912074500321051529151144957470215472178979071632271750533746954706329980288383532024828159309533273357548895055968894775295438727547437512280090758551974876875001360928083837145958491149918196192549890336817065173570989155758549484320908765279020840161179394386096490387122684148526028090693111689077021794246771339588422622178732328857674493968369206863113440281823297172945347699686182694939463771845992975256535294752403644069411361591599384803642471749926506804659870356962607752105925551689922047470851254069471575614298352185764027853844357554603493542661921477753790326675293593217955173233900847543052731223719719281091399964924654878003848142752618935540025063638251148252276415476736266812496259069141426671265930555398427266597931686933294250516808365625354015109997694924173463043635941024093519014225393549024869232198644824483905351943202021212623408678578735642439177974974080319303984206425241602906641988050911474261493802507929238330860631647127760664345024554753032215530881995448223330089141412213371709696460251474791405438240608283189942039082516114116501621297647951377713936994091815167939964239903969878083456566203011999018721348665738390304235180323892955630971794858583437670055496892094000057596993777579961788973058015358173779064690151996211903548632618139308058788510958929985533993162071812763800603659806849456838179710093340743547901264309658736179453111392561917176184338086004120769015464010811456657433361603257085124803832259660826817943915340227399219233845792559886352483945818965997711890992982511577162681219259594936774273206316522429276449085775952373747325335757424072769215236139305756296864583529313838517322628474011427002516389247126155366144300212456368429201807373442965670871329802545952513712257068682441149557555671052950696038485654410663213880356732746452408644265944186406358469786996495959768042968088932629848285135687689443702635910428446205957794348292233647126427525697211681315316409393135115830547977102505339146150023689262234626590366892563957513438792701469967745457758981047807114651234166065239594246158617928441304999289452989286031115033732512785504463721161218178957253113919944321048464311660120507742234783460237545760575379000402913031255327164202468955168530317888284500743332562479208587905739079065696984368747250203121019245189434230162319189682414105989840849465896479395348420854865323622770825923042131817591979579879673641986673240360526918475483780528015444354682944828717000618911445110602133721144319635621626291536463813307497512589537296836146158645471837490926006712441651028820564569225521068110683109626329773070891031181427520520377772317094056259354883893271246655412814389829121039003443598740439970015682932425868958973126872356136645874834319401174429337969081700530147459878035705205958894111687127246868061659105778636531222610719474373282643373272077418358999592052328993644550765309972997287873710115065007417348005293707047710220635301182867903463546699530841215719407608575245810393832683817681807353229722524599912120296446642776917248177486920285950241741540940337429049783447500439333631614642600854972979477269280989811107677533221432592917896530999062115372404668899246068265908706981214071479369246815521863145079539099720973585937275884478647666321726132223655088926683249584721432824233849730468423084916442716971670234246969930380567905159213393664101942785772441158333611182043938909165147696305777067893557537499354598600000387656787148420801823022612154894188556171478344356177289046869591270318281340684660125802333267356231275810551923777438195797664352868003985722236504344962395695838332726237873245853525708905620263721635520399862302623627685388603595617721003356426571973651746026060902136479167548390185191859020958504765629409684290530517950881215487488086685690784845841211503480874961158708463465214956665358456305404610553462590655553624251908602415932919052830510212698516001192054782939743928913201348484123328595150160289878198510236373297740131979649898914847752963731414311945004415544896871112728280184268142603072238358269856586719581743251973906551847025142946567069356087073097949341992829093385452804325032848335670260748781156524510363472555780691598191553681803877321316220216025181435467930439573811044574679972160698261796232022401360516152728690800631324605921826428049048858231978573092072285520666325524283295394459273241638964984232058230312281223794856548909324577705901228915559463555694774859093128458534037891715524542516185979133183681312441288773310012216293752330480455844577105985743968814511932991592095451652065309386161837506684600201878101760337877677828995646462505094551302655022875484679655252864380602439725939523649591994610731198002371769064403970180426858058724348644126259703285044050660820811521458229073283442917211910405419708746076849534805590224203990575775855332712267455650094365035456405996035718787711349946371856630188380260371975701447747894223604094288064055114053952594900690469638302646449923496256337460058487916673020905150691868237368079364999925744835890506441582488946204799121001157527124918374287510854680536257709777230115806825467096293951781591332861039750482991782379767004968487266594546960899503267140949804166763800640275814239287760590306537106799336800968911896408874297866369421010173031506407836881975578657708193993360284282290788967288893554232672391183113042072516816674063445356865822204122134523200446080399946219553655964256779927653568531283874596907875723400356966116314746374168639464884274469568355853952212972186525791025262000771100752088179112787464424351934958582926663828180295312970475755508042727702186781864985844690095133538023541030051728772618354114773563828111279609981460226029408256384623589601799552697162524555677933801746520428971968487094933201034188905455805311649026808588598979672344334460902154610345905783646106693998305884428946115699108588188084017598969499763059664728574641971116711942274555638575567129427747474213919990335889651507198892038418581509461181513172393485134217263046455422620759365694607547948963918269644947444836459858680102603923965583696945473010998803361817385741688064835984237498141058502667281754994050849398199595566918471701360460220737787509906660464038218136491141513473254358702797977462451836370399722784806432946644125335140266569734437846302137061394348429409392225857813362021630917686439283440697583524076635846389726022930603577769869144084509204441027646266615214039355524691723151678584171535596328808091673793792725030016218443952571755948504472879089863287841206631232117271853774056072888841245819116005552170875067532293698360072366999831164386827962576760000683950325382826601898141763670075801661308061836442715800341646448991354807143836483224041371132846886305174217903456133413152606079258184904114083617946155607724027906913544111303237400250210294446321449013946782944403364395878361175313557598710221517159012199639568694829421899176602862467347366088446941515599213506621731508646459581250943526416771921060355685785369978865866190234529136544830179451688050347195219686255867843305867730665050490982481560841074605085123668391279494554123355074702809592774876314525837702423986359016678808199043143162032196313265104629514595222431285123348036730787865009252642433544911738528977369360982876863508320862034244040612219662710112203567114214323799399978497164396308780667668504139540467137282180409953289384695995013346599378046016666588034429234928195017469499416766776663872921414137232089116562929041706690469824569969368219722550075860965113330208589471056900408890944006037448903776279991590147520927466185983167097902839009820200600042942090186426383585575723791895881012116680210658845588320755557428122507083274011735351543363712054350505107695064252022444004596887343611864771250145332985313775838205389204817662621470929957983345856115936911526988249138642147299592848051340348742830968865335024544984844514458233217901680407012050974206260662659194437172764948799442051602931908822746894696175904108526671371161825941053011301869951686159241245409577515870527880844278883809610891450268983329022065193731883628950235243431319523084314575310927774516545437916029085330027523892650336549534561811633868548071812235065587681392743807996115373290394288671426254086997733770837808592984596537902722209338542191438794223419122956390590177307626849840531916432565533543024874842844774028329425831392128465801347832834567948322269935245710961772332867992109479816139136142204432825567299728082103204346168503937603953939281603036545601493003278367307006042643868201245076714931371752150330561367464321050630976911964902577945352239588004342194102863425434676736106443798956947611472885033885462773447809861150190442794612546053499231284314273928609204178016323006462809941076034225046280329147348939971377038990303755001943039717347320940962009826277766179879638037017978980769172422472215599694248293472776689348986979494445941095648158575397268759761785056362763424852002433435995129422637338574140305515705453881149500133801586675314111688765216948119781391551611834778489497734010308424730216378178521409153871801968620400949608942579173256268882392124564021465383958951126557337992768487502075172063988665381922829141950155645811736263233517316110191516691111489496625891092721424448443163908352682549951127145666533930982024448113495671932524035853920123231755990231092658509722870857212916406579404586713504259344952629779078253143930757699034061478403445143098827049282941600317804547981607482242214401380192517370424658162358157840609929272998829379262648196730094040530219752571340141875145199932690657227310304823187041601955048227829965930715417013844851476777851395913982830572547313723915708494994274163774875837282462551286693266129316028393351825209191350430698519295856442976861076106946698413646910557668516532026507265066162006895115497035137346543631897521435520007776296683848317976966296440545682013176246654962059622498661666497792492897954112870149260869039506513505149899403745267963512662583197946728295399842156584543525948256838993116797178300162555798660286272634101357241704310640022618908867131437016147341154721582710011400201146132051659343296155452462723657736368716050414642545342427090944942658970742136921731213458412573750859429018721754930913503497498822895370093669626172229440498640469838990304351765527479710041416772199742238607099496485244561035836137178336782083292113504921072726027292617579183277056009315459942553539284495436954387915491296718974493732733123432698097441858032454218273453236503849322155851655223624388416162147394450118614774909270368481414473009401086434740327950907061607762998972375185739165184952692853342840159340196837085956537257157145604379694470667133330865182516209263529081546955142056659761046218359336825747201887597086993070932337071290767539910693263995705628452569332095679362835968113340610631740087028027665927852841407395646395402523910486821418633186797303168555054417732472786155893007434209390348547221668363813381762973097025622331821813700964895242886150962991294508494241532940531078588782844931292807578604145953512079963099173376136926041304899197503565918462229904233789010108614306837488864668801334564450600564010316964904836879484876045420083760918838731052471811738217918528507398148945254586365559905338967738144162701582673871557644152747890018613492115537312847766063627709888940783383354031373879405879734669287037950321445854646912256163875264218143828061242881008558157284892230338976509080691615919966847004356216651025265712091450513459541635980806211265693280639283178601280462295168731411498459346995410044211477370641673740311782402190620587427646871193233509897869552761883043909936013126029560705698592144095180812868473231889763398190550911120563921540407801574235412426876011439393966915181521924411255603185127582433860954118360200005178005027818237435702891881395800721193068760351276157835835958243627227507264977171755920518053618126953023518649794252587556858533134451566278385521198613647657444963416700299824395991341562844981452202231851493713983481254976167037887389921599652720098904287500457450291582753325046034852340819426729965141524114244726049642241187060557846329563556578488228868657467320828790744409186435298001707883663390858210493598038771515031365262227881301900573750789176037806578141684899895603128534399825712342367579002840967440064251442019916317820373136522417508832459943984137261376341890968842113228355970759161309814555937148654489469032148938211676187189909715213371411483955796637868982930024894839825906995807000257097571250324122690073779641450028235937243067418542512814931886760538805700454692069245282510218167350832256657372722942198360694949123673707510734141121278537863559173488201080618219250307981407477388881849618683277467815579075526844778101967735987167052691477246368775590339325783534852478547586098338939480058989442550466495421280496398048448953384893466180322245152995038572150704186496248697753046633136676712955317188541370314790994987079582362132322645607723668599636576129842412377934198594987139192325778824427631564292024301242201299984831123580442503689667095808119093417417639837637446590083853468440290982659579290441200654442703924552782814497283686475272515914443702103464433385369792573604007472728100997120765653659253696317400167211609600446182796922865925981082076282968993480326781513820065352408151095369294805237129618395302396030914049832194748590287354925348380449550714235689119427281021392586532402026997428089724678495521148434004089292698133338730272197194545139328344965860929600899498802017321447613848817265522379709861013575074812938148656342023011616865243995757403576908448949789492177885131585782557637920590781543214678575161859157065208207952202072062136112362391995271052805523785589726136440752383678543826873671978482708611782989199326005201953762637942336357018511861058121961636742519852319247815340835280704018077728363821794887041340778312213505677792918565379343244088941656610462825177767325533378649775723605131549971647005181521967710115281127595890408073598633532055722663705962161627372558986094625995629416032714126218735133765111286157267849725641350694641551168147838198682101530128251843013882704826592699425815433230354651997840177303907792120682497492935461757722077036327724839668193943818139433236030526478781896574995000613278941425033119463302611045607415308564391878723257872743153444288605074579087241904872488025378696607797576554685346980376566293625334187573008817339809456781790820057881106967177288147362357047822212772968982325485097190845365572201453643081405663294723739164317381958650260512363929765576137058040018775146756740991830146329409662863637786603520206735261512827142270181464838701046642324671584238612573166326584371636709220781246354228481301379675115745919710060359515218877821407206713067642985597448199707650301036017618948401586908799480170545674047951571868819266879706106505912916608178509877332277190331190808799747998040116510539348587956872157504195502791884724160819012213310236278654303692411697579243990525728890957692306391507130757591082480630219312184119689705643678507263618405477278115958739596158986140981805094288556602178746220103082576158439470930997172203064563196620829175991780740183541468518981297284854696533774755299818889706323505032195822702067616283786795728767819583716918329072577318197279854500182262528636274862125767394744862174610756753327787337255154415589460544217317421914541942972037893014655743105292691482958231928482876564456712649127955317989557433035766850234016162562750311763840435035240124825695076515559565608762798563908552305255204541700751111059812266312506928962583224046714287409867373687438101084462972626482134389445401384043102294598686118276463945161840245262973307877837121004680565072865353653348004845588781958818037890390141541938645645924482606800996102701749765420786491364502968911717859143795709006403030425173008374280595290551903608003168237677916344593707902723918551149834535099296481723848617456766188879288940145034030301842542910975052513518189591690476968380104312134508662385021954021696046875029291763876413400043040232828813453375700621242932426055363954286195122926154215070281730250518570111290456838651865659999654093746858450657326182277197077421348468946758596734201332871438556412539033189040764417811327105147650002451746504709416486800563246174647171894029484209613202963430864442197826181767154157107786860847363599180524402572898766929757923304547178990523409264565993093842025184125411476874023436108480922990004120628525142444956280681586604866857815091217208899968584312893294419057577378595606724060619579892535895226387928484788539863034996413987976772677889788068236625102392195031195643741929010298675029965540737493805908437344835327053213761746894604673621392034680861767417097700208586650613563414448694229927795202869285791711207297488997124775795164935603504207529975336541447709177700922565485754936872872512564759799901858853001090030528918177512580031722398407188297209740769251870740346878420029108770242897143528846400391194884647078029285511139490870485622557317095630372699176138405041521270793932348862473381816459626108197783603486429336017499965169211201297700152623294666813320201964229573351188173982416961864247565269894149385288340910935644461914677206636943097976113645772941964294019963419405730975207086937453817011743512607874694576784791944506415904482959436974724843537195703317084455526874603003806413037795730985899041514590728760478553082053821618751886812231027032186903752880423593139605349221142798029420164956399580966931326226288607174017256105908545901945716440086378488108316176321340797849489217139623181282914399239466973783719013887806038848655420341641133544172887706982918082370811688971270972757575087969603344562017453751427944241609428005048573146877710403197985392469006480064461011960577414638375964491624493684532931595423890359287510022220209988215839507863709718088939252024153589011384836611979964576052574658908164989294556161077108361253470900420772371101708006377823636585615336781166203475600221021582967201130441707178387368091776070317053751208879561413869496142706419711521337633461967893338930476718312393058484365703824079928759716768985157526995343815892975583793684112984231657553756033970958367522613678308114352348409658764589875951823661811291039713665148038405704977381497324658991772754288222239111155655900157788879742925791976299226631689715874896605050749026782734354936421911684716099867292424162624650769375814634888851210462475043639199528837547862668215456710818739668158912070655799902925888839039243714657711477369536090547482148151291045103408153795301824683707886748820835951871818360889455435004017357260509174049332184731502611124102854359187079846655129855399080477803036819430253877199719207403904537445766254560851188258738888112801525572824214213343405489378248876713786559914311729968955488539115953803592485452149311638350287045512745851486704191882917589349509296693242881608683308902506396622569733441018032797606145429741515134573476298482092135442491448868664591355375675807429522344251450844288750358928360096965149235267219900622166034217783552256134598930796675520670015301859757111705040458870951448019954733613825562204876800131974019873037294542591214211660727598132132457541801712973481371094821968672479965792775859208040121326701338072690168019821164281681893063615371132062019032561667894376336053040791673313334728095608221744184776269255825499280844312165590280416376106281062632907953783529318789313480055707507364341111312262366576177882081345361691079343136945214838171528121340294685508549650112198746670379418505940376181030549012899915179545825598699333692360999543153448050367703763320263549822926582365709644793218539846558935921278718843232813547114330286041127613382702505576155981728061194677783005222726261785674236865091898700916512079792153706325431291613550876716576347371614011400033649017486636765598980974004843511729789032917158304483875877335408387557637941854785678352491658927437970518551321651542062093792488348238384244029159271090164922209485242395131769438264639210446947390068642905695912881920151438384468802027972748498768445259846951799416297338183982761420178905857427208608789900320549690686433305450032993253909360397015049438684105239454971454119241215519567920182038386963081454374166032874195365307320234124516180610377116349442231464957561378049399286802701567278848409266437908174205077787059519142913727161673986056085279088534464812107935116855651373175729814983924886048219114373723057073949963440858724353201556457883775412438187543223989237308140077906469952128645417452013434168740558191885508058258740871159696352878837385555300047470630051141641133248195312545744398268728157876905685027529357014709947666099076770441560179859583438309813085860311743464084680754145791773812973613361678098436407538289588224423220419497904739132677535127289835162750653344754094633469545962298233457763756272874565696739754525142686458772335390784660523376646683981978088507227356885725990611653730336415380077653176883031890768045730485799593076177036526033355889570102747046241070468800854470834599452189188280855831572422891078973609031870965138186078687035552766151249906266321282444604908569101020435469485050377810567994391777648481480783839241003007798449859312732929198934000182297681379497090159481465279890810258799972759188135007881146280412634753326114556403115426628070916222779901653021024933164351112235614923957947525626883843914081809534917639320440476149139367469474807795634190187006894224027321067728363969672982040811038442804413468096035238908634836605553535118617070988396654190136216031559481036775250502088942176702835082048879085361743747492533613914101869093993181084461242178902174351297028071729158354267978537772120996812336814481432246020824545482826398524219639206445437631959545901337418597416785654294685763274154023074704718473984312442953016305186141327623113325185695648685239762030518578499283732350703277464365954418964595944405187050112345932073833171570367994393827170667475287605258085883598917521271493989473884555647533869377729097144112732684521424103681563457267717524955787405651380779297406328258531120670622944113773728734187406529072087133496677880201215966536065003630871317372202914891097657111579348157110497308138586018375000117029179039209537831029610297390018976636335644350927690154579178329497325971313064869349515674895314823536359580883239826489045827977473295772387141694334431714635008458965530483519053798927530147317060518745084499964604664063339377130304213248876163318723079325348089638113948557878591789336497165125289003014231100370665216398136894679359705494198092412962566210179528215587677215073584432134569965307990699674571300035703875030399473095347864206831922298825442455159405102910286561919285605841447544066182216418852811526680747829473037722768230634706885887103880429813174061113514469136188386977478803075096697889570218411554668345291728630486246455886422527830825222211666724083371718690592212417765185067746356031375193271030805931687155662024079603005021676466166737741689083776276441140810058395719608547032965901023363279271441393147470601536378157142617948600222996500812469436617844783162226223817819266393033071770015739738866927809624342643714670429839877188879483027429171542529332930721245061687331551145182977899960152140307744347696195935233999184897472692319178296129646512635325176049088974883958118421144150746767015817131367364226211733943902891315040014469775491192886319809817543629220509355192880505246542904864513426971858781873278972977647337230077962231695297661031995013023735922952499374343439477607470726701727075282226445039065420414879794175564952165618808067438895067272168629057849127282762658425444708701584957898860509141476174674895232811489544742535336170413332165651514518513982139565424997434769792493301558582568168460054935714074989242705356643040695084579524753331498198750881843241860646080584561644490903333909101127351677876464214691501654946090392278758715322901944258319087025684177613411385123289484469965026641488315540028734900814978791491094042404664105584926284414829017227569073673206048733479607124676499056496545598996721526787272337895964945881838344934803585544107437588950017638305055874616633149528756994569297233720177004078490904653970623718226210954627945590433984402961876364584780865526830085483570719061689994013358974601353103758581518643800638897525398963711740055856601920048448666240688201701335113878402564615493520500074107311508618527660411280002057273810821064706044727189667941798365932120219781984434331224910131746945276243545828613054183438735119326875490466729139467146171954333201197682017176188764167719342196505911358007653551794305910050961973151770211761031156214356406202828208804663895412169927916773523057088986043852726375624088294848470954009941644330118739126140982322051547999289171129150681369824566525046310839047740220931657502409260386249441657547358496599792786277287598930204498758124973208292126629975248533271352621841581540700257628591107278858014442364392879883695909881378919347523085647586642712697894392725348012111776309307743168592433966741396826197214317592369249469710306932228478297689829559907569719855024776173347805849066076104016868522286496786032144474309737984187642482438839348514326296897397382532553496179823193689882424506459955116880747918945689378711448092090431631141586790393486972353415612647768591905118076452715807659515707908330049772832446534900269500857071963803215087632899837590581176035196123137457666734940378559258859678687230597981201901589847874801029639022069844134153929308476888968383741276734597277964642567223045763439261786314333129694931487744509995667219788314120328798907872749828417891773244007192397371681654590752106667928071188789862999166892307451177170285295498853860000669129704399076372802243911598252651523209943947420050031666258576093131104185068342329202854629924283364259848024645869879995036358626901514245948113034074122260158301304837260132051525587717327615218297711754812032225430017456451736090560765187031495763058146103223111916462108315224435741470021296982319882863616456481143597169264403363347379251396826240821427563748077025826293135486399258968257233046265904815868437595812380460304854391035766830983759736237315372137608360932461142616530368591406580807222598658505041483460930053634606214607082308966908568181468468094997761638848265971800697099341593606587777283507589553939247885944462670144421384426451190298758208198924593425627900072929932311593339293899754918306156800992744087977504886441716600021631168171288927464786074392589306882855096522165735239165443879524294286863821819464882084707204581304772068309641311150025650424071096138614924596486275958411085210608264978729547702393571904180242897712971865055887829115077194011326269297860618421189747102585950989767548984138270766224511710293932210424085295929376307617663311945305816206311852003098042658347614681701560391923139266296093628491142262434620023939773150553024668356560291573891540484965692062138822535769139070387758051714693706197399695255340618268898868872692525533660965493486413885043496353197517997622792485341246260220364588360306547772073158530910966913413855948155300805680011704635950573939614469162162933075830801860553315132809077772872892901862577139190420657320199931316161977605663149551789144492054520697693327908892832218056929631821091077681122276656429397965719025440257560514520883521550934545375647195854481377013464315470967947454161356558725531975752708682133209594489860696930916199010825982290887129675421613257135930160637822091389226297087884613368693924152460494940807016478870617926800613238758168717753175509202599218005652366325587955617854882543938008951303282850372782066708035805869515763084737683022881843676899324681728841830019505285874898341865756498961620492020362037589938229221947815889102319216067960769063143188623986354554793433932489687806928917543274193472669503856502226026913522513668711329065754840035354182557779899371659007305114396210129047131502731780130727752044137658164169349892133631249090658749853600554588508050900909764748326842852413437782783953743797069650773491459975464375236126473464905891788290473212932348871587110454156822996317114947179532667104034624769102587798614252476815854280870202518629631241421970742716991579388239998869134456963438284917589170099892960997019231191120352536019136898285686443035648503948512048264375415268525762897338597704657491469425817896035652221599236728363715026795538012212883259895320850215662338862008010887238393560263509735555228514388182741268588464458042668936686661856833995880929247458953805949818996951433967977630949489211259874003195357410502071920710694328779361674500806548079681041959242623441674209207432424919469859935643811395993101818685154311501619706987317235686674881461273714446614851998645599026869041914290007026336685312009974762795281090890837730352310754790489080927138821393463547579487688020470107277445950218333812081391730831454987989016529568524045219755215322436636054521169005537987090184232610335219580514376687632565133269372352320693569617054868808543279811652290570680704749161433359885736387685808149990308844508975093641044380858364228213611156623741811374888261115292530069802697396053359814309071782559565874019808588600551576994200750631056517977986648546517305964764982859056667905212164035588908967293413287843017131066110854796032525280930826298821052365972186569306831734105217498103502469028404553295109287379817587741830880524135008441391389576166717211290996688272833750647424120044594416348613271834633069631676226121052051023863163506881464083309608920168539762035854351774846053151456875346179675755229941317832568957747869054042755294021464288295353933716944667410947061797231005469362272796405088821757208304361457631729029630552796459234664003535060886644618256655364541183331137732909753252605961895552196495551475263976126011406277521267278331703853524295947295604094511763914895611178944624798910239416092361249039971167241160398824840561044779956907928494723564430562965382849521909240736908341260572321509792542553794242505414121870033673318373937099489990749003447600513465766123748991646497157220033820779763729244103900611427220840122281690475421075424140227444607500266108184222216575574481125119563286595132755500567242215183154040881126352683761356057950952219410263378216069227729068039968185320380583468357902361531130075688980677054023041109608725148719273838572316788113263965684237694645628200502753859344023729919434923285606551002515034250947350993061203204237286390290313792442410315488078628009301263370752601535286833556516427964584688080627432096842249492238709360501860922128225654477567955275209403373295396817871037927164560411602449744050604342552463470491295558879307764977881341860448817462824039907425000554878722094284257145722925713190117061738627574038532596162345593941856164466867789716860438717747011095060230336236812095279072478069851223578739753183839905158400795978463764981879345818735071715179355811563564409318643528268416175398997629420584020639881328045054797465180051405326932198976824486151514241824116576737004662037403199382864180951610750875106395926429409844880063755440982648094474316342252230036821945368540470102221823491165027705757402454484460714002286370897260776966203542593514979847792826762108598647427704677054370320870994280915799929738124212810733655956410826434538925548827434221678469664969964402864793104746220402353539977782966359083645604268286959276589040324792811430207959421512592190342477622698628597460186726981265900239706826541341180478248658747154904701777070269096924422557727692570380416545158719187613418464024536645764882397197857765025554043916741400637183607040055409987524644450552949011824014590068604325974163632345069794974949251047940318666564020836247991844178071012873746771070681789951364798803160265521016331798309331816319009859904504998053470101631310865182658710184565048556945129185855324341261192441137492470624127040711650395917723445398072072423141667618864873934354250670859395441665100480791362424088050631599355832950295499996471707615079937833103064464405891811570847015346027003811552459071207210468602080281756958110138965312357638003578329581459601460679193672851547493879336569118771427753598627969761223165578826941744934394134095200097038811578600715377021269787110246544671360276265431501948895601459855946439453229492844734809524937884265437355485312637433081945147547251325994147693778766415747492037652976585414839306262869841288368132105092308531746061078934979200804564274637710699171757893085511612547978396873224054093136952071063387745832120172998300666922307753969718888589073395008096533082977093974857314880900335595985049633375736637721952336559058599876365403487120672143127577001546375772183118496417568971778303373912105639844287951419332484135007854830523160980427227135588269934821478234495212835669977261780878041910841639438670095142192260157743904864072257597519670105442339620662233387030091908289322556968374705342644980157218957988862485528975646620884639698965848693268256114971611969601178577213711679747457441492945799715242158219003288997440289382431642157451289722838723685644242417768675684832232680100339338873921869017700686681384549289855347270532803485877093019294613993768047072487368168540976043997673253556063829333446603869517310179656830141267695015953403123065458521298665282064253043233589192887929807886163457033782042353228034320840684803280461213826037584755431030693281492816227989511783754691548833842425314192195268873721391766599480172351271888737125611804181693599627470769830872971062657960827018698860010496338537716603376209431320870777044351059124025990328415022915143173778132498032061246146333340047581541459873192148131028905885022032835867682240104779630645146454356487393963739045334994141302733812436763080692653627460786639094875610910027240422840564727761114960531281375731899841275692619609775088369538105840727380815154544917923800219260511728928871999858208870867211975935727725687237405814692151723623573521094002006965306844298079489256356956072705804141303170864262452899266583463757872668908438034615576057478216893429360279645797193899316945742125178088849845967816924585098602034516259725931780713349857484042095153234530067907412297505505277446128906486288453047127591841154352502294381454306129548407441029179067670616763167930609580411393693455361426925191356590121430206243477358111580493003439755145936359647370007460138833149081235355682117745562810518130956639404691141344576952889723124633538058686345017915583009041630070892418529502685392924644331410027357284276544500611696367109922824115762573420719275908191247656687180954769041483540431796211865671973360774108711139657053051844453059820253273164330957178237509699749019105076415040040759818029010046717335331816904211279412749660215544565922834993034882029286241336811723817046136185662776305878963245892472906971773055409564765881233251621873108599416682205641647463839993187090924509387731822953694086395518472106003618033397339224030507047620425581882952270137833663967187648596926139185789010498181117449176803495050488795707138635910635182961987306156942940551873356802291736336484018441455242156090335733992070500024438914142416663232000093261437150013388504325970641828484914115638278854893846978998930414392454847936943388776427470001228893923130639346368059706814319113983411559486205645163992573557856296188631933772778561527210261313171084321807616950077459977186690657854893244378114114804112363391413423132835038500651114917727568263446574573146465422855930894917600799389650560531920671751083471843269109024196077208919398362743150565488343196185958540484439138310797692195824824999476168573233942249569203199746254867885335422600657766380689680478704423371335387487981576893026831756947072101620068454229770064344631053564185716817340925850692216610022777109348087042471164987540990352611111869894708620442255610657162130943828624515425275058580864928480744818116314771302890900715750172863816417084978831268945076445199976619041070081643683237321140278398690175494957835890586739478755937877406891053056731696994060984740087555947373909504243434239418463468813473820839520108611898383942655051046090731747203955768804368767688819907951580415217469558852906288697333591572188679033582074124957477559120634683016278370020008453061622494900198940472106853782318882087786017067016903264883385934484908593627399046742141394345834314076983416945733917578600333357150164941679877865602390127966850010622012950807981675551158563698461168210742820194099541503999693173769355944758047030324995379676732706640837034480809765028469921165785256139391382710092196307001474435043386571861895706918939887446719103269999245784714741563088869022974971983529400422980466261534752462799552189769177590671354953119992234687543462898543167564188122319714531082524541338670126707796276635712560760946943915896848403651883776729695468368589822613304968019876037283171857380944459990999424748631403020575734915507204975158748873297650207498894517162350877978962154729901693691785262818591830853500501587304459840588705609945651945837907780319179672518921599870107385672000155216740910711518614183906068491209708786964377514340785368198641347765502478508270390764655802382679214481113720165631344915405321359695633577898208773055007528895061861656692642780365756857907623537457836982680658019177924184193991769449493018212030526198544061585588178778648427553205361139022884749022784331955449089479799109627107146225250318172103118729641557285465155407471553987730209359194636139942383554126656103163913841118103091561637428156235560490033308589563007887237593202414980240311917832858947506605690212156073065751316075227311763809716012351572143421477486181077104116443331656490615328591835828954233452149578486880591208458840720543860042066724597894773016154276164547978990023991533374962714918438861648978512093191536363378150680059650312474917378774542482096955662967580319209863111311934452040779597189353663190169407566778271474524885522315364305706383714029742893627912913018512955213291513421291479792412316187022716589935713846566417346413123582966917057410045583035810307400945093301068371745831140181445950126636685291249673954817873434725633546538846973715266454334852928600848980141784781431789301515412985756004753360777422155531119546421227518823097024922964936406051577632098367016723273169556718967226654441134811839953895585636331980090115094436981544994993371319873571403089670917256172475781933761800326789551902646553535839653984256142175899767588970844882223546091331409383544132471989327255879767902779284307725434231150590398480683225250042420120329772592787928000845006200826293684947067820689495518086313622892822540000736441084215852359225611835227564257263888822060520473063544307081941256072141497912613456601864562113052798896322619204761624734775784543957204261222761386818939814744541539116998409913058806638880021982906637304181663172140428226339303040867595976592111908414304859585550532998522336722632351968642412093683536071774764541750385903712118489932056162888646926676922735028337704520789101513390938825097532082236856534777435026712059871773184982066923382231687568542980615332154134683360521043902444122022222905638982614307565634233588836446425127444750019723408028724648215879238053234159258616648542232819815291266772832508653916371736407704524764601516031643843078212094972677929611725810918248306335336531575609828893826611604221282967003973354805026813955720352144969622122013837399335475178681528912017967433561694731604382375164381675657264395007208443719089400794263552703956578367608476948495538298770885298379892568169969249775573113076032231327247598781153513318732003629612205002130232370427797359952799402455540639739656103157121439410676109437580224730093474208188061902820005247139524137671987157906784625676890926959064561643890178619357776624509976815193218848070291182350132793448976102782350396205146045660988362464861915072070145162156655893113638518401815796970625988826970124955577769290246984497788106604000878097377197132728116003153324711590397724378376379031335320100474002414351900280391867707783910276393533174295902040372713681750713929280920198766951647963838730427913738234848705873347487380706093036247689743161320280763157102782055838733452381234440160701199024946289700365860370358980761968883521172487568859070230202121618433775834965419326569214563035712236522143150831575636675021202329083668735897050907409375854547291167046682498122277951113174151432196707663710461205135911549986490178292791240201077287890485806644930988658571948426170820893466557285788713082386335216176522233285100059769065547534602809876522967267741107937327904931786878699187972715378141662843129913765641809086072416972398805295765381899497228739558287211841071370447269932441267176300079355970977180471946352217238246852638077747267158070756700906056861828630803068786902973716589574061922738770619118094376054883293321730280032940363334157248539254357752257492439406203847734783888636710097430492222981253299713810705817460775142851004141578353523968063827586950541762167839950266988237015939172384145832816682427771413834015316140755487313179935674562008809172797796061360319246026420859574350384365779299891674164732292473413366011551823827829326805856532154934492074340112706960421681290090880991019522184866248057000486964770947168816405329745123104304020324713213739995457057238632335154984741826119101268639463881768094365060142415543639479173972469676592214917098201255467006396844471524147133330336794794608421299098800989009176674804915219564478736721043473019960080757547782161556274387412412985103132241195574147656166397292128108482955274760351634467352818627977874353759869054135913223144888045509382436068507654606033147987291303782014409674787195689095724800862558379182321836824340200856418368693751100317402440881552086162502376152797268586492686901555745968647380042373459060126076970840151474702766185950632619413386375792550762245536627876292303555022733914820595011142848552552462429274265568280468412066847562464234319123920418857883600249330158270605238365780304725816336862354380054596799926313703786200957117159835105321034826176144058306100396728769189385600732455653792716886298091169817717460947927293311098884801708013945592341727711131512055135341998320001971754807001407949874541090950152171228376245852340377185536657076328222785029638493622609245370620246504125545318656911613913253505620123120819967549294458782756997318738071947513547275231019036545838948903527222319222500883387765834108118338833779349120246256220366580284907096471257616211994122694475715648656606683219023757938328499118252930547240822453459609830157755008259815121485358573616322167185813031232213563907852957097812279537593866286531702801629687447932633953161662842969138191387127500488616389697605460299051222518477720392696762853084402246218365642009614115640099596312285552513735651584829831256461108777940668978940655160528813487050560052047775612621680895262559467656040188031983710758588920453255612673154340867780255459054786466773215924649097256948794495457894249643717800064901875788202973786779944743686590571163621350271363223092708291328779344622952442576804078982152629717213862663162290212415812763380382732725809684401607603096318095721919752227133719863050401129628760779545691285440682901693019399563605217246200880796715148483693147256303850662035919726663846394139966917297337748339567069450327350513425683552953728359228472929933685590546792389760135314904248721274571290662530990113843565860351127230122309405024246830409810349081766374375152432772058614244103559774252342777323374089798296175279193424664349714496954519446676089457011345775299375032679455329635623518553307863338136824540643993464976796966812533175776993092465140714332131713341797914223003045617875908628271937790708763718766738872059400828740231285603317687834369510827155286239046545835647625715260869678542858466231698460205180551844022283976991466735267442977944604092687371096620965343236703752586946385501741778521076009758563930341733658001736297507332746219635266695732411371258983306700305429624233690925396817020137453688716716805278509997389177902484475914726115830035764107931480624678401466900755613659125094148692269829480020315282570584839373667107965737443202674057122322931923649751122633966674420471406935521683606291744493979964554956163432737800512621881016932574741180769107115903197228741948548651662285674968293503844348383409161594533823225008232552822398156350616551709082065519577394491972017885396432698679994983333220447248190426731990302203331208638549500058710379921860116619717697750833832111758008220801415111148960343670161704460473477959144763374403283265490843741200491765802358873422292699186959492971187048743907695077917051909701033667698653779254783343532012010543077560981147463831111167599058442273326122601385584057119030919319534621686653414098824919611389761757878742662496534770686805834474634800152366579027016967383397923699858370554895550196594851737673797156544417745864115971483991741582748020493603172047247444564189730904362994081381567951807850285687617261019250666947217638153095873557599902151337092946880527501974984883274100614709565585515154619933557694509964056289145901290406786305044811847940549934925666774865178532210493038099864640149170048807769074889289303266073179577942006171643431475811204432668365580038335007466652838235620094749852583364246785283056263180527870197186597693371118502019343846756467380604953557192615221296237175516855869040006623055579091557387888623620343469291468757460455496837905211583206840375243775671755595676829689269612568297575971319934090241595481621768433184115469142891746583572206587205072095737109123847343587617255083917096224031725977752597365602839089027624269015864735839169731901323909734914787790280432716071538429039192828977755839532301619131353856005801127765753611343798519756303585340423790860397599653593384924506972616296925971938956629967766077123365751247194246121802801991037309543129777792591144011286088639147707638466717802729626290900617889335330031384892660779879883518620646426788811362234347502095854962087481227669346389867283320074750516327203907738351300423465793907093508009741034697092829462891858395616643920737513423501435035384338622820730123628461912125654607148891550621757918271903804945762075656626607402424512094363917849249356860347390505578870591997607959526525034661585518523244871028296137059255268700698910302362660586024376545297640338977273276636145432141124171746282701943075325191915370960675752560860511165000946429407458418802831066227867116606003319515397009500802230931747403424275152846162145058224707910237437533589412316432465690968433252655023902752701099351218830808029349954145088269327148913937257837254241268989289885320671970883037120866822867727754611847625991547803506319553926751339409508587898894574104225573823009668131424364204613671078449179652343557086419502444980182985005461276286808866581469775637246904711177512193488637233730931639987692780209535601881124962635268984470519751362112175943239338967451270078373017213610509014045919674697966334954966450105196517090094544908411108488954703419859825360039629609824079793408013838891338075925121653889134910918576555932136833796202368898262929394330450732020241943701221553644626998234263482431115902618230197427060652487195518428851696798061362403101702808034060294352951233536977048232356749226568322911652097859333045179685128977104185793088161813889870131264315114395866451041990746056782793853750927065373266917413322521257395579759323046676537908040893184909812083458327063661981247284699514049796629788758893496246673892851907320599175710606457294722950020513620390804374376071232650983899112312432364957795686245852841131467789506265388015258721652972843498822327419832679771970117829965977216375155175434047865458762292328364997776977517981702829152910438830421046521802567455990727860809041651805067425817978098471571253354277659970064687284298619829047063986074807910493762414256174370883987725543063773537185869306487884980504350786101645122166812189903809985159849286921378371017042363479065728463067261770942379451416684776203109958136847821676319450080437166554502946032986295371051965385430080990827992392850739957616175986588404082148370614358782229793959846934952450457635093738045035645807390047348650525635163461089215394581552600634516998511456185311639474539658035811437766514394436241557776212306485180302853283754975926626069520342375706433223192076804225442282184937894451359900269973955078421688798682406988827599003324991282913845052180024570418280087554575387148931964252633842990358736697039167573645121354117657936923031873794918435060531101054741557932949218331886770730728192239799517711755620034271738156470668076324206341679169397262162225421403784428267623282684678615709402146022176459486814856688093855877484145313723140678394257973209788901729324781345323869144000376002891891616413322058384046321047206295074397794450252111991098852987814459028946054628796635496400693340113481192295827107774999737160245809276242851058106376821254487427411856845463380710231352046927080961946988277012570648245005078642289854175535743421688068560990686968656274880445359475434335586468928383418434822823331921284581097505435131888458333991138338172699751834821277817318888520021612777653031176075704164714854483842989262718383622676916081775640802752471879461541522357224146721063742719172310227095632089811400000380682543105368312091848592946620457893255374921453030306406079946510499582033988174221369640542088550273994750515588491764751740980798817189549627645640500654651947930800978059304812188120998593025814333645718996206605234391029095212774892874060779868990471507857161792872995670667571050199132251371593802723798712894661179049932553642159024598840553771672991117157486345130498514754571855967793329188243961313703784616354041670369936285676007581198434040512749222730425041481281025049587472466665170430168976092872809517374821503120078147472300543089599519812037465596818460466524229877420123399739245919046716633066544969462160403846430985494641824042948236556026045764360589330435769448171845143673266014265313389609962563682954082616305936920815938104925495020929514268832582342517527275764168747856916875765621891430349803185515284055822620865184875463347918559784329587894056801608217705566991351163962834553982493487421066240264793547706152114876775894539553195124281410122120475400410773078956384625539533543883210881897109488179751431177709324909298082561424677717570571177540183291612307347522788050031597531910281163560449686497124940770927274794587331047728545833881821172723219789618811767556326905074133105876744216980892077941520013447423348204194698286068051914994951786971695757138950909780564072255649694219067297781311860642479794377741669395980164857448282440781316053497882791616558375502941120601931822075215055780889064056404274218241516276625238220800355886688999842764619661278910479626642661463474650461774601810721306171090201725429652517317968244601284962165186569783007851472752924502482884600143927061061619294243128010241701268059686955124574322772511843858063919400115284857953505858465132263621324221635931525324713421834596263954691373532119653435023311337084595933977515523250975657693146708764463008503146005192624748255753900470619859590010080539617927618435156808874802817847344246180964367934604146722301714009087591508270622443358101684545560989633723630836531288205586045951132200636082127371082858101296641111236977836918586693522775550773332191901111970825377582040569008395607849860092410004697994545979105026018986501176356386601904429459335877594967560120362749509846124259223217501927507470792491381821330609190038704733544750306467517118348553040493595000666611959365077351216467763229360389541688988004273338779583001025738071569191785606200877631429754433527313841880196513418648937654291348227154557580018104296756652334420114125056533897387172614479610004123840146356217585084249534381462882322219584729535327106205568629549600139036344554284890061214920403234836229141425502568256711585049007710878840989561161629889222112752844848477198484201390137268899775621318620899001285553602814945553888222692456320032914290567170229800119392631630591364188289138443909994313567866082688199176339083671466425599642994967727455756486246561957351641544490888283261303773579038077585371018684945822358400449278999183323242517437799951217263563917552122560471948049192436532288909737491860434072858284866238269010860657852461896940959863781497632875783067537727210395030459686484914434783364764630116262726275207924599804411107997702753554896764015846878842111929982579859444729164783231776386756746225577605518888317126269334795784867408734072341588977088034880767402864365591756418176104486167411912719855486105401679084633546886157604913159984262651213066640770499806533508763640169792734282642772771172969719035429857251289728051399672560383993472953838236700764036098786739383270749918023424237480687801806518972159481899120145588264540569718923526587482858916140793845640709784653113621337693507225263862378940615441976050538261867636475059091287684036976330772031547241470143555945646515579497523499829143085132607039950384098162759878258619074855432286148487242887784065805422764262196384286820584729167775071074613185152312413802564508267973987740780474797539666211710400577761516827306418090916001137502346526956413620965550026918051224847622251287610185487458140888666747862190238678571560515241873316401709310489046872023519544402773314654481132005753457530954019383486098351747932423275624772284820396194474976665487759123838724946485391334452571591774640160510190627922067949149083428166914791312037658861429106340445692314293744423197581299828778476528891503041518650645901041883769506870816313517220464867784319883786418618976172445885064214288568824536430964673905785382942379195035960994085265017019761953977287074452135450027506839758862512534950739367174571619637462366504439588629864026532862472831766866059525287728844780740895204611213660807187309344907968697575213325607377945467185950732278294134644216965448550021467007895560487607292269511504828907095016889621246387402237141085803852917656517892739185860977121316474685997013028435838029552951615849720212851949566496124730126449082991116554238946376608520374063231519970812521906341483964737390890417205912258992825970203209784931512591379318360834157414518063492131632108004741201822821372140390766207136974239299838394336332847982180795741872779980796579373063441896988892866377122539615765345630378008554235853291994739292701753100542478479927803077083764774177270062574406172734815094357599914036514580171647042183578543063022578054473640016920655613495145251822020750181104681685272602716564181044830014241934005792995025800730756727979963924878740700290884752707572809651562326061042843080601990444777197030860950851549947979879440110059032768113598628566962424857324816383032827935781184358571927885207209248524262093135739285645225868828983002044794398491672189129361301910993582087826563887634979722276875570776475583264814413509811127659111497867958089770116927647404985905162634180677981333171761612817021435704034993248280578113439078176829785981887616319521482120986777842493433896107186175843262209738299007435423279990896171304691757930639486170785028531638050633460126297932838223859511106290621566425053240761838412578752278504476520394534050949711184632175979076351915519785505759667487130913272218616261068265817566807607049633319731530854716879599804413125064279221780413147171126179980104235370540173288319048900741963305965584572901781457439430825535340305622013933293555119863632748855225051797003051397479913734075957028595740449786645713039095962897984666053257291889412886446740311221673914493643365588645525139946634614513916058570256954111204674978511569555392560059009919748360845670386584846803766007040399879513865598966144421718510250958118472369921813771450833659803402060520684007363206000722411191332263898154815861622318946131840245430066095425036171881649003276866582961899326789000217904828900767444421872790514098330224746388392826706008868693156630398228442683419080491694478930091460139896048509590279045112177896714745745446618290500743196786945622576025147082941974846680337230970982636650604190867259389959518971764009474900155530306959865516070839529646240177100208366569044820500097746339197419133508458051869236922793710868591234938829847837251676989834312864139482115594872799084241885620983183277705315723491730214521910608096269233998337770393218026030258983536420018493396002248420230551702728799263241830792360293783546967678707744595811584482384245681998740300148845097711828801284273563951285830923781688541023154343611241305794770855009443141460852418774953561998125479392870028900070095143334374824904667173342805378915390472874229713096746591461240908331837529734815755247724520611119843966180652753632398342264358693581412879053776403407194876298176092006943682493551008362006573477176055718559854264239449318964142134350981700277491972363858127801491557055787144187572932985050647478068238368968369339070469771548795978187552357462148161520662144553107191916387873513048604109541232579367521461698615347151477971180160512140358130873583286411698119417833179576588881603576498353027994203640681800112511526881949496302485189422921583423007329197298563866801272896878988569559200560569231828111662398798284219596549060573010234543175698834801586916925499580898810072909090253910688965984653689601367750699628450917636685549859088526721862590505912580615876716630713802743305383277566984463508519341316435842810937201310095251499526181651717604996813780671645727953887335873746625334807423239043646220706447741287567381287398875675920134743061664168521252281925364128576798713026806964527596959492322836214946635791420397624809546149987623930244820428306291135476337030522057640372676874493884173792543952654202093649123488989199766436156962450304863180407674945635668535340214459338494957006939578650685302384477241940787408375605267620034151972080937866062817741518183158222357592918849364640560982028738457365671811980660704264204273123104278895062195565513448121358245990688638533894222355545082504717956714413800905528909307572325527780302192048326810524109454095726747519528050882710402992720270956549597500813417919926412455020572358775881383821471162416383480837240164018910793387910958558015189657085836158109832563494139479875202734875661014139892271081722251701149518177019576518236172172836689142682437921108826420796384804357021772869576364684780579042748786911483544341388226045961692412268918676689296276248683160589542620951678888935714008644525018294866437442071964329986355765075876023006210892572474656986555634636028442565305696190384901450865921091038693476757236932174955231678295771217329736490259744893953128144027332224567618021155000548305129376971745893333392969078986109236941374799125424214312352854988502176309299827588238107094292206325361698996454644716099343074857554921747782597143024775335760738536484935667487663480008790812189754543473414300959573945415219066632730044697701450321639203754318160216615749062242625789160399227239584619035548023822415187225805420386186535021729630178317054573857497722036305655262135046649511276520279519245127990695016386169679818028260408614409456792449664651115963374879467400635614430641335224227659411495294911591056626778656933694188201731756533336695010156933818505062791745462527458444940992865907050127541607413614813546261272597972362883610363269494996220812744822147171782669577515330693190527089475161174975095957774872649408941188836438581906992558616591300540777539418205742785634565793365511070562574994894355202049501075241888183636249611892515667568011847776262836932858942315111484854091501885874529486880659659408553040763931502456141159612893957631965592909636098713896613778211586886553510594467801631361590145730105179417332869050806320377772833757558049196923798493755552018173837560016546338774721054686314930861767371310828543450784346825221488099157617340737157204232385590538397689056683603122668892709762273837177290796629942751476516619899118964026864603298792354866890682540538661715256228859505258161927651637331940664666049668878633893877792982847226910734221576979160916841627755284523784167885133393310166874217913496083208248070289738823878692313454885195348020163771768206719039693979439439251975775569824250896096739406529997877652515006342449667014688065816667195139406037785826703894571387697152191100529320623249013268411775607937051028051098386885930719464903577765009362198939282766636796244493198059911692858915660275925393054559204379587557981755090328895664822225281295336178422598953300741128809894168843804283382568119050034068656906018335915709259242672188548937039714103637194301014733773369705996387525324875744985518404722354512796179406926621846296384251842114116730668563454819131289769457116114090775515910051484249645668835827644145990296012151087385868219020904694411478428877533813953586701951658425275744566492629224086855659023762463019849368334581336385850318437607668861370597588740262259981050114722928803509664021674829890074440847263287199787133578726216612057380265885089851801691600467181479515176230326189267044258844435303217513502096246636060379656586473955206907654773422007976071243250705152678937319352912366966516335034036592566047366900355298672808024018087404391690379136715796648111503457152461334341077711924957728832869720318980216387693109791731561824795376104332422137790501885151755834896638249636439719015470812380423631913276127210134706382589447855908184849893978468105837994717736609711319091221961990240946040854037772319424113554748584708755212093327450238800224828283491416814440795783746544566273329714093893891370958259313512181282165011450905574140782333375108671985237737986374509720988622736500264194239088483147770734532488647521322694007475618938319689595302881380491034998892465325954270400150687631238605716069180853887376316079251542112873687586424248457887191687031543122951117596768263108131751829615816683321143139936399389841350593690866017073937881613314350387514349556180288131900901426091321276578737853489360539989816858313113261533817059147213773173357827193024864788136293713801593941292779481004697368498003946535546229962889515233123358560190362278399008528864258319920683594478627765019303813352249468941275247663969085517240602288767067531836555905030541599431924682859690952092016479607609012323586246843296893482052048996537313934956757551587660658074446261534191025470251905260415933850160976980565779852224923138426308578084847336050678325225149136392755061776740291820558431877834557844874969035336967429083260823692772033609042411709450550769106639933620176779558579256054767891437115380363572687651273814859168557342869244642627276021513362774371981388013418114110899384985202887746041300305556781927972202595786405660392753679334595972717128497732654091092530590644322886729240406357805604452204051662645059116512907990224704078110875566997641045809972061496144962236562765991416118318079021307846485684815302241910625860137235972033763967155613535364712686245491327292168013087278293558069861294106636780174195351588715384359989786121768146970866578905686003831432144833834686039330873675136708156102370545223567593842675005649416137090032374942348094754699533536092528904518464226370623001401109657109685623331485070625837204186906192628676453721090423602749377734514146865046405371392870342050133454850400981215521650238944726753632243816761716440098174815183893256828522472011735401746776894906577479089682491655834604663695526455842702754105291282263012076904913570585765438449954825837585479161187533555235167761711257897039855804324999448665903094713350147501277112890321264550708633577921746779699041732140892211389775060934968830221946015513622788811970665383495254849228313117591730922118588167859941443046235479726805232436794027062811557845365242237696975957584170763218161711812582569767172403071816644490455020437540698076197328432686743588220171933899851317671255042828660019086468403111047892700289226655794122178168914774196456010957726126044122852801226484861603547442011292449557914187938826318261373998095138628096228673146101307728858170948219272321094593688365478823067137059065882909523599140878053117171037400080295026356045042373699346437190832358784010742650018376168359512129958442797924951067113014865143226043757232901090104786789147976593418032418092815354999121743067344860606969922896807095100663377062308792074771573860748574098029370102583696457273568690991089298579891412255334860887486602557209398262959992993503719004638189848154078584569228804522363778131879141664002137164984039714021140848304962598570895336408149669072056032375830378563314000199676311979903273237964051930252554974921426972417278557017972989247236098201405188472894779706121246761348213046115105263724152876586557715819792277961823895018443523981401180863416478858882265707352307463344796994918942901173996424021900651893089077620140589569009587547977770167565500939677651649615293197029825113005278516979795456755854716300837268775354056029415144491767826488548793593768078141316323093136604651552295623817978632397391299737555621988503575426779594523089608780568438294627291536265997615501986765777775152437114332229098863217958023985102652745824328579167082908075070716489130283874653810892370757020782020138989028067163251895528763802029266205662968032864376266382074369200069232415071831095447948636099227389955148639362024530925704403341512890263975094880980098999540322782017035684282665408907169650582869320814948682486350947898691076660688106603035768419246755959733109935590770094326458285653130752464158982487581895704224817807885219105954686889608303098098736056577019563004228173704429923189383058673603575688501652227504309556048846826188487801969311296597287786165731816451225094612276686996726114048917309253715994319749918656120317124274735277846745184892063843464016021138984076978787584811323462305354919263127598715237079997731468565697282815206703173026640372366736868129263229828853570346800876291061187237674523569851269152193257134561573607551830808743487456633414870558353568268013699279431185005295576405435188105377484046173290807203416329105066035710091002235569521502451990627190804615033746890702028387166696047398532322046637767742787496694011705416375693964051662211501318671174710712064906789342211943001180711595083570879597770218728891656348338076382908206136527771855926865121194292464608770519880731283637177683543711561643060936956213097348335010856512236574608011774351501587963997127427009144449945268764875568617295404894501287626952909749453608134754667201546245845681481530924994481497724101861695502296642194859437647317538181141065764881794090459223384737710430232044817711217225689973157741246070262270012897021290319924492440081713757702345077252439672597030923115378238060928396558778100140849989100808410180634134588082885442534504432443912289652033234850487447196776047167387660386111097450800209085934772212030702173616779318435782390907056741039615392242937612197562544423590578195926360338646920240445934863736112721902619615460193000531683415658976294703767145065977766457987243902498594752811273225499257549240069947031142062756680914037629894811430841956835055629291410366497036806188792405162774143288422101015921462544795990520570304821708010655188435500304709654546842560399867702504428452339294827467834670233624670820216803256500321185308826268512393112627318699629026653936586517749171676974416593300617879693809707838844662656861973284467911708712424128556668547569298836708623602373826674862437407491246277737844880857181065029732603616806288632828085112296622989562830298974241929170688160460091456169469736826088040494258938665389283406920510992371929927922777243736651502629013893688566268526340498826389430857037298280758621542899240022459706903194885877202347173502580582315581498707417074065027633735465890421960284607558936492054787928448595749771987640391203932524441043679733732722729664449830136046343629535159673870878426561726723142741370667086783827813492378668916506881676006932325191614005210402391515736667229174138767132365683736358057980527896287592081120132579638915801954788077003216715060332240425719630694452076412640351166268086280932557491891679798662899794695667610945682404536292137139820545307430502495101680492512794066178302203065829812557783046890629177815499612219653860883824187324586169108347732006260647660356788527970597725470077962545515285547014279639651291153196138973910450093354585073306983757407651055063928860354901677972073695017507537177310262106160152343870907464733994825070212023585359941399933369345368160060433029383132067310219066704516623397442826112902113565542309204112245393267632220186161362658568555450813215699551376451485778588419309769370885082234046386364808563722212673354389053260153003433328721543267982223003203120900554937204930127348360015553600396674646220097885472808638246232629172091999500821550834026972092423896653408247381312977969746959823947493566789687556825044526825003033759822324107174686114054814726146146489275371590735671823175317702995629270975918339310495624448696963893097421062760468062645314249891694072333883520374987869069605115664018335706150709618812325368723194485697569875729154283165166055235000961828702910956817214335104634830843223401014801477004140134766571173708024211134411758460194498387451178271307239644040712141953822051963927329467930874819395161328599441314968254661477518785924464425159328388556866547634704849871426914136599526566633610479332026219757442815114240490970241412644802953516382780510850494254512184155250504370018444899894377675236270801473104131787663237326341479958336235491310365180283347652947721778483179074820117186733353190336718940061890047004536160075959040091504550715298461964670396460642099555331309907776642959462511239862383612872818919639562313820501111557360271277239001436138719014337932803281411161896500757582735449020992854828621856784111522112379493790616253023416095705223019800293286297460418579154498934594048213310061575376095011830758826649635550011338634005448043274197157047645295672455328489823481545566333316118522224402256186021417712349918537714965853662200373881460642090918932137852066192956841198483647158527515477107728111234088043721138484474975722942077768543934873102981446255735815072003989160774181313524766471677104944666583194912447473364205179334738222183345636831258252803518507969033753369043783558746477687944087168840318451501493187440433503882741354763084923543974498776988523097930489727815247526407330886479133550478747779170244283197980636536733791404629609731801154637978928956028536221553190200534713835061240411928166416662317567403892466134768591914851625785815621253648038992850975847038039448165715528849477621446938829252730853808589121720774050447037744085034642890884664990965337870936067303811364691913597971195626932823073017468371883526983373860194950784698583992419068664167097248766326585568424071524687298686545987476199459859767643892977301887992672675450585378983578332291762916386546181294291785875795137846547710237890342439652116810116226403404235320691065342720578774479949728854402652744924274783210516454701932444164081675685313318282391284714014274909118261996713807849727332135395275124268185151291481475635091486266507429031292921138719322848191775938687532383685394850833842495749957225806833590821906360999835709700388206241607225582047984313660551073067416525493374406844075153162278726378994066575085019626288011041429448208721877370148120000019502278010865971188007218197501673058628609208401955658750644983920497484798523869186277281286359813082616979470843091021562495629490824043957399453368998666323458734990050808537698459742730293048018021515272312009857852250826853517640926051892355108806449589103266577383533754309115105641276584910195211473706800176500884932001969143418671145849585250393028919843336881995551583530072038943035254265216491034895661833928450421512965060325228282329295800154420811309808362452807780312040842729777591319881336074894071487387120672316704688485073608702877838673592943206921699479913205687360579149037706851430252582725109435972295561550672591883954584026432452628576562374879625392847523073645512008098725311719690660629114422689954071377470684135223912282839045983510863677285652924792836515712807322395898929081674411545405459277296195291068177312871049630527803625545898594843614607894198255488748478706484576691662176431335017856128669762415215307406250615758098268702860679906084702800941413154015770674923172510364539495372177988460845678130935045635587774803200225378135748938376363713140701003333272243355690756665723946342859782211451358183985618726830150638307993911684455524549049171340821756291085564934529755591304329079394935203245541345981212879332498217002521425973754138153252850176245987661038067989495669126342291990778068789697179726608025731261831433632555013550285967584043521821233042123856935314775251192655964109704366385453489143797403785550016923398832531506575009601241941879970136757419873554584755962324283041533836400722422511359322470751836319415813664663690306332706842491616673099093960875060407674267387360839304197505575809190832025923298578388381849424979668006656168415032680778031896609352309086877424037062277378326492673566486194281593848087587488508908927780368288184806870435013496236594358060722390837740756289540418943380149738176338220091450585773086324610324996080283600789074613929513991365087801079372599465905973289025971566251633565739776674351014384698268558295330354265850713745755392679845827173146646567576332300499544393192259849488285319644032957227415105210620664186994346483455295810628595785487460088037456264552582229239867568317346732038462335736000173033643237094054694868469921852858499909983318793833814609233690115441732599977457439177878744855299829506050673647713250288005065587067812079547709806683335712278817337589044668911535215332787068377362405320135077878469304175046632152497624296292400060186904632370498524969266160838140080566056427521749108045188052243561544809876946866910267473502709397915591704109322015132310727871235387362675455349290980726109746614454470487396183108496930448872863520211737398668749250381741651700615136349060150239915576308958022309128233654711742064449640216246061112284784820671102494317917709842549793061987228787649296859127753941398442944190630558657442687788246230272777718913407382300506481658080511335912480816162801547644622889109397787843218696404842258715318176491739839670777400050739271063234043107352928562921981082640925414773167642504913902370285490036329266954956262493448412269495694131862097021554567778895958986479302180215719479815304464518556473664905113914954594725964057193616978659538219919051074143057382829329141094743790535626424703782046264433806808912835801839017999454189530982452846211024488387090769760138404099044596335629633717163993272565283652743660247827234982451314103282527463474434308325862552029379171706360712436414234792328282154333998795864682894241674010456793692959744216467190951389320145259123541582593836778707130351859711986127254124467141893183343566395532264436025290343993556933148639303869564746631636203292773126917670241758712998698277561559719160904790451325788931737221854909889123367679593638333755661562745873980544470770623699486655083392416693671172895430394888737945872861487399812506252787914380491041204895554533573769567869852544553123716484301881645198032459483730537440629908831719385849649000635573043485560541806802664675553380161572711510589096746908179033101275800329463816721098870447973212572954374137628633686944010095820721516224687161128516093368313970229455195507255124720105530976780791369746422107823275576957168725605443062504083306748624697041166062336374989720060276910176384038513317263190320170932785608174003108054442958048462482380876617790796481923169579246276145653680972285853212407065199671427618934878236830780965731005828575535170506957317789736564197041056624097925117737653190356023137046085482460831188560626643198055776936514499020969091225147422731890824793938821391546674982394925077721727553064666033614465129381108564738762942229938237372430033974792166696144979688385850549750295164665310826361662572041921094712651737185791782568125697681155637075637389778965386766754511470174991009204632781555983128407947689408736987566758573965333383313985813849592171744440550332670625880215513474343656506159029361837996993363964146042027033231296317572072678422949080971820960913658303823826555524371312146507684187370663992493052260728294019294080990614841963317264557416300121763996278362071597532398378221238300466979448370962769050721781378653725296716632517912304870012442692575535931644231458676869684095709261338435057438246459004329891953181446656680200797109792724018926770359780774939724880002214847979285016915672238883755847668477293304127943123333827014968513591588845932572132859146317504500956654029895398063980328550368579265416324552363197425889296408140517526012137306389925226513757587380564160978511439156819190820834374117439379424667733042630363438774180238139147649693324896747091862927236080912545599698397873706091665499084745942135519884901422650339687488945308504182748541705808625762322543300551370132156446112643611162318120746964066112566794771884801596894213986329691696283316047723482568774905869716410351674051494754431122573840346559769145014461498159835762835339699957279520515652405448681481670716238025833741235196941091866313814897841071380183087118281701675105284850070740205479801498088722101687389018738776073485855999556272929585251502053638341753128807664910591160225901759626290444758042152839296987059651993775505780350849056353642294575679574926682606811454039209621925080051899751035272799407048926742828047083023033711089877338069424786746226603432385346500874693234152450050690180167644374201353453587503168852262840362885349616913911595453296446794226197546766780309479907304170176603183350274107838544432198308501830722448154436201611131283779349654516580263552239377001077477527458766059214129346347351882575123217154907498812382746693308528796208014431144427886742193784647653918119480128268924826228178428812243733793706043117493745609942913440374869657367098185571123943989099165051603297963694617946025705350437117207755638429206539841819337472082702270189217370224747662028587820302672777925647332610995491702176751045662504774435011155020201605347779463047663085025017123018885105107646940649640982673546535462644037652065596856505802605255440530547562999092232960391778028935532916782376673271999377255214861551963534623569801066005379204845925301117635138314161181883714265748146272729928090399531465322949228422651777047255216918323881308026192069280288365332622758986709564513519724552289578612692684404652277702524633201259142098386086435630366757119397999520330772716908311953071425889991494611723378290678377023636989904685338481081180380962202265988646999778961107219878247861548120231420560785653519151274984931103535330671023764982645558613426668265174186177635910613226519523259384874923139892082283828572005213613060314655795731509534446287614555998111208574050526948110752675927736631905393452813375183878364111024595039941517007513513606798041690323860928735684115551494354486979680210887082002577266148814146999884280846056469723622258600651890651323201277504127977985595898996861586034192835346828482913926113151488437494942085645704862942507044934873417244378968982403805563022593720896372846329559880712917791379675796881219432974602670289789022059856674887010203080434428309886346976707672078183165088180994700657544423607679387212318207006319077227670845876624009590747102326023616933984221769845641911442360735954863314035405191764252859213502026401896975829452604303079223405751379389882834367860881855026982867601293808418069056784938700621225571220538903405690997425300275708324632641642213652655798659963766261985515609465015386479305042839933454538074298851977337606166371227348881988453757614058931007034736111905154853523544332890625289779430447560686286051246260441407845613706925485249195137302346500525467148424668072392072391960931212342191633441926952361284801241647184275730295809139688430515303498086397910885786848360091728731189545360442256244773980301475483713150702802365873054449773704033216890363621650719112885765797148431844009776477627946814470887207608906479950785793348326823520216645859533451098761788546790286456970643720554857500266264539299250868469419548196527539025619371131715850651831169623071712902102070365126220668061095956062778337991410925547145550200687903297967395919423321109668420583289963439779404441370554849784493158820669921347446863860887747087942517472210237257620537167520264436974866961522193138036543378196448087829537375782237520828952384491074226339195551769113451560611788749516548948123165228338502232619610809487078638934483247751151125831509417575490947101171541341246906859213421709756883346311831000732935459980408565056331827995743168457157667414455590554792454918922304626938763455121523239269026976611815540063873202132661953524200842970116867386618321704723647905913666125221588914949831340810065681522003022016256627872594568860077765505810234285094766303676788688424771502609908688992184446042373005337332053583217160474092602453937158046745299690944131240881219297625851785179418005138137177077064836169823594941499672394811901442187068749874408333354051566015383719774666106312556717799300221830415355855360541939703367581481518474646945528294420587174005330205741785717989488201478913374741455930666971771065681113205047084949286634826542023003911996151107718061637875901741601608194137658771793692376571614205806077739976203977470516458263762525372474327875542951763023312159586232288093383969994904756819635190171338951978430028033753150340677558438675584821002542398977942763729198287578684220210765183811253486063247344877794857437941379347676728605504303152607359264091754272552959338826816395230440365171527648627351934108853631367882888528418256703312584885184075972007639311910602983938386114069193160072838423076151714587917044371024788507153988628651023685602122857043914275416741288977346026527326187573707307046190266607699920446715888466396439191661144592802062867570668793857045247415376602939089511674218309379758523293544871320464653454745430024976431366306999976489556708383949015790494253730383273895198951839518827061745310979540179642799709840020304257977904797365016590093579119197620732670412488997941811775126776768336859851721367171492147248321932055164077567018325183677912928205420912332565444900899316973958866814006146442994173504742232732718914590053486349243547322758863722547447390515742006109304717977409746838127620146369967380273568389519820808026151766805256317576987207066523326927534152844143285666918684358079436963782794069310872534689774088877427809212978193129790507302548983513952510432066971274334145399643041268444267539184188767264238700619306465396321262304905801940694227271951271211081981904785307018469708316421356115446171485421459582692867340936758400987564872679865863275050067999584784358719814363199402884806678566002623424537240942889675799476169434122305146916274757238756606127687438236272972307464444723055059795904066111663490137870564102629084054008910223690321167353755130050507406324780470531727542120872056394842284829779574660268425483791767691950765483480077325407889088279913052080034359042993235181864211183840885531264394097991207079937606482218256317987546587060919518690897728076174671730908497743079290075863968446974354957110605762090409178213807634587450003714351696427673255133982778315390518436947912546390433093078969246640222004254674192124986305914937558615450223403193508651494864831383303862357248658693724805510479821867423581288470804464623340245441853005579758755611257209306478221187869453149927622201773894188189512545857968016802807512155846311105202825709151075650238074110069049244443430817430838492484979506635592661477662596616700995086457974094175303795959259851171446183960163810706351144162769096207909180886999419831024600919592979191619627004898396271869419862022550515400573627091345549692048050335162306966320594186310346986200636754642273080460230181375474974878544165127786895199272001742267182259081170601351069204386412404187273567439980894936783908397372730589237702541177264329380620251204239988485872002557405940142371974970376820392068451244425921999329426306449693397447846706801517483227453696732755537056629126310378460485864693090589439752699083553277410183184039551930428637378441633248879693670257214370046775251474213475843269233411945020858196517239657346638386681883221994823777590482243898672518178658006285453371482353792035937063612234300643957631879202062917112366281393871487533431556339079782131910426766200987856797681852623663475793891886832899931315199974847851572885857784636137894741984872070155751571027242978040986409666830687404647567066246684443098798760150058257391322812607622362552317250544437248303457149976243522400838836440602134599882495590782385324489791976325847132438358177037877493284475470139045718187471483230924898304246995507922112850306926059551414765556503016886558098686415154164424384593108922938398727988277417521499392837162388589326617039147101096886631903059516743024567538289623609899719595562843492696707874424775015144357841471304344930502198963530603514909995494938243964049676397606661020503969859505790843792617450919447513355183282908513962732698806812792539619953810628165411496579977020522655376608322120167566443383765888215279333838788289471397517676097188521331172147994279834452135155713388294806535744751388133048926905774761324215606528741895518607892678707759989159612915167358982682373117657773303551546439065480098783730739849699786376605334365751392853456839643540039046536473579968922792719136931291883218625678617992984351893297282722437153057970990100925098691401149473377282175538509653967438095363165045504569813928490275785373819479713538828276814380511923677298335756668288788407540020501098701012502883682651372026477613626807565084005087089595800452902389781419213219814323854319370760494115179781929749599165747618617036557888985280961714490129168794053154146809674105066600917724998740536107433728425312444250620051985911225480476040186499164846046405120835198819639230076135804281228872529461294310858938590001348066186736560425811920408143862521744024400850758480020950777553240404466179396927256365699762923764332790789579121536390864581918393839706662347484459459255974495678589417020647615278089674934313641480024094333018137364443805111232958652632976155636583448994435357397411902554574444717151303526923717752810166238390265353951085543777716428505090443029280534386864011841926431358038325919824130615425308921590029321417995071041604146446752146908125294564283413515661956063106275618521822670377440145749131630441889956497605814346432912923797915600363852392188684579843885315004623396467155357196233923131352555286907541852890822286172689876402261944377996349467598066599470583417361479066584008498233204923641463625793659272944715731579472622526562387843413563952650158465394222416748073344541459363515638341107407992123682953177307947607741257314462653500644731353155146655268762231280638008786816064336779234435246199192135792427736512843889249736947906128400261883131430516224129949572753376386393089238989634818384819699140668037308239871924285581856637911261588906044194658793298108874260971148230756009409814556210133638753085306933102217159842764802264634159617001715145229851313747316868037592973890877538058051635312323805018577928609174790358800924347133007375898665439832147302542794593212379309793353024221852518070675929788080204875652133793036690333589557436038126394952751737774786895690854055707580999409072348768412613916727411241112993746859697266714761168468008000612099132236371365786750030219658328216823551696113154274318265681026991750899869455305810921161666030014982322110538486675584447781778670190271451223916291999873023166267617252877278103438587032297435867621925411931830720104513034778300240965486014316941005392340964337937550500403985513714102242433819331295523254695988676934375597455200243996159810457742576140247909702146134305306097281493354494034763860618239048293161118575361307379164951724971010060547215519962894279871599512178118358977713634104471689117159302037912448026725115439666994047840480986625261501220890502808254691154895610191737487142525823796752572084036657820827802841509380824250067149576252695647166641054903425388165359420550739222434373009180020770231867856760224355119240563453126828007189429159846032249285222711241048484426672993062906197538635840364407243094547860715990818650251868891484028935445117651653340989096301358391724746857818590070537290753356475062250275167680289724756701797105169147597130813921301768091459458349550669152079996822752854055902044915770587521533064822273376932287406415953164947993765103853264200305149565467589431595998796046086912804364505469166355854693816718916689053684707081242783282042444024090719370965941029413824800502483457192269085534215125676627353964837815077979093905299174233954377879776882889463229963406167386136282620796514180419887132832429540974084143685679871300260663849212652990697331156297203534846121525673477682666609163439259530785745542105883323143790445282765558808031920541862783897657039492686132413146452568564709172360469949503608029466605101573901704089587911894087229064046268054926530966047246382639654182320538914166374180776345011463352486654765788578339200435184355890939783285122733342990268139564664435269358392015385002296999824020066800768453835026474587715248178626673706544761443329230113170331818549222215496451923583695330755942953331173815002034416998345874826904140054954491224899662769098818074209462999956603757670020168555797330471172951994851890610552611174323542263603868388702795102542452578220498245176031749459953548842392997627512623238444712336669995581832038147045747567468604399174234971145136250002257558659479002115237637104523604348526178591854316834924084385235464972874039985232913712052586173791259729865149106836191667352821607727635076874349145482691878231324902315778093128464635838665044054825288516471607540869905335049733786018079957076938676860852006380918656638233039334895430417247902121356645126620323851693306227949720149520132189675820191882624517437033157498367355462644151193481067944202575504441986044963459899457809683135043664806635089543027614999777011040051763009439618025507938972245245122298728801698882441575051133915533787038567436269355991159608111263851630311518215487180214723650612133141010487302779974723105449241770401526642805147481101856616287217904108666168490209797058705418786897364654946179610676919686735772020550902842977373814652840074649096822231717248660215848833736973473799476002212711650379646387964568989199189787592455812072835730692768572359329518706732650157322941093208664631443215027665179222313670866624807157082484117272537450260853010436132233943279440490982913329182152923708824815015990818155302662477805530164915168388646744685039220607651563894371988558299706189549282643393355751910561407632489544099648382393491557404963133491644514486599501607057958901625320687201201336115788174165159354704776319038374585075684732510861016863559352863816033836380116906715764265710076335814387217912024945888860802469144744491867441623762595881927939994484481755866768756226468596266089757001111874231935814719212425899718251956238987146423592571591616489002108484858722048281850903910851301365258967848924720513418202342438374487979974994114434180390024071004414486410754485065217423612444871956584879604741028451028141764644443587576134497098148594923163407668403016683538846198565318636212659478921344669560748701069730724014236842062861663602077067986304435534072690688542059433339047999886036615330907335769169212805587539220002696089101435577837853140802833141359617953903124816768694915995130463929013993939739693999318832672684920818950089769852206676699272017103640700964578404280434103755205160853562178224724826383654115189674897416763284415083131005766126807853481360283214425975227399446516541242359495213863894012129121213939833800254824157856717246443552692162975194920292770105784846077042905243174648652666230408311076258933644031910867914587395627771965765679938172635793913089073456952989309588088139490277572455642739557207178387317088277260151525119867001616592153117395008529800433823596839679774597283514050925952391228752393376582127014871462681358113096956171908399526105580535048320045710651926285174771683073691792011228884179604903443965867269561148329287377160297156713421627449709509665113752073981986944933285662146664098445983002951300039377701678114597574293516300977327372204311176383584523785968785330316825615288358203722500408052837211821801037681361121057879265615403138577874087849845114050705262991818579220417117139746750983636197632750818035909935125481717810800294870318417024251537304766506078449862317721479355305847695107245727513405299735754648998932614710805259554826155741602516263709095632707798715077472385000573320943897570251082849470632199085213592040192002339953474653340002470716476248912631124083384494951252422262444278163073471337563620341277688268623380630995389929107371594879370657891364212954326031900577371356994131092495442034179193939050469116829264343160286710496843380122597409361271683487648778693666519888951192683350632966161509394553493366377450877947693795018887356781311726155596541584811922113474786353886047881042497060035409101127514735437146604212497677424726502641902756647325057546830749608069653739710282025518528307684047541146596234448546707758914428715630548325918598526835854015378240308562095042575172865939809884122323946946874839285482246128889142349977215966559813143519935655517628753211307232538728263473752732312228861037359664043062158397561169078727519292244113520130004211455248028917549714966591080458100097706023870756754925292767310465460997686761448317253886047952804850483408732322804185245435091216477970117693162175509721302612409661859892311819873568104732336538748825695193079758410515865547265834330499347743171606062642311862702517871995602019290439504183547090578199471155026625608137832843904006327244113481040982364887498139521951991849195578685066226868824021990655149768903748327968713431228117756987841837019155699213036950120108659937445684915481334675346606238086995509971438266675781558299188490748077213959600864491150324485613346843755321312230078433202336351067492668370824167904724204339505189020431992168627018915629688335966424046806242767568043427515817140396439094400994542133630765678007867025352348186127127646009386550277127744674809836307655032011988696028893324900432409854698634300588945872866532860502131867154244043619345435933558119407820341560494927066413445312099367582083965879818618839579113279463625852544663024391065547969895420133457510425829450472324638722863606857045308805071631351682058602486616589754560831432833725141991692509717279810238580914193528584784758348049371575785047248873247187381297535414026791970086354876074606191544000255073554804717441267639178676516438506700995828956102941426287576145694701895065845882815285244805343760031928031246413031955184939383050995194197782933962661004320866770228192493748518639834983651076443224687552345334619191303682439211826311483056447524545996975722503016581642041442932606345679422539419264913810766314511629328363457860212674158559831991181100396688488883298067197623406281950589894741582846418336062067754352208499328597116618315624219162910218152573374734705213430902949394325225656728322232570064161529744556009087333127484851329140276171180987967002425969981704238962697583954431473366946899142883927650331747804522339814374999308232602934859626198631588210625267574626497752221492988229461102078820006024485965138663627381296226390464892851436604390966512720690886763547240555966337975903937530056322051643816006117125804761713580056305222294815490768118571104808330786096197488297243909447610502213304346841400275620703505692855500722335647263927462889241862812258320949511369326875237049914443078554541912197718166477513587077282645728353958210963989081050517152950290578893885352505985224683430619532671317982405286621589742869142445395832779234124956515895113653226168810840111332537428443283496096002948438734618786610472160708945523067446226475388378929732992206061973435494767867106117874620163244890616904150395434589082756242462224742882801783777192128024907152140952249045463539263282172480582599378820082258602601953944233415946828454058335191032721692942172340642473997225007144114395633725186557554966605227848213777407964412732544099151605833600278311428222121617542141937554433650889519426574600547246268365549030233314883491467927958550601836492827394829335257693823153573071390354087600768314012501922428775558794881878677133930574334964329891834711789112373042999250729370281633720429713024844110532375986175338452141269920103859603398816669658399822024447432587894166253885853719983318945629237909542533741340437422836162698235028824296220071035372217147112079532235137998697803231376796415262974343628709607735741446594690315223224718503449172786760771029190829594465256374928832618967455231393206824409030116898684597606233212481515781681431484405630780550829757924348879614949570397065562358437149968477446904614417457633709548371829750071982867901748607812099592751839292647879404708812298510178401309460516610122521760570762036301622658185304507010372053887735703986646399081348301607504707678917368893486839178643706218769962004694934740790820413670166341489469798123466483000777132202450530028641294807863146307166422127671155382119975168516287816684579679783130219739986894716990582685122820884691446733232089789318450669982042598553629277454296129456436146642963906608283127935912913523517738714060336866027414802818547532409917894252439052842838489875932154560501001202096076643009729736309954711028776559130645530644692157138590206771617558599404469664820072060167966556775364490841937999782305415662225885329060132472066456050329134617223546986923832621787303772115401324144195783677780267996585355631491877190709272649051541519762018624094086096413300429024683574068433662179725592627804276599974033414598112345511726701359944936757001918983616685173972996864885574563420266107553150905452165717726680078757500934672051695864827145461257985708133127027281286839259191404687801275466625405228542520423689985337080235374901191461531111540779393410432727979886327576537269037014091368927598415882829331425822741585089459251790733757805175400449294470686573874463938172754568669959891722004703153193301880437894350428513054037068745288420417942930128843730255417151805511605344885521037938048179268548789057376505417225012383735160388743890338525390659194343087635857118111019049550885585612935943544843547392714030160017702755188105101064982155635111767699150137918272791969266513204052540466766895489486475537074503348698168012440284394025664532466001748122226470729616685759195591800621083775575326634796812357750034098091485933817945151860860781276126806505183243411894279577285730013946923747754759786201885396289177338507264223578024929000029283292872061525399068097999494781056980194794235392900658289963194912460324174069645858992560110487316240508175466273428514628590655001946068949067159019725146779250960080631089639272831060987217259525327192660863712726495894708966663878442356160303922680711494182985452743250769940643859209574537093744463601479971043430634729758194062802023097506522083148049186486276108042852672811609677951008252380157517141456360375088629504076828485935157040459779054593396990106042582494586921120094001674650492719270823367699237212687911125971150633040778741451277452531981396850852453157193542154175716748032531112473782985790908776306260678680740279372531887840434912065122325874517591383153224711842889472898932405525344159333989412642674722503142568892436815634672389457735990775115994527054709505336701027824610406762129082652093439380417923581455547001058319508969514387352845148967914606954567472127436824834304600521508323574906872109674079595072022687875504982121907256872923481679372221942656261645527639039236280987413307286610476138961772364100579242653225018136937962286301848901763574125803065519938212453379787366748555373614579717199318657634271938631537433909820641981773265993102263095990072041150361174983747682844288539390857703466411487703730114722476917973652527796199531891216338251077540100950183355145249394251778719314756475802337343886547744364997851574733124246087545712669560353642640799188806843027436777968150415369022918937995420577876597821076181385014940509290897998098951265402731208591789526857644284781507923361680109891814629941093878534166870123756955954027896430522084111663027621419636811188453135008933227052014031384448813491213122034871512121167504520104943612196649989419904307793444726932910914532110677241082001697395134120788194839488799606975071946041420223655748054836229648697542028043772849494360466654522891224601096911247406110103642547291309839817861231383037673483261209581133944164292814226236409340347510737664797432495989733128821920681836077396627453981666323854207307805844877484003377689257571515379768660365208349019236784917090843196200673226777668411061903858767307390244852573068790801473274955517295473208384283295207692987218107510697807024837254258525960314396369029502194593252341745142964683903187093556782491220650654759622890736114990775450558879150531164623589667620407443798934684579346338375904982687596696067875851472744164668309325901209090513048181426429341958425417715672842381396170817350232380344531687751898470492098427085342234553907655424521148395321288768872095091045570690327476202673487800109609734375940064541739173457511106150290533998576853099470874195601912017557767578067171598270191414774981451964167056864487433173067165680929291797319644957824418541447046709883246648992600960190834892334420674563321918059523274634200582921076849879470270360457722988033872424813980941118319068040782602304801907550875282520822749137978429415911710252331204801245245841091100634348836785000055161700256149631011656447413162049589695660276507391268921705217270385930138011775896296289616045459208009070101435560482895857338009283930706569283444338654873055468587704577494244476347590516048415988775226630726038258356404195779955915949505863027510097357751995015891502664979943935713652572144727158330524008002177026401822263690206037142754437428053984289331365401882441447597596557577230677376712913649159348834181931291076302150942085048840812465600638446346508009931322859975432270263501862767533517802804054414353439215114371176165843449119237833998223862952808211085769091721435511297811766855618514978227163630063449763867709950885410005972002142815037528217023702571746534603042190858041131296009328811796176574047937429579995604453630086220479880443538163464476303998727709947885712782735420433794372517397639556695657159321025531355991629745897675098006897869163071024171550355390882050284285083045888425318582736173856963519134005915876370046384026252550913225472972164213088006362307239178325960914124324691610071389133423905725779484907207488537286326818546419716091207059311913956225684104462974976939339949593812933420463563971272555557584724101705978309677519209810674382875473525106262315789930970911001439275633857968645973760740434586638050169426461205117775080424168777239485752233855923696318722310729102800116660137751808051973500159396060865628310772479681857064089941077573576545272604502210400682530809917750580335274118673436542588838226664281738294976816529258421983272094477852548892072979412687734157611263310350847531679003970443361373638530794946495170283432024735490465868570374313683212729724027863972180584715854601754321278071902262262939646959574279797466261052686823029830056868332629053918717141949215859331080433481972549434030307064294006350571322458149730321894360703368431231909194362408253419284178891522964336847388197769853900574621984669525347577001729886543392436261840972591968259157611074762940073030740052356278297870255440754055439989507153059816218961131505041969730972829060606718890116138206842589980215445395753593792898823575014123474866720469356357357773806484373085732918406210849633097482768941126867522297552323062395683362631148916063883977661973091499155192847894109691396122653293511959787255667642564628953751809074494936309292131412764088851017042258408474414931911865755825721772836144977978766052285469047197596264766800553608422096895177371350086118904524330152123769374570207033898894012337669396105726953527814699719136307074643201853864071307997507974509883554659615757828497475126457864411308453253231494054191726336489964791203287817189338731781932491238234218648271763723022561720016348368584955658165112489954468487206936219577979434294946402584199390891353426698523277623931436525967083202637025092477681470490971424493675414330987259507806654322272888253223599376270503983061723265730664128465420482044399419542083525812731557072429783001100586277303990432463942270779149530320717669485722880124442767105662562792072453976436697457645496036607226893056115542783335407437757044552889180334765210535645380836721002905117496116750921357009667781874423147637728375489041014317041453597644026019353091452770066045986580755566037764513106209387715649057601501260885511311117285349949799392340524571185752589360706418036033731020587361035632720265201454066209203485447804181190676544987051032811086300893755861238070171018675147270676462751112278370321196384461215027925832460559045847109806448743652772766200388546887114772599651858489024096983884999164110624030860877708015911569984022900634493319045065235837735659026596323631435684947729308408728253312359981709452440439443996920648322014754656580454961488146597558465955210070960291277072374399460981769290988681914962781521201190396026442342841498646260812142371883726902075292934010277795587774178363796456314460339288339139819612445115683485538769161832566273563136644069416804106339791004268218065172541040007809325259657733305083458887224066136940206393184819586173210883551655966694516897846137759772074922759182084449070771936181199822438863455608103239195190775270187618585143250541833344137566281455315534122799621252236805704739814657315411311395267007353974794374563299629717650066837246031326490559712509841348854136754316326073263289846113081018894329672685743432796994537402101178391808837236796044151360499019063427414291487109700862875626199801262028405461935089077489604408130739915630162465710509031678383733288983634184782910737954069782231769493443747289605925755442251045208133670663719010646403767498218257039593051050494382150167484543163968347795207371129740641138484325122245021319201201218551905544094542080930003990781979342501788126558322439460759046700396788017735973634361983367894287527237883302656951486246706274679528094492939860015762208438388679507109086059684759109118929008703512124108644819125038426651964302678961611698618730292375622289551728748052490947328104778331767715184096055456598654326306872928505275878553585633279337474074513585197531732764369894404988535385937279657469334159293610394400094355929125285696785838782721752758504491979204851778612257670803610339546118061852791525580686944204278690917026822576790309032995426134974110747828114261668273227128191264609838172040234143103321222701970086894245796701865459213761984668692092562423322466805338293920365836290888130153419199378408254695571314051740720564976951374402645590273389043810221091598830749640149532241245870978577644726358177714878550409518128189870297406271371299307256196103767065433039889014518359273169315539612336202140238368756759234859969074388241433018311929692746304178911444149382892675501333378921523184094907755821060664538967125922613062005811390112491082660617653643428670985309784472981611445185591929914940684273170691816692311191354171486135590311571283766150749134170095929413592823679468847020397212504041345772209358239672941707476412861121837376671817835432925709842082763451082278226037475150124698803289339117635952536779318493677127175630051285835258072114940257933456888882366200477241711230714945538308293555652499427433916984017157836270434132239069669096028620591736027777448699317220884970938174998738675183180355544176693567027641242416781415416271779281353158575903353721167560742543655443435810053815167247720791319216499503111693529305950509586512187738099059540300380282606362092641156378728239827607446288999408688493787438352620519292407605833430725651648057061966896289311254646101132674903354076060422568901191167506650710971832504235078177407944107779467137799351339303642842493967417151461927785608341422468099889192517506284411160386160749362208546685326670041416888031194592871628647159129971051997277307750773960897215665442220740654850375094284719487422425884622446498232439665068644520695669366174205812818422179451144797004096245735243112025007683520639957079042179013182056498930072323632330886230175266954092014207926614974056486260270357746007859045168284905397211664283243985836620737074463744228998697921094374971679905200478264460001059861964830348614355620159275093536174372591974929539474580745652878776538020653376331331169812902283576960113860670254807753465153335524994031830023134854488840921679878472587899650634068685730407694512459344975625728380322254354932930198601063557229458482712162130518692968137607483265711934194535709942301163894263323473594943386273004173901080697864974881788433421563128712222643449776178395144536106963026944275137056711495212204356142405680507181275484868702809374999592046667233436635568346390304052334340378237086783078294395524979905286914787607643401870164511895534869589100579672335426397438821696629082214536615773741239584120147427069405859695653187229573193038806166370028399482364747476128873735869882131987744660192739203708376355275748153087855659126754877257943715686779232474530831192629140871729527873168238367606459750505563124203092235828175575656894365179981614051552667945595052080978584575178956602209290352836525025762801981716097073188073812620149281240779086950213552014877748820624601770932148837814787792182013134890538267174404274779397508889624827781172803782674831835677452150934153301876081323085242955077229723806907286786354067178739437809061347938628657782047922464576838204107557122275012720275412264628557697258965131382626362625711182265038141195260214981995897890151023974729940860328386563640407976796019020008037728111806955549768260095652227856299725252340006668201637005327206869769339632219144034884484629004082290710894791665086866485133818969484141888958340317228263165214846892571340212836195707041736551299920529229806461800858158553768798485448199396383947980735773799069352209651655510155213874153677335002579793920991671162451924555454137104505014898822014304377197920039917248542013913850040004223525938675553174752665382569014923464274273567575626238970623191867483548378832245249714780924761221815744985975207050022450736182316847658368507263610614723554119543655011396599442409307662688162110194483944009838024917800269677815879732618180081356128138576529330056370653598970443391839175051891855834450840869352446219417025833392423565407033502084057572866886628754260573963850384634502031214166510847140005740436473015006545485649404074307544344424371206338731297206761510073755379817534655000046496803249202625853591594932669358326129418722738540034100288346740645610462948417604297260800224583428201152387834747025550624080292483811285148895770484157409276677289678560789077305437513761174771312575767121112807204227481393246847822573450370077506705123819195335076582526651007207328765784888896983039397646865408278420848774749412264024874003121289413679136855962536651997244894442423381453265240213349490931479568759013201083473295015507135220810159144804833149297077922727196884477437427993967600924786373159052406445745964888547173097983513195295198111321524452263949385064866915353624490002956521447337095699509723495891673196782070690969614252354160460150120921930164363870130804227303813660931010855546840078026559934396541052980040464434673661690016545797889959462805594400762447438398424768045734858751010234877583612756314880776457938436844358894582406781479505334163449944369108367609810067534635887697975352643998350460946922844079528940516722027058988912598672144153536688741717749017002830736956245119285253029661602077879085896900434143184949110745849539164092943177884939563867610001118385904558950113636798499381899125962461405310901663908013171099891462171261587497138718558463504491305689297194422448764395543248087856356136741686039585280449829334194742236140096216793893804468784382738095571358236255341043110816058412962393216538600639354977769402058596960925858837133847781703580234997213948360430556693255784881649221268003710870339317377522434674960553166482515544776733912160067880523670588327672845625256901194384459588404853371566867445467702172937772992887159988240494043817071252179102132203887762990270939611064097140281086067698385446925846034763185469171666057121850842847372823880501984554882010512303840262397911776732650937922547103986215159550866653016706222429298254850799175347851148348218106472832784460706510948094935479191062701725060137000909175222740578471895198737449547082063450638144659909654104537620992005784454452271752418277277933948539777884455238634723581446142979226596233338225227303027932998363729860294440289899330401076749260227827359736194093959396811014565083029469266432483578582667710561147931576366208198502733806797589764505436063001676459466137403821497712634417260454741653520517768093394456542604522681801035988937213338919201106977321503408307690226146657228608568113876895027765043674722238715396487346379618718013763058430573917877466045162807843926279748132191516299029922702494390985169053020757552627303360560736598524875261330586808668547683280765765444966384534495172353873957234924415509288264068415878623437165626234480833796020923554456356045629922328843687175978327461062120612936181105078616435002947051528271566693814667659912437560137505956806971955420149083317878424349577702140727965410279587517410735468817773959376924192761012451149157918121430932028112320222477162232462344922729342511854029911698925451201839532854883687290540139207150733523984731940785752753852382079314477163947278521917099864605757383120227918697206594334316301082952568198262974757275207682240077284608194220164565830131116609862825997175564624878484956506681965054262370272430439151705476719278708429679298806977845437222423271389262324046682388502456747327628155804298806982266859590665910318388016593639821387473183345455114450351261071877481174875929848933336172212456792350584659080637145807125123489482318649093623987105733580164146010951156230012421170647131190610975056155194830736656237721783288717487648876119029484577127058211158159511612757014753518695091021255853918899991244355097726078513345530085784959698139805522571640240209188942502514351096773194085015897038898382741615174912986317740613605546751509350577221057791610756941763383560120728678052769129850188546255621985731161735441578327817288079553773675134910179397896481870953073153203877540307125247304634744609716031397258383017304966770143872289265362204808606374169578234810213537017828091579190882345636934292310325611283794930833607957436065058175905675891853508934865571201269325162999652770251871386840044686674634891750287202655607474953877624142801784741014593375000977878412390411016464787509970378298294683261367185513824067951337321947922049164402009063478988815659598771734262860944938029206779034394430077100197631016768639999081938683194394436225603907140359689705266499743927655298880698026228997292995458869800688727203495763227920484108602366908612594887438558725074509515266468080708723194103812954764822063800082216333239659625939859582113063519745283333162490103450580044338856795243550332413431316547952472463676147178928166476527743684554802400727499231523409324750181741023724768231254089692377633099492175338170869027633988630436653840627258607917385133130112440203635293894673034114391169114089008692446144460719019331650509706190396381513356912747646201693790021152642461428179428363651977488843490579918649292877063418515489284251250316990509320955451658762203495262516391951854428018609863702159560650666025405285410641707847129741832111068323851306900761434493514710676669498331236927758808468402914075337640604342930146456808956884713263934830278493413326181862601548582199365339286698160897219444830504470366006279531496814190727575038924407768712005316991331420428549568018047024886933074735264212800562621510378859901261031106610344148696005991427580782341541770750683491156816392625736615719547888606917567171851598409394742172386692729122236005996264927318738893158033909960566137812607142239651980684777548062189777285695280068082532909984145297521921037903344509923512867462145026242367984455627977565338613551981787637986772978228723484502629405253302787319069230249705875724190287786669874558225214814540412258233551784944524731088228703155329383187287879307810775387585868070377218389955389758774248266569560206222387430251914792725398226260461399344229730235125573009456006196760653030133793218332165858630340434617647544279972726251414955016733271105704838819315915152171970705893653562942378339314740664128080103285863877078447383001039985252502901518234785827308398015919620860170696955871020126370383475711085948280182727086944159048556709796619813602160168125072130747911460629262710634879544962176682758052733984957221637306372393415992975677274667681850412741922795971910841197012894277547401663598255832961144212604250059270107604795641058812962232267594094402953840493536033181445840292343922236635520240364594995592301506697395614116148106452193107994206068624338792320878089181542389380066743278372311634403951029968083804590090284622033611851190643979566457914902816998990645942333804286502865758236406738346154449021796687457782951886939230916525369507178503579503623422146786574840141540540289724611298336916538275498285015498958712439303070393416502266292331010658148742741879480149769436521428707601470699347700747563579172768130690804370831890288271286925723955312816896371462341921926908219117735001645959482404636927039491116970199415033713609939217563193547539198900540209125327695004721019880110270357117196945178424285401689285161668561218942443857994724409785498931383094663018130323337910987964667193886311416913336625369827887769459070031237898410810928973204058988433467236856798659909396973902046163716133385654040652651707105815086033097562553484273613119423260302623585413612448940804547206164480726984830276696827056230967615286346418607301771471740590720207429232126855358362642808381518419045534701556475739742801868091434825455166130346895242607712359666797604334548169985784643061815542526581144086881975175420841692597282997916168147532710447487928635489990633224656216330325301781592047769785637342608376172223436105346455930793982225487922287258825612657358683176945566448419385162028502623112512052287808131351225392227651417167332442264797582892145579429840644029123375297154676396497556584580666955995511620952049399114801729034567400596143667829819328577460812940519415371356374940341394183640974904307053960731386865345447899921373122780216050960103875580721697324064746959483323988237528964140545538787250474078530671791551592079493465849612094567428357813515211956132028617134283668714337694096454674539933805045101242641761033237901995114221956561182390801247275281296991282588028275643501724118284116335849135408266807427277516881927084204771321729091072044695001949195757011986047129334425072730583752533063265191956293852490194874406917400172863700823634235520070911833555875925974659094886823048811173427655419573121172536865769360122257455066787758542154270316505878193280628939228503911205613977265809631751941976708970483974594866723105029645434447283975891069996873181954785128231483462487963232338445291770385037274462644341390505806401648484299325324286527486186513615267386193478420133252073247482870358087735005677953922854030683049716044294175332323505789289118952017093171695598231465474206008834257171474291737676358425213617914231470767952209822078315950125021843418539800136430121538106823238269692525428274879014771626048882550149484028242184987822814026519228282583229753631783352005515136649327672192046022170563375608981518734079878133961034118538302536082052187554466374036032701913121471414669852831327070952897316311857270237714847668176320896550592994937639927411431717871067456597234910352630771408364006776199209146456469243399011408691376469506727004108958468969471579237219810011652469765382652227789941134181144447749593215525112584067330181459946825956897379943012829651772215649010104837689571458136469223525958282684980113687154613725787007998478841951300628837510876254756446702547542831131247150453441470287711178836646598652446305270164950675229793959205100841436443491747524514780637963687083626252962307011874865036983225873161317153691492959412793039264198508724332558737869543078873140481379888961302859415103987367987767704086481241547250400256137019123583097342162141173463869555107011026632708790851855284513217313439501365562683546179008188372736031039516976418964207307765381786813581558301336401812170293590570481488936971416315923686716632515171514035347100588226890366676148547455019425446635510765734539278818746121644487322527850061443250877644683717784571607578599204267969592431781009237059498458178531151096710853223257735282960837230553239089052503796174740017554033688168816079417229419272105928200118833924965178594630267810833669322498099930795052221121308126378800850033389758770680430143879956987627218117210335583473697350401795415824972972202491955565991823295425068666729056273148780596778658959692154957926951019744655264427356709212983730046995796595132791030055029396580332548528897949172411695359596477026666311738595787731201585409440214574958264643257619766752314174110569579112078460067067893575453620068222034475648858294066559870229383240125082940633672180158482538556918581278976086245514766648148123707867169588691369697369911322082319915952722689919128010992758268771621388723764658669328335192677311589763501342868804469962221922063895337320840904360929611033354698771999588696773281604017879258063160438506751413772991239997222953352565633233178959392835964338121627057626943555293454570064963079483478804969081051119004230258741567622662325303919100377392258966699015271661264739592989953720802038559241566515585151093363169545820862176943310728048914033665066321610638315808677692899096827311008677747874284382366073383087725394496621338923110885316187607804359644003577028134787202421220089499441998434019006036061039236240462014536590850106987210633856075765579464016250174299915361770003638446764180831501504703951423652600468037693937389753151816511728076801436467323112009093188326291926531509106792047750426546658265071671643455354856844758225524795666465683974977096922874443412489512609046448032305138240874116155161950949498339670966291770016342666238439612480298187979550107079084300563447633691066921644769603914549290141894634115657677002167067368535945851716550968073424475861154893431738123230492260952011633136290411528968979292810651709766409611640599633017369571846190156783377150643137890824474561369624162437589440671870662085397076309438934655782744640043690239141788939363330836101105308336799290947733287866411568502252348754184932007750633136588900887008430897217093646330036768700012721747182961231973555306010306931872649509802262685212963079558014647659835912438053948574835112034037509214253810794739947588718577556598898985921016604452380490770883371284935332454837793004304716943582642085360016039264587718432179225136378789771053739974053265967091260580146885870760792235067316400221791787435452574389655432329242380417052913462295584761238089600079091752319515362795228218614636966029134872680118524493917324779573651282890298072393905594362247101687335646838164931041412307106498474399959576609099593890468544752580111634352144174600596448329031647763223585692986647252148300908370516427296350637095821752151264099173879997160959883653809818813963735121424111884738894095274164794163792383331045432279478895858837569470470804280554609238391758409765202814732381419097632988432620412464294569724284007471693544688323704836664051453402682228455770388461921098919449388850612437305681923953503644968844787006597771286979157171621937731022901683058690376846997633795172154094070959902161051913325835864225384750012526564131812754656188622391349604132210093393304501365089735083198100633787597718545520061695902723875174695563808892821056283790542105632426361526410563704704410273619647402220463871624192351291872057836802547028213976068885255536470555848686384184011872526664375809584400415195192823068864783114926442009103382449696311606376019812490017034063624521278619745414866910510965420678252987753099470222316978337879146825911445941874273383419827116417187613877067384418693034173505381084637438822968111675779678176140389812818906231539616750711550081664221824090259154302823450422613563675129045816730781544558479950037043569976787720522465432381169056517140153341157045132028498438954964936448025079440044732523785631226799258740241882367282362620746639687436658381096762684662930303866748171857695026515770058820706854506819090178428595910230503479124608180248394368696788223592996935035400636426440517695767275945345614595425519476060393426568916586716462998511576667213274714032150301360627122808005152835206900473224552285862096679850984400093194840661919537935581125675979847118934068209798752738961124907869530804540603981379219327619680401415692901529739496605610356088247367828552341040751240606177141747295516754005266395707565558709717914473033559365529503840546279055905934512400620441981510874696133193050683321954748507961163887847777548150230235559592454326687518104935517685709072097014868631905829496141688190587047802495701339744953511159696892074028753008260970656991961191597732426861021989983978985340610869302263467940682260389039866563882499533092727618512474171585479338321965750351642786076908516433264450768841064952172359294511837000850194534880976656959680025723422855232706446663343801640995818954115686903910819380031400500831758708088883705097397381687549010586273108077492398236838521371392604774923295281172377865073444789229967526803642432409338260202740497891016590700069619600371877785761431934884545225523322085659253383843722161293856020162226757421692229775911417355440151978800671322254115928990403329018521202155374319787465436510236807077928222050475590422990872643660446715113300089444890735386067919934643377880206752759214293588360751538181850201377010187968031026895967713818364741204338941462058129587275610113359421498567463010267169457491597519423314694150854252269470839787262698732269360823169874022068902468833005780848218371303202685119026485135442167175420930556606413528062851380147562249067360781758321946972557854411502545977197564766683389313723626763982973914284881111502392894696978190879740130924944613849476232802713150631269553041843125483175753039762862051721544048741406611667817389347267743339602524112653667822091068163803791127276693568262310968755776882250566228470658912146908250371843236544940364362529042257790750798677292139659878959519751605871938947563824772297816054131282467525624567914969809775285015627713229211719909805263135713342666149457054945085199892047062331931400051627180607977252933103788717116049324206760826069650635869699938479830952774514937819253297460371011771121749055128258587833203200541564520584878410038150617606446405661273850461845910586268935391425252845733164495249916344882794266628272634061472764610936892739321306518379435852371018945425929370438363042014726410859656344595849397663635357249948218700388912322247944962391564448184555518151193267720672904382462220742351253269469865451633353542571018778592317837242466792105426188749906308260230083891406394514615082363609295681856884651616273237564152013357957685685774705480188308561591626235670105768512578981624539761983633857338840939295164580866503883364316588670918337424457163368199307822971312806080091620892230112550809904731027855973281436138814558827965177565270405600924139404692066197270579500648350865810645169689290739438399680312797603469777162039202713740585976562815818907597562610424525411267648703338783680213723463819354271987516587830618487284133481386943581950564401070513947021499654110310567255157821000912343392367590637356924441249954083097307184316899433528079185377744377255354332567283065063419012272405712968047583102334194634421397168348126737191972617141496645766495064519529704368400699177064570821723790076313661423909531323342996024228041591192202049693599383702438494722426185194180451174609548498080331081835511506514264670830001356636474620024282664574192148106136503571623047575297089428963397233880054192249445211480924835638356810269401458599009120215818818736526752963147867405085668881859540513852341551420301708594153449616196606289530987004996742803648751499971533974958376620756566442674706767421724280925060922315722637879169409633031387762969439953865057986706386719681472973580099147525694914004401779674966265628041609638968257740961654280743595317945452284793820484107375112279718960924808157798044160838160045235971235780494127627878937997323940708081912732308160393145166290942321180697115756525644897288247935119243638919744292120947273993050688486763770355483718205816269587013827457256046396304860854545944001720234834974646781608337670012452062299882741104485713111246221168973046502002171929886351617540972707135537845521669782445484848655972614030248701595832744394683533667666957751273252792042031708624575583934337541579497832960049525548753816970644805177508236356315128214162315178103257224374971185142290548915821919369197846069958954650719916308463885977437528317105639538221109407583894991287508113631777051470022788305368459675573564953865252083835647630000109058497747938443164887457333990037591498034173730467822529292883574910635847746351552672426777656584102576901907177552624517072583714265363460194911964817841493144692782471149392952685058059973112482033155316133571802131058906187767054846683155309166460912233711150379928934893704425621961612949386431655499079283805288890118278750705124198707948532890617602474002724681513806513969276443339070887339237929453850213730845861424813202569857948562218272525477812201238421570929790691742224905473985957531235718608716236984833799622216473043225730171069098330868849169630438951486180154233482328941027980810457853252185947234788230152508566505439678760279203318316210221192903684224360892035907551557384363645945901847583962652922967087982432761550696853095387543949578765225015339727930962559192182619290879289672077005095130294628057823740959587492827005732888181256027801586653382837029337205595126222823230448881865323230345392219578404370124660099492971428717304665004226930626224708953368233251858115573711139929561188721004855526349288750899392853356899164566575605043264048330132849870118421622605616432502826447606644527207179084297751965864585287751435385824918487039124030988935492720858731262063793071544003668608716826189146592507901321045776926864357433675473889965147937618838334610277699611764729305025113276685683157984070286743318715231116451443778180387927478008483011740452992002270860946757066839117491395697319830871847119237685005428748801604190798522099091413855786803011325301949418688109613603452928818561749770854554206587989435230382274720432234138194150876693368199788322830927419203633064798362572809243681648984274930633580646594808743266883985186282392110834118238642644236040092660951165470713946827468136231350345834322811734728629848250433237855785110041909555328276762617469142037097964441587727650991625736768808298343985138716913343257867642781045270350757434414415992115895188436693447768105996765520036519632740249561347789942670671209260469802440047566585696646544940734064385658412373622989307177450795072692697320092165258342889868990035019161865842483133694908987226834162369121470435868560103556748761570459903219480175248207215570096008503845997976305912317146125218509449050770279179620241629392496730908517475728519584286871037515980948953101685234060492446661257933326197238623215858484615251799860920320065406317195079242845302159683877379785961011131597447827322966447811753721607221198741237167025906677665101830136312490132325444561818169654091643449605970697800921290226361572714893772696016448577429732636286545422483244267497488994607268747948073779205478486289866849954551856215101234267815101139459142390052828594170971285891230519478539687783499847505189100342240249669092353471075338904300257276823527455221799223157158810322593279746501213054348090526084215584007333965673749049889751116259532966345991596075309535455978357135400081021191803893816448548775884546227880006832659603393051099367736753831872156074755711312574394204800221268788524840063322190087521034103921626595454228546088822916276521260886942160858543022320424646949046108092036928115023353475795361074055520764333143238478762258112948222177351858392263964359044574735097349624670780270886570024945283098260699766894104804480377999123843749841378732719702627352608475590452436730762035154447744147423905062125373374306700533186206755697107521332031191530547794106427935132127007811063229194131288875023811709387069608372399644585397547343163875495604991188819549871688565833589573486009628628001057915676430298588340023474902517661477121288471308482607135552101439528505316699925712306842285906712056830932291337645802026840488593486458697309515807585631899512427771309761565332726803953448965034572108720119880660610918285273588465636385576769436062683865894595720710122194433572571616722246943219176248237250134594447492335764606354743069402486232989470260905724235344947610411946601935071746554226573887671471250525732697579079932289920314920732617112597600028916243479072798046419241048780975830442219431500227815816772228533849162176760489034256955613886642530966709147405874481053800977653784627410430712838439612749801138943007142725952384782458520260809415521098048254751205600639499531044466984565988115777942817761558334506012501001808750953993265338940458803105546388686709367750862271548629630405842517494121598587235543844363231100043380418654005488436401170557852123891377361911147350670801227398576133825794821190483801266116998441462964364734946976382546861878367807188239709637478459184019508071560404974411803232699744200806562749952684316655771961119609547181004515282597554945133649966541418516736046183829540779111397685294530201256152056850788514251829510764191986481895405372617849488888124879471580341530287296849426035360217448990419364640870116890974786013882132390203436271273231493839322330691965347758042561204915868839487468286404915855061069597472336773144093269962689161081379174490173466420077024364735551226032523571235495683844226005303993337199001972418023503143549907092501927942123896966589220230089092241145986528130697313989283705689485762260977665287947165788201887027871536744716200097208990538091542788429248508313858659798280944827279357907818236914027323060636242034259629369308888767926127328659064617609868370307283495026485469546878862298801740593259693736237563114416145077068836554827226959040114606392367259389067009136278232889333972730056783380608173191207183765395657098128287328609084891379786232640337955855953455591913922309123498862175934494110766335342453877414344787230457167498779900566125881651398949723370586698236936504959277481249215062079705749890267633751797053598408760280778509205264145135006205869999952647319916724832027919426606650236036807926176416014580597294253066187564728236295611222399475410801907614324856161457573144778918611026627986191985064604721030443525797372294075195907172583368845267733409154316601533785707741709130165883200703338652536998724397444835140138983642213520123857396893077402905572808971710114445522112800136035645025557091880630563136633143745102565999287521062470310577068527220199487110944397043126097039986282037423753345906884238759508683064727402425078203388911809325243830985463393024075834136945910724391657150788160237456365229011299193103055375748291632025604283851232378130618372150369065368164681488700127029800021418198913628054677732692403853946331083155371836689291862430979084866814262160865254753185912392830281226453821083511008347171326744913720752251259491161281881214326273070626397301954292227555702427496404710670011118334359951709502219685979261685978429329370263089530538130716057448602000405967336475035018159660887244743926610977244753965418775610591240722623268657613069221157604676607307163073614825357902415007296621833395610160208555441586184111481024451540391307969473792635598445568324437961102065383747603048834343880908806473671077377509376800304421048705634181531214004747842078486209620400302248105070961106263765938951787349858800679497813863769292741480707568947505472774927199374935435212607971604057651480698626237440384770437508542963056438166380571730339523732607270226838657840973157378514629934628247461010178327160671969677708622063447985884350690477746680087400198129681680263657960966979282500665118045687204567552781162909903002493775605000766281819435505189329128483216257073939740203860188826591934636384551007368069678893923548301874575855703581973696582818859402964007495496076332890893682484065625511172677604723217586848447915542512094668840074057563081015179643601530810380929585917039690564182748963062690159914689647006327263546890243879096765157197186707528360081974414708347798715911759021336649400021084022358198071928283232955651386107539738205486721071765936524291278485545903206103158877206885713824953000814754342384698021927771683338495077266859006176302098181639397995459183535154284765004662660755386302994634022329609682879653035955800501970309122709767515737613533622074172454385576327911516799029783862444932543300490244265174848983748566018861669471128450356022362354350335847347751591779499688115079563826496671106361524521618239605256372847338362842050908170225680226679591741565716742209300142958536714578393206580255356156385992037926300766749765109386762472075127439452000882505583296149440424922388720334930330846992334766088443055253391390668863234451629560489868344294838540738824658687420498155433351358096573545995898993054781803507948600968566675766592567962572379842611144710663008556701716281493001861890299360610624049222397287118438061772369312564289173313448658579494562968384044996807423842007790018998444211515785996420734779445337227963063872855651728577971140906117083829799388482335700563332744128647186508399648182609834458864360675773468341390192220152512619574440092144117978660014866906657402054129692287019596417597147788256614080839728853526476455996433317284953529757248574249075646434587639594214488909317987250361020398877502966280701116135870753041257461638310209580945404992201167807634296275547439149478403238665224348316805016519212532289796090924771588817073611582914157363875728244949420433402219467549979965655621569171845310252111726317412491923085323984573747781082552485512451676501857816652257962145004396528318775444784796301426015976141245854983456602174048591774327069941320781126353733666813752078028115892886022887774896952747016317917417192734193662736812523713771680532467651927792363591888669458710026728868048918310342683402430256229324628119313214463614713002626761544820109029835932650597541745411423191767914199538689883749883955758272236317030169865858345329954377780261645234056052231022299843088761886285537144262039459189105549221092948426930072073937185831303129234671435343518051617960685633069688462665814440805114843042145246230305264522650174300979929575879866434183375163473168686924321089804044420957384657002548097506818249684361601470013579499483191374233009211027144827451642760933032673657603771768922685030949363766554268687144239389335921318759055666005809250331437039900747793099612506084157194637534784796019848287114979619923888971778913355664977069646955671977530936692653763755940458978960283486824591429261536763269433378499770131800034380333399233288942036557948518485925067902359887216750966314825330715874115515005233233235949481315810341727342972356460283877717869645200124775342168668642555572867107662367664569903115107051499511112045548433342601370920743710415341030010315897954126895347018014017471639326564939824265523692415074455329170121711815817853393549739087213732156801130798223119856696331703031135865821363558824280864892124813484759596960974283375196060775273993544817855375666304854903827616998863884712863357663948279545938511959255470331245162730490375423706069639356696402681267852321622585870185217534405415776839909840302883522777687371867154731593905583528885560823488375368658403953819944926039822019357746510513747326069181519389365925648660494637612407469010415775312488447199471212765866855476796569056507925825798950939694076515623914500700668886518345715619260161371460443443298834905682183623298155849255676637388386404090181137273371249219583480959502856021810169364456940073829726122300585935341965073091293720817418739903656561204139937339171543473507514278103377831646394002782404323155422243814150281568862805028880878929932384803578490656353636788979011239432902455575500391072165321691396380624925852019528793166894767244209402305217997640372998253403616221107460646847176818289870851893988117849290299078085114524800199381739694751385281793078930044578272033026154405745461275767954978792536320704448719770263128776507266695799295309093100794263484137742922098171751766456097848797915519720491350515798315756858097826146347557166423324067183937360026226807488299963490390566949786263432633431559808138086919455604224424832360640165310741239787155820459422227838956951561979043633950212326019042250845651778097535068906557245293810021371066795176173924619067144286993061960055937621711771625286531882304697626487183964741017922067755801537991702165555301822056140084521104515552105561538377776596033263398270755809785639003927124834173217320506844396589605811855398502067642803556439544407906391910632202298011424515195879939230004511842486652272101834192512076405284552161246059675419500767435271433182336509532068610821525842227132726823806496551247266916363590691729955442668104840222926045061874050621064264839008697315808320108639658569310258880557173390782325815901914154658457408825744083018450781609809513130413991457635458678699517211631515176037587626742368820587417020310153658191029231929267978662347831261226913780789070669667729189645210658796579105871093815840060029742094646260026489514500408692348928228572569615409405485491736220137587623222694432258635903224869742918782994357032684235572133989783976598587136861845787479382460930597139296639741895189156664457870664334989198381968968711899101351471868106648495429067318529717294241548838116967626040105693000880779328156130336827694760850327753006086838019619543547733710721552671190160931696668758371455716472367839555589261307194038385031919802551897602517188981033673592789098695663926059285206594379256481219130765318864869393887819094711498311922971881735553502131058269155417833774692043103468375718649484673343411702274131341942196383417272731220016771902459724329844084636376056638844873148174080877675635480805090118489188954572168594585366011603545182332561933824995790705189062590316109440604106861100899975653381315237481063632104115069534240357308435387376853594971040656192235486190062730053706071774258625687225660528337291865129864580773465729247834688274976738306322942591962358727591515818050606878941664553779006358924196948899786990846511995227965196700624981247850058536193516619464324661656903496702772863072583974111780942816084784730133053767893620403660387076367059066902217388489090928181445497858887254580038840424366640977843514571469860143795863174053002606147384813155966377051167187131580760397370151108279042227251095078547633726534595807958616008328194610206237484695156951678123482914268088336540897620412434149799438188077880821195000138013033735994607342115277413520680790753090961463185770106124745934073370315065836019759768048329012990252401762585953671299471386617002333506375707661765888479625580435845243856571804230875807382566735222936693118872988416239998653135874063656859794651032534503105381867787556312509671746244512058191643611282398012159057522646525525776692244224786158913466236328077076950506272460731944298823695317657099730782177874036366548042418582101238551229065467266210620362598277930964108639307023543580107935393956795203925908978383264510228590878033614014478058002935886864161834225950329621145695327473891552176309778643657244095444767176191714873128640689953236532604239905265718977708625780523313853971030514448734131154845444744424486780735556549354084354751651479995336869897486126499309368471294620771639386281441591155475047120859451399939414243453319857897694477742712980026939996274408968694612607277581628749571049568675966223436069194019647478573900468168598545561966497224741277175443327651765297766743196392175098103577148991459361366803012132569828980825873972366356859764178965181155475949847649480708560701769345423923192115792310790684690681633355587010577292021424060031073493631617273022026334452648573699903446709420656939606792404114625311103782671513312437844715985628053533615745698900842871837194874477428701087876088411905887493897689265762472325791532091572736870277184252295610359940444734773445686766334791537321430269390825514348881244995684571500930880891582540341688837623088817492740644768761070031280548023062322723142693750076806570437442461277926287464250095676459771743829988469336557634789307542260542317330055404279065696443797792198161494738796789049871764786457503494242414017562097547938497400120806202048773898830073097087064141785579057018247277476635980661179805648114120665489947795930287320848794937363749889362347010666076889612560655137227762726654765683366314907596172812095651253062703648001114492231919155020943199178380375927423296162399278774544652395958635505663407659179569889708421774448185510887162362544216099178004352330015838827458385788685561593482983041834844818948957606318369069638976998722212602165862719438508884141180348944667968924322145071831194925670808646024467427430466261445365230647708296597838773067743472954301166987878366649564465243643039725291701250344815481445702376695671505571192764748136038386125236735244325537697638900377496606313321078868883625796873436208835152559441514883499176550027367123293104419313410640230274172959021529709070632769950836078117618850611660379753406095630032527799855941801215480367898696775703963106685709011965504248603238057835792151056255926648450560969394202461010576783642984723018361046994723829405161468112281842868905358765367407576102692616874157719935374270341403452206847341279459019067829927725418534303620467222011955656405586331322859266566340008712191851106936581279488713170378455480937098772701806451809563997711680233115600005951256161179022047612014118922215264872881260936937747185790158216311107522092851132038691981781290500351963958141459696523492256279736760873203209908145686013040377305187565046693634336252558656443490385175983896362404119364550622408048088745979196964644328430296544481336826561312876281093716665594200665488835222203245518111806980774919525294138837519935273931535790194818538687416927754002237983617404204520474464105868734977768838041331957283729766064375445244398872744692963138891266089681510830392860634891518815998760771899600157664042917138100480221212896443289197564982254825512639895038233698487292180570222938439630107297619052081527757792875444055935124928783269632878355071030452957622425728066118860899908953322148115988925852271102574171612036434342446162120081312081807358596020616585518533542096754280610174766814569699676855354888570299169516963304335880608489481146940974082462586873666020121509176124312106601539068497946361337428734971886007288853204455407687538913872728299891152312450191306004983118922612102074342941251341499658948196726733162278409414808851805210803779031863161274416770924180960439135218800621889691734015444759016789882721893074700635721743317519483100488017419617694096412856068517611208920073471814140520499674702619883236952326640578826249144767629904330382769840688467930580444837855320969451901069256230293716875941279642541248163975368409619591613076304313723881574765055145725159968786888541692396704623629427632179770718193266232913444785955037089599911327201344862403920661099475883408669961561818507840513711970719273468955542034389788305319579899376725577744129299589172600480623337094473076302869912564048578169471961080155789254358659645086505751505034387947445184402396241961982829375477801484989329106328308748000624286739060718320524626874139080460955514960461545808025226218054137849925960658764235225528128826173436794581494633786867671108802540960528183584969213908583466003771839825862133374708361842832192365779754566303374708707267459700892958019789034648657526487801379876813670284290252307232025796821163926282368302317381389182527932648225449039295626109075124616290370755257055056750088897248512698777068559988006916175596916839139447652882188044937088972121797149619794108002373459415551941198850845826155892443858085404361768904260721258918209126667462405033341244434360857336904902145019252835069134981036044982021563707004017236536296605668287487053473568345594274234230470226679574708416227695615839464871752986677372439387920874164719493526224076024431833051148412766531215730554581947565642608829544869705938674887854345184179606393313815635364290713940181407010093808085822404060067186246537907746340662385026080354646527271146719046200720719321707266247601140650193928984060759139008332781323435869115886518995615188271986045386410272528741210515202156009335150343966929763365482593737996756425203877631763901052168132894628611379629555071094935722835926210808157816559298230576184592312168616605335227339906972632123572454814042902090935574747999930914591787887162470707349152687008924575490070848897988760515708778320605054290005282548724247737641755515320880923341076427482584124663280376897167490674642313600489639581523547275256466173670093629076723844844211408500212670166867028002942583557065128425493297991276700419878051102828084070158217025758604396753546784849681144251042649465189421218292283137764936739281359243835173873319734783876219790717981148270464147469202798233730310906391711954211626596590752037154822074448783237555507700657872100920342662954026915200006585933972893680625746680945235739038431164075198520285324569680436571096720546358511785642945069869049462654148853643820698067655447836495517076785121616308995111461311150981232915614032566277939909659601040381535922723240349753379530203199543814507867910733331539041181070467153098998295385239332150837677405286251852036418225312505403044563659775941232110424000924745583257580659007923665031575081258647507381889424763038867399914116597835450564274433009903824867018551939088308126987591992536220201087710123955603136032809095611062239066018751429656738766372729819671786660487506399764549276604047663869746445114240650395616354213332792647323206292914417434538763001790359433462089133193054215930501625957476076280017899612781943572359413198611388108353827833306169178328226054236382930661104917172061109621420075284362298101513958689532012004606487688144400685992810903055709701357281239313243893737325766607487576938973384491456348853845353076950724188799255213286567090853075397908395446599433814372536513992378541586382639251290960480658283615260444935527227810732145140035803595925877969316389777481904040480550228183087365344805672668367035517809004645329785893271172331738696654090772434172783524104101166583406523676999038924929988059415694339362974555708011213899678969395468158004799484040217995050522483359363590910381825939173708419787978647458872193481265636956942507721905406287710720607023845959787748384837616810367782309056059177513703806150637291019412322546164897896936809179703313347740355425266838144629946175524619700533767952802200953341197589271952995084110397507115591245830714543484157614459424162268781443294700602998100597120617244790552050417100478255114102369890275016528402016402281404193805019451665505384272155333850227860903094560488212788238686525640894662127624820162329205164760889271519108567916054140083769684512238851211304977560491323518774108359814626911543334962049667900179623979729385071367174496062602639803108957840340315000616369381393061528215476095590600056515198047357259370614597725404521544250900442742164965907943403759719687555608175551204679660219710550655650773970569758810234458863870297695217818606864400955681334177420540227334687253977267615330483104407912523856383917131658928442544756604700408528843009092567690377208006705583056949693177027842905080413846349540200824690717198856553303875483139015475549664285501145591488284697102248015042030942907005019923475124164561946745746715436615752706808184654263672956786663577247286020967102732133817553189303456004121863292181575398906578054248599707877595439415799424336782120097983074536351411142929703620726573104338289559481631351458515679048530942732975494234352331426345312721038287607845550078967839379599532856868415588519799762989237017463269993125992310845282948673974134175476626703516220630096063222466748392975259235641722194381690604020411832116422642851692868999064340895168679520994490585856934962050928957256308179620290685969635775236301019619984095441016726674783913843779635957144799072144604598961718301561143343940706141369561494898677318909610144882162335390192103725786880976470113860074230356004780016859004168654659106059988135348565557413809685645000523089643433960501549386722133162473368099850168947150520647814297945140256355359905057862983238810095094111145579816826048362816034783018391993791194432575888060343555512341139519765374937030931534126801033899293004502021318427889519426454418309620772151499725890912199661289432613357360699023893322373991469382224393175322059290454881586364664318397037875378112651050399169131573817616259145550724234794368294385642133061457470877248626324552834432207782126064612604978448670152765836194314403619762679272562976149905302490517620436749638658288046267588886476647750567230931303764887416658079171776562595669749940784495708344294355025510058589752805846824031923801306904299231295482024287088988872749940310728424368293413234369501987201680840623290507827132121577961731146011766029720136726771683715231253950397268172300283909977289515807656567163666239656266120584996453020085729218699675525945069917866767930784634802528852914705914914939543750783105468763466557409271682287244175472530031885402814239467425473563308108644324556686163189999607401573622847090677998551829203539117183253283058840190858255364561803351047017632321944430892002865617143685884432991762742936743919630937864590021862969175295612445895965920648893903973556989478116240583705084761840541138103726639208904541362532014413790313395533448921719138957444255031297955657304237025913812306010020109707401274848109864049081322864856922962126755958192475920458234789298670160472508281508795109082154239087644774383132255188678470211832040061594923704711719226279046294386736361001134391769267038980109615639616434849605080799734643998714853895708328924209272796174195494429236351358185971700823676356744873200257728035186047106399921639553493823977786310435594870805995661265080965615886788577747771184131328406832708749642965359481812610981597514586342240145451752157949878369817990581506594907070958527936926101904363237135299005715242535248355478313877154161466863540231156590636667747560980010704823543392149171293081147063532244116797008508087325613679147904087317901516989798004179181608428879992363965060990396348879463688208296818986907174531472013146074359194712130725754817189248784199936975880699039968220887593369098802189136581485768983672603468340376674571281550182205401556841455322508489632076697194024214050744373538104963738637575366045571946087061595413185224503057152935474735155159586787055297656841267936849625407950778521791248852198373710166297600826667062122612806494426773719203676632878084965310890667986827775445144797196724422777489827968422106227618659685195482823717255954033623107656757967427798769503489630592532413871867756943390525311321088336160387255317132585503891633720490123336661357229238538623033204442535400158136396156225777979564468172975149152430885633052563888368036672446311490192228258452570561773189047137845795835374121504803383168106467644396144728262034448307537381381834138942449490889399049103638833777754979404673953181972063610699737237601994808176421208910102568030367364549564990354316009662395906766442405144633517685149060205500860349259949188034713109104287172272817704492354371294389149082680707557226851062591239655238772675519204930820188494103928562609789806968817731484964471531073354262237549639499567081931383587433725084224220790515528254038803913648647094722937166102828996288221668417026237451011405254252391577986083457417540720536223324115059292541639873898000244052392554039310591592102739825735922406690268652491844575929937531456154002038327695878938839378827737826676906971464787878563129133204639252540015051709519928454215084135206450184295298381309045132824711734122119235740396667371895366152034033444363718051951392444108911950553071987983768330102098576100209478747707853725965964845740514715223615323794890052033661943810396431015477615120447468030403103093552057596327082924000061086413002894321615765085013215563861820464418331734827449115141216776865586346437239496919736797104065847799200256776166993826298941765272631715179928237111701816813141296588311650201321653816726800281301119596082044315759423884233683827429993160461924254996905877307105580374913530906858211646594018467581601176016829594495241085684748785040009808511711598214217606842811904038954860271387923430784899613027460554944107545433014837203086480154692474434639270847766644230434633212303237559674275762846899715244925757052885811304559104199131507256281869917936868808806554777430198007967680471099111840966766060860710819002720975326137655759445481800794806942176992988378795612045845210853446803716123430150531577053995866623721520201840534162157912771838968309565171597753646754751268645318495878423534486109924897955621881384457436044065627008132687239788778226602328196966010451606705987785251041640467281569414535173299674396330167791646113102671660390219681027764882741016033477805680271731212152884041063293282995892166939778949897787607410484908011286428073789000419303032248113885836885355251144651310361008908522379822238974803317717017412381863126354406962137302618095051985879059508271247770307663618609590844554157959228465241012709316305683404884760836852878296488016459706287725961850343134530469229187629376023952692686264891119939788453980807921981560860211842296091083570389565717513612012973185328913529627614131518519821663190003310317273867204921992938476183742173364637031309783350346085907968503793741773431895102313740208563657836382133875158642649430118322890718629110317741391843670233199878370131160818881460137816990873415982619348366908419928598699858357646748552923536828695353959470122351804859722875602915502704454653142546168619373512139578673142726474077751872648939103939427101847072096517728846389855308288551779664434390440756767595716503629970332107412784241541308730871975716998435668781636487125249693838825819265384738827993449389052887463316328379213903231971087866365169844370962324812054478393928874544650260643116721069481303034410408543166064651296602548364745649883130525011103874685327232338759404286174092851393536891282368955072113438832363288415302349428991959422849785657970702102722117191926649785033340878941749844375548297725051327523491730252750931389818331821365308647729595771926844268851162442284929137367527782563378850605004408130677991468562999023279649864329353296807849559769890521827092266939564514895524479949434605548197438640382642557850179710408090631513973936388916724902894065858540824342780502803045867723493136594893595210795622052099586800845759553877622128161846693221598398845791230748493284479516405046863728122948865160676832784839094207527512651820517093662708931511223973205380268682339187813485163322826649850566100872403306463507364992511513930362170855279542278712429627689321027168747436500962141587839957009449048594714526216040922616635638486692258107519299515964010773463921803050410402660056218230243690818188674356083965067176989665736252987675963848442621822632784976556171064934633962155999576131217175318358037970981004707093339041893103490937141068712688978491826167056601897928329230037597175445238216246846065029890639367458730969884028522610625812553299517397962847519544325595568348979844988905169280227509256626730466031449646305839380208683172953767936849641184525154542816889707438102590118155090227829741696607997503448579049696045838679990067579965673757107048181842884778649812673767797421232520229910460236981338767490560762473176401042863419644732325236517457294195429212815917881723341211531493530232190599961474252248155826626147519347124519547567803805076980816278278994234118965547881278236348257112397130348439851647958162901988811894443039585759260219366083710672478931318221216948838033656709322009157887445928564781871093319720073843343151089323458640062536645331543308326181067105170313674691719796075584780874472102131766197327612920315850190683636735190148077230401734483879685486627336010154693531865622347322411647205445827397779267381392079817193649333677968813221384066274225990684075136091359552627621856204051790854568345427935480019795570674442110407408535855839835102996228252683597000597463804694526063103348118864400889234215054986625683530246761362694323168308594677181385104051145036582922955700887183401460309267876613980506880439447788273261467811966627300403202037809234951476629747240775183613380086637655499437808925661115395800551791141019834581160225062095635735978026140757164261508874740737814461007929654956768618564758977118302364686219578783427966355340989129802329841064769608026099260566147772698697054513169332325076527188812421904401222669518468170947941340037533619050076042869991140671930982340588498797981634113851745622119118463345327663904108952185924416752942626464650046905047853918227435587550822905000761773643317393745177882157561838871924567755677258629889930793179782996975354742872639351064057641751609117929057423264509148716466932575441697085029630539568058101352117485396752991945848643271750643464202384332026656279724555546455225520092549952443871839087918632443337201069803305579961351661770196329327908815708895665239116360022911044420214907271633876640076460726243216134158531331641701573681176033946827133754047032199502648773839419043272359721969406744989359981025934007310601629192587242729159919446907446576050290411873901102354847368952028840886095840544740717163650338367535179656397922314965867196004330258360609042229917942387057007801795361841448490278329821359527729642462800748870309021910777024787592315611535723029246338317179107108061855017152000394970581811548592942842473138179170074107459785519947582495101195494272738692948382712348573746245713858426698182328993919978669521109048721023677751466596873372973219600097832832223293876872278128295029683337191085974777768186556353998084712673471747384209728581041228320090034498759538829295713769482888314607172811840543396278122966026751724233703392463824697718676630349005125444437962947491573842467406012701660245668552826816650192951751076493248538472464854688784277961942598966315643648276758225477280149157304540103493354094630626801331184666604124767902263791073382952505097526023894218332162417252937348433754241997931631595011333580944939497990965304977884505309610011972934838987648620216000353277698567322643784266034685535850318379702114565490452176829105522688164907039256261768375277054775736506960568679519482717562283191706996377719123139704478645045189586458395179271425824319663855794569861341675920918551232788106482763476186357089586303078600639950508599056079045717941087397960813924848357823131392821908238398574186901813623997960221617054153181530810389083629044819038857130953193130899815829149469655648542210304754231219682946087580711604623096732210199511210075574482958831403059452993327534959614665032735479518279487153614056482862198103956430961841050103342289211997144264393622186130166853558589950904758624106132544340108939315922276521994226699785174399338714410972275505607323512842171055671735360337337526652430996495633174061586972362055902446570250875239510211610813038985519474076588803974778770173166941468117822841159311521233663623732023022661182829072049051400055991553381577397941443375966763896441848407719921871945289360451337994534383388220150905061589186891967251129398643842796211993803933053173095209556848014200371027140044662222459146525350020418050037167467173911972128190760426678482402588717871770966377019339951419625561736687019605233818045321014917205584488967328650680218005746790693497565770706160618382777185582234902405476065439575389347909069889993997771415412152197764807641724589192274096944527590602224297944147752877514312478573840563891861065986741715174609013068812569243590070242049810620401701586124289862547677476466162360480319283119947362327038495380609460215061222144836174100735358037452158936916221484931192060803160200409255247101216596823622715822226764580050708160687939113984351225659634208595276387178607172006070332820625121096945600431633646966936780308050777094945349427185250974457870875268014046491147169585709524578325099374749924363695584130971270953935383191953803264065549980102601559208079711815746612690029160827229289712339247452305794143485998287009666381946760481163618521067885390353815577648004144651477502670676383309072636052271891556279514796919273522057766502815053915469560456636929495489555050589042983361496009056734065515709300093932548371965798070200342228746743936014614487948575860309772148650324872044521212484430280044924005307876888262659409972330401357006992118001071896151579913449171224350898396235526375672596716933585579952255821267386892518318360839214080855394324859901306097267989575956410364158538699766041999179878892173729668731903062723611319188044114162308554483068246219676889404554254016100591250025351777036663207825156463521765067469712112110062655449916821558289226380535562296296590451383059833173454839134557944920874172687966217200855970857538086246712622194086826631813976079945268330976301594012719587713254823432675864877526531136145439139507533072773209659208126965428942611982487127519412321670801640270697593995727367080516885356608437812152728207001502047364073672349786434255838793018119341634283936131640000665435893790805373415231410063395613001964314957396772122052744486563506569648884057266203931367962347201880939371029190782661711214944014116495953212750228092073835762656486876561357193516870038674955355671411503310765226226586918030858103172195120778420653794922697753294495470233058530941211805095490314671859162281832557712696576602205748415881092834908037902688426824065177868991888291361549978191328854741475698767069161062071681188134091577651971203583272293337272241244532214863171841224920581472345898136082290238028133763380836144101053673490642286498281980305080142830553515040179424494012940489031425811434045748105315597064071435751350803993786473227434750635653983609643936162132820173945146260691600104391896474654268426155012170636108788839744979041744770764962238211479161010148012038045289208018355273245275039442409795509280965828620760286268802539909491741459540924969650724997918759670510338063031011895800012853929970504409139085264929333867917121081514373027126819834168385818101877425023069646762050681767638903036154974762641884940362197201122018284868745695372896072271981358602591902307175261510934181694395311489774471276128403699617258916746784777986587028673716406253780524970152724772291212800448273166233721843907193536836516383514848842265039757399892100339887988158498672952131503166577493120268257318715335398014490799102778551065822170149325749018064759148345823381266438501952310887184401578986698696676204165145348071090490535034311431060610491047363198940276163017543073453767807991644231655799760549726716520427071576866828003364611688444715788114889446706702584464967735748661681064461492487973820566151057901596010245858970665348586868706805195110617083978596387148851375839141509898309196496463010865918694630634247836358652914603272197728303838198749197579793800638438377609573776845325247301802487501728476840651753041969541840116211713929010198277206593569636224241122713233018090911672373497039376604657075926011172131891222115147795837499915056960460567432979527075535903887344828684814199442135825827849303351967224360175726369321139559101386136205576944485344538278075473900374243104790181301780576124767836002842860959245718973940539505790696908766723844014604185031161606353285342593801082906465974071019371449996471204660618273371789830740091206221982224876537865372044605090996596408247155194071142631199808448792084008741678905088761353022655274837802564500057858583845073633172134469326714542466501287854777363630342681425609904183301818958464796058181737929450082927619841398442038986856942298800906807147808806192335429494875894620718434103055157613679368182325626648814163596882198149737068695903295228207682155646541875993225889544543057530705631945968613220189249457489244827068156033287639319685738351647657795135991816881740796182971833203081808252259315228149999538756154870298491993570445990411416181813221568520898976513188468909010026460479409745236273207705008697738842472535278181797940843598384486240550465618072104942478646247930776344808438243429469261161237849953424989259813298792918550645061321931418324020311038350267994970929241601181452264016415734981824957239181460523287537411983117755794717593038761480086928600509600263643845499701678578214255311332350711952640960348202986416387092631336978295082144564433318794285809137769484594025263828412168684882549973083171899600006705330839530130036647455719250071407864945804358383690853874023284149292277648921230338806164441174967291206139437244463160570414889321125943901548984049047917873914848925799388868222747262239684894227704752398055690346273676758017083894265131891216661378655018845815260033100133058806361810883288568702415071871119081731506635270121163868401961042309604592497030181688667382941619678692909459231447181714178535997991248925996850144766298018745918134420380548117251106077836328497787391617243139142182560993493880682760723127314839191083065067749898360145232650199655733629721154072431573895173995305364125079218527533711170906248955302879066544822924193442443891616391039233220846761326733431710940303622665625240665226973958384779030924184360179707814984711645746720130187386426250169929475181323904340255474904946073550543294571219518228928108525543236004253985969507133172428719661154454381831131610023840288131382409010118248181674839734641186332097517986698235298353284712628694231199617305416205575996529868059784128786739577286485803928032138263328096573605603270751091066012360125739171703347372089940208392570752156992732584707341581698018535657816011031361059105644391964618027575558676488869244445477987873141491432956729450680429883058888280315023780540798768896262612711531601566361140957971336096169014197696188397375917648596701329269603480851751329131725560528654436459050396256683535850025806807128371526259425850310962047101641392789562715688741605741291074462683998047452738922476442842427413580776290903459416664430995801474918728262298304164120431068675735132233729584795870593514420512622333761186772889299047599560596764565729885638221462351094902377892546006940068339897679954416941042483739128087672778066479747567979552046320553850912038366841912322605755928790985836743164030090952311650741926656534144204858208567054371382387513473918996766212479926670409053692330436521279170826853607411453218265701659629642065820966412350089638593436317218509157662976372972301100867250401012455840499348992682258345872965697393855800709194402782715476519994475197768093875597442067030706903980786030636131990681531658321328454779539362857256913736532156030496061111174343828221110556260668675501290603120923775866276242419798307601818434653329090981477887142129428937081738517880710355859551308980541565084649692101736636788961265007813733558898354314610763535597371928257167332787057518837546194563604974899496015047433408580367448263430965078225471868097543056400424437197847119180848672272875992856296545873885459145798481388543400379665835836050536175966926964980622194293013270582201725448036431663594637755282070110096566942772810039647783515250964695230106375096942475368888037813296002179066524850168215717432990598333231982492059745694181054873960240045626615263093913933675200025463496543531601659494902993796357619070216467937961949395561293861411187562191641415370363030538968407246971151365111445401581043991916903531974584500137027605852329023320740346650837621486885899455101274825649329724164872987314822975243740027330701663538567791803511049300907996989399546757817552027160908066935443920636587386017449596649996472112289129915241277308562347232947432048508781927034780388840350716510826405029107949300773555169576935021749777841005278239838492511963225479136244832228737324201814986001966575534509086126923973513859780260072127726329606347473031751702262477351084204732241237109393923870071915863217503573591349200077239947916698804305715833409936068679550723960920725249829635451512603059951474969824327295516195719674651361923805303103869956251247227993542796655803870282362686122753983266821746855190013750210828834452418376226422954300492599645995566207195912862065251247092028161173170972089001520311850447786236014720280545626820463601974377484752153907458809356050289776088751043437675377545188713330176128875310759222226359028832174443697588180554259351217451418307002361199392397833085744693300522661160423616816560942847703270603574013838530390432109211106275727667964696531093861127375126449657990207514980686728374536165248335606397575215689566202964395288021234622470229331259725952115852126264063352821769688076014338363057662024420928642047666087866009606442046936885212797748477850739789380341938864399575396798619684996505608118939029884892079207560115425477528795287119445981746303499774244269941652747314742744342666390743265010788862720281128228015156756253131961940534020807685300698762711377222327906443036916563807122979740995533016514981111126224878402636140225547800745244323530088889671631056025710739526766167697719544760331312836535516534549089377154561511263734310315865479873788237194905078143882058764910433924350071823786822192168405046041189784277656211376981407083241775518962811609272177224471569634376418107257339625958375605723246973206413921729734268349726511360766079777757329385275288780025842049801486131028729760756099126045903459470456223559409733799585785651928738503497378157846441127954541547402384444796408838843350609845930525325382286774880950784372941180891258793380228649618295698009371548204813134089015485104477845082665591146492792456587700246177833675220803175463736423038073228640120845511791895101932962835584140035427695577747232576774702041726606388248309334741074689213191505850272117841524835657469002487715988697208880408461702797520506146461314781561134710393727006352728766561801032250999977160091849100854651420109466001003134984830936913335385638236746886364133970980716538903831036469932273599187128729080882037980056457964249719700271511659865037670191610794879809010997951549352242918215517961029123475826567206249751917506742431190899654951929357095454328228307480366128817843218074431495111805526124349810085196996127368474408653416069236025123543980421891195383030214956114277008696903784002528337869188719909499572139861011276874790814902928370883718419760204521349338417312612228372985887003871997947500807245364112035277391563654360919197088817141838457471419618492792545778814385935767901467513483418941146319941658668554462106166816811729996427303621460362825634017215184913192684017234948740177241827464366762905107309365882540794511358873417733681151779932178854488117585497776012935850063539146831223738945964510575734183739779817284325398569118760411333793755592536408164726501004891967281510527892868726367285233153468932488138242137185723892473923153242963252686502720289687075138032879587858729401207869858308246838746521849047893691273146356841839219763186593108747504663098098177812658262997903490934291733889892154280640271561131658953959315534188285285142019736700794159167920464114919500263487145825776705845751900817422803064036737636983804652067927117591304141553734822497886501526488097826817305947162354311958133966660534319832840747211103006932578731611477739678375340602833975367971118642585050855105352229462478722749481670167160454488078414565306139253309411243138592438110055788558223319550847762546323328481968414072768679990061985505730330426356081329597971063409998708494690181652632509364182226975587364906610455287922433402710643634223226743258447801163198568715122617839718506976430063969189339340740840564047480663762822426862194662675203919549159684710206368213679962553828530948614782586184454084869592576074497591167915203608837835158298611634731550705081758787585911249463224264172864275113753290671294883035865532139114826199505203414105005941515841743459845407354645133041427218223618169721989264128593446814379213961907349939238442632753867287641488289736542205623643749590482399864072886840429791017369862548818153226824004923557622757553905549970660603266758650037737628574776097085892436037189828766675154265929298591194001110799103227968616986560205822704232688151603495439907238347171273389017956821038731809124152413903515937952590128311454541204546037912471051136819749184460900881989386403044462680862460516535295641756352182548155187618235526326269769980916449570513081339290560742087064869742388193292448127195199923264918575528971958039756337295688674523182750342397995537825921598750094329555502764902965782996562926666270576131702388485056266221475546343117331549174324026004109883964476641097649186106604244800028111943817515730247187311079965678389185148464851170250661230459637067510061253167053203898807555312240939769979452413291368075456565066993233137857225441125276409664147505798438971767126614608636633054691937331011923712275828138188487331098737632399560050289544458175864277420586292630050523021874428111022428491314083970366063611555321548954768225602854865348729852382518750029964590083102026562760150088203888828546339803955530047132288911561797383735091059742006259622697220666183415468411020632007819000505567648380396050409393047877247703272075354864793063847764052535967896646564902533130133947855433642020465878773170527116117742988228103415598307007061506611123181782157681803621059243704960172702889839641333325874125598675877644456962853350952389909706102596632553482155935941008266454154218296732856538967511044304313261674973949274215496372871437052107050923406741122490813316917391961844888064485310118638830672189240155909932906381347064130000555825328960234091894188836215025448076890331916187276956140615614062428294609621146035108673103606598003512263125529395481414191572128997221376582937296478737768593802459936999425943161947675185035251983478138883181211598333649782911878786134574252634529945277902217166364077519894469757973283873666045124063618283756788171742192140590757041025314963130765852312539285726783540496163152590359758927067784019588711490899682639660287321131462405721025098819421296796272992069418057972741112125931285876270916985105908823672135258514332716966186572359198656150589715062156824905956585172387814478646379863468300022818629938509331297698304447069620061273794762382897328841985437828113600982324697371677273529038946851005239160619523917573860277526887966824106610683005889075704552510255911082932479453424983684443852731434905679251918189042393103382042960238796585310451697039672633599891786195440184333613210761466059623739477926108452594519398959586607353346893172768743083118127613348193914758560456840441759423868696271548094201661196626950300186156879759439789490529626102564670846763971542270052329720748287925188288743322129861476857720698281630887539921059364389819264953061567761156671538949924339410985227340830464608914958766307832954979267397598851569332042486610600785099516503870236811799331695863964472639877295741973721867977584368581971111114180009776374918813701677491597585154107329719782022026319110510329377492579424576304118407526513262972067368140349936487585618096600479808945111543642154167125503001243724880053293445271558083910028622746110419400660309826323521023314470597934883772838661778434540880101583035626053687304167408364870565246722469679754152924823722139926276948649454718427720064139511936698842857105864458441140278614373043123079453685301066550023641739363558901512673937056473359218138247382613085529148284889785129877790534886645521717068379915869401677878839115375634962417266644809009154920228074543184231400692901706384867807360679698107219843755711543598698103682686214408025413429122538081604951460288491513046618529412212049445514249697319617034124219657367125147758605945745238261697491439750105180204231153918210249680582858865777455047446540842409418110540405245276202692409429542877857116360815228113148529915433224601198934063030632000239650297275433422825785357487481306593660180014784820754811957811156580233033161160131292689814635341284926772400776186644585537480273151823054701257695105528499756396545039281781356261111240727937911619818689032109974480046182639237388051557392736811236120442994133212450142998857910218313272911094544266806582421069245083586378355451168746753195894761610498274012142724505547428459687149874315932432954024088099307720315719523456587223331513067301651715427194530089569735696273950870057643552121659688255844910203261309703642036605967575183531647512238181475842263105371993374670013341926846448251117234519092103406975027417096834749219198320730152269695041494772778296758196823925842673172766378320002982239944142667195776452036320974488564868679091601521668827844669546556272966128614090778965123902045730841478218564035989829727735492769401232680125848774911817295359621607026716009430673283407884682815237618567217841716581118940970275345256677888818076738586971291785803607393154793617815103892916653459291542521272614636464994015656067314853203308146455305506703298360050506143626587642951024450749042704008703126801231114949298595984892660525517969644375987150309584230708066609842785877201121886757503834881487841358733108053501781716442942647470553444098394175287103266206858278774024604170343667783523567365300121725553127094690621236592579477158201826206112226226542085268349798534427809212070002411127861609608831211381749570567347666711712071180347683903994205808696050331278163703743994632085380782688452092846899011292862712689413283714646139437624469288089189017398762203991876753781967992902103829410234389276680692287681410694243510911215780475071901095625511271396791452744132358317444995193618763144664117915579293877616447440718626117385053094842120632636140674052905773549681264994681102234531892735513429917668897252232859178516085918095774487932660176905019761041261646075456219447191808150269128258362594879606491667047051044642238857074381377473312093926955434182237121817310961892293706378144968452508440095926172088098281470091236619288510766653499904332234942598666385076323319200237157723927228899601472673387747153642244490998791914610075847753365541394993112076526013921851062045345799092113309393240852402906756981205744287266386535267962833470108276239881391830385878753349381439346698582970216850204142613827497522728390592093313102913478077938841121752139894070022131161564974680768786080944363998754524191550881576262315108069817996528912631571451055201906322561072606629449920350888661747124917750698750994979854929673574437515920894749479074970549270728840638039745695473469290871263905892512104423630680725347128033548558131083043226459198516926813387631976663908710340549379415859070212456308050712144484840127108507534250544152110112861603187440807924334799243190883143485299112196435687490247143524301718857972737494392461807437481547890323826094064421738223747113371678072321091660360276637485607196442778076053870263293232803231582103697278007624631733324431694680933004811873528826152167938163156533012406560812040589386575085588937637785115538735522035676206491150950328370171120016189218888393540324481374141481025567301073307393024926748683804381806919448957795916391497335226852201766974884148334833192154412475227006139137452168590813673061853852773072744839903155391934818107273218666231488732931896992218907238772212482769782292084034609460059538070528972529896295139750619862586915578378746249782791186551089457023793240861056169280253087398629479860893104489522968506001758169033400713003426725325280462377638258835719256884467062847738395767962926005143743702386777110088316834013632855042640307770060420339858267037839684179456871142159309843878796598832965227678544467996934578811503829582494806942023438910089600745942705666113308293702334419680114725711149503550975912384739361457396468104676061706570909885127539275717656563056721104988421010301530964619678606840437718801690962485791872621723476869692105345323457456611499683219650189555228963500049596369927177151260260508486594602899633915598786669348674579004444994291657578363005855243748641083791096979339294836134702126792093639144773497492470004650989505708068062785630968236287298846514009358564855992388898337897686773147125591849528700910407805232736110446762031118800914706727857955416576452684212929860816350472895352729760510797714638441432207956898961718536101776923289818626031210465093461522132100711305418980410123905973735012987117720712529065489110925841526741893666035359959895755715829192035008809256962104011360512377095618328435451907323266229099415465795363048460844027695960777541475863522932764516186209941836631755849135182259369270032827530863679022414960993442982391805983876774841209665717726883980686871002594701892628229901164675103975763805835735184765169234361675420398392021297382444051243746791885845565077206145186629502014582046275245510214376896301617103676942489376259219888327535585759780282299505189564392224966087959392946783520790738147546489475108643249832709503532443011095471693629214597543241662452565873730768037676362577297139984688307255815145051722640204521997888792451182419374443255127408090864691759103558561180400704900460283510179481830293546668925127772596365837448387679068462292632344567447682012001126558179162197288726555435786349231164427017733910701439918059247754871718965056172139805158896179385197334052852439032163367576742150293625559461639438938553870356142601920460969338877329553650457829504856390044481431331888270021504125479933550224853091559207786974505705418168543642363524641850297219804092251131183217148363846406316665063050874531077146729042420287847809626564559234700814508986190833385425981658262188706706199594132207388298587724267260298358088138967515538337572030920920590267654951995251618104959175391464770633588601181177619483710105544994607549863580046422449230819992902608500228577638398927841456948486395994488534261836547378506543573375069457668206189006940102531529650980449611505425730296056750135193068062411095441491323754804298932010756745115281685487947111792897200829236167521589127604265130716489007004691875715829912414532462347000955761705826210079028282386452279748484238514735133097274839072587689955419068969079584471692260722877771816290915573674377484235922290181211238608803045549495557999543338453574131073915324020919764267459735756603791606426585867632733261923374556380759247990019840600168815422628712349581768263286467438212896664774229613846345740105411084153968715044670775496423664857592513366604732653578023428220737077659505097900593746444086495641320302212045409177033953330853584024241923156774023709220410599843617701623333429307406425470210979684725832272271660144728013370895728452591032672382769411260939464093876315202202570647400707591934944021132411275786646703649185491004267689857883073843675466204698552295597372265442088661331157985711496087274985404686187500792649318562122291689058078975231474447837422294709862388560636404899706049166349090470283890827250248251351014510405634887932026795623958609192490583754083262377552884265341875723494132240378789192634959784061730165557981395476225684438616732474837183823955306591717002117709010583968340411599913142873728568092287845619032712111095833366894233582406582279002738291346174738894150172365023323646875444392189021029558179866911208111583352771885613421481899343748161220688366004610559406762103489741536524544830979756974134286229957634229545420509311246189892632567121755446794937702430893631748152523598830519547430242174364404059121743646446809020259873085925489657121853764629067960522685815247491850297967485141508845566559145723613284388261702612064783467074333508489839821553594999136850395057715307754523312713084925199572405184590893954837568107109202357051683995270436407544848072169691024437755571876968594080275091786350604204833235643130113498121947958007232758955517195156370123762747186756625690603838585690653005331916209530179859151854668831908244314866450193597255857868598207873655254003708111984069909437769938072311324768863741933240602381367830694266000564025283119466689096105098321295525187231908728666299079535907776811244487912978853336689654707078175837452082592443432161886825430179047140577314463757281418280013437140247415975182104759210781018320040492250312608634564138055182762838792241283511778202574827000393629563010245157493121644064376243222726415191066781787132138810826833057622483268816437352090761347630308147240326035734769843365825807834965294165444137457628279319123539129907403476272912740633003549712096055735907450851842755073723716739706125502231469241455787231013861850111821330895569786529105742429168974333285361809236199426150881804501845195059191550474175290377325518448555297086314097243923746863900457904876837807455422831687012432405473526073663498112869789935374541682784399067439164608587945244235488117353550577408600457007672105946239938441928604528904605574030581875604024852103829375294066540892634049781243422403515098282715017441226701907196212792349010312534425327687901475003797626336388345352149898110943687176474606509233360801272384286892383968460789392859545267762150117849897165630514890797048692905521060024922491941529521449172619275941615762906929284246169193816585790691600104051605694453307280117982019881179537258094581315591857522465004086867816936103442872485187869936699620515085091871137726008694965137483924919954270279773393045680750804433195895638137811083158483859495622198828585582019744334981522060480445873916280073356922693774178772486235378089522812083190394655961450538407326749296870287234195965108605006430180325597503588797494149873580973987622650736228215144451390959708888897673191779458382016863803248062496632225925752741231969981985583103776620929494277002300885772188707717381887879550711637654012270673324103756856987561391652836484710078616762118621999865765096379013487232173575482304646242505180513485933031417797396028145856625897473046575069603923174649883987718772206828913503845201504319663591605824857998623742534514793092217271530723544727321588724642865193786375426140364784770811529798261623829429884998856365830131279499753768389795014813104926859710237353940520604234775387872011463119139123579096775609359057003418448824353304553919596941783568708350852929925646881629342940543227842750088417799392699827347367532738593813248992434329787914477062656619291659035414576471659072099482305887614392048949892515277328282403424495133794237454591331783358609324947380144392139034195557010536881740930880707961858356269307715147332006009210483261574929961724486068752174454478110410578584548429864224390150948060472146433277509962788669585304186502307358519325014956925409712382867068857427726652319197890245062765604588373387786247596964188501528149013519264582131986117124595446556844473741200241456848694682490806519021125845472807228995692985780852419362349759829916597876412146336197159493304965651091924657602237967169771081624760477670327551534488321659189674415608969108438667144996610188500168152593872733862678420221350341563083142253059503560438898700520645137090516563629117058052015127425351061798705944364991177563876130173618706179463521729433901441974193590723086607886328319124310050349582534356248388864377256236834537993536655817350354987022852869050745498071879192842887006725142814261774372494496241816947713612954795615482397892308151714603906946469110378611570579119049982611977438086194974266307553805497626317320374847018317591317328195046855866519733017399775295936558501545114216039607976886360869882616496575440630467161218288710389073443799865643685022438993088518910668468127130136921606312947670263804504105800276705917666026837156130757001694410244373179653167221995592308849001586522050448333678746905772964618022419894356262864075005544190295689233296615458823017366578807240050648229456715456946536226537890868353088817893800552608714942749649062147660844039735534332641484447563562824079599348340769329001079682787233513789043652580517394392951683227084499715103416840952578081866439123384762824812230304486552506230904439280841337187699919324982073436620684061347653942221526946939021366188180880978078699750129405369853899983255072133132301693236865486121997516361661377962535206791220878428692373570798486200852363502230277313347523564985893559384979107666995182872769546945221108380132070842870328011097468483811888071432788968495038133300561529199636881001869941411438197608070160391882414115600662085039775065593640338495213385649839607371416488464592820042943414357586665287209650918792445124094474900634193672513126848014164261540406358900136440750488728155756417257522723837398844582371714635269022660154712366540204410654982290554129613164638261694527335078695602435739071471543275846313581623476716559598947611786480694690218588493737711835350301088897548574409744523126884944372321152986049095460535625054019935719874580108240798930652814966423440768844427320749191725156678618148119326672575105596809831245901054393314106382013459180092162004238659745555869977074558967205177190618598441116253684565642354231314600167654704728120502796522732914696741860535259757785318476387681347178148041925144482143389061907347896674157086425886940641933311272925965022494069892462391259106434548042023071523287470897734122873569523104251028305839157357805458008998244173826297191669594162782483803684934401041008228895034520754482281358341126701051147026771301803610499449553842325301691592395399352358331646970320948853169951305993414224843710491829631615369220672419442759090931604438769558287929107398718982944709483886110950768552288331285904430084421922724335607605395900897376322854539762008963651323289211656449520349552241818489596385920983862273036380126001566497187280547311738226022408058273773452094541132395605982228206912996366567543400011356313509887161786959757568040163555966760540434586618584480708232040820967599801872716047686260626564898011287165828461756253803390967173431126248330994362989161071776831412539416318309386071251921940851161582375116317855536711001544853036227826046850663629737546221267071451546394170555392341486217491871453689413658852047349561302263290961373068383928474943094313854891234327822857253807985311077709526206301810456399973434493774806597502998003571282342791417819557356099150670705627998257994178029627598731624542221978122629888025602409620483001353622248659505896199537884111862959778537977370319382793194790740190223826630355074520852188609620107503014789796011343341395393030835257706249412479010621389516886505530810271358746039273156622431980542497443586255140956120497457461033953470351295270650655834405030548289080151381705435531890538922362719807674317530562050754269003320276361362401799881914156260215844739141327033003085198148925511606510054654408724768212655665174965541818539140508633231337902790183225645101979069398407413326937000127894142306146900663390734881454881963095261195534467636908956978493200800373248123410633093054288252176056095754229890003549926551412275472398547318241410160880004199163353916926269226685067027719368493769191168892144729186526279054129909097874001278743377904667462598445537649455287824255972987896471252069476414902560594984262232396494078042952997735387212165346918517935933413202942887266383936810880889149798486091380409011411141624819858306088386138313208295499353224379454629107677299686725250857952799015657799495703122401954604660005629810705068019657949044732990120079895642275105834982247842372971202510035220687476066057462950251904394477724769910167547207448741859795555144170472931183829831730881463876100298690816078686504077840340894755886627988235312959927152927313250372282488262735225101726446316753563873809465867519254096521262018180321733495339209610468710740827883195413995426460452820060303289203937111937023881915876115617706438114346657770843189861621821278698929434507085586060303683245972189843430462321797980223288339467666905956732159969148023438294902743705976098610979748953731679430334328265984761129133572372429200018041143594077938208047628800416218719776905068378324495220232762523928527614722691443197097338424829376669360659407082694136220162948873396877712944299638385118997737727683047779348828840503006157271997724206109949869615361035214036437508601314974507728210909859845726043588384508722055797529226817826569374859566631884534370653605163949657047861966859199820881349181467729782639517306278441757666383682858132622082737063765632697672675371700686048414799038054148915249560085261360647313009224093376268789191666704241929090161671646645255314767669072499383628344045714183818029035514986504752025063081596905490064400523073033237246840244916515138781625550768460001614806033250373219229403959224402175046935659776223272287307155331494983866335356888326054947282735895310493070985477124116662022409421497973213452732738153587202751680858896301312040037091395302537583010052022444873371716332872664261858770757232219101417625463624764076687846943291782275287954314064005431135439357415101371216120421064115389637908382704393377734988736694121310903447953602354082818051411745370900171576594523963152214694028758763764321138285018325954614156847160617608929495331711322070102461813868783905973112076985354067462475213912687924056006144263134470358030535894590315904093808162597427622602424948127352945300569926286424566033077003885332707252457054125245839396275493454532162349784653878776435582169579991234733919495250230862928570165687069552670809619194804567174586510760650363138123477157624896982899888115694576299124978128663866991755849902767948868512187259401746423475446327642698891904013387517349699656781918373608744139577507047032808585164377002064898896070764140408136950015055647237716672265046461591720376542340068260463915559368917930188695575883171142243930279683462675859206252644412081606705849450522839856530550587020207649405037607634629275302147224407553171613380774656734796346195661665129563576960352845227116908446381270435273341939088695798851502131488731216153604250724888138519910138635458784434081154245833824631995875918507420741035878500376049298125188341254385220482382361741155852975495711716797885881272333676188974305097593592769447082682284570734871647859019846225489226504285138764621478289630983406535645907861925726226572600665414801476629968493551183709269332124957616371197788352000561382637823547573792532007902950444747312140170445629316067343504599526246100053847134070909417794353018792576152110547294694136384981599448887789799513802541293447588684160632729744567423955400526322062735839645648933863136884633232892922070586286141801872722491697203647010007582287550990452658516281130408978918427783709410993101697026089126036381218940339237611350018819297168132452036405629191252896109229853074324825320640539721981305576478724877163592548731295325142122044122632385172035180537146559217044145973614193330603204876360910042852153734814906348566919408363134117801636232982856928543980565694083339721969142398053098541567661286396550234341483301350705055217008430203574288554887458357900909296242274411128466578847942431831145523842558744382410676733075045844334185574236087817768753253721104247808696872087999423157946930531950825519381145776784929111711459431408398839839890085683443904578679805663376096052843147731371880287366799830801397063032732053780768639605524330069719502486351997190476451834750146686383846278431703885758862402561393101502244364927047073141556009888253092800223807857975928776324974341812910231482321000720926358425192735968067738392722293766179209341752438618072067456004859281324593248383419884538618455463258230225443486474578648699755085899857265665289015841237152080574803294755544197291901969440017663978083261882952600662292602950953721235663603362395834103587563059707852072951598424590422892844799483658897534649926886471315957154322909659251314389363449744772400276433447090426791377166308038086214236617531030700044015776115139375464178325373354520695821494238028573663315670414091434020317205296879069895726056080925870051705112142944835529999397879450377418930897039658055087897898602466617376721631707220196994362466599883941094909152174423032564886452478602011245352359507986909603484880395798591367186207676190441949847500005033102026335814541553331351122706320784056875610338696594051636694518986117630599646222080323347828069125768202061073002053061502725337853660848278610528253234832929810021789090867864046298873935671132948321500009536371625065987693667675000323670259627768462248173942453033860523322779050771896674969605063786112590783683701931086425199072503757956348888448091884140340529383262211226230238126320126730149769830071980146650372846059936620317318196962441162403231559237727632677554081179919905409742488759372154034473888728944978029019686410392485647783310167192163848728887589111132365261223218661147703125651338311657821710563214704332523250914427765757972170783903910124433973360613661573042932619828339077194389898552753590120343873199829596629147904573208642052172119784438663914902884007232779029234043622454111890000124766171666907265681784943829506497747192832669681620394554175641175357730677339599319899711322436758868599859734524513944127933006185429791705264524880535881004676282622661188467661376956282379283983441635869132081563564848771588753664743639035937097888423212716959914719253898307938496485871920497508487875744739398603606252172915311198123584456968620232258157168425200219860957741002724013727562824577750379593036794258579686542224173470697530768900370029849306741346570382221536425251050133169182846089751405095976161149429692488716284591131905310944166584417897132280527293155989196628524700617823232693336036737812265159424484460146623554183725260862005662889694855559528445347911845286042951513502931741641468620372617653942061855889406802971328294046481654811943207637545889262176411870197168219130080920700218999533500116031874637617522183004696213230177551064364983751753272064760490931934520009428550325693791809861651352138368934382405412846364271989330619225840472614186670364347886013219090502953403695837246322487084427766912021018644638108552341661673928337406744442139483967519926157480907186168883195406961685980761936036220003486731004236521678273672151255709737497998655973018708427383009126414649403458819864745218778170184102341205840276254775967483322683234991677945252009379190597864298052896358546260119762432645298318812609994187478391397089000773818814056949504709312324507722647014534770655784972004336430209270514966514009618850471429512259075036299659657657101411369749366329377290945205713179902894078470220462540742061894794306887004775964757265866519113844074947646516575022060687403199043635759139233695121013551869328258426993823652311630750634517482568081235158949498863666304425574588658362822208052606706388831416367404600859667581735138860384904856169472703586516647346119304182668783339856013852121656411399179601010275415388687888203154493807980050271792312547091845336825834630187190780647856858717014632966216572585056932123583036468407340203507567516072740912928733960723395061763709559693813930303153433745963088448592445553343346745633644648776821637814937631692935131621682083880199801511857931242367126599432184751154408736006781855052164943671940317477131313345794264854703515845873904119354805878920275106032833823865692295647911670256654908478654028282385350954208457501122777097672100353095486701205897575090041805352088574137116265243052584819053679493400951439621680077368573686004551611727490592470235590589818925146624460754423404653060136818156510771049683187777529171973621702173644283012441661599552502867161374542191204006276141538010389958890965571233818069497600518128804780467204107841213160066813697449049971284488651489263624315013948792359885639431746157134722759182952172119789414742794301854345975016418109473059304649888702636511980101344359329053567003958582843568168916035291333775615728133321784779428372664971960072998752132317738030028248641926282538260768299169689801190670525424504794945382344566461671446303506421114448525149716666687172195840567797683236285233153212724686395743919403737617055151423964666692331736118775882623577271198097894198725347080879603630786164254284280852083057357903773176944540507061128778928198044759317322205831453928276877420201371397936184554016718824924026264840502685920482957376915490615781421583571407831353467903634652185080756504794784113714531296806421670085626907464471024220266447938363509571609212568682201068236982902682447117101646453815771358777689575430120343800918025217277104034446813839958718237729579760545532534551800489358777020853016386942108630585157521468281445450627106759229738616086027478611929699481363418103182445845780018218905678834635783610435795176452982238107682202223305476867336315873220225598627953468316550618713144088705788922195535243494212438372115081417748657253495339883132180170049402830023354906664606604438584976433610414316831404609615831690928883816147623861925318411417331292136715854768151081032545085701712891794127821285002689859648421233004694629473043168068088713440722463395590559807198578228771579753281896549017403001161012703808027542354651573618564186315806061295656267829425855849372866257007392712337799424838095639444492590320130370878350464443796478584076649667701534435529168340905526670295821993165604749667568388754859060993319432207509282124757809492496986110592668290411049163820810528421167712745716328410824508625881505379210970023667938327011765306737821509680727465639694900709902677147713233033810404041031500307090372485666198677863266606024730141107687752599016511377098911295678657712232119051926432305243121888835466963785592631250980479840868202487010920331310073139360663723066278371420227901502258876417720812545021260134973322086176234616680482737699170264405766444163368124252751253673081447780695911648875554831668344980570447607428777921799082837593250918640241056718079279643977273238399733898857528344381308026626869067104514712220781388594819530994014163127763777902375999283588144304928315098377807176333208391563664809436180302657773217573893112658612693462926933973857438215387464157134759445247631860529301219509553282513398827675538073161713215847582647123475765709520053820025884475868341260099212227989654762303099156686019151707119584275473864900630186902099346963110165775098056703154990476489925093410386866642096758251084849436562108793280802892904328191596731501853003411740323304897637674213177014743547490385722949605165350582055153229094743940146050241463727473741897150116072491719589099991737275867202481205371445554829355415899620128083173148119143974730354802771573871688447119934941695275568090913795009541177207802392302256629024972019628872551797921945932356482412670194515705376700922026958832586785347509006458113271035144207283153607192179279926492776440199847341196234332797701711708273171252385347576231255076163382756894227486532009577059409238507172189401137570850886118632292213484212363025621030325292725953399102509341884732159797286399327637167045852283245173357609475220801375575176181702973203325262719534290535072133127123678211217644880603970717009728394167343913450254241431418207968667413857577305408153865286184373526305751492444056347708219415706739837877798941744743248315682914664553555238053393594142240102650589957443044232874964709588112705925581728246145290968222934811074222099256693354078045415253820156536808721805361820610353875310893644918682080055371303681897781419961006272902618333543845554619746965091936243113278800772752690832779272190081549743407058048294869185166187613725128395429697153874517025209704487955519335679583513339462263887693568895310624084012924093207726299318042197798951735382980295468962184729325221902761382075647172228905098490019258202295352739010115569016464172778127103130806968206411525952840707540201014801533687285878786283450236292685207213518377341360236742280510804374313603586317397329543253848041581201679182991890659797782098381482361586457077771943970343014619301566399321576901177678516614908217398228692499988742653069885797444267514690317750227345914900086612229413271322383427920122552635902085516039136395812392159108949547751096880026720814852531896090281652909809421617046201910832744476290425462077215773835321641382396730935047470896916873735389160881547573143887200199378280312791334441367006800241984919464110137685985046152947539168155050974719721245788374623396386103889317117934323886543608455311629815986792305553316317373120493293342410622996672698695576052053065931653345886860657071146553515084577255331446863966304819645241311965850382589406971162646808437895463868238093118630520657035226189172421438678096948889490561905242151808341679163989925881500147821900610555646307965557598685827889462451145036357297644158368142766058573122615394642622356748466688480182935695614067975784747492973759756019851249975790727703684568405460742972236207497655966249416600755368415737179817751925867119679312780219772252046381463480259611566424270767637162318312266478919326388872896553509902341814696819652480298427140400072370008256230720058575518089321232517494282518043499299343309744557511497702098228007635656681863235890076303841612618137664782561347476181544384967353586346705526054441414382721069312199943339829006356365306824291833224143502939738213295542449714531732142168632779385027596179039538540084545685702463912725225137015492584568212843184479469969109466664227483639987258576576956787640719404272089848581851792473797365456394227003165480259884051442477827246012724612669463366424223946668984531942502980480937059874111116721953241408771150885172915138579684931883438789048592970319396266491300963730933180652310635197394163421923647025616444401669287389360549330034563588393585743163053750613900062575605967809572274445842822123674308177096648303202790452357817223058289084924725187216221106822163011712276688407717034046981813589379066560952498272843330654018820325134621064720782102384278839805317417830804701560269475650820484250322570580242854315919504049562744397845038769674956514404296436340980603545577439591983042087668468392600480998203812932479558459445333140033978566360630597961585811187457305644232102781334441375356560563613429752690135545482079004595269662832331128610105241604819929665049532573810251000510946502727253480244962460811621437700324596026069394264264635789098774498440818385476654431686113708209108900466054351634510927338163043964703640677840875571859103437957537554738407979010674978943782302299539837191409071405029353214407063657820818860961851256131496299712275072692837689488262334859062325294182602197306767561296758620976164750312352946974057539921449807175357141983452557728762598434276776669950465398612229064741979567265063878955062987570381980591744606286381382220024827828147049582919869573214303043617023603757664400298892261267578975361833675108940996778982324411469073613696315800680628910071571627823734667084476088583028200881755247674603645296164390824178516125292633655357433933578304860555687118444791191846364349305941440938664785174447188595622430042858072639385725502033813190887222459902060221243354601169252825443731760084772042679255136895102825563809581885454775622181727183502379401407902722535299381524690891924716033322565045332051101588206900818500006235943244044010776649042332364199725928506384653097381906936466350439950420546643530401825207734693879243256979980590987179971664180129539540338244825348485708429996033761161413022234635347811156868609497463198577721567034387036063783854735487122294806778951538493892748379194002873163719438576756648488723807351028481131969012353385260664666350236169270000309218241205310630613709466507733765416697663516722280629050078137036987309515546543516193485727138966452377730452227011428782216538594263349117066222263052920266553993870154405746010410167599638839361609724689466592185186942003688996988425892730465274502419424594082706435165930105974329188152050043480650305411321380595208126526531962617187082225578743253857426792507083047142616029434237964187371571222388773339915330984675692944892440332942947584739499384580715777485659861686526141315612353781957807743553308375175466609181977905452185296088266111751397177324052942987620455656626789574570248926454803488997955247420827913114980361387114638272550995095415406604138528218500531109961187326844424743021175808126944660006614814987744208947479541024846923842594230124826207368976693193805444564536303596552844230189769963566353928549252984648213456656622847062837486544606894984369606986874670832418497561890037779788967572221991971571348038310861224186034559717942335987247109862144808385612060747253191564935539661213118932748187055294775486568820039045621477133742106197161419221835255615470933691874125193324172068118630263009844352167285847257975183443023318213195294269336625964987474887035777401540615143390283808245381365943691203079200288021588971434852283852637214049781160563446622116523836556162631319119603799267103166603546136163121131775150885728423203301837950860253695305221394449491106927516256573965885847813083199683774791485767875621606138110652603702236162481357533933265026783981291158589422642103388053381035541351887193776019046766017502675809016277468105437485257092574352240465285654622007600872093290946559248051009660781877563454109292945391755651595857588369191452236702873409071827887237388473373663496519474003531644683381735294684802936057163242119344669301840461779165610675095426287591916352325787453400569024295818265985547006945971773123136895433358907770505006420441753150387424884098579226869081262076148622950766805410714651960204812049536927229734518858860374518689997626031066830662605291360930810664637673378449177277148799548983689925024983545758992063807850159162084137934073215942973965901599005088820657451527007590809610239295409315981021798010839366844379944378817838290806946069181974555352105609377250938197613126111604412151353712541421794275471175640709227815212242815511170534084374764648295721754297892834202427922314834950212808719178725440158484097252729703943131427039787656964762249258981699375784821180191909193363541786328620287688112742921410602897640077355759512775816775630655398507802481852853293638037985326799987394325537627864822161594597411974466760771457306940725192630454447360404917564283260614305233148317239957108501565772849700787245934236062312073585389435521049589281941511768010330012927551967079686349762631828518563270745989620637173850857900541374963774861330325359458860937778860804041544258513336142435003753663973277184867569795063879663393570966914593529230779758419367231632972648331421016991372903383064170494172307109508044110021453398600798259450773893624320138075185617958883288232570589968180199207695651369565615955044625862148584704354644643354308595627828074269150351061588215672212227272458889930246940486031178162792446883415763843082078589612962566876705437656611081055982797733309048885314929494355093722640578155929323314202922717645922779110453619460491522435122423791071916135428078378057554510482472714452870473592669995395407138851891811981225271801403339919104045473071915985948551827347055128155698826342566811447143517779054886353261663912732865326477253342366234002939228820254755805000130121605626987847528547070266460842178255998067366415177071036958979564826393792440845634869299127740499902999235378643536047288373989770086323468853507449995875957850118815813961138320998649585507784248869585880619986831198343034373465977761915268426720801473692457019440601130937133563312974440556899018248932084630703159566163283339043816962702108629420803009796093905269938186665672109840857894810458528060173804736393901767075745395794018284302804169093205476222642065652113461523679620956294392364835043093389770263699548445723214094929726495248961914059146910479396692704745613213646023661609302692978901613393108006449009824277987436599818391000209671368204119030873433440690393870664679936983258201126172963161000332638564690573056218007845632026540310755530027686218985947380015229837911143312488755126143416702612459609882368203955142152649046147673840489683717066883644635732581676932317433598319502907321801342085483266313716693713040502187487404156702109194475887458984741845325625808633748281559424024972181081945305647790725052817990726056184128735124048530883269219746924278816106975571613721204144497880621329023778728028344324037837342407740144280683306885963368436858634022343169482793719103415565257947396055236611860691568099871335331585614003374759353739547704169139635932437683291276053254966723950894425315149810209396610919611331036105156533262491811033323039079535495875240024769819446166011602920540149639042598465812340913533446086239533401053724662841777227703605715808773779843684308289358002442321895213394130193628339780267044715797971250885692341211057079557201875095812234615409402620654375063825362236583324809766673400815967472076930213066563058256115556633119070260971583986382132736483615694536200658390535589767581477103223377539330745171919274936130426188280034993638073616742949617411684868835245191649160676125411885392165505624743864292682397979849035387446566720628599676736271723143767294277962394234397014005654658086551804924911277256616579026615253593598201750767280052492012481739001601025766245110027607568654655921406197152274526430406933784644178674324008169186761977439262758273628968104810301909625079721390867042075986729774079906104348173209918457183143100516681219496598400662658010940180342475955737355198686640406075963812554254753516789694295541982949675748484688027359496027404696893541411154639617724279685757385199414683192289956375460668330015241173612600540716241711951955248865696665883426731149462126721965219362200578472084405353457214235779879796178522479552032758909035501210896212179886662886530919660980446407224231351057393132542668349719641568293785656020792600370916973923688686163688081786336957634288154542016611062244212107104393076166162308712515700811171850167959662000279842780684019383909411402623573427962172211896319340045608181859772192904677218635552392337107456844089173623637052373608459003203094474522452731236401509372326348436893915346535852610888123780019875417209100266971485679470743996580321060774758268689655978922509357464409972628110036175297198753954570275810963996835115405632588674815278915082820790389508595927334440582197247313265055336413694098028895693865639297781251871351889724921508700405492501680168655025091667475457553233513512179839621410036096320891988906209410786865362004276816562317715790591099406600462410529860726707809207840904357919529978168697106094743672036398652756990462519164296129267051146360490046946844631960805006845461277786687364216616289023273523676182746620154417719469429367559604282069610767843299175780375063715575409046294143086619481118882683507461414104191275308326297704232280286206774718800043900208409976476497306632650648531143108728165304177144482088760210792145724806327770853287642083175045502233754996586951662839952866224702194401372005985228149632678006822175935502802081920822890637120403866984186096660184960751485122770859010536173473533898353756131845454469088325793358223907985787099107006109621643159508463537883999908132221369641911302303447923419282495760642065807732117646366853281229994802173481941389474594278354496580801243109393993339571183550744309185247307651319318974782579975746939032308240833380351875495721695259304990165311775932042038969553551530877303116585022687923163640993466521059288744817540673931083239852511833543592476856005539690106980942381218591027143688961251660830473966206021801856382626773946449631857669046836122241234141910947226087791418376730242453469099801393605248057892698957649205151528406938748663378260050682865438533934909363706833045290619564710458954790296024904311938482380556789041096375992400355329515331153521355676591877575172148017218698568793415463813497202839244296924523675901875367473296667271149820236066309207125161432535970494919967728126186797868828566150643956420990679316156038281758380207191347790624832354586618805394803744019177706634923436596375173114485170000041602056129611075339989588472139600703601107603529421612543323906834840169446541020309299420488719209888982939803676326774651527533602677892921718660616986782349071271685202946742075433700994610837170154352648044648522520791234944734401336257700992650621728023332426193642359171989730205369816328005156772792441081306797492988002724940393927078434091299885131499280763407332805066871228878490982818135512682067440457331541851938348644907006027250122185689888145259525570258053632538976128755032333029903777207324768469515641823933871930142231945773165308846838625985651246951442211466245315146107949381577531921259505178020739765224108587150555904370978613875356880003775074498991138205812492338464956433913229621072092634353993987279115409996334774680760731168030747980894120116779695629130740826841078000942382080787647650412939067888356169264724464832302222574610162496826590514760491953460238244891780678738745258266727447772538027313694303602014077763469742361143712981135670119508589094438120740997873065973619408531292767545715371720741232137112701145342380955302758682670260647183942525003432535572681396860746868427889431845535631051348615065781054136308072780263553194286309134495374195112720515456572490174066557705024773498749754037915570717091415066228893614554688298884261697119059016794942911681682659741066589047303256137862111253447703170834231090881266678157329578126743634937874512937877675772512538067671476333354577506888677455074230754639478022062833176120482922556993459232082770479809373332929368407713446682892181445751471248363980918803866193472865092207728364143822884187217587178054489541229552442822070537966650080488830557854284293317000120387950621049997727371706572323049021883960485154402117828867913816232278076120633834442201176996108031976866197349914961433380259538698064614681378023876401331737043948279553129407368662175698511315364827308743831165370481447337697390895903019862856925281162964465654722832309175909125423598303373312362595189442562531056675869701958638355829061194728046827169148824011577953378520451196526011557277374969583369964172767280860831217638933500098414559626631099723946115979883976053828677974257840561416363531095848950883960777368933202916362424874408236924992854194122937245744949090570686838584763171257440411781138855483091864691086927146150786402826685042886881355123214187145455784204616786655384684179576168201175475797954581933206284386020702716206238185736860220864955357981060522084854229662600765871844473893429576525202026195577059922456255676771612089950207586845630611452606293942891077326024716947794710029996582071314938694835504655815206559682313409472337192634574585178524162981288801645152545692591697964878972327114347416606407419216208914093544512480779777980139043945850239664167674957869150465712300718953130844846109861645948827342192084331757976329147259214700411138598557759191842578711950350021208463835538945211025907177273109114557838900551301671980104410307119238165759359014234080063157025281901638103357365087040683076413282946248950753914295765032686087171032753906819351560964417765385491068439031424994668833077907853668389663468546520942510604996023042991190231526805937693734864345377637753242408033530614722574391516118415795245723248085685944868529102735543796939108394515815806638117958886652021960829211842013706923022220356676819035166785955754067210698829623434537789140762875423715891939147311104162351172073798284688944328815723880939823998577607448876302046898910346008415464596350397171517585599664363407907444003160533551742776932201579335374089047460262373505781322514058043919350099235240630280823503938816735847143087127870539156733111851937565485761407317323160733068549574819445901961783465665501804290254615654145529899269219942011456938639687894773714268917352278124938991579333281756232113724467965696239715359765391458753740844978250340582782640740516576645088445195976677159582401697766782456296239668835200875153105324264660885169747928561478941992632440073824776433131298620774706155055407863910347324713141375277150640850261959575908339023923297451891584047094823184614530951047151857577009161575295514841368171207096871994102493348689604257859007247348809737508200288342839401101395168002134827214861595046938595322561924039073973404337341485835226021179026674943968897640828615987705554582181260215502861637018493980543857208933282775893861421763642826578025621666433760965424893215644191096952101828695890046081966576870099599069251405259388406861540193128578974816601649579616755991177368859135033346714210076711797703981138761417330519839474515492148227310961907522099578830844937944724308421630302341238575790070048136777029907300859430133790602511155833760556038228229126349995599036453868840098587972877680007866274223641407744463409842049834623282652483966576824946820563380260273622273153103099105117950739220145396014134160225928514602051028767110869483761089468862208577058653706175648597079005166706400365221916216364942528468374711752290983219944482449874845271987666132495872869405474993878832323481959538516360282976197137991822340510450462168987554145035041604066902722786275377724069426750417544735594641966305244504244211207971474180363821372372044319798128511767204578258035475651329783732371428058331250931468262171546309656969688354816662603068925653395497679280069489865012900043461927065589952044194121682660282349465413726945541138526251933238074771609802476749928337175905255583109970816216705798985585442014914004588099017982299725502091014486637761430992905112740547761161160916200324988604145216886431113104522222915671660826767561595102057018983398694971949630216140608176779343301381684235200438846827572319595805194393703589860934131085982930764149344126599348868188152457577266115218663137684808736625781283285220537885558867570006963007164558963510932155723708615994192570454822982481079793204813358258683289144314408247561790496730577287222024487696662653411340596118112758589699810115357767160814162004475504474558258289616160203978912921849955604294912774520902729708852690341967610350836980905320886542941073827511505395912147581467687568066916490457618225197157115033969380194752106515291152452536918994847175641649079958434212051306109267097749777945772206386696393704585207296979675659298929711207485401564651253106171066730992340803373141002208436097061619471038220400278676406904920097883842104607091004856291936052347674420615803819980697771357892364497733775583267546264593824327445192332542740510146214761773029409912593930363918491574487173801027140889709668970705018839539591963780895616663748367234325969450191232793472032389499151657368131396757016840881753255849075871987647239668657943275612559884447584466164119094213126462650596111539949565292538614266444123393942208516205321664210581593974135583548909418085306059612301508164402017149473540883936075029085074494600940047767183404537029790503131136575674067950691936891137423541124129533559812112353625534633894359597677800388944357166613847172383900724960869071102599963036117483006651965004042639632146934683919778329802905642104229710198914069374290318074273214733813480698611021220103897266073153076936950103220489259434905685003026147335648965526622117275730239907605657202003369948319180830153007448618930459256513681213360091203156537459274680073177779920207240443076902678874027185166724858834763139153332105843971885154837942368538715768856887912541739768748937934323494451501382726885841981053160134401444826145882387498016217521719492218114822805565004346495799647073425391883197306408029748789643350521730268608286438943722505355868642416997000228475389527895480493445898989431725935684757898065599318616155418765337768361368486064005369539492189255999693207156235351956163186502659201613875607948572903771760312779236954519628018053996334165435405018523577334395864842077612935123972781038386571025332625793160082369681083447514310366496692968832162764602351632996627120513811215987043054936020665370153608697455519860854626443947248836407051290507675288331973288900537925134536573564387466567139033149764502075455002040952384071149324982678593092370367596189594717956817722508725906812666501569774601360510284703221424921743850715201590585108357288356660397002799600328510561139149978174942398912452103676313844884236551566052340373265521187515222688085719335822519146614741480884000437399823886067298394815387103538129444771009332584943394618793396283008733503944033652358106225493592611126855925393275727955675797891865491756451053409863093072931025118758288097347952230491312308772765463142193819455611580566684948488569155911660360265641024260288384577152410146664248077861882328366297753025390581651780981503372502669130702060625142542031336744609332181843660765952579658868642802711909268951891078419567815475096085141365514738810813987372860418440044233643995926863700703158005820034672506355387534395824168958904159014701746959617187436346755868497390051818142240727049616576181740039125573379322294577387990716867147172549862027682863983351933286961578488547880617249932619757866942595416397086220901369262576382263223978281929075464620973416630849873869834044735170389413632981323031284237517324431765312914478208056369133101588385895916906650401930609436343167541090715834894522229096155848157966330096401783238034098874157261185180292853303846958717444605846235421402835559122654123464325863705771988834715879954054915162865417562475385038440071844314484399130131200387501136714447806323380892557554032374044758506735151073281208849569278124838939807007616870977101412704228409535451429243213245480680445033917037920153461630708177916499727991925259790633946641348383312896978557016025711097810530051193612279079750741500248680618369067245914169292459571618822136329701297370240303240518022235797449330841462125000331452150827698893027189771361903603816169929149797872779061501676485132532108361697381987753753336556895607932680752464557365695565644351420872765354057593182032829290809376378647058214484194801070371111494947642684914180962328070964348245942433160395181086562965537985419812983706180573837805537203133895135162145251148806548558472315460501012734346819541221676442143145896005735380029478357522097633446188550168535795370897616430687444260103277335063076241911692625546220399990949439210652615295101422618264944804123564603777613191648613544391044241796505131091693494652176666761018705448246398635840530991602203650426793848952572146656844587175444380001140070239569235311971741077138534308237711442679507535070755475855193352368924791010294248149880506774847019239210088210186526409576252356301293763687263202322128893727337429863865997546006712763836054962252075950430672412559351812289944787062997743588591531936425368326839419233332170360593593863141750871862037678878606969276663343327631411412331115284641520716998777586437599938412607706290430836013485771637462062934507704136254207192533034232205523757337698048463382585265455975449712403446484888206042371532079247071404531892920840361586159121090001736090521708807482392966723871825902278320849631318871761667424401723807141413385390394367486905166025546466956986080889932085314896282821322734578012862285768495992031269115710321654207703944629721620304026077974211652718041772586750061916762278192793331433687825160417061885461748694154711474137677688422628671231433898877891480384705979286578012692991103885072144306777969941686423993962197114071868339724248496480538614027044366030520796380580359183584278901525137898155004442588410602404963868502510507821464515317248130633527404214707764435331904516934370213247957076953716967243046535632378147714122266496989841697924852445291238714108030427802960373554562565153243553955273569797241873169669982584215615304983237816767493486528562035248823423298797160598582714441921382949944314979043906591492245125829761549849798921752932884093482415844702688977939093904163689037553753416791553059782635929122050587781860641665451447452935804394040245708460992618682653586922161352541736570105734085280603231979556585220508819236421614569045982469660097221907782210808064055392880276449222217041212836667535294804265545326086288403001534929627195923480246013571010215604143894776556708444317799629416499124976933443714569062568579269610002034952830910715005228073340413576300140694651961642534976754102292583463719321136163533252891310489689019818266969682975718763135303447846737636000068504448525633702736016032539493003978128922462854481192054824388533861557186328380683760702268090018242917966635815174466519748721582038604649671529116883598283312268193231187292528001207002933469220836483125483074904888883357508807722051037302883303273202392087513057353427644748605858290294186172500934160638241575903577946229726976887505892403202772794741110967406142620049560051338446536722638059792567308502691230293425944206762489234914693919940464101288494045083575320238919346854154563348174586119198255559346829249911735371085563638330186631071237527533394043186946824286721037806030115578368612375775882772345027917948652319426612760633324575554349147058929676752935150289887090670269771585607023835965139119480588019080825901508414488068549803324031106505110811782850280659431352628310238867892939398983399596760489480731209582682062643772679973218254973157623640496145543654078623527616314496221114688243342504951282063615506707669137939691957519330683168140700840516645056958495478308954468811602020353880739117887588031671442436187585472259200436316545726045641472406033039284221652593265504333357432417040317921930450072054922591281368358851406286775466970058463889757322563838343796656802890693472636210038121465103118360348362175880357133689887760074651369422672176232525001102659968677979849323987382009058317927424397603665510645033679144141720988511667626594518630908692426405539407920265602509329311477950304115143032581262832988872718756982842448733860448937209576927128928831277779938015990887075873805248562034599126664931506016040221911797002745710024292236853780913481698758853493506173495276022016866176544877519461506488775658576511973072860550279892006140625260276985841700608912439019666551787431630888358829430118341988443306177225868940903700270645398393171321627152031168156299602326343177821112586376024207273242206166661018188933315771095914217000229962596757917876995583764726523540464104086313922361011172622424072440263425715408327074645606449848090949760981133971636590446567559034413223100248996215357144184943771206641185801171037415465633830686889663837458872296660732472973702246208565372887770974055362320419962457166704071962319570917977451249567057771084633919472083963305877631314635173549619037179862412579103511510280240109341604847481121924908819695289761079713644949414139034774564654142173407021647239643304989260284409292639001359950216900730408339508257416720255006233768989387337064134793818582950268853027962569227086854784695658194755354395299983807703860668726562166577557573466621967489817319848341899294953330195511558044661246502176526359898039937833216318212713019242356765907827921463397599587977449586244308193221811995576728090678447073994967674071426740053554722906119149149869211250665090004861792542748409178846027417730757588352054565673647368957532980708450212310437889417584601899237000769347627956032709305997028441421077309348143922461759767224056401493325473415160161160769250266322062981067622024776735455820989116750582479540557627399349244678535590417233324419868379204222302944454992727829598299131067032825269119007354612609493645336756640626733248310699626182806687149396307105629094150384670740967393745747941837079919711474614583921177963879752504094176510329095726292715711985590849393706511337458452879704649340579853954199983912319777752923664378185487127426994816136123948007700878304323768422686919146168994712855796642607972428112841910749378380198602877673194524104959170499311428671860657195935996175625010945567629678926920574776566764091105260746218838909540423742005968388010786850373813065375170394070361722105348951456151202667266634275108236239815783445519072575119449702479022735753537170034460899293176404741737720839912079293539833314331834303879407545373733453103785806168446654347331072171799801513517092750770041855112335209864205063273133037093308165928672145746641324242346112437792295402167230905153709520812912775103049497956868278410856968140453110795545516871500342082463387289405334610713328309493586705313182310222039569858081555887684966508169339637841299602057767051142383060957280242650038681036372107284373579303442694849300749449574043967644926676983732370729322042448826537050781992457051254933070098195327551862327034764919606212264277406764645432436927624792035363461538299213971203625078709435433183031451160248094166594498128455030983712104631612140698069898839206233944465621906187931487401358071710314818331420812137485753085307016817511079485638996534918759867235413044703869533902671366051391653907494212887531344336370802968108056137378360141221039688169507738544136828727680849357668354958420601336395691288632883891543818801447149429904358097556940024005217505700937453091912131879199343745929666395146841804976412087472877855837247673235171636151658632755611575584731722178798651802303469253637368839604869231057943007211005161106852717600971624664563277552168152720882631688017132716874631063438930298699380938541189227588908409947394743934415597117316429719969681664490552825712600983605694616666673706377903994000535360086173143708211790953168498956390384535008234127460246755942609626104398100638539441466380147492295893443962978173366218442578306083834758168668634046449338935679760192357918136566959217682341227368469273849967322430531910896219673536325077675946333131250766106154863477420525669979365427664844214393705333000050369597475585334432404968961240754552208358290464795511824542307527527404375455018998220242076548423940305732237127867597801426294776100811865236659885354978387466866319866845658572962243925352728211789504900083409611885514918359570247209915235479420908583346423113686551282945527344738909939210241981512892913483052996821526329657045185848879648538925838132901945973565116599911290889601552183132342473401315757087634321064455329351146822393017017626616994584936568414825974664271282291696004007355188426614434299994398827135541778887186978505550038792950570891451928079407444139227194636077663577260531887032730368822373340916511070028093406708418184528325231488925486235700822642886872795039335455511421158467916656750385929885653725043072511844130570778015686591662515902472949932553198079359401450701238621095289136356626786040030719430401640732090955578781062120242682144466441517924286340292158510310767722326735894958510577996901694362517999761857262300343778051501939953085135674659937730226213749525856573299912793278073254435105270731191364259562371114433504027166564020756298117080088377803767446828252564780245851145951834488013447053459441059811414350734303228041100211020700889098953245295131751260177210258942769639163512100971161076571145809503124356017786910299146459767320593954711892751532546176317891412853525435359019367956687412386739217683642568236144404567110965776216500919409542063328202436253108197757639309237258876180361344114019662976857034166188934199567655058033883188267840739024025119497220417688088943399434033655161052410500307878812447752249770749414464320920886954909247328306325253235173570475751220222554443947128737853115085525479777382233096099917219940818259012441402374296530368944701065346072607366405771011413252157640748631142679787217047854890321065619524381965450367479997686533574590622125789217532450325850314677472340472698011196549885554098413829674927212416440615937571814824257750529388034910292204477769971938909460161207064925324360114153559669107752842963538203764930636382561189533281395030264069254254376881691375895345470025343950079599641234235297847359474148013980053519854276738314808448629914299207721189189125100271304921409355372932700507878211483042092484474825472035000348208621383930781954645206499954002978516645959967973199797114221211334851699296695605778817462299333088326990215236463809747933373851469731517804757467283076185575654785960446447692772912933827439511567132032636361804285928376434509399167821169491598458982765453725465643916236331292049929985295910697649103413589686125381629774712170256301244833068630822847880265557700711203829129074842763086192893038706943562157311909423549278228755358320984648176435213995451401392021880067858527688539324198355132895643126066904342274206878094089125747540429579767974507565250653168828920751919065148938040163900349582976484497507147156500418143848230214693975932852586638891730819574166549840063679743350573642746872614828477902374771957537619602279121564939583737893066983201546587474291343984821360846893101821230673820223639512565935972704990869149018348060672215236486675969915963842613437446835649221625969164573642330348312663400501166202208858607327834973608325889789833048340170533495461290919396242326429470749880690236648714167597119670041664831883948816701412552385325398236067581188231657098934505010027782620316002222807781555036382792700103524412224304677473685704030034776798950998736924447262834703764636059397705653921932242194105473985486145745333029799362649286112429576519064839562297418223271352956378793319663379876787334857433939556366461082239211837780557523401556407731235217985601233407837340541223448178251818884272423315454514031272212233056389001727846833685950291497950079867091539664375198729859601877078625962154299403422417697399013314310676583727733280447357140916521151949572497334546837897202465336986640526276037998610770758794006002600528413723398096993460767079447795605491692251087857766234414011235104230387690844789282026940824805236127911822840211934329039967943002501445922517923600598804698666724361555700650690178689233655818366602762446958420892150556312510937903752464608861731669774592825976494030706033852744964618444206780252317244011934977010246412041951724904517967705297430942863300535430258446706752915523170870204916278036754048861333449887647812608019398455156515594686408665643194892317351618592332737644809921620432702542301895034629684543115585810194153772777903400306886303762498312596057827455282628997892014176110059971583766708482198535478338508348351527378463137538078044732399762904988295013341177939672816455852139146524393414457583028063001759182104521465310417924695579897062246212724319446265218514473623169143376632221655855946513845712846063766777284934565251486819984425084127894434850751619833375819833117272129544244653778969128068849446005800469710222484157781299063119869580380844822030860076202642799905213959469635304343898025652320479836298266417722728485289281809119412104507260025528963480256011133812688326069734623865489867492076227467927218614906888651189345871324560633721013150543470842721294898036740020289824172092615183291969817158148634979890761745666449196804056570921334920582483836548718257550048719290904588032783492675648400360339585928939939601490785131971371128867912577344626987727321953240211951291200822036759382197660652527259081193114886254680399038596984861546412193810582819399108723084651074752938102762158101471837043748913422506853141619932356251430246441691868643492817028320259630916128754604084185130278644094657142111252771954672439043519631470622350930575746029325817424907991960972563258685550050227869246300181053337839202128371409415564928508287897207705244236919348722772253165704031876682279782522555079167965914336465294942094545405946926877425041274367800403487037350212586627596051645324165209289925917143832098948738688920468115299253847074172597531564240594359646497952397166831395976885718278991106876144017877268152023166028488618766150319321901500446265833695474252930261565060087020278316997612014143203062034595427586335059383411232376804562664276577266439061366967590683037877725400861008652003235532580716508664269551406243806068012414486507169496579300552613591190233924794422398310321697385604089366614315110352837041595080916732564576617419076575038442518502939094377252617017936954806256911161862357841461649299315885572041549255981505644272818986069159928125319642452913576390729850632113255899216919803667399485324464547720632420738669809603033661443071933690182886818238940798389568675256265729658966719851793361766233184716616726958634268359100522616218310539307227286652039388743928142795976328440828717988899621778061705331392043099807037495725698011579360899268517668179382206053448909921062598558055503808288518267813830712162294860559577642337269716714934784781029026478312477764002250961520055645771793661506861488439929236243214004787180101623082853972411717421788825257093782665631691304527042299026667601603426196050468914605366926489955519123426854444739816707225681773209505354611173050747204210594853417742914006604376415992975732346768520000709776847143949325316046635004973532873033980438488739413611673096163362505631111253328840017100161426859755781828620230706431195625430833015772488074974362759377927673437487150612738647939799858689682499637270605591268690104140246068574042730859266056633372890252609499202233476538903974477520122943504954682193229262385750572543492844386019123459155684022175536540367443589998193852224819018443199580874567897657580101497493003887854727665318408215360297268206292171162165472809644639725208847372556046791153328744583710789066135564998647160152218580831161541719658487524174116724300911997616164725598463199832373819097124756564334355978412018275866037850412878744939112753652746690076854684427228849250151600123666114972606480176008402333194542428738466337850222841471943876515776357092685589971890262691017956259649489728370226616775657202546475314723130533521247127950499982457395577394281965322869347987113075465240266930095895715238840369321044017723953006405524411993813835423495901796257576880352157407951615871527372469633890590449652816596874114208658963270439095718348684771115544513644527907355740961579706868199787536178441465852617660506819155735877889425760863078961738893023541457243980114685233636822208878137885727048497275442590167062245850514494020010981617104452114961421894900976266333459284718118963970969810652286970539177248916398591114024230759078794326349727783291049254352882393662914759655616985877908380343816638218314705860110277142250718473112552492318699532757502462221770626843358589836796223459121512880291473566298428632242671799744851108136768228014657779832168786691580890298676402862502230524348525430062900239287388323581558384823415806783596922920379907017629136293029270320491681430097277258339756335055944803038042951524726425952749564241260274459054816701634892825131307011453587558077243393055147452335683320939762713964698830105433580114890109034214933044913837554710122500843724280288098831356643159569038606383301696998401557418047403966105053384874174759536032213575223672590766280945156051368513334771439977892639676267086972203794073934386778595075331834655126479176890304334141811598750869955306754034691255781662988801661205464651856002274605444007317123071113305859255359922126756611803988826675239702970821749877035180424942047033068262933595845532114933113484008697232349729443197425833410916925027202325379641210432771363321499273941412878345012653070062540130506153063944261292362451493041418726221972427554541728078848377472592367549580644865662139529143295925940563695962617905675258079072484831269762352094224131457931392380985135622475000761898237191959670612335070322848625656766197390538599423387733080113566756453468208138298468780586932484020679521009416502836901622901731282570276449736571390993779991634794996746007222580230399568717702575570625532667729512168385032228457227568614633255039185192620150074744302130427042645788526187503296807924801698900799168105530372687555226889755781018501825597953297803080622482275002951705588523372682298100606948282688206091750249825017326651464074020724640887793762645987545143311857583518872560144689200379001468673113755811554534361148998011700543137276112684658209796990933965998633859968250829801016735430398127594621663431928218728370846980428935961906298233808299424011046668539355192301300959392030699291299176991494248238652114863550960926169419865865031581858271433658426085470074487276822319286597002485800755328146655686360722383692066804165050505862585048311039185282568098839738822718083360649626715350074567394968363559035473833305618517484825191114534424001154207952642026755396388550878402694473257459439472101859540520894479098431385156589591759862704877077414377481945015831872979914754473657569535461242130743868785835538948970361782290725826181329385468260426398907791327334422249488046428028756762955908610755356327157275325311813591948596530704775482031683622261406333861238775892921355492729368509312838663214170061880682661674025141570213383857207786486237721802136738257578271575781394117125858201682920550470959875208817173350501781834646072174947593404541979783534755181130527669199751396173628248612779654818408611486630689812866785490836502162017507248486191308486927098430291833630514353899637182191796476882692202348821804578383251062968987025990972626512202350852611061494714575539063633047092828723293066008206357338607185394926746376896886697590737728941460883148190189773681082564626750578626335900150675899011602510740676000884022331321639055658021408310616601886445878412648944253265056716593111229061342215633712745452539007653228338257944597090560626537081435492879136824327636300185036996988425251602240733489271741874742241279635759619411017275544908878385324501714742246650829977198865737673496319388323219775339354374857817977587064120759634105905174958694989914540697823489212277873236268515770299646089122597991332951413803868677061270025393026525967598159950915800399356984831963743996753422635762785479010349448796620772958029766595623638129164089800344833007983276682247496506644378644915510889006921229974023939749073541559062960630824356787556575019350338462197803912307206625240895061013019478387818272232078713408656495487212345077193198747877373960560375240593108092436773964396023764866810287949694242453197302990191446441657456683194216401950824059543536809741958591493859398431040906869930194134235073811614736893952502604132583114399723427082623653778688367669825634876327804088515119327275395520155944497764925995832179429743214277821646443415163066786176710776100398619987475570357769045960392831319267347096956150637838402734366571823517054605289836191676091733828531455427269039209160020121355390649269384053549660749072286782034931557175531088941553909396923857247379807139212273832235106148477774324585964203008706996182947704355334201817894344661283082772237066077442482843451980201176130114214457936217355178841294593570306155131214270805517448930807215877253671682836292349063612422546682276321438801174213845761149433586248006682297818080753258675165847647653073561767580995047660517444271013048901276587534267567284343919795646392509451987848753865749723050819470519321867708532815819210726129514081996205371250563681667624326127700386801605081265477121274546778104287269526470207703055620111366094374219686768478682389074781864470367328002993299774837447528893971107410345101764570474006956675610607988255095955053742638487770740981703018289023323649018263900171706753729923578180009447075580938010860059040431885870132113742049182484025833096851291720152788784273793152143308833348630104020259959459570118791678981490881018622389101421473096072512399087545542769790742844984304433649013451952524355280723859343357082077585584977284745006322709440137536670528731394766375827320656393923743859652218720037506687790858795374061522795188947901678685464221430855211248058147732805123012242070978642747717917067829938483000152452362113230328498269386951959316958752714451519128418538154776618179938699728617112939855890268339601419656670943697287194758571901987460687157689156266511506911322817706183590137017779921956781273346405848976975879060369210274639050721275768002298305917611688248066697583292092077942033472636960776074792912046235555203950581394289695764392958350366490720023104409462319222107403683710490943611068706222036627347467961461124826505910282420990454949399676573932035520858923197466628733557255963277702154149742417102307604305459779449389454570560223117813452003145002844533200954390306105936607561477501033721484127633464693508089772050359993745378637436353525498298703353572142640143582226109860339373428702242721442882817851210210130724573103198655962780594391590791799604727401003443296934458713478167193951353370481342926588539424829647036281911708946728332199810996775512598154051626435143489438772048764825186225845060395974341135793806462442146284165938552057975874084678635350579510243652516348658765301114633122846802055559399924717668007959242417650254323821636694514713251994336177477556410771642993665629750370544389237425898172699050788965135564726044689305582740045150860912580205970360375662008399627039253616485830756658960703920449969322454156290990264325182686788672325246931814744479972979309591223526377583799984340858315976884802008081479021188328729252159102712895897217969380800843959131834654440964200913853666035605845743131001914130052886394594004588120363865692763090754675134947211660238894005853220334725746973579177522553220224172739479272724495797355061125538452972613099894627082941761223616359000181759772322118570819914999871818410326203533968340749645343168831399295060119840369022367186193835543171838707583394967446233838848766558049805490467271879118361631103340897983585398879872807084681791479215803680150247104582118315387940389158557406782631084106831710126977946557795174883936924521014678106898866843492283818175933248139369973840380402171390459890959110051603000443561590179990910443123939959324010812058811706409990176562147587380756453330081581067076885855658005863238280115756504702922743345560154619218744049848767113679174419176319369536809419594464506013308563817238498407081960257058802448949224734067310061485156886201867681519426196729598779817300745409872329174971544961565458525022069304672930679386551872217880662656744605164756571051860658487768953699217802849713734855010430616187576123432833229904775355867795605166068175928349856452686511091123318309960377952399647193633093200097101431813661782638024549133502217628482162932500116937066531376278741384286739284155010564877730036389900470351085152934202683303015419596534906260676143879027283740135435899973725232185529215994988723014697080272429339765725367369823462234331428168737896915987207001495195191409466000540630700014244119792290358781449003651482019879996513794549088897972161862673166571136225256825717386240392635693399879957797868707258480042414688292801965474163506239382813240254015554710939943264308460378942698258259116820827406289909652222988859800803776882646370011914558606625714348558537682076633585941502825374541799447892262528008044203876148836861739183481245535549448092905036332883426765409460122390116805739772625236379594068652975119753299286686565067582283728519583072128452334553503613079251400442485525888700620635052419211052103947862815766706351718361366924024267524199064050634035945551564317097954732811412425967463133292547407912574408918576744386903098004922563532452047054115324379019676009195465481284444334205886373477574418055534742917782835106500385050033857811735859586165705309042912432321963070350924545269881073411029899121010420769778902168821054704090262371845449501570158770823237030978333562183785582269110448483453097704256332155220801250565820138949625471115760821855403635177115756551112445216365348603963271356776118277485623449462704958736089582302862912076199310676220254804070043984906186980722440976131045549660528253323702854569820748149868729671424669245560271097489701216142014031828654451894151036805204836840180882476899914096948939265429035800718589937446255165834787281746984436214454945954438949661687976194482634335037732820020253704148894511413512384110414004890212518927640999597552988280433692949457129496959058632627489863620080848818005358481855973727623769094437662775120485629624884061344663506959873052045573300143637192437106215909546614104412340981575470171319247137446619006681390393220607527999507368134801584704138256266273364450635740947767158295110890393090101253189124205544994842220520509032433602572306741589379311494582502834994442355340163875812117895788367222606384349082384383837115836246135848034986212326048039211465002887800982011425351257221857064759454833060068013704687477716083862349935465496633873697104013974988791341335943104308477574704556869054247431691503183669316871024567102076453992636834737011064057611358286205708208116913793956462597554550926033790162189835707099647069041645206129807949418677528609246137831961806612479695405129206297535514582739631321210261505275694632045796867301414130048456952976780478619194129236774431348134486897611652096096542410497488044388285973950451850023921258146590010639686330407991130048847309539108139758864804939251580311561676567339642352648672090124892437862619975168987058627561247360602382271618606685720053628815814591568830970495096149285791459505690753915492474401008899106581203247913321882765666832692876846295291614153193440815929415690539331013403240818770154995941437008087336009490460981129802730305754840587993643803939476838259217206500186226675493742463311960616069181749226065710726982967822207704270264488401470828085934813205304853457384118315758067223338682877800722563660836836836475781791286499453358348476830370632940839092610114270732562284284228664190049699767697005071372619167536903045659192776779869890367751972817152899707510068018636047425661204387077170438819429183401871306099076842609209125026249813533727992539608046687229547922837207086595305492609638729988579971830176041209616279774970689996654399007925945919194591711618362365237401925195933226761195440462341986392149574669311948887340499701400095409666021946424604367537266185602336910704146837732314647837628917039329295821576239318273076280762205282366799278648218478800713488784605918146592960253155907730593571761445561679519065536733274666658271969953228919508700051238894630627473624285281536657624107159360276760838885278242933997211082882374944742714988713944484775634317109104663495073599652105581901743680200226624361843694546687435575557833439291021915282876564087986668267799732619312767461280398948544474554306566976450374794154202949018048603151976268653970914142707896631665240816753135399590645978461937415860093984732240379867718598887285933531208281440526260494367633366822662085431523281684240040857487317501090446185867426263975113737911363242207496812382859197364438395895221662916391430161214281141349652311310837377198228744376997872866835664971786841618420010018336868677877865319374246261462335472777923161732750657988977420205273916826586210541980622754148276967189505646612812485165788851723635999067088965192258967594969092378962164602097176713926343459698041309623245802296166374218467031865891333498276469892147992991665064576181660447704075316517080173053960098092004888135276930363095600201279964256208515110073265128239630722567152009469708429880859464223364295646512283389373280021155459218341386061507477420137884661282451169860446419791580952374524230731005038221716894249356329748464036131092442281924650387077389456381481591200212274281628095882396034704575636546295990151829820226703505688643113611728565508618409889908836852229673309283553952107536251146925165907603647342425740605174647741205526921443952976795272343407276206386640417100554279123291141517370976338846289505906968184308651658099890708664801372198297077847236516014657563149145685406805292371853809245531016379036114871393064775524318860004047267713985440241634367212602724101385901256892028032317829280679350878494631945307744571019990505888032461377238512422719946497551681528634616646508156107219938069876429359779040420173920873466337023744200761177638226144672034416812123658134241587364683528402672911834167200420477674190414767660972111991404418318929564175241331563560160408794491697768236860066068500649051038828048791998254534388186285317685360585510317989669959357216325565184277131420666026955533567766592957285914684075732239833832323972164956224427726637646429755436908648369940506069702372773542979333860454732599863884509223555280037168878217079166967927120066441070106076843431450353738282019934031770407044091193132775894170683503212087708336535608260634470007782079232115489029753918917168495886080732674689109220115455869258852025915533075440878849785840356651056956583991434087558691438051555587712788033608794714408224518435411065696556474204138971355409737406611278343281266980753864996774127922045638373498466960207053215260697720999804655378180089587174866309863055383212264705173987032996970794569253408607928204473096466852222992618972952692017978133409789903264494682265872159332575080878936925177893905052242796893294005863983061787603547655966326683916544176861598854416046872981419323529675989978004588838150133906090998540155714725797737452475874210310323728285596944655793927220892708608445141806265198933200107423115976205503449977235893590887250433161585496863225248257113083736340685854990045335369226631782399455937645098563138457448059712535339357935440204270611791485826943664357453843917251569960203788764777784043554514187424361260883560773648519276204707683933701996198052018389860966482484711113749743800371022002106683631592914040481626251791615829394112303154186739069908907973103097703728193263293762543375218212973768755608589911254980500516227022784314399357914131335552589884926241960016354700370402812762573051049987363084939172896304580590220319111627038793747275948524305807710610075403263628192192372300380843320082323690109991242384105791994025216526500124779363101769156802826141835426974171493651476338965365806380830294208447062040456114607690133571819466415727832275907059485369923524952508715742083048747487436231519224123964941051276812758161728543053279725755911769602337628980385655459784120541537429228757579979598324626975843949962267813434152388877199007309607375042922302514604484427031556239952288822046447562074137780952532966420332733898396422156063783364369404140958687884025018250692280432718382747916416003676079652513799920176162268792527738828708236296489479715283530560205248483185522262677912103003658570144114380266769850262423091081889384085395708498193916608016745442781939883792116362706615405336786503065726317001187630058578468423716477161806389944795482864218892667638932932128730393950052876985394223221601726271675700883103648764391027286814894039635592476105640506091441099847503642547155970808237311113854409788357621448073677519369060667982602168108617682274123543582135134515399269321641382446779543568488505134867639079463223277655068365978324862670292414056460292934399219833962305618183109494962794693756489923764560168019482465101987503221247113836216135494975572545520981159822336975010076193877523055212382522014954524048671019430555529264471704333176040895398730339749851374064083236953570062214843519066146179258806099253849345247836135813890758030865932579998414771748000396868667352811708549518360222081985415195126789733223126361899692009966210177688405486946896628449174586871921131852032016957346513167132800297919618330035988841227881426376403895522128620767588422200550693568280257502339222263731806204070183215529191040812423988859760948769606864810570715323651569954437167307166882520538301266662392407950792791315738973612408139346682038456670509551701122009214144315987956609417074792713741380843133574834267483579624286439313626171633654169634119319004855802455839954145705925209486742760608641985172488013639689576223388383810079957524028342000249427099766998034810046381892680680190061884873292143023552502435338726792334720693241653126382724791665804185435249024340612288644227063688046097414209070087514539969357942019055798880678184467667316701251860096222877454911431831927881019272823691580262993502430981319921579047924022945296224287294054129006155425562514868741485218386159458513640813069521634626338381669502880428656271482307678106692834700086192891103809698611838431544220711046559250079562683051933443764221590068077169580658582473106947489370720114997348043558608251745869349870419002661288365395345247246275633567843504827785642478766496125450370875676334808125234607457976313843583531527207571675876061930597995041844060111454620484902624399015419760092262017935745590604335767516163217828954542567609160695166454671048428755888388363284192963594302829205866516185245721631576076742202589279823399336249468834989985801710267093636617282681532496510385679137396474034778935178731704229644349787314039259802731819983644049359959311101928893946042691493305594664323383242249961329766558832489753144185342467643419211887167935559587957905717720557550626087967126951025270646125631547350206268196835354434522624699375321192723809519801229204529335018952314358797637149026845013050688698197544825478004411756061792237026132343938041668817023140978046183697758079329085882561823477556836024946584485435015490297721758909357518083670475348825451649741643676340053155047931753718238016438252723720391387367176902614019114166911286559316447171651153056358170191876939121893364374490919265335559869245334138631019325972917912413239525078496470334547330366450483109742028901995089574633817133208294206539616656733903141502335668488612107878300293698421618942665265237414714204381851906616935045830822489669604844320875086365617035145488258970037705179904851679101797966024685499445005404478092629593184028134454256482883798668542669701550163668641109744584691167307810804580678506200432059965473495455845882495985936800566933993476725134242054590889145100744717464356541307189555646609048300386164400227098536417453469819613098704075212354319687203617074702535764812708279876748089849501741130225383313624543640295991655044330063544612598204280982388387485527542580875497972038075608219182096664439888052982836055424000634211298936991467741008421324874680953688100912814723812443154198142712646489164487038244847227797001064475457739988982062038854160041372373189649874256113682281548484978193055589260842770101068260544327671387120434261518388845118145061505655761508754909854461952249388035292168764953821370137667660647739111020578800919753630256584111462657587615051961483839551633316210535824058622957980129092916061529253273494739302438566679979738419036875608252425734702695901102950666472659274201456770962414408949328077626378879048171859571490760009842352870714270999518572315870864327655245962869658657837773130191980175957630146120759199167318622735343478525388500866039969865553713383973124922108920561270790252920529285879822192976803407834490970312674410218477708365134688725132995784375668176402780930328413876706574023598784930614632781998678989354924012624768920369850592719164489608099306702148428320081128736237734429960003363318748671131098086891856266376885389033603121996250413078218391433258726030304256784855896863903585680660791083424256963161101241469162011012861753756193003573609835749523988875041335578953162336680053207099533327130210030851420719069392058462045848991735338044120632453303259611955246220466382198863754658525054489284922585408497700828771402042978738625467371939108409254533290535946063582332091269821574507320446308589944847324507914639615642709236578244417522863095473174844288782589283937501449423974086999835840381373676172833627549872511506603344235886658653466453090725591088868011918789382398257840460876411485151105580232656960359498598395289324909372110736553742338265034895766205897895250057167765351958997716928119011817458820590879138951734354759281593654515434041700315806737350516976046596656511402117365278533735502805928612759559892059316843720188010527951882601789753560972567494042635451443490970141481980117668229909697877540007213570303298807114573697637156014617435934359652600114833699767840373336672334475421505870046204018350509648570655592381563428845315700397896817608719884264472576087201641112267782747583062636560502749288374046072079811217812597211914378109095303143594095643501821555342274101679335392106540332716383312846325786682952354445763140724870727221484287979135469683134711590896867444956746209567948553241669317623415566151353686936295306774066156067811491343961952451571262363398882757252781136937712893936994413411573107054329476075766627084287966909476772572256790841506687671025633662003507301912403389957295121893474423297147816682907500719072269973253051261640571941710179821262846109403225549837199302189845716395147189523016513033554118568259977486918485423492017233842132947444800565512126868386949005347275413213192385034065245707827476853138197237742059780509359951995482998924982353549130111236300580231920989826002032151496041816053344564729350713972437182890895464493234949184052861534829811235644216182782542041291533282468277148358812127970547813638863862913108561084081208182721037670109390040844257331960313704625421964036414551714288036537988025255473808690021751715331292792663289604077279460253649105869144200841670789054403492865568470452548600055127824943407048614697531000107406752626173835337036114312686020382687305607565586841860628095061359642562112803049127462392480288533910024118740357268141807329736545527303283233685343772586351060248560034561205701990560192064830312654696917415705462002927425086650706535258496877842237302555267990825274375788912273394341785126405207923613098212482780077897943971520279039200200556344140045945233656730939547864546252735466937858029351651491009734830223558645351818869263882428969162965944631665689586326987357408755621866041637760387120509074691985360981805366294880370679644424063263322098440412501624556453694878284759596960846365132824267394031775332170708714389088523622530574795102628858610560582759995855978731394238879177354486309302562725226721763196341807673156571760750442807962737413060604000438936530410779526465059643523238751540796475026818343832822377500465200636677747808613890656367932551650826826937985774512185155419622603547984721627903262699656226040333953973432157561557042239553800479592434123828302908586171464260686864582817235949908571542577741365019358027232808891028842464286721198080409707856145735792362508763525014316950140870865358676580732591890163387860132328071618719655196271222989766686530807531175339676173239549838908696867602091358849960673247243445476689445529471424756697770784734382644037606971065612677554250356624373541684720547664359572043557005900842711329609005843843851443305858105293678970881086765046774019002907563404123834114678361980067585296553203985376517227790972362101683717270864674752602114893082628592016003151074992961682215532882316669786841839428425156039487522809074415319355939443853248323476209604149634293592701126694833285948583621075278526752965697606938834922130345202154250358732123826734790963060554757287214485523222615096608441091693222201055875862080740142290855685604530218471438886772492113769206165297137365843792133154490529175326547928681633319101030750315364417097365074464226497163761615690991193567983059517805862746673422086815791739019625527204889190874972649244294085026580825289335992561960075642455132805983217491886577130015959911737286913342731177419738569991793882013607799411946078102904905583222376032630625341533691958417255819319885500868009308287828212160857933634719791381634201615816215281865517129232315255733921901270660691639861112784814025416797444541204213400796230190077252708596996022221304291670411332300955274597052318642570471709439361537720253667441998699522108908463362597733825257068907071653584399788198945217059545592966788530576594559193372165801832799696974172268748807418338709253124427017879796080605505168223633698490783397306006942802170947165183932236242739833183949519124855714736724137210836970035535346558556114448499743905199159228751503522630449477473162730972959784357450237361901512894310919763850975595834314038007355919558904989525600526855065474840987155693422613812598504521933043364877102913270582443478309898000977072769462768848598754514182058025024282066182407726755830795886015154076219656556744686232257209177004857779290727909356200439956403854064150222754451116135874319239263362994167955586748556060548787683983417372102470302758101399238969252046081449610001494995209244920829847323609952055301218919821112891538360670767274307576861585700872119752734515840884671370265990036155815006338378267875816477317960663369711192869084236462016803124275557597638199024200571216793475473086666445929051741472114969630015067024416053542676080755293956929285690545710146196654406082188153892583410970542005983447494156730241322582666080968185338706609232009624833214899498352184962039491215115492296061959686208818781458472708619122591070504669281518876942125466337239741928603770393013186394764312135497045141460695676265257952997668457585950477287280578443607898643041493094799065846417224611963370485489539025796501162057401368779198726674059894924738898390440313285585695038021753843607581758869366940795444724453986244239680582167262638832159238276123570772342186836570066525932224746394610578102595301498656841740982020871802296503955935201495563919106155490309032481789311845271398622203663533271155029497368768731773070578250230553415468315335232958878187558482535244316792195502995280081105598455781357209652090957767693792176339336862181927094114183385327411702466839277342380066909572320230069763617004597996132276005989768998559810950035487786549214701570041645665386766161840334711289351346800927290351353114520482793611681774168360782866369612016457743879872839304108586561961566806799936776970784891435447669469900914797690804265138013384000565070271271117544379216023350422673773493824598589436498891244647948549884898606360285820707440439753563298929454253146946884635049487338698463478099191936036379822411779617594384536380382857487267929101917599188048675444722898626759196006746356842821946272075384809085639713369733914886343800419314990879705979664159472869956991211972726109551830919120273581649987979506918793632711036326666946276973318053575952672721811600317499217576544373182044919465214496723293476546231287328549265194061084488330423419789148947429080388186576018663727964110726346127989536109053067260190881982855395137351806892523638481749478216140532503367995748657590229983756108017794391507196167651659899106556199404850306679787859984038089028157091321155039163287181850206464428396687689990682245051763515901065498032118934533177207430707171445092788742782105944110651019510778206542259263625186835388153282920005162550621630525327138899216682589523322582624604825030655155350858422402668659090430859189176787524907426858764545509564728213578263479656105699989479584650840518160371832837825957114502396519510707832661197950450003086341963366197104810483470546027224250661905805437241207859274668254828882379834646101831275704629257167883538750885972836530441347522196540337165888965559002244447471357531127879289091597206435213300882170825108818685012634409351175749918663769562767265406132052656604414281395798162339508558577401570025406436970436008593259869861620726836676862129446320348646731213369773054452368135749999012605117445779193491890916068772189425855455321585342919904342399896067550052142734962265225991686522798153303035029969972467709234089170085468276021668738715773565347287682872033698366055701354810727158973751418108037845774431922728351984927370215099208273505527493968506462931278149173575071441199082528693997898726175839059752869488933282538040270194451452859164817786987302158441522498556810038857530967517126293973358317242132984011471505099412096556739756736272112460158968576325629517815643511533401097549894998427447166856753348338863056539229822578580503775418228291515115314741212124677153131881093465452713395895121305248505901094437083411565918079996081922039072199859556425554134031571769364494587769566080982501730699575493579010414311947531775601688140260398625505001396587978625727869722374123512263063672162496567447896113282582199234172426020313891201225407871336717745112673239802019922919318893839975425114591783226398490604706688356625770552105586461823997414816005722277375402547877655741956065745634508816969849654073835889501827474827448859892532067521612245337422534570029388769834415643181473552109405709277053468538580313788508282819730929535541154600187574066019952502261611553346142442025114269691614745967342321416622591568091471715353498017044224279783450480916462398613563772049046973085324009041822491843476524876678373610000039148329361008718766967254149123069503404005574729319173038598705714708625169398842818097659956605887786361217385434971179180107509121179274941524172135524078393115705392775859876260371483260642336574669573113694182065253850472813538581122034375400878188193853708109508886400860873321576419584571496323400659982113320758232579903779796809604833102968647572769007398241639676965578520029240499064617390327153062057973819820322502590052625336593167116657068504948002363304543107670170373126022405131723460878450300614383322063241203023347560449472039162691683012196360370267057723582506063339543570241740904310882310234287855001401898598860400468751307806572768280000173099875180806692749063574892745215048010493026592654224463019212060661720907231434702743772744720590840972550079020938788239477137400016296252138724841455458602325678358711282535421522933375711227843010159159398820011387941915535590771793151092107674303267611106329124224018339909832416596516831733373480653969483482260259207714230799228436694984928348665906871559454207162507700626914913072738309689065778714478118504922975813429568413270537840520932730788783801781708522350782886761801368926556915245383575434678890295374584703245297583213102239499599049999419441553680727382645690485029591305734511534061022274708817862836207158545715708012711309627244680090202408657792223878107520295343010673600231228935991844136567290684213706582076266737716446732780961847390988234161629750455860836746704691953454991867829482196141308530424467073867147006665204366011045514056817870735733654470962488829624237353544350245581788238492944073611516731287297012786098024040021594641904398816269824395938634572142158535515188844607737891427103896547261165637295062279609283701951291215110275664558518915907761293931951516913546686474656322463600173598783696674958200048815350979533411940591598509501379517234828349827804077894298134739340703925111838586873001417690936982006320952944386880728346886110975528162268438106667363498112257011565815834407415216373537339035619081453260016261009188012178307957511599884540242417662710645135070948277279891249319835318980447609164532366506132732951404287919922156230786330742876973396502631175523306208746984236337762844246125490809531896357091297956246230922861058774494164997455553271438123744391565509066799034269342473281674214446185872260568896868825538864098040674003054753473185935056884620338105115047287083564350469314810322126703813564712135405352285509599773893630238066023388492856676854780866160016386053154230039340579934200851182422271785503977786944368909508415977307991150874877177606919114378370064179650794802723585942860363917726433683997285522330838199526182070240198451808780004154650825735327005201979058940490854549541472077738150753054444677879144339161750455355374159859122623640343599568744460928117738674806833291291716429578773345408034513559546713629503745158220180704229553995736015312607795299403515630186492424150157100470454097540082844733790331072029550311053853624170244349028145722777689533105198857857769487007465155527688929977146222003602728958631772363632781925288038133434080953828270321128306286015417305361515161711586442286491769888689139286628601661243271288214757838722673200772058884515205183628544305301657945839306400003048376646280572684044291065618625347791655418927371516654365155519315609994392265717726217511251746651701508915593983068199006841560451765163033853169978375304668728151059954055825491024600308432055493887926590420672454655210382668271412323665143864385853381371562455097960981204572992396136870975890191249400320575332257880524957118023956147304137871484465372587128473306900208663370446430810022722994119074025744282474154178690131717510086282882363322660496359044998067744312594943462073949596016013720686000475373574841487337590364869906077176066539606972588026317470318112314170019115479164813949635184323018918711718222167952667619056158596614991093450771146651250874467154095135876910584789928039999373543374619942494018756711404453176043706609715512367825688081981416884617437218287791475843503583976824787012343782982642276994170986694553861314400559759778004297231719357508328455259945084284289059836320584081952836872176045201277377114468577819829064788969496849732448012023984748228161484372376187621443056717764777620189087211818656420907005211799113230264390071512006824371242172276132040617112213669838212040257378679727315755620851420167468675603571275150724188729589119173550848358306709801621658136101848688062696612926238124656529948197255074636603719512443316029105919427182681215476165438450892590877975870102847453742489262491584255493863171282472250199791101519762825220363961990282923405516943543263877551615033279068194147704016467370528402433521753861161878325272465130277817381052756318277165152688662337432723608075534686570523578798023766404647097016655196787760235061660553533063243241096480440730383239365284963637555889465196207864436693531123468898234244769634750859142023861521844763606122710399216538949626553677869118950939272403056198657216702433698468042770130056131883302486315198770927515575177817048934874799455819999990074424482756265240315906136143577440945562930488683791888948943773831877620412615873213499986441323491316093750035043429051738635868049007726712978913680383577465749708124622070941437117027524312268791355022769418975211006482317967896815414056883910222224035853360952253701971455130145073362848675956204312772225657273505088777976083129817232269247780184626018302276224128184778923736407070481384351537272838558796328852014189181480945337733781624921494015232743163807016371976203467368976049332671921207396366447248812813684748185813277075995024017099016749192404243508702494815632156238333832173039275591661289029795487396947231571428601440104693846264735348375121311253357491657278004652302297225789768902977981355171131154517682018859491742356257496011192736607914977292111084006402590383763027097576080124405678652304354876522495284760008605859412037604713758008630197204400906760732708310665542468145117964846283529811064951430942276562672492073764344665738721398945591282976834809697136453788758722541317471703949801510903635098908879306238038068743429346407081795509879868200670331906825891499093148921192253529207999153162525485920508954266943366309140862948676737090567154844115884094305327613307842445394426328502456287639593151576596321225807761591437967349945569588655801856156081961152769573047095124250129683391999838131327199911021706699116968788745582039513732704644486699677745889437500514158308306377732604538459294611877414644372987213874629615706564677218275917085501657552121435491441111530893284013456589538166747138664519162556045606340477247480504327450555229423283477660000305346844567925408888182743805361400522209576057977470410337998199752392434370860854436542220641116950826616125223118934778490858951172071265727203134030718108706665433743941612294153667798656650385432567652040986122396677189453732325993297192630099063553008612815488274939141589550095805306738106477958083944903541320895931137365915579565721732668321441399529081803245690574609329480157598754178263361493108761956257664090316631407808043375542594201035715237587965242052842142765196155211050416466639755598065140729003197281549320958085759825793129150343576689478949099914036774221832783119859951883873674387304884134284878179157331570724635036341718780157374343672288758157858779092360843847678755067823127305014247075689969687559131062737374995767177834442313384892060671738903123124358002564467820370816070057741237249083009029711079804930651861153473854985029355095923166557891379974455736440356489995710433733014918489177066848619567941631139822856362787412156903401984043755365896358618035181569413140386793248180468657013668037189973426849171169671568856605157429218386281430354990511538310015614075852005511604674666830160812696800383025183473671642604144878058657731136864940899980143772638701161939610372297156159576500370881102768811026638961197195954214203763529302036876386735513754598933465432722755611071993603486153189903940357593580787329491264255259183420268339886107185886937477232620869190535840058144762601222274769024151584573305985823377679056712566244923390197469326631572996079184927992701627405369116801885687328500109530667280522173139141015986527566512253514574485602253634824621206341593289059439166573520385061341898869997362856771823689524338084909755990252810946358808286256437003799397267494594422067246807977512763432767877819734155681249883357900266870736673789070364677637017292997304490303092169514915777941647476763111919941668181053169837381173168362885603445640969899756662986393547759448863361047082759626765401955999923352693857118601076300884842220753224913514455032173646045240079011076323243946379699804507892365401541647122108150291379830251813053703679076189362575922629545908224137485228506898588959420917265652589141020742679074249192587941797278779096529845514217710948391216840382904902559804257618426568827252243202679545402413899363061975204804812082143115998243982014078601732833403823044540660660161282552309138136338703144779335880034292366127755639055995713999383716889049518603206379936175468561083014090668193303170316600591388070274504275010011530411984570851038660841518002096310161273915160442415304980953821997004782383704069167835170455780211077461456237406554788806455706408832962507128455235371376222166913901873903070498688045916192286184847760407234264285226974292789794725223093819176108003738423550503155746726494239322666813599714293302603724927137489896868101615905905934049834026600152513147915220390846293026191619317224350638920136153193527025689450912108981469623520347248279153940226159482919190517198627011429229200210896817097928521164115255439221309348403442821220125998114641151539423602254482762429670499875074875248744179211076684870182379334805880746229035908570567440247216114358253543039138193454388470843901045591505164814632669361704861214330387787029784271628139661178965793406965967495304722982983613496103568413727726238036224883366912760471520805053709990712807594062230381453170551658795838278212456574254468886800683892636310381524675205004290845931286897752298573186765081221550751212072123420332162004963279047962677484967762316616347172472101385188163554535261502757725424484737210344754757170390947722404154402768990655554035472312920422830473836408126951022912433369242630661688612068454530893944586810722085817358547507879625868264029914600918650090452330735123418854458199846072854734285427614989561128231204897454809678822828724064780192004645034409953539510998069833584126434928895937084234123304270254957783856741668280529238792597712263152740376050722616115469507885942398341582060915595066236749762500426594914621161760399633663544850737343781376135377716568385567528845756065529982394990284881275533138261019872394719752347759217065857166923843252274672779412474273039789546331507934456725498756770588377076977706581881600729762535746202810224031994883965953809390158272621455355085967997620937399582897740354907786485485005143368880971001681682389493321882768618141679810048570448639452317087801828349659999806064365715259901075961283396331942330411031166028187386890680717750552266955908813394218209300815873045395797611015476423477118880622031211255748005666164230720457021603534059169252600208337023158967864665740310313606272867743009068042316703327219774320623806943556178993068729280005505944660328777595856146703450598046397864970654771099996756589353688119312267892389455428386835449683054439650146008757316878848584496437515388721966954789836384405808518934662175841601406530909489779354137055163545822608454329938567498773943012565520362062659235049927278909598652082164249518858101098366695936575332226776942957807136615665939101841576525307086143463901405935184139022536437705649046621110265684080868285843017596778700870260722730137997848012698104624979425727701082690605113672433480508903892017800581474953436212512476881547017424528834558764313254030442204574630033993276039803103977168703498665154748550954864413449630290115216197324124483852313303377893780337240178691825621604495774825564996693818700517571193935934757423357510801081396237546396254078215007906933046432370761345756755782547671286217415180077856315405588608483285567745521437227630591972652768538072138758034529568420038282935508745399285944391821116598690437489993023458887753581792744241663830600439886162455358731735222759416081605367873099859833671710230888615640324336426542626065625640211189614438202229631109874847495648214960504036696169229299181839474678550216252123909363490803134072949250806963158534666717584371797642649360280815888920359218400067719596560770742517742540985929572210627669659706734716888706980344528273739389743324640742754408797670107806708250700434282370501197153074880366532625077850967851608389340554853555112501177262538894029047737954108323922037341047386796290894900073674789836141769095518517463692569331273754915433730014621783629950778802714241654559749526589025460207551112854416927429552808998417707115771802897750862924758260041267273269605641523260182984841884103276588564186333005878494023253034275015884972519706456452101285803505495571985688181088005408163484626938182736394247122181084322569275028594075104675147075205571406936254385431480012940697668138291984524412474430151200421830917843413348391988145710028256777143701470035942625526919506188399212916237265768494204507238442741208531897732803178664577521234063510638149517112311791008299487512744199317536553057303757981034611785410486030718550411775577529824894687860693909931288468984263636522857905017490510941084128395829671423533172431434769134381221056319775796918994517155811520403197161144863006673518304445340011915417007912506674145185179388165412275410093329630711867728356316575719568308603173431655195837218497689447941520956402953532467687646278397688738461009935232026232206460260932185892372292775989022971069251143541255756487591950110302761519235317924370978963126954660418830618957941967362934835842473837449015780518217373994523106432329782400564342536036071949033961506800385780511025109032908434351288582605986222050603837435029187603829285859087335035230078627584599197927633543529599967852594061564820467906193977710479876441577120309757314932263032098342257660772289722405989604375770013706254123303559175800374623908553677570041929420139853484651719047595081260216054625537374772570316143804523100918863463592181403367078131275752237067453414884650117817713039326329090756926551038021956671718061984291737033016203592813001492615714373974217346659124812433411702020101388003956747049602870040766970871320070157271199345392808740562016123482398651319195877091448480541829183951632660960317937080172324214046155832850703624108497884461678026121145685526206267835592231549709142680193139032091117582560897097230784471809449016366691190308015524669968002623029729216212259245765286915478987811763115832784429794311411262605282236088350805176390363937720638739359442624354338925082258811200128405286942240671021644245969439538783324988966324543776701326214453540160484805572087774475213773833026291097741257242688412617614144066672120425633544652286108090063417636126164016036494256472387783653681985491116671823411017803701854034767942456915551535885778105430634733046700112655163906237889690267667208329489911366334821957685455110108650037885775885922991876528994294875993581268749280223133651484645240836937804381481992721475803790649345193047886608058627077294153686388918997261112348284653568079951020016485679949868661493542829983493804537428745674976368715641454743455847136167280900467574824283603642356178530807552142588119487908077202617602503617050427581830753664670394433144040323026399626775654207587838440503533547079733380568272862624207708001133989465451052312495912994120607142598549422309137634388251380764481863760035930557674589720495114494236007850528748119831814696978735965004428915321777346549329928899803138178747515648894522663398679551535498371982883237756226219737919070410901407466073781096883414682483615177038891900618018823886918511091649438185981540213487238703768352656192192264080193753662047226569501769200677803812217585129960557172941193881070039391816423976521276141083115788850780034686505684752307511053487106790420231591559193161634515166064601485775785541998257613542902213580691754737893926325365606326391681938542795279060385122151886473771385482101918585340114648066507744305635755315062128555530222620638551015705897727695752095582652607912837366728555482115057508930444416204069627227505209777766617515929336489711440849246223679100044898672776134125503157628031759574157700083141973132432439223891257166291261514627065229820476531462360544702609359824610553742791054027664072963666593165453320331463856351507599840487349292549902991213943271104835055390489602536826409625432956940940545137502490826740787740033067441070346672298059905888298359953355925053701319535995669399867241216594644303257439798025540217753042309697747745572389432367686087264375091871341133566034049666862937728974588435955485875675509750072317468605350208034017206058013752890167480917849707495726797921599565699433076337863826990454739416784453906810461494210278951138001342591022950414012522239281696923421696056436388677055929334672422486543607204853930551944631369505582385588987078024802048804884175219739913654938298491080992855888129013764977092242929949708514010619922467682121262463293156201238206075451808649912698289377885917372493289074581426712164444968693464814235484929400366170828959387880122645998325382804857732050417382565691627821615792318806474055595038322015298636125586874800795951414937078595278930371871740451667201624098945354666792245989594763036412628136442044739953147573534177930690519346165369720004261738760201598479574651325238664512128473812015180715306777067068198202666753066233400365986986766246458796489390826828331540955306956615897441283109224723121394900530935237996673007217613264589142996692395554232041561539615587960007062159577921934979718165057770076967574155715685844200353739459431461742846396724470374465236018336551534990069263141561001508636153213116475607350097470196349936594973540154183790506748271236686739121479313850729826033048478831992608632994734026809544048083790497073006699966734189324769597146721328661647563515673264283536616005862785377979922493103802983393238599243046779706589133450215179288404051435031434910513792381436626316738033649443383589487651486552644453291881350811078006384300921473229304099413213423884885192226568959177230976619499773914423414667429492731498983393858370923674673537994391846165249595776091546070639487512732605509481645048168186626967453901583145386001463997190832622908734047341136534146640892687586849469277328554787418146838077088905122037425771781025646719762599767339196530879296803926990479819248518046359520816237537478058575169609930784317941988298435431131298370405128799501985199241085783043901604243651130411802049524866653311453384651745865893639473726861589529709359093939071949646091198914646512630239903212416811275592564929793276048476667265959610354359329542885876103132728062138699337184780405868443297059891786564860381044939413485648274727563232513672528761633283811749789512009374176544591560362018833527892368806940244110085614454438899833127364490468047656673975694236432638456160436309462994662636960988606768386520604953991276348424926563011015847508131970773341828565608180457906607720851400596363457837909499386670691373804424955047974054263373038534343834562258214927581652819665870720343511208520698844159461444299667770923092251620680276524897302473617981885611372869048197869310142980103913055029966603477636602350386605489224440687190294832257234572152024435895266000358219303031456198541932313485817166843429069064449959552756378305264594589093839173193003492169641729033120422818824873530679663673423209372455532357713035856262843890623750830807687926598201278471439499152710283581860254059622786407376210886450433837383034189017012973947869222810056640929529955430373487217473752394276555330505814930345913351828206170825198500607711016175117643774046626972278993810936087433131996791187683910345251622405534833959424584762482642164936378192415372313344183210288155258353401214788176943602421787311903662046099032365331089594645515004577858886932916022086616899791087605379884141768492757328898525932344075066263845323350435232738753750088798800013175031306615571553178945636805457721519291022662367147021962807473426493470419041523629420190041526906245220509033680489070139948698900554385461029316970500369276188414226569864478875435294707353285833221011495343917371230660266850870643999543552557623665599994832316710190008634295644488349927254462357441279417804578770183980057303517158768936165398246940802765199979042104359294921046466375227163265488507499539428451002242323841216694183060445874371226997583677101197674138302636565555284525619891229866038604680750392273011252376825227744063342083358898441714918366869460951381422787743052490020450862436124931411552846367664914020223841754853859343383212882259851397965318984855833412303971292668453408132843694044836184632834374508402559485283423005739453351600060625437934335958247471718914195584318284237418679763084039173537589107180039053589697050552079734086392528879593032675454720375807246411408234726174020189158573375015934112071399529055844562539002156664257596767028006012580383564124398471630771753652343710115073039927586255038336431784835800964660984865804891592383124620007797532810933782354660979360711647661624338882280141236716529299894523104701638498369125085310459853412759143500132421455863146807209565982728296787303070308949336961880669311328852489355789338016495822892056170464699681292556729220286475917572997930953150086468389082526643375924958261874690552492723013423891955482589913510784817314840562585877717666536441484600358953413257449776078503724954137684466004060909846403963117978784490518911495277359792922399903394234541441769808820077174552610486271369743814000269900326195215904438815531568084000119228732020048721754737594768595163891404123361454779656945360287515570214870597545748578349572866535871341541182689733145307305266523702560324141800074490240988828219491760402770585242692841028245866787794316473735435302378258374632415754809248110418043281369263683329719102125570448709617252382308922257961399837244002524638646049981972752826925440939753031071350475052268130478459167978786887015564938595600232828254312683022681668198160756532691839698396321954682750081104558486612470071321106601735792604018230977040102317247786857561890556437809223432626689409265910812846927154234611910143890378598554468977754855425124496728890661151479217492425850952522354199894210493906321789004467904526620406851577842501303883358977436418031494018473845852866163245693045707370136789045113376510068886776253081096371567837087180239146628487475451065131459802999207161909186490740538952832268111494107030842399333717992148559897385011466942445252788067142292875896587037054990989546133439549522576831849504684995252863628981868798787470886587386102190433967734381249519040619963166907088308638189512183374632302338173590393342803508941602871171581128909790790574362237758630917466213693369173096213631983292761625402773178904852322533089649592872448141824579368369941383232760127172568747778816921394850031291738641182980883000801194209322927134529123682816393790833876230767575941617653063403058384862066431689966052543073057825643461382462923027992018684907534023888421148468181415810854925142174269590842689617203325389845478136967509189522953977807209016913949850739017430563847925812009251364614539307909206577065776204654419057296510578180696675521596707512681089390476080161105671070779237415337322099825305435882771769976994648115450058563859987227789154726318773532819425286592148644446439411376058929834026031742726874500730452592304328033279461513794089548465939854306946700790698343799822644694501750329119756878268346809833342715071603522998874459533129394066921262563996252587125280759272465034653596551150681906590151446078366780735723389765479110030502161500796900092826077650275910417496523452609384364414803928954865516683156663374333159177909664627839292215623094737031221255453303290206321438844249431772155661654350936564369784664650761349204641836418577656956387063228554778183315177696063375851085662804706231008104720028608600140193081256660106608602228043056172806189569748519383461539683162412833968461879097524885717710262292151866619333931755508979976701437978239963667353753432652692097727618896812734855216464904169740895321983654292068879776601396443050745026892308694376677068264217311811622211107156916106703910433531874372398260139323012682762338648849256338944571540064508490894707803614906797552825896686087651784666950819818605627922506401021037138616444156053742336813733535616082860639664328883251176378505004333369699243648652460283864845816714698211999483155465151155308488288999941269492598241129861421409157094683408220590784767329804794277529160047616215923844714345312276534296242956761743440960471196567353585317031388776687082620670658040497834891289434776989563264105551989161845979044437683147774989066202771693054979253020096376269236242470128091521890480771542936354390518489019760447044918268428963445059410226653013244406669706387458600324368135706911640741022086476346027907303368060327701667037079810190147899888317972072083410715603330344718556915371234964288548114271004515544237783147692391246729051063042435918725006336694315190622812877421235939154125938482429041021849362481773414832586313983980557494699148895616756170542323432018507920349273924712406756788042600789654384987125675320175096337694327147301571788655804299735152181657356917355692895877509795431033401231320872518746295125630070723826451829617280190360876422722997821686960482598359729664011838310446434001613054564259370468890710529391342461837785983844767838682912617252822851306544805721654555510528252043837883768912841937535422060722499842075514683514693516880890090664533377617960655675835773184879415717234535287614442286831645689451021173646420361579523537514381779785099182412711931339153205588775038234394751730780678573871232500567113809490070420327513726590405509957474844316971869601150940796813659594791192309669690645889668988051416489930248594085347810427279453026042342979094113636719403307106052256957693728600811350028688541706840336458124395164514951062784943963929242962785398941524975607235295628078759745471349207936211272881810393310463813429682476151256035653059111398316473421418125866537300510843903532661576674827248330673737763590173054502915098821091930537476479436456567542963993207899920429470332205980351683944394409777383196442568581039868238492670611696438555164890190495240101425253641811693651424551787409604521499768178529078261089919068272722895425780334500952076985439178998398225323673582101714286061791844256951691510315274578571430995082664639207193883122319124363986478384595659667152694676684692002177943542387987391482670901043641390710641427135773740628464203189841505308012814563324864850007819042336365054358513391396250467157490818173592914320714491741568469511283588628726310228175691424571960022123269596341291656272256057620580570823601866544970878802494236145501165008693524328303184759991311540915931612769258596143584760386799164866059505596665341280177043657542714148740026460837392947381175488596618359604638969707122986395615882590622926881888185112627735117317047495180135566628614536216007454116093271694993287010907852773378597815535522759945173621173497145976061568987041589804709395981892235922423946378221050262663831388027578974546845764777546141011433042915424895469177730456704070657458988040548163145232210885581856863306669798739163533068945068022962928159651366602370559178948508884589664068250860259132482191879332606994870837877311170461778156240471933400723869426766888443722351897466153278933827239454117594424193152337429421844823699313857462763176276668454286029912913792893606318396959504188237462847933152977777129314399291891965294878579486958156418643534581304303907414120267039176041008614488116956535250409453082768991363803758487955540571397603491807839396136158008654995799328281240066739212244666833728059873367919214945390666670259976588470007816740781804294503220097343159872889332506963531703729539606978786887847161448266610427426314831198342916049495309428620275346807036924261862876882506563121417003927275944266886488370647347357399840972059422706608619250495443917474239023012357590426120142918180584823372520273844796849428608133957317026247148840121689835481220300910327656014621781965539715308969364836862755864592022752713844504979283971291026042840199133422072840771602939404153464511358684001476171061415644681613024001892073506714062853551586972539261037529217055664755282191541939723700010648207560926172741988824293519405120064937533365399067708483104093072705658383280155505461043304104624507942550765682419751675907887585016075967925427605522236289821053919853251455361282611447305247626715706142814672085819161505125318216085723766781466324788559349417893209829285641618114027625211935782030623445048752370096477508814955462237100378792684479080223677994683248369455040476747095809417855301045921924670225112918501127344188831907568642142259832374080629274048264686413588552306691860969567379964567508088540225944075165790080693594735164049205120300838909436162953204424410864198981968242931986738494636809601283676813953344479503026938716806819938253436399636192440589501011337562031032575157139873053167579439182217773312906115817788654839922715128027640544454415242572805287947698613308390374712247175752237961023455503721284926560358867972062534755266606108899382654183931065979842420921889462750012227118238423861511061981109385687744774056130118905831702509711531813588869031465156306508550103863862293720315743629013646796750637455586861624521047005516576145232474798079382342263793802336932794357389472803886699705712164919403293563040060941434877065570866397556989059810823265428878997872941683511700165353596662047749589167273320022356918557428781697835255389626572079883647858400775182936922228958113753282292482355281269820335509194727025165136023065164274802309933718533526051978869102667919173122103654345119577802930275486620861576569274768551608177515741774213897337627171093418258208270486143536593190806242642235600842652047438243847064252204192380528084057695542528293781877943062223724853043049151452257668717889056694045430754168953272634288754594646389324980695901635696377590099477734732589808413249058520282503504955019192736622598348394522704748575426313854117067359478094664164730058192811299816681123342476712206940733271807286176404019262571339304058843663317172080680447112587864147247248945516345265071932606202537234743313451084861487043993170188621886083312782877882599113501471869624356781703294933832417502796096084428769904703242885476311150633405255175964458651388381745326233587978784556727600582246616501272092102487700837442068351291756478003185166020459600880273498643872056775070215116541003110250059320441277530667320131619122268387108469952058100681712993597283115135790568328747003159694820496211271163565244530568903014209839659214812665113454165895808346492663919474336171369754769226844326710653188533480156806973785689100821982908470592070297942379399080235338321419835793206229169499901019635468168296461896028051375606057881104685565932908580829650101000198825560170803243886303781421539379343137745745133851537046992113103936167200612471561955042440033199430865246452900543829016112548096852067891359201213632281524774186547811693689851542898786192751371749609742849036393087543798616062327063941702151543174981000568894897969960462802485976164864050471832406571695918080640069979164946958632988974380923058303916342218365631755196740969011648989860379402435145947131485880079433209677504758782777312639668970989745816350056663209651202984874675445140937671220822102967751389580275485399506414879200843467818385587765304117847154061381514684559879259392677903063154873407743635388188392846437901713009762615579032384925813030714426717002026928821404828920742744547492930369273082726316466596304471458513406469133295056557827509545505717740004357089786348731156551283059285767457622823563221668042570527659422756147277396166796345526305144373445189388301810944249005371401804623925013557735426051439682539996475361855005882304748238090740334904542887699960164830444304951140067863856359987238901405272184644206315549124203967522031382983560918465956171550288151614914203849885745294273561390970322729520393159525041076838173279459091216196976481899375695778800147020988326925599115017199292197682515403582934879335038755467742390038571504624549946920659516939028578975594130066267206821352876789391080928394648896219956897177006094405941074244784077269997916877178011383453480385782646404555606283261360318419225820347980281674183574952198148634507334490071758305776092757865742015389572283953290504292840905862189196181195362731539815406126825747287686115611494492852821921969042950992706773867061947564925594178620673921180247946052511196605452255319685351315138472005267591618282539544882897017759152549552072146066441725255941527460682180487576714102753362284261519259130612193478120271655446989100549120091709150110119683887274672217621409271672970445347143345989175214787208661656612130243824565156716094756272335509283335882554468485600920393737966824206399505459461754729418131684392985271528272158700963424682343763799251909750758496155095283563691061541100171985343992732048149133269777359079998878284890652273321440450837968389003720225397103151581297442271470696104397599462982069815270560241392471258671092426294450621942621146967553055232197132372269265434830015878399378040734780140030406111314222410209841976538921236711593337563374825905318763961653356802490243944189219361891910077578330024325998302865075781813475266854739540870924622832399958047230002743261210434582963647862245009566918713674745619196188781904950102350411610031646439493820696707719527046102469379699844389379589927366973000274168709356646654772219213589080391903944102570300961236939534788858311195145234067614432582875474489881427714758682517986478928678664231721953854815378541882073484418961527431847458010281053174458355046871455107821924282260554690783804301770559601049978315001253683632067095462696248190236718960981167340643633301412743128727298425120804511810098773940538561288165348748307296550950378245113788362736761193794530008430735080710993917508943931477817232414507405661970936229072521483804130224383307090203199622196609418316947263069875964402261441454718387143061211268747837279596769851431393123628250288452317798105372962692292986755000542230833959920312007108770495097060785972075808117084235542887787591734807838217253454247946771229560410894566723738180973178331580563829792185054082062602597085571969127440409117386781444686577804213706509250236324344554064233435524234728572108362028338402853602976461370028613625617375120536307258191222896411613147810002968893889616195686826127759947419736419420918527960642380900840983817688243452445605753257404917889828076732228744558465375651936224322608845657076948778202999345490355645437965343469116715902318631932162454420105823325526389598227391884826766659834363031517145146957220226670702040669658953326716826551823017490839028123559457529112788543118602527483028332751529377668292839753477461767039428198418585013691391229961610144051523498021586563580355812578489792019829211447370026961423678854999988276741015797590252880886229365237702039160973912280381266081723187599302291544482815388120343027652932910809863996302148303886078223915730471208073922905485090502353901333874804480005399725507554915043674107584249562045400005886842690896457823891120596857619547101202546623655848339910272647459156400430052348572077390356935917496565399352365653952117222132815604823225848621169097320873824862641781316046407323270960436504430571353701756587233828826717619245872856377706611800707557063369541011050801615683197511798967840192447719026959358152343077945954768883793433085026923556489267754731856537819218963584935865793888604008070745566361927216343437063749166737309485495314470578240368107884185062426756416335940229420326093263089066958480435988938010357957326273948411084911928385409790897092441572796484052685460113591601519301705809863850778933365789320141332501841601243301974344741643967653741304969051538276030623501297068823146372849458287249330691702141118949735996237990035734103493471611700681689831202093662684357304214330452467809591230847934061015382417446820027487151881898041706122333377113287691928186601321596817077063654111126050941637787266769266621884483093423973140683773379022435180495452322592477633528417528548182151487610702270486408086154543874764750460138902430547227028607629152515804110628893179519049562719978153114838058194237286444968717043811153402528781499357226489868178303102878877308256546200515601073819352467566801878002518600195505923684939218526529789327807485993473693181334716309511286985062884541704031243721277622660033159934477674619397245544317903125249248234472577965912656415269528350646038168383438125914219392437044362860339728194082494117105159779258749074028045310284352298699566491443530297355384308451475373426824603045835174558092585719214425983123789145203836708307841031439527043098504530788370761977209395084763210295361937067429384409160164208681918172568659535204559703518697867902150590198499977772714638949379963914533965795803091793931331309702821061410796445487886282303434837091882184559015653593834825191499008804288079806402227023213623652271942855138547277041248124838172695956689783070333486434934010705976480798097900130858988365931544377230603231292019872684328829825213194985274470360536377036988498680892139042958248969208453407717536401259488318870701263582466857499350113200713984293689331357095992423523429831147810755787547518038572488237943972831398286380746093240427772010940226689046840687315447442063259785595895128414064906356109174355192115645846540213983163700593361476090374373398882783075951298512212326311606681598249870188781288365646862522369965973392906801385141788855582953848392553225043127211973115109020045470119847991042207623444211351927900198646247973533936104984012387021708909559091542994944496769938395660483778062268830563169545546982492402397736553103752610263976658824055876085620985183839012656014944483142547312373303182750723548142890318229814395333002723662523037518196935605037676649253646529039905792232102510618028782946040277921026391166336652766705259867460421100463493968249770037696904155454762842570377379805901603278042343379866090794562981167488002256478658010403704397937819344035726568391990461584696581625176741005762069767612344609245586932964743181290386613557756227774522946161008552216684081123700897381501369315716384169137731719648229185044124513398340234952201763209243593248759689321647904829598565781643720771172509689774700483755508021442463877529842151446745800596555377969130261563992845457946808111101323925793469955408056297529414923331486671114387386219001565661404117602886813526101770087287713684572847990865758996051853956773205924975651027004046415673096208772335038588877172779005281965568490077526506890155338312292694153250452589196864551768837173517336226164522523959089874211211292747690995604618921423093570888559950964761108359148432371413138817985085335589778166304086992658424654935421821038666531723244343132611678623909035009715520125574276783047672380423769392318822616582588970936635425733591674967594845433121954315860148264034720954644306296226638020529836155305223308380271502566421867421329707706017032992782822446593484731649258126146064863162637082123069929092064960910351772098232385121023456187907729286766713739544924222299701125795921965117310923357027340322904360716465718691561282661261810103152312625038605613609200150540850271967857420462671294177045225627707030434637687813365945364514053710240731282733704277189764314065260718050948193586190538541258989439792308851225573808767908365181794430265168047637709078430815042593164891241396238360157141233743615458292832426031395498620947201953178819040170373395913560762569445376953975772082140102318416900994000593806173859064138466677894890922971761735996375304774644494510205620226415202239222940186967423519147107969090895419065321025834239957887247895390454409271549513812233749263279512369591940708826524863822561817759198451669518030341874490585179857851843548716085097461605612970722004949134266459361374795107656301896391511764643561484431706289397167606898044000737204337961567284954007674663665052993276137383899638015422671406361436303093016093278632356385813750391099921809671304733505235595585176682796559675779584734516662642215263185484689535102098950934112397078268858058477348020838490722478848519385102806079285719683590657262141800439875467140581638657436514426575983979963524091647608962843129441931584366708520901158111921506427576691830548435872888702832073320249996419458150646047456924778157728398112886189793780339063591048197948566649417679085729943755159742753365808545082335438778254753216048544721172542154966557229445618658506320829151018965773394813750380223573075786905036008025432810163849375490295494257803013133007448115435288431797396434052244213661389585529610594230260600040567871267750810631599864359474673428596608018418432144451028043913966747212085716848485091806181877167673803238600813909844830231437243775919500877595579369137942478690196099985088909248367535044682711254691781835254342359258321641889330414348255025595569846132142559916203423230909863074383671520721537778033602070601314956775421646745584088472906533029727929282530794268877830373880187565143137552847669299570323947037346702112263126792560304071118461089040707544561584498634758049896126450760934696771475103077985621537023750561294194767233295669993642632193810796706119775208387352783226478131684133425291241386666807992782833638622055935947030225082235701019519728992022069454624725593794763574062548599950441249389604250179327526590495050337637617768126639004696483640767547194052523183557703101938098760768315681945321132850383003140971267379299837036947618847138745962490920638403021626017161817291886526303173123594943714976904926586368980139450671089574488600243947644004011970219579001191169689501997318001762671391063664826463197848723715275620434544016010914286603295491044710237839698406803822935380645619076569581785336299727994828081702217836956243074714354052570571045634983427780580913933411787418779062571582236205051904721335382035262805403414018505799114539360617699589790244695319844414683232719726541888436518441193207745015627118635113347715950361295426204776060631478862193379449644875356437073171204279474480956970986792633516181724151464716555802271791362995093943906082212159813154366841872797096265260922174776359210308401353893185989963232026619301228846646687066191659379470178806610250282387677321696926301906200094029478109446702913978402010448202173780228203086468748265918477696240866851377264284349758038480816635720066137088690485249991262758090202647911593743758010052150640733337943372481095102091076190598407719856048119054921364449943154549437440599069196409663355138905615638866906031815022267770662120991247676756462708871926841541721705030544894531582959102378013479747217491134203714973252845458241674071010060282997019167779683756539734033181416721350262915721054080912481666345210684600639546597027516905471365954125557775596763986326865356700720695224509347431818537680192089960596349334638347691635263790409803016225169137418594393614888745005132075032448947656727142708215733534525305591725419130531959123287093899550196617463344278209514091112315300448531676282625642770285122549702162503993559943165710596018873753858642300844732761479775108213353745023935915825441440894882437763353193393944987908301479471828368865930289032224374540019711170833742195406853288489689547172698078660562107562196227639139788565193673645446717933294938514413430189673751178029428081400433249814094850631096674512898633799026499011207099180610714498222588497030312409930505142247427660342610546802787849263462390790457619764077686117290767808451646247359532924527216427540996098379602184449156254700041981239170323130923135699107859677292140725436493646411668877810507201672932661570625966774946028976394327599308720565498319437170497129487431214769965150424053710416019088137736653986087796566811605775990507775402548900679668332715590069804865878836520773679474585654089191991591113820646672161436313147359425524497578929827453315634239194749070645836209540252607562236875732379246783191531778223352123124690014344666188537740840165518125810948825856337879716267166693735892971918128236166451503370261602459041059006975899392032990046932859379641024806766228018481909429940800776669964158479373265847053401187191576880070490499583275541067372507262292592059985359616313469916290605300379007637119154109082068919145807740810925309724215752676674367277512140953685816743104909984809581171782364563980081405303698066828989433799574206303713828944031689387120977808468147580143602072561610487340735313310292859288743645245362182032110058904379397380779017079600107525606947006725587732569003513748823181288253287036554175044502961023756868528613615470768570509265163079583380797733157984409714279109187579289964320291101125042843595239330332414348848970792276692905906771838140164596121952167457363325394189651150650264470253698692413071623603813903443277876479652970733703052108297775669694141343776462923203832099482154066759075187755465847547927775150586924015168728882487516285029782047711726139833653155220903196786285423475388984565702832546207386236023489216085408651012827123196402050988270280192951391964672068007816025173927293149373805012799724023469503681925447989701565635234912122185928293198187670068238670853204744069379903813250261038003576406309604404553657018760755499788095455479617858076101756506732466758468503932434889885437349744843453536610759919066835135104418414444817940343605276350132602767093722699339256760297843534387592818181351486499150979708865579981045058180755711970190516521547635152446347551785338652438896612134491738107083648753267536595556360349711920096724133490794266865761383595269209210587266829711545549332852905745567591433562223497764332398518632207165205032264442367165379390212372874481830779959450212714953520036375028345801845630440293792958181795200653685268087753768407788220802684780899608533120923855894049732726259907960362119282292838465182163099280750872121222061534898684646751919126349827353035887856482121326481681242143390792697338641489985984534886503978916924788909441976057045723310036762412366011517549215467903786379452888521176824974937118000076459735396037633884509474422346073779479672069383749674932925280472087825265463774294261371972282628102868792131135060550508748184723393253193078442819026161591597619281004540995148114550559729706034304466391024302657749148054144133777891868585644614016394865735052839199077160312343671556030602489835641326978829571467412301829413020918046492337350055212745173910171037407212489684776126804891196854744307426235891725611947522468155689152633625681372552270841666638116753969002612082715342093850454539176481786374164831737997902971020796831871271803451898101277190176377251253376622869519438988680812730303428912786706380572395218284945170290524919111885119380713397120985803796924875067359878504131108086086333817677337145545829100986542439070692964465530830176152453951234149298940441569381736045523823280550166563725012430444496855358112334694778163602848195547103164976706422577396122909071136216035607686909965593042977143268173843641209028712807694602141751742498946148285940353782271896085949738496502632505749453198260256259645275282034669051763778870565730561278703849941661204135635771142794690555948623251086024524228592157385327373963626640953754326310590218530858787482502713370822277486294485718184926103112966231019348869217891712021501479870574558045515741650809992934820438494743901190095350741987443124892869885578261741043322731768173513840018298651272730493728168773249917066367322319155033937253117588042399303479961662254253986827861255974014374349439562293723190837063425050867834699298482968550172888227552827932628997355808845445404489936280111478021332569310923301626144353781602091253293423665747318279192617832915999607981698132539935037314210810080341371136114933522720988983054262808279844289772790910119260664444797665312169321054950673942282724401573572549683623812907138313761920415985567124387281777765345011165084350596503896909271446005085748937663750112300796205108304492484622771508226667981884795750705053583639555218510797810004149361991112488177375231561951578726453638125538537207143033126267357198787107030160909565411989779529134923869550934556367204792581210499936798381242746657373450690167516968768137705599104691761877875685714756382726787900454151124914289968588937568479355679746659648869435564024594977111492297869411192357159735967365041625146169265761820341459722671888567256783256908269465747263135217410761674370632555930105702673105133762732711099958708735349164876558858916100670587765525615501165621634461016401102691660368316956837290919226630320863192663296557920108781802412011431394891709764160386877057548785281091917091900507870560619256484652495690322750490319495901751561407335517315739894865220171674922877853624279357435716079392879069651364634529923688545786370239792992878925320536370545779208022288860457879753924302177106319156544893904539700217166214809831506711098818768671583853880433520299199367451906922923456832236453572845290464742141784835605684986395667277934457637291279834914841564762262326458810657528221430507161802418575565549605065800016219114823970318378033238288588624541967470418750180871927275293041646073701884274745980109223228378903028857350752252538786896918073800091470596412226756288047792066597706064690350060941239705797587967400507087448489761650864309455236048021869700071059944237954365786176445864211256173041357022866542172742460236485814838607369206262000897003374688083687889410712022341129370532295062641717363965000654795015904367495398964848641847175681321395516198991233669670113169686699935955089208745760848421179889975807433343867169751922393226773122696549882009954106466629859045884369667615396343584102850362437124348540107320502242445556080984101823258020772892302523116055850048553341107608575758115931488994812876584997265163980952078044409003118581762176352834074347407102335571408711757479574200025372760964220928960705919437363510519525984712517028264574636772454608378527271938062134763209055522940894142755695911204600327286728731560728011242258575852646818910837661954013246920712783807296068658658494891503075157539452451530093231467625735943730642406047786790639644467049496580079830622215259076393612925379914404756504364200497131374898493241601984737619669199623513105897878572658205997633458817890998460837369163820020436802955937264668783720109382918985128953755937190927574493027364629549095866990322894514457057574430539691866454359491602973321311297053311230488551794889453985285445671978215701087802090225963010440123254679993761435673528540077848192112166275888378263778158975606399946873032332603203853726555102266505225094564518456815593776388049273474216983733504903568788569933467994665842797215288500538183013461630059356253061100225063892101924148544072968811317332207155070915630832848379893101988960810221935802198063764067553558390872275383547186493538344610910216292580053408957519336416582713693153070819921098152661734112341353398954678110984549935333590819543663185760446418472832278350597049383971897145193923954168291105084463331905656997357060294539943639922590899978971441318044685714192391756467637950017929040824566510972885381511544412065383709594356942449598897862124025719252367768152331121243617890848995831666035499862759365005006949762424269350576195589581125117011137090657238527108479464309681559053481580746186195394175289333600121233700370521382515218010823772376178900395574800964907212139050381390831352597446417129879582174822698634073725076375011999290537041166660004047322177584509352469821174658117216942155951763930662163263476999646040418387967041086770545126196558969014741055675595772404564403585035256152335924227545136173569341331032940997419000349626727297838392298302599368275544010143332225714383795994891488554231355754448392513586755390143701407566081902300541177222685065284162969528483670565159820061509461903198669886160893108737269123652101047035227563848087746747000626003271454605993026715726250456057439969444254387783015592084515833490299658725350912558523010667578550482898628863898935439176019515180750489348182353647431062870669896958902565288653098222810061406318348955496363850110641247605378585465045345114984080520584842899458208099349693626813512172529086957565049563429063779583909944943902570988318617421562447599988326620826398243066795520135045802319144060565137085498167362164138776351531135634989773792186129638384464208240950853852492796512625056782166050657987452777904803016143953700372431568260292481301455181593811345074627035792349122512220149657312330815088343157320511973423245606727459097785056581310870297169833967167748019739555923408400420085458883850078862626525935062249838136505808226601688439724865555629525776979728729810822765276485077442159370815499378070461982084436394224603704808785541746040003481157128546580009464953952442052219282662289825994860300742054109578180527949237486538937832207886271397504703211945813919902625021233032957242151169879067085361626336028613151450001669988182391622613651162877405060333751624034374168256725124583078415566597989697008125462694797624639236292397433257864518405410476168262469316177358050581336103919853680428051694443654298757837338537479557054295144553582794667751347374801997051911339706456359780917503245720849648210997638109635779478482923629590823444822466886737340432247189290376976285820499133092674567875401623219119574774659442370236531463179768446969080455622560995139030433852809112286883286576555516575522496850268792783128840616489302155909261966608888811408774091363831080380000651590762648467116861724407633781570055948590258361994211165365654306191205247926748311136091113202154035539776581349534934701139816953766164205547133093862663893587439104775933453486525898981900261297523363458247849603313175409776719954356888051715155186653948898823504924321973407430903219957618631793833675547461742356446887097764311790116484455276507429150475180705576542900655460004753157077501370290753370016642174957245465307585348089806586302531929629429141835163453733874140128044608765217408922627988984713640855274231307696130550608507074524076001277725168458597259689808401528198364125281839192721127792034417766826116331652527157487115741844479829448550190154204678509181721046805999843057572974621929448042109611604159796480276221054367037209542378805578642466046759546547050225434718301641813710750765595387091134499392345512902616951125952099146277434241120212689475550098269074538656211065202393865212351405996440585327610102900738408379863272479629361298318707304604833163411203395024998503256851443601406654241560323566389178923498673931389283056712481645646918121529211716700124233046753266865528687892094470005805460900347766460129683393412648657822182206541023717373016598316453981072271502830135935774282387778383660764558260102084647050528026449103460687503902673479829437530617092368458398218401553705354524840851044520251600398364718468381441214633327916266742113051317968773871614154089136650227567536386296525691499648817706163831301853194425913422770631672677488292245030708975850672882478308502172911415867304012953326107405137478037221508533242010931228612067980782939343800035911386003871300220008898563694292634565091920924807329977069069866600343290158734300516539235956412236173048215300838012102968192393655128361200088387823735042001030904101520982208693819008860139213108892948636828726265077543828951388459198842217258585768218769207872712326919857468318957328995437748936617178131695832732723771638095281121157646989201383825524273224711015318800550978425385136201442203901839690651027394713138721775628136749577203268849303875198130067965892116305133076962854153291202082419932261793704368739921585912593142075343439556944165528435733787780128877882062566559126725009975691285437785015394552516902544089876093688940398468697807134860445905487945599595978203777692726979661471830392986935619042974155386258223768738771355700699000443899428488078203556975578333005297978775137827467542877240253964322745631443166737651387641762272217783666105345095093765295900827382464411714748459421499970309082995713862823476751625151592842563906277326159307801385688209868819538360551998203712539839189038816548831830879361437349647485353216209951845294683128538800101240517746065039757245890289653615181264372884073396830942923948665545551793919105693191383359458710446497756958990399881777669656146745697299673904126510275242934166594890174294637763184084035055374178587804650576457984990124720239635417419816049130745552972724210674884941897235348040791422637340012614695340942100776111735574038872578417153763377585423839165606271288309029349476181479720266088438994370962872582019225264377361654581853623730781776169688703265506821369536775563939683065987233571724596937027313568491560890672481073409136294295537979937951016023870879915487796098592383060637985377942847363423903103139868983327023817193587765703851117501916973548672709695032237823918059920872465428563787493144401291049035169832411467141579424662079984288438520824376206352185704556822483515585420648957537320116366481370469289691805446295086661310944073657447488957059620861519736894980712762090389493444893337862173864321841595782311659364340073409834972141979301100562055299784355967226253965832444062113479843236106013909387639531952691888908466291408968550951066028594608868437958140910093669458229558961225462194507520917128860313618476341601704474844513075272291350351325525900395809410008413585666664817304334577674654323415943722913548765322595084331697511286876331162975979045006916091243732068770567220584985986550761050914514863227832807412167294962959115981983147419081762584138613017219361093074592019284539022901875361783746653731043245689709021096668230606248921785730989463772524557029383052456641197196939638471480112385805140217276183311219305416280593115744938464113017863069356946774291954306352040347499761320239187135493549687951250685300347291897959327821325544472317153390908232767040861248679196539189718693006781422585804454880684532517485343381022831631192754017547925883873802193346173780158053299167607920298098317869062615494114508057091604682670573282645270788998972186127375573558406400362516496465902356272166363897367043716390040852341591253258158953991940648790858271370743120976063372334830941126686570199818958857713118182378001407858327326455720375340722615451047819813949061599717634462124712035347927274629214250890710447417283332969567365029676738306250919959052011665250936469301056715954027540152009674603659682870116616415638952526303779753972161772925242990908892095252828069717747477244034232692017643873467838302594994336466989625776579959027672195328243220583030547545670008452060759188343765328161910355236805422714610210585732891302840132306319451168592637080512889951379534820482412289659629676536494375473478467211378732292571262246079586744177180076166841401128527557851685033970237539049560758888363750635795359005200604012879210277975756174622902776830209492514544373050232995689399087357438809513434399012060886195118945851519948611112433134275261962957837075194318107230107313080813999378935241766508282710015427102754574728217197730683182443480139730699107385243581444302977219346593372312818579806549184208799250478553556069805028867652841970063552563268531670156557802984063864874059302231747301775476897375013248641397301525164100205311118852673397234559380277223317937795148237848209899871047694446817909723193648565163275637309574540481529919829721152948942623826572668691212890719211985422375759233064051099339950225779731903929048587427121068752549934141417422518790258116364930490527386987476692069963325589641977268854727404930185509778590875083893146603896598056644989350054759295171951860545719724525109061914311543123458317257007668753822682034675342542361327954189305938801136773973631890187161435267471565232218951033994651071937514142170988073231627389239979875902077211420890160858173780587562590750078577816461659856715738577987131353336249157751487745254401039114214016708102685046153439556028591776921765200298475894330165838005420863954690738534310874090632732170611498835101702731405337157966184070608950712606012535283124111563683543733313897393849605423166797792979817410618767883902602350569692173319171491118537703093519414511276100608593483040252145517651652555036255856823437644587820100404382622696316901776204846071595097066969562574786352401599440114134312869931554163821781954256221882007407000865287242174624916601905945076720188249944256814377875564302048501425222120389045964611694793744262491394882010468410753295772884978171597338837180013295743334543894865234004489496867329364597979240259309980513855951742939456265460848811631629704886052906364013520096039398506329273355882960305270075249217521906128002526999477245231931332817545391082762034256957036216450923662587033107466651846760113319893722999375237237762276952771897258541137374210578876373026590906475143136199545246329106319261967184130074874688721701291055982169890789218241943044479088261018668648010076820698168491668568872818641197762673266471500117514708350179299303157590430380504531268122432187529486888192036615576227183119278125665247112456002671065798516917943735722192143286591470074553570265958161130933394227767443125589953040434431744781873359515662625626982969272888780989419908673452042888174758303381226851948229907783168407996215726364383538662992185933009983478022788467979610761210618348695635963361458049090231018601811314319466264711172009209484374610213065757928738676724731804780928607774591257111970947624428710581227924929577477327758165413285594813411350076456114876463595506335480009347169562989126604591499336971412490462240105187775138136977341994947225883655104941394627690868756554308981201773659128879941199602705426362517894750766499210899905902299716127288518394318518442799634528196695827407414231822095929195337663063953081330826068618679041744410856737552984180306865345157341086996420249800764812216968785394558262130419700429360754097816210340988150432653939225193022891938027050360429864198115899796053634315209362462093511765300935953496658739764486852401539544502361738046790582434086083252474416181461377725515057319013881819493339600589099276759746395339905126072535304850768291554750261033731849909460154422198091147351208615599023564913234569066807040567709414228855759299540597867899442578933035409379742100974448678092215683663849324644271353861145245174712296840511367609161699719022509122265595159432563827618690664678132634872938612825736869076772473429415181224909050104377520097359879704096161390991771621421056170908322898279993879030087618578846820085461376445670695915308599056016429359512980026815066359030234113396317045816229519558343964287911845433600500750489744846192556148168419430549311118697640075798363557990695303700920382061227081283612259276170880934006797838566206439961670548684898074522891436627137168487778702363719095188570696717204805577377997290998611998912444899739715826504826679833067506799851699637373601541922245135113704922649344792750385389457271990178078575907304851528961719823636507257145107677934054655821350464489344516391419454365227637054973054652503993186733375777205965702020719086708782711719640917843924837343463449064306395931539520761684784074875615606772155309030117522475722693801058824884505054841766006615897771207893608822087090067908744978812692438690650593309199383351955461918990669573273220711061881521484811080633271568713767265149227421150842348567252764800901094058562521753620391820344802557161236509056406795696142994525046868778142342620957558089818339404547450379654264635095533142197151337253789128102887831729650329761108802786490127443210085970656860606001732456669627635063949458484481541574925980745230653352232259539815522957525237758923688723347273220522510680953632326908571889385831299456247197987183296208653509656638556868758739651884200826614206707227497646387125338841611423879994451627833654479912399246205757580404215908563003104237213261664768606826206285890630977358752861838384064590643908901545697006417150566783237688496901387422692694777284263499904372391235085454286336303608911465934962272077017765417271854192945495153951182543264155537299099857383661075785331580580423146358609282251411282412338784802726911894227366391101892362205325787639963587477057893728632843059059573571090987503489038114339702615693593793346607750953753229044192369082186008293363542571055316745217253529331774027730832846174114003546598470176663447527693498069745357554404946283912204940393042807950090472974576508085352021559756676705125196257666461981956624897174029657960402524863152537970383414302324603402627916762478143848197940698920805721998044208090835511691732763956631297202886762795373405314288335889200750460940017769666191263101475572867394145171532470046671482940484794537633807780791861191329547423024964380040856313956808867447722497168134181811930183941135990187944668241914960193870535618982878855487831473583817271723481491445656831083786601193012071411885756223312881469261143232655071107640617945360784301015525564242415794631007404412254986386593199888147848393373431610839917143810445855314613464375684116447434105184412285923296027371840838073399700470295748933800850194334845707092986014689130351098535377141966437861346652695545131237225897850477396873647365705212236691853484665920730122271926858840039875312524410417942165246413862986372374919338425443507996736962014078649654998154485340431067318820666941745136612177328660720710686895659425534688071902019395014989873625598145997657313819828912171019275899631525831056525155644400400772597321048696609861463116606952341806071836549939532926758482888942097457430934673419541182247674948542195551667082980146067415683092943004105474407961442112270188371232948249710845450470802975136777878096022171354780673622600771779616495947383254434446829895341913253869596776380009336580853244205387537441038430409186548771826513956532259595959572704076991718967913736763529252145283043912572252763870599971567273013821982759916173642738728237105890132483025085064386741157864601618406352892298627025823798217201875988172136372384462415534220739699082088556983062580070618440288677934213675192833546723477957633745520767099879773739315884665586918053509960263080895882546228633947258679238208953485207407445307914619738088463767958624121498394816906754739324611873917484754997164521721989559645547409984947730855060574991292869563636927636495948962370466987569456353472946908919231033448840637938232787744603061332236268205174730785182416979446888014358323009223620714550772285624602352954992506920495663830417413070274255395483834571789631624044226154742743129490972171956753965917560785468351135651855452291955951510227541915236227387292054847359933762762074106757419308192313773975074608880410941705729753977543800936711449262269466906932202047941848212209858221667470175571563745765711781760569644549764722008844307164220939205908408471451414940263130861922870963941060709308153813894788343788856275136477757660602973962929856659492470621287959964726817816253836253451312377114514444234347672493472507961655255460446046122070575338562261172365676372829025497300094068407347337067930507493682782563803735706756198990152760854214725063452294605812634583898506315174819285259222065382517848736732058430029047076027048854630086203846285192975126682877885445761815566120961031852611538899702034168752762532321658985724347656180011355185575809841075293156915470487343423133251363021755999803790077347262927177909461742754873002991282199197675989521198392386634794325110617759058022368044317694963567747000806919189230504852277723033141938828922269734639693539333627834469494786011236649829733478932835263151680918725821819518842799695671679065084169525984102374969152522631162722795402984636145059649288560588859518931222144763129820603481799119253476551831555822161099756266838666510612842284486921350338585124637007111558709959413612020481748728810979672717525257973469996828833483917865623781201950150507316602883543307628506898264806541862775873242496453368992863815228393764679086691018483020338316466578302618927399014423642564118490199015094206278019333518446474984519593422889914709253957170891045559828096255560032331659532910938418820557277964694778260461219211725671806762039821010251543158032863193307613254727654545520249037009714005486825570060694262710225830318761938581432575824573092841921961468553645872836291548001675434816084780062322279287921266485836115488799706731192906918929571910035515426628628306466864026845798865106927562002811236124516790017297087094713729541689747019964808329162690248998522775486987500455140477740984344094282580470857219112984489151682329382210835044221266733878234629389834184836844063239878998455046989014473504549271755798002425379121088252801522383223748195898703512396416776942021622390549638144385332014940726218172041848368699320491558899388609618954359003848996703376373798292256535724396272931675084781911586526295452240179443027459105321203502933332957486041591162377324289447866697399660477767892956732532033301574539256063243510291545435372986624900249971256218804874402942755114470552240492265012575584340020828800041580522936887686522108077448211590888280319991547608696854169721860542530410939358521192448214095359345357543779535771435234841754040782555697308231731408104863291334011158927278440193316497579567327099210705385624276363559361898951494500327709358602242534307402947913599490911934421158423601227870978750231320120363896163156019397455596673542406784066178958417150454028736991820090294350172453669675703255104376654202193564279527723106667262005511147735618980115893754144711551381024075848968789073850774505182566415466158046087112833028812615309549343572472319691417442075769142598472700005635999084567666391048145818917414203742127409521141350932162785423005778159645963166918672132587291546135476369611328248684864994633459432651402047182470665326878874416118502072935865574010499312610996902344740817863126575324404636328628639752353095562524037009186967863911423757167641400381823841229616986250032526106926841214398126653797264748651091869099388674289164632537363873566673033516794714669562449235034592292770817790219899336419208445012409718393032872108859861417872925973712342791777994863736007522189142289199818423703512127150923936850454573772074090299082874943280847858321766105113618352170280875150539292296412493815448888982356861775961762240294610317426616955730513592553709379411880573436091358518440122275690702280909615300941687675312104425518971734520817726968884696885895686639355360993800547903685337045944164956344577453078002935320280296047804697154968413041828859023725342447312952074628121334451711805156926831796459913432900587103626409092744173649919616906923777829484246594152224069287866047391270001151195037742819867862881446712355985357375501851644988319577824999083108778326583241773085603007727374746648128648697391197521218055344501803608329815758408593635875288266778104095469094547928403265377625685857392455070824245094260301708031212323812856328008754656361163262033495488536737782522816274872113049028122634585570757602352126859940921512113060905327397765659273139516218189545211522030812205274438693237171588583461403719876086344701081849719622242028594196228509752363537432982817200154636403114911436023493321646774122368534271908794225548303059864827851970235389065690509625120594321461715071163251905593865968806854384167167580747100498768359036647693607584176799649290711608989276108877937450996986127753346706681798275764915013100400809734798186655899751976074241808864811652786810253830596619352016763207261544429411757854698715711831810395955571015952134282513305890216530770540650495537903694026653247577724898699444815252038144197639711774194531759747227488942281359141016172647037267257055460951496750446579341014375717485384744712868956616892891783261279998984455759780952382630485554783873924655985389492143778275614411251662011596528748000348103979311211939800873368230592649288700897088019770520023607823443374655804266648158481154148491355993982921579291070972015047394372325230198541988655526533211230099871870928886842963258147334412006288868920086081740270845479030841523547777652344497999356317495424573577577533601158537358066517573209074709170721339335532198593958033378859463159045242239491499047317803930285613295859816574068846029559286525886446216865064973838655582672292642887635648947130915542436785183886482108358980671806658999701075096603533291409783532136586323530428606121321464923960330752681657808848536041035026106041097988078666829142426765687072317417444853798206374253769787750134106645101440861805968571992242378801260068535596928429434173343411224766066277727467260136739645153024437217633781684575417001026808988292019461526431130840246260758138843143127180137526439526214513027143329765890677304973847386401705248363796262831089805821592964949437662296737919180099980213735059276196620118289113412745843412052802102091622112503895775439979008100008819845077257174342242586586753947545210851949672061529446008739350107691940589601973878193061287726330079852408350597323370307943194814904188374915624659114383510661800150796680983636080152762073886122101563912377504710911467610303461907471152966865268102043580736091932760583739890808418730670025812978167937203002995694380912365362237844413440712592912171148919658022719881607090733199920606159376939776123047502680035473422328080604893082896460657599065667887348104734697215769051702504006826129427042337179681336753398908845777227513086417241598401872301012591461139220255239152113940963267129083706176368610454672061398789395854139996289976976144547962016550087529183803020857073017344109430893433600550150350390559534577980866177482681289317875573461325976478707420560349221276655639927140180799375907330649083959428094738324983892469988992678104836185403331258702842634355155068407015143949077734545666356782681184164045390650874453591210151814860134858621074784913352399883288719781127658003348827282282948078406656698122332415353399424781398126034507618178804373846401624649742916499688411186347145599794566868754371360444340455908024930584985971163714811255870764662387138067987734120868487290748511033354968503925471352730380321510117746397859136080011277581838367670346805369571115371840616927724861000093366981291439569334363592386013211288837304156860437616109711509083010075715785362159449377390507193619979119251438261194382113401533663265892524287398012419329147545464833610658604301599722066486742042945904247757145365421681811616346410242936373023904840089374618217350889586161359272525791943827734668911851156821394890869472766553274267225931396600261286229973161182183804628767942902087540034773546227433715722539829031650920736627763188387622111961831947957102474777241006601740457604450583760526159958779995384754500286239318527389041964213726960476563440452247633208343664142712008971635338656656148119590077255214833827083061293718818797654077953623248591090557684972508369063335665279574882207317660171419123061730829700743029634402832873954437714234390681819374299991829225156433140751799272561258077375311363690876293002776673368382299205832776224113358434615637429689322011428039835094294774611368546572433971095858414787431009772699434208293851042324477950877814659121132970108942116786237059651507004844618338788561318941189777096036828969265055351710734394081256999890079893492787394742685842441578393403573252644369183106189251071858047327420979744715165967534149322190445748580037488036264194762862561716876976769858018366019693081506612962296534621444038991159369974829721027347359749223199481216630059388713637092821053779181097415093770770794476889483445968515447224808803733281081152166907992356267449280975693573089564016830550350751685637624761081774392984546083730327149717043135916481225429209510884149431331735233720189725231655032533631416935315111619684999489669847559399700167243022277537434174709372097057972236985114764695611282132588912619386715747261069978008852235002814316987933963555270721361734329963684965120140211382667053123549228415940792755167121024507816675160454938762256729482806398693797006644818766939026650681641323940968710358057713931101865587405507311903645559718243332872261559322158143952191976324439154204106064259152861424049590648806822746757659451964595303961460561038459835241717303568907929152626144607067864972459679139263797645181980348750368917872949990358084662968152638544384805789330124914753558557928168487623111373850209482685195997153245190884359558417113353513493702005184257389204673742353687887889954676886399392521242062953846924094879121170211033761283242286167319669920366558579397454562036021019220749300437798042087047944995741661619594212460378903214145210421796625875156836752122420509392253673413001228846924122155935713667767302310579122098919503804903028872057225079145303750404461301262512933228988411344441141295435936642914199178529230745691823919073412048520563307816923203856945923862995685223454455660537018128544596747722057988692804052097256635722372203431942201532638197232046395521826756615204044317100522621559780927404099845675958773705878251510609771767782363959134767039877808762616430171994315747363154658377816176658349795474238105175428413835284994380904634571298942751974581843704363367379056336767547072436402488000358495585670603459303494971179987782339458918228829863990964228757603859302500968123386465052643563139154801742770616452974781615817318782638780154063343973528422617709972696662114147448102633803900842134931920864426920429847343045225161780745191387981746171813950834033674980132620985116697883309213384127047306637758871399436790515970597861625344035435664210509646587136324260386689961592195396832919804992198897166544736678329371932082686478886563116557774434485799873832651550394840188588757206842697548171667769386052267711340828015101635910780417139944252931816098006984955141125402378276702649166180784320830379958007617577632655421423155535611323295645569781063532702156801667087405355840485100502535828249173472655953648493959549315683742619374507369139777966076422776877486777912397422630832969458983515244593849388450195962556399305313048861684818286997324806519158787501831647969444982252115642412567408954998276766198051210198777448156313826923696909184399613980184652685475457317369840499210703488977537099437609946257419597268407065667633294898906992493597341186225414691649987980048043106706928633033930322985616025524367507213767121780259134943291404314718926711107869956180664338643164436058413502535918858046747069179435658928042174282181452647508102839588062575081861010748573579037167896640385230027221190837206978763304343587213883729961990280616671775717723049183699310429005118174762714487689884097344765389741553395212079433442129930839748583727023502305880741604322898644514169896904783264488079732821911970993238452157619693852947072296693259480129134597058121276960417952837788982389172258409778561371764916272506044667594838118130092098786665541257512462118528247784763983668386376054816948612468152134349166029343721139498174278409962678121139012812866260960785858663877747458947061172312167496296610386229011337890447566093875844986933152707946039801564144997219759400019979138432740847377617796096897919551886701451159392761115025931460176765175571457186834948679329642663693968220384884118450655174900395191118765052984494267392655828113225892486026674623408935012444561658776733326576003187173957943427422390185147821701393401833080318445633590765232166918778110780496575246150470605709069636917844458822983963409149636796830860634081654338796313502081913329750123061935821755700937173611548946363225448226355531041612000893713315931072387267789657997886233585822645245056829445065866641937987053294324366969128589809806080971724379685961646096092877584632472931309465688042148424727195233060950289312609276956594875824376087935363028553202431316525334504801997355099826579766666393010357016054981651893724580945505199861072996908016721663528580850970214288127063273879339619612613937737630628984741049620214774760115099250657355758979901888576952126368196428705881785393594080955140471560033478473474315627176578727591450493220881662737099934776078169014593914405008346533155420902395830149401175512462414944448419219567780160066394065128499692860165210170759509612903801251070647776252397175456739227870565977304634976284203690031727173077673969282065030575250631886252116469713976088086017455641173191123510606545528874289487807210286880336202924728266714304256954124977752080633711771934663968369342532258392175768712579805994528809838006117813588769046066371922012153469738086384250508946262017442241976096403156128256495928716150241050264507543941604765343671667577946305634651165987115332596511080498639521051325706357856301065518436358937546664921351426253607689643760177638644303425839366818625509453411791318741199231909541750112777320765252902910546763922141316924104195625614165960682709555286884823536240506986900075871418589409764321485961716255985972131812145376009700232966707878481830665519094106149441144955910424176302507453451629567338862659956508904146980964730727935612918139144299431437773810769196074012647368051632009852712575719216690426050017354213933240015515375511554003599468126626473308646244298972209323267976126846097129356335515588154531607937792164269096586641211227968567700299912665123316202416086082024024857742217421472044967646715694765815036236364907131362182343512196672377104348011010974130410533047215674412515850227240858646725871010437608250877791507135755810631822141150858670062098177509517614994601256199691872329281812781556430695589138869588234887804533107487449456303475410957480393699550439699957981374951335983532576622594865790266876311543561678997303155907628172693629861327874826664249685472096615553391485774893283993589436075716369591132625744948567934552883228709981548162402968692036960250294515953789565912422195955370230665854392271330621031821004285409586496470108866713065192085351031471867853378727419639766659402270876042940775428379114205671827330626564544600708507775431701086579095595412741831724837469870821136920794101532274643099940159417010448466147615643508913814128521987069508038056896627434302812820059019709347275392223851215867142834345476989405048347847100674222996928321762164717641540039988179067125401834240463363925979772521883111428744582975131473362944949474536909487890584114875484664415884504993993187610930513947134693214555881930375059763312616272636737118317689093772253752831514264712924173277829354223248139152135009503734763291591648280272970269285652450978365841946925208369640704431767977120669108404227416631873523365428058142096985407239705699488706899908037798886641151562549560547949550967369664676332190500095865998663962019746637405644911986339980659543938322857782145455049884814680520432594333591710741546717694432327079992797863000072316913389873603357719959398718590866521902565682120994534703168004545837316983861513455740173268025393200663065942340123275385600230001074969756064383419869057268510280288157384374610994595839091445427170876196383466247628907272197436198331614607452750514577296684954224477491716104965182194196448737473960485127907282435834166645504456791020001330830809274553208461860421958401190933157556823597662036161888734516277513760836268151385106081785373108879706820690656069323927125402524338910887007636904409457095448304899115983612863365009090627906878134533880152395626983727642392367579837209415168562328594164029768862996406578267164637625336509112678142726412784183032305410838392919871142833845060710304327497938960078228797601265692521772356707146113457036428747587058805830537696312753861347829505654180579345088695786710275327717835411328336997100672884305853937396024217025129669970371945554646312250321145058236045539825481464888237476689056249843560736548370183305759978725447156492657932670245699282924260245971087417260976560512198638366871098784654306512891135186525868675912630828615431565861927851860391135262882725233693099615917569176817010298765420779578222977571498270886329307222122369132550356245928151288464670281194069870937958251631911361215381414231220729841743816412698747770751751168571908615588112981565603251751330555725728758419270909370708060390071623921325234672171241856988555014660839641552906684786962323351877795232326169439893594757306104162737631878991715502515175011147340861760393391785435996934466899578763574400713961712619946063672130560313055553049424424330013911533247394773085505138282042274596478509476141163455972710159651313142762214853598077169073036926083553566079202401365485047703354228660452686183824084145022725287939892973337795764439342027918934238799567728159593739293769158149251847433397314255445691593109313539327313447081104508997586716373600898028331781120089016132068981228428973312786710824371699735293982420757779610248202477742239521457076330051198928909999005340292218257510869119700321198483202789437426896849596729638947093374601270389666707874870402638842380562027335281891574075032565830635906824030968371006206864884091976208049863741657130609818148691101126270468607687134854127944948392996977951974581178197114025201927684979532982131935492407362968325362643473596955341947731231212173139788254371360798188145099635522862432813069691559079440329729044502544312083286770243798767966481609910693979537672644065542525910714787174887589013172170150896789294301340108490156630421205004332476782118341022117456236844735670181839234744383925403472398078661306894332608942412670004919464605088423678079551848417464100042830306595518448906251684221715215177826498782317245306702731535603579407884049714819917933274656381396658986132614303442477539130729038759613835687070145092934766423446848224977445611818298482323198863954510465771582834067314056980325592491156259603116463999246562196479806269120167532215233477222328344171792491010161024185822748905951784069019208591727095286670971201700739150722458649865882495761082364404557580562094494672619199164741000932813569573429213471581807728464940112548056406144725079879889087989985681628843758473377501217828162796468224800429358276677654252077187974191351010970843606573597585673043231480105185930399359418343090538935514667201228635457874020021361781722667250624257495501907875655189254333497342386317501389090797187182573128041587042296881154634137043576109326936459523445573532570314865233903346857226115466501406317512750156093464337850768395553979635403288964226376052555904705600242724795631518362455956521927671793227992286391451341630582710057336374656703705558254583308520187534186377165641100428595925529333850375925195758155834627247147370667108077169836877928924064105371272781221752935988922611835858806524592258572832104548883598720591474628637104771946069460087718987275706935377648955256773393683269248588067288328037104379142695601385026424521352333432656925049187046755917141594670519266564456522721894820523700387075175729512518282103646197211087666302011551371160047077427881868111598748393718067151490076366613640030097104664623810320106935495497443815695651621818813739470970622502968193556048110873416252563948130403683893902153883131237502246642372205922123493593077693033121949214975510589925429594244440366013696422458551641098259207077453093290434041160783651805599134107707219593102275099576299655349597489021407365274282185398020846192002018804390065052686865059552941698994944081617134390943162123483750919273797206118843528957874416944058210451935589288640046950886981238331356518788319404643818720803103036080688798004668155945336464192664421844982312272626285630274636172100919146124410956859492298794307854701866759500285853247384736817844470547370910936989041650871967224403353943758778131887972064110385559242465177533748388083209714103372264283059505086885168203602708131936745502627142215329625800334058647103840473148252635542774918269661190525805537534189385251977581079372906794046793570336120099656927665502066247329787684284455250160821353308046753809786052536449896362757602335623514970566533439027201697556034182058569029440537049456231702509628655176511482492380734993785784742763960425144468909494152692228153883253178536784049908980608146500550842600345733310070680557649332595234682252864876015341572412509384458597362005507806672632042563960079916595118153208831116340398047852939096891548279475940960029775474053659588490792371499421780719253977520091945868209600860509901960626842297631454909991045799569222760682089794508088672703695520282985904705606865799879435696661778076893315134867085353057267176491231260163400654409111975871460999834853768642214872203738755542805697248608339297662338257375381469869971781849852269923281721950778635743655366434917023615779053130860447031711635038802150841007198006407579576333206726343807354647135053626805820989483454853151414167962795879011103742930937099749747918204867321361688444567489082681496992875932927258535503743586092623489354366685931353801217731380879695313766560090640204751052299038104050242890685009009152463867652022051901309006347664461453737786086481148202616602993267860779833448941776754463387575063017436834095071490567779934376598854573764224202442524864154488970133454886231045300527512856700055305462825341890788582983034443404614078671009393178059993275189927827937264822714225721708130801650900758358785138455285711533230061416233454666927775263060881000101616935398445695163924809094981228570052221329401410677626932106705499677610513354579110718685516078895293128001112785412931431520299739169193362157352411161427990429903998839674318677128645985416930340833701857711080106176155436152364496314989069721722144635625305998179420568830099285028876314788942822467236216023934386697849984298483442258052103693003853623496799413007302007136077103281523832420626189718459714157453716828304073448528699739081776972505792352629395559151193908410511152724566443162634815987722813624037460775491552119083340236204193148078409585857555923751789616113076527025644044164220113698156888466369642422206057502874789235863921128504126460346317697781593388741396426417760430859474986188848069121782483589900547349014201632424413469432033389148683878749535681642549647311425425791809354443234867674466407352023982887719869829140296015739289251142592780958518112720225967202860677346044579798355129058694002456244030347086501835618348363732363310559822149772158211372571832361567354385438429458607145825942605182283422967285947100546706485189124731209220691835268647669412771877160748627462725007062621633047343789441472868228813525587813741133509162214823249918183520885750354007266173586388887203549528891027092136475592929234291751393727356138477298434567200975161919059410515442394367196536023840489702576007651190890306952691984374265943308259626900408557297419245821330594942624786966684698746430554764612271583406913223436344231516794256091677854561786031381290810791365513075424568638493581322216563068004552995994007447861796770586259729696930415193028824232815169710631278601873272344545748804157609341965215668005653521778236129443034145030804239091425355357341285985798450727116594050610108981435950618462351295834922235021865250413827927344970799055800028965930559134004442272738785083724664544465164372015376519855088466645009166924618482996564178790168047463172095463301968441697095066283188110572426583235945176284819768702183670092632315868750266601368165400226743190128899120808687357741807297139720106052797057738007811458295596025596184197033473266941945578565164148819638137225596093816695414839800719030252790279409423835665819861089859780001454366010551520373684673564263245178987259071450019308050602328546316150314784956688471538237322483835263165773266207688473611515236157738648835557747067244313239688305994882355067923601324687170639163182330760849264058524378185440797887963239147144442889854926470205595043906276452472383240719869705265361387500957863775988641337855535920043501805736666667218810351720355678150236847456992724151039550329570727417527646924090061707296812215990184308654449773292270044547831338077390368426480963023145343843966425324675649425915155696750412537981508883400439248669024537705281681610449521253196740327474746765649099928866481115400679783262483820602511042748598657422008856012561577369487748561779728001697606436115347599588655815696373610722581249557517078961287798293341215278293756365618005966661110395770645933991661843479591615779418984134771132842923937871376786273460508647628926415351557190433497130711312707024193412614102689711104938507181658194905284542851330670872239610834910789052071114514059531851585158537676352069399877183796900587533159563163117490347469157774092775376398801849957605292497847871276486746494694156646339144782977538982333375760210876857888396102021514853945122990092882869413211931915794480882361824727025542171236236378758140862470849451251220054401068816784459171942097828947746734059018777297089391848144578401232264906648458369256154890272315361440542541995690871292745877858939406917157852987334294048508349671451356551148441724338328768132419186612108547069930169113180437674009262923182231481833940426187535698097270911205200140705861483717679716151201406227863777446218405521512811818980999928120226166560560468482987070819080828709558492218131757045871110274697137477172073000999007015270279877369694397002722984765887854778894713816153763088110443963310319548195387651686659905310190994047211804408824176661038140891850442197666178032736296945981808940675930939320980431112881454749834512869477034391898178033079055928867326561290361904571628237278505189498258552189696129268826321279532807342614488670825047967603653337220782612986508022237147504511413338917439971816395722605990255437600142819471675436750891965549874814092832114426869166531360946438605029881344777866925504249747758275449941034303102922838111189689978001297804310653504442924169185003593822337022090390027953426882461720381211436875073854401362219544155882780433170437048469496673352135853526545283595962218279929560540021403741778624647272674949632695328295932001097820610118153834318295892720477745452597732155288142966901600320631760866185148114564741533973932479880302161502976819563853880974974308455809712161340727726605660812840905166400483794194955311847020576614112789310028865342799522424772108562753964407135835980163585562647260460298178516594439900174014213981024129734757900413113439904110780583334382295106372924711126008363387550575093603738529428162831748146821238227899362485119986502839644611149961486229447696283069049301645025635983141780146521090391694258738574680937759616228724307281851957657654886889323513843548289069526870430997128792221317503667106451674646507099722054129134497238163603282937458101067015175120148464639877013188619581275966724045912914515924179308593139934496372641328408352327709518548166231081317120430264799689797058784118546614684093395755660204361310709147967834499555726681941325771942576835429118940415431263108241860814288774763889856600384134956653191672009763612623316161908491890717058213145891327832606374909054979813926498034503427814908876933369417831501384939958502233583491531188676216685096914256421921153165022322409903843454803929427050880075411138119625732296876083292922911571772410010022575896570388846220315458813808781261136887869844541487378190325641806411961830142729730428376392895885852506808965123465530041868656559679170602350031399716524965187476802118894681605063859593061467657087063086003272628788350330692778880284872794470647849604177013219454987801487411388464701400748374803348990713054069532277335795205859665202484048760071406255642407911272369239743213599868795124241405308411445863636772316247007980471397740163501028052438415212289516459772448540739662860864618931542198684265317711903306022991539230164455388937450910835990521171569651412972309632631425455778842346230387202059092405527335536859621513763743148482557781982707385662361976269181955354728334321843084669000765221954628132920184340765062814422294753667136243402816910918008268393951848688608096012751185818359077238335320040751706207693488980945140923385601837657464150662239390244244723009912030666218273245667078341688772149164510652785449338434274628835601160483007132666618378936614153968996009716729829003071115000473031024242594626474159409560338319718895435457686872431140092458094880053805647352443202356789881545806071788437954790244337768777106342815673810411366752438387754658235095393334665154643002736649231296708168875408121022040040700697270304318275207159399232949949353544490018749901445522027771747984317675024500956123722987358448036130959205026525941985365325530835426182302686902478980168023527754622035077993286939686542671546654215221145485141112620005827307444555428638933251555099572001822873067738356602222350422012565144848428058675387943684309938084524561095941251295808921821321442828704282412673206389100655198817383689509765735194089367783116892085718877410682672186359996568053440640320971812018200026986077704606225402554842487375291430858175059311124059002785769078861977545351128501402893739378147116885787154564418808561562641975605113488458098086959187683160670151244332957150512408846768152895654803695363605518373539303456337638373077333271449372387695318231341113962204614107472706214070383527071339913707404522818016573319754434455059064502162163076141374974469403956429287528601103204027729953240864597098492464027255122226920875280637860756574431923435044367610249465358499529773453624087397462799685027088645752223611699858664361040789587645186092031423713282051370293874727410855443823649763112450225840487739971701492562636809181650033590093221394679395953849820450251119376309480032148960063360566865552550091395370525959176376093753994561558131280841962343427399289123520392527042388637240923792940373903718115655114088210559447184383561518430683212572095487569747017622692306637631230771546895324396523241652396372920236196416069538678704349824237513628417304359415786603577454741734880925483819375425847468992487939348219921005108547982646266349365803381161700962071551808052995903055274227795955920919056314178739012568572412011954679620478434030036557975075451419127042356395437700714540883868093696733269091669202196713768514906613305117679431416117511254300479506764399768291334668627743882313223105788080195220775909417756079154358713595675192283205698614058591064459267235981442897826688187920733641601949330927793831217863230001486437612104453625215068447798125728111193640060675755049318125079765984629540794455513975900509053140434266374003955609057156258261510679658312591868145394936675670236763636392986834619784001487402263523538523170016328669577672167512565634001048314759929213704304089037227066008089642803176672867986505697701054103240500275423578452568457022403009931517552189804355625137686901003121520382227718749446008802683949461304742551927002507938096135435612450079753812763797334765779901703393510663992070457028753890552416664920586353826306081629110593889189312640559893773572645060992053238052304036478059531929569581490750409363578340536618872611312584968432457606073772815432241789662526725964676480254930001427224254222603254169444064511272840381368281230760212889874002899173351453803236798461485316642997013247353646444693847733738713408728703095683887824534045789758523742593708942627320106586108475047625019145238134592269276288898431695048196335986764173715399838037514717581019813000962863195524082517914052101545401195271706148966772828769900245108541281357880404171172472169405904296735611793863672976320071846161430892977763885006732823651456694978494160900163785976167039167603841365636989309207882833914740298383270989020030583472297715925488902292472733803048085068567858960689616327957313632856791310190018146749733201655514619753078889839225037353089359226527231484291531144384913042525764353621549786348503212325271320710289186913688984306607702280983470905039226956205189630847053668399685864258810169487369005378231536896724626827058288171953347189360959723126016061069613388001489650792998747212416819766889128303300818909308454477929066307778678976859455158324474222080560188905300662495257404634052947805477961281544394164121687775198056893285422010855401245448198607864641503000928444912729496714594702110614203170844090704639743892464784356477990391008992340631976954365824255728577018321015362789604308565981231797112734336560315029517552246636760400824312417937622465218090171416990989842057275680391206354988929287706542161569335827647456598268349804390428596769674058678595662798048062826723798013072635542973927496214953165742689403949397257741790035172638056429880396035890526399782585033562962873827846069134659355423773009480154964010424612344392607412591754266684983992638361277263505402894902732864706136837297478727537478896896460721493670175503962744774343274878277515539532138584713772956319029726651574706958565645529915408511049082357136070257346477486504206517000396220599467919551700032330238125891587559838124392256303381150819100080880293126514185403166504234619828333775373356876063900959987930522270412970652781205342228931185153364692178071785234967699323177492281111608249386394644552128301358416153111101876707447470255921115240562731825463764095025439015319075204058722340075886057300652632680846352798593130390769289284296618212620461746166877605231742773182684359337394254178985879978462639920199501963230552701956785010632367034975499208693156375245873537406776392139748560479332998678549588711689422246149954027640840133617384413386663760984302927658162688376730421797351107165399491251496427962126370332982084951176946846917294299997264831946561523893257253716139164883657104511929622424725406638501162643153971143255233565006609247914711037585041051340384710087797518712238706101655721658455241011037109864328262675301032848901115250098651939290318758705703543693971754306244831048355393343943473912771417618946142912678561768904993303035310997566207959276155971938635885527959635759468072728935148487716844436413213417138716218146977053748808508571741707128148006430603209590770760033707837181062620858036033179070758491332182523562096945759096857395970233937099043786913757437121504564932387897805040075165282788447053299380103979708199997711668442561456037709694129976578739945159317054524863609240880526818663784706554901396661478688618556990141637528250635068119895566540505562564967077701308384246510738678636635302315508825086783225408026065828906286259624122876839590625796625856305149291152359771765220258631254208852812292272265850842333704100769805437318629621762015611239345440943531397007012255360887299032024534612641516145898167243332649913233128117045761886788348392735088181687844305585769122882225791549544401903551106100761534440198954742673295290644697484699826275741282763368253632395467971617260768196567615282170833192769606167374759070758341847685759442785162389005123028228508081474539099824723720654648242968316973689749458893085081736558498667361345478963471315101067728122339987585241202987023647670673661608815338036058816803568039984615446501424862906370329958383356494619920175949591997312545281418392470444851667474891531910651862450384560397179993714249706014503650597040798560046779606924907553002063213123734083072564776450613200842738128469272062972780767258928452470535340352333423649081069361981626667495201751944950761377130307816040717602191030583309018476068288246704182036643313780058381352508904079416332046241341356936907038243692013137149810173565532621355379443297157706098461957722966546410287844009724324940152583196235512439195231708540335912033290174718316227285504500857092294707475740449439063287993576481426271178967550334637664757616838251809113564279929303373289498086036948553477470610310029800741128777339308485113162593318643859840101849159603394736815070854523404441231744062553822982795330176338139573825122555268475530883132857085080317935805346327150709494591458663411269832664927960208370275833026370000265747873407992763602783263687696044397455275475928335032654948207555996106346342703855912006506498018254538240152149220835743284354086421806449806665096847040922124570452721564997259228458050131879941244812200305034381186923216801634661134377789876473927467882893969186156250625925327975081328513960531591512397404273191806346773416440093452058509182518605161534020103142976413648395999535317724746663230327884938497870342597031493843274882182143464069339510142937745470473552130240838243559961230498486739499634189037445777528799788405407250551624300541287678094774287325786834449495452018222811738847501877038143977396620002913259199221653548239726852079344517830865097498652107004303616094950901840296780542945895854837202880950839213350089117651950580507664013958009339821543943436204495996330605435568449055597599595964564164054921111689972912586089095026906072702343393445588846565661441070434927779721066162106383737918071255729660633638479579592765243254975475594819590747332859347390814633702070890090916774920954842790482508574952687451067955262916934271739977483781717933225879525525689329972938524607154778245207297111402308429529938723253144323370688784191826524548563483584840040659293640922408855272647006351433793328332067992859200478327130902136745845742986860575463442337562730238705865437338904187186321977926865716040853705830785714365556613259215935469366876965597089232596965249775137520026623898235683884565263920745298776303317779593194431691811115578397413914984792704198076468356398345578986194624416557322276216726829818260008340491997161789257090025863473404017657172857760395588075816120756580025213457533555476801273812816627569669052225319764488789863587481523162757886291211371782274917258171676329261738329629588973878026267815626202085757260659641534999462231412971812874048570538099957374545198299196759439970645691137581209779855043076866514464419721944645174841683420678398137516422538670518135252639468692860573987291657003169463682625403493037303319636731019877475701854643767417158154101888009137396223216060456824825340948292139803542993860919981897020843462162461037266872608703640819654487101002077422099166178426845561104935335890472660264568396488677136523881242803253151327735961644895055096397549919708745056326625381497055341414315541388541319551590131852633041131932367011025545143138078156429717687941207644266731914037244693201042443919635408778697209663105948676274324826598600193058725058976464856878844105437579581192127397834474416258950908505135524820361932858787117733256784287269769618178864646947235257781527210048237356140002194229307529573978628243570256049527742195621452198146699641784970444545875499778140127381217504017869926296500009800526350017045244128957912398403718735961047066562590281451962427826923825446554847001754269601841224597648453794677325994796970654478122280462468835494143881475124975950459448195690725722883086272759369238145235579491091487774685179610650689332124501243823853595204837510845991979862838657076261674306242949783165662436256031305337590324654291864805185682828526144611490272090270077141508493519822739740623679055477708918234709048420437968683875643217795736369731298331526501280547320996480233368553916169154799048745861790714790803899142263189156372771631846602642544220894338575858011934769754267373175830858571398717147477482267750572838471169069806710755618672510651443257344400463574579315334890973646982505546941539818895943041798182179750296144190175454707089590946923002205054467312172751171577082079921435743675166367544127941414881284139791253780536788379849604092358969030774792050291924277285631580771028385060754390626317569299599800900246320500755791383450892317377200627881264573326067468578367646575650581905244767785011309263648897818485123281346624444227234956362218553925215978250814134227171895787330961965154495880451273713076011589113545937740949141412152476816793630950674657581444407819606700374418236085643217406641950586494973547938857821554203620663517001408057366384122251680322338119138417755918919414535094514504209726785252702863542837958518035702261414082293150252480302051958502498019538533897799830530969625566275291896224341948316435567554210393469434639079210336174875119846413769311458458606651573019491303791634382421380007836158702063511800821109168561809817690608231276038809888355024829945825400158915577677506672763603966297270802856404719273906438531427698010890828651195161722844303409169052405219443023005352990018094734224851568177791063352726372875739905338610054878591376739605712632197107351524826647724522929172295725945710336634305467410419579599383100883305858759273690451916700120969925426782353417490838259490190913762763276262957196809349995918183525112362986681132474439646265140153640581183615526855220148234331971972783382822142491214717752044713616747714746725083573388692804465393246384670488683908868208057324845597887880914201186499813141048822842823929328124789490371256094981722729298325392889271505242171416959349793190258819044454212530936210338406402894522653565373318112518869634643341611449208424245761414259421415655669208398409188295977582256652653528748342974012205074356332317639052518525387029123731130138551196878996503257315928384643082896167725142462239540886126255834304998053837667572136853246719365282895294555694569734186337066690010828702042197116222950162989232072374252740103204061536278768975898155209862197654430211683544049563595246288239464739259714797843995029016596373989690296066088833696519705358265112395635956159860088293374116337675640486232384685941817836190895871935031232884221818249986432505248634114746519745104095855719337570669783501742148113183013524046357658075266535062895894775156550238492892144112673550958177355504403001203404864682358188211626070779915517674593651662997565389514623217431055464197695435314429002262977353628422761768790488996909793022815401274598683430727453200514468093735515717455095655652859225257444945883746953381139121026151783905378751592588340859313244900937939348966533584505333446599906751501490744291308057292434240264873303228859959083442343461498009676504515375372240940023423120792371219776258818530832641349235692227140078708641750625547373158894596941072300934698549706044797064126240666143251041789080449785603761845972849906848351405514253670353083066312621882194785099357863814251555129396089365571848025715350558223263753369737100802860946323657461668026951189525524951899232448322075134154751242740425125250277603364377543040161599373945191858343950421161724200762897743674911515177986334796521500111276305957015950047012161655095218222939319641930336445406627310332987253986176864656226120627916445394917728744383934429394641923363594159791384220446535976042786651822129551232129300758700955708376194467994802340445760396053999185941387332415266642042888574560705983032806517034826821215787162916534608473330184222217871181614533651126885081854213934744655574315954610290006598558566000832341240736299990537792398235660665483494204063820503975516109882053930733779127458453845515502301445858833619456498534884316118943966148254299687505558119477066419111930563614963553438109419782330849889572601517135133349295832033128904130838953042903037527360010186866725736447991261456626265364084942997440157660402361564640534905781749577349477242902337294659916344171109942655453841262630540725064079200606662593947900579836650151020118003594840517931387703511800882714857312104132293277999565065543571685607170983231105249844579157286250094194185340144336571707511755683940700411805207055395162962391143566254839231475020972077053068745355969091176447144263471888862669525841139025257494775426460083354179234141989876158275683806055706544627161968357031557125737419177173893369893796450513471167091724941722129187290884484226689355960771967883505881212829453749303739514995260010174569154319354306940886185718207796452884228296523020136787464958799457033255484500330044616344456638588476170869726633722492717367890105641198525450372399244568040669919283906579741827603132301053883254593130552309642301709915757137366263933476919185650618250669577430418656104941812154893223633374380038257470082606070259133348903906921828253259556785955453968117711420365673681628571407071461295654893417381438987287617520982363327532866940669051113417232697290565004235087011496870508567160854125123941109246255905710842292998165611493233589342417901172396334161085955145098228581199841401230345327482786555530590955158287431168196770610496091365167028935128129352435980856444606573257802926205048810646005114308831926321733766436270740050966307602685621999254826325297193288265032989421532283700349884953002033955343635648525921109432636338438307331247850708855137185364315808772652305754215463608696336530571758211100484250224106289671030372715157260934263233852981786882206421369391564258555917331487958096522423927033279311058869388889935731668725872984394805096093079167895038243610806716994758183210958921079187063592083118532096755457036833630444739772453146634443280334785618728201718550237478324764098357596534002565446406046620306903559703567431793974148362312966831079846214085092108317954233733403864800874220971696164368815350955779757983213633194282706114353932586361484013179887930919871283862728782602041021834029540017519934755357565642140502076028468314742904933318857530917428904547321565206347576053884288963000323288403364133125947473972262750342294233111860930812486566729750048466488131023662601522569855864295895641798607827072230101466957092741511882854281108348382828815276116652953416374846686310320744647902617428934862668514688685471546891587648191908285344328665876101223295392211631483979365347916457186709220185840024806834735696949523959916052740602300035016067605251337446962932915739132890342589635541611102746587659789681466737382430721766064747861949753962645276695832409060485044537206840057311941245289263474217702331279839557854024122096745227269266888122047528499777045875043358436362244947682873927682985434737763537526209683635902522385006690078832843662035889396406240984686579015493560949641353793858251784898924319740551889279411019429517850473515856271354197327424954860325807487612438672157123136842260601761984215500540870051395306168034488218388152978495905866613507772400645518635504741854512428765164759014074108925927128772709701935223012326989217488320612396154833376621111805982761254671105082222525714724575717051255837844972768735444113572855314949441894163874546622510764943862069688399213267403196544760327591868344548291860284970511047459169285479828876299273308378226292629085289124971298141417478065829675084052827496804909673826671250036233020591621971386299186786484834502622506842083996199777531042439202162985021796070691102210090143669749602177544676381661612878014435375349682760024529792087315796873548138035722634424453379456497056877136013291362886045780915611432340520673233954319114419052632325083765328590107901858391453113807028788437554866477790687873224282925627238582720617734278613948736578397782408921330380824666738174627779503353048177693881096657982592443144455691272056688762493173944217378181018232432966688909190391837101042549651281343453465263619526400280452135918583759573925293067631200808775040683154282233397482190809251653520384294684650142694003076442807976070590459004108526769959156486326673130585670834309744849572800347793130385665817765809888657384042911593869526562424781627082607847735771473949383272173729978011970338442017890056838443528249239348380644191395681065205734440849123924258152189634692854938066885653513220078117367543645027859810564598694941823985755817680597528146742648164443288631903061637325880208276437066640305734122265661013017632953621571404935296648048931938761919842327812559499907465441446699611841611880849703411205121120767124874263626103730968476131568887193223683828703432815553710851556899059551243614438564946766160651477359126116703238234723710422296831901259198094599097609780688584997625356413689640427714056696030436028297501920101518588745183377063309644553641292880291582699340724747194716747054977424872863345778634131037942699174975736446497451194478356707303047717043545538125803371576466584438706691030690886280460039372765010685887421837393074713788089273100797941738212484771915333095668573771306464754692000202493175921584332178599887594676571494806429977106796343591778516751689827054594322977926147084989388648365376276647207910427103398451051696452047427123770448076621700229854267381206177784475616683405289587561841338218121723892687548696936291902354728743959735360833766440839803127277637131556419797547034772591735911595312654463465060374116349158016976585397408119992278488964240937515335783647674294416801003116125481922521912157694008686580025169465873685503167537843981624253010086259362499674898532133528123201257589527843889571307452522458565860874293769383974670133310988138448132238573075395107826013441774037447778045304171362892520080544768042157117478280137951121206948598714716417141186568558060341690742160122534801974872782232277628690093396609445133972803315158147555283744882812049047235187179115709018704154496413696020610718568110188072884130016688223770830135616137651162470027462283873584264491307134855434903335064731478664858861995901594304950083567954392290983408369601380087684421554830148408473424404024220472022205275861283178620680213184831551906592268658865733198416274497487206862102657848081755794300736833278963305286857936699089531756696123712721320168965544251880244902638814956953877674557161463643543572136036692281738485776778993737390746355186382082130765803941913697593994126083632368275170076073115909391339377571739524741035600906349184926388401930814008611700352720453479716562045556216678441742906839101406462680888314779818121695981991281383349373321383688843995590227293631770381188866956300268591447341847345792364024866815650133859626230865138479337290841873144273145207400669637887595784675913074143585162006230809544936255599585788862519343542102278586192700709719990519563949590980192399135948626879505931914962485926287181093008099267586760907135674344940133464421784934352472075905908735518285955330679928262782788096191756458461716111866528770682652255652159940812737936374615688236588079190639336681853565790604823079801440245534985238012005400921271849828238744848588362168148083852632880457182376272572661758516000148183000444273229674040612039864703163771410364456375834361595234617509088646198647636766495053617567713439482118051474155643616049249687774587259793072523879567855688348708186559487061348593844652623008253839781710156430928345276549728495729197067189407500058905053928270558983680391528327236486029262494728260818796333389452400574335626680442348273992504656813793235642829662497222528577684047789959457849852099228746919789977040737454621013048805942442033692554080747045635434168163493643735968294962151985108504446643482569186941837606532330914909451451847539749454884506859422268418780823276416493848925937817228395998419299468973367887361048645508710437019286461451186646820898299276313466698100940220881815013572686482073868585706520108582844045852429519107016618926999023633798224516758416692687896653540880456236482416463530256204273559404495713888332813087231408948040447825948919123450148745813376494040104884220816033949190234965952282987121886081741780650533089266996399046051099059847897861430733046555968505782619049810564539784363630863438578088952903258303001003933036172600866241799431287286517448073766976510864755263676449816220487829946358993503712360003600225928493523327093581634120982095689158582777275113247469640221303694555946618746469945300821492593156734871551615147253732874698574632550893311372231794433467184545477929469576401654891788386120714870692555943154036365698108775247649041197191836889747715749755144181750175282082663337708569120366835184050566911314863933329639751575255779122669979040693879043077161299284479256420534634086815385876692491342164590675288594862867302498119124411030444619616688365492364642915501868405436858607612654720925544572044753043940466409706454487431410772677777213475905754699193290277416582112625762981639881799599968428753460325278337071625780145536775501866408567969354079325032318500157514490536933678863582599115441200714464853713938342194080650302713837442483203353976558923986165120520718260774032978601119643558221013181978140268684049503956390183639338656091040193447765855678728215901080956557710473173317251329743434934854511970182508789294405462272668079069875779351329440545039444944666467707020647587095906588305578552365128275350846369892272126458175426103594106725852297500508316139516696824372319405249817064183281051652253046585969805698320032360834793547372920158358558088822689238675900921554012189228692224781576129676754473017210946638236618141984855568521215105722893780749940938016628307010159599839023546851821819356184147578659211216224194745000942867885734854028800309223030260675269373536676779450903870445334477789477621987170061894870752113116319482460307684131328992427473611804873109200566282808082622428726398842464449365760659122975819622121256686696661595748739133968330840665327824197288122621804484300921117188526441816411342252257359290170397923190761007917315805151001746957869644219794595602075944161729221961983103291920726065346127214785974267434502479254035068053085958871680512957347224979294843989205247838406784097970562827283756222540149997971896064466145464892090804535114366445416059414504737101399230800643024361156489258428796700965748668969445401089530579172109846975016050877245816981589532873308170274761948367161930155709913275606575976925848708131338969123907325896610256257727340540514172729536945085042973125157682824098425279406952145918364897223324121235547349642088274150921672262683669075112659684011612150851836144031724956246832473169581425365244328202308333958820668804532026078966501848638947500389769679589149277207793155120682566377624541709348097767148485415710696034333124198195146521377274867079198063255249853192424256634720331462910959678688183955029459376027697832231993387658739153551085241518928892645700345113814707297906582323059419514981397820470474568571599449414214718807808542006101560526018035834719872242895644017363594482305021251823329845467498104314540726674030672356065563883984117523372047243634400098613528112602708177705200395637586143259464682154576594548497667109167672454568212321502074112439846620692356207872840018726072957496039920341840905151218251537345594290750751489383861173824571141358787981347739926386791965805687176395438436266887023259008290467191157959358423430793831123865735210830154793365084024665257043274615023241990878891142950368105249514132490254621398087874614623204787346026842615007299014190777565180238409398178553016092086893748507289760369504987246687037508777815376440028594946362658451879251299176913381665320474193239382712354093657757732981325213563580152004805083746689989174280333688377831348778553783613890506162814056106673970676514685907258931364615489449687736264150953250810173759053275374710191921704035580999898017061328739577781382383848446615538572369318719992523641905677808849912893706396893598103063408619343213809818448916524153710646079977933645061282532538281355668311500799834192232787035061804734179676522207827248724392994612426195596402523743629619238963570285248840764298118364801059791796459721020513778678812991227432325366478817639446376613614733732649660578806033014234212297877551742356067770104237148896789466557554825832128964860162023113398322584797837136208737961963832273372787228109180299043434340361902573372295670792848801052450750990629666909552298413867633435112722734983414041578233391474883821852037765826314121077768204923146293495817686140012434039686662780350610276768426932044308212365977401023129182536501492543931264906477239925011867889723086213371172789003873841695953405631832356494906759854820985714661966601029294559891388459955540051013923120068960758005070056786995430522443986212201635091969289194512334661191839302338606604026208081282764555235833951793201112896556138517876951801101226945762759472010105447809037322702019032453998216823583347478939329341808450818446946656672340456095734691385268952926463763338295387045889069486937452094858199355236983037421595515779982973178366687443137497130183883118295657797538673941535389194234465942266816273423665179753507169896323131982794105343093968089519875208646292668287358017473884840624112368781006535646941070136028519319622263774445166225638147805853529560055541107985518081681785343025907956725689821031457690658837815005383155002187148010524188567503719161524554916420209323923664000726864673372317661723097594750828471924884581081267192413464481817393784750456511783220550601585430579105746206776738179439505263249329543285892724518127561513081270523190688154267745401966050400586399193390395145417914843096544233428705174879979321220474350971711723968779559543757961360476804316137791734582252559501653131687003567118730544626571666628521162973588135161247886252611826173241728391105760149092244589971084322261130605386793896569936177560162226252696543755364535457462215011515221516189770080711329107014085331122992559944984872979370301565046096954459214825692929370155772315061142537115610335050812281527847760494136924663652237828624673043856669877908537439038412071000038748571890760983475556847408121497546886148625857568206948873238080113354144515364929735091670755876902638012092145192475849022616908264518821566958190570189601976113748041841790539916657212082220370492785088009608402335518687979172761376898515631646407570259076242773223981386431064444600197695352455280499123209632981553148488822117893992989395323263635728542735349679725083692521159272312976384094251639295795033976449267402206995454364829803077867953219092854299673710342259574383771095425478001175019580879302862983753082980204265521717293943950474587021602196821254763998146908225384673065134873213988579739019106228403185902491763394630628908236976518468283503217302982682422524862043817975685837302033775382060259197737273193895584019471701181505623978334948899772175130601067996041210808419527732326633270796522209616859809741025975676766957651096210346142781798026729537435553560023584971945670772619917643684363791983498267601098779609709311138579916532015995752316456594764331262034850291462953342201391736397955611923079000953528535752648531884236779699225380683710340194889668358005149665044158233817173516837244884867956187386212657987910374728453486443797206338264806631988809726294785274807794598982449990230985143022541625051307176588849024304112757933757126527344807211609895408538337054197129595804810417693238253507717871978333836644861975578346788455813597580848520317022330707148452847389551128619404777382581446150945417257848037288968295199356485652679536385568849546291764577398972483703096569382524360264628211122960864914453959666403003647248507815077554483275353014020353199785647827585752846241599038195716731413902142997554945300070810644920714082489794581255184988487876798568870444112270143166432089451193703841147127947520277196112051025523384026534409361237248442098634444021626260733690804044369019441418760165161701549460195625610695276850180956699922809124968033738174512941002888184719621569698565917502164496185461846871672114814681708108474218619740714353869730168211707596155213788105927066043683039925802233402698524095575625527165284106834763619401914775800869561462271377643385761504947630864008181810416443441852180699496793798114701096712596358350204129337283534756585228276400932776582239927844446129480395725033340524835926651963242123591675094351344348810681000634650522526683061133952130700895402189379819590973207985498391042928269997399457119744348712585154692252470569177281239379008365147751843993435701103821959684650239530553432907844837094548410062253740642846406977670023325233661398536117793696281171394878987575971343015425081196446613023395440417450433127757914609626386353377251034154393705076539464252842088579478880266676722403411490580772413316498754439979580964691572783835994016985471130751444750292089295551084157645199302250981865067993857136899108545229938858757116929583680082140364142757381925399644981633203595008232874765448743075596264348511049667047108946825776037117211174100720765461146630572442287236516369589465229632200715366063901766777718142120981225891586400754916552310703117809177235779505737150541776828143911998904562847654343224044403772722204126297772903068828039041726008165669931280831915398555199302716125832876741005197787136806773239991530649602169951964667084896951154267993246410782787487000747046826840470435160698056598923907804940560393548690856188429746863391758807021334417594659961909395563490693232983197844217475965165578986553944074727767262181722879687866902780722384715591161735471295888948413015538716049722564669814794046728581686733015675490749894576567969306379852261871952132076477675421069896283230438068392963568586518948916034270899721077562850494278997895783157213279041378638693007987640980508832245269953509470179892228968226356759327279015041886186392296864127938914067169711555076522013402730567495232786876846578108413890522230169740571281758569746650480419459533693806138271431992830551989905177455623524297677787465288674086904614364154841597282265157204475434750642816329136427472952456096671546658811990568748083358133522506060757397604127893023085664163896443000672765226897022965018874610516159753964444517704030740606000327420399470742125783721250133268742785643924047185842423000785345368805301968025501180701332751574820774674861436571483593633823314083580521976459140525811763117987122844063850612490332919090446674088068201605515526918632172565512384313282437497870351596035262880058490546565460615494381927082568729532734401122325399605233622078504602614631373521557354655162007187884793812662860606455215242982704785792677664215246442510301008060133436822367936830910634726402153930689757920831303752409657170301900745408440241999205118940990842261771236604993821738005992381820886988186521502483434597538495826787547784335381845294988979608895843952977899641454249709425057067050936764789977801659070905604285451447017550761005154348713266177383672163540796924818248446576857067728335184791487769234830833114653948605135137894162625539810151162007826615473232971574363382304686793549068167697439364821861547058847594194109226851647276587914377402173071785877046415773426810764413243316277023469128841083826756110170176096673327697087571799843493347864166138680597822744068258713304444249222924903722241415262710876185941810768003310884474620187578731060240784381287768775738001223310412677769660809136321651221426401539890204637056611136833357678654028166186241626835967083275306777167429826666068272151105424329895826274567742693034226325151900162276524132931695306202573086820823595809449019906327905032766416990475334681707163550662604253358630434635606849538935433363756921502143517342476981057583149918739380671153923641368762332119905639785951340391508793423042516742504942665970930364591971383459641313141435676126108279792748684725062839717047236383968703942030167673434879628888454137568552828385771364340989689220511365981331811360607779495961876593667993829157138552196403788661066059304173357132411480832063772944479817826708015002936511642826212406469966293271894509133395464324044763564727018636637581082740264776759888855465895737594105638410287981556599154716311874434082502952509437172994087804927179061349655158496981595764626114466518982142668921352614107771075165364220916598514674196436768988278567593346982329545885327006027047453426497445418169776829056964222195445800722955448043492456321378496266504506051088659449531936597635629455207900012568052903203067418110810355465688945691807659300506867131914534258251953576800036285896600618899175556565151699126407443026843144570163454104420185849919298440012020505905690357866113627920632282631374008237208902895062593259689923354751362346535330094953263741143445622532350956011483725510010273292239593235047040721668128259456235947583342542344892125690950558250986170669038022550366980912166601758614361588864986036121724172241289899929303780253100867022809504398098714063529427221800450097281564938906518501708153515110345506862767052697042821620117424320674387516486106473496422925199776424515656306954785398174417075353997441533368560824427371497923033881053936823042679855382234469575080258509775221783187807537375921053239645137446640529121314665673618728394524114371266493142636862610637395290575466584186783477620861166502147365136939972087418063812543942889888405069923337989328068273225540227100164152066488689941440861836983509395679927159880013917298831608931481509984893447255758235494306289153168836944519100951607906219925726491435791962321408511965908605753171789873724852073336181566612665826927575820371818990630529095932662449138674880022061126671223031929005731780141674795390819222239161721943077144651162060459084043272420458732095818421252273880257515180288469376885718128781872110135176786229942533885321569279045250297969674954788511792921678442862148494512242151291724007976830578478768516228419861842718934116038027947462057907656299682577142547575746552940164989864315402733358324047517640464699193779647697552588605551949662963965608161754422432489981416838450701558429084605303115513083822672685770595200267862733270234659453078645986186779233676071868790313754098524092720792228116264393874315451506279769887877958090344682296832227626881006268604998185680651206835349727341201193154404105751152028722158886708471760799466264507068594480952537581080974918368374397054023735154323438614128540815748701379424557804452357421220763271126706923494409936357193401082923661132484504195204660635407093682399979570256498065467422979950089255466765739492450927774240446673497293226394080256638881122755316578112815864149572551401677229433173506683398965228072098925391734054120521941130236634251146598926411610329208965897301371590493937951525273544597034447119751990957721642994115988711153137245727987987377087022296877138390587965554909451634986265305403995792802299557852973765513074461298092696216464832268599010041343183060918549768768125732920296542526037383944889516208032832877835749194048959910456835716495575630843197013294577775893157390999241012216332117163908183359929728852520063001705597859373128362536655159923014756404539591178761210204046121590883823877805826737564081127048589766392934301056486533515414404196228601762630141991847095189114326883529796947750790106198574294799254488181962443030900154070861368506745504237076741890119705864210996806619710299294610573427778478002891175498855908293107212217797783368351442873363596860056229069914224424146139477940913791515991881550138323521109607247688143465911489812704750514558725396250209925442140699668686169436857339844612121131127104836206093163381216251051933916121968652932335844002345311636386069748689547325301090770599697023012843357987973392581498076753945438100875847527302927509210697086589336279448235639138084797380884944293765501137674761812822469056706480653654512376153246899952858474096460719071036258321071146994502121603176067081396814524772055081214259685653924036877189907606044402330313463994257233380940820595427126646225224093205621589869283803293426951572375364766003968271502419836077487026297005186028114457213262752025121759258146058086478309892127905053957108896557068140016499846789709528973825721499668671596658660134271234181715497294319362382371966936067609190623703796360048890200921098389747793091888599633357662139097441912869240737001534709500599584364776705260646259209183975592166865962240107335639962189078475336020613824920134248875031626430029797635761922938131085034182906654315413863846698102615019672797839003032086722925131037189356123777180378552521965048230881676544040410578140214401906477948467628736073571541974967311446183927561559494011741838258384515303725426647289235792208382333535209960667410003184556366701497867086187724382049055007208203924781436303933972167678259576802686342431124438318959028861455900903487288964160897464315866196162250399990201159531429270887500152390733950022660737029393975107525967539400316093917957703798096012892650958375723717377783512752358383640939169076535812328953747569003469955804967900344100049390959924388005812956459241017099733443672441434377021589968797291767562332629012266231785158203072641920030249778867919176914038585558046443416974809561781475413592272744626613300624697070550893110888519483034035897549767844828483802436008019491909924099691667108567187685934639061715909805707067027012981588637655486637142470760326034488111098069749528091766093203984722931322843682914811130357265737559673252040376371072370847393107580278195346134013876319411379959345861616697163864467166077570742347848243465566103488875960781959459607641018761117451101320369588970933978222549239609432586974984494849766502112260642478376007889339388707619549731724021425442204657153602773938395355666391124710683178092884909180569266271858363889059197101422550996828343768662345240404357005012419585070442845712889385118439180800248217082304310250115807152385990892312791874835237269975168551097069723541272653107519562206183243184651546694336034285995751442520567218814161403329701157361742668007151452687387378597602491901713301071546257161862237781719630119059160934283424693620034557577501428605417720179699694998034574800598105464504370116119157496889577947172975472627140802454713598704214411402592725893676664259105545637413956139901381801510739165651354237193716949300741750676942541633576226900800898825202383801250789733807710778098619231190699230809881041026487695772151618216788490588342259504102618203319853885965951584376147564469293858816539839173394120085136258459172614708156769741322278349899424305979226084189846324309195057100396675030490208747910662014924908072231915389219323408527834617024369333058357932575474574559493644796453179842221960590532955286423351005943414333565425837751644818764959546596359746296582235857214596366468143981751440864389411558732139270511633727698893765027107076259703944467802858239286982225268073860043194592838709093418091306185733600081877171842729384718211796093924365397306603324681165852289020592781503583977749021003162794700845470748993222331068181559041122576369432746535772100429604328380603169993358999970562284253226484188789736796240236733601075842065190356085030896631430401587779711714300329588614753461110588950624762782821572529554473739279666976339997088679849474687196604491570052957713211599565796404284616796064798044052310197563632667845038419575494466910522265705582872241422094451963191565835843613962545473784311969920880863216057118377061108305506102272539409293108027402130758063710990267102029382844143952010253635104728525022893546231168587993163309276454134779773214583795614090906866184331026159904404184264045545657041810663422402234799672476301697506751385654555123126894861262142022509520264445156915975006940829207619423617292299394801143059473484644022250810962578888221477987111240691364155563580828812252002031366822894848308563279061276807307118131407080212138763997275736902947852486325096593125429689200625339707803336528111251217050105790528166643537046417046655247716175816881029563269671085705526744451864384414296170912820880409454878252268521907218985571557836937793493340452859598210295794340550758372953620241299408624590993445818314229665759189834015791770348976029057105840997464741062957975848994135978761652509918884296509340762346481318324679258294979086523139828175776901332754278504943954130251179025220334561428332475163501031119478366245550489606434873817138605781429585467109445102753309099218711165762787915521500124266392439836767359294193062910919801490167227987534077724711637618797577840757914760139842893994469756867567299336609507087516443126060574260605677867030424855412827144018219044319076470517004944399028604686478504630591353021197732530646819422782325057093957057124259804921639816634646213071881578424473536671286770163039835892489306129952418718863813817972293208813896183087574490637754386865069997168728351931788533265094898970678029535284678278072035239817196702879549042267027841022407343999182999448300078123187013606195918613843461868534950255152668817968868515419993555033423739477424665684729494713506120065973309608988590059184742839573361066185623320605349105086868986413327798807442263651873935411215206014422801664920343153024591106606421177767041533009850548361187531512648135989136388822884922274843955328591646343047129969737819586584415651276098951473836131792142679273130729253484184729282244945240431886556742872844662123682777151260579568504344371962891982495169094649348790524958210821743738323981248925793360274100326434650860572222006532274875835391144598050105068105413733909969490353955590016607509018422794079823813470915030305757465200657385403989252315640600213462996826975096718195283763163686528682626555238192345731824157849680605554352795950936693317199086383101954624905565224309827398370358699536961962673008413010508560430315234080977519676220177268676529988052316881122763954739645271592356837516424568038718180125411572821970212326569689093744811951901261376058263977390717188754785912759684939978106139774079576190698493290084162899129751296027723909514314777963608255677911322561630830327854631604974288416201027228404773202828263034010702424169473420631704355096817240439305962764416857876574291926269868452266155797011204392113762997828740031795788492476559298814680357960169383965787429719888900324485882267183167680998712340894471662198217598970030994316889782825156085436157911917691744115757810078740495800901605465138518069871095749252435644276995101799888752065153998439312991756924089525309441277878972354565875729584086241957257592596006589400060476928825081481072023171263874507557412798799215136941634976434996380266437926146418793781856973341697508167860130237867523341502043576717060240905476728280160676605776771757207055991054539627311736685320217631366066587174116910649028011431538202078800306182167431986022593787889519232135689920075004213793159816794612191035420046288997420190285079879394080425629899229745772851225342312327377111308586617899522764810660529546796205507489895254508583501878082707260260327168221132166769164359464158238705589817169516762350897745414080812284009212958733020654238108201943851462160614703699482457963125467310395634192553711580682530846790546482294830258583219018295373997202440717536471337726317609278479471308960056381952011502896032784337185795097906007073919436720500687295995268380862676807225261495530660025699710739165273696270390770023262657725283001129086501109445807989417776662259910058914087586789016195500532615268324037074791220208703197385410100978111687257538144604817420381297367931515758637818089942677789699518285783972414091096181327438008759546574533878929365927643254045295005302154430839462691886977646797358201834595077994399740659667100455291696212785044585542603497118258764207154050119022612756361431473093944990559230510514531896348065880569771004746413179712835265050418019809067775396708855163387748231972805102809190867183124424020761711813616353575182580981436640641162329523333409149709593243048273687916782605838024700119151123740925578292180722432734610154192781857791283317375406178958773857924700945660674371073881876507086436174395096169423661610287011521995839517339764623300478135777510207579540207250708338264390671694115491689036091566242149462255861614762541899938941807352638149772987512425140168891295773855769192153403716491180475340236594793128901880441155724862179307469345120163098480836421719240278465221568476776950914674809904192825555997279149797018830479246919506426548129421665360827736356639923110897103781043051485662691299385522989638252154655703871714905685635573084508578029651224750138886968367866146499862399584910954130520764749588108907696252835563504116498820346774495257772474193309924980945526466770414974577008290199861866364330693016974250426671585069968657120429832002377102067805527210960785058534569831041528329347868526446218656385918711947270982293585317975871079836338410908908245334347061732817775014167672193868424856460674703557425062140686426197556352045423694715050051178964546113001837236815875595675590101596111788652906541420738011493536324199533932952724522144383395650427847660543660133610838726284504049593258901801106499863306715399103821923334221961541300537263015421337210178493528689670081416310974997336074945628239786120509361532939919568632479808949205310654748090394005575722900667173854025268428180658757180575408680313179862703853377301027906654447806211281046605568821923172673173651679233258337935508817949765474948618828551728739563443652683668333571600797173839548521825309737032594523916870108786644449518803805770928901335188536656742247904079572046732530574057344442125284909020930798834453433071417825574724159327435318466131320076698918852401130312481114756912895639303349117676662293427383749760642913072747781424017908179412296428414396967485256455605915052950267664660758345614451967070465350414950909606070336018881734371654458145219949045120303539040334249324595425091967665827806959753446814050342969842714978405608312083690931920024106304360201002667173815765136697635820756344224187741168183603335604218186148896643310016235652766215461915467853221680657407922452073963444874076851015449799546559899039155827960846179247178509910646735017810066032281210638965287370941860081506179987099860119239997826135548248970137870641767783318606664054900121187459014233773494139895107933145071587197217205194418245981430721310182967230127064848892803157557625336202205784322446167567502866005321241624364541647179712233259771745827616591400412209493609572650600604191728133029981317448165025361323913568224244374513212043546190621643484172672061678547107551954020443105964065320838527477992260939369186421377887912832668974872316114694817271044190649171262483437745508690985123195592899120194355911723960174645955320436592699741199770192847043701050047738243368226799291029302732260426821854148953923671713039022246194932687094133087355028652197388876926565475083960211443905296907765950714306822406934495937232591604455449276591085084071257410119042067589442193284615414235964917247551225853621757998747301406556095890001425822196354177353094662877823765035797918278911749972477328387909241610704620270768264106617875511434035935318133947782707385715880713105167087215718348888812194006357280601775407155253737457473803233969658837912175681090701367971381133986114765944666655112167357183469826034775571596065522654965620737131218687484774053262437209392012585354111069949653865932513230716840909511150452165873960107208345280638759768418101243599140042512401235394280080184663433374104271413721799379782584237637235699543189587705914284831911151930031227488790448600650542795758286398787139416291691153727252979740298315576746474039254395370726686110271737866617088022536500861657951354248305540554508627561533433252876488968144045061840439461316144370152754027823052690124014774429769353560535026678026214436867587278259292212023948256619348695650541491400941530254772443532921728662782424975062858801918719959764869867583956069571070787785655828691186618588680078482909353483516895850300418739271470206749184988217029284815670166926296117678597641286806467797022429811099680618132957625034069779494685668789082708695071150699943223981619798098717244715847179531632168013946586628354787045914501135627363252740741314977835185597665418240974567886413382242475787255629173647200357632101747749841594399485450111130596811424955749372378117205163952379358581381980546684956762992775877318790237935747968265591314557824722806713517694062052980831975390751097174254278314875262812725278452546767001456427111675813830663199428096445330385200043229044046226932677381911815151705676736241817395295586731918785881379282032097413793930206039036163099643674766355130780385736246841457024741366357491508579897412125783685500700653369453165115375704521086553907276153133931464129625552997090401311218799990741082743963413137405063428386569874928041890603753818402641132934642342512406134675606465859337235904417473266522959806819055793304236657218383264318182077535987530202044199083680286039582893502780961353256718696211050198320341971102233298124622489586346762061443794955413060072260643773278769760615498494998524698542492880796458842645049101360876457523974561688584431831760198534272897890520143126516517103158965283416290976628373604968819695469151310205472580711527127905831780558047185827238391337002168400191762216465764497257373966319559467248073916578361669819102328026897969195656791719525540179159438428361877586071978643737364592096552276728800751719748900524392449623498814733344457567556609172022731843071056941682950966335703204081069635612047968608501015089118753653903372858306187870969636714995439630756307928848294860257179418869322343097968600880880730769292731568701012408863085706649279999756849353778909462053938800249003354202099852816154564091451580415763835744135891106457696915959234585991123340806380110935444840680170012552821090993550896445334527724630637914483380935850835780226121666504104241617671030834292758379476802631745923003921853538439067079508112731375467503653407319403781877614469516639679872282002436386060321560673216159577830457813046166640141570737989482172743415046361457176045714939797762674223527367622118032245106553079932896367009469941481773340296123276664948959797050834984843641847610934191298822897594680569885254217195380507907920471564181199575510261548013781869325599244738918027396544938827353991803191706131437781239516917587840997621431149071894357867788576640967999354505603434461300758075119083805346044266438990433934858092275722413506766624753007359593126139274203944448514251450645466070510142614699836972115826748224105288973367694691826533780153020016383704309764287186539271223841595335643816372193141863257132622938932593441367747272548729456057362173962912850084260620142150508662600505656046113116231577382097983689314398285442900683811908857584011008211128557781791491676468566220897884562534217604328687389444446567695100064500039303682343400074948859523601272062314415521046820950849969261729189318228880055798745295114473259045051797296306358680685161959493509596996190640729474013784347324918101274653714213262652043208436456101678446645453846849693202323461985772560455826459912047475119450171490921190585582919659978990895646964161736839033722745335870451205556827933728029004780792751342079607379512011678080709981120607217233254791310294794156822608458948779235808420928191285146813949249716835091027175442676641311113905508639166636392929974005656034416978589728598896282949981619306889961742567276710174455828740878366890006594159907447985842806048129629934791290993413084350598764554373203003668980613796861807333754895053127645269196896735455596519629788386674312820806757869514255540041564740990173516590323285610978018196232356141221001919052863399884637702275337584687033317289984032339409589681346432145707384550825125597116056907383251897891771545847993887402203419421714570568473520513244582137371837178725231675193388679892928460367520057177626577752823514522432558280001380731246990911338718226418128780068313521007147410578274806608008406865117034698234750415307818130273618522482677585075638270355965111451688105697736461084335573129694538208670856610671035536022364233769585219830705410488921509200805420068455442543895953694846304290107719204628501904840569950735648567795207515672784890334508262466474083897390757092541775460966471785528098792245097698393717665366790663432717388772172115257448843372532910351894991220302305511902529871606526722441213642547637309681702737397165613204600221781459240751187322348306876503174148614975566774468111641182211708350676941305568148195485711631767593507017508595842695269394519088411812776588791416576583785320891282215150189811516244596934001587949948254176133412599766041877234223735284424618310860547896909700468794592232443465457078622215334810211548974337371893646721816438132480460773997755594462089396659110870730172012699739931090335682510880143422147749746309179500744430949355198775307911141070272791035560911298995999826835703006234669562574390902759800955069777934833576945448207065922160560925790837716250698474860428567022134156061080690640124490742242358241776844133317307255275038429572818176263648281650605697970371725600097897396701512498682288223192895901422440911024813634612564477530545324621733425046637828051734456916161917821936580457437626950194809419066005045555756287412479219833624359193768788330642200952978218047987074248172396938983986823199132579401888742125116677188016248877577883798717923870445061101291072347255981799111613127918233469523515612234350794223671607116208103397964346669385889971361898021593504314940959532856983358552197810167742473437895575946319376431176210075091856615654581248802138023563490389759983902520388246189868864980849480088285745380205406893112097474474984442563318371373449666021502522582812120759767142014278717862517624717019939327980428731370815637449227625244861926870984345584221626967590970525153732708178868194297120120598278749782373684009325281334716299845287683449956133224420905526151813789393227874802839211080607070753414452153663272470078986458350591279877843611200950888858527021893475735746043180093895702332799827081392478770775830569255998263703225889796377622262811420001816393495621629744271630288914208243684389418292645539643200916436363248544786768126835921970153522616815991247114350684113496009039403173528045056960356036839095282492765876661126833259388699236550327726671867452656772544539264872285863677948297536493619208929060041238562522888669939914376503845791684228076914761386146475951085158207179066596862389689540566779113586356623015490122887996250300245402431275994230546605904263832434499619046625600311070378520660508059952753348992861118177739977423208168255091073744592152358978243932263804972012741079559654397086480319529642756171475553649007869446619335776037814148925047821035911185258957653709079912033907063774636085049880837267554032086463871232898568371528416341271321565877750055231215205821361615323930940697328254188783999080543792259790343327525177233872574233505184375448684498350076164193120579875085454161580888637177325183657309862693219538085166508385180370091843013856332712512371368110108123365244595573914120672846281885623450875471648314526546647569476813643868150577463728730191228459426926143438750978253046320026343845335689140939438253068166613214206985467666782125479261931178805582348223407197783853236352866512511265125038913903085339990513098229523321372413664452688880727207452058335395244344368444273991989727486125779536165382117034584887158074403101593076775711172077272180186875984686676998999482787349128554075972127801791562891754256447974067717928778384623670048787970872988322779255910748365111026831278479279418371558426652595490982091632960130742076163805139993899027100251926638738466967756120302904409272789204626391169067200032192725846883197943594094218408148082558582877956275796348593225910053271214641808174934660412448784599722476078073231651605834161203155413829021845513709869478029440932062175333016321624728079410212686481357535685287757895335452849008967386766128823659519162617991799171014741924627957357112432768527037870037595343443601386354809760105017146633367655696932836003345498931032080193285327869124086585409636498218658869581845062738375857047990765954874228584779582682044526122231104884296224041672913337402599615660950335752116186788649298135364167327194822380823725470596682289341077565412968964761071917561909786156909124163125113165866969282820224889097878873639942146718171005504196412791184036567786691383473770272557413996088448654349127556502659555681866257895923853315154987987530992431620890254899170525007344529694501477292566476083214384634318615098854013365586402287443662545125572083914127606490292843827108759472244741042176518406708721332580857051863675494318655764755720177938423439857336709222086146600230312690467456164229057818967456814146960727843238459240116114581461537477349728886858384059818465841520022448042860141449694498903109979205890064253080739195910460943557698188835445424271374958156608984518888724517893346928844514590593758574055618644259906022970024211736234186932962289375418878152656549079335748945792413398172000511531003522623693881958698294894938132971289408043652359644169009261294747598177996014713384982744948681271576310653739192838663035872757885246129619323894758769576665152978334394550839112404700723605520024298409788597613811140354695042078924173811710418946554368174921227237301226123076796298769972411536088728736209094801928390775632661719082858248924973623406061590190514446131250609328181284667086999436085111449330446478040067595792331433674819753999156288386692301583467215345529771912809283169793153160043061257443511608384602794195495252498241844830987190085095622319816392814485621793711640125662652449257366399812344759624200280965984203516741286447483494544087703910564355983418846593289920516029957902264848083990282593194458798704831175566777938194612235865011033756694533950131906600650740496592835054903920659423022902994124706143538292710775263330212352457031697208239803019914903150745084998819454263950074392869108015067825322517376859585922317069519552571530327532557921940391746113429226445121767753424611898881510818605504758408458325233373332967711083452047792644467267553417961243393927502860474291486892002945988509805483783286000263938068443458419961643570115865005236238209517578737634644015320763284462925448074549269628624085153558093326953538903031223000942801883220952016947483911694746044875743472778410821622685472905638968291896734570712224825256608895011216080335936975793578838251341556873601969082013946391905989146728515603631352229332600568763747133584399394602894005279847681747460442869801749369863490815267113950847900087166494577528371130110454982787027278380384424648702974524244745940788915798117789756650376348658602212278990982095810076560770007048035801790245538413892592540057577292187853499232204508224540403717559607626816238531118157047696307675346508442346126587434717668338491986949039630685673119282322959063495719034113936903924449070942955395447412409204857485436461695086017425218537526592946182029947721095435653498022177804831639140218247436093876656832603838903620130745421699303209350713576369153377987872328365428020392863939906004797162821526339625140020429934572485479440299346773072945057052721549862255762086580969746618185769173648351902992801570465549215698656258804626880469803576829532466408702570874494859602608753212584523970522873891480179503718533484155822579869834733947787887382007779956178606940482071816273307039913912599837404153983321163903381454643496586242177236500016479200871645089385100634771200165773204186478188105635958005002320356099098009369845589670533251860204295799261615362908259569806176480904272298893682237807236361946905297912878145015086140910431609147099280716282007086619164042161719104255798852345175094632117079822617143478417904941413071121334364489010062204175657226344310142094555917608647730831023011573092318513937186036081594077803542472560009507544492486137816159007306874053146301364372231471477623591463652125495605722995205463745169117187429254493807881528473070593312831029958660157243565601059643346091637853552886712418129027912029197705139508316220454020911443102431700996123903472208385595954548442520483769393514027270367386297208253574938841955203647944582300430928743895387704786179462652428707527899559022068143328454376993670814119968723677533554723270808116028101327898620989092795192002142955331551377632849001766359784592909988702681313954101470061578226470938431507067519721227824272474746605266869715983762881382841962728507668281568640244025668168140098325128054359759745733639267113204667318205644200748830411239584258249977638531278805360797244569635048048548194983314694263718042316535425197133438992688066403483561335993021680038235571105810114080354791602731952773576411388352505174219200883097775601094177890343526094190023346920792193311302147005741400449166818813112464782036044062839201250209454451199005049432213476520280915822859548765868378027527638841972041381344516656758300982852345743676544237007699055553661063772064986155460547554161829971964523756953492329342435601256377516751339097971887493045915990139056308926642816864052327046863174101181096330331198471685693935318925890906280481873027456084658867403328718520533548672014406537005996782384710892270648053411008637623332262842012410824820076577780457592618785124852748268508830933892538512531253704720863914393394402463520439808819320694651671480731083075823760461634828826562773105179363211769145456037479564264091775525375690637618190834610470663816247463032755190102883732648566662026002820372031365195373516660339889394580065341652810194724911671508034240289781808224448735309250068180851339535550766891413584405907280167727697983224995576811518576733459228861983877226075313965752600351120025726983986309156454647866074945999887879870618288469022554448627142191848514697730344952664273511435511859186592343724003175903595677705948571807348151445308042479186460157602381335495888070980963050597531706710689603753638691389811182389088623232978771402631194208472666035747303799494703193758397136287536537554441903830973916812966150900980790474996752101602523586512405365367470404112947538898603936268334767879101954345504492771650030275972988990084498183679086435958330310463441112074302948017866397222870519811691857161072025570349338171496673084890920973911277441018958947141372213087488051102547161407648741103605780945673571801267930164323021029606765512580901215794347394495700797653179966730352832502182368585329135028403702950107440258267864793617281100721642690722613700241131157727896393636805722314089973155297259177481899997249015235344982237640187912276479627531762854405703208880051494287973277619935415635540271145177177671330050721222588968393080556179411090794219399740793435159635064093265651229134538545885030483693704546026393421298464520069982874636192729270404277513632729524459183949870386141131112908532467506953120853160999166262909695239053007440430754451047958115384932679648305061509245821863817408464638451866716361158969320258912590044466632195867143372511012645901910049533808526020744759359616755385316316175957530355262129040636401887262909242029351533826706902821790792345195776342584934563019456062151627576983948952323967960861217737955424747197520405425413988921755049424524445667269464216229487543297058674997331417660745300826981951540768923259575193186696002514048059814304824692761329878317365651644489895734452088356054931852851235782664675452045302315787089854506173542318829969586232576681688712725567394079913780997164247583524007686957636603897072000378638617124539064993155727597917140723793196159575785129492043688688845088973602821008933904008668751797948759488748244551170271489717667911315366240140886591712126534353054812706799480111594434879697338258802596303685357087638113378904564705087416865470577461644432450937805331499530471760636508300241693723709965337219450254437122675680183532576954755031339916593597875948220706512222827661287747787072773626132830603576935738921666273790025810514959836941865187690523415445776609118241922069880182385227863595516657728775697270191815661624947048893854947340133345119968155470164387378429139025036871761445375054340575365748165161962064156036357103738219835462000225091033653105158592697941444147177370703254431399191737246053637230870157202946649205276752229803062103319579036514611539146811979202194453868582403570413483214000404429668842529336881587384247245324652815974613339902142518843007303070704291617707424584576285212918989127548608161826360670898402000497174614147658545348277810937841223007930915359990540932771641839853342056235601568164498738700425537311307785386601892582550287516893312604568284636429579947085731270137033360805660729427513335560602330074569385418994003964719137754075288991889793064368323163975531293159508400353996527373391418345539096274927103590546346679010204589872564782658711031989984176472073497702077535046641911069371354349049366057585706988282372604766028176633556442581778836421454769268600637020530723927669158391550993756480205427106141445077398351940762037590703380750753205210987917307890696355979270254429735337548442778472666655395453294152854290866274646237572112148427522994092674989997927703246063998634978656452685394523329300669008116902485306251799056493898312040839530590584513002329423250161393544215618934801567011142915407972817621483720872204606845848619940587549519824826107459954905807795290481124433088242874632645904707907068456649837851118078227552674191839514848677885778127309782335181884961149453922427867651538992323812855310056058510261847405361937785039660655408803446204436080651195750163316529037859041161008219399336610017621174112384130823960559170917848258504201392306490241868529954627004000064335033761478059618564284925446400104833344309986638143674859543199767374932364848169011002901275240034262320277612449901193307325422484413006834170026212364671596095559958701036259133212398947377590783949412409452813390606549746552779238091001518553514831261017881928859157073756173582531621575707677260544303942130367249801653726308529368172878310925417926450101947018933923834467447044603996576772045015465639226955271330592983989614188088517905361706578252739984026349073785269110234629642661085118144418152762733994045340995314384435045758421939409225694583969828990193324842740134045794695978973614084273353800326821281398371451589961025698145178829272276378646742046529947772974480425843208892393661663672947297607666307340025418927687044481164366350514718007531970879767245741840441540519444570381716426819963169483150660233098172539379303111823100832428994811070958114513295061530422547615125052406510022647024568862119732547102165903807892839498963704136663451961047867972505810671407027200841193271399108074911234309854482794620726021127336359122020024916316141483935770563727131135092508097339819378846239381962828373098167679703986005463812227048957152136338986854561240307091708806428147186964972902862382883430771090788803204836588826215761963119979175930954609546222447091811834935255505874303204096965331419056684696139273960038619943562871318709219824291709107114487511196778956525110409122099288397586048384955847139972406931826210020597365957655052060310265100176033285588718194052410708433914922337582686485346457090757839258421040305356725936624711240424767196706289183699651424465161535613688940804003437934122707166311260801697802141176781760553185638934845582159942474326373361413939388409868245276875692606683756015645873839811769072822046875687730628389390692721767510934461655759979690763111654785037409988530733225600380981642193436455594820110724922692376409093996955530010683724695469143346413809819178476706313217129120037124519298171453806581933886858563052197600985936431699263150861954550537812295353307228353178228574399822627427039565461843095435989551792806371773784472543248432388178201231941690250306122938730598042144608239777876783727572831603247113439802038012347208088009763333983045807009508094300098924674233644503687485977600968137460349577297819284557899587758246780148999287485941974162919822398440125596579696864515153590866775306174933491093076811817944482335320425815917309949614892798688711672599748083100818129392016622894377273405431145425121611761064889365431105949941221390293146287962017628651443657388510052405784148822293775855406371122765484512286477816882512962380407905612194871436963748781931488214781515273861434053641778473970470725406093523270258333469579926222493322434868399855467223058263050898014963413272740854739133399458272293072877958782353638552324319507846831929769346707754611636301019696231866316521357687652806937603595029931457783146173853168996423502283242898118515067186665414548226534084435410138759867555488387230494594520179224250041206500047545009013950140329441928023890258927389842770957282958865750309925961311674077873765300137612689127638411653470583324723353941115534537287839232765764544276383343188033454701333770180059974488935056372702432850495089652979374925951389909336940936127675679781588335184331665931818379313000617464302203289965227775639774398440377452380776159956380857692155024894343126273000371405935614566526242817266336984313121368320905526772485382821318681713016009803897160214835314695988233975675348009876062273731747749746680647697158862944315473536597796137408104809810769912496049927581910858695365896850660466742230725325409224527307790372677575743062379447770323382928377946409074808507364649604133615818360157787054330696421404890175590748001626170628766605432270218944446808983543598843876878428214812226356695604048492897052037068473030144451626095839906789678147653602770058475886215397801163423405164522691967963863079549944778944433362241974488438291719335540061955243309519278059823811063207891064962263187268109770159757427489286829133629826887113192202850877214997381617917254692192516679800287521309432032174268761674882751026905873055238252859968501182173666725940029401416423948123243008608045770062374325972618583449967993701755934122616213572764068323735895172926446495396271425895728609223267396210685910856049132782135224489593515639079245381222039024256564321601257854329229863415652385297385913828626950112189926909865444368653876843626960406886987107723483843170241399904087887345735997149990800778151510216484154724059407207640216820477944506427845798038701391201165476629085938893027708378819000547955842181776736062134742883284665756023513643373934718586938163380917439248018148016026418425629964644903337132768780217670667646041445936373988743334676715991987692100823048478369184387587513284587903180069378444895569127493838826348647882524829740386547342205525469964880417385921519812117227758421661145149394690820189985031183648365980495592404405474818669569363048601712370536868074936255715499494582643676369476527299951626133743541798125431509293005084254747396536689727544169925803072133385075284025403805556118591679847361790114146890427063377884541374203800850132776228924084777520972757188479920531343993459033453888347438461874673363378721294993039137544459849196613748423644713243798098290584961493396507248148048200959865013889552273462610945792890745516721135600324219908084633529028098960847377206798724352709992089839813914103019104498410689395598333032213692363146103037016361479387101486013142952247861527123317568070400264197963728648813982730016682517111315762377561761240107155137519813081295068523949349631408438320294634655915365563882848145387195738747115836471414047294998556124156527920261510612331207902009119562713428851403291976682375015967081083194812520061280771518812560303620323281374653901952495742155466346966693284502053833812669802358793084273172608947616039466331942409951997984007721660782175986590099550251688222072406627539971245883036499349308123443951902479399361522377914347542689849058087107632848723122464465400094348369140967492767502082220367673757096847885193423534915491371835956468909156493432980104636735651343271291786613479296905544566303355577717678026704667171394841781339002878453228758989730990900753577831269791093343439120742425839275943110534196154801924837986960877698102540915592929443309581283358341450586083478674773367712793756656055969381084727072221068750939081404758818893530562940953312844429341203419660259877213076406370946374598839305120643175472205818434255979036472245846803366504870388620007182393034120769074195518880288907296240244709079905608383825569801216983196947241342685517491520306783227864958953732056675656433700839783604972977096156557702128562709056378473854647592812599235790615891960841751950163442726440361872963222827078066305576162003149889756037712171170792039084641183516624475291810630051920931877412383340753536928213041705522210149770494310035697105851591811882331051839688831265050756215060832562779647275879793754160989690566355084214608138782036186238354364690021252107315623512107886874471368327803953821588442744683513525587084497624006440560813877559690739254497332724516868351728162463892164949779666239924987516439840001310697028266024567693632639991164659057300435319351515241915618881047210797134349103711939789315587178903245959286990871939337250991684361577026872854664594404516487883374071164521749989486649592163175397279905079638683316007498752484139552176381205310256438815064638686227571331810474663721432092094268660225151823787072698229448458234849884868347451998590774423063256353353638227525998516794529092813682684824556373019928217423425689937112891022116400000463172815490665924594200540326286658425956823029488146032806468359726589063727075491749944741742190929130489236354745615164107664530998009531435534019538451292578934227971760283344435436820349912602331490358536042774680277912218526197023247055190868979037520730092310232048115366858521466695091417424135254993205381875152786373421104084539947723251189411742727485431677892012570293768129660415261274678839712240668739842562900089732391850735364517207033911267363010616412718609042610236860762270570304955164582499731876996141258707110784915249477098014414487748124616451250962049704006518946154536058132591337920696618702783504121812867614380771827120233971856229476869489705962703522364905789060022583804151207607934995716225436038949013630715133898610400994518936308722507804923350810932176904077901675516448550154921215871039196209905337188609604790642033907390757334844569148234816471485160696250133586149238954175259223623548322348107691062648384644469169941878212407246876019313596170222993020173372750413433877304036299533216953700099775746935334800219588729423193830154764990062620335941042130591745301421399040696492326611975278779852575346803345745767371786345866560244070438864462965770260246487260331216202861544109620855465345071335318720006567505236649743523879013438536803151692176624756205217025969132742672714801917566665913655157090479180835619009997493475728598542493357875654342336914948010920763467415535436164885069233415905899061489717943644513783965428825626771803974080008996533913185478053342780526506686584650034735421115415194479892075720011895216925577745503501359862233291910482484111805294815293110573952557970056142562495787250141151387828474071631347880409875261585480474605994976863973009926635844943386308804983702552941821962603604063422126580361125124911385054942596273093734002148997486736118082899751132662143089839868720265785389641809554167708962602177997426182563247160159550618654996276114865687693999183627393614793839248879444471871661814781330805801203938794263904519071847595356227039121098001131901838976333002010163511775877158012984507345798770212294339117825672274514654027871111575397662805557514287247232231075824858274725028709447517409518146354844088045765012453882632018488309171506331070607198245205370795170761517615794228424882117448361428278135660259170344918412067284845508974192874215629101104441273220781333584235572086739280020076705832256842596666672253630052210821957816651894304262152475806988114340147834657442321070599731330414316504861981265798426098523527174188716701301213463342601375346542671299773013054351470606486625777893108051757241972520704691478897549090525748655330744628481096236893830404227305496282961900472373857401366192340683241941959675738934268912426217756913210196287129330880669066510910328877222491000031696117397603565523410391660323520570386568164994808299086621112549734106132283750048911258909109545539270740210176474475067780463724764885860559349751935557862316644482265471149642485197030319274370213529621581350426938025764006134963036350937070906842149302244046013180119820767859963007676997445470486186852224778365511258373275673414934376295540603730941079499102843030746221230545912474998315441714502654333132623221451829237674491739615184880305795744883481579136963559605090669785569529833834401303650587941495939735759979393089683587769588707091112564882303550534365111006705932173743330143458592020793438665216485934048265415119511206393437579670900407143881491204357289519489652304858813024526751558930777547614265249320933887239390006080302793935029875983416894269573268492713492352771920863644541191388459724290795145599338230253314878641030561468294395223533600847664256920912892638040843840718296593780734502674117250529114386544536553789559517667258831826240464338905234809216688373996617773788621811037730903126087596993350731936317295176358700717207110484333733452148234436794759852019658194589871369786558797395230159783275935566061556622713288761826678623543195215989392095335426258733939960730057468957337262334286298977082229125932542873127667983741050391004582951734753601292487271460258926706035546914199540528913128254739912311800837539077936598488213450374095750840294232103971882392920775539054175250391779565589234094359444426968860021053127067071953811966244790106495430327169861246449929092197450167108240485569961950018568393812248029359482981012434962978779687494741298647705628762883575420586187066636380153787269085702531371007936137397694064079871282760251154727453728031776707142939327953685373179267081823713481092869109770825840225557802369646546184030651735793719411591779270568825182775179760768013069258511941818732592365806305835367484440042220795604620748167517158148173770719768072425639720769736748257840710598335451368783093483435529985615909886404292184371037519313988885248215038120356331199829318746068104754604733581943310049262396950777043939584923107503502256684582098436625597595003621705614091057059004217590661652311529079515979818839131711261846190359943236981103822813257664617978712353201551169878284146717407160874603994972317372549646694343758062013842407612002470545327936768752948517144919704311221112242312375709357852478174641033772321772279547683045619457512559577930135744135146731284737358309147098252995000782918532244790842760974241320242531047774686298553577198187657693084337084599678572105332506039466799242015674829143904874764080941823565544002052857748964297500174746137402730918915448604685425846114862573046941905972850657561173013358369478562738278060871191089192539447947627025089367388362415869400223115542939713270204852269924289315503328340290061762262515291697765814416845522089257401392138001800779683031995371997526445228911544409660801182351381403621395728329310378578655045943404015544012266582470727058354730412247789804314641368373237894338875634999860181894437556274670323310256729834998310289681956149742923523437439562128117322576640108847492849203295539420322021308334793677936795069147375656951533969546170212591645870146891071941971617196256807529210591261586609846248853990589039512111057980007090613165453042441543851923928755693301766210883912576264463613146283741123804368533079419012078269186620523072011073318617777374654426051499608584424307263120459902919244444868687682777291132048774252526927967313529098027995071321562389181837026875639526500557968117290633705789180996855541266636529146393695286940374364276926935159286585658578769536862423114957000219621784595461035227652288270632546248034911665508504280928194547810464176426182657629614956062298847968983342029427294872592749686102582235203497698896870446486101591553161620523178309910383766481694822561362999953061814456294738816007729429861238098481187747085599237471079492756259475699605176331272097224249038781897736864077732755054933657516857713589024118119869427951967903381337406555484456835755266054903840412432842761079924024199000708662228702470494510197581206644646353081678447545179861337843300039043087688110228114003430718424877761171057380277324080776192080185044048787283105017975481752352424603933684869079695326841310651160031803238240206015703080475020470876801732025440917773121955238647537838789054206624611132540659921689481210940909552177513759899940389083942526517916797155729559255724871482112462707116089448607992270336616315602271578959534657768194494190861286450749599970499952347600449297334612378779154701608127126955607109034020648571691082159276675121553635431215721560721662499049401840348077782953718154912068140812171498786465040913838869740195383241314955388774607449825938753223747670185316666277447126487436177064727303014534585795171020441712489714493572224755277279694101111763100005685302089149965926949146854673095123632031452177428540593975732051706487505560280832932858956052849294222983162412656795620230158662655862404023862297567435319704861101320031848824621604157475598485314275586609489787499811314534503454660180858305020116194655667790573023228088188589053558763997212279906471717690699193375863837812030170169282768098290005562688974099932063692253670035761106755031764112246381394139793205364427310166550684335275683805633304422723835645082956878597484762175180613678904683720341726405667625823580757387313052686686422598329213689546892247600506528476074448325003038430792366919510133136308873590274943258428068898646156625346297403542159191341539465972427676147226830657765862121209881557006862357764903700229398250608741502862312021111094804257716364543178392885701008790264582026502906684863092129239034663541804589579482370597454963846936442066676910768081328391399855251787503269235826446991660522843211594355734154064096821654767312260954664109030627639289932643988604926763297491168481575165027289810842123476821087886358095752406630009471599658484731929245812781877463689232202556044546775252886547904490614134695745170644604296275207785502825709870645536489136706228611054179772091301140626189486319617101606891544688165627701884215677883150163194417739528309955113666073464218227249928742387955172966634200057974148112012983311681604711218520110175196385560516493010779098158668365866389345243756722077225849682446341345669862235740004983922319706633984822942101859671889067723379163466585851465124707123850334437490473547148881073145737316447359076521270187008164251613712580622939011215060661423877703359115397242884307914642953166711264248622990009134626304074147003640817226455566002117111074569768956962489400321093480184758104860939840892469058728481086356104504545713008110409758119434876236348662340403053115774111934097244255146740599036678235437693607251390664852171315061901958781098349367301543560959896303501409156666838039114459017269049708101929233646048262012007245133170192841469154168646736006737049958403374029776899553255312998593477316789781721025464928217817930319141806847307954781210275974000111969689220594892432575974586487455098354098851541013880734348024658892837165317781382502220669044612826610779326342744206808526398438079782537896389574476491729439463117818300174940205307274996260318801175810560938555685418616063326271902049614760390608521817988936640896881144419875084253160116077791155366691088769180550285170590394981104516540453468032150415889784573429590383958617923065274302906009911158627627343808313141551786362786204912132385731578907706532731008641414086965243876891795402413260756761777395955175459706858992615231752325666696071294654988102129720396040758184244879506546446292071659077840505255181380554825509491298451624991427206899447473993129604676989973859057249610706733953200284886809603071501407683872031917880634551030873584221625864680277778355319685679950878782675236287321554730106125256840736612641332896100436886679111655696476123423001162670708992185173813175023105390841421684331685840694140206620569086065984148160005826027953881472548847187297501672084939636189509118170969289903951420587780852686539497311347495649904792091366494554535387428857431149937739879376056519220189056173864390010971627994979907870332063372443677188570030515589897642845740333704933162219124026496996049634834788503500673439946231882040352837479421709051682088806300295034564541543918538050168617724930700841651971131736471114532960308977399759383812781246854899298259563754446421862775839213488680597728676722688650511873896351607276501708819195035901028259853685527696218704094577342206719851612484907749956749528588123584648245954839975854049366995670235252299367288788947687284724703337701826810805490953954918493775205941162907982132885151109246820758952461594492882544958015494020320816232669369614969661987268364961137828727905744906115199476825116256036330566478335345114367526486190264302418642774367412880556321895782190400743894422106173551300879008559527371111417756724396680627920538708927381146150933187481686538448722905877833559017614703556097473805762553553608680830477695379889636551607204706640689978295592119631219272229598085085915359593444190127680052464974387530307247214314153510986325868908153051225034639706270451656587914051311745990342346806763463632609831648635969724323972977240809321217687165622615376863642130020341304903158015119433481385421279009526811960571219735762181468917499868125808337796025742907963035961199735634469468912728164609934698345495630379106925757663657879264223796439780739258540019257793328093640422183243990208332229256670704178355378054795898837528858749009838051871705237281522718354901477968785282263940918975179453292004355340763269231231775867719697844625930820063382198466726781250856926733740979654951726573761478041120849954716419564572067086262970583069473339929471300940346390230736975958806495874267631662700919162255900310553651926882859016940207316738855572401356732242037426080881403300004529512876779554163855648126723581453096592286629136892458737633743857270940018296099879802665071215811312045188330431094873694094287224337922136394898893716044447340630010459189987351510594624857290385492642738963717930403514432366335993833980109811538174520879004465091696028338557717738887789685068836558206781141334124541861696420680381131604013451374570264624608847979286594830655713090661713176441306618870264669023705510486391244163549352995827773198090389750959836754140159179938446311600125467047098681284722258177492331771678694662731104527080304877531430347778766055526363290645546363225276951148163084762354700729735851124015597149461600696018643748633473274033986819335921685010920958935216534106543523134084193417452727471804743492719565136633489745774257600815747412704320359329406551586266741953762236541010333063321846801769499264561751853908772948062619754850829876869072200596886282269779279497738539364892185168012215066397897741331256153726914910791771152729184656073471472230858351780663055171774513165929504515278047410745299651551356958789457145079190389169189265882624418105722893507432677889656732288903750195307605551608227797325728268043949785291206878794262052473582560039238849604723073183547004791295997939683846304237868355082225743468877368260719052187541766318623855901249517888349612602336878768943108862789443131476392856246056265679735915883767766313978442238539940880516517805686859439409593952639560146961227762128485453339192876259585023178184587327151103361064606735548246313768624282238301749594179188908528930793921456732396684324857447641292141820039582058414314140326479080144182435717327191553185126116275228018349029932110410808476001525171757071628684900339920419721323294731419257205326251690401715261046684072929534561244414782400221613976397290281569582113209068879849771089667816870008618769179474973284045688753779196905237789853596072100820620677250698323319472145657236959139729638054768106371464943831400137677200187184633341631266676726048827372935941929708918445120102342453445320202402935666107783588583127315953839299378857560691375668738827185362889078578595234707286668722779810734922297543285243855617664562273721625488498607537541960995829122721178975457472457283668662421438553165736213149142358798808372483633053562147494718273512278794483840278617930128875895459329532082547436184045213952685762310949506826576567326082986940681239326364791079430957629475508617523981301960885020592772631621908243762860113792740948010656430539571824135319893251484177825352074096174747902957315260045007092102127058022135634337844142250920098936721341903877952969208976083132336442796961225726541092869204203166684957012345981525715833986103139377879560651470204640566073970842128051502085542722564300947943720667909939738751865804801368777046076146185457415976845016603481104758989887527927200205836426894734741736087399102370429089004091412986600257286163086679619259402424437797226631337765775986245284338856558450169650683148659057645635176447320131233162447170388706687265161842920933751761349819825075693734714436841851802333790553665129461961809175073711336782048083120182084064460002537871338502098804731154993955075553905327168808599015059753052473406740169475842294372529713911792954622677274166752183377246908738995488662455155821475350046043734372502878874607932957829662929029504643764832110474722971883459434468095449330785693412387536092894072206564644112669915433095686066421934493788194904693045612343670596251669969203088323764748738498568197356294117647177031034867735071906477562879647275348672158512405170783563558841237078632060525044848139827782625542126039624742314994791742914313157026361064193800995933240173552386721043812113115868552927052858914136231436477056715270403099958800255289541743820826501259058612622404605929432810238418187334305921184864731944165813906135459400519870619256704136955778103254489924290451914624316309619021912813883015964046261675230307745977583085121033091434433655406155950479849830685968824904388945422437367106641927499520171812145651307624570837001799240876347450231052390804713539233572480226820786616347509543953382767224033714986366744921258734364412982896099371363508888872049466010117809741886444743285554235419788744187267336687218359490873335212685914511136961468857726011410817164102539520382485812129590082459600870769554783436903124081018788230275668962991748509195990847724649359253292474076978487154710105828656607579363249248704835780492837747229678650253885362585526145051529406932037458722712237152741265432553313429415697236795633486676483984370851849180921236858775236827385328774113418751130062749732997858304226318521912940124813549827065375492571280387226330494978839509423558071840600755344303876047505316165201291620639574699929726103370828809143579359395655200716742917235422391141247201729829560849035238626459091194318156548966018832575494255524237391537922597004263967518136241746913566246071581098707774462617414136225598426367212993460624054999150180151725639001318504168821290755994312572891677495800110940554183976659320789195806053080829029163393392514194718124295010967460259400926019374140395606616449416067495080650998805071127443928814176760103760586232573153636548349453987778757095728739889484265386634985628772397118830611013089077544042511344004514414557073100859385342343335202279244886415870284204276532640889717478468544359038934646418840694996090344138393154723298431219208287737489148164047817888833186846853467255410355412190459722850674590215234251894559804539638829043382058356200771563087034219918255527490691480181842211928666122283454875583000188956890210698285353022395109009694642259409642879417172576561130111766172534146140747993973549256549951225732469496721794747487558085148961847695454912663895290628236815087776390494180023731161010855481445668248353947894167372819559679659464631023149530278520318027764204855321666005590856442798911230017847062843269823839341944550572701663230597350553874568590689341013563644342896043038548174118841145719723068982280896820117333494075431571420954548972302654517573219974955243993017493346926426674516294532600393214787106517866499016806369947783501065522716013508453492818984973122982109293058491641204186528637184305674075226985433356937194049084677000663701829797867013270508414859155396257160536070830937665850930855160058951550604327484197145802716957066727230100188554095227098643899492801308110601048997624590414202330668976130076940282961777521086031380856371993984192522977896772876064793032104244837078797100227691094563955019251166090224652718855304211960496851200626280879542125269271362414037832780486772200168858383682953526234875559074889169259903915248412279599736378024113922869749486722450921386292832212149510399674323672364821716434604261995704897893281254549415231395898913850403003078720345889823706270158632239057757928041919988412489758393138742137979550200135397177289800561858190526104280029200955858674413205592580966460445872589240644689911531542165919979350438916952456211130600178137574898329325276981743156395994447180095057800547871769768713634356647020483296150192695854335155536516133839079699836275802399382758995153596374607260312618244871067056308138103857775224751235184003903542919361814916656478685161478723957881672729844640592615967571078713641417490563703953167697731816900147362854985980816968419655378530527490806214330204182882232778407442333483575407995574875205230286795379150502258950488944197533132799786387479148716155104541911053322978822901884343553928268887546714487739478421196350129320660780834273291425885434843306364525050104689737684209369318084140757461449649521332428421876199791977698849207856976680348875462172783684349889019086326099779178756786392418225001966035227347409116088175644748228434397693243122089932119617852491396459929263193468721857933810861712760894775058256679393991385563889649433834312842257392881846105636395492644269352246274348818629197378269691133409597125586741496760189429471247653519029797557330279045061370287109576082519050393597566557283306936949982554673851833546552438391897650345735063667015068137228700480005550782688657065311228738611182482614287864891998987258454237388393309829898377969857753012443030787323692066181665128269799525284067576488527375104455452636111063755040711547888311185254773649396035663789962643397804003670904102177870883962243555178462389227469451507914990047915755042174539885169439443174139494567046505580334252401096045415926711320523203250611051146795602247822603763230312297178552096476173090418758567696818456469318724321688283012439324932692166621843123705342746381259662227862890885461021928359934210050112918616104996435744928138111464575618104304779742975781201002782107695533958495727226454973528595487057346023060181505016448207758040867581201953218430607449962978186072206232566654380818327927906446589072908291471088847382439567544958819806173260188867556920713515597220120290281119419119752588597968380730756003280343992646874426254000192478449260338152081446324923046400496559140150380727850571255862090178797528488921577933906353693188136465024556948792878429884408452646407064116263633485618255281324117803910861213151262504383034762742753888511937501624435754343279256798299688934364357008266567831053723965712874823139539076456285188821658650916341369953951794102491471104465111301750080349338572723256728142220726296382880013508446864517299089531318364717463088239160466784871194224791071427769854390105613473014483987606036457758137754722235831922563907725356345145885969123423346992935386209821471497276910881036647098886832818116402828813547507491792029020679037783821535994820973957277170028263230521055744400300517912657235023035717611616901765564407666977424154778192029391301927131271362159020755584505629962924563107027197185671135084457415615321055196029675457593716567363421405017223136420407313191230884508568637333208121141877261985938929766845342114154824225132400474220857748784064391104900539500166656209118128460469541718320435882728054464101569691395644635038837486897507490041650545293891193776096376652709434111151430225242584403551243132208280097025889068674044146732029658825926794477486898938183465666323424096492343127349448847104593612665896700721263008937498032065624708995598275417888892171531655551953494206618932202132878572002794098081255395984598715028609077860543850118605412889135487667247637559354157388228855468287737629414957793209201303298181163479641163684585705546995398322705502872623161442085432840342289067481015402088798420839737960123330653903030070482195027771995409938589881503477514492780331844956239176010967599283025411129040280883140678267743161217371052029410165905808895887660850679966562122371175149216139012520195329112625853830923868400500572882913706316835826715168451320759886303774618934628090375117494282446647646648788359317848920426520825181005622425642950253329269385808698529182447668236270799158617086296102989318797570253875156574687429314139025654060069439161914652546083978751107008942274831016180680449210468562635207004742050036200682501535174273041703487589597234979478486268628971679827030123525509017917270905663346832143111358013126570032871078523899982438563761554465133837239725417749919383054869095306925465606761555855232123446128659918531036030768901295158160005358265578233007208781439239985013497232440510823767318196026629194290619061780417689837387243766946557694011092734600544361588216600254492877250929978251165414309695234168189917897118528372675925944849675210884398826239536817135801342449862540172942241541645414813347524056208130959271820223064316424146360885481373010850091985194014007638529065251015553619751762938241522184276062489288817020639496070019339445513901729899386189086050911032506647815686668536535994327875232518964570455897805314364253692773160363553824186468194051022135390519416595875980058857061613072063741770455608173579504593137472616256673720963621638370083006505255470715053867131694787078260968566100191522794116270814065858118291124321958964361963984341935356261975828106277984715164325485481157147306019961401654122031873733030662969500998233087485637553394014338011240355893215203796369569515844690493648330298109532051645406275584448912081979248404686409383177356077523700239157400469977714724454210315614362057970391545387394926196764778610161698852472527181147487851993426516586726253785502544489660715090694684708975989134250690553397936743653144588572673239538116674944030755767860122314916724975996890890172620666641067625974791111252735418757187648732715709766466692598034685958653580248567435953847593105716233947558314884374684128511826360519186781508965638577022969193300035648449436683056440653578518891028102942738197139484952503771802970886888609231165602540022155266023215533510538325921188168308693619245720966629862548813252130203905786712627805032662349547390909412999186690078204307421434333386756451139378439117633256167318951322365843354536017245209060175170632508574434119756678392807514659552665184661865675028370593676095345676621807682060813660592666253306581196019022585454703995117398556304162422752008849736699103291978132128779530868091054297534144868086072461522723797712069281691701732216310768797582020290932869548749143354905320364306300380258656207369961092684485292553041441560300781221407718853859460528234963819516257514640435480185655999919208031930029166731920949916549808625578682521900145848315584240647988044810748009964605162087362210929259717337939123134813367705147043404357049471940402808829503475804707500055921592741875623021220369046974436362936123546535228879096297510194395945870374459902753624035647432745602827511761628472219388510648607334359464692251047092630038746213566947373052440344196277332505046903142905453675181413224748118873438969212878737152951398807698262835455267083742695187408498636173901022034670815416355180555994147728945358431593264692717270960358257618630526862872778205808577652863737963006920352501343238974996591810725996836669768710940168307646536908408782807634548013233677598587418769377624554440559174836642612531205073234048194127473999471945885640244021258828505538705452248242763407911423679524279171993622664202929458281711376327312615104999906873743709436689810787970447052635600438424749228017577154197547289496094422526398616811522745622784290940711383990140821248311089207325591198453822928076479590069939241217317065303236323164791493963255709817241863235201489369121100163815959384282600939176121770360662734076254182568603079389836619060387464047558465139091057553068938435586117819412841999026721667658464592177452752781985962223215597161823055662755254068933171857377365653243022043834557623635665536595072776750578202599681478970836054318703054222985337702787478051048284069459935654860577995082141279299178365696610574630363078711825818601919964510638249034065290124786666445329398693253551878703009729900246037505500984211840647878942838928139291613723653512946631333343569487020284438940764999261511216470035673582045262263574565581206009338881811637489326676043980647963293301679213859657045150124994872602084631161633494224460529077609246853148822891155691539460831522545480176959729191432153757102624580496737117627326847259790288297073473156394280663351204894894633407576333983591258608784662533006529584208526829596901031391716719397968857124293590591346196010502152345471031087795320433804454832102001660849616106253344013413846756684530763996348467027617422017447925448339302774687103713715910636652857836343882427146880090840366562178800796034520580642589310523637973315342906978279407297947371874128514153744070822589535553490197697013151882204030649894670365140905730563206651175738441445032595754275666492093904578548980129909524240977388150405345874614221632465130161521936167660455031857198510945182125523263085779650712916512184495048686121319277024424022084751803091914862036411817312367336008084656557725934105952664990465147891369835136381350669536281483094322717849770725740152303769468172706308196228806964499822597951829074613739058190086873362616685525199071276170997079165864927302579724532791107194212692606713283711272136082274273532607384724273837879166697119834384939944214303155667889936606641140374968186878481633981886430522462314989686774019932793211306926646574262353285284720885876473387577314059830526576897782668169945913048133283013294372028465690670360781535165745716779636409351252685331927199722604519790328192276189780477227432894504573094956249320363936943934654617768468880300285153328279217787828280480457484747137288858681497746855986076228659251819935576114300192308408709290591986447842649370025273658219555254949079262235964844358417304508134947019693506600709152956226414872000581677428584808246660102491508843803129977596043425796683237886542923071445177478445797438803782868538735336143646571749049089494559197864219834696699505523379078340085162828529958482735819680130941472527704305738056940735159519996005365090474689922248247806987639058974550655321536153820538239491266292665873527020996665865860701812838272896172972577707740776115452703702428443476809797346760056452001201710455010808167816634835897694294212884853420348965639395660119846747063877852179009129044990095321621608692087633594549734492730760870661525312857130781542411903291275546504093763170700374523831901705643125954859783369164367564439381340774347884551995682143031557547012198295406383443722529832656299147406157699604711814353997190095048988583542787964065523294579122146391348758295094063936369915826910697610456028871092568576720141777455045400545847303535541658544949644458753092986197972015349094959307360543274109943580881459038942129803476055726582558753255960417689858497102305641671320522050785424517724391681177865128388535188370025718318956520807084532883351947594046296182178798619090909479146914499956550149443243685736490797008468466468666513263203417991142393888942807210427262292197609608382320536513007410507767686205124922863954070035788073427003132358104727687190092977126414512809977719602785587219022355420807878535057837652796802356041092653938530668165529757521539295635519280536405377421003210381440115607779595168638433507098341686998468835016670686892025201676908540516070467546103215011409464504094410491813430929107126412408337284051845840872872909849623697047842623874425449236302981958384928535306294287280164807336501423356731576836432497351338090137836216012555307736652995755806653945257979299369296145144939124093416286459468559673065429247155415981944476283356911682289877575039378651715244828022644483098155758420026532030259627929857527036579116521465371761695486599339749074811362454567880080364735789187517574746754259573866536895211023208885448435984582671404492251161510898414861159628043608821957892242530372903773869344597697901750651303001076979929426472744298193458083210537309247214912806616409970178790300466580324322081126554715105367365909899256380163062837544748851317240106323885425067222766734904467594132490243134155399424886423603512594757635787529392729155685153189228074747727067966295356325636421452298145543779266811823560144641312759346653209228881068281167991284904404688020094319303388703482688785842888643666042781760710580696220276385092969510239339665354527537851707591420198593840524145451546505880684414353297266277455671762726466075888521980626049792274177831603841314813362654631531503819012124483574003393203078384134765014953588469822884276067399679926594799061500913779131334326101433853173138574967912960874110473580898383590322092136499240672959424739683371310474159668492724497118274940971842316559800135542352976140109111263045679907926989591793109874971982598518055969258396288529625345476506755145134446797086869642284062090341481487799978626656121414956708791115151898979893549811539123140916902619760329039371427308672482382441649323677418003628632726706822372572540299593327103645142839787225325836797544286977133335501042299152632308315549622405039548915256040641627652642989482238601165202412785352341729556846307173327436251492348501814146101333748569255189344578889527180232973834063423774766166015910666477419257740154505326007316939285357480643917322852969372095852056933133763494802319322488720557975511157549388849608376482505827757912635283685274306955989675459321912105123568886800194977481465787990073536365269311808880341928487051591747960295871462454423106544115678587468974574809026788468523173272208489463860339901182962292850592947234762213460309823319682074580904682424536065453898534295619149458035862733247728053592101312902941703799906378270607964912944605732810061149060905703017850609377421697895220664693892871984500935351301657427631584307969411338293023323820111866354747971994587796065962943929093395651784468581711111795950622794335993437688790139349393114187944138364910325560426837244067909281252476482816165779013880518387807244958408762707022759154261980831884954478195190281529623243659527220566533917039054771213165130802035394895964800834769252730180039657913381141970757086681330843096132508407666255453313630411983385291340189063577291282408828507315493363924310390213205535780964077420899682997023629440163608310274096081778929599086553616787969959756240545521161481062171932932220513616072074732318478226312767875843792073824957053507305926721220096896862685426103574831043281687594779347672058830149517782761826022737120373929193201678948109187063897859756644032222385412780425471913763270536569967648272654367221347415014509997220981635051932472840630546326963234916566748656842931953419244574688300321508761810760547551880949802927705472207966138078262122351482406232445721738007349024369430808141100415695739049735922716612888009104471449793993359082420500784521784926366427156369376862729359567925018694731035086566803015667119799488168239938689010162726433814150248167122363819850708044700659287758487670373988754837617608684944583294323464757567173998876670324210993428568974307937163071560726449783436436598711316463570153293867724077554146803505828639184761345944975023594182713409533423503714576238624093013083070846556623153588398756465778092481816881169333334106513852869547420257507014352806254914204172512288214709453063517388371824870646881400391258880786064657261527487853184674963678108814522584916343257919807073906052315816937485633271484154454003318254384615303698534621807890031988867315272860197097736470141134387107608735212700164827223948321551920468204151684978494475306113924079698075296963474397435984355209729692593788226235192943362601433020071583979675156156072819003174628311807232161327408869856871361030842634342853193305358226946195319098497322903661022793479563280774794837817689703510653320101189605654379419131446085487902595528231616923935107484926948211706937036078580743085635486501061075334682377057593870531031086181992558192027452500552656058417815564605314755636400936389616700628879962424119793759842212355400978048960523656977112436238466636221231506508831372315117712588681401591566091906428389527892745326013807136770524710218398393156463280630161804977181124893687620021614821257667668267466342765343702420630881353478831230760016751385172906145705365174074595475466303856513644919294238944070331399383581561672303907075214155217496020783525973524719738904545777445845917163312124918977399114813943841301958008385139196237245097579052919986165845552794505089328222241917541174680700736618703930239919966249361659420417829562245338725518635480643151534583411013286470687092290394548277065166922745691685792546151552224528445515397448555939001386167698476695914543955805499493129086481736970074242892571914911149246980042225916959251649465481041352859033208818273753538170678438329244254884663788307195777856779092683567985843476945263754382658397841348465361418900117838027078283901395319566405971638715409269030503883911662847427934664964282308853676659741955779104621132415924564133953888880704721466221638699917693741041542929957324919942582862384880446687629481285302472781335072906860760535913060291050736327903466946861658684410643428195861178806126638577393596659216415095153642658794425603682839516589554707056893514406147693684156453210593789343709184693088064640100097379440830941649065080442780480006416819638281557858509601929084890173941592212095155098456130023635946267005328694816767642253540265584927291142416338126387177866139255347250109541013892150273997403749298823179946715604549300411010136357229891108594426005097427134459758296708784058561642207356441766602439335109181117422577403805001912445758597783502562636859476516254667084403661690225549389450646431794932596404762253736213505989162823689011094539967380502778693846244417263476322071809926560333444339307198603027319091286485559891950937864067872851013984302981447714632231572576977230763444714792979703629456462296832674136656008558914849708103595998431797448031830062220401631490833976600289926447562929407783216878986329271350807616636000435305638692444497416599848187234934019611715755104772724774825027867154343677920099679376967356034389325459476651852448355724948188281936700572411043425765682834285531158179916165858119533447981451763747035351944856165222976373634290053884535947265640426511623859506226665442621678166378682357741260793349696901047793874323173657960375260789284042114403035204987600019309602809553297614422414801636127541194909502191652164835402567536401879143618049260340587969832930954639528229151041671930624411587828653734796459586844465974376926385012092837954542160121109901868787413301639999635923842930739925823636338870291796002953074627998835012619446131377200971557418585962518253142354904290879721400917688430160519276412504249437858652118327791603919704150448010409473671001430077920992917193409932325262314191788651035623409839550748432547481560223526606007970331084317862167768679192709326492383840208763982383029281169921439350818614279340239680514973140952317281493941231160537181002771984269535729622196706907055894632821683640514379576049437808414233357883255809145614472802377914489926932517509093779069490752307527923680402964612639548743330329760741285994007104891439967203351803847892823847070394634087354759299095834927719402955350611110509473826336262286543599371597269876681190768990117351326906422888742695931615683565157341097527127840778518486939180263445571289525240927210324343183773867896791696956839977406291114176157165364969910960949470741986256658472407952795706764322445189747234802633965767286712708286598911247913798536259480090302907127864443084284042053507457761300159582524638752820351142047378298681622178622887091559846079844559103103016169376544981516133322169836569068708063881218664563532763776862378300500581408870182048305036207258281580534027374523834456395604818042807384472707234962841352793968390458403582590441999163398408856484237850046387588579474710813740491656246507510772524725720355970495333569288377937080343299900368974447053048963720673645700480425709182210861613053518209856758583439827287944599129075427001745782086944615678012314865909415372011450837274826348351192029758769417698830774979685316724749171222529583161171144398474310162827329794162500409636278325237414662520529924497744426710639637660457327216254469535696173692941893210492458261096139814999133300099746133168639952383317124236359344093576835579067368469207042007581660133872577702709448012230390201206561311488967314978586871786389540956258031910569434072074083631843936382051838789219767598596998224640497754316243119592719746069591969596870958043432097046453467264487887659592675795707324205191210134846120617515157881903206897503048906483450457106732401841007714578890605804877397599340210838158647040257237069565323461185725620951358377750615706888809415289977485155205730987130595550000664298536235062315340937933064020824626640709763821319751202489187121796278612899272001432660531761611361970187220894357434529213002580089769250305941537094732216592558218044348447263445044487929912991126192046209067380998297316577983065461306806661827614549073314518130326509239414628380973447922258101883276695810034193552390284986218122096075828299735517302649405661953033010727723405241849461664026133591826619599249995512121912505192893292237316792194217867515243792947270442227965398557008680575564217029812646208340031624842149050813495754862681590992573138544213930532152475680992735606261508063481978532149652208615011393508135216846069075480606010489494713040673715286904341838353720816526514970623651135885439290959544169655432732921655534595059475014456326463128125659651383972911332326772093772423998046157154256814600823449652469067714332730497566189582541185582952716667115524759878802013330593132658622707308754552961001423625687614977267425589766097923078004008870791706218876110383938088639507181429165535314409124763631992008451623576338822223865738919208596798125754029584259969979067113440502848682553561153809125222101955475315586135703106943935360357980365144310502681329818735609999370352452337356593079068491185510137459276209192450610295377677821908906200926786327188351439504234989423991880547983225108298993562204639160482192502960024481974934225210104341069437258668927410744057045042584526814110579592218414088238676665530247743373935749640781455016730731015489237456835796916210029774673405102079851712998963890735587150386598223955682246700734493134856585553628349961686171551108970305760120507375917644081928996112053953835514387132023984653952303762250938082676520191867097509024275056350966539552828399948904516288595299076071160230154349731480910999862842848735174861748737576837437473311857318943000042200379799023841399907794317878830764768425435425392847334693030725716135875526656888114151732097021250895571388011677632235183304774499751042984341841310506769183338202097166396511248031149766014775383321694976934186645343575854137903684179036999170708146702277919383862595407184923494282542113553447273405504337757541033962814907836870418661318327915406887241379747706919356295847391828939280045241242811168992445329617816906110887227590100986498706181128734948378313210818841758277828969645886114026945391306547780246156632813685954599892828489089682887569683722683476003940061393928818752117515976194238609652016382298776080267671639756565535152976829181354366235990324093150978127714039743007372504030328759702189782919952240150835976722031658838104074327143653139932004031274465769547999062470243309504947650223182884316321384712276839847254289190880763472862035722750667556835739740545197517552995519862901830120444293647800392903699626224199527564795261912323917823422006797778066406388065053352185160170848689360496426716694087320027145564490349277521215216045688936533815009094375064382212354276419728927136602256601226911156916216253748223125641978971381926997265617077356387256584178768551569372967903339934452834467381891374742671985231626610074270721886979205847404852817711859635191238290309620712811995979221389822634599909742954927105812148941865927241062011462431177020716868194616469923215171938210104432683380135848250117468874847889772647546146908310341212960218904172571133637995969394953507230198375794858643214663536724442489845511295362268361202048314847638316207386746935718661422264113015120610298063467636610794978992503098413506677974266490472907019229753177037951267252666763275451888887637505189873358044566122715955518294679901677244581245303416193802258984991425007953823359605326191000304675333683680510614515799944915955763988940088772625793848642543328112495802263744924623858900647283248924633842121339664829252631703745533532111717246497524195647677043821891655296107876415291997523788497668071858825250591629484478818351445372617633302422725538466336351984231528509491742633352293204628414106780812474704076083533639343113005649375061291275323092299759436921148637559369797990680804699628121269149949494122048164823795658714219489396327940127556680761297475288362064065788655415665955364884275845086284501576738975722363530607378046403203544754582759082483564276654411079658504692929340784469731686508869353155282717647266731222592723148771541238002001792819941047509482919012328063537252324080899703043095564447959269695137861565999609507188558472979247862209264612786694444784081611214024950295644752570490609891509369915891813851068075872961397367577023424269329339063907437059403461489471584324895639003170861571492935883490939303022983737475878206191289776881196639507037349644128067026961964296673791170558069329227109374564667157560583978044242686729018778577553026329402789800150758522077561866389100907745186671580010168403056910373033757920144331225041330335118628808895465125155498224638172546116010660807228645639440311406876567131470325496927818424386312969859052529198918119867567074347070288394847816445780531835072738626936992563490788636483923447019028734021595638386370185789613563104059635778566336292682049189083693715118061646692440474457131020756861519942788931673560107744503402984591044772663482323660273960603998112991163939603577377820312474927949990252808247290178395858884303842532346261553878370894864890100243598266622758264625719437669313413825279484396761051502011855258691627441463295286329320030217699957752718652053757010176255350549935297970366427481586081563179469826922278431284424963045750036932536189349144500622265139202017803929392229139800220576389111132745308694756530129341021211601147828208980340757909725474559994179643920703244163323494120683986153066650077927545003653021140112806959561531321540468303910261307619177333240378312174870797327979533106615068801788910686955616509034770482909385276263798866181603012702296583249143375844716762863518030897659912511558289064266552056502167755639870984033305695196496059098461797940120760582465056137314084203788216529726646422222103558485532004444728499382786599863787895621854911721778190493354085101208726040535874704218177289073861943985252948113298559913045691274588551099951993017935591357539779300855740641190725938903463862523857750221407389241250668870585238483406894692980097707124137876784907220956946171626859090456045368296585920064303017389958999061710561382873769849515739547224120644264385052234718785208736993786874305495133727074529213793631635515342737117768882387640649177049373993520827888315611199674894220233064807324393653448293988031541196347334041778640829598720755142546784866984763205520474129865658211437629323041862074926168641893324357837552014279934378321359626871366563205749434340021993065161841608096530661596167284995245166605271980393684590589122740551397898353580032945951621698810463584202899765852217208927519343055250471491748841698516867444640145721305565425195640374449374296061627402719076089732119614508817010389739487357605273388963480178409545279015388499850363513955053375569135633221303446729584067113186777468297187741172399004242110352086149552625599242630607046133878086268626525629470708637248643864565975373308010842201042659511113703369629412065816465680211064584141378768735537512919908379002258840458947057853302208653604045467538733667249391193604274382627626893525229268231776892087216548103633442493831159775376161728800070930602382107637327936381287723045001077310058063802705217350518665613126715038588757673445193040038278389072733898050409272097878114853672698439194663901753837753379122607475056925446707385910193040843918268984512851113040284028409326607056579905506724695732692926624003562054925718870942544805476941294794160271160259978975296627213216754073730797282881865557437965880712830378497941889015833049134064324213295190819114967690894301864661580679641152894098534400812741839775634183293718818087316175909823618118976439249618142357027135984428720361969076913670529128261122417919480100235286907975130495241463065040441375407864994175856776059936802954453211437822819182405538238240295972733253229337690083196681682476213839391934549252862740638077479160481580355812990861174025791026932273980933669187814831043570958857891622647481616409930066140197821650590590979418924145932351144444176223381253206671188055222868195402198755332545698265101288179572150191711153789748311265256399020732605431029299817106421615952956739801801138901731765201752148748568364888121272841518530574877145208195171745075834559757515529472019629254635116791153836986129457912552394739796772596119544204512834172210610533157218462979913075982321599693875269958196128346584034691285046613503586862424194079888306343902825305368158051667714905961550752859210832232462824742733459089051011817614322187716819506442160984134615787116836221928393958743401050724494862007773920504075715893884470855197482896493388158316377240551023579303034047831124791134553216760905738269539216380549123690879781404014851059195079308278826104097052915580071937116409887852361479662644449590256960038294383326777117229386495565418341141288421339337223664547000928382149334685279144567220871605980531107339380420782678468742542174169712325840161658355552362993313090613543385452616417710324161243409162510106397846518179446842961653782863055753472017274226229183524009449746004571154087762069660389771022063011249238874329790150887775283660726105869783591574784294997227530381363525891774458686787461550203667100100471110263698869225383510506651248469120199365761562007426931204390604482901399045330147103014704072062781250987541098583643550613176312086298992594806700926795597580113044256794626591822483000239688711789320327919925409236624751273584729480102575888871281704337319939497102749275916404416719354696542546283979314585820528904671137582980677874892840299635179515059474575719122347380433902827008321789117876791875543513199479546184071804480772157609901407366024366575664040802463210981435683239596790928261373448038473896941878171036750641666625773612432684103892102586009004102733246893841693685452038260845825876304614143297665332862357966148296676289595893925576633987370081693287598180418144637600824264684213402277899234161594380048838902186033151662590060809820978727246161419274275253857108438554128783015745044984147964098044087391209561751699115577686010052017116759243555292538949902163399363086178283943460112538402460250735308090147564990531087612240379259438396386768345070525350412468661647398577363652545188087184540633945495674074809441422393128494214960591452296352612294177137723878828814292558753665128112496436353152877714749056886467299717022861904982077537862840998651095497593867093706686201167116719194304853082301318655084292188828774849327923744201490442111683680029126077170430698066464548781658969310086725533831380424383928035880585414304986266623921127780242712791678408144915182505832127302297420269456273145074058320350056384890829251936556338786085944240986914819144421985588408629373058321767831318893023420511393223361090733903221848451067767681209867848499769412779428718396404644337455465165421519114830429733656145407613456721377286811132199726196880793958267512924449733957104919204676025030861210639978619334608911473955978414936680659345954294940574146077506901438477052458894465570882575910471824533092355112243886759781807484424290407649261210476728897341541341683600284155058196767854292802089688679819437698270404180810160490083521175333225219843066300824364261741175771668550113931657834528052082225681003228388595942681097548726289488631796949542001173296209434588910980834994313640812692112088175797911292841902992330846303080782953289855759312872957905949113603497204496566028341501118627281018659070657765847955706286466652194110279248670429908277299179321535281437390943174797334019536527785200923355733272322153130868815614110770780883363499654126140557080064143723760914902492554395641859404511833735240283494934133241320645111883501877240152205511965418982864514345823766558944944036890580015047799910710423306097645802128407887136296504174249970220901124464590685272543897196118203493638221859031548015440679878123553829522291338630814077090025600508337529770932388506539988405621932992116882280048074369467787038275979988629125562007998396301031130911805137845366780038168124701491142614834003048696981350539338424039420119594169801414440201240391254990987925989347692098060569206151864823538428587151056812068434141766926470672144340504195327647295658348767058735556951939689835375546888697278637485395050953338012460809882860943261836225674783607205505881712812452566923156599728575121172884833439407124088778683624896674623090117379561227271377350254751477976313662283814387455357926750337162882218366446737454805636800373822800196420516623871109217917573241748027624299116049236068904738891572029505105169665656187423180532965102778918353412966545128439325887956368649231415114074155955253253179815644812217959486583286898473799653991717236765040298471418565269770877624988854432603737038066985086442504028009012451087886478638570828285871115408987360205484909431405330555605349882190759664142911056255729969327344659537342028985847080944778932396692129754422863974619198953428214216758281025290225812495440097477999651499185194259521676249000570635663646028244196759812189238778087102551124166082945705262521188226630069565426692510642930191616195114655975828103343833247783353977867851070278496291791907743942205873572656971183639778423700330734856178601005921823369542134166300912029061547568433020134381201624870688247439268537978182440432680238889146608815117934597135037943561063023555835960988398122915888506589338222340563617589757310194027057802928791562433278071093451754667038623408465132489884215653491729966880692877310357225282016226376729650451557846477520463966753840697253892346127097787726899634335067918966855865575461716648902793933230271009734227745737952236097703323389502386778901191452717078204701243185544110050435102101403864682861422225775132006146596943712854925529675784475963401769264326457937022516352747946457304778532931045101903511046535798254580182303100553976216934631838625658326776928033024620922042841959493217049156133779634473888944014861217259787352259174924220668513899483643679654125751144393323434967529449038206930779374659942034701661530290916648492909695703578124787319783147385001871847635280606722308223779344497803184132043603784806811918010867715989525754368131953616386314189686920625551914273369591639067098274926410333072958783979607242809582866207724584143501868060665152225418949417598746921901532331677482524620039875452005222262881997207026512879389353422571104027601188420054283028346408326303073423855441357815211515279880112863658533911206391349282296798711939682485238669881616029448874687067494511535319117128552493664398491757088456666332215644875746027437737106401353056070450270719550368735969682895127284027029299048281785133952815879416669405436022306931913754005645021865444976344988581233219779912351339087202083473341644985726593030820461346737534123698262732444773495352639259711699795518844098635826032526865317746631243254559742914593560998810391025997256165998875901406393607103926084996817033644808832464595438060399919106159861525577996731774975236352817684463502492762349577971959679108042035982823587089450488406985504217142705503987569407172305655707227238351444219119262249580832217158699899277071431992158850820937327815352469326819267918857616695530304576261491691468515628073805917008080608437080177697637441915745430242872848931544809361260343527723273115914147835535012814522732100341443722996387452686283043291479581022218425521990983016524244868011701596801637412756947215553079391321491714175314087029214838555414538005076303230573845878212519855602958762620809788539217035104777302737389127234052124771261825784673224734086366674615917007147687846273593926709777817921449264237237026590213427055930712933660459552014682516417164686603259769525233383309587882641827295948429441976024254112271555469391239821940365546079541685729203965589115229699701425867917585559643229571744103075613634105230497389845020730773830605551250445449717242223316149503211397263865203193551077919663340273029307072123028346888504531409344922035633013075459178415472071535451895484422428309360400125089250193650763875317700273337811834075582892569305261564291567951771483635455294602468848258254257478722468660097499542967745646331584838953678956164962782204041297517600249429355853852154363870804144364741094056685072332632887311248185624439672744176587313545892643255335055755912543700597888493653301644498506521969182625976686426777690137083504729369898335675498024818191328995345621589139659186949635661489035991884337752341873757848197968940134124492734058057973935530056885463447871236613249587943123821368063116415855048637267016961714005025296565193335693525490063999004711019721439312353668070562154534910959081810384234368251549265239342618026015792362356121047012025643319959099494022028060893410916100828398626953411418883857778604141562592809023280797453323917296233160855809816412257145369505064728149322761186325752678727367360245659700672149358421198772152530587833797703723605950650388253140330950473862929123591717850047351981182175061651227207072279760305939609097827234176440736849321655735106832283731076626998987133746516737468116459090198219498130802776934959803933290473283712033613402098469602674218952865323539903560925054659654024979963778009069198171998246304815204331405270740754792986189533209864636698570410657786346802863658436624056741151868288771402991549269317751962336665687548502409899223597814647494055428218161762946234248633282047798306223925466243315743530431469585078434377781674106211690071485273925828700704777624334035916359996981984833628840720968799500826906039018931306717367891884619336386235647176102347293550296525862770928797230488100113197471476401012280576375984958833595905842072587993823222019889933257022679156585128183957054172541607061696879035626681693370246533829893787190661713946124754760843134050218892698361216662996405360891775952316608981814866283351171066749356748355503709282483748080482137678139492505987466045483139710280667872406993882397878856543510211994609336037835663957737170525887135487348646773883232906043034116818413331121473061317278551982566715331293404209865605019097593549365792299452166635684921450507005364915596067230658252137115665807303307955684061703701322047686151382712561594872116564330923087664305952347047283980195929669647530759069598804035957741789651045109108035145450406190440984854195470299389072632895852703725908300344785112559548896427674943779692672449392927520151196542839256103275414535753652340734171263700980622547966050842876531232542610850835966037856484613688900761636427206790698520122997008796797386614946769327628981362447885031907307469390722027670826320334709328672635692966052791276665358241184273761187184539323406912509448503816481760810508929341343158164895277368091455192670483121163639544653322749300712939181320591260855383982873316047824160783792000896669007545720881848855785274220847795475959693275357543290126028495799442449064918298572917609383968934997900974850913870221329363807313834441394294232341492671456579210732898469619288804996048573222502203598960120057519358368175287701839935034205680275905590124661922629944748211750197268691252023242588397396381975751653709088012039678827007475520139747534861787075080048937057671495305487217999400957261440746132680204324809399731767673393200568557127462068774412677260695161782793000815645289717457534135509975479762209313609593092378059986063722403351184598380357775687102541932950551204131123424997545555468881873015259966304563108784405406656364906655049912261867123292064183168956542399561571114235363690239453986274634062149669843205200052983543248261555480323987842221998245011306579666989679447393201783481190188649355924690975005083203831672626938885570687160060760802156296476508545360570510629413913055338988724346770187989885501202976517126375818659861793873350884964281463197653819181096011621364878190193916686032969570941908705614764703369383090905627114331422252402465258430597595543155768809772944169399360466792652014735961924307567560972181666434854838371672400963260562104568384742254535184736852785119725961913734817295785695807266667677931891499404426546154729799389418189366660431892936328963402227732331043196489497459636233231300215661169439630658341106216870759936350931220211415699290055882383198526123979719277535659620932173743432148825159764187612129775955668517258609830330065803510755900033295815670437762343206650773672230200879413114329914133111285207262484276898293031308715077310331830310841756850134397396527262976976439618929452421297487113106329808099947399330768766634096439045253210085166145828694870748397755068696360698626152686473248114986554875517408215549327167178047707174919102774257167155310406388305400840770557885521574138679347393772614298160495994525065819270112296972441279021058571936670371118723090877718461026413165349826016068566944816777108912141631631017644295675634540337103729507086635373391920454303476839870759274511038763163421635066604686562595369599171818208638903283193671385399183237383333982445415854620524687429952064011677447803528827712351781521832797817396656374751399718432369582819474413548694315828807013715426925958657565416092684766952810892260118188844617857385082578534996020499952713555099795929439210787125289212393141541111894172309969973084979404697867777063306808890693407907776414560130621831333105217439421385784414915084405408361895203004379063817238396500390978425780824248105927707013425099842362722637759799787521604176480326908752841748775269008146286878904988839747632171238895531452796806644630659283108040895745963710631981857373302930169347861115757013579602530360564160252358096792016078122205417125854739799374624586689866923032807348197431621847818668440042074192184206674841276419063267765725072685455089163423528050027721131164326898067269443852495331415201756389126576026548067469728378552496735826731452596750453697541127060590712407385978676431222527369485158059493713288364818889016250153403713270702988814776112967871520458380040296036924776994223513779411014453663784932653793759983143452701631757102208897043383528065156510175178731533448400375282455952930822604625206824228895360022731975453848036118503497107484091239146516624486674219405232666721599820235130894201275307886507905865551638289444624249777765794322790158612229428647097114618515686295086907823404782516078121171973019149359649946559312326860368051607994025343966920305230731922715136594348418391631227185150590103777271242616804706743582319810707004263849342555971700024851082311964794629867234128131426424582963433745553966692101620981759953541324194762306587554955697189454721383593030146545622676859515430813944155856623244910820454834564303736784525181296179397200823788282225960865601843589714293260707219461742754205862900145350689653982832929192295556400475964601042292611164257292526841518976158757259581765266085126753061061985287454743050643496469639898642752716116405238029792071899844755516068416604707435411099706958098325639838708531627396655897816488905944075226745379114649516337599223247497615972275359678198130969515123499890845650068859170403950957489200488087202995800535606681720061946227757784693762827492068475671920923276313386247677556545138448095585468048794766205224541804643612755550559181764339018616202802107391518989941505843893642605665796303111935092755911777968564690682910886685788142929989407870494776699381473953011488308203279863758360076713477043299625009058601042174263342955725568431921029432769694632221779742981863157758743671778298755305907133021152407508842485200063617230832294840961619193789158954746633085233178821488236764023417112273630771982572151071238957975661281815299105551818508778727482727979020884850606805397311587889711189635395214248239181570635722565822457985026709356457615081051226337391794123068196651164203793092020957808784739589741654354854936671028816758138351476873569917532328400846918213636325130219585136497293598074699145700131589521692915388084288189530948745356193359780954753416612825949238040247104807375384230296193367772060716961953813883769765536903101437938170315086182680900973051325343370875474130279884298125556216442843530322812361923837699070470262438251707584491964547331353529762435051154542162260665604391351428517933362910948547646411239818237402677828555857582433566508281597432984738760994145074521782307918715818783011397387579380060941520673201973885637671474443654716194389113594623903873887280939574373945483044547401137034416393302264816012998116159443009347756106342192887364664221053945099289385454569434985267838423878410366246877041172031539603878914217207324644107531189257343784431279193916214213137699581105030387489046811110843841115419467275399765458787881895759682881191541648046740023796023686405953307578089104343760638191585532151056222142953948720552240638644228513597973328878089705915763056140871418482543433325594406879273643713516038153883308408940970427457974521623474929978248183493436821041892202264942072159996691058567634102591237217505851263009393889237604170486017038534222531978000620234158349561908660842633819726417870382787584670092443012500724127888379532312163928800226222017122453385496116929540831174840246699400070453961056470655973156228368339016534819968943438138557536232902955188098967685242617326443887118958747925976269904017240926588308367922906006383700737340334419555055293589452455557075747341246380159438044723967065938776428644125729327793441910095850275077762921982407969342662518098871032668084387858340082705218979821383356281904235583478901653564714906174043432904592577306789140232046514137002982712469584069241023709062743078569933296595609338164542783281304514303312911947534031306818584674806444019662671257419144177101317123399627691904983109859205204733565299283190612527124692246466118200631044272080415629674578485256153697074033654855564225543298417628268635990979520070159744550446633894608148926487892100042775960592225474662904801044794361247576007845772168742298637042594168460232764993849703771653418980981372963092595278757397532187139758868896737797689694062997464324302511824466831014177584112973151007697151177301937460825533845323023435797574976828130348146140052529773566867293431788712716618723661555867007854523325615885935359360435257383771292554094861322173340881737138017449372238901982431471465914652150333858190521646654038611168006682953026195208397075196558387614747990468452345681453810855616361203742235236554908124848246264968356504371283994839399591569487880171010115696866244663390743908123466310577337668066897809316403025997129579199871341321307573581135946109575762729770055836326820576540821561194335017872410006728055511158775616656522207139070807072755296409189023833272639600301964547829926107417662631251477053290396043720575843513668483903957831450055787233407635347140126900735914698831156984348691790140375756808275282396082859922479735695058322736611091901062427933499518242069120062609110886371700484931463171081659644668993169231258440361270065993543293574671423477892186253013118708666889079945708503182230975831452296394038820743417829527868294089851345517160857865267857005165813428861849263621097170864826427387788869888173661024040410083690662901254648399393635934077877338956805834895064994022858630894918162183992795282517765112626588534558664111815048472888846284250478089908449238002529079081983695673855463157015410305451535166886941266400918424638084245383248694866775471225445323504233227520163953197261403957716463601582136966259808991239284260319787643441893802936926699362567204936918835828705990452015038368432989837989820509815121181408716307431975881403472824241044598372203612910032850750771548609729682369071227286200542614101275591460294603359206613188037639418088410165337418765191050693745044841005782192025948355299437107177876454238979928619556850179113775759844894801248647432324246693994805792142946999738154026063860230784770258567920277314387951613850367916684347132966710943644904088450787941558910261739940037622228588833525766537100757106075586371241444073350776955502143936012561274829150410488641414559399212664392180729307863513478989918498063842748711177566284205036107942572198920112242995019180160164462453440928035548167629010109426113369718230421661559384100792382555492229020538462550996457248338601149746972511145586317427375150845012474586860958072831939028723072722853033925690669827076563637760535346265763667662107910449440964872132621428341495108603524598895819912537733879685023647649589296850812361072152190738147460828009204609275313834951240737773441834935120824325954347055540268770005188954125746547387230815658068693488729395598705601226818190294477414235241716327844857587758010349809208117572557370977879382846633315891882886719588061536183396922336425980884934820280355689242971460534577612301999181923346092841891760294875175081680558564921518441560431719832053955036180216559094989067911206240245102944887461294487486817946114660236000573756170849354988043267558832782041473264183484967073472472626641852160551425881500631102583102385359194544123517942894976345560767394475775166011954158596108578496002550113558320262197202327336977984017903879841773972412268342087959978373042721139781845085415986901372430242062841345533133078505380168633754038594678492007376752927192544521234611652637295946139553059115388492042199987510971670383131134472023432525043416684350514680138409631188630401758135799634515369643123013010073014627288818322113874179540546709687389247265064848323743640340710921940953027365205469178217689931273355491323704544531219662303940814078465520820541479583345159463305959893805840559374056416196625044077083808986730215104794565835467151467897163724050825810778010661571601295570999342132386190125137381380029422230038604737632941604684970085038065963727232168461125420249822853128021391401559499800582158419950496068215127143686109762389593356040501028072599925734189052506932708085596827362229352871698982707010238403569664298580122418277573109983373678559353302365715373670864962040551501188003774920553261743231151284573669677117275215312617677234303021258716073348675289658177497837112569020857723994194046636534138274946208730032868106969914809826426163669298761030167679164724548905844550291448257903315981811625675173517966755365482898432717027240172563479273784763441468176297373208390396023582604098255280586710721750982393278467618567361345290662625056494259156116474434841711605852176412635304339789020883490041606066421569165073121161649729097151970293428219158613280958375106286526246165659781044704781730045654999374170929571246972225065603379389925402490917110031817739883143680517541908798669418919317295551974971760448349606732863134527047504772422123198523683059877203655898613361919305536565264878536215626241054843338971570867374521171674828526632184367865114035564562299236892804552097396685881269409412788375303848540877740439381136984149241293715078867753202540969730061326469534364103399257010998524393566301272019260649408468320470660606558311296191178283461106561837252044923543210920112300370535833777891951624703101294625581322299321252062356679628336001104756350280374978213265284866831108560372811176875557701569295021791717888264092780531071734244302274835325367167441097671889724336914030855667927962758450009974937532362230293343062158907669419989149195031786391029311602914941677538623934188144243979489221780835029923679887305745103036433363670602937051599452096082866291340694798692545208518453944314470947123257597174662702015030591682613969834993506301287592548090391393401891966829952013695680679090703812956491707799467477541066516271867582668596673820696142466377644932366189985545103569453212820306832972601831127549741904080615888058004607369991308592338904267739731854407379186963483963157381214337738411012375183900276574084391255340949871065557422110668305987707719785008360031355284660863526172426690250997214264530810779065719051059349874976879427965923689763823877503603579511075578352994160898939043174741531023370976398326195326978575714715793467147216533846347536990043949608304988465605737208922681638831924608801912910968267507907171572753744739362629139842071007944918064308780870764249973904067418902963369542452102983618497322539115512437717250660248135275568461630247069193740185012443421042924307478652480800210827854704966492684737497964254408255207545775628615727563909531899144084733376445114699707018473580250552572215278578774045143188509631994103927011280959620279167784591820435706928425581216857324627339882696156200045590599266278004533066779354411707314537488807579750206798282847730420615285953386560976489927419534004644646262264356532308049950105347650905130520371172117885569650089124277591211054891603655212012627821830235225827351312614947850331923207090087694572731656104574675848643831930741523249267976269270453000288131125267553870407676265760496964034763966068857219582422066166984429522914434273241392410158586334852809673808288498257043940114001590237861718270904676860141601197005608328276188272022088935087754590523619774880479592837999269141375185633963980683906361689442791764141565252108105893015649840374254159614922120005173147541367670407107905333019002765035708449192558884372494808693997366884602216586743968631070733915333129730335089696407662356438402365396367800674909563496081658169369074528606547304993582310632246416463721171175716197157059607364010272650510973484701236584081628976090704477857035832632455210196084044555312589334976533028610437999191948548677359628114294723201643404446590830502248771013548742121120207501547775762169243840266990457904880327579920534480145771900160489032580989979435347456786471195027325905834379979343253364682666435374413074813785589354273279961311037649965304926475335823883700129815177971814790435201186684222785914749377795697398545657401886782781529736485333729211822082391478173218084488085475712735443647879659791000372240015510807277763674282560939370859462455693113888352377583558833838395300816368562468666340970669650561038112222416115324230925999680880160513502018423606025219558763106571309007807784447422570527058098371840520007440741626753793750408994373404473019353579249501551807697987380543364877502837432062988338162626462698204153891058722771169581577352921601456163104311494594179047324750136456049416872648220235890897722015439801836357693920854279183745243646624505732380568153622273530099559485393728099308544689931204149549855654229936258665929975638514896373953215233881397542501872502198126491370937182070445093304103465138841541960911015126482344338562793741655227237392187753032508742053191793468997667408790855575623008558748667648956830735872102814877601054898803118379321243544985843252413574104428488084246108691108117416464301865362789860433512212221165327837893876536713841768225091292411818512162194295427797135880835390474330926093428049106648567064985982525518167753813491193804426819015341768553767516538992099724271630754829531664171270465676138506448782754209048200936298520060070530509899758942371175135655606007283141586631353792279122092688295660690231269528967081749104671136935938319865091714767152964114409060962778919782709152281033580602551276387522200349777104797274228709009849970932539354205698010375478964572506605528068871223466855739817172226396850030051462231520970480781208522415247084527763744280015548015396367636954538604633308946308662032697001600523090894944315803715463859158874141825414998237828219652989885960449272398132646180302401848385890661088257746147883591234622676961266221994651942056513666069373134250844387557618244275168665142913098569086468046665273264721972324288495548117697256138371878452420941703261658255751411371630177884147932721371758275180389431458776659126263043128129422521244126229407430184809028804031382681260964737094635794558399582109276364443400486714885346684497432935442256730222139765604602801625119296018289640821585969382774618383108718338631900905948124115873765198788644922172965138463404030735529394987275394885340937417121630095166165817902233840854232288115755716471548848720757656748243722374647237810459189371208643667394017712999378344493740414169128128392865605264415534782224663066443373204435007453500394773665962861706108414184826136247853023859782722299606547180905058805978222769192848156637360313395441784695824771112735647540547738945677271864610376243339960419006838188681857388319268332135540304934037505637859302258785594828137206001124974882590849570711572307347122715304641983940202770796889657217447934972056767179432101660615752562856983811466423749918191126600421526612933083822967640037667765636651216418524700999773940585135142301396487283069902792732831681222752736214719004739689605919001572428649190661066928679625287397465959157725289053796185959994422558211624690654363697856543332602775774783703664251934401172200333409669827944176667706748472357444019367032028292698987859812199105740483088760888309688493784736106838995014412315149412814807998128047089611154286210672595710623720306439936226250539464591687781247296544640337647030121005125092182304711963616818691111997923951196334979297676534042223413730621193564619565010178690361682322117918092490553493477682172116163514987954101528764881003998685514161473909398522809515477871164422529977313052300719040944354303287250125338798538219871406751239110347875671791098247115969428756470408433928680672354632487506422804216495447579793167066309128551086893662744404027436379285535726383002588818299065742080305525107114066738923131049895943453194033635171410807595896310320993896203373013861986123530442087860177991282281588788357550195427635807155556931666003072779325633662948445160748154727102370535342877499176078762668613783781673266196387848622985245420537900853170917771662836880659274234443669109784366695995016741372025295426240313615934272528730019975410989156984461333732208443936881722978726606753565693893843066920819250889036378338830855490892657266826823371538591142306839114180597756041445310362602345539869279125203076611595576669141391886360439058828497001043934611519482554565398695817323951958244041655389184265924367558387188511583698316546861667026504573830527927365041048026369028810901834562924189841600433604524857159329484126457748944157461813465263902548302605032461475741741506505842905618711501532616107329104013768912565591631005713137517272361181937389586862081689883144058656291888926195734398089408606054252088268763434397726226903341183496547967697957448203501383771162443459855299579727797959237409701097919284464824613508588013369125051182823429306398096108035844360776092392062051462308764050348532838495515472463054018802065128436012649095750194535531473668848100808994165698265268569446069850314624761271813794559925751193194397262896380852840153532895928043906782739292659358353744064251249452809225382190912950482431254158301723997498483643971856313480336997481908279930976469870177006793133169368161426717621794165212287294378365371470465898999425887815189156966710778888934337828563857030686442044061752503733516790467592892434618682078439616285912767291109366131264218298729818321558595784580152764993138460062820992592003909126413838607159143845075360059609381976593718087958700447356828528734059427791354438682425491791841120680312153829636965425326337221256748697492234926720867815208499251791945759818891280369329474386694327240075425751600289929773251590336052416888441414114091253813677434726406243319808377412345321070842493823665736594355305336186494176115340138085439523546871378046958321407724556659835369501489805674162546803159071384329131175859451146476610089371656131702539962312745937895323778012354698779260606449010523768365444286502290630967848812647165316238541442617413392006179520613542027501117283724076821689817328946287525703877239737783887864044924577812426529696599743864878099960593527112354585444552229143902167551147509075339760641746739522438317139046728766541435039561312498788258865981770437926109635712890781652873402442054455505331710918336853158909081750533956989883290796498329097866086356660160274087585990184176824887464620633551564394476609060374489749701807570703751888960301971447569757211724899159927983641327388687605121940017420047468515315313822114685932404107369856354709703245126955312326289606703237182341574357022973707417792130484433244759786966441873390827116973986959723894661371056469434276279050709004847050616360363659343873228556053481312920752174696674908897853837496262876106712173101262265848432936497174380682210985986639441130822800598015903390401101025521604547566000568267316342313132890597490392757388741175694467514916435657474107741709371855620429374647594801892824100157879893688264653922878742555819772056917248613506619546032976107885221687794681995112056977484048871796182036495296837230838770305179626289654274645877445229211560169533008917762264550333214723009798731966441676970327149043638019616854270048994344599117170214345309227915444302751134919148016008209429301045905204805416461972315787198265329093785626914242924193330091613353488781241407563862685806174338170244958729209044833724059225535151390200128180742094684156198897878097169849412233725561582276869567242151934206404159398669215742838780524494596468049968655878058898706268008822312418612379791764076902452491402605107333627013584186151510773180795113393493999403068140640774093382468027517439930463721372546528122095484715377371798453689213809847683843331613452692397935819640482245431200628026795852414680317378817532950727097610594262615484832139949615892540800130949963642975539982412749245311410456542734420658305296115936034878728248191005254815830296692107309994457235607211614497810972788038987968844364272902516541347230498117519857853554999861897105942692201134763343051554083966701775296009663788377604641166692931953207340268798881993865838997402933802151646651008257812247543945974929192111946181049976448544065852016758912471457129219276323668564241574211605416404920489243130476304713800758830827943993780583117146344933430788899173406850826926562096004787982551103768610428447082963663627928921048874227910197674359945730082753202300093048930685514760646699522215318732187769079673017635589808939252194790643396058492518089168152401510569963531984168644620792258625600001036479437318741987515744161823368784594237449340760316418363689982329407873302370184730703149972641619897768012651348728142449338114815803963381812267926680023723570247220528127143826378493568624868456126308488474633108608780454636197152250658814076488052748208476217093548625885394120365678767180387648672042264928623053605007435426720488734437217936001637863374949339894968199415808912511997760933839270308053721441266348856708778046822555904946349846820920049293804426515661820551031069227835161905548681174208549960985472816939158649543067998102768314453017481424744107439069046323972752609755553802325429139306731355204727537251333663575988965764225936234152504944132580998831069755864037846294633530378942949411648938409663101299623252058160076038942636571238812426048152204671402196468288804911109692192412979788395721134662703026096598029844170050311959462153403268609707025421697778186910571484355568409074217691572637787873231281974006583297023181897951490468239980937424881214448146163635544062641903127300859280431100553689610664367854708698097294511227330931070220849784430367313154570182240887404155605664127261849784343471348720509393424131567733739876039913278326411294009051676900681964639280524632048316652811751188584144494913687185124945136129634399237415485465279203532347130629824100366100522918738060069361195908971978702947283369431243012590685353608826814959694808752414086955682060978272506836708732868666005863134672443119180302669990495886449517615921676088184736536985656624704986547143800050225825224720414419612311253536086757198419262531138731951196214251611181862093105836397278805213356817014837368245755603367119148502680611935802138328525376880568820287558540439205163123041197794945354221015697888656620932270360476929563210956398018629122618471967169728913271237526468862744364080578272196645348357834049941331120103888427725770072006677583904973989535813589629815792949627251101381850086110957583207747850913503738765859295008090232941137213726858147104946605390452466504289209892648450046388021934926610622458377272218223471811361448686738899704992838994735682110864768868663706739110380012463827056552171242411697524416916469523575670908675088042815480237753765986573217291025777873049604893098993552612930821340218642246589746503042101095195844807092430867787348912955312529545596172491255156805364499631568360382723981111016053810597685953826301224286128612371709541507380200323293156920221320092334159604498275823591387257247210304781047670279246180519805726026685691833996796593652333378436488232181242307921801271898752558858020434661140631305142014870909097773355449875725987552048204438610032686208852484781320426942343347584478753705825925784366344449543190846450985754221697827034140582641540854359421566370436920148711910235397543122550883934469288359506330711184236663692260982088862713659434663267915770984646277188425424328651141779417755229507355441738541526809250178016216325216494330641638681141676327308428268476898034634934685409016747065755427138485688151934935742209288045797426259131517179207032753292301602188800322821858316980357305408976885099713015945384068185042798354707106356427678877840766419588822954297588460243622646743946242888550647564967385543215179819955688163897625954636064359760334061525988764385161265640780746340689326954172743314475471724713345555144649236695769362409465501645167191740816461115862445147212028695832691174208856416064215195782035229352561756484018574665588351624409689026653441915610743587907361137463615807517716153607012958749245931662901961330596408270605208967327468608212992897618452219101422596102075444814596198092419862372359899088024374450898692574810365131037838475947716870193282598850328770141882298060276987235169260710916334561465679010197994165913736281993441676386419098858458453608063306193143570461011472531403074605246882552151560185224752720192473747467782511471833642089267819281861604510753818431697028557062504459210942723723645129114355062053508000253691203183279877935326591375294331936137816460396137460020469547796040956228574635540397488077754566826844384088086321121006261463281311156730924976245743056525897242762266093644319067930107365830736675442632180418595690566586264952978547702857108686024255690718195390421979101540271705392072606721419479500498601106693430403193533515302187113229414468014905967296470753186070257206869502875688565340420507523864637842830705649996786786362274950002717249940590256366784200459256135069537560353581272047169011742488046958467229836665020149130391308128962314945568501719982568716486309961769680321336640170126510491267140014479838754597772861641124947714683063499304576467245761675156487708139820175351865834221686227294372135575274153924008867648917786210197444537763831158348934018138644879451131537588835877482391726679552135418981300363406679073684774388287611132318352334836905463547410572420480482574470186925288860164699359939403124114458705158536550990902507507051834862505079033848440577368854575560790475679492146693022456963306812370160579371068027504525683837940960479213227520991785428859517548193872095634773855980941156984232748469773905320229543469992958750983968318264122962405710884237174948357737005886335756526215605576613041447567876589650579897254684306991426386052128870291097486921970155229238681510161262418379272300410830829345342155640249762001008424048635353241358596936854257043682847706290345740298008281606895699798103205924602723585820824185797071714745679978663106120088698416481557774580847024274317961330997685751130552987584704533217387017274999894035406264949773961023506576562406160195262288899899113514175829589751391808736340442437696028647787852104721199823539970191288400464266647310648481566619604930602979389340089734074257037199593690082954209973418040464442267687669262912275977639828495079113408215751662175344717953387829405874970625641893752422682123833427910129666260720933006102200905386155285163359501585942510845406062133121918830766251935140090428446483549128500425471206141411500350975807790987583920289583750856783009533573378430004535708379962020405556229085550882516701372845010335346362818297331401589623600877642778922473729341407564981718726225964854938007010664518310603819218190912162024433333388988903387799996405040102961122714255786388536285693876047832682243860372856975745676464433623215555175191810723477726041071195334386243033540645683086720604583156911685940454695106984261010249884169523731826289191114507232129146986765956677889822430935618189139205853221108559082673302014729738795470484662034485522276461511491221549330397123768730264339627734942536781920968304443279694923761489597939566550335204378173871227371867325479141272714602860992203823721505929006401178909526702920488665156476545303313652104026512478879932880470628739898923269298852505356522167124319815631777170078787582250320094684795890369552183711541552243463826806800814018332698028218605171641832505449549424020420952223903727031763339377391130011768467786219094820002832327027509779212944840216466400896063107540023987531376402893100152998103559158004589183757184621771426783928576929269281691712902369865401480715564050023709903276145067188651730730790898812502660622344482892400121709040728364806407958348290665626198393412277024707865463998514995713446481694813256635733674889175597533669508034696517686483432514153668636992647951769944683295861554195290766897708365238575281513128356756935504622995553291804601722887184993477547050948878809854570118464558091140524290344977932041697540871238664460003597409916148247428213940850908646131544685515923358906743400921890365956769966133664174844989129464491578750528913457037574146872770174975047427713388137621540010615725245783253443048965302105820315865527897635392469697769477553094113520609042923687788455874473367400970203534121814004115580751142912088808978936751535264504297235612410170426406696977653217835241251722284721095242076833907563956247053735932213042627680988893346514117863623533716559436071625249447262241676567148903606160767080409667172868701592967719473194798370941331848267630881078243048076152055600047325799785021946105515676571121022159574496325123604853815562715137858305550357591865449090879580361168606706412053740439208618426463626100456555577210297582522138628816042234879786509844030848752947703114460680326260412007109352659771610818386441229995511899789265266017818991522360991185985021364214221354267739426230071169105720773889472375837340242332203410354591632827721383675741506442269417703457242427762322920871999634049633847949797554171387303218629127182142917282996245288958050634518491314800755006805997936401104386478072605201925580885401472301223984035988416887542857007082169936288909602654997679630552841150885113578197570678119529451044749292185457743164278925366946238772513911485287134955954860043463108538462774364098299649243171016523198930365139025761845499159973165568030786248233810620520237348830365842652345015158722140543783376173516170937371818568537770437870382073396282492151768406610300735193910204229020075003868636814996713584642245475160333070849890722657197513074330376999619803156256743133226988766991299798156856038329903769816917010244988885665677157726667789901877154604722076483372881307381921691888459106723072632786775611192899594295801219145296977843448695095731184801280638968701935716930263875978738238334420321491881395702423911270495157422685681298241333983656526848559996120493782072932687227675240344799914501368006267520730696014314139220357601991895026155457935511104418830560481453665947406063554632606245192396526744133191697102476184304787144824104762281919545136010647382095624855534845228536848293285582039865047557165156388340898694815595624281162519019408570165044767865399315962104219208255120425207450980189464051326132451973736090407087549767282751835742126970546951359326645701986661720747999918753935210606908146780141303514605630949513068404644711704894904839550043116146847357671911565985610001173551138888423971891867196239728153340153484637608962678928229084546356082085091811214372006503321467549383703882917822226662837650068683644584842734238509000063368789982653773436585094259978173466295415384611781476057848920451440658786178834893912068589245020770112858826976523100801639056535529523506137400543866531623428188374946757802657375156199287042622534373283748546854809085590916021758688441795712649485863461286252518996953963430126170475163797415847932783656107647000198134840982896927308648819883589446999592347721192902558583399344561584966191829037974415614491753034892846280601335837099178319151001340716338500335107838496709483111449895326210074417808046827048332447552977183857150001281233274488075941279664631945325740441550084199921762150837792414729550070461135733983662152286837224935307144246831462435382119421755290648261128300215984151114111783542864880999282151830242515595586013338243874174382641669867671485807394041311556901019275998545393831971680470949460120858887706232364230610223364804030662816928633861026629737555041176332682047363622734794904035555547854791632114714461360628516061104413126798341324611923198839306046114676327778074369550275682953841958804381414696452574293237979243855923690254712575786046782804794368447838909106977032266585523181637495348308482804666431135180820809155547070819902548511367612985005282401865371277679028735929007427636807403713411869898525987330744983820317918351085192099312341516389419579323208782361714170889470722747962134662548322029870209349682986808609861779419109379898054862206290909795937532491400734649714509160769391159331428335592018462915226715283847807383984020992194670978508471821712398017195410499585698792555646020999071142561144133481483358979898118354060402717622287638326937458167558991434154717020713034786704408266401204777259925540895543929573542884686987690988091614967446745637481636709172728368351215997272510926565898554310466827011796832118479708187521667243452228739021687915361488522782062423042930977413428497961700482211941071191577925630277599342601390355867937342280010329424869344616679221003743854963372102728638405817439471760169316257723898655747206256774146079029847215112018063517673998371111765955710754030265265762185456925257170392001829966191524062333598927723260037552687206146851185596967908908592973138650213436547478645703026991931980386538482379549458475474883183070931692093573320638410383058861989242933244655444414455245238196257916188169744396111855269046931564750093352029621698443163541112925170504555939323074381541835253706773150407959526799489171499843164308451541300285626385418803559518809232224093007067719686376716282545366654005396468274457858145494684987018606482343398404502465927335103429483112960315343724392945535749606339798747462907044444398159567485156779658365717116057323649474354192469622251678214906004934008123396113923316484553887484974867635208666283069901904810179890478618525339974701389153116331905433644770016688126913368437595899912668675412271931072202732286704226126670707913411514780899572567353804078623313331952694578595062960259732565898381640455242825171660731485269860649703544684226135263468345245339621384506250216671360806189830594604888725495795572941208711401239938311654387260782755092877309014544996663252315581136458298470545722095731446591259867539569084071473392842663413078854160339742827274043101827499244570466237563913701164661966621017271097741364443043917494085114040451535479342745470529141894534883693652603949538179029054382711920482609338803720750641785025037892167131061187622993590540838865150382032404378411609222893291989158451496469533576105310049371566821306580020105016860077550796495865170528211312704750522890742492199396695981620230243029289906920793988930687108856743597139770280153298800172133270281646567246613840517616181313398930173653496086735397383592856044411726739110240350328286859268560150773945698686295329397090885468454965956443551989234269171889616298707634264834536892519410827907272003868072252484554762163992106093421653527755793854817964064391701593465560774162907384091410561193966390771012727339426930171057486510988772780448303709568004133150061929556051441276868111385372649296528018764027541870505607543373199433539223558095430894129773703355191735617777157896822185486294257419325168674737665254892503354791920143141938398972423546001600682422685087339028746090360736129426316678510386972144187353087198918469685350283192504936590771246481866881454807369372322327277811282520866763460080781927351688438185166672644382164543007892022101080231015921290751173625733417497363694463041800526763835596621188375217848098691345769644321834673711732080288437281645897000724738589591287830366982148610410984932087455980318842128883240773216578477779060619043595887994436523797785612480568002337006647441168536003604475475286921282695606554639021929928998617357348911635353117803513922449850930577991741205810719369339831220305438644378405437355347512686096188368884921323618705524804682843520417368281713492885037451999931972627787051670814032985753995606814443707011230208376899612562816971588148017671038930744056041630433707739649265708246919152778331773310506796205743693524760128166931514900067943273409441261783740555474603850328381528288862243092194473526152879665442344229742256703978300420881092857346301521252973296585973250406963692149534454652390593303061610943795049732450808293875602537506739356714791419623078723047152375920831680387347922820836907154453504867086422043861860143670577829981321991240582409420703741193760856910560133348717262745569826104737704402864106720474674828028812620420954913261892523674966924837670799302143485536513464802460129683336727939189437643319409761008981060142758648418132908661093501891404714962755151892144258931061204887392491625824565731958663831322271778619641686659993273588454145817027950188017362150860837578360088409045273380091174991707567697869848773728706848834417267093456595633077767743014637146863060116516336582802265809830109143672248454622444533106283049212066337145243094522420818103287996170174163678267969035998643379586008367388154107323411261925282384284054745049161507325176599114114914274089634738040674502808017424651155056107429646631343910262502452642998101377142619357961916850865352851429348517469673084758677946790719272037655823704821739329679699562549753416985435147317780373454455565919316794505815342516293649691993518487260083573457025898334014592160037632288814729666809553784150690676295111063848249969571280405939407318349037312115815656994554287390278270498605616645921900131159219038968225596878198476162117100702121595014194773208758007569201030604320200258884475998550813976577952879414357398584305070898730601145413373672459988586015580025025494410297508008146549230363513440014251059360502610532777167692883202864618664414607410071261020685713356364259770233284208965745618633541622765696431184450475922609246049910963942803569241369883854111463698011808065696925883289384136267325344081106626485189673064624952828664179131539907432303386150342577638032674162244959516809668141884699056386174990667011399744727235736463688922570725675613882807707187899238662148696333975879932964330784424965221446046633902622577606402280676673459569229622608415876998628700745575403125394171746801844035974606163156968603943688087885773276322007565632863778689486895436149190366054479400893842481559141180383179301802850003707232853968067103050754355483041469475730063390414093163169932138176743919109318833201721638218211108842125426349171523367859204020269671355021684120590292959211410673392264150201948487095820473799714993902712351423984377858103513956721963730821488913322959987466690620606491910307703696796869148731786843999907428534790094235786724532387568047404790973322015017367818760915788656231431713850172319075358791967023923089967377688292932349637075220923215857109230526757284858039086858786067065981385688822420161063958736976270122114854560172890856859960484520798009869448492274032425024758711466223547879857085815728388693187225408853041771657047981040063258071505775088086507713200572675265497543487615445585042720399029441880692392159422140441729964937385973278246969787777203611925672919921165567953004042807686346212773238052373763932123092200091578061514604290817042887132603472098306355695161354177370733765214680829792950174967126030705853892513971083687944816348149956049065812352980517238192113670952475957063872109316644573546682243568501158848717848374574488032210286758938812522451534781081608594027667260139977096790503487369817226613363650256322554948373037908112745449890447919893154226087647956340245152793798028502885982273587680630315725191357996588176444240290747286711927717201535782727439893247620524474132214819400284475023442122345187000717268435863654870055785437020561320151990509625703587811782652330467771118348551545406371363925492956922219328362216520408078030993471466613374058300358841301463133239491324832571923574380113442636898340316093089129080867253567971507821457147156043744262843957626229176283395274143371404155354724195965638228330482391078349292883294689119017229054621274364252236553716826746117042986093259170853147930196808623217068968243013038125159393454950930294567147179678293915149916501673082115053724070384283133209552295465158346908645003176744341317451110614833492702283039393420469362232946067547918822555633593259997274178638550577501114447721054448095852340031626112160194013001228540990882854330022647865066867721816219580890461702177128064562627323212212136372339411264926388803718757287649552011216102337397694626819964694157152794526020658244820265512818030238482795073265327688354646687771275724490933107897432109607727680305188120839408202666839892838539033774946504843569319329166777740133048284938819719059968992314811021301324432743256298595334269380209441289225600890219735848704336701144039720611006379900929877322643220663819231812695910242576902390493650841978382782890175547197610550933936806598647088464214412068538912388148264392577603521096445366372758049239301397129038484274960920473920462759013682370076424924087271534107830841334893128835489539589734663790054882772353127043742868554062711535469360331139747900563949560800755052186659760185696878318503299918097514824016443955274900625399884497954670642327946446196566354088481445081446705561900188748085192857866793487096137969724761065913534404204858417655337057413887438724389626041332311339238159605917660497331788792441012978192782050898914293711229836298581707876930885263543351498837494642795599431010048270260428684270365229904667484645180353489275030482310085955978026824435405298757736463294515827513668094654312307601428275693063602722790544840041663619480802816022977345128239386720045572679293835588724763693812830621277412361595198090834231847520847127742204623000691064623261570114465260192426017589313947168332200405234122349124051640727861622578198369137530267608392659551376302573722812476066114994075412372574450445720579880118332520261247843667182013648634937237486183827660715697734415514355179367715644197774891428535344888138541525177612774976438347474103545117416483914053294768078329571458800441584977931057949866236961085673950340865481067235348327355225004314076609566098292902813347475050549315779216611629454384858772271434845697997639246258186863447269879020813539962048233638273808361169623057833844273690350738525256461477533535521436743553900463258431550137347697226339404567233575752535595180181992495645490936618291698002371918918509828550464222643466104399326249178669448452138301972745591395438177419499762845561958659832431305521869301415870465212600005053880991825345037552714147453182276025751282828278620213858971665613290471446307312001932956730302984974098443854651661118159157746503719163212784694903724324620116996318669973702874782888679744449328291161332380552255866870892339651497078246343316909933812969685368098958344191272958877063826681143560462102752793630950108881511322758624483295556066828307620980152615550133527949611296896124573695362276259950594555266402768794181112658039850128798304546625969464623559720030953630498516295473535574259432079832332494916327662572307828427383566856064964805691767573634429727288024659248170149419770671400165787577419323155287441123934458117603069247765906318237422931712574814415563044921132548725220709094802240807770840153980639953426860352209156578598205748862764665693569216208108880062071126263871042860614975725636379453915673857754184004020431856485501851504440532156474723242526878704670549596700365508185602011984380606806610371050539020028373476875032711035851901220148525762860712201784656267209315867650423761465907560857978211538962631340867977740353716009343332620854648190865019384642487233104460397306015840371764709991377508604334211837429034062119551069967718116563027153208471024541735795007907797556509989169076361375896466361550583471036578485034065623442749387438672773124307299252298982077840358293875213714465498275501252515523116847502738227247847072372641011271357214075561715444665983588674713570412487156222654474763516017331911642914070321296411901203239855608956827444895819605175856106390984970080829613465402367229593128202085517487432234142129016769119386226050419636942308104206200173593165875110801156685904544360702136462298873153727068777257899656450809226075676745202397703607957295072462907769660306744517771310167269767484964204470108263068474739134411281642938500702880763834480590342107565094548301032456547654832156231439614270559980768997856954138390565534460337021486916611320361694384003389976706114335301078743440284031876140676643660998652242843668026630379217947667937740259463837819990449113369501717769325860011322711985105870335612853172838786430034750448122265281061369091990735472062529801063929811523095567000232521718697419098775251570055947274196005490060886066825708819579623636342385802416724047993597040770179015397158190092464709375382057949993362331417034928101075716679550535911535728408969126176729498626135240125442146601538925396344657391493245817795929136586944523271451220424316154815013062595791162121416249520288611670017858105308130724799609471239570227231355478438772767273416707412920769961956865135291341571184386590944453814624496380707896316021578126534917662441461445324811362175259655361967396151962006049527812678387931058856862840280146865244061408109070014062057637082752871255951006968651688320078260677714620961287677581094696730283717881958594433997595113407228782575379486552423682956756801947495972902095554528379616138809155866780891654908949854972811592759482370399145329050173997975424645046407925755532730607895611249887892915947203191278649459057378543327504783010224316990052880142539665519559483840356388640577961941919801662348852131690415390410920569649648137022530095519606746894153166972998729873962002085301641246603566858345080317542678740527504801697342948187783093708396283307365430948052791616490522001721770379508210176229200990408919784660862248370836699809656599784933226860325702586616165303542169319031881374135967283997688170772145688601111918075608105731241581658865604081367751538843637977432134727046164302754074590878153453521336079074280931604016904033847441307150584777698053321263026686308671987152331458843849553640565584551692951137569189502038692520397949634754450689388794620062555230125099099628017802134227236115146404769817691172604862758230535928450682079964527581035697243637939605066509376026464983248496724991247375755453832825443994092205983944471097546325233807162360852192072989755180965733298814037631713781668310983795435967029721378956308049728604673738065585192565051116474449721022602650975350375896689495759891791883134560141494430832404174153885674894179460365947143388738409455386042698705118659615435258738148137037879624148095921705661679343359912304394503976886022694754315485024636665734889579652813891804454466265825118208349438601188834350195421828193332949327269131948835431295246773290813660250758398425587969977182219344857381909178132634642699138291241093322575096667139831022241483323873440076046925075260876716744595870773474969604358792333253497539098772839562423952323408186855395379940308593353376119591950446530453729215282359328291241315041456369315793231102255390567527792446807414141665619255881298489424425401040067608788791822218086952541662610733317338163273216501477189632417867413583477114650758759214349740957777994447998072856117740849994901733698233169904572183844044111218848679893206656480731508806228643782336475820988897923857921337580288101423461217502521808038764504855906351213891981238213244853438508561425260724502566337217193560510843714413166621911355796723368404093374033454824716715920094681325835740902794564806751634395731549739931733400884825683315419620242469333666021323680935126424032060547786566198182727527043612158187622676387738148812073198397741689973246451281194337984374225283068589251180597377412899402168036185272165397969926206667611650098913425514189902944331326600300516795034572062745063767125011489205036556952081998449721824244074965393675927896638995147527747700745303033483993179532079024951842871709114669014692528136979785846723173149730829904512850487994378251710719674511980824398192466982203151850893445540610526298763338954423854647687630177267590493383656974649002046565623928690871741416754186118102893249273516777909034756103706208632613432003069865342455584594147229733126269023358558500573446790438126360818860282100939201361043737313934298778536634919208813375461920516858019563080258330431073363777332764158795217386984667142185569360309440603794915320282133488836007399732350291757299241147316764298880174600644445569648001131141103825026066514547820937154729690173363989131320899038590066653755645514795242791906634052175018699669843281663195877065388951983461389521760935637743209101747647631591928817723122640361444906343820170144541873202399445630451815165842827524633338449444309426847768827426887555821207483842758306923957166965996044536582739205179562961683601856184373732624620280239028897353239818333335331261680988573266563158133685010367558629607801609030028910427761883593960892261223049348542187295077654102345768316266766000689120798692676437043495319783564011313629942591010597930518754158348975972976352285148715521998431660440279011323135369188415646563827970974177139984266253049175621724921703422633620696960567218881188968846604254949426299265381099145122184414398190874742968774509967387854683284066483935417562105508551506968423688498879756829483872116062173734043864191768438060660006658452005973948447423412877133503367509018046881110796953503782237279120292659481260638109775834045502105978566601578119314218672491112283380277881371458906451680873349894747180483496887214100969638421852882115290107088356459514444137529571072871980194777150421122925888849451146431414027232986281679814769296537293428694325037139456089311414366199724530456109477973413398716383224409368001006346836101393932012387244116822134634951921233538055201840000743853885812527350034544722438771659006357447032473309832607273322809534439623945022238301784774367290602036346751621095079018792816212344565391091283871915517627378143540680229621688333725100932292394928474267192298164050632190562777098189172815430523262373335124717456479290907184975339824335764804774750822767909270326272491271082393118385859425464671084891654852931663083284930062434928496901949369893417927068439726999897696135050417273185911660413702236359867869981084969519445391718616980859834994900620116313478628682940561780849289930885112014012464913118670935366973026729385599736618990281712544816048386076109070654627806348909689578180531099460904582819046054545199720845664198606226187345924355514612355274090014237465192659382187451423845637124570263132077622941972078469334727056150730537710485485342751459772086053016188681674710173260427424824596327164577433576141094350371196029825529473501147417983578635060926486740171836194229059472781795217487624580353126507094256821909462415141626102485132501981533910285487033927494659826189076759931590579824524355603376495901878734503794762513594200825895430375984774700783709058769904436060073545850350225197639981507015293731480475328057644658420276243505468792553308606603405186152303135985015516981124828036413271557782192093679617891029490770402562631565556894537820221123125785059779701912030591101617243866647380663374774839725711399832165680301419864273796634203028046451168085056654409422367380744133171523614608413363919932116854182568882771337081402891724404570776348183540181299286885366940910394178454518531322719920719581539534828597826720956966222761968900438830061139421490784312361104158404250743490817962691612206735767766746968306559596558790194386696611968441868632650529116527867163017389015880233508242460955609145189864827192056387169639826843169784286732151911823226313681801188920287268741727812000951847458527572563365103406002458228687820695397008870609977473963237537271832790574704676563583938844074088276272459967887036954602926661960223486848184126812508991650172450283277825013462724068579610931068454220079785954903390135626689389728510757727166629328377278741812283568978992581161520490087406409068751695646257388526577607449635570726608616098050886354923233510727262801000439878511525513374137781603932273768034448763404649414516235727693099206295608628130939426237622327102056787068327942446478595783278986600327990824589217294115072765002481980616424909132935826130500062292202858442724411730713149643956218250544017061772523356031137575568046288609849848478073260852440136273318090890044599733484290292720848469929876644019879648310452430106917809789572451767459645405247267918219274187388000054734749593544477125414854149606607868813743024467322349529944355181136601544301344921857811274413535389012620241451397618163655834170288384118711690659206023540219322035678957990779410117117105153521007837632475510996167756347732079112363377304301530196855736740659553103136273418570652810038907704850904521877065106255516863379784339320892329270857433306026245335803530358466903293802005091703032113522069226913651436211009166141599287475457624341709590124015209951722802086134794330357733414628630006697375658659060375459407021248782848355030247920170374474497245351471689894035024784575146752943065723570948169667263032215785028093802738416342955092384038889630161181644657787043344934928560123243692139876813473395839973936941139347218711304962071819086661155601909817857914282083942931785147610513575634013486714018518697745234664996883274030178917442508235637395083993821108091325324774977952980208997289590108050081907617624994222905792857465058773849454493829258867924147470480671528831295375146656359814937204738413095504963731668798776002080643169439190686331290092302564676997263497971270561308958027508546168176148764725507171799462732856653118038659246525861123479915794976959848423634135745669643491495544431249659729142430463048109004322986152484459488105741108339804084404778053483109462538672733011272877502577807144394215543062580543851959863888752559251905566162912895987458846979031781997159605885473152793702955860747738048150777809078470425066715860358555747425336462671990050985989647870911643666014865439751060929006780999666974224636300049019616328903304855072519593966080887657157381347086481910891585300553057698019598189062006613003165987789356144469738671605291935564129804574973204350612818486362512763421658668619870454878086637051725877203107612397729065193318510155473106696088518829850244004494006845960233688184915447969821882453838710970844626718740737208540962782134390924082529591779142655047338796749003137897883522828353417152791664872556762065635145791970419592393535484590099488532079097235005444609133581094820718897223046837046730551062516676321106679916548698504815509982879804530499326921376501995774391427492867230083067154935594249759705519741968116026781031173835272396683341407322254661453757055851416781410190607775205210325659100430113957562798220424680998166462977526775096786680744640850375450272707233537854740992444069476034590183687656772280002987341094100267923894482062659880923916227350131992255424108726978312646115671274281460763152240284710943000256486070987502811683178932094316123083074261691937302491688967599384776822073618971737859256417675820084020174092660941300661225469202059297349181872401264900403941251268506183071711418130822211346057639738181338323595677779394666688455418808544186279620830292025933049420672707670635598363225692977195996313741153072492710921150162178236361108303796400205118479222058588777876159594755356022437300068557186946010582592539237481738303404022837526061669815847541439866155118107188876613017511310936780430060624737972249492427954949714994041081318657031337277037048497658985975397050206379684736251827773627391224296311620136277538934041449426447020073889107127762849734575939418338677231645579342255423967594422792942493862239788939332948887137588738207751238099507302008724092180704620927988916723115170532688059201922690889157473850799801126100452268977948518735835117410032733930608104845556257462750504594583914545998049658710147791547359472466674183360658972754054945885588666722068511640894533912041809549620112874950361505090492628520054848701065329431585890740212833169440841039793020115652581465749172240417607210413566813307662608126970307678666601483852933946894926427208104184404699740557505504777009207883808040144749490101380990020455695909384752768214323755828083482078962577509858201569417517304803535424336649895779545957119161980682356058056028985702051990651896412030904496226819523543811344762815584806326958949364310621466023771648852114809710353119977702324191282117547348122194820612985122733454746193274091707636353662049435000704867411717104319975191085382001507546674449135216781631469275281433990158413902084371304306490804054992106973052483545726986677561701563012042516234453898026797178154967517981089947544754447192517909096859273031194204823852057549715454228590736231003446652799596099056750884400540522917808876035567531515198382980474211506462602670160104143494458364940136807594401449539928455721510658319142139991114785365896346110239627782530594501332972648628921954777578897035359397869489608636109828191137996017552462396551689945829520013340676046666031459204909534033855413526136649907198739942046395295445627358347920081204632623868525860395378869962051175847186277480241820487615191636059490071456142589975490774621284022221998430985764643947056786315092472491120121297824115285910123677957056099709470782682930586929750424074571270255400007349022914971358912820392650329474163941061547503782126214232009576495765676557578052894930236025416087619520933966238458004967724361062026317086418891837939553242042612578466422590074676691217482377840810103282813133832551617123703455513916477666435283777182449771087645195287461502089609012388541830461045861363099732135592402359571311276374543549776300131982257745009010999081629858383182159523718464866040023350096759199641987027015185640701254792914593319066951184986663670465590505385874592463607559999790095112346836635373774604342720678660918546182013007828081061486399810930060826938388449152296339814576145764267574111546448620513883723133085166395132657988388349883831312124988229371470743641201674349107655801341260570688589545302205122307614154434243774852729643329287990233181163403085399647391065141541314551167531698743624903000343480939917657896661598551454176621006375321117026130406813111699321348857534693412267883886620404764380363431497241816053915864837382520138691417936944821576470771998686903504948397021591930737220034530606649008411737006603187751171020337494337582428694679955247635926507475699432921310816143174225768832502061793289646869154942869038683778904440067426261985941935374780413457849782661088762978085726458141350643920368489439474657401267358565843668211353147747884813631574065922799897480541418314058142181001217221805436914005440676570625930972736485251976045214661934080889165145450699434719312022216984814602081173644071182450277364427155278750849180697985275588152836998375662316277210300489536890086045405007405841405818594508144154652399027697753943220485553766359240050639145500925037153397075170465129014117617120563778816869301468220413908120374985218022130227655559925446054923989741196098784147939272466774105190563249367753177847097897180008909381090396689903184117229592641712640869742904964647392599479416961934574505207766584498814351563456536191651226656946657438863881122248289255528444025180075254004446519603366356656310032671982176037253589208669378523687255229434764574512608590619039604859893085970260365287198547278257670287032847241237993120047788761660269879080444656449914388206998216728022365496875062428868044093198926774331797916618979536643093608317702738600501743834397357431059849134096487257064166044892853890789131440929170026020022736873500593996810268081090939111057734155322071362887131712133712105034790442314907956789643884235400232569897445115622489104200506894205467869109858374646759282949667559617825869719532233813454575832815013311062280464682608760408278382374082136923620421923829028082260188106755467645368995383726295727991391732468537829308328008618068936165156362644887838950775478629192737242946493667811179632817208803217663395333422057939365047014798862641818011760754607521402549648044745162212822211028415051332542478523515987917810651881345554284649638898708024270489961084871917398684270081884828648211318687953596258564560777299837586689409276422849211911054104113294961995190511409401069452762564819760869752192515892099491022169438958347257154754505735897019280573209012186089055254489492120349257526430575027248921108790541174228478242994570427891784682804989205013180715451557881636316952141324459797089191295985611919914768990921393163886515094875224111567663831943324724110501993127795444851673481468772358865843167530666718875232699556962455840713509582716382144188932334952902973897636953439476377949316422899424138149982473907407471187039935733603611353534500641927129380144808719335621389831294991100888209699646705307378183830315365605825773393688987708482788565188621936346940919035726967386790399809074395933465758883791902201838344804915600609469772146409557702810907012377552823348007476315238022063029162032799954050630504031547990666272356928691094920122661813113970207106501085621987487205177604743057701297058339426407586116891347687421746520002346779643755777662008729895064934461313628300712913752747122695599590016662172363375915054799499546297027975820747125297456108997853978735766505946581925031407743842035202345221672342894776100313985152551613023149676807860241089297821423002696456556540697661075161506022714099565813762206319664960267793011789514924538293047238111429249995759757240608565785518580189376546248271387936994867677677796526158605962149702332277326892313418870875661909711232575172233915499771299419107771775593901235805738013970108817779659321767213379394945763083356611261822046513981865975954098379638099643381747854169456768891959033937010464575655150010550868898478519766960313240207168023806310862970664560789192119718122204187076407814869034339717332654990497069281760095014993993338860389372424472462535226610797113084660551078005566553315799336546054959779655516531920458996327488733312329490679012190305508759257012401927610516158197050700699510314587300011513513778942369226732605759341542222306803683834077748490392213658253744588923472917231174112441440913076079209148561765068273993829725510873422688872127565638925299096550967657687321964381812114864043143981527909124144415003226891396040811727261627753717340797757155373762351049368579887873378151414488321750137704870919139671533541282369661096028391558287814797873940213347507381923933701450414250609391591666447718170792686092330499050256423890163569411967317566673067384661878874962659445184372416204651311757626468309701435559542633854625296901284926638570364468136892542565846282897477923720284094322767971735647417129805186870637300048099062860657003642863790651132569075698994759388408701975691672623676376280364978329178861467049578234997952713362353438921860166734519703980471844112005669885066815775684016489874841014671558688475234625383274341983696916344155061206780270536783753862612544524683819873289342386708338460076883394643721493117140703780299973391524407479635605144709516889240585338025042831813187543381855170692246095199423513904851358432123646535416587883721268075176895128387437093051046029643433235997050148645481537927309760302689472320252411773877171825221221305222343388256736303950345476305544243626902804374814889591765173698193189392971266546955832815648032452830312465641279703381076222922542845153076994915209215043549929403255739108606837251623472528170586091644203583560190899317979123686727357520750353554511553456149924431641953100723569717831017505915102211664360584952456791048748367721215662186832337796899470566027668209460694755647893725629531471674786355026124881588622361469814402944725600286755132280712611824811626949091141893066758679986705169039035362031270411436190730707942063626430930663326429157896176774889045398793499287874077137854127947222401682912281986160217983863350057603250815402850304769337045994641897600695332736165833792982463357130342891017579446499064947837429603186452998269284106411376062799643127355968859234338138629168282804678710599405837672179775974111739613144262843446230060981330675101756922554174243685633686515395782920209453099849972156759945602872824023577507116370574909003524054509032615972973023868997701941154867409870556169710499759247022077946880988356748578318776940328443945369090217959729111362418408347944702171044094257865313462405326338914017311085869491989007204431921607253547565954912042381588745343953801740878705597918305241317746521113121804547958709805303219313897138693031663758621677384672383085069715641268071435235498079735578399983662364274486191145629912605345253313302164664506242367428884403040467505252157472942916168663999656977104399916491288738164242006793331981678974990596765298911523996809345232205633946234738567610217201592507286260574758177891421969284224746145066268620422749996430139226794377954299863516047701932741923183182387238789786511366243758899819044950220393618802640404012709662850709411089673614559772951035979783132819873733470602323537313505731798347440078913927384595919007201517070148591598649425986589284310170837048640127165744117441985753262623031947155411900257105224382529177625323548295609731184358782846263034170772507491305440160527142329836852608540097280532819881303765408481060531169158411641904720592745788147776623714655113112429333565828830550756797226447822592620354203171134966113149481949854133052443104956816357128526635196374471565477804476529586737112031402381930917189296616013319309407591728688268153350842170456323584278974297422275707651548681881197238845628649217615846581952260380961322975072170683520360489236221275448518065104129523282939595693643850653124988617734418033750401197322265370330932867831826110009024909907929701139986191269042529156695680210804929167842919303787326432645192977164586483686750010988666545327244447356973028722054590637452061444317224277184880219064142237564363256339457421838022318461635375119184021096409646739682235698899428397038499349978168315098260131569023243430907013402317374320584480280219525956349961582691026786429968645687334336848420238826268158712060884511040058224396742131326667514414616983060354917850642773109775422705515141164110882733348745924580967475620112900868017061816952011240602327457640381989732458818381951715345497697238394263210023661406817942815955036660516766545761313008755798789953411336498604176423140885545032103244555569909878864537545232077607000004370392172612711434229025214676698560801913539646864237225788145720465444301462165921636781322204417388574989897767675129252325467698472454223161343649036632214743321397019346229265895667787003170350449294319226837084339247064804833598167510660887148624105281122350577555612505633450046251202675675662275848203443419526324808631106687611997522343690220280772572296879531513105355235020011129719880143250379297877639306865166651017782131861160110976828537964002136930460320874593673963076656535937863307349165828943880388408555136630545916239719771577189968345221371250686497379857825480212291153061887423225110248584790014058859357756722836763088309024916955991449132930181768447085934856961897332728149852769253573918012033489028143557053896696110506283467683429929190724262885227671597917635603576878534809239663125495070424559539104148103776507039830187387616993285848040956968405132322433132201886235719990248206691561303330470162813154216913713160080455024763102721592993457243257265657509177809049762220215774443304107183433288730906773643089991811344206968349863466730200490137544489566602105169477686935061225998981341409424744114296628889305115678605167442038975817116613707102917468957817989243148754387102001532687537591280070972540279705118691676289801872246068506504524533551373030839820602774447430175518456165369006717047161839020322862064295288053758036770690902557137438742943693302644595694820917372352604992592270537220158345423911904192498118380512595983142558249481679503195031972060551985292464591113874756821403830287470755361205080188207227227882876338664017509050231651580068270032226759207762627108955809887010247802692235363034040618143881789078370274177858901913078752576374022961827309520164746743256078650218025851428367830189484853154438576960564016192512349624416120579590287455388361695410402927340756433540576236089663508855851871341042414949092545488565850466376313378478895157330606549506312086019272486460363657457348477521100662851315924733043719836539408223767310117667736193664616667843806065261268980887509603129740228139548988859960048443663209827536626355706978381817379865355361719748354683458007920959866518712595829933531141298713323611212926492945521646235950946137702647555456875720181289485085758217716039970638100245189897006045683159298723835957003233181163305426041430049266117061308299048141643888022484367531528474448607088733881331247246482017373078515285771840120656432080455519696259042861810063514379969023066548001894123634092277154176251581625539013277771488305969922759164485415243485916007513227226088039075155284810440137304046162866147302751017146489487646724552570449824469178030158173031537817406641481405644554054725985761026026337541914492612945223772164607769212740742413351279481980965376103211704396114360397347605458667241808337950561819719080126929474220768765147605225332411426016372482799340756203713622458933188523535913920876279415751143417071605956627362639371502132413626896538408016692966202000309696506152174779701841067512714714361852387706054380462625280448393939860766557766584292975075348489280153314875280958295347846442584223829624372812179055642336868851582172178115713552295828720933003962499121254959379436979579129462013857176138256481264665552692970554758660546105166946276820862587308773884068483121222538216403176469553801257403074448694753891528984407070201576975530827756953625647395561982636402378231853677693952291697476089117387624281218967032115146506579984491004776786521652279636760689185878047955013167960473560301852789331627299528423350096884433905910142271285601222907317963558846947249842984466577155459498528874826126230090744160558320753516249132004443656657439110855583242662876534425106256465931955572237916424961401716186057206228049249933021060323600503524891656944999049352117729221777348727504680714310952900720241808528347255481966649703183805359165915893979690134329606079659629330696283571690709877452952003387221773864666861642420607226704829848365277041516371273180184540040443054024886774696380916671738808109066308748720030918594982860709274036831739607970464274773899890934908741070731903175597812489939125119604376500631293331285784988812735568827729770885330841633939456922521922894527894585212040493085246518265260776528998739072574703489483528142570942424321608369414392874160852143821915719804461253069898551819753544140032925411896168836022938818392828810251314986180108875178928237519956870218378290284705745349487846995736118845950488084065090970031323425440594848715329716584647482211735785775614058556817506155822669054106444262695214443243019881510190893995349036679238138591209856915165027958989196255281408277903835557850761770078148657411091847901307129729845898739661241200875544636971819478503850475111074721964884863244803326546643945077388385735841886323857488445459257962508415003534179363300376964968533176634608515385853430632038334364293468151418072524586753608886237123790483366518305234165687170266420739100267632324395324700831882609982914057245993199615553126788190687963867883165044738482806161894521491405242534702619172453276479967854443775023810041039501716061185647608886785710996301395973165666396520304379296202692824160950303374233732895571390675897388017260056205928522614133387011647534874022923862012113582029892006909902850627656892880304854614721446700452893378483163056195835678367377273739796683530808269695862631873699014983343055135332534912382848553063454169860520968149950856955234577025537584102320487769843969819664902661346406361224542704451756085236584362576267345650037003175805457387192789036911592839928568122570611403981828679253322974299853640340737220226032351644149017853610730935338185336951744767292471918965836232136722824015207976780697366411626876569063293828344187081031068550002549160466113548113965003498451331155669049289643846536732432843307527331979092178496304032047332634279240638070450413608746446822334186377814211692852917263264192687763286985323282602511193365419648391674374762008415057802976787335411612196659735827539818429962288270913747408020576979438310760024701297170366586883371648239795144432584893315100998419533889763949184957059215793544875862281487825951698943472693672593194704628656001510978190023466721437363228521576495571893558065259988878971161938035996733200374320131904452717215097692494069015993332104403543553654600630113718037047727792715312176472940433107363168082010124949672008950144508832312365511002637624040546126363109957124798799006496414310105170250556600910207170031399861382429976960545656759641510295297672030073594288950866619864158516351077299226501720899499484103453529101901938331454830361218270281392138341244437869848743370513464209132861611920733373634500511377793397812435203535973157234921829101738723235976208811166161487210631680583412522927558222398698329247721820218506336935857919732244887965414758836115055221010597297434045688880003431960101002448924376486485552065221544425085042480618941013413712848499166182314567421607057449443797487585070866516860188858230225930879682478766422507889534896871488157883466581801904096522165318049561800012520729836557462222750715289901994625688992546180218699850180140612144702823510432589707216818875308793089383379182893390015607933391894789695681398643490757614514360279199163630330257254200490890759388022006927901836574752821934261954106841276051036011645596841476547714651272358360572081525351351293388544630329093706173724248963538103692665826620948439902188689124563436571903997744194717835285264546602943852701365948374783737820510043471261312920187866509292201377888784936967087034368871852768450267119452053453942323432353169290955859740386462974533780321840993222385828881521116170142148385089091768003347868556229881613230162366121924256796667106079369520971247238774905415836609154252833866473523783122999073414817529748624882573505800587107716071006502823725394558426412360203195669505559793842410686629551931420602785408702227111422645038162067973974715513439106315157847979408695632614201846859274150152300507743223780809748034530081966060359337376531069174852551876109744054421983919131472215128071666793881122274473409195143878906960376846499504410129044178768375397255771408960599376595901859072880349899825437681520428364317098978700849035611510613337644438319495486809473725521495005790634143825291572559140617142515163927089406425867798593985760969106099080576926244376804892129723354434370492287081777561553789724502656559552972892491389107245647939722266745437465738362286580008319089756384539296159586456793757251817029498598792357831859670682193708504691482323640295986253031617697895945592469497669204549140476282231015560602561556621909007644706154429636436173797994059051334900594222112840431795104236579450381753781033136198435735795996155230802758188912248991234557504831173086795208751552804965785630989318705458782122620991864431442208618085953025037551920986520248903702637353112680788096283910713147516035045136292107945960795290675875573639443708487727792301268656886762470397797176055988326675733590332553339942851933190924531611178826332721392212313361066533499620121375131919485456437708184152909625088498566597377295273889271397444451876310646472086913966371390739944056773071245550388030010884102269618670619809346102429282214668236730524600103003413355655342076285481433384938167443109897891032311510343638497563380965484867889765589948094207912348715218927390456153178120134694501795003787357075456994660412506566503057442821978742397513424734616529523225244249212376487737926640099170905276048612924165174142015055172253261133056176596415134980460403269462206785287047870575137194992911353696782593449114551412369176463131352274002361562910889627376001013792212886182760651432232325267977986904856001205912843754952830026009994782966578702584709893212799381654575449520237296393700019971064052567121701814436763408756948242560904661698589838009543165786814487865916780190719488107264122053430928703997620339060208152487820985900857602981493132409098912631240165041922982186089776371234510131100302712777264567300770165942852632400248666745568410707652966904009578557828664077904418190475888963271822807692952967770116926842568928059685021533718489550515880730720045137455501988889302709819211580117766746057812954289735042944785717807904527211898987498193890649548878584560146814985382107528222483706819544741581614283576533751522021965771751321515656340095278897108750856859538964838662476257870423782274397727388143162158317740175330709483285184742207136460462032936520001675432884132237212905039770531209158238115724657716639328493577437030591582121431190131812939885104246360294910338190197889898581002419108735765429728057291392890749219210498169749632874188128881735435192282553187782150008038939732830386952128064692575440782191829664588140808625509404537374382426617147948394687265553091223119054848451042812246514757521795579522712044268963681218410979801526917670760423309615519765031520245343837795305823050772743374096039428941239540772144263495003868957558782681238093510041356040124389337286683602211044259821142694879050380731146699826838094970612484450260918484396864684052967477029861094169333500786897486005061865425086238207209258776054198528889288451550438551872328764014075338300774536498140875812097567334963778351134677981232951733538893904109659597340166089886915476549072869912052108677311425266536242466714868330871214208333439516605761495072380153839769278683526505949087573108754632041200510538801687549400851115928738861589297428537527138977684238716331818522693063492724378422446285038213131458349675995408241899457947157598403211240491313538583184975135811214675027550245842585163462759038592294859745587419404367467573687197796195302981781216141032244903106864660489136788367782170903207007838832845017198165573970037965732321192676752253713900911438223786957404725363319878933770204078750230211136759054911889906371474826197920614382882766289953007806637332237914539231194810633689418374069274205922933908838052275982107952511391403554497112051001890691476153191827757646186495584475938568917975931221353043405149861880802373805728496478262853851081353931712314498809831162504438719077384891741585048504802690467087032639089912851498291388425611085153978590083292983378451617063755949080673606770681286535866140571833790656602360447232962614285770693608957493953586208046748055094726947701818472994318718843762138996753203799561645273710709058728879604174793669990300158267660776494028098753591159742400892321659133530933740302736170247359880835734482894559829449691715215658076580296200037534292152635179147231374076689728830222420213674165369802627690292367612842081886451182677108980361146543599907665082795913281193826288223232671939508183179990788582841252263751527900254722732149571463252301584605912846801436429290865654493386323210924710349683573549944956873071204504063261758724041108302874543342769450237703203392587002900968004405503467533228013623521231201747398692966568706289476813517652889253199518809640733609610489983006506916008348292526509262094705628843241335623243363176204387189009454189558768511027174641894164794053057727480031226328113883226831969585885739433007149479069017826003370191190839848015051891814319411970104716088931495454077489763021355786370292373170799618687176816032198866006348587528038350893467154991903182064429779915101537844035280633191336987336506255656862282315783944079523148418369961349721131360891882921896515488107983414680090149589489756884605454794589621183516210752404941857649229422978790363923899560163091819053903342579789089744446070569637885765799998054690474128743675858811336941111488587409930810214857533864052183752075332019156669794778700836460177776378503176693209343907010140829203678699623966519215449433902873329873017329178030308988034324300534930116407757871477980330681407389784105352228288296198396657256118178037844184978620750329258117479546935882906886946774645939475925910065323545377988102186448260190871036015930423730876918066321125034424923445775467033537360926866283371136221337910777406280552404885824935585920525394975028267033929680542652847450861024105054422496877570442241057726558318870428957185609652269840371247220761503207646488907031599742342785915129388748633425426250684804092389878523678270384431172673917234031397783102716557593262809433131351122033753935972401344335041514829066708256970776947927562059232259506599343158526199364919870669242009046789917142733890991443145965306874702175660886545544116934823944352338187451384849161892393748707027985760322546930267028324341561445806285379528284671831363135749254403139627809018097162980353677632143175439351906966780833041190186696121955868880519461986308287650184727715114503944465484852459624776833018532761843279757677118970026463060789071196508543811967214054209209286061771742737561946579935512240380606921703698003659998649462442191338230313244586493546779114184437395816672425001974005478107787418406186978501170836453460920954693648237325153840045677427565291468468611944697548232933232180376998666729197347398531783785988418270886331928530415685207597399481215124960006078672931782813257955862563761883559975219202754590062254385297109966996528206845941130294822984385734967463616947448400259732919917019149127236812340995710051477087208245279316842928292049580250722887629657116641536072478749589132255421071419589055929504445660106660461004523782352113139835623949720587329526768836748989787953385641734537643665602237912250756983545168962112843395865331073694730785993352995397027431482276257063055695932228562941535815488554676241976782132956839654529492525876230926076619276580372869221281214934300828733284614921552655293194198892779452955366170009982103216416461347025249847384735052074820517206083065716932272989034470304523003182636906007971085176535864201411068783395746271097753828729554105805045769860231238147167095821553013430080792210789106031141016555557377958704380663221742981778003385028526974026507205369826775231392662295808265717508901098257679170932473344744392830828101639036768119205704362404865780802826159964297815252764507810729841298486089162176578325746056800435003496624957355143605280856475567856456329892866105276643219543535327134904494265412717514519754085509272665870979228855188249053798048390714199769197598542928608674042919681397774651634737840095518171171693680743141852322336027092812382458097196592913954331346329379184529596279896752593827339907137535439436637506965147916648005130088505141893923793412927096083583329496448061756956838146474111938750655054440263693824840151661329623994921432630591633537418025185993693719147571861171464668372014832847252611443877531769046754848245029653810670561291676782886547959211071165092281068152951491530829632735582662682083330444498879514249231468036014927564596538831759164052006106787230842489297982951034224847968666075614236126294740667375833582940623748367596031066160293907980065158516880098642890622563176929268689767460547674206056081850565176779086200622891530177608512471905472130367719462860074953637261010883312931095238847102344084540007510083346895567633969081796037968681993478811115429770652829175925620948082147085439511611046613188451332442806662783853747779572154771475055469766846856802335202852298810333601838535376675901676958218823022290120377696782351979341303483092769437581668547355469020480258028557319991143071082093163862828763518890209359911496183183289156769918020152605676888892357383866741685473518881992270594645670789805876046288641450334119337064537432162973860862546550987764431948243552171138407853739935945167164186432326866482652420374575320796557082970823735810819805627899406346465001721889585648711622061716056473427552221790825255034408952526263199361015477743621821648914500051758573166593386962232915675441704514644701632426422755866749117594686405496981287324869107545978922325927693952441101385244444826692097214544155884863114566036793555031404434538427537412781417685219893206142893057982651840176198877203596943171522548182169519669752021722476166924191136025643160231729390132701351113704594726607930660723721402865088479762644427598208972501688416832105282282122188787680709246763798421583051014443772119420746814017714808514834116911478062357520742977732893714049556681793203784187394543807383327177039058012641572518234648628600950736644483742799748164086321731941736697946119205024969101900634760232477841780065468927434054558109883024103217552182243698613996715872905263349855319859973071627862769735644336930191986965137492913728544465991036011999440714469255302687987567554649496281356814940701303351104890676958263107926746963280296025133061626871471482914898362277298184665990044863855905191168719488140687018957596359269371591796018792332352988314489370205259721525615251490301814461816814849935259654364753499608060348246472186601252599701563326452528705314936909775245616132641516854186559683046163713684624561802637481961523052358529195633547506833219677653433447671848899195460482541304590538547944486233152704240756511029146643286141399064778067830623197141513163171690904104124772239294458076124048941696429353342245600733352874039985734397702198889064066334895559766423333788353176300379442287542540586196499603868238004028220446950960245389397418495462848028310816547434428780387121657862672043478543651162336871951283258148884273795329409964858869819622391855209246640883139309155509485721950636191682499917568382792460354018134631673975931264401480111923083279695439227522163560683108847537710985420213440394608486946821914036194476895018477862696071474477439726728866036680816326425538284036278396159981922330518304703963306741025388089782338328757688801778552752518466962908495102464421207298489288511489427328200451435593644406270129698734163533339705046226980670710888829112301236587561609158748526320191157571610231713001746655204932134326146975326695882414774968315432911889035266343126889105261286166241162071091071614444787034906455163254040261416152183809238950897572666612281247654719691594164557295991465707359381065395089946650571895134841329501757172795303335888058111687932111994313805636679163372752439176274017765352284972607518378497493638952130966981443425034197474299367767462244328529801231265717409215801528260199532976041664036618588738749355590803495914019571619555263172229218515582741743963556249340971903293509983883804143372133196949527624113017065320027744184843199595333074604492602251214309795589426444924615303543265211175170101014928810825052789696497220687613106917760473005222757207919487994614104024299277799434827429473988889479467975960137258041534778839437396135365008715769829393630136455960337722300688636019848244738647561479044292225501756323400927394780280244533317652416147199234406765763140501017646614743343301448060546715416607485926009985119002525012149707837429993312279187515166677807215496835577718841316582610816974794896168073841343247389107818443196310895001534075673288286773004431637396160935352062821857416223713274876771554941165463628284040263960360200713736897542817544723003866121575198346951667419545890693722454464489032678861253241684510615292009017591588873299792253717085100024661622247406691155284680449228205891911593964307082549581098543317438991876791958807384749944329750743449304034729701964732012563051277468575556663906702576377010488736165750860303754684527289567821306259669732444412160045204716531047860462358832493235311322950241143947517285357937757252921873028578099124404886607682339774390670413098419678411038779236377256354895132845271580635949752987191078986254835472593064157402108090313048931337241617003410839553686000762426867428311513882595904808991470272791423051360689616984704434088133893538470500085898220435983155929194335075226361792766559214574991410478568159944693554420996377386242339225905538463832265075197959361465134265975943285792757398658517217718064325678725770225181545973878446360651138148360533947520874338296086951686976518458331599528611795711246743077265524413885594336283153990111118468663126057483616607248788631984055756312987487266017758516344401958741853151155637505973717591474333698653273303890491002879386050289613088713222682151208431569682401812749564233268297643306861409874130462095706434443080035168804358125909403293813133592232248010102016958949379157879313587312608945332087318643883567916304623184662867369702270940823258994563349606876148996909366189261201459459332753173217756927113810305089343328903220259903478970587746011879600796412754960836456390000126283539635613890055324114542885482710967380710837380935449131850079646004576215458073988145889003528466585332186764737972224683232341730715426438991219193347987970738736147198272611843439928223528694824704460586511111717412682390925380116832396399147135156669442910197110774735098928695951964428969548477877342746017252566159088278906296778063212947693938249344649632663205837614848307179865908400540519393142262226664250688738064350621717420879034407039909106264418542569348523798111234606527699314894085882249745008665194797318505749713675599172635394433407561075733719119523625991366408572133496763955858582423483408340602679625549206400479446121167888646247346868903571112464251262688703397184082376365060669841490107154985011018429559076480460169529295072499654375999438467268855271215186184266816415000134607907015147510593568778576378083122358834187051205597775735819174631020401290707842853244699929184503881964047541240861985131695906305397039100764708170717698874661997664606709606542796070926040353833553454649272900201036895868692225689257694496448886719729086376622250323491468509843832295921189127442859012149160801159762225752699610661175375710696176073548815684002731671322329378661228198236477071505831849335124266878649814278754948203934903611603200086330311873132078761419781836143665522362675299507391576714006677961911408834589132580934541084782797376558103159326378060171313825391477190314383123076614519919552569148263284900695387203923873927470323899839086090106892094260629215084163829679007822206403279658484671599991584313452824476969805114379574095077830732568644595100515242874963759279329098249768032538049670670529899773261513085941858684867055645483936905888447427258032097955845078964990233566437025363226986956145217359266571499338802132062633568278743085682779088428256501377775147298881335938827737641580402097479785690809719256329905539278295387149131776476104731500581353284640228966894400817007848228366439846209483007809538415793888912843420344417587712597330207339555789636608393775038814881760398232543302834781466619269698095148955138092435369872170570105332487006502954808401872347988233743438832506617327135655217551476478952011674162940166112097273710658617630246101972855169749944063296190327933868798236381273241137623056582206072170151240669038845398325231837567706520400219073111660225535248448393932522158033687096951255722508599219571949620697187016970713190234701797747437501771813189045466294278272357453247129262376134571251936158806372163509375766858738711423590188741552958186837630400661468389245718108938115088010404353535243566483661273338831508502296487077298114811047989105616945679306561518372265532178000533253056726434040746144594961287971298888464053114568821632891199219182026586224277432868111867950719653996449935648422541440342658186754798744946756954522144813824873086820658768847556497397948722470993283937163243805759111972756753623085437392116576224873636309826327701183713023325158013519465701720933018321137120021090450817040616354319074293235038128576752165982425471433460473766072370358008402482123795533465986677874153579830306277123783480021215744979504111349992979239192241736502542764745965944186610576871623334175226691455848341594202427988517215867988733063760953584919817216757261152035180531096917678863977853771422111057841811502301622506823449725464724142023498805031273247795971404495568051957972290510552573258708119086971481063869757222553946845221012673847960034838781150111061700620580427549594905573288192533187741648273021137460776008356432758212626250259226734978873277381693772232387453389989002330856468078405852667376529732298026394018299577279734612975339776220745101991854047898372899604360015027703361501260266516983889709204673136952329097034399761492423075135128693130613109936742120001546825549716664760071551032337571631818879446766680276845959616131769547249288948784977690075354161759963069978200200865448727673419357114804198151414158076642577101816689587485055350219072143299167573398372404644975211497137916337041805840588306599781899734943434483187135830681844961426865961476993955391720456804537476816333961711957666377488124234259245198897750139844488920053685886798056290996424471334607512062718592410295947695680759749143586914401419703526512217546156786942200404314502846505697520598603337143646402701044600753374116064420516164243293456324875959322577925262092954057169649284167567469486269544894760109591065705589503650769286203819964943983752356447090380392773868365755586406714858241987389808803300168897138863926587916586945917324973838643796744436605093322602906621368467444763708878387843386325379936571498622341758293065464651116048660034018529169091285238146723719675317421651923977837811682109440546912728921616158554004885196849846446491530928179055466652601685900368192188583549821690686132886758194148795189525837653892188387493783092488129174011983412153944473166730664219270401812772341021627744389080042096395048599281766495520859609114419684794975754527292653705004771563813994509085154026163535500772577958033901389097710890032316775974833641798417134576984237978712656081130762006129062454322329702552763988239109234908364273849559625263046170822049389993757287889690158825755009639910500408240343319035057451717547115304510833720455759120175117587267455235058788026950044053815992777525212285965411715547917710244601616560235636502648543676013167519433887754065555035428655326882442372118079057093446832594772773704096622206489737293123970466641974219502304538134025932084883087630188301505394088291055665473701256694796193274853769422710394026768414618540485725412496315461170094394432725928574427783086492875744867277997296313250580744343005354358754580273269555171483673044139688364349357726184812426649217951012596897309102265475645757805443937170816125132439855704779856070519315455336065490931473100499699650798690717672829004093677175490353816799629622355754471991295050405483651927069789887541767382109219737729514920393742341443260634798335733658865636204978819503589378003848092556265948846188808065793184037920310170860798304266606816926294522467787995057868781618672492143719693854521252279574503610512709579930766649657645547742909927855361436052563233943471073892946991304978971689215938453641610057864880756634520880641682501266502041375514422837003169127650586998849903545683736683102447086695317652007120490454318582775860033696102773856161643135061930385450563761728253950362198252936295260445829519249919031497620390476344338483944513175633428653320940980169970465389950100634095090632236402635800887374516763539318217409367166407921341043444137635198739544340929127155824399214462423148237628002311063599386567671629086982248194040289108257252731179951619177604059051994692253864008731556727975568780275804171887492794430273519817207394815950565987530026009035299817546297270227010604925607443454733720898873335071807079762008680066273232028850418344317686334968275932897272513748559152661057467149489271538281463601355238998082057215956326396959123897228330941336501782208236226011607282006473509477545519258744813848585060371331202582611537865586594842629958824966436626944292648126989523587203805316678195572795924865318515912658154922205909763191289426965263727137493862288168540467292687434021893399148685963526339290618887388767485708577759879386453043810804291180807611741550931159928959506585878713837633850890318102209883601226724743042263498503671354884533258264527025143620692044360134971250002665730365227737818741809306230214547265724382709557155425087085342182524167394563879175623333766510447559011187532182384619212283681918676757470906558421142917502976598527921206997125394390530216871465618781664676002895207709184963054000577569058218600515536692613984538569752853994101322637530370587834999235359415494743834495860638424708610274902609735112204807298157700749540022086576215207525326315444524819126396005948656610102857124902720501662229707277929304443117957169700034941102532151344232115068645670511082622046048792989669613426128539031655647362811899016279679094383047608477862017846842170236790955283081407545962239240330042305631581200283180926579386531417395252367610701303150795890475013389864957346951166914901334965996765295528683004349020871156738555691492754046163253164901242355248093866211590674859973147611302225076103025548258582946528730090608279505538550974662453949028916363586553414873102648740800745752532573614459615433795108394461905064742052375936363285142061200241173919670581276757071750924612245950337462870802706013028162328678001382036693445905487916422234662194824168643781972973324642531655925750419963382010396737775578829580708882410614864407810030790080882540801765996792374643595437797443735450179497595093432430108568348411047708599927465144700423277442951065202250312289236664866763490537123603504138891706269288284894659767677288883603280083273377745277549421385783616991212045503651611909597667835770886658710142179275199212597993424599183766954947550368072911393619434703831692855413817257660395701399720620791764916847759777874667238331710696330367709569230154427824444954310614676493985435071622955098956256165696696458093726817230740299880658813393681227366077700277213458395593133094995367234364593553961334112840148361949445559303085460809823064977781619729641536537034810475161564929614567716981412384005029770683469966356041581985336895150690988144019729497508372079166532293038948157061267732363650318560877943429452698089742287868671940801641157448615192079840161525768379268923550568766505362338165068860338855864982304331597156806922310330984651477984589641111798609330861683328393356105014119540071555707780951989282941902672937273311346001079726145331236094274045345620245698523306877056644486019498273325780357738166045639386286583570407574750955140969231232127088061843207666629016340616056803838066897691995795569086395851191625583976633333652421034445409428160880611854588381360346568245730520084222917292302167067422351842964575714813066281673386088588089335842571950875706216962496895131308929252735513473717658636335462892186048878967988259228222320044093076154249906777141156467281257141020867791775138739511010869916008343980713158324115550269896724012370080923574203065740684498887533490539789178939906887124759353872302907312006537745710265212127238314251499400192879355314681587840898448686761424331747581876599595328788676734329593002239122335793264114434876376765906741678881074413307292991928314017564332383966090934331463385798608092095295866394479877032663102539961655679438831811183544293837215875783592937023676887264268072368929424215149535009191579608773560188712252800421676674702250082717591918140967692116073634496823545549519134329050446034059390987521574411048799868199975033996842878866060728169405742162355518327040128804457015141858657154242819083458666866165722924977282500058318099197993090243932175497320663132288705252137085638127836760579969015616960094974569691833836462261100187736502589469533747620945895379866679886597319654404542824643595659158274983781256387022871485108856885400425733540831004561244790566965449256242518240487661475911374481081362206421813056175368643569422160535251629136950160293367728762515997007659446912061112712071106421660176216678851890645788672082003175977276720437157206296676846564074347144796316795899370695276342173921771652909248686796845191330161771361627107894958643402364691837760033029429322218078023639878177717000343859122690347835795288147606829746060803039064391103979260228591868239950075045645256024630328292068077879468427926157775663916364106882605599044457548244100102177751163556187627618399513296135040245193067846318078392659350379585449281334070887002038090149230946779300486875919508528400550187572924478739889058121711391671634797822260423945824696127111760171551993351334627542887071559095638417438993394639218379648378366002963051641578698082238285725279538378600204188543309729083676606579478845763230950514873460688616108489067499244303734591501086770545728163546695344835715204850701694774187319880119799784704745372131345486830855069045309996627080172086119010799280452090398332106459883713567058916526371865939037857564953370665942580442534597085950439778974308410751397264717798339672336261043667825868308417862068080469790091736172291992536149576583314213231613861530442632468799576623569649932811150538566898341976205805280755769176785600260785666318902586777322139851286270598150114616900740125631319866574044058913398712953550465478663194391721628901591740224739728548792114456560665420128988061585267129886157453052543053997183239694745858787249291918861532263835288825127269044936209915025577675100039655577712941839524411614865416954136223639303756604766390356575017070955034527270728352221051436747881049646617472121407696813619863617622983675250772998613374822579844374360275262690661134767799126083455325936755299732001981074185482381587652576694271213602770659538603216461942117967948001228399579787714346061085798091937991369041808080594073191910434487697516947786772783978507090097141344677423451728967070232403052746259590606176497368267661779047536995273917283718435947744158923534026640582094746162432785033496334914696199097439237230639840547662872463886687939607960785528604637881582711822360456857087369516052439458369967565623997163631656129764902447122685175891289339411837609288073742488508685372284333710079699258403888108865639388191374248948531434051016177555216237562652418613366663079494873176913756376910661658031657718455119069582296148143095016707083751958974856874165485744758001142266682004169027641166979269022064507182384215689559407037734688507409825771308831245966478600061283170742680298265126595027950705013413631708130802923939915853988419668790221613619897488302260605174631813416839230472475353844585672440590190894714577813498003842820140283165436381070027137613507521422183896711695913048804538285127476411566992790131268060027208256409399634117822025570200054444599880699638135311905874116348431930418200882564887469364787414725934850100185112957598934430163164797488422550333247987385115842265801120259572638577142446725156438440808793375971212638372760946460757193339583352647924969273801412733670395978535898166266076606101896727979805894014384109312420313653320856250518310990810198160513697355055800390551903362553496347953898214303376017816618747097587543895964080781525321961226331423670000375755695888733526753834376803604282701057775403380328615156833989719969154930044310293704239346820491176099707616733084582010560271933743433076524596101302135746624091035341609835356489001524954395402033662737416812080552431250071286200444496770692712974876598629091445082605129332973585072291678631801159159832807440523384016330671470295458477219170194181526270062047000226383569713266871104292139354996985877767727781800490823156087620032364468956773321513999828394406250350996780219931421376907568734529748813717703653877760396232274347666914841943743465843996877662420292497603944593942822662110281967072256152888399972152128451873990388910853080373500302217434884176390568978598978933715486939216611107548728182153722829323666108384750390724435715358098001790433506409317261557965077364569609832356184877889216482113929334257563864406826145119448142299585592699884748477814664144007578293654492203190671726255337602309966066327853153469227559215076513555646732988749914133715103915326595399774402124499213977352542935513617173716245125935710462181473733980429612070540025004488796076193698801301380418395628062126066697125290614599052943929774997774364629201384732392621133268779380194648219023745139850937739512738027730301831225799339562026738608940459700561854609707830564401320110168341841315416545831823473578761602360667265317438549911507250629740315700289506489423535735852355927252801781242996834474454694565396051390807633734602753483604362809391222156922657663992212347648779275211736486456007885206962552902291961556378684952559669029088740991002502947248394325405820862844292940271187529037897780570768350281799842483924795124980681579772111964442145114140837068749538721646219871734420021630459426986678798809834601603657388033410510134359476806440705324946981820862250504598274825305143887007836407106317033875939665087245114611895882376605597941134875784859592668054898900068658129249554251388102761435566406213706595676179817425712683185353637416951375988905538224147677810587310472371064124998364721713187817925751706359781302909558380819752444477590917220546250523410981261632780798617973149587062518360704922221908138137148528452432456690714789152595902234371819442260289717542885954892774310818329046502620639879287699498904721437370658171315905768799815058556598683435445763489371816064469572748525427522084606330885596310462305032490531481115150293475703813585509894989499788296786699774700349223122600558112812960406345437125377803226407149630015181726664783476347203245944735507856323526235932423118261035168422092243316712468897807167906176161999174808324411906105841338584790032016660739268520255874263373004773927916346607029809001838259761144824891589800179875417572138593739909226888673114144235083021686848361616260737359905476681342783933004778639883198037631527360770538043086747904543130595508486583424894749505403987538660687325436953257480398500127105458031125805888947719105747448573204668949879359950819044869259393780441575590580403934741023403912748724184935872575761879810117788265830920815918596640312674173747352108240120431536087569592762335821425025273841551153011869249544137749781325027281852330178075441601073690559344143710951579848895746629524710727950801065466531456053908912611207817785579941711441826659647805651317538421604603551300396708309493992852210433696868850166578359033023398777033315022958172748300860095199212751014478542683280265836184411761021746569861895657731111587723289443478472347583436177387455268643735058338683306617645120104549916309863717625919055284748895205683126539070194740635781743287268705391980523636687485682550102712757523106705866124273952555695857469199830559490138421788999492231994435790881254510829894293818345661416993038817012821180410811884303289870605241022389752547694129501689213042598033387707056753357887130448077231312542357569396710943009936361720867931054544151574893027486198958414428186158955772273958884008782089579586031595705502141806462403794912088410561571156688464281060561360687811894662662736173485992654145363231443078587834312854481152932102719995298159258145951026915025343565465989597359835559616039183403808487069700292572002360624868033985749925571940826704192482791676097912795131715625320419414240886247291363362017388244056468946988867902090426082722901156728193473227528009477167490303477461281028712241886443850554761106237270543467959010497731151562584178312823070766603650574550472312659313623579664272332245537759155265668020545125201978459486578739138768416061272436679911868109316211932433598633260162547045088737147855147242479178455115027323780609506822588053735420446638084180904578896548195455713311131019615480233964351213765005054682777346856742571469871254071390462552507977195428507301781826376290395190219482445684270391910117412503519912802876679398030461604765144708089220254650501312568616059494601776726253317879890740960421882014756560767531490832210747088085094235950118690594657670459365256476436162458486933446649264799634683807765474197300675808024439332946223506013965044803046165456115047857700264472818942465209770474273236877542340867194875365287476499261912466291840047566198472868594743030834310997604382435813696439305909835940085103245762922892092010013273205033735086869483284383442043641383980687611091283809966866582057337874512503448332560883413798768104434168211634394353632067482048319877527023176507353477394970622614469837451846695111147333701850930681288883271288296131036001176341951909654866838610056607490020116139561763637709038028563291594437966551160251454898082044545206104995357760872969710361154934564828465314686902972450033755817375140653172657968068112082770311276970562271066795840838677888293137798313905979093893790710590443372540289586182203349192489922299217779647927755814249373621727272370544851063775599762061577375634526094231063337369832908131255354403384726985405226376769506480072473151609192327613176132714235237452700511957087093887747503306370020400699620178218186806361764167991753802003568637898457059070160123594221150938492223317986543219742788693940623598701781921541682529213474653543521067849182430670603093597023256147667256700432090368739101981053318522678641157841154813562404336303324423315390079500908957880608852844536037569157517121368413675628597339923220632692952344053206970320857902024154227484275744722568965855900474562891348076869339403315900636984507188192046223356901746758947416269953175112941022105235163222408484683081571322873627349360075077221374407756915622266603361889528254601295428905436333189961666232278310288254721024161093552297800152896884393346463123035738457785043727984466971460898299292017758694307313637903452734532627514619304927274440011555508338612899398307688217516379209329109864891935913713933826501390850909556251285452937259666099392987559406164751590777541535285702681340690945722906655134324042065021987021379056461126819351474964604650066208480071917817781771682318991433066774219952104226103749284540071518811009062267147683545727986806850516436215480881822951322309979166807993931288590650505039856175535305129246766267284487755036724170181195497243159114201679135426213285870459937846668188880505361097964457677219924339010871251664488852984130725115724317252557056220271817213525594127872068913043868754605006641593911984512219870560479328702905411753702252592404055494076214428012962231524612237432881023164863589535589975956934364710292788271561875309548412798187659256358261393288303237573634016618014850718607019595760256115634621503530234083401685103171393935282275778465979582212708113690514144788957305921330251219965943428630001395021534529245236602080268039030778882784875851402675667467136718163430327382363712612726077748106868925815498326738470464658816628276885911876769679127802584301642510108350715176130361559748260767179525098256436373239083327777295507205790328271357450552681688555509600739107790975290512957500075018680639902428637908896516812587083068902950844229267187161468192426208804759008142454385586814666586624480170652728668608975897639121355975641449406906858269139456171645262307590982440813728708792665035001136567261919079035367587356816834927274617290998513984883540382047307109196724623488125692656882280753607983299647026795338559275712690408752759224621416337864896565657514760656246914194275082118687597782211240169307307394313677491690777478076074859571794514347103781782541613327395643437474316749775529985130706577571395958908698626576432486530262161314194428338492745858548837830264393946093273645623717487580645992357946900260137505415122035552075123732573956776043783987050588754215079910433702036582991762980219740045006848568376754461845376843465370523850905012859172798730087572023616666868502882242468797627127107156734737182932682617274345859996338050834722427989502824235720539571834775163204236559325729353090266469726649109041153771098265801563913879816842836737524518149778699122021568970487759154849138247988334665487948447883836548104120692489573118494218010384815601457909918770947349594987825837441760414738522697017926553850310190068462801464623680885214189346124229405364557215651296998068686046386253447200094676548031829434988355427721987451452622572018752836987553567047539078705292096191186430107350493204201039832138625905964289006569408296271457563688406261890533003313076241134208643922656377650905932991454785901257060784613677882880735972006131983550384634414585266608688638832010727874473675710319946096380252823709406913780354179903114683091922978620633409414890931982482477135565186050313286672350907391509038382184635815326415824848468769893880155595294097339448589049632554171318539077466337000222058892803980017639986497011027867439648810003614826584024259072932526022124471558363703893125372591313602211041262856493634398266675020253664541432534686497661837572166157645635655236361637243187730200799737358822970654873729140925112779980581120277379231677473130563741992609682518557504220475031731243832436565931350633196003171945706727149386489051257429285658158689055812168926928720871668875845567205696294106836130040181510470814105805320911553064468055902413465385294896965542473733124970042924284365347312888407794231604965689603445073629371451494959951001883089263817650413510716515106524296128834743462172092572365375251475318245553156632457286192380263658755319761846655914987711704152337363276978213869886031674187908913825610580183270698582845851255378744293705621140155110967621849253576364009896004041594587789697362576271848166843289949096188779872170178521599810726319951522202901869193734065664499476454209940206598087725319347234734926076760439368701170820913875207888195503810516742282991191962677317472438034375403306765291000715807935552452375652479559878120029585870096415428140749631884614562406191469386250450786557569612824992167934462588127764996165346942599701148124079846479222381651281216593469693829140179456039370754455257646798835124060885738314348191258250893387768376056393794160884619091532249884408642292354726749765656218905614168752765467820710177925857046632782132403235353923730838479398308165409311293314619047381926418469409727338246856487721883037888019320390360361442927641077842663599803252742399610200088493034157263799668251476752663854935537531866609335127047770620063659838151608451359721436644101030206445389302685677534011671124601411928904816755286154683807298169255937262165072538092453027671303060337435634254116386536278674860040449490733634339840236764878358470060769025103152387709333310624195999404610920417692240571945162832958077643811862150200616572912477514604929042504374474868111602476299780137621467537765075379468186139679905932698700437139665088170733361463749794347300406950238820843450456103276758298425196214488126345516418125096856419432157506758580611831406377805999104779955543633830471514208926968974209383228099535569727593391569064472157369270055214296428876866658265919819015580833776486694513135967780484631038873220454373586028350012023537501618801771773675664211897014612390294635297146414093552408583578580922542210969746511598885924776846586016361932121869507916938067988672335574010784905476787702606917626309553926472468978127156688689343990418516474188518706686394645541208388454330349197262030009867381363482272191403855150003678546444017656543240020216008491801205795711615768662013829163875008495092579722161400103584580313963050441491798559594127835096466548774801971788919764721711435093135027789182183134219976654314048053743540225720065595375533669687090250177772548888716864829530916697449852239897951912544703519377694275810632765670902916452472788869507235799904658582099420367877837899359320330377958665387623849966172762653658784924750691822619136971134656366609328104445541937228979711735902928715306728097246293813709409368092808672406322291760627729853235432993116194142517291381569272056804327917739588492700103211105189470642069174834235112281337955594574252483029506750249014029504979063246302506490354596699141237437917030462805726199561238787594980711681562664654348730122518693091759288950560753938520159242804360830804751519074685830729408202772969563364046250477068882571182706010113046735776565730051121376996394412917809792057466486820519958682417198438864239292098186750707560970104207646025640725071962901552064445798644499403819522445027647205815938860362738783566842047570505373004271782200682945900478429637577604135373840082194267835382066173456337933759788190456489754183500529194321231098686389556498373338159460581203429423222395249481466413514703150804746510939675513464255698685591625585094181578424960029339282789282370386910260608189064772623824841255439343646745630229093265897133302349062315809264183722670930442496221896576959086604762858441460930719533605966679319287462987389161833945361889823785602002821978488822808163148305333996817259009667237263609739272290523959788658865751364830208546347055345704664565182917606709198189412093992025381424198364387980463784186086859963765148683212115051156494649212847023162945985884674893088638749125506441007903375157998937210297912142583889294507069990100451050923726042811796796847805137527223338867531765320170056817861155492528391560345477797633903082957627626478152122197031722762718791452006346064019103661603224439124471487257801949569004300081666895280239484749123497932373864141241502152514532696600380104311061465534704799434979328911906110776703529277267249572347257624542455901734209485613105813200120961935601045077520845872597459775659097168121540400690259927249985367336600648304679612846708768553227569570598310979786115704704403327396018144293697768748770745806963628080531184223834026907146948379341555788429662593160903270150221753664627527999298671456148653505995796120086734891095812031757037877705524656681884227451773706887602866821552274298567106813509321273099276010895220348779394972614531481422994531256565277525628149758237479035891597829864885600473375465636483655133643733038960902777292708188907900979833684816818650666494099921114789207177622630075030919931730230460448580571114710967408522602122235490826698402181562698764746937298484593432364034471121159505106313686357092111327103139294978946748544825105191786899024913157622371101123874431670250059196758699953459456406496156363961438562311296484945980156487447207212342823455243706675379274462145859132935603798463906438645533066173230043811341147679339333016779313786061408807610306385747323559741714455706892971057549177155130834413225069187571219844146049927009007432225729907703639036346704576356008334261193610049936829436817523817364066472582834003458726650213463715244041569277851204966345077595927382219387543149241430151784389864683658504438387088374231470008721034019517005024265771181611725929250917539617443040339548870985590983935458036978339385024599681436765459293721099796023176582937694461112765844426380249016258828871603090803831982323121678236397615245578465189470445376776417738673876552736042738078740793773619545021743958102631388044533855095257369155402987925376181527915764439052223905252833533128990393472290556842348539264607201864440632467615524868730256510340113870315789959645995523056668576769866732135978908532711153576844243732646704568269014910813905009810948070415091065233103578743994629752651800767537295318572462115018811721325422622276879341928299469820547626899322076713400030622265287036661008882529113197893703969815100140338407788163691739462337191526968979671742930323543764287471266581941812178315606426771867476486620751191868044962485854066785681922404625550046831340130246839173871352785986596747628896202143851976370152743412762219203687897746408199085307427418774260056915674053062254435082446412602229455582451764482939233605728431777319065073067824460097010076870662326074264073980164541903909197577797899250777801962824586063611319145635878598718214880774472535662335039333974267499464447393562737214094295719248187461476083966800571221922303847797561763437293010581292941016930643000202769395997232090970404094373888746963053383157518446803833999104423208965460895809128797460856776896645420055227005569527111692990292618493279960803436263750552013938415224044142257514521987778540165876834444273320612332972052889690794092300846903985213789709008573567927281194842250452970857893034681385364342315617109453442760153108021649435801344244418850858953179784083773221065330636999834120756722741759652114242370485117002708420896443305497974767720118548001136136696556156367244579941361494471425834519588961448689034644286487668227968728216207897665541738255714602695396743310928096719720305971912191847972908692690013076100180329975847894784890516122258840344261827167486675537439621828395564535965861549118598983180014233490293828171428415621012965528733750940182793467721350404537537545054478893494887827707234151139359392825335517900001550558912100375986958559782045855898216260230455772900733956059571861208025114344634934165598941205902354942193735722065029244293619848853687607248395273884473529499088443453085651281293085259956505557686983828783662958233140112700590868120765442539585012376676694393099090273180701852481085131731781869122590627507288547119155659530495392410106050793639942426527538414097336677698444690944727113232297994190115400004473505763289936029218237038248730172835601699270334147269349087864173238497670687454228116910888518972394010776648763128310195575382800513025923775845440658723465175364130484357546338447950464536759447919515213683141960068497624901923787677717473486840808424983258655985977112604756174737410608286880655371364864982430582819702711181295856373759243840388225378795840350472201476141574225785498751491046942148836899744397127576780900951392006539429613178195114895372314467242527545932423400749990238806000359902272262216909035962006796675734563922483067863852923648184173400526896567790271793479943460576681734096594809242911777392395035935119566347710240492036357723889054640689999985363199269553276864217642322984721260327270962550545783178496321801594749576709965404971102058239159592136025633535826599483115497060385119320693386903327761149288421694695054588236257496556890850489625383632883033656798828738390173830204098900561391797146039110233519559780079408233298161985268002340842692460357853923055204556314481770656953246884495784294105180473840670997154185449266266312046336001805274629417937911716337711543274520307228292662540419162543488434213189743412007205662541182698184397586576618876346259205845466784948255631544086857552927897809641398092556373772651039449113130440229214881776684660713485299034106005136034707527911513562511753713263426051717822762716246928264873003155858062618823805820567617261301545742857865504920663023734476427477741894614867919348508306191846882391265035997588351875288436814716192126869303844066842392183742638261207827809808677184344237555881629585848054152166658161227839658127525105968702923714996610586940717122159896430760702990955140905821778818369752730288523985578894086679621393431705131413067743492783074901445918365247336032541377708926164573174586042897296562872125373831267732265852620619557692510802950285297007999021017888737642272702216976287317603532209380105862031704118395231301816208367638792282154400015843530243092384929133969333857598940552780747387444271941203706727859380500061698102506364521380372995405448640176230354728567476812339491459260153457989038805727631421377973017571306376895506250739288029951146297345325592526101387201923974249928992959173801852945728162963082925397817587910298942463714096228206394298158624808829924721207920066370604103420918638531857539141716152432734078077213758611291659305516139161650664453174021977943099754006837742531419332504104555571704134551773594033955771805763635258961086425806304797121014787203469979156407598502926168494622702949996386106665011886128259077184623352753873140918976832833454602359183230213114432253360987220197484738220324730572640346985977830774130584641575560682759664113967608743007961733199941353280035506990219758303154312721135188372014845977293229223931810490464727938652746257254012109851641101765200749763616063554071658984259083700108935780505662001768084641007130345648302169541891222045425206557511347291015184203567247128320040793268547096856399168838615356008574329917443916293511972219048077886343514335856787142194642578058985396045292416056627637132958943407259314702689880022854233700800435652501194811840169152245639391983384023290844707243044279893900379626631866515530001290221736435605548927137613039890892399075180209028109372763627970709727892318131909732888773326570366712151920361964412826026480017595827902877255938512961874230599087455262989506519091285031664223858828925064749325219464290260636939816397921890870779037585423611040379765578393061679323486884581548250853526621762294397622685664237758310079789509952329796696106530441543113902505708394298242279124602936399324746056748595088275100067133395133480734418001822912484848561353947032412348027947767764732716819111228252699863137345955311085878062729654660532761675114844182145392090686701684615502644476255096130544254908790776539302941782770687925638248763629476540709309765038709645750128993130783045236588116066509845370467476982856301133909633012437982458647244037549011226670898819227766095746168453713212173659709792356793230190584764491648483422381104568302701133340677864431762348977220609545103564382888831415601359547882326535093129546754724278502829341517445015338332258352654761612076591843592162617944883413288867140331495665969699795482225881500968083531312897100156620544281210316884463287743572984603909784390149423304970121979671523493711799060023274607132624183908443436581208911683857738349354274279303604054133579170066616626014645844185589634174791820184695671380748658285537656749122397520744060946352721193020288151486964090233678689201199531234231823445432594403834783670362505501245709222760401174877518386140017913976999173447333933735712878179934726032164399346755022928053910251407152036488472876489661199669094959543051577143064991140518383613001812796840700425991908092766465756668107905189831669795477403291023347622015710659168611856393697950951186244023350327524374960531183247707198660578310413488722977796635278731630726071708392284861995785192006810283481949376814609304967684578626849163786588394758458583021807089306369717128378119690162354772673012851506794276331124781529405601716634803434554115998718407596985723809318560353454446781760591984139595809532061607583328300755096526078149347208787735321884255459163154731744095131871915654136126504648285511224530920704876555120447498743878160360570960189171487060501649634235927836589930065521902684061580724294678189249546066517593387957196179751140779147913826958458403876099665983385226224375706700270207436995435636395984242148432081596620221045951802591369265292031510702893215473567708535995180289718430267916978764459058983654836956450682850101904623874430113290333728008087307904878682787504913356948790512157504512235090324063543717591585676908613070484286942274633138918461688699720182754425259244031623125820451639874652462769867314383720875015249240383586633884150609748091444372484141107202609441552955057343320609176417033845824061997112477977652506715719177454532124956586612037958065353439499866886379183843415979201456260473632202233094066326137621879249803488186458176139797768247033772506360007856245108444830058137788047965414515788940626203713181292809738501317847677018622569598695424470101848699671834459838801780389552505176583066537211744740531631339873721213617852657207998104063889636324092380472139970257232139362923644731784987646655294237702433562098303820209061426122448491926131107796287787921899523910453406062186681520832547687674678658038006979669715332782342180889623841603700507981416866467469219505764168067120019729736603452331464212736673255269394439870310591282052251140539593963544606749799078733748733509118472705194713503951933321476545912929880684616016984924964698136971489907492307907364360048650681001903454124060906967250431563046785507674853635458493400108320916888357217463745031722090871776224242483052948294976662821033298318926168723997588563370967868959595235012934569948648765789492387454167418000165732772534498945168594146894222641295720670478728216521824205084244136459525538187424926659511503039942716083629995180469743820121125210107429671814807710666210087410115862102376542381754120302781085875063638172270348831166657507788674300386301659067852589589379505151304396894750149382607930764727901053387287076867013776712997286424549200738905912021691071665558912728660112506418118081023455982810593284965980379392887954866512127829602279044942947315323918782610206781379713897327784753863474538836971260179817622170708598872943085970727709255391769201271271883306707936224223880868964949488411059219256401541727126565409019932907166183814624197325636890953037345019052225791542226222881127800618470201682258672920222967068907972623076722458195475580798342440761706049953734175842981129502923460330475244778498310601211026690691756989795739222323873951348721744559961747847940325712878447060990395061716410604658794977338280608438963399815230957640855881261983495529480697111195597474096898775009303869495676178211275617179967814264042067613322381281019663730677187370774079236657584748347605721907959705482114266704470817789194638369766382976949604235598060253090468658913043292918570808583705444772203957614516322173048190779583060052985566708276386289735256560799447552672815052110339855553146011849760391916432382876007039905901589934049544547078710769159458980931001607050486952677876666994822824053307251023388937218052749535287374417041925391589666780190052746952293236175817611743864489906660162077133534364838870304456541656509604141317740862431894756270742422683525479178821994317382501379852029872295289026069859948311606994598377401494074043813618524897848715545772941471505998664758253295838254204597400356391690526057498692853996600016926199978096425089874275304912649228951820124997853717776341426548870860772467838259434466645724125865161412091065701828415934734147255440006310327717450909221447126531039563178107505787155366397931899542069217584961556302521172419704213357332834381409921601104578275528292754900605584428292551719100033720794561992956463314140572362798840136890406668747096745227434141057691862796766372283723776650922964858961497317197772273914204317604177697307939043413143834249250064013045335231177158690020061115320382914161030743689205581651313530587437960993513010296849934498516445937866994068670477482050000641089451174475598735952070880591622096160881103273283558749008580532850789793910320233878296805792004187973065510274163269885633407151194980376346835493339418518175461209721003950355606200724311519670540578505855963017905895356698958711293010260554758043600221819373922673978782511659752341466313447645258998777609118000866731253252427759250382559157936978830536792784223488948335626454374540874655382419505047980329417245942871240015377329831095198631473356835316442875074034827870979371614931435234099306970140286604503240876230086264804121277558572769313728898121413466283846874297801750657047862910820969620335289729206375089620832187625215270881995698422983530893829614171887618800759018337615126724695966497390736472044815863008527197086591912355825261098801964542576907508302360590279708335456669675204621517473171882991038981304130746066977042332433592173624269807159754240870326811206870540664447771945198180034518809865073329409098794817447073466536279453446055989792900772226708977529147026625177378154205558849175344632738973357967025873461523324335946818977670222478417450114447668188120216208712248414420561093289352128079719452921822401456272544645996860150088500646238681952718142676391252247343643830551207196591931667833331460874041499481211003000521182866327156554779529722864715158101117461968220839523302402600406411788889423540283308271277863504788080960945235045901270003178272694870157029465808569768599819275675941521846925951307773249456421351581207847063099094529074372188684748781403102717726387814330194613460424660690358565263662741080491927590486019812617788831710178285472890241250588327137813796723114206164256647781125928763360118820186952116164490206040240368776233062996592346514740764774666299076694796023439611211968313362676259187423744349130943732715387409511174975112609021810153350482841183530978030464959534198762032703241370807744172912689064055602423226036515688009462016817326627640938324427558691061426154533617700964735071852325994310925576592337197468221033719549983137072558845593059133235242304912822944562731901081277195465184036082137813800830483452088700654138296962528452169827902740385944638386044380197235454512516237846414112069921052314590400318912310271137264577850443680307040187449812055791636525031418835335830726967147241663446516387260989658517811952439224572827153956473643019339162400761836360085156220132163986147958388269572997569102185703964116789077259075170302012178308550413073803006933434889738300262540263609050068523223421392626196566756219152680250066186194802516801609145791580156657613595361244047268434406960991274133521637796578156477785126275987704370421757563010393180175247086940267454541806922874719773674939750004972534415894387861353261607445005826883605827440214271616976904599505648572407751453529301396944107465227124286633552248615068766127240715437030699550683590578502374522128686552460963907692465917831951426022122875490207453515408540289897139294587038275186327472677072002959524932469341556184739189969568246246769418162525142041089105529795560142275347215093971952490067445832423486151089810129772437230807118107691241849713702376012208536953771244410104771378566004530590201245187725921146266073427915777640925595240182431424451378323774723103444981646595172282890638699664037711209980161924842453698672233317977483157452107303543456680434710527703793897184742765067469871079526296062830222960385595777083460266664850049628072417077037370837302200601517962776508805148112032691074246746657618305907173285815763041117574025648959193977361022473906295049163443897625415929991397774685748074082213763031706269828897868177987709603887653746180170369863248473643732549662399080083998868445138911899274698108085407431260716713149710193709442273706890556376050559288840057203048692717026071320182080183860868841056185104294470931324967738076609772747361374739335936643488305906362622558839880073618112163114527881401416928538266336403371727584697480260854079653762416950468733361742183362103819969262197939918350415540629791870639950754406943031643108735376249271525103968287408139818765318845974879660359638440912190418974139128009038899164283650776943227884517682723004288570181648293621739214227379367253168633727707123035509647593908658622028608520119918529269218833216203194759257121395106288417710041926112273358097579107331735255180064525169569419953468997299251066304414024273721290301718631006089863933461167807655770199606022585511324263945465857111046081106466548907020418710554278357482295593407375169409171205601620809089718413489162507485709474104680140435851177142393296111340318937086179633063375443043277663427001644394801925642150082212343787543190894461357258874959275103336911166416126455473596037278585088828022345727317986298596216473157967547743950391320308497710492535561525298552903525775306911560483298167673484705493396073868170041987383936536081846586761121853588745252454103253324513311409624605614175027630809973491619392150305896971974873489564924738750090792922710599712994508552634402860282835492106234672301304677534410879633358310483458967025088900964954505122555775136572668441677090791445209061793279895085294054865220412098485710405067613408111939471896304174317954209649705045639847464556913680015574009625815065992170864169147198761074881509363169144572150115379378831239977787104881084624820204475049218351382025008394560089522294157122700498367149075968895687034049534047366005177020213002615314525973019268080993765412328707373030550993405811694417401867979920958706421012178532119045980768406921714580080458369947067753989127671624589769529278670155392570409195110242246870627190089691412995024137196209356607455146108831170534329559009484903254202794835408859935543119102713034138023232614065873103542017706952433336436370608454197430652210788786509957978524934638643488537195258037721209258701079653557926177390365443994436591431857339348423591432351383469425423895273862230878148388105260758264631412662699346657114753601373827155668079673897621400172741556484990830512216103333801928415855518840789109306116373412665782618824612726149665694970973763795452148682657126641999830134232554166701192223325515943030832005983684968925125000218928571003908439744506902013045370528559836328593620496352800509596671282569349082006167301988964381464109977492335970053468189224176837564438793934453885953710313988087799812250849362927301540031067857598708087535740701364972131741048373630606420626037201914744780754293044122705440181830122314979495392784139481959547470283192277665539005202199448117841774858111435894956036549414708511569739783830936218817323901186287269530401494698927272478688690664244940388849610609609814778316389656265970005886758299540992874639347619403186288532399578535698508889981469817861084838975601567664078701870469905258430509586064858047309463446069494933079527956265450555759865977545623477023710601805476232422419107980856085774894942230504817616150006764772713171653447748667958420914912380136685495461495250421975352860149578921302966388081481516661385024325026886460196835606840473228373016321616957076026353183814486554065386390492436039088883595845190904936907213457894869718812168693716775719883097727233705782935484012795470610805390701706893280891669163319259049698451979637865719547831657132264150740093171344779602198875982636514450550255509837762509002242611435389323881079880483518057620356910378872266635707457856226492766578272010772233523746688775393364881472126092243645295603328574970680921822417219595139499013097356829441716295937789840704213316786185012962851262577823390004206751726032932374522089814087299359336012547307173051342130711418439614570179038677001378154124862909849513264698372616519974198214717288711942910939773729420263231916902060495355476760988965328454371417867432241747176793643434791581002925580860347731519092078880378535741095475008215812087278318538961237884220486693860207354986526497620396555468619375579045038840989127520578065702030536027554985717701772457999841835880026912087947379248143731352321840664684731096882875417064458099669062935983430187074066465685822294854196242131148247345419453960716758049505178683120374533970330576103938547155790118294558374304414932125564345712388880081040798430971049334444969884350233957623326204295272611418477629579268815150672666891778718395417604760390551342860749148115048670560211026922227378985416664099418527980028974822347037644336049627755728764075090869643000334266166662027805054496694885443624907659582413583448223748255325064617442522906604805968077187105532095966156228127222418851436580451216922641752868631671128381560020218471037390665121007310773315900538705552642716561510693113171845604515151312029683789195741074865462665769994056704262178919258166245077280174631499040889194909428131376381516868695179665877689906596669231062130148410129598639137962241265787293515604740050647708214712796957901355133335827423750568563334363227816592559835547652192791845708298882399581300672035301867490027128793615804651791380250222532758607035940119087984192438267048728042505010530103011703662744659758475420737060479648755220305193577415200081273925374680884578399821557509961301674667837878019244918844925848299365740663636653146313997775454955542187752104783885526950873290501011133955357305138666319954220954569326723754144946111656546019019969817738446087159733446692893021401211885480406476128145943764654975428674605887636052104584209987192684704653487949667124111445134476996091423801000163354298262887509607111233802612716781313096313042343319303639084512761228114058412844094738073988412822138353184875064829864157887337175625165291335939832064367788915616601434447553098057374373435525794876046089897909040216640154161112045508696042598327543031902267019793703138719155931365149107490310784908739968292349929189629069462609998915472724139140687466310426156798882270309810388923588651540358793801129567526584216286052232338672953311884758600502709393909969552261084445673231404433962087788855237390278127174085516729448735475667512257469842418508116840357084257265442433546923348155978964766112849194339915900448655167447594152306170340469504901777542570503966557484533212837305098476953872711628611495445180154575531211805940343220035395214648918197470152674838740971257137352674116409119309177260211100177679039820690119781302751779938358867465299126900586816534829929848483013664687145917406648192234820094299607315347102500972520021356999141499264847297481038758381304641556813968565074230675166376111695867397253879810874879367396469314647224381107540444648665973363184781371473638932141328134358173705022199576203561585347521355496098430939610283417298010840065687956056581200339940704706041964342598480468690586817246842315721606697325109331557015637640185665984013072570049874790959871183983137069414542088010086004145973092704120787600680944657426520705517815782704663691555925527083659176704839117017344919287845122283305637108090667458992138006932719864071701383246280352433467025233850220525305983740688777096154188383349092817188650461023274118177547504343084099202952839712646697418018520765399918477297672123811577185879170845325586958151792814791890990019319013828215660803697794470699736185707565483472045458065189600973032641183541668636060178191478668681678455840665364061876473367842027271904935638757011534036240945771530140145754138840744527439520593629470742911162288737086570842584454340072067429408378112979608152926681017500839065880483413211634838413782784510227806543106098625346354449270394399210951968072608230938240939472757123830167834363623952921916807811049134856962138824728158332297672468465038834779358733688224728949657837611513593446129746621491457440899044506611318577083324794303931514720664136279136231219554705075690165729633572491377511096028778818247772665535055318649388348210377669088140800044963389900766747260521633359591533164008875807789593697279338573414773971142930758189960224309762553828659794163626769483176014843242613851222530178757337283698274886366379463467105874433271580647976642736825753081639285212697702932262054603225345061115175582211849692734331914919503143487867095293880665309327109667601967792769788847717243862158980274503163500934815088852581978374497495290005790135796245824366694388405856215732938300870935173898745114569408141749190639545273229852526585155206337875672229468870635216042229646464683985255045030811298421011472711142496055042018599717880329234133313537791766146936632015910871745447139004401039199574093415488679222083171000009636831529661948918980881948368481891396803377306654508130794247908425618478750275176821487051305663926647743624732836243114455398485084855977424138200644841820036525706000451286908631469832291754240061264873232967948817110195039913216052568472900194043012058316548420523150011828829880154052994561782607556392322476863272559808941537888977117260431056784841958677296719778743955206426283105462299779894963526704209456117372771439759490767809500682039327761143246155244817747070728420128200563414304560749564071826800744055665952422154270213309640046056791380621938908401451815286373935899452227479057880884026724677056535033084259730310547103565048409397577407078731637058290069459426930792868259188521557155278318609464952478059977774985704366239932633023711402263149080740841703306075903272580858540805588686676497869476183560209996339971410534001820934246936072483846443858737183137366613614255498657589327705855313206097874746595136680393068040172563162685245447117662218260741149093562874335669771190012561994424983271296281976265122114253370909025351064365170062154561039274755668262201204648722057970552101789585796862915424529694973729361024667431258164947407001623676346616126358678793088737329372698776530702524422645520931801039303216795070744961332791604488903110924940059933907934591713132017848881815554187783393667906744966330110265271401178449736867659783357392113720014484410400423678567052697198173306355088623146260065494606224493551157373021202368771244341211190177577046793190053180308268053848796667147817147852354503935369614513925606896614794080155804787824387388973882942366064963671388337275546328957535513959265242250466121226772846534560438998881330011648873285694450134489800805043465075927741341233188582297531714797816040007213239744345803663824048748466453043429605199967189490996778946537362183520414822130568007873488743546960859353733976181892882282700417357753049385723767165566137312460252058109346199611056957421933973105793683442016313418173297377373552789074842784651405285669594331952428584683189543709239409404049586174758908604340722490190785657866068131203953626003680992253652595243940679828924091414070892267072313695734871254773850052121607517412957835767014515074249741901048547255744279679255960982574943847732280170927064017516197961280195402817589375575140091166190979351070971718276558368961222397636403387162403676500660093717827195059062146078642659150418410032338260352690291593649407224554341692109222526512485649419306995453342026238611470769019678346243275733151885700811659932757843707216268349898435593180484224797140601438373513886021404800892224730611899922828923402599619716986105373319953880762128634652194714231579610833424919151424970153306927208779190724859917143234649435586946453229965486359145364453649236957939119505338262084619278025295113605910959399606851072992704950911042323858608681681010829160436877672111555104762669005243048716987929197593801833833781084961841775587978198833255765532617655689868535999355552450881094223769552691753664108749878102013817228904543578734028937112075773797077951934049572852199706421953937872853789452017976854250843054484654502551437152375331256033412168060532599573699777008452126762442753199282159529500434773654180599707924925828305694173924065881304639118191642420766481124072344551896663978659818186078559014970083927682552628948943096452912342325140868509085438673144062492547076016531890968714585976500432256908733162896285846987833790336340675648011285383026599769593044789249322236034085914774375128593976518912004881245012963845698357566419515287402389745348834226171788437336263108550893552516666163918333435861927486800501446024004722878637400670439122017561464974472517310144641477023103327346139893874421537148470886510248950839419321873847696738554918430129984190926382026242677175002608533957864023226768516258732436917303256993144741626303528060649504737821428198166830801668173876307913786447844012152954837467474139764746739964633373100566195702603138477190045260622168412823015461466261485989833829503670550646048423477203994857503780728191598338889958688722977052143130199802031100255457684773176770014363787607743714435024398147865476974704523919256990080375132109427255486978148669814213786311512402736709082763015949483954209367386746135115499002181377853544707970576046858576118865828338501419783187576735961050589190594375249619581865049731878996758142575713079929238255338182316908333998791984608585132723351236218692146717557113618655625539757643466658453955732445486212290778832515208992030440119219210960092088176015215184780538405218902471636593210719784825859415362775588846636504332704813539411503613024777675454996180329954755834500633843457187327959871710660962622155129817846205873356355164692083552863186997728388670878154638470134482406536231676669361395093506139769476152550992000586954509234209705149262703784417221299341790193161699194410810636824200080403950631256956233047590606322146040592720672972495208228342556283389881815974888913217778711235717895673049305131087309098094542241322598700055894674215973443904430445051363941558299876816328137846763682003179483867601613050427265424660878629762858219258738940883719653866831024165164736236050920498434205202964564294646878490113281804407205567783931650749671272336778218964305671248084991411515412037361950672399504853525711232337890561912585262821929989598700376259807642047722847891753125994833692110155912914400267129168149180692262498399383238335714053866592693712556550905821347523554719563835505133675657095650239717370219858356646699754044002934098727205257990069664115776221141152670245338887481403051570498503731559475539870848199106172352878277080540436157432815826422735545078637328099304066923749998388006292353177002958048690122334050816879107382467747708763811115262367255041766964612839449566271121538246361028894403721259651735657546382496021840575063623504364496312203426100027891725104026114451710245334962562614406732967207858974471442142295017925493212231974584126428460398677498114231768204033200546642948303897899466764381180127353870822985834543577463631859769019140028033378497000625321374123102552941587260595587165834103548377546761120436982905834709896490614793020343958022401417809369323443916957922892081617713702545855699754400906651088917933101911782334403273440821183501147599026132329196698819273066873452399616847930589228822817752344070683427631409787632200972526548745230362971042811885842682809121847640831088937617963051055760719577451822964962655000043070513285621499789186731626281827322121227015370527241523243463103095631268243256538776416806952291839238240394566838504145254795137381996017762773264383699788846292038279967796609766429426363462477475070696404400661239522740879579474522162777703072414548732168318339041921031236309106891939623969339550980898721304899641901605956410531799108459736450644555423084243700855106998467624181776908920843507757693782672780781789916445550582651573840409799534502405704007872469602404138124941328154189902991067872861487692134843401064623865315526450765673314500076299399736252366243562096442103903105244257124164423365650345056963547709933470620947892370823207598794442340435641751825226994327538168937611765023072141524459796122496516826003585636040447488978020815091556446985206756465898470042493250332813200736904352482427058855840454845841167879901940015735129756894039149903439726012415683366669066108986351383467588285982407150282189879848558850193224376040019303090310468369596409030003259415037701832412856729303606694640712790783033620337665573241916669386183355765409421691726090863993464568069555072691941108053315308457872199537666427002013694658305911755908792708570831668919970649789784205586393875532410363283972777318346245911344108499512468337946828321089266511511677840354032673910757502547778996968935356349950042530303424459111967248980200082766360969539203286428841863132380908844093808434719945833975668049982774318867402825083525105061634483351338460011882123778549841663042135571115700122849118522671414651362716604703312492824913341951698902001980798207117313494764203905095180432955721035263049472993329251645938361117894382788219443007281727637980012252724399653091147751236142187671649662093767828570076875877503717417039356149718402527643653135110895407172237963483766863599233696454719166231960090554894262074297932306670593089629465934970735916824860355549236805603652284291571741655104815119990487959199553982501282572869703946839262699803635279628261520027059609719887761125096996781660771427536905468992577514718120237846619685446777773028370238161006601092206987706671182090737134093837813161219084569338687337024657327762259338271556827441584295981941401155109742097684910095772414220535489604566896520061855213165825975593385627952417640903575074177618941162217426316952085311480083388033428192071505385542950810729948868581534447001626157460686907739526216583808151274821709440687373589575339466766747415896255588497868202964612865331107453691957172091893114557723177071926906125045388663065259542137839477952480772860020830701867079454087380288388396872145060288907060066162145421003771753727034649668395958531324434087116942162909811534688068310676813276053723358138709925515623098344031542202907754001300941318616728834634121752994128258214045444414029459343822230299119644028014589141096683625075952484154711393330267899100981150016057297644211309018948360818499130623482420408296610689161373111035659393908252738115103786263425575963706293327869172284849388739224458547608055077259624170395217224239067987257068563684985034329145810110360852389140413234449517683050637856111479324570457507059355173301217762115403132630450654504013041436350603000836341207287794343504152118776467271589452533104361233648722923580359971695666139209539062352356387104818103946569053952768724387603099469694333748390173279400375569556123362023294309956866734877788691398305380188129456674517592398768164696756733323712416818484064307613119168867084271736743327770260327863239849006819179563861181933962926500857426124274201784572782102302061636208484777064945809281230235176590224998371649576449050807609508042277059065380810951073154522790677210471058297480168900402088062917265853315582760193411297852593128625919592681104805960012450995106325129137337067462652025886925005433083122846187077223020209873651693448118807304342020504697391433845520795071810188680072574338938478325081039615028643178811999013014959566431365216991724745300812856445102742419605987206756171290957922594656346720586155173565275898359894111704388351840204653446175175795260102340883395182080130419133341463715683470106684221962759493467832966985825839132732364618019235460357233657431816069844248515163686823321587773317238517870391269722233473477301478845721876413672327300019864931700869054637062003694367939721421022610571477006393218059279424696903374625274672462197904625569906566391031416949145546761954559594154158487228474583613257927338207294974634889627872325617893159149028428939104155839564191438257212213599020614174480959699562458816254137705883885464118773760846599515683374622567943553399226827803459946580684229124416059641146763860459717110408581250272561989322855280493036122059865999540254371711401393408025058195155345322318612442144715249527700203371612848247723149553329941086555068905561026724104857768711072313753538928268193568986156591233906756133470522810031544855957691179936263025977317698101324855544169583303743176660166572607612517116301535731976255190021945723218659806441794254965941512554531601059652714806971737915725327143369369131752876679965380497476388717283878401466449770575898351513956003966972308338908646554082567197932284344027877672335886207128175606996229400761504789540794193387431411139561122017151259905009881685106084976471351618089816713944117333998075532728008597330863076578922055999609740169338497803926912789111391613500371522607947591954807400178522081872251226403929351249880288120983637439659786482103890850242252657219214512901044806660687172894504046839520900330440898440540933618718812059236724405948785121352850963812853800529679826491954766348239918796895711518669567290933423139629674074950649614553183760457568092584540518936642202779135303360221133587027433222177121877766454714209961810013037518500500894150449256794178374266136590401768205919221136049259340122216646398590370884202054738954236328468232240075423884397719066060561876322066407964364354971430054405307318365557429987362266423257363013885972388545506655752322107299611101282156696111539520716507316964652128782945877933216599739469531727599044156904678102411259492899619387641634016514568833033740672664094974528465664751182480575778974916967724910843679654602943782394460835721075492562102501747100966581984981986300036110099504397508457547632165230854029099915248189727018402609014744214892921980274314176727812112947297249744177585237667925490523931622944445014474638203656626748411843662925080091586753332048017108959681550978233932520079854954764260776529282246497204811896524251486839181416153912096022251946749769477376751182109067462433277118637645153970897477294330877013055313620928728044817760672603297498857612669557921110899720931965525986326832187806923984507947446981598831336769009603257362130772589535704557301396900879375282897740789579237218426505270116314893508294656127561703331073941546612920791184145590805667649469447713704510485018104092154552285605903327754790136898309010704050502419639533068968143285948888699020340467636353576166585802202289276179249279179142609114147102113564849650090068204922272885996095893104288142630714761199466535828161070224094418394757003542624984569249168187566552689833167958146737479816937180113528238133041876126197006360201672512607475679845498018358903380439078034553223323144391987861217556214658034826217626085550717840263128212783523995588815472634854169693891126269507688366615894319661822721820923941983327262573826859357705263977751538129743008329446602344770087391582083737686293114528862674000289455827271726011719905622480266006496431728420166962542411200225248373832314356052551385699397851863089133596490962436728597675817828713372403190059696423975419745781525403943295396910418601590565128826848174255453220478577988988381057040979146381021541800875220813304408783763485412003734436876602675460645351266610199374329903282345518465027423097779352248505075620133105607936347096482037688207839388580583440636061055331394857962520705751852677166538469671078666585487159718254040976704600847428864319249118674865922805441310516024974464020335114041382859418515240549704588322056504981143797029335970532304367790366675740817771015529290283327978416637504430015084078935801467662400239047126071163976754729789761057108078950200964877935132170014760253870626999424038120548895125804775097133561457846611816272675795688188025670762433797203016395183872997473121792750231332647476963535409364518880705837225825612951119877692826584485031453282432620678597695458732900080367872713683786688550331380095932231255598899153202926678964278122661581033509920743256400210872276535460527999649179023312965826562900735446952711865418095369284635741091286243340526436581885464554679713154535312433108935097836778560566660275121715882133622989642935683346057410574117041632078556766712630681388229764703554107909112694302032152297716437177733641796664691795779839350846579711288246882360518485281485764446483577026911803764404550243246357229091070513734838524641053661161991244851096357547082551052558862057809758037111488545475299688600636433269201213728766375286127073280570645097294658391704066452333901328570095423478724033809018532735333281067876536562205488203064357018234670734436401011387422777296501413665301071051099913051281733389801653219786837760795735672864399064002785008587737090672947584042288636081438634453387479985249758138524661754471393496599774050433264882096380137046013736914749851234469110697239069642310014613990554354161184935253727498617291797135554501911705917725797402288137781998298945790362303625602677292940135475391591260677113130983776089719900458948700510884474475595708128368871703911133379441590221999843108395485214383925410707485517009855812843144911673697505213883143984088903405880860959633599741075648378673965105288969844422757178246285051282351928542017405609182094543599928446184394671614709428987304493645112084256896673429598083856912300149673937330899692912248153471100660135881317477262837328389709587215090570617599186153222557247401101187656915367416728237515858361919913954937948094139052538663530490854639489661957572573354439333614408961706022523704602585817445677730847032070965306942286661658857729763852101110974615534769202896834412025468157278166338261434864866453936599291475531248165154666041428312381920550865038321203868024805451955417538039253508014722362133012995121813356517281948923486608004348193106828244539796075841704834742713156718514637641416317084197031461782177318309862588791098873035713190920089335842059166374425734564800983378970268702076221778170832562049396874738635962953101155708446162308547212486447795041139530355025149421394130850802877116034149213810661895839800093793043695558175848689945567069551439865359744720949725166399220295129874277892526461676898212392682471649549538392150465341682665695263048182294758767420759222164726187701363247617814958263093373274785916084727492414219974986635689237386328907448633448006169565650629491507574121900584283775925878690174936963179448754356512821016572683404818044722633352420308291307745962102720289711025374699418144755406530983320461704499984605576056348392989982648377524831179843880974748849205794947624036756459578780933659055149258999821426356329620971050754196944682490051182843329393056060883676628501699901474463379676345287873687974877853428889979381630017341199445352924041408134591591063762759721868006675330069663394460296443591883038774492877132211307124216035541163368198158342828111882646028138634224599870984491944687646611798303466644288033107456431560181375595999568798602542316249989814036455756965856363170652875936660593420658468175488198058537270310322035562827395714079840196937982146709821885031922814868957431069791203217965585156790757840884267069717155200060986139880058605021501281361199307290099974090665066997826196937706764978439525626853379611684982629639782413294447393459054612019176394367646343829040653879045001536312299592043581754900135646489133518535722567154133296011946125475517754374286924833285375555816703698559376639521339325145091387800250991377177464794540409481139736578232054373415584420287432498685708012318444560423609168352496580059880283030065571041451134676935770819750095115558212087606063201320323507454780902086980939371608354593676380402805563510267780976621322243444505652537206929354827738467998158666373367630989566922844692342572242687291155290457793428703272629380466382898225171242689578278739615180679378824751472847334336627471674249219593775253176842950314343014429585112737886844200909886132007775825697788919007488229693992822031135766882204731199299343340547150719110359261118691706842276547879094998156567008777459387416246951325796656998512991074857560103948017155102176255069107627256701128070066488736950543394072859635153615274104334558123504669599174602732492060975439593650253775505418678913326393249110357975846188109612124188630429621342455695948321816319831616726636769429453514859358205172031569507901177726359537248823209813004136320634365852825600337332159115462597110275984191777008404009582778360402267502975247959316963354091924635279706287601398780258826392977950207903810464892317379437078581905476946546281885823191305236833626547971528713998287218155531578600201796761862179740082845699139760443804095761493423598078627640876650408027479705595494824001441824286717341812156438470917659991551668655926802761386200970020764626909474584181244987431673004777295368483424331462734413107798480432433452408252543365740404941021813049868756793800988323786427650097982096169433020187167565039510606230445273782296807242526402602319559964654482706778107015888604091475804955625268644828530812598096482010656780910257286197070160180089890137753390857186630248285602562835318148389096286117480371371047142727953637660010094446736390119269874383672369715906102304450187727500031783551861370720649063695683074733073813238458929606116140823623194264585661069893331175759284235498082974104029436406191467347742250749251133577538283218513508300190130397613944609950426683174467035519799554176422062226207148492951925153632050047046051947718314912553568452765210425774175289802988404558308732404755302324943274777336521363652493039540571460884252745901969012922830216038082793958627473822448113633732903939927714288968228318568960363945683171754985939050029251878857082567688917809338409109543651839342807273857266583941871212119305287081764208405691446087234138090548590590129344232985632225060733179820582899202345441389372088657110039799736954502844991709538014580699866585312827372437767926981162013233877330907615298126838116061613117034344393098767781691115334563957939030073607910417828334062999940352302215998936713502948163406670545218910890154656271632229671318436931499536049859894514152309062508694660925916128007504000002238241469499620890943231474970149662465015889727206450320226357681218344829761558403928422681136484606125356521880310979200392063886960593379249446666166574330037084286343518447862105555238785317897249944870997678741356607829249522004335095194431210716018932355662118692618224908595202529027765299076403331694971307828710752833947957823582086446400316484634692659624777668370748822339507789402257497446618025694755140557714246013926264171939437932202100815239750127384982259897720096021310175778053967418824027350717206181772863297822587936741245775508594481778304019736599875058511989544948320857939739723957481265097555062474001484807436872392859524555099841954728966201716719612624450070182009963869643993905365837917283266543623676409178639808863993588328892860126684032491499362361732453954650106119166587176358527625389177942583949445006865944255709617968902707185244739423094332385761550001052732230219778827497537838703937674988664128007969146936756427179369116686749558280697336777271119855630407149424737684354762668550945923728357850075590781382482564961760712751531522968783556016260186506753922469416883731225981183308329536884328901085082813911107644425281510962945437548904311233173480051789883803520245380246629442176307927308026027406725317005401352980525063109946447768127969883348036235365036173113356176902701627733040514622436747283207052464819072211319258742317731312856210435536147663175115276532288566787632553644125850624973252524728203350410350919438108869519998621892189388893217168141726179324510331231060342644320538098784830103227364542710740369678403723224391290682343363240413914844061233674681131616177727336971758985602476308850881947032321337378897389188968948216543046268685299595240190079403379021108736924863369850823797588406801996531329321820577288745186681631604049277844042176813411371174737358034251147178708356687185794995252559339004103780697960823350830473534818960914662341150795246796653492527011135970281781271682770696863075273113262499553606894491022582073767703243706959569115961801394329182277285594540589244083991687450035517723819372955132062966141968319937312066580545683075406712561941704930157725933253725209018731811280010843287195024731453878635464486150887088031825051759309814923412950390879148724769882302675279970646404878043960056474010216031252136376880146517405420539210246965576777656109246657501775304307604787670285368682720238617746823563099059727126685029303224541113865805747836962123996161724151571984501710374518875289760835210235390898891553899224274892675309562244205685606593851958532050159870352741957494366018861283196217613690603765396479282639792378365067915381050783844267005974691132289564214609627653974952782546042836615539723657287844066790002621383638978461651617208952436399600713438230801737841857503285206692492960646897167867049621323924008466438337314382920687378106821099638832457456886569618169945124648603677661709474559939613884527488859271818161495886472163114446640086284316839696221017122102217729879631944282703370297027732789702295595200156904493080242691693292769795588929733919525952273891653472398091706912607049405165806733584753172646481957879751079297359421549357881453268779796697465447405882067656802867803171182554262773740989020035475291598336106158947989662484301045399150392053453049961462934148778321947252333572436872749647977672885981954488073380190822669938009225810156012018780424819015644282527077094428798164962929734214023120914958327937536713920915087433963133664027397464970437033356710347374996634367291355648618010295649234220296024298125272614744556904525833311217795386293883204111995599216773654992745422072690152064399060805768300275582036516125455461305630544090278172181168417081973346789865374343175993074952855382953689294483706479473840454354171213277743023961205356103990981632352564349010857650622659316116192352791440985595102269846999380115388172592459109619578392800770844518531399016018403026423184746341147048084016227389467462887066519759320139178438227551520863849273984768845337701809020713067925900367433475904135902800507408965741937886616679554336092800029881291107535023389830396494872915628353314722856915107192200455837400251758898696928393282039811577252425883991031327662370400288155000740710257226827972459294242535038185762742445231889534007041909817997505940930940087863496349780315412962621493318645463371416646939187146260210336668757480042052710370798815999927187681628391854499781225746704623057408967247001064759728341335927720229718227226461099444787274287597721271402852686981330915028709625016512016950138657159168266765033761745233912364055031150200114317514755986423937617026459752783905570947265421392066686890611401817775785833501529099059105627457890502604848825313264253720672760368123617957418789606173682402833155889357330097054174774721530134720200515934674829596666896709241936164005494531069420655887054352538666258007207279986018134483516235053448773815984688778919954678060217638482119717114152136094214666476449509689214468340788591841665272225602107279181977350438490290685253868349758784751327065524186449534305255059926127282064656444976327073264663206666527108722859770232801420203787230783889249502618343826401010628983211936289959688638203920225100628357763424407506703443237077406229339275015700303103470447513516950470471572416728959073728907643515070595163358951968058004818876421466717787970563969091916199379914149331919648872796917520786355492162427089904177414434261770583200788687806286879655703224374706200995584893285953954422421692696087700224835807462802803209510350625838839829411538430967044010748787976082133622503657455246031037465502509941097690556010846471274240476150475553369174522940309046638115357286603049711915621670582289588821089785162325263577522946714275438925087248170423017706142864580964541026971019851714032947751500635190150565190672564486727441142780527249231247484946469208966028705805851229484014722533995328238537757408107161736194387225133080848269106272363391451752167326722264543161582755398750783169030805284005209853544600755070620351285563134726691300176847671635793761110765373321839209387477470685006239510644606894588171816937375029765764011684839732410269181856382508605559519624031167678257154590729286362903883071363736967102046643675558780978675247020007866652209907788550831786550415554814640521419468048442665295382323743846866460845090789678777566149709060556628419495738080332110746059286329874889678546608107503072520193148350312947566674150800409380922434849791210619567700991223365036405967691793151449199575214215050176973336535668063716953398993396113363767741658852640255516521093912623918971960502444681766385009833225652074787194814004437028211844900888768279315078845185837540182691027530469115109870660095224861174523997150138489568607215347552350014399224221363688294656566145792541382631317395877886431523201842629761391479762420717513397438683906500138140686395733741380974678984231725561003574255259668035529855454399747623736954653768826265000743610529745459661003823112259545640400114146571765259377802686938764287948915907729296073842408951284220188262782625336217499260258445762283982598999411797348303184754460772256658291135684405486292280996836761003689561914729263869194967021330165994339445058699770219936561311489039823631657092123237875357417010466732583527845055775431341814363001372504922734108621477782338653223986615800545343199965051071842196770523590678285611582886854149611310471419707303079070475956636478444710708666658866930879674854671671393789575718380863404450269891840696888535791303878603700801325718170318764682393563535945446904106654067103612521990358734439960236943985899347822685591086818515435545388263337189855920322951057394119880308127398290916269369729156087767486357560059458106883551534989361110884691043241707926801891363367163813333297995871700439864075311925512079485654347287973511673249383138384866539013393571644162808282078601237100724687096896372689812410686486441863311890200240142897618348709315002505061854107371228708951221941126921752596870954953937645263801620550086250690873980123565751969270458315419880821924471175539987020087669626503953680757778710123361210289848828410850681698135551608673022352750837035508094464851473145370772950235666920306655881768538398589561120429275409923588528073980637808867891432708923593334165614682826173254884815127205622310646497692081668735270031959842652363126661510845110607728717142480309780844275401055816187392083983501381430911921083867604656140430869339188826676873635924473699314412893319335422178508977552542021748043372906747722057898057192267496807357991523770172484464389156279593147123966394271548221894203438322671774673710903171332519266976450225383945651645905986280297484068688085067559959204094235869757779567378074058195826538680102725230565950428688325016343506493452329049764600759046437475967274760912037677997291817651444743671157394296028843083751778162979030364339472302169929965592616929949541706522715048266396810712024930923991866605814915385617302154314879185624071715895032687045505283840524674460899740395584443272244871515499514466164131758033280891554355511706291440818065570169514374558841996852619204990788648644509796126732261725947558597850137258771953920202710467980767968014926636075105645101912244176822521642641663091554347593813349741795670544880331188714070368333264650456237370546458210119711809730858561972140022866312697262491849836192940570083749078064517538354648308475219216749895594227479099444458283338609521211493297801555273188660370913201394412885547762540270355662445107607562134908972233990897040888366972283615869446752014102947193342344713570464861580708204874582400848662351197061517012988853695102783874715209981318204994095823451338434491055312106173155511300934452441518743621495526144739758314169340219031737267524717374739767516923752822684162875565814974900618436074809385840629991429239760252105693545592851165696160803255329370860603574438692119795312625300302463150920092550295098696966407367657192914139160141203744332076902976565864839123046211027465681720184597778218835161690502644942263500356167259448657967684355185059071540751883784561735810828559176880356184684976832149472870934943386634871008835151563491243787006660970910016438171824012741226788014828437617995832485019794728353449189798762136163676043584177847549549246633280605134921854075595573143547446850865532498828632880886388356666088115855868325154511665601739216079160208685321091697737476267586096902959034781560686124416982231124614930000736361627431931825966451197673967127502100399559104291179451180111631761178481665963831750815566996033876553903550759302991543756928111566687985626091908263562298120072921418959361578409958649107506315848861349515096733202664383195058062526073913597031825843698495903473822924207606349380406269972366082175014097197151127859483117880519437966351409956688404564162954188280551943079518239418825785789426760949277073347151309439308500401027330970714886972139293701076627667640799587266615102883324561695278056254209014720906179989773915800952372763775895627809489145803892545413351833127691620888542973551401858858879901953757950482029780387110828559407776097403106668874934558339901464656648364087884372909391920296562284454029855568616179419238381515952384795050334762232170211447868544171197091171540307586695656975518177444141176697886946015023075670294384278417359529546272396487182303107387203365387175755302053440051461494215378621729189168298832008846825654452263158295038532635209601066083185415540161216216998367164952415886419319823266138279489635207380578211833847629123369304057672801796524988047036530238261079667701141512439029319599506497749463735811000512814275966234327735474427835116259025796415619788357798955463545641879675949712803385110368395711955464209960414697170053451580710713024299174089067869090812859541512148482771391873984104240234173476873416246714237543485224478966571621691997065209717918721847321378924380028849513563729463860140898799190416678737806494327466017171698952202933761449333313910197101420753061491487358192675284134047713103306369870757151738459065725235616725265139311008276410686493957856983851772337977167480494379390132793854702131161968267947230353583399386251908218559883167735303932819661568982694671934744182627051510062059535326516002609608032212461109412118111105004922330796774588067206471067939338875435969114953573375482606814822881894537273492022583084676718866386308756449845092721311687850495658948645792650528087810122939034872729905240521039310161205036861523018312032725851292850491972038865437918549599166556045720316004601184353899185933006226537573741829215326640181755462240180027185731670374081514424799520788317871993394670671944762566989196730477837345407551804238983010382742247707359923930082189150459606933840383062993739173421538247578192319978414496972654493336638754236070698624308383118311998633726680061488287622489260425417808456186133675397572519947846784476476122507725175424503831727579959841798162690445239357358343921508329111858127692536232290979410912501139131445923276563337491236256089039580511559230289613993131795732893924109491293764366010482618593830194230347321550138625136569693480484552231042101318870233613711813122181349106536913947480969228483555146146545180038335369770469881926864871802829387715672959030108617129846491068250902927669096625626109208976730681907934738565451264964258825231534531258414965166354355917842853718012892025232565990304332769632706142434049856077407657116315488169339968014857629661878861338165958967366582797832749612333810944127566096535212670046582174259512849294435201385505950629056512521736930763390416580361330221566778364502143661981162940398478222749575313378269914718224317083922420408907904004098767757266162095335915512297791832138335127233364934634477625233258332933113900408734650599236353414370664628808229385890583784943466117454153527900030028384507665347896638728875858112424392943955108099137060475695427851244282699956541864729661763264015420853527696070094394040506161304631320926216564369254324834870388208807923183033554218114038854730723857187084931599548366284917432691445978811318848583112225808682813046892629326367892381988317253045170679651261533298551181160804218473468487277004586392491512015744012498367018542767697039187352348638071478084562118599944805679686295957020380313037921503533326105051598936100953099031538510712173137928686466410574156207081798305305121064166938855066067811986864555942785897130640456049142347414844571521518751637423861837041691552455629940564197323980641888341138310891460777750855622007445168038107552453435587908105708756918658472970404483455374753911576604985220267491158442974342540904712181376817011353633008545883504165052477547166087409008233165572445584343112851420290817260480182276723120446223648706855347297719280474285666567173545893453954084150286340880102875696746112097524507487079611788110323309235532700466120959772915193506440567233501041716589091238243914090729447468390347862803854817148845272040939247926160400722305123480548169195456753055184287593869268746144219799450626057025830924823638047624721062018800217044525848357539853674904038659985271401290795926826589035763868495893281041034776668665300020625773539807921020963862561923076345972556985300178031837790744615313740045115381203652623825823054277199537785922527436356459542574823823068183619615950975482612971952864585871903333525023704166355318698585694981416149756507410910091649998143433146161170963469650411854684196512697053442529369755782320542603727200726185541146299065218699282993033669644215110596072337119330997192837892551642210600948057687604113846007209241646131613593811018629803914572600718376645531688506244474209023880775474217642329206187596921222210832017285902023857380043590977082644199129810944306818541734030962054098873423419549966322508753047531985670052455546531301584147626699179162459801309545017403533516740436706701752432093778140723480845366327940373152714532021152751104478537867158695822377741688349777320363338866651244703341820208810943766617777872319135759607493346337962083703268672169935037685381354418866435062187554853722555771573308578864411182691078571646270722493423254244194827309148043672900183378492173058866822000496709882391179776717647939187251150570103999542974332566538502213046854523093318319780350283212990222006155457927762779374016856246063487956806771935849494329685156084120142096443469234465709576541243715079124475579053824788555516832423973861919546070653773466154860899262000173559395329258510474464917758185591250704092323559214720258963234162275384638260369994014843958488756801485983503872140946620811055486246255819437657390135955074085755630477737014764769458482884455062552877773706207395927297830024839476787918210893453909795924361054786769788389457594648701764705580432671967311506718349635434068676536625081058345175348006180593514069310687515594034372615052097392141903168557678191164161414002238034873937549369871207521097837218719367850538356866262676423964540664366261983385170024371060698684295524754320371715548099893587796844415881400815259380055948270464525505460997591386786670148920025729970413837449040710494649972921399356447213228990284215027705318996530440311615575265067184187456015463927602040108041311712268460507614084895321536056717756535093854636816242011643362142641917355731458026827556914181115466526640853462558807826956537696137666936155293631793333910050163679442345238344074532143805949637102595139868182477803211811809741179333841354544673093334320827998063099417243253899547755909885976746305940095842770305612850426523575481990174337516262250042333518485946194983657707993282718573843361971155272325871820245910512015577654203864779712704935397529388695613258130921078252015241272404677289563033827649411868216711429516365445823782553321480538799510018209073402567927434356520121021610666966045151196404703972941498745051378248721602114597149521863164749388349095245627959866482546715735316410241625763336815062480862264787930630652132994641447281876249876051868934022215447231333324442540668248172674394662421957728423004601817985637579180474736889186470508718715702856369307274658698002210952934714960160568276500067232839847720013634058936216963602664628826494978011924032106153581769092668123613584718200702725610430632492094248309760007819115671036372092176901644923881986532053418277816405688439523262777273537605826904223160972586423978995419279770600890991269726320142731635119827295518485082712789513193071053074464974921908117245832797647095644474286298585667748719498186571764068778239646762558105501318471399335743855773947257925324573845258430159636086305043577226335228010433816998889444351649369621114944540864929132223012506882623906189041463277811797281969691492673237436968136793275770929020565334641002350414108658837854635441031560267288731915334554063932318106753362634133951974646025880981123469893054926696554285688616284619228088692373020113291074522818123193324510048803549252169177910954612656799624667995114780912460872958827419010129603155560595876822132814495301149660926207972339195888402382650555495310863420521233898035836607397586616288927293081952958862201124921278194318925612620739133388034875640519244683290695811815890994629289572295939997085946156410190537667503957271882794221400956557154344181735524280263951632966200235310418598054635148468490337580084346181622127217392396141713346237673376375218519060851798269902619026743592630309175213411546677373055912017082967136178252304846266588622184855570536350274509944846728002190992522196901855414974621519555118273860256275337715003737746767921227929958893671591309748238058614609006658617505520360835014171112287442584342832341933414734967913596612278292700439220853831010720568166582768431107492242819214295949842120255019704750437561974314617914417450772865459047899184008342467395015357739270757047412158010783453256989960843539181726924250174088038633775498180277535339669889442083296763567013726111344749720897337162341663825920380968830822437023031905228199323420532125448713073042014225689446685414138399683777899985951482489023576983497653483343421393843634723079752350438153414357565682239781133303274565844869079483435408986528097588305626383927321475021381122899165696717487382618826162690772529143966274075619327782887093771696184769578249891878726785341887757726729807461148906517190723312502820244239061991942662623810327837224939191885648717533480908861805945395575407955330379640286704176085391638568103181371360756889208810349550502296124278751413708811625361294973016471749612727222017188875471914475064862676828453477532775440161932679066685461209986354301689848468476854032973991817327467421486917641417905130914456695636986714620919908880304218234125949909329428187130276598970265605960455532319893881784014671443082385487082747733620835554930774405740604548634735933023978523882500477138568400003030598216863406987281206468246448386441358761885325571302413166283925143442308748043684603051666523106157122343657379505814665593396973760014936824271910002051211526950780513924125833990625259014312424683114848272238100735789857844407065716886304732748614124089503798424671268705787151059052188781804213042826447988463179250318874442155076707051091179164777829232559126907509663391362787953017597948312334992997486923343861119882150994508818398632462293577355265264033461515912052670004179434951370977949754408048196697731021115842544927753348251922396073856744909273762020982190800147803183950175201106163565250455693637388194282124998823188178599966237773472148687394231623663689600234791595389292490897877659282097517796772024947935358203229579978922539413090993426085646672196874979568335581735321245558964504019804678815366675006274972598010133225723641495130729824868171992265171304069622837423481571110194280525948630220482462196599151417810953764208060942681072560900166730917441569121512182993921636186232311932270082028937863093489519054912618637330412072812739037787039917779700774472366738226682814248905202810059507917337504003142314301449600686355820906871797050753315046165739919848422609981701470772917647111554339030372043059666983162117797853513589345815198527237267009273549618720128754339723130791726170699821052761024232184277686288864474319780565705875665484569582579093710394168035651124084101178465011875749269433389483914230905327319793668200224474527218320723146639284043605471319710554106276525006854497679267603555629593223761689405888685981420737740027971421084154443221347647346457076374833333340350861799046948535267347531931217866157414022317159570501984074325575402374030237620685105236248617508348790333570546225768169476754536927361136742217993544434867148710691174896367081997751218783449285170512689924765138975663406812958833360848716789670833020194792852308326742795736315111751761972927437959425848872359310453345141150086167765835499269212915750798499793421496514836767040746627349573004760198626399215788668722579977063916116034720754908293034258189706829235788366148221354963143459868433538748160503666169107108467379235149317722046643998016892845780159486763973407476650321388139212961585427172497247406323123663838038200737849268470813100113732049297263247869746632686427291412285197881337647456701326209418410296217698408095876688663552221180377734269688505140320874497108932433134590548839202782263033326567363906706110598823385618921683424056158521584947776358629110257126693268580719142529401210382240344091948221928251230614508350018877519343656904271451642614575175467411731521049956369329978208133449947604256966035376267904473856091566913325304692862109988878149350312446263024132988779847934865718564837243272439130741395235789109001990036791232994042936255446659294987471972052655490796456516468495118175323327256546124107092875796870478488689801518270622416598297883994859514399188387580163456429638576216424338907007860167123077335405005073247828351565863969629222784760602258671546437568183937012617281147125733441049667958788633305161109990945285404421235830102989433241438827036566931519791144914417856590040236638650399113479462561386957973845914255069792061635148562847884716420487982900166982140426515846652398959356020617152189195051554156841858736129814059801740142864041755182747537868005140951076834311354708212399016425793971981437606959781167155826068015707937023489729099014728208684660722978139718749334425233753396541226511536220334487374023235325263710860369673933582839874275305811003728227165782441190199432067545283834527307394693788030900377814287613235490393758001991828344585647904646116264225613973006964103248593551200099115842338096286073521156026654456594491006999067125416584485242248532190280328626366717002012403639571401699039868387738877386221557239070280400086455609610720549624284035507826009525575203521345654289615219413084458951536727333035621792537610396494937738613855732140894946114455832945311679741120601145718621113308619199674050971399164569748874584510179172257243922942578671804476303605770068556090536463920794553664071737720655073697200864617497647070826335041101732916047448284439723371606921523453254714351284071863204074018308473936831351952500881209082185080068414033575157587929456791502132315274432877770055375654881848958260052938483481454253477679748066377868606709708853123805401554699145579071854861802178966158199921635644750789310455825069646070629397696657319719099358346221416960493320665573902104732135048439746337632908002271622447637272483107582099646294164835087636962782103630928368512764223044475564736424189855445460160223949759871158371993235646870634888022025926038615468885457492466420744139547602317074004091898552620466404797475228085466512498264032529350311151449409613561767040710384322596661701723769058668028877462161949908615798707232000598789900419356145734294489128685666852473647299012633849044908300677634886158685274528290847546689055875571825535424414763792989923077026185048222193437373533369973789841115845069545228404872964296223755094362287124674848225018966340903626851955628584769022992389958384565439769105555592231467663971386285560300667402901339864379099541066209556313334699258718675587736867961476957328543428898092393720519888943415343928375708195359712548551778412821002411505295690187855472158454230611792262033773976588475677874616457498887452487514821074953498561334643283878200914997357258901978770625438863342075819025146791556544972352503281622231014096592389421625444116208679946002628370620586467102460134290290346817902869065287688218543746447231882663109856403220032053915881118063646098316534780947493409244195328931925690848180650235713274685687812556310373522216639435404019670881260820409909492416647353063441144580188872320162915856004641133947724750145380324890099707115393359086713807304865312629259946256982417892497142256212650353723949659328484671509638122994489355030926842312682981249617592313417640081619639249052220303383728889258877677522829373804788881807449244130591402789891384990686248214697318505554833751564551402287118349406209335135333422153237539915265825499955214376221901638745801396054350767268826566835516316295479224470534654481681855930499605381058627502069601799021289718261484280821879763537064602423213114948430318108261903440568454687182982108452761246032813927085315029258274652595451197015735328987746022779981356658449184029395670217069094381464442230825263384315073911913252907204451418747425703376846372791961605991478740867879759874067376332883085774533775884545556535979999562532860432875928003964407050636767100225928666198740079588854912068634224531702003507246180894010632163270311838181054402812901399626257412724175850323522387049184325532841133020841641416966133206146317874220836459360776291592869748175351872616962836865410449495006278368924830968213476192842303401620136051016622719296020951102781915996637384515869820313355367424053928869623521645522662120577999602997115864553277913676673577815809233908818192345778708457926183358213395418906139341869702838700281221396424007019735263109094295623850117963636069039010509335087058713027774294969980015127168607994507172913444335592306099994572984194116891663910777227557025856372245667107114742990073529227509149335595630380628377443333163809292776851920054279271714115969727464684466404307673483997736406869950955637752951372347847268488934592983255953697610895200256303267941074228079291348777446908866274644578620210995459727186808227928872611701629694856395807587915186487476894887926382232531004581044108065956900459654871095787247481001871831910079800960049767257522121414853350000794269979305232185884345759994137510312733848345048284365282832921772619134651511442963201463044048804272434403905683185891254863308105040191268817897333981634414635112789423399039364410812988550290296073661561520786101302767988619760325428684496846973620062681202462227496155940283735561996642719530325385043186751103564860137183702474015167997490326331205532248418824694595912164189283541602738151124292309924659843588256293412425410127481931221306850504385862403601365384945183243767246032202116712549168300762639398352216433877586728739023825294168692177567320258796398206323481580244743926500234260656015902074342791022390105699593694306846519451998987345438915915026293802519523999099385896443318639116784523385908762881242274600687895938637992950527248302371360935080132150898965279443134995044538611231858678797995496284318673291356074789496198443122112964994647840337509074681424775266319759805330415695828701722188391170263927128344330797824352540012898097023088740949293064618928731842482737552369192757537217274253842313022289903760545780094535532352869873942293343149013862328221279973192624583666910843466196097892664056619098509584132647956337395278322361097223224616246464455049749481284251790662432631461449484067353419144802417356087059077661088751500424971871068680807743874375294990769920151092522061906672133805925491632885677415741448421330664212655326908987182955860312456677471442982711924855227473660256532993731547129059130655897223575005944435082867097567022810157622491454253381567477353493209506201866215709440442301552909204588094701123131980633922741152829831701994931193956299157563616404269650027018943743743351451879300448808207795994994240864463969508864464380732446199487629674976394486640583509048199444300265342793179404186664091274126410247319597598852493454264808589106727821937463932098952134399304005941009986566532044063893204291423288185597299982257400580510964725033300842417290501873224452352638521544934961625941761394553944490167225083065891273945924362539987432666850713616396732178974712334179824498043754773746843285053243571564187328059377965602616208977184591355913915283897719219606250494528114641465120611311273367975353680685375579231451451417726413442540246296912650518150635150506737683450577784499588474819871541002863328030423252716549832956159668607335065901270203619665014239017867665815873029612459268738009224546723820469259429178710810866769708280277085838819191812458258196070936958265133755632938015911469822256775008013160070231505690631172507612442370379855001475038431960573923968596216470574103907977611182977102551066007910775333929571709169320898840470663906587039768242565648291923706736951043406115913195760069147923621637089118447464114962054775790645783727816735091481678204704456380983953559511813476652742745182228539135043652896118198769967551435765099979555760262515317776630065495569207251973410438521751127563242285877060431604513671620693999939039191559144236631317769950876919926360636545740307574026349317491467599821741550004877293815307219755918738906076845022034114982739132892233983867260957520389856533651420555414573823368584615563058574110706975231458402816559296659517959872000133891303579943573275041183279475311505460798270945168135035884567136231860277168351634992859133039567487981224344659610791898533997581011505357425544092340421637809523775961578771661716177891326853969520676101953395480155746203326632951193829381045556642105168331685442553182854841890874388239188733001564285073579562869812169381839528071918607716571019369182997903327913128977513947586120489489870306973592958232538149239968984413895408949670566349711839077130438887790233675090440340086244704039290365202792089124394746055656880039917128934299491241876572576768004462638455243423034258781654051614663423909155995629957046737698676323953037133900450593168079084537049088510434964411634753943455260313608927948889059914933903022770946555996651782203838978152042612839949189304246211885067603819171900908516174862131102643097643291940298027534863042120815594567617458083391829420833097512730728409255055130872764020680151162668952892041853690997370059428926756655120279455833732658060417193382635854915580135830084231366147903319644138514000525039096444373229899125827621990589903148463124093573332245891939991788766912864806999506466695464440755362852596551595150043842816347927355223027746871298272176258510044042715825729846574836175910182477604373459020425270881154628511213168592881096575063360381496408147070696023626535864748811268110969092256903188535036348755838570052264152388224547534584744813532148816607505156998394515770872899046686647179286465977023868646416461850262162795996415752405046203229637193517120865734352323685509988721647909126647599331480049018229352645470364659516932418733942400523780557373349918211339429596702230715591662932380767783494147081366548047462060830947888049063912447174747458371790747632407741809476091064528707778413279057856900190460679991520154964416958500631500207112580531825510770908460117288341241100839119076781770679289805536334435328003913267317674191757144404941735884455405832515219707718926640546357983000547604513146277144791458453493617892715668633371394218327803887246005567789105890902281906453568194225595633243782613930714824850105833649617677552426764046131834669983142964257227306029516114601443207639510469038714483587554294451703657755319751345693395672876669994531082461719734558997739244621321238688419126323187592302201489496408422155255637035208591390958937789253383133864470906854942797621380623656998854874980904616647065058924066849225065185025472136103113283008049953815371854597036819947253347251001276317001742140005506684992594244511431028094000552923599068722838817356205249865696235888537671389795839993489805096488068740422070503606044908246094457959285642249035631559245354330907784196129739026554133801580260429648730316846936338873691822883551279698571473097054701156383602603662291256521261281375229400590848103969169921164594038605517551006580011977074877791047126084072102480999294691171436876811246546228855485077027836724842264964592114842957790203237315400394541837783860335317578443940168795997780024485273964362155336878426399130637691411966282864398823996627881959087634063507745089688997936388888942136511449001851388439732953376202533276406422629438246362022372902063910259366892859471225690553267010499804713568827256612444512864361293454580949572939324912405300626872797894872437515935540952095730038502059556808763017502611396840396589241609838575662327765269131439048122958176654212246605268635731039362184350883519531664722148262688462141938377450391521501602200183460150728594160625787494026360614246861962104220857167112157616233005440353523608885412687210632358059162457709867738070745949924016971822144588156935970583247364660523797786271005384122522530780048342807389220699168194128135163954555844273502761784538606883756749712243411158271705825113692627008066375705416966980585001803637352476726703436610807165007532745370369066529067099547482507788643141934511334789359240889918553822117356503240274655713296980342253688922004952868716197240150419575059615143727539326342138834685629837837044005626365807913625930597494872251145070833563229532076893628735768982540078958259161343770259709780552179354404223708567853740806442220379222986014371965131649666252624467953347992283956938998698471934836911184023727788465031911768847083849415300675266069284445757861027456793099039240606154224984089649700596429652961888448998405802916639058003474648772031313465895901602759138278248095308878800449862707566230360586918769086591101311804238623613492488041274756216559475936957094043603035240314497498546408327218407638119422311332132868635070842693378171803641099298098071508050018023694038784684564437606507821539830553221051098944098712701286719690975691265769201884616830038062962683263204870704969449447480030704736017441067349347668246697234102818212105512820940547397180773280382902911544682462677471967087876804766791338618057022711956621186871043247758221230495827158964439370939097678312292561057894804327713451790381699077651408514211180061452175422020228528147557085220136738423279908347700425356386014814502625655283177979464068272544743266695944419019795691899472355795143466323816113468765310289548106424580786766007061155820324423741742528870149566700614470704763587772879842705648577702220530395421637120368978027876727209223348674173079660570405145889289079692517826662553979045199910201349455319735293366547717735323537443080540549386750028153177134677596204564147258287413449987084448998945570277976609731552364817025158576751337180164331939081536942094290054307617532272002078725637140946363288625966018786770622271312748179348921647928673021569132084119430301083954456019181839099605387936642063646175416680633955989567059424124960597971171866802863049900881240020486811746477841446978984980975378317439060630083934755229607122914687580628779653180403172008840394559119319957639023526486534204010650709095406544315971893329793650800948623821769418269658786335960542993772897987035489838991635198595396598829944840654546183232882100924913466039813029137680898054351890635418879349896175152308637989446610014354748843488686465339794892715658822523331789926391375672505065740517267815770723148658147237052935500554755825745136295614052633776880502989733048108743785306172068921997805949124333442585396359200218552972111418231653809088531589285318341584579402234281288203985888328593156454771889457781592029430785410906086725909858289640594771766363367533805464929544360361179508498033919722197585530683667842768393027670544987658493423339307426636265357148277276988931987278054179571894503848575668197207628546516706613923923676382948511598959035949725233178189831434795830049465899705146164536990578850156088107094503197862518058737748260456174210952763076754294775868785793874739051222159000887598131646413603934287235813091320668267834675935285081200133763673466513787570529914373741284789612983948820535775086520691943210930591429096573319339290226799239737305427514725568943466788059482257514715788394350578800098554599861259296384839911372272842554180138965949356464655517306817486919958032086148952604984185642116198229978794750944041894678433803371480178521375872746852179293482022365052078165598127714349884172689490543639120526857906930723465427017110209063026801395502684310524938958819658781726528380761496250487240560842359881010113801596356309489557268293399528909912049882277092013043668849742988573401604375373808207005061340605376533895577075617632407306433493693910443043157967766336333431026884573747226686835302386729121710717360407652280263724439866663378969498446336803166524074969029927637994201094410921954616847955686627801236830618841242373969395404152335510009848766978690345707012019452443267129731927173780255929986660835009962770515520653868285593335025858667912721365644853723771126123182683268168464998852964153566116643722869721793173254038069526694911816111131785018575746543463722847387293063339440698790826889409348187326127188728600877271389484502208550837443328028603488275983722047541096459310237278632836862541892599890804447148332235230927507733271512214233419969826456094567049848214057746574322002426099620991036281554355360123409715358166977820988234069179393759752237532861539911832785301438798588964851575378852767219889255531375351435096067301296035570629602852542890714557360114972148580122722753264651994444574401224187531186603527264875213052290695731788571431450089078334245049021417437310650793996501062542463101252557357275804172127022255806162718856396995502489546472716495390950443394107251648990649660064938766933471896501071244905175498873984483237070491948977477904358865589021059267925689418335749505424543065026334775046103085544560734033027373758844008149065311353820834267963426973787638702482133256970016380301872238733484468990513036078621949106934032851210753143639626604354209435485132893036129336532381090359766520179636195448741921901011827816465964744100066313617006957356491792589938265305670092713956754664341064574237103141735392044715670206511725526326761474862155457985728146423692629284503127000955260815621601332730813088291423526234761042974801736190258033244972286017312022470979300510529947790179953292292446526188724465425455957912713480673378617411376511123597292892771801597915555487103810567008760851167034653549410592898669473524203472618143627351467372075458635438192747101591547521244559631883272423492689235492143120477283212744134091257380625061149860301099659826850881681320700606889507124032009692924854270827981718142638128226086853286084921442557845958312274624203945506588028916114126788155287170437600510793374721038184612913685593034782365659037533485859971884967777164093824391075290122175856067692902581633453789278580572539869324288651685139326410046336517526098143410256281376288006994282639546021589606274802878932415459593679262712772460691391736665268523089230082114823457349962760347161530905859480408642742548676579871123156107993350293956938269452034804826435798276816439341110819802524908718969048563108356375292237602589154988082667147967314766840608653912262709365180406840707581193357413583769782628869643539827403988914706612569119161359784517665987952662703013593781731311166759819405043236234043267600326306381190700983438262412199698170705824139146547836227514360404151804222129191567728451346795796095862339360034465885965506139966442622930517666146838205545277209623167077386137631068203023369623834589413424972272830315008194862415519559224548728868842935118098637678342117134382980775159284508346595446991591776724989595567689316071690052525579214914911321510210987333215730191492614744252197903622382173940090713159196466984516621631067054942776430309094780163213165976653759814583233962915324558550234098696447492752172017389115383309660322629706069515005979754083526061937342991384424899993087426067381604741665922062899886527938756297906569625633269371573676442318923742790213760363966141849453986564841350190654921549306838456836488962376829329476880356233582142838563669987076253470220806858152558314445384306612845336952828455458027224603070820350237161004710389413852958729683321971608181795935033427788594646503854250468627980845962297635770110697533771913757111116456672591807523993812547920284310437369119822746971508219032019083001481131909561809158832836110775589820465602102037843842144584540178819424715659436599062407404462549174831886938839236464644348720795270209282500295008472788834174651552790952805530779021230035315158901803940597301519854175059918775790489277876543238868520680528480695510876944527821864366830750255115974057039957743366739202595091954740890157530392256071553141442537408664693459927000499716441059347979326777609795846803667445936850199026383682243213224203707122318054082294770689749852038997556180872046774467556281825071537563873760338931559868485850254955633031583522604971941277659681849335630593670388599323751426579714737367931025970686768488418050872228785785769824834969149399323057023656514815007960036754196007339912221580393007646471795029660452303150143244770820188257529094794494396474078904310439585232124959702668637399717327474938234372976880023597458814788689158283144120642561998914021597417020174423597593472195985229054552146111220329356054837471860835537831381098945458223599839670544065988301561734100932697374956122447372841671970214210160479947677019370465885004249609599672839720613099419764745177838893025409262179742330661574082468800552722020030255457386907199965076816277862417436718694048575392540346959839027175911675620377015884377577784905783312731710084912328621064263234598724154413408353442355571272972555004859678016643268248409389028715983728057599669569756813624373509859134247852718341268790424907895797096075200107082237479781655518172219811623099176906153840143145100742269470590751378294719400894723120940953850257707002681125680391154600523558875952196980068980244913336090581848803309749071311030968702873021178159474977447110027000657427115094843669639681771049837205212504767009576548189920265709360145108337522863319662029003660706752777908914361615789426507436868872570564023461284650687943397860547078932853748191970044458923764607037482325116752369376290115989511882989036017555635685851267144224919904360497994888922131760824257821305715928921982556704293753065426605633103576856712350789850876850364885939904225536907912723630466023006859718303459579964101258744853224212058366530155067301839249000090388811065757560019427971186226200397825582249492832694851830142227737153778849626522419845871131342473165119023710434866474591436671876392480890493752840333068966145268634905023151532033134765286816634876106883749578957311707005155865046873709623649135244495661720107510557023923755762802888835081500552296791470041926935545666674813505263112855379007684329953931669272882687575820392101805046325428798487265176941237425628965997581618693464947475689983412906699537852257296685545974389312355402871052228296277896036514160767278332477091448754929099607088077625960811807589413217354009789596687178745280630982977228856928385344688460401692969882931374406471449871968554949293544980383241174397571884942730429601412778629252130007523864300580626973046993922797428422789063897928143547581563733650107469817377789512388501050341687346654397990675525174787308044769581266093753614051205228897608319799427466785914654415239665177925566132763876111952770657837425145159683122281168623811009365851577315587122178799627232653139523203919137341671586683852145144145731491495466902234409489509582091163181186187418157143044357116687940826660584205768114580229176213726103900064138259125570441292953037101537903863580076249458598773256004215348413319801789377149334645083302969256479761855322518704547698441916924636012664805240587204675301015463932309591750809682313498996965254867398796858554023821399897235966351271940913958372911074327972392033020663727447001378544175176275859197668908364054986078345853196986045182630260661149455206394309289228678859141025344300883639501463000471044385282133130844788840975600378771182232807186438801215135206803517620487069336872637049629273437800136505203785568760764174950205637865445619183071027014380393165133386631214714914948956043649712112808844959126149128372861442769291979988992876006716710438213592123431680132202454213135809209301052076588080348603867130397363950015895491907621893649563594421082497850229071504081036201750533673051099043858813713195499368906652225934648783120854258817999838929482136229861272142148426533535520524224972201440357424722235384875751118435823611238023201452690297737094054778862368599820716704209835099665497321989850223868070979244168481978044271331930229152012665471450816370763611888705363974430310924347431304401047764559084008324135850239393872567701424007624060915676301341483429370819803237752853997581001416083002558422524695326944096043495707732857166935656151899904922008188265298234793020818955728417556627288425884468243922365878264902561869778706403654830576855838932976778625716718773802874200214311131537796596024917590997139604022081583932784769598787064756524196744292093894375850361821698627258944247711195773540868911398432395420867337588560005779789802911385815402345484412138134894078536460862142835135931509132467296720351719203790676684301629363674755149497623983308427755763755154875241234999734290816202956982729893587337020832632544235545784387969466758616104910059088306434251755140284235272942070965509220823416985028551309140744665437396999680327673107998944239276557074195380529974637606400486698610696058462266542609129714320200036067753376663683288135152940814524206350565049890669487209113804680181553383645015255038834554785368693817295022788718053968472613036573045999377596477193245514164175737758105433800664331997459766204568561595855134137732976409573769417417812207425968785787029821892098212226499290371987786124650968644239885611833897311812196357535146427005963426568031050434804514674255164130213471634827319271919509982675104248930054130159906259439152559026168548908629028007407403688025788296451816680218138936645082695108069930892267022742842158649771711722786770546674370419006136254715119405548512516442762087316735265418338954974913422214004457160566414474171018869951388675994073916809323847986607238094315894188029742685612121970495822397076189979227807137329909455854896252384259889889196110828573535624642497081069209882725093139076190393260928072499223063046627374022531269412223168636667091797435285165299235193044008178599794021746367421391661546262133387550677161417851143794339123908449895142905878086072055610721554575144341120244847136188920650400858980039520757345175555172021476496641711560995166342444853873535408444629110357192705127273698720469731086154883497880452634282898894109985928433657795242703653381597392307907161125048206689454923114704780753574728468673018007701566370096929799172637592455868224412346544079951856270467404817432808359834618411032620319645352881253537160306169515324716679606337640912956539143198435484948373728988896431052746233075269748198038225568175574477170336479592387179183561401038006349100419113921686322128296819042654265905522587776131044913254029476848622375192407433265011720022046531299194710887299509041106347482132912190962573291862802831654435302973231389307023763882481432789745185686447630081211709109688313447249673938596065065833828906608393033788234225789914371301868797660732308982415729925503520218096995290059954462406083519194673554112243115555318945918386302766918172584432286869252031756812690389243341625059176517083225837714114109259266228821774123272831351856115129694420777045092686077850956022775361255735430167542330222296322613092157684569293528465583661480520100600579560041850576522567538444682297619942611173754378986059572880988546835275445624276461401637575841290022974768348266873998825751466293242750649623512791827985931529223191686504596032898508541430924109092549844139304857725915707888538102677418601585330866482452277679693442414862046445090376988065184623702450681895183557491092158331574917315374796168901610823635869518279791237788608377182877124529493381065860064604772345660730911106160825046274341513251441929525367147421978612330431070500812698573052145606781376197663071279150469476270810666746840548243058144666715910744918325985604042574901993886070451840372962262407738589048563285985439059062680359705141172364678508900562237228720431108936534448719701400146391784765369218149654395456798752447373543077514617631794054931076977095436440871965616914282048493102586647966962006433238930088029599338388441508128327168123231661007634127390692550706157761381156718763572555885919605018638171242015282299854598983599148661090095973282283454305931345568300617849735865430969978661510527922818852102077272746144606160084010517310382876591029275770182390957859273950825759538944240081372795499710041032156616769663412493869635345686755224789441520621392253393398658049179334847490366009881025334036429276484133380364859717242750732665354531547875160387202983462475383267530125634899138089185304407413863088024094894740476631752991034337044197245411024645239685238006188418095147380103851689219213136262175943120244758710081845531654651625623025213794600594124581719779631913443132001952536554442907088338398010922139712900061720085720223909948544523643405353496400833728310832466431938875999963887541583207206730217798863907120252278389140808660069099292153779668644817561451179859457459778188226999252213719427121245733085259911320541312159866546783872735924068495397209783123389859419966814872141031065664601919439639583106758982483306712159367610541427234075176249433312663742204529784466572155191400570460780565297459288809971354534857760649964510825480159127036599452622282753022325979626356041715989484843147637157907787660589067704899740886471234388987411405230351219622825923423640034493120787596429856551774840088089513502615960657907681395193352070936245827103535788656786952883060463305865093765701820134850853359117697126525326642771687122731697573937667469505186453486217248553885271209119065479618450735561204799642967569670828845820304355954401736789789682383070272509186535035157991362134682240877624097461381354746601033205941151716090374666326932061789285582149560112638319549028711942912623281165854397539683492642204054249523398822647154963333833640336886272339019345756641615203875557854495918754582954294106585140838889143316169733802606219529406809981074410057986657859523398721347220152042558497316863274235526474454519136410499783359746051486614405103270161377166013196136773260422357836529153046163511715577252974910005965598113302160653790423475780669283242251688219423189986144705132682718721535733391740664607296542588838193920834736251590789113846751692726583719370696436447741506345932277499965833407782789877756559202310700065184581416625846387718679183908017309827309698632922185891946208049559836544387962153758871919376085605751703141187656611322695954639676358371406374400821536207379061261556148871670279249654045416968665956361683727001874160999922635267301068835110017538991530917922484334229627589429839196714133799465597093615509289203111734971920154307587689603606374703473236089920047906177219821408045655299579257333480634225777653130062687701108237556536171860346944681713881708095261115659682328341258144283346305014143445264022085829352644986432083598285265231965290100455577692337760918360684290688419338331136814993597826715916257671617072032431279296106166460501042856964291986663129162884500991714094469395990367673923449825302182940495913126839111456168458216122856476738351969482941498458039413334349887504399608920636337370638653079738721991964061762336219441190988384747209170509943477304065806322116049350079883859860878945047007310950391554186251141991796594334797319725592430179366993909727768422113489605360814465179062022467551421076943336932615251678920316476995251554694717713198934958388363496279461309968911582086733676223138857095671311993904586094433674197255776891488150116939556783458030192827357973575897510222180207734055269928302087925187005818140355970179448965816691419253537414437552212410508887153549489294148900014156161812106874530343993801341404472480645707980035341243366721610589212032797031059643823833720933513214313673325800102592726995448680395466506789219910408528615319381650308676418506814987101109220837618084598277295721909668216994072592409999589715707170896833801321517032754284018028314131057181979283758980171857200747847641589159714606481716081795871445696772215311998519878644941948272149227836856809153851089302290927779758604577162308700974475361123923924146950440767683111349090422070266000892949582011505584509040363085177249434318846577644627012641692324711056929386095278527804332032408133258953401521050439869189556392719352322530893309916211746349941227099598469667044516284555304849875181723590018909263511149128031038688754464833527326819746664618758770226273056410319236495521807375524553532312225059511919378041421312716073368356945852012156081172709883277584494440982230031966996773538246704961974312640295579640588117048246915757251724714680220460599337212786151974374227195499979810931905920419778665829446345632735041732176139501784774033301359760049029622943214457389558439001573074003501030619934646071395148142319352986625306048207131103671239795422095525778474087148376951990020203229421088462815822960908538058295924959002150927884583778726043842812650560897350027919927663107227851205198835732316474331981528262512748829292395835850105416483376366538795493668031448409144316592338817492518530814083842827017264867320172990925866445683023695903115571047524171638735656944471071862111531783988812947174223525968795194262205993658060072925915170135563409484317528337291693161654067161141800247210662232451952358179122329169658008672780220942402902377978281217521240015174655862285807546551950753145618252451745738264979296261720123496499873522051723859853531138300079026059043690486209706976872954951919893032882280217529934542597172636107341076591506042923951357267559763518247127677870980953051893173877110659689325310456999652561801656662761922078584394102571741410784917960681785436242865068502229197170149996118783781312117223160839143010022355132204451367669691842941241006726632195011106289365328092332848818945391323286445008875296825276862290458877466245481356594291307699086949296207340282115984495165044904855936180569178295490092839766000068532322743351042761202475497499912068415695954847729652818233940836814228288477898290584865350298649627113601140957997694008453638085142613381528438308407001499787358878647586214685740336564602639029066395050730632094226139456285360085830400942514582445910760369910243336474802329409916470184265693413894817104883661867518739937087484331759915096411369182647650585673082327432889017448515825679639822819596460860708463996919323316994859755035703631396549061323188351238907685259669534494410552923238072962469561437641038005660768950641206984708039861191076521530105732686729475265954908690422122916499158013732679783196515905925142508545353222383946825334625642458808191848189895910101587710269063662557686875492559849467470111811196701451807372442913156321770955802029909672895065870344600035367254881288269724310460772640286302220645926449187432056009392296743953927587124681631899575316161024229268709713699299952492346109265500939651803019618172067981514781709816148524596270381947336038115134063314563401408894844830525730636949981232051575894724095408338888533367339315016486955849058186914740066586649464433983876900685061254367599250379157504937651832773694347183795296526552366355502466618721848712632474621149760535959761717827531362148878549161632540969101947037370143878963066075622323933328051015094466443473292454109978060843267799603278416088643036840889604557889901055441412280125977396602700224051180119538558670789155899628738886944974147225240828098864980947618491299547752300703901107329156476489053902950531797760167699673946326045395247896554978250518766934257093426276008346323496713665069512741809681288343277699811982707739911483336851547458291973724814885282332186700571420531141286973991585044654311702640350680255247800420570088218183578022086037741167979307065024289111343893002543564285586240865485453062073308097082233473121231251654978245494515395962208545228388799008486840664874352419461230305942904334909725899278119930874128773214754709223617601591469362672180574151126051982037596518933683903057498102016612306445358281111870700507916886243785470055290603154700791313481411757011758863845686130966360382933766370024529491499712328182357033002290865569795348899328392852064386842773726615077345595201472062238197345723760986838724323596991883548612530573288855974634233023472262943369891238106273184090577882008705389747734742599045897888895324263151490822022402420456759722843482687765207290307918598318798572638985633094767332644848574980038193704079573690003554239570800614851399939112325323261442293454091252326528386875966383729149778682162228503202618309404577872769071325687219420305477302485330278624307956425041433908251482628005380306441371732145472611280627750704736363485079811871627288591586592328525115782522488715536371334125415296092625132871085494399055105726852405989657861857422453677151326211088846910433107003156884795410235245777580397702516802444605818436880873547521597260812794606311744360505551095925527897077150421693633789092823290491094810375806151812150876154903414425509685471897718905859277993543149674179922872790879427904577311978944705547095791409437377571493276197628056667435453675955846152150594586911825674463603318752092299550838210145343081574672789393383892311867821648537255977426283610682363107797807751361872877179699816683292312414747467194928031594423861845035071087355249222091569834201548341261566834728306620911008442871948405863153313749663366028132910409398388638770715844660848094630545021784353480367642785115057440753042460175833897592866315088911338654446615644262423436737863865870521192973989939354594436441375620054562907012668764832170414503605657883117186756417858864860438002820760993052361768965661306912386848628619901561115210428332231885842263301846296055809689206244357087665395902788698521293046194282027052827081464629768284280491583971817038602249130377128715051195298906942680533116445718934550414612880569603553134107486104587838866276257612698517862999837050188563097795936059734863490244075805606697320099587408181750366476694569513054734495895597711326415503346342762674437567671926818777654713669414597142229396644026482758618254730930546412651046500724466567933531758847999457828675279995761480997092683654713977293057456447840395665705471283485475745466152243579598917430636499767146649121581896769202033182607483968059540534274804490007409834466659408057748565526202297024479108325625301368649476262274159204597440129477827368823519765422939135061126587841928774282397618903708675311251835331134203122342166395666921741725963714142282401786526326776845214645822322529153020780744502807283742607571763939818858260692429055339212115748502576731756953626136688754556268991180631914386147984883696366469418908125987118986839138564977790179791212746885741577434500486939514876297641330586934344729744813648901261907005258467752128568974058775515309150515496953262607552559396824610701255694405231822724238791082254460855042646762563707211152187301246541265913861835556455021251605530701185929465743226822962119590951888774466336326765337246391585797610011929531491282117002878419888595025250752780948975327510500398617228457517256967689611946921835968553787624743487513776663977252209049616628334097311518561578384004548954826614597362063001289878620513706129929449904607105385266779381797179137982747019137337621628161095526538359459858386911431525288961003079391138285674916783800963277699146105463265977826040039419238665803184128620207863894134317330180227995356797051312397045278508748528912221729057041168155141002737214978636749795331512050375099767970446576316384616707257025711614221806395307901078686575042517669028948278414029496732732104297304859136633188183529363718696624275542484040782819643997832286282933081424841466579987548654396039529717092016471350736329464921555956075023511070973172283988680146649100651211257899782397128761945462235743925636458718377112650428387118846867989273968816599338971378777643283224700930537972209575829722141155445395695346825977374361217421267322716611052780288524101860823700893761856992514226867116168894374312837387688422344921826519025972230873887463510027367124120173547531529399815119608096759645380001377839358777566884234653591811537851482436955297370827385854477883492095506452419767215261051445954580675334602821079548377414758190040771654670629921533115488981825345129861361644220072178109015725945574531058906400749492445487207696085163074078902050876822290372111858204223710056317320134711653136040157574343587982926432866715522653196954745820875490220999667919743434710272153874810481882826995277967471331489830324763707630514517592435291826182522363634653760724872071474695034898016689363792559834321578553394784284516890062605583525041692218435041135263811096792526874693244128860432355374220525600922836538824038293326634652730384513823184448664772057170488608608610906748131268448371397138600424514337389347289889080204573517205967182079119149725873074838228276596869797235157048761908715142949456904974500293742107055215038451813344209024020900194525441965676930460278953032872287376279954599389845161667488007870167636251778240977854726302910616701761096190862946837862893621107103858176619017230134527284662260018562416798374932666964636165458067481524586386397194919011810533189316609898368203036860646974739907040885877880201949256386386756318163274632392173897451685989835928132471603273856037000290798855729336684696769578888129453042004767968376194176759120824568545958465976750385877057720008359094579131154128440960412142776249561011294274778347456195243613092720053782786407385152931421059522027956260200939510408927245444310081431525518046406994341359630855519389723723740914470615814995745001729158716556198126210647311978151646221600640865818299172103051471923098528899883356105496247351034526813124711763643399532687241064922576412872805408941825328582706679824949392978645363951814107722312698523271732699566227758465993296368340039442945795750204486195773705133441387459887577890570887904566364870400914960100300268958440712774859591454681263558320276908119469581611080669058259663385628581412665555837770589510647139505353242810711613167668516424958516173841935438133784885016850853439279577631051917606905130384538596471796203872425306535442121436607482205023999186446958657561949222470305842721322994381172872218689801593600979413148122534238954690134564629159395306011978212623287299752900125783433735874576320682501273069241381572302695523839102596295623688823853772899701215306420076730265599350619985327842501268121456550841590341825168994444855481016864670285930184527309938143344436103545627732748124548837351940955812995257274400359826204266855485865287909554421109851994537119459087499630535963389636442952062240647243315092290604997038807124933882788875007929296577978691898227796237730853901184352258594527798763557850107799279985222869983083274217944655780878533573211210959785800005555074480075011875923246196202160874129662915117044268331882410270330856026208655656427788956414543944525159923289262924543740683453703762014614848217201623925906283045440197260198664926992286116811991713785144719951627725112087858078010962101401601653590793034132303674200789365152021338928673451206546520266366699527516189411016185677615344004961871699392756102492698473490974594414585612644272486777290720177277649527741779275200533384857344669355710022231387815706066816040026389148110706509520402082305312132235471777849951621404493793912692791218895896008982678761304120616086581804194921755483526614334791483613882422424260170424933841979590310166234729600639007202935215655822243327856069982219682890211320730894345065773283287892772411358456071234507548949863834405137770567556711474621141305459330630660726205278685934728858892675729581851256663967266353512231531371465711028662828655305341538689846954508844061391440398796095726813261592424598087143221165994490661276095247409537118317711267618618644317297587519636330658579962837949859289617871636659032700750617121548210574517336545195253602123280515424158593450996995360586226699983531740813576694505418892981311890440779966575029448199661195096073179256040738328443859453260161415608845440248201634841024116418797529133128129373424345527724223850081424085030367594441795732646769239637272805360621022060973037425344882159643504024481459709639276831574854619071104482450831144066079523780800384901669425837216138712781392409089244970798696723941399567172560257293825492638042958934073370394103333748030581192119512002730135985185148099948604308777230910533023629349335543613439173566757223294301657472095201016406863987034175640655164339526458292201238855442674722737171732669435831334059043130508694518842075372023125639083934862385360443637864001987182157921464931621971588566431609145276883472469190229507038393398247958869418333229806290470299429102378106262839001295006239213415734300884306680206180083913663274890955201672276947490371260548754072650677989251064305818758675592894668659151542637786289263556348840632715952707829970930396559295754043614324442677560696443518039314932294609576886520259779569333559706875987756688804218977093557177884676192813417970170840235196009987993601358187821353426463560643489377847691776720430562586054008240087535360169130205424628656567092184662345541918756481566848891084309678335648807785128270743062841937094683287535696311677989122646673401111768694453326980416552712049819041265574916309511152113678962586965019931024670144612542928020845819253585080525270759687192496631187576163486863246995251308195395090949268718542786385962624494414274374231237121622810428788760368510565068462806823407585589890967196896628217207894868695041834340658303780525070853938185096126193586704243197306529317427118006330218697437357649655036419938915539183476162800204325669484978063964584238097302762539273696815893230162887915110633972713322472646450222747434624594133354297163669667500441854828693007891539358452968225983406800704178284845193642738086506018133978736966916742929803308358934434492200676850767588109092441780501495683457716906827416910696720609993106843727168627332330109433406663876676770623864232483762795950119687651373573888099842001146676184377786796071667087398147411887423443046542765338573889715803623592796004689292200946382810272649031967950450765152127122893994110520850289943955001173748092184817836558106727122287383047279366832980837692612691420424507082509974697906276341394814699990787877407587113626644781133261340583977704046629180776185097396498739527236821795988454774644324641364602941385592872540608962017877091636556739725016006310850498764450070713665630368009078838740528667606131690401769398002634264528435772087470013447747756718575515212842344763958368715471914038489113343062713415474085204681766421062467990480481031619878948363461205272006786941807388746709343203019933827630002033753796204467491128083009158870412177398563024126615147362747863398781658006172036111427642283703827258023923199438967143735255984372435883341032238940801121911884801786914616282523795665407249991626022990589813596857045687183095118077476149008144333637446827251072830562231053931289275065536408354658661801237171794602393134533217605851669636557083866692036556492575078107191458711920313024353928473299370101213357190987149582998718354929858200696236039580520292168125324096161840694689442661713139740755347225261898364179901667044474408826854645638782151854379117118142927639290580324219781438373504015524682632210726974253420047780760181452865212245028663669016883732193354508213915549601389274450500781354320456541785003696449744120647550408903417934538247384582273672854048995526577720224395844192384476136829419539923188013102878312327940071403422887810176712985651931261628094208106092208281146286547099582459164571080970995739218135254188218236591624827763196815728155881134527998032897663499462126531729895632784296175654991166828512569206155097344809726235830559829598785979323446023873588508615324343073288684508858160204661491684622607350290012390351068850737573190285746150409228725401941605467740518151426142445921280030332114813824469228884968049449479383123903203630067390030325448057965480698599330600661106074600856639221992453656105077265214897948281534098233540822890371131620670612978081342191911014262825359737342936003068675657454969664640504305308774469436995125727830568110190446240122796160797017443282057306979487534761874780902324687631112958850905293774861000919129314295201249758990144749953762182264824754521986397945620048168860875205317610293728550033589064313316368287639268092592120128227451383028301157886145699528131076550175574314834623154506773634945988421902707808775500455920470190747774763454693349488565753479927838937644056874248301832915191810102254200458419245884754075494774614573198145448077300575757676494329832771012716838348806966330271209214011859684948576846517050783146236810709515539130420577560478036609261573171795272649928158689219187048271834923850419979797648842492196001093139568437487265146882770152032635517334402493350799559625827263507590941884342430272717431347355033967605351340709518856062995637232887623864992405636346796031289316925173369806951143170887144820574493387262161388889487985723099967631870130969000273090257609362774024362293828781978109583060719246019500491826621377232153990179097901375732286472993590758338584187839822311305757878216378437116581491570503351675765923672900583233846318757917360929289842804577265936273652374177496516806270944986000776328131410461994570119177287051786720788003162181785166832212370111864135300520280024443941051758218133229612378809923745263263924974794730963258702320356046749151669678231753021019065808592740419029552858648959954394804307113755179205205082927032014757788804221726909014099114247501831867552643788450085342459918142501249051431915548140728944602436843269107322467616943657415725488271901844248673123436247237159052048289770216798824338455243431751801634049284053402212717169175816377180763865182705966810231633583991856250312464248406394805605107345393927883111438799618796560850085228994259937430684665824145596852271742045807188829179330338407562926022361953376950042703253485851692302882107908550793252745317643468036308361614931402926961092962398090466487203954765939468801479099834711509323630796617585558922769220383864612969062849686509225841524469186670298195360081073393887704514995574433356928799584631901357283680816443145285408823438541945910601513974897642056208008475310825324374236455557277433072765001629959649899897761628546534326035128377261875109934088789434942475780443994888150930943912543431404808487493760041521460271998372446659442033669181107806778696772195258487478623228261835986327260074218999423048394403568211116796150616479019286654464571299213245209142596190438946434771082120596540226640645720981762021361571146465735238948665573239427621836542713211290487735058113942149422945360633402119369489463585256065550279064924451299488198536731377270118881764624377227259764060546026331835153369345026200292683470701882960752839602497449076326309167903381636511712696475303792733042056609819174874728368642069152208663347209216354485374748037147526271323282271433656413502927320161574052683787030850891800336139598011455305239785088161312598100312982904508866223091875509755568593259817909304528143670728263940906470292652172979296656748158071807718282647744172278274429412095235761411151701607104932230921111126736549230120578132727524389578479298156019952646333960356732317315574175737505918593051745761540783066205081542408662758084688289408838520267983462786878242352189827462034742512420224222611474399208962200729965533847644960621955930389185862268394619185786246668371011945615836272986519218492849332954400877209213620974136224532836289799164039254564709995453914268893979549517996849103039365833915446604653694916065076619688501813289008675856921616044954143352101128001438002726963774479419562525311055308935922941146576984241273863684653419644507627291361107421356501250967503977237204463622224627981082121351529971468346924887564310876471865802593095316773280692116599378727623185079206364691526323645526189832206017692305828710072690403008929781946178558687467579678931145731984801971903986324147235050979045012605615746616279125264432023948047553494183523302946194948763886658080447521325041801315075792600882159806931272444241054992673900081137583331390922497867050074157409960504848006753805526256739562744764795398336629984035751724060514352957160770426638486555762476141013722605227024311565161529489137298430847240819490174612695760969191088330990084926992616881823413934379202182751957544041307006108468388913534859629286047062673747097558884922791750411255327606913971665408647731958194338666687096552581331780146808942622836550584230749191100122830095727433414277719995541993552525792751189675792989355059799649838031562338822740933844377494896961629453064917337110644174640052914885116699223159477235156268198514192463534284380047737538976098007741127418146644241682877235374585498705719761582394285066502344519440652646566727113694422488093616534073027484369661700040965392932990620371860594986089808773644153462814794010938858293894151659300121521440187995607495581452388653637821148118872099852983362511375684411428128667396604206070863558920754258590766489734953286060550051005437531093429819246327314371596424295170496819906220391637260685181035762406976609959441483446006177154297984454349234528042465614599169461956286123953446602993080648574040091700116547887536145509552483881806440412076315608886804563781058651084133432349236376854279148474365732674557022334575176027943607471489669088322119031400240752930350316531994190478326102940924043702568083380622866564820510385831866211776810238142276629224789605692378542076524298951659283582538462930859442393466384036646472162281425462258277211029642296532858909299358229848244596413006781897643254172850657077989475804328983012363619581025483020860205829742557148658326272008297472607800135993680042885055972971439605246592147723473045804164082202671965067530874447463483080360308304618755916563218571163181440329566203473498874440609806307468373111556170920302091986129620960086062779920458919605246672206410096572247483704400072885279461627018715979796417676906082055055984448196685157693752752694790965463560040220163435873925145258298890364555147590446896378277185256048202888107869773466491132937942677506977209734078872394287542235152400200408234751503849922718492483592432641040637699577550817548976119533819176662036067727634137215845017669493310316767413195425308668305305413987089434271391798234981884479158952833701501993083853913818741426872524462969486094036733814324040913405292589527750674197599310532623171008269497020472486336138077302079571449650463195168413136872234943800794702706240915036733841760392123222613150748300064840968742958171694935068915258567819874385929805690620252737100457594911029623703003705710208775321168880795564822834988088256911090411930748300883857651266438254020308827275421907176530823704160395641953732237017253307896751693361299522628538517907261585367064191569999846582329689142262636367511444187483630754388713653431743029680421725697645478537549821640211642515018742056633738649113796810370766418928655186726131041012608363824221675730971250577641079746796109556683813719517460069141060322540514624479352012364405949531584959680946256066882399538360014928586367014607556700380621324667862645757846504810391110608687987844995580535500466419230099190155898952359181023316751381622778460018294217640884343937886047049079921585824006461980756735654347989291757417838492975869854691492422284785804127699445375715157621827320781057490623511897875596402528912146446661610917902058867720161663568778693057215167022544925720986779034180268350965297577938101291936716207361224683503536072711621037411749396813447671069044434393109963686679338323133891663969585960428797810307415532434745975982915752478947003197020529896149209408609790958789798862424081429207745594531157628268806859600589407584420271530760892439608386568133308893728152126639591716679298325510355038319206013906586052397984785829224703772061987179598191660312046435998126203877538848016223110898029920555702675585745066699109353503848458606430122073433864048797386268288945485646665290179623497263777866687720934779438060236788733592507067472081888657365254991543547921944920431735150740057713284923259060413389733809877216631271568350211740856197157709562308733619390645468945091296094010792249021242592797937316256754322449813354259762382059778137490167728459787562010038006831005877103388249536881016055489335188530315614352486389727409124717247879664255339370735477543331166854391297954424435085686433219619943940512960592298907902193217841622335143673320774731492492444507871431647205715994204667024791049542106387025168804161974718512000963723811679422248027129730323288441814716087795956922076644051062104237778913440778633270981310263350847881412527163450882849650209672511733202209593229742907288852156815246983322337920535081343680233733246924566258155854113743733414669476544780580125486843822947288523151008238615281309622845598229521296205095919712182329648051316478981908926389697550506085588879246526015462335409129048751850907891933527006626218035897141923203502432791238861398061431567293796976436591872492445657245546777279212984293091936765821034975172391494620508675172741997962445413093180799836891017456590957190382233845573966471686605303621507086528324527434989415314025795801028298018513569946411933717049834595375614021360122433986417397268397847369829287990759155494053479531015293453312856524860141791401761768635242507433128450082738945602622765410877424484863840249499323225543587039776906145190841828872781130642844794587464722953729255236685286172286387823068210420513034700688962609758257707149799425585135429247215833029536300912874164583691120943836516829728944098839795228411138356025058207998715913549920023562667849312452898089070163188328890589328505976067891166513868316920057575298550688961200010960758346231790918188683547286004189549481764808448477802474936018678150026712624921070145340846377968643583922726351031518369831925575198267515326553744969522274596256029725852192565620843947838076814984761096523717966522214218377767289531213346249773253545567631369001430132285657874385114707546456297817340322944046157718102063766833806475417407143925755545543560913610169884444634586632675750704296713326492821637191219424164277223162400605253674043065944341372258601326174415917985846374392811724687908593343509103547790323501619943138585685054380953908141884943663630808012204213338974822442524973316033739865885457309970801020644300126543728046527528627205913147314717892509176331025412242859615366985679702380930167742199925973121582071449522632347843277971419195475856426862571964452859995506278246961176994096150845270343462463447426565906523805757758793973236709189309916739889859168261169663263979919516962501513454980969827628261428608299516048654324510432339779112561255985071875300109022099996725205952568721966617432203209249757584099145504455077235319059043025237469139721247713286245430989892712661143612661168196817818605650825533013155928833668390903460193273319868947655282021131718820650428576553005834310421125775734478033759382554527211590656508432477199867716433921547665505837298795337667643861680144059655241597692468442837533472048939656093734178077907830824996433221539462821433017706601453342296256116125877156546458801588228439406805414111675041910355030636830773034141032324676085726376856870631148359271729459946289090277252383689063895142518415528426389299070797844642346605209225259350589083742328964107843985464511074269724956826711889540778054832732615408606342437214834550960091764354935329140223092168178351890218805993516808064065802675165924937669773864324340982411002911065607235093272261557360278085739164879719216560792639430281814284585814121170321580779280501317943097667426581630529590217158387254119036671999826093002270076848775157627408004463152151765430283722815773540341300284965534253419077718073370871243480210797297665501421824439414840549346498455871776473036068230727078933317552200346830543826611243070718123146567528235737417249507784481206132393949886278668706025852703167213688675275532946487826176862871972856671914466656847106117821588599831950445062431451312933430685473129506573814899525046867690464066356915755275036390094736177325971268488175530202259700044621738420416910040141709763632705366046682520238360276255528347866046627212879096528937218045181531360355797324741151540785953013094904931499088117928385266519173622055733467873767051662903792115974177760410023086439115527622016623610899711197222940359872081217318753755928449205001711890122913788837849699928585772435520777417862373655260037224223798912654176057256285709011048124684274895063346417473842002184830247390960126837591506036267275026773026950950631904063907060457889620874462055462925456855063365045434623837962294820203186213912156101894111332356126795807258202855142557914562922753892079768592875869639220209511078372823779952007248788377076296477502935671038577916565908282824048386975320516577918971159796685679833868550361432736910651768483704910043729057470822388378683681119167265678564792805028220439137433869836764710581482480375832500310564430492755085247876973236734874422438310895516660340706812697925592434524848500415897879393759547449885820791324967604496483484324048205270701682691421127925301984056207171058566953081842087554597071005247080218001915515991837440791320512332548503242769896837295520803124553643203282325498591908099984317075446345828182582443707897742605461351570498979373749697916693338480430558195115426628636104926416179067284466943780252763771597902676115108856599866772065954601437390611724320133830474954692942183139568099614293900269310387276160148087638786973952512430064391555023028591515399115634400046110704821563901865533205129443919781004621129079221950744980237764544267951742668355392129520546374903443219618488147604473177506888819107274405502620978319725256551543382110794278617528331811696477265981503486904809280852463091478890217449064223346032920829055675093734954388557352591738984481107861788574979716650833314951590467545327949857098956139183641338008842250292584968172679770589140099235111692617934472604487039377716322452437561474130563249785225702778868374826753358886406225677710978095981441880822227057392230179212620537906882096078143533238006142685196830171450301969471365355752612052181734124335428450156827219970008048653696639817936871069574710482867090938622547894653576402332261431439534810826530531608374002560643306740669008539553804958534536881130812504444370120026229834613697665290000937145421318990299129232942268597027415858014438816697799033865760837348086343976140398079381913591740267411829673368088140381506459068076541670388286869729235328438390264342991135375654148777846092176791240391616477049669452857762913864433010579436032820354748025076164011417686393746402961463198650078055438289970907630444465886641987222919214325285012797226767643051267737344751877588551346417569658519747569408125001521380893293704184335652179693808185110960447496949731663473858912030334886843117244864705903736572977184404121988843623686189990077147269203172690423380106296559741266421631923501101312713836444256702278097702703765417293607073687255861353308088691917274977476591930493829437992503012341504440178263157917720019893051095955896568058064592363671116175480717269382546402748843293672825779694411575209482553190678276364091810209109064618635074033514500270778680865986888357927210032890058720036231855778065221726529024819006674205290380136812779325152653523703712452745572540117730776603301999278727682693288619253608874662602512737177254928815648654975671602208515226667587944861919665040369963279012421242105767530420627171962361232226453760205443900446897250235734272156863390345841808172571157844547095010842513847871924006235132293838739199081049220006923375901873756000375361965091750007546879382703440979872014896798607636802486866752696504981189808753727067279964091802433924967709598038483099901884081899654233804820120247095917628356120453492892894573341818519484242881135898900418301415097466802036599708928952837150888484913045305373851097794377473952033240910986397611439700644511963893991169181527682290018084980328614030346990686120826644551895308964879547376383962728090231122531896394177981699258874511775797858894587479732892063570378905917391493475818443126813065044669003741175763579265379913556437527863555668071800520426914513669238121714880628473097471252028839176060844696544388949947390949793384411075883898537159912200414822348283420397935977950097407662934539105646079656987961530243953469872855570839520729128258183451199561880641719078166745960885810584130100738370025060077023423175572009505975222248790650810698910831632912067130715582171184570849330474572080682026286642822806346453058419235182622538995223773353830719854720678567480397150815800206817844043949584500633596784866807750331010268716528990115451805795209954525142663434386749648409368034930409415330349648414170364894464817324795695981515290141203651733954276851319119991441837135253665622932201828323947240730560935192373381519567144841571590686251736228621885495381924705044123995284279226460833553685992321763986677669919647625879745599945256937469680260530146970772013270722020382027612318707367799306161286158181616952402819529849954017257695345471670020445734865915838285374262972072857471923941421398623690931597987063985379896466599080548559927785233236720743068557052309617183113717108106638159105993724673777173951092829523354652088102553001465148692793477241944778981223667018940254595722588763535958023383927487154483855550258621219545168178061712982341059310172483867999596603026092035345720328625817933116135880412077907706871845683338948672479034660161714616167472009153775058603465941166078263987579989313383551548003941833409874565822200932933506913042650192572282565600198934677261832998659741512675876872074805229862469764131640188134961128634092612294606597435458851749812794832665084437706848642342053523106954942062973920374123593447026386354576250327054781259775275899384741850326247997321850582362211097996973324282266178535085170694967571121202258254068462586705059263306905288294096992094901874481105113026897086005022065839380709892917291237983927195954908941453412742975221234755749686129069031398673062950242190185820696164780962857903908194755730051683673536057315022706972898336227867787787978734996325528421291922314759053812975348638779696736039098440884983688275647053488363249381698993457674994556052296346817495017565984125614807753657747632661353946950975098254793376336611977182534072122029695089115550713367307430089768723371908806644448401428562431014513204908432940710009679133013154300356311559584609020847243828314968176647797806161703082910868502618949554037297961646663505474543595654879414485294642470713808744503745137994195414261322065103598448495560595913425446157599288896202737840750188757587581248629620221978233276525737423765128323733743289569830739094030339825720654902188394110814419660458202409960732896050892117665418348075774357968103640222313009650664672622437759520540987084873191687068745372060328850948361297937453837021276194628933258643266200918456352220191616969368629030831472377008959717684302827148377623797741946353258116445981331789744090813475562349194547157501102830480769193925383443391175508824593485606183369061187269651956964660118618354818509667635598266242639667289723432062886525796582503490707477330401174363630557838339935412419120506358904645667820967857134407856523608606728206967382953659685327522188384834120339325312023484289183695162540985076666474171522423466390714006332489838362202176808189576865006894281950184261760692507685445304062986141248038325349374709395591122367499751922572179533779345151237386489508824181436253828199679399009287466544139228458800972796103670905379562151324374254453986872497521675843665162452805400004478378331554083314492840502252885920480631566888530696301048535611139884989522428564675539944849399829788323416387301739420665879888681514537925387136194194923121465611962762809352124222641635732304223376318457231470802606262575987514071306912172716066370077393377397387730909111577477098460455531227278197248568696288170180312163929253886675986637029980283810595227072148196018378974530887733912647761823261532261237660020914532452478306676055611295201781305282761399980941619148471725927336942460515915750182758567172756888073735143630906972634617727314962857311998279329454453926602229096774964332021442441344034447685328133219883639865142450338720457292125231005615025294162072587383893745447785581080740010093281452425398993904563406625221441181252746446161900578232605867235476257969816424559685774436348154324315182787742319349571145265378773489193395240778382974803724727097119304683226291681222185916219036606585319969496250758771391710717181629305473506737076278398183065245320900293338094730868235372697549609832790861976131764097742232913733297826942885679923324674399633105702592242603468595160931738185461807992492218896944669539144223085487525332743204094173863545262262445021572437173778378175113220722980694256309978025948295026400899603848474211334285721288721534699394153767136004431138536097486378715602477637502677834318020834639583686575691200849492534234920944423294896945297533860179051800180026640539785414883285402830449349407656518594836686574516385160728208383016752319332627532423334327187627201015444898184508125843883142710355493648328537522594794168553925294171655078375707347322006435222086884384622127095376142636709600867079028719135504722329473706514092619528036234322272619375659222859471195020900807846599740208840214303358485450001422417969598702387398621666138306914630826917983055560636564922288948980512164067568701772506321780408175900630799767247670978930032367099372392379987687474364045399318153001412671931017808291300173080231669244609903093773644980032083984991945434732442100328687665112159670099807676892068539365700456301868936143672166957884381518107235634932473607812770811770812306429063084340076486939055739199375387130812280739838454020178265969660942503547942254822868940811401348013151266170960211031907063518715744614853594454050097168824464030994749266104848947621752900674704126184471801755069817741508016442980500274705155547042383409498343584543900019755770397375531740006615577853774264426156548060510521256563535084614709169145516884690522846930955390824917370829267508183474530035640202087264198044513235862893819840031290784770673199186094000761857191193313551163029331996661380196429077344453956589315833035115288763517034732061014749417813590260807175133830479882340273397832208737085158423013978263143275741018238462869085513460443069723484478665858279656284893531144198348802778177965346203929560452478339786369970396401677770211047967941009695978198433982455003223377778799427900130785813075945695977096052827319455619805834156631079981214660188969003779330290021285799117275449087218462018774033281348372250676924456768953792712073615848947425036492458476513088994050336419546685252567724859857793926913776456417233669081693746823700572987404754150012450995782455578459463506022057286924385498967768648757408450164460870308385837793149420838943354428377667648343631676582192189869618783500832304440933671104091478268779147859461419338828475468992236313494518047706861026815205737879373684994105828549196770931988127659493487545911046319361421400115836481589357480540589901912608362736708195248171833918037438643530911509645603805184156076088038686121965484901175414625854196283167368981986331861644012553268632915139379677175002541765475690389839018897521707278585498293198260947507776846071104826165226317336426694788023665013864150703033465940062474076857091756039705562505213504453942062849365956640918812463170173096236538800698311327528705089696635769819165797823963672741646933907715137702607245091541039158648292491156013013506505825977389838840233768079104668673761844458952620694175152404416635870497023358171562111067908239808391444691788109376672692127478637171681373509505669047856834308539905673012646333091839721784325566574089548854418390586596506440724820534183259568490554367460302892181670019456409335590484889167922532971830723716884318979495922463436750910151959168508626321066972280919624651393992433937454639753669333469526760349912256476409408988968980929415959205314305613240972171716613891198806300114312365764580721329630560874432063116044049451875007089423549500752104539046295934741869580022199717106682872869879074584690075075298409184626609046270592579224371844674039093645833004556786758709127565936208722058393887045506580512763251007978998636330366738158513847626277867215708131478104947521721157386872951929083998985898351684655787237176834322990508988464188928091337696168057617659088131434099422781889713952081494269508251213358268856828614772148680125625226399412599578186185727956692848253111277693809292535210131373181227538102664221980074830935474794135982156938026443492286436806487512989536772188383926798821803524924455958413529903778011966523866862475899742423388798006183076540506824453344762359168267576858532477695387451559616189322342958863159213627651879326274478548623714753717102031103318862798390165701268144524760920452208930359810187386027855864383479489469991080917968492482003988577430379338341008296816332740543058988578649851379248247943332118128494827720948507456330072888535067581983351011636974675490693101352734969774910655915381795118411141076676149949718041605579067832331095016664396466198523889899976658020270051784900089562990814121424223497695973565659584855047789542863315592451797445558324829245394845727683398081903364360489538250283262230075234405392904771553024605577356241389526450780219571342198041614224343259697090092176106955431552276506052701771148589777784400584344727604733119959931447301334990176585358609209891743267699469759994002124917360878205221346098086310704756191995206878789563883746158799962013592581807317555108779676955770115772801833141741417244694939126182898815492034554760600372942885269136852895319272126960635337134254870307417250733861092050581415622299683301620861504507932736589765206708124702864686796025632905174992332944404543380267330405854003221283832397660356236313465353197198727378431576805016939616904243190782978386228300242425777609698686306945734643264186030508495014580395623346883618779164499698514362716570090068610243486489614218917839651004591912440813016047998944743481994417805240021968774414630134516205677227349638403722876951298779033892212840872053178707025334914276849147973747673103994740264619223448492881174858238511595062343506990766840528073088959603065750836346105220465897845051389788914970362823770372860401766495897866893163653391973782687369332693703384794677180774582513235793782279122153254092187745000281155114326728307522675739532148588129492298889148052836275648771809996752237833090171529570252279574304155908530147828626870028652268273020417921785596492778279875889143806472033385717012022267327010252199182721059484483243199576010847464611775433749527091651005140992169810916841448169151640410029575376748767371096822277472514618312080849835603218218764896971022994576629464632518452206466661838856792787968155346780191250578564154577383809694484360898020034159212000167147862686723205586114657213356017370781978717758932280087291886014006668640720258480125283718462117747187664572924112407109344732708342935250769165342147277138702152037230241368079316925528898579930725603086323746517020464439981530191414174342264679270624776651962325112504737665763704941928921120168650828917666269003100979507519929526532707280155824248012480691077691524847097738719328433772659113175342931916962728294172778735595202179837679203842705763256560084118353237021673521900477384892186532402015279629586822796953190084882405614979192539359561323495605391006838466286099928846330396979420067312032294809666617106215041896144789569043199586269273243367493952387621543204981238354677872511454843869568676088525589938310892434350880100356432520189971095573821764163520757850418171347359716482088609821913149758672878936134251937450862192003075066652461973114660141366276828557357589471042507729438911038047065076440380030701508413057601641757293633218248299377622699983832614388174951628528520455146246123642729536032287158733121614203536672747687354520099397757736057007477176799769204239246754318270189498199142594841490949067357050693049712801665561311579328611119123991243302302260414643852258073226303698196671909397619826888064331407147812617804962141552371255327519162411607632784643490576160341439689428885026041315684806131552152018507840929144434148215429912789977885654186688942067451799751206034105649997130356209007003200567950469916776791887916026553420351369345765280378747015606920843119322448186606757330765846163376705684245569883126790808262889089515693797969811377138653015488672724461510446242894319924308332302276791431702251394830916827630358677984566468411490204452021577632092120833769269951969648087038977808935036096677400292356188345380161240492528820649003131942266597097258276076723592292414269152856905489918432693294700911772892595917486376279466993439166520813060711056295005414344860286091925234738667178237131813629550286481925888869248195505743015103540245194969064205131278714882370180649595514369043134981250127387374816947939703591611887422717104314297147643490250699343541983795001235530015298600725503402526763446984718180581343463009751696120397120312739698969304277260891705124342681839293566325392118450904004559390382394211874918620152212227678969531939135253691212242063535515786993117266885706145503320506588963539183912290736088024879666539470555371742371583371915438405354946657985238113060294439953260262728852581799457673591021478913590954771295871633493535373906745252943832903272711706166853939462939928337857538038723529865574143616819847381907142593216485012311825644951852887046348390854072679914766822176095475181366808767964468095018702610369849344913639122657848472261706302219503277568228942645744919482642618748080810812856048126086768253751570908818670358469652650780497159601397219185181966395353825764172394847181852171045937415949092868352770192091947529582076739616416898003506465787381718925281842255298822569837276492702978716592104987005532181084962384111449836091824733715934025009195230965454304510340084997260723407687891845592911169770313544039139073953338298018087645712648837615031542856122879350278584735793718232877425670061818795635788624561728444925581540223886789130472741585855280887561814770961026560684629422673370602176624622153889924904212634638963017845052434287257493399009624832174137887011379584446723210532524457800438648453460379569804125110782914382755610242767921383066754671722375637809674483807062626609570444147004430376223341373953604287226548528813688944741218012955415220957168341214297934892223724065419463779617020862375387477461847496144133731270387553871705726881129630889972207784831718378161471991258869160241564072039805296443051427249433525242530628072611924885836091253718352281902013523389734491933547129086123448419494139538581790005616142664529514956556324914561160027649426197591128139917582349706491901060563148260129739239103838870599310736529019641674343325933239959748959946097487985870616174359302215749120746376753046262291967082263747555718865793345224915714047874183746610830870723035924558663694218883430161581603829389811736630613515564390373889200598533117906246303343885911608889533446939342097767630676313670213732082527094003588308212487833697031273733038838995059207186726008919017371561670250605468656036705489532491542152245421032139466306505888375978715706018154986402093574251948098623114953514068062594688324054352216397365057304652334543110395151818006108728920679194567003685233699853975935873847479189800737584172463698162016293460124157624563560250910670169206560211279607029368756869517099144895646744987342110643501294161636740024191330434880545864078828485322255847496293773242616961897328938750029688929821651542087105121342074113198567250458638170079925607977422590918969292936965485036622148914071540990661392906375538885682272434993851622514782822410489014624096408423957294458667451292156410923290997498174013539419764063320563611587869438986532962409840460521136469945587416078966983756210418745197906312902996945660917784362352908831247420010170888315866617991786757298351849054358345771359314156933338912618522654751241004284099788500869961349091024841589125750523249517751641521096533608328999298814708969382047266927122547411841256118816022664505065924449735113419479180646784261676480573608744581334724543252784353117232732340099630666212191999218033384645332238687439075483968450435281029461950749145699417989471187514208333701846197619169773464548287164365262219917167282391998149839173469129958674456962172685548416586461271366722020437453514257412040698033047210267552412855324254184466656379222167853218004304834378159590306842344429233623258400303000762006805580317990598467985562954212877008724379491056481777369778584408197467516835179352668235080350783578807193566613420091190833822226545438245114815324416815278365386062064173406315022753009044400106952928810882873374600527219212798620645628117873059775559290782172881536392791509860464338034100916831809471393263525423501715720849010787035213155814854296855771552365603502679741055838731342693304338221906369291126053543143573548873257106949671725354792008621349379899914469596559377611073078278628213328014468358392791446914008553976880855336949903895046519636798376482510286789752790374317289007699456453102488464438108122290636629251302507916075829065640220405599582871345702493501225625861455624423567645342019366897182132777357209074466829688386237172141214757803220656750574900112687831264761590991840123619212017233749786918232496253264483407462954188034685643177720254187628019741448051260729119804656840495691639053007161770359103045080926976329629010080188805515623783068259862069922093028504434559484880420130765078295858603847363697910866354803313225990872974550058407735689486732580779566411795875466442459072163951294554002113969579829203752012274689096166906890623779417893753688735187064216070047495298208713047712284432745057818001677576103565205520450191879401860648996838083360053120110155127559834937378096265961150204928060486888012142953517943243730711392432085912871520535679114696199941148720207977320751984199555180761716066959006041330061024176527645681471185908242392930099424405417638495019352141584159247276911582211445654815149478296863954160420538115275504533491137553249390020107652996003223419933331070150601730616624554078150372412958000589155659542784003703355121105201085542922669431929327480387789592265038993353067322813351863333924541213572067044233628273565400836573181572851905392207737739340051016049712530324267224699041713649272328531030508857352254931632491381930156043067569564850560665305711263078046668706766960625341044132153769557362282675210253730987977958749638744778262599319323759987585430110606766247833150846847067147005158244240787055621889985511795887571642133396487224822096352018511618716713866925934939212937070966497100167957275524962614611430466134925187205451095304293694080344367107114217338155436831424866503375845040892229324316475158958304640652114569585200752134999963726659269972635644441383040189291066206852137652286829106135258341906921869277471124892336847965040011717538563837806505274828964912404330223516961765494042993967402476148372976440435158519599247490887366803287338701483724637655699238041328290188413310217616063978664031175744872290846954768291345229042352036849904307939321092390662125399566117426297970999081762181774685414833130051312186803070851430032690640826284077856042019383102753043934923692749331472466853672127727894531685035784801927339866506974407682165776333121076836672496787424730221088500157845149193912611098448183945440630592845775404090171132809230347443104675767998531882984807318044707717644600372952443831323518941974699590873473745837208557619205367837454560080516695043411251104333556286639653501473096250880765580043395644633180378246981179288823825310295689722815274646927565979608962830471502919726942248723921033704125612591129512496088916176908446186907065304241953048385445938428617016792305221385385067926083945670272124040987757288293519273692762582924241521688526956298950938813195918420581850082368843533686178197512130296901767336417974826652230029808594740719865511084149816025557111055620457961234375355339627212236321787052574625259889628573010661532576743893901350286596538374327545505842412507984640651134654584121372443768124200844259800220432209895017119328437793526222122844812671403352590795057579277343340442177178961221165802583518379421300301749292371654633443464989544430199010540591470621008571050717090890928555619961106683110998665609488724705639427577649019598836413508105895376716332338882137683367093734402220436050297790756040272154322111820553994131187220280023214497795747684144474533220359780384422031047124802802128805222976640527344179214880418999469339613948245516920761206164725702189869235816401582007202345075396241220936667379536063223446559522770715376343958132692075190499200380835546052274450057449824411522293415214668104031410109140869687019546866940462698408906981568170002283130626288169150973539824089459588687329728791800205476155073333803404259114643729628126847795532187715101792591619944984134770114917360879962391752706144257349973954212301419419830270204513530682917003115618273955768915089038962535163857070428178173177882852712179127729666978517751140688595532393392507393400484762020369202701335732177022864471066427388148248715158203160317745906793080603162640359943737417030991977549062093441073043602647396574681894681871113271213053510500014190823907085473916014528489046038896752305646518888571838499625478403811522607419412515409971473111430615701918290626812021206000867347423329252538918197487260865438608578164961328236869318848766153107803139376969055526585953328592983920646519864257902082164032306034410035482874077492976073391742957120881810170384284254404912054585091469983928608576600395048181775951783907190257935049138645520532199983462262565293927754096325016264955248803493384795378606030545683844705609749324695778392030677449962627231590805340952609086693913896181310563757418978323320387829961522356947799371604102158079446896616663846803756423013151172470228481900669740260643662035446967947473841606596975418336465725364498389703252592195429655957507339145548007040494661253601842343156348062519686194418959528903437672201778901084235971159546712095999622879214143087616141459251087062819527590564978077921542049068036499741453358627679850574061566836722618527632463311781153332815939500250972901144004516880216072824596245011310638435111434982343298099925545124335684131513507735585831585752415715323285476127613929072780604352034391207415334859291200542292967257598154187028776365779036973934331315900860194669906907599359938101463432691556512137397690838618860161187696172653800105690104247182823649152704785025600244750538196288429479013258675099875002305589314421917916334563080835090035380771849978821140025226278719139799904195213162233760923386977143134287182342421896847558876221227543906389983361885410206663941022379713917005318115751076012861009729625496372115951663417521758266770003796987808669048891984095463620060779342186449241700744548190555416305199176249327098731776941618440346260988401922901039018797876462083678166198727712927466774865059449286222598282844632520858391898321561347101926747115180474317223871155592531431800089621284429466011429458853008715770059470438409636158019443807896008547607997722072684586184804461933583466830727084407529708976664595411476683471672258051143915312620654451132129395276452856304740504518753667791095479726081900481200297142190350271332743010304763033526062903356104962106523600554429017882506213378771691057090433984123435434313781347125725177124250836937032702030304320077100381898918131803058680295282293371041154107001131333979629475234029308594879734908675171655080584817347690905549392898887883083225733366250298330058750703428884079732211882314326162869108073337735587956699679690047315882104710096657267613862060457696852522217301789504313141902014962058339940709147505755765553024946129311824939308933922747427090029428574697790460329327816854671645961319874099711738945086358161894228689988264635950463333464260449141150140033894305441344685356769026515215418205802955312547140513132213376474098149311272823026596523352118180601883044481256274646800024963459611810069957083281051097283465257179438607080762821876766926464200662830640971244117772200047415661400983698293488026145942442668976437422325963793967582495392130238633186888383769852400525821774693927963083764684766435264220125781220783696544008192002094631379382240079004247893572198105936377278672870110573944560239567151007486765559879287292753800081560274445053301020097127137038920807009432834106669399084443013108657116485431018547178953536587342783957293291767607469661066624467784953110290853259815111810428870380707783187162132830876075592810517659848442444749170643797179814777006151693978806912327438278503180862714089745987344392555503827597388268831690761471444602942217165979429028173005880264910859354596360610487791740640471333333864263384787366073837470053812054661968617803249963730143890694278971166195513472120605469618242837575399705386970447216968826976717563516881319298905606458391704878299782378932632723349573375109217149623774662644682341475820304855652815419169902664888587211477343722667550863331788382208494027976771013645502410208265150953754773908401624753026664883213304803184802443548277794974057797244757723701994263053967299496866467771721452234764154276723830870754387755134780524264757719624089893159240161984085410880072794889680169773031849195577712138855405812725267207981315062201032972761027903593648126320026964985493832097247954037416857095249159868119941127955011136674395598966114278564485502629195320918388090455278024094981182617115628602503205911645668786881947597144413733391879408674508189931805948567505799223694468358158458880791861686275434424685091157334704081196870592326930099215495091940152401664268393885986405536557522951408792558637869222839726053100810687190681975534633869801969438212642840283539477944780749153486899150920780486889095145694533009225768501860476251176914941699183582944143162471208666523889887620111820475667312993008649951744356336427902407548988973154647678193194047967773642418438529779506302253524593766639345392411794032728948541097233752836071501296824551077441195477670045184900719150147158286728278606676647953703083421799448816053637597656453434181283967510120507745080668870406234824736302781279309578399549428108611731871544950034524993299875525341047247195991363448666263537821581381803104134948990195911703174225662768223923383033894847126621786143075825376666970490602990706057533389881344660252196933322270229712603595267388435612254945567188050251833771657120775232400294761171008783012634049271364672290968238201626887647518498780510340201462284396983068952340649026437152572536688190934209199730788045221427052717557925059795310293508182738689188237178339099741278761786567678542960613362583675530094231655440135889912974182423223134722472872596286360958166421344014001520018289146665197431588711925019342645456639423950439258111144038069326828494391045048530361473941832087684681750390700007526294089429921710038724647706285467157899425409802756307906632913453450292684675335016931699668134002030332329342856693089829499386279660267358286397368285564339239183916139466799201768587937589929516969472177274889511143631941035205877257867387890460970979602681106711324738526731391621813810897831744849289248252930350751324915546498488916009598695618543557873541936289642466935799395822409745239428678669258144002113919099816004780850923365511872614469425532039875507475700709648076467531231257338198280312872976167468980830958983724387827603073364582263443559399480632852887538432990466391988057490881395595047189675741941198798892041265995551105960313138775914702617267321367708495980225846290813730389734253723081915385327196147747193529342729366263985418880035374355355314734029019214259059549890369699786762635189425334390525529215807267157898761098886640763712656984307859901475030690026141413685096682567561493927524664527033862121796261911229754361448493282305075894900394290986325992386393037479909098299318886892632031231388371553730957510661745097664896271854356775456573918243114762072883991441306977586968383556077005510860435586510744478206813184460314081502513002409866685698696537199293348145421469545160829675895600062301173899824102651159705830132947301478260603139911436589259391059889961327657441338378966535848265306115435169255305218865599063321277174655254273341211785800555124059340487889027426097329018662567882506395348055459311918366249730610094061013814132672234761195696825404695730970800925985281233685874122745355522704365547988849142163822812067447254854145004880141155551172614903157141150572846771782090536638287045785803390407561832256925336660823940445500802312898612403863198630907759327976179963596129447975243317925774198303832435035498409008351276269550916865927224348973361316682795673669391862552694148634129750023527103291492013786096558846250623342168943224067694796283064683344211370685030460159198717990000615394223456532534382092143299825541412724169986084585390450948379483993410819019095473867783617658364819087569778153117467909819122681198823099211780864972448867127248823594658257218343211054434009290976591994838631783207823217263778079686725114349698537703663775746129639421425308719261365029989568664550404576618599753989153373801509148756602001584709558155545425923577243770232225248620449748040917584684690102987435472940722543284214620354107658117710979643114745002355219903037405593384131628458779827811470963159203197912044818399123839565927481879112718244778750508211319230512590335451538010472391180402283551440569382566322364384318751643374528580205560437041403912719910917330035330201992443086116963902212851515967665380097439024960709692642785689512711589925624179513630318556828555759576872738454789792719253812769402915309028246189439754100036256447931687765445619332218827975375714000012525148173264023904592503140188683881997858223330072010658047534288812625720981229298562588381391488504924639283764738626572819714685668940167884652014767717019478989589439526195400117207983455616442795360257286719098086943419334919018205955277034462047888988160209188890964382104607639276660831761088334822273214618406918989542781666540474751197754571685248988897435600357920609118031604727152271788870518793856102675984951918696519790526215679798935614391525053324469986359852576250787768289408805141644154861176709494646564201332224743426835637968150681499944112907168391901110775682969638015733229892604645620587486031296074831934949819358542482396819616898145023971768186532356141815454178850568680402474039161253883774672526190035535552699727559339305819586154099616795391526147573032311964899937717666824263089846241099554103540494035172157651810032728407224162401654386615552955269122980796571355465205918774186040086895761053968245413890826750923608459808623316444117341359675541208491545601421891300593772659331067676700862741960192250225412839416136778413346409545254741737341862941095191578637477616308741235814727678182082269194735364665996416274748014296226105945857509228428795998965621644752007165655381592886013467750638216447601326106898725745905350592868191512222067693180909493142517655767159410937076955827641105958651295864857014512269380059580887882652898875202589263596189969670558748462922989153135618732055237240768542836601633491156435165367998254002700069695966646524336357923065261846519427908947305751735307028314168537645876703770211713489019089153726233207250454935884835371373063246234909196991523586108154355417440443856907793467591591447239575564155683958061728301782822801317020928266094383031325295350766664775162432657293717415870400602351770097537501226796383026861103942317921555910559438587177348673271800724534887019050080097064351994257734755895152009254529326451954168879600239648680367700122026289900821286302190999437264966521322611240539598426840254906727802653569887360343216415777219105655991510739636479681650397690406578519687134926317985767891393307881765039090927992662077464955340735377468602037017396546246453995157630933510543059196182118855025193301035622959807802976095267901507751131175302697502094599806443782369671706035230071643788322531740872449396094381937412647733574593292920656104991233518312880925992983419619097225504133857130147814155510490793492080437072571644520029143979504411382400496165610508048267597390707956933599687070474899478431613703151434840805622421204725434946184935844950724249334814803627099079799846577095262497876845711033760764037929983290822219638417870910482324762262030303491512033618703758464717965532127179730729390448613974319333308868851451165984131447634177984471908896747705924474765342860593526412334619259418010407254880919022794376533124165649207044839429357209823884258781602150167186797450660731171491537862520091810529186651775642604070159591895117184256650420001617990614034640148933904230086215968397412614510806057633259026124575976719661689289355654584910386772839871952780380399815589884876193732712694175186334190579480053169930777259522046400478542457065607512739951044414885919980923632488519467902362046079114590297948353582966099831555180354397909623788912893054095295792337828342338265592996739958546269238009665543307779449385161432984654171754661759529709774824847063378242325114209110713690893338216992493168618110251895198657641052268317530969861744727846178747399785995771014941164719358564115612175644221175879235412645911308921793903885428418166069791555658094133822490352647084203387122862713144444467565204741575202383910392984686655512562049639895230014871791991971011389641621450879045266143050930332540861758874800747085845516512957650175690083556108939007729214898436926601820701721346410495937295407107966234787523072632183113620135541386722905281639172195147527033147978221808834665290683550096394209735345442157364078342033767942469367300309865931207135269628613442996090204037026799406279549575463789089878883973941787095075851024396541174705769276149188106980170113966289019150794188216300175715395047053105776255291407404066670722762304231723830592891866175727892713130819197974202324612648848474493821361437314916448305796628174920491532749569773689123255095550994423580581508217514432565356623389958896454291196446465708841983958803539635443886098077143173891433319091705306292731590347671214421416088431102031102983645812319997904459348338231282464420231140158367352159004271621093350031370784011864077832937964745263559115514729599198633989764963041787425210775697986410616748718030560256208740680364289411258503400350101838464365905978372026841438758107927801951676458875655835374426990397388316499463607810177397553477647344853934610721475175227576613240687783996063912936707946177411195678307366145367093380637072195290877841182493835762076155048839037288341604469561114647324099305871908099017533590135694437667699883968048583264889323845365797531266917638408892926806713884909496031699649757591630457587921099215390032789109615260154943384316050079648257931809066642654773922677126742482390999102583394968100631072792745089522915189737924328424549452984184002832356862337302280872993338223606339665331420430636732272140023834329315359808703170359447985298718891179334745678959661174232371817239840980104904104607894547653995220755255697347101165496880958949247197992408442865367325843260030873610281068887673644453469576924023967434975401852622394203260604611331445117426705115758783963561793480491522994990850019975354327441535493896638440773156199725253319460273243842265779073918127489487033598299355473541736347849984034848962671250963301230199097103787517718957535372306862381960168801749822997277731970705557194094898902239599047912794705205829676835421052889470381878184791941726171770760017298786471365524478928798415176413553308378348120181274188477361948957974740419457165447886757546241175748417088498708830564271691580841432497424000014291843749833582681771403954037935120449268148763018951626938694066248343581761574254099110040249697733765096634490505601713853744638804544324376994461247210854657292188997515712600433292193934676092681666368814292519989905191157112978140667062714015518747352901083617210850631082265515690315526287443014674821714610293164374157094688752872829242644624702136101710192720103709109150772588516872337897198987408569679402770279478672185592571227008318561164138317811266713320626158044405591897947181994551159590363484524572019469601861251491722638267326480586960128575122059914230588077537121250826923213208459923212376013893157562237201779313128847233221159424403451309268857938325106758409379616742718348733853092230236143029440692076027203837943825060095629831727109478368111743517270912696357811764872611261925906757551675747905863629407325685193986178983036930132008693279429772515326342298743607150885748027392552830496860333194785174882175184066944293002235869940966551648556475209835276068282912526692051963143581073558219722491974266384145373311573708369227720684702781799916567156957470603492270235455152012026156071892527015881407722534039711670240959066245411960791759816026713556462005819431561534733826967426902490327683262159873669970587771434179362189416821670452150194897016541826736557739259766779482842593533301698634724041288964879428807533859114876548920607300617984892339359467477837214150856220834016629129250531148139983852334084988138637946561355892533157996439769817775486324532814677905859333602381561364420397509029336264306361536865102935611252983074849843077409278481250154682984776237453709041773623674147248466947243304810047618665400693424320536660811574426897125379192200289083066577452350892128954557800653032006730038545604060456290168803708841813350010324947327207440025516070137156490864551828830454177728231189437278668060606150017699824993862713968399826715114768526480390337998666325891576417569955819045885490238735077602949028545294397797473674256654969575827059303135048807812523256697559251197827427206581450349384940796428220313387648051932744255103007151820896043597560529103519167505378091143677551913930978693149971385885685725471511087262681755490264203848124436339372573313722775343712785520093229822257438578026577908848420161697737933539464618189056868682712712594811114991548269334063674448856052938852891735390374135801281082541188403483510857754067223324235803193495192483267390529893322222686331154887884288476883081409548713614899054419336253660556744314480800799419926042690839979122053606343316188685690323958347962457326518254463300197920343806745451003424550574493505202403405762667455806628490884106754210866570195884477048839685741266918358803228621225007593029701955518464402101906064467316801056285460117960067162842403857454639506441886953156031578814815080844052791766367624307992088331494412033551403849591627886047098821264163173282065149636170586818446121669504722875015267827263823264559109222619507537915266337595914640204572494951010862323071293465634520766781490238759251429255857611994246358248826584224010703449619083450149515155364442753738444551411733771723720842701511545222802531113889785380232293549079863112900199333119349727983913413719282120212829101697578316233179143891890988025306672881424855046491840365382495877735202652903590975017505177873145204733554022813491306642975600502193143481839430067606117529757815913510676366583763432062784465065401309116362954623111626757545448984185434434949791171209364564033449549375526555321022506144309656848767836758124229554705614483980233225325366752224947924662426464561202630831546321413331824413945002481817336178576486535498806070237677670877203908518053465421907128148611317230678927648054483313173341373995782239475112986350173652733656155042011759874841804392274640560448685208288633708511156347681493849881653473396239888176300575973307242458198955959600307356516260104219268771061769271641696869426864249117925511825276675606491972894244191280817784729939865433936562645193128698316727454930069139493134949635392815693822078297616923665502105839054531377598656903399008316116977592511632006378896425963371365687210089654746645207245013376213986259816187823854717713607170838105353053449695457273311266204123337382860186630914745491957005590764652430497951179401795040448848367811086538331177040259043457333461386250124486678185931763664118220556912082637541985947126648774003184984916476642313583439485909047254878139619845548909561247008694395907393885254729784098107318947825410586596283943325448728939485574101541255596665535328194427525873429040995180231235015922931745936218415655477568364348739986558894098402135025461812093003348823126575373325318226726380378245826129281029410873240069477641682976278912465692738758844389959623380741815573147773839749949013148991154037648139006829551270374007953391064424627586871884332808174946461557663094325848966684704920635515169017252178908781788988853164459884962534355843691152133444144881304220892371029773647903599639772876073580523891054087417787361507213439543893583668778546575235817233036954612034566632899018400837125350018177675043676582059370954760706225963807710548740706361202677542596617373901896376983801173444671179030090017482403670490232598235255266052696443926074198784527310869415291618576762682377149115303453067045596487120979724709468805125149623953609896618200226887616247760005582436061452021232442647999137280006706725522068716300345693233657100406219440069369841141375736504744356840371149746513670507778202916696696753251268274438627862410980725436871014684170923746960804579481946174522816736565618658898992147559652176838618776169773336722114227501315363508576571600603348800284807242751287015643042714592925056618440311268192374274288273687331787031327189903965455574234267418268387852389223007638151636789943388535140254301857176994245392834283212267432304254091929434599326024440807680968803242062782755408213399014552054456671070549998626246081246098146286144414875046139082470314144488769270744383764832107061251989102122116300764566506413466529499397448192717326759443905942936228632578640488140383804180691632894984306308181153532593385092791603594938037771554654188124569672204048222285340972925473094624716886256773030659731275310768749699745031082104275505940617030736571814549101261376333894081834970504205539196245885965697020356439643089467714135299678356976018092128751955269972807443282851151307492249202765490945477900225565800683846155508254923228340729799961672878594885639348984367557303593128362473837295134640735186075578409187996323751112723065647851904027954142205823940642089774580325972976422415315669125155580904934934811520430458400144725536865463652764764746361827253495671974488340588806182126674402895260770890214435831110084288799459697274343829387872801761650900749629511991252023476755202634108050762941141491167185860245341895932241737500072664884216224169688070203237902938813140108519774441697558078397062736346893912223189882917500006913983938578897595468736431687045721924019838293357328781154249690226131381596961221262653254415544634477737802964171790120290348085433617009290854887363850859075557223228255754883537523397093586872315104124025185764991359058272836670168671230940191690599044500894440548452458748645605725909644552985695284107276444380022526137570603638052719507828140549557367779054272525594591638049933395041963412691990846768967459209286344949904060188128367541846098145412703989118820856179546384134593722626913971747919107400688876652417877278853771199709344067114542979870681544553112201534362238589118971495375011771424966879278966082005590981763521264711775657157333217424570155058797456499750123004876119623442984308672628552555170797121056445136993166055085280699911632075393969121819324692249337198349451014321858749902496064926763092862381336200194558049351973412171026004782938810943261762514100762476702789657285796526575245952394512407210732020986042473230079696412679911843477172532109742311799832107640501112885088425052602273021906830884232120677988620132485636556374873761057996753590505614492730526328207453475778731017121109610378220719937800822349719018259042580694004871684651581323004715523752708558161516700562583642556815810243307805094422725540583473023618528217198912556421994497639020651546522535263779363508589384291109444332098023349648766288202384450729585029879666371283492258341539342965651827296124094415798541401432549441470801233667536044558697464871143142405256948921146299341174008172147256724636083819069273956794825177444850364744999812774411137156109653241674921964221912042024813342553245115641371735986998623388619542494740516129164645425722020307542596263457415280435874481575134167785299409445354290285246892659792452377868023909959382657152043881114001591824304839761088510867644949061393812468633493222782667320177053250154399785753696160717549327347679230537062207138206082452745680123839985406680911001554557012930513084347881024173432885209279751244306273748418348270971666098328172962797144760740751546556820634593168382676007306013323859239119209690985575521684712221583748754121595047086224129329382401676650492449501505178856705206228392347724610914330141263575993879956031145840501812913086495528808189567319719706589355745636752628398212575023002911920039901141588946403868484649409805094336866250129357604874254281999864761936743341796619972887615946470799470443910917250592001497758565483645148984050267446331432069011047631864839773225708764465016023669376166045251896241812335643523963894929770766121407449516553944122199432277682605682390923329053762706726756200312409645265230688313571061440423702850566434983141856365555043065690722099918478403593878839750992907586142566600072436894979659600648077793157438124703448437976375905457181320472718399820266850440085431746188033319875972471453950815038471396172137852406902066369192756682984716683687899788235909905567826074354694693553396829796565454916077724507220644584715929513244762400444235468673934077227714767210596374752946597998205151631511529188156313251344784764483073757651304794611921506014192229129155526655493793996241252875841740367310553981884316088374003402163266472736787322158792030514507313861147003112741900478451558546845565405555666844974212406285122601463521023794946565253487553417949532624949295501017619021396094394329143444514185607867200821368258018240373282379574744216037414187187463044768207914365530914729757879320077276647087808733576171978757114896445289484683700350849494177453371756810370086929282812108594186689404515674587646878172424816052790825840923251302866711436956464419365392350637243460314473836317548872795959838869207533445140655831624844357016287427940604532326289399811704517701499792446464189534718885262162121729032254347040792054682718934725910181203466590426976312810901315567653362984064406557046375280431210200081775812656513429104288449535448570928758749968322347814528215055443922331414995064982983047488796016271372562944858722427732654900160769427671967601202756657061277608102213447196475640046896114752966664198968324338826364287866205622459351468089803346907020383802826114913318169610574360670661691448037074841168579376829994757689082792532353212843531732672669599975243578442259462558807566545997557812136349001967234319100125335860073174937772989136922161401064657078065741667196489545696024347075358012228756433073636841043520037048614598495347961996606897625141798759320090165743725813295825311016997470759682210432359780282780996910261387928460888192680899874915239830231295894006271243444114134819095272628307571802514559477502096151752142468657930193518063509296661134679813391028915179974226169359975427168765962540789855824364562037413279465684190326307015449624736533847974183217603192107203511179750403691242825384494301912093789783810428797586341542885896523836789355040280963153763781561675609108395120443349148606403944578776945598049345419564496932526686326790505960890002021867587431107293860772919377617058018895831132459505544440126134800752246325493737848244031019684366128851928234796179725331769039677550001700089271714852385317208526796590158965575145235539782245401298444132787810518942415272275473136308292888056029198271809381701203253909171834408895520906809764385429821721237349665299336747498930666724129379293525584062885149547028833870978179753495992733774794507610012080730868135207750416748400136276400747883622493375011483985312092276296986250679984115163317806995441235375377265172718549761800701959633707555600582988038314676154471614562145684782422249690081332755956227459966986759580756639729279346513202130550659115457572324395729404657186976494933775160259086552596947938437402565081707663136010225867949112603476922610366548752798917694754226276978585986279522993670272856469424287906887456258984995671648201355176304623677350322390631403483016894937477127752287914274124150427685629491506047693578125291523137987711325120867002485953614714459262103004758255518017130341125286184909436141317332719402340118437569536054725145529377673085021318810335808787371574841306429031616370157245883748320792183313072204791617419264615269455609883016057728330836169564651831691822495624035771068960585386836934673620493947539082850219029241188887913021736158536953351122878607991594534271901769776998927037280154888389487725719793934506435947861149375178642320149493547053147273388527235831747165196015147984336578838148377360148147589096381392185743805975664759626687114787962631214887615892440304551348812656445823625490755113001816220847760323722594708880555061531695120551804151675764974909004126316436430310096472520409528998941569596443115511809294196139400502606548575246811975286723749119315778241292769350250686887506119474297267012370458693154769920761201819898841403361481972106910596399718749094733861297138935452812542012024393519726143635999817616214263106995370356113245566359898775987231599111076696377530173595468129465079419302527924068170961625600521102253156621983751024015703009575440621462381633234890900699227447194952644379408023605646553029846943271693219866583703491773667392160683797157176194590595948190125147479521612040780927489362175835640436206219992318174436626961088031448196208001404738048911382807000641812504435146821486719687436134490285183363299945784108246282310099653816660574896321616011146606141622750866632245517610276011714382081188584701050455776650562211091909347114663814594227658348736538066914866500272634700899775962541966712445290631366439559270242244630369046420110105762341719577323202897688949363792817607818391468414867042056983057707001066275600190465680165966395613016634797270262453285235182647847886620665989894091359963725128325017377585339073144931370300601056002449095140014822251231966187547105085595704402173627898970642431278055818526773659740406335131284337878634392796011196814719717907188803332979689426084161663160506957469089566306047550257889898490821690568896775212654495324325268929437187151277478976040820679019703402264112385031780212455175778657438275828763423074675045742116447806603852856224994056832300293716075956036713360345224097289295122701511866924822728092343319113825593297354299858806029145214966894617048388143481216054162147501309748658577491231255225245166021041424926928815578201609603744933919470116089197004307094295855750617717745898218576172653882966605160130621275137713664616352788915048664758580926293143950819045699500675392616851431344670308444112382753556839987924567809345743209547217891821800710413296879493548254494552159714964586511528193162623848844448695986922247617059215634189545535169474013924923013995791418543302829504516571451952853776997831641743821602667292022400436564511282037372262677454272136369095892924450625787845527596822073284682549357041399414139227435146446455937848471362679259641616126397274402976972667416616199187471520393085936647303336162273654537073740484903339941401201303012598488677851561029056341640799761632538864408224376229591977982461387101495937907414404801162092631307931236661480514689049475063610772304135035304288982169708703749822002336220191316305532185554280558689936067727457015795024306409428455119074481464038353758946035766351392281473286902010411870508874135773880952737925997634946341042683783670059461156407847495198393830122028914227979744782427536239035349127543261430164712627429217601050512080820290677298626147674094927095599036317259718528337407610745259921422190622001621056221213278724179214826021935631835979019765159136225354599452805602464719490537214073847518559218393980795916272031024247717662521431674271132613933221973923073811904166199478220284994730280550418231598430405386479337082292195757633704722260534815768635945136541220199069569483767285719794739390175175871059777639301801810828807027190416280619106983610046892214664795120850575456176841470318684345123804331394704184251936464930340408238001803945852214735205733129089172870232733974669802551261541240919954834143166004935812649451402666505462420442217627029259774644159712393969708129071213864436235329077697560165164073970737469859387299703587257409859673969732399594361717683118756606082639044152886124835292411266362015462185977021012945120035912879125823826530882199159954368790321679579778797606131543161454244471914602283480959936985990129996467485895281745339047510422565000106695216096077012263458685957824893850562270088127691893587349337240563111371107840451166987357277999048241856576877645550988606123567498351116888674257016129471164977508875128969375819377173415804543730024462939618062038069017770653944027845691649907658531605458278950961875978843206080853614977787934407228506747137891888661238496515132084836205288846243935135007920542326037640789139670045475213281743258674231644979908844291412780240831653629896953467556231349365146949338170707759187575272669404421485309591047328727138519507333282761436163596975407145165690727369250866697695103411722492332025970879078850956613273416488721754097400124789580272321137360847446065510254439479409768933417098559787886559109767453739465941190649185073973907269058485243544512358389861498894685892356024841086479587568603108046166309732977296282200312169135020589903849176924730595515887213159158763714985523514296752032490474454204401431676729797442178348600766777564992609627815145414832939759149131107535137324251060850748965966135665175461224764747541671795960592843855428436492962043176385881113358036086316955844912271986250226622980778511480967046533492759974484493027165955271335571689158309763345417116226930923840445761590370251469650182754128150123781473190124533282967080479329179335507936439953735083435727746989505359768777242891894521077737997949620194821101099951098334473763031037711237255204815034868968753265826873543170909524204031390618941235292160970105358670337740261134363282475561404776517282753560532178450439473779967719777073920023120589259475620318237337440587418003466903510650843593388862632555891451504298293476305985506521738892441616533240249489736783121650625858403675048280949958529172233733938456817347583144607756840846217182355620528545165228892470563044163806687535827291443194389062191085443251009261275378170676274584836328916796831398720931090345001701655249631334190311632662534745168941149090343427784403356232805877192472312084571997187207489400976002130975532505803467000066410009737438484000169258784248853472513882521824566633632890228771771680641732868579586553236783942669725199011820376419402447403769778870581298957320427921831498241772608811194225114848327008576379726986839501403187016707182071193406576578014636215280906346104596238663910549746979025122240897509882008485832215310572201191202332540640060289096146397930635180434744764406128776063657733039822844584003317771069561697128740050050659873061251315859791521868962460631021660300112206186138944225792701918690339197340678017790904873085604455929704876532921396258478221758088634928594688276792275184254736864960673383394687927897621141383609680308138418383486975874339757223723429671019021591153053681766922358696693569594125229894881103074847842736715296847952741388661343538470923957715125579518188577223895587638582126442145496109846854603887710994708002825290228281797186072776183089774105167644391038371669822783674283085300817878419509908634349644221389486276071571744265668166009343715116604087091073785500283722669162751191279282337564098950051281326523092938513420536450792806361292681694626680489073594923435449427086531502884760736865425365564876851564140332470262109824873220537342212511983635850193860887799251676462578172649246757971617923569848612150218471942584877801371551811722054878665317923216761530202757085060281770453053308863370055569872172201266273593510621804031020933266521866672868607700001196485325893538441735629192074865355058944766248124879299109484759731456624034985861686490441337417599379982277681027232416166055132934698943940950513669284907572429275260372637780578660886894647388403496203278578618725124154880176119267011811147137293860203325663356417098242210693552169487144956451982491927227576929812132416048791062598543092844834071403345617405631114413072746013470394509658142840141245778570945759625112727491119378179268833735990819880092083090528117055298766184775410019888227844865887566019539248254030020248009703358383107307578969248707454312077567782730421895094578589662159656802284438973519944504562506528993399405539326017400159138716261749446282673661661719955529955134444133999028060051483380871292434015024266238290505238394595924816529209711596275353596036084657248602434180721853826815737805818996761139959183720574263906637527312546028030389116776599674682146915227472019907102768024767204706074620805676692934876617770715936482020857196692218062028346331821217115688252434491845210695634341678725754820984705079318588036480187489449946136024524458496505905635684136344688297641745215217271152412742075429458822613957297306378304842524684198133820816877508809501881304226001305559821191794551999578384714597661278906276172314675538589858523484522500918753348884415703019248481995276106745299853937519526986911578183730740646916502935969554717446880418251421431806100514497439032882674139121633183999091033160494873545394198656499464290668293941334366185185590642412592231451228155270701946672877748396710051561620845104469524768002868595111782199840812663958586404455507784967011656051596288280563943804808203075890890781721666522949830763919531579164095548730741452246940657336045226876681007418708871023265182439993832737757015736339449243715497856662540701797505835061213908151183918441798751877368799978199051014094998672738456254238645983235024469101385755410179075415810163899755306126038686895229442377066317081668571271973627231575854837070283937630454690470015502466486600138453188325129983588871450880993763760006209951944250684978742995714555226635553656376488201991260774155036119994259413101884790710794350420469704141129055765667247262176744742865337135615041481753340647519252694990170056458544200218930896124044223915441765812377359596257607626078607300042636444782272536992764876496604499912551435976218198266051923563374608716187472902487405717061954267236808827016559453223398868246324137276941475972254325486531882476545476114053281960171421636067414079231283344169363512563825508122331689152525842045806870519142641201437741295051769940234778016439815768593407560204891780126221614420892210808901666572458219815218707927794081013787875588187658859791829721541218178385438470245188240745973784267334783720382298866042400914905581970638970895748009888217708665409074304087277543359780545562879646619792620542940412142241135969604007866321913408656678307733718905639330710716259179885006715691711554221597082225034135259314730173422204275321491958130641975525084750240591610220246931798643793955281734519929260761640270352701278042070056113609287930729632476260420920027098743870202344139179670732750089973150995090170864362206148930139814413166407936022987681005950535996050846225284063247918320955969968164210750154430406889109951415567460954702282303594971157751997550405507113791589956773971653023095968093237766447146704431622363549414692453909874157809804803224825990944859958827907159071527084034098519852589739968957298028179333154379037046544238435818167279542470466100597473118843267865070789335892288832557371436099895855111092998068390541919438377486621027232049215473891138970501434215896116421801167674637844091399652650446186683815176771013022812652390176677711943637758877083626637658153507868725287727846502833755228647745818712795111671141832488003507624831291908431728248463456308690867074482222814279186054552577243790877497931288983222790705135380560270181321481028115618475372259836020941354890859904697400895838151482750764938357225797808798868664836816192594937871324934426945428377976985632515241681169834113422402710620339953743105490643368910444931550466496053202484232617192979118473477942328259687485254508402952609208937642524867232346274382732097696790347044936275390179535436402929983599584498065385272543652913192652072749637653851820481410325400584090413593843625591163884908316610907909569199087265294527818076650104318533110434939512087019937130340537032230544664846688993718276431680447737095614117266455193172935819166154016007870472655720381791919414375280226091892341874786094400701523746338297888970608575046285645040962013487765610929249111019739180103545796357718398442962418906965599575327998670026985780043753652074344337284832807542727526532857430596288871794182454440578202393575853375307259004610325537728572715501009749807130670324466092291399829461184967344660947895352587777735195295626403640847004870016932923352881948278189530947372869720338148072188970464575677905762936103280126803030549927652620245662741469984887822183931947502993399375794423971333570485401486303359560056433660232510534869179053582596409132697928404768405784878938790376122457290670679182875472282006698205956619852323505308724205893211802101769893445713544254354190835738965130988560243041324382829829011143325873583093789403317847772338541737142865880413698481464286288626954781375543986043096191870826504252485870503879883930074922833688100461130906322221092989025337994150516808765607765453185437229313145983043327646956239469797016853666898384703698019298447427545400511669540937580099693296214800065213746178615494783466470844706752184414396388882270407900498176929703438385920644903268970414747029118838125434235526859398444037786245209837282841850444621513165459045462010227593847380769563994692427486840484484101964265169338543423831382113318263854011047976195312874209101301166493491418019274998485439390346364507864178972914042663303872659290073671851559919963334856061712143274626095035220248965690336420267264485584410860105049442353600926758477312979667390307389473049552411471260499725459079770768379278563598399626654630456515697206171686189389198238423730832182248813067658380573161033641564110678412918177404656448329830705595959234709241426351161258532023397527817860149330305175844617905738733513642136814902429446465488642973274845901859441749264997841702016430508105627594472463954021406212874038933561939912399757365068859921717368103327338728312767620763675397321123881798455688519416240105916085015308905209256473973950597953312237795097093589113684047981164198167194330756283349196297398078021162686965187075115518954965008278740504907652138892700790055138171379294874791067811120378772967345371929120679042414061844715500160837148543892983977395497992790550150769110855155119355937793120255003324046654419824285666246380237943268035670791391044328060140467896191116291881579051736573632375712872300560708994445940558576129588882910397124209074979176016470216479914570198738171315862691676307404005220616438063897170025290879394567448114566610475596875733079064978155585130258824362719064222749996646091021356552471876188980533098849201419379182909104451827523758408802268375797844155115605623935759882838830916388323095969113168775306466224438532906163099732847381256114157094458394715158064373144849180372845088187808759517005160433945224661924232818207685587244716420183163179393186600486006565837458540671216661847815384819055645678688479684312968548828223895962853681417713890400779203301356667738485864158579612439021088858963933392855823438928265198580393301442827882471419673106568513908432810138510818494578504267188005093192366562015749748921600091373272186249705781084609005278319277014454079118145040013774878111850142775319894944397991653917803884623805591475422248119718975730571906298790672074027465106918715939229533598833663918378366721531640152077370070640238954698836230416779997934236440123546063974611431589430611393929862843129963771674686441648133128881974334314691661477839396409046411800782988204467934599218453603477487482626973961016205415426129202104705508308535548960814087322193759873035363073902905589003680013520453585343186807521610871692296536398765715267420144804990827274881978867715929462879179732004458731195055882368159293606058597666202198826031000381128748672334902748576293332912427657675727818327980586404589170536806342694957947001639050965545227193951911782061072836185977820129718396515217745959267414470789370435288305515340751280464706817830528849443782524187792064796827967637336327388947360292789540873787485050301234276812815505519984138717721846152788762808014912207470682491980870547723052530676318990312720175257165892859331794799130924079053590597465893158377121726872610574332395487345736428719607060819874326586982420112184613619573536880426381469631208113474623696453502669427161854071051547652106786548610920135891107583634112695112167810838587312114752342453324586458606725219588459335305315997645504404305151411699580067733205289630780907981864438217224884127966946412235123630545560328543332626898724755058468442904173415682504428258605082424359339426887466096250587705288969298070272503055530433175166937102732488720280433055769967080113557053723511361130547639576973838411603072790604367337716751495966167349269098377772470658499533414117319746943345560323135085366918507687649631620221028835879509493745033119586430223069952503669174822075443634107367886965411638596487148237018130188834651204459436354926771548880774327137758111429578379249871760329716722993305362508245056131484030248528397017026892906850870085707027647284554587763615108546595443806046493932437688347038462967951746644289406529801625276323876052179435373272831070544549705599100465478396327176472468141685327667996475941598920309633877932271727715882697100349528878820564248483672695036899870518273823518060611012036447588125332811803057994035379558061817015580111613678177923971211425762539345061317205478913921115967091281579032488845698564660688028998357615456610217614912102399495722309743776463263069619348759314726019576135805969812997522536739160440052946497327202161579574651545160219636239273956679527878019270319279777763216392744781209659253363135193382038467227564266218435102903324715834622242362843895005400035379391997572542370726736183437975044949509830887036957817427618128132204727141597099360140319641567556642461414554757552059621129198031199760123917230291914509032777126455914128517666066760128262078212434940440480369125931271164945189875169733146204049224454047322938101876967923892099331294989766803072155151501150613835394826146293404420207039969354070462820682985309316636319927051935349503003468759990892244977481327501776899710600238778881204880988757497737595875589778404892054872522586076466136914125238727798769278551207567142946467329416187525474600394149194418126638049163883182656101782791774368002144528321150102392545503039134390965053121030695029419664811972196034393997648535289977218265347809035470768188554333246250311794837646931820416693506559632034730412378968803221578552005630598118665228722965886336158120661685663838270406074118718940044236043286894768864482620781592262612256804966325097716609026879606954745458262552547677556020207885488189798999604120481487480757913080356448186292901297812453998305433895345690043614511423367070916644024301549349052791373790827148199766649720068208162452783844516706004569490875198690839665913350913113429883040928276516680363016474725866658472199885670613324859426893352270396930129284158313982911220207145561229320730976517019678282922665968803923807725422991927822789604850278498302786524958970497740818899002710076808718209008762669220093147669021361033761165740277735836690580740496436132823818023406869680582505897416863689709448711319147076520250791499073686562601150910011246491846707171274719345591709206451341288091975007745939088779196836052882309213885730958110372621300215385854123750434132202293499648084236973582687056782758802118385598003371827746758754409702234399184677021461672457676055218404208146493944914087948972013058952281665575163782140925143320918016400698541013557266924011837589315936490494282736542613054045541923480389352197448879231745810557312844626166384280195546114906773660148139330721126648775476248710135087814979132664791749105900332515653575136895139749052401118590607862458285590777640900373093183655745166944095919159006418778309855772930633558441404738271132642080981652248111844817590496190796073375461328045641207809894727684377811568896875512985337132552686322434378561865893634698255706725604415939061872247291117892803561361973698457314057720010831683097143708984647770499564648916466486061722606735260710411337145119235489588819631370821356913287749988081485474587114038571928272626638511428819352525938910115508681394090838272305146141210468221976968186564632860000866782453106032227589510535489429932677513968844564101567147378338399651868072771304248626508271839825250490581396332501663324506159290569173335244969544609478608119656942306148350181368398278506763946213484724360323847855320754306506008600823258125411872343730609690221621741594666200032660906188324060712525243274232198578956610890629343918544665183820446411977991727820868451196308040551653634214024150834116659209311875571893269269534917056491257929502684876975207508470616480165429452731537073010325766990814688394667846992802282363543331713546608700484542371061415919156172932515733562179197470162371140637857872410902350233911985208864103608719070776234273650451770995540336918968363778730845717484113086671078623380793607324229769691452839473889579239033713822091837310952803176177438922857571198104458849668955800236753027635735452789605093275732433876209520779728734111905844722300223963525069153302837970940708211197960932754677609957152369594104506020231953570257488826291314202721599805111846510816600068469720811990490774005300567362619957817188115906424945044077657311687083222607154625883185806878948261679403758959040544159194312403036792132659405513733424435868050309916238360059962926410032577197594920247734711824744916861690723626897178794958006706237554270275550506470071677909734371802876222577599388974742935842713763842930911329080083856452917137610664195994537349327055125262161012860573349635851314153050271078075471877563249547474884555055470828121715839224022109420303275794183687994260130105018326193006663087856498088207354635737920053875134687321144079135769714000390939098130509773604151670168490545590307286108964437088750009326308341290561075132256055619563594955420151972775968225718323212144517909428057100107327188230382701022242095407247613469351251198359942010166639230977168167568942222194041326032395635021692559156765313976254185227681817386144616789079740925132238208069614464398785052734653914687892478856332952713193351165021124061756885417085640822622477983171196258827890151632162686688183597837052124740231938546405757669428150337084940091746059515091586436656562685631179492987962802866562139088791224125989955753153438060513035774847074591784636360344098125695242918008736949464009338889444725012477863564200241756396001629522129577978334091868012731978844964149270627397591554279135032117914616027621475355799918238836772386071401880913673014817995625147751380346871397751473177707610264531562549158719412481619204495591037783143941808779604152763462614263414271954718974297096089532737644313563104217608701135159469223442874995549899002250949053186214411862578856101995159809221363779927393348582658076973263474149267320101335155269775022470711288970734417462823134812497133375842293941219422474915432752162382368429749215846204972572594581824739330100200614070716496686465746444297980733734514002821159409103443588977534736619983151790496496627652572605937861939149325700154459425599026928090640520980953943950718918890118732424776330473724936135895505194787218994447650402473933385622670584109893696602236306749767049776519491160092690513757492152809630814327810624155032706749136386265556961593387218983564768264888431835918666980913796297713839297543256232683811560485746083102411851533045668558975749542195031293193496598145001026688235448520908031304020644037779345777681821084070942129656931326573461370534561172108612463325468077367110263258728929891325336623613066232223895064362210432774408173057929974340148355634347965955533785284337627114560111183518488309241826771528382708258354130627884659288516358142738202154690116224266556443292171773153738727651665190506847079790518686026019282508548959132134134660814937344174955216169196446539636227856630273650825649531860668858068449632659699276401635178729281915959511178475592655547481320795174141222396881424549719758154789210567003217434527756040034986884221687525404200312889496642817580757750702755498005760830162246785764206844269798971493285507473418801005690626206759432762495325584600785859597558287439991108435122284319837937377808371754494598418999128219686863337159625728261744942277131959455049296517955450742238642921502777690457531585234027690250500777250732777816141402665744815175018034491810512666957725400419110765662900067640767661185666631756795519021022592972942344709086710071677907819104152061299774276364832638338328429062484655120856997772079135624275362704975483572159251697905261411621803419721195218100247808331178055495974385852771780397842513918235142436829733152141792421787078150994846612869948597369130643421000506299819325630290524754705015436914449006863131072986225976763187003622456056204018053797504675154078339056149063729560171093380865786664664177903888202579927771817498595652175253666902093995861426697792475846620468238397171624717199019861135833189558955518185862170709929104132295604356221585092120705525654084703756542413664641424711227606777084167948435327558133640320564262490248728523961324022744575529091125319210682425037383467872658355478241435248859295348228768318311560111349187253241582692153801793773302870245791553878527957700715657520098412048184553822560894901913691606493376452888096982262905242350933114726343568998544220210307434128251127956650381370837496970717367869693366085450784440746880082927154709155808995817073626618872680644310669615850269532617906125581275065174012084436343252592516663703633768541532898165435244928807666698092063107442448184277424000841585287168684092436472355970134809413127150919530559812753121670065289852347169663223676961025921483828243245810745586305889820748684016238590701078677572043380704891408900390339167652464088863220958315831629467683235401065125734762678050315404966113804321499391979936864681329727641972384955585583582701200673218934725252900250900089317191650710170695454735670447795028177643197813603212415960640940708403571008470481674892980620246247361135638210539672824436812470379332387149737628119968537235317762336930489196283958537562986460165070278260859240059886493826296057589803307074286646433102201457793062113744900891033385483325293579588594186228657278129058484095309118803893396263735925140537291064489024649372413491643445784590115771627243942654562442499976749953993359301983087989532311344919600572600029397787332150911228673005449039763659798514792142806282827091241758297511304990729707693142186165985692430117759507876095365568067991844458029143660762231854755632535790508844020676954841643767217566930833266691423991465476723400329602299865753575899151917948711384295423685084133533071846198339906964244773245677376382496933362089469615992910642365381760134772820851873289109447407559313890799482731813095793597404131686114345519429340347815914854960172729474908668147983707597797748764209425920864012061413492717054871736886464333921522191870853641509675759852025858714064344370687321572206290789056004126686800409992957997083645751441207053081533240242473710063093884925483601970903202418734432524212885057436950227948813451914484228753605528178425217495281532322222332112809566186915929477172682967485540170441262703610223763349252737885890399811281005316155908169721114457216636415033694834994490392877542428353957088344039759596798681957752783480790486809284036941917568484370195416282983109989286081613139465611040564254883525972265416314999533809101123370824075344709761240808988503128864209568793626251824779577078743862372737684678155343063339191237048399457467807116456890074805881355803312270155631975148079341395407745616313989954022966499022848871178692325091394156359768871539024983120613487514989453277763305647577321167191138518882764004392710082512597228709244882620233355662847273663120821521144868045495318996305318478039447435532828329855125087537169991435027806803617616534141518759954822585021135958796557623953600035921044893546000615701435673117905434307988402365858476900893575148441484770128697978874179282737132883535536225627976759900063285900359747122242141152798954637230125173085910756991556159058226036947065318855084885646776167102812416582184839004824833992279807076744371040426070665245336060909676815948938767998532985882812043142052674632878534781383855105041803594746235303774560564172626692604280681296171712865232410801108299820158167215962640220689000294917606385051836051216594311993704672872151908636179405276290301173329039528370449103927147519032209654950333838702883644833311778206222605642948236273291891871765348342304007126806165805632889619234696402579241743585914762882193838031887096676451862210930183030194518908737953807327790697484368719482149656309427148750085092400867491279482824598067985933539950288787605129551802398333933760764695626921789077674955770993207678678580408551150554943039578325882969777453861549691966018875318732758881988001694031638559763079748785393996678914139064108225306840390432843907246012581724161663830036620287257803384412594186084529629692963973101091890268059075547730588242550315244421234450899066078555119860962680476430514471938356984452502237681684512194488574676909605700127966896416040365208545635698928457613292089914595286376700988446725456776044464596922355905669416132469869070407418934900985186545170595306361538629140685615819893152686114973210593021793070318787726226282024676912631502047933556451706952535222980712437723781415781604912905258519718099457080890886457448147664903372574812647155026009375436554230279717633805096243036153334498246833832837634005009232577954184007888134396177834996201342538455966406613446864414064238927238651294148759306822493526360378323170371513992893453851242218925422998722237995369334665629482926360910602884438148797231686806870210596910607759324888922395782203843469060184085030357664662151172571129036297249865283974709709493718968953098663323631704795460847967122898593856227898673276929662913676374101538277267675310532055711327142812869985589030227556942254682825255397406948492982355950357535169066826719420403151447249884132726895170564948886462288448357487508645261767435601531417966096891987887324451379340646152005052625966011419463355680449783320043219596855032580598288492067989836449717450513785800321269282400988106651414450283710064099919441066860410442416754450912063194755599064548069566705866121230318082588571869264506299986212422089109828067377994786526224320379104280017694093192535254874927254579760135391000831998819569469595726800661136854448376794645111642533626607339897354879056374360704977901934886078088092775049803780751290402282417225176919250733810601692146529368148238663783989231252409762373940368980403599627972154624253559792586890293667337606017490315105161015226700048037161135779559936368913845172067374266786424648972576158766620938252762425945824412817480634049776471968271853760135960561366903347214126725120999111414195932103414006147253666107141429120485115699373863804096747839015551254999305482510842295288658146566826700562091464131473386120002676300523515926590095699383242553336154111136274339367412913885406618087207212988140713802488904819578746796862127117504558850949561836875477176336799802068402504293681122198905337679610007097404610813097096327953031468253039002059558097551082579208972556440115555737239974625393906188025024016932557286210904361454241184212756129833777948311202623827805687041134355591051544987870516616567932311987806062675600642765755646001193970831708626644524851548606760085014354057688989455008468149038025393918264757544231512665236417704699696991301006348704649993023228228379054725994649752382244000297237741861323839881293799310261262752930372970686567586256099074041662587767921173948930887144519517223131468540037389581114728406969312987410304367657857594034903952910959277027653171739468197776980186848734196777273348950612641067798727717063835882035995902334241401854837433852533038923198040883939393204062907677319626987917466759244961386908031208049198819589649382091987996588315552617130546150326612197260023048381729070296304744395072468912147200762033182274094576249680501365891011794195031717737457710960293919506637018601867925937691131380074199963937277773647828410085398494978040592013598712554480308061822012064958533116343634237079121174060219230276538287200270545997232166665591579223272501548961352009083494195753050333967652335790952319485915053892903864671774667126734103795881288370775602730895144244892630628740090866239145387194890904816669764588700002096908508513292880475166831581592457742111984825751907206554756927819887436191377232052995570631472492829735607230547488129435558143064977856207708835886659081204744971025633277765471096040427565093580947220866725542597119429436393440973323459100373918223344664709227347117171943240137348982998495683452791849336172554437707927930560504389749619956187102436380497058247273390256368507512116180947023321025521023531222288155392222535917980006702174657548523156788073971076945627892191447985166030022129083100623853116578238317936142482018169273310169633576489185892851396102918189650718897525529069484764775058740709629929981845361977733406284720986421389201686692834435982626755254555240573920926082032853071389653623103061308866035360328311723988470094239114407133980348212546381796595369586539231819152358221526776368588864628151424384680047501538632018249078883959386483081203961433944842758201755711932345763876645973058019679382966278428818854846647189470831830326189667887382871164372501364973297965459612004959284158656990827605680663006461246400722974466325932549130085413542538380603824175174847782592207851136244456240582937894223649623554217608039681291338774542811970842824291645180968167220049888771804606546022739636092244677744243627984660961681412765294640124091051125662465308652619455447937315327738193317892714236548050435093853926834707196648256688559808887078025551160964008265186359752843782788519239041055822195630951484763629248401264134879424417304368049980283845567838307333583895343004920839399835041421064176335409963469878435490242994427928058098279093649859925069887116367202956290877718940242212334331546121229023610038791387833044178524530232797902772467388057343323998419730588910218825395270164110099331797775722198852605754806540017729612869002969707922824424793035691363722104068167918508592079105086918294328130579958257514473608657112101933333751103318960138544844374967395388036401687433743234989708892340315360895510457358025650514843812323362756061899257585245522722505775558897996932147728467308844513997931868663425004841518356852451542760603765398173355423127558084497286178204525951941705593369389243202383640036029495576601747605508256347784488823201054133397357927108822262540259869744257312163454680049985042315016342124918465978575756011201963066455275795809123967331539309868489533354630915440987075210860039072840654720590217462933244252277140500887108795105690919686464990702281161710129499330764655336910030162854114422451387293704383342365994667037442920141245430657919702670714739926784535884501554211313050211722661111810711089612312189013482724570955214067000441286723522383688410849132301888539947176096943210579090602645397393151708920271862446383200514680612021540351085440132326622523001039583844555938475490374657958762166523278101352038346385092884654134645258294609231126586275468273667775014819817455373425850660739097718734479599249360208434642562453903769104328892370596869007921834338731799417844147285523746890568120010008684227030654020005970360163925942253005257484328719327607781496867239629195865908267864417140829134046892764189410445695498328667347617160139316110016251762621800141727606998341472560241545695765519442146058706067543024653267272878403277553042462301433455726238256722733215434370211108874157019527476809308364573264901210923210315597099271107787867891161138588164305879393681784963379883335774578178002318254275240125003672320508983877975388222056754973093640292180489741347684688022481602472579466750284604054059123690354355514534286358334478290821911377573733869787162850444164086458245956652744372910487601915030950444935172249555334337476195239623497821359665653875043118788372371350628667282565595805678866235467235802696248401441109306428691992306797490375561120237287908557208004923816402810283804645761952400518914226037903996224096357642352027342326812573835863874655897097178910903004224293876279994369831864910295309951837069678396912600820366735426294830098929085100468827915426649743040863290273262641985114975276436130227229553232119749837736948275484500001258953679218171187057616136736970818353753367440583027390029424391523223764223373536423556688659016724464962900511954105534282956313367224051466152844199337704566755037625784674062874604706220402667441569703823706214442065194619180738519840215284691506856381626111484163487635639011509990752376436704650045341540768310191206440421344270556865254397558040493973016801135710320824302898399973701260336021362411834311439763778073737123670298462656497504823260461477747464299866642710917420398998674363738706077086798664126458804860751725134214464724184739290023819133497908103687434976405389835380816764555114959527317895722188541888111172644035174225938979141269992527322224645147120996618767515381525604501223066697970733056592528138408749330130372373147776673833790548009962708976596623868226250107234227911014306183160099287695773078680054946018018800995103922422738700031119206926426640782285019230038541883804772225284772938224057776601161833796913984146285314930745236855985390675380380755778423536851517213293464499908155162627168535239024259451325071324557211820205699312001647246707295722166509124087504485498940968303724111620151134510721037580661531520983012688652081265471675672136165932683828959578466584857114133229261320522786390621660518960468813953642464684228493999930641702494840865540227077450643082173663791437378858338511648619789262308224547934229081687469037147808957267113519669372927311061546309227832375193164453350190863421055838405692209518846094196901474049143406663809957032974556660602964112541160139372160709685287194685084480685595911437402123866367959553714837024078750504033281929508324954040769491922669916645624211136227275209810213278593264527957478536640599651433211986635463860779494852659260115458854744366188877281104675831873951320346482795147800224823901898791905373323014533527824350983019258795353714114204560898901669670259141461588080021716991438513004445090928667504967751680427248451382098514850978052343350788335070389219345863108705036465475438333300693039795486323973279220349460829891167120603680954220106688807260830717867469083112640319329794583881541655210530656054652596867008474881266130403277792301602527481932363263021432894015076920959336548916174591582973534907655671472132199655195023105762178106274113933138631191289697421292115993390464198420858932423366096672474797550512727290987903048575059058037436799823334855782659715059551256246470818407131868884168837042207534884605931893099684086751888127483236216757523487494935530800726680420166227952226233159895417697846415688160170641591059860388499138326217402742106630325481159183165402514859279886070060348651520486298172844172483983288152331414561277483034619563228697480175314685630993449907406615734981864482561062086048944074390402339884933689297916216578551338525296797087060769798177038672244409258771713359071862974005300403040425994224872949014597341311737723110541659431746203015492470645469039547260628190193034812743111803428327079644127114530907143419078216386244155088186321194437994494767300089496501480500652568026739646262700932250913762924254101984039208707256588799581686920959226880401249350608132378382139358028448135409964266910626664310627833761297970135771471636366968735160122886903431157093903980766806059106459799632530243417018093022588905895758186430494905240448151860641915073596196153055474333267464907700820612574468886123670746924102626363422941120009739675310971164785527631354377830482636377594690180602525932031012735496439915728415642500912717300509909735773930182278549006892337941063842619203009473906320526970084044145152779020166810715229265552116330668383491276391224410451594019722639542637898470569377054032216413516489460670163608171362233411186021964065244302180817976130359023710386353963867014028536836588084728714130403853015184132688768345882412048861412384391393310875374151055549299206813238335397796297343875256141649282583136984281831883769335654582733141756582604344467352420795073081124723157301844590586790858318236099152307014982417129360893480884599254268775570433750200952357603429874949787647910262459275552653889232960764280987495924113172678263847224658547879821873843738684953549012870410334820934702653636477673363495506615134452849476809543512760537440233066025930588230032610720054788797287255982069695735900296227072830199930970085255253656230036606238240205022970871549964007931380636890985290999101682463735285675677295941243760971711022432492201545267665254136396193557386064228230847147897339904413128213038814918960859705506367302951728174058615367196773200149280111282583872667550160990959864390179387609461687951471211292428901149413655293263877413504963814290633574467808294750258742790461088275269257122452181006973544930290002236667350543874596973263087597201489580553767933695434746938398461130402404522282400943298790122970908486287877299828493596742920915752416189867090767703956530746527252734993204864611163809704116249901121640190533033670846178100347856349374548373744759880872756548415276673273733418364543528445004727043736822089148346887063366593834349503620502960767119457685410665124511588248918397141320872897902826508787186017989155951309850957968487396003267582016611459207751355523013634910620450185318979427430457463000095079674024573282112426068407956514467594300509115863433489181385031389896449063911337180594730665043365231013982987224253802219221647959934611084093542208956019292343407785176573979639519009006207897012503397509108740116825219564418141725021057405864541510744771296346181485409204902404015366175190325986096827617052554205235898681385941123167409935098533249356176549851562989452239740932905417845785775390882247038544883082590126067380766548447927597081594817773899846857787362596700111157421904089273788628941331068543816007239836912248765144235335383041626482127890114097196491617528070343622383427208894271155371692779408730320678351198440384382614619002860167393504549359245219153524784424659696734311928332042393630758065181289589654029498480188587329238580073217145002963132181490280838534977551055199166196413087083040020033074517768498146966263448648729532262820970851635254892576683219500246806608631701000428972531934100227540611112574329220541033660612976964282009578546826007325874617131372549488776000400957688885436324462579830698567795479082736051684097166768875774308297837421151273064253923349855659414892946798996439796339677705652907984209263106637304768030333153923426601589716127094627725044619223072468705731604049309252558889244228933476727141320837894676351184574240582424084212350014582218894340663034441819843194916235230001228871780361793048359377811434509557340356137777784400758636707507619784814304012851539762856846139848797081602288308718710176476762109609006099764983539642057725972409089962771824372123354366192664521783022007227031312720434835163625557789190293782662537512252510035565238308312449761376884510126950055880597829633339988286961323208723348938515881362125457032788726635988739565821917911189543633301809454760870080757220119121851656447058895484907447852715674065458566398520575973989305501028279954915316831088519318917033017255961161403131473213666801818716202593713946926117327023489427972633015602205344650074489424037579479874554938560500251738408224106281564854349769366680234641441891931179110115686235959353470869458844378178580665660769420860178968722922378183973433611106705469387279463605422952795082367618882746341039401907494751158264871053680810898953616757714116764931894927238314900397922086575425413612376187511210993484486446493731723587891146363773510932794854027749270784762742913884769505840665051950710972084233478981931723315431413524117147729029066720669193904699767938621552374104424956662011631572452590137067091211139896134953683760951038101702326301095747078185790557497871787778021613047835591869113927432836260106329769520273773049819367535537263224454631599653369397450279679195969536478202610133582388049725086410152148177879088696973948642517248429724874622197999821068135119637929792561715519698438212164109627780758450691490596007229633080634163729255419105106158387216949885815154838403148603311369639400222677014241314827524663552503531863447187159298487710459699864728988412784784631250465714336966165096692748560247993537932069095335311409829016018932421575544425338187003403172298887166884061351976108552824965522412701934303866470692791089908636340382276958173051767027571328594214680781927613646346850091777553256383347073860672891045930488976300427832010565763499893928093802773794457834231839247274150708536601751508823467718789769412201556917302823270975879048121783180933683510585456647228477497651024393348072840375498857774713071785371305963422594413545832123090405573363149331918012412510632495653858576764782153585811495241286399262682131936452762407090124942704579543728166119769676163477955766758626987288861502356368071382675164092190592477787108042382267479756691798180836380597732319581052215756050431920396884376250232078753282473513458991602145465724043541009135457682480889741345115669000519945008247017455940115724791582282635071868220238005437353342217218571325550639063778317900613519417452210801323281647008382445921270015263167459973244921486518821304915338658691095317629986623919592197304504830668872100375781928269606706535707988427200516846498685224128316873082590848683554711165864982547957769567381786377706678077653184464706092769503812906483954995427448821232595917563774927123904614220091575080304768907160413156260258622736320816555668188369296021180137938810844453143770226514004700400190572527905211940352657547966173814817132507244608352219253504520284018834953219783719424906692732588588041949940654165698087322130793361407513428392219329705648376425129107858659964974045293696051212857615358820404900643671399015138668083007771952748455610811671276142872951385522109899556616128663947957003666378191718102888329299966332940386156070413531989225826193860531976194399408987025302988023288363619242250350315247133647048962654639913873548392300744129607980208305376442065657415202256848587382910996018242623174311107047012463371190452622303016827275571536033129687772335761521269892406147994358715391395035678702766559952598793197385367417030208313395428759163923970039394803759128882238753482690262134145454950376259136723417393139338534635324941940828327637526037783275217811600972239358641635821320183340299327240144654761253390848623486011996799180459681388644881932001538664862928497010672340230194383826315484242294152946314074605434937197280515970910005526751410431177892753499346703887214523479368449548570800062692330125368981427873562453891542573955790222287182078987830820830230596005131815318062015466232571159142628381374687073950833911923553487183663960806837183005457560801434203374104594436042987456021256425680338013522995952452276850920623611071887251424724659479905772574900919889732257679289522004110121010028881959821568961967775559597718481531641877837651136434109594307681803165525699251521557150009252261794327178195301186841508432374445541156111252185145733889740372679437907384104738430672885420829236686138457426455184400764921612315816585742281747747158530104439455806585355032064729758016993263832489103504290879917199203691071384233532801758790639281532900692336135645314855306110005662787570164859926322120567167632572061571771753223255055120545784338079952884505038605827606748015343130293232848509682671199369047474790288415932161579231940562979811418231727306688875371615287361409293349210506120124021401095947710195060310641512996540029327900254879523122067764765672750064838292432116213334034114106706997143916653076158724524836601604505115178649650171315097197072444894853822676836467818031332045062758150381757871211352227261370345543160266489077864930765731796899919464993178222412217545273532838883612164678497451726727777767218680859200118427413554771193851652043515192856403749871580049369104525410460255633148642328977583706109008971125427053057798560066064736692360572545076945133845430216139013483211291931776517263834557251791048853742070616656333197913309117180704244929305012009483781163709550684477473503863406662412510404087670045603921203015550006978988840599031416313390009069958409525350803197490732196945308399460975097315868785586305816454624481370332094851343477168858752586330868374648770414320626564225369586580863053111970353332791867588559014698573613202626131393114704187095669107543677280088612821281112881811156840973834523231181131089023250528826127282719480865815361053936140079776248094915378204160362459314492985148855170430757486933283167202522204250525142814450996154366039090438430345411223802034465298933119882940655024630776550702877917341360998070522431939480943582487510692869640275284467208481483794615277895269940435372731505401869309368782579098204271657218413607581704621154303553490488484420983282653786837238831034643568799679377864111794284496859811892266952486893644253699903441013282886384235955573352075997751468536237127368368451350819962047262998361321457724116251417090921802234675855768047507377714074238493845508652938634177681382483038195358701800888240957771278611388015326641524456124430598518768650512060763947622413969403672030502276727094394988610767725893607063117347025243631962786260542113917749298215489432058700740377629155337203464917878785021075242270685985287441612784818260021483424996430238021129498614819220238013304996136447330790750570507585765946506018498209007484467918329887253461265816796920614179485424649752055521275604483049079267319641018574309506881790026644629598378171680261274192368327823367503340170738297743235915737820832811308018969407716956330710616293774719227682233018900616202030937267560934102798352453750773717978315199290613177837637219027046130897867571179569580094505038054553868277057632784166240686797853595025647499812297860786598134423295605573877855993679690268445761651445329884692432506372346720976139467339231282146620545355090147073409340584946660238247841021728333857035390983136297708176179284242825879247239278868926179376677872174098694648499614977420197205475704266637970836518520525698009178951789943022596665103267851763326591448428743917287711343132503290905770931641100410124549490375611267101421352444991079648616121658510509554613134666282936170609270245298408698831143966710783679833786663045350854934960868463114260308845399591168713256889364410858013664327387158984356327925296939808990676731186813736088716195647923248819602174792771667955639282723250814470094530373896024076232450724415034060728981577739965572203969082851173272243379953298437545748106411637780637439982493438088158042088020045097435974591839983424946126246530487897018068244620091634212759317957803741078336342884903432982167444155032031060599201406203717562402615443621092069163606959337004476163674185193861266690496965334441308952009789951811265280248911412990389341477436607914306580613682690754183289532294279425420296787121259593810875869583138868585333593814241561750980476719625095788606543243620216687383317853780137401263869298362533643151253483919613311495956534537227825581382081986745465838692091283184107605808219405165322515739336992124648190095896944386469696510575740162047333623660055383338268795758624827632886454255330705964100232215573765004840959693171559397115459221193394585962332980349537483813393877636274813236504591953135810008247630815915384814886084606200307468938932418776489629860362332763209422655652077044472601169359668297225403286807884057843352930829764148684776298778197604294368045307411571660372096950700082569283284071221928612383018245826250587140703645451257355562590888058548666387193035130905263703384249239638200352722008894554223954941266776888530440462832884153270528170262097265152493248000870481508301857569445173061323867351591943497962184790653781279347474073069436546194643174785293905401637319934228957932693702094603251201170600686991902189814691584807556825960252314717296620775829960322329764294832259030535292596779651319601721826850773192743106245079088591880497119154980333939052178961604054822196444166634702529929621898132594948196846207750848444677659859066457605131030419106173842686501285279538198231068331793895418494484564505070587897596005730404036412280571875611990626726627898081636699325757377561563044889216666981085530953298632661150400459184682123563015260275975778280177628296174579465859584138333707400095566829435154029855284804010794446737276067370791925879798381315988159919197909642865488656197490316037608024514387840944338282313863120703982891941367516455545028862035364518494707857533710592232901681549826503042336228938388887783725581492067893626991784738769394071341221392461104520457712898876524854330234374910420891880617640116271386046501261405238116952150592271215013393191387426943575948943136803343875971985561976934174458790857227381303444758516117725782490771739246586897808007015081971006673340382577860250570860026312325562529072545941621551253384723081001499536454461846401089070892722936626678998925524160727186764119976300512717518805631186160332343652507370446411945938083501682107515103444543498077534394337824384513880704173292204290491027238349595113294516779841496622273183603969225664755131357799004555861136199306697755926986905371897181525510490278391713497421511401813314521818976450104610028409749883980604184308449939371195534448807933192580785385178510634301846133185286537885305027883083982690181054320972546949813879575639385066312086721272600132992103336034999604893916427780940247156947005357975440362196018308537923489092111473825638573281039503218783911904762970819913124141298193591936509297310155401389683820499778649898529652574436127303955073518540681814288273244060163307692544488742308259490427411295829733389368295871937327579373827667765452029086690385066980020091576912761353375735401698569140655489212288263595521947266137621047910208080605588744559069820149876778064824288155096979142770581850438651839691611184892630807077722507018117735106288950556479509741974199321659711252000934740891759541376668578538728575698691132839557364695342160034423892171677903441403648110087614046038161168582633542260811902839638827157100377052652934473737929180984251258257298662684679951924394599555100449621115910371720474489604187185751608983901921177427873956414836196175037098534807867893344844552027761835962592795500631350210474095471480748493886800034574397518002065340866693205110475556159448666453700787800331137152818049740795216765879695491186683235830702951273794228626996104527295704392917070604481330563818822007475442446466402745571741742888504570869562850875244355778244369738495062423847002928961653417136731823260910799953255441623440540299831934031591824962549171739039176635117718291648091451994035542249219629729883602171511118513247199150544223494072950146690772920861113554324050120772046347772784937050124401490335759675922405912966194725253745387775314402764787261100503766778634767869294203602138323538178938842521366281669908507304017316098051968997729786596167801979821428750177495707419505062833820074097680171797265168962774782034028252721004990213615901227433345492572918223111284877920305605753026366059608319294804809357701096449587575847819780795009405743477230797368174207653938852209329953135788107582874704021453537831754054728381017396635381311850476597121289672218703786615787106083743756542258164670850115239456560271252462508821143285074760405777915347263379614016530401029918332127385924969160634734241304914343566150173872594792496591265516868219119671767642196740294679317604309837881392414531709073933225187747767514608252412371436284478764587118636765793558350106671894595586193484487030883824716254499535788677240811370227115479439370374933605362673269428887838699816471385525574020594094790550161578325811413149575744950390901734431908438972893258923309421828507304161675164386012808524525709291504043808768817525480190395689585208350389410608245976406129137232103247783639968910829093867681228454034858600763777150255420785141077856156088867807789079693552878682901646152565682907641759015004480889436392965932117832128668833653977603256580290563592764265817130701648013686561389704701905491802183814022974438702923860176678800545749865361188949006793759631679647391883366891093738597355911238163201445965436660599930289770191321967741273001348370225318618717986779077131244489248705673886408493524263942692377629928920268934423694550206708760935225357484298298008612902237431662876954042695360928139385457634974874357059273892469108739898907291007952340885292251150905288742004631507226732233313236267860138236911934391285530075047801247022553507451519469941564123502651235064127326298897273067899251470133213789641937495265733176453133376005275384634547629280745804998004421826492852891599500095207247543314216802274096692766927143295376973914004263667311503857064682619020470959687858475477013836430715758825183764586743661338334758683693867367208409349932898638963011711262413524230257337639511202232083771044355070263974163387694660911940264146399676652119688961974180400531356744491880026421158581733284589119897531765065555254431132807622203214562557881135612149986069605338120927575304357955000777127548867405700049608312722021000725618309849564316738692982016709518416907764742949810095794321844458589439151637708778537418282258108129797000135201285619629618987239402480020748991629715217027095782379268396385564853885443210472647408907799012915906130084351176144002412630087814214957684045630540228139066767630310527130277369858016030314265779629116140984909161999308081573201189747531755351046457282650031073245660493651277464075481234801900496448582424322816123723375684228935311437082178347487395127926594994854866469034253786101929513188164087794177177187338712686562407904090735870872680719161535749628644767370279607828765274957282119920814142672690901789191498834718379072358347815418981692559928347117410972898550495479008134242053233053755618587805744729513156450218225726818243756288665092887529835686894536254397162583012934490263741378702972409185441692003267964683407823286975986375602964626133332934075956716468872507613119449056192322524043334075364767400138014610077750251962787537576662139979203408553775124429868900010754290739216648328226813832835628274833813290486412441684459723915022683150984069820334398058578965728788411070192028603929741557492404499004235575320598762815551754425140372695732576977076756724893973820184583160130963307844386406857771638178103826249511039020193691958304942974432152422465346039466996653765246669165365663636966850709236530927453841104742636198948987579004408072971003543706750995999889283244460806810009078675233372406173767063063309576997391847535999641275978426678273823027168721616266483370082421393636078768692078983022936497185801346603725280330545782425610710673738331106184502763407662586620300615781021523020602346387373500312407405481080263352230149063316419157125391510514805863116080530944987275599891514813725650852221359892864893392761325025431433512068681328295913714634582222762105400347700112354704134078797365295180407546744620378599043889560007401940246405689002634475558020412372604409148275851948956206362387260300028617200470119433683550332115510330366215762880477429246921067746154541927364468154634433953515224367342587663103590381400082691763723502726768556160371192993417418076322570017426837601326566507969964873538905868653062160383643451118393228179244476042764807713368406932429912544645019433998189979627395190821300783683927266752124954029550509189948103590373814650756692189670746539135669787683522701080459902539246429611540551449256328092591302589209890303218854926555112280958135515443421207158883854700489100892698703484068518065944135722473634310185751446113199817336439983489788495659055236874820010055117109401625703834040892898430136918144483852646817343391415038334083308223892892346316065567878373276700988153482266231866971871841389569291436752772837925438754686059151882196670397006434526756492937260287372794358386718159319154751961085412027268189958301381019656704726915932779976603032258582077981782761626329422221138124434857790452905367989307500761067994308549291580057234918664996289500610116265355457775124465257723571832116546417849282979741257344031411066982948248591312079536447171976787487619063156364683285904213018551948242952141509240001592227581928515196742808145786408439103101824505779043876008873075552781994127487166059073200155226942096115191570310432849042239826142317931445493777094559297052001715918981747282045989119459402637535895106760469385520922612803190874249987188748847682540402045569322349790210906253661533094597914713437420024220685689463977335715885769327203007416457291497191806665354269656302109482780466816951601421202991212994848778532535393353011562278671442494660236894519439811926462072096396630706945004510914451177742020872534823530311452807465807446339955645620215599045794360053484919446521187816984565384843634548641574601910043189957529703643389874873217435705814293100567479464566441747871628735601466230283124533547190108235154128026457281188307091874608607844569827610825640111572759088325892041777022391537266425705942042444339309527861693345100895188767034737795079617252261996862841401252794519294223912373734740846822449925677709872362998343738362175778602952958837499277106418229896123669748840343323861568242800584690296283217967399126752338596499887899841305203143596919123138191373560607442419258891379416327537205033388539255181155742926735257236714639207203579169360118346863669087602730523910976935511500781828325444302925920996336906962017103564969339635017853255171398268338730504052545914527593922080846219558226298795295189513570976856574603465705697227663325897426477090287148962221813409530309654483374594901801391775465914995817555760535271016325867148909312015573353775862636703380798865858420470677325437774961799492696111542399632774044267207020597163701389253470261865602418450221813046699072199897494771748268696005587120761856726996526295862596296021519050116973968732347371271878126177305783962292138109338414830322828631372674142290650249800777860786768049339283976307964791139694068605924203007776567158094789542908582901017638316692060279478947995023624753302806839168394540716214363775466713769820763877371914717156647070255735895827618273456474579792527248583061532298406219973035390396535056203463561790028839279289233815845713352157424388207065774112435677942522836525705986073781295351814797335748470100528426942241037448742194319900121697048984836335974838559870335664349626832348601385294963532369836549171714625539711118350270646357656298086249544449404334656623018213272150199766643159773275513703252373989832431415091051661381835023024477346809214882598470957153883688164451297645369328042178425577894757755447083553777988357228676170400501914831180066073200125891215664218548552212388509250198151652409351600829937401976877080645345502871933476190001239716342131625827610842053550372677900346481875856696973381844714881403747939543385075128717768323767072315820439110279044476838752560182884473342495948527563035432796118360063416321225938965793580163293053236881507251949095093835080048834640809086590115044098372600321053546317258438773481485711176846105011619291307605583081172627279846434987289069732494815934710593292799163560185705215152045848376775921534651704266876079956803903635835841436952932527247210789316502389605754605041987364057536283091916830490400358258648934243570741772568322584108537289903197186893276081289635683503109722588649202322634725334997872690919612795837655326015194011747612030138534055996848942081129838249997728409206493788002758626603262784122435088825580334428303280805099818794066953896217586770198752323715604809506075629931404929808929269412554909644430195370028446370598316309030211962747020635638967702475789369873003226118048111847374756899005891975557009233382988182820099481971216070834047219237478129355323352030357640242447478015126061913382906457994524529954962891457438443029600604075247081583343100142295198490204542453281799643238578354763770750659396880332667376748062714858074539440582290632605032131932919580601867887932602932554822836413932234924119018679189357892473758079765116094730965045493608864648124809984190506225782831794134592459129982647069017581638585784014410779813310386432681114136476606360759463810645975223739203286960642495112494665555267334121629906801769107391983090130018555576095004154843031089925909687278700745416404811255086600189002506866172615076675465117323885017724101787606331363558921372949456972316982050299184223534849300442682329316822370405980566608648192668793655637355872239023218926857072008876436237046199264645279524623232255204981814832493896926896350137143016325723756128721114592950312666764501247460498721743179160137959503581089512722329679699985735027809860268073939838464083366165393632854827524596063354678362288338472483108221096692508878366816598637251553537880488595721407789790091647866691372802685626996287901771136062965362709296981078270962847437396237556760637137575699696259000901435883617426637593811539748984563972472471237323032911583865283412321703937183417129910080204841705487803879109596684388839156319676895257892212722079177633275196510734837710181751423438976690115290222789815352218117464377867367863547057260907878490451094362328221625213309839391066235342637865495523069480238637410497340220230101046613027504582496225170696866999018990155815123039872685211564869212527568307563674285278342831161684568285562358814506886105732713565880960226392024706776586530468656559504595885018984697615619746383924935856840602647779196612499925661423202469227165133813274921193371009064028776897957706587469317717670820350621447046116873059654807590574104357194824318179676356261374644991952090321571497022615943845420369929128083262109797679139998165994641752105208666378440555400740351127243002411849998937133743107448246905101721220861948847141168172997526184005948328857253386155291788873576724402005977207145448868265182294671618431185419269685178059280635730722003201231854839935890300637889935964605020692994711685767514392179163916090682576796788864009726702245002579548024525218414955782799385579905894512508122608734368079992929142212577233988200006288385905378878482263374299393307149426683089771685348305541397238141587002847235987136490731763919090974738329229867062945674242321582516682416209747330759267045979766571848649690725245194692726996405559903949454942578570599768305620225985245068608067577300853833737102667322260582404467565626190577240888137361176088965982631642640436544634959508641450677259512447327075732564223998901732751570073298183227449715673151736380562232649067471727074445091169209337815020579514187722585269628924653499957985270548476167690362812995444889925259248500636113544882875299758038683965493369576948391338663443481050055305469184108528689793751916328153233962813292327734045683200980156008424394329150536408115597629060662887217850161910350709788841707902690265785577495595169997032130583757924329741557291349489934537793431865194874195735698338233227921009798640022632524284347650731198226251370331952047281643237509022690715884982106113224232484431783261909850941677663393815651053049155340147336096004705148938104467414166251269220710936460191058626246562320040046813756337724964867205320000132258350515182118639703028489842206380785170741877320706616350617906067780382800445604180524316224058346142327068621395330787328531601014334334615590629783972925846414889153630795051239810041952635062009229724611878577112619546229063211254059493939931295376921145387502445051371667370808917924988309231403283920896359154667996324160059622909016946938475982258599057056563558515620815432147000055017923915363890867529920649601326373905742619227419224249538825652297078181555084780431175589590532300515821916128094486363275318912379794021418645368190125036555448076711531553544046610152360977272270193712180145736468302399894238794866970937298963334954815556243536918986799078907340970943540092060604726975043368245296339530480527802047119578198896456728992655572525905045375853163120282790346136891651438564800604871601391849708488995687196547058006967578538948119396963396048151518556296169321058951216690453138248203802938428350915390938464816431726547041121131415880444124423831525005981430184304346000169761141630332140485277627287386081146699339407778227228955643935499625998688955111300728686902878959775557956088630691838680465433273453577611609231627465501549088216296261983589678251215825953971589275345564496205893685340040900259405013271176034158337832690871004727990163268774950263889778648051234907707790354980045938542271507092620669850755579695347999628479970886802469522031321978235891355434233529614368016542790024229810381968299302918808087670230710919107899172251155613387614472802601669621521478483418571071466533133421008800988233325808536238538502541948242975962851400834264113797686171282103632231936384697371167297824022219389762132602131278003222661680085669749831623769199544656788266178301750961424974393381657502793775387724516366226031156533709297801212113633506747044229113509303436781814654043514607484600195585802760419819572504888371265367184416282431500786743017775715081009060066174473871719903355261373197770962700880431599732020647187299005773728946394839050898710797357120589999941242119791835997585099719048908619233494464909192216105526005301967837608169108045608033319824618396032663424294723373749040535645820054534766759208442737895211738458512797345671526073231702808230520085950153718262228843357574240573118282999583339521923596639002671972141940180727645182472958445417893918483460537307651788274447101360435986489901343877757463031670711911492954077353779640044537455906261976379561269108773173320811820317303717321102679008540410106373607640220846315694758153749852528814285763697547435165424647237656891235393731160479907082139366570680217441948334069383288805416262544446651032172801801044547636642573257146885197911820976359609290404504265211137390566018557914563579806918343261551382057057814362263009063427440482363447083135660717531023445529853581315974197625835859596258784258905087840470451870552047706798160736326397198256424754376745521684450594525354646382370777543293103398735577874110347840802813379103121728940360880642279443309863422387057814447155428201590170804873156327561774467376265816801329940693168330596183587777837770950923842068647269889951740311770260449501680842952157273651408099773940119177387280599738343272592055005502348591505273068236115719878163231674595086511229475191355489500050995304278264399473222517247908470051155988713694943558793702660939117040981409041517546535590549147514577133243552502736369417016283715819775540269492333330507471249656064380336877642791849593309871694032460805037280617589742550332635534590202078733889682978351181094239787198921586064295334674726818207269478769715135251836794263238395366617698046867694502140492091078844033559280337957030845100064210667911084280311762013940395469530326201562238955373663651024159090858083006064540086070829304857569806630016263623049695793283896567793600014379996350305653340262216938964969191204014849577426365474959890600820493754144218183063487282532782918258789219440836487012030936112503107145492574264792404785433669390864932503842341133992719696016726875092981106388946077376114434373542907455261713550131788692871708317214582921733337703624069710456312629580679034300695477201197450913532829545961944915567953167201091435326425322182375745337433821480299177310147536478552426700437693826447358856539669745045248663148736097796083668657811647544065270382513942900887830206664443256318404659497010198220335225720295988424947361299951574209518261957172480400452205288514276098739308587043748367944970259028384035183953548316768429377784192352334074816944832407361420533827134872961023438614370212676396257925668165952893888613659233770612187361361105747948359699487463928709963545572273815982318505771496393690047479681919242285764173495876758902740071628353385842591104834731082870732893395175944239589229020604422598396967395051081243730323953949322202170539211549588299517035287975005119738694514521216289630081746050026870264712908910953285482313944473229005290960952341258266684081011555319440890825938298156859442117747102355578171501026567351479171232560977142191885172473335465168525753832215990727261294127225710590765606732293281068253646545982644030032980247862545031032000096919569613952828356405369840992984437556370775542379164907142249140768358152801524490460034035892443692491934924631161144410220594211104779055538011191991241400285073224868321312613509386546863302355409392273273354912293355127606504224047548423606820688609404747029446808094647039281689288932425837115462311701938165742914228209800657619237221324472310267059433738637630330345343078778248733038577330868816896528098867161789327439646529687511551976587225793244404902878236334391905835376701271368482947309582800493117357851763235586302396191737250215000540014440528652627947188070582937183041363314923954206649369712596909743124145534190177153808417380955108667787178351513944806862134273872276343517339719968011526145495342346247864422458023463660601235971094861491249757911675541825886753851283545517966905137374877300294170744824482200631822024323389272577229298125603111383591770172832790135491035294064909828988589154685747896871191348440221077338899687429676868168132651103293207557681795414157224076966571439695059166514061448278715498100549842259437772523880612881638925289743170937708101718979400444114563164562410969734509356365163401136808951859506223112442842285452430172807391424659256147654871657184438068212064812896789091134161195034282611251825371457070210044335733664344888833710536119363577935608509840267771702611959340977348241557438458094387276364551154161298990506414207699208688753250290173283903422570045941329266551193381073654530467444400420853222167773061201930274101772098142775267690756565793072234547398086781092399701518895260423478834260559327125760150820942619145173432221384764940717170373317512809506198448861526211021231277714075225906535453421743107521535623155593862593066787141688971533262164558318514629154957079617865090025250584664723703428140859973916974395682230805933776982923018393552422312737941804633546879803610624134608055861089424852180522301633126895583949317778635191348683799109582093916920331403427235246955680955656086111317221331832619707750273497199687181013861075870870149260404943861379043971946462979431333433475036587428803081019338216577194404853188719315242768421575962218083476263638050644759671855600716401869092807031037854844832121088732520788092671046674463654601331565794961834657741337102496374396751797587680920407982860127636168367454294079475533169956181435313089268902344375392162051475083862607153729842220546065741136554192744214733308226638355429376447273479844358689940261502342725863578767147287872494745316263019606923091382562076811858845700328984652291188787042930904776615268726829722832746062263179731964655287899512597383915950260204626617888738690082738224780576725942848318397089128360294004550591594260902184856117302149995114634685788796103690060958223269124245920832139592487696814568907134313123405391886460464862370985921032282738172502037390626468113031910075885562748244289594199566532226463716805085992442115517990789077238330126117463247732375822036433740414589614670331410774824313139043962242427454865944990315258660588617609800353544710457802826984220518027355006120910721327328565530090618728596697580480994629531645718582584277394227318037839518823565764323064159921723728632903325720947550783114829705146703146421200492905577088497567813852607360129771895479262187452665506592429986313240380665565393303879668257212218187793056580084860066995245136789715674247228123536085490374988005491522813762491695649115648165687606626173263150670665557098477869851531137965496718294452859728870816155845237742100975260695857589452586890562086566315695326495320058466692386930614266702240925405607394810274457220328788591583927741238199475766500460918887957154833308175812721394011104439927983816517827280034012849128305265408761820888420717725026876962648065618557617714543267789258429730962680085844561972537342094152165980458927025758498356269438556831068258396770523147564097672409951179923276019348826285558131195614006943845725543070365456517135802651832823164318986780226245373058678284120618279100825434390967701119388604352496717815459389619315948705158802682417994987325590876612006436524493601652464448909595126709099058029707629504628679578799525851146793365161886687562291644717239053987432634089072358027201976657332401648830244719969345546477723847637031104257990961748663615672786717733775926749110852138770450087873138081070481939522897102385419168140648770401783403630983415883389163109553562320990615297169698152554868774534663242882301859666455463945120223655935073273058164240635192449063410449920966866118990049308109383073284923697122112810419809714975492772937442123773571575954278770102174125838873224515673623133178445877777025347734737299840108821794290809019434936490174675812644124674020406555147441386323610079363429162859027397556756144041753200820832881555368066567487165590141075903106861533084639865858919346466033082596429238192958301131284223385364222722660649679423654483314766140000327263416596060840733428396220197048576402797669621063737226776509828209953898266369010765710494525064850051765321827889413846789420888416158728667397920522757782188317951662165345640630367685251136111239585431819286252208530530317719559560398944053244677654924565652239362318694605310484609314928939352656049321830685607861240394666386388000535001629296326008476738361132994191508239430500289937429008725278057271028437349310203225952113974736755092106230674699248078143626882149515300302019022391448406150388078485984760184300008242269576072293241552118480736763539929185816724350034980985131187744441622212627944277472481905711039946675789736113269000449153934168856066720795919983209551033733688427201446573406056768875843879969912666691554460469240289303755659421425913425351856926877980567428101331539382244108697003342670413385048424741501118431944473847829875078464959468310294980432294974393152484417682248482179192536210460867604453591574741415321119059248619214904850586499729345488783819840801887772118617232323444888146823001596797123310389248953268966129732662421130871805285293520549826981440222587449765225751756219772328059277169344870606632822591611875693917788867488689971313627117753864376435865477062802001697351540066040404139967448361131139967638940624269732331161940819929503332514461518868154418082265564269976151236208146376311936796085258184780512570765249747694245478574708820211024209280063275137649140954173384621367279361600439129480343801271586105676895453444253283307101329125651447843406133740063030833235274644856381001924829970903701216482847596429587785973710695863004416279415456739420573832679402348188024540935483290483019822469676441435106977928570986984089341686389707551043389461597851275870444149204910607725737575506167503927720380738207149277572587847093611262816434085456042184780875144115814116070235020224151781687429436610075053350035377346502297859029015094712018377987929761144300102128501275423308492881712805332217782815946340921985775652613473006232820186177768035877955424136238513093131289961767257668464142893608323898532377372336154360543687864131154034166578697875191675539061426292114265369331623829019571640656500692474719580621826282102879546140242028139106862425920426895400821680521221947234018184376586636778902390880710549274935748018805187600058704130809912870537300479906664931940581060306143770878277842789169660899746303447830754955830454418074127689172932397789367995849939145889136426520577627259873955325157139978906255030663547072878229286426634096923007880244800497650928398956782207297363906476866079188796659996548989296751619128531002864247554682111177573018403881360016091021956074621017834183318265085921947787236162592166442797357152331191558857022525960279673827764414814988722708439809352587612015502475946068054308540686301299891428301421570751453449434086282549149450229215800046912421901797923723484177111521872281519937306446879727248633415793602360872565792586676826427400387689888414963266515853322342611067943626228865973541951740165790807195207276224506019709014291384664237567606426947171659162795289132528294470971143215285285808434548364921335485693615155172719087833456444852879954543530084086828063481451126532653207234458702496287749555452153575058058286973774325502435870105100565953205847020093297084203905623949871897406502665709329073493353484684556986210505889798380123247146606809655351727875501472617689099111358103215518473626652745109614393025172303765881774398739236412789998823802112505710079554656211945481318551683426580011221120240802166308826794823090831541261355117079143122508239426226226772083947611779970357877578002041290068328852545094974146691111245295901487689302223546280923333292805631977001589468239076724781580240896947323767231945511029784954786264165088646599655408723633016784802931866551109363902117886417551850788101366062491163917577559693727698036986217592486787356820126556262201352093053118491534244513297841686477498059307463016604117845584642832256412263512541833120712274064741722680625756652734274634891557910860466434665977064444690760334075391219265749226855649577024247070570262677709816061711308634797873777757404464642886999899411578257956995920609947742610342276540548809038917398864380507764317028287783471394556611152834015484552436968320402052750427210672407593684439720101469997453175704246295263524143257878814202801081198300853619784234167802819363574269687387320511481978152236613778097768812844397297028502716008185573247482924180426640680584767985547029406144228053708416791324080083377076489205849579304066579446734650791722561642441442677225025651859133531365301531371780213177669826513872883695559502378177036754142285411307698264381649823052896610219801187052915239825799663928364074536825259142078969375766358175161828392421387151683255882658172025406394512317077789021799624871640173674372702907880762046966426542589583094056913942618844940296995845407976194854272944919504920312584233709576675300811180958418287953553581483394305367966359527794482199976062458225344079729796743851602407199828917724009535481758773854478240783188347950903533126735329453372169599829889703450760197858715311922288260916075626960955676774622818425544191724814406645631982086897593123178976966950789271425059060162859426728463748813049282451100923711244171040244988672674526660507951640856572727928173596900744008722871807635995295303737762192619251745663888301660180084894963446301474902355204384416483873505671255441134529474985740784619516272067024308657700844130888831451518069968156757951874169536032078920428783122418906003450427134250026861589671524471140819125206043053188336302104678662416967994480013915474369268833976265129349257300598654651761035039359832581753072709774159695653556541207728459940010765884739708077565642675640174004065699782460925587056690560464649228100522868113541504499922559337079615673062385628663305720852120897132424774832508876457749522723337254789471971231882442139764767896282050212445564329952749678804487033206026280531850678659072005689023674392624212609677379026890359979467729155256831589625865730523629679551654433742561669157339316966125860833124915145068121394872476098697552527230343329462691959785966855658490290571043629601612441943837829155611168577987928534197914549414343225759839610106833029272587142974960632214158336982534448357229334010956514040213644504687909935169002531066925875986863733390453132758673440250046806438591741285407006572667288923460218125333325076998293239837377514016842561017513633515106028064476660079128227021440364831671482609753441038111127022318590992162486325675276993151304109354762140663466909842557816231321798169804985166202100150362134494938613744300990517679809493033655972196700715279758675968504723714878436879958478469692191523994734335049947264787144806448065502499355325861914059935472513974652388929254196528749380819310802371350386386871320056531685901770665203198684368032628983685410617900887644357069847582148937825872205282322978172389333329031278376052607496847693798514724105813780059910499310567877360804549589588088548693191170682469968132913905812786974452989096752007371566220717584824296841306820159086601677174270126885395000194705067624993202265558774993883220916188314493730249814417403710937958284814328756500898487390064281410503478743622560803178285569550385708175422472211337908256044358350318504330071077433560107751053365840943921481126527201576665665705378807881465010344560909152474051820426920205386380428396217593315494845600501361314810027854985779322923015244090760628589212545901329423185118559809222199673605021204448239424791111124745771567755063513723990844147004178869206081592289104731448018128296433872058389841136036252954199541701903515157782957273348848184564294816261911694900671373050780504376515614307449376317908625672685087362934423593353380210447848525347503317381211816660504456894181485498737580141133968209837109205277950023193213186767928694452620967448665046683923466232343304829145206959042717050665823532938840562795607749506961049403551951602732340536234428259885208549920486923918902854685997038634981614890807770162028467081201813829510721341519351839927403407792853810440888328509905078321324406876236124440109360140813232625356962447972917135704561963162682836940797701023662151173505466175627402146758174239351953205618425806063493806083334235399439847032362268390164735199615342862673024002844751293480535698986736192197494648523522982442291565233927994788589323636671527745429408270439581088010056779614978391127856894112845157312060245108894736992564999593991820896289064179656995132059359855672620737427744948443456842296307897849135920161009234209667720208709678786664607727801398012115204682557667155330414457479729522987177232026770609097793138995987346666520051419440564322583711170795584632451585347106854818357042310971076385187850459455590981314720182086415467037018493067042366819884731911214367901885809427694591821092661763873914764110117110660984099195481166237260504558988984326087078996120183425672703519102615190173266709097958064748354025333791016797674732995182479254896010412241944845589949451194701714827129464386222778179439970403428565774336909198909861339971942606836616721776047906618542416511112506959765850223624200810564593644922020966106187723817785618813477270286732601704743291005955869122122086162504069989616515228953919690999711550400218820613305131700176364445314665681540604026871717007359013115675388867813432505511326947683957429072945784320200652742151896791905874320616981490826777586796080801525927814594818376407789870686639156552482741544668728502170152195928993951481214202526971771488902042093830038419390895455631621299840550394490487344585329227666270099981440983659136539667213282405218274514289050310433436255557714481874118510854954961478897029509901717026371119032297483459691872042284827496119111921910817602827217423934657588922785985192217001048914688406604422768984891527032716917524988077819754544983756219155806800229026061983545381307063872068745622153456345717394094595183851027766437055584089677014139031559757104441425033006308257847190735793455519850256511963531808776326942302066418792774764209540895154441537073631600613294372292069059710867420183255562943811071761636889974562319733399457010380554809544917155285323986347323726340768378775537620868737798223271814404709490755718195119611535660629865934704691588188673876107158710551344993179025193840371522468000380298619712307344820056719590928679971080906321911241219490075786106809412601312156005399544431524767976167998098059875580579663963188301854577245032833022287578839836301463866280336574655311696822028727493787831724759452609014375300704326732456631740134598443654347287433553376497623357093309226478338872710574752750388931087141076764093524723007253100336605673348216706182014684668439760449618652076705818205716320694304121418134939928023858128773976683251670520315868288941316435722005387298905380659405416171778943239499969557678461298769673099895939143594234544856345785654452970586190510962282112361725164616635898806305716221059582423109400215597705076462727398802403037458476261566543085666939140285140607747409194730663026662522529675035366933052906650491351288787910106349637998163567320708799822949684004928883829804626902483245348415853394362812154962504760558653762877176029880524805263849931674289834223521294000509986125924761993396956979377133613993867056062816306713021345398204834281498475590006132296467247170973337542594119532854875604097351858570585545656661340960619587360855518435443435563812272858675093495786378374376871622387308134625885117978790415011584784683445731424401921315847233940047278604216214615055172557686748942911272795248047491410034686492198680295987456043153762605903068479661729226740014171371369028598465847039167319130842195705455290502738618308816021509506115815024235958495313253863862598616539550794388195369960698281164125023061309920090291004455150995403995147495726226304208021683479880193191552348249469513514115035260962752919225030572476500951852692346548363469473840978304964524487797436566201278640989064875162451216517886987074675536964762005938195023886663555006886218498059435464227602458017106232162161385431844062585764013425094261051664791266951875540009830556176773851448790255501108340730172017054799617878923316121274187234269548945339072449537151996615314324495861999841245620400454938527489383808979011908080227558465971395181973164282108250159910362571675177512866626136468934934196861969710485360614541418099825567688816731357170511069664376740706924706781845931074271296260898361217353824316810425718123251653694432514767173965729822710739265182898126199300210350545988268231981624665316519690468930317829154187717912796555722025445802327015662867100190488876693719362035218698005904214908289268351588128669626913528213225280753861003921233622346819430246334046531497678033369780214242811602216559493016109965807083569107461927340101487897370280215159403789344684473062524707869002921671158768435494523763224584871355655462172722463012816979393905625527279987596637233118255025060113319871461099705706186986799848318644675481376985577020891807837974011641946737628704610584184030456304768538163233622815418131122961311623079020762854724351080122333877788070175523263549074266465488855473953877582530204804752334893752086924820962967838020672722012343563100828176935361976045910864780174537136459187168422828929802473248155352248277789695565842432487851397031510198577362585001289424708628658316823492646405632213527664350014299184487837070921023973715710303317496017027423755050537381067627531764990340442719250348051042382660085596438619379765426731626160798469448416601165733196473163457955472950867102867004338374371365880106580542814734561832582140841170772873746592386614631182281808072784022412925058451963059034709781606483264984540208118949621927563647450427724531629911877825175165735708933760057378812654457326437043005274366331541600643386778688281665492517816660893393643325749842652227417641959939998488428239660604026694894945340148687545461776894916220517597349425021099845958612216832324742327766093856797840897813274551269929659461856433815410467541831630358555659308289240643307930099867454113676297788406813357181136112062651734827296355410833569481671912125597468024198286316931476478894169435293882888033436421750382741343130022582434602213366158112068434932171179529846934049340673848942653394619234712128151062512669603695054903416500792166725733844939153039768649893733464661983549006914617587229396047404853508449803677951717734844642727783144159856747346779126999859510019370100659879935296814722292774862355310476740797382641915674802785215306702133064261004175823696640179220931723674557874757431177032721294689957598303377028941586017925734190884921916351277285174071247210118144754001269438650415839055516745114027464274623132999755742367043449415145229682009152580469761608448217496241753367842776439265241526514941707146408908251633926174587920200212447053755562829548176925660978800318118982115651141995863915863586038576147063068276576794270796943027762598386400295451475374380233635601999640367338269074260750121701962834614633438997731643219813414698356560445364100770677348633202843386313969580187770311049391776179546525695371186039958905520088766665778693418871791971359909863572264485000474247625321405898032177993726859960063805729304176186731112642709952130779360813292426156836384384005046427029936238336740244739990641797471840357065602056244334635023040819526237936560257231133519361113282130957446274416212029692687187716755336672304292721490155028549349936764497877530924375548539468663792862177692952525088106712345461905516662437857657156667737773445839165498311179019244758771046720657900335434921062686946435566734701364797690200244320257140685716621401564273082455861311937781939108806041491344998121077461708555606655832400505101987360242328694782674813820285821037711995407132055281040617150112374504473170876261598424396580426046126356690705444054107962642395330323939497596604296144718691190626261260915015896850778935849943886215594951219102132787525384841231197948356890396263094727326116521356086332942748037268462322961195100307987931376108053021042565888454025661113829385146567851467260455480994708508707958303566443150830455210211380776619181552337195637108535808125475061175112610353905279628682347220297217894059043738045602837403818894990482638177222170487654392534643275371778322591220110475294066466227418310673706728839574782858161022913275143652188990999791958858753503869159068193242137560321591376793020093838510273971949104282243748788858990792626972862226922856330833600181562952925722982651969359700888756369000501855631738370776874449130874508597265606249688797570784581016650382257802390611833464549203603150002102914136986963485733913759765939824897542846769405183839087982060041567934885275967989631434192125947124128742421486788140590290710829983845926899670060364714244669878774625209794973374738296768405233060329706010414002579705320600732072505242131950056294638169005609803681452287135656270380517810589426914442236802932053103038177854489697911840230006144685315238028416808198529812112979732803845217225389929019006478980624953245612349891219807622379438360950216628817775994202822738304717087759558772172107377237453959437844118159784000816196635961548632715081057902974590198188540210184421986342698629116925959376483794815961845351912110582881495790045083825761161967973628307301630292924211332343744200902142652530589816181686331988567186703713714488520401890449087070689355980670355408458718593862572561119713342155976869344797630677741345205975104637793652952956065838718382515864009206052573321618927934014323809205878110386902252830452512400276686700988111050954831231898530201805701493112031962937933640990680644566410289785393892524859320438503991830619638495381878225470729811945634532075343197838538888807544720265821710277399180822122868003924619512484110981054493023140844611236169060626451066643952024645763882465927279129483248276911913962245764959428118725003579571835162214896811739681585663396587774876533112334870540702051828378847624910402923615208027286854886465474812708389205330859945425359181414006866325437299184814088599591253648992574747642374894312252300648042369372768908442948177180803364895361242719958632334232719107384058654646344535119028331677723986958342537204209712714456065218298157336812200731556036533951734867042199667225302083491378711395780039457667051163009546627389429361568810772258972537278193480043089772425443760300803852347750420830532160078584125110364892684946985710218385473022322599942389249479314321410051925359330093889349595370239584620513019898588944491222554815097062279381508669818841645572773124290477008006927385795430863183494365028223999643487890538925192942715737784696202883290529547092360403093521521608972926081878665833241129820779835733670939142739205146798657271452152274728637727611669853498992575027538931649893792671667968225375271852613641320289004383842326708784314404784078887787214928264785993000358828222859506224273666573379407120869059232950214554648983487074998496276596962089833983543422595776818149639315491870482775802723731501366906673476097792856326166239019712297324599447108845590026215538504576275270863694730814899185416309382181310414617356304834277596207828129145275681327270130999606984382353566018423836107080849669846375995018253592354165875249194421424945977010860523442697118813489131918146566789341746599685886404883986599869735125895913368090751429295414573793006534722485721669300133255013020642144100815039171169638163912365825963101335695064075724077501188334685747438327610081955207797783045317101227882609290681257192930701276458614379688758971623193830735947214590328585806976270698440886926537567795376695250402738354613489519122424919890288794431990254241188537057567256389255741718091412514401397686838497705603359812998640869425064367303110369748828363564739828247421258045441438606085286428550699716298736904384795714861144964192925141500551928116735384994920966882335552118570069328788870569220462509192894283410496890392288117303318675646480557094689140234511901438069681203352468166271436325700807781249653345039867799580074710014047477383200052345605653375121596503477221840007608022566121185896278789691649767811260839345469564858489566156971806840958960449386213592624731022891875325613432663803184198892870014425115006802681622465542717551192084736435398580208646656698961088187302638958342011981543104697599139532219979587972649887333198627692708810294943623832748868912668942809978295584631021436394249752234261091382468092157235597956844555275603269626793601679340478390241236577748291930211121939105455165448892411299887495971680774964896297971364262159131258993028398144127294753666500276878303621135927274837378835102189724890736612259132054154030731212852105475824314718982228524826942438547807600080751481730241489895694207160928602675792006968819183114291174021854206719755481498470854757106769874367296325776838347760579059148888488382686548800006463854007612084659276789199116313068478113637503088880807261332446006089792545920386525411806870006923307562626069461885976542678185544760865429565099993360507847601159129963206445433121171224209791743813933414589847006838665219779830891451460494521373741865415887332227982378981407870425277835433695307699229124882396653794782902217670514205827717371732947898298947174838202570261564468275960445448212550979703548786505389806478673151150814888639223825991131181294741958124976813664802398364656268150043889595019349074441382326317173173407107871104604513902175684398359511410171569916773816597300029532971693771387424577460732287687454811898123555475637858117807621202484561059879306424138597956140420196162894450839438972911160921861132533682373919539446305943460960400525844124058496919815906242256376756030606098216996299531312097022084836612994839430398564608855933229160973119248908852845850601962934764465918085029842483253255721905162579981709095510659259638551794763291561079821464547891220484727829050957995920554142496195948329185744216759615435921513743342250912212767924369709375716552272195884144721474653946416006021441154099814576590389224010403358315220799454516254786216632474729861778770099651753082676264225922385862186394527069249590081587934784090471455516259938502162458949650625485067464394381666308644953847198138244359370340672821837925134865216549089312152328468207666190725329961073312895997339621316324118132278520835262112972324008269107570595260349819808269523043288476989932020384566993293952539413511107008404589068686716260740584316451467589899024653910999368910667050577059422842236825866882127851173430058346829742072210477137471081516865446706425116568059956172795246020100978084590420900755539621705100304902412953533097010089266780325244030160604617150983629079779765428028386169384050043499096044800730003545548575143389371089539210795356596842335923665305978187506726897559744045791350770913716591101745278434683519155706800341174170912566508629450625313686188771744288506342076481044549200000557485751221594760113538757938779591585100059538951258600264546568808244293039746179855354783560000106151681734675585541183435466049257504650357629619803565326737877187711437966892016399675582994701496556577203382432370011108737518066594346946077735199482736028692384215278541291469015345298037316614128882812035090786200935889094811532921327265617636954755753461500244851595428292838505841183208297870084666685862482167225984527477171518598738617127476949904403194917342103885271009382010011107681171356809244313693528869029980966131212239088861412108926887972001803299081320983403382688192805672381801401886987689608388157028673800470713133710510925853946317047911636214682553502442276165612341436910860359121302395771648021748681385261216438047089525916212498848690384020717336472220634382449937976622394354302124445857750202492390113078881326183079425223050179902714268460204983962617565572447739563052684700452912033490480603136283820366267659418954939357999525953712904594574602358537297979939573286929467230758301483852461522216594480285513982348978977420994151499307562959017553263989639561839917838483899224245961289501066352737844157507028143627657869876242155589072491671710875748714946920231390579416760818235042528547111562822070207531583544604800924762427259759677882923367013916332603080156286796987428518708937699505411170433774383615733266458716778204462298438450175314103002157894436432330527552161387280257816951639254303764213508106681981572986064541042165265180744090937103510347250924037674133610894455237893541443317847474337598420642589444965071358115227237616427355433127177474064344705103863641734589338686627986221934496731095007162586069280078086581199423023432335885044066194243039579387584660794636339996092226921872555454300107047840396772338332778820184311196547857735515330462736761792654818527358030476796166006569036402509243123045959168031602463485590589763728823688601150608396994170078074979773336009738279036271343250916403074174203785238576012206139899626861128553355419843129864812081148494196158276966426042423631874162860617709551520698547216509578018637312507125194042700520732921970525224553270386821288297443222277207811579130792873717946052829787395891824957628700097175582769496036225659896968881889951182124136140366118790753230644877303803286088714394583219286839027755981868238523843393497234324373633567399583416858142989600168198282009397405104428894920490378487363210751805990653153828382987255557029439534495908891391396746667429148345662305961280357385719969980024854077839572814970763430677649728904327861679738015613160227922456146073916450745109143223884558626946378482668209317917106253414212361786247724085896850099999072271605798653633866462442805597670681071283620870209674835449444222886264860240785607573217121986119671344421748919269619741395512053051964514621135687801161980456179205897934605592153659414374141556143218163349053456572295868645574368486113487064271377866277352064631661167496124854217084466447124046908003898026738784959940506436556626844702073512121544334895297510883527180801697965994648712065596339052608633175119211434781338634945384571693047999863101082509889577239893840399963219802490974135463628900815442468331979009646771982395662127371359312718539650371733015576242786764113493941242017349036149569979890396914848897383182548454331280651488723690741757139370017667791803252043192940850451983973813405592363884787423679995022923465257532080447734955417226643736254771001623001981935700361099919941111774495985554925854441032193584192806475046166624928007887170345189419871767396709719763811610929765780402380641293268893544763514716360620110704976230191036602298705312707889025788623757091509167485945855647485797386391989166087382381271419484380165023894969200109526434350432908197879317900638552429389806387884092110912294201500696507331312761696466522968238402693685694210004124588353497972647965873485603975474077594593271969326108101975197261786708093964990130881274094481518023411747969920719116405411362978554498809332377725166097697582865281487242236189038432899768046582445717064229355745175625995321116787237330749075432843028288479166216446524433582414842684500859708957634349787665713220655528130259600344324153852006339166772520778867899117766126763763943167567617607035190509420510599298600990204117519046841634432678194766685074889843090444253706857790147337266697510756899926108291656502979527203153322230975962905960131989130204493350944977647044370116818354002976624828778544497681600599448148150323443653174620304965645139852643558945534826361092657232208904663990671037646146311984051120624805678541643742926721368428297154020069301830750299870890609799004037573666288025093372051106061157086340810436078643911083839896820918846234579738181050102755588261100863951719914081386390347358675481052314571798288352578035277407961355131393401838529449390067894726257103142220517434746082262255197989818498155036273740952894013356476587752338832310709229909326617289485315156827885336714670411097747133085324481149041463992085929649697536015893338602361082326627499945145125604456384653982724151092667584571599652036623456046021922217374693327118156327610139089525438172331080273875375445380628025783417213647629939271099233484099570360173823758514375134475329399067097771232499727053078763759281810200134911779203686698380614365027137833368811637561894833499320183274553503817532336316824572697126927027904645526585153896060209249205116000311823318115481333632070506903772716912506038587545666466293544384320286355005286141801187632175485857909931206102805214944705159069279892219445623095797353156914625563575274140204221341794948584721188478511216844111594957378539402696041411924216809537927483981300045423907753914086734654346701655978597385084038369936129343949063843918864399634976425741911996198193942391613393648828139183581325764527578000989684080398584747430790882544787592064712892716663438575796257188633048881587625390775036057688310934292837487041951952258134912074462257394912270294150610257357984730020558248308354776045355403553594296790523699385815062345201287490483479299834618176896300410481480033163227999582703897915849628836781029353593844414989959095888786367295135580143691927609150973490537864957671142739895233138507262753545453183231904452777870965857788993034782109777002023504578461595701106966001037614787553883763403851355334593722743752294410109041611404080460544664755119470073937327122222442872712464399619973278158332385782126408768773724037318914811320143169708886798941184612552172762537575101705228148847563854236002526868924915574351585574470378402598395619518915151029301826558710138438026388187957872058128585992176529360262894446567942338520785859002715826826133272499387485312112585878398364600514804817204078535248167394796014830776897284399260217977575189637163463437659123513288638452338731006263630448630324942388750117249774274399273885657308821621849542421282483987141378642760356549373946351063701258800503248197521744560762253252582809994455242159046961286859866403828518596758901209498402706597813546346887334513836825776449978180531364224085827793066346875250671963864548141841135194495195491900497677851419214841850532193565430811669697807123215418540956375308280327594892929318512436547047798853841887809876696946627380471866131520404780326126347986794670411348822952065021625103416859131268320463818059157831808645658879055040943200960964503532973493953384117285433139957659098941388219962737183967153776744726201412579831041824598995057192877551029504132386768286513368979966941756693750881155650485200956605886411193214418167156602442759726913618673614885706941527239871999336305469666084646465820618668243900201756054089668381174618499637082771479495339945944226329045595992815327419086128012685922346264040000558773519987678427199779484681875209913004316415978029143478440136262851963498420938682281146116419422847239589404384392659779236071438048201192223903693203772072554508111355665037940705921216697967716716675271662028872162133434448569603039164712223347250309478976375901448757947620692974250095316658460274413645244947580278528180574699536724083126371004150016304436196445833403094933676567434640852580518902087444253172707936824219903019433726670573411342793579551450598745540125797180653083195799546784614242879540408170214141100408694503729353677160719207327090534364315044597428460142275575960285611897595505345908383514387784761107264171519265709153536174754286013063428531771044092086145403690435466681844540255520749505187539392345483397447998788964789643371649822893239968196736805155495613757140819613489640064423226783553474765461505504239552986971461500584872967453080617174455814024544764484199275593612676198201511227419629587339910764895219675158002593161681635155180031024066832792774452513259994068632559612945090884407774389017642072138517446992959265250259630490315076037313509198845678896858089844994806516807889495208838304511100430323044167925352521004799319032515359747143699285330499247970464926583303323268647941738744295164419059239510360595386685059959495615681547785302584941632591380291471767425009171574458624217431640005083454497031340444264590305259899912946842825833548249765675050872329211858824880214267698753726659588497198520842376478760579304535855981664837082536907843666499238126150953693539954647326693823861587239535941013567360468847357288432376027858464809056914450075280839931393874273095079129233266955329834790688525562147692758629120674036809102013282099561979012038392263003677147782508390495291708570881539010635169010092722466474049869921279751090199976587798969610667263649908778304208728908071373668828301845091378136331929966839289230783724131132537018453555427018922893135139495320194171236147862885468884204732220831393375080908291873160928231278761858925245616787610418289410030336882755466339762287446937312228518722053242945191150182176777698876995944974820040474166003802374636566775914500765715811556872030608941569824089482567986703890599051389885985539577002355005935675765833513106245723664730883622451868161234975142683290205968205771121677755721494103176263116005580594406271678384466312699293747734505160818762276816646988557887735485572465072418445645680172674730909200911905414477877370124656806167634899354122358044923544114611907324604320172587697997897707658912721826657466415514756989933139019497467368848108483082487879893882519856917646653387626458339321928614635702831880491355565313164487529713615814453725921002622640925547032998882207162320056233104122353438676132159907619672024249974254540399434301997849268680124487189342076584675738541506511451895186969831338893776683793143412940517364322815824910886828991044003008178404576221432460271543783804556892836357660253160322140524852272609646517553024427329421530808043753263790266668721427806838182690575909960124468685216138913815509648908841319013365969349131278222809454499583542176905620591101151572512178378066822807713842913051761439074428159254646479815337886298095161865874279347668578070056711389964845541452214741507349389833414009047305812015944125583094321564912378956700029676882086163967259726105316551335437999804502943038194822863373430173596984047836245543399788021104213340637965727364575934457644418642790094022455411414618223152806509931935615986789311542682111948277888027621704716947954547866228761536674609751885096977463420904831922333496551985111077993382667309259828825124581635464227804979582564532905509585021951845293098138763444668328874960525147932994678840200626221094782965493013394176633396826504821170860768595983901761504769818339491716858481188433856011808601972228414494783624861544974206974503196998565796970421476265078061966111797684767521677068635329275000014845937891369265262619202842702427199789855478524638417077184007809752194769712941816068220728329063572405612376961405052727407963402005014409982558845120785216301474030010696986790908726285267524645149990455623552395256141894645742995898778260051976415902645314256363491654057138841207298258170623683734836063185180529726776816675604303239991354214149690728207684264902375076677333327865057355804597456578265641652499848742826493630424493167622650366375026828720623239699931997305615058978732932621751784493479524538668482815779100910301906453147373173996394626045790678157962176282647913955383099545857691299886259636521695500014273600921111820544532269493982807462443107133651541515969297202970602228485770870008886467366771760874379720443908279135798580672048235621684787749441199631461283233944368024815173430081176881164746280309231515391996677562159694084849831793746855013276190129054636198697888468227593787301213640107755702953245104406560695937733779913467480876911763776455083693781044828926746598344726454963979263280485348077957948469584166426210575084815936596316496821643982972943075998940894124826174598314147263851387846855246054249311745412562237805776700993688178947265984967929139373699694503066899120116158582553465739699269050646614144517963421862923008354100357153179914603005359665030040988347426047745477684210405143037589917258089908315547470542863719924166800434724027148404018373914388828159918043837696341559930589462633369076364073551908357242333558153321427289053918676361334195676292745802651391098325091902583683036868017247208887357127025850401644082172754353687875857565167093400283277736548046497634323351561609574141216093463444809097716009313011822364513470402232793157998363400647314149232565357022004868072819727290553467446921972203539600881735716437215524417491756540000454957481826851836538635604061771041986473688915587821618918167499108569366205151468831806621173015250085832061254413596619639845367464957728457780663518387385773477656654998527662209237574713782493889924977211962740998990533264803011903393731839572752230354805228203098559991617746466862168996655461949035962519747144192081632731288240081151357979667892376697190685539967146126873191500517725143688970774286405080008669062892719698964873096152525513223968691188924123311878955308208816390042838374043380902931636404926936774148354166594406296025490741051104011709166154043944804507212239884761276606778741627458086989725706336034543997557392760333398234095094461633471484524497699872731261388755980332676400939115441273126656602212229397586521907639126557066654057467563468521824737069144358203468773994390836781311676722738983965644009197239000532777637924259278769307343377817077193742144671117611810468528969451598177974496270123685201392282918718850261769642560309996761525447624276665705225975406640916255803406193101803019805186374162223253430946919375699722924165712944937951106960240900814900934240153310850768613305802750335028563339426015163123618616355222883144231546443221962604536363093753922757450802045906931339964240761594378197327104972458266319940295533688125144473514027825553028626321575030616622407783544581226389514336489917927247538148528549115901632958349692492300576204128378272376491807734445498166540928711040231324789386161143547080711998093153382883902684686493310190804916534774510077078995896448095840918570856115732285238372263073883680671267539989244163746503689844912028354340458246648790824961686130250456166072572944548785549083619902305799724407808069622852272249198629146856644091083191548935364922117833965062492825113531917911305727635953223500510187657581375255011153647751918038492385105197450115660088341989632150317597825427715017451827912801517141336876297822831936949905512398226981146353656253935678335816144981024110061388080659899306124738304106250474500867897294930752170349314153783397162691413338287742152621094331365138835331670365626031244974267436852600111867275211168860663942509071922025666348490916518421608263915644845715942063745850017308395268205599888960502861230973509641139209137746160059939758027135092263758759903294148981083143685307170946945628238161579413377045489332918481007647228369173431189955404222170541628351091756803725446959561816945944200039505261264513224720776336854598950767366849763397331933971144363620429741342984512749837713936387280809076627776670621587276251070673516142682952991619675854102962571282880702717623908454570615109046778633535454569339643139002903363026810929460855896547562688338946088234135969872861060765701382363916122560900857661635603184776008466665459239578797431572690786300759455691692209611659961831150662362045980019245010558377625054645565886154465523178126677879077364047820292798949764173897034959340228442722190569829574706346323641429830818702240559110892534945267729222492489668013747308320151607747965866835115307662460500183783304408914908356036866640745588295119920290216522388791291945117631978558000873104630047359346250799066935214985272774641109069648550273579945568426651222901580146100352664929286267394708450929647242390526872199600196513981685166629042745350048134520574813535987074259223258151857250099391997126849872963810226629075046738928755077498328118300909126425552021949472055479845286862069311284364067656115307774344021880845752341082272902555240567789255249707664345645965076989544255535603985376449886990176765298814402687943796423025812752790348282729111408448730341200611125434630611950473309011681764712775093722521005272469465597718447028219267923496454591679673977973500592192321561606800906607187584066615150526987410679476250970793513702573152048761655636028388108293891249170643019437647507331080273080819374934051684699398905510739072978485356099999847171725968541373669561030068770571415433813820486877479258649896723739895791362945270826316539735000766723474861842137769383881818390667200788547328974695351280185209395821879366906863705787736966255504918415863171820083190891062695739576642322479124036598016092084381004061504796832749686874581551290477164704948756879103166439224106697332171034654871909982595669313623578094102916255349739299732077080777433088634045022053857048750059430063020162407164518806458614927592372845746923686547181441628979860872091462088938147230384932656478082134304341078515807019891380482860789737058803859879447877355702685110679381281679609054614323704587857757024883424605579908434918247028610051581649497595840139482453889587678975528076407468385136280074282244453362979821078037145215330492739984169095402841948984227423976101356125809074494974479844785516403728434278365402426376096590955388572389136012671681383008620121022675845043577238134965603384442996189891425257598606475615796482345102743343080132278011050165761435149493008940168048279745887996877817269779325031206037932576165472358530416672453901367625051504488493281043186458679923357141421402937531102701033581975179295893850834866022117595941406306994036665860750723167063602511757676622608100467303745602311861963559608420592449889699704948229880996020546142668563584138350877451197308653703170870333110798227039261830360963900035806328988898275975849062436155976957351133118145075349460288281758568798253690050861849088198854578367714372238393237372113408297121352623473555313574241469893370362823395766582557717896174249720137572890805833647992344716057945557717484805469554655508061146584093798237685521879205295043249566849851326469530095808382207270651020336497486936830145479217984484035822605665372282742173059569950843913627011214532199507724297402890276382957902820349907417383824568801141610216111362944811898279017260208093545262067693799852004047481084201213332003003683818663040253186179762770542947879296110386318826153587807148403423732737803589038265356949259628717321718528945852316365770826499171147229981962933245458818815632017257121489115554559749608048544994546498179542060573536231005333169860349947096066348588583670413331063826758199081960008261896359687794759577607578787458588325183329973735502664721668210933942232895717894035857629866986362961824517694192026243804957029177145134808445279637105740546584924020235463393411514662348458834809640851645148351706565574555588677948897952692548901031909404251323505712562943673095943692812176916382586182409079580648667422347463327439183927241139140439149576621706953599153802768117755732513930417353293129276545020200498278260290926467454286855130001014910275936099170834046043305377374633469025864897793386521410383790695290303690752947429315201902029516042862918738849941891007285489611730170468154608278394423522378896982472957744628164503134458933662022460690703128365094200929361050767871476347261317450634164883210434764916129267809074225448004669252028993294796687295414061749243419359195137327123267567000376550713758137853985314337968185135510214942011345630035287521975598296863615132745477952045935181539219325105602787150074824807947548914414828835874543589308924516433544224684615684800547380257897711042965429046691199264097775658424098469093684287960138499585105730907434738293708567760073629835241563564736020426213371275967933683848675512542266916254063137969655436420362880328509416850121828261610157409148100078723699169789205751278026390455906006122789917497867504611326605928674842451102272408803459874372619543657579406251464675505934617451978070340974396036422114753290190362880242597780893408160649861011102891316047791694117990713779449243189062366186775010081159141499416279978754839394472274681230523500875546615281149371933513384726142390708676286564788511828777541519718435206699291154355124199515860049508770663759259799604883637659315225376163260126704170447720608932096305756035025448824170981304808845126512006012956306516463811968279685429329069455513802721380870288058210093881194619325305796604463325956436534956395238024067238622835257809185141195865485070427213400100852896275315992879884424081885374647235053474120904087469161511651472233518166216912553234427095243910881901653552778570224951843792145582385866966707940345073108424455613309509028130693261218563131786741299754600924335301275030948603506847316048088072654133835035495303057616899472749377929790860017046613880639183873383689982585380653547504347036227816356002224387867747719504697204349465230491469253051683022846380242029171015359955624815086143186984823498290367668996924935265235327861581075862534498974917872080056531158702846500161186859709765462306100374656043464292569200366178054148214592708159684679757912430691928062674048209349422472031513750416162897829391730051157903778350645967051034798814774475109845378974944555852215824137310436774092077747542970870262091159319572763367006012751580920583954661594796479323921104540827163912078297282550192936484494348143695035300290065653957914607675544488999463837776532512904721487817398729886230930337242643796019885504965501959215059964323860745924887015330887508455524197015040246779418085186222909505672909216024518017109969267238268298350364995649584278732173132480381258332198078909438374821634745348093572034499492869802435009268104349311880039057295093161448446764243451542813019412084367990842644774072080663357932016383461421242853307119900863139562541028578562548610141722647855487513035151895499441814661381842920992346763981528270332358298527940114047398115083968265703187467041145657920418146705214266831448617931589489529625042880085232958475832614979367888536869314559307115320202838799138911122702866808101544262587562205832278038814100415555454894884101868040815823041728804419974959370220897687134698633068694617045927461317535154264741411102299982038569735787871884356182579269005549961595450139579039069721217024119651333368237446769603491543512392233261881896913680597534761169972277943929556101896607259656842004194032644246622559713847149232156537453325832958845490721715806007230660786629845564095448119803321382100298603077346324841446111202756055697351214970127723802561946133930431486790123158350336645480754320189786334798217958424688361409381171932324005075860511640316827952669887163921731505479102261106552490092165695612223908534893876702908983729132946329307999389334404719487397620716805526945889580146027271790603092491415451769997321028806436612651514132067195338085997887386054310509010809016553353633773779927623136448668376454031979026890267662339615947656889683138341315424146300828875594884061264428876087868874534109009599302540999429574464350560361711732602091657480510199649394422221366624102677042630027066586756952188750453609393134447190220971065624029416922386512758175935929160907796314479106528559252908954893455794692291757358788812820142244583421158515625825021346660924848039173799099074322024147439108184901740520053670569474057357538840623408112992453119130542027568165861320996662435601016931564716236213105418537426585090142723867481398350925779027446068064002642753373802585626096388190167079882044987463356120692157638719592640910947293866232985382409719625234342766043572850472066414074225487963662477227600525963273991410964025163747850766194541146527456287128841232800090700987222140259522880160293831290985979475281289537535754899399573187185386644623645253714060209350820335549738714496405363586539353928382800251835021637407786130317925329826019957918016943643129932576673680541323993772757876283761520319447575002662696417224486183013265270442650643652653309076712350418685853568889743072562196082892388884476571317098903001948343755018162038560044735752240945396284683882630063997939980187020568941342315204364183858636263206235712060488125978858780957556785555459551190363569380988448415268275420400021254239714064819003049450007492518792298684838285152794840451619839250941008505282602708576287644996834820816585363745996378852272257395137431764895309872762541829298210218973475773663535692302620295574256898452343609152189442794693196769659931364018630712362898478597732939250656590092655123577008727248588045018599431953400777787401447261523996606757456750888858471666774296534233005144417339201757119203707144250658411859448627520346351565314186234018674421038867531390631533100437049341407222697655073967669858734931484069309461908136636782274370524225320536963916284081708517684395082572969534196875155735017289003382030111949590238010939360986622029700096265509259599658054587322812483298696104963876666052388034494880202358267577350180988130243414366793551269961103160583611632273606522784264255859948284018991184391192517987360901841377071988792157554272193032096914859719994450878349063307618503864109699245449536211693989832128471457353031947046535109921956719189230936766007457568012286899467280646752789154329594720342315526396077033492894450896248821790516408999060209381058577496297627747007084109890515770985960641832939713407763258504293013549588470322618155401220476210448910692215156058964697831623241178076526048102743082111855854303833030328258476976261331539373272143844259878154392030750788015262229515466621664100685136346955350030634072842978877763542948630307056459055143747612994004573831567392267372519046464273359872794924595363436276842916556772804107532809859598860784279173128367571173081304845104684426062971172336796807189137113842827955204689190028603509796340163642984464128295705274222225360295238312507489269472917592909248981458993778536004534114348687236327287076220509199311646354912670639356154189305686632485387209377994760225663765169480453908054474207097476494933437344185443051145099592315503360734879966801151522887945353939670515373023877168746284715676312267429955194608422351300748302922145002093545706417339936486440578763513235877020160887025223085746556958606770311950415849154655915950117811377454251993084039404420650456986623927842665233596299362332319444901837568206188204958013362929808543258565031952833596148485770505204713895372045381905528468613463912918523701373851445561330849712573215224204890231944054370475753438173730744267821044859642227629079978117065026247634927985897094011679240152378221607479020605291461210620615908717685135195144253551263067812014595582506588175710254556256988113666531037696958892081350360531405577658579602425346308384532271148820908322410567460317943169202170944265079052271448450619756954801415875416923296324203963456341037791825460365399523070944703988658268108682600515100871175826395463235996724123115959078277353521924839388148208929070269603882104318570507734669634793034472871455183314420848996191206328735369748403045158375722764190821274684477060472063384830040317143793856624508208392560853247933270459988655359689854526360273935053130687837168964760372040160161916917018757462055622564228496546541742631995827182358466392979007535092271010828166822662251069123558528149486283768493819612330507154050391613097403511833034410812574717544649394690636105972014296191063625389182260599589345373138212160773864919977255191936042277864955624070488855806330191243716330073408764272401943289922917535836434872282912979144204468757400778477385381986314203431330050391149492264415972722811013710121197352713996468388053722193038461034060936628713282948326549027464758370465811834212948520979537273305877636248605925152758050423028550694803968942186488485049987863572816168897375235849438454704049872233442752054299236132354419700864508264111282117829357853378697619810907347994434255863227216086454566975287821118297852223179031129372727760452308063518798602860063881115172756971897252651616157839480644321862015868210012892595884713729861025989604675535691736339846357388114689713240205251061006707626548088895263139562325299384721715431504002645438088747363708649922596390919167595685877520912531119989555216925051563905830741075573750154318017863020949524605243451264760732492021681270201209550062530799993454526619946170682937890679248181412623088089423592938803726109239237223365763009466841850523653849424340948523585579409211990386252698565962087617921193724622607824608339441401165617632150079697457339405577568820396138533441005931969500432203990347903269180341472340583200823932110640178124669850676047065502419301753226082651389416030521207907359986277105999912785226027015992437895639886339146184286842528456855277239860231887836303420681302576897199720113519400291442568494805167175442290127429291169777809919267357117538765292619597595115614305753803381730277513547362112096045947915150986920073009396864909705870122309802549413593047356122923552776093712664579639323856694972401675030918590496903695596613812125732654515563744207750740121860195618360002980511983035627358576410310916738610686417431383899369078896751699797073571650114242714064444357374500807077908556590245869226686442119457912586577485056495992499580584833827437537233315936977308729147500921356507679147130615308102514631943767727993072641110453364903184998110036310666055206950881364993454010775170163324310460850167375433826448986355115207310072580671356835195250341045408789678006710179231160565858120841552572748029714455932798596123478882995860388199014558724361641110794018067808026280329351388863497616318622183981776568710338869444172500704599611582851915252432252453242902286093350955075739781729077783977449773823616882540740538299072656729548548067103306333265085054324401342685699649731363726210797796496386475233692814935650078253888636957025803105812514959777737124941682510685455457358229015508796989486675166070389357336715165563108476119523026835776374906648281182977497196326445930932233192970877815982731758741294002553681212519984929776560147697205311827033641040075412302014284199883541166981535681205965608697880752409506049408348691924471025215252333008330396329380172537705824736150800142776415585841237121152220147527503065473363547502295208939609269301262237355967454814724370905595769939508128449427314689769035315407007026302550440141381405891232812879374635299960035942444394706789603158944920872084318220972474773906944642471873654824473199094110281843941669784894259861892924950322454446016481684103602542882134958091432288084198127518744524578391065267638851815093676016738168739205575250240165692251065855554295531384637706365114546651525737153948353495640015747628954040885086407640375926991186908895599517515695410611987517431139644035366470735662258143209506521339892599148862718714264773050483895498251833546665686448241519471981637899193362042618564721756137258397418031928828161991723511320176200095883223917391800206858602126642295533631196828652203846755803468070669209868270270937662045004710404618390212524216088959562712037537887443835206574814983770221952960105308272064638960810696376754962104470172770457860044713248172922318657141166270898597169268853754314662366212130770022591238934994763684235415794376497582442024014990338374229897260919929293442267448703616482330443838465684957301658137444452234063738661216162998319482455406099464669344319554660711610084321752701692491621451954493994580796555303282998936727079404229172517854518669666475267450065306653506501564026064643778876596139648548014088235115381772492974055845684825613325855621047326996892333720187701027870673241258894372887163652575254099279912646889122052383043277439966872359416564611855572081072983087005588177770409628023133975862142538626451375546961016054978459803363315524677328360826522250539947003379773044628214552284461116906723915633364600000908151731991980585238339478990446942044507637555320416385084262747019827585512304222754159575150471944101682379911820561911367684256647393714974145346805203848264894223264791377272315093966666307569673300773573742852891473744058798980531881877742345234632725966482182245086907011473050745200001565554145133430360888269101969752697133015332038427680662834229993333281329881856390564220929468000845998781322107189568764495508516553872374929322029186241983865981698017896234511907976341681116847592587576265571144341327086015276974854425811357653588104590621109974356229733756549308796112936089596917056800013609521928080809832818721745342758160167681045540096445623348544928554918079754203833178519440075770297562499328857323738024831284867369415181005308409842961342043514950880409297835262042486397685945996071369095937898345198947703490284386267265598937818749803932418882840993613174585847760023331136343711176150259088155077486729400184975253731432972937053203357688021287651219269722860617377671454028206986164686998645490818153766475163083436984793876502980601603902653038637272340268051061894250722710390071167334160531595943733232478756139920835116695235394108885795665896491753922589109556159980399479831392106472483629213949343439676914386320816992354951802326530996723213441590778922828081914545487722643337493434337506065986781697028984532305094402025132812692823232304145439318087707404825757041249223571279817329876640287074028471411637822155710109106463803919475896141008324962457656492802425800774220647461216422137510930450907408576649308149931005663016512429985166251392115451577678377728757285988421019452720539804189497144577676121580186086099724603066235106047167373924956672337036158673938315555495073172731695628532693973750735525941216220991520309273990173215599602483121757418196363201174503985421619705005237517634309509841439222530368079859826711277633670668570183118253831008965328080053104973383096680406609938363565388730658773577945797858822458177042284049743316246314487647363070063111970304926057564835994269696230099258310828227989844398345998191510099939133455266993315903821508541672883902009354073542734853702789402868707494718631082556156383214394546977326487158466961387629771454966295279307144269075282805590248058415733514453903455971779341928812670759590351210224642052137324591186939319512085881777198859040325423630368163622692380824247250329144801679929173520014152621692163982041624505535506818402540270475730054075705163164523320823619932648705699814140353682187616270907454833583055375782697985786240000050715435877720906369726125892343679259092743001000160021190842488106200759086915250677445643715838535344620483061327138387139571709927526879239401013868304550804669057670155043970561588191861042791692906011277294948765601321356100295236414990052535614360926687278817599407337530140093380687887518041170849282187055192772182220643458643296304839239425229259195454578548574699105114334373140951380520906973112665581878220594049560347079888809502209759179804183651493595558684242620813693905105308555219868972324916615943785480756391935794863845039684395370140657365676330231823345768285977281456816073941450522710043576923283192106125017677818577085296697082774555198395673795972865514419978455281085935486863376272292015534406421851393066659514712319614356892809981322206775467485631642437909235145673823060319627815451867832876284805217040075850996855240660881904355587605615680170144890692599537619213066650573927035331626628431713658375523506871354221456101926456829116865545474875335364861703183986638867362613548739337542316385775302834865190217710485788015148744913619078917954831658470987697244139380968271495603052865024099199160900328487228898861116268975533105091235581658547365777528255310815770698286618304905462973872459290497846229185474990141945676515267968689780962694827671806409281788693978550890673001204083506171612612626540042219236531910783383558382494995644870721020832602208047897671591218389152697814960929099534547748437267555056764598236038232391547222034289208521099393554278320336044455598266328166806100367713771818595750347657790514755446122418101122539713130151490096800876823478105980261141325936387835008469413747394417785768846703743975360942082298104506925382295578100013680118737177818041358074775227528604172481609741292583372750049984920856540657631134861989125695995747753687945679005166291443038402674968497618303744360862195482318180542694656863149681689653160281693293535906496721700056203124513172106955500511893726426738975690429898470774607361027522233731208563778911312558168872796818015084389790996686027795324469186967603034450806251644056386015724582020655215330678587311591208140402482731876800212041457312532221750315262040059327377738810611206566767670189173374660055230458518984511966060614768998427273595109162406219269010080898782044782096805142070136099432346671493783087956585708850919845900970730226709640388922611580921256191537593230849244597086170643485791414962916425574277574556781105919750253650151865136443186116142828404925166270172512282145633141948367355485639118613068884088313498555926179217023695992588441842127063286392734781934424377931653285033277515374045105885393958534323087129629794183944171470153391096090530300808395340777741031828080486788718118634205796996094693491178136866887029999238396687270801859009206369398126871783537574662951761461189013443703384014334875199261563752383783965743994452572603410860821840108148388207673845502416829201549382328626667959554081164491353266591307675342568658760798980349475101406564728810221065332003384106416663211208774204210298905903434670829039987835459940412272382971007496561237427642742211617274619002393345031330231246850177304079794344144431774707000956694956975920167154335266459565297737451591897012205941672454294744927535327643590445244012428301568461474773075679669454536570939362201303938553796641677218940117324138773407664089519408183742689035439058720055597333907063597233172459540641116866696543429841749195949998672874238343985746581046001569762720987834771713433626826958108499507005554767255964650278868621690086610065401381211279815440109615183132518751488117763759236853225685539589052947261490213956168003070433805826551044413946145201715880444143092855237400536192873253502493984538740480301209148333356298837991222448270758848763004036365141798106163618080652325286452101494435938869920298596936289113889518588784255398093051091554982081511625231717235351828863316462866134147670608188076125459989073205419655756328418459645219669368393749520588302900860755082789255605597323650496337864001955397177207026137853877424554784144741065631617943939351874863130017879802488404317957491440292841658026321359619865093015268263708439143441590596943088160081613615033121138150937308762868588347275073418808243151173384925143874598271249980442699615975705309038602536704707034414648122775768626465712213274461725085026613896365757332544948322079482519877816720095853221155346987157315636406844035836042284121701481233814606877036410120823708993692184910298093972018527297991298073179051992752478872161233486528379447675767097379899220101898620930389476002432516935185963584796708323490961815395949443258094010456270470331170245501935849365650577156723264885903945863479596652344047075684597393546790776713707569022957279554906481568608774223916128820424102845187162036207477613235625790437617471507359165876098806768959059946353700108637222731267698010987965624652684114393274891062816465436838185430839225133687869075242026757763727353207438213925302208533987638471483905371206402807126410658133275230344251068547449411970389727147939377359949119621400982315522735857026472842140074997350608532888100380196347483262367017781235647276025937543330547961301978627373246658412547790984810924931543461371409971141612455629517141221626877572308621133663327556204653294405488895819411782462747919220487810368844464794918033008805008094556406602006708424967752010493967996869989189004865658001119901327681373240437048112168931080221681683754318360063096268740231790466461444441063075591035900000578859966139887569138782396836303847235904794898480632406121502587719285381136538014574508139849668086448600102463904658843394736207381120618847240392497886890088687148499359692675480712501440938280808534981435955808022538189496597027241166760502777364927505527961043449090476557772213340265147445718650698182298460526559984994940702005824163619824484540864776501034969065583901285720457129380356208201427840462101867395575599593579271419399561532804111904159742841289520223634860293000470055502175805697946532245323523080700293108194179913346852712368103421570554829040279670857304953119274392664013921312813247428386778885803865856140093541254512294198326679799016566121261382979535326992549552162799224715616656693593961388831699863268970845064735731915620818296878440241146724477209200360884620318833228305261503818625420021274491593581226454658123771811490483651511984826455104390816391278775994229579201381709570054511601735687274438084664443791977466477284989792854315023549763882530715248545195740899019576647444128515564908270229770681109303683633036539834460279442096754647657220920084424281160390294949527548946453728162423381187080604222690141036413158036144377260091268098531778951430226293775856355367586050309400582879564968342336548291066126454333593210214852589627357908553402221680800134838837247640642527825048740263856744309771409076739400202930319358549200625927862712578224675191930453914023046594475793831465318324085069234376045773377626828952613671770916178197632357740338001808253723779735837085715811854936821181830390346203878631423029648098636174970590692071290907645577320655751023059387801628568735864228884685907490719122702896472270994281871860905800401237843363913454876868282246357342521626229661844368548300538692460039190802966153532134761842974171876258140802040995497898641849622566058348203202786552690956104106615974758768006450805684215475865012942242597154542844145114541289592731896170024022673183647600092487244678330399071748731927656196896032758688555251250349950059569929217154846773877260064315015873489053131648625953474483732236230215406898319616177578641635403938550264749453404181501602564291234767998675099996706701665630072408997808565945996365576099161987496539728745480861022179617390489734035790644665006988884462354825248820281483452830302081921843341514593881969299024299245688133088071821228349277390954743438512199456501236982033326374306964945035393366463803592313618091970018326655607044182256012750921531358103789646315268077751609612878772596876644936625503959809878437547306325798530143496098258811283254416106736511123614950331906304643364287058975325267118431979807312588976994413985888141135003227437191029564420279461809420540183076295566721422119742589951086004224213259850339075691993154463002473805118052317468995500395857897196052821725665922288051058404814001006179867188400323530240304616513802384462477481401797469813008586260847223226117942874754393685403262267762432372241312590267425529244495934760539595625309827374371891511281495080063136942118244032908352402172883591214835048709528041943893913413615180994915950782170338024433001455553869212068717897008473780334834363949154896142691511996925312984044104746683421339507559602687516457182019587135199923957586880373788227672399657319614234323537520379841369166593256424238649747206133522831473585891043513535177502234983457025560370181403219786098555579529624897388152053266447312225575371590560606694855555194854749208130757220177697071590027552714982768171723470011848383042978518487365122385179770893902513936944125141132111342207241186425301814165778980854402061813872013995641936840864041456892150784933737669780680805646983420611864229650931946648499354898950159305093816179802641686221740275037690027549280513700177029469568903489938881375951752404501809640080145377398088273338464526110555992198378912953977980823415808324229311999286422931935925073615464368263436406498273577617411949161421912262958504662187892414142026464689763066781114545061615562502362260529035059314791750572742419898127138941744024190568125687170988524183985767475012356586700357654608632163581603169428814122421786558551220167042023560219176353757919297052476565892146882117976198372718019628470793981430493433229513458323713918058838778435467162966277706603242603688446720812413758208802250509913051347539250129921820489183771064182453973442150601476962406954560789957125025601789203038145857020887215484020395977561025647633963910514526103832301100171249750274939016597097754872628023604029754413160597027551560290518650871124449820631761061914878169829810331748395353446437581522391180568383779382614988056969600270316464420778618713954739001814454503893987372666936329204819952971942123035110250213845409720159065657112760142707203916648992135548819611324973465945461707931727199102624481505350815918448815358563393761625527071725276800291272006381549737958012967401230180216114830108311940480195361118611498690540989657103288628852778751945122035308675861625999015817085956848237634802610328608854110292448109996821223931187526435796578767110771842831903680834149993680096691241033646345011303905834791804028546558592863719445861368026613311977810654837320278083125786601733231360382244122405050376795752863500689912380850684594160188485156261518462277129004643461220806876292905157694439398497874739029809320186032832377799569502649832657243177941088485373426615735986784274686539272531807461582291945742180538512582992241231756807408604007319682188002597320062410366096621246833542196196180086876587801908483561199650320953932147291909023212705874202310894933944562311075373561161933113676939565010497752319687848915795979661999259128957304873444033416701535527308777487734121061128479894186527518482332641098178457409913685757799922013211360743808272617700263557649913850839864339935163607492194132368054312292472335313134360137544676704352292130784652889616249488196656762083529187178003386304893608582387334952637809805691977586448738249127897006179380994281161170583937139189788022222437327590777881865376881945856002406205547823527746620931386068860676996762957668669269685121193534052884134237215388304890030702656962120239775642711025659004651199479139398390016225675475769558345671687079381507455738468741676951571650083482062800302507419569258410403788396858886138216352555884333494565123609500779782761803171399878112498185316626822317518932098129804346995429717169641936198820932024189350643163205347831111143599279622974356410300032038103783635059202528954661640846711720843877788136572632100562560290833683160804585814760915625049226665128767466676740297438215894896740187099967443467941936499391249265415824817237147531130669646060437141738433338106746659937601237398566555981259218490079345277572335343445870931293846301483855195112318242441288112124032073312968088239100308465443123636041313987833189869514516320180107721446074841711206815325885675806776689051227340824023449745219011417800656145248324669178723627618752262732409672262345240529750998809750717030446065572416082900851894892076446453541058571217092661391989377898977110602058282097627565179635266725399955442925434823613678945221956091762422739377126661232228851709550518648023322054393690744680336687878075854682071046597063073254344065737473793989008546376292202786424157418245347063765404113307803330562834201791747464110817386022702443701242094769890215925146723363407504299506671521543464474757360344026112988755702443010625560894125186247472214286373219029592888812923361277229666517303155436527108757066412522294173363019730355536425562881458525075695645501190095045219514131288931291759243810194357552790008063563642669447178047839636069766786922876791783000134211155346150511546435753236225936543788060033152038357325119698768420723133121512629732693668167712313270996290101905940491268918192164371795772071843638527134788211434787229640548675972681129421898989946285785692623355698974397521513584121393619802613659124374438217068600567576082022547377603385003977564742407170041924866846211747516730744215563836410961437675889570364768113335876983584285989780532373473847786748063501122903948619145300754149582721073680102086085387245235485472919220117946759383704589940116979203237195217790556829935364574818762482661901120803011513770947291497587632623804106319747106052955498948527961392726427448141268520998195664644361627104278511016700235466632616815345719249639965999914527907097507327825151716165653917348377771913634133777788814923058453969678784823329092508893143986817172999216956231735245844932839350447300045011928564579012806206285719381745215780456248673834282776272466255508183422808485825201021194893122662477617532500042981386911125524902899047024764805889918949209986894072142038818607908841125658394850187462016319148435462869162363297237074910661551240124112094734010003355705638764871085603351090561408029812490810178744809106370680492586920227063558272421907561515537064733268003965956722410093817745502787783868141883293151559649480897073523155349093560750267144042140060736909405520968314798880990988502744098199270950797831384995338230450522435146752512217719643490711209980118184961208972095340989645451034540930502320176944492977901376724080049906438733221394802804259514172983557792605632083960235154029153587151479455987340558386856328325208237932367869828639127804967346622759502989178928037774425006337284464493208579292318787251470803020570482387354517947153957884512830511201511903520996959819202911356484495673763501133539776370169815894388081652137422249643225432964547462410244497832374825670522236885864787369297705662635229449074354034352282297764600674661565400721153888881161930140989010369231662504264820063527320179723210292266018990322422819843629257165682311149419278617823046400540855748388080782996578888444916887927547566617657788774235035799666691719080229725390131828346668586716597805005329906018709998568174854738602886798438619499219979667384509248360449155364805386301266272214757509234023465333695283062272012520082490467633191351300797290410200216000656183808621697550303046961159238969505339208335790512135261415962697549854325621099688026304558299729282011443038248395272172369972198192046341836795450935844593276235158072907048065268683623804680887913597971344516756139356932435004263712097160941660845777615667476952252342457406479386032784781795913432535261526003142836657751815062177768352639829594524243317617604348661861097140275962728328550908689609231880032460361820911077381414173131171538355342863227433531994128709015967605386444139554978820062053038580501062619785266969442312966692846871299984212976036742613647465326997825512150737619343223369112994795312221476671785975121891956429553997664811089676332077611369557479696873276394832053857165774202745093763857621117675460289926675702130853047757365552932754188359971812190091362347947672938805203521607557510631354096629690585604867735475301771369361951421690474967120467299013321023275611811141599626695474845338419040217835024677429139078550570809702453959828035786230792492821345745646879606689440245978138961794555092987802785403743742479952844651526274017516797886468915633912765718607487667085454839407661945329667659918969646999183137092588294921590273912162708209257362723952932367193215476547369963685128175024302247855501813759478049714109547604501793455927378025235659435603678250369780917138179505828930919684704234248914849904319510406580296179642578424085941002587342536628233699553036730487071360866078767119086661289279107353694099970170321453038640389330545879879039767367994010484470772276516090928491903734953838638107045561712107634175694394131299722908288585699298604713396499279344987336971684165726113648219241194497632376496609831372064393766324835444385904569023904595198487717167056697039039469649161550743494194939514682556059946040709254288437005744493042277107888899786357814385970463612884007448703457168667132461819322650498465934400981167717422018476963968692808908281499149492393584598411255363384087232284546287256694386139208550237751185283467349366019961894716356992323468545307747207579903668767381975325039655887809974917196497251565969446710849373834880677756246656415506041785768151973189873947286782436805241451471617793272301021552122325461309678587449688255261058271802614378836213947562484753538202909420054616077684915565434405975911146796374291416220431914436846556006102093489752816666639298314889528647609209386104087653497124884410500321218558825270947074782806208826896636118561266328634791764068201703241107124069590343655123698865870407049263627495441500095550577097552348216726430746970596809646346937918198222549115622765264044149354127215143600568202580364526262774490181157599019196028459398013283838135498464688312449307365134835036495185868898571391837025476408885398488289836998296429507677301435325944179183219158037722871644671843804306330694479796167426720132253457800462279045168046713278911382749775330639851527475405591053910993732871934551307315781395399620902537231423540688954387571414481914941076864090062106680041516600078716820420982058807834863312678142518164527135041196558368572575370499492706429419783223979732170712820303379061431626850486665077876503410004560321219084522691442480193792972710013838894102059660087745865879407659466726544678303925872985471639204338540839908101530561989538987889856680199869890619163064608112235607482538621439062141589096227834228251619985281376984182015932574053363554484944743306427951958610638098319878665304944771787446140335100602272601153534568654160185613780355411433383685718912178227544647811443489839357406269183937843469456068027965935823575317161125124154361368664868173311899339530953606858465410584319487811416178547355594580034914749258690211902596642579146369108081075497982651445168264985552559187458325203018581546569051776847434725206257362069767877646292410715772526827636736070126974365327737842340675389631475749987751241266801940284819426242544425917429956230388549615817249401917762940822447599064861978311319363068680201432557702719914165372455600134367487289580104507109510290927250603285902966622777969228127571086989825246662983254929223987174968816719966439191951403890560764436306576450422101112937002874944122909927557142764790858472480313838908353013031427031788491129107592067349755973991003565012705880584515566604227639896934170259018890037623785252724083445570481097444693721256436258457440600938951445093161591229821609342047056463879867740495158454479438376030808389777198239216241536091934917122432473295134729737504390058611425713542460719858031601127827306227245864501089959511247824178029051975528019195285784528163364841798693789906321334954836513527984082931224256220764773438092146376546195607163846728291689697150236140984535458920931220835957942464470612596449095010644530038130493496405550201377310502642212469684987197767975805709446871123436586022844896517638082840932483904187345598903355434240861792966876863565113013363928981466793745631790607979365785588159764732230687454934765424361594134204092603378552886630753474919106847262001167902853369549807600711070185084316056170845506498646382207054528208916264857213096313472970682116484666253193688073478693631159083426883990626973087500413488129839668433327056435541180580633653083881820234699899950418763443278291769941518779120175253368229832438685519228414133512330103981594174148635583254950292697802687586806301012272837655912318524010088594873248544134852151005592618999821374214975201194713172577318325737185162508238583120791057948578755035971896737846307902201670180670291082087633710747195041001651390773470264047309768511125473447461257326414660927644783319734902484728168185207873502111084464587545097526285657010620655563012229814189988121351747687282293601093124842912968460412130463426982694132773052426759907333360913077605044084307545683526256463695794811606698828016698978023298164262802544162164694227842066364105884609416368445443312436138221716835958441869450407534913515763542626072884097880427876927200833050032966627811708949706425228169665004281181795187106833396454982201421206537797493593171225418004337600886944559348837240649018309337630917184397525758241784199625198185442759201196225348783439316784543566876531457321175202902352194322959535333372598372659689787407799729170208653528560629575965856254089117865271774669222821480462391858678580197233691420614350693227936758037169821714410418809627649852375406399478527285416734547378107406298709668969942816811857965598113701316677093609498268248510767278050340814475151320150897926503670326838352697869813674543740343315894911289565813125655251416471789817377592135425239327442573584495633417387814170900053835899121342580703453206208647654377866003584811516489137152341244965303423674971358331523524442465981183156072659260714875160155799105812803001722406264074156576876384762029385213562957030682802444895433123431068053501826864230346287513707187005725120148799543070541744485941728403370997124650465179482315456721768407733424766714749000152403223804353388805396889900965732938329877584220520396118071138854831061146255975024443185883946347068734087422860847391124546256779919864208906293269271375862359800856467206239879309937480284278106994002014198722793497871239831900525797644123645946181917358809780501408757953924021378684514322840913224611698286680753663677604578649678790355458053536169407899004737271473423582116411054448934301503062930560825905190224598209216651520142230260411904582164999289903165836387377308459142940888301795707554777191073729054215274281734812802576552740919324669560229061720496203639119642532454087007319765553172774237911667578206871601879777648978507067591243049912030354003603955964252224879342082988481687646413723511120650224298265615012401826710975332503930488876790028948989647111778678109637545695357099963636549984474835948395131307888698869198711143014180872800356563211491157578840073629629341994196141512112746243439657603062851878476062722941653314854768647806440550913109812987012794927729074322162397357391751222197307340334233378264084330613394088415783677457009960917810342510257567355380312531828589362252937677291567706249949978678700326949265414519300389199540194353683620602836064986106423844117263942256566876454884307270769006409949614930543454780783173052211677917948405426837707502620597472969715494481919006572258920197772058328391704398020254576590574935382953229951301728503282962057052303187340479532293897222637618807095162505203356125570024098439522126360252785404913337808438800323031266485207666003346550480498087258259841941773879083520664062235079001002915291693405214022159687114214333478474956452321555096140485794179455678630689538237901066805132876216744251267323557255247370935719218420956928235461439877241320647620143726357802465888490389635595140686208431425232302097264149070401880347574590590916697108393195730433135141674464774272700464237927454358366148233945736103733365770188708518700670793056614986032336654655774817878194969917553335279603205214565388022020271240735019074538641757293001707431807286711772539867741986961946723468242653206452425090862597658019386446472363694405533908602087682017432923880837800735004478501253755111008055182579743447853285072169858791493777302140195852806493793602608230956241260626108213512467901530590596474848656630347651200680158870715218111851601593087892777666098736039591270733921874508664176295113307868388802400784263906272919943243501405436765138810180402519468009239742183779980419746625419305328562517551569100689765944497634407874798689916646142106439088990533225482794721945475531431621319230104672080247113249544777779554323317974174224436804597075889869761792890742771322805021926069696625741490661680873765667863958893075488293145179012080035707329899442986604375692405838584824856136044949784258444384929180610449167327259669045563778616466527692770546822068844825077588862420129502069139586037921426255439341882042106123030259911889612170773780403529638614804161333386635427827688938411662284861435110709344650213412787290238449746888603392927519194461318022829557500280979756685806200615191018863824643283628123712285205743508776378565772028955700292475283467575902942372845710830351899460219318830058239483944940570636022355963779334062597281482332626344733287217190628834109134973298993789972204161374703540239697095113797909860845027272635653751810548163379690867265914969985605892441991432564684673220367247469293900155933072417860020647203751368806116512585553296511205929718396221887228444613487673789610892989023119758865364989979171736568130503443043742395054142655890337330720650348081669579206554453132932771734710794022289585531685408228518807933948871070161142530591423478640311100771820257572257748433150180945057582917124569657298219801933658559698927083997203199833044560832440187871224299184646784537358756945957017911397913353635395747848684592305322415298744814959370098763290402233913370931934215453734508320757098320371666196872408727270786667245632901130696542600738729845181019748186951120195699987319038229114459450927121508390055994211683171785439045732341375772945102763931285170962796348528054803166362540989522481059852798671010449067464306238544061335719537706494469309603645163213531776666931818762720073550254342273304735550329265019942839297293554065089062027561931673702451168845386576335727667724490430234301553967815552469160853892319372172452387409936715324249052772507996849954422120285951290353889005080361609862234018658113228278708120719560909023689651388422495227534550571806275337687437696354780695784830766373091153488014989980003839929228796323420547097368276100533124949613905328618373305103650024288367865722815629599428059280650631575268509206756461975607873951910473715189089786843053987707919260261647468048841103904535494133145368112612615520829430173524695072456382976874553929833551386393961277478178125749124846111667751282208367750676745365992182181444400736372864557647525399360830685685753322292737471086345356086742751275445730254314817874776452135151092414759003663181744333309978241731143514252551446443418499104152084296138766591223787917922843024376923457961442266463440048110285976741789329405648515296500057995504495559525104865148816727166621819579923544177016193679533108048845148215988973851632992735843250186735103509290294691656638742740325937630053626738567543051404290152863551538139832193711598189197216653897197636395339719047860225949655793076647675185857268159029062674023619671248435272442036851845993362580047141515494223531636989489430229179709176259521889010282745381747121662055008885258093100705203413784845311607252672132049702846861781247823909496391500071703899943125846984892746449764993224847803160107189432136130091243660147451655993139219388525820777205940711402293164681396824169816009229078105412257833980286131305339508245950653510246463108351551350667769589601379614749185476658146369190629516099201689065860747183755175559284101483007421434765903533490857937663290415313860000187889438780661286229683871595258357377157682442847078308855509650469402878869554091940659035343748677087969140931632541944837755859202280527653781625500943253545641857936480329641462320271606477630564410484779766350427776544659689903435451923403923053094629984054422126821544716223578716303334407974791534602514590720851997084468770634738660026004903716748172391126988603351395817705302024760991897703956880424656249453191776679727339013401313653451526006335901086680984460582846579542795979547959762400722845290205181338496240114490098330524593091053638812407613237923982153188231106430811235819136759646162768068219131406986322985444260802737013737894882575956426946133619182988665281821171563494927545241214747621294091981041497025623659391387907349347301883705894297624570214210633625395226434564695736671930478314585462076990989771252264542807911145423212433365545919658867050570699724876839431145818409090872033198436312078540355095656682651693408356227047446708771297415032642338345023883430187301430711057430424030746654546197109270306380949101576713673334615800836991044722956705459077175083041695967036385844647417773652659938063224775759403391745911731390921684882801730653315942228144493251949159993412619095848725356622784815789629235413061729830435864180217917000436407359461944057233811438472197095794659818640264220924502749580556719601019355704702915546026655512968541490636481326116703153513648398206404157564736335931472349510969848596330690737427557631127554062082116664425323310082387858666417503978720246189747034701491431294976467425677727533428459673941717594140661166876428253991791166112719911707496149026798659784746297551040269661982781160355256984251097688838686587996913457313838139982470571773700111087452700694358446508152292170255650226962853844837788946999093729463633234765397583905178188267951500798726309238839357370587268560146249086824647525547985170076664540538771648509544506750529559005816727679693006973860351035417554559026144690754801900698765252653169797271543647426131951108402386219629470718715989150267339314230008929253544055547821785602957185043334546901878692058456281598591421646873422318214135906044908047103890518605219448577573766162254216861442928572594990889436770068349277704245662193960495504759623790119983305488156182436435149704342357610983068357726534883904890514843977206236285345014663723153162946242144038376804838132015972915540395336112248702886713689961468910061002338234802324228916931644819909829122340012563754900720386568338571917270649006854930774014131759547853999173173126030857915532547926428519188082839236319151321245221689848449556962261569450293593045769972423482063547076407678893674306369996676621610728118799519142340559667958019036249279499401023918403042274739047531299348356688772547935116007531948782037815979149157177420510896975251527954965215773213175551731499038306103052909237773922625311312062107941476116716414423208588832153516055239412436447290529649278796002837267812175199991598079423905334157319392657347945781599640584106215269134500934990372949535647696660434929643672871210381947666396023124022631393459185307233986994762868068788296591574389984976240627248820550923632990178516027225679597522044331097516830738316714824697742393287683106120978223726884481658695730631659326704858481948678081969287348769959710249985155680625943708336536239384286415035256229680315171949854699771950263699103162870677418888249891785591874150719701118356504734037987529049723464977092577216132168369305269880260912272941427216330909311046432183514684560037726948268996563067738520862661465004891404590885334228290918582053346166195370925743214295172912370134295253570452832279864989091520441586538050760389123818903279954234624250405394450028153424056867874141577645571396589029067353153130026702855659384076045755785668875245359431535053638479055363498887473098115894799619715439592353056433527903614727177732339478352179147069952357208146810453353673287677398403144236098296869401144087671632260151195684734610879737521893151901871283868141838152266123773360099950424220566326156098465719382260871914132597318683940458706821976498102937799945977882362075076315033433389206687409958683640866006087804848608558737475183237764502045804776298295940579927900808200236767868921427519429349111249465930242433846378411758033374534524133230558311181125339735766273021582989159547831082933410133475000275470218072336986279078528853915607329961397266554497033069114600505628938686860457262231342716491793024156738641303671318786448928203243482075583809044959571607111112994651287862684533665495833639585749771903397712635616750013933123543185274575465551916729446637500566864163530454930022047811512289559956586764659990165074561590330511876089390974843061496721904426134080784188330607715590520751356011359666311742812361804574790578266159104412603733445547720502382801144122441285057818273709575968197572972468473364515399833168749936221528811250531175094520125543532840757469408299545370487586601201779133030883577101829249950550806792886488238247468543530398569337033885081341100616397992119442193947586844702541894834140109152436216395550482257051387362632290337046861598179848094020593990912471928843540205150818540334052273540390743889657298923156078237444889242030585202255852816679337297054618182572421627291242065106066724479310097626103235370592892135791044299242470221740951682263576783091277003861411377828795097975618391634197053396324735742034273017544206552590881381681755149355572612303113375976725342479114438376358222221303601352470932477428267307955815367007890313937539815479263418107286967686092811097521844844821180026580372139412267932369552386161218389916477326261390607423806909355813459538086476062369964986566528862065776906524109921366655605915619932921062262101264495546964156925865703878686190948471004039779038335353841723527719772518978460548205652572806938915194261639564852841744709875870705990491062589174548392051274458656978056243847228414913473094266102713539398881840990904602180399066577011315473515567459149932672712856569747062153405866601389947877573226434697548909337756365597551812443986806371015123216260833203714017618201328192940957682060531304884900120166585854321419459590762250970055624815918595055965284673873584181114419839963146960032377075900199875331110019909143019199912383161352330208489488324491871276072321738760799324937314669132938107932172208369063102387208263773082177196102564942707605116201358715968913754463442293835631085373823137528501886676325782855087374712485500201609472701316760796262875306966084692812488323989977553769966119428811605016391739883276068999946001609553386993060945484684434757699278889128384660809526300065425662862964692174982197983255999022410090048960877701359097141867870095081648236297190270223778713366855544922337456017779731408169219647661495283274970644691856058457077570997736864789302625636012593315197803887023392251300482621403166283270267990232469915866250552615125684496526415968702027971353780461520769113673349656193341689197006496201825030961290812882980452666766563097336666036570705852395601746612860469106794679869673350338055776295990147884422165895289707759990147540328540828395684188229006209258207013483546146531543468284406940037867145204876367803013235135656003098548827378335906002414925549553407035701921509916513898248409510046371968373970654759396663543076061225556899686629310001516466544697072317919161255336044054849369584043290611676191365045309573033322093823683854084401111999727545700814513533663953834537877971439695991076298952960194147801839591550786678475565687020768571356553448856812677267940521267034246673885957260333471708675109740342890810196026087077561894318353481762648182517779618845977147652477702548868646486952521613686525653032938947619710741205410633038957951577920972308193341459465168546579431730505211008504013574005943149694371891764415768410616213116752538441797761047745910510009000959591669052214384389084767405018741902004303573322336160866965035943701872371731813065198053465860006725561290819645052139535866940961257758724996606254992423177362974686854417811040704600600754358868811321153007316102750231344164899893700404781615482901627154862461970544658228451283305105969995683373900832131585568479437057784761949335667384354778789912045403300655805617462712055007809599354533511643007197815119561564191296286076126187233564354930455390673942501610730095925834567123476479997212932457118697757706618796893366485340380572332830537520741668390992261597115756232147303893847416222954274304197517223018193189649378201371508815918555115327954164712290965278709608740744746740308931596018206344702131340722555160833767027692310566053742970930531436393884719686111543072587309443018124462517678321585035735092099682071359065455473075135381073439399349999292516744520772370053473649249843239220822967792026100924723857595721154176780486164549587458763661191810787713417122378983264170941494128177828814216222587619433684978303654368285049301275409827020478818372366474057297439695405215633429194068215203641564890774862365473362753247592284766377023612874948574171203519729221600183336405419598541663230806372581425406423280048207180534693276212446710673807389660392715198654289318242264255573038808598787592660957600714174264907867546511496924903545704552319855569403458502754444557507886718083358480900910170496017716286183976482209139358430680983330789803168625697201532888268978086871221906915318123860484392931574377959018417026080528475963292837767236931745065075194121089931429226822366906553028408467771880375370229783800797861846131630965654727080875553590559039272879790868232414177916120594256823019658306012391714538817981269757385324989915513446163475458770823556872142727529058909584717375737967231825831213992597689268974165604783456374149931728199872358441809999449739746672433047813567936223748051935269748790680576449392287386029449993991756059660990429203401541690859300278799886285364644806289762981713712093522988081084013537085704406962934370636541677624316102940660147610250440989462884203339834095911388019137653295499020238768522929169326721644738032762805459451457550033546453490267633652877799584673249291321582086235477784678209776700312069638545833094358801187702452003054259656935790667874410002964045688059886214267367401866610939184026545396330815994434385156298517241761027891567049600108436492019691005007760548484203034123744084280494190985165959490979949099476059461523058012039305586961806486058817683885547399472743825649203430458710828270781583994617670210930407099705835567410139788633354669032866958524961233757209221744146746322393302086474074081214099782196092714187432117640049779117991389540728353492550566529302984309544769921446362894908749985953455559558974786524844884430527831557346722135335953003209004453154580809450737290824016318979308560395711020849130580935502975790217672892419331799983101344029625271613972380088397754008893954811972351834206885122248809130930365214401826581676301518967590998265864465964642367664747951000425027031446343805418264590333448951313205150140362927023045587196756105488226383549986421651618354637982325944058246683486487904540535775634093907201327434903018793570634216038129685445129039197580132293038266864910715373453658015055571069670493475826315001764322459817050440886793441365387481961734039154542591554226743201986764933974180983752252796344101255563857405144797194177331722450638735346640521700960800787122141070957641372997274064146940820626576322804604365753653634704169521144638756555063256894299405665133770751082829838164594816991833738495189888378592976072301635573384316666207432259802274270153688417740710407053226417516059715425411304234064053550376396009939556051326196508608530443513460426155773196942330867658361605423592204885832707267540295638740778486821858872717910447767474815889134796728685052300742054144522815132331503219186281948689237524423381730371673997502309247801912768165942930439796022244184361784937041369350496466355988789627229684570105787754694274524700783631629457838295843404502091303294776717425054001590606287962542074905028661267421536171386509558582109778605023581251935734156100745562542653579012397026792585673266020981889860436063049857801754505336014149831103705976676400249082387242382373160800563777786966462580451719002992400413396104381088360998438963732707771916942051471856583203796198876661786198635799658170123822498895532644226924379919882697068385113390618001954359365707811430927160632934151612052715370661791171598967921007729697829344355567283890214291378364712129309605615062337789678083770823175573519196146064234005826333322266802413607513704897733006859371285562223225156567321846879744762264147568391278668042933900311752161946665671261557874436042554143379433647349263693899469827323441407940538122632045597506347331126008726279883819058143968067728369831817311832562239642324577051866546623910420789654933779311126137873311587244834445117826130284008530114962950242901979754744737290530620440841410784235296335757131402032710250230306271344703164093042822348140578554380973346257715937763087131678397098248283085193770495682740609933008064682488072536853083942367308860008987771563176171375285528100408066683598924644927214573877273219086420385934736856731720834262583912422704895317439744198410356510897112904601422860718032490074538770385744248408116100484343748725133030937568192758107417728526957326621366207846589173642823964997584386037765453397679816269474271474770759189901124518809589181823023084598579076282618721012698118502269390941595405302564365345941758644967821545148171338271474638194009886377984707778688406520577106909621621270202782242492662263334647151402596816003903504171679644533985561398396127217447606958015926454631703564741833911536389800748679703440057724348334651079017884181646099085162953942101021638229663051808628011639660537707333533707933645769021569935392980296534736434638218342576789445156118279788854658635940017661763372742590264472106521827263703392665582622670698709480658617846550674689404583671250758597435040074303627932935101353248084450172506747918688129902449210457422457813352062218900980344362136582390275180907745730284060064252906378114211144347140588517055252065467084038134393404822694774904957158042327740230985091050703670282686344430511520995315753783831518102648468550145153094427542727602706083175368324460955875955726655598242010454787488206947176118638574766806957935540281887094754596388965366889593188936376001423113801159047403434257660376729856625304328252076008846411409800610418610772936832960546020866718436409726647758657226886430016180279639828080383657350850313046463248310741042934355023003095187992646522059851397917307427374815740301967716139680864878086937687107540688233472275651291210327142913262350130345822879398046626810324643906330269039171942487239812181305969781950215117200468258332019813288628530442864561996592793345781447564587985272140495690237100445199014311340738092848148478684800343327713777392472960740099867539591048180185083514650280608985969583842115801232374566856180589068199172022166577106914051522785242897401866869323453584461232920995362790176249110549101200319982598691509636544526984094496596431004509416675147384400486156179410445702724446305256464230579351450810928041723974674338046658923112323298070003870573863518769091759545570678036844728229371910164922070278495335447207765371556550174389851753742725695340645339948558149442788853324495856552342080518997334868652995979526821495593349194084115619790070471741482994049512880342237196641155651012717108818490011046591838191909098027398870689564124124466102042223121681284674589331748251272763968642410029947376155249519673193930214626195374101574412528214519028815974884690242074920950797644890873225476816407348891811265935824633328380824855286601411011521537513468678399170179816189944018862275469866436189907979703741661906551320316158252868578734693325429690141610434927231949627285031489930623129157920313671616238881361622171603830451255092827230650875229527592241284715299540160603095053462038753812932192418411543573863125876043616135298161244162907270462265394127434105410525399120675202571486759544174741501465116131386513663082387399276820667736636309940976184774599414800723210012669349923384723191616068032023133716947738624577871889743200759871687276602506957231556125032201553389978239925627620268164657276374023757648194434793296704584812571611311220686634354438807055607015191192487318940642473648132862927549106931932140682601388121246624154940108199478619368642792850271611328815949158815569300763790428520780249984090016344637030842190425170369957088152909547896854880766760505550434590573849045926372593599820520891265342633380260751869916537492303941363947395060653869132568764363623953911991749481480876584660312699576570493396624991269312659561294389191672541628639485237168217784821611305230812503573057102595680735462242995481207767538664961728645965845941091177690952396073484936743161707095189991656221549308228874193687786071143374857510069479018098690812007976783743060133726804282035342850864955226693931773964004799846629968917223403455345284074194921303878706376119927810978454983758660031081355699696455882650609241696538548353526080644594129555892110450088805967120106425058559785048413394031964886849670643022795054089895588632298448926932202765175445567527625945117973066665193071567900153644432887687872652670349772437133211094147670872371251352594123882131003252662601084017902036007303788467978607684368379693723394589065024071896560762680562255698602020961127001701394040762247712627189186796552670778301314281805471373453051234384186138665686266153007308920621186575264203903044148560915791869337789170036405044880492344200763467034733806615650168647188050055111279156087780980651316885428750136370923315546928683863877281591232853504475217927498199066909343588297321697369268881229546169054437893022099944425407220245649614388092137537404961277344009026989465230252098282341714943293362741396827482386829088128613278442106153916171991079668063235126135460801666315593150425339646162804504868976902456096631629606013518010027822500599049115990605019907562949931826244930307969850953380297210855257167666470896056047207176459617297373953759271488915835570801933610960205941249946805321015351077829599602673334991593011604941220673798329729485886862452522326765046288865417763599605616438703544350926011912207300695708450478232255884124033656902904739552678000643472101014797846143428930245729206776135127242529866362313401892692770281902874329362756782534259087641889634151054103326450522819225026412048317521030578153577556896078622440279349747935693668572344013027044491572148926452373516254207065568700351696668429894338111000379588400618836516546149934768504420987112540853957961986986071672595691914124344027517418422185112117703431085477729533734654618692224345960998511663106502758857724257996118606169164707658050650607505186132782924939291071254507551949683659774145440034872416460645872043910899284486891083413197111944371589788045593564849326920798040536232477003855444878345496770017313444709259341465988190123400046770539207399508141851352317321545688764426931327862229326756198954202539877536605725363133243466734504958646365963467094638998406565590352888220868754651937896152814081165630194491691392024486895506126478662609811784228313347370754475979479533032116113046175128461874818204762447541920990212488566876229386738611186841894988495525818171730894929843387075691839936578056476951977517902647292806976138223822952808417252058287912779383522261563075555145250437252544827870398787302971694309121160752032832359875755752994462880846132131243914937762207430969475497068155842632709517964496375313493944277589463847698200126552112701042477137091700560947446349974309255907787832737523557681221760428508417611909005282904266310246590874288586151843355436561644528135844375874371123118314747738921287827407731897868844213589067216283163844536737412498465879104968530101932522763601059092068526565912771446864070850643080038771224760806565688499587156364468986715814005904597527534618525298865192707247056954469924260249509196466143857395317106129731317414344340696863809809610095001618358230419192834876154955409515066570382055985033336919010208332456699216322173896080457196270038412743490064019338827164735762933686415087152697845590683925042427453472114196466625474301032211650495823745231240174120089694051435137187120453812832910111719833839729394783512664587216425988595372824741467281196914738194973076038102327560590183444798447945356039950019519847404303754634618550720151909873388586677764916137120392660905584648648556697212868227273393238934371153797423164387980360273953565500041234943160523893477245072507397490136096454937491829565342860925600249427581793508778004486093918263397400133866920504280078483824150242962296767844895099503395398848727751730063709251198418476862863191770869005213682372178161740892808089845256756601508365192670616708466937552220524681602865114649902459430922653139224065616959813584270145012796294967238202762276216459223946367597477277556853979663501928857572181991889306168101151451297294127401648486664010543135960007669995331419414213271528910557909825326226104306374127559993325912646528353366244220536746119941742807807360400525570193692640859056404358835312972327529538272918981100933348739230646823443614848390208795483179244924457536917338347021684619673528481080487800597655724718531466799440408690741016743610141952718006183163696185995155325838831626207767439741586447125271064529997097737317068038402785121333943305116738125903763202084743330047810853958415596268227630637993889132936894523724310183253937046091901865834362849714320559170757936498704488469137974544945451185824827325203296078132583803678271615993214463000153109324446723761125902938977157132109444950159590338587652872818880945342816110865940315243455305117127820660821979369878421728100683810079500115349881503249052029665265076482389875543754291383896122368843754210130547576763235329738114598212353425984738118831593789199102898876771912244366474631320773729469198371814799261308376906191511449621202998506582583408829332001485414332375705071841852006952211157800706085535677267023584412864292343269032559932996043344774676695536856004485271565689342547388144889074335147268619159572292138414274221345923548485758095478753563722576587924612158505932784844008334391157807292088095518294041060603819056323770866031612335522301935205578073967258536132306291519706463081357190872197958763209860194491311338116902209439277648662916016215294590644420237091051011788347894547199334629666142741941302141547371899286308827062704570082466989257057703584517491499531404381942704787676229740885226287164377650351081289977948099973854900933274514028531404070061242995093507809950875268351957533152474601349489920026926524465081709542402969147335930641980511990326664715116047128139178441216175093457992461267143878707821898531376871109261033296221998143752854917680317009279142710043495569767332745431121149975755039101339212351610245645521978702320975348335343982187270455521973203037766554898457167925620818071849886724640445760518866809567067889281572384840422391648000137155563366032630519164691874401279626478585971273171697711400432226483277007198908157796492653357227995786292910056562902622664993959920040825352862722031970957953966428449131707620828037302154904342977634312615526544220340190531765630189219291074458575736702026736143742519538877893044979452485878767935980139404356171266940688247528815103339881855698695170472609810734778685415029006076051413190646436901137392504590683994031727142090533272803756359026287933771867939516073466286083353551689816548655379422680822864602066475152073779182175609861801064865377085371121471128046906161949404493051626229990613655696672882814288681276092219137101653865088164501541432510828766108385905129364417356989476456768576221167180443102583691924905598524804325064705992555719234829830271317377901108024605180416166560727395431102603582948163129746899207953853776022959580993517033807966494654048310114766501116055325780101338193678385759108513463544206950226895567808836939951754080590476663766056746352209038244402279033613724810475591631191089430084607609764252300767711352397724243620290942423118110749566280233697287048929979693734517737409622030004738694166748336351017317233683809991484373145014877187483614939600934641054184163833926899143958170554998854430351003279554922649922524080881884477002353690577550300524636542969684189358994358867238966824416966926944796066815521190726986468795386497666988868408071167479547401648029387921157976198641292476579570464772462453836955256755671059993311853312494894862670561065931835843284098799536387508820133782446762442775103879075601380499578614700987860029656254746014047461554984572573871567699016307609312177962933213308098102063262277781893975326574247827299524588165090444333031556291654666122436725133880233678349252394346171447952923607676577540738660363800385621383405528477822761150272520018095998059437534227348315031869054588821433364236436121381848114557545731338212049150203217607040577657454402204935848823136792400507136459208387023483793463205868824799188292896169768558539013147175527200347123168000682688242051106783514476276852882889349475346962996556769106425510307824783582424860183741969507796128986981913436357140558976485745797041989835295414828274299371477098062169245647587100334665577436709943731019708812020697545056151837916016875464863218436343790227574958827927720990860611487754138589784404972484924066530811088222757768196706305063461629931909350607059803099577099753286567992267229572400262061661357876183126736995069830861567855109105323140507757786418068298618943932666989676752519095721759105999698694182804796812371622923907066720566530635841191361287323786300134910640721212430405560603709991342684312317341851942603714048228683634892699219919887802986788469389722180198596558330957514973169754756640378768482537309700094716490223879740786746997882589220252240756220825181126523610402955809267303029477934396360720324067650068002923105385086073275874179984350870282235805165354695011468422715646055275649498627473726213023522891299166628427823347044803519827246136533870639468604880688334650550268300894571322114952785131585203539182529150689079649562618834352793598688036801998225612029434749358933238683462092115481160160825784390849255614945496781541631674904014477621608354390498889406969931828224791934166779418921696708648980049847642006790202546481680657916501840235914325282341219763402667084911449855898018307602392809376755997471153661778695686020061981354186235798001407324438282033229451818046921322912640527087047424297210964707001263336434521871383812499908091084593348065432417264259802461172288473518438994661296370825765746112740976845198575460107181008845135323563922936418911078319146954318639848869847021189781889074892805823232967416271475341108964926180421474905802142164935474807179867897710652661264479796003442898437868011389285583197349695421830546217314586266426929088311603858109417791755091119785177876411618837817460383870516091493821263281948724596950787026064112834165999426944971194130874664458037957760105683548561424978076388309819653817994836978722056448804310316195357379661027538156255872330762812934816152340772489525208603418307650681051810165088866462967918157003646449225435869095650233106743791225389103379207985024356917313110345220962634618506097761114624447944225518305192371443470086786645245605409409701110411713466557640698227958796299137324052733801538012921237218895537981989655423392835763964664978240992192217925566021585358850749427765920600719017166223234765051179801829225482501631044347227873535421619988928082973069869248856948396889271000618601436154927376683223730806669155898826962617537024239988945122916552514439275386237037816708448402009388323293753132999772917258722488420822638978559452129102429456804049067822479136655541131615485370038040883631561326263729593293587817929229020824246683382969765805502850226786211334990882034439078916017553378814128718141681977917294835294499869430680519757531043252149122885555436099870546109206213415926230988541756909789805281257504916967061317752363145410896644080283553988502592576594697252883852697853358934288157441366397799076302609317287403720223060433975807265025241426569395378975978869871473109165846217376257484512036661846522331009265178513930320979047976153389907143454503845984191918004430297847761843927693105793104704925460283172446159491422737479462829807020765340686400687788644668068065315193500043735370079404630812702855149038403622870275566651904623628251596550146742335173251525250693274312609142979220163098609035501320843143321202458459371762430080776649038942225396997778439077677223382773148721105509426266591059358376340279338649457461237527109874720331178682111507762598160576754527691632033218970243044122109228952107123138945414852406676475390941179163162546532872466855185708633379090062512819382390009569392704158653393748859726051228950076526720875141659981623258301377235935288036833566569468648574546735523982046577394331824420145503739327369105651091156700061081208652550406654832752011096019913801801784071701152428786066610736447933997968830822936306358074037803602653478776489799979900297465238687375126908616783655465741757630822135213413558968309001138414343696901365777225747654914006092722045930078372185008067849337741141334737451440442548977075784975877257441460409599187356212288551144289721934573990013185042209932014801297389397832859170203004305909809184240268312314097160741436601991401767464137569164301432421350070528941515056137648196410484311672539012867133225888664277835416166311573389879203227901253416638835583585538403988649492337591696834768452827102189501493585285503802447533585878444549509936299869724145963002184867048439175119958720955351743404067737342243952479206977275961842832848225439496818276043490116091762010979710529805306169701513250729537501584784030182330549243915749579226717343616773788054989836019026322364726840411728599204475830297309295740343170508339760116208393811039358858766785767430690541357083496891120526394359945613833425471461040946415687907960318993472728951452377536391011721191000949788698278084129001563706151201026201072558149402838150155964531092509320521072547884397829246909849005106820616105065964024596225505725304114146019554052496700475858037568547897135553692283780477927465216004622562942052698724965662922407831479108742126894972033688743390833572656393781109865371390458026703967077930014255801981763457013403862891284834566919988768081654885146312622229911942867284603330669921987331999127384845416302669885326787484392426424071120346472293049878655965133243334892440983503164695658416676068782348645813222936861081646565261059075267716327027832062971167313963577299677353575346839965913846510954975355416507659163165995666388690024246107945286081891608595848354633391369785174788177176531594787096812175423853888246828458082977490897493366031918693309120463984132800003762754086732349406649923707083489480500391622531950627161693291085596401966871801649106347254557693694953502937027661305722154083713829180124462453739601849528729071571948188946970210037202390960164660656834501369267774346066830806087280281166750355563486252397847231456810432243373733133833895549199275637278810486871194529873954882684193985825664761493346227447261268721104426321781173133312887404359070104110745943320335701300012785186869745871225186531803766655712179084371024787187057650463340356743593574681263266419023385884310589319274070791497499728827707863552341829264701977741629053406034340771775385567199526837717946409187199308217656405038081525556532265726605926497829246944680321902473422414770186588363173450747512329029992624672643119712177456500867587812229330923112931057536580109719059428530206028651226990334421012635248043742508089836699134190353330126850062105524274099935168933817978972291999245782505376575502038608164958968643560522480554137329407676343613434196721565500278492973279600875816715170399325479866770106587718473993732169670478931552733806129675084714826935402586011885695237817146622076775246544894063559128461538755290566238826502854313135754158468636386655645629744542577607013628294929333218029004851956998020646777581022145199578812264558854997753821989432025245245697204935014496376341370813162706638173318204688886229898650290546151438090950918093528311560792078682635424075467595815259377241078838334309492204697415122600876792808738026973088749387487602316130277420629320733544027862089667423595345315498152787493891502707194042105166852937283938374574188463423431531569636468858231614923641374833586530122012480143738123513855824568308791392835611588239042040252360102004016110248940799895024053471552595573261031023381607829415976915794011334057106013145765892926965855950521522359187867244288899680258555908140798784902572179860825448835547529739618013572735475282233915301475440926286721318112562826882564153903858109222723203635519974666002215875722977101010647033650854795793633685018451238285743266457128388664974093867153701686552508290408722327168772420482569154936718480131586679943660084283695891423293000932692352882994528240681707419222209742103841902753528423029282747436806909817525215883738664524324985622602069304900045423175977950039114244030182262754922564347313136507395497235167501628771742064830462068591779352903219843633462812534542951302934759128808068142606170165492550750263097509833091038891028026947998467795300867410075760482567838106932042783687628735856545645983013555905814810767924331745240957393798720951738179626294999122169754679164619066617785233791007047241919355960329093162156110164249138358819074597283447925904145920381779117104250110547004973957581502979135310008312119486096101133094330223077397467049060023357232563707340463768915199117661827190166121859099456804689622576135402719654627797833707274170534773440772847672374666861494015197195120737274524606316956291227278848034697698598775251939443838918844669383649219028918889322415261377294289733644712426108568143766861113419943707713655163129856123960583117756851055951820517710378377510147070282562801283556839388772589589326049361939556606760387340624111947466226522762275341437711439506659774589051621184650338567506213550586744510403827291368864520302313140951739315310927895896702735241588090312803067306698267130610821334867080697988368377213477020419966049405060575365545438277536196157912640650496184521720433511346430004251773615017425829134608139800717059993512925377065458549397909602125941548851645029552554319875015737460546203965987804096438947248993569748934847461424498817945701644779289350275962123442872564814248884496422669753580975258309307984047789370256841887060979187782416278124070382685063703832355602711531491547341451673803977111660115239632229470867405923237743828036286700461748042038327651769942164415483120750781049564157825796569250654617393612552367680626151615296472967130124068026416239303829609343877001695162777701498990399057924214888204802230625467763687455445562685646780779449940313768103623166559070860344623187990856956738684368447995100115754432804741522897397405404518261064396599941659578937961500345743614325320115732597564047797112297945950882635311447503649041983169804363304333302281693994940697033907774858503540491542521595104972748647563083342927222558461672315891920047550899132603903072510296708133653742280822542842737725417602177555720096664078895533231068244232237489396587394601887451448984372668201921651992461301158323915496261242759220410555273371078536971202592945951028961332585283160032402127944057837308146645642316883571862534581312882490509902702910029154167875737246515509369539257750491756351005308866761356165750019592332342660385725094117312693051123920971810190706811628657286470106207494967705437180002284448391025887858461274984563529439041625616231065123934661026964254826448248490868563217337109942211329210424837394401002863905407945395561299445808417774329392186278954869914874622678475940365082085618581367307655192464534679889533490957475476200780161051398322759287873415188238462530223562278353112697597642054715412627056188095729137672620223945221243391123670567654120681593835898874210582361892589513197888960529056778563226403484256991681165980040599070049372750794016456807868590770773002943511883899799652588027528455351427559175049711887080482150697638949341048306663173734629896993550998859497968913784040353378458488186019752240815899645006307934494514008623854673755214623511150725041517356610005084462588625233583733959430397897556992453020219652309556831464145739048599179977961975784974260030624690697635508740215521239391125211965979880408384565189809110590799550837033657882567242018242519999606160019512939123350970173451197100909736284454898824569972650207335676212144326711398180785215182280707987969651083108848764755492228122120005389565535742545938806682094580853701733370999776695028741579258592487903703384099107925528360897843130386300002734301601042241324013847087054438399206755003365022635321677939408948106084078985318571093867428761380856684648256411065741713011291386557025107705624972119505286508149139695883452586456517906003412596302780375028407349782720175648411581842905197968409011814544855816761297465822247152023893598686432376758364305431184031871188621914231425862302647727654859246729109599114065677418863287174682707908047900886833732267577457012929144102553293700584590700074382576524686594585375946505130235088520769425546909598972778594322978673067308055226475574582545017038294794058900232612950381530647257028487654964680396909032408833435235694790162285564908690707047649467359045184335454562209917228071329964107365657717968585770940636178850175978726426471730756675158858827843742621082610162206022070302374894738451286053179698612412904018744260950327802996939271006509164476898581791376146912754367079246432843342717421970693656091401422322391341863313983439369765485011126686250442435040771169219579525815329468928187853549657925433163593025401361240268771619821873616351249938653219036374765456909254970676747763243958734970390196803791571252914647591653115841800483523131184757547329457682315555563401365563116448966873619742455869809031214366311695887692837245120994841852965610600402573110927323043448349051366322803299199493839081757293163866195337495275326621955872868751509699533321107178339161122403556952333714114819259772711976928354971637724786683584514254578078018218903764363446387450684860885495314101429931503854971145136289679275926280214146213224280607478196567616350932415080865441379152826822895961156270066025759844885914531667504493600222985994080521419943489363728803870125581325164580804233578641027714549815409662852198635144883392767391340949714340533151550542307114889375935959325598180253690535745231050151111627657004940193943878692095474535080816087040277917868460970934164604555855405359128799177699125900478663705887418814502258820949823805624469252268107762085348712046639069738438496560171946640218439344681592824105864576025372504686060813203387659156993273947219098469169512633892103791463462036618223142230635386647728931946471669963901668938449024870185367376736363494665195561145255354651509037785471513789530676649353045108613540922369974376568518010905357191769160295508895746236816281566562414360526898104108844763856171539193207668602815378069446477252274264069225610726414530788102345913850705267707301916549278461984679253253658970991402561950361774353397612679876366271461949597980644969994213604330737377781670751781893745199185690652095875278681665705945616622620021301781056601872697909135976532506142123329727969933989958782122252980653806206491518398971546293126793061442393477162995763671627339951669987697987535289033198013733020825046490284600213528810531216910346311164565248051329420094298672258472829852000724120358871539759892927796283907409169246802711189472499060160812376473633244071209609983310870474445435416721202248274803789343255846416091052970780175945117540319401959743078786885349977619409628784157512482421756445221547529826718741743386219655978778480312041030915453145478242567540577441394307165772292380809877619113348088814397881273578439131235494301235825372874905880593175865255884112155939897242090973973294057541654138896368952523495861015348167915535564479445331748187601514122898348983230922253131943048072130527051958712999760911521654028730342108868445925346761557211942885185165216118082215126778700014434757780389985545864865448901863348810745218574991188645421866375429839075306612951076649550792517923598746340665488329311921111865034337382953059305821609996460772892860498847765016283653748691070004931878037658959374681066439796735668615446857786677648077987293638430137207614601024539654824039056130520982258626803117758996943634522124900136685927502505465458029334280349963864587612483487862249933589799539479807783520578413210001128422033817983594811524837358597880066499571171085741741259780732464045060039296595476459222446844608546773732347816057312900058669857283282321206319781747507632126470215408931282455340673963131049807623778010979826473264905650048408970257968945995614779196833073527980751815615199773670132982824941812426966770664413853869229901206437692348706891795569641798074407808396745391233798827777184121103288176601524277588745254699154303362991294946222978397026039418063070630507646118562279827347982198283100519744481481563654432288042070178778816741549662130717876438032118325297986364066685391989750775155497112952172217977841905317616505501810014739326800472224093730176493881606286921736228089719704605463868683954912980574946754146983346483073099347501750134294313137450757434277303372952062146426769847999494037744267944320021600240646029042042924803801218787071755931312017207151410378675289451579895472245602894098234770988469588772406778447583482561281715560303618631529879982375084778143382534117412244678040136447274505943916427451756260454484364423938789240263527085292701971702139585233070373255286747704851245233338507303285098051659367581352893674199789311601649867583556281030726714461867860115290537351590991262352532849214879350978259402279220735291743471830684350646225295016707662538526955574308484313481605120436489486675517268581259129926262321525408445542732301464964871930887165143551819881262870439358421780471544278244658597146714398904320061967746541490836014506785625499164931197344841284363526006558680382774715190262010603203985148110149998695710056626490067258599887050559555114938402247220555845109349152768258918902377621127039754819266478707138118418840852370162776092688419291782851811698641395413957729971110497097973479765580331922871704397572266550785210235977810867693846108296413243392710217210993482137949928283638548534809449484781279900018278985770234785165222667186121654013226677247890522729648921248797911789732445699073566111041801726097335368083668985301236984168927762300609163530990836073424060274014234743096946739435589874318328122251683564972336483410905751356475198535704303379498335434575320654465043986337115142114404020792372606001050704310382751394436709926399975635893187396920295672762780248301222986079549177570198104913389529713295146239742844642472795694690615470564302989433549072912015778525188804948578519462715198953632863864236578622297845489240497516790209858392476547419559073975208248670664914576135707950243808139608079606851170780127884691761379496785839366164639578178050250401796394649309873065039108909472175384778972277358548554814353241188525121995647919054695808676404876484984051593644910733117492480482641154169486463261062453043776744824911628326366821858171737201625123819787276493722066515677537070631889791975588639829975073754225861541792208422738585900617663988005778957184513418071815894165664757866361721024314111099848921056346104304325736854630773498676452456063939905498690153383617254518345604135406938793798450619714987815431135170484725056736383412596989587927907966804070350456053764325283970382878712495537160738811297362358358848879603132286558063518905518055331569871716974676891890954769790121271795804403496482572169205622711708305076462179006996766741611692946741666153502179952316954821393706907495846150604852912051303900420793349963398883015336837649274032790572673420291744883429174882674016877787733221776571112727181582578947745589844851921386534917846419663796007639186364642704447793699212366906205695574563519653442263442328590892325069089664231650797074236727395392317219266592366349367244508979678468665131330723844216041925252789656668571472978055775190118282526950294960461003568508147762949272804004693264920483497220105680460743399625776105538220338015325058332148291162399671667505124175295002690112112547523788608512136950324442000313599474715929849047587277035044593012475841356719172353323960388796389050897331167239821288434404470402711200525408529227307498475761518217695141407829411144488372022021279943964663160703665822746084761126987025833309725606749630133751176100425702196468270179950834249725958091618847105917723065287919693962571216895377305337568776184119537237310344754957020603457897768189655325695007564220451405483108738451927113125169719145047755428220537202280910368873321458025125655698199022606394504094698153553432723505097646129150234422524131808886149353865422746838240626028544432249580504744210277934389708211334326025082029770106904914828033051935042141304750264720462002483083160964408552477669755856384109920272463626186014812264923160412201885986772375828969444721320929617136959175276150896443161427952132213853322385146859761312946484088902339958028981440589040297168930667830230532027150461686681857770099209455641687986465261575559760112589618359579999572957559111386660986128983205546274890253992405661413104049075967536443179752327469829544025074518255248622433984005884849460812367255735479106926574595823593507596459060864630006454456349837593363401522300202070687788349979817888325831097670611658624727655725767927735119245935167878410677532731104830048529568343608506178251246571725190048739063074142862096608226267107086807164891259531396032034404013584140056610449625398196350902023320925533414052305058422519159038457329527166971520854640273254326713676631939680802561648779794902439489065053706485797646296287631361171574386944700576021014601157401457599114993830906422337194402040068578772785176926671384072773318706024554346380409375702490080812159055308644037877811874923321876221453230965613228216907091675141536695267204773567920066836633385533725362188971553480804650888660846071609450664730318655218269639577135043105086148613555195560975095118935741345169897950117626872342688115383876346010407522488714100092817185637240162582480469176579899844791464816859228868931536105917905781082015107422861568624259665856183447500849982888653282921592040396776727523073518574697556234357827847203611303110586676146416167997548055331665582909104937978304597035815289168658370592151375721669933302093674175950909518894325791312023578814027985103338522967551296220586677778391472432008329873525449905566833504924566611394775400120158645031633481706386746379051931418058519998918566827953206692386635274311501870205979969057448325136849850117107210895155256391415808813971541346589306825283001612372063053160476706555140133160298394778221415601365676116766882330025542234206244016209120363440635339232208807343511613963776823214572637229689814704163588324756985063612484659087407893690731970947697004619491350794020368231807591255459146415275531448564290100636617396182661998835604782677862821787959717969604534101698419427122001100339118295930733102672470426779826195373636725332607382220073906203873642245715835866814822531490922973645674857489122846061929840808371249254165491861070877030158019097747062907319375626068492809211796168689783431541653947584183924447789480476299334082972854924792992828842550081068460160980881606460761692570532573153341219545441031320233718576814904460968687769146622297505916422061843788183072474968405530093675745460824314493041198578637540833440205976168089767373330068863531958022985844866728571103409011161989050579287894692625303541682666728298676258205613721656674490489498190970288881513700890444777181661707809085102930826878912558209945239802136688481074788720343060515481024770410884081839891276137064205146769716407962755585839106643145369058044536717199551182945064379298186402072027193934430570418306999776579267284797199396112329302980377324496303278683530888429984334757559505002054084651545889317603339974510145934079778592396218557263182757347504379626302480253282033413944449289527901731773005580441208316842715009939057697023947226147809826393328136366616827924719146007462355973467254767796890524959889561123854870348054748731848389316363587520227844211937273428540222286587129254120418130461315301576214234962619290277534720426574686678876723056524588411861379203190019643255037530676447443273410113180097166470877357696392813724123888970852472104198507003434054383709567928790020049221672617988570580509849497129469989564117410821243549506210658963193071633477844301014353688081189159281262067124936968338264593594728628360450006675231585095456111917642363910976073271810479463083979515627974965239300997840671058803229821623223395288268181415768174208285344581186007659750713292946407746617829614883916413860117222356053309077361517681212581910576273023380746102479359500748190205351951073056327800895459226296833398306435005824248846278730756731616607894153571661288808193953536024164050729167273885234404228558499534542659821361555947252648687345977674873947094188990803424969144697440950452637091721463815332658649491104289646146207354268910919470734341524837788523512136509160780620882821074673593976412625839667042196113847015816309096385035543994921431658649765494206264756048570238232472465901006797531137097990701336413694561480724352706693287518327985631776097906430134418686105607182567942862513646775836684616567213005428176239140241447902601359359273379907250563001550974681306270049799069247682410869137230019020451795770769022486159352492600509616315165106484692990864450749390419499132664557304555405084402259523243894500664427023931757003870113169022812360720142721836357613806343587916760222369387700891056933668994025262023379662130878126564763459667304912026809752124165121024378678614891845803074882987359193013692165551973146235563059451192046976201875547413465943177742385125696172197641144154224527824640784865597411943241139746313196388268837489234166565322296642310065922846918465926950847607554278234025287950095965782793468736369589078290878790541135253264282405439019824232126239123259445587780500338621473638467775162962064430383471518252162127683184667407654847804530597458533211444316584486476150403306322096500981595078377492627382525172222850821010444523132473451973662965113532768085423920975483145404638178673142924554548174128457195148958676790607792455994896434219703342334098308625886750551530302207830196554287947914377267272948325005239551087100899508529966013421814257953835683987716422548644170838695537285065647428878362104083407083587544906798214133753440771698861994123148238483918076742502207823201316870177102818838916090355926597111999410121511023238578826534619686619270465722981624477816610016131476170254750517999480369010523422301757025960946846336654774166077195382600958655786599211281490098279230822306409962990018840235194846038401063673247123673990365646209176340672435156804986262941233682364567773690979761550244427015350810023364342735701751349287924922108346168318607528392035468131872069585015802871297718024628031201802510473692747015073832315753437304407759655598761464427050223596733816851413758960138812551715368110573016762953633265479682367841251884429023502949443296550584564976233411988418229111458220666336810693082103258047942266538447975981237536924289246705944852799118745780573762744285373207441066767310849457355275529615594773509706891767182588304240632375834829536128604871720007653809506237860172878776403773590940658745001766894579140855169927384383154404829024120262140119915632525661946899683922168178379400834928147480328988799401885587975503874514472204503469591561881269942674079346564686739560658163113783237825533093278508946182538039779583817131181274514585230931164076948242750753940931371511823790235858410671469387055860453602752793769685718595789593401839308558672364470648816050742006938399516429109097469196521478313419068829500832675647100422256924211133793479682395881375842190539560832777005529828706160510536221147455416896802122625650462802059805296163826075948649753311461999200937814234000471422314220722166992482074439370369989695338948151937566781009278737267005738591947290674526916878092250562772935907179846004383207755499059793191597864507019110480703621623296590215763968394609612019112146855907270170082452691557079878791077764592134532295845104833789043914636647932285997714569655465800025658295602305983995085081691945001921389872778499953117031972139742097212920763738556431968487006682349079552965372009004569905858899915514323226402937354577418068441789859111829826103693618584103440884329419508271700319814810277791144471641701356924099657705897284401285436664354601585452832244661244415257270303978253400809853268692570829241070032449734395484378350023092048437762421311668500688744522590865866161020432838260116285705308023846746312339963755901136777555922702697983317927849123003435770382412009228193979345446898289408570986256609551675937157783346058675519869936282902013224038721651924759971587586216428322288557950125414669550350208548680493254573690176667435283456738040065209742318747549710293681345441503316486062403412273467707763952116920595029944465388955062697847505416247606148978906410052779614371257184482428784139522228262291182782323044352669631754441253428571595884015730036556588583836662531978461742185796912949162409250225954442969096054152446037310018328183196648800479823968509352477962362398810683395782617327321488307675061874442072238138166619839604129348959436774731843181717052306530619504574016573533560805508751436972767752303014206579052325729336336313954310960898827762913484947773282885126885177300465194789562782527695509228721783193794048384728373609099700219480992122345912551124763658841499775928999185986188621703876876016415004996465280634370653409601916160791933553004321970552068190405547026542534580130623747426716340440079117007487814172783168081295495077460109912031107408805433593676972452607381955625739257184835927679189061203622358305890889285209225911720760037129251841219814211274560638363347075773713701842517362019591129913402560696736460085034670942165740256854697525249703059347247643430996933967776570979271263221330942891031422388029237698625825355553409199446884238794177443944158458491124930260696715793803341189513757713640091743498408247428882744779745658306919008305067084791266838747126197638913736250545225552007802541293651990754947564968025725700142834980812086862399873371849688743984746310957703432595632598917850516611291339416973609882782610137521198764959831402503257758301817684882856433669955858887426408654493293864538099771713885035843512170164177712181882622295990421894337101693012286610160975267458337778399735427813295512404612546145523372144710239845118164228906229837377346199715271943106414271457069024057233523672143613772566535216246894531314110685804687653092081113987575021100888664312896258720646534835244374309066549852228149091969795292304558166796488763999470066128068701231252453269354413657708424202929665100682591630356311987213074231254619878637629351647957314562991819908551963983658282993584531639532660545497607670684829060705657797463660098515522038868476355106414156253784144238132651611523687817337433373018703465818327267417515998341473359298161537858693891791876852284407034870157255285468859453264480404113866035571833870973559634515589115068629098625714828986092894983203880585514763763532045481787104361008470744092498307732471169107942304011871736081939879058833193924492562644267100653621849138042690467665973035901963796987878467197762899143228111433822578415904096525581508847198971703231291474956734027029540638478252807808995694768758175773239710942295774024878668759843703023015510358120358552577361538229487746193341616637692363469898960343801465332894028066543037516280913858784031456225839151574557372072119940485601884618244046208267985581549519695467880540155991259629656978968774315439391131765319884613650661215674906197683951261703395425993527280740405538245625933427983420778722437732506168660795921919296987018390111230163504141189421573435361419239664292246574691423484818423581374647065947828661515622889041032244960493950241910597449527846068741505403182882552275482736724792739086147961622931568484473416287275506637886243498201313677829101218847358229845779052232983062666152890685604988627608690443507611960940317124985711192764043941779928697188751529369830328574548474408124744706760474967036672980735715507082286002267627776986136196762756604105159327991967628357158022297208232184375016014764690055826391208054577095875633773395069634534768881361176631871800369786672639212506283974059327736322560029065057305815812644925308166710551649231545215689891877819851853520295486051517356978961927870857274549519741409255641550967305940146528797047950016360926032922177296758864791439989877777177462851850647884373245256358273321815357908620430366622115719363421351552937856931091070866998562296350253101775167594580449942919956263279216271915326159285217359594251882993207470126440209228418594616716548148983707634052567294542841311534111916516008128879751174632155224716321472688826570302629947411874186111294638350418068899434742945510015233996733353254203267138331140688476727571266814546807966035500941444225146952215177137969611264665270380542879641674377482776583512600588642573469547872416933678094973544381566282680179935565280645438833499209886669624769565690693301617764508651840834408049105193729671023333961859850800564359570670426734625041864464266882396287175300719507255924090958674493044598611423342585711243986816596927379499953847159413213059699573236952153995570709854129377499745876673991192340216447242211115669724594331204741728387424451105178584688321867549791091256020121233828033829772596355021288979049187285745051147240019204621595561711039545410221525305507833752199147488843347052204371635358511643748878736034496613248122595298844487632260446827457683361115036952679121288243177437183342016763279948312276691440369707716074678255258775047964723275373195545161741516861284968335706705651083587619040494246784809363407413014593601917932958763806840152785311412217637495016787576391571509821762885988244078452948638094025371063398622776328522003885224724685406487953758683207566671133296587897472396919577771433732636079559745846302441865831054571209878082919452100250011478114927672687097775047456693127846537134834503532649628125573372924165011860268319581952966998318949580004512678108409916903990722439747687896032486909215773820919103666040509881227343659909045257418886467661287365226643938143829616972119776396696279370330850705062012001788041118685223617682565843677709375085702079775374291544543381432564663497701595916661243124678082385934918886982107764686262196068249283444814483064859416268240033075801182259386415327479103966976139217396103803874544520767171399781328824499809756848207295336003826859495358536219271613210399147293902009803313608180934762188340768737644053034765573553751844093555230675131429814756419969975113368811739731322335314517765244599153775592841413763722890131168404133252526115666056602344124195613586500297790928326452701899882781413049204255088831148361796374407656355220096792645375505665724111705394117435536106867902702756877132214861494141205434972052120058038464576321139191509539669365737216008957384243150749879449225681858835783447638227576114264706990218894453681646179403170777213821401513226682121891107359226024855210661444474519376418323462548671672627205105223707305568585467430868212692051989918926985683932573661742304030004377916863985911233252403083250628771239734618071704962458113889414997494781431732313857605075467314781904014265218151536009474205768916815021527446934477713294665786059880891316362803922600124941083485705736340289708452691681742096064494930348035933505751957351980088848719972635479339478607218087747513229130065641614622465104396293760050134762023847331614736164154306995854970051222555292846695475546447654875118713292718108764245673385089139260021130254794002869288005752982923780196015360894394980334392598503511640153592598735106405224257142331433691918857192723619766332775757262967771838500064411349364793553401473251560504026740084934898530169029144137308696724402631097726048888242168885544125464721820179286649212365652604252435145378052559573723595378914659776430403965507642636756206430653068410792175402646230372862174337095920704028272242259672216805303308725118707633583050365340353838885411608331647905658817420220586510347469570019415659330790175440489509466120714747058628512540239662305913054776458779919722249024740102072956501774233751576120176318774692724340290453225801447540502009378263860696377401184155586389194327489337510689425483778963583713226939722738791381889917987639129793932509753335363536531884817165147134040378077584037785364141008374377689505928414694678554603096999212100099163006737455384119268549345481996150942640651101368029712483022433193608272859254994414042369674870047938789299735277833813903658451404221348888859045413336755125071493871385044064961129027062329304687295097077193265904405514508681936401549337709542936097485820249887291576806660723587072207511216371102277242693646909964790233663190174805012429066558155898944454027779803328025953800473835084805670819718310228407762088150552623622957793127287663303533075806062687689091006888133280415357726688170843992181155775205915285295473491360814429041225183869694657937040546079640112835293385262507193303608249531063395872631511734521767000546075672460154000106516471784563238741254027062638983631283687019718296300505243088970291427385316774261096589828381425181761890046912763548230356921202022709644090665928603151612890778481594319571222187042627978407625492151208162520106163206575836229157650899120310116785515709736595276037667856750459838199197910805506533911625331419540445541753288604103962417240805545850747859758807683879820646705778526895398777285647075488818263133062434398825857198095720762576696294592414236561709021809433009278021034650743995024241131485080307067520631379790017889949391163601229373491713709884395772772301683905170171454797589562549345126505863618840135069305768579519583040324196391353707263548353201123461715353080211298150480340389772493829444269824060396978391357367990693388478646078471398899457425759479640979794425400180565279154671980109752128154560777529188130525981983414245080084200321492659728115561054505189867774091224245584963025524692995805178860990854451096510345636001226437215621455121233045083240232913655418318736972833707770329022116815331995926254057728023894277286142126543895890158967409269229829609803879590508949479057599013620656091016491819826152114497407538559962495537434255045186520961958463170568826948652100653344872288980300060272058198712391308998009455722717455097466074828191485620918372637816062300545014481971532462555998142030738445330802488658132335995240579406662146006680741829202690425325635617471878592031370068158497073929157057767581562945708527780768148775766636682628118456609253912671264386241067963129064828858488626630809237415003007822670304003137985564916049274616727136384190998936963233164635909238920762846189678872199928629949596571608883408511048536442401332859665657410176035357070427684197405429528240597863031907192378007757936904138336731702014586104764469913556602857498147763163359664332567897299333434374851187542228107999810075034428975321779937417053182306690449850308209624548768036141067005681164850961201222184079395037388427165372844469276876167485126041931856578082546216372347419862393079942563436009438929481951534738083543414899214859031735170051261240198268663613350153301073023480470666588291850168101816996709296105842582539342391682172577990549036482481823995916955767228317125618878543255715011653691937299084128707727812877220052919981534915982742934592102419790852037164808011552772036993486791058811056655036920289881820090330757245564247602927122833060238066946657122764761689395866392013309929255496604847057637817380328720621134328835962682626234035840630571965249127493591551639983057769033543223796304797060930115582613907061868939809624703328061425947658969175186552672673543821132356089822134731073156708118153105109219372671159254208849344512991629960070725067252826939099848765964004205640154842325607455948031590765243212912916771083397984719929518348504627304076772959874568092136127612234924224017553430088591975856384470041217759785433896142238781649520535397503207810736954370560820968569153679269110588528397165514586585185800773673178284923951103367316228913707725558718893982423826324234578320273688745116751394295654224742462017606526326373998653128110314164858359381920646066951496413993123778307914179457316369396133592527136865641074944591303664269934604851032318438459523867569844894608246372835957171043324771173098711963318914428493915600738103239619384924988879738460686686833113349496929738794280024307310815143083448967955231185128684799383966131266892253930050096480048970493077304090090998397883775750283766939895771427228797421255889196278508314416504770361806423822472926684525889565774940831649382238853704645696088057703064531078623488312182943919323492968465585647523155027959893891340973354086007505942725405232980765871554735268774937988062564664841291035013282807588452611880824577305945787536242396358127545205317028733306754793481751560193414046925806227737174533812345961767616843183066794017225675404434449644384769960741621251824410771476418996302301369009755250250126484192764000319817997936721066538105080939035757592882027566853991709083481415313566271199066862001476082902043786956074150559098064469555885669707151497444303211620632541138102552706863531649386384973514140295935600208505053106655503040246457703730602257747631878795872876160459711305678437837866992928689508566581897406202340854737438854990422014717034485630006573458551977350887097714256660824791599032422608133615604936373235384483151484140777669599149295800450398126488029529791654926231210468967934116287643084562318567719942988075717134795838276566246202426863315851753387934893628508594661391895942315077941255686856643151876076993251251313463054840923672885821124957004382221714842767902658436309953789826621414089938791582804044599655218469520921504702553160133104356516236517452383690914233042356782150903501990868470560110539081576525289215976602429775896751514636544684291309404717739186889880596951194575106857199207034608038378199005173228571097876802935809415154687110471190417573977866205650770980678646910824462010176339004221466684842916364886882620028825480787378979054924674741664258370826523870509094715518475173300596656343338305908524904894774284132452890573266082750088841484581690419433020498079371178501907402954949648811604755377832470233752661986192363590530874643421128161459641748056107594571698807636409186783447017089941543231037427636144112430168261162247064453952815214962552638762942866975424185675012342578808918643468382793795768177250564224111326873644411741505325713707419422107610243388833881372948896002145902010141810314445928001243396549787229589820577460545215927397461109537763185973844126976246911927755772544289323623137963288789956703672218025593545852837084311343898558745702224359740423134134356550435044562872118286815706905581665486693281831239885565861047098153160582746530282425320987944167408138699336910404984846686680953161403574901203779593774616291259518901477941713837233991622713002510222817776586064135217054879115369352906267465035022357829942252739663656586680983191755765761853574624024201590057953502099435929179354131110852001129259991757328154811487524967917707863912870588770384103172554561986123132211713246445454279572829788426956500182197724690546912869365732478987365532911116823364957991833471467193988433528487680522926022556649393915771440133312495769701096827304051773892734622660552406437965453319821954042413764704385250241361561032115337813080519421201292272994646684028297273987544404836242679601734249234282545126051072486197853822632022768331825686741704582850086806187026835144912369212972224013717666788475199031651620230974248136912733382860430233462864122272454034188981283064824546701548423566680656417980716558139158978199962882411080555583821204675754033065824649424449822185810088404431535941288018239155622332663260616763116091863534626856442818288253133413771174080753410731008490778064880228768832209959086589228200000988929741050186116137865636579381156255436059507341945580056678642711711143490417246280538032326631997740913104152433621408981621679721145047849836235313169289862289872707562475287865207737961024464217175709443813107163348767647949072502386381331553436818345890778950355540263595944793563179155960372586495774077032807765152488773039736663491691030643336360466761851154409729750624753778638377171006263182203772441938147511535593555614922960805328191413868761884422865110211197566379252929182647052073994631169926791078531211786271931695909741780179664145102725891258634816660835698759269863040626162979499481985424891572479766399972606638805359861226052008486673977140790569352148096070838923186098489231947026712608199042545217435108645346802886788452443291448858388870343753465886036172795550589559106681625779084349448213025485459300350933802387540257072975332561885031802897378885952808557137642096560750727294835716202604001490350207895823317111647317258264725099549733017363354858452223615817051740216474726990805952258656135447117239798859726973380195399520482209843400612615918488641785819595738640918151843063620677761490215748402671635758047473410468575489346967860196761619333991417373207705618193749755916644730606059120997512420873187880585597685540947016536348954329563642344719171525136024826290352864035296897851884381734358721710275002038214962475303556555230572294602121329587026867016218445531998797817251868388187459245083642814746994224544548559046908138572963618633165897271710840886395883076993078256209409832524849472294356299009296013737646146054328340346253728728802647394826892538269451081822011731722024798735398276409885476716988691670597722975563951407771530943470494795542830102009255882919939648685767422241735182220138809720023426309269757469175216483418980222905524680248762402556343983688941230769620396960696978847859701767754739108680313616941741794347945271642650622373723422013570233979368460374049909411734347149590911607695730471992766610346570198328916777110886207355161260366694865213484696138796837596159952426216847790988671013478486701441664894892144781983677847634481577945901186063831404206886307876250284011657457134639051464132604385507865006379677115057317458615527076444726491078868629046774394808406051691725553697511507487319750997935905012710510544771178934221646727014375088754497569237797549317358796321432971251169041328426995484710864068820128354099414043827172445681960802859532242534427728808403540486404986749406748432499081081472008718962207326313678961635672181304353557121540528551966703419142417127870868433243764022139490631940726688156644292080738586137714035350332991985618536416092750936941298284668775912192770821604432647192783290693876835951007747028160959434004636170099177755079062266309325267796722281808885018389367717031521149471075256526380234448953229774094486297153709471334689387543244080421378368227259035133278235574763687876156142342751915901066796852145981865034197937367981949430497699284676094390796393490687453645698982608019085827216913484231779502234708617075253910521160980248133063901105103408728686238552034237502497014985818423158956600681770125448965665153109585074492955824600612686101199223399120890490935876030626456648060432486724095148443902701955617733845133350500849876719055875115328058080160998750225279171570347192459822931637095174736751805038827689509302998195103594854791683276491703988223323368591812646077123972704502717951775060552737771838971879299354571298832109960442903913270062995584636098544505918301217946722651989769291018251669909767555095255501946665794678110222137737516472693344538383856988221501033252810722346856447906591717171092891535295730127414102450224517941963303445618342569877638011280514068765168990500694233741905602398899389063454860934734910695358545125592203084902770882630225507418222609026987585981287476283873864803005238961211001192760769697058763378208980517926564078793224969480475202357667484397499155535779974880687648856385139565841873215096643388591505852268817783940041106771301732398400667777526190197281052648587682136912374576585748908835802950058507217508698700210283069854031178583705180824363956768695217780774775569705145576292611527154349587276242938134218757717832810939547646140246230419705100579900189060694711633890648387281533733363821961178768700734630401221539662842157694144649681345332853124642904767446315861106623760451940436317490417744459286102856440499676333021706073725010849556850135748244606953809492283293069884937400501864064036914255126363531473926888742365250813374916863293267226157365824409197023584254709377704157993198692085781618145132603414638458789063969897190914081162278695321609866429610666407399119464284997981517895961015327342588249689182236999262931529939254734691373296854596957468762120540462605649308575436804931097563639302524904308490142502322994366703184298436875168647566405807024761306890769100440520708302451146399277626453496827610425762176877373104467402582493398335423901570917496286097128219961881822084518322251221620158753114974065507416371814002756757076751731690598119001803259020844479163034734088264965205054990607453265461285328420288444110630880513293073038211769787682626755040228297685227366680891373710810271341398573126487531387747787154807285700297273604964820808330355542963692921428629225713672900341261156853235311088069945419829744514985353830968500161378855132549245126898569989797172162235640537512385532878765784651394678647456908806115686443087880474491590350376284121017044906223178305190034920950571608719913835393965644429769683971205120049313293882128832275006075011836076066279804457747090378870930775422489496356273797590504908280841787628182601173973230278298596431826976242557158927775937846937279750984919794977222092991535341026050891418775938642124911525565057275175746592713326411747128842349001438455751322825016381912284657624405528268483085049871505294062099695284663399946547179206767891518561069994312669816066438087887860026703410394298710715119323064833852622047522505432938239921426718434042068813568285435007713523608396933557180249976424192523179127002528226529458297963997605406615157875407681172220646318332642076482291304280340389945908414249676207156481503685351567865794604082716261072092313086458880773457133959469827999454283494193615527750002560961050088284762178573103716479444756028906633435586793049301820065198558647079228262843163572731098069075417812598418958008921010967316416528858098649846259675193163955069383966724888391354825209519562617977764576500076463633014207915661380298588981764842880642663895991497434634247292190520259247636721747399931217318296117593754072312827058064994598334664040976763511816235063987266592685210772382138726455013088574911298671874455704966608558735882188631068803121212435804690932600809648299989951455256822113222914890969490368035734464049528305715916503900759540118702348198857720486939183614335326822310586836406454550229802224662598931054264322686860708065090383795625305609222702677124377996129177872617896923460824884113214409481210203656527640229355423764016088640565815260145636944487868766023297946911502099050762923224265070553712846676328450827377989989471088914756191175351286634600727994447286425990782909644611696215218122215437952297340955540151041110369840804464534235382886708793471803800869772673297877371054770730536458555549695389297341316886733637446161660691360196611347403653520684851593452039792236394991153172108897486357724502438540581002610736890669054505705964558127033699875684587999213907278103742974505140293987966099181167034282462735392311786017010449639347987805310556780118157922202679792486727505891875261137437708477393963128434563013473634676777177990032734684413536625291395914015100741330712801326813987333366008740869872582332472559032130731688727884175521597153258609162862832118637199350454353506691749602911139244133996946626851030617397095597499717641711657063393661914759458798922529312219954234091849339479152152300121992775406396758871088217038720425757919165114331789985902467405863765975207425277617354092237498491551290265689733786320609772328224296069417598566260880273483964262043560571027547559231019165401961507200928974923822741134633687175618299075569582775265233936997617478205861860820842623204071719520901178395600054630055659455282080300947123685509590233758420142194956938687158099234023605172228671027334930354841863823972753045752891479111597663255101632995698822561408776516600079524795144520471575544862741296678602043150185239595143455589566542418840515548240370673985896354386869809408570743358707130218168218767740825303136150566847429312246335532511042339238053433587279866129720485675394356400848593526134256709715814689853061311148850056662607636980749146335483580707570227355268539054349114131114299495286668460567362602331649972849744968444417908610266726178343385203369251050985330927402217275537599176385588579091953191816537731520233919650053192564297272820101522786088414913156414186998751403827636120787086367453915797157438707884058993315827671422699269785224813886542065497873197254387680820845046612552142969026188068506864194389084512402033815332476638223879447313527563014464885798070915115036780976696286776630488797944521712248280308460835428092347233809025698867594211486063774428450740997959104203173967664610856997648943983600668142969576406236620646807326786932061970314134954675046355295317555690508623328354133825657640909968579974211527525025390267278139031145430019817678967552060655306426450692166248160707585793409222249365689428852310623144400076309677594153195287936552994590926425527050999118603397385478859525236036090739157234741700881316569602681340412471236005304030981328406887276570323622326963334152254795788554552733024040322262918515777234590714739396977412192813208325514633976146206903119197975532084635188922588231163602248428442107423123764794562577355461817235585802729589440589287462929472160974628533767483643878574538514673455221992739635709752005580465492175094045008939944526857559896874852701073171082877145538193798365763920368738372490852296973004431503786314300362433854944955036554463911254496401394458101777993740980375234204843857239224323115839369665575755430395132216548768969049902242819561343801066124741126663920115408108334365452266324165295283382567064331008421779683501331152428747255227622338245697335942526429498734675924178848392152969284931618005746947901697694168606634045661100404423850097417096014274729154925029914247442409683444927690740199440001702082168919726427236403624331205484076780191017642954640100750939626684057716013249682386150613611437691859505234020543446504516631568969548755831818866571862587095638298243238658577628820460920831607864855928177875868318714721877076841834651553207305142849862735795532416851123932168746757618477139767293154285693857989475590172816953486408995342819439743396791706503005485619460556303690655530962008036155923840524877727276448794689885450978835096800226107055665408875104812637530592932296887272446759682647761799656886462893336050262520118803774125039483240595141914445544043777610134918938000064067681424517848457977734280546362694384788493101667635652042753672592330994022698048383719597267212597627837826122767135218871154915931408437293635367135130935412430222087833369143463464754567140810107657097733460590752476238883384491866680353441912967947197919889133710864615811743531827304953358206070317924812482106686929715281541720009452893699366212996930429984248773653553350506712890083797604554113589753629863510792595345350675853637008683717494720923076956417900432341032140079247705137522658962520676064956137960793412574708098662017102841536509792702027359532115486967227460709299662589703832355830357999881057413465249641100588988501472923144744217532840468921972079011236491587328436216864345335875658193038783285576077279831682430151231509156057527647051061430444047844062073788558487362115034778754836868992595540593903768439006155988659059350221151224184185300381984705799325881942102795501660328428504360408724608266247865370638774256671195214061027996725637148097898748936052719343453124459491506816969272888267062340831396962638801036284950900383833743056085127397560263102827999679578882400080145343982158752051098728385700259161857898715474859283614983675795707958412936995696648295688601759840510803983542863002702259416339236458188643504299487362931743843866994704540811944322372059660789733131430179050499767981770518017847278803930052116172057860449238766938814727760973029638891422299017972286901690207719097657603290813480637828520801436674681886251356835280642433704464774881721730910804654063109006862426711172626174480057579057773154979212396294318376016272545789070701830878553943576589449374356627804492809366949707698416205502305713571863022351552144838583010725304713639664101602463088322997020568756380448634785451202901777314801773869748754925478968685008488789732669260832492678808431455423240901143153949982944185597508468612841687047719187713879363831668921452741892270335548702093924392842993080303549214666417428083636697764945844275976902310853538424878547207931649182503667208781964453430802597302304891479309007038307299148807412335401064088637948333980920431347268924214358171213921109461945678925018094766691593796996808150091753066336096807732323714185625150299506926183220468845881983476519266951995322011629482752804439665457301754790868186280933421447029304336342017540008494016549595584908285155610719737147741136794706693355377678138721791293437613302026368020245209319447031944658848547975325467842930426271495383303378026416199872635529889416507690803194646118667590841600799513825708693455008679806579862892720693128890518514020426079782231708760016856787223681809126387851105889015295146492095413713023365567067476371141086422047332513771667823991981319581453446351404401384880421790380301089064011495587295518830648718241243929640409554649544990765977398099862048830311503708256528590739513850454550581941205979962213849610605556523714410757160806449989999173663573024393245494739490526985264724685832588845666430107756478587480074926081674038026337368660544615653874729556948393463832140386586487966536387405841184963192806368919574267530196623090531519516417538515065240736655048715882504083456449041254289285246649377137969212467163626123596288737620432118310552368114768775958116914321373521039542105555511431052370399154790405045984906158880053039916388006379082130665623588907426115098728671505148414237669467107950567965034773106418315178016212277441036556100736144110595226810072244484350616595855159708204816776850081186160713951087532046364670380049439583880417017185368765918149838257951632442671335095814447525418536872705263273166477429348379897703164748318984188508442955609453860843536125931735291558180734048695359910616988270976151708045477695292544244296886197376715526843224154242612067267055876948038389056985810743622059643210022598999805059698473860587233030657177324918635207659597047718604034058275585483660910492958090934734018555798882472443781896160164952595730883012871152966750129115301034654912185760098157694396086593246396533078558233697782688863813242309153716420097001213338364265812867641246383225363559650849706061659931572159150183845428806544413009377447147667087575741103193823933782700683847211027833699852916914341562471715143542471608829089880214008523773969434950549463422600685544639928240074368426728151597431675646584490748725911567049529547287423422815208466549339896572414281889338605481466192963470891323015406391769008768971970533898348024087185543263125263896304094565904599004562038413885071403074312723579654285882789258357606604746559029644381289936321892782129939482756083820038693554737349610450337337746622019500572352657444633176259284161947744823954352413753920681410083514196651859890837631189939199192971695301148140675864058502173366444329057695441100292356072902191223135737668441303279115250580478675499325760942236764495755509279646077819045055353853796250718487455494812699224549192080060380058704247944443485674052962245952539770093938086817084879784487177786783915492722359313137379859390697241397998172832775667583608038672859021752514325850912372268816495565807468637696912658609879117107881386995772017612111532645751929806786689673257632468211271807902155966423636129805958497734130867958514487290521615136470357779483748542904976803960485870315372432517302366310910377006303480741818377631697057393466752260606906099093466013626889310979554524345142660425367106045790955590780727950962219262030159118642006682118324121985674260297660985608343213427291960204339080182580685592442511922086883816669572848594642313334257807710634889968265781998441987994451714486534781741659459472745511089932534876485787347576995262447907751480077904879481307522425874567859019850946836899621342134838060228605081861053196200045471613947812628484156677588628683312142005706732020950813211148846277705080453482369066880738167764401472076269205197583606674884450737853007175874839991259708866700124805107298742016140259373153822542036119145725243130650813269103315767619478687892153091054464044613282807103629735297301232601451670305827217943981348671223634825340678621167666550321344088436234879567780124526749444939273637796656768823855733315722007053947921673158346818859568124627941101031948653164776086455283189469691162902859843973515111033616506577176697433663279590608423875452355209016775689420445112418971910854856070195473307154946415088269937987086808490493652631355925115593157450075425895026187129233868223191624858274220587245297517824876777666885437783261631650206786893465370012780217877146262118308902468520073883161100516667732179778381742699785114187530015036234179274188338270480737785466563159118350376308241795907490592494968287900787851246128999226595383745563366963264908759148563118144070614989551746148171098037511044665349696565661568926374243467932851191232816977369070284293112299958120726199200482951301189597391770235940693463765986375231639332578577507183675343830852183933241974529177667257093847419564464882830796752694209988523734329362343698916320262563923154208097074879335843670610929402605907216009437666425753880333332667164181086337824694910308548402658484289969856901468411622274022157589085179796786485967276539924600365740854200586435576000662726838085311639599122256155559423163304066995728400527478727093072620069505082570887205582534557506272199290243323099263295822020831610283718902118400018315151679598517286980342945269087546907319613312706596554374468428042334980050926119236061965751286722060623891083133191044055153632813006541157162630553768059415046337018746870008654811406338469880455920826976846690177948959004362480284908559640792921722272225422290777212667682045691351834309812183324536445317679987054278685181817768804168843512955927646134445416527188097888241196011753299871376788454982415943114908424480316827580273015154157360691170455341725643198821590592252737168943480816526365362133989239875380723081848432023537808286044327687502558523478178251771370947460047187154902496733834377142036790272365668050390749318972150510555224136271249957448717771881025851950337807390638726138635808926406040037645410688678631716697936442186993009493413816510752519289300340742371567106423614458428727650161136213169818776728201078760094233216565497954349434806189248316237769849279825514166613807163650393300293347763210902505698034659943643056392637798153185589210702370366693113539716577320067064360390954321621016993809830854660540184993536632595838124713258043236388483596452849445644063364340696138210233443593984253691639744498281634921056522202297899322610269560902521060449536293612554196953773182923667055080028941469601905730628668785643833419875592779382573587433666587397843009535712813199631891285574428212712870403590627020783208685181893712290098497079327918655422997425379277350625199263999685273849855865322773874462390989313763330320352506106276909117571407336612147342518796998076907952534455845040739887251428230331554835152727757338090331329129385670495847080704820753598568591099041713324457752002987773259499175210208725639191326448788094753992451191555267426326749575844254260635572277968811422621475765609177137934737301413927521034780675487786894102252780561590831710966495410572561114686088656620477281328420089467531966868166638431365042116169665199625904511175251644250641568033813259389990957285056196648710455713639223776617542338827399848586942240051036576202679692477127574042921676953651957723022464788910083578983291534154191727220229621405203998283275843984683399133058624610594012831604004180409543781450948682203001736785549915972882379473013757793288677921940104652381444815090009366934141972922269784702197619282368698405893072329728988349993977182291521585938522007609526930512880817504601896597302130689710097024926678403110047405733754257566562573525542562820905788367332250736826697270496792986037996229346284241666497473757428477641857923307587393675337843949566660896985684914137432477689056807966498712144572934201013831988672362077672529948470377317543505967645054155251440006694961735433853983671310430513546071322328194286795526415152241052099987179245005834023185474495276299057069571441061859835002886078572003090045205494915030215444346979110530642831835388457127936279913324221854118823234997438075488922756723246281470900327450302903502732708666603414744081757566081746735713258978261071395187765125114439270063687030765806949955561224229548613455147252193198879519627728840101133307644492796629214418850263452801647599569892852882108737084984577592434588277229344484930401863713729613520989541258795960500371679248531328883146260080308247655801482590593176022195678084174315121502628315305940086900354030510958875338377527244012338986593458652519524192160476755781052327756341949037081344228806455779467771064291809570756324688137519969010514863377802887285099483447844674624434648520479702595978249270172782632081239900193913045023941777492277206772976662328432830920071037963864621860984585979708690859425764086735052702746080586508404111235130347200190112490235740530902120505188535739539709685371854594892517590134476433862428140629655516794617780166820112505069223841228282795311255780129762682009646565648900023320702943767053322020680281708547191353227510266802725733288561252446231242739667142083295759575811753346798795313584887652812797915565763292479917657296392988004960302221643184246142723709999918408207870750157183472169377348847012034446192701121744163350534382030796747622980639007331417249019841459358977417953108597967719070871695417098139448456406760361431453631486931906994037150246116691474211910989635276875547168587600682845351660955690954415931177096093076172098380723333756244379274077388547269097386480795680536595623785736712851119577767624292052241867590047908391777547850786344937657841197136314026569152599539313656465388700940312939042832262344602561442699798468876566617228319793482170970859464622289319107554247368573737265080269082193362408445558972309799563950454300468622190919786161977301701576165926197316951998811140597842505476419392141187720732265248160235976670110232958075141257001781199990515565590879579435859016021766651116197790637361472793074548744580890782035388695951153300928477486762753423923012873267986668330491306563554651447571745016890030858761519066802043099218619463968905881735378398676285039480448167837724998775285878525634816331373399163611433006158342538143885119585097627330641654373721471173223361237395243650658924030940914594207350758304950221389239460400040211822267035837350381284314283180375258185810980741420424494296829134704081061497167671424110658605397331830465934036317351210562304296363263189118257749284896855794757641786865857635212263637250797997845938258058433684927177225611978833892931425622413384418075426086663440444563910494023178561911755307171110256414337327995238966874343667495083866972013578224833888317423903220050835798516507843290490760499109860008591846122906771281685933990397068853446980919513095385685384422674395798403793647815482868646172386751574242426912193663072966828467971902471517395513588728245313001422628606874585072976790003195333866156125698376500961737919115841093662262634061916014310512479808260085062022614060343696480467621119802626019948846683190426621546768905850467628107198187646139443409246532611946760013698722957857307786698047225864981114885998734997947073376780069596967496717114291528090027553961049216628111431071649496926415795526480677214389595384812829578327576873265456796259086519371156084974273286160674366313358411344659386731328223322288528692827113910832036800867056067297629957557022767873228966173767871106972471966451220191325226131171574121282564058976117946518073912633082516889020661421434368032315561433828879358221603373783964196743611712651734143493914015502338521590653223387160014792010899663852157419893107619719212264664437085102810364474013348214378671826950357309575972317088002602312633174783840589795450547431872629103091386848386441663334691907764832471703334622082086245893383755965039172222715346275205273161033165309297939289204821472744426521823948156215735486557956010947704462031864447390659148586765966295494271988189813017341331559428759214686954002115105984756756586403955322422579040406362037490235503674367894914432321162076230340274935817949619007718266670440602796030853572825522198940815609225207638774718252429566132885217102335210786106098024581898226773246538890724485280578382887202841263406039525131445680286254557619935441395730886128273976744379266926948829893450177739096324429239169544427515494659012276657031128109434699135894022295073878702441000695911615253812826552961245791358589353182280981251469004932394278080343219002463209743810754366849598593927189438666899826146602680811809739096998891850339326747437081574934810017101195412386521337953837482422487712598361997558625777012458112545342895969375358860316980594417446242845779041282797973534403239959963165138342205524187419553374428103350061655939554841242716138547991316854515647569336061948576917052751190104407873761682264392334641415973955087085330558791712313115830289416656078551843660375730929996430824946513460489923237163946382373196980185068990190337089433988759629576299169119749978704651003219617876338874372911623364365269537725080059147614579401802308552769519668011190084066289323831501199443805881284423044384579022513616699545451375113775873627017993409925380626341782415484617072876119010888934188047915408099696384266480211063593262449714684382069019474452486976544115009397879699731104855804887966264067220947991216698181891196502215485268262435950395055124311237698131783739841278912579686728282033308774185910396591713102555524035661601669427182189797315266598222110877898898867937620766145793950094331833548571742613732417892051709949675174463275310513312260357904752680270045246874981808568494446404838370733165516332538183643228882597624884769663502092456535566394297588199023525534790421714145026737630238718354240836760658145582813410429661861063663267232090355170409449405658457262151937518374479424578423678926410421663871289902484721375203240317507656268578643099033157930011142840638421459722623325592912300846975910163796451546966255083213394927672235974422121094568564127595519307920504057285958160932767839724586612349960411345423664438757058863527109325482288667985855842764079312945132248566020402408745853081548941340829402057985988590542166518466091418185599252306965042286103932439810291855415067888970694053390621256630567563769063935154267729641781047527549298694636339745878671306230363281551443535816483635023811824752108696721747715023609525354673025401018343433316073201332927892434571430608880576102062888786563347810907855863865340333980009602976456060389361424513676540454070686836514419857798304704483671408362454163543396402524939324256904014424598630681967372842600385077091029459110127890435526942830766222885144775548787921067041278866536572313094321196271758717990386878458241332278112131769677455487882299713933960851107413325170375462148661750356007395688103835724827751095291657177695706773081720269782215253046318233287489532866975772748620590785197509223827696631718694690452542523296478763960329670851803975836375183647727926068284034116020351000012663931526090577252963784919938005632602941000492754975599854824359906229237258072598297708349857311786530860455603727565303856668683464139297229365222434687553749384621664952651787722039019057771167861289384216556183231942973727881393645755980002909672779951752808231245348671202668827315209054129101155712581527710425721446012397642981763440532039206739934556599865098476677415490394443118466118648069317215860419551991498070600209482301256710111295443937859276087243170983342023781185597191472303812471770752177416778221338277249339318888159011593738768744583354946798935152753080138761346615951702872150007089561102268193574358375925845886616777167867385758944654272556639343040692461969763023328333739903348951860202679388614302042967770206205687585525636910758310687980143757513627345856664078118006725528568194236763549010367748222456015857408446560242105341007853088703819771888393489371489766470061101533699715989534822385470996582523152667555005122425791597049928115898311260497920472403948317530093237783860193396290462022921939838472731352596320618510239243177807674318367153789117278200759116891750626103211929536402392743651853244801775813066858452559023336212478289433225020592570287285847084264098287969266689567442890471686790933876704935030263995861068981284360958008140777223387258033603473621386203073456496077388586839969346679934142753589260067125339332129912523090505138299671282461919606512788205256065592893794391753070332271569454754266647225635026043407357244962344469527543299250701373703843218850907072483136172248376991009223712603036992892026459820051614846572716646359742553407025451311878589494185147044620716668011459077119811930769764853328900118486165846191986220311476677722746414635235931253072402686424192805653068974072426751972462001241439675704059177650551434778285339527604705379181238777768260340532112598280988153446449663877903103667581034347942507684234081459756877957317138833370226177366412528116546120444988702122165757460791746499539147617415657295185285262936958197654538487966856171291175209170288181391138808353084388405316457897671797319803870327158865971189915568703524088908378387811368648131278149910756093167976499426429097111636285203437442887626469447251412202550070008371736396718863947513034599898056639048787923362354119305650863769927158689765108954413994909174663775076139376796689378712210567974194371488138875950764926959337008460815025216710724298343738359031148699630523806252298573888170717086044203427314865691754834031306802724399472171448943594113692980470448088972544885948672681022727683370546129492247243939789407031142368381598741580838865794992862771889823557604539805611389277058065358374570251773574216710195353861242990673856603183496547530130349633467003556724220051305746961024888611487391303703935403395054622112732507468047541435274233273082500995207366857751845476453455032997930944982803953926510589047965571036817114228435433602275089694603907478828211241117146006948159056571309000252288417957289524424363006441805765033280804014805121764117345473322801325977217358757852808977411064080137572263324510702714697974750309188017184652454317214350336294529090202310968637912638529113538740245712571545256883293368260463374194346818351211555392362655041760807016411956514879145862619893620769661863799179701194865867858843511510379458453552630579398070351052326411274020986493684360097602196382625566252906196170026440127484245470136907566538695361243458266863346215908519697114610366026269646554167471124314168516768197011627239795115333599525004896368714120780567314625529340389738027825372202846421530774971772090401065987636183759209813330805866682226022778951923413004603856209494611076431930984355412104816435519846454332958506040874468299057913856177789932689593811780804418668675734578682545753390649493298103654524110830849408707340862107637241968134770171311247787720026931816470762235880663575997991678745407374996936873942304455671385645136789760558967334570755673774004635665497888082165122187973945411348782414445159093963154026331692173164461648056114485800067071347966368870684392926694915124902352607662037055654255022592049542771555832450908422031212351836895922015175843839570855289524317411204193647744999917571615181350944172239348433889729720334338492937867207659446803525721783159536272776154242108046779153450424995235333773571198994106001745520705471243245405992202139231401581237145389262330290144793243928348190004746340599220971153265407949430125570721694966339433428578260970055776364314336352496928873920074685066851345181086033243140845747241797113970789754279535637460804440073504171238040232619659140592898166680617503208076413990633927577497975938145440201322045482920808824780073895208062585311836002519653055408470305478591269266932623772845514925985704120135856585901531131161864983504503704518211673501176666221952920949723920044642633061615474388196294405636450979794425359695834243881838352758792035692418975131475577897907470533819519147732336870618890280254384772424619151869443275403737561967494279491586804759604516410539075564384521622278101214402208852465753857803256100070154269296561260659491412815755760561726190045566182071082376649035581524393337504161470132503986757692347756821386610957917537216591607421050700270190412057359581417070727683868263471721922805445239900888624114046888182448012736135563785723211634257865014950424103818318704356262595682194709872380497789242752770781444050260590129227790635088229353996330348956587443119985618243624571293003701723721782151285381259999104063021741353120305722777121938677466732613542790128396394905848341556897130009970146346910198093808325843647865937830892675791521420930075246302982701071736284122859746707142036692713614946695632568451358584391523940735707559121035466218523405211962585669786361419456134961106247765565045753308009797748642113973176516420001740448117748336968942729073589124391597206515449280117162939992546945711869544414926477875853900251432295037937770633740560700835487505758601020168125473870973035804686286008036721297555608736994233152789832717216108687453348922881284095360869453484248714439024560926949509776949214902465600164708193969548187424020572075693437042165424292680608752641807654287430977330461534020668387516113431044926221711130153397623419072929011025839767387621444328257827503088840769284265268676396929633329053355186575978252995329387183767020431076078148457452229735358435283846986640616418430612065311871514075844001076561701361204209469993765496724434973581854257465187097702043745960991234369919292338308589590483627472173052618010470214884320571043661203846504481243097387339121535587768770144287442279172884210139975137731772973304536982423078670205305177056045988219526590939005804901669984714460907699829052423289022822093597258276812968481722822463797117507263084784021889526215961851197360719880895466652357328081837129549248679720062218740611698713432848151161528835575806707818631945276845519236639183057556676845020531577700399340638525227742690127074588177904736602916167927258057413498491960530835989074018160622506349108593625456457927996185105021857321040286628192488807069920965023820812917281969014282667927768666691593089836266496333416561347102582286056247079163776384171875251125037508998748554502841933267291618303258667430506106106322990340270088804846637549840920361676884273097033601710778726217599821931444415065546751184430545335239746649148615546580602112030263902852525728996317292102619272108523692853283130819489967743462579815060231402154622945932651343527742231210890130069985961831153425691542890297054320401090065968167747526164138095452182456517002644442724490882352808451196341778213305463515743798774860875377997673981184902943300419123024079912109697853517520447318622933427153110177662899707448661294038148554404033456000210513959042888766049503073936419384324974103980900524310428022189495829361865269742390572650124909805160837292916655379898320151509626323043616402105437699018547852495016081424825093472580263356243694355044357263924834590245369084395741574894087720680355725039535854034377379629633929292529131715131785474365077185412457197984400523346594604221837941468787499610331159601527813077703521968450650966874306229431767163580972904944410723477140522331280346448713073004102817674136896771650008325228294265620116048416001946214184069872790087243690276266038427907322010330047418558315802581657504277189997975367427191964249250330545205917491117085093646380766093012591716270830498104625500616935055922905371379944239368918015378427327345055222017542256083626848426197291813388570394003311253746176609290517760669666132247483299040998821325242228884206812629439381491253425291086273247453982244505694671878603908504455875574924412863472449950798639123240231412706140714482470884478209550296476156686409005749601263531361491321626056135833059520891710878128352691672560380421920109460900675015802447786709825265024018230566255323023227766044189232525273250916274708339233823070656960318406966619138609931828620026620923572964680560095674923179729420996026597594982360413667876456978457143212836487477253615858001501736053806833513553924449466113227523307231319853547981253855893323039329949171446085336050547965640786314193325470817452220772693143767810218114818786188674932424763253872822604900360746631642103401623933201507439829263605086842675053780833938671617768554748820459013800879968744578880067702345968706579756083354349091790982285016942966699090749656749457334150703288303391318587810762695452416417426229864774562043187143735933516232983970470916211141496133260563356272443859106605368755354716453730139991758363327500554449694904294031151132909101538189932170983751225260214904302119227826913214336809321965337776790093269614568560424319146793682290143316007178388460336833170646568237033279303532930101569884650987558183885228325594794372528661881080502367487555668609769096550492922693153252127167269288168593825194051132881451942380927430864242614838009263942761382124778542155004396747466197582279279123234778218377798235858976537098571547326471577068075240248933949940743870283177990592167100130828301359993587921522651433496784242401802295335549991508335079220853731079387296224700086211681345053644105952504188040823530489105019721291679798144105862741625937791324528046037455046769577926145228898814523778785631294902935818521070240297997354447493296821995014106425628910447866800001796253750480899989350095470161684581934542750614757329083526690098080913908175967254027044993980637150688526124694049246760319192111838388832984820208150318217017736044624547067499994765201052393707097003933661246519312790339764449028613945809158449608628347146297911977890072200695715109377034370879840139573212275920455436332263372187609145778767489013010740769590093525548033671481245028580313084786494745415558895325623806983566839909373731019143163628140893978957594265036677154665832209020774654702302453335930117658784018807795532041221776297485415673319554683260530231625281353258216721517210907046410501260279166273533580589265353160161038485783746036979336075123916005098610788701944684978298032499307977718597028824208670605070150421732744001801323577052479519063529430017536649448897886135890951091877162520048491497854019070733566015929728837865043120574129187991826808270427034591379309671966478526806031164902757069882743713606057812504032548652575613425924388076060764249086270006533939692245771364133185383152592627108572117856571070925427996119227591882713911850414794220299921564108291471521027728533054240088399396296372545734480729982757147677007078264090252253965377135406764397671663587687153329043713330317417529911782547441636592232010456744578860261345253354628748669824653559352841498787967573138540325393608088871264044797513481602576942540438147958331556625584796669931840857585070131126632805497177833838295194489766988812537763171221514216626047849127925577148973630736663974727447940233196293103366919708455049652834709078670983739484463065897928169121470048399296085075133686151747749658724384604218615850976390626708242451697837394717209879084623846465022877945474653207671762049631950423677886230820866780593028481944968483496243519863949397287643385777081186390940806588614415385278575503849900232992527316882447253539394048451357248694935231919168541131951558768952928525028086580272099363402381701477899895949723232350008011116940288014425370395376022211298085226741373580049115407157085938339031309995855452125380220349643890647931820239454780272140205142866686429792397955900365195298391123493263488201449118877045460027936757848322465198965047702204667880194868574322005647199754098590364076883530585084143327193669738589007837335348774562546159903933572308210436833572848210510913465158979890899188487769909822864125814993701156325750706832435585059520756875358991907428728376025004276662536279317300552791821519867922031995952105988620982733215700354104966089407580126595362563260567362454053691351907781698179486522010663825435102384889153160649050918591991318375166883183452143888391166675535725255652140311326326103063037913868312718609649892088898939726089572740986206460444512099526154824712929680530701547611285983173300691619244502926753804962997977166659894864921839054897052725213285808380999506384831312414001957021213144444934119595552942799176916472145646145326684050962617558880627959062019285591702076956239309471970710354513703377988629538001603246687115893052652549794736329563761763397600626245401249156509189075214583034534607128693046210160504677288719677021238823115466424750881441501236743713096607928091459964582478622026976534201112339761041174576900117360925600441970936554337358443396795927111878941241215716889297163090312482559799154916984027706673769697885367473377142124376303718403494681593356170068830422713397654724365108664801768250998033631898167470863845704904095734389693356263996367472106399628103863203905437110088821298608168210352558182927362671285846485629794610139417870770849254340112374575817963966418891043927549748901412162406654072600855393972175183092314928520692636132609675030314172817464842702096280009468755810348463487691127065224257786510664715189063774214003995347451985918456210216601738669274043121636627518317772205758498204177170888460125641125543098947739089763571397791614802387236154519195125238555224768423668978856960768993829909559331394272531240902098271525549754949552398927459210954765738759598515522428835892374444168121250487750821992724422994255501466664625604884926406723571764694911769251060910115655013365349415673988503469877276832070723128429763968262752795537282366381479810206456374135955070915049952835145760228568518370913348564362349304859260534634155207351345975286779576495640969527888970645812202758381983483114396762292240405342070540162195291513602779147437107911575863540097030728445573876762142641004521970533636577330958853125814736218739839479892915418619713498083540775877641711916318665673718892473271223518902991051238218653767547020633396832769287772335405826832190306364887017444937834493526778779307271664113123201845265921911088168897308070042810879420429770125602889637778161174671674624562524139049682734814373686462424146050217072597044621761978541967982551612300463886204396436500029482263700196999016592166964067894577427728671454820885567889966583116063992573719643749256727269185196745655567878573767175753327263639421339831765018453282492021313817586045192896126280256421105827374431606767029358746534543445157166762066949129203152787189407127793350839550760613566996342392196528352252929612947025611579766951797652484368210258635727673644484524207120296966987025065917212158527693590829961703053622867658201984984515757749303481002796976922583261107709137823382143989084471655067516020420566923636401114594800596834117479042076967280698711639973986238511918765493570091352551023804982985021823559404899723713831666879675136157834101452668458640389538771349933888951458495948805952717846365108439574487514988068360298801045361547716809003681708032535579905581224104045842348067143483739758732645354528882281057388238759616490447431424375395886326267296057857663618585642621498643531481933685077956997056935014761039964508533053003148226242836461703001276926177582126403471330124086938738806195752342886946303986906539819634940711091489488337668597781692175473006950491631146593658877455693005257999471077325770189156701170705110794763443115578340570312457131496655676441723348755487581938559487750178847882938714204707493446022903028180970240568990546746555618361161774423409661045907880854621331858040019292906418573994048940322831780761495924149136929296946578902514450267972955158130777623009537141161496141175995488718175230891034512948375347868327588765725209137137599323234310827643307886858519874530562141450848627943459733534603252540862603054259190914267055266345162405002935079087421321996062714276728332014268157108455640699285849399883746500665485242234344620298355310958256442979365562743813759633923583926614592069795918203500768882736282403936851027840562519827969292070409702333520943426188669488748716487309399243630371513155779021449407901827179468615039096221738518819681230168213243527745318557677198921266172146394006423253891236121111154282029613911036295031033221827054732194718765414660077280120765455901742452012718912785905769793700543074848819661418792596267697021999954962860605729136542227269423003255042703194698988968892704708190539390893857513606283553400544552782142507837679357793491840688302437553661763529849093246764795256689598928964177688002507978670730210272741517682066747009624992171338526746692101852064199591928171766886672561679781473883972833583217942729159772808923404246005892153300056104262682751985780550317214935263056517747236683615040153434828964595821659818725418556718517520858197470359601508231086796905758384281270736145435473020940780756582901658941695789475557388544380990269199833003760802232236000869001456852004228932208007812925573095755195799331891099571326286847534859310637557172485170847664294074889581004463745963821820709482859718040770728309451164221086571200898260154526994492323471298789032369875252071049656726043914489371444635874085543893438572173245831762672668564971403687580491209852338969922483713245171147495536323210830033100328979631631975775920006114811847907290663480070446929174558637447213846252732314487202673720789325954289377049144063866479439538907773942470781517363535741495084234864328888621557342031318373594363917703561037237697997535974771714902451480386118202598058460632635038767474023279953438339132025322336972384720083606091594299256371584275367775247024420710648141255142978764325527742070332492647342241700763261553329969672898265050601746180868441489609461675251125478678034985698407279005866164866162993616077020805701105073740107750269648406837732850459435921373589221826044412983867938408335287848369896258275033201802906675772286904533295116542923353527201089058731388739132604739195523462618759144818554250796044210338921018097222096386856089718026102403695944220195757925944917136697247862085843072889161944465770557049625711626732751270844590727858414594726922091214624611037991183539481650249964790572504597472391659116227735106776178689680188680717274147824306575221753207750143352707424147067518798768025247647525422675152245273994844647147201228566393564447584206741046461250936828683839270559107240284646931933921172713219986928994026879298772047299359950723310148199755332874382599995686531629739711837002313416852854441401753968164977931510155530289588872513199970418020084037709707836211164691375604550951373302895601703818438115154751430115102308169300861584650281724269318796368998735017468927308509108573443344498429509426122780898171774263362882076573185257218606362254468188024447964707403500539098707415827392685139173692333406780706530804024399971543997502270113492762422795931634179727741052483631014360467036070693493330625850579692894233605709055489514090400362740218396603838364164838651030414982674390418916171388762744798271747263176609334583660135323488035028049564572032478898694379679439132280627180411538040434653418456505553343699388527069465776459460859284074195336836271261291788906036058284716158936807467364264068674600988891510614017960952498182026533932437086254492907739564049979308163658269518254593468905922676271351601569265991322585912057566079823641894037480772990358540336292319870669751222942867755904831666731006518400062935943823593175702973863360369557793599695222301610859714102280950130346380254389749025309265490151157975118103636054522717655539304514951243814764503063794864853745188592162852911592344038180755714108403904773531034593306255753846057175526299334103789726073279151511796255258830793075231000265338392097605332047276867661516142834121906187061584471924797191896683908942171622743419110157686629823049381691558624267323900163816816704444980928001945851340262882510030907962404222952905214711292009740632408936500021693394808917048711701485426482785295426437083321912959009818815472560062035189254234048396641288936016020034682516154405280888084460223502502169645778587780134538011346634300704889317294088403992921978804415419007019989393236004084890836679146719691955707247261797612745723708417788263054925821430094442301140887771758615949493585676772007352497749754633706996055508132271106383352977625627892207450312748480713727032477215239551320547477846256431682871316140218056601332806954585387370214971111757847807322201346858828087273405221112489531997619263624795634251842533419412262172999271487059237121529116160443489986182422103629211081262603945450480473842688520711258136579361483252919924870248996036490380185250390273583848030918098584133563749610628691725211502245376304608727588548095205014870147142171452935132385261607244888886172703570313876824622770282660453334589525073301519054919743635271388049051391391586671533195495085933476221117733331574689057032271475884558318676751592924743863458832875908434030753022029878696917529568291776195333280157063473506851651819046002975718569586819516153349652629300059931699850368632171355673234052664184127297107482176027647424296481146446475167659676614646031559811460895062197965994050867920856578295247712926417582724959863921803222002078950144171097184345140283519250374887232942432205690137389190232388077983789861221432796789459347274839511633151463039803852262259204364990792549389554645374499775877993846053230568066469655602143855125777181079194187547367335242918317816338053422576897911794392796627224328767760019895951347565351373844504800942190121922090361190329969081807975021225757253798637524115894754292840209567408287609872206761114482876927747139947913250358986003382278630641225689187762705439427873084826718557611963408817591203504189393722945610800835238895152807169428889626444812823124537517551445735616554338667123034161833171346893291194785018722196015673202087436147303108839419858980540413586179877292048365378090111493549715717666171371516474927741657384948349681286692435329544980146085986576009762225706245011316679318456809739738612582762497672456957444179629202103361478633234214927288765695937769578266311678153474990770091637520414734315285921554762222558818838378487400330516173875514923325318311919682525106711583954927105961365722576463893690865274022924935245330775587639305402484369299281023979120905020963626520191212308358476360453797625639406551899801948917701951231315093191651020225748952270117676672411982872200579413336171599693787448876013806055947960822039722678289476682347517074121357880196302389624522213661018544497167943732886773973800872485487947452342884313011872025183501359602013835920613825001478799629942128106555458731910488071631373522203849236305321689985001917714781009530260129302315685404913763335313000528141929418553535846394573030117709280238841976538640823094829637375994921261538158227633410175806752526738460577667366619767437987625826443673046160144403966136697032567103695453363704894424492154203875825774167148286673046299551563116927420386253399802936823467784196165809908239967198759566472447042099316344786644006566454614838523229948967217225240314123697664369968493288163630077589823107005685004894129715638954386016275813022832923580104201162172297375171035776748496801995983798192711613246140115889010022194354465322150594906875881438429768567587722570742893694471252037428982742982963527957544705504616509118088654442426964839326949026385217855017139315852819851056692560835672644293443522144537765727913096330415067878984401030857322244733878366679564904220690339783514880881156431688024710939039031744851042436299092676682485098587612508280773016729650456143837498191434270841044465562012752522534719936178343477957605913306235299607140101457638030066168478957437679914581205821293259853282585682381689384261904574548526113327162485537456768950699295118776606391568005525268092561509325900889476763557768755619709516765144338939692432647347606287613231687388221022552015235676292279210234914406805159559564196118536091230991819397303158957706467556162863782045155966143535530009351066838293273577757593160414923280832547010870632042631887184342646397768269068522097746319168033906609596286347493260138606706427883432749277880536357740233726725693296241135313850863484539529318212887844949904499568864750434214336970336429648783429856706215282049274497385466052212008036543750852009405595170730751232321791051280760539829559547281280014558261619133485062524648441948073969151513460989826071950427979193122721497952545290389762612654866560044481899363929545738170481779811420762204658617929407782015587239054337679712246896156741662970405765082074585398322592465194872000813413173871792835552172309213820119666545901666239944067813830854428385281069984520610314721935892111468353754491041461854506676400701827286091619541847197410329696069143276456960423587072154504998104610452721654744058865213363604898892437450579165185572682411192450101997974061991526630820976334891148289157964520718948483629529914585314507987094975643210477369261867619439924211357782651497744459022986702746404432578808594500713192151388557317393170631774059012968429570054123812879576391934390718276260509971523518906258846432362210350247868730466868791113168792881751717214438075489991253250118609293420050923024991431342443746325313728319060215960063173558212933975795234838684930308941641441777437035205164253765449952090017876930672447662982266078908081175897250601898265571024837398207477011056952876243918166286549270041140654469174396793081036879154617898788475572557460702319927797491063312643758734114550900750339694773589515107818739273219713498858417805678006480058371881204801356631899611475134674813603634240255317879351874817710965118293474065371169167555068950296722662927318477451963782314651272164193298621209729494263854155061794945955851546840908938811484745707154488477351273007804241533750656527281492980686480293318449172444804129284143334998761441545289376434179562325317975102911060384146992410835476990916530486156245493970736573855376357195751294521835036644643591264372736861429031596691386036481161365852303292083931667080726159884915006686716481465873566381740855539816226184640422548149021828457699415049496472029008264292895101537952093907997416619461924301132048183831206573551674274542652065855972275967183915174797277378884478633386839999863847106841017632674706143614071694980298105357573881432378864890114896441738799537024433393278401731778413733832412568126114244201101640415479847339556629017928092046319805528186237770281949727383675325681930011716158163689916378171356081160753076507753140813850774562330541010843497795719297624104438043480026810811085479277231623544997344881769263830024542737908365895258131144954163566412354173704829886547451135022314674046843083610089531536126418281784845382744218608304180813661475381472224325221794460978320324210708805705157380565162715922166494234102893186819097653481249710470168605213597171749020258171882450532338174585727342272284276900478035486111413268225247452820538745721784420666049308378952225543609854022589373300938444124576533159801586633232026795494669024923409499747524747878425402620445516174192812628714103490370786214101297097634750115133908406403089268054818254533259577696015477964687890182527734675586665353747018848281999218479977800349211618659063442808718275666604714051946824442325644570998112546908157436814994025473739568128149573181418631486144254692439206006151876705174365937095694111176486169215826879597906393254410632751287929460133157875227039676345212056074705924415887721968531022587528937382715142090738806171170656618483468951020440663192378355752183844042246372541095482451430202760816950431666752687312908159200687455947764576225085393610739932186629936062724609964711621820167892635336000134680118094128692104453934615505581787267605980681512140962949463318362800339638741307276818033196717955155432484951083822449297350125140939142197763404920589455211902344781817165025706912852432203648829490307894514123289573088633680340477838319702017404898759591303655248805216027778350539238591072214497388952175865178646869335357330520585967107849898991360463087510572683629971600250459597748522129109843972226291293255194783669357567460629838025859852434737146804995929122280222531750329227429407591074530841241416939672909446739099159202018020758189020858208510721036701026033423261996160415825196499795499147958795903599263532641036576690005938061514760559426569713673908076094244641998112266569883709325632907011286990884731179550484690358392848271712584030597518466930885324751280329322459479225584921834801892567835225510951829849832766935400367548556375007228843490485987402086575008852279591096941989631192361664643262405651758535246216855972189728398539638819945898974655181538853167893245700507994021465359078326323206876185654468714558940260902837270726578694607425576168007410182209727285932335012150080026302209271608165467779655293450289657709309852049431882134749467899465067918394335314000326355927793495046976390396464108426353637774934868802662855203238555242279485671989687806925237242972543038712000218370136137518667582100783630810147371343735153542561938106026757258945023389500666588541099551548917288604780845515533957054828078672838444221244306968265931085149283307714224974188429989285919792220942655213877408743320701545575441846215637874938437317230446470197338223687811246074269940601957796558881258086049720348582774096936670503589349019867217924744834032904555478777120453914895550252316637901716220350347796502007082435103288578772003952375542710499032873682593930909806043569417206442575178528396673671724440601541170872474272013530831038895779048799534535472617553028454383301265649878944325134789938688903328811378284033921533543251644141412712860043717750079958266082253330093735682045004366652047699556301157493079398547523735465476225608207895816375385677359647793548744510789113916826672089728737740311666684410511613396556827388455609085084837902459619682731993079988596612466093091897142516692621761602582394866443664325836131000243491922401812689912458088077141806354603668924516178653639455909666163766768177504127162447994379532675581268059033081720441901397572282358236521096902652430971949391826727109754828297740761117265342659833754424602932693331990093010169476560309897409907519531975132541413496044265693969450280873474873070437898509562257452580992507120825105851533064647415970677353887722068459836588749142592365424161927224650042051482833577826316501506860234162790781210163320013429611606804794900083781930461362135669354282837005906962057706365844095862799758187366809363276028276890676648514608781808284290161278098182073622306514470196865777349810215755755742915405616203374897011519292725593421980241727439243202097848050721756260323734514406645496677223207925674239282276780447738166497201068356314089927690098019879383364065616382721615994419352046119377677678119673890357325432321523636569668382475437667039265106343930144897459536968683927945615550686627700126118638991705197868293578941055531156769314602305604013284308767404653888664246378385714316793444510489588480185059853683467620717464276968687291679123115290676112630080185294042841075242992577752567646256851607192465905913577351782901633246729965405846833112110881403359173916849029702557750995321829396604582464211338664749935953490784923444009961887751379032981578069033342984028580171753673581339453052235813105721269233626997503300225766730177649064625917153970842381366246117151247624207844598007359974790143558594229103102443466427449572655564415538397310575433477657528627459924690487852143435498701088112086509470607962627082869418067424762235165143390379609710060924691664909005577833615150732987710805067933585606983122781239297303630477718563608102304615520230141548735132109776908270958577632802044448418597613730674807728724579614148825854097682454922415609133569198296652648793929848729253100416762418118510334786556080040936526194703341955838849004315476840315640012718472526806384848629357082757948121999186937924163933873400393714015003469790946462216703032904319600809531663500175734172140535653173825124657715182691858771863769929798140715012795069663406499968211391160742130891935387853674439838553834766863458101430432595735887467333914512263318782998465148251910887947523599101144641480083364731803035354327676649254239920868486490077690422936195091370519614538976889067641436158481411669353576994987610890601630270330213608193025511344971281955329269947023256220725978278808024275182034254440779697784426522372640364178553511643134138517205996056495541858806316522064968244686742059455864064718079531417401714800050431177131744469496075886659457189297074683401709733098040683833356071363432511349608408151490803572796615036458106953972778415445632871882241534527090394045763490575609263050745414861520247337771814499532940566941573088349585069605084474847747102867469305036444083235086620828957045973599466615603636736792011351983405694010848544012714909901777435412108255896780819784650005883356504009896590735632029407528439974713218892497331869541851792703386395254973448361205159978843979234996576222328644399496517973756208631516591395382069477683903542131831561759729916046898380472723578484089743120432076135963740545286293347976610376472797861957653025899271244248809756151575448732084263857591624991181715334298624274344411595952243996268029071068849007434426532904729864028720917211986770969384477092620732358688706385240333042342027557402702956417673842244760665683783060055309848626657048496373939943570435779800317284162565200423785242116954398650091777307386589047097353693501376055053498367702424590903007025257767391804652931412319579794420615714404156405261306100690357359794968073192513042997181366019097039086124382323793750607841693404385581274931272966724909060676742454260113185788897006823016466128019789943005365266258376039702495153030930655175558689126889998795840896279276814625128905156035867454519769945516833160767402034430299846015338131427560696758627896805265600976624442954887211380899114957499940069468883669165445789664851925197239367362871247054476051073461704792938859296916085830001888066113025294295280624747062264337418105997117223584754882385559267077705571494590000914318525325487765797038328236749651900135219850269134011113175836816934908417015812566542593754308696327464483134723916552774707330014202165374533309103125101295001897238123013852135210633283500456113633731646041559352621435630246036182756338558888311350787318099320575571113241924057740239406983495252307969686169657655183048746879732952508759349775894591694554906469673252229527591815128609294246378845210762957770551343579536120930772059475007184273347566070207699455623207008745313532630122174860990223783206805823893366735534634365247780012563920347707162286147027178323566606226384324704712717044395824720009734114888563547679556719842834068027210593602126114645623588821617455642661487437292899331731383988832243034288403271892820868071762110556040200678452255036451951952655118409250913918493450869035298324033022044373962530469376003559039397799024737210454022314787321485683764002572453413598830210091787205518616277459259251657794124887883339826060412537824339476067997864396164371021575678536794704275507698665139043355718472260459791358288766377344615392412523485509481478216560614196653149987030371310914323894240617284098688768898339118343968147341855564590928442342441992063369330890972015862799643815623114410433832394115239426099103966802287292946819350150533942560613934609434950425893532740870067227151512437187648661407390139038149942918122159401872701184513103004012421340338629569087744428031683908461788955262447403107029466952199936944544159657224297058464295230127551003340065490722667999625402982967152639884864724012905450372756692676029671262702508283536743929098306939750167571005357819866667163485843881950251210622748677644705875241100124289878026732859359581315357660736679905035721895249971835104490826618658144474007205506232739879848510203008689293022431972542226820871638763128039293758825595552260008640179880395945947329164022166854748960039954415804516271701580794417439313098721150019103969190066489761500808006060635263054472870161119405782086721115480357949617297774826372805273595404353036411323764322923857510020682588002777427584420853077998117936397842306360589753575316968938889880462136804981575873134100824149378522185049786529321750977121486551672472338251552740846867928402282044494827406593366206068368783505522121701987364787252108737277340009028095225031525658841808626310998610052579724438729227240065186522488545847348379954506890830137310317407042452705605775864978913357015408305879617132777490128616445316407529002939483230523311695471264193425508223671607682077720534095296874597153496247884582939541453299250288555795379691148332879343157153147859379218843795672287631560270033042265769370629900409281811583841558628149378453706172220350640872600766240596059675821627229482698193508057983014072238821773548464101350041450531679937822396502722952417718540508471569268874888291107328102346886479430045287672517542673155476364488305618335335238951968457139078393167966804368223688013970955810535838824623644665738722953613292084995169738636601203290504493492588460264477581292509183051915116530541690250572744339069466229366924475478333891249734252287727292365297877285088145252994113342183007658170126899210220250350863359400505350813510207094278638899549064839003494039134535952073509673792315217233422827806353112842320079731245687398884888070064704877349358293314119812115301116809132605306640115269557911520289833250456203766954368629689651755945341744171670773201625811391474344429373413082970069921290906548536292294598052942420095641464492584462692763586522429899761748098989859319002138295668526064491600784753559350657019968206557278336897689942176527374647077512748223244920340489368569214868991989985033240971350645092620518178217601473922352773247399931912228452211942623099235431058684823489814631905031013226071892260841447531787313624083604153529963964055043573843724379668854200726327097154151805417275577629397684908396463259137415001464836164111455879336830321790164505764208273731115122346198619799284846336411073972493648085561107613205935055517550979718076876277963685559120356564744532009273719743709553030208991627371171895380586338244015108862608546882864113039123117120679630735432937426713565332696118380058088759415374284402262317804356106340218091522656564626195135865601830016179646983765647663628202034288149848868746046247855747143466057418100787880605391848657126545648690130223449914335199488764807423651984855587594665577370434986860547467818722586748433693836084320158189745259791266388470823642588920175964371502089612642246332779609867780986248437534424123509181013455206872225195910869608264848150911003365840060653046798704278337154848026497983256928468994409882568239389394665968718236815499082301118772082377855919894388649689611505708203329198268191874462018181857095734397177646771810870916390492643659310023222177304453091440485437389664537782061076930085057137075292616850105159979608177309124316758631651959586492124282507676128914685206646372715093003898229937546335473133908871145824840848607335400334664396693052510326946518609036713557062799074381504155137405991045673372922804755062720608964536767873986191928737647482739019605614081979892958829193221986386026301626301750736044728398642171961370629031672604504907415053993769884398159926375073130004512358716463462525377581436050413127391407278607610969372314770407847015973417663115560715530633530146575359332372770027123264591897377791993861250957781838024787640631954837989406834889058127810321389473926488472748509242311188964134229281650805454583367219666808184422748515594067664657310606124968743217919652126426614496594139367124805527882560777185828262191746842490947611721180313216843631757693649583876752411599752046417403129327241231102304344886153199286930061050017910602721496610536675740734131696833307304652414577027690588457067952673172045256670243183494888643130050517811221737901224803243950059292846541091750297090718590985831775902094512997547061832120394706547778755819148333382373221273053118468868866097467936909906655255151852858102507787739747234834270070990130207697658337212222613927958040435133613611702465015057618792069366044899403059901690698405642075667777133524108148213270731879120268151628571092482477468032621864316267860184942685761437712783722170390181669219597395678623202505607684727082515143556267924354411150117700970549904599808330703376413007857922288054817132734992375361310373888895518752963266095866128015181105670476472788924926060256329699510553059600717641262563614866974346363417485419064330439239990292113687431347681652438549118319771478526597128292484083556640979409683090579738856259826280407961443933250221435438856726922460092189674955128151100021104401739808776320279408924168702423503287569492549205259389806992169380034214148788382416742882887180141506317946030781151007246824620020040296590070415817752907909931514538635337545278880435530207447124597342557462746724011842000306710906051844917036798501786131378829278563651543393047374610630241839838841783560932146561187168467041214270673933632628889729736060614056082425212412676148181790601217054646253390751204811272289305430486902529222304335553595313085651397422142286488826980540346203069768454996890820703833464042309503595434416531959040195023053971363179748242357893145735431399970479491273296106479276680008394933682996844579870227760300738859316224382184089191118214805853005298352815814738952670626227027518441332013906487819687476087102700155228284332537145375932245038581423059401689440106290340667047522208834864731669269953295167662705097568317455570240537917285655886321217536581766136544780405996490987159619315014930770603674781153055142632724022855133056241840566529046675021303048621585530838685044184173616016621018227250327924855344981159404719983464239057917394284885552372012991677494406801045994448534461696340637970122918491681226047945902482723488821341978040662611617569493111651396578690751506345816872171264108878700579653857056451405016729823069414174764414445433842397569730025387516178016128774753822841273965137548014323027285560025946433058123588301465352954541431244252019779249299730164482378158962809838214956435259499448876949573945049723835433644743640015243809451776947031913019865656827241236903009852970217591477612333650735922934319617897087132676026973396060352562600595213641079881313468420001764776787105110563190829911481126658900737121073569643556302647608504723982839614404392414027650904367685709689452859958717397688037493450020498573410364247848362421155171531698040856590200112233364926415382842643997321018066248078546368869186848360844225462923222191708909221829390356032501673174155558302687586006188037140255988944985712678510245629492599653823614356344630954269583935768881142605362199344121653829038274347004104587865673663214328806116663062881386661528510687684434106365388770838403837700364550297936412882611652824220668756946620232398555207706893778259873762343754562137128518184596002416746784115474850379203982393384937507687014718465046493213388020049345922765001180363443486908042518566343575392967964023484034697799428944137310998468105712103516895776389844081070797625825787134495677957256509916311485025559860867510598520404710931456163269174892270680821785996920843068963914405071009134242349692457221738612834336950642429220618569606660687199876344344678315175757633987216417327742107044468751285851333410717967657073808694640952653757789776385882148708090956454918586139715105180537919128027817577501404268826318112899636091623333313850322401385276355145588254639003557593191793464281329695022591730369847133650528397033584048583426804628890924055108470237638648854852943460927286837141291150233370012554870436233915820325214883493489061804093289580324925258058417417620252326120233825688643551578886544830370702491159322173264585770243653814497259129783131229619325129012400714734853235021027909573849834313534806383700194591440931234828690553588980675830889558992205028381622436081193718039199267915814768383981911696102854465857238808214410944192311128667617162447778415090156664603123066710482080316839171862043998408973221494061554313263833296069330918399879085754868877314121744880383245470120542388064896360923892394819578558706253122698805939493785565022164727322961278174178455415189653802168996370541736039896798815530358638626986737818697307017755102606784978548197115803035050463994629329872753464316270313297087662059334243140570113845942521888099352827224886231579033729318758073490424296599340367775259163259512505106305524159976775976359948737855147950079907757646497163484127680077890650590599425322803250612241705047318586152222582625387512307073538660358947294556491463359239408693541068446830477142666889898687930798900979160918835409071056101324616403126452401871151973638128779034074650552016874189490241398285845954838737095220422336710412810503498583745395807884386974351075193832972246295441014042231365451281796415829519742123638473604045809367262471295930445973054401159233739770996952014838698807618408719492588907607476122369620807171967105289167985551920222543625935181302590652122029827081345570232320495485188438592691260728605399979631340068818593056378505398299237357081216585709774538183878350713241383856592017026498041931579027778572615817509821769188341589026655695792827639909105164809067782366810729313515655356768751434886151474196895246534825246224487053913291712068689715388976711456901544160004793030504972087135985716848096999138350388326076458543052722116760571908868238497487295406090587287361185478729442892112940038390658588090664006643693547921300761070270343321863939757423946639357477996540997758293453710046023671242597396068865026610538172240777671596476256291334605772508987779797706589000324125327883372940909307283946331975282176911529572019876086357224168561165075903990954678769629310331432453174085648484106539656739355598974307295674111612340950324989255376303087950845148121725524611173607745186487246682975111451604369183168735576257086757590013177828874072056944676703871080598156323237945062060204539377877128243091932808672042710328221090335324095942243635974050291469069292243908369400491844568727251922929472597895067481108119706230168937463614950080385305651947499885202134187280845628556768660946627439919985762302340171835383250848272726468942957965896800829171178565854578731599831878997088281670857036150890027218384355559746971698563821449550112705553230096201743025400765706896115863386056022267104753351836677569884250546736606258491471844087105761571732040663878297784423713832666865927752370984837982763640342788233738963365587453185368723978490057965182712967281898735679303185639031230611254170865990279919180283158296597906243189770839963107093953659573580931089497119964137469149659787576294238159305495039199163813744135103330707741097486853473996733273713045833976256033774520447304691671575082772395790489812484396815903198469476499986097798836054649796563847243102657314861487639816142649622834613980782656292992146455046649283776124144366085098451769363316301927261378961263274427180489745882533913608452439029893651426848480799463870138492698455763665930917877402904232961582977706325726549412594846240406640875585927871376145491628781595998197650583510014252541053035366498096156140649324055798652845681936956049523940432967509452961678250205689913049115265659727714324484310492572995627918824432058118894873462461380913903123289305560467499517990549260347776313522949159330360248343561245076516893652708696762159163370484980921246981737166484178802839442616171844323139661723785987386319794119981685606118559058256337862409977637769402388360858228498553681080475771583957232458504702340615873663378979515570741076916171298521128631262608361317017027986604820393850365064069062230226849126302487682920248238045056898389841200203811938992762378562108108161172936051376263221400851866069956195471543535326144731247082968653463301252629902872485016995988836186293292287695848085774569688452070825600636636663524903974245221805681408660461671854726906510897354846960640144018762198774178971574631985214895056777010345231990842915411228267938234251171628259428822535103038029098689727316936610714752993280294138340171690286199227119035010045965729801877713103037717945175747995695773448467113257866445705391356870239033080385963299898286935341110260887327452319513020253031269079048574288021339837994325570476394775821320082780269705302744380399640668632538319141890784665292939785578647166899195320255155897787904652677071598478717678864714160685403230232315546994720221377132808252540105702755696429610084613211212023740863420410962011379545475098324739397353895829950327685273482527629525524184093146950190228364503966052890331655619668350841415236134647768122427497023474506133733914191993651534349746842388894414470062183194481454169209565107934658757403231745682874659498322236840737442639137037920211080664548601179475414342010052369652732451553513387286346838742884004140157320034873307536178007614481764425513062360733430393321129059167521970908989359516276579519792045927623127008709741507787592302972542544666257999983000582287770401618053425070237093937807245908395378243168493985451207407344105909669074437466334945830604053734880838479257883687915436815728837423557314819529394873711143983815451653515574315904111894624812295142828292263980457782113792291162697055092265795769082308514027054327474028979316404194719645113401053284037661809925779007145452233497729869482449670680814130264011818206245747313474117411100987962746888849909493918706367189196480438748157715190447931401133169047668375968738802421133843376031210056170961997017602083537622997568389013025561731830090082038805273015380776284894675377077902383956645274439617398279337332403042699897250120852800788766135566638117477124173206415145573846513675673705399801280634552957783953974105464384775443277162711940905107489541593864514910837980159077633906199958256920190903843425573054044333907315289836193499283633042498688270574012774712052382672885811849029513582407976045069822390726948359832707058428641556172706131008744766876826722320218498467487252680189826842395499307487577203487265811069039324279993851389085385336413229955182292190721299002947062152240190898423656397402941656803881215658559736278257077531426477503784099288589710919659901437104585807160708009585909477519344186605310136783862163333740410271550269737094901133721242488548811598416283779530195119051875164051354940788275742604809582562393885341467876833979593143345697322463245703569558089538506329573610658677970929941102813151686519010089222596832729162012819391549669250983340472827077344242964165398438155403993852209644107844460691605003485057703594894917912456664402966475412591031951105308413685890094681154212367106144839661368973502517787707118536106498567336225727559960792316734251819191492334716715673752961870990796613034277781560867036575401910870736484123788122507034570080445052250235876443862850099778733882218157357029255425720045351954696416503636750973546967897974016882822052851905216718087492572172598720821257115204296988207753504174546000821074267666343745963611607851340898250373489398110779158704216498389113736717913236643601031408957415950576010335708163303626990605892593466937033491135997503089728069206669567038942511012348140665737735554639418965242093838326568241007242431225430008217730487220442356821965112902339539486321237609153086050631026855608327997479984445745941186544264080534067567361636416781351503852045539182799483247390491304580668667447166732028402296432445111385065293273870219582288377294384763649409376181669887793237530631314574425187129919832524615738849815669423162455502866313224434386351427447553594875542653279696993813454394897528437334269410153164395589591173174193069934447705397655081958532568896755876424397100092058956444626233502520921947967398176325473883408121355041639858962210480139213030187046983494150447988297800795433427002067568409119939098282575693854705012768805571349850642031217442151165012436033208992729091095657268160122749178759423012425946092428927500994546374288640111251379257814771590844489309847230725879563882893633814700066710748721806153798647705898938175519395818823645453459053966489742039677994544448880918059888474175764787752730090235817977457525381026330302863419416655580364492320732198014107457043476397489509147488062500215087670984998605373385230478722539076995430392038949544077013023080119170068814886011186697608795317631700497170492250291412528922317356709941603880014969570094059148735522223538315496928843142175451749258499496162357206415003364802572041526381828390437728932804631893583282638306678464733806069522255920853827881324937913800657959234426156870513131473764885798742086993225046949738173114731797516140214963514682419936428787822300616712032222397078685119831317882447572275461274165055566911362728176887865446973433910934842346654077806131359692624187057130271837972265033418417456374317866087960960435505522526348261168996853114692255618342403048596436111709289728726903632481294259544337995039727554732457935523697727599043828341726342613850294302471522010866334824002486146826841202061398821148456566379434747706588022385412047000108560435240954682485374621219211283619887693926015734852270590161145459292525235231519101777366688967785801764329975483979850041855981561194939196691291425857371867773344056811220317004219939199266552258572975980974266493659671803842836054534412497862395041992684282993171826735165780035534323021007736961083509087043334579120083951063472660763962150230342587287161271925840178940089589475342133066914258151656900804847978418257647512700609973138438117431164926160295788885584064848318869664587526590020111500076618759782054866695419015884985001011339458652357437357173235578975014146968178475571558946764095656613260983663503750059108664180304392859975122817145787996968580251011444646769154391748757500359062158736226562149231522376612613851600112631296707645337795404244358983984691292795168175792349931720564602585065299635093175467548866749246554683808750191623989063057673162424619557631964699533845401715645276510914198047785869397870989544463474139393354936771866755855243284164311106301062653157931009860552395476342827526511908854763169605502377296202014453875204113113044054993377386393304379408666204398167135875987650547067741410195435956315941683721006791992174883471443355702222966295147193214728044947384037460347122876534093272409880789432203903880140955104054000044666855355159916484608529910932939253260625852050403179798931629456769527552944458101727355590442596508313552872613929412010538922325745540174392316346476071310828409941986620982984799152535648444668318666108399431743920655215534552431802310751862641655375279030467449699164618632741483453524083547462863779472025815744592862928276187868015604430432888899681400883262857086694873947436310304540307379479561484589187916241174957086549833441993137260266303372531975793585610786577923621972293642715145863901389046758121648538145459793256107511559057361485222248271188385170699274124785055261692251940033147597770871065092928974767611512339029122018453370588854060336109860540426154404731349427641615107441296530610568385752098853584063749605523749607917949068006304959828434077012157655843483259369762969078785031577148869148725594069588099328605798666305144800156812258223638991453422911775176641929402888605836581143435472742566382537899311393294856349239013992098653823034745481858208019911250376800510954001576276176974989006021495927992889542170660123285307871292254924960197090203331252785019699342033679947551688498586120404883672400767339634527947526532550081910616926661108603710736192109855402407919221936711980013376994387173168670025767985423948777680352035857320878967763914703747766882893720236275790068573164188558433629243300651998936631216399400384955725048961024623745784463154372751972927464131437399071685819643949939839019406922153250644908494940221729974331926673956117155626907294845202616733564055298585434499811195350262495071726208840656574541332625534987739171841474847856295736433600425425421323370770571811265258327419321149052340703615416656189052932401463706641064967490651763418551723987372932779676134732969140962451602011880034721781462135676239924706282557591413735154167758938499291671416174501636470941017075065825671278366588864131269088539134802559688565361344176969380871470631502003217280593484650345651680771621506758877220893772107638900925569845110915461089241607607317610651832481966730559974893290566714703041178403013982360965259478304143026399517064696439312327011251736957857429332144312663185312944410930104108770229193945215241230321587402412427204274642681565039529817459683081542940746625905889599018321477401914229519583469299419157848088086885879743863611870192561919395079796313785732333658845038444945365147132999373352622294811116737886012114827616295303856469050946611822579829422087478257032326124280146151767167077200911789756570970443485259799041493639109241445877967971884125542135394718779607059759661314546571932916619160713523591265312801139113857582944481729701379397036091676463236301668466470936830409249382664152271123424360322616453429859550647331297933991851672249670337801719261928236768165736045226850897861664381760366914838142895007654787906807366884415936846598154865346148495366124313610599893277374131628397912282715043903906814255491983841017186894075321634202834383715692874224342538487880219454721053647662273186484605895846815080164753425675313868967010691788614060122001624590688891651381576818379394006512030057419121514182105478848983094644091570296240949945542372011991113638524967577491975850064565802879875224729740973637929945411674238057269006086066918311482749604689924212494583013022965045710153535248358392866177907931454686972569061069874797706787368974848761315607888550060923868921143646807902220898652777745973132247995804448259128652151044123557834472066444818359009800088014497563567177029239944607830369785325115137498281232775152799545377242964874233259491311040134924484650944184605834005459677654620850960367336518874129599266089694566549452041174791533457070460319496582788928401580684572798473651251499094076150822741714765030323931371000013465298308043525996935111475669294067152775021421691879392982510109378581096389699876140272397939468825831035042564605425333635452984392336052767329159900939074463045007946330937688443156741098528065981186903362892460212297444402114278254866082322933807756704253846420972157705384305114055279005480673839324609005721556661098478554149913473823290196125045149874996549174536169609548814349141161856770628525520452962677791791719507857306556470652757055860064362039001427755721365697562523507383486689007332720038772924548316557123773960727440567601572558632657012738714726168798398017923811045073612608130991451433734911824613543035400577863945502431824556989330349935558869786525612812692979877081469438205963819384505362448216597410776446533546028624086639921143412114508338146109638098049919134884769577239506638791866560477249029651346685315596893345587226516617168172918461982648829222007315093339168590714900380960615645142199203304763663311028251964789559332610711710137339038085119725675247706182659672882342004681611033408650212346401706792243952013347177326995204063714342791323475893286335520186051845139036087436678239322865066892832700432493653831029488321678714555377202955072980037200723648284009254757391805155596098705581751334240871092850528018017265204588109755388452758461646279539008768426893095067274791915922614978311137498845294741900466934358089553071298626860829373097943417495316543420319677988379984518447301186848651335660840292375282851682384107469831699458724335092966174470036369531314556819506538465649828155315348795649576084838601352034402600551964786453857837328204137050707642283771442807231092714694476075863686430581890430282425822846249162010892229493499248773509513926817354013044574674919722111406717486014812303205524748946675134869992078741535414965297643572335541688307309464760059310617480497984257539765217850697041090773044479335745661752797726044683951502101526956947996559854667282546073518341126226008279697231480948394703448639185046025661632655025004059492259378930012877718564683147563090710721003737906703091288643618398713823214508379774354843706850938951438668443593337957090510409779860739654903648143282322306763146838025174966786872798093225245108505706255493428558975368973629682684708520086177885062846050687127764222628415400758698463043607951559730216617851358379602104645235875144435577673240579477642527777836460900556882614156600995174402803515743302605075614353076002544498044514169327925874358171515119640370865789327836750599755790001076852338925458638465249804534197329371579025044639444620651131331199867629103334417610660473061012012373035628522240447688677775519602169894904149091244873535481564153650421088550534384675677454182044271004743807339187111361396625478249300965474937046569162107551548045781221593036551756015660488161629567649212066210461442584415096391500706679574419594813013743274536012875293624325332882881253714641414399581816818498474654386530740000413034932029594415536699050076179013111726896482444516775674866771513714529142203859009061784994958647816109530405923750851388972408272995205478261440682362138553274940298177564642820509452262317001521410279673585223807048855429093324104859993943921686092750885623985753815740088164390496314546408462332344387775801837462114342511404677494877850971295293290150708769685532028421938278347125435759297247548215555482529130151471958577647734062990786001414448461071713683263687918085232524544109516123312253653284303112209792058872188038440839893161993517498570287395094339431314479460630963110874410690592381527818937528931963896724654409224776703377680155127260951236908541121651029231423529804040912586699693672593868239180938674981882062591536392052077089722392663883203629912192724625335047755100344764826156340772286693587366874617474149424388247937642548753005082266515595463013862944167208844183336407904446384392893807766495370344291765074015902139937384045301271694971107308924483179110686117122685773104345779318269159077699208809529427453844395099472057463693164288759324369128281696099122819316972672193056406437886724575694172298854781113249366575940194274844814946342380722574255928783416935225438441642407173044295553641941342747639208941028198847026618678037972193591221520451127567201926587188983802705374970139967048223943501470876877908885152265774370658791553789457939466393410758151662353514135383386702850094687122930807587241296800454471886667198809000290997456911342917174254631884662984263628163039911172811849679461590911104170291799669934120022784227621067886482619595391903078622493453837578560270230750385388371001990002324979766168192814376290137986255960346626147612798495401176520907845363243281131997359249608678014655208701562751430637603491295033727556059790348331609789580625136585286756731949719041466659291423855573207338199804426470152961662807590544888144698408366507464297943537986023811559632901008662488731230804789093470837154914215981018236200688579407132356076037857404213866886041889617532861968113456939420128894183254943504264446571777865646472779482405175082407944051444418828344276118265966219970281335629836853994418273081522488143773777216116358241251190564899569166569998755982947057014091670368960878140138534041101106431020234842999567830210923643825854251304790567468200321043216939766059014729295202791452626334213704188361551720553678845776635005775451467669510473654581002203607150016342130218537545015500592588500171115500763718077808758117714273825425956163021119218563786342743834086579016458485919621273345177188170297114290191153390472749101779257899966982751410649126982659393549562919002596355242108806200192339179251401092408031565977830258786060766979085261920379439620036804894304171603801965314810978686068708053071719967319243070192581015621773725145256596518557825995330870729779706400204028439110644164771404027729877787714798062797755749009900762873186184724800218462214825078807137447962202643637890647569325900504217829163282432803728302454703154932163190036291771264290655955012124666788633539258436202260903001456905770083452024634106848926130092583866098370533444317030205217251196264335913979248682647045458814831902752645237735533152034853149279984790773079028252410038569025346074206900613089520871352673199761235605207547966755863546715124350843891024704831679470695976215845209999489596500143342959373960323970377883077283883766541763813057653510935823022392439776015053837908159572116815112053332867588494723065020283139031142880427651928933004294866261991276715518354192422788580898918805590149857615073748889749303777695105095144636448071867840401981592042982828077462370759154568936435952735375907825988405887972710213374686897944468191492079823029154889971393597276772623740233154488203712299795696631778751641802272654784853517769371996338420721554260768338618408464605160996037810352208196099893292147617602387515679170016405793961718975092462244672765464107371230221075053049532803562456093866288222252543048067017509147144130856121968512760221110329187723252744005542489439731337656500633753711829977661978306453589347293968112432752680073213547675735325953875133657298364268637869877015537976236200820792180008471264673768969813571626619212298479654547216369788294800592164261990686380855841273624224732973116566414194449425398659334337201971165359140798353805374720395767638884255506677628750518879659074522971218763802174409879891980275617335093925437125821629221665742713347740903653292879764686545858278179647777456245799094793466568525484997361958642439543569546078064877140470559407004859160925511531655333058819661458658736284926295960943731613585846755161075530941231514264076047654163138290411542108199179658334003721172946711427350829135504670639796140582607245550596901273882412766870334643378669995024134689434029393939818061217644261099276574138400065445895775358661153592301483119432883934625095600810689803170802650973443842374233086988945541068800608147023216324503781431104250799984433141042411701123375037013045776551802357995330182958981882855264756796539632205102541681124348694895931094018886703368319458786209022576656638937020526120386332540486395194304700645179220530463171930265565960389564786967980714560492537092709700421732660659955692188825480982626532951568079494082803299346691280419605254604655858967693769206479560307935562162197763510366278232874064115943521705249339998856237093478310589087237494197537983971994668823535803157234339628261551780670109830210351853962846261238912809153085005913780508249272951018470407584999413454738475172934623190112508753347508873313538468326053197327283224655240304315292411394419339978093995544796771709645822798207225977912359137363382825892531616761527647458989634554549118213289288290606852061405035116975327939830890551430389893623941121218305775543630592519265379696044048980807316226313150837359428893547986950532683405016248820720872287559973050652571735846889341996348348710501436958827547338242110268004522767078579509974225697763143525752240046404049944769553055157489525575645492714815936215291168681937655359908000696793643125810324595043692113814373689613710930355032537775255178542295931605489166339540758175733661635082847773483242047975238651823590482299400593874261493600511570479134356140412964181717058752521935080359519284870477229948863828616932926709839112494524427610922479548037776100996569751156917577024851283183986486395902360574755573908232179392645828414627394360759713752518812299910076976224525758403712276207654655337588009621606517870330176794242148023281173351848516102149239098198432403746637405605040007714160259562555026564432700570151083180841630933363346263773750746719717186419206380868181923655125830449371651655637464732915964344746684180516044570274003272954441000572718520872030614743547347585816872737530286500182985989826525158553786830703500261368400026409794057793615587673764421832473793289613450591127830096592274242804951862804542766499479885767718821133444307477317179317731446345979152328474892709938453160331673865387740512790644890227613007852307518029829081896642724147645818989891745413834947806424488283261354558518114091383849704234258462167227847577267195606015090487685004683585299217394750471366147087050175793375662175873288182317785732721004397267348767660058511874486453449382499581408393677850783189227779186428040073858528331549315285170254694865069743092446087676777605643248910885760210959435149002094501543487557262058224922943708417312163454280043106508745087604535743176725800003584762718812883447066571409246550298575010670405700764504126722186834302729336946711694684348510045820338216346255684377022322932134522567648104685521357635219550215406445675535280573657785453430611370661627248927572454009445182532182705694835822477065563708352376289764712425576829747661650749708989951927419133802611534989869516107912795609391908130220919158232731821398697107480783698909134643658733606452765203376906109595837615205217764392552846768944900047456521456557640119800778191674989761529293239597598238075663818516980757132072796420316288637950421546733200703982730337833446117894067980110599381232928225751580182388180401763437177416672715637187202391804431643501580846360916605635474625688015512002256402538562549310185576404988707359216917194785567144583138947970948390682595357807299613363576031133974280523176913068004931576980157968325151233009946209743463082576372604877590008298299307154705335759139448849527288756923086137727096685872112117325780553158598432736252687678142520437797222722402591046418454955501965923786338722017748074685445961029823609324114067902291454578940539744235747902362872151915005668124711693673210170819565464599284254113356019688253319145166416086924702053441721363782801740738427492017834718639210348329979501402029644182365669268393028620557260393546626283741391171310491632347508034459868496721601505773397831398826498437909874183544793391475065978553956001414120691057634905080272138762395903564340196739874390430811397561748887527114275930420018672382383960057631063862743000832870972412089591751630838226703097938102465872185371089225798197452338286055641306357854020941081499241006077422152524534870203545861736920878727367915542331691194519590853148048813054946425694509633908786779900849583073435160050508729120690872988423988917620284936491554571469914126915352816734034882681689955540848328190389694016068689008517905015369810261004821754503164260090920286163898103672542438704351284806569482950417286245138268185866513574425300226367367274548656924452396083012999092486708148100708795529300566428282998366163637018925416329178050560068856301050705316411870882590730733978902759113925696416344459859148608578620723525682711361031305988613774117803077393158992500840565962716358552962647219068773620328376245354204493624682178603290215653776531695264028380376902485061475574740448174010978687384904412605874263999065011029203831238086345045292811281816715310124941958901430059956170842878094962539973266705928476843766229478904977033257622989736435915254001196005587332046292626966527081915446024687312005368629411997594210237274144685103500242375591030881512945538886593286351769055927778549029977276797335267314840544656296293048027588180274964917526876542770695205886379287304473667759522697944864357343560106764053786684900609037276071563499667953784745555552582035194890320168085342803288070508465782010266718972062208792827797947192277309886871505777329670463482456018381212815493614757392618213883458211039922857089657766564757980371492774976924252984622518617892267781277066710969115636010572368122226584123566396375887786729950435830110170136427234791142458268784251825476297394081841285592656548217834209181890561697640150158332094847085141416182152304205063514412883411156685975320063865826015747537165474136483063275837031047226671032314926198376122053226055153252382734116918197133782762323749836556263266613342340122194332699704942952511359097257702746782976756182611132755649005510742218364576998600079286566028259824109681625179775471501296329329643975149789458589388932911688129319589520130518645709853288146798672369237726835814486042815894372235997082558541400283054356289665264969333508505782706358240264716891727056418805766369474830371935377032592821157146712543254558908901916451944367356637048402328490974979080310884671143999684412931373354227677366377459163026631255966240267364083538501657254114911955505559601482581355703700687844901057788078970224165282798861034321557429664002955189674061907190879054813453994068949297803305888929959430175939570413688670714501439945555518098309222510580163269199212672139823166055427963637797520171843048511339796517185482794404744932938081624000060117346796128725041327808206779677817942745178420434724283183180943278407798322628134407382912873312490901330455625137076440431505888227979997261400101309106366440831400242157530495238306933404957908386261196532542017754887423838641526660615789526065052063398075851974096023051789786274839296108836297651305679910011852775363754700222079004933776447874020721912181334900570420505358884693351928960408124510372220735487712351318406264678705186816053194295898149909749281718433264035235112520094970942137917075688310371124676716196743110103190657267279078904050312372916373574928704114933456673673677602133680520807689046720867922313712758999211818796727097065179307432848582475607991552512585082123012068459126249093434633363645448050642482536728048569732861283050687597350858791205687852126731450506575414554080436201212242690382661595519872187600855651311849900585162595322363525372451408128938103370022199034424190051441290146744250200800514677730913050047222185191432107653775099430447663191896056836524934068254024136920523381454142653641649881690409778878766004560847168719553556521551559820234956900086431308469226836463471303484438155126615246496234395363261296568946768346117912382074985563648451646791325239188996387948884474344843073802834614247934391742972912450814199068661502785682679174941351324818947281572781872231360905341133250550515243750815328780848078181253822442431775324972475073316523288112247000524189499252746158191190324004162706873135691310202816226927879287707556072072240856745249515536745582497532016166125271175405640792525963319171316949093362615782510067293744565353262728856253507284476831019879146180272635462327195502186548060015106175246609973450243170039338658695366201321246189746624084253378844360214350834044495026171938210595138972190821887168391937036188437574578846552996495827630864617103157716376114703112007136736579772939477026031737494783902308285390416242772159138899208273555507519262511996625115091792127942604384264425861630507918934641449026538376192139261521608775332103946499321939765871776633140718086815064309704197169292323029570626600615039612769933395275122270698407097702554616564065987472961220305403088975444350996786094360500896021269974422962205040870570434869182799463784460415349944840802597346469320191401294101527895472748713265565334261049175423545094888124100352782049585707657695763285545824392344549899643459321312591513383857972611700756201909069403337039968417389446850298697465765464666293356888171442836957440783320174704521645743621532100545502304098688998960016836937202860092650176182220032223569692995165993339356900367284991910734240963086612511856613036633460905405749009875326460550538023073262823933475455926663167568513611889189666725688745451479339009015909102681228972483098195950294580645525780153132727076455109362905312306926444749128705964455969955693026326460622178689232022166373352657107091230949325746899777544994123497168140143399542206034699565295853142233003701595177055025922654370914136519025431384575699389577851688472112725442539721314449680259594914756298130761714803296826911448970982267381288121563412676988484880649896738267825400014120019630669956333233046747316307610667154944874526676489928152266822517339358069903732247208087320779667810390122184002188762071321044403782157903166206903425599495605214034958770005302176404374520208271260813568004262447786157027858677615154181386676255270055827643592750919646817126581804018140160374157937486234101218840033778838560961876242409587475838225746212178115746435858520055811720981110183431915377984908206153894104672940765383782688542042568141058726840023120882580318250919347764658447336790347870914103630922283901216123796155192528707427211948523678723181307391407129120604879657774389719656579992093140969084489142781351523629501977805643969093193942911643818981945889800521609760877509484268607679012568454840163156489800553814705616121547390614250341403735929178685545982147817754792221265359484469768563961293212188133488407282301110417154542137026086251710501143124069993760129612538505029166543247772229944745943625202211553556686831582676792028053832710491913637039236444434711347934914271534160490523907316687448101160609744499998167764662749945465087318098709631880962604706734242791135079509662492492443411205018079103116094617477085742776896486838234434675602968114588484554353549952396707401673191544965415539176341003375508000050671285317739615720588928792646800450521250689859401792027573751086888465588134214023204955603516923534596424285169601270235983896630536706723126917531942229814406356740373152570761600915390650371001208767443448542341007936317296341543533671325382344764404699948320522911382544784314743463578733083083332798464085148056835088348771364584938850163722963134617508069311527255439607559245406236211404078170127851312491010904400908162242550881561234093860111465641334345069020854005259065056646858552938787755702622652354213169265503636021849440072402603656867689437044559516087237144593684131686518151098018322975207623389474562615992058521092032347683990779564382007455769228222910387667377389716212506969531072777767777455937946806887571891771059977253248727745706705714808556303529633420265209307475505685017177569540346076490321222414060178645894546922452969811293786834427299591541904503669151074568756596007324468225028104940100141890087485310863881670570428300571253870690429986476859050956493758003189930489832362373163558927902216138658259729996756818772191847756314027986164999937659043289933536331817145174126339106256319232977354458941334729026155688952235211158452528534077014825233586400915890084490102618156933331824561130673012612705530525610839479850510416896732791795750520795636669229643573920244973930266453113961888297075224722713485094892899287457362341593039898535644007054625081006254993166259308798350641528041430146674388088505143376386918727521593416518011523520043923736325332498308761507274086789025693235139372434522570749563962675441703207543797070211669548822929595682368713016795516469493992935062501771110089993388914884347266358016272379658797598845615665525592689602607444710309626632300148092522896504257048798115376803941795083585027742986183099636511481377300371013305974142113542249919864075702116764366278393325558407556372432933314665474727680598105071275755630728001331133851867000377262022331740539216384531062314407478521227959073735608567675581893742949275053720589130879250834008758866929981429530370150906340848335877171195139759917409915196605457792869297173935800037967771367683848770799586245049769820415355058592907560132678622063679747077712388124403424419715594141602841142881941095840804132660994701204688236924439832910615837517995101308017397429015920064357606322910476281863382694865720238163197623848641974452398665710690984535037950332861384012147174680712700647817864924316976543006194820383739336466644840126562658110125230426301459948454745574761163691731550959657400542041783280670951993698841066994231416147424939059839914469264147973307668215903460390938410924256501345224482931882645845712676568196683854304369781935022271128951034771914287723403786226882613756815480561438644875071400424018695911439444689823806861435154052038157625701139911974897809953422773697147690269001222846962857440495558702138942972795733882721811965876211823201578257879008210553482049541387142345957605337840803828159789555233053487709017511119345591705916465384896343628080749936054792541670916499103613683432133086133537796872497253159014306573488121232842893594260167296818076837013951180537262438857795885586956617573819713758284219909432783710086092312618933896357944648732092623522751467109201289719636179409727740108071404122406849389189678214716661775653212493265644913054247883136654013737205359500375928774493227969059013709536862808647817881774490608762895755487904410022737743002481517403303434442901854674230095119850673230644964081411490975523049530879665209967372634004752902587070093086061575334902481395301454103826153677996018571424078559264477776951720458923651794740953941860450647633984117211089694940420765281387631991742224810565578760800242419191324178040272966930240652416758239309816670257980343029632193850576113210366399466403046843801877271780402817812895988545033693205616809449938164171542229570123461811496118194080826396956622955779437171176096307417031704020408459704118904717057330386938029733582034221677233585665854366899001080440993620284462671578706668853272460072664452791840920181849389188869338483062682679096351335618908833879576923803259269693341220806473043587701101287141299892256246978134284597648097633293821303112888736743200535750571445051712581231512557796280813455520588365870969954687685943662064577346651586391976859846895635634575954028951106169868835828421247393559756295095199169261025847865078563901368878598543831675268144927785814908284645740597604776198026657877793976073730563478596253391654660550492880131283894549364979757310822970583992720693704621235416368726450875351911227694146215702717923715194674800645758834635377353038856085059685447858992114686428624666225726471602181275406867653012017708031077204638503487064148905264532228579202989202655113051743713692872306970828234177168566403937228950965039540116612341123507920809318914691995488445647425358033339361904017973123878993986947250709022036504864748085266965301843778726198571794615367900687438067319366663555037933059698489021992180397198177048356418948776397615919043778969594888757573552887979971721447150575593804800917582644343001553259045014897193082166867662818003286916519300466978151279165288109510982527245336685674701179117779653443671439257814131264829922625161477873097844847223096532847276426664835469896372048621328753971081487594445692040798966457726453358766652914694400416217338102428963436740356901666629289528691963301449348450699042312693683228049623277934822158072540377199410262798152885886730076184398264033758007397616672369082694112136028018114564866519153675044733969026220916436066718423522651183629430349313320914834592951210275785479791012698306954956915559278388377298014890212732904416021723810901183274897354535676389341689159158171482250827605071210879698833503404672097930600646132286603611236183289229230637267205774363142305136440630973109874199229076039285615790607720100099278927121011286077031069730294265846179021844448601169437157800765911674117854889724926087985130357240285503197514243813788736159977758143960547235340197158358193856019922000807865644636058585343662348478619738971950131759483460143930046036170821778922880580362323307287596664673613850296525220061837779461790506651044776160588115446807825669383823484167592222262987298375166576804808382155686995530939447241257954194226826239294552405713961975440402979907548806674234046303575023172152854287914601957569495537975420729899789645607141679470779640526264214244162947245523912404459290297137990619079617730229948214179353917976873606931186118738479011337333411083334402413143384051717473990622602675141749694904993709556788136874867857392241365787167505561953521676711627023113934679709441458207357680418060776548034990491921338323369149904836492505743447185446899765767720863183976834010370314579892233355073267472892005685706346808736317228626473476629622195461623921463669255441728588992426178904079060711094283770093925861045320886090580125507255865543759090262547458463461490675264932884004203069024240370877553870398046223392463512733835803523911234099747703284542660288856525993389572310704357093675852531702324344247629397779606244987433102529657587703636078056349496422640597410592753376955362460418675313727224820370609830186163463139478016371741385556598538353967179703858121060059085858621309732147349951321735306901635496421519920399219540438928068849726042929478614248999006021385105327149789079887327705203069013054963443285908909174859639267804515272904038445354665946852905006007068892112715293089170674379700282315892795759540386812557685852703249723237157020390454452707537371517957004244034495636261548486145172723566730173087008655606734856082166732258978799595844391401689858577543064905455050343653026044900600992763748020265678488893935712199937007654945020422881827306062860226137099879851204740287467920607041613596852625109642764669421734033467184599924194133305823819809755143972952793892031310885412522869980358277840856384262253519822894250244516572591907073494070333970586226380797605022415948781535813811276805563030555266434271191460857713959751403565267627123511946237045638726181083083394926694166362328842484133078307763514424910179971966470252532151101741651336650545072001049757513250080406605519109183758996007457078924544773294252304604970430446861528845285724080010265057465995820764151844757674358529645659076246384922739101839006365516008427969437362253811061399846305007958432920633738040773354745786613407443470729914247310741044314328536501071470430653362085449550405371555876956567718796194764222293185928153330108433978353888117525344564642090970316076119470498034459568082097153604325513184543949576828989793565022177677993217655910086186688495660973084407764648772945076133350809764548578982602545351467286444614643903713144585129997352573617315864313802907718431437764624740174925750739872832670293642070868776359965079489870939000178320854529910641769273023175910753439311789351920496788417270639052975002750480020822190306572423949806581068608401659325737030397962691411481715992128016380155706561541388444905617069564815100776265939950912625055400408539694729902516319903397072320473152911927479674147111875930915769685028492751486785712682218862267965709208732016165073064940384435216164533394769380337470758321723727348076347878690093601747093519689114633683787415706830711154887813315996732585722299716679243719869862743423024685477621801758639566298413436656992921030394920659442499065141485601909461167406514227742542937270828143183698044053170098210943314857432623165137375641677454962483046903054484929794135682500457990710768539133151503637977589617954728236365103743908546441421001925614012480019727480289889188192452914481076776061247615745880202027716142440889410497481940726290711821041543802926209994922211108997535347928252835382035794534511457180905413024924350698938032863433977679575800465602255998089397602690018262426103683969021476048039868116192764560528026126482082128166634355731400337383678539569022618680677467007477494554908167284139289392774771580770784503468070342538327306960731949375275234979062922088936837849280711714156604461321082869282428515639449544048376007314415908949566585578749131861227287746445342812985747545140828045267249832554695441847863321085963582747103056749962009973043487344303759520797905624965081983787911656726885314703680116312704499063235877959615694160853783975285742413969184202478292885592770175953017959280514645307974571238457406880109284588721243367897314143781853745837344669787049185778412218778355631736789228706805511783400436513376657634622094045381816303229571792662878022925145110995017888000014983638951764288902069230186570137496902338483581471669819203027094156856941163409745753109061822047785646803018300491973186372843942585348862359256299187814253816377106788485870751142448337930224349204401041488231319648395239065054976026944168555279776417266536145858744573766634632363564652802008230211881519717718605110113068421468088925444003950088923953001885411426217549919729116889599691245851034322630887731099132552399433386552359711689015441250424574059771592128200178810855448967687640616254083984428309518260929817974345890992001278863241069179032674761719109687190088829459903847882057709973791764789902161642143561715089819247119959245275267172720318460624481150828619248985588622947555091912295634107909585887677098713917137420430009839270276378805448591762103720306305195146827769874590452242738205129365605343291342532044644532877268909025999454807520094367521943621485414444016952471068411148316073646146752611597743925594276258249671123098479146640805043253572692821172209259444254180536480730083869623163996505923262397963744831300639023316265658016707554784891316195442128817413897120711965472881874719390206136418346578714676692704938250843992707772575463767511073922025874380523508229184742549264633529434578145166023703424524394313092090584336769857141421833778318733827521865202939902938678921259842531138568796011611766167909838608351366337272383409359263636238596916129353971431904654137085856120185399691756061697061949495318100456341265858503978649292509280868883555271042148647497920356691280865585043123316905111647641089886961965249552155252129341456745191127940144721103402037582806250209178192018877775331570618974075510428515330815604224688943478632693587139956956845659096584136767994202139021444464234400724038479386850976905141993604851927314388962167830623715320994853919363596441797309500251762112453353100635913139514346504663918964956233852166032501869584988615761119921544700845721958819085911091504194935011424948913771777417683694192095709311808614523719118138272460307548009016793010443138519511147940560127615429229625579028277071130952650497119238483077893991321353672776276555492510881306770279168620731541709387944847537099000202550931208453597051837419327729847688439897009992366556202723868803877711615140733400744204881407054125139116466013879368499287490898288496056846053629930484562851967430130205794736916147208128003606562186254862477715563398604736961327994110130641429776393757378607399990083464202667058938138722312512692263735733275525168992705135029054788182880149929699433233137911213314346751382592370566791763394810580670221815745579943555683539330598232636264524919056105037253700026351166134885650500377496465907128896097866278364194470133908404393471487171905438782983789997178027609798940383242211598443468295844798840788504666676603609856205631005797290761475257731564696312977461872262253453723144507573251575633623536562022754198072329965772935676775050171295550528858264572502226570544960172395233089174519411498537522262543782712992223587568315142875036000122250222831977451190825305809317657789515681773413736036492851604137480098966302923270864105562813661677491654802281585595822681587901326706004381191049360114877059620468880466280947459686896959675516075465896157519963467538564865156391441046484005756591988902353925206027775462080119276048500742998876546805728918891621146795851577734820586932247792522712555006321816389003989685674337197373679131011577348712769166987307406538415485532374057741279040596196301403872559960281726117142085794551566109508187336819776310061990801693227581264211945952687496261848052256795257733559867003868783004558899831755234163150558450562725463657110129441478360077643978182780464155533872400929750187980258535914785049067531463009370706910776722794914520549467000713638782418312769978918727919112899483519321356161146665231134051030661075285106629006689443840600372252785105064772391525283939894913325204225319263684535783228052119585420714563352007071843507344382793540361918095915922721173684623441676369248374295303755894856450054849168864526030241919596982407927100019244820013055573346800071006839139000590726041193536946383103814898136574940851774156730687287281314593920931014931568409956198732190307013222524611745122921552309443277784779018281042582563810087518863265011041710331047409657200758186374298993793320291416158126387640945129947136327198531737233301635073222342989984480656997606875809301431345602663738752799070798138293225367812370970437418888634316616745057409139524693237171629673927653264826994548794206937877310747466570862330029211976781786395105873510150145375428555587331921876067588441994583979725439096096005339372800710452283723623185360596036095283576005494552385503065206751513303097993812601710957738657845968267033136407762100205710095132562457985893403908871026851506011689273969408729339252504752447809506425635254396339938009293941958388932128212220709768611667184761786225915236411413939502526895976465588220233271256058328929955570917458423514473292017419081502434661754811838091487037964243930384977882214529237461063290542960201801780426444652419885035005271214858889969079554937640339831649494617575141518571948201602488478828454714707266071018241636034446120085702246258502942946120534138196137502776984769216676991188679586735466947651825176246717493665611793838323840805375654054495527034728845614498344824778381351158137333104643954028714800804944981150724114179508788841325797345901936252388391804766332276132612387225248501666598842035150166729454289213936849273728763509464453955184020415331121869486229902700835709017637342332431677308162095566519917908866904247661861903516080713026969341346224212725014904962704584648025640076275841866950967779557414619477135275102080209772570753550808751336162739492182249469576391225771351073276746116915311389460071446272881983634152911788306430092777235281601478170177012603732751808367086589384246810509027503240936151352352515053700983084712707853555966559874622662230641568850581083438018658340984506004836335031429535335332640730976659311848007074364882079893333264453165081953103740274651081534611639442215396604639986810399424467717374253344757601901615897860187169579364088543976839068852716854914779869589865534866408313756129134279965913464813586008451788499598004553438090244538835382593230321315634830259254594671813587608366661609614575236924739605513293221514819165670517949047992716951214822041824333315618653726589271818284606689921105109212974100485315734517341058640599061865647653136666753575344269158245278899132912959252756644545413283514329316097003523293826580245007397851225000261643995288105085588542068075158717093874578128398807377965769147271920322876700741344266287973053725510492018128811626938410914606097853285094524140154674099907722628691958611233905305006414282786589051332466143326295487365108407930993449540008347753948378050439079475791297556222466329798146330532276014166639600072662102374304855999218676698409179955379582382638174037918946113142272186257063516309763462796657628731958511557389213391805646335062293913362226221345933037975720790783862767520664352786092207311577037442180822254964014406331966440984241142858887442814850272157211746076587476722439776934150134910757031795238470593576753617798974913078371463797180959365392986767406179682734094193952086850773335175010187079453273303274298449386500504512667623994634019234687193494887575221935470869236895829585410907044538636331608802210470036208620747780240225859730801677202576933350849294208155713174360085744315588615540131816148550281712421213372551682409647742036907525788523566743661953152672524723982467535216777994356109121923302436760511780334861139071543139442439431524604949187495809397716540785698676167435999500607245199568129513489598343575170538712329943294922058535141203929076782700109051201906547525177573073079837116682237066463041041115037575689574172218111504401620652646237304633082966467322231133662160639301999234694059755887420045807146581844124934300400347428521809165306051803857733752160172153455156397408163230496779612286878605960755857052813653771384516337968899621450560687548274349415574631021829846701024764192528830408409930902813848418992383577757629625964395362564780632151377049201451558209433366614386225130222401831392940334396934103431653864509592420403789191700443810475568856577383646224639086700658350269252252574089833750401691151736090848256862452336987948519682797455511558293409210184328667851415674968998518060458997442131625232824811289812083162697433737919349151688428653930873111397336002421225242821936563317871466992960963766235051440016177808031507738767904425994415953973472261734229857466821238348233524888394239465957878516144202191942356824428953488559062424967465234348199609459725114049239137315934760745063310188361826260372888878872320725308814039261066636976084707977363182860532503388427358388691383249229832420535519642017920580085734526915197760040740304335155942832398015775699330294261112705568130840657079485554255505865946521185800006397147096812288413955122224940655855398604937209278517798533904393611413126759801180980888791109164196908666775188905555662188367700810301103145378336044299250721477576615219285265491112424605512642103222285126958975955584469745490078207759345048234859619361324114547660729538342976393142965296668557293824490100595959951050706592453099080104656619882710615224580255748790011100270513848551249060483394749937309110469112888644347721574899527673237225362307585735153159174913763800829132291525382971678983016258649308303778628747194162056683539836873644540497678462795512692651764947460827147464625891986548304373899278124668980333949676057830236298812996444905949807196416710881974406854947801900530086335273215711522753194010161914617237199094666591534997193180386997811415746183330736767183017538780147459703562508990928039583228131469669004372342330591716582529808792180972739677492735274974890377243815519456840214434468899906297554816422984429429428927813297923135836440601505822905516416584584598060843714870825241153881333671047411515996869516851436317322676055274434640682707379420614342576220808787574187625134875156440613920585446870968404248572110152607824365995069321382406807621446131332234741940899254903839923654388413399437059905879958132901726336841800833193427029290329814367439995022782708190624510158986025553015672572891312898357838694405280043818800626184244826515693959380436293505118572756389026426243456930525325219670998441177107096384608586212582967137498102649115803503725229876538405777341012378731015143835400205609953700460157814918095987392743395408511109619320082833121398858137522247570844430472188326578747314698039843815604304138193690814646897826758778871494881635686575954009375065144403816020307868401180850590900659650609605878632595006355782683745442624737016772991153937598422524526308654894357758105677831770093158834551667800149461334009256596473666972993105954958089881021515913816995718592720767866899478636408241410435379037576375762074270423168224712696379428939658385352656249786837935464147796563926295822565659338719985987867888947603700704817042769639740257415786561668664719146174687098116298755941565208893807049617157595891890868816865190620295927370014230737316493121879502745504344055688074201967038851182662757376166631409428396500092837622246628937188075032121554283122180931616030329332086565053225169343471561207289096463050870343779641397445266442651122719576855014352040044554237398563055260957271204177290026615372574732370678127483355813946369993299224418311253201349040833333282690888963801221171521153414961207029882922177146094889584324709201104827386603258747894344349680364944647712587231479115605362218419438048731865351406587234926063578581873735038655417164785328999605860537620338643956409339915903811255918539772226901979821022004467944379473401802889636577230712311804486926682044528777940700993612840502798986720175612183093868842608736724121794232617835896602815575468376756351329458388463183926734650885259197299190156278834395347124539788312547821615892987433892451448299072654647841278853422923346804843791401906582162991361545833171373782385982769526322665506622839730204224143207810420652797681575157370535113908614461504510350575956791167135181794412838230125753550742144673088169219681600289876453734302515744268153869156115545401920170564756637105362777177450791828031275138349801570917999821829603284649805823037294998460359548732875914233953547108955180343350803637033114811809072742674468372579655518207631396359840639160245916503561834548775751713490265096578253222259682954527179755820231460629287862639691686409903755817004230563254549602786571843588053745543953694757801458527517573828127922263778508561336376662673770317624087338239162394323393123428976409090066967997168998229691157854972264722211249285352021996309470097513838305551692735507028584456890859075827179177589737066886098149583291480679800453668679352747009124454384601730912536090289061633784321021959686527628894505143045330739363422467371894961350416511885737093890612580644106969765875475006635866113365017828035831311233543997088336408496101889465500451872602406107856177130411438631378263853006200550583408750308303864300543778507149519160645471465313704550366484692351397689955978103873215146003213843163185696760656325497462051015515587751144693891540668473129689092170049061116203986847909736992513000914391009496064530668269682446635302582565087814911596443454187065700069227603597461635383858901822089261172761821834875645798909740888711274019137485551926950503738934912623858521454412156861485704069041593366094817139342351216914120262639712775470308721211881708101914512982512444153786584522350529209421569256280692515503436514698060718898953260581462301952981045807783081635782159083855840084766380229954772326066361886145581349963442734174378360513964434156541561905429281951275607330440090082080051570704138040861155943171915078544645030039303436290227736979197491754179421607714170062594503184556064563609027085959770379416249805905492662274672777281399095238047380472441159064182558847702792948553722646607395768546524845608605661379550606713771655392397327427258927199191498085745191398321639418230861510538692910057737543252395539822880622187634798129087692743947429674934912945409090188182686060376715137071431620110358438400282539705821953748004432866191726095040667110802352126224725586049188112539566143710421190776246082596741396202751966921603899966510346027044066909819520772272800664170881024041575048203368076200188427125617275669794268273089542677292472784205245697729858947357325301506561764885801840701286657229666875968167483809555906480544151683822108600666677199484560970193928574439205292661327502635213388292433398744864287983882819596713670980599821110536061047256625568383925386122771883725121203013016308170904308137274690134584220586825925007634019760756633963316125509535301382030175600213406893005928272042539109063465429319897085637269730199113713132482630669944563696379642706470209501397166829003040563730704658485752066186238904660777420403867667430084201800404391608184981311463745129477623680067522430732851687016798845780055483535565876046969889447888215607886441146712103037262456749332200242215660762517221895331114828730061202732826675928210662762230131581180437996837446714208251118889827632248182243199175043414405512939395826240234031837422309710438050940025525747426881897076277325296071639931186405764343902092997802206739402201967037550148005246705275864239513069494026596056037566158037608575565640692405873822577253106059267405400027379703534486383833501398324364693015828967992334473730800003321482315810543018274367407968413436470867967504928551099009984095375133194328845122069245524784854742912331654236445523100112544896091040317852541334559823284730290442356923193469791196065889810933911231783039293785897624658345224895592443092206871496669575917739145695800336045013018945337482340792161988348522581118962968444553896974342312545276909638479983376022871192953643524223547895146113054937681111823246975022607356392166467521992745892745795941135665937554424098730364399934754316297447596280986624438539626191096288231303244202104426604903857282570396038705577808673397415593527468521837596856685064763516196417118826394470122920830629519955987714571723500634755052432950498453610368399303114604396193509697817860928756573522719913487968595444211533203936856263872604356993321303426589016679147796129090662993411224480118761082313764968919100992815824715077137269273811231040353208013269117218746287886679156078282101082951482008062487168519416498697292147140244004092018620835435872563049955962293894115640300472054426801132881066515494357334062735281832457033928082755876298042026017056454009039719912640573089337743067326267459791770760334366961550521966966927403876602929000957562777931625361652137543175864700741861108715786921301708059364853107897151747369901155286822800844173224619890706761029173145025662170069582896822221603779453862705760407932572686134951414548796001814643496048725126265740554388956691746680802458064327171904333201998525967571798710101469763959666957772588352312647881813047692476747186950108064302877103092826514412661886665275362280213992102410597714626367122408291515195588252101713330517449770194712863622888116074980463884851522060004849390018831882655346233718892169147219760989206199515396481340866760786984305999339904353005382165292160784328371394624597912189279109926270313273265968688736310225199872911020698246258870900437478092636151243512964836259462196110581601694505544431091709399923938800732305159456382230122240270458988755831713472162725100796218358927835315988878713964258940442873792520034363753628271974418874358780401585477313933110474026900077192769054226122291369088055806755621050508570233693515321827698918861869193544739495371365680725075786723297204853592369715026635094627034687977943217472816130000050225543638005772012634593826378250571139388888873264890583054238212516822045791258748874234387399762892344923734972820072108493679370579442437813207543613176591280396016199989255759411409986217940665615322572222483156503704701559670820956283149975607779326691454884403182357704118866120624404572778197958693425763243624163105177587613297631562318922463626979937999894751240218394297878441429018183679560470947548583821931589152256286312990992475547086575924560039854761860944153724408207858616454781662612442357689633745384494456692154118066257673342113758902393733986455875906067161168417031069741857699668569275041412262652299454620520423401758340150937419626726642461596950374962972239195767473244950776213140461428369528668321662615331733999162209811928680696809727474692968136451014864948712838558800422689674601543152105349093776974602368359796527068745714180667614392955492068078941733786712749114149961436198799927037821842775330089642584614016961392358848742577783935163208728589616564940470527560535018512570178700575333761843416829554246396587202215465646565573590175457894578296737328412040803613688948096218515455792168533953408944284198936678701131060505041685518882689234289282977319587043784624898359425175504787801537820017718989063710076290130940091720583206462914892447647043543589067466599122334590603649204611309370609478666855938858082951958031357802819968214749629041005526427193599214769052835369893804154767004046964088798604972974507723446090455133840638125445164100716223126742593356553069667870456038505235807557540895669489064573123147702088483742959889866948657398555921061363386959553880933650658367976577726075950261714878153787724947245517220879226620228619594328767293297312359775897281303185529501186813833124895777472872883170489468489685892844081109627505012579556158515389431893503822545164554431527423491426291197744887059275303596543505586110947092778060282603269055585452633428235626083266771541333601981285949825264443650357779547689926519245431609123823840714246047120821572376979806952937653130451458918180889940170888980963243039745173804362158952163009873411387571876415794205380301921156844188603414414750575285269227485725788560200303161835081351227413592185439379963536521412708589909603941220560236316080981423805058073053279882672007219159130694098628061450602829305013221885999638049467428625558047630275230825886018720716741346180780594661200782718350479389187294583615438486913015875711658250513541638731171351055826699280862421865811421239800794632793919338133758701862761112750283652505934563534851106543916665389489180568390022621414018471241204090590100594730901454153337402702127960969658103095839460182383009503143878428274892383833276711837066218488326843115836040815609241425806121062657218843899837960514405603816378056907508920765006870312793271351543991392448535035957867081714627395003694420807754509963778776390015554667854078491927440027880279761614806889438109151323091520873052454027659765153176322077346532065403899168470738954023919995929689016783049350528921771436289808732493215629617027731707598231849547806747886282506349933390949140848348403285441428079307553059403632640478339958379437941532435688595675564457506638751005838798553771058319273842637860986158884100477640092902477614359858201494337084489521034911783455819358149370430918826034903902069849178785862045190772072743157644709670130315560219658419374151425021616729507594084985350684940939131701102473398367338090404229679326418694513798754843512859556049393424405101300416080048785395573246076683990473094709972620198484740418659545886780642770313242299211740421717394228601048173655747847957994895559004798013353188853494088735776058637830736616392558688890952056401834422275036898942106276810776000536127770069425981817161125357469987908937035364882008134637263464850158587248116587321423079256561082330682848765537134026156205704779647177868721861965669568096895666864992074320778981490664944871184319937464101042385357214758933816290052715167382879979500522475455441215941979412766136966783874121332544912554221680529899362226703175727470694778153337739776147567325580365160044601160507100353301738234936658493272482583127142089247305296968984868505322698727220954512879239267998297545275048548540154458163891836972085826639428631805676737690172363525878349406406169677065621100165321166880849901865956697519365003261606270835962056154213083972540415763912711135181296009473404031130546601821781531506220183020498687068757732432830650252448348196243513857519914664407153347979827689400848554537245358319052782251442370564053591093367010018043307632949937318936577570891241657053088500095456753197322174039157080455016691803316412271017241702338252900837642062497844587529792420606224531598724535586452812099145019930240050796389081674081137628967489394449412154762081571569347858052896506371205474257895175953661604944905290223134852069560565875619439465871350404034794984402184004565402468464499617081310872903483206386551075985687750088312393147791197269707073076084884226317175858012504218742543833679612205735258400467444716907635246695073087164868643430243270692179215637753842177097149863402074190825278301733562922899384644809080958706375104292353677079301630611679867820210816091699951515406322774956790215403140453107261218336102752982269430187390922256579317175228433621000480403750357380332423696956573189836593141335803461464884987722993551917623202675979224095655776096208064169812188634771525432514315789965670196657839524345627423963581655820982952608751765520779003860817826245940632640981645209030961596145368193481199611830697500184218438603236950187981496367667807861459546160642571523234339471526000508197904841711316239822565756536409403199203533698383007502302990430907744562396733053449906700526046536387628383835642309299172712780507364112111131671403839229358866402165267961843477431272707394887067441990426001788680600487699639482894521643619215843500086967542532198068482035770860517636558650739360144297803132769294421876568226941089466485150820536173661113528038631364099298512586750376561961839886304950636565757567802788571955267049157550971253177069866012602935851202442244975164593498731824089360852370164450241713628484057699945738244430475630482529592377582244789311231444257983267178449010347922813466764459432050703729911532848864612523967599911535616638768203090152734692164511130826814627236073098676919638392816843248969444053487082730487564780909379438378370557320838342633353125577448190683014134940881736455470720518378307600545568130533660381634063455048010786244417684614519672665945301972763033240681970106853815605186209250948568142175250086382869854952112344931273519895897805409314767191849687719515249199179349335935333291206972502345144616562820267179553163355575979467899091588579204262429544397231398293602157567075287093377694505645231653799950030573155630541756848852517330404698048230689529529461045303157205131621440976266071260170378637340282292326983361401179366423008222125961752783524363549035792513460119593870814437015872016218279743887373660959806600324383076584123750888844285809575792707726403905285878938047036177660013201004212190381255022547146059140706876856462349416823374851217456338128926664823844500007742954221929746223213294312349109426923988749795207232173275043551920394096440905275729514650223081212939204622682195545602958387055741070150081734231582626247444719899246040734636733798545924628751984283695798429490040688461937251638693997944518025585037639972184481295776324929479301513046036983515228729889641506586123826318218557055562031333541952689148640623363020958043640035507766765232446788755019749966827024782893141900687973656390023456578546974339352850628347751459428453399558428626749327487289459790148809256133377756469880706750563730808877882536913999959794357140086626839032286406877792900066477941775353181511732440511603245088233762405080360098956390111052675390258997411288371417707090616525749806104268393206170304448756173743769347214719472144403782820681998439154771923602924678094103653893576378278424811069200794730852113970766135733323626877305272426273381738168420551303323351445697735215548527212508470623593341275863586405458358335231281207464043042281690602610724771774844447198168195738320928868985619464131903853878487279644513374406128659760367522615425240355195647182680560479093533097324595149293207889599524450443676602245765805765533294757654833683913471301286139081910857915871312475203683528481083083261264505292414284924918661931007293981118140077839024950743555120070598955087533923147183730715754816176912526241248897052463079065542017566770124813698664826190961208948881978156803309215776702417158705182157768000717552477673142386700379659073626930740891052439396817577149779078200118423321633812953590929940486853400508476933367082705786540478899524453486034067688853742740903522731816795899092812972085138570538080362690194467037737890237194717630704723919653044553481802807027267172536282448718125637747191191658376771630451518601764404146998580817663267410519394072551552663808003473881647343886251148829332072342989598803845242635285798011956262263644197345307710244390214478321742179938752599071197732191675476176131685376777249692298839393256605067848404323585149052825427102519683236987798932155509231569860020563379201434118446779750401438212863677629280897119784295324772210926256834503334817342326505717350545110699761257424733315653749003840907472192101729648006819115324652324362962773360636151301209094217679586339749927401741401064882667527216470139428174676057388738738527096556630139565050743217916998373669607276658843491771651593057905133769894356156066379556046045420359540360931997601493102476874082122713148273203566456980672845235474495222406312087759732746371383595500280416499378380065044215851862309804188094894119986690490927028990335695383889269574235399425517008152082015257397162681085536946368496091014025546266731089229713339264319577863165318366790398638990191256659279359750361151185135137624939300935166892014670851325510868854549346816703787851047891056579337510654056000231877990053729342108457367584441721605298386661502179528283213152835551732265521653696266395828177801054687782344158966297491122309055041568172760963344595490768584803387482012937240456776144214398384741732888537456530611294286000571494649028322754549198328661957506553247578252694295367745599473776260352457896631371811088067825370556198835013385274232858541345780369104711615290654656767593064522181069754964687607909752779786964127286793109848891347847117836538934056350485644838872061170117464592564276085905058703214380995924029490051959950653038833921145436274903538929144166624184713233648034685610297907150283761856693348229404297896826026403976117219532600575641728034752176934183966727560845730818702751350581599806820343857555432643035001001130726894213519825437871705122110014783790253919532439242561697308772761680174031793164695750069855695021796835438409226076143181171368985465780789244661842237352935658029377716830661916068861268066415146531615502771623369346566264974444155935267065041780031419512013812237348476756224057940184807048541345967520572039445236045461901176325679730844514864117127250615661727845149773192447300524968791201730547470710320994207136040313519517877979170037493816448776934683512558245871381041197132047968549243191704960461752463111471766235173694316385890521559659435396866286779778731246898459192655630428342854001752397172203341976846533933989369880531878235645635268172116182059247439441222529662906449631610674405235856439969187066055037976484808220099796873892728698884642412405458386540737045274350737335268694760796699967125928365310422090553190342800116751879455588252383095257730075399446624159816293891997873262140049418727924939027165152170793389485211343296643897753163435230674752333873112103811302635308222057389722055776859164168943973239585095843146426710670755217813037085307310756049813888938958826859306814120229255581802837773127437167632071906098957277707226174006274442806140667424195850851483719529897051553980988466240850271567710085675220558255741647097679782514704686091169879937529212563476793894404793116231251826126996464189260856838229608756705550035971226699309710535249469596792787906164142117492446453625167957067174650905943953080036681191166916079924642113840718102423707785937851386494753495690004093999002955653436015753033804280588505825137166718620706370843480712918878252437473471823657004040544008442665873242898757268665975246509068589826259397951580122289554103910895043466213694945113225030026415392187232875482881887008199994643606163989331026621666213808869155322091924874771047087520424861203792905482870677509693076177461713019110753381374699293194032213049706565463922986870574170933018563753905187821793960628400872426295192334388012375706454558755436378317011484111792716330798560167782775656858347740927254818250207682507464795052483638297320304305077339647368265202435695755761836399347622463684520069439267732235360579800356072117489437095542344251294793373773790623401995407370820350583590935104268257526284699774475658685673743929988669640741465150626811577231130470562536821104397954447735327479226725299449720324027118780838873609162054530599582846777071030229698693226552195955837039384157651109233441609641917276738859481980667968266705141916369875565118064347780054497163341327592901257743972454720926170936768723995479889162541472537947652339494965127181352141025382887376098029698569801355569477029535634717952294292795163012808169364159292717432358111708091446042868036916182405964390037488794705656428040553837141676104921887428856633224342969924767418013658822683818465023102955191387289114936455088318328203858702497202122419565625961567597599923767870872727609944114102848866134384180962391744416565631820265556312144584819240298183953632942603758358663671977513703833148514413771644263858549219195906671286101514543690938478301131218039172763551525521622276060459774545080045257303686898325921707879198858446668761062490897990129699816186781707021180309594297260694263019033280112362106763995997753911774853680872047803202356160843039095142762569574346723557028728581979105704719628956466550726926142619721440117205166346201806428724239471833130350673843470526612748881466716395287739709443521717491632065681917570246050671071802305281217590823204710227446253382247206735224231873682186879993816231757098574706879322740743609606572578214430143574024608921073519190013882756517365255727658290652346907914898996403388580251968371630585892785377096153874673610828146796083385983865884832636513100787859397071911037914412252338534828406640047212675621562348486452390791615226541186224465337070467481051735828956052647574264333036466887026212866516952058658715676141947659146183490026613029143528592874397191432787318034029429874362252303461488445466457795976450418822046268294894409056137031095743161236434118195370395903142432386846274569370030267628236336728586362924058612484379058389702399128961797543126737419003666723434843883995418650259556679507126450384132105549513237539843053310964884141250883454652760109664937268158568734323741983107724379834433317165501678277332922322181813639516914674495653388445449860776980375083904212588383759927569364604754134022255191055758681710025937900396710596131285592236801152029261596899864503158480058678743111678518026905979776579110814100460920460018251046654444810719976170230110219224094674399603215627730850935514251928223775865882783240726251729407788889971945522238349624358951929190136328373188280982772903517335995440175881098103445284114904054354558149032189123185188660605417574356103865227021534821100099775419633950545595847596267215789283602153535177346844804139080437658586582001036848650449685822027913391676924877436945016812511419176030160830007224235137577862607228976697104902914090561709495257834810926838652006666147391595858958529746769732252367655398427303339223973757821438690442138899373777521642139705703736668054793335038432623134031869854305932980354746689899177576377126069559649764311850387587087580897707637321024796945410455857798485509649860734822259893334529959710777061887609481020990819950120204414482888141060861681419123499250954728456762319105709346862189606763970058272714432790930549929565921482233139355191805307259811090111481224399175104985574130946351466507682070775476081543995089622770176463554200917605068367986255758502581729234984441330697002779525403511082234658124116076168728495332431885152206860442812031162251627474685711028520525369694878589093334931775803096817335554575445561786464989299098176162702352456766813435661412951201030024078675264099273669944354805969459057133052115028782648964687708837964033305258182764359386477656847770379835714380595149450246644859250033815952009143196876031802473617096141744100513933766354068345983756364478578414423843809359026259612480557792449276722660452318139892760435800547882615740630106020233942815275787489530683799518189364857285918529289558832146609275084302200915805540036813963850857451700983432651515288108149215640687678514284859156203933192192681548284201811773897007240746822215157066968591867560921251350365040857194242686915033794536436816308538316319511168642709380067371517431194560240892028396005566889660606514513573599099306148995960115483291477637187541763406775972141818557250992800879576212704555160870742261566178916803777706416603383362049951644662050195774791127658944330830537006365724746848064368995037978892342411734408147511332793340112723300884174894297809383921484284004565585375799356186681964336306321124755078368719974555403439508967292884756461888002669846015584024291620547769959498290148769060915812830987722002962115592609529536093097035163053543004277587336558836839744227820956190102982523681119925370742186679369195985761839459073365753319023999532791592478422519807537971929067772021031977129452019420538891994107610882737068322002674334928636261429365351322772621863747547215460759367490149922319950790068989536917667322188337103336489990343081462669977178664992880694647074762042692457608247095365598191067055517011225339349637202945641196773584284094765984959908481066397095101486965543150399356646511341862229076052065107781823346629075542850975948175306721161382910413043807909052182207282394604302448610202976506615534065902917385333063493818365974596433250815714812917279229914716210479182839443100090590450166741978226386960966029464478519228984853801489905083998550340152382980337325286526464997495094012285851315390175447189412571330076752703229634345583513450939661393520092952115760304336568018494967810807182632311952222810496069828802687997936591776584163889535431711648184890527644428450184014523336208607695200194231546412172794733728603980892895142588915501234768707232863737387569817646797052568814289983062071658613154171660556054394950113855598314073314692978321929666701828332342378378820067369721425114974739155999601884618236087066659667017543864533159822306695884057500217958885630362528054928841365641347025146389595002912092973789436592449827459260050556931992462811140189941669210924842233798065298530292039855799153369843294015585364844927155726679210774214429749577004309575186481100655285895263987639987591560259535448906030352725803999069530746598998803309400240066726726579814414693898556797734786262887051893050054638700118040867342224221909889875195432158312726475561123954995888956264383347329700175203781322256941989597767671609682067845969754604374686903491830083831044135106038812548803429190783286605860243566395101368531140102668186052369189550100839304441473183489150536862252626237453239127070534753316767295405011747278811010647109874865987703065976023321818942920929039513848684521846109005654854565448466868507707945422418129819406462217684608641832649320433933880027178037639215126915814904893084170085175272921210674765919523122091566577310122725725820327477779530398629918357225176804687572096028821531801101621479408219358245617509707918232841948367671695708234194404975324686166789521816340317396431814871892437674599892947612291843119068618860087280604182792093720058308531609537220287571200004915673677546838752486633366300814832862383152016411032777142056250057523300055506203428423354631057940368482575398967292611514130253027242386363366590812402815933689515884254488846423881271884849561709514642905234548665048979087624905313726843827192336751905926721931400205145094481437828333390983870430434932675077155477536625036122772194592444386171533947415693089617116383143225419377984254501599989806959642607845683883501767162761996537571917473311484359875423703379513008230203039022758032828942817729479296039336804081729557853523917484039836719349893457172381128250498788179878912755336151811891519549234892014267578142127573616401779918012110967949317363580578965952281688005173899404979395072417664608495690626426652157276395195306670974433812156191845703856923145950716232135328985092156718191404783288480795249177181918689727946038583314457301843387973123214995024947099054293083206826407739027009051859316502272137057707263598066534450300620418665673367497939959480843280584553744157543850238921728539246184042048089626911683996896109065145210248706444602563780730665985668842165665903194666694591255788207544951932185815037228546936765998324991847345206504308675438049736246424505253817327645796047506181387125334184091135544191560933598800597165961403564068225958844606902863879069350142798339002954160619540879361790371255196007409937942954741037178014717968535467812471983549729827279797579338300499875849344448556514088501797318311929937592046619795588179125204685319724697466128451613472861276231021603292374735634961867276698335349767985667405457530572660114176628416689010418844654097891876580328706380609412390060932600735160860401553092661641445112877064663678576582935632673763013325894200738714096544468735531684767407293115498025514011376416698555089236467327180315323719367368298565014987226586834348256343797356340645108650902814377124666195382239022855181302285971413333788667447974871978884218869706639002423574082867147113357021651988765531475936635354277009211212883469496779717073121569110292266420430220252323927975665007066976913427399297979132872462651588315803308991369422689482371826221687330125366824465875386233265711832367665409693879556618425054669975406690252684698828637800521635607246596564485393635832014173997708263722868038505177044728647064893624112989190208180554356854093123563998880598028519541648349538379098817824148361025291283925954130010568408927917046727571375194447298520912495680925081933760442988755713971572495605589721415104371516861226381054136082103317684076375067360654687467194709763804934265997077167819113559912883811884197562217888405140771940716442070899640114182475227793189884974252889836026435698305510151988356843096378992242101296017931244963002190685157086673277994133436189421736138829127775030016196086470050040224725162639639099384728479883765121511940674151145809649155564482577718589956722469378307839043406095495574107627077305568395879122635912577540276040506069773740845439023200298238624537336494163470733965469847532578295432806738120519945405295589974405557998598848581696233187137910166841457611614171153465205982530686860494694442948105776711668271614399668302556183686741666444537519621157474100833851259256956311589529758204479800550396935818188262967290806081914240935837659794286516021872782174257256664415986987044428779620040509082038596555698301041775556163705510979594825734722876875936608219369052877189595915303478317976315858405234230622299020599047468084144153826987073809908054625411310335146540621608447743107868303153798969267809989637715861927637201257910914313139510214938969692365244150344358870852646373002026185240519246708919390280705765806821791364298479457803852388099683008616988527342587317282614226085896988882042244399800369974226865139622995224185948336217426552235336260922482348235975173990828385143942217550501011512910313870380611645608939396130808413503603888627617127683696576231907980394406075016553253164876825333574659852941682968565571189784243690504162143060936883479373275824705967899929672197783355585308306425505474372102150314511977554275395397705152955620628745243671232912375738205435644843038247990093006494512737286635198954161719857142174634208669281871962088122509366627049874252276681872528860991861799404929775338661715006680431728575009450973973867436068410715185411822942486238921147611360708182038088645595050755750562185946951108151673658487207060042087933263106794264108294109672448032183075743048121843411359141428540365402632144219558548096327192487687154970734469161626953148258389339580537023259767302781336472750173563139031860658245128885841871581242892387554132523001998536238718904458712899376533153724828623643453017338161668011202918148250604854685376856623577903127175536399533091146943750964218490201087559375141847068323608411576563511370114711295370141525677641613768022423680653094172101311650335679645513136561454398845490956208555047877234061434873550771061498737414222718259637824782086363521953468821474512161733242729117534712373381424069569532504676378409770719453713740909488363879720784289473173402244002075115336963943711307964243019696568530043796589397127161512351227532026134269646597926819709573978405355980427783607272724888383530199832850299081835092745924563860918512336694947594345727795621708999872257808098021583528652535026672300205314525729983811820971970888342166461411337434708256479785792728572670151753084840486852725884033815453768083798779929387028660658670376508336652646967706825766310136597161695232410206946986684189772887418763769500206019502045055032832916290988783819653587628666978661302885991472357879808954639976952387181646952862132119712736410463424211683511590793067138551506443657731034114994194929280796759917701790646346605554762691887308382907832680853924483364979774898949445288104719170116137992531713012864889356188004013856098594823465496589654658885311340174697845420127344489800101063495495494234414507829143168985524530006820526408869137143581577699669724012226370330226766799783467996035737285151880863250323747009983994310178508322349846357111494874725498081585305984654182153224592601706846014650003873500368803839381966691420935566745012042694936400868120794005050700683981814530068870016924832777655837852593245992632637383662272865026267777362361251909828188257397564008379095243876824345653468453860887297123368538117926114874806770849895184510743806290671061602815918774277683035530725160870472647533311360996649195927363393585779856794792947878738559978949338618526873453376374597006941685998347308944061829918474811258892953157983037189129218885408796583504971264345928407029874316813333455422089428511129922927350186561844639758876692018373681621287817595572233596023006047595454846261849976178583921500005746594945144493056392605056544058721454238029818246025180588488599409875961618672883180148249066326667019676076548148611274420385496845477002626055904694318074217039931877553088039713598710535076371553326549811076512127950704895196904004868224608196590471291594697531172910696853958110255785550911053888506641350966238484602399051384867896952484040818827092469865975034928518612824292358028557950522293669890005692605696749491440651665175729027995566805462700793198585827622631287125070271065881367319612757289574272365163189426481364772646746026033979718699343372228011601754555015016132027987061689476347029508190911953245175339971071392015611443295493007081327387148576665264993229783941677422750827175145500464096599547377212145419429189308059262877226067022230233247746461391101133357252068572362801675946186700472146250929507492915662423218452392047833590327897937803542371983895513933429520061660904919813417833155202232109760893750311522410630660606699963181546163723367596254685413115959456312362537952466932561511704872601247740477704687838346614925283994719093324544629670060564816375224671600370188190736091735812274652558565898013149771619784179520584362745370924778284118404643705166621369354301176321657634994671182653870301043247948017145741081121411885527068361130900027763711815924853691620942322725422190634562522488160285351843468337005441812468723579432321635557895734959603656515775530063462702831100399703261413905112557994798716088954922123599820911364844790515877859448769742537831148799128223640916812380163131755064664241379152589918696167051135486395035195412750226970048634809862516443545288130652178129901011868442528633665797329046752818166800263523325960043002398167000511689730786225763272158420815964737848754722462419251322764298783254848805852135673533835423594781592120517581330627517374300308198340900879527578752658006023936225868864626678649938301845071876492166611097669040483860514831408468506406210946352912186062545805484086636993591467411840015250773219933234801667655027973602157923765017211852208284087281055471394370017751119962046070095257481342804097731383999889715601943935225344749666719742800150673738735231471874511162725385284063045072391037297193485358090471476255816609477016547627090675558552658096657644516274594304367147373858555875335291643279435060752780091148051052645611923977546577158203199334961438535574193267939726686730718812137758871477739996975191592273865246781598997251612005665940463797302664430159629061561150437298896353698494021360700123876232445479059169051680729930846179525044301606681322019503003542114015355344933045521260320289426755198303028465816913098513934502248118360388558851739253807231074916640041469337891443762428637633019639082808918172547416490432287000921688136126554067666316622708721444772369396240189076795507515703111383277564003207237264229764253086401429741057154346669530666054300691411061125595097988933774072065518643398115889995657223931597892843807222212314830600803952964092645972392017496233015262729187762161854460158139967001128289453716011741632736728654931505763596600688086206791366961625743033125433402897337956117504070234909894434533075420826549226738026580291288909581425837531951916069871491769470286607870858761046190123478046668579749616361230519989458952436498739655713349931623480620032067929995743077747229674970876606281249009354344017510702144810223363660951723907543011930064108989717498403570642659766771597024408670505531368649259431897414453845017801201829653670651122245390630788421902388101720954829337274543248766558910446368386370457281697756892344833790016738514386495436391043919012599556761118741263074435307324631280094100681622794789631993768625630457463499329113757640529774159616926722397846205190484266024473732173663021568514922274421340000433474190042071313084900143434774912222959077108296178518598909102809925048375664830973616396228614914916695426609300830870169311566034186368855409356607611904561131718715538321421197596714424760340468125135046604657844284994722423059337520813966080264501239831480378934956015296377785223641145776734860666567060033788710818570118185419691435117523418518446713744615558837482632670728047232012992225333770987964411065280875751516029997331693264334483975292912218670548893568484016450237776827725978313894049678239488999725596671321461234220283027362735211533623802033284579632515958863068315205171774563533131705391173134764963602043757985837716896256091142599047529978623592372784397859914907697045061232522706503914821160689568684461641574349106905448431601295426205147321435625489339744983072588472263959880493324746747184002838820870642605039564170215611743563771580980567795854188021202932457636698701860880183544530228089250910454701477681335463982486043179448115862835312998690746977081934805430477087580951939386822774364831245876824778644320777711016420093470611310245317271011441790371203792254312351768976523714137827700891185291812028188377799385595324588014315794105616813291902799214202623163948827401423261686981035321706969101750173081538311402897940956527931947099409522935878567896338914790738422013576441165580027397834622987056654795840908885684443019890185365234287974038927113053489387402194650048535312665408163639745870167646639134851219764101268643418959653434804665086565788971904285540019941427879163338104298825059301975298621769875292069007589004809070802937687912269064387297034398291606504303152346186303987966538407762131541971030175525513052723086846678534127293543448483097504304316788183617003162313239097437050376452129197563562966559523541348115738507415100962456387773364256388360723626914604344050038680501343285277897751988706795337662740413920676130592435305220281922004783008939228762909480671426191352677440357206775833070028593641810435453564477791921099454846309619948091590661687797540478630208832789246897250453287792986840321527399671616658460627223438563269029378706772410364013630297915017673339582837704633180630552507716117270737741744850466715416528405726255001746398352548547610248655153302274927487396707016377966596562410129665616628150179923092856423162124939607149910065023049387780224022257479330292500988776942014988083434850942078209395066555356222145937855957682770739008620162112487687327224742169585557875124617519585778723801179478567278686929617895084089251352221572476279778240649624378028502829561284922697270373371792914014898753726086054817205022406432068818515451303543194871132485891209234187899749669321112018859788428606955989989411712509522740317756171384689167637040486764405126352886255495096135942147865516895763358302337847461088810063764799428337292189019154787694702614765504110298304039528132678204617288237712214976817737373225872874790997684481875876312209426665339856500035740531179926724426706575807304970423611002413477154861573139318773871679634470450727033768228586942748783195689466887524099997369018090744576706897005351530553102210882766772904743544050376018885834484042428213076941209795779426347426399026945112932954175561732271713890144167928640760084847479813845736425689343040047293792237172110953130745938232054157480227089614847221552665504922745675610918862901006798301151790217102385309679195772676134750573811652739590988865494559623044429491618901278521924407397159660210783154479078633595918312177484795356023287685889532200030858211973414448329715067832421847534428560608398669283841704752612186307476481847778891725580317501551670277747986439545966828914187250399127982742536553356411913575221160809343864236047432140686992290415596553857033082252360716978964074504236602128110934561442624675371707479813316294864638455942371600162258381627004122301930374307382683684132780767089886854572537275938612583423008236307075867296027762101135532781451787593422932018566069760929219694928700731779223518019779320636148604865390658104551676482804560056249390253455756064303124148389567595860742369738741223897487058036805922806072582590300332587484597753129219121478409446999274274189292747731767240589544612490823197832493624468363754656723981667104811298066734491494812592500338679309048475642408393454930404944833423189099175270636657485149909920602281482726978154194530734958015586600496374194708018379605071298508814649286874176115158154725688509088808703760202062768767765661239202302186647400262739136793453290648369755593384410506511632075111458070682645707593870335032603845403903914389414775157447303514493960227704320736626523032426552142284118757663914026389498195398767873575931763921773943491557324648338769452017797555655990088160639544878986113014370219537296619563606664147804218267218325805704924005485089811917673083806505505243705088565337516606643577062747778513611079780498083422354903631756975454829117701779866160810871686425944718759965361346514419377709664084699862867957826984768302414777225570382252638753951543741198600578541604000456770289921160342786724926632168482440763016380298555033737146773492663786303655586478041538180066174567715547246433151706918426258285077797440834830396508081575577273852520220146172347873650149134903478995142850198272484304129452250929092657029344908174846759401342826859532774904564892772942415079697425118497500515010237021386903671952187572598231443607508075383106658901552793334242799150105355511654849918596831165873985196284134450442959878680632339811601320111475190463760134682416669039686506244927391603860301918912064195919038635496518277176401903761513113803906434865264125699254977874683987091815600061961708378711735658763652772508917311871245285815312797645805820454583864297248806848049261117804155304564594360539090095077827492340100944992834778319527193293403209362471364049539882528574066465039534680023468962397972181094553670188353810167413373712374691578295635808903511943121660348594070016302924525551222002660632514278574649097126090029861778756111063486441510211615145125713082422847923663955184380857814806645158060396298040322176735878412022860778531345496263799244095881441074950728264426144004819596955155368326563484700926344260797837144921397829598692951211791231751318152556330936663390573552390534963368157188870793649926741875426706829609090086455177869315447554162933707056768146367095626456060786084720071537114123759393853836889712602669134960103568835380376455587404827495429142399402258144484429053620655428962214823989565495012160408463072873293269262902467677522595348495650813483979824052074070348155279440487529533146077378496277255822382640157222014032708357592315221939440659254381119990222511330506858143443620910073093114784388287359089058649179261293989405044931699675159020038287746886128321533530583448827634587083474323112055679719722933334063362931885110929315062438569499013789948994324615903930365232181134886831941812250050460690751875765875764691499334960158239638121551116274481317331724997527761080880935210473980905874272308560020040211916350970734444817667975690854894029696669343592445252820555282220137858377120587159201146139832650902822883802996033530283370283334849177950141276722880790414497423984293318175359708714159499743086889085224595153195003534418136299601530911708321500725693829068651006657780161990868583213474025667252421630848302962954120802653414182160074287711859923566034979998406302421749160995123052563161630480471415912187770762268411212012348519851610165159614272915963788976243060516780284503523020234915414757605853638817666146339529301669145138506110339067319615247818958397135047164427797726373172661271839280113050064617890762293185463495437379578555274093186036774087865286644711645361638244995095339533636508026309306427689286967481032879163090628861865306366091222831823943976997582930559303650765139390108110959570818251125486746605815808460617849556115585922197814172075289691956405031681357142938343057947804266797577880117950083716799696575247890916819841649734666666574812724508463413696404702335375278147028587834918745617460054718669187289013099586732999416206287928515371179428544967972956066223426151313983752324941803070825339042617117230382905882706125092361133924306270175952701213361470353216253719126527898255138379536257910676906426748185864096643830520583108288259368905948108157926966133868510947024091690554961915574566577422867600592837505643544213711821031601948798604207547791785064529482709934094837483687103666091237981132333205427971499206705106545644469273371960350837933772843225576785651452463406457275774328611776308741126535760406197307742911154190244608884848946769992644136249520864678155292306223012381936034994533184171175306644898473041414518916860629636763182347591428171814146002642122808026616756354524961526931929135365121260741027242065884579114601554890741209111415819203038449331170376441646288559384740065209547923716671635175656645880461995239402754758313473884546515391066380548046288048307025668918308478760599114463594955852992507519465422083966720198479732353078244553985381972399365293504437724070713094770750213218853442198462298615466463504281791821230827628125857332575899111793508698665628160063640908960804565722418347987428889783411343168165856167917451564418641251850850096947947963629645718273781765683595847964939940709844332173807460012466876375548363374184083415909722483733522466470724341073906732163367975672060290282200337250398430217121236177028042907939945331507021355532163854287902551016330308435539915940189497837252332465700716664781379420749192034143696954762033362127344833005410618392353526883023578825592501617003806936449885726576412102262858472327308556698523437525023646733708360411780557619527486720024418979977755449982818713167817096648946649287112970812340325965961836181750045153543976320570810972264615584631228643965185850042784195532668944652609306193187672494192109966632668038302253986590987499246774910350336052121131578517321943459960116900960601110848591993487874320942232751939797850478532961986442729838908308301450709171048630355711839436606612239564167471986771982989579679969414875759322444219358015120714720062269719161013360198026419067566893321703973234950440242705701639374698527604465174124473212998508502878115213199087231652440183590566979840970977193030281506592198354021387622711966175267037510734389977123927047945594167140202279410756670343627241146349424898105466250239772581291877563290207969154274409023409168809924649968746356285584465513098205819953653523901802490304764091838943348918290101138724644018362610901759318133815611517209526329000445218419779010408756734377770450074558547507363267505712186227292161167078979710729543763527635690119682581570215568239592090411154520228461055701869864616766925650108690253626191804800789051851635477348041666547391281040148975944681431664835006182026549444997744279985423832435776119183298755003075990572262506297748429685875071134162223752218230222249658705632250754568311603841483403076555039293323424900705952212008456765627156892445772719234442174825843071039032954462904186817025056568887907774885317585732712383917247023385540899742592770113840339056791788861951359125868321006027758421603363072366304299473155929915163292712719841716511464676351536863560905971542696447491703638445244529925055314600142169314234378521077403567616666080519064580414184778593643326388478121840018538217322893523805103804391121525520863124115178194899526336066409288707556676809127705531434649906817526979088973106243457460090805818949397232661643851191947422000066683302573145050843242006230934798779131348948483029207891963727632036630250358037699197894410975507477454644668373692942493205256612711401348087873826259424621666763267857742774032249831519138285847358254592214605046498737498377692971042901504001944628867294240853236588211218371271545207122497016359721271586129780678353781471875834931015171917051371307901412989161441450314906236087586249859799056072888003391649448900718994772471638171391261640172719305794770701103982741079890126437835122345982563578570381921562036228064923089160649465844523346218656286652906993462304405576072351386015360310343620507494587840978082671178741947356922099863171068600670508479227294160418383565238945400776852530259204459175423210212642318729689591516950002510310063860135622013687667216451303340352217101486503943013228450096586519928617556695489919786611354225941734367680551129139069779960176043721169312475132952417956083688808861333459810455672405948076657908791602476655788583242892377901046546611496494842052292987448500192073867114944292342920244060346331303027587066264331543150790116838236796697790714597888224649799782180262201240945150233854609215268175520899173648118584707240273912399597953691889665770132981817457955753858479630747153852169651097442555304795922176317983555403156072908322509403809621950627641482934342476484750723708101014197807432529536904318319009031748185024932380811369434804841664989308467804867946766513409021171617647423433132356508888784782047214709483688724348379249512255637755047001562919283428437074783382817176200546718375755223066441363055820269124466447683609211181742718097839768546268034773499300331126870909683852117539597058791426102281389789358832520559519046607536883648260094215833005996239452860514303924747833435030071205899211684112285993972095862017541969291714562485917684683743233936108908244117158485788834571318899295450567924612099294962526936708591506178448317896375695530407521339138208425438508875472973641882961495138409219383152007262714236104913785420380144443093913577870461410545636993809266835968871033337075061246165704533579724804142172047027814357567151921805395537146154579259111255315939846202710995253699728118769468567766181643180104904072369196892518114912586899113557024058995719798446172560084796578164174030449363671175781052997292662152168786081552254697074005537808205131610917366856897828390095900270805989356065226582477041530614545007296324853353046627666766216316818789279026801585958623069854774725887911854275166587513623682225731414315105723633674657230371958557517847349507026169126810052291821923907422756835547960229977725948191456682260844803467009755398286013637919340796830621082195962611890493674946189919458507777032486091530853511696322398881339384084250569484903811326659030618785777827042300620445149178200239470456633661742802261431308610965579884334644138570150402463690768963570356295910518970115838880268846878840535325678604668083088181023737436171595835498969495291028795925346840665015604767816783298637800011993774612120924671574068609410077732856404994140795793388825453667569407668892894015385410729761509884226352786985691487237802067737811661632486096063873958835331440886984614485457335662755462716168709777093336437390135700214988596810660069550327020036741296920428576967987328854262656496493795872865261461110687855224242026554813196967123912974985296523596754474279439002992101897709107766961645639133428972764333130665412704009166956635304837838809494805040662120900135761631518469608555497693150180700753752432033258986122085481558292180016724967093129303446545198335863813062520953900280187767605743093037125916508019132916071535081294777268993094015045417600375707811306442609662258937868759282985333060172040069804688678017646066291104347378732425853398632743571444226152390255396471347393857701264357506672634916313558251989389665308441685870797370112752458512049447648665284273220829833592484928136155002260446857712729985438930652112431655052687539401330315914255159923889402507984417187833864346705534565486655580514229272122351508362200659549151787141455743718225930884412277680175705113704280833339304665402714287930646519659542542102130188700153971393153462485504030269440349689051035771609396981255403366211385420345468052630619214999427209532130158420561513104180778166766154599656094453198537762180609192455950186338751287347573364202055349732697343031649003505692369827574737701589093571133824783157697965341677722458966298240105404857867255389837205940009972398521369180962725603407978023402930287508474813424563121823256700578983801750033553604846089697504466971934611631638887358339153492842300932433879555873104572821015607044874518023956866614072869427924763267562479525296025694882490681806621257668279106843906839859709597246779540002078928680437000220685834215786846035198707833790907876172352507825961347277967443552675714072916229853693698811273203860775489102717416921424209459916221263610848658493197654793970808461803663573374764877489928218724332192867335184655158057965894771995370037206501915281542981446756388625340679328278126447022140583103100244252849052361445446848304820901167707859702031143984217878731245672101237597898441318291013526284178971647561330829935317671328423303561327476928848161660962908699929630456214062651729786010956509821793886149791107693967168760788776989342157003728579191052864389114868108058269589928683074697321250049752855270684113772737636545840737973578761003026825664651371434425883236595955914300757891159864966774765228543163289274215425634732484237623031821767193073483308272636540201297565790793544107817969127419644044818024430959297237600444142943303005996203643975509630394733231317134094145223993958867127870039125231758066873049318156483728342434727324241328311487270623125763251387472646100830399972591607761357365190853583794678963368289611840155142511091453990934010910507250611858545222678440248833136994086422995902885621300548447721356171294872896899977072483349713435743526851736012834327265357351285686621113864914848074220772323829544490314078126275396620612037263558235228031946271058855952535203869197086274222909099383032129362207099362941582659251359781635061646783428671233766915744747287197549704746476694549677017866239456955312027467093394612276312314076769990743558487017466449540521269309148554720150262036773570441706729024634773858074303473404851892726832331289928431835669968275166681021415435558704293428465629741975728019145355538631767913493269987476259846482006999156150238257550621816424347828460933397134137093673341053864051658349130699161779512759933374618797926725529353181517792720629662612248487627052050427366513659961265718128825200173240910418401627048428575138498754198944720082623599749588499142163299119733028578125825142886452343618884208933445295644357057790725504197999098877982188745667809259725741926252321250040079081285933427036772654736898498091993278219575466183519080763069789386400959317559068474108351872658609968957585763081869025636831506258131620360498573852163286339884303291683824145869236481157570697480566014365447826562897926683180006976730047426044681751829734915688721274335141182807062360364567328471971993193674360658747852009301347489244049398812446316289498922612662124739564430436895056229536016167097828202147978753724613017815263083020857744738969984428520474067785574271601512689998090453643410536576958675992351265758982998329801040842043132338025363607802412206802397615344695871602776946125248810686281329499893726102948020799979767367540566127931580325384636279844141788941207597203358859348442632511030990407229994668046715549540457526425824152450001206910196180587736586571956130067496037140699320977848106176353843515781876945978535772097540500333639913495176874675300850213044329302909294676771298169855890914822139331019986303347837822517445924651669364183679563816480970523122920977795600450353137310578935031367668630266288784307339241415336967760513971546217606663315056210201162086204906815111652789188050935592854648543220179178482196894697044825218248591953881301613568315725443846788641841072787777528851615349751952219068263680038375469144529363976939329815528263461226147431779022202251709660661774578405316087687763460828526292192635421667776155288935278338828068170527340334948248949070149265648496762169789462388533637036513761527378849559366044245524785776598720785666394264603437193992330099163546449884569090359274773249639198084437022102585668140084221252168734367242070844258931237103959557698469557163123709916086695392989321890750763550116944380163967097905269166262447705752550609026817931819858997471673257461600518456102433745998226601246798886325787508400425321325716157291358896352469460515847006258816218335024327488503304169191183135915729848859650600722785617669622887581499836879395526325339008804017765163196196705594965595579083554089020124203923476868757336672863996599782377952032242176687941970618670844232510772100040429636014101079726168922837613944055012946815085055263474874634384699064248715615866510744493079564905779610902506753344525221601825892757526273235512216730217565212321579496512302777345005641271032665442520284728570070486474037736927239786341090885760156763926331302836214566232865595304860183997772158285983814030720479564263670649920262415211703450200472090111740135986982974452004178553601810462227822265758183133533288742827951884542895903252045777615391971778108163934769650117618300224733597092859233524234723277149185069156838565744742095121674536911353763012927539583302496243954426571386576138298816165877351773550976029186339485783431186909682217632493711422877304708987418698412955574415971189833880932850615207078350773936775361172337556519740816235864648968064554038738328409810631828171636364577283971884253494093558306464597665258573290895307006507214952386632876067917397469921064058503485139437434595857842433383143776853595666949670885092765420860535465293257331159643630534220932580187870731011608184680933124850794775860435359541206671083466264023277348030748382510785691491932005948146604671638639932610939661714607522198329394315748000629615488572449679941307872742785463856647908826252060972707279965273327560100263380915584141734517603717311871417057255232427061219025716398686564130236717634220275443711120241234169810046717412138622965332030938803714039597720754498668238938228005936314333324482103476069636604371030473938638946487698154297482974833544342818447303223341135814529940224205281852622515567917660321386011591680923586843884410554851310275778223412408187633240947222738169193294738294176779325069247763919478329965176836718157853441555573766476512379182885419404188789965365212850139306080758673489008308811117123164259044553391587109133057497345910507640361886153701949276038740889009061251927904248607446262432866659985658421768351616504838065435142685472663772353206435257183371404122069691268653482277755291764540832657324956693312554328029350775981313412448864141133760489843714644313437040202771321212137956524143882445171467755845066797175659789207816004711973626144014091211569822608371184827260529999347277094020107698415863986428133745232956906339620365543179153948776767490118116652922521892156040970417441401250518931854535495469181198379341318082587862634856007897575472672794466859780862119759722355464781409173643555326578366519153407685248794527715258714706702639711787427252165562162594001675200491791557252834134518495301056975642332339456427539244451998417600980870637560013355384520993629211651070240641383633500108454162470306275897991155449403059163149666659293209866441606504312747446834516847144249367188147363678466122176872329956699738091226155313209556300069438660841449587815475963136117165107650207322769329445892326860035111812896215726835931618921350694426622216675504524922373296202348123970314205082232795131297362637224696640589782950260974474165308531382245645837278309216834627906695343044582130689102409924585276172353791822145690443033072802408123236101790202785351123890627130022885248993736789854890370762326015818257866037378489814252624961151895616014415058051790971197950665167011878253131961500229178116917503970796416989456345334950749304543355126450063760996955790703059191572097228029981776490941947743439004624182409818365922190500816821555131431565227580599650786401102531855665722938746861039900286646603996167542909908711578715193286045957202554657602740310861536434074062210860968136147031961346705787680148193418568260411526091173627446501580435261716998165112418266404578235712795725451010655965188072253427123319361391365675739873128149860288410193708845508916190690038977600574236983108644889188612004525324644524964656076870052117042329032086455104745573359038988345704064409977440112113046432891709518644462284405344772104133468633234049919763144294145235321128059989060312522844221256594053262038068811087914015131500455588227753720315223523348584389084949024557038546981093774331999421811076351375055891361356775306571798623550204025270844116535356033015500263362049284596227891525487297772034100922031960031379157973517246061012727787957838692535084215866868167223580579852289972279936055874769406838640124361177950725690057772442748017582231843611112116081106071298813863022882489434881895462397379078094379303528175795549064019290666527456124916427867854869003470786016627542656466572218203568445413403472785639785562487750461095208344236518761008417211095868106050834452902890404685916078171120502606797636813147958519019375675645770729929588352247172860859234518807357062802308234928728849173183421399081539297644149357010547321649224342558910435796717932377166581682419660864564410722914744578513157915596136550633677946858473998583236850886743411579033107028984104225349094704602903717173184501367591333243575837313575944178438759396328580668725904367997316902781427114525587532670537160192616750987761377903709493144377072321650984383805306195200251383265491178378530873960878455428955740489826889391334345512757389580981060928209999447646476953030497940316587694198584458274230250861003468316645246500443111804592639208343831466631258381696827638045010016335574347687039191036948552104305513768016460567960744286847293820897498231719243567618349179322378347906354989237847806762920470411477149293685802112902347827897679660576045267425279557708426526110787322186679969955004699051124989536461629432772315621167146505626238482453972718290027355138083754202971504611507997276656762895070274465320382888612751406656249370558609176828468111861832900334400922293862275869304019512838762362653107854919699304953658624880656856405567213002420413496548426636573651972495886123388286644604806830823867955938607356682561951094218554294291795026965907249861979179653897224848397166969631960995915311722162588871335369005082158875333894157542567312225900928492863035796278510177528196860223184654410001817571562982511424510567479226061372835636137322121286573687117482478153609296243374733767785492622340543649784142711416772694658135457723501639133863759316547523889822275743019007995137633262315926364173506717257547614872574827465042268383846912828719204262000927277095631648175566638807049904730932567077226365550375776498216714896527713417361292439781976179799989540943786354372390694805554285670924368725845260870167121544345976596705410521237783683351698749730783522261395579256134894448333598176477501124550428789439931580417091407725884435547775623504415363089132279300321739385653011796248050336115169855482606041367402365223723694097775528756957433652518412143259928847173212577441149259291550449738884588031925896399454988778344146363270459879562794172601674439488724162894926599275746644231785598438485563196250458441502218281877392397674636639206873263736224430489844451492696421588774773552342338695534831682852347761625817293291564647883617244821242325786596928603423769089622093164400474081012852428018884686207786841747146181372332780516978890253102035685917098178108962537348339946891833160530407387028619078852415924290731328402718273706225448977369857588452927355681992233030389884943437976909277848087368055974631238331161819432003165572325689873439584684591928453946793152632163688490416926924418346585306514694268496611131716405681877807072115877395867408790811304093712183273785569170035084647543331847594454618033278890183501269936549859357323042265496901667245420877284530589730275345133468685928458589695890428483026422984386071117701596251342753131379620081421163310869712148376916239082920886499947869186268027523061793738792977670872368522634842524229572905682995086884089340494465848946580242864867291747201440364884694148455338621463992611632667831846089217494033665658478422040193372181380921097526391496130123715034484299334890507666243482053856708338770236051959217829522753316850615300836794983110694659614515298694998361691816070021412887733796480399786091775424949679650583106040295022990821124515480000283775901697154651846085051899710719742747895803431739975008164048923679552092211002124223580483164098616918786768924115904601121646473833400464693387451277324879762515515086099879151718652441544099845448116444250091718828496809951978442681237469251417570239142727072333855607174488600197565201818334509595382185107512193246107474568586657350210889774017719562059700548643045716401418745774206985327523536848641398663519301892503899372669320763311918651929309674336030306971834344014047470430148782280408639509587119999711888228167791136043081075687346903568667736708426190282370995533331027989990486077800882310744813856892077490826439938655771506144625978227408947483770522493239167753775605547561338841083429261988463662496801361150433209502150484031801446927964023493861012584167293313677688293037083270846400746599544033285663440850159461221856851760817770143806860297429711993968640217080242068947620368937569045108530258752605390776239995790727857511831340517493319209999281646588092195254757092374901723287790096036346293355705621640800093413051054847658744469671789111619050881170315108493621894373086887659975966245628388932213152230252798679093180506796310001212576974972729562289265967823095903809037207573873971771040971369429262254467942295779548704989164086181745785347821937934416699242758957610445232789631192095428473164404134836892704499487658467029077850563312914874484257643630214554450592213423167459296631445433647545209550726254403047669379195957630086698593174790810149873393796109338001923226350668661447462426999815689027539648079773007845510345204103152603373853535101428672942358992378563154818478315897941560891892691051213570833148534359047955674595048980037212620239238351784592759208371628062718238203551394635804622371324701268162609995772947197399194257350346690202737480174043353288148989874445372568003285754032819643977910283682586890661537604474608820646245109729361403906032549273035988110454572158580014450073079997308034591635729178481628664082281136801820997596329448926854755671621260215684666831543742795949877198348536280925799037800814732085525554720083939592114304184979068591920271469575869731007801734212290383186393862095871733094071182826451040777453089895683259170768265757351689070420441529643712345323134589201374955635749830952161599758850133562164361896230889200304386575055840943308458855413729211844690795968753497774892037297434984271574014736007213453484474359200440931813974749105293048117558912826243665478377929599901369107281943138776944122106200908643932750897155348648370541062961509416944567147429713554925039712495227118271661952835095790309839902982371450629394904402160852522675850223761771687018502849967165812091496632551526603154578669214646968605241701433666535518446535736325720554609687232299035503896158762728445476968780302377331981594088499285392742808776678012115518366462907885360570388399152367681266691776585179282992325609395551033236568363787746061397662515131466999897347058542833238576674750260006228888550285350778097262372979906817823542107097080447661559582864909509323312194216765076639513008301636938471091183888910041250075360986495255471833664655734509118595624500740658712653803339015630951630337804453312012473431742963695320971314989263535619335126878147071580316177250215494836511000424653477548668444292868853839529107141297137924662154643447498793902642796509991792834665211724577511188137459674242731790627605503957464002065061332420396876065275779628377918424235764764802798724486126368641940189849994197674277021655024683951874789369976766291402419114928039177001453424691158402067106936654911385186258067285685228506974075897507536214865945590156288621453538576525946463219660697553224118380187475902539155918958848532799208341311692218554989238903792282758908001151893132790039092284966966423827323367519779473190181890077086108437091633040299807931483185541329214585751081269601584753255254932222873937627336716174736616027061325891092166863710896765483947243185961297410763890331923032852544328263736035897176314814013979532413508148368384607086435636227379972130595408215975293738878048597315671528927864864837688776274866452196774473688489512057647238438251058676445651058657139670391293408049778608162162673627960247143604979096257970326925412113109384079115356214433847016294545744380171120754657603589471701796692165367265555782658069887158470144420134869800355503956399764220627757124793039576007029248683168966598282729311870086899830428289292046480141823214042718237365230768417461686692124291804469506224165573721880374310404284764935391217639693703316586916099772506939781804689003017812493369938535528384798471280344488656879491444916273554250425028602491310217100309577363736167526320476957751343924835390270031716134315049392667676917884809036456119794184387026096068740178363859582929493803842213001909320820724646532283165701520462979636780829048435297969312786294582725196037121164852022669188445478502176807377566692470613923049977402679528572527088605274457441437651547801722464125941536078173849096486644271352712328429623933125031432491612109619950996206476963619306150992712870736275690137830706151007571664768042587782211073025191649800785517621678830392668994397474496948666265602201676047265109047676912822009030406820726582372718177357279889917772883891015351694112108040445065566065246639944107587510145732835132035116706455677894789625530486676643683669188271698682521971884082716447218392186053434863071702954279254899374055276854701419063815014476483323881863808028114205027245558347981901832099933223307950374581080111586638275101485082831188313445540130525395432627583020927779613441955600054196103246887303146079520672849973355456185769550343625423179527728207662483289066910866843006627712413793497062489411710797543369685357318067272491716888869937821555200313949533748206585932215547741446559153235488471283677233601976882555518362467499838196985326181225072595151235337430799837835173759479145886389326633284926802105157250464807118721902927366238660021526877094048732397562787150558687207179968924570213707332616881601899721434529112067023237046571013540299122488812014369674814687354993998266512201931511445101154504132148711509153166421327449255237480700720382528582622956952342574033309298634294528542573598890985477102091324993466087109278128392531049093321903179504476036999113308245510904972842002919035583084983509672584726922248504500200879895487467417438371865606312248543737474355692097670155850499728258009122938825486308739632315736565642036532709189513423584111713755177263209072974496749061093356872335479339227378151474936965639999482435702297560307322114073814501648386764303972077028691000574764402831234647576575528845900693828255691646111375256405943722535001197512004273160242573321717376899053865780393066671980153786195813090420866349188301779258275634518906937780600431602919573600530122396895147290290597465876640028765921571334391464229608873904384334528061083085194225214528969793423380684864003420368854311334091115495327602793541452124419065657937662933149591948372986919113389677164694736491841227747182581165550491334479955162228934611160694367043931687385071081342801253587543875114607316009590191611922411773784017019438654968125810951570794795724045545727651364574777773046463020676719589168430412129197535818720032719430122753797611132944186015979864792075008947756216469510862473337706753100062308707030233138219024118832521821729208236750011285560775956219397138548799155985398054383098838916899102094951215317551900685899316017876935753184650517805823328738154078594191187109136106121230339556208878107091837957299868238771320077958898828320178938033931473911566736809810151707284451744981324090261855680990107725322477257638997630782686877134113879936710367225021975320724829401166616134352165017260707423193376935496109795350524576900563666887314901910263756715100678678627665488255011148031080534912029391322744360029725006709335191814480811535123570330455665840198008120501966857010382707655932134245487437671180461549594866849598774160251961949438578928308032752178072912096769015218146248805046464611123738873533354664476132472497720682746008123094238555246892697402692319076112043919640215894031256960076556512923064332402052976282859536691280810922008854660150695044593669137673651479696614266003889276343335845505155063751522274961434875412834286240815542266138649916442602012746552824056804039848309384911708792314501563762461823572427529010016321483205450467411746828782553215724486845656344429364237043209635260535374203804576953340577566574448978914891899105946751299434549136985980390952883648050109153307842053912896837890847110145963304758322575990438976131823132926572941827690213648383433720891260649936105136585396122456059224857612499647060681903512406687732651315088905405348827238619927450856056916867982474582229846049153669060850990094192581257714383456509910211007637012872821623765495562712286764659508892856727803517908262384736392381950112015083250663843336028029590283894557317232059676721983370944374457166129005338831505145604583991671486108362362650485955678575488598544748983626791719543507823146843176974446627970984488118825427283781042479222607417339804653441240026529796734681765758589531657566126049211243379706805866639640966052222494876663037136405745514982954995892114648726927775654741981697969829391179982927053839078554176416615352647473405465256596838211589243682008250797499604087210280279930267809228747793422221578948310286154284751574973748993028497150752563804705323498916898146403247836382589660084021593712514946282331513304160583913357641639022977842749927876033670010519378442757593994842764397859983839522171111041921729470265562217755614327351588267292248292548505134846483255805153515848178182584171914185626423295824778773440159042914231690365919348856001538710165227787465885411503196046688648764166785317184115936805257694675052185238984579619650602831411867130380432203717513321874184990839487632734991342679054419359781289456013048970879915898939154975580955791759360154358044866534287308308571571132152359995608612592215220805119390274921177817103853095504922009513604545241676128509704616404926541891123155079605219987543948088548689790247477246230492649429279762363796715660731717729282892965370395773838155944445769725967267320326369318187954729781671658590036690754260842089503089648066587701457646388279183046096920691961549431883681759600476911696654696662722679011316195142259385880152790494305742116354363628901851613155789522645120284018807491887049450622628161373566055235177361554499867316004891759517219821382942637716144039582157527358779487450674403290594563422472035941977378445835081623750389025386924767137145681784630426168635682862745924280015300939836368276009323070327626275445592290702155749468252598520909420790587615761157584233105352305061086569188536878559146572614825067930749433885257954226857642644825192286501807190575342257841688846694484206098705277183272925594258027841435317903104551242827617386204559464574211400428021176813262752734835797957739576636653465009209153222255331695846213391101660856262203638769266002092697510273831438538047238573214143495000884406377538917477693577187303432692368073515639379248358542001066769100040596951512664980291848280785352375329408143554223186157038008014514681490398444310056351962121257427053302986967462508767735547846125098898841821472496577110328037734469328597943099065775347545610251599647115678219258627875983512692878884314004123469015672705345996124482617916446996380833364564914231080543326864792343453250948120792567994158477297468176965801762246773209987367287978122679719962557766182338387426016629252800271029714545212496513192500902225045291947024627611458969818597037525963331324706215706827554229198127605150140456597802403719020878842643425654218005492732953121363496816339970426351091371557792234242540336654127267158601058126998859093696224103568233103315907503243305890596768719356794193331148895569718961002688621743037621598090360958768355385989727267374925873243218721099854779751491151932744351845542867666485205209111170190682336932111917363011407787427971205153721985471168070128150088015486801966371806128605271099712586649951668231275517644099467060972081303746388483926417410504648630799489591600715805134041187297478574490023937152404607337313486715557538465904371779401180672049401031078567880912375341261318185092709646140883316257238244995468186468077093443035369461322504633029336813680310563876061541747391317183766178230811230680522153764519814197990727720214606053347974749314699890948299124902815667140773946822442852028075244844317658676412825747592997472618855775389923113400109078804349124897634165882727644570442479544290224095760755767618641097113944721059988015374832942080469904221928905610669696148173325718254136061350299232105568218309622878184597091940049050776632044825419817042728525450947243056919507633066668571281640538621457090996155703412272126815755876080005384332267316120703076541268369127236291102766573585660760767647113202159037492605706899807024532693927761777293359285529551760802333636828079907187891265881105069435573917251056002250169455555928564862991665943635515089201244863885985240944758138226748218529674438883227637698703567542340737072447975524406729202826681787390147066611303865448821565184682650518301103785401123918109312338803758722865526693500017350009929883875089285278104213121495659733992336593461929972597297852385978360734078642179923095433357927209353637465707054268833012265800198774746650803342057198275170703756589635157299753585711968692362711824581226965195793298842607076280772849400926377123331903831121618213532898621091569593944540127896074757547381413452988303227880998047613590025981176521500290543141716812207246914789314374480608578908092637783923906215589777180467612397067326634073495702435184619233719901482165993624435191244356639738735445709086927301347685296854048856945960358740632500020575399260974363939579930283735734011720011661952169022768451407126747364882477076702319410208838872981063569676772391727111920263354697769580166519170127987691482235160861125080952921308906385044361947685727698771535829185632072225715640578768579783055547303057352392273191103302639490070493902822131288801373388410352637636717408234289834857588385236683396250915529440229307712511336472229856531168107659949098281751244854872423575080319898558266588751339853450831879294576672034101613463358472629748684118770369968194733716428389896103772367629732987065994652300442658792311193403764206407975318168128972869502277660947294777655955870434354079828541811116855890084150612486534997462100871047266683887199876231107494576090874726282882372975632671930058222359845557377881416220201107002274266569642038549337832006098880017543287279389378806219288867810141643274723027529051409287322032053481417108305153904620364824231762428133099036359137239660201601156889648238234162019057174932402481514036061131525609258045531587014323127004567512791698645610785572362150432350446959253808135469349476816191535553999807747051705990543406110144481835834548383064533306279840742265215606755939494815988028287113631717296898341888648970785096425657819644125149060413840181070848215124424614843292759535788962971419982328162787361159348457350315409645519265009849349694878429778355078672019724652124418054137299849797933965896136544007525891915148244320782765804911968914691756828746819942471701842273415159088143321755014184669103565404605386373560571843764920628298259180379025146553812583407716104570866386022232301980554861068221881132317761804831206537668051061552580121475766721866879904201618111651441787885243896044104258927474660200180311969242892376006246619816417335698995633658021818861108547464889373661214201828652137747974149295333303589704885324074670634757287380766281744554823105378766924046550189354500865046776119480286241132327810567693334154627683746464913007789648395995189241059820497328001734475240638256432129201504380790933923217993298781470920465438466746372537118044363545653667816115053380243603326401527632040084538588915459774719131054475448446005842376891277737385464558072045177541727939484529088975075527849900046161729467824743035789760650625766946764591716513708969876709636147932084616744897663287755693543389000048232843136083324302971572472618430319875930557145621838230563708375650026984226350711111253370163999888845383989022245539097353054763217273264042736100749251721294575147119300119704062922327446825089043220572221388287126049379307011082158416920313663422436480064127173475543458313369609812892972340263967887333175141630063740531851159344833086957719129213802554218660004278989098340017476644172007165212327127970960334847223652170756051699100445872562029108531875560383117168301538327842820671989462736974020135945684572678812862476477868335704979336911072219612786165932903180110967261491777795407957244714252793142819108775540972602421743592675528241253890692331394133583546159268337861231806070478116695137162056143720913803803565158936210624227646365672350178192576477813083974802416521238849586057754790146909060071505147439406146596846854474118980567516165504467177698767841598366595989676391218692069669492254007765361827920177332508102436390138580286260015378448318278825096362610112515297838424895652042095853164935651378550613660123147058138479395213094622449149043662925769217606559923394510211144389892238658649933799751774264614872205020193229852727076769722518844865390511191553354755996861971346155457388420565320638438583996871855216587056064534569759230038246865539353571598904779564787339646585911198199006536508058567878573718700682879792150154135721301404556340135585695950938915855455893110001432116914865307314713586323875869165220256149294980921969246334308883979762332647070644312763987033020604410752185214378287316039196381181649412378711128460290654936463700992455626021546916808174312218250740784753497554075298401475930609214431653267046052795309641889821774068442712821605421721535451749064390232950859626252967265274789858326806627582580097405849303166365475935145645859554610849218229477530699139690578843424704131124043257018062512934218900541630568926607839275541477604516171009359276803646306579805560261726762493919591403019156635671247235822677398207992220283924563391597026617831166157765172981616543065206685767643561491395412798564843080960600815023661657075555605982014834022384830737281239270619436138318746054499397969834210195743551704139568704301488337654959371454684114865436602032259554432719192523136603677270257048362382178165980611678204861469831144146725507828098618803405512019057556205240446242614807878993747311028988127786647939666179925631206291785019812754486898909775308492197564089375670597731690469393485287132837709923541685609432001887065140939657900675838989976562768420663578991851883498309062596895982823604014561411981013429583608759098121281104560502141189501890457928438725188090019513326870748363577504141615323557192617944484864424569821296138181005175775245217304190053282259970716281711646836723960927621156689856128902599512645037411117287537543430292810186103040132242472364717059108154192481699890478540900718214082249119175989960747906604029502283177129279338714664006295948073231645672693687167741063917917982229946413039729025655726609553872982893908129734643705951125068553428472663619599792850612292381278882325676316250708809742503347168484265625531762635816741392734867440120116123782750862587764367242038764033552948325273050794626573016105469189418465573899467514275154872802394146288017173708750690103553776828733335265420068595182859820686925131338183548258018846185436086883095328177326011754825740129814702182897077889618191592096294967198647325154753680871337155646734817114665543386511840668175873632279079810198853198123428658210933090045149259217122051640853497594417211915815745299673310828079915736602697156808041544790592256764423483441830929984693786283212397986526610194045305565684608088040881755959218993765449567325817452334152099820221382857809609142065260340547980156845048808996450168217720202082733716292084140206488763875602189107392148116903720251130165721545234178357269467105564777491510333704791951998783064409948715882691298108121242201976255185892824757281755037843494275606217924488121665941610561010803295108333833364171497216040769277201834131701211516301905486705893693496045867129583950763054203157544495638592941803063889272067474419271896786241169632283746753056010992327199093159582452539408087571361141741456838923489680595882164629430044439521869891595419365487923607935716061637113632195994236099988322613564689062949253443855051574912252390057728607878028345373988206122224670634788649765928456282617633107788183817670191318839855326773326184584305109044924759496165386926917849355568645540824583493185760126085393686478591687100904770550693034774930663183675820887894965170534574631426577344227638058063458161964715897062701733482325712989953976404321759699600416875348107597102817071910060305885968700533257137079779651879330716386337641682263844448609553547243879520394450932183643349268213484401122048338224253620924535144609612265112028275033159791479870867511389394906127148083065347843676883631782968156222713958447762683586586252268515301711373546769272387915626317891853683671484879026425719422258850117168123748109893903425943550349629588137191995347126405365221793492552911502425603396781536933242883871403896551004145005652724469547310319141572003673261420924223433884813718451700872800680087959558410590758572332832774583902076435646158645696420825959348171723509749385738696417256352976246853158844889225782579986059857951264261944547356580632232199937893788599233441313154915535963457271754053778521846955450458597074402959109558211611042596778329524055923644532150912923093874993549708176480808909539808814209250509873141219166503648820581802606442978161442255471909920384295184477166706222623366749282842491278005771867223137289009477691227461865456625704393441137106400295706758688562399810134803848531707033659104061229126946844430499133561107078465404088097654108416257076441392032967021194027131162258706551126870411456381109279940953354363089942534763829874209516233382348903505628029249112635892469269974619884186282869827888168240079721759465070833569479342887629631051828367049696654650353793316508022370696802030882278188942770360012725063437985498601511661904672528374362440405410705623296147094739385095160161337809317657191810409850362563927319654902706718331688660797919429880004013509995732723527612974498818107096212286964894996135988372364136934430406821349910666897353442093732781491733058506473983019401344594484560576674314586543191097712146957442093892343000876539642276891521573856468471215651897845675641686172592845522631329421023472600899505544964823476558094941219064120070981856563216304421667952031157257888443359066831454060377804407249391782110328151285889788637762679495796673046054704153563105409921889416723911091778315046360613613028541571738809472363775024867306720849432486962106134224426003011322406805536866484791421948401270781940923241601683596349345205655768414081656232158424273481500604815235968986456200783676594397732535648836621596426287846031371940538279343985046525696157264191974037681898590493688661207392249415224555993303290970867843876366536657947906016191286492339262674284949599931598611448023061112056016975122743083048271165711547120817341086132761132036569489395195540548154453589101102937744286252980410386272368186008014362600740765108392193300938354100986784160895631208780590665436224632254036748978720094568821292855233399549096423130396656101877550532139710976676740769961662581741233583042392148153172410219465709799248926444943955649956855609536909640170014835603631229949606325928308019379543601509686744635973355263202117599303356128531302467298039911822109670495008618827942681374525697184287179071088886243402583966314587626624357683250515005678927101700623264138239473615581922268068396949497600248042551548627899406805880430596182511533425558296574817507091473373690110878978166088086240002182930920740912079193095464894399349912669623374321904926564771404800216394932839714526977194007690154874236483646913537435588082513214014790839027122540426135067406459133565660076435560976547084299051355213015366196506976451331490785746694511831686696765158133080088170979670479271111778685047246390678510571213264388979217853511157008826387726332470720248661341968239639385038347679386597176738783098816536807755416477805186724865052123204388891061914191145849529523652895414868143683343266292206822207435645225010224271876283587957087861343374816585292541286713758830730570829209970100597654937164488276016709319849133456764477139638283563395867374565457920310557811921203662035151498797532796716475616057594617698806997466049014856333093491704899660504258430712704963965261698434691509129591131694309743538791915998672093250130432464179638676569202797760333837379015369693146365527536694116486953445004491059829165923938317855745829229653357582337832638994394321303170014749903545950100016700120147914170308546391820899387401752054672373912632556180845918352687090777441899571615045327005268974378388786697075937116958957259642687900921856148466865155287485432756914278791940632236576953909566275085292901951114096869618001487277251105030613307232311086736700732727852932662011977902883976751546924290548149163518423578861600049728377411585928583953801630865260087961491751633013298523976796825208379817826181763098501643323923085327260248399176375137128851618302136460422273386921869469422744055160336714624305819683263027732539400154800089132808801259741678541716790270132467686069254613474413893821747102436262997924734432122528489968639024630378638822109790231013080981138372310559328418449214571416429367764859217533490730966316582298331955040943214410087894401974436832249444195730074980255001559475967066287501517838456918035276921942831827906970891281001858255420816619620673221386931077090337584386039506952555678358649196449850194101164162637118527653249855609934181844789060536114768569834848167103814650470893393293102045749026705555465057923132509962354872984429347098054698414287372118022276558520458045817674432962942678060300248548428713323655392799984433899042291545588070074545219889431419579429551433802908810896612206646440614774743635192602137433853618562283413609309955795574519197299465711843332163238843437179498700868390678233867204724403993479761130093788170789021254974096700590722147442907478322204137477648237673017441681726868887235374362680473315414109433584873423847562153648850371104869881730885854664294299311378159983558748142249186105778423615099970450330552865987732810772407402942236154412534571907776976542026238292025047215915963054929782282993162034461187458873474005802337487605547081367687600703018467156538297763069174401830587499342579939608750211120382173799412935403137079694096931851034440559892579584881327406071002105789690709990322964093515375330515878636580764759520185574642679007342208017315491556862297148910875164554343700355292994141531518052824411911699840737420290381696272800294623065308958755451549870226202707694723981288236489270324527234578583282985308320158953197635854008035294398293479560142042443023731729270175008419595600864063351326861856328721397805455168428956927382977360599351341718585830604863692531087860438480560903622930675907647648564379009960093255335561020468611428138684487117181047422139995781586593048383282676394442858595150938215449771096002874887698341817386207971759343294910503750338129311483460535367309722255337191953499703953929184421550472597300184121187390364139640572562390261949455668137464803656070168727248973109207490302812844739249924527266836065858174011051619537802795500592073693105028910285059180145913833646613340284653784818787551505446611163229126925215268145057223638228153977146157757790487251123261281540397646966034417585709915115288665832684283424049621102539357910418614291352158750996029103421210629779127807183903060425884061138069029650392542983423903846024836048374500415350340682452066934600282025160820350058978914371473815444211608750808612487603968762597981234716622199081354551964333208427714756173154607334665610269393165439122974205880204518440156831139211138652563139396153410035513277361663649199430004899515808578298564500655893694801572555337952481832872862667738548674105581912511370212851001637905247498403503610804137667401969962795690268983189235896015720296280976748858178098268702249558785600735150717911858881417704845729751606689362124503713968917926963348477218870627829732646550853745892707739733226669623479307903265665956317936229804578063474253135064001631390923336556028450716376322188377167029515518668380885267205851048264838807760774103845528730936521490601576886334176677905692152949450593653432253583960819960822801461709038112369936152377410778795669757740130798121482233618922128883253112491815923505672949332308942989540601963482356194781403855215834377621384926204578995601039511710645684012246843676334684086909187230773996100485492104072682337417822650612133270613059787402770232480043035014245896858699378780139697093351636711349630418192421981239684764492525575995456987205939593401627639433318361803286154530699794612016532970191527215374014448792588296241524956110579943477778135144760211210474671758241652235371237902264827378518440295336582693145040780781383181339996549784561704042539298446733783680646478532242427852021444497953570925770399571840925058901409095403178186660717861535108945282345389244471706999434230727602045007602555914881616727931277233197103336586017862710880928068444827361809940279041283289811427820382601723268292673285206356370113317159229154927829860261372823198794510783176422318188232069566059673053067050502574980379911960787224448191510492008386714256113050606252097707366469476565989353401730023461327273171205509927562436921110480041882760490227308764006467383053856485308377561042765401245521960435653499353335564980815472785729935471324070747213779210264543953060728234277338937852395581113536410300861075608538062228531306912670630856334874351819499363152907685615661316006453947720822042456329002042023315420045205826979476882190515627532124034012591031345695859213932493839589178685129451397899379415783661200407040184352729919371278530160022965294299470663296856970897216261712444437513515112650807173492690807586135232680206202173190102545755848093009695073976828060890972227581757047440479266397139650538768888413363454130571185812902645238122571154081474099069567500537931040650875220635064843638515659031274432943931797265432609601813810244098267502629177376931224875919123093447461410955085924029893106855873265290967152713017044749878244213165138975303503044418697307535053287799715437429806274826781773946610120042224340558893934228171862021280280283434487519088741993841909369022648546143880910085154246132855081484172885855267377815146056342410913917976180028946750068383874382770641439292164588170328676201661929012846715091191636885654141705305514342860544445032179914683336004473291675676482599037471971748531645697020477548803065662019260535311184585670332873646285979983309446460410445945200604026748155237657231216429450790143814355773528674505636139755575747505297863486268458599001351126233432346817161393119542737693097287307853697990122712885628237895646383602267063833466367519016484132148939729579633645946159344106469089802589032562103430416000785360040226595807548920040600094801141202685257206607138123002263996638986226914197905749340575306659869781794380731621875251829748101317399622518602460247245419105192273893904743975658818190155956982279083241433314863727136413347786916266560748734068927404502417562283905038591512463983275899893763911727821216553827405137519809614841453398111208134618191448144649603169697422630091998798231562530456496235264125079527786708912361879229252064277212995961968579343839336787033120645781048158012280799023471073158373894438509811768167769810855561146574373707334239695752633892850799665955882908702231079289593649748242701818947964706148383343404840904531277081447824048054837779035957694667061072685092168893101816267215023427383111469857173106008752641849905804732750322718526261351958433963485906373059813231338963352306877567144804486026654047550759768001586157665666834328695086895427459085096189215442015352701027595369297756085455842622978261231725729769080056986618804243095239313597103509397875820907126512785010145830665893486647718178038344646421626603799622984808965690311945877335269640333951854830274596296752127103034626395731814181335332321056873995431977199405523699642009576631017937238831842742787333682257284125654407948217676859158352276068929033043206994038139065305546981313406578256732376189839695753741266851668594449570631036129966482499796731711015429252615942606042816257375012707277663519880007910681272170238290590882107447310103066095531214654213577606182011238491111684832481076138142394402632149404871067014599632193693288467034049137124497721596584482541790967737510747307041602569761136940564195023401078421257210488609182625090938397694404416690783030440728659774515058888686773735130915908267655715540117261271442380352902954094384386594465873837597132156774415878172503360417679057053430548784706665097571424810322571506971577328138086697503503798385959867921493687797122511031460521954728062074158574382095822614548753229062631309347460329104886864135701317932126630284287379270705021222944101893671357880976477488689310316327555067944798805645808124957725591119598436489393857060684185754789178118295468796363875807414337453257084714468458052775254185654409907981461401744922814570350248172398451730401045254323451375124740964084028957028310530619361970965099425907808003093500843188276394462967240329383617052583819358216679389517560545540358642717460880969060038683121893236288100240323674915698454551437076937266845157845519774575201803390621161210114303840271775310692815548002961815718363611411047222117180681670968205668206835724097894050142803751081067769622036559131939802524819606371616811241763838052410983762434483936953596310896928252045963208006818472201756121275171390278412560092153856851148941973893544264090423845391268628141483392822758344190900520227400492609172481952977479010476169646673171020351821826657274981399140628390272179479799222581562866878492125226567284000973368815374224087161514683252241263636784126020110292811433344066978619405769934277163874743301118543103689317706563922829454427071607074182694464813361853698103234211625877645094199260423539779994032075894331327341336808211860388060204805378232212890953076816117800385676724696605169364347470964181312681894447000059413763050980983532102719779891676793928394225853774525262311960056419980748239948006945331680603093355049562487760801552759519628377162646603268290619183823664205008648549660139396250076050423743574105299499798345984557063738690962012219815866642220810067796590058877610727830767185513567025444191849470711411013187391126669826530610015225692436572047143055755361108592340350322589389662399072985832982265676720988256112860249030121939791155216748988022245933767732973238668496202561753311904867579968551480191029031762887592911581654031975176370997116381948893182002741995311061746053034502948989085559291023456183508684443591137640594730036151550491440435471594382571941880369154423187553491656977358623839324757833261523589548548024778523097324922265893976426546112003782212623487914422361228932525333795948764725058169764640727923736484027610043747331613746678804456189539824054398484903275095400903731517134043474087694716225019497741603715300642095223784570933528485151758642317351393922003176548388818456179041114135903667908086228516253823433255265902822269773835641477646785679285956738185478819488269666472446384379708326217761880715260259323192010079163072922122318121899210079369697775396194693053782077944033677328987694826218194830523812928253386084798494679597666402219888441058532103908267773234619815613648548295786958023528515537667290211257329880037970037248074179455908663090846117380067793528209112211769231828652417112647948227085731303408484820150228795944904290282585590319664791601032195814731411923550086212963983525536245481083689250572702841019340796125383097388880245119165729469244768319844524308437775807311592390792059992028280747448986350945327013924212078955350437441459516130303194948082065453359726055425052830987718247453040871246928712243479589984726684124656335510513990515689935666949060516897284378046549296602920833903802022270343600291576675315249856608777192669397195439695508865723205082974681378286738670059178137698992093774420338721061972884168623012461740794037337336793498879153267793996842286637900852470718976956109656036931534483332980297640556328208228585567236465005095848190976810009794027478319085077256684816981317717423869985107533127496736888473210174106565406882832881504916441128177879974574922403094209443148212731762386724270849510723966016447780960960328951767959223000716951559541879588723654735084161578140959127137996780515506850469372236259738795784797592511856727298310511714728096537030315613611691502196085038621965468806402868574203703851214532091929334208406977822526286897479024686292823162558406280764564195554812141886025596349310698703956363019799274799146337083821999855386031349941878830461403345669488071008948140613210617067447751254494519277378468587945349911467889835405047205599867458465131293179540428419038646571891192200608601389014115800627855914420572901847206702247756976273083474704622508718404059633448947900719108976542797333440207158528548628068054606320845484622951510956297689329931444843042049348536618845418505072715138196446329602001680176095992252311943685446830769683171342722799186937548688913159831826265855092361420317673505549839482117086887038244868123517587923791953018252460423402549809945734487307324981201083684042687589073449775454801483212628921422466480641477224171423657969360546742384446867587939096972533603464413938078360564933247453244106193869071192680110656248234972243822149743561848063665022089260965760850509660363856542352299800305514957518898954733288052318818255076134388566925757379731761383114475902422230002960817425083582567368524497457326501943862041184638246210447740978181457071807672037596343040844739042645536040740021066572832286410440753641648566997242164018035761841486852152173221048324367041629510427593764517248569677620055699681357714186646231081388095840799897103105762776836263993678697558865182747580533820789034576938344454074276689516293328611906001606128394300498874120176857871556854896203159687102874708093859576068648756501676878691819905495894604353884833349269572977538850389345613798562192260749613840106478626424869137559701233519100569245889885493468641756183268173772603536275189591266251167704485539970714856927305835860536020596872365509161780536385192201859637242979863259828906670144613185092524980858688576154042913685109744737436982585162716506039330919689571504123663655510636096106427321590992923039270983668369513359974154634633626768721168912544631304892652199588037062177805287840315713908592922239858116864708674214562503250401137553656364929318795928997952384740102216468460527575728984618792011454708665269884274193711540558132893440390087202551864833506603563393836411001431319273142764866100990763645681637848485540535686665781823545295787675917625367203116793415014768823534234307955432845211547283456428519192064992521740574497249647477330381833342999974222047189255360839671305286631660799750145635118923828432811272227990018487829854180569246668395317505187143859536654222385445453901476192551211375566479430751250097560118689020690614796430919116728591982763766348479345570834196828135781337935260742285827424520666719520444112216087147464440255838517747136681312782112115322007566577208648175876791475124023784760930942437552044567055620607218525067776140721701524634390148876872369684873291912728598091354361236287334549235410847246526755666944922497939047807215958510572325389021036342292191607291341039276293287878370861920068891480738424105085285312872969965126538539368686996317501220872962488269302611922551690896925691847745831488383338866435160047150679201104917232344624669392236483004508805625337259651246222194591221877488288720164439169287853023102281276187396957407162773427166412339315786334730101065572752805338884015507291040381572178195051997748613513014012890331867780911210413258159786812364748131446569197846432139332887859288756615497275896682084404253974676504685207384223356122298749375951064629483503362403809067887420020999834159762499622368059243479981165488419755243500731471184341101654451849075695293240891004614497917529279146650822512692396607332828747469239517084860031439513512125804785379901732553458970686811940712071796241329737351037352139024176923167243467505207232314027477244657250293957123813579047357324774662458062048004024102502883186528023012067884626593154311778663774445403322299258357481318490041049459277387953152324105209862823232603277061344826713745119083548218006510051304959993750272871902524028029793589419673150722587888974202264467505158574956823728147926751392123664488687720519600791978514966427995004972391973078416660274080634509197644521016455012836971289699652324151266447474407678808775674623895749431679974023050527365421514870276022004364414652517493421525168780581416246039544026470998744786895268689016883789306771673159685586708087212050890477291397792708020445158165436521048368522225833478511356312076262555104802809798304003209809925247111043893884776409082870080454256840688497127921323019921209413686532586214181442997689323088451285474325037276348691504902270651805881186809680122724968462716539641356887647505136881906677996905183553085980941462793962325996680324977297306148072299008095853241680482551087642497371192290608017829041761174757477575018978198602603229153747034397792057071616837639253395415863425788853521632302515383629065580993985547653265622266933622951055345661452963096180652262384200551282888381502040720274842846154140325355266321123547041244361029337129380897753469576702986970464723233664384250378341294167310389576034894961008284345022942374803210033634283260552182860063299938395020974062018152533114651578417285855912755250376394444565410616744363671647480192031123598516517889084154148433412167107625970041784676589408288201442518015441586634265589616998586407587099434051647797553535618081087957895024966709409988340963622377094918655799084885701669633993599209227650518522438946636797274975208312849813586363908580081221338259308942966746870855459985104501723722417014254398125419448687529724710096358431305758934495297131029269032573151189228270810877220286942889815680096162630008340009051071132759175400643588218728625740618721687250022094433124677955904152731669465271103158351003980955659815165459991761543927147567611652494364415026185114868399608013024917684720322170286355969239231699301670282139430318403690132601437456588771551241671642880845320387365531664499072618010067935569209921769938720366945307034159810386089540371114656579623945082335594601617580190935034893428284786238613566579895517489392001933411985805573919477183374383788756103526381425375945052460176097197066266625446834184827392489572267535340010490131993501701990799699926008146710131549617325273504250047947313779477115337558961341955985846850332390008355358029911002581805894194702477021601305081139568798972392696394823231412828362025290663807280742147479454438627408920609442817276285168723605330595559959876110153244980693468031299841455251538574684257888639446311749250841580412188769665681120879165222177364967246479622490760380244256832676865662002321810777928158236028606680386270329799193524104060787125023303424517634112327671342132163260531279967385545074581079048888194571938616914943621856234520014962590134794370465773591169955376931540950132580016163788583609929632032789703419260370830858045331940755767719404869005848101019984633706185494315328386796680442966039552144819438540519497526925640262852716624943185141589587261379726231195204249293396664497816188617327983423289681713748729338314882336249648672195422316306156776505533417020259631918958878526340088055570279972441729583891728335190131686028587717187171828344666081036548160943798419716299660075744248803323181399196094066120642293234316711967183697514619209295806963798169002309647644826531025330712911385972330546925667975870941150249279287752062962346625889753535130240121557762355964881249865063745518062779237735044153047101878772375541188991400879177693098256170978175235018315852637290643492678234226502398031287556821751544303439064525855985588851820851814926636239950088990982202308909645250317211820068840808507234062228127993585978952677762938297305985385933721013159020840995652838398108453693853188919642821523844334549196096618828614414809845127608949211979734686066163212409308542454092691070149484159111332841159803228533078357031626374945580542997008007630978918552194686695611277463334309180056645037552933417857323502449234859025380943729815465819151390882712215176945628750313358383424593828949647006984448131136887173304368095364270299483380932939093479850140919325508906466590496383371413792179064301310013457549132896341828196848726078307216068877603147473805206730244589724431979486880661927168139589155559456539836869898438453013294907398358863807837182164444164783327430757098977670683075213329512085174592613201139396264568093113919575056204527140598396254365701358287077976957901550719152597658105539805314787761330765861220120971738283662457908823140420473726622753786844778731933993524570882800408092157484802516304590924041613393365142227025956268251117938994642326714137298349533731298438037569373703465752505622046907334410183645751762715311105887860737592179799565691488243504222296147128419978272160211773394904265813153297935855659141478517088085885697094804427184495231388431667710696371400000111018634029785642429865336976655366806238604245789515880168357283405852802330867885719110105718762096334734338868493005198608425858496615936719421446004764233735327021705932462886274657714580569516920952904724559681626384898249554905085453188653220776905757556729495835375258527817091205336195941443018378151396636872600340012028777870016478487694471939380432411849182647033379012285451725618638729828354181475592158224400776051363080001323845215117645902655611330592197121024107941785301770920356097643517175618759936879464238315884624064879134476726264890082095870052609436424112098272467388339274737308439961129544421760879406279754859965791244632054076070528648836991753095393625920396029860356471460050410280950060018360321315501561315173896742741631505540326687381281873212602710230007620717351663240581571965712874160745168981403240617134459592405096417725448907460420766892620414005184247743108601654204225827510900858332054407825314168544127229329757364236428026963368567084568160789643616541332237552391700853686706051812167111320940323642434466605764802887735177926976858196072402765355953191230949550370052131816812980844965106999674179587332409157859656094924823930762785272499575704183500117638648391275481112666795184966050187365857003749661506018697864249688105122237363294297426972933566478112531100701911329572947676271185528888770738102040491437869486305067845368174063354291566860050153928974238575184582672066684937854588706691745050460219258069930978810598878669172804889606905003192231691051725030721043451681485070964071595919507805502266218932549856856621764711984328300141143382153708267628264958292518704434781100403376598813359362884760356486692937326960403639085187415007611077737634203362806315663544744409115269586912651925130763014511402248216651220417312818915409433445587352770925061657026949011437746140607183445950581646480977307753125633288586181184994039488298028201233858921707885391817540796458462468706710774120026276283929748883989242134502480555559228285418110525672317178089671473052775760218658933734437114655196499847844122356429918702378520753396744953169933167351193939280758283633023392146732436525973391702326925646866358327041605939765297594350940443045483011046163121814472984739199741629586588219554245261986395008597601290192017967996064986604633338787742940963984758962840518511696731356680379343453995557047578428382386781217637127577632138492995279220303800650602684807041024417795627259121498815439439326289600319939671020140048426283306393603744510524984832962071356598832749577927453833012451833900785270761829248669680220037457975961737877194380147581729974642755557427272620373855996533727278470630319419893366525402058736950542887089275302921747607355050946865434268951927976840060135188411838925230422688370247681488016276962870836358435476071184642796020451879459937447857176611176033135428054388612247733553106227735907545854627761081549928981948518734272094865160440089046024231038243426969514799658575502041847160392867378116187592540046207094008343609223860009550497413062002495217045412274702774247604095482118455888588796702522267255321192994405779002626113990121426852200929588120482560257229932443266597531590867767497254244818384761846613324479659763860875741776219701820534426020204029904501489906892730651231420748301178674876104333043031665339471158884092057571077342715352004797422792542856790308823573677957669508524144675033302880557495413054921347744695856906050150859537630870446304253940411612608994824791236869030541434774846869262711970398822352903530339238115488566608576625598850114650784760696808610111649977261568710651728757453129497810283148049086916062917965800566846725878197056644213830816926847599515362401731327425477767465976783098705808018232716719978965995630550869773687348570170666417958984213298299472482783433292231533443688548476704122549831390431676831376185859358347515456671746920849430338888072190758320663882812175626196351875019038331104453117929283025994188499679770531367034150218019732675659629162110007561203053403180539054558427940928601030053145860708447390308198824668190055433081805791490282092192020904860983557431263078031537209794386762219171044135214864162218661944919303021194341259986034277449053010622187487185203211178628188552921756472675999288992723416189035889253553995014096956507810891406497508930003911855651741118984989352504087565299987138744378880769116245184176909764461662062529009890586590490104996992760996998736497689311909357285473307235272072348596214919357353941220187419419880514787095179841095904998379705582871076503433921420933191297001098071394887120296207221161303874102186218462818924997144642749704241779271278202686828356356466560747981413681966175476928933727678020086746311356032311946628996872816126283735229849052137902910776253249106596046142986768361740296198860880162216898973616480269063944652380649164247737265342520532978806233222191634057666704308889928568229508773165361267137629955812414969176854048306896151057854559205504240740262556934900148298226970852927398855464636253153925872361442836096918580478890118516052933482397851639453285442787612721966195243267591959290111036115467184676688689581475485747258946590403932773267831171046646280371763792935422727160299827835971933899487826500815038505643369227796574390634949219525240456735717750296081801321848471129379635234433704096105211142561976709218281593717060632987018164100629015785330370044995708455297801299536398829502901648101451783144446942564626401613574367176628410851818523821179538310691437690032268695775586943298922059734684989732486349372912380881004423681808611006056154861953505042664148431358770024935450899560453625675327313838950854516654833477914511080085111929491143024668618252910032750525859184752990568579677260243528346096387192264726531706513986773469793332883380119664384138929579980515959796252112247977378474453295586915288761928979905800225754665441551397228909209358485457479038533545286013822662063518736750679506364941269247597266440491456958078708085024078597272083774599580028737793971345866348048642366402066032221761311894668129114029114102382394124667719852326107343175959182700685250956327608175850186939502855332833893809880959167490306698801600418971218920691942243847793569703869867558720368454764658591564348118286685845843575937111474000861366494185054914248475489144863276963830689735562314289490445618913134116571399443336710659219281716641852936440268064881445710016403046201627378950188589220256404565787772033876010571537643257377527160185191068472866241148298137291949029422561983396392288639850196541712663519276737690274645920447685633512898543168367984241448077234873283226842620889639380232159070633615194385850428471645812842857851417120113511120928961125547643803804015704361484464069943088660185318866378685391013176952666652148487131140654257936455538541011119328694985395600212375825838780708632138275399085286186136603703357521318886301527346214557465129142473919102882172095356197296080249124342787233104355281184459346836855112996593238005284132464149437513769393070319265383983049964568431707080518329131333249404133514474911794443645450101604449344059343812522313690869966462802102588218303338287329708521732624488705499401586436280987922976571234378109020824470168520083041061067855199826148691538451251998911321212793585201029103972630027803938320444465292471367028275826103074628716842584758086734818900268038100329669842360534925815686199470058413254755494178173086044285230893063189076015449071880451772236830317435517501777793987807822247624392760449261477882393892528911326436854598945143467188324819539184247974386272582607352934194864007907817311815890915709426689517130691265806048550454284107890025225123225656654413671090097791731939512546539656863245450225598345772031450691978980145424736989822883205380197451523285844202852213966502672281320154150417888088863271921489078632570563848246752424471791657503740760596501679600683265378797652190206637092615251143431060401844474771257064926372291177670994169655819435173620449768174847285343826343685033819911535006791654237034044279643200325777409318635225454411569853725043370349865136163333578106571273475323113269087600232083950940202196604906505199572642244052173404213032765104501412099854119000544786842223787803894394779625795324789383649846694125063822318584120436818792442055742579499668558149375446087656605770112408836843441250935929019980458589773067066234563922258584421954127536841902784165493895006028033766460649359095455985402291715999810620325080302578392762997770213384251914610096219163339198762311107818117796057218972915934329682594649469744315108933649211727903791122405435437162559836197957080921187467309771705399403071339467735206675014373004140310311179297555430662339465652376982033900936521111398581992934865074725237623482905388979690860473071074980135382779042538917604085405256161861475078921900438195528944166892684293918722795996831332120110458439239562307017501193662788635431666380115448401205963016126751759996978573728501150197329833714770957718622373725252223483518808253527399865467962461900478197323301646382572635250329412978198706742490656669109622002826921753752928219393699700180963842251599289928430668910347484712756120847508805746457872019012464495524814749765865289004278486649589858264676891781429728773185552260053866233915741524245813797776620112509675533545194873004997130644845526481311134454378546422314574792336390583533450457134841635814147622804115790118690699680721291716234962982837921433549951304678751127116002454486992626924290295717009472016343975467290472269086770704743472687445056502730369800801262588387155943128044216888102022742324682844447604168692284073579207625673247637850078965510925980677012403302130326484601233499204936403342971836929495148494798537427368808941105903839620988326383095393748804175786576553767735720490447685041989614654390338881018062332458773586628921130685038531931235711628287258709163048119597155588142817004973524120530469327574168158247571883860867454841271121211378317824602818898009149066411991411493924304050453511228122389237421086276069169310208696338631208459970517713428470417384809594220704782200162080439851275287263706405197714706118770772340461426722369862014454082071762536847204156288654132266988429255727780536202212051907704682049133399593100802459992228585272702558303939136545803074120955373553607542510281773541572353779542639680076891798029330518251985002574282592634209368712502639687793443144644786631525767695100750889127273220073581454891396030408078047424815278006129958743323297673743046688579110039658564691062762429802314563741900643680947172252008045361922944992977006147677257220820233226612845117193435997170607335422839176515584998021645765788073767726153497424080016900750494776245715137034201676174299588697593243422197810706902195863239303449053203003500202732394595387793479013722054546657274519076824091421277535395536696536972159822631178865903372656870664724247303898928068511854902540644967101238690713807087681577322729045980944749581397363364110922424735672633456660339508204686512635572880930211752241606864472660734360261061355337120554057243185465633921863029467099494968152961489197193697777502054340972323732136731148868604809977834399553486111004249438491895427694002491832422784629542608999507549882771088996284262708543835697924863921137924307555802691352858386859179512860690145435058426557213824795664412676851308781059373119683193861813144122655351609463536630787005174804815760045161762764894715903966980552673211247341744371472719835892768839854877552540845378786952834889771189580508721699023010667637058031187198137702128073048702477456085274422795865862841128817626620396028028896423359424229155520183409847128116809453103426450967055566444353726162264022478592246105156425328222966692133992720954200692225945001593434772651746990991016524180610000385032912423817738605860684152340145989148864283673351867470403091815470094576189074640728612329693957612300086103872187843452642134548178193183781859924941218015449394239012542876085508759041175003336698446647813296205542155833927087794613349109326846850066220227675858689152749728006491399753128142276347798349718239232248879106232909723220145314853641996549056730939197342448587339138283137701747778684480148149817619660426471412677093242583354545672709859169825567523226365975526186994676486946064443535283166837907105737514384448686484681515907695027330545164113246845416361154167517056400359076883484788082452154206191340851950706067669374600201435145190367103849139572935753898621231947397634125260568061279648701491711348578707338767047013023372896209375118156586642301152724545010248945604184276235549757717892659648561019558653179194074334154738516979195747088954427961726003465450918548154113197735270565470933780888430257202576491833198518696746673430817722781308420371682029703878851708534383596774398235130341218487263925503066246542805811221467411112065399868030855087758626614861299019619074465856426316974657656791800987722922683543598791915817446417471958862796803499323929262113623260097405457526550619274291495400748356280489469332293502226428075089677297654299628650672456720179620380052865539271229651677655915473165867249902244088289926691788174514335003083591077152934692759503307099894091175352602861396146811610994065363048829971891835456092566199625595732729904150073027131941037127968489787404746250687647209252446320419288671828234617130159580317328430332393119227885825703077858176466081617518487355994696682362939946519894344653286632570114409665327071925256018841662780065388364944421681641783037831153683490168934505387217723281929346664976037351138063965023271417432252873911956930214765696661378306608647705101915714446295633491772467721988618384718514876241742815663073745826119081929006696736709464196838635371975572819473642007268268332121335727756871963815144087228219674941907336505999237152665270819799157620939528262333685802455044256604280088908651289940501847524219128262172788755819397856042010461368133590407065593361156817255560659081853915128559418792979443559236749011731799317346932534885667678535334066072726081908288392108240875385028282677564208271267926212332044686069351122436823312057812308805383634728112675667217694574422562780683569314778055369546978978344673327063108246402389263617602799807035554349932532180562543443880184861323731647686782186025009058558606703922978734630513159313647541835824877339157096627809968382854075315841604268388387522853207705047525289821927719347911212614957942622425405216552823568081725341404563350842008840356773423721714282793093688283559378282430607970904648265832060391232312722665928053799609192697758504379797295249507606232977592440767917399207547804376717181768596179767114704209011446044994465453860033093790590781605382695353857787970727998672685647721688753913448081601363303310329524886016730189001895503734891818345496384704782586378132669998634660954512684669555893973886421665438744930097401345342798016824388519667341183744865840644213703219816894843661698240053249957349765389145900602753000104034760554945882634265013224575964531899852942298371092881711674502559588750624401011347935184258345257809778244428518055532882738823445760917983054216238455969486389987414459772149957733509916822308184445601405257674978975131216653862907716143484839874412531000706709635781708295338032315747112463438374133493811878243056885959021368909703009970940441518456509426757584969583985005299979436556166445061192052619636835573394638611744211862776183806525584051563206412156555282686208019997651633442602511408913730382169399237063606535465175404348127073625414889374252902601789257885144624474623536002079474226845343310314420193144794717702683544351187957483543513936517899936944446299181601752785730569108308084899845910876531266386760118358263069040877242358007258683345066533778944480428519920190429037054382620227738582954442984059893541994143967414328331974154966704972592092029990952612667390877237191894496551895740237128685869368092386755483801779221219802574984816633028476977120747640133935306688653293938946757390096389288643591153503281367441135831672175937027848328417143433317427398940296074899696745830651688298986392125744465985548078709383462413902318579790123129523615901741274676943421483122454167863178838901017792849357288489877992410920044527134886946249116949593216947872933071801030782970763547533847767570339594032970638711774567879027307889788009751001833352209758155203356037361843144457171385706103903854948629138404620195015188159432326117042682036700306622982643578413657198671650594409477065034773133282023298126142804600065326194421455701112719761635663763178591099104988614227714008481323357941352750977082284644129770780961271572094927390265894222249585370024795589354900816782394365793434110068934792458320113988956162525497370477116029537503800765262239610129238654156123819096256042841028260583136042557355622344933766087144144348955080758064306966077903430766076491782617001019404773381657870160447955734498515739643427102769093940754941174624314504241873455808085067382160368828196719620237138006440398609459992827865318601298340631577290102498883326179434611034674496944167479307173417730510650953781697141311574716649239830968126222896455267256097905871160863327147850617122071232591094887167200758776946130614150439434161616999178271265397674804285763920815801264070377405360002156832786352892323549363851869142217129377231355248743473672416339469040893623202078969692540093822674007480269627765440890721210010436966598308404309802864591905588198891416838129499302259280290537133909552778258203427887599799351611862013052195827097175163039553798096761621437964533054408221018383410063659224445015572750207535468184979404170558968149098531168484198925913667567333415027456482907169541240880217892485238906031174558101280627053666953367853590230360586746896280077851113826271828191420868537690635328456889219929078280697914282863280864043928707980555609312782162017437502791205024877161901081537405239656271401074111199980461381592760645142751305158210097523550103344689594630696731523518905579308827378129341715084742125215437194248713070306152653478728836679769889353844675145562554243249998718228053749855059555886864926499548791792208706581475861258263593264544891085822585721418583273346364337249451884749692097967264589365092111760062982926831620044752324964977026073048046084366555136440236236582339233244174502943015144203151035950986164020881314867621542475118509086693031650486366832955956177124109190712717026731172743661975253558685458410227104234099285545083618625813847489281193072330391790754581903653656720724040491415535100636275386865936190741424258976325113481284699440214109271729719436947725553768639768830428581583732231858388051426532622934796804681198950723376119235653598756521543064933401372830536444935561285001568778412059637202833041613072724088806056525037969959105160702240239397938687220354707122376525574638781854919527629590563576272954941034972819196842588770249866003128267320584231867555724619643172515203111464408959952451333291941493513543048808234374282677084964739459471198484139262345863124115426996514741508878250600275584515506581174876739562321820588050763853220558234127707991479243839346075885147643953151193807455429020405174488885588411979494285389632016191547427892254642776062154143027581908541151422784506272533962425368886761234821721037919690294425200872660565564585831240760440001584789082750175708736977321684599713910952555836560898532459557786126245304656321646686797229260137510435402838142106332767939861761478686337751339381894427473469161195791553415650668371741543952808400558555521201539682278574846944076809800557212002576198674160254223313329459513482084825332883131169800317647045691869364884393293844282453907210943031566257793063247377441924131774356045492269644432627735924448587378805281027464522117646830722274814550067933609564484631471743326569222249730407749445087122426800020959803697919924017487681396944144281349379934299532700955107725972552670202987553472545428818973429093951936059099212434332043372023393206820161194021036671964172915855381186169024163508207437064227438130714626434176173593315870484463787753643116957241870555425238890460913624541024886037010321158542160144483349482184039299966754612152228462390271058333342283284793274650430947234123687612467582050118935824336572588154770104137463745282812934122013255581215064772657513428473561393783218848118602996102634848076609705394880861239939593306781587846877333839248321503239535722367506757962184841272103979044883089861168617337551381459345777959680214730367664992220006020965392417753746508675154150774305732523612017453768925123442355710314659990822133361101710474919268473487039107838594938715013244001178881327738107952292395814032138488499031919743758138253558383286053272050259844430240318811516948241987732943759832996924017845447729116220971104510755816842790526657228438492155605057102652542286445440153179537198808715523790555374470790357768613505671463358365402952430008399067949732479757830205778004750988863214157963038694856930606972507505174006789594787665525768108832164959264669356745795564668406108775244827551455925918318399958434239621745103400572173895886556352442068090704540432349258786356832947780447414485873882622419718422244898980870280634554909638609342890770777499973812831398269903388342331185951645685067576378142626223698405666818341257396565481193810941563785077438761242135006771596855135394612196338934358803187209874598787205284239129008848703157594698341922211961360340707530947615580509548214935367441847735314090504598129472389523985860712096785675082786592841127833193124161290174637960338431160759735613947796000443684961738045189815642077005702074681383741298138493064556990974632963990509714689599377016126129776713189295792911447137978069151675678400197484163232672060626088039197327152805394798106862383322152959375161485947882295476468418776031391349666351368428074116285515675093032095274662593029605250843193885020795468338348697862321689446179768055984804119380021664415054573586637918386774982973103259949354556983159611983730160581067980321599456898284844214778262778464811982128129876262340959522106882315297120597229296605349786544953814133847201994264162991248859272719915550709667768318750456001460517861406786696715800356490909742618164140958200312693963351400080194192037450144489111807949130327569747181569630709839810999849005759861578374949870315230730171063533625474472140063154838091119493310040085310512884239099729083290446177804166886022876493395957244489583924483057113493409881928366554449673957572274214503646312468056540524586476519346610139840204323047477840249685870662169422649864609498083630286392906491950829652399666040095493179259243043628683691326887721447973514449027705214512721034692789591070035544085568504931734818808823955635675104726660335181054478606373126863250389798421097901310963971779496274408084692018829978629398302419694480911984086129987849172980661129041503900358824242271187286010990187456152816536517228535761497803531255762243473859481552001945147701020944487668419854344917519855041667954990267018397073631336539395898712183052950288072683927917090708435680728424840763592209190703482283282142636716570343134736935668574702520092107355130360952606210936455892675670640861980806492190486013371930959665822897550648064857695483824384477171419903915444350315223246531619665385373275092212973310672740622567161140409529325724471754496657800766727067831399369656259406085718501080245878596564630472877882121849881474852395940604665152376793010177559071263538821105741631440538876528056583335486667854372053641411622870963680340967056320340901778712325377001055223304767039233870511494214804870544946431613675951043521936440785300328387920254945079612374231464608067962014927377361366123115911489310841364003980553967788183020010241048991126823086252485551455786358239710853663655236107817440973573772449998662983981496442542650910562564248253707365955701402053230974401446508093478344029626471939937418913030551356749571338959050509530245119985087578121729998304620488578251548086396681714884567464344116042970627156872858520562737657601679522711698902790901710444523919749145319140536849373791629207917645970780699169254305164086143972963238818355984139291177880899620389972612115991712725804841827257528532884613413902965677228423448964838982970962044195168564443575107428404366542324708451982640414659315108044125096586734732853643425571457989812527955390412340402761392410529935952586624640982268868366304430685280112651337572491666503295297205529676053181630018769400353035949293091911149047213055313116471754543215434716036403079763417996161299528712665997654271044879218782658382055226351245391875684730253481745027769510259248767032360318159197966710123611911981320552844693546004854437970083084538205767131035220178444759158256692022137101361035189427059427871621317400289758353991830793798948151240747946843983045615448128643630292728450249796871940510963531546368777492499308299383596903893555397757790686713368329880338698700199610552581579343689700653349429170183619415976926229076249079170923415722659697916937612527280039647481946702794018918849768498060184363733235979526306603257587843154524373883013517484286868189120945017324617789528265534134721835536860007629252670648760187501904012097271787795363212830292740202823699867366854688211055872144266074347064132225653983120335295075749708071880719093932236301420664206425696498653308644098185989456213137607882866282492366739261377266100419917615923166629136936433503414059197291282493875114024449275713229086839689022200113595073246035520706428902160117691719858707827162604429513764995709742600794441963471128099020171269079479991277086019505728618040317628381143111211561837406752964813450410097090736111837955306262659353517854507490817555436307802385671825710708133607596209641971391235644450633935792656163004353257239129076521848019330077949343076455247777443880345508767489860169212132292593529548850470368659302957459780329290803988121974420826739871539710813853503898654608006169409254182354309520231164202387973452380610561187574836609251436091261085235736632374370418180265533716766646972084914849935662723063017225886151394585506724231405750595170454229927882184447007456032250395558342106301979995436644509874112352533443978560284749261884276144208162340555638069125245249797006147585440586518059241169992338905359672813828891387346064104059903590969587334806175267562621992441878533747604263293723393061022997412302301061896841707909546457107130121221147091416661324772373400726221665951065772451196942466361234655157182656864315262532154230252966010712691742095860719792114591571378087825284758988062413849453125860868521891389421899322139737597510766236490990463525593124406904523869978363071049085603815842901027531344721523753943251712012261248365214455054615891646947173052911043105826562338026452733926904258172054577922772275550797240720656036104998950297595196745721149528920226853731222462817374067127808388167244138853171596256227574929108405241925153713498973516935417120536362167465620262585351373105290645761653543302015602896695980939633832588459403415571241734864110255290750173670422186878911408112096955584462268146349428860642568964550701347264454610380551401247114341695182181985074425355035880241034750002960498111445711782711704635197860101798880485820311083881772775509433446703326738231117070139433638953877507502097756652044475145137644814063490390910558321146634818064368716749480465076627838840270941739767787102433033820993965439770953973893391810855120387470691598081592979944288096866180155993851862993172089076878398992193634763165793237658197742787289449591963350229614165851851801050224753078751414489530677157953418599828592606164761732223115994020537765454593667280083829827272144051664274577707473886530998235705702542256573023406282779590577480522454272818909362710264701313700885448630272313125475888680060360656726115997861111875994937140288769188528581615369469555231339226821515942606442096736807753071964957117053022242593115204751570360421798306495401678183504336521763730928565409997790826265851078982981930604615592975814832622046121887938501414000854064649154575388758291429223455473712014834940265609850013311392591290626575072824194491951947174152680552176769302631994389937369481528777269302487425754690452092531632202401954134517927323468365823108749846061169352906543070021673185608784992170342806424785063022540076008623925972926772673547235288120032482029190119936708894298033797292844773590193289615051306291573587637782582779382684317751386124680567241553203458017425179629640043586476405232188218460761490803237140439955581926242669059932316779477235455007222802711397486871375335850001073063431125563043223892579998374929623190074408561904341556054496256105502927167224421666621310550666147768492133480409303183576003816818574524043566231353570878777024657893452580149443909895820380373994463192688233679679686684847720750311515363266645760499722289505079258502859498336406503807816191249809296539282485817625389887090807387364787352123265289945732967572066478514103871030136257828787809663153827666345413331735497967219032349310257497400345272747602572065945487966619549368028729183983348782639400329621594128131367274406989069944595097724290506483867302010590430381537722722483189157100181685528166910526795340689164471953745368767850194825809830352071188600537645917330978020204894327318603010788406838440778521198861586556865970856930696764871226889904985347388407488723324448383667279626099844714449271872528337400572755323631905487261547230557039066008471340623145558586387081228587627938026427449085278866872357391520383271834845502435544800807310210317736293215239230008680267749952923275447196034342576572228261791754977126706611915797765397728228039117408815268106084938203754297006789079879372909994898710793201811561565819286300791982337857812706355845103670063001004761334277178289406932419679343867635003437431940195702325256943390957396064390072958899576288635059447497955287312574422600726730892933150741296941432248055739770172449962514900677458180555747947907485728585087400654253022818944235078166142347043139574122952741387571081443785903831477889157645875344106578966286914434937893535082958482310536834060240991860778638844351953316451867369050671409179539225442591999674478236003402547162847514979933790591449884609888367543779753660379333520374943554168567151024764611891021501271684437538630619434602931879090336207620237827271060513748578482597594912152336089554489267514412008699617447074192889954929731975979947861916232246647594015841791262024805492082541468537715753862168413805234213101107148120643148790363362616112516164059752764861960251035439123336666514622883712621234102515475272107792272112042826804121766498251297033974069295437804624306124231381159046469769000363971155616397345322161748748789265844291482110619935765082394729092078333176660045386426464919675309732496623496974489408429082189591069340875915780269954612951438582481577900122410503267992316569969119246245007957455887558237537007393901846726141766149026555849221586629730424735906003312132006951273656164785975843431888329965520362058598224671199591208146725954442667279919022050392609064052523987115307862808564926047979151898359871791371821995235357836640597580131968257168080718298242745455442336199228768944361465271432564934855921466812498469938191926220191768447386516452359388149560469607781747368402090017816610742435105164173341744620268700723627781766198254814839512822102111093812766893231020552770947281963253491603030730955066826037902153066849492873151255954693020964966621936998110460362396769444089860966648477970967701715759041153245510843630596377079793445846622415343160664580360004007454920808776448264579430675251804080016343581192498349505774014325285739056981296256159940885439231858315070295120910573241812960588273814686749061529387804648932942831541793570850231743439885887329708043026980790005524436361363781373734215946053472045924156585501531421406601352722094442095182396338335841771885964652436059180754417930167159559285151296440565601443786940053038944931179860477768006542271869613127829578606092779147129249890774909397752588879449350979814016301597701642893679572585230039074092645797957985590829973576326217039395359113340309824337666626642950907087263884187737838467941180425644384862687151243949276306147788402407441913319210060906378950483235432630915170943515684959625151647409539688291777973116307824230772362039886045608838191137720092136301445363050282211360093168769885411952261183021126430883459587886186428053632499894283766088076412632083280107557837967214735876750231820614501575418868762336364568565182667517445955400954786632118852438186893695204879137785758498087085367319509267856782433874143988766261988815114960197156431720446569424883220805236296271592055718075433642188112248566039199900048043909375404200454522063316206663238282785277090987076009775296483920001873396992879282437513092179800390489813106441094652509262432302222894938142694626040650734590446258791182237328480228669537421456353167373026239300470835638514532028988349646278728364395726240514378738487772426789982362284665466469402692208578166298845956770371620382518528668280016318350106692885753174897998687241715725961828243239824838766059561449119850032956593532728007603615771600245531950371883545114039131942479864623958653318359333307989803215212711733506345394399078918580486284879650789249366621231272837439202071258496781868863890477249638843766103343454076696337630581985133801633871456772150683470888108853694023610950492830787856842091201811622723442164204971226764117093989430600739432328926574780728905864754708327568815902133730638924109622166485146396407711267704441096774456568330081818667134871498385288354253123849144040085806950450755872841425102019198388876159733365769807413879312249226716893546092241662377762025526686105287069433636961737555837211803360059053299818168439318686761433030674198305737957900512103158716656901308865412204662508101596365477495054583622944295097400604201097802271262852861157534676298876219621116987084774990042177664532225939474739071392823027026046184851423522362447435354118468581043017228408162923050577953648784065067842772966380118644101667368388241290537965363974786457617327963722654845183740014301854765771095202890372307796225684099252966354695439783395547383969198407510479905368175804273788113324230736429650028535955329250010058656268675246033647931577953934478827862467601581987295398813200397368435471392967056719249778100763250383630258814442341940648183148502188251182031152305560364207000750814807608468754558517829976718219095358173886972402249553517547653659928912462937595482679250230815509056958864096195915949991843172967312327083437114879680325198730496541169838270145507079735254487199846904328603443832597755231869803267524165392514777679497298292993722892612003289051326173950235776477409539320462751475159602238212790937114314670111525134058756180604052999590671412699442910087559064095461038395102294446574797154393946442434088752983453258932877910478671161189887212565093698797072891685817962910736098983157263710006572512267945604302402140408102352294873070213083330366703427012314152696471964930456301463858112271285193506677794304306462939784997372253722853728690254577274025341718436232588350000202994266377314744748094619652985451722946041286489173868718224412374874040039413587383204328558455538501356907476806666195619392274937365916633802054300863912885059742430110574905204499735401211518999746072109380796762832562295659751768622401995064742267092560599324132015494169868475466631863572743152846563276928895410407063158208975582228490516565748737642209683459918574585012533004892638379808842817907179816227804308697443599000247804541165260366774644297988921184194592399905608025512632403351466011821956850030316561382050328416594558797563389318460341123694211586544318160129390976673374992808171288314794119982676114683384655399778419202006343240318239215724125554125115622141053905157293296221213761754882552223545444083916952131965372446379797147473170941944842849670230187226422849943225282639197441698761940625334112589614630772872295367272339178356864212812814800873339256367423429102363157569618219153164657532726237859976989385419133675529943673851520065004795203720451419528269979582742020618736272916841607600176786352362910247540593621892869388206107824770389727491927007983315189014397374746465320055819612102981967507945655055685043105200226819106173095639460934628743015690297900043660531033028997731674623422542092918217014307074716899178987540921619942960037060162813814735430924000840867319148491995100813665483705677238260357145019422091588944289507034539757943715890748486939134250929398035097581800454434574702909200199448461124287269484498129830896740118638780669457212758698312269320918509665438121236917492478939190264391326295868005939705984832612294005882350055931067620241809185031873112842878889338752337826358483779239470051010453540550132745635244524098837503549481194340759279067213861541235950139117757900942064003762202976286065266728238520485174215395655999654400522922283272179770338108298648010769140579533065514484883027115745937820498566150753558602736342289846538044424108062698412340085344483091564123008610117207892962044918202378261819819233358926549827490347154870160668342046188470445393099704166579431364925418196764736419347252690486761992195358510659354649399761731074643843671294276500973183587459125640373602852828296979311206433648653590210935438700239610806915404671596994838998493419230544646265006660161990020366937922903180012669236375407000187073883047072674031180886580625180499788816490672735866354506487647396610023506585233573186472204266231448373757861461313138680293169689267028808800215095567464266390701254098746589821165080810585978304870684290308178881202688640650102317824423839786735110049760175681055651252171848531009377535582824330473021915776168888126121008318734522088476367473230309531946046250282071922436016886563971108836354337713602639061968784805144292654031617364003450822648554998118566338381145955508954399226435815397135512086483861183070345437566985335378888791133402418465566090017887313992922443266737589473892005616899169375032695935577625469143486401720954513478712197320907711723508545960744799850385892541090153058513973741246760445970917656904855794197929257124826701893984106428890979396667756786898147649898536954771198764849427654537427987237624946371923133258840545278397629906232082692991285331228504915545638651510432894706672169044198034484744712160597976975664022285917350050837517037433519631152272462003365273392780865492402370319459052095582170101386391335036154351844809246568145655948478441790475064571206425745015702762791376082632765427699955208943959561943281383081511853341104066783516938176263344951992007723367081889319231984003345775070731086464120879445160358339763743127989776195613647608704064525801779341615688925331175768329316390147835969523920382290313443300865100433019810102066061801071984214324379493128965769655420550056199242197498583463185510214671151639902747302505043413548765696652545858866020504264478416128070522311228889881850715330846093065025809878566276492535992232930273015623317644341967277776511111141851720291515876175178155137097759418219443375077500646515782733000290239585035316113090385643812711339463575445110477971716851305355400739351947462976671575634066615861640697757561279818613701689347087105506373678976791088942603399899088982256897788261177161977068368640815661770263777118730387771893228353149894250642961862963842825605977087458225004805820192345220239015047795480687413008671292802219828086594418853432001601438615668960075767442864830387536844972889605140942515524991236361351720230154169180559412497034687714812605214340109643962544885329532416238498475381930323026801429064445835705558282702471071316948142406829793547827279066956767437069581310779256241541432521851994959028861375913754779940616563230427628867504563445776569662564053955972525272430587616487052793025626930583036096061489847993018249424804929479504969361938614703774538597682724411181717871291798801332859830458462919486746895784310864902914557344489012843963236626408097358196380450842325021739968486729442701031377653102413592106304776109981050600606468692031276313878342215566712420686642399451855689702814102902403914246998151467800902745474507423236501303289828374856354772806043965497168145926270276315317924352039303313599372046773136737661210759330421670123224174252391986843305414262671556416011556115165906129904810128683896686533500808019018074115934868076479697665304767608769369419517291808190150948148009837219567725934884635755603704637291959011077361181408683078525429812159285933755772113993276488253191266526061301748395687872984499027256461706576168241202662987147216834627163993334328197074182324588752280110422108626074010345490120877903958240343789991435007328019574863159511036085617312485584730408768473728877305468791912346120742823314600296247881766926780812274871061617022742091600085459163910899670891294304828006858469762998322429831900575365240582194488654884489416577440536674120065189940080364859760420972900586722070590211548230180545242358788153547466111809212753874461334137968670047887940417800167347580888955729372966104803341952884720151889195891814273145174063380836675107916247011716824698289312450406495506500096334905819853726929367527243288457039454332345395954426136316367806803101893164002816798009959502188700427982007130420618080816499607814258964473953974721856391886061055623484011053904234678959431868654734788962890727301508115035249726981995972632224037591788709975859262397063523200571190622071621870256432095894544661487689150403300918125888379174214417232793538816865053676575754959857226001804380611484677053268777570465055592300725364007035390349236623620112179698911325317582718398567827128755173280818155069283012631211354943261062086980985213479839975611028393531048136910780640726002456999392230805892331570542852519362175044231049347966397085708402257664830340992115599360113085058446447865717839514487961811584293512258538685716446542963281619301673757361795067625732762545313182478582262430761644675885417171276923713027002629968589561479630378917304610483950818593340646442432741029339797398056139357726513183674687489697477495677260346205963989178912381134131419916875334787936528358311996185979684671992436139097294015532329315153175015812548532214263541850592814484235574381618384286909223300640832211603479765437327638824255102333020816651443256756033562697696404545680666280084916877249497320262445423456637320363956083467850767321831790043753009612625966498533768083727841737986986120478350788096115086143960510495950556553797319877236593419126338275287698377185995743108385976368085574188046357148613687761825462042823178868512608397860072434145948760315000944813098490021538864049153719361902516464862263319688463849854587064418107019348369110531332006573653678470770737443565467383714516374387118269771203782835620226075281706346850517745794416422646743240897123758872194082124218840071197584460534349198494903580966882117164572438866485075567276254820328378277976644866273609713811733491095421785576145493985188731857116444095631839891099192018554077324570898247943434121277906593743563231976147574009345034737981722963507301384078778759344518124299547843945836322089311155557322051205857249854591341784977368919051644702682907796246200617975179550449651278275038963657002145818862253518230003096660078461130995469361380447662139515068933334461053618813910916737336661819862744739196827756537857599992969739870761237965293014773035772498000884557552442491224196807977648873084716785258873138696714475444114751593295288150022937025510706054257943557491572221590385504117247603104183617148977171631784919684862480535235707045708342077631624715541549741135919835374327681814567651445870811614058826872299215896394176518648348995040406070948968999985329717573578421744327222703924204864128784625516590674600465611645662227372973635372837919647890259893732282666101096092918640391865142302332474296447596001268388876637363369741154770710957203292523170516478886552715745208872009538560355938990203274735488590051586657652874887123526109109326993699402847677503449790282844061396899799210373586956921710187648423665208880881527834224995445560253685321003203656400956846660034869448378163336763021678140679814173266027069120510305194635753483064515393949701351097602131372066384009099351200152159592701708349343630305982861066353868442074374565629015374792291693146161079791141314254741909215484228747075927287762331919333047992680501208258855699600346637931127142918063843730066141909390561534063371574826222336297339467328972077912492400012963104705001512900367662567678031869389971145806622069724243240422624833612830387119117232865062821014093047926483376156379034846136949834976667677667286532983187790877179774210242420684380559087717796646320906104685799904755024752891266649810819628035983614296660174264324032739861838161205471530803858828786853815848421722766801700775007352932611077647440083691494086995095724900301259189589430370997774910054479485864836902556851323097395702924676128352174033840281019088955844731494572595363523645678408292755133417907893821600401331302877857142105062950246969379427221696557355142369066824048796068701986751396833749565959171299432238415861260783635186492965154583007402055022524772382084412794435468185723592398980750286573331221831445794579286506640610487228072947457784188064782235562676656226044858099947821823286391339663970790945197091843781277106087630191178515693486016113038171390460387499233516215001546639795182031216820175980168254985605343899519379973981283962775644030427907766180839736378811171676382806998784202374615581823575906256415221847586299069885282173700216241570297997911873132790662163452327236975820366589570329876661183041832512857481454853358682646674584565689419162595041177614258375227837431010159961373095506713204264435646236563404440866413689207005546677289460247333918898786807424981637623608254844001199321689900851360029683381560062824958713517912958606063525819642943295489856055853309271679385914300841797920889629137320374371820475279435046402122732089463902385454191449875670781417223608527515227421503979887670036987247028677318340133794589008865736085185495423001232260001458382371831967342228785889419433519016619910575574556333483225183396609291661115153298109772331132767823416460955174730670787807134504865387473700348241281528463371988141046841396319171472157291492357920114899608148566284829579549302343427492757816378868752850975209105512113003573237512407987424887614712828824467393120495723720969793686431316536418449043417193457925329774406232925981267044161491858536107667215653389458470553783886685542910915936348818690489651728261231088746437833861554236979288242579525998704966162318511776305614107035500609513554839415433128168631965541137335063327361845161704966013157353120346977061419642014604358632934357523714212591659845815516802382110188388574120085520746626538073046060398375245331506223895047711339335399324633386502920269741824729346154274322220069046534893085980416844383798463163307774869118355382075868853729046967552795031944761504499216770190466823292557115374312309550065690363129231664959642249708383612509667577863575600887648488937092494650160909204064769308516053583067298857082319038336994136074665034075211766472674834885793650841515503704364925784262856580117614305102545233754025550834473907485202054823974380756112136796401944601328062142882697459711458642847577615115614533293809994267705217941378182216348623097661439240427053025841902591924470626981997477442688288222001382442419256142253953529585978526746680171573201424091528119421822429792860222915356824759336543882974935904491530628119783356518950945446570576887533014352575181119253702685051407218093367408095544093738905632237589414267949447315033119461441121026638158961867164562677764532072318211695138016964281382881214250483348577268710755116924217434608762484923654302519532522495386748150022973294459037048308396525488351012708200519873496218854642976483632063720292283206688651657953112991036123408520167150650774541312991475780721671368270113434649204127009299063073697314160167771425478051874535629339083781847066504315287431093795943650240730154174627206538718111912036863190434598052641052814517980397151988277160685464602658120151174751496789227726664530277355419292244534081607975594697263544973479035528067402486993543831076936264296874389613641588785378794837177511044587222136729554579787556292593541013322918752517172683419894194014607284089080918283204695300544030529621055197252837010209765334094662837942828465379469625873761941178323025663592976983263067695972267820577253265769790010076767114970413484694858494559155690325004699877875194550227462430064903052459819526545495801093514936820900818269437717028620235436251466590639109877336969559996600661716624859490821768891892239339947744423021160962588470494930538080613272932120135564640972175077095235435749691123683824022115496173908566373029533295190670621756378721009489805603609173615511778024800070797653017625947152945287598335316930378764313160316121460939843966990430327113863284564463891839325945600482810782168401421151109991399103338761001701530433555124162312364826166168855516172764482326055059957209405727219957957773296289971512700828508597940059378724002171614015484305610776481903667466118934702958376899973600673928280143055386614296433539906390977417349920818505137534403637203423751126009118809526098467068881515874558863235580394655572407438225696347613521596004071461769186747467447217695545983940692381106656748402240560510378550059949269567956529364125944007979859968054437409930765413783243812419562646392422645969664961940502411212178611083827407235565579273173527376110364212964951613587121590828062989660425310196184807408303779686731181001751194975484624340035100619371001434096729773832251134516159659832727562256149621313130639769541697737419934687402399049589193730121119212188321422690022053386138719904629710944850192567703585885412099468514184839343495596495076576719115842149722881992306227786741567256461956702312751649376121059883324579257401016616438944324146554142936386194634357953049176864982927413697758571951210182320428901994229115938819222764963881158950391170861757161010554098582273806852882765352498668270144433167143694058169370104023713837307719632835952316174621179530173242158248885822132852735737351146586784705449799597477995081988006719703560884132058344001394443015062711063298053800058227615900221011950797578746302060083006008765960973488797168964146749359802549861466260674565155344059251357825252948548268743070777456801385128433414471532712137505169772514398837826725160973801028169543337278213555994576848871703431011142217373488237289214777916812511094113304115842517316912427190990280769216281583339978008759339199125808342819258412290131248828206102207757268505278084020342369179466481307042280977792731121886944602696633362889315245913064225620404339671373531262568998639523525733228976798910699091023763824444674648857995476341269935578946831533430298070465114299961334165651674327129375678934550488888796312019841812745513306915576588737035850014942713508776786199390002378556293779022158071199410950177375981788047252413869077545879830458381949813196411964280694566917978556346729202583940211856081755299952486329309650225225850515195585419185948910515331594071465631187526748976548203819931670346878218884202867928056280882718626322070226020056214541330266937095996306696747991435204941326483390504911707688486638774151188010121594388964520991737329210270119468121243761824445661319161372654121305703285036467122266653740403289192195734799452578495477357818049527579977015369187813056031283771691479321103249017721152762794608524492371038957315716781251992892870937489202294127601791687870055621299082337600320204157996110269064146713692075030492569003379728942325837920516365119014358013986794075946171321478792596359211213903923752227365776824764337284871866456634246481466918885350217754453249591628002945258784637743719437911430097088172895156321238405158702577536363518963863579870871991510742458260227224040053493088816094734820754455157617072301702909017884428680055493842272524688976046459015374696390918810357116265657559283251936206730336697489618312054441341501856242388659085152258091342287928238718255649722292272472275630937828253105699950639434989018991298305562142976576327391531579756038607961877328698206042253426378650310884118894345940390780556207492674392939303732633987011479507349866786411002326336793944688022300637271508936634837794454190000165716413597330645296416411772203185856484711390565572580705238052467344800649291790904627228711495889148659217910769023626990806660916713999811912508758845773769869746732760070220762047608272483901209575472277267272820562034513859581106062799006739753044470615978556350306475124445918436728270078142649793392709846557971717493443891846727386951605149679130192609725456163464358788504388805963505329821524138339752269374406268419604800175593570527971541828531879572101231372739984283399861202506014293896345766762543572941880056784042076338463344726886867182839083596780846701474108171850518930216546251444415129606163213398411022638181391529814169382809659170432044955580155608831040301064299113582050747580584720208311651483455406383482608778291787821842013903427996780301935317360673079114370316080803180252468951485426976493155575884515264692398697084116674075973366258291856669385038157906020386151105144381186369102688025277546143239228582829745775129466266827348519837285561023837318253101608157710207426789671360970786123806170735514424564776934107658756574931782216484621397968713859518369313837358178405008119569213010393466065175457889309955639842042604463734564859645122382005232440311611995687088129398396900234917539691849676818830087176789104475823597821756218352413901328367153242164539679226832566647317011598318525701192231200344564388471028083158699070457095032312780548194563500940665762452454606588509347387691649378498029134821385588952538667638766918487662426271839311731679948575588393586301413302381742574227789364934178950545552091280028736891370786864484052341757705045538721318890581505650130933308923858367437270316943266473193478664038590429030429682996791096659071799468389612720111282684385831127821389307932461919102674276498112210547994893203173659667376961965872996824510990346816373319119221322207287468453110577067735303459764792721219043616306211578003905891882559477597521802263706903509250305845070841920797834564708871251568741684820071034464385808052261514609151728953844640667488196567483337667009194094943684515354577158857970126884868813032913615485464541308243523041472585661775540899952949084607743386524285709870190756266780493256091804805550593947013234240359900176266639176521123385669929562156655575415011762686378448404583531843551845391146860871581010772934978255259437560997525137136112261636319796546768085848960191296156635637166891802235329800137187975774354886977760411305186564065081524269010911446221861827708425299493598028902994232145423430173315811196853146808909938472101853849501981882434502240226637704945113425778686185153342067862867812605676400914296645893732116284744996909398057646724191026595520944510149857207259332378286443368977417913533897065303089063991722269343747864889940835648740503354509010284812722244840286815618075583925291780406804496923289257479544341687002008440990582187772244859036804987324941011149833747543353840913222764066686108216077215630547268944887382368871608957283795197654742849584356199586787755022137337244026259316921610727647583746539544589258768078097508549954278165822796018992551370205617869392737316933460497866211840617480661083709464437236158698850130832851927047014708701922139785553542398150032299385237901976615395547979875166283186852738968423230247880053027560737358010550282601488497423543210951351097348359502293888340965315473030453226945521940150214376167685555610715971338834499457336955306574019154949088393096174102152008301470169637993377322713586605626975921267225175009015858066050953724978027135225423612092055889927117737471660296136235188217773148059985112003565821612523563700144937839170799320430722822916346086899771469147910956695916589677126109214880662843686491504552837771846785158018642450188293819645645196160917126436442169303943830701322548463789544137587318540617558937454283492133813299337359930828382893037642937686491689731882791258964800293898434281667131710511607211373960784659052204706400747607069591145944398234418602995164503813342483864118420139737662499037103572931785370355848053775800159182419528144537247114284978685864459730321945070735040704012099504993859928486152504933000434966589428113461396692144432212642671352578024110054740501957847907436012757762942710736238158530107402140444651436116535216699012813830489670651139471444318880516773866132134931165256495119463087378481449182313036853986221115799633213909963745590744733963926037561618448841204368778756535184429583226814372369419547816690000463191592914844355009552853127895312727784286267324249997196386324575152872241171706620665080963832125383352094807235224732660164636632801732120777716376768799267577430910696078884935819077816316980852433331324027338174823421200424533827062360655245980869609796500339133747115605926960973379638379983067360356024033687121807723779282262048526172766980421583365957332735288633859180642237938300403356626686282019556923348176544871638912824824183851016312573949948888389843272791995044905977420089304140509193982823463148857954417804069220475408445302224849737427794428418404907199955567100001312229732191500406868931133953974972415999226851876152838790577175123504086749094243073948361656121489270584293587542744657508826539619009026948693227028292370120825773624546273718333986364394878295780229824128624523631260365134006634721203598032195197246279567795526201364733226885249280071299695390372867332726877354964664345972571286524468580884252923100025785806661162461636068528376841055800752635392469420501441622454448472819018549020883074230408198487940465994740354850241280693637151134505873060319639834720870147258300763531198704858044952102192170187241468764295971463721442424945930567226868888520974175603723597144363715773101177364752394788087171497835373447969277966825481863707309652861252713220180083350038812008117180387762080915430892016283992181265709827160811793319535597793445440060880462992691196776800558389823905328607014548227026239507012433728844119265063106500318149801259641583239042543909935207709739129270050662140425373016468239236692627993995878293378159316631597808727758456149062211884134400494967163154342723146279452786677327701326750366425427691056640981978033267316754656614556561790078945526361315494766633775055379592615209044129064663601497003987973954206427939304589262106479093376105065430578353330642659708084440815104841013190635795377030889622372780221863987016226670268485830202058775106902301563560032744164340847077693831269521794453336548739556130114788386038618487820434588201295401045258277352176289334611928178378637094036299043281015270830365322886568285253439708793633255673680027136125776644812119945942424128467571923271521535851745015941598886336922733728724963724125914750277311416862393471274412067582561729679378191474446784286814191775362252535669168238502875565453710972152938495539847193181127528557142998689949271312873215116936724541510188041533226013694265944611979787411072188374359210969287592304182138729809309796956064986611185310758785131046701606518976869023917466232689628050431211052295940765323750435979389240880341782074705621849129596315341201315743041379067173709006840716821517597733351994045234358118875016457778613978767365360448029538720903252195862287321533009570294953825475530912481374444498870366510522026366080903421376949566044156379764239259383893822481739006030304854213648116402612750866420883238001224558015113366821151842980912058293337283686045469085493989395365279386720059131572642166294651220536382828910671977363937610932868982362380577664009934853724606908475553312986884518310911767682989563786817664426019653107412426880268832065652480558011057992413786262348170075481114253311592884354363430674800479253841613955044308776632025811686261103228151458621214397026481091993129176781589209398148590170081497689715681386930657827969850565958606182980382035744889006218141026240191533896430689898024755146604604922886716213946234515309189475908352701493557782494787060889378982234568562982733256225269707724994908783043191057245318910082472477801755385810273511686134131701474555158103447732173816962428844193831227376811697982136729409842338798485472444619310429119301515897596850553004239246031646509603882716046026775500747307287367549018721135023491865471622482929560397075990338036545901909142064080895146736234992846750867640020185093924398267299598932712568678270574656100740410684394976173441904579585157709366571698399754451918611768449063873610493134130302830951435216014157776602927866232829847180959293656580519939373777700222403087129100540272015023537966481827412943905407014409932049428131148751572256056935207324420255362832655396633876487282432054290020885581151943562180533603052639977485672659224750877685289179067364550910336851802624037119021061805774422046554078194120468428089373214722073262080593799437020987294202108608047471366431888452944833494472282765327689038303700097597218393595611976092465878750363779217733616119888201863848054364045278839005801025388635918605663544050437492930902924493456555966614515808600062013519602506488931415834389338370372717470295321745565556250007526206649993922456140108295118591790503850297090035185449800701614116320184903452535057586488406790441893317045843434150982987599610264203786365534741824625843053308972223736436075728362043382403138454976862512994281196105050487155807980306545798731604073262721224180903379332508965359840396181378303286175335651275875755228327397868975095104970496765689461006135342226544434502412969247622928992724290285877265220690407968341261410799959935404672540230798289525374497599167012844008209889307301770006187025838476147136917369979632508201365869218385952202194031236539312384754572950056324723137758482870810530721211658970226786703217305779651517700748810217766827713517321690074899223592605717479445425257433075981996818918140260224217488040733759874928738671536493235664834272779367655218557913301209548801491160933094683953662477928499206316435712984942786012576465615297429241694190807810145202434441191318474604108342514897780326977938977641495369634960950904150740182428054098771821928196251361758751594940847522238254067865376475709457902497387488350044158583307136421244894088892156870557984791115516560844739295796657394078803404656508884305018534667313946388402993392050844859179761501418075955223790026984004366383606330936845990242969683379625956537837806422743635767119379958984405142756838371107418190697120165279084724921562630563231155229051671510985629764455470665174325189047811367054235051283609035598017152656900680049432471696025003726987470152209927507071516503488988487430740438914535621036432059896194282430961279306097391380451331838241023417309418952359361485111893967134637052730798342171003669118321829821295741099955546634773959022082618769839954216279805598247755735574743441597487966246117311601626242586841716718881666682018382033871639350255263690918111781272354489066174030745617476256375610565921825641481704418086337067637314402669392034208306149515705851673315919799362458311768407521343889587166748100867913016405443818003505535640841707746464850982741209535709985980639975352804204354928668089034047234674215495341576269937412764746284883000182593567923072781204349634813560773154651978774072685748631567586440741155711507225649361335885099731687603168787593051302747789682718030915798209371099192334965669350058083431654200125400596879147405695696045160298999581931498669372007223456836019379678075088976745428510029936334323521227196055182897934457387950981602072134081112048767074418154162760098870478838968702903601450048554802532447897209343774459318311580823890704691119228736839745661955052304784134867390362732117167331224302243965118842420224712357060154453600719631221911026144854088086519853146161213487251710940962766901545479327657384733668613432426788557543797836353520647846996931236744880435232179668149012507985215072370589096871728463133904526873029537193099672225673621070771575336705344884409095199321853756472371426179336661972757206582704736479400993203335446500252748880652124300690902131176767610980797683475647768325392562370244741109591257799440513429965818543251583211359476879181834806267968455430089694047891448853858978836217408142082578422735749287980599194328584608242087399881276201651102735227356557723835256906791239076957171731005053105545180404828022648368171994420548213041464706677039243376726219427702404631488865074351597954849618354154632575327340527286081908653536102064739566517840482790227031924917775692136706284444132140294054796213448645801626763876916109354423716484264177725716109026942185932694171400930673251145410684239803151422109279186730192726061542957296342974984121972453776664959287459651546324514180961267381284505391282477597296444048653619769132517886686515524020372178318643337112873398030435323865858517174806453177027138429401701410755156365477616816079166904219061254457686515765003134163470074396882141527464271350539130977702922015430934727650356557940871240042104398726483718770728648617977867713703719301437037818514691689671425511941240460389166969577080117867587715700643793048406497109189629333176045146765684794940410756784171515614622882994394654299542606191463953239672758088126894500667738205517877689985631648198890548461950763657318348987649226979999473794404973695154503490772954458008664091525641673350188390069484155850095372507536682330418641042700415201475734610227565679393550075004481599138254511507964550766239854643092145906498932654573094424945748411131439128553391076207512969955245685935784284236656838266687410157789203919048008297252618365618890630947350427926908004643624681433827483419567771829437588994725767893353351203419885727941906435498446155970375704349278147484549756871835637096005612738614059772031464504216678985318502789821809458234164352157964658778891650713296213113935627077794870691265089048287137193039214522784431741961145427134503129388368799252881411325259803080319611546578134060631938155635159165092648040343165166382916741552194867346702882610169374883261244744730969979845380373919931104870223345465415462835117351760000982051861342325667342759356173063571034670296100966786430515896816792345437928980031288416606206863284492471006775346961396015106717881456798259726174395797022873424489237499503733434925474388797414690016148725981394964574369811015832405701740302724996185145043792705562146258369895492420238160027176031904162416584406034872729561090536087522957808293101912482965130310982529149282039181223710545456514449506848884668116918915289263614009963384048398518923885815178669697560187841388548134195162914869942244186022209903863124545513013831796947673501931924860771439487592819362246115316279612834964960105733569761343157334544620686261850734205248632045175555167716460544939487645393949264441198784396901984939359058135169835514846949855876260299165284037903228722857982982105582701853858262503446681092005353771054972712231388847376104668250778361745341889994075339202748941796386152457676332298132949950269236902172532796173709000484208491942416748426977338414969030756625313235129796491332707625288501945912642316432616557607394501593530719664513875226516351833516448614524636118504008168268757291466612959812277264425616581175207282516994486281209781980072182677954064464268065885987487230901770358954006749616415440739710685790263306405174051604148020805638612957261857461224764928804469806756470455341779887488416626814709584847278326369747133745144086998541273586757960742395227500675837698293878621174340497316264944512386830217433643821667356647166326857490765544329393152797439972301357024532488690043340377257746006953874780026782911819781485826903384007271685479103173709430670495271219240640632551931994669660548795978740294872161172437826842963154463200846810363787014798764740670574941858068646235305966962778023201920705928812321152770726604879209642549376597704328756406908818455562840426531339178106593026380342495101596370697899562523334106099772164272202519212099518917771151045260502392130319613712673693977844057313322335623524379432121156319049838066751783309857896324231950998278896537060617515725945438521509356136094229695111865823137126357493236354501951252131323945421617869650665691836258837019975302311031288978002463145569668728539879778309525559603868132639428612115209919551409503676709372318911668341397303376214031146926435091295662104336774090139744400862963207059651083474453794428877602471569211217677744726183790012420226664318054255837454296515708752437894650874109670701461960858769294302265930791286608408740645566058839461189863589787094998467358331539538480887610441774002954818306506774946207795631338337357199245674587657629488605418016906758594745480350812783978620719680540543282825288453359630629435412179934102104151833874166295897551504807042070886769498665595507377924235766815111829326032051521798483772015717873525108763328373734500452916537420990734660179069709453775891891475943166130578584720809604487105771790867307691065205728642150803234533804744183591086043869058746108473493591294318556999317050292675058541880591788107411786628217718783620831988587592980016725759730055911940155775390763721466432357889952941661001748599828454805775142686789836000518214510751847378604213367030122415677948560453762691785212882468588356348857704222918733501016307346645274751751856471198369063999362417052720642397763929083571474124143516705120803923955937034793550711228686838977396226896350830045026038569760057743963946014321901898407082936755164112521034899040487135351848847688990603855907272227166513343717238241588258611306336556596305124194461417693505041565934383586692224846670512810798333250862485045214554476974177492778666554839858920007143962607283666080390950425980995168970760030109671605175850972907702820030293767069077957193132114013492016613851689512139549325383941589361441968075118272289530050984047471837421787073640193965951576837912113448907389833408077447412863326647999971955887673593497888529453280737572017480556208096480729417208951133078952362363097542815527624443457616018628326266348567371496531540962236058902584252229547769957541842977963263070717622242674209149173617162315584588576819132284567149926603688168613096054890137991287987981717362796791240156674430705420852011723435949815060576803036846410707376504527022524544715464364272698582685539912658350465407680155707136905957650117716280636719077073550008593932848934665290153530596022007996004663896022653497542486665604305707188185532413557133886743584928802939504378288854873786617744345054093589286671982845382340965946459075095430561884473976416789857182367286831009647857002679105686355292516187336415310164428698668998352869944432112477371961236974473838793029572302527311587233973826874721502707157540847646756773765858475195564075563433885074771202012252129772655734611836821790717726762777985537979702852491724283052726739652410812413598010386890003297516707744773307862190012207552388235349400370214848873207967655182421870682453433448224128678156451992979675738362861912729515928333953197682996660728355992863105322449679101182267747804792356628711472935940799290696886896239241884842393500215351278799244502765539778457041697403294106782607411270274675273807719947205263979813447896752354491549700462236790708694035515444660639647939902335502732266897824782045039045291033012771066831640623638570936627586966883617470393384058878550977397462441994515356136216528029719725899599639880495874455593741297105696428641220069868423920195776560196908852474505584765905781971936857310456833129435519735580732615968578995254757338595303557867729886587904833098645788393266186003874844601288175879440615766948253266123893960751340996341372440456666687159751907365775849331466769779306344048059184598485002611224083066849072380430667297083148038267443928793093887414880098078715937498751902463571356230577230913861948593456015986262223995846265638895969289913485934385755688836678244193888020904391824547872414908277853184788736021455047054634501805661223705419006632087174393652344273499179682822920268582908809656292154628215993636459392176517657757731915204085638257085281066912084899601817917694167700522309291147416451961180433752061919090765611021030554792519917550546476162587560207972464703935167975867712894211178114228877694218190381812013862680603586702248710050753210262023404805570785757282780566002869506884137061804304155095915782599292725270670323809883550376941219794559543759256973976129907304247905041716147853001081307901199349986332822851795270172390065356913875626559143372548980667774268693343671929682425734178258707310547691625220510478480234402140604169473698241924956859411430600895303577546573108565360313479745871797186234714432646196635370035526827329866238588928922986946037996860712295045562172672441249183541874979246782411478882021737964333730972417320333462185210813912150191977188060605173854870795469106092094417397302013660810040428237184638263103278437186250428022516407097867869139617989484377345586153938056683327694474360424406810466684081357131356385419265279843388330174023533393844652316558145951571558497056917815623507578008598408096638686507450089892685797736119064150317042825791926847188640678929266235286572886202740111059606166803972836745117735434742957252053764780912063253130276733369366411885041197020269413966987763537746824360166114700122101015180474393678891011003105333851133759930271061799690921384791596330511683438915356613326095492501712496205977199255827722257145419603058758877057163714192037848100647695080789614489179505700916498332449807123470255931757647612534969239898266187955370450091055265411700299725882871188256525914628186181856501200160824238915824813492943865772387986010873227430715501137228495417555228015683676949797130811144441929194940303463292377800250424802196858011032339210499116258555182136393369713413462009483014180802075351395882255854779630438277925785041533977734368856037168625630048058734542604560877704342686085675687014665992144360322963401594514043509313480103802292223951480683372130925912066062404255507336426404208346220959509029712465924632618197581306136395237384210336090105087798940842390654952122392861674328997989589276860467274391083797747810846808809963330479771407011872005273997302821615080954422355446946307304661678316571713702182492808251325018637913193865745115678862484514118142659583383353534567293335339796698565639564577152085920035282312180059376555174574628459226695409918328476561482534320055850314088802857060438096356685885057665428115473965087738464673847151742500533504099438290626923955402887623165392918411200746144996445117082900333852394172467162185368884414074090744569501676566430362179275243217986294210881632166751762472836119764100486457082788042272023697793457206098078953387912784099739858634830156070154922756979297959409108775219483626984993893280769469785828938634432780170408960196516212673822680125227951273160825925897376082655212812302233485637788806050146205606978146915616290885366710777191909502396876356641356588412297435354182492761366554486346134707292592801014578211074567131694404173561247577149235181229037655483413761836493936249871820361287587272312712925976593383788259263815959493294966807798971725929339376603430337928800839431635122729353314479832161420102530880355736515590421621363699884650078100751970751188103164148082772764943785967323949125470213062964208853002399956110213152740902111228790797546796037134358299093754651877909838354822957792320350127860802781624720317472595025477253689144857611371928304395625145317074953828029292143723974058225890382247017061544473197531079400174288954362785411913816318315888500732288084070291655551108459841848479696600777183055788265821900621952719750756580664757390197450240403479105144073063472145850263417619696335315624273382297394552190640458076299322399220319777380253294807723286271837586304302606316087627560837054668699870041760305785054879377808235881808921920706131155283145542338515552168588055091790417285384666735405884394134025312683547076750143901922957258171995964473547633011773816070250087421733965750980811453381602514274805579052837136792505835843917653613228100379623765804053487022437182309221211350871703630851762635034671104479083317819060632525501339861867892589432277921511974905650292090492502952494076715050030907046988164007479108512340346300774554352803085384937983228629568378534711519526794480340621479762961382120775298162798582616904324691983588229152945551775289670487938457843205214662179127701877019992636547246950763381150209631177191797492541463251033682158308966061853765872729356549732794461456024432690118926550466974118599873022465658924661233494201779045934496247886072900752473904290413817944097431465567459472006030298240237036847246680806696042361586870046335622036464387331923647562201570772001280584811962430487338853899784193787155371741234526762178174744948388792191827115627950618471085991874014875307557151766826973261720979342232997583012207451557051447762777085868447115124325358539962385505367428677102595121143211568528534832109219879031793774728114005740160867411218481361155164347240918058417096800819120454261576873246648609679522523788652385088835243518572769947403121041636411946430266857159287407111551934707298668428026938751931993184556113760600799507423126272019804819747164801668500162680696055971143272648471787963653956310897418099230595979973591938279489242463676751040124989202667386473982396984434393891483384356793692817879023473292334702716282699375820741910912170429341636984705500721285913090241104794797807456690005876021618456315925855861321428237852727695452814005372857942698995133246585596903727226989300247832703591426172329324454138814090619823905005050053001845986795116679048462120860123133072782140795934515144626767281525635128807496028670467447854700717685758681375057685375217517717971799870171683283878718605545888794189748862450585872208510843143905992160335108793828008371802841976129085603759466407333950985327176530920215130092028576497346330808581689153487823907474563530163229056070809259395563951102714089727328037572676270197774838396893103575240905059235090925225118796797983255126610260447914787009308978212911630465843027017532014660040860236876994056773258014415524178863731579298974029744834124517113295128185784448719861919582136963991876278539791173052814182423627140980790424398069968357696688621629366615084873896476139640615680136546513243875036292432503616665681603779548161057246203756151523892050291945571078082935410045558032046195581720386315062281733455362253034661060982488248167485749068321607094177979653649642163279136306315276484233718920586527877229112068493413541667122751055001064869057286410795877253710657142237195079895240817733454132372024605559319339352755092623534726731612804736003419466634282077576133527775705455220263704795666853835557458269373528983528529108641029657135742981469051098253523215945534141747085448164872265338902626794957758786358294556254474385296050005120260338073035087038788467961649362623234692510925727587169588018471804507605075418091848514701511513138643915727905984617033946939224302821956600269271752841057582566650893080507405072146456248993482370817846168378788571096816176216275197482828635777469889653378365499906343604279671464033243567148133364689868898263417730044930682937158792023149867457944527625134369099453012069465748700203840839527029418406221445591496420882299452901876459442223598245839186379442113670440163265953402204207044770106314142564952171214313575674593219371314695522388095289833565973168433453712349734433627450580613671896849096654691672742741242161676979056390800877805320671512742590970640035137078578050324461535051361518687298716493887178013724493582418733896721399680562669852834122738044950620603001303870529059187508967004559339769184245560491242425246428162321684749220539406008235191912416765803240521267088357173683066026404223029441830740914645848400055708536871064672428214235808061434966872452551964136652306786861587457267027969278681985372994005285727897455477085694869668869044063445636100447417666619447175796457518537608307672094234589150159039984201283938088368186426377829391810947617550610443072746987406762380266792386220810840978010793298213625918091842944241619054115766628456281884460499051943446176146629704331835964657190104959415252031805141586006771162809159136089403140414195423068352854759446614002242506243365560664985492293064161404185187569012089061071265752275593518680512396745417518599818072125629282907814860856048016779667666713522253288552908847675290220666569630061269171336372627982839784889365404343949583843094462866389567264484413208238849913615463026021990750770748426856255058183586780826368146774512082676858860727665194362371805616783730557291027022540636782801505916436083090696204753141216137172598549270290038028208755332879195389488393222444502543794509008973882047515551250379898414789535709614340437617068431021379417176915299801736233398593463180308490653576537343590139947432895026090387662254771273460198626382096308114548334733260182424037271838897829303161544063779049303623469988602413132068921258500925133291612795504715182912365176132194254500857054946358913932202454924484847486679303335176151541732652389710594804552413529394166239863256091607076971746164919861482335000026486365743719896885692505446757168221007991667515018372311813400736352731221042852782581046602320023206146801224913631872320764925070377798858080666253224016864514996836238524013837645532493059803887771525505323965394795809922874074305335507999481498201661391709385224255389082462664394870795828589002398880823410330929508114488048794348590698249785184589766360018318874170902737214267380135292044240886107281191081462014086162178347538026840822479205171723592111507883510923052402925813275282715136943361616719761079599963370493671452617446221743194132062315277107550967756486016347214318146120958962646871657420823105260699982617962053968929816727863491498183473043934794032232967932747711659012776389575345574893443115962761985681289137785503209819244539737727677508691831468159463785339499614061264347761254333494028657650132616524810460554797836495696173366985697879468654790080014668881010341550501301128993850877905357922055826862643870722173648286628575411478993856596840118791498179172938618424294291113752753084208314717443732678556804111980607527887175915615745713750518726087933109353881362447501478986013250973225988569983254498664089938348876730076211904211325979785804281346992402946694777144018942796254191069483988762646008533208434465363729176624789514265424017769102778708379536524975257965704491624168771091631253021509342197167502324928965909517256334917100212849574580123837032912631896073728770193228610379344027776256756599160416504645055271088191158505142990119713993314325616945661173158920732151825711045717894750387003785928425509083843586538222377416100151858983669311357429137003507180961368147170235212216758579283027097712771016895033107740812040732730820313748922187424483237337663663291661717644577269392622309057501239786156701492442818493078470066094651356995631044908495357359929267567192739956838701699497277560276155998843589254950549194479741803880043604802888016254192662466634158966503668702318402738453464532214981411482130629723438120910440887370977446876733394641139667860003171104470627815540071754618327194054876905391046218417346582909676275227122340014934431484720175439057588449371382893796868895259034224780381706776319718996338863059621494206810907124606576139243125672671849950828386184683034475782740570444445698427112409776382971263663853705482661195277638207271991170470413701346077198242010293246252006318051589327474189079422560047935147857770429427378669772985301026677899512644282367215239598960437986018802502105652436949248037318219579156773434295164256146971966572823687022837669503225022993339853757593335272475429253226778416609574524980287285465977872400617414779119024888531319951219953365586940208359647504129941656546479498373495630272419679263267540631072266216952412971661844613766738358236964367363486996822169507622959976905292924073441387151171116862381132742916052584965116571260858747484263918261509682702035576390852421335739759058605905147599920380250403668756755212803757774448842052912404338631262274267029432694910430941489260873091479543444053794744285881151400215621836078430073989805920968779021905267114889874168121055860271764200387152269286059524875917990025821415820381275284476525672936561001266186456439579140018228294694446330206320082934749517754183722430704736972778061163389051355902619469055689925119019135775758720338385580649152716967741993999104523807092846893151775426943266064735581253843051398859319604401568412420506472281029137229079069199817308055803623500791150992566619928465771871692099187874351162458965745592618886912263113091974809718422989875967738016299886511255514368914611357179181476640046666872815543033716049717337658359869898040764136754219716244206843046272595696153531339397324789826962745353358439860406070524226486072457195851931244215531612655869611768981312634429018341709994846825252831748053419875308359979241797838118052380300533526974116693263123268338715887001283579493507764718555143428812846963191162674722603480600977334236087728991151995724583263692029463769534261608296126527933892032860239505987706730906138123771716954574406501685987769870241192041740486887044912555674156553685677992957181522475412939294693650785008458138751718422545566012274399219878658942257264181911216540229485166708447258374001555595488799618018463251578144405140001102134562679864110082642868680967103409951281175718726403721710644355899881494652893503938975325538863826421867410111124918802201446453614389333943363496331547991513875183644654060198210876473886113211547571948721716740525327290465461060325132968146964710293059924133597749892154192207791463834221754534036230303594298925836575276091285545648183692154976472515346867896779371780682868689347392049963253167431730942664892804725527255659065814013540686357284494283591299641103636770286291488896742441082763213079155163241429773340720795143801557649895034977125234746354692014885064383252560138364054003252479266567620375986412449417948249803872917945099701382739741835586032152498255109205430818522655754610511790521329782997275286799166638558333993120531180218361404823975036450210073727765388504521414864298241852778603320208176584326593934697303434981312543634624302037613593692556445405643729546441953621167968650014630869664521817921044344079856798828887077247378059637113791788929272972318425974130229986526360537846898649078323643418592276853717710696512397530688676986355770551866868903378611770410548980359540839464651183767617915778024429108541473352543983152570308102618123530136597972782700588922459907855623381778715340338377442526835162416223891670717758949564470057528705478933401930002338499666023342249793922655028185866412690286607700472746257129614553037705583668625859247480270226025352141959285491013899981512510857145993434969438731852751467797503144728822192646802119934925944622756247618932168943919887382173998419885479412078517059668911170862653757788714304028382614192018820887897347995953067238177021964904724604095189398168271451189453220106998414573954491436745697619731954735101643032652691300098859786613087261565723747434237587152441824004778873658789289319515574907121125200488363356655655049563351718983627787873129996506262223441358849964897577332549108952732463727691606753802169688212455390272048143074596291167277942778727794544145038354916851326948030825555363034706579438397815372102337613469911545386619326842626606802488176794547909084075112237704347552893317259714115027939309619901418086916403747386446444303193299350136192892413256979276046549146249293271499976113042044607219601011937182625632645198144742943633444049568680357579005516048228697975951893772698439609838215530384359822371018207043835685653687359985730427054605321333302240214201360213433832344065889441629678451479293728240164880094997250118409174445952777449567835827933003217856325518911480279758742478729985334084403599338364277700561436256332536021229156326084978464842706386904210217571756455552246855663344727743926833425194381878528913160338289672337360983996446918336589834291642608474372922330777142360566575492941785747937881636902445931212036605227843747104430370613712593310111860538243042157179326067641627938173520684843977643470155623185715770776253473287666155631876838010422658113715711613473089910816301402299331118528249205027738524573671754387084048093669816822232771163116168239099605250066726177818008614035743165285853580378985515114657912835989871629334472958706354684238326903240411083456319780072048019768906092954378368362874668637964376628079606798046032358280820765718495620251198476816459319959936357980619485490620153493068141279029265287648337795370353175537961606025105549339542142382609361036684102887403016735821030408022310636531260799888198307928440401205157784168836151115575008167078716236926587484207613191785900711420458589880277478540364920805179454921072925457151734580422718624164337219411087470637892817863208887637073482113767243547192147045190279169658340742295958160133465797539086393199874833993272395245759110338232173581810325755913873478732897989895698317121679177201599063416196841435217873890225259261509757915490409162269262652592442627553176171414944483465546601997262652201444787403072186980168085307937087795118107744631173027114506651437807928186835427583170815595333981221557760809689432893071170800776838670413595478767947269470707610336640819281300747302400927967073097074316077231202343485685900776008195342920022922367696222635595668560958643246693767725190825680686602002307143869532455347200676565628448523337324496258325430190701744603761318486123586372539744290313617862514792325238458164426961687658939692364024071872429351372487836971144374726058136301861874585509087174228892647315501868658232646932737853271502226225710889124229200740457975460327298283398654670593040955164923635930430803634785435723449940962092320401374927162590460501085271471630817005497742906889001555457108487509030646440475490103603682862568209418861514149856519308530811382895521395405572861059846595245095173670800194857730518730343163586191091710462281937422413432575759293087776260087818888954153780461955924012282328324984708821739156163425192639681051443165117083908653112315118902194268274128964367258370573023312229697764360930763007033545882797004318867955180633713994466469223480678660446831104298477233885560339177812381036635102873785751586294968854667769265126020087462868514899380640582462504357623824407400526765217848504612166502787224820326218891711856779130380380881702063757899938493012918513089203045216487574590528528196395346475495631198771972213499779491269609279600464507777333201593894945589760850159515786102059084567986791357157527172326929321041612472396378403520886248233936501246373716115096515089090014778363495623559265988533556158791718255152908015544309493548670002299044512524946895702291675957244886935529536239168287391327953057703912069921516270005656238247943655389059727290919923633100415926502861104427504151053555389706207722487378843243884641870998816293886976504799451142355971314211989728085039333349300921808354214551891792159242477916272101084753087934245560978817927324638656898532433740448123662399261583924001197867140905105265218223350852745796673464487256857811303100071037197254563610096595071096090348378638763793519204851201209275678251634316029543276209451873669931795139152256888023692481091963823555521675177522034825339930550152093883144423430769791939525026583624356979697726619471296009027264024594318353778067141175032169347412486703923325885141915119576951888075953990645909854000691369724459907595374015083792108088877274592282384435343000236948019749123124311784011878468454187851413844216467466249741384619785423148297362640998023199169429674308069363947509535205264933189598940281008646223709373472428827127843134844278042288170813118998570718332478162303272784364224952953945391390757670014091533179888949274709667256766363190043913967948447304838652099648834237092043838266914080383521270376556309515697260620597983617131289577337739722329390048774853647275406744387032758250622715071802635050201382972080347091858111908046246994330437426084750332524545154073176775239513486256271574354623563411335783606312584452654331832885772122705737353437110198691905414038387970178672666168988969427808668032726398439963209081653352608143970752127696321362347482828372369700863272238196344450722297551762711827692711500498841334562607445019034888099236668703330868054113855091498289961298530291662790102224678218986306102367548896900120769137920191400283738863511650288376763793611173174266734971886993186606333157746895370392971594886904122294718779341781762827084991897864645940977556022703005246167572579937648742115879951158071596366921603486882580200469685228908323625960434914362336108195843588224264018222036744445453162151659013677515898522783690740733085114933862463069828334488065170644390261496262399764604202335792046147467563752035125372591760385304315421396617041297379368581462508628571083935914174887448431590166753583461836022042715056056637079098257923789071470213637874070568348489208265713520879113888509837398684856917985624032390465579874083359311828334573145578856540989039479659657941950416585242219463019499694519192881741615456117997977995275811665626550174192475813122998390251032559773228931746958925653878226639719166464892047087075527999602004939296535826957033044269978074476336003025393665546775578462112320550912411312224104905455785313687904253074190309032545660222096136359166812065531385315731708820692075232193765513779763725083926529567902870912610020015755565512286830315283483386533865324541999564688454830591171316099466709520538090988005894848240347783928155197055855481999530262761360775743969029380035383332640719170556157629362320431814340301023174342494334899812775817731230193204519122014232250077114693848971236588385769806613209781758079595669470182864327654551702067974628340413258707477388603900094752372803229838826411034826778468474789997293043032485417006234130613636400027636343646403222045430418753588351490506285926241942258977558424558387502662296692711244431861742670696212414739096623632690845520199407594348294742199051240961554861215230272730797152813335659672487859964859478738334090723232528773344142458374881145116852522005358006956639416833527786434930575948522262302181527558711972835887171691157240796969295157938145531942646135353757227549069602623365116459140488948792644302927566483429104794984131631090830474931422766396607407244206436079553792470812336092859864143799922025517743898592642105464084000447753918504584491746121130533968711975588012960266605563124564542341938641904139769214961879549396855187223470130873062291708499231489835064615539856239134761850202468880534895062228426621691986481202596903324974362750148994520805275393343343533027415156790670326158658161242725409273864740179720302551459127518715831921162567198580261403603987093380017228160804788194167892617962124757042793032708347292613663443950431590811178519701169655158735884669289599178808164339750520003680741621442147495684766908015185433379589763540487200903200925769262026378837014247782086270688983274136955430968946510681399593034366679132653733975755826866036425239121877532029691394853681879146804789270461877503766180945156920767270720166313188713008354195807377280962796385388342212852772725327739958458984637656405194037635615237603401538408994833808195324618152247333229984031685613564854350598367379180732054725815644620410479526708795113626955491180398065988560061385023076909960774385703843735572398199002747771281460217595662446735914446987730425086901300072774420021020497171606791108197889004421676502611090355653737707653260712918555995519718025528181239913421747872531214458649184072122365645836466938916816884446987215626406387663845082047147302245885459012000813086265530766489213658815487904206091940702813134458703845906336143917857448092809749163229491626331283971285005816651486293870638119157589202372937434496312490108952739565601093492983656211309702765062803306448361019415889449687005124717807948369631900461346491454823994655797269744410728202800204473709981787647564445111156354369624012735766726992663425411241336780699434232850877492720957490653934446660916546075847023730546993193715466189100260364670557911024780114201717817985104177530687941910995178619958225737543078059571215893252604136867999734473664579733784356526918812465414475458784329976949489972717190421252066953707260318838180480240530267778869689046638956191819980582877531043130082528280042186152684826605207152153835380370051653275863739385501783941035618217969842852084738815248277777504635805529452177157488899912323082007279750659072774311065455721862554184774380509169730928190377561264489369316414884723834855515182034974111228488677693872452960509714752907647636475662441477311870075725631606983563923547911282965857564755525069372687862136486817166067498012528731528343600532523339232265395601644731680041077990727614947151428447661240117424607320328131497330051104600010130386468872360472839813986660536105587390311914865647006074042277161289381138648846781806531485452490465128510189184330023900051223946575253158579184113493424477067658607630132873685021854739009655926159141484240856887325804856868327802072489337675065908650697985831698307314894791729244143723691395515712128167694082916685591707111502565572839383901850345258912175669174694705331817419635087956080033987472550559651431951914833724993425344972897409494052141676084459631714213126308135921293367973237018157065123058285688970785857774582198117534603140737239884940358883183364679503270660206181493625097126522320222689838913571874697531000063115266918529334248154006722332779873815167117473671705676726098297118186778125829288625201116817508007508034043392699823260026890317389405697181316370059759220815380376000867521371298645036149678363593922954358928760896017451026017438115248823460290543756049497245043925341202475114801988028083200830897431632624902142361243105760623341764086798822506145536351009919428918849658679433932078851956225972898218162657649172015923183533472776290456133260647736168175021448942118045497618075201021212900558259833732544817492335760551150067833966149211013834975827710085784989639170800653516434889199593291499450224243689052040400263692575941517505688446543863204931319827086978501080873093711812758378871554976023305616506390480353710076185377001316009667698981238539691083690494072096921008460644280609952696814636025189861169547095337585159798892658032453829388622872588454776609139782667416229100483812713465610937537882559692572693940639683961908855468357918042137249077262057385502823990418784259821393074289642850424783931710727469586774075372989759908580172663805481752170862796548463644702343820443319080685820058658078518275115937849426882184772147997200255612689001452472387372860724181288473310031291903672990373070130764567359202428083009628454393739228937617079487440053482384583039755754213658050816685687794944798027425128580958390390801493480512103442343444183667276687455273096217688283686194451597455326368078250059087148402476530392349727662414667905524202018366777952662733411144505903147876139350454598149588168086353564751134394551722259276276621568635279910132038376046892412463592294611301166348670338864738179881997288970161906627955161262242117362307291829596482040294259498025571121574336924372831656087486036169870563201182988941242137346312722898336618362171078836184583470638402835901349505481720320265161189788400772088264897056538446766954789805541332250466627780227322605917477041515495063420024211651830223558133187456769020381140062467367423905000598268065822569633683557370171354496290978317471304272574896785316085140478092138420789352468547599399222300860559863744731194838065189885887214489071008373334392563653602277025706391310490534479486389587753422254756193832127374759139063989825009764673020525277942981651926418420967234978298658163920477536003926239307060555295002164799564374447669416963841651865423566539919662210337509807458306602920752694257214461675951682326572022099454227238986397378458206342279840672444410597081595482151526362090774603277722769869433614801752903784039388111678361403932975877931119433482993077444524388027919169271834946029622522755790947544045505249376738545013297783303980354105251388484918547288955029447363332234829148172670027113818485743162526506248130984669083741247378356373640981556238186037839263397295805991780111069560868432934813521607627074988752960633658947165453377762066379108138662516228743978498104467160109455183493865176134089351492859770821508237035952929323398820707895315661617026895185194914721862688773062917074822878776277543435148347515544463866666292973476676685731101249045770357759013566988218161802498677593483208822502214905541180480978527340071037679267381083605577941919221468916574150720434414775044876546762439007667515452161771856523783819792006896756498269989364349787161014272228468557915056600800898173913006407494842922019622675993888852713698277604940379753876013526107209347250070924451615389737823794814998311291457912585032098140981062878865736887977995629384641719782761971306581681900432283049550920267822420363789176721227362158866217465741376965724431963056092512986940248063241421767506665445758058431563252560217087913998566260273746568473550508510215218265783136622621304581490494233115626295672673231288539502952826919613273029648629831824529758081036830795602121163957185634234865861173646235143667597100843031845726204713594971898762409216723432084019246003444145895826490531667718810042868831589482707753752347953182063767045084544347965899317607438513951800578788227167298170169993518567468338665870212332863852087874204903225472743629807109239201434975618509461805670558164580276954945834710685696442891725412332875763248923775387005833782640231344193024040163995066727960118191103624640051903831787192872904147584541888630821458714117130176369830084163366270224474846411153369650172334158797027539952605132880842511007861475652225213046874251957344655870445925580841015523021763548546714934091762561105971798046711261790121072898415523070412072774015946069046359418425427395716640757464926272447024723057603819555780577545855325389523902510971935366952099732786406258407939946786033537639522264217190830991103499556038115034146809483105945145692742219117712727283626484293473781081535713014920737844241200193355917054755168395103539785460944501126210175849387106122065549034152807390042799773410889111289061024455101931845483053777036298937832459592599959745292520903200362958255239778618874665137665566263782956980817575109071325524010974689657612300590095556603720976053695951030319957900449849607548774947090380415557732454987727743104048070460624570113758248726856170239727668304201494057887982928655091964277696465808599562252966921779011543734971870090229730995389153434095049789486832442627114640325117195752527613672638254312230543471868470310398535157863940740138185689430433764209066358467802231278904484769151244904588649857569654247786279686604543814953704775431146241871633542459058758018402674344836187668894937941112154878666273053368659657033627826557347305306166693522754963737637538711842883000262643855099313676898357891536773764945043848699328696639584023218610873301075292902038781982727029509598011320465408903506317564396504999368572617737226696167212657281794502636416878598711840525920593097166433945814044564539236325191551168306498586008150699730234338102235986653466425864226819218948527938566660316738042043084858512526532245673416614603944049110630397246078275885378590591151370731724886363701389601760509634170873168473809386830481997687940581022115798739342610337416423987624753661210988754799738591365184472279527830110127730556430358005765507606510311035163344829582330257938233347570409637934379704303714844472839524713948031712751463713707142305094440139718289624699775289033019096956950144704577261826488106114296851049025693362677919982998265611871401724175826546397726320613235584238548648264313578111912894857251029182318069455613735998942840670069257754982471689760916932075482047870399053177271316606062492171011872657902130481403663577562996194359761333363599580873098969458186796614447708137980039765698490513935444946803283209882087047663318254591876282502539480601571654842021613438769657455889092890309538682024375688968253632834497625422281131368116381614146375221773011343355756191101949627826845759612732171269959112370078684577341907395220437807885740017776816444360182013724266305050927677184018053747059273387592847199098818988084114394245575118965301080191300962794141255551062864784051363318382463669434145265428745120342757391748093194551371122478185757889746606405442239051330119657579257741290694105666215644474545321796453761191239443024569000491480395968031279046414103464432109332331390255234185167067751838785771635695469775606120237381476125958490683720401325792925750096317427476200333908381401658263377431304547991694502782150110211928835254315513884228759964262089380064737137736302996861454601810929178233983079118094587227615097896131276640662118133461038167014889115028643624993962511693028939867194349918148035290272331207947450205860933297611047109442185786488328252359578414577544464023727823318048810464809483704356703921019015271180385084083428203193001279690317577736141976668283631372596337777875647123111269502894720862956864535798582741069691841957939719870775204562278636805341726270532915727648676149253022195212301997341027411251730479792891263125627907851163076786991259635065029586516303298602820964231801851290844827804201401566706751461891677002624450023682389985253168511311056125551033148537742801225228204097117404710202180620810301232463480863985980641607412093078096698134795319504587403690114341943584347907644405408978894289969498587333520040493873662445672571412339219716283491933850253374054826336184843083546744052039703583562413823024419694159009553417161949642191681475722393315686256810005136495978167296076691220467551236961772641748724375268131796347455997353375029764965608733224178413454942212572133780738189931730293016078900280775345939748421715637169158546522617103215641004182321025489398057236324835657706236405876166216572117935979502631273485479656126098252778406048095491344144933024681080715992610633335019622359374229730207227794881860819481437406225380287697228908707869712324867231742655367244435354401204559115721979188698970359936054448164406993100391590637133570687460446237502102212132671621895251111707947912757588889603487324774130312173159675284978422319551044195465732192363513810867657929075611268259386310427183753290804724950661380976713033416775537272922275340577515925715804287508674064338008645079218643622099393881426791958994943276421893294837925532204452688034506269777376041438161875615185000140080641936589470980957176864031245170750403593412030995508701105984529503290123612947901090089534601220391417619096541648617898952063552451250291814165436259571259463738489404928330139933491736663662369336361534065540247997878771080969163545248440428568494605015619545250004508792201783722312812449729647088012932705670432863509443192331859621016473097491648203947951036208921473798057637788486538563629392496219424948299860917970239995904318670243875508133031866884440203929812123282655523709931586664052091961099842499822618095205626836635969598046116108857123804504865868021230304074511875737547296447578319563733572548177916986396420608339199217422843608394616938722496017087653469433207598078730819723662369506622539113161858973087300795039094482434734108979067892409117473510968345938189830637928003146256753811941528809252868966305676723696672350740555158929019738323385761297413764442113276029862286939671770823120971888583508478972100414747394092401624995742729458778202557830003041566119659374800414306074491430337488703570631703068921461930114197333389563196686994614895316420292180718091132093686410497312104253289670556369996392435945947242256324825457289825281897230488370014841469291358928158492935015953634228731816216601091768033593587704421438204710996406443916409647942069497912428243799668388399815027889835497662325663247680524567930249573361359854568625058651315590464688588703963571360719437273057748630488915092963533933724375622112560957056183650634294043062604754185590055336698198235116394320439614352468326769425495168125433075216550213379071800920115650626243510979744913440269473826352065327587315905116074828629584201485426885442864403587819134975783982091160385376146185312518075895552335401522508209469147720623983430411642840398511964631244160247833626836412442544626315622070063424036869729583366753248811045020482703484389922346258146018236447342660289518623141844345857494611197003121033777508967653694648881950151728715828974662443979697358814447793061456405189043320114732636888344201852777057374020348550812334928348515906508071374169296729284104268476194495761175545359887699067590301986018805351598807359012892896601165223124374413902559634182762099687855134264889546994129406309621204252073034900809951104862390839616240785102056392143525406875565398985247807949970811526420062949262639570766891430437890297189694146769945680541635049034966304882557263987995384335659435916607683015378938645152405039685781586616016742606970367075988523310445574729129691159104193004755710540464136315911537636127004492975130902660739124440929696006417095095366356839035406511081161980175009196899663719514834737847208028272471077529697970361377796785662047240275946609315331168229857590387320306897608966213306030305262170226059723222275019457530074216416479745236191653453546688342071560303271503107372008522363941461670924611131556914394359084915341577047983199788410341008894719661302471354033992377013976974599695908895886932527583741310567342196848802064016122365918375424621377275663402637331643210260183690747282231948731611216812600295059208748041457998627155758738307432631990761553717868282413927996167382990334198664520458163293291721057530145325654324841666388975428757198924458704114060233835903571305771606976199662079595892921009355449420007916690551562914956387078281262068329079176229588988975168092567469970745009451939380462227394240336091956371482515008519038989612964778523443487037556636327392693591654700014477154997212145015126375477141536927001396056712762269329455136026047746563179358649102701009419259166881055866367977563815877905317526191790942116839094405113083268769917305304739141539947888087672316816243226985053365457643442101522608152732436750769357005940773598603634828460206598416433816790627166972546467837413217088606837181393440857221001931279908887847106398602343693650765783988402652119084785941861011123048128725592487814521598126543146831662544848592370149573697638298898240031124567251615977504781150973091522703908744536830828664656120613280220377661311715466689826698070118920818941597747378558272415705656645533932660022378407593939022627995907179795887052147398578566740403007491428977513141461441280904294455926778816309118703748546725629923616391084379118192916801320180347990270002147656088517591564468707191644355261862101840511384594036662982246058213378241977292327660398310508497140075634306745238780949973002386092803614901829721678881209724706767018211571739854124293984102118452800359624749910260221820128169601893117265101760013066743297046165145192619536962623231307401769453900785278862253318653633304951306901606758636954983668301848117395941399982039388260837584867464685859949540840580128857338046333626205473622738064180200796268005082861227998199118309412556818130920090817322635574900384091037705792711184942488013270510822947854347716850718646317134558983807551094505121445878858370415361032879921751580141980968772775958753782488635167572534615572279140357121910879137457380360455610281223522545913616459781582306801093235737093341525424740729671020213868812645116052761944335740801121996715382426798866141303654460169323707651870936399260451120809525257101743404435356824337739221021841341028992625400071719625519407805888125387443106709863145421339816636159650726906813316409311058321601876646467511093835283355713518950061601206116903969867807171513807674446904500753991526094933124107072561867352193578412879755459938649604963227415991145009416077713851527805111523903451199389040310473908777361417444653789140351657704965136005946417033308523581594406933420977866300799602560366523922779113119024247106902509357511865195960572249834350402721889404997950815801524644230429736488150948147296656540635763274201609475239498138356816733952759605146774397991308824380718712081346871401515117366472746884026050821687077099549875537304878401284428478350426143902648503364328134373279833109600412918917929996029267221757665885861600886846375025645783411579383402690180779636408390728637453144855485817102347307128513222757131224005624314473147740127544299268952346572642084549904433395047257144805878926848738421711806001468834147093202603368931728221802006014523446108559299700485070206917390512694549220265551405295456683380654904296176561967573223523519194513492040483905887746472808572969419812660927379118850005598326363663122098635893270358381359435692630849468094170488442945473602405571519521519446605193840519896354726072546733273483366264785825270066206021683171052665123160767092029321606705289344861395966325733474855677200921376619063012248189527499507867049320871208212198270114764217037083818266502577500037938225500688677427313689877323279722091707191660864347637644467043445855744624760934475242032154126461894720018042769104460689376226843932692284269509176321018314908205534488357737394038067448557211834726934563547473932411275669839989304040705241528397567766327961388908360792280489086380111057849291121085863200679841505521800702860821119266361349955830677376478770434436176848325832492858310033109628806276694654540667288809876830702814777240181070889694198758953789372383059719773143191198593871548500604184818612990280896764621464239647044518086894117525852816524112936207973693144673912424439304368443936321285931556674162254500993253697945638930169945304620758484000170547469208745848155163580938512372664171256879559180408244922199632572653866837712140171124624065137637318640527039372748676631480084692346795290737458623157435957017180902226367591580244837485389224561864123729125488363677174027877504154244963919375864968547956525989054097688055436208271579887078816108636036077204723383602237931689729172097305683299569704106639071002901450909941537364203183562529218150915896204727490662028031239831579492553376816997670234514935191874283223740018381132086570804945009923621774893544152861053375347833335628055092522745106208253334743966858331493917399742546429624045292081394500959444854165183620099957735084401096990966703296157745758437230061146892880052122650033932671232169052675601672638100699354514717353833557947766833857274239284388924427463963129305895111884880286679130456724869223776038248097082931797618043913606715636751020645350736587733138651253727928797678857847882467588703656565366756427124683894915418336821708374859552546717607918623402863046210462719825996396627360121252421083655398862009660755520174590231413964917890903954354148559768561796104838820190624341650120533163989678726549786549449929712731487512941268022025882408269760444677288046454414865936064161693927485930749838188539843419642616762741788003804850676271499603179510858182407119266680307906479901415792647596525619414453404187598442989124723412731484283785222305195346762112135707703219740013172337624114555576866292717966732650355019562067968288543576042727084847167298830829023205117137720541409440822388383644750525449788810700745561678354217643450521391904157337533613179205900681894479173632723048920143939537309537709513802436681231299931428389363254596657705731141556854121265199313991795986252966518756019814108450712821629031028510940475987051819230050462116988193327893166592486563045468309119356539428300220604511360379738015589193660403775676116971619072522514667040622529139592599437670237627843456922198780042866513472352461004244664815429890186534920979396439600812477295048813910022990757643442328420448558595103072202288809029238751332772019838820103199031139031771015996847274990734343150052949908955465719863346420409912585056148182728170474772280452836990551821368354669750775004974843731125381682645970248463079636165045230379515892683085811732011739240351463237416793571174691502758279377269770712608252250732790682912255644704526249913247326941749772565523078460805090318644971898334100576867150451470660432702014396796798067449223810871235519213047461921747332651743966291773883814128078444536320534509405845205476126702661446126166970785077032866321239171679010106664757936953504297898799837123401344029786826693374771060146166906896658067111148271966370382250669247835621225598064568736216955260688190368154173642364562325781441712327718372762325583680982919684042917419700848360137772831114070628210369439105334613113962635063247872279483689223013806123961044156219956313372241530215759658637899505807782250854899174749652942493068342581692340032278550218352593509625350357476757082676700365938530932865666060595000333466376494133433667298007635898140138016183813185975669935213068057810562561272118223011087076499728301766643288231582229787925391015541464050932864938844774071464913397857266868216391080817714795259543299747257583666590451526366915789412462400123089888244913639412317370468960593488721865728530374335605455769202537473783059178085819175066367888498457385424069403303474830848507402700528742753591254812122128060743048420514456501400330418186636802310581752972587187146408458703991447531200367571233613987892593777556499909217257023919132282286504062955802148682684937968071935309332509098704761109672699994822309560028152522243806619973744645249150085321821554741428952435354602814782008295758818643858057898733453871958300717529507438603761886566950715315470899401612053257317090111209827851378613194155975602849320550328393282555514159959286297122120324005625506127665226474674147949426615471509366824314209432077304592912949863972342416987293135561126522701518607008810057451279794536627299685049399526727993144268605671240882473479342122680899093611727562067252696591088393262187246360425156172584525358764292127729697169457480728668075491548590653343393997125370666831157170594168128791916320406813718710700184949112157159315527555845959120178487577891050782310880699279749940697706656109233279118187796020978393723925426005420939134411539745582321465564007886706310474982955655123300306494253914956094932228245598500186830628990876294965080892208417472577256200353762599441807722793779536284289881829502185502917069957604480033649823634116965085339437685656008991423569796048110353136344824648189192057670402216472641295559370695633875948068830208911632300352172219775490448917019469263140870447595514393694225142872604255851197179746620610676208119820969302937949510730404377048656317929744834898986281146568639723900783560924084874709810197772686851725379874251667838136055869528109939774035710416862020796033289564627540901987089358690816222546119616808466263387525267470865046924056827987895792463810320108936997279584600241119433884710709381195986583407569858967625828456532220664427685408080499093268329647910241164843329595569827794159504691884529840917883550754435162103490506268504056142019625327233231277010679478250931204807862565074860990032354378562959624840494752986265283767835934212126165308486777842947757036797431282990698171626532712286184347028201470124272246015178706209645629773223262762658801773406641219936953283392089143955648179936253547494332990671722788975790854931391844352930802901734214521530128458368016219027399239556087320511049870517763438470980865254366804735998752700956609420860910747161315045832636416482073833603145528109813905772214857245022417038947411043627168788938045147973681891367590486200056678600640115702339360463571898055173946848328587483083753545725177513396419564543839091296049675061679959659945773447504521380715073347150113196882264507077055407036213134103748643055265346556202889105415558171541415028424943801774845465633780936443771244266491591647391176661313409028489758564298918112227831869218518894174448832865283654108873574982606827471204261741423372055413533099966240158624780668489849656442505549503310860664261167904400780599758321556475033919711779552136628888003343932604408637874254388740752919224418017301572338751205275208741220758301286369387160330289153439401917680343423112891753366800052118412797369332616908320745396618251994883205926357050989440190957797966852082330513021521134510526874152997263715760081906259681665002397296246471087185506429691225470497833595723548908838233621791089811463395007955153356404626875823681193383021444259646749165680936469656572966024619519787691475479127417766947088057682080752134509909253652907533443845548327838886950966458008923387637429765348706680598008004388079274845149338306630002580955512880425381256139356704956358931916173936708160258863649977250715801177496024076844478473500370752332869840332393943697822930652349809823866641876023260143026649180251868802684941709484416596746833146498201009085536819042597847053677042670292101706557546188555712723569602131691729803637065203844241824386516001259809380957895815698000383764546649282542916388922939278736009774694496731830310735562510797243088144872962857687624649248302627006260272579883062095172295580056572434978777618346660944462459153876944056547937847981975709140726830064467886067285698052916386088787689926485225129608850626889556142174520740712553670838385913512601534188075562833840308957095860306158099611175030468264880483315881823395847779052882624411746033149114221998048992853226312592786060744207809914228605878037180155361576651172425049274681863947879185674964638120415817207402681097375114822351422539249397259704435280846838226854265883828026524084913538756762191545154280950258861720329285187349463031711721969119339924634573743909575912424556061189745227152213948801632128786428289632918372692571758860374230857007293281767078999644171594054922953686424155576615780640322089728388676315404482367477230111077253701192593040468988105316892667197110626040847614702931241373871212536310256531925239739252094342035465869595870606819291659940924943434307545179016650848717502191903481736103195934101483782064128519809255252321919749886784176255606049323207453813622874475731909086658648825348186330242655347560607985025748269341260570147185945250140334196665522070197659464883918560170975699072568033131302167586459674121090575758511863206207676817734702242221327338728175648273992355854379267676612432455036582025206936116055677143247737915207281826810700450683127026969016441397035577996877236778712608120494061073288328080751335453133796280811262930467628842041091137988748930083211814761417095618308066367824034439989616574506181519079287917634303931751351344533762981601134356746372687558905875347119274371986959729696589932048323553156396611145362642247539361017855340245445034526093052909941621445579947296159700656361623275267877103292408123212041124961182481806104175259555401919781183780342529674580219295780375865717693268718829438070898441491565659732994860187293981686453437243607050671075438937296719890035185796863384106661441991181725826332146373719910080635180239136260028225085737707651161316204330419933116758530487559261165982729085191563940201985576021414475614046294216232409294622913586041977709142852246081134432813910528594006589871906968702119232847411514344742638279156381377018718387254047815481217861709469853695300915449356256174003832348917836911585856097435053802731234817401083945302124007121686998182561724072666631716382243272143051748992901318180722114500666252159370900002260428092836645911095822143468230148205320096919350599104086396557486141604627288126486656069815831138368926639371211759345115642183645672553760999418631157011434664904549686427758142088374556545616549597131993115306501754501386285781147660311727738828853522610076662178728447433562984461995799904556260311210502955654746182265302223934567632288925580204685314005516853123846430560906556813503115832165397369056756294664904290126465602997894439541130730630111758345043214183770635956679167503924759411528110491928956221464125946688593702692126373679603837961619270051320682977050250041073401294942527651010069730453702324731987563158311133527449901630900535731624241136881231702739968073147846027813754119423960960841244353490218243201557570432932985016578485928037549712233539085433955372812161826805346485068421445263692716591770448115562873276468870220357670310573968377258095284124613223675291236252498415123309005680657547742201257079603483093889466231710724524330742123037581784685069041093462330441793573203625318040116892452515705438745851013508676350961287550039969390270073826281540212670701769709537533565267988509145518367770300723045993121052074028163758736976551995887149335553023811228244917201360395884763784504306042729226606601727853419994458900192599560440308737178985747431256799435745671215384188765844271527696482735417063323277177384438261989411129654622136414758244915479740882220748871888238854819355989473584191325804228803849580939779298278460350656696367699080753458950697120370933323818937203127030661465147158380461889706158323353238974368979047916420723803709700231241742692489457227496176942538361229429548232497254748067517743398334705146677344564563701854155185263952306274500576281267400518341178912882626644608852888019407158462103385857487239548243744641063704881320334654277288321819276247333957233560377745601834749440220392088740194856220142797132957256866432185250316605448308205566398281643472943583872780194235882868068474522852270557360992200293398716047351477842589879836517887049226925762343290517246352820205473083438865118380693304590208591131631906491568616091084622908247595306353144527682291233346825269753331097462719790619473166170214334732778960803884934792491109296602046570876040053377806217183592046830722799449716689617049759166081033073249133908414019720148586902877050732052740363775257959571345924096167509610466430950009670210896208736831740819600148398871573727516079554483557469846096048732964306338366907121738700139361437073633180104890974956184828192442159130621650742916656751491838203159531468355546251649551021424413915906512394379220682208003511726055224747351269345312855199894860106640003142672496781267592054427605122563468521434442135717695751552525228441922840010588975766447379725931395494749425137281740127417880505283408838973619185012084893859187466820491578443720292293998071866910938654262451219222574057094391593774888514403670038510542932940565013473752746242900239125569383103987040844602963335013267516496201930007237755611850899659316247781480332008415969341116325665574259973059474952758252998680145067088811144405956881670007795926760185083985804803583077824980949057055435308389935998381065107384857265977093797149997200952041758846840576621534258629269264231548281696331231139488360691411266982264482875214613114178263781745648085630623832230344567266927527257232005761025820534527043084413826591900648799525957205739139734302232837828666504531317180363193057734950053439061047643293113319470331398672692215515635661823475411816668151515155458485998856883829653183259259059372031960715384122930997122498917331628753506601906887469744450700857100354041949604117386796546304636624484293368727501467139907979168990815040464937529168960193342556361234211693422360497547576049223832900673935865932638786941064998281139345766833482715981595961811006231642009728780945933499521495905219719362157500741095869353447547162859487568529737256778562183532779303988504293900448848732481604628398370300366913868426392281013233542810702395711973648459414222172943531823048388374380350543106354446976359404003489479427606902188459121226865487761338703448848343569924924917314700013096795575813317309823768117578416284755690349237126876093832276099665581825493962401101552273893920154050594567560452389368971254794594804555517656029500801123135341978939039454422668465584958513276622073007321918084698258230438548818576752850679817947385534772144730007839641369769199896041837644218995822182897813002213033167961436140153498327097103803431538049684564713091587154783220858227163482100711241817182694632966234832012393216133015156086280019491964636097313120854647037925309112561403204550436576719285281520091180613777305013312398731087622083060527874623230517079875301872106077546797809221325265496672632958816353307633039886647177111074634769250692833525092381890415822480115824952748430714927780443669703918087023313893932404471663734219579844256493514309766136917013650168498797686456955312079741302976389734253246193566468678515055405431362465667697717181708579022519148662741554275332606192601144535129430730062133318313068841830161635826637391186173483227338567263278802777853244960976281231607181471061453694773978966538723218653240337044891750645638236806052965962956916088345975048852358050759414224974477034973920508329189721991131651572641615602352190438426877089702649231305091826790183909969693070449102361241316151669871154412564108402292361919378705480342262702097610374665885132744443030158554769552268501070931759287542325584387783973001025237921479901802010524101348026107359190266600708014537218569967710353500964732096545201427594746205849268040245803127084064790247212843183702739478572039753986105031520621839280432860166903227088313062346305866011402934838033612616898235764927434082695391925469368284168878922879162037806837957536609042202726593232671410750121598372419793362942931135875150772582580252557963722270960023498414379253775125020504355984831802820084076747499958711959453174349695149457434935560047982449516727958422871185274828586995442935490607050133551878190994739889088769441161969728751031411309220206942801295094839085059140997045809572480818828300468776159589616760356668738784896152432903975609841996178235121715601637261802819200082848912841427491562847763292630725973945610363361281073504588720740825463659554614391842810994485332738466900869926830586410271232621587654529677363096674838404218793010253309268168623615485897163791478355902488359120406585839566737452767119816447738654444775697065571926870018605705271012711940684513026250639152017635957848652798224960770874046309278147393018823740338253260803231951178857012247078746141491324209011818617334682230687666839692085652466856402086725658894519003536307740231333505144017483256499038953720658534343155985325423108514716427466144928676076894446386186967732661292919634524739572203033762544546262013291390277381942590378506644999788044442604223733496723500098717513199020691080747559589613810647393555246657801607223031313598621580224347457725772739910527259565492124147443411188744234956883760123733719775771904271686335173002838171724451843179759131959793939427451642404551525668094024584254792103060583051324803590978373584114275560102437801766619396333918934491097912648000371763432145085588220376619417121666667598502015063941364418977325097964317740620120830695196230890472113186505642208772307611384833895024801345929794135102533215738895222862732594655339803020009265093106494118874447683032822384228579781191657731862155678433418933349740760309914329560468172921556011710916318388986251554569462997272540399589921101907217668957443941946033523643695715865264838797749914177020595971126926712889391047756768653468915190629753611700164483559898960084316665698073747654177277221534841222046382297830301267368569066760184201823263727015511335838453779054015974757259149788412691598633876479731585872164281157636129517622605661901773143257410676301708505866248658891145253963214064274562373554757769261067182915408083740200674504281368575833955703932578997801883775618415468684761352628821483580815014385919273351736642582559053487213464515288500265043672662823275044967297203797697861292012926495767531223136455590007513891818851774059810366179373829611042235270794558597551915354052677093754151498598332007489489727384820258020435978961923382029161746119888949347261037119720202913264101668183137240340961968140381976627693311322945526173293449429529212999812869045696345816869358697933290750287555696590613072170869774749088985480483456050512395079535327059524480253429674099886611195633974240502990488088985050431572960773334366164355117051638124955152691781669080846364005299103859916747054488568555474142436347656612847939217020251762982369552998091307765784340697032709725778120343646038011327984102504262678318264184862207526895641921715703155989218667523651506574513959839651679805209309496108002569979085140915003587159160778137969921154387071135952506225371284118974206266532276990628025808845398206086514709027533853599115786359549546547518381549403614688197291606004279970627287588652441485276495170812022004032478530421684569542017438874415258641730064570111718441090384855010213414728646651125914025542426494206042819297301675573048870057378496253691889642699197932260852137967633207831312262671975873485424964083062063603739270276400050659911686671868837738370505700573331085171017251935085576525540412009889041905556476684932186649964012005342282900040116191159423175099717897444789650495573006920380273983011832727949385891741396174422787134006164989551829645355136334117577462516875799651813334257521604184227690590498055429849317945317462278004112293950246275671342713534639018092418954558827244932835836293084923754389781409145604862211979757448259764912935449418669933358117632659657370194067440140815980535111237025254781338411671046911622469079920803934453114182305025711351348103395369677484115249294056838787709632084656517059447997946813920079622898026388827114171731362168351927342540313078762329197501216828851093819815102875288222362611283371708134333856468154250479430612081105564633263641261360506114375201660326258219351725984921503272057286695640937720984053397706485977378079786069331286678068081097986253972366257119498762647662751253033674383254911252714243519033305161721998544329780765190137630286789655922985213197882224008183655776568902089950890352080538089963494639582647156436576123869568189451102134987146084636305504051989610253334621039125159545235548075093696225466250989437240631797207054398669796484428744119946608014762459155740246182071953455059777880662218048406342424843749712142580891240281967874609102753766091546952629910005614705248222715210083161661105561402626998932435529699454738004675289028314256201790890591744095507676597072675587670200625304589693127854426830390568339558499118543158203206278271429553586616536088942073547385404876700121672407391083027873548957233071052075274615238996467428428918288782067297820499490919817842862477121456698480303056409042107941064763795086144320588303340466120228842815306733535365237059088684556341841452085177941208480514382144174980480381607507106136804000707495629731431204256933364640723398934711628609991746747794294861945899760025622638520518334346680021263270658080460780220773156174159396318134149448233376908948586387971908281443117752903211571012809205830017109118145470043963103232504284168485680856903505101669207426730305954110324482914357505954574406269028413623863941848562796341603772352017880355279634602817825942350256389056352977541229816270993921603047856599258338254177192793781019209965231646545911974043924741527605188838581730631055244028828541806717023793854974276269816740056491214514390318825062949142122732436572568078298230492634042609705641412915083532313782030938562954894061104576120278175206620364616156806662111265890987171731367948006273193702328010575121183017449772636749667313862382962594415197350483312102392917947436035618055718855319926353951688063276773575340493715090209046270813242899807762289312914052834207715053422447921004837154377911948787239861834161026305645069357416899528963451841466371650590030819519924705268604994143955057706252103392823295626703034811922301769945141918658484519831409254740060832082374208629864296622055957610339490715022440503947698333518930729972559381729652904650861741118925213377895663701195629118655946481219574499063411155980429282909007019668398478207630168342808658662533821052944442520003679037039240082517175141096671603129882444906517418752245401429739586260053479047495218783992791517065843349263833033486947625836490876729216024999824764634805929804494224638022051210007446457905997450740007883561922311725362014783807432414046069130778490030488899581939804493877376540901167321561907332406956704052429466709838731874850680820962968398222301515330750571406447609189813625114435670287672015517075345049807647558573318336845882007187348933997911106907743865517051177110923322521396518115609495451015872927903354446331396996546651956060868168507382566093768754485140495612953578784114042866191253840864657465163291485424159881991696342207455319612718037173317257617220347257827916855656130152763075189566442078024306907532150720821864791855179303184412779322114254228993373530759378891646701836220654048743235834131727783184279741123547153559763786130111517207744691312003800552634952931549516769610525004375586809647557987539854171892309414471649901794320917519348243126321216030902805636817003929890119519996239534693934554368226608242695139107001813883008747822091239369278122372755913238406343602797815784007589494597764880098389857056551197378554696264281916523609982061208767828137713783076494617080408084181745615690809036816000615795941673831434385658698944024815641904395405164118536606015184764116490768987074248769473921677586998129539275327210491375345199373343938772547102844584931301387819360455269225767794510477973251357222249995282124945787113940290571589110108036332504602820759352061049171120789136916683010101956100362984672083402500644134429556199548291459193152905585952283723836915983505092462419542140748126315455773439901070229948304152556199095234530540649131420824338869682871139975690330947142080607862313271514834560940330019160371543061910973012008622759020515191795642587966468234546837636404859006013160007422909399406861993507910939956436812753509229485625056766687258146908840291412393003994429506733319771605087343105245431076382063105593460493620084353621681431006577946693823471702291737320234228398546084565410584035899370560924363069514092399892476243069111507730485300115299350071962833735321084600602790405062939682420891241648568093962635250469708651021422075772447462256799314054477034619639161896507188052738799985443844537608937478906325911421694261697047762145048437968110376079892463975948079766284313453637118429162620811109843034089510322697694418438237251672986395146104872425264337317953028358063716734940335548538251565573294149807790482510806067177643802762680035291016503909738922787645034348250265367972867490026605352324786981090947825457087145648670352242706557600379271489681188029189850733775372579856924313316250488193502232909321948926718198158543856136487259434582427937618212575095224733858257256052398306426255536638003182090702738686340178332615401132609085478538149545396317328174554837889110830875409943861366104701457092051114588504909256878651460079819809692036597044212827774648179499138063877026122283415835413944860553187347272981638394720455820073902441893841853812413824519884795888203491998387064873567894251331880323318911969457783994555592052305126784604275997506497751561468315780895321298827330745701940370784598588084485417681353697203214825801401930793201287642029966259032560778530015023835565514593485678716390756469926569125311347174236515299527853761407199427575637621926672403293001125729613630617875751678861635501081684557440220200914735834521240009909351947722387694737444415521701644126030179244214702677706998729097839693689085040565953329129939902682390677577574492988608094259897490228221879508588526922030448660984784411600627140486198464070854792371910730221913789092616972106802245164214378498904272746224490042780327648387344068026144636345194158907583343666728248452898743179560189777825129749665506259534352676400117665246625756629926214704407451595982167510031796203920838228259184714720327382375622468115623357129756504218926356414281191369310994804860823362323332239538531831472551077402052489417641464673314774545362306502142592834588392558770319050316640297073561884546106853546616931756122554933619072222876041696154917438588426582369672190641344784507953008415850729693302371125460193994907492677795029957021460036651929753823514340321761192737996946940341053598237073103280333134015233123955016974091913865068704884138286115691810766201201877887413057503491688277841916546413986254088675550034499873823398836355718133838656897358903634943205238157091172284995940410099032729398979361820635923057145268712230471924202421759084275447951733429023178709179312831571634742577752606689858750531448671150432830022597351105610632243649895759867151037993828099184726599936070470658031249109044601615498830377913932299990967082969398771936769364186854654029008439438550497855913739789268458454855585214143917612780124061392299924010945507361165336482971970501914957176782149239639848082906966388629012345928259362912409484150321045154527781018892136792737161211375207296158398274286863731245642056770570904196713157920912185553301397107691846924291146182647189183277206743914474888080768617715673595525530869953484875273069320735094438527383885621813042733178140093577689308633412856532721063177489146815707365512347234384062488770896261526219791891165780555281750759565869712157564502306465763175491321966098281219306289104139793795291340295755644700443465790753410083284224649597191111092170360268506688638776935732672222045785469944365285834994727865866786451477646743981310975430800397987834067171175980283440692494555029422170822302767128586731407854860067030715995548328305235440318078246449433238781455429360711196684623167165055651270031406584908258477557354398638745754928342596058775212321333839776305268423337828332979292064143834785619612705278266040260423787571397003454861757864743236786424656440783767883022102661996929844566540533120144980999893051976532540705817395307112924530654096296597760013104172740885879596589528731610852748348665367426310004168347103793190396116138710237474467790183476441517795702285200662822129290730143091595222351599781454489070468041718861776201571912798364171892594678623060690296789463523201494913048101092514214859716206613960144135405297379677261890723052245529467408984114293600301931250127107574862262053291586888853985262852233735491884078860618593855465542273223328403988204899347417403053460110511055027407689806467353222524768262040330013313941136735046791182875535604326916563897516813500098782648840205834743277567342546513684279529206401849085578064466519448215916318905036456609727266612435628279415755173847475294057073281337214503844238394656554732453944939596301729555675789171213194956426847757942397403371983662101161453051493136983352300192588443740945910744857307418944031897997398035077713580717970630456422975879916350469927165963550294676682559326986323154011985588750815051567181086790165847267474552512271970663574682071167405340643798639544957577143500627819018055601243920480162389601697010504796365206609835601474805665007998111942639186404855377701731229850067852160144642664745061567173523640920365631628342763691456087922435146983678186059418565496634813612480728791077209422046561288614918642070835464339404698271889820069625802772054683779559875320737166699467870876946296602875415364774443208191669608629874629056565225769472541078579325662824197539242976546111489033286278711472564580208235278374024381656062400858613144249350243137630635971661999765223205074332469048777758505575179356853136937856544342330778374952997126614221721570211137023093539388971712004736741261367254296014817266045457420566790499060818929849623242221427089900463958843803393817540353494554835509224769089394169388781961115792980494755542031067922205280955472815038794083103111397962766616342385389323172888101743496603841794928265437760749983422550054952366323377860054295458029310601827649177468649202600338302003608536503600416915550650107221014392546682070694961049986671248358102816670582885767474182093045430258399382087876777553002433896940371067463015042595904523976494433847819100925407186183448946338498504154120592436017725654538306043884757853133494673621272360824250171236691933110720321956334686017902355996324822365364579957892556872442780829065014317167049624895178739178990330355154779628876628008576795678655523834434402406939724053745286692904177441263843905957823758633616688927998483468665164467822219728813626002955759955772413832178800469654037749498755202998896651974671441871978055499357204591584899578395887478217410735300878914171404310213699035790823433591478697875169257733133687421063169258767317902119185506133672645680100338146479534035266238954883027201117204326801158835808656586562431701768386738339951802229694793037563166170144189958204217457049076309852018839838487808327068232874881861195668283671699265175955374842806270487722867675400455694034118452360935994567673502825563867422106811774022942461149034598120739521240456677132260292325868330888665361414938159766944476329613589824479013938866502795009860706624180839946078593812370084961347850521645670355974483951848710346386181255251512352945861837259253721029823494491045217203302151788231076216726872347134780595793717230169508332113713075439198269567861282736516479057130702004982401354739911985709198668618251035573632025098590373087304031877896049643175151990227313554913870674620944842192398891867825987316935839890715532555972383427026851962132676596221391622779666601532590719228707899779650205461243985696413070770020538051386550976651151273895911476617968913293047010010036687802522571324399985423275094046676456341035863244186288274875335230542154610199834361717921771574510345382390218487008946609135676175678876004787748757369650604252928983825419499023113864165100143152111778943593697858098469929703858412336738720112514950230860003600516547765934648414733680934274786138822888884976752839824911005029472751950431348509665519811724529139029045311236828905982647407306335829765590166773952841771598739029507815854245246522928939875644146671181498701415157726590949947658704808706350923128625876588024950648217492667320506413584621570221183177368702860230765204274860324005463925310913839059918191581795417629534112392100686132951252098666574887012941231511826652511383665172550146930314115376557758430338540887262049229057025773904039771873883452104425136440196197398581283755606848875981032576359547814943568730651219801043949647582779723974692032571480503920213137047630562310343528076894120069868709899708492966194748826561603289787364236820912669956349943950611266451363047081764846908899679165063161606299922522187311185384211378419427179833484009952065585330522567438773808686292763558853376904863747815048578935742721233078905867315851921551367371527877420652775889724607185057093030945088676027886274083981334652169126030158955599933201195048121949514038105342630985453522040793753490441665439598298495368957259334165952634544748040228615782089797350975548493701952955617446635854022470086030747327226795350041304353272491955666038469171012191763639420950546210961058473091163110362137981686912627103757054129603901724337514100005725429029745900290548035023997414359406799274233436070554354421805768517632018915861781879373013846656124993949723175492979440458503762227627972996742107996389435710952457489876819796371308671114940033420194471701483593915961963525315756525488812921047544826624584335161156512269083727018022780237679999323976912866374674868210836188198850049419338177217113846297503867652180067287797790891758718284722582583553954288488164774051216638467221735867691449624066189985006352701492470104992694178125131775296989763840210552156988123882294409009659190763931815901707197754457010250770608529384463511217115088553166487266651139422730580673392723441957392976747280553095176230834762603231068846825824156132337052704734262448426010554560641935702343840295733342360932774898402056565661586242726592300075119639844663744232430973439514932943175522439396534124269335595246460804347197179422118308321121436898031748145647816632305086714807254463905579565432613224866983696442414677665245477629223826753912358136177455684686114885307759259472115492312073781589332631593057059384734322669264820689912590010938780037564486269055224479648180788630961352892846472958742523472014028694237723911123610487707075273862500107587323372532457677330359210189382523060933423432487316872939540346608493873256821890891065255873008457822205302762880917114073591950138054099046577888004750340804410920761970358567188032186643703981428908253894294845645012222087365678747510114551310355283575075516987023724692743052127919835987031483356547799012148075246066008752339360528964267511481863954469078046767207415926170224618253653133500187186886060221594813343401574434520858462381388004727792457356746791751340650767539670612347770287404246703078171411453393940887387890534836414770885175747568478444710033211658977296738622897558451584581506939658593023843460625612555238015578396048377005126983617091416242757349364572346034683875872898470104973952971715793458388157387047059479562377073376029083603963263589233117623357861016751884404659324411837957188037245328981601547133017599883738985445648978756222824912064966225172123000029591456773907928772399681163603622196673294192378355258843346560151310850120872844057754259469686932962216295323932233841642180337077716862785273739151800590319164324186805542043209162519385383989682455835667231715898220277725064029738005741679680056445988416635945105469465395364336707884556366383833805545908709519358171762725004478121786351789395799448501621287816332340060513961322048330162721618232874633715428682757173650174934248519665865697460432275798205404251197535305447076666545219792450968269442888010307923508370499520802996338921200808698470461795466254977952434105307232332697131162523388440717645933996261224230256791581288811099474229474425484125121732619294626729798469152231433209462113939901262458794000497562518806401473909153621735059143994905351718404043696854658645632422977103898352249293663847008173030902956887839166992214412671769410286388397543708386203301375239795384654999951474243045497260913219136392742143736192310611387636673887662465145993557154278073872643264010082016723534752446001212973350495505915145536932686996544397150605884548775830365215039447259129474031973754955032622184793091656701714761989520496473900247606446621946151421005681818994581865655394943084000996470493279262143160600700056569382889489840682412173736624969175112752115882415902464935948941868169491699826512350831537292817001548933414296027807822772625905866033099738648390189895295171149663140184409141257260858219243918804445233491754002727946367702358124829995248909250029342211124680248822734644423781852497006325272756141034633256961489781153659172687691799158751407538565274180605928066399788756041324950139081482167490773749767850599343234747218017750676102594257579683683798847636601440117420790005322423557074255550731670391334133408378530453459824389143897811278344108976498296982685703559950156602280144628493038732593890868534489789078691668588840173201223155136970978865680768076820714908043137487276293337816986235426578411969476598769559880958588882547021686058988909261785849934456821759249293611204306989161957240943733183222346731621659459667668527271213597547580898435137763035004620021618901910200207825579043847362749582886262650358885992875207909248505554638355989852817822938468962819306075729386095484870046132422801592513317261365652681309332862236576278640848943057158122181584638625393107728975574092247112802708109421537067637333412462395199999843525942390348440494311538355656029622049599809420026667171263418128748318035152888272676141542782653809970777757464860025928601285873454520542486469651738474007152653668163598944019437435589038370575490274726957097297364361865955085407271845636746238528155226131097909467778723838584332475762350263846177005736203367570545004515444902298560791207813264170667847526141107600916505552513070529392927060499802341803366160485894544717009160782059130945427317733173522545430916264958075073259414369449595880734675372421971261986745257927330705667189357306569290524358568193622296571939524118923833037599138654096935998942129311671669647285261672567359777050218578341210532530307774673592729419636716271707865866051641819013413756700611647806350330612190706122307419360209405198992023286096128485294386246465571398524077815744282771986556122367103626162713030465971514079353707654579325089260142980749734953838810570369065873736087811629137696204882533503270553258119439248871507968887276020474693425144602271829593189640680775473439870541277198165760551510761005962316480678796713520847602084612786077914035204334266173315877629360629015194165708730916248886707695591038103846732110112071781368027746996890970482655279644737731606804583619062136030688226056150508964019678165236048603105648805063613772033148123184668588457097568141758248569425343758281346372525315223812446579246382914497975871135370715551089990416373193668805531222477930428625096058113897333410768512020065292455700335212529502745943560383854148430320929608691667541980135168668599646448798739824199662100948335197280166806372813610587908306912909323867640724932311115547259402228639756820351994183188197624088862675483882138061640161294643648920387295148664530144530674727830197007955452941441754946356330495678107293527310263872322301813022078265791861481229239728246998331849969673403511675430111364376960390305439750092138787226918866597880377652475071986005789530367585927957459833930797433713602917276476117637016003344011303178289299467138812229339907850523704474034774737281064120522853421434251786199173660343208692185810417971877140748719030682620614935965171351071274222499968855881307619211180520371434497370925740858356038542524284109031473638705886759026147185628312014125847474373489914740629451909889584759377022704417714157837358312074070050004012228323666308587515795582398641737483343648774483090240265246905063917242507071798554954147543573310184686580792232485798765682542087718865453502414793870967777680108163249796878965034973000456570475907705076393026625417400685390944926914791151133594858597338184341830682103273132906833553647038035251128026598347988714001190397495133700844133036400248220573985256294696796530908193154753663184586718296898745535279830414959632298010877669665641498396270248853851005637098717858814166423553820252956611351535443723455375060443323866107123505301153306607575693688426212911297658320790073235537521014052318037064424168079726212042433604176251632318739265827589092755685068825339337742102776716985037533496192060076026507363993641315434649191585364637060333318369996496958741244916506123368480866789455738252436203638233085731243270788324155919035945639551641109783172902457434139421535007747189500009832599695153644372235343375367016093758997041711540425737752594775799451677909856621864437213257463229468143266441190657864693730776896401103905999827208573212129442064279526266088806090676579664060856148159923918175776761738861800438811490953281286953843400118084263530971753717572681963121609767260267184656856827949406888939558491844942542943639716109530545283046896243915205246465899173549822542186585156837295488496746538175163364930888290152576354689373397640894332743483835087757596558803143840192507200838179350280821737696027187787450856016519202732165194161843783192852414221768878996667132891348889782628528883237867115280718436077047289711450101823095969802553845925354562739963523618595487063287328847539066676406359188880414588593567364641112207562158228742734463378921788187877254732176536013625534163154452955091156137647720331347657194793505286203670389616099211945269298196138213438005869805992645873066860355986080073690777660061500154702349878948335063854314808073195055566915338027909387964762487327579669967925127879893102634324855890122492461978834463762065283480643288642375953720031795642856480741240944518150570703734519096044997366413049442424716493564642544433015363935807481988133593418925303107068682270670015214371929613945001722453762233658842502037251735288986044573992519331811133603792502724894232922050127922404924396576617221767554150697771235692351912545880054581133310413056262709486418918549116552256220963573677002358046614989246275900898499766703483283994032977472754637824702994363025839918768985282856361505676428168617859732797911682413729279004797175746347946674637401803887849398795904620508728200007755115517212450444877835654314031283417913721962327456158495089231924826399380076791926350165271133527067863095805170892627449180178133314642254766663160845676995508627264344096496552849573353819229305353948983505265818001954160629597484751546380002487937052573698064916307183808350303534390173463681306818853849908475334674049915073179790918632763834793538742621613090510579705665586259885706869620894362775584277015659081132494500604989561630590244736004342085187422248331346451998575494699877721911945508488848630456806055993333822076395448292917615634956556912038966992368230268723942127451239881759038508749232011689322816145641350977982122311915818048176437061748511439648612131882719203466291203289885606987432802507773744656299393764698484951375572213561635793338421311371666028438510004559007411191083046237228870359875371281259204609938241463234797517419520823915650518813718673771843915854728305099437959860579234193958055907969120392172224753365116739709646588399845021542008623875610700607000117936055974839080392174456837300307692910333316439383360129983578364267080518076612677715733464053825863138082544714074958145193347299528294964985294871783264151001959295092830827446397963844116025623782564882671653936992659584049638692458034273345254178757649861954571473599854890828182146773477356012795578932424362715631098653480518571085996234486003977843863265758572137583578955059322709633492979365660705686152082706344468220711806551165080220916308720315907407886339603062598014323400344322789976907982171024065736361815563425068608191620292723285499789074570569748063017256206020294824005288222828083142859827052827525817285492367983069679198853448155177681964905920398944208027128795707211766855808201111963413092744907521466433859592309939175964772665183188059365990587765256347637584510974188125247746814452529022748617185411222053560674837984348888893655927310223615320352370130588879179717292128076340232640396901001357710882670963531891127116535524749161407025920564596414097638135232953851373735655811094892860292917050889032015538673695194672518923737774685968079250956842984884021026640550510559679534269622802298662934946142042948430115625858349999285434885153356438097475999152636976633609348480823515156205472831309363932385133104325586230667687706511740649823956781444291052813935809451553120728706949914389839758990230651172737198297586739963935276888096315428326802999524142412387316430733749560987454159520734711743447106651764429922378704934697806115299422170731893936217089433338079969105227956191961910139231257026384866058032775010890555192865760083115441559936665326427944726586947991377863286666343967951543509785864035166523393026569472516464425873241175982414108414340682063573193166013357737182701755009953591708475563088584048914590076933404455133345823459787270341032483619650961207767630411777680985650261509034060341699681718487000543182827846110866836601534153069976550530099368451631256960869723350288427947012643088710126807575598664250529782766893672477681975411794559952512352721123758073163978456816795653495458937240517303592665535996742900382291638758355513314584057696271794339184974034978713175943674819240611885715373482016548910649002781126684343906421388914194549599066287828078885865409405811984667314496680309235886333064930523816933235681691347493440683687424974406114102882447829343448968369134198879896698603361386696635037462904289010795871369222833877173522224802061241663574286041318918556031823594555623770330712205185895050569078592311356024074659613667721819411392898982759513793974341115599590633233613305321681332857841037624521268052478734197828354196727595882951136958404518179300392127076639659547865809753474758654583110427968368928240606915531193865738417625493271144478277727969438695485063972282761201239068135831473952148245816935911107677304751066102741205275048159154510149962511022530935415442367855818615419122541650287396198786879891666120407551506133594050699182810324119583153527951359829114794240428046222282943900219857380400758987287765840240463720696037332996947929944974743245184674820489490953898040399813277721587358092921207886121383363923864314290516363921895591568681186266279798087820296255757105166011077966784495132808786060745301261728419048557931250472449128748167876634230258774446811677577040572378166415175464128007822682384996055405708401624164781932042623675599622831313027847314786068848340676838425157720156607496942566619459703149802668632458812640060470583424371279921413179276358658469928934335732170579910092806260891361653092551496201119250432974680427621864502413962340328443586870876783677544511706101946903014863151777074851092696506840607956987614986562691297923435784925960552962532526005457182203823085067791810156049254526151589488731183146982885806279118117702037688432665260755320022080452308498021655151757609630508427447301193066496165672181947104295985688348817379849789496485514113095438174212700703381087384424139091862133837370745863764289080129396277610806401782609933824496563292458853433623134223637023755877013828046125349250903629180181847794646147512533521847811549373853628920661332003156450854075643468966996614577838641547537471746500517391694759640450858238865083072910479607284918441634445273112621365515385038884012883694708765820360429623120978009082540375762328519514288967814223698283315970408529307092578404904249624126857635405498530309027419937227266907544123811475436070504824827558361875610824020325989996620117511215376642876520383449210045039603252315363768972576786524774363196119081422612742050293229618160386989274516367094377089225456289986565317254331576081884189055490067265409148295735772179077436489343767041102175647848897677713196187831803822660034919009094777204703137978879659909529597453090547848889900657998931749175845317649725246991246187277158399284240347869884067739236026909365809242994520448561194999095731551441617123749545550713357284184024448933395782465359432530607324673596918570321433793974904321282265361999958897912465483217287055019277781026808090842159489709626142480753042488208180876471163841486788587178949763041959613432753166519927038357837214674642236404400878040175337570016549397735130509668341739656031160864282333651482451832800444234557280675727775029724725602708668598089016144133443862369388576400633907787231043450274342129516782383913993209584069549836797715051346776258853641415618138550586766400673971286441869015521238341998053953678014009372607802036991970202029949779096509537125749910976066220691187901388116621467026366563790710482706926075336527504097289932788583863700081060046608036057139315781225834512683056680217070727132979548002034778344918867709145173470726227264240411520069275946001531476787160253403232381548006019325160846116879225868544549041914883997624462794350610091790374942639495930148402980626566444841279778715833077516210658992983458289265351671348538569031867816727105580090708879077992912298043899509839182254080723237595016405938671903765820728103229020591165919794251306775679127440614239649482587532793621874821896750556657534579818052529024953847703477345670607405258391533099683363587150534077002602242683197708963701763681431486800380085999660881927065908524680982139966816681703418525064670148815417242901715016571460433219719483964226701799321549601555071341356745936138610917076179844076188912863490013654520346956397885193433372194915477400404577096801447625572045783081613957110456547813657452057531666927418366112611375938103444871321813213896796990670062844105920800815537521246291328765782886090655500835936573914810015044243625884790111065126199240843387269149097288851872088303169570200809088933979518915921860043962916631441424848525420221573658603876345455698184660755648499164249669024597154123095762530888359379450185104434693880155031777803436039566992055156072679323885770830007131798037629153574886239627027763452944588533488609445540737629456758837828482086231341972120944059811913545728477224888378636186241334406874907744644872691423307422201470701682613931871858689552675803585494483357333024306165837912700881518244730420091255641283676219417750007681915793881357887294438734988039638158878348433527773868569526676352466768979343888081747484723172886176477197774373239749640594754432127269153790828998044344608394683421593114153811780801764979069220671605764955977454036372102116531395675178605027640650503285868369915201950187581354203306669794624668716233891959437070297333160909728895488794349987445473932957106742430338845135487733711084837394196977622656847690863968624047052762638013156520210148012794568142147927163855402232068143756818087471560647687321124371771671934802344948002575386946192952731678584978767519410081415577028050084019784153672144384262201186930701201990660518222062183504896061664355401301985333812235387290387405718656710865949347709235155180568875963422082668521334344116251838884052886638703043414036588419891197630584554244164030466938111012960035366230401860204982000821222155388064799161563502395127640656035114974022997799803066612119219893757296680157030204379753890544560996126525002899602792403843420544924641454780537660109547291853824333731376642498594450064356949050845295417906853385181574004860104534847604841647189600758597939172595804202255795668008114518224943489434732746797850571202623267176831640900478312762236321350139555346698778720720351276124721064901777793084597501114248273088120290837120401734907269433146373194042030746298521557244505055880246296927800259451937121096347515180835629902787658993251345618613793896770346107345842012116850207951334281415266976026507189859730024709102321890820933247517972671068570312863095070063911017567335259715652356724494023681052525286616029857801824089471604776019361281574658478834347258450333111207593541940172026233013157976801747851675895981663190992572019172531589031487544744685346812819416407032624476614545892008237087259894369950013440302222349496938823183118037964540355364089404785176668606183856056328511503477568497434963476192998744076893685680529361345084418878032386070090639681392101636750585347177251451492926037022740968671381419349429221278334943680731865544048940000559437588148267015344828144919217415711023077642020140469957250748582065246246149818036599500768960236088608537160055368458909360305697258468526122903133097992853783783755355861619457067586623898027776229004112304593741760944699111035718079500017246875610557856691207764451501397987689012916757351004312986653522023545664275192844361122259934540272514521682963580306467183295022120302008296665116216240737407805230450234005938196162089592254628872208855250391663559671037538627616074942251974619135524730693108625006891255062526181510996688765288124886098122009866095673955222923676526036136693614393929463293025713351418194107159946238156922289476577549345908148888290433574212557495646593997272051494951814588005738157346846114612776103568454099274621477435509562450238410234144701402534314067534020679260242481488411341672509794080029994135600598171315133207768200239926252516952184955627539400041682229310606586937715681786289219222239472664893818897771532346852852839158453961600126472727665052253593278639195501731991080519138139738358329306176197724781032350416395017593352454192718386530796527732621219986426354948116918491654970760980759682011087236220537190582376457041484272943226626641134269347425398130078164631665261974110514145994119652489290529837231694362151600726717656218722044918369202988193145307141098121041906621387303343386106505839525309153860322172488178842136737188770280398269126223673503814077290048116862373815487587823077439296928750278111275332918711364502242166197100271406300906390192686514924141188322085292808486879051470899362652656123792017825942368816001776960041251553193803583134165894962368695498558807517718166331834472452428073880319310535835977346619294650646978509293723742424188339230729292141704846510533358879374083036889344912047617190487067652071224574917416332970348490356198925255399463841652571596271878879940388515403089427179785463544906446507154263043315493265405850627745480406169250425473434535323234280474709004674180697149442015980947906511636821271808077723598184321633889299614804262538010516846644182749017048093853828297909610773650363121313926502580283112588082237950306534679719323725036955185035332837862028815451287458276190891144783500472264206626453516144751206234939689687393614824873458861052090004191462800377819243020591769549290512057562502407481833156300454061699900649398505393053719218989301344118921279538424069565837236222847676753431967474555082095002167750263988664468994892740946440037659661377085438060390303158476727325356248589440276395674116746611830116483666516868276929545171761845849403710323757759542011498763960250887883445969423138935850201293510150619053816466826687104889724302356297493611319225830553854387270726083526150356150356383061563758905730599129292391938697588294261659851393851574806950730340972815569576261025767404644726340073317959892273821986024610301977692714768062078871542357167869158818448002164682562758732254465072736620633023038618680592957725342465494680368023452036968275467734857495998532136098903018813544212394201826913261069075710801217053623528946977850631822663647191880542865117197754825277451208554123328769675304557303706154828914279478452201502050286671561686796035875364772280446039917416679855802267067634292246253995294534072892303052926176060863850757039568633413752848307018196933659361955837954654325136674948276033069588251922264188114568652718814087448742623771275333965796718463564417969007507103483653931948219887673942524763896226947821536289898400329286592932196553613292579296317839762678043021285235539182758279130178767838973259901399057970915288047582119859176921198662928139788946793416165001312368953936571139073120205684549541625816705931524662226901196328228961548750126832867341959419638121351622865619190476893264733787444422393679092374095304208804095379181331566415720742842855611442901029839457047639169478368718573272606434134772651103067474854233161413135876607432662213080598809253265416985732949462445237549345271420641774849877091118146577362486926831918941697504522030104726862643671493598992387140192704687306219787061111757829121042590577706272432716940133515601900037472105046732244790702603120910430791124655757595020697377815578203829982773874911115438721751813218081779009860468264536844274751746804588073999056804122753536557312967558539752747982154211129961888506988002239537275047663881124660399224991705935149064512858376186058972729657334013464392779569801787961997340832315648900406841197340964530213173323772518030273894738217322503221329772177293907577154115186101053097807415768993553511994047607251355137413372923952727559238814736146463990198197034180109447594437042357086619526620813151703870061706271843552072659262498707969451525806145570421287788506798599276207509320384596425147552501878185251970859337178479136870497313975348265957458275361027418791224195700690407950731934064235236036324151887524592031452007839835527195613010186720216770163289139780583425486083493871149389571768183768802724422882610471460507033087900822174096252082510457376006794615022470549772534852260830005947291066901828580223519024689481586178969655158715308086801807680300781554351271356859155772229831677601432064730601158064502313991708589686090278005900364184940326923281216337426421661060019873395523730395125674594396215076438830854844811209896060951799739245981840049736480033061058938001839329235857892133594771121113219618932624514117533288360325968362261222627818074661075965296900925449494050735367571968878169755301747418670628701920375287153559578972976970737497572830224266536085514367862063554256979047451542491715050114274662507776081318114351311380108126766998942615130271045829018457758195353907036160965362094473721284213129419705040855339603077170754279117621971350614716585686321819749441076340653757010090793105820089307727726088165330513264271470580737663719943938823238789865147979779661483163308735474168836238026999175094291233749689955145882719816003492558581071075197511327158254479287199875365051198699451116293113830351844879135607198269426595849725172275099090744521222268064065255887221144254806676938120928775187707595986333627767504601368523321382871236751029985326686463885743155711523612011938285063848295555074575822019557828494483610382032842690645116022915736985734347023918447673990556400439755410774589551143850380468724403704937557873870136509155048027676654774977066412062040147614839620990878798426477390410716563069984445792058087109614114817126456977525424346840258617383508500170333354369512946406597981631604109843414767010229673666621791491886143752314620500413514069432729264789158337410251496673449631475142142036126985479442297227039055355096367833017726092740840756788547102148070531195085942005695118690397173166001672321033553255119097871104269514434655672518334100050221009833401471026459567579780353547720081903829141795443925924895946533202944019347540905202769969787671942515394791359629720599628912862767043173834959081671199689266779609287583801539620236817541186090509507484051770160018720238095603117773649529467524781520099611348352489206173324134015181110486856809240073190741163666214641731025011734944259488191194484165611483514028760558108963785388527343171929814312824223837414451632682959882107104347950714986170580639517088931704294159968794349137031060225105771648625759844712878636474024656466427219177952975161725262494396669145746774869056093076586360017618092584514181446771016855782709576760917748335574447837243077451514962048909944629530533755575366900587256492696873336931693213643680878239100707228083536794198122974798454549416999649194875563232138289954350100500448612604790631816847755171407440048989624088009920297361624929441384937614038243109462853023235590490125858565580560184018847420177020635744009326476487988597938803098507732471364271479794821322201554937957453497622037505948632875259553795949374345085365874412109074020841659355461936945819393914046104780299214610610994020778563458999349637835745355824365804196442089252634102281966310785318417064852011087297041661755890777506337176897324359729556781525794406920538869636876459438896746767472659231800368762800478420566722300916215600934160727787302370991211423759895763542626408816721387379571842923279860719905972353932603563218342958374527902749013184672951295330368585677243382436845201003025857376060024984291004899889079169672309747647062112256956059220710764494353499041913019305638721285014353348433523629136584536110353692632476310760612586778122357147662870195476447317615388162250598400499123369103775121835125382534777782302466678783100562584159352837636599310519405009800984837541143764764294489639583454840026327377359833851071562373692187967512733056934089395315138586960781916544597775513645256361726543388541003518905318829990377530989120302623513910448269279030152955843763101365067136126377685282668762991025583710615688380291513440237682203314942326727652041846986596968397526370260184961601675587877313423721178721889777832340289656279441722918976295196498118551968835372629619702928498970288594558309903751929694414842701645794290107974890386858614904791599392043800639979447402362857082271674622118892770898336596868887138550102858931125811321048576543395674034116661211828428472887384011694849665904822568165283852995361829958552909631492452298295867820108652002091632660423098917549972516840981360023195370369927930372164275150751658359253809492629864198831612965798170176422399643750148847034617558265177162435738877600227957187124367210699076088888796638768407123398723499440654277054601310500634936935488399968165001587814199141472468475090735412744666327182481083030770539071020259843295971648229310460468948400514934237245724806017456012825217022621976786012887801844188337764417069056379628728235751156192121044254816572394881886552503775765355807619352304658888751874158685902308124702786162089207969825529860274211724327701083316350004860361335548963390033752613732751896901014840366792963171583590067848456816336626248028624464921272226690272826687660858725742002965008296819379608268585881292677612517162284833642397129745569754752472931340688685190110473816823051476165498565170000412406272943860730637414789949894282067526133813633386107615478306760850213488125829225749467861726891785609642287602012888912735200669717409082839541819125347821191509317036065089409679923334419514857557498455000190928422403127739845107141821511615404912712812266683405958072878547949309291723652688251035041751180009961676695185171623186743598495774060200500529461098760818840854450198386199029429124529676208699607347859542541002737985007140161223928957703137258759298704853391582544913692333079934196850563741419893666726535372592656962008034912592532023934504125387962943942422916271990214736152211837378396199403371609874341864108761293052601570615990644842681424137870696208489547162008887070112723021614511473542484162651423917684777600454134687942747657881216477623314103619883687674465670208614391282964922174734293216593066657115362598356956005143651232930564795610770315050445565421278197117410168940907214228349197552774911831121057066594707570575594865836628705501399770187679915127372338724354514592053141610379049389697403564845081378398882654498793678210181880099628725670755089353664217650527907969548108046871231035297887394547343724571612963955863023037125578821953998638077203139580636912322748295766225525636096016256521940907302659966852244930840066440786168017340560174051898018208825156727377798834776369665111142215783370390419257504600966606734132430005984984675466891166235421111523149187034564364565467837715265412142376856577225384771457098139413594332661704923687332476151851671150927162695346104726931336660895461751813537181537589477377141419071049297278417175435987641755055302582559898780071822249813576693251901653991983435475112602803487237027107439975777096297187918260236094595587208281857901105433266467664767660359877911960353764765139963887465241940846550399364303889922714194997745081655212897558832094227888267667638392910319242392946919601684566010325142415035677450071771822441314973007587119583363688510088018378101409612082133892345352541105375363533473808939873845367204049229092204868119334793477702609399119306599487102413184114006074445345070296381654734658261841780516558126054762286237415427720598887625033115752104450751944546064001592805441079888025027793572869023966321207737570762463212963775916459154415670174148904266859371448759801645434918925953822377500703615239054267591878686285412396137778686173033280774525196385544754344072572652739884690543839442652970906131086207746634750858917200829899225514697609437442789558814953439942436442537958054247414601072670211951166819091181192781495913819556718910874642559661385005401909811117054429207294000009840074077158802874539869509475137334227955089046676857644725123419480953810940740255344581339312134629431641708458371655615282304922375720783417915740176710011004598778919004789826909771165953732760487830669175076107305051477702336297366754574330654523059982872303000808383609957267897634196338922560594484561557978272427396388189901002031891544432412734996810904703909109889092665406147488446941377362879931474418253211128683853856802500527792212735084186713879219524731931696543660279226573314541645690536260200696808089939177364906299757969351085900336971990373457408928678535949407743092982013818354239806428195485232501974536525215348787675457466331211827378005567788968675497073351186617266177455849013602279515685080666073145594481556630942325196407816297567320683247120784278964546596491347422450485147072999066440451557816986897978910621665483130133385526337729171793254145016561013991622056851156287162154703664203696590012310646716896687751109961429406963655953834966650544998981376600137000159856191446266935794433746860387568736894240578316126505458356986035154070253685293270887025664274599514290003267794819831158732479441412791988707630545593537912213693999462741524840405671455549649355250969490616336002339536544773185434519096383634901507880661030031782152939468023003523661286047940274470561886958129639091452076080522068735156772607833829092875593639902883145921365975653926820630882586124838801516647640088576164385856327161949739066644287720427845789868558452875934045556630041890061636503748296862165648777472322626477818380536969993830434909995134695690395314574693247116860990899850598056826898930809648948923421819832828651797188627821254832565029092834417900875644289184232601068814498496919346071877652910388524181855765284006149304059626583888854623188336118755985888124961897659923494876227741653012844242555429751877685636751368890236303809914755715511952807374958099809942721880633932458963133173973480173450726748550001178908276236040209271267503562670345758614331341113677126846771924317946050385312069939001823169333462330111281215837937722448601743297376846214327972106715406266990996176765593496483621380490600789054089398860800960834632671322087207153185041921889217039902462870419520308006211237021794060815244841456297942856051783363966456161676404747368828602157290280702686376169216958392265453803905925385149459722346600255183700532547247134915836753233395180603164426502880890524070690947185986032390612244592468792041632180876203096384947545260093975281513520218375690099049561607762758935656994317605085276603922363583917617415020980083864468188773614429815073108062208623662297439435520253213071702515691850306011251601270364232162850269737405131483708143891053193395827391116454289143470342068618272323268171146598061191079232867922430462238890912662458620497222962069638685153687110648206028891289891760984929875647194635477127567908048269521252191153705060377630625235845869724287123138335414934024549730110777476489875565838439205863306022987358462702672195719512248279905102711146113971455140995454779822339603024732479352989543195516834962950126200090033748965120478201744381398550517311211792363104679524194878086444537022666803543732658551686753657784873447778049299735928913896125308123708388545505432210749689665393740785050554740762716426957744586903368545541363253278120756778266829371928461038758083086087065290049936521106474615425497751091098802750692603545504839759514321296603338942746399306968878054044642534516867533991620813488569986924636545873297672740742682383124474504060262596517554430432699386151314547696639743012588049254815487924604906727229393435353232719307014716776489548207668066999320956257618217888275528651300621678785355067853439806892921151126215481837855765939459537262637219687039612569489938184147838634275008883822824198193676613746156770591753463411854479571185241398325379099822184425300895873531545570645594590823328179898412937277885140523651572375626317058278044122212173183292071428707680279177424109976543173267569935083777152836893658991055543562376697110789643180716791382533700053592686578597636846082038460961149988483014775373732874287607441697557060317173753211868602708787681707187370346726044785996317108541372288737489730859751651167742338325601962936513290774626439121217540713996586038201741573331716796782030556062563487959397390328661252506282466966399224965264501399114457699475555022431616505404118153835451687484194968897359099351445070193066544698962796929946806177749214374269326289427847933169893276555014167034248049164650909031080972868004316824412019706955934470492456078364512470928931318506591982411300557863688846057335757174722214784927037471365291594963748917946560613256853781113418661973715238042418224569443100337604999929618292942460699888427744449384325110974709975197817594386573930961514759573185219892618169178684794869289175641008036096533048599641478805235708839682113740259126888588261261140891382504008664456419183526216338087522054555363133545076566197644927599136127656585544073084577070835309308102337841173195446697181026674780433313927093637717872860490706269643773434931917521192939419028900903051000314959353075359049010268049587069799252347305540404073020795023054959731256875593482516639318354391467894309570891316032978608690817351090095838513756002917156242562642460757995239016249370743515339467815416863483597554172336264120440104665207371365586492917443885556522707848044559995834477427339329956247694598911887646106438987683524634102160077440058503252820059665420109322499814542350589803757904366953571325117018895512392947338737307133771665811985966742562179803092319133918900966815804178341122873904106578612434162693185222418548646021180405480245845655408310589965804664547297910183309673948809773066373671820633080422191034735721217846739069117209918918231175696138506502171444910978539546358461107449019138949787108699181315184590098671315656058660368750290349037111960997739566204789880879672154205448261609101641990520947599678260494798484999820550804773505398161904978352236451428682026565112956292485981788484713652220538980282071740688759613450752278128062354750836156310975962584643388366479280894223401839894496476995229518756017263560252118345732425266002095387022527775472404958730713612198625593591008572026957685511938967282290527831026010117512399807584701727199165188558881564059631587937404781880588349809357444715201529028856728670863914347292912394665591311334307273937641432432666954802988657882565422311264124165287051719625937022461223966463908495501986829219251332310797350932804383127711889500844202467190307751929723334771211731481883709838991611298448249448553049140629248424219695071536485628211318244476682500115007052560631707337658395594848937662321232712206069898491200486641432555064839309900274231423854566278585994366758172270732334348738759419032581155575970072907817495949294013016460484663088128502270894504047153420604001062508886014038614865067927717211259795362283355382320490427459659669645722927220636422730602141669678476550677494956091954958738445129773566865059285710968801106402818438842619476823878372744808162243733981231297827827065069813944240667714725601926037948811918453502133643339719006034703542214044530835746566247791706456811587330935333137816225374156459031828338528762993346154360669856608364870781774374858846405403508877158736651313880950239597814731790957083457989011678317921219854153073805962032836705335980942485138091034627535367078734971474499881539529291169129900855382029897350958997114725078066333068768688731874058825959784174340882591163089450755272531372362398253594534553092642754493579602439913415684646190755748785890539565972466825527069649876453520231039595593662122904697568936335831578790373757941464754779505394524388374624616108376698435192924401884125143335417142894127840942225199980582343639547247368446160465930345662173130327961053535158113828969496044985794723156634993900987782829490887965821586267447103108445271783984768278036823627982549644015745027895494180786588360018841267565055351810574526410960425309186386694020691429098712483967081585306903138700963965585252453310188402506658451575074666498705535721345510247365723544811165701135534933765578768877748112619310887511224127093825059376173622926871686593085219374032802953585913573203107434963265233971020284248068784353192478049317357472763628427937831824443516262194045884227642016542512829752730683882836550088495685513918981772518946877810758230848917446218950749828912444443817017655093105263840042505779742811304130744018520663504675868398785152828010221693081006212452128511165293929882073613025931354475496822586956697812548000099726743715629559291526896535127301630134178896374361364293491591561753842410108415198476384347147884731558060198095923710103290234561081872095045599838080420305470274880984218700438953301064426804282446824044522824607042379451432923865147577447559828640741794641208378045583497714782098075046184362263026908283405407655278726479357582902413359506643977197218829012283633624912326701751050309867292110495379297701170552696073381634550626226444929096966316939404707117086517750474815532510141631510529905057813923404102042058467087292120511881093484596234039695368661464718810423454252112909209877427714079374531916438529639353658776883383415986884006759550946325064116875446943902728711443295098237747454003427986526584530812114176421843863074692801265731973037980604340119402595084715755006137793060460788536096528712304212133505894554878314965460261512086043341250167894902767870707116437155717986309765166327897714786168141972934388769109494505305760772278641546110947689839710913465264892550716609396439391144535009442454614612023104493860574536100348091178660567783402772957861147844672121236400098062964071360014893956239823430966809465529434814900517079317071520759911498637887327294783775113251794437688487007047551640348288140597244461674170659982434405541921526162526305945211824357969810375569871770180006968356543444390096082003285369342807156505365898810354742362639034633623653115365757224971264565649089538794617939612414339606181846217596717972803181132780378140019116126527579834686640043611641212455115735176820736484103160372389476769373556085333715813570973957166792913782021337671233360417450638333480592606117165330550063514730167281078824775631839349617562306745942954818215591026470396986605620161041737576580189675503508537033773770333519054616263370504657620272512096421500461306900686575238246109974949201489779946478540469398625474702937606694056533335080413292128959064381661295085362073439431117626762774830260855931507416124977069437363304700820021819927684479014689769020797635052143568260238607883554115732811893047660988178109240088127988064475801367457739997509513847922175884166429357903158684987774903209093903052406014690619181234118943139259868537992284937838605440640402065606901938972839801668446708442113029219302755131565892975955741873067024096850340168593348337115219647199443315115091618979544118139737927532157853953013832367069306234251437769922388036640169381684003567028078077778996982413174123385629826843128554877465612464989585207042451688841930988580699760578309780095876449717694376172777769812666640770377197113702581675245413375060038032756098029894675891129989769934711320930422951569314979289608510717799303813368968858568680037001603890661864083394704616241562647855193553133186445759992501896948291544376483265461634616651432855524486659507661740492986148072908732662950580537956286813485459656841433591392748341750733529469635148905398681636041923189355714178365229482909861325582429697182754660759446240476754698833614366209497718666854122060182330094283843016737542831677135895445412701865918816467268687401115218875508951912066128458595103455446975952391492887819537200415595494381149406938001671640200014170838321200501085157355270168637006911066386529626732482826471138023925717927418997540947516408404382205874467371605086281322012098641342300507497866500126907714437229705109026358468404950463053423584104132941647484363228938315875827334604388616778130776486686527096450529912966543511916531686936604773313488606355312158742208327934298638855176172264085209678035445459530642204456797627862289227302234978246796407784600130139866309807439503374254464041562257210624138718411017336021914613603996853265253006110566675910419175798599841006447757352018028957878332095579992003105889533025553755201169105922669107875371070206821172194994994470619548782932735690432859220340359266841023826038094801516632998492017576647511417862258953557607099454119898747458388871982078249873184630596750860168175059742216509138048353991874877498605363123314939142778975242617752495750410569376314078418253934778474475137119684985286149970752591212507024067124638999773677519079452460337722934012833710155262867559388539645430468502606949601783005547564027413018267392445008990090632690994577382578175682648612595960855461573085756338559471447080938567384985987743913717805204507095228404665662684061817974472408162481255208777873811445447471037721891625488414792510451258441654086443933190602975514956095556291770858028830545397365395745716908447336219135024970998887066334684294829391259619751310439000580865081970026291734596861516233826225750016907475563248490286826369159056902259305994941530401843095121247555219424189195686026006958435882961998275252969667470909728071658781070356024387686050709048558495146907990306952526049375316539547086975896014683208771064454882566395486316282190654112159460960985909683399480826659657138496577711579317999442496960913784112930209212586685304816162234183960768453303447050533417762204532658446031349119396560803984959727691110766287416024366870699257946195269299560873996792662122826730756073518779506145702157622338663996316729271831848424638634396684455983476748482359931835477848965022137107070946570930499605900377508386167108060581323958885371482705285607859782090541242985897877325035339638095923327173412181205372178689791302825332608977201656375101492088339798508802353309273726432819673904975139555491292269247693563564173190500693170138309481680002261391630876217405680895320310532670373131103841734291474425893815293428178421750729472628536386702462781585726562057551922258592627634419339415235306288875871665406979642089900283056257321834975313640575320017137356577679165150145908042340497720283669337099563997785684127378441836193411308455356946779731721605335830725433300216372384266247779757188182134395062866649094901269496337726002417040667232631351268899232214074817698255817930374669523641146432919811332399957868451458658239461012476821892915438540445881744236668265822970318058389221118934442591950896132213577413328749989989791362903831381502471761746678414305194797301499175474200012515392500123705570751181767702964007379652139742678350598155928743157009668239492479552357948205335278832992745367004078906683794174448344966026473976480953491241914384140831467718364994806022418143337999069954448900812958613097116268942437333142277902541121599452646612352376483150939716848554250930186880895254362794799638009093092644794055242555314027265637115966624534347953299248469089466957526032861390054259303487811242225442573322902122860812125880136119838713595914378784357303898924551318752973582085604384177550182177948760741272565256958413011886158531977322488677489441000058986832690492444423894500375710576969676244636671429235400078416969683383117011051258799184243580312353516331693286473624010685701229698693187594667393132394960606234141328068354634846789378333279539468684272236908228696002114333974419160928152649096672434600720564267742769615942971875807668956946706198123904401269212775517946688452777948562778003656826446024067669212146717502206460949961777263457440154772433274892987753734177370323748622909226471741479325035722740762890018895741023507677285758852090858767292687421966381791877145963003270808947545082295014370502973400797761290687010756342143240219412703377331339559267584515823484187600952328386128684153160349563510595810600170763878435316769772449427935771231883356564180547965380613897386698829730770241768124403091170092593179732088803334360816452865041359815986921202630858807776603621346832516199595168308726911504470101507178108103649975454799882750939549734263345605473167978148271888737619171886147954271089388637674969683162770278336926137068827546920768455631216673198911874218033505951443783313632285617670657148992401967781376713269472525808087828486563163922463988345192823670395599630519429611050217323000766587608326680113908610687932023615693827397647156343988995973764724977546279537679603719994755372438560573192078750013660795968315902930715750569797884609981678984280687064602936751945775621738458621643211589955077390277260324369276758803365487724359166607614050074930451319848242146051121227952682032612485473704341159136192229086448356931403738964774916573971570337294458741823072791760493537219941038817636019165344989466585803303607815042804651685046990916737726557138510315619009859928643785639962998916035476831223149831726508630716216579296989328618540999375840296605441450793732912759938520850629027791760035171568724691899234643262240862064341805239266264524706095738477783801327425797407483945827906755771132877836041315393587890578056190399891357299238996273594158931945421378810693318208517725884756336989683356897438404769829300039212474251249740759190797601668498951638760193525206062420249575986487484491369032740855790659275951119128570128569010766833179297875292071261703437001081001293855200052663810810896576928413694594777697339537898093984150731499173445257472214976917589579786122805460700686437693472038240040233713627986182094562526341711105851874915562873136914578718149412698349954288900629303843515077853701385304637592070497305615389090059605498090405780946537571756175154746552401383392139370863985502686648368238719901361008862077933367712884538627194916104757946948103775641999105095766545728089802582504485743510979420304952844650814105960088244445238101175841648837849848076719648747888721963485210304984830819740331074793789873428647994951173061642169406218211316616898882558283879258856528961414474670433417339738329595665147765868731708719244310183065041145849830201165731400063645480933918679692535827408011864327030451506049692196028902260546644664440402451007036817178244880768961622323549727774523746614179548015351486372882967387508114758273345388144159655008836190413440802497082751396356691745695192287207870708580249820885639639961212257623443207159374015711326803351967793545877161278662262691805146536425426066856818530228467319023472540555838082157507538142189577073752002656004881129253023644463767962914023014824776793366913841532079793852757963987082592976644154642799994367059949926658377322762158686943038569935144259580367268266905572795262256168977750464743526843690758627585808556681272243047651878498765901014852953403592271276654161935862854596535299503230575251263228955890532467573948015761832405247953822754255917070484315652252566496966071577298836599929705412333845158856239914877175879934072817198794156979775381164457727815317974101870857008353595033605602333310297080167766734847276825221249679088564592499728813648138238537679194900981251477794925239361148547857869082609918584681129838136079177544030249716449846983199344306725620481490951742589089396229422330319499045125309947289692234884989926118062212862429617853013658912409509277531649146974945741954411016293833937952217177091991187526245602207590941134827727009570082951657092878518209645875799312949540736392023862470972316113250704414427579654123794153923889960294805560799327467821710219303538842939406354283744000056537308543133777403003513583485110103240741890489821448901227884737498198036255222207933167200641047317707848641095922026434618252534621443379877764908684541631794559523618303991465488052823142284868292097417263203065096527538832654964844331665711572356259462659125631657652964103564731362623094955113345958361250651258318282131311868555994098306202739216616648847859896540162733979828609287197528982832883765714783124725773095570489876423021450218079098326431894994478216325247882364456963127044079740736545037239919869594427316401354426362494030914050432475493968659709703783049764092322451609531939886604913986875744808698533909321844441984585672593969075460205886061243300841671519657407334928524414153025508158750735521438248485151423293693510471987840131446677971534166255947746034167349675691253329412763328632620900508585978589455972141519022992812484473689258532433302212675690801804480869572709838700552002385957572108679725870899338285430560439517010424191125164143829916392300604222722783586029694532508551780813261494987913249532041153281867595467711436500481269517760285205984144731910981587626541013658835435820326169156989162029058515336808669507389346359102293235263152394384352639842639322911773794837689051887232571334400584898610964547245141597821734495167327938258325424420540760813456035917879895370949740351590207462651121963134131953006344185191709068301098696451976041046492932685449176240167085303053088888150752220609272724405239373513308989671028801270064829488609061059256876287341818551183230236964325509979164937732746399509640920980498917832437157446601817181754380086914795747322475084768943650845592652291923440192075033592397535485118519589015449132429556702274765514380178335299028573356187030187184304657042888420145124690592065931322310532667243555902354818360744136484471840031212301622002829225741737752383747281032370766274426405532287806156869531170172418844051822487975605977935777151978519324904897754524773560114646206265662627883237511823817670740771828978519375195599483040591050144948200326308520405998164781072343890584835697667422840275655637176719337791441406420803283109409290253134533870229408552648629048286014245307488391688251984353298669617598295971583251180941126727943267069934933826023824807831095929334789595133494621048224035263450068251533828715063090174894899620948482111703179208996044214927614020438322529609333460322415923685831830007142862084645132694315279415398611968145582045141362425768547959822707407684695906150793348909283197806864884273765897730149371829437713163622329058490089918241273621035529889095481890646075626182426274043971464555094114877272712141243038808398908624782288048819758350624438114892947022916817983327246737727091380449173558326509984593689563260267473616846687381825574171310376528255059563779114083988219895658067367371806498285401841894624595722576670331756198110792503255801658749966830365862019286234521410450382846566746537589392884775986183574122207663146934512957693572150448052355197927161727140218217994429876985267442039226490018376382389605640993133144767539995902928931570417898278679467374046547050734708687335146881853405966306550645171793732808336864058777412326110873381386443658472395917852845480876949910984778344019766102208981660933970720025269129509507351982336226234795902526309593346338059745395653351517712414015469391145687234693133917301763548512826810581232837048986427573095955780981279741172856191852053984301981648037772111971724176312083312829629687975466784361489596413525375598204663033674675766232472040521000421360365723641524470120303558187092774335733337229282088647571085561701095600183158226381202267276211784246507955094584005521418315575781630067935669626595467875386197065068072991626990784345046404101006391083927667564102286493090148381921014517943654530678438069669571811003997964343368939414213267574014453274347088535107595992446893997214161066804898856296135721546175282263757682259132692172817569755636337885924691413071121573936618065946745509467439398543374524334520257615214067920682127612668719471684798704300080415810198606715684911335941137344283701718006398647156157762970978800242874847241477577418957325267753976422018270834615500969951819055384100070431235038961473875862562203423874841166087484040348739729425236592971711323941013925843775840583236528056041932724110069902471284794126038816866019475382545733333194722420872589428133927858982095378653880980398698243289787102968037866745293518445011304964814586232613907636632033332046747821111715256819332280114960093246298091904022419735280143112982247042998829925928464534808438348453187912466912602902818379785797179990418246486395368317154609569401236622740969328385255745006684303154980614385226296319131223876810585127411687901211659812145684368464643705217270983239262129309661677902700050243084584772888132093799149301951889561418408920730072961818997169385502214979848509298036780748447812339481439305531780328746335425034558285330079412896297007958960700346066141979951904667698338406848677793759469057899516627914457877255577311597005606431577911051152643527356786473861541795774913432655221763131497207335063437911731773715025095590712154557355911027432893201020155245570325023589673578644181643140179429310356159828201144625094288680089285324861878318283970888903743153153084830851947978021595256735776881293228501361522091236113355757891595985793321827386360248401937470667167231647112526830382783774791899970889542162671695673094796084044183982542477854023175182245946723218259602858224558532750918146458637260599934520970045599266327375281548742695732252837880221788081092876257273943987888879618186875027148808411618528327222764682107330088777600664232558606675694097638555649135220257871317293309042008366107763149461380924312731679437724944148683063976927658697770650233523395107360837131098946470875910347296381811023131929684195834386852583819573014674545050896368565420075956443031337254771548653169807917479972733244873561416901654010837652839179868988966349378024141733140696292442859320718407371156678797124510341920721168355845489931506611510836380434383298042172126828620246189516640407741273726037908072478753141184875715823202052332015610933820353623506540870355876624927817712495939320694898051836885002182115150461381809237530216905407541427405615500381043958556236008412169745945461040430490603127562098951212649729725706150822742525449366236693731794193030044645438277054391691205343108721457445379589375326266773862872517721622858365972787408824449553540453528287277950449847220330823524368527252979561668310228453474309674765824193917751203115774532824709803625126178024799869715584670538190612659430549201300054232699076079080796767228021475189911097591765500560206838486578660192543610166058396977361155416740191626545442613164963316582051044054337457769443702562339400770567378210519557290234657510519952212325909748344595835835425439085718338787192241916669746298338768843415179163910172084285990874567242016516745668695140889796204326247015161845294310070997696384556073852715811617214535320165813590878802301135722968322717941772565818000869613697447469579143586400457666726892349495944687086584126167893365992249539012829514158973386522607510934907987751915065380704339632995664541679493179376710663573920713409108144784673621175317804870427172695792232309251509267466602610311514831574466719791229815572168843829456067814997627729004872473114989515515758275549986174992449272201735042847896750118513585905685401688992526068599955461413057112482379446411340606900491249344316947591874454633177704847904538196792441870943987452496571815766221327315093144190415885001053245975586839595792003019532254124051961205488249013395711538689718054473110555565712315284968711359959033344693136603697632491963755507041967351701313443972607239784567541540629854583646111540762280191483162774262709998315269491268772408191819350107790604086581997507528308186010799334326203165549552433404459625223273397360877274561925397900623296573991671367825600133965452599109453022074341162224976925611160294766645904693089684686398550946401248008188981141223672598449333331769584502564808698223119804138963015423692302246574244910400570689703126409442682251435462079666666805429202969177289529649488101853141253155715688116684375521275673295070081373103626913141116416085703324225625786658185689353490334041043930858107898563148558280939338568597203666345923862310358490181703917051268886129550240502600485438648474162097937194395017743204326867532092511887377460885473847831304763112882575542287922047809581986757988748337301869100197653276038126628267316401075039101293035170286149513414623530881503846237348866284692637916813534906104448806411356947855012076257862512659746289063513072012533534303824668744081542435072208603448724293723380076847891414857623641488278088033327353250691397254647868164030034882812935925652442006452965170904956716351610528889672929823764069010426238026567485347480818158351880234500857502850188840678987869527913322160493030658857005937121174587602889059417396591907295462260970565163246619899982445101855174766152916485401687924055882486240972301200755841977010113722013721234613524802187496455424678401356339227733903231933737500857315696585688350524028444325395082336982405901828260581062981766813474930211504720886857270074383583799481061999091229303324803783025755075372677593776475138996213957592933695451531004576276556680339441156206815972958216706534319701791579550443220893123731869830007897858506938793302008224030412296572226121832931819262441825840623993615903230149389744573114767015382598044358151504923860261686397114682072059768859847412481313753018670166175804885133714003658687219663298509410686243961281743071054708126121589009621931932845294103712232725014636977542287549554940111817848665909516405890338245142660838867805979175613072322217101138760993611448865479924513484889441462772964863047266368698411666076098899318532477680517695819671270405359002280814328083047540901473263433364401943551679212650498076289880204364718301017309839345057314106764375312578981257009934904141175801461604168056822984695027799234229574568159453874109220584431854114885636957601943586447111122140763784369058459012667305964585725456640578728150057655869993985829122027104412013131665205899352914643608923760693486625813812205291826562899121167437242560723400079490840444865080488037795798590241325148406454389026192989683206523618197771741201180455448920127099750416614976201747186346823443714629468628892359311989146401090917545652487670112551066174491893684830083800429791019151677508750294878927733183926196478377334223764062484025574180683496406651406284465000970782638176553735256928550761441874543418667600392611764025850621855898797414428604321592019135123067521715946488809312356976656740778166265961591400770263898693407214968012257826897744687560605259295156193992111167021782330504644321027553567684131577596131786983893023344464532462737788681663621488411707302428947366714697058943442778737388371595374523514692885988826854531581981956737751341914917609303527537107278627222019543546476631884241290203612738018079779961292976455416311911583485340012172384644624378491634509564456605983718815787398096327514518894853026731644652406146264189260349914578514904375523240755012238325518518202444627936476599912498658774366783481955273610309006284435272808097797323181147191838467075107420978981321210452482913089245998158784284345700980059893531345181728851619380343829822684239682239985659316962188190850153127859884637617444421158431926961582899632298633102941191507330122167852065148042811369085597259510924893790099402987655693490003743322755277844859063345429601523492465924227955551073858967304562240916268535014991235647588028018915026702214484178876035568032193313898136612452431537212627563574605257088031765345064786777802816553657396980828172437597432225016865383653987887488677703209515506460285970269474381128686294171594301842233776739198849221189970177828213257181207523577502083144105009506219689084998991231613536607014973549764380571801080905889746394767498337739364064696526449854054513975310611054644418346123036659503072826665484813053649792246937884726261572223366857088762599449395381874830172225398224170921869379594666498921036487078749096373110934190177125158879338455547493424501320610201315132027632364152410003771297023355156948456667878913684931538215142237104606350400215782952704138722387372335984954463893752675965056914793875739732485384780262299841334236589683675563149591444731030132232384100521652026681611700746831762817944127929533775868708945759180998242918525278017115373529507006316864125860692702760324890815843416489358541338194396398055758511237204381793362541885432442903167554779538116617207896347366920947338119296558487683199826695866391929459399857701755779998760126774410091580354205780549321031130064142761647583830300040310175587977402617360115398284465456146925979807291445867662446707554928400131952250046119574756076618612546903672391911403372964662073468371410777119045466637642478244779409693503279543376571174976722410934657981975392645192114012566662904272887691732835507900079084084930963345225942349636792937884754545601631940479796126483859878195599898408722740736416418427452486148083442398089086268990218925096761104624502084492495223934001737333712565696120579368065340256405204025622700602974778318592391944682261033080586334438276377709252284345414908190931743657141978784421539695373160253996938378563143725811556770418390446030317565734691936062201270065550507285126126798689290547133298100701910608462773636787511230089937522148000525053891466311768917764644359318606412174799066014966255051498693917881727968534552217577697157709447297543565347324351637512679983314158893042900354146804330442101793976561329386417291766757306582442212611522004469560321352324890205975182397644441095945702718834116138963886212299185298366418663858676666586613197055998199736769042400388703698225817346719064906088321954772233440042400473842082477751050985877891730738975528208654194969478716232374342296410067967113053758109820317207709858164006765107529538929635552643177877453375541942916179410178291987274853781362501705547558974826481208696558985938962824315903413915210735467327917058464945164843185293595110805416128074111666951551731630340203831589070608653210903287511890581801467876245354276006997075826576133920163678964725191739283320796832368440624563856031492536564338137315951364721489284253687390978595647291362535030596062598988973934723217035694892060843603591788550763885375635654851883073305993439129847692817960631122351326674700130696028141599222180494862548546501915855336430642009742207250822571980725545168732384964040341765136474508160110093119947580300577444164299198704210680500840583290805897192049661888953926106869851405625174959349516140005719497112511260036473541799743290113819409466420488495627183528752117308997771264557584788361568662802771471716566114991404938359365326199123316567999584404032963456820356134742962325284760851263502934700271886610568797112764275013349432649167946691421463977747547848357228166386734475922389377489315711214661362015805871792884832894460741458865198393284295395768365236573443759851331067593669791137188893262791639530480440141361772762494254820210344983173888799580965682753565304969212655563441453086724555537096332175778458171827627535421214468663140634411607600291177106277487981226818035574012953453127747361537071968480883067059409626828449610149764151310064463856535241857425117814454055403295919530890164705194741056969941072769452040365984394850359244932495638167118685072891145511743185751646843761455826719153590052358034700476549502825502404512713008375225230931672532695747578991383714524815971969454305028674547853027672146182260604324662575208412102829803733353971472746346600106071002214842125173323082725382860323236886559460527364697993384746211306076171070923611896472206258345158355454848033858764462898214903199012623296594026530970205773554580826445397607444202731743800750866579713401603323830429689393762465993328022511888787076648781057989229308581619600711200063495498566370315784262226455948861783542575792266645805659910534555711682696989590822184635298546443235735744199617996694318057545509946607088427876754428579755366059547360010949932131491822899297696575901378869115075859640154255277375953828854360407806036525112875360282113131788777490644982502081220171793376310694152655251690541041566330026944509681133840419296986871564346794588784309282771887665447495580081468149567776690738300385212547612247836155786429994383747574531892779929770970358204353086886622353209682150117687995407013640905280700862362506122572620574445845722427822867084995896941291311058022789259987043217046843281541643895167463626728372827055580403011145352768796231522438564742280584909502669473113265209695374911830683890832301200891029079058287239831682338797336195799458174552269126412433044716487018953288957818796674183960820850985590131132955081592675785942949837651577160546266588098774250651051015534819656618726354397784609585084303773510478995150638807900049782989600461757434504850707767664244701175945953212104881377253789024432178005591410166448557037826969140578133537567908018857845647469660969859695367414432083460866973902056306364728521376106372982094151016849674432142553151616708425324979373248942600623153304642932626488127196027123509536961963843933834659798727461375036154350854603632110719157006132994745329834461411594251072804963985824410039355709568628535423501727100764582096772997758003365841237408535424856143314923689816208774299005333327989869488061593179305743841136386304809164789884155021155895734186375042545577593953273581189300117174793196140085125711144040147240167576661413000544091827507112167573333736269108109542772092828895515776597876038517811508481078502947796989497472937559438231654783561192994281751900675148203747880840632473176863112879220817460297622181418581142855774550189268821449663324284290261159657516918357904080357830626014948634197980136843023345636831243781253734714383204058868018412701236136450458509983767557670983223207123642994651759950563480261844629950864163549871169741907422255351045799641708453640373360773754902538826306691708381673441303977898058370934470014767647348209733915880868730583683393111751466835708180869909831250436427380587699312060559259755252339741919629339690162932744283199974820545849294144594464580578672528383136026451877990785469491941012924888272150293249643561622559228110125330711095305730603286406236417016892119607887576389265090675639362109413406904034574033516357100044371426284370798857336103658179812931714121925700172940923797261845114848227808100537174415906467420334521226924984374220804229962129277558868288607710057161584585878687046014533225145481628360571857318119592723815358770116153276020593015535494452072364616387131307255818572720063973575053019933630960788381284938777820508065363353678759632449910420437457898357930008517050782501867625861756146547933723702087404682868063712579043616529140607187804100968833263092747613265559365098250554757710589267896801995451446272556196858732122784380011828879996122300592162102628070153547502197273336193540790178342751493533722146752968843727552582758441206350449158780995365714702577577088542699564686054191869332417953999102880234798263707668643181923244943523365174337492318562168694132922410226626836831620059729634800170698392198290461378793826340385554808872101029763820822479721870662980234792513170730464811106534281682151807489293734932459218723764085063763717151742681447061211451863191870890793694293880017461886906498129683470335983431222716212879714394518511851010676251598520376137383317826537556384493331424217459844890669818622802989229593502701603335178124207156612455789630332698436024840473480971674726446906692167862605365306302892199464787245474070346654499535973903111756274765822282337266662157880004691398627716426984748825191245735108570024645717427799177755231674495413998882530952246829185766514003340655184159656140447806673913533877102531533043773887108380940527915595518854060612343956728078007324559293555244323114177236942187124122170030582493402430508949528177184278845037926267671454867475504815224557228898744071127132533436091538557617552371581128455554315812412435946236213294931313299496018405569906419548337880150417940025633538852409533441207125503389386784039231902706600486872621729052703102351844509568072322778495211614637777944004166798446466594559466764666960808662289365829671922439444908015068630507506911197528300605752594142211038333550224200381801190020643817118270373109968675448924888732408033453859833481404348715733118987413393220088838844662162102035665902890610186093366823738763422793017858602469876968471660144762988421196987820801555696840789380698767867468360803552778688124732858881118778629863395551634782567808117008023236871842439788180367358197772188863174125539224206670611799459629269931255430276701110375833412534403245160334567352404006965491790514102507298078035635209626162495556103786716187623425813543957352198565097723876066101115342303648709141369357475495121158015846259877022468858408467655075977466851818537766085297140701849500363476982779767414640294852219463462510971345054958551829838030469395230158948753350139566741653774318601963347058524250742302054759747348492691455827653837767018817356073356166447653107384864805609551830188838911963897817233457074961878552870090526262324310013204731946828474969194513006535304786767385066695856171484823471280147447464819954433963764764759033481696803205189471307512941086213210665305815879304114530553524307676859226720976655893876517041355908615628528357072883602067854751196060441062550552691239113327226720212552013348558934397271074815369529207988004502548648177424574085547676202878955532791376608776561728131280326382801814373488427080716705414002503632029943750700824058431747750794407328139367802661771602922294297140333212638179717602712407917906699030098989340329928359172209040928019956088951280662516553615540491164083960741960691468530741699154083171858674384122589661996791716061964773808934048289872871749272229284489063863892647860411558495029578542432846886087095907791239007276052733374326204134359053514344603184735481173516031905934264317930197129169011910320376098663649702962366761769784577844028395583432263056218722803892021612005628849460686918686591101030138668427090545240895469058576303762051876194396363037348866734006667479880064836188286732476321999583710981586681333940744291350499474553377300474106785270302480370304181815592980934710774188367835398621268348698493111072012199785411000571988907409948229607995029472325169761247778806405048650431740098238002803402823055331554040622444638437872117391677768779954381244402684662514847106001944472195235918723952429919630822215243775381381704015891236088612575106089254038010685175753395460710478837677027159077152894740572121221731828957154014708899854437880182501417024715269969767068373858923950743600837832130895262700312857202758334870477345356863929463096553548294992879449596504002831418202630093645503783199031142718851870889185123448298863022461870726517847177814557487293881299245629901810729794110218565082991066426485663025026868125021222002558452997435555203857653323428203100047506257417209515659582399674995661452240660342959384552651336682878895851598701115338737148657217484044701691699224952638478051594829923096664648095982912834425795296934647500671481508275449792146302007402769361099291611591499257539301685241030739204577270205339116754712626569610009594915477851904495995353375846622958150758053513274815740597678614570417565818435746150973509526273469591377367776561987520201987481994161734279279729479943587865188922065667201785002877012703784195283167176386827834149254082871054791301860340223823435430410062916638478948066587946127554798275983308144854780264337318053620577924601887161086712121907184892262987121553556363204970293204015012124375216296930130717938664043495311881000608919810623887753975266038924123689274762645125770452647816752554946334676636344998425479242641271541870688220383140534090291546275889386004152286651726438179223456368849019566801888841080682688938509883781761864997514982860827929165074551247457765022367802050125980298363469162727449863656277082696895536291727964758214618346688116193925928339711575501565633044173514415362275323409183142497249226881582098950265014240210533456843075672385258967034238861417301018300728883388415836296391528974706537765648361659197729121463448026712217001167948395946476700124492790282733390457845211618672258823736152540689986464780521877871630078201060505134400833342844994290079719206057163975690389309290430743972091395513623556735325068102292270149940341763977294700247032638127866868840720695728621287210633321106631992699550738911996839359354600100779372871197941965195928013884899353695356561482809931284344147779276336294733647662086373485092362595945811900741729828165658631094995191525209205333861747306003051825191124850318849851153313944144084915334155113863613511128317765582026653417414355733128734912615074993333264985755448664495642257496270087102542914450598103122110782307653747002609051113506648095238821756476347726158757922756360230487738169949223902181238245060703391214757446928445912029211989959217141474725741230072137384831740858204751148890343755209464481194881126228230315075122065601367144797350835532068687768405973166586918953673502197664471465375588430984313753488931084028617908617864252870048416350486173615096254102107931864217140616958296402354958617031018444959526407374852159092472476968737513501392018976993964056026576822614995346713141452878870208953137568896181560148503862795535873905551577188520231693371698264408889198391295486474467216465604791616413511591062328507497465676788209721967792049250264230605229312508438868388811387468502902531270219555026739913866118345234882247226266098049369246851981399848028897552612805376254957798184453187142342325790878258087235272330971348155802392259403294609209750679836688265792749464489582662426304152174899226643420079334613067633650550968371815007495677439128661444168005512361707732402770954527442517785013604197078387730225710076427570408925431873561114594830570739783702656603194003735492507866702297501669826283098290135016679337979356973080839773144989956037823290006674878308913596507636605587599157100203240265423074532536375217034593623942429135417933460539615559888828510135974506303568248881719089868329170202841904940998374198184841067678249041696062314146875185080922232208166235854748298352127477634137299192872252014188107947589317121880937137602859996438696366143921639402792316787135162284159173065934459090270912108712278355233469504529327251052344476521691720786731705256567188032367985751033231523072935626606383026499605384437775083712393166719079004853623800575941497530523924292762193117826210693647952401223133640259978609340519889333949420739249820939429308226886178145288018430673246371484921783646694820045220272848759974777800413544863979436049338620635125887035312495481581382842288402697949106347477605322951995643939461859544041149433661673930723715628089724377334742664746516416555157488525585966371253891854670900022790896203711419673240293905109569959399303871257956566691969765742365185263438051705242967154204196400495990683282139368155574179702823935682156437094424120947841195921186816181121231931837705944392512213291081758351920021453036489849713458909166935958084483997169568597425340166755202835062149364088987233514470193787881607800556101053342417609719702482662227875109494614274673779756978319960989102137948447095219537647021811306625270147787833007884730019513151931829754268686778939585876423873567179413258421986082679575616329996556704908367446229406167495698082221856684324374939230354337922970935494653084304795134067908639695626568454708248665130174620106287014166030749659252108986541682871947888888056158058128147053069220765938974345889858100924526541890227204821376087124036259248701865148039117087200052392644893932043810811295060521028185185980283927258367088520714037796950443950968807144962667871044244900493198160530557934500844108487724621328668304224139432936126609030133746097155039620254580465451329277610599339766083072809811793321985237606619671529033410393478585353042085843291305573102098147824548403826202733527189881692771818889115441644918824908806984680824370249428362780920052756142605901504805419652325031364800774679264106599058435765208622116009574295377923657266141054600430227989757394250623158507912457103650151005999155221426228019872094552969787015106234720196972658268433998582750049238362152746197539964435643598077076009697934534199304720180265592504033237031190794573201645693639593579058956990050153171706213931893381498649923595336121813910819257679403904804630847728048106330612880920109431385207350918406553969450002158259060627271885826089409210788842740906809446007194648775908534135066451342258187492421220605155753834930877660642656557796432791010988034623123738903708731647694201329702347018264700142520559652419242676681206160814564772746631931547204498836464879715790173560276154240218250090602845625551198292445481267699335569177746321396218722184893314653898478389080606112645415708496814808239768396799156615990402082479276196853920375342363687126636255846734849224351524676339756978648787325139086420296684753594742985197242557790448331430349151069926965374333544029473217976011568739278401531712911036095684267158716730158317433570457025088714823996105816635646442576107669147053230226328818329400561440917674366357986457441706116685318377944820766183446625164160046791594658876555557041819209479254875168365536330657661468564056953667182297069664305268153217510408199901537276034232159074180378572288369960661812967583006929291665142270011679877835092392782778323967592243207825489359341027099614748116292614938998390159822406460405747732316783912301796038658807012212262615968679441928447610394056704909404360021395100937353278187816126333660545885384057707373803602798542151702143912879589280997194847495252809105569386468309655282159965025073539816403742551892105355043354746400280881968636176120863539590041088903051556775258564689498857867453539753572084078583274901203107741855810129185717379282602140618528195710862965744634606048784587812942478937011775867895157953079500442042759254109328816467512960506252472424488730443404082771556083656929492912849831582642394940774401240161068342718677711250011645554220786572687507656914161585471069784902460908672402565664690092991709203447696638053862747976251780031278162941089057563612815972853425820894906576840046133610371126267642368246848172582088446913037042369868491726627842063965326214092931304950053658542599139228214968380443707395975319172494474465123856067663385399868528684361990287371349838743973386902391725111071634679956348683914933448818157234061908812331838341934351856501879128805193097949274892186708370111380598361676610477555615230479040468257100847978912500960975107314925269032620153722785477311680543686762820423212854898017625685405232234055368003740086085756257887784345022628845253736215378920727330637117738499076733336740918715345280391138820998134587697488787880037349272185616388370766869831437632456707525230879179431181577539162636454579926670128889831509082955775751398418119834943765078141756117547539701703549543195784398984333021320762548721607755416405905425305322088485864467559422182110614581409452359938321781528597070381021343190040906105312844419833753473734240712174625574014672683737874350119363311134190457039478136626813112139717342856526284250789628179534578104064131637328709660211702178230254162405012400880315487393808610143793481844641996031268943435411083756061124356145250224629526262994242321775054658747681318834303972432826701645199072520673299066471682612813401136744924034501658146888667350971904238821724219528302264034252618480360932298595432142844934916825097019699441390253307631618537796548738750217901782655203785218249731127281398136354781548284369644996866254208297930482734570826081175582856418853624890845595339514644095577701970897864018512866004329467230267492493242348022400074337454007496434626336513846384621450883045981180626591641812620233123106229630449826489816791998110617556052287880557737193192578459002207044619046203716271412227294900437531276689710830366851912901918082332475738330972627092432713237775290463457827732467593510420266703613392049341572972327885608553980940300482581965846640375112501783975755118222138173056091074627335934626320174863918435638386548906391161627246449546431525999431146027694210497816056265591058019120154342156422890587872078052795384215569604729287718538584697984265003979982342409884990376007964382431416850876322216745230982762791018973239575033004183399279049755309983437107748015297183385670733991086493526511668639543849595856083798653150725794032889707486437144566238749469855113600222590722455111236614070357439560230944656622125160865666184385881011044551615052708992528088143408024134613186423272001615475432710022725720078874018121231710736047872444108814164941480628116849118093866596435184996745146776618461308758272107196572244101839482744665304616542908619803574520546443908859038349142580243838305649993409121665017060769307032884003713682585414790736267640365329827943894189124824976328045864413153808503630113456706173660330704220565782545194475372640591441482044349936872857955725675432924399622646578837119635848928004196575050383168755083598253924534719564597853768570190965874685384701154288413352951958478038931337086458856643574816941644310646561461122457390436664941610862380328400616855765358770715212441582530810392372981910538965693049543471709969823126143221003492463090370507195329150437632374288677486785580196643820638635925759304687014692194759909445368683439514314965560531315697497840387376262101077420716538157358312441266904185994679303363041480477777195158037424924227662374046267962573372472557059467953197209036466857569291280344540876850214488188128976403084079872539670626601565720020003187463995188425575648631412805355906141811081837701982048010989238855604539013925985686683093246895443048238220239139873060965394866634745584059607267008134352465730507748601395415784416646532037245897859092068603250275154650864085910674141119730074454924143458192119587452141980799266000563920976108753010797188254511192126149016864297480403135075354509911913170339791400490816801910507689625952001123266862058983931142583506783702784001950701254727724425496472576257818377651520080820924013468037332409922180682946534752468229500128454692867175963153647312945884121923841721118256374269160841993184369218293481500368104935850558076225200309214337824020259179200405497648610234668489133384664668237137910090325867289618320334676119240461319680427352563393665292402483329789144398007304560585501442786776698615337291956572320999750941323773352610902488861014972291126475077614181230123798220488228105309075217897134887050662301100349483905405369723725254319476268553075825243863363199700137579534026104760028517788000651636627002756133615637931687887766363701430641350850983432805004847942685467108169490037724025581168756634365797078071240711831483811893512369879715607635381279219764088316904829071397359072747674660239271366627421865177775196633701379882918307515279640340465508760012420901876647813919063469000164369867753772709561418264337977582431096880055802597379787280750857801420327072712744167574627113526833755214754437257644266026665332653028143018429335967840561487004528336956702623491704654540363158547220126168979992928247318336796010286975051956177284096736647452557050622982756980028569633343841339419979810989530676371658994139302299130276870465564986949907212409011734356529071946048014996057617775541331302802826562753517713122904386121029187298075612457464419110941355551182761396780672091031719193684541707078112772676697352254733120489906350565138134561635373020389613227998286621244456983840679998310771644570972073461343089814395589704685251546458540800555979135036808843473762972670945277320533496867700291792691642215028599251726459899146059966711311291723849092815665688966580307779887245439374167943376729166268689554088307021868490694244478007211484080851307533308559238278380663199228335973467356532086451760224622494872293566809611267906454520529376257569781538866037945405054851736009258868697090114423723990283043509284639157370870764523217197932994459269764327616640915998279774356375316015334664626426614880527862407286288631248005213196760232255376049588613987239697129919986317245794777547908007879763902321311565936999956616043715497762257627771346254230994847938107137607839014919310139986147712474360728029508608313343713813132949994288307287584165243052815761914843804748876497664468676324417586201720473453442360128467455962911591410349982953393767566461495643158509207095474707278390078066669703132888163167422592182843919487984113991114763225220734261944658463319399560140147650323522021956689659401428492182327606640591389323409132702027134116169896349744518738575669366451135340025102700192981262954984801641182246824041027661337764749861022355415456040315074942315454791518016738837383748925095400562382203018270795171831732851009513039832021977507265038797673775325961608275946388001897163333297398795409411549668456202998701001169623987407219665546992011923636054590306720234202984396881810271498428919275872431230195977303687109176110270685307363366124734572552860875806547067419866056916904219280657328628982757928259412897694197761677517742073022275649329083951941196888698827048050662176413620633519500971809370947546018548162443146319919739655316370308686684340574714525633980398605979434165222660087889145727245195966741518143993392800085900981353187897810385800590938271457946927078512869914122467614255651288424925391691483475564902846559280139704788737818723502253633542162684529716525821762327683191984621874541921745720923821253551502447982760452372123921008075316120300195016121889851870120741899101063445882579548748717838718609173695505698225143200741978495724858084074810408270298589222980836164248322356001330638528296467134467739822390308846426251918922242578716621478901540668847664570467115216820461984840423911822426864437745511757576657910684525468628790598538876792592215330559170346407657852282170544362550133542647075740214734877972254468898452315116306663770243622289629086375922534325357538213729056624051827623821182420894892780166733931534479948022518943969314237979383760707978087903881472602123811123244874503586921836868159133809902326672749149589932676309856550252097978128500065058487485697976943200216898491829467683219599605674023899559774572821412862195992934374198049796500293924708099325383847572136475735275788455801579829682975988526461253217150602348211257297232139429995090410761154742514710554046805483423123634510393814527379221973760180137653391359276023308542642602422109702774423015079480899308396027085015012673404498622710446778237539673178667638257095229076898371973648714724135321270697404424513284855953306528599204710093682075027110689256541636964125860786572479472380779127345073060454249812216304572211440434098208998482639172473902331104716534493458703335680634534717312371437648635766335427311313101824817879096390266604864950007335470510276966067021883481925408000973974606534815551256895566361960668842431118299437729219527808941307450445910887049667435507791156115802033204448645193810319773021658145666476292274231728063997971619726393484446604497647437435810248764866760971718734540718063863536228187180845190939485821440718533028023331574983152963568813647710232877157322976627051170302904271959004739647446611524418960877178516548095869786850634246116012411423288342083307536406464256354054770803510693503217657009477497375923625367481534153271487662898646147257004080832773916422801203761884477140229969627342305051497476190926772063055011385280188866908428403591624885638718544824896812387316873275419392806931642027986440868946567874045803145731265760933792228535913757144593665875582381540942622909788047651919237432360006548111614528683555895062488278604511022382357399781652541250743832579881659452822213192293163295719949191637059649733562367026959663277876890653138636400972904529782875381794921423574987799311741802421729313545343211772256299577715047109456121792488241565197231452525494709287996925521817529186434489690381482753188944465211231508359525822983324149347211022043982335625429793816465507728182762719800508517949050547247377530902168666073037574625857048601590423480376613219052587355596572562143444834285253056302901707614990309403237665430681488985163905957448762973389970548254930022155397013148748384941777206267318462627882639290842122564501324414861988612557758422558194418145694201107958485160247611184271066501319411629607191628200204739040340185846863689830107147494589939495971600133521344331775906472681399840622342429082760903790342194415539609259017220247026965834356879433023424064351802996554572911818630360812281450282291148441794992519742486652682065156079357349425936614701732630189182476208648477594240318100888111000985640066062308987069662857297183092135476480897400795138049895033599316347546387141892515074297140920800328841126777736908965533522718725195629402558334830372365337563164425373836005975348558484530011519988940113797393908174222049272907020756297447431708313780101692873098532227495970500019135998318968735921593016529136343104690124643784064372476825964938955213791268249612085245219357349439062576471707658986715896597883386314964229510832876796015691544024881101806258798573324954438099560358823166054541369909232388299442230136493231760122436222019877301395312404509325235118554753877326033997806257803933770303830397780195908505967604757601155515464768526950185684425163551144335838916902594475884204283472352263198652481565764811993461442478740523080241788920964333896020713495417447372529133321841454087409478178934064618635975058355265736665591493258269995556745501480605438569501542163517452314270250090644891498416621524325261301950948243737708859698515446444158415941833447698542706339668576723968647070592845018316362349374039951406413632030163432180479331228669523426678926358411125103624705862640072597895323083945635695025402994107381805010368667646594179063065984643750915750517681601552082614150849746210528146550377209626970627224432469135573166916446718907730349437325742447080098761137186895555230804881287368770622520109088034884378974001902214196531365010391150158270649687825502777690872216515555546871905988444687166423716242415759019607100151765549922565990964618265130275342736249279982692144310508452893372187327523648310773434264185183794558634348956468110694761153559080143273734627621843642718536383031966528485239627545118067897478992399645974323808924801045515406070352348705219599616081799658430985156988884741626065124427442316105958636683571032992275698280645157086705280300525345538738459271766773129761955788389776808359797251071417615557722143586098117186469677737284130449334035422431462218839284620961825148146541600419956939290561546194416825554847406152695911966360652099163984863852494392982597920947345070031140868057187880248802945724068007861091303741291531872109842298375785174012182324933218334915908118226909406855928491847161394616771375983447154159951887539519448760535395080216698573878715151617775791030829892263103493128283883795140680680559333998974613086168757515316665600405165876276683694909147606791714860206162043441178971268829313039747820578272299103410168695042529658996005984865194691717624851555140449560873245082265540086307048278750051230951550958593525408297674087299776339987380926746434840520636975717150917462229223977720660377924029006536717990964039388394187741734174919909852737926530439497207912853549221663669036100400815187184612338592676651491165662967266463491802431516276285011128395386527091727415452486639888723546696584239888883195691258205968979112571827370767996295399181241358297817290021891788555544045415917009751179663913849892315589816783510844848564728497717707749313908211439519348741126215960218912187803065665970397678900423220240996831162319120159031953040829996034194883419620588199716598930837066542055782046397257571196617449056353392995745320197453096085396648758963953338165878566956346933786162385894376193603476787754108672284040739058234128303975000206039488015293868609154724279297314569652609215775311180134233859527834904217165816526650851203211842564873750356942607831250513186960286861865523258636252679255511897475093536528360387203893208071141552454681478505027065976326422333397256987173939800363670686405069894926833726033454426810418744484662595586079140173330932592249787338791039358486401903004488454688436832109287473328418335182353236035211090503429933769288881873000315248454478943169816371864523676230843478481142814113882515482945386296324780554354835768520109574657658232497256983489855349431024005163086465959810740664211199364117229012301047027560442294173652382886374480079999978837377262773362171836253687283997857741800468530801711112848990296583506676290059130987199556841283367442426334338796655389975159019114593265571350098262341718189068485540135821495909157189584740559414697340298593316732231250676765427815857990444618913017052592536484729675666341130874941875295559735095735431294913776217041407926412198186054294763851210825662366034540234560363106550627027872998284949706095921922971829755667296011235967544414973499673738298047955971911943944947348056080617482273372314735997651635185410222539192235147170181666724484391158786240386279093232497762296395641759577394669143846337779829107670988015433848564021440579369827580406681628692920674925445935502303569674727356711464301880766590567570403395858157329265192868918319042666169933936776774187625412017697948362211692063738767095519487170552541462005014973523054814770414416445990831771657188972364291944191051565340126132710588277097007019865877951575450351568506838113990421299358759077142241803757383881687762573869467691358464142536701754431056740363513233683581487753799140357772413230395272295220079529242075279487650588534947415530033876621491592976839259632589303923371862794807720899833916446149672616511244624782551501954488974583121359461672277760676387657704447627971123162324255236750814957300010757772858172927227607608124993785487186690427596721130520042271489688360055527152245552060514006362800219277952520334022130169658468546941018923201634277963467312234971328331353300767336371075456015576879889458192280131789965255585747795668222336649154234805644113755317568143817790899828344680850804352914196433147115058245436984565307142837215893638854175397836388121474928803469163155926971633000293919489061555386966906440946880452027746877010012627115671113750448927709697770467278345719704833464857959693421956775441972390077926234374245176351965009573878492712462273096220596096832586302870579563353557623042605598356585317526130583532420098357172794963224282841064619331667830571139329980995052958946615644299597391838728015643678061589211356458960415926068502709942467631274166756324383348157698718202392549900296175038287104017691649031262434066634328570067868813733238071403240002325315966734253789900382257252904423786364785840584343557513828597959453187680664813167849431357706313434198450036779972732936719045190895726564137913755589776982290137854503375914421537433190138473394414732072211962627648983268468443457921035085565802966530865256597321356155857954943027390629102494858383629119347259164550484800566374359362760763485361180917240596574513768512460641585026611102300958541353117896952531918460763705693033629353300647697328980646610868462305826340054390024157320006186711016967258401271866720312834198708866478496826884050086018304284625761775137061630343855513440063095064705152611092090422779719435866624201377110685140879362927909510300109760978117861953474717702394701856194560251270337723616459860922339376645740995037561176077797665969581693303390315316954811147453109417410024236457192128451864186565560266015720033002303450943970617311230697142156557542329681982186471733006914158051887218465937329963248870157475562378062271350429469942890440604044558352698620319007052421654138775946000412556707152458307589639154732960851737348145417497654047018677682062960161737230008384919547008907936012079112217307861157242047877159501945615757620780330206558599859757552222210564160817868621845941775294103184581030205414481949085878988635776618276610816841707279036777311334381623975784650445117512612377453231417650760740102185388013563743618133617783668285884619469880226415568149785457691252763025123484345981035800015049692368837054624018814694139045859869986992027631647209483642494108922425830874168968209033346152318715696880909659376612198262221434695428761215141327709477022166550354934835287754705963492163013956054941839917646340171598132656532026790089830747930923156829764461625462594919025168605209401730128295705542320373713044671099468809267445864358105114431907789501818387392802263652465028492561415801250958568713312944767712592240570626547563187057884338821266944593541362917776125752055573332329242659836587874518696751239593979768877078741655178843238902245922930974228738036392426079278262981552453043188679303804906396605570456078431838592911158549156919920245501104965986205620487207839299593382882563599296534194007885731482931978409886267028589338134401437042366731179305578082595684148977508051667538172270455823307640083878657409638030152693044038663271412834147965420025108894530887303561559409046302799801003930747653670408845474771122001714033593184945042330223119788697325828675080944831688370848339219560252999134467230635782116751119462347874749675263213979862133533617112959037394654522703291875031623237176167074148759605160256378756507452027752761354135450726697116009786048474512508964867614295373334693925760108954709190675587059482426305080255046448624710880557035797138958951834589483719079008241038365570002824334947699501929038203971489651879452451646284769915398081179653902892775867559855946633629623893192428135247525815615517269844860801378559543074873422994722706109490350415261540890994923810326216395773658387470239308824102588561284966203330536983441977400685411307443560056863122320524914599890199606250123366208613892259991247407642603790337153704667596472369770859252228622290535398603396586074737441260422135585438210232745175194364581018089069718703940284535605697617353609391873922190124250500539957876504312748075958680759146381194779409510643295427427341004110967100943416787855677697303709645189063889274366911466881040702817862380955065941477222969259787347272287423861908244464393478566039329131985930008730634866717234515774713830871423737959554253333939976930918456759564761018885560206668799650374492328168284521540340475921469803102469938567023319883159405560957653429322438509177419017327359531604741836468241226302272569872393149409509879730196113689098588150495246679787417236706864724751863276414958020365929290340330565687615815446137884364382548189062161525318090488842357203261927796084892867467366139463827567749245736907000467023733116973619731931048849616090387642823261789033610723726223776825789461967333288999817469487401739909998414507555976165559572641710613557554855772749640897269641427840522054889349486862295004261233545029958931815113235593797750004840848064751537127108930538497168071262320959807352112541890091992929486778716971248764819457810130549823803924904569943081494286056278679131797632752702179609665798145542585153637978856153056764298489261808855865346143143630306783914480535693148323166820649241166651371491952982016280975106218426327839458254398916556814128257125651635719723146190387768995808471746843318862928596245828226692015991164324606874032016714579608921204201087192149988418062626884401980388288190930602574940065927866860795038363733725330386666706916126006308154180134084567539146336394560191208941570688300657377308962028196651158471316009240645975489023408948579574623126835947781920233398930828108057476079886834491875647724514278972823454592787537571268523848112844041507339803264266056018852856011782148259701926211198723554516932745440439837020579003184938964607748722973022832960743024762578302900180966162565829913752159746618063047943303033657281206700894602413885924189188894168573769282709482062368602395736458663095721111099168947288188991237086091627511725310082536686042292157686751995259554433982810364695989997733827087890117597880895094635286061912551507165784193758715861906952246669608481509987094366655724890215280747390186392679745691752993052076716860744851047686965709483722849595021489779239062357071421367249584128717234030967195980304291571512978564538768247719191172305040883789208537032349286591816367525264115285808911774848453324457987593108671917983585639100895097600678333489498423428812146894017113610618837240357215156040278791838888761196344095639333116189722329813256998868038111236399198712175588381520402051945899819870662438619395378296808804075258206746235717802393499120948908098199089434772485550865933644806155981644940349581844422897770059159461242134574590043288152406369282973216701671863134230955244271965623078518866143829844378274080046748529384629924466839139046495391932596754039103251669718949585728258209493754246994995680790790403116339610273855238503557036841946619552382471861214047328234251181702368361395643630135334361584953252865945075776636687066953106067480626248381571303026055458647227687499036372889604920504068097116597299546254849383483079898759635389859196191738921796454995766582951886421353995826449358998678805051066021317896331943533654539633534917291088243658687673724708203196161616957457017357299871838994421107684467399115881871304371748730318169599525290597847925355080658336459485741488738643369989018832067567375385394627582463479259507680043108559646729782483223824058831116408075257472753310577752677964638435313464703975534241690135349864794317169936102882962108046928980397411944703175495571407766257250482854500966143473802331706570636800741135268709678868271741410907477368733937829887455740683661869576051171101765458846743502494230692455692805183158065911617185886302464178928331334625577894972962867862758881912747071286294463399063767965470190465972927874094508186611236798859088054537609007624810336556200325853522862977042974581425804532810770568621976802445957099224185065965077073961306169258467076438580046852586263010773763542732780539541476692510632660952810143644730893165460058192751924514856479725155955325401108939868833860457169419829018883130968474213324239234638257621787820274517964757161687855386913031888613461205016240307968945913249434013658763125667181918573426188146996614982296399403322650756943667068934986575430329373461434553528460412598159660046086199280994040045768597940390989768807672020879525806648472549633649239989570116072587311739502572660181833768766582841418611740861854798224022895140738270793261808513994745979500378547546976443295870482222713930686176358822230616423091440650433676396281917684403117660296408836142084129884575964932470310320128941996245466371093567422726089863057040558198446886198286617696128196054041170753981465755076916493710376322011905419908779413812390335450801297095588652980038914890868156807140904624608416328155444317734106461463628010697581834985909849259412120413103023928019944460815736767832306300496258360441280164404286540649112362052740978155763831916084992941084387947732588006953380222524802132561549557529339652859404650616937192260303387201933586244199491193774526111288964195645882957737037884064021652339621122725158338640539422037902800297565021051473926337484445554777156872628255140352246279972473064631215640659648870150533495034041345088587804777238673249186479998700218326293604185784767345136381693983174972472965430336692061146884838458218509341139274788252401772997197461210898357289153307233611699586949757176110591044639629043515350095851744601235459452620706855292428370446600879996070528906469499179200183594546001565004362839236282675573078459716254409826373366303465402055939333404998266196582757918113839685248404327503061927472816293236012246863920878759293128174639498745942714146436689833234690635652476196803128565543895722540273557297284987108470066706454081637729086074832340694901411922633841817785301379061981339629720816838780469488876647755422414139410871717547206630781263326752835656989920865506450638978606272727712660760046221832807687528759427253302203036949677532622300034653153987627702533565709409690791947834632753933822957295900803584109312212460331774317960348362626190512335965929060095138563848763906003449399787366772096058284856751340916850489687635492274081250511236890739848027502801172763790347937637476920947354426887557701863635161029926171306967080739331361914704833358324731426806484199445204853886679907101404004908052302271891721980239273283950443368454484733152348193924115972034967714470988429136318369475135284892943041615378121106280291761155338301810949412857528545999961406416064035169030591599165162422912954185418449767189168493362567304361361186569683829066453588567010491781417618084877636714564103842374514596535862688180108836012661046877092974683057644695657910138589044072840926747982032405086830773222903490448776542735841343479939572302826988940105191523468224447477593414124763580044811037842616134261498825088379596708414118746658053737191157725243576480809121186654847757145113990304327321837153953424581040799845683738164681181592829655005164922826283046440071003991022837866883758962904007005304066730222341087964373283061686307322320241690948559381024243000520837731109870817402450637249743247769120392305483132415062022109238878526266496381202169854807911125394828091550277007970852460860372892982863326518979483265045196169863869851627686834692462236451957978602904709792254328315010996260889196570882331019537867978006175708408726294510345997768673395102263732709202836405071461355161640007252438337734210910165957587779439512710966969209627456688207908392228651819927556369024165541255508494910833934630863573738498263787934852462411487699839694072334955377995690140632371596145004639780229664484327953314329463827913687173194133659208868408506163661180175104425308417606089453176453967941533338846995660333634589390995524076882471742787399290854461472381455279621840214592344030254190259931927217660943752161786182839369025233928941940786460578025763319424641720930347956442064352070522616120239138158459685082484531886971057126634339728687098679164243804993935621995718482355678667467273966438453687995263011073845598699077132366870759855320132196187447163608177158080482522086537475395440750530288478507965671947073608875438174122355433810070012022583367639412759363358760298933699700448486914436177262737900216309021607784826913338777736738525156833642797300175244195960676428516968879476827303338126275345387558928997528350246261162512645975682453786036440379803388298960987287975104583307061503682161145899133882341518370355665168144821110880062325094159251784336851226606772381811021742327340350396489892656117542148389449098311589889592707003311464318657886193524101438530649557986342512008115621709826589132903479988501298728921291777335797753194734270546232479940057764114868819685941967004006214983990329601046804481889204123225156851219636093423650489577240793705729760225552782367840235161607831961657858081949632779977576144509793594281681450490427294941076143482944903478616735418909096531454292070129696312508595411833671893581625281371288499142820122625928808382384121323961670502811045334789976392165122177607572925295279041722992617532400443869609416162137142659350779151571557519798968574377286677303439503899428056274693509452055795264912327711804208344177143608960447038487663661831743240741896440272686633929885051419592353233779400506691879951799620806202313499608457976410892906880775802797099144900699436933877412396388528756688758658659281140584275901273796520541955809192944547440162397834945816656701843888384468704273074655726360403904854750955220513935676102735218788099089660867299591938299714318716832375072379031237425952748563608846239395104269404637918720164621235558938355513421532668275137500113651456587370485331913817822367051001854037220793205065597527506045880662999880262490608927865749995039598031952611309462130464828274317559156931322555418430332452649884232077632894156882910960283774956969365802248922164748951942449277012226326033374565793708183682068805911190418227711455593551413636022352754586737802931097443287457693249049096789186859007054701621137122929858285821317701025860795905021035098473224774901447567218084062619729841131861088577827466609866198328229605139401804480879557287234754328122731992878325092352156672411065322471349487043633080461558982055544014073123116221508393815332818404161474537209409382585904144836748500837432928691638128446783394474482184500436712117754017068735232868472583673252372439182049144334361336710103135009389031730323646963478870654813928906365363581804859908283350883027867577983669900050167728987648420950501150045630696743077928705108875174981916186479788595449457631456132954362651775907808328480856327099020736011239446366570082742842847052320419271898349827326426071324604101414507847953990415794527739223471233323577370980708890025340530857287695102526411508327181566312799181508126589335790964307604138665447516393503702704244197931999148352284990309001301976738582834520135350425864787742708972800179641809735796572421945749320561204612254533441156734231096304539594166424251371889707115610538018226974461212421464177896249294287790571466275269068695939415288237085413369473092983679128894976910203752049514137708603205509313793164643551889224288159947313236492948147906256284265775115532201844748909943243576431467281961763079138072809360304616449937725496051513280534892991135704932041886555921293815473737375854429317500292688240980994139063174178247195200428236731926909049765012488134696928922920217705818447281500072050609794221874495360746077934086332799888036187665731794948838562625928804068555119358154803221332285601511704733287772980665247538311837472560792585036820718868786339476740997257703649710684809311106454484220596289088576403220147056609193418496079105300273153481611699621201750343803156118251971054296200616707665326878479539507212506225999805631391238394893946676990314978159303612059708177031166899062255308787045050604876667246359516776081581239760804685492975320116654906183974385963429101831879235041089860898232523112605375054296945203311223749792393700497525071361720347183654259587794959026963068865802645030228823157612581242108780123196143126975005702971401408108354271809899565814222018811884621972119134899290460882547488083821322036095367850986273713144106929441474355906960319599529186926823872391738225389637864698411556266640304890623124099615316043680011837956857794575988295118096240787285826148468072041749938015843559527991959535372193043407700332736647748128405534405510535866533966730297585494645407990601331143980639873690735918809246112689095291868887221397958427110836403550759271006097699065176809117793170776634457234607141784940078354230795735162330950487245778848819517958088353383281951095131414081566358482670748053262804818458201528321742497191463979952532216270048842593713549121853082170092477850875757127285367355780401620581817284837040370677392377296212940968336499030329017689939544171459939834888055069233665356386324011740523007732404632675855004669433954292350277031725849102863788492344983221051731283265578923670845778761443529901854698364223253590240689178864276669788534602397957707594305301579669513569970762894008597509867615504068594829358341255751877488284734147216789375353716036832065804075969621687509991391692444761743067701453095887078994802534461089431651109277599121671862785378297524710266166996521205106556447486421045538387803420435260726759317857730503380998422403243776773492764117394618835167331367044937904861255092480956441100472924500121537960573298943189752615964761883447091494567612738657518973520879336168086627645641773899931220784446956927046724156767076640135760921810680419234382472090082883605630050301273294612516052187929888432367900080677064217342241121643427394182310597801463919059222467074971997677592612899758764300826105119021355793526297222149126677631878317462177848132839260846413436949815414442321946009488609606962042248254253978751527360995285221403109565476337658746225256015738101260728123819941733838033797723555576792968510896621477841637568137236885696180404366774273841475705463659223954134023881510296389573037845675549612806250386524280020249017200385773693615205507797140145940462119224050863510641041153805005811932943046505611096839684840360364981178969720705391007976507027145287136458338854653472657929194370445308309971089934433403150801499764882271637393529486494001696568842440802931117878261431090155168500239026089612936089786933916334800626226382319708416990354097994871978979969716801358773392733179604399545549499079060052275547482144828577007322013072603964380812014475817006671650231123874885875590561158723768436470522354978467644215814760709530223651944459019276627556801915838345092831883491508509431058859880141352838171888759596702188339074236837252258877529230618063695550342690216516911028674667590126935539328900437165382730920734417817747501183586820315070292422177260064518983348671356488415483282175294877586710203617567873959252157966350834692026379635774762673531412495247766103979018143411503890807402296862871483488800839932298909227873352757869454106981580094156873266641623772070219400255520113554803514502730922681094838888836127629442557790166790531274243534911357940340718618314584997866066512477841598422932091929253050556664634856227247466747372506017773120860049736756607290474574003424906034717588883496864954552463544051719784715412584744355701872580938381425092259998119576409742175015017663322754934377308562255118518172463289824893079743006144644945390436400597908576255242538774114991924832936693276885151479614439394561294393552763232841613764315446092427084348867607312619534820472824049613095844836740940187134091016561077201450207517229698518743037612241917510932837577526019644148890441639954811159993251404257876557239476560935262989083029919337445277765530779650226103744939977178238479032269328283412042322632073514111054706211906890865835296704293053306875003910605022353510735765241790172022878292802616166725683586661198160946984663410789011745655286396646089163093504204457543764882072264067943481587699965739012861760580404701056855657902186481013215648994725243561679349297480127667433649671984050168023292188051869680121288389379363888089706791270302076079286448586669234173200612841264273237340407174361351224399571407058232252735054280144520685208134094201820816428888735331227543874537328151170800979659492449292363171808114164617973617530784988217134294051253364218411635752159254380518027594269398158353051079568119345699039702280591063186483689052455008423634932448461725500274486557891497826387699908781835358979049647819796955775509909601160865030136551811905540558509700227084370751598121163257602308880007793533852064889007686256971501847825225267167616387188643039100079142947388732006668452621480173655783182424546428181288176636981363264057861475039628781329245849752756405297277363171456092786683798092711009755080800302510420364293128353430529566305996759953397399647979134533099502151805316395539569083542361640152420857310978782760298355471802443533429121483960740712971291607078996375764723928801128858815818000122655838256664558000837968789765404469568281541628366763614473406038931948750203503892577608981692656647218459246953184098590808211672633736890786544814120415592108864526875640180644977121716218623103975255071151989096500193654785484695913637483603443513465469713448379467100162894396824165671664610475973301998404884014099832231000865577986198506819328283675293392219923609673519893299205494839862545006030115019807725331130228859025848699955673368428490795904332017977332666608615223162117577764249109365401906235411749296200698918874676810547816733123576059594266428464144262262044159140726427418546610058982764087635503779435052737351617354521626739314340453376746760878412327759263801605875388434949202027764251995686877710119886817615326378702970630821202445487235002289200687438188301573975373437820641152712830927225909993630804097108593730838226168346140993223556844428391391196681711191215972582040087473817019824805484663976285746854852774855746520113245460965857778365567370286588465700566792623225375743813984282937369040549445676585240072898471048992219721607616095858662643788103253780575513160726050534942031655286514349873583006323625642588251872843619843027734200381089119804666526263983256138591023099162452210880299266694894179474954835949803010454893995123559699936588155799003628068817975572156415276329210911818637644314046391693135428164572968166244379463071109706687038852268144246801096287784132283027368737873792479578324343359749299334266514895114072480918073745671688282426716160149241565343408755993294248001764237429781264641093016917495308143465797006770166674338685135531494850161158258450053778170446524759769810041103071605411849541446682866782119792958236109210012222494059124499679649463356161544669889218235092933584030640253887707257843589250227970764785007535964541401779239330741487366200712339150273443505233139871159900844611698098781412864867630579393302236669724276902878587252135063259631749539744111696023040158333185655623522689795320855400556892055936590577982268906596439061519016106345887064993665601781290959794963521998650456017920661787695448778315361130554891614481649458889724876072293232237115280804551072350049037408453077361863829672421765848997334450647888331351960662672671033100652638248095518456389403527905563978787497306990818397121314159745097428303927471662765628562933947320062144561838201717978761498284849006768639569485595812524224172803410060602690324889717054030462026360285012745515652212990452716680944998940296119078988860842592945529774649678105844958288272153417894711827161595689271201535695833690879276068706276891964519266615231787864800102428804509623570819912677949763482056061040015146714757160384896233578848775315040217412659185297026674037760342850688535581785101854417114578193718582903919109124829223100011832578853359301219350695728694544862390903882437235402345661852809032293428080129611649864745812095784417955609602365756581377308950116261789092241140037887916433011527517272705482549040330908244511853317723534998858325365070450371896149797797053573487435306110468803475102322431320115052957070146684666991737256124061770392721939302891555226628690591928119221154654474545559076380056453416255554045952788557600791145509159914328870388914502276689135294638171049945322343272134936691321731937971329718689316462934919819782789420391789492460470948373362914445245487631155729691882404428848743292398995447891612118036600267865042920902678705561551382376430270601942936938827480469517709298438097318183683072276897240186307359550644426460921641030158906121660659401911153464214582404886096127643605822791719069612942115341667976711759776358267569595318773956199794035888896039770370730557932123791342579082321436885632277433855919842570104973874246993419486578840776127919094972314239950937512911895547696703103458316869738102927564254320248248959580861780383847214189351736687459699818431418102208751075101569254921457849141636937556774987902319770215303778955114205643744181363405014291307270862379457291092414569190674582240298786506132535475766211857770055608588266374875414050805543811403158562331442789115145141439472341448952399324237913273249574702681165670936709749474238537560903252987021352592173884240929154441404213048321689668374414628934096452238552183402415033200116356237308365441120894017556121317567095107006770144524117320740579229507893007474316172166609996643309583954293416825349831332166329786327480186951039344349289917296312817905860200448664478554105984410116066487491776387845628674728377791564300067951905928677660898181309146341387717083498644729164121242720995078964925886921625815687470761976491930551284074157395388678031242923576604285221019933447191184016797462273973061412457545795037485996632441315552639794611160889126834857313679432838943006301073933067243185026003013430056536998081636832435107086552468513712966484566723337250727243873419509232150025550227130738643111048123228417187469235133386458826592483237111346057334003509299009736569744497676940603206843261345533061562955128164299246216531114168770462941910095616302074808630232394684429234337082707106128820940199305623566712318370262291641036318197328873717815401847395152636246833149273264841138559775735781980402290442444233874429690903481162058571204753331803910026862882342096500741021473689325876648782725151795001601821089469184171103064874523486413330718830396374113319475924533225035217745286433943954665341791979207293561086909158992183583095187921347211792241506964297666116653496491019050559451864585891584621043149113031257847175816899157670299817085957786893213703888339962757209907171441598767180728002451996791204602859116679736338917525977322847989355263588691812114787732740919903116566786563197326413725604265850667408633354435443991234502219519291988349857574179456068402493329759321207576105277219712128456720157804842113046306386812853983906688238046930001439310807465302928544373424846244860776957069595775304475873009514587267357401698255447409655918132172584982191937884093714486728826361705206241458574248449207618990051843875548407626554327240371702600772166315237763710341493357826923264693763423792948501052554237945800533580017847392455029151794534336313352982013743295784498065297481858187371960609208396684874773125016922543836597765314934501748233848169926445383374391731414068889133959070244302080831112058954277504068358330027685872367034192981375265303547935235067071318182552722752114968727293666315556270200302014341660033388848712116861051135195414951850304454266728976023681927641863821059919706116272097004652502887265339885984725122750759602350431670145033557739967305267463844554392172319933083302886995267289143840928619864489966109325707235484100932494975732883987928175537119151258211030636336169089603565879805352043489311672388475478896518359141283457294236973565095231897900135964034639294362584853720148237487302086773829416807459517028592015269503804228543132474557938824807491826115717082827992674643065253281921105486053283976605380798938296259987963766889609477363427585972165405769272170576587052480961679753438588230848485669266809495085032599020848076116087405787298356072491179127853428383210007867719562184309715330799358992288903011540461101821001228945792449355427987517795638130943225939466905039570869448641837906720868182430768113073798948597069757491100072494896874148401203664494250131972289307796727623108474258305612542039345322229399129546969248368379798377200314266519433093747060817818181870244126808304927794541669739995011125899213655149264798859351068679521063817400530449479084467316668738959844448969319646213757253947884397883086892892241641691956956035846801433392495206567600529357101009833262303305672204896471694906498294794040691347225645497686928650596202402500685434334489968376565361857537100159031245765046563622366731535483249215760313022839612171160600159352719925203299293729055827825610957976673283645664270049165493328758214455528286361366193552616004353861408055354570734685188115906878424897137227709780288409778346103740727381916441666068195807508089146090410652209389802982805103653545002923251544315538157525165563170964574241335055134730634748551938478412316695239071268004129941188839002238733525555178874270495831487376528534654321557812646419373233354184814266366337766207624076232531775485821059856298917300277525087492095612048836883297350844706956112459869970305448483091217318493108743694733450707650880163882380626649074776214846620608544587811389452473413903999211058990271341298913704683684617564063045013616682882112069290525530284942557513189659890561830460816920277306613170095879247928132111486458995335099955293248403286776599293209558431066157244579674446984038835104948734656162051678889264703000387691969734101332282595907387706894673544831425127746095659069466875131403183819646066322347689437607885812370576725510751106137572456577362541552481282376628227105720014104728177589140347591243383956323735421502895457517352315842697774776234075754809509184635595174100328581827856655927668773601068817476149047190025586012123525020259930933184861337983636532266232706119834279460546683805621100454950914334789841789313184230823079790050346510701692695635878846641600541372485932093884904161645361280837306956004524317619007128812782460180446639726320956908302172277944917938156335303524340357252728774672145748479721853529240852608474954670897179456074639335490527362388206823360566815590580402222943558896199323867367441631754499526868294156018949704762125243481843740155773840975171502442068058169366042542175436676643284158436429425866559066410883468145096772988291309156153913059383773176734507203379877042930042431337729542684979610895874346302305099957319778045424252463499655669754413494593793891831783634058774677132927305920484523727057675956341711995350379239492972056634104888594759168565385153489658141587903763524889648301299815551521916680688024185009340374129242599077141049894489045920365441111909592475159943471310930514329094141991163249178165913814084962732875595178646489063891398279821423230843499805499106499405709996232499356959713207362771330148656825964858978934178748023679804804269243268560340567014743852599990492311377734146962176172637310272457571598858480457481757523825184127536413009056258127168352464008219666555239301198614876123920397630637087675367655567852014816103464560486464973898634030071597523076830180154450302360803426680378365092646709153255475768440357090823030317914136360387277418645892653363073305280345660754034659192557176610711081040954611103684717306133646717877746310099602839409954945232675299782718035468298868246198691183846988810895848640110641623545308691240892817986654027761142122403582571023953896927504319648027620378327750664289921216177756724565157978015872083625157737457607332499100083122895259054614404415490667651993854474468912686793031131772474481798669224569511517063620207596936606329118297166184335764752411397901022511542428169085280222504509817678678035589315342018498555242847993582431509989169657218814222839708425393134240771090127838438319338311056507801228596860958957411192988567182833963417716051011216159748534212033600051705636673306352729237954630884301154062465887022495811505385042961321004377761148070569302868537746951989412801900864050066626515612322735939415945665527617305745744075979110264561138742349001196868268854484960683166901492154149040120741983141074379417994431509825909915317844303181726384743365605201036454463385015670857331377634364134933153893382671929726267218611741671032863185877532692239349501239786621127671602614083401158460511995556076565549202634606624101835524074658096121924011953205730707732508424163014917246849150219407384353176130112899470541242578674630927723206530600874384029943986136055891254098695922033166723410348815043414467073610901808523952195553217948245909520814665487640302528184354149014067309720414229746692602107182221191858982997455595299152990278488881450903856228264693792275047994217323621272185847240780788339456455006870430853095449864694504134703744022014432108778924827970710736601109749897306040560463181563207413407501709376991437484581268635443391888807242192314953134204893634750775422046263070035667642820764048957952181825921755542427799919270998548613876698018940671117788084679590659085111191005160601702384000157065201392656626006431773323689780273111296410112521072728838713860892190595733708424290557829378664360734592709617542257144911933248841576004538569936325880058451038447888391454920569000712514623044576483106116381716547503209433795100384212551454824614949905320807308856117600213663008424933404363140979636066456352853053229020413864331774808026986554437426090323797366435558921423418676198047597853833360538255876841039005168503139371756236585131511780895893833593773492562314570908817736978074637351692665813020462233479838466574083473813543457045321034791712816847357331499750978572290142955486935408097246714350158940299005359760340102792940578984658472966635181247992445453544399703485178865723758402474956311669767772139130680496040498091455433193322957516656692741101467597620167992615737164214111016992045757095878528760394403118521450696382055039384954045867482820437371118760320611184700972165226369304186050084155897921730038224067763038307685250898633095549645112612849638106765057258024028329523016323998421235499142673876366317601090288030113140294640366949224264569776084547968379716166841428575676012531604574080202036699205951301057953906561195687284310170739384055077101172645046262076929882739904586035732525245376664247229073611949425896114831791899104136727321374495213976920406662947293644349243283624631357970963134413857039457706235361976995661119547016453059610440241087060838022445155527454162290407212936420168406517510952859883810042373945666530274186584304495671078508607837399258719979571334418645780929050560080387773017950781629647732219193696946082501403325415698821287138304751039859346723003597739395760201465894921470488073931056797044510129050836127834788348700956928010593395458034421849173366623639054929115706603392071327404549624656842625464041995433984717999310110053751805391528285593234229154359984866705703308107465809150444242424735112598780440040367785105023697193717655333125048473232032038981340136947681367798547524484929788097198580962810082325261542460995556862092178110393857660398234106327487178936508057997526750617032904013693062508524792958207159446598643955005343571641243858476464513959392191663019661027671279903532855281475257177033360845693585305710428108524831914166046943425801855426454017692610363253251599115092862681502998077806396712795645441964482589217236460710018937727746676531781036722428180527170125089201311293893406459314782651304779244332768552741716056954897636691630166155742257211162542594634773648515949121270648827786488512105125147434986611527513453359586020975078551710934349337313956909883416465778887742538277784486281771509992694587438143318498113501374723676846921040033922692226516047630652639665371067910458681084409023853284468677314414513356074950348727374919167995270669335836687047708076893248122187532949941552401488265911590688811565198188993610013995587953889023038937274590377839422403213890281044527889846234303938698866839486135188276634472087480841569605727774645161239823836767834854925100569129179071477270544124594500903894616389115537719665166614184881429539867999231365853576146977649297863793916333313570609858088024855032231932541692644573451834029459609500853298535046336754304350032070571614196100705789830882635184071997550329115191241626339953466918573994244408361782284641284635314797324561329385790146261674552814968231383274606166238767764439583259304057777597404571970861358091610655056788713756617471117853736175082965429482137083393726566290831559662218479971206258986301475160703812532965155275621961047149412906771834362413597079034318497875764779129292205432875229557506520160856340803184557214368429397038597057716600030843706701535623162553449030799027614584385301002804132281401638392057732019926040442616703423069178872483567267686153535264862959692686716420680345325273654968912012734236155305919786528853426472840609292141587290747259184704551621172269748821007150276627726570473839037602262913456460232296379014677168935786743929613474541472098264072149213598969991067272252971376990244028498026397283331851128758501351327905058907354279207256734634482887504368337248955621409696242285560796837082826898377507206551914729390615603858150297444529101809856864024707561754883133797939386565405253211687932894098068658423656485074299823793815307165390175716779103842225392236054733647477679086769782885617888432294026668222676010585357988108738717182735805505119881313072514651279731375200120516237360884591896907107360232277026400013913891877227619979951717974618803563107395070949222163961212060542839309985532642881439774400157332555888740418659862229908454930573575210915537568032088849076348132825432939966551424041573610107673645554862246435966586885826097494126361465982950543991486814047842556041432440878590783694488085438493287881502008392454115883618156454792988659659701488750126874180645771437937127827792374951103799473208589528173241748837226134366079701702088776650150906201891485171533457818228475672464872281092467796666849033697255596896164547916120173786095361628936753504345485734306861230251565023138928531187832725914471649269989305805936911198320251223600998599310205307964204242469380833918359237103241408978787595785835491099322995570989473970724935582295348469697348647870458443908017451648045706001246946397008732882945090170328897830103870131756196941671260281713710238952239438482880693537409531567618848624439631224691491749090750248956707329865017755762074325046017506140270143521053483640155561393254655782650092282475279503130499536448822005023413790537721826434916484168678163691923166750062104583604001679331897195589499161095196941386696114074856399145429974693314812091596056336519233082190783985996856027074487714186750721232967552074329173916354821030836171682538068828248829877252129174212726145189411201993604446768453453863449382482143219305431722425473178951773115871478557974293140206433716673866114402603189586358470900427566906335284591906129810211545848446476260867414892470277882437251712061279845702413056472157762321833221751130318293529456648708671513437778836238620913467593340418450120454475718427202256828016329858110892270895807231691369721474855539679326760716410669241623946224868071382751448850598790688505915920772851139738514098877466589350736935696901584037315728380296490853313748847762277631928053200346277829190939650575035969971621177572429516215374644860685528447204962965791379262017412896417490451329031208069869406125396530366360945490906375508170792691658129562804873621435877526105166793286097153893347325097353900060557014106827099645342135185791856572766727941426028534946133241672464125520206630353272215532467840980037124377251037203240421882541138561188963801289878176908481443239482145513998640897006675276368297547142500154347305027097307283918549158455416297899484433275047176345454517167085250001663336025661057207021889995442203272729496536118381244814492767842291430811890239773477067892269165206337851100573744946121402819304083438658978230553185782640780265285155191367995745120097334398982932154386702984950456783857697651864303878625371603142295845002668179697814836197483997260667510625221573817421987797241984709022162176011757226747471826594112131844060283166704268754004645455629589659489045162642787449433280096891368597117637226480430514025427733591797573592225141391881567333515405252356732878243394799386902095768255649794124593332639392678242111880856448119039069047368559157112589029253457370497906255232573679831351883358360031498976298467424769073909325424197869397656225672794804125435363168196198620269567972395299475017140858141329501603417766524091610902008056326512721296613067671748895960806133018776540217178407137842216148236500386020657644110127930710027834326623661089314340876845716438053446124522102122772225347235111852178209097705125887463765105332536179447705283266437258177895055629220686017548371534009007360935972213980322719963401615591659748842011469542348761991616804090171065869615012923372901878314779967869907270049330800331879474955431292991042454965517767313139445280560968274896978613747277941141102854889449993111676481403782386234237282844213934225425150142754054030170065731380969774782502883913557999495138535691430895515100561466799258841386723610592006851284130167582835644937370613402780384277084534536604489983257552396082633265060637398494714807609218926247674308969729648842191668040112567779765697444889237704691270738033244383286550583925299667685208768041371371366437899838617923890304611588631394120888595217871075410866856954742751278650722331388730810127591063053580730904239234806354682509458217043403688282785415344670946759771830876647548366811613629979386284745475455171353822996600954984277828425427184357831797835116861507400349463954284972014509525465287455029876946599112463020904868444535896934212085183656715528017016911885187286638122473977115792232387307882486424624608678590219404040740679445097099649263703085335633126139410802451540166740480611039489760098318525208417581936943336323074174306338249364616708729032857748714148022204130052474878637196087874789313468286127067095757744681377103703214443576995472060415999975595069400576555944168043504067088009987422455802287308133588891128176780766553822723631773730499800245049660977867846852400601345927843200061360831394295902747792884956679372616666062319920552599176577685369623289869779062996167889730406426647732349229471945981458162587915268846664082294212773376376326061903494378963098153186703102437568338222091636884754266692748935630577567868062392801273940804330741483738948748643143041135098536746294244843534592934383679940476958953275144821276148130709528013329748475159621496844350204030737876919792801770392482471050375007170888639416538991589009133579997658169863973437651171847162637187657460982606150548714377652559869928721432455587508734894261844265128779771466549915255631231449653682413355601187356095479747505382255290132108400298157133205932822023071925266448760676420765355079869663948710438272684392746590177420010216283173074420074915806752596242299889876082522632175986859656222623074744891995202944806502461300562899921630447004053335596081934981937056395273836961468252529406813421240583751140417531331074488235195381346883554191258863116828172969611590798889302401407070012901795054001306028555514171397677875071230428908200214534305455141260966712169888736322814083903531688007225484840883469400265570791778627170102331786081344319301734513871139965427630051805827353888136972640054361504297339661819113417149799378205050253330307378717268305793610391814550745027762780846956232915117441895455321600311358868931168623893209755915129698124891499710515704020883939546033988304449770321102975797734419336904049168323042378907375959054898139673002648754650586561467840262542135863609103078119779465976298912040764534321594078933740000334880732184185593338518573282282257097636456105422409607276988923140319758462333967352320232192058595209088982337286675614599465922946457493696305996762485636152841520333894876700667656317519737623167064799845981156178778171203213868525029316862153932663920092929721281687059043784482226829683907410804611915553097548939279158487559489960722911574479338818050159856921480842419781263307854051739381593556739670329656010178934560662009107253222607790032703688850823844496623397877834548392288555716819899579586362066586565822854991840259582310547990121688589653003533741196973184411670644329824536413027093649812904022902239448919855145747122657166819352000211222179456125880841141265318481811496130743949793391859982118785804378038207873701418187699451053142620505732639545717094041004605235975035349047661407110454706606561703147989658730320939231777474091669596553046457768001682575832364228316622449162224471442687142771170412904504037515939485473545520014347639244414116278858679844322817240905782999987341748899828809636295753018638213357041677333776610270615789657565977933484669494953522208317320952238439114309715173940906815823172747303527121090556898081370127024377744140732494349141212126694405946704673379926577850128589474898252822541093307194495072754066991563566707346356160022320326491117291736096909301592969728183793797153420099200811303260571339457156710908282883831505825610447592812752614278734043981226052887724572877327852697295225916185922426493809491628788788608850365738752747341012987449193338277168425841381647375610067705074780249570705303747086869380733448457980826160676250889081549648800964993414937901201380863832038001683320753852008685884616890786368438784459293507281061060551903105684621222279779766847869668549387577191149186991858456706486473187893400103224693953340228308987442848782530649274851876765238937480264936155042553482593537258010926904761466078311103283233966335177496597454645250449558335400388526573112522602527900093745731710542093951922263943797805912645930979779554781232810039779011665640664056700899993440000083243151130171903775073432080359795169024613257539967455929155393340039313599620080998616134478833641099795550271684022677966687877758172587108671638587128005253153005689939785525862700268656515440266406056769405655467105336048561459925863087014080351642491494619290441844103901141968733217156421637733254016750645824308398087046583599736567056177646820436259501993015239913161305820665411758376023363783094922335353902171461491825447413980036203464740279854137903069129743614395626794513877077553498054502024163724440640716294041017074250131191523590181441542375054362890541512432825312024617633356260017194835382248647158854360542076349002200370014300886738204560742085002173129504815550945532638593010653234269805556649820599589327968321447090361643083676167035867956575700611407100781598961521962558072541027722842447751616056402967388963415425230714842006947293843340381831940344548950945940998220344517070021883950928468880335323507197200825143813236028854768068367499770295046487736185095036909671995947836797087630739061899220430575264695278652040155892850070637995572312699431505629816020987447492254590941853872944932133224220619006038619055393625739711852785749912189924795136096566289315144385610429736584228566116069149765348760229785500909536918494633138816888533352281153709448874650317572495554626498245279717601122892342370374681472290868438644738905496152344578111769091165450617321821519594928609827521388295667851110084060006607975932146643242902223074658538564834021260865687894536204093269846184644573126024296522262399016347097052308184807043320293511383415209338280241712993684837339886941368194629416544779947772382627493281518955888315849525711414290665813713223723682460381575733839037533635039775694262299456656703399429443942535094666986088148167291098881765255983951789256778559656104128371774695667563841310074831535816008590905939253476756231728271944416522660561623758415091146644347480575234361103117035775575136259151814824684845142826325024155898251610109077672453674067463417346056911887958073307702442780190913890838145509914105468905478538665787749961935023466004378109003119082042648144725663004731760754371652376698438049753563517044749560230750818111412362428765788309334373723067491794767428520926035170646186138396806525776606857239214163005486258770584155471140154733977416071191084099595511242297786512225567795463708477425621782280124009654223923779009270245483570506395873066194566586633630193589217676540428586016881659848592519504683977467373411060163229315444108983360451430665193241887726371402855838514539651978187250396767000102443648350015793851530168586839255101964040933681736396616737439853503695571298007821898129266128040867874299929358250192579734438627079888310324753665608446262112718508988878743580462792116193893266308807213797140152675115042602665082899046811216199076290895720476075426666030875482206899331974617370402686776839642605192995181059140928627662349532615776148501993522981417701105397625363971786362013737516326775485683146841642732496265286757527938682513573741418046447073340947708703998351589395753447958731353027274006017109195981226710328372260796416614553122292443246864839533685352613495571184494387404833513060352352016184840806633443776201671788918593445047198414110610320269594665031145393805676864215078962623403614211975193797554628798377086865796901755096390064152870328653679996676340002341307930725027461865884717605628407572430566009496803357826761564139046152894651011582190162344452770124232317863711852606431902090175715727191899040590617128892223540147084891349145211128095270845963793871413067291792595949506803215536184382102903070769572561066563757183163026253793361103233871425651112932118597699460970407384020193331423998875305025020578038351569938051021052631740764619333457121393974551771441292487374602046159776262397895256718011975736691728100959651106838152438786909215577423505475271754511104392806381532099070958675463507734067791716288424525900180389426469541789596957634493135875179506594905706861496450164710086744792405737386536147062106281039155935961353903235005300039159669270319374874805706387325965185321781542448718388931547631855872044928935265095313466537606207746698619845525370487106241288621435733159451662909646110968061313642319160568846989492093039363169864295049584302410482558659352010283288328403433871763319202713764101656178894282933399544039246410354080706693425165857304552774222727473698275798423781953608661718061630829992927233594349579523709033914448882548908067818517317125590700060613163794035822820589895540201218356756015569375119252592339896352152559601931061338416507361852049888539300290360640529388633944060962942782550566156522766053511058487660709762379269230403693142260377528419887354644251360383829450505364703464644293504330394337885794525633298480701757165206665497583260005259013691706050888335878227751262254389734342657760962756243379067900710185975801760061109571284169716502917928956288683049505747243261361923714187344416521040299913780869241980523693728833680244675115025466273738181570165844273156768148655075412371305826303763228128642728994536425014765058044367775104973742024332574866609741590916549254579379383609736478738843201777901682949273429892232956677298898180098727356905008368561479131195050569858399138288370641217918073506936552477785810608765949020388806410537562705548624680401830461788128517267073132139825240240027566436841173275831088759736057516726901059466689393678372688914799901716879813990563257089678911977186453833801978623197006963710751718020218651560509629973393267442672796387534768573763326284017114675431772693757840879302949319018861138800614427250768385023195416660171166685446116090158847894745043679788660732927029389565989114710107792325271059762079229087904869187031234282863395548468988614128531019258726802615746055414748125120202573567828844092938795331863467664581908164674780920427652883873713634595250087872793533456487842650904906163995056981521662178146235604761905518584805938959356150919207797942262584026754631587610343541902973064555824270413594488833944257992071429664941292548801983309329171416066024014609926518459499989005779045905142322551795583282195024773828100736160327889220896378578412329963457433604038424455920557463310603716866200480027281215252103473405198963897441868431425329234530109362851258110632525969941777829428863473784895147807871148674189457860005411264178868909789970645051943187124854660658912823751736474388214062258141769977861328679422487262373242545813245313226134548936101220852312036196970091807946135787834653269181780217791621013585239829026179897762554194800465227982557464967689164027372620532740880509401677368837695905465572389855898454722254156859681748583311050287343110466641620444306631246627201087333289338462182120300359118067653616039200086594923989076992917443468247089090479766087059159999190498989859864926909972729082947585321664586902993503142421617319300458105646888247565315665489194106532544361465684422293750248709629730905821375091587617037639821068037164033940726531361052908622764936998267331951436921813179453700113178748615197640914338078182719524651259482945903866806801567802574788717470023980002436060212714810323281753135050913802187282263304183651347546191586168196409415500939164264578985213717867173904031462340009010118323846458830629158739190670692628077761231710022276999735547645044746875845313703201238818751978289638048915543737298796029101010417331260742272054059579853259775285610449496615550527950884907974613729427467616378859470142469384590382462848162793330183710610368597841173694892043868155837617711600442083644087614811546368120248928522983136279638423085620655910338199837786667496542688330899714985956248905469348183067162309984138578083234633610154716105879479503848159718313525994346375471989023280248955512917983434450665403991138080299612049052979993842724357419001488831326709610849321202413892630015617510256691332373534095409063253046996192625670385297966517033646247393252386860146155886274778349094363121555104341041346099641034044727238337126123876933261246150808495920008709102562633018334998928117974385610288430733283953018454105369886444568252672944509718685460759955062921937630824292882216712066174404552583079988121094130754919111748036445434159719687687186654002129779137796354812450552535214747511435123476114966243603019406437202617309722964114379732752855287244467306207505984700156051039480859058423046499281668789781702536894963338523949776163414697926224851239687015406248504086369517287272275088593325212849748204457537467609685729025143465965880089713449128769403181991167097783028212559370842594335498174831914442036928680668839587751395551246499478020570828183528690934375473444067520280793000318718847328228075194900567219368083128288865784993623628027295145836753023146789072475878151776812349850367275572896632799173279590228594018918448865680221843738578669755071684673364225092853682727963993875745004498723401200935887168772591986840843433344209757472711630177913146098071625261339307326141659109529443739928039748336675711035755081809003798622275937186211602608227798894562982009555021847780174233584957121374070640141870979702494642546894249751556971573822037736063134143114320516936583501803201119926500252958642175850958146244231593333573649485417209072831697373190750096910619704068727449429164688522365245497926894848639839458192338179067197523994389552052363071628397283424992407822200694297226457205873697217314664616685248460174435346299322245892848945028981035816731199036838877942778966993878012767809947227075629335913366280372200056066969527937445997502017066446798347321948367111851593979500288390835967232771219803752073404307702273669667265100921938506206421654544444563832027840440886624719260806741152252472201734958103311408588508946301040551608281745503810442001840796841968567825367517856189661006420140808172142143636981081795432006428206334938404063176898160099288494453473073981534554576799135539388829076164049927099497284710905052097787338592610748427816092951659174765102130845500793211937219807497688698431790835792275288518886250062454605002225966325010290773109974776553833920098074597387731334947271528085228139947746373361414040042502995363454294424395744473468295465923259804845941668629923795450624128029563508897816241838112370414563642485565807649153056016928092891070905087617721253685719176285964293918456960055789012456748721387414611191465073409753846422773157192447097813883990863898515365472506060446398464238368004024970089272110605339372110934510846846082661093751282146305927291841927505030022791958007167288625887105062880551351695371556199711677785367653634505837380334257657537848471320761296953177675749198119072328848902789581127085820743625423690587170953565795678512821276777244968578117025051288721639876265233181092028510636965578640958813673970293674375437202756216590183840850979473214775239683086405982642419217086998462894623345517313466620677955578494830318586959813563736947476976732097288990316822879676708422718372847123196062490883345976863873493840499700307623090097189787268136916445678920532687140237783939404084974207827802922430984380902362703882715814264032743043326253039970220306110328428627781862983664051609375706488534539371554007058464908913441363026300729821987749881949848863936227660061658913227649791693456930396733020396339684246484957540350765517550970796767798800203396101575345273289484458623773183085095154326246370459735753401861147764088092257573968572577559581431209000859681325271926669287167320616121660473462271869419497334824375255146437128117411245371812393626605982654521634160608215035496743787343779175431639314997686201603999559005342224004469968888234354373649603138646561080633231656547509673922533603608115858736424481181891578187791601908323644730612895851205146810755417870037308909521057268361536186578702032419485004300395363227648753175305743928923428534139382549265273076001551845181319042174395970727853450360251329417342237977064535743839756853157853068286306304551378479087152279217483812852829007050922430088819051356609385086220293970921630917410494188222026715707210003462412120260184087934756100095645523250681025457260399799568885753284317840403813672215281247659022853604376238648026477007913136835463975143959143421660921904786898522708159609648991476696485060743322019674531407696964915477244904499916131724966786479080332221433638702190054984203539403610196136443866933915261038848433527766676297071572018665965130240461577066936456210330223762499361887087288590478971674298569326410556199680399020421009466563203938428628350107777982480503319544628469452319225604250189816967886964686414600727257661337896351189781904910910066511043419742685770456643516487517283764455610791899503984967141122001491929789543268333739105716566571649889708472877244810682103897583165836067084561100462253366826084675637648412775317940168644222138298404290473431405323169096397192333381403163238277703457399415559507172192687422983702192597666500889630296538134284935987863182044565553457193220096374954158990140672863663580798155435792275143872955141520996337966122790359250766677782833034625676305111923809787754221047760915002545768845645592240639534888684484544073566550167964691963377499594605534197583137217300006556713374521812346519843412006302624243609988407568812956632202245156185324444837597617058928640883972443130548020156527152737135651248316667700036450408221210864861330455869066867094588847737286182227993024705134107379999056952296781260403015194379006942517463543938607514411593848206375921437092282912030765352072810880704658738800423680858546965968421963156059011302021425578131229062219266357277759705003955344335122598365935247599307493536845519494779204495645391503231975647529032357114217582157854762266813676051159953217888152473028958005304946349935772908693424931898746190279109990853950918582483631943909431726411581376867466549152595466494118287786038215920453202585037963840876386248803041925170140507828693542534935199683422336657492714693525875934828795988935670979313003015837101436164807093719543090138513873333355780616210312151709642269892380314920229790177003327610295630423996943468980855648807543788902101554497700512165914275917564069528877650256415613727483499261828651357325756854476564319930653406038323962500879457385380254082164255935496669822045753544709341284142389918391490431584041566372730996350065017783504949816388078572011467626464578455301826370233877733938154938470476316078471382975104705299998179065001425383921420830504100785113942467664764963767794894806655626399139366764627899925903948358290846150721802938652839082710977411781869984025471802278732948306495425085906035026704114525908419896893484869237992922932101105079052178635775860286731718059767049817493195229098276080089140315444704486257075241476058936729727069601369182263287125695307619596079183012773307790494431360233249743256870742070593114953245079828257430409735576089258147750246720329725747409817473199688641538927164786280234135367207619328509521907811225384664235165026693272614509730775819082013124760894783525840362914537450051165291654877868489659629758791991327849982349377897782883836464889620770558632881851187937520787254675161217262857056441261740850146983243462639837887111340881264084179477033178838256019912402705363872715195650732418086719522305318393919417645628151877603940410984309857397089583076265801543003193460429590718804821109962893546025350089952599019622334460891107622664040687195969164694151945866779828821443303454459523647908892172093282154067905017521665667992024546033172305535303787393014502564977183344886512592763459107259595955249809752841627820885149923460430605353192380091043694000172090147833092096149075818082092735145158509911098044326653161246644691868854441109630041754220235571608848926968422569841497367551121302570058419426130065441265223369750018946575964100867177918899412936250610555520682527516174258452830175669271410911210143613504788407743254911449596634298422894573083466109367603266091023279271569417713047201123314630223806894919744707681040329449393253084379759220677027300583973782525595763756987516772790986642020520823851399707845843675285416263880254400148033550115536257614672123362989705898352787540151826670194078904015808014534385964108110074336102067867329442544329838556655844349461443934299735105818239505343499944568194273266642590640157183433360276603010169349830443981576847192649631947524996261750511702014408249119487848452129506642953023709149956842007957915380405974165939978721205133022739742976348648492090503308525247345179093378867068022973991281526815767135090546318319992957234937562727279384599095177235400798533393820007789536514888315365453183865538904310263101169191907142720682775094994768949733377541163087058304237489438527385077373663919121984799469894312308564469928946779365846642761699418610345772704193307706143024708640747169610005739548463854708282074399460242632522209138864424068970492450552888447669656059634631571432762069855813475208707477783807346702744890564695741960931112968222456172234357168752095355087388557954112825443637560100907379871755890625215773071939087070706896027591783811066947200617098600952765304215213956047231754244090600895602076956062711001394827921503992199321971691375400515399286115022269875521059811129704431378301365245433846020825864419386235329346070431580243807013189119202408663400085266494493401074190306236219079134545298358417799246212508383694136878538777398153822556336946104868217452942890082633744835816322790794519898243186489550178439190887601521699608059042311123614223768528624731259442772493935080538321013326263704071554073784928817123930487319336423417299619520605968424091080304705078796850993213758626605795649713729395487965521012476699141177563463840307351624813704817156171059053329397500323812069089550214860144592795820160276900329048536929669115769970497546311097854201951476723956027491840452121725284375164985867537702453210518274096774812692555773871282088008331731916323096745542370756324812161776046161180807597771834090841127842563546498456603174675134635398496447979261010906284731156463058742982081539151948890542344717120578061329480662344922029090716552169251997536221836473878458475146963816664626227306119156343060178458452727432040669924946803168491362029775646516586255599591042729104882782156852061456885562115675976027541377977318815706930701923488706681842403116953458003831639329529169492632936855847640292517336581303726723181157591724488624899886243548789085904569708652137634551821917289208897189240518172803610854783203856874062434310844667448569276160731881595622690714986228148478144143730518667900523277688069354071554749603026350252698901081112010895950296323585555707706205213026803454948084318796118418454350968351963050832054224638152395010233086417382766923436630181507144901766609371085514648505457472158406605209876748346621931807472675107614318290424648624549201830664298998307118067195248963895311140777584447346219278190404376314956274061247024613739054747360093542915874360337638154995867113167366897063935637355006412155633699639830127446387453924229975031034957408354583549597504979522773331455729586494658843258395036604984410706899804381227259151292734843648501430065470395606863251085459321891750731286266749614597927886375201710097378604864690742514925633912918933986660600913133338427290131168088874188237260970980130914617983880096222582623565714991141765223463915400788994007271815480084390959122049383127499053805849657615860346971633138107653507211329253905667221278681176186026426537785200251801038263215598233866141380077463984832459535919711024698698903561167184883685655924267742969408678683543941808789941499476351183458905785947157449607638347718349341020069548785629060674013316309416402679749203167442544797946338647477839614163502233876552018043459813303642107897843595949725267783895931526685515746371295569295639314580535126318158984918049367666122236596036509108606497774935452664228981570583007014005673576570332867048922266546235347670669145052366921930533297929124424258457773914744824099218512765744597263289071548387772006953890744430959787185617798897355276078144568078233005255823614665737201584218083477621562981833565590371908523195823472563738728002570152098333448212233516786295567938291600294565163267172149767624041907486023179006297089700745971491509283306665553491053352584663889239459919303474575570620858551378827860200745066611400885082227775539425533133881892102896390331594321827046943122063196604625390619522011746051604403917111334761909511164900571170414872217918394955989417273031473515422730835195982687755621857023673966087095908244119929072274089556732507322490574392126126692334609279715979312840536057691456770527945289540726198281188800377017380760940150652167355023649935294674240606993202638962164786957793352163841010670243525198300721926857770196154198696959789418726915036525676108156358103910593455020661011373087094971774325572641460201618124553407680501094326409753305536330993657298019404324690009457118508558522586143969375212899930630043219276041335248719455516472339166448005206786841811501801725295141255655404447203282415403176869881366512245408854705363984624850661010100323721764651947202397130469254240819610811134502096824929919978386038619967173570657538407417720775751572195880084948320413311688404678663210950026612065190021557742923706183662575953306533651062038072720723407291391298064558764845395157185788878231342755564995610564830479305387746859614418906548291418757539495784464560002533297410002225262620709326649403699947664563826839602664540029766553021462764901564243245533888830691630763063315745372126672230512515204968148011275194508119486234812062281819236707802231301821802349617488826620154951353717023478676261827941663973335514061347587922480340081436341721419121637073346552285935726785448734933468839669799262645473830804838907509540596236802666200883445136756443047877025661041475250946196114415676196792942876525611891632650280925581236792153907352125668503361756057840948779259961048595369835556361392480961827835321258440569397024080740488889839005212838921317564374677965655524558826105472697649884828800915096960242503645526162675553542353623080082112229625157452729201813310317203334924202260396614383289649821958922724074062004886127305292684069416202082973301371246378317822283185748983156324476367005365512156851145941217971975563668968137206406074477972899115993320126883524045027842005946446880825380872315806961591023069496584877873131561357299601939604753403495091970999634620772028800040984630020808744459944467365521787048071457778059793666300641474673804785935762132098371189663945189285460342821414142956169607738348278570498370561095389307873843453040439016032894355526378257736578281550547123868159515873330959508148009627225560432297517201469486850565582009631948029320592253084141463112505831522576268605827366046134057516456940967468553912138245881177455751291380216579463656346538147638338544819208971373174059253176127372869156845391127851437412110433746108513818955305205400441130190844150836256514285505350862263399785806947528633926903125484527360465324807897784110826523330593873760163970157695868401093637262685870131156378579852931009148160696202852392321979147905877956366500959570192893084849304948771594090988875446891400164353143536507458308628764505361108656438497984771239231079785465316597499277642059813164558261074356882431915794597711134677456502555156476577318004444680445227084047108508525505940954639676189051630838240588985891442582971267753865593727571846648916346513769961376807041468886237363929061662808470519283166067425957387695975091459693896258223393068961085497142975139543467971693873269282415271862803578339770067078217757542267298770345026041684113215866255411766051672775933109308120699759537564776541259834464205891600106671116731816335498048751467126073572381312318459536853167387390602081097252787727159551760940167954009303211627742294551818191270686186645268478355677448098980944825766666763011206022855082795091497669039149840649416431698893506643852765667862244329116380712234252301983522091928059492189113153750929418987408205153391547262588838559561613021492895184221614955823524114743287138019570864925464672869224174206079290495129508846314068929146427065757236741311727938172442686140130968895640577255161953759280791167903257153050694382315196094029270936837596943690803288931046703941476871929199201294517309523621109737475152078835259659176204299139655171513480653391494498073209667095605097039248441072278956843278814959120504755163468575327318622172766894134400042186015813014372355744772947092857578453384419345105741443312635677914202003086997381397343038009548413255345886304054413972958173762903357198498697196497422315781819911924305604648524180729481557415464444967971207935172690391004201775561456133115224862485431040835472294745515527594925924311588395478499657304310156374646355705050127818585056232728072124841851719314506902426311730290710136396106830823150297557182264225892799999432741726963756650057314986182354715895835966509203291579491132435555057483659696158852566780353073430248497328229680639324291174753450997570506327873037686737072476184296061225788640239707508008342937031468948797230540429459297988285242465694650249273660193554752031460093959110810968128578890218733976522132295287158276368093084126674738942050720592168814721767112825357599035677001834094387843852622344362363304167521834753029404862766906004185400434798981198475404484464899924692033124656907073479272231889974409789558469553237885188497758925753006376473327630499036613980413164340470680725549107834412855288905207358306501565656480275050861096326525252270125905729533565953787093631513892026517962168179332448515190667268070422031680970432094984207537620898438875812465712138476153179694368579089820091652751808999660878802722195409446939678847674157687618886975655828114862719886901465515885816817874590647497439473997907645935265457177998044246768347698419071971914101127722628144298027663777986317087851634695523392422070675291700263068113058825090424221408052013832451735107495666020718119276676724317228889186959285482876482645450372843099895273398000317281284844290179628676811043536515850766463600848406499839207146896112538496234480429700937021963947400467522937261191965007046470043649444889094778457809644117428314553876359944471724639347634385182472785551124845781201806540920848223186700574444412817876856339055007170437354615232187147644832691594021850953955061775217481294252643120967386227232676341336281375973267236796281333079845099187850916471087666025623820570758422025326574565932117805021492347398292277234881317240143875943758214372626475143546894524772039974028863537182876824846841230944155575115871437370492525466507375252591151589053890023774868609536609767656329949456440865577531021320667599270390531086672078921145869342885126700716393536476054641661499703131912619966986312403755873318992367950949637948044401804576725006100839784982136289560508522621017209781650147950842631477006769224035117318852332881859166779603198950689663570249914608832303886437518694058543761367552875917610117021796032825059032664526242361050239723076672157550901086062847135163135097798620047295490498993192753442142555751690562019460346202697196770238453287374250645915705412839943054271412131501806605969034663734477383451736199001737726736519228671492414097817191805129312888099946824223111944107149725531695448244730521644835348671739208250577984251494364854263598949468946409679750206387874439005022811279850830084026442542225351868093042647977018226765952120885139057767774713674905338206844838729413323342169583651504520862147613991893109296740366494255422068607576369773592831324123873503613312004634819677783638316497442618332415396983817778866665952734735020714912204313290979174986728549018897248510331313067533544501735856219345731921394832599889975467006511505589794627187320043002791759264432649518139809021995812574852078100703076933948581545569038587995680754373346402782602817385293547733625136997771492132854186531341002912810286028053441628345386099889421010194999717725578720412726410244167232483965985435792894353601316617102235816299240483824038209017589383855155641190050644155358830498072351456228579839004916654422511646085881340276465217327523467285320647985389962350688145134849061494588142202671809456359024340428304536232133953465229345634707225615718107451660485324266138678877730915898720366606017422461010014478627417440956323758349927275485328826155528322476331056954656355027888048316905229755610529893713451985550584101800920031342309214626830671386099988087069195359271238540459019735434839441183098611223429035374658768477971215099320625581084667916040197836026913212871616379124336538188212312319552329205648305240600317014709552960373138261486352181566911796301457905775601734560809531063877320077446601630155705066135154483823475863566379411294408826608936495737888000265877937014608885067351191454579257999537990614137920207092426274657869235552352934165579415298574422637805235033008735586826610890286930542002814286651340032499714870811991396416363122384067315384977012316817459749400912528675986530434187625784480623451920471736400458775279258715515984295694595319291735446930391850625071600389904525889125615901333840040424019544981563620352085746657810013212417943829086803674553851195130850904163449821379110753498422805925748537837464888485946430641848489400518041493929093981028483344793410159688487815658484451976296041426777251480131408915536894721926083239026900604594220276463178288224999580946604029155640620446190232246313477903559266990689890906143060277104129746742171217120390176199139090879103815039589641723430758873939455039535815657775723020748182937945335682553153160674359156183153986657243483371107264400545273557790020618936980926133820329967913088990275345627119651210475465772631467381883784988896901562592398442946652844586144107891812621093275910678641593260447959690431433674885142457508646388069060071406070520312636423398692556837968496972796615312514182275058373673866215976864514689001334037342954076776975941662528699396557539068931566099661701356316612592153754167618567125862418215663659248592327930005940906349580311633468313777877047887463509354394278249170227783410008614433973688324420796958197992128127553929279424491972628180202679253737872272271768206526496587834027015441678449274778433135583408031120971983970835713846031630761144300153900157338266585496441207012579506887123505752261013261422049538901356670495868746850477840519536781955279797243258674082290874633469489435661376951271045827935627065959695114566219969819349336891071827821275676555751267326392136895796736331671673837458004028383493632013329094967513705915766870511817682193710794111243408724022486936785441303990706537214565848893768353264590101808609645606070813763257513408334041303698420476625523947196373081153881980455279357065363353237109304750163397268094899193727046213636143911710211609175319181902046599163928426610261562384274237272853841540869189895511158786823294983304383384748407479899513078428260257105365848301704556285466294053916231761115784191718180718337799349161025291352755518939009763566099298332679867432931550725941317690420896433736165606497561821838102626335622147534010308102335960652244170794422215986092616838604362801934570129379953119374402389229362066184648933327957077834672987892072364529666954570141293807524382933997298071062390604795251588671052651512365349830910252888517987865130045301333614739839032071550564683611797272240596323709435437967123615544763889600362217922106403330479508335317956499439575019598080650061166691206700961066830897256497271388203867429521187210272830777329872922882806846239803550436892772394053944798118660563412040984607976816262011555722011350314041348290882493857843652184464936104915811058729356554278340240794485834999224944415373961431311154490930659849146999237891542378621151632165156068775587143946714496552186803375425237438251056977263968072775414939333588103827348946079790724699815287648210874520991663126585828365212879885611813443500007422932680177710324270255088231204940973671035059183090336440074939366844355146419830476564167129001686903457018229490312157207516736750349283362029202527137132193253324286245726078544975453384121811313455447922270601486127588735401457475055830359172032891879369994676934356392897608379192002266979293797334856056709702271445119770973624648127475440088701375668213546562542212329443668038062687941374512795689968341166709811958396011108367097329878526523742308704489307073797125916325595841104475784764270843145940705957776468542313176659312340187590567787741560689157052538142669798318772783226154273755701819196762910925817691671360536828400550929602069575505984537282059217027150525902564812948680762204216018769188568886793327489352596558051582488673377498155839132270788889061269711733666805173418263846340315245660969132435009216283871543560434828985743126676313157417798543294528348820236046193112468332212976839022245655667402914892588015858858893494224109490446954108557073888330399863536067525383409146124849766068031120948576078163317744768958920169438098065745880000012257941666707285440621681510774677700652676798054529506371554132102028115986240062063187755613133982618876617105748291122677091131831336510394937351644215373919797641104980699726137199542390544019997829524155980106492017490445851977739206485231729510462318636464651163049764924921576023212390897813357811669326102209550203570099345821354968994709942683629203863078043914519307786405279782081005641473265606882460535802432450359924379631842492671660620419590556883281450988937873573502578433143281299226006091858238320360567786209815255161997784382488086649998257627709445544521917012872882098481197859196463868746483773345266393317064699003635548699292600184658880631338598901389229879171781417891266137573295885275156313809318367636878925428302120843760306207929338792089727333849775846121760497260267450270890987214987529600115625272927095524310692552503586023393100659974138252320909604452345403903129386832229355383973741953495923731647321902241628826877110023906076844024949227841919598905985002335532250184092113136724124727680754625092281333018792196016097042790894526217239796619614130908217070531027342027399478201722225004107395281830006434863681971102551716220585696141518731922382661754285631912972145633969420536177982848034257733880186036538915057894468037063263050196854499012772232904386743251071556843132291894362933350097466296058892896926298191320939298242279337405747909986235127021412020902149080309659445861243437312831318635190002908422350558760326833179322514042488285291512097835148079262350450030560565964873082974157442326953761482689968685088476106667397431515929754051979743580811078158603399652129337503172125458682905706343567355151456038737960623401488041905491963148023297726379575635270046610241764225827300020734286850417862747572356868039820092905108424665016803085038480581939462787445974889639584897275093699301141839190849123071894195131589303810836240603167166357340778123241846226252053590192439355845544558786038191827163594137713729833037024984092942056007754598363192107884586086126958752588699231250477645376683563927617200021496479358522974448966369834265046885388429495667901188237025728426457263439714025002321228233113785058472089927488838927095623280105265894895903392578639739811759566021676277644630897188515000220837582341096233857656830863141419793866156396649194142037477532912296102574253252108504483468735723245988619032307439745802927350388721943948565660630497256574363902240194974500787687881647507764321934829624326146800654370484198406747650244386904872058586150675767897629655078996262600066880710484497009035695616050620877218886082765495944124577515011943802064280346022696667796245198945518954800960405878165978255042488861250406500641709797938495436172060845701112273083988706301400055288445463852397778460767532958076248750985349432832929807841164979375537018630069278797052451891941949661511973191693166207529637595560316348050651312791517949468331638021638414471931136893594246194854889718504690963014027950303272300186214938607144143599736755302348783271352001334143425808202946073166106619570887434261626380983941737308086040917001352639929996296997190598276266103859305907279897175567724533727254261816368963012015405206873394782564921579429720794623040599436467482919720863416058709979579512828505327499932677888329842422995160650379264786201367261871976957920455505059863840641132075242917153746718477945583180208050459073775410803856466741222366325475781706898748618767517214437273349953907344868379607646542503336705508038262712704425795046750387527281021642901889133379313595408117350910125635133759078478184080366628315752008922545754356480106496141092201255620936460162028745572241209397891368832329998746759204473018733771021097776808935930195385086340518376965741242170501252358715819668628800330785870207674104736165668938812612488090381991810657748158059542880366709423743203603161262401511460395606924075270700845489130304598565356195196427912127056777260942269667703584416629308320718452982509533210395667844161458808291825362342064292618710985282714146326420855069099948227537688024932037776064519435765979382356808640149737185914996488815866021064995495355974755700327518978163585513435628843888115234305325487690112645694954193500667459439637523785702758495670704270643336069295785023067575158353109135617839209166872633468531579312020816831847503873878689896311579487918944507134766821180562524414647823910258423595616275319611135793554673089652294850050052165085014579905704708817857893772584001018271793389705400788800783159478676195222325890410511753246373373215055836466617390610137313718848071017042824968736191063605556690252870711659479116207396606573181154101294424110874306691539112083496056118947372513947528171916935926486289968396414912120427645376855716836493812678822466913287074711815966317113260535153604167356258641797278246152255221369244184690707423390781382846522087387981683288889513148593542363742583063912605586042917818101095934482573101229991765496062125486840441313943855696927805209881082203422115621587784298197938749248747997005574046733561998852993117963167744603070040951601921623543947972904803747016056437671606949831243959333846029869508827798133931612715656827945565682954065671420364117311999748629025643444056373359402724775519300588967123444845389585297630431707913942920659741706838429366984087287293802965880790925354797730280940457737500244383234030072085446657279304509499331783336706155344715439558008325595010364058440983029323077572546379128876411866377521657272126224080233459338600404473480338085884893364384103261026085956673869904771434898869989063969157914142711259752067098930053850272279937881147587589559680296297947964497770877893901441367564233681583585645058673514019844978343313442112940169562248547467570368895474507010263948199632938839391500484950626175178795015017760452926613214321860162556017546451180548578954459432662842287398281961645024596343436846518880107639017580399792022290566832011373255119265604246450634499811000519360981711301027393546987435366086247453983327812685939112635072469743813395720700612637941300156439593006049848403929246402903878624833601482834794252848178489801027378351142945156930102275560252622438117810707382567725174868815251924247907347541613313078877614040781954071948837574745861341149031247973538380408374765765294098702998520861230540549016876347045329348668762199023114685881870192377938501366588805626166827801905514575387707277187278993712293748402891552261048713129727690499967629877159154324108262579760218807896579225828842093719321986769352029881915294928321022078906804257382341350237107417720416484718517092712617972042570097042962043690804190578873933026485869148446034175079144982364185161701123480659096587465757596523648673506750540456415444829008799049983555073808270409986253510590271391644143988234711419497772721012628653056170514651545782419157543962455211725815575117883643923865992242177859763851150067138347992823295693979980113663593165252178621964949172705675131600286699018669327118250324292069179417939805777007103873813902046403519415674937253671044691448288209569044536952433629852331349715229802817207149977348856328834760823591874337640202897644058491185260017382686526656795843713225101654744856503518864088624148754576128116575338621261864629405265628295851003028766874254641424069611312640999831436177402014782547207327200189507300785288451135382437120387020506478860757309775317641134728375601515120087118541451419090015773366005376656269220677628647692732623179245705821532292080221988963372028725103390954186688086256366040648527740381091727219475833238385914197380853808194794413012761890800123267251647088178772116814445185876024072606857943865815479481263387319827135163357984985047878951554308500471367116861292861683326757242141305945621300729320880015530172888150002652978507481658326116913095664331708651981511543973096133663615475476795893653453442698972204306900819451529199592685599658958903123123240078698078330727187392696933951390761419813478434796857217613157802985012405754120012792935406807016033860426400364412678716646768013403729705855657277910169852634645003471884279775898340953398196737212275482140093678879462721784935380770072629573098470996353501222032895900476433538287221477450412941842727830933908969254480690118600879000863411053363779721706535836584682438590428248815210586738308889519005462870193343911392570856704492499724129315019216355983368498962888960351500558821882429209718056710958893223196474161422951470976240676571074009143294804271630441940004285195096250147735549566953842077278041057862574974303661316160290012657033953460853576833372914217122196256985486006245039685041311706245288465357974722438847167688111148802119495964255725514956573796285952558250386249581676588672534189412666241213513466503991494147952401129196505506787907982422288436935364793530683410225387738367706114630841004230666173450579196333576434962279131067262682362264279870701475583462673578135832061494177262220981483790299778959110771761416043241951252139383348706976529591219146004213180208160941163399975686653753128391500106406361567627545341173027332616914120668712867288594008701415834342098237147064552203796659619597242065340875245112596523614562793464547786456059264354008147481487326728955729133668404098578285773250887069901640952095329778830803383193383677246425952497195313263652935053378259976516316437190411306092911467548409031103763521028150185501699351614283813777273423873961061730667594893407046931352933636701709199649803049402503162161145905923219798522504615274338929902822813586537051253485681950833344810712499036323297118878454278242125436307754204802675129686636048530760071178533528484998770515889927819906452882144530448177031185828793329771598847550840344647812475574606051401068684821875381214376840945855992500965132327394916491250468113880397983567395759449210456667491054313525800447633023714460795736630365759683602168301982067156074774460270813301936267874023386125886660583252398258302708961463981493195113659255017460151061619122485807164627888042050793711757344002019991205634300006667282031368022059578340895761808484463341874241163490214384261754491932567783776781025869582567641093562402119012412463750801389756934761074834441823385204395070555155897665743224471485592895785782539363798137302027509657246527023145266326434704646120782260010136237901145793340179520832550429763243972978756661147189168895630168172189812518392063696854556602444186753944524565526793207820799560806439453925869534811332627051777639659119967924286439718708513884485779651690275937307007571216033449227834023492019394632261975794203426410749454191892278786847398191417671732102917209371215670224624751952399797995377521292123482404666286700211918300817813517022462300860353006260107834481224142245078723217878620517442796977373324134625565504570383158864136322685655487703216612449809427496159736966487559391031379828031211119038883955135697239758539295097633842316403618157192046811660130320508952790189745014558978768840740358723224000779823081780760530008043331556640147816596575178221948099376679734060464322711619773167953528290978921452072645510971735709389470508735483318231577119695501356512130079734164227349762966737343416642659596055896910135061380453397176740388790268722671754214317932382241242195466231613763131019261256155475621165226843224520209032592716437874847301581315331358880069198331812046714236490670023838135440410380049379681409555266296990791024578283261869921856615517036026937655288427639127443342019391785222271441672389599504150692666989030861391371936602684226050392647034875227525418629039137594709131257876146968539292273579395856871416790384519513550233586589047278626992967242590998377292293797047025904962292021711118172591018344740219392369603365061842769660944621759735713948861754568855930221342640156308047826100130711915768858030903354863921813957632150485108145048814864052967353765507762962973219556952278833718395392510510295211087648015414703133228132607045028620826998260694131718346638416369008306824367656675670990675512927965275483466562295883896891701601088338845665186500375944436725113699895898295806665848112772034981246164576475827963637667175879171277226469744965989152392013006645723160719028251104744884615529882883605741926673904322975140028584458422897256552285012888445598049875066110960734452654163409452334336628052970390921159196308262945895670219666014385290096660787819991217509073483947530329748337793277040852664352344287871825215337137546764062100061189001370059929012160891112423823345537777873977742512793038305030592008957739504921401541296233931127699058660817998200766499880631480884096472000202886315343577521292072287825948122689507036169297397819288869387336225527040731957929803686070625508336038952071929751439699016253229909605709608033863254706333158953683057932206701259003079691442038963589547332911900669862952767556921053440174395950458758533554712187161511655781185314991534834491522131528438020516577083825870121938084503435593219340023556947928281506194654397434387060407962217814652676547677240810852752624461435921421815593785044044300410307461950043771483218406829056264658197822030511868214188845476587036585353659728744103937240314568831666735576259458040763083313763748014855422907347520048049269503707220115810978245022992360479163614841248248271097979246457139747065658072068689542632506590641575533818356164102125368809826822772248665640955446525663308851367943507576044255137800003687632560335023535572555799882671807585465305853247811403900763911306084086723049649796306022823190131298179579916386839874555013614914469068742440132831600933908670891458283150083979196434131842552667991630290274878674274003700996085531914443285869413606943036587108192034995375087114892425841549120453383662105105045649518144482248481745237482450110542660645544039855096602521260683887134761039286516258427219798072258801034627078918583842650164817578693706448691242955748076516911495935123647413586941702929004999545900603307218278441436005440503322978593343945670506042460141463892232432807876951375778036597518828311784038617968739198025820453174809762984575684471989947503514261153381332815063070411568518822834307057744531240930853415755186607827042220440728355759290833437179363961261895980256273158516611033317174472484448820350711954048197087218031573841883399698260929680910728386564222061563457212021084098955823174106507042409572068814536009616756042145373626126543510730711914623906574036042574948712181417216349748982160539230691452579268531707735060127264292081174965929496294335858723058567077938133205520500949037204154585636868319421539109602113277608318910903384540266204431709736387836512134137814673390562676631005859015187507552579734721151428341042234303273751428536240040064152824035247589044311216974096481893833990748404083766340035852658703865453366414248979402982954150940552889119541459388788061463780940956907371301532799953777002812027396336812808975212329631695267695709499206520459926880033190957471153632759393676214220599358762998155129172293599396072751528584962522685775978062369973014264898727789117582291506637959373776470001613584794480937004958489406492221721669282777382930285858983816156304547292008308822517741771476710801717311191777546813262781723650242101342216677854449208977429909841797293804909803836298079771834859518808780240473493944818830177733035368830272817835210822858209308112720907386058408898010259975973313190965399634409727877828075359085794391545782179681568993252280430422020759072405018155813218200441438890586162580662099244707587624489359033648512129786814370493931282246996329266397641302634556685234784976208648423400056722826164265588081995614650883434998443733972430104655448476643822804958647596247868727690779823524027464573074506559230683217420766998406541332507245076899539087668998077647474348554821117932523942836293072538861757162088464626423675598932628417169817404507775684545490919299219500855509676949057342270644845554915650793917155426447935640269362566533225326552951045420858016007721662046865012701332831353385491882389881067245922132311324652417638988086728738692827996491116452768286297333958733154795526666292424415824097906796046805388391448339492370813758058658576592191884217388375078198680977343406114635944799804332495822882335832880225866753843733463137984106831433877003894664489997334219643118750086703834461524498742506795197902735061596807529365649135590248461543498734892849065458093742314202647130454853409569266071929225481392485840020023958393043812947486512686899061216771697670682084282231844526407576430831817359606905011407516765332124242173469956965983059739564120689898133565143081392296184872274024969783546944633267117761656307668178126033435028034570120958730556273841326555478802674772024662241174902568288879889100649934647957208272789118862111679001155733175776303400870088582213644844511835787116852611466865709507597917027720346355771485343129275737792400247129974080302505326330209678310536152463392351210855826360535038250869061144147159795312322639544783823605873368725718503127126179723016481788520559994063086054571192206764990983272205357814268983219473745993455509330340068933980387805879759362383668868745398488506875947890327410029051628397860331151003896400610203020531698440207317540328114927739357814336571297756703100414290154604415032706983660171149859615521269691348585015806512578844988702020294992687353022513584513451273245305893547284211247446494841193311471936679383733667553462007339210449690751079721656992787946507211166207900263789281211008770544179351364110230364349330341697742511289008004013489006759834896741061663381800904706614116804169679681194982542691336196548323377636405571040469820460848325154716635160430249453068357379833736518596828960172985507651392872842899421606422831141277883654261845959543136905315336053669372338828055075404982420455025126015521532539219971213873056103027972152196575024194158422441684866863224771551871031558780098538143850525542857232176975031287244400484402228135378755387646587974686273565647257878311829704718958906135223127756350808175213962318877328518135201992049425106013330453569486268554411827205007641198290696162230837253918033096011512299185021323261878269515454065117815353213544675552428720910534159179932760905549989390387659307300494148680448630423724144366471406576407648456958967225861484785713134548478163502380551693210532590126814333278147441760459502926282430863960981028156186659136860250471323276097270165258981110376007479938924139749493797059716101792596655128932750566172393972664190561971491094195366376869451955538336678712142982701300360734760971873877313098050579261634846863565648626498034719432949851405287361816805700913270965822274559097745657336210112690195959242484853571217021012290320806156288862333949646001875356536870105575313145961765464348604027180056890180775860975020971979894151162100865288090195112724062848760288075182068295149628922677456524733018399668450083713452691529326313039618368836252268417498046882430962928611056097205032452481835915087347908167027622471369535084462204658914939152737252520615324072047877243281426532184946623767071003465220667448988738115511807659803944978028690731534931894044754914234540288020902454545755940234596992128231906471280007834515687154077682780891070242772106347869835089301733858955524219848172294938618503557100150117154464865319245554480633780746091994891015869129330281225821174766864689567747139488925002549462382769600961318591829867732265867795962066522984839259698502826445596541000451444654195813348670225098643210086184539709859440581260323365293261275946691861965062369128102443567389317076259083663744239465183346880634319412829985859060325317973328906110226673535324246808896467185930373841739923182100696555566919783430490771593667994617616760618161977265746064301070707017412667889285670799031586554920911963106371506100098892694078433234802385277581043310043263844421478718765845541426369157214360551708414670210445955801193166001762706046367795656896539844034307509730705059174053553348703882925360189917353609758149059151018394180310753118477933644911840948122450273294855171181344267124626313606976062369982745950113098415337334286046300339230880338298968988411180335064976218008972224303212796179595510539098429849613674692616143110300197720553706738265944893516778509050155337660760543492730116056214648519795989976915527030666187973313015663603650216497180273264705252825032648388310742257449082603810190542157563860406662321909709062308742613216579415482063002011176194447078222749289827941534837700072373875547281276718821661526356203114117783553010848640023194760793287516758694317445102925507519620926973280465575447264036543792736742665852075269543432978288222850696936804306056555513190467550966186027161269023063883989479207811396939777300542814325326354228080386346970344567891603693357078093243087954033522766106926067877043299203765566183703669950928547924399462125001340528575510854625449128370881524202225976781282965388903218168391887773214167380554038644925770492949873725607754791126956051919435478547450382904335778988768889403233906502644877470301764923673610184149138529302134783450478506487098886008530153734956028559767128431427677283080255561935455891967424194820224863026491843078139250914467215817519091483374387538344510630468898843656557672821544173100223602567701349281535904551866276587929197166181537456638498044220307559557849339919343369161933075169049597439470244474478614510370602323487919525129471156648556233713372902692205461512928390340314008184873768292497112146930324340655792993339072213810640086134811300907643840405148165020979891658370992120243368269762572304355896396111886982261986442409273907905600716372519456214385432400217706133968409642534503868429287878576190786460854312119546441876239916177731442923009761178204786265653534002627284322015726447739230581911562451722577870183132555490934828508902746938275261446265378974693756830297884691166678566217216272702157255977388405961928108205911042265767067727056066836940789377398064290887351626519134489109341975074923116795542687852253478083730964328584711145165852080927070257267671999343985342566392409816118814915712743660719111087869108621681162079725910788796650548710474297088035543175311878044691039177960537355146291455023550721042386083593484113569716404312889286066320944778045290811636635263854533464927360015304648037490495932297931707905049876243215045897547298493066326630453355815638642278608145663528187375030620489293847445142470314925438099612395322282005034991123554703520709334573185214246043377524884774211660603957276955005433592801316986727394325294438158421244861829454116849576649082490798605946537351235108730012652937638909768686223285822450460087926921478308586199669457560288794498412454139662224902404440336127522864518765520038866750814642597938288885619157353633928139576627951531068669924016721439642892281244662873224617412643886728170554478129824353624433080793658569816212805352275924912337160541989325398753745614350579024862335493996223184604581834892302097192624964138989277345146450924591644215836054591266564116136455791665847970296888936608329935219391904823120217929095352112428168616844819365132076625909800761616758829751987165993970464694971798956280229478335121248551676367973954651647119559630045449401175301596425156085139917078373779561353968038673944779685925736122546120082772367675685106184392413144143146314717010734083354671586587296890583087054372030773400097399496299573021935396184951458517531349188537344338347935109926240705173966820806167103899429232079179660780843254228777328610245105717444336984014396079927230043650101565947181283540804930109407009644705220072514384596844861034155259437389043463052841785781228491885762377533572623555657894653612712345123164643743241342416859237460703918528632381735881590766517477232330585011895274530446793171924328192939529942609463929451709187404553524664723058767559796147535335437258080755885648985029340609743462791673653665827187179433560845712079890210112092183088308957140079433874541584584887831263577411145208824329972270555731106782314640369732253933546107118095687317724951044230763563849173366316828008361964280842819899503999402475499057652635630296145637327747918896100269055472585151864255847446267806922954031071364587009704040523714803294491491454116594997472777574757346944719813160229680467452389670145768302157882493355313337129819005659521886581631259033189627656202377159541044367372502407671233114509112941326864116357503767276674048735806928644023686773566895719640141559305662254498621355057099694321531039270062943677046863797349685263924326477953959934233842478614005282508015744914920045345746445277589626954793761945940248330080057928312036903118591168045653179084766462582890922099890692664442348393145336811443961206156636156798489135823963649904139594844210864667200932401821624464614710169123590380872509030470734638285844504227119240882063833790441275610274999828147494949968382930120854223887582893567274563647180171476680571587069199908850346081822261771361832334067315695823628747479001064435379552215503671914281294381521746892613683650787906550796492727480321233068372984046651975886437499723824057439954545113116816321240389729786734609288776017346923304300380345723991182188232509334627160567277130367675802968700662621640230570389771799385166494189891682042406258629176220504589979033997327289441800931968504914697168015696199205539294941236082188538327517951134975899252055458087179670289312239600768911857889326916143595545114368181599710074402008947621168553551433687620702143599989153481935250257339595911117931216509620430300036122350003300671408650893845820940278122046842941259647836956757323404574415375172915082873026816259729496459933734624701148371832522933829629779851381577583489943385516351454328412967622931388303484513019236598527461451400421010259506337202133873547009052766047258573251732277391618217658613742984111976140210116893621345829744868101106248079016160112788972735440768526783834579992886347189239320910899023936249132593712931596045973568359330633703598631113746130482193661099834132359228808028641136940968199908715857343633405108097329267875930594556837705908102069966135942425418885575699850957945226326330305849681462825231098164595370338124023146681615986468571886859442961037496897432515067512013604632197735830020406672944650927304394052709699889877659828848193245634953347082531378977708362137466398073532027614733448715096304459781521644518250073707931112016777822659650258908391485535310571300417000716055594915629903670060283474190831431493568448870900604521608063857681619073491687707190267227443888189280619019785645011367619643983279692229485757734728422124261344292410843858682275755810463548163051251904078945126238831630587440087106157029657149606583741472548368206621911078804331514118942497525988268293167800301928473259192172938776535306531832414021150899011679798279475959918437087334692373642638032689148381272161864878054153580971055604172298250977773692669022886965194708432187026675582575612708590600890589910305834039909690667098903317173610722780541200369698626006368026575023849018917481242794541181301278016114518254321123128989077041220692168934900471698863657075961621232380960882748930487708328218026455630824120582387628709119105798023745550497658482871171586443113995410240708566969026079719451949552922285961548245209424461104662548119762436402702679547051876502617443998409676499317293768651937471865486452666445749488763728521465133022612843773593821666119657196686355841238879400350595630541417240362736216356776092270022293272896153471343458922084932008288257811718578137017756158540509763936716495969544358695719880850977631409506866713956119402585102694463623403120032050950461574303924867647169031643175777896557446273946757688252567787978862512479581738822476451289246937474687125802326057095718198335421678521778396573848846883011566441953334333495610415957821973411228360070510387230183376174676270488328630494315802012260748529769742524790047632720997302315597288065993142573633393260930380440413712947342940051032451600036337324581510771357177760792107324021607825100972321659196057566929068573834587121425289175889739578585390971739664336714686193566187848334127819641170782159776203867925014328005172144288810708969688021264203239027777662304334720814525071807547970999376867255067147943178138393167804172036424951303983851522438340350188148236888945963822180645250125802672290591191150721977959065946805824430910750436882241708195348162895025354028806240764467722736795213094594088331022254155454164653946094388617114413480418170115836112284982867258164791372618354576172124545660367568228137247003655029694792446197897228118341716954793324625055683883753345801252424339065826166074472716589287541315384805497655891946825904554622644050423372217518080264723784925041845552334275298272415737096826215409579800618283696709148839741864306765414288173939203005490530714262876951024071357237002357093967835161688781685059419817977043898382074844809915125122021290436530741143860734098382876282536372732396485965493647297066565606597664454110820288969371998510527035516770349754050902536833371081051994074286112147670325977490709632473546370872352232479632362443814130053353608714779204288588942229511173248080422643707632335536695218351291160525944500676327780183698199494743189170718711562450723690164296148389219032567840897212933391622479807604006959587007761262941602487474518930761329284889597672472092163773262798140040641426600361859878420906002014521511730774949973243165815080361519753581356084526160858905240539783442631000692816098644289780523638907573040999179010711133989528222942525872183191910958696431824036324046169876510604569002730226452646431339817715337051044630666625112480857556482628650312080040295782308625476644579934751481743381765017577343085104364218708170480840707164671273935743352077760633342594623292166970203517131168305539837406709410456007459886791164259213187224350717751007230401081785472928409453572550749982984997082816781944784262636293441599901025987797629583198648584407077381894044779522125672418737181234638075659644238309498853728433578955169964791571104870730306957942714387144269161621294014406524650121594795810818021590575944725426504485262382553588177654551397847381808660143137494357571771236887670025308263658544289541364580367511454168711893438953259984028453308821593484227518698273347225347758106552614887164011167780662260197375764514809315494345341285830339183604132639180100955929924467296231453257440431623569186022295811834639351457515575491469823474575773196690994614104900532309437054468170421514056008296532355805565309677682608049770062329303307959365688519567402222611415904646430455965908280668798486034050378187194358278000287774547841469535838738789159080976091595436183976954476097565812659356324854633292602218163345363979232352089314674917423361528982420809877687640166387432270486987013956870394766626806878219502884023480918644144604479689202151693958138838139950484685507561692888231575134059656954873334062681319973621702408735255486736466126480226305400181376754458781706149756566197530096660230046087026243778395224076031993867582030519366792834704192884281673308346116774877268291958866489847456455079098909309128571194135256721489711721251583720966143505075585340981448946162468627348643845321257101541504542516052555222799090105656635773585504731903317441730018080247538906843289639758101611647051333305341061411511928525250055046125081441008075797813658145549015329568177989078350389075688800717404907229135173578004499442854931610833644818319695902877463613836970893643390828947205812231078079550696500589928446441905967533965979717171734473249300532447862118867728604617481545167324807256526792593789927509457878105319190148479052751420944231938669157412515150525261826236250301195676488601418917355879057452360927245619970721542293263747612739767508412904381695823769324634864993346019791935746613402559963967874592644855197732710801805525654034090335295547634730631264842432397807153585096443050531026141332714243492593012192917946353806921256726239580406406142398549280604084253142213955464141885937811640343036136195563681744034488361937904789621105166328047924708445542431226319789106846509071250382281604423908417514658610476222816462725926935991690379181376779312006572305611357435154216840426191884708402551229598060717956337355549603855101330723543481430831241437239447557471458675030203181290793794319377852969042636688272829045474567864600128834013085467745449933675904513260300666211957262135469410296761311061289620442960815854911075457252696125911425239395326524056623349628644713087665187702215288606699744478816185622504973605204445034887449721666096521093086545474581202164818940761673554112162955317232145320119055450127886224072174234788562596907372749929426507962438557615900303426231068548753693353436113395108238759523638056614134148071567839179217287380724082206377876023153370884530231862286726296178951890718466162996277703729513215641797170351586274106410670546179535136793551268501459145295276936736186477233181173282432346746326183438404797692305999762885507767156511499469644732518163206565661847554707878461203156586615872996424210893830816469353594585231471640180509896955282320981148471396446487381245852613454828889070187212253442724905378809794028872366933089864412295954299678371131223989444817374308972808460062804004636570046286267996814757987352687912085571605757700019175037364276548578045907311802416880364877356653906235725087842099921614886387434745588478415491034023972855780788801054570758693971856917638919002682624250715522652036771048627891807083847250837453110294612705380426519071860823652847314619828826568515873998626668087649327012330394220852201932757280917375128424213148148799691487254039597298349016065070896038283644211157705211193523214181600857380282163697382318839735269938968466127982407326598518025331949678472826613188742847801414020278183967376935757797759445809871691696328547984920868941099990983582395629074213895311369083242782442143316242894222195028608973679060235532780375562273982794773033284357957831399565932434449652717680493796569245137999387294891410501760795658025972404308768180096855585135283377756979509905190245355412327677873705272075959071591288171895767406697248613857534638160084868167749083957969915517321112813790477761858508511457701209820269243629402615386090809258844456414732442931061666878097746683327054306783530508846167767265064584844347807094096838774463280622410923613534904150874824773350501538127997609455177959670806382979337889316133830492004200870588716583414735735144817988006545765832703595648312944097453693650082596491002094265541101432720651626243003164643124835130162797136610106519815306624315182621609590284685176214781836289897356362740406685768541911932185009410831942370621614433112707276476704488775995131725350110096162579005001255030898109630082235101120359633653096309483732130670730443301447027902896083012215023126735806849801868574025391205711971716940266635073137487168476118207076970962268914716784754934528740167403396058681620564023260837850701658037618846043862987956729831976530412006991442997913925224874692866064295843695410982058612554166771842449510398583292062053172008181089755633066574606651462063260541566785146501955276690360371552506461038378416536421267265362034993336810735135013752545198810254258754656419635956165287184693489295304454665475749643838908992337906166300288038024071379528691265599836649356687195044941858251062664652607822074369856222084786905987821955075952911193844639896225174914915675859502891721593649218364854574957725863734916587727428249352985618846204676469293962804049199241604781351792228774507349990003119665635465942682438980774273494285231765728005558567384948821132787910747409613377701431879176921605336019691031460141006494780628449775514865319411495721353956202416949056889989153711966086125314809419636462502599058797774372315037829218643047558682796175376826972393662529778245979234092706060147722007288305151210498717380961585098683334515054102047078500502346693988290652347873839535429460545803619579162850558389087844842962399253528810944337364865392205779146042548389369129513740895636982969608404130191806953518652199888062281901249713064318225755825138297188482328476839144275405616022450090016354218665338680749384660691711280339019023039575730504221641138844386394861733706920282347387367427007051633366002819219791443813781103269266680966456434216839506175828673364000230739835373025032938864494256938216393603566860589673482475553244480658202148030130913006330708014936233801518362814866201851232190983944547084381073066106609429681956958358164428585308472756664993532601880822186428252214479891189135007201996965891032934944143421209575968689650051596873434363925254113412700605537164580182918574774299071980423071251437094964268041562737853243270122153884134185732388492354828691093852584807358346986717453343331255035057068577969537747568381440837096784131993033854907436547481384546718576165268659646125586108172882397514889416383662121763410702156729285086130595848600564975057659190838810986721712801280723481375368592394790543169454364167424936145220187161652315270862501214378793722753869136140685592898050215559277354360452031387719564006858858641446511163753133465635457636647827017272990039961403938794206725567116209835585249130885024300464516042428781882705689187532933607243262157842955853789221574653768928117343805505748048275825819360665641901169734692547968276009002352248246636836051496263135467915903605391023679987013687179030552842982248837763397146667484844647517900687752930451551483551147279680502136309762836971055682757922837950988386696890828786441493881012562780682806765964768562857569690014405654272910311771492404996369615411180104537924015103463217869781389041438061885971523500744098025669171533324197408337287111333066838668503377101037504520291157416323892226450107102844744969930875851699350560377935458093677014655461979340975365546740776076707419705091682382621350404591868808360730800709075355835001270980690060144475940700300388470520495986059880744157194060103800152725238765563599039755595091605870107081662450968091537643677529601235229036517609751809974130976620431819184282213172964316491796626865292176020893847932377655803095927670473788367588960980885017595045016671566740327394938286885762091939092744570227294396713949478075587446591282026626260629146128028767687984881858412724585656969579228150220426078860495589970956388143339870312603990870979949785984090112061331403618522967491627792480314477869118877793656351236963441814346242452172500361015704510735104760935565662931640324444192865649281953238128519087998574552420975968404504016407794378999845201499729032956101291895168935422862655684289401145635650836205026702159648298150016747968262886862519676466451661859806482041538186830338245157388622783613808781776351617749220811257823984085283254775932055506064256619378678355682596791559495934963340048960129819799377834317996054386432126994053147149317448233518342119517775541870970479932907297911785871939585734659873517369172758827605365831327749162341668655031104437566230197075880413054537982109063561938185320677987582771475431523325227393932039713150084273413860795801175276738528988313867347004403286280739424566819596692614564415029371577301497454375652970815844092267265887516461936362119466809040803103850618466652828052258647000660621163351687988577222349441498857823429709070683325955063452473666735885917312826734103851623305038245344612008606712448071039852845712820656096825524012223003228645488610701847629685207539284359398122861295136026342311290038187549363854003215678240569900224378675072953790620793945164510980205882734030838219386844097486524837361078585893090640191975382878027027058016213128394141317809842159212159224539752194064878297365651576700255076636475758354838060316715706345729615312895445648604116697568260759866750606525979392868858851935993668232463009102261585329778899111148862311924341969514409825666831986081978508864960317135550833237805678196657520338792584468559835920613062465951048590209213134314121141865369933532172997027587800284697644820189646968122928418170812416677051397208135637340753123386460855327223830361625716434757333324781364928958844735234471300597030556586921720280919240647431362159141241432643509625240585101237502181833795326183137432669234414990510810054971684746429903814441692683666846957363255124694861827140509342225892610544827769100074453823536449571820600170008003753215923201991326698057756690989305903229253984993348060473449278107382461768417750753573712315208506252411384338403076888136321621886972824435071005705260321510574495644298006452800401004730953191610680233784930194345296457680049456991516726632780653305912631750500238224509698341213548368059511863393605607742690726285953506518096710097214687113589819392244951220949267567457456436465285680409846112078258279514110845076420247796181737855201037553063884500347875742546591501814668465092287982755522774680180519290734071455115385275941377011215868656869432005440947321756723298222425458749434709872746275377822238738694880798600922219064258690360304265471624718504626776722594432342959594414170679916481512973640191423937455381858977989339967741517966240322694244528277559860091786711572240059580576674126662302448788972484566165425646755135580773293143233267905923012829182411095273299410989987688530738244672016564868691315888113440143643621734096180770132785120405552376789927358498605548214907452084535750736762548962707168526900140013957819339124815805083606612062117790449228305629530024458046549963764098825285859978035944667827377808656820392112211457229638504513911492176789832741113576005741739279142950990363086772979544040229376728121243157621595961555505561141519695694760806506394926641908461354777872287664645676917808359201156208245999076028572610253400167985652885917648667120625286644481982809244271362028932679700403284856479338884552818455393537533576935300461169535757278940563965563889590883200939618768695371373923788096676170128798920426445844859793423840591020059062844750430128412381456957401131872209272885366905639900224497911078312524087907671642761195597916303976259955827501342669859634775869828710602531743180423948661974782634586613816628220788881940543316512449594269273268743486576691789285355336220260733823671779254597736198950978310392481619581120749579645004427134624216545554488826855233723827965815113214139481704424392274601686496337264172019926322968130559599857186008260212367374449028442126957349210537156510688462798899279120515012212508784448700598735448541323762779778097220213998629922307070658100467306783863824843232635572136037353251643070641744430316275049097133625222589786606122130822553315472530387099536525834294497148775134503920541673161054142096681156901549465310281932010476231116299279094381760206082000193731685919826692560137580324621096428832883479666572573399792168374144653914211685599246325021223659035202958411704234811155376947271897725628623949827263591280900444217009830244079425006860012116709097498803590084798012292523244491581007508122629033954056254170024282221766121180973308301198418145588798757745560659959456644801138886328569505837928158559216829483466564027444266779508853445373987995872426113856541072230092996208857450517886270274161496594775114504204631447510399607524069429681251272437058309838684859698181840501139370762918111176963794159647373972527576410879689613039667996637864273696154665796646907551111758421796844136503327004320824657282288717340231366644580573125224648038987978353034977683201291319442150227672936093324966466676100830782299368669053260989198246256424305939625144010188343162606087115438689757091750635847117457238860747796086330708074084644546993472120973476213085000325116958899395177599165099816082367457626777768877972445279164275404985330171407629144672903047048227859916629681790337498128058155495781289560277329511698453651112219536765643465932443682937977584429930890486965911206538889711994951275450591395340756283763372748427923770466487177418444967052680787629388181359424414365797932131292038144124338086708215158679566344170373901405756051160752120549962445885286912867969520324899852672732963553710585342188888656868795301145401086685802652563987112490572235896172457254692353420235944607167755738417979209232611628348431139810559184437981884862246270541272143671976657973947352841930054308904726390776537083166155273992578430395092764401396376574766108082314149757545961398094065295334650978540059697050964391392223345211965073977929483857915151913354826036065217195017432302150243463014567672151625144961731476670203703561702757795529853906047133657626330970114132773556255035070304156227166475347464909472677861836758741192688693452841864076624821666102395074497778314664067351454950360284705945043432518177553651218039453701360776548372223996156095773386543463988765937963719592151413243100074964808479987805528312821748885468514579335258253049174256527880327230819139373352130473527717262784492310173711719738442991018377532181842501100901755005935837891284704838699186741981487532323226072565134755616833964719355399059584666639123792865526577167402685873506573665204843584402854969873344962665671707572198112933321216902343622106172194753496971958332309715035431440456349861073445144983072179903714199736954112792958109428899905422392490728507176922125228357150384565566427759916529661607145122079316559038176871525955938135416402608437373862108883773739617059051956185890649853374130892990668183124250239707161793327009746992418361370125268724952501321886476284129622445220278126950708083604199410450904310628768874494277536054777706088756290179949671534343407199754744495573604691208994523558872301373486058118667340720804031012633944718804656992237367550765456443218537844161521237367540591444164722613597623189516330617962599150925504808049608963449973409330331867732009756989744271491506026894923837341488362841908231952416600028588110176742251938841199829060322168749893660512324041940004832876344950210822077654382941520883811032147942167687914717482337364569358925646027380747448467283093235610365990042017603950424328154353143012224619606297932076002125713855055135417900568154510029399143173134960890167055654196086070199065178709229349363377503109248199256915238433998687580082164539580592323069785277632264260602919480535171527335419581352935629090533529799251729016436560157801878507652178933834287073562528805940792436573463777034816633271576447132132277272476044140286419125064882247451732633519705751545004856436769004500819775229466736945293630046213943988192830028936159016416210739103431451018411446148053337993725357183333358808324033737396897043198661004626126701058267750065783442245261407341492334613457027441899086417844965694930454947411332429632615644922814927304571855138130046162328058355010815678134177885683119731924801312456573785188253422801543704756611694164759520241839281193541923123663843824452052738391421384535064892328703991268186592364065758450671634017348612684569198563284824018664842873132697922011831398070056715981046605050684635211256953923119579737287785640270173623407280553599051204111883312721406578393747783256759372365458381748666617939526339710748634556011027342514918307905188721648969374254230438483951314642547578071357540161173027262052273455343373706721652465139675353580223344767091209282780732963117507155447602805408119489564473419049456362469303187754353800981790949244336729625802784323935723632426909457685096833814775558444944821493033901535932514511715286631735879570686159361856185837602862323893301887839524321170782211465269554058276554931217314745553196135972033731540251996453653181911608291787790992470341961113753873897989633168906005356894448446493786137158699575444191699532396122030241081871526935185716519651122718567539768142051503488482889794032543389249584782991349646980643930730486524408008198664829035501131838394977800859447361972368389246877948243509217259192820831418996555297118162683185228504892361238089373714885817117822643844677474940005343710228525193290859085746814208623792751005400223250928526917614165105651334628176473853188181154909454047093009220436161724852615745508154906733709917709041037141529394555923549175457274257766301315756484111171898840504563527584573447804234949343300360646971898397644353564430417118422375958615944408969479302420623998424251708809023984744711838289312332798874349895803007295745178589641377006342445675493869197542215022399547717421654275821296543376943135872230421369765256822809254081441784559571461366936212852088342472227547028156597326928369580847634713631874797292339552791116818282441541966696146495312245434874424865979683378950800054597771397805146338370814675806222236244367620069623726415394695804154736736138390298423775028645412587651997760141709082263131679240139145623047187742301518908232795685766473101151039541894368089287472718234123573249897982976993899717459744603360132956826460461900639273566966011616724707021917547854393141263812525742375382865737149523327258188576724595165128674516867384719431043741145892211726421395409345456769698152745173116058124157101617927858947307548016269124246797348409480647742082141734081716679285199464180616109367029751861925309610053554391060608147994393475384090024201449899157255867068293561275595966770953218818706453597493067856820108181595725113600292806663925448992202374697948552927399997860171030974345488852817056226632984936724562181443741887116104067461610728388890720674729833328880927899062076823135670679669606581695764697672248385726727948948317702249666563995636046512796348768588615988815180077139488924358998457937670417460726120383564796485301986542990673732086162304844770405721325954812753262597591657701342356026123913675600146520697544943025202350077721089814005753946718151283678873651937528749560264694296603007951517908969995370342989788431793959867076371768204383876327789507505901514091430181231796341451053380732665029449848463422627226666252902869502804375535010973485574764896483950371294362380259438704255165045672021498240828595745441425136905969655968728708396525441222117806284908647473936905959612613011835001480662635583629346424222012299666422486975747887155718063750938380771051600594766415649516165093084853195243283913591798930626396838363584361645492308131856369338614784146772645776094033860032234129528339357492068807310639851561813025632734787845912671249244853672802459751142296866933955394508437143701569170275136322346004914679121590560231436047633828306534526710568136080610873319447534608622846902005450380618545533169487916419178413419041978877746597104462266305215918188106087014093366171262164019950928063411699756160047329893699011061774111386802832153612223581265129174562830361647210353573312979777366614103850447827232740480685337996875407563933431550937682823063275172798062249137310677325204182170933298646354119671638544957369384675609770937070811009810833083144507707327903329168307829470591885134997012413464459382514780661440301420100149487666540325225443969530650674886129495868153511546077842646505623207080450119906665586150810743058289694095482443723289102591504482792503894914098095360610491819940603944613295615027358400216987893008777517508884568019509927118410584651340348584997315373362060501045180178986715509888502893673536458273654047826840291910925331127462203446756157689890460515457667631153594070792036833768145539672692655480565712974160023998910752280612935162446513549933258915555113883746106086037850003911842473061252916680503963860538329875834458604249300256100849857469278147413361338984151222908050317192863504476532747496683902039655654556616267658350593552996030505030322729399293848533853739552238537013118755737206868012749664481265805550051405688116916705122016323979050335559199350275848405779400869029305409805378067506600205660054496420193152628279504009199206031766871427483597647793590923483552595650944835039418894511446475767508801624250797933909042759521464668009383944733350247697404302876323632060112540606786904488686754750215431268863033621090240505877058496871220619268949451247942484978989604953833722068075916469659284466785424850143092856277138078468188532392561343086358830717029860860537134869735025027986424747047938087414332267932385855513156015292856468442829452707827206670552112159096757129209353672426407170430751538349938565638766138051158942780720372544685561913257423344795537444565616070006177999407839860553284786668634492654189823247982479606692552199244197062147617154815182330385664326551564328183314611303193421607470810226974403957835522831066009672310521000682731923529376472229026484493892625356175813532908860104330766271958799741809265362503046347729165244529591423435937678067521199438960635251497410117096737933434787945206201461319341750260970609843243470510923573071389112525777942702017996907619772150186512667628163899492772296363182424483102841930925214634020774215129157977117625661362315474973137632569601840834768323466839047745130908005716240360171805369626498048717138105202842670582541175060267302105942225381267409078623580623537261435686111109210356687926477745673516292911549727043440001507116094413687674104357357054100089927606943999710796009866316756773590055107452678457920132370760849413608142560625668852802454740985689965541288626977613447022718394429344468681255043736097716235122897463922921979120353455104895564246195266430198579675334496615703119539873073721155694047894851234037391222230858194475637597131973614713322626076890132980384055778067658907181718483571088894531882908473826962265431644334146903132766177873566480529109637190569685997656853157440887495782526902069695778418864708354749489297110191051497680388848381073124065972272035636472064075339231423306856845794882653737201258158692185633314996775605419299816003454188909873336618802398030243098229450314695177608115005256145811780797987295325146765628177386008209511751532700190679639291274746072172806195232971723629890009255745916491589172109033803979655194050201997313154267151662907654994175872093487456833034912414595455503528950547521885166220834014191226068167390852573710823785640987011171015531923003804238666515075811190803428807078384091593334716661989561206784886571965066771260301960988390632420128791225318997074325718902693836787875987208270588764788477558101529335595979916388396833763774520251909322984991509789978541796051700601534259085636028696089770016306997289296354413095497682673355817199905880419016664700723696386992936524294745381157685218406394059654098279300970182984058710855142647695273219504971963308485142402105041784879003106623788337152985680987195047736694251753879565555230096487814125643605049126464930780854743031343456705067536699187315320349230237956794838208239337391793701221434526967145440148622690152389382670080443054594657482113514151406988119318818523760136124167508060689441846202505636118479513043543023917684483938902729090389785279429416930539273919990181275206042598031086814541690797848711337547755896889146145500604531297322298382300310518273287281240922105329694427234429837958414842481965709551903189832966165510089279652112061281246027716758121112518678794080986511151469056309430707656507833325843087675245989921639573266613813374144773140314501500690826126609563124866966947890646553243092917154207268442366847748536282465284351990664028015822768944745791469906906712287022562161065147816912355408509035098479674058929461658531076788412195670358708996145034741771828950093069938474438407042902345933445847669011043930367890317462373257457203896858518701483661848687248491128436575718119594074138224264282023363689037353824655183730043653779389861058352917516806273316594189084437390243051452870837326962420233080438067410922500913610788832714467700037034997812776137746417616243839828351758982143884488629678702407994305162733243717881792950854438360223883751729949117053653658354839448719326330793190422831183387918099117907033194273051225840295825643458217595176547692042628483004373221963455240482532606761934073254535048483923370800921461615622028140274431576103790540568876224348633668659346977041815479969123515280021053664465230188837296576179841925623059426398966783535459916171807569470255346119019906577981056688729384782218159294533701452311648477043893115686506878142364959331277512713630933778800721781902144412767464179883280647217359002904521534726582135654515030682963751077288486842556094882060045022970269029923490215428360051700566360599728098741574190216682243500338799017619567701066814910494050322000018042833912815913692296158917452270860104684571433085457038729993192431482398990316329466865922728518826052691675262493372861367121339845946748351844645320010072353865472284289965374850486644685560162356859061192092389507506751765440640392055972605971081149260773392314333697027738246385348813615625759184168447298799326768152597081168871165034709237126773695529632926786509167730513522537396138694191740624858003051616393583487209705154863291564737329674127736990658788985549354878207873875694154109725522860819523181302641333491037981180902691022236518234772924424069270676145214159356199738131260899271742056842069507650945581726690210546076260907418873872140786620188933936762307419514372663524508730418817559773635920119751761628726016979628490365805530117805514255801585391159901500805182848565263586312738779592449704410604291285776481263936827325237150015522600686235012250414021993497636138464838402989943423358952625125890682800326112894043158893527244114112694074212376482295003813122877034577481099565670370896379821492894189319812986070531824732629685124184009436554069858768036506865995983903828182646690579573890061902269482441286638526754399922470319494557072581864084775408393360453487031240491183330102989384245753667215644028382288128180810257931858526028675132818081534497851136138680240116947783044820574708619226465757366740063542549538067428015250617785891635637038211980514125916332328672611809467776067321893869013587584484206879260674236381785331169474016423197085651140653868335509970018117491884407192649584330688875598763322089051946210725743019142056399023260627315219887831736696097177596842868204297698753507642786288368214992203670974908563062801024236172815546414087536620611848399880040600257597815494758206582276351032713874269487927573749164876529324372849594943661615379157670238236672829030521768194465061969285795353415771476825740342383812179363813709627508698357985309395860539006021660034870202835225134799948315675556112007738862041869532342878517766382804364908359705852752469059917757189580155602371033573286569976380258536286236089789948366327375534707037661527680010160220396279293468931273742036405051319204937035584683742051119849255056133463487101877479931181932591695280364137886823973941006180073603880810826870647391562638107486937681145316945925432598393584616790745243461725202759465666289053048459873475933645123155382502516378073916448488703683397282647422032783222815461590134155785609062163374296243352835814720836275471594667777250326164162868337536469023604628934003809973212433966052194628528029216033783923952310843309945864151228682579439408312261236018879027238819278152435397803481996362139703810963919684765547530961380185453249211922928413161247421039900812741971457789914756887488792241782400741779451497302913679355883731163290487381991302294843617004730393621118157843828052917506514033679474873829938125866919930793538815200506756366026836681326078586791551956826904275626688431757646654270013126100198350512855547400011212633329028573596311445152985681404674091427244681843601345387818726515649864202894845477854706777103200322622268419038863155064922839186306623572797672239284498415928285700863084274232119113233186310988413887259580467300858561004254991140301567692539831247112962026185835022960765264292282081663261630634802745104320018578239557930561339032561060864070925124204295832853259311608307390815446813614692487733349224689406284192788397250633214561146910713969300222341576908201553027279105010925502885808860149796214145409734458279315061786331642880144661142477592141878332299439490602544520854393800044527050055570407816497375186777366384627534459809507864972712760443242890522811922843049532287995249553664364579774976198202519538907723572185127650049486441886886705329790278549417516669755903595176547128486908608538654852150472044282797750949450285204933965014039697427257706978201352761146741089088986741320636204305094761459033942029681764303761771614005430415009228351766361424910159385266793618367832211491759468576099765435152415186506397431644892982111675692366456691512210123279438854245254058301230360113442117360876217360320888493386609062433670150102049766589798085793390463004973749186207930039636429914516282072450060221565548837960503066428093170091041920965045377718845369249467918611002858723947048835084784435175973881932235499753389663853011468963647300405945277618994011600668220024834730196988677765045949055135152302270091220704611074170294252406411742711415509966583046447708162265610708151551476892535073945633367542383117270070588158810078115634737083606027540012538669920125621561717233688732915581470683597858459221626303129573015775759264667889767511166618877411753809267657247847605710511932596827732958661964417032210375697807144934783760415363298113716406144869315535778020826428516200253122658001795353451965117987006594692718042382019320045063293927999773952481629051826516962006587201320073864330145921758356650097299238880735438098926489359607802062892255406550139358215504324919164694449327345483852980038419994336692412054610571427895807920687552457183159680275313306023278662126292603085155164030458154287222249936066609775813399908425098760528299173274564861936575189839247528489065962050889385143509895804211799885802514383826801660490125654060548228101026954467587022739842083533261264410543026039858977289942293492274014890171971237863589084590850802164806699578689122614189610619651019358276707530394120603669242412512731375769333806324439925184478541481315266158623105445711314389662246914092387554412024756907868737445761793600990793002025184965999659442301340371985006637553035825676660857692907181156372297762506444061963509767877248913241664727643862181702511654267274918060332865761646744866199752137603027162629381767196957338920123296396411737439036666527030656308147926202859086051203620398332317019883783242018286903951659153603085944911700199487547671712117330757430223820531705867141312109515955546016618354647380265562243091444726008903997317768503178754092541544193692555740492303724878890139114664622616955507832874959029318076746323501322328905685341123416946470811821560184177135798554515465405647613511993630645164412804934772125959727103274376950726847765552582516542198644217322734751638867940930439378141041919224035587278972903857497134926679840950648339372506233605356930494194179227098793971026416759054565264915612585230832159412780898976800850999420247737473098693121628107130678168500926613638493946837860084692105314679676183444019626507735453186062251085830883231491557717712587032195742454436287736924734614966034116643765765952977002055856478286986412708626809131790177886952329926823173292967869478334472600123078135462583488782519232654536114536248821718857111917338069030693230071972705132412029565518227804035535610069800650945869967544333321921786121565127329705041091262642122110355247122274295736098578283829998013585732945940644973992687298999401021615541479726948700201643208947547984599668247229216164190644269478999152370472421776067093890202770510664518739262441960266751170891746509455923382596787154236974643548073332549661246031829633815496165498140602778616189212162898138175455017603403119861221014503710634690730248902508628577045255143107254854764445099678256236149411034934569482218816262282567738236614890997388602782892059293867853635540914464055442177872341889634380735429831163250154880917689521821190513996890909614706241358077445621912344671790038416647916599850146344654938338742877632367441016984184736590815106486502905141941403135188681860517910509984832784013960142836950288641782214647517562796305424510854099884372301186099493815218080680519391392821061742729918884780870856079993424123833294416551597103290453954350878590590959853209740271984926907644214224121942319374490677972623204503695518592324972231150040811139966633567155376618861817234562895518565964304309636633075164642205406354375148053078279968796619180267706088161407940184934652422356475233678854185940440693650115723027752080798496631116651801479516608987882655458667867866832186292626945671848398266350394787147243292490171777673285106008740062527644363417192427285663761592229118329927010643144032390282965756437546741998493318917793381253301363527653706911190132251514069547655551750547601747832345022159509854599331974742636396055670878371070016613161922294571002183211242348048896001667936328886177761144124831174029098660103355840017520054167921205238396340476619914764496349551961139574421561194157941502332007869682652644393305127341436980249165872572694642990878822239463663925240808778733890690595547854535291119979554474833825824469480602176534103385818537348644657653774272524753881816926318502520720862704116128606374090672441179523787469625224897602249254174046850936342411761127952786229964849753971055017184080634835886139162414494371171695081151718268719461109471335614816159815418244766058379564734587911073798518039445387435662448534728019289749157036635235301414120520276032209553083741561366340564563186264293847941525519617474262534678530863261261631201313726021104421488803787990960465059542507124864270859433530558896673260293599708307801029155166921055453728447303015712430069544456109620819857145051042020462530887211572709877682830683422418059792535191557979052591187101611608573477034148507786210455336984015497516015863216314035209776047949002520952881888007799606628770636902773245322862901728997695065070461985572169273226131642990259612960956848763844873029796192115716409735101117170228515865549741487719495527660204274989269474151797341311746357277827186444954009690722062023817443449437182655446580165061239030348244752773950307372032301518662997631714380863063655690547270476717713508869047847764944759554661886939919874410246056708643905536839746640974768287778447275472652313674640703324656902999312308872229910017800506738035301978487533996264163072497847121680267756238176169337746647821032392292731936312637582737075351998838065751556325656764045238813903942550093140542617832180651230219981414913628027183776910727824894573061442367982943259993588577744486417909488299753268238498252686310798069001741343291845853916515372881491930887257781901175990601222352919477923459627270199045239999552891713727527029091676704967177225245298380279844718249604723303995584583642896264050599384311004421796299246674113390368187027407790424709536448797739472033991662216450283145966378287378416381980784231771407940035315462651536590630454523824320191845554538302241213222768972032571132679260521791671902512058219524450196466831623026218086468120460027583498656685116502018079502993384487583827737450700023262150357969607704196938723919177061806637954636997048727899291114635963161630665772615233952102878373101867405397005167772684937703290453508464878030276539017935516347572361576263585716279874593371375993000871289970378605800789856787210139082713061802710826191108840657063050895760907620747728751715215958737064128357789345100700371035713410760211391915233067274011828533304336065058268015379937357611837869570978180406851173503266089623071852970926462818624274804761975256587071419596877186164384201466723440277780290989050313497067280043061104059271333081438288800581189901118022998601450255470753142600275692143896578317388536935834527649441103414509790526127154542203940164554203885345179617999138159633353732856016816194833023655127546020043123338474926601633312229268554125448538571130507590577463672309536193668875081076058907781901203180861640809642489944646430735041641881999452873796282027391372065846319412556290466593260420246061831786132440052808267346229944367565718374441736119260718754010932842236001689740542374624170194895159989597995954078464047606063112278897812046688956528530670217097584125210596786060701459705436942654483667486531324775789200588906790316713603349706902949371432722099651067033243304022747716088357504455489725387667038794744671709229236234747600423927516964710434908977475568848968910706366494165699763109486572393128102182031143899919436357641369050635914250894203040792661589760896205839361782618940210718343697820415887612856026383045992957041239076619007815517814294959929489281947006482040207151026415048809814797145564607739848477965400913848827246308950035319534927697218661654177958760095877649184295359068465404531251265067912306295459618900521430198596587083342304710639677793176173815590695020378719671466998088435644831919266561346164905801079235896128329792000426976281750542257527584069064826502194669420003929759972899931693159292394842816289461913835525313375026207901289352601771073639475731561226349499630264492959102619652666490402958337537196391974591708418694518698329255814429858229914350646009315263914696357715919557798547767326078549191793690849547663798336155238202317699237431481363410306603531855002953568774391407273103075035510119228833437917024761999204193190769581946564000570511570120570658479334180792262167642245784841044797154815163664792257740824194412551587077798356534130638454063785480790675300265932858816038812577267838970395747652697416160176046702027952527782563563012350314193980573358906052951772541441125285232013162060030566947152414077889512664032109342900994821662219440646580042852019554650446494122684629002485293867189688949450364703499843530513287960496503097922480805424598524915645540927149688276141655252493500290308838644117970897160486288545764627507826989736564096416493494015765775217021841655129248142457054260958794577846969516521617918238422226616553278120434795949025816783768199691350253645734107091373128370986975226820893404589321745155934394799806050768598319051779767589156592340622305356338985618755458315994899090870146301938740338505286907689722162712348886630772890670279700452873088613138469243583866603734869812360964131809037289614089578173407263902336875033742210147411923367890062661969246235880238678591130460116064383922257106248686210842995866521452546975447356487239754260914902125857766041232178600371768002283372299418167361498565245677497506348823564956351806760025886491866646498872020707569640326277252384955160651648002673401573246730323561812687343623872253562336746987124084620609671741168163352978795304953065246555383758706787028044607086036493581167197655658535688025915534235013157722690392031705398663457910729906626023684403255710519776751790976013121937074761307304603938910074947244864983787181851821006578067609268042173322925143243293429073722341465377416050010883901161543154789936825349384142581654788305281002404381369514164518586064469978392146431557007370955847446659147841587630514117177294616874074512278739151731396783109190460283954129106394810644793824572940681259178505749697413023311438887048273448577829816255915535150151769138374019991539591002962500510860864009997952029678447281432419585231075630401965415369381628676331324584792902046028841985400384891332623057832588243419188518091007169652873387028405897459209462854742100321576806395709173633950273748916957260585658265608435210724029004507399390514335833799710581491277336042473359145879665341976297630613230637529180688887238730234547011182950282619670633389183522102501348601457679685965171609098078757526460940190952031405319691940724433634435426755622594466640402528904943906435778352205233437223130133813455374893843918542989236909066631035233250413065557303504004229962946392892557714472541559855510014421396237226666915003426592591515121962196640246076207809248572694725204929733778534983498913776003255697247636385310049784262102096664102490297036994828400302193567365967115481848952476458790821106806948475884800036742410005118617955979855291838273583043892928915509987067103594664894369007747488729685561361345541797328496263653788393458261332127939394313351565305396419902338760861040799437339804903340160329767208327177059964757917978491677044220975917138138380044549482504264711242437459307759181931687006424001452239997167032133503603329885279601375340236674599878940915906552883612612717206023567615947587919061173793631073805387754878011264795773288603968622668284779798542261075478866915029964856934122113225539915136106134993610273846414565366652036832679209244670364224568250742012014509230134107096836664721096817115155353392716731090633836329867219777753919381632432681882788890691403504591238386639541963687312894865027410661752648157226773459222639142162736934298781420961839580983010247542040194214758710567530093132226112464664613871766307964067466684771734668442345551056617352995510414346354767293825942064082609395420272620307654458862542008824008720024455717584958932258848840378650080133947073610931547208442141524305464514304188847477487071629301912158847732121494684534401161404065253406896508118461066055005800813277605206055221266444754023316902400560191448626966723479956085794043602385233765329184313699834062524792049356947714023495560176909837651058280859618762347283080309790635994706180045643894706302174352609590367380246012468700641974361887905233362374117761288967874290466136731065875764642902976261568298331491773026443641479434770097913722178599854526006580309868815971524082709804845248392334838825478118586539155283030863081673932190689107902153352774574051546864549319310457094524649850933181603837725839549107157502528090298249394744709705838752000162182863410792383861175078050754957832764191070877872749955900081500959702837976882596279932116332928980903766325369640254527823127719461013703274859172576749695977237391477451322616857851972644150371743637947858816359241412194232681798512351179363741420119687091340538780351391997963312551168177999796017429131761277066991240254092199625595931616664863180643465433004989278322409831740185157472664135271116922393365326565948244193364772050293548907907696989449913661464034025790193340027999656429873353342260760622087750715636321819251346683802464837505380112643490356082399394935314270791017666102552720404364678806733203717614630130277605741955492332042092388286037972148006043825588299352080309863830408148656732791015980934607437334685839137936159552228322360914663179015073367445124425187394535150003454589610555915106715500150441373456781954865118131505815742798813900017751163448625995388184056117032456892857341992573375889515047305196648629420777538092289957700006646352536277129579270011446265662894874325196106692412932268960409702094835152124542548378676693057917849826115106584741885917242154665858958902059574955080640947106550730686356149881017324824683935654739187033156426244474662670775659907916989885179774960920032204856735700304144498926582178385123901354263334177824860327161345163536726295786374014985384297469314955027202403501605174289048046225701426263685719357514370811970454976073095778110937358475727423612035072711983159847478501571794406443336291845979152253330641927738548778218849887766362074131675729102593745746073541211038303602236529995233500668558311029225847530022552258006430951808814046036984075997202299186191585323117006339193434116780007142861312861336862859483492841488664415568213739275593855749563819216864408100458214068785922051798131903789910035038266029881271844990405899075625882996185482089123489447625742539054154604517635200170001202248269199206538107774782456114156193088110651602196850208430781101273629810134058055220613162886491800222176848780386487293998584591022678570940345541595424577006396976683715701866405510417483187324552581406986402217271282624593552398942394485614762890248873114009325497248041644846355899547561629421230719715748795739632369458266507525245873158913581195483168038606979133220815796147106211059273011216341106960738530500808085294955204100785507894344248826070748640999005636679175215674865110829707964300328580729326137298349325368318647656028679320127152187689572114530266740853487567360961749303133905316186803353237950837856901941344588325247726469440455760216190303834237306516235141948196357946437459775362689344716489815015959989164116094569964315798794065412544796252684376515450958897257265210323338102900899142070858225610719248742208151994128125023404819724767438690806618166259553619855611463175061219840115641379634504064560330841113760844967165421817381238102571622652004698519289994672392129478349077716762498945485479086884496830349344999796386490467254815648251979939129347268559949090901629821115640106677467665878168538585315955232019191439762016476747614898580385915069727017251199059106265109323405808502091874817280874015672059838697034907399500248069754315481731336630691020503331669742565582958530045717611200177790065695182687698823412808668447441571558671478941636911362433875132367608855572704174279919670704668012821202730054515047584943404685293927207582735659393700040573755548935682067290178211953304573592819054510609800912754032836690238368940346838690503758930617555286706717088565759324535920451407265992274812245359317870207128735231571095934419772842181823595530098069210284072561753512020862928671587234856955535224602710297360822817459747246660722372193902682854917605122823913061740698011501265761790067172249273638818317199043584414169914328888045905491344361333812979050508195000249442742065236473102682789866212349542950346366799168453849918955657082864528037507140281670678932340315758703527567804878195772195048077126220560259794096513391583893275097116382137498304997599567051759721316830161093836987858012293015920921199879754896184106395706088103488078438249445351444208674260837447190548589381334760275576101642107911986336853792115327836846550314739932311072301493707065634710999563695541063530412348581267185514402613814308795479430460053733163366109351139268052247415691700908063951470691874304868727576573320623538208194670125664640264613607160969683300357524009088663722783412595115229415569971587688975034025806805908559139423262165657361077643866659317163806753139825925912179694078879428395926698619930198687794610026331593168141145371537202307710284970714661566758945099153756691415669896987244008701661871118648709655097396989089382864058127096770860987426565948095210400022571455059692613272967415785283229623701386700421267273018587491077815884181821085625032431750021730521656977922117858706016449778087018695499696155328222373648911347756834448814884685064457628851036138113075771808748607622152087227181524649746742103588433171898715481931884346160905397509983152412744344022272445481885780587394446605159270958016976327562880373699151117978152561905673397132131913460180623524866217772128892962012718970343811392387848704814681863368385322372263967528480693945372388655263725964185576427606093218764169394027706234073380694272436523410742635230334901575202605603520775364789783145519678154639807969562716422143084276332672949880126110026624323471356865149114582370318642114378781280154504303222270232440323515058876809955917633463505667385725594911931618949664225328522049608410389175914700437451161036216943271087975514717183114037637933823217465941717954556446947312915840983871774207321372956710358630354049506209687531359173816333211239351602070282018694810816969004382417724211183486860024258596104766427678111184033465699558818189322435686704030782118651679174985271482801557832973117128273626554975606697336771876249561422766987040178388515803661066205279873969302046110713563201039149348466387480848971085048546617818132183095752881150971769378917320786014022663264899010701705502624994923324336402883483414965501661576635879715471334994583120268829294263878181878541417354082577499639396241489492252257309903716129781611186545594192397656693395629717317435992716889632767148913056539789447613407394716924666818810295072127055730087307394003843411539769978856688031755262925282425127093106275060472538906696308140731751315504938156725186379394378861958951348894582574425329235154362018491932570719829256566570629125110907358182654378557101652305926451838722992510396848636612147104878244318051983707167434352832875549158586976187428649415316062398161941292919593633129200228703428966436280538566360754716213012137654830608295753164793880420636162925193897975150416982447180671003801729614052320452889372167564100711604962859189914068749319590893922934358705545803083108427363463692302913259914766308268853951015916761799328141430073054779671083927949959238479847502519125239668165635691969662957668586797523154054119154701590714523631056307558290673659474582421926380685659637150203258765479505403555151532602756222941217433745572432374935697236690886844732982854303093911454731830581162906945926807025599371755241466174967242148024537934232383468901580696242003735313793854957734954611699445361609589874107886796241758261071229806345126803798362897162862570515895357699977753737101948151229152561937083321239036577016065303968432046123147588167288915686237210388803248088953745663247335573346826297889201050641416020144770965178762100956280632898200065355306789161490454456887504032083550238303144650147335886899575185031704925202761770094461326277862337725175581472335311835987557433415496270685391772478660682236148439387858340759505209273599131176023504392993724093785548157835721313492216639532545909927176910628178888104577148015564701344630894136206318503516440890850380872543898219288772768759674416344200161056677761592895314859871338488832690856793370630282633437583104692483549053640762427779636893367185811600560110908343878065326581096357424535886123659465481625731048613022114727969767884401059536738312177595588088942494108780210987765640116942845553770607736317384890113988626335226007117083653644486737893079992861168572863204033465870659623739236191463667895808517605709038282605711535894335103534818487663223670642970418118174693172303515485866094979513370022941638490806273283815579680130841089552065120623204995189671509298968535522479857673736691799990337554427907405007333235474588395850523285174996683590935291986172007417027827854703869714443936868525813526542270516370312751352295541042847414002586676394955224861579027404395034706723801276121626575993482924638611505858076214306081652886927813487118174866649858629932374547367999834270806648763704104699344132076007172402935542554753085822987835788398031688387773364577584406698700252493080556988334875706870245567034999497563697327989138605913782897035838074343305694583962836371457846750148716916962976384256841403633375893831239384720624805728026089167272030302941559750841841681818133211112751534396116569561558516585283881584846947001672954300465896805329007015674437552228064863074512905552213670070866609589308559170333746817599513417667541345565778678282132340061227000120646773104328195395459323965612809521840456478225272698090860588690633152310663915089882486117083791472064823049202437263627899696513658444813537923498407121361163395449801398778385573756485950797893924819602630391700838595320868002147840933554339679720780815157466894992073497253217582158419269826760799835672017093820703873624665990460683405217229425704591301867794617498511265411282912809566613688344855599576557043791831483130150112972958808150983088241302164718750796078391996244133587503561822821763426979763330902706378410331427719796600049370735261521141658761402106156869133738560437707595680747002372729822695271854079106274351719441781555740638938955535550832894914198349895760092156365495062662126412455026642144346590841742518693537448594317727857478039990604396159598055052162232944902069930670737816807394133164370776299197124353055617676499765434780192889339692804719305608691637278844520791674615427687065284849431288105914250397948480535923958206835435965609434429576260872624202399029569366174141194039739179086756228200725283998025235872204648833403672192001866441340421141640079428520569969582279510892551135581359585606026601211591244771926541575492037805859015637351448279517984156049655416929377863570356700813242049788593188226256516618743918157621593049536803908240596999907900072115619424466226133464461704220996085345199105717262185085456221061970412130155328565164510958067935392307387158331598587514736926650668888226879382262321077653290578327329223086436221481421673593278545482074228730239252713093875993088099682010699174524481366540618704218170700028194761097055092032571579956014918534095048427235195672312207544032988790357023714724084437434138300124558568467651868249807394308981266919411079579406011722579821745112801535838785395283331758478953850854634796989683703829423144166520221772100821053426970134103328134533612496367557458282078775710390079804556534827428158018195984217710964053378481584989060921118153317602303442651878562475932968433971249247671391081686603006086076628464002984207755613879538594901118448571598432073185766081682706762183612335742242613534714062722189706069961706549072734428106460460097535835232410391557024382162490303055309850776520213316329566021262523974344538021705909137850202731929418497918837179351160278690774539984516379482104021746716717108101841655882024624856232601879623865523256056357393745846206196977391928518357580494203951531616018969387487260247064558494985984642397636495548901507292105216839827360416754969158320863401687281378724964645745596145825045923441116733605965322312887357941748119409308493792371523997703443726487880084945322968558993257436901433653531792802806892071916695066212986855648238663054294370903172685980554876481348719719058960287352355883327695661070743682820168328148008081053869012675887617650277705777961399028466539567376324092900009828392493330471368380579748691681203174610672342900119666896961959434231943431371756374299853833600699141153952860122222516002786834148761231015407925566192285004299716394002997899737549556041303028531748085848849231614000446860158885138955171122422724612797254545728180839020976368430852408474410606432915916544676876491055163509666330646838168503472954958279533947465375039127508821453426164011739366411639440443027364773021024619364473626670462484603102773546512811405528987929408277430893600922492264104725530576609785782320452564013845635699669814639559210445805217048278099677303393762809910186546405599931763066630930237562597673633705344908527072522359454293020969483576488865476993523252002122032004010142885116174464741765871735909335650309856871498522208038238994383605108095891654517067893402822737266285968655209985899766578314036605202968896884836816237061307251939248400892610397728385259612967076795037357473056887336416374919208304812324127786481044605589290131316630150320785576237343672344852179315663744810269105051122340535343706678248334566516599424938032380504254562535669875450546404199578547493690984569537334168193942350028314647989120630722621926265187076445486969832685135381340915407379940739211477738397466745599442135585290683958765754995398024318021975267384275170458087661577235738355794321153538220003584340571460898050873605818561938081768347320648767103035021355562196515178254038242351477130372755998725310303162416731124483264530322580977767772092285065596063879997498430509671745450069946168117777388101706899430155656271022314396138895176742623538802942520910303140114026758544187787924546610213777174417748559187527039831735732800819273389409886067729417821603554338158428668497429448383422885162524745570138711044759863865377073553014584563202769253187978182426597895258473638533184574791100633271467963912262952532491096754130125543063618084955840012543341717578370553337731506569145290849342955860960295390623227290604812959946033413133456640325752472764881265733156754937598504629161886354031581033484600304610567969059883051269226607061756567624993577998103882290184419902875624997108802235881100293820785135520118658610090434343748427411022954340522997419199829872590727074211277764796452865954397650888176211989670372285658471546405464268209552581479965966543304689819153566807134432492582851117388577502976210955330071223790737919618872781027790123388602046287288448716790158541319043335959189243237691019420030479413988986868204307035631675426006776783505073621942494776020708924629377847058111250220022744885892805610142074240756227017872361066189828998089178613465187828687922273129584436919635410505944374934046555538450037082428161640813127861998941218848754643388470357202687689856208255241768011523616908257834029148117429957956136387240849392328089675775183148311896710756870640360535391608763969028025620324271947274864416754991629524203980210679373670353628125678607866913479717104828786732520523102934709723510303939476917278070979463341583510602648081196811193478368209470866947112927883179718438229336197759155549569648296128352060282210880768502298511429029159561374559216781340373200734551667944183784784982681836222202900705370587223135795661041627592023629692181124794181022509098113456016509299504054054746401337492772761950690808435937515106417628499915911482340374787925998781892776682552398209867521431591063031707875662644988107387848936575626385535676802149501408103137406986562541825327606967915910931563815214929827403368133342563279585817510172722572028821972060916253322074609475276286614264649776164315136732275356861172227636927241578791917986005889085361872490167030783704875249521762563922152838843406497164155373406360846446931197429465992504763816696155646964708581799543527348829269468799102322702842407220797826274421938703563005579092920301427378502590792563903266172924020982992709763874378928080650137498226008338732462737687647166328998829770853993765824809640605235482298707136059391132417786952562668651959845960684702148877358647827402201168481160324792196743811452041032157756683464697653240746301128494196582533902777711470983379371124788529671334752962642919965997356560674205492923029736255276334543645990600422181959293924205074064062515964385042359772883307603424422449962053619337102307942621170896442466758856259806121407634023615509138180512203142474177706178481755082728290653214880525446703797767400000324814725518505299566585285890620682012187051451390970265160224323181477745095434038196523459916903175179841192032982193799606342897312797538425558979707184147511977288104010756869922087746749532566335804774750434355009514847727639985247260710736208311782344157226802902364739026378771380536888475675766541330565324739114183595177940880178784803296811470817883244011589033202641144441791858565266759171798977804258654257648212613402863059295433948514062265553520565199181460176532052513935490170920510346740180042912164912019359644760173426155862494084789212492023974239691314345083608434647294535692294423070767756097938012137271748243823426711599827519868146612344326678634842387613730788397467366814060674722182993088555161838141899018952869421165216303785623735328691640595685257879972543209060726552001625510826079195023980809618288728700339170673412544318943425927634343912648668563316057998553844908093032523621687088358305161712986426162151703432706851747394926301196130080691641034331809784923941521464017484194893881994082555083527588321827035765022446415412361279698791106566893739347278616226510786759758789321295970128209180419882233839969190870037457604146231297435228893431820303478119374129620595837897498998378027429006968073188168091650143752129209546523726269247096124651082060694046513287443956766910198917387359276866279247087410884074716890463970633614725002545365913834031754730371612036965288694252354464655375229822983274835532924893649518858150588960824905723796615313454881637779431930220525725280323951403655753813380713714467499022612510218272488060939324415864824818361303679881388350317464102031120945754367065629383062679360540808510233088633197920057986178448779458786563047542136311618527355743054740806938517166527515028493811667422688996740541758314244399408405233579257177826864651606827564350434321676627914560520971409022276982033544032861401686943251200897039639033839325948424794831968395661897949469987543499324720682228189232528236740330829031509623330214880717224666069147317353773149609009147971408507740382673228042580058660616317525263269415979046837080171676844890843911644682352865656928273181247072081325045353942411946920056280634817291154314876065676850389569787855017996895240078814941957526117662039734413970745851367621028407816472944631614099353319636365168317356083469017483923412344978065662912477130638259478644410050569594368492539847800791841583410036638656402765656184665765248590207424437058260858059503446582442435862923343225240265392852740553710582923378537407173628164946292707939621026667884565599279895540460501922624349446969501920587275330196725757318297942420214124043759778738989101611277386444647223537016510540695875110515359422835558997447698474731964041202533450707364691253302798432469974985863038079745109854722078688721111274309092752385457487680659953563791415041097257075294096485252184805669651167463756126414837911030342970798451847316089052148165379920547234721693550387129029036029833670397025037468701135900296845655290613545497719486411446359095508614359870507302832467014572458240275448099618529573558575512482774891973904959245195155587056282275986953307704294116948240624111119633711927332156061155884849475609791659039729206398446511858327650453761877400574664559452963409035485297051732905703438950971890758021266146142472542954256435332848499069049230463245002744976431684913758691823182156592241355075420604627724549322707208493039111120286955365865866976801952381999429981920198036996021886613305428702964783492500372507825741638347254221474115033590096489721790380306509070491655654584567221901233320617331946828479729361686336048203194545153612726980636550757717399597646879257399910407265519598834942343184483011419409182278633933165326146506178959833042930141409305717797570420536132113788571230519646351614938402642384996972015090738556183780335300391552048364911323561978798368245578901268015731887813909761117907192078751545818073997684536910931442259479514109876185735805105042885135115222971641843008297312033363684552321974026827099789551800876129575222444362887341391872869477042121197515892020728935093088820175765883756879062375052283385365315357035233639097928471435543652747757112393342865742592155816375241519116685472104187124466080383486964095833221707680695279052604191605274020634982516149251740799373528799388283591836623832843178803218374576106849017175720693315713673113971650456026413209696332559508904543877188629978602212785030704175652154540174003753649433207729082688542233551536294082527472532406341582651439793436660992520759584284394542773772279011129379374698286430134605058804626959764792573360966794988132250684673657983110664454514883024470059220544685728541678287270463777395623301240031350944138580721251807515956562154915765399649358300849299159937890238309548848741176752458264629558803137726573576831718566042279158844408577125791056646212593327796078998228494223675319580430449072240809949082394434567540502338833998652603912108762361843681397448767771833243866862644504482735514141971493722493101109561093338518457551841270067470696815907167726423939577363905590747476566984488682128631579651259065232568642507670663810874542650425761385841171039497767918543423068455591093939056535073089962172005013885226181538250746160676364582174732437108626779347922009753033316036903927839563424577738971971843358029810542007181183246025631724851107869653296862663995162911370886011811103710348238532869681958171572887043652002837177857551181673286439980667241094916884699052729338240027100002856229309166311692269057450648977880993682154609841584742638907024009399545293122925099467751742077599406781900216639416595637904624938700004395924406249377105607274058156287945119163667910467449240144058251410023728353184314197600219629068417791406488471805944533884885895258272998738575021089968504079421184320599818844363191848769708510435378407082434814922656209256380475889481639110991646474423510543054310055313312051212834065323152354446672080378312076746874711347646657659820828524489458936991426336900100824689683961465737541001546237641540023719441414337662452422890032868228819461802992519419103318826267272054457503483019640040514379817740105092021928994367802373172902815047416012912098391755473884725157101946988221853006854780357609522634562056686069548760873582204508520577119432903741810911554968939787347321474212137380979932862154411100953879951523687735339194019401768447637535746139363815597782022859601373171368206572582399710614436844127479279791875441379065867700197204840434925826021796097117822781461589756782732564196044208209322186166518589389680748008150694746899329403664595443415461777092036012800656336592324619467749702614941275979392439280588213350822659720369186928448479382735924187360327894876379492469369030399386668698414877671386422531214966840217885313149175112969529193096131356428647077575266284176638972455556996296000600790115917303694379005002641913400552015620466809020879619387412785305457871574421398758469673281598394792851250658315504904151415628018604001229144512165115880965221843671579760135228127692599348609492270012729251992495277200158492945174678494824965346931099448618065303440467109594553389010516056281177771947382145338105207778939659897856683634087723926457939641558421176785614302605655501205013314278320624670007952366828189942213690748376404577728424394726561456040059117151476565087096102498697644304498218245488437016360123562806244979088939318015571730795180733105970627482898711739581792756092909167172642526607222867458467792880697265988191922167609908637175861356917937654125627368102686657094538252027784591950283909337386827488683565816814942006813681049215602432089776152020790380608995615449451351608187747966092742729944119872464015660453580679702648758385511946261895253838516761593443293810261826164219312816493555117647786277465915425446303008845315466381195141886840058849303322381348554228931612725645024964132713247342881886943793886314130348661966290615183082018134891228160452970567265390676111422347916615839854029717099179834627323316959729702904466913232684800279063164549173096856809375071402152738109155438707747223698639299978700916108331717447408187755596621037655831094175168555071392294314074711781054020593203472972184808443078057014018802436034750253889972109340272765473909775228234749648859693206025825823087575520995421152713779079096757791022647116092886692420729061360904246639019978770052254605644043940257806870894548715804722943619907575094147099270735754257888417799344232701706675877918728419147684132295983506206924473556747976021242329340115285963304038869586013706444552219821273936305050470090341798511130462753059392496202871601573278412054374589337011281467262127433324820910235959384724739138646334539959121149328436947555103387900498159506639723694261331325160841002246592214147090463819617670086937580314339566164195234488998408144123419690062322940765340583744639604546783548943103233821398721591721372785261623938613629549884915917606129860531960402170826883406426180705666464350556095100744115018226102725222815799006225061449110948425033915685458051173675252929676696351321892666448878670202340453844713003891242398581252999423486140480180500003632442103251269678197018271119365556010622621789345397698423987875914281704607107909263131778553989826121864380113252481374531629778816926924895829543787162395973855600943993571481993982145530350036412870596114399162073854543051198505931837019595578725156470475223946269723312015737693202537547104206517281030009048256371320954678260795251716222448738999797595287069028656364118865123074293930639771194271534320793677235662514734770001512522657965670413454068614174669234722204481453993256458244902300928737839242254423617125468793398942315030580957756016376246376063093718619763602154347528101071500268802499719708178800241099844726988123087457219975732802212536148734723451540077779515351928152335109881262613953777766687704290594997107514791770161196025132634899623298515678096486532354018637720837605935328895318568394020231564485964510706887215059895222937004072839671526595608336697308238853044091582718373720997066209764174804104478038106234110516072561110382240936201810356921170460641028914725200689723104762666555935618622567804337045140058866867651413171066222114275192798006436352961014271533501911332616692465356809607746585389052882229188462788736857474763571694263813053788776799422085397228599880327372133378430319347317003072283328220245941769722212227448195537571756268764590170971017678747527175521624240707782098806000305861004203170369383872884007892996630046024847012870609657570895641098424494291719866859824105149540973755094573168823616238877079238149367303773855087631869933688283952666804089936611628902185954271723059628326629747033856866134800774773617293918832892070142169693485398362731805147529309872984284898062891285187691193044954761326598692132755935746894253677387509277463318774972025094104256412617990056653496490165667733766777274374255040696750708586084760879066288608554202451474488304839432430231453381221209925958502298318548135958530963600722375266765509007563187667193237942996391433151444901322340470033167860301893364265430114689034494690289410537706627187099394515600863189004953456995347587062331203782075107278383937829203138607532314051138053539068045166587412759686807957864582845553944016992734058738602153713859041454478176521406967142139108426110165350461417449131327262412677766598323803955345557400218890026266121068595497446089854152118022415015781884291164725630007871925538943595699886669989507922402725130398425261969196358953508992363519787499713491032785257113454128350550178907052303346782563413470483707309411311034043334634773321711643696567551659207749628272212790276319176141102484612850264495412563222063687780986640678191302631337327204515946168812868984080385476232342897543222994621134708214322384395731215326714262632083154209241042644507411960895858735294205757769338602469980330554355758448181910991473186678328828357761461893509054059895542652241867568286399808396049577373772004218625160794919656250993212027373745622841725829425520876852291370905139997409312708811751499661942051932356110861611759635096665090951464922316831135147169226209380874521549754924956253910783532526788775826336498076851258688138210101092352503446036491645869026034155229991111935874187253623446886957398172267956503166909801532365252049755552899628317929883191843914329104558795485600553049066784065104771592567760969552362095641838843752293726963320498599481640394450735506093181608919823912490799109241769364512130604936095292071554893281002953368487683813108809979502906234343996396397701568485441796605183543967302711639537866381308093765567007020391236934860785347914922211706999380117611997609016252256229646391663442146718181569675823446294598170963501004267624445030316005416643454406934346687077486433228192682318137599909720981390766660729535567790246331544199090575023945834279369749533204520054535976395195045100198619725004983063689741418061775413428884197128011510178358448387865857010074021857877561856505611244835122651069186056981255177780833336292602003714313699488139326903059969518643977399231560472101257439166697695096773822451248086141173323110442647060595701926021096321000114522481660128530167094729297066827131350859967641853836939278018518161435820881842966457802833633698670244395771455139301797871039185716121149102069626972966289133997326894191711169573008385731357767484958233148834681606998633214740347148554035479632516747716491666064891687599354585938594306677035366066583630169719201328425380540825003996204986741428680955545359492152072325669931940525189181425705255356133442717538721718917322265559175882772696701646557918832117731086939725829760374829343139653268563558270938507300802323197904096900211679867002715724407629595196377697939329639352990068673200402321172304491563878481791354946540621453399593916623618517657037752055571799761112676676036102500052155373524931902218813918503792942735881499124290604745839623912774874746519516158317762097451592268335870386733164738991647403182136342367282340672318851110056471781094517096180694559942621581250755991287153397474462143693729749982606844391290069702311038082854610878124470989564685501134577136120110356164694739141595408476922007469749966719106756498509751547372992583011984410231963465031308158705889579635364172508531891082888333679623789531607037628427303476315295744673890572980506396526744215382319738571538525675297803888408864533702186681605601578874271184111196500570022802932717595881051929454194023003468952573989858130871141917908652206349722376453932137827282058498775166060298220980781247612328069099681804853511246581092043064325629638832591771705185562021033345143892450713530328266806637311136921470810489387775377991905592336582473058766929948289046580055632590465754899483452653539666230070670191873385106029078276146609805824560438819070410472897998511964071265459883652635510862442401797084712587189004393267553441044581611927005378582728188425129160342530953042486399665480799872880599895610376368342424046607629617146929324576792315760958897859145116071246191100473465520826965639813465786866089099312395325259978205522592047884355609007715050314032275743207644917814107431843261406752316190672859976347534348753894753563537802742510331538321141284374267501004295369691776231274601759434676138247567272694477699489705474508861799767121767114748715456419709566619219691626043915277860973862437129333261852088001002721381831254077558949251731844235394966328678988261737573607472123899553506867082563113735501286183178709144408410450355792993793798540983983891270478630945664446293285161791523612592213396893841069143199122252764097492680411914798516511836528409052580555663668346542825123236138038329512964568747248116785038096908995584409027469764812383736416888186279193018535421525616099107371202083311046070936294838898092866113730630636831490793163472958421054585327439801271045876550562587328128271625345920513626988848017724165152476956162346057278165732916974448946342500273694344787561516750558886282525786685349150731630833887570824022852324397280564214262979456982076463334131211807271517995484832096004333896249663935423605815509160213344866906746012838760984993850892918117266451448307923918152169606618218621049038964117846670216676358591026875311617416110160231270414387892906810913834455185900307905735184934060579140779498652229580695814751742307661388932266240683475057793128049104304030266980313355568714807456080703567527221858068463869716707484119841383749968538974845804454284911679150233415934683443686998094932470619328854002641177714677319367727808631591216996786407087282091605864720449187574861099907529981401269401718352324512100386511268419426442455478075850522922717092531514249198908218891039108042778600746692334321792354803327007431549861411106001345628341362073154159780511338232552022573784432411644103577391139913071158100800910093814537130161631551580814017760023956704239449704489979072647712634999674505954738808617693760451412866358195990033954126340604267352012867097411238001811036735405066067756596020660899301491802475756294575730730894528389642573783189752570541747402969317023162942495683896652458934750287061260216687925287278459662650253553193536958861327539444012137596447427892240770421417970189191189074089521779114807699626332883539761180664082286902496347603558435604435573944719740151469533355230702562872578604670686788723775987900968933165167566918056845008413146002567270406085657954283171855331969831714241558634645122650964320997164953590996013406394449793260229595198970911038981588701416351313531876096965288931261259623748217145940727202674851181261106810352520722920231062154490719206809034100255735868543958756707584492578439911515945455119736599922570350283148576083142816188493541007643960801049160723270121505994127548645221563257423793597531369637980828275913409878286364904960309132462146506061561895928563764390740733747226760917273723278836482664155750066829193005884235588624810111831457974587780140312311582726149573592548738139416659382015125924203187752788182145565579295325452328657488998120030132037340347417039320962057575383169863044061322226220526694266941978411114644876187479710944497623693289031133064605959938640894243409579953406683581449459726215962143809855313263830283502493572772462811589630473743379346330382622635506027991584844068469933055967271428306528327054774595292685310592974935160284367340930014613114107208520956182863555501092171185845603351502731883482060597244617079365018762765151908804553936252394351706024822142966728991683493048736375985578206203093160281319687011184588173429085742185384495809095451879278102034367887626060718339135594595889687024817075826807591213721895398164252476646662109692984641075651573193533469465179011975385588482568333697026142939081231607247865962518990767905846614662864311601957279411545949196918837341722002430335677696331190701400143053771424954147275315737197511689535136044643569812972046257197683503767302692551495109182763875043975627348650489213012330401226729271610111733239887577811825246160857202226701317338845703456977532311602484482018023328603891430095964929711700951774182189941793464489340289927253809876098647148137642143219426163699930591782497344455716304062719371190465638963533304315836223237846814433010160000167067290307139621311408204636919088021059354505591378464066858597045745027024432814511878590508672631401664467776924824990646838782991999481448086060313670087167001414060515460215673059431931339170193237406882210019248537267372325900623899664189811036198615308439647562891608809720078135047706621399618294867855006018180165729189921012728501719571172810184125775461135596836985025293121875649155210625817554986001691850796061633278513405508720269535092852502362178516097150919150401414575164948588816034270079554815892386322689166949715970480274893573378096719174895074842468962994599444569017628043517565835136841359353722809615889329579629479082663130556010693271939102007852916940820998014570260121731320284585301156226469352020195311509045579376200293974630302900365094071303718188602943145243191380490531801744365882939608130479418279992606002397788341186777160603799489542056742483446883877420396460835436206654535475676895940069470682914190710558463543570621948911692389250426025734467770013676508629124481409517867881273355055248916220127833702479073148448458960718073447367201360805613520717837736288297362276045338679641447007951432212347950071035662287280274833341743927569050925408170636478444167726428771820883395776373290532048740651825003920575331534454990833420017387929904040905181989290777291100735455424711205619623166340321385629045758390777878029512048762889786713163452715499233963081374438316985762049470376217311737391364419835262105363250122698029577177841916849358859908823877864109169772796005593022048529898550550962559860115939935262230341719824576317690615486996743604656035107390265864387023312378352952832846583051232790433320515073722461656975983389934716966899862597060988213667380698198170560176277685742975043823728806610436719846516468556550399295248225691115989838513472624754758886972188998587132367535029882089333938693822076032060740858069591463905045845459657521033839100921786303163432045101461746218209948105958956856412781141764816303747114314581325115404527542145825052887449479113873631341286170142708304124252870566453570460854677422966443963399205316874578467875154801814732161212483774796487446544759439690484708564744517622338429362350140317624252044737687114479309199551430211611791546801382459644420949352543436173631151966289721780255179773274658031812326843047799400434464725325871672778795949277682176905713980539075333283756523661975011108081642160880011397353592725360903103317017956567399997263363019629666155481210027839407770099944422641701563135147359929737384702418412062028866134325514688583426683442645776197913008842028791565711948733768012853406753848886657027616396589639074894751594740194792535242244132311395370174680530176032934058005070904610562750343795661992693439623797520803845395426933957718925670152831182871610215498505398608358786114667368803850864546819509351366122921282278912222994062243576514970008929821701767459870287842336728964740316590375601482107035627315900896655584838285297236276371784847355723244368872785670371107124616660011487558533422295934111332804517362570574922525314808887780913989822513947838265022781461000904955968554252043014638617082589712045044034243286696425033554789988637092355323870586910007638618116425362179107952012304261342599730517499356703750933892982448523803272156979450053745951139889704385585212417973614257964105173971504949270754419542975713947208499410586513154697415729910981329941413266190053502668640588143575771285025027862676357355431022256733449568358870837509613581046338444552349220133964397915847279379262915057030380588664737293996765886582971403175992489206271721809324519201977848695787649923947982971208219921206211811362814684626864451447087877290168267804687482601813635749239073397624444350935266182866571657202494003583677614362739250064821795536649016383448168970765579753784148069784614098229464549702800424079057427782849379772664874561760870786451552605246553077665933465505143834344387366742949561326991991803314797414683363208718016441508752040120779094771270945460855745571145904718125580658733195636132096720935336362249064117160900616626285271081628616078744670991136247354402072738781239551301989746945444789176721092525344368262981421407370802764407296597975973190767799127396816319112727952921029779979217096377171876917006478727482222231794129323439548097272287612352126698033539101810124793719036587149483381542300228581899515130827255933729967620810425174804133433289807477893076853822586253609245222840924248324856364475557424944874839776394263826406459156553267917914512771123782537557940263054307681352908201952926445635757153399535004555579173017941407156823148230248123063737121570665886849679337873478525160339542255562174329211579411456998189782914705141061383497147323415565407934858692931629073515247296419209020291501862685644652054292441195401701929057901702763231071704965344970544037176736665671744581367650264211869517341356675767318432595952297521934709790569379418698013970307260615652600299394669869314988773414566325305466913737234955272313212163778467422970513261190181855524205563373753567844987129048863999405492093346560508919247686563339776759159720096921377581038949347020734770999220358386640545352763104909067710636970708813244333072789724364009063301250349240301669224433793637270844890780032333292906370558056594202961732457219576884089191587615695005431706053422672659930403382751383056691649460008393279976616411852604912541314428950996485931259630346849057683160149099707042322890542302230233771583773755231274574278733468248085844410499513007329709588101704130115324850962557568460535615237387401149599908980497362609103059856049284535441986044916112249315389516806064228971343209203881218443190451734213954629037251467556802628178787598589441462477529943880130303536780264789178839173174175136559508184618715708092705733352874825931340113983783819838776925414435833118688340516409172768842096344527489242576001187401580601490498410188722162839059987604031575498817517330288228694892583342068734579115709144860750262033672988112778837306995417691554073790557079116371340494728405587940605197555249745070445594351302073857838956813326547665277663343404000634336590698524988964493213503500813430640795327364632102990165276189809006257807126792014430844343454416925398927316235902687686650317915653900118969939426652203764987365706753718500827069146678363075628317146186008737462798317720252166753764087092738511179930975905030837549982617913132677114754932146262002285202683238529940427860340161158855740070717492699570273547680728986069482467566070904139425157077563555564530650336513941267365612987535498364151205865286619171096977725128689003712616228800081645342250964045604030229714298127605858947489268493888637911093866565030433689118265831625015336064845641211006992358178773373913757395975172491204279813748066577746578017888940358049108450194326317715385625789309134834719817558547840978361781192155698886349896618150794711882923949255373499626703727461230737234133690713212849150643432717509743808684166287695007975686710661775013959665996483308703765849577684305414189844447299296854774939974611327565918316566982413463762946614673088347968726445278171881378516893876969045885883529351684037679916089839836542668861717692839410791277863159786797211909340692919357605481476318446685385105303675998830761152103451623869489257351927920536470758802357264724950780755180938811686657944314158233626876622734167350557256733132824736622307852301897755353346629718848864594612851955446190564928282993188942265116447131049170949229007951473108742512506712413827535342130428086875787523433416654767498826644485297768052424345275592301199818155139483262145423499405531114132278708571751951343681798501076355054184735603565621661714854875800329843569728176841661844344315064454730535154247103497860613147641944827314344575270371615703185051528861935486964743291266906129970192100773325283334049105206455413325330359826503040041874679188765981730010647440928266027046158923459246678867024832604155714237202921238119809250768716589837938370117637611103754044449468339605692635323258915415698672429799876296450257573019518628831081480696851027028950991747698007591752052233847601982920148188957917228292742768348159528034789805531000685584580542976513422813124652378289894531687800548059658091712456535016738995489974489104416520475470640654960736005742242264712906245999340078345005684130257998844004755077745596110401797876019499689860420513920924709144995489370942579529384211510114346195288782956182976025054894276156646553968448941098225798764395147786761347866317979387942738981272533167145834013440296064603578867219920227145443630365775504932302761403366243541547312009354955412568582097373171693434992729457561736189046978771661961843796035117356557814306786497646228517973534364468536534493058205939344580075580397091817612759387403869019320411944669797827235327278248135433679708679817277268081377358952306046210003106618716677870289617050634612517689258892635168888241642460168092905907120691105280058210824039328896457544427543650251347952690637416263967096774294671265431470608884399015538268943822070921818596003203977153681966071694555922317655346869210153335749068899706052883093265945119912255230574451644003886045375082951757273826569480919020480141263233137840166621395172394929823354447383020192907396962414723216896976627832687872564036413979891363357993660896986972973985491017610765320311538314618850794162878072224630058999931850819922185381859978553822436670152273591334661367772851669872442730091873406559405747145274213006017590559736784018629578737737649664595159110796712042645521078523511855097166062248807200842195247948709669993455161461737331960392824786883228823932352355435269688494421817095931487007948544159357641558759159259836977277531071762356929521392552581266572868100899093167092719337317898106726811813937677486934096343234829668639785407846812944809026068747910188351165792970633493318122726711345878499985207095883416623184773062783330919111415669951180401752853659503830466484753984489913166640892777134081930288368076522879779866145270920691839371032460637046118522450247049109220464167165825897229637246218430777267073090302490658037513958686356099188844553937892866494289666656598717874933789621362655769649583259493179375370688867424067001502976084913764273102558849323104598591276886125489685916105463122800162664527790964151371776934320675029619680303974109343145731725178807705471497022202634109009091448157895998913304772650046110951181787148708156273628489825818297784523520701624921569454645365308693874350405466341224104872098855066019214917142962918289729641825262767267408622417082371130928708473678840251813868325854216078793372122918125668923488464912552100880237766404451619266534677603485441167660104638999265129862305617314537040413046416635969552801136263043704907537354022717621775872886055403955525024124199592814502710676512181244173270258348350771848427047119138167730061812272829312017580967700276904864498591548664703631729889176409722082787581910629523476068875107882153563323253179658926911539753458682777035254180059892977865374741483968719247120556814231433121378505861808953277728328532061509706326471774482311652985850836865687665687227381225501195211329986573905077121641315250321698833535238297325587323763704627197679201971163669463283390666511402763104412218431667264798270071552530683232711146027086843430031540319461223000244688856394019380869368009958822197709772838329176287295048039288875749910877478334158918876367478306692077132849809300517333470760147844609244813051335105865450238035016068715555581074510034735574176653580968908529697429697567086385254710577869145644392044732036263491778398170538720804415736084056151999293535251911329787573392613241438999285493694330488693521815131212562995127968396527577602751081162347835055419653419719708902766408028943657926205101825361312430229934324232381176353487266111535455554567340983878361638259476437204367886602684713005024122848091353729908578155943131940775325385048584746497961604504999931453498517780158793139008823225166041529426419527119594253570185365739495674922664045227302824738654772490240999559125793048116674727407057909587792575229216489701134794475488013778646679873293915165801396495155485187178900526239167192438198296393327334939053590028747545416182324426433537024229307419622085012262133726413673240077787495167551956759356462914871283712970658386566927758730101397912675579795796247994585486344340077736523065698876793962889890594169511198910868596700972301561951431670347400990571088182186980261970820340770539030043663201810212590477244838071302111852917115236449725704061370577929973573201461019852790685731990510800259920468363086100475715051164382242702167251762744243790560408498047635047017916678818954181901038669681736613840891859638831304018751981640166105768331164253138347684712759829440941527123813538798925086672094545354299894747322434989228732690703590087697901338399252640429828817491251061246328730108312432217110547486228752255199451394409487452738241839298004868622677130760195771277048080660252688437239007284823899580563566185445535550859036406835042858389925251007945311823785912994860122908701714478363290543924446477451924320231719370411869177693194991000485541679512738468378047845480233270158720881464266959097548539624643242523229223320013812424594452221226227792710912025117445626927127253485105918995721944368538530221188669374445262037507721092223714906363462673290071267910385789276183686265622502381000484864903403716060523722371648871433290708791639053725460966645281891439683716480027436687408992384181273001714730415935526947292048412283937571340757638656663314639115782637563722856957252999140040606117468165981825044455366052857041293456769918466307623856042124414489177432930960104845877746712939971733122926661604713945591552940491895062100744605126929138850727069616308932009867435297959370132256390508805281764540510193943477956217928126365562258951788593880743985739853148850033912547811838921014280140201836108411163921825464009245734940462102563838704416635033835308129768622701477161934507153743234172035643000232006793197874904449990961462934535745105435048935105309834747691994629447491690184719133384142638501751566573182757557392503803145149844926804388192887252495226450875290167905098612713322743999007100191183405974101479816977809405108343473358775052843952567432968264952827767039903455368845777672614142927716189090679687992710905818709279627578968261690954198740641350684659714895885212332375342680086780226394378480205038044629531998734698786849726140908873068249845987248619632451486352826801088252895009644642559751492543028156096861447549639159648764891970677401282307341315062257366429192243875238745961669127332550278594513292054869041176571939888459262893305699036302709786222168127020415425347975794889705179445288533592180635586409026974069544131294533365136087936913279658252631076242518619766775375632332104769584095052719319834575641461243012483773458408491233306494438150147553136905528971943259529306019171215636449941813684308462362632750063131066121168917621974242832089064896588658379309495000428215039585317935335009256351981738333327371484926259829989907474025010456949254059684599295942314980038853362366164975251636589222523770188896893820809175051940766317505107508779635283811863730282522397775313950678685684400957444441116840673918877117471207504884726261151342315844085428157588267290258785590000443914158472932040724022378713595613968554197384379287399582226813319769975844584701758769427420017905808946623895346242021053580543842851028564994359752493151121106208369817850432123305100491008093954375367167463692123098049141922492104921982352428849550129136670932133014102301105871545621149726491904915666247165728795130056138385221356688120747851210359055894343025456570989656244249365886229606557233591977291304530609697068775499258550806480709447905964380282191238060452439153007484415147075130561567694297688544515788980169247207503164150581373206448414135971602640968719287222677864568211366360624392760464590580446452902763964990151174487951601126658171385083373592914659855073001522912055585230936183628790827918162268433574750769628725960019590586271878456455259980504755586149365030785844090659989881745915606482724356332258191779053677585456815836656968795257963275827771365134966441280230099566325451260095201038478661220982070515253963997870341615441138289474736233716817358878533306705772238037010285678190902103342403182857444281857098952104088996480768072749639178829198376226862338572615950334451105484919153343633591640684964135822980029590603653746922987154500487840162314246395154479696052447658069181940291649947230176785364820836800761710575589296375523356385741300202392114966785337045428969555840069930473264688354776011144193355434369414796890404061236323513455541601522441958530115500011281364575525010390162672353234316193151264059145667318249830759008113764381210852524113466947386713634077745982098083077961201026247185009633082109193566562230031999470044670902638709236992776026806740788486144342822342853403826156080093452830454180070812346647895014979740497282862634038422657626026518828504858760624754424663871971708272734642652874646025344554459275200090747939618500914342886703670751643771941954035164690520615904508817475391440149814967326905648160502215051187352558348032917371850275168708838175493570699720949593460351857866507672969193709800964289382458660590356420982094930665591664324127742934009788617239486172522384012915197281649799352830278333165989798805633040050541293821412212624953430896775229172030290385210816355140917575679995734649106856488251630824047743402627168660144412774885339054957347009730478775456016134239115544441060290007112996715759651967331444274609574100762810048483328284996020433777945476082969315290937471629135067674388725774279219152675629436851001842071706728120300451155899677438100001522116052174252023706737792699654282342168943759316864948481125310118476941996940933173694337911398337068338008819345050296515378164487704177403205750827369175283524260637095907424744641184677088437071460687074210551898677023154038703424155472718348139363392286488542777979187600676407840600797215478557490494364514734931891488212398104694237098066998333605731775707813047149247569348502796159465050843220986843943200151618165034383851471657850678418912702453083335705991142917356618752318338571551147864942634194954826055156146968150003718014883340775788370144205729188702797658729300436593019357438914144555109954449008058920991458005366009160820247193465705453267434675778523436495247898039098204102924334614110566242463318175490350741643812863616035623349838622160345780876329111002429170152150074855177075215460725802897474903102965551825679559908907061162889644997584589500266361740165270502987132380275932480283461769560837179956540009202715506130458466791107874726697282578857291657691483759359242165044796063017850705664639016714432216122440110371735145033487609436811279209751023982019104542404758609072059050351387102845134003488936643712772902910421360161606367258763834489793704374517237483409088100520321178561334017060211420649641970310596417302871040489861541330426463057052607492124474979444352723753714739063220769025060808010382371451585851764174847495187024961910513493552553981700678266452448134336536462919294072360820258453184786138967480471928675748836754074348573014548241057044946769906504932054332806147077759930626504948063897054802189573125745988278951883025280264125547465681460027380678180830149972494534444703952007658338447599330425730970762956370230164255259263756437209225243365235148360215140369383688417227259032289017541186509457384594631395129311608533146348962667500476168983132278210725997802296699432081484045662056736240830403637376302461466111134190345221552027981331891860967990321481515821918550518483981063479902528481265574933312388298029911921919635066469249568405924545833135221507480486415230359862052545480085177511074853389177716221116968925396826776322972957698300072555495124888336443866215867509516449431515587742457465928299687412402005904623242243498920865887139398414666579972944196580651198012200603270142872551045551441824214871234951278263575481799836054136531620973481240660679524750284171644907763060917434954115756055559139907586142555896732601103951449166133603431458095287429593150777302140378599432375900642865659434452848300597957884712518170315051398865510155475235665892394481336751846085680304939020969616615881083615733725145133293347664746471623677537723226387196585112142372218461635332635855989199952686139894496197476277537078547718315847679980778294431034647172691781595018105812604560025099169072983802938923991943410926126561128785914241174418106277766959861848765344261749864615655068717604005878465631731177706979805229863651702680239355596324912934656985214470735128293349130954957802517891058465921230433282838380024320971630935115397954171883847824283412481677331439155974052392742625623629706242311375407148674663397145005104513178383962175063427084886502353793377172568795748527208562851991506190145103541742058828537554641910473411947075036263798382166699171501625047525191287323364120707056321297328817329221793303193430863230010478025138233228319067335303495372077041823853855366912146588216270447329511553673076383871177210397508956421112518661194639496052061676329132851622363145071194111816279099057103349412833783706739250456247280001182675277656777850840652796891021151736777693476819851989629392412616393476635189737092312629064705341268795385958344547931563961389575796130649065061353874388246039830954384633948778773750339193128050468576483730621713655552589775153573858463226603095345538588387344628465043243507957092146926116574693196415256305371439061977361804610190781026593842180243440124263296794473857787456465112497338069508982720175028661344754696603858672310348410498238198109595089275072966732831329975299933174684821958086275809490587520701262584150577404980391901173754623430242236175989346664638584499359043836739637858675432880042697185448805598437344497308646841597535348516511582838052145925327311588192186002572799207878318817051465961433456429541339136241853082590304026475865042408017171454294910727463189136898474556235520238236693471588958396327857139986600272726044953868213174500679335135425011725196212520565545531615620418875443803713574279555567565999140854511022203075162200850635182437273512881749048301142376980319435320042794434890598555777974195405749352783520407799931543484212809958932434684331967359692164532014185603479781369914483165318644814530662681959782650578055612213281794522256659310770957910228423655764826386458214196667318402101193669696328566400113611853883226632758371230589834745729735907636981234060526849836037104466936670982453625038821812173248213342319529458318661753358559678085050087019851474586142724197323662995135703965688889168495963377784658085789359299580045722326810331614943986072582547908761378312773433967426050515257339743202134257137406360104035152545180319212647913533999130350456157152258156707971882275467895642453582462085575294898219344212507923349283193339809646207261956815967251446172816624945313942681888990464605087453764706296944627831399597900884083977050772944097359235985712925404411902625851610653497749248617046172454738179729348036432841112878766103920231387757943805119351839776563224594720587726272735820680968249257431189369348112618490259087254701960726026860944436811483866211308195212979957968878225648103301359601892515472136904129690432869640445120492874657519649454749677151551805717733013617197722729215348275895293900754373533115564629278019527873547605713447093364784637088494674250622606694037549054385369620873183181258648711379741078387854153480026529990994255893284815442360317447898437259189514403830967212292067765830192847581822243706221742456105152849574711953503094652124710061911655776886102471456077874494338531072084962842570892197967495174954179430987281725548352657533005038194576114319600524825764207575185176674036036782459204957389580554860643895917969427714617819923336940109703526508017565489977442341855355103983932460437877056450077364703918149405525626802328020018016717358941551551243228619549501679379142063630217411534902369872804989231232493144324083567479476399865871919066116202403854357074608361696797939613573106579519689706947001483073893205463582651934811980552158110962226578607033257647735777934080807170846184376466566725080983582834002144053111580937668586851756604565139335812270860727297094169195715730065578843543943909538524587314439904745962105641848526985878328914274337361655579541773058476100276443127653114840005261725734140878256809551829857959092219557497381461987809987063405478163800380761900870915523764915527885387749616337183889381756173656927383628540368023340687155380382228702348820372334228918309272849684402561764874246526460055759575497255693798125861270373409683781814474414566604324431046870882393914767338223243284313254188579820646172664698121502977500456705338418963151883388833374867021570989900331033116034176691278535237229780904889508330919405516258541374429539957384418207002577130448459339477206913882772140674632524041772080434261453801682250834542419514220258434821493038716368681112067330867089083226424182334982429808641308426803706874367009385435755264830111600678524813790496114710284707976672481743304237122570368488277175712178008267864740217860768580868386986786941819775957554282418927756230305572324983234839816812602696166585528557109090475192515187395053489390589264852610992950483818243489715700548859358641450938271409979213564289536783137356949699696999293562187658979793515969453628823348537532642456582946600939864990131358176815954068892985550023989496788044395381772480238330678463290634263930729954492613818246232431198473734524093479466115261969408259291857805391097428264913620886004411233955337250069411613431782467687536989276992210022232025646435098510172093029238218895272797907486234227058944478921645947997812099547989286645393716940708164502096893193466384128150545363257672927002111008757415856243425422164455334623775939856332226812338028818933476030119440847466579486592107560426394058845858785177578727156539303536768718143892634072815298063066690592685766047352048753488405383565088687639049190813190905352642014275345501892284995550641243293788288647999466133489988058581137849235958220382861552765512820455695351035167787968678216016596863785993406827166308123573236462122420538162373260303470483715887420781288053844878397343846784200685846590668416662576469958587432022623969425047593830035739173912170919792730402375852962709405535329607995907597858479629398453845677065191486975989663171626345062522100466529988427960236077116244114080410907094142284396637676215097061340898792088884979787329567395749054448403703337350774615301233011171700814884964198802384741515785407726744118255715292390753732024854745164886823954533542517402643759648243842004000524107645138635499493802472713030190559181013509432230528435426967054538457541887956349603035692409638092996777166535787417951544659656248706826505089729638573200675127638751337051241445520969102297854082404792924698128039240937956370338784985024341819493353188499345989063679988192003067808463927380072539081456067736148840651389988611506452766472435204089168600937314498285272711399559576231940220044466292418970760206181689237175658654529035286650801837235087478720593498545694492862745815513557939721781415162402576248547580020242704275613690615989895416571981459551452253188085300867023080263811741236063173591096739987590295305514617998383964939929128269935394906841008430954759425594979708224453690047409362537446453580915312873386418716442693370976720442654554820316212840663543291603599182036697998810953840528485084820391826826701595289313315649184871658496598175926240091131537433742232705933521710591657388503786781830290522215237322267485022786104973882519480617699906146224518847523428502553950381263795426632411307710952887323937438100854524498013560586439712006827244913226483364109986921604054228618440762254545337442152597833038044822473828670089494894598440919829118114516748329880951747898648880039878123946314135806448939204289832545642301632108482708219743030692626730877761758724662137603041894773855718017323545474281816636655427166061504935652729944754314615312335256824761343390758678077625634082872744637771721903357767242344924825868604943786336482334133444672465295642143191920131493287655732763997479463480908320647107452726147661775402990805725478499147811811714810398124732591401304360416644865330949515441242096946307591462140473124033520615256395922761179177630798621841616142388483465615586421644938767438280748795190205391137848032862926618219366532182394289556532766394775656845480639573164056940027153047205581165610857464577357632205577562770303136510331383671506162519499096910432761448991339349382442866457835562004080971876529040809611923390020648138421205501342752440874292992065705953960901604911125986922209471055317782149662963613259369381692345976090662092700276695710563933828356546791184558089597674410567869164920695802332252322338746199662062320137237056558357473255409343084549304163717167210720559982322224389460149092552388234581549112144093402089540294969077882184788889875404623871514048065934613073681019361417792400191153508933511494924857142777367897630940228470824358808323489967799551862268666452568673344622066075760382675748043179173418236471552970088543251782053773782365713527954191519513906298447096708869503365338003539773943632790230240535808105637815123007398760281025965984378328478952482587447938001089839449023031219299936599655868496527248935730074575820419176403751177803818288846869122885622059057041719343517928371614566462832621277195559222622428029938827398128974083374792678205929151611568188913653013585141510146818656199291920383839213712465631380535292135652140216994094709859636531650776129975406247039521027880902596276344690512555136336337812483597732164295510388220684665599109460315811081277210024685765916547185190972543963691726195713571564630595647532389176729228063148414405871245150813883512397850763500690563036205147006610430978279897119296138030265067088203009221558323548856581353726620242631325108519010944409383076029203953843887421040573458844217512870357072803954061274005122475469707536819529736912392519306715643360943715042522898443826328324692980603446153220597343211616771852467339911957079304764938605193017681339138295291614156564939660597465818603955276524311801619150339244203909716316694714915547445372789246176421182806195901937019407208024008068766238469044623359882518604952257468699320605797748741116596655838507453709972857925730928830833813846058358721759589726528993313061115317240449657675444120302376631863130442245696883690760241351071099639116799948171327089029726614806425712928651423757190697339557349348385265815260724258236374391042428177387609850038099542579342474583521990529885725287690962149095568225867922546172693004703944991890488961355667690359647092460982718765354010468423057424103701321716219084369629737800258174330287650096492092551473846078818017631817660159404128613144320545820010383855079230395301074425144485822854851114529068422380651554242357128006992972946788704422191501907600065866047237292317318679588388667782346499283601937971167325170158356972007395772933263414597169620089423616792328606372409546702961842204069570983415442480864037534989608650023032341014865376506482973142044449672651826163075408226612260923126998311655505950329809756206841422939963157212656933618118394835864189087674762917920251969325910586729990655359443788394005751376228146532633223940735471763163913555545377602322637272395993802672143725480063847751902157273782213739626072955750381337855438596076444068536251360371223367783623203262182436441665041173832808332283500600989021128157850938419409438374227846259449177013102100151538564731479115135604253731894619298498348265672059482034225574022094512611442065111154963531966943622257092230874653103416756557913011346400879238148451743247087505292637617284445020966480989418529491005133948796195098897357021718815430531764452983980433682657679338729219444328905730001573866164093201058035746665648977025876944290726536118219375485262686034299265641691894571987208757634315789678522835441355818511841085872864121367502187319382149560385717277631945087434755923543563362374960479591382736641232642292665665888881705735110464340277855752286485675839755506954268619673940531318368802537979259143664213139358099625571756046498789247757619888274511803163324777545551278540849932447924001480093764099332222239942357724299425991826182853663155610278567442611862877095681285440556231955391068333491094956124856733600142765202821089970623299944261394829132328576120856774490778671204372730056416749356378707681908536825932324916010380285209495093516649209244415703373045843400207251758169700572226876990989203438214618210888128486217540733283523852756668105117861625370479169663502907367888034221984345470653204942188860862595842658306438658556067696271029088277961238625317314656334518507619856999266469083875611011182510694116587949038390248787850389209203933463291651298192583056855831240296604676885299368031633094313852031042507999071569648590886603854390383814500394386392475015329713236212032002074219569559466476307276758815580981426014729345010072075740053281635312276830962302746195646592573632773677615252328956732005675987273630127719683032342651757168565220638659177151514806576838183669702646915274447996873716379624791382135716587446739682231914376350732293547706172427979700465631275542484272127117344870055258026205774436356677178862011327047241832214197956999314485505236325537913644947242798669561802671197269199715531907947307502076143785423529288241729410348819078284688918826059234363571433002171681050427615470353339684584626112252880775258957973622134036108743643281851652689228556834149450025545221174198668552123125876796320624399593349569150050506986589036519563774575148226297655796725005010640894406950098265482014951822766845429048777504410824324499007463477888271558933335564963406639035344592296275239840653750324100692530365262359265056739029143896313136523748566715657430951394623648049509086085577555322776276513137224088198535611332381043882722775045678415468904726641849898780815245254862087449667752857927162088755013788235654598755534285055128509305533603094489058625394662575860511428016407936435974623293532111235882897191652802494263324220768565506202500039171013193053435929672177208387021067722926565045772287463115646781274696171546019806969747569266350160864508858826716683839924706252177163582549703090178758452138426387055217661505972151611206684174780560064880009831340108117461544870571743479167038469187225056250441354026694879462005836422733153794979926405005514449822987428390259898115925729712517037396667649016417609944120890642878188892966091462324833383440624778171912509962935739071148946468141759768556836107596872800680162573784437535509481717855823923131214690728433047015737461088589397139877547887561332826469161293137690672205712610218156141193338298597085269994696036455083811503108415582144450475006763074036927878018588742662359655477049188605194181642647591183474433524903361997714211425690450445886960795310957013496048103030520389223281412473046657775332681742907677145957623113930858483575447777024564536238417248692839922639283182552533766520592255162899909169281440526949965344248098515170238576584061560041860037136774088770424015672723704488995997129188200245779154085534878434547096884036699287346113746827783741522682070692825453910520261541966988180530922350794173080277156978115421999261493757096021128909852985343108381189748655540250435002920144243481527037696124719884805082977288629552039499686860405639704417212142996480273064658484997547454024250052335826302837191337388498556816828367998665937796313303337406979705249452071341055033905915043127227761873646693078773000824385388676913032444876875683710760910569053397790616700700550374615483549474487695675942005559607666069154278192454541963739952483372064829449758553179275246791704837316918818035529313450866095060601216765883940652057087320876477844654463807240364434452901475180174207139073751293583744809307357561016209806898739666622893016135442156306351946911435803817334128969744800452733986068567049592643848002388479634366125049584834235211951298957322293924061364949364526052899679043340894351361004944326448774827977639469441939834538199330685401148653024194999734263657848032378861620034280984145873105755260372877001004159552776191413635071141695386661236252141808974963187894339340449841235659471471459958908249804938894646036194391027128384935935895573694906336944824416489938717947451978868164555192203479156084211061440154783117599227565297842292659123931984914848359945668822177210117560204217899518824656978930821709581211908617195871357168748209240060746217702201143165080777480528242877550943044023413546080697893187648743959950041900143918628474910858290139551186249296955732434710138866670379630634578037147370545671138346524214380261721270462907717528372950310471447596766979914984988187802678198035903325876609148283480550331564275784542240101697308985526417088777006810483099407282621151562189310871843960507040186415088684143869758868825271725435238444279369674768288863637192826306492244126509179035763199338575028980463009597330888305894441559259095985934560122222832437193793416585218273662092412864252015775274239870844602882939287042038036282826151088352313180276877542720480052196271028360881728864502020688384315411003435486454393581036309222572203328874915750423062682942164925838678774578543105890594866962779076379389887257611776597537884551480396680332362779889433096990414318580070595147613187135785915264501452407722422698725043076957892402372481047942604111686009756425626769325355787358640783798984780400364301516020694905468420914914834802406651724864693291669642332020991032285129586221340355335936885163650847798784395430299702612891221421032778699928691031890186132930811983910321893231560989132454715772953011663976312692104553487494177502949461597136955310298415211838405415627839188805055724792838875870452868798392609880109589359231771532228271454897376347144201820403873245042107554566611837999725038423157144040239375196247540064491239429360660103522351626569201048686522984668681343057380283103055035410129703217105664321899368228391542945386147645230558215226708875491114488617030701031387486796114484063753350890171455144254018958913203979822029872011267065072512952251716094411376218569396675858363903384038081820700760107144895189183033036523643491940487263610281037729766499037312012584221155304277241908590985328512989851687729346056162075404024129608031736147564341615077986576102364766792831470944455039182463630564683415299787168340822761804806180863113286864532004804655781724334557456389877360786241141020239603019951561844334768718833770679144563216404901020053003744898920445010053668193806079559169453804958826116692145682411564938871975008481021539032111189917434773416325779862359718700037840974815865876201109139539903752483950487327915161170920822619267857774628907232806794008515230692678997541726230644047672886277330810016946106676460628519783785883769234779863636971947266617280202726140579664281964023599482664839764493422109188001758390556237847299544781069723619951376085103497958838435617463995044636980355819261119782843417836280664877878903541721842642489070072723589581429978958677617325684871366557366634338922748705444913402089347155273344390878699581998027154767701511692795379993890063062867352194899046757398380809310899427284738028668783305516523724295447592901258023530491299649752884040093874961342176565572057758780079804701202703848263774719369894008568987028670618957050110005666963028012327653976027309168951869186705646727601802026119645865705350467066186390301183903994240993773525363064784898594592338605445196981023087579575693632578715117679925453229322101637059604894971830122588842331239843043227413910282394503329465691445396613943496172548457637131574779481332921046886931054257793846311136384675840202658842170661458512027317183035282332830159759122243319888871481684159433408986600478477505921038438209330305918015820449698920070864903035963405215291019611014406205840156041874492697585606770309527466127271050001572538972138039472226352882515733168754677449602675722937904267536449210995258304879993472682008709577857660300132530648981688468605998965133038686875646018876934235099130197304899345227669238063059576382095165720913264263711658637537691838154023738078137044575541768941793012377645417882590634365848934564121536620926779331091901379759591866524223288221574530689861837127891351995941553156075839822238498408460520543753546194854146573533292785944512925306778055403374372119303981911579721364811228365701420800361474434880007486003057134428832882784520681762416167792099688110708234656736558241231581559060509917512638805671002107145193066996652489989456054296111964287161765394876490875492084565670388650212662560879387729112618471113254758279598812756114780372582088332201046062846571592902656586328965136118500655078128340414198221332191258439698768843879238494414655247202004436663792578551131855712803864024098227897804602645943003547764022293792788616891888450885157994106649578382694672465970332271998404032355307253473397712536551482380459637538490730323169590986871474815903811212016037675307186313881209816367454997983022726389973086450551407438091803901070266606596439725414328758288914000941787007129819392811271175537737258294178590355250941420986477333353242114058989105089774716814304748884807300303394821925329197044384035517317345535971814164015276432760357367263322865497873700863952921535093596774078218885582960217795711436336414100465749195401101267130778928232228118665485669805519802179963623276692516160922772842637713957707381103253936792480152720353026703223613032274814600515631528451585773801025842918251492247179098159387143531890452558672535429404463528952568362838241991861792204808893022919243284160406287246148551908983095782497318245012901060978802198547526430809554486967770678123250056441760715609269096477880744086900420532820469598362200817031659486589364116226301903325573801661736456462049671390412976457762117926316454527956830115463013795050654257149933607775396934875725509390009594520041304917886960540718572331077712545064517536626826436979925478251144044450409885545491977925527112557858675431664448275622123544091423953266698083347561866436562749783010533634250056183530189758051848396242177451554366289875687520677081627665079520235990115946727561382527420460577102185516828953594611873827379837848745992522334798413338966752936149739762217346144165059589761598482054572498092735310489990157219584041974201090923831401727838671516780571393703131106927750136931145850548908456257883421222708005747260921032368358285749353147162370775495479032232786557940987669179602259649758870602960808670027871415652211222181671375801198301598476460626660252494643615832174127100839521355325533939178171522585354115257981751366469705826378647211805254009490149192312329273970319790871888299029162321496696842055580120077028152558232994322892409694880729699019799457159970048174506958394578536281625270039731400899302124649079101976337323601671900955860549930520192787343718015791999199432789844207128691870705402065583275405367235568644747089821614241024641327260222712557472071910194461243208511475135679482531251771432184008648898938900050111104670678347104373654356059555727626416751970033391795692722533222385232321195043738685030206188057562030950416446473892343513719164926818556546316136434308407167783685117279349426526404627814570432577723665931988935128110999600804326336512145247486128628243771444293057066083581784432183927665256186728678696947985102289944647350607243408133085857713574462028382981255650783771138910935992398047903477330792746741136063061296238028327245826810910266610773551807794149480026393447818799223565233117683489929433448781165955122879324883715454998677068308118325648513867315857963941665510632095960303339297553578499205694122924432972119785735923804503403754141961137350254493561141961315663697871005207697571473397997745814541169109362238127326680539630770889337150848166775958324159055909428799779948935900741567575049593857370739359401756419504523856619941089952110321752568048782514712720977000942328186145008611108275406908501118622097566753623151729790266160828487246540192613862582481936402851152108131449476712112836191462985372262419257884836053146992070665288238381191709263641033992433199809723855047333857363428593574299407749380037878904082595492442917385169291679150133838528635327795476124519197849296239743997084420334158056319041858865053132420186791903279088491720709425267222480907858073239187493298564337247203335772980159141549348122064104841619195073386327202594247180575782675959122381536755446389582215325803471719151695757774395290465378739783031991627843221672855985217827548861217697672194039963750795319383723969580009109200482353031263273192309319941573907546806495474287534968477367285374253167780660408769068040813021559956005658155555815032893340737926973091785264104785770278357730595032861868145616080234768433184142887609204858800344447220280577356342918921382743548718156664751084404604926081495906024984230043133423613803184175980650992653700628028473279478519745355581726662588657016201438683266080786891363762089369075858226771997603012505223573014922745995145141368072109089050684734614315005711891094756893589951446710338054604427477483175800188596397354395654531634027348682639262028856633396695519358236125846066206228514513947602634759345706974054091866596082060161607229863399360279414881832276795541291775518685474329036739909972848654711889772059585886066039210100940439329941803372509043164123986595989456864232978062750802470275317592394790402827486964702436080136270273745220548275630442409010974641293733282075723744629227529439579081350645664316419693477282803879386073371356668709025199313750174987977297437652935182387684255078378964635736767634829326960692068986093496565996796634248332362514686672974515054853469229534274708804875518582146854111018881056701132462048848406931040195830806867401424300389782075219574083255081665292606406897191163305440476097115951450822619849959082051415793263026935374899264197411667265037415676795883044156620678774852069117569566948330608093149637505782698411554751883714942864508153058072504667911296726175146084240017807185439483862888960400727320781614567518052263432406531210304564497174108300747803717047320880596939648778344206521265882319058251913324027190457971729219506333603106979129102757697722067408348475288670855502257562042407511386948076247648042817865634422844958446658837813182282063735823140192813017158059307697508595982031767906816090021514434340777874845204030930285611628042156988099981745388654205744400494147010831561873860221961554840974462757751282793618977592938473233419257041015160223118018166731694978242851917643424991764397864595050733462160680278054730560204707176684435953505254826150194229917703338388163080667186943196058727632853434318084712352256188784771507597713712724481144642905951072902459595277290028533790167917608760879915459957517487576942361195083609544504782083042540531487131716638169223377432639171394253147579012610450013913055762207883089647534385647886512272023741125471030147522469172628071344345383081928478648436068125470770401952779523763985807363822677569847649927687222411141524287887673104623296291319202687542484443113818582999444904363210905147980626516530683602605944158864448123597765016872375242257635176733091380998420763638506181658313280240533986092853127338987897189537049076199256344276106566186964592349113025634488462322849578777211948880238147592281800351480797719182898517693144332494475396803630646557139391360669611142940578963985491630563911830877576300401047710202902089723617465632288533114862043958253463195784491952781253764906199457784869495630497609359537439514982083487752122260108830515072215267082410913855215083698923610285954599922721163861161994196764987798181169810855408421078300660733758838857886360407087221656720623197141400351339346943860429604471174632399661770668379465246760173964919250844405967455145490607104834349061813570184209702924905636205182861618316166218346251734867303393300773490656760054868190525237544738508900494140826862596268290277888101924188972558128264325824590384453009396451419201034169023786112160516789885878719517990372357727432782437968611537142706346842139353125412802759621651161765108925473338586226623776060009774238376777113250278489061524591445429392582482834461540160718895850411573431891552556006720085144982324919339198051562877032667629793471970357702755068411528023409387620138322989986325027678136245364206805958045992189942078410138455113300649297045988328718361585469737190382391297275153447381865931142171296774887919880338597476764502096410655827266737441236613029008081579693706689435188021488346871911296848753941572497064171826449434534386352523006865349371311182225561913992548118288399768853373308515380205131784269166579727345257011147905498662624859287720849946737153569620761374775395016241913837189674888959384930328241885866510099271235027505578958519652698389404053772738341136166708014767523203735254333084104124452020234036103796216040045074176775405876066637054195017468881138635946559291574007915328621929554552232064866367993218979476421349945424884593438726766625579221143702754360659535712478553390662861986743399535225898690438401342110594784752108034696442104784867292833480576875386377884133618717274436104967512555116161006959310872226944429738863031556926094839272709758694836029949839706302714671761309267220390586052614842839000755953857276785069946778897534250795557494804855529459216380862327435228829166770987962378281440357888111969602181800553255284764482235041131144040196601268312242132801524541275397678359701005852925394875212252591903650434730177654995021445280730908975314091277362520983746457558398488280615279574423698842868372746975981256432617393778815357825207349061965005469229079759464294830869010399333452081610315761570570500359489671127946121075554973013243519708049008666202384001132884054891944929103609745136330602219806373608458018458427309688527288872141411012115118528003158171343825586087549651052950577231335002786057895433320470847659809355139774665139954608965402271957024746866269252647713348136383462792039737249632815395585194287200942503672373469989793102986941362848235250341352279365404330448349935832834518828155798702020363958861688546775820951893868702320972329341076629658218980910684090916756257892838136581305441868566622892872310541106716350601304474242212330532460572928584450041280028376972592647653776229122236230999649626061937029868984446127744347688864252874820241469743107058338949659140159547726067759725871544066782871925249304425726041616759779242218031481773033426599140908843715325745921071968250465074585627088429353970134279042806485161957517206671780647994117815114673494055781364039432371530313128951078371372240992884440239819473522118345125366467799736723952032138246891221406779086443856790475184466663910680179696651084828405216793567509664827712705645461698209905601659482201041125941589683470661990863414916051916123745968190229267945590392363636331166050601151755047191642230447998130086487775235822945831157714870723039196483556625251579394537720692805808243209701490120894746823704774380212933432143803914449435921082430927770577400471911199880347137191152404534468258186212127001646104055917851733439875510256361360511607520376459200427892374360194778456736651355306246066455183753519600612228005051425852496764735823573554989047237822849468029411618245940154215705868788676072097796376163335207908082413477388908232095191079220858628477784213123280975348174774704272753593999171087660618343035990918562614837784477693808660925419894461461226463091623501225738330974264003660153446122197928160186603474247531718340665361158419288637702414441438743875453932675179327391816550669151343527320583294836576904227090525869728883727853144917105421596012102107822782931044196603349981249335625771568156653653787191605010856464980192485284770368678109188229308859897194203373634173656944590215512371742726515130986311517285981457634700479039601907035279015036067556206277080438006423606961507756967858721959051953619062515825070585859189808312016926417276007717706664206704162541881567757066560179001483501927191758618182500121365067567890744160584248278746362930983328839506540812876572206265695718250729104004229834344184041322332203544043974521829397002462924483483995823466089338034305963122355196524340803676496379979270154143717227978824193835192210158565223813042064026230923126275889023032523786617077634630547161891325022759217495494013579468282431774784231104249360724308043241292031757993683966635018094967615234041237806512409418400316846963231529937155529221473042554618071040381621112658246777408597827090760746453702133374128168444146034178684546456388581287062929965472565206939828985996129885156746904621774871508296411904967383028792494489006252973575206342831815781812495354936816936338679283627716084313517864561665141389577128967798863956732683516365473988957945047914662824334164187065855635321020959177237318574152335068385316857681927262169350403560002509407047676390423201924474370263859842438304622539699197840065470220494987649303311530798378133297105188171646119010494371327086190552663618281066663854780427273168791705778032876041826306987830572403678415416815167169829274457407063728023624317723795518206427340259259565193157554146598307332587034264102777385434865970019099180887024625825023556106373007437996720656558336163002822419962697184208923285002090194844233441597987971142869150429407636797038187873920307633509059670409222445125577550628223457851595654540966628748055801705866209144081606579665510194813671117553545874039982708383702611899943940521705485932893928177440258604578296383056492911021004176745508573541631859712687740208827455949665095418553818501881524053379721512852028757257163856237110556048855974102813281649478120251768366499978574113510796476472182480976969573919069759947370514279934599719255841661427012368950520849741596340280661718018442970229539394537553981142691218158924121510846959201087511487259181556661207367133185700795637317814509904176619718798868903115087390355265526980813398110267029159755710372276305607556501959106075669473652430147722702192419271730936986613525694729875084526710900359494642447794513530768625467181652027454612150608847951711998282014302489302648834395354728481781428067584909014922506484451904499474041754482425154769263734983450033349029104920896346048989347493203053872659087769104806799301318732596615356752985845299727280339124646339337260559923875299605859598636788396130554282883875461960236505763386383578359488876449174754940684589876440530667702719982225932424053533280808984741219184959509847671991332114619877559302551270098811912512870700906295361270721107582998965563074630159535311474572574189396246761338443484163893108979846199163947289355949487664742180774451412117766987213498083661338254026665695613668248499645446345375989501549243772726661816255081377156956655969853283677404553924805504028261247627441257785451277099087594982143960871606843893841719579471514761068604446390002984593822493871577191462047089793038162919175783693616116105145576659616371341478024753740893005080764749588117122302238260702993503161432579999050065012451934851712409642474295774441397999333539647877725651020541060237684014329042121535201884778506132632933543341560346923367993829860755241476148239905540724268031837987361716568975172899468152333800673499821693172133531323659346834041369806081141624594042251695994680781989103818829480672418017372319490335970669522440179338805343641473572586188165274381041931317496241829177084018783423031901828963273546496589613653263552950600292196909827744583529392105435014015749464844732162454874493314194341707074148825581734822371093648726368718508711753966504474290471978116922884668420773670120656249722197199423755148624688441972858118822176064825155810285582320370143506299587043012085995507595860570424156088343359366778944818145116351567536334444878091819168758058982882888019792968534128597156108545719867317527342970406417840455115367051015590068345934434304072521310768282425740476353286817272176996355486891887145751763651940667169959561769967168501974076915460493921996994803660731506116711046189222767444701585068868748309095398664577333188691602095435833806849305613964661159906294614774890164445480924995885711528457497522544003923206219845006987559420840829469047241044500508430386609563503500613474833163876356946737647565091259705202191963068431378520393802153382324040825987153419955150938132458700575884807069887472430716920480097319996095035095979589912977933287704079769256920442003527108943436858458257314136917188875397329091114921000544273176429822097801881812445746645536751176212423472012598102643378332252775329497814607687376035590903648212441157593414477566496684266031746389256256923688598195675302818351120752471613716406359186285564892606777103640906462722613732705862396961356907617832844025728340256724421468314788345886357334175475016848605095721417933886310741635660146211776901777780629344814152229883271169892881735924100688413314734241774681614538053658142418038993741309125862657432795610109097775249132687600412350316790037297156000960568878942010450357946273485690994766913911873594901236265600196296929717898568325307258054791329300037903305143721952939781948684556353257931907995193377099224914149972614021817831694732069969277312357974131821923414513278831260100787589194837313244182892364898829227522361694093118387663174309328258314213812166401027629605856579781876775212704311437541252628069461668450570099692490256566809373168798373243824938750640857597408046848161491033285221627266619119220221814013267118236270592522832361056457082560339626005034584778264918216568904836539209436025561232182727371838746196002946211632460428226096613278397306947802352501285418137954874314338902891370978241236672334764497981036695640117526140875783580534486759312600390478870247890172453807148093654977674741487407145512846562882157624718866022307438807151234784515825231612050182224934674162104063303163357199439962689202687653388777365708572897742472851733649334398006986007399442103606915665373728244305334129326185313834723682647541646856586691585044235206753485545775028717782241079972239485677647570863470735761940813461408228260896591347892721226039043852419353849639003434507148651446038676507405669825717475404729656578452850784524376387118791799294400738033617450902740023983715284542518935393256778811383439241981513334222278831591835677187996418794520668357587709416314678111985976224725103378589662157541970668304630949192284206132493591215243138066134020512064622770343402978231178733104273822640274621646092873940184759613925872275284676332935609229653186609695569931593540536925147813640356329413371637889155058932033202335875925548967514672269391096557717499039988021653167350646705324154426390237781167247196340580270208410409825656119827305775215450368136064762925448621242401172566479585546583078143721434115761563511761279645919473778747792397925555236206677105806016268484598387198263762993927253253227122105237074632885147372118440091061071346359084092576892866630883299482306200182917615192843363694100405438700520078288656116344608908448813360307509984251062778413361286925928358617147879787111325233323196665039420599725748494753488675266845866577615721509264930413428780085421156722770430056030469605495905745007532211654169840250067588192426647740562161608055057334178417113051348404128741331968226776874471145153294691305921815330702777221783544195429732616548522300427996680492940242225526663140389909968924009100862291388294683606701535243174933281871258676368709131211266796545719188927641927914552048120543945666920074968234622442814789692868179507276769027389705412011623352872281669544301905981581648197123519547382300997927790565614081737876974367463975862557217514814179064952284528657617790278958937392691135015815042237051807203566900840746612717679283606834292677215260556423935154434622092943402870625619002543624854583003625577857601205543007786879719674739210280263990251843200365194885002342634531384586514819483115793838434439842103060038333616878230464805627258621692735090844019625154294872890743094409119317919438741578926124953536737519095190967201935770614216584059642395823293094929197695158928913078685083578125488263860989129512066337081626781612137647776823811914503440105266048635375193880566559881266069594642264291342093030660120689306160396950882609915557713941086207410129936830508577543058675449521177289785714008399975541558648859517658714609183839225312271434567453679807603288034588788572225348914697312702939557368672335517998484184710971654077703228431632299826618556623532433261219563960251162173614366876186133905257632406032754726044309012579590179850005443975651420992785522979303375795493120617437587987388931708198845230740423133431678410823370171724370651552259656262299264847025762310862503481666438312910200527783156000279024699778950308035689354602523406886449512585941082360112448590923999857220875749844613721644159888143404213355083937132973457725099718801044828669678526695076246332545297694562169056162085595439641527599929048809653128380417343575095551064634300839813932692622021958498018461288573479564246818621964378714254404231045745720850618659490553321585788445950752998445043935948351508501313923607735199497977052675231492961147413397112354039275320066189409750069325026639484691912808499068111065847435274968012933003089546757710678008097707310482031733248498359254409543886788639067844983432819203508370215391681308513426181445387206576134761349443824105578888104811375382033575986220910575876564726066304722529211155018430525034362856221972481353106438224798614116460915097101847966425016617603246244781881263122755141002098224234874725537648908279899633330209292445392724514941361324870952690560961733199268828086627588813954304963645935084275880562148963355036229456653782872663370546227273472368527670378824487569676937210888179573129869286162034325161752638641237008019332406536178742583874723919657193084981153272776210553594475623101169125347457670227404614893907211692134886128792390374992498315414122427236707443269970301907285330683802015671808006342986268493920809853061074585901667026239910950420479727548729116529963034738880950697810406706740794418824503635542956761069947884619024282693936553581596858582835713927332034075373793952377028158475955556252779973976360744837916261616436942660520555981478172751294008898818242048080883157645945432447890417082006221228911184184794487117845335753421108292986082970968412008611553711221034251658688569374368547254653472889420103513920207050954153588723109350761903347547033855895739997121442484110787416255157764228669887862430324475579608548194597404606957816395198675935337810550742330497029521405012771318871298043944092074266739690063411037191991605213992486463616258664863679231490198780752614567384019848150827411852166269209521607712867693895777731901070696270048985056305758037599588975146962971983544338435730257007866519777029779561217227633439409215229338677228619790527765334906848090823527558566526993579907150835049266782720708765505349560022489881582835263204800844562651122094723909552697455584687058694002272940797069294253380611929561165926590571236581184282418869354435384241042196341052982199443896260039782798746691799492265359187602659747906736920890153363224379879771182516716327330389327648640478645162788212801424367628934700185023765728061749735821992541634796464674041331374206055596715932210334306937304172065528254748155044421777095676267171477137436342530210472923347858043332571266048684223583036106044437750730163118509733566644606308786786545146046284295987691307176304482168147084025587596801179641638023888489500253249632092225918621801490459415895261149799673813666938793602832439510096584157354917866853840243874618549919998017200601392978508073151600003653513710996776599569562500109444327238848992900005562763511763028584231711273348486625850949937711135059117557174319764971855891781067338432048529379621087808037705899495535700822829568412189739454771217818085698422666236170765741084906523590407715559532836807513140210289958919548247909714088276207290696169080087112967138675154955478617661988620933887584387206390480040293083576580491851022315488562117200610038318935669732563796027682885323562641130172318415885847364900506342880056562869038002892574172924152468455952648361169385042183174161742239296479066599277112227988862611430754052667696723738638740422439194805496382281001462468640400471018930184393462850405028362035769817610719635200062179667594310580841757531089747882692780374647048700024001697846139527347611562030482860423420249374773573569745191279955488737517298016334425032478228192324542458832475152289503169132950364972560781192822262344027218507720399422729394860538904334590155543202449713772578434940989755348533638155994000427248315750271025788666262973207360939889234248916333797943676651040328296044836725972353660257363495346790230433229991852622827032400501786942768898394742736720975073116013934152597022186574293883951687412408185176672064336373771809441977706339318508383708306155281578313656435775439339952265431499188484206858105204470130078241047183379173677223650797400857021592057694864493645530399142259704152378028836512022711242144191883826833628021914528729734010318036778305372580331557491296227476596473966454261455382048379090520985840652054626866364186754343662501526913255839778345621028470096598143352132366879050039593671265431516579959987691114523337767637008686981100191271609483977490478067976323312457046052021321211467061743782742647327616894810170291836555674530035223092648543811319161178059680075317494484871532668326217081057460929973479343332509177131954899682718655590497413125808165443997832691693205848278062989265657931717004414262783964163309516195843740099159621960664277002709971978931274017904686873396687935882467503301941154706918693557896474831048516945186095681865845193405504809141244125573901850084003901400837317558325520823138314115362012941005119336543095471268253677514051641383357714526784697237543004596939598865370503719169579044131417875028253698511938604772214114360502284624129250918075237903751524913976801954520290015998661851723698325884023419778748521817969949214104297727800551244331712425870770153354338586761693510598376727792693849553604557574747225280130247744958406166385991518355598133301836284393489395235530306620336295039525481572296599388476254191075427920748504881671006340576424045518837695152101085077673332668290467038153624906989666301953394409754721873693463148403617489226879938055957702482485317945695269106823750686271360262931053595838329236195048799700713712074644965207637553432377766459998024369080464301848942263183483191948816107174367628398657452502327599863763685802599375659361527418276856307012442438552533522788858665913147042996313280374481534531591667917295567449877136273997879109003166725307264992149620392640756381461987770406155349683879530099748348277967127261690081870953060955097324668480151353737576758781178514817077086422483935272466014519614268529115922463861825810500376477967493992009240518414019660450393895793832931418139468597152022968679644558946775573994690742844469193605529821892168404394789195733204343429581426035568768041902904041829198225807034921361597358066006720298935116110978250977480900497493653068459259649952842261100166249211048662237198305988929511293731224781405603620181280470748912154813943637035755641188634069221083716690694050508810062368692952097545824337971870184440213263152280593422352017414989821610182492114464902519374992632696414717728021363065886265243392865479668062969686184727875235997500340047932230198153190559128577907217128226382939317183417312222773630809833200627580745155419154874669556016340484059095841397228739883657796631256725036872571751985666961291810246934427544972668853295605545088354305447482230510290963366077341627404872148321551076109492251299473685489470932086880799521356465279794178062832932435851208292301330939281641340942443638572543219900678742185275193242154864627614100748725803851859443996659813614924547354167017205011839007123484932616752197192313183887019373370729051043942212118423294582853489582999244586085167649141609130729022033280286738755897731314325313654590157854517691131292242054033767633464094387436947722053993962553585722815149338608701790928127277748180281879800694313085898876783003738604640959233180041827897081652614236991072410800502832377336289801775613850471415738268655554588708250183621511190792861175774787051975571114219363186390451610417196426040780957226019209526391093140151173873593265700735481648258958527038462846315923660178989726897972953273083441258630281478861322599677082325486638410866601553795813764781560116330847974949513742255037023110389145030059619199239977039976584582410079976240060889712083840148111575948247387057652740888197434396249420186978231924065913874042886614403233357294275158110495659095629137049722734255212190215596460219154532385808104311546523274022480157738394996147473239828867345196573234196717583347087480559922346174467880964053152023459021973628749128373004873618111022501845653801294789312592974134051523632924269096931417691836002670044189951357953691988472867086436185951305115095522668687038697530053654803615785552378383016922293825852503426754057391757518519186146461842753341591181519354736344307712220709654351968984595860935819316215850563038136066209193103984211513308997375498319304920570696708157338108082856159695240228710754930310996204293580083545181022343362349914202843446728705445892454631883664681838739297118795819568314168648852319132656478668419328953521034791030108117642620984008706480599322075055088705549318578160709401333500280403399551997668792651378356716435643949102818489408725670802888088685349191692510297799616509571753414304860368352074263080304582205607440718157101541091260497796860139810980175207248414254573271921897568057733370634251871635445870537414419525582948093046276723021098440203790375903553071190405553087989880417253515209962960370830823164963124955770035141265132769847821045012530564581720951673227064310573567873172689137904287359523247083429607517867939368834387106832086804340818707918293964586814631413949319323254962873185754868388789457214347179976042839393722798381637443110440107131939246590540054732036659073394658108759177887848624622735293458931787087330775481878526217382536848917734989670042179084900433210006517195017918336149412577324777128105010722304426457134764306947379599322657572280711812374698466940497551466839832731752684653460329343608677034448063900183946488514223887930127794356247437984566719511815069288162556293618108302768575260224505535719804473174723780170632062166548158227236162933145013643085731668140540409792228455204645270971992018311960075981954335358494080009513699533731719576446889617492831383098243074468175109166306651174683205595484184545589903954416459061602535738249392497728050016320162423236105341881390706646101103804654079846239816381244125959909152292306625342689923838424268958557142607036925016169961465086130534921969380667992463609598117367737283510788573006078071517805057795794464595228406940838087257554053452959440538448258085503704222379058357671818279609234578086114654719796837151389965738827064979466382652978717326647804618100020024309983017838494205690268209730502426724088255230466934218693718799378666965057851577031026585098026008050155559970522314926359762333421223867981268748897979483865818630728886059519712226678256195044634769179729113570409178057373271066064596180111153164656361741964172106725840023604084162687438730400781677072253250866212189705616453496074041221891225669149286279029088688436333709456510533735997412875320891535269749743788763395133714270391415890918419279512077128991017934013703157293712061618798923031409334942166743290702767966939860124031193328709515469960023884919429050732462172277489850537365049494605957241055413701247695874005769666165809404621407831887787067212766193961987678180473619890809422978568699906152612828038025084407514820900674411476257998641184057529088493854669844726056449981909830199776700926783251821594420582753899833144699839279546953762257953927473105572150935042526683184398037683655290205834062953771343473312924464457482463746945221020234146034844256148220499116833515432184660756276200812536716370853867510727261059351703794850076332871817846320657311766724167374365625377427336753060269378107759373130389417631666588333360072946238973390273165670259850298349145610616344054138190772215875969407169671977295207133816691844852157546316138945181466521300394892765418517904847817865982867694034127004167632287603224450676878656616000246265554059731419226467150688168878180862003798095437852063230847009707314695365907837948180416166504543828251869421481778336981800794077772795818915357261557428836034048690936105353619614759849267576965277718654677294811543532852495643503977314657892796347272487388399349891682706019097535463959328770060182637810951674236967936028253935012468703615395785232917877617853711442377483353794519856671127917353066420260001863570017413122338861112415495616691965325294962066999837527236208111035246696644691947796080652939668120814490194956588900868153064723203156971164898454124446827452349131300022830548034103853596786348173368576178338266053530443537467818258363732090563345285586597457107232684635025325091113649758010673337012245452940395208161932818155478795821984295396890184672557816074242178988888876439682962204416237227940645794888288143809977245779072829903785397965006065954665944597937109199244028326667996799136215716807814371531877748510155034093041746335468397886069830373548556784685230619783783879028543110319182074720715877612582727131661426414376951981403970144702595303326917021945969681546788150570183584248064608490506031808544783464720161868514736632207397104264217603795279372295127637536598763928445317800291215655362441704468514009720656311941859549226715715074857366284127578935387214201349009133810790338276179574547484683208953159815127797114009125924135290880962183152534302789896897989253069334566321096754016982296597332960964158047315013471524037553102174084519959397485951397152203572794073283639413984993782592419109334437915766861539073188576260805148604920652686256469468965103124624952653659048227629185092882853592450064378772946462066338279208002481458706619580177167563435983425959072546086741118062015591524567034659173989996756226908199708512255756120753653181314320804072641222073449906198221349444917397835834290382028364476703177230410678557216199920048935058424841971036267196340855170670107832375935082665860427964283353684872401877917565456194298470295093798558906694048349410174837349494792888027459935381010332039537643257060601577304282582662748228297356256110892817226472874276725285467344139348264631069590799152968404181767780499614883575772852531773605169602746337546705721806445246827684583228172506313039182370366967940763388480244767608699351322339865075503693448110973624703033671696602391415405230699114265746945926064061005469108989563960928801472491793540664283151466607715332982401870140681005160524753942372458202108566542765125741736276305045195782919396080136103652137642799510546468120333868168137463311215888487740054855471642887521454164922837383177763313659004216596884527569118668733429630516467100236646477472383630555580027111714538229202455449553372851615104174979113820926555655967665211387285781941606736471753277184078289272888192481543856352188258718710965543231015962143531880362079672034598106362987969749871896955137598370778591584740799115050968797324289700411376783712101309484802263658598868091124471372026518250592894368302300796771930711040567673049724967278518873482659059081648188771136545579610323370704006316461911130528872760670912541339353960353177426955034422933357125257303124723357332167460767160469095208482128441842855271285542831893663628376547308420729044966796220791191916259938483748411265031469470239578623610693433626388278209901670956536639395345449808529360300702133049997037929367105699521289860360323756140911288349471230308806628843416347303442502821442239756970994808576859576612344116292517747535313600990725938456763444122111382469418057871041754902305599966683046699038680498958394310975938171102050050765705555022670690988096403061566879749872573810842976433315930222172853783044675862411112244255336022437821624504660362804247255284782309723109464796604008346097946256694952574392051882902196664467100908175177675352426700221117046385925967154875527564944928758561279562916594620307252828924693291325744695019857484980700214089297204700168133457153246957937896458774054204776802175819890005313157617629613591432027525110697414023029366901481662162298743879851399266430374844128854935745665550005604608345368672607670161163087780458939870134873498067143653381591914048245507259602916923151660003620038409836181962930632911631905159935887858631963478309889152020334112014894961128377836957618706755704455540731931019143313586931088097262878468446182883724489110504626320690413652573840211262797013274532984692723176436819471414244344236134318477637708106600637163779575595198950873629470352050673690671924937697311486211996158556898805155607423088583167397476230116107864565464980647351232993823554854955756083050258454452946306971762394301053587755325232692446905332470620162952314898789794984865486015658423312910148572620735905225851181466009693599847044917047405591233707040808891049698100615897576538576323341846101699557859756513181471326478948907167296690116708479788271013358254301058775131787422867292478752635763866040674131013300620582980771159010708152595309551688619768669802621103882131434054644972965622796584941873378172531199630905533572116934431202099283417910348173302066836679672046370713802453937702800647784152393737946027189030053895787897153075221692360479169306607503520418198461830947059699661075562884489563136772406494314214966898098609596201307649339750604651278309362005974410880666930908069936169214734772200809756098215288193537214205554505662026361601375629940518312145166456714752704498909175723112156812200887578393034616686638865253090527696488608233758010440982171886919855655518623225170179637878976518712039107746099465122728870936206577295361052613621831210004832465288259875063978215868894688378208405385754546200502609320973190127805061370458154059262833043329939834543972592229797237693372734833755005898870821068257054951733877096798451693897805444295652145233581333021130475900850532541715730137847415496283241945920671787629258134493185144915455224037547027043590862443058605138082638778426841847031912490638256903593991834899978293764207214256947606499728019947804076184849695586745184833583684969268609850872912720852664186570421400600666539125160957096067372988259645106077772852224879149714961149060455058544764062792076673812886037775459977827854401742949113681221399887880132929585261723170995773218428828408689029026528802826084257172828632439943748486197379376458909628536738202951869813009732642348712153672152962339604561547305726830841526324789517180474914948883904241981391668924733031854571696138832712281634545311747120622974677352650757109215941727322093760676915608361100092642076427703564773351744720022213599763528645817587015847281367527924093889645307879714895905199778792341212568106657709277702685048323824522604768432028161117114736521160710448117909232205852815957789327320969347451712051899385343997651268762509928486338312695983680088106552230887070237744060729835746953656713004717424232529134700352987237869579194712943161207607066479027816680808973665920995789653500717814156444050824641403474641751538786588572617249815903114097382618078265617916044703903729857348385640231241847440075579941975881562469772753548625265316596727963250450601242731773379116183874934896432396576905385300503700601186966184595167833805529929465970333132851243694133812811043879871811804935820500939834230703112992785913421508671160094356854789340508119067835803990542042999791327961279302759991670836362236975596803103078048688839801817241100693805779167197201137347201466538585147534205648474216690825778157738718368475862820962007135607928519280216430514214133413913554696039979070601679536157785117749219112298582379720525280016009380740864272191814195001303539543042633615888551290564329147489740775292573158546766373924687686922658229036526238868610112796829269695914313736707156486851834719084770756780490427313409014646458586907176420222933873797002838582465151506890665499200106055128043557153726514488486248147737466016676304531905989740250959738469141778820650073452933295261142923681326708994376637278219142648209839591605721329738335464711525831669184592576046388401434069991332356760093349288377763635453269678757177886987313197440330067581574566895458947339780771529470100090623555436138809779654694891601672720799114728537482420063700314727987564033410524680830736776431597006310135303266644606701030892084920874377247232446448880056278194283279916444907667305320216612848958809951942024857159693045537743941334043614633377565276837590791807915950984745969286570130792499182967550127868136455523944403854469831463808625520848628636107919684821915062360836761141164133458001316602186753215891209629295182682418948262397641247809482908630436655880145750175628868216446674942564472923317545104554729878703816092530180029783819085636635242469515425934245909252940838273580369560342430629376877425737204789515830701854441404464110748077264009268509421543349061001944217178564224920153467438194259861970799655252111438933471072851584776568484456681457507175927379394844960664964312978969779625409613822542685914557308746233973729018706296643007690576808870431049327478124762148859434460198131764601108777977890813817690446284497486293216975858403914652757083631326547078702995702229006137472447975166721807635935484511702889528394441844061413012150897399945782243468519430645577976217916055300331423896548235502792007610558226143944378479922556808675898016316849851545598887237882418221824703812545840889567680583982049136961442566063816216672859310882283305072959117510915788188495797753491110675597486451148837214624656933088272856556991037366645073758684668261391226231530440149247779239474590823855279014549104229266434433227853462389340523112909693807708251268857642666045603889067279940878903015321745867274389497435526914524050404643658231189218189023877900846890799162911335193743010726059818134545663969655388191570588024787102490293782461833422914468965440569859495770645281012508967245551040321802619726182773024736776831238989827437664237089672571540964965473960500264214314462760196595063679006442240275140597314320163916224756900333149027875770931771092363102663834535955288173457886432541708694083740562594086959417730499429482588086219114918736842672601835631707243095148325525755810450977821976536263344329384716270410140321829970851338995475494152630546479061282295270318553156703172593949530191556209125386522029340567212027433160128530224447406470658816070402232208403055949969763566978818063099378133492362686059264374630358255926571437585399205734976791014889205449656724293793408937370762152244574010335977989206438582058636780875728891578762850870713913977064465833974678469496877378685116318257038162762125562296600758389904463899642903844523857075528190999734375689969722579223762265082697387954048587931594799631722084152078956095140374252947709428938164568174082390960892995394995133284375676226742248520958948185686144279541266718519485782755136702398446119155028538719339921198094350738005414106357709295482710501786966621895313005230691162295206890714607351828999802072344993678752963654738292002359784093706405060113698375982533710629349710623410974497218318927838942711743677415079770999767386825461417335839102624923095666495204549983995170882465451422606042133635600095221839476899508600090364271837702091275470821920876555865497263106044193687441293008436591945394915792990532570999506727792505744634409564010922946440915685822510438808727594869641676125947704570173830285821546420521460443681418777234057641615568683718444430742401126897468750984556162146422756876040925658113031802316040882953592369298834046318902880579801077430715139112618320869394238821043111485945679036530966131152356613278987620988322584056650637359296790120239402873550951410667941292751970701962853570625398132408108091573419733565764729143359833834657305874741866743392760032354107513541613389988393225257077134031985300841064525058436919098848074271167672622140912144167745517386762428168372751317571164538752674511471670237963764834898793573337584281764224522329189041202875021668829210440522530122830217414100583494881364851471355049463790407589688832903031745686647563408559180639250706296998864088531516459187586183815359302675240031313796691508404901224545818728383493196324052460594766528069767569866974855998707463933103975899003577350360343610746721791868357186853369213482303431795272582912145638387000359417601546584903207617939002847830368116274964506317125572098607014133760525162364146631284054587379602639341626054162168935589336918301854888685833489499150951928357143822925525150584012966146304543261279931447914214577610804300685961312344434106683546261521324290909340309219905047524894706153580670100484594783867365907519334680562701356313484068203795622236206309593750663241155456693548503372625461897616737347805129123169958230489743628605702186946681175143329242900258677294744010368033772352329563347344621680908927933242610267411050203947775915034863653948886100011311340883272887700857483139120433998912345461940472838697977555339476494795221013064858118150456010084851287491618352403749987749173799813401503067729579318745400840985137860751194975580623977467226612078111179027651660063412405183939946310696342678429586489549776351443983694510376674034514338512298474304754684498355474411484935067133087469305696400627212323123645682960104454885849316712102303433446619002993296511295860256918028384804491702897717674479254512194555938165024346597132845296855090899040324825140281603121561662895930040399957274403259082101983733054183631175713755721397094118785881026423918152983861930069127680287578387762067881350855935818662871618511311013369000187882326819702339507643253764741800956189189271624702072476655734043180672860502372352693485953115942224760237138502812482657039437841604618931815386628308688751708506906723059702483662543465328806390701112347244638631759530466206529041633572386269052739608015373114240953456290574193680317739674255884320719154838449001935439570052052502087758064179118744839808933789301293816634191023692851379317332771027913164245064795896241927662448995584015829058511046504287812747955279076742238762839200273763390543247586103148195025845073480241145238497422205685816294587548980402670384983473451253994480068501293143194065296223195406264694224654419609723559495170122282755380875424346840092543697658606096468195933925024021115757353943023482412877419799792730161670343413557620731392975366085948926042957118053305012609339264792827556504650745758437610825980176509851669175406197835059584917512578851115540387552437946927232395497274405740291804254420783313385503590127507316914356254576056851586200624129080760949891297002960899022704685738085509645869680763409027329988589330568863289106359443057570987525661634309285550331220345534125074376161124653435685300230764454995244181108641830689610994738143160856661018442302538450203096632408883713779235519568359829704606537218799322358914008996887398536614577626528105583683046399620903415864004469199955306681744660168469165037465655332176265557321853982925351216783397548578836631922420164025845601485609130538975001234720783132153319717189745039297999446708762777964627820683710687431659807912209318606602754409679272139116279171534840855908107849973854989229020959687479734193678602750974878762269564430582768473991096580737119850638485471409013879888869925735325483927888425491147108920522146089293163699645193761671717182181454030102236894079872949266577407750575946734669680704150256029223922193196940114415331514783360163574742972631172041869848222684381847157608391922605515620097335171824597826192778872572814451792408453986676631916944578189811204250434070825117221653704626840335203256942549012730785634288087545788255527546333523927823153192951659784207844864387682598586150121334868807678045458944272217643423984331381710418577437463290436888718712332941173889170905279616175259534820924504812942202622790274974022440313210131328585170806962180442751341734536980666204120479799450450482877492054612917233489499771595018071936113831182304442546693015217988708866370956837117944670636755460775601310930160529186542343043031194202504298247548036247417131623135564583406188710255324977912981524869244111805298930386816847682276643893119485683880922348592478104255831687021681971344512967264468417814729963113705909092694818276150431594662866899116935567232070705670323655968433632959629882852019915254193392434404768705444497231300700630258385756384234838720233818479756115391589007579595340986497816906331103405670021380402149230018774568014797579837759276116428430774622529279212195558301519077700407816126944357513017098546197921217697526776105553807171407846147287110247693995797994166287908087368073938515200401569025991181671437499133751649650879167435491584731425277313614975699445118721717373864637512841954293053053772634312415061768931473279731640173814120297958231937452380754725316921554944550518406863129486002173550756885803027417501808240735535417220400045299549915577598199657257051025115539656813877954205986753409779854130403097853825619668111624285064186844883001213199273601261493080326281986055458696749503693146102031705474881309935984468900390212558390886009840286463631054391936920209979561217819908093576092247648276381685873919037006761037984024154003461322961992112358405557790156598035785802520100624158779545066054586407548225724706191643065214252172891150228590572619732495313760955457674995506999906336798208339019576364884325983913538606213173566963185827052798436002355219548151663042932690479493131129179077323811598183109587467546156475293128303889179868900304510652089364462033882647321196387132232269238175143792437821561582881740695953849598634680886571863852065501526661249787144206098764113696515177598991094591309765609677200407217579932557623740985716241635163242030181571867291928411898002529730774644631835488699678584081591143942741869815787617516742274698080887205725693854675394186736696522686083981209349495784740528265405794888361175645654220754245773991886240747612485703794525225513289243656956369933598603403679760449400183362955103309587263082447882591976766456177637984400466360326507610492639418062712396792133326006307082158520881145388722116380801709556561626075571331745269936502469247360719339244121621668194843231453019711614543730667192024268970949571869630757850138385400602410106372767293485022803617617202646512568198282075386615568867424767713457575062535945284024753372624834636694070025834387402712653208114447570185709914668074401263581624965766774458253215542770682639095585295487318752972694404989778110566117210982934511177303404470385494836614505082307443807129686430306294330152066825826044280833707872437995485968981921099720616430002935364890197418451061952217566209174578095637515045631379955136277476263386709641913375769793762428909406413531347999920888420214539278730004263552441241136652080582059567245489728124609751688889979868316551343503436282829869704682737976700884348259494918439994973946101038740295104726752997543183770929842587043899974190224228360752501073735015993186870886872196985508089499266982143113588607729341256578964775504087228262382136335625269661863297903301687001303904001022256303202485990106719463680113999166076649767474010953896865797642918775615984482872554715892310313699528419806192006476878655104417871551719214509412431199788196065235344545566140571254593820327851125882080391695615812149539179302915778211903525602649821403845025632755750502586181969669861625166737649884678549505579457817748469668120113283115953422515497972150137756547462769460893826287959928122477033081150113429151069165704774600357597516888924033313936104405113435965410673221672991252770672062535026269653649472847079866298320980567670923332041117169855173912387104624923199678944106512364610657184067883550225165202037527341281762695659611075318789359619398185175453277051210934277701768241771726061549424863797420396211163562796184082800940192984205281518553700561652522361455352395900021457112524586776836445554140186720928897035931476397888012238346063278163555347379617544453424223378771718225766858519993055238264585279163706177475648022646768678424663969079092356478408259585404728875759305747827448034313988145008178674949954342473826073442014941164876617211937455004776913011663116337573245619348759451124559666397960796546809903872701719778492081247108597179526604137788537460386206863547319659098140772680815850596352404524743963782375246314140002906209791522760647965279652311147046555129349457460489298842559652577117626826979321508198939742649166884070894191129620637530940781041935233619142604776353211241115051290614941916389402648189678535436083495574906822869032735894745106523655739552198693195631616349293067187128044377701252343959191190590991682223435421847028418471912510755675909863055984999239370726947133424383525167187059196333941964174712147477972158533591897167671821505638763440563252317989558385082720763809543552482110770973558082850172570740859137607395961344896583737931619553808098047016207529393684251320378332492520036017342108225753840506236042109958778024627916894701605139362609775648616371389449630176617473228549449475757350586869152141559143679588210493433958729663031889136321049041149851310562488589077968037231131658600479479971904137974673877998491868436707828932486798353539392216831286563895988611219683941512422038625465152057190259389762045006293516297730176764232723960469750402075989747106775420125781363467777242420961166874368066028145243953474731389070669257113659056034518108554628653417623094134506045771457329825776385640718981421007669425478376003671961146228386540233484865771987092391849047272832774730154422191168364844728054191860516485259813671565402897916907537448295571820387481982480500630042311332742836740182649796181313915448507625848811064596971432964091720627276103377126441907661359062517452696584677281272654426049315493102828684336072235780737236649385749430638188584703479629866179961731754161563927893233687424861035739651516601116721030453495038064051288623061435527047437032355235696404638495834834753336586599385880830644143387537582277163093129758330651319714363020742568537388804048434515618756304709145910039817686746304526106965271603141744377875713281138924792052134943109594520994225687114871696233373445560412538718057206873355548272791850945901634771542851780079859411566466702310843023434087450956133066330124410297609219190438296073806960829890739195536347923258161491158870178036024043630146957237885673498272574655072045414495347419312987393635744950553559424368333025465952116308883408544803553801896709872202924873430058380321201443195418414006451356097974683627384600423159092554733085232583906381659197726482818402193940704665198221873744347908045267682617189708032503759779254730067946737712912254025970664524008338849297437772983430023884066056683886350547906216296856452947736877148020257520368681727809679198805033188784254764683321874525525337888401077261673759163560592431749243328281250401445557859454168411972666952686997552099817145220164454089891701279390018985498076443904776903754104164733433113447406957041931440802356411401698846877841177230519488735681771227925302213740209811697476956699176325900385732375126726131495251395315415179245542384093090557011015820226061833227538898088232389427173739131680670203960980228741055282501593285691828048295411361450795746750456061383667427670960503067380755074933201304374220986927264404737689949092727083347829575651304821670979201496091274487174585442752240771882437467112951486044809053955339507057541460669878118584527559345765543529336151529715430041391103215136789091961187355339101104567077769703279089620534294588806455013766643021674959322792963163016609017825699260392273041369856739073239278000906683592008832002921397805441075227285126264121475211511300780596048757681865595625599720032639649836597534520418411420640873547488275606084549311300290862196136360410072070637284995572792893504269543087753830790810307543210189581088603826168186700401735585815610945238677869250817523880609798165553558543555031313899037738461726278875714688904008980393383362609165302554359781029929617422364408375336543179921618806772463615574227709172246740267523152713460634840830963491019712572886937205873693105603205354498708215756562756787813853548084793525709994993544584332528923060854863030304684562715178350345259679889621723141326199569969881527421791065897711237883373053312096819884251448700446446991652988069767845211360826757079219626514840438987489142471433428275141019199167526862826997880858021159626348778735336412351121498119087778180830777799977114740804225038428987902581235304042329617663750033257228330807341619022474936763047695187656819438355384800245308665270927717963640310199956245643640919453445208531120461266596995889145338866603380821749663613996138479368076177150928220578835884449697779139018433145612743485521153588702287303065246130784961578497118760092225623443673749877347149096788699517729008047695637546644773512963646749445719563368073621654011068893470526786007687206520784751011866074901128150885544990454432853957130625553722736120555290245318314520621521486553361554071008651314798744823608970192359438801682993426133340393896618199318418526108528414139262494830756138674693561444565568276393094465387561606031449032275827063262875854924642002126924955296509509328815021998581428541004533478240634594050576048064158287710728822675404006432407296234916833124679479468229734797737493971065914358257863148782740155572804355343790706829391115960002857105458246682753240408832868426815621787684189505572710113333284895403384312243479048409965206188493639906222696891095909663180982253831729524542517481279159589110331076124897036386342758332269620274783238139568612943603650944277651399063602146472040444036648694560722526512609709465770554306767412825319876949875298456271198213826045058357745902873255592737021610052152618926419418860848639983479225637210940627020964674658943589426156898854698555796274201702677447963994097298559729015784572436825937468153509229044439365647967420206652886508130724085148184293529467218563491799601184633242509172584369707870085300704408920520887574920518098319693137441986409157181007115052373376186877934401061069042740577522949292262498564030602766659228106500537473542095948504558639009775465598295233722247056232353033511415653056004841767127801079612806785764687711179836225448224702119322842729259504698210778868051379290216217555157767331425119368938813156810464307102290910350203822864229957488076442877914185694673099079041209332059166703504847951651464185997291701620997839285935229287636981290197705647737727704069616169663948207066033078218582805040704075955971742625081077714314210832552805827160735684839073946180918020480188285561851585727166060851910570188395958759716158696315106067949316698319797225106137704337947438102429158331407296326916625432529734179707914708963069862098259713390533325523591014400552897591687526676528849733199015142058742918795611788589833069613521165218301741836776699541328281131564514992189534082936018706460875229949543440651953001145381906247291945861303204808688565924916414725635160756600115978635146235886636499970508753565976009096940046846283046589377073093451549754906287345181237694160182101958469524968959951219684384505311874069317380499803254216709633472988789115374017242533085782250396087972950529600126452688774917255069242981849730576613199199620094557934064650357550796540168759796929339088362846942805602457816183631383105597254229775559377479084223063435039664155575297682338987545605215102696110812145053304411917568479600676266527336957098223688367597687344105562284600607094529339283787119788680659384141155884311934068197910216911135550425116973071943780984303130399723110345948382752983159695780593138423113491047975148364313274108383676610439206924138540207884221301422378015281783307249983195887462278349093741410254294788255012314115801844350357158106975334774897792701466674413696811237690443930581659278956270975161920922852775528244062755159583652188591788454012769167703153746876912206386190985181739623793620312548662147756726324732687537764181979475598586556781706396782773803802735676786113503780766630918190893272257349647396315559374620579368463227055015303853176529385583076377313012975247655515779166042311209032111681336135985272025087880970020097633626106814360149545438589044198451791691712882654157373799012557025903263003304604992862729919908829935469586868025369593765535917979638735597597530059671493330803518577065798579717831937179116933746006796666881169543006486951691337416657065049932051670336666999263708202415080004975080442468572631318614082757588853743621253648109862457541725343918851089865640994093024912571228241796037391230216779570940986601344660239830172182605430828738283338023842898400116579377656388206602972370327862763415697041024533638538257344350215054217584954678447483919687613652628196783365617746002933752788432399537115163946121948974004123787241060218335487490626111857018702135577510662546392665268222184927310730533288767728261246238252650662992376358095300577961122087469361358862450919742020763196095507933750385158964647404740057047609323238501868611175961458381609044996330003819540859256152065211086212360350411129880277156493195760151880315889231060246295379533993096264759257162855093458164810088497802524777752595664049740008398459869192392201177281508326336090554039296117439927575819760829338369149156598060365294738207891033980587575659368221239398022097776421210012136318545252245952562358377279916738620730481158107061644757473204117170110928781387774906351757735491652578524090389533319380079496864076464559000649831743290704912366936470678286949720562083877327743362290242804430954389019234100181433077148209595417908760874696372888993721160476114348086943102268329556899820042114962760073259568231375227180701659519099032447834999413324999181978289694657474882376341220152936319387350505205069822373992270017697500487469432337861443377902765832206411459293132191917173801511566687862052186183604178026058084113325051970374074666831200132258499427758217650859368411273457276258044421565322570802743570780746069630693814443650089380502808711247769638549018209489240527832699986153235053927015150364627585908429211121693996959787123993656499245309878167223655604935532794604955371289011775962984674781343857946276790947881381778526456486434833602707204237687133694802373336273467309025697950116497820626581508335931903338990643825562559432116953536992367284009142844976395835640834217044572661947482493701276446810848276108781963182045448755678246069760226683696671356100153309795518336987627057212198746267693099957681097468472210497745220557264542081289702618856247300259075745870400854463340449043431397551435202426300610090694739239604483155824743255069284171053923431719875647592883177036257246054901906395929495194006025326439042678979199893762733446023757272376594831439781651787923992299659327994657468881760401629925036388296007064842677432411351612080375809282495578194482543417045322534518163635626037380323747204891785624523189253240702883849007034216425654061235170526458900853000669976821149834678988460309177515919137331140985785381738637042173587119380503828797349966592916281094909764149552070311575867983875573681901862972140614654337128831334399547993866264160701214998994950402233922682958898098637215175329780861923652918648497811285239968619608707940602068621906380067755281809748850787294983256919244970117647523197927799324118991018462662700833824918605345330091288371395541672561677378828502857402013487398595179606654481429324144401669065181334820079181983219430693332968281947152385895269474509223115270100914725584944987499975783191106299427939152532182969907974476560782237687019163743885986468303619744252316746291791539602614656187464741331875544660494948013286321663116473983791356051009730226426918978487314074124955905344635909634624815165476667001660168718098127223525359546848030723709521281036546026517747930043605171483418010580301057886261311395515257628244042120007841402175775674015433121579966759851967768070156888390539693997099364705676918507207579741275654288214148271415816743333028142372127384875548783556386257613363045426841647447191259875663344558899894018974460494279722585016048571492488051170012823746224153424093096687228704197164457349383605134310243444337734626520155197799707847711830718403169116650654176282834756066342217718014863685496086462817823574796526907652860017718044518281105653460713929496505580858179700422384074518768577454736170212204370271640453473547448553335415698175754899491590756222957934493775157120052903044040748251145352794696716061460571700633719867133743801457283855650021615037257299747399771159395571367884581985168739592514835191096623012212030844327286396387955299945121275490919684056399691744905331364152055597622423134648307447963626432215837836521037614718529162500282794211678566328394142307623523065541960213454468228446709549145228261556703735022825563342169687422290721116393390778678513337816741519827608219728537373884490283228636386778364344023589917137082525554525489198458469524097403363328749174152208724601527994537697816111346057909981831445992351846611099152929094254368715685624931502514206605241074657963358307724355917790470456479308443570560418604476769608434463217950558682937430798267215354365547840690203646346947852372616011629270604804142185961894703613143596872480230124763742652399669114529016629251975591649858474519520010986759798802408646696500276197230336585958220463414441813460386288832091983222836633665246999824012655745460270603546853628539313459495290734784228104284960468064428520233107631649144113049960643232490386668393964127614569653430799491637583573530519972785684044285264497059248403824545406920536704992230003350218338930706705082492381699218675295072244169905705343131378900435567352559149746909075977116384323261715246471239361095435513614329944876027389773041041946809238726867630774059519022845825478191947549603745048879402967412010601083598965010272384197899156871443145834987182446414003432629347036325290831952786060600799174814881963911810293593714334251208934064910838373801285192761430100208511936491406083719890558076880702367299866111618610671982124193440689625644352500621724433251423018079591253123936135329466931260233593047237303447290230027523269211667940502095895874461750046756876546783336100825168075098642538021460049044798707179211994276298632400853650774940916390844821854950178845946479083038904145163233397149999643466755521072019975703743379035165233440691960499101412916480765908041129628491218078801427962912364603566053275394185535856854735755516332724096355307001984609491317587425238474169187208766057303774258081312675846003998202021337114492269298188019544010156464243809883741800359916737764585085171737636161572652403484648042724166496972229360919639837708497597429087409001456513197845006904727219310950517749530368503377647634483855347302896445072312258554696633880819198812142881138335233479689378801078743570651071260081308070819960018113528058456957199906924889706900495639291362671399629989403221078973603999781147762169462944902642295066337215165619799846120191675841613691940632013949668575003281026532363861385256899771299106046534829824390998640638808240099506922957470514005085130837529583496283574185216879704214797369155429293571197740229557880143079784249246632041623317247152374123158170820145181146647103901724818847684584061109776674572809815189722601567316447220180222301689911186019319433419716644869019542013366160730613461093699217655939595445668082092574199591370950438483925210062185596455120804196456942782148349427244231980189332694395152028640211917029011625131260560075872049448725570103037667253678195743289022459530767692535297245358626178319750643075101791030205301131550316242048406527119635746351706976387757924301505906433715548127525432323991962794690081302960388981008792647887297934938972067809374356563298643527548846810942270922991429415933617587751133305876617808823249083200142061880144333356868987986374208680893353796621800172250664680202392372385789054521512745264358303924039497140189805954914532479850726381880279144573269505486494583022601058404314947858699036276729347650714359918860308374284843242471932007983053960656625815440607652694684718420763336388470848630322054102999458585338325536176450063158133985421706276594430499341869370260615272581735704220422040438888449614079744863574877773678992661744529295100066884646365161478724272316534977716723141665854263646865660811277169573174454109031274826550522356667896367267764614749148696609796848841445799877891115216184108302581890970621374718412482271892998452851563051864948080182655387549239097732846010201910891467449242365703623876760442549799312528918046815185761988519668340951016588210480465776589104263911079741551998606076452577880820600790147315582208549616192849939076993101971468691232330238834380942900334838018649643115563529512255031016975220453193280745476987309189585595334859258661199646003444178799778566924185535431935166954865891714254932417633696637785723386664458055320345130952065655590029484325722193032540492787230327865403599464683014933410324031472266116537563893097924493043170868926152686312707311000383637731415367234648312964898540778861496934980985085645535317445164496005458727471188052191554255390758440970164054306413488665754283717089755356045315628225298483112115908440438532612163827745470191497126005114973499698985733278851011135062490513682341491665947877192031865310193943031934435212887059649102920979731993571195845881485773889905476458139757750014795676921272196955357867223918175979764651252816604405568087994298547472188151782196855281415107091654321769823801335913440418035342045245397018774712029212483402687843903861313963084038077809310026284024851673298787668109846851505132629186491617122935660798254057533357950555064196058662250689707615615670807213920303589256834124841451860617001615376299903811310970180340696255252000682740058648278296353867613342974761558956593825307852827536520161216806825588854004091476840075296523173720837796692625941003054814599609342501459580242897364488379169107265265730672535359419646409898977671462307176089154357506309265734975686419864236359786334169966602723710254363637247200817500265134718525489942264598523936934999529809873376637344798186000737745120163765710816084039494833631835800581844836241589654748009294420873189643367212936174544803633491241163712650110539577916775026814538650026489720408121914392941132996632849264294842078817446420287640421345870232899823404217073905457695385575523555302817980791981775065369124772303357686976751533298183845118280743582663559716722472229694189651246862113600716270421640496028434773226852390929594390871100884569961230025623368970965428026661291094232575134541199694989886603096915002143171297623582639442488100771485443279008957127246148051164991513055010890079396218180470757605439717723370651317198696886038874489902305415015976894672738655153593403809962629306399657747526682128799519976658613955760221737731638085197348516964411526694312213551507283739567652569030742396929942342382732072750641719647685326358490629472884942131311978954285878830882408164227737399888640366682534964600932769943764177126728835885823578124705056698757741044495710183900179948523936673398253542813002899422803871955032368039832320883695140985856337409330999774792649581385092958453487465170198720871509920728365704815195064125069155062238273172038976182476342962026893783457409918019948902329697684823959780651018348894134511323823026591430439356632578459559155028974306743300321979370983031896562306634527154703658887831846689885155013161213525007808934343543750502332880789889403222551410626651395941655827967947008433480166946557709523625262434679685017897398399589839849707056612801441841290635756780220293613830441164059389272713405554176182190668542875406268807599466234158783690513505793068262997329872643676507687042080008653581254348248754861484375340850605616102722693602232785873040262815538300456021960331786830426936719033620953423989141843113861096182158541507835162141771917179559235676639000658473434409929648698652791162850769946208675782415028738662050173912666182717071839833930128406744641350923897128421001052888004626140894254351400045933607765784775525137508848034238214497493338106671601369446294768041713268976969196451048338664949729687059640393120982328974567874221016740424271132631993132421034324857625898151012078172424991425925864944191814217602663157226826524543275834573045521940438670091374732829468845717101610213091867597943542705868419547230019303292485262572025694827482048617458191005808605088367503295333516032489414619604302845794111348387076492286052594832610654730221362305943239113922971281945904763954094893416714593929940935791712954960710429584430978354734099681233648180851615363064811984866687323405913877577579833915050749678767544216979466660379438296199960110966656200603604313560841035928442231875173977441454087936680767627946293422387623606886906656258640464651056825275214934452108916230189226336441755923115333171318603874506777872378485783030434771810529514933744522898495041695152515775936477005218161896256007299370074919589379808151883983807695336682026686136548938418158146349726901794955647595702206180498667218870320683123181089030623800428323479254779783681892368021605870871494401685795725045163162655423801600475859932483955396783537340681772220950351802446468404181845949930968763757206546278165427409639403751011810716526553747101563244030418796458894016944878962692392362938585691310186452197039518336995642646087762403287870859695829982306911377496369213370338207718032936568653829655208178198991793963618038014727741397713772212134109460276805757965761521361745800678245128410865296764864373029175862421895745185648509205663723678029101815822084203600027874173157353704468283188807399907731206928686489540969305083344811828071032481604652250791141296242890781365821138153794043661087920266548385131132873253226642652120699482867983969623998092201164718142159612807718534426225489191815046581183480778945340692418236530252637494333814173996941567818351861602404683299924805688143174633639556848068333410844315793411444306947253143619300413002019673139357219135561858242817692613929483686925496400676430232107688498908163698991146256881200401061928590346858437386272928095739710198157319638928719914949402269367865452481308413952917672614349939684074970028265073442165086475510225605143278192171800788486927739573053584425119596672422155283918264072382524210554652306936246769557448001620094562219714284569840788281148000096584653352440546087305697594237319345907191882476493657272616225224763495174621378355310300188415089518270046867438553345550277803486243628243305471181040180064787113018578684334596580947051709975760909727548669400389314527057962218800862173944487246522087493893243332767015568501205844387565141292646612268922085482652629647457638928060261974660112890242242241997053504336662559490366550026404626078907739516517983102761131235957492469301823811802973181568939969414144248637954208956461529288728121815490738885287673176253854108114619729172658343493431154147980213586431429387034228933646551563747354183997325512170356243037996884899118824894734998173005887896004222535004110725999304671699250194853429882664829153799612618384384261642101091370714167371336623942349855794691149208189273396454454098067647543927161145634759414176784072224178963343565520117625607209346462594525320401967911209103866693263418717292404073304402384722997264098355194684311535569579930209921680453203512289686487560495688187968282166396117646723090080636015421043694122068018618137544324355444148521039134511945830263728488448443868481143142950400370053175285286815657176427369930950358899014258234902274042274294112549891247671156043805709738417146355782804799645367144372475737844491238823455517926610763020031814206312246995270888046555249524755680433621712635034399020399779845727575925903008921756070738264654293141622272209243011026380911702782579639053579739396156248784795140943007119059046716306916531067277024616574894323213048994961437549200511500109014996978986468498572163656687718602598278236167461785842541374976126296405377587203839141661977305904129658260543182487869078633235447521193460269504867383622953043868800400499692554259988691779580128463722423950934304917791067550689105349055845923867856456591883357381498018467349052886303685165549877051645772155339708290649859447157811011410033287925039914569067937395220632596214406552784402794988315451238102145957513812763135215662983636096088505565883191207954388786469201592693820226417795925250562887690241180499746194051543556524289191624035531960210196893243268462968984680015684134440479853921016915876368992840431425822919339801514685528905447975590602419561059518528384083157659726466271268566094191241961527616838168730491183572692462300792515696974984378273280875623178753959663629065302446991981830085199827434022127755374370124494472000605021616361170501257466522796608996107915214259072644536096601658161872245164417602182836668923428816826737137654882752072553755203514181641753466600374621285818911050370619154056861162787723132270526319098280461445054024402987216751663839005245815504345824462993483840107814166759272614940264928917162715393209758317735533195463959628640298506875757476357995028193349996362157249171166971325567025688344520025040009623876924988025071221367434280913142709154410451273586331434338594119963991891574112964967786991122245668976277745853016027397373301215091085880380445994845191037912222665947481903964222825308529905667530932419830591016457505766832365445215978639661233736238106935981035428141523064537794644239241677453347077535705278596540905457701504576894665968098468638457814121717630920136599503676992789411700346864627570848509207141939003355703338839317182140927540694471804999148349868844009439421586810885336740268181842431825244661890896494368647195630834315396337914110380351245187845280503176403014254286981025361151485910822889565415431307255340267026602137340494117215188226459131878227048932092024577728371318836307340980798348530884771835648732954618834409157619836995412772026188760146960405581946923029381015600081965110159400754805490725078024108002132075426088748736408762804208711940460304585990771887455610825151811094976255720214134811362136632210672423004697841421282049273937961523041647855325860652606622883059121544981479160740181355522385535717776853674349156841358781177772655252238784266107188147796589080848941112902508828039064068298544890193142783701612860541148004526648407406779275696703360604493940370096447081899863235015891407749222495790737055985957855782355586446213761726793890477465043568807358630868299928292987338467200526482143837281355683956275207243727497005138774514331443305016499479387245544529356124857474238140636743361234254936591418774763605800152645999979263684439721805183133490016137779620590224609730801142125149615978852026232969448518641803569685130099858190155753740919796284965946756998267904097832594720234637295982595151521034813684743655105779286498170561327717240385942297957861685128335933643256980104098738359785122164728872976682430694823194695678474888741363164963358665035667890730869628819037422669638704549166863809671987152431466264565295184879409853339247022344910354028160526502346785449051373715076946449873927908496779889564963108375962213845385204682545279864761995801196841720545333590529891001642379023309361567141189652388345781471926659103861711506177918717537543046112926714314914132667779942347251461048003915496647527430885887291831903624039866506848226404558380513450147159287294391499179914898957969919596644430220791117121380346326203914617700238369196719388423257771006744518646293811074904578493105605501866456052772431640091632159098474704806659520465390160004080368167591774405067289563123834539057440951548654168229012465778349684326146745000911244319538614342145317957488321577687889733935983673920426414781745491865684520651151045927854241514339774767384207123878806517101938600934548026596744920100577938503187905506402584055783001451516513311892198209116945779070307906612472008709251169262238603529756438556594012662087812874632602269375921919083642610930275318705572945857967599387319266579162251705951716361255394238134409063135676931959207778612889384454083667793019657720391832636920118043289470131678506564751629276691103354429270818469695275240559545690761223188927993464523714355803074735476101208364397224881995772068165184272692292514985013432583499779725387686091111891874306417167293693005612517366757690565448712659212397499445330392880697111295832227838201182627366241038515417862022019464395758105826822949951632786823726879818161594594000000817622571400655759989501198440028899282751123323202237259487751648660536666531824331272115362882972626095767830057481300206783341412600899183242878285185237201605958677529354448738403584487481740318333780478155392042949455129131899556158945051888784760473389103075974065344755134699409124133934145802563153562757488713261662446477643782640727054290908885131535652248603313601242232711420326163900237317562148939073946325953631007043161424985104422704454116515018295750859839349493449814919716575923412066991596682303695114623773678646428184179184457921963480430112593007767042050783508996901762251700682329879009492538054690690283224413705328199598148615101007917487867591187728222638275832221020670410160835152681492657009602308241278427356784505873782574942006676325601835170260364175768660774412364896498057045059723273164813119836913934838725373759063989372954454743645582218689809258854772777194588253462512831144792509629493664577640117736143921049964075575059193783502915046267587985399006321277770469111629981362146913521883226935826725902332031160017531751081846381308583493909426072976608607356648410413162247426696215187598558162654491565041607534824964436552068187816530717576417535279405846832256059304818463388543274180708357470517784283864515573741374635714058504460154973946000840442386637353065747084464116926088392268902888677682898817138207444820706169805167771712470062248190652944548367336229904909931282207564148276901854242465155574860174092894169619134635871770884037008227120194860676344637475906154093512332094521598204980862155642951280098562432833078949594698893404543065694187190714505428327649496142929443794880870936888167534608614358961303541970098226361481250330610402886213334739389183044214073379759900031998432507735711660159392654750207216576945175700124941255621067314700234266640218916880939509105006540086473221355359632432804103469966890285330810576621722007483258966729695795458389483658444548707206070415798208748911395630324557580851651009475367366872214427138665233032288837265427105068125619607337447599668451293615404516192523389732750390063337516499983390212500513925817478187674500701863765015554795986034246829934362777888427968214521644221953265255188699724397751036092134470826257980710603648753527853527632688745157128203608837052972088790690032777151632251911400547500951127312630221598464045046681780906155103550375293347851566210346985612838972536417829411581758222222043158514332419466288591064860344032715766850232608257158501212333953930249731058135192682700587672241759955205175468338847798271449070496101226943568955819111444810517782352915090876225139466949974361998383947370979183330031443800783428262637206233375560254181597787013153321282082881884312539789088170873311797293422093579500908257432070066330898787726983644071922564087133596291165884516645407048946000484592663913019318153241212079543324021144596346107483028451338693017732633616973035119041247596169744031041646039738260607834842016439233005832050389634595838275442605242656891275791744165491371142884511363078946496088929307621836251012741857892776312989836515853209488661279799714512838484985291488844981680967302434395999945926024987774402904801455316671113365330866136414693700647017805794944684048184454472147469374349430295295826401111500823038759788241606515405340885115617187675765203506751053913674408753476505162008155563040785983367081906785430546215151424249235352000339650483411856473940406035054498057161102434427275899319808139943671142451779702271691475428620998925677323971093049853220106432198764906088556280763689356686977600570501586075642324893719600415544192798630885163027502852526703731749048354512736880087762676108412616509509317882414371684506418677117237186894750853436300409061745806465195247527015516083727463736650700064129406730843674922608302190867416383292979322599988013857019265481481284428901141771355603545564272948530500677181919220510565864591089565131163618825026190799776104979357724505084558344587275610099986731485039301168642218273764633618280779789447747691433131253735982850054195596207491052849724171973006527725597455765724792785454991644680980743891926479836901360261866593487550806355935798759919158272242248492008868833270528046425677957814348623752767886092438115833436350173891365001646503328544423848099354031149655078709863158146604611445508660686249950754778965586590052138815997316831682348837889893780304347492079027856058669550962479081222377892878898223644228753572802788664536738924242960637052557365678249123279595633906816888966793458413778411487209246634670138133877101335541495845718418738001185460849139907292374250620804431143387376393491974526740536623586761018328686723875108449407748007757412166299752372284210489836178024081012593072089616100905574748586323889831844525554220359644317357523066344223421456829240078471254554978638419111007665642916620208779666915327382676906443551054242194647600323771130157568772000750475373084073234268505275126916261526349620430336091354477712187910345658848895292804180119196666836094462512143931678853477314674877249880184706498622468160881228654616868252055842183702304071365414680967485707823990875049130212419234572394533746694327784757131762755315807072760430688963201236260111178337546358520484538633910415824043237846911452175332589594731084199322793743816745114727315792152927117527031212793878853304440325688986999314362458475999835710017746937180632122611004890230815983877830829141809043374077740118884807188484492638377054742113952627675882006627046421977606398573451962202713818582738893537784941835718834495528979677302169895957956635145576534423910766884395135742116010450956161632923281155778788037932623774857796954157463565853079209625177355236831128708897097331539292685898445718768914942613507683498749088286399445509781949129774843668545140864147579919503044256094529801453094225569844737359976091549814296622058932074856921005153000793920972150432151867547704112366673948112404426019132593937506907445268569133222855958792844226711769678538218286035611017282509442344300955590972911733226870239750138016923108417835045329299182493155600570835737267947419214284323042787421443097932945108092848441461078699366190694264715398980612609900922541837675104867452763886527339337287544768841175181050640271282108179061183500313980341590562571952206187831325776947702446356980457095439035348991249755882927836981956357335282906643924087974054455494060544599174804088183210877358599426641816348814498415706692489073340081318157336313810478310970020005091104822651781075751869480106507624514658352336298230026712037600923470270698403118666979370371393509004218471758259905143933591428239354681583709815541510359501486280317463403888160291800633705790496669046341914029208628818637166839948614811840941901261423557681460998955404150601559169870328888919697531681795523405215471813146655630437147400567894826757208126687405833651860339287252530495217592794840695202611959965862636936827004013335511690745611407215709315702248659654710702059322191683871728119110382951383640394462190001630556981533894314152742978804357684657058255892583635682772373503018634747721515571032432695926902227774018823621547653883027044684987151593989373199798575410214059634666705533238424555191144044127699968703449256951031306964711814958067832255671232981419561054548839912327096034622435762010326002275932298256379057532997723286019124825468590028181381611188597893146118727648454931718199354619789836969092614568436054519369915490343941348913706926484854441188067400969461345553305031344797225841623152223212249749150043769557942991270036937353793522480618457735302258411418456821545409568040971337695727537208051650173905774968528143700012049324343794441607775168452689192966232833224384234387959042582020448044921319614617396321342117828511702433205389642424647246655133819527799775965039551014109186558968183322506439248559267593944267277478743394637648160585230234610261227440116830936451433268950867150731531320130790345091944960280261824383036371374386030009085901153554579440969945551799815599243763753269388107705739422121377477052191576398002823657933501543680590734573658006962568145445240718021201308390883164742268315480205728412311091360782838516219023747420587345271332103011003543506419581540937962489071163241865103861767839570313254398114610631042824081759272257367867399349136256242446166141895662811799823749550659025380043860269147583404334941631808295554128464912645151468087698530583705273041778654942363926718833786409842849844514214462491781688817348399783390262425732991520488439362281491298564578577692376137530945178122480803189436380766922855279205156186484108864066504841563561729034063708624602142222825731349219552638684816074406709625945099989333187985803008890590627663997402089310758813627904797746432662072609261272153029467383831511443748159628394501129824214374166506071151348322866858546945661398534129115201280543856546062895817266648643792081352995608634221458909808636900826013165152202532348296044354439007281797706874245350696038980984858271842566504578132628648257242833728762806935875578766565949932568736824910650578195744013580729699590768655690777307076044226064941285921293071470821739135126986897487714325346555347226915346057178786619208655991423749852187391944478972104805105855887260627307457829182645173891689133019096533358786576315748221870560731231419199409365690587383722111975693016237074197007770459199971331184118581720411100587425714754013882913802620541227742249607966855553845898689764055520578101722834117953003745819387298537687914340735056689153618856669694426695582348778839131949647244043983499821503905585793302490042774557528542021483123809599536505008871938915904997579443526243123621699834826162815169429016920770209130469551729606001478025643098885395566689253845580039519040108581580308462243851497555429645407533567495689145808299802335015828063129948639325083269256479510239149098687231394825531106060699095684623117470382440195342493269086135702122089872777893322013911192818207211267409976941234817038214254604592951199931518520470291957103240513638913418521401625706395598406600283110146319184164878826339039981820577448817349546078688516422625649121601591720183560751205716948760481852190866313534676308047365038064034298968641762879075724745956664808255527764581156552967658487402163903679757065510858716712745279672884460084867151259084241760541027677405393862672530507801490279336585039567300435395160856375138584442006756641959529184472833525429340215695760345794745438872904907227432136647222015993789849771741550209964193128800597946816697887880296333747515629794709928981291111575361597741422036883741463412782227180254972744217231741301032687785503051452748664759888611622211099314572074031341642508009057658732713727329048673072268087710667705205486238626361078063609855593119262202937830353566209155743467183870356872597568845694506594827495576864114486620745970352335825051123297733006802588040638533790050204952304836856502874123287666017377127189137080899447968664563029552811315532813614744891186632050737158091938349823568785073980770365662598662323940226817534121673205113906305093181452951121322980956665424637755358910646869487693158134023395414116101771664218857384888579295852483747192009890709710955567651422908948674022283675746314592081533934738924687792246721788699106920799897011656053981379466205448564514129349851963837492900986694394741475662020165255194678591482522570840921808653942120214234625991645864773113429901680026219298678737404681479827229493158216977686771226219845141810483964067708499515383769106022329308474174373305448223012018609075607504163749826299529566639922081471537510317070190568900301716004615248572293046297759562083120211614131202112914041383042276234616691328943199597665608222998912033284259101071276550021909137470862485505828225687376691512962465312372401834452272952630987793053964025234348226055089150321251997394167767592414733306614031037374461002290319952439127815516758087219764759862016203398899884850115480350453912059252220228133698412068975997404590401538517916646822985072631072774798072348082828282002387635808162555763482946167589755078293857117794701306200914219990423170594476000102102065889106285879325924867570168774963575488565600808203385550263200811693105069794226404914329637989507884615689098237973362320605131250333229064645746517803883859590864209000314798726352737124156276699919427808533264366692953796401433963953428008325625030494036779872674943400871631266970922737693419200522840386922119329940010455417162790234937581982246524646674531869825639675570755675605015415404960815712373476438576841426573577336016898006128018865936526736816970161541316723687375818117702560199550960955034700084934476666896718340780159259743983374113846107330705543857150028415575964927400131306257279646802329901196977144597548017062119098734914233593507533292078583151188205290196374741784974667021493908676836012686662842757596104720904291634650170921930557352986639040942013892461937881830892371013241583775359165201197164174055963644621554729295763688290144254996596868339649018691100729006656368289960322426418915666184716465490058719828902024458838748438912863539841606054397553166405629586927668687667206768877796649655433477974698312069184026930014684201332679154240311757079440640472880677527402123680296332825585995675814161647174064992508454818666304355541862620887210882928051996875816465182215886346585829305876312014097095019374955051320271660634258847911096675042017243460131075596510351621050881561111923532589032748327383468123134675612815811888285028317998504915647967655711399824357172128384355291730321157103393725588587798458516801984390979576622690036942481925505922601357817190233678977850463878988923084282510593941735289011391623608510923005459337437665236677524881785360639317661927769053547279145225933276127321257166175250109181263360280696936757551830615168492337294385695254212152136871464648039621944484699158550144920370641344618202967473891863413444563573746095970734031651882857690434382127680775804527286044510415007776518630817985424771719932692385590395499951015127111639825917483155971896554834099078617052425923754859763980378643168090291220210776962091059014457433344241072366531963693452556561001822387733137894189238032173355359004395555822880376820662513487598705821612088016591078964796167100077013013849168566030844829046217575553746183462493160167542423743173256875827275151214667815651938324107438242173548207193223035253379359332975885390374024943048419492612688419923870986449721015515436689991131442040014524338093643171093178695217174577360956622413971457759410441810236699953580083413286184342829444910411621253695626701533828363606649754418918724922794276923353776351132618579677072329561133627820179157659987575853066531166211240276009766586872184720317858940044753571733117846783840712031186534346226956488960855954912089940652055799561062713641986655859044973585187104979023586399080065293992995076516745638485242861874838274780604197780201716394832878024991804959544390228830347654202199172922884398330206435910584895081686408675122160100623103626271447437359954577423511395272326575709180914715578892359451133766772479956597650903760017537976060352094879458872275944482482885496234548921241733606077870656313805104888483637309707976362876709967311617836488046824676107078287319537084630522221447467742262490042954470413012928474175454366313863469499841841402893648337798979959713946920374434360550074824007748738470432989063819231432452001439388374828136466510691884929266277050083129392225084464155295764281739198038551980948045451557198678467433149122065001721008899765752158600404610549979827625472015319366059558948642386681930140227627497796117090379679847965842419996430428789218354506613705230725674241845586502719571039707283882414712030169644983137568850499234260308844213479364545675528268860874315322218618289518264172024728698525268521208000370343657345275901114655617309544967450186374857168657772809944687811284979372572626249791171222135501987759691723716208101588212999506199477150366487060670214653146084143336145974310153651504629277342397924933591081262981458037016729267093653491253904331212600037410380306358053278219695294306208240621494407472910860784161412705361956523930751798099993344208033621767503941608118036234418278145848845467715047048035200408978530589331137145980316010204585642299127505200639593005846673360447912847780652642955095175610558258265081852868593794827577822627092549877584625315229588811092932982953657407001281417408340657778820103914648761047029163161819853286084938701193240378723437832665153760877195172608151574709344913952424395455869776178828682433501607446563348989986494293298326345252462653862926217043851057204140159466053777410054823923719518543183298614463988286987532302631991288413340555642068529256459822653439920949852712215587118706698482947753177033728640109608389434586655267905500618238450853338650720924753699144928606905005658360663504230837562329704247658672058300508816764400736630952538726016386198176781237215578202598398941191743518813651971239748216980410454175087278163625396384364763538825166314475354640165853840359193530807635510855022974533544717324688370957663311228001807008603323091060070224120843167822020233105199690555755717076009188181327063994265505334857319534662419919633515773339523855918138588684468982739199269569935265153711345954863188241803888357239518555727908391642586271478850264091959653791461308784309346462236999937244598805245842441257273067052202079956302194806516471705240246418988655781920555299427981408183099950913725013419901701135141268507731157055553776055064030586226637364674018438611698805091395127930597019993180137303112143208390536361538215081842683791865797358710740737379888043407423480334616919646957758999135029145411435873037466060669158653365425592915929175163710179350021936321503484451449259703845057509532980705983972671092268449771533247404182250091609662178957895172970096251657427055978881093267107776248871856432098258599163717285797394979104506732299868967216123766226861587538638727320527235638299706355415541359210392466297022121805764432500989657564138980492336978502370669331611604797575040449788944316022530150271266687881230584207452252910501135297582818568461816867927800246769316960323487827995525415820636736146832857682067090114390365184713863609849074335199892458408650469016844119028415360543460943165495482446168209529664844693761177983954069915175845295201079207094036632399166451037996611189548873050186194722047385051068727107829701817120180856570810929095578345700257945020440461598957220587960480529710557212168389222613137696223982026505990253880550626912159757747345291756939708016846886780913611047070144501935203606966903382394616939851487248210290065653123817793610155762003144957021787010781218236663749550035763724573127027468648286388689312252610789375983485176352477643546789746151161644338176434749324630303856005714698593572092882196365463564575970328893088298145253858271221329083873732684528367174020740044589215934426703472199540864685479524898217222781396359232557390992533094433264460597234283904496177288023497404353857080656176871750659128394326088909522475522183502791793364064614579014891727178160759939361610768634261699039577297300856620824403281122747372216830376151015324466281960078988240890654884268779586800532632510061285796689682789571398185558463928491781903631544233669678846424069533588425743946529318427803295960876774877541217281888651776292239467966527755381633473640508722518002823301555507620829989500645759383880834485221948681105836386215072801732514429115177479828863944594848028255703882234043766717468403681885326461690988883559760889032910438218578657271532846617576819445487295272825899353190669459196038274239293491185130045036448827785947126434718055313521955963645224678461947862902806111465633865935010238250095320284008880180358143407558162132238699842590663652349189544181424137115068286029561779202177862888011076274210035610630085318855614269994018977773538797279768474433436169912612587500540619894186844506014373542963194432940435739871024448399290900106513160657015706219814977010451401939014729494995866565522124431171596639589635683449185056021537406052409963492571705411082652804444469213166307005731439196169553227598350777618204031392058507706460798013602943745780058172460100900502112448772161447870685726348359345798799072920635576852959803922854752304916509091454201309287137454096519730142773829604298459300379257014319734206675896505011289234628846744701997390562176526990734469791130487622214081165976589007025651427072835015737782890715506801773047268944759584252244678905251304944616484569508186222155094592214092049076429620047706933689353220177904165428412297390634640409771700569289142272489444068696373748646488584901077502811361175144440084777628960754060201231626288792823731445615470196681593799247409733244838099561209141798457582419339857266258034903561967709701108170055448858778816891421756146118578777137760911110344392253627016016456608040065322326004087208370991371505733979376481352757062953590219442141832501668367320974005659573074619866539532704822457307984387339458889047154355685414354354568225057459242370434632650172242989050052861097274104272926956394029572872093449078832627724320256560824323663134744990824819488072765277787881127391255194396053606857772497425267214845951450045276531919530287307313446757118698624694328644072977268165873152874851262619704073109918474553501199390042099048654792476596097651007882878584915042068043524635615761729722082280188533545995092833625243443548226101610291833102641812416400063634680658178885756695974842839550622400637592440656127675643420600627066322870421875385659743833419609070637304312777444304271432910501118770411871055850906820548121771516793584157800889212472104431910593477709600303188644857745397721104838986391767380240942277424529988980900512614814038867182129696982076467779629713638921672754455681737884466931133971840050306446753037185417855033372879931623485520939392823511721369879218105515695446544353576090646922443751261201543340388066284979315119581275812226365964127150377609063327977592456479491956377345258831999885928664509271777895934202275631274832089391096172935261659656008393918057162154372417861086923621245908700402835463361018284878715686159349313065876291891832455272498555282929574565120769250659044378566240675439378635486144828901095896563417622919089891688948600701093961649809460720786110445562268740437115725559783203749378037538603289946280349441196348144767316520991400119500732686281148480432602595408528053313059031967105955033041267257698823639403989243919283798248043354984336732947941554999150124897671185356785529148310080719408002009720083620230159124781778694735788904103272473272429963540269368649636930005571555655893420794589948961642993140921839606267364063661434272031198832056245341527551304882611933129444569346309002642578818370786990613238257627399765894515470785210154161960441210832770816060540404180564320827534344895633865809011309763365870755471751535717663340815231336602919582038781812026058317215272011468655053938716737517642962548635057618226757927020753688742993677987677708439224304892533822706634049359348990736872146358937559288054387941899157407444537897462425001661265750595873701952485707643641370200443772706416064779978426051209280469882898623067033149652854075609919641648978484193983797509110028848614420002525828878906840161423777642823067569839022364328492689769795732136660421688833790833085567516094937012501050629084933508430263386350390375898005222066576102076369175196852515501073515005597564355608319763428644994169573699831729021678986514896542962935171633366171460426334511693361136046782034415191124433875966832699532377377800865558891590753765997793326779630367989754069032184165521947202917965995910003387113361584405688551713784002691341174182034787221707572737202496405970709892756734050411070371827618871766691380185271141896640260138630088914670351040764111854390372437681741846339134914063752360506948359735657876589798030059305348002467460510497409254970735040232272238838473539851826316477073581565943830823421276388643917135446891911968324191715871254312681335025293674254964417566459017058751783938439900905154895122609102161482768046166329021174085828200451214116621415651697336419377603542639946320361082642998957237508804306258312394255327229998870958270915145221189551893185186969995398880202973715380610480520850519262968561855860789630209375023018705740982214980912003528982667446968047811722029849433436516730805191083456266755484077372844392096672607779933067972824965991693886859456755124420661202319463702408247672400508829528749950963020549498586447220736918414950890903402160113791037159793454890942495770196546545387046562055470420359668504384737302768441095158091759461946904644131878008175804522020104058555395647971743052304931979875004499017542030516087503973829156489381109529659747351288339745408277115092274555921102716902235637156807679444363506722774163701804312016534345555164813993190790372520614981384171400761257219173276097703209108567380022883301183753420753053567180882202575573161911252174546121277151812594400846738164704546066133268198170244750608393569507400942833774983146657737513970927952007409669304335534211104249942375925788642824497123791946632550907528976397763661597708913673542854514507581860637027380259248180986539646711379276008907656386532202605336836990662175048417630760868345977048461080380130133711337026022383502592175313369071969245717476039848108338384850915250310926564264556869716221988213896802874132450739635887707348021161897810781735185821314895491944470650990119504177427465211291269373463211811110321641745366384748930410445358977029380483938310608600406448192638978751723623376150615724483555501433769865570356156061835946525848487402079093573467063696789921877627647697123060161917702871370484143498234803153098537646017819273119930188085396813930096841474094807027606904456153988474578970533983025584873160811127719804333968614152957429462818253841480751938176998717846420452850005763372121212017486947762543278858373375267179281053313260886952589097444372932275893288258630084101109052093024081596444105225906038641166832435172974398821978736168586663277854116406039765249088801603462680792045008197241538929944996663069826548943530100354954000430843088952980768920259467472118789299895198446361688652049119776126544585507275061976271638959500581260372513361063965905910078061699687913136170955449018318275149146036196630955681174442937917283681057434151867311235088395037683811288414466899083714006318395091456728437695581583935604635588311268321598917164083860569930189159725388835182729511964952824449651972007730716405845005422541240675210480399654142911474358061564026012548601975925968367266519795872842463434663252973216480983682765938455320985256412137199812183653975107605618174237417043848588162470284427479741221796690784689978399560170870835536408379667173079008449478073904969929576255102944425717504455214068005107651075181931996291533458452370708484465194010462437653502140790768459877809703432682899241676961504200505082274788033595580349752557578558534946710047003371410010285318866573123989161951553129601523619934503602246360813261123912691580016969729914006110963971990003166594629548386218530381515491655891319221593496472730489158231547643461314602321831687374316398205462033470002911477467567462929711590098449686638562004575785478783289032295199765570731004707947455064956130687912387433672353263558279343370160442338627010780332670919959332493803123065871792064724150874977593204649837189812829399726806596326139115633669259195024996704305755888835363560106905765180794854659576366545453151714195094564608811038739709071451176262326602344008832736993063381916018291748089655524065549285166542455461326158451965512920098140409429722439138130376795824561635296638192737180897093502728760085053524482114958195335522335668982158805455667087306256059394435541008199274809148161411600435098031173464267215897447122955871592239521346712100759157464455581070415029085468386761060207299134105970756393102021232395269998326233520857558499381742720557574951124021367528206448330875939314005687579960624440477144444645206698045118756696399486871465741915905396097915601490173540108519279593880280167650856345964382678003562893611819935019907281972594074363432355486604344614315209896945096795678833681797831776276012794979520550994391412732906488105964660717016304999231667883955693170493273471056938128977706104169339539120960529183426309847748319246330463342395178804378286077776930625992195811798191415253497417835502385851267835784870558067736435262844450446215009896719144437924985035239972145281692002641056647278463720845676418591585991045816802293704092537429702072518051605536292855611360962198248387382945279261204206083275091726601961296121104872190223126946055009565788202335983785650501896134672006485665029626540173773089393860288713800193185334660536165752139671517838350419304293274382121489390584626576871828009429597065718877671764460388648610497040022621118432019274712115054667367473194987919406873037649581997897601068333142314066662447757453025015238865030765277525194617571826969254515498547503157319455593570905313370622156372712014885395813845624875325740857508052563791326660886533461845039910755544252041888115699476083322496231423546342072697497171913637696773657913621679227020620729881663168411805615566729828223880960261503010288357015684748405776666687629738624723279423887002410209241588837891661701338286461328685754159373879943975626578429128175172765581732828136575320393601904851189691268392951816676470624091634150858608555156679037076370622399516440737953939115775233000892335084227859635374099630124555145229938635673605312969764398248317201982781909780363484112201530324882628171970016201712394431212025914747814352064832258437609403644561052927154628153068883896652971993967761118569577844732158677733732537823442829961226709252808344946573171816719829671186407491741290615686050647736061109209508343441757937290013906303411701600367864091845913333495147704634185400428947777050027184245269154990774663372571853167045765901494452673723188556704685496903791448249713847161115547212047112532986568376794640285545677269162431786225123763073211736036284068131320434174500649843527369284596432481676380780402704961755073136524488615424409683639883646949108057764585877487025591137250988864361582391061689451830105115271703775811355762162365366072123719494259937005535367602927596057960028126553529584945742731653240357889789906646780970966606271882530730531081750040376382244917024574267656107222323449443137618439161297951782312468625879236747211871873562512776416960513848852708184342825999180911088293860738326614657669245282514461321200726471641335236014753589638571083462676232299343270672108005069086085619339974349389583219027221172356285272657538315725775618329922504041287590373149111727313185131947737604054227399815805183164724838044521276328213498801578627893001782285782476411033472340057288883239148561069413967362710636991355994657201223972053028994373750066810902810228593336410220328743596173327461547399954825391419220465130023372751774665016000990064439977122715273292292547639337292252137156263528654156216318303609776092579978892699030407813280391463659108240251289751912051587896751197814301504616466634023731694290070988838396341980152425762111860863944898674396447689516184450431682085753711621736769134950121333467122093046169747314412649587920342645819592385800763083778616019782810696671254103067173789609486639197302043525860588708072912276306886846422389337242366517671189999145801367733889650388892778219925799236057931137124658958835461588956847092879529545504573049487826703463871658908688838703747222048571770011912462160206885888144525397095030529897845427275836983574183688824955952319144830784655884406327275977680480604022768313614730962108770028625583234408256883326746835609784742754619204682565102091927142785427176804668379488849347193084194909624023136824617717930058554576090974028006210424571056642005347438543276226814773417320388073016824766216461819991729430762880847246457621272200002413500946060345041149374756051467526570285842728740980707409239354160258135983584637162751517179722064119308132402289977136976142408660076340027928866051327435864821482298226199977486336252504527418682709087418975016483165623474286856141045114166859253185178581246383070023868248190285486947779228191230168699566480814840181184987315881874505723367757993466147775531686497393800682905938872571896685002631149415878092982424235942611861907602902208550147589571741350216962790475228359153561733867790484904853122593111504329066639587140825499825611782454526084288060356061553585336150240876668931917352520613608725083466589651753712787838861546004774937261922941732518730521130340674119697956455827921846578777392798286926617204428514045912869540546241597719522386204723440350999303796390275958004243732646077637731996938169244979798871958634809914715021026071345413753419345212909746356837360085043599018098190488650936078806348850901062814438258956583540939645908373827383189915433744598619448628970483295306417058539835340806468517305954654588614937846410967339004735702188933660794434646287702701460150411916043793602668450636431915657757782618371348849225829676350027346130222079893943286058035699844549863254425105394197379652046008839109111653707841150620653514863083699674227017915419443645005733498017305137134573998595668453188123677944592727891688892942254494623055982656015541677257257663742456873235212439814506238417168144161069262469314996792963205998339965993153268261229389162670835596588855398292260948815249335965096697492408001207291383810993395625708811192848661334637174712711026451694177984828468276111558614765697073951947686576595238264986280573105035740676867724505939286054854226008996391734769767198228805396858929199893726932761250095594754831130283658689511691213513878352847006308610249260515361340456649979022240575595526801912084775681210875113854544783462288688010619456314420884922465027336246464425155496061677250124182902266564267989334580617434200009297900905789675286029099229936435057959624763139515073376667947191130525592461492884471904884137065785254648109094649350350925389277575358917745283753974897865751666070614073068581585147125531159462619358834265579744082131078396807694289291989587880385359869048717859084167142111023735527698974768113734412917357421091842228490331603622964853660840514279100435785269320475132144383046286458138294069490892843637585058133954053178668994981601303822647914262458174050867781715462623874592603126242872102992675357417516792432760110185773693482276722287700866897990008642559566913830823642031969119220635099590150296567598582436302949405453647154885481444581931599083076311616102071383129848169866991933178618332280581500700031857514911358777253174496115912135478348675547047257693059628359293992828412583636583350330056389554349037675444367004016545818128242378356516135481055824795985152825744206159657402778486158191888129683035544825156085112194496688377776965660490336063067360382288701132434214310251071476426952804460856418556021666774538583613546599208354076365140301504892365574019400361003793784002939262193895846015292932852508173757196157045816559274917247037396844406213532271904414470489284274520646980777802250528246123390959539200116792630957489205241671184308145097682247948333381541845922934005971283247060280816201378981578192086660769471526085778919919782823533375353412316821301884212099344462144435462009322797736594106657882489314916239791698998896664629965504068587777710219411956859566152411378404963833899366121498215568586187694902467543337374278735166469543941701832085831399712300050637528378001365931241335618730309017340446152788339310890137751320515604916252566512118325016696346298076540731509873111178312999731544736817679361713844466216111164140353407430202802387461803362368644124693193387906509433807231644424054101639218867445915348387373894797221334581879699943965030466967708937926411610908659670484712609721900166253429220338710015380886610237956219775667124496550583552665544150319714942565067057043689469860891349772787651369342138727378759537380706310332261956148255931405598049963775854461427229314509983484811733051223711594462288395731080464250490324117045659424579740341152138740799934228678415134252596565610494886545682496610505825226128937539103434405297875551027628678514719398822094765023349575425288571958685068409547364522389280883268321327824973907313171678526725242735202388314736831560884740819009239204447371970143522616437836596321571680791298582272388782086852355066705926881753023370188966152225366965333751043038462067883111572767387037412267615466969261509643309012549220477069513899763146936352968722451487612544550325643315001639369382186574013958668700328337321759515626874192699260409372509410418370924354246213376507908993285608732640104235159941894308745488859587887606933951495701992159211235621359969021502313101685191715659892118117496292320007318089706030639359779423172281058183830130767673722383203707698266938475581249018695597526448079154004252276500282516262288149096570845372167734169930106605905138210047964625611354042480611076437315961684596234452849567144385384573568299494932076091886140409449818560940901435515603367250654487144775437212937292226851549174131951968866595615672382967734468042289966697986785333824158914667327369678235152757362289326483228987946836950963646737100327803488799880765132986135744191265956673709966334656704129080588704620331141547697376433244560594931771021122447656975137528644879264505509811162141392747798558569700247959927667005669622141495370622432323040162789374845711774730093615561809340611100234704815662848260076137227952059374485131095031085366801325872246735864106173786640995436866027166592213820841391242643843227221124341622967388200095109964444238839513779278126812553250656606419622274193571743925385380154976341155355444628525030646131818688806148824806430027652453307464892891658865118201974941945174448941962783381630893308604991596216648854272209840700318066249997313607394790000958545379707736736465665560901178166443229502969689763632224802957489356700720541830403248691803988583368323014026528242872811542649857263555738674885350656639532276554851643854868529129395617388747634741792106518524225573475682063861374968654479366897366038276818117104095959992945848888404484812467278503882527027700815649138561833277329464223634585413988049617371802148267825539442460647812347811245489316230804703785899482629075831922246512479123635150100462801916354260385664082312209764276153904136686863860113885307849981177666470368546697990936213258468589339662625857435436202871337801179969898551927254823313450642839761588900382937603682767261964577681829303914483190635990964156916792401916952261435952244597586966583187635712718487155836612033872166159278911020875458469570528401149682925954217352501600348657252081309037270285256328786705926149827833623988813239307411721238077061895043126284604553373812471087626316015453013966534299154221950106265228186929716213853867468232878604797435226873917200674810286687144864325615631156200494871280307309583214632879274737430430992050246084746014592629825066576545007010342323426345698428706491209597634357668023893908376804327931248023989922938019121848167042485516591842985707730608510026212914897122303106577463237512745221401551426461813041073115765507201063416730062975483921240188015002739354874363167939682713081790798717305387654670788067513867279020050597660902851652158466505195164567561115877209318220050652170398929526351676537722278933467484072438669387223487058638358282465109195265260209261262969495242359281397862543413757805268208461058732075867888290569925997898718776584572055875704679026979760517894626900657688796267281935940250898928734130379868606841980224311593927054365954970188017393171170340579384910090459875447474253698952305122093287785650240539113448443587329790693757138010063609115334504423209004297159825987744994970008334639228118008196981855549284891136793091458709394292795813639369699898320374139548325100452010809584162650410706814646675311093370860619436714728804247627754140510707011520762161157478365694835783713657244663531598219257159323036735883526808473013808251080885902388910809065928975806055355394603706857665285170805508123999151732015135223285767532090931789709872505505372073272376871437937592361731761705303561373528073013615912500311953726086215678203064748497412412505822893307319609865933976749508604872151378008827410905093324693559473316262358582643402788464644331810598090978651359271544847104600159769597458867558496117771391575473949814099922993626524376342331382183562320942476466419071002284796073344201750068436328615058866085687349666408200614782133051743940122772527439831799411217907453012714591914913956519030953374410516147578520024658947249335758906645430895146878392223531669462855105816497679525916418574786144407997626544740540475675902718984068340465593705152582343579096713812820919868385120839703893225104077369692945712085212782876804019067060125504287107377655744023548518630074321368176425855200773572835629985460941405692336304869787891693270679352195826287321012127674761591896763151750925832622396153862163067597122515141781722975914958045929426980307892458185584699288512311505889704276876197353305574489710032109083858523639123978114836703551412297007072010506222846399438995481012572659731856941225498285569066824772368688214561463155556348850402094371128660899859896843412057487828036096971725226272943553166104622107165047682014217900846686542426752516453295036047594464947870504910323842203892636139085827353656815990853969641374731000100544136385799489017563067706543991187150288625949805026184136962117908213289120738022466970304142081317671922460831887814416627647074832284638212173499658405046998239861282462311583358868021559689795153161175828118280970177480092354450885252958383604304269585825209307673366075548685425142892340856876961437385630414230399605465629323412519206615395484902898453659753414311988428175686749582124420514650339141255232995392955649936654126269493611842669674380682345072150274767672399894345249639276852315165234288357248162192831086439759036859379074164433610039275886845595061024213998173972556914509184666001664745296291801479558897444866116275322113209416410305935297485034257992912155999986116012329482705166582618921287920881198192158258602731357671839438466394159556808350379423731665912373758168673201792703900379316086129823491545681056340433534177926127846214275412557737145652813726008550567220540402167537441519881235913272698471069873213911129857646879877477204389407626852279028157310430884344784580885254457867375640140519356021964372020430372435417778047243959139365727255063197127109574116679068739906113191016859399738496251458650758737808277716360993584579538527180710741574984031662792314549794056338954263163657829939540860365317233935605093974128792292470246563465306700769125560711131148520463377337351924971586388799712520211888014633811811208383187966599053305500970471128578398288907161750226838963586065440642075023523769493822076481471352386295610837396344732288165950762566942150856583768146515842495193925035293277824632229671675962018211745603217158797967604312141048128845614321162180507898007072726134657437091289302968043239658845455426828453798589364022626947997734058768907829070390189559015515954978817739336480930538215920220541907462123229739604787065064795925332306949195088546036968815657733187484237669278751417316038698096435012783025013994850686407132067809047288701370161692146867578724683365120155413350541463254391017444901544110564385750981071223655900177528873773268795026903410218139093433847252262277369069096521740051015068216515022895067768452341114766082694282754219455917650922870900802119499141019693294592677120198074969364446406903356332207803415719845609732365533928000039571749551062672045878297770471400907086287885294503882669624975733237622473309962788799565426632406444725103172559149379725212743192003514598436728247403998683972599372803004025734828639519479623837813929332273830230350897399513917228021744809528897907822111895782437150350288423279084657034052791705098172660418733631704717722264667536254371804350157990739175817515748038069292019790873038104033700879194225656261381525323368310630090556713835209636050877906413574667907517348512945310558894274765727220031513426045176426250075838074857298512690599717622126638358065947630510530929611602588715377452431747480054360408062876501985402721971511589817503466339155801529191794212518340916218206602091321685908767356808526732719274792612580219237289329499946077371762788935078182038312021046035700578217609536508641837248873075400353313922561371920427842769911328936859257883983938762939514094053336230294383141707674207073222572510336534554186227696548870067080025699068611910416539938361642284408252784020907602554687438181016642861908690613981176588439875155194864886966836673468760050037937562076238201335486956250406383255526022112282594745090595922277194024490158698173818422213016510203443789580769018449025473820454074381513682884968124528854230395116247908854398102128184145852417636736375221816820452044362376174963789583431517535433423414579086549544613147791885502984470555015677922976399668840486614716867830814652768674078790303330302118516787846114389154807697891664232369028173035217723357663377907312501234959092531644592970803373884229223423635602228158268035894300229898012742717347054824327053454874492496814285375605640009345033784149159510253118699985503130557521756924139887767436989894742921510211341375559429331205254499568180746108871686084004375543815752464259215257313472209071925785989859282388168722509692690931982360951795460512074188468552079353643702415592666613518839152682521314005783614928384308420882872763736049057725277979333875579205556314820692345464825195457311171984236899301009018860164468000402266202658634228005687069196025908226586016499029793212611155093024248399810123009190823909283715957191162063064973686257592112160085021517249706985871424013814838736797889789382271990671401088882358701852186659771503963422656599916361258349756400752568839967420430293858560537945130953740159645733224479900961823511889740718822098871500702338681148327862034751295177236943637153405576885953309491300098263553563991750972871177336255781213142549759054087484898077044469009881834539638981137427199863822158258409724120191492105949423143738046923022740374830618995859046705457811193397215582712108577048261584274783913929014705419834937797289394472730895950618413806802743015407576534383579299913326873587833006722013254001691567356531150952078680532375895488741778353283096257432196973644845430870919796933493672553945057390927804511935883351343025954888228712517207126175880995503863276850199574900717061884934334125354248412764568068263760601268586923047144820255698296112786694094691290000892825837553623946938661944652773767569322118646911153989173508973759804418126450473478651158556529034352717506457437119170989745851696409096577411315922423841775849655630745476007183676631573804391055923658559497590360128586163088871457462443552469710494654104376877004726769561919891155896310098975128338635667289616234371183483468527033928650336086623391054949446721654047312153593949085372662552964998374736987671439959420572234194947961572878511654948999934025426919960895510123559723801532629216408433788682807890576675767724635273302650532455522074434545406548829369345282951714096804302930852033304374011925502784346863333517672722317448141540443268391350540652141094356838511651703012952274221701154123239915749478975439997792917172065990019477700981612698965314441574846818025902996769114252678422773368039221370820636666130526989107684083491462757169933018574678016211987730768170915396275409824544699654038806981908325499074875426340755672831407477118419418731293201755265615456092095830612513290118307079795452883236632621098043381574347007215663265425003028949219713095812884262583218205576160461032368839686497320440175239690951856690309140500948591883646289755168617931591791457219927424555290034634502235933106282707925150390898395588037826433751530336262698646267859786947470954429289493181237218476979529272710346480503960031775775680463914246201267877685991373548390550820573922874966984538647531103860689002527913787156029615425258592595710600256175580684003166152476806217702574513500607543346860084920006248150631447523178036985284883555779178375162105813625458026560444965903817981281789382387879462904831133909719555708151021438101469731447473187527621352788109164726406072078397228000472444962443807579739575070681568036250733304136263892306643807336154848827209927356335528464633945235724810013388668878108111254424600622288786322483115735216264382761989671609315299420127842417093388939816532067411235250586937501552540720685905766035082600755894532486543711426465454306665963521079020483233814553219441720900523052691320408337375065687428160611248882576949202165401747780851017723834225194147565703831823111502868614582006205986595388182336224495089180257421027900380104353246053705040865459231459728375624716446843400635797155734979367770914482616672031001943517154387048931110171986379858264091901368567132862978937376986966958133777212070312944097236486871943301568902400785560247115524246370202552531978657729598934947446016690392248113395946540644061290443198572190983240435027005578365252439126462210348829105018593707671393644926203820305596799691109411157324770637166013387095095658928494537097414357391194290177159384332713104528042661135157768008209846046294186824031002275692126066486446360430498883548439165886566512967898178990905261671038459968129802578250008605985128173720173013106830964135072049142106359862459912466570546813189518640523761748644515116910464165256182721805045879737289209088532504805919984882479258307841127225375563244800716291743349330047824587037468176767309284884853554254797144904490450356939216157074768669313467655167449059198714883598946564471732652282958832245647546656057394391631212642287861492823416760029181600256291231265789062690727234158765372792366109100243921463022192863184165018572936819777617294852543998500451407717075846281249840485992791176832469856115590651118459243523566263474246527476269886934780370480942176634745470342045791427800454924494125500287903393139666151535511410462575054083879143300501767623715213628209969630726029406639589002846359274918161896745685817488360193249776296130906929621928837658287895796092098707974625861545302790202198339690403175792537071786551909915218135681793659146864994545518397210518786280810041397301639901195679108137906998359287718274503707628780592832579310290388336310576733211004558785855567563801071379146274843225603577117450039063536144605479281861935099559143724506452619791995102024048676077851169276401592146641727369398967106100140218683115823124368250004658644099351641483531417513618403100077081987882983817546502398176467167867234504712535784983243992488867347338912447139072698299984037629851464387921672199551930476600257828471541977882193546927730681266573963197088051719311880637845232124333693699975260724712553117707735151062603639639332803847571628374856832033718845893960580295852711258133701151339394950011942836303403470588532060088043863539510117617681326455135087990680673048483918000774133641906277962781152299393290980751045020579725196823517639847069190183593167828570596111251126890552205672134447330735001847335662112900914388494199739609440243864660274714409967942759353662376640822224316299406686903785927972158901932941757995293229467787814859781268550781776698396572224392552346135748710890069413993124864158325431294186105820175962105354392175855421994784857272851997920565437103971522676132934783269105191545147811416493674567959161266763256279081579719978309569959570195184348373528211485981414830800063392815498458804347355157681990631585239240327843392168122512342625747405815055272228917294013714272212709481117611433464515467093818941517567823221754491561755772989394393583945426071332375068514390031892810829802267638064787747121792545116105250011112424122512919628045828827981704634367827412114359475950426936441530131239320316896025235772072575763990039622941365094593392124949558944488719088388585209697223902249019086860579027941732962799073681120010934833781571740634349475435664099616822693189666421148297857329693302910748456667672839478000757306301788232168353048913183996710388559941462109065042702309050288827406548898974994938413025841751258747569322152641554729628702230298023612088470085820597091615610746612183628704166904895754534704888894947871523708699545763528963372510124146667574119191179346057979516725124238913793885238190254389877381307311696510676169839430053557571156665717874470210165230284681326056595207455502897823342248035695275281559281135925228572262662069086836152068655545254609742800011141856263423758479705405218400793970106781240087443482395088039871074989998478312590616418069686969042801937949541450034549976899850664698928501566449281036069154128063699678717687175251119799103006753163185433042431880276087086079712861540122401106377897473350860348662111182206758339438800146847620624043397945530106413632694750319274658899278668080040024662057864084108709969636943021098058631682725860976994974674990279218770623499677391394101661621141745901532008710860315055395709109104827719009544961804438943159840195880323320674241738132898560439677896036245239526293577734678476497640496176737457620250014474080686220644741291365726611473493475934126703932086348072953590537090885938808407779967129213970955584038542760062621519823632522815254597471270556511344073067030809467516157013657446269268130967790798185174485301721068013693396622498930785684455944244066591708740175350048793391212831184176305914230724902482101432160813756152996898404582197491104483009926953408817243365103636351355251160209537642434269523354906992200650724943590126668233490753219575767256961403228492623348351205379272782340607766427334576483112806127289908321065101556570966313972143735280848397703021196995292237190257330975069502753930802603660000861320527208500761346712972751059311875129954442985951654637887854140267411323661070103841224921551877988714298669596527609043036800866836933387596529752703386375573986123772453105865889990073278767122456214253020934113192779790610752503825263137623587728980259627283346048710191175521485825899533831656755557858627095089445296605347025372026913432969048844987877693282714446219489213622006278016595078934490064241414694418703881303376581216213171433129825481013946050090387151607425993224899199424945239800077143545911795733528722624036634632995670103710488682799292436875452324672801487328724366276824222779024012523622084492157671851224498343724963283916207114028501122012293769395186824556228009161981591973510058740033635411145797968409768234343812694616105529657150213703188692691868959708853992029719160477629505176753943768475368601327139074630620881027993556008380645711947034734645811021580383797969165157302728898770281070033309192325418534758967282776628440695035276754387029546897702664769338546837513618421434533800734535331939504791364865731351279641229329702351614190280244641035400035885063735074048560590547239087593624145169351556289723488421562485048002529429931404978420713825808880403628739665856269015842594862339146352624874802365781714993992208053843682768653904634170548833669292727763812240101766671704828861484938682804052229305758296662920328729975443783701789762253079072112226900439131120133151047412174658691602366038063817501559253256183279522081788478750681993223067183479507733518287601409572955712277056150172461692304585364241729587498202131891600580788294398406637270376690085666591770772030773526218366500983594526819690233340685622343199543518977986974608223611477866396591434082641214380268884809307139156351315499406395306111109528026282378883428916196379908757294050610807381693242485094911140096917522060559980363286895283992957918512908004720703613832205291187176956245227732973084907428016677463322173452885602607704068559710414825021443601155178003393415011218347934734537106982574075658467325479060634902344063359306465353377288919493301271381065519604443345616879383200200849874745572581330032067223262498181001305730710483927296643085531974605484885324662267396078986243949336188388166336130840229290392018910854767356728752593857970902603234610867644225885268388318725996998791018193580419103015939566805580550269898311310771087553226940112864985840053848466680818825223359055798684271140129149594305601296413549230277527284991617501546520643380704377932419200603864491949714753526968382104549676712269915983650442442713145947683791801157246557381510268186655724084705508320899138242242737093831470766001646562132939872563738173318625787634524155671026524199854404989008126682874124880059429629911425240391108665034536627557080003755102417432993237014508231600471263060886727386242950408847098464260926276565597051482041305488609143021449664832355911950653800860393198478616494382850310779139136039659625760615216310496844006138473642269025000839943806255433387032007319172099229910775035724837208205101830830544513491861214271778633861794652950005373608089609142398885559508536206216382457559463499140076885372338912056748074018587959860032003567432825441797015440215009122473708826592613853409299396943875093511212091031539045205528597251093012488645014028428983469577723085563214508363255225556818506151442556108383569566995580973228087072403956503147431441668241859081479015954334570406745000682301797211552546622352521386658601956543428127116671942690405254087650788674288656275188256791668285566555144033915283167576740064553824414481794517496011453389767139948028330293187163503923906317111018300887578291560420306154429510347915011256710661339703638123063347365035722988580511915786023355646917831287916540935806532575820107801787167630143648064605596012274300123364546605031159387972295297931025161178794030321993983002558244376546000832121715657293235248914707535982187829524134902728437034672548853788269214080927926699075775300771770295280339661498787262231960487668028696219862265032914448496927966225328745000573396278593922550425899924518019067179304191133833685877795153010307023201655178540283068574131979775397144053793606056654035896601810221055734618543507739502297658415733323216888255282105984442984495669533912887739041471268413609101267880799179754470801031507326459323005106326487335100149239578817819872269846757101356567180609338245384432664400660992103575111785382435749409518428345969863879550588133691488148624910709752322478110574135887770812386887899583220513236804794692695813865636923156075946016186878757208088907574363701442979778283661889149705136393143567855221694356113108958946699032926876327843519912368855313273706719987517656759466364266261994355689133161538740626544610917097352480517993238275458139722823386306847710009410067929828077592720406189382587998405903702640087986267158302144267813289337582404090227644933524391196660354100865017807202157885164387365751697799191130448791604127587512588348971651629892787825676553473098732853808066866510459978691203953945788113895714525835827232077714673966093395122362618613130226290845406681023937761105604001420817590260572447679588976801238083998791352802678672312249767989523144717817726177394381721569060406574761484536042837185906955968647516201502573310895801594165233806503167546733141444709396319393848038295628554440010697682820265422578396520433663258738797503004873365115543958481764487563302928738312258914813125082038971079589115801771912854466007576145126822280567268298318719897863708183222228396406048865806947864866850858478777684198258857999755534644296809429544583771500278141977679068762067595032763967625496015899896592194716431335346554866886433589853789324288447241492575970308636743972870720860342382105563326559422107402794386399129096682358992354394314854433664149185559873726969448332529229351207601245411674941495378064690108417986012452156597705381651393736707507932623302923039501149471368387426610061325012728209454031827945478400064803126759629255145765993503276123684419453511697285249055791200889265595479967128490008199533297177494469536924009382384632711162702617275980825996696182392460937949241617679676078198100305014045427466451762361257216796447201061708821492542756916504642005285078249275821985177207464189389107387894671698151444247350910640670725051524663637938984165679428691454579734454410863553247695595622675806190274455055028829815154930860844015399242179542425933202906840829154585537409564908214317243875760618679010265421882351512123823607818537643614193884847039752775401168688704632668932894224267012548045917478963656153675460991560847155187194337220589965346841941513105112680925594255382856734709162948202442306708823090147106132614987918033947260891488924659565593385962501793117748646351470398475403063744495915087819197366905284167371653518836441865550847527865611104123313823628781563982103936872844914957854437898484183070630262709738891135601989686865478553303869102423889877238708367516278931334098755542672959561439266841638221405345914778744007922717336120659851272335078751962376398052724385322671601236896638075552791930729703871590849470101936490833444270853732525826183722294555651560915855522809738131954711790727667030683431745145532008775953374663586542229915304629510428690046771720801915308479885938536511872117010890448532211361115620471572923228442278150519947673243694804845706470470029303029451907253186867545230299275595848457110825173179376264448264101121422399163903445620561849600246831028692576554980783875369150384089158537429954657840554115315532376795750280453656998230546351845494553132403826959192997766898067950678235878502136295964125608267573509941734863794317069871564712182453625438116479605815468364303824928721416664426085710935441964831887112077489977498998930142379213137517674239895196847078694091657343239045646026231082132367223058228094676035458269169742076474873387245989470844909139847739274206885045102034491666190425472406174461203231275425077027012863432736090378946895511507181604466538564443457212959680038156337401657553636284720247133850323396270709508650878870912678566570588842718922299971019030678941439393883114978045721113770017370659134747002170119002264164451667092936690260984363877114099480196639691436447797217355380896555622861298047568984031654232697435001315524399390428771326293213241044566314256696482929451881463027281376775023678713344745898304753555973285346109916027504255246258258865025690539162997103564876765741643184472702630614770152844017886945838427216535644045986761039358465127142626421355653089096799509365084726689618475781245053871685139431729738375916805867341395477635565022208607673312009743105838049472338065752850303244299806073423220670778346464236007805972708251451317528295610337625682199535232810627708456848171314147383474781554301919016623468405697867913582368451371914923556440318753788938216953675290023423031850101977563306869742445152311721868809774243162620087382194986677897511538565648019733598615127736086152470600817587012086650369171378362192942042386955139605008586709659229780380288893892040801174284732144510766408986866577651551946733658645256120457398838467606719106353803211187796994421049250499121127312479807570744851069524781946184614244623102401691647245675353548539053594210783174015099869017277062505279741195625975103663957606096710718425217227364276172211024392175924246001094113436772801471143783759169266499861544903250144350813885179714712505218550919946832423468090405455663710680978312303920951418995503879214071755801892625117886295618934311964245712921888046092256247016846479512910248857964920092290760387030398833239998533557575018485817208382467205137994454852378810582815019631559301732884169417520898937111562394348355232831482220964785458534458001661377154845714326981359445943254205122598403352624289669841015908650588925302763011042450950096864423317750913384247037221217304422982565973591312740992734858818481396800524668855868305134474063746140556532007763648532590937263681470893175521747474101083863902158459642694748970919226699380091716517928668549683169651188336454153024332789534691111120447414458764125799948035062208132646937092950606778737591292347659985685114969830594512181527428748023349777001993697875636929374920950187194622064157849136578878522621763146477798610265781141793279320524816266613788293905910992889540584778322932030057124387018846394186135459325963158502879540257998668004107431149829142912056725739624262505042287033956308074591322078680782927976547607241394610367536063593714252384699037287853873456565106012686821055753320358461589701846329450473337936143390346877008458799341927090699366540094704636684141036191766357271486180348631819896653622499225425941071231612582885736538059646979165229185921660055829907569443766702601995979346956504381917738536819605068182769843594146592851189755454496931900737654143590375382492931881513362174814299194005509742568608682699335266187742415926968977608475067616654310319806988674479491876000636093083130193169032993258046283702946480199188878606347191500202274313392711243434966536658026456839987763023780342785780877868526052387502877905827445092520038376886996447589917040693493199302808539787021635891300116555622419150059653251773568503926853123449921800920311644393835406746198532453635837399103833003730591042891380229031255734458812159405574528973875127650267792837470191090206071282443731702399284615025132478337497546301319079617472234940971096307864348107280585617673210846801477731938418290134354154221416356414523516468531628342790579644467333347007426889734036525209940472437946064024032290147623028367719033619978528793703962027297911234813849745111411703862624354285897482118307731950163576024278976055972835433078407513743847283932303257402086526236364670677331450710095183742115584934421588292659456417846741890993997698406335406211555963323484997835731479752267343048546482493660961761186423324414887373645481682618973904906909303596474751319127606848104802945159340218591660948583445867623568165490626724109757980239062872753632777203198398414072196477365610317570844249786729910016689554353737491274223272330503901520366806346046265591130177833672601865496259510628901266735848873566319383216859352307419453684226383305355979065483274539751473215862496094808662196489675700512270950261871356303465729419877558140758273710717509919273695053701273676999097806846770001850194210840811679375165390252080325195856032783238078704849948788023850939862015847616393320533161407425655703810751666112099655738691765826488363054879378830675211428876330606307410013399667474791757665939896969989880196964231965813508304323314381403422226810930705292708866105409049816911069452453887390475814989637380555618503966731515652208281004522631640418588839203065375041828870221383522261345961083320453106732987856485203373632852676686879342161741870355339158040964629710639972346377164532644959135945381439273269951840375072742214614649918732287039293591240894349755091398343269705492735769698833785878006450523326392711929984207696769632178809263474507017789536208013366488367143328692153083703392049478888606857402746406584573509472810958730666283130889483522847495075046279030824702072247868196118692797885081069536116562033291923772119005800660309761529724032942433383831294507771100644861693162199612871969661912044711414646007392268715534512790124512125971721548087049201140209356855665898792687008576331122767942605456130114958540575828807282619114349570982877099726148854338743491545780941022940454614769822588781081824724155838018506427110625241691881382722675937689610167949744748167339024995012551382860018251977994967709604939653641543833935494477817649803352776619966608346515565039242648275352041422502982158030508956298534324432049798243876068026161784403702194279433042140464239608427722735154218666199620346671303133065884985182439778192815741558651117663056145817191098809483229668798664080643336083286523760980808840590369245460181258232365735380761545037538793414059865381784172615948434415731506735037754170877308951598750304652502095297800825540329726139248093658289690880277955057459326704032550069071015929967318855013875974386650963961838634219430293428791296060621468800318022069449691181202020736832467066401707845433132946028890291979917267703738822035322063842572217363579949186512434189710233952223786824311360995973319361281744720665026628279428396825824112991746550256219937028519270313194835848208850334338994025325581843790686772219515251704123792819538784112396989587148068326988139072145280900150379434332082331770582460730941154959870029897697429567149305423832509612938542345076462335688645471387450652953280271377014520901861049178624632638571146869588366703967708959940263095572255511637612329825599932587701012444982873499732639686578005249952882417111801760527028074570546684239100779930065937053060872638841692685444922758847009252963810497495797525414066132185059813142844172348459438425166026133044687219438209893485433052820066980095984416713793089358961541105600804496940814326802385315463717619901561263386002620581801636311055251366379080092789569187225501628511679507928982527991575332652766294811267185617221104437733953462582841460241583752820121881811119462987396262600181573554654007351313080459055753274265381712356050252890099179064730972297538401077817120905975469729162319808659301663329317993359141516818699799089944116768240633284131305699654574443512910464199386669851017476653370052999444515633795598195983151485349554763434413184096721741798424997801762630749611107336023381534338724433096725093842843898912411366403113100827425018778473957431064294515192283608762505155578533845262692871378862588384317095578845154546444135774535602344807901958358432907514821886456975306844452327163154816699938867900206546912068876857115513021353284546211595240437807873468122751850993850181535283272062813733853391146415604776390652319657174531820500271943192322312999654559762519184571639277630794372087138657530434872129176998792520793772043226235343029696866906411578346276929154836345562771110956563378639502489188849790923136569565096448089867186476901455606546928036516728182711714089509118615037853741209613283278440532431844964352721636549574525171852946732640457618480842251103119017191918049845531979558516897374320908491637387624705668873898537431867887937582311296806895177148047140950051137097166570547220305972224668330063470283181786362357727942147922508467049182909373334165875332043956370532336912693553276449675284909224581695304710436217769180186679316617305128716887287562429718420098364465511950245924630240113139845436837721862698224471375174669995688886674101334868768561905076146735800064906101203184404367688525573407145512633062890494350836762257522448947511728580412008779120032011422342250707800806042564825809481291029648650669693225646557134691550261219010293755503563571188312117755146418975375960850198182012127899564311399912058544638308976088280659583525632246003306059289901293157323294878859020685240255480317454903659517243187499413303070209588117356796748940608284151632315652053776771688301276000658907332935220830749679544247849764616015197657883165979298529424860980650845725051253195425155711089278151690094373639346014772070344591118106237104686807790615843731876631799760670850346398161109353758000097257971453136435524968100854735120562211370776231614946194578170115686348697109921345234439623757544477677074992241488130534260545236114777564727791150453076152362879074443915256968900323592064585410753704501233529767980925205717155369280262202472320694870185574449977540075935478825033511041339412476783789445579777366713815131796837533631449986174363998700595241944171157225949141947542499729171262428666342893250274282818089689664934928615630576963155300397326638844966441326337474791559076421526827999044457548543627774237557605332453872060792847067357128943374624559032993323610722382170524582697414512732597840474795364931888783154592219202288255833420750460834464741361066103145716025057351694506800874766821610974552264713418965908694707830979119373208729522429936807035658453125016148009058553725219914897103034912065224482891026836616899062134106711942886552450714193257350445828553483191884505555729941835021477959396822369351631449959621294718079185358884634008302090988452547451385474454073195235528664679098995862040091053357255472728258719059290554260609965943602817155691985656429981737183416771201289472775375772532537716198973407462922351806941957606547878327254267208949148686675044701724082153552696074583800528223222967114937201138691133987936917249483601153307795363728916693299521069210083797499594997141639160351199693333000374440047698366370168228868436374191024808236731638256267282973523154194257666453549756200877718179277886221774317518936154627618847125673785564615455922569715933022251125556216816290822222472654952811788281075536548416378152401597681176753435442705898999869315769101386670378961789529122542329487604543891224295448938303306719913291957073862249514314543540489866294760184407653542099450401296289497579888925437042542533287758939254997936748220026456987001324830770900828266063653765927472567391669198421619801866981440824578986813581493224599421647788385188718945592440243870442977360710997577304723274750576228534937837487794602371690153700582741325977367685152461432632872528667678831632112785095553530946492394536132164898127360808437238551758919958683299672537409010695684627783529280130659603942746098068668224568782335375558279987417369046019963696141287545158570166641859905753750478877236641969015372739782002225607805268789373707835689627329745422667291075817765606172546930045396973616270009368166538728342713176334972026446902973716160153814418170944303397889787389546441949195504845750747240682541761154660241875346208432723646850309433606376720500297440914115391595597349965458065724016982062309642210082386101423960999586220090275152917231360512998409044494986095861981467298153849160307737445981075235119214596955385747327919098952772968597625356474511633413837106282612871866642914072331611528513310571923749213961450371131429511809005244396301546438939748372722462770416739303306436295726398971358415930838477138245309398371132713250536242147854776855760805214129026017134733618983786709832044013751528606761933153636524180268958728504459197137961629249592236411487454209783743714320853770961246891719923696132022501166278531463503757619903193833264495022180595722925530585282723115358094507814343938336915602480373213114516851048040888464694682918750312961365727903524859585491198371808235399744496314472129692140298824897542955681037219688887260996442267506654076284515953990756298364476144995012695499870866643144082890198072249834874863252019541839491058865103027477016141714563968581410442986890467639273742658316040700752518868254319232888288669748487837356811505196428603064273125916148535088238582107758625026196828480313022431404705218730438239219891947248427407661478199913735595452396716963815610322428312349196500934975320123108035143894352672243715056690980024662706502664871057541907263727942671002310618529634812131505109834307415801832130955663988560701883971409292554186171464369424340358892085066453506367504663369899445859626981048492619310169674934745017674367644472660406793164487652291972270955423307815573798874160177217633216035834812531061130465760710965680332045259969391048324039350851657973515725124462375135741580726725272589089424359051002113790101808480527508313214837045343321772339038404458883598025454638337743387961117506326595884753265918555402191993701548266823155251522661298864735185443355212704215588165889507680498130181565198590307651526179857294728479767215553977957618063368732673038137131444469111076573236733074147015152400570777622142367964924224018486508176536906207603986702369374389883808694850439106576421519439268353758601772053909043992061404787178842168120633125534711192267302647968983509899368243086203820715132410421876318095958301703137111580772139156913582942517207722593728568591117257767858021766109372815291028856826819610572131027796438588449306802797865782688265242052825342389336200525985856086027458049035773130640841675773230921878810417662116976199248701234806190331624061211061838851625933407635025738451465645858255856603855581545560808642888905355187967745807829270554181212216639703944996951918707385655982815401619569097707703608505398704756728103922543242563352174875744702260434367126690785654998753517550745439578370029380303782708909355159653889935010955264404042322221182580262020643173572726131564283346973391996442769951852285572284924706173507784910610661095638442625088830833997289730150549482754661213402058633158576303509653472257291791967793933216074868314274025288418151746224324411098626019629523858618791117228617807611296379786415467082342597797361722932339451460281053292000784525557262782435031222838862415953665544551244825558486005120726890626300222298205188984076378167779770238938667177326525877741025807781391970704565737142163760580694856392083162699049867142369594356890253810352339716777697131104711882403934680103998593621733959297285047075193325577687439224682010521799075802780963978808399936042329242240089561842392444072734955269606083998022804522382087722069615113688164112557251348897402296946699479373988910939607446946951844326783116224271687909273032540967516536408513242449641656156948062381130653750164198598549584403179070876091345409818901273324799156514986613070564917848255543915577223864754550594979248428365739309141077917321240626430514797010042537513879029614810605909360054088058827564365589850009546936634311917491517225671987539776072456820306550440270780249687326293185233419958093269298227801096878565151154061981057679457360486351375330997653311533406519836353681102118531602152135520945464410705873717529884537311981496195252466228521916792651756509963504116236037667997929241365740269123183045762237952819464272971100800677029588448368465337742385412372375463826135198445592068565618562094975629111057603872650279436127305855406336916473953297164463724476264759939229751619432868677526107154316074701756096677358828506259844940760719552161778612955688785943878152476509002141603905665758197893324120795918201231069655370358611888206616527438336374286665876427977193868314966456681873111664505073450831247189734115415390126175452280811817221383225092636189059145620001315064208245506884442047448143236037466689769044839450731096436660462617049087593544436369417266445562300131082163281765716083598147599967893295895336200221368241626546480170176030029386475884155034870790482142101637101343694276516501503697491051394384366637321182164176504845936485909684558665627883721502657638911395475797230708690026800815233813700704569357025031443000508841279215859209393379727679445792586264728015617743329952115614003707210688266377758689488722831832735605048992778495082773690023156733073988850650426040605892766714714867893977528149424789883163432278601594942984706274193360037631078554068788354352511042242938895409144606054345979737126599684898651655877568514300672268615627517556641597021251537144879460944418699092456491038129198782850057137220342173760612270193921321382851529400302016904304970683851481778905448433408416523642815832586091836745397071405501433642557027755150308640312766084610346895598736923158595499959411212546078125640578865744609265158317465549249521370663801824738830078724178351930361883530126780289122685232875949296586226863054617893884624728614175953524480593879572990297080676690011688817874935232202111898021325888898893206680309232038308520816824383767231541739386553684941517935591576079703412604470120611700934002538416343423481582848922658134634583167430517838784544667168856693651152518864428382848637481037558684352488385768293561937600716134029282593334020226349646883855305990735664594655864659780778215352798699121560959473316204579088173248669281631567660743967121450221916044453018278682466559254654636204884799709136699702991440120869962883913257312075735990537206814293564480618781195581679219827094723746425063648837181960347838530086239773548687317675627774782357195225272237588469689039386637380056355212606165631927496761129249285039776295120273941529076895602866313493835985800050568919225750620787739501319200276022441832764929560685943677633142055493296910505785931235315520040225752264236642743532943640118856686404106647982071883436391908824578233767519245725855134252888596112169917251002120211131479798884995915952617614954601025427873586606309719578863277193423779566805476645633116597661583817168588629417549831012459203633661524087323410506626433813756674044443436805326636420558355227233255555259806574538074579895252993722170565324121217465659490131472067517121296679688893294520353548691859333647460593119996047973478024390368154378304305043258398817620863114906200345092943701329023124836186398675431559095261892267721219084743933158027462426993493986078688728941964061557425765034341966953897737784408538241149572476454774997997999596866505232824296550207886010494788918164743610823986303017404307469586034584098193338780103744166270538784576448046887016477598128323498612322570249991185143402861510150839474407346361177925218427958716557327039103479586967833791428388695246559981375176999262969622342978684622961285089587361204264132395545861190220307093559336097541306307776288669482365012912481430921270190221435895910401610752499943731354392607497837433639022768091009651920931706203299978429574781204509123188796333775871857045291782541510892633620099948842216118956134977163017477777749322332104908798389063502900534017795296650570315887780282063485846667524943856344262451900754710474781722186483505810857241815163955843696241655893270066318309378816079553466481494568716065489703810880470287262076268017036266739188479360208103659273607539549346594811896329117202549094381963903007555934459804337686551580121819327659925455290043685832367268887113951411840548296107730452348042515004541490476906640829161926622441778175441819526379372303002905203994409469633636972454895998971574831348212605638520867107673904213867683572372999502747345972994051837158368718123988316061494622992217099630294542542227800878580663482631672039806066281279953704909143057475560919085157812058147156135923196585517330093121857858876450548863679985328385294934982814127298042042009636188393625713177980826411065109208118114542605368972058045970341239286026453807208473882566520607274304107805415370465180079983123586884981111651843499914926850092729634184810889523183372140878222080250565243822270809078428840072190593174556284841297475613908964619472451281849779745130992435394990668033667880908685479248235967847438579862549752230978686021870662680879736063333985399357691096475834931839276362272884776409927044141223387965655744728327445958594299761765613806591489559160442415903119474672560168202501913554185118620763404944770869516121728393779998814028796347298339007853656326224700174197106264701465016020651427594911527430228082649097689753218144168033502015176575048258845551880857743390654650753349915471275118657036084223888180130630565993989658814765181829789667637568545996662147323551280534590769705039756090913834030355243326324627565080060770212813253392153811076858806697436051735412163299532814552589644367403161100390882122900406606544269170593373747915999560096851700790041027656454761321172290010529752992682292910853761581605289905362641032438235191844516214395836103557924258491156823370091984582061169128602017168352211813051583301900846222307314801366788836930658455417940683950863732756230999755229018200002511037872924317180197760065940064588358590606239741919803914847122140488541664894613587892733667436800534087765606445383053682194490326698159037735135119889048669788196392429340551229811676501052301221530674868863126006998414787969396188010528710302211579192665771154637833957929258266354077050539139625778563588097599619315901834334107921009343733332017726065111298976625883421728869659128740178595535558237506966239506846514056465124735739662856041885796347101347977106619471907166010111944963389439485265085496787462492951260580371713061215439613020650906314016280125685966626686493319297184646685813274544456459489113691122389412492711000387930954418651398713286104102856320388083057076281313691086217923275910915433566940339224314141753489488552670022617468989040521227928982839360434997080465293598620567196481471209752573923384967960048941575400391331746215184094471472128258632536702537199297863150198805845403788905091117004905321096753096519023670879691460860802105822729736213111370520211071231672800994017768261529184697995957443365613626497829866967979973744556533367590968960452183376457733388393541571530783950819341470918532979054851954692395541914781816972365283472739972957687455580688740381849978179990741025807824218314560815843996291721143477987678017289885724654040972929199863775588400350386313865367236411735541437940798599944268621409370005130285747951313248655705838319045493687192571020613675519438039992186294115063149726687010161988409854426425590086585431540108234759220493464259075751443783302279809013610502250547979470328769306645139480811193110170094610265735355682368489447950134819904414297587681666918880138643453644915819537636427987046097427662589349292708839242451602164010024406579544792448668565274172594452950116990668893568143142351118707999694894999184702712982085069470522558925586790882320654682710059013087815236440684860760985143760204639069832135741146273697105154134352969213285638847370692330398309541983247192855252166024634231526429439354963735450491088574862865180255643528367798355962849005236590200337945264160739958836664557347174478132878234083193901851970175878536217440884506758649569066521536332108593903651094856128969685951945156446324366700116610414616242046153652980570528018326650714231204054656045638831439352268236809706634031180314082001564734929178904021661337676472014148307416424282158381582852905110166891108066232367955109600321687264135307690906818607031954075653269944284113888760135096662153355419510147500857496123341648517775036702725442664117733078080029998180701532613487208223869979161020016112814499068394111660678628239662064697255560904667770112117372548287721705351595739578919846789264951502244223663500657290737314082565926702467841255727645561659103067687764654413514199774038695003824774316979848674371846439888295301510049824099069411134383907018157991177252973791457873515631275353020446223172735883442664608296583603176151103111258584674441119126443757671623963383815288992242697687583883013254413457000133934054611685070679369555405693334156410410453019515253652066373583862442114010561763728183601208009385174852234549570110188728825375103860251143845209278430359717336182580567261363256154703261294447139654274833833502135822549387680233149479877770264378264905751726754922150076464266515748409859062057362207664275222865007741929017302233698135405196838696365638997581885010041786245097622654678047835726774537760662604282638240513756733756508319378936635667831694143280542609200766345974336863865978010802276012849718962956710421095179685697369522483313526048824921802640468992692127633079330165319799954560137440553668463781222758391126434612366757951668342867248819173141932306827225183450405499700799709584438837607697564417449349879779507387281984301708628037773910557531867176616549673564467737687554094131624971580263684303703366118689328380996742401690948199452033516252696947957267821759115585862934472995245410386401381700795306246843501314533347439273437959094296872849680252810455626065080061477489521128600091796943480854113595664149957542871762277251559057145998659603068750027803511661472337630132209734793360538933022811881547767294240987700693547602077657131724208032909416444754885036690277867572862766394906736421565612227855658098601335432989384630810575207713534617156335866505248278129447740823168310765501848283938855008041063570297340538286655003292722469972724220311083342923735862706857113340401515113748418298912890637430083635503010383044896059436172544378923362689165271464744678790574616328511651246186834025414110363496967214504906845012955314623630272002929840022107787375512318342816243078937901081028561122200642228417699158992325354379048348868525681941621160273740399291825141512983338894397434073773339283308853203440385487958562633144276449562701609223741783454590911540853079793857267341283878233530882178736620054318159833130209416049803783647315843767209234652536130064871433937946584112567169796274638670067104054157334602859326649651704074559801941737417929518828478713253003068399839439199527438628428258664973912248847190503617418851422481760465213996757311964016586198471585579521239891769515614858788528849287404360085379921394720575634997291192899953372350175620400543032209211731650715566037826234294545216783507149359634108061393685266860261191690810471590205450806611010718353362062442168306145115442706678393965657326670921110413801041364450645675900825716860684818116720964715540572268824755482701339297166606013763916210295215900700384458250161158045042138523602757798844747006079087790768640539751556910364475876240413946821781216033993969223189179960765750147212481489285312597909352639808793054169907882102622657601706279306082761495492621840814377436097484067983775117267519724252047366268173818929606366612086987232243219355181617165435879332309543740443935825692351499770865284064547066153111652980274368271726115044514616716999741875690883209646070959944396741660990530943021940756041801248718796544752619368284073826019305064228567823175433966807727873688790936526568085146541541467180409902193304571493130896009350440770501101485630874749669362184540302528722278828032455737507914938342895176388529417625930130762985579302322713665395395723256850397512315086431486038231208264293467447841202702394218061171605676342240553387951690055767725785632639133878621179586123033087933449976838052647095533726458307594308730122009998553887440154771586183053234067030971913603727573785106885411393182654522738633619732454496538801614685641400585501599115462308984679136104149532081324364177747852146367458430320924565883202062755341374713275178644034454384470223222141155425490747145478300557360392583233207837645448701668562157191932015226019768549390320974707500072820195616769692536587584187733522607224559748467245688681695142414830523419340870659785663960615577585288020593880851306857279778087938087364824461689716108927033374510606305051743496853116257560952198698434027409891540278735342789849287476826022549368630374113522912530143128937483564477107312466680000329925313820874144945305931714709764272003761160756681673107784188636385815400732976833541285448792568235361870311808556915976377876552335104243990989383108474300781615070685888358697003082239566936761404392577810583512564169502951191751251030258932454995280492904348551880868345634857715281831015012479361243302464722214885622050595329807954575111215612452684400159107035185557544706181505397606769455243701254878997205774518853821511065496506324740962847342117104750067733271345279750311357324417511211280947917635096643821076076077901763286951058601971314293031678595164919997463261976372084973720531107492471042304569569621575385064552449323112232123142448112596771137879399625046058390391482922347405842804472847010239159327523745492842115460777393631027090430018122712800029510945021658930072321271593566057359770440496810933634179197938815162809112208925177693909409800900381940777195992467885926401502245776348645522446313606822631768726432331035683774838671255377684543122021318278862660665079647800038559307912578691444332643991555443118366329027707410230963991840533547708076283657188615232953761222674250578800529414314524423372509073571091373189983998287649256288923507437985443706841103469677858396609847093298245788487435146351258920068409324436244532329302568133009206896432792080051148231961154434178009857190542328102128388726630795551807246390127215197530674880535530258533635525717861909741041046360803835220959164853661017744948412968692766799349070351096372145938027688553311062134230947409528275267993568984236136096393478925728762761491229036222465609132063799755926595646325370027587487716328048743562802733345703383860068338846614918032783948275918536689633308139951925065605250550693611915930457875552058852659031279307042009640267497243592596630654879707939052715286944045012782568517527306307237492914642606766455908301701527595525987917833559667762260029913825743678620797438093709421672799020446129000521926748492388428747957130860396728986701322644793626222641526710558631005294337862582169769726836981556487716162483060000496099973058549031286021840803565389793010390483565957886237486810346922704185731034814006640620568581096357369383278910952251454549312571657580491999293773992888647634064379412429328185310224171469478648722931576376296747408621209288083950139547669493963972208055790889401822791061933443082296055965574018669147830945572166339046788593273922009511449708530270712699049609755879337150468423749261464173760194870863311125023730199366365853167633507419415752395757729500241148765688971828842461793084540862208769692992252506865680733338766190193041981478839896606205797127743549399195453679442700571571407330040428214146383287415963090786927352301029760816867684314781694376701593555261456048231850878434300522658287705843377166852851453444665065600154814369423670923148098257702295282353577636992976767800308622936350827150732495053040925701101891530627388985415352813501132057884908755064921463201021876494511308826200750762517139330827232715341816669261040613545451567969616011033109150086880027096529298690786262396316440857303798102056990298172636207612068627086980439661632158570908449404956048005601923898182784532969948589814299149871018053013717161482902422001177165264141156477277622421798429706676826227263052209491359955081531914969485782504424102859690543944383429363304763195299151100991704657330820772359736231609944485885312888607514107166993347493797278354120484659455657094646294154194094516810744040383508190687239610644968607308169537766221793100366314557403101081153122234313661622066562379454577507947394981623821116392259266586467654105622661425153504511418446123549520132682705802695888130572797899272435060334756580883266866101776851149743617989777164984860696564803596399058442111618501132412580219032598850971538696032960596625473483326025913951860860322249119829957053268935408979302351278911199690636621670379938474607234246137680036317809953499265338306436435971067445243940872229257354891334962995212498702053103649905161239780070723736981948746002556751019024876857840433316212973958263516249598543950534259061554959512873913682285181832473282557897729477785407795791347478906048195533041846062778573624924381253818296859004819743314240291778063796265601532421241992761983373255782355659969704346309668747340893552547095031559826394517844708615188055513536563242625740742806176043985083723581782067303339236685984214381596197764562111157847692922892597197524478813126232921810864541825817993366789928475224908514150295406043217213389364578546453606694303558892982509608640953942677491076137401547305628149881983773120916259377533868786173701652847048400237210154786841071002062169582374299674434584135970998874461931724731167846084397880278945911344293865060814392095530939893522866825614252361932194566723002346085770075995822236145155130200417021225633125814325372105671849898911884193241438062178888277293672484551737145279979779976610211968958555993728242699933696528063357223992750910632511363924147046583223496260351099719271165410256381072584165837715891803925199168891641931793014568714080542839159562092951438565156109203169603267319924975091712909900496462655093453320220720474311770238520945466934828368864605578896579680603156767052825822746776515845619228366519654983942421707871930605299958999209184368108836076964072065158336233540461227084636790352650282479216493201530289670588184715841884060004817739954935387881348049586558338752858307798205214972432211413210630161151958414853507689147688384103587815644953242788889386989736754709400674797715725901515148663729005496547400250597774712988063180148460163563175663733402810933480324774027543122595663913297074518140110288061741690140381899735461339242151948770522759014900393957664525354513744415615708673519222776849406223996101545067054457374711262254288509234839512382661781643475076729896479088163939609448877321915551298582246077678498076356500216299367543991373369534385594443659419051682880322656811932958557504664041859293584310678522780388529473816784502832890664488857028089678232684050750532078839118743027842721658333136432782934465027995250835900808453424495007330247780229486552000660936792551045371936403731547550767809802834616942558142564447388084980319462720291562904838278950020909821370411441012971701193662411426785857997143281457818906423559056778066340055762056596985966192328557195639474264383092054882523266246389376155212651026378689986526619097400277741377804706204680178951930419949533939478088793300180747622018418078121883342592213767151416887909056276171528509080433687600529567317901587190937755975177267193991846605888174077323789557668267450722025642154188604215634345719017620458198582259800688605601007540869783638614649637219866596473035206639453123041677447399951994167859900235452327949617870022630566293436797627396458646360762768751662911269059025290678841144613818093636911405728969656996294958871012582483488808720413057809540386276864015040028428947945424247478345495853982153194668558948224913543361006440860397012108527686642858424703605383523498880363264488484135616939853972514996756641860875119525649574670433661079548841390213615050828776673906379569117284161492139433515087987673324093561165338788424043177595631271907124870161538429564341618821073983466191379423075230351736035525735627179492331276941936538303778937178990280073292796168694763178774304540968162033216314656521683108597283305906823321014136527880177597136553398372339493033258989230824644054342024438126128334163412596786294017909927139028379751725924212558733544152638819591067927040615738044089227463391459721435378466953679025966193808480261589311377253320168657526664881596497236683288344438908216477255776211642927623519605330129370534679968792235912643830142937650414279423448046232701768656571950678681366482752478614915571998229077554213892823435377690169689813897528872407527022812254032906817778973755727724040877317281884235919564004298184598374160767677171971164733226241910686785778112561642675846806263366177978134989276341269290778352452267587710705781643105176793651716400529984370222425092486184921501116749326773968353247627041819920893983338601190085615219000127236515995646652752620623300418858331274474585088155393036715634006466011848864617851389749394975481717780370663452483925221629326899790403787162451749435043087511932427322373347959036179460851212904392992632602990206959903438295191538694458009746813922839990826478329091062294919601946828903187525588437076559765946446006289309550601942951479033305852421695582843624283262567715014810868106984215226114721205379168082428453119467222006304255313895432282077389097636064170739642880713595695881335013651740274180569646521597480394141656936843144985843712248422405213353420017509646683835451786868498040515956307146313510010030953260983590231131093985856711581961714681567859420191751915578284664960575569396882144797903439307004387973339337119984378263187919481649000874791618713079526071105233088262682401429694664531741858955486618861758357800860167305647468467158481043977339017988043837671081440697354023949369769634907957499355115557423693460149878892080533204414451175949031565751372364063023938439544464544809859960914511442923121698286484339894383734301821087942615665844058739628023711916423368312621295592683569019846055110993695935038832001962736706263110573574394682516371482523298421875395318679520935314110588384638708570063555429551044474882692346461893708930293729667242122810690871801681025372528564607436701689996278094873690523951217304969742863057317295118561094643375022303353896743382119096529510823298495122603708247553208776725034981357956259224550282590003972730824765420484965085726233293710656704305742368773679300376001357401393277403599314180259780689714469329576495688570162180023751540057229546365250843617281258578454070006715713922692995557984234470670450317069554404312290086089474450722972939388594550651501754014763644306870324357594406719141534508167986414402356478276022427133777794512950526517857462354201032024642996486123884904581547461875898759421725901823050500266174426269621099821973377879597199335300641484754238952488208376975862207192727722203621851769835307256484729520726775761927463673892680013491408178810790401367108431217909195216801821545576928411038076747262310301539748173612839466804018891475227694368455008009371101075651252533597539437879252635685745209759656574368061737638724965940434996454655521738578096297849177299802303882655071801134081875523854194583788204069911219578642507506619522214868401465238545599040486940104733270352378674910102013128822523881403249788436123874269102290672888611116355956606029784969312641354360888874375628474170341266060534986345685869783701361349880396442543944347147011094847142561589590564970241800137288851089056932105064903569955103271869244596014789129827213392020874832704223749876604398256036288066029145379162503221020701727372567650857033285466321540177601491656445853642713707826137661212059842166828668593745630892166183878938778395024501989706750892148917671369009657518984374604020212672563654264443183246149696505632759314031605195849791847914189686199301558035518699364242718996364037220919729669503171762850225394454780231678854071386834446611520969913252913246648467360900114339920621392434077832778505392708641139780101071803768911026710767277687362705032702796024988586861792556308884832045280762580479300258364925929980021193695369176257756697659168455304559739329822401576759348056506756290530425536785607510870427874935865001169985197503317014667506079816028775478875058973257795832339572947140550020668792776294352645216459706912282163336458705516182709610337636079090124577225514751591559157830029377442192168383627810375799482213120868543621918969954295056595559628694622123277201073160824799491575167909537310663650154055989306137140197056376591294585681992478364514409583960391485843978576093109023362143480400807094611075370885196364238396721657829407261903107599481207936901428778071411563807258891147884206078756443535415738791101589182902231183584947528708088853793796565903205471916643851622280528482099694485932231971681111687641336938942233889264831055401206744070999210556757381092076793006965857106721724455428948447792664072328365833614044833635646342974856941094518363941175975499642981385561921753021096406613844596502922812519177444101054521675048459460832460839650316332653962091106233177617752104699818235033941863788898316525964530227992878460891028647298874676609534448289395849815063743921508533725003557353224723689772932243084214850636837319133459540183842079239901615197845752709447112460295434271612525125601022319597631923883268888141829805250049915601377935554361519621306152200110352294930484491728959819244030460327208071034604228410170144871193866247297114203461725642142242441446556966172452317640798676458678441353363672431329944666325271859352711151164173914331230132546554474351992167381806570611036568676507265174509243568412074134955248850796652158911684407754702879525237137554232066245833969877228465991650898273497087160888723013930666566197649363940175534614412732560916881371251591770526881402007671727543656865249383926136785814204630181421736563372459205797642617580257927151739857955735032428082905575341164753813771537624326840178439227240977810704345434167843441965943599723060794880754521989069636393488402447901391393125286119407406675606198053409823943606470632915977939424123441844114808660297712794214610600822088551143167367315626605210656376487625058122785051753565156615235969910886136412985962384237509141325913752890483629801707489721428883109041941065000324517025057266787948577175943549449373310449966619244310316945343395362867621100990863017286716657170532825060905326638287068712416214870242516487884026539855328724439955985335296424345211169172777272493525606278390885266483754142016230475490804174496706358029322111155930182267802253463197304752309798607669284106406934205615301315810233879752042306460700038991854428433412085040760358254759670515601229812703192984167317360520977617869849558818596045380007646490653122297171885852431080951311905464499231038081208697580768652784304252549165755988603147418338040947425529736966155573815790241971954306552337545509376757260716643577889311914124868828803989273419073626214770978015530049677156663721862415667933898187734671124912917705199044882966203866579887111784765771702099741475224998780118532544781981585733248349407280130201238622256665837505476358587125871372573357864119418199955221724067279739238609514503319081494317033622593992796674274362888842691423817130414086472967289751069376321347220333945828415040410128452379440494817106191166364354604144523170420868668649593051354642077406604613743373053656579275783350365983407718473076955272121153304191590979729538651450921722702319475478114795658097349847304798008851389882067612463600691546128771308783682557614379918758347160643427237969908833135445130862332538614077380616734772235373295460274499180391085984001447842580266905152619134317168704010463892544361209614870264709927547300095526090231274426910108802127311053317408863081786520362719895546283027585678051158473727560291810559766106279836880674872463577696796488458624731658532703739000365482923132201813812208637458103306840379795663808533836757107776590753132763076001908623255787883012623892218526948207320752576543595098995174638686940852640893716641881532747265581911945347473995425549682964559986663159179935929411329207515725176856114902439526305855310468856860323195848439609795887892934577233186481755361316382853617343372559937309687643021691100712723730224633747565515734224221002598797846095824497048472348798681931417329500611042334997493904571832476205380645458621811631484142901491950176534928601993265195762972218528620849993199105277862707366973937142748118198464681353443316642649526764250484334215676291114635309772912391459514960037999649649838058091031017951041627535343131989182030393842018427025685868873778991529024377626784714500221048345813107211024762550167582218711809566401162277025757035792012146781944217392563932468217222386702386385264255044680121769442626933150912218004275608976843835241380511960547292184001282150892868536867712722027469526728844640908550355421941848137085604080899302325459685644171727108360832732098696301892940918932157716775795371644532539405760009057484703851743021972967013402260971315330379901519229473760800571950697628788519815630443608140240670582419589537442472302899526154412001958373429467292769874488109604430861986209325635907724497007606491838415891405342637374695731550021011793075305596396422143598072610414082175231952844746790864566572255922361691084267932745425037252891454031647286819869904964079912844049661622645688071976074693352112898473624978971931540324210961229360770632760894627999878689166194822015789454146965506704035757648591609323904595221921511665734551505359740806006266596592322802846880415327398570312950625534297873900981547204647906973309031494250806324898323066916086910642598583810866497827530924900814923790738148574498501746169147902665996973356169908717154782305040936412471707224141427431385736349403735868944461739298038445611759008662491105867463413884603034448829483815823833614877677924355814891353715140121570283467810636967806810525084486941661289086360047623242717891124317147950421005016898825832147145677828703102555762994721317920116663447806589913892169498467013966541614417957045016392211970666033918232135072273032339177156795477183462931052995710993720819070192079839467761341150231493949666162623691400022437668884606230314781406698663242549686759650619212320430594029949877544446755372488368168107183253565073019580822970877425407818372749885307790402918531768159486314367976057938208802518844123175083126836746131819145655400260678757459115256586746510236534015666910438806074585384376368915977663341332669903299722263573041728136156556881350416889964108189686655976999542501791730673223277165724359853859840924740158086229004891748217380863328181312297779748613385079603691901814111823210377655800049616949505957634261022380331341534132819856936173222244347062750493054230707627794173718884615178938791654279838219397609269174262651823387388544976178678069058844624119656301119517129928621527582080859708474061661253832546019913289573315180985536180411596693078354058546401064662032376715976258625546231300453365861428115286428520139032342546409951769233822628367688397424526608533497175094436421757554517104201762607253696409098313340396558527093280207821305256554098551279633898205431047162659177471572810015096052022149791541980416520202394035758475537155100126984422347290349314334329045085986687293010190487882473274764009842953024714873636417989228401006613559333116204820563028815483957013486500184976739029032543923976392184309923026848372856779043967143719380147949310875800564329526056233728423369861653772374887582515760537507193943333513422469574692612176867077397525843523344601793634338113816542225038066794350813120786122015217701284868562731464980792595044150073080784711746223117221395280236267502788377133603627929215800669822684365806721252767103727924455468847524975845185596612581574336068937862475938444622370578822176078274286604854249580326906766387011541210940269206981336743851171670867008843550475700197798783679888266551395337089332021581164597504424397827782075751735828792955404770725138168947290402479498358476401119266225186068933222260152857307880055410423718116592568808460350234458822439262084078328971078740756654738082387774899105636975800996434685333901542074454101785327162804725364619920664820115227837816052308474996539110036152152660332319646173136598665280822134071993463027995726197160302593411862041523313218573164315228668263489400306557133495231867473303975237755075530333023091271937899069946449724961277358869472315408951189020546284670407167883521343996194957205562549892552247276512118337409204789766027042538231947610235058963146480635990466520770394818926507103787747317947927698300576532750242297795618313461319349090414157333317152094246103798719253882414700922344783499094367133551179897097395486192501020478512212816292080972012479792471161315853841608199351864431707369196084270655204657248776106229538715181451666054807571920653141127225378577281289497974300156153025844083147755004627373093261639265854014895069671510704372580346329010518238971879575951174114931109230336703501269992958507362835906651879340257503912770235220910934741319765587393988466632644104742249681987264511457498149098101043394441134327883384258969069668933676179734765221999932522905428157384554362052133545407992436187247617631033270594552553947857839915954979990332036491304659729039878012282541804926977803232978140153524508832131123054917805928473676164027576725553924385907825293279526849590795195948061575711898978158295956627875786550636113696279667189899107252253370013796938969027914123318997137705909990903371683458562376247857056906137365466448661916970915724923883198447581782244324448957102026474428377211713873763651256597305824906807882252319269181685296605531135613705927915848476556786115748607152918167309896111298348208819238125945115819774743996758028964339248407536596087914797279790440604800173011306892381994188479639243724587229409748932214199838899663369221034483992369491195437892517056415227125665899471720863297538838965344787461109866711863288836894317334669261403121331380492512415269127263300712513207275934706780776032159290620859467599313109000489200743379285409459079864358158058524675309989291283182943934475604931736355928651653369500827327961298608079483959739680486361683938622675365961868187030282520144739766346654407723612008913343483262835440901980965954084060148583680134276574317566978611405206011114304344890414072258338267294308227071246643427195005512403475040283736579881479060063923927798326408820021521770880864281083863689723834932786539099352475698952445492439103613503745182995242374317916020995848426543512176980799840189199611150554004690180314416866024413978242735348520159947558200767724578784907076652271464887622714032832929897864977096919712740380276608105901160450329503408631938823319539530201973398247712790310502685540045307601380779887072551185278584116485326813260359618767102922468158197379372809119830847079216068716509872337432978552708346623116341375585198949760499696245663879551842107496664656988686037435466503608243259735556114955850728393594242192505084726422878020039122590930999455207662704458973671637084137723495138876915530117146874068005848887918805481897780124426460675851196091241526278643340636244495429915026653289292589755480146494130756815741547830707432666761126516236245410003933588926809232982864350736381860856158952486335891416904330862825287008829657338188073211179601457679599656263278346013752216150786266982991557980623539480105615422303263379777147487096785900743843824652940410563878870956768626639856629562189927462872776797159873963763356426145338348154568027675690341816755523080748861182274520506430820919740798197953176968252660046866584673274771777365711710746113444152665467855593202148507179467197732564517900597422884536390582750481613415011903394280956260688072939835573112066935905172844328517249795609333036121599121787005380135130570332064751126646585381517777663687505225340854850148109192247050111213494960580899835864676085645904246121657032251503963086045142434783562660242232773830893237462144098196754873180206095197837047581058251306387090557640835612086583327533138876743121825337096108640015271939414851190237041369399463735389898836079441692857280546575021328619739972313747153099114215984533087737057803712787532338281753240627158090666391712196716191206627814157903263754674931608874719883478197797757086253996269577824082979838320068601737438434507627859390479660352636384417787033204330445491485304483286185734604474201524712448356800028097606548324730673117206335730666076251932918836103799170109809174055316265066590532196793659897970651911516854966263777916443454703950013851742746178210594966587027296372938056022784707036131618299525579335811001256055237597441365549753305022622387424839349274997630624595622807621695499591827435800257139019845915624983756000332631499101252146557733269958823372754144417191038757758790214334641697554399469811327336640354280893457211305421228355295142325596420457517143042634994557100950950840341231324435376315225701620715727657782415714566022010556757110424825785889885970629890606863331126156161761853468976272563473355644069360618188961455917446927138682006178655791935831612940173108360716134307629940354497354517187512062229679935402865807358864143555176210173189750734304556207556889278860033997265434435646074127325856988310935630066934970418086857436192390306538900511171144279182846933331148474641564676896756159220823025549223731048468815465457539118548005822097370668172178294354458796250998608789356904454025922114025898617116477351732626443794449740748976369320189904335105558384808254384121653998987096638694494168292097271637682172421938940198457270241213862662465441170827997614985382731362789151832184330172242742763356824888454200432757373166346450048284673636008155182476543354544469480577137956355185217051680926492149878854898968535631180774171644550135554312573256495360095807369270704835467802563935494501990768141785057810875536024965649971786346339103452656577941025767935415496012420248387057365416318282569095481915731895104860008231771659695887803064469590318760585302958300948592110975065427129033381895693694308815678678321315710415542568051882348151476822923862273581811633851626170082944846217363626843941664920800907374113712195520648352664753644172545160407483562278977562661932067985139171118606813012302919913302911975566773994941231824096739049195012000709503743710563633420974268387608004398814838344375266220489958856941850270787087528877406398825977342771116253876950025171774533530729646715877398870107023012394949688805828954510629538430416759808253981625063925642510708972869581530823797667946014625888190306739577002364238564485290758555959993648404428828792023350258195246648910674808990445538202089888671292061196904123250956774927172969212556489904093566736181725216749881140283337701523345305767865936499616038268743415998587726626145070863911614454731948878568759971732416419657891568239591816781718042125368786798609966920795547768503674674175647869610793588913343587383458586082222990893975330060799532392431690278847772532233052847266181046148469245084112297919111453721028925867415036609029690037492973103966791652166161483228774088748774267663699816438349997346332079600470026801242452418032593285790206487250146252867556609553789368231309692794196703527668856872089727335355541979179118315847680923130570348242921985822493209417361683032030263462803543165917171500036597262610896222564547515202130809291800949987402146851525452525037210593202168578226806034815027422934880850807705848929739320401000515950605030902812325923190260995528935813475845944823671790096128799615723383155740136712872031063699299889457627574175709465894088240563605911508537826611406847539312696798068456655907477998443134831556950963721219629832071356316275690003974912084353239793310359314294955022026388021942570948407032029035091135995622157272439040006254142847595905273471192687358092303636966905612930275711672855156428824378772019251553808688503673756743943009863003166916963676683062318494436926792655853030222666880851568833257102807146008631955083670878469773803232788509509770372154966485618270516673100728693260427966045894478703826691520662478561037542270381922639188211822153702246926341948864429414366284501670182127974084346500933909573025285308997037301543947024459021152454846072845785678245491290563102801775940867919102667448817126384942688207670184746824981005143041301995734845044382908748654819071587127687893778632487113733236074265958385990712966949418285316717321664477976333467934785913100945679519851732185223710016569498426732342843650695142070291691028945169317281023053316373185277272335938634367162257198288939405073322242204446393893633077756429376730011353324285505482059722523552650266264586901241583490525033528633599843392216907791397433610944391791086853713160280393354032413686370299565797291687882824777551411023486936007091456163686407865352180917021112759401702526681653379103647299998780269453349650584336451262476524549173024015639968569793916388205780167834449675292087575296301695870183433322482857294566146870107162771074754790550027418805790925682405156185003299003695832454512815006627543195728201192362504625148574373417516515415393432823107536512869012476388444797279760087526971054693314867628750432709585305443444522025291961359282493243031764823134233184277645542990444381270929296440935606251836134274553195452459778422055590051371555358611767802475532117535086778806886035884577100605794973075890341761755530785663193501838078644638575594395143055727863614029458288298487561200885821390874109681923225245106883557190095704548478090973825103659759174470038194942591267461623134719605181355527260756464442562446953372471735219279537351240020131741305341732105988294367450521108158203043062326105094566604124201611567085615316822225890932668301872849222802007188822678577741608305937485720113241120150859657301077518182814204155507082599466962583274364608927347958958626765239385155737055918955924229186489408275451778439210719212668378429165130662092309525350596044567317167470704614911295823021469421622918955921244672240387177181356227054614386001019990472585364869354207005220877424017681527516598973297574327150381631940762077833186683293386072610475889084143592461154250747991806032856709455268373193096459084189897874994185520227146541921513858768733440021390191337976311828675843881067935288439793746821058133651372382768480768379431606959816727287811761627471014847755976620952290307400505407282347810875699866578544131682753392318681907653355956882297705063157912164620366472822409695521522613625322886162409391244441253262559049080262874897776296612730536586360659581851085674312031786322722036545262747885653109136138759135429020704294035057064426120349371251634154044236458629248582936491360055012487082945502024029291261467551646807435395834673363748327796721067938089747755363740870234592435317541857914964180896657795652462993474053792616304684145778213506180425654971772329551281417922418852904405736736429459895564612795269193978133755132920909825277832531184582853636479119776190484623174426287479846888601625951044710740434752270545477878280861834410863271596578601700494490970520795481903789530548340618939591072220393656384817770909825935403367424673005466989731176139354446297526730029646992022144158389172057944973273188479312677924560012841780113820674228697988125463206527373376160827483900315460427084968258823735674475531015159306733050775339887228473521296562821525312786009897733674043334569883075067396132250657578057497556722184578844055319422460008590523260214103273494190017144354353982378973254003569820027924346627566992211446120498193253982840408916857670077265322973590694189657154081073507994283167998362470597231716437304935471104238965508760752054131444513626522327533487989004076192519249467276458796184989148080447715665438603331670222922487351877010725104708723363504953892294019382345714091019272612219227685721215894054406585182227491450726136856977670469477604397282674518730542649544085951022846694198517619547473203670784440064227120310057029072100726876879143317345082149630248995830528179333367444464141752098753626687026683521415195222971996472741335988970158412834366163891448202071093490898692610425153119703589350698044581976319465311785858844355078937570230092598350841572341625886183655942520837689505185817921796266461054839086256518316758643064158175559642163844689611451859617556657874913227059952502293109766543336016785149686620390241611562821781001572525528997734494398902046064194194280286415729483051990388158455218779218209109732294956115391272963361280321724934532333589321267569961461084417441789034125545447401374911376754511716354567052212759472234962806678119135809623847459828595051613404722034429934441782527270741259752017414307654604183597560197482001990372364294001550217218464530784446423368962611978706089593931291620791541483334063692914244546438161806455480015135664421584198146995640345199453824790102028289051914365199179760992372401273759940693133664663693940364109491030001814578727370941021207444912558498078558596894182955288382394593553553841417506922648188021606573342816466362065263722644273074713950163696823157123344073214150751956981977007785481309522055486922210997869820065040691702089643477107089614274450453179745104446250354459905259793724629465470606987835556043764490228608227167809225261607607464156788547358321851622695115123346719964141966041514050374672456185920954202543474055868046782780026056078433575821171334389843833364970207921129632008321446900751937509760545910533893717661207202358167867739825020330980083159095575164924598315540922533627776304331910293777410490071318749558206725099509480061669552123125129441717515401726420445727663909170769734528513477256017652324312990692359687392884191262123444275710769639385486344510203566708759391811539983294247589605210900934228285177932691964275242114968367664461870322076147422647576432793486267467552769551062654127531380171487383342695495055998290493191339865450939579315298316590666220701549373033229960121185286854695004100757932777397533807961759837877867841700323720251914912718669912892158797110779874506329746439053141851034067562422491175680488239905777818159791660930408416654096161906930511154482847441022022874882183926951552185322192883920611452976105354906558835749869558184229486212498621334826672980628892079677229496143370528087368085373463567737631496706079990997298022093834419897121455650374381229797650985128823073249048549339929603955808472433513343726219827999230795008462039160515908303616532646273433323778736556221945049068381816193520132999382543181405873743132110568481137357931395439233573630507952022438902215332097850317826021067502460048967556056804700052900522509668358064086145203655435501286997205832933601437372696001770572139391899057098157866590118035978238673919495229944909846893553226158753170373929722562298970253744671587343547879476470450511067654015471219640323773668301368576467749548746481648128374379769381573408365029610930099683701317382471272703336279829786965113767557499298570312864325474805258266646855019254201340723215079511152247095856391177352364065091408978583920362222121432403050112347555355013567878756815633734104731282088763737835268153584944287655141770477933256958364769453682592032150234924527103952614216466132718558485313670777270369356875186040514012616955206456253848502697604152273618039391464708316140104055583485730973395458293076610663325489482516804758798252153470673225549743900072706659998047812486109454682050192780078217904493081963561787987297995611228838924015572838161344349903020382595211053756017126405679685186577297741885500302178414802122130144951563152231337956912860562366932988060923244062275654133623235274608816878066310751585069886915083642500816574118343375315977753287354453347740746986699380907157793470031605532302574133323285278547696107323360235870384728031702718386399669069795528514286645530018943535213669420524056927103452446962221066467928467835542117398163541653963624951388631474883972291892786064836973688940201426074078546691304018623185676418660965636290022681847230369163576612399246264750200216678008039527991289318167131966618051942219971327424586757388887864403763153128807606017408633784059160686460429789478496553002414866519466704921964678062384348184201555163137376937199351418992668351885369387831707539601136909395891915513217927179099600615983615676057105953844146089052357565955385680826626712286983076563210147609174383225569966391844995408274575145594352525478305992457551351810902135816528232606625206275036172722816375442248378484654341261051157617516339538706617829360523700702145670941225264331539057602506310855159879205280066765903408768072980821100655120412008396036068376725081723620710527424252098289987850471966579366489720220860173848531108761798026076751381448052797046853128222966574174016784424696861988404014404823973783810332331857653848886427696080233227413301636489511995353146319817721181682531045494789702526751637814255268213924138956320579246673587672602977146107646489642860543289068600221418702708725732169603812261281522230752107934452231535938602917162003144096043879478813597504868017517826550616809295549915941657047791492099695270197883059199826029337825054059839152960275560970392427044654045715523276919815261872881759752043206847090693972200711654018044211449591232986873870049159439064003874183138773314411752732661298384772550268977458064761360172242666050919784380413514295771633690666712940258240106121870265942101515040866343688510607245696388868857455013943936808411165877831624047315674262693049196680935016633701318128316536074170981756714011519562023524336223170149992421643929573650490613014620900409877852027511538954094485949626788313466899339093043107935020893431106496775217719652565818272446389686090725937788036708543620475178991798229214722353138648795154963898933685113796551106780876466544235987003553522065731415323799948488077964442178544758034716448380041787354972695536963748542418427301761827711630689172424403951164540214595706789685273960930143529674790495606254116815581090652072542691474224079916772832468979451939295929807070132042966889683802777053749061914870680137070298734468487269251004188911837346481433039808567343920652245031019190618605927111036649326519859550488734691104921335421636092046667888063980655974727594524642953783871931932616851128240318872413785671071239646550311122221025734459002864178381114941704379611068671308255387904427287072241812797796938067014592873179396326298357327826388021196338701258470115414277409535986794628930165878651504814900469004689324919418624631059766552438393385608344863602104013321462585258455358168859640038581231010029942292724365610017345948985032631418831913601646269678895839684131075245118178299431305210323920088165178844994574876188432450446062110462504328675840031495555122639206778553382206660427911681849562749828305780246707458363709513441212972044981530069699492560692637063419068786160943226060794426242585346649893523923029845956104346015945989818952376380858615435774249613616594106236703998755766014449605623540266058777009030217583959539196530285000978222794698775649193519807956279830322577716220925694678808846860977357784978967469867751953932885930725354383162508690266930424915007329192740751592715216600485661740987139105299017968446926307829681677177505628530086184099817786715457995055060842939384979507747998298872598269962897923605491956697499156380164006022947569299283326874017530123688014684120921699309483948642686259664605709764301185092010541048612205671460097557725499951777848358561758931324349361590511845426927341254552010142117333375135281353811186262355363907939702659345633173194724531871375293554167449454956207568370618140648289361836882981989551849634614747219650476783823839175346607485588870663496691480786900639021218800546440735084488410739801884399530271054289927702948749524422525339896355976874997887003270710980981787128069846237778470309782581944764369436947744090109844976477163429320173830744147028204384333209338500466615584650854065630807045465416344171748908306576435499220068566499733306263457318052879846202690581883995045724009019973088768813286364360370436117649583700026468404913200183559953122371904249749979887565193047726345537657079582361430077938874147506553677056281424023676292161476763701317219790829169038386273451919710952617538051359688280699314735885221919869101516120005386310471819921162289597841834779850281001989502263949308058241104632319533179086383210382477909619178843635141469887069853169348655544712675084164955141989538572862276150630096833406961533357872533634488740531504238340231985584057684181946038637900143864918952066222697132332973354502477368094866474988136827297910992014806204985731876974932473314682528934156821954117237112806535835733122231827182848925319549849454828643704314488383887539363434879179641389960898308569000500742276553350482086385462519418434575750164235907481394107422064159806780160466860493931208532711053366188085099874051398313556250405658311915044653898670800809313876909144173885560186279307742942397961792399247013491037993783851880329230047105631845307855921932110414298121514517369783736885989368693366152325563084498901161156952380733633389776826307476006099068745094075690386281674789076494424635724053443903199337586271461920877420537927942826740591528717616356897088843050697590786585018603787443941375284760545089611613622282844521392144122499715184618043496364451835228517020054192709097639119892319023847729469211248609915725092237594351733775264393235205896190110949369286604051823782320708735964398283561343722557726206957995650767383167775443945560632559461567096684009845907927463891594459156150613555367713745215817302107024373542157293282757018152711866252768900626376025658289240120635901935221139959517484258999251999233555230625776900369476701014601872823816576776935364771098280939523420328160120727059235861941280461127707125507326904601775478864264198168903950533407877370217393626307191819113490930393772576156898027067497559289549854801308314565471025202157634623017516633908179169947168983828107555248023401905691859222002724620807603349533861972328327002348962193574668648759632541231667532549669870698809890918732569234303957103784660125791363101113838894487878684627968524629834647294092218898727344681903495877166561679978693936463308789917665732938573151617629394805846348775150510658242536761905050488889278055570237288049981105756512332938240579285988997071811244732176622847941234048073096780853596699365909827451250058773082499773394528140686194277804535461137502984715274572498020295248088776495628992405709720388258188798257313276237141483975600579351070396899239057570883272671747690824071892460735527641296978598778579863253648681830360161251319541704088187996497983442489056577497284103335395656400403595730474249394659022942338127024291566738568464433427921960886820358298871841028679269052465659928837948151345342577925412014875158157329304581073684304544521909320332969828128761792681942807624234637751076271622911405252265754351407350763079485719953722832009788339924047508236773564253712642155968801816169478376012212683942870623774416073159573614695836064640107950418073467612766068223486541266916292956130051871691011460070183546598864459074230050862732114953988611828428950382479419813810776605418549732588767132047811651762331556917675601703030442064631985828353476871001950563825668990534860295769942196663084742037188347343800741302195467911097782473537298193293075772813866277383774252528931189247716059143622158555436946508984130980229212154828701438585781343100597328158704225742275034907639044969453770186682129919008970994829384584985209086551870810834540687457982821094854942248472536259870131875588415670823314555395875240802232020454334008537743317258623785054565252915164245075399500240097628626172866441713437412683146863480870948752893903871390003929519271971029984700993283456194437605909352283242462440523198756129109689699148658140759091872096999135182865656246888212413736755081384618761834103952958654379240190011166339890833111889438152605584875829892437373125298924389011004777537322348273343124712289345008320757871945954001891510910132037574804187450247425864239785879595843232030093543116006945091081995369110958219704327351418217003296472900652224942492470507364222042586052067035760063671630721853084186407060440992887840057925929713261862504733855369558196491842440931339102831194817522283642566758220145353235410252940089997511967594103231872819031655756921576243014779864656296562029622314949886412294120581320236645012615718326136530526217312833914950174009892143062540732356093533449577072854944470148310990450280944147669617097579858705775835150929875039809184414835020882062123957260114019379770314673899339766514256255799784346098308713159007638174760972434900686976488637291072564864153016619698841339198060491054064597836207871190597464281503075562719137425677252034890029357859485122233511153556616562183075481885720099910907932722730653035783960022618427773270945552155144041138995015542524832290879957120263208090371597089530784168472777845758802771184071743902434260576924361018211308474830155767125706833547789654144902823346306177513743054223509054160532416450154969326837134453394381400302938454787968633011136919173950493878413237478578982083883641729838774599684790154573354389091857162739527582152623456081673330187109529006476412970391725895978307488457510677737490694095756211946265019919869517050955684395185405375150512523741554865512118120830790932277891866396935449549740933940838909826173082130848334152827685307499219844263532944810123663703605715527539690103247900971498506718282140689718408520584909379545387662668894921472325404720412633799773935632148323915616887596920519143955289731122007298986900643215572116869347448786081368851338053186244611917775834163350547170636215823122238947185249953333988378798612924263881778213315425815623739687785938566335573031233738064320509599809227099616073542144944129305499379249243032222124685217843204982417589521190283301418266324791980138778609585543949335960034660914569541922235793365242594806478527072635369883260723754175637511469553960692704322427162010819494329538763032772470685959426407263889708622268617955880272227879293620965176618000092329702372708089772228793929527353592497224382736291081905591238536043328482299599926827859599007237644363976677872771322996434960378334845215351193978309696887692230849649652539646552950788360274250552674087128825093851795725020139225927074541659952836994460079122958764910811732051629773083257068120586180660470932457603451392572868316233366669265420295483939801092764296617706443372052634248997049761684659379732116167402337748555989122078441339709858898242055483351574809097877840315279317257220932151755607432560911729691030984370795830641931013150678433184802692675699897937813956160537558136479412819334261895907674927641363778500987441541034468639600403544753913814517853524937280105303250380593738643535184796616980167254311653995484913331470574003805356186214707126451425055238587839793332661233287120323059166503775001594608371547343885956301530185740257388393650992138317190758401315504372163942231853264435975143535582941432759441017515775716244920258553584783081218348693983758521640553043148651259258768956611522048468633637154362344454038699028364659940273909223659532856912075744079416145602001005170614288573857030213720344484163115704513756793143801391156910139840014404083242706978159989550906383216071736391712962892713016985307773546084939834629271647788919334940935487095315568283465433461359941757473687246958781470980661485827426694535290054142046232641546009151667438309199356568938942523364829953977628517688758830632495135478446060079042677797561764237047319181242346679632206339823221195503708154367476212051719047493509461416723875126519281541144586480547046099690725779552360754974475144556229227974928339906910844866407403615853769020493142329872844921544675460405327284681703689759166573935247335788367656732177434281853768622227044711071578462648067551636950613214405096623576928309202378554177824818903948674775834554440789741700921142631264896704509450193377633787496557943663815718413716669098920609424092528722508190599162044663310073045481734059186358029101353669568475085842436571577854989275525338416463361361180214228824341727560718430831981163998322141086098143218800487944834748415515995456658365636748953600107853979704791820255304314907992910092896336936427797532503946934667742000536094245225108358725931537833297973210360114835317485117461525124948034356069882511623018605341167361393908524825912255118418038263040702930864634952034617439760826062461184101972621982042289273994749625020969316699158991372495865487783575855094817494121659871181260801537156275525463325471052204077465030286081537013178271775124108621930365361810362702625799678518397051834217155825280817729465324899461069507605202149455791664894738423693229809790663779049783573918660870655455368631473937977256238180014651336017814554713086706279001235528412862010548822696320411744606548134325716686735040600388433899249180389078622269604174486347091991256428070103892124891037147171461170585933648594711290480365666258646288421581024276284456412784290551029907198513067993452705210013484707053203641250799627585855561470368532562704691817857792883910117563507368727371175486116695111195505030329638027836254007822595644239630499121514388184552001947299071652880994302393937349586433055034286099628347154853359863628920761734129217194990625120855176344344033329315349867794290396434773280961917782416083227452130489762191424781449023463996746487290386544381922768434137373571247067266696835674070320009020084263698768285936059447223347953059901286688173855978139944374104719769956002239729661858666920747683070391314279424960045576472140524483759855888716238518309094388748090318580029370164236262720417930146892808996471573405355018985001734966517735708233221664810842769935319327365514830097082415755333694373841301407531536703712275845205367936005795796893048618272304166053718553062594490581378353613297310748829568764080843553120490813156506597562709533518392214118149942922222512814228757954375759454848251873830128052798175353146957972272152753043175438091840066757296107677573061098753530293749501764220357272645060523993344681196193981076993388676681228373358573584748808877996107459469261804465354661471134487179729393631667745592712525544706349152390779156089166637848866223551848245327106833180300601684870121743499423213264441289098041622829364566786444380030533967068331800259290176045741949307717510432346469925916409884217804051036229631301502039555646255280706203824871330501759766445083658162093129176071061697742994508590525189198786507232404565742579789385418160844661259255064692824348047981714244973307248178900598902101531322937919334672906080204396687004343823088045359059107260155707924293755221465759508909108243187815651430594332692733492950551729975362506494661805224636551916514442031657940649355701025544032798273558742208559456259246174893926087407421224362790267902931543012294959669093755048571041402486393449899348484015600222357391715027503336411732422141486781478729254076245541752361717121318037527570336888059217561253451672366866093657435703864548589492829595173031727639905300784709973701292093568124206530732644138761637673092598522179960534112201886588910931679217804121639612051553172037979333637892108530888949419872952174833763372374919606500181538485017569809606600867349772904776115314172924774267720248267969891058949930684173106426557718236327731191485959157820151190668699425050566774788107470127019082837993827013257019569930595576951928912092818411978615246832600820067225539581074168360326792540990875063336648370343465722418432343966394931501968321488012207385304931851936445732330159725823312076351366158647402991987632091376545056573685296557374983754102764592997287223498679617758845244501230709988764267640799737730572629133916561704735117057057860825839626314195621126404909606777631598695562618289594730301890649711290231676436106196073706729554888753647942008738919163047810419134971247638998640399069199890168038462850828692706482854836050122485239331537375256069746628488433660400578020486092407487268467283144374646670966607762612752822489319329145881625135543266913552327645967171068421749636285827706682403568957400947421570540585769994600659608093377471085987958828321671131109278538614256786171581702096800052576942005973202002302020936652441889892530695234567212994467546962164501193870928364270605570517518984607756792067862227778263865541449964600565049725430066518915270494402293148638398720087568166045686109123162688657645445236337469337457913125240856358190238625890467657608533563223062564791859395157030948262671058530235026867902316681402239779109139557575275444647942676107888884130003575982910435681675367358990717068896163771873573062702730142623155688135759108704098265807986862948471601687470735452873494566589426720788695077065163752925407204766461359621082878145100059517879812715772684245296541328088328517549420094321428512381194840478192093978299122520512003390599913634343045195515717220514853118201048593912644275478051910263203122600952747839148981470573197086793280706156207279620148652123794332820090734094925000831417733738249254476005548298244115923367781557446032303117318348106493319348850047907618287296311633639356982703683635872859759784449149460836488078382631908197939728758795569776135044720896650312463777922185559420597656110298016307198109483593521456536894204261724726858616742492518310854234957012104108125867285931560148498131016468274074528858727728363831426158934266065236107957703021105003910650748496425162312754452138007543214905422726077589933962775110424210168610586816263551856732279885671982125786988100470242735791839250294265431230733506165448020446709230228631155594989380752059396635464892197175959650565213818867015091080446335708243932332918032619905035150000475635868334738525163057297003139232062204140222556224737993698588292593513556431718129321565757305785867467365758059014698171667065145542889231619736965128839044158986489256752774821118608056308869835848875033339880153036784951165017921635487475246989395362060040066089851351044624951368724734743518954208604195756458040703196976656507434974998476083211242914614387922236255724041230139087848531850873163773267038555888747032430296273011731213961281240153641624743788585885160709492711229075169092667387547677773920917168355403792367931308940589680044537188871361257074037806433496940053601165259045425702100124557546849129850730925972906920632152273507733964852218058644519057240200717996002588565438653916164584716837339604842815849005453588364637986422630154305280853075732066861061061285570149166713913032077491156106483629886310178725811082057208188314740375124076375742690880919106591729672417334134323156526994385606334793378009301405403260826493971538272830939302525774223374818429277399099839598558748353562855892841726881431005768412294282355802600614685278035954149007384682093528976823467060827936501875368535876233206160484408655604170718946272219739767851605237367516686280881109935308159433368841394983741872964329668111945515823759459358951150484242283539160928636852717293726966739224988300451473337134270266811739057813947180976983471643428825126474637077262562187298011505637290557041300413238029938868114750459341489167095598458828327982875792131015819291404240978935352573507645825201136837086779514127501203299466280951901076613323425393213718020003215302711629500007523376665242351736842746948349092687227463414708796253491168586354083078326994937845588449102986511374367148749303562427322393302552494783195511586953208901314250138805689448783809945457758106628795392566725465827198322510282522821017312399609686360918461030579978873858146652512865787091764838361420191499125251606341104178543097009956665829803637021465087211851301326423866048778390632643232643737381179045299652552405933636228174476657489733197122567227970551342240019769081651829374877936149190753696308227623663798162435461495948983909214406167573523389477791857757907333600562542614379409106863988137032456988470734783114808780279755853912610888559490466245704223343350431552819878504767612524365096056117713324323628251662061131185314730175449791339276717571498271804288255026282328676574735408022341593593057507345358752204357678110877067675482805482654605824289866360317175483027494233141995472958577626030852032524704583702062827582649766569353124106933680328028348638560379597257969162610656226803745058735184716640584321492519209022712166047330004608797972020503010849497066424279411376162983985817245175500442303180653046488094286524053751984457092019599824096532589837465711673809011374105798780982218153924626114634344311877467448038783257209818816322679891953242436530855774711639874584681087957705067649793723489614072981964184587160548357592689373597569299508739678647468729383198476643502181745310757925191747853310837189234394136004371213900425959116385297326273278677087766876758791205373995112178067697458375100908341684528526303348355303380777304074261190524597046811144749309247972398444502377908535572923017945650217072976181391174129769090185536445432210398136151521335368021359799165589885013374245472489901315745708025668064445450108414022712674953635605668060052953419941929823149843030619360843348576820930669777294075995334839804616581044502576446582837416822340664114552709681094609859380471603864047510243717499605718832361282930115013077546618089672496169548414572935834446495874167677493285226256044613295114484289701070448522161852749341502228204619361186432882247285936660865024980270837163170998169271987228200803385661439203525505149785894618420378794330441952151427644128122202909812716011148128168462821425539974405884143830931841085859420862353152027347612256469073566312109978666604471021341657025398698734534541250854950496812599273141361483060259316189434623714222200779734381103437148427257969556716277351786548610315138692373532983574802880926387998950166736847784393523208095282222742907153004156606927880632485137188651990249490352478057602149716181535001943995641573794829397584889889490409832679481845258735169498066601747036464435846187115887281436145028446230638786763139512037230970135783872861457053832507237733264082989198551792037581383024255903134080780690062514031177873111273885508797097270682058173364210328444726677652915618017284894792572237504760648456090294830058445399497565855798664629723264598135775982551945180465600336919152178468449262938851619955071261475734400181316804119599316874395167648522266774533539538489129989760003290713754398692349030906826822329230072910418952789479633685600329849662368822158232264543284096280534333055649899631968742942836549494615435463737405532958442635835231177613250870231926639105660285861280313963869377081963662988123130608246214807841632521358142093930706131526984049650469479184436161696147232247311561902317119362218109474112575788271251983577393975885838559052600350543137684679160319642802625750600688960251668838095837906079914512986207417041208905745758787867766746084683027468722003053552981106522666875813244288028075771802459096405677523596998448173350937276872420166051972673471568469051132662820480725626151344521112831314787761599679224262065949622321992415132532845872920090663707969304383444172436511744815734608431712085899017721252375616112912526276374234095172524195477350758755468891977389948730197050031195678154108948485946962353992689728521499473052556538945411192090029980051683195370374570332049092280377366233891025777163456879947329570548875419064645055460823271518424262991737720139042485820336634173756150233880723061808230173554996348814883810939250900963457702553360966854811347374580784101575791211025302084467412698066043907843013382328234738349173345290376071552955625516885326413913196140162107699672835664604275722100336720123689406432792827872676685298268891247662704778393078799575381478404953093033279734859204136881883681002656903325082852717671283106219917491828025530079581499394389987881262528928562600651686757256416572187002078779473964233503725894431514595272512306652269493688383070519403170702351795705565849245071643853447338748117054813165251483194996959986680447799188880954932562885215806853050649294247624640073303314023667596855497757390578356645460357524812194392044602889470924591081626327802503101740665205395842849392699741133119440884998568281268129350212022249771954971300957745975426096807492105863749519376862545527966115889395435050626516840329319643738362092813262526546705065188109461514017733240745377099638945545335620041555008401665085119050946921326354482103390230594373047959690272920107665149665980975219089802171736735985710357376604591299711360814825356271299496010090455350172477614833680637364120762990444024948910826433593616367265279459839780322886670978876260647172863632662027950383817715401609386347736742823093372148914323724590133263814999445245720096512660782241010746638477988315706935201473265546394032815464620054903225060564444251609749965594613249535008542193765018292525552712293861065717204237207848947095158138070794452755641284084006606805677434910123160618394427627401971421339652977050392924755932096202066674572603500225312491529357681874011834373958227168973353842822500787739075268142049918932483623408696614663191590092879958115218848594909619457175173626871506150743162864571207244720366509252394081066349248233819861224878344301303373897126401347709836796394347066535509638181909774798591230423241030152632358170539752126176690169362001146110002112283792645344276694534423600610133152735812050074924945380326783522320522187380829350524126752714696775874851609338851269388617082643979706383407945714211200863743276858873878458595974404556248975633198658994711791518234786584555505697280169866995849020780457624672249697246138071093340960190349455543433931385133189029799696607055022247498216185464592289768089022054362638994758254557800861958481778112713711849495489858555502119703888274016152138448075332825684135191902755458050446920201680755643216876951905096774693175575311339840623280479028153965632606290203069271054900009926216748160516731923077205952858382471399741645863107362860329372007075705956097162911208536301572330115974734307607815157372989480848996479495714673121489522334714486849971990334667198710315039040896316655520618093397354156137379480562018605985651420213274658725994786355046751751086307978489305980449248599323413372199620216053560672369635720519371573579127047173046635690078594971493619800364751808762826881209097348796696559158082052360424090976388795844356586004864880422900126084103790497886164489486520197637551684947938324918948426993087004658910135736083752620011425027897641950179719924938158948301036521746572322925760129506156664612105587106062345155169975685916141789248752462429157868944071953315461563684186156022856943687603983603011918196980648671843464583451248086410003494485347580368801846328918186649112614294822974379857044464342333756378349236467136783927381031869631251314839840162709962100427884058688601196497567495774293390463932235273211030490574867466154583814997365392700030544043204975878052069374329474757821426054023109417779085971174562375031765911909817659312190168558083675181809119667780782322437980375133051187341146981321158877494996490577759595543637712490747480950012583588483822456892458334964212938053409491683183553308644859125710811394486273516288548141075674378210833074293482266623418950013945464738824993984285444497185932652727681840271962141766309730534799500113644687972648182261895794122812867008683015421866020584537317494822608215313118224741172662242214969550907215837178062319787327084468746993565702737821503855412741340505105172119401622993353864783165171767115830172540782101406408210664526745772492755310224356757964965947723304899328688780489914772102491163146470534001089664343622208510865756144266984597015232208523269473832190896390103284393392399899645679065216037632727562618376755698998773546598272792101170545225094039202968320835806359947819272696902186409156521731526659833412116742547489028129663571805635821823134368771302314411664182752462322970529885809256574778345540883079432340533377550656417483321563573896290291337464276365147019993715602681455219371082548909414141002415460497249956161829111339041315855099294811960709091557167839536677497037014311846258825131357709538389334980903777197237566957486786610496968178397141998398286555935527914486521496872632771152066847263316569198175564254992108544564838135667319174399535366978946541574895140195694119676498061383072800924358827827371634104747359167832507411819463556317279272550138909897224398829342046625360993312877095041143596682747160892708208486106908489840191396292759211146321507416545099088259111149280100907633501561408174899414063513820860785842086361793040359501176310418989242540101583950972946215753730515892610625169662910964025933335153385221932671466357814494160309555498206475150066591107253723658679985155393537432878603577414314917352993376256686805220372889542759418680365093008640460848095697581890559416083803873767696026559769780062433808404680045282256112296228784926818715805456822224393962907769459628963735804569781683501545581343767532532445562975384301814749246041321871881980601418154359511808675753659927291922039110221682693669904697440260977049394656990769493852053938608751402656793485756578303725100524859897416438886982837072177672992732046435766382842933771608583706607495299153594929576067899995961360160994089594556043508273506429628198890991102746543348823083379875334548447435949782662987872905280413912171397356063921572603316626949326512762831579886090420448469942393452372823885850151815711283414119339327136865075368295256559730808791824422559679220284154018176509679691286558913617447305617197302215437601637530238887170687349559971455591754038599811248916525700830001573203562047736615411737846215370394050757736775635780751539898340255219220485959663696400408276960771840278010040120679107398247709944589367160527346108948858461710815473072233844050953870623599747051072099022436390087958095064935977560109369741264953924795800241235307244345307393113518657351422766738345230074239071685621670833507509109559978135132145765574985535336530264271071446822446634893849542497712342150322302520996363119000994790679366147998205575886144218530142483847873947011856378741701988897904202150424176598467829109922084189404277988332025034541881045337179415252107163309261609870252742644144916277081143002221400192104693051876945246591566519926489258372101945978510202466401252182160544443264449492474989855957236449149092304913748561336599539209108644461401966867743411958989244458911766658778254437028329021282324269915216707936702789619455850099798746240781040945133911834854985102057626931803765872124923518053793798879082013916585081207038544176338649405371854620523241436408495337786857229961988675915829824628943958187896809922211478134841228897090031058159641946956203139493362509469677473617319517466277611572838967995648895785940263123818551337029441643377119738873983946161428126922944190632447889788449082036538935947476991015147984859466351762632410243008732576357547500185920692086856623186206876113666564342402062640458094644122755927351046760091765895854079669418611008835536126270688064934826598290225058228532212191717456565561163809223236255972696627240345023810932219573532101116050401534043000867511400220992203134267564960550337078007825073528010206327421177382318172387264616995230117653156453224848326803565602831756701935572042862160276235438556655103372052070471759461493662713769239636934291049777598663609703539514957371950830904229036562277552723783015081935984635341024368652876173584492760079565812174562863920414074574441789605389343784840958770605506072732801348214586761762918666802358447154100278603527640145847475807443321358046919877303619824222867938929524748230665838594395287791181030455138161480287555622219371821225810582089295888231950204787318308210242804140293916221236478668466533350364771521532059072084908264883439474452188999465573106345434932744720938313533447793448522249731778285861393269682014551896558872102217477817260524751830891734539852064325294393821689069243165954536743196775939734807702915307568329980986099766422160307771237418144716399036083895531377284798235176740636547723813489095214015350103798468509853957607680352232503645145485535440603513033327230285988368329515135806743333998982592071641914367295356115997801012414611888950498691114045057993271380776588526213724155914460470538455440275144941234722428142640337666525117217641988455598551924121083556581625836066732487571770735243092568457247446376641966860065066611982357203706820646979777942958775118335361378455660360810346404282881622497156707531822371955134212686044192236143352793862450628883630832757248707524108125790866528818641343936338146394745664064345287280671549627620695135887345785751221626662001054592429099218893941990439365526277197356348029012199828660777911361115187944710857770613275158249567474036129496856522523854782646396477482133450768886394496113396067800423800130152022858344522105714347218717165307397670120162006810625633352112764935535786965938806490282436778769861894962963666672318879302583742713283925441197262315792173997396592143071106315342999718114120913311328438329394349139944335539355258037751821666835693094272408524247718693403691964129737851524422222192115684372507482213199580029432805610667194521651882512385645775903366248402581427039296968409151470325256672761974988337525621384283500358232769405306809072199181080245728040175661274920314372587435277043081587147641956781329187198873893925412909763097781187166754727986493450758878580981387020515109401577713686352683154961576052437525941460177323737111128790543086727760456043288882600759566717004432456573793537990991769411233321869785231514337454647708613593282217577640113271775491336918189048615341248378250050942653503000720926383706711008214837351049472379011026654510671150079999295144494743853733826369472671035708459183303096562371328999326244087121043041640409536977876976062021249130328488196036685610577078780508252641826262691147566437637054175443891681299296890936435839063154446822024598746120841000157466019859138947819440729463224350421984811592861907346040722254103100953925540239809955199834374259348253729582980100512250036437219597191208138642540374039001017099034896337429067275316585381569283356839534928919998289226947032377344700169216452022936051913836081678500158553032309763145490386067435421394644178788862585171092250245710606898558608809462709811419829118834948660639952664733183761833247237540159044540040204001380708022877590648869140257151487462723039281266115811789162445258510215527774236694288697501796776289580331194118440765120368656559650386176191048101566561530034434677476212456273522146566555907779857019131921563810295837802147557045044223597565042243118730370030790333577833371962097180493746812763998343629525590489830548384403107445444979891770057458257384104557857612807193426425549848471234559103623576268937188653848582453338633217684917189354741933474635897220308482595359727795027123139066963835252791801623797767263589198955143638911712395068156827086689846879440222323880954021463754874343294041834548418241138681890282826774557035692739807983510370110408918789795546435043322156419174331644436621172380964562207720274296397213915361113819636148009193591665426854885056655111843433287037103319510311890144017320376821338293054859643925534866275569466599512123177572633478340291481070193648096517700722893194766457325050599906685922162209931141447866287118308822459152463982856213293788234594428022085579968752663555499786554140930999005177417228487031906467669163014190112617163392615435267365940861127586555842595595499133781600215169735046446255222476754994596796665030768998381344785650965733515327666688893918108013222704354497758838410276906062640301909681867962679804434318348543082005638278076372465407184722697553876359921766481280854892428792160913668497666875742465259226739034688834134771125319103105302949232790499632670382544063893472176721826346587061870611291143927319773023294905785548400629527841364749309173560966237636033512461856156615700847704310646865152350833073759233673887409093532311926406130708817178316816950321128566781562112082024756104779967804993834763384663359807644959580188557570524857015557528264927595949841868731177571341869319497810717443531014651251587984112724167144835979803397953811093125009376138935930708802427236767889240210841171789239529098278840321558007643845605444663277478619362378354298816907863172792195516520941990305742288881066662924847899869488892423175791489225821902868250882269185796966521919516048196669199208101417172726858403458724402148835995272789147542762812797218971373640291879757326532031135253971122219001686439262300538415290925807241013530102397424500708968877892793411106831208732058536972712348368905917718586243469850521390616141778927868055204927622496466472206843740403791186259205884727915952155733322136951287300836094823575134485512053023852231840850523470573070388206555762227272161488093474303123665795158846555061818043776231081886624716287247077516903248988394463413209519687116066462449156488105600288899554068358812071936626193100452304380351530492747986161743509388432959253802645173189906958297792715288595049975915022724587666795408456310342330778377942501419183769007008475630141069956907402861602724098989929904179561339278632447923522071784573410749597218591375200716880823354335122242179512032887533309721236097988286882026078370124920380096748423692789353137839874403782803039315905314448571559674270844300973109195171107766570786018600953036925089589347851905853490084486910708489930051714670915331066300281341611066048094440279608966350855063523287926618741003025224089830163589205002425488206495042348581189156586558955980617679817783930382004738530309471637428576787324007751807894144766014714963162656502620701307367965561817551524307536262365295235650558214288705290904300036504225429009090744178928781625334350792253786238202654793161497163120605718107770195197186128200338632726406786534973928387889400266450757439930612047310917213439948387175194002685633864329671974075602561149553400287438062240214723548021159027209802191152482639155399283599884752126137823074311610077412374257320422935610897053547491849412413390303495797148754634985674941849932012558576297551652138462304306036233109700999408964626429287440582010061259891256051337505046793758007254100443972547670855526426307249152805610456474497756876286650062488379262144175625233795047272825483619530952385165064531758781376994900080056299732430288092557987629234748734167208830583266124934604658955413987856238298992822255422222454420771564058043606906399073140176566805388146431344696672463188302729528354738521958449905446961103696853012580832040339756320826562617500168035184665535427446405338152090627568305521412821959990676305698094218230095574706783310570129166852509985329822415152484919416796126290014729707301221281665516958831105534806102530889160908353714973494910699773949062390264502414630197904640129547565208402163303080335138805631796896591741218662227594877215838979131211392548441392855282122783096197704327077790085260738030745711823877873675693847108809339890417521700444757440596060300918296931052106241506031767554188990968615238831733464468752577443269315203222256395878351501210784207437418750622214945850400941906010564422198141454184300399429631614299596569938730691435445965171370995860979466536315470218980794041466534510184576836027303442514705234295049740280146310026228861051223953190065708021774779647019214279615922457716103254082997075710510883099031732174752041350699831039611207286554398645866072994199333279159956309432860606671227505271792422896589950194136172927402182231409447843475895535483626983462126855408689037672961619347995513636568698131063137655778019637893642205089972036092423871977148527294969537407009436713359893447492383349031301425494991374253864891514951939956200076599098017410064317563160002909961250479346062160243677255752152296727453641606813792103097135975465559395940852572824563731835299424149449261578078525980557622953426010317070399952203342652419920468460791347300957830305783074585155891450270099196495053567543374327646114500068942506785409138702564456405138458737469860725273467632255635243193293139215666839892706741673550151519068083866552459886696020822865242553330613179105836201991329897345311756053482553384608760943104858859460776113664217912638639102853393263422610810267536974523235199964516726423730580968226713776825142892870961123437180419786020724329734581029129373606730385516498761829731219838507136057389612186349753030469120404492186374550122275650406614573199073664105309470987420033179778557063763025992507998595107876734739706025909698109392549149159633080428386343013714812077553037623523897527418577207495749728295204728627370169960886042718377270444915735109701101862407552753130308754119307409553497175985547078520667290127403710068151126741165146222886989402469254281475974637474123243485216826377507966174623211217613898055348162757603521641189074695800500147525125790343971385699912757715036169542636476325618631101618239723354320985787689025811732543789540617100526984693970293217774403641891665055813352881947825010726377651065752974381846723594884006343632934174777923373259503376483223807971625061530332772949353855292801475227055173036633583973902505079354993539427540698426167774049602405326020512963973660399649130402077091671800346356041320499400789626064704261082583236224316320860876179706297200157360109826518525459787917943627083844404988012044151591704741438993625491280838723905038537733012114469098822477763583950817697516282177724182203533121848220899553627466687387938941190400198119699414138670766063134060345921036601285986573753661159006518263717584143156930898027131928202483070086700805956750502408064854578426257890773139172008399284986829908460828366278637756216226242618304632243029645170102960543875670584861937711199483659809859716746350888472960231667412156899723822684466904721051428399272547611675506104361148028286283808962193766615463237392954766527762743826855458468651320803334976784989674772184228245714780746304031994481084958826776812800457516628088679803056448012390074900908392164412537822137412327945887375201287615021348743966431778229633530803996309623772211220386923320289669371648971220223229312973599294120262413402949017569619496658244128653548448982724736644992857297735296217555709061495152697186424626169571042489681683884190898858669245399243041891786707933562920403060215914994787267141792146050746386505131614425795924946790384913208224182299402914384749906438163885211612324387024169800569099467399164389018719326806153379704654005380100742515214430022125093311981208883195486727746386849905608676390986730517853842149175082227258115748234611543437037153863332253896899228314015668034900636659657803973827025379302692945645636843864855836783424648625032375936984334092511444685804132530141090684710586446306561174293777317805026950429778276418061252021962933605804857104191548128681120725065239474334916478499494090722136226393236579888394266800343038254569818927077527249787218831164201412779273497234121419496692258989259916927890173384558393791963685386677917368796051086864186328934268026522192040579650264041639527475107408021536462242862870928930013353321986402193002230806976135491830518155086832996622519979486649896932382073614752460004558440319129947949220133059672651915001211403629016514312046828236451227743982491900519507271539705944433199226952060319611760643159878760124434442080928141511291729855595647723540463380098886638687978916269074955949068149051760381946506902115866224638971419050828643436491193324033582078615487981353634441880268950448347559546870991492679271650856420897263078917943267379280714685980283928060484604185073046652303566867419628274552167950365484039715140742820220013379353970516382290099960158585418367207215671998833806411156955369176120532883587728051125908307157566170448726170166427211958480357030627866679214007347592189928471700837941264312712496538163278372743218530479291113395246340590468732341014666354242615704381662982982615227375408628884271060256241000361735530003777487562858843919851037523766011618282096781222301717670885258282680464246598306354247031633805595431290712840638100896104029123383626523368576841238345853302145254120097898888327786398590039389548904822321865120359966581840649935874536110699489898671627965938849491429427687402608451905764492623136741169049169869225332656178015994114567567227743815816594350402993480654894060016413050902023473211079966583273887619699958918881691311861395845905873314632612408047718492805411290857883421359888888583696021832412905608061466794304163305520933626685244957265837191848767960480250015445783173177348861388199197846880096856362091492783443257873334392351545175828220946926733433650321286304087300678148997528481084288147238951314413770040768637046384869074176811061405952003465655429325439384360188129843780352876098502010849464143900842605672937973722137174178177742946466355886144511509813990187557027015943981759464623518617429774147810731863507075616970586718484199327003490399781449900104429900702586446695101115807325109285555190645314466822028597714491771419924453308352140073307618794154166146249775237070172079359907754508311906908288651358989415172341701275192038987877253822020505553375372580332844022246201481531659257662325996529481829332867779703684912492205231839375654006160905059744923917866271328788194177664156572287155499656555834525503391667707296534988225702160544849444671011837415449335058332635788508274923265526121771461002532755929132266710166916503854089626138342556269534893661289517215591651267937104645459595234612892436975426161880575385433522134400448701839039809236582041807550593056160038870928948468440233743866253920409866699303687138478929986099820035314583513040282073216051558325227022815222629791850882859930548532181863256580403996971369779395711189158909887537198457824744316086788623492027698467596498589920704659377583549080768308095416028587583677888247616979950669971004261617867937031817173670916059131460375117988949712201815839527757112766716832046467781647494777600966485197598481947542354995277440808272412302082173186952881272176354957401777132134376842850416472353277776931906842623025718359463188732455196068910134384218619782043612701150968472860999476687165263072097965330449060161785307750142222528917314538980230073960377549810090895703110136157072985540261631087679417435194952803733667773480953918683348595042156209114213828953360744897905806250104038731084635114720120726509118297395635085339805897417453428970636416793344055438452948211376372618888078046574263264327019078408217321713436108375379191055653048654595363542354877849579061085313074485962921158852778396465478784184235250712357988891111198494417163454886615284639896130658467427939992141144255282932606071291449512796553674015249508660819413666748894920236944949423700352904901991551126783638412891508874023496754005778637671034991243902506422591134335106637692703955110317445216192472210699529806777319120289027696905630932782715233338179604503249369379727293191733977541155948636603677203686255499533274480736148533179532508357275718365375654339201333467934587638856825508809691726228844875598972120493671341788996892196733097750669733712964304041213642413461272772536159132546693716862957503508248379025229951116727973087699549174415834495494338940214301533681156134235559614396423390246453073364276485767799464816779013321328928609626766232695024442651170781788938873722531585315978373547370917283876752367355847608080190930614276024150370293930803565120471094590363992881189046134676154703651525744871646700128101024420109602741519997711147354222058658903516711899487099003956788626813061945055191634560058612323143716941422442688568719647964011595549551487454941800202287506824988416647220752648603201236773105865098791818298706561600149646528885365040261049717515763981336941945245142145396364344833480841579652316641733654032367525179480604737028183774142457535770194122640048115607056686771896884324698674205066120068734780589269968804594967205435409950827471000829528040267231405792095149199596971289692521267823515299016512285032581794602539070612583599884552234602268300561909266643675126115010186427090341856770282590852092777073463914596862454090110196367795512820678726688411180059687179589094712831999614009706029229364679189070301329757588454224908738277093119010002690132966579287231226232328051277683569666550650619073266488612579187599675931367386003591423028016009747916429348568503366219635855295232438000676788981220657643984889655283882044515635542682053364921428278819009121318909040056255283468287854921400426275900981039338154105628420897559115477656321467662077297126668437727679708052713232337639327288792287603456464525541185924181807545548982606164239788734897102045360883064934808868697944995422931089744391062053806770456769233897824862112329087622144134917040360964492656480465261446793977428400401274936092400099528812710496956180394669695613020176687960129993361217067980278386988171388352994560939734863181819752053994960613836477078793729980745855856305554252937724969672943824193527257657435096267602555710006688232176844485364101431685450090062655673743916425346033130369029464690103147953670528921629543253558666877762334914104386422954760462783520275628180637417462688057265284890767614610040959362205509888957419431818789117361805299431139027699905151055977043929412130039765644162469885267745240135910287379634903884787376043007786204585763002535421458204182490647454862382931204982389981570862132509452547957763043968501568781115516430500872789162721968187891139580899834904513171796157359132414512228086953563026757100352144426860418519868205067830057293004005672764103479479089985583316865382407200370314378653356203622307510072977460670730187381247275204084937672750240969688188103295258942092794060131414772798749824603609312336468914750375331836847386316001130410331466304056116622379428271689940756905980289630027058887262287701271236874974285919314954897595878150137430225756227592523086129440440194470146571353514813899571384197470530849926622269857996268743101687068212970493261397667075218751791512493980968227517065932203376508719158015551310023587402928972901011048752706096947462928208214726115695193977531364083409063399019227947366640286327809130090289450889960846265562572526243166408908039115220017463238613787827976793572802788512748795418469904932783311635035322750979251003757514988718766878366398571759081403281468426259355132527252333413413838182777175272446489197965190034028955680174139063347743054377145609303706020111014237241904444612248924285259832325657203407563121168573854419791878627054848858732579746120699243414765007222165807825759645141007996477903157940017751882217175465294322177015664425498004877575108256994018025920516588250173310326666468484281499664537828982450767520786493259252469244864028675922084838475756461838359533398502379723289683470028349459676856363688463553815126613175924504408085561250052913154045456962049945598509025526351438891623514037210743825345435646126909228707738216639570675859155441804099464256176689163035720382044537984198594967057233989290265753704724292269791811443044716955967513799446790546315325883892170289039205552284522133143778931274036792998797170781793724481776156728673893711221058835749530918910071419356391198641156853304136199861626148663051255624827670624407144209558979097376209606790527437891155812244690294699837145117955602216185876037026724282748037401203104526851648397629411923790558039003825615937648867945920135628010700624707745217426020764503263962075839647888745397608161486389331911505630469710478052621688090477904994726004947588859992518036457884629182852597493036587003935496610893565298213491574443696401636552385008612829898538265558100025536126695904951109140169089263932271689302729472519977586538347752446890337282929075594908692339860970423572470057556955673715593489481378258415199274591097413353198646514102716973424337343151221845712548418299266200841786501770945355474147257934515001167980818441792980053271828612622037498091740535282424105673048699758709823854327268963505024406267587814863215034079014707143310781854028883534402573759362824392005835910064468010099097282462695172407282288345155797190343235031482524585189848190211859084645652920999549001670106549191564737718004815625799508452623406182669873544493275428701528762585265703720689812493346976635472797327389558869605353701130131384663285382472085834083416080740905494973521592141963845033058301937997760623655775213980563962488860243322939435229262448030043112981267734825042883134987126543350667425673912102617185014297607440788049130874092552911463728990835426363097071756888587492333494811005260263065437868474756730040050656173795757857409020159924144102122262767223697851149015939774996404913850073794436769151223058313270309031451262151288817043087585687817308635477594967996525631565170405012771689536677415425670380770813974064750003196500281243333161688844768570225402103845813764684510323389363548302719384564622096644544327139703843191858040617705535320771789812998853950183398818690212782584240763471713642724470877552335934686455961300357377819997153493180987336369705760189583907561309301693198078267101561949273911986062048947128399171280241346068014511871821566208317517772098631153676582077946098959410542347609198835493121439561218640784685171596185299686677336260255886464721801019233957920312298893637159636537886311486681796985487255365389383150912778891309683066786773069906785399051814384038588566105501334058170709328709047868667477687489121722483147216996317185492561548563652484868948495890431925168384143068434525447790388329417476306704051950509732378916673129045869111506995439169584845771720228301523167074113826842261577274125020430128563727715996948865087856607990198465763078628579699103824685799273303750372872721001995882381959008482861624201946119361952289971763667510208508311534229514978038957832341844594039674819753606154674961275145775129985199066014452212290448309026337611231100294702244671230417523934157208868101045407295802194350744595668654579807643417893098240156350134993100069017745972411509443741050019861812021117991055156882783459004502230591171547272682630592949647261770089666423778989323974415717109024144246322177281593409311413046982368649559178643645475242858440634425278160708113219069920362897122547611839259462395220191503346887169232654619622998423666125355222815961016211563388611148868334218093939006719196196396241220898027180488133927507611611506427875263511660053444761614514241623763530750929130770262714378751349936200082935733598937708198833982134680248179760391665954952805864930350595605695087433766445562163178276290529800313594293852206758607417262167558304788700955424611718423541184474442699556129520491246184486890224471856138519254768392411134103162632558764458756565585164673845890607479045376712069009546459314813821624643407334139814606951932462272906253771673400221826724942896710316533121904299040135771942103932788467455322144707593017000275102747803271990481963866033989753775086544447913513109954751773780823979365621547918856027824991234780619594807709141042029687821743220486201613958125117834178554141695776913546534273865192172020479867798957127116610922124716223412730628283881772504059505217695071477811706691340696148355127388458147996938382300680333596553230053594252406404350579509465178433703283741130404844364437816963449417835188330107098406438618938364659119889476564149351630481349976865647897979485268997222937026325185562837764419186963109639456113669711137835617828088698888725475092820272636436794153396118307391978588496797054669138855457832561424112371161896228010507259775050757262809204579274548298296118717784786327411130350500342799469637277043588668543127639631607665525949116839053321406765796943543397429948813085205666907394091535179819438452071766201769231968055899132907913151208731899775661663994057415794067494901668271374938662748155633774961689373234425016952842406371948743436343307278632280089234088678311183278003243659012257747182036678520592633959890049772185720700708621952204003606009714493820597473212996455856887763535572919123862572519830405600831503063333719243615739584318785892904986651413481930848806210325515778942620335292980139800313770961346710110413810305914731300350010547497093556751627783482540274630688971238917513459932763060332702912538624878220172148013230511134726311545287187970691559165196743247365178567268352322049190089083871989824677448641762696903322869064594628546057941290045791992934942052418688566974873733415165371436312413951509522052501085573607891140515728242376429690252002618516559205399017801508033594093121003114256351073502338763727807135896145155986865228598935888864940371686990393844357032752608800544085559881074204588754107788794312499997019033082445447887684569657779051467725143750538600392575856895016649306129333058540625475777712869475052873077647833645585039560788512268757316519090831198228380310356302251824000130847507937785755200307419058136161422923544213609910651675684117038814532540911561187502589799665814778781538736861343518895811194309095073756513937544029395568588072573049590843204411364157284129191637892209000394900326657451653851886472600722597458894037242306868833081952201345798940317537461341987686331104309789958554406058735576821895798017378550130538862671412056236276828716127879718391373278394179835778231926453992492491309823023547048849149405731296064109423590110000205846665230078392415436146494684149634326955283002252069339887967507074313919294643578672481378754705862714980116585844605245779785712085708934783178423661778396174435775173079841733981604096625630788212993812789240705379892457308473932292000667461484611210500896682432742441629686839542218339069331921896350376516488524881526003010675602082973096686347408013832348952840790076791651359567906080593406570491961219637806478226824039812610044542332989577983162558585851469619979238660351786284747369440690045056872586783519157619044774562352870567583303466943959415302717509758413418785351894600565075448735522586769668598686407543891698748068844325537828827538373434938069477868174446388238449170474820552687955185008729742608439431468669468362558426541546086320187728123194078507115352036206679564251346868219777907571728547174714717015679167887357277612818017620629712648254346178852964892691901510084671297558517439722187616834175636830350779675207292460488607913437832872813458594942469830933903756461763799057193441321282631443280506128038766948551831196497816765781519476557026968961144159542130687067906348360368994182432805224295647326743759411471931440076670883686751000641995610524624905058893807570628516254625545503995751042036590419428076074656719627546554428238208026821564810237179429623448118067811956423090536299761151229645728665472481794374367632126895103964193198238271189661913629593026934826075749884119367884003924360131084393892215153970631961696956909269243168748628238655701717461546740952403625748343502366879850634281866721969899971651508768819416283861294468530625384364939563721468177813431598136137386055610138245276412905737201056114828095260672837614172101859624451343747677389154531885169252683613574223576641524445041222173710649293314996598454285525822135541576287706120469269654956447983393436142727321244181029627132417869382747854992142011298731088794484405724947065105373828778165990793645039612619415184275857027961465495674775604637514608705517065620043504496446188696368949022207421714783794096406532254015713991007590444595066048848130742606759164585809634639932223241304973736814214388696674533081289422016688397387626258732364385334242860141538757544522121468974851805361067703388269253590591594644308266135013022788558680860020244110953866544106477029786294668874540373070513938276034802130055079590556346972326480365069134870983543475197399962593484951119628462987101592982932634456682204130054143000346263132011642040912321309683601640384300056320544819378532056206984072118751010195810856173232949362645296271259840050060077137838245369534715632261634388440568787432103157785833844816587868603142665163838183729818541371551536438500897062886479002336623199096023214550303802984610022505506738369221615853309162245214402833772223817100128934948394466044094352113097423633350781787415241089134942303276444850878520014491740512284832248633235045420358103542084659906999120930236849924309820958357005859703450042931661023377556963488408216779964799792110094758524776859128415099124809769914757344766321874213330189737241058699186773672220053314550262033368414413731078250360577227678370676114845084934333330637455413030806231678376514864239968314855060819734376554838412912189693370699932052720994418420064018592089542856559376522236318021804150554188444305668534658793324621701390763852704354845675460763595254718676739188534368572510248356954726177635790650199054824328929719324950931106163185906977374964466220766645909784768115182037236405118067969314648471910143443333112717384567282611905525984805813770271504984038953773842814292689210893436897678328066030816349051624738921950252852824043398912499446548471246461483713281476590213341491041355589371124409031770341118585621472188510264914247683185474808975835563070857380909440133060417019486930258059330331715417267873373835540742100571977558466101032345777408184802760265763792469997594037930410843519310916229212705018662737873246403536611150893527445415864446996616762171183476480062533195821322236414020715947145884580135541466196533041927998333653471286376863173071257830154323977140823510373444509745330411799166765139131654492817329687628380461356637516845019237899541192242843753039383015036566983238833592908367460083620502722810344847208553812885953422756563348131614801531925849266687743384691086797737011067510992489643791995225797241047210952339319968628332532563523995725605528726493819925469197656372710786647207186425765870345803028948618431176529888941962058942606014862381255709683919621030375062625251553210989517185853965095499731344667243506283456518902134385677659127514716765028662300835926143898138113983587869561777529287098837753237459899543079135765999157555887306608450367709992242743455794864161684933043017978212102101667200927034192464648143103812932019905926811414435638919767947531440423092634855337563027669958886456502915393059891866617873038070242741472356092207402186635427719908692102303046096651976693949971053615966911458740708621543390380110869581643721610822673100747844531748648894219753244872386737214994370406434894803884609791507181003132708280146261455114435629526193118047995849893709824614025443279119328381460902089924867457979393339897148847327008696247128954075067799750700592447239656930055194005462040199053446516400627317802686119131713272081810151425058169648681147574464047348651975064111261618859730202679131685361403229025173964828485546334289770511548712726472014609298215702167871284270576000148893121754551226569863923398100968024195990200923118375090764357624782052629552471716691961362925744743624442025371902039103647910316435877003918936022371152236770827502725049440235018116692616869879151420029937446318971585466373449939374417440666235694357441300887316608254786952257704628807882775684921807710531769885748504563437564122052356078642123451782036049766194734943800516929200495855105568395598215161033655258153270361297800940408784258998332284743534366969824010732169233661344813250356943909866006641739526402321296209948743213719362437059689937981322942322524613755491200444559917351459437550531521034306522361955999096803922412658114107466499076019258506974065285023927597776307093320695371500719993150913663856289520543618727885489691022089488302066371019916834178153199629083554098721586016055189464699013363351703818457387369225774571378990497581982010945361667996386472756483095450939734272087370630351232669728704636321509563673630183222744708006992822593825050304295694719771299714979561183326682805454776626937551933908825340319764653217534862815493612359616159878391585544704592623188657608812254632020094408889834635434278779312165989328413008412361502392915525153690464646731456658212436043838744719515818157454447135572994730542680997557689666522532237203976616145139787304438849726819600678763826364535014343086465606361019101807131716203970783704552434796461950604423510273838325060116917674976012784413040762539144767652712406916348298060643343449307366528087873949888482096426510386130716028437883552735577433270517502784370624045073203622123449582752166072530058686808033011846810258640929373972641205935083703404471716563050479666800573904906533578610831579496658712353900451419908522800500628066901694203594053091916941940518648677397296073070930495829367913790600207571776314262516938285383003727643328929164632362420293041910162466531982031737000175060109596715382081701861917542441898949347831186137989177551929294663735779759378448537798226267116134100981750806833531800284153460916540078162379526676498120538704099607505647855208675179897402239724007428322561235733367289970580938585388718036294961710434612261056861737523604731343416912384237944442349688362534140588295734884895043802979677757544321520528411370369681799049170127528167261545423465188661136549867001365350236042799695576281632888056826347437322523439523686724789796638628521854426555358469091962440269881913473127666189332838027624037001471865532820301383337123685771834654461873342981717130260297749314212320366281676697169938544800519573732559468069968042278926878508838278403144994119360821904296186508330786952496362051249991006500552824063670535842773688441672472866648551918117585290642518945107131640102021182810079777368713228737325977618986674280287805291361909321154795228012625868039565237013021467415823474628244878494315365753532081761608137905202714009335719453218806678759025667760798815456138665959427547157849774282098020938711832515384795485741144050597376220927695547474045153020088162243780831362588275663800746038730340218860183253116756303808157232059920653424561681345329713354427181151007565193573341904900737568357240538872658289173514869115009587691593035181106613907586817074403148384150830496583600915636490733332187829181782355000044552382798081698933009508954268209596124717258186285766723876572073483360153361878155903863437138102877152635820872356068226055494523823294094332715900075608830034414241026783377890032103246046577178631555690165912990887051353429667541735647893806317281251501423082834043081575391707306422582440494842737542702889315877973865752349697713103296147911174569665559929583938431913425777067982880923410164018399589204974615733873563163447399816062200824090849080006167476495684951312202438020257047964059917682440031814763321539754870494698465427943489032590499985204683170611857672798231656035502833620508519634119564274830988771510336198957909589872504528800619881594434241449329593348706513898969373132889302904523258442273192512335012610395694421192995994676671109473184077267241574086318805033727390369476428517272381003115946714232832829104818073826618071343757532912922556765881777843948202293373602937909327463568322894765579563073323041025972866491688407729697454314233858437819550324997577261932978256549821306561671235615321233336628651857224272619905217308813562655764030745883556729373085118412645431704915444548932808262663004112365675272228899987502358610729018296191404235942109612456516494660814137526820632829547050243064574851827355731203905696131049617880620912168754204383944964870939980275163660925414771346660724844300901244020948430428112739119490777743999297835628127364451004958690096223701935248366157264611349597130014116183479659961044471473729250838586670109882170809624332144249595309866993873642024515796583615948188827567438940018963667794322180774571014662722504941468724548268912218897438087940826527306606629007696913637700547783048366288993432102260115166125263278078001498626951176517439630063258928991235383159923786391173711646710608071133055144311749550614065729225541673545792381822872184839774631901533382791464876478901344618463693495502626039825439526768562334496697236429968086666470288909553801620515690063654606654321646096318148692703054951974903403917203520006522818448894391140543614909500018259601026227599424629575211201080236473131613695536945586858793982036663487171841520903477290953672349780723560455561635435978066258136066914144064281820525247427614044400070612086015285782432699046596829800542050969313813411205534936547727895720068387507994269589992983360672038778256829053406973401852863213619355506555559830574818858091764803306850454912953506356134697924005280548233748608118487441788162009454778578129858955612501339952769758776454983983970191859731569309520054426294930541927993840631823180079775083498391723192595079292984811159546134523201232863975318031813172506302094608766336791283363569374259181303681399603997374305147672707116822648396658814842085563027757313015488435188190462265884046424005808090986731494521193460921062767584800790209305491227716559344320761965253089382319330034884645050617137872779697961360983229443594670003164688944974873217120526313353918067911392935820302686891875634692420746638168959033373192163066310362469823937517317918369858740741211632521468750072022112180335091881355486405440925258318014594650279602740781240695794219539610215538854228016454458859322888959836155333162626336473055325557753250128814269363103156092319597579256526829646133771070832068185623624950743008308444066074972110681589689084424184855781809543851347254504635161838343642493921934415598957031505899676940886208815350899628279755169394445434911354753987119460699681342019773741777514037843427836326682180489880805935386256865201443850327012043080215681526448651826634519157353191065208570797029902057144008714473877171147501952390364154783975856136077037027298446313546765164660690897184507862997432241328413700604582098463422717431919680129699809684976001753151779113058702885076149416822081528753086525523405310131653442659071229094600944461419057674398118504877393260044028272589538043176454418232886466686923682499641281149511907918998626911176124758073254681491545193139354165592509306547132145213036474900643920716068718880455089908799163704088023828319178735455599562043203294054859707376696009659713796991490640062037027578241463687224261203112329630905438719144625456090525001172839094462545765747435058109137542660536370685690439868002322490954798859460979974489030278217751289147433951518569054893080988650102995555194437145119029909829007457283857829397886678929718544807226693009379346693847620354949565269865582140982310994827988777900542236357736607408671561393511508051859920122116416457745754719579811335356651573660521264737638877137853422960924708050764586130414457925106983233370339933392619779584211662885139530889364414557380849645710529389393426329152938553104655202477499457522573438990456813139513727501142954193171214866482073590878857195074630657666930499489056663381830055193471911199567339394273229101614650033207270908914522454810221006876293635742652797872068981161347316940713765268884485887957741717445578234467359713814673809196420306586175242565393905857496764381115267454785774054313351004535656325160670881290208084415249552065403245993125139511692344627947863767845568350889225124998778644268102877796724507054610814326571854896433315250687214068163727812082681427169381584956106954550218082822745451446515903497202157617120312284571058326152585228492939031419893046279280269388535467133246721961634376753253107306772167631525996935858753278923513209777395470601205437531578375622197326861524426663511319653737093273288293718474373498402318128322495288503174693186496355479059416482839304918434404497300463505985784945357069895830593097920518448820296360278038240285640867037434330259994210349024913133509977537235379458696215582630471744119562888324448786051054561818182586008894933001622286897434715365315486304483197039530005316259084393177540976476782419810841122459712326251567973346871323920197157718940990989634969741430451010170253819227565114741331872229132160781670554613211356288357597257481298600342584892109096789695129470130893805782134791552872714167004154299517721444789672723612212573899736461139534637484612485485535767979470955792620225888980585923339553387626383700787890263607444984212735177343992288358692291676108625487545082451138967237598932191908950925624625007435521776072114146760469737377193180102972405751156096919004712556010257238393211607874529184933647532263576653091063369385874489327468247083791211942885233657886559847153113212598595681837318922469977276846995159353609355485256221283466094153815787305351908784664807360768126179066080171800253267825297001493999338101430214782222008556467235027665328306605330002184628107159556949125473305356188987652120644705495912130865726284014016322247794065366974489931384861453670721690095329502419871245665423650885018182533902053867380519059147369057307838672095589683521838030396243847562272635948568098583345228694084677676725045175828983198117166530380522607763509005040793282055425387277426369278334015395182326981118876233521731244895151013684569018767133037450228232598318737677988721818823637027061167845769742309701534798287578497451899945100664152291589391073073193612305830961672169143171160408680696813376562539732787099964408468175991201707632959966943293803449337455130762718987493911017881882002256447343484920815478217825956774951605061067977916007016781468088987604062186213256939231798171279091673854911824179589673127739885053433474276255679629958320283576577968933840507197352889591119559247610368407147811603094483887372313557275610150212485721929642157983984268783585261492052290750954934967633857065007135692772428215905232158973447233814919708370674738478167430848967837279347821777966500710999752842904102635725105768471893769034982270188021441728951537837404012926643213242998063837004740802179351166731127546882594482804572018552568876770998418602100029879191265912085117704864657163140043047307159082861144264323543491368290057768960733030121037081815914956450205424374873573043467894982643620815073377003734045410032290268041361178714350940001543564261410563770411508365997395962076879878265784487808509904906261071636295417645386049183320956697893565118988462563486151232454252753882792150340668852375803435187623088188031690157738184718557830929848882505007626637483183792687487686413347348301542635323210706192963365208485664583719253517422320549418021916547906183500287968937787805656997492527048681543800133848169824152254640740606630946452253593836424256480680304793914673754883274939581771380183771633068891505163008865074679852319253201695096353507034998278260911048413371649363309589383094176126253836654611406166335959981417147053449639668036901248616460075979725396905469100011118085321979455943595091539764276696929247267821454640257790951115596405955534714067071658543081952236240791030766196299864024037171053208103120336227489499154171073487046596337240300762667317536479089614641426764770193858152535234940358377965646296311404043071850944688704940659314451316449893452381258436306014138753562708567350194029867912937889657554839196207620206710141045903294219529903448552828299976021039210882222382375149340332407373636518793616564723954724870306217484249784728797559944329934034045972141134996417057617594397556828978510755867422108599573849488296225952475169244091007049118406199600587475374452221212373404740191698253736336063925320575232007723952221353029966398772658121518940582998533291006263486988725898995456109342670911389041943475389499460173895470473795606912454562772870635690060975857547475648853547565738244595696901472872566805667716785961177334700525381608726421012489603534921560076648258403862799660421249018298142272503202054633944892854981999121448101707885214055510652090262338919194367869348229059604417267118824404276148613272457578269367442828821157876989453046100003116452335938746769519626547465828130174673811856817461780756338571722197822572309556153432854247422315586929237317133691752712609296224613228568953865746166946073177164128770654979950575175861848030082555221971293168941601015670940237932189347141679457748784432076711002374656024546921265600436014091244097472808176033768381552504620076169563375182701057216415989493944485266079231491584934125471184033853874004087257860599114722438153931971345063556756047618161620540808206797277317927092746895296614856355066102606387869777520134574013006808993279205829845479517817709605468066901571350140112982761215498075376215937339070268564987354479278422649323407618999616036436213035782353439319021449224973973635897312710207215978099018361766551124613295467460247925599463461941710479608443735154620231316019457726818657762705645391045901146157092688031947038143865039296602975099401513244055390507710983011331416144793913329590770926902221865376624474733074435345032326008327071881127385460595219470401163997574959473938597763283168527032123373283386420170041207741747533763033484675719858172618623048457165550806446720310932691741644868812682696434915466466791969060642664064126592645688335815143197357641854503869554077476036119837135426356452791725637939965114808133723399992618116804030029751936044309383909233926231079567013885762640171965217114162689256735465104947031263237823788400510817866923532429738493822611813340386529697564668544432030239462608816726526961291415806961634095067829844103939400801499438221438020142480148789129791671416925087253439745544980949521012908963880591623572493380801084681966976760411264568590599678093931473446782709974504041050900663863647810382931566329820637161026097020684687273265812006289048646800076863009113163972899270518673531796307457480655687870558371617970577587417181309093083594360040255875374184167575766317999303366165497230721569156910597212939621484604483519411423470663742587750612116089427260580485708169783248016605650333559018026727532824015329851180516536716882966254941205983478676389496319594481539763289494645228126580140066058124137245963037619760221199834695339234999984500365261021699788881959923456430745725394612382653062894924112441183246333147989683166446563751152349101483647806410599099714195745201456853247234606229064644636066164304653894685071802875329306646468525769549562563590553961066719696734530979273903945186080475368987684959545319041686940652002831774874273493938325148282567735349085569724872211947417235698849728132918251220674997044419237206390216433740535315714048319857105481465905667461000673544310750904865694929924308624762331261018389477595424201731262777811038008118504919387966571658740542106019379716980603855896119850160856574206701219363177235714240643193878781976136735960307541992842074775068097766153591931214610123333308262398072443772064738028397193211842580339236884751575018940875222595488048606828688662731956353924644085680503776600453482593967255680949531766023848067719053861592143168086976761330348310543428413524195703249519430777114620837814989022422634619229498156192028284105005699542519548549019277068717119979561610062693955378620975735074471128238806491553120277104079777409717069204705380477605393187713950337952363323590333992507002574060269154768886259606612963899969498514726529911094471230917250053621128064192547006749246989253516997442889495585401572387204902677451525795199098175407068954685648472738615500776738810341753595809998855116804122834793804931959605804635928521765519476495497122366663034592407110798780726262798340049274087389464251225956629849250973435341734166416289278913578326920763126386063764111157530738245716328887466323838183040240986790197321732769509203288910120224257872407545277908958938898104837887964384631403825867824793990422258380515954497127182795157719928010418969353296002809589004642686100337120256388155495905577383466467906508289274821750140831240242018692817297701199754034138053750921659141418226650088242655503995360586989166913267097306775181889791984399062099874688471520334688029596027892303117967217632071312816876363627433777643948414181463861108537012128577064660347697650969459710375340437633447300152170536349299760930686521033253713929165632781268042023087036234076594222990371314855720547491282956971598413709998522142874191313424278331728267284681948865397261174365455686800033811619044529642058904470982587844363473254253849664677843126046490843174357302223028913924196936682104923389184855686014849423866046446234409146788894951093966519175389237772306017185286900091452507554281720148355529137696071971671268606832081723689966152204615016877923130932774360994118172243742474155000127448240915869103268631617939402085108311777687685723356551368339983118174380717849928636297471001523078606254383190990564314403881832855556017364351961379890444288279970273938148240168259656647168688062977423588026823828553318317678438329544681765521818561105753469957894713362750483351294928855470099556633257600921835129609036319973798124705669201611181127839071675814380243417075774101578979960191342491437442224779753257357225724714443136791558657542888947546690092406827445690583614798338244775474772575103111843922692608484625934252845909248763871993030949400037920596920247764438326787479125685532601641261272633642738950007398026524812908359791101131362037216610270064958931910255308998837329232500145901300716390618662307083586218404870730381969152053716077220222303033762372638542407472428875972140182776102641083116978852948882392554092455020628575578949478025613819437456361356327689384008225235618216506810353709731292658438951144028415463783458704094206738697681696967450343230365904376123271239581686630780337708060493383623170200359586042877482755809785155327903427442297403571609489882901484305899199425625541975398432615233053307675914806718886239598630985107150601201887913384250823423054579799489862542215468669694733072203511121808652705288540244546400432770062046305864929806027970154387538871091390931955904689406718274414215204907635023856359492946944615737580789122363446988971947627018804391972263730142172906069948845859558573379073474337119691573376858026076000758099260216935744375883546046734646981516489558367982146992753360769326283124490691902801047217852054108360805535824873611730805499597580475163413591032360638009513565195418049675849006391477506237873312387187713548397508029427167983322925729237041579950696271750483457344903399324580793074812093853779134396715364176213906391155893493871193675038640241907877744160541296577712199589681563572089220743661730492982410592452550978815803812678792797339741202080286120870820779306578965953048316119896248776229259175734540735939957590338293037103969595273517546866790895009384602153653175872319805628255928783574659897909482705876851037562720241147376123344179900923875245671470958597027691501035983913101994301809019820882784436872952630507569902229126094704026921225705542624765374379971714489649601386807764222705760922811786371748961012836600980240422614034882782490183998759018030490306539322974380203876455497049345893584030300805843294572305956353289290883904785093257915619025384792484441163376150317179682023783057362497979022942566294344457979739111299882889261229723441218816703667344934179650667237359500210085276312173818082182698651248841683877821261269633474206867188949656216099634237133021342189258600803519742947593062066575091454186962817742792156081448976099726347590274900434307713447250743373156653792373434833812132318587099703531646381273972063251620589816421632235108785760415698852424548454799003887650101654587418527999245741280469224707909393452475622811118935967123485585962538054828817786258799934400368414356090294980663473438383575044076133869955587542447914321739044447933112209190246115459461820139422382454121316777249335942603606695031177886532085812029352207290796189729097262932206002237141671177688612945790100334397660674469639307412531085647710323798237496400178729270072356538733134069475808595403722689379399724514310726656374314153373302813532144074303095333423261321949848431902198561444232842414462109989798499082056252425315709387792961390841000314881369175869289049096819281708817857889078940795429677023683283381174070651619158399538189947680578583303926433759005587305248355418679230741361777300553862322065749451276225989783940017966737748574579020095820078710409815121779950853117699117365500609616538002460575929875812461942596206819949472352357443139620792571777482988415167336872927390965103255109482837458387590749658428258476276272528373036651272484568094888517759821602224313334378788066212856859261889607219906608324164678176040329441180124663555104059948610803118666825756450300920105485385553460052691077720315769708890612438789615312867473362451806336177769897027230855483112627173224095404529314839698478054118685050095118981641097293999782270347138606754028297321990805457998251892016884265949417626713885775643253159377934142430512059693682331798114904646076735436006417956946302755520221137645155547783225658214545785360548091649912645888710817574048092762604161028548268222514372591181694435925620813632148699975034370471519452835876011614094945304865789824080795275254463716958981476770101564009214881219564916902695608283546339223047280296253162434593372955505842367051478311702030902361652299156834405216180299146101819404032678256444337778509608651275738543343866764944456648461481981306480171132448055429374366824615425862522191448953785397013429536593892411079005554558735663060624194890488739629785498803932266593191421915574142208240450142326308210886653174528812807867068162403570068955189620974388111928442020899359049300164351288474890041520724125430957854699389748990795990263197468715088549925578009582464908041676179678343849225204894270734882605870743185887313819954551081187884940691425901531909018511514207510649945133204197358537397872764577257595920815606296978745054015257050763011435581312281601034911789605070751698790028256984915069322415501692302551782228707517337315004232080311178486756703771292992821926396024130761673204601199327282745596890660615295213353517277851644224074818463117830035310085871280761945558668421714323917305328986140638382265459452886497478865865744780717108991391846137646973812015096174364459475273281806819951381844445206330586764704238111644694552180756952616152046340135444134870106632104558698386263832668976301105054314263251821446140909196812675157594389093660661020900560263923696173891705783821652471572492172673222660583224632404893772765622556103717288333148392754038231458515611117002517552019225908273481503060114743595406635728730988373389979089868720187522627925303658634024268849504734571801761866534971463106305361148112339066511676603541156121439714419654744545106273048943283868138119911810687579780056116475496687254544923211135257169703029195440753221635377424683160410036089531431164731867856093160167900392347283907025403007060438883049176611351936624570985304071975623957843930835836206920175224573648358600863617619450893579213179984862378345054868041522486137489331081200150495494717708013558860020562841924278367601626664184698038767653544706488762262465743420772038233967658245373141745894793221670127355139243420720200594436762901541900650412439862937629441198949600663469802325380724156961845348581221079365307257604727018126377393239377353721548380595247348701034306179544873931456652997994110387511816958566128856488215801986263564334998958715084253866878393054816337923924909527522326438999361423833424596953524406429089676335045535172581453801333976665095390792999837139336896975218447412329920177050703339167809312630172894516021904633407346126298109977136572246666279915496702937329610852898989513052157962652469201080672632598272461509909615046667215711836145021129986966859940772260199654197852079771181381520774157265584374694414340092748477939531541997205088165415152173502951545951971784799305408587628158363301329859449643372564562158921147583835583991529509516846758306183987422248235820518630293339016397562579195888655491166408923238538299927166190759260266011984401941637700139084275328472305665359279834282482018375289126512189601114971777463402624760255462809629453091618990693466102130656818601723448416495129467631797940983864920356183129513121669721201341387576097996280923999305398310224842621635151201565498438458148792835114750871516555736179510043143563699486233367507870831119832224904926887504696925244625898903198486302079205388084664602906718641351331015449556599519338397394261551363301044562653264045353700214963703113885797723090621486024403749834949877224882987816553861300629877556838447208754169215176136418360751555550519549083111700108744161955981221278411316221126777235079249487642754956026200389038550451786483330840035095640065149381825684313367947932914352816332049826773270843224522829045718965843816961356671357137719087081837524534835086878582541093497316600620724638256357775691259104793578273569540327263554792443017080232272218794210320818735653030741814217073940733209284810197951626222870381014433303210403669148594541930090772210442166502395939749304670574811798541366592767108958080129006072259199680894693218429584084789111096529590518188952545359371616075180027906062688555262946587192286387538061781663516365863491712517705554092059213278696401790262719021298301998467102007693308583417105017445631532153748073289439521837660188565666531413398280854199639097197880244714804337215088887914519408813458388882388481420640192024485605246246706491164339490622853766720965182515035863096505066378897344740304679486632938473079164266690509121338057528170057351444322131549862803457787965797720814953457452026446154134958076307344559933020079534813726910181178677745609435234573338397286475214140208274815180991050584705782276115033985734900415696237179392463003112655615496751415155097275584790003587990905110903791679062165432639205276378323112036622928359694635051309810028489444987201372931130289710602576011565943434006884440019839770022277732810970993015367131152451963510115944036603513528931093126349001667798722097238269714643318895433431679230773066551355789487292829065174726695066536766041510732644787826531922111650783137468807586718029088691104628624010059169660954669499440265099831614000735917844661297566312895816361731122630531153439542522566057595658555604045636435714112877002690597398578246491998571378260281736038187607417563322473268516132913185072697968948433362086028938955222601630947665564819305812130236300298369631436894979681865757302171171915536471836269801609856288228172183627411455107684981210388297124763530691761796111399384074655175391243466757951058097542332059886335756514059968076118089310461530980639533841629111682085572391036765856001190519362979668635691150852363452066511408874918973604581446010273386716097191176203341486585601081517554343259706789756817587494307764101181220914715806143043199721104676003511753205818547410557601209114869475692154443457372401420992035863463930782301021606442373731077676433773420556103836313811927365668109521017054695707907080571649067743767248430041073545779804318498340765007313107733041986789973437152086395777139146304888064808424768399633222516529054443721146796127737687522031243406975126811919022356162555126545923545317357514066928377235598252731807037220471076427245808607651573262314539768530969750731694948576335647824414808946904918869723403692378830466881662666006056023361851371481353356703853732377711334762753786304387105624026156154307537341124335768279726581491905370646582931751762834162312629771101742850063512154884949674856209138991379584062267162672927226362641089262210399786284956757401555921782308404043642130224118140110047570692670354876713312752231078463301354512470137683797590775484768285066592755345910290635185426987185197541118291571132939104171102637563710258026775995753516323597278917527547754503279617880756532574656358024084608465239461753225974037955316429024120990242766555080602272649026345617247344827907427180422476965054002625536683973787676448660530786875155934432400690728252482603647137608253205078606568285156446967756521140668429590744155493687972370576762761630748017913875017972265048022656035519704038387537350586604550714147901974137698922354806448874711233256123383810328866418897258781179126825140270728624965334890103721861645956210716655211929665339902713815201208075669126748780126493294521222700271842740933213690461373030749809682289122450229899625182161273210798976607250639985131433598580044623590671741209885538223412401315743527940390755914211042442557517030785636477051421895631826829055538271319807730951640148593737771899407192767173511806237277701838500697595233427574163103349868383223825498857748992752729400011932845351692264212499947141682629742605435127830533985724444706147705195337542581428908319763709991705126190243244287278993783414850907233469545999439475792616305316725808719788341999894880541399022160811289548309250587421298242436609444776040725656353133034885636924604716211227827878557860922078050635293854786305061918917220196382326819652858174021686877913964552068522740513042127061367038099758301333364754904286633644895577930047622160118540782898589787662944450917814839849752258297844397988641666961987358832032012041439237542285769637823848008011509865534794839141092448687509057425020092813883651114049492818879453011510553108510594810522993688536462022674488677470805296512307246360410484902177593781588265077047058186406026573632631486843717101552902939647168956903786364297546528768101866644256693951523487605597683014927236456433232957663599133359424059383781568415387315528374632375462304468585892293359255647504095718519475742923888677778779012691888715102742339387095675374405211356572171926056940217079891937634678233628137032032981679279755211306653003969830390529116037053106947686450933401169854204739728997213470544305969055819346745736146490170022007019415297559794467006520052334553068107014470168238738203584397742594636374234276360506216562779599505249511617880948613249497287137987062168813686034914792699621397591330598300743560632936745092780053083566075223039071458303256565048631987002113656908802447866650307884792491093753420750926012640456131865342715029811235784135112709331359938217749377715161037303700301092038026736349539580500212954217395268624083822164835005563822656809593551152420261667435555256422995424391150261970983492760180007211284056369210253727732627467723797566151314475244672626619983943026963337777801291596393966696491092631596072219375703407159263392110271663478788684310338466999028579359517832208968265512774324149275223607642256942429115678799039651271936255071327883516789246617711106189004174839892709345285121922744103203844955610482754974760228940900017659373847316344823507911470233003832888806737183887160603709055027340982273311612626959501242082364706369284124762846530539756526114616176445959797353073036707560860868567779877139199581310949891498582053806172625497387924576499495108640134648791408665937305201970684926026126208909099204940354861132438623642591627440163813827539931752184879318183582716604480184408546275515461956483410040483110698792101831609852889676774048305212639303980692644513402215310139048910135279497036823091169281453412055565477065221985784000392626788271507764959728409340488675410827873724966688364640946802057439621492504911122281278772906722807013672165048522394248865725537086509915775111176770907025704249113705248311123438930393157342725431588396126941959760362323401583422250831092899715703628040251257773017531701778114884948688262194947636544101699137999319414968585240024672858613286241245089586193434043053891743873457762015654834998449626793202717321799383837749644405453917070102030798466528137295434112454072713014821114885399171056977475053061158234395958832790362104632968848180388273124002872641245732583130600074935643982074649408944557145479403545757579698604834444500058848091403452361834897190817176317116079546288124184440095586716147981372388211764380759190579402248384386329600532731295940082945348876521811398132805072098224904612043683077976845123987462135250087448320758958395057915104688300728167554364330061106223409271696322159354560803719863542191885170564405421720732679633519174574969492870756130314158592477401773883817798069118511382618313400965872160366203454074841642163132032324713486490152365320077355957241659137536928187010174409695977234806007751383727862654230821889105353669797814428832369230111970383995134987490866941681754357904371973562922491347427508406830173858449752182753166142418474368713460027259248103278078190840061277768318041441665038441486596524078332612562436698848089607414331305999533227952193536994449975256053567388514948218625800755131009974265445270801155711265698113068195329924335033131550548551818950770321878647895165445792313583468333568960724473802078168980109501501371130987150390522006220907320949500684584620771155695204193884865389758479309168639592445910198221055091550032005638651006939694566581886126770743262844946262482242721318133074844884852101805782804036368173351054122428700762354397782644175153500625467306422871598168585302175566258895138643629123071805522815876348276291619602651593613747285158242876724605792289789184811665123052756586545194331030071932526619129423350825805001245977778446854618868157926686438995736552897644439285797347565756981037152332035166877887199938332786357032043534543487081537576362641747952927492285084655138150749383962653166899737201424378859809710242595068425423404662891886739124703928913494371072626484266150101146493642662544890807341450344993697956816534840445690015159524946039436098521565806059119713658818824947578641556499023329630743149270208278508305381480478982400569333048904939229607140765229237435600463802450257375585072486418211489593881270412958240722150551407669655251934446881293113122954579440373682879222416856781574539156290357963651943298150123384149700650708286428339695407102199932668421767932816473580528901128169619963210859851765757596920506826081161176247914873994812711131655936197794783910966334506852643875927278987612703588962386258540784758139279644746986289286439734429114111646105742416735970152063537256676847576288015105289351411410701852908787597120474644060141618095136758192312516449826093933839573665427370772352858453205085275990315406714837757028833645621813836608806238594534740295083226265738171287352461710845906454338267210434694328930320967269259536556571622047459157167750272494862567787366094740352387436911072750659440059809990924190253660752281907759166090948813044807532198680620916008711307506866938973836594878609215005289454620843978140768300652134295144197288609298877300963216085546372867647080643435525560277140123506994593451572586211907546215467996270802416131420509021637025128361628238147030371374516579401205815007102057272295330647658081993609690589328036262869088033121372280725207202216916050761837813011470757787102089170452703317991058063681822709852081752718300872424467978845549896610965293474443463751545206438405229112310688532555994734132861518093665877529931726328180465548532855590569742375581139321445119605750186596457270876743708109775786680244726959003292794900482181761525046631704851680620135358866482539358624754115933375343813561580075896190263697652965673860199848045485607060859067825380615021961565777947106212836104098076334739284638041829964467226263381130744390480547414721358273502176841040520959527592257600031756435494059263415901337590957587494280281574919145862028447080855332133830408831949374761994667181611335474045205433790217308042170386384455877161952044620968348398948582793268215256929714680444449374705564307392530879913363487876196381546130905789656378438710644879070390883998694431713071414824540764820454622198541937100404190567521093039921003525994452425430785614887490826923971935739934157544320461908203250271436400102321646218300004721434990441438335328904037216725922535563530162778055470550586642501071555412130203539092508766727723483489922208521197598160054083654915665975377119881532475011095393216771000750427990028865981665659884280578543719052867325213415840937565328564943062493636384317838207268308474298437801538132501820557264466702324131828027275561845529359159668644735308854187563953178755763398187071124058744862666787798862498471252274498208826295583346838820482593589316235351396373210977024212568819828422940903390120025436933740688949927760237974019401916190447599234244234200873518182228229820016023322563637181518286884204763764927331073906199287459079086481036622359653879910218071639251397999197800196055638143615303994921135784674196987908818218709470707181917019748346037787332138229110117883700700057281480941051269472181705147388622135664275788397020333184598886485301053109134024534611451387266970174482602563533866412979388526416511350262709634037486884830692826873042589142972433472287458242162633624029790264694108928145092628219161623086126132338393329760465080837479778775230962658839027920476514253618586941699317769386525871372968901754127929487183910582682498656146530954620301961112023138290374359112947776519556515133369897576422426721910171251409689680904507992152515831657899929307797710165861478660456984175104199879123700193397367294520906944144570115235376504041725396500305276627316904805865711391561910554096516642235103795568300989341410966644676038337605589077613341068144170785278334722216781889673828229950742391828055591699730131378732078565712710665519705602257817486586736309416510171949345588360883753957293560938103530433066895126093822692153575009438651952489446309393909603231620746822217497804264277976382051850218566837986180679259121730843562340346012673476677381597214134987115882921081159916470664427870424388467878372880715118253409458652197500035228625392895161572368331350206900914533570783838888835955983892222066866108475417639393051394028902936184770850378481123563501650946316273618422003473183138192578639544064367366222547895836102930689547637553886560499033514318721787748341982943250112435741976924362026611653934636656736169083335915190679680315476967797836112674702770323075040691610167519514669462102688787368573220286142199334883954671393823081104097848772294931562252430440615869851966031230281806315386660145469518296561444750000616127907326670441988574053100396356697958786717107677441200121236552020790390601912417109996195982005711256147119964566881897401816764165148498987554703500118888152391672253622876825518667085382319437081122653491111040945357546238824304026153310698910197944650411464209741238897957818485738942800470944728187207140505609587457704494080741826541199714159017797967719674014316293381199115296902366586983587181516179742999140841925590127538498712827282674477998193764168051203429940871575916859882541078003074010314143774493788129501607694823808787664693845832534039934369830445452818163947054246572308994106575577923465769768804821350600260517599424755919759194061767588244704992205420548851142659309634048625967884679015271606035405402146425643409067287767542639107058196972485692177172596679499032877268931355537677502220817627409299544661063462168100632081477248965665125393731201541470850234649355105036558407592312598375702289994455961424858191743703366337161754596842464262350871240134299277734685852293382954956796891494516666405676760380431046087983820100770121344355657055618616012941671270327254514078493878728469726713420625038503525554752658804597549673797132174715513412985718952941227979955803548060996696043285227745958551138765748872904686169052591519443864402602465117809905495116234124453799482321652952402390686606114853272332839039259433758094792160927534781945388861500436799242403568304334750005064207812168375550230345735764716819178227607483223068506809455070835830821605153811337946601922544058179241115631504747763226171419662894810579209142849927732422670259051013181208694336309930010335768772881043502609472516732770482699067708140235165612715603954105029647718895811911654376543524618292508498499619060378078345448681874824419905702045561481817991222747846179230805865796165407487918382303100464180492652621386875153140380220832292911923671593173006593431295837891251809270895580057980234693165561498792656501519670869545549290394133403169507610964293282838523991248486003639678244511169602911503956124424616540037634772983555938399178270372034168516492275712693049526732563572857199488503794110490219594029469865046461620194960402800348232871292144582780254298010598835832790240209283645398632191988616019380379460381747753708655532643861381064355674384013771797178819421228246385439831506162236690588369479034612311565332180440353563750138057813735216097330074319109210129563339515444120562727589107364016828454989707794514252464162110746164312106851906802883901795784285236310746958854778110634329081732227196577755881742900355910975645868740322700577082393040456401470024863675229111281617338819671444842166582221732965644425489004538833565276955920203709519782991899433971879033253339777869794790554409415122498839463532724330854623051120053210979650775495380887460018942680606076965622446947064419134957555283070006848606177823664733219133786344368120073359369538193326660661499205513468787230678832495805807294302781715647886652916356543318683230110352392199929249576845754410906314357419441946081239486210257421548032473407351664946233269788593301306601696407918313406360690963449514281671969577866582642137494136738340718546824916364077362624085949840528991987830727378601988404521061844266944663428757896101398100599734909990430893581714214740118057606203908162080116198208577347019459651760061883967824191627754618675758871454225060359766270629081990318738238275727880579564270383515196388856536098213376809456663921696564596526823362922567032128522293567825147557475065627405580511359510055304924971766506961502148252081662031145241062641119555245857067179281777127405365432502860266365978834275140332506828963858588589599937958481662504231154274345603883492182654084616082888913570462392526110033186510503295255613245236999810882350165036189278074917248777076061187895185531407384533420205333703812490601569977130474883518384328873828455375230344599761723163412371532533445520133797474446369664230236845139190064625351724039539414327278301844069344801583772978598452417228244380878814095551430778575791378650433169144845621536131868554750505204314716805373247162991194306675307403649052147802447350654654684056954012900738028034608957750627553428157205535493217523367200763115162069417448961534568602383058773055389009254926478934485800838595143790958024678199100032870537167457451160701240568966839267722942551451189964965994259728778183066285900113836587399080423240905710746764946128114765848175371095996231059031507862785531268918773449689722628207933117277984206759705774591311743155736571133096091305658923944758381141040042405102809976388910058046725310552507319711036035526896431682698559652652517173040473132394134241629304950020588948880437912378347035247734551999700803606263882707659263080402198299218930680461882601130582558398121907105711778283621089040628515182141619458767418808541591250575220162120232160590925730074985976557547468258312969499817309946514908353282023372503762992903110395412406752025625498487776644252965772469553178996056522486500998917169063761792722775042957221069267844373302611519917951711233601333862588866645876155978594892655653962469854039809413286635863056698215496907343867782468964309088473727962370623354994595462716781447257708659589501188135499943293557840903304654148369698301319709180350393177978995374594672545403048890867969489156826382885932391658647233912205080264075609519672381867762397600059656540405960630946186603427711431502960745491959429241644058095083559035220888351153889587319400672264188112210838036041448651749301378676492393322871611826705474133826140491927459612803075364517795177808836021711846805625468038123395220986503594544163939808208815540147697186073741690277055774586759916903999552734030691846110452966025640811990364726899106488339341744947836746682984814509180976162485077221254533145534696917834249911713547179904584390508673749056102979840264962540549083214399429740170291471486366738421708087513827354459319594039097829589671756890204601791143925266195078355429354846239323124002244590753072664909424715906436926027127217597605295500655303296392055963298011579213263137154424260046137832933100251171199011100384801459393743173572530326494888713496919155152277004632373219501115767014951287216552247374479392882789289706137620608846784203733241112560435467207852399499839937912736005421429681962292508234193254656372695254177596878793239387496080060650406734399175721519386824486038529791412500498875970790799784976657480990478400437186530959803127385990512967722902239069570002530760396373862177919976167783593953603875781376964855138525186815173305284249744466313089904783136010014102087736629226843347783114518067097644205930093615465508821704343468552534602437782045833963211759488878936285019850380363544757403411355924068011189688441570956751279117325206459496464033318595082953408679681553523227962373408214181826898368090346895659267514707279906454709836652982209131286366588022545080888164280932606245455999447973169924494610316030588938472787178513282212189829084859895932856154567922598083997743976508245783181129968045789472627724182800466574535479618881223995655206917052840984881429936088620656709503163607813160812171336800726292404267151420536238444154574842465720074682438280208818009695256082867074758391552161667001528933191856829613145556915745866031632878563842049058592239902676318091659208210020891020875274066749570454298864890671295761976839779339852727603742425541412235577013848642422457601328406124909107945782954601341941823599076871016436104717853580292516104068404544388792746487945070126760461832581729122628489664444976280510277873768495639780386986778956882905048174088629270237803234327732976788778149444196393641934416695253941996105438175514825826744018204055175291549427328734286989761690804624816849338230185941929953910114655066109529394619080478575856776573885916337654527857650723216426763075060195357065693736146996161788515374120186789108277408708828064500568264089493691719079066319028453504674686166479360739148412015298050387381421451214687663643947834906199226199424247477866728234123080756941256900057557559789433927907731244898224460958518301847302828272536702975337703094304328725722410779106954280982610136712537427971090621629195393113628058486402263835310024428204167310285669510756202670915838650045629002577405370124402728558708992804197630673333277732747778071483194331674500754789379664251146681018635138714041751651834985740355145692362796005559319461643040274545808679906663186612341112826298497111087908495730262440555782099781826467267776880676727915757092033233407435510147787246426388178899627250507659877613875158083598595702702175827567478727595151758650663633939186595220895675454671495672546835619132390490427249599729546314725614548185072417823896268786968329552446152075822534979514756144521068302654480504791200910538398605018200847396627621050724533036727928590089902088739852905056108959782022329439739011056803418600360891256254565157468028830834311949346139208660316927963381021932914044646612370912377803390193825207540726262498421864321822870157811432522913912736610264463143342402205315442783710716137469728699165108214231908364704384863045752946301809574819759465068265793605633109970429242135297293820853948313529423927449795386912773546884550813965439442276623933732361539622403546711616259088092636259446406626303533429746850963101506842664581890498997096547700278263750037258891282819303162059432097300263346564886083090834832988583981240044852884270736310462546502597969543880143259147613589673971042051465512808159442797396338414320972324614572803634379444180024882225593963430606145585645801982731008903530841941841338729447089974706593406000562783630029498940948020827578012850893004415537413363518745786576390261019038555912881455256275500465058966861473805944330350661569633581261938798742945285262876803903830923483953725485832356214530152686481693709361884442774412651908670037836563190279346948331374134991742047186119477322962366825121051550429486951081386391842273582942970403490396587294570596169392602986816838910064098422382629121604182913928093234660931002143004052948307217544698947955189308735879053163068743201654740692080183451767031380361285596405999318414817167582863459883333344410976602301801652930180035005341612059881064954294683866039625819201846701770961888275215475734704489148343515713910148798764316688688269478243757396877445424339179095102589266498300709464358155939469424373674011595107570510903413359988004427000908590516174880101099857358978089751373957388816280100129433280433962285332205102275571047035595376507019065883069536725175944500771259322801210304583354419073238853330569948397187705027817985617485941441133179476284373771856663900459718455577820853991294876690008571993046634499163727201540436212970183556150674865223123631970633882602387024116829652516313299017560354892588380375403345087015195955920719163102477521315303039587228309888315349333691408595020721367560194160329839159743067446143353980087459005438413392812772833464048773646633757317022652834263887592511547059187253343266131176998270879953826810334180946342794868679505486403197972474792811383325732905763962821257860168302781806487744592077453991188506212449249908911157306569713459487286469027413723809844915782749750817848695367371062638975290242446149786406381179175813279130756137978960273464017137269598965095109449525131614782372079256321202304711965359134345356121680934783812498817937300951790061592925688200378991385174293891697496118623424684589013392028681595890845161332711016047373280751549515779511583327471824061350940956409666289529645257348237796626482697745899146726184493799138414875601303118266058045365251907521145065606917564170286717965427819979048710595626661458211042258828034230096044762363156883034388417379151135169750881314302530656348053106021332527846612923903570610914104326337140410581051915650685106493761132718271587344371357144543430001362546851257156827133269898963948184050065088097089259708409607196849790736276807731734668399931195860016768740579264514553112266128249433994888931832408871957865056964764753467729546352571203572855207266475798708123039830700868326140306719506321300730329289833595424776342771496930040143306205946386757649173882496679590070838660829877696990474343967586966286837610543715494731325088895180194056939259973476684465920172777212886686298810730174614351390773683312631828568186762872287489766180868160433867512477285929915501458740701942929949126369786887407234771652824256380573555064955208649175435211688997442990764931874223041121114350811091679791322821431561407317213276140946607185928114075303076353282812686303434559089990247326954070862180994104137616135762967931743254024256837899528129072600751588292862960292911778466085544082996365453478267530230325433118242787752922566863184653731720793460193198332466643069144425843316106265045537657525841105843668988140510210367126098470353695916007763510086781093034178134512007481583776424371689702754042077254180215388042807959160914678115226524173397525800565724600229074608806473379772525201580317290821833942452759456052516788652143924750349664262304543494871458171504911060652517146962982403791672271688851985426216633766284777883093883886177781247478141179849064368286817644731834461442191832814983591365252618313126855822731231740844429245796306589074130899371861216006857244798109657101040711569573903547543501595681311715096558465904869576776726311650172648062317233082844425977302296047384085645565339858471036382487016200928192834852374975546629224788271640464411638116979716344902823613904557152466566054799128571565323747384800533813724287483989334177387537351663364492111708469681239957601386935530009072687573243449760499390423413105284678906451880968693644680492630614258381147413580419907048415884380001488197828436125977379880981580475813619413150369111360051339620651068300162823204772282818487050520485658918021606760015757219587899883887961422458324379387352666069338317325025518559901734616723780537968227167753263934354198682189071404382155434402644788966691546112931556548678225957680873199025883012048179220516177960110605222930909923674694956243374075348346214476411805798891147040834060919799472111771132414719679042337608918064325762836830333061215871730039729900323502780854013627169549939699695533599725939445207479292931275037469008255342991143663517827505107189667637833376849682728078281209923203774576819141051408266776007200052092435994747341207165525328024847107267430019135562014076168569557983015101354888502337532630607622267352371236707754749799970180724422536114831083792841886312805940502091761202617068393765944111879385595919516289974264466981015027198991042965293131122378567557457832570290437117958346843560774600346753784435306993193900781344498334234123308172681328639817543399921179969285830028124479558663714012954632395889756069802740024582115723227415417931639741838422693368603752426213005779799768842787495761101006424628602357852467374653335672043077281693980545350449804160369004485658739928529146123722159744590865217094527409319875541567013277460848185491869027347243710402730947300728511257423243160476297310914935433141671215781855938727100515840795445734766697711794414587384181806023329770014286756499944590815375979779235185781109193926968793339998643960424607262652699068675010510837628259679953537663430385348644571277318671677356274958840151249749408816174795553604652054177614143522255345749670156990885510544865958811864046349063170936457533063792074252766407717081155039345519325716464897926412189515679805790834661049037290720051284207871198480538987997544694972915142412193332142852346906419983753337523597993536869044148905529124955208811363047278142021368118585996131856936980036910377399730493924190242098908018227451690002298114243020821496866942219257833058720303053524568871329947549324459044873266547795552262582061640032302073659540291952033957629293421554433985009534831044929407075740263333862992929518628601289251513559821016789140007121580675461685946385289919159100259559785835549021924363817705695458993414875379501984330051095324173747562942758532983723140674173743529315044689476343313945326652567623243496901371005270162371559298652252550688554427166528679582610600891868265148008477964913538670752902990759582943031644715820953107623272136713564795482344649073967751591718992320562267350415124757117229264456774248508298706779531368106158159893395834501803194535775927380299918516077507589751919564813384978834104685907786859307140261781218091230047812331456481043612747395815175318342887934048425926430126741126628838922973467164065471087286152614012975029797760980429744235144222202497667172141625445844542724185023621914842294055234203337917915878909618842328590470078427410938969411533440328256555623124413650459498799079244080172697882467477957314180274599321510980749639013482558530759844711087190192853706445740516333670978788942911715953553910882960423446160256322445399157404380628182278034087787057925405186770981684808813094508251846900909925155613166452697644169184314352552394684068003701151095634063032537978293964336308593875402550116910475307190639039913782299964258077591986595783374753192516443761146687427530185024710055330696386895169753159983015823075191486877949243273968435126848260773435558750601957980660361000573581084909113396503651839527051759993811421613971186944526835834321150159733631521339780779565632140162220718916827998131265597497013329813969531563991860646740833150349951729661018129035052029655244113087893650409545286164999057778261492373216522661712370261820877293702666998425923398414857395448250530131468081426008076714774351016313526374723418844111764522018384645872207002836304500701421492367439044267118713555728751870521291454749494300761413024233375667828437330485476780934743163233480509742736068252351150523109243566170510635567648886921394838221706284604722937678386335061319214658035845293533885214697674737845160613104340481000181160310768021186779780200277873572413476488795182868935705652447228322311508379276443678506190526573314234915569257115915796124488781853176353262148033101008945712705501588708833925063489278045179037470420015014132555973559740911035806580652284269749521114070598725206818546696798310910659030605494892615366706871754318165028179133168742996120569672569063941870928695159224676538245790498910607664594575657093606927340156097608441900391278077748804355045803713174725811377384323926959937312288002878341266016814165343599245518632089675625160362822130008448872406902557367467164551634023921722562810828096972526372623608683109626311210565296472357484816347112749657400216489842481281461414527521533757607609377640026821592251151255319401564061808613318052856231733141495663260770145658597550707993613830064780966542221026240092831111063538821711983328295028902174802281822224054499540268773718848531471647844111891065433320521069649550812438939898332944425691457985587316853044107151086100352460651059048478402848814787363403926207282723379360473199848786022131150155977721787649916290506527356792268944740817554422122428857865413288456280340391927444977695340552168923888658316510869878929581436761969397752105345153707706852307793370731006290127525412144210472223900061487685077440288742102871379084850512634527645245094295215231771854413939030075813675031739353576660143303702483205255612938210407860767741174783858023207382791301386043735929122483200749752942974659727131120187820798013039728332776983763955935980105580267315567126176043352202461715956831717774406035698267041922414985837925783115443385478541707432914821009097576631724772391657484207096789445608916600062475154268048925979894685036118882941045813982807066873885838299555621746357128488926776979128458050041887077266778391648250310453934830828074285639705240322158763674685217326750294462975553088927491700296529734725373347617605848764275754638461564637211050087935403728054540371379159039146803944651447069864003338876855788882029308647865902191706778171605776187361271206166778829543435364133883073449049124799693855331615792307010489243058438191609061120718945085073120139909184192989074897520384945443973944990747537973032845030582977134638355801649389859585847587198268254344956167944212803954341532457123737277924566085322926637637348345726696572006888453333602997676660984611247723979894060629839581406559292756765142909656721288050406500206701659109442528481419833156266212543950409533634705214766693274283528506523916394580804237468526687122838798419598995339177309818308861295912565440430158156230550976053061720437517743819702828449053179765809009403181312675742505819278758266937949998903056505807570554607787687350973673054871261185630709048613380021726586088731167126451718759417081094304774026566278882252966026085337469805389053941823085205988157962729244726135631474381596370159721779524207926905255485125071271322895073168164939129448691640662819113233662160867039014849936678514702462013730915971642188842811899590051475375805726529836924912921271742272750094778037205676419775611157279724597426990130744409134979251822027733053978995960673253534362306466222530955590851560122495525692600839304879034444576945711359996993459759834276041464142929418815083261025775225901654879632613343657721521192865280886334937224073770914382402165360348141252470217340024443984430440909068566538266024246437069991422621782182830731764175592664364794801773471427772137686916691964048772581673994384373223700971915093275636619456102864045405238408190386086236122079589153897826263053431869648325526719945666791534942093986656726103189484924969975299775824948930573236289355640455841063738127305087403953615084182345610763195440907042734621589303758527402191103277205135662237258114169268155914016400786088367543636522741980783966416181097309199880825336422750763776421398149607289472909251790301414429773025887787723581389429945534240395059248090557568231409917213018071828085180555227518967798772680013841697820044356028239251152266377947374402337845836639676072621103413164110255495792631031807822409488053334636122953552263883878123735395894869077178349337640829549646455507192239508940034759990541342547474680366823202013385485455887973706295506070234109497878391034819183325955172621778217636852665465501264573546266560681889853208745086769277320482244786181793488340862546463656452344940518156700640920848340770525885554865309139086944821512545061120212015422613968245896455374551235379518679051852287166062894727744254712809557260743775732872212820890754955922100483917436223821116077094720242629208462268992976346924004569173245427428742248602675176466522401125815186790004827353556752071421005391917076232817900068974840017481037588222563036976043853495733321816260807721129433418664259201953702044486241903664755889473123985021203680996128158583152676771423864796649018350253781049962069798220010286838092515748261169829676661760487881389913331085703668362529337797463839220783563686506119087691068074885718923393296033666687525245038519238517782294521800343513085045655543868545655684771400909424663184269878821545168100389220869574442120972692560434314466640897231598430978212849803072934634894934581969448148224586011110672466480575515840044383890092302678891383649447783035856310358812796788744727937860913857666668621087637277721013476457792021576278527992568679747623351505124824759228562629890706786929738081090049994976752756763552908659756167635253693417981732755646075427906945861126044125277861036082554173935697764867524279028345969602986098396472761987885312229327882370646823997306397272761720832918915615708740424775567750039109639624532633934838734803057496722122025470499630530404912972856236234756921372529207998478252478793909654506502698065030726169637778140044918137160636659296021774758331272276908787765315907438225487749207398267715658947212225410826387972222121988226826677517593082621717400462475984149985588022192985031999585608941577722644091779156189254359986970279838073518416835246373711697838642098142351962406773776315857641038845474907864302557441726385216290915748575056570450672823166150383994103059462767662587376888370023331807672672246086429819012447267512264609729212969825183900503854383812001763940029790636631442158765560612291848909440444575165055453141657796221093718914184763248905974957229833992920165103673974004332028851057595256408877904800957268032651040065869295894624061895245415752525254918880860896004770391592405398906786540894221607571413325123180794428639956838413318779233090085156830362546670567272481935172980577430808518968029510046087568964727838065858889874069448429117883756925004721311912095360422657800500657385777412995697291347217901432010256501510045594855858920260371203767856428926733191694290209977006338159576014677154494196062912094286717657099262403930133818657410825394236190371989574716012030637079210569764910159308521831172846924805283781373094566239068117547732507128278670503767797792965100332822528554524824611731037036482427646237785295655308210697581765283459077440319775405914179477327937650764612771998199565655949261692639878219925971845228966245070190826787918575507760663479197622876284732645105706239376766148704483381122045911627261046228214296839614799335665709427428957074013130840677445452455078127707031043487200962357381333026525143441584235157789924280927237734998450224405544923058511072539445823353855142743534053408828823843119098006705754740067579928115318975576923293498496210689595960588033314609615937281217667762522109811309825670928486223586117176094459371321527765480921935116684653957669841803211064004412671697171292361947468693037572638841323961712313869481493890285904602293911093167655120708602470082453227975246746662473451603712627684225288571810811768368740407690831383901428488031554775245190850049389551417776159942972546644139331047067004744310396523615831299198619290433337794855295701207420392766124338144500799345504762895934130900328940376457361794200988878090320478368066483250504349028121730196801306421722989262562611133337696959138143679580479935761721794462162428902358473275331082207265854776353109116628206369727785855497343385366437052758876777742485229267443514770698066662727633689956497260843307889571847108999447099482469398062007008262813410224545178306343395670027247775357707494152396750382503833567686907169411206392267357893654195690027887024782211564603085643075212145316796012742898573776943109960431943570881993701210130866674656953198225819604984252974531224125206681570143890862715383408249150845323822016967996820294204473573272463678968752052805129675839052662263595296582613822352215118235677163822791480051317188222406463219786708500107588201186259134352044774911029654293521916041059805269492272360449929772078770025508192464466553294555658404227603477456985800759275045212380735876159507676235671755460790411610137845631181075301253759724439727427560652170300235841784421687849362424443735912404551567637489436612487952790432550230303200333124801448243771375186980203093196002041280757115757070800860420526782621716921070466556313789221489852293802877825876213110570608462778057897982018112227732246957211248916023062196069805547447932190677152375257533884856031270084913495942182191389736767438348467624584426026433127113327936366589748956298642875373631104931518679672756570335867718149461814489533709517965658810969050491107749644020641298068348827499404153590747057445788918067098861067520748576702294439657435158191659112792264023538123913869690342731127466719841346431961807562294342365386034691890475391745570466615750764165183504632648631982952092774763491209162872687721693843448793417231731301283471991144397130245920140442969515105124758171586919682362484218251800375105058076964259931929867470980486450039252266643167593676723045521823563520994966485033836025147975238896813301063006129452027413418198393347881599366703162980216575150277010679250092944623229015393852361846888818463894728416658555979938318028864155847602111572262171688118699244609611641234451368379427854697058567348038530018695989765442881741437143821815806033831304421785398175636735722508863839978415704370941265892993519226305389728841000023932784892815115384127803852994559684122145543587103656575413846443816263504412991394144791240944026633294574303503890494362493970252228563286936853282774727825080314313474941088493853378040003971722572173462973450470573009271737017825160122438559481437842326360685339267787419086273451461973375309367153177379277472932027246365622776553198398402969636194141150110926653325761870722209929234044643083722488598915662077475090766004322685281179319705353654672759570815571141259333845657929417885147367693204176432995130837985890513391397057373374903040371531513323243478761207111098307445816979138321315683009324332122409368668031892190823212806831795502350971100178066011887904002001520655474979835265493162261289045217117521653109595588671935913138767823564437298988811541958204505494334912821609556378558281691834396623617051183801020271593116340494804045207215167368175595248038521531601369927085333419930105562687349902203334068392107208328350890322132223760558829748048279644392107232249630234017711272754033457502080906749242782065690140955917448162496836561455359146708721748317772822815399961107605965552037378102648952356825439015113315333619627941275312095317105301725917678681522607365386572650225388535083532605004603401475175918725158115461932988991598593952620242659179700716544724958820607397346165021107028088678093127167544364857549731647560472529297948626118366237613086319046161905325560238012852684729722813533647918304892251015572493276493820666398167948600361709224334899634374793097050079414227645812926122152758012766496661806698042811700362679472591615698693066861590190888323552003362257798005117539286569498365333901733548975401518149588244041440982714801421709222197239672611074857937736770198519892141936371821204094977183162145474041181721481537276000178355371423271063069333909336536312670348770970280558998023173319646480977378261019999005027035989858944341739371556003135605907560611256712219160444977216747785736250226960497213981045806694711018944059493304183964293331847091316957894889568048932469281360475832454084919092167499963617220842852080945574577315759918545032067634228662358532022016594026705138804015376908315710578899711407640672495321748211050784036474013333426583861757354334624713706824320007648961478645665462319380831181515552257756673982475174415012714989994627573558294279502523569689562494035152132211141500850724042213897768746443404516946533502162243014772443838018529894449831932112809076521158991078069352980292221420749863829121801569208529017910680480988301749923034700164780058294014381309316005377129184911648713050312903836442815242637254317314560303349746106106302384644378796156076378217720792922426277215163253074394801412817375467418724512470766005886713686093569654650781487432913258106424813670723247905774300208408723745243921836396302335755336123356798220657516921832291073940390171466112165941174031219273346125874455662170744542328744200678335600976059408589520931447404108210243379825126789537696664066279661771532867535977702701423270680469101690090536692782486277632721948085007156282682299074103006577794731711041647433109412217637686109049781927348312888383581887055326911309299713884107021206977814181769647367969477687582667644220051983063182434595938861079729541794215895009085400386359198243860470085472153770219964716113942393886510952546346452081380365591457153316731964581061914175700942952500200851128248651431975078307250853264962047026742705153174244385964403708623647501716338470529802331147736442087794896130607046558140571561197834916004033224513932453833062161724054811029506784838716126643187061785869817382768077977174574049469373950866219586597052288480436127608132949545515587145707939632052407107189334703835904399920174537589092007122564000559218361726825048099456534165304482527747558555194546239212739102602107124479793439965156068596713506835445389433713480872036319341193412159362907023682825318435232921724558390593646177171849372461482798491035913742321677579170056146799504486476299427901077540635063838719740706577154775739337015633830616394227820400555835856171738772519946854309745880077183925902029856526966443579913133999719015938265723023155086308902508514528976518483374121418221143450779322739693711675427959285920270699772248708045429811679971756563683606992125818846120044119940401377654845056830339319750840215041934552737458639477454564914246300602274706865718100304742726786802758978322126793576373122614212026621913671030398840944939975196270675698865369968988390635032412819945588732944986746226341770052387398333525343739095172089955076823719837511781077753057652053896528003279004270005158555767162178835643178609716959667695930789763092251007031710883592112245413160599906425050188374709278880288507225448620592136147284240675351328072620674868668099663171432732092383652671898853756799339561808845835799409576625878709762150479898749656888277428008462803075884303850044991615099660675113315182045964170745417421593336165524203559691489054212281815112333001223570337242949426413244942843525959034187218494431678231463264803416334393915159128674534121848226348488277283076012958045726066591944181039686461739887580119091733478675890167108841071793732945909038787534315906083973063296539850842524110195286661353422753601275269942147740842452539973955657452273496098813113866024887212766382958079918107197657392127224980387858937392727839449158852301708136229636373506110954735863216219973380857032639748370619640348987436108037804096150860715857365050271411648556133668457745022973825363959303195348655534061398612905313975943964893326823940171309145635376598110762304560290821874395352352383158200522960413725329565723650317795992857399535165915736405262298263135494262373228260940740952183291372438530482271222911436629868997293780302609924063035981337278318535464889325366141604712987623188904300505479594947816847055747435487640838838406762711178677607451724497729518863420886837780362529724231106237740221516650980071877081710807193708208715805640818028925429492295568553373143796149664490864031691760433725177537590967231844947429093083577122903084700257132727439634978132397528049519677176831483628399531980694413851630805139950779941470224601178579788863599928442680813712669871924584850917168951226805782846701112007690659369779946681957689461697583718829730265906843988104052064335778023728909255702993729700405249495216418988466107973593249729769050367303114041941383805760774104486360904258505928935086441998274070832449407785673588004854847033466821012055018251131563200806274516784788213846290412442932628785969280711477134157399103636978311759348713203158729517916845934618775824279182939888432192664878421716336962750142296531696026623968273370389254000908412985849233795862150863902499695668312018927555358375934633655849565888196552234530648664549896523735957650217475870976991050722895816585169000287395262557828037367947418322897110180650655530524404700039672864747744243148412223675452117904211539023594167088131718439411401056842633358766091450380070879228628826208518546715673915363564961551673399315454891848998387556162784133077791950719844431156840639605535776724536838971838023386295759393941113751596502787931478828253035492744334053916868493584293006245075150047561092089779156497987757636486301295022355173997294340996017754024723678481355161874894763586640308305376691549657710491358017316822145646445325121758634652011227315699081225815238979261804551927196506025117498669335074271295141062640659740382402783478109729785445352269902202928368121353302875092414443014885030963314405478570102933323259600913857404846583727289282888570857611050434459202162116176675769459848608144400586575496493593929297804147321303966091648905607960013572691792823773210321848244017104752779659133927502961695327073211783995149326251730736003574168144294354181300501989442699999376383455217635369573122859257197990877634863827406340583514104142675235900733888091978328247057727012621840941628208718195983695322583185948193132787629947379257460391535828473253552342560124092160025628633080347940068109230739400626035193822310488381831174798670790310547487263829421108459598167416019924462746762353161486699712969064302372311729944625654579217881982788537221250137775183024422056881704588964850035222667750914017618735131303989173817687272389945258586661013581836823596151776170311281692199204380665665658379691952402735818418678872283113754317527819317701420839405177005627904944634102766268228776494585951533808994464310991444027298379336693923312318342194166059007736768826496421756119070401588983546167829664650634549764927997478550766377877923558272028595216333169093977492308448546814335477106812919935815713964161818238082464623962832815672834317930235168022536396470943150471717466478238156451069953295847096997628944212306401666526058246290602644707119960962332177804845044399483614914280095087581055493395200678651636399749856305410580487303663926552561011315354669023577728574334841227170816901871552251639443773510298152423540563940288230850185358119244852657860788516513517275941480728320372902631410367182094610381736453497080640227624310756341429312109058753273568620052810536930676817236658451080161911346841980858444977875907536733157380301519677590125098858690024475959355597489628942799835977100278437299257286794486612987241457908812617735138003030870816444858217062734405564335861277740806880503944441608409954600527266323151865545061159739752624302821847758124309323484752836194364588101952376050327706929205656637493848195899570857445561144769271424203913058276777828742849565205465205494796592853563697889560959808541575965323791535487437015900997765330825486712355109377725258004061385816576896312248154048283064187978653995660283172631163911768468227345089268448740501867472716176203065093847894294079866048507104721213327582775209908945856703085840671593236531017273115555256151625039462745618968002818579709209492025751748387103058010510100425018238034999613378000558655503752989272073968040916814375272350734891734203280983490717271562636685245658822173638674195114543434946937914412900515077288481911406799430209297837077062473107512545959024505503317578051784750627323190139135204102988750768740259553372615781305462020787098516409445252024458743349577469415275796997580102477560589477975083736561245333231789403852907269795684554924249205355140437923476450204423032391781379359607936302158083231821781111342140676703038373578279565946639431121452276917376307828843706946127417289540983504989141885454810338547169359957008118341018026006896233358514979956857534949942740351091942822483530618028260721575616092058730831762320282253741976022592094933347386766128542521650488808473115034536659159888683995356722118774064999082922431381784308179221839333108323377908442905095211818243109119273716393034369905556974449751713536669341407219594629498350002880498609151859034515983350181970157526195100742220611225616822703229651350033206980547221336029462728169311997504828000094982623762729009330094687860197593928529259490858816506783167457688020875876271872847070036617892437465106223123211628237173083577140033342314678947165912598860748756185857757591371372309395080222389584723463709446989614183500125764328601816604750061213157711514174405234238966708905404789881539494067142045602468049817405720447910578300203852254615890090501117070491995427676351011133971866961274629853627725995157503785488765832947477711188169648423071492586053399628008769584206647071377258431017991849083056075324281717096350578214532872763797698902152647747026299384005281379066919860040654733197152330136817812515383462595618084668766888454591905626980223812392626959632723983256041586043577244788270913030053397853758888110526201632692396577827272856862057398702480917815334687368293236694118756398152089524103652627502695093314040156904537839839729486456634198362456581075694011724814101536545942818648887194539552668588070099854488015205476324579880460616951677938909592407280963922315281036254172970724058522059236420174959117755069643481922270667039980184630206295723023281257068453631092765578197820890174079953316914682140429850949662747690667070323936581065773358766052939949138370284861202148344577463554252879604371249055045110456415272632853577102190414008431814752382162729064952239285568595160035620940192927068968840522645946067386044166786616563880874858899798887026016368317591366113297013466809198049795467605124931634078737733514694283663053528295738749112289636493307510370925048556438227179725350298480609124591400334807015528133034911209175158438443838109633445845774529051628182870733057381856924234704923722324644553245428213945983080143874676983420460497568919748600269495712965567108867585768861161898340201280102701934408799408767754498989666243316260042416329297517531845898684446167662303242169574505801688491091224679073301888718234508229290153272580103758781759088569226937257362048758191659110506978776106332444167383033275182226837648458280825213576659847959437565016015065881586678599549675693022893814215010558292937761508893144018853553928368526262998929654560183467410634234093839639275669070223968055136493670188104046060051760663220963395856541313372752167505083795025223971287907898694224189549646355927930143059240065025483239991713172989914462614671500420153160745861722365711856099973635530957202529001149852406111224271548109151915460045778830294765903747530037808204379873772714480806508645186068417895712252696429401439986839784832552342737186480584332027670315481870456841473750950552624370955323088165406442596679848724983000039222418429789192234369108744637857863755266522077616948614833016646083441880431052260912992288012527719595474220299244477806874649603016400086233595067982794237020763250003703683121191390764517195312288601912206441508122429890419654135527543757279265463354492517609731768936044987602187041857953390509608946923207307602645662724653815410177341398938206695204228647777977529007672797619825350041791879751007918147184568282198620599547220089271668449280386017008445736000802896031975776518128603578573606567826301988170422395185686118755243384118315704464923630197133348205787868408328248600567470111817165434033876836695063115743445145783445781250839619815015962271057962410976200739706165792858551412820663391257203569212212667392976382765113736555902053799362277030342153833182347772687838738553903391738543270596625409280566863478313110023342713056307782862275635598511059433887746622908899055684761582680719712874329953958081426796096233529912736825466704235290976328480172660779121092072174777272363896595857845148593751745415891338007635055592950187718777370256620448309512011150974260632218869834673321967104209287587686796603197271177469095107281151569435292107748031235236392489291009018204727115188152298443200909707913174421648273994938473320901315012072628480609912121962784516392792473326768821312509969506945362110259589992603710060930661419810235595212719211930677627384153053016049852937837112618956591391831249642779253314240135076660431860832076725226501193367256890151725971890970324205853663038560601593537616442098575802241597098143225503633516679262525012625182048936527259417807426311211439941515455115768777138290195843557971350609092571868135882015366794691620632899664226841553217245965685410165270490032711781460809688823199523734978144133916392178286987999340333767316603531479123571920115469423709898829457353167827592723788905900913216153485393879431971967918018022042178872027404555635789407623361003291850136824092965716756606489160856580443433642616268438709238863680581870019689894459282048903042723727729364432988179923820267631616332492612930460721447378199909919468536477644276211349265086980306523357143725041932656558365963578073668644265325569520301833125429208306922873734810893849987927042963439067456591786474170887234591538975782178828775643727384834612513690946903177433041933572070980284125695043461560884753494332576354334886339533522853552449693959055103744065501609288181124460636435042719816834207808266301532030572888144984794619017672001099680477700382311812510930115775447232077018590473144019697134521780139809838155589400190928774171712072729924674641386973881226369806418452615965308563581149252356662857264071046489989352465296688082008864033433633844267954924140347203785337210797842158470729303410346420222412470214953257695117854715681952122509273760147198512300383537982819179209958598957713740098268097592914446352459892750882609478285382223870348621688488778707912024286401872465415089876786657978796384298551975006748112519218639265393688172645364369692044050119925664222837412484136418288691249609001039461498562904440530360641265481075821348504058834973351233494772536051961134683840379000618094325452437828520459210175239196054601674742094052517058115643576716409707713772471316266765467264458764699883137632523080256909834166326808751164446116617723707001873143972460064123721832843539504792775191342855038360423278912327979363466402997521571380711905269517690904882493771445201479537316532243929085915546313117856450528892480297839589916519569458883711056285089057938430668766537476233804499477512574648350296510136280507345188780166122529694098364007357512135107539906733102167628856676028550345202547642256837686310793311984646122215082957068677453503707973576241269036479667733888549941354140375627175520596899558611493534082919857708599547402920465567691857983354731065489020635990050396009076484654371091381880928282362523681049463966521395044052484359515839107470715403159004500992164792083758705534621521832222046720455120601994062963183125587985126127119722527552210098965425170412205636511817666718099993413163850207490279467741633561680874076637369774856923670780699870525968164725125309110338362487972799776222197123189547482595827373810776710991550010458655456601102015721917671959805172062000251523333301903914035221993021065759459840478930889696209764480011131183295775726144446441267740310538450559884423812440556478289766555713177937668789664373100611300867290234199448584626931602153217306369058043769229983532913943329452481766463738747313749708840050329251106945365427258361958854977307040213020623564883193832619575990361355454904401376409137344963947778079006704823964009590134799112271869634821371568738262709994329324508327085762793563386062861617097440268388326705763588223943134546125592887235714186242284230136184073146396498283048171214524682963277287383063037596564111007977406515052507088624443588224642929290493816215445569461157138750888397614138472659291209953947982844908752041632435524946923163953136966852638840929126228587464454759617193027406827162270925934636419529332229652421576930949862962755576526874073527516923765922781651151611343744515036346889974058139825097364331931876557394671709571092211491363199605936415363209832151340496666552115306068600238156125956618853676591585977830882356960127640757953291487724626824278677178335279040851453480404623849739379007261305640472000381772364121247223256306162807827491066814601002882226846887612363284382774522104115052517968032925209672410103735599017212867994860561876315648803513369047637399078356490546485816231383668837976171204062445451791226938723574132894341874393764190685157125231985166193778026511082049047631349471845818281057239512715564344384450684006066345013243855368764803272287397320997301763120519223568139641904470713585999329953429522509719649639680753591349716953020776480781050106854317863595440109900078399307075653618531439845813837559421305276862599632478153243248805406378843930294626915768735426578257444147319534958068986165310163161066474420840498554529879159222523518475118341525195495865934710537619502946230394435385631485740244762967554799794286801511919917852089706501519190688238143452349152909189282647617643580287684964513554737688611295386980145175305584879291650420393367139211799285697560474326513790658658750677799592427121342980247572919864748209507054810457747409668682668838139442770745514683360364658865806309112858556271154273700020159609479517460020169675928093177083285729966168436543801670103751593281522971079578075722395107803962566274499946556487676034891425824763087149277372573392187874809919815762583926427314969784189804138164537064786211458810692788999868007230749443643271916887903599867112587197620104505997832285232131004632929771510869739499854204122591684461315956425319788670169813123217499030885352100487347406319171143213675939010792017704987463543303166978444017485399795134245931204563137026153808838841691406694374389155493359652791365235975664980971732471843948345060833201720893037448924969487443832925182313909742214059007554042377641818508205157876055665809310065359423381892263192303241506180902042996819097722044373966953916072361580017570388660472247447913656570062063666108523870211153957661237239247039901350154515713043627408848483119250224912352356097588712279792654126925861970058664240122972164543675365918235447299562177553094132761374204970222714161117141590837451293514266677540515595819795836905415863264665541064864092097421567225899434719140636920064383272766727259535143613187886478319444134350537075988574651996128376354725802136101142300499993859497229046634184317997888241746847500663218119193867634349082574457817536368686380764104548831802789277977017353740411452522322862425942061938782293546668755312156783570900549976217859047343489473168455804408851885393144552271866936083476821986746628703268284678964381768144516757920298829139637801408313015061517537317470401151077253243469867545805374519356466014762915795746346367182005941471718744088937611029967293093097396166594767488657508045272618238113580656383459171495018273781881979538785118001499782199385206232537441919463326491044269563010731751253644830329847097896155281233733816908738918507911723677473275582704830571309993700151598458009021763640496731922652689831963228340073117522849317568899019561949607744376632541229615541450560705925004546133062524196336418262231031110607801865506816673706467191149681419641759054848087721158967519698422081556358474711222252628859313549967430500346982764251155542044875704630751400655161083970087736792935047658401928174561510998032111180173922042296501056394071808775668115278661201867446685322663963534066850103992220025328017006502294941009091561762529304779565909011347073130031536556581404909340489554703451597736309730010887972928663739507708889407034787414685454707763694793652225561347331968248500702927350491597762597097710362235737600947593294302619376341779768036451051902356516393137443568788610008379978873083410809097354908094897149350067791296675888547125593997578314259806437488051720138597961611581481730121804514641982825836460567744287977054980928213776279980463667799469807299105346314213825763138853033619068378059648639374619540228960728393288989335995436565370717792654606601513778688997676323829925242707369609710151076241261046683582241092356377351403840721140389850574697537117307969207924793696047935877343161132003600475732861619465403551654671197591064542796973108612464578365383561842421012075646479557262078600708956960729766598629141423577215271255269872385763998080028978272392052983818496168885660015697878403114768034700503297988610517733073331635529004350190064163658925908012976010011539876335645983362044442384737636414780589674492964303674211882278017930211506482954171174147451739141545691439582921379544358250986989220285042960882613453678535579013522333664624067979957652733123425198894043539733961012797474042647947438275816461356145897531589254298719169184213715661598459115006804101169598654026517344193251005644661230674883289929716239911442495568721521903090205578631741337362022677640381382290010587990996868426966875973020799223007453230891414877790434014499826279363389451517817020424203845676043056929601467925867540212609986362595370621109524339486966086144502868236449398546445798701336761746768697556185599905538736022047097254437246396283500184838468017786497075275668475355871992927557469813640538478609154927886690799950508874889268235290630732250479107535942389682459013104609204885850641289926111783710493874429694161417331947913933550316206741218222638457054973342512816674164572467845487329477051718132992580209212748694555828441970046316282557443714115561071570397587481502703711299299523491328966016322778901574365619198743607424514006251642445213584497224967186386924363972094654116857688871458126004694185833530960133392557760405243255067073129199138355076781484601608205783157070491165769351931878461301999519566274861032686632442325107384236556900108127434685326721093071558986084293759670141191188873396836495114306836574188878980288261466172852571786400786049010712082303810174190003130321660590113847408068703114330003151715631396294165512153451410389936620862244216314982114887080680691729007583766118660146626239879270363335989742767109647337590124707063727203707616866798539313644008263490140671973304281223123157310608685532974009642014663994883127031093560993372748428698641127508000907087599967500895205559164257285374048292681380785933591325996770503960872517834151219255247979897455648664041885191039757388775957015726171214018981162835483422314393639262268766035370820085194186499673883549094276432503711544078984489099772126093861274038611217282893843599062278537643533582509758498513721731151711679614950059927123202699852698912877165052105354011693111455593378561907670050583410245715064524887434500170293033273318689878406415204254706263971603211917255565789313130481772714600532391696358239225024312195641210237372855820574423344322790991273627972943898495206316342914555926268043415091169931941392531657373237602179553632964368208334949361583229476320940411528449882261441343075097079541094780961832007053699024376288472121199321966404383270386871735355205780636319612001493888626559847971578375817921449862394182933746203358039754397216239733156568475370375653772869153574527609834261697291299348042994341890166665631219797148008815188996902768629236630279948105869104239410633925637096211496474000265048237318671554388368124734943044361788213076289011182702089370287153948970628900151876064845836954680061211241531140206933188030325287589913778292190489066362441103066636074877413716834190494298424660907310634095558793288167843280850071550917593778226671676646096231943415165407139993893398636583873849575324285435786300449859356522772678788503531467691756988963204927682474905331942891552658597188101935483651344544192066756921622015505212951847517087888526950284158572564211872446478025243523083438450185223738958833559058792709056321624594206441990112505644499089505302935647120476514590445659228681788630301974323332309642039441454788057679151934032124954274369271667358479888345087037744316384620949156312875610718531318092865798537609497044776142167209403843013458058932260793303047580156132282990203651732231484259577039476621921360506221262010004684309745963853904338919005034735527906914605985881850147489909509914931401294364290969860510152647988705640901453091867249932479945611163424772516774809008021636748413278532088533102256341181804620601232822268802075595862192182677386286575282911503640559819040164374383121400425193598658763423622977543479501860855385958545587996090439153786991113697306675873151571681936308052849665179422785881108981127847014548561129191078027081609499343698268320329737420298424319181129724108859488694404609940157856998909935892389728918816972279021487641686807516487067532442350688536905169414606352057092783171862026666442652467340147381060274293270984651253145606553526361840613724193586685987369313903781935651809396320840435840632069523282533397815740133981047566698092886794334628693935024685635201324026780879711747624798236419692976246801779098511844094734646799788231001286722430328966952270666175084836474117895822156435029738670433352483373051850011337641835534785812252108441453497082013128365762514774279034001179489922769057737138100783470982019942102868451606684660917527779701686393543510862970646571956566396338976773932354610387672984611645571165030145336336337913467307509451865582864087945982060906947502404839852768948262355483608778598814004489857223747313462058816709842716914991435246437408562491292626503486919182170096441477487816064804635442800642159039170638137970143797015381989501546951841672587176664599885446207098575129840987672837262607944703919854834006585187745018712080128215323224075039567614759377071611461116512761392326387786601341897434970822975364170341243583289654618550481941979831571478660122270305568979323717578610711370676558832729941980901124566466637534213064636243915292123747238952135880029691332829750126233245379888825526212907999684053112495023385942735754944282791897066575293162080360686054697579358417764274584459837745845390015194012867492232242049274392520110498392804069763242536721580497796629970782337537065198082003444571142152382668946481048449063467627790485146107854652031756355148995539774281922765989018718483119903695445033904210341232443568300710829196627439687094569087191448960900958398064451840122745958911485629295247151477040320013812195236256138557593856803244417736315807189524849278074038675020316024831130389230829595229049360628548596388808350303601934013036961054960541421955521273583787207486077453265139364672446824562850391965061106734399213415428684762376852981420225529253795571926233078137997501387798924161718177654756479089570669520010998601134123020578819664125027622047729746055824147861877386206359970657963975307082687396113755025894236592025916077823326600303345376707525644171528768573271895414237181169691939757471570961031936207123307074026872027300864894844685443588679302932632102283875854947180614742287302175257092069817327516706436930386122903680635328125845245494854269841173820040980617328511017279445247451650614895391882680217167540947799517580627402678738588316386866203462955418338761751479098243706294632951549700248937802143331272089884646068032794419869442522538482786087177959701166857318794133552798912874597691985169987773507173318111785799778108595614452064073556549282980990826701530065484511817488683270778726180775665142012195107769658903505042411587251763244050814539123955653275710325192698781381546293746827217416203133253483835351978268922194849635946220918010600390207663327752968316075587057657305173807478949651387344989901995172610106234736449456485190237151309414000069369735082217511293026761413655519701018729149593074862029476937585057167601472076729554211398725661247599629289348617824621887736207357988689712108501619018464494597277198685013464296519701314322254471209883526078642920111405122341261996205079533561312605444821884971433780779844125479792877140367664761100102144605845396204057239946651071217162292315871348746877992966349765222336354330279333187837716575825696196272699892272213620402631457085308168416988883489158041351165096048439655748350723637226568178107516774254808203075816804200254784323903156599687673426072695622945478414355282829442013825215441336188502930356849620457283472291828118212456436127558094748255300217476967629893812824158350116998318436802533352135777775223143359209350650703811175730731497172314276149267830295259995865089902040676599886302547923108113106684157487469628014693410884573764349053452124278095964253563065230777602281115858616565142634962034025544892459444489424428953746398442539600585862295826925545678922427918192747078458624444612390440415288580604448320708155867309726881702200681562264615251292119611263035622701042844191333578954690717487877931730873266091204604426745448776335684434020801258874118989235831526100385394407874653469447578714419377915824179610518602175500586898484845829068828168458477593743258528879199576204416253220104667483542367770592581318717818218415214224730390391371356315824038883939861049507143792934235029350929578811388122283943353701943112035319930502935400183399854091657561414771124838423642325063796879327233820253041329991693242448113579554029253878533923608621452501465887924345192392076895332564532054062304627980034235178197574308844675872582808732468229781985607757969448144847312572817557435706152737603930022509937087942331125312047955460393396090137875027393858193913308775652376619820157599961967896468431958143116237231334635255202364802181884691404253300034911265179680845464911419708736115955080450326582803137535273098252220132533133424292614193318518897818269562755809837195743827363877986216544517142757298176571427956604594228358908666865535336122455348750551139438289445877694322086770256681982771456296695912598877111679050123272162311255282156698331913160715357588148635150099296789554687279272394300234533613521078689660239507486046154786866947803215126891641325894044358442141638469816806978215695941324759570285643496197865150759658984935125045983798685384824918298501232303618719832462867460205061368814131383582612739237629800934037597594972458300337927611544361550454695631147601677927257587447526867647101064804031121172007600850721810416209979839837450792244448621170496321300019875396535448675250205407106815866673193243455257099522996067724569776382831906005924446764659955038004852167167608659002248203585404758397562829916660415364508471295190276258948066610179928480354516375868815294993597049546047920326908699277554618827876432928265502691444897967675917313379980974817230360632455720511526227888602714560173018555819733522278598147889616195009550736036238473309436657998459850552811847479024455603616891201893841021012508250282259814765880443041375231814097528803559147040005564477037435696007823437761203490253896734261477854711505659423829895396660580446545867394191487825487727506494648148077371888508407556492413345060261005134352992015685740180652025064628756550502629251882519555210937892473043149367466782570254942433681546481800886266281380823266738439058742743546097834329601799593630964391777939526474875556328954141167628557515271733176086105568655492699927125166529368295403426687900404288332697082242309667280614197574802248102349806990503225964890453085505393471544874633861951714311881927214062306045707613161236971707053140747326996186707661099755782375090852049582667475676461503898687621624973908273475391324891460881231996445574965179131012440065778271185368933766273125586970336057065771761729000296015478358080826795645848877740869193033878594098190219130895902272739338289198868131153849858203498715996480096791460618181715032932242885299250927790038503760817829876017161038991079956303012580309862284587143117130042015888776387949851837170296192014798983617614980770597733175043970259195168781750729276592154831684548462511996975721699292416200069394242585089694401398291537710648471619348215992058107506221728845703113594790896823337393402617958038374883922051701474269677085543859443036855421258351781069625210390778780297226069616943755286294439026006949495857867010414218652247685067841659679084861025539814385385600646319652293739005814414927223941076902264125592045599083158129510101044011782236391287789397688346476253345454688682343360737619746150531946877573429410838857905096509652882570262801957530034959656970264800252850504026580499454139175984465766918827185542603437250939519519241188368077701695406167483951074114542541296782091390620231401262947300679285644330519471933501548228874281878964517317534353892884959624561229280753882591020358498583765831025084599696229928980265182841576252635424844411147870345250956806696402688188761715220421915725303996848647162201330627855009853678487292333806879170821302135896702116997100606818065850046687414631496081614827568097221490637427072115030177852587886653545379523090715120840317033804688664684239854928787344463208033305488475162740380609977581436788718701460054823135911935880535348263237983501679561335797482986981401665029946565090625194417358626961024235618703534795017013407884332320314525837483997542194563292086451899200408204619175073568695994248395474903009007986098626159836757761702662750156736838676033381579812273591157381428538489254908504199814733186730198820515758215580595809031258474492123113381767876423671312393338541764478696382368430418140731006517126966542891222926668003770890972235144482981642580400271723391680400131453671556725468020330112012013196081841952154595360037045371549029892448826625553747751229836782430589250938169707144080086889946410613371319749528981538166961762206738320381678973843798610139596434792394050143419797267127637890393901860887840399794017573055094633567531586230149137975799920147059255870222695450863896898253057889120683146632482913298767104045176950674769729301128700746950037543121227526917833085005713876844845022276410945463469556986875041925954246405071453802341126942401676406199975778669117356809994381894491018139895832802157172987942553278467312985122263596138890008860234250317017685578533739045985527201725866661477477317893328368194672893654978597545468165939506391520462403555261437953251616433552204063726159029984566636894692312420382624200781828832235076559848547835019515628325988203006314332405742856771678370454425457494158443040622590238206027125671557530086467918061552509434683693403174592616972886901524892773243390141275217644914024911273277207448578471280523130237042754548327682272191313303408789063681876416398739940062701750134102239959720757861829637622597291391401457395919090543617916700519244234105287642140700471660125971779520949087204983092267062174481250514922523640830998111930860765631189561744863187591652168008716767447204201842714997449758690245029896276056188399553611331454930066839895029603645487667626698105546425869598261264058968120823336682023276669268971019521911922697184907624494941425177437056747039055672193484050995544760878031275370036965594634016548858718783117839701221565412010911862214523507019957297629339085817126439678408099157598389793616378375292468091161054539861330449726128397685454284786256400519367523426370949216200334410262710521837245005554224435381803307878428478215664621228629771056163032552993495055956011836481260208285078024529315461063106199762315106154255700297928746721226079445780841391033785007098799640860379833747097655787457669624414080349978839648568224558404991519245324305145898778461223987378640307844640241213426979698572182082737191981086002488924624563226322184440178545695233152634253687361902222676696902697956832360552054736085463137622975610014103065981497809869124069779833310086199045021241276902978683227724651467126807583751439074082889781278212951138189975853776637563500324614811743285614141192475100878209406997131669880870090154855451967037682156561450109590628798606076786668436439953706282933159271172031167143972223051285596226148863805311644275004320117052675196301494303752771914362201036576664827130116981030864560182528793408569629400777967571738370975456259906385022056972629073444389042089813871982376451121644157498072500815610222172321445897591633387967999104194570619297677892045045138321611861220531512629903277984698374952533865520341847083525863681000608232306043429773297470663451315146774230202055616927595323471200236547751930488745308530863474310915212028860131880293961847916269900664718511941801281308140292395462899543120241033541099859557054771277201727711902859256486291948489707621428835612791248869290858262721290169467375415444361625643155070112995572863291369101076160764591912104927330946083641643030289282167073339203596861030383987327855770311888953819634750316959643587245641933766455304136421826118812612827370220918733480526363457078350450862042111858599897878839238916545183961671121149242938061308665654795396658748044824822806629640180129646542990564509273620963065717802060734359339454369838145110367047312844589156526181845757983992969216750508443931157378160653642460896067534555752369176436325918868689918931693345109369309901688398301197362876710524845156102689442118085078539171605170939062427836408184764730923770101662496483763974783354899114202549627708124699360667564412187603212522615562055360547702078482436697624953817875376677357221160371641397262258080383871029378170946453851838910488930577701799498712440441643278953416329447669225858618997028090126088666285362342493843741464425842041103587420846268043372253099549728731900892605758256192768396227731437445730859351101748830341000235161291171173040133691067921575375675753941026241999635471577876134280868459416747367191718720187662921080470106679398555570449861256034204042974844534023601704877081483808155526286674457216260578983752083936175994215961880404227572099849948208055919968710609255099329788582032463314390394257029287122226765553085601552382918727440923756448181141211843828889494747849791012569115964277880528237315991621726160135956256159656649208333680662999234486945149549478748339387254668660052894145498774526726628182227077141445414973533109689961026464725927192289561372590156711389495039138372550102469357447316916960703738346935957009289670568215375653752791977326212260147201030747032210621399281068507240899596743156947260681645941466692193728246797187700801430860725162064653223706156538468374859577367358827937101865213604264222379225525737318672756193843898289291573981306946204649654943616211344852006288048375351468448380892132604228771716906940952511586025050479263435519968701744742736468780355180424438081604432172899366816296113156381201029525962915328305390022693673150526112057699812177076357241602210878612333970927665840217275638769318497809445808472210945634195839705082466976330056981230325287128531464558785496735599252417973141006276854846177337359358406228816276317141650363306090687480910787631137896778308562275544724582223838025843205717827875521727521249802331579842746390784116579651906883361535454321362518411233719098360769349314892309864701661336836675279804872216339052613107094410490983109984408039881042183726562338108815902864804973896462893436613529022509627982810067903597277490753166232571784110991726979705876270359456074502423479347575197063734282044334740221890715648236782883219817831367267135934224280483795216460126295066385852901977687396236929355372201138758454839369084600565599898129732273619944359654109771740047098798193356205510333884031381296582238191200450790339623055654357524897274180273178883997978747962723471800933919468579688568593478575632145988973506983318672809754545626949477411961471684176510846346974209106827130587423639256038974085759230784190616695100670611543569388233880781590152141792449360218081975671018473303119268212357135495257313986368627339163567739478892943758633177148836929220203679654078175933822492266279446637327291990426650273469723128281858849731683552586493729095776761953718667736883786360505406653685619556861191776777736811163030042688740760131691834935650014343060335060318745911563246578012605725939463132094635624746679580236646136108755499896569668278713786613804785091814539054230758184591691457927788008061243273810243220244245662641561254929985153095441410539718693662505820127942052635893342766872219393185722210542396025494454066657563603397923793012820569500608647876083599303328712556719295903983865669166532540902370380016997113664922185367270211820572338587204053213048285666198817795992662562062352859462810194071596309988498790888588139897496526728783467445185890955734505593693094274435232965470138142557029385027292972445750515946585200982610033149379989999454250805793354039407739690064959816617277184081762135758837507155239759397652122423513343301703605980189739195846607334147247604003045820870020175386352115974913231382935659248032311349920465166238592149416427713378945345902522388031322404609443559637377614865199430163138554433537654659266883910457808978590123546232325163560578224850539074703319044691487482241114735286377145774572129938163353884544905826132754010906079134890479836628196848775319442860979519907885758513663329536688746068332946451386435865055231636140971935798248011271710235259768459726173474698807713581705050121119673684914176313677248125536497155391113677308376386126373011818039587615391704350763625709982301059653087956063104304650371784319528013758955984372233814945099061553539614750066898934530322649260511400208431094909905237465277186969519478813432563294556048146490330245524473344899541624160649380250227499706390157643443284863927778018380189391890964862026086988953668130337940648162996171632798555350289857555017145415380189810915132909894092563710050007142022534921877886454453409963657772939378714466257350954326246622587997827486992397324217908155539465687065597081932142873205088482281079299371643954382153282031267817763637228608625487912962569984805271149500770599894311559536885733653535039604398393537248367175810294395983740211073887062027596621251646156650653577657823961928836739265270656852243131837256650831200608688029944020767185237330430490868363732787727390561177930883345621242263049379291871551482311885430341347178875956548154323912705958410611849363287061302884421921259142493615576887529981787825431036220956307599795626179320783135882029657179642360573470858275555670315021399308906826194565558938150628371751725326947694283863617935993259998048952846857447002992120415176196627773148508013731677371563779579344111347564990518779667193402673447281977548101639451652011772382114425744262748891415434493066447219095142142785390125662015350576913379876011182826945723371885302782706488560402751936718735601169408502760989528658270648888642805424974267217541728427677956863666136718465712088055066482946190004139465256298365133540682657817667117696276714018453670240693459586691870389677316428060472276643555830149098747407218104087412351091623088889284598715117887048690520133002268610369233887952947811824553027112287593331045255736517619101359555879516505373397064853384099027311191931770467964214944183686399435820637928360610905274699059051927399313069037147701858025287024650207302522956851543389165192544343797653000617678799535375419349450014740856793091760666955708935477266169309509775832805534950227308903808384613955750457323445982942733033475173057498612933601887898621472208635298926516737110182801752590081896993899762917438600850623821228021593023838770135965840538650939089894787695083463990698095556122281031640626921141707664859062404993803886216033920429781447243145735825832912540020352557850706034831138182735604351158483829510872266558030021650369879089871511131281517207943256843132359029587986222960494983222079491542519174402357523615183967852171362638163199655459821145015399574920796685186928917534303643206580002232611579040777352862389555238413924940781552098362409025963359323426586816572807410002871102839108702724134988556195455725959369339367278445024122809853268448129801688664411697273367912151201850090869391524181275087280224867843768173013207483421681816478023714923609457516367374105625557459231307102783697980293575173603295512900541318936997490712966737117083423808105945207177175082332608410011750731689603540273478656101680222886345280365510563157498850630699105241678921790540799756940607167460868222487159302624766480876692018216960133317368983229750348044506186526375954469865884817025088527567813527347876283966414175574456829840102164436546844624445225196221321216158114228968208250870712029679650678001179601880966555930497444205041632884950243759716081781476304037030283947117515901843742639405449407220970232889987250647310434935755356423504574626779680324517945603517054556249597655921680205482951241195437192105142345023723542327902358795848694580980276066066023901375416284608733334130678013290355503944178222187909260115734799629480715731327357245038637079164417129273554368277787365822918779038469906072644562203160765284413249270615185885380048605093239781470552747200699126525164670858448265536181567071843476723982511710831489136381766834008523835426525712840105226914755052174578877470674565481616962180597993830360706256536691533499994197544048744367076208932375144541376908355777166508594261012948532035044746062861055826934875387946966372940220681948473827765298477179757143393399336327114102165830400900546234524124441567016228247072423871870677359558273748841086598434025474859912214116764666999176153943187321402622947743412529976024535855407223709518343795503990012222862098309088053061157783600450033336045986989798845170722605213878990510579149395950575245984829715360826457347607216956889902596008635725396002412021439472829157146772816050217836037085063865908683710702530636709305646132460291767355678481598148159647226285557900966150528876869157369715030868570284174391948384132456385956280806266519117110057305287698228866889425692184406791793268892769902903971097713295521516456671384587638652207178143858642394162980343050573482999155444977579911751422268596356411996237534632481284961394731524683625452319040930941886184881931024133464985827145023211823567472983835261686950491923077016255968960235322158718756491379562751669326606691403008023103189190166999628363171720118808899458463577316184700703661148854043519790454375419086055509864116718518846379224559939358413917220770074883793979520795578801564875783497377655693316125012105665792107242164459245048603599992914494384242274466915498569279578240493755557232897146882491176668659485545582429458784058163898650256040298165575741316070702027474395887725678852624666658522280006504508534839641256107184514501763870740952237525901184594084205803679871256150315332827815618048606358286424110429527969700398477817457946632611953244188878167715198923514385809378164694068568682057651640639418785605676573844025798718635879541905858652015786701959665382472245339473214303707867831906587807163828168223215528471937957449262980495264004043776433848418342438071334834791136379860406873229853820895009099178073531305897301362911271554534650111129539869899218779237429981619403525613408253534993467979795742687914517692714426645057031202332711806128431710905381666413102111611236905132131705248842247046059606700431368292930286021985096614095984500069102982632851593060326033458862457380464215256705796301635794323679082882229554855622936683277423607941841955312294434318146199224327278521075066614822256998985541230630993125307644258218873267719635170346838762853163773844424696420467589510905243185961132560260893775255294833762986160635597444356342984690552541965786796478758453689197275075824077745585747529914963987046922783918312192918299288586933026580192136351194426307476496936291929496920261279809413309647708385247089064877666174148654469874044274592123247665074656862061492352631301115931752689719010444578677732213003853482709303211827197515783259189013992916756150524870307351752258028115012855652297885532508962496436791878459534602622392038873296643726318102282475426389437273265256525968819006764537324458565314490138714364908329710892394041989614884770713997415803484855515796025453438462920233261355993539070918952545948021126702210319836718536755920682786940835601420658422879142021406855425003217657583314248375639629301746424001165027742599795379104382322569322265413223582475733422154630360566791926784435807961659527624478965209078239500558838670583614153739326352759875750131618626081823282916362931626156733572736845137453819251387615834670278694182592376600393104137269816706898085947388007076236787680486400572478159410070875399192339553209369891145705241108053685433978759478453029905653823177115198129617987696539599878706440037078526806664483996659972803142829345497111333698293174112978427682965014500767259157022313162906985398856320719479248763506050110468482606391801060335009641382919634328445013267634066477900640624546460699123181957765044129753041824613671070581285534517283639364990871260800739937448520726899742099638006622157481029035542666589809284507947996645493153316248476748233939720149701201373856948334272420014009791442023476068302004537173101997236622396247885138856318629686747122012456449976226775687854101184521544715309247238340150994966448071042765159997686580068090259719128335576100415132941142945234522537957808728542673497436386343075268146228548407698494461339681550247004320376674721534947614288242025320906792708677229408764597377936434497589450482133580704870002966323110903218012112468867114131911998720074568628323919970272480346587905266633715820251594271963710660172537380364906815552575362680269853489475089461038922269922891445212750642918717982049558211032125769240502333561120928751453976542490172299090650607098387020718297443138253855682838184358741607579839382339734936184377724419520789548747319953220248554679954752456448484295110824841572794673030623665047765458457196229995360474161481175086257991431876561645505189694450872657656194892765937790559118430938535201197526224679692685505512130528493954133797043579796021386376096254311914884079348195490853604989771983311437785322406532967281352732746755567069328446814699685616571154033632009977267094791550090551192938421679713211244980937207334253024809999825755693294065613870137105682789401324370883327371794725740393262247501578591360971291125263386717528916034003301595815381728013669636758080122036086505880322754538939105605298808614250883135722325194508762415478551880424382639527551405545909729163779940697915146102107641015237160501163710455099111290657430290064686381072016258196783669387825080832428303250474186910358415765892014792410615272972155030509499716579226901942858699002823777029240729235393685536300163318675150158741040846386208436933989625037588699236718242144460851037777740057107072618518995363921189386994764708975627985645738105266353489973969888683054183718170927389102407718052732489536045225930921777935490891949376758542324007831437868589960677456199833364336258832268335247161822648253776028043759710865063425817212340851095382786371457487068102470215903162441385126001365710880901422516260209483845569874690077033023699940652923576122674168363024863624548514999785117268752038275106080215178693398986402004907598515250164985407254374219207687588314040481442215370247174265165583918383026111702568200790096762871405787049734340231705208577392254081057814974873773820808398889798248860846955417396858744227368760342687271231592933298580498902762107709498144346730093540818926094904689306113962588823199956134527491406765946665408909415291705455735296424187259453417921011488763168275869337567709735121267517214330843796115417802155895167853478634250236621917516966699795092303623267001552967003853760029259189816206904437620814998008231899273344207084057031026324004234577553691113592239411595952621294870248831689718056716004211103007295195907347603131052676692326583216263813748298781724138005542213965797800061305288425219174066899697424058624295995260960910170690483557875476006683628030287744307503610493617829477020268067227809184696598270186375742862502574106351661883286796683778831894776590962039136067822484701570552474879520681970866352556342247046430267767097075076122633349413086648400131227803787285252573087987778563644011147524542814464595348748283074493531539662689577647712285785838540036679324039412229272700421855587373490503135560767791753338515542422480460792966827961679200215693591140574382663176569013197125481847416433846813763426719068294863679723037332484834608699479384234903014019114566091103723233630743933083678993009749601345366908097337494964348944191142852072971872760450745743895211583485344177683462951435646611034530264848308664355511100177347482435778813937079168679440120544259510112841201968938118322412374410579461456054072741247964970669858396941728021806397504145606300171565028414283326136061087051777708875861727339139421181632109435414303628353319237991605904879778008086578123188275057165264953627022413415155053633622398690805830949164326414401059129273027877132741592780581593370407170122631229213621623871136004562631217952966420624030411224128373453892071304904093593708902595394950404424010195104480945093398701212581196387895709596718786642934973547978745250439395681026539780466443705796433506918465087379752299891693045589259579083372711523640363784379637712159943547902586142920724928827885617086379736972582861390912088368011895258514777408140580033439361093247465428214861634973956747217175422392191971376469499410668733844350329997858005269004241032313392323642578728734717044535294259119085178496530172185816272292408659074324194986419705458572855109615962035417403875519681954676469922888038134741028116272644243465791162837258887346404563263012743690002622305830736781540294475240724170362470133692884988543973558952428468876797978864575647251031061777701027654552119218970678425507248836335104028158259101733799844589753923716689508391681308579230807736911935279375994318731630647269922460806979300324687573118504437972892611342092325119778111388594219064939687030887211890307519875706052693181908794854926412162942822311775689320266895094609902170784546038103177211490425899477846638498478082978757164770439575008257305130193010277943672406237301175294993194264978834097482174602177067777101903093313419245915366476182544954209732244853426258836332140240664476437641175518212370710540016925018097000655909648635668343139555636096196249214506687982098599454032333288479340767300688353127917351446530956488842170668591150863793066975729526329039153600399301829494414894822516882381328124179143040350065345846131515813712456874548979126558475806375698099844639635572160879646954201102728238303072628881694402802075887716419263557625626286191012794032952160579052537558419101113195604551251576896454564851359182155890209109322475704563164890000648704629367295465015186041746581950279260150426041685325816925999579353743697277580672849123458652369948654088909871505624220759902295284459929213507396088277957476235806550411438931348314642929673541507576171992296334481683449923374958355844039801178041264668588041558130997642055042712211868273840816642015580911168009365836760615416904861018912669579414907308224431562052772220744047574522387821032061835731825613325076186540269162200613470755335823514108029996324714553907011625227770524684223385204862105776211951371659479202069407710901710224131874084237084508916672970742764125041275647103079420241084025523183013583583640985120353509695377123226319901990160496199845238039654344486573027540588543755912640032355693187752548051630983630400496536753373723758782822066173164860295016898597583308639226553900053666499757290813665204460902959432455794732210486497930733811001949501860736090906600680723640000121759922218729071241896928352057576475626737998187590547473072199457138906205232885835878090967585448847182765929166133934518765954790249862213870248546304763297148585313365172677728655141108087273985217181970328408209612590294375096476798486015100854849451570392838559276008268748465896827511138100603190330574486818246697774811486744891078785957316517779749341656145069887797896750353378170917105915424250270558339244406877777431614312654200133492057688399902481013693846135498849593593938034707619043356338519607961613300606972482546833327052548464227480393848995950973991222420452549331500598778725704902690466549907892018188614032478971263341077374670348468576205298975457714600357781313720458938722756974644584753266767924842215009992169929708766756429304726512619383251354573197870737511911906552528906974997937845197654556417094415395147067446966494384947054490983990531036026339805748853845067247883297270824893838159343829833811369161140319401081964984012658674760340513373854921959034709312692449914211007447429990203561437498657642642038890851672397665852285544306037202343060089060327569311179729379557853219362333705794136634462741567293500084836501464451628512668468334160839257537038403821068588289685855896069820921014450452236663071844341477657217594266862475461348455887007947699710882740191575950650883318273039657893168381748452670329633081364950774012818933948215007672234035209265073132624517895450080327254928261004111621628439902971000653918693334455694555442558402128544422012087103882875358216713454738493246650778507983124753057565731675746960841741198887369476157790990630337267023280826833573924841265918229683338475430167954553721976900895973637830057587594331228700739708598573430950315163177290183244308362412852326084933646999694090891666841290928562174447581249516792216496738232718392751241717657695693797181238425444761960319002617221743448897473173719746115911665176428144701424543306632910797970319538416049561089092859233258269725160182025936098184304040728816844124459332236003152023301552350819505075944564882696141661369906872210328184937321839710050064068201543366401932054182176464483703770301621831405826564802530842306155807613657486169349509805184280116307551371655772614124909550198185209202615405116698075697916199071166622082089134917986405664895653026894457018744764435844251274880752068695559129659929137648790912449958836244720465513430981222217024852832098651169835404521164445430519648799070741742601784332214721902577035883041453347201474641264521988768307837853546271272010536163623557684826384438275879883631318159999980007934636722090956296036329278069924791463134665575190524740472752138613375632823470232387899884549493976430591003595779448547606308843392913180669414627654556393024532889747488198941041261936399022310207390030031191667815077622252333110441847465022033620155107221031017685736109668461769073188634966380782080249408265192441198974498572340164636859735533043719431980499895979484588904071041686619213352893898990748274311029565609011051165031513730967307487374289348656121871700207743940646065512291788563443988950423882021275409882398205869930613837991777401486193589643939859579010810058713875484885240958134283753033946962501837434744918698239171867303438788375934202125727808938155432440717424266947975063273141257405849429815394077720156411087108675892385993333056590761277185472987695101966458070098962967653459451172887091926848667689320384863431719595824322643597709358360377886622511974957674185299194382099247142233210345236074501147984985450499065857047993105962402094398388976534481837788861072909421841903234935604249907233794228129522907676407044872952996903581388775040745706041902416922217530179015085607914843463750738659275812495703310821544364040965854764428477432198452307037655480328538586292101897322764790530250743100260708183346541401949355970188813095742719838316345987440836893241935250345427349106040221613395732737262617744943668039289076815647807120522369943382829145804826973311484507848629270694058410002673701414102178814368825359915348373264568760698318504818223606680946289557054068840977495632662245265813991594977299682035269136322332700561976162236917667118613867848865167043751293009386206023969016161646848678493170690059602338862262446746589503066323623185180250267892369583740419557584023462924468060759947479256899328207548054230305119379913527993079746422007754674586247693520820715768611128392677683173942210209407329989032604604962231788512903894744689457897179111582411076487346197904396967112890133986543139942722311004038588883308652071913425947152902197725878538703588952773734175322073195090060250929395979660098246418294595380221786613447783221913601593827464275213810281954526300027751272522750477860999835901447955321585889235573832325303737206528064975710986497986048600864047449884566608272624314119157570768579198201275989162226915518216595373002505489762036814285519700051390717464590748693492876496191691303792314616132688011353845890138830796648285905506737732979315002511815711262457717683311990102726952595840741626285126007941332806973219155774402358584485574588365111861548680896416376616036755771753689262391403095148575511506213293162448371696119459980337753070299532891601071164661601950209986284766537931554344911846020600166682849049142980772404150143992091510679703097201051318426883762080798808678664186863850272027201325054856426782831664991371848365706042385614341511644485169967303057816750720206391702330724377607153168614792377916021195740484291216958034274569726718849860573066002267261482104855507501242373936059636190607789087639345067558063263051088545259630315562735726411664044012675399086010555141336616388373808280105125385295538434250395658997612387717685028495159160750056396551085169720037264700441647998036104356867039413083810664079346292250757818955746692090529575929052773375070305713469766199436097932564358500053991659629320388493914703162900670735574385836644623747641857960503178060408822323384766648755910672388699975500295185436849189244958378877494745906427507549580643186258937381547865101683196638109786942872628029148104992366247717543869579756425139089595205017008315065027528591329879465840121243912481615111908023796908668968557749561581831536855731461625593895203677825450273886870412467177000691400107267870123918543566369903631117526852270366334918374049291543646350549413491645570265433630716253154164679114838559218209232842219627440678728279566866145407882645475857940329700292178147730406264088854765691358806343258594829282603508344419109093350433279925193126557592012445051171183816982064875728375628469363241525129685876286372332212406421262432846549449194055626441608570965149274600518647015726197988039056146780223684423520128151700837844010328013712724395765001991942731732918923229821849298063422620147634323829213969788814429077907164309593088697135610558161340767092832007406164927253095230058119537443108290656418270361412876878395127846507597486007152784032271985115372736213234158520658172403089413731257424199130599146996827877124390032291776690625196376932198910282487541516128242891088933382781402045617830182519294980628491384409998571774146847903792027739058228269494208871535194973800620760406078633151487510924807934763783582230079678064242536907792079473595327874996416692477922660674450423019148410407134678424282406288762350331754219354743716017815656793412165293723660173432748179234430191701532426702407691410799858877275442186906146445106144194783219452305808139266718888242928884447796540516392887985948944443923189694581371674156148573976842378358255225406205977387684177074765353729612469519159341026388652938843891909753846052972694001671633183083143204885505218198162040660805926207200477009239074212891736625067461627217509026992378296137141828889357640291927535946109066687733684425965277098045119836181886787603107235294602164257115335831492450480279267730820300271828731853784654902623348305423555297516748583911850640146753303677649995907407260198550688072908863735969659235104146759071056274130440411020267358449280400857654474514145286686930908169968068627669713066010143027321436093469205642318501317831813491232273979660548329305627903488841008825915308775720974446159162002154317212671766258534807976544680137576660823816677383375552633178609973835892780949271809866410329714288922033731260166454483643170393872853440485991351514380381065304023958443887866177492093448915587681150232663600818011579481699299832873146404946693932565842360584820836790679463858895204515465002914871233155580099619221913120905098139877468837021364946094451109258845584613558849369165443934855692036233022717921771178019519591777774472935677280326924444607935360740335713879748822612067544379968163747580563642164136818139516096512105411380395951131254574294495461430373765473161934204142051552366588825678026710162778796698969241331306682401742541235865849569819364045300633179893705852304271515179515615946534400059792989258187218450709749021789166795207792046888345194772271213057169493422863186029511873842324446128520174998116542605958236900068562498602956740413618268090568811020470936742166298713833265982440849973810079438270967895253286143412089638323478512808504542018403544820817547293569218419972693128033828681651142735313189831547030802357592147278076519508670386655057716157397486281966190419444867645143038645668509359555389297440249397335526273013912026326164442284221053794988586337835168110489268351484893730247822593380335598826421158825807138253477731746228938805184232477491840640353909797576714973695607359320393093006090502373843318085268929950835633593342782751166470796640136268227099510006141017135478612964118309492560437234696434422903898354291290123436192762326498268192253227322039621531947932932067115730008810447080829555171778518687608730372732148212563702497313266261497781490220537710694632987759512683433863300463432930919066175570444760381239223966886869685864494182672267506669478497202927130099983550160716837021422171052573294273287150473394689525344095888047566829210704194284625331322243068030479583074714607877782355253433911733238793312301594028011128484023534651798150248390941996290421099091071635617714286246536393587223759613760259580129753727318439563877725296012205210308927683368092456366090514236346794656272936012862445556034857794392241892759053731842512549165914256074457863444503994971057156359878440599141733897191226245962205580494620003607584828100222500232057448322892370752760941144652006009146904234219697122861465321132636062646326194310258971946451937869600606977221660371869933529800451377654732429016286704672725804618204844703512466300700210329557315747004764064749758257106033909564320003077741435739001343968426323604776408492845959371959105067306567995489601074805732810599754704047300225308925277441851343528211441360956013375648247233699106268108532521056381529726602578577557680397947749515915548977350413772600618381280132332814556687192057409111582116728352865962163457306567956118619701059594637410170020792822865239690144132337811764731994527539986277972790853073539663875935624910268308433855169298694652779788231701755259001160727394876729588399215405428795297404366423740928956239961536710609658146872047654820062199470040715043241172536850395903642193326125150086171260438000604928352104102813688206439844247898327770320392086220578343958486665545139533448780497323575819515816821771108719077282007871442530749748113618849987421241734607358935074453489103072537833270117309590829479746063851100536820087208777108309153830915809283720611119840500502512610173734700610034695402889555475571778528482966911115439957928399896636266814364235427632829924811499062126775496154669858120160488503789301142645868622539857609553526237605747597477380709010250498375306100193584761955684063489555956102076731131084739773169046814979370174726113000900528564117573284747966896018940703663921990540508482362241423192733203355419451447627038192799676573536782637221053689468894701769015955139335326967667201172721588319544537785975595035295417735781665940619454292391915141769480921827065009960331628502875013067587526468565976765754362918878839067481891628527811180602362210947377490543283740858920087640180646366448056050591280033508089976737110192422859577271314652672825902103255300133578792090045888911803043935096327690444283319780893360023270004521196261790563292762032071708977439890351648463315338895613499831482795664569656531367041880014555651118595180779966761285773948389676593565036469021035342153490120495798250118654221395413332177823693471828050691015051495386273886624140839947160541209225802343399243933191603271879267048899134986371148571447123461663192435431880613706315342211011380735717959047264946680697023252156062228758731008828121906899302312389001998009438677237022009818948002689512183415901980552395242721163371525072911216155712897984533461610383861733164667702983799214592243194582908366508904395636349061642140570295586126647010202602050862042656554316446969275830676834637029954605718263729872314428383718425122868172383249168585444361159956732959464255154880034850062783395730276956548267566269395540066998031084079370207033763725890952837809938775013563949609998433563454858372968827404691749140572466834782439737400390802506999909144663191700904312221583202295038824133783088166700094612983062561018618013871835692189814064959700850382214375907042421182823588419468020339267312619546933279397187993888509408998228361452726883865679335782401351285772831515854685729934265209662235769525419636534702871507051035870171056534423074493233549341141463966354662725489106347791818277775722216061944879788436020923319727125175403973519581365909470793785651281586834623238518218082913614933203490577036835136428203514327273775847685894477044073208084020964565330460462598230967261318098277917879074738369356212677655554160465419956133217197346721795282844122408484551311136368539307923423208293461093814765698341306917404065046657475751951561784413524264571822994146433407392224345732437661803648509868911663602524370439462369907696338419410072085004086657267275923412815577393604826932076198206067779113755094017003582814966522295525113471025370451741424797853976353740964384295339739695871300351602031091906042540244449407986580505227064919599977432630022341892763028328309401743459664414613731402959829901867677715799444654494739437832751669068253896105388190742415625065264494606164202185429860273209689182367273567356528756207031884203116615668225304091371643023504886654074470448649884020167567721357587304244260374212376806651372076870543226287094576857354943762362628637610808289387057045453653080538236049898046827304861329261039615810633972810771180089025528905413597067530310505738940155938714873916660748356671112002592802200559201017024790863616536530564232340920996110986264331144415349682069291303385153125848717640029262215342585318670331271661092188774893879113120046877245799497550268633414947580906300787585103984509029691031176282904805945322792521853129662602470034336735308055224693529031266912712078553051758640618661618673234074221352811286303295759890276081939560049121752365687666168712103909397483726615307688882050720062168985726007845497202312502634517068181935763272254935741117090942820240757304034672909475337283049953864961698216702922124721580545392953160608895626517336550010671082781964671796322621732382582818482751053922938233537204685164327388906997334075132164466052741024868048939779325769096776429782343590035648009270816718610020943771620513964130528006049244804450615688952154796367397239102985170132703521695762911621553154732214596455466181192180440659912650174110807739652715199085221413838209280711551901850256852252539924010551014940565207859267110569283310762968828700740652774457953152193462952078385773710145760389980790269791339347992830149677505026702306415340032568987504259768791214050266816184731240852017159417780377113286843106199593597330536300204899527899493821546552987039568594118592669783394160776834219986332905861702592679861561662256549448206271986082469084877470516553806027916054978065279505424946770884173163758033799656984162112138752473715340708548446406767106443738510250128521206777375120540533057874844271854035839972767975157500883683976404196139507189373188156979385801425376281504329384085684232244998534992738112452047729593272137782642669089101131890438613523885470976273059298192185139630979465895768087319297702846884371078163646054091683532919014203074170304297376151326194094234054983285429257191295961163649176719759932810420680439479686215259744492453782699521171606696036702426957078188737289544710991611556628141508139967549837362606257103472560564285141998867909227645715534402246850243803167348713127802569049817563736263863097741976340030304326004438590776224192871432049415672090252432785364355111919391718323994344827226081466346411212515867691002819942501005826102013523000115898274210601611961481513364684009602650433927945271275406159839542013178460304960172981707730729254264977694140421074896909410814682512523170103583004417228294191110335677161428695682868577762579909311640188753328837551580445871989498922763808321812721809409354629508772835249388115899959835771496426303080481257067616464569764740710408826189695572490908890893576286471699950395873660694631528367077730035724616271986727199489092312791793597162620673360567581255333786802708198908861764319323981660151007914801539307003924057714288756828347306316829816503757741491442528315171807399614314575158512890666871539522656704605023789145953691598450219957443422378425873244263777052494206254133938493935145773065339392038823147684981218439945934851808176395414573392502839399714248991411867470173710010774612145819528857333110993152601297308422881846128020450940028501964838616722087118938426573877594809106438027581060355911975179825462435907293256317473603642429656133904670293019969846754489906252273412610682312520807407085279626768378089988245476326792584706098273006927257567543573758915601300397795895624190517073699118138109511187807674904078356310253679488317586042486634055242976116201354396259839690213337616043213371271025464510410464350677515482108400141956626754150610305152792040451464286004661547088415031196491481037037420625503417334642880476913926524467193573829252891202918947132720415559423298760975319323874662357642913128436199586043942319624303453420402482823268107993005204289496529366431133037719490153601306539680330427063393521432165835819491212197496706677648179824274082738710123931610083397609975296774128630664354388724380294426868193703987409091741237806269227191651490357243765723347601253271107436162235654926336799298124006542272886027294216354186282856798923328096370315333277088807964939965103471743487303177295869934963952151189266120419369572435223130332122472325355770649646786561907369347189866548159052121592011863129232304131740286282032360955049760136438761929916682845023162872555207931767513098982842846217402278337835105751455856292935148054255250566100355135450685697704150332371781364615749676814200639848278137398114400554405872030675074144769305627615429549972150187314052109174649910425400403268735489959091862855870651269878555090887576879492827178569813906820279188751260186287357876370671416717581500183659201440526920088617884178168455576049832690067979586391223931152947639717741622053792751611815733532724964315384890062152913733849570385860732436617528256834939702818433563928440017579400396409893400428461024381950393687992322678011602998201135281997394578360068369269707119901687086093971924226028866647445599488944737623215766965258496760838412481047750899062551984155309379535957438288085816777175210535053983864371769282717031999058062757637832408715114680741600477172207131607869236518807889158269669030706820338291658904343976971185770256988133979626447509539256097204135504147744022072105131303940185749725302525034510638001531388643833862848956207402157582925714214079945852395981690421584365744875928615268384449378050716588514590639497786097553248971793419670636235358183691249699402205465563692915601509840089115758112813395930934959622339440617144186366235521860465303299377265804915935243195798311820671079056300888977432546714572087256589837068893512641740280269050781163959895033754654038851145455291440025256437801830425782937986915344714901028102141390784868415888437365365424454073259882316995504934548072769453555442019416614612125070443302775974516196574967895579452359186769210674511129910576247504158682710354658580746682889262054177733031369577320685546654195636925744198140204331658735371321027838165627100458937202596602799442981156417448966463256469064436356027800977743027159931746841250441967814450495967515586676569589921896917898996728907324589646646215137711064795938702889249608626307992477008581109074037985500505547347562763653057582999300885926935928172813388815527355500269678328512955578004476574747161388029314337620535263168131866921400635074210968378563172889958712761478103877023767755652220524083456296734611730729247804772862434713282957056195482856938388117376399874721267041045202616747877536630614318718249385607174962052955856911402527502821635364520944618995528160534753915272190776232377829263906979258889522543291931753331523733916220353596157598239084233433604269876061970238493573962685768002479408473857957217556203188118131394190999682077845615462403352099756455032320882887102254277300961017953821560042494041484454209088376008786813900397273521220984377886785586768581762609896868042643692154956947577904212515542682694811992608212077132640197717509218409121211517863108322118809800167935354452231708780051358854464434106432308035413948106054054574175910885446504760749007233352449390524349186350934227316590208140057632709192038528222333920246784837005059298448430637542855546785098858891742630345822138261463397645570996941051522705234699030964218913587791411793909509782398081449872859840987086320123466285038901267022681051134314787249884064144134154128426692227249818977233428030702084740068006851421144121437397492459622351647146792533481500336170225470304767916850643116606972085950810637335137533891653559124952875036423031791450331012323933475016514741719391279823328498952464692736786833889378299200798950949600186088006014560182950014106025198448983436873780276662516085780595090383272175969041525485984169743750381540898072464569850398642273459436312869620919745624542579835280697299463800927522384220286226146509213152987685935645368124524035825485566861894186078121891235231916960777825790847348615607837367222783520126889396991003101722657860609936578318286126426709468598418556340424476341244053848511196258636589829554645924269744225738006477331628972082612694807819484582665281605659475430972207818410155811407638197771794706487274029838440324542575608553365754202178098389287697034531947692431197740065187781058497137547751804476323426776277202416095099503760837806399067309349265603544579170991387858166361358542044422569175467586842411645127923571962244629290094458585494048112747168285910070759857406203987210213911200991702327668072822273580970557991972672531984395482744783387711112611082827850684367962444608529807852421153275975039675867635387282305391839649159930997381838745966324129804190761237566827755585447142818726601018607069180114989186961546961722701022480733581346186600267320662025733356960190553347048405846875072156678258885570914781747106945619767673833881560494130072703334540422751638432536009095853183864736147138393599938104125423648884594610317199819780237567293018479004214641114239488804391098066465456797590931392931100870050724631395262696218484251350276693097131842747280670649519819190891087960752067470100895588671495372000317127543846798452892064179492278685556028935885958328423278644516587194661822519747754464825675292618907332725895468651559715811396547944701114596014665705557731678873060174331219398585902278815139311319811797861245463764043855240028571314365420330279987289758485288808846045734099771478494253136090121766023236085642430899030296885835481761816820765836771618051854085623880109480767591572950349789305606885938139201469647333105641413011695790629982612471911868467881812717940076671037839352990829137787521169783616668624093312566614079433578790596753265996671875471609029959884640872237368307053600330128248645080307453064427694631666265341652762529198461515050676814195814838773493347494101293179208024752115843084330514715194418038288532735868276526301037178979825308742887905588323209988919097757084867142084282085663942070765618241439609356022151477917057049742536668546927474426920894437414596023357549628862089344443443503633960567837020587054167481085583338461509943497662235969274083764488691025781750601729959889080719446184447636816958387692175591227780098063785578589238675430408623684492963239759910652816016777464304652772063296553998072179473089367512301927526609217682132249142229804699229939796258555235482423057967088237292478408870409770375509254601194814141510919761021697898767832338016264576004401825743355245233721561489598291440680080936587198587919915370986070800341831912323530551245693944511426716722040571926087006454451412072942179093913081765505240555832804902904823298718810153581503968645165956143515998762825416276140943478988439192839479803771223417730841475507559023675864204789586373120371135442934810050064892327588139468950340476293990969925896960809445436768798818508991270151790444176499841381102364436306440343701386998630669216041222835526170009311541511104245180333433247547709250419654480150171995231350073442328283657020325658922965953851213265149612607085276100831538695835302401044593609466479090222692438800456625807886327007233439229480127198312621015217896393059727720523432771027230612503146036452040613059439282928211751455281073446980822344856271739801888729095821290701460628229898546295647394824123098634086651071165972343039710616547207990254342913956779580796264488118718035884857370411794586881242605246375649791443671003509774420408117083095793045474150024758871305278002246846648392965776941633544694368149087076624905189517462263674605921088217053962950792013275962177231944316110119941909378166901422908977682888250903271115587892098558633005314086594969784110527940120095683158180631531985362767636173303033159938958305499887066935025522925333778805602586259563933155483094753010415235177221412797735064214327320460585599736657109115166541079817077774158986499518175196410933742897130821531446899550386602744157651595446986927250770651248632333205982586926952825878435167462128169459220351112236410986626125424119156941596681554257486149494862748120479716175214844952568797002776071753867447878884746901903485002812233151655121216456365994218750559404439407688519503142226753065531601542379864009836071917797806456018406302606209330508168653177830297405017948558510717403584288751246423356077059812075263847008641156895542429997280635752633173814086667201753582156129922109688961454220822784832870898065653428929876457352898559117103402632906903312478908417182078954306298950581881116722141581144875830291873919833194341823648951438951453476210937716367018978391023647855125668377452027006048723354780414391136074435555769360357298653257698354835868699382974834885613240793722610493225452532349105758006676922493354300355522892532324557406421538992491523267381925468561871110114613516626007395734755380728476696125617717887113522548336045652091398713080521224397858245598146863570191594001301229131508451402048936641019539410032088038213953196293005069173950599999121782513572703984742532766857498437845478432817167535870727482961033236875368664541892787858538175043771899277391287827253992573268052731779688687961894842434300522567342472925920643282685565670632306117959974618670424642130984142241137956366000650158134337384545914692014352591382058435352045387739754357216406165136578022412802692942509122121810654727379935835939990513289761797518285619724889316484134224833385926655531851637322164386325322283054673184082928247603771414875893781865168346013418714153668932386932789176182908253699414728222458276167775161296052001091329652011809793049790846238284521468102618489743239265485621953977200076206803699695842835263611332589193239882277845948375874825749834648818731868146189519704750944890648354441097430028689030177346804711676053340514220455880906790924826007342904088785830472598439458158190525621047803798874840986686643134945247737292038759132503202453900474318412945266669532894587269570726294921243335202261857331007822229697997504833245200955467132634629049923778982086271761957989068060855318298548932953447438699176843069712455022324963940983037999754572432554111370923731064301595973055611541288353287636689261811539686592036593839849747827705509635690657662055080570305783491052726811621225582170492318564043276084975779761228813306188810465682494420619418386227238645865131876744691362675590584197332217822894342621869560851616952189738828752888153597369075126606623028529357004078907874780857364529955377848173966761317464076980209219167869370742550889853937463806936384494345714909673438447316016455540097089515024542472728174155612072450093293227619067715195812360109870880183074220301529464908126646936930208979792261263499920854544172320880886505292982193858161218515888596224206593052232475245591408571752864339558628627090136103638310710119315127393081913596012117136378414063439408456601277881731652879186835641028344161675373922868613217565125059588328582343871504089792612559904602867785573623750025209857533797524648262086659462711749649842024582522239262199731893484218485037632379514990180207729647365379664085626835657488479828620369121496414208949487993756827090352332047680053029357686956828772826214938440135703259131289571973510001693557746921508379693900916122083491159731883952176422237617951113879434055505171572029781024663642355971784170830922792805276764131862701570730890221289275161132103132473757418934196406060108609378948031687696511197188426351041016446722600478293694787470630504758271864977538817512168870778897463899592077952364273147392828203581499381747189111680534574160200589942417147411152856072484029639328256336302486986004472096717790122357030458773373105706550141783748660676617057273058188034374840985917256261593516510926716652628805953954388101420410485841533349438859293176597048921826779025263745536735055293307515692598833075702518224523247630621349860498101852876364883950574137230139883407628450467809027848275182318245335434554622636305406447228572212845953575918609591385808306624445446618028887992727261035144456920025633841532108699584348755279310141085473997913816066559826020382263265604686606830316458360614882437431808621077059066520865856570959928103517937623770102560390368923910579977371757883534016405477410731802382315939847748679509523301196487964036415604747110040766677512562306650391777136127177788776697466020089883887419343262994017427993962186742127889566343811200108236314713733700486493118795224198501520877790570241989716489683043938110986270548295253805734121018183701258087651543043995529357109036149892489746357621385486031237914370958335376330251747315747499418454807491638552154982146335056328363817473915948016822306974317539166661336449112157835213884263010450096288002571498498288370173930206337240942884209370446090437217907215381220321635690310013054802755634648880297261117214353542737508464725795648666872287516383347571587203913025267786775514564801766067423545162420336397035023266438472083150894052489507702808580533981639623650312978884025342633270658531438053428482794589944536449109180139102332856733933333259117427694509093015767121968395310258394245467848156438567420489752573483774494971909440931127335562842597098412124167814398716218214424552783223302812023826224430513513540863140701581536373713966466157777062839754876421849167062685308135730793258802639067399077684301331391470155967341198517716823918969136558781593674183168450084621797829169026294067333565206642911923946739922068249276948810682926890630732917413981238762212084434184850782378404593947724302401206418348038906638818987211205336068440787378231501993364011627354953301069629782078455407225273937989791866729949830561285284215129983682417928412828331078197003764993976272897990586190349199363991874374989544134331526788930288224140564913780704410936066034896951743541504007405509498067988279643306447210403509344634320763899460501695570004913167693726170509093146410251180343906965292311641771966237280034425164484241439762529260486819705059763036431595811596154139602524935334897306112907314624603382431808844448097746545692852692588736480346376297204693906775692670508590795124322471309714721192191949005560613276233292495077651314256433974735026932092633847747407077624712873283504595605373705994195522452534526649708304379144361566640986883147669380237589073874938690511852543992520903343252666418431123701545848161869433888008976420807926975228912305010433431898603630366274201413712068372252798265829657705328872008791338472706537317185697796333950998742823813987269560052000560916008308877587280396924758512522285340565441697300749325453164825064709596561413252051451953604955216224786561507896473891487561828094837903054563393154113174973995945727838192729636852150059843934863394284622362107379923621004327240791911104482472011866711779866091010302674772264690411053286307382419023975297341250353278619277842645229642016325757385609486633949616873392137219688431769353277110488933522641828855941245902998514049862763889666120098239345841054701090825424291314637335640295313236536547200176738359412350676723446928132583222728153635432721759585470308828050484729035715065553311838792801227542989293838528941132741414158907337977551939416335946114705289175276627799704288692631842241500982931035491801238982605187414856486951108601481494340682446856635123822990000444178369086009332368662706341389097690584938776802448644649137289544348026012104714602291584443601204917988091170494752286973275867186225341465397708545416548264426005422519968550305003282117586721176357909451238083346893892537013124228201326733999096215605560729297509849113990514384029604145713281974640187891899670589967886437705361686677177298597438739028275637436891813764215689598809729770798043317319471755993239321484060341153517383646451846741918261832577344806173862348453876059512977473001919853733701739795323190046799461272733493322759901193312681689770876957919728204627406749974411820217865622256153986731806557691993869118524175071165607387986767008075685296161947145597738638516482268866902782476182294149977207247673207608448782045130310346300679626475840216866269582101855534056360729419384281749562637101132977210256988511719700590833476535447900483742549059928234365774996252923955472361234282803928630687173538737733655108943836292881138759529696094410346206832184768046451950433697662545563283836962292469830880312005258892494174164226692475279046098219879711395151310306450954437792322016565837420728359003820841646174251430052610293133869274374004286995613076945456878283788234082846661579470475246485917165549405520818165570074758361064802726653793536572528490706935998227927042930956115524566273060507571359831271363808765824922092957063290430128519117508833592144925254065979059952826732860458314229456954222480974442387492309997680301656736155370288930115156801309274057226690096610477202704582037038441484372910023458330494128954125151493844359062926054679593564700530471386478815891382885135559384483701845580701030217081729904711511770871121578227673718630759766888012620178062945996339993549431528215447478647970951748117941562880271954562881416543894573365180790355868268098364418145115071249869377129787639485368142179938390059080344769135671413103190346137941750600979700427114181775030315551503624702876592585057388299729614459867002809729728054024832485463253704127502543627819758852572983377653730822982269411327330145596154587131854926418496146389951468851118785917264934930281217121877512074790604561790642061044256868830561462737749499016430385466308098313864281303073824067334716188693767134196012740402843212267789447506679026067594282066797009388192480644998839907817220843620947721587184649707018606852887231295758457542192670958936715922788118280069432253180765296735015648090453392346264198360429093610851958715442344350002740675664304062231650789836517752034911984751973254334765513066612525157026897985922130156711213255906986173969215762843997733739685652709137723448146794556025839827245690425199071655553882906761152355032156380566974934401965960493710237876156085558512294772318425837673664514000444055911609929021739039968151674467843948547395694567758380891169725981447370552809758962440811050649869055715232100014115493397841866693815580273395906953634975667909383936955018910320769725608569702581514837714390839108797210592247655538578795536723449139747377674056338473985370415435448095429384284579753004798808701438185199173498635328074232569319147657989852401016141957802148125848021336361011022394928291103722123846266180856515499412999134224236526549110922827698968928077083733890643134465769011453427832566911595148528611573624587451749013126885210726351653701052801408399202608314982443438978302718991442935176161870243932978633496237753216744700388166276571300725823759790543161739937250388898193494675306557116700805160229512249510447849341018864189947260315399600396415413135024529645170714311595720969255183246453777669311814862530093356337935057307963842762997133724873616005709846733124568558701931439484710463555461287959306697942812514896833486890526366166540491573690233173159498868079083269487993438438284772382041532978834210806522283575013102431731161153203802087582432920625194497028908986060387126000061791446441617733159417135325074332211509105743618899255321124952925830203800530536033478737499931680427233182048127360827434946945713435910352932890025808858316855147268401146578894283490661044865978097833923879934535854911673991406982647551264597007377819150834654398759612622269492347176110094033947268589452558436450519963676222069437810481144764005477774183018053964167578680091863843014550378733736810783803137087891782175142240212803722880057875225249809230639867255297888122630219861704633509805353977711305131640017915235997012782646262456803657878771197581415699044552559287235318081933078966068038950422132245092104387299744328957682070375937718594216628389297202794151960237197806223156578141896363145709064702447947933499812911270579887660859192374446526870910508359328548247810297142104169217641476295476723099524320957662341288491749393246130659962911308584533719670920289135415428476785253444672750534147698696359937799712654084286204431675383529761910921673936742512455267846316522310038696525329360854567830082222451866330895744909588893642554457623188130233084941261643502566425932703612134706664436342455269833723601007508477347160029856451115435823646595135046948671961192349354575108860448833252344940977429737725577046882794745174289927615390892005451089658844522391162464352640256071348091003193304233020641974419778295606060179630718567179654478791263417921271000541576808588274053909705839000697611118569155670121933097090892745559430116553628114667587017259397827393671964552126582757014868003055412063457913701336867293976599744441652684895328080051918710741293376122133373209078604629695233362309612949179761048436764204520418923915589840746718213782629138961813332726474333447644049774772132903602979925431524540436792041381170184339816060860372013114854101171155232077827154906669237180786702869126680381310076924581015189573456960922632147730201383280557670071950754232359831744078807035080370755396973067721507373150480256657541066943760443370071716888469355942102293950424450211502107123595698801734762378893543592142670571162760143465402167356964421622431373169818019104116497418619759060401747225947437946394180282775341378543605837655296515906374752653523489121585390583140321907745454507825185417722288074785085688005977139922287289707870069043775282767788083714320635938886945706604386622586378547997026567965226249382452673541762671328944788056772502865755938220877577737155970490635465692891367232274201978979957474117716262564448934093410795381490354183169611609739640626775489311677452240127851674592300270196790687718421896702155956867892926664108341178753617784574004611275799319313525837644826135590968874006714242698975641705380603644257342062423675882443214696508051167265474276486609001700339114975521450606777733154576084939106503887133391814767399093448983039641266735879898977571649317045373730957622999427842208399452243867880269576676911102760294436353152691563731193619819013207212313750867852894704391638565848235220451964173129148847904088974367438836083448831721501710515139878061617870515078043376777036823823749108180665943118787872764736075629804194561908979029727278127332809747996376338408520662465804391783345387164270499825264886721123090194065948049131677776364634149758444929877936031093578940409429656931270472133242251034286272765572874010814343143077630694331505593590792836415121027213662029238200573892277131084765274528319496828643386756134680175993599082695530202853011015976723189688007548307566540432691888674567305232477199961759082130099870099153813107246571531076576178584783363593137479100206990651962828583559867370528651680028722098981821153457434222717447516567373387547151402748178326610712014579933123141426877206065957995034628693003365858597543102187036681221099382617832666529470881712954021794853829475380584965189637722786281126845424199881267751623936510137330209286004452265558674098901386415105265623697789163476661308504334636135744665038663522758634129396564838984188036720556628471037324377534131863107746848982859617884045176302377228147923453637788107059359408631104534026964763723988922943788424785190931147802315828344583049885088765427471618430018376840125682827362776383130278699260896665034789015655966500775818643158142069537096115834090024473194371328696970783986355176679336696693024907273372562220278412513162594921107716860619546558573515769752239782212000554599884964390011232604071604476546556243609634516059280599142241177978786829442768526824195002004194426813323800934376743027692381825476052640057980273844086555156224310962848999556661110560698602375842709093859829362485134396650220731534141274391645598214093694326959183075700109070785905228235857927381834014398189179678454894783758964351179201165438534581065032984818929798650444777267681702093415976520254696487035579940069077987232678678047687195481578336390118730673104274761427097593686886286490909586317627335084402212846064124027480972137353782189285355689318800073320967164214986959933952811380295812643081243221448110590667332152169345264897884083370550630005234744105326734769427089292165356391984493760449786353543587211069383378670030997300071065180436752673907561840437494307509962836489814574318458515153727180412319311565774459058274694323344373041271825991025378864060056936675942779512004920184390242875002722401535125460345266486852121255663947865112349544202369132625020950506236039206302386810989384879835168088589754056518859457618797864596965250752738581424656555376369375337815690025951574867055625268110913817900267799301657752619336513803087028640970023695449598568421946499935124719152021558990671029455679246276729684825420206373562194551982795056296354046923130388745748502843338920336839543984654038134958336450318966423373582593313894827613598902719636531236798224080756189224365522888106348451262431471491171567325411616842523186909080595348703823351244095379416295250771373071045349303084903859886694417568549547371267011246055240466537079565331708354256260590535276799905093902192474289162788953465506767928183648285964692907490424229585327827743096482757604379614171519461730864352823700155188116966691209701124635968165987636902766591721837297940598311228331239831494150884331763876051005546315069920993988743680150890854600316838154494727099322786155353099889811870319330478758954275519748683776551701088224654280003104389728502965344227864870530822181975124499521686607969909891170428146987695946315134180519145857485555056332714254498849599715170357426513662305770579069457109024739233176672839554122840866637145460712114535298496298850988751795686144225169615151315698162663082075155822678832627543900226536117349321859445384349498892507510549508436775150354006554393008602579207852264921732412104150355152472559709722465669161037723311455489692531867216986555960568248774317421419800963009663938729570082662151817741480159704949991820587975080999320707102795260545972449198434269050013028010259630623447165355141541512694238149752935904473335550389579079592381562044246020787312688881208605513721764881632669835847556614900079372243872658335025121835331535482486010880520813702810999588302739964075548875870378792311584391886726475853263727077619457497492032487036405042275724128158209581130130630640408984801313692912917330919336584738530852460374196326576830438927756235386532113590126750868014484982718102332376254775001441101565803357688459007971479944353052770496455406402130754862790937184032219619328423241908399324479151594839897110029032884767484607530580150803646505444626815871969893797221307516252329876607881189297377827933682197744167324916721155231693790324823793338900366716934285157136950392132596316291278885322461765398378314125830777991364305982816487087425881769624694557616122459708993259308072515102317779181353060048586152003709633180522102962712577196378460570533419817621275493883435954169097696095457936849055630584250018646478973691746495576475962634651574333135128017692415049037920549668761039525472434427796877856409031246054370334709050151480212568272754343159919932871198569629961347400472818630571489810136082847730481636680745122274796020197662563846878687126697331243840913916900466803549442020183601479484922555635912247710791397372635189710514503632604761376028037874336148976690511920774970652269080205227772553691937647327078749748547425803320538549087639675490116521818359380585227206406823871291819288183296733380351851263502383177074572337199553211707249527518327881224249038512249393664874385658536874189672085940618759206645641571657982771009223820488899548699375035825711967802920638332051132176710483948196562135172033716893068890160351480580150259628650391398189389561302008558541851969425904909163674118604065586295071881661983559820353813243343481019956641618428131328533567742013929915819583805884893339514004722328648740385144544062374291383017795043002347682874421820430670620667022813119752812010210487698742797001344317376050170193616185809278542879527088936833163486179215149242355263070965706782811776632176158137342688233186783943185762665610749428007583439198095137067689395679251670355233429486418802380676185466493012807736603924598869121544381363768100230562153722292064249377804589292213555547617296775890106199682015048274015079406539573188410796263252066954326051209697771193160954795967443014602751301260068365315356342504471847300912500796791547891924801565401691605137106036371755555801348545327285032562551135845902486573117239935777710373572019520303758057054474213379975030919235175260657451201007844968523301755264808400744986931794168947705975302823586485056933863852760248560983973526852261585260741395412453085121792923330326170910732232706290634249807679095436117152236350032074289171106859175373997643542830706392959426926105361553270998405150854946776765873412932363302751166544234407640990083297704927567615117814149972134563507667214550450561440495321933707809410083501232163273724792308641205574795990939499667534597956786129856455684940024636875535566837146164560261859936144918434099385689614831013644174321237365939645593050827488127559738300023556421596890310939323238477832120197706056143764753761866317316472688212320604009379145592374430395458028001442240815867182289763283662584955321843173410468315675680207275704773803500816093787637031940442456052182272904438916397492505335526434133471154559983302006382794962910490895300337646564580707062630699178385626577418425957197042301593020030629484499157394008083264963665524829845433404800753603187489067382543636410289316862221857125334802602288368779996200115627535812661981218153354417242803947967281952902145597278810399913742043414823662045398199808800448282728776022479455833589940660725592075524305844303575429587608448748674169371175361801707117016036415513659769825839933813044547859060676324887893431069086226913486772195031638740466681950122449829513495391454434544843655462726757209706004987690828232717302966336419530200460943471033371300537988113834572800783522466269181920351971169659847465793357378035390693322643292022599523426251223964408925920179042532317797455998841014958645200599729966160042842952647567992157574103712621626076851152307689716082328875935610671816605201494236067472749090624192556294392988286329559813347007679063610634045438365058332889423123350422297584659955598380283150738220619310159676403779604231758057678200240235423917145258034389419323417721045712360440110134724917894778606020442610998890996548157609754682121755833500414834812444094201992607905257428541487146579903149648004203559534741516613254423506133835635816954030019733016899798101793983018667351367757215224734999941146322942570669912552040285465294924704257774009128618989315357037978638516442882224906869735341967909152597088550384948805367657525306959256857063490361433954783886462994677670605162007594513393963207330945318821766567821465189239535133605402832702458953995038743844529919097114313603513041137307377059257512583181312902766557635874052871974854617362232411318113403368372099793006918098237887663321859329875152523754139881503543378717554380168697236824511570623973341937569639421277292495800421701668277412561272910965795200711758283084921828657471625357256528150472879487955238305757739780391446525731307179084535015348348113165856820200169737373581118024401270746286162932179661909249049940220859725701547140938634980584755520915054770326835780576001315701727959160763850198728275743297854695280471539861793307071151823912835876744740759853161737715021061404517418056417819469233971954713815912920114573048604047082403922940424542821638509404944398955956107671745336498718020277936875485927549458064354471319351895305624285568483652623948557902544604901212057452370377717197632578988815515898103849135552185667661954260416219238102274827956720589467044627625353874907052666470322323267195514051102480337346769961444641105131538593141670760038377886510395531015360589183138972657605408260529262812013752897900410463088439802595662764616959504010932920449260427322078401980990589052963441394091799886616794737588888480189542699936262873198366085685462320918669416095305841736980328995472117924576968678596981930641565541596475843178552854160242068308537201859016434671856915322467813823154138962390307192041527560857448927325826215666859715762508020917101363998423802058345381031575905185789145498718014428105109828577157213826052236846068388790249749471924310398276093071276539355285670617188814837211800291239186164102447588044321699426853988361153830871794767706482073552126513246636260338068648857729067146444888108908607392185442259944434077336359672382031708624147061586573070488497923036497295760004766402347075680858448281500334919956675719438940047355993956624514196829545168977227346232094463197755764602261677077973404938416593862481522531954060910113103802263926101867655919636065015400796187052278231455537878880445436118167642307272565803928523336404825009348404543496152002163607848432724708389106857141759371938207326795938631191047383560460953059598767140741153903006170101412979910310234442127099364202650187298609982028928194117825335329649564342377744242378372863381621215360621000142208010520092530523956079859515090288692164057246469907180409808143702886234554795353481951985844744372096755706933762334319488508401816454084466417964127484471949190217145187617928253741424987151618635887396879104769914092197252281281860970167543042761810513883154302418817126099845472411389182100690071247372056765091872783717042107340548961918441276994670713244492315212206185448518069195282028071737156189052709493442898388439848075946642302504859918638454055510051391580075968109903155612478767212798648352559823396897408398062144398198977035556245218832517111609476795448191195923470787530950319030871878962825610666448088827046425467178309569912091923618206903307796112270467700620979342159700575718271493164062167364540899912240138470617832652356977040799448044580913235028621744521749010527754733974076381988604468094031178187956236014100092212797426533696044345790235824753510228506321351680598007921412974864886994153674106720657571095038535660704234290527701715185102473436487990582749220739674832317780904495140481441308290107899875663882493103949882247290005927813146600162559588283934839783307365532072043381526294843046929487511195842508136289781481332568099386313236376899043607947724335992866372934437387636115347868596361264835969326907121201180483044638634793954519046262321573316595641833235942308014220084657585981385885751372455721063675465399239431189769720675964338454372698499124422997221216703408628116579052920690377375111756756281148709871493517692734837845877586715341579765109031909061026554679228496642242840617737001893924126724709841344010132374304721871389091222262611649245253362503590690186567069700116899774770103843947158341039905561414859749762515554502168198035937655135864979851394669863084006771474589889308769534280760077782913397674529912820789536049783177318378531529411071696684683800835737391444374999314859376319821308240919623539635108476456764897690061445777309975144047624533460103190947884301621923620194402541807260857753365375373105905270594125054343162264612278157057561691941741199157443090327736905734484985649840504024829280518440325903387764069378156365253103088132032972485653834815308459461682855971659629556901461368034122073571047298575217574001125667231477173109544839784139712965261400283574579942534068867206864701289029548790979994167749465344120993447591872585925742487451857970881585563022413521160907075490216599571366182184306473414824030630349602779790799731155827572202176723105041718724240743946903390296786462696004466922505409816285180314827107389032051266838251391041750770258598874415590408625706004181117080744368464297301605852342731370791308795511098704972279404193841058200933646188349528278085578163826022478907993909487244040030966601482644794636628986357181923183717891994567666530697946688401148929494963380779533263673902778184564483244227014219609702433897008728385399774834419823829858205714702025430737440179730293483464146236861523280103919170885345939187615498701273223957938811778880315375733797368378473875107712139317775081516039950026156006891656372365086241137701398657456842832835387502583957480579745758865305500052687191372687406090723267465299541338450348008205197210785163091686984672682842112804694686724635681086408959049420606027809520909476298839175036169542352403896997335029116263956051289695130843931274197497787015511874590948990483138804566653477174407024692789974245191646031975801632373877618170755450291435582720730317331480860088174154930429797385189076555425653353671463868726980650582490408868664391841583759783777746791822877743287440172084111010052982544390741861595148798326717512743688655832396010190617967622277831302045283656635423637631327701071149822350748702929463908005483343539167541268316903163147901288454448761820607163389341018404696674476690030974563675308947122320586912492842767238887977661047595288694409553544151202826568696682923221069388669852436778730393833418876076610858111907271581758148316869422937780106500591115591348003556622037627819330565858104619252695396931830874877643989933364403016178521443897214226626957334883956112432829521132536783836077607203427250559150744453212577472545652371666925887312122026928701475181329684129467758090970602291267052972299838594268219635900532818992435593237111339653926529437763045787392892231954582922878600004734782121650487276034033923731189556560144419619101606958364989706090778468620991157296272174476272504596239805750029162868740461649029535863879555943492032856635183316236683227067727078499092643066620170532492121442177643428991829185284401346214307979245415492381385746013343911931136142006757053711880152104699987841761607868536086908627763445231024466141345154898400616567816464537110095884651870399327547828100350253792966106344085609635024330361122782716570275512814955377967352306587050090413548726568888055006262496142561221123063269005541656565012807688135921565903855623634428393922871578838100090192839505224883137489120946991895659895756568769421128772747298026288967779478940554823938764952773715175989936205333447745251774097891667504732888483978962829156685316730118217312128465180801866914684644782858497984979778743274461604195091465036539378417463526968477062702383030084135357208842605023961554436901275148354100121011030694084423526613343539045863370991238055829988984615263129635569159213188448150649437396716479315866626483063258378683591145687493607897420741132797587994222831438446897486298928766076456035852413977277364625815864574143936544701279035783334797384596880194390715758721818782158779789547240196895551611891087540669581782985949095578273946884415647892557959350231575634697073410870111184700394058999428542866541067776346342003020810942479619062552133701357935859308207266101983396353807914441518313958077670747313675173741688695105867053040178486750473620673326869138447111978658095387501486889841660405463616525368081147460941767682137484829898869298374171272504249603656644333961236202605420499120465761433012812165087477628821798237323630821076470573717044758007543375843371778815196513444598410001888660226621075012906869169119492782834106728626018393230799491492735796345457128589313280895172024345931537915432704421426004477143236917940161809685700558553789639046461301772600711592179469839945411325602912552503627548772649725672606937011392742164840151670194338955857065387837545825522011521621809050432279549676870730398560712968197081244385166947011556446131173065192712655480033515013158038413243837249729405981914995471832464061220992897830512637349979043646384436443293826158345381314100203280539775062078118943538019399522812053684914075263979792774235238534471789297613041513157775106692844435176157503147370115916358422232673519394337100208733872002142739843128827536682089767688364819420229085607898066401048929549178331058040094457274921482451013585804911952122151772506854092250576133556100858939568462868228970639421097011053497154107556146467876378737467855499019316187111615238376788266718932045153040574267842456134480170343551453860933165989254560891033268366215024816109482314502198635999308301857154632452449591606258629202642987289361665719718792242265509639133747284415651866679238003719155356823510171745675880892950768041618754446124986522556916492042570813042649418808864518484968920059938179563412526857519574508192657326311047420030349885435498941814776536883617285126288354519237035406502825145955084377007078143459395517634666953518187718974224027725388684253018026211286424400480466279852952237543725675645171737621256437763336553883352236470713619346298084582851835486799621510257067371932670124308412189935752085476700477003222154526517876870169488844150515385071467457731971750511360222707591147124897377662691884960068519511885534269098726419310745824484297271321327086352861952232527437734034830158073305771319947974727799915359956857310317846618892157887474573180817442514779108600694936918179643879105948793355039922786766355313937994396156183851018251952796827735769709017970188682744319664051243228263122640491025108915542582194608620051006488943696763506426572531912136607400317249182087455327059866753088410244540874168109891128575307768517791855763594779124785317853450907182385844505193017470460634862846703028190571438155477864104674866575717595610219268254189701749039495096030502970486602310621442786984257073773820812802831916191281264515226841798788900381245557973038830201652380047381355128188828087029223032122489461697668829926777431691523762235281570840967967194230443892858761466442288163503358108056183332979178570390868421693403550224197813649651667030307554910501915628824560932050354498536869336780980238860080562977366625687571799849164924860145287242131252159575192572751258567866405354914067254821399725114425576393241392463070933536705307263585076783463937965684819091299048682654320055075929332886677787863743408548602741901810756996446682306214231163985489031934999644880229782507927268622082618383973818384007579324526721684923838386775680904440270796117845960006348004691529700888866556374483400056713848669131467685677977736567673771928527577038745580296819993693905960305061627273947061903880477655762467823930470307108817318101178900684568989811533833277145500829185808514215632756571315343833023751619397848942478488693313482104135115305040700027960064800254028480293102036132179432814568189715473368611059746345697665302333672671556034912531576626334707770577174286181355053267008364717909580872037006127174482552536290133200872513240680348664414699842678325126667074061739490779445137496979139251113610218553060920804218681578920532953383141072488700867526735364271840138334566231235427564892043251221495567154280660892595172809295928653151485289665450989175759205553617849921719019818837751329673427734338078690903817864907440270168134627934242721588909617685315187372775036907000064932187457714944082636490383369057379353288323851718313735716568341261255427213398482249626319254101609489260238337976344367666032536082372910864511561084383510285195586082724324335198914641704281172403598123071402334562407658888479405908123039365711035702717528851281097369644528386493650182769075266443086376616184489678318882086883246877185694132927107111070291160739578973954081595051246831185794802129575868714612714353531601062132664086145670064172791081345098395636275500593262425120848121118941119543472759401151467842795105243664396787951415666509648435172584032107046517593658445989978877212775197412327609553562059584664593752797637804982514626170219691702428350184608320815495082576824971555309562334746332504524263241739164098708586389073192280342160959956787687869074731502047187700608065999846564961908294214526228349956271720825602356131303594202329825521721144074456226305581563079510483090446431098121887412138927460677686946195231343844154073861207040266221813615032650808498148828874222428107266255589338740229670622365064148055710336229928756217462898065494967868119887232460656456689767367858436968637638307397570499743274606790007030942280315875826401783954829611183949922738482775663987581406869167266694777738608092678871459436195124189277884591504707091781790347862375951032429730131061668411096464424290204224781728072777248071883836828893903640924326646616153846227543191058448181092406947699708738302956200384819355494297224847491715929923416684305619267042816218561409374649969219821854921635712136468461741264564241650117433024518249966168769412100218090027814443172000355406534710094982518779214888523922623278529545110632763997155735740523172739515395309694006162565330132618851067136077175813525942489338317566674687786838436378944558474077127773976879688487812095938057682789646726103888434247324628325623519162327568459902205937681704053925153064021852717188723676147152379200956685940624577228088823810576865621554020451748501936663347385679988121521544819346888255672483710668086406320720160622562931946013234492363066837593179089051138392030062558562572880460577897328817560337929426697636272126302968834924903530094184058931459550950880342592367948769809162978561347716936536085978518459779616399254038046091801526264598965596318246109628368879659205268292947728060681327979507980029251401245388403777233628771518833814110040467710921775837466375045518693043932439298815883391658614162037960541807047228662125803048897392660079193478954374491573852223323690042465128110968793666909012409803743732085978123539510470510309963009834309064763511304460014530861588676941690008054500321367507941570972065258406465390342539597943467391914666373222061527254850055440619443471472508517907910978567568550487248169943557154026328834916954082917707372565590765816354017535008206133386547488242108162318762339448231563990916263364788602593831393834269586533832306783460067391041773547389497412280112328851970827328747448630906855051726208687403729646935949983404640686764796079458567103097607139272585445617491798407373419054207368632997699199836647363929080621227516022353352239119603279797891624778284482778614403061527221163919939517330658890192729673105037534317281347545124739811950636929676057780321306672306705868459471140865924570231503238782487542800080540842620421919442719986745119102892317202331553251090925093424511944282359953099605789094758541095887676745307927575968558602345140038277198093066545107225231153419320776392214469514843333365228138735852618742408218196747627238176399315144270194650992391604591531706891971064415350223515071383718100952385551424200099629877620219137902689334037987956563636548028087422256924599477254926520582724643371205046705296392735757392348680285034058978601821322332548523003890364440727700226504293913346072737598459299731911778870505607029361888219093155075409114566917761262538032563075805706308740595000327414524707629484021476577103051097287451117590162935083180116580389068926961720415479211911210478189665232265501157446111489840830155142320545867676969082247726141549130080812094140074663107915819895634578003282458526409329926346145242635800810760829987724782825261293933208593977628187643278483502487591338644488779597280702808581995593803264484312423339634671934729277344786277145737585602385149826368348437159802431116776948156751614509537355559305574390052634601205572688057001414215615940150560341420236774334092052417118261901731824852358651023442396023824272610035748537865253344818586089973497640163248866481731049751321083172900581136465324351413215987867454821438666405991827710985097195983191738919352554426967742274463525162527530495026939530534555559110979094514607925333702739585394950872608505373171014499067300779710929803079366701658195088704998471505807504873647413966985623465425416935035323440756802747389890181833735730507820176543634678899589151250279258097098122462569658811959186775408670317968858634788219505901816151388511029362981675576479140216480026807369507205030461156013228688939720306142152501921178768732623426902671707727301993125443801196540990935798748022031956244225868842024979334898444355508504175851290506679003159150366046176567488955826157055240090949564372325306223236513592435662961573723671574682021855974789740654507863382931278635391729353408549640121252976099273511374522528063734266060097725318658325817647827575813496310147639808944697549420746801819152630466931421697702570582240649988302083333060870283880883236314692307973660751370103184747775127813006336508384345725731353595111531657184675603476485835854979928893529723950393229674038880269050546582710083004770390200000663303811540321943221877489282401764203824831722538496560864027753762380965326651973843214789358985295870635463216262410471401086934063708250199494927671707794687466578419984920572630498536017704896323849556382245974406888416630882852666810068833754024526695729663453837900782064838599836713338802183558796551906682653847253932082595552994346412827012567486769264981142570615231806386203564602573539498877748377553066398656997099166020738095264380913954541244145356384873970034254188577482656752338112617121738681525225408597163272042488621557321546141096939274444037660039949314781686516018700857322081996801269040078802124834710623804457267816251787679831218283314917131356948222063369044583534538574988920132642859832134140149943363827839548237692349218275016852997576304890391812255233237261904720105663907953233642353422445892347448201512149802287706093859466647303460787201640783257482002331064704060399169660859651224174731526470966985429060221770999436620920425717870021279048495754997702490908125780785188945593703639845357199582776031209722326413378021276865728215029004567446254006607599300094484467468312866987816023612839040139715433837242281062852885076622226247987939781724265301749831731808896295111998665890723911181990295926662531816883737920172372636235563672718576089515523380037903418024946453788097311454855999188921601082773819498059937865079319405912885390654534898220463411235844569777964405267686643372466315348546820556019109265327410267364813981697402138813708173474069759966604230984802023139636672697282468305267027983791489921178226353187768336176520942481016827243956876096608748078017155907118100715361841394952850850745154320488235338241652797082575850379887781970020380334467818741801122889605539565885886851455192976281808283608505557688458349716153418682792036487603324449461362557482104538501312752505701519555797633728040869847293914575583554845908692628623729971156737410812857138717721769650327246850551165933100133110798831410922949911242309393099416131809244013055054580855235964154385946444754940884424970817293900817351086519237476060756211892097398738511461654434744786379615849849183103258234956570077801930452451964636278616999627461356283907426255734017779532959652910156216925414067220029779552815437416164360806684584575572657076782388204476819854516247831352210035420726883978473889944819307088433204876814718909925920647009699548638046324179079928079370218864867342595566251166486470844088350918655444317215448577641052209277861418502183514854062267385085928357264270433566148298122087678665235708619761840668097234194192390204574208913965909353870158758180558397458291703724901715938002055617518176098513870263468531052368382153091069854668518762601350445465679682283088705744104046278991633686024693900158318231583615709951832088896069868816013765905802223276634363718917714269544264090821715791441751689810998193203227569144195876416627974249201965010336446202286021811732868549930024201672376024214226564394968049009283055392011199779493945887582169276295694410883552693621363388857607406819029332497832990648367424087875171318664230435368059527344581083016213227598442378169124900049312542254506366626251692888647663075542056457680122482195127211847692171054373254334264505580239238678796491506263122642439972292969443110397254882420615628252516819189114565205496570653866081678249297632349292732225133133049066695847495282355078398979939476061487919139017300392189652246449310920135501557481377518600194573521636169331415775887104760294050029536097966544967199432069741437075642281159373881016724190926356364102728777907639565792219408906461787425694434515729671328949747258535104258457204707350250108882395033937973017429376612196513325202974227115974065547888033700294033019509357262361254550104000299736862918703051069532945707681250367906637856582979904229523642265415563252830888766687179533475635921921309562267455374970874808881825152979233819584496889234197820270629798180266535152997316842451379410210088402091954083648133930518611450283987278860522922694966793803811115128862090529176090622970114503866239875410040890323926717369972652281940978841990807154959022728560166552606659409999814694535646465482260021423230049047728316837161142425193654262312242735100804176761389919557454034347288881715874130093769927882600687931037064011669304655833305056797860882409258363413961989118051537381264381505936889320854219734021922283618705459732849632532886871502821747441834467884540960985642511952949286739430791434485852568577394740518810466338308599040594818165738788199043532444375053090703720255660716203974832981860307232487789739299132436537797403699451178465225049194025391153082023338256459598176083880779402344193839931015146890865291417908883349494479266083718625159461600807180569130933515100034479271468104187555771960797693445333909321271899024138406109963123983097989642373224282778364832025710064212149965935738559840750036027019653618719539756276321688929497219573151901782360327218005903569654332920519081534504160672730073043298792115978031371931810654357927366930962922459195025078907607162895520175670650997882628015584992253809066865275277490063946258682026604722533399253324712784544676536456893804558565320952369388920981692511229472314113182620628808661116476331065870540503475073587029203006160012441101604537719031350992063606468728133779395186960732625668731281388007874290080232576591942201035593630671341890668048411855288280198522121544599200087120804633197908460386330341922559392572154325457095008753185623644708680621803858309185536357219514555323347477647008131549659090305716656787345929642020898299668229244460685784028130890702257170548957813988434495731837602056121312884788858058894658644700045462986465044120638693183966084866445272687637820982561108797880171248864913766792462601451954398543435591014723920522898601623635990755147774100153922174993153774189896239291042816252972939086127089085186013465850371009639199495168855432490043938119935285451506345762744543831221889961155050040738964190662681162457761757352311909761498240209147741108955176167202445375390119904794995694506262821028858984485195671058222970873965374971425391937190691227473071608869506792381458328301968382794156632206785495969407696617630921358179342437662767738515781215207575483468433877137368775772425031673723796282979241509157365655570226594591342808815965503447741944967372176442425480054419947571834246918353212520709490987298459997405617069077295437233279538285141336303428837803927222080677619080556853181271724614530892297941765859976409089509951362474822004489966090306338939865718062024229096460282591409336476962562467455203944697541293074186527665125885951272128824350541953689555722860912325383096013168875843870049563163792747050325255525682659714416034716762648682452105264519969799575302073836836176520263023257775488105725759579428918616183104187972454617162893720654743914124280866597754355741121801918904018353120057415516332091783584798147321934091933595171487167230716660369149679600489735296399149147320146404595923652068600595992355604607874756285783769653642397990816149493839010201257712058637099237829161185149418410549688389529260749539978072280702432604245904299067432796304811131102112341251747816595567403124997283705604053494979933514688538256833908791222700951885311856633259481832173605996672374301405874250475683755900678357609646093436673862369768380897267640408812232900094519827935811646485151424737470980417166528613442999750937873481060179430214524291516026791559948489169096928739122330636330385702485246749713757255708006410893825070862325147930548893353723592433098734787152041885962459818475566293711113961806107542918290204554912390245777128436298118793144991772270161902177731073902181078969541367308913598713405399927384852199556961146978892154489048707648011732182435913831434946002196864383876991038502348566212897200880811745729941208302407851013511667116910821460395879965409246635654384196069414099630583696278548325486898974335104302674756808527006658231782163693879966532647807520066741010334782223715316781339505373536710307636568638309895294869088175086399451665696787161228766975231316116047648339568537072527022855198114910942008559806523121633400759044981759092497958274339251651143561873560201840076233708745460839858042391049636747913058553955229192648977067434310240304060218912894809544779247316936642921353186808361981961561390132205587982518548396949278121588663921403766128089238885305822589558094558027293749919535179067308779477503944480707042147844644481017259015892809232396981741919527386919349432324683778608339943876900238652287043599675815688846722470065779000430446800456531293654074151440315209645325858022121622220670998441856192736412246944180103647618122677920206556941060591492974959606927772545756871572875579671944658930859596719625650108181502095538698064920402400931462548817044799817903572870186659105511352966280597519272181699931454127580705653373213656914445267440298794362109829921897178090769332286033492462863089158604082393236758152602954323735643067452112305739205690623196395303968429421089817659480907035274166848631490416264482821545639591397645363245038007351801575271114960947371559998302794018474441855548640228221099103978173958508443658454331308544918889333559337367106223942476613244119278834400050101875176921324177820106596895016929078206987768695868409967559765187643561776809181227970954654460233435899661986314946862915105321307806395470692674929667266756014330091899004254064717530243116687007450312333256664047392268169859029396934722137546269447550067656423714767643127678101838783065209958884663510452800850823983543461910661025173203484300549902216660685031635212197988536750337288136098102580103261121268266958126190286263285565118463715704655207049218109133402530805591076347601363169142315430638495880966127195092932622653228208806110268392813104997027772877778172330658419526657379864095244870672237543613859660022332853225966558429883539090309152288119072190780044956644584746611076131476120678029719986382933622828560481063481618821838121213937188676143477540850461686770756262905792870625976404433698114201860033018111582202988241687494475749400884720341568227612396309600106824524107158001007636280343202632261499045040997350872079690181179162498943168478577342415404683983357169630710226756940581856754508207579331441907999523750040828532346537175097507254875420678945374921623919216955580936042470054585076525856320867392526158647948889612611308756860900906030362163778138160296795213631310787066469929793265390876053766237676958709948450136732157162747542854797783425003723954646157497912675249831152595501906658421330150911766932672886866224650538480325790777488034064940515400571230476385093926815930032251589806671891654447360568820020642352464351815163411527800160612515511275272368171430543915898717282444126201299288456055514097682427261829824069830328479921757673344586057102650771018053744635515985114651760191963491449741560328512519848081149233100131934550707814917371191393768825949934687801183716275889931855653733178355478665740848721299161611063967779179560091107474706897896021464267009375597983904720306959641953303774866310031778748599576263181825302988594702339113557254176802806541556984750752522079595839686832808134625846097700621960060385778502382432102901771480580808582486266378386242775269856380356730229672056879104601638454324282326419849958296513550647074670683119455970937605940756222257536698759736921450268402310064847600336233667226694926177558190738044972642007446921748411389763448128634586662558553904603232968888652251238612241166027161053991346377002271124663848852275052301848866284150538474486124861551443508880693466629799776046028310024097012344887385468902567872017252815360038108310423304565211441632517569396710764766684028812166317125594448794462718455626334487402314622691112588823488333402560942723826308310611418978302679391025603323422706640604015418958889988516158430144913183635623386709040702646227597057567962027672151580948492393805364131348396977999654126498542089254376304048928403397663835965795572799141511110411841714035012077825694588437246227135054458091537506069159248474093427990283976717936472998447514587581717425653234198664377770248438954833166455464043624517955949329486733052685242931814582732099613307407553582704295079621897704268658841205935304035167746814109180668842888621521687520760140705626664956767849914629470835767835141489411116772909628398990419529214622598105012025057751583129671580698334717225164758503564858066760068858188916674514790650661114541738985024645618052360361807105981390418272833435835702465622296605269808062741094537708387121123260016008854985956602796441307140748976920205800489024343209266413119184303794418928253001247043184372233998415070900928501878349667956501362136863512217134697325483349417054737650352350326126668380588354910939041938750085218316165570934901919021652495685253236842279800946813414635151111818608665174868367311537683669842296310152646068570611860546362533875782402965914540216282283627822107539537953010625248834457096322313552512643148363417884297395448959158609155294003111734903445268314221283450217065579970257102156394589888070068137277600930109063118801538942484302836120503945663362304036966902222786304165194002595558889922385004455603400185142725296109766643571477752247767497972559651390148398413326601864366735703473534040640915963320786592313360283369867584032671624371301211735937721492737197201679144018936969296306660587407060629997007357027730353969293806045526517739817181689900134483068666908809150952221714846000833696703223346195882208940946790596482139800815101920717051531921979492944476322077059464581976011475257564776695293495700723643516035799331382336066711598051968754697924888061871028508429055034260902402650908746118834728471672765356964007346466358413073988416127447651051869640140373366844895067568223121265129867130804540983621520386460817987998865034402151639789253936836188671674347294364805132144689774433618297728482413992215588172102345974590345152372105780610635969902734236633654453784195084785446748823602506786502569606240604116383242551563213011127064497110563819579448837421966670811931132857888480351682586482732030638722098334772759929280180736059616983854816654841366805154432856289706646417769457753103563742539008113891618537308021251110274565447914256611776046923289438919973408480984725970116576107658442883356032533037105218822350589767390737671890499787307649443083754030491753982491935007064967243388714035987233048402832147970395978165902073233122405176437449291433804825440397517178648352993966688024426000028094452352636790507080361125019459257485141725218308087728694093656210688973190022956723641465456628584009207106497663070161356175783642084711697110572784248990508242251024968637399237334448515709987275341990358578962492994951682662296686119110781136880000580735841975099903195064230537374414926637762546942094110542002929150305612720461415729207456865934372838322893736558423801578426108898352934644819755329837790296640607484182608381109838780117580662269118079347980286701742360672026746851104968752041971604288593197053632831626993071547973240528350845530358103201917537707230579897710467175851462519866335843240168416781296068549801579132609745385083549493417352112654359502807473049783966604935194209558221943677235742922906456389132902985176291501082746353321925744567888265217918117424465978328308389735898917330278401972996503601186448383828827168580313840671896681832033389923650809686139626120350043529175762908021856425421074984229702701867480940344844014299765260969880625616646118097214780591745526736417105990730258784296883966990988037740481734371801291386709381776267008376789081048977179028551846679254039673052979370742525401190408162565556486444608722745134377713267032751732190356534681294102515869797484608731628640276284463738884995659921363871809728075301593189347603617088972931207051736815898343696635796175086587413166217519963611137398265927299040148925072452965042067704175377626343680533948037842083624405694755968985582314508170911849622428012409083550768118432111372398789275265601621403093415576514839497107448614317811266242746511397633649726474616929273080149129189495559307942752900574845309259254743226766304166948661460315286690794489702669138451672590497720248992629893173937448644060925441180038063920970994650362968195483474144909468879527507832404321116595882969418789346590222436791065945613606348782091335918504169459137914680217731573926161596710724630699076571599671383194130316585282290763902822295353551347932411634715840994166967456853193233082930470940682939358748614622267538752379389686005101253886482606892000653349809587131155888804756739414053274424809396502119574294022167502976969590315313692089610502044975999211215169094187335159500775742890019041919562073735350692983497034226338677140692731263747017190143298570204295962885805159017497324001661221718355176477057306676682834961893324509990751124624332819120828715967447541239733326647174081164422095092756693261065488791214648025390121807348547274106463448319767217310767492677650477319507116446251386069479208108027322740100988344207398071104484243013130775759853584647580062846742567760345437803192939244956964484286582985798586007894038630454160931462699318800652851751166984735260865014794975466370088037622883805467181608961743044606618212101566707959295100469118122477590023759179556954408283822899922516848157543940560297639806711100967041342097761950593607704459875568439522782221431358932052914150795073062191899800761248345684877814602034627343542926998141348432037129100526991977452551734578037326068387607595558885105009314819994717895297250267736076535310159719466630918482425230452254654582109889980776960411219517254434167100281590855820002658468600830272257539980750041707350161273338503162756582935486624091798892165222504747466231392849508678603075214110391730678836145992499220189336029059906783091315666210218503714447295827865448511634323316322894054663424292195470290107082046820622053207614548087585006605279435987159460303797344848679563233725423089426241588481314528266203614438500057623508357878335765558147763356681675005750005322420335587494643684040392586659559411594452571901384486950537622258002079533577126144415625890413445755900858381160743137384680468631969464747563961022430985857860446327919692507587005465481972435179888378045615920086090221283960910978385914593027037589136292811836890491717637754117620451903108861832778410030443866102277716524946150831123098510983321279451232355330843524406004216651119739837170472508875400918003782686590255901508480598140713509959016455043398878875895988253770605385165538522000161620241240871150804860607922028313368367588532237348738418973675829545162848966340786540763362847288688472132630993063057365988898375954944994514659526853224851240245828375191233600187362904503402311281569880927819211938895427994248091058601801575473558454990755604445009028321639498531735605529673645523229382703551279833433014746498404713837905469732389254923778888227156975021046562712414720866350168534882844793157212882419010719710977796574164329050076794566073472996556733313699002074675039410957560466491744787326460996958490116057359388825607886290291444844455712343771124527441606825532065954161276377468121065923996598793629095570657747622667590637304089762014213621217061527133866897752293935187902882691220887899438056969047609327508134862781847162591740005110779598924072705352278371412069706414027747072507561860416660871893725516322794494210057809878125543477310506839561468312557121800918584232776533523607880663427717226102160414453859106974464960564071742376309575512311975322651415539267225422444221001124425357652383515133995132509876894850898956412855447197427438958117769060234144089564309895373904692569846245764477635593103373915542896070917145794283784080869214792010143441429872837954566347627639485647961943717305163218339964152953313400463394876294340387858694592957034065471540123997095892758103154361383968094508839847200729077519370984656218911973350590790297311563505708631989344525441291596965784838954796210775470401769068973802944971521821477653672438934805288680836391954555847963027688760972786536189952490187287227034485102798622621386530518256069673746256082256316784214735826141841887778317340567844570557625428423667729408244594344657529090345989960864619025623303844801483720192071478976845575108728692642038239266928641763532522706870420927541162916533929817743220435709193226549675891601361415204260613973922379313899137024511346947012561860196761957965218884943993534686826548316102809009656480266614862406742789608490588092797030868646888836592873676315263122094161352460553049349264777565482010206672826027273509151791934816472041180169910328487950301379893803805989369960253809649093143845256608894163679259281629455758556537756824496478581935424396980876483217362415657904431418391306031750370660063490687147058049142135126957297398469791733523453469210681510108287556941740723780135250891408297107422058476315690489661953910188973000746704473508279673094975715701128847797700015589384071610991773722662058112649856226779078376040139845330753032247927743475588314602464107345703842518929515832638616171492101384795639401872549278812911360685719437387919562264832096696380214904464740555169112135355968559496065739938438049265395088631811273042341176096092133718747823317154535675505521072936265169498533686135859420672510253406773386792973643745591669663496773063379975424621893850051401969277510554416160867243414084527241560329571783380871948675622473053578484287298524787315585878974934977378791618510218894774240008028786424486361963228540104647408492324832252439925924974844044234415830287384256913873580267989332009449796405789934230290960348250842424774313202483952074830975435933078396080528358154649209120032925192570216669401723400600333437991208184424486137353503427823684267306130669521037160551994350358734500452309538640836667292434867391201621643003561060013827891673372147584712149691985014868990238486215602353641623192767786671288153129817797833732131922282327741533152129683048920152684188220554439421867138942760036409712311634381328134683000903350589245648982914500951791059483867675608478738544518761476379777820700499588349109259748333153929427914323734334121054954774940237568429706161672913579988533577515597773101165514266184997055373707836490162333224342693446354339800988382547909235102085415866890425777879072860004583624708561941449595683378967499613552375093835511195399807402989997549631989462202546383805058667843046994351626899693473286026130486710612537739379406657825602787941177657011113963603041662199122953652823493887744159815330498770736096032485061534068746669840890393254749227356345123615195610229074862792758655522866621573953738564515576131114505793171814493709844822765491170902154941781412449127024141345126123088349817012329403309567615285805439583111544731495571786483280693275186705805376066278497496591880552066590894204012136405825978960086365573750298583266543993054823645142340453948072113792015947292874944217501334036038622597389868692791609593110464589189090367871321570753662044543298888270267360640690104258787103993079922851143018396225978554591194170246975446198911816982492163127867702796310827470107340057156458627388509911262456964260208960858488278280181486876356047599349578055685424831904517466952575755170268924369318168547510263207094654507434794308565510675130677470282875323374183126811151121037081390735070207577555636869488911400360334835343125863386928477325017537092843050186050635286295773461228537511497657685943452801600029826804394817421697584036706740935324235444070245727201023743889589392417181911064350934171745551280569440462708818102407972092394696058116972454299717298918159672400033890906692178967800858061143203610055541033469860209764150386294695496994217416203890592529370241133440323826510815247883006839721318497007127137600335069344555537738878462984236522678452918833581310557614177859194452379559848701889225411823803421771341002959002927172703501857638547039913889521827814144222201460117731448976611672454969686993828326907805657973478696363055193099845380374918439625654462300007470124540694855482198724086677433251280032801108806252268930308652485920495846625670079872079748671676908176868513508137323005054433767889685415503926480022372597418807045875298410984482043553328632847527095025957850295368119137489621757070886490288854422937624985809630597652403349751051034808020821376426668726531415990572638205151637070642165469029908723171141181715370031653891285127428585877209773651784316753145073139217194774230033150860804952402472179851699251042176030421701996235000760341985232813854283649618586934562113963547896843974989319588804211216826415025548148618574731489880944363858383060315430276730346647991679669678483015804546661744287578963623900233494568875488679508063040139066352981287734330285334329811092395314956121296619179400754731043871673937546962382166640115397845662628526284641471162077614560976517086976173403384359915893756243792836101877382472134989091429053603911126523755120377242271039060796690709791005918196300818779147362368396791301761799650635239020874160173563691403347644085694189075676202989502927049741681568428791319215548280556176219799115902716257401142642908694229859733374727748206055205418911328070248987041331664509281844333281439427358558938493704227123982080743171354040444897135502147672030876791828144025809637926339786687816613805079570633416504740296109749065056220684895363687628100609135632556291753104264511733059274481223426783287945124766654942287094675552810468920198583120389065837911767731695551161664078487705433704461781206056792533803056917845197290772060211985131030501417312854465951200181416984495924333682747512837930045834873344269817436389917346575435629987022245998655937110767504111523739059034243430282704508314894834910429387345475971532897498277577721333422230078900469297902772045982915044505503017656817574956440161661824244474242933135128254373771444060208939103848934336741244165968864296697517378400244071885152207122687203920482442101754980824297287381850440394703704407776379299469801571315167257293983096097583299287047248295518830814239325478459482461935762850938954672601800552617821258841438354602144498269380923498160675707194680634328817402645719575247797590640069582934466477690701038449459454242460198685316204410803772994638640972468144486854847620359496984681262267020622720345831519607342380776838049933528956169137860075146873522821993139954795167258506060570403617543862881730789017144277536337560771571705249130153153110632031457345483641781257651781688816262626645262945796463356671946400938821088491909134532434123569256952106713840554565254986303504236077708339054210923543466973823062197650238204745081445935174432392100403685257740532944694780703153948422215102394085337423695552789878034715347610849539799945550282659525115889025853977544996157394769330486853304899490445154653257698109265364440526763773605061003766875837843749944972509238124660468545030055047585129612790840155265125533692952675783876011597308412306457643683666393191580428046199613854157298516092083444347888226557669425548613595783935873509053643510666467324478526859262992445058322327783379487090201254597527767730699148697960781078058842392209251114245688607453147868534219208484597853583021144351533794169131534966407349514176637029259206929346715999392440173564621162778132932316700573233406886983758197957310618266548973607897165728453667479435258276205127094392661626190185393974618191746855847303260253972707284597374495700824913031368046715984814053457431460104506407252392878910809116421459263105096859427995685249370286082453775444334557276664217197996854798875747153366025268100366624262067378628119873370892447934374874264723712603677751588853984893674264425440305267779454945161643403919235252289345315030776714756356442623533338274035689439677575596593131780716463101284936222115958671436566709667181630356341098144496481477035739876015937394811964991740861664800181037412820345847301704975505556206788436571430089888286546795389380889478490591357829815540823979990762341222936258627730722177253596264617116263601483294415756514285593759711286773848146485507586781375358765324541126490287005820594661982553492316532003571478101247240112420993717410720258290924041716762666741934043363898598233614608553754412631577955573562706311018809931280806182531034964461668442661615831032810075693480106830901694027364372549589213535180615111285426274671449890739586843092453940122412190054717100636738910743288169952003444982683604765001332477726032525877562938873834384585009258997012837917212422149468796955248936307789209759729418197278130436528309265727785735044695248149001314839061570760224871137942017522007457577788302525974514260318628046589366370670904733266460512583413285827585290782315041106311086539698390514106455714836505700583105989262609954224627625869420257322314397549872360026300254614680857686381542727484071554654812053055437195213346795044054697003677151236935706934471844007692582564074581372689679145032814487360065230734240865082724871651444902277207088322745028561588566847288301259478721204613303770551082553130813157348756304712582096657840919173029331578783066135127525442009749492747366587604726102314445576138105466987520006033526601723326572067074972559584061653657892263275238521787908731435035766811844839757977941024705315820658124954316520627834856206691951663359851347021273197491117142663070017019128039730019079249368787888746370473468309678574637763890589099734818418561190640850802666602572388725314595067029387638520412174136804502196462481855828279731413880595857662160335125477881065637881997125828809335847743002892237008453874646657485738376072862021261985504641831457584935905800866495621740300349235266279767452293302134838735926477649345917387797915926810401858279152519843645761800198146144462091830643129619549234924971933270644977939228895286394870747668330141013577871450160155308807171995899596997523597111491656953713022078333600232653241958905988734984074948028568243124180413089705095711679271453360947645717587773413427535895283199304832304474910492525670332561100786129027136490045723085550421473188315437137130746532591048035932246705790204978243446312715769877846315394785488449824887553469500225539723903713473347518345750207810715532157783758285053821117849128007965113676219280120963674593340188352728846956973119599812773461031793913343108821343768303255707386803521971157247207328824031633080066699339879580917652257115324837189113158983499273897805378210954875216535118946944968851187042951186360117759135963484614048738339687621255908170937891961776984743561444515485752971314457117617682365610943446435797343880798069480577486080029081427481582503011527398361663444249843020730714577940052138423116710843912276360313296910829941370117237987112232385359587473221398400862186005508258467950666625599466521017379789992477364841567945614884716534540877936288305213685703814532589457067255974416256015588673136968330724558259821107384301760333430126570348981400610927386002852649673075184886736443677072588837526974794846964454048697208735409249326442808346886460601628756381014181244160408161346431095545115767385641070412848376099165601193946913972232313795926140882644888671030325912131313918892868534831458110884848657313628595507568346042480449528969633536695632067705507593486597087793147004623905955124105237276267290727258418371697735106811307436180167133292788875551962396845561265881340216314326902863849833519306884811518269826333805845056633401777555057295251468281747735914506920792795451305099574393550255077135930313450199749589316567654162480798247543263429832536200086808344191763683493511095735165489079227703528286084117268458061147918482795347656597714229420240052107825772105103753126056688604816960051991983403302164571371192466585152404053598891710873318468180638950834998531249713983592802148909176549969495911375611246594550964839019826695889318129017309482105757355810164981215176430649756804764230106679890994758151424681816981108198718233481645330951748745429861391278467928868140012257105490022962311894288679602387749507948015035647350187732817934290201061265360049321138821793520556709360944986937737957624169834455405903206275608882281772790215735152152504492276004605083643681800813239730158138793564504809331275031476209460359046850289292205147955380107112743306402650165296420725356371066438675492891434694394933283113269293920842840734566863128384811916082082296056547630086939154763898856500631055241125154627246432111272132285445160195719201280716261997136556663930967394679278701345951523555121018628646228573877178047332945538088682779284135067061308854027225201390231079689317554969796504506731062045388571493667212773490253098888965151198999927149261551602413937920985444603820525719069085731545561847274007073446077924843242933701490895328948525669119697080912539064185300843801161286561585766567788392070847361846510579395656989581024939536053934859454250697759102395875292537313107291757642402324967518637198883209476050976869933420391862499872557487380238999551340760184644874872621198680513301148407000732754891145700676221833407173657159862500591714251527687964037441356746216966810916009998625736857764881710554389628470119678198648146775318969299069771579635633229878309965956710484952103545520433339793777914016775536089392090845749749718074467517533635464695085388976874742590687340632696479062491474034049413250404959042011986905255036812764738302204378044119363226766351550247455925540821578478950876780731866381205393094389548934061924572455047495309873128735083536459373232351634295011099763426948287674170769138853530288115551527732522351704868833692513954810318131390029581575841035720194473287564089808499186719255128475047095073141305032664584412505719176830499163414438734234448856419177188814514029080715097776250150637659475377052251537288049680717020985821742345590507884935281764412947619857276225597132369258697995362580857485979534183655466441309996924590708655241126810754352511651195574795007595370505566696229072332132741938051813718048054617991389589773406564382793483169534243890933421134344604653238329375129657707114517681834526968648943708809115115844603125835478695351166276380129087041423193483454398273485763048283405007787437541669411995016295327832583138358192318076322513209793732070435849532077082848289074076359954592931016293061071570257775626989187930144900209618839434134881829722694350303206148713559035538363670919213947358943888282500887682616958496433471063126516928599559117023609781712084054886981438600404742006093261070731279053797291606758148737162527500359884237248976870538010834231673156140730020726933294056962063141247676329293818988080627259490504849181940859524994789963956261766280421921327569523431301601634527574612275957005954564534797742523154486341136582168635744858785674455513027541001031491667981609582607560253258887258458665744284802544352934433822388918384577296804394945162064479772989114353425906863698821008156283758948887099717830827782598809840943777273663184160234544695708501127765556744928579648541936781482684087574475147835353891439045704665391794633959162745950327588100920347445138346175245616749226245846471528086379789588168459221384531275333594475744981400984336785480280573482984064750438534050438659914727094889947114435520913446117319529949399749387397264442355327072699599755781974942912374473601922498059514052168910369716224356363783635266274665681947565812689967195358473696439513719238243743363970896198185309059545859439327450867645919991223718880415428521167408600401722125679547337577259135776274559992082958972020945838138386129606433248878191830926337713594071466232615355004135910864383524227741864609242064273418735228797016057658009213625474274408233385871679303364785665241572896231990420626797654530247415459402748243693093403097183969657025586515342859469200151508224292105233337773582333975521178640867759261418284464878808754446882291907168523245780885030357112376055442001896647174276641029956754917007073707059094608649067861965067817332161162987317947160148288392257962061220778849594919613000959906905025225692733273046870564204353258747414650030195903597385967293039397236694465599098833638861551021516363662835168168911363779348212398615088270105249190481450577071262195477984556911908746782815447762090685228651802480092860972676500267696429941914941912487514619097028764641233952404351619945598292247975910638850748055773414162796517820189606621204210363489956157339164980914337626755514614300438348032297463217044567403060511856434141023051155850566378998341903158978526702993927558413359313035924576109923442235553981611836927143165101997771449915359782332028335481690481571963897853715309818195588973700029293860974626949014284057584861522591553118799520602551145511988594931627295625021603269666927037956429181155621381369512804555397855384628357298843364261999768904485774626833781652277929979084898243819948603110819908236584855199678699284473088242026464558423604114913664231891895057441390669426361282398554986458261392430395902043848136441000791751037434099609079539173908481614076723969452611943903312182978067852677826629101611389681367145735360572142504751195607445398148187847763623532564307739321056238609603033787992800242663944056437950852529481597172416203604282438173626313406212365428403354702828236784302290516880925442555469305383445459722435230713632213942005635573165613764441427370944050419014532571666794083970888838560738294381647750056457784942130713496041298112494400106390626627789068614958175627463629543592195232170864796349430205717162673428450589625797553782498676108694811623651804050044615584735647878663746854246338987853606354180653392188560822696693484693418719927783410787204542950544820255701536545646111110393721953474411820203623305310392557100991766790783988791919538832132076582222386253058520871432769566057995127405782434281612957179249712860151979437115091361226892298931315996749637138237166954580516081197346412315201608166152359700251946468696380306266647582227152591981766733075721304186785599759736048604438897239413878055633452383708517517672699631472923057980397169407018765746367282793915911010196357135929249537991661525900659767265604033813600673084200830211918948939956169038844063340313327756574562182860152814183261128855722640659075996745806665398440713000152498718604157268612119624486145106481875010561813301288071978755855930168722517060472825907481048494912227707845937230177013934816445644003692821089878677075938053149823663841530466929717519130278915353539260184038970724089872616079022270330988833255042345533678677591105852794979249636682438454201046010040594652890437803451038418857077793975313450635669300039882346182062045284019125870106044171296522943394004035871952182438308842563858631933847366585837650787242760005715620098915877937116317334134767183131400745887881531225861958467640439488357295748997661270158965934097076473577209099248832699886731263944847950284714565009042819993819776884077794444776406558407827388200264036215115516746345372466842009610092978766375276838398610936547927475778533692141121130296558146223951811338123134448092224909319422578825745701192933137711698941241663450427570543182580173371918411601110781978273226333219046859967745498951088199449269535118143492892337044123939941606943666466963161539186913871729854145995421627420105935430597373731046687552611419443390785642362637880579504759060706753541495322692437433898741858509498808980156254992455317384460336348661835837077108008709244319742529367158558155713106551024699770271139019466014996243986347599601079894421522133476304747651508528668204375215924187639589948487563204645692804760338213089892455195910945347924630475209212841540281816250628198168389511519248619478947341504078878431370864703253726454373058205136084958211015510030178705221710796834574299909813660468231493466517762349245768597787394986034115383812657438878107711797466258221161621098195523078540747231642446340239155120980203443997794720140022980317374360432702331454106976070479995572863801959179131038688016735868583311708918974644211011583879718366108371531567451031042204508990017020921763507296194475605107223524589433663132421835711436351984840626744660815869559514735659817187851927972973228538873330962774930447921538615586587841213371093977321380540651333638296624646783900289813931413901889830797598091985402664969633217293805596621710363023019006406127954244118680008714932458590965438698926760440319737166750496550231375472522276861420252976087737088528026456718164908100142583950616954852073115498855770655505366882928452618064010354735544113213548572464207853295483567736288747384406500226642800657683534526929199072675838491648780461911339425997685146187524681018754316738290084362919859099089788989539468142535975387320617759138268826034827602006445781538237380983587498799892508569516508186305719686259838679131256954125066152318379172400230598780821288013633871944624718362598891156459991885417031438525291525275053015263544330946006950521382845616221777209009489594729666794730612959876842338252896804076836353679537655633800376601634508469172329750205924243029493613416924397347770299894392839016891054467920954610784975283276211458570224205106419949206062198537427886306008190395066759340962516966587986964578949250300075004686373393502563769153957040896943896835978251507198078853098724389168194969899539635382159784920287649935233166150216314529504022683298474039336189244333815447783940006181639184896165594002678328109417814985265756478855155589341472809009210915570521241820803714176659619214777428657596869895617085983833790976209865924711238973911181321772728503823155628412979608428577065612625333924424192230365821578297151674877624162973053935924602584136202994683800900313267306098542577913739498831749154377606188668622302916765971422011570668857226487262747419330447226628460729817597495570688221081268805656757134653732882468066201290175202649403303950435012279297302618977081500834365794992285039821126208663631576261076717540906599948441165763366384615641422883692956748481365416793561090179953189321163288564658147351629735994800449093555950212824532375660758525157444444048451962805509862623962607255442384741164466690008514202207044846135052984758431398863544783682414554432231093721404429831299957578603321868038950230356822599726931044596898220748003814312954455500102504575462204072128729620954717863424364786117968907928239617546060038330863754453128132490100484431576267596702975022172887432113685679043958517609050009440501044835052434608510000822747576274102241609263848619584486670031030238800811684594260789575933140670752941033776071540310898036287303587157075040623935948633948771378510471034061007343931416810095640286753510077073755378197157479520495076391422590140818436908700414697606507763993533536072018916113623653798495740640583430375490115431896468601637073842042774591269040476858086590009787554198071779229933496391806742094644003594627499752667435854979106650484749674151387566616177639433933947427571696158426609462118782390504340394496130206267221559149050229303839675993904794586470498740682023037392386797193787747322831651208567268681523080179600481427191444863590019267989584761496864361570663638209196963999656884806888322330920870138052561597046136004551101540934305248691160971498897704261361397748367742328253739987163336292061475194791460901339530495321492502013030358891907932857714433329138390685879746010863014199712985431750885214689178398143665974929234979084433970713244517094524433204407828941890086772714478651049888383345732772159941859134470983780408848872649462562059378232470244053133365449768001324983892411736453702699006630614634742666888432859962787419220611708184119655225380683436016532090277782966521550688422453551230480475291500915626474003260884243327943405939280534437380452184283620316019534305899032354279861392357583805520151256588251154642941849069381193827597209356163997379376546210957431187196956286112348313770129183185666513481005692158695451485381848109824014684564049453727748817176238635630064578949550043586680080018094758353738189420794192639821127467394109382294035258612263265658085341654732005505394678824718206981552186213603149088655385905869226693714286380563967843907606465704607088368176630781888412348944543649923136568857664709734542574990310000968567727625721959266696698745648060991904505515980033156164302466616950478718552089055376536495468277043790218341477485740305205790791385039491698478114771826649571537264780113243782175981559590395693568344617232856892264652515977629316584435118895295867568179835847925451065214473480850528681432217310194156140427323428977539034234125494764710344217599703073351593399765926937348378236339433024190471964327178731259824428046363104289259546132333598608340441142973666076946262586463948664193055450640422669210845746223653898101592497137245355350231719023468954336236817546898600867995424904345507160462887888514439711128269388945529330835240381157109746193198312691574730484196377651196384600324230891932356277876931467880271887868030998711935997492413079041906795692560542968123409384499856880491412319912467875306765390361700063394007260531895436975137335798439116461404576546515973868796410850915467463559258214327186200625653645650293053435545905822056182989935653663779785642064908624650282564698408722147003274111592426263077326362525511517049941370928862408137174979701249767034673693513548349605808517133515352166126215091280291823533735638197181135599627861025278529960835396980736778298494381136310621345284268096461716372979307331432358049558503403691676648636981493059202209164889839006933791751866017604992160741792303687760948090166566023676175931558633794597546790185001917165092999378300670446794864801217603777431274166935554126921831264937045733186004585715177384127512044958041664210883253376820901070947236384846648691498502892889963774166233661347568205870336570784625752259138948645379927944641457030456261057612563210527276982880460496601999652953897129749673807398053029669725735304893928574037530208485232462742787707236048367870532340991049906795136696209146675985007493686442370438316584907249555466785869237703067542207021178459933494504077262882508367818594161295688658122093354413770161363679993458388121354457399444510686490887311363782470991436996425756055233626485845277890319848744114463336447567267405060634481702421776717856454893158652897321372611364689919219998146192156509589803980763869824216705963523209577860108396873535948795797550966837672406585638169774716987201045771509041803860012955876463433675116507651019259482074712411209926096438271832817892465169248029551672744248193181952142234630294802798141723180566334366348209433869039867126616709163458586710714924219119072084045280889351125588814482910053153567621970379503565386516582996363958207643134614201881018468179805730744454762709411377580965334528544920137046294550892429926403083796766983199155394268861850855512200129891545612437831646465726760936079099638539622281884434623015407185115971913781689074420703839581265978582231135587420643883815016791477829675207341279930569226466681647033772966040477149244599651710850483700196851365026770938930625930800548537196126500412868471904361453498163371768919670697472826847034483741792395006707386111120710267799534345022894792376129954741993099572502686213098986175101614540552761838796074348143505124103175644560032333437410347361393313302494565654750401986657511759845973987925720841650218295037447455478788780679449701644942624091926373448962047749889021043911270550407237529575630463825838464370125408755642948692899515219330570247207285187231514018233749791896538618828537155744120737897347444816717704466019905088107388188097241510835661455010039327748435723029167893960279383659220184746584866712162356898575823593495104766956905442149267213030949580784190535959220830740617336970328266743596109751855220303513211307081395602679906844563275367418809422352346814403448918100400504456293039356647609037595290496039714140924551601384711189961677367940984827977930138744557732468927514003513979199008070018294072406041679774806512834583343527451356203977162303098666620151176428480614796162702522439957290909969969005935520646348120003247169131637226260014883036900696428928365478610558173036475759146038546236435006437336475274716670384341760252277823317857188029492959679222719566630069601251791684238945726252024027256160216191002442522086899761798107390028176343198741441301785040138576707554212435716220408015331871044955473591553774295921952141063105315856626796828455986991666627846144804589126035517668879000137473380649193065293535664060869526517388318083305373734814286177038086008401022531722569943358308598460276282175848864373492283417272445960562779160866643136056379837332649022058561414379784769090390306358772810714012944963926266673861621632988671807759497592402746888468161750309213003382317116376450932002438315960167184379210169841126142509785328691814443136859100571567003523288570354979846475318338465703763464882031684134904285137308198684593282384197262962830729749023723108117093510652975709280834716081114801482605167962952098844680865450720156366791296954458259495964310706480767313636353442729113789644887377553996330956736137503160864835492533844892929700646649321716095134926547601629549020388496984163091463996845912016604473934369981230824621574438982152939274426737843144660204889943043944107915816349748954219749057674750984486248158045364445969625459557064341144670454749917891510839857844885448606016743215391014325280950864793789789887598992838802938077060268817048853641316160511890839651338709974855859642885023324802846063600795278327031288214087525522975930076156616103358939572898673156416387143294666794714951750825429567586621070288914617997798847041096668362524022189202487626302597318867283939546457709749289170593315407877377892241067616451438425011180912402594584707921199022676886418096169918925541102741685410144934401881164517943864544282985398121356914793570742750794215034017081724259284473136397418312620270563702225971045274230568294635983810176691674752602448756944468815792996954834334950451022344065984678334125787731066603299303687821340426412855668085565035532598775022264986078117843412696793064026105338014531604763726932809236661448318234421663818599132361233686156445284632499627638118895407406374178434641599773371932268022744023337153583782051509928222812196297354103439909837683390065027684687004913025923184859857966116321401315117533926694832883330483896758887684583068287905362963655792968661419326381714630392484273700785314985875497727648801413963408050590891832539723564794362068265422303133638896740451377535259735644895258161817303522430302945461981703972912115220304502736932913520308733207777852645824098033262960695052058155048261263642657056152026205308969689575905962605008635760863828832274857492920916141822238575302612194296414362631263522917110781644783673493634703345324653670754570478688658791877702623296522926725136878001347243924240559862760074158337473595662499507262801918154970427428747013924625478643805373423016219430257477789625161938315960763674917016452892881099907613377605588009837358995145064610031674606011177892928762304498199219709414175876302771178506869068060087520167116414718462779727756952089994495113222488232059971687328858167842432612160231800609615903678494777575622629262111386169319376998187662043328237282104367249835385303356571857354761284117419614056297561290951352836626349969900759449933688638985104483037309029610389498303944025055272876592164381664600710032879640014711347144158918366063246142169092694856105498544187871418636328610086767466990325287335705540779302252753620656319671874471746752777283318763771469625007647015158033477310016696236210520871931329634820784199849489139585671383344407499899036529353241864047193371574964169816208950966573208167329606681969561056636386568607180659206916566328520762301055421504355846099779104939774859787321682396512537737453380994379635095852340842189030758225421573283111126133768342892368535822731583893781345491749632129555825167283549384939060599925840432146394447325565099475175439058946562424476796185413629608565912934984595061479578945065761729842805786323005277907931804630766984492750409321639960685685827760336017538612386001403948091549504955838264637675792633045420056127813256995393643906281103689078123198003168389949118249293342466990912823701951145623601517275065140845906240645190569139282394831414676736736926314650708159097057045997040308105774480105483371525671470530803234439008305743069906516550509905396759021095793755934925718583448422932552965389695557227467053554321492795998247085702613928019120230962319165786943464248348486495588484225403570444172782738301319691718436486967579677969267893939560366709816012229089994464707914480296118254146963543698439309358261392710709918781036163596389897973477351662793064526630361235421353508854184752058490413895710065896963217820263134477791927874248772316999100978184354439046305272480909224124782633815780112348066118914138271294365782477052065958269879124222576921552380505152783713934824916178967027181970334839657881320501615143316812581239111663345089602094609484897058620215556188017154663219308594018230470036576581734425260155606849059018035304407945444308550789344782490104967099507967776736664171655759278036003022583929242696021495140534447748587825506075009503123566211666097119107817821796528563560238883739097549788338257303726363656770374561882717687935241349094468574775204855366774114333203553155277536697461144906888633311037798378297637349884402295496510811535933765020135486856544749317012585101329187422913957223724595311509816061968765852307783344909060850967740128592909600964889822604449999183165719771339423633840141148008936945553942948096832193677676666384264203581706374429469364610591470613821249377208368235259307208723805167600413554961249471030396040066036343405633316304182646760554962645320974203992346817269104419154291953804985230424228900805532544721134335627855541754619018952678397510734457220489263197085174777426091100165544857514011370644800893530065278477654165216834478788496249546520288383324077351288675862159303699634365294001724701796412488306880178247348882086948510448907918468208661934990961057031237723790720281895927569450032964982806554125604496256797854337861395449190537439747044675506277113442541726238214059631398138837817260795724605487265199379444015960808608189660288301609922425618052340503553498474158222946893016917051013799100384109770898865248238299077364422496167588541290662723634374395729647677699339729451371384391945643605462530168134437209417737270052413222584339658749134489623366794859406584692178775694549396503205080324399323709729422118790889803565027577509300106062012906348292999900433318134370907427346605838002576825653416149113620057012262585378348577177204007222352108578293096358219488150089544958310862414344975429608019854872180467444394505591394458619711741866035825033236516422644871119686340983302747946371909247384934381292534341748751801125741744188101882651649262399269269337908073190826789981246481478780898134060030480427204695782634276465890923887539008621322069287211769414677180474593905766887367755769067140238424922977360004132385148163193166847537099185743630347116010776427140520859150506145038452866348420400719942065874573656694788684831040243424246305875605633651798307028721922988992544016875099529605144473682171785638961572270042991067094021139438236918851321251692743366416654113167624185399685662446708913166944871133150224304177028082848177023464651709070977488041620068254353916630873995807801136225698727971234306069712683877125854731685506208092599521299283537700459699765665811359824417203209214659002880034485879342424746835954637126249199622431225709288365089444515730801689132270686382440698274594797251532220282811646499334578426907373699432380897317930257233919048678115974423219496794375011267416660136557901746483437463283030768618546652582808318694183667334426799342354928748225599371374642173669244627906967543026258232176075576655246190317843157265403061089720006565499664548873270983128693997511274870214755650553772059183933877597413598722613399640723654150131021940768273015498541300647783031044565151712370378913198988529019909876345922118295994865321678966487418220353124009979928705797629933603301031950592330018079800574399565087530589913275775745174744345555319863251308345880472606790823076939094004504563225984539839157942323627127314198714195810655172251214750412244508270577212475440668612360846686893736024511853274982133730742434686500444538765942883194219338464803559361369750181989345647163249337453795635516741500832805658378196483612609914404141544256050584895641472178977695683316725477656747300648937015969476266791925656493433212892022710370259638582180533430165820952614677030979734563027018715565445691823584341915713941523492248745663500429589215020027065511127423378549797225375216189594947657016627686673193787530105598862912127723426835375509734404772419343504848553740421687181425540427046159291524540532470547602255120788917939122069498112563352112755687324552001966504994685040429770893768521860633362046338374385515966392216539761113551171743878203136535500645316562902156784381481676041575454498398850806346682003978792275331559005065948481104909836618708340458950269808589796677768810620638239197622034328966092564895920585233577746393812929454135795837714730413914602651223676108651412849365695753930964784957389568453560542505408548331357326414294357483774374607959814874851268420820772688068045823015071633594953009957976600688179996391571693421120642493814344302004631170426452278362461046421599130039658352237369483137173777015879642340779652167060364121842405178317260017114787092703225680171325929755391569694209293854121918458901638328395848472638424177206489695183759971793342105174859785598461379109247468914870741439336228417255975524230884087455301427655754356457861427861822993069649594620635901478824502731963451043529912215972594247527227813574025519912930739583758671942714652664710288073716092608727752040393563813138515105464615408458997414866237232372983976281162335503978597361228365092568318762016989046554534846883268445840042716859687738272566707197907149211481312162097401935269257209699296435876678030352181573712670570773058292271241825795766762234591461206421605626131162042229522805216305390908218796083799244912817509224078048352376229135142599662508262875381743597903725961387235369349478432027879296593119575752395656902512085039727551423803608646048347900518334754389694540938622182535770985169906571639970610796371135747242312854907996852709965658615659915193508901632716641307942104775435450808902717871080350922721371252949477662993516328571599115210084087663882938811453029835224227964524211082885112880420484254228223162078329152520713205986095031298632563209066811364386434489340525149805908464719057601359396816807730242515002657887066685439516254862051424776207993359687080162526599727556577140036406725569119909522863848838859807354115840839566818127608427895572304068033450178477023994329896899073984433398886489722319578585053778544783293656817938548781989020769490974853637273435953378028326064287113405345432817542835029809121788361691346264171446580773402787579135101141923675623931150337369097483102319670233893979279302920620068699862680027777020728766641600343494597558906713676272412535500621662463337567175856470066803844219777039851658884730022188084604308200514955151786609808950909397583436997884869113787368216472154093809056280427202793233355519792096588985428752973601661277927699261858907767135123144414320707249865457917869510426340923016966242105041041971828142737259743607360976061176695622254397134005920484791744257252079753284230266256432818221865676278898713485693505930675645306809954757607761202539601559623303152561386021328017050247261364788755649503404626698688927832924247285319594399340418277338527626630560705579701784836304812608583151732732502388335127688432290722951239605250222197320455086625268198096783261971300494921035875548397419188403277128725470111978254753639353311620017075023523237876079012370204567018188597157717333971015264848838094075002335061833056278659645167128206818970525427893770592846466382927241574057734384067455926523805375418792894022980906504521052430906147825405778690593131072307148361283717556577627056012685908250285428150433365084709143410748386987076785870185678997981554971725107930778804399687931063579420329111904311575140938030815289851377295451606243808291365995058701066321801172667314852496115032002813452132005250604853050220176502308007032656081946756229781833016144508124825671642265429106043971663846847165973226493477191327174420305337627334705228459514303162008631449585785805220981951135495822993543845521648279371655029935723103943418479662831311330772504211845805302610482312430597953402266680509938616564040207250505496744091997301742033444449144193764325983434330191514265812313164710811980284092906652263933207570179890201805337433330596960044090246116234600311414879271134348343336960673900121093211685421973515565872992007175409671709225172264077447965503535035293083512308197633899742224092815763423326843415033928646122453143590285370728854052364653027579042279861880944545737250926228605519302417758272090681349740197809627806895567078887796677361817875158577156666887169204603443810110222637529258950058883462391983085588645741732638788885501725829931757038768233672940909384303935866296789628847101133363432979134393180801551255941229594815312320956573432865770452681341263710340406229053517640744455104616688686092932157345468829698509422383343305607866895276255514652958597567802932511705276492241225467259819054245557950607283651113421448880780849920042905124113727173496011362960389866841656440510357569648293390451823928991013717025189183202747549269358811399982960575057257926160497468691030359350996403772416556521145626118611547003804408866991055811196712298518407650863994879538003079838968547595008716762797299530823750950495964445606123069619083832597258843114493235495734936603159925761978704992588884929801230789890567884827227557808755847206255093106667278991712343104427706389657504521804538485073327999639592581879469120876823796917971474704597228199981498152791438210326930347867509718299040444766120354795911452203015022650886726393619527447666237916088477663264668309372890357431867765560776934927880853642660999772768293021253442695101041987011976976949353381742944923371657059736101493334566131488645630056106688373808168848175219641590137324334202186575771821212035215703782789588780148533168901893183641359228526879830367150361272411300663229402333243837273121156861732164557840988041944907835224588220635494343073272287464762796653386086043208576729094722998401841286851749688476794348406029470944275894676079972838305959385589942311145943132151451955007058646602438730345953798744471229562334514688914936837090850517486448956123898233815099575616305580542389217639019647794737824972853467431643520004337645714394082237515340870540646985572995559367858874908975235007467240628635884870160604803967559382464588545915050208056552878462196340055680471612770262221242832986909294704285406729744570293181574536957021165033829099181878741465079071095201680351820514734219594267192016340469156194228246932901095942003493908743538233624924364106930257402008998027894314881921743537437985111906771586250926755155609384522929403629948566740694377943711622949923063644746612596813004651915356969023303169096077297032852123796888776024725687222135515854687282291811872598671616124412399638530945653516175257660154296721254371145484698203493867640085246614735400573293165136374332570980291671063659008763172632043613383382442371872624875368864994902018577157212749785714518062846181021645282762015661102604920568203816414893803878298493987655855606366915671000845211014685969504677619613802359470298657834037558211805358765927642984237904441858083536629127567633616961875174563417745117244372418267147575843946739148375630168331379121615358655864351375428546452026013629733989977111354569174980159284911377527858700672993231861036262114135568590245774924688190063984735418566687650384640378264968897651894282841219212518272169617828143166058352023525156238546672933546884253970298045362996171969430794618498881015001307066237262831868506262905823875327372032261417851462060090529933534298397119651438833917790223145139152976410247653717119368134905187060829183619944261576952708628423401533254491456166780206597036261424592445763811216148652897282631751075789262452615388866952455165010439566476399214416475193801659501161249398881673031767046005806347491464076121129213606366263822182503704923625846555282667000637966674784010057815179956887769912568607026519907316269231982577717705486503423572022133597728888479384940729746551480127433637531057616195046052267240353429605429126042618740819772136155079325280930210926949780459420811125041901047963325441608604790082496323601431595903116420421399063462408674342928026944397720328680235989166955535622788913628991325993013882077482186175981146398742383407813059426146200526515800798863631723408784716693184899041986506770700659611041315304753217862946201629544605168863720949247409764164042715412969454121161109168957799022886410669626354220673148029290978361741703095329827885261819973456586834719628046332990783834019118163094223914267908529124510866745044015338848658748365169736487405775987515081176442130614365442373161225508671076595667332246801658957121600752311085415545626897792829709921772506498328359046815339637056762138312967573230154763695650511944922362919085010663136593747900237303765095445561136389718730639685564887549178110297593711558043722173538397862731364282545629142469012674494621373976566094007210364395350987244923601204605118582620232764904909003934396907290416502916785420235274729131636254378320311948504198893075600737443282638425803574211904116071431684376684312384826850221956890986766380222936143960874523444207592107493701687324707791800207113556584607645183254382460672860199036168101922847991369437433862295813960025252945755744625229225648075248911631788884686799011321821745750395621243496641458053795162897863067951791111575226955055590704154914121332271942591878484150962954390024915616022688332164322970352912550228879584181539870406559700641933633855181876269357802770648038260913503475676517326866462481240572533304511640471994732481885885259071925548221881031826793588006936240337074490170700895293637008180604828076029169664656844151921252877806850736149708126427479923469818781872681845836523884167732943836483158357192114164703793837559139725203867558907024615944361536484986971823227529100723875485867013656186854076018000932030858789747969945890335398083606454663829305150264940133169862257871333579150546565769155745449853081988341621148395955567351571396034070734954150235911856765972900175185739096281365604596740656809256424888673739392279090347064833903302029231132348788142792212065878170392273414571939752892560522643699355898072677017665531780987072939778813231484674753000496178483275295073521802373038943566069657850515525418247446346072713417399490007224883774321127481707220080177828324269909739434282634369830908837173134279527574566470449507501879937986726769667003797296089657020989847946118273879925754150539090356461336300363281121293895994817138587600333277629425940851612697425751050848767605408352221981439088227107575070602260268779529510992566330869296665216098073392592803236039455356812720272184806699563235467798532690340374124571441725006503958440680748085176018869790861107703285303637104253418293736768567092425883386393853555580695830211835467959781731903271716421499921272778273857540459786234519329675762813353255314082206423493762267907042084265375182587379047614479036104225927539188355171589306325337610415047757257794135057836905884836332291208197188715602558096017984152173001114783617019905653634026451727318602340317731198584872984108994936699882879305234096310485538236818883701053964761667631397774273432165351098456237895909616215465786758364462090316116132732682649930448441586817626136143194743097072287829589596652982533752508919600875035878100644011818327781815899945156342534352118407009091829383459258895660345434604941136558492312521402606511655991057284893144936834412218819244035574706159020862061994423843215158926743858805854422608061849039961035634937468064251740951452770851614719165102071882410610580974238555120578668074182392591334630750961550190841537418407318718005423064843423499063681169792711064577923457786059373924048220113328872437057482237343175359773476826992421912463785183401932546112147526664897379542230299261128572611614619877327310362415342011277775127916104226670852547664198251003521793534513006782898976093615129811375491448821720958201924718832977257425266392764519349769369052118056689967223373045793342922251184676033844910518060673283186607939573619751333778492609627587442446762645374356752661875122457455877025103743810343700071598854588679330756373836054795950735432281558021257125698187243348190763286976302971587748118404439812333443512004168556890695648389396244190486177038177755034218202716797771857200957656087211295903956394353971439608975935522458039855023075558704211786289959770519854261649201596978825297615996669825095276900997379364980763505066552088544616222385019774955225616551082218486847318271367697799209638741250974647124897237321416356568254428125949959785026837870089058556679292348154527031001688722827221898697597796734713706496784167697772816257575863479720999194388747590196189139696375508146577626416490951079325765623991927140495534634568680104700703590200432457501705510995422202343545540516556074978044160976680464827508383496547320351532572539644274291930843587380144758721560495612088078445720390259974045696874980649112908413002947159128844294849186402630244708800618259069808274706813171106273584802146784094449635989006206817603787808634285983852695764998338950323650358381020994887046770531872596858523515455752127612193997546732229256352557607407274810124904003603054995551709706509595465773395181725548956026103141334846864889064112457358997744365359971268289775947733107693291988581568380087495547533756282981680246004405545772240074409702308022680569167260363154521385695998473979848333538765236881455157589060783506518671602217358939263182298538589858628893604625987705527832315481216753182294067980883557616640131878405874906858929482753583616051771353550330561931083362900853904681867289651894358521352507695057017665544645934806946454980101369848923223440036462584117192859087044195229587602331039588135810773709217876532592108995294676155982350533550756777590751376264903700729332676472294734356590362715863751375090788936536211026904532189324008288673990248380572085857682127024203221399576415489753025876430060581221974355906124776152493694417602295648755409958119632644748420368495141744579802175081794091718229416063440288126191520577499886646102799586167259131346559450241580067218598975668618057923329086801676961061040473074120100187705002346329235921832734155216845236109600970971393800013721645145164696038488172342688000775517025325806134773868447916220010749115710459412513325256263574702649030383532963281832232429378457487646695739716323143209277823947839986821843474890805944058292656542403064118130210260169451453363687609141590630518747132127974809328696085784442831431382626391502647986181768799274627073424101179060897034600541565100699199165839358947637639685290711017025632727413450065756481000447638196324374448364102696815478425783739124063852997375586042506074002139655613989643762136405984776117855932745051511759780495296283446579367252651270336430278853145313172932428575425786854294086211235926021632186830615248486068215861808077577532827477277245843428421704514832679619692290340997391917838808851350072974851905807470037221337754654134221872545792174981901904867309025462767205997209421501857419030822366069739700977246561246919950258627238644419144779688940292315665268925958366066135397667298345661533173555995387388948534292396364558578265949736882885981599567573363903069153145825459060970508136382415245854659135344718010477999394417728877395271945612186617465628678284069921645485409068926539789762787782955538426927925944849943703973704419990274843979932972327154479760838942493973632868948912120994757573453741056018811353124562373094843214956872785968256042507448437735875511991412784492415303530897668156654572452425390208446470248186279757895258062898377400615375779454265500463451616966952441215987286667271712331144964557898302229456897542454278673587669561605191776099840675571279562614672868167392573887593376385828634061756559719673661345815790790312631639416982202680423807037278310592768735839222829058928613684727747400167546415356804708431043702302270393144922052791809035701767863394694908588511444707740013007459489606417276946462049343958454797498871935705107502124966769636463285682620186282161059120599162722525079717184789042927919591327437718702287439120940122078945303310710007832844109939438934820111060160377451084276067016698770335935773682002319618832567357146041445887719796532894638268269746574716968970962626376246007755302301538774069610414275714189358549299966846950088521478596085813337994851719755572493928908831139474629728231076653581958377277730608772301010784269513360006551321987760738591631268216474909805190867627507893169900179993905988967276891949999340391829468052392195455035617526600639736239468699679564806652737200964663965764639519179971956812797670482805151599575022132699215776904122150469650024294318660563403749736542809015138288705336471434207069305883927865420971539423013732336768154612649793533853119978102002590752797277291520533160279121550949764452020207193142558366686769076022108230390001765679572910440906797399010619623638040449032940251127440048603208496970974364492975813206886527010709084594392026904391524669299204643203800228982282649130049833746437890154318478775673200656910929484967775359508274925266257861271010779832010925798607396036212576442907879101769880356792281757017641435842180951204578133803211301752881150949793617194929256391610494229855583676479946403536144591367363673404958199144621403703592184657324750422994236718132151766489048984278611251455591145026960563553921590221604740312871691042834525209762525915420083799103348910329667982459711870253611482148851530154002811952059084898391047961507370424586378746684042198487073633931935373331707287015323406374976454325388573026691723299189071463916216737434511889442101911916673508974946385855118008540232418107011793739606504525962892665589296224859858568155481330007321683900539759258810666915873859086449972411380784779653656658338180543943614029066472709484399412818899971935384860585180322278749039521303865775736363135142650842518411501918672854097591976360271149040448917278927592752857428779925474601163612481748082941848215179177109591123575553186242312411838037659522321990149041358942452221253932267720267313092895541393678433967277452437618014190106955821412658489852446111820468371246525666576569265500902428975308092230206037234166044897673859724153766141199358233005396641693959184522523062534042154142457028813557096407043664767487511239795649198621578024751628830376253562219607750795012366176836612946784864768457537417815689107550403802627098128787768717711546940433018789861152999048044814948344054796706578540718328733577923023419555724896131781208908952916950731016430476656145140225397649359560504181639282558089596103206653599384057399100215728974614570958943770940598838200208418702860021262210554881139607033066438538900177916635393705706054120910677635491561782634650123733219643633472587097626997312347530176208170739790300572654936177766481603174298399340587030080949030950769500666471330650054493970164417433942252826143153390416528482343881773201854230067349164426817048178361481024627653089522799612361463666159333329680017139202344631092933793761383704978989548721982487074394158155798408037529372394246465954100314689409103441893570328395018650478285308360958470249103188598588471547514367499492152858201801248778971041517958570872515949185735705409908543223406449724928809808144892731238467523147651517804370159437526891170160791527293912954323919962422906522208575389936530799318252584732974282643907152192719888576559823958934756808807115407467136213303074966681924072793842969430848467673078098648502887423497217520539961649822837768888944218619403894434674196698087468233091937615265279528571629538094335330295387087343549056128568507368687163081005925077114311655606321080882958433047544521682302455886461703808062360370870931194303004345291284448557780599288104979150231039024825915569893560087301125204467902649602591994999367672704714826173657789703251525919806272524549444230941406681882982662554756205959008124315737923216306358496805638570636324246874991637189255901751854095924903709462730171619849837163156567358812010480171098076365090956154290488915348491306524668844452051532200291843652519754826706388274590133916926817512247793684974060111555897741915725900355888560700847373942206297509390105065129800687502538294908960650121131093155799151330330859942307266944355742384669637373646337401105602432842392950464753824018470363020553810213941204155564096284274490655929711272222184448361133432043864504900827503955013822006939664158300581057222456243087900997750308556415252641553394592270945603255038567427138308503427699354761885708670012589798471841996464671056119163896329552998210626321036200107539353981019309074423065306599472504931637282960966397854851152895235705733053810850077337391701767964411579201686807511521485976725386526144308768807382002355825404185105753453579981677590036152041945515500575675823404001697440952414779217014235665017230802719391624821249531826755868258512622921461191259074503098598718035866906764194153785370629507920472732935885041601420823531314586109083315078884613501277303975101874697840449333902372592599284758313703297286338933095382561716210476143781239722337924429125797488864894030417247255249978394731855215964678345253308208248623440396738071814085470457533317374461890584066447594660337038640013486836099123880274833490707677271765630491979800087372167769658750406481524291399334662200923864834912397331767853505633089929279434565873237018098097087589534370261101906014431645730146108624033740269195329547825912851562927417448784777352313595823045806512974667870355355291854857302315536043600055696888888054151267912285483259826228240768599712480806550674375670899939875712770203864678658752701463941104412200185469716493781385012780563464662627080820066640744136033110471259248135963457833583221175056064447105480054513126348040522542569575127518943531949189662073111089611412587593499941718727047241087330231946605743315657466252412500355258022715539617114109319072528491461398541053038150342745434296226591432047456578325345889620466169799907999644142963380887871884792932694034893651939818352329428827401035680941611649676687060791704012376189544930367994315835902392144133443219591863877222162003712500213997322367188816330022994918224587511901234088406997245930273529521146946383199446309365835138264489800100991228646063656695449600789999425711091043656445203176860040121707680574317102200186136921692185979893669821423412386929700769181802296213454944564496242349406758023443867955814916873436153507579793404230490559457921280618185097454523072849296206678474647229259422566861154178277403775461735367033960557497862577671702043759150374578129712121511905399498640723787772922085794204265783782677836840236632925853511820923292051017212081799198264184648193958992184568233426727067023097620919795091117581829490391897251478215880050234210215580445441743225939342841692280442828229842093304956764067151292201131985324396820528069010756856811969994880457109173909196746760933987915159854356767793589122409875369600432055794294274026477538695017529266890524572275686257706425900924414685498640586439917608826892979254555080707565866418489191048693646889475024344095699589158128474883293601142270881815580329355748812481596210472240655465267110927220185465098327415664119945778653379751122629862625983628883955412396628715994097156014173173441880626847334246378952295206109227424940251926340053901587990737711023018797938650739589962512707334604949993226699755675390802248350914060780718660881348263151253578202938812054323579104343792168668090180477774196721553672852789489458436655045044531633183539284036912442995263726385898579605103648098083062445640277042526323057435298685205645770431166858741570394195412011392457239104402714010896518658561361419313012522935406209169992752813207556305537208851976363402104543335987579498683179617792573775464252623187900157061421377302632845537889931013196072561690134316898365778432860573703941336601220717001788794504947313766533081914327234867700626262868078987788015481003304952250202090674808577250597147114366460149469605203243829928132663158948433067023155381588336126947414275557604948606587981802468286165938954495036673550636111632541707974491270507913887998025969272968732153507112719817795208107684325400804538834473379816548517666214920409228770726731551755280850909043359060002652198812313360213666902426456641112454845221642909720906817929537760812698248067312476189499709206985434486126806987881802479454308588658984908459897988772783560761227509232238693941962312220456125742269316577724577173704731964376760679350822115976798197409758609924565213902430381897048214824278348794189457782635459168966337383618701180150850772565162989619083422738914358266236331924506141177428454603324064140813526765574510084083350586188085768066624854588519139526247019551126915672506366701555837941681149960456279050188552028090543410918920327700748436556087307867718087388359951994048783344925137775988774528394768367660223416727032606609178958065336051728297417007499707963857787422103748461496046829571341981276147368683046561184704388733608123367556281579130778660755658673070114296680859868036290671786098712962709150001665431450803040090128634503294338822223244661818866081736383274060597633830348963793061045598758435407436202345079708484749982389657196002540452259868038910645392568753078013201958947035034659664868570385325134227815224649836414613167106304211658988542903511564775057825529633192170086014797254743547850760730689041701536741848614251023820820479908869676589902989203264813924390422890576621932623400371568707199156622676982180549944408506066553433293391359830592941271710780897534628991471412406457077634900067617849963417412873964664113737687661258236733061896099668248810356505688978611487892610880031426075170116148203757987431993101129287102478136214959906188197796096752170926332911038541709885834315765226181656625592298220747716981503186923538738602029349543004087789869188672190838846377480624682742610961695356755450634764450249904439578678710065723729890172660012669997358305915170999256994696947139603834739580156276865246483313609473882545307083273484796796149244890826928428806956111154653125291563043218672489569031433197034361792025950971922835862333342198579740584334266115279294422463096048481506897797349429421250881129201166840417189791732975128864354151406420708760057903505465399498316696575866728995157387249926181637616390410243101785635802093746176112117669443890426657137741006715019890411518501292458503428565331157989434777529879759432075791418740407053780537205486757403898766092921711084421615320648009969698035927327212151499915339026408616813436410361557889734306469955157573099978340089421282659074277957597620820585468786268810285508522413108662420252443155862809174341830535129639482555547962318840335681929594187389232395877259416206111937403568950659526839033874369156495390663469513604982663837670738646811040379525449821084026893880716847795737285887779212101661145358654637968943509957933058657179434558799029179775133833148414975164806074442620798375915911450813479258768705386874694307959983938181329285896188469891506748930396057167671057593495603801012936439081214365253817293220093687328460743097595254810716649682142827353422644596389732593766289050490766303152169365710029275365819457610137977929636726672496969728316814316783008723933733631489579677729982449151327836470295299991977544499280700741949682714665682191184736915398175602900398323888874874831008438519874782324808663150298733994230027497469708907934568606601256526940214697994084341648290746762851332593705508718688226769002010809946419553061110567802042847331243973500850381869928142713105037450737107046239088351773706832584662079741496262144028599172998153377392230988654231007342552320658639261046112412420099967619958815269214753375864404017401136680385152780771896404386391022212131352866942773899576492036985677613411097105293623394869494147997107803516048007925244997864793875797065344185357265471793524116219008995111745184356051192246703457149047681247782796117538176408378144564435043270991742575467760129366238441795800389156779186572572506548325164543338676881634692666696349431674386916010654848475131949363147644266613181785531236665708353800114664905003573058039740146095676844731932185980691601304803577792178697081745004277554960236581442620031472336003544372189968018881096053840381387053610747239756038700666386430800223116854136570704764371658751722227465369404357526486563390196483598316844447216321729001998410075832857230132609012196470110465969023817565219236837148495284283671849913693462800091766695644112912832575992477665625318419782001681108866335525519568039809641293416780854446411114218943453727721132652589148035746417431488786667731493307090860615663768489407006817218835383123720434093022012589366310038617640030306894103222290996282266171188141334252564706528391290132156520917301682130313443945219690164230329910837988846233532097319513620091750571742630275612036391075855647861759372364176988693902114101297753595999394644070561711013849803747000529179514564008473068285625481812475339032397857507435112852749951751910333118670818233835739213554113610536656035621713587534518247527551454426768901145946953289421903335690473895200588412756499620904302197304662262142859986741810720238499269767561059035796176345267790532695288452741169912252731980774730122932209578558407179472718691335766076387617333781670037212213272954489652963854166174372838582504886454057328670259410183730122965763324628218606659027898074081359870313596758993665730555645278280443393079046985742191367449505006967901142228708877465002407698748807192920592445530724842898261042944377520437443258082089235829418211941849058826659372678154551177672786273879262951529965444300180409380271907203413346455035839027554877973995076488049419673438820598956067502472906152951774159744742207844017803044333813210696707901150671416013543096971987624865465077927105609673017323036276380439467942870929058260145895938328275081698115865482177103330579917682703462470668115407926256716138158265727900280835609275376571454305998294001394296360545399768788381989937626507942388442407613065104487173707905516775903254374058445552436231409323156435829772165065288225190947617462327185225513815936604457390742727530724380207874711551159678562606835984952864100057947745370255088940997817858150673376799623690978524443453271153465327541325452604786919574673153042064717935379384120572915081931360231513754355190660730074620839877299029288820522808629102451838697825814311212672694602108878688427495385660352486604483197190389687536669078392161883550127127105736349181711586684974781476140125513632272603253083273528861859757605801482334584902103465793673592485580248216632152383607928533513386010858582826740047553967750831097840937988600365471095299090807905803779467578764653677055568488748739547299265004438306648356677242090552842042747670390934873511122185576251077530831594682182822226246505052518397328740092816492694469578452035569646027326518117612413820562343209855989410920000675994883913437726571398529871773424676227532228893397044262394015571998570258289236707735843522427585143697487709328772870295146951340951189927517047755018072148499925349758096870504654836475249870189618539676395385178393135624532929791474218665889399895191770796740303359472088275293062131514005117031677649891738660892707243113313218237296458431543720418240059074032428877675018027483291237797661815638829219342460619907341203177776506575216370667701054624959208820177645474465927871807206260775266277794653811180178848443353278923641757182738877951029549155649327213504180425764532494078288660858298890253963007935767873371084297158031909865113345662640934485159230756519259599921927841645786783748019424137172976240353169418283911650627742708860376799957745272970930281263054970555030987874704325422304687764587339359089536553761797225813967954190842024168574707703020555698502869697090589309625034825266532944215894391497329755296826852171401263387797588602252983161759228907542293206286330667833459967461940704453537711246509572018724920353370586544087665102217860532945123237226123012660353199516055623936222303679309381131769577032202889498402908537918074542896261111570684929797497860977017015269193344883413444631550952297190088318777776414176283508737094299973348838509712326763371995438464377983329574348444420613036667851974404895485219849999003074261085225347881537426211975245282515765273657806564879849861487858112721349775688270984168893633297154797339052160129147454527895190914317244232285848784615595993088602639768627032060573765885821290655885499612481939518316056149851179433806841418810089393465496614637233760100203141600055177564549805055015816915198371317521842361770829381537232426271792471244061666409171995269117753176475432226070401586649196995160920707884671441125002267780378947895741138385773205472435059747340101017065203678571029304682721384092942090712787969576081491002897543694170115146867753348774109484119779995666134694872477437719691992868158452329443245736023600835386707641365042548354627933246658404620870148248184675169308290677800328113807387081333221742399830373974496811914135336757134496478803535019190006246388586989689326437104337226562573039524282399342352251340540847962065948322280099647777310815906614513217651779945652692266601217339064242406748957260946470754177258527645194520145378521304549257037333281863142098529699300445393580480064751896124074603750741965361602138705167707543636155935198057980077259458175013304248650384378398098803896948650658685044268066783808163712229861001457919589440286842473351636339045468163576923923420507439866678239708836434738617390130287510070208178390818563414307955704861639941493078221631447208108522978222800964449541490931460701521253347803476952048527696503472415009124795795276768491206453806140413275510238574849707701802024353531671747803839229357722913049523159693761569678819258689780892627796097179559809067157082936056801756226524335922133376112658863355248666620115559494395377871314014374640833963842095167782802444756500255502950839430509535850534629329761143858590672360895879371069461087333114258122531350790048272155565346768982685958313429737934571997409500855340744518968827634747020403110460060564419313439725623670775012802013916136471570810797877056133855537720794127868239863439186239384711683501445289765192325298115235474759782649796551682120584009971851864655508492820486379732492995566391933916039189507692890311442704348566734554370255303659878361172596587640620434636897613900751808987575354640234247897807427380301700304654506859861138711792493348593637584570211070796012456044939376671947734599044233738156228051795773161343837368949208711002487488144499827322140964702099426831274707964554113421200127651416959124301650751414900887444427542707878616624461383302931839540994026849923326341167982244502089048517610504692668330976590569175643428244332119059611787267474650536281144966036129201631407272477024926835797930194775755973595213284106469392215118681817191361945582742410529866927563824538010296996498708177034466048158881373262109232565402391720747125517202177973314776695510316379540126269373819630812055617831882439314982175422874185735475345399335075996804319659376145153688225539621170119276156498886102704370978403685399375897990862306557292467793986758925388681697978393418677655999146733030143183709688121559408581897334425954208755918498647495409333492993095650540318828257351214923713281920275094145471379621054086861042154562944082783490986035486108710625655540045896957219050419930598634438790232596627742662063017328579212228750132828772006987290168230071052532431225092012721590549273248458658133478063666421543336379386515838489273526339422314690881002629129899912550350681043215980052223970307220132195800796084402595213087255847145139392215697053431117380561297524203465410594689387026306837931868701787099664020532185071153189142722574046577195936465969659422471247295878490137735669515604421286983982717583982957108142762073068066617631503152358413661277240562351270334987714715193016198312852349245937320486981378707169266085397839947436145502409603647337502982009770000171662895548882033101325423309829097282718505370047431791692825958261089060557049817393964382780220883313534923055220463452652733994299590246604439412486264248847961058391601950054296913827195285961760693157797031303928950387422559466909796781674618624712214287638635274378548398558897956711056168292992468120221578684103624973001728476332200591031486927970492629225053399826778993709901557340193948762371102884879267763720659205154282421254233363469596237354463855320343471151110466142579267963845662069855168677728402661298722343720597919766490578816272708998656375494699339907632285437337362555807751681913915990050950910367694687920873732538550353788715347912781429621379529632616842268175599075339111191555423879813231636921497012666766224843876114754200368176680913654039534270622215339647730092155162717728352722968076485459345162444058658032744333255874059546968599809321686431836574356685158846397075883974209315587923151617245694688392293391787270692024903759186651592540264830000026775592249985732371806879647496948279359738201213541760373022041023520902531982298271093197220818039091937423569004586679515987966398242996341295409157930569733713916009558594096498593339230496312024656352203020790256272659765739223180245461008353897207596538566442386539150443332097302690459667350110554896749662578256776558001709638191933018485109583609679851798947276153473645654086098234228201812562740367134560274819228706460357128852251717088389147722557926760638816494691576525832985045169190199746426774721269339172080582588850509548663727696330280036095730611130268276670907044176013314842382748210706155954698795032663909125297523564190414439815263335173660208192512332705555391917428818744866065503547964159477463707631493520536311635570792255436819120590664030822353691927582336764828178036629403894273628694873000321642281286066876023849514895614326276152246241659908594098445833820927941590138150185469238809841114912779400929563676476889584824067387408403395214394894163880045427041237161930918701567899369609141309135023651066598001216010775065518053598624949214951253512551557180015070245313323920881075807644504565648859911089084893826169638951106482563533214303292641906068156159776579115519815558447579737457538725043245188824134149674877728411641864690429595157301809269569569144454054649134632249815362269974173873739134461995287859227064693302328657950774754714738320795049842661424226202554816984334635442079517950625589054806588094611366197231461749794227520167837415620196591257280581881227935403231340519083675302701759067753828531642575452988882522670992684131165957071077900139281444551832515096257138306199694016863339093169524873113737554810194657649991084749232199711381668050886712294226755303267127551482028986438349177938769964486255535142983943470557764149728865741669821899668916493664246618640301268533889516536127923168979005700266176354909805870136775573687508493487981052845158112505131881146815456346919881863394421014610285300176206177787907448903844678221108046049209463516202665271294343084757236089360987152227350671520365271028792133874348625206412644955731440546031778140040096282057473683900660378362851687249286027591433580686338220638788176180048673626792218102134358076545835772084118876325420310436257608831192472118958074960349560220725611160603065434128817846603803399996847007252959475917369621771213319052507715833733292025709319130543970302732690745849142577685933260379084873690229671767092761468559326454563113052286285147292476469104989250142551129237423661433030807979257328784471368206362629558841634066622257215891791852095225066341465156219166805014648292350479875084316703512375961541963075143367018407252769173419310930891367551776700303186689509451972101423184312983074791617163776194969363965701352161578986396266134011006958592850744765551869163608894092681399825852665982908019490846508302745632081378221088125811353684159097338158829801948971114981088103116006963968313573993613817388822264121707325017238309369166809878639348199092060867518780276921643500626155172136978243984959948077871294459259827586530131905065772332962194152587665754366156404024597836181356781374458233949865174926397288641960789046108704491586495460440516433547543965092598859444385494142527920898958270612905949481932338601510403936514995685920420147427905611800253265279598948545584213979217986858339752411907548578457880818850752958823201424294409856832060872265505196377014837041738056534695751587898111292480494126977411815398484352691384326851632134960525149531884365534701316599940106066497778171487898334137955543002237085377382964069269648834269827462578262260622526514864795602865944670488184959276212752611875284712008773537287097550861677415308299051134132694447957801250191624127120919614790972220687370219402719653372565567260556009867053248652974416777333456658051069406305663638011923015614590873737685139871779208038229671524010785684540680269144323837732782866066410654375123467879429953021039033103423472904433037656403402728466440013506452230075943317209119144789029027543824573415739531274356975363557246465246019732538580844545513620454218409960174001205826314623336901026007587332838555732494405200482768413658682482558374469343834364317036371774289444259156231763717235248858528723789258344511319061660797457920607833120752591202937436373213398435213030299487666495978047244854156648216346152919468403083982634339314668838385896415622336587631971506623238491318522417382410247254921240342789842396976428450658088876163360953627529318978401177924331612467398882002761340368376235156594400562617164791393805691406799945666149153270413904796727313697355453492536510405373605344020269881682742249705145072351656056427834413803966009692202573797615383615647029185981678643117159819896793813693556191918601951242628746331854060041686345505730949641815388077390323497194283542921174772326365507683243258216011692768141985761841696049622333781266164434573148038733763557461373770242839964860594745045505266202890084825854666895797637993940466149252632433998777722214095113831873163552154683783985616727398687066341487705417593421258968860918611201094230728383520898908437801510047345804012927202108199049010239143326090596173697688987260336712184203482698352478148428978412793406176290329295205102582485717986353783901538345704012231328321621953517586754523164330589245945140460667807654021548782992393294935215597658442559513321321100234987117562127350134861660519142615372570053959532800822606221893486689232550243196695453192033851792767281976299609180400556098528930932002858748455630026066318869465249521665842254101731398126491632366968354958509570413370073098735417428128259426989448115462705391738455330989977834685989333975016939889763617728282076784391871621959097928593023320156457678428781667789777225462716370384108478864865570981023414126067039549760062589701298332984937925624070663042241249507150532625515366801557762574386261218423030419950120370411741050526391355827588508276187651021330571112278967137483213627508971934170605963347713859495898349291963108110833167834518426452606968803079759257336229957636763064529308260845657080751740427456282354218601567767662130746015853007706219090913892678585377769985960886286289116502243180492075062296156825982227792255655474464168998207235430988127990451566503098366886100521715394312300748432614424772632430048809349794990786497914448417077264416330502497694207629978442108415172551192695181130694728358797792470702536217341283878579856674333472663317025881356263711679086767291946604261535101834811924747120689734600085978031965849072460635367741720239891711772560600491670019504106840362844480475286549425493753315256970949079490799863881442229849453877842792121154282063528873077735002851634779137171116432782369632635748277013707177484808553698771953648775820079390773699979670137956781370454780125152231623803172598342217912904482145352663577282005141805709398631669657229596519356421035993355734257305714445571269283003916372093422106943050763270484984981990223729669462711966815689568935016905679760902370357759260066734631704842028998848206811387733327122991498704952920050008594263058722552941660059400637217662872410032399790206672779862910627897744586335333262836375428302063939597919950986365373001551993880155208464767297120161149546453070830185761629907060135850780814698322595143054833252120875162037990941357677890745842456324494130132785043148516757938681011995484108011993830936628166167811369817756056894850934172694303614161835520100201520317934463270590774582308962378179719639141677012989400207032744802289930337230743960563647989324658516407222932399179733455556519808236304458812609086761310744600819620760592754319532815560788212798946809331148370543215188292334656303030928959404784282456803188681035089071848113488427625153253412820311737098471069464578740568946145478659580558705995614458733901635955872098118851587985270385010851177559413473014740027388507564220333797484768507693615292775233074015953986577078300666365852631591277945057048884383778770188218193438650920053581817551353544829655113194700069995201535305197097416146668757119660850502735141117341164672321380600728309401216695054391921857359259858306026794465171083408503403585104411473736157033970437039785728687182786842108338574058810807881469470983668873830085332358644502922120233413728289397193559742565848030014848910050254623226009586110964278033386990537672219603904031935282492044558515784058827527192470739486962362434928101237154697393583239814240246981620752474623375453969571041369204120255739550569075296286256259460908407361830571251010044033268318133708105301095738578593091066385065824547185460138492265286394579751661278764089345256701972942979319741919282953766944791429007698805154122505424920868002921962501416292782928878224941165563415140497905519911959706386443474343178650895520934757328961518892008462611085031698984343230340565736755729324133565666326224665995836542731338247756602977608932282296874409368942221900421881500107555473834431639897406269913455283846739042488570237579198504908932082776838059981776681244763200230033269119254268333454399545000537066120114354614368218626299823708107435278927806727719932373616647426163203489440746975891892161008664286771259981985895117662094716851103879011247524839114353484180804991048049828032886147267993379966327201159657717948576540462947442262035002347941573638813760475738850356451810858544380891382522775453989341889263791457963988957523390673735541832556877807684109366628124182377635694844530683294809789320679286972133606947560914946346026927578609617216613750065263582721386135380567843084981182811796861080771668622419772115336413230057251261927469113108085089221693290049751865714289940537878914285915427652016338711630538663737401757264210133300032778881512720063658303341351486822679556665839060884080897880131562064961452494204901118419876960459487497409951032573608877242503351149544914483850747428694159664787268053372353172506257253575804679707304798257202791178669680505435016044935300251860628282107248422963644933290819915120912966249722762107037146491170695083623965862117442377467689064427825750675134061431858025369573441623747669287193006096803412971485980429057825462567346888958750769539715423773500010661739642099483762622253630076051629576837141721704301166700570599120988807175556676911239912100419603004569317363782797146164996457767221880214123545686847074564903676061340753787287096757916247255183232279932006612391247966782340637198843800660026549370877545804719048071809277220609927296298670817178702187911227968288786183468300674764535004402105114640886103174050819477047945148821819687630965039390004844288472700534499891253025174130616491981869512041577002171154649684819965980170430864825107720421122002349300902862797158622514900968928208256422041288636399043200336957352982065390392740945182057922870446283399750181666771001132369341668905620000664423110443764568871781218086320167202646823869275246294551451929321628078989845346893671305260027083763759978358621337787080910360067021204279459832099112684377574391813068868228352725092822489392846325567528026261898464985301755281183037381500934039674387640806439082563374025435081395670449714223897688507531855592458209335132896367969414908009899133924256958101426654398807069246729780080712133898113556145778646369569500060602355758855929788991471282764760640709307632029974618470270692252860078025534199977522077194417370040880949412105665846093008649389306747862727163243771025802889720714367933299985821431665914223338406750291518399930037785624092871164686502718898607083687729779371448460164702548368868123613101514315897784934335781199201129279327629934534410124214657443671884407683774200817590700751182665995232018890767439242987936023965999024007661189282921932962157944301541411379079625300068388572685441464954214731373473154827970158263525753086197913102075524273521528017880589167097872613534587035770616993741358106673952281210799918593867902162769675095635398715861979704556537076707977089916584183581059829065818040479394881524068192937323102575101781505498990518565357402349051303479292397439531307303180378581098395765745650970989370848660833450187072259964673362500818379117413092018336405556980725621682467386018776535324503096505715761490427046257231901887475109600306214937529205327100503264834024129936474747835507588650115031383937457955466789310214467669483032645697753135339101387194014176219565876842435972097039951358051250237835713617940382130830932480191535828145739643991944619627520433319235052241597337980058017312737624381358732049910051963431589930793872558328290605446823768177475327035411772652940227487759425904775202517496113240822241589443645606414320052330504144511195723079270410883646995700399254195692595767348056662153488801538507630053192828535914013203326727923500564644749920684171963607567596529909126072002564307408937991358218147029637632594114059359766023708735330536570520099666580642455220068173212177637383837292650575147217956356004831244581384797978866247040275093283948717579888811951053848744457030629305045874440335823773833241099220715751873376147185884851793554313184947593215553503010641915612835447812019450709189223542347105481190422178531413476846662300423237462707217092888194958244611659467267175040753173541342752315867779212426275479299902164016947750515607663897505732448015002112109800971685276976769814551989840901619361415501380930416072708491808548981347849096951444559773794280740145666183835417343261407852499143417797843484219458627929089354426544757535783983734374098632957496972104278511573671464191976245547123367628379782165564935751600919547307440105656210211758164507873976705895169852789579108483871436132532807494481279666550591098944174143816477419376945300429957814211321678098059222905896225178210091490029344111264952397636511160523724448411336807888626283052571053806842853166123206977026849639684038448303393120914589655400383476552946746722210450920872156464219825816936742706333872816947069752969258176828197439462687816136029260236999789957789690913696325320373702714238505781831148995256470294065233415672664632752638866017003381825083689649029711323397332873770506644326438719800911077021670144519965200777474741553732646955704611132202073708692391861240410367937812733758823912487997851232503694719670903875480665025735266488038221821535797490661186140409209774139126354991094705542270425071218128909695213372344263383624926976705880192192632282098662763602467586910945467700610331300684456066609355344579937762873977882824012546670127215172999827848334649118441358669095310631762259081693759309829234550933547541439555982064526760285949080538363506005348457879645120951844301387412860975192610920516520306366654629186620125098862797470479816899171497047516866534992882181291327613032612744976932719680584490122684756978846431605917911652986713280829258146748227834342364121780273394022884760023031723987480159272283954616875079756601632688179469898413903632160026447362380169593204739963311013594166051179430396059743725262053682801124588263942491290117893942339927931511757332337717821084014126051197078621963314620535083967150252642462453179602788049659458057594921569278574225244279064350529809794449972262745225782859667794617233558053974722880985227251227316142212795597757560000572069985689288476204470709701104254811880590662309098575076432902732664581134098123739932894551581382185812898622009650304850197735046329148225564485143869216206929431321487786402545341948160219418896046587335249263298716685412967727266380735585517995772032913840623672509749163235113352855686046680389278993932692916493318791674036168158602787656001774079159665407227942430524817707356104109434357572604765556699059353536699746127130587688719471268287836528616683573040814217219678231644759581082745984790242851898192547228705982103753431104594302571676141137512696665274287571886240875554186228560719762428652168141632437392346168836903172975164775978206086998077870832949049543222940229665491978403768944632835253396685199429318407459879231954019485041634276155381259903183301252239838396716643022545626308414680811543181122072282330607031088415971800169741073148254781125817413831870137329946517007240073194261405891734911683813851587610592981752485284568388393673370768398061918564051089129537423575848789955776086323636990084668974320918927054020641684288790120119241574892337136832240671016246179022971094050697714832040121104796225187964612031945174747211550274181046565775908251824288456647062324329502811965857168416074621421320493482873103574673285759873743850446283634343279841847059797464699383662121168329871992660098180510384860711250485456095236497077201052570426191581568469123966438830187683126936779253040727035692647414249729501109732968837506710441812804796395163884075857581203783325235774477685688642706947589973105118237782119234352421044084425657489591693820565544787163645924432566682933279758763130692233588350927066973475787794325989442533316508011464595323966841612193557168472275629938245273777864200242293065992546604248565635969956161715708116501268629489193106722414960760184314312931730812473818024275582012378472736487250247274567607605688350358838200207461907109704102609705269060984904887946156831290255241311027939712861014006180454912163777708435154117667669429428419450997131332989001838258023040799720918836289094784649315147488439834490955294333196171579080039200530086749784851047370675287270886070783588248885870593199077855321511175383597135047657652076462631322543008892938305692410163763222769048668501507576325507865902144405835500078499649956413395915919887245528850924912900874028974200192084062213702169767385777222832171769739608171472093604576164846539008147266950888711251649784858803581913799817072270958768620340419118591759548921795061353034847595364501220421009775115955734872293417491082479711959684087750287341711411134753045616443921976862072000364691243076013805874426247899724028775830365964933108127542727568557727746045109498981485925147876383020099929389484335479185626322055630793852943868478087427526087417056179275145746374092719330365188044609333354016084155287309949877994830475625314709713952039413600110669875372956167309035519306235118254736804364003690752567942086152850722567549528661850783874808675133821328429765302934686447838704813976868980944973991490691569197770581182112882732675837539903376204588765772836777301473334703767545265423010162627119657450865557603086894650758409663457687429440114352566552936132978513632601887474493723914424152716160702094414816310024303586045068636134913571225215051402685215877274720753625593056979679502217943159032316779397877816541008893282457815457078382157104819005856449162460019066645247941423432856355559549726739331528358606227472349103810358403556260263425452123084416374645064175409447690831124921118755672638028562764926511749303270298518041168922239101384808199094462749010760046851582951848558990098130572681098451945856728256407949383932184561098837052568408367276292441909619462382004663993265278619538542964073630429189141978473211292484721444470211060211077433903281774361704067012735783481625086571806267278426919862584870155785998703351780540055889824511162395473233907969896277908949762563928288872817392437607779219437312463496278245301490130131983056424545158669518891168404615323989617878828704358968330694645416076420329146878846112024073271058837597140232191630016841029263572793528831071362558574942304480145525094589447295820013709908541296907034932322511501919863569598800997388545152186715561428276486092866252223539818427928541772057501317102979911514426604380905593692994712709443852485632033414628976196528049104351167017036953276159293471439686239141240727914135984920150000536761266400133715689849156972450951057270105698681442217032384144951775374093655565361510800414613480869962632383127921882522556269641581211796210562359030149780309954333845850383904763876909620112970193092020883569957598839381017783767013960357164757845772457695724913746697017346747585547718318882283782739929184515594012907603086720325095357335937206951927440069650394094171696015751223913061493633112051395204722810144730418324678374963360312006610152789349819513016933652537874125047705328413897101299153252656615131969225314077336066331216320284199728708496559693681623991496490014723871079291931649447949033261153927004133700057508371942811244515021087758821463410318020922635205086726310740741839727330489852018864473216926664247591555204970122367102176154683943369260444486198422960394903336697832502833864834532912271910009075735857656547069132598580002326858083123698449150616247032082454202600798158228381319832898040631057595352119426003648070323744115117974562663314382340774244945738789383777512895359900062617031193787270082841559170565518622230188767445817359993527674815080016355622736251799279498801073670414536566162937407122427132134542216403923710524725815418678728157496516055960819549686410819272090576986877652775684394010796610233674148300512177910581187294860861403615249273798365377948261953238815981428099041074434393918570246155138066255530946299026635596503511389770849523245990599801705899899450546152655149211005182385855395383204861391786865641996930662034694752328565803044765949099916649804255988640279849911286583831854826407988887975278523548912455545095710971747581255160050550866097489071575370522735116919062624112902553742831901840736499558404324340136756646584875856361125096555868492114912713497339182478415330697865593914166614984778336351363030036006186050246164164930754155890174300741059509698571057882638890708114597785993098524270347660954128237592395048157960893846996302150060704617056768143226502560567282368642293259358812720493462026387152747184828562805439965177010311873640249523837204846806951541988146414925907562192412228416043121136698382153411243263431888820742473858655425086173860489613497987949112660265150108721915978801130987571649179176710493101320888366365269357555947282216394438522552721524545455940537106163321630577990241937741336102051833290831773137257857583235960599350030479703281574954507922916880188343035267603939937516580680735697547761616328989184515455334424518810611792611854317834445229142739037561144197038124637035627592266524447552997739038426187410970470883208415826069307745459572036645767085383734910554054512838226340571515227908669482964666444216288278787241648365093301071105095632161776272284284399738884576219425214231192978813764852196030362989799865746220728147632208753200230566097212172230762491409941079075492356250290624221230020118804149685516311119529902945304760196118053642783598143157861829990241955793911491397934541718657656875083648142449287211831091668352571884712498469377128854958215876939632081251436663312692368233830925053994064041920341096326791261286192064858008466431064228382062234801971083818948160758334120542261612367505680501424455099792710178209159219684127545391997575609031151180724385282334801221971281374487466963843166595069518577310561737027319966018124323662816451102286793331650491658152672230180778832285057453785777343348005361894021168646571292945839729134996622313795333130023272028330846248794095398920744757129635042754548984632271594613894541697482005464285523903402023060946090110243689170518881654976899286422690477773726170523626564514306264661507660250459447283965673450105335801975915911863399226202763137994784683728627391496600193873757066596040871778479309674849029549624433243695295265349706790405579285390613532997026860657354845484287295326851070319039183640668851253411422277823210763209446754199780612072013430128492049072758947574118564273923057203819891895163458530539069824778292587391179884760401146145262862853630506772338132608120320541860049881906529157902817998035824072365952837385634534155292204287718853030808933163361305609098476550569286488823923252071466335108189616277617417586066911321676557991524422576281893413963835309178451668506039305697676229327512642043585142931014168567419815879351253679576954889654185013287056301435755080055820534023782680681528926967997475266377883865980037393746849989531473670258668740429496717258045651691280120653020278595165871259487108378865925829775537507849559317087099300697391032746122823332858620719135805055310530253417592097610035425287077691250026388050940663918187290142431564032309260216051125135505353717217119254893083501142143716078020227008409042394344119067882447229894490597446470810222418758996675749448340116692214984573017187261101409883752246591997058762191714634470511002839667162216225518995099946221109835182444336978446596251620565225905073129475986808092535534051525788734947857411237574383924664185076198323914348909606030925542734241668971693105292934223540821349537385713390352825130319149897610568699671802467422190146984753825111597228438818110386414886744716364018757292322154746856753733465734842948439432069836603483405494665753785247855732068670453446924403201562463814222771545755687526152050609803138339314976192106382786682899332840404416741722013189733434272988561392381278564742018195866005117369293274884196861510444836361821107435551670166283846053242236417690081938568075107309906125311490421116990690788576565322987551077277400263673485885650867991599771443589415380181392170205489540448305391837159468901895010496814059100312027581507979265175199126944465637739472425166068769774476945747318646654815377241517916819886588378843021217497962585072451357717816790908728330842942585032747518061346741142666265519590984000507857918868807173862404097436942400791327059439025366276368371428748035920326404522835583848143347781895770003700753455103265392233777023599958280764391590838029897909605668795447206814795928714195378255657986016694611855431265170468199827983989293970695436368662325713245702976592256375710325126143938073162478400249465095581622189096903648597320153600856996700859928470960598640621656036250346193250889436742895759752010716599865109389389558096455256237644202548222244414545948241288520290095257897517729393910497642797880104607669688469541073663332634664595818610569217052153317189138554305134642976288451741456935515809262719072922956992390140843542277411568503009112020051450743922447917819702732112086389954987691515200424731608865673163720030022328648146402447265617307524553502282326855358232958192346239622196014308477479005648882385416214675588569313918126318236946101758975767197293566209646658105845034470160687687634763685378800303499135783718635345419394371016392161531132159633149996399040215160417718416678766285628718591907917469792987397166970493541737496617662415388177038306525719319721670429541760669501315823115242903927220986506806599568677013258530611894470718760266453351939004048431910940880358032073818934232067756866509233978680106472773676156574873355869339372801381665366921229324936426916427567360590329897280607631642710344492968860132403947300980102431741495298765311233411011633069721019174472429263843784428056288972009342921571745110884618343139498605522451145434544240482541753830791622267242301512122168189754894212623962461604271921697530029641225064624485293395822997903572077783490475193774197471248695268969323507448119537585592095875156316703159218078795990363952857056837371305375382378718475353982622993685042276877821422165936305952465920625804287654693073491425059801626874905121844534981997696353859577309755553592443102205922862610656996496832541004076439338298023242948544237881630925427508533395229473986004340208904772080848170500145292151961219190066730418134829247572783699319363542751517464923259559026277522258890424771311112626326632862846924672946653984712894746509320187036280896808790718617428859297023116774592771928716684888349176966628904244482639913780200764063701384141131718183375797190849150657142880557036350952463973327707681322330434860174196145245518793180123931895741059575673386775046284887594572559053905389607001075240095929632908619047765585977916937775204724508231314740264405715709129942811721348096943663699097061856078396516905186822043418229231854165012182032242359649340781562043162534567089349858581005027154536257159553130275948256176266918113959606495936017682755225372522189323600285284797489192529019018314330900567445936863272204615710750096162784980822817270852505485538203103509652135486786904946095100346642248356507204270501385301776614586239883210206944559652288396053800080299434776852177580163665324413960465684580839003118085614101110477388517738730664611135113475206872759137933582304571244742118075595890308113237146513000395819184031056444607790561058086411606002861264344742118876735078609491877745358286594751941252083389033805738222943601641839365479906156847771049418358235620837238566636439993675163594232244079991845745611730129874840984218503026493665696599683915071772559125681178583556536029422504188970214416523346854835603088903335873119613490180456693622717229668558479677307832801778798648137861863189283515173517131947902107261267582430478132574912762564111578259712669496258168935298896661587887631287283116600931704033562405395251526489117215206435933903227825332749014861362100702703754375028621064279564100938099935820652109762966873659408784434955231584359167951010313493819303172506758930633936288302363005354546066860112161827561011969796448556712759876712352705850070336547571796288353479148768789814936754587160011505024775215485987040210125585974627549191188452458812975057292194505672414404305362514235919858376953120221918434335901278124763035600622407882283557134291971816922721366862353599214561418841877613868784824508253764959086554334239595675930394146914156110816107724396732520945590155567590946901349819972976587410264049196320504848181622666938599263654034141990678801276746410293229849613294509992174855290353399414648713455773557600211938742029102979208500700493176128597065029243102087543357571331313103222567473726869597113794853869749944578800401687442610205395979586182528405940863801081968519370074420909062840858229932654392939806531406356780727702907709369112025872183126019933781821126984153313498435758431548646287131963213190074907109520709402130610085400885515042813785315988682116896837864052002331820272426396762510154593843600925998838722395965918158083563372248182402404998791709933929893653941841116361250822606574990144843559261399504977148079854022844146057649097487637211588674820891073583602357317120494406807427407765390503174098579050024492275004455096902909951465051320124148456974865179153102210656661319445590440156005945718029890917092455672723589516061442395623448683619321814545944618629126456284019745984945682957064690063331734963397801022379550997736860865352405459008620150884187410987027589883509225619080302912354443730927954427219161244009208220784669602277271930980029462757276543739651142454174274835282968142261491142753990281665529570311088937194372850593597764937261719038944152793376842592021754097068542366550696077226773027210741665030339536426566253698250620750358314265340459778705802900217068617109285324577274877354551081549891915591013730372275853185790139133563553177271968541491356936627240135424374301397808654803384941155785799908125886146224613589232457922530524422717346321018664378193518498976174179036214187423954645339937420392203704718694863396741007043190035119185135149588872913290112829035945617397037250454263495741314563283594053462283029204001062400330634872299491066369436689099311068315064461356617090091719795299370101537616976143358311458062164001990899785542402169656223034026608694672239352696071028809159963915015826287268052784835435775726222740392143248075654917278834020527990732822657230341155497629082404360659743082447468204349105667956260816473277157712531547964678261837118352615165634557264126050263672273047797313737180940800176153064050688158526700189740334638274833766996851222534734499356751090134377464091104544043639986252492097970195090678114478282278393273133422281149121464938867119758901093537266380099438311329713315193655836947456689420802464885746517106453948291644658503109147417267777132553271278955520650219406875725420349586966205096707979402311890568838340330717609141998815058587376385146205085598178603420346277086785509769349115637164168270271866392394303350084485994110471413559809147871286235127004543154940310174596030419314915634397879251032479072603502522164330545831486099483221306602382267422390825223969663931053282000830543339981296218693800582809551332927871273935663911988966647130478156486771585393972927063703347603448944601298480256957741769060236701774102428265917943247361133745616835640921289491546977857499503831627299060500363508007582768220572670942183421346684629040630805413666033866342950720452739528172320720490953815523431831574411074231824573751688858822384836562458330219965939792259018151706212521658965897476475526086081042956923684030590907769561603489185835725618013199185828022436275408173610828444696277178541293909066749123473192640076874445451457379771651127142774474330244800703701632439180849298880201678220548726267526660861215773534568368890090880417207775350322749146978680230356542954974260668598513497490644432767800571585557300462498289848749995143291296208366820080480880520800129281322584559682142388838323047023551982575723977141764594245366931487661099403764209009743960067816966325561016467104110013445803189553755512929856502752090617075025598313101911587936504763670707400249155441526894809112019199182413006011250848409684573367161081551111821756285612877426023869971382330484725343307315312383769770541518669913861199814977138729574050213393523797149791790639172786841568255781788505738536206100918661206853348668125779251482684385192272337038326554560806405694333908655607733213359277520371147546284425216332818826006806571577417579810236821263316851533852081760687333211290858542439634554161921502027962637408605805631733069224944922045622434803597356156284828621504128939445848849570961024198897489655069693056312976435691756566833029066748352334939736528045174725186291175726236555458208474756254930007885515955029079474412807540536328974345007620593960841401684455014770604344363363147153500441113286586175240016933876050623315365876462150963315419425278249294199289630955345621727937212701369461859485449781680587617126311840930887126719859458924897587834543219533465183701042594258625542831718201220201151684453198562528807833908371540519767806794645605502509539921372575999214312596106076612466752344345769623186662274925925430639384837947700730601028928160756728629959123806681989485234925936601695371146004981002979115951137616111444917020929147376227353836091102750222826003306957446735045359957700971643358654543369745489634038252252967467954120687889288609997045693403804284779160585993290317481296068445831229689015848731821960603118743109188680770526607856791610013797648990544602097063825903050637127014948528838425421345939091804069011794798596506866518029552131980195018003822758089182198198393389132388667233407442588572295959509660232397040893157119333671921745402515116378048694117040120014911628972148630727297618124562202990264539325051638093557564796526853342501532724035418423932077164419875839108965523302284946370845255605405278548190986464466188386157444508231862827279618218970910564117495917353228159699411142675868462949290827621158016738887350782330844800809589365496810713129255803008087050848882854245696778227435584675999074763197606559409520652173320272940889551433018150529872375054940674114713490700429134944811164739392789615612838876776988920492901233608487308838182289302943816722121713461220911842117273662801019046372514738276214168962132034625778500212652118276081827760956260807911215744657838306529945370381211692825639444305215587795100223331113266464615815807046630895547862443564278365506942267183458036973082492188358609308214582266127290561809108934311278790936679462703194128641500163609034543367250901927411311653522959992160701501736298122477195817344604137275625002922637600511953447428214405778110608359188786939293925604179845094489315086061334095714514108861759338934113818543440378087529091025877218981537561611882354514886915979457222222902216802038690725355107814018158921259094013035513157691768529980674501080604181868860801488638172658874023860067569545328209091645157622192339332586821166181350611231892314486644201870736066885198674940372057915648865937991758025966533150567198664324547541451999218549982306953933928868977928115924453250104060697243411507602494875409867945449735220692936194932910555228451568828945469968123198652932501773089398023640122201683445413441222088125856221174961266116007080424394163355067103616415036589599237619553177558399283247018616092466845785890371208988564586973931510988842787548471412323042205038787302626448054312858986598119149641475303920327767204678494312433715851498708187422671744135621051987393556669239968266576523134825869556726971187918735202304935340624899473348726472451903724018767331709214908989777801250923563883809047756916789039649608493925954218029254356170581187573038278635926126968986586172644602592154485457802048685314334758248147750514429254573636495043343009329445751456202290105953543464319649914545776821635268846724645342807712058129936127212796719801276252930818421505215125023526199368053794780641037049378442836085002989029035458353346577980161184784535266649748734314931274563807795539257623036825232429758959178554407513135156756746408322731198977389055819954944020561787501984241928667320589261341475502713145979865387670737332112957488744062070648390208660416884343006233593501332722960703589773723942678810027084037017920573897131628850282914004877148938267103544015472203971339065210480529510524498931931591145168930922402420321129085103647815872353821760927576812718686167897319179656729912155265077602567305489690588462644205038527282770636643478986406382915073903395039493461192656736872532593551711952940514532123114450184370245868135414139050191501498482472057546923893594216061778975126696893293049657047479797380071961769659507806512619718942777743507228238457715139087869926791586215443850844988262729620707659195887452541867825300374436288405831890474409007925555782926289974474672785117302912175021142970340629709601802927133075166133993551040672087264329271141237276659563355975667434773007093631776653888605484042959095174593346676633520351098979229494392773629167245211797551741275254928038425487652115428379942708405615910478813677151669235733667328266885150126670725202354227976364170103428957727709206560330520825749692843250474159144078763652381876463259869568092070890625214654529315580248982433760784876070843326236627985954060971740677189063703124239729694445417449101925506427775965830272597888788993089700956300896284923740209128235638706539976139380774257716530160969864083673506251448426127099301832728879801651650082829579255349763662193996832666338472398773522322296248941789933637166321161027692020388879949923429988618964885367397406345220825995347184642421676412109038884672504028460235791479473010416524914978043262328828090760518578938509059992300952419841333693011678371418217282000099527773968346354955524262397574339495271053386029814044347375859175035708350302934987219197769298250670929603194178145482356176021937403780698121176280080290451825282449995813766687071993901664755167831218961783849682738981623800905623615759808943506964703714207163657154701206142706400643395044470250958804836277275671169419938710761468858022687149096545683215909380423375501737627899481612036780929378545301858821108665012882212632252121508901406018803821155322592938135820420435618743025941708368944011055406842280685148716303434125578425429910180097958826686527823440596321756044231304749449579104985619443982477101743785543089567091516555340504107916325190317807438450122828041829810683486066015280213449843091835663090648817671753510878791336259336691999185064769978289744072710273084504777086935838473454210773885352836414790013813730271932806813619859890667558194867693466233104819774587482797686629598058500730597855136582137821020014095287809015328405890295122640402364403398842910871072454456382100911496234174614706407403369232854002627696884495601204489148950902376465379129320523918791170095275518796857326408644744692220937544036942347176522563645744556261521403523540663825294791385654650988354841863188393480593346272901455338606451352491297993246296761460755908120065436335817983771743711268197712591128296048888950482262288250180707610640501823404174012818570269063465351171867290775595534043683198533739060435719044344219848680618717554737622309223309129647473005944081144813927543902739825504619331882081586656775626271933765740028821757120992834644143751977428963397675753047786241162002291481407906705874726049541429309005839970516097432250448799706674752809445949052606038677679076139350653601789988979237654053207824728621520628729754701642220974975450654362060162925414158652372600208728001478113242713371776522583867410490765275156537025814698282834967377317172056319665399342714981849192455345554379177513054718399810885031269685509652967557701906714511136183068060901703852069471254441130028303936652951280022402008830823066305023517405542586699836485420939646751591838177142005251487608906198313771631027381341799155980841191474039486664812864097849873078176012603636001537572226336809549670060504446024950160571421711494481848607214017991774215625756113357181832181027140871684232771044371862822754073314726712343759103090348279719877541047858272999230099825281727688769949191416540700514045103050903337570364960922240132477783381623479333185091362073286658897635336107297203301272193666595660269322919397108819948654953146547830703574097727641420067876057172738952261254281261484090225572960739941653875520214485395375495902656424814498355625229106694583723961968856475328819258781667264709233086471146445583837028183257961173552222459741134704730323783060850872188616059444995762965270673179500745273752136530163171542900322370280452198078087744721392563634617548702529720449234842212862331247313017626761924726185190048310124754244058823031312069912626585487126849647956935610167964155398252112659516972767409417707777600912360405575782048253395937770778836501099936940737342049293121373345368776985966903841780806364156102849715302969160661290657567565066308528263260752086653789933482856174315957967073368398402153430693333403515430147400810113590268800460731483997614658469573862951329870757706560787755549715126311432936618179131953730556502219868190188178316527284798585564769811119287416145517928487482276326500187041620674810082250425730815615401603508646068344720662647100178331078317036001773138592096341794382897016055881998727022733842446291621628108306456186580041892362378141453000774102092375839236090746540140196871340892530277651498752667173613209038210524086922463488943067358720233097098375013238179443993630556507423612117489749188382374053737447760866718208518682065975810601741265973940822371292183605142608238665911687648266968336523554821382042875215130174024248747666404850088291204232721624501563411904387033292604649025357460304829182688830124602496138301558571764857932162233590332766436582547250246345607538103482689755300518022694670467787179227412480846032886496746290252194217130733308587777123235046645791947337771258804899382838421373258637066512498619563874001140657596601975090965795395883798623270675873732263584799838395167266232958593125136266986307237592713973296012193584372196598990714397828750532808671907225520237018996888732021567712058986006625444845952877833881360669083305891617759424370632346519802302073193105126381539745818213583613962553381986345414820462756375320833761300266999428557731644932319981150539794366211987999005957875872825342101808564276208584144347894770103814288252519427034268736301700403487562297829734035025422854069767711620586644768338040350635204886982996231487052645495727378520644665907890889805881486526305110953692710524722707993380160408920748199404062518137731932604910065428322033346844731527710403100183257837165247203546561149195713401778536839613540890863958789161370848780467025575373203092645273561156085033235703688392798465512103798626871637091372342778983208864475133867807062789122201680847551622347032401197911853652424548803944298657418113216776623403086298428772893233773147354679446576361309478270984966931378190694519708576064215677336677292956843343458807124867631678929741355281726371351327248744669494322754995280090000118061174487864642803637565737674678668441310100494541674251890388417391546408949403243729113576479892178619082076235048177020844923671688671314624599290887640787252795774857428163562908278810623065965532046471678867441253136478795844096914077600253982797778917363495673762199676582172194313963431181623065616870768657912969691782563843292213844743737547191502839302999728200981065170920789744755282234592311330602775487395784145416458820451710881488547624276438288474417144395683812916313844760038956296077133868842943078424973750354368105870874611817540293594697714589306115481952957147159886173588671616890105657542016566436158201829598929360666790794598506468906583425582210932787064197481987766913146190992942799483568895890111048348392495954450441178499500476677161173927261704945783520592141082676543156555159727593457246000732251522162718185935564365121906887719948243083942749980144590243829224283678550722211894568281268262632551522545326325394658504635247385700662983648221093958511383757483010630769211749319130995010949852179842599194487301042174001692561687482869935373517754615247627773243848234708404179474578465838546723486302771922204102112334709896550575716962415288415325247096158088541281315224845435845639862412601906886054272882864379469069556041814785126069723181428313886069848831709272746695857531947209603240469480514107216889902519949646325359120234820920425265677427368162034874891563674263459671223656509105166729412309257695159735747367501103457203881082796609446673937775621847311944624125195411318877331171601874256909156042267654819654826566680778566992102153772622602255800363159959570115613212782930690557447312635397609206130477448746234853485830081802540040375672378092840872050417526752621540837857987163649829128373572949335352490909442366931744632763894512284042556321944938958369518848981811876015249521477762278692154197894463908980965598031610938776385274190547016429385004369472086751735607091801964572868943248041060265733135071203490987997339479690205561665313498123322955941215936850813823206037750540070458128279795125960652291599869292273036386738300368278028444873810637923707791666032143509172632643321946717837961330042197660276228192724806668317264088897905025248396387114516481645006898549694346741925941264507703417873744719692900800680320833083981300855189009469665969414719595946581314729618012860824355763715558167890982852919386915457940024468442605753885363240312638122366626918318611712007789341194760649812098578431237844753507627560155784573071330193449900486270056931720237557180615839274700208051693456994604837527491082394810492553308629579394719361833485227805796081541350854145602747853682653352494194186875613494766330373992327059597093901374714384690626544175159307677368949084042641082420250060615004995753181116422088307331848869559941290133273367620895329428777609233223485153003236143155389374334276834590315506459414415778029194694628375566644731053926169607510233145357278240845741182736932497511870058334873117460409125528476398739703203450186224902749973066521050457230526508174434423421890691966211934136169641586248788012374498654542272296630036726542028193771301044605445614818504373678244358638721539353590167124382255763331302462173866439898568027683324153227525968299298463267022068802406193629211896115772666392493660660427642333013824963226091776724779299961041878322744542558947913637958036617123841417986914029590466236708769333615652792974473838026062495567567775572374546849327194375575825386545158769352481299833886436654877352662441773860182042701749132017667173241282947342728086794986018073142892043201381684261548059373013299203922778427311621583599310383739446218489966271572038938005912658210207101667760966341539941631692932889771985782119472251244643095509009968510640121125034652618407947260608666411321985173964148208238800053459791882320032630597812971324228084605364438121750665150532175018800438649007113461192629101196985783473493533092084342662311370339841974399481733740154677994037010318275081707153009666988364270861667435973671772405717078519063408666448781442528254189502589987949255155339037484535924515897197767498230736517984651792827005057347372579656314162997896445093843080665046340242993086768032602089218387790492772662979346685390062099306552069320369536030135161953220047160685696233858847678961341343250886891226217572968246572139467725418004325080187106736519491164025134377325738625357111698191902970616785209847975274176201638120147057713058615654539544721227271878830131823119559600292558592188774390918551161835444019560539101822679073691241056951744168121060597911369076875165502951003520360261397257838693232609555357861333910512751852356680269298782886739502191293089120610273983753048611937181840296587574398975978695110047715627296355934519122710484009401054491458184742336454148926967577490930609533628490409937478052415757105146782694734526603860383966019613322594347338883632078939384541668448124590486332217433049793674508603341774773208919322999598934113943612507682455535894603559115450764486724762942453151691768814373891729027245711657409334856263652249723102804218358952595724517809024638123181657311674653049038229637808365330673675792202397203166585542335840249731870868275749647239597339397045069791814940725726823834642205470977376522852446412292070796235508175613882851286775388245240502183629295845825373448396323764138157799589303648534729094451772114115107067502458380912793807717947112527428490884721159801724312129293701501165415598511481162089277176878715933377257523220908753867297243120406545386075381468579056734965328481431128598121016534239115002888774041775076780515244831765993283181610452910174708551120879996250105193352845904518277616910303882828274410853806659539099696896343126140507953686183184799815381250824475519483911793615679778405488684624890931883762882284529413318369456586433445964242225576426576804742020672845543601104933919282507975640722471494472511294508060384525736270861449473952104270840892881651789690745930839787579319847905783894847190526254878072002011912809434463756414542491381327679371582033402063724255495074648984202804736568348316027385440382966977552477346579341759689365404307084260608208749910821997862658862958926747454091544903781097225775012339968047093305064110763876406369467190511299527629632571777014814201000437378207040197227133369248111291540635683671817014732565840730661140759734209594528398691484107450868587922168557218529357487650722832311704584392361777651473763244033614944669361233437339466339849623261744936409430799628198359663383147947425653087929182986871697663658362480329822261767459408659383095117163200766783233383497065353003914132183376281479681682601837087116275904361736431584659649798692862079586406240405153177783986961496714022512157787693429568017378080991745811144907597477920130530180077011648233786322633883492037600027269970490818066081666021769772386308731504705047144992370028528249527343040407269805762304531044599241053658595672643368048282054713722402106019047268013191485188191236249902806852024204768702821503723848475817594647424100705507292414534457390685247268495998718199426947658739427525627965983946897913941911182755666469756735315959992160667879102736533741224142306719539141805001740833705257521638063327872715779514491782239023955473177076368958254656211552682419018139312607215684377442387859760778660299507860353556004386633567843184977952818073627847436957221060664274271691638496449567430437192257118320669914681684329536847225467255347101445064479177200647731795374183925687890711446259094153227937496359418264734896214626200336768452422868875494444633529642981256965513287154211848662984713506093118448367666557446631432728403550593281433581304479692743815342443097222177827241662151423764304145384145165443022583485033945675141237295499274380121445651402966242401665860750014398598342676916943671889741839796080667989172094988952693240854068014751071605387393948897644781281706362922851346314494457434109005863116460742406728265955905205607320182112450555766281731266804492186072630408018915058459549475112503083939382892348840479150954752152389902567094642253376315480633048670775359819475241557880148745569548363189599161264373138559587620906894139773778015839213692741117468738265429072004096992925946437526399429386455070787858606593799788890764645207631832603067520036380110838014321858607505709938400046198298322951688497025610151718930294401385088528946805018679051072185019272788855335339740570871824474361504612307958430518392233844159150467452754609953991875481113009388046810762063454878407699725235137397406775965471503797951621054127793413035929894285642810839316922016399479290675855497187110993818157649548782954858408352402805247350423269288516099008255948227838412572069093479152429774196528970868751224718698738528982697435725246918086298915880593095176759504548590555413730350608212641164376445989728209411448454049703330872243357539597060818741456974608012817328422711215625194154160589863867430250063222236017106951499768057110497307814430722452450980294457134917118490370583147004775350489130990103298983229508754912248827578386449357498442607492007257754699596500852568597751924411265379642991824901056552179834016314442105171709447113946267389692379756945638321532410299072134523932118572742024331474725405839947259067266695651752651078337574811644420457634451203092641564897036499492202982021855221634244118827439135937162741536041131000880153926644700382053640688066318600393246583498667935876265004238032105307166208505541582713756215075833420166698926552622998910576790067685796700749658609605612934014477087412800075862862574957656014709300121279590172272743019124732535765584072551762943034985712762589141004939084308212301896795757201489711423336586468602187078333475096392850532984886847568878237472043925412008706173732263281312616638249493468523050155205514269821119058068304688241208958996629049244685107813962740487041274157859268713561103751698900162459685714706352114372347780919729877500091311976891143789663286687315512712756301665530821201449677657572111626874936891643273926395716716961210370830502158928838073559221565645231334994108927855452547369719593827139083295433495105949082491892629629784516742840729347181718784527302898389870408644708623579799569880695553103494828264091375195987298044565245126736206103258947518748399545148710029344950465946748582779542676466752546418911120253018650854899746779887854392539371716277240980100801189226223489814747902523534985026407822023255635129275444169117779658932386471407749478474875264467876827288339076603947154201922065892988896711337712361908907286184360072796438535510672103233655869461361484351294590204212435566635447109444591060738707212625027844037335123154211386968974790149406746988008440435921697479675830558080479433834957537063705025971863066304497970943593714034850999472547049374041186834351185550292454818963954539715982181286423925701639869206792702461862986352474370798180006724475556419218757394360173363491720194361117402993470372396028580189535847700198786807802565565254830291383217070565192738254454837346634444450061425305772475597872129422075783959892593796395380506395120493631469401468400174043708037860729230624584057707546238591558001190928699874968508853420282494794394762911926950201447107901931870083555834283593923658718145223000599688358646241375001352299859191072943321794424032351125299822571214130754499071889766640378223446089798572402356395471430352179302643216758098295836937833611059892056313901082135532569795227434441166000505099467003210537500818879481071049374134712719741151472154815535449247033450235029903878249055419200088494807195206521451717168585595852005116428522162140916796044798568191864876018419077058544186574985182838612763762980703849494212369198076820262955418939216574148437424620422761969495417663387874523872925702214640864457966507745257738552433151734983258528511732082055917698560635055277716935921819714787073688061635443310306523102802384828947981354082117204352762119619452022323335312874237202465774675678205903096506751239516842822554342783432755469244789737941196391972057739800737136098978025652612690003246728305513598520969077441269172543313215297842882889992192440411411601081307291638910965827280914092853619584382848946304491522683909017455378264339334340044300296208098454230323531311546365978926690595888265688257692208098470852159924763673459772532969466279074936473439016285022228928220090900980761196203001930449672325831692911854033004428606519529646383539510572645334790021620590874465503920516574637157203663272153327418008629145534852352408250972724746797469849953907268566607594818908106641760365448249504429398554869864464358388485834256617645081968281934297547733201358689052931752395266928724848959610652283825724635110161879017003397365456352363697235383458341818119343327797535456492664440517726019408299203638695722711709220038998297779452268677075552499947331718218968580132356847484358998401205300146894066806345787914296728603307155115305640695883959380942286671529345980169327354674698560383211607596929322366230569171248839813858912051909015211398387913722263898332374829342892469325405190902818651231917910690844541013249526946297598410162237530366247392757077490838812796880899836193827249491945544526012924622357879789371828390371240811371861495162364665484328693500078789989860878691385104098402470155257739206806390126014732475547252177134896951040071396456051514104711447059528642317729020235326690617953318810540075165031502159476255433622794937091692880361821424024909045518389948300039909712315173772230677456661749205986324311666212132645757181452455201898963964824152760863321431751780458544845684663482313922397616680872392731032929344689525554501734384855305408750542131356390706528738609080493140511646597446252610086304806454067288027655200434348575101852296621850311826157623838788467220017160406225257596953003374214154832726255684139476543949719403281442732651343055846506805326108436749155692744211257775958839863653258414628513763193264895463537713136750520841192292805038214074632832534480851378016837259391340190959566595870156782977682661666064025454965250813699567929613160087119121935544544794885809236849743524705964776674565504764514570117309300480613298573621415781241654282260835340820461536108175705531815358883642424741811518796048616488306927801415576698405899833120340717622404392021786041065230910040545361803574211216008923232263783611929464311075957407212345292834481534992155838039104067884230586539211585311227438510135391764565687735769814093780333736561016798443186918372050709561274081139918787120139233055124670982462514138788665683895772651184703409121569766644593434610094675666431108903002762250786931416221832420756001017416983148958267585593269674282815013475125855926323474481421804703011955527505238077505306433479896795367740486297510517349821089533476319383356118858983527893960819588473426058980880639997295577865669609694076453620683909255866573952339423279971171994684812358110379567007074784350232039427560251639924075986485982312904781869647929856214005931850101824894041398507610738487112372028124487253562463659126984474226259956285464086308099077745795439296750067787159218037228668538355562890785102925053286102924164718823710865751623524964624625547776417539908279212970288695623371864595384931191593472261568569399498737101236378617454597948927123594202674862119359963003816021819569622666404013010487889339815628589044777925911630838940060520791971235211685795619061539225212392952690091968929348722254596376100564525943256752064472335579324543865354183143804511818195417950135373986819566310122257364499279514814968515334195289114015313197257698142869946431235063508197599666591314842187373691476774210044613488529626091850724787170204956728147092594069541698992681378249713624436670524127846685385078595531366022287900441525465285296277587271410955204522653790119913716202017776421635251415556005098688760547179476634512210808292122928624589024750834050937476653575641448183265328309988636351828787755342858313844124125990510959121821534827775404892359959704383656169716828040382448397177781078427011999210808224035929650761082348846528761543848267305563935812763720609795837358099178643072394980961217364493250105822383377441446565002604245864131601254099529444117605266808969107125550969203148718548743813914752836077742635006281082857575292736790794874544810292132361042744249602527129756820420139539331773138338831502198485423430913927986535866598162772373743294295200599370249238325637312858146401358330938672169426086248738177130670950513859727954939323277302241738200252039703267608424824846809170256957721360002060942339763729431322638852702885415268784474178593212979524320313425163134635424785104785348451235986185259146668502149990422659541580935615305415090869732610673129358182597278487892204120844842802074626503354299038743935171263926343494925486891244210454352490870680230944811209735663631875523469250953223173636268928584023028005270211040449184159901054141706703360103165785330033926401905792226711276315941058742356479485439421643604038362177792620928130009660309521856650758898308291402581303889607750587207931413418584069939117735953925118685433648687035356824167170470994302028659621382860683662229800036247657424288677650747999180882954748709453515340576392520942209460725770789488558677548332308566691552295856638699950721604864533052884461167529380546623434608552717744379469587751370539668107864623632025821905438979329835646412957611679721024588109509392878296747984366100628742499349115519871088015404556221794133576529211414616751538503575197352363841376543345251564253383601655137497960226788156281680173472577468039254459790910340829006764548019188126547054004717984441589611453015192620948653346353858947589162973292761980491463595905432516432159115214061278595787533975686182554469762757221845929047224954189280165298317311759479602568256449494633683272114433863223064993090923838874304334606406795032261194114587331169928219435884257306402664351849421684138668116972205666156269634242080878249238086144457077203360477246761388432399584083792255546196384876520509966213889292600537964470533141604935284960198259203934562534995987257264159334451249611977039822347324300011454732543781510996968124477872790302678799614629272622984830121227034186668857952914448302245288343285089235660297372221477833058432346809075154270689680601083028357426953493199521057132468968812149058523520938672087692705105336478650895111769693696178424491877986649579720390456294337760732326279307053133710868744080177650271000046743679835172856911772888453583141584916807711517699581319227477413423744546895570806045095135804765080139667054427841431807347703958498895400846025661396898541493983589039775056636086630229621706340217729630338901561126460210964716023089898626460965301295989926707209948603457905945454565286477517406351865857578655804416579157230726050195560300669031477582002393583091836068372214755547588605477545647747987304304063966498699227402545874340927428628369612583703037503184025820325202609769047464953498687189630642481393219456802571818879043459600101296878767533233336862621668071992037478094215498825680966609596641484475130958571844672674761832210741421291113259186669649082120099979781256662940569664833488297668929953455887361472109098382110486776940194304466473249678598170452036513224509573697633039560175571436505260601548458688649482944025296140065937490276528761991809167241331977878645184402598622304325303560954339382373733882994442221261925642592403948592665485554041979098447807288927538064964776218156353163373539193483784427484076401470295715970681634678894001872689223223507980667525154095276626979297496200016381475239456174883912135127720667962122440044901906601341825444462666127374533095099910047948033006912433343047745305838129473933276650205153136073983695556671405610970086153604713137077953315659966022208286430763620280923838573994716566343457686150337627616461010974406495671964784335936361336766817329118491765394622276083817779945276039116911805701400044244002626771839963084057607398632815295262194296608078669961205872692562138628339130864811435981730091238562517206053602224478120090012896051196468775899134003017911937937424339708474745352252915693011840762063251237167532295524907311158482182574299315664772385963121268426366952454198697079941322316611540197836955582467981304109196329863056988670246354710697803359406640734984915030939280955864756942572375934633766731831153944685120425037358065621636582631604383908898616004157766558432109434985861342881636274235410523413774359049111940659411497581321602957741421625804621109392433277173607870643331653329052267133835640553225891935181653937070712563326071242862771989220377996570912134149788617123467745878743505064540887330966675642899260937669376146438712194777221415462340820705391353283682871454069952232780977648073261660173665896037709136279988171848602416126341924826858512233678853409655901993827807108579950582381208943964919320669103778824042051990397200051608603951787407450767379375579081948359012442805581661323848718088666268572666826168941752231603771770510933040160983203941879065602244610332426644035538748295731336422118460259498393536941963948138387987425536957426982860783003583490374409957544841675596386473701624487691669281982956854837529102161571558074155139907228778802566145546096954833033742471343087108936622416800018533756314365771842453830077536593755721924565196462867463994369194537689002582389675873634103582077107582631086897376174032323108549007003705565708097209427687503384314872509845587276549006074177462303845860308582402401814051061179492340352463687290726392534338512401468800239101471206983582943161605553578423266712033978946425409515865493732914042274109322923130262515922496738730594453286025445758644265722130398303494563116043806445126389960536988747844429889379249378576344026098594872289167945502903400403527096130690432266009577464728919957216812592751353224377246464485997882860577722108825938578434880895564352398305963589144832546946007464001835023391773740588620647571598264193423149999074626869276295038178601377199335738116526457168072666218578564612502403592102727064866114653207820063234919107794979898926486858584973478893555311729992127305633343957749769614480410736179207672179307194189056761748735248736983174934077560821063828892873503428522502632994846180735331214754401495951116047986933071845397971911589266261216787267395072170529637007713633534984523555173358453160775939744432921201930412735036633136421548261888037961436290717878874790829404910413045674147744603696825434432974766370552087965527137834664505518197228925985807131191220868255874754972946692850199396766251725190753892562282186830548472303116213114743271754913582773432459493979780304152649290975558032272878582544796150310451129693371706325619867720921877698463645896856440044091887529501314162409476085331172729770488404547500698664165090619470977854495545036025491303440079698552455578233550346435936241910704373854870456642932064274150106228999611718436719337264349578731329100029521659703125832083441138576250645216373960343426592170042177070386804942545508884658024892723161609869864598603648253817084378928605176161036159881846986511574839086160857630820181833037923793011438972669596358195031610439223312177930160040726347663840193416512956287098586793493109549644562835549337002654539037839688688716171945241792566278393784504342589409903562401726380523326214436074137044028318969958122264615160156798695237684485976095676013040204178072277901910219536010467288800412278368458247028358849349041716157596518675816448776345722894383641233003648760165387198979519559665650879691491815818526044670427764443289153206226232426660290152712514408150585818718829475763752331169041237801518008351136771793869636950121293690148356844036490538675514439914097163292104040336675236535620148942638762259693905642887381811719005194804348527167568225148841183594539258281548750688518151116961630672412660066573105042360660757908228585847752977781490762661247299235956632001355998257737658262652013180625856501809680108215202052486137018817573873350692154007058721030293044673067903589971521619030380650862101156520122400758427345809154563561900515198309983684954468861882813825175360030067460267452467414533868057207373104767492327636344322156688508254110816340260000431075727761412616806419173652946846888889071988552507152629232915878420102963226891452542281709701539547250470515400060135945737027333093487310087250571386340404107690646349494861210241082297873601169766653082704238584897350081743825970107777958401714698046476552865399619182426827267107247475891256361994168075821855387641288440030962798807329743707636541905862395600783744645923556190652599637694488000904924547548604588675397333111819797503361173968453513511489078929233234719181808259340970683589804308005937575400042448283952348608530328381567286201243883396799747783613648651274004374786370404324782408414668730311447817713978706266503934278668290393853751590191136177571341514900718752674706163311199446786189801243864200428026127426972236931627874455067879366361274389881223904330028832293506062678613146313054604953656338472595510691256865617842368873663821482026372268923640863319402391831068727646224901128832524700433777229499783278829626020644938189684791982604310233018456400088030451248310738612919149327496376478040684879116864842840961687379848878834320204457493300113930782838537984458830442077276749660179355767756600426372484293877206246653750995619038132102565776097779776431554595008060775338606195410169262548267440745286906864178682046842411241982676884455929797282350421949984621612595471599224518789972369660255526267639509075759312976951368789743557423211412150133203250283005998837209683985748583590327795426104765314465473137518746637687073562404731769445477139227415160314932939673432952661836516475492382369448678069348683796018308495899589051612241780476172469675055749394069794915641997799255427078699887436783364485938946094810095662243886421095559300501338941348863905770470323946845250961305293610146883119447048019972194163657754813144885122618522982645838873677927459444590731275909465663108516046211558557020931194441670853463430701625050552169569742765453557735665824993750602129851666994145451528834670159498668320394237212533961661049389852639170238827680576271078519347053580355239431928001077720110197349374416994913530948645972576936855084713469999206414239456065923654877578873485512834219831268494954312351702898920937334156446555779020348717783086484961333191540754329702213235278572082302568999259487483245879907430796822641285462819918334235412746332982401227695525807518087373417194682580395277382579244264930685582156963511625337489255935420497584960214008220673394970798315897191219285486827363706053299401547092050704115041268288320678214114460987639043024237760680667915233802773969253933262248083441825923056916886229327728132600253237459796061153850788907923515651518346649241529636529177329175915537051213907586406118255414152092991739092798323685119778651392267513474325268097657763339417245415286706194908911505144844034501472110615394315033739986787684750219233862917918145146452814507486257854362827583610176960596086967446740052783213146987856348415531861525163610625202077721478747366312694306586717542967725773085567268287506396097158091780663784993596098820105929978291043197225659385365804336712964551612940307027564650153734895529988695951546615462464563539708599090839483750349771132536240013491769777419368169953858012377379170193687417936677110507655895221456521931170656456575637196385557168078794915444609263650966498477976028298607891400899219178593368484387077008867270461791092625130423994909846721451353272785336507482319428573843619207260397837053758966184155439833126928203353696000700574250928568012882945191881895516709245650439103375233778902046584551608212357570240933147674862681672093471301108732708515752694992961265182063397916884298993071732384647244402787337431709798336777006138878717208841630666801782180660061945302405069665543194348891905480404090276456978445140106824999256307127046716888342332712730294278087403909272588765167868886015886448780954771546647267224981053268506031334135560621523227938026635195921049225755234978451834222616554626716230242699832560023047742648855198506068978514028561966711383841186718174233300072624371150714404547792825940337707558341328129204309935639258641036872337391304938554269826883699997530960489622511775383383336716056566913750137546039631051188440724790625477071731631450650838627907597102016197278984052888786070920438974671115780742614592983091369696568969848686988312857162206242455523365099334334315128967781551955385954759238274030737264708911603299424241939555559538260321647174454987611261287526446416651541253004579751163519143981939847924406882454196357346036314456703939648313417496482826715521782304290010230372787384336882748334866307139335316242241831768952356900601154671986333413233293312598733248352604576373091353767228904852939865558888232975938632148411149449654918840790613088662664321898380731798527829976906343010387930607950006764053080141346820675872395574071968091796806778079044017181928204981832709025671662175379529258363858018047605828773294006011567277194318808210116507960990784600632901698700222489423484778511815245374915706142151463885135488509498782244423425762922177873616753180275580653181685624936431849581046283864044400474546689588273453756685549834439537145231685874382123214053982806117675402637216277304349726642273764287677292635813316488392099245657443811417093539034364266511241761220266868114559702954573743190829363928865725117959749588585434559115504634437944917710834988951053353495765274398913949512936132924937954429776190502923423224968386568293981071518985597228282215133390140893073012601222944105319979869630615715123558527758382715358316976575318649670192297932762512613885065070791788408363712324585263590171424562295032481601836046846388866297913194420609334778339501770140388667270589887783338755504843143710175118575483586216572056116060107801426364545852006907052350709997591819462718179431059628518579591523083832404147121932361650205971728868451963732214097199392453543428218618215053876562879215544431291817405858801920322754979026650152292730915632642567196483918616643601268852501890901196938187675696436839748138815603430831036719693062449727655040946482377383577434977079056446000056583783026372856684360744391993392785073158323854935120632189662354853620657711715764793137964434143780683717314037628208206638391132917760498831993608678713361973206580500872559506133743387849320564453944012408622226158372136010122921926211521246052092749437350440176541051324886794372935161613218518001120860291361615734862518462081021105068051227700911572702776223749007775323973096492349854982244519537744907581445505016779556901713847357385531867149919587050054390076308496666812061591049824599702674566448887993609598472264099041565764210997553749930314311857043428701389052814840181304636904110675592874342160021793514617231365203308799449371016697618199040588261186731569704933611107820009067612179488305450008983929691364314572469004790084070803218000487061371856760343503758751707116449216020494378694617960081598285720001816401681984400961142839092728705982378399066223334136940410422760239619577463359973638248841653659935547600223941034695151033081595831667111169769236471787920983169730218403864076703515793042365107001688728212156061312585036388062370021177612968026930212553729142432324751616831004167723116321318932385849362898078734362795465243105535463461255090614998969954206634738189740123983362772793989254794475722107436922499879353240432917456964736809859339478150437899144230013969084005417357124645935353109855396811519423434604660000943086830543842062596748220388954879259491799595416027470139371121724511929412010884005564624697202837520223293350916427455554784290626569094976970991901679796142939603183006420267503016905089848565833276628334053639960106798422791132655527933161937965276317528912348199438110558258925651335274702184350723934246823202902677578044600015976398465012621096140870697352397314183723152245283767010806086230956428671875762511411562067050694146225256828789573920695275590438580216068412730398655255081500052469044263223443616357749294821779945010954270466818927833824905505163051805204997660898715834073833655120792868958882130173243920563927064248651712489922637821728870741470237050806242034265933354757442581748567296885632136053933468413606764340309874639428643764118241560780305200570424474716811272182989623413690716938748970029949110942214721559170211550866075044325280479771890145915210195915698800783098586874422488636815297978455746142114668206756841561967615600233478448061313236797665562077136062741271091881011171943022742574862875374697317939529423788711895212870348894905178899584298379495714944129249013395145987478488905526861788761456466218858768404098259613451351485237088980075095765387620114049309687536735018438893015885359736975491789235448530906690479081331063247630867479485248251219611330406512670866282816077489314313068109509036174131171728273840926853129652047196044516650352213148428533937404185015873671103594659418040277004755946096758114107450035868226970696462432515565494013284579629926222931672079574322231893721237412683613507853168882468052950424502201404044775219878812943035247048874788930045994963770520818667908361441683975228354272239887493146076192149282038943701875116489309202597260108202871703910819535253972286699033248743441682155783981554516725917302633989208957486211000203857173625662131130867446537508217219535217678019840519261196611578300092368473261892756848918753559938197974946435248716282259407109563260838414797362788757724307368077951363184745398019142790371637919821850521304975701957383562602160454498730222851586518449449085077208627714315388419203511698092964050231264553127690656995242429681816578562523360357593556940896445425525330321334404391177752826002756510285084338593834490107065518173455847815738839260766753232973119187968892127620411165082198263515783984394508892473846908896880707327719326686592984982303264234227744563582461453835354596164584815006370806585863927288975279094225075703476380387970620580955621167602940435386048834889273817390592838408643000017277838472230943182508355107524920665922705736759609693343160425055373112417126212191995865311133062332550390870102796152220710601505926934437046363897184237072139832982751836824179430407115848014981009134722480855475191186055049553291093462793300804891891679681590191353494306955923027848173734173191967217782896017008205389484382958266768677433086973515662105769774265508103929418888159939311649633793321347506705515191850731001900503438661089951013160011833065664413873580060190179810204052449946725848270628448744862040621480277200984872689140411888221690169645657484233352721528237776332344101573518826021985413535952171332202699570470503529366562537301419038467056651065565693882830456527813193934366484627278821939176011049953766425996970121081111339515462192560860625518819745499720207703534678565379009505175780383384851948419553612578372407753432398507507344869799282977353854999519945973467388917310642217823198055562564138037901780557982273468704097741516760416869976003941915001704482277225134929070329288514447241170580584953754679354897587160551127812992761028966822946754896568718849177474157856368039214593990425648521718552530875126368676809488687178031239438617665506948030371674027640460637957190775344517215380321776644929649765435378071956095506823670251456119482292025542721364034713990926085723328897136760387640302176472235450524019231608815185617695235731274483396098790956919987815728861974855055609142358337440451631443619438174688725600205038144391426041595047750642109818309833436255941827378781764652088382669498096438571753845883342593491464944339287136140665459139966764972592844550725034313458944405682991343450135396979619875203848595932887372762366547603814097747781313064340875057897838549261988555107547342678095124060961939244327286336733668614299799966888526814793327543441900329539357600865688921331355181812161526522937692635197816655670068010363948390720943411761038899651518334132080811080152283096868996820001995683427141883591835563298006160700815714724933262577511730328684339100334313795819387397947387933036122696534975956974920221316925353543913091695597017850511681427526373438722910968910804641348846746820430887111448145420022034634795243609220543400941287711721779507320435075358697602991308626646875458546303136426189825929886843649929946687437286725945788972884473893498458703605926855941141003308146612772899577522491062653352542829630562700925026281326612625784492666914976204733048210316473960919143497179942730813136243076250857600314223117739676524553724474691052169816070767586510504815554107240054960788010895406263324026428380431525473398366502664698856967347153028597093233752959689897309682152360225322666585251593389834746947249438126548001728377810454126741543423850904821634865750382209858728682903899130353482840516866019664329802998916825700342479378991572272691810220246817849885726575906430653939639398891142546615152331555960163345270262743681625560445997542195492269857209013912214762195104543469403173558098727673843316365483720718605195434585706600652771294770491946536938264318914588461233599602154401205009994659927124184552117408586948316824814471029649790749166213842686742185971744387593232139031611414408299889039968533172956610136327409624717104474027535525135735058312631506040998942317404526105363897000968110272401652935750498714550056058352726785865365780541882299984902625170563477161826723517839952146359568424957977894152307986379480598495559862004034900540836605890104879345468313617487893632988021288234950670200179916351630758033634441502492418537089747383101587578958564323061602541192217330127447275084981368468837094799953433114226916566308756294260452396206129357969330303536606829533294669096804556339629082970709869264692505928555418736428773409706070101435475595310067143323990708227904009537528796376131466557452067057905604923942087582984951529252536551018014982417986090452821078546762324815186376583642357252950862260740940698818791314813772505949684139056417250467195302756891197728378482512688270047105469490035576530565180020207616818794918969068931091220569015261715190219621606176681791569726050981668978966541661895924422984777999522057680909265080900714833954396130221164712390859207811862933231482825632071448021209869000225778944621821469374358235934903655753555570685054928432874024421597668316809924787880489196285172287090131517933938321631191300382239447315395712322023650426521371017073913465314544257252437120339295499688616557973993501525494011680189805272183030331407686786062364431948149645964152243062063466014747904245768454318097303018098860600690710324996078017518947099100116058394265807928212539829820096393231667864502823450046343636717693036858354032732094698711007492677282283164831671654224798394265949945154657968389444127122510732878274898047104292796743272038285076702541664779250177594413365349129190482457157226053941153280049185983680239941055798674786725617560390235137753294029937030654987991622680055950235840964707910461868871736244381992815497056447927069322976921361075307419773238760467677116356258978379040233425803371706156751350991767996370839363056823854841029280765135190938188232819131559591188323917645376369766000474258646198075574292110483576983960707476265521179380158661566297079729122481851344200928895124834575633572285723528006584444345884017259658381570584545016688889059114134629421405777388202284589795345350893116538886439640799857910782362859993770307754425595250784541967828779865818940400045369132059542892964865056422535193598579196713030410777141262568633906263061730040304725303524198632667388052654882968735170364479660089324185474354150196298575399986287054976625850937662542778896111604861842177722803910270531268242123070521613280007596122182967014531686377839743190161443535611084039527106765742651519008814508325859516377944619524467220869890534328040957023387476176024225718780428554632664919900806510573589841896502007893225859656820839677066017139084566129337933045760762821880032114367803645622170697697373590472320405423060767697236845132221322283392998280092278535472288519227622350259818531590826643769753530773618053992214657298576550272529507558345359722397441350814997320668062626760759688569222725242757977073947925790393591148354782849686287464036560146651322140303898382911180049814089162977052079710076818367952849479908752982282299813455733864637533169252234713677722103204268537679158978837651975597529859172947628475133047363469176231395888217022691521742163713198698726636839188616920300291218999559259635057242686791107132295803902949721036437905846962568771242887794546946324122522460251434080173247890285910583995989766362569115560846372759295106013665081520093189310538994269484906897926124273781068064414811118941365700898966245794685790817658755314718306961635872305814949217739996226137925853003503455058839364496477480679685068025720442836097821196795322089735088497713768955199669738361471097562191649638748939036283375179613088958100608813180107715707536251424456106657426059202515485408924269536469499909581515328823595698945446216767271033382116476320279401393058754653947546384222646285399771084199734445020830191869808691376410157677283266731050357828411815540762895832887098147423222952434273441294115429721052143379776614282815071134393921100649246534951741175617628992669811006651428686250268374625920373138730512532646533664599850725318769529150653836710263373039527192001194443158909888825857191310092456174668291973843178076335456583922667481336658303455536547169883758800601372312514162066583845880771771340756991194130883878395461544925695639089339565002767719069437972183831176874080904612694153102991293336279785561001803513011968369264654729280887575368946135879278089688780370330512436969885910599171808002394888346264064192741903513740265137594552732518423552713504670674652280296279449606814957497014551160622667955618498547799088860048546168427343472752559397370801498979246364849746552693112333220537250452897224279797642878130217052525758622430269191033516081598768028210527141052819372893317296190593083152800916493398027746296632685295654107125825267362723731995810766714779662977036214086057481036424155176466703151174335023860628316474557590530865854475838728335403372088129445036787927336833058686400762930192095957864492051872969385744994791779055734879629860464357012403759199154829616167930845127372114918512658254695859491095710990756917402229952047519212368466248924562211308450195372101742876953964778296179892125035714265232015143756490624690492618715666846476740565572435386601165457785674079801452421549037828040573253149427480845530228551900850858088968351666042280448600836296559006769568926694076942572922764925809478540129869337610207410332134363553738585318023030506240870882656942476847385751738572415687463672258347741729624957534818418429652616622393745301338658603561222550728349919724664351000144334832347772457947315781515812724459662884575175987314909751253712040655821390226954312986325850590179606696369085310296420390815572760562456047340469974282711012151426063554633160848202217959796917702832820314906034013872648695708130312217196155203748071609721061485377193610134211107743561232280999892651664303462159444762232826382090630091925611714289561072338009719541252088101663159392875827535184714514912306961164390904875842682134866030508292557694029509610439203787553995093195161204043336715360285864493266849567921799867081527200120903173033400785100820413773618871461123497626333437088476989476620381117170363054435118086869405488377876133597593424359960364980063287280475745250472333313877987009396345298526196369596840967569334710454650759638520947024589789487195088125082941061088115153957580636272046238031576105843967096902322639589318097470463646185652225842167838415065224524407224611348371137070608875515261308866750541845514604751317777747756986874084294820348598705811982444635369092762012452183918161751371990938386231833034655859911279993317757396890730387957934768715146287034239572310484569362731089966547664673862048748008666328977251670206972087505530432888963498188017795170254057433756795234703909867293389016105931265271325348414307116265736018576403927459939973401132337544949982680913440377577795757141147688267331031379511688353527204463073405043594150617247184640294882137663740903731848457771428955990924406688069901125252103434200250726151396070068303500924736213008106129788507288389238897750995945849657330387105417115317006110194034204657362287101932559244107694254096665693764461488969817572448300951658474236341711199060166481607975478187159524379670431233802755850974545877506914809862149964792685079722016668771828837107533408318002154495036209446684348024173875580663152849461408616806014455793043541640270553534063861022758938958956248532636002211837044856101449351914649509434823730893600165465816005756636501088276390434914462049707202479189771923612755761900912244905642902919951338332421648477911139631590650085057804707558044269532207405761691607554866227812356885047176942328369961760021504024799404962051694344634539614843147217431100914933567098114745868047769143624132310810249696685453430601153609834694444468371842384681853102161170295668711608961639334863624697148772820615108791764797507453760329014976004904539787780551196275158798349116478187317007285904401788510002531174249246669538216974877124281952447224899428869167661973759885226192652967890549307618092501703117356629555840505064278962969364248108349923381074913923401467654390859355496623168986259454858288858460031288212049105167633731629548748707160237978231217947370937403626308075241730765470118332404484673759960711068625209935404898615515120242645198558291747296861638672420660988298580451110961787108937130236620462419887803528714303842114619928293157774309748911215694579534949054078606041392132369284153320281045224888371940813774454980312636986674125615085685387696195170205580505627816996136170744427092625860675598844180538933120480509535739786802538523908301550340977175752657497494099482270993744011896843789278487702538122873000524917681889813735834865435533671632961898643753707703876214050453973783800618608291124166119083675430615375226155345493005348778016490671049444246797254975961080252230646083670950502275236793890616785055484952368895480988465712909083075017053977727240712264867216946248323096936058093404065373711095151206860558856782617871485881885003467137925256867056397645894217465855501974561187866509451872513582362852075121439200802358840342857272280887971744178145775801888654738817193751581493523272111084373737969743761726482300849997220732449042621417956094506110292235650768842547724618809649385726380070307109720838059634021837477251796865238396591509695330532360857992881171309993191735788089372791175112774869278985053032811809537925975580709885793541477768074150337387336359140605551318346744800831256671304672929991799760846499413817126574967961611491898153440133055014673572356602732263992064941414064578599683292431980151770016382092690629324772441719577671240298137498165981129943212586086427419889433979652123282808169561859498276371734371477430844076867110855420435885538587170632494047306260700145075418440337769474246491366178062269804019301975967265467228543332593494070894301435511021619761196568987967536827271655974231706500261756408917033702014253866313883666337550107597209379371047656886311570903864493055692742870496192356030216624910445660153281495172757572655654821689923755879269920494753558111473481381558207418645627197940647024774702804794106524527203772412100453272030602692734576618406734069076097051677180503029821878270672269011418042370306044083296025212855661089210602870711830942817777925650687437112777167227740279063752147217015172783188968012075787811505973545253004364883436848869707739664833060297018190865285396948689844974987989048526235303296448030195255095628120529740850972051004574449614423906833554196504543198518579428051561064493054921938399530711996526226378288629721077304356552366561080166571027040157488407579523072872023549449080590229547916569139915585608989128499922685655413185686656578420300822993816284859054349317338040057141838437045627427956747660391047009447544766400068519627548045087631020344518246267832649001572692612328383928273500535261189028425313187175482441738122022531293759776521974164508921072205404008132546835484122523140183467646527171068371728053180300247196310283757674896124213932928355722781966500769496312040264421824885861904784438672397032222624909741992286315513116216969202267540231219277922753851737396332924806989152844012533975181409421006697486871210526772004402571114883135708902907106143691607095777679549791003710859823614785174752750488736763784031110937893305272741414653288129927927008066417474311828556201088907338787328604109594418098043101588002609708671307585372731497287851077870867626257006989173051382474203888040491420589893741115144785577100086610814560694862188450818358988723759034040056991251220706276140427204548567577510617248153753813958275278857452411823555713660549930701362944575739040058821770452462516639390821590415377310282434302006006438002369652884706690566919329612687732087606300919763129227216237885800359504665747563729094779106257114648066666130262749093682899158329430116701734273860552645553873939149014049940891949347143659261272621488623484097026434593648318919829353407434563478599406384035858970016128876564993864910144403617307292898444246899137114866744310256030421846613248626498110496301403649817684194027292379474781056122801607005384047666248806339692514070248082635314218940240323700313581622456560081603641803512174247737782405477982983358764201673651224484381032956989761412150227537223532024337095818312088199513047851591591876899749932929215264017704491071885260410691520961887297486980138618266576631943527170695825228492083480135535375548252545726652057390182319635512570953026467587858379171614846157311945953402112210275725200692625252610523928242972303860579334196218340065015927332565711462005265121216993020629100061905095946897962880546285310760085970058579395096510535012913719257461120086186238086387610408195928739757473279068662283904116161174917460760221945676466156253531226574542289567529384383545143927314470955344733577624430792527741564999795743929361908298830179808451340679662837386828467519021687067765706801893575163880788700189346436856804202153764477490766833231374678211714972899790198635301810264988998193165047377139981586194848312776446597910534363102249397237608641971009922216251720809617709123840967176520701675692338053760513703082275247870393054250034898389049656593983020770207240126506832610155510203730627235905854546157349613916078764926667858948182301835541301814967346711118659679764023465071099409147312555145364911344060702388680488421481515737367666747116187185070936349439400783161866912311337457004237160600268142445833886383799194039960977410794813927405750486309244041427204164007032830585149622610116522970520236150504688273532560651062333276369780116602835895733190901645711534671879523898055145599686879529557766757299787087463322052916246410202828606984989610855326298198669382017776812125404390415411701100337206162563236294591972948274842543960766063709698032459613002957705719993573968087190647645460460452566680235533064794090488726846860595550996895509123474179056517349878452798144665716141551033341085720987887987249507259199881449235647963827231226078158341351235529578093993679336295958148624464155571391505906933966219067903592986033794711936333690187124756627088714999916418332698370420954497452448858441408674016167527506281611382861739454748870398820416527630400400001992645080468505597987071594286719828121160020444083388531636976958812748753135712613504222920945493400034334316696422415058193362653689954967273498289754481352989722197885737071827709170646617696455097340751203552529616057951138300876429724790515005502697177138117188658840547742848716616013774401596610036423488388395653217191621150127519409526707971844219852532016585557034792376806931877850194140712147841293708422930930165620610595291634169827630138550552977801003642151172349131057983307008588826780853250213352647127246858942614091612730782083245957254915493795155137030593980706434486775794259853301210076124391372424930256014334327953912508550833773387713240528386620252310367671822840202011934359178345733753099907863157524485016536761835322621002666129129293979923412389699860930841661734782864077664447857096207548104535924785137011100197800647583222637931944139150457135650319124224249940370154564021336263399175131180653194610011022770686358883337617718511083070764715268691163782488569086443146166590126924830981368991213467245639066074803955053711158472207219322171720311078073252416899566540046775228913485961751455402325055208403893805610806945110616921240041910142662582221093413218281928358846988957527137198022707218778407802013821780580932557018041358849045085977436300037747669052907058438617683752661005786979398590924444904352791913002580160649320477379377609918489721380609630511582209079510178593007047878221818594930948608278717270974410021922388973378696092501891410742965285796041577440784129060180283076695555270919772017096963529178325006665178991557447208516048594532843915872912370955640825123880807477336900956154420268396196469539059607302554161931162441578819823151729511145935775664785035452646445131200940402274859858732342495240594522480137580880060968743461490388593926585811868444282783806152502236694484156171161698193006237330995693474621126239950908708485766818487699539705512157597139648408672904060476631982893438822038240579252194993450204144332583165589305172721573972301766620382271121163709511705343921138043412438839739251054960319321687230550890518792177469644481398001501993924083175563320233364305895588766572595129439171397348449234785440865018360007360641528939145793664457920979901831367289748958494174384578994843775125952385987288742863752975330052913076030836624613329020082685825559457955211014656433424015009367708074377995742455639050246189919978638039188766533066085510037273415942276301391411473294860604433001876004519453737837808226918910144785609855203590397741810229572641479363434940675927448824968895299972468242610117749528089851608132644332427567149398600675853468831002973710336285405472052468817275158240143200488956311538527630336919772302382738560418507016618612397448774552421389863920088700465018168700758087065388267495105866313609439473719615466084328624419071753751110294367440546136491873120659347807309476264108360503238934459520240278635983734285335745825966246673811360233668663939553370299067631545233529142825134372208267240944672120395916972241889790119174401566465638382486581024438392672552095411681183185682409328348432330913954095269209732600157084302318869039912377480201017925759973720256240892787862364434135395969143682206033048015934840790374569580713461833540009431799203239893364092344784847042274464949786108829296646301174678027258167468277177221342624421320434065393431599895251375788033599401736047714584126122781760104832201111110802209891061769234278359183970545263821205454528689802715981049656536688099908201778820185022388171535147921533657268745248742222524101248330622203552689625112078542408270989355973797089784266910270104806079815498809829047489870542945342778742573264158912599660830584417836782398803841873117999274265175300929814363463923973961283844499921513232851892605849099601876495443316734747366542916988558417040722012115655827176443546383636110026218827630284594791792241601838373587995266125596417146220746237957378486155128842031130928675808361383689592129445006361986745451703285210280391306966179005843855360995807548490179969991895824424384528388491422921276329063556799152750452568686922661694013637512333772943729680048605388120581897516348856344417291339028759229254565365138067862472423050644238452497958306203092256606887423118725322669770531203989833817474840708219641847913469803205210244544878291976319269738642241433531106476227531721090018948014209358723360778268487812724356859746793965421962347001336045658841459247437558807422190015865744290612951248928098023758407510524687478570659667497908081976865045221390548043616846314954884320686565707158346860287581503228951868446200901304039865468043887949364420081204880375069871022517954674862594176247484275507517320654837723601387969855893326707228416970875179596125502603762756274397734454162321784011640613300091334803618692792845232741175807592560735711435426382953436672714519681644749743102991662541441196591228293035217827557543135299551676556168777354853073601363050268698315454218065583931947957999389388322315409741109323070506697899920372213760553796477043807870595676704397134186482545815459707607250339959340255967085639225971205603572450621592716119507577790852363689706901377927489499565289169902945529453910596687434437312631854434117196637436696096420421434901778290095367384251684639731391845345811465098322680144258564864566767227879581073292379552449636034893123361350319561524314981046410417620720118405609727307319880327576792157401174787767763955513242397897583034781160879351805885590321866351450102011053101204891867560453201101753464827197599638676767414626588398983933640606559319146642635819025680548719545986439709876115098296457186553870444485560540185964079592181458441809021326894790793225391562214284734366749580182550025349835148139197100433575067115797775737641501386968522388325649078288199958948993994209072647010660889701068130023565025385275009362832012866923034366306355345394983047911414866737659164393976299343564908866389689826833164848210651135726793856574043735327279860163602312511349998887811296674405110324129831374948958808619699240763588079075289897120724122689857037468669118602640336071179944275600666907852702339338845863268992103626905651574474770275140356804506856982878870150075998252390497750110978108328714675657410202369473451751526753481879094920394593509124871277778772351492372708906887367678249801086982772037356395638251246119514181543694875512315352450227696532498597288614992265486079288847516543739996098084349372167716892002358781763055740168354132154986397424347543682970707847764721695569334025666181254534002265233082555647866464598784668450343683074146577955230803866321117615464655121965292424695872438761079555247546987046788599210126839484537912940196235438942532288404513274265149614222689425679947328165899195034290204969646484052012409167080626513089836125746799606343393054255552525816493069047330036097171762000056292693863133259105240278798367465924562282698597528971865995917254070920206627968108072826101817347150227054010535118567320999138469296003922144225071267229986438152307610919266535712709149873855050967867486128024820480474362248880172025751547265470428328812065994039467631527084004495676773652885734067971557793358339051299214107684448988854762925938044188297539086700125871707291441869248568733441714800055663952346836072376230218298841195118768300751840559360120364278731648977108175894421851593150237587799264082370523965223006083405852809815999408974198877843522156403491760900045823030571909382667856409923481379369780041219301233269787519654201729598879770502737682842816340088384457784300564200835510335087256649804336410874934613590261276730765361894341850776396087164376522878469391876743769629678068615355810921097982921162612875003494548842657089613163283286895718966246637735586970040006101529192145044821702460173527908427646385534785314153547647329412275358508717636366801495022675103021218856274203431764156001818982381895594352950979252085317472525752257370567948918274302875618752188622902542574764703547612637556697491101503364203356793454952546733382696579275978861812716687563383545274136011016764393940161999890246218603312148545204216985983216921797507220007828874304474140674616930555800352240512254109901641704117714869530781106990750347648480914235134346598431889247122274957666728561848781017981821193401055925173463736036296212703578846994915687738896124981574628308545258203964220922031609598052062657185537877345348029802440037326187485286283430740202481666190230707317178786101111161826427336947366346849896457836130291146456871508166706328855280650790053932586882789731519718333483153473351497035160843008617525106441184140671945248949656586390683849386575676524409325094030399914579025086088494965550050587185142055366223006758553657333059153962384426360816793869480067238015604667727930889798909541975689080458507985814410251980207573812656303590077303070171637750177322366365808186266410183045964287794922979302307451686161216773756683954271297120924185830205838828893982968036937070294862556620527214861154979752604605196808701402405511868230034306131337241427406811616817533206819397348522041330895069636167638669225786164218279131225411767720701549059617209903962070370529704217458957885817126155651071351698022026388349104085150416243959785858482334113770277982756845379226497446744182927787275369224173270393512938513241034546793231011639624890546607628959229396101422761910229938364619959545581460403874033448317243011160163384822253713526171155612403627650044529119031244992531687341865404917224914641658001388259938598425090006633905873440822374026094652303556311309399072554162435794474827731914635143862310357250909228212341810854059636354733166230956440688562818433084804533920500876390045291814954305013285266045197484844389732632101588991042367902088747912930548433841529969931019516798583192480156891303137567666875347083302773235617129004625752584104417834003984892668850036024273774233661869860410988647270872518513734929566836600805464763876432112837189738896725202404301601391145382424200854388319269671737968688218260935883895890679131394075452388787670101870114974020230874813369933860390996167253349943046948336995411141802589249902801960122679316446261261825787217562408395803784371406980210068351269055323624302086793355622383131887606826409294265812498044406328052601246057891223387114939901060340191043282237576470079840323729261908392482502547451135401030041652579844517367440341604075413283722412333984494173991032386375750691466929882966176676202938455982469248288773641266216490377197285992279416419319301229893399696355227875965132499779084223907909692913319956804439496393343743800266571975756001868957772725947059023354268683110189864317252068589926437542450081415303288116253982294705806734130125017664724944713258340408686411826299807406176585560895427724952953659038787049192295970719165226480409288085152283471916502097651891191160706578927652935570520178671185406823482542008749751894794997043669618865770662826715861033697103571999167297964621066176613815917852248491498393161651398275479099075834927900843570652583536003887781375395879728681171970689767674258201858003519401153619716486208526256765603302509617813046479013058347156554697761545925876296247219298771031020746890935916065946806730246819027759408041262861075054678134658928945525589973133277974933467551717957123176693754242464740547770790953324599019106724100984955923428290407094462052471664969432213103363277339543331610673123406370762938762285075381538229483695328821148509994969354797621248878694681712411614999604748354806612665200827304929174397911329334871719293973402326688029911312855755038495381000461439762090948712341071704940107891655764776561156264419180251871781076491676353591101941485885831978761680254714337529216093997381797861665761332366071703191056337283116930338239219870040500472712056727693736504454880740245707354965866896617357480990354323838756696137453180976323325687768401105430437095666489162446406378696142513632388105116121395406832890057241174901849214143755026934722437304433348215921862430432515142596028626106103917722771983787591110873640714867081528005358065626323879280337798683947300359893109069268415364672748370951106206807045809442177490326480748646167592451088063925712372551069330716874553356395670826881578003064389445194984407975573226527210431029715287464556541424800049991010723590538020766706804688843833381321878716090506838998944604700636037026240073113944099586749581045716369833800333977589690278464653077392943053145046070498045484684358037246596813467554422158569800035788806126015561981887241371978416817333378016052176396026874772662138656301174483746034568717254095915041717329452899578144541959694200755388354436265975940991981985963950552649655615471553408325292699081847072609996158458734415476604434445727386234570815452886034393803077530781358891767943362534809493536525722846450347054325742708522724872693593532515393016249506596976471075558138041503017549533733242247482525878730897375390766486210759780712411692312047429476137893869615108731152291378648696697938144691449778243287207367535553818996150740629891272662511546200990692612822450413828458814083067275216876489423322310851047783326828223561157844729218261651830000835970972331221790708973365187031413110102199774559057862138395727150568712877272773958626181002963606294223741559443978260424214716817963305822221655854430850954732062035787258338254540577893880369635264695460934232881800477346956122222039216778705344856996026508131708087977920114204983672548510963703900186091213788438954788743211997403504991823794365656785137203475107090219265695971671689513572861169154092908363173373975831466198074439600698089611627055063224799569299154108852946182705699878028953356915457043553994169086617707124061864595993747513941356236278035291053159634065404439298492849815264438732714204922427287383610213055102271281890934750685321116550146302162240718730783900474114396572504325741612964461086805860657269415134295858652858599388045727558285463144486409348281007672053734700816372870163532132810651206516713211330319206674945069523473855385283090400512896087353327040725250316258352403520567299496046103154627814052650708538315153424629198465242454333087351223629541067751030829127179540067373200480169108422126269021467721092389932267096093247359229421392546124833659540426744866800522816405934072689754009682172370926467746232282742176838921899700513428965098468916123486639004895210894007154130542025016779465711927217549266539178502387013971692584209071037706980760097565812412660812900242241034127173728862657603386803973820261744992696253849658225795132998508797097996671230038415885893378113686388994167686963035025476248377460415276176672554537933380477451430970530031038982769607483451505433222158712943540294430548439948155754341141821328861722545489082157641458213829014745813926512709733386777726027883074674062161528120744225076300954305306828512761303488812594025629639458054564811992747762903333668001787332854587563963798139555853504695259533676893946986618103406912768875971443338454947464416407043226336173944095135268017426357300269399109393190850480338801552346708797894597317484628027060120996376383924949189696876424353945827642264840075756553033939009613814340974776161627076850661817972478254918998814864829911393990010573015874021539682883117902136641489876012210934972809849302392974988358819982802850384756090768893428453497796386648827708258674017597244815972097343449772506208224813682144369952535275837809089299577212132414425195284697600204398030446363347487745805256946244006952488041091610822892755756123391750824705135363454172336094279221262814017082899248419561385571692394705878650219607060489247298860519219722205380097936808732549073772327131848491429368341114973716191683182658040748201330058530945067920998084867674730724992304755825769752689647060544262952526381225891608472314252583362988532808807747455633665323419880667669992796086562599281836428126593180135042442611333418213697138011910946440951187500842660975167407032873713960402846758576104185944371439048647235844575114494983956870668043291287043316671914547467628141764771477836281337875146052234353416685645258793475339081033082212180467182271033781837518520040862455885778055769145378199762189520975545352841106896779184956853193639841564896770986137104988535545355261287990191941569019035215483234849083144164259034593494376885294366476643495668086092943705114924996069200662172567550266779575115923362755530133444078839836189932542839087192142685013428800537386542134761565129134177023796313527217623628007188814034846024296617767109884888280926628743149458976300672060655307104534893779932596472782113387649996871143138431182294663544652952399383825278299068909009962123966895240078463077433684957157142508880105103613989594823562242975748366877007719293689800251885653800075933626475141735743202032542486659833354906298775788867001840421995550157028128120335818458579561162855865844023761329257830824099338938640601183140302660617113322471167086213934973655968666552414305209880538605303374125139225856186026835389463539897484520795123621301056748078427398501414152046018309006390894937895718445935816993120704251553490128544868890139149864925436305296081468106495475482560473150451505035007562114283460501423043550652443973328044106301684424619052036599282135563553854689759644235742553149419475369216094014754293168479976473726313803360479595932813457083585507704095300294501876430206777848050703774745080558037265373836609632433855020391518052187659511620554481990489829737466115051214047086918791424097622715896003818358429831286721496035412323424838201100094852579604601735693975845660785731883939504605559465592004509899443495812747858406983037115084823513558487367968672659985724959723829196905221505743532497085296905497754216092025423088590086324715534020720952482048449687294062411203683075993063306296236765164851675311064614275087274613934817838367266712442999388199665094876493750274861286946049910133406589035338546340396244758729654070634766203812363984268445153910033509122177876875397754877757077544613654882364938561275245635749120100985534028701141978403188474821399233158793914483893388039047704066120570346226613569180786552074388323464586866893945118422573040419366577660256274617604776870804611085115509153405278386657750232892873858865583911714812344345169226888600147432877170631183607660203404300249501560847303762408959719143945238958100886550396735079536064047341943450670033137318505217009607934005222838370682406549945192085963118178694571140456785461864549460732138860823357883357056687589307589737353535790734343054498639134322667669871228626426749418091233871215958714164836489908506916102486176442030349496833857141853458644205469159577766543295012222397467235652207187886239742099327466924343350511819407736134865321649140475377403357282839758404944287480980077096194079958122509191187324103169941301303400274378732975521769469595429506895131317880642537300040687757190939996165008088934981651153802722108551608170249176200505432336717790390528490077049402681434141689895660689997969591142003180272208687787729586458037421735435481525798386140763296039225750937114148070334597816202427404700577358337084283446253418480372952062230165258628043293719561555209646228362299315317923019987156564258429710060976189008000887809048870483464378044223764185563891266943511495250153350867841196047942564134673895623332048497105508836396641897953613439039791621218289375006038730718916469593424794080374770275287800045371357048405629896833482534083358425356938150087164781546085989289277602430556356643113810079049143964052140743617833166644034292980877161803317323687326735289911592319764986197109117519625552749500666373220453525918936604444717823248693104603659302905160760036474731986928182441136670410210476776198729407381753870856674171305139557028803010088197336348642342748233438583115152110332251592511305600678953711233867867289677877347135087937117800536895882628429251876593135046711616453364150018267933705509950328910043068868723615895523808359287854702464072808384447367744596633484614466426481556922905524749632914979318797247546368580251444954498014326656305587447417015698840411576409614804834794604455028808266518740522117269896566932920212500086441305270312569954364299549496704223550569365660027507973368999179210225167805743331045913307175699806662751883763823105195552257111846558668734821103576378101245224648273422957925775929853110928155104818753524433245687058916057392675631172816245298546630256307872401319174047309240290592807372199672129008475870789295537333318674737932635613275629695585903698504414633405252703444818967917046129917833425547913341337489730542467306661647268567752791757915008614298043574901623139359157541655276631065958314940519397131917043643548021373215326338152554156705673459028202511340834919074680083031404984588453180490980224562305142386909261574564562420228117145303194147305487279612012421557982170099442854698693720025225527213987681462892696685427212684582226323517263759476822970020345508231569587423434409437579290659942680936854120265078616016633913449498415086998429026945041668990130131456211561002268802746045713838552947915526533467007480531883572176179194725091662757879293848845464676455238983910540269618812504075636572079309256023736530611260368305280538668862952109415804933931738443043659009344610621842009439190599491864259403202909044723158790654069679163590123882049517236292779263802019683915482358579455883286152229243646104907846727116236009943241859258159013153944675910643288248701674762746904862822875596344482047483074889875188347327075857497357958812055008291713049101609021377533274147102153105911458825935956497525562077521362946522580421614404911694783534767721424697482159383104040952026655242938849712355067554531569615420987566791720088006246863395392383212397546591554211144522916278044013051346893244703696556763018066415544122406118100042669331382287413395400496024275326872451320944077861239423922096170609483645534577293686445642372841058769133751938183436256075573003464984733578914963901114531807985520359317126285027020473592669215668574647216057341878858424135293165165625765724795814993946913070010494684407801422375703750270656458485375399161241008620623883002658089482832302211621549561774828268090745132735212821889948348909057735915336186033501799432465737885800305543215416098980880896973678384814711374554418531967917839450286979466599880512244331632028834481209896279425937212561045880875587098056159093265434668167569865947665533281257028929570184263177752671036329228201681830949269701253513847233287246762807378056593145890197018991241021124881376948724978489786459715537336988504377987957941639436630312093208808839761391517430856673330961925808651019855584063411341149860978120441353600367133537333264219538057425695441758373889422362855978139578548650898908994477165024231393436399905234105567619757060842283921605810550089854055776879036715705193221818787005333435638453682267482732263046865952313015872228373839008874503607043599949157141525995986835744018479554300109804280569374884948791460824071855441052800765767571632851129142950672767923471485556083298747956016233043463345533168264440550795415908851526352037679986335060821236038705172051740685601872468421181143126334345737405564421271522907486240449233497197088203804497473357987223426159576635739604767632770552041366468317996220917499275387132252345292230421091529983784127971450063742387294405223499059293120323739114363873225510985546368758870032892261910083733329799006378290852803016738172635900446958029635683855057176136751250811951400274300073267758387924654010037113671864108632553726196756890168713942638374231554911116407930472597272058028949471801988497989665892708702997425676861895463548845128467252358957870178224935484374452872212927834905166470211435791316951497303451112790939117656086204331090651799277591963333460805149508953873719056252260780901217283008307542086721660762935283774953553613391938730197655727844257937996884352995284683177146344940461538032517108834553876434902070930015057603932836141236644589316715430019240397638870859006038620663731631731156321469812986627578187472538411426703076901791078271819596399047725802665434278242569786700883727659265115535579694397657729633170657339167206922288207595763865488311118334109247164697402526357633851297091597756231975437570647187322179718746380913444490544426445112381307760013346588103443156475844611201308290029912712970182237480682602692670169074952432198244178070597328104445097872699706169434962259390257653825983756194583482456981892254178450097964140962345206062144695245112449837030190007464742639600692682417396104567370741416413217298125030839115335584583491516458735517775789551632188817782538449959669536421611699384843037346715106997895252919881356267942025352918788048148156863122899970403276691888369795079827901650937133397290815969200347410346173975448716472490632315307158777430979744555370679760012385679652338583977100715731306094631619849166856588742420894702801323838079641771176527660057340601848326417730937283068107937976662305220495178329882409204644106682773867053528981960943011009423028550764869609297377816084528608499475985125696433204691700256572885094476260869051980925835712146797252228951142302828825582772033245009403121108551822370184141402642661795271689907420658932076075858708670410509105570788997444734675478927820458537520124621003359130244523204577117249067239644737663736871012495613636702989433633218280335958654890095430399648664215321673124419110418918057820874222743274401163978303973952524626506864554085195184450300735719087383527573544143693918522001042930831202666748479554887441007279959307583484425593786462236283487162392501286944483365185840053822346743674621292472135554106639907856302248834504379317782504076609541150740996321872015310880211731811871913632068587776750141526453002704310067682165851709134264224564543112436397782834580358472926564946835868055915780321298337211817565867351542291926841616408857602971450746388053761187852533546594880219582027063630867378896696092074271343931846746470522185276046186020148876753410508573503716115011808939175178694263338593314084562087380938124132181807522658580846139366171480862842943606934342621668986161583121102406129292749000473449654581049880088978834176953315180367251607445171667869891615095158665335987568501738298014610931009850584214963310231962561973122677115745703579773921063745010544068542018552108603000222246276742155395011388338984454892199860698005958850382047207329267645591544172099021343335935330918880598728601793879444051520646871706241023816291234070340857378943142104840471797914592931150626539860411052661695640601690615247787470723973258650664703775178427792418700032235586174677893706916551096412775236758986979771634996991759546767313939042776024253279090722328823623202248429410170618565631242393574857349226472933243684759759532637555821839591305255106232613854037290467254406562293811655671159325402558901960220233881111042783279623940338145919008710412862741503895192368479222795034246906134726235956227709027129578948943294971040329445008742807125541138585960289863937511726408864926553257557605411533179216057176098504077491592225224260109351498906999587458291615939923361094952256410845206420905551753788371079637114960008286513100684531134975252893332304554382156903865054374968204626603730659624414937009624625092790457175555516079338701964597229929912326502083519530600972506394313749211914144646796825324757768584975727601272464586114346601436365909871629382835152651937575866528863716497951725295003714831816866362813924369898545099763159351062385746083640424852610429361166978718873968872017782559163003722532775678460150713490439391906997109346661990526714669388551350508047938362959740348185093576229473047066508025730950538299301574082141190989882144875885585868380544037567694453554268309027078616191980726266194004512278038645399025480184335636832485192260502467964142504727499664171825287601842713606075653421284887431364976730581106902988276735119658887183990372140121854405509607937795030370283963698201834290088035192891102185146997021346344268489676108518356279554818775830930527341470191260175001346681015722084888751294177591799228549595023300350729871670841105749582789242697381918049629656859487508840599274128578927411159778606710290055045529563029962404116604776883983258617495541406790712975795726037029026450666381209442202024940423714876306056217679042411386248893986105261644115305397751338469412934720968608933217670917678441379789844639626417256547266620101124090099382663376140695754261619476903356886321183185076688467994681747775912339138818271343964270072726415182045481925269954034627301430060961202266995918847341761718819829688940713149666565723290848642335097348667431301220681022514601014090745802275523438822768777208049350615326583196463122379392857903338850334193388106045139819958623634588550004722584094185102359481173529647524099594553918360549215039992207204925709562003697844698111814661839564147195943038413513111466465961734012417335988622047434905598559960807699590633096935902877494878938738829578173901998622687131443411500992161331234207099857275707586819243341712571737311437579880055957111288490929107608687675671086756746960122069752196869986972646352459526362127146919186552039056308817092672683177442670795304908877493740938818011544373756594449250074678853691202688556766711810294728525368160884781015867776402027636778432880399206754551614279211242153675744335713984594409890177146952889442628031960457020571380412511078001299587198684290256304130144630017519448670956081379823873010411936103940950702655768872890058449052201671495389465666482597734392894813627849459506882875867506143344793649684482893642757690470306081180113454029892972337435081464391166011706937727209856381168202363139890519968488344272149680586317131569187603891646844307393053138876118663155961013902527098354604188204677973075031287541000944004688142546781270728935978955274742969079995987436049446345217731290284209119316030914189365259994883371841857996726745909682899717054908216509693888924219886013686099052942237683975522937616577505292643135710961838515478837329674188808115138440694973478846695021242058061337512457917038061072902578686456044981015841650560359775503221562204672948864667217662935567389990325065822354624704958484865331203165784234009394731582335387225083229296486551284825773220678136108811834043513732664223494902640361086219198292152621470304994080842920796281671039432653949068459713086797789895630608787912549828899966065355840526294356550868795287766213457020041539424161262968228106821172212319019131703611565748364963319749376137113913939235043270517354913480104538980156888799164404526850171624085999174237280025257599474085903689729274613569557733766986625456947310549059029505344126957455592548310078683074626571533778750652665169676869944396461574940984289854348330755369744671720702394374591573080053839259433198978598048991037381241368050484579919815592670167248822812089872574694896783396785370583264641836504982551935492137557203869664179071215421317320472433507346058819215296657047895060524281855949745184277543405214626079199406042375828825088226561879456725248275623802066080626539768467442004013590885241441231200368358364007005492497095448171440079680526846514295818735438732190619099007380867388360516751560659663073572676516313858594868686792800280822689036006826512273699881053681307750809546396743096143564227027769303186207406446910101634986723131140062840742862354063657738759377364359757727450117737907324463239400241923077698677758643741239414952920240094822696984039782944508083857103409141806658651145147157024297109657669555454089918798705620664867430841224571426739903464335137161713047132174914226030072563548429959835009515938950135096866916917631846569103597566916559109068117694134202196940437123899052792045939529394472073017266718660253066058576182655689294852635307101030778797489788953448715529913414735156457220849279940576359934903955501820462374711906036417418818403151808596710735545682969539575649323363424477394827989265451474821713295181983632965802851923225158002768041412802171676078701800074920054564022076472270644738388919647039876358691522691567287246344522957440539367663432412223371811826485003939700042214250631366011947501017544330360281351729278185544543577823459593938850966682584931886583715615744479082876224666239143052107257329948154027544756948561140764439366054202600579101509449086345688407105807413441504085212729622446426701459709982220895367524899410982883517458534094341648846110055114190902862228258913027633123662895849710865089163372571236350202426800285762660662883389842343738663459236263084325418195321896765769152294946060808619229896276298176562838956292333216663949045019810214118981151601863589027490581272409546407916641057610576588429844750712760036099036391094991794804652519341046428318017725533925710231875015499951535843853377403632848894845028583963994906669420697107948941404875839896335491648025083240153381292005533881253173891189987283206198730715458903683178800014956554805814875346611309915057525133910452015470101687750419741848689032757088395498373059056087814994884934062505153013673327017033107861993436051228052580219304743482062891631496931266819712748228007861458710122560936671240488469772368173355800258918752459778066360978442685624584720507525473435061420268359863193984725237309248381962582823363824681008878409241409526435781143337978986326118754652749117920428498710555656336255391523653641124289223658913007433017920971443137244150137238441637445937974039119611609517691696925675298406229864103833161457349514782008489385980520121266172159778563351541980078564313766343772347536771914531666306088448391148602147395630964982876395367244817689016401666024148860797520446488233021884629119052184609934371761799556182412651528216026551909524902967922998070400554531216168215026663846161182891640852694181214645870716995597465780723517333262126915176468081102186662180231766820173137445010097744858707855883460646100103339960250177748889083187675738036173868337206298350112634954216750697257140499266631237291434347509544057427329688012453571270006939382194846055832923951646820882359214791270118901136032777384754812756010661476212041910935239616394447186405028187243338884371781358576468833547567235766743733322140430448773127988596121908700458355410841467930441794148942727150580196213129799451297525655464499267046053256366987822015727159881779137482896309624895353705186771728663788523944916225581100596444555833373977690581304337241403901913317180547965736865495521339902807549745739622402983637247589721515082629027062575027200907883230396682821116121730958657786945712330678901725162350951706090447365743482500908876738333101349985476678681965056071657254476344613873902745787431016921215300498779848241141700979469635755865878733730263548878153377399284421283255961002017985170992896257570335446745420174418746711748729564116217560089754564721461830391804658186683714436933414012125636017141979600886943925552701278758253671207158003782431312339655900726159037353920569435013386845293303352438645597470143599730092308787658875432161231814349631866837447373884275303396438488419769399786613027427531868573916373778710285094896594999501858501927267786505279816546685467447700652271042517242978089441302272155878609145884300246146001545505960226477506964102760054676876314831512492998019404034669460511713929194875797262691425809184893076504556650168728612799660920749675152608071096951022267665925208151510308207162409167172535172167922059824060775836107024313536970519794096965880981255012436074870131489413954561046521779198592377540867627302638305242031680515913589917222617353485311798254593999328156699019783386235110555897533859667023736085706495618015808522793898329873828863614371623347902976735264032553585295179328173998973952721914129953825353231494761232116239024379862368472006705200440998803814088631314933430185412150141477719595688401701369476745840555718299643657451495664332233501817432389488009061426923208652901763588542561983426649506376213831836143443175022304140057538946101794008699940734407072718793650269847807458357594391010244519701625581824713567482798702693690422244380393889499018972915532184268400823189484402816184618133114563357631394921135138181590390112754532410773520542013504953866831086912588639087183532394313147765817923168418393836608845945104271902983771754684889745341276537321401941822974511418919017282228705665228199759000762123451030671682738295400496385245564768840959530163194270643382835514698158019599362180157113250419197407765351088048761329836830237915241648848357567315582219616988073325802390298361251608258790658587097389802162564138295233966221440686388877892130660723349521643534681532097333195086683747764100175204159121375404570392676383219831818757923268329664467614818084979472552006900006057630808401093190844344634977020463205399796631534033479008941819261854679382956844964566515786888831010876755239759923968012807397576636549795179246514808734790403130863284775152414525392577112117175539333636632786314282452464634043018966263656720184942729726702010485819289444810997416318249234555773751346016778047503233382625013016019949653287022039095949163261735395927676855662618931990314642637621437434918559249337998981127607987578732311036009831021574078594956624559879176701676518677931271003421371182923892957556593868132628840132259876353799750911798880248139440973360876913884485883745376577111393335201805561054499527883201565172720100404888457810326165010670346088924586391559049743711288133016292553094213150339337657307893418041287068185357368470257852120734363063382144167148002202745679745776824503346020729463868314733784954286118501268693427136615414016983079034926209112604345437533991030019991534072849625672793917949276968732046479750079762101922544731298686017867070822122863232409359729076935560752257257534395802190134120902391461372948842363825407687068217683817788010921913503977359575776768028474991450423347106587873544943128018622010866973824019422125856801365604745849787861904807706926774472308845616667118283671997705702970569326913798291724612161048891413262656097794861780895208814192644017811601545624084933989264018298738558344797578293373394377502929685074359126245694277453258926515475154103046666304998870367141150468452992390368887778034229378836285608581568373743850323942067169936940295539488833995939996274034389835744028275363387611141156239662612279261810583548489232982601015062774425554209473524675018976178442578564127290821343650921894653834298380384621959885894590976204653034138133817183092363652372501872061226520028761939885732029663461881838212616758321194083965881439955135242385405416068392133928942236064921619441392769925284894173007363397694253782696753382695319134763176254265608444138644730265016615848782389995270940916688383631176770497425015367819544531172691098074464431772877034880736761787136638265760749036740610147402875603044634748557967892236757063323474736799259565746686654555306669187310223576405420692017664988905439945218754473175483722370750894674953580491872507923508351452333622427834152036490996627910299215467668306671762044227832160525149172603350441802012392436961838750874044766067811209911754183390700737442344794068776391417392629498087603017106848141251272350727059278123879584513089463913262165510612598638145892748174566958826973858473180206599747064790431182372843929031459029012386857749619252522232314246132409016840418127277611458661799695931444932709806931645880259641986421460662826957342102644501582329590108055230445124654825528433394547239898657866979741838756493558204533855279544716727792461123256901971292597382998639854472678226307848092182169964056876827887131242386882400940175083668984620834648598846263703867694089584413068523704085290573365418477816228706183664033427703201618790763916229406831780611419421569345248285786064668973989241085260714876872671681144271435366914536960678233459065204531180990430627613098477862670485673720812548350772841253253656253728234062178072875767164907530901922179626186883105466893551035568849449167515758006259645523692799406203649964703316707527049295929112862983297069695813693544224987250845920634655436976152648413967751447272567667326419380533539528777588468545950895596587792163196884895753878172286672022175891911950884830380136500369745741771781079487547605665854092977361282894085066188327911255872036782898759764301395853547264535495897059978080909023211399084461283807462744692547838431890802118296646517628459739305251124412650904652371744858375166208797802066328732882300773873038121331637143129678400711944044836180048197900410489975606514352613124532891872666127256102177283674367647407056843668764390522267605612581437870054351780932146068092509411844927843890973635577614353275879599194223409678026544912796240372063979897358866823880992652623043308632478690840029800968731872730402788506402020232831147766866859771892129160495529258186916665776871551225488443839051766106112607689611049777951517781376294991225806521802445529887825389527118481833309584877057043886962701394866698005206640837145104764298486988594806236553637990630771904470079677982318366613162800487936000625954944586923441097368512090169844615589740552344020912225366752852894908298394751461142774627821668064497826865124411738847413975165644053463529160564678214862158867451757053511075219522796349711359760255713473641925797044734218198368132377294544756623230071368079488608366289723301219050816952336761777701298684244974162965783641276587149129786741709010872388149500389258696728287987095503637516215609976444163934231407222999130112901691537187570008532939053345594903600686121823781400298748482253535638049303641212746498107688051631571290915576043110119122170975429210112651180565968074784255035024643123020027950512029325546470380796695452550730497885733128205035021738344435364151103589338443795763451781641458655080121310221098418237889876528830722157937674357271282273957859803342877822165960592849935066905018712417495239549113774303687543379249716953680643704135925369728688409884447516144548915914375001065399081020865582753442381275763865899387068985850594033106026605734216773507814191168402799545530583239484474958108358734178389322288189026830039832152914232231503662741498246378367691275163741767903378938753632964767284459314624080420300364837407445603531587166239891273124523777619781594052655798442127143814446719408214618911675947281416681953046955015826231561323463923393248850012150078149306101316164653550697514633222513339432455909380023425149445319529649261490402615318484450206608854456679428549849602013798242226913446065741780709418683688716093240498248346548620408542052013470258886403778173650615047075531395627291784959361678286479012618947000363140243400727635224724120555628078446605375486306197917522070883698224737613245269924697558443966968356064523819560106961505062598102114848264531691414085386031688717974201846306787815447195962771351352502551821270233626597808691139794351354991784142435004183412920831626910583782258081021496789624408205035486713844364094695021399081383445785775822338321140578580048845125275663378966115781196519281723008526598599535906317608313509942518791569235703066586124930064559735984839028651970029207385886397620995295402822099244838264852390773513973097720649485391541365701363325756247347378556428419594232667442986916012964709603017357438053767541725530091653988009973043776801071663111675691796719186427465750280407516077292507213059837500490135220145565605721394570550876784512268116941065718052081540992725351915386542192441913319941296092240051893996021155520470152784976745141015936864788549933525071036862891908599589201307535807458843306115449750792938485186655150042450545013103401546896995236795607781893771069138603793482993039813396635960854516221444488698548207362554799272760717691028901355065383061622685775487031576082826282652600460056829136849624891596324180246329558920466781824053602012879713226873746758261499130712829610588153848163775826831686350391672656500137160774589747289594392950850413379777274232474928708841590225364691047625912385188591288495596409401361754536386314727198482090145147834957856071092559369634177742703206137159085227906376634640135460057834501198107128229627196427692678536333477352350879308945219752625964761874990094199561592599185915436161579070259522007401172419288572602146483031945095008120942449033159518071189003889742044910180775065482800150626938376080491658360482973392243576421811514390881109052919136355443417906765489874271038775019624015303160370383109230828026293306919071228618408748160681466817360512725897677551128527065010586486106239628410011597860454356554926695808570928032197376287056724141562212963220900097481593630664671622757293814830749290809688632466932201149788484863091586984451901702541723244780644752923041230901268343894009450557027094635417328932104585514591372775809505843263574981824599619995938613993049125028133963322294637734463710375376742707258163476860858210902664876987688991385334966838516933205567370447811269997503416084583979002622807707367890914620687982602078218931209185253141308370347265313643294498003493482444748202337547330338315944731560637005447721148733525864023219207505604203823113538053178600202173185619080440193636381922070094894183020356630888611915386958653947758830519037685351398957707142687883103862055377171477710813379778819434866038891058389102959125999915600693448000731766842493985799647188069123603375951391670732820636101495561675275685048349790644894632667516139457278396123410510510520767030948264203249604586606095424756330585381296923291860429653571156593994058336859812677897250667417230515462830616129112509027368993154783611850663517493586160638558641886204971655698718772163210458747159419284406643100234225318997277491562694023884045177472035236486465793465115350978674158655071170718563859151405258503063238990155026183967593883390979047518532364384041579237629513097085771670809750400209109035086633733968665526360378186285192199058659956884672133289225874931024021469400074224319868509304418157518866359977233376645976980375736526841781502981465395608023333942041889533172633724376216365830372412198102700422216196571454784413702704394579787121493716745516130981268394322882054939667698595810317917004158921369473524769865859921690378922324385977962298159034836007598234276702238162113640043409478068153393470694070307254682235413835374713943409949643694916703736620706831829592250550487877643965147540668378789254994598845214333212606093659493670570906142265708192521961559559688262856722412340744679941748681145433337808525143300643730136516945778231983517040413600146206671483422828526004702591284167326134550164894391706416521550136947517248192697749672533620271135261923980685212636276120350592874605491995948650446212882259950719521421424189943191086129199714799062423260888412414332883045539045484905417602537635497143539255064847312248060637256093211974097937916362649005628946372494792390441350130231510343576913953082720935989228712719978856357667092441509021157896604508340030883399650050051301065707944132368438725420685646785767515636218694998126054632425963142139893968372215027929439411816613308777352112553286551126103846495558707093429557322359127898321697629813690328856878999198905402266261187084010765353980762566966075634849450798499851865877375882291599828320557588091496778847843842662422861703363510786129531462478817389287173168843291694497338247757930664399662538696471701164338915518440153619896516354591413170712369893437458730227245612836918892152639411405423562952415513772330189909938448760318327619160799535118186622951737359965946572498331761359449613240512389079387011580571261367806053174495393164822620352100190686307358214491135237564825232039942622440425971516111283416330160478279997924380306619853221184407745338937852846566572015333301202601493813139556687544460035380239075720710523228294403761141229178258744097247294609103773064084652091455965047122219643076431426953399125773832439798795904268116306709748359752229888279451338156395911550230669255830596125131817500359264544696190164149445464449863399993779934730235552036984254015534123883815464203176282499719304690420020937562154134638261568762212781757278920544639735644277944634528371910127711157792228867987132982888256742462276058560824269128924476959919159756096888570686366913571310132565417060932693518878392044707564292903622027625578919780602866296365350793346225614765006665931838691233677758991400196867568678778439604518742220250536205131436993185975626386119467882201010660680198301728639119107654575777955795428807504033202648795997262019476649179453862562483308429604503010748055700432252230595518638224589700368332281148286907424927258877484577536356656197623114430793503633467940849646246913952776848371652156933127224894143834743233580692037219459090508024901564183581288055300963957987911289531677901262353358705486298897001655255993367696747605864984121524147285288326881186480150121587072812018556795928837870507147127090906660421301767709816339473242559221237668769806865486067157490603860307159372833856193984822279937602179557780781020135347041471673305846080942621216365874039087899489530430514201428626870588993314006143698653401854755966981488050838679275284124861864409441630243654218269841521981554269110952558267719991550390536842578753746382694894222158856190156302170916247948498794553497524104082298734814437407845685059638718524690822574720779998319531760060711555303421796941706270846405822220749677718391004188042782121204393377001934057943661996445661152125534329187328995296888847410782222731772279995916696959776226126391590249151190529392622859191183779053024127853190348829903238897729870465766807984119126411550352560586450053230129976693664302320844476819582544569370396729973303957168005158160587266205463487063952446400093429274597298767598030498235902973612533820937125819299942451271242872671615246767993046663659992781932145745625875636090452079306601862384811461074383091649606358342047459568913223745932558518585380106883317425020600746627819412052314329968855259366212164448906162138445913921643739102326705025808816761230566020088577033252428552975153729484006189704633385793338193097043272023861421895960151333445670960289713469472327772437025987650733369434065490078915409457444999733468403803928910339560397665463477479941953235785996844614844448392517646397170598104184675747500357232980894322130773931314953039436918708204045492789007876731875047692345025251833108356330605620682194539906001356176578926499710976516386122990994754521433126601868190901378736869950779468034488461987303700497917254727576033736674479226233952738942019089149477190722265493031234788233936876154329751736863224576292873542605293330329255556800522631325835296172149838140388400169167494014004018664669248980096808115177515480288083251110408849108657783553470409349432486792618104627098480754814016922309885522996054944978902605609611013887974074655439183508565908727513954764344396788431275001215440655568686781951551097631715626664914193723862523546098090777994517683575507099394723854965605053225616414063017027831145583955910220065608261993901387685018657903718629992410225739022484651195788383599530544205734032017483400350910191288742040338932076034440982576499911425543823840908497015767592493406077022498537714417305356905669113800624982004172473780152226258255727353882158965817565685035803718726221552712199250982538897471988708331411850559295533088097227197546654975787645135210111913151982212702207564531325748406812767983735382494292305893056983243556276193326937097315806389112164005420074173477302263909399742153043430505312080225370715770885184884893030095029762808464612188600430463511029920928138136222012499289264630191527747226180165578107761391733037463302038360769061957458819465000104466442707176728124673303533633297868307634139556202357315394501017315488745379224780723400400423585527190033524099518019237148371928250324601746960002965625010725404244816760796428705276177284071185459247421669900086780559900145773233993222298045074488926758175182265583682013493983978772261477193574026208115311132788332533437412598142018532114259589984475331891655624411393323178423270793151798856093665638393410513853635108389250781007059420678271656099049358403267826958992185404902737396661444964578345415949873535828593469035964849161591995235705019566936129119573653367399106152568626346376733309827333998268711216679996827656230988459953228524055094065789788555958989289296322555816147248526454251549124719736270325169460299741750120132892085078538643901382615026975105814790146457717734354223217315426934905536033388469483985732986269755812029471584487587664912741980549369198947122995846291274018592633470154882794490684743148626634310944511794087380980440986214242310948982688135158080453725403793227923471302541631703549793612280053177847978757901429031881152677835747448032998821642338870828385572283133052201416005730171532174591662114714945008449813200113174445592157645917314140708609877360182015367258729023231275970845272907354356981017180450530578689630926480738751648603857100289804224766642496827325883178574741795131783101714127149889318274268373322279392804061582202027934269022364211613343644373371812641542794745851975643425222036949738172622550028751317370049391380135409190855324985248197277044980829469595920424075800659714635966986845574074047761254200216734737523667659719434428597093929579548545066702687705928416909223965192303604873113461249562333172467578328895656692788416450841501873335245853042156759014028824312040651584733187238806754512210858679576620167934442813667552640894681944386503517865241814317068642808188019355189648951819023169477738177761239128137322553792798444118089421277809291713107310238062481327395200653620089262936853702831747264593352690703959240187018056756116172649349020369712971617075525279232282686819107771855704264329462131251772899209694174260553760538858871645283116054590428205107197332555809290329864161266834744573987228521314341444752710042968504641608322986407640901508236560251416918666944436198039497069999001112131415743102224759207014286421947451815479594952281258627727760282991651365607686159290845887204818317814293968124927251334262525944098790512268943117291146851769111831843070169161763928287751049945248314229338877414186643213086146926003914498935955163355940728338610652199094700792950481974005758836740185577722796775473998467766567530033243365094033526527844737072587967446895875408760759604765437806262321419947450212526288830691473900537690560230335223156716677125308962048853069858640618823425770425036312329539744326551797253438159778002715597533198224521905614289485861988028265992282785472659468249222902881410868343035577329440733949145605834884593002720712860140231212623532847048630711705496089815801067101014335375540154934694628821672457667491021071011543686519254433850060073286244133384213040582226781071893254694549006215805081994910857233138458351291126858837245867052377992724891601733618788944251750065212646055357568847948841963863823503537754805309436138946360879498942923014206765687097979917041510901632963612563096002249810849515395905637734274314452771460788030961917330130833299323090372217716670467770575805009472116085557861416703896174087194669770038961608343522893598966155464160104789897368387371253283535270863380905348879392873621152636823382043236478970961591915923175373764164489574672515119484456393692315662958133209740837794430637667164621340703912957136686980807298021624107006126364472955105681339281399349023763569426029081909035932526842233895498116023088924682053192033302672228510364355389258922895170378111443783763679090825818380905850843809430441180001632698285328939559298706579920909537223497437339655858707206875055088875760480916854207172533174806981092486932042980939449626103108235950751184296456306354930665253895945073387112844592037885743104477741265193982681935318292856931152737756372799313094205591732506344045232660573715233054747907583754548688807157058796600175464994856379237849696343385125978512457225532248340531578602129679526843962806445755832819175899400588157070822500602593727166640264459815763585503247585230340018941577902028757728408474703863818985337129919884208304667293381289446856564213614828463692733256300642854164964742176166949821477238715804538134663430693243908201920912251261816289768685254943413630560771923157118582347438374501734608495642184431410787046923612729403030806854342945248745997673353005211629077128933715895689750250507457585333319362679381465653084906813195260726260730482073336104573113356536954310797990041067039909011411756420433287848445279688417928452801911104301205687921127587360601353044408938111124253667282968251507038729976406608693740059239937798857322781329989774306282916308674769344796255027472747022180656844990979458503486887252775019406842119760526015669779540809706094940075335714392078225629739755334339210809181724619233240796097791729870935364021872546974603059429410269541505800982725357019275449938325009831781231190377518153663558393256521515696590187856677493813667178785958826562660223977882866951459527683482885669202974950568084415977366505206169119652403226031766301800992933142400306376052363680783225419587811539089983660275219468910772342438767703552846730876684129128272651974640213807753517477656308917094533727188057929900182854628861739939038448857882941194822372760938760882107066573353926389535768831257698857263201732045558459695558551459012336195423625252596230845687036209955025228376923625271262339836166143266975494997882256531785854051246552408257657186628279096129722835281781438267818263335221439109683574521658578500999939026163424444672584199087878310657772548299046278767649555587530584128650961497543892522297350593431197118976798311463573710667330993649134904211807550166246306552184787651800152644705157677090294096989536804837505043559333870999431435687975865355683559183930839889362984214593226555740105778327346417701980859321959790640749501089989415902202205110601873745484984754266166247653619731204515010552577265436640218781348266958436113824346564401232342408307951199229109874353876314970695816870802523717199481353518051266629549099961423916006909734843170627151369776824717905255133732852327583379502339393740232511610425037686393401149159031383243939824192556318331068974964378024072593365501896380429827580706296557055241101635794744510271658128625850982852578570635700729952017910141526551989814501187394893660446251356537769055610540711187183637022422736983539222606249543044046577740206429351803394833669181763414391850584525117720778105988635085086710112693348016512553583011525601953494699117212338507654891403511957757107704792588901097337724323480226150629118495199404451335684594827325652588931752725104905560066651195661811124272860596927901610556588478171897078487421581128746045688172603510198886584392291186558798573462111872654158467390208109777132298965617286679149005089336764227718545253771381346251031149204166332968344980735023596914323555071489656704278711286366195120189392792287418449722139723263385414313862376363173248372600826330715499776070136142702451262996664893486595193706263995868232502043378162539239225775598031495780459234823621745915449478870458670038771567377769030138425574351736379806137220655772900053185104915063502838933251398018768082418310425812331180138088138632983933014345772441897398639739449895071827596280349222072911274549386734210853960365305829000999831941727099057097695293255756107452852865872675213488348486623025898420705165089419046604507593092001066477549967166284991447253387757982675821148249434104162959321788553197674836516186401662548162979871456593116489441518145556983214342382552245023846948595211028689328838411877044243034565670637623409747266746469142019860979356039115973498516362547687979617273755521540594644002123959688412690702791507971926971697094456190778796440516818789612234249691546855634421970139871520123080632818048868970696632498695578943621977734171499895748370560229760573647951484891266383998642637741769023479185558368992209487666158947973809791431169326003152924270326095898163178275657172959156818080654329570327253127461733612083207481389149479204198334829987785747747829172071394074895972837582638266585628276497020311112677597600472992037727846750674669376077938564943684949920802731306112120551453294294566518837973354363474570924460192580965313661798473916305860014063317781594890039973504358893246845341819741365908906696326957752105457568615165901686533431636507109756071513051956193804085022313718327955139892533569865506114898797564283842799328702537915242797828156617833418671791022796511598656764960831712612221197074139912118573556894664058141750683046417023535952777259428153650980527842012407814855010890606909826109046812794492301005636045063270583406515706265082046683422136849346841456116371114087026705407135269160511355467081354008163619160381583649231385967120836190411573792488575614092365294791672156898560809957597488769526217976124204743549885074242229942492988203170986817426327982417964056554425566665504176158213084870121502288898735878320421568817210752328708261953356771380798779045866677147576306842483733362264364758841680018845294164607142099373875692981369399547621370612315343206238114302721643981335171469347721137714855580588253139851327230050219724629192368257649513471975384798752260429966812480869187670986847250376666167358915914647721063028434727366613363982852343074385369999250877440695399749157789889644205892999286685022018650322864260480287445635967314156441722824478028572544569182077941085445291517249538439861720918574550053121666033090007063348343987748023701119478941334765005030072478006649489089338419896053946749737197166917608556906188266277187695525211212135159702197764746285782850274999172205365214656750946775175069915817509775303123871205131225646539668091539547765975014316194016626022706925143103509701964255597485163619002700227964189064505744686090265635292095854167439675713070524708105144077901347013736239765343072982414828814495812730266073564867627084563856447084696913013876773641628935817381936311148561120014864233630494970513983652488225066504047398227058103580027996942119654920333139602598974827091488579363318829803597867757235063953001552810009610250301928127372323028987555506686291107793337796580447835861641622450932641800889919057478851158115753099131726362595193865595661413304986116262066315540571419877109807777293424626019963286221878835730080825003288933271031455844817226009235208383906346442198740138822085185726476172114663465432659920579720774611575323186189071933301957563830813486709951412682720699687709062715684677251841892155322890404413914352943042260635313329518394142160160861105305919874589444143092702470258512513892770879001268847306537110848296253450679376470396440922964793532031181072724026829540666758006462797278311742592246439672841123925841858369370286879239402600565432031536985545160440576106113824970920405028137416120925010490616656092715340930175043409643813222895353401854320346453450428844035669148761338934535106800725611637071014893591236903318111795126389241132546305487479630291580787334754894527578103000664683385867442829288605542572778712640595921832625391495352843589396556516908166751955093949003648138902751282043058482216466976149510355258587506042869988535216671259404282913880761239712591333444023880734823066816671454462326545965893511921422399857097134999227287506283667233713601820985268799905566471905465486501803205312088144647690978587350061216852730529433412551169595203885856725106488621429252991451053812711656958630411974988700664969166641112577269238148587582383173771482253245129072922434523599647029329032532114032549271438023052131348114983097649634726239920129963048548260525182111899509597935082708006965779006130421151054064297537412181065748985512193529429963578488367377362353710642126176098838942386568825195346712512834837701661877939293298868142528286707599286591136056328619414229821826249396936206188851378245718009479021811686288588512934182119096589016390766525947757933249731606912627066864985300675195541501377075944156310272027392400168390033942804423704353234001844996518987175722057828498937714680399430916607900743467398234896515493793462858987061820076996629929915373167682063518807389954900813303358077886911279290161509750144320161437678405621070042061467458479058575150720377095855923689388536514747676359431335602229545034529784353942377458287149835869014635444808239482347120019192070146142988789522978988948197592251265893677716615154454319214220291383874869987375645700647040132253909943707517917832719700207607132451512615546244997240852516552769538884411476379745510903352818777447936734942976204188131454332806458381582321057991167565014813362353871074898512347811684497496862598783268107576211305654384695725111340149069082001528422830774526568969467989414037257057128128016573532716737027320190438794801499380670053547538263996985388571874305992172306919501661837790276545618421208234197496996554683560336665651589749523997856879248293733464839970802141866816249738239149691633379981300926219280304814408345693452309202651803132659479161382439016415308915340697525761952266058351521795463990474047568217307738801038261108659861209941618270851748235296307150925849132719494096560848862463550041464268438801711172411778077325683705973175151659439461901924285621221757384172947317427790568486236048862512004580433042053084794946372192877632424408246600774386280474477477131703927413717551849549730977368660711780850644611497141139814133293761127694582058219764043623149022032633471740688829168103821400489084173885832384809784775745284201947666827070830948678406629073222328905849123548625590769327491452729185491195805841584479613978715647874398904822999691099579784577665910535178780781927585349603937493579466991121897318070340493259992350875480480249869120148992205356943325395063682125896074367819500392209411996793178018189901787188923249187714312480117733553310173699960684670563315623686362486201341654991729981607314267453329296835734882458611499246997194684411757851984423835108916773200451980550603542582467364874900228101888077969996223461990526899998869249169045909758252507887570017626941758966400976483730966437924660712081642958567587251124656855436924799790408556262834631071116859330125440342430229184942061874381692959362112224210090271237953223765291274386897038038994066543890138550660908053907708936675473302523775787714845423893773684979297367055257037252373320647509777064182666359310375802462228248643028103621019620487963842685698876820262865153198893382960045650975595290975804887171675983050749560151840320506300530005075315334300026287737285878117472555617482930453245011714563834935066933766134539314247113266340404227155401640891808065396313629005286279729467664011388097519094578266225808791443694811595107825969888948238888359374264479374723269789477035072153601671891894250799879494098553311746830098739122144224061322772135978712220421280586999788886487757670944146639285626066438089559126827216418999965913150449624405698009773134063640524679959092187447072476790283680771898941189231569386312595181963415825508452312993656552785907546856419162746093978794864107669361743714747679525259392860752762327002075138843493111184817417626254291351752484701531066240244152626510994131831407079224779113167200527258046236927259890091221106006502976261471147061812069815151147575652873530974267571227460566418137896431927701901312313330092478110997514415002750260595770612458468257905082047442633110568573949972706565783520010974829640793606848398145269730091471968559152422211146712776620668791418338062854839266340255283721003060847417618124765967130186441989270594234794617110663264083245594502069361812931351864738110955084959766041151127440095398242842624506510010382842547013241276987519373479766923553992859532831873451104844498036729167403120079810751036995129093200119071621709355480811582875351854608112194730926556034888746538508809509668663140175039449504818923593679695616244319209426586338981943193620982735113099466644556473825203721574124324922879740683672072703313715045457290182070579104593191229299161687629255541392727599792746864772317729294255211685952682050931823618201071388457198306172378532611630633024926612833956288931465360196587674802503247707435305464415505397711333565762601370244478870022711470210405616936655443931701276244343440856141952390122845179746204755397544868602524801294562211307533416185067136390111791356767329806741539314954771702551894150382976334955421024260716453088887141433675250980019255425301282906214011513677219874955881974130681527807708701265589900360739887729167261349580225630715364833264773832498493096869555483687543841770604813694762152164418840162402783365379657758117442533644084910726379092205209974137025429150605849380364291086261680851363673655508197520435137563984285420591161424920747290170372800402646334113733632566223489202285592299540857716374942007047557466199994670929883439830311760756551753705957375262606509997655914199569199384792641831075286209072669676032782521157980195542242603486480164768141456329683673075038216093820108915098191680449847348922461085749378522755076839553429824087036800118705969566572181440509823294834927771201244805627768798008165250585267327994495263179538812285939150023043247837149743734373148971265719873717951668362071558758381312636912996021476913580961551912946674593698563758945532351834169647580665960287028849037695486885557709795792015265753149033862730995436817995697402908275301084434677758725348147930966823638532709674183625626065200107653357882012055528833994892639234938996137477336600356192700662390431294342011161030250454742866523883588603949373693660763920821126405134530362259980814562836496609588401632196829302804934619313815165122112647663521874763765342508905670647869731570848888353529807980240023460293856065080400579594912426948772371727715740202744034648019936130170921823010196482390886141553683833806709164068457769224939273799410719930909281736535676626973680468214487710356509111280387696877236662525369861524793164442476405395162027139692457118201668700525575324331369210726036692240255437698037864171418013941506631062407780413778796569129460864600422869243487238100830473094940825655358744155147152298526266830401530783789011910844834994075511988328621885482033885719003595253750653998485483699155478962166139498727573738818558969008541415562574406320466759588075775311316534128794682954306568734340099331667784661042897294256425356612237084531035871694839379332183182931001844923100260657473582329688998201063267456961109931478976062726046907137913711934483516282137886111502681886976081596949709736157467317568136915195591912242154609118187496778860646777562673899418007177545466149627736959112906823367813718634357892845148383634657214596912262443304500834066100513039585044212687680580023819043681795027691195743701124036269266953597358939764942231231896143969110398242110791830597496498550409386781747599517310239741268551419310138180393554120125841149703113786793605348235898528199422745432300620405673638646107566488481664320803758248545370039440696701557059807104721358649850876339247113615608450013368127858414987309469226567758032024848093735294122625529421675833362581293652970118680155731913221390940360127355035129479373407456020755838663865164589350929057567376304106737768288548523230042542959481513868634832598269786623039179574632240379869965995025490764799317785046326538216643541929986112675218510403979754465039663378104856894799313463834320074229026782803847618087255414222809933955692921020529811841872611912975796958618839913526147638042612591055747026190478670484868459760411533760711172780173052500939129896990267425151727749400024416232898049512098086771392922703492283920094995672056844042847596430973788591387294417531906131421518823472710643194369555663831648907716204734070415239898136438077508597828029515143712749043117912535288941015810238808061874990507315988327345960570312317229011787147373828086020594660761256429361576661015912013549606977003024091183040951577482190046514468727867126292290252769221921073901309026806703233825263490178368515599585691673618925013027100391232246652517796916706381667230887151068612714873266449965353609434953855691719742671018270915119954899890025597325491495735905396873423433689427931838023010838504140686808941316599636328340264069406029948916586103773633592778202704342315183656373361047961878539290874809463248230671348140649265669240263353887607850931076202028253830736353828156650778958231857023417205282118131767459844073066907663097153420556013052096972513330650258588339159478358782173289678475815994333547918178917825770862326000572594718932387343185217357095379227740850719334938756452528597639404417844956665029701143385514790698458613238382437408422964724274117273877931320213104811933371641812567243991557184214537046646859128635479685917616668580404735052977975111757333404206303444787476773531549053404644862037197675769499849136693599160601589485884415620412587942702814715820368038419477646411782742199265654232510048742908755063971723509726156866678705314545860435807731808618126861456928478042654148438752162797718790080873768042044083210085374919045698820988673547068235585589708868299109703684814615398528118691567256741853629686504530369323156927420212310275010844185161611827677770007426225761742804507303409803444808964511017586150291489905952952995634640349302249052818661636836910332654924607297822396217640265530519698783042707459573713131464638934010205580457876574504558533072004453324008760875915073746776885260486759217280758108570344106764248603319227090632965982395508257210014707562482013140654890978591526453399031856867439345932452889980893752321851081533385160625138156071809891183554453101151164204234732840675347917427401454390320569622832318749694941484999152481073625697413135195352533851081451548175707509459595301788882799681022852130861268244398460123171559217877103782602216532863217418849524780323956335953590338598459684909593514985192828558168210451850421040810603297656230429593548845262058512294744389386956209328559977183251883445035388319789268110814069230598991560172655673668739331930458884165130579256302726617564243808996379878684462633230271066455380783786760770243842989333131604195319773775252460444036453826538203450579188417792427068268439905122268272085912378787744002690960450096440520367441698745662051192663261792482137676086216463814303331356446076028927091317047648246805887645076369255463743432867972167239554121907537039022962698462076735902410034927000895415050860330477897038859383303502638830031092754133171382493937375547967305071291340568798137161297134563892255782692378617122996778838607887776749040042299966196293367677762957559810577427632395664321733975434064600620341777015294192441632972751204548254743310718444674519886388763402766251961547415904358639783057015569915386659719830881782837441024401288963008261252122603347838161962002431694979503808449809833468601942549450054645784127121980425935531759982980815949739807283812983003095610519841870900082396553229550212395076508484323179927974501935146880645744307707227776106416394114328911145196196691625861976467503555590224813072458883512025802143334292137186571625454520036116736543720260328151330163923181840479988873284228216678326783864391664342389636100542708407080710437583350225880461104499357712719176149639064601327198558373961863164704690595648614345385791729266504169516565204681680227013167190091889945838641663817061628047573774779674892033792592351972670975357177194164264286838597157703770741558153723474823495480691640066577039874071791095459792520014154229051452412197622587551362238477070583118904522722566935851663598353476974932191274833630786264103091445265673677978904553781114045719197289720241938584764843908758862820157840178431608613110234238507213827697728217820484906586530090954544229391265875567482721747152633597030683996568151171615977362700765047173405890129402833033776232067670829643732934964296158633542934925143233180440567797160338869536063257044760030637781729564202113039624109749217932030406282838441610428030830123576384423248494525018032763713015025664285463754015470239893697473143329577724314313612561126062991485218337128972262669929888831450709111045709351619877026759490862918094968184532787112820972679598281878157899674696862090729117873749000680937794864955830338776703561725690745254433602432303374883660096692348006391354598294305997366172802839261704812861802528811645935132639102551015164700306051145467048211792578878935566070983837844263531531231213302321972831167240500489693280606597944868251361441497171729501025834290003316125373562246747102681695170899925405014504008248409000941023702736455712888354532913044082206494867803648802749595145599122171715841356141285026387749546977910833319640239779814396119731200217689857214315593561325171813189363887370442801447489718023943128341092851719494596756293568819565948480973095743177417407638578122619448866920217998126926585343933320252838412198192935432088382430828436108968769200401884233230786208312509050815025505414669472948819514235550424167426648578070156499382055511229424675814551241510681847750856042909829120911388113042537270570257416466730652806583491106600430395726659317943589705293733267903212866012060663634030073655030427376181625023331958500106807101849928780663047578301603871440260083734864043663240112474568976471653698285968058960349758845890594325662129890103550981843642522476325388340135487096676317440283303723105424437540153152839120457090679337996687902552840592190117807838752418914462971295946978799746151097055290060016331765315477210056637368091882821333507248011800474754746023380679988828817865302689045668060028468068082350101151436337901405825708372521615091094716988800507850494946019143794238755514394410059651845563012525572846952913017515453197238501988431730496356897210554963789269948843726716549582382262180640388414587844768395175045013298397785317233657289799669770830018967972534176229743511028433352503026714153236856314724652224704286826235807753393889690589873132442363554491903047683508992626737321634109958649505557067390923013331754381995552005949395238644251103933144071268091348420704124386389174998564815724993264778593314418493983826529353320334795882990312343431194728331051795785799312245450468482223028689222985525725805862019685804343135422680237114388651218525949661932014598174103147621239775587327110593700646612918540195207842091675813412880051857900266044608440077470987773663426938327654711474368933819264443045386295810905250452009252593421331905081404096790905571247639094466448272234287678255907826126645215805419769160940241652470180244190628631230416833604607237773790787627595266509160441272743920400585188994238323443416578598742118709589192791220915793443793682657889153384026274628016124386333186138006917886554571481988283912874103238421781482597018071040187517991957294094665147836165536894983139448643737625253880685187959270754683358296264608890991502589225534887588899441428093081493364241355839499601591344218586144288570879709471503505535945662060964695638011819492463634191688797531377556716185328594175343088738047517561897337906466558367748657168230342051606510242966344318593434175811917636576397059369718605674842524334480966384210781127255070911989937826754037187783431324521600950113965418649386423598713663521101719102416912575337390169203470223535090906317991283795673998116397233708477741198038149996645455306496549230301323179159762281543053395938425071078101166509711683835216921600713317406011097148224595306861665468130915506932665182594728062701648978287792297178425410859713053748392000742585796092720437960963910708868419840425054418774525614101604844843250219279500119142049160309520304275699405999675849706780432004907578962996189211624175082921905057171783018051917377280748132160500825597142540602149356001464600918958717049467908536514720111192595472083210943314851568591806456070347078586193507995372554313854429009597076737151802910436713161200046665814697781604607228379731236342426716951375772732615359556233816176134568001983951600074119079438799420836846052357722999761444618097140539740152088569423076428988762909824233656815558210071418486722379784312476802201866656626180152352112335104844733403054067277826127581512901982869058590469278705338929278463273810437013360681841343870543157829014687162681750909009061571642441445769128858306847872980249732755023952467232637924160278475892918243840921985340286257444196811790223890270380442387001237465418036681850287662190677311243027868186334810323704888648691551890777316519952469091846738259500117956016028899927593162202678414128716886365317674953098693857266481763968694735087812836541909248073928342203551811585608746015264367122694178693279145877840230695928447466803077374442403773253540149820963352037850054792991246719474898120835083719647756534943860759231683937722108381337516390963487709723025352249530766194699673442211085378674263114303670410186579751631250727349034605164633514720110737854008251726284516535506872940052112211315006610085541017472660990407891517996091015129683908467394927151611721450160527050868542887820432127245646073780134117265782275472648485152028922424817182870547688619382376594289847360786360779828979498815534505422300073460614899727382874748759290282395005733220499362498347535719578493873909604463141730318659052760231014267354773584303959438356299691418052755907670553671608997724859262377616723701934432047119611061773073722886738876531188174586424168465230110490465482454855414716795516117187125622812208097963749015280644182279894186895183865823229725979070604104324048771181226547205078294598626505632556103364007520856393103216597066234934611153436423772221396400324280638743667601663504023658794499727347070057066000984128057803980247738006781043259826533935254531515093084033138344925904038757421958833356920310230813861020584339780368569723994824566709470996648796448825631467823767544310766356759118874855234561941027040354297962199803343618147292474288023532778323410450140780119491822472077097007043212080674383274199900620606436283317103687806107702018833252867015137425517875043697368238557475984182492930173261329299900241328962002239786846700931592049836842943354648293201233679700405199623754087842083940870143161605262188460991303576195815985425585774221925684732415229785759358936815891525412182923956825997724419373921991152158748843510020845709569537081828901721623233638093578608341016566870738875981664591692407798196321954834884006455986348178018120528493211982344892466223684937247231261865423997648845160990130820438421054856380913584873470943888991702480749776454103121847881760533634123415465125180099938471285595268690945412410229142765746518216231444545402626966242265182186537747368559192194642800708013438778442535332477177343645111390805699000411826807512863499905299139678934340293473360824804352810784662499179763753015451949805005684105945507513197410953920006606389073520035106550931240224679551868794064846464364068100782330716468182418914762787943206571204209930378822495790596941138190084718013289875902637612964874424007441131077284505186125609696928818700583999119478121196116995223680600402066625625177480927201592147430515342771214644857760322596694503879605275154478028189214086760607188407069150651681721699785344355720751317707556323028535942803573393597820891544296560178182028114723834037731875292551046928022541618523604499329917630953248350680282306357420722096315236247249779374407175298338908745318573569722870224290311941076319538342260753595470883097883479302026206392739345495397653065645674729304831631592219779421439203962352349424665880980004196977462574444109093861473787805401123479407590512180730895622990625249401146374474717592355205948536339366608489684602122909259998783066979937545227220323014449005073643565572469766595213248105409702238513235098826584456990726898873920592235786966935876472963070788898405406231427906827774590684420728400354869845235820614880062071953447134713037241347310370478600040855721592325604849340776311198142233799173657553784384344037787995301473422380453361808380222078429505601900417974168305352719109670801963816440293623728576116229560222112057689197320850764355747576071565044707477473390725681089521177962129222046671069804561403313227564318898878255615805781553922687895465105274128310789177545925039121827092261032055534664746305975665609066641659315657326762444313371886684972086952364005810606116786704883663903718224618400156745496450722648922172801322893150076441395526896651664051187915026701719006523817260389450420541970108885853607605174278923578533835062934085468509590111230693849163336307005116351942855389166453360058180274232122082077182073941099011291780594749437115335970134226094198604195490992351424751140237026732779718369803870787527670073919272202596104840179010783694811953075346630156220743537762823276755804327190049897847401267086652637418285403411148030176954820794669462259317321344695447415894302769808100730405309178763033201576827669493504516643611357145831837943404914514362953493834195882193020796518300121228052234888685953714806349698129702883774002477600885151209377175380273418984885771095283783691493020978202842115836468067647410120975366624243294714744287107611729159730240646327865489258677779932659372073324396836838591644886712117197944693393157510604421638832245682137138019246359299568066509369360747539375373261209996338107154410143924678936051040455213879233020203998783298325422825740635955165958722649047927272789336814703391906399412665117888179715807479011961688938917805756031104811574132947614138039703490186163568649059946584963298355198536854072530349525525805224513893112539955784741706020628639883527667646589668145253534961145030139979607613899237107492069770864880456605941702077277391694764967224971250650542692425425982050616719524901213602160155557684694178490958164385195251064042151670050182025585087739320966345729435091816707600426713377552987111399806592467170536203359587092480640414146914861111509173697199522193984138224282240717768664299314675592917031632996420269304885115870249426337111240756005119095538854368545511443817935958946781541024464982110436015372040319491236191493341266994976305073544298178799457924608165651181627755992248477089752063485631843588917498321559687013182042029580666053551854467633810536341844823926396908903774424560930582670507203904202032631438158366573876113150889108430965728339106889313920049078088306965116272380420963059850496138042228569932697645611525211629666606279102066027849322770799344033433865611074794867450180189288900346640963851771655838886829600467380879447711494371420351417266034207619177859618758033474833081922354192232094133753769899788195527968640464550637723257931402405722285613075273099820386328405773730125468395422283992265898735267307044917093733123000170831776972447354520858544319393117846674355904741909761295171184263866228358233714785929618895314615351383766946754854732632994894912162144134011697866810128926000846848913983116147600584751379318823114110223995752593114734711270576529967057211900136742894246273637951109633539064821737378059377382019647579446147568545460284816661650072047189981331058878422038918120529571614232362783384351122045796503454655569149612822509158400205331038597959388310085907591107708823057392713606499497817179607834059304253469926733792719327098472926537428921114516766734277784607316577828297665423932321921022150098874505893965728066924886871074596008523848824731453253228121969616322175238867168095296131164796388753207074138971469866944846816701062342570419681295424616161420726084003909601566666592079818393233688277186672248545648872655319203612174064539327441407908240320424745857621463308677958837943957310670952669056050812090525291423162804571180562881562084398923539929488050411227124225179549785052097280867379754798862248902662056100939103891634094878984515528582688960683275432966478118739700986118145338739507487657371009030301093899985896876068487819386907318085882401704938786780458097684755051755801497714444618203117660580517287428131333461053685291969659717342428584211121469129057083757004784564714079668604084012506411140345649901361225990117553250251644234452569987296726643059082494351943214949892474298571295949467193815517078412248362249196531491261065120020316252122684215352352876460970989996098025820149476145167938661128385061919366347161542332262884430225197719082406158923204476172068207136634931031275115480834386028613223634596233649038406579663245854193772376810064535815380983357790218985727121529472143739022776161436155082273214477137646503898943855780457931602265982584600312184276411871235948722607064940871249789350757225138558550044812539110186610084923166997175675434169304101058789543113823639250731885111959326745674494590713317257803250146074400427079577470722618404982270106011412737772961599324118231203194458681940442930874255573927516737803436558449289461655037145529239911308943172853234062416609719849875053250006789225023666584962666966578533692168596401423753513868650168292444210320298236229624011413536258024629460016998050854906366225023113307949421821872305148711413119426107054536132858739862297946835120394954971799728779050806296881455366010928446324925660558180975727388637530157632965690078153930167209307524621266767955606195233357053280831048284554178861457468313569077298281619898269447561262383752365260443914907071193781445828979349650733924903686837629153208451364829075203643490279317326002320320089456585031334384038438197695824665783931505344441794250963273570140333411008877706740750104369158796294738802284567183795089962600743684853462179680330867544864063940271976658742092025087064359561372490440008188291814564771754281388186347206324832636848441678801414876998811796135026380305515267540369842780472810654928244304813077493882800364689965991837105749592589387013439441791478450650842427422695341050163111971696503236002161415238330845707281187537556422715472505746135317500012175305094994201760289977989775574040126930118678049750253837331575164060665909355835924637714390992829628179139704018377434729932318795924157092578047315863766796736287824429096918396009257600693585497523078283290751731037318039638074779479129212076641034500551058779785765437367756020366476601622859289020373013135798337723800708299952013585986224595771306590209956353589233344445834136325045364971802493977064837702451613768941666185148543099765271002664668791647996803219300475084054416605460544886560170820064987028259321454487420231266203195455604786906122904511674792005851745587761494431405663886621360109023288713953261914019913105761190206285595949473255044797201931693829902596256229997220500311180490712439135305298166659231275490669858987007502723036725712718222044111979893241217551828622938386396114635512700524936467566973759520760648820869851839914322568729063782821951979040117252698178476664365676482807731566126362420525356729693104133132008887987553470436358733170098576169884119197441847987260498905951202034930608965160063214102415156944149200373551837542095075073149390521773934690308011514947285721132229401507750327644053990150942406335284405477878780859488957616247855695917981584428861303945286313941912146398290571544430670310620534277598185623990422876342853964608994154993575284076157077784103489336517329108297170924691700457665724049850500663110313889511490538930955288036797848074476067592229871542929794027299039795926472898083598053706651871162421044811228805829003345345541676468113472425536910116146944348886168431670724450679185296023936063357525198476457123978430701870989440626145145808329175250262113267102734731407142818904310953535834821753794234561559849215565591015126713334246117757764375922811621926921881669046566261069160774597209632029886044357901361430954900843621632591204570754929422995993095564797951325369478661193250828763820567036301977625475896730923044832587128380944257111882999999087893296168806147442934685733982126582515847224137213800853847884153288972758045403914175336095787170035703381875508826147082355561335445705865550162083448313930666148287622047140888864070642053763110070646347877825844034938098885992821308101379148617782104798928045069389239692418257047990792972728137857358676390922869630554576105044187758522784728875945098171359135974903408284432416206411120077586509511846628128545420874126319296556018383332250665434396757779916462277342401136937160579250549861570420879266816793224992143990594718861500659909962753212146301613644811397773830131369403643954394239746360325853507595893078870598315955162694243785477418314744641361938997916698980487874743991698691881193871057951369534423591363604199659990517902413913254110241305208037168505508332560110383695587160271744379661828639087414557449877422162912426479839754686874969486377448961558480683211848542909044709064484775783455046749280485770889309425621264238794351746117808631358476650042181277924335443048411227924299716942059760819950031916304436602811660441179703300869516232211570642021818676289573033921360504075531988536456364756643504880584670454430526231514962678966536538145711942906822127886477813411656096378691422673753082182549037852757350388981932557125056032351118969971619909451611592655386575727526042557585118134792589213184595169204523937394180756019717707308692145464126119371195181212253851784995232516721526563355125770720642044293102016364502504764366005307541468047857522364425778991618435190912561046272630468288415837025622875801323071017716922117683826807358134791054580145617891854317278908345701982452339887985381393219559728079930230921987246956466738777799508868325213954058530774599507357790690297885913581458214987250662276332530578867598087293557534069816856107058047860507191746374168655866623203712532612402947937801171875571912610093456654988928063520001790691099117961315899488756425153506834510655219328274714756432205932995340219515102983895270727335044521827474920622259194603198175628559366840959651643297565827173457066114206300551850141558642217704253523168902292872416110238962876800820711134421003607559615711099540563515772285734020373973232834460741949671073331803583476164313262913760366358466021037664017555261896799172473701321486967067455363888700510418344024490608048832736297004725669178442485648101295737616210956447413098745638934901848641608145651067626153441848064931590309329080130695658331514836878885694679469121526028668166609825692139715479858531975778624761761359349862392063437213871349901369683799695782148235411717278485721867133888404721040537522557543105777466053317971668138806409153201753234830213989278057830699434150962808414488841131011835996325728416601412293288896944597725987360387695137002192719287534282342845805402532752004370027731496296886700587318587705543748449367361330355809129816054109897137798443080619637756992431557712105291374430377366696133190468884105442993179649953203993209904329800459233458115444501460586524961295416146592919082195238552168047584425894118757140302616659938086297942414003670755260573395273004034751122075644205538162520590037687760609394760000182836097304566874258457088246789948748608706827965916018354149302223363835750235463194545281967471285102558812324584896798193364019857175778281454367982640717211628443232106017183481872123929779947859724198569924650160250742099520475303773435022846020640758921138921768326455247610819799204148410711430600314776020833455909529008237376720500651797741112397928685626590481581768333170544973858175609589943094806601510366158034203107588535869987617373827431933932382677288625468679384863018401191588375322454209044815884585247178489768183141808957099896213198714839088472207842307152064345830217474332927291431683813373082783744776549894502545203384821899171261409706068220707798370632155781537193674251578442782032419957261792988658050584910327330976007061364713265203330115610243626159445789078070990085025656221086938007575820991462410286024476743521176024189132639778253447494548132336756100853431384931681337840000693121749822631016067271533619054425743884008172149865774109016058214582293882247114508848805002743350082274857271282432308608865627539409000772021968119912020626813305450923394193432485557793244603207623022272896244529310209204610703616079960365650399096603178134485498783295970559682323417665453985081823810524039337553586641455018122669409760292879661177248480941820430687280451958803560468010850049875099270773920349235297647363946687874109246243667565218310702859676701096733863395490097034312487132253568750236281237615704681004587239125580553288015868766859989586343879694622604307193004976938171117473910422113893211430499710962495819237916163451525062439968502570711222716548586462282149493202488504083353684739214666745151435807091921847288509329443264327221627989729245707605555439523462285582129425472380610557753494147923609781114285594804901593050766465204897501256933974472707280962731379229376716273092992565620446643272905551288842702853413137247334674170199925364965511307946836001064326615670661964974770879610701532056639369586286252279444441301421646465584956527300526067388278868956544511214344967531896059907335073116163466692732152611205313023598807138651199019846357623791652306378594518209282845892770547539467510779612270722228982232901419503261876282562431101034333223609365664884908429259372208173772965078856284188007600221893559642533984391219355868768876801792884336637725759048108318717987082398814142937308168640633732365088138443271139736123473136687965216258004255926696855774722862589825151648388033966333363808235250735660502873778076307967660244336575416976123278952282127184894734697067009304314361842820278560123356646501179856078634881415670559916350883629561021555223325303982257511776822525291535686983098911490364751670250873451242807621233892285535337477598339566935951198193270924337524221665952227568967011176135256909956580188548295030658216571721173974821430002121888959869414499659882449819046522326786213934746616990693436160135319124633374280650845547167534702292173980331749327516230862966637323526215249933756925259233370755239278212371714195875655973590042543020363377594580415223583495528163835154439467196289969984666303116584091797471341291883886117927832079566504734319536291815003533585086311748635476338838307424191798880302664814832256917037143699776072401713401263799394588106173396525783246906649692252026001660233470682810325928182659396625770162355912694684342935751649541563866414986936784412644976532831202466468323498132254736916424200773995447189455846644576311041527421475184243623141082099215358396906109421214051457936343682084169677386256399744697604678553065537580979503435875277660470545541806482620365971841670121129364342418336115414720322214620029700594483509176405382845229196891837375134161681397360400389435858997824699444445288189128442297249451102058444726377266303398562584574367040250964127175577078554202047584820126280772074761647638402978264353596612965911339074401518112939074891698576749494847619736313072227707932056616222837810368292137189971226214054744212039519818506606220787170710917029814664641480176153898273407102922723318811621950697697231949678021755825483888432891246952595658631291919630116452449484008151959787184767615181870543597084122249798831770283928906637640422843938256710424208410659168279049994008381748244831432622163333768152481964868986770623428489884696061429483371007210794226426914692607121467338728971163216075551765117607159931904091066383190564047386015699082062275956597209936924950209135790119453350771583901163267051162720602529965197916523387838244344869133651117953483614976475621998837232188319893921968963810874462703147751238599711614894307469381754063485573684850350170320712426144281004569218387354038912007635838119889606470572773615379693601811318066226842686503189856650918744454381816124629885898307563077617110788585757055466742574984525464806489880375894943668572645004821944586841456083961705004847169709514257920699463168812555093917830935250529147744706868519144442630677372719586210042015124356821272689135267839053994399719152218484756859724465821834975151592021676290994787246854623459606537908359979236141020071750778753841954019879986833147625904697765753390046380156345545605273035538135977185493060237966773139820638206685650083779231965789482014405265298859157831334653189126478279419532236509072866482768428772970314765270746917064838163620494552048498077607666224143264985108687649714356585533644082035569894104904664474614977789127999361638179464809627852107403062649428252764648173451180126535081508742801022254293828935512554498977073073499287145693155530297146999938622120391551855048417047193570198814847470147811126901433175732892542296308616525251496873252256605923933475666268670347687133301496570923643576179289593780563267265230448161341875328339718457477091085102218837142332389809936449148399820143420630293973452835153664903938326288902123305887699944233730310100360046326163448752317462321069901042959547335022447419856251315229965542970910267037369228613087573828159675444234571357254430848183545685430148631359754462097903948638221686806880196476169630268547476607350115352127910644804755491150705241254890833033778719536142624708585887261495890978539518127245037102901405202749699451258471292947670792282156914632747428398278624675453238603093650309983306082597962020614006293734719371277649580694048894509567456199178926287292273185711642801666105479700254686432256959717961685287115196372253858874598753308993428073875058219324153443299083875676900387887316245452045048338894585800695807272979249389369000233931031196625117756979851177966966253110240060577031703025044193235768367487399725773646218820786509169404948525856941192738090919874418105403828012290232016606447518789909911653021727005203005045687744720376561979228426951777343984461806075457991674492002187239224711440640680361514207477743324764583712672265893765449931689132092668701242337001260277001601506112552033938812699559794842601693806397223793341952590304220613899412024015436465802376064898174302240691967873854798089544515842374916149266792285203115808679677417811610947176788210972467319482860507068290748924192280035334544495271524551108563296354472324845229127619471209900064919763441065129522848710502936628737929372380344622526211494912579893047390661894883343273088127729478005675914270573504448470842486210652495255530710857748848443286753106308534993096887448530834484485014900804183785018130122079617387182147208604458526036043060296834216011282467129472020537609337652839015933128956844877041987739247779537330068768944201405513586035790977555402185944609137395611134746723301471281563527549815751755145291139055216817979866314158264319356606880329987156596544907557765094351092880154059212558459413825011042297420903046724053861771759294036204123396748155494633411912961264599784733679287621815654414671571246373929762486072340040004390383507846661990574850707249857199310234968569845162193633797689381606939140172739911811072638658191955538856006540838038712634274969762055457016329452159380802366365534699821661094371324333430509312899409034203129948112694641609562492937602559310774291796420240923112229493425226364381432894922769884433411160089367204667563313372107921397908733942017888298116519973130780181926809300264585688198782262403468059883832729218920321503147743828566443590107927839643314752154600584851425005865127608121538928784057903795160712609838407030645794971748323829270579202073890182591942034340767871316387935655047422025908157263405897369417744865787262240795807238247172318206658867556603023448477434111895444560457880475164885702177908366037660265782427296712127506387808774503363397198167598595408980508629715246219148153839021630764516998571958652608275053675982316964519492739901816495236346873510713031580209257773433337470112925992883095725471051038907648997679232812007284855822693592394667398182850661895471688883447094230883574753695165803680893477873203504423373218714088497096059687327681708535121139808997262589559324520759286333683707273335108221967465594695857433394152208837485646854900629129030476498727875514526010179636848637207218958042396791283261982113542970841458153775997745697417421793185724589836235642885412933199913775359620986101634055668665500153107344775768367430466299435307929788101051701331663810680108482728191409421034283382003314125437824065317156083085482928241714887056825579305427175375375945986963970255143955906006453224671340137719796361421056965477334016934680955855199529342660324155306063319785002791444983731119472569829565806976442837368475299891648984293436402529413117819583020081976785678130952467955173311583939197868395963165584265549689354208694617662220847680353549139314794422957391716018874828644099225858136703130110163683732345966828546008805661299921125624183297630088425145749472966351892390043201552356437285905868397313657570807569089535109568340673025052156472769133253132991405881336637644763400055765533157194013904557505730929898433384941566119900547958887517051161388189217623821132539999409846337070819306343980802656812073041195165041683895921311406142761788493077472441973781096106031631123216190200836385377711828489735082879048844691042493282874996296076941390764630179068593859216775614431639812764927138503877517933147986992948099302814939527635715531878196746591387100115017622821969785550192206443371018378449302285619095065328308948220131587177203217791359161080510908006156228252259968579338666083706717525915716804337874643343769632372723628709853737228089023192470902004499483018096095569867819468865219779105871451996099860192130373145127888908755709487952039989781670815772905539345401717393933195291431220589034905702696826006186685363255263821904815631972428633729540355296452449466315406473929592699291856335008133778727744841164231980429753337416291793124357974702294221662005319431942532997948879826831849832121350288197404552102531844987132983411057878409919270255457718730344792240554325993382968109488518480182036607664306854493576359721045467672738440188791562831575550071416778316209595039243171001705190420267998097101315699174147529482491551738731555748102254423844337176657166621288883327611064410547469596230028591632549126957627603754469651196087901879787199422611780578327624820507674753805667307584888550521308125727726163405503261268618768521439233123851403289435456234051652508319687752170455486961403268114834728424314278281249853732894780334293662098130064794643931347073228250989735068967647817451798754369014203648870265447764652453373983763697736185297772349956899481612591829814342500789065722965822453437044283302239943386919503316196380909817608055741988907015164047611003667204314652390875378848030693359682285847124784386155840329595084969028665346570000349801466745357587651766687562541200812332400137062374260177830448701230731673487142432190724899466381487069438760401402915228410758270402289331462832587092815622555604292695383328795607249168252900099363962997065540995397496615579187566779783340440597126303334807687755023672876481017275671265972894837592320137562822828353828655210695052859191190211180866589068436342059607921520375319345639046762293891181156423921693194428725189128531476396667012715302417592643459037834139930069146953582552200785862770841988354438452302444051659496673149802034944339907047074069414701690313908375207391485358730389994157538716558297329090173970353461388233976744905404499418048390437112215414070737790940890618719344336484001570192708143264312091964490897612187773970609997633590240974517736765088546750490685342658442360315969262360208588048543422449847954166303237285807997916132909066385674002952489506378506229277630493656590129201660210102944376245728785059456944368092533114823443932970885992425523356817596842805105744534543390572870442813765876169572640236803750471294562883987939338480750782465983064947304459366744054020128374386753378387302367759905756322177554182121782116515546495307577229616160974443189691323166792002281948902860566644009504291740921590443474844614797318990323581941809041888862008685640147006078581376710023798734949090572916937415084599609594779719831471772217830107506910039488557389103611700865179073158462720123337775569272869543703460571625750638795277125257007419992877473931912492912848843396524368801177316612818048857254275079217548749173786467822536886687012262824746862756357129822022950407733346847455028777165066091388316155006619323221469347271867188658701782500223582229538547146515039641861080932902575197973597909089466767981313963080706987348475635545293774318411948270766770382042446664665320726630290874577366928862421217701424054540689591326790047901272429404961928801718783723616871028865145064962015759762876888796370623669754480098030600734327287325734744247972447533286126703337832294202474920563235633452604190306518842706818863864959693660319497451286698301526441065545131414453279713751150469385191711570612363159857288932641821527646847743225671599467715111731736739512397972824105241871681982455992142987608582747124192395513982007678465613066938120487716755890655357850086409665327668652807360493108023379726617656516807215218939328988920662383324191110212979130461696853278577035124863041889650269533818646180924782082636280981239821042388005113154331373427623931375895033660269300065712862824567548841810244754235182674259823607019372979741297745876199585444329028525013950970972357264115925433051070298341723369600792228228707686362179248724814356920053264673174314823208343723289313039073519686373741992023409150151511055556564346697902598391688039966180967001721035220266775320976061978292189281499912626207624905510392624823733540986068293602635887282164255456244517797656771804881429483416099435060240715227415234359822265223511381427505377491590179439624861191032976217402899148016050684338971562695092747790406885851401606709076097775623497703114467893748141400919575848531294901665592955700375262554177770595032840655968451276640473479323231133819293597161837416483509172165156179686619638537643910932679397912862518923744844056990539185515947537769218450874584971592131685420301641913938276958949733504381573314627373054571438786381491265617690448014330850639851819319071234330712724952673649665908673849337047605645486468567531504332623488925213016262261148322305196171549398770254343660899209618519783766139880136253213343343539365298577741229613168855155402166832654121294544517336087833696393456930936638640950283941016190755086798058225243652731365831264996978186439076285401384562783401947667962569335824725223108490443041952429298811347228073822452696523106166102234394984171908586549821039258849497969355582428045561320313829232299156953776709078406816675601623615783451759992721015832855287450110222803629577181716888598200570868865347628477510571146967560965714470133476023152621784981072197570114425598225507869178534702929128730600970176038227512193103008795863962671428811939279477770532742431821248490953595409882209718423910516300945322513890304717289530558992249730016160117092389176394537014886658500997394014914046866188410366827377079795519316290475010368726503893300909323562700165896541541437200056827686936451582917878608199595565798438605606283091898657131987557933464214493669459209219466500981532890599148596499285575821398469805953667390058812515133992449710517820649630666474951509701104372900223500681600271533610974520700741950112868408499185986973516193781680163419891157788704836315161556054126534891803344218247284167954053887565246788458541730247349562453991893805306318102896430928039186528672809481525741190844411619052452488245586058438338117874701494813834536212254723271526204815739716917894628094217894831230889607009600860918928689289285217236544453901062822796513555972974306471450676654640767611570800480844160857691367987291013319170659456190445294212788230516410794787134847731125873299962843349411407601146199643058793053332874177961930359755221171722433167945473883786719782764348791211667791411278872050258668412971572610360063285241265907843179429250249771618860860769096697912647139376397785719351198591186064242887202853084098574306498021687144787154941037864619761925269759421535610724957190479630587761907377743122781652135290140313800001311190502801470912867719372748409927545353303618145079017537060631138877237447388842077878545102266934938631970386279257864465373718305956728486044152611696423515884311127758183225210186768022292371198540642978116670809758984221551529586993988079405174587754521343785359369044213270866763377811382594064552760636803833914777418474933240063433267642713240096602510313383889292243970938392316548929978176256873891618645065105524516249349639024365426775798180117523029003332970048892851634887890699368202710507393991029547607485429497512336941318366928553188953878194043784804806139029360857689912425245058346407757474532990036324671159534734310162754456882599526481402526457991697487925859535273871608397710775339909566915888212853814905703894329431538079278054882025600424975182654917177185785167762733280305045348068622126022826139756919039834756586652257875515050206778545189456455118144669603001119500635431611838429616235763286605754647730505210510164495920237977346929627622696127360194298346109679019505672186414553658787641177954456564182440320583937708021689254595450578632725811701284779977572770034320719264915897561407864596938500649971114405978323718266179102567432581877052300735216442209294825599427500510918776533741929038507873099684837733150896587828051820247645312976062882374561695195154214444495052325299185517447230161944352448088870292905826858008186066352663880109678212428886790812186202397558384235915394644916743700347248110398463107970525574504746002630037108184709628564612219925625506597495503963681117382467378958698001709659291109285912605297945356065877954556231463007048612799773377198561805215123505554815986777805971404316271895776108614630978181412709953065889050279707228304826466850321021435571982756751875438952574171409940634925201480190297443036759427076593119467171340444366010587325905078352969879856906107109618076192278775719393747795357946737606328050573943902987654332693896185776955532686289003186914222582280431148386121221625050414602006802644691536334417573966700679588193161304000433252072771641931880493693940531995111665163496066233893414156180767992257879201003396841031198391809721363899351939235136703133228277538739356476695498642488030193015797869375689072720512644718423947491531002156448555170986734137968572986003245345266677824462702145294927185319240433769298545254250726328172903238511137567705753092889854068462043177195597227747112129673752181283103823873077967532522085627014255869038302401566197825080321966892888346926441456148497185756977257276148817743625796620770465940221788821306407617652657725954719289207620049508961406777605319090851709646790013985785738292229708527555389670053756819974096292451549395003208110269716797809007564786356796355575315127666104419089849202379136103622210667911689830411946295055032976829931441490243735206796768735733531339533121590826519691201230505737848305382357942744804882027049398689580607215095038419823655811257225814805727856423981927310690477124934310204840908974504624883301739389745432522755501364556173962782002793912679580840574649740561322231687309598298724054208005661734913413322862250246621228183283816666860370094659110858631493444426066133934847515129077297372079485521120661004798711005316803341767839168371062054375886160612672894902424155228317499118677243259365732867371491237225034092267045652164687480174013500975755200195964894060552324970009528479150272430863375275226514825005642696312655965893089019497290798747761930897961253983443571203540842923769057794526296578940480124762984883703220400924129181272531507630497734108691721774206460732904403390080092641538612264478232230668169770321244295024575392243688531881667546620526802128374085117124226746937239692242923976456374023335595896599589112531759463632104658127546084633575335742847560375187781747025955919058452624386095278420802307461839732847096443842579073151023671201618478013026416595825821171323616799427040993262207165997100834063159678908778158523124563889145527460527007917117098281121985411155244046978604368302785941555826645477490048873150066642385893278607190386648940479893670712666139137645507372787304955588306585805729783897123109323053556404514478903864361077354199260068691317570426998297354932386795282044403564487585087469194837974433538098927627413099346193151142445937792183225796763567865266055175728344165567755910277513702599299656870699735941685152260044069625516954001184663296762702329845360291479076272308235140361077179548942420266753303211996898245570423360995440900559015923790268346483826069328841916951068322896609426303640987535399560471245344856551546755424359949135566337968112545401449100898554774321589335044367993998272968142545566348461575304721304985417055406316390390021113268048696321935212268425923353300044485989570691067740175999533069922984337400189405813803101726794958493561390941798049777469822066942463207346721370045098235349461786749970868523028242364161768279254643724331518708398695775299856563086433862094718523222689233430342319248134496531061543706141876505764050951824811258710550087932574110314856962852744196142256880504468012429756196374267986858436228565059812085614899128908445071605610181527844742550178270956698055248478376347536180309445753839745098606463679164869761542074519715400260033320575311668328870040595132877783419716477736405036034312084376694065433424189429767933583374671978500611739826736893893241091407504357763666422290493356471316130474028261227293092651565102708688563334606562230130699625902946541990323505242646269310502225215586386245995864499263826692893004706634658432195208789305474638175930335204148104931078898057819971981242154707129506327899395504870437688889825537926637310619664004486804427609599291332636052706916821179313362580755506484434210099886992791916327843478445521747128672672677998594813148819676007865228838416295465193259116722741223241757023041558660456672945575370739604356915637909396490495132862639909063473269518557461240281255933980813605444416710993482642865359920095297842492329893075723413596532735546312108956861221331204931551536654237466150590334893724128498454378674942357598744325354937950173963606334616530730767193491451407875592982645761952579607910653077058440076867026856620324389868937067992791824832796706682156976626490036763544106169822041941559410783654238138261483236910318883105812543974444310680849906447276053093709100076082238058176015601042915843284717815764963750839716590813938012905474281880874844428993489320457212953230589576475435294403926169095846338855495433238944058547799838216972543888177669919576052974909282336606175542001042992140836739811449393305964595763456496134897562459718616977310147833967985610256436260015070064571634217287970999572182586906339225747059507294906885275770185727675157294404968821788969052008112291675104026593044788698031735945569635230497321083779915812756785419169856709868772727212325185645108582491679987874169588320305345405841666877028588324820889039378723179439351893759669067912531804796536473491417649802860602145582534430966947039612142580303928410849762392093984519255547990541442337111789344074710953795208802699972963528469869847101181646132166134430483513957659552800287472981004457126492531336171042902148969143855122350594807435475331109852851938497972485127945907421387730286699081949605806733021681409567376658012615926812172935296319564829983051055013914362054770655241496959165888765954978617312255853215822062212645397010832411102527790072692119337816556604897981192946494782554902056776454212876729153209094066117796416185934505267538286974419708073860633908862086245560293020033171663373089651195392419620489368317786702140710999155629213796886293831037372512463120393907536689951183936119653044294495463086970140648157490101650808470500523586385179127694576589313230868649254131099279544790984484268705179591174792688632123278387192723831790716117395739212936789449949104875135394099876937180428689234525806061525792955783759484609698560548580231024444809380901521028242597182195746747826928764652035872832278272493780618948766763038792613186024086125769432328886827837537064437877186878196239890177345546591359333994117171152757358729139710264157354018896230107700449096359466777293379999370205841659867680684221071087503759257780963426117231352005740761600432534096654176113878750340392728519350261456104710892245702628246562187687968231181589459475041826345690625783704064820966009530704768958063663088314999546186479349848681555877078315869162093302572256088336670068226510585489498783461500932588901231583389906709750777606694322217600775514489596445853903111033906301322656116768322562411429072126487996552362378332425630032271085947831054526267416367761436061839664784405745292435110057735180977119478614583479498482390400569091543304001750631577391261150255591850133926025903797234154157667469985523616736417690105658476583527019991809639966531218102300193369727392700069254947956411390182441238825263544026229507688610496060972431369862312372531533361700089632969212315944366660762887817229800575364470279895812232639879668927956015716206958268278355978836475525406511631889014197746400366555805092170242989535809975134978867025363740206399109088902694421176077687666062275875679635008479322552018928489839759439820229272731369462472296358718362421424237381319194040139516469196800540769473046075002586680176337174286992758582593896924585360183915980266494349232142021875107194836241132460828535653582219954415882838004964979457142868377997620481658512573791942509961124296188214793153285216971186530930870847022644963051785322339611314349677756743853008630847281432998152485415612325642498685567303655469466741794867264498448233699180589121005699271419167317837381155549364222406506545144329453439978376830505965026444035899511819755912749618246100036967369687946910344184334389954795858036973383487479144520918926715096512962863006730348486758914119140640679164901449619222980038699585388167130437444088727493133875941641700920998025238553475333931559549377371926355932916296901370188892569677723304338910490303683242782837408184834026158342845238482380999207364542103300219344874627577382456054040303298100854066884624931162421859580757308281519731823190883488562354942767108168586489499313331384123666741554261476849250436977653618690880911669401752332401856571258041355772803867448093502867149317418278886963877354618402371843600698317406226219500137189278172625776755685851409363398577610750527305865612184981426415402638832210306101380675592719252904914939887340196833041753735675740291088356086859495325847635070282900110902287896936369867357379708210957450913596896460165030089430768276994218652003112322038182857676367616886643271071480675647628673779761721998494654253583477825033143200407778144816271905039992651117313310574908015534818246139067493792607599410157098606071574919193438587165000043245972208794742462254424648322365008523838639539345004927504702135235579599210904722641805914938042107154875989785890698126197327836047110327986607753943129537652503497304018027656466059464829645317098674245036719988165198072977190469890052699781233686910369825137923057289848647037191192198050462802234721122990833346143857701907188677571500060371621006483484449700563308778292888703430015254243044884822479280168355603750633018900455066532701137003471104016242671533690194730413738404915738728834912196956644527221723867329746868440777943477340653895606978465168804483993271532212262006351853471438187192063657974825399649281589817722395133089756344253723450197048409804143530798288035784671195169127897903744831283768255139765958129543052176064542947827388056884427908017731256895050348312064832143405592401064233671198078821823013366355727907664169777775235048121131047610358174778194076082903937866205097300025589770246760250965114034522723220193054324968178585975036743802665377759587348329344935862068392978477210949507446077726833943356815968418281829892023026888204407979048668346805262532682104423726449605507677545785132545300197702135521526373129230000946935999701988184460296144075093783598693794861827129712534372430227813190627214904509574823439272862563856282663840213904027909273187062894477332868011027172910037299176968761125407865064988464601509969588976595812005260814455374487041131715794876886188167513509274818200703505788343446098533059072154029065248633836706486845697649402967412312493760798762754152501970299934778458986413311047677376523802512333243116903392754466611051310337266366319257138145427112342599430903332843353863259215077567768442219407907422295334295087082954760408190414820706784636219315223185343521395257807720722889771784988789059003122147669277382733956868241742575801282913024623917508798513916571417969273839065428788943126178219380203500903942987374191318536851777324388628496541696126863751535358793304502773429197075417583749331121735529886945540676167547158034436101525788373172869105443836169187060293403188750244029829169992137707509936356984232987221826893795708448086225451104685659643983679372089315157097115103831633440520730495866954680964434876240127742842028027314886501126849822898194456869046197361984671423834320626820466721644411174925987044505332037478997752918653065358828230865985225909525466051683881042391198298853564443495904849403331698681658312202708790291182505717908726219942094136817489919467496225388461486528005487967458768208923200044291650871416799805925487870525059834157737971753304564691248659788189832907649189953288043009542545110924236705317226457856845774724943820246563007478843512571352821782558358444497864581924095010387453447059555703364056115916564890333404126679461590426202435707167999302406724216979657730234566961658693216326924728023066544728506580718334571455779638095301350061139573521751833432938119847793292269926904772685557761205310832734214306316279204124216957436414546946540284331308210602318821606588657889887070334224562386679141774820841203033342422058382804097013501048947645755994272590532150581338763343787851027089357885995664796697222094764120606204139500152266923895514886293942413415400836387443472786384726680713140843767958979128692634114230161475975554531386424944763376878806478205275209106269987253078791231972098713293932381236424760045719774075428566276153887659824318250268634073038112795140172522952035837066126034031821111002315619412957451151049075912182217200177971465760307692715106136687223897224889228728270952307975858867922738284956383746368346757362750609416201979698552203638778141238268940324618962095592514079546328932060313167138630269136867554906027951099664826874365817342756373638711849030347717490919342270768585041482780899118756013343037683465028521415985285729685302464309141412503425719043447274437539621748942536391401907126947219190482188915824702138979717683228746449833753277286029884890394738506369550937111429130380477089316504191990561118187486351677671016876377860274607292609404185161241995500909644043652661554672042370434588283373828584337529745470253313085897845909192973832290842884210777205475649521137630937432091976014417689128293533285446491105432138335182561693343774455467636815591613640566933879602615550497440132658112291203269037642110824201357982143357849638901344010283659854872007568510380132843181160926949298983584584099192208701915595218961124638732937472160687673644845345897109061591576190958012609579997252477625700987464916253905587731560176266182184817681060136363003185444681385537871232377629588584636660260658132835516711379894725399982341951827992754761850360034192631510123298748504415925365711465671218839724899552610725140508610780490906332930043468700086443520264298521582305758970239736058324651279251459513364628492416100239178413710156141703468581455428633922916435072682191166789535721640409041145003331315005424781129545578572313165354877996369900339931265177790960844926568050360990409841231176762256597094561934361659026996922678849136798001550801946060139580955740593071842276687033801041833104396584151193790197999661162808542541751639745513321299944676042232118805448605769418998058407221806924639679674164965103440983778386221749389060292475979637724737272308739726503545207130277186633143480732242883809351818874915263811750860832087677839032184849724874454610376127068388417097322236663494046665914683262540389334286133520596424869925721083642338255978182834287306016015405606189323737943930254996004150972251808920960072687640452674729800390414332906719448862290136968790819918437347881507991309767741793931065790358164028508501679716117462003244379292709081222146439997558485335614331676688560963999169942129428083812003905159009035141708870608116063394930402899757752676920846923050570898212088081714530708017865504093440743092100129016548281352639011844863906610555508606507777411876987319746019603345603068015071608224476222456550950530195047666047201562067893342839299743725369943988062548893406954115314090915154532130775808325812648426502529404826873128083740061919752971228179873091558073067614669635326072187021035722022369126664293080209416059674574863609797545612429958147616237658743520236432013790991157331811028142507496399128730295862101465237601580126940728329241661523189812345353774239545301930643722900520608225080867525703663372977779951481720759264546343370516524022084523182631234787681077037663570490491649995057256422876592835472401941067599756759507657116814863052816483070982624154439306711892818661619151667612651966516163709988573271454617756673044236927212535669290885447605783855464054612035717978959191231790446442258286072691544273506341414396005596852209239456647175327231909439479391664777376486661074987937858869124375706755430098127896178808977342989606229245471051413595915816358334188825862581378488110607005290518570940124368490751661182891802566957292886680902798560506180322754712480229404055128986881512989195623659465154272898421373980235678950325765001511930863382897530453554006116673745972157740395813117550784064653537022095178625078926133974818777090266242556126823815177427411504317334007181246618434095891482726019587606945660305161291910488947388093554920742670803534742875318291294028188605535169694201299013555621884431140202668455387990947693681934996928876432783153013058840470906142022593253607781930540034466260468105320754441639562710393932490671722787685608418150061996303839056996888814127662524384966472048542503730391546242585089182313673013187612318736075238501041525925387260342922996006323182832414713554791021769931870185944851065126587237902120602639722906321208175213333459847777626263335579581657658859015753959567663573227839479630421556028444024359135990684880688360523403444382037874478854329868417707214294537370042295482330414820596837988291753126498583457657920100688727798649469455023222059911639351888770921364793999088945061701229826291738842141010600245771831531465982405632841618089962300598311033375576190026747203096067689209860115436880043340073911217071210701802057563932690652463828328030119461745563241898277362336288800953082503103946344939640306796473521859197222824596978823655936751637376981273832372460944829352857737625216011726792122170865289029540041470449206174608913758949174629105030084849966843459215103524490754671727992515395444509025886788661695190125550841941763623174432140894051650938849513324910809736403254780270491885046187435726893411853387653530341340692636762995763238322427210726599068657928183127871081865401204095564132263101172232379412904899034236375224686009213731015330941632544571749067869360573998446842164691880304964689407101636659908808861966774277784763413439282478151535147629650899234510553350733009127122275026374445747415017041434354951043501224071236820703565152611107388576442777030979886308932571084085744188478088198273631593736051968502071343182835373815830051349658840061482937811314264236998259675740509503074933849300665925088019200665023860158877196239586000746158592338555112719788763880297770045958901890473774242041915306147710529827489998847434767276471082087229308687805552362132100504739209246289990153208566736166224318191466603727608934804890712550677759742032953136378590871285194604341894674953485085033025931131635135828118306906154196183411407253643252189348237754714385844211800579146861404105846789279425976371001837949964921356698432331442875073318915169402229614666089624395731013566387135816333367773469064637170137512572285151979569484893703339379892557615241420355887050085106569818562600410536431079325066513108966444569800543043979180164028510910788037012836421301112565089988915873762986363480425132293449032349329989697447711031120258408973178802260035997581858690242570477599839067230974431343615390245661517587437830710548793775648545429062760404843594316485045087219938676384301464302132608973877631561405392507749181798911281335455000757787432389005559065245768685921277970063681214246083664981960389015076740461124633662378516479913833103830994757969394926612491858993185755472740682631027074778742442325218529699109619024073869380982893813062457185075256381837715708863977027291574836094134651748157055008115740093169815999191328994272764700198268891223253109140440973319810212749651110365116491363573743311537322291403539535906795868492568799482182548144404909478905237616247691026402809093455213745588600519407856888892660185607810501019917453461515977520605561848856654310713243999581237774015678682235790990859485157454346591931546253293164015928667086265630306240740542071377756392156247741206918073478141347357183253452018558631242064643639822939897879311346417883914799602998288173923789022281388732683586122590501161627539638611307327751160666307938256874678129702523689073453890185151221122620179190756659861735245383402078540925765754555227905969034881026456659807333324649810267251029489158223719391488082216108758447649845423443372969516390712041921317495714992930311922646183817982817162640708138092618161460480084661708668919513875194084971233445829222376642994984831496462334824153906929102288222634293972606935315944043584057663266772412567754738840697344411434482735212157947852518452604371138088163121614490231486905124803687327238770393725696959018696449821911248360114354914055293678266265946600316101285030478893233907145755335529174883080906076717282153323043940571261578325084610199809454940429659249103018491981929347718401968687223289230705804634289709786045095451021342009168633564803780593976377696846003541729178040267880904160222503633982761401027029926765086194868872420115880517991804150477428212391386080030659825852473515716483991944475186820296901182400355849690763574308206967003185305538693242793116857808007785046380218413598243987022339871249663735137855878691529394823469074472286898566786003455050250387320201403630998457681306349507676227291155304907201766555859692928083570618592072273559656237979973853926397911428988124020212431963034861474317685564982956256341727763000247349304056679974207513691127134887049208236378234880830590957981298138393053709540933212754928857097857881599048443622775722657379434152504863280691003886514617015280340026770281098586903250165899534619137802760163537519355162020718730802952530577431290869430192127244351539049279327932572532246654934556158878464699197901425239593247483480218490121898892975215884876381346460968778514191118687014039897488024420160812594360150594361968447963313407675315324725153074646259348058927213566843184530707250521699787922064686377485147453004205753615801031299786510012277754582048740878089387595385628927932474152455000805472237651909407778559748834163154307660593822557772381057383373692632532534135030525301486183920004387003788415385553903897201192921792775042866096801064776523729621013729273958939180583802310854821337388211438714899415167777485583137690432064083138913203100856763342454284471505978219753828004197457747719049895278452944720741827645864586946985841840430771902626264105927473908883894884053903216786678158512150239664792765348212297767977360699141486201539051418185696661446751860268347252007465870484917430948844914593189233867676630258442331341930164511331589763800050120410499902730140507733625656209038811630045433197960015893249388471993075955794523364453223331910829350371063376993947977497507400675170294278014031489454973592829206890502744968791916910364033736580993323500027411427527149140743989250445936392227820617672424577070686086349365401180607023589186363691392456730052844292015333110624674210621238922929961106488629094833169198943902289726059610668980503042334798090021908177040881587040432075459808101311842097830483472169038541532915199645928498029224527858082042935241114788968754086725526194281898476860772388359502353301352756789516049819426043438924658395987005928236777069352512075030859876518742241657647973546006271430994380587984517360122793246426170528115763822406530374816867910479807015250735313791588844699704852273513046727909525011972440223955198157336482215372712056415259354086508852128768624930271600252539343440895661855663422992447366282896204118853147947768025427805946639202122885185301945701928371958825932281707144133271422672080222259613675293579732878219836927249095580371906844798762353813372011818576333536758390292695654404119645187745217702344936473980310335674227673359435969324487581880684360924285502536482187581336122355224824639020544230824920173356902886097644407893574539924672289535879645284898401850992608322154355151388625797330151616225667634086108399548527519674755033786013164332920403539019779872606252834339243449189762328520827918200826322916549192541228368225927052203362739655675192706570894367246552212050036907467710672476068246416290526429492539973352110961982718626189455242485966478201537530190752360308209487019359599567507425948009812805028002355648412696570954960516548225299777638074476913123127644468254031181920532389012465101405462707622063854887582436762454872262348574687118019332438780626721601989655392887557273630514645706359079738887597098598072389124436004671507609513093565118951014030947999521058023808881974695633401834759324883754474542955358270070511000743606660418165423629491212323959275560845405223244004778881851245990324183338917941563519519370501013961580921321274275280765118648766280253926289821849999207713236436646397088761516808624447517895464634513315861428469373616527932213896104909678225829302780537963352915676975774389188834876634853698370316444449612873978858748304976224536710030671407668082160205469889575233744350531787763529387965931517492105395463544851369601906411045566647575356892069155251414347011116228353507821070926649130887136252733124074035879020769368836627150385093952073784853757451544747225375167431815064025305524419089743810662170743004391588679923572786694789045314747533669247277888546849336739455776657634704672027903187333061508180854048328929758794946572804358273845067562447412160853719737871373635323137074578912924664169310352595471808215493268479806770055282512652327014623131782101984617689302822792019182192565358341799733124897584190634049447324792578836005545791552581866200610672662777353601806944154316402279521500094248184841334751691953353376316166061302242676663799280365545967695973590232115474633602155490016159033454274885302859806096841507316678034557649202064726033279376586894366347299394007932392970859365778661958485573612682297149967573478219010310034523260627702524343904888695294868808040036244704594163075373570739491044572661043873101023135960010712648786333648671792762338264007089030793824284263771130230675484743831464879520197293756914814762738318941785023481051524078087405428691524232832376581694423598362436921468491629726003518053610261461561226247235701957550583098996073144713343893470916192603120639003655636705884241122232651294717169744192852837688918225576978793045067181746423084138485319638368020672651377333687249782147378826609710160123235152038256612826414754959455516694356020312457949205791495742663478738787214185711331637264209649769961828846824632159237029701935900787816330087553785134253931209717717190713778313458609508774690784097007061366784372509874113343601876604478189815635817177796409318823520303340216425589672992378338543750419643045449187690858290069510177970688181961088607622854893525547136337835014851828644962649252370360734891773637052302508253154605358092091029230816823949626035634521267873424991271519719477635812752564311005123581915929899705304493616774671761839215789835823393944987700662026820214812943598194810072748222210047816683814213173576212996038676325645435983728607644364541480467726929350847045251690379774872636086131095122244766372597007282079305429697164074270406723831696270841520487777528929966647902164460128463008381808571014175049121980679622346930886272040600872906612685375245385857001183531128856851950341179651027628942190300792880159731873260166393646569827067364504524321424332629369873364606486450959928669020980723500888492932742406454579325613387639859555386347139715173182331432533756412553338113566971620591516385578582229319955906452217680060177011427199907373990400829682201329046524958740889603951991938430118351670170844969406718327539884563408861137712415167594619543174721910534253200630053364357496216859097403948086125372277563966161091863786406443758946983157309649602687667040635556137889288217537912752611457260423910595275394710865311192573891080241772308823579130970567575704757784893038345708176310730664570313798628503769740248010064589088078183941023702105653438212324915215943816968514957247619753872737293156863507564618965386427535669418294155343509547572980737572958387641337966667051295766481166975590448852311633439417413389989366415707519745389926512637421229997042630429763340033392502956317548335848069492029539703098597239428904861442449172176522983022441222519564503402221059134250078254409455790573044523528289415504414572103675992229719106804889135803884815488688875276356420934389178828524845837773947885015646509000796017386529203168769573465953560604991614990236445051789502421982616804578634209474963217829625860169428647378629639448820003829037782102566745894731682664660743414029266914481979763597736971719428934463409780254079413177922544159716998406928386076716646633052378545659665843787414671118038623141750212880289360825795789815035746541963935456360526845263520372923760667519301674480568760844881645464682503462162416401550074632240414481285896080460127068505293660441342698665162457752582932558964669644159050351870312957572694567492843773489052147307417620235513033938241629331237972938481977468233019045558991589474056608064509527709050733319893335180103799619642466985323017571907477834915761240141408823719221843451152240188092375506688227184468998657904894023575558206893263644975673399209382201218605948252875565571620211862061851416292125816848061911624438425678026216235423813178741781334385925883781244346588177931628148848470759031781931858868082243691761476404867205712380294224793198353506882742284510698025211475465985093174000977981336457127513096098935562584014710095153801936111004924460438539548585463634638150586111537115707986263350380501018269690841530167431546673900921022696751144434428760616316397520561134044220207982505179236016423773226350321861449199516180803258560235811898128834857863932905124630514644125194927305803266136560687892088939477319278370372523519966279785462663022268535987540520398893064380571754934684249998772448919739585036840011206310806337870417503283716299968490570961424723866501208417007096313770823432762225436652896152754231681238028377874113634973946730901217080785775137177505629553618358030637246583209780603237366972090382864915554824386321438774598831815275495472242944783338647328691196224227923929666805972350133192784630208843117178690465733449763187423194343470340960615936068245949007815891822086784967955025678792151884705618191398572677968230290752208291461951763640029286822493051183016196155756223378992758000516189208500978405365137751110562563852992923348206380294616220146202742726474231584091931201785778317814912135643788778283049436121643757832700798634589899607155351078823344588044905555010956228461883991170945277399413303189432273418902188600319626692596312764035932498145763095457400382543462183667259180393794276203163481096220869173207989607638764075855577761833430714654484861568340575649141726771150029127629580198608663618909535339230153492948169585685761202576905511078616578509925555591237022727035872038703477837448700794757097208392666695335418567984201682870091545875816140869480488770414045426273134727457458728379827840320876506490568909286225321164546803348525851254399689196616481319330880152822275223275324925062853130428907983618452348864934508619853681262749685803066025562601271252125577146117762339054214701799959876830569545305263968995071446169577488941961446444950720986705202311488308344619013903827226852852761055262549265692792392952747774345125482516117754156843928112172008582042047091285601223074386253504181391892722229168298808017022913248430736068093068253767988855618752135479219393679571137392209051230775267406208957635721773169368566797150606899587157238219706224333344717236235714222799239837501262670010233334336659234366697878865956541232170721444849939906224663305502234222983192057345280635752458709886955354723990820386782877573828403004088788281712026070126904067336932215923148603373440873573798836542498612051500872360647547757050974860706807938423743462540197242645508099464162636146133616898579524719871624013297589882640383463348093100452162666897529462783907731802562648227175820844923064515803434864301495537590516886649626355875402197314707828029267689586477194046516249268943983563016536371163636545545441711510936818859210785811391560119448641851899100621767738409526753163055773616783331767428947170041971290098617616194554701131192013619386641526625801105279330972588750828207165674740005136148739552930269193702405855365821032801379725237979118136037282140138238387259875919512701658758537972838790630003343882494247302450965460391835491504894877629288186565729342370742872068560457236660721008503878325912902869953614171135268806210310011101344364876171316546502692562114403581187941928003449761853140713283062301811294199716818898520855079271540624920104658790835098119616499155485434160496332325824666033680474912238960334638472045601398686595202183446760827940437227641715440689142988674592988499773390830581636432470938825025983037100264335361379693223633650862338431562793881843992701804851844832000790204435728709552368356666374586250209829933838152855344713717406409017737498742130439315456124572898048235023727783727970834700543631935553848696956908342410912652881995072720757030255514953841941298954872769550173073718173132923600545674813506217580701704868175677650958443851738247693635056431225947899558099242816804567355879125923499690697275817848034123083925744452164052403888460812238902589774083139790050316792315998850594556171834939376807781123763868927773641901121930641452287928364559695483337619099476890289331730678611473275093553980268438720701968423090745984287124157615319898491028138591601797513497762482612581732254121103068698452724640837253051033260881375796147117253596031193068410569137493989902541659940787006532346131960498196059464098189406328592088259609654262138120485931118611074070202131462111666065120589220907198965069499111932605317209549841460686793101970716788255004314148726856389415306187553218165724510841071140582777982612838810292722418407986341949993970356142433187998265362121372319756570697444596416445476522035265664687507470103036895610285409773435414457214261373996089955448434393298227261324937016039160040734572120428230645913563466934978785033941817221748358901142995641052028147743616845104812248709449665615861404157532681627155127035740796823228720702070805850836809484338709995922731899047738987932495608247221997150837675677472337296863740696196329463903659233333907785721961390569228991366476483417734294698310235512169466716286879371827467461128749839330967612673726983769317549361786081169306911647621689002739250589462397453873206338045362246025231107193863786802912801147795412323497542585950717798287181493336400029570498201460249599652038602506594978506666484313024858784181970006295521144704886057824751167075925830609501327409505340638343657662752742480807312793990137067708085266970831147620628352830649277886138737808430546232919719206233778552617741014384733966572920768673985507263857538969110447075250091986007183565399473861150756833841023355760671974681986452454896772738790747744102770190648516775772558314291806231081023565408214791275983800895720564042641096440523910335142298430706036864164033801164796425281645324272272365913472913192442464575530828495587706612430096892166471168877964917004824413361518823453964186460366744288138607848326371554338778820685301263615719721176805135411137278196525255727797598298431428633177150290567281142093077331651142150414073303982979846656459911937744480328619676213854207384472518856124259351026766904487541324863509362232516652966862889173932112840354960460169715295436591458622045979739394564965706154244248811923101069005646384078852137786198363837307228868339902722446099938670458467637157314173873868932895204954686160595423331075808665113206386528813529201122713160030190890817721072826752496162948907327813012857695874288847381487982002627297501562627524547910379579901349746183342326207080864801078059732617509332022780994101696690658976003552250676197139937302027545588238131977179696761345079470757283691393324876872177189282151839833480689721397865963102214293370101804621747437093819648452541802087924869860564048616348524692814827373704301071254975780949888238009591557424630079542004609438025729814734214819094051398265837843249987165289661986923956193020646594744532494613980025955497212406105174144793508294620205366548804349744708932174553378460821327398890717162509455531686284933021887919203688036208175799398097961473687428820683260160769515395549904920969985341738424311420770606351958697111582109397021729117412655227251856047254901876114742217077770523287350117537046470251408018055278738149733689365219538942827979980376159498770540532520045660598812363111110212275254196892919516968476117754362847587719234790915774030363531810426712944671733490080535730916067756827522528889153308175488837102192408466345589541546644999664805856701169718074665059385324628267756627594785157308957785398185389485729529940637297593176200556176832303445659925256546955075869781393555863868061538780808476112111407801511642246343572774772897931783624449256291992007737088463990886208039364182278167317014969248273179360417580305184144523733739593959011518154646594115915548443495872286743829710242761507447318174387040388572622237135488966521894748710765121543133337551411711185134924216192818519810902677007691205639643088336609558313996836188539967032423388145429728004420625449313111576924176886312193177294977212357281422049111704251127141185637159305586568889503543370493933612011530501937480671297228110757329703545709054380785331746225747722920931004875043457498376579782937307880287333983771825990019692646145132291834777811951319876425379920447398721865384947364955610085048285653201812837379396356873346314376259701046563535990205440867906712452965770332903360367428870798020734578797112383640766499105389086970777881167933674142494788944661669249063901590406027898115332032043781864123255739084421191242436011524767825667455020166770550381189683534415371259243943024545056788719064810709488193743189380675668859285142535468196194162537219529490460193386288497507379896721926579591375263089669540780186600986343273569296388343040997648373432023986344261847947576872221106487664378434042550416857061642225929356741570132731392316802038993705184646557786055486846584697021195033679593231216512457301711101688248643761543567938413764502969864550868250381709763461345825220223811373359104577286818251473938318328149794571529696015173049999912474312640939332082011117987925081343327126908622897235553686798138122659275640437586136826458511920589908706303630937911662281223555696868288517588454170058772127830107398745663470217329171035135737032192119443660167425259763701211253043683267749495145619138953971788493952050570729023939662936733789582219572068709596703990728663127271128412032788473612718360536072879776927283233184176238318747670991788737909177241990215043251074131605236773719953967707308560942681720558103749605133000565130704860551959603680234837490203597632348167839876929262215036454638992849490801509931376819670968961909498988497121655283742036790891038448049963862292382781934680881925813697913565439253189983625015241068179543032510007128982640851355884021187376760347256233435027832152243766868057397460288346438807875354169441895313248138461925943073258393279012636066360615784061326485414339669816669551477074756775442429220709908406340058733958263300333488769030776325998925072971256769591348767585576131305032980973313701432779835253676392569272806153128296602217270815303060239388351654499482890128506565039727017476781529854905097309586150778653044061279674676297558312060857415184146331781370291878275675100054715756856275169320295692281260691989874651979550915702794410645542720551540583350336134316878966036561276123308593689023166087365466821173232549209003446106416929955079257163947027655782210267674731305225540429659798972264296473439559415194439502102455988311845489485428114297734405103251569964103914247145469096683990737456966481369731355807320652383783469167457290051932303391139859624135364533409270945640739803148291037482695087541810565593554211463381585906317682050773644609041238972371826001703911765560065108930802757938995910154456227160900700336061181692490071877101284743448587810751208664541135357249450015493470077121339777808109062426672488397645872578371028348666922434162925506115768118803201792108573048053921264630595081452458464593190182124457995862389960494194109303125430940838059317114856848928097968333791814974981637289779752364823229626257295283243292967809185449510667789584296997821892100209927337651541677923227002037904921348082556941377277801987063784227528684469983368054058474320088620280318006033908558356368912342208433043395935209433227313997426710847781802551397859308758592385070048436777107947296430538157257687300568735234993495104875479234112632335870183514170145167561404063511484756359063529770990537960907741139056657775939000463929497077047058746182663315952034668272883084626477038213593723640480089649134182555276955270546190981536893719271399343107007964601946525454457794556699825631491471156844498162077457870411572287080994038420879410078490253683414212574236232087458684306543039150412293427843026781444144011339831926161121189928916574086432242995044163683004742553077584801288028058186486114731560161322843078930771051237966698496848160477438297147448787998494442106651578223675275081445101428206312149035034942657486532734620075004508654689286658873808237578945286007755044780796741849948794961072755404005531697536731561771973266604622736363285769041995054064288403664878168725436205029536331743595730671621421752982852335323925733903362745304659000566938339884831579021765686507883522457887875550554329411289672871246329168562200798592908254283373590393861858165737785372681551048200997384052057409310842786452887046009256782888871372974643720814326955688886296610756210390296911747158814070097458784765069936225198543164819527103781192797616056218566305221930001549054797609777839652956308504131284826333217237610443536893414496879935843056158833451469592879412654662436647995118939053194776890999790088388304416491373069244372362860154698064892208341014683396822707540415078831544162731425895116139201604006536850719322566485015623596303529556232104507960168445828907178574804677333513973437464764454144840373095789289848615007762772542881924874241816703972804846786936718132102879920219222275694007919314752380217331807682307917147587937102366822828824675499487372429506917845907746249514054399031201368973242898613543228106941302010244366362769325900400796394502713155360351683060898586520814314655399375776290117138979628908314434365388596488320140419132585562417465270234558161748438867295965775890100887731781905910820015917401307505295618939495478785021083983084498380201119812579070363154107718505427351457028891621408893705466734009562428738733690670938580700966114853028366607202856399721809273780353430719023440817470579579230450878162282719159168419428759633519235985455851374977003437085091241768709800085501772162702011178119059498270713298554789973280817059245568136945691331583331400629691629687342749306467578461747683095559261706467300823622658331800805685589530241425497154437623927732585406505644282804558573614305140159081589222958872155866322648759528841403402651173530810487349449531203968358183785388615217416148560445993814216748502740140780388061558300071857381635890967327200834961065929359320414612388234209609195125001878876731775691864048065287497588698398516179389140769670714440549121721581666783137177638351196579654313173252595161910700178933935205753312359956995841900547642096293899861539113534045727832876017703110904682314878925371658794482217027314052000119587252808153186511938483363679045753883102528649903584334710189252601563180347846283519862614793053327885119949133993020144729912500432507935941486949143041641848909637794105086613418494949454786800562817470363593892362875801416299589339302319943677532930962150533147967899999544186533901548220889264598611736831234420904933492475084592765039883361012898450949694713841686174588891546176498262528879197939505442478778835745108562337961561173868396317165587336808797162652746827045966576563173093849006876631466311721156458069124901978376350361201770919975866972351522217661877270914141155784670240536668075490781604862251610873787244133729107599252157730674336249090171065685035272631498688145516632801054258541839227240420917580077443082731408768063039243420321132058687866968398000474460563746964781452418996157708332001575008553583006153476406313531469225729566762681337914291964079193760672878898138906142275539272675539633126363672298246351352939308631345923570722790430132752463851926726680142464924271045571156784010569273799190935492240651830868388803550048776498665570590396981514510178458154106947907621591578528279010426991687373309767978729444918564440656568699631804139691797107781845796851259990550392083987682057810578477996586610100205280611156189582490158521479678418888807308037061566184752033595872766499371726306249809673260711987505427586279813667571276714447245347214578430838826987013246913256357677811815754445179582290511745441399344499134985035976912100206439069722057825790236789155456735214598396590568428380915015528143815418542073263140878618458523519270906341046132243308949162856700424309232703402678250438682704649601055525120616555932088695195364531773100541569745936639546017378813363734316880425192765280647818989432873114368920213270219288719863698604773771509018810698802630786936500729614477878515952259874699243316527495787671510809804992933608861464357063393552618264698145517863544685952633986820044385866013718226798217777632891130929074253154406433511290932797358420239520858149644131509089906250088093155640766293817537512798600174444398611166842627864149763933015762566812715228910508530774619250080321737328691235606880679072301998631682282662300368032929364603218044678557041801489507075814237851877275506459595702897504320213095775241055608509390537111001825829606320829158543181825500542019896003193365902837948916899861776973225908316709070149270199433173686301656815086962202266800422377408482706300472612830346271071185931559553511367139242326759129637943022215461389098277899619075983092950338743847624733946282544012382119874686462715575284901574481083401729136598834218284168587312772707069572344904986176358433533558045985875460445825877199331617636364903984119133250524895569636786693785919191581333265221696180034272099677902099703086520903071441178054714014551673594769708474347444118244882198932908171368630180855592245260852426061529930370741233554120710244964749769546180384524767083396984053878650242681730457018215733288780515487883577631445716996334056084649898294902984324621409064923697212374765933965620576032005046472946984369235729681898246540582864172001155330774504397909185971000989847570293764714091560375909853822484454124289292447989954170849929658932887530333858060620886879728139276331988401792904367222844473563806315389636160817081372754474976998465016543611268532799687105805419951608069865143830697492066954753764824744285380396271730571578367722649404496356445860321415075073530778323044183028585021114037042294437933656303383142210805825618139517070254531963704274763030537341401961720568433081244255170723638383489135133019670284701198341803042825796436143596336400898040876343061427881977692329543756477105363239036021372587365982082388843764499428215273539730883885596312252825752714069291375173173213122567040812686177639994547709709445815985243858746929699205073373472940109034316633372082104924817601841579443842344068256097762898537174631819188348035578731083196537743920305264473627050669917887579074158243529725280674173708886928948645375576928283511934309262147135680439894036625785307333758543844574815346517670994496672687352101287917293015030038114405699529113680608691765474319189480507401125469268897253903196056342172488642021855989154261072118316065159513700718167743625276197829480089306532727830550206801604224188437382590659387471602857557134157510156386613336298415319040153344499241024480352366845372543930147826216155840256799795675528789467409431069226566927847255243275459743316947435596129355761396459889711795848159648228296979878337779262217162792668202121165330131836215623794550121131013533445512275754390668871034005434966315735598516905106249976372976004930162624200600065966875807423552774306952303405743950801310742630650610292966251292007436232105158699003199812550886431662036508105709619722301550233234501856594904700751122574809421082677700874638848938049489503898471936213701919847826954416069539563740316449192381997746818110003469440942231485119353346138726450969936274498129761850376209251027789154846571367190180165029985635412005920213999821946861899984701506506149771177152465796482542289677321547246888643903550873435357803016741463577253343960643217296618603258772076212479469504363371969713474588887420816779923809459946056932958494690703346039348856830582673918044192411737924254885308618379436797778396096123793293807399286539045500380587230335531861204309772005911873671143514351718042083587064576689504484880425378671387948682743322960160176217780657175348186332083819097685265023382345144116247035509238037117194297246815477420595464658605744375086714282616136433652814450889807140740693267746106722588746923649976819959595480627884000740028744994575259290330335886103856062587415854332680650152247667300521447689547934559041862838105026504058868634721943692548062947152665911937625873846701902677047384789894379833696876120442214396017573890117215931174009680582769562591584929811720676785068342057877439129518416783325675814227864099581635110793232320298140972505914786377129396365628104841524220511118399290679284958290267523525063058549085178332198350705644606001629061982771494015815464565841564677969396327586483175934293007413719882635951441590184683287299192362159284941864162968780153635974407529719634290236082747898932488191938113855126766132675336554582177951608017910131249688609361782421786825245394984085890680275433103624634769636786831702606036600165765704107410515618860693055069762173020831133335294351548234703440852480999397042235694057907308245027132729090926801952544577944952191470403144708963921640886400952614801285852844913307021020628598987012097367628189606322355610446409551108165249121125716306567320338679977148064996338114571496332346421857323633470128905905819027710946060245911448508003422394511991188110429370069100283004452894406012213391398645328477623131262285245258375147783604401300220948675421659752093673003335000561172681929640999785019567601729245244831867515573652335536277410250042623069884494307945942489857921398203359206672585396553786463629304750987897438686299072695473068450835504462583634200202059584099308387154917593755577294350708782811099212626861361820530911458315804546807799791325798093906325558844318946385669567557651576758166703437029755661705735751163503485013738464710557317087039785421254286674039429046009638680918631799640026117439689893654431822299718590522921509300688707329312247715346272077365462523837308615230792741919690894489096127923142709015833608862819505220461760832242386856985687300451889960727340238833315295223377417317129278222727558750279960090446931455339850010143172267112164023656084935475379861510617373025861567442005822500599863913451956741991658487739924869375504942454105345303586790821168607884253299202321775132974789447552964230976366434266500968984890190227802189896616801834676892727137680433485903788740487844221176594720805445022779853150782971104618072445015392091398944564136027694725583908446862202669781552060159455563775388497456935058553682349662287940792968587830098231118865980309759531089865983460973384871275904512777607676772470558732288969911922904898574094748903896294884936561248251080866099687223904943929855811065515206969847989963780426251464906885095667827482236907221449310914822017563441410262787718601596200074599122393731988670148832619407038978833831136838626920232940722804823018309126662996920573039248771931513148688905966077637713736820276552652610986631601459467281250632792806194693679102146274236834379094503460441761457061247139005564660884183619828638487211646103582351263810839412109869236894697745949687893075347622997719193846507100798967922996167995283057096959423350537233697965059980171250268350832460771562493232802785350357008433406464246955957541779061957432006502839188306439058335175448909959185094761018196566150003099021963511385477071648895498088907214217525134399448641741162575646500381935090814698765964519122891349383922381001795091143868659317254565937931339696397642398681929950741150419725844524174043742203022953380901566171124860160989378755831805149751580432244350264594105318875059140880953018437115693995382297832655848780105923797741078787467414095115696890575572638385666468738280794636028980223177942378063939486761543750655928167735808844036767535533692696706682649104537595885182652576756618002937012697251320323229472413392101790130644099313981623017842971528225919720282082276236629592993746605201662220939708747219012604464091492846026775375270710173969193003065766231875724030753382445897977116952762762058396048735270413718804514408977828273994289348836937035613959472891094337306162546964083222213087705068584327663671183258667047432075910814533222986737862772792630056470533083864180250355617850290578360953941702408657251813862794105488712905465809986585892446348241497183784854825488094998079241936299286660951498146405703125029857815181671875534634159908286701658340433820733932019707144068591835923528775065093830982311256011969420685613799160912431964189268975485272662361502941463015568232673698439713017340366520378942098388582048136776323218579672921048276054157020971536283447619184815581959039035714240908243560144220574548529118672732286161544549859839520483094430779636356391612486830711287959686909818037654121753296250369744640653611391704644707308053928486329058950875234204005852315669601426891882792473836107606093161179536505175197808801467666288989363414564899744509295159314682774268664941653172203590317944919871526316653191649037345039479434839678684727276004688780539392273205703964523910579882213757669936297476750413149984156780660842694910215606541205393188407681283438514810746723616024711690344819072395466395688905281038972705750056031375253711424445367751810636139841609263990190384514809571259027928622111787579474495885683754846704592336275813644280649057522462867838008935799284198575159179191504490735200053118613372840555864908166094657404067155906102485227469733337649703808483217835999418686072949053143163576275007715136041372994532876005267738316821751007893306558267262126676779242631699051409774781853999610457696562612965004176597855829372385137000280207528347549941556436277014878607352842066216922321709258509661574381420537307529432565396387061731354291277229836773026507837256492496094945484210005391286568579265427780078434475691207626524213658702338709379505453140806247382207179439212326991848564970201195239044219254850598223288171406455662345179240100474964890154011378344787842618300750575655465590083216906263182763851474333791209754886404885659585898090375705302196285067122039062203608956727420254970751427194781640718378171927206599262155223469758279387449303187731974836032043712401157295818679317732653139460537697788462095868105802587529396957201265032643385635402976990018045135673582019116619419869166166715958181335460274763217089380463448323923347942943277397189440276660746430007603037446651165431031146139872748433233098376201805517283750380590240842187890728131789284549528463124965147003210261972672281283489942588818632686919307941241957160730149695125833104358007033556145595038538255617375745260616106595872910725444023695362308282669090788343793666724463398967842746430924374247199019395260198375373357841034452126576048613579606272567571147205267526276839041014290032286568147959979300964709390177897692507402769308868987715508927190162298529731211489144914443790571781128461996961159594053799467809734907286031463123570112318428507063128472697191568180339442979799135497482302472811221120194371231118892146557377669232065135242674186564616118299640434568890200516869384861329627853477945746449810084687076652128130305482938862104836426818559891581168953026167937026056742650601767576038010892685627925792497775643056957283671191270481634621091696921645797902772487451029116491656343655332850526974317944617479069692550167702385122703518932466228978957588907762444531385099755402942241520871649793647498498043831600725789520697517126861271697962130535169231871369690347019849873477295705747439849526890406524703813463151704563846511799913878846948591366343336316791926477854399420422393327014159370186133221385650485742099439790780331287208669202136343322244206519246786943590853390741970298439045494807357350929079873523545488395227519456397769687801648046255357215591396621995382323086843132532982966026683051910263887903104773002547818227351481793502569675922717147742632224799674904788315130603520881582537170760354575265783268486169390430997976952102534514763718386163911868378538480443677836855977386214913023733683837271760383179493798637012180096030191026274977488600778925258342919863701988719708272729816512362902927176363424593655075256566865705887292514349029699301393800075697729382567314790152389045105497094408311866368047686261030798315151893828664091813115932296177316595809658031989415183505667476678584265198826033433499408176525623403779612566930638467719375811517783447323887337053901078671025304362709448811441752751361871906737723874023942132153544533001979306397018943069171298625544449470097425511064520877633132174295591385088712665349591563823301592472258763183504823853740321730206769200496452594049008262296729484217676012954864679386160102713698578675032991111016684503700600354316136958034275763989255577630592558674842865846645747689383243114997865277231656960818343414343294270126404185640745809870752182150716818350230337855821502615752017405916279215593169994654742554977772197911750104642737449617932503894316299115167913336086952663358565376449511573217583247578592539054668713552778013611321549192085997853803969887253566636662300108625286514792923628869531890489936238378857706647001683665513580577562755578348773629049350012094375546797866367013862930006917621852724804844142086821512528191893013447491225733088460866990397143589877107709088580194313370209880799315399426491283739689870850112554462774631099032893282166323410017344659429732508296830840607429243507588150312623860678900533639601668644152163347296790642968948491764214339334044110058986357095158925853105892805976665712940307787868716498026560187054381407974816072891491895330712879858246546502485771114694800318128082208453412110414610029743600571461150875958219365096963085754670130035675054554410744139688932004204797196071648903055530627914418993394603777767193234205895018682781489662018850684429225662734581020586905639347960548042680710447325388866700059884727835179039715139916184209256301778118524648188569114946575733111159067753146900061235705280522007243777346370344355095871724043227540248663849304928320620448903123262032833291563138559297483612498010329543671726192192968863975838579618886107165063915804570414901606063757130660637704059108017490196875624976979449349058933230309290709524527153944868911644049381240516515932936521692269988520690099204971096769343902776926598548305225618003895579232687175748176186769313233610755855534431946762400821443437560053222392344030546741524909868654320540517446293020012239993486920527457275422785073621804225437771666472129512606587443726601010911074246716364903331498152878562513593937535413686055190854543053338406318396963155256077132519067031693293590655541593670140271567911532086723744190500796431031999349389720600862155555508517971819343771665097757567483148896705107736033955687109464212502976102758566146599950008946027013999690468091437251830026192910239998107815331445541888009025152887511603200256014179995893882527973870996653040349621109187219412782542735637353058029834317752717616240170199496102950465441888061400532807855155673632347082154617883315394931328072409563114620204228492628020743865508165425292046898259728766946479284063900442237481615060588772068788146961057745707320042448354470969622152825455255220082139369429300670488458848340058094050255483264295806332805128991863689059808684462607728216447499678156422557450474167734790735867452092509520470632842908052901539271030569027635328781919037930428170694562339340556798752230821483298794160571559710806532577221568488558509960246209394839117213818959934247498159879727221505158762366700282746390828045589740066627840912099103193794183197703210121392556013617428863924218129466925336876137699590729428528079797391616100323104793856533083429468830715303803781769346883032836830227071922748628648524513051524461906959807871386750665756091959602403976182156367453243210507980318690189506401574061773045015164733513729995477589437045258657731988738497578276152621783161996535974830577395727332388412509539489104504629331222294859199036272713010064383483300758291876784926975470582085525260391361338139887359423428532303507548484907887816189778440472414818274135848303637415873420255638883445049933961227837418897197483863791184537157333396224868705463970598194484184343772090224897004406796942973808809696866233689455818709134629432910755503354938322714271559163751891980626789426044617574096798936508151733451534563390332516175372032886827006656838098200810065992189906247374949787370094291051627189583626446937634061674615028626747995085299005185095951229204675847616334835936479020709378732075794927062334853844745680266529297271271708869428028687687462145792028049594920163282110339969519385866000210805949963384211584830394443260076032493972553194188679357146195948693318305238170430715139746957979054598415888953416908905576597677959172541917870217457558401263823511757683762594557661120161658885954180989333085280570481156017244464558085283263021023177070457000165417281730101217935996923816961045875921546720992755109110032380181261345529956765694423030210920225311372856105787314834366728905973200709288355056426546497946032039335565146304367844995934367341381565842239965867740860413052023639419957451442236436419680659357145293947505845047416651336288422180574217053919594048503106403916758555035502890506695826013304936522621080918067571109213557318481699737184011327999150051876847373259267291755996779261983974756530818302806245893475292594987034600482992824526892709008094482830588904441708090516706898411321499486562324364141088446028091320884560407917554846266623779850964687882538895638594093413111421983009271930185678775850572198426547050920411241130802471932998374305364640830831384808977250292416471081239393083653074825727708646830705165143618163887638821324962566158891007536387039812895127876311259864820267493463653393886060381434844857429084018217884872492430282643501194065492115444931741651483634499024763136968078020217786939437661551580434698580574771272692170393038105024022829280884297919233563907152464429849342645701028156505382731178693015470061364119194112168978525362714159309768706907878932914673619347451024859658429006917303865066449833498043335017161581676124761818300195018617724003613067939405363420778047530462212136893633378224399715725710335398111676152113882931168643583499277831624300424738832819786257887184867286123095838528401535140448605931263384315724496978978700548519586235156012525226434475278198416249661627952794358549684307247373959536732703114836011753575888609456424872679043328270858427208936173484591859770269629960834287206936074004353264753642611051870569203307203527071323908531421438762952789843355254048503596672359879448811310413654371991025754630393257811867495904825706350066003449756667164779738121899051071329296104505972766988136932014501529670269050573631407151839813242835735211266633816591571849770786629934778693495170895748863188883360306809933685864292714045372134263551439613776446995903148056345623336203925356261153558817261549301940587125192295862800601431932722945550908488518778550721704161197855438964305727521913673977403617100608787577091116620596416930219890378396916303153897009465685874918727882585673540409147752905629600747464501457314253490467063342198036334339902303830903039854911244588962240828139243272918346585003178268434341974536508435257233680666194054729962074163884046768595332236185977378710121853326925611772444187689959162073072180536190544327222021777561572900231684248559279889074505038134270125191369690741882935494357297019384726605667073314591320827909373270916597896469506602364882321490136630491340434166410014919269007276219822220749495032007558419623712080362684949097955553126995135441039630456833321246814204172463899674051018411781641510878094277935286223644161034867090499176241943564228433810864297435862465393699820000811159058609682964245685693761248490351137180713117426516301170052822419581729992157491564929346881044783243615679123101511173525731968028500830917481553666743956446975495040256204661374957183400111452562350996586315821791992607805754738657873394693774087236758070760505177053292942652876474998451823009685415236054248176959193439878895071585255857778114208668059145107238331783704375818247497965099421001116282755379636088836328671591834490846151813960563583574539064261379599247930810104210934091358403180527806348035008454482568991010384378460320372821795988040327321197555482873762800289712408430282002425995542182788801043765431034137827052367538423192870385510235972943200788319376759024875955102089277471584024698300548390903757861510326311877177846064442585749326254811754201310739956744892047356998044398013280069900006903782491611186056667609690523635046786539791838638465318604101044153888092237706862902515041451507104704039120901192619832297264934613265562420412241882697762004334609085702694885353914001419675469440320123581422353890577711932362665262811853201604519030306707598255726669405476167438292998448416234765442253382621926284907974122024166659992967240994314935463909186117245256736822560356184161675481456475539289239853341370052980225123557119559153121274890997911922572687239850722181922064573115980340774956045304469371511532463102764843518809729031549550680976353221248312021532331740971361480740761511278853194547826388596806647649437948965916350588392211199050198351724823173918220613612895484892480850392672115060098306404277183377151554948675556490458105175524662189592928064887998237780275293781720923904365909377064069275115142238464732158706715100623954761944436292489659698334550219284625282909723434335825354082300786391527900691833570664574107276883540821520957522601601611852060852477110180949402527619082724880253327479593476623656102477498672929600093599014361473130174690780923042418978301367906688406609268456380477859692342016091426684108221800856156829634158995722783751200935594993689022577943214646787874691433320268513665020263340799994715504454534345482112386277641161368959771730151334868118892566286103758844445510110313290459685484866170132837990808555976008906289580717454857503800404370881095275511431285545775729096896927859470609604541345868686391207328483317143295696779034028763190865509209458973039870759534218091294113556470309244066079657760815746623414212399656888565611131958942500959201053158620386721172620490122913976057605464833368368327395151843376433854417130856814741873625725012842289212601222242580026451473087312348959938582224832782572012343016411077174685242033992088783200705079268269613538963127085471335484762381093710935339219218461186867052703119248230881788809505825204202609432156780912669206703842863279106631602414444169210186001859813138791851480463305459373960779511774514482697537163197507377741902898000921572284461287568691866610739001504599861425869599961036664346956438057934739020761676070307581985270715146829340828735100725576350040307515666899083220093171032659988211105074992405139144274949302381121473580224750278674745138527287127240775561309967350848699900476341553272390056939653801219569222858260741756817918788871809597219426551541060835576619315907625929009710333961709920417994331292652382935732850394769473072392209259061450633706221896132935412906895408105350950650553319344352700240683562059561693903908401278742285044972303598030794485571641014063241233714408572807318240522149701597279905005000849983157358368280579113434031525942991058761762461813216766467830926694895133137623013788863037278195282542314766509809843148727957593792499856808678632257637743861490030637555842823532652128055742564202049938044203382042564406328945011717650415740569994197406971393306302611160557046540695937755713937307272042044882598114419359344878375634394188477349228368890521594444449101933424643449776447822416702975189736285519363067587327280357576871459938124141219713458830631388290955910970113876906196342044042907320569964000583606456110834114886358582089981361199316230170806390482781661899155617295591659783729985598566239197421608027808085178939305779033972910510194273545746040288234449539859665651358427210998814506757980364810849901365354396185482043695014279944590062209375598574982307434153800000040848661747956522142856730106740224194405636110494624401103691632549363950023430667938849707023376768183570300925273003570755962347696467211549798060615011305520819891818733693584335647227762216875945608191159039313194705816734305926978356003825880965370958411515091178239816662475693150497472383405715321412472208169160990508477012647731403801398881366798974654121226336309835166756545271162960102287350794932154032318647795137861774690581699511451989073965371187393949645890646129787742559034635874677009965753023697453098977085514562459985436390581120370077287864847839850755678448316300922672800196582498416662410283933466372118906570342084005803415786960302275236708919620323206045690507879231482998908503029283797734027698460442322395999564452624403257284552649255321760911050998292619726820857115957239098296849559569735961232131535821257299755327702552683823121530352046512024517339334147301835555611824851145843016469694546351853462051981264461003518048278863430375319698105730788139080939279870812435657782932317158679003138942808688091677806697588520980407860842382425523085268758764234041512436969173662982485534433835013937549483431043784095705733608418356434071163805169657388368472093951212551607420175789467121529955332318928006836288600313881781314613879752820009697626744041046507834095529200615158980790054822506674817684493769349517487123857271783308285103360579102942239643413752310521851497992235843302786353269900633634079300245145444206752885774666935967823992981756564047076452732436633165335370589312717790901182551150016825532272516723174986634568189232200256847422584259807976432721142766849043426591148721135122500697001604418412892338293774175676926593052865855715823594778878093019048630005769354571528888436658894320858186463443964840842614028882818135178441169222514775027896945552345494941003576289158010074953268111365850916104946188437886684001656273340454151661787026740281653449827176233414251191787439279782170711233676102549487304685951713207914296179568296411803239537578275055909726182466920494238089327803937599849394319780484317652406785393321114636874895740922223339694249278760759963555452896379405135432223340020686173433912160644337471454466948332251918397890904136605115816760747344408183743964332369815721881427952560275713558441578152084926055710941400553096282502832117341257014390208130634215392025847589636670509251083581011943409390925795029165053095010459563431904389460207373290019395686596614169277051734365317113590814897453663466475514655685210384498872932087213757671834936533082193063290965260795608509950986510062216692404976071182598477555696545645845586277449773925705701610360904913219496565606830893423912872343253514662830687562141293824477744612991587968874758851136790637415313485701743765802137326594882813745711369346585645122163329299742222896177965520661794305478849008994697359974491533539822938861981212421692351864463095306096468224269120180885185823605123648790081244339440235999956796276566437078760182291223246392102576772340860540913209677057335991941212792788496386132839629162192172054676500288077837324708706461534802916781503280205520903073499852331830491620369098176971062138071937028397981065865174339118163225630616216300567232906417535623393063592994743956596282462641075165388177781258826388280857253103283693688199104679048385829970924421908971473998838837508155224460939254479418499487143636439616696602652305296613795875100289945049761859771701341798542953673834120552204882807941551796323610522263313128181466090475781309898214282063365008182458016391309850321736376415440944363616136894541675877069307535661419830919525110596638366476213311006257491540238506836476258630033617014535293811955543959577691149179467619709305839173284056629579546950072726858499146275952374262176946819188520715761971148743740065344184497398804255454249267453815351028225391088203408440030237489451147995002763383270454818437908735955714174591252304232587934423424348532523818820942128650883783131522476429045890590379630725681223485820110959342545132028868421132618388883864915662787802493505815866532241379275776000279779163909240814902157820966357146148868215428085789931324057409980803278277516078155753013787968715866453411600342339856692079254774133073342387763139737390487115861309293462146016561639307084191577596412915552045933756905812441500561985725680099203003220654220695915160970400261127515989917451598577565620044924381563564354783201068576795151087887267402775892325251840000448664998588896203754311578138219883068500188137723399784227337302143320136027735983174658281143102574971179470178275986193476346703773012970176121863993187803623285079006538459719020089920579167394361735363793997195813779945428082089803216678992703245640325583896163585516236407921445890604635736388620486647573694593622148519002916431926712159510701903421184000617072442159373760271406801363646513494603888004653223747617867056929263302180249065649272644953425128690480101904463216851778862340484837303060774442036773481726070218577722614390144706072730872112870009352746236529635566794260873882221762852862809494500969329145365089447328632671701705382492614594948884289627701402946372777108975776532287006810820263679314797707427288572455523513108227323957939364366840955959956527638695414452150762103237157973493357998848872671816642806802487042130539092863840863505920964042518208666256853429063291651389632715758407887505533771332108616636804608841780623775532529862465280765043326698741466534663478456315341879473282981334512995534850232654694036679490338945984233118753616352598763529573478622937183977621602465010964825395495304396555796730859869314072127236408692906053501504781051594581011821365140427051829875796768674878879105767268201995347638157658156907593394774535755060967533557598001197658327671227196602155367277556659557345612542824237985575460596337035450457419680200474772627279798160151989191544784323773107190127147835172933777958152938693140236005735581453208612076795791854375804933111613355348067946094296028833105241096404168358385220584269093467265418210419188142594287162715567605577895929857884674510910271884113204925793649879922692961035342075314317916204387177648081525381800928937151481513462818503572440548857792074501744363312750088390663080207608132009768233893449212273346168353070152293467907741076485379392934281384961871557052960115400455748738945934487675727082915858327210629705999014014459634114359778598338886949916119210437326998139609766099116752670945390488710188811959877516238521145628281081258728069372962145630547731328163423774217269831792238857953271263787075004981998910918217831411588024660945872200772854989576715064487023335387318195484834010782898238623884058796775055631266562418352161774841939837623258102179216080971258265636124166960169621296681267704094235431933364562010429867910391751950765986515211444609777309699857267023987237239723047613636692002784074373551534366955313815404758218352677907265899503561658778273141173227759563748288715533156829668618898979441595820745924391089652997901588933087850115618016771579300838137242884083735477660780103062619226095201303867170143800504760922156387944692808853246417596170640000822718841363013259592597583529259605390232073325303099011230094149217543166752560406077768503146156713110215077181824899994714325405885846454739022792125704657330447229526937912229327755602503347834027015503016785614000463300834617568502957879954922132611737991143603293292975102684844067713958729833267486494309536799588352793760950192568122407337988517750054646965384239961823971320949180967788601672262688560629594050588302471155534261911523845107342797188685398683120130298224910688037217773997240605565794761766441516095466057223334103842133152725065698501963357242625482429068928371167858392474484040857080655446410627488617561700870306249501570934574478108234684695988533455709575719905366088154033018324585297899679293056510919546022835134518293711343462002857452620467351115123645403120267086819310767210995281115648891999376891778027942214108758945961895017478513008312157881433689637401468053957956761421475697031217290790488094281768074252109312193140339967406781691850160010183449718076667375528527766392932052513938368737421934962121286620212297351668480308036773768366875201969874872379649444305396794855029720362398607277480636516690834474342138671622087368970247303537128998715813915395619242471367848374902980901909934935661062037759172022887413359033416490576014154682866031255841159899781583229177225596934442414629895085528407114920757645799720741500611396565708449381271101456746336661429365504306224392688426099884839590233629216863023415363732921881388989878542317793345497233723773273369093052919621616981173797619166598550691644060641832604171343883135760608267860224078957119515392515886693349306422361042536613767739367321012565829621772005790236826552637587716708447138673459265536759379288485962851068767929004181800630362365491739974766210720864714324911951984786169536939687725995420980286158631994251468566789542577750124645344084317133583823601275331346993699203947484617523409399650095048078345999492509069186268941463287074951181351224542142612948150748156039284013002987303832578344649745975844393519947978752092451756429666706053076370517197284031490678329783983944167037317337788639537731457009009782368816761218904353148000254960892223943346276629078736762137530723647631001494332916703662305447360207046879730746577534739313029217465064829179770701279342987094872563235919636290838975915034712901914044074632920255041084690055623877603985420735237985132638752835949325940550735033805423563101031186158555392692965158802566634440793786395776366589464915284890115404721864157302100677559570461308342936385887570120230682010112462924722851156620739253178590394709784480364463657880476610707427284550033074836728190608334496636026710995883533777632752106213384599663471554497548452659676102273406518548485556519615687300025542908614529620902194059906496292854925111909752621602113357748992677231236151888593973783416517611029777763318234890259762366929119230885121041865641765336174419958846303196618569896541858930153917536940772674870760987768390312667905714124213598716849318359161375988613705338617401604938202158054296272499245928592113511358571491229728992954124447819436058780113754658096216585030906339053372716769978133240753315675440240847622840607993642328385823222160168501472013835435439172826032953309599982953258998132751797826645991176365871365564256762339116933969617733797093245291359349361895775713532621745105804676850115645263904944898243398914741647330108854604357490482102860024076341348323642039413369991445965955936408953054807152921533694229946689444869776424041994256800979633707237356952451332188188623548038392559213503819474914011296810673649496119316729381652223198670974076369854501109510667216908170273614083672673776839446039105866889830712344462233353519612192829532599475698910558433743241025675734019588619481812358838736811726226982709232784328524437620811731215611118036268775400626453314159356649579010605988183206086775582130503504499133095890781781827528194860843679891280175996401975798333039824001713897810634253068546504883215726194178789878772993202680063134528276702018938987683381979418609979632372100372066081012434042760424086279738412111480971768240327899206761278116415875180535430663343394421435330234066785708170531210710911271800783813495824836677836772636592700896786950585851512280198517897569925680999267479076182579132345468517864737958040767054818466468484963386460022862885749113439104993299501687745787190133471300812411233033020651854766064261829023910197599052220725508081561660917585170913157803246182069577154828653123368610849069127434610080784935956168337482809544092475397761026510054307272658892252736833968964965262056005457651249637875710817548488819896848502303404991918380524265922053424672346833942681347226168784117514009264768882273216551242307739494735305496029171074675594606389358960200381330715351485237710254226842786271417736990905399388563213654739748176098107811744900947458617780980997104281453104669131395290543969134039420918949007978850478483359900522633541470590258116281200753358494244068006493184553048573733817861051214037955323091671920300463422170035555058724653164051109263332912361769861479632255673787842930343385853529379552890231528601275773448237443732494402092515803767041402558222112117451303958400958381454502551189250447978850814825958723044430360165239506036831302108511086562236461832934345260800116937369380197923516960443671041069731868934132534087099082018816726944156188515995645773448451636372684471234539404649115775649697455908718148930987097823485163693296009819278317256660667087513704147790764948949868121386358234264248981925047530331649073436672096224382884659482272955022010701163429435987184728527484006309767279352709460141190423485697000553063042311205376757350356150239603634693634443289455633987630186209622112098742728423470237441328009723185328632201847586710508470264132600619104838593537726691244860469828369737103922324471619260332067353114280244474823834812491410331030840267042617564369059398592663071719503436062671961046365579626310453849409836759915454106302713182646491723699000779779810357180142356507541191190537510792700908098788057284770391893938682612245969996844573715363964329389794320741804768205510478923242822403278837163235470093834187252852167415077400272661250341600873040632237358143273936211241498765029314611332806120616327980590932318578749226915981983449510670199923561376813784644872700485738720586153986980880172597579029094255453632085937715678969253467177360595619242614373663994058904631253663582883840646398921775193882026559451335668802018847134878268735043240502261925324618569471405623500251840991219636465739222714215525728153018193596643045959641753086089775248219272953893891649393303067142604801630872717692966933173751804717239069938818346632949329840578438751428864296196192509925810393860390330713546118305534253563306454433683684922305724423807118775505044427759636519878429711910892037458709602579621570984751827180781715475722102015513733813293896219561865514872387737851345693596980230231132351558122265600703951889627651873979091078278431456102277268738690399977073818126970413438005378321916125487256473985903297313914602763968249956048450628743681049173975037837315885240652119982146166357797824899019279999991457041855814165431655832576946333328183308610363928325292740517487662926597749387671623527641524241316553458653227995762288985954300962066374075513826362427033922809582987828428684486133476447632762579180720347400334640774195736788429694550481751225985045903534871929199765136556388335376345003626440488754755083524254662726895316214399224182562043844234554897439487423826481443396693673856542177911075085697462001319943841336373103210777500570825264998939480934825740087569462495562008284409048612733737372224912929964907693449066640065106549273571392294565468135784946745714053260339618810387887860578718121169214568802798208939755527852878182293816918708903792442425115474798112609356063985387701038371597682735013507179355422285684017382076043168866937422252101035903498047950907782481545634478387412967817182723125471147647225922968174643644247445041667278784690254766249122565524440021180128887640365891483269348684507313608461206379076765542039621260873554148757093405046420779284065935593190446612028932378517132623849325291022573623956167047282341779407380911094050612314356567111950201386304833496453750142943894616487302596795173669972913390280469995465953136123445060952588454123327130734711825683754693210020350546355611545775198687407908874055327350268454317591273849770592014648537439703808452728348765005175959775615328531734488023193914921236298271439894985772157088323576037075773692741565565418954651209276707862407684709559489318031628895948011923677851324323590655811452195664365660325748469851329562170693115396164974088536030352682720771878594006217508711905231321347204743757431010673162320481576474905223247542779183831843027643343964858979537821069861265656827497000096265137512639900635637346343185010347492385668674816057882447878514300120208878085595156685745576752964540819883716704522653935444443689068004333716064262544583098374899311203482734245336196973998030902026775244430610948502635676070837650971172911818665058619945625306166734088641234460090795106094375589054796216376256323437571245605786483345416908230278759155922879401347416785879084340400816595504930781007915087299269848558117917306361121555441851933683676326559769660239571723691600669160581666967583317601488899358420911616188299442603448512655616898008108821057624441287699342094570150083455538587589848458255922423174013962799954551020102398208650140023804488979265830414688560224714894042705981514142276706831312599061553022810211820657395294864621150039679075232984105479619152263896775376231118568989555444474599031733352948061344166261096112364159476844516896075440036866137921812865498394096352201522380527630354604498198268819834312000689806343095127640285853843851080764802524696727952988870864877631481157322283519019777630753003665229461180240298418204633709656412337071721251047497936471481692971796952222952126693634358463580695160411617059605121712616764991162990239850942823791996574036744658633419710060383946129255661328063609086251690821128811670059931062646530034563304735620990359194297878043010431119663799527112957166117233000068502981306692642034524947934095633078830359220606539813171196769281608569399704132875248608641152262138404564055129175413257938591907634679617683112715081997483166540089969470185327534707735020409902294249411838945402280822734237806814766588888855362211765191750794382298123146443837899062906153241227842569598155872202988979769276446489997911834117327142886431661427187111726904895891853618655893347932785932129137209780997476818631643403613983665277431870572992988931290059951312047587595502116301924799086520572357053913614543237211054986146947958445808151685315994474159835705208149330759827357487041493863741878053211211773550563865854624392296979301320154715982092275661244153006257167379266705997996964512746577505159545359648697378952861015386237532152562183191260361431016564441841098186009788045146075790136821076032679637540060726081045113669569976022078061447467581337263612010269243425989886484912648050233715035299325991365711561878837011596823277569003299742506227221551911663092655421791042963683208053465384432477598093939692484797734450723106466871261476824847496220073700854024247564580539671789487660118125330105840457281999661165982221914319106781474380302574130662108758569573289169584572520957204550782996896734610028863556128745744661850090337191622091762224644131145480432213829365105693900078618276824943896858633763365771370429507190075161877742508564026469519737208161201993736783768447276507474311405024304490362675790743899374161924965615173719814778619469356556558630036615885792164224095089046611301085575120570681369595393957134716222524475916344167963331305887271947998658939532279914734118933384538712826676921992033289555516626635824629890496232529301649863261878957531903093340021045183923293092423866657645203722341058784575143977435115541643024159499006640428910280867944377880342291637945309341801804591681205281269232862112427942771386304251478913334000075666713461536173468525431227625666888729183311102446101521135533619249015631706469370807054987018554350247540055121673620422330658578074275746723662350282514014341588184366095462641559917927858232394238568534939781082142529528914866768465870942462378318005227734824410616669334973910973661800795947032000249023346779601957137064092926952265472104737896557177720150827421461024840487582789105179594233282517386029553327473165468073966302951146026323473920629409060855926831823069812038797629743612037595233800861072542027907251727274899935722257908569467155750503020990986848281704972301427517230031381431560303151120228339949056762597393078006264083849510327396829672715271956618238689829420863892099584698332830748762099117820733177576983663062176264590901714402515307161023031995586349228611236877844312502602871109610866019193546356002264949781501188582904333632708898324038993524798725986353836988651791790393627524058579726708790836973343680411857850998688247781722298228055433440823583176399010486640849297326225330439696102555933004085868526856746940562240593790305592413974300000422276420649917547716238606722096010903839298343126710279947341681248345121507947397597562332176367837237000505687381422828179525666739866310479373740220901190153698511068373971125501257042054987525354933259831491034601748775237205213850986402839085771672575629531130782118919392185246521215963579935494556534062630901465532140979662527965957872210521736156497371669580730153582970894954658015022017718828688943151028665411721138897154443400776385495572564395915356009498786929058316761828528944557657448420804763845493276336164606965770477662734326921295122423262251041399298089804766917972926243232586362481408754521449064998363987446587195300577268498974954807714505128072467972315499065905773830909826790431912837935817100418441470010260169929280222269680037436175260833324530181250297152473733095799136438054048950183854961725438435502267830929431587490717855897657843790292672115981612864331753827096208477447470679240775966275569563068537069248320367332709831449063038801445268361151324299586179860029656452797907452661105895621433189196816983955244764652655244666860125443555238193739843332082861292143198483103638622560183880002718816359916862891254714237284365061512948084483687717286600813323982749687140133670042809896967556669315693159309870330346559265636206853961994804227924701909312011467105674417165648167285648188966225910993654523712981298251637658933063848420207058578464447367554842266340398670023950010483980523368790833690170385341170168335592217585172524170908949174569765341347414227301560654765152781137620394167212876067475686117665849683674433702259988715323396801479053054205988136220038260862606057515219484408337331985441678119783395170119571811790868080923949083294105959785308567996389721055782768666291875487672785065227170325593617579486658280909485602366561832354448168427392425232667064282657824906265655428353059920932032241198557766668961452572775560870038056772661703320361179493317109390274918469329112488904616129246693494938309581109576783168991924122672979306556750607885892984152703527099013340919845566175745799657826348302911538175789635395707915809078282624598027819054130637492454075319495127754633289031620704516663439678260982382608377249944693602880303889316805210915749838789227065744801843054310192569333675880360289191384065041831287174966683426025922531678164420687808672542690707151491758853007676547774365663010558646263326499214365028080062063480564454904139955482347656220432403639973262797110265286550527433481578418133698210585650451393615386701430197454849550047568494662605871282809223724659894253169680585877195313551479539619713330364010805899676768609497097361524789643930516543390080868603510965380573431194525259331340400547290296004751650862987446292531382750030987769909015617477074194584789913429778694301789144761144560138687171988030291044460961550227620822308055146847744773736898776604615665879025776588895507014733341396888159030957694361072938108264811302394280038475290581899312205150181324460330069891549152514936227946078042240240839653910422554805852331253166017138770265127068482433004547362042840187983566143401031211692200101937300156117698795615082719774615977902114999745606264366802686687580820344691120979139414292886654747641198939269767118384240383304137563265177537994412989554345931998667145304245440891771110605038161022198535385846629507252869149999844725368744832183867642114170229809042619066348222102993632904548977144925587333171592059999511831129308050665232364499063067288840218666174176907227886377741882815595962479893519936214553293375775978473582872862743986920439240674418344776634168279066717421990527531475493084708453352737166212295905739095177416825737680821957408353992813973472288214932475677007572986136144791261947427579048916710863189564913886769254437955525004610889828562000184734232560237121999609754971426813457564746932754303095086396169763030496533993061872648428530162575469421925303535906227691084204243690233041240858724763311738228579979541121761871027829756316321362688383264016525667472909869186598458761040580698561008969315582100081059036978858971116721864722579454018355995585497322089815743843968108085893177685267725207544105336339106973581377035020965804073795342661929695522484365246530160400084017340985696289563666278152933400786487565528416423946620783594961928903366675799810159999027069949435052786606755859084042699933282843213154506649189801921202073050698422229831961950040847008998248757039889864580344464409188180290904618779330642687151004671729132758646202064373666613598384827404477973402737880705431148860450634767368188032417785291323601640673034075830294060604255833490314088340380182433502820868143810451515211615931705910158584391398595547444956539525188329683926879303061256417905013693975517357105695976113491484846482645980471908887534335410256769495858571778484896293110795843144531220497544973250180090325618348141738911100039728023156675486869198154042492416284219611153000651969224636940889940302432966719526746005602485274451947016515586682865364673203079659857765981321863788055024729973192801906530733723891747432870152841048136344184151932299638490428122101763614660179916309190716623004423479918549577742277704286569113067411170760160658238802714373690365707793082365891245156182225475392807012053002659322492685498515371453578127242388755624697290207248964048454343791846004143876729025024123177946185464095118145065646983833006618551714721471210368668481944969410728890032063164910976689668104113560247181995538827563825289773850843695054835304404797778119676119501506848225903809757917823117387718578254469971644095191483836485018503624871233090777459936272845353659216358595598901530036291757109875477661574368836841275485549533423191932584988423540032413725172564148393153498203272500107672643360451664692980838178209257880897892942889141956098851710027808934052577654708748921653476825398847134494660750637347668543748234530320788847712649478714720909870538800058487146847524293626095219534098453307914016866552039989363958196878211803794016821932246982856056973223708692455831640757398054513114609423648862696875069584689477964501303963140021688456429372994963573028957238748897802722113529765276233312856143954872975467580089409532611403596796217695029286981466799839358896174588023682313729820387298851658700781955031899380252838165842564179637355447172993089494198610153829527845650814175044124241208100183867311418958144326883532047066483160012399310826545066266503830363196982438868295199785434890479818006730902895392568634028480284339790033334501709910285060553515698734614914474194915738215257810082224258102645550648088366407922181700424982999592838886244747397788538402533412494550212739040450684074994595926873592132964659497101991432799183311458836697414049650987682859736339341993574440477599659848152982297136945168314675900071426844578334902062935610806142729208050405830565593402574185415305890873566597374325094548140122419023111943322565038925950763978300945660273772071853603155614935842434191543586471570769516034685630731219378101907696137822298655639900466886319322558982309508294709945657866376512086134541748133222033925188078259555303963992326551000979952730617610305662369776880311862659546021409763244424344038549769137205680608123694486479570950465700563182503774832877122427140213387806884576495552194508211134012906573219119362209346508458303037405877103688903980363768775810950137939839377744976776473471044115010351141110993218110456002630279885210978469938617104558051943724180353875452357725023990987320979695064460720151010246981547968195114316231958220975472803151360407688529907408106395195381334481103262168518363976325734030233800849667205411405561023466247486932873901881967968442848634273061994303450539573338695318082507745396188537636217706185011748078966658579879641483263794928775634998100089747205600890836695663837323357096955753210477520151296877661696280988053700622942012086102596281172880205012918961622725748313199331329942278820894573026811270416107931387634248710003722003824333342901454745341936165196042004520555566701041218637319811273706812103401393554028045686106875597761745908716455805969379860086254653160490669287960986614464095245613010066163755834225626852633209251792387929692193584588655746507095978772613229473380664202296809915492976984995439664644164961049493743523787022268058598104503849200018596262673278279879402849572070559321120183702691500807755453974374044314423664335523186475631546840322733793586026846151345288740573975609549247255703126743375824562399667106312383947117561091177312265232659388249585100536422989545059583613085860964493320357057578272057477353245312691188382210510645159420265264990522845393173204631646864883219634513046924095712655212500218057267878195898022705917117322996347005517437148932015349409145078154713974531578926818946636543415568678342024477549392139798539659912548681387477663609121346896468761146418257178607388986337641403344957811180346592519308696042135943299602822389089331670528077818790238506615382088275862009175127660618508683860685470224262801026707889681559025838736628406628379064641437912650502586781770441726947498338525837778401426293904095372168781594820429062301908310881440543048525163789091259975374513947184687289453856429874843733908086191332811887845786088185876777423637222958880423165777863980883437686553543802751594721484906291312421481633314189714286598355452116356699394063604226465144752486838879851211765720612738219971814820151796488459543308003746821103823418613750496148840545694239277832871123065809355779883081057414910891781427042489117008126648548770506860624348786446739678407071824347170335409683927491089407603392213166552113633033100777887087175154329390171866947073823187530858711762522068905398334737115030711963811815848733220778670198603294853507823562189947402683601263824943314080302635009911581342311236647045780641674007285897326018268264780517053564963156390491954567797643220854741567610495001091915817114732343847936514565787573403457308327186424537831617391362521512829845955775116004422173327157200423387836159897387392141875824465167241653365880676671728898600438897385459393289464471227311667795709813894270442867032841156012501862389998936563992380483494813296292961849459966352970684366344671912425295956774468903563678769155469908140456002657138936679118214649570929975695335289472238094289637690296472418071150960147570151196220032282126852936632653299812027734229032112206924912955549524722750986387071349809884834920724052800572036553573310891040398126775853616980975274763028558528715182452140183653093114405155205828709448233428125555335742004328393221553647559376272678254993162056394781565232940618724762571131916853243308935743791491074813785764517920457116896556573785060675391454858396798083894169177840998855997725703648759932859455751586281609133123519160151628525113872515159767291472128189352703101484516304460039950166749634537579443599508656622768038784565022331852545155715277849307104231634651963617777277879327064788706098561693253916725433367992766596779717728460456585948656355805965233756479217634727347616744330300505085562340002339070734849547577271328085059087705682786878430705089837524871111618602931604882061029253630234911535200950400058717806474469371572034555836639279031851636582638445462809569690262884000944613220714288238675624287734369623414118661922563537037511125097014404199888124465747134874272055800501318665518700112290521006952091375904302977704328873039404338822120178452569263966766590391061719676570754991685888969540782788297449169173600698680154314726048156699019968869984050190543727503832097504112019871188797723430438713811996512952368793754919979999491034771918663415774814706646103194699358413477942524008900173855622266091982418412082029662113164454812887286387500150548876895875437871091295014659761340985424332329785385761701065863750940654949099501797505933449850384530422273153067017805582074720781974678284323280916403779175184125561158267661286795407062993404332582238959402100752197672780546030905265063243375973464741389699742766532840398688635692338334695740133473768517838392168463432693793625056095775275422371892961692255879143023417680142135146748044260138647786736572581169554908028739537588805549508375152356868162300035468833134845665448521477428721902257234077557417501831329298242977152896248613385210707029276003459706234898596564138368770330359606484198548874473666430212582441432677094432984814328604852812529551142096859556510403671353707570781206381694635971799193569956680025346939669666088940152655615736832433252971147426859959939138041460967541473756037250432853376174865973111964589310178723260751191259157012861459609756311410284241503206122236224070094575717870657676336158675312327725163436277558642046776919158407445264306232797691969065027051829642582826430393519501192847626975549520704478016792026159320732543393208934570383217315377389039002099166994348096949371586512265967920362363833135103946273482599522417183815686365299844428407174528302112411497500695417077048308119093935838693788386798807896698336616916668279693587421155391609307894898080133720823978344939891070943125199252474226666411187711485608957475246527832629060738272725149673910506181588010030135866135395800175707381873895113443924105172540194880685507227695963543623361803374644453068371774192528482406199268266827112038721199958535803173783114053973541045203769940685953484179028637278238526370132868084923929616549552194738469554937312338708198598794539348998127077276589968530347631470038359790596859554860952404958337227857555950683964265221689563214372636055190530341362633550704060359886173015899800360143432040973797319334624471805488383820001003771099478084742414087183471551277685412015731938070449582524901917393539147638419435582507976920692880350402225679323406319963028765444182781247188217416626875586655416560432946535126327940664976858278622149524899957348819596455139308133920056968630407393895669255243939365197940185998864912315561265892002926222597569448441248777186302666876110306005151076413456274181387427498082379598599509879267710473116562058874559134421695087542223586183348915789736450587737855842560667954489990225241551848786701734278123108832923550410285855093783675566679198515617988795667244746875582514260672469484987512532197584665119959167833144985789884585417101091537469666967564043213939483206824759943214892016058672456038156377601599059066750663215768421719144325811478962862299033662267007848057589897409007169962922110467961593922801155520030381858742802715842365612550558105904772114989411448004054568024644208751369460061623471171364303462433313620410698494588255581758460464554987600924022200253767057814884975259742517378012383309741280652000146351219548887023543778015132439254275004216421433972177418669705359837710112218371235906082123005393289785687073753003096414339428394022508328072641568181961121923947625703995559354637894291951659012825528556896060946116482990841720211572222383918951433782273218225310296213923842219534107411864495748525765843371679522321686662635808159965730121741539638083215922327013017769390767213537893608031337427677622176518345486379600643945264616059095245336858410174620263412049648577538207628665719310748820158552447602188365437368335488912237356345321126258131024578637422349705208014268391000627570418168793923437569082568694124269925458992794557657263363772945115343602783631730674447701924046721982434508769969651800545708012653338693457991672089858786568880341428637818300404803480508677604804232383778920022373460351751969981117167554063547189204986204920352458343199122584466111683277736755089410719779599892077531140261786834701269854158497068617782924705318487301848004296536423527900031387226925738975450576166927593129273643096911741937695845469431459367406905306579547765987465143942941592973465994793331184899316828338942352556287188882936477533578726181811502407278455713237568829457803980053191447140272124707822792377698445896403308096323292149727823634470286786811428404371784979511579891710906958759492280385258544620358550543062502979791266281933852041589065745337390612671440003683843259280513234735406205546972296187000309864974265182246375037973034388505759983845846729190176459714821613583774009174764484129923291884298551631318071726815148541734675124539805933114001255647680393523364074670589827914513369207597936421969709080120770391854587366004909257115017205621903633740111153522280694194054124475395129056324394305738526252275345533982224962345433795769372243261269008730600742631372027052673149096875362741927076194479735828510416156583630168329919172876740031496585584180109022801089945244504573614525363391771261189842080870522890951190885167520234975194759221447754545106910614504917757931523051773184434101945354739980120372905258447384665052119579404877327581758816702853746191295014404699063481224709170842895098994667234841527068528497371085544405652310901607023343980025548657702485471803394710112639796933429450563803032153616297963504305731111413825834739320066189685662070100365168968891296380835396367333726937608691637897284425258909824080102639993896456112023150314876767364490504636135859556021110926581581426856637623508520538075773672982085774871993243709170189342303679694034310186733797139984237045328055590599272912423343750475034719249519025575272332873856894562272303333861060065332467576734135897163704875051336141534611961679022923759205301394844777002552603443612828439708488218951686669959632446923556812477187510668376085579431236476220738348704046659662063225152886596818717661783605229321346375779443806419918566932614057876077710227514713100717672434101193919881874329517497479113723071002376476341577374269983284932637369134850756766819231377118578437703519713171033457376945958501234398447545134425573881277047077394219755327786855498193739002315459810193085854671544192719622096319240622746888078358610312462405970023692106941233390250948002237308310688272027674614861833569334397196643081820689481803019150570869969000191784755590862442093875462574825625522993930595151699965428450330317483414090943786579460020201121596179456730782600142147301760873649225722094858514743059903633796658034215116206105663748968144526937834047004736618863228154827672166839413462487279900398377523889570935957216809157562078338548821619851209136195818224017363364754080074038121525144986418233593308541623813781964844545715908088735843860984007619749591149493355913226609543233024033581732817926994651450555120532028845844079334081338079220209266107940967624783941458832801366822802776773978838245259145278741885260699831634291158732090789599594350584529551559440270275479896376423098653159182060383849273271548935101144148545917813861967622867339885800548857145355846816979410809573076251257576082494623812518879560344277634085164337637244104745465457630839467436731873463071218439598016234775483367420899505873338894728350368653318946634191724233422969979187698339150508912967469177539602022212804795540525319251567566506498277706307726132664801285396241384448804257979148209585353058804465370175774236441464573931122072375382983593717173832292813589855334698007643337364606268397166174807997544315840805526272663615159580203095911414146730126320585423431262100545808895059669973921770171925868477462972116252869029447728130670704094982535904620814541131839573260474147696503970680060578043515180551071692389872471306353123936366738547954745976863262183681864069612484940163034144936030058460444741587265598350502019531006791651760742017801843854906769446828384245029902441396607869505254236748783713152224173795871779603811219394570015971655027732968064567435325958447264641928851902166676342796925595933057447596717639835027435555880637055919535519743926564566161559539944896432042691328978263152362194671804175758558982438083497967906964677755668327239791557024546628662226141878566095228918737058821740106728300296683409640896389872909303120787636723314389926635702623231380399802901363419194606158607033364707856617201515111654142528684074578609897683136123663372154844136581246140062346235416896206746287136498175135560379486525787257299168426566798054456073076201160445067995195868176726651817361325164192894703204014162366257508857819552879396776558242059027400043113739949949830471732576117986096117016930297849428635645292634744864881099280170707040702125685350524412908332700625735010880378522728857364038728323140666938742315581217432947321176107041596294874018418711153492388778039937809692028044318659087872649784321216394098541605038607228929127700424982983855310071251479627223390829881543406788794886967558323005427399748060875762077758488765662269066615495479302216664343009484355842768394583914139772846382338980458504128832588521321003993593958800757334219202774904673083108139294183130358574385524662180104121841633215072209268365386922432111411381051278398660953792009098882723810798745010863982900256551002931325747171098408936749547170135193096130317873975893595395905672637810259422171493891025352502828344045149613093248361453017495954099436301568481644213019305734147184859045310142802236074317728211313589413251007154843992495977054181936292486931584875930965511055788413871827679585951258417367062457688206203505975797245666159797161722750447797611720481400071032007795989937173091305268995584425865601209759421226463407375729030068935045730790324451714069326871446899822632245399848115722024309251761822941722624539357741755790358531047472532635913179532396382184745871565049266250958375767775343583910770515203459977169287039825797482245871922594510319802207751983330399189724091154113076107595513972698664680493314994845897245467469318295795074691361250836741225777467596429515918151684960585711452526373901753688086236226325222980313810860862066611897794696372897634259918705530289030978735592053691235883436001117813078315365819830087173740935991210465568649536984243676019236594896125076577078082587100127704150439601617548682413344381240219359709056190194419130425019903349736331785539806997351037706409352552052868027260855524309013084695802415145164870532671424062865747612738336293526231987386811490180300119126337810335971049484034994709416503664345496472078714380413844522462396988670046380293222039953867399739950561931013556425854754052396250896744681040518001919273090992094076131167965204916758979279548942624816147082271751554584984759468491730111395093091356726121024596701394967428855073049175027131282503089407530240940886578987657855881162843309643682747892025441589487070098733771033259144605570889938616533349402114931309633252766813505123466791318299713659872192260126625984621858961083292561802227861474026929494259515210372608165217907755939478599744747289174205033342647786916028067814077191782677976507421746651275267639760267104600937973694458196696406565014274530688495862674488854329605964310307937765253017398244711750473879604395508637444588779422718481121133067005397981451239572237814352158990161723470320213768741779263410968844818089727989132892378238159893594539299381949615580189770126176408653624059116576725993144898626596049667581889597594850973530543193526196263145926571931803303905836855168728367457495709664486384797205041387482356747684969956524353296628773680957111222509409633209209502971137138383171407439403344740083966647287955068611335728318688032542967864119047869072335165614167637598868643096635352209474346903938421915163427683261646873095250051482102015150864547420084485881375117658812508696510978635166678400636465888047908007158361754762652993213174649792428720885015822988241661479290534108641043019480661371277991287672715296711721411076385933346179062127334284481377331866068137610930257839443860399481519837295318511833764876804257660889814303406228046420768728709405358308098899731980222455909599797057619632591334008252750390307188082032812724493658488207137228735911750840550507569718910129156280617961840381479624966454334212981862418909584915383680790198983998495008323772671717981894190816941432896820693307469257806318224924759983425375485191289749711276762890154553136171352210984108236946697033896726746911214959520060364117471470520756829656769013280888172576942501624572510554582352230578946740121452553005242149845805576916329134515012309206200717122848760749244987582977341710014866963939342789698059757273284046281754368449190313406251819448273663026504356849671748415999325991980404883856558526553650347584783140405399171421459533487848368227237256624300849759260550662928249403932685133073268947361807565556024055201122303390366712092782943175331409969107901859743895498954171907577780790103283207529792776523141384456284163670698814169531706849194076441301022567754830569745476556195962092394300159952391464789070615739868895540874864974079113261446397722319535942307033932543661078647511383778697934789630412842114487725755911249821975991722767825563577266544074116580691947806135891931912218560176687060026116804646714225478326786176370927987439749110131425328691532089603665269710917581014935827992037422966675517416574400724817663920368800785414070551465405454552691221931880866742703501884348581746693617061883050472482253670705522856755731001312520410626967455292585417694422556956595427049245622297407398774453168779092644086500167061409494395184522365853354558004566329368321807669161902461115608937316425370257231844999965711895268829512651145208466554809794981650467441390219728623991438182493105302402668237441361126124231258940446177946157666264898883443933069037560732111900277049337468451193026014546632543467482377555253840985248386708753549101780143745443170112759081050334085496201246421128950537995131299047563121491695395109133363741633526129779714749251141360692007828019753230634552371507140684128847131750208085689174959622864370256122334298253298324713924387264183831378187950963252397581421450996714665640843235613570632622750301149272735557124208127812700025659149732279993677124889945411571659756488954117689684589770482235390452034402522905366951270477840175789304567516779569515163399832217805408948380864845810761078820845930239668811192654901627461150288021893296001708050114216137552790456183505177164986905535136166808368419634254218178848895420799237031325158011349558577409812568207462024478191786953902667330745723631453958402331288045742909635491187283348383047600972884861468717806974980718368602461655636777702283871533473397537026916532314322928080273507826173974111545613128636951734590847542182572436026216226438435338812013088980499669977083377553633619838611886115204017187521283356454859466888730174857790596318996746580870390786018250779972063527682709267592736427322793800469848103777057774392640263843212474344273252214710396834470097022847034993888023047279132448806717692632148103821346030937843664964683707263979206234202425630734068029554610169459840518114581614455143619289227219506050298084916077756637350869304137883975383684306919321262827223340009579874251588166757598695288327041739743946304492884351485007071304740400602225500602042048347015536294200425369159732585771004701221746604573754086982034306348560762294849953144649413346691243058701217343227348855167772515530061103179776874860922488894686754232812501857181795853240378334962261874824681196028484478313881466665618694601142751730288022050043038074975647575758589161912599942143750116705453574792846238687051771621080464576977655142110821501504632066848844592469284809816738537307176611838545727636066394341552766281080013336833796910723138662992641623710854550464879953491697434626700988503792162963034266335440344749290474780126226205674091127948265751537722007014022081668705181788307093898022916172318933724071833491918314829443101676090980081609285122217729506831747990942672953446074101753559021152550303821010149412214309393299496874050588158239911866316426165068408474706703309600597900454945235818878673967884360722849483622904077339657102271478860886202298528576633989182484361208138066153344909137676291429518685250143885542926083656329527329786805868307647591011688457264504789792824482749823532947352666483241982556580528940475431774056479164563800695185963158864924804160867554923336598423428235745763530030683112687357486630545918059909830187685180967261740308631879612482107719868075301869305572126945301971787578806231013113951522046384408200001168244472785454366755968270830145577309409167290684030712668308492506891743872594636322858749183703282077806988186927471014643545236560376703204909177314612784188414445230006148971228725527706214099032098800005175114166925430314897426738665625292181292260077778040870922163591961422538207818332303300601715201434129115697738759019542322721106153348934159230323463271877815711748083345543868168741522763193488238893524033967224166718332281726786917726904773051732760385606541990843779560754950497527571887988819693036147594284438035250014110265826528353198818657316384417465087876056907802811070292049580008460524650670427609447844644431939722167770000086867849186522364085458068580480872795230097863302064129714630116137472341665006118568041208157106855128184219429914534653132284857346419163487162177692744472144495161793960193317856050542039079229815945254303597616234853330485945597454294439093013210152044920073704364224239911506538090231893609053881446469559578748652256491300467484265705433392088245499742527560674753732986670711062481065671177583683005885485371391337263780551453515121303657912095404691985572470026742623521613700073132440281253869130499421424231987948361659138229971173712606832675868892512580073390933207163927476502035338802428150640304465844755652249473095400102006476474301852576477543763891329503929363258672760553905849481852538021471347765522910493930136526739229812685409594127494003794316407877935951981141518571024080716695752400877318706393092184514052555195425246495607375753978611202800792425710768806782095464049740888362863024445401901945084577857193205142403918738948569767644494346855261354292543050252984908066073550048383603238289226345616787597041583066085371784754467859361209645274173863208899539934899203819218783361358144771785791092950974524788310299665494681239128948511393024875683740295675157481671057363147408282419923478012157356688865139758243118794872256040495075791408466295982849403802410291740343660793049017827148916195648766536823653249590671772417330951575928323567775392649578944363996456003518783459959319425336722055270611370045184961485122122183344873535542451066026341541341938534704439838490142769097268837923982416901340432472141734999495904101163511204701224764526994397653909613000709577126728932093078055346855384376500893536723820763570849081740343147549321421601397824161209207604716529862889875809247412812157671618623043941046159795088529590970411739197732771464283223255622379256635713765489544941259514084409082165350023872741059165262482370216828245873091778476657648380705634993464661956963488813084530838326691686703252356893218830749681208556577535268440907573067728224762043565313994956042281378678933203201821523710339744885919616489069110132038106763831124376858242439649744685118658927086597360466556742912030832478915436324582733173095654573630774171234793076216153744281816032865301391942512865575029260864029608900631980085963790154613000849170339685442465278249176697352315853147472011094159516228961666988376131582423563287070438246270905696625167520534022976844374207332241245386563563453104356745535279326342188689886879327549994908931326327666127819288260999278449413932609441164086633383835280021889834681968958031560126074110499005066180035190049945722592105753671001139728537975319091206949951961403811781734971137279347022300241385354009537126279086860249067915043488248959480628519755903163284540852373555979925674423719075740083972425119212399391664920262882816617654748836155612771798422037523070764740308052619913067900794797206784028985432217403049716447328097975981510019807764641168033659372425023816366290822723170129192088020381694607651189286265725342774906217622704954842130957307582569005173475388871777014944241196042451602896318634848168281156781295444231229611930165863783386632743713544353380091855793010197160562918557506420185638453813174645233431136015372384645951884536755997927605164732501226638455894035477011907244169687512809602513274488719790848822310160514078360725153523047015023057967324129365173335814358735078267092446641992287904015632922327152941732177496169933080417578755329637393586991240142192186038547895881645659900312421943816782405645879418217956803243612136713420116482522475411835256404851604067235396335628728552887250077200046271834513587181890807617422558537508943049347254262118722388033462033063415021219646932976359998029934475402683970451765780161097219883448938714657639097972878272145207872446885455901317809818115890215702629568889870437624591996822023040119654020155654350306939572976336795393189439557647471750880036004408719799643815120438425171254581659645388153160441134992925350586772247422849559515080586878269424072802250008341115605581159820619444776195101347622550653930245901149035000522448383967152077622274375719522824362391698160671449977342454451174728934911710470441356807657917713905207005806538115138614894814129802892971358325221177202339002806712065012045067760269531812672457319814596825988568854657427946057786720383016213339489599781312142961395174623602773510375364434975253976125304435900935132864472196882700028706994356865889833806146484392692239024119161438407822110794046474554908510769568350838735419742429643464758997331432741264987401946943809601600678460876016468831095588557342296411329343300681222714809170117848199942402053210552721147851249692411292251510199138868143041479420398872907152147143015279290647560585135471869798383991095642284460175915737960322721379196309293773643960794603005589309784040253161562975540803012393468250910288087563996725391108119196229632059402094077214943660084949761491461989244532802203700301108501732668047877902042013875531217506204174774039472853203941563322514921381224179822845918839355162821725834082135790957317368591220479839285439206849215193888926572278725246909496244678593754201529836255543640456544263606377551111193034952295686041056201897834953202587995196729814995432610206241793425674070690099572071570476781436690439089337270876176249984798282634630913439463725278028355772258212781867233534710189934733722017890459309538301395586802494127256044480620950053737536270529781540095307812792747598799432447277427242502443704550860660094694235127082240782023851790200993402703749679512464703893430535158713817138920593160396654464912775899256485959386261786581642980715184737435385893011059623176761242292049516175290033887627843805545147707993227343553264357310821378048750224005731143963917120236370716756242780174736085456955189959557228846073146975919106871826939661405634960153364648609266202521805285894897037055577595985101610955192270291598050772665108578708376857174084840981168605276763528231747256747622967629682091633066809944702316715223086458946765950486447392716631516083111302204298136190069299573149087846758011672744745654286243929918877991897174966300189105878115876749411549413616523480110491511582885466823302804951990572460739248290398514324089953881996405781606532971424702088195312078057964126631151998665234369771405990788782257220782714459180750257982039180558123143611975691898950563717820908866186150815542030487596660519207970589417765834633471496030370191184471690557694177540720119929546415396723443307390434382360605596973703151907996695922448040472409432274945015529319735565478348600147516992992620882756629904413129200478441200901599977741727720970487412731046609296507450684137288703748939604079146702414912270378790355204825011644175233253945083949913397813060671470460421037313108024625017294144524526222890699740090804518225552992591371203691189454021692828172870730033722909995633348748215946283151713972197226473209191061274671249606122897858996203829192058077955966740797781324370292467943676567159085293105345895882895164901087440531014420291956075603415211480035081151674139101784836655242776309592966642121844485248236146089126682411845241938329383302866801471798870612376893727286260835957190743636139348602661572186112118018496515325330398800197012794653403318581460218669968006835348596698958965076368195233801031490981360186798155988636819787369443576016503858792679760411039803745350566534083631433738888046158478088305931988208095029257258646671275331921726898647680325211685960079824167008578413445463710547052012351402572224718317425409842327959945234218995254083055307404310374542508051347207276344418601666224072410004359301586684845712767470974220729112325656324627340794881022286027546912879234751925004368963215797490837951026027072292595338769137289344131420081207385767799263782407122247161597438973073453519825694705512932262610188749459666168194716420311787746096640276712221501535312557924862863504758774702184093692252370087917246861323880113700074970032987513252553176282548687190957770038529977563798219249665592268301330686325058554071438850474453595917749506965555300297492904588417822366678695242237790022984511735197234503844932871441537671037264788387698516015470318847954264525744301160326233953623151625157528226974907093794403593833747901478021299066099445382067917464337503079020675395185154900156323614238369458936591502869243799466035124877059569624310965743440527194254213268046509063270691180196861684661246167939118437208085830699041854605175983853119075870336039607390414790000292064484256878179686716902527133503343460389891215120531977235904877599426804222647641543562816223588224987499564231034609768424920861263063214308941399477286404939305874497316976910916156132823863383298109383248881498194935345942903029170959401132673702951167789443448561491266371456636495016944494288722069786023978956264583900638951721700844918535923023338451208062568893560997215196685680156545075218127584241910263409239321719542223493824012894008044743222454971256912275934495597215539283652586148287495800423465891437271809896058268547509091505622317514841933036040290589622081610632615187386010278690687463358651446326052584475230350667226066553227069535811451395963065824493552962802840001485534937097189007412650225478375978045233346954459149633962538701014950993013753521532843730748016402305400909989758928472200227396949277004338839409505657296429267164081182662750670741532361803263397133107415551527579401384999807556691323006332182460018295745881652968026991614881438790448910640733914455688236000863846075209656534344174168219657818880697215312053721630928866622520761874899680905100212611674275677006240165751530714778075039948133518159711078732692225997122587556774747827879676564124674626238357459446753616967151183280031296433108121031030175901862296209462072363638893909375506928197082191021084797403094781291483535223018815122938462051302499505645808296158342618324878065321657424462811193101334537412797019895485052252725477421109181390267293320113214369651715151790345297876641527730425828106249544772550795725412788807912840472092508120545216630383599590680598449634821450177578097216337032657915301207497174114570433766363053819028106758454495889604962125547389819799531773481105835295258013623160513782047736213213652884601466445832343500277314393936566778885745409915423553833252910108855189107345435287363248984901041389403060690521319107039234370662448502520510586928526824229597172522875785245866060766728192836330183588995132689673482184909213700508500670537054301910822623020773102552877810171288518898151057354372908651152302793593161349067688881943593563295039046576455637105717834923477124070137158093387754463850526674657014933330547007182292769799873291124633916385686756054970329925823350332414722260199182775852253678297045413244066991631901447773700569937632565843693600554570492734613924976038686501078141424862419393718316443567183651200665423352577886345060152869361306081065024189643501547855517094023398141477152526248718120679124591184982209142952555282051454451893865612704938936843065947361278734330972556934083114948416626369501744162360103220569074652761949748107374906170447443660933730830005020211501422122153229132759968362245095980470962457429870521995987710886634353617636631069707789162720959658222081305908020151478144590994962718929258917654113279139887911474773232993042697408569383903362707788169199527052114879096864046386830557605038736527062445078411162335832534343511368878482936498166383354064757764968945035773474446222454705171079101637966901444876203635240303567061618750162769717993975857156694572255611155559370432303103000764573127772284544248168866745125412337539867798165208614550620755409774836226683109516245173371775386211161702312768466358018154001943234028199306017641426201884890547816555318535303808180790219195075219953463943801867022674708720760338433916504508214877989151044429690799749030014346608950839545838709149686649745942767648573302134354055014048711872094106817307496089127543483936798316205003295184624812635557398097227293833993681978430957726813380397348557325714616035821591774358672113441406905370149764254128653446786628142857842782727748865028133544297693669636872155848155345258333356391725422677503996444519097193525257880061661393864143589565203038497018522393045352080182330567038080651278725608655616275952625425423685207241059932878229820257787115516436326490173480681717191870266040573625200420845573650023083960502549570189309224606053176804415855378570197187727960224702129626654539114548128241286742561537146068089387859275770430326022514735015760791401668881146887809959049013143746867629961667932304078932780000098895011092352721912932935757407856814809568821151332651176504400113452785494970392978404722868321624837903789855739705082601927200590952744508497991159889568006597649624552562854196860677330671606363972261399959682935920464942858700053336300517624663197170188674151143269302783923034498533122578338029486642956957005445316333436985336074177518689833366411360280392302425138684211697110180576519980312833318753303779013186360270713008588365664947464535905783607913091817844213968425793899802683667438696220187804976038148975028700409860242640173982007485482715914703408820951636997551100615852224163325907281894791714066522796476718126864545107552719002538781642467026598495973290009047199002108083003608437511140047921140798944746061277560525224048047378540751659416224359605831118162067973297043728044010328613768866990964081300983149989505739682293251078875753443792344837854757775349953748267476978667492001712603141841980613018271911576948893499713901947108397438708429375230737006208127927672586268181503499827624796206595624597551783377880526138534751546833269915032285942490826791873678141239459677431885988028992799644896433736621490850880624343304279524648402654530382978615200753405206799441391554342217398742507946870085699592221728175296937335489578472623793276886930539248758405991816996463362661108851566215993407688836585196875128340238656198563850141374992607313016466530743038043463859569780433469655588957807647890146945232523853391233781018209674821058253725481129506109702120518951265628481903926712361680583214978931817220569502894777477349128210555904798939409629780112083393933716095143144703902829553288754859230789161879419436054854728072111444037216669543175549090551759151549664974100302558657019614921776800718024493133685117611224208877840904315789371840397625560352993959294125425436509091407201265127593277315813180674445958682414394073568709468377886187784141110311931045077790999034009918079486099861045212307361727662766169338052091769763921304335583479826346938385203644190030771092474551280135300561390146776588771967174372958917407864288309364013394235217622815321754320736801646888971687061332421729631371847472035501532715159846128960970615220076652856380937545093311533160193361665736039178949848159035216793033143643401625195110545378805807565083908025426405240578124182218661187612147206188991138522185164767250610707115116062302094384872222367002098127569504433276396587550259582254360553558726937471143993475403450959819231395684561033186317161571953983656949120821838978827082994637431520082741369873793547255027340067395774389774593545283955348981735023376948368192085373718462021516008000882609169777807012274883763358068223056055448801558377311990577637861315501047834155585256553451687361839934510658094624635557384145654439164264181498476899324998624933158797981019470557019473454148634549069069528428890958170932679794299800902142752003804231766799873017453396085975879846663664862966099440085471567232412814952345521793450981815696576674183584129797682924698918806547196172643993442428098150831186590064249290664533849218492272388909271214705816472518922407038256473358678519020642855313178129417189995925715318710402006102657913075504282515028861339933705863523951437143724405597588155611971030578395668340618233433129805452188379908669316751538754286367328541650794939934837994757487863085719325934422228138704904003484416707175088399406156248933816642611798461106497317303242939910313487150692960527480965464174713401939431213368970134358631412176744103557318542742245705395585723749824308303019315579347749566793605359611888766489546648650454078178160253819759618154212434107535693199108173715694802877020880996592255184664694435463831055551173289642745004942143225457480017023676884339791240947431797909839264703868740462216730244922399084437404980382950775362396320830868339469740759357444393456255314608726455415934883350233461579807150424190261140935967778328596768308212439413305438773663462157462891081559321881457723861438259842520271788560293896703880364142747756470987463070463328918129101404546813699582918698695163435413803188967744577584777198780173834349993380963277169272021535981958896704642976296477130119592154212137982894143590186194325943779181223980608485577053226064824044375038738952042457313845904902630100084189066170635482110030045799894889386309914107825719161539527161527525994558746745724538353809335428393914252340279178755624025362604592953081810050367686243540284433909603848136440282226445668430372982019191376559254565773081508588647992661573886114344626566207936866717121080911200012397991432036953202532144931255224093103228025153948038518088449881958067918002086635633468682129463828804227301061250541250774743646107899715469954347320719729100840115655673439809545414664728273495514109071965863129204275578532299529641233763796773864051375179001253343490559322196509668833844100524790322213743818427567430366091497942466987949587585860914153899028966657337955552851456308850437242309936316066292762896166442823948232970135253800182773293090807958300678028304033983494784768518600464622518654261587091666072775449981766805629947870993768955082151282493161666857173554358374220596712601257077271313760340243237545519800629916062518232533246935212279327618303295132502990426431618389554133157039436006178188976750026903099637179600568891129433339789652232130660385413946744840284838445645967379004636070543054712670053843002598129425941609193930112359138896827284541854945383719875034049671364026154255367089315375798101070910943921439805077169814415226289953071447694103963693703825733192976585968283150136643905093350861153176258278027271869296201367231091973387123432835883426309975382561057664887243614266890033489468116693423086878949014140250208935011180160809687255469774684962931956847717440674059372063332693319859648943310075504137877536727160170293960267217021056304293391321786975705509566333252762055741118342975760079669957793151820186016670792656140751063946075737025884585306680887941039136196137821341988939787113107323234300112615562996084950769567811705755483724388418841934494801549376258028047583298905185237457588305911345575056664353611871148410103923886136259269984284348715838269916738172684516859621472357422773986556697358163167219268949505651847271214084492526016977147314715120562633339308719151000748249030718792487811032995208896481494733859566961485237518643548607262194693891645468033268659481897759691355972552548904865404735317755897109117309223485247761606750295386405626139385240580436943126300122586088777457430999138215921226648306629265284120985566283418623564164441378687410216446031515723440221104874601882562661502199462403517752182796570726634364629489611199594368122729147102454740472085841635613684314243868378332930221724130722730783227081615271068041074729807586779523047639516149523066838440017972360965536644510542650333336153588491759894347804348994422492463528049869559737658185583400039788085514177993168018772866241386852516486932885139415066612663573239642879298159430925288692749955764307057873888432820894795546770440972831155292754823367590637935113693105856653875813131294616893140959935656660208979136628391556282100324439739523817269779167865513983465014609720703957623650040856468775136932179826206742949730322929927428609563225980680605602761458022689754151181525927008232670440808420311617302694906787851062052890806808820156974675166297959299212298233192316685321353123657767716235111056401753418036607955481754439551460397323806261226343669024949910674152312357409740697322677743115849790445062775850998608510950273666578958405602188650610317486568090406662489796819104053948091125292385838573153294782028921940158894797991187815208020968727504738345681007459102248400442154548668649784109054307350029391717088692286440146148341466108533458127797905348395346150311710786370938158533914625414540555757726852514469669618848187471240758228631595689033387556480923628939498006670374117891272170533696481186865563211951499090587782703093344798559929239056645592372948392468275774097784817919453207050380361335280992786989496126758086803034028672133063579521898168492932734160862950265997149814631182937983388526806070324601675382078606397513646657803808594595024195699642678133741488087679030952294218140559932253338165343431229524505354170048158642949084700016330476712587248328569324439176677954428697447302360188932205297256865426440347022843896248516211089264478871184117955685147676289458459871600408973424343487245416586102091936254453241534599871176964588246049571014713383676756891856204006803858592032281326599447405017476062791224950601374463139130860357719294908209807265265631046260604144188323910371942564240265064447979880284269131522349508954652295517775577899140793402939263604796414725484490230736148241066561850613940199089076165541225217274443957166161557481741749733858475674472191864773882857578418086735223741999330020727567275616500779076081313538695238773006947410691748628943610238255542501204328425424679202438390028724818010166321792110851815931027268919430511872146393651766700380715703115237145469757625241667938408068010829615458432930296736436351627434862587363801326320174645759139112614401734669074715918519839711589387026425583534755808400687813083120566450756053163937510388867922595382243068083346560436258779501790966142310015085584597699539175494705845979558163911264821185659885296866686186548318139382993454715142493343783848378150445804968889655322818249083016061040021178133135466632317553154217958788509718986664366170242861338155409052803147114286417100424502766510693601680120665536991610747473101776691768169295260657309572633780242028192116320301818825436914337101882051101153978858065527890360772633438280471270654487360840597651252055793918547038340331705302207991419279437356189174899587444437502767995757207858206015414999429068167022781308108587434769337048941079718799514570712824617656848760090708088017775260225233991520493419609725639165741958595647238503923796014301237853894762770433049865647435253701732362833146185282927313372865282139537907390212862541152070753892962556166853970407535089893673154608192290678956883905390942910305679842579740627634441734571794355022898590203337624669995505326451274385975908129341433145451439154836756929918675361580424396992940415582197922224519946279437922542209363275211510491132038874437947493329385990773063034704848908111964665117451334670131952187099651917142786600027035787038541698677362486218668470043405567160967143563431528643309477256566089070413485426726803620635358560026455405968651546994672791710665574885765696921040284028680312123637915790452594099421558658106939479333403688277102074474395881630530813695162720798492457586386126671173388856330619322864863986974956204622679804477402996081479372917416567368041393841646371357259066915997664441353608966877203692300395536899476398954209404811610555032407737325593934594231227151074137686289141034775999463268779120826749819571542411737950946430066564740437152377981628135056606698884985458781605760261119291282926967705064499551840933877585670519533553393181892328398935026859511530157367892554480188051317159963052696293509936099852756936419704808283434466321965231704523311272625018736204557119710902856974185159285815435035674862551735666554190536806249670342390780292097427812974298118164323920329462846680575237349364183065303204897757180017318064041624924243604400896998871016164643760740804097469434664109590873660235016008125048696900050161062249617804973991644189543340283855275462663593656262364812070891856794542666904468309337966977809066377392605144011288204825269553459598947419955947007261658790563664617803860121320010843090373511193964473070403392048685062551063156757543560623206220424465574506485635578917085455276675268432385239530186965517029516843486690600074374617706561966696669534093938490114232148513934811506399737902347629498333499329389942471053795647284892425564249520626534761515396426456836950716930094560795293353979045597757133225865446156122668917287398978331184516152671496945412539429417045723388227096734600335394052589863296547603883158727123545254793711292846783460058297164971354686132356388940215665433103426939408510470033711036941317222963426757906294446502795004599005608269770466860741855532805270793562475057217012220202398256973167640413404050883442146096946243640278897718935306549360977520107136835134205676298824451641082516602527087477369766888216861660232278105642488263833024087658424698988613028004477084089348338329938227893087203944685190556737074098660923090423294561434114127909421734777430249306728613221348243678345269699937715618458372165004461627652708228978581097760544732952722240802358482606357257750254736033611159265144925877177464369734508036391216812057449179352526169455558724071695688193598711519455219745143884381733586600855176031742571141473175885643720816894464634734148460653833991011283568067154677590055463932361150988584065743134381073934475452517295932164153785605884647416521198883689146078750688257872847008803283186017296552563577037068782912627035890535367926322721622028020718592529848784784636819629261608267373054542021742748358833146642728158103003864819031729784998727170653019110265765050296203447725984364669700664512437540399263977383642066637734871969057397386469807079027571323314861991248215029678960693854189780081444054890941789222047970057075132794128248799192412816732994257420051110769542823558248338886962330553935298477054607656830470655280859302870104916738437113794020473874534600620757799489208554639204209511806178874422796599839654561449328488099820796839229705486734188343124308623115948138439425373222937615145754401426087022816710493117166944804166730867925814559678422388415135588106247138377241060195556388961352322596621798850016701828744416708971980567003128818762567834188007230504248012953835006361497198883026913518855365862997074530724474546577284959718130430827021451881604989251755192120977877060692597479658806634284598539229715960252949501358190153736760134898699077740569914866915861794635884478712736371293099766841941632629722334900042459186951406277506322268502818368319106613791574899981689786854720269013885674039829100097333296160938560438567040735811116707118364044973082428721964415463457560582246670335688560977214778269819118683525500680401559587005674474518363130302012786495060233625838394654276625435773597056020144226922474388074994469002450608837212525808047188639759062231018157238084669814434866515686168964332278740421093478241377860562052872733367126302790473495775049971994190086317024227603755471493787258338771050999565958545666931210718711649524947412083905377483684276846413731959543261117069662149243897579000347375882223800609274615947241193276279342789654643903987874006122192356803940577915349454918410906461234142206647662767708808702122840983183900727963924516163372943174131061217041968644865464608874686457005828355177537109574375564803973600973523906815672074931412875865205645880340898531574795186881175750090756629918249246249431678544517954154726076512160170900632217309908073260259096216206557266115511162437828717946817039153247210810498685457663690383831133868597102443933041684646390912486341273064874622394707461058560833007375814203141825547589038127818102403650944629871565347321471029881621374176703410687457428441515038216598334245268193065933217230744765411222338434041503611908602458700296587647939321792313644259683922734780557595962880759939876473294148900287934219614042007525809087736403586440238694280226076847323115817648383592684155743852365757857503093797320705115303641320997002552543586603839208955112636529322522484315702732347050606872878583506450444146439017759137253135537984752365781096563359755225430489204334999461327624814082714591339581362457097998893626048314130365563417010677274263286013940365386400031890275902541050212533985944361087166355233940057657601386683067796998160186996467349550343325498263412794822389023423732784381784528956748883654952197089633378925576774958013984565728971899631965332523235681641764487163463921826851107697730546459406441101444107899757495681547305185302279957591710928897753953495676372189104283205849279300979876900310798743199143074739926572985394475061845171226998277933929320150297517537472309109412061111821611777489805780938481404215044563388172755495950330747692537451098247104876977858353249918534025793734341040171897166055743445686758153486090119786634233950529091282422724454999511867278585299567329541509654227143447635044279442009791016492861838652200031457054657024344618530377733096934385980112367511739187325754036768459041607631873950671710547854529726443170228382742793816858034454748160902970038308704420162963306713359979660387145924358773651073517287301596586035357548371699328634642112057640058313097665103697907249769230042837271587787500579788505888332789375061212176622351283458575601604639505940814921665346175659158231910292725470749688786338790913694671107613092460934750800249310369548633710251845386900419829977192602247607190287143314685609098744112749673035117429979900310942408118609113834448821569843964812686178331631791363178170482191901393333175916822805570668893868692722152990996456801002445634179373893461422849559881080029734318642730578816290789750217523947906735415766799710294435053015759294743436370429579577267688507162717714301800676223964001025297556908699403797530253723234686593871569770388027595083046879826718125091929841849516791009074866680881159298452500486033839275483873382775771274225408589696880379107680723834257248484721082804006672775924307942060061985156869459054611229095719468014429854097094726313163497372493790400795374083411463839558468830837096723236420144247622970566432270486733565437714283606196617984419735309530909959821117965931900094343956130167069861404476994517027926452102408914420484217149878727556546704785971116179138546046908480754014877261408604894494877424757185797584076118184539402290784860170852391111813344586154789334428070717377849587868568971774352648041916986489973775650327799884768681604285293160949747167347726521501532563226672655865398241062534118491821273511149659307710771204444007032952391227772091613217165331818641020758804688962594314918400371038246146754163035352694500782742642314408069654840895366797788544556467178021353025605419190591931311539109823667664323128017222765782986243966152161429536467212654539197714310475113872309140693098521889833315104091169487921817823323292039770525732529484079749963160139949370484947743954128373908875282595800993033214055504265745434672741787652841208454467073005964525765647107280128035196030312871409802044172393039530028443959073084568874153411867111330780361135439861014805877415732017494321839799692080814992689417394607357252663652030676757277399524118049426533373523854118481953023282130019809336938972008223138765251892012163966845003053661389026028262297204871731984354582267262019419613880323503267177548900734361076082238068484119908271065327213588330754135114955481920436675857644019920740705060798554163399262521226856552102023669811165793353828055473837987500105510129747876746240751283964444105439257188569770344413814361563487859158156797263696156008039038773004772876552022578607358746395166084312153348840497801791209871291735990680620295147399297359584811332513456128074700110058277236911968535165734398092203977104534397969574544001918441927142701798187429724584417216794996148973923663845130798184604811394323008970368277391831468741774392435927954940206239651321843526306777401644980932994792157421642191380240448459788696141410238351095813034226507836462566212968460135718476418069860059425473482887113617219131677176545102651096856244827487860578783430939475086649588495162356670566570511442921786739030478910473350967673710963846340337811682427567604357033208577310377515203855820347819195857378243132301935235724563496700512284526331740889204274827802741813287549691715966576898887606371377889225851925469552177180872458892137345977209255599261869895937799277012585632386137959174104932803712477648535904101048574963117204547822572721856307575614057111363585310887922523420979141270500447393088267677252023945261035647513568928673695489168671120292018971732198355991294843230908528575861750895572298476248309034033442132410491124163371967474581859010553401884424297672083451820067941102279089981949286594073028542184311902777610829485788340817676994908334747423891588699066159805737967653190426196851575696100628130882271158822885425638627108225235281641991214553620351877421779917989581400915403149171465347279036882164524617346535000769465212866195652932225810758691379458708264483033676317636813746172229739034439419309270975928689463719920244617776389206422471978914761668961447217888568547194612511689196157259523596832615262755765991518359081054949146403754268084548459535426438116422878444919778967570275624226330710933440830426016305040832450901033047087198652567418067807927798178956575903111901123993823276026935680188085372890484505179828573992038689850403538823971284381535106627137503617836431393505993353560119759853194165075233069622448322824495445143044715447823356517491977232145059156593523047798211970961200415371826364766006045076322717905132799073039651700990678599522125833716823021879998542218209709150165563371980966393977083042323200284731657174870667573784266350922648916148772596377588887815949279573223719479534654141643626416943209862636534001794185931610539882060127706403010804950805746965291403162323316049689969418929761271036347497931989115435434766154433359489570753638681353954275266195681452727818149695458290314183249775177502095820769103992419537143066378345453479407618534240171496371213278482973967813354137967482091535673291082604329853783033023925413075855472676229247172641756493885932386401727221999570141460041826715777846968155663364567896095177791219224259642236498668111296978048252609051166096238837179296573268174629367311190955109159284944283875849298604347168946479972423069481056661441275041278967144385477209623372769321667459720841844899348697100857715129520787912404806910056841360844487809796290542545414971513432590545672251060303576451464540012623777336437703317834191218163739058628657427928245008067102610833813173761090985262769240466589913718433281608424282311185816649902478462622843364895058547019009132399920687895606081186165713957104923469371318391276382419644757537202697618327694042335945810996712951243293172283074551650440393703390862165361347274348913467366816459907912973076913310280858812966048510705320490601331550300288093820106534796846489473808434439401127378764300533415234323663213675592563258714442944135882077860652037998332770452233044346549976269035539077491925191982336294124336765416183219222088957581598737090382489339580356294774330683970013179400906585992236828927032924051129625992438647277031245872999485230848068122608178319451000670245122882334982643362280646197356403805769902243892820753495143208807718979766440485014388017222352533503558808835300014752832007321842800017964551877488076409845944087423915310426964735740392983657738605997805167664242551290284851294538524615223219663528807822048817990430795422295913126139351937470960952800084609124970887708630281584867548631165103746929052184391510819320966067180917494737977310680231156940717492090376278236300829405806413203065632507053911066263396765776281103204317673628240760274352439515901745965982977418783993370345605914061732878229577034138107231264522650804393416375622806277735993257726801122548801698251986637342338068924525001259025092342229715153885817495451501791133704341695155387224489374475933331017255745694887650560040666612893029383162383949446122913433357723217812363298208433753464596330080862404889873561568238421825008415192181452540489158727081446377822028684381345447841673243834655674460792715584176511115031088275508775091788444694834049950239283485752337685781561676957031785841013113470223021041187036846306374586583451608438435312846463302312372771456025973692737720338712769652535529039360997215416601801686677347280019067644193393675180410555516349658665856961478383475356649126306131852294135974248064683385632296409984171347890318602356731790580906837730277378808666574155282682638031577797675055999078052006359250441311854269927332710768454092105281426111139723198982878332085250246926155858008869035128166105422577748539150748776010054218280236646570862657072034501720069316404139276568554078147182679351070098578678603633011124172904842580220367926261259165930433061573675015638629558924265024646580618111010665102411464963214707624965260801642594152152908077691065736118371418289270975321949062618544474460135160044308664230412634118700653119932494615969101408784731425415767094658210908762936318823960549159402565235823311578577574347569461279059186771638690838116013510898189454428319587809496730373771256036036093084057160467130277270774084998635840654974300511186806514981078572132395208377658261433481196739803045585393691015005744101509655324918721824694854631481827413619308822379816607029459976718242767173854541051907221529957543403436022918990190978795026147799277531551868755619769521792354827915895473885211842199782046209519809979112956016253786072432505598937726782767803557659325565147307251354652065685492191622073789209802195673815670142293325314648779509461612371904785333919728481168744125610581881770135905871063810494924098603278352613730045516032768592387826065744797833957058272591332815433715481999366289185258270354434941764423277113070765725279181081249358064078837297779075386928410219516169241953681178233337656814551638859419756006291125304498811939824774439223948258048818367716765314289427201026448635816138170683492662799445924991983635061329280797556548479883510219051045803871006803117232890991221796992044374945755596866082763948249052273591704999081559174102444967807361485639759272105485567381369952146562130964397856053824826539788470340269677399790367726242487684291381948687247428261588234218961477251028301348639996654161732183724254324951453343895167047780133301841359640661185177016502117113312584482212692035313011219667642709910297946503934634155250516410118800965693896791854627197929427369912178496264174717419268196384476929186456982699961646946067661131931661744940523111476997694386056033727832727126423191293673232950981721507653137136392912646085915979268875118006514453167010424298352441009838919787043100769270466795402992230941370166465231374914380080882769883315908348228226640773199542626475616796120693880803588531420831667293036363322814483540011937631157270169794668033437844119282120808105938528189541191911336967653426145016197844909180491214375833410087928572448826653489376923788897217290585908759893463856639662468065948922589945688802331216243158553940002226283291541837786088986788634575872651634979922841499140554759997016691935644382420002023929154369151264379807705092164712905775834476144440195891775940264264592643217487931392977400182922456782725270259709468370347486817732819152595648863179952817016881687115116715528452364592790825392061861274820584881871407757617115436936387339300904614190365365168535426775511600287610315719225226386586936050907064308010869559861220634861390173437422280079284768468807438621491792700467145119695940904014740571932933130168303483807349417925074209753183182034030443324915448020762199153341531473120773491132212904926902168101047116027824473795961655273559656557387421132712761611265569053291710466549848482581863782832995497669697924425427855856845104722279129919455927478458370402675564061740050646965112331634509877827626228256126571736637168276916812746295143213844579131394227191181903528187890605266998555362583429396549626149730261775094036980862870787924684875612384082240711313152950823109984842822278183366623528374298678587702149932418865422888791087733004239096322496639587513455331085886101060525866777506176590611933900944052235314423714059767514945465459339360341450969101085362660137604215904297831106161043881161792921003880944578944485687267621857011571229308741563939255179771417375552744993770330150809505019433121845962912152330444672763802741826350984467450500226566949865290411993795844270413803287820242095852680438637217504398239116107998258379072189864837782735161967385095783965151313187246616748460946540554838051041571458475963347968354391811161731680958018382615746672935581732220785621456167780617043190845129988252842598664315172451277229377053979855337950159245140350402336023074375315913560147576982844661490888985768904915051218905137726920755437346722858075259288930504431217928302958614199403258920951632623230193277004695809913164345524917863701337492371516648570459114823449659808744501989058471715554364448115221958318825156577339103170290706112487339041422910406416647322739023763884503694659512585239332504443644863432980984804230756330464435576139424691799865175802843403722635096740913207741868707434632901536559475730394086728929127495532132352253325389925349311042338070646693731834763713902216103447768837946594327583775005549487876502048173535991838136144101106563644619033370139692706295979279758533154892876101980235120389503208222239725923202528808716156910299903269283845298766913500647276561275670573353181288413710436906150753616345317323893870145914322682282604914149921322728693772688796329790765277443651080796662753344407161835997707372795785957159167286600762333109667012801499700105546881416167158028553428092284949941066131467640791402818116670895185077382522728235852362901300226558292411129944787445940582965501617666446690263568162621730844455623220203246377831392295124958206762393294887007997235346333409021875033613396057263830636710695343764415670451153207094814022851364082338196855797761343814904433604225440926887656954077540764646848177927865699235454282517859078946695268911128154548508602460456249855457805079597493148668669785404190350076819794680894575936856618776116774555688929905980720415247784438338736865762741144752510002105197980994604760572230129419596799437525663964910369123324966400588520795031891980734928308906313290115808667805501794151918075837411974572738004751000439692193688400614174883561246430202138411184768722177362923575139623093966053883041792421853486529121464050466075216426649186513023766661873941231780430272963631192561401642571271058252474628893815359700666352650385509979014687080757249893271658503176289790580547282329722735449705834841720937697837003822360034674473788836487513296283627337799617957789396889102338368244342834760457246505314876381043397653722397468201283863493128494236078348958512271964844448642521256697876941642328801337880640376639873356480200775932038937031401081295987003281820064506985714354814273888832440465771137265946802626604322704091393955744005693779733753490725563992498458560895802946577218920328075384907496755759625678829972375806899941533511417535864610260367263549294790345235745653342644161021487602911220357333554385534104735643879853606874579750823973107479401681065854341712980866677235973334539633973020518677180776915246757229137772826852926199025110722538050900278707354759404794724572324595030318769633448956867022816237729563086215734488551511467242208109384133047857054542980135267913632000680986005723474200420956624028964754188344367825010099157809003827360283859670698290801657080314188563067658710174832548675016941698556679769729521488800840988420514854241323481151662947114062641784991146772263377615469480992064016368766997522368254984495247741999553575674104154329955233588355463890342933590813197301541410088045907003952207456942415096672883781971803862825077314682315257244916583128123544638841945586314661769648088593625326700821692204033735634772517744819081453324294361059547456225342843075939205347614692652842765481165131949902053439129879735841798496736669502406528422545256436074260605585063902758859993536410261561167688272703245737099331681834130657643502222004544728192158401978687990302311420872242570574784800724304778956807321807183388992462139246872358871652508009887589876918522618082536309472306411193007272380915447596261275297066217191550490021935261343264004905682651936398219170193614247278746113536217784778510432015775228814373715161770972179756231493826282018403313103895414132885658905632788123125378937722258909585819465956180716693403675188162241994583642608508444058740472154089163812404722348131218013733380122104498691146524198845792733208670999183854881210908604756396228053288058337103113699056776170826931513485924446692414535730597846313302344803120634604511864511314174146911209944559843724050601700298592624740530125622902847994151004975592392687173625604343161186260928486517825727399534441399972819241064784476112164073053273855891178348046569330620602674214866515528339433510406030625259781005631813961732790751572275048097848508068442997387116742339652358831851028107156670611130680267957346130025470177108514941348714776637149341188124376888858640188008374498730674090119405109165216583891421983859602704078209875742013056726463781135065533813175291383626254272494522410336728810805908632158814666534880594395818986790341762590674007129926971039336013742588449182945399316950687538183579448986974163908786548106263067943312855558757816657066912408561535170109528993832654026438436717231143795081130018160022907614856322551890489397529239406874375936606905841188049751191965266782538475165741539561135255786901294642044708872500940242422075517341757042198798069022091542331887280490919502696616452033910754576760798800037534608205543915872208891264435060302551961105051512559737255284399707266105220917434460733762818883002847135686827703681445559140772097856951968877682366468803316419379027685232147262226766569626756689795683022967535367265704800955046577539347889244831033149393605805436849122762358308758588741179169980037026773837344069621104916841717951951165026177521547498236635153732994146919106053869109060756164044566900096710832543589249029553331208779936681705793934220075729443594726055455121559884059399713969244682590098817305485372148511689192374619656189559541194103741344872319400079119139706320664490305106908533406627650136529456817147155674809471138225321854482685370214387475905135436665159490743559823127969401682174413864438246778310010912643952953571435880140905009582599041997557806383343193036887713666973573614001405806241837910468435487964958635598333963813250363932186205433166109516811654110968609794245685141446111505962810560527912977985728920743853553535674370125729243640537617744670275462861485115633300030060183945755226395985945522831604310511224228005694312564670248603948398412258573862114790566583386898610831694150472675458587525333086325060837111513674784257295875157086713543146629672298144745653372584210500238525621308723482141803945796739680874409988568668775541294039039304396564041358743934829039319582033783730769211993389138142139380974663249970518896833688086803691056666137115103280747116257136212502117780049163365655381453222048097038499688310204496509147751089087068594202072801597396797748593694463570941962970261481072048708606152758158944635807242059452685729380121338259826736254289890986082011935077921775827245642156076433943118153604456638690714715328295362475567618606282438561003664604238258075185773449128268959114943828042289389088330691068715042281956570268653435950258229953411592860085320618783244226019655339155577480893714666035070091476920581824719062388489496372833878229951917128430687727613557070713982400021305558849219991504776435928738150448674510662831601960303787459802523013299338430168517830039899343819732546082437264668502344171458243289637294870591399740193158373414530802763802599482443224165487443494151236600633275225491163867349343117279827523940791578672977277883656793786248736516153352833765634065489241740411209164139135710348249292271926853133593558419709291058615899657399369465772256512701687866745017587456629514450965827081265824198719171575836023852539911505402054324818720469035011310258214182198559723401923726193737081184706789675645535423652534997668975692015429397352987969791910021471901689728445994068124946314021802557141845144246715633659502335226711759452562021502677859179441414670368958955819548013872504300797592657295541471524957373593168022653278995810087564933993390524406796174354259986113980194763955125892292007971767033590916470796067738331130206120288380561249948447154153458055897659772898419944033443247569791267860799827628644655968123009483351714190774153946182365581965138861771663688028781855325528543887635463750513343621991476114839138065890824211903208878351833966128023866834197750429095777936826097318782716204391816379341186959276920757247418531144920114114329101893810175437683265145686981322460864683845684477287845270868315669743748363374059822928280375227791185831782525599580119801650068796600804495003046705973294751543660539160214795704751094477123034410195952143114763996268970255457570290946898931962227944702746543448418548141023692042002283686889586655909904550567013302023869895362340473853686103810751636600925364622745082333615900234387767803755036510312610857729165850386669066207156889649222658572560128162138349593232188948723826476240585750803211485692750699673770653454664581624724313668167238347421935647807763938704945242494135744433306172987837661349045050454321691701274150866534885395503226883955296891946512097584285628703964208824530554099601843483415093178717603424982387987567237013685303642244222565146085616513853473120420250704977845411676894722848331304591496697718502196757345489749892294966885654893769884578294080729203326285673054669873618753336585912797098627795183366228639568627657652000351719822122789145503318018943008515038219754292818024598635567797118185792001782093442232496119983354748517233607717781248563159798648095171246791566296719083110804605204092633031374108024815114985966838270727982833643568139040065365840266503136204898117488884487574598075983092528410539581186884874216057629930770072971563420750122279446396763674966663658214718862272458797885266694143160945683633054015256402479124863546859110399037340759994924574936156827112954566659233833307645415144580427949347532620598786640067749292854473942959505473401281180994988928635518243493096736816064434716497748777155378470421693315576038838928762875753621121564259428671828908114170886372562083702874633644673385703906405727099194634703657150099140815812743967892954851664081915723569017802519761876964741264719515213483762018243036663108290940882817333565518282622414737643667856941622672026229948228601793724913278238029539908342463331728769230310677798864735381580894688879034788190607134947559876564723500090574707856831073518393554637357309925133935363784661492729989175698143161972480562510641589542250835446247040232150506499881550063655349864184545075845647259880647510329067822680681398139144229173309128463305620264685590270651767614518080815435130778038550853468408528799136374332106531677768294064038901749039115728413221836820643895832563673217226707718843502699274944314588991869195124275911906301349543438737721398116462441063420809034598651297750037159202166963911400460461325497296863604214527125263696809264009711018170740105195103239029035420945979900111406260304641062599782701938330332425381548848517201470596621020334790804743841217203397567002798302173884550209386027994491510236880796047224688883916409148786668078587251049622712633899433695958523861939053274707840284992844724027579635776636916186152531187266184049351013425938577484255308255717115828444043510169004105153751124959669835331464315209396740969109481054178687752057853685630860450224513261194612950464257768882386565639925402106054688951931607248028320751021578373023833078814105528096842157839190983374480491131021490529631175051150617549611591791765214384447887985441584842053258563063921257784751993517363130954521711812295749274649221588036539588903863985254185934283775938537219556792928853580822726852466515095988246576165741912010875326844960784702596409540181663335871629196571196364688387409793774841326537091204012773024431990455237160102222860642158196801468624138213212234540503122224870844935913111846938641531419545442791079422290047705076548087825314248189347533054607958534547295373491142898586459993861841851793630333750475644709352600161807874316468946314224544705212711844307132600182369287767519006438398535118719962080288268525524535228914789081609716119406718947667265529809597810360054412106698144471210403244841693573835707880987188603676169753368129652947523393350963248244605980065310231421809136629688283428511009641919191284563099702814737371539450594206499506607648865279340680128958930187011157591527019660693813117947271713600968701603104932896537141996837247731720557374623937373645695358144704074105008697650051576596849769883221311817938304539163584762623009979009946735436316253280205643973100892840898312646037543207117885713758491698213667007133240050945548478700839774787209480587533464272451604649461223721606770162975393886129602587374305576709876741312326533890138547952056861190453736699829019551578992168036159149140237017752630459681922775671469844852119682768611355051473531781179715823471612435014525668439642023120315417009663679268275244450787676102848378523547795106648216401669529249946178808693498293363141999913519703256685892184893239344845674429744018618617896106088961564778712521456951908073428612571549802769468558458123453323016625278408034643092952555838105852413368897321715227664050049504345857066044078899873554215643827996621119316043554179346962359038482276873209800832009895452782393061562522820621251196557277897720907740383542710940426620891914416247085584566761749599481561125081235192384812411201802768881355379556686020694180967379905622168980224717717758138573882883206731833984253035770274778352640704791880467897843454067850934958648523272697680227748699903174211417632558566904374402217477224345084311581617516279372505084791397397325242848788166219337962174631238313753753561335356274669883687932164031410953427744651030478740566070222737653154429626838057636310943355633253423219652340342003626621642838635295994050369961348530826351123054227988008489034207056410440133351788792972629983671335831540331005684257579892563115929956225833194255802809025939086550513046471233888596505645944204008488456789510019165370566142721553408976821052439134742989309096835066615512612090015439889140585982637109774108531498592212918516803376887715390138342511791127374362138840758510013213389500042417396419133053680417183527681559764414280019275832250913796128156887916994272347102883712223456209157039042730249170950917362780806191259812252879468064074947094737761417759772165681540941969398830251785682541362916944038304034733987930736803444259420980479739691938338529467141833364144723342049132152547817356201083960384923354689849957805205464076718588125347087094248229242925227406629152265830353179513515432838296710926469288490002005052182396884705428828453489321425409895724050399815273499619606467212999760315155266860965229574229459349230398568324909452621626563097202522928236003627385300364078537360818202227470906142277789999874182725456562582461446279542990298714105461373084416157098460616208964323439552155801108184579072891518414418580404828199495034201601472291156273337988690699765096215316143868257957011530527562608368203850983665803577564524771606700924708704215566365244075529794845221126699413024752724893176060663011325295316167144336657092604764408008497158175137779032592254397460169632492488749571038394066256707667642189341190417811348180509448165057779822231587672273923009358050050945618283634497324582667115966398148514851201303846740215868402540582746335718016205871556848813799478683542228032894782395905643249577107585313191241747383440420482809108865555778962366994270860099954937646282336232600857066051632181642496347150993696997754226250244768746925671253424431290924818684050500054398455243228995796155787924027074150415732552492335697497360206228755931123359449747556985707115218413696965134067122195911251568882559398543053677765198164581661681567177782709005230553275732702853763270248501780321780585898637078948715249948941194123161675847468638584389806310421898520612268072467302770058378192004729330761726042736517938208766999281551154283700033320115002508344800775670283300102096883482244024827513182778503384455912792745260501722418754965756139813992580773892474372854103930135042189729105751325706619891784458156992436957127646000184036476503085713290391446970065275418020550268297197196353453858200566384826942060944468408362091574854415551273155962902968204453094707692988503702166591426850008317619804370466586922822570501243123993463690461209944097816783586296718409510679244414547913883999056131253873866570184052454815866960150709165536904411305589876875716151254282901223336248218741305339827564960637168159976509658090594562508381093137779172581071339673506805498360557930247131292994446744638166733717720718617387887958556504124381934335470760686267018029379590450594886524560858427541406304155451878007660647890858234112903094242341365009928740571492808932559861221212853410657009824703955217852675221620776602469399422284598785929846058683742800120347386543054590664215774495943913213514075590389585727366459937849413850404542218692089688792983917486218402547367137421479038566411580827949656119407215431543056267840705652780215029852820346452356022668300151070050409176934319573283699984053055634711082126969859919777640388326038709887323029495295902468995768840151727143218308907003934850575737658189297874693210435332985001501561180870245437207816884060272518580601352814184043800717717295710126274068279963513642318846734043089381013271559739878252329813797106155350613532671881440337027351751834273338134333481446365611885682342054268652023541566194586890239615168997664727703428960504021645713197744095369089382943046294678431916166908563428813329216507746634865963132722868677188906091337564329338238881996928615337589925339039155662576045826961954637076549382659147332131141780095226665700714334289230546186167843795766959052672589183155473345518032159466561121599596523137472761250609429345632608480885576379574657082879724991963787016612814164048233671809002022456242399719682138910322248042893650224955906724928459056477861206833875786922532826429786479333411472533178154059866914311149208322237103177082563462348645638118475380267411766281081291997437688834622431659098863635833530266765548144669458620090143788736856367811623874209277847501544194540667522427342095097314570623602314773997480849912426448559761440592284539409103953315591319837213473371194345713614772534576960569951344221719911881690659295539749559776013078460543212548090934470998995298821968865638308998697305232707185186835367999770523916125645377444743567743700058800927730109230922993487485690118468516739289084648709890184117231442656141097203817481115061404734677616874464659646769030113545741854478277415827019458625115611228894348671186173381325660072704569829536229815016769581321337616047751236761638736870015694267385824220968782623984003341564470509858002653935385698124792021023392649509150434755672901790837655316394143317595559240177252839576434259723015140244992563304514808958096218355453121548649447215283738469129678526150180635355631790851815475569428964558387088150611600415379883041259761397386277550386436634337095418348057203105362392881923526063266913289595151974881541499214807535087406732080091795902984170068167792776490700907385239457130278298449417422094231507461033767956350938389258258018395420525899755466609362694458013529955131531535462278413691020057670788127155110758914900987863146292508013896535263087399662258862876203322379135778451241228278940297056907276423621121185513647339120130786213207583957212545219414634079592584596832667898489996102929811327078305262528562029840218132583653260908138628294247657082805623953717933208821776235205787046718742382768129605421157219178303580550670007621592183558039093942995534872118030388433915553331712037452952503841281599322483971189235161724922861693295533114179486591674021397035829774745467007546969035298195405151515339197450563567223157652233759998973473009717209465281936613856439028004258158465105502611846052814641548018674494774790603671796947442351992905932934599439750714756562252343435403074571252897511638285923077053216233993355830972018472971696418459624009317700380858041579925490977358502377044136391774797915441949924908057424796017993881784581550101926168218851177565401575910052020867558342888632290448376514807823597309363604225880999916543381822970250972132521156172020154524612630139185985078673385395816253473246836427730920753442526500902021199033276474977351681340663688481199806003153392212636356449742792463397608621861774170290179780050813343473183152875614898129890811406599293529308705874347659150354402521277390426279813361151380790197524337149065673772342899757181243866478541719093855925996699622653510649423027101289514631647244609577158596842039662958062401684849820208218187473846277781051889574820193049553839353928971338703037572453494663024658003734390542036218943440688426277578613774447246786392033791377385162801219407131536388295017746089513742321843103131916261939715657819592260296871700604442626270821290342489763757088314769847420275756937269951175528566344786749452167703163783045968941047737109893982589810411798620315942455775409848252139973045223843712512022843814325803691886064716771434362600476580949279574538281248768315207213149034374179398260198266879367106269083684054010314379353566404589389044734902459648014000639226967621465300127839052625225592057196129142392678006904088653522704734265785174149264994414897259000006067465442555252819907721869060327243696352563180474916596145803029049073773946461602829136309486251201755936975563359074657138418000379901352993362861777992835314571860630553665585889969572977630138433505751701768923561279947074480041838891276987859560044735771557604320810953606038851056496443621999764761476839468716192598237271090729499734596602559763671681866128025482710252598902699394742208456758801827366723594004216972934799413901380230195097276466127737317940822333106684032089886877174140423887346342439497769324779610564688037726265637927114852133732832800023283646971884498418548461088488630910422430320379514625710578674387146764569280087970414274216910218942247378141145124120668214440187119928314549126229927726180187603456001310111822297103535244968617065790907415968803076619222479682006331959695101209276862067983562725878343451844219911337481965367244140533279759769449612481355917562304497132307205370403843315780300539475816925482345273843807453316445878062422743212341195792357799242911042030571328176990056233504536194795061689549445354827677594993352699774573584494258742760304065026324846086604474842745213580935720916508628221032535773352441459923405522897736895732051303071545837219935562609251468047737216985570394877256085858562244461846570456592799926789663693107397274239483285672578590390037428118222525370638705346173892716935045026210525197417008853622442141352408592569037151953337229064324170819719819950483131297413071592643074845097006557160137237238927400684053246132590862372504924115373596915896819003619207116358490717638311024271036586915449810448114405504271140155771373153854412353977093099039708221362749442800044181769114773735998006225750899304907612655000020193334055075958092107314812905258735098246171717368244379873936842412306974914180682143636141525813265302730692142579552336308643696999032223313461759935711698199928513857282546047606699731356575539812070532623388795191176462717126887862194607578540873310205457008873907202245531404000424171976765696949334574201344560458555949586441640495131119723916186240134543775747468079972757826431973451799635732090061788496732662989121467911896659940794429150528370354582782810613320558364985464477099014654793108159488523436365045383094814006766480356131967620974053569115324199865660479413652982620205300673308325920057636826856702174251717819471751004088366715621266285775650778414775452064426677037930877793393361268567435214227760233172311691911033100800660813621387262502077686227587105446863327285255421868899089636958783712886701807771078465381727196676988114013630527285130525280993027429629938297860727992734661364125022094637651585097682901368284557381424132182041572773481262511069331714712546939487805630779337668107523707012579833700313804135948615749795635053665842374474267251807013674454892965719968974364679200404949780476896768646551465603904254721884472949968089293807952870447662524241709448843178048471085321585940542996598958974438118668581854655088379225605196952057969840807181336621613263953694131235137695716012531269561318498805172852406120115059922767553218439131523981118860539427648579464665012782001017485037755342530514206221895642582056662063764028046878916658985078979898153336310297973242318354598980495537026387878175930561032482427151661474196236879930976658706683594694672865720451112588000154856944979679027338394461813924232808750402888252532489799140984211049489207635345607027406579838652951196481306916605499618174768220023049915564942624430978136135789334151566993733081185883897153209291727266996616331836634357960926105980061433624238793840629499534787387073432265234588927246865351325140094009527918603126111300445604319413389878264300344261571719965370224404131960619720649571532985693847816411533043480879594494143241848941972248151121090225571750865843972587071111032561002634202768949345033030374732000294541453406515758135095961846911178301770205410072058602168359883727404461625790289081742833405946377400385923132060336918878936224641296007506959811213897728757915356040055656969675152033241243918115591622710414052945633689043045955829860759553668883922883839790728418997900631974031615456070907441699161661602187290694045363121431407236015102008091020568528781952968990286347803340147418324594022033564493736188885744525922611525700690931891912839958433029176687110576551386493811949638184259140426809543144581621876760601580152809910402676238004834444158290816991093382237563784915440547446435804687038130551711148589548581261708749667773265216642444874592731643813126465357168243192489593860645021979068547456118726813386527696888918727612956225645110357023482805654784605302436371543635239859878603372924329924938936244560708409996349360280291147018817044120004146432418927822453047003703798720912184048345230006327758118472882003736511291619374941144168266697945252247347575406670330636238506804175387026151907470169760145044821199254602099960144916943073306322162910536594424284261917562142706727609186650865960394926186519300112940364095746710130574964388626547726161925066452604153588016762330740711178620550127897200132094251030983206350696724401635731615562212473738681519321279625660173547654739674713493581401900058673835080546015101798032143704541299256758057598175557405190926370979380350277707074294328146135140040882523648300021720112406515136489267202483899925900872137516770319551587975498913149956976315655720256953472367125258719807770311392962648892617744648413689378068262778917334841517323600376129131410865775410358509745947396702896590710263122597811654840328664145493119641289445929662172030121487682532196112352606996045382735646565902564908071034969620331415730460262831200565711242399701132905489292677520176952239239520593432539748749123743249920618136560841122568212655987542215153753402601821028547673572705225727899976048423117852756828447625705842157349088426155555312297583931392692535911397972654022723627601097899982996430243536785697213634251624146765352334175897681968267348364549930762451129505866434975544366236039878933177220160435874545711588381015364741661478730577664371259681234976170715464850710381957856871914707835073309920671514016419646048059659277830761276688321949096118935744864029343463852371821507197197341638368988843855811731443152712626928068753831490185567728291250555246929783332426647349194252962580226300611375229817433085565060139602671136226828771642576642435491217498794836495883079011816934572866487105644603955894567700420495147091401377511379122655410729571101693981939040422791826846731747755329420032842342611127790272310640552435410928926528022740464733264942709211969549557992840880307489966752550599401867524128803492333064761378861446177399263649211761773143570358472885380823530348981478499132220657247250886533401268022536186039921966171122197246741211813777042068495523012454148511855609937219132703443775109169838700661339624487761904961061909201503496855474918149648042818653122955182027428628353801396422498969145935560493306039409189277290897528136393810936124717706684204490681731137298896744008252389251956634964423228554399830454879548456676919744202369883407123095204791746641511204153580275376103338296285994069738962941358014282161911216159375503939531682883170068868664242004405106392899408861418379281395087665632434932832610207270119224071204497574383117653931746393866668943940821438486926864732046341051422856914974804108173359015355817007696152339934369102584615713322101607202442674875494635791743687832123286783665677594795777356582550599351828667970683181771913589875507822312314634743716299131475164245979827074264994308801184563859884067262639832266261355730945146284215877568326461271734042554263823173262460156119486875699194812887511273634848434559749862572236562507743438296104329342842039273619177600835680547528499727271883853432184052206708089263455985711999742407897637210668743935311953170164653326960486688900339558264258890905793537673140513660033040161511106080031388589379458088513223040184298175041151533110438461576639663033501453892703735333937568949998716689586440349034736532299608546478724814516627282747548250073705653398945236717838764052352924524117832555252070536674111027048234374153255123484145291845157217413306476027823742228753440106088313412346094434862995178000668197696807565494690124401070361916174540310430410670073894697064132108320797784081008588672094603605940445846113496381908918140517976226118164136781755829570517637050865928382276789136167124755321244988383678185818597679510176530933770862098027975699509541197796199898393056474383378703075402051505414264178014046454297322558477851464676537520581649992861290378245336234297370978610023793751934134634260923348211517103422141893455911642851317665582887403375585260878057629589527458259015783448978961032508182538778881972936938305205639759772401837350502541573534931239041306910913078175752887811965781448264455705597029554490863989521559727536427148137460530433142739412434720963970015448155568265534700480538627292750561172362683772339524027072350131010982972272470034689801529118536354178198144531378671995247020889205312065786337385418603335692386166079629211844843596735024161725431445594960288488661102678170641165665046948151472251575817606581065918714892988959116948610229856886137709497352708322783515831226622556430936025467200254607070745734423107586275901096807663093940284422602213494014209327469735671775281268285320051672009970755553550288249830135790625198751591773562614718547639272096335228856473722441327905902830299989709855810946479534397383321825423897071153886669620614170734001008436674485704003645930059425293967296566506738649710974421741446737372689576664615507434370613981788308166936373434661748072202129623253446999922745072264968185919999894188068647195923434507290927935581366672727446403792822228665600066459774334534981626569870831678657932487733189138061331315067768125302796701386858092251935749147363809415918716777155574274701591378329281935849559263041305412330084263540975481367287195378269463579854911963217085209692060598040485678236665403207887171268460997332201973635903745139830636423414424414105602972674969547059406953860271636115705579620669088423053547684530839127533871296622483309951056676910333320619355962784665020342328809595240455249414761504095284708040352130160810303262496625413529310062046409148992795963411412624640173889211974815019857028719457015684684779212145704826640103951304427148772921608848317218013996385049745449711544665060479068175460674543843487252672992521558354681008766647381404920816275779273363578090316360617588557676804764442563533242439911869654904876128222841086343611895791155752246367220430843386931436381216975493027536515349715613382131423121908279620290325542372530296209415640546943667231650382681051462713197728323528407506351735196613301593981224702316921077647048337763383426552269898264167590732975155329962075283703724148200024959784511144585175343632065399179344717404071668270034120676704807518926050565259078468345154313985050116054693379865751223924348009978317654259000893962876343306578526775398964456468825425592523744870419956466428658958103123558152387631743624273360753229403649965090994342256841612110695073257974493568204907664955038735336346343459901654889284929947053063849942500582272209770088110578196210173192710149476538043243018472448854959191141276486735964949946064480983514146630859437430737661365924492325260188316297906594280592105079895582922205823951935595594225571147239863061660967253961171795835235947491713098228383085118428408500285908215055457163908186070267618265937856037827914697093921514745931212428296464979721540113639966797806016910415775442329432641872252461953823317786279462707427644860834048642328890278940008498456515809083705597847652096357322497188549973768335898855507538537133616004909247275147518750130336886988698408404711396859244340420521219980613444300956422192260706959835165639074627248637211287015883025261873232360055441959367677359785190857693772255102460090297967693905592987861518290561232070593116725792983932319975065374120241269120933897752466990345550140878323970846927361329565997957078612565223790898389569384710103009898292385116791199925881618849935851795975811995434810025063754276871241583456106976330876396594123837395961626029248835853070323799557768539400053566082073638506841410356221949786396461407170116115229591996631112361042818805850791056415056284097292303678724556098585978062027534708585101938477750454364010476687319294528885863587836702885295543166011838429676432559148501976543511922611380878890735160997272330503021505793888374129664352083425329528708960824818607419649575438098677666535611460909470889221656537273262536440351192221048461252005276980405024086299591973411147865411059233722867186296225025777866405837435347059981872754401699876961311747428453840223983506423398472186831621603014496072258335354222003077345799228598777514374197344344169244419627649784496641149552582363398837458248107743664753031949004933189465161886017547580046337968304729983044815523461140212229481651253358910887479674753660893055914966741729831696195716252969379521829272349928219751622730556577406495813720287498822621180066046755677327555024425986250641273410945632876198874996457581987388944334201651824337148795338318668524515878220025334147010550583330759507277742489199631986517146764495769633285402858029137036639266303297529769754516524757334818873367011278611868954158707826018651799588224514541426340372855005790753780218539955985643218608786092595478784208941803182143633271358551167550173890207750364792092914043153695794820944528866693562882743919406214559872138463682918029808559895933854550607231590090924068812999551144629846465537254309427730041819330332520082952553584872472661061794658813751843039842750821388933342072893096514595054798913553615949096362668140269717618464136397030138352605832023981871181036063196568166340118241039694906643993107930370599560734863008995258196231206144109307754751438677673689128083754601009205330516286963911406493550742868796723763345388006179991110093240474043397013835772216973903661053844075132799308363022454975095786159039113117303124343343822920748301557096453505239304255083545554189502014197057974096086892830219217078133443780098700462191990639813603090756084567585275529986329459436057961200688483827231111412546407161735251256304723838168439325470447312200405949822205250708906279376470700404542609654259716588385138288568914861579050726039982338489794966789818742416800698701359795567687171221631503840909750753857439257647918948975126127574876275301040765236174780527846906180527942346229167818204256005921222112200051982853426963146714000902822678630507308635350850984874935819424502626936766384276570946819283257669830225045932189129258001891783922998738808420802558764037206064373740543987722337032820235751212155865893521050558243650327641878708801837315733365075918492445357880344602054239611695096462847651355017034317014303204128718467690407583280151170136145868911478830481627941282889739455092433785679881205210516089955323093520851112178655027411979055349149030867504372001978571352210296879066345033877849270133079634845858123638672404872748551382624804158708226411615433247171720022335082517878377762448820271463743151837401922545913782854579746782004931889950089193518864341996389584943369491089793215231767587071035818632156927809946202933386638268216726491112383202847399710145103596731179638484311862900485998797738396745224381613193028134977915564006851668006689103301354798263223113431754230440578654053013044278933934317041189714865406507364951561512881739674631924024186930524514748969780849559217691659975592801800589149468745532272656451721686344323064984673347367358699087178633440282804857585794505647583493322413070070679174904775574605662820220924682794420814704433752739173655283868706371468569449167632736124733337958117854462461132494758725529122220511132416309213609052204909645480819620065061887405672347918089519210363886102837987691837516078974372051086620909946770610226264524312121686582365758932338726229739598947072574974073520740173512210868151566900341231457221000944463190894114526186871883106119933041164596772296002303246681486642760927224032841762626612319190608925467790592025636177917612039764266556006592482027074809650895079135710061188227557526881744045551595189616752808358744443386912860065887986980111589765126654747008859113426964022854174213820254855215748299523684061661196529697709467217018564502010911350069220593456621962853443425396575376648699527228305649775701464901301716372910897930809835235897305762274438593123715797631647629104305043233451382979329600867890164752956111427958236276384045118318016880393745512531141936552555122873024263377482782179478984518563078586816146831743146727249276429412997296061416026554362863908021639200135978506791847322642236787634317186594091509995663016732209282455044695606076631399749829145331975984989083341514773682157825049299207022726453693448949102850846556659196164728349034342682598704639676656377676458634400327533063469380473651034764656366644806956908637516066029666983062217705399441743052815090425672033012294294899786443729539544997313250191508489992047374836794372711080114386620825518592988387696810955148355114464997409145243626835668284702295734191890436571793863984482966128092641999419990369696374039475123034624085028833106969414834735604804795754167224304091938961772416343070225801040007340969981480292789293869434327529362949217611186598314566471705191341415750062034534902739898067887224156744912743014298906455230775660407803953459962874992753989964929817927474674756880834940672370188298235789996702547582414972032035361479629210641099043409645439516082237020766804294546348040260116271305999630723932116622703307218092999008087141858029096538350024640233030383744300952698302643958947004899997340787303350404126560376137699772302389940053640370844714822550985498940844902073526316594406084124770410280403496042843071318447432053744285174228518854206043921239050146420703052669658502072917663316281869886921803385861107531755225394526481089432871960523219053807775105619005742926369314998192588989925936249623882073225144497387933578061314391148739379050938824449171610084294166341480554604992521256326212059255261294451445273607196819730625571374416903224300126122242843587467990947213583413670433583803172673177733310688784716880043759603789625683399064362818296359461028639333603891782860938999883230789017226994870994170065393161441022146692111363248550628084926286023045560236027927750488198425869076431516139313152755071931117322559345939554346491828234715146522105348913696280954794689470083002501052905292285903440915062906576270051828292142064419716545327727024071306776887061457944444209535179030744704830527248266138045137957829939476459490505195709829920631412833195383104506368982457853548501626290131064121075139483253279432160887673275662172647215211521313245775232399310954639160560040646898109919984158843338498748991594389126260230474555517815587792389272237194747060100019796805150161810009688841797653627333319113101069567695678417059454470496970707132910484291630647875210011784034564812690879559884821089868550644402744446525984865556803498482090348037878057113633216779843996721862096398931085532364689700175811652511227729539814230927241389446003575246970946336466803758030260126839651903595086062649199784879276002897775368409222925628434628497245190685107399815137652962835816143668679988487451480560458273301692924631366558407141580777041532710082273744178233494014978956897580382790414293185510259613068167860500652908723744106256950670699556898274600769275820955052164628720166981951940718024778344056917132116649118162362456817380543150833065307595934871999935471819008713991246056716038612962796737803578889479679164000565732468187559341883217631370069444182371360490568666402029930048343649417749460727427019311030554731545216977041205584766044659989600752421493029681080153054144637197042595845726600137288306691286498514277449979533911482024764683694121399108099594814528504648798057235865712260003765595072227522051333066637686265669696365087077410618998462215803740891976669857157835214645312665308932790373408670924792649255103868117600544604988387149498464489149138760198167251211962572464204013934690296943149182993609644632475965061864332029041375771460152496086495464359381587533731946401593081899650877388800248319982894310938891732837425546222038317468200157999602480419329274946244575382028507952909196359016067893088982896985007319214825889450241001325508746922333249125775573139157071868017643854622007058429039919591254455984460718033161770640937918808861262341699075242087519714217405770479581185681901735483564851424960802243076428505320090265619376720513762405197378706017553471370376526675876015016815697334141623583641749632102396389772032277037539686882159744349278503859235178957388844818321644183446497009349621904565518599287301279920195672473231438818815972384533967409691808113175321531115361352724605984000520932508815427822304617078216685394206788106750117456617678400610693807426247125855176520955899369953935289028267745861952853144090826846747943703661255805088316779479756142344846154858143005955436436368515589231194055697172508340060620030848557968397279617335712078826054744774096789162969032134503876663285288745970336723225011945620779734139190931626809031251918927514291881354190659330749864875291827095726115300239821313535426843354247459634552429380143363801048174600104418669918154216007348471966201916756893622447387720113719553297392760727603473134751957026590757556117892619727497495548837478716278541258379628977481801618287971756243316820463161785145664703467927404685527967274214657392364240058114237037377478172444527020821635624964997048672500995366538469772282588129033181962966855959221916455850310306883049726553207214918982495567536495035583562074465149770992043310411539756321743775107490466288208606156542890286437614488438911883878313358105158427091187842276482540529937031343726506653484525903612275446212806111080544703387116254451096150860164929628752114371093933923586671889560440782494060958843409192749027141543810932884568454255638237671444492644815734742385103790309020620810876907704508484685355718390910143146329134424346444761123119466278149883432537549655220807522160005398416611824954975678187488349287381507611848782172003942408950104470731874418301797445318402430139465500350537267989705438721989160205901103215869125071614847360889522926321977390900221273958047220181839456182979798217872320282301984686664319591204215573315531434745460146052629488610857458582300745469248269873541241944715258337059939185108258372965616253693455958370998807684564588227430200352547683450912799650152317033721619969444674636670434380374198486172270885679892896484524730594749542652591743133161408616252071040560424421740243217507710581762267109318430046772555425874827237095438782217246780865062277489540344500152739631962863451938749145462813235157016717046316753804907968054491105842500548185089331098678143642185214524608754826415689759633809713748542650922631897020656146761439425625240343218946614853389173454991456701968139385751306900142478912211851740924881023534537710068606967370235631269833135261824603615271084104510750262174333637258379090037873585501188155880675209323619804254893553575026816143058979105693950708681280991533868994472483134357960382401587187257074015113668907936394101933730966392511370307388267668177525851750275454223571916136482020415488016242066969763228721991541558206572242836251716727922002246869355615162652839332213412479938804705221946895007710539729146182966206126943424033118434730521349522906712484026086149428350875227139091407564308479773562459656681548033653336355047292373019813062236263550068530394878806547489093494383376229936129809844965770213346207285088628884373751951617328131967247187092229923815608658882477406734821461080253794339052852619842110777096891236879867519511301517406679989277855232434414033196662056187169755547981966676590488940157851550782549878662228115942829769767052458405345188258199624424589709120588257258222560791414046824068427492054942597498740221231724391439107689067423292283695988854525838823778865002881679670552372988231669273549801514753613773341846855116718737458280346199590156100188741869317341711162607201489538631447622819210474369053582109673059121260793539565306683079078100927284942229737134884203512248515029782594899853900964207034408562903038969553547612390548388320007986766619407275465213833875113213358175269638085302330518826726272681070726486703042861383045906698355405918249400563868233411892739880426717375658644152050561151556165007032462530169382330691767267048983228896556202249094192800979614691986106575643354091231511667596869871036094091831732286978014113568373022040268713194823474385058023525162424426176003964350711503902696883789539352580485449097793906750728371566655889090125292050993309624933393071143491267486549635170621868054901003621587027568168476172439310459623812493571241791668519845975509366904878679356156388460098218353981297352970150134050504825665490877953989933488450932251250832722981420421830324415708220032010125444733857493409707312619851386770399708424541792919899721294392348959550465377007583428103780062434690673316057366127062784499562851931081742897758270086113599486162652578891670166849279329032301797246379876627034185927364904486014061826628016262916121804598329563948095690293565112134155982659113542897558137317104598996490405494890503479464449475295794202445277143108395927313533247613413858764526802496378032180022915197850105973791164390256062042979346834215198573124119674058197723472951220905504963722287976324261954598930265871623734392859751989612038429185458517686942133561493701609884221266932490612366808824317846027810752637978530577902667924714406040103758631850628953467612962797084848131847437400196589283044365187996668937707209836105882997595715219197010812842093331142370360800961280743126132944399688590168821514778392034468746111830551581132969851365681210848784700117009847804255983602314147433838683231147705529310691803193836465276590722807112861350040998902793729711268062904846011757897416081331331388359972262243008321699586333297338490780390262519318016483841882543924845412723923120338186772063459944340074392738283736810597035430515010568969783898449554590249676793315533171113399008524911115450336546425299866859007548197445140151681437651766222337640982726581435161638318635888709814454653595801569210221462540432156234233424338759170641915491294317801609431000453972113416982370781052338186916989255245826374180881565699063919051539756803135244526952101671071305116012755910322456739159295915517246501636675110811154816991426479948196636946347587873077727735141682045269852529706217451167719646449509731422211588123757974796838281926377329560999361236934000125371406670281752172692931081376708380251242297914990647480183818514290526738833283069757828075075872751578436757133269936075466223139529322164471710402200695201125403314184733110718339170967079353968661986984764886530609953312892438021898668641059845200870992543172381613533131452457882121590487390236135995554001908797229692874935087990650057490135757900526692377405647018686366027518678230672483475487581219687551369561051283632844605619236972237259512491913992050456574546712433080262451408538675469779574098652246349637184351327368277957510494110226883092298053051231768956947550237243740505864946307604968352617180870226904392595390430123742095011068499710627924771138831020747089779736030764196729427179416328561718408657315118639649988602852806545693049102626665312045989406908754152096134442159869259529629733708282803308174838900673138019944548953040556949808188228057213345843081444842345920469710665144082428131099486521174554915794342468966751560593598586214773509097674234069766972984348470381974283481055137325830182142576546465453027971130204515011579256452116841918583803136380746428512244390225183565703510623989008384839972978202115283892550641580517291166448201848185179084884168778860716482991329012117652897326447908065865684922849750532247841364618172185705988925956855011230311870918621913137947532996583486562202327521417631884335146462712646700213265048813651686188440737399463379068371907545595775918820171610885260443753769559122755069513493230699268855001087847996486968318113108674968649077315940952591778646207842373047257846122405500755019064545244385015986620189598877183589344397650818157729039490914444291240218794136690379235798593805209060156309598554416407242309432762816006271635559433239036627772137218809824791552118389539892680567262787481787175417343861364820897637862065617703568797957860169544931028336500752842458816138735900327056468619992931251070834293032254973656310694428212959047294689978506475259847399000118615206355427919342138492575884796581230144635906122634240268925678981911997559368967423521659752246342737299175149492174284308925217559919272518179207860203431074020389659830242880508392373053429822650727182630784904709151523849275936296977542325155954236829347669785861788073481702663795223100338496234019027122817398783662357820026827768966706499971370065432081478008657280219949889574360621607323033065863147488334468385578050571341402645034968995324330271204441673878012650308766915015615896147293854056206595926158769392607522048034616044506107015639918517869678380772632418387353783178697702569262289903480565919922837985601930980221129114682161004318899211362184451839207980806051672435428423806646677046482521256614163059664001010285707889391740986748323361769084864344285693578455871746430359346667841519400252635452792248558844958565219942236395605671629011777870610163835526401502935294502565104830493115255266590604137453829307530553331569352016568417098721840640450439101062735548762172845933791229673645730083609653914900039219028927165040501884275420789069046987555719407913101429151945209100303865726414312633195387402007709821334307483997451081397660231076350008524335458235119201710590827671009100715406559965664580255636366423904602896150959073548760465690274182927006216320937573599059837677560606785013258903459750520679106471886220884880791158687220355362077622316733117847566013318403352791753083339925451953314655453730409698236083065593625898278283422752191875376529916121155999502353751237970633178517146653472271542194770576303272417445848703200939302281147085628262560254959677099726561963891904740017880863441433993427444256933216972780070226554061343375024749378128839099052864995282957312256709790612826315014405414371215593122997259130656817474607745136963651142322603350704827949215277969386114920570295272292127277244129012784661946066927193444606320082290064419267515860222499201033414520123500246096791377425330170235269684895716863366505834830083902203743111813799310801840124753256750008790538146882781879132115506356382656097357556328479917821860458682038094623030564446157167926118391607934906608603211699287515322822361369517330577203719626396638206527759336153831785253744863745401198199964696004046837388039277273220550056775972299940822691226849812495979856330861253720622666420118747589742815708474468563804820056965349432013884976529907814513285030222649936622710637878598038819460692073494933254262627262745635547621997147788388223647897176286626864538366627470048504111331523362425914042386725102723241445413349553326264757708074970547853806979492363908086164190618578884418547887557786064591343562358919943960503079510205204150430909265574767297904119366132969655974909779333428116673810317641190907371340599027505689150848977564275666238980578429307628294357912761883169010651624197681645864423406112938650554383193032289990790965985540425721970013813904196142321881071847221224567375935542902893869718616499788120445066987544615866641579844680946112677912291824718568703637293321855051337102151984770028221430837152038602325870549108999210295684418246920824296178418314213389108835224829077588891436463196553139254272082315631752383529521768142863905354892182483984417561370506334487078852644515910191720421540372970007830846408947409800482785514211998681206025926490018555787546347725197752519828217641991181451424493981189400528253201386916873656320946494211253782118169699982076524356968128621872645071634083321949632005671052763181021828586233918811141939197307546181464275051705796533239632442734508130276027073994983159527539031843447932883738791568134185550399941306245180607989597225848263430817340035570750925487414352611459745014722882108532725812642985418591280611283883559125621564822104043613993781029912284655030823677506911971512225906453915154290507645555237944876517132325312602181449113731407485585446291415432862490655604676720147305293766311089750915837098603880350633445466699822626569253757935262428328647591934003085056184579142277997812576147467789089795806172403984466332514437288573895000405602603706185833159969787709663571730500718792408892155857812298991949463525470147238190196857808136112613881160903038028203468719974774621799451262555169069985919174162529426842951967920630613725440376739599203524179725767866275258624172018620886749935399263076125230425715437123080805225607556421723540719716311703088828440011771551955812046661112625940753559386878001362863974634141514884700198845885276564867389765857921893419978206103361136655207961496246355811554421110053581955370735008723609172885708624275803146398850674871649163334860986095607530025891965943514205229334334247002593720238216577924173189411319848174965375430893902087972157788840911617934406094152004637880765414741474926763877475275480421562395717657828142245573792394306344492764482476880860580183636395840270305993628197387673589009576417613754512555271393023664678174844035068906293682464279718409127225285238767910117070579746378482484686703053554782891637697462501004962319980088483278221098303184554124951030136908299565154050621900386093781989980937995100435739551415867373131208515627442238210619862411464621380549355672677860020507893787891094962660863553405024590230445766902800432508529806723638889148861115760387404409612681923443629412035669320244360634915251794193642899340274723771469795533847914253310192306518012703628822543032694895963523087051571596298976284200826993224898212276321558352775513849217999449646016203060099181005578420683410010329371123229289838598998575943164996653823217269907706515706000503066300895179072445268953145125247500563702656679564493556911595149032322461878540553137124007579981486512808870818339936825737947970113605503128760981658437517784656419594524553908076597305391888751463020122911117426183425875383629004146668275238763664902980029948076816744367975549478467330925497073448920118252691565757453097037578908429420200964715245025315159834424673631320541843939177674476721932313031020684775478001378553228584768230304854901603332638922119351140161283253478048534733904045591160360955995511062442953460321530158764708548582849038588555863646268865960271279780916397874916173742289968201422195476145851240818214722461667613087057493946493605540710498207378577625091246212229525392906816484532707868876726252342590521358226629081633836799430627078391086803959832249694786052495088072770891229102731923672226806765828937302503776907153054654843033680960347456635056482160575526628339595075454593879016100572575463591729277005431372587310410431311650069877068518104558760049826981483588494404320651280687244685282327671505992041781110484174614096571910293723839141356016397832201664074920272908530789132511335377783428769850768415927035754948207103630464416093371060665488748907350125680608222401318919264200355479311480580083274697374120409540278289088066168775542266823469430436629946297299437026264080246209963805739392057821441858978171615995893507022012358527113034293414387068934704750064107318570716065760442697262210831500568464488086712956754036276702722045449849344147668627976341486523551993584414625899500788009439396197298217224259582066806594925320262115833684484909190522290324395116060416656983779343258656543477855641525920143604428298236586851602307276606807439129468935773635854467710640280510918399211688143901874290681485076115047049591081490729349012808042467031199396580213221673879150187730234080602372500406410267601650466332828162371763735803803429452768267105977728832713009019285747685427763357727524507615137350772070640209181252964539478088941311083784873074712450143052629885563818594720701185374796303084667159540940812596700292419342464820704349116677268293999961534227938872877757521292418564605504947823469846316573486282190151780976188728354055707252064008032193932145104887740636319035853505070464386076140917456911824744784155720035416371226333675324506660886895227858865175429681772780676780534999588882405042570484204391158475786056576060381114476996759241798263433710640075365556484934437681443163820872262146066193794522897186842279842688634031979400799616084882945081223570396177974419629519208080265553749282868866784740969472285593920223461317468139520661789949639158735622866297590679226122736254115873994481907629704463010859724169121389675916381708863903693488519232830866733938531770894216864476413186289130871265386250511122356780884802511322786528281885098821480142101421209473721544747353405770982814076428641620548622248594746416440898660993132604387209014994823527816139604887940625243504911974436696658826849703090980099403521643937597166245065880340301570712632113265751215274048606415041838856359869200682704739355682840962874226370917725599939085252138906501518102979699450207450553370645629277009214690242062414795904332562065134054553829023715772230210529247449359717960110469438774895689676730472871494878958481502391887770695301993983806198889600702996081870667930592205608657698454550338522359555859939233802154843553819956990214827084456906989450339940715760209618128249699212351018796699742332750882099470564337144455191943034331533623920849870707271092877382453676679208327998787077018112074839471514985705419446530757229675549022035276027800633625096096876460737446800090896637445052300535545280239943428993199223621359163711214891169122002303846030328499298518474964745847703140770295373385179340377310624442351903002980801702823348536640861981501777573950442968211587409228600862569477327438482966636617815059078556637974592039565792393907947419760573657990152457434145181036343897656336393672980574204373549075048223757588359097878923289576209759907961428674734657764875405112087175900649097708578674983508961394223756184927811880428895647954225972768807164964228092228955617458840476450202292613268184655328814041324124977695676387374167200570213896127591115505848692010455426412896064449272059430520887295300260572467499799663861553090020006800315611901961240927542555205966738008120930931778606966398181205761430177748329658690690502881096179865391018203342182012293914679928296083432630685104315716166274246648912461100496473839541102259162056741283960707690457164362881359402435258012835759648471085108046446028001988649182962662122727142563885110479917515181088967759288163354076246097070037146424237937261359984885674442737068415146746266053194366933167242924159656543275589761618531967708124217951122382212262335160100516744407902038681858731383824624959633887936300525602782428652571779094472462393248828575156565688716532053019479649049975778721190540357809185953107507115821294359803503845873168686982328794667388458526892203577823365327778496099855964282165755992213861386669804059821092095148019684932181147249648728133029722161993411117898764165387265758816528551151092970630024371248168986838422047066109270419505485221720462896096019343571578055508981691005898700610533994314604377349463578739188801953332675268950297991233548648139932489498244415164004147961878504424916600266011844653350114034963619533599257716456475004801922256215662476308375931950307272578108120829248623245358893475678865996125720137012128912300626351372152684059469818575231796628300489212308220624006696502496084621236710909355439799178868042807827420823545521610472262522395162025150168830018400256127891536896261418278571031548770410104256100410741357438634311552546580739522927258306811228779006945419034817866090669591212798756659347352810644673418241842811759493845837635345987787277025885116832369896816461069075945737082607716020316427203762297813822174146777307321218414034731442743787140934068505907201580481856814989118690744252852743745295751513274421089174225755098942094693283339102815756559983724001818312004351472145962016099745839662245572943801536524650798991905470991444426369386433601843512822262382127687793744684265379651846594381306933218968086687515036344470470246942370937063718577353152493592110887463356815995329498240762080515826375570660373392138970654806019636971868655193429003072399847327987594646945167418843750621958082887650144707809340238776957204272284716060717710303157222185142956159168190111318288013804723213913393450573558648728061635149429684643232248686029719061985499932133553868929550109271617281637640060188786132733689128173937039335493991092995086025651911584606475875695264840438536728184810351487065133850269459250803339565626721180347617219266258077112505537459699240995249477726397110993120851923932093220519365385367294294676568641292229726730857278336394636662191205325033586783457090148851769309872453880131249029262481538855511612606374054107430955838718550103643285038418022739312953241377563651383146802249532849317607949598595409549473521606150607152348406243935297754713115024271955358656822352383778464163800977298936261547791350144043377378807068965135944116371552642831755702714114852615195850937653646341423980013545865834882727341579837011703543272593690422283624118106485434758112992587626260150566104212655596587670982858759036416946948543459726033632630355488330623923175114723267203201884319112700603538687678825807817569561304640433587714473281454896456300587567019011271914021649600976932224686915252168133153746482743292584475801046909014622140607467564630828898322019006248423613716909234107201080741565342778863976926867787455193516172505880383546899164281998408856424851630436177462441124515943698548004241435477691482138036428564639196117915925251525302592740040451765781055092258512939519713490412506965676792404594210924897985305509666765009517146371401862188615712384345488980326499114132168349008858841263925189493495896262354433107073190138571719900884021851549186873362379187607908342299865726762030004307176638479296844244824374947146908542713868925042976332467783787878899113705791042914005048863613836855735145255464285254315178837890593758660850334332292417635263455685605737399898220216324415279930397227122360024820601001193454242701919698107367893219520613389009907207065026502589765361773949404605934146487054244179810379870140782943292303750205843855365852142711836983985588148128160631067797953372510155223416371006921900023983463521087488179044665459123779436996702209199438384585333516897814802120482060628311725359307891877692971519275027358283270160249730098554723214843626931614175481942345348910509695443354254929600763647024095297967030123971694318730462022073470364712232454430608060409642724516282497243524607521815954662647739985090545244752833023332061547779136365060658153902069996054417459209376349462491620898943256597961228673321410681475215982999538585835540740550677056369628711854345371244013160156052787181029314744721224654759803170257563933547385896180723283116202875436280666699266483769345313532737878713821308436961145155785789890305598224076657531210194622956469500548047618071247971273154498043611778437835407672599821382480323920340376893222753675659951121439219203340544844976216888301050472991751499606567376079392705033198720388235666819374048473200534921504096838369997564696035237608894658879031203286913951997432442212342740153908673349872088390789013856767885741732421652104714977150575312032061956618305630312168378896322270568119235305783953338440905496527093451253645782820641421976473410580929660918283447056749910914565126806240418140569385720338738800767147955087880422395143411322742596924140531626333396627323943335870026054476159521401827428754516060018761059246402655601005332795395167732883409938253923845214448612029381588256332409985664063764225505293117928082995070268906737837997969838944094979789975057039934438758266243157900369548548299099721683393864892205738534762411247489305814025471251517535065213194431693553038518416368713888256246594798154621771416207368696866458686953667181547531339291292577637395214963996771396251185894907413407239427445369701139239213439288099861209643999638290480313972887846862404452545180458401085053845349270033165824679485616830468512759700229479649998739946551568184243402869260148150354906918090636913898983228692151609399614123760958263192690082069832801458429186939019431937569131736241580698503327912789939128460483857442674155477883646686826630568415296463152528557452789929532620773489225579270563490751562288031013029302304373986469390792225873881848584195511250664753023801733403259812765819929410497916793264651130024961713137126847791198799795946256183630658636703193730306857592975449622902682071027915841652312388188856987930238230971867967049254054301264201192707133996248096293810893684548087163972173814634059700492530109005554550722276324352614692096142220481971964599967901815965789730234374959141639793406209394824060419725514811946399303859340247408353396853543865995366716376951025174789984059124312796458826923532408773306271904207016661660299175713503719097161269119982834323433613630101595132576398756013368827445205367094133641470092726641238151480765089241910703207482411053484047896050067288557674321282212915832992216012595554805559268165934016211896933238258505798493462013762986208614954668481934997594049123863801954550750543584922776955390381061409688485140868828482633881378231573143844911115143694349250977555650694168916797942055734749540488551207386869134438884207977436052004991287042260342572029016085884446014538883335336071439789047049243755647449489536210339546604866953898167130257960824102612411215995398741275033247228530584270438742037782033249355265295583544518881641999226271460998240700555554025422339621151049019171271373428356412605205492166290715154613530501032312821048290840132140508267017114543990859941298223670647693263955653307671962551852936911581318351996961735046015359493841545226661242237383102010359052073355822876640397016688768977354255708920056740738291963623539241928040042274422368804152560184441392555803754299214345981351733473694941458226215701872238297344256756148873597370733169129918228761857433010000367210059146042166247882951446086157268886320254059576546967709646829072515128332196268254009414488734303418680057350362509771821024607349953755884427429519113641952758903693602142959507086554626249919964900058612723837420714835627114267658323402731980569542307944119255917448731301166070992547024621681898864861423231454555740690165192065210113841666779300238434149180106021800956253817418016384052393835237197392157566883919446155563596135027870501864981762197601226535545293299008472063087131956774385199071989214998169011066407731299630503993415206629246767190529647751552888806924193830311537100673650356645276912730737254359636137767420683102152960378104299115391869547097482945362160595399991949973290659827388489898387114161865587367984996135647442774373213417566854066003877566085266054508220550935720481856016901144273483617642672124267914415881476991619413105050254776441799068534779884406571625073673855633306627753245307427969578442014917934376247151414871458102553162261883175126397311512696450252668789026277921916945186485346132741797940981735924077973241834253167556064209293879342909444959212746743680650954486065700788451146993365443658889774077240550678584369548108076046217663711195707794003750022146090233587090958082596665446221942591334984889118557595547768660213644683294819969209177315283416864117434619969526118083865140680329545943541355526512562436186524902890629471690855659818657371202918758376585508696475385174699495944806956449827995802868579327589198647863448337097029705198412650506885093226175983240000850504469443813701797362363326626494479463638772224540906165594505882929834830754814493370594135718877184850329743437161191656012913497510722280801980967417777698063396718226796057993583178018308805075182753005945557959682036537657945418729255426487425219834007011892417390362066572226292779298343267165744735702326374216760512208220497237395103496762332243993726030295640993317515752722512908157068540604181256634092760702264681377732819700652138752248266924238320337929934914332272903373993188800141511697794889490812971884053664604710864577062814932388800747488376805538731655347827704428155121062419279718415046215221680290723118358570376851523326223971113479652908345655709422438966971592945382377052524076724018481476332796090328702072274381288240534281675024240932176910816671931003759272000037445658370810967054733282682908829665149011242819649089009199881143313704265135850871149490616555792210116647817616014408088554360331222470781475286600037913048061119564994216336946442970435254870002367424923721790400521822902174251121896437658046450876580202349760863286831884300522974590886298905722148325561419684063898764713749701940025162751364174049982780022036034610542857618904744381699417956415958386142255594118433474911107312643788723885335224114393381883922649833543115583228842856231665876718753247488673251777316962842214314205936327035437063998306844291028688007104850134196425680652766742650480023214518875851623530776633515804690480258276451483551981740427513120452697485074701058155489156100954551326940554874994314344418994999088052069890121711166153320527660799619433782181963551387974990029365610886437442692433384787836147959742661655905896417913686324481174437727000028632384475072635793151734223604398949937314002557555301866527779270053798301256278777211544009306159415014312584523328823379079674210095390602676344472768895464411032617117271097009342904009582686258320156561756795420767952732885405860518308146385264575654698430742214067489963746231541814684614309238550365711722368608171170379172913365677443857776774427070907496651074797060556560875987257406796991979917453521393901180320768036616331998458312316011300241178539106369312783772333474072837997737644753113497763265935509679755645455388281952021711762673631061775818698081056337102149151773992195622234081866842603963439607263181415530411913408591266636711850208433433872515615158278905207761308427584633279355834632101422498395605489963113942876966057503910605134504780080757761649136881575829571718676618569406105488224063992697883597246338045617652166910798173573668633345692819680279661937488178872385278644858486450171475634524277281740298253278898926613787904603210699169192897806400171235039550252013418544407500744245432563859214788095337417179006389653795057336361704220137406756720098169373962241814562400025140826260632068100958634814446388619144493486054656746357661880427850516787566834655472185376276448099542491789328748130220943190766273852799520141336629249511527500681166651015266141585380154316579867400191808464937308056559813008237419642054812801324279467431334677220117035337213495035437748117519951334265695461545177298379689323627014577059351754102558420951180661453630397371716939034663919346095991979974288167584945332578647129730988860466790754632567426021755561325666858250192472335281831163115569332226308352273579023375794480059509821219114626897200522280669268141435023570723122839838413886597492397954755903736065305455964755854994621916800020245488719667182996996511044016251361619022205955807330931014318648530263903207614825652859698440522762979965437046197305342829930784736021998482864095490347374826255891189604948220878464257965270846688063020222544885529766002420793059920297559835831580069236169781602819750022415073910946991845942781957636001789834239581442432506504650907961253156319951193589233335082563618451817795421026727699780072332419470036114282400161930853861288034655740236446862867077423915706695095894931123083421035155408687934827261659705153052074588741958082474595667599812233952028304235210734214172755604443854754345342627910050587529110537901784325938609698301595032682408556899487037528204677514551690924941930571746896966276460731345229799109269697804850062618489938321823280699432159352703765164680432420467492688440052855316383886342942926504271722859959346028987338153440638081716874621410230305772589439382430688600045609203000434043878300440043058411308070048994979464661988925312859605046389929116238523798746554684263921477765584417267998272704246412725320936746599930786537218693085685553478555004860052149545098652068450807709944343070742481300900580606525789086761632779600883345013717178776398842527952732158417705138109420104450316000558447368718299217534704250548019617608477276049212463912932406556062435628157966834773304225813774556308531819762932131832441423993553696961100506829264782943329604671018603946944450328477319351074558765882990205053024571902496004250323131575872690713888069042453953493807866570091417442305313223484694843669286417844276293588752318396499958675117884284688219651246246873255188564983457633506513214909142528997689133416387981113311600250845375573448115376178286441095844304452847991230084957337238607731575638947638425173170456920814039110523300228424834253153857509293818115900374952093742705545551653172426978157156194059970098593502771338554641386822266878897530278589368525758086234846237081737876611573099644010549340800018769753856112113416831475226700014444361690893102953963944517210877232360468103666410073474540664975226039262106554171188464931921737810588697540652662128934077747085110348443224143093091822064220264274592124068268310708215582434152022214084267260728044852870300159164062649110568419962958693652448974213675907426192829759451050364994851622164134906517327626152255223545163872852873096144125879467891034958228725437842995167958479884266706348925030231773765111859113818192102268284778202358275648978902246080279026811931422378339585748484529825162804491227465852031037968542200839726943486386421150854261890805959265968093360459771569398511054560647952965015875865145975646832919211126017995975544819304393413860539148260086021134539458624876353726921264630000667612878218378149426301998836879230980313892036906746768823810706192204179134254123825365321334912958078684979886467563930862154899181760502810590053829024467966866034256885894769905365162780079173964709888732379770782103948221915806297628920308533998064334697903347566046771479771984236369631338666677756251974587525929820774364641614553848230705979759360076221930804429768217553534839623907534364652045524563286400166197898631292373271613888230267235358797936486175027911132114002508315708124708031925471936180977709273301018656345590444955133077856580551675865788758533238583879270083152136753169941421999631011624930736539988595829885549971416630582687407520799440840132541576921575326700870901382541208053074859588054531682021004889803944650221694137102088598595194301783167304664998498679931481129660301028808112210279911410256282477357206808409344466332875511697395532663450768360504832321571802915759536073384453218297959562344679689122091721230416473278281844269818817139713315072822871519922402909797128844109109683930933304967471642909548804808842927433327851820833497379689708430497772634892073285843715251150305423908104556649057218133588753049264894038176421169101039973601480181581165974237430264862416874541630658885894933556414284842522655272423996546921887808696800555584063153531510418663937590736785259623348989835271042621725741364268191157146602385863368701713214708599703023786244090453954858090506266999841718442737398399519533289200562033474491577615577857068454213517714933740533917756667117748109478830720040318524917332832581137904210350243699219156407065719057557471704785243706556342209892751924426484736150644407189270020235948229130727092689724859419220432803318354834630617966013262092076329854724111730927405984663960858561899946295623529922190464064283071527263364786976512571480959782005663555619926268769857367465820908867982871136907200397342747763902707131667715531265541446767310649040777976885180243000682354047328437280088342255190565477092409844306607204849751263368185210094603265896220262472187720323017641608602067155218265763760886121534698888928847150211153147378375350529101728721765313635539050380151053337295570252395119444897601036647163898796661993417841881919421645589076697231170524001078466291244244990212856045942007631575697391918443404801486698711210914028019368275878920511177922983564249854395231179399355982948406464595936558164580193106473236475142565345128016174236322390582512989076018357818868517376327118146682591706875134824322907845767527450328464392943022110678255835158680969937132329096672436431414505995021503181658862054261102682113569798204414012164042994207206539388352879275724071984021034156660663406031291662049697101740132285272417462704749600472593107146063818579716470494173950419894358181995915914239104018125453939077178312375201183733884730419585394364120187504268787872981531219215090103785863835082580839999361220264821167905457873725882780762895150980363604706446996764000264640801261420711085997874390602415809384366155446743418620871484186121506936057916443619930499241945906283328478114403765257479557590332172063415495279320957743570992452069258302657626105669769498511284339063590066306086872168506814455548347137789894070375773187192097286395740798205372817030142529592905519432901552102576104661517770891443038110789704786138890813452404343875571638907153990836255544742463323765870365508065044705791845974177197365672926597219905779692995451585832188506585079154922335873667198175506394816610883020373086700513758566746905114506067185942236784544547372331065999626779100293097142185206246640005645385545529196789402056320483608053586834513408509059694228588417727251203347430957753616709048102472495475747092127763507008221102533409814182376983179482389105743884182390120194287057967254886106984789413618261465582994218633768705153184724554626347690547155268209418835676542224254748584265477028652391490865534769603122435186030486307021405328391633211721496435506410597400059035929804659533316762794118922770714665975718040208389005307456408919162031346770076318582533502791848752324732320581861629291707383174669355422068434615561576232871927907710798761340334249624446553129763507872031872122083593099352211869325525056485674662792514909235669864570576568918551390257289176910469164793560271951924904641565396375838953978718925095985379201240547955031124795526037786983926633389702104813450368002884058290360683332375457995528248424097136167085697419870460037743944776549067496057369768497045442405146217018673772105077306454849827106082571166063658067250110491930386785202768511416904399570390986712426348601999557513835173229862696468598741892082235477261686941834626656913428246163798637160807668299126944727377683055690934225535102200030832373439277513529047247706497621366118472946560791968997701745896154082127488293704613549778835155877366906968222658237798292813410815311801919566298458291298927199915848654410237094867613224868994478554032328246370559689961856105909087755949550198215486113390298969509524640854283550176861486643014952118880129132010322081968287375861479142640672142715997775472834547089999752225405364459034564310440577542621417144393696603065610295749094607792327948446779763306659071079278338766180469745469949794072336979729541922548770092002361064033635318471250967776762676015312436401341086349742542644041164009830014271986076103436056986385130466850212124002751550092268505658140773010921585348847324415007321206590095458500224903932332770133918570664816377993500201599140543007644891066286267053747212645361960938777262132416850031612152002824669331943004094787665835606499354914185098882511656614382216484579274408772751201377613502835216652599116315318750066472189132426906603927457995822234145147299125220813477214421466440704251159950711439039366449687071737574708553666286846366025666746750945793709509611278496557218314511844837017380266217456530294041957906342081430367906157679025464198108106175592320803779526721050034276582634835488981670610508760884015007398514562399148770732773963498462299922129414148431440351389734551320665363586205113857868413247665111087368182024338920578402989850524195833376575947705341208344551675477469897646425727843480103553913545540888978240626943868434883799685193648309197011134292518840468901678205606466416737470736203544834927321623546770259990893240251265516846799359252527762744547544124204977225921403023232603677364715164082138940000166424052838266622261042086688710115447678945383976924893943487747955619130960520765363964672868538726579441768501589332333553143888649090334698375594892970688222111167733389697956163621746655609472629027720954450333367085460273075216100727495314637178743478330362979185087663629374346024384712381227832448168274127419068691546895760584946963825076567248051960480242771497420291858836403971000194468434006444273176780982192725461508930313326788711885259932489924865047040734591056605579569368370512797279098409708968454281823625976998012765840800813053040797458478563125514283146864530908490899653982987668820403658747666818968523259121722031003035025757519835569979412438388689433227190416810239236666806446254326619584036556458473459993738698757976890888134019424545265331053246030420950344565102515781284197163157321244352042157892127888118042596490891173941560840223483860392440570377839129316914379589983851210020267973627895672062933369838695501087403596872447728492437140431816604981217772224593133475102524447777010783529284018252979963682519741809021069534366912261203137992600912760558761487450363828907833841546929889729087644355428971634098082320884237792393393030489742840032373942837548652396068104052177454546691222017512344087292847514426262412024048570964619691528750943261044880376802891789324270399299428833348531469463545224352621797524211622093029141819245619775680175185287686216851761904428811077950418970539341187826754034661727951408026300101845274396674346390021357456900228317275480697943322981747709369536279362373941864686141163514390175778720565727526475274492829869670804867653965466144444142740828132009065030942227762488386303070795979016608648300483026560794921839902400604978212002569310239152227006782082662628220235700907154073429597110430647191724412917691737594973220353171766533184101811341965406529265689473292002864742006731868008865824631059124165598704963471318002956959111454723714381838843191541547897937521453830885273324413447850055930519110462893727999098372972126348508149703804632368412795041106416797106951130655657831798565490492088703552516283808344837813931626452506718564976375727032301348266755367673985294120067953620109405825287045388962867066447340888717599572588463343186714031022065432835020766473951303184450130644707094576052863207064688950000727413979634482331203652562723136901889557095517550697018690199123766136217919369938590789266858120805369588489061389784105006399148309855799573170544864236835471930206836053690126148957466443320114293789968073244514091206252622185731300348893230745395147391925981357456958047854646462291461421915219425798989947369808885879918416907769319775994659032181930884039680330076552337543437632863123087571407321554888048878159523964435092081849915692539186184784493684528114615054740739372955634792324396174951557085858720014162825905869664430834138313967842739405812502556962484091162550733387646483314252056618418488424230167221608033516753231782929123976267041627371356663046322745360854645349256388195227265545724818407754450083377889231859472433036382793681798719619922380508263625405695360524980883529498106705076520028178230024667373211882640135805254822987552880918314951142624013724206873596174883662699629808972540021152210677890111783620783063843143584027333868649142835574650935724255723703962123071396937667083621444630606315675468265494912628854376090031993447562306207441241063697548287053539834364337461632241212107517681108768883219509410244299151412568309188110959348530803763097772181452197341988302023487665949440255781950007844671491306130541345875298021958021713215970066501937077781774959275090099889705941179676240794968903154013742307649722539477811943461517247583850449759604375231556336216559320946187797773389583595198588138916076182915405301231109988425193056257748008038230342322240043958673486354710443391101392235747987103069554860062331490794536386070109911283101220429294830650067079877926762996514305153893484700703844800625411503321598213848634444100477781603752382922786499919497559852871059096838791994873524278275034331363901843818366998469229019334738748264657370654874405277387922682934753707985118018278113201370865500667646392222677853889264319467881735248565940879340614802378874029868218381057135693709276583551207260426248409775615387531594792452750220238458990873705455815654483405645715619136886572167129561269826030994968434768072819842390020823483188614428512971731865824529214982402707680518025701060096995493553485653622568542004421701598163587894234831612246662536094572518325120676438897780574707766327214780447123136843409007365483288568085057943421197489477860142595970619888249185036484179036663302751646962024802874395823514635731037808062411277077578460148165211498355036940280165356249286311529285739003283072794362278521551750870376830395597303052128471407470093840323928870886308573319782244380121615805229648755577573307512180412141600013530534841886455015416792545021934679861940318533651528260080866344221555415218775620221324814734875023937988807198210263169649316695014474949747226806413025420623510056266287900210491741154490455695599837335839466778887678017034790891822181302475053127331723972005145699886560525278465200002195736039561771940038310128257830052125622995383585490109805174441674558422236717269935903757773225834805313511764806558868698665523182345810944888021815775840172395711352633534255628089406637453041007128963221871070380295041704355011012703150284291628314121264513569101353898779881906383994516846835328692524140579911336803052646737189770692523572742517632850788696855517141680863404467710761473376013531887114087307712640067212364833299591166779753428363647222401322617871467548373595605244031218227930463420881704488703430148369986856609043598435982489221889072162188028698128315543563997226399952652362365917355835416999990676905715434629423047116621301127747416353875622786008131301635489399252046218875258438101881491959007007096429623756206447272011479727116075263321011589637284651957582645915292143044299301955908389921578839923685401217580117332954781358581167040694910744509132472738052591837486171890059898212060791050537512876052107964744802701754548909943070440889003259045694064156534101494400904872482975694246208485993656292647578295035764372525308000443301186123235513107851971330092049268974701288461763795699991529356113618977560475376467253732801015924023095539553816041459429915225142651637380359640445493234694235635056380003243613853656100469415096619383043363854154576434304096100065716833588057866870369105607281895681200225304178202351804016644016009591515683931368649720368678674063794815058037745358657200740479469924774957448264985061905920742026158227353395125586499098034939019756456902998042347825855039959059063585829462586033966334876382967392889967052257674123943578741798455518358574263439937930574508979255853938019119136386179876935200267404037961411369769400557532679330267800777989448479496692669973155095454308027320413723912964852522233731319854259793035593573634000293144739553854806712588477433897867999126987240397418865703067251404908081918870272805036560383954478041559575962623997351631736898322692891573558234381765462212553148462874075448248336467916280079758068979197799191416373933780463634781731836299056982100832575298748648132970024957934899651601101024749718682245466256787557053158220906365318119603077526511743496930122262494375282285257101785327880906948647538574454721267219754217602745390451825430277603228633558375789655600328416166607400485768073477612186377080351781275303174343510847675275950044125343759205329095413818690777580625721563170269444350959896338752069821649835176109658080995108333860901823619835008969332476801652487722036909084935300566435688533839157155781531742540473812365709982403364701708423142765978540559661030684647041773424105947317068925319236327311504515776895284185634683230217487368826775005640804180715147024224735839743870418111686029894547198923692862853231576064788101440689813379352160439808606200455517191733018932220852948199870933590376353014246276906080202636288042242498973333357619158015840631862173105769384631694550051054009459475195739084027260336445651871943051774615249445350157213459945286247154840372147511938200798667212543350057722620182557634959143155215289163302640994727962141383899170581475752585002573275373601875587537442123062372245811717907923102622404966078748993223002962682704147896536505635420891409149881743930229028479689778686237942847489085027319761169135195382739921141389305408669409355511612033835375819803788060603366786961631565672209521747339770218024007150833295242063245675465730271727336156211614761845321755897593724282526852615168204417798446088026840217232453209837032131918549820290585484000024000634231282384807968513024252306701796551575732847316311992886739112547380520066310244959998942367480410345890409275121642324226931656692779069863687048529314796244289129663913673321450586466978660552791231580392317141632094940171138574180143501838713726671476053402037014873712441214879192526769991176364311122809100681645387619628617283903426891109045700640366546932734462407611733315334780837228113472322714211415840764831968011278227424424349141074505254056564569212199819453444888982793775821319120357916535109596024905400787190783997567243061173005902572509732928378285599208605653178039510474427769211161323833595632205084730465077383451307987213126785211452751576388372811237943356994344468587478901724113970236780920283238328586565654597397385143786033980166853303651370613094858484556180979929884066538891329407313606242391773111384739320318528350144620529946251810180737170382447571177550846664726415164054693342631921232694670598956515487716472372382189391383657887674318191464744811892530653246052530470022910381686006656966329994100219542709906113004253725483893828017676501557314273677761506965224121875219623941797936909247339856638702761639242000542033758591718151786796765752065820421120176789197542657768763842433803766121147226731497320578733939397012630102364132640503018778683592076186714239710002014452289695754003476375909004276657876456271921620849488388616347004105764755868309873250082802587538374416782835255998971638756678558959917186920242272123317862526411228362224394411288297213368686845942277519068879441702898260856908579011721735884318041790662362646039779448656354980603669825271830366721195415920642096645438302516913534040819758280709950091888282426378609765873185921510893214620130812187237220898207431339349635840710878065868977362815384151726044425809185489005443868675623897831547379143599200664373700895858594793829920263841356452669914819522035057685794059438217205005397787750718303089179972205197734004155419430153019849007599223194503865821111999208975862860897154480075877679701288871813628949490761101395529845785641467923518744341423851433252066050076432555403792818391152223983228729357031092264954787866365069471304428724916109812301749524251408914078220510750078289761019179984443442871531986609543913864115831098348242562696339121976014802547820506412479749284156819571587205519993739281842849001641279642187393501024481151106330080948899509559987217783995647969736403691750911865409111420646527539791915572902007396902615430242475576618081359663853144313506065364534163948088758006231191612696891093369314117699880307946000525166254109671317974825732553275241351621320147967660857716217468942492806595424817514696929060205061875636257496069408383842629968066443242319312509106514446174310117303507955529207613963363003420026073803512310028507202448640063453459736674751413272673262428950333196433797648396463860062654650709163600651435454864579852904008032995059216943718796635757909711575252512759332363130429693383298132437075294377741824116955461972863486362258220797588994838982692128489395703787441129585032218247583677267291086001662075496222756507015379920349097091863232694814006114667529060346987125478463842144892739040548456553400419161224725248795472360223700476102101866066921814104633420773956565866210208350245098487624364404534115012296967553948341636185420951396376981209114069318124392940440457606733389345916853663431828339669608833821031540256723238329020456437281208369420791610458570902705476801801447445460425950452093251815156811234861396344971723804739326455250466525461173767483116532981538516083022788105465844692848281632356437731412723377779622908386202789423149488024921732445112665664748779736230030922009128117061421844467094201831484872254150903138486938080631655412543938534988477958319075957676145571127119138019329445744106634912319508769754858465146849277248290587686548484469883501289570319409843627020932585005977609209247991139477692729162795235828579921095209316890021760983210945416046155902461818691938142055784762275294126830873999303234558285817506750886604433356463276936232247768485789378182980479920705284073470645361670121152415217186819971263636503328589336946036305599461790819718512651773770943639681593493120482174246240328654363293824388239259400803311616921009643849741200697692542630237129871607496360068626666884026317902614378175276110146806747515936504026158832616772798833454411746670443442807449061757904041650507874005984401195413302057473546454371417122521800581078710397087148591718805612743334202508326229798187830022301755514995454246307674489859034847417354915584100159645271510946819425084957683947033568918343549643635179446033913728465031837665362188719092142884333653291062870357729376097549370254410814177500793420038281421560755607698506146088723129945843642950882205020513881048629271152841035524563262286578802447778376512050828422549961037312169249612127970290247525911899803265662116000035313925205680015539538803561979709030241698558020161593683668847554798401895543418375201013458701169540106264696412024806688326283143461797271176841017104386994648194335217937702720014332602489291335138451936320422984725952077679126502718856091194737050247485214552706221096457007948485126411988442930115637336667290957039156614464311760405946785550838748407106578922917583153546322956373353132490278823443029002042390163200977592797335437313095622943908965902720772423634912300933071094262246901119096930262410502730793290901711756508714537189134471625396555921801979180467467472987521166764673210552760266591090074435351975040854339927203196416813382062274889279975610111296088956405428208681910355407427573845909692429121703756457843806883123766889100393123305908876843067007628838678942601854236906479558468330731125782906685407436161629921546894951019290611804090700976768867341646766380137610334937477703995509222114623781297641511055692141790217897209146216077838169315258790038031386244223897143803640088844732695045863443230835961408384647516688140788179704628540394408265255741990939585984222884582817381441516849731354368277434655244503746950005559903129327392956526665574172012906608511881670403914375945053023436747221947238313461221943175189384813661018703470952850597674934144473416490156520185895879596099094562507378294363375576702108805222297530587358395524184685828992917741378973692393921714587789036284242942337738326551950923858840164826208905424125972756567564957605358238572277945006136755711506354608042716178655563189709289199749223634159350652148158150683671460943008916850653091446644794254830232796689777938971596771430503571190414633648037933792837869454864916283673659178919033868115835619521872625738807701326410566047793774327977866236456486780917134374334745271837591669713546543175701071836779326081458894041490712787331666609196734770488989593240600242346299293995626256027534427021478827431673677163899263568114848789945956688441184178421729153754869304318192082519668312764957275166113665293002079542496676683047464450971735064702975620523704607316452078751714063209171820357929279872224239026357640369540054211426341189574014202124291299534961811827566807295361815939532834257305205374730275176280013410317489346571698470539199245824988035617374203278811035440531134562821411549518335393946749715015956405175985034356247314358679991676059445075408074659429241509460796318413497901924347953655371247980492337937839805022206113730426449631590440725194938209371539788063613343281401540318370195915187788975566116396124463333912501902182317460302353200798441258059592302024727334901791156814691379969555223519084754235078651549415200829492674376000816514741126695681341539891439203035184313838558067592105253428864640296284673944703529091047704014043126758635700406708816720482590383813782569467023262284928641218403799663114377861923177255402401044413475644445878069036123440598107408460560731318290941311091329564882545638167322280005815227163596009284563474826368890309710578757086558329728170617628855505106173965389613998983387746686097683301177499561778886709623635427846972483449452352584243592062729932756016388271668121093922333984037510090459111877827560927611717986243153562236148386188190891203227148365837083067126179807066050737686558710970600585615897434476503044334074457971267483045194222878548799425574725462654846862381473730676139366574161800362296636302942129142462983342350352803213944546935449701763923647507889360679461953217349387565951109024316594616078259749997938959465355386323162466953799995143127871698443224373398369172135647712525214558694970635264984809696879229223773663671803629448215822235032068767793532432107240640679241779061086472995868550921062874386497980745198611651426655553266276003373188754510789389222262469983354925638122638819969674159537270453362383936986224795425014421932761022343598961632950715098645265673406747889117150957675456154044465468242811008602378449537001379361176198168936874401519669862741399474540087504935197641458304890876230372337022498786772123097336078809303957882584586882865989914582408715678950819672966630450907945134530969985909128583601078051088059040779233907289961125378562824912288850758435843399835642339871044304012072481073896074173131382696270117831397282340917117170317317209081656405691208982406576014509059815150150684726885581047594626712132664852021405670668675317052605237516738885933159628902893363383034516279799893186529342691992578084806631660250031240155274771774794933330885928265308537673131118448602606712227294002989482276321816759604452250994238757868191897165018915936849762120334314546194044122106287462848702695707450149441161504530104487977007033594571463825935265620373591283427911667502598854945068046270911590205757792699387932256468911786386198038230764532143417364017285569264890686419071290027610980168444872225089443543498323280359782979913797963532861145174281002754754685219613015627898221964349152125360109182647795351064125782598133936138887108620551684581046871041156894087374036937157876730818311758002975958975820093881706130463332632474312658441294497503318699118822137815574515688963282460254801390905848984198420162584020917622837431518696290528091865636758236087291260552737349132649574303670035625002279044676148794334937476613702772016997128921469553043828478805166737790232112204179902224560578281004041960895547876977571423397190796332752653747967585831654976231643324091851264911594593088371969948521200207145766750421884203114829779329037847113691825328210183174752289556550603772325507070732627246273389864176916721329834386246558964429985677520398015732183388336145654012500050751057378861423521636457868424656723583790119536534907391852635007798699677888796327212326969445523364434774979695613831237483479828137570790908664613705927851265421812900256504954138898069223284652818189082056349819529691353278381928192544903390819861846272466146800783087349912680914697071392655058968512653550633936349150099447833274093858972565412019728038210621786443972204743646828443741047857723723879421273574013881229340462133085694242514470638793160196338225935160341630591785571319988601791523899972081569120655741151081565315273568235020428848902778026926762664734096850740239397596079539498387407931557930769901100604338049086660802496182760174023007556533925475171720886949527095171813136410199246580286202825987104423426081589537519129540712313675290553220941187526794152547164090542760237106245697959209150069847083950360708800809484671435045645322820866372597846721472886239610363800332163148290234963109283050187304817072564766620506562772949609410938725193532557470762223140659073448635424250134117511941704658439907593744895162720213353224376744405128406359964520404427108810678928608930755145189060077805533733581945317783060388439951701706737459164658892075580059050238012840602231801061954316134315399343280286817903397325697840596591293306252507917035895632235958345568020854319604958095539979363573165428863441756153983251982910746330097277767080241777592580221597487222766750712672541060272954009521864217907941048545547235231126599654229874353799937420509265565388091707430077957913421487770975891956563985248488581904760118003123893171529439594598240143097439885301632593775780627434598131167026597044298997473574085470043694127405054099291059519599805703545772915163363057185534675837809682524963721181569885483091722716839762796676885714916612601256672073745215040738350663287336040259763805146460395804971936817119663255010870514559910939424366312180223299533391136189367518916733919970452185944714207752187427712044455697465561688660290260578691857324814967992535200569000819232439765349358427840109273269705798215307271775972162759665450388255097337540359210653758083398514707412419824520897752804464234152210018351298176874383397451718263792560403879333061389894380013330086643971346055476611582898391334683896026392163534746381625102063839014910978607241420071303768361090958117880657834362047118315473412236296733259443155069877295733791187998846529043066490877483120808933757803512899536198933189910506571996686011721067588488882038169029238346930540345359820471381211280674798166492376103292333329718996388393615341262051557190677433248506592334177526879630189140592047497619701420908887774997310184628134342558998842047646508117953428356322615938599324839238384804565597193180841463121347773596774421000923359251411787061724744712526351219291770151288894216783563657032975550453650272287427950488797906538850940513068264282078234142141647882374249175210054363747232191523574803780150062261829026106082133287771544230612851953970937919735014218276648990124903512635896370552046521047796455791832479841664366911560807683511099021679045145415214671396280124330252628623951509112444661917866329993110625141153348938393658651363158427922330136423174838928723216156828135254423200146094178449300061627180599907417686954258281618366820142142646524536042230395656096810907419040372949372212755796525732140994207799391904918579031933860058339828173597947057111312567351561647361930669488890687192264289231005980364069240132601965204071169865597929607894067930625269094573773032144302634741931081071995583377908757005939027814019441803825310504287868740792607819193327980500652047652338643138191787903936385578117037682835744140497393037211420939380199435048095264515262867186395603992091004185523582541037675138927675496673326382628517030737663501592069741406748638166725182810922299938610720385298880784038592455219085928941828448566610057926853180180305800751459832679119718399134682460337917022305809347889090025274849214870610445091109780154157599316826069256267362801897035798762345479086475167945525477497901098300218220358623045560256381133987841481058563857238311214607587304792200336303930391096745839195628040747589678065792599645409156053503421025154219608327456341877337923067018125658148498755521130050425514231383893736255558989074844019356147638954799714994254865664300918067117899395879863332150116380695443569252211561810881488818881394841787399913031376075744338299849391868071493789621954753599863142115653465385426523439986084291778947812178319728054946251641437877863668998661949841590278775771010142316371734617407250396708632455937170504196435728114481408192452408438706797924411557408891784355505611511285288234770091950802650265800704297482233833218485192385374220362945082606637403730027902199306580440824696779629251684187148381219832889191255894662081831025773527809598996759002493452440181188672273933111923403059529738457785136422267941289723886040695452180278319288819171009437989072186156297057697848355253610537783119015543474206277115798502774960080565610677926725765351597986781676077715212944784695460426429292151640338425558875831545275443837809557071857321528843551280405175957710349489220058371234227810786277668754595545493342990612787444424757997443268918133330117785802410315489786929597205304212457670177103341067347509296912524799385134352576438467032269260599900071112971548280961276670866541499004617230369844159833430055480007422900949767648083676381858389098957490719392237727308522855664309470659187222708684776545429470389960132119797423063761983193769759085222106486646288103772505968387898386847779749406795381887549484969147654890804195472106529513598008795363167035593554928048077951024822579135909317902088506697584156144666435935441134315840037392633899497267782584024619191724014018760647766748396028750135663642068729526729319463020854280218657747590156067760251121103877658060315701671049116303431721693292613740353443407802571955160322677272254643283065188327212540684950506244901456902978961421395919467845699013963074293928995364365647563812343404074188082214125344431679840549405382885120215905519613802077638041569878151992473254686389851506529055874242971281583380517927718613997615756168115727562228064915178523840495010293994058608362296429765818884647615189469350260572404327093581686232420229110399144803940728219767190590351155447882000361610581319710740236955058870017780809784232442866573084427090073992130320106464208847950779844334179360334405803137590360335864500265023595189672511626756594438463887823687422392968615632954890404373268464494731253327280668761721180526354671801839058483854784483875239641183691987439658843198245120814422224676511241366723666700348025574980877529239763871278793402906943533512537305965992084748823949752920117768133419135576784242069203595435772986871150280154514501642334032556699316923068111408389029265844360543064569778684515217068267804816104791352359319426016257230118656077645906307526110109547903476141876284263666877063280888606976749178064362549134998630394258564496454612595832743118038138852999763776348328471240532831611558260627147748313604107969837587807585273095095915765170704391983373088101343695957635765918129903654017541276602255963305679437384139805309748402303238293838569742550989839805269943006840674457346076510261648247962642264142486230204066852808321158870379229617030569618077292224058081890962654335996845779956872796627508051933065412522303956747716955213042494350008764563156015463390820331471018959257206529476818234636724357220827050560414300292366356382775839732454575929272181046907326350928331884176540969902631798508194750268070234301517789221650983076108950693275316542511626732001352732372605117185243136362089285741991062850351865330074792456199142903923299714360027905966526958929129453234845275187626633899729888666411040051072352878481565005743018087148552376340027781296228200080472698495149125267371810687483443912521738714068415896008667077369939739795660267240072219254694421967054547528542133281152040242820927303260123344212677240587168941766383922688536772373770846199112638497303788090519213252196937569689909512186051885339604376258826156546826971941911853424924462693057501710435158175783170557704229755598740638224142369734457470083338880186089117757532785203735046441840296528475700241957397954352638952944871874898097648183646551232669398004897215195403988408788997139610342972171406838090712128437047972547624756909693855989027649277427533093164096946898777124377375898636335532921064688812242561893856292956082116816221375714794982228990916415343904786803541050042404704429293450788091674702294276382934908362114076883221342915464032178440028938693489243078200016952753656654588561780858635270745004199715676960722960042590737342709463653569917615283316881784746145876214921030594583089138068520191309215902703133222855324576278000413732323651060617676878322869655372298521910016859725715365370684528518430537379974805775612052902899347946268418413622778995515137934820269122187763453464699424456992316460561707783420926184378677936798251754399006145287039520316356440266223306224225750177206033141085558355053353833517992790656962597518978357413106800190335840707034726056865966768912520913962040869328158599493908342960224037312126347924017239728885794439926039095752624320759237432113976303510943773614121432541631878325251299689202803115901358963813502352037055241701605801858702638698055800584453003149404838475145267004154613951363158314822955407481122235842799529818735217133234005115730846626745426557734186598553503286462094579087110682977578885856629837756947013188183875255452911335907995431728523913755276786724291875917741180407005291401684083955942887412984011843019573196170917019431136529635231124668551769034639899117360213694902952897971024793906276501960960467644944275682055029697834303794846185755448285558513103138662537267265526481262844063241409946197809367818304159173898558194927057851365003124196372439003072677022329596330965252256292904838490708314961329604665175665316023460363510206484844704720779195386792765423872739716046693942823099104103852709918383968152018059772396963595429135531695920163181963594976352866472255887092746632402960774280937551391484219481067250678084918244583585650062489126745475506989772243747090429035915372058349146753257650278857940269699032144215350001612981300069240588814744190540163234350041974133588240940801506962419876184040722761706313987705980280041859314996836412497118925167801538042989982359006367921021811447537422914180513595970385013086410335784773390969191587965122737386316165947072005765661045330921407449439539692441280185551847737920349987434824396321196583967882318316897159951495745008065994809800740031499508911213633416283731903037135366483677453164131262828233091463778131462688987061968238619846413047208799046929045943722632028225326258381567054460606744427262329388184039776638105175318364628603452234112890624921343576533743052889453458366136900146886690498198340417527136421593273172703568609333781859662344239292819615787247553544249910547045714599358795879027632302464676671125407811962520144876257163654847960512470040112295827282628610380482439031268343238908206627668552353672132426419959577968971732185402734709868358180322856676036060456186842892008774763394355886833863753306182880944783439865614028986326630835255861924454528015421062499164661557835532334349936762773300087655723089979096817631211208910452772415564223742668279644430477092824495261127845007176966372333815347243569783534746036292754498722977526712878598606798715449479538064262366743239830694436204673087802713442034695736998333038265834391645020721812153711588863330917005952547550324558825741970836076062448352080757381421459762871062749673005556247565834791263868673231423800472415051174067722239650288007971510881527956923823581082305037528798468833709198884111094142079590777039497700399373960026477456311465520433529130302221775886963212444436618812858304312312783560299356902896332496191853643728380158817131971000893535467939582546723765084724553460481103222508856132562870273932278106780100856297803669159050502194174098031436420539521549294748266034215203709354854827946349902783473746527852938674398819791566310120030287665568163071913173403847073234284947046833995926151551582638440868212983189473056908093512344437860936854108321220111645782057016166100815853221369920954451217589612507994344326704509335251268497910768270619861786574378796305417127715209069569790372622972952899463409866600260693682667446836431529518646658932076691481472550625365451170848461404027257065697479969442954598630219972460751099880381289151142383825006385604328803425358280575021030769683305701057362467857404565800009620910234261077519106429233835237481462201220987311707552179766123181178593660943726673026310243172647921143124216984135881976581052798807752228607590500558639814487344325455330418836661784915852625040035375754805663949848739930167758922891113516216686208439394399105033963833111472265725493345672471867373660373054939598463709698674171794340417233927248921007897729727806366802742580472654308561076730859868109182107741136810741992538457936135009812100297627289596576945073157984975454407017895107922708895030963519907943659925252521929617467907616808011338499319463188887557144733104419426990629834324231670266513722303592988852540006807534947574230708533636742421417780523373665712721145309736773898459285508731478389581480761594205862137365869389072733808097405569422586797469922677816268631651132065039229297918900207840343812667540383330270121277349238033994835597468628560311615858872421691816721829796619380977024919593601838864314332782454145210081691967304194814705689591439378428620227682935787898730533451330378687945947776270863249898022113531279186652628816830956597778872968407473022855455671545159834840687957075323458594787604749965558136852342411620015367743915691710462323970232791989263349620507029666617096829989444707249963855512330468735136585263627099355663755734739595579307558007326398613861547611509912429869969959294043181535707259293058591728001047249349716285436240672683356300566861611222430570416915204835782670080759473033661941734045028935216323647985076119651983279144061968619902072320407693046670836393760275315197335039459307815985702482237113665234642213138656946524494419609598809914496613071754103782565784014194348541869480386374112468615550913791412345734427544225776413989926777005804732548133993135188361083994696348141016561579818509061194375676852159597713148126549552239365651051830673373928265070080442448615406431890285877607471038516740800413920930176475963367134570777592626961809633966314523257967095770137623083941617260444990564059284598001993959583882058552041994182074359429255067165433156450571066365816782975127936354766505180896581664226219602541942909120195459495399621512849397752228986019677015783939978096642148638714679726171866880099687153779648188739895460646947137149471644749995688076086036424383031492335259711208360712517447970080221707920901561678087571635945984332768612218830175114039168750348667846649399283984816318064830582758852577023885682226621681676848039836762751627600740175714964267419607866413406057389043890439730202479648450431287134455089747087721148420624433946503760135253552028115824357778755834936218229756939366098070172066842408354270773542593028217222622506323721910806321938412957727122190186249870078552874465457400092044885189749240354466680816519839017678168695338546578598177091356947567571056568527256307180590673804955787429059095639280344309278773657011626406267614179965255822733394315486233141571075044000100830785675364811465157683251968414967392919272119254502808114014353727383868729054605050110216651164553884800023438087183564364961866079837240525442533288963979602817604360942059382022585293997039086028433850203918135431069523933276972234213900784287749009527548938496139389094855925922774675043111878466643497159403205700775418397888484236354766082397061630872758904600540354638862651466378701438813611640305963215294119649512035529940523188600429780784718569495192014219318585190277010441692256947557246086107079118787488277889676570721034099113740343545694732378394734752957566304214406457548678578388462561347885998565658817123869057717689688288372716052925048475368079878500170443153529213135004301625045877791819082115969476750229359541648443593426071922930716261053755661540718485304473661910481267750226800303001218023487693465717219686071154251538733349468415809672684856686093189782634444874972849392319255736832763386636932880943132690105033581386223807958026706654922470267329119444436154377825152103783522232678111457303476337278178173067201735869352085521645418620511605288797886289826431159264811948067828302367423708876817956811112411552142038974779492321256065051315212016938784852590828692627811581058928254797125529262438370540904178225686756772163571686831740103513032157653219388710500932202822681445400164936984685358974668993227224996501097792846354161121348527619769746663560656847913869506366320051554795019103663101811042250819205712080272871809895309472566595439427072993988620137758002314588718105101340038395407924561961105435192024643708467332192718794525991210893532107432070625136817687163254660992989498098282886392300731234482550191668960379791775403089691660749448451755654423796676492985337549602366102619369392697477690374362360392141026972814008897837748793402328779920702178915154860486863113151643559090702168595738455198405479452042064644235997112971175159830498979415312508870430413380717340014404819641326304593845571985917000913312585960918476300547309299446732087071822620737115019950373934777303879529890817240091363446956407104326349539190973368389972989949180846624004321069731766559849056875657389890902646825608035294707068414559638810242661410171439409731404344519330095588452775117452177642779197018332621222579144449075182234564039087586112985451475980546443858827524065002661419497336712998076637304770568564711357624148217535736204078567587097397759358277066128733284938042944886812756811147499744828660532494293505159701849350704890578739028280292475728388883860821576054902492835278722021690669803121734333080154464489715873583279961092141083754722477093822913217287755647933611461702835985295595015593226267624865150902588143305156199809946357920409039599054757200993659463299601742625210282486606663473849427029882208076340374698857088980433142074258970783320060903525838716054724598160101964673240220117330505178434464601849282355307416181226149297692370115270526711351622091119169654074128488657339470812387007394285190378211744314430481434225121041102933073860386004399591807181219315075728413815613691252490665439483358726268177618280578391141852923113183180506177209544230212857130753266111770615230453427994142779427645920882840219558206749000078999047382343144664539438007838846669789709589778309625394147174353071367199992907611891795729700311448300467585389148026924639702542230449565947539971956522739449478819206952601137720993236034271952324110716489285226810814569821341161813610907522815986812580654088882225789954832845130010306997504821835568157966307259722530560092932621358520018541960369986103619905390456172565651612387874908229113249575098930071659272764641541242017775782514209251238448687454221758744601395898701265785145623216564034941990395165322202645949779860910195146265160410458159866331674193796288815280206457587295178872468817012369809181242784295792891312131898267718837594721774772795326033763784233787539708783454192881658955221817976253986583569974278219138581536241314791308942405254064128942572159532078930830823144438480615665859739497945577068415562189810257982995798659244225415200895268714224824587628339434819635474885277495021218400724584229497884785268344402274193683287389763908527242231517949094722290520031590715712205491362027800579533569227087711932506719002463963191098344892953874929787552021089966060411200153512552734883702366884817187883314633109258778731230669965374703081096936981761350850117330692551917010656182989519301155325608472819224669079728527160622195218692353000002601403493231391128540935872019359246296189787265595722274959712438150751664717304109767076433425625508603513732290224344598341642381210597091898862321949014626596253511130257054604274247525794971572797337110515846602417714839474334809414065365050965885351540302837851089525130399491955526054897891841927093765708869952213621177212114669502712607496872602622240907725852730252912335303950978038083401152960296768574799395235079158040386296438558169708245269174632863657238459687129148618601614252486519071228849366847454537447071277285433719471858800263414127836327677842621737160169441612114268908843652097008825136755140287937799571189234039385405180819272037977576833402888307432141136736488573932602142446072166917171636977018834368419532153112006584681590919888388004566501631103982202467337910069408631371417637469581462948633620721502635506419284219505418197769963543118475885609265552823022676292222750933270803416926040223991984416133398787576131375689717817425126370203392724495204567768227266173512422900594938168801551086936034201712446486363446053364258694711742071757051306598431856566006728102385414667012142588990514276783270640373504668297430834361371449682753443138737847386921549577343194178477516279413718805606614541299745755827178326346832016360978048944346740120074010388551089744694891723692592221039871563748788942125560843349958898617580400109127546893022214480003790271456853817351495374170237911573291638996867565952561728979823011798827230752169131865887595343237670007567850760650853605523842222473156419982531761989885516535623841872374517675813845053523231595380335551729324281322018144095245769587628976111604038304692797277626234454433958943565762827140798945311828436768220584319326161335696472812360897459257082917071034055091466364749982110246182061084818053988816566948196803351384618323429203106281539812660333902189207246802622918131229450959295883386447822742230433462748920806346908839113652264742785353584120582588395128049069128181818737607963425244605932727627804013470340941191975865270152552072088132363657560432046913748899398003987386307348276726745288320674874607986435563850868862573951032605824938319971623162236816675106543112196040492007663668590707604752320519756837843299048262544503238316031244650790966120791876612071867203753713157719689290774315556908669978256668376917560867239074445484716639050861096263135452626182895750191726388583373670367392094759840441538432438838017455196653305290310645258102188641735563588858542744133076416625961928332780119988593400495458786075538853830195168292263223294432690777675093834625168229507219806104149549063186230839956673210654890799591491179311529420839443248914325761281535251444826905371985858035569309370386583450721141232502480680098119203173363295273665672231834950446434713752512955132000423551155524411648152426902534018703855557517300056049573758216896094107619909018654135276126090876077702377402756131380097242111002039375071400246044323099274520409962002652621799587386480230034634425253186352216848979375493186803186698451720562586324120779661284576436439974691969763891677636670605324014194844853450194070482192656724197087093786464315260920895725318768179263947887033396568128312437025599436982011972849024888242327652865459486284260867711707583154260920452585919014998119185261040967120054345976179158784318943304697324058523405618486506275062734481787158472523735180529135161560808516664549951464517523721806372999808658184060784844449694252326754134521378126027975999284588787738312357515045183189425420710747261615408823041244177080835651372858395661791855447796496988590085271332557953038405109504895224422842237451802892911097044853592216829412086582860581634060106275100749143388450962663095849295546924279952476321892644857998901218183487258515332239879544599979689414598044869586690604718290812195029627217066236596542799584593755827159384917956780939162366188759900311493632044757682556528788937737838639940172003036649461195060071314903538275381306297047470199295143533818836827551031776744594746746185594575208379508974670997266166287069897804020476709109059773036735356889932231538287193189276200024173027453671528434593071041721606721113367066294718725560999141056708768548690830157455872836767792536584766916962511296671877351312432467999242430375255755553962247497477671449450281040442160577980853901046992195677026801236683769186227843830162031641737985614911236158585945135853562108044393880599524028858740487163442311929806327794429958519611695121472184562405445231575748020719408196474920248801959612928015269905669715151066523531750721134635941676123590053293295991400327292753501637849981381782418068417915449649079951875222714311218020847022750162632116293547775592667032956850351439309524543155288220946463641114861055633133668745736032136951006542716170370665709698768904937164086445046705261123776517691560663380762575985643117981351630875002400120384442765834151524032603605957707376781528340929215983287724804220152818072628026764187387571488571875152751889730427136102994707817423493796347473277244392496938205580193103065221146062940983301115214331094487385681095420006443759554167700606629082281108490902807585913984026873404419729440467232319860318974009222413111413636182366023836949960874267918077451339413920806521437675529656346128289646289267970370296911322187654610233675599220421400498653566426729470014186398907543416466837265072265150277541135773902702097400050876429182070444701056466892275609910648195759120802122972340183899613183596474431872431953679087172237319529107717196268644692674405368075615817473061952756906550217883191808078125353368010965560220678285887191690512849169230366955375050440621709405964578473429480809199483664597826981913996562695026844775117926917748035205751781244548431291541009365775292402982487194287759676000514605646213999083579346744574048722421732594313506526385596063922937633909055040397430185050847177207744105618682717408311670124580900553466770958289987319966129119732356490278223783050735255126333006355338868999998579818962370792726691322634582442995509622238532001991087687475430341333736316180713854847221659543601167465518265730922384391477428945124711714824416824217095384654006104720595547766866688078170102475394132976822770602550508770769309216903809418206823991817961899360777174604295564579966006255852416961937978765693133284390755688472317250198104428600267349889575236514376982187596736792690011764497731351661379402287866852137079016929274317613005242138765300146417989219682956247823926275121260419529623447217847733154773307856366362549451389216760178681488872116383403807934701754496694472154603065959178618436001092994688206084410963102283842517872708721838027006197033681960029899739679625127555798818211983590518958341626335937443802828008591218328418221321524003222036409765321447236550069907782767432988965597812673418647033291358245906591400819807677002919377081015265289983371574951724446670382983397210625587928954618530366914318178154460161456045410427075690255861482424342020670989356607525256146086949915542344782163036784399141112835358910955610079998042333645885699958325621261903236063302124453867956617892996914330626148950890243347430003135065277372438592008349412282200460103502084087884183570063012263678817284919307927203505323819194693621135566808108185001747218248692072971212476154403984691425880830982466143317267993206009068520758148251949783701477886654362078690725689351840582443112984712473337838669250640121219717087166185647551553520302794695879159953689736633038891824402016391638979912341697285351302428178630128475894717516027918646142053869717112578960064746861901723299605844691628577528936596303531516105319263241763383350854894505566171470941670509932627900581148598681187824870645634506481377131723100089823715633954045511639447431242567001909386416526022278299539852996594498240306144548225907536288518294845961063627065767041967052674423703008349899671041070602276068710807995731116864759495449134389469996900410222740120115065643864594920635170984182035203556394147103093295133369971575689839538802888679966494244469398113581154374636312579224682951058028161711933874180732219277274658926277799127902197047057954641791714339655675995036590163980865702660750356877186190245153853623261141608926624815141926202657628392527628371330336872571945140406657810431087428570793608847475179622637769165648525152903858989636124912828243046187127601295620920753142558510973430667650438166135820063344628869862800199155420416802214010256091442076700030675835633771325019516384315165718002405322698321271649783968041408672815459228745089946818633969146851264115443685331216557184074477281627323952251464998542878201155545005573704100254902837051217373810111890302064750395658758214080259468561026438966349404474854361326540613216770666040995245929813158227400056337914284286886115454529759337653097100684656811660795091653258291943398215985047148513712634060280392881690641725192853131741964647485436612199094385014098241063610589734645712963215538064159479861162564301906340694168567552015255622687571437518112797618332047060304918451780025174101135234977590114219684299413013838140439505376027702269571967723041710711531018090848187828392418598236172340786276683548818474920128038119401087183259279159192092337872169484504871476320245214312668144670965945674069852386145309738674939869201640024531114985154951763094531073902450508290405859001623282528020156393074104837477999355609658061662425937402486997789341324622740756387108068955918667669730477544379193963881062026425342816927271440347871946372814394506888635241077119103371522649120977111720933070523743931739889761981167837029102546268357558696590347133432570825441789806493993898426465442905726951802459227408560501246443052644021730819699557085892022554480542694370474418517823335197736391142000286628776651428164021677603791088305428271779161439768500617863705192753205364743734475292631299073126419112423886308699705645069975200877467512996102935176161632182258435590089129484265047897062544508826622403840652863843895017789867330179021317339922190358709687112301746137950953917911953018847291062967809256123009869977621202961244276249081504852784459350875140789178437529607956334798294890513214102874011095714421669215154428023454473349380741244648027114998775221292641693441426161097607820208449389171271957193234979946519748841966185313921107078181990600497573111735857752739379783100921035562194838955548180137840685500657018053833464100045703423857696051101459974910862587651107437363419699814727167704249589485905711061019380161316956286098699286963066595926135897173316320532896888894842649246139055091843438656092362994939670070259317899184939838072005301495532467026753587015773715061692910240471374646775854589261207342283479101298555441681311189022851085504089097317312699649352841884372905163966410772842694393696988119339738398066173677021035682247570386668066615205534436521600358579589080571949783194160563346266371482004811433973441181576915999716447102809301942699670383775605851764187203790262499861315011872082589079206486160907904174913819081681241277802613604826793116863952743013245683995477283007063738874101040799181534275325133913602573524727819116595280738547956806286331043203956393466402927912540311192092550502856421237418731626287983760863420994746667942975278818862135965451932871262550218633508954007051447093165724162126711903304568210923749932404101501962646489494918272046655853920125383955663741590307957740747959481218598449696451261980036676435850590199462709863050855376322871110178205139960475661700281479087845316830084497628289522509389962385103805029506849334692314999484586383209942633259278408875151621515227412029239548110447911119456576519105697464799623844263386928115676156513297753073136289802141510161254360301757651874733419954020569088734862459111779721438626258876597967072745094210675151131978998990078500304773864649107581466142293569158544204199495257493940363818510267625458344320605093309985726496568894523765326320782874247246106981129576305784004899771956558915475908328619958044663360612675363743818303317822307126271700052400396079399127607827847169463139808234252149417809084168278190980285293874135891727571936673402056109436179041691563732595982954317887878719632945799413417674906866497533621150902227322575804727358513624557942362909027746817264885558519994492834590065036582594611534661409969969759045671033385003239778392034830384513857321112942940666948136133562874915158204987119678337573330607537168420568943158443921462278627205806452225730193200477489787139045845060314937400485799717712192228715213435855221850522284095446179538876594541389030475204669447197266159821488992807107985447541640021904630970903994247383282300634468291739356701018959101603152692069442233359517676040451103253892516414147706891638870909434322220880959805042756140001285511835981671499212966863384359755553477770348395516594615596728875585810065993498691552461613676156699464285047197293883321026802338162799368281733536939192240638184897900815780638512715120675797310292999933026315714178837955811199603890748544804470905771763740858352220053943913874523175885972428291329900575932615475079955196637229177269269338234470185797062901392993510008151803075306101974934353029032182087006978180826506073130434880577865275580082171327982229707716083333431129644987260876901568710240537340293288156852974515394041043672088327909978407020138071466896328504565371796779259124576030889358724048176033594297877431098045107485704570513026014560751221366529617388611210077995374848925829255206911749112591373282641867236459089403286388788212676443954760641176666240053453996522520277068465142828460726612008591595229777559678047450841087479329919459329918868925517255525974822300640072378260210131105913829458274633273081465856040906903265065348455322635402928423425426733263837213535298020065860055409654534037415371429125278265559217227222979876572388266338335196168159932614306065147640593506327746741381178548048724775852886218200290737729218666104841002617452105512719655231223290236351222590129556866179726632825878711567965261555396857384609915528872831774978514552931809958063713548104980924714142804455172260375885806849560310886375317290125585809127837018830051739610352663466912180088920921966327363555143653773492040513399537035982562114381920002672977433934224024447316008392200840807855123977204646878409617560828457646768458953720844110994638795252170936293668551156667765715162210418047337686049532988583771067315390322160831105337856933075438498756169097791098050672771186425731733449406849058365182810005508614580799210335054852630191716799690726996382823153927524859596334775485731746785314821165511806432169010999214318339001379781536371543716195826152523914297971479710904671478041147307375639591075030243168437614191368439346926442771316420517443510130660680492246119729960286672393317122153013910120178942732581797181413925733644795555273885320479776263254731879668061817059304998441166084863852376657980041004856408250346113634095673272132571706316789187856382486023093168266367221493776842951384588905254833486634690959476547243465074799706570276191705485401517452827005290009074012310384218107568162299407209513348806536200880272368071122367978177757637291034882172762875614524084815852289733014504551636637710203046461399048458841086603224151040651455593860242872609489074317999778783078536544575572098299801994788747242509157935116949944047661812185168242187341280939625700732008685914009512856831805525926530911709031142064580644647057741431079598608634387042604480073298442454853922067948402620796813183130269486324199209520947828819462166118543648546789840579088487023516830583615087797838153978006084550020640528312135112323408083519167408153703143703620476633605636635590303644600984439272554136475895747666843168252056011253542547416498854377371261017511035742140553035634439540811364937624784285093297243462056257164520289268181997264235913407941110070725000455140886907323380620658470000181904957699266869221427038863978992117729413064648228097553801648199202495057326678158816869870291527693699165460261512047240372981301569916392493329183937685363428033665066885664176275428405285154828192493849672318025632299834131552915710495744842098100690690653726743431567715063947930184645961732793074178426834259704787247885165691130318845474900329509544344270931001447048336120533856861648527920596760713764726708389919897818180516513829288539359016989880843419753951186493351003440644636127608928175816486138242723586958293407735633760362768557707099266665325167929916904045435565038709044659653526486759475166204009215991164750633101209450802266866118742534923796502505737727253535138938030418823184825719853266818654320034246074167028289093430725802554864718860125649963160839151799664230953082923341983331629221459528999950852586406800501413015718488012758143161688461091110891154369797088029025378162136045650563653009814335531375835782583007604602626061999618114461758539671330394837897629284135013609448808950244880514827755159836832053365984037827542071599060057296146071539648027007200705723790558898880316818090517029598869944096120392822055540255804443806468081962760095842244879973699893338769611135753326865185169723630664374705655678705702672207123385178457462877758617966521391394588062861519443556649955146211465443935576073767194697074382293098505480441123744067018562659528076518143475836456157881322222042916044966187327652878200682459846737663200958520009094757095013469259230170964292584156011797172865925653304637578415423256202862898102931094352149097677938515372520675395317758056588619777357388530998034688798096103856220667638854771754863797243849576459770260136499407472572028584900310598101124281068011681362475756269359601589193832805675405872863224907247722100326221212405499791030672170218456485664459728582284031563221185330019825049248012709033538677022106836015904876252219083056878170197854964437629271255040210763513256546403943696262732461115964714219619887311637229553895183037486900899164517872713361652430121682439607347067449660804281772758891146578171851839112080339403630965648142927676199819184839298088763753217975427210105074526894643867304038107194974498174696198705751016842674453564829052202371694021430214455462817728993123478360448212485319942179777835278890455664474528976982603619733549300717026492298792502948026058925012476882834094091450166880187385671458833587570524285280266327876625336169610718852820700086497141891114602744496247807093973611969769273577141015090769963737050985192840822840254385704397855298211505846823323879360670817226798762518555000456715624446028653619635745767596332698942728869320829860542252165477803597283927309546366457398231825884518158719270594269107735345427918582095872691055406898695476358373120362566050299816973824720497657860592083371025204144979771395869675182525399950748435863704095807678652214764346159899071176668937826777102536169151260348787923520906334689856036987246256501434843760845343242671356948717338111090248074559101235151049369345868055895345173965868015144031990962951071865786322381612637197629321777626427596489792810274930778915359801197047501116441895802125282882736740499956486363202759007743602454000201861395926475943587575884980397199471350177349540785413749581037932125192371588034052726625404682837365839531006578084392965602522531428167015050243042989770987659933616932413178907508781188945209134998680838478849014860445359055931141671857224795005720405464183769851818430263212627755252020625656264368011597732376690740505461590248456826774798706287808225615348821552827040731295728993286120242142983493545881523282815741987338880275039464216971756880187581086609841307817483686218620947652167484025332953444324159036693638782648656513392982840391314659440381704688597394429309008880553143075230306424606966214023420142498548659664128860766567618335139676979309628026110176471868904805083731873467322834525158734429677229894087708482125115494036746570364114526862350901843265473746418272584925312047571326538257736571751130891266217563264016597148463454470214703508583059608711860613683616607189060290576867276151145434733304747350521817114438198090178061807296389445629404159549515504927089287435821177121953140614430876851139319659696942092199162044753119543370871040207360706717068281508344221980306871909065864831638261485193405912538293213692149713130157756203643089414775524436798405562448570647425746810456763507430501306670883817315451998404381076974402885306657567663304186781293671304591763841421806670581236443232350979835290743250804952770198478730825473708034698750402256230674243996567871130322657713768364897860101475993796748168774798434379442563403142832943786831775617475428609843144304294778248003783936529315458775809913315072409045413048919253918949371298967380591523364876902077834727988002720610883861622453710765909142921247196661251386594983332734903989337282055886653645449264475760987318016266888493549567641006691643784346173888840860988232357695936987855111744047249155506789640639917737338038287905038776014730433498690952783299913437493620412448881861965492614763607514795991654194901784647962420723193055135953921285490687573343453463828123737704184242921252319360333888886121316852140858375861560704715425479084319125246425325783263941299312244615200287532185553234763082204086810188356163963810124515140864988066747958011961462865552309568634837912689721083050973775349750066042361456350929378102556597518820460315135218108120525012249687346716261770643810992067828965525823045398267087688621132713237621155500693915658645178937621088145709382328454792725453349115724327779964212454433271408971081101278940776609721329446809322951335791384664797754558329117315589867090470233019289236292132152935929884463136564961931513588895999209748208665508397563682457322807341312115001308973784556850125690661028434217555442450605307185268151487879856660988931893708015359453093590295009038399492006065213033776484926622260385615773315543771840103482559286064720957628520658327585970070398712465889669484606170719487730975182130486560798567488867395360461676722972318156814439325388109413395998407768768198815307217817879482875206323655380077985003992319532730291300185339265066001673589045019778992757255837513994767869764088361451110244680055072373825759583660868486955467436192528755053073916333990636861601000136828891627601070938559120073219622579315109713166109195512506767725598846270111864766464404961006672934507829835950116590848947467469250206017603324104815924901653435565992620276265757542833859140383219506507926107979655351872921995614922580845738557461107688215709134328513395281516266196869274781461729712846577296102259630787720357731309161353605712619768403191079162782477174980069580415414668832784329462649944075353414294575888850529307225964436002107172397859262922788316787958408289265541964016494789515750160187451449453731899117881119777732613639057119650531869918287488517967259281121776561669998736959725544686877866887477226582988064833385649384181122619665776893488208791364281536545743019927982639955982943367956977230652478724208899530539461604061701082470744941530963937994722759787798596246818044117885032636122317389755746626675416578969182047112331525432016549692527382227528915670484885503832154589512414364181570350431756052929786857271732896424602910200753183734242371316550568754808637705097012469867385642084347395465277438428958565487976405725760569441709156434517341049307885628539321269475959377869181912416896807425096069450626395088139400987751265022906035312881357322397994722409625825204640512654981444989227166228719203107431777025249813552062058028722059550957650030090588919534664244045109527293328451896432364358702675828170015485742910108279407618437740442683722554457395542312236903873436267053470447066835874036873186963523225599228331420838464240919997807979985406659795169625006717608240036750364784562591069138674051387595187546267534538020747697209117561349615432429881876029964316095494601720238650870290816914526159726534743265490889520487141641973531288738412227198410762145254869417602566149840827449250143037613514825787233708971070092765099711025307352221362167159505281339808497535588588872103425140076857055491225267370103487589409842169690657503996292564392365606733695083294670779983834141586494133981034232347938969981097779737882314874133646565269127050550303237674500745076198994962521981296382396678255894163906294000429675298176606966154405327520140696517572630962652146677327184646985136442908595110882149519385612951637771254278637129517376647209882621011716189288704914018145473857237611470751078905595197371759516125573452892988616381746765073609575368652688529082093283150463165427033555778816879216413336662567877461651615317359617243012414323364969898540223357238196522865129181146005320210448306167938785986322930722882293237920745985118088386981596071854724665185283234942802470473929197930194383473006254942526986895432025586761893240910868733048721951094102309849183858144875174366179935706285123011662423973029189310289317646001879728993626080376905811152807765581439332719018592986022783251273832961149519160844411468924753952250206594978468395762326418407916528762651120354610525891428472938496094449516406954761991481994571734697025027402750802486014131120420964910534726089193034583894333572901268426988552006967539571794321118930677669975187943030958365193233499676749073211655092195258938573463825252632995406928554209196990042656419648100745885805690844116133846314365914613369126119275694794129236073083502183169411134994974602114884594007496608906924121265660459970904258403079917263036012875097779563542833805987635251626779207523984271977026997516337309232406394814451454747911684889991552861686656928168592831813112565747104067656221339974820050563078281554403582154657325635141101718157628388564958607037706233301897791817857261058903314303696681560148203867512202729179752604395920085986969460726126455746524353648394501515860788370463492983646335413136837438667338146094205480761798988900050101057283856983366250591380331087009719035329796482357123277533240826075618079237689973231663903884191467057567627687286965434479118740950188989195542205974214654221050234828576165001661556384311699131113743333475599271151949837149436606775267896443753277610202251128212614279310863536266515402453155310570517316154855947772697961792712559019074640786540411923501053447639534501897577135856947399820261676401104675001284923506915918478270672743686441359700077054045027979162571787268857359979018390460113620805933415770415340083517077598548993022562915450706872779212468187471913714096756019460649990098399002796361618978356461414691896659526627323357468102906452312290696788362558067560717460007239136181392471543864031318712857236656753703585196722012832829547144656532219715586032472778179534860074901682843756964201730753215571970756543770639065593096271531661131077168974247684655215191245973246960588604436107976627723528558474529196244160603849990499479355194987600064128216692938365442319599965181556288395239662877795294529112635595656130755540779449127981236664484130215292595146908130204402662809514587719997215061719122642790419092893129029215165775706951868481192663683069744677305315066754688101757233605215183553790826391553215145334475657271650668920744207284502524614518434303164528632829148744840132950081179785065782378628362621525677032386112525089035228052568541277360572893205940940778471163671384166924199779369657119207450799273272002510340092726185749834460083156635722691796650202829479139967371467321040291437826268371064699916742335451098655331566031312873513413868999452788578566199886360374274901097371877867107233274637384533995236766368075769611237700813128641621768890398793036229582415508980531980923272224860742844455414349186924319937184532935249253154384736936248721095844245838261735083468384694020541463240064019941399976522371343105097526275955017147290056996188039639814923562521463344541135231278581485312628707588956429568413693282594344267577369311339642642930187986876781981299520951124080011032452391053175673597797276512655377721640839897561665899800810903968415191250601039919469216197304132567980100519510258202392081483047143765826339393262195149386148952719524732731554509704043428349409650755595262452845876687479511299934899241005180410647306274344723728770047653692876856871396785281371473754565969066471183157751468349250485534070108298019076871873241287177631263157245874969833810578865954977011122335748867089538984272153570832814093666146030428275927484806736207748840344143974766022193371923696664316621035057706234449914989139287654966871205150411226366220077782737555902797549503791645872479204830284251491445567227779137451706974998287362020363328078533487962079767663254073891720423751159865711572625450451386486501973469141048713908067230852069942878976962854782309828860116291200506885459139169487796367564930247617005389754449684097695369612115591345783183457185773013881637591649079682919793732578829048136705568194419121457251211505918307606617036569959319086686789004101078096574094485753763515020587532892911948077597812438820792466321389986196729639133555630913012245431488748936113104092325466664572243982229226483720782919439190566516901924611833617754027395812714086652374366904069326810874113564240787213991180248328550208063220633489106705150666949827413957187178886662188212735125645303137543917399742592246919328985590232740161897344004950765391537946783010442738423517673978289648000849600762635447831511505559594655464512940251168097290740116512600821817534574560471363672679224716743345484715406156713420091622945946568227996879650055564088277797547814796194391569041481585865641877485516082421814726713197254822881709183629657172089971923326810266306400169365602925164598821575398524964023949032463682334141406832942384632293349068778052429824156980720444977404516594431744231666635240721223981380901242930202466768844110363117501563720511594261559931691268061232504836384438749347196405788416358566969969842368594082804848682294919861951942861895775832876187601885068867203964409567248484378304197174916763821132264824720682825895595947366695984067875528800075190790674097962744597829600247633977694130416376050168779779840217684251735974048210944699789835947379956529900388090180835274762406580769717996161062553600722333103297098102683315613092498240982308042712043085464865510363621598939783087317232427931929948718708194021809418042100425781756815093710453187410819833540392927638715183862819598857835864771061666173591437627271140514613216850683764881967390588198015981993113959167452640059954068524135271751739266617741581538582849653652993549856722363214607813845639758377419618842243110144754145031558124205481749907000041804473261198527070010644144694233586518098378513665895838414516298575321603338410566105187973575605466872402607869320183861889406893837853894126698480592136821831437170040256186228491029011699190851260731829306459938688479245993934158357695131485795604941462001961703468375778880203442434857238393762154444462725281625480622110045717694146459614750748694511899837062474365970651022286378341379015223971712261830228603040140545589555485364294560916439104174213858297460321179889584777074800080983980488844401263397718211269936229411717833595841732454618359854132859058749417259616825785823653717946225415905373924617738380396076552470589018710940231858533690036415569440737259353916861029029119107033071215629163682265992255783378538633564664541332385373455768338291073950346384274260076071466075191700508675704299622195209122238133724231126351816313932446914858208824425098705649621103765691259284724738646094845301234891103938045059762191179921159027903001500024463108731466991153412386161230489381717087856038225344071278636877932905326176523927336968855784239719620513211261159438902858673728314055313557557203438875556129614334890851356909535334285199798633866871899276844079265841116668568484174714454086960828768668481814426014523404184069066672406839076840028071787940174230310107820943361257638378692568409492625560874003813808329724985452153215077689512053109881104275369222660999217621642627835694406442095551890524060683319854732306261953765420358819472808291380690948179090627292261007036153622953356118409696602279365453541379303149377934981215600358821452683176722950738164391304524972839702603802831110526195157680797781207900832380043206791348977020576561605763508533352504005693902472068235850208750843390337756177856525454330533275594791446415598421551022137310885497700849747634291533920584646919206082679752033978740832447990166941001014621010463026619063555064382396200754310804608752251931221985639929726425211691502113424747011328350634475176632631540531865955746726805015813744417604777422355131425620229027133392131528817652044974506765092546723239492689501444104586019124686710386495599912990786311185750592373711362907905248976446586649413767014349052022627492590047856794873205863189376570864192658948235020828186746833533264847814457891550565324101813931754270332043438530420792529199758871233957752099042317534762043284061302636245481606904989071455071746846983902609021621246231090830792199661897553545329056589401793981601593107497996504164919641080559608188922401307023001759044190785325693399824092695221265652730650644503342109744008379944708809577407761455490593611090034067427104451905704873525926284768577457022605061782499066586424261694234063646818329651412712512749171783902015752004679610021962207692970020959773619650267207812041624847050216041215176656992929390878712950005321636018299169001973383069591730322267345624732538201280788454160824434290235930312919421900051698806709906897718700163188674843663581721309553028352795454227396641172002150795644766758140295698848574056536217864240577147598536620497410672791846834744517715427772040657139032653679561294118084778636636646307340978328020948878259519219906740125538237243316912572036515278310906991454323205800109934989965752866295598064521074312522941894039556722921506043917211302038331544365692083304084059498867860898025360087752592730596419960568120195964304917220837046197793114764367855258942865534601594820709490262094529319488438040081119027724978044658619719105772320685457910843070501393434036643236671156561690511162652695598741274393672273916218020674588914434102155254420970523405073033756549445735939848404642137252803893367869543725124566144303703530776702838804274344081616963620084515462105127853233602930072811590100031908013321085469079100031989113511185052640578652916988401700386855579530539416527449073564062142854722760926797245572004442163754845940531442298450287555472713997330980129351227442455599143822707402063808290176264928574044967767794024176683682722486718878021841892488534106719786960792133715776258640445232483012197416912304784923064304850881544609198629514841262604076881232165020806405173252120689846401891478829303867385355099056594671137746339293836334012145786900925432849625284582077398094774792542487496321398560287765492305680694763743996113576133135279303682043123157966512819783666685541495030490214090680903127999755125809669084435488235360328074850439656948812690866312989866938854905513957630850317981237243997103692111602843682563120581663087435291521093281216814735383324792415020395113069566055087225645213104649860706335845381755411326690750821654682847979968302374604051506151755918021044170509857176460828081094715290790434446929789569511793022797801943184090142060693042690639621327838261625888051059862685229731191878774158049314445644131482583715388146215633489667418681510393263093114018832643815170069098647002116718151885359902796570458277676394030039912581597968162258032060653515326409482389578657072194493030895109751923020583267311743089611025401821454876365081149737384664788682906500424023593693459957117950089320923979541172013435387434120330802902773014160333760578144225675019785912665495572651889969935531984323974887284615561142733350309685029304186804486862355987568205724868101103967925697730047300958438883359247293146037142449021360027225487691158317622769401474017629082527752207517784869859471204190648671904251399723849655854207491513381531309733706210461315323784960055028712908344618300381209760557499492380007757774500862988113201191334143166948382617838585600787278186150981202114805795713547138436638725929560816358165252860541788937710218904666968962065404698139918981033958625799857973023311728435134435132052399696399359789779716718954072767838317851947255977342492592435502211878840413786789998648179371977951095457242785319242393132234964108902408065264014815686344513048382697429918059396063579898835901702671831404052661425473904820282076945576295611244609998747875505130802360681063890593845929890427877809814299477733034330509440490471555791411836020270882034309530032765717781572695468525547719661099167788822390611524575041733566812299695484552292810145197502193373981513986040839936720158685370023963816240410535469679517264354567546597534315066498420117361115301431540241062803514716660890136227183403948588242508617253653936468599138639089100399202890650263768943203975669514209890653294397949465050651797112081694260456173701541895587483140559954488621389875177145750003553392755759314436442633783915999878749722398469733048505929183286462202752779089508869942308841395564334918497890227011025093352898712814831800557569342426443214448388096684225381330144335756414716250101523946036880262362379851612931776151365926594462571373336774121278360402415445246830647725066379113848148949320127549295864602495375817001502708388276303223584461853116515679308539711678141854796193099308028727219190627481973997726111475582192383321591407585894056800367080497467619715803956117124700058149842437475212497052974741256804794907127589352160575478154299520850830953077430180750519350575958951434692694402229003997561897514015128598903345439079367744248499727300941905964166088653676093670603882201721687966237412563358117506167033276381912643542409005447435599076491420263870218122552061278657082328155184343493851427474341655442017770249706437878678779287691981349582458348545926952523221855445028019609853528609330465482167823022516814882116322066247437753801373617855581607238541514355131735732861175249862727529204516899281340011832097378210765717231557553566115539034592553458330334579275124318228169557722126949210702980540693800602680730355241155068019734925251442693525926106136032402760864904755222215850220149279498494765911867912891005137026867104295687004795170585052215214967998091044711132684263293731770856690925000417713322163511457870265169962665144209461578946813771844895018507728511887386978427280972090253910806674391651137202061076381178832912369170806571573269196566850580713381493995070125389240247317206416135385933920035893251915655135205963613012697935940730151051847713313192600424192713497224591436658150107776495944901694821030669799206519539100750372980994030073599184873202619606195096679074038216578397960933146870442297399898609841733229215175749911087201569092452115436042449470182784039986315117762084031213999755183543770050309958228379709647111160190187745101533689164002461002737264603034985515149516466073380906683141860019702764571427197575081967287290338837738572763744272053750001672191124429858171010680439091828852041258743126188618711270001313546656383218800141635464135350029452425051903152427006456103973178841000315405661628524875571728179849664691922971082912540094046047526992025467061520176532357079745730833910095508996213812828476197319576685811358501634264240765186267904110629823312277946197879320635812875044773347138343811513921598545184841221269353756772949955977018887020774385872923253938568603026145722337496750104846247034142547115657270398808916863224843492092976440064087595466710660054085636347284602264465175786106470827447402444181221827216355143265467534022869563864397524429145718883710710910007354824265651696244838354754502596947209472490132685507669933241788609782226714219662923277127423467271749212517629564298706014264478500858424578363179242113582227483786071444405243533324942979888245926903962281899384738087017301252731205957405387098442387238491128213972097144436928173981155114631470256468598268156197221901352605177422016645175871315174465450550799261225585049099520365765240824662737672748755715211834784970216018156417658074338532876639043456279378996310804218078487443458598723995198741457265180386139252826500827905929374260218780876738627538658785046727235695331333608145977333172139189025425856025330767366539755021602898376429423070584987985024746212805103946165524157496970550004431114443023616211912785538652898873915595987234673027917447626688601012188136903417183891527996537669609555149395534606755669349533584589709644369758093563848226283208115944417396931478165031661977991772888423645426481889791135096312224870749662079470464429070233242162628388344978139655348547732918717773002821877516838008820863374322943660837253627996137664404646073105665122515074386934634961224489972567428502665622977695449261909940990095761720162472837868307751707242456859563026459934161312963494615936325937150042090138605606073595854815460263245351638849309811134981849719555975328293589346520842849051142985693775660866039696846996187648545715128129844962846731841966783594462740329498378105985664540956918272484380795382029667340622551322849307202841519176618264903117170210171410273087908490942986846796799589318740698010141008654885910431114503358170148144292877518746041526974039569830858979992652595710107145932449091720801001250792078927329636187022885328029942257014124180288398325908769638557017321685070873787182167943401805647106700272191539327994269322668134739105189329829799289680695649483556977392659156172665676448555460764433708116692695581813797743341834768194355736114834321212950451811089794649834170588136194051760379536473855035764366969382605813751491823823744047251761188919818008883485935878109296335364512717490100230598154917773299731175722951355389172361830596504918133834464570599769947042408108786839747388412654381569129280481278182082903920738856485883963514935118073068924089500292611527126579357564468590760523797020339945850049566652976577177419642151243384702417849730249861929076546211265480931645610914084531927128069495574433914838721182565167329592055962943592631421091272357870443708869445503350995936048656335836035773999350829187009466003158641341876118426501684796376802393358272353464996223599110339193349341791375290575188036425270848898758731345388796278887954240007537621890089556901268980449147195030994768279999316532650558481017817529283756400667741688771893809889284313984129463710524189892727949555611442521509106250952903429252857769873064245552801553628596139268132799263832264180474052026180387901020079150908655497274720732517056191476243919803149758494508389258659417208773592180178295911258041518460568940465540892617657004765833614815672419406064174091699930823487932499082816190929866299741657697611661897704357140761503790929013051339016469454648792436329013339937036613748288560706028192387283681367279924055205241669495418032950824740931316835864236548054163201914976840762503540338864232984843632773616737392257413225944414329795176401178394789981342364538456252142028828328395429428722689418846533189277189038512820161804456677383389437734065051364112136537554910024753866816024792812198825274598559541446662932828625465674663795143105801427457080777207921066232894843257992899535869937731799192027714318926308294679279854805203891127245399083326332478782706805916337703210972792263922717112273176623361088995625533918711790994618965333245794293211170927958263931255762039795379130878810758578959799374400010377961471277085875411460298829776433218733857817368881073061773672283889017940729867045581605065322024164247792458218766967044894143740465760071066676693806078749226038811098060414607294308425749640964865929830913639794215365929576120292256645848629358454246720510590430603223471719363684245169301356233189829373244640569487552982769911467758240880756595882839955023593225338912033350629863826061108275937817588147134289283475217921692354691529555333103370689175295942671793945880320490298022775610535764910565553423972284690243190247627646543028992616271048324527104162150303857180191030988157749540336005052618456340029307632544832217700972861854405148690919039215616448011543446889153107521240654238994260164345955083351936538906731221382343641460677548891089130929050793754230698331994739344778970684892606612727893251821033205500599735902370540704533806263529090044385244901959799172570457382322660027068646693219686955398434949705734617086640337272676618529441871894357278959674824956462723742098648145401098425431105099230929622464040247544135935393639763436190019256456514892030428414934954274129323691214912907655986363708126385850086344678993888038493692576287095564501892510669506515224241070010486400053271247891588483167142841068176393737086788831991149437373633990228023820229841196183777823274733340742638516361052669740602728072079044842243222775796068568511668158710734528815593359143751873693351888544721792412546207685774464030691870345028630399315362871390532018601049197498675944281501898686495214400950006332731007966524010716919410451109176577396094141259222548339575132330874109615365417055051373289172275779948548918176602067947622348724771276979846552894141112336826111790179629414208038236800371267842482182684331202612793274869986412477388853200529434724443805807470058156923488749139612513373265509945403155680127601337885216143973628431673250995505645934216103065130331557549397679859421352045194732686928539541630201931102757563564431982483550840147043333112440143050203297384603513519832436266421603495383093176082164416490585269961555995072223863585244043438005285761665096550766592146349127854893688675582512105384739050708748766995494350498874730401481709425590943056385287661318384734528966913667070286085847509804071625268021789193048707169100119612065430626192166334472160476506898550434737594015472773191846686060336376285703936471136334857624849419440890878904812981281647171309500450011443509728204433631936845086259896613516130135912417377221687276549367897193013048082125749396539438746551112361805483334303656837877950123342736105509007447563388930360634294964798985689547614684300725477480822075066914358678952232965629688755405078800787288227322670367590634470861541769763729177298077179570332313899723537665919456289795382275016457946334825428892719879571649513322183520930570399805278435893736385556784107763160735228304785122507133430981941235451180243965713901195181720893772082645249206762986436729798170533750484860857171637030966813859270868680914923339149258088064985659228507733057016303860020191226689090863695394823672191628811230048386306430902662081896886876303541718988054907354364045200492905744109401237991171707255979073929995742515549391879190140964658316307629586924240124673931083397551266340397889136624304733666310302482526599565496243369448790920433603906937884014132763254487470334314558701629022923135091913279577170640296286693144455664615473014670191781950738780380317856557168858529630696647608452428667681073545004759703237082458010915068789271180063532510955395737765334121959194420421586353792194398741595233606087332182244178682184973995267927226342398754763621345534800748759224662509878441633238298590703964252550555874580512543015094824926019147821967355789486410187623177712791919276618962337724787825166821862084201443796610963090750471747605655068020751518875778706310371825381916274013541150886967192212239590061516948749376794366952970310500392107456111804646967555133558729686283171790725106245078858181047962231676431607912873280619754751605114207819102625072283037937678183180600795768213742654715813544337731158463786469699790829978282679809501467749916734460289839403251469239020881210157082011608414831627240843159366613470580890104986936904544178892842650921708868505671844670832674862333031486847624139193024991006327187313235844724176784480224789030906989100324662909107155175734267638500969230470070674435500828775612610460210047050878274676503269951463087120061520803354615529723628503377520364767515469966370911097136259436432146854483514808235593714629017653694119177861008503348223470258799455326683471691161215780772636182435225464240087578819469190276960368450168478597478061709888983520214227805194144192131248405029020795513982492921474595705313948715108201771657029671245574497439551855153862820910642257102373063646797243890088651964426615997328441000360573547986915445902017673523022027239667882270315073242961771887869843288637811509613618680342102866205997129585948844635897944181527702461768872961175147202963892148785906028380376897906310393663254983459656248119230965138223821918813102946138036304431257353183522097270165256904594977147468713052384634431091062735740181017785734980638353604673148534506325124240370026140059027130461582086036890163383854806641624094564886249734479074263072503093738729524666361992261856679645773584431933616298635137356669134678623298387442568739402440142465034648681123500101178213911805831985659548954566154672179664256057158094396588545891118401399574855024791705684725530746108072913984151628739528026930168615394875220965543362111449852392273534254780765211671183999146409757826876088991892019163914366042223131108154208056571878659997027330330858392018333988546871333252222996126009798221794121477094095892811276146756625915647794520859242928589958849681672920149642190962304962049466022293929460891033656540013969102112890831462340073903505773981863766643120868591055803144952589185439637498870753694294784934841854941124460883768825892630317691860824893025769130414157437464617158520628429976533018715239471996846865352153318270379138926733884492220277494327886045773611565722649000549279138740038463942849595622916916905283625575963379419241637394824779963267888781235911839413832933355540263468494425626340370494507281557023111114381350211948329462248676647110834150955717250942495509631230549388060377865705395020450090538952150811995226779934350149140816544090798875533200775111793263776901368120519046545103080729690321469414822656655921059776401096773535054444104903226499843065750354778592212829947131791292683422063932536980591868745858977164825366015711217988286586132086314446051817091711524774549969220694746611614614195082333566302037309979482501269569543736513348025114896148793835496019804264127941532568732667710400069923553482727639693235344322757950025404248940512961154980738518645921906910535317200297817915201979581349981273986103435348643820211578860184866023517212231096441449339217821545154444257012241457953932001604485425205203975593748633606475224025567515222470641561590080804820210608173244179335009781540999117056063297741200678503825250611245864421488924237462007455983236249778726767430706865622623302022134831265451763499747483477192816039105193251059468030916205805472359730700257729865090628568802172335093396806209480038160503485605564828281237847368909655648019006582857422128384879447027862009180448248492858713467114396530904067031058300723285098757113848426657439888100671939055470827610365122344517865522275219888431698861448746701907181828263055740192706710036620928757453197716341119752405693316259856350352691835338312990276829972988403263996798428612508709381691866923251585599025221592053238436666132688798106561167529897466440804158658273863206470206356237130435856562748562718553450405516835423591893341739731268008449430241175738065110090990063601968186791609101837512692870748222016307672827618516601156394325189427873363262447122230116451284493968950135368397052629564857731472907724304977877123940338223212743812356935363031062624574435644853296657201233048139702607510815205805143734941649772266235220690311760831075550866384861316896676447104345318865408137958174222751866464318677584412005736293761857622362094047013418511141585698006941295109259701767935445229135538264248593976825810358709317073829693111121191929100895636936019579380715341373055861522462111209419633489776228927154862102852495634487222308809309648567202720914237286086045158393134157647387400386012497781949757996810912612048000846911029416301196141393686309692542955130338792474225272852718640578065341284335050165875051568272238905220383233509797427748970361346743752021614405645681774499399235785232050979281845102053240163413813971127215227632928289025213506137197360287251140001708217350468021787802628747001880597239678261520054447708731524099201652770115699891312454014387441913360128390886670398477860805372449922969050062558428788003879249568727743773413472361813608012010783377796589287214118371868636494558077766037840244024408929160040737084603646332729509456911789810465641527602259414838344755695946156775137357581818413448391128106550548467082986013908066749700966611047180029479860838481838418796624472543575075134852435761100339345100221168722848121179549731091257664525522449544501856588015877931571841561298572858034694310497910009122567553244918015473609935434597330589051592197398543840433232758894641160576902803446463648063439809004165347941745410830863253142854108518839058319397732228499816356677202779179203604848801969614350108197376136816908768426519718651386368944391754169323927308048249566490806502790304498274045569468579677162657359574944048941636107797705911907948618053273086845227511067020309647111141089744536509807516834074146077498600056117048759208418757406112863856706494616816922072979711734292113714184709731706417381777849099764066607007814142710487118938927953353769495344153239400134396220692253121868423391466353387952007246935048627984338764729361569376011644282527698579827390940223923341925222600851771077748161503814917390304240947654450770554950947621940751150870626856080110218942742791176067433301027487732689314580218400575872190863804685257839586587865068720586122247892340594857636827854595806417645993712865543784806814775975531181331120962969081215428238267186455812665071549157046170599683624088348845322524356325814693675857420727654428946380365292521438178127791270577996329901203550659479022658908605962900406035545607655384625498364322100013829522240868554371614128724567737737473246052119181210211114669129330467539166754834138822181484516759777713745021062302519498653682430289407008176191357236394181458110401556468780259372441236648916025730142854932817667699231902964055341493221781659774781130190857559984286243101472388730023469243479335889453034190542152123041006559888939055932191191762937143989170746727028442433723831672732396996208130053182156984562979203954122465678141371296460832975251628044946310886222741082422829954305712700223099465965776066693843296676505034045397401586556280168945857786602716144740869543841909553218289540038132565023100939270579506591667164363654984308198785461371589122214059286772052650176478163678111364184407409035289250693134761309729091135643942426629536828923331983759931935458420620946568160401708128146712400985736337275429492085413879121222310195214944078951681178779372685114357672175462149034465419886980595766733548516319044410550172509925489982920852711481764651100260005007354687626963559539874818125021352199457316286157512948229214843504813748208261716216505498160053996215161544660311534227952400250088140886501765761654052287530204185288650971064955054715208928309327228598940463048253913657944289717745750630947191762529187569348361379624638045432511152396411222375270583833504379297441880563528053178728716287278353473070919600110798505191963349280140521025408291028259321612717926204197537189442771464456669931766601171274972467835867548626563515794070455972625704321010727475741306832692488254342656658061679709643794315577246165282650924263042506935584828675880900840807755726744178742616476546279071907931155065055933759912833363104901525387568296404879944643323647164615871938613486039406056410819459654126954048389718319077461451936862307829353496751621119350543170052768171316549470289207880555816128639706620277092634975403588423685550116905618445107521718363352545740231066716257641921963053384409526130564772611896333906281717750365777606224769648596213063801200669047632893785488265305231875555980034694986484990370610694534686842564771952563747788052412008788970134040885663657932277448846773089783615155833211264067080181402356886200501842735860074714025812513291377068111952796083387757186939341567889117248707007181564183259430755313627292378375860069894610839898804929130016974887366675241762413310066183458451806821251102920242145157364383158309035506409643770244574204296495069640036918707254851051474908186025516970959341521895017360342111279761213276467624504841369637035402338165568797623368574075480152257536730650965867503496039365133392254775730476548838887642304956478494637641829147755002616639134377588325468232549164325251770360498067732408296757354750452503430069566480465407308703973687031632649322781806743259511964343265711984064698051266137326883477757001783264627440538853611088888659534333790491215245365283972980769450581137599775645084424716334090207770681388460486478472909045345623805850719721029281484558895610623665626022944247072887327614190124497102451355722787204998843703242413614399334239464761502375848556847555905716266614766197001950027455228721412020000798273493532266443082587385129696440483659342393849952354416743719021822766877415603307068109998085853445647930648879441236022790057356773550306755537937873885392770773276350677613772289551170181799964658683346149648958871790591642354266173622619965729254670363643866618377187561820868231790463582895926239324506340152178011742463744150486261030245666213178071508003479846795257405486115942486118908127162908024743078550429262174900708378131448468755717433702702914269203702613883846514581897502245992517214299935485785370064936255256105949115295834230127521015892806224277973983791778537621077009090507747103830194034074322312094233271158586955641943493332707230532159069897571082927923620533797647121407087228037753129196336605126284748892820542693301847745385583597188246955634731522819375570311292314811223235945854691451096006996391483474352397610071441724742586507894769219073562351723938520989740968276025613625119647538659941580360700698833947950830527390163931572535886577188741887802256654265569951018534957225211121554992213451507881631775194807611550287246815711552941653070761482312605925125522192226818127449033737754300504705183873246354995945523659049873671151806840060318400396702348596433142037792830208186343108419928797536548395206719332336686597073950194669842864305903821276658206665531316802990714792913036500942074296981361402855029021804832369146756787803908709926913341905826128054046879692644356739894471446065346250398574546409712640670484640096237471712900321658764596119540431337514495661990640296005440058877528189275037708420715158032615278027726595215879707893876816822858974526831115407708509304828075303760346510196742253382031494534130680406432796363987801565377586729885560703765224197951428001429711660425654084906155446006413128350357440225082681524740779101235676094911932833635922327383296722430371085258557627717891638839416341321630166422442690773781495417065267075931573951975593712908228925316962762844108101719418044209140080311663170210966242300882741168874612417347387654438978735481557549294724379707585107918077376921635576144433636952243219481007840622399923649903401457956341953014626546830786841899220413017051051419690106160607039617804219289995011458957740881480351293797316087107414178506008769811126744436818065150132400812184871161119453058251951388480913447715024510122008671881258233776461704668083319510920737627968925306605216332411139605649404622158005687498955672139307651537719347590614603343566094779826724695598267290811840543639390409049554759708335026954214090025291960955751574081583028089177107763392857795011206803770704256014227535643360790253403552782895355559738830735056530787972993060603948905661310406302587714736361680299680498446214831913997311378295581463315051247317968345270146613837119542075812501080928310888946725723471806852210642416405228877719591651514038195381302685529264381445852143411664617117301419806777445019228884267205854519556117610238787837857829350175585242406410611668098794998858797557422833670144228915670015061599317433710163790350527320183671035943502100251028499228226239760905677700708673005804390864295824673351210403921747964091897198079076103501137506323010813331149365178479820974751629031686902389627151569898988097229021502223660270986670493724158898202841449531335555075525614322452842162626508800800045105012055324317641076871142439323678872887832708847168990226423449828214781452654409806759075096182393047850237925371351480378216165464684951205835614537259289487525511724677748057190096143953843802637414014804959497605888542990949354258702137142860128645437706300011745476629255744792090735069333468746009795224302273246384616324845516142056510001583505087262101209979501867239706900864830063740433692218294419522876685103628267567353337761646418400841107990965170482487268988234964831011658617830113666161791306187113424041535852293983454384178337069541890636389838376193964968379361247396005231328564078234628871740675599988343951795529294890971995975571979540252325969548985229450668385310350247662043167015527348048865846517529704120107133472467106269394485948051023924380192019412355639605100675579481049637009141321773544242024488874014821813601522136945020451104677630107436444170572225675818824229093421573436432691813100730635832667541151422446136701694569430961191867207568889498698924977366024085388032009957334990798428666499037720731214164553778076726547939038965996186848568966722143945574470721414138579186745717126605633676425819421616676237528433406597510017765557402545327414246374260262958023042124576236389664222965900221706897831070352675434697040416359882342792338686711346034576193673081417983978801693074487042417498131535848803246250923001732990031253659116955559365210320338365951227558243551544546522793139244298708168477052518268406977361719839376545800474468854159554321969743518550591601393636240482873240528577016855626321807533628966877553245845753007562474824021717907417151112617036799300341789972548512072150731819881403635146933715507711681193138371060599230670541022091802098212966461612933848733017577009659192804187319423833410870650806576989386260092319284063455460891197825951052177620924299229555877287204077715352293620743983169735247343210451166102187081854034236055246265640653221902500545623507232601025307990535006156576690247246093932948565081202388069767516398979910237585693687560125755169479747970782695996393472866332138331021456074825792897556333010982674883509443409705194957772999765930639387543932845232808995883708777079864959385123564908276504837718436388694429463488246887179117433428187667390811489976116648598301271596878176588000672977350300470617313103431468787618722031058070604483973773413699414474908653187995961115385563940324807994141379299876378446537193625731274715168209097678786908124284805405927073266807248764461945826504884364170342141492661724918856389112383599353094078341683404337636579371765991610728912017172953446037849401031170535380348569242814036673302109203427442202619001192156229229885582755841975683392432896623448152988542361479304863761152113198022305459400273596413909442832719710067879070233103820918066207082155965593198748867875742135293343808080409774200616160173273697538933220492330623804407549831744192359239848295896051598909170695817419967273299491214035319283004491558377147934578171024786205053173223046079279606558253352844380662541050378661303746714092963458657391669983810811933837161059585316778846575761406009361136968214784228101263635501909965963546704547388458974216070714742355212753398219524519200601845502213158692504436939687791668766712685615015698249779346111966524734010197361396912572635174102212414747658492211128196812115259067926352142153990651163768404087132006933262521722990420101963516002960599470442561854365324492332229985163413423377231570521050984069293420352032294441564369005756317993254953818348139810833376736119786300000034029292429958823201748695537793946903267736479847845434452251347119704504007427763933603316896925646629761430292171878531260133095994670374371650197649865015518022006790804974296861444282871262520024181118193788682916132322421022415937676829087354723599340653582331697793247264542357720506507921716514921933324708359872523009097091447105020184096613740066734284713618278972957195278326876129141107609145175336413168123898081985756685251729105919388117866022243812242718804494350989409077666160464376749121693963517034973729067356288286806846883698514612154330696754128622373725867905209271513245657711460083343024311933352506037228334743246768722501763478984992141397465600678225114281666162742466106602363722361476154944009428989067951157095975576501416115753375480023348557001768577047725197501226815743944963797846485375776714663136959884901435821531029255352290057511141006083754230950342272566767896416625575871508913931797013362581039739391273089438954965522863611974792718495867201845543521513106752676918710383328158111628935206010010241891643757453536941764490075148521584458318500935169823123320166984880096007426337844095673395399084891551657581842504084835500669675437194728650517108936756450776644235472620267371790595020869246506759078319730466455703304779865036891546958573462362657863449487368100306898718370336061196488634543633463625480356828160230261312603282834145792459097411671852833841910979603335800636040785791706882321439949611742089586952545059960109568840199056905925173737208504863176783291543920622729191742892201611612593295748239395201346357945708542280917620634655717416802156887868398236637804464255831118399799056423659427585809657826504278039446461349632072066247775354622276013128173825750197298172679257566875022651362900098259102523078903841393134651515631136520409372684877346829448329819028229520721312771018747346553809543689471797566437010052435191102135628682811841964535260116648451363908517889515980413234259744743433174055620747375692170800554297725332530081628927044123027954281028249734513038573518277096678642300243671448312815827099376452648801969666173082010912910824899410161209895865650251364218209458441029504264133864421703686083246381461562648149427465450959828688173486833047988813141679211675763486344816216772792532911288477867724690497996116237593729216987527447257053252280989902657365650225941423567485533397354454574209615472055075325404742434508610995216393194516516980623873363795473350479124860107787161240334581997689481384658050362499593122089592887698281007932868057176285315136465099471001610718637268369706362472493648924112761743969564725140018164415756347946384158076521953682744685764080921889396493675866154525681267019495872969883907650296743741040477804012439217130554414519949406459530860044595798272580716079303779621145011107231353561598843561853080680743753980098484506339669850957868127972091074636416578847223579933781668686899842037977033695369944876867723878885485859905312295090516980719438179859655525822445674036928327004595073498512085723755596038916160222652209975764034626045089015970777834292366611048592052730654361534504435834553311412102785943727158873497709871883211541193925556939857144126766959010442568104121530640495355158508874387033235439529236826378628453693267806994429811769149329778360103395664122075506971798506939912381018030904731905487816434136295191581560314498683411616338564510902354437358769269527549784408972354884885533929389531496995931712874927276714193124997268277658151240390093534740156013788098461816040233813267574890226095984373986284013464734655820535234598571615280310577797007500154380084504839847717025610381921144490556053529847832467137485082665168704583646810337613495550778101582325279261186426179101441434717134472140890150686398385608201849133662563491889024817860836116050535043831309097753381425256493189184423116800154796661249713386666687383407058962409355144135789080621524378555415258337678201990268777727671448953290903038466255355552736619798806759637040015535857199355078616566735656878151610181125745622918796745619447885472299719904060304031308931418092429331230367176885765407503975289745839882208125936780161841261102887426735860441971219654248012150178581818849635742693472702980517714654920318532764457562384783066274767127581734055658402190812156151284237604898864410533710621909263059582299800723827704456904149449804763008159188310052117360843855734572796616158862736818512347354369520621223399545280474389408665937338552580449587046813678253385541079354990370415417288885664364352334651334699485098215670039556445132956060578774191719036169290127659347777420204081786888202483377364159061957306870929075240677755850238606894475065727651227747883848598719353130817545852056254789415935154036762066095489054376868773612118922172560715537204163332426382099889727457181976933680145748910061321238803056196697367015425839191694545786581903011234359450697747704165105260041591264822605291777008302639995188744166315174546604475101235322265914280156862309979368058810741930591939101296538704486687469609733470803881041658017068359193200911731530155147424195650169012479649428746812413264755865085194141454997084493866121859410231957649855166400808428710826727313037751134008297947446957846597390232078660662803415636619297857915082182065975664048833679025907364504792224357800888518011203911227099716031114268893060720678999098371951665153852085101458804209454392564775049623455366337561629266881348533386000427486059899780768498104828953638653339749052946829150442408562776670623606914359259477670619014937549347276940539309163604342111458638725806796887133372294747220302556092853853739677547831765068310646857059645965571627904389334247201355058420789608901150774337010172479443623615609261644560654640539202693788469186025590507009060435882623616960027180119820162995203448651569343094973454763128775593302996157813184214030172141527521856945495305091109517375729393585770082126219335270328182507203975730887811346319876162641253908054758641467483824117271620918374502146333016597877174176566059550880154456405131757129667410861031932467486030738603068440043005110321442345323982005515505422010573215490525192653900676544837800492871801336013580570504413254970803359297708866522067412266662174472888901012537582142992793016690133636029755202515877006603856672429303266596907384620433794207735469669965591411730280222608876687673170322473540025683309809241626887991348463617204878661522626145280553719835515986233290339294006728856379339887483696873402913488866669909546840227553812850782832784266650752974809257566528366416984034661540601424032502021036659541733195752056122165026265593406134255018006970675394007284430798553777647116802083521887400645876975798011955818292423239568753635272525870574967541596429313846036393905093202199709038424413149865397251295871839099201172552285053581377953021319619069591694122401521613797081517655820693538268648747528592587528944686267032288748589721316796160540463897837400347716099087672186665648623066012961990861172860384087482092912400541949395935593437384352618785490451609515805715866070762186084178562258369991817604219536799870874709159295524847241761910883390180868535101588980377988181509291406003668514075906953446521740136152169527538067050682071122703496044764736868115301660148067257468706412487772055348202192063132055135779963113975070269282526300910329990768836816122603548534104507085163280593512129270639098070477724217835414721385431062987593727801427597932053954209845812412751412704805595006369003988451803857545327225421552645314197271105235897085463547696660739426859108160803467190687881909847044427361931110431615490933817559808795529552918069299313887068557903688434129809410727074158872183591663983607504049855769948550072813197826865369290594147625133076336230150240166002963315114565985386230691415467764574550965903487709483488440555486763265941922550675474274057482162701456446856581663229244641584828336159590596094954124939563998368627765260850877759473719005908912536607457159887979207385977758727415107657916193565314813987695839836072196382486782100553021262993040438423125902760254341868792762561542624220838083503817990357389774964416229081636405439869836544658659227850777911018728208840371010879243533383858311540941267859155349955544310819844097828505600399584304786554898677538392130224445679083234230307222676860398472251917196597916881260720403867280562155930378127002778031996236356164145651642528412843562575039033069597094594491834022748410478056303277824367147327791090960154010631762574386592915862752446084855699374288165266584094227620144207960355192401972197071657258272649815308853924878165581624768562836278744522289736941120970181834287474413826121892517385348876643866150432035513832718654296025012523099290622513388896439422781782401734545860812872934578968075750067075117609129306966980850288332005645843092739934338872259076825776256526666975092622428591726101571362226207069157301199354926692000878745033135507312185308252892477056477922458939968696054983904941210543442921416967592772800881099186661673252424215353288541987401697784016096306695582116874115053550630068222940385456998330820220637791939938515027585690397311764025681425632553857943757721791751213783606388331016986245227669943909629052515448484204167099921095195435698796736409687762954689616929600884678122132701707162531112247821076044815051132081049247355207504557256104824227368373428488552433549147705026993082415682307810279391881822463505884427376345827962853341996789783034933388489442253373424475395048490444018217545176817060513172008054654401350041479817889785429263211135507581742705367260946454208942659665213568796668786223753400893827796912863878927402507478631801290763464244026476812430142077890045964526489526118240957461134384076732431863613295417908539802063529674570946119515040506321817539725717250749385462558010653286932786310304967436493998031534851881978643497811030438266217391340439106209681058326406437753195560988667276684121046357310835519950223294165755088948682692580641031802948455917455585136507216119933540218172324820762845805957795898566698934229636874097185857619517068871609223224077935494766817320610546833774257577837523292182174465858630128566469707972064975863313071864065306463696510966639023192842081467946570026196102091887967952372364737639941173026702093418842392131201719408589594338615331571961251585970169104669062879117376137612651298575823199940170415121603492724830129682747380053552388933370753570288060651134416951706324305976636253390591089605596740199175116353455848695641870775852006619762737702618696625440152868382554726064249389510273809986140688786609825661734491921275131878470569567776459297438433707490460540365681500785853542451383316272538868263137316672306805321037296730496842185065635849558669100489729964419608834871849362314610812376312152549666303410929340791019713904346854625124753032592791011073834483715574182418720033123403523324497352254437408561642259123129563260296756481358636751609546831358871604903379431240548167415357334096469818224447213483339554280061510939805787989970986217367808189015583069557418247411373526039188003793217300527335327625380211488893264331901064670990752430867376957931275152380034277009092650895574419984128413876317715923811725978703457127693248531805679232206055903452336876382300365631315013646475552262497624777556411085565610602893692971724298224638097448807616402646892990967467652524528332276220281654569084975704508765177511848464775464621024797454002144562853134011238153900422796662542644594796708712953964245249925235305983874135556934320553248573519231684580312152837578679614846657778717301273282955353442363779799463271953358951194885102179966817087989302295101112351468622087870981321099699665615199124169075089804131394642420017281044483931138710100069272947056531143228575419368331105872979475041861771389548757119013895385601378573132469303937549569123239075766702628971861213224838240575353919293419766730618945013074081843862588006474056794183564004430662042274654123717505792661648345094723374333139712711765270532640238353530614319860175026467747572714703785542244073639433453198338284127102642713945408829045796103358565637102897728930513215023887083983867352126667455498251418153005567226190155907222868905087345640801455185590128617925681310917101632663568498044989448430253640176576882057761539735179351368023802784464124270561642907383057043768628585705502581849139612253451565188214609828126584592717674738663844990981965629249168415233120599647702986931379567360822234211417971344523899872020774095933679071253390009657358156744072962906493272634960712489056627816622545549445180341374163605934841821215343727094554683797001677979227310499980293364767735981563166899808962176429897439335381020908203243333030760013794696881503667472605296659158678113229824793394014486990519430914169756587141816602290838405156071803879852914157978290112688084740633747155050093431812868848267878292235637584575797204860846041206278559695826593229919889101441819176623133026549520522312512823404319986004270601327673376090821607150046107581390321562603285750797404497468460602995544957602114359222905768945707304359609197671417026773672344692838618872437502955712375265632129252289035093602703323265040986972148555031395828107558428774460936400300400521984683395521722324598330584531917539510909406694687697752525555791013118817348904524541567081493569736231761828580154673506906607468425924641112063721219474379688197376129831456470610339971692232218641188494070959303410740912236189235365308821033177485990132305344875472931329041134264580648327944286245381991631381173772753776965518821129652591995433837441465585054362953411799537001779919864265541388385040482200680412772019616520613502563796702096935399961878873750887154263308446962946277825138143856221082738650699388246622989949886297926343965504573521249574630121935468066978422298302682587600079890273574938219730307718360506746673414323007872475510074855537435450959839739226471167255558882544131620247287371417384708558145671864306318617347638473330489938674992640140085444410730629295717502211693536506327611762229382427370777311332645398168158363693564718127680725314050390577036942989792935929363935172863392296048018088130310042280421101644149939586639899405248676779461161845712325653026945749732022379836659618003771479633633774669513505315131963809566291976815522155820740483792182275355610217680974433771643962081775408167590255321406528107682734655815028422847070390339959443519059846261371549643683974525404406125626247935986525793232511772717114537785195510088687715119270173287322277440850565349923499491343633511830119334308939044175768176638945660208144886102100902726880191648119554079532281908669469312554282407069320054383527060795527314885447342833584654097903244896750526361276616842941804207035889577059575478023278670900222351969419778339705446620814421493277532449389519247945647208190064662518190769968865751441325733579869669514377870582554480203023445104560485118850254551237518446246763396569374582023706570848508106386111728189162644318438065225874170341883855413598584601334788204994645486742516228100725527932823295042133330142383405728412703163872909992400596293920407861103333828016332896655964446832936327730334466980266437472971949447509879932513343772819897179236366379220734484908025779025934052959163342466854258515994742362766651049479690685768338534730754016520955711552163544794703711745865511582068095718949202659929785604665541532550201397632989581245695717410221662325800855058306676230620151004700209332418354532517712966812337722380374723900615027342783607984181292255269167060116870281716714996105620583498503284280589261727670120824656514240131424416701718351538622290937058852323378537157042955254557509667117926718081268418216407418052938346500760740008670303659090460184305769154155960863872832433101771653425966460334484789105683036872402238280975997386165573357290225554686371453987760406512549994314630922877993551102345022641748147357103177252971664453146317971954168381749440250016502688454684228823366954190711966129413192563890438502167464102002605227433954741015567976456287383963676435892422458440469191505816149250583946631267564489725349507732414287145465295588328240732163294900490175187231849147681024532394254244531733986415579011793702791689010891320134206728396545798519671816615009952352662266569110496757377783327553170459418852455749099324441076585166708955625593125636086244672725064294516987475306453467794782473076128418920075950124426501907049579202664151390856409028307044113247200805295117656222505626697341631808311734811379262836460465318721805567503243475766146115117450306469687803589400487215717437777011161242781536660805639786646982793965180777673707243882351232037478638434984779733226359953511988467212905414509124606343651436794787215622559407450586273201585330405919572709308302350079331222264988353014789536187431328938189165491116862232897700420417670161432397211951697037655038579476969539884490373956051876680185747640198265416587299462059463696062348595048318866280771072162821619679564966758395248546307508252424543909624279955446525362064465842259732829829751583463064535950987714965515055805441993617861817257208606629399952609074945278650405490521218154833232573088662692552689405873995705496725891234675466469471988521680932651928220297236894320859922228569968075724254984365823342757606221615303398075970554391908776859697063654355957120998871077906131198035185455537086032070317413980301336444473087509153078761398676043132756564089060150188277354262315554743938353921068156810057594823766062436008573336527095996039441812362823742130117951120356637903111845154507465483506134407602501133801769988446263497915037173408975388773981600966496340861559246149809699109933745691348737976355243624454873042178177147940192519982981560818868879244587002465661671143462554259768723795061676908011790262941350369628937362102090663580004938948576071752401551349901112138129834084352361990652376889333369056546242629807921050878366912537658474867035616757013274425987707593683434106831743848899827083001546680848956976865554782754229756075477605474811595772471041699514724929895067060334963614994008573697199569656962411788360326513621208704396420659757726636742401080719230809938814203962114180411984295013630949991566760667024197680879090487347046805532837009294163608858285675382406136099147506679265299526771699739884668634089271753321272703193501440827517532646497408509544375201879851372136967861290631383006670107806703412344038807733501347583736334320046794381888785873819363940652208930554010137579174431751004971264897383959289656265885078919890975792644522401870790916235741606601713300495417253165432747749637773039208825914348811899307831165311166834894413979640677606171049552484817986638420753249591674956513114083777486866064517621259450901426846757637272526436061416399276298272211458379449843729894405221804146397328568625258906178127287957203283591164758644642851325273750858293613746461063163264012290648252759570893092528656054712675435072458758486404433271666217803825163579618423676845829861078694996467969856753744703941917330668465106820480599987660159683253827657480035417938651351492906410675114341094175797528300021921493387211842674712749325913416936044556516004740331308555589656330305910209212699687566501330083874135629014009870966070481288972971309540200117443145982007770128489225665694979505848906403441736684548507817685730415323294109963546497260998041206385125997943817292321626683769230754230519556241055134314667950673906659492723030781488568541973958362230212569345832475186106233954666012729913264275424805063924037382057517663218677415223201764787067609253750230304668283605779829921410494884238660820814641246595796107139640822529423412502872882689095048791702771346755699928690674079753029783467944610509497015118478648363565315129148759773255886526286359331038491328437128100127116759076771326033727816089532614762846301744370254340539941994250133260276305461660773653155788756852903505399879675262384171737418476115545439143011655669771361647274590139454547922951393381031444170484358057151923975561880822550203285761295738292350023560928170636756315469765014883241417900186540652151828416484124628293076033217831633293306577800980067544062282215417425735851132252237953535454466348789653930952290298642391526427653410345210641610306146575973113913956784282214960926872877071759367894717603945932401063405913859371810985215136572525193261544979229877631476410614518159592858810044861731868525953363746820056734248780539223289628173703999004663640043911276270958588022007414337066288430733908722252682030463659002826958779432566483136122073404919589843489561772671002642017742585743804741700598367865363728653587108300478258486248281197878534629127951469573250457829685618057566952340144842159011840400770473046603664581013032131971482640428447891691008278406858687907719940389846320673177681826422030677773139982087963419053080114399505148035307124025729186881759766291829616220893099857531169578522218607141837207813801980877523145099999031376988466024464582503504170684498178699641734897769581839449954062126938092517506545701081445844716297674461760085896240378633225212623711074810615073759321322843621161020811985852167597987196309876988827538815548660538650998716508728705412792853803276064148307240427093883146981355446437589299968694749106052029852201124555072788693724817521383370749296949249382358532247440250703964456264386535350323433848917188995264506009602077374068360085496237361586103658693741817229936377416397130984596333065618758649524777099050807955011271815244748250729140963209409390710935034972129120155386860689990905139432671445799702589639970916036057537597970892724674125371125251310520100087489443700998395460030266536202093495874175042651507940134236039977429064139754333238882561273702660999980523455516016932361066547807605304451844399314870001639848426474437817944478338052338148866392076696722713332037722747620635167973661516128337788840419385799346549266963533342317686179370000756300377773461706245740062566789494573954828328144325268672887189684996876965503360522971389386954640454997224768357565730811059996525522006601714171182861985119204508556269865731267282014374966534438481777469692358676159652832545680468201753027550454538927398855648489611015366726088473447720895456849169382259425650093203638305709546029125723445031172264899231256002314348033995582497226353006881022754082181210512342558729026425091858924871989078987489778130776099071108240076651424886948776163012222402032753250429695954943048965388558215244330854163282491269541304192600786070397490269057973324054644228990491125581431129890629491085502386307250949178852349418852115498758645325636533523323431668278845881319837389988760676107694150588499809596955272549605206412427441318077845679327423301419659230020121345236736549259566210426653065138654040856466453091614010439366141326197702416494521979570489530383357054473421706388528441502680340487785627332680220896910760861670415200639345290047354881645275191269536232660116161553495473015012357420356394740101318616727749939032262039244099661323869694214165193852248954410004468951592924909501116471855961593850978476439916504530607597312839677269703768290852637278107453214978113521011217309264937456780571076944737153378365025646415741183188288512458638015584567914756559391594814636912372691696293318236500654568318379986288967723915230276382628264320368475824703279893805081613289096789042181313698335216337835693448772042840802923814870107622817991934634943213785452375348833726982234093718861110133080693021032276395809134670271703481439750704766209052174911891768179872048041740034147681454836980133361555578506019305809581233142529588298178743423084754802933155486066032755583821577331773790647243688230011308344205553124192693865707552203106743961507251530615828228630355457320212741761375494644074558648281436101053011334874645210618838500348213675009800579339843048288076408387950776776074427175925192703675975545663942217339651382843012907994492381984139560916405209007340275654793104705038316074355031285395234784694220047433532410464466448771067537424502389530381722521171088294928001500538615918521253546715247977589982770519040757700465025785179351690901394739756146490829763063108685338373082730360981304403448978208555069338536565380276416241259887518014009542226472584532992590207539502097935474278614509281347066749429547254554367170574106288235311548467762330619585359244616198002190670266779992728007936363105427602669516427637513799994430987168261647654349765582941016999175740315832971942308583166705429875567744554972303412672059529576273938624357535637378561109952794175476400691019808976619341515283695911117199589278709181237807399744324788999268984583052500232844285040360631914034464622281712694551821616647011057719166065433717183780813411343141258420489107170417002853283191051459092762723461082802200167474934185384292428635478760967493545048711877551404614319432057171007285033110607298462648099885757538511207545246864753416723103086732852492377168374144017726593310686138461850460987353789394986373216510855214602344572397993774469786359232315038532673008731708115090947159451742708772866653325619345588098847502149144945133570109458814810026925416043510622091872354798008003164030048174093392332250729721993025475206320306087452073568834784852317280068913119027061377261456564168599832571753303768150337298374926170061028358262647169524038675140123719303858381176154784907198394810265997074653414904807266352447462620157377911956349575569831319824240691031117570313287890231892179233572359460651076968923888669926118147314710984718479790381584091122405161408206235931973425783960947664580520958633715953514588310967638201367699293868188240220632649061935753253342201515929321966200203245244741092444443676326321814094533625246148297132374685562196825172239169587667740955200686825118457215794644940470944391529385165575789069869904538802180571864927574057497419466013322743180705254947999195707660302831979526059565573271401510320185943502916631392979209594740467769124503983785965823132544659428103169008276617770613926911377789101647175827750863474237782810244460088014265032722108645452409268709799908715299682132333803698532113946349673660700918984870944963197912742941243765432140827501570563858493037895183100257347640286381560022143111917566113317808982232517243154957374497340573435592573067733461909791837076442030288352768275710568351791907694994797628438084816342324629140995902951033276138084627953921453968545213319177300404086168098860795068539094534171030034018611176698207579307332641357148731234624233240618887672991149223853735772791828077142914919764563450601613804556498902869318755545114649652548557550208153833364831730411729793377413743397202558277244708147096235746835628715707685050290901305594292348762007765325706987720386421228850925407115267942632172744989921604421496445087814272447744128094005547888559020724814290129724945365205900608019463909901628824660202673814431469129384576267385432780554065730275118545772098809733214748684883713604495160598462563497145957256641590135903540515358889649256903668513635282511291696730763634291947290331765333337364826750707154626438100911340123801495439846941899758238127507814967103685084082445606844852712519577457459561455710938890353768232950843510934544745048839717415308434547424195812835583059211732013561342610882631611801544632080850041331770494151395648524658596484994472672054104887109071759980667361173295476775232706196547370697478829040993661085989849116912178384485323688652421990385165156498437826025457744444809471118690493798200875284518870175607980547235920803400004701900284238547697480958466442157819316339749686001131554021638281835408625005956275271513166912602264879410728565393907333487511953046345750494617493201266066105761069685623827677433436825279988798032415826846663801011506046616198019745329609808116492606666475872152451248411559760041216676121408746683953060964280296496918383433780777357989074950326584795247385470578470462017082849812797938420193488060305955141181529651000568383650570906321337362806044297558936444222596076816945874454792171732826703596913888471191173400142301072463089922011939943316498994175043248536733834699634839432152643052799557958081397898191908168887800123345449507677745966327767607069639952280025703810884401017272643456370963084734370338076358125619797357144782708919545915157501867712491277612019940187703844229846309416652173809000672165477632497965175685964886984530430044950930355500050158367225518126487752941485974966661021213519236416935835629229725525355470142063718249150014745280414465380265879163632245957121147440518496086833166578778964016118766694634159665431851579352043614706910221245691247208091419891395230206644414292204597106081060164907239008219901681147055528453566864669948414906178948351301923572442384973444323952912285978680021234398402979897238258241403680641883339317492830850993060578155648951795879189963673205789453097359601855269628081163468954775976592581560713520316494168771438215082464867953722486657818979073205155473238686692003932801849114364118844118986356300298037393998095586104314604664212939236921608100095751672579965654601828448893064727062257008892349488965628302345850144074820294784116506858569649882007177985068483427398155809701313538355670556302570480526562528807612811215800339990666540698914758959147858032197016718508255354362816578388892094828269412552006579259931707474471372378832859299477013851052566135882561489719385587997174237158582534081719273905855412519810816378505479226968771026750805385442833192947629791889125099780921747145842896044696701224401023373154845518826578231914952616244390580319269692903128637623880881468757813435916941689904148737753304517869472779499857959565121717471618069606731542826226563420867825140287949582843107723141010079256673841705089970675819723736367286745107846953419956655996904764867260866313445934353282062386449714088816403993515075138225219330094111800786187277756347435562345768153010490851469051278574394702831573127993762826623854186046626543693097308382172303631001836850148869027944650901269337635291309308754318335147558255876805112801746155667759616438393204043083438338797054107982904176618538379323590652790384279475369132877079237225237294708360279505993339551119280037158399997733152191223351225257308689653215211560480052965058001760921107055077535479717897822207708361212990416068892766439082665302641524389590870326777041588114146152225185335703117027387983821120555916151888748038677283552242687593082716640430363808517797100945151246813575629906632398800368739118451641602694485342392120059520639981840177364215136309866161183750964332206290152196640270080337056427664004440129349038683294973367508855248807205277293677766966765919598893881199295008002493888221480948824055005443773727992081861282236198926663624865761949764197862180226409171087764612173535605246932025918944526087441850159901803328042844332734551103911366109503202981289437848783356497802605612054129638712390336083691487386568288506924585423524839931398612804699139523480087476668713054634591982085056367427691273473750456579025669527480442371525872797570690582215430058047990133042490223496766007469673738562589173712427181930587123004166328205858669297060163758361661949520625680680624172850252869140810006147111277069596209599353556539331300533391747170602323314520127146723906140175804171239416717401142256536916467477788661747430207943082062983211689538664998294591401358842961402200068391433991072697125205330754222431006477159122398646717600116652530816935609251028331134767285339257498082950198218279260391869868888240091639563455314972762006378933806108718998615512186116636257150886809924586034462714188720701869926216870640961962319634450931755796119291638123026955602064095657248377501807210353807118627223673921101237627045022734656397904835136535550280334296937858696687216863434352410375480747980653913482629329728835451170760134048905473352457862901334037228086678613920750995215013431267464343657565356215726765722194811356181235681145181264267731572459415729083395556188282269857463995521656426654853295342040825912675684011155868374558731171224527874047755585787272995385361392754344367938996540851919973181147637567142401757740227174771220899017045367230605510618308465452742227242941333816322799449847006438825007997730325927252232566919530675190207098205980231807500082837127601436636399947109956363287934868168873090819443517441991039512349785127155594812706706329046506092713368475080042802188001381628192868868133668324835044486626856822204832258713384203992329968449188073491721193155988929771899473654163019751207044474851522567167502995942380748308527357846107149992034793647846262465351481096352968253033409598264339285116552322417906244956153719122116125625418187279488202132438635952154385117405710011096529927174831376247216662045850077740389385973031995080826973719114698588608021324832325477953296280726844862582495019128693316916780193156818464697090673475063596378355434368543138001408281164892149986645357351034856354918711753901699659406089782650260276776265731228264251883590823619144244971577867458691059563256251836626313852840097129059337482313268014291372553647091398988844605849780406619996184279432438180617174965192451688079549445102388682814198681873316399570160171730258780425212815870217075117214980138702407677090305164340398334638110730044932818571337768515403005589978801495609147963047562323258209518570164191168162611432027320997897664710498859568005505609582524393368174518795733872366456283711135609766551363427365189642949043026800029377509156528190757219076572731749216828385888242344464638574230313492621066909894573525090068909506316323545488630676341914433752219597864400153185775434790869941611348490051376711562589499252173926491888850177622996136772977675868561177892099233333745942152463697962342872825765867207122144047616181530552859067193459397991421997550973852529412507582626430294504486632500434682058324095662945285783948881500261128832429211477181572583233396885335959696020625077008467373150847283331814761006079252332465153321640057351578412831837384988094785890066377983825626166039398944311614613439758536126978223393285557218614869874211628519756979688752517461774577978095270315359716564706259124216298076822738163195984932923611402828787354734689158281118489134842785432103925786545191664115878297324560369762149118379146915842679125056683424381887953852924313405354598771927711527246585209065786118132759170206383550309925698639656077851665285125398799284830641391519096277327215790394979870122406387708244362752684842333321688398134388628211852731761465852983979255786148192549067693394907920755346456989541841743157711707598762827883130359825821193182770139197917973547655804388608248210746718606741427372789054847683609807847948251260158352613522851836590340743049152698485756372219190903815078174389983821957778357566232309758968019629863269059304919168760600333007568095055692635329821792269323230191321139513092877875985182970676368164777419395432937661549131802814968615959977692117054209945491083044762532863314089733442442890806963380512983339555301912594151949894533586186533562127894429942947140701724134942287091550062068485510453670735145812051160800235500282636762288076693176604938243550487284624798896075773379334490682355777760587287522210696790973429964388867850098743278800106008383207602886553703061179371083987185048663214550136676189961966371062636939895788104633898345766639980076577765725189093614180658120628787121827280253404002237304424984886181829832268498179198626771731578998451562335597562031408224525853299326746718916033679212831448917117042812582384450009669218195253067247322119177198623749753227665916507519789011927820510051866726161610633343706646937932706713047839625871677813111308143930410993657833779695032909925499582846206472533135189053646300410167634405301672959713677462709751870568257196593448551635798704096245979606707175022080553712456450464541285302618876548083500485636647039696644642661105248038427457291947554840058266602947999375006879022380145807302108722667546594408891104702176839489804871163282482545279638751892153075628264654334958755909593579332330644361563730190324628915406396392018520196012344089931212062451369588637161287832786153026825622061861615884202365123031704926063936783598480541893663427617157639303183722492816839337387600655693128245876031231911131278619866889994938689357282081356641698336490360163221195056444817179850762725756668595087549793953448815409702688602893752295242665220831415943132342130094100245497123498022974060911041975619180848174704492866454122796801663701612462183925615237184230937105273489461535143791000667255549101221297101482825120393987867137438666981752665102069649304839406835006562895607603510722302169945270543486408229800618390268534907673329872610010375377004207746956235580432548991862794740461369091337764535693455330531307817839885401173550951862992772745299143578683899721585922451322581596740623717446423547749194618378978404205611589898066093646509102024487230126266105783945651019822269051389113513525233754815659383335509616674798106657221163860476680890419895206259524278451371559109620549851958978150164484682625601134904765324729100311062901960744238039170849982259760745481248623484930577901491433906679304364269583430732531256234921795202919283730027851397424940255276925957760996941759182457614672400543891104038728521826366995277530183113468591690622581295851619261676566352706683438486840720586072051253241095637470801003918922736162516434139270274220583252106240331114779710772678434561776099865740398489846064623170991580166842287452296253771975814031815515680608978093681452653257134714605521110853561969976796545352552029666313796042265820996530591132240642680422089565296036872663178730681088438129047611478873672989708793099427711378034628531840528591733764050938559254564658801394793907573352231581055221775639076869239771163157243685377390979803365355889109485379827596560439457249551428661721709776902590088066942355212786465868047506414741619887918132885293970420835588635126798371505578659825179833110193760499334820631956042514156641002020630490931792829418981495468184905080853272439655436389095245369205469563102440678484668274565669254630538016018710166564809652017177913458513345305904472006204535526219380112268452207361068820161190609309913723098881645584468693206712073073849949847893548056757764381160456266035770217368005705680609535803476957174588900684122454204888074582159153032031011780347973140156427120575471919956460590541160416623966854850627097104079847058925089910575366003461105309393668023449193387459981924454381587362510583504350075687441136184785176563350084707795455382736064474034832879712820370400890332328628060004150859608864569934908915464757837615240211612300084626130656807896197027667675626074251444575689447003723887038661112234838466877141851388309794578835283384771870294838332670608831442164235280844855728226155772647276862022603405853356609707774309369084057524005875301181719755737909881860745071775908279338321540460733824434246839393096220986306866516730861591928709973127180263818046492649526225730981132608574550772569525092801606667322026085509266519620925858610188302255155845260454257695752258047638859484421365738733392816671318868597220731244744190527106392246842840127588803003114887105182139950305442140168180587677032885633442253344667267824525843678326174766499043275593925532355787431294419451994633214729249576107734690641100067519815781961461479833873795470367775909423195875382710442374952673016913090181717223754071915419635918174280131088077201043403524435688346493982107735677257356224852947523703411632341991456064575815882467851985965732032737615118872554508508638118423844880469049141123624522507265640183534592337428335497198741183876089319276128109128624043120565926716665266969087009802622108795622645575430799358315893256970306926977953100836377068095663121831536181426499335181362010620623396471799840737892314645884474923425676331094344923637357002146584936783015547587878647967564574850811758222437653994402688664389060299950215299536306733980525034095274070321282725497877617251591715339057386829759085339575961728234163572499959259860156223131329329412260539524838914724090405592142280185847887886389110245335708463709233584589749004600868866314121456629984138824235995554676216945248773888534271742572081054716238044663006484684225723618590523370082681160400282895831086402000059305022221146634064718626800890793381916482888011228316084048914268273619377221746963796640388230395247571323691055135212329052917663792064328265465059558428795615650352484158995797952624808418182938462802539801595771976270301392786936322649488775986795882945614486856707230359297893107321733084069207848925260513578130797952848561534177384846286076790413087698996722428383238494382520482031277308959544481395674960986604361434921783298846048538526899136234745002933070120456902352183745282233257053786313940506626045283796863685804932838981408781918753030187484231057983526402517485564042874942622662490448975992585648900615157900861788612646848883704594201342794725708580511646988061174701408253665561513176151014086455925752456918128051989251682604515539777099206433863746470251715398304871728450155269758384513897473778291885993154103464461630032166375728593867593960198347005312964768729193889260124252460317353679864563245470186052938757724883271365133266765921186089230283382933185852424873889588660430533120692330456964766045372863191838801494940035421065928303458065501436406520003209118733894007976068737298404300158729239895317987014193292146443466818655586919878460108271638456696517200027725793171927653551749007885823259589406672035796492850094841189545430274152199675248805893127767923875708618690372810466399222648536992451201541569983696769879417107459900640778435756465809965873438907393614717517937919967430590501452819326603461691647421612128069567130928843674713368142535689605844372145089623164374196477831437175026119956657498298607679756804273006478145916735839748623666615839447664249154653238905755375554109997852017976474061969551319132066014387232221166999798797662261027053122856370832295593655745597817587497313186103803928861485717941170108604870028467499341750459059220449352223675592264784873255752064200508150818558076091392362357690527769332022818281519885320056405275198842476876668251070212429307523031580898094621147094743963014635917640459000684638491922965960765274763092886164373488775962515912329093206113863825748993515675603586109302296950836502613981794268708513113492867521494362539948577259794250931900275428374450578402330274102838643246883884351340310879014725385009433227159365097120395967963535454235875185638433775643773687003544464243560312990123876978310953443431567878143095325319784824166240149427484533838921945090467406311107636323245934448233359566227656935891317805260522765343038930887492226480438910555555206465643893069130858359887236972036280750154758652578598461964258465822607925940749824371675796720517050219142254056364387000954989080262044318053134462762371202553614492822466729108319988748752961840175821511309978433834817195080649071846605117283923979688672774989040362545298016739599321223530203725873850400781446516880883012852773804440040551663481523013625717072412613821299003645730462208345950184069477627377588323846952811468799921605490666465817414021491919386950571871263690916290249131842894133044497886485103878964156852064898862921815881872715564550924284371261086884356804093268608749696379282433557686006813959017600345156999327389619936388740349650896685327163500909254291272923365421528043561822632048050697183903766769445971560428789384559187182935750120313177103974398616022478241174960574399468338579933895770527907049299966283058244169213919942935399643299990094441362161114572833322153354091140369533882520334885751981883267450036921435121836497549499370758256073606196056986210393000080140129213731925541837877264315888396153017974492150625573681190210662741838531775106668118291858355425203902173129002030453830603558645241323606297810595281174493239083765117654597180815436338421641257842035062139085403588922593760445712666965213727785844145901801970921513185190362118247395048665722479563706022936396714311348683339941667264365886933340577132910064047289314203227791274646103578210427000069845076917946250009368558815334164368695508516440679134679340890129830290608452973245051154797819259377242485501652198834781060919861402545477611411552589682961506615480947117791020682159124123961740179029965157940869316779587985564411056932929885591161103767469661369403465684826792681093128259647269061232890055214304470984881451343714890379003377423122970360416399449905472264114324839251831559721083737833311524165472428655714863644981113577591750398911207056388389377691706745814971039698133986788448196386294981583959152503662997146966173765632264824765410724111293450613826044519940515591666978148351480237079090238835621053562279366221584295016039818107813144469928616905856837819862769700458065091671026075976812672103518523394713457923037267385781616284782554039726346464636446397128143011806750932162767204074426693482092633729075421871735440609639121400095610798320189564478754536559912387902045742355077174619570961990737242023384961502924795974560609598615344368390739070362513069386755031838753853711229508755447591670027224920900049294868712359621460849542472035888208085881260178617430909184088385087540548242288186655125756566952727005673506899658925045523574967709972460089992380251900831402303639493324021685217020396084037557868362913300187182221161235566967429327280178548776993451030374611277963338303688853046338982145097922015619684119415831281137707460364168989959360150893285931154858379168788821799218161650745184232107234899884021639589127588858560471989204671464863327393815144424382942166927914312451798280010237956065383945964103060571539255999891089798647959251861319900195724611113213198396211555641894387608692260010475289069440414992327086906670882984203043691049785311493450281479292311878080102550327541394981900532561180439025592438885589270275492423609897090345352857975387947693080587857070628478207572823242622581081685549208015428238736620829126099418764416961789294855233931493896886966100156365990937642190540856902891313193131671402514991485929631052162048888581899671822644366484074975799899299568482666219923662140744257643902307849446127466869274351723104605038861149277111798379737554884293524956643519999624608344693698241461539364679876776757722131698542422257921154435608369846232204618468997019796884037227732335039189276582469144369715580369657887234310202684284539946520611062982804223024904426900317952861361917708578757007516463284639956134188208966571885231512719498440161521151891188592735976019973267193513246814945971813725128997982012010494382974942898009867058729576136013837639521919264234366623555890347737148178852881767038036971138311076775581782566393412376111559676583933351340422464274459628811156171918432996999178724585187020973689124517989994942829388370764687862744816405454814373067986360542294076602724058650243801016086184866376578110369907318149511371067006058176664242416074948905613656235296157637598067340076425492126385515484759930865693699657031349797475125179972500554395667088600642336220934430688133607750228594132863385984911806126182229821208367247994671176637487390698555772938917686456358019157803277382428661942306153548076643724180613102151928621286983420901890325558132402400142073489407664964567810465355944834048771722486066945489262198297684429996086095870078252508344582367375190405560257072033524853403138011746834699871464714746625863931522895092419770613607706465256501073060510470118221996695949176758047905050624768874686264956632100429025518919559468094165146705636078406950643752861335784699862667921030850469113279356134433096070005536796117758024991980758855246986638120043695970947426481019150016575305195804034606089794505753197162271319825945921504673877619872422340069200120436910238106599845121224166890231546680644396499296315873632220712439687518357207688908585296666234946192958003321787995440820516417544408360564112619885285832359823691846130344727655147617748323585568869126761877883302722428570740532308435649107158397004506982357939831287719168379718655426411893076078725629044256642871161113955729405003836441289485609398486419416145177446505749970926660188554912303299394163623572354386247898419633471788791705366655919836375160503300022549934584172596481596447376956313768215253095557567749365539094790820438478423298006289047527685829929261229979475623473818470979202337734617668468290533895152049191903000394437253769730553360320626628886175870276604496086513040338819755404765658506802149912165821425143190869003807767505542590640175847645167369726133619339085524149729723319375938551334177151145417703331472258924580023248932691010255819535948441493689656935631778462309233285196243627231914795382152861300710639493384016416011871893018593132327919303272422708535797022957425928094438616593807879777642532739705210822860488233542832701773179480003998139329060905692546669290041755845358248365974764272986894173063458818107885281827958775234850508435792939371570737163168152394934375946267248887254953959370969047031014415726027491798620714081592297284368577251014669411422909376198297818914695176370276586077584498880777720078087646936532313885042440583988489006997525442743645410859425735370898143027666495796417021533310911675084264138146107476011612008022070872254283909802564935879753267684289236542925005374571344327194519074189646758184816226054091580541585136561412284293888417236985688290068577976038435363154392708982913767821324781648551052886007371352065759560225553310903539612166666253110452294517124074041567360103987266004146498448197556753455312035349690289516542185480470391586693175723437926932621123481590584470294262469604169261491568529374017181630129310749326515314422217003606292395143752249367053554246080427188359739549626466140139397076920370692150698574769065213781113735164049569275773070091667687265982965930823457303229141020632518519142910390888225987678995870742176948535643101350032640920013180027784790202549484360994543173826183864616646417042044599028513487665109117394217883043022220584162333111392216272451464715801848076397418402731692450805502824440896396641342408302567647849821054631654804763411269832626910674829918262089272606602783309605071124485142350539269343232500880617820914999388504630338803754167749519639844238583347626199696770273561954647160285899858125460553664495909354787206961875774041354429672917653605239122979133709553956430778179690694349246615621000909588561778067885745394888078941879233414245031089565415320438388994436384127010564362201478279440679669206248799046815271383471175845618837805132561656573537174842732971801643924795014587962086143856724756038873119489299052934048670413036721057815980805057573755256051242885811844682799963253544983278674576700449214055906942170104858740077140942059637192542298226105742232806093110246923490519843199209224848947902694634717419263614556161789889611832780493716132890440574410005844899707397422338802450755585714570110204951426167500336655319621817465455419652502132357822469596970110610946305719043485304450473197725474574691855374308439739704734951692991668316750953121886258871368398305497371464285306139819002828076261984677234824393995102994828191408833658713270499539369701408632688159883674216268261551919254057529307335291502829125558801651860588330561137269507978677050282946945423489073757866152135812559012842667296401660201589925195102319897895786678312465815772854241520840932198024592882557229704477984610712491782616054518501002857082231278984780483159152967914725242558637880902640460592631235571418249616200710123581120984672108411164736507268458902650255148775564827149893526683348733445999591638622565619184394648195675077572309422471304742081805527806869713730052437427031447376258897621495930582531575378792896263127549366709533409877370685734117950448489286821964877054138794228919417644704384124920959965730830439519194477912488839497184720059751992471281928703875123443570368412562127239272259792918127209251607822420917563956266366087130593736600987573033009023535753514179494713316727177840759437570241969349411573270855081882342788252763179334544902127654656767118332568311591995130836879997119240682762308743657827936178355982499976816810394502076308754084857454595419833631155605072479304385556121608959035549582180180418928503714882028374919968362338809961970960883808849309977209742546771527683724402034821274011369572009891284765205357546113267276448256466334080082339804778853792552935061372836513596715543866858590708259495151083055138347224381334094694190114868923502170524922682696144317196225347952556292368955931263610715165268853093601763492968921576417051725895511316558995295727618371870487931574296361691324297907711885112489218244525731351901149266540272305649897120743942962837006586503736648372762479820163222951904097106937992839497448515143919368530690606347163836327058633468001882113177062576477050607338348859636656334712012774286409872361169992181328134804898939871531988115767895378886559546739778997431805257308528412493128163211821634564414971020698564953376116715200777458152809289960450883020311670839918283595687134239561337640798786174432553711581121988476522151160435351220989225490720180688929700178506295773830672456376198417700708024596896267259216090507190027889874700401359160398950373072963191038198747577505757916866403044353684677585442582768793678373108715781091252935465826931064779644400473206898474009184507998497981792118487541657425005082190523328901160693197880978082566236922957795173466194976189190103647943290266568682221649267896435191190068341503671954915687480358594010535252935226193668329355783515725658342730858787436643151535265688101063895108893657451680198205762746681910593808121918362476520289106171570260714242043460997124919984363317031192733033822973958805433140223545526340378051084061708396703666176577195898749862226064261482243448976295168911802648671068947479057459831161848145999054499168666952330509729505096769137946876829570293705266024741888478564774590926475176155881698289948390568335603990773511944118540301883644202459475088561173804695891872149048461730411921979091820880032274277780435361617223890951001943452789888077687328236420835931267445376808024770720932841592105465066709184170235488107118223070241030443594144274850407137423755342868835419071993358591908955143612474166802576912224845168515243267371348099490822045148397984662450593713328001335152636977109969038518719915095433878637505176118303200061122070607432150256393097221873171658214395609156333596048855045830092849079597884875468829229615598151204502456289197047151235581533883238826049153780414962416934939146216847435042829964239820979071631952217930000905464870824483996444930698207052544874386284854150592640366868818426471691053389685894685994285250502932698574964557483284116597167491287958336151222555876253983051710034619345914313459028986529347060222639465444696632872037048115024201674648072272257591916843714013634602472822909859810846008511995333013101063931384726862537154122115160046564238908205783898741243036400749227542986762800623185013944213662056876946745995743599086308361038618607238187833727361452962817441548247830665558453335305555290826761800646996535879479179969196684975679086939416378566547209786953579776458077147197236905303471768812523986313459433348551325884201315675188418868347540962096732193998076381874760351140302322713932935795188706047902846539556273073132481520039538451666910263380738621706112541706106472066497896209645164536408528917688436706977970895129354601108913493769186242764490892683640718293965299311095481434218033684403448550510573207950479647713591145997530778801059515124513567274392138795246181310363418284859656848001561093749833220953801337925451257443130266368560004946368601509257667906960472942089653038765647452596686750032752970925445192643304210593814831401812019652144995902249300747410063441012169705170248197971619824905031868974279003102731162107067621420478465252221637261512555898670430470807607043079534351369319430223938587239985145436927414900779038228202239153635570999874095944856598211222655933828611516919113316936949418969135654272724443882526163774691179389094500994857767183801709487123491027510177700781708541285754283033545683833470285760632655935316134443647592402719046567979313359197452609971104692023656136492243758787452954330821585897905131669668235474953043734615943938306889768621050050340068632509979706857917290024290792622093261840667447430215043108696596305280987813283091827167333963265632683033650621027734902547818636221612995338024553513361287502351771261418524844780103611866484606587611586547973404114189234533537029179300556566945925513035250396980397382655864274263114071214857088749618103955879429090254595696105627462344904415247269122336200741965957285234699997277944910813271978020907144995961053445605056582976167985325661582603471668995675267524988847531716790079777925374328886489297579921734419913049205487399556282567334406161463957281860494743691736647003084413156050997531944954299439270999061642905563055728816760435049044925826671211104612926738545847003235182559232304564793465970575609817173878630541202959242241833602494551483453309675915026845600402801923494534834661104232121614157067424722364764550142401537468598236320102472100424163692715275703693328485104376779620446253453836196252071303565763523604495195395000365575903301673208501474017628082835056802059644396448399977518572840988027435708870570490568618710562402097666671367720118995453496293356876482854916105606813973113787260921305524535788059397281418327268405785461166772268406906319990965660897732414810476268857944294610014584786194506928370278059696360162792291443763345366515085218261322002516289476198495441491400778057447557389713379909312070944495647044119869197469699750433528425123258531477114224166641557945215681456489007469364467654183111667665242602082855088023806726908559227078493099187110652232226679105088141510718502892756327764155562279328071420047190418977442452944599849671140683137859144656741088790205550204390109606810159935138535823363354433537106016019461836930324454998110733956214004616954497679412929820673944528890366180462040704280136301925323940256080870256277552155099761488526186841978188118802886699183565472259931156297786686772889580651844763519284968465695408444304489977466770638663315823572859163154738352489398425338993235717623504021829819685556309837201473384374845680790216660510524943820934152189034718926917072178685180665775830120467152526700216500985504471295205716929047158278739143437760697446162015946360898827499639536856778974517586897767547867050898329843922868137976146016920582913738334167568587883315617621346214557286194655800450065996271747280787185587335225665482167905302100928769441716315221860333809992824134730061363623717955213989300023085094891415462759959615284469979463852731131030605529577053909748838163659062598053050585364593856698998053404510826951701526303743769520476933978598588180184605900730224669433948048586505467551718828136637579362573718955577258240614740667213274334571613465663108387347213145488884664520171952342705696137694787576239091009674203338313397244797278241288512669244572392721606286177395083776366743246435417844059322851826569079789109549130022033665303657915477874216357885979692415429544983267810948758550331770401797733945001969997329210690480158216391178612206181286832643388046164476052078638993656914683734657378991745304443284821230887604612308363112261468581308457237717410192965855036756263058935560732541109746785534917008264243395256151733383112781731234529978359150360382821814534711812758910301747480718838014938323666126368308772241359153566346655656181360951455406627150585282041944973185823346117822834007182997022881210097125546506322683169605697852917678836387688613793051106475346295908763796269220577665685026440155402903399321882911712031109155811755333119725791680211352187873046237489904580477718520015867765439636444968681988569142228891815282459062828194292518414245152000938981664260466978213161700104557273705553759972343876476271840767486127724080671181707140822177664172765133538991774930957376763937740983812212987447460616446915781266983226294229764781249182051945629877306888966518423158899407938130424423733581469536854950490414977455439804595433570226657145185408165210674635718364749920919978850853816035939821845791230685450267612654749170058397317112864484869506039650191614850740304387383238347982932897254018706037444767030860497523930732139276986653830103115943542061913691636972290849888153950125376873504001837944487004579078742232089056387923351547955388248836538180076749175565127049250518119289318175585565097038880108161990550504922289370355443546279174802732507928509898903885499802452226053383099936214988398906716707603838292496589197431047330043573616965686730772909819685767043363104309792432078504084055345056206137029059906664456346943932680743631913064724490732523428733444345855604405916971871146493594937171681067783805747447982739674208487291859870582696466159850457789039604081015418484246122765484458778703497218054959721605690798687419037054391552484008297450196185477966182626481581422140970385724343678545586765327247941630571624625214595195317869984797164637355956143893109832473085845356700211572329005333452091403099670711281620266633677132369745126644918383231487597028747773835677749771186841490782366765800827948311385371518207051518662569841069413152532283632784035051171808314328820127382996343817632987878067057609087994297723711375968358700294721232404436915570890567140254207555251681684888130572481482939853406803285369075928990558528373959795617922705035027214084088799620563077956645932928765604159828430679510960102540794642261033825901611594089895891610876664960921358983062375898692633174563044628415297536681608038879842513473566378907993238384064629984208584426365968914828694321907188877932350407014770980922605698656422374829138572644929290955778808844207677041374472149859149723656363625613214707324908358196643619738174167465147311877323844305424809000198830512885856026501430239015143016381627173632965462651814867427546081378035231906187435529326671215696513569399213514921725810225199871478575018200731149417526968593012167424263553565806544868561327009036967055193414856912053689013374822379033633413812682122590284212976424957781457995775347309818341604599526538021620193303472994211500892656887185185367951071504830850998557218282640340936603423342048314509512866813331090937278551762526875693915447750950958072588538738075421337148265225392190045582558315515546173514320264619614640812529478110540926482745974179101853300173047747416440069676880789492292619162844546817062174503652949416313695231247781356260864733621740190579203612151686015126198483357960823431993859861090625880369409723077274729230916940295912890744828455528540324089809020817392128651458602483414529834422596024025060229287737193036543104780853037339821197783267147062213505639633349277680155357307429540282095098075792868680150512765594338265913365020260784094844729956884732707998275612920842793134648121577841122499071150322734565376586552784867499126513198091065427660242850956738100130212692294000437548685636585650584083078441966997140489967471899878971735325679486548040977312890518270176053408263368389113759930109417229978167800152724745619665009886972740764008783712577703503742999218041944243237465777868889955318065293982330629256021966800618303772965087460168021483678057787257213368021853509989939118025976654821407793603058453877977144075634244085738700828660156210671205144906144389135792881542801517234890450402297077331076874159439104668846038465574536179572719912488722729689297020696469740366097537183723950047782056330496822308234618676457552394181674168599810726075764183547057821296712879228246039128313126446069736365145208809151337097709635839744861875055928502745480573617133301110688278612423557377447694098633894800922958728137782050826812043507857873322370770048465103586979707900395738063107752726539705705383333623248751844556182731223592953521077754600567863352360786558392978912672691715046091331092699657427500127536466156581377352714503821037936493131326370084986559094289605031258885548635902471249216282586099965762936065630535386039505226939731145603700869449130653512993026916966042317444344256165411225473356069828607469646924578315870017692077733641608379246129929027489782058089103319408231702619833061422176795198800974299829508978611698904385949485442275957047571316193921422565649895376897775917117866898131181440050163861771934491768220831939889171186918123645933667053137239492224592036386342552880202318082856357556202758711739690789905875280482061409670579459703248117911683462309052382883721120745961932720438330025794221247121221540051086781448327823547225864879561530546956071361033259159880602622704528939300091693622933292016390353057064855100509835824999394728462805198345246766876294991931191715166532230858220169957035119714552094242564191950657209872083262566520329718827801169988836426062195742046612107429193135100276550154615658966506341809844171942000233246890956662972838692860412373684069122993489240113158239344248788776803463617698536675787152021653171740125759566367886848672510735486765694470923775999104607747237363766467369296183401963609730032813734351619831631425744166519404934934613189116767445930044713308575251096628541940205590499556043517710157369531971412855715264135217806949271075463734490903628996215901091320682193735706035198489987681983407449381345311778307209287129003312114412464110016749769615831345776995580035801459207916251422710209779835020346954085023548043826894214460853784484997785423540156483456986101172934520516277339809667730766169506206354382142847654463141669819343233210852298991409389212498726671166620997750059212682818212191299740513212099363446626167769622505427030168302717127998256845974776009566633937919656924609055443022125549600149753916033373813599009834463581394325830683301050834301985720632212218692398733060488206010578703326150390053101319567873655031105735700339863191414841889020901090599031762747450202402250435470467608463786741576770293742338500500645159692921219911171000351219420646601211160504912101294129607711939376884804969521803169612651514191760456596447364002391625611923512325823500143442636086040712362023053217177112415986356803218850022937153349383947074441834366370830311472426435538177217675812501198736343933716951415059470323955060738537894234294276293519747377011768786930303548035755516878845080614693411117319785895627563547490124516091185478315558847813331385275157556922033730136132269448019101707563691540103713707468507900581863958109822968807594854815015290145034987486212610178842257670094077343616865684649509067532818028521245758312675321478411012762214497961957330673982462707823216756225871197856651931309136286846396721264966190137088036303538287788474287309121458838372085048922033327885707026004727637505845017021152351426782550552175032021300117703457960393098125569924552434624040797702584654122046121495381135612762347849499528107491109817771790248275996593310120060303404390571643938557388696185284279242452601007939825822655424871181903209913061261772991558980220195616348562843780617379060877053967779459691895400491401967368814269667358765291289887839082784307042694891207624721919407322538577488790043811118434953992061035790842191526740195594186615010825509455773450314554917215547456813794354756359233480923555158274739520793857679941112315287271126476342773232397662112207601081830468914729532021115563023115148557321304858970118750254734843820688244402840036589378092045384896598116664866434646726334488422883890968598967882681476411283510941622538320628840951594986123591471025231846082288424382841548142005536716714204631521930747921175391635795722149553041842856545596732458138795507353560208562762210524659747552998866004543975974662433739257995696530727847299354892352675957861777037909481456281673296143593458347168974941892750206283429665691314026863050124146160352626349346064968302120657448245997881864721036258175163402635925329605806136985609179660452961389600873166275488235834182324429869154172914323687920637058727706184719625311580639096164602414378878544499498182760812038341986314163615764860792771475191852538343755799766172190819977675679834695044854054060385687180340851930869777806038684824685920726018513134683427071943916977207045720623643905551603321321642937561717928528116066971514327463306627444970911552495833459010156374490639938424749150873513858300477728992354814191486133632991349420586764382498353054816766576583550736909960223119031106368816796511042850879926180022109832431789788179858139231627516665429368987415891885423474497993508690320414495382598388544207623060605625377631352446481305432266386339856841248411977678481359230412936454688920942810758488007094140908805047474005641462488252066208305231531161341686770805805556598704268065138208032292003884544445910355634271697040334177027198357760017835542865681888379036726615466978875232006674240623607932315453793333446857994846399329237776054162409964064213665942426980897379986391551813861140485053478080665690029767047125547685888814487773112574879782993610494191265090116836459649170447110033241790129686344545341833961445281897954624477448986964614732811233606158188392914264788598237583657670453472890375176594853446439734193989546206310322870290855103269896395471129803450692539203156190148210816324095265535516350554711241738214523968408443124758106792240980481661042395690207769046535884502658497718185556309104461061035296184390004665323544717888097845022342899812307904747750723936193250574122418145470856420663375777130475514931757219450765837362896217099887150288177353308094341849095772296092325629976738419962805081644197975839707412473205113933566018062612284885524591273727309922904518129224459113690469735873435863986534749336518701473080042473804545123943779891020256056066469706489108114755499200931983486579933152258091483589233327901389710318023650240617428271230434274099649121798348127125819731147629706770254292555826843579398416432015035314067239794599009890087792205561865564758850820374897520085103615934062207855859216844060612839150410651789843228916844997553042025277804625286581888752980831209737288541034790015537327917681068249609370974496541893862799041588345178499937679104166837279234389549380133565409738396746293731571556728677592840072515822941154218566210207756367908207875898826623297925044793738506201900410192916975066143532336176407029196784586311074596113481323941319305714242628452720133608633508294263955230418787841565888333682919071106245534644672889510576038915587292202082482733841221117079568257529319588424065247568894332658263667393904702820893662333110728186217272742442810813913754947029488948394879019670475345852330069129684753332589086276972415914828091122523040942601767483345899593005719319299867639393354794902342419332499487397575984162866032206307476204205806099784850857573473717278261338670560783618764946703171856407726725807411534347012650038675848340732953455986280502174961893063954439452790642583918655569445517181408529783976247323680263603605706199254899777618085346049398001984434456413000151980976464140415233268312282012907527796965165150878912583099964163129856817219503302413496789915637338749778752641861761279881680813805605723184295389587050811388222261710652868844694577295285109266321378995987120243916575611199635771504301416980552483056715818014519010188603185961905934548665501836588683365504746749242536692166147432549552029059654917247927013126475745383008093044928627418030118097744321971986531621064523585686840767021226995281166813688370946842098033001000719390735017715557478408556192330002942156434947961648371644175227704920103849081612604562447527485288125470165007926920715192740991377785639414208080322224389069405498251690300980508090311502647261630013074348265960280542193395670549634442230820706230042798424802085974465185810501264927013740134093640384472492257599219200717995677112995727513401954071526298624440874600121621375304288562442603641760647208436228276073753651316362368488203042482175903837751254737330611609092885611322412172108139033327974123065249345972088119582529067797251643269256495575773665958910961482175643336302561817350341397994574300693157278270651699979185931227137423503481381100966033040162606105076912343944754846838895552870970010513624114669983740293147179160225262161234640593072772370216684310418023090268336438877107110962205468477757580561780455653884389757838934571992243816071113270686771650248688597121676716180978317537729826432620086774237147841407009288404047150258096983430936356337547873261430575501633646948118830511162732892544738085350631239374209850659929311915630237398948824691483770602020409751119278416553642362217605971196181178770736913075540782763072392129152088058631447518079897702754421573482068565992758147103591039963753925911654499231407573027120350882864733700002756495391278696266613827880398282745117698237198946738027294419772224939882045474477316043468209277812076504861575806907131281138570719026328242728908172983208251496966390867144615863300331388705799516910419451792554822548021676911715734807150615381058611167090502366188162555870839181363491673927565002036205138107335412766468745837008271296421228716627557185222521496083616987147634107602566553855593119683714737336449125491910440282413981615512561092948242361321906424540100915833356559741098312169836865044725217614846526286461294523179014876922780521706727378268455483710778537530211866610762231062416414502238920579550171175670762857199392433851753487767183685346507067589324855182800499541491931618071271217040053573762479620430897031319815918918571393861714522176340546045813399887462737629640848240198016743693699265307604435973427837878851534323230426804045780440604192267768549471763092538869007892186050723986689187830352983468266240793045908999740174580800325769821106872229955162048616002444001802427773277253625960484191367420299396371891917366654865506128874704292045210137267944765842053711324064875344251505178922080080239949186385627017521663863819729496613743837239806268756551255148893032916504247040297331269512569996588504828252022780192602633440610531577953278740296412165825339246326125757467003824877556995846995662440669850377414633349001757862156765063749478705991769451062657884136384832315161556075053583999550075401014270110735848114992553524699956070931135459800400619131590926644810190586300733693449886147034922078746009790077634567538733083876459716681788169614795075862999840669553805260627476621933830013276255051631783907556771050714415612200771904170272299401717636054684286368917700441975485000291233898098670571284438223236049949378836368620482093217925930278474917055248701302934930108128418706803577165714091772189380539557773307574651615873088414193229281925063424557857813494285699566372983220104457253990057333649820264178850858548403913634654259957340295476348311239875463566676215872811637449719712229394523926610052761020176861431966671136490866587961681314614131665381020996079416327047857318621371469358363293497337758021981084840396888995325160796458289588398492635878594639867039610591392380105749040491730274221996294364067566446454681560116974183610315614244006216754526696228608207269530103766035185821221463529928965590373919497604624618881056315435418822254683878152505300232064592134367883555756352958346915287313305784248174688279652610673135199626024674660534197060967206280758238728476434689859736988545037340135467347306917975922103712961558161091024432509090637497657342765981907607006267492633329947078030383689838706908260700670317179783995902826705686866531815231546173802896498280104273730687007020533232153511063628597706655163914182811616057648870708540541546572382078857705293215941555196807729280011231852245815536060286622386759034053798713998584823531969905830211342641459780768956542586105889827278723563528368148533111080191728174278623358225464034363354871537937507915673501957603505135674794023952746912451073310159475605888861561104709729701721985779112105715415942733931141801592646457715245445381643158642346670935663658230905771625238703381729674240044796669041683251519851403828783023579215980073814790862427231804395578104409744287705189629376100313808366923322407122624437913488625015228621330627909063983326470044126758352419407687316027415538942373012681883595481478076420537972634112584172236357229980845575325747895109151300911888623844874094107843141631383614053761690584329833079961530413593059539459543155764241065334621572662350286989851792869618821210732010988522597901880868992428032313723474516915825934693734504036875084073549883836125696548846522532682880520698956321163808814511575520930999970534331858931081917723701005410765582150784247708072923649684870112495574655044883356512476338876697773983463967222282583847088657931579296996151725898563573692423007498387286438911691802694179030773798169448399755451060001598654677616152983241962397840206760671872676146088975614518244077999211949477794929992765972573073862667501003467453335401356799068730615792731423676188882479611442590214698496233850197027239510986780861690599368884991783312696760907927442450786719325906113607889331853861622245324649482226941623777521070955918859025581392285475856863203045604104138951396535443280384222452265321720806104778562054198736209920036922028151339465786310998143465797553683105093764683275366149140177871184157074673309581697045039069143278820327362343199772337514739979277555713091106968832329803993757886505027039850101446611244700029262987956542818059192394802199228499053579510009972008111450279023373284762170089056047084659204870956991765968489743887137202637299180509192764507607239842583473521948408409742644543786505573584563580536304008230905561661596242931065667775017824341916133309079730625865957557467058207151702969676686296889182795042085741675668007847355054517295245650766475158521080021552105922913243047558378152483167054633131748147638877677427657466991896360220199421929146726665050334512162686129111422320437692159669159703897801680204266028226710158429314121480404016220208245141646032191111307650564098952437687797233695257164016444587638499754398464176999616813987925178070268706368872224062316642034325982878306821167624973696561666326996431271376580844870641634430130143238914847266953689688865572247128648023801527829454597031832020721211201908761120201590640130778882388286810860713214728505491743343779604995675006662803591976535600694490129966475509805774355165584272365761587895712640908530380320543602698637081119299511960397987624764749644714868681431189824400824661198557042605415220337574670233361407126807678498823314251059623469407051642083822456363001412307129058140227771742507078346557747750586507462532112136576180455885365237324673485442577905886566614707777329401155421324753827192936608402319507673173175360563549206698430985434621038112313281987439521674893579404443068175314968460575388555329454169482502034075795626558231759927132953504059078169075304327190570890362582049645503230097503020257171065726820628618737402415853687860183089608850844188222856175080994885212124768708384824231310072587881129309534117783498846612443074154891654385683599356775136950998836516795857754885451959704996404303670429044169020694648476072863700660692130346829172755136426558899979402888599479161600152883334473185338541974767417407073811886138394883855349780263471138183839959010184990437804292383515963144490904357555308501302581289028605543120834354038138841878144541923148745732643694312061665966187336480277986822704804323241288111116725490726758639297763647030666140589156824996368783567421912037445899481530692995459594864336415338479605639323519101397113486395482811878948783248883634029979974847696754109810247380907507527339878316168324947578103658619436235757818000535791763570406445328042288024926436924971911128699838643241505791069444149108075592962534313381875102739954591125257836924927040238532581639131554031704622689820053897185387698044649618004896129191256337232606220742885122447764980534485788517726736417924152224393171771785311614242730145039119462838262316937240315272083351107157460065853956821795583387856359474324236839991814060424489094801283712052309864099175960267636724349269156646884586837579936382439035433081262877476797275056904895817361866344981686126005930438624219995454571016194525608684127587165299721569636971693548471255997813617417737113545290726327967286321203032952413553036472953170577731098653006294758895935450895782036746627760064803053172783968482029680068176845235519179689477635783382116375170775663474097742682777182218200322303370473542369834788637693604785263362282469252496365080884122720759647013935688969693690878137276570512906129776481697529723589468435520082820556402717364188773745603663994454328916720539172670657226395488535054999482292152878490653865552910074287045023589389295349806232875787095877777636951293486928340153276017464955875177913684809438786574075866954118643142955674005550409378622272381879784355755767869922553633426816770495375447426774455552070301340158096522680159510410163699651853520296237783489515895739546257655388298353176516116140435879529144152070046490785401179037886029863772986624634976202018122083603495240905809898237747878638839175568882162828417343040388360932830521080333942387362073104157648342005705835633925409171947071861435112911913683984860001475007584898492928234473959942800266655023745906035030294967618620570723335463075135995956277225597940974164736355103798724920766279484847285824632100268630275507082420706244825057640584661447808625153795646990347991756543597025404253335913905481424606496571858692065932483000143962046322461124586318444662825160803601836210632787536189605702331844539093335997249135217662234499121711226323723829202054725124119371288778618008740391199513107479693970471288648002171261471773245328403636426857669769382162448833089303321838772319561168381307055180124446635493297168203246286928709812057910585543403236395787386386681373621122276792849246996222316988681410225599969209354658765942510972221091755429811603083534260864645115552257177545515233422822976885688808323778352422449710329207231369842656972429617638985022649051941831327520735640319746522995220435249158053552304482589098126877219772415216358920270985666902158707241322363159546635900345332416738325223053713566410034132634163145100928619203367000039771187299688293800585173518182852621556292319908368844707706835097028849148187629739378181600215127386272731381931614455806051783599421434498176722506388275263948723271657338229362423269684274115127577089595023844273176112674392835974017343287933149244367388884796081294987793568980204908428882553784941001709473309993791495647557512645749634322467789944197052868511824132048075494199402693238613710796721921252770887464582613574492769100783519416935115984148984642142453268614737435069831322654560842803307867289003343324141320746938240917883378210008578470276320431308555347830699095945814136024708864086222628794350785984669252842141461396219729580906069995812304156898392504636617728376109353453355777590016830366284672290079618594987411302939017267249082197551017790713990790397034184807479908986188830134101126765827215401769327589525746978561389137895367188438596906790085037974899159516494544769029006117194554102286772497908890139127892156372560553629593980050250875720536408026863134618885693792348272229854140166933723017807182676790497743876134796747307271832974683986539887252044559087188022002697138163319996855899525540408571531929255022146749171231087682284043868466207330927472789778565582460457476300200311118681618358595736655006136248941254780354830136328557457969363182396314132208725260775725236372479313160946295017105325692171673677776346037824823089290886798158360487924735075108736940117226919923317074587366207399644868450982444067426858157236530646612904995884830058316396764031619240018010345286904455481847972694780323520995952652231331030528444304031666906426187954236789016797993539997763871362708527020699952600353540368781438341023070348275914847513284958770037535609970586108687017841347882798834793175642156302687784105996510778664554776347928164189213589594327155195764659355466830869914668748329438750758009753619466575086956311918332844343583638691924507195015629144575653752635879786463735948465020128244036506883819985962853770192892849202267109597892257913652020137142367757829399484964334596876063323980955803685812882081093153425072988410764013698553551464030026169051117753728250418349566225418123127045642505063733669005130524273491425770580109044197897640411303015893492925213694333778555523979095738188775266611467587276181479244902238307629078601057497489570227051182879141948506637515618389827890663171420070628160033996601485030202084307158282050560286132647509385389176612676653549935010526874736401209648982484245362027557205945643176601665897924255824851422579673827126794619645480527726018361356663259327426298901571268569281722256756850581902569236818921882971884715508628608677642292539110732200631446483672498578602268948395717261628106155396440028755789482407767093645121055102963750105500006989017780394746437621730466962831402157854906291482695406978478894906665113625569214632043392078807837164914832334883255666081809979940698686808651687039688254239002207729366691363446851678882687172838644926979567661032646869566739006481078017618143935812053764332273279949086439299013558772090912133283335546414304476502600321438396288476918515577601506511616644622838770332497576500226522875148997249650456693759356190420573613779360850163516804206847026876510833615901273681279900980008900115263441045345695295154591915459088700682323843043456758531653496890564651079900011639058390081907045488080522974135341727400706718071988196407142432766266912865475017166585724089708634709944754837164565998367498861681491255225351249591566005289948362571371303271345897866533057850157496118195876086255685050102889123561310145996742535572067596582602456910081099620542358715736732929593675271886344039322656139339691417882896392814030487281241905677846169924444357835960571504911232673510335450075241090452832496945014010105374928870869792418398024746286890026388778381614001538987093715095726261874897567909943688774981164914962829797031620362800401215246745391037674685402427257065600567815977944233986391828183316578336593799891944203667228802987451464815680893448264303073603866583721832986193812557183972254361312063681060472617452882807420878521378981849607154520092311557078502289439935690733797789430550014099531718161161478751000299395152189686204658967793919999764163719941612522627928098980775040004911825310908977583111886061698810609055248564111572780212451083081237793309546602823678337701118929792868249036392582188301896337743617507557391430477771568383294462968569088594152902516072975756900868785157165951940881224251498818434071025616009460084283558769880888755581631800095342910370992669198400841134909942754913925685084787395981215508540929311206657505380298741021917491870247996681251044813410565839804577258682184833012263908693670106661424470842395629621173922378556342372521412354402746158056946717567190118289215352996164731182523540970898596796029846458688313847561546400271039553542199828095348155021628900298904245271562542015596383820136398924417859401967172728885702542884523528438182938255053796814362404184172677845736783815304736795771760431245805035488655105262504420186064939753227588607638339329522098383099417486244209672561954003692616333919699623452331648696301883176636888917034583172512255023548754703462033091701670401652208301814633351331568479911395595035220917128429515992770573116582707082224335660808757388572906592122019059259743052159882917999028162393631881683183331537363529209922374384952826421612255480546527244962440565010366360621947885358887574135478882271999543776197494546551677973502912694321990704075432952310164745294223790702623407899149847720512540585726616800515071343742766504271681765371587470768587051490217279285947688532395571243018393364760402456330433243408178936638622413746875315342073908779951936694101406935342454748448565986572278909269836922433621673463360039435544576041202541581849635157949258658757672137590204900260057043215748952884737489745297887919832097621318687787336534759462369413477541661609657361352697259381509540273061786767658067329689889503607991318718653487620661701890968433026728020392880866676556302370335313122024591640292555788690782475879355446681631289968169924046731226121449669502069673891629232067095047262834430718177459057906393959995889901761508449777302517397544046570604043997693886515638379059421575217525464368474685099344029383021315012986775917243050342697177558473271849583800467028190851346082419743892940092490988838816296868437534256219684666687970426688411571455007058334204710007959229963495844886827986625368234995625520787128985214400759231625499009210485948759769860776898067987611605203515179540077673583110985480699693069368615846368301124323660451425843338933864900033666962981164056083922133476700599917990367583840883760609447502178533250500754955509437198351117414515702007813669116292604631900747898112093678978494669791312992707739791756079227454079640379911976582291021109717511144395491399843588267932160273845531573235210571995702350347436205194745462667121292253574398956541454000968351548792608845041767987779010887798687022096177253738193093105495565317082993438613694728983366486666354412893397698643759377077528126177366957808617470086855144139161014451569235481479605105039931963229393812280863004356371069839749120546737547251479450788889710954538896681508762371739747410320003065077466338515506691737943296748137659957410589303672158987340838982188207543919061690870700898759377759920055012516139622715864262394301211889934396701655209074655707593251889581987310228495551482625166106199773484105791334055609046257456088580864365496816839180464405948551991734595084204351341206349120066891678144867392074295439648926096579514531426933381351817013508226335445757155844721767057680301714817585842430108026607767660384389320685988859682477842790195862898816773763477476054120788878988439736348942152829205527019057570550961439542266745388285274622691869532261123801826064841608053235493377961160518640156775032928960880061414622450150696525700930247618475370341286828500872553853474243612127977912188281731308098669297148154111493810661769770972337064228772867325454864826539759728167855548147629378758515816880881684861434176003415733875173519848167211263618885960437931107495757303013039676728645521523175228248032592839402911676121358725256708622678541334232154697638240284055604743052748061322845958456935162075054924725614460714459492830923425629394654920680658814399999835923830927759258396456469149140007437968598621969927484004480420839730432059953909874829707088353366221263100024014956005346436065158978871195491105164822765505676497187747936225391439684194851521149459778201575825174829578764254240438133802400266882821179424840658150690209802231595059353138340095115609648604526748726271629348963671590034151612058608001282713490705912958606570332425097557863450663405882702747879453564263714130047265936643154496191069856588897209900776151404491590217311790297737724642329279631635101893410843556318518488678952522823232697718707662583539981561451268282248547930137102367754232558631269133692456919970846362829325074032114351139568075144182540821069291088812513846698276498360581076340315065335900851343852200506456176607493036235285449312099029804690204281194666769185806898307074000824928921565731114163987081627496142010650228594280684588738689269176744507762557282249663110073852020060008965767944351745010414938911294715924780317611625550614436772963632864549945025412636501985781401159319413035476876523622304493880955893684818013216668454734593212574813575909283923670396227624357057377599314476761515302734961200242850823658194363414560787313037041916017365724276301621048767617272805015374290134632411350244353275088238378601525689733684955838010280501399608749448245422097131541348611522271448402600718400130843214531428621989135505617272201147374251052780470672326623027843141389695273051403769305843311780938518712351901897607600210539696097797548207219853415841485694871559553405283329351566568736858088387882435699332671077572572577940323099073068587002689020269918743247769558714725087732281095411252049476518768130857559982780602299406198165845235339053427875912675754515224898866865246348341328244474897025443871008137918922072406835796220972558513193018102811346132332054986564112840189704470511139114470448694248669877920139489980758364852841650379464132931857580113032413884625013902129504114114958599127323692778403889777265220540527463931779114866761799283893211208023519106519949183312968254041417815281166072857158096679004215970174029920857956735296557404113596020615739165284389671807873924868731188485445202400092909921444051849970166590263517330404444240256393622474772091300177976117354327046214728297635535789531224537265653233105668744812453265221679631251791854322990794360614357251019937631930661847965188954015366352575288489218035080056086861632600109033793613645805745752718857070877046489199837282970839673658686484262983536810383222501410267176091907981057936361719461550806995904860064774380483136599803709113043758680750840946770766233145037419668834026814057701517951545976874344544798541112646331410489911871037874224581380924869352005957339579231855515918775397762115930567889512014357654681364880100236472637520729569699696444552603832466936547813147448737053248556086946511142764993208389585865093217085608986310513230599469387537981682463567940584999258986758506697489274192079049018367017337326220886377735513666661695448654393385415839038526102107123530315255677780187942293555901174949629405101860862346385981580471413338741657433742509647967125125594423975831618612430377859082854999562813112983755726125533579688719342697695912734550417802172271190686341517464869515835357475349644954514223594644551979298977591226851378369408239570157729960676596693002308922726452911873356538503185347653759335354607704927511383616885541297210158198543491255068901589785470951026583261214499814820271780232505208699155449770012525974983425415388864741721152145519098845213037116874529308004287805309707808020418734249254436169648389157031101014447060412004625907499525983366883256999414568148352334025308211135066325281417701540317626281749689969845440932890969704959181907631022398563600479267297779643439299018309413963055676831884126927936439750671607581993889074770114434962307164585406311417274587953078661035279048583529107356331439749843131118926829450642930406035868645718916544326245349879373325048757576685326302076839198954346878875508455639366223396575785455132075124894415590077317843059667128963189114709627696835651705035001457078032957565813099607243420501784553432751504578342037719605612737818025206423726045052481172791077829809429252704451357934804193027350773100851797038415141177403086144997850983956143986265796263322721157433046895781669201778438146878704216113831230621502418329770719078317640946093213665123438327826888553034144521542636557428188894576899506398988940577324199640404834007719541765613888743980356214073408517903982887834725043987150779766916448093945909753411519316543252087897169241294938053808678405238994214124175842715032901730488255396119672963050790985360349645989411476960033035207299196012158452147885682138498705898466382596157922036249940349650464223005363354978493328692367218266823272291193815353899772880471356825193853105590131098703756570995321797628961476988154590929856080689546948077369795525914105073855249737621761349799332129334153610901577879063703117095659586904980749342807892804710057520603075470505002252604050288042504074008069714823539199462385722644862192088424313898328104716414828336689297292558472280460912495925505466237077559108927887193617398929742781991583967375726328421278685391819108178168244779380343313688002899540903826871897007671613566446286638419100681480031750192865288650278956439386241226324850299150854195894222968760072318195907302038515905590330568325350604830056900140854772752703259960744131848932515183191609250454047009495663541903389181016833564198628593772254196644263389821651997004304095262607696591005275294455293086107813842470285001329149032546187649205290754370684177399135760772561431767895597055923002138387638145780128177266963460234233425945660969342304438368665962705653077253636721255557316985293748421491639878229799235121810622573936395355630191053819720236086425215527242176929642815240058260714247762440623998352314510813333315046489689441313882244448559078319412962746570725854312911410389581310991458916894787280691079724816180912552855206126620662489239713043857633976426437041142473613238452786105682100843629698049468906931758421224591970822836866365171938873167820322998322764430673399779674301644524835232120301065795234505684208912875970986158332859723065503526880785583738498936858112224436387630975913379722944314497953736867556171190780231396377463388483785291342103728290246309087735578004385822425655280369444517592090291969464250257041445488004794990434384987639930886227867659111319252435861138500388159096730053475368244981911393115976979256913305493042435662514824119331601992131475790926355729375747528384889577943528409096642644771836781498930534487368542211958988051381578769626958194278519861236904531286236560063961316899685382313256116311653730053241410094999307686321421488667750945787141586082518886608247774532499506260655765616818043513066577564170815868941873770062370877442115269950858994706173361368638546370119649313551569965739062304414848274418728761631876458126835030185106879177186275244968348061867216927190031892738342028136468995495722225841909240226547261735270398248519401918325578670528186509036309782309101595042297280346911773066265201278617598208420184497633305227836556093777552023416789778862304566586008823739150677679944440522036900842018500445468305131775527645885098155605322707189314551514083369148941402909080183235003373874498093844537187708525331958296648028997479856967857642273397410349852818197019180546796921826720692250789389586498568239930500848140674285758048019624764361950144309159290455308894014573370184758428444021582364961469195699747297219384217612798965529007464865766221873406016480097155653867536211652186891136597859205014766075384288945058024375197849109130025701240967001914319280963021122643342408990903904803552947078165896311170286616744887452153038869313250566974813514706542006220007164575329040404704186499720182715784828516160502772978706871790951098992188707936361142138034333717242096168571266532089719279416744762438366958732606014349277764397750645287178895186461690479675930350048146501331128994695600828512059005137409129259089536284506240475918151426754233575171096769897809308308653908490459852642662968126307155499566841339333162002428603412257255519269972988548792671132064702097284544766306707874067323046038138907369744403017381804948333127968833617046108092602069867543027179267724824468670959140927867590763582422277787507776271555338533604124125913840666457266577060001444722730735194035152716850710054002920155843416356303805361132872854273937935073969311894841597925241563857167178276483048324510978050934576441155879635321762886513505096240116411797096414856865614566708395143633602277634051099567411485734508467267823461944820179041040495890324040477917930198522256100617816564008074460757393551140532984649025820816674576199222518303587652019082362877953294681541070568856445115911252685477406081001126362063713525150809800894272461118604541468014592479978997543714648646242139057188751980061667689923584940920577213736547566892455375820261814482401852537343333741199764677773439911197684360305808847875337809434146263326388066846003256454927551863458936806014383834137285601995084802545856979928392889407463605365870555920523659397959327863596178940867681077911359344587321993825955333790171169196291203915516119974034251659228453833149565561788457261904589662075048763600614667836913783317905341932382589555413480041718667279373653376634776993257206841578912571153584625863867268986156248809440756938117319222190834427195464833373647626677110320339936696181873899344990253940347922840029052169556242511576953058701830108016202267272352699911604032022448990698648994910257746981060133938204512345896006406556519164598463966780350584683048329187127108358676578961429488493996138639938637459727770086644637718996302695430604976595542306251342469753069229782494201858836313058691728697050973342537288067798132895145757691796384420155462004964280268056368472696880111820199177578224283423967083562375856845664922006734761559353199963298291980184541284112580547706777753637589427247136971126761986087468685111380459081944813058240872683135946095026077306004997783120252781447335339529475121548300260916766180374920635256673077105883811733526808093098883942920540195558835239409473307534470695189974493015907688719399627161213397269152710340738442268265998946485581789010188597646115239105638381899617799944590269914586391687687631916252046141688521252446687731336541565739804778186945196158766478253063081980851629648770110353295401007312951749751129191928692724266543699406300091431290114357959548071957797780510650869923625764744679564712687642550760395381986864994705198372661329617678511935710403117038967521777991578038983167512124861752390024044935249111865029970888749832704229442537470838997309172950260046814414030115077547788118627866950409605042215418838794242610034262164408435431467702919269591592001004841773103882039701026503137819158053174312266821062595314820724566666378485586982534175233760948791957135515415255857283607176688131381379739196324640353731705063108652168916678809259325405802720269508971128076934176575572174443756173710262844846647937512779773076002877121566852098376714325948531500058107403571599537339038767753758174288863368787115182935046632206728924061049640726070151255573470697489345450037254804138364196307862703649039300259998212159909884834275202638877699221434496741971104383034261083353157809900336660496391328374094151365712863387439497362913184533873194294957716538092803199777949632969783516067634087931938658265285033028746775278522085805666778213784128534023971136788737277547931413665847480997951743180601885102630832623902687095880718904210980559868117801247179535351148324925152558257767620446612680598162748385575400273998337873305030500122325516966833697237427337075966052912165453817014670100772587446765489479804772565140780496590205795602355412055598496271488914016962447785262324209255744533327065416867525401141505491057435333999503913754979543538282139661039268705100966972298600052128980122126683696195522379903903068923774142590347447687283374881279789538324159580587969762778664739557822839355138818919456702200496556794170539353190413686603132007452965342543286210479800962051457472476818270667751109390955523219202336082119527803213440292108812871978357250656137992764889030137012404344824614647297651410279460396963859270808150306050401807563721769649282205304853128204443302322418370548356743787549394736919772977968549937356905028595982298287316928965858109159934714957160257282826163788044942245933652437613716195157924440638162816119055820684041143541466794700042718658543822311959752079242158191562357077117631317314385804847726961970688963635568720037994966297963497834581951852228340426300214121820941353156691709789218219756288045526590867966145582987491711470044910663952248432918983769709276857429371363842444307419165664408805857365989816716471639438987134913305765892676098540461967480628764617898567989037015642871990331828550996792425381174403842074851355050928511883357621583675265785130944405355247816891533371903975163357179966064170365039302013998607664922961401172930327567610664021764709628006407228210102236934206130156221499361268010015716989135040092782511865803307444636849684312051313993190473926351848480546689176219813491783352602762329272489642410091283748838164274850971784520602230895883047781306243544666228605897039594029382529496656361978190465228988651192723895687168908884191963489385567564588720219917689143041440585756562277044727083426822065163337141811005676771910838434154584083155884163471827968750467688377822648741402878243329270687597004589093692270269875944366586516244260469811337928718407502201187443780744530460689287772243605510651134611075797935178882844593198175535327271121348045658167039934580851265445282616101903058369827797882908958389274693176767270661446922546127128670379926752738529722257011384192923559028319614823282381284992977377861676961270050504778340304442653511752933647433168460930307284829943814614705034618396018754350416199304871581299768507241974787497291021287543294064082145763889595805082706131859759983385881022270269757609437913783426445120889056448503589980732863974028547635997199994581269393653353571519090559265285359901499443861326504528681623854612186705131304067102570047095167115307683866285925933417148659352164927414092528036701063884422744288448350568540061258622945977036124279208868059387473100987793893489052632571568254964143532191260498456011831239949335067201842552562524269652058923331327360161702239120094813520220247956837419292005592785167302429567713817198252840599123106825964946244103247325215756681459814902927831173633643911310881007970598021891680527861655621761590870970848334979014171903319421516440490087270770595786979598619340871306189658273890241289479996369590175817060015864025069866874278895200728645578803397035958340844906160238413712384196954052540608923629837378496612190807706092237108973844084888198545793434728604543201853012803948999680984710199221100349703795014175918610828861402497663871557679424947770679736774094479645686056490678497761697002534887188067286794852106679832723137139502950056901712356308302453490562094016181153838219822399510768222389094108084254700615955505482039708756402841838741183238193279518193998912449587233846926306726018364342875531149586311654464283808054710769583863199886440576246353129811512687774796824279090924472677762825145522659992918733001360852354676737134597943360885375502636090088251172311720400417717732651566562404320385510128101800746147595642986930685143614194789609442828449551307736967997930030949789270354174346779411826486001228410767508583049351334103175724071821308429988717944903367257061641647350046249358386269749129925932648840435370318961275967525464843514328842369070348824598079082302038866283360829997435166838401921893244369175822822309432134526051460503133568574177422492015933137578851486372521417499256592309880101319166785346281500194275633948980697946685549220224157544821458005935286259334685216738244498925996568616166791788489221396148697075478465451496610880324975003021557534592128461743961853862692301572604012486435757409264307352113362606549638832724294976231849299728162598937704433199558951157027574820195815065643716324246372337665189719353431055842822640228789726829770914070090188919423125471081822210107346050804438597122802341531455330064028038253996450977772901275705395649030103543182945974913839113972081411316845682978416292910314401933685801728812556138596044691194028341173864103909142243471570387991576186961725245942574595010105889072477115457671726137986877128163179688766135739712596705554017457055044957666986495750667429931291801041604419000091671264783473050601464388423250806426199573916185019249101540781358495670664407725187853847910741047771591671677315797142974849642798536150623152624034402298564712611134436492660579524279044719340203831808956696729770542411231035507943069072037672061838283565569319221202599975396354440595879979019439477605531811025391650390131397803581678760951374939586890094963620944878327853795584750719959055707679629880723349837425748801924385193652264020100135835128998366376362955197048375417537409606422285217803125391502322345564799997359431541656404251491469143798109367716260866632625457394268854505675209365269739019102743658838815142216823074635847656641333150520214169793655054880677884156630509982320143646170792405907363226940466985708230175274121232303514203314379903721585348123968847509302547374451492797894975465101596605941562639893339561064370241505636408525525991075216543660811409029971568567734976310970127370857788279077707039106189886342819844966844664768949510571285674863086011646487186334687493526155046062515129971773436769574023887737866344499009986739760245193693657752917032772274191766785235214745330854253605865735407797445934848808238602232355619161196158182563331959472816343172171568430617959770283079326280919158330875888085007133229326839070811481847217299139002070828880954768296517179874500419686709861998630630517452541674343693900374909851441642149417231801635475763022115426318128022779610034196550801487317587894037090535286494550988749965056950960967145288039768858122575956671754339479189841570403871909149443254341726957828076608640321040028120547133933724053830638337120401045402380493932998757339156342070465943898247581756618679586095526928965474546424660673962440196963697132504160444333938340322766162940589934076233793634229092408944553239994652455543559966131296633374585411158453947804781622162357033775033561834995947536685314267482120265062229142621959461601021268413277299703621909120576692836382201101395286060086802577322799056964395140283035678525638722358821322972046847303001612326600812932443067748959360529443881230482910303666800457330156905999204137729298038158972896167469867825468286611266470295058123501772934865979187067313921463670216142042260621945110536735896658618765959858411650298129758538820411741561995732802866984723298773160301430600417236235194644466108545973691401548916939106251211078616951404307628849288241999813630201893761024825719161182698049351664044675789199740826453861263467577450109292729253890142050316318320016206277309469158449680895819431497640087359729634140033562278446245720617415844972973594689712489440248264839854920865492546499675292644460353803816298375689397973828913574198841451734875922992495616346372957623615369606327058047901114031393954352713230498043418551121152736533582356445395129457198825985000249679256430416411206513340803846346093489947641045669510873719388693839265222150830302329619415209395507228728526863664351215248493763724118151562647807831935668039184827041145180811978457627391573671505771774118335647876414728807773052414744947037824311943393300358557828922015210386603384150513375443940376136208607030542683728249404375357027083800769157397934845191019037637758313746094739324925657917780946676358888523923109634446749154803524079410136183174050514179543705149415333840319142326346030027089991780006932538453403815262648072968188435301518494176166266982137458693862846708455682213308330737634566981577184823290048158709467129605274319737692173986740282746746698013949126193875210669379505595347017618844148234006092604352549586822268472783858892048630090249241930673925548972488469054419743318574150958001727414406750317840878769384067516046589638246891092581735177908266297352257471885392878385997264497846898817091209127349571524985070571736445454418397336684158127096547959007564375502194488391363463542537187292125332551204034300543448439135983732136454052811454802394534384806861659831773873953415740458959514780166191921441056849177259444403247131309315810230955894130874929343100169773657196909796879988258614176796698108288768630150900947349471575754386542712217724636444057815768931649909659705906771071873435940552273326768691121250279948777960149800517767353522120226741364137792794423912301582347226230339402946533913826563088950843221556878458758937416684596633479405322267980109047276549019732983987831916951735640208291021501189712701050828110423806850550199936275643780384418574648013196401699018539353793512352677563736222356809741687603726525598887828369885309688595043523460792145330366997711528417419172633719175689697042314231948655630882173435914415661775355467336392116366381332867913306159169434230111026185265877234665369166561759743956119302547221970985581510261722744051263844512922560685264216876740262737233455602369799554870638823417132052292610989855278121043616745867655078740965977090019052016984749965381309395551486452601440758560331424488861041025604651621436944182394975829313655872343120434516143639343689089809520621495027051087595713756575412797364594655014710258979998089778865210418550562351518206312114098842776546356025020901012895029060912842601804832619161686037389994335216895087888403944992052863661905191807325656974470741261764046683324979595816704133009620490288885481319540286033762855404144027252555824790736794559550091403573032437819987369044287072773545060678487719827480779253520532814828201761256433943464697968983074925722684532354503654997270339519105203242852902637524758832723414646938107866154995287743736586369124581839036591225005475463887156927144191553614297678181285217980469786331469547806166829813533088504561262125211924926518958677155858046013694340798029112435842941299562044989129996361248347512250722004776444033162376664426852017769885488626305943729973125979248793723879505776385344137573680113396158350717983005077408470079926126162945747256550018549748916107230706164480100497421573320227896529640033359743684666984035356612728989156786657528014572072922330905287467113266233749886627442941355209402798965255633108812857136966355783884697015092103556818870916942132125085774427021859319157580592230542884839655964044632848925704155975728349876335801981449927885773803539444161010613267836857927385942104188936394905631505533995639198982338510492443038668248998914391453525428165002625524292731458976365376837004978653775499988049398902893186423091661186957896159777611254806574024766300951005657821017972075302372217840824598162415221275082771404809692132111179673022842603052438169413251738660169882400912309056898422693277887058425677340315380781900568565072778460639462856777644515562326344429338282912058057420161167614461437778572379189941640227612168596951007610848307422051427450440418156743742928068392545320820641375020356934342839695408085157852614587887955775239557169583522436894248981341274982621493057778309291455239285070603566567339480818564299432180962337203693694148237861565134037886923638254141461782192638665078232032643374310366090827013603900762057875244208797404389691582041501193378549691697592000581243075948483812394636570271292082623345276209834055108099111887217763652467317159388540630805938071127218276867591506522568908475005562035431575830381051563928026772663884834788111733501116060691139935551978753746517314863050079046931314683418922892906327206198327519871942895694160654627821839034596382249587388323181243142935725624017515683080268946723623766939034994704096882975361725916513426901453425617229815177291101339519670840558334261883701563259193476335600856098964276947486328238459061233698694336959264122907417882535131572991939025295188486689567482170798137837229943755470496478454075219819008556465746126096056608257660762348422113932198071822909005205649038767684683853151864256488980043826932011727215923946442865751298491749121106631769012299136124411038494449211225157660381669121043193806855750781816937705105606918396694537212240752232416523682931183817881047055851477117985487175899117046402088542058460225617482134573092059724542907158897835003216207427830360134923636605307919737208691600557364364923578592918956219423107908556380680449625620389642437498691432882591168450898725494014380465953626945672328197320370862917551152564197562079537454872920070428403464838346169715788094924420336385184350985022745098244009614019331708829124357844999067592185407315243248736356556487444230980989843952585900701046756598169387634370255947890691562899348712892735285738931618172321684622570338334164127126837070744440401543181648470594183192921843866506922309535938469451791160712208657081622478681150873426625410036601595913562929605951275425370477265939148472402865343837305834680130347068840570987057566484808591118467876788480312377783426343216802872832508716134087099987394188774829510145023800089293249849300601889476608904258054168492605854712706727108755470252729851486669321683805993707292426672830117719669356919007737766077406747216027560597425073317391193888746444016641744798672654345598155821804650381069661385383532884931389573948893338254123365648327485646782712101425724483401329509433573282817094114864704164038609568601014797402971255158628274933823971766869463561431099444146403804741025516781686776132716123773213511536122418139960562398832494704107642249877804050141326761279298529925804208806160800820000050319495473022882905831990208035089359008685374290813273711016234807488498425221012762061835577752035063465179503273309145985515528911896470319542406316077429789939928829076453083686344572451466993241618325570681008613093867603519135614086800089849501397352123897067988066882809220607299364839881902169035481241225526641980155182833737317632562256445091974403472205913808114361056562031790142445777915019111622839285982372713760410403443787552295387446482758249764237913781343853842354581946690421875592624549349987985813385713628586899918501214174574967752893418438699757894861139505091633092489952923859961922342792737497612573845014132697696212713022651847469338377943264302414992482745520453576567232407731239355235329466670303599366884781404660695310282337217474721946016717643575876802045255373260528417197822202289276635237633059869002351240029162606443742219587636224097617018502806656297910232417470315341681018908156121966023737771306980006145443643846009863714390881380174669384934973636340113200784366381363605830202429961863682058654361475988116855249585781959865750418539198928233966119509537663525917788592332869542027374491593412935998216361714395964631395390334058413449869792779681255108574987649836045523017494051164193900315019445484475705328268368318089938873607849563691618033558019942013451333941496206987147582744516261880688783886114696505351083902989353515132471355138666992849163958442249785624720295498474095414829247107554236840930833936425812716739060300599897893402715723949205084281299288385032961954704361537184683370635733659351587299476287484673590266739730596084498639906373714602081185877184129522871643780135863477545907196068078187124879020058323100882070551903985012866479842703858141510639347205854814852687367495306319948107586290780606324640608598690648187625670618777385182137688477298066001972778564492378915944962379329591815356584004732700208945766984121200132360866394518637225983964594017657713266787620469043211768005693820708387765662697968549380414018273262028548796182710863075530375592402902865459804058094221073480397824784612260510364929218314767614833091222170890373730002875582972307073475155433743301384765295470441595496475069543715736395770317618304205209789291555916005681240278413806337485773749632210986233303134298932623814970641541618318293024847703592991364940962549855701635533554893576073198931602825099729435948777092039602319545536683846840203019561780701979282159217094835552225921223149163437427887632495606769556947496876395785067991732800480943345374208394316325032857819074241973208584373470718918123543097091124078365088156018340813121977184604218344812982562999075636643618819673421082635814300429192806744370667585839935834488629877338149876346077044856637029433894071813768801867200417537746346587908802310402809245688996182734069702891634793557220849832445106916083987295098914024955742159149021141521574565719085838415141309714434923772323279008599250164089472751179591810385209361218276083802475148051258370462985239876629920936329848608330535586199675420672492312403467414205777450345601647955769139508521268579223454938563055534536828974042738819891859677090152295437750157793244828118390495054881280531917803157488836671604941533728628002905673264623927056876498001618207005709862972839459467513061970460540494793155762888864656911019863220056325959617468460325972554731836860977660443661960293675103864191960724973705269012654598263960610409837306590724240359203055838307369121648349362413764193251565017429397523585242438735219381249153606418934397704564606229154966831707044559678159387882115484687805626545948806900678967609174509143286466526507672315320050400446071383948592912964654127744571122426392405750642212370634999702484244905480352631882406209353424867955955062238985434001045582015218277598669858782810978565880019968624871527816657101532504313126733171046207965832910303920161300879708852215617316525273751363129147229943922337260504381196702039951500650227803005111526990361002230157477966984033969134800514640426931155718250114040006740099386060688510069943870149028995250030358988187617691056813966965757932169417125081455621544701326294577465459251832524030820695071494631119044149699307932870611106503873997889066875897237784684341403296323021285386364576428928522605436434050281487360335899393370838738915738447649499325872006234739318833389290917946268601883341053274360409315119703217287804863989122471843724439928851488320797997480091964719897625372417289570091078572072909458288173026224777175873478018829244403072534773959183190550947976983600663479964433841667952430560844374550621638597240367557751508647735296817672005839835708093264269893573289199012050521224780041311830050229412008789729998181869220414419058377798837425556968822192367713453834669580636341553141242389786137228708640819920584803266536223489301679202404810120548957774451197559820360470547613542369551509394941817786150705055280516443463808830719364753139956398837363856371316907969049761141814445570248550939393547008008298530841054502052776191660601827849641777384272136038768511429791499286333923971398089602329830261163971086424221033218865519039034856420314657077435317236295716645227307135606042539697070291316680204620383611782166496253514033661062193064516944591758133828141691812224317354667365441697352276337960433307848135290909615315041531269913771158505854796200619758607628095441815440100968353265951858606452862253102592559340683052832119295129648560117033762993996495071720621805667323987687152255273097340925918576754031099468664680641507812487277222256038571125092758424949337762524912763628979873700497923606759025572160566458191445062990062713865295254571442815958258334351969675188170924104613841156150380527492500704157018765248289809428769651496860580676973736666073799463753452778826393023749903106344243006502410483795618755705268178997452111417577376561602095897089915765578686327431934734912563204767693693478925526327372160405652956236262903289874817040012389724105102530375527520960083720972663075008869662304508770040567212168970345881235732824893320919833506535850627983105011358186796791319245614882733952371572898848139382330788189172200278340715727650932153745831917183716687187167143943964103712405964796824518133845794222257223753400542380899172204865839204926100136148082673444181059834960497750673806822001199719194522343940885124430776500970522876902176609592967456542586281557231094081294646853638859114903124163067268080655962228068304414404730085255417872581874442350953511320692325151716270171321365143512475947878009121127377737878341505386676317255211167449957987538180246267175463502862213684186546421677281377977297478689143058717417429145884088548236486500499101096728046224922061931318505623735620985001782796212144321555605910103963802674981513538269942024858827930300556173848930552244980423582431337343944032555921491217781545598276019305945770036887562203164868044688951058630107002286347135752424901666520566493596011397043885354832044774776368360411178226885991398720874330189012220621526942015777799163364931309252658708113758672003236141465537402850765133758991490043644382959516447786177205588544694137650292011905849375585829672114396092059530684755852102883035178342425165503722842847468150812073491928547721091577144036260417415244439245437908279404008790321363937008851382812037360272944120559756041631165229013065943608071019371809454267719566131519724107991123882185436686259797997467360883373058421772715332325436297650467923046405716372527770020644319608252422530351522855065877583408504576089842490914172082569518245704139088967044080312543426006109166575010920303153048270169965996115588108834846226834228396269520802323700185256408373836502995244299029315641778115777153764152237411642017730352123787317653863801488577163879547443170038935352361870473665375878129765819328340484551471545724832893236984938933772715672229026279912860328262207824466552104329896128552109545599512353897282152907400417841681165391892828101816998860155445777031416004710612370213528817793595843430406860760195175238098679478864607922552256202634991896956003216883732589530857256197122645097649947854904431262451891408544831539524621591823362538544853118436898487583396491680213627165068667166732925820361393970320395256137106539410572882763061397432882966834455402342038180403490731681531221930579628414625815920536324723747762713710045761025075744737368358033159206982297655957035161725912908270069719543088962632196109509858636854130799149895776761747045498088133872292370004547684153833603076798453310792697902590702580396426494366432123819798306214803600810130849922507115721396966081840121774834816324690579739789605511327936538921896194620872287273952976123960172858827948473908678614749698865319806304917183673244027516518991750396744211756601086040409978326068489998946361182591779394694603492717948429009744755076383005656720452950541764054142897471136374460332291862808499030616664477340818321874032974749874969798596518841152950520399100044719306424141843920483239078472065686746283049863534934999553629857519816793356836410742973541826220875805483675720430279658967208820168418926037208369161708609108200378895577495997291961216825466626170946457575765415886596740504650226643989110041173429061398851235922709433091407077352345906796011473283327408294322915953854797693044070780465018031243455900623329613983077456509391643144262037143515095648209381138627705426842155558810285150963073454706184546210612509349838555247696051500562809220169646660824871819665240515679282562387630879107566802489807662710735953364300231533257928230150014196402565371087979409198074415262682438231275875381529399812907703297287298360638473553139353072266918464204182440568476576089151601840818424264079295865929803243069676639670769434780916227776184945223655816668966284963730249045174610960065745032203024431871062885193022049396116536092927559215901092744883795995203224866719646523840940377845316487074846628438558503112338786193151856086178462949684508136144410414421167061904213989967539764964523057776804038491087666614740034439486438299233220455575946032947945423475053958526793222955300372684466925343373316617308907680765298588058681709504503889916888726260989315978002726959387097420760141623477085880673196308192379590338541341116417576780568304153175179298235198894658543031283845287563422436651483561597216918217249712963134269558867450428124677287081856998438874380318301906415656699421249733091282561535516640419225797199805148173207001693595800492482944615390272126761169723878076709206414504927533809600477959166067573144137552688871910312906184924494280239388691350890232306795666444552459461643181424021568487202371918843962142078799135400661827727087078068898607312308023220301091625586689872425310965119664332989068457739953493538073300353290046858088116167695388877760619310946081400662463555071664159434695532048195729620019155773342650893027427138487118497025677522834454646886409530041646648771302066046787472805576657331880252688731345967972184716482233843262358339416041652821420189346493476781665064989535101748661796474177590129143420952808393465823666486565689200796175597819021788995944454144623860178685727394547442309546138327167028143616875536396708972108266444128982341206036168263522232368697541457637313434561897861043267526584957558944025738031747228891608040144799125922910251976639935154501791809676186426618504372619494975502849979438418748210866567566076216791009987295713102259808085421259507938824173125038250472248917283289029667170161763106022233130084103165708905777913421417163254230918766140318051539099261606180408729694342280701216165896751860509359778682569862956038347385131628641425106295106073233790090821166125433927573252947489981710173119446999611633761231754268616402217279210801254284108549566445044304892050531335775846681152111375722646331104743164757832833230867049594451991433333249728358458212745937581370040828851770516923216345939270795963412078446670857337964897536894616853248854981654646574573637617097583970050921143035181676353818523032243015005096858103378208756009536295369555471074103172711109710676848664463326912955784524879669891508064024632602153844435938188810116974821914237717844982032033795324061006187277325679370197594568520460027799292148423090926716699536355980376934793440631115596053510638242138495219110383104805752743629258243038966182575926576856319788841657266083091781454508349156333697409559008927706287507906769543426554565022626113414605891113327936509896415190754823393443990612062257556885906846869387535896343615099916009245000782121241675424172233878131819365250275756947531782572670632736565519787367635953065180480177454248691057858927215520254416608281269640929029809757277473982860005779960285815179627743885166809432355559076507237228842837493671384174975661378824078605218682966276108017378799091179131023479960860018046660088386499207345375106377128904631776513183246225774327319404155130722574884961156817685298788390853460647869750009013325403298805295982341790654723831299257430199358095261033698437475863184860918930221458128461357205043180555559998493238286552624401822802203785841931048498731677879147483185488747045525655415723368927720559902039287666764724245743372859773797855836072527305178845426345804946680307399125437038568786479512783612905294175847685259891915753011590450296936968435924498647122390534396531232548974806040005245250088161083407551109578169058685348637293738165852342441211367243578586970788560291888704211343214075581450221647650964094120756548717389008080524462817733423825130400297514064096351178287831644345415585044383196086733408872837823689997192534098196988902064819561843922965028425934238272904242878107953520267389285599447667717519934372647898102241701680696814062518470756296324002628183430655042411404130210855736143620872249331056562658713975612699675729335205743580182111134631971079709078236808228678767201290439714514689946206965859827646500524457443635181771659896540367383045360537183552493011875657830656520934573507403872985965187026748321371112861850731028546685846424930051311575874257027500066696054563665780008845978855189161302072185706012493119438520839298030751305337306674187181963240061171753939372078487343529018384982128892207684265168416917111459411451705659390380944250043033064958995268965038406533852564594187407885025347884903823362286142117866440795886494062742365248874137932995090326514435107828612986285048204863729535931134275918549317769532134097520643015591484933970309831543710498488527542661236167658769583678173106622860057920752697144100531877493651647808253911451557705331216595587941890744619310632832442323100510078412858853072068216932363309977419835135808402633567960384105335783577826013152252804797192118463711296200877300564407802080837008784889697066758769822855346805550894690846065104484683367975765317509748427116259337507305341017740854938404778536126780311554796600092003007630757184431179722325331194805826894488923358953811859538515528770881601142139592693475454758444589491181968665313910548334315443199895414632563852474697850496291789388322953446801298237731026946503253694471537225714834352456445429574882739423935647837873325139652997220525331334488971452479938082623010967049146903566030300996781720415774472290197142533226235280495299462874638928501514314183395501457735717215671954851630193276263806605710695930594862469111785608894980568354241057580477892290356799589708955335127061606241323932933381712945117305651127630876225360371861290019416192377551432881589244575333841422557296803252368729715816207158456713343804534372369629612742144795074465924240767402418628481132090851070826767038684495784944928467166527275144664162576278444683564815691866664569669841055580356752624194957957720614782450829436719447521507778484088699951838136125286817083653733161860026911554875368760315037666759977369090992556029058510716384402554419831272864432163092981250600744253531815168236703427928443050801750987767542826393367839889950399046276700814849610665821396115404040401030710610943305920157240352682558182352944672259240736604681299735010145879680539019253129174387207995434707785638346998690484852629045801622609604388830843208700960917136117102488812916970124979933900746374845028376337202855458694580441196071444838146661924148591240040101136405905356626226868410732058354157985912553953521455644683031177233460324691597827736591102702819755150334663200712765861297221819016903777427963785679956282236370790402079817849841656409396476740958420341330040307807994710766158121050431091153059346116814006810439019108247702541616311658890121605886075972528522296531568394817512850077010559259150137963421526698352817672631797765379508671042450610750716351237449327139823222224740510497458779905244212920450667941014572191736607601477760895602335326023197471911049788035291098169412331176328032941002246540715913603572439013907092645082232942236841503456074026852849824463563626294210927008774481757947394145108648585788125838371776771336910515800578035528080707078671411798014509646699988764291878200183135592891666408756039922624306579252259766107583868426274372706330794223836128956095321526022547088314340569796296083496973420101902936718225237986109944842171156992085489214486966411566836441217802724483883495904687145808350264411255163101645451764927805015505936651134531123026863826876944195494396141487802957792424848278198515675193339278619529363160178494990866280881030261823213057092958029220285067407512392579631168965031192131429843805931597598983648209968117795902644204127099275153648831826271965030356907863669018107124889231352422016034692990197353375606613693873738241689291460646373390146674490457009870003422321577902760891403192677158887465122065790159593785836243654481031512984365082851094935379039124850640542079201530015853645612083798665217172314385614554013283763542676129960959614424794347617153016565042432878802341640494075338366490099746923905947901612648249607016486514997644489586874559294731486667230761671631764626362168993103959616823690826786858999106979248674179067849008518051147544931387134845299652676951817671804544631206847982296325668593153587289232344267685894594337013443202860418744289402061109627060464428016085451909675267506545508009213521084410165400911900462858343922127078383374999541456707847231294346393926724694028196677183826977158055513002064863024860720920061318873088387062848561130392631524606069579832510390433177852928479168850031857811279637125378989991727773364888795388849732538448083813525160286510993883689001062427241134940335317347514158392506775976564782590394979607544462038794944672489714514681462437822123892671328561308930999378005490894743643877433165563738016416446799733130197190579013039022696189835629420498580423476509441748528603505594423830733022749114072871664822569927319126286907763429686492466182019984282964862044161190384926946233411676784899461038872531461427792215837158708064448838935936072202095304972045971623894248251633202822994906961125336442822775146225393589701193713891464653980384168319335310818797978782812229000229847889647622433460802603398308671949935244230352244373876038207419670970985170062525116353963544327514066846439439183373129623512522560806714830546052459601354824859026851264300758933631748849044807996814366608977919478915250638366316724529967398899962303815079431843892940971134753711491644853093566752917545317228559802271860452472542189770643427947512037006560756221148530287180251471253313506022985191759656276584865106787150435452879733947758815104252356596852124031236921537312780191659357863337564574614672892747836151447256589674968335325439835749739103527951161871747448233760157158755117083823633553706625978262772478234070338639053497992668520059922745467264301379662323643675528924802805760706775156764057036742008836818903531251723524590063568021510071757038602477826844636833925688573927567511721650318223774954655740041231876396970404282290136933273115526159205689451216254977475092213552492802956771199285205552968079836074682729512258222902159884100098982642127782305607680729951199947000759757176197608155075929361539138930397782096049629288063036825446601041364022357259452276794282410784004817207162233897048704232849740491741930976183510508003069908697577119320956176078941755718393186625621017791519967665570175808167089127770469665057077302985579741577817978660709014967805064991978954790583585316454838081340568266005532154886068830151803242564442918062604341219063640580207727189121245106983271907737470836060316587601190473899998012055853609714781965284935514641325243484488976146384617607664520921715158638589522267247606252616257747450162004324358366172217710587865707164965065287779831012568573675343296878191549338110588138789187358354003865573991296878738614057731936231889986639592229161768736700673181670606409448074244336159409854506934639246934498722297628827852210326425183392248673105892711174801008943316913339323611718506054147976262771579080070032909562617264991235807966430918031447264877869582301300901013420166287651944614445523876141593472329002195144342042310421010351962158548181908020105802311385610428059582059604879652835482043380455864895817182832496053371031061410540001691170422233765597521264710317789857629934983924459673405267945737912302034703842257849394780004666496542751228494341355604697513868732572706769930454468916016915818602493296233033295129189574939505551146729420021098001182476905315082873618140692482507084666503636883221431923166910303231944276157938930812594615162777700323380340493152801779100776830883669890352965378454000771961243809598286219025765552930740154352668442566103759635828219420202901723694864439117407320363473602055113162896125467636426067532350227892857146163926257137127568022712769920765180909937158719419384346599007925909116203860283710923041004164114436659837600631883694231884319479737374358494491424870676441623684822829452710258737590999958627000691428636729057380493917271465721690995247672015209350737066572692474781456014949925502257158929652649295309664645130341963044057271664227042927277324100180402081263444027822948334874947564595122531176879169807333317070758893587674521485483790027964569671692287724248912567233587260894805314223953726430278424101653835828270113078652731173805915144385108151225894631128234558753004925805974107128392044323801534587276099928524881303142058549035938592785992943285104735381988840926563925462377671880404033855187821995068648069953365062736152435434003189741348054192254573275806675081015060273484496380881408727326298078251384984710867261571993985345477285635809883226609674156275469481397110780650133202604156255226298411869493117172410977650957515417672203639431695104425905567882523643638389585327965852928098466242052719934117155719509938560112995388314617854142122957172710736480719085223498138040035952750288465461832473836596882261475203673118759223409575053161024767534066589151812587511236468798158380235152651094874131031933370160568432018781092355071522547768874623122527242022087203302408809371609341992330719784811872300431244127822117269105524240087752077592768330685198227979200206934317576846678072240292948133425394892419545464271298779184994052327326586341585885031419834998167095470038014151242796775098367927542152698838111148297011593923227684727186290771278465752599385769366260837838782294150340885223050623018017823181366833077705438777368641270489450466812977553539629392438108309935723994587622035279999096609141784777390836384725154190403383039380184607717542589847279039765571841232354831064640016566260671994345180116717898006248960042963961371071292462301699600176788710603220228127067126152934821213140399353069022310311655567411842942592097925541499458335400991081997753474024076042857054032978883053190547653709400940301963273313449900639352578359458341068221162681103848016898472985064283053651362186415398427581539081498952058724050097155288747009055475873899978225169893100627526560064566960468159903983600617619174688124677747061030032800231830130443857521501196532276468023811525916143738613265971386619585896282432665586589955706119758684642610402167745573460867764379364903733231919801535463579359988539349830879230030613682636289448425926261790636890429916328784038735408532151018581061224410435467644259693144282760833103656564056293222695769652919602824343064671916895403571940716104816525883638379580816254545522264203664646079893865403321310276673581472432419219704682801346993321022138967914442703414302595050990357948457041515854163756571365612134993915924517295703737887453010470763474504078110968740478414982596556344527109131943296138216373109732218176949697397232575324701057851910121839113769143399530526005753260529070876812348265851320193941765469508535257499195051408978996803123626782945238907993663008393066399554467364097899974220649415816897922262188432167158541469392617978304233935131315158760553025781646543984667049553921552378299498196224280316164928850471005388219388528207327297209170101202031759068771784822953965030064498530519344117183900231726614497142620213718474502679641948179074613843232833231186305295233682312803294700099093530376450336532493443608688120776130213027799395861887512269161276456613586614491098711740294036950993260858321965702360553685765245172506203266202288235779277988091027830814073043258448303932779304124774625305019525498196359020172386949653770708747914109753903076970689933574170603136892044657735710363147420910280473298209333150536511153328546091979747230658629911062304891018543100480646297799035339379507637982281991715399735381579149616093137630679556006063654328224081680443843717848890892033332447723011213683769751491607602988326702340753911985272313817805184848981577608525694920378204318558925271088317341121203876192570893338162345114549295776158506002978258418244993224178125023496862167391898311349627109954401053303159034111399948033360016334738940187201443028964545902059560031614870193185832207027160007566423279322916022257071740802987295789958430109372341012739308133605263654063860810282497202254248262014964207042184431216515982141647969037938958794713240306820452956080001251051047453045218481512396262791741595666250906237637390213672289649209489044284444202156824852893024506338153419672329898529700922358041506953538604839920602071828082571913229530965246233003160914808405786489259607171246534505607856229004110990163753779416685807651500230753994195122769055847104816130486601776250896443245827208499552341516906286369699845340857211143456425331350335933094786546645670652601643481074550552599582631797497559738034830868499354070786926277208546112725223964324903403659416476765719120053489925541257397566231196137190020085669368406760194293105951151006429527760183219411436669179728155806255681113963762433334525019635112953441625332139495341662929914594089054595662377924303164708992060485172243952137287928131873144410598700008731482504335610487282552045388868589804672519491969129435874498126610411021496406914621846691489823353554760379875212665544676337360022384108150733607865980239102910819883154533323312241671314940206139172423451653881364596999619169591640764027037426217253077059561530213912581594924814394308024120765279738719845350607553354000288928315692914708288180848896779622740819595878751590917819022030168751958034027832629901890886623826993668075385311069413334968533705453655236779404459740443415974648998428435076654248657735470628029866072014472057694416769461965422174483364642659206357202445962474822779862837156577530538932338747871319784472578041171201459622764951411442805201194872769838823257085119986084410478463284914081017115851911776627665554550483961793610532608556184265986365630567124336979528455080239757203471408976909465948950041372867527664967664968467154090431906183949386571181171163212997521707911148129755143454602844015902679843732377943699203958765175705349168129323109053450819404800505805643428471500495051112248916729822047325284436802737679052565645100508023402667580573910961114045335916014459078810956012528138931759392996909541614208906417135908132491681855492951864698226828360810933812471260128577057694293522428940982845065512546751544325141433509518216226410202270552121157056513000601604346334870002103644998273952044795262757259532476428884256693025374009891332711427886013574326403156595457111647182827284187573261138583760115769451264676084028004336091349041924303975431410313870129879077550833250707563775516279770493605792875898818045524777584076002592408373749247174832474978367080928040388334166648998150080221184047923398541789428590305178870233300459269635203270082886342558668462924053423547857293957376313600931544189130880806510814503527428318108597664217446151798176873644927163942226452197823242968801434953000606545525640663933870675313689990313347887602475711166494329238619946874633145200320802221483748877768177402080801048159156746189370924351768647405374186864206053803703159370905603613307089705777981974408610860136428036890172061074899492220141182544658698767799867483516276149756367080696300816704266419233825030650665824649372972323101001357676847417304959689308842033458246968124392597809818425400949231816568815061346683853430958697076739722839898866186063009540021932017118565306031318359530899577606165958856062063595497854332813632138187208450986402630333214752463278781922819208887407275123332022852045829615045663266901175728543885416967363735548417335291311113090734315171727666490172746116971819335037927386405063458499172786891875128426385860371772511654481097829777227751025576130461043805237007012866803631536333257840223137244239401140667447882463261523032879846633894698013068517885745047342824553087421604280506062762330030187694607142420791715198529946630235207996168188599402970985002662267809493841204938495410824381468377114781444888682528202397468428825123179854472409164734908235207180554366418017435863636145989274383707985161150895386435480347322185748261265963783421176614602836379072932728458630430135919149078628154230096428588486665515395236103421691638131002117394059035146916750271662244058953233619545995102170125483506647089653105005517035307461958705532036660688792513158755260293218379771287075541498292773649725663495060411686740220105852965262274968243524206179987701698447116054622437609644525569644972361854055203244911617771379365465556262620503516680151280516764119551852690326902281675230257266156078074148300732484851674920030809806384104138846310135902061775772601312552153192322108115340807517651800944303937997974372075533265855313543697147034730074439348677199351627642662979165609601670332189620988136937828219068656282760406849567002475699509571467130067779463936146997771627292853109654243912695269333371221705426389213149255203423044306626235900277300078912068698734449876277285292935345270580196714914120453930506072819623239849095769116972775389368025694539244093417025042103814921938748228797332678711390251231312191909705807208005506253223754359679350912373076468444444855572998222249025608692366187849386871489135515949492369684876763151094515238647384500155901090813647284287103815362042763681796657328154420733151494963921587704640327877520665539838151462713364593316097196969524386841730836358026875985525383392281058370291650449155688975996958963592267004358559553230243377979496910963141228833492001478603301913864434748725964777379873362547711752786475066041016052209093455066505800025083021162487705649648897275335778020888794216922180432037277005112685853921289334260453039142010675671141998528462969607259076123766336388667170728673373651694628713823381793085328425957922109485440104963427618862440737695838572699570561281619624104727181419004263935932649915652690003253875891228445946601625012954934533479710655131527629951032066513434534004982321986908013944625285841831525444654565194509437952233747141952811279785691532118606321617897258094332905694242142340622618413246716481023898021145749217040055702739661735149746607764672763140855998303446462288024553122043922203125256026337286544869307601036398460256433874891403156017401915633657263586775279649020640572304906476692077593226367124560005091466181425432113190498393934752719274275307778997693918760705697887705083246401914021072267759669470185921393138348222320409008492307716954357187457703081174066992130804606992302706632691864654755733768573363269619736998489596048966440838671600429638790374655231665670770314712468578086056554565111719245565280689849511187018266063911729919549506364863206718371796969131171137588741391799995373910707233393732955528807330540975339280585595138404793031713451667993685126603747989116360149434099214641129603644852979651705279393997560757610138130685676389705095283391943819437628964176089237213955879900534394608395368728719494105892309023033535172162169408720544846715275925310941217569026721832039591899962214275371973647639739437304878812687567034320541781098424093228000725699261294984898361286733832174003057222992337167628251532519512419462965956889229464955751919853570565825823306072293256852282241918382450996234244409490678900026999805971316185478587426290097358406855991604025552997251578244154774561053412282192383584674864215165193609511119797661652373307036851511839188217628897871461972186031353329056445355249995080830842362443924915186041834520934116340802175412955894476567263423023079273849705226699793439111367404999765158419102068867016439324675587224721989744786787480236172073069651666770898998440761652866909057601951127818042716289994411266064642972380093039447849672166925655139642773723058182747458338882663576057149063217455912007774986034304099785117133992863421240609130345612424543791696445220441467768062291373445881667780569226901330958369533684769055470535281688298990311875454458811464998702151697254012402107437532314023717423324491949590587701860305543294738852837174241311897452236337105233919353740923227604472070946954833209582694549845943808263586669026721670761699724992297174526195602127639278664000713203646948342418359543595049527401482899736753434466891339411776397550299813405881296913408453357957434425521220676657927743926184178767059186446688109274648383270186599910216144040260342710021863457480810181896243195319621332858832089548788255217541937261704847648377992318346012845443148880779595090877016111819017108023316161166503798707516115098983692741050128403488626779449198079656226631073042027342244050139551065329926241275074239816068437608976345642158639464996155818715760702448364328458207007753693571206272571730653414972178647356699562684179843191457534546494744781743762746405076875930255022654735215256564998173067206275024173069224913450801331031998975326179876928384264526457674670077778172239190339372450388055727321153870652632614602723048196920872445434162173736602605707023964264687185717096223527919557804701489071551754460190952656597481554593920101677255944249354578676194999854050678553361680111966526685284481936894055256701559455689250317682277935320864196418443578757525258291102040194814442943915507923280022234030464357905278861189239556775354849977463820618266682224556341186014687593900833399852989826396311068412902776120614808827994908476039455900258087331872903923187187660802393058545513739348008599369662813381336099327869754545961884915019512951020695736150320035185684437777310020430932339413030611634772826633267014370951067675061441696438092358880529889943068625517983885012904330097893575908586766792270582575168147286282872055283909371005757705297763373387338926133166657304055622307061973596450851109232511953054472838415293213020949464663422056681800249369196269844793169558761226467893559876084946879081198139597188844904683525449379016523321484888411961476870913503325332983317998436621060628111318559954620839517831209381617239497920964900503420613570898364111284828785170528598218638113459623610839192096255072357189045738988099633383959432697771565435888080411580265908083163513907235037353479644686285009945439670488879059427614343551000996047662166936097050471810301934625229236050472514271968509456588630066982375455327061682921323347295228991209849830124702225925395451226172074378273484706792226586003884552665540488782666786491753248382245161643787169089295781817747280451024776053612968683139219615304583717388313198056882004828780923318337204915270579085537690716565278792881358101146824580056586978097968996801731034223210379107757830119380056218421752570665136596865364951079814058557936533183147074582377209794861969190897016808964167092572043487740674559669437036012427413331814443940299256594769213110270144900066692400070946899466636848771199193899949409614351984437208502143324150221342885615303882175085915748817147914897684637578862012431970938344192174857784635206866519587952457052102735321362608576693348100745965372988550243271860299907054906556065556147817839650417881130580252709391371008255411735773598839855365917130561298533993467773463685642639673132153673988230871323366370618711472177429832626145727687476990576410742309947803493486307797091281427097586279184229429285368481988714972196865739334886580489561171563924530279129172149637358555406896065339129617482061806547269412866238530609326141923561676344617896787196996224182439931362526897044342655798058198933514578447623267437136205770784975005249411978888878909016843488111767991332946505940957400136628779316214611567255868912430826896598557454950222645557318115695512134747127982577878164790042725390980690800110764301229172639863400851880968322632389324992793614102808755917364245779625998639326546803287875598466485917873794534360845902859489845568741761911182983672721894143682414277145864116483611250895880747516869672576811704421277309265536006112513074585011915370522170656430576275245034359851538603144572870054004554756889800282169774980484181922392521327804244684653699951781055677315247023217417384569058794334605238242504691758079662547648323627793454006992497540497572501709418019571525796499947376460023490204575706652603114441874045020082368574493602437085555568897127143691559365997280579132386040542231301100353279329091142647364447568428715664042151538519305588337073030471753418273755168103084773292179581127896669124513577904680970230473237084161467027136872828413127780526325006749481972663569794763174934048169219040736622175467958619466769016127921946917260975846628433777175048337670856800292272778495360794627179548423105999318694847170683649893090285731981313775133698375351160310704086890111304780859249971852858078632235516243308532547288842735656461119706310759164270757809726874380649261162453705118414003744683969490380122821623076417332774780912449599621757841813252346616527536682646486537638398948597218925812105504077172221357573306511215295741561429280591309329463602337100896514367783170631675963131328918358090774290667907435153888095359396556385092543279962066887183323221109202195466638413369560631416798194022414879947721768125360536723303795472064792860382773827798207289713712503752571893383605641651146192498873218057748698043819653190860602093814783798502070171267665910963855252507609390495036639870865604119348529818453334707031277413286774113319394399364931404576019803833902870193607626342972019438983983631258799580889052283046233429285672047546246832987007790660295807956609312230467866746343885161507419341451857639582076744834247834116715105720864852217376353524142417739373226875706055591303399705574527210605552620855419104399475900386565153033505931406082765839079025360510156933000582471661712468171268792861775020591813418167534708946021076858207786037570584277213827834498318396809718863737901587326475578994000755670281957153088486512127804981582112414817096772968433521840203686753168884976299674588579292895156956894398643523481384723857316911790776634809639161207289776433874229800319211780519820444590412603282663019790036595493348096570978791074863014615361928683796798362629393884740836479414320291364295446490117071757916480295188711206942311357786687642242162426692215913243469509639688069309229900087345018895855273594250451353551683807148195311240215772657662357226041702613793636472690054310524098899780517827844183851988040858667442468814068197342326065578623204817948914314611843673147362988283944890769871148352158272347247288632558600412473475890304045666844514890198921267754860302810593497150452342145919742450852073403758481003712461987231609538882588501977629903594253803512588422059730702055335205296285017463036305866493860413972282899485344470653015144134695565451636301559803595343497981262475352613550478753525039202912737312906457245648848168940010394645463773347046020182477268059585705221616762507774175050022569639843612260195759559826603523147275474356780130408534364811180291023466407184755132953308522576342900296419831732684438320294716605660281041384649258141635644824778500869705953665509662023264547657046176901380641980171407101411584917006498850694348885950054035381726311494629114857555855646580258052008136284373119303771768770965148340754911329350876473737718272424464631892629084413733499839761188140354406871233033023359764695110925571739936198726139827024485518405568077420495345223695987286564270916920986151058340283195670053239023028275222766805926913165507977456760194676147521990226741082419512754801714868590863441478338060473644222768808171176784309547501499654658346677563154746681619317778147500222173839011798522759030933310115931642011143875205563703106913422241403891426887686109441948231789711882932226178777760005002094454034155146182017574406135082744074318149144749213414313991403615481278660928133097225427169517299585013788144935593341372909319648128727009705603650558969953263503519774780586537044450502537086001682600967832344298359468382968233995816523220058601682704793415898522684570094932535715013299355171914754143574938998032822159334204593180959253511481717321897285957633372491318062346405374627910693767807694468347169350995720077877096409090806269440019423740489989899042213893910332916641593636411995010608825771997359916538051055987272458425340306683925705667159791450197042488866730828563526281165940711106978137444378219005396799843153562871867213827643847656524779837557882441799403721003823122788996276519450641750560520097720349688578713637499819395764890917114922148331124397879421412566793992049636280530076233166885759989637535750045310268643711593518028062921121111081589408560275382706087649136383088928990592705948182996364731817791289117809471290729683649283681504860959702141040471829134101001776313389575875725390525540162929625050504259593118781846785248152447434323063455964615352064178117773202636737387283690123244571002329651227536816037250804162589522108076450579213690927487282192138778351041630146658444351769232650052149616027057828008102333159374909601108691709005210263588865324017494493981138855221696015996723507063844400844630950758872008260013479586848038897180429699920793087124808436903085358809723847237800500030640458388768668186982049202257451895765147791653824325145773072019673397429659949158930951268378669997443088853344644960600126605646383876709794461367108398276214280030171643588523144216499695232104166252857133204687777435168974149075187694410501164441178631702844930918392173307548181554613568700020713305016405266915398271995229483327740585066249571329327858059409159439630572513103613690892510989162845089689699038271998793121563387168772398378332885017645921352127066765648261455371418071763693451110430330333324378884703597945912492396266017421286797729308064169322455438896048550978253416220008649070074133698721469190719165483450195159381382663813144879989639525726913873530037849759537664883283263258293677297376268607050302216960140945364425839820686028190492572784275520022735792693974324658263503737054843887608053349945429105541589406591794874661284926466120661129238215774915498233836539020497119762288108755249275479517702769643689251050567298890873348165896130098891528043929989755930104696577776866824644117537864775045028146986883562831003336843475537635889666098483263167378944649193906981407422166866618948821990126383733825923977172979205588195903202024809978412841831890837416310079026430761971338673203135707999047719296077744066386490577346209296052654752206974894137460479760472058875431770855160038517225044893107917779515143818736617000494690189586861166176634139976795913840733707171651571365618821087672711224737988261774883230534245268949351706479143843581075089850839689492497557013914363054196486915865747307586669600503775418580924655783363737018428032429253653736993505668759883031497859499541256873230137628139783766965651539657264745384361673502692600439264780311343488261691812967190353403410664786968034676286677749181953717327212039434861885069105722341361232915856772662563612202544004483421925252136163208267406531039626695211588400656827078034477859920142811173991367058854378673810296025899071619133738903887889698538982556785511662328347438492553536596521435631040557179256982627319701275539319884471898072789790468723565854794258587422168580716166291421673275272341036081003588531936065909074235967981582730282660402667761100203504141686507752392513856193136170320055198854928064882687726894063530444627541240428789912781117466872235170310656722135073993566156954295503987812234536096256828487156952307751297625121222396971551266853784360030201934209042296476285357744178277633925631866593431115636194243852534214113647471163309677395963454636093675278518861046219856443825727416388172883473018397896996190689953292903870716630419921590867009756538969758929739256629707382232703138074442175782680797068759746274797513852740946294330057627587930732134529721309277785918718802793185106891042603498598869407205577746548204966024332163703661062361426541144449400615849779079998177225235564338477876483544033881913970514368149090600560483735898864875007870998217040237539441712549660032393196211165239445471944852672725170745756941042578053202356559939877280046631335567295879139799108272825565789578578068458230715095476207713190378771020593918499632088544738578213538878116710792527874302104821093253514471080752556618790837467190765073928166139174007876164651032342425124931095870002804727634825330454121841274498073076177829793757128841111973117665384473989171122356309850723149951546932385331738167215905727423335986742921631736286488838290994252063809554913751263041981262475947628129172735367682444166292331761244067184079319947385377907046790386698686908153268497554554698574571600304543685877070093470472046366523863292799571122594999007146142053578921603347625391464206025093245588898386753296649074070289609227241248462279438249344645878537635227253586854482230026077044867280871251289560159125568317708877326163362351222063867319627191918366161650022475557634433470356676262241949962212172891056929989603354442927506281022318722151437195827323950086179338640685343945757920213059653740184955156402080705864219693748734373691643657153189699544106739974856238067481498165112988326002432974059882807186480871281476103228805218430774274699065064613507137666354333169794882486907051722038962119739269285570328221463345383182199688951555600719308343044620509325676774596316022707997428437384564552166542500850648487421142772735269746868320145540458835041889058587420824049498328876094717305426427009302075038438619619817389237994075991565809402822263590434596079663395058409322199350939487965946441372023792560311139631101659382690032227920433419879638231855977886116761992288510308563952320007555773498037552010761950301315817523993575967905177020105865996643110448061980741866791216258976724321512018488773418769315725609366341978698345510809013865959509015566025260284287237053365617940803454409339071210561267857079952480404404524116407715485294897761985644619535425960871938908265344716476342720522205645163508341722302885263335182419244827763389346412612116767765463185713007022698294831580406064507068518916774122629638331178364320898218110646434204972527592974860518061847448740006135563263629828612173367819634438563217384299012360841771714741000861033971545458011984821289808544564255944586379118689541486780249376684439014760630893982067625581896911115130116139139931622891597685981826283599994293955758824175886458095398578589360294310918212462759602684132270274024478294424662586697196615488806900881102730812653249329106573108844186981479958288635875546320604982853043864410013736995454867023159580833344475349968641958864982879501982132689001932154016447883429459761211051472845065600799576059236184235919615321317350766044399748039745898089385369455245920726062834655778308932877794390313369598481959751545495577286845238920173781657743995543112363671115176351266196279998970397023282295081400844051785308189524864465721869065492143211275183539816224574456626921991561294043047123815680027602657779379321008054068251701223497158807912496587559711099598573320851548635710126838330710536898444327275962881445945078113464796368559272136425126814023863651101939952823806695139318404864027529032377714789316730533698912869079747693341761349544170518507332760570462763775457610514455080541156824770810098516724526220716221448954043340434237480875025651029290149713779722326707325906228087853348595726085890424968868701481329955952863332490057752662686199444829271446998780892650554221631883167495743976206241295429363697158308903841873495201571003520669160481099882677687584868364529180268773758658841500890243730074849764752509348312283222062233490268475921815780459048915458919676288778236143394352091007829088028652663221616499722765909802661749231352655662901754844985673572701512232279570620828667402000645588133763978548808236910027620834523590545978739338598101900638990751178087972845490324350728595990199829042749268397375814014102682689624621335522485703648000993102047491841116733446272708616387091106230541620386681089042880223607731174022203878981175583421558150056991512804014809034561560474050994749537692148101307660939785770728690374494761146456521624654149322222237158774648686953413699353406210029279865140188251861059950560797792945763393153066100599598609664700518278411234794926757194593357229525305179565941866651793905207117414299127809193329946300322950649935796407270957560024672206452791254264248862552847766105901732472951139979103789341009051034177666706587995581608398876472942878974903581126065792119555240499830869597606768017457327746476778081307580367390377896097657310875838044376872175082931388291397822614697994130811866957603550149793802641585315909451543638801165701836751799070650469171338759083499959006406953914092878757884140717566098110922238406093524122990674132777038938639009383639962658980759756915747572301136756854258304698083847155887354285105185954437460542578172910410422810908962664384361127373712126929666974872348694255257741472382915279364838785263987425968457139907270293868772336700584657308582946935317477585189462929853921744279836902535802426848942558744384623425687867023785608916534351459140466775187372381866894208903722251128090752624429187278043845816856192953842912067457941099163954152346763028855871401030285097990128239154037237887376868093919991905271988262966937319393186474173624268390177999196883901485017325922730586196801594076218074898562899446770259995097600408315862739745542401835987942073211033063473322352149050153008530178793083353648483292796078552947967277873639191202364814804586880590917792266077827945976729530417036012534878156507611329532478403214479438551321937287078047216955694647271301733130975812398612985158689161721953379591821392815978780270063391515946472886627923618379536498243840730035060080303348606092594318726483922217007838940615861268407813354368161461539029209398724707765725242029906016135336602204454814817534477232390984271865604695223655000606626928992022969710978326755562919859496346742226350598245218076433014029652745281863143164203267751932505697990873747871129058597903758593481722254971746029662594349017835252509951546555927521067456646019378585495520535464067448644719660315710766147834938480413469642555146500416171929252481786603489965157336694119493880666494829623875664159944827357771137758218571163494174235162870563789342822767370991318960728869875673828922092166996834071613470436388527225270567734336789697180888221602378456933005608618110647337351163322219906907053184628252533186427638504922350904419372582299162915398731427542653826246621167520096297815499284674935409182631923500016482055769425456239030842315845134474462324077632755611253102198275130179611275419615756148354265379946370486715393183533580720824137987070332075394682451354805276718082435807362296815420486386851094367987491833402244230936940532192958074497535761675833012222836841949076911636528878235297048175930374674509837849926207472896637696818866499309023519558089793789076866733127159873310520799032378219528592692296849427645592791311535505163231943595810873786744215704301048238419900307412169178779138762560545150105036234001797611142225580732341321924578022669039047097198160525667373083785246068531771141533593566017128433371553714985078168757655237816781173280107568465865132854210171680694961539363461605398448207502492225995360888844681030024217915579503451453538024674761919690714072757398843448705772709742026867435715490555098086196064928988414217258692902336187411132941999567758681468563384673401764264999473978321506877690537878179645861997990546810532139525294489984102757393788704741328806577306517298864026777650152570247254178694061335395981201084116570429549378159248990585640614480527585517365316126708996568058302485300655855550978685835260972814840513215127408688262845039991613307982436914383566345155131187893335865105179109507163339704407380712941300600129406404750709412807866412863130906957601665499013867781175322804270206222264950932678823566458714576125919901815096870449063967760853909830787523903755575266417437426773332073041176038516168421232238093074485897046765008428828530369857301658455552957774215347362030926719462927560934660803842782266272748456043970386454318856665953150148765147839184156040002621979780908807811725117560172111094249151635034931588519495155459228441395373573167742544547553806981736234934141167773120585073979012956529432225210490090629803459415337920930379645076231269253286921916075215680182041060535708899185602218006233622851256893698658587386037758578872942594742686981088090206204529459974937792917866561695510799141955821992292115450219686788856457788432173242336225244201586812994563408916804455042897843792048264593524776217820613844703760502668789199953851253240228138125635190046376159510415125740384294177190899714807612742055746466771539627738938937095152928839160355178933275271319777509170641333770023693369421625072855401197565506957418211043552235358123682070115028231147318437517297238301118956099544186313595348053825596917541717594926648745053675137814050984045584734056628230759579326519308715094201473396746883542940739134661464271684945191351670672499357178960996941610399046608431909418145001520944193246579021395131334761700262339987575716563366998479418124415080369885071478432273735944076975371311030706896090523835206758256225554492222162339923524296558424658421281446989096557101996366715515282215256364483999045633963722614976689653985058021925770368957938835454920648247406818086415347824837932148540899374054531931382445232743471115721362336981523132463214666750239064369951964557785419089353576119296764628168409433373133180400523176571514523898494289081575274954311608759844401572363639321492644939853789669094037411865078073291107923350728219281868901591806720482231598214180131037974254404578046319233558616681466982796092208564276575083462845646976789471754747321903240366135924224229346604254804368484740008424549772349065334751965014823219760832874785321152777783284880904671454045819859578276875994477339796328211543906303949387247932738309405466395758000422036232197623394972497594194457158403586274295021368810041470707340083502307566296774488711094765702451781027840883384206341757335752784367849963570208456977847409706072977130737604353533085282523169678576574086648562358139937114919625937974073101134207558406561110453780361169129415249597202624259092438982639781519830139624387885849011000174689593599195366553716401775138160931725663043423355021948158719140011490936040352648510648595696705332832048950944825479889057117682112045594192779787997316981693156246487658827777991459251335489699556646631771005212965439471838572881184706606810831300030218973992636074784248939221034390878550590325578176631890569351192000481201259506056891151878538902924725483753884940301790398926301275468921874621829689653351673216638984152608769079248620118411513257146273071545914191612558170299992032716542468239221026619090973721341852499027557203489626747200386501241449634743454760373826012483437081677947077773299277930474763570955856242529574469812012469459700716588706361956513938205500098902055391942361745342975475413157610819946131376314638547690969569814789553507530957387237119819314120171691214272754800296634539587023258976936831850990685206482472509009859336135470250309685957996341908232403299019719463464411010010994546297314862804619221429818039959300155506122211807077127661495385406204833737759776639257126399274880850057133415994204751285020338629912825872637097695073156474707789167123176934448610399821415582033984698679354007731464870319091633683762967863571270380118428172505216943102360732534687179453459985719028021672176841619189815700509292532248231239773042904770732119641202592329715369073470581571440185166167280327938421525763951713997510083771172675605994670493360517091011441776562118577473978291331249197503037937430359696107982338112581484632525097290703041647782447423751408329598063040399158865298917758249863104328063106241341387759124354662522467956159296565200922928052562082643684445116893065583251953657151012284424509632462283998837682865372512042942599243973381295859452041601320892001305921519014914471764169954145735669752953849833989623201388775115267963828489435390789975584958739789114707531237071052244539185216003002536739104576190302992231571600558972888077684368062177763215957368319846364709896895568536119484637657036242696928691077480316297357033024173887315897557658698307029579819294386505282180279282554242847487386519140469323040469759291212405687534053766995105577501715002214559128000604539178950940356683815325167441454449992405780330286876267718829852011540101445135237289701222997300102656858952717760332385257925184494891864301102603146970242582056455996538892218049945204453422015267562074625746670581914136443767637281510780676999567825352111927696478690899494906703981396073090823886219624774416125671420134066542752048687250890944665878900886671487254346129441236286381410830125278167743073286944776911861298053795682280532974654632076990187767209563258545114236604543613972606610743593301055588749197220139379849396280962691106073971332035089290413176597428698202518747225150720475175674504597634325665079361594737603333693301853214061947846105000864569388423555013237767756066985889914681006317312448612902748626188694028703096719955254826385201306529162445226839550110343339572955561929868925724607718860607493535746802141610442052287220478824365408894096346759567854816266392035226998735277168641618853231498752571963659874733227736328216410083958284044041806602044697922416984413286347812979203930742533791649346178026116561616385573380749888795212271030594298900832044078819930563460783806985596407155877620832097963467916498452415762303440480252915157410221994887288883614795479217180467026392709908785398317687543675326610955863486837338824407591192488997290038807866152596538286031511452722147388744922469343669165059997492481586672921838671864189339457995006573978935359848678365000589305973142783790181904483449682707875244727971910759105715371004264355370671818632284837009688284853090675754553410560063187747714429378709435599787077754287793264951749340622083873288559069043253853109948859767478838871157460098526257940532137099963019796849422537553552378581069050246863940312449789260043413286508064515523629863773482228519828966281960194993212034547321150550274355999638721588232002125318868677671495630093000675319808549529401964483217730601910596162603655918257052561435167124360343667429854592128536237331728097877537766221902111428147432654449109689901621363061086463370123159724674275482772882867294663223515546407896027111990767133804691317290816423139507707527660732373033684720654450556318356711658717946176503837462508596971955821084721221481885833115421619369513956491384312320332916124438619280607457981975825631449612176728768418189442988828587285554452084193201297411858420239067873694978673841548739744961287655247456589738743914443935177187304706434128728704043805419339622021029975636986316219273804469529731664398856948928128183094197887435164910207187124375367250118061606392465673504767855527185915781871851290588001383862602232162142988443551114608714264000090298384343708750801528668527170925135771892446756619651704461432411375018489060443784468941002958979063319927132153569221905266284028219109058103316322169121157666489321925955161636793237283103048824683216406718257222174717029941462675235742879455143479165726276907430508640759324028961935623341913289254356798067302770117458286203598468179878680756466418949503171573676523111766688781614990479742933175502887012018973042336043171322537774237470825934748729550248164310874208823421119679457916314409529779284858849313206510828860053473147722486044309014186124180687395282821555589500155708181089776572887794412807702273511530062389565939121903677955478666354099837747820751183540724791188942352840158231719941210318391726725875120710085189428915673681743478696467679831764357078001549676413877452412279274831438077617826716057336413105096273359500625205739724599007689346494995292177001209590692799026020130007359205718732652758638523538964559783234359450801370575684355416630375894403469950478759142522013367034544640487634728123335978390471275348545397960918536052281693532645514344237920367694158164506658575515375419616187247127377779101687697923839034685069460568548983077425544348619003597160202786324994717280191610057464414388420112458403148770243737366214327083783590373258335966578540896453122708592334355332771569575776013043817283277185042412215575805468911285174330424120938079042890975637230370141108801857079748535695109902693916654328615750425897268126543644088414522353690939545603934977649658028118724199202466380588879445900445882368487789252966221453585910224476293473116096021624254313215858017451293838782365505223281069873675159583653757835719320717249841240104242977176578676569430679560063842793858768052846502284377801232209082329706545596210028335244984760278125789480341250945610068490735705696921364946664546992355976422629789229344866028789843681429324000010254748528309764766205108180695587428131173237957833289242349934460360197906123945114675737098035578767304808914562348038824018415726480211145326169420569515656194828398796397404290675113084983613563869126483987111742537661491144710512852527523682233203342701858541606717230042570444516095290069546864494777666238743834990819068472472283093009983330168399029185286141038353420566861895996311811144786813894975711116133902073734402795991729313473935235571216553738570251872103630481563540918075435877104230049312635628116469036776213964173647491140184999673539062380113990848749495021607202851939732691850867582572517017686723692070898437412493809982031106453262489067870508265808563829823166864345847412249828676640953991197333682641849137506474059754732277495961028384807363740580353938695132592144597737865754430388577924849251858423241278142725608208749122743518532898524699773912393303382426440383268768253299916042516095500037350289550647407322963857374531196882948537969479254968171734621021417604868933089929684122650545342812848604357459768520213437996233680814069322999478060206628891527802235081288592067402514332711743085351598962966184135991159609427644800294160428795293520370637876308201919995337219679945286548271959987022258801272148830808638697870897190787159487373774378188713523348967179392991011939807087891991591379224492148998220644231586286724864873688312775500139375957480227510472009286530675947994552766314557948445673494395337475640323459633402722430432255914618211117036246584307390287224334174310765399779540088297832433703042315518435723704191812184557990520870548079389675626824814283490757320876362899786772111048899827455252306920311031111622199350855933081996810035447548921132811807192649889137873498941080204183693059775721407111779622565515100582723823875095867069829699030475876513585430444063110747519791852441836354405009040436318288935941518698869247792026207328357180169174144673095607349218592817219753780603598661308840088103811270942082237985982110217572059412332817559741890509011816606638309589927265402104693408526877002892442514610283970233492640595913249671925898765189885500084732844387454014115413830631373468077738374112377935310115239029152799684515073931012623251749458653686717166524156541982339951938272139145592653956966203643538207769150783355998145060675311360503270463867069069122394267729548198023234608293349381014097205399556375478871558081873807492144388771671214594411890944642206078579039015491629796360052857274160806889964953716589457294202462401255634796870665422425136517451077471564090929220763384452629502360072139709053363016018228452301095763617616832948162436307084494425367032456101763110779592155028746547233020311373987405902651744994288010022324664271484436414778571799194909967511317467904477702177741585167349698196453226192379127344375275154698651299220267490767691380604456705249336744991357096855559419777676295698040445324829594722256548523161572985562455302961456146236603830739692904894044722657619252385309342105331057783737028955608288440329508861295252093399106287838922197756402068953188710460239657851220981285838370698590334477070516487544198158168542279253967794901050102168298783484551012959842832545963232220886556967586067927186045397779892161757121591168691974102451926354963079187917725731086872317755488074349768340108840143603308736914906525931090478725261702500281387641336583289789817078902577972779891089833729663458504072685596568777914582859805737507513619100104330038440622876212416579683706917974749636903329386652791461321398070230009238328759448774520423860490811971438242156666155097693316448318993080187030833698595821081011519906838321039996716724483231261330638992675428963518644585485475455309344225217787953812240823838016537607321473741402470957128186874254845415070523873537072059659902233061304258099331617341758030366656237664493642508862751734706825330467159045934167517650405216937292585552025149429728901040459131822635836559580437150082708960449499600957520007048982027078418792106565003554494684026513544482593380870828378268730477326219939301389779522580544381177105117173636738073216206406208871205948896475508741962362469905630080301241159461947483916325339167060556933375442317495944928387823277418210245221638778645833058729314678765632255179913360486069664845370440739244730450270939022521534363817974985926676423065791236464492929874863638829663321684745188075085123054684511749936810713497532963316118150286415557420548404299714555677571661069085284494931681907928467393463057573073259704764615914647717846772932245793199615650880621950050855314513866790733059039546269650584433433341217048031507571885139560876126158154940295845161304259330147053968347429528306804849358085440890768562430326489181487028252461785415299707830586824130747223912669869981375457057270040565092472393831496158529966270116035185929202625611083322005912798183309942283979077848963404300681509899678985300109966268656857173607943271022203577324254394376495048726452593892991589742445717651303532345851618090970002973310924463442098264757108127204418771769262012551169627129868170562611534771881458527575870769676178829154419036661467407054742107565717540298784352128423125291122768212413841950158940490846708554432158630495430586313706762970168064168797428468331925092617288498474769018661093399328619324604450732200106858979859378628049821439781037784433668228540970870012624742014008774066473188899486408241047814743755187197377400942165291797047215250278787067274793845537174599819540276353306477542555374067955756242767997006064724989357267866259579382324720608267609932705046423164977527040377885673654132240687965437879004848253993072038960011809639982153933475956074609093697301375553914140765770175043375195769738597394104663576780530166262619115059823267175732959281960347160546214905912155545209396375660181537468347300929930094984817131060994314752657498235943029157505747543724194400918779458144250467747711033048124379052949845894082734414824828336219549073980662312854850443437167955777071788862286297547663119949830970532712111832275172439948765762036818386211138679727879643317997869753489507386202891976366352471247503590308538254803216969532301823492082661477432767051449985624915160140532507290536797417363871381912159424437323842431119754018179329395056719514574465502950356852001112788618796453023030205591019778358335528975188338700790251482556451066648322437878624657075352597620809606371028388368737304038047560831417574470491398874480565152474424599872291660014496367244479813206884877351920021130245610053575975318594190799362960660772221022213159333617270659581940550959320555746322713434935966372085981400250971913468450201060419684727278667681758433080641630502522998827288288334384446913931994213801239102464861567107311918546152375097085645171310710162568578546672199947073814285236932675920970077427177459491939097280956796969486702033652113453171123919954871897940267086394575034321760664506629658544354695129425364014457166814910937961317454535865711762151324522632952382090050096655831406008516288103208200104194980392748303268243707598805174459215337654385052292266877288693125156938014597854436387095538973134830232140224000008630563451539012975845818504595519166972066380191813045534272677318111181633946418443106602536578928471938065353742593364103186598648560642066425242848642740730337588418104890279852432657917056102266765144662896749749065964689310417388075434662529170236775871581274299506498431294557883428291608396603593353310705958615621000871052516326823876152452190072983856941596136976683661393673050756152397863137591931543199264064734765495414110991264097677132894642427415384759717452927684180930297130600166054416395259804341870892726664393292619166726015798416354709252419680472267401219109529695079412463551951858211768959024827538965902726969961997723587391417380242401581733805715806763178203442357809027710850780169025136267893272241343974676246577198058211208715484367814388238413837345564493317711630262545815044234073171079624608431806094538559427808410981800835706131098156099101157397234590563859238618526809517355477991308379336338752698988544883721466514147613507918362874109431138246555563140774491819212302103355208112541785510212132234500953859949737024488659151676807989145037911230911400539155648249377304974221991541799915548575671307232178412512316959444810770461673312142127268716333932626203193901164245837737256714206303299431462669254289448994360639722890729783270899315056271285676686007993175881596236052548185707647919144409941762357850045234205334155270825362705526090178773451914557363664886842631256181044312497876952918433968147541872801742335202141259672462191597637270580028929085475542334413390576148844468256501136406181197574778136766090336522723269896036545630182016449379748740583909070120760168205181549939693807408252926453161251648461077590948155475771291006382120894818682920440805395804750515548044726877078305638953675311632201124743381199669564080369716122553531469071680875209543025145305337235690760503063031708387495899540121452085730570817718650047358393428043358362067951441730167301687361096662334613104086647596761693659886893212492395354617776589381783912032498409523229026697523519123053781215687086140869756694170021784937437874255745799641024273421820826468036140285056169796263777634517658547629010135505190933940693315094387058145482959327610048662586128890312714847224014552969672250895431857574124442109379928367433116025079438305794603225878807333041379693241661790268787179519653279365571155980069570845205228755279532264247927388011936901364350654846962384522492975053711372232916327051366455681288357084857606935016778406882567521053867652658281869191147418177950564943323564259736310621782883431336774443390655399582582717070274289926569798917132393147554125998524764530016659844735839976096003557624320220810711501182085854954113455640902810488346957934590959036259218516795799787332974594958345045439048213699246681859241853839655181720875234598673384385098424193840070681213316119826929191546827980008324263756313270207115282484930022759700012733095432196522683091501246906398756739662291019322480396742466303329515363775749696651903029609282980308817049311317989661965403034512611897709274124270389692202972968831536052055076055809823100448457541781229393245059571968351912405427440567662710742304953360190394301237871254004185703684436145825895420276228342340592074299562094853983139003779328705625962784147415993211320286004911027075294814152910031043740708652042465630348581289615772093781569062545885261138105003375928775444022088833642000795403730187708087132146732112373320511324133988885465713551540099996960156316326949407778964061346061850139167404828692265976482293433240327810418445576648105997702473319148282008153198138213588838607276713979060760791541258739713529432123747332625184227887157766052928929251261865264240895555525471731588654511504278244798914265038938245439218160469832830348393051983187749675525945265714224611698964479056232328127453519881322423942586531624587723632963698474730863382372914858132154211932402803502770961671691684325288391400852483702806530826340983018873010340565392092440193317745557942208858247267680798747258165785439330724319157680271348144813918434986726762288921087550056565495931416136037222320840558743930806142048892190095910792856115231430352088331188264782790045898991319334139826678875298500825645325175992490159121682153250298027354414595583997792065056956520746796672416611841212961086461223513619423347724172276990979108759061852813861022409512117245602730138792120019699292831686785413531915067522731909970731283444554330978382124926191205079130891503376470698469338000445518117766899455008088478220437806286535828553134653186273285994695918942135320956495806473500708578408926999555942793119897187158089369903194789712005405457403715034359267022652115441019371999420149959033704309482574466034328560497685467205991300202029560180062106120183861633260195140033197753309001725865998208175869239410895952516621115322211083326483025438437856265508273196971794717940473126302940597731742481781758276157553077720752943108761348172922416805427501089712801671815886328422968569473772640008462870087017717142695530691815539886651303477692622908656317580170503917451402560934427419374390801734824490314684998922765411659946923629615495221863692900615214882816646328397304312638454750729642629658569005233634684651278032431408116135403663509976300493253262969880251147640940215067280952843475975491712077524698616249100255436804417282491920026985893195655066437211387188506387978262154828455994357035902665289153495117642566278796900904526023849687978767873604757013344219784365115353217827813622823908812564554054018513549518236007098926318375305604309790280583995351721325508807723757546212517039816753887214950623770239533633141280988708337195838024756899685973675297230533649844201808418076064870842796601277504075475748162200718241458890526125666752123563143938246568783394314962117606197533045495453186358024981444744783036696029081544465687633673360289293142768733061625503196477423871203994876747879320668929660435120154355866424723816584293434925348139276202123034426917911009008985330736615467336796861693668623475852560529156467956822052428665656419365093968656524662080862077505387818988955561688216375121649320925557140674455938097757006238185982722233565224057818117385682573094607065209993983952782959907567466778746570310681033089810303281388706269972935438059633004298515048603008295388499167709855488629735156168282057920052051502939001833250565720547740811312678442325060890802681616160558868603720020958457757303741369812252236879765542926211794879294247549818716271627450887316182763275970144611672531793172123729897160994134798226276826593730639072549685449611006989131295559960452998050021091784762159097104155560946496760367776873960236036904139114669149167720384406587164856833620371688590344447913890150642671036502288307515819121939541713886256920623837150925441157682189202097889170960300144495104707403726637749787984854926130778984083600105637384175893818978143224667025201033700434405726729970587288476514086482325681470402100084696773845018294434336316536258000730223473427855981338252632356620833106622397318460406010098986676115093929329086971773757595957935352748108827315221279043743435684327149165072828319879150027623776532961040446277623300114506987771517649162931904813837307982653162523169285255770760156219823646774656972788949354728742634074952996318342931385345691632575441449905020505371714471357548283066305752483250175013684942992044231599215367617426231039273286250655743467884217298075334424735217296193125892028388380140495709587690462355136424209324453434669649629763176430632298617861805190077860462667510281941592612103995509050911065047851249577698408183075981283457842644108917225546405072836102774561399041999326773603693987619602661713277154898847479759724081885478710069765885143664867711861081315361314107206588000592676631179632947446217461640920430914387099306339922543163397697826018110458417632601998517472169202857722667607575544813041526614919637132049783924789372217236500676192924328838703645680386933625560630097260731682727181096761667093651850240749648877205947943941448993351487380386366049018721058019033759433901754319513789015571623824224649041641638645165724250135098539013563420767356660121681593069976004217162902639567827709970483042254812193964806058831897256033368569952019510138699746913186895673242130596935185179931006090763304397691649762987435802647582518359197824180275008928189469056812613490437518985831311997120500524713736603013747543905667380702815855345606516310208020060756096190709900561006587358555066403856954385037850304649117423052047335036103744622798467797530971358008551748623722533714306658941035432813110837327008545977066670850195903901327031112253588105380976224354236412562248004646235944692311365060233780902236492673485142879108488852515911833197202727002299722484569136195071662998541403385794397133085196085422150049126981043619161580877746721819506249089741492069323725619932379311310838032912659385185815555588215492828902083644261747126930525173709715365783390493333681956547382905945643904270950347479045642384946605639685009573988899577350375775016082684438649706647638467543692683849852740587927386322454767439665774995581436631471417178663645822582613059069667580714343290561483389276384853916644004480492098264608288876479156974773101279457934818934505220608270594897148631016683290183794908707605283527315795919809330109794988059703558414502924027321265106184728646112179615483527455581697463116256176447094257995828292815862619842864456149497166623806603819267916728846581638893254594461374342512069156919735087123120505015541447737342206652507991999288752902771694564652568099721525507468350271099790921621578655408450940361606002995072547824427548997879190420797559373485838398801049715242877778583964114912437073635610108159528045697627471312428738978246687762212453268506926318372617695444786303708467378834463725693686580434219915898839551488148199275400411619700159834355507389880753215817695453730363821204683726695578068519254302597432504148637881323824325558947148844181118608632903834317883590042463439884266576040654135883860662834284073482234595276100836002418363581368659148789734559507257238424740109245614530769920241378908909576046506027576309233564427464103162606678826175305820021984311453656442090584340150983694252205229321436550967393421366172861580203411391981509993420284135148535818594038143964625836118305789424960169589022688865339016406676682485283523421115233666908173649585545933938766087619196277521953976627888284170610504690901896228330467724759455764874450471984194911544960983897373004453112002216224540238573334487923759718321984446051367724609597534032490558749881792282187401225049435956355083516802389393889043584863400294220208323787740301795750669614784026490647589056637529979804169908515866351869324444908285598752126965345537493859994721966030603197078872885842542117345205799446183618530747048142660352934889501917856688243318515440103502602979187297488534246490800143478872991252566798015715498042991249355200409099066658843910895254841540673414642284339069272885193236023745017728919621499681243168851250061493608369058476683778020219353427386647201992232786277526749247427939151137372165383645309217164253076807122535447934898155942269393710612993177205362023475438970979547269506006015094654590650263243374240203157704561447006505273767693508512773043243623454392222839431244058979435605929420711490772697379186526666016837294193387397309304709380823788642847310237443091931713779899552524974643613136819596467742518472128530550124057000926695925602206082264613443888990996366396973184594018639501190251502334520857866989552082949214031179635002304724134057396691193822495808239065853310306787515870225055945196197525801366342548372968413372361213055233738232377327616924758223120446760100670891582476327363748002737869235752773547252882354082929479963971466080129908012113079181121561812511796990505069546920522208032907497174695744296728008062838492541608451902569765614608765332380146123585593353689715222294005881844082686782184352485681421010350456884947505270438059304964191670208354960933106343076135293202004444969219220674190609600509400055661351886251953020514412846787201740478923994290266181208419348842635607850618846521010058593256249588733611630451612047537762186660723670514594789597447349431327784083227819036522960991343681398826687564897659460081973840521354675396194906082094265732095178743276674321963134389280917243336006557606875840999318712183109963241946917724931911556296650111906298569733545110570278081660040517945653949369786783566543300328866045647845815324094410355201112974118839275970087755305971021814176216146313694619041905622381104237230100524702728852022689131377664698905671889631179683689051599224493922065298765804014430217672115663407201590468121022660052077224250525509727332767009334565989872727711233587757011843847074029095874053521750202342295662189908262514969661995532358475048483317499951938242129290351474285316797418026330320804884227299175689099824273825575320744608394641011962487850684615357909070940609243764627119282689225364496633275543883536452345665739569667474226143654711814570330918881730529204368250036315825379196327522884942615381606197928698933782275775711149985699056268847929353266667956129910588053822400975471735131978788851859102345435492256105473817088918174343787588916963777748914471690113278990916304496640564699430491018863804685351704931163639820861847997608883421827608308180620723828896463283126198496199401188126426524030280009638187348400814060207618499774230877175782416378858616382938953354523945254550645284300995105331309075723054994137949722769311327492761526656447602058640718168632262454709711222641171933987689692812920109050915503286423470808156264525530414101687771228083897900663766091245517526294620786161783960158837001816771326980978732612744776565104434254788333127064380411924506406462574372913008496543489163270884530927673586097905695410218633833656611826254183428760408706241865540611107780231285574060801408303497170371867430349523395602725082264925986667982891799985317067153930197828700059203450163046176187963274768398633131672159299291178404508050862195488519262601486752774645545084528447699069760881313122692715444636795049289402281042129171968620089122212449952474311441141784383274892363781620096188868773760001805378633809265711318823844227848221961958232922617264148981453277076954482607297745413674062582023675923950536910260098490400127626589284666428519219948670156843470922445335632956167482765082055323921665793498717026545663164368917362797741883219207688504614526693679714485247695516028502772538067638795202975882919289276700705241884658999290000649509543702734705529712150526201787635811952253560145136540774054732970981506600990035196303371416466793496670781134692386107601521059498468842424373525692853339870501692114415457887666088321321021820405577325416246386844490174318458665283794371194657671127593527427433557667839021658832528847234151897286460460662876857640584509064660259685001819898114030307906863420679544928453587512756056599608114874900769264425598019117721430480698667428741426895418463870275261456706643827896961549583123132443665061085673324208736442478636641095087636465725814028791103644963136850874099432863267667230291982219993318176820608612110458468448612565396753514931767156911437127598581167845010338603306341798515340382949733260152984308457874403006888999455737559027858524059755757963739469107411716817363903005157173710335902954760744087678986812947445448418259103593193024333694224709654471636061235398235663888525320620720602241778466934495008457838553856986894276160225257791174452790259638495362926293935833282993963729247672271238943885222376339819839552562345858470798179083279282465984995417802240520718622521847350408849271934631926383980781351300394284962514457286810771059191792150964965196705895530863161255509111894162998892169768092270962434906574566669680579924329256604854412647983605553831920830140641333251752585321772944469152862607992317287887002092558292365541649328062582922029703508155302752467000790375939435838202664373194993738263598944743082974081778731476900247025126567006722307924204940007518691534239537625338454968120647576113283998324588096201882711860318064774971498769050547695256584568811732060815615001273531764863421466533732982907595460751270184246599327816372641117446638186189168906638979341983690583318614487795242378855184518661652471726023757001304342927028976225070654572061010072756698006253816909104209393157811482297691972175155103199090003870694242620591640307125295574976838682479567844730098421080169931519276678519834865940640335341876694018064358554212636819239577656825031288901533576393365128321371449896957312867327322959441679411537245266704308943740501542105780040669404179102554635970165630744208565658577055866673769924590918800080944105529234775302898239476335388958129212380261881694242898575312104955935745914976305121186571765210190330185435279661348095035637922662117637842045104865216977898127650229157969412834463448683439292059454885962449956830652952770674037616448820049638725709807016817915902286998610754587917592158897100295851639992896614102798801612545514824447232715550141372640569633032321475128062492987266567933532844691856573952579901676729258208457608919367760803647421664762128182353945931535895503090891138363969687592730322661148965226476779427886457740325242538506424037934890611680786409206847640160825019758853216704606192538359652325261306038157655045299066601256441381166809536765839902766501275577900121795524617425922106326616640326613801769023783944716658156558078550630137446902706319792749700666011358719417173981579908291439485033644487152891154917748304467736053667456589066157364574954998538825446123029334834907900808487374840745163243631109035943226464319601458187372386039365587956410649130392931560107685410142181648654490391839807531555936864815085901598988466102034428240051017116090670799622923278173988084169625366415280737484141460536133432096061802628155436570766788641350560063278885171209814794723165300407761324318301553792526557241510215427116122874003469755085556221470252255223565183203270433204336506624744376033033978053482650196357256298524067608861092911732138352066272295326754546504772059504278258311096851285149232546905644287106397033478503588255842703845656548020935002494500127325724108288217660162411835393933386040611417029240332781576156564817309063338400555567568043456747753594509618484439163881566510081338656097509993900438532274897686908173227859804657560925753823837384870641927089448813693476117301284677576637615984110107657685518251340045216667697075362398300756789202637372533632223532068045402463907478356907450065947450919785014514092674135122914492490415665616349005419064323885721600221308746838482751972981767134293548141298287199340705387357802472138070717399554072938304786086326411972880652036127593577721495412536265351905808674243633492707024472908754201700060470893039899568140902820508411948172727651565951980847898888642766717309788843826945025025775096094072634862432115748145153636004745561479732783884896655128864663529294387966236641403528485377856722369744459391059401458852291878184282305345759288232575451177900900919013996538763813466812454593561387369825810560903821013488204253099388282313474910498331191347869164711592647299652776262887679236397184637867189559572526680132350852166043025953696905965338891694191693073945797093379145639851487115281154859723056555427348482061658058062851026939233492637515623432274036956086461329836797913641407758520985942054860707305195261365185107667147031657935210884303040772109045518814063089290136742634996495889460255384734165912000266329120476681323430485133966029249402808650651719416898815751945417912439674837751257555298486997727718299894158318715779370155100994626959614335588871233453104701719614229729889620850891563833204149309843226245471764621923271745375515340937059936969140948666796596174048166240771624951617678734313546340657700258396092227509652038139166340120438157984115901267404963931444024238272688626569716601101180325812882030200915813549268879441381754687489137325087976347304219427876729270666809310308753632072968682022146370958498308682444277895945044857909215847781424133459882917652082311680352944765015556460140059256658801800491765456389488726927720835385406710959860898322784120738860146675861017354721923127018223589897595096339349060811202030058501662693494066403955899883869170114523888561132294755427837591453209165996845212250972444725677633480788897716251960777058730525337800328733545051688187045849111504332692643460123338014764819089711794479575048366789601460568231846445655642736702249900421952303781932150684031224367818696253456933617847317870568964269473484191687995973011927588298049665891655691162677831763517349867053458853212711546857481194935039793539058838339983313590855369319666958697101888290464439254764480422628782063864613051121476427928975531112329824851399125877558066638000334518725712739774339099656065470681276457750134926891392861966404444817417286183788156897102761118520483490811250472062009267880758645378069929288903341874128442624443536120862330970785204663402085335585535495999076727441824518153791916730073672213110805315510540836197828843441538922794100203519750914810900234793723318188897883363559013081066014761152789506611090105341525052024273032093596168470185248843189811089029723383510001271529918407160352655066473736057741441776312537711458868504910220809048564899956820368517692916813366843033351461359721448969365907511862162857900848973762835938335427919467195781384146035374314439993323528500887632250118246959679623683424996574096804335650558466200054889521704595548337057589643968915267595446590651481162106664136960571516781142968640857633098244832812080605149581023593313372353242344321676384036218660870071078308216437831955114938529522461268842273372139865098175908747084905603928203741256670852297095999610079080802522434411059725431707886641271647968286188007651418465224164904787547171247396564780602928995521511383250386447459249355494067343147573015876661641220801445974345468634714368785838014489936674363843194406249842600054806478168668197694208930615251175019554704541133319469976032605292005960429443948877868694351408428320979748826443219592544805271464812172218267241613397313092845841492841837396540571656919086615534232106952102255496000922350970326311179850440720373908979368325969353345163595114737675271120516225358752449933056277506139758712370321110864038447251673701490042584468933021999071049146630706425702655947251385779528280947613132516157312358971393951513374864378335701941736327615922266460391210337671699527326575700377979794699019823746946173116891750542115594987609170759375651642838782680849644876706491624973129593727754341193526204126248957412210066278413316165008616128364998114344525554296993679414725147418347083342521672213002421249662079937650459528441979463844825818436967463138951707229784047311522223257661963301352037601850094575338601401162703239196433168095970023969503955218630897043968277554998552539270084926497508938507686695396778238436783634942110849858170546506971323541280675465829248354438411974871154037949539934819583327870556324130913786819573146015290898397107856830880588482725388177324120489076430903826987460892690067551276724199376883878718014065334651032946384330034709688339899794121221120214755764812114039211598385586657538427517590308780817315913323129418440345502241316387366984836285379756138956811163683572242065378944106597380224814742985247280333830499269171779813817263776715677747932334773537552836433174742394879607264446081721361177548878068465684625695978156369786009896771121157572259681824184209581059001710480241011976539530940141100089761758976614609885306760568690215934322855973241581382473158454285085121704190745898678700796656571331435565547754166473772642255596184638012572136856041425956173129392115154802506780879384650911957698378127923327131470375822052617846606740745127096657435508380824852997502178088942513352451549107200104470066858692694720638341301026255617831110984849301590227464027017328675618161380447739579660554208482914994181615159992063672457431964174184882371328046776823975488303469711432678898559345416974642502985174467641735804578359457553892517055986387761167730668248247604179375552802156634341855106588167853291784942618944821896855330546436601987746993704064063368615951568349417206248603156457550175398398330942808501463301117618219262542885659395035515623712875537223830269939130960990574717066625140455677326857895760336411126279319999674922838633046686945918465339470799657737563855694258024897594578160305982753149016229901988390122157883373343899606559804163552384769166339753884162551313021947800621093545211794960899795409328187174949462027283542878465904447267031023105730366437578410720712152495785216749569216354831042508079232307083408129512313811365570689545243495125693745272250919518099295149967884437635506677162528938230555668198165784271583692577402021903621632576256463579354971370787554075547014196119390095729515317480954334957644297076131815185541497261443998583889905869848956687363490801632955691447847861546345399619442900272471990599679972702698179865837058116747734942264833619335419393730659418486332791829656037556266174885841352942934439232348612686504932609563514788471299386514633970177582774924040205769193731493241621425487235744106825120400241897279126405789805868959354066779828648201142377472778484431180007341170829906615368960785897814493110270679935505910750059016284769790542340558324884280878467020737168252349922075276107989184154384260703635958724242078501730003425467694686850012465903704063225400457189977699394356279966530885832418096341546149527283214074208284953282027732035929569792757370671114615351396585707906692073062913568604279268877157724904599331622054673767554651466133543129966580361942703368138909538294295901328001390254032129972698990487662413779741376858751044776952473573996241829389290736444161203770221010639937390835843617269622072835953101809304371613743495738473833862828776826146230341868563931437224956006653082100282060061847836146701483513452591846086014978044275475193042190031223389373352299511385241579382674136701895474847915628982215361747208533839374987581412687346715662696327570064442086779283208044728992252890246261406977080697133273937738600521215252897478484277589367700147489285986025115164765917962662168108516242733156532289373384464581567392796007478377425922736512238361776028970115654241818399465841187264472897743229299281236195493124556499917882586931415154098912954037597599782899697900714309964642942118244648433541555372791448771322197910675112078564676294110573001760514349055970220067480474742236902103724937557461533887572116080860030841611122900038195999143513856031931953760712197683690237442437673343829697439238245085966512936692820653815239623603195033760081664570252354752382876607608034324756262266561053011200147485070101436180207495542792731166991078479318876772983286935522583804278610593218555070296605158130651526979108865350668702410576961159328555548766137936485012772263412260014163399960934256422631140177951191594812880651037683362377573023078216830856387959939777367556407786270069412647859683536409113249053968765508948641939543615446045414439319113466334811532943872164618293724491989621100459852898939863400728709537391269803590502341216938256251105452632117682945748602939057373866684206276444092292873202794231436096655643202454741686806903688210978471285924220593283339961461619205544251525977872779356971545969749664115783228016725359851561940204912918147159774671374785583385082218141540361110305709720016520292180997102055662384676496714114049617510652425800057420303226377788126582433234817357015019192841128356409656563312434682920526832672992311287159763138546817548898348676559659076872412647944535644416500055314619296011357525084302588113723917068184058266652886638793617823489603369928764665126597174468588593531103999809737649838156067350313369477431588258295766208372634881897811457285938119635064944152358217812736674789584305027940152721067815105764574316765951395229752587863550092181782922256000643447488600759730004162003451027086747281251431726029582855804869154754227189210704754512420535856282613992033133634014949674350539799665564580670574839127729697753842988509124432533026057569287606560563940973809720065409229479785232130787212230977011656852773160665366189183320759030657367056939069025195922094177943398195148150403225794957773722578158619622223637671803001458672721299933934576806364696577415533199829214455573180916727381866067915355129733970157659693875096958837724719577635968680258658742856642062828037893525840941647232098130713423900191943248150146655093584833919099198983120248404446454867309253766064401520681183204628895961755476392810717493319088314964936936215849471434862107716127044966019102824061579674863039866662843543608884980852566767185414836398563144908540278314543960384766157974419510827802384569019796330970044470580170984935987447573985803455114298970044331984708856724960378620816149311644881977711293558113108748067113755795911578510881437624398431304572006242727736157915292114606883167924275652917615602071716939914719415919945076015038018518771578088273946346948784345243383528296739229326211830018086861414151091329718083224690926191027228726413495934713592129202473926812071507964438131027376098792342989001380815858102199845949109795677583892171518467344633071845707697096139698236041040028269926867223409023239703248254056705032780657501347387738405495268585584635827106102942483873522488599672592299767309454561467248307125736849093783349566676735386231508303024787599438793974881601458915518832270762322524256506732554090276327753159493869877745394742127677551555613259575787916130732121302132154796069797041779255051982894398163403426723669618293775553724246418176406474909421252194098956812334175210824698310882592033580715772158666320166224364134413438451147816307507253387755082212836791788918263574659692149757164376316379477405429537929690405483228803436684092174428238329088632735116063871762680044453928303622429325916694760722013877560132363681925030570704109412631142780765811240356570756935010573724998423562096409158495545907690364345215206722724572534304202827183453298082003166462805162878773875713172803186458362129555852547053719059926111331064031065191051937993143471576729067665530939850611141249109581733889495921186376431330156411690748441955748494800494762955783483555403471826060681598412397828597866364465668917842161514605441870013397615003326608954394548938187826795317854161191601355643316785952644765540112972495864922920252302007627201540852877793512347426847310060890187563393607233309224962574632648361301184273299612832341681053729098438836980013137620205128947397415258224164554490612936423334221825924252152985857689308077049167925136667024167336815810288062682190862445698178500411019382182566953155102608434292312774400449808729548554732455346680264409764754087025169472358957129243383848424400105213510966099499638477357603872475560172749832352802677585209243897559575020040186991733493573037558911614313264353249846022355512491858114481655977527938477061154231723742049250553203267257912236117759524014872516712644299377770466423391977506024025697138935718979522737948528699933377972503659506110049701532815818279218049436966871261470239344896341412739591566882637439112681420820139701866823538802882053954385048863951179048372709621130583324755314173021630090171279023180220817404221495810126434572624841250777819158366955307931980830864662725069576235441366391117475028782996320935336589663310287056545387870775408298060546617796393210086830136041697215652597962607715882509526407752856471099500378376109501996797972664991447693830624850664081897161363930552773003178336523686510157669201134810649494826060085248493439692850357857788634860767600481384544459171240901340787595449401331338248282587835199764444504123734971531801811817594090359294806832557704639028842992118570301476497073178790678869317002151807621371964786786518021790059309411513302559721697481017454333854909823532539064802525759836304178274843566096662179366288048090487415428630149498964918739766753737125422825219795268916914272294129445692412017292672947122726867328923889460615083642021704458130724634358686819642523314860170770607731929775068623943233628745004161505380679919703435110209960565572336885660691175266055771270347093885267001074924522267158853362312464970822993864899495423713981675551918918424562534435930164825864842200438045445436368970469868740643671845050811297758753481593128007603823465665259185375965645240269317828169206239596008464704014765774209695046496155746633039878773131415077292993859470289896341531895155333674662984746058300967917242710637323630205777556911694761934104432049939048237416127685024402660642772108802896573863425607104281314246508318328706570333267669098214114396775481562084637769208717544256594490518930130217321757017650988816544787714107829222092604974694919972881824528471864085164174028075004960748734306174821398496363375563302185242860533277764643791532529921527558310475590175474148177619379117887389334258384150739414827429490134902354934822654468079953423166740788456899388448157695395512819207307358047558440681422736014538648226054850499973116649029667910252478318792361731327257581532984392560140274635961671815045285596352750470900058050474866624687920482524045340484326150559005726569736762530207551716537546684549857393195046304050244529789179680147339611493117429559844524296256997390119474958721121510964284334702241959350111630010141846134385832383619340959781600350584277400977056210651122633305956593174758767552882430881842444524817999306505311151941687293397014140299371978170433571320623284967673830076095610716449261790090378442731724668656788466209420881561496075817314567379795814046357477854820110292434068773146020973560454573898276584544314593945678291629353918009366282394847772408846145635249248424223929687458345873499575310606169733439779229896215833423266736987353303402796976107688577683382298956784121535044677542173009378384065809711778035835874320669818020238075681678501023877383469648071384626828459302979024072015649592303138519328038269131317417489292999173645456040887168252965498650517738572293981673702598607847981165341913861084597998577611207931733479565695356117231861468261065831192635891549929827841746192644555668699090817019825636544399139380211332772822806521264729197987776503954396684155175801523499642261852067553168053847628058114962187674462309130462200119261752732615879152603184884100210041208435373838647749427171332222810608033912316793819513728439058154092077279790492377196607036911991265320120304237453336384301253869094159215932727147064494402315196410118733991596366699837424075154296947365134209927205088492747608479006779276679796676526578048957325942403518060505059662772396781334202029165564713952085358607172773864298611221756757385324165100829208685108431508015358493325497214177735934395589055638924336512530224132377687598518544026134602209424798759749950464217865553888945251939333969026302706666276866349215801562574294642380556663743545944441847052085739319794385017814526354122082513408055943547401866182395781404039753713018773940946830417975609278102166842035727396074966172929174118548855810650585980635669220553566647516746031763830871522149276220912319881647970758666354880787524161192153911088513835210353576633819059973708127234540088596413290095462418656244429287051083368350261878394691633893946916561822571168661878297458235801127488618820298290883093873599040658253095938458890141522286722815498979037241304095328344294182125282946742083541032263768637240425115819142178860458403211555896153262724411675976659518922995886436663099742108087939819813648258766866056081734646643315955277630988898648752221669847262743668537737622134726967243786346878683008485159066015317690371138332699709498401004420109262692858545577749562279985601296341170327481606108823359092483642391929256902979151829420729106682567476358731630916199054655065593717765534789732139411616985244010244132450744898819372792468954358109555726943408626132512834599160635322255914733138775222407443527986800548716691662394365148484487916167716277851287906830829287910738486019271986427602463883976262828325010194012021847901841347678760827662064890531600898745838889375775776442684079934335442242074846965885957636596991368267610078276706402105392168511085777248246363950099162811130402304220855926117057981917363445931797150058508179318893764553479381983427621023472502837860227337644093586539451641021621903102190127514245755941705189467188851406904498807858575551072180158722643677505453112579212840484027044719472387449599072512358641026713493775071038970001202167639668568787966529437667414746309584481603327575659801254536982237676316208689421366556404292286884446578540263853227595592376790894694203326283220618894959195577003923169236329323307126017860289493593817976547410718832683132546228685238081502970195053433207776041701364615266589722644150604314658300225399819254255752503570178693021778382595129594266224590721744351604519777684171325142729528395056504056313753208769940414665927415221659143490283471591170703060872390601202170821494543087622602453436315709561812153841007647047862063564493718999741365300527469510151178106689822824237903100755762178264340505005909406078437122969831053734451356077299704372046028644000077854705151778505948876671252718179254828689208912492728869965393764379637190443884899306317045734955895934771275081933929002640062163171995716682413958965852723681276575053694323314946424853458064635636929528484101968990041121273623682189834917134114882574409106507444360500207372038690385657589741549101118893735945938215012501569751146662742770716441158140328154606159749198479818771769109360619110629685057135328737041939755272865676291724869299050599135066655230854275914876028026955713858767343506904211362681358093022484151089229547054118932268946480643669640202470001422858351925860700359803502220305912184166432811421947006487003342950466702444949502483946981847176589024866366383298830726319420087937368709767546615908777978957456374515450729438176704845643693418365940556830201645207901764168117938424518987889063987895296587034754997223445574954044142624277307585116445728012731579936722722316574585247250377305371584446701273758597626140180381387684618559262072528467909792324217401272200819421285201608575281102237584282815525003813636451272476880416912571862914931396455339343375263651368979406559267064119137983756345021781465038812722875751442984876709714589512293899958639517981813253287639121738057682049349471322452599565776339085944346101927710333414324632748242221478158937536131441234743291965076185984843468193169417134412494553744090555771885614022945347301343465640289815176661433179301529773027968921129444504286938946619861228152580057382253314845181367646312013721668094792067999554562689005258413130865355477234677462952719728802596853611002633326476398868307466367179130868188951376684540385538522396339581105288105958192023466237438384600915022334189463764699682071732737250503132884993755954663983141039510277155254178430587538293049043792161916170182441971227597207461651215815789782182375181986530962099823499105743503540077759403248216922711031073278888985516962764539700738257631895004153416573708856021126304302257776837483196896946002678459535922554806098548448375524122451732960872355729809949361069816063838818667741529345167622190456092421160349901367455188959140908453519887209171411000126871701672757790488959338701097661005602756806319193157260629361759976789406505753235350529595075449694773009738468441351513307931025956245575832686149103214481789026455772027717816305293503401385985139990420935210484382957751040253773264610981528837540514014786428566860028342900683455876885400923158969268721059473785684260459991429611129179104939212328403953385919459025931892418122430468671348008139549477154251032504811151609182986259107715812432381800919863312494628029086115311917700096434904210963702134864842118291014237150830178667747530745947844919257936972333935796798826191328283209195594345583600580713952214973117366407049437418192036541724510657145763698479430912347797016773316897954692509846399937207683986787565039361493729146801343246276555531035097903549706526130212692027532475872902690991927753616246996339647708982572569069391458006813369556002285314785806500961196775355331447444174406216044835846584419845378948178565455674228785291231576094782378174617482657374361112759901072453430987120748920183993244669295703848692013789300829304955831871648185417244272488489689196252748375688569653896550577428433630847495796609000153394140487967882342010034934081624150533994196334609935996331839165488337977759871283126396690340184309710261647012834376794218657203887260231942557143512735224938827470172523628595210092697163896009013875604302770019384549318605027151299177841244165774077991174215935744099232000482881342402566044702997231743780819839535970821764829255281189822516446276667280663429580543878001050455402410166198470177261218535733504288974491598044947037306063754761749210401977942578673443449829861840043236639256849259611193314269788712418282498768543000109727867375176470611829703973268554116508839551135665439926460307257850844059317610491042560781980671284271624834490296854061341946982528143750575607436163726037956254390929706440980156235628491577464730350937877894646886765039003737768779045852803636183761644639176063798033523311106399064373997571155166742762580287828744690853890158841430025255470902839856060706581374739962073703930749918127996653682987592389387288483838852705628775224907447488447337443905898857079271288732499737705724711198240266766496523237767039939097652149931050733411406844911400875796662022028843373620628679976061143444609827147207903048608920193558235326591092210161341076151582227156245023506598397163330685085718157124900069672955789288676411420858337237244310376796666623100042241395675598519194593432754363489933090895207691617051193300232332767522943948766408780816510168603630119365159085013273116678772218558103823705163627984711474380133009164367484616373263567745168882976054522195411488446337872110548264500784395625566448840824171597598680286667668871043875184533469423485677532925786259468189859883066768329742911880406852661489470069884755268451079685816637452888142346259669030566950232317886921226222772350527397190897623895277057134136684250808853155078986079901969537572321360074091672747435765321901557030215786399374534867857254340487025666096380951478774880399672559653062378467360547235833287209256034065671536220029153987732682800283170633686204395025157702862521693277684343911847452506161346571565162682687705788526101917879524243539923078489851156921926306171913669190439564423448117468794109334575392656726110445679787024124065271673222406203739598941924855983575951803918223293965952035537554461681340192791878630599825647600897429562501635371211218864465298017967577810956596372924234987046996217501143732697654834337070884221019338157659159628148727176332242733729892404278421703037554240456723997662410434250824897254748585398903611677900573549043374671606541232167636680129909047494619665537749200074635232174033547683024034640932004638713885822917402687111883605072064515968561973308187239187690982750241073311994726157693753174429227930114841569994015769543315173031109388972566468893367244883574744034647840349731117395584132903541906697604897279193542459918087132615235513807779521785141095248977336867750749483791707140528905055655611859822681928230738910664063316791469043756303295821748456163342181235216392675931121845463401296660268384537154617411443023502291324635460580587818790768946157908035547304632972623714194084320496235273200985440831216085264928423829770131294574490819512341746758893700613452621801497072114487806234082620531696122407572666825177403126997296184573541125062843139934265903112109076705494195652968874909391466389090136180774845330266934646165020825364204416132394529426862999235299130017382106091967177265649452861676957925857852346527808203337260285021414141609769988580920780784990060378286930403060146515581760370616966280190627190257183166738391240708755148580147276827716517881300871492197997535431655985486338211244542733454945647632350147544358455054905407514934444046899386507684564482447342305783490682030253710768171990654636034058392565930288696079504823448779723120244027695172938031001670548220268120819680033593300995775867958674714302905006180515235303979475256262578752973898228122788807955384515216843474034896424706468839985018803423581443600984193837820944401996524383131138146756649242538118671740813201379848628307098767029822278413470390215474754911436925854209803660161677752682232111397873724149401304235728268531299610726453790004446555856387530107707501029243872675256543774745366953723093073885118154573382413655372900450712205326064605761681705144685841503794237646540703124271499700728153420574125763457815982372438480737254800104607122588125124707142364966531580577183350800122430521864934221158587723515987902375599558921840403796068071522525170656824157468542630756767968941587856157024135160283916250853784094609918203636370670368228302056396538451833791168970404262770936126423515728089255844231247169901614735527352100112849542449432580424525682256141939519782605079785880353911769107486830658873549363164323411276654767851805772303374046519714739232964756724208768866443645510720374254229359822466416475065267597596121251131838089337864200826686562794163050489048793980540452135367214692043395195225328976012219389981372479093572696848580929361184242947695658255169735893342783257371488953226278051148580136123630077674568348379986833265830224082404575247666185707890878140324696677629837541300037055342070292127198274062773833353289151806358327164169163582464422405665532190727363353647240946244832982584143277059678351996831209297389906827479116853772676173301042323381824733785539073476396557701801454264949764515373272151045743960551338054154433574446047206408376712344860259390606146930255005620932625884257688302841521650307442948414213729856790777912590216748063214924180195765676147177000887474014721794855179316117949947940831706022975972963800475731796271537933972926014289818792696568415408403528416702948236312262952354927483058799231082298463003711700121325916307201319979061717087745907280235397825326785902239715797106264373984136460085271240719968774557751757828688398245336308892335905041907856035923006954418144126493009813834548115138095262624546067333657593344868727318564401611800512552050724262179401508344945641738509929667982182666994791104165290731564420998706863915260819921181175027451424523746397314582966764354223813262632279577019932479128941712404128938254301438209300780590462260211431323789182811880969116718714674279608131429159421049996447211811468068779322757249785472999147664131326142963251632510546839875797660926605663708602585888503112799988915150816128649760314960247530819373009382190878099689014546440750826100041919114066421869825372139403336394858165273604190924746086214363156786060960548685420990999443325214682484857192471910124032668809592958756314494604985035417158408646008839740223616609360154808202452098588015413446147457467595293442893656871855468998422029724482850798018433186795494068090032886948405586619448595526846316990945116592250003458802368903312120326939508808095334278417395453391663909977435255107052777951516315789506853329437254907241489394479048018249151262652280320556127670570919086373106571969339679437783602412208061097460635207397816546889312749448024072385308188176687202792372250566050174359180953854123226602800332403328804352300750432783250796182318552411047648216765370873964753180397718312003703541145411367496774293387981277906461930332824224401324143213228835677830189018911561365959143088284691915662657707476361918903354407697986589486817587353188730016369708474854690805068317473947749071319062928439743207645311403763436678911479588429677252742364843168636696137040247714229831037403155357784324017464291159654054911007917207356214933255536793426416708836536302997618358065277115480267831083252574412049908048763447967826013703748370539326790696144421392446453159313031097664635508808673353260136763440877000738227460062337484181812756922518546523785433656575064204210756685652445858330402311549838884215258550444447770410214191903648229556351886599774284269886984156602559503528140397301019915890846033264104184796180058907551360515702227316929863045965913790488839519599795038251475534423413373082837582545217300319365761603776500792968995731967650019471644704669422897153914207666378585340015816439954969189197510208725845395220834915184589383369735644607717700771759395896450313140557016031344998648940106453234364247906699614445774028923864705379702639352356760784817212087900642934936309734514917523133278399127007582247439962506028259522582870185901259858807194151375128485060442715859004420311424715828614908328631026494106658251383405083749159004460950738557981750402091005804376142299610403910912354505371605695731009219305916689841245061025720143497236674805037558052073600906301090336246568880594557452985064116124410948781464487148906310167484139915763737689849861359063588796778616105647011432273947457422676274772891420428671610931052178802208861259487479068130626751736554485095309013102670041328037597390603041171112590204033169315896757898589741374533716313432639192981342724851939601316900720710247416404404683927241111054838405662431898660049501448757117090025609760696378019007856810468969275120037894784955336903818144067057397314986689831569517660994054384503619618880635636243639101012173575404118162721579380650282123022937954397312926865547558059445616380302033194104699879158622961662649477204043257347051458317053376104428066584478558890412256152767233624448763412521256731779036614146730127561271393917724687117761745243951206254507894973648603286072244178083341879053639901816616610911856107275623881454398038301132145573309375871911320832303170838041309322364168073196560639316303682355515368870925562867172566191567460428440472190179406372226836409885709712588170681224380752880215407783362262117875111050683788083194155249894931202874256861404908692127242961951014040547541357810670715110087405459933313459336357587624786079183754201155212285455157641422953640306798200151926092091779191096239352354163747735779687509855397364269866858493992974649817500521620063286652142998202421809375575075601179131407304367187017497246773765653046770856151621215641598636887753830975647271598185185989871840275343500144703171980536895646471444477220289915012476939497952456903338030973926813018521519007264465786756332126642592731104754742063426855905306416281490251061321796989961389636057252534532514866143018390657413580900341090042695207661081698009708537134041646370132373855101273449346093535254696207069980402510721981144135475961472058437404808024335405966701455223581973411625835223490071292309280954765095497738051646100996044625807060258864673264761373887089134145978406082468674203407552297774156794895199211748396059642049641756041569940411118383048925418291231020428268625419199035241949347471845172551383596707547526280752567117627792253931246876466050696762558639671272998417257359008029555141953974121137696574469221647322930073909470472420864177251764111462291745562285826696861166236331922001223207403809162082504748753878665556596602189128479795952633173277997520730293184118239296234055360326352521630991207748851219620068911868578808456452757790636883235059470970478477626552776996372373752591646518423282164157626556159066808602111953256135670605886089960235431343157140999677843989402670507753043450592198305886022528094775229468469041754853214613109263107714670598043068924102794486397836249238914828627439908996825104095503351402476359734977121410801709559704939007012201270632156805355084182922822542213514437115712065152416503099079632601786760030247318120958731866694624527259128650713389075943175249609107266089362668034220554101826155942651452624676352824180716480187724667670005304865634130469801969470453234568307767190957913622616377637199270005338474098858797029034756125960837305658849327329835008506430141186783190189366913142917751840457484796484237102842638554130313516004566668754275485149189265757567627253847239583086395489029715558590367813760661235819429195828408784320859940801475934608980326034224192758796975723818914841819625539836331678308368028491581739462377940850546212679818143177366794555317332468927004930074561639139852749959636973289024228621838831406637869921142563353047082831712262281359329090645937963341940238207322136163725085948118521374517895258465541912407388004805250806113717502556010693200682210839192677394916061112451843702369549362015802054625028288344531723042821046410090378693163038615532626322121752634539043731302930476531816150022279331350699735626290583915634602773550498603754288791653476753382009305508425468395313079164186647876779445365178835867807121703657493680761721354873731745497463773413929551849302217121559744886644009671768269996026995492186127593778833896061833234631525864851597724988061700219176100617922596300386747178652316969114242723943799899534338131899505883309655270862938475008268964315250911672279614583414961244146883768571274371147125679441985199654008674572153428427625733441775685135070193943429815993358947995933959142946304638676691440530574962064917182430196049306193599432215524120852819076332475745564724898280602831318639861082735969651820885912580431602330130056093357284777215550718000936089296374897600973051093683200441493811792996293100275771453313760703195053008337756972498143523273402391503108761469739247305735712310972707243790655085602656771502589237952118166005484303299371787390625746272770919860381480754706671893913255718237463637221513571186811286844264127794394585283381154244588268836433772797285482170292296904521866362416734380711042471990900761502768332085327628858770881481034181796986138420226385676548998328946862482714770882275311824785955017105932847535840578067444513169589276737493734187957664092021671297958329295246058993818826265157094708696428500939754969018777245031335962092105343136605751440888643117946412560448861777090738137089464404910296377600405430750777885769104533285425714725470279099565559605754478891541150294549033892128973602281521085181784017221583707591854159136983339008233153619784949391182668912280803452204951209849080396562753263823366594722219143209826620588474880287691012280388739232258431364399117533016170862495307277268130952463520792438554466152735726321196757221060805535954875667988304555094361381990406712780135666369025353587377341719844885419334674498757985324603700992248706875251338373997274682970058327876739369907845066369245601757349138362756075441032363952799830691885481442989609146370235366865743120803896916736891597150042197067921072404344536479715318334493273875537760121603694288278723330083737344960770178363283743921172037324209055573584425237458868641959017071505152972480681421024797612107948134597814567828931025843607643721690959922930002650709179896923904226634344645559005410456177356054422109649067945491183984508846523000756150189076519672071889984986664771379482039472899017893821097361856484720411172994239817508651934610714344515558012949526440533822515171649347184616976978554497000041761432285760021075079847140748303195663179003175407002399236342068389893282424761533351768656673542416537375500642219036085069790234746693880523819389270904183485543111566340528062300582814089996954825346708233048906297561767219413592075342219838411609141747766806675323138390024590956629739261886437946190654217216285581102309064899348999181732982959978845949615640506515782482971108817879937811805384613596302436218038564827391184775237307787950306608809673594700993145469283155692407669954254408460484419333649735463636268109902545706524418008886000086350420521591510251664146441910572370591025299200042060444819581213380998918975254005547394013402634526499779714840345892297257873869613507303419766379467961909770927307612457816420739477086840958786591175719650318204644716545385388337634499589538093368531398702736823364892043277232887532627428577903174890690257251400371149091179550160406564180154671813549672553157107920952344647959682100003743267336496767201993179905892889106754006118897542208540470342428823723377919405094550555804102140065235772595265974479471150220911179891941436009766932918748233622584047162171923523045045871346855656831123260173895146361906007878164055263331538527328646225267989936009140407074877778315775112426512520320743899758234777579175870677024615214510394887104836756023873528283289319604884024309927445189262664212844662240448163558357243113842238100600785753533070099986168328211054775485013305227247679496673301234409848338405601949345239847933703164559182644106881380035355396418779838046073709026835881505643192942726016133509319146455308296679974942746604693003581815948514146519230116728831245033326808221740976842276577556170263594965500089695722520943073371712912124647801307257878154825308183882493937395619901229686899003393576948584830949465754341521284628545624827570425546272283933420355428219333499889189959070834686343145709745184405388088631112963615282451177442374714791770533500896703521639003007827145028100930472972454404065768022970404808022770895155719283703889262228931271985113668541118899614737447753352350391110666394520771639150836212931375509291443270714066273423473812013557153656106534054456088210198057933910337391888939353867264164472359159440220936204276449977453706382430249330845936926410551217506047067392702905413679673896711885697979957930537171012863105361353698509230972458118391107854295814844600474973206814676547951802617342658345142626379475338946107563085386025238306710957792349586472450099810044365706376099566180892451133217145841336087674231383325491033610890313663280782920589341824975849532288497900586673711752913570805480577857519003727706063539816043490323134503681387983010537502072822064469181464981989799921577847564386527409989520496699400730910241548149088281319917442593304765994797409322662960522571129556772309823704936006138604674322147938831575822689231233885934878854430357591544618877072940476466034898105548473264446091715193944718744262389091406685892607125734349503101207108354438595499066577104768772401426573825016081498734798152895811509369641832341489525855192057191001579890443936693900900684131162501105931055061020284479802605930768797760253369267952562298719158892802715710351686902028318318696277486145583649116622018319144529536698855274422564657853435247211879639649650408791195530708214812164512124684987767598979729079839115993083167797358035907675101432324284660811139559252618465003805840962450768782584303163392553707809051665374631315886660345634705507550160122626798829397807679630315628491760859412219815132108336299146159652004668247023530026455760803918515230122704364489420188923959463672114605090574172723450870193786356349660293252715595476320164796149933405566187134661102479680461910145010167300870258687425619148578940225206679127129059512396712169547379534680215770943187044812186399953842801436232673406823240492234493034252651831222599336434650065844113287865475822462681047666352089998788751603995600830203884756872586326116294619480320044919599303496112153104634427423580148903515669187968510997682579373250869524298753414829115722786212332325940680681389973512491724989606175994357543332107013603711709598390462640177422401891190365293484324034968065695497587962199660438158677109257978826482802201988682861338057930061020860443004442992283526885548311015835587975034141515832013806041383633625772390458005962944524843196015590272084972331917949967780622183912824635558931277304550611598723501043672607804533131428155657319775300054202779045269350625323226449474200099665692777169885025956845054714777710703727379795385043136377177381236558274539489160220133034337863961613547853819874315513558658692336843859911429524146852133971913402881036506289906727908793161274889663193341456008417869389311257732393029551316796898966805138346909404951187118567124297227010971657638862141837330159750613461364618347041857488944663231717618592171773812116915758082313629115765097346361943307394210717844655142337460645132420360877049905351961302480368895178770486841360742574307925715488302403217312732011087905658318249142814689265798027601797077036647204191624135697718950871878117412710191974735915458185109949668982647738598014675671103512126190963197647352693546804603058604978335180695109314095972735964314628417038142203691335220718875713548813789863259120462487964249483838507376222878552685863888243173032431405151632197891256955455039054543226720781073195147394851981760631585639743435577550162485429844392838398617416482160407311109981981614084150374644323338924621508046978938055113712440541380068309432013056513646767793434643119035385340931994172085955958253115295129523275941959480752239211096410648426315542829138395711402027484428049321239042240655324716826296829499547480619304779607670300709151612130947473400734517244982554511925407541300854338828656953682470731820959332039490774012153017842313566183510700073846418818647260225931526614127191396178340375417389093134103521083796261446159959019215925422896585765996221814797398807457817525010307150449172668426717564137891252186075457997781077594602305290903654417111918552966411874327103769935566344256035820343338266342845090838512506003517023280264486023542533394410826494257449822487443025689988920859029862533553373709572224292717187796784190200137339722763194141914975003421296943366412944937545567268401855361380717734207017305060000373609561676515649053941835090061584891066995158944654440940550266179597911632795543200082191345349986930268784759714766687892361536299722355777491684658057922129679585124919244049946420875291245301247295269396117580369214617114057622505909299917484500176506440691834352515265753326904763697807311525950410206658381765934453241934142019387681448431237087087413633295026714578792966747534780076830282815369141313280645415609552026283733788404245497528144550354729574504164011650171605302505391669315069662734668887433412023354928302093861277601475633549310649920869162247279837837208375980114374115157573103713410326747551606211165601354516107923536017762084811090301667456721081648095599193321735809806342200890035623741314333509493976638792959479212660494609491719206758038725902532113695316155746372591951586070064126559697340419266864011266749264819111994492815476250981077753395824410121980076022393163821829086238222178759611613623387891436927717153466043040661439837614407837842967911991485305517167898182469815531831053885545233444415187260014210968553840168195735460485770751896886500090353780966392016151956801317555225169930350183020831033092447318426730745037453248329310542676419698366190020959774613273127321018865075603411613232926830270077222800187910735396678879003020137408869426612067614965380521024950609995200627524043825301061143783835279743669146006692434596683960285285041356883616879496396271963980772911203969832421393086210756812252862380104599229518875241425273835044507918689931418446389866949996443164108412476972214248912916406618247831662570067561482343595281719778995370679419284580281246601743583462561642557856229146617622346758705722580170197334079990178664622129251584459217942245733334722329508211978375415850657684611045277711649460968953993259736372527338078982257734436044424717737024538834802347059384224988607425668293606134426277173192372196021613207316049079170006629669116795312972762147636480804931753779394581713761588191408436308017016099989638256154837326216864396071962421054559643621467992262250711405574922388960806005049283408180474387187307599057139498061065876606222766618099479661408932865576886486427719685764226725813853381481873627317424106268722932402207201425478980402266273740045328723787808761105835219255196174773543975788979505591225154104869403584970711476623662359681737729453594579064514917297165051771527351878429823450435713775104949302648872616220530016240535292183697050763330514062629890496478331357693030971798271315510192651398582505763898838125377819028454591330119207405537526983926965334911318648785726105126392197091836601121823951378201725571436801823473706911033525291599487042274816253669370357575011250164667354829209016609289618511176844776916406411194242307046736583838914062028415162614131541407551031658990446544853595652137104158486751112942585818026081664841578727099456837616606122226159552507333795580957129370545601518645969375141220461709126650517675918737701705526816940673859126281259530715309611745761411969907380712880608492716163506534060585713375811008264121549588589470710219565492462220466033108687574997128420479634965891644890154449369184145734136847297111037873388594666032692653924686015201988401203869850836275930763290295703324814333655931981884922726103736392708909449875084426569182657967105592759638776111212668828274805258756752615821594099930219310711815397243681720886302755187398264291401869232819495065317888583823486390485757451399613936996880398475411343307772144290888809939972362566362602972504664486208655203713425804904924673782797382243890855103233801564272649294422074495116439108934572274719574028940449517624428898552926273838068295303022880069036580132130468605510546102327089077332285985045219625385324787001233809398142744290952333770011326551212649973350683616636034399875132392125682144761985427676513500027172553264168634527284143608054072858227566030633097930511500676734803034658084193202941542862910845618302387041671828824334802761003636396836276963132939270682099523158139121535432917092104602726773671307564063433041878117861976320458027320458958449721227801394156972827516914682531874921477390848128212840623156634605553557922419570583361654364049613164706134574177035245747311356664228516069081739481919214630137035211834475643642276397060418610777595202608821019010395679337326999739338339799902668038381963923026718695914287806822151788650540144911781666994317469712909259597197433740461842423910715542926520449794505347116256088464317569429663001281329243257733679703933256055629094574490821898994925954755796114746475207161753834670870399321134988860042558771370448810342276245363419593346407356148095460210174371169163921762986567093590744010284935877920206116374505092917823430117025571567442886457553402862296082186391429357595884547615994311046564668545824696192476568906727701947876468394621509479012852407270555704066133239915384973874471097767037551179959308714221221272302628346896427947428623488982847363830912831167549921416176102176383630641881302409847111098454428860146315690669788144381944013923081829144482306334603064455580853733628213503187618016613303950418340808563309413407338497169548097945409295699538096008212221688480375094405454249614903040555764564230234855642401270705407744033346852118916246610903363090161426430215765883161604624206679778270183942051396407999343400149920946846563710403102488354801236164782451233680574822122114356220409419889030896263443401274079255311136241783874930139111965450439548453739254174345768501777696724354818378221958812632327050704987834441011649903630411624690896856037176722735916284907449235569837231331617252578236467307792618725278938763328788564251793627226606944678850215716471578594143273745653238824937840601699881551154877238389955059535245034669779611639689311090799630300365686231686061698308575647234948684556657601584513691511379594767486622474297000903246523069950740398017303746366359327065929812193523172903317846286763342151480929593292506886315678312460058263465517082645472794442258044322853837796003088746761973914811693961191057752283098904990400976555824395545231376448690340813844142368761949892820803581552367042900073182815643716539092650035643492609708930142555669282926581858575266240890356674277502137920604835603990260827746681188118054951117706707331676616325316048927332121082934880294717879889544379562004011400753176828649043784094900949597486430165391704615631888993063312457690748125506761549165667010248813996482518877421958523262393887240862554974536540265883477728654508687165595215780751104251750461067953913303579284512362040762547164066122556538427602129233912435590791388463799513966460106926841900622199983479949789775069117199282081438405601303068361988687027578137158535874675195723465055570107373359420035836898274502571654925956061729894534582177842213291121831298371775316430762264369094621711985725601571989599477323369893324724035931842694964359972772582768045016483074177658585648449032296057374723607822966182538449121078868324898213923704444481302532990767822403060831503139716367108742160906040514977139482555347679632421785820011202201408139822621734255437468610940637399143244580397403769046842997439915959182535184930428673641805237115147878707109904032029012698095991899037705977572960689708646665470158236706073028684059684549626988819041542521129048478661934220900065644695993748480966001448718911321149353086163181274462440391339379040628131338520707886773504826099607290368661823830673339362261878661718380437948510856723881425066788096649790570376898334321637912546559393555539597019552813072304124313166458039608228108252236173442842049479709388024871064191443757806704982887767932696491282273923262327005186586626867847914541966584784054146715958516649229178901719916367245957565420617242674847017276499613898124378206006553394716588848738832046565831785971032312617976225759984806846550019501216561467844627217185676568004635424811965323826625494948598334053575945998581331191361797005953660892899489912076138059992289721493604322751371853433033227523407073020603450560192266862017909083096469413500783883553618589583318166868871367671782826852624244251826457837306235902020769523689205104125835483595212148814660786802558414059704789643558291344744786323484437959455373634364911335075290235323387033161025444308602189698172537001165952962945618830338890751203619059689534024411158478699510406473719875427563517877536778200101994621428094364894483640435132132481537867264269831849936347001458471288988520921897107265135650820536336155851778286759363490970978757488567797162016108647621454774136814745391598047299248094028108535038389717492877200068812417387087218604035604352985133493758456288135776269300104100591158781786580907343161789012003122942331071922870769077748254465305654631180275438581769630842266579811092392373801275484961795746771579727478432910477042474329443097980619833338735859426879038285554773399577435649711534647610029206739970017888543900758429264182271479174735275630238853656369706540902115245371407412388411528365076792200224255746766622770883253104780818704658813550899670438625949869888562099457956821976498043143933507269385539564681342667261009338485435818907820627976263817391380880574185985500968333375591869399893547463051145246068583378129268031204417935011298083430626019621170368315188182326608537440781574087152660729316413569543324485250859934676641257906843827843358914579077618958696033383688093174559930220887192212914637603772984065003968859592957154556434103862355719352420972138082577502775894654267154934005333952731043298956788244107105571319174429607538884345371662704255727052777894343111822111109365296159779483536984830898340944303092339186312755883522232160556381824731337598380129689104023215741039776074151650569959168236063115676537764161914190515977806846313182074433782510098462549309888699717185095802618469520539427095307701195078714485395740508553691319654368285854378437060866392645215055109743929715936273906100374135917856278040112278938250608766440194612625276294102992768712025728945387803649228394564592277940648448603356718140994809527409930387236977075516869686890718723988008316835746791915988536351378449221712532835975677172616927752724487709911283956236187925548210818974322733245157640179792231840207563184429156799372997026824778266094580821920921185898800863521745427746539724927381907568252220442610893414061874209277635770163024667916679880535716115265307315612819312499984301068412448947315842227182321646457411625752387773025011859319917917321558412130246575967681529513777608741731152274529061236040942742922649502080337537276311091986799779422462449163838932771123926291004658388707397807858126347738283016511892675104621506044472515342710340970852678574388907749653275832365900510819142229093803613453095740785551529925413022299817956192894169051847237316165194738755109752442818192797395863124536805195165561286636438276797142912442801405058536650086533976061420193376247834291246880457204868214601859216604953321206416511640645410361903955778714020713931808466143924681569208946421831759160981164989880738977126458171567112310406854291023297118656130809903668275793039059069074069303050544207469380101806463806519907041972635946748349651516480913257673071159542078014967814667019076766028218390324649895396352475737794948905997653247410584164782503513568640290284494709552849313103134096579578974035486127506647909677961373461284087133384071149906355435401657318248234866762269952621458686776948764893852982492654243883248642577830662221655484756991120333918236207905628988744560020770188177872095435432371812679720133188106611684716191164822386257761338353375998122999411476206322638833539288347624697115216929199160160619696374996038491624820707959256798222663308275673172013839988279032548738790102401191698906879668252082421376931112529300019775380555126585856377046284483221064822892502778169181499529906579912041273224602984243953228841746427662291532374245495572267169794969748462205631018280428315205281658538176242382298728974798328140651817881455133810582807755049669857989275782629558347139751619038335968467316037128409016209756692560484082393039036998415326199940887433156072348390208864017967157136752811016722586953202021171100768956539109403417921321759904566428582155981510434430928511277827128385419098417985075426772720210769933165746114157161100578595971144346322190804705694825591773639131799468263784426749230671500092791872674848338480740366674165830117615980080305360378180472321698881850921883975168003992710345969879158024355874361359500756737751599612949383690091320986975731380199186029803165634689381861912499928193715566456259001314549857468654370715783901771220170635539536820583316620302627846808606305411297243049866650690984937256401204847043791939444611110394481548843902788307758117737147342766019026994666318218701692145584011905328055599747015053611466812089824901861929486358251227194479092509022653724233149047884648172682238545469508822000723052546781995760812715809617050468378416867021454431486438694800518058430542383380509958344443564770249966137452558524622728796987245542963446004808935594458543855235727857512462948087928874883943951972716182128054198747145265256216391779786439905977112029988909318705569390243058073375561034111575863258444846520666779381198557996456133409489555193177339973196731061460448440981839067710018042112024182712437348700559569325161895555513398310563717909879599911572364054174738782742215107212677484701072448312508409088757676013432309304735063733615930704847528656546323769460127572160561484711813999222407348518139489419464009989010270864195973131242763150692273012005951889989920709451318960475483803845550258092285614710895474443393476844065128960249772220175377025740078113491865680086584474067839613892444592840546468393061813977702557561356749992471054349650630114350684674225142442028577874945075177963572279902000733459182273550575503617945404768110516512327714729710727975764453479903588812882703554181718655249358052189687236503193932680112579422957540809742587122148074422724597751373194484132268421244832898789960303052886005485925645198825877959334964747020156920986635314837518645810603551982230357639351761730755840038603187023345471414412468996476481206719451874480204700942177815422557949356735336205674954951025933282928097028114711726970711296183705530964427947293104338704410148828738748132216560491748894155306360487868475281810047573001937292961849700320896454139758774170224011316510216002505895673520828676087161665408067349836893389890810339845132990340508516350938750356375975262073506592665851500643297394028870608924981713163307544473230884495764435003825575559831349927060129878710193038249585770220592427628426842179245128525416936257846691299171703253891537396206319097084175627004505499475942103128977577048493034563060659453458158434911842308589649395043617063995718755799801748248797158697179878436195230161262055045791821199250184935866658826505638200679477086634790485546735118675373363715494310229481858968270285517191051111255175802326286197731009892316345332494044881118133899941467593076123234500210597371802987301991747973345243258979655765352526456159348347640389608146631437013869206474437935764412087229910775784239722332771332948140335925011339918044088397256690857178002735493111586465587132943795177675212053268054222595695183368012750742251571985520197101602859703693342026184228064103865038999416464374026642373392624328429035398773578299355968142883128239658105586075838895443437886330005651495291127936473491821503217266030591007481317414610240607719601158592394700556041062840659181433017600863665194431419992683056089832465272506205744205388761672695088681012894264895648659003823377873029857658737930294119449414868211688959445920897780966297611585361686252212190978564602196309105588815462875011393002914695980710190746671567668527745237855579249600245231961420230686156372624049062148114279688246839992178097568179551428156176691842806667120921849454949593061819723951691255826109352236432702121211718462596894983182408938925953409243622589000895891101350393936321510496724607553520579454600216864664378660307848322070339171785774221629513670578680826887383400186290830940747416851708014393740778735861040719050433797006494083256377282799122837252348011128544879603976605120648314997587112474285646262518500794856946078054144491924905821419134549947291136572501028330523394511366952523017342937740852759455001335420992394736050238198700095842708005194993342328359955742560472456110150227127135029858394773332950250886162527162428479973389095875143995664964684381785313847357443792792376017549043268625783867400989425209202853775170970655331855514101013775121355441644996578201390270621055782503757138691999802751002617561590233374651192680197822191857686333448882167858574375369755431590019612225645583278440162620034630188189799908069039356428788399496004092303765658199014732261258056911587415934416122581560744223199223225453818925124616552725779759858211922529183387071489427621053786271917960786117320776636119955033894914286854090370438661218491550944097620486382322160312840025991402888233376970375102346959286784988725299687114883855167391538590548816566953981768412681291942980948563771080258800865110472221059413920697371912420295860058042448635983962562533338766024514604829914233851699727709896355260004248107675819613908045464801034505234632192371539385364861331534821823282886075502893355893083333622695592562742415380014493281727556876954376619146122464533301627328191543281822592234897013076615020198674282011563564559998322421850413524120605075254803766461567315501194155394734385255621319370522507938028968161512402524461195649129047187088766396154077198853669200565209415334853007826015377379832829468871170517465064334280135931933222259554158374985478428686657525965863950202264234964712333199021330156228304902792758340617944953775554770032268866750253116270472480141026883753218275505431195965536046286012135391888610951770975191691051662572709461307448525919979790051385154328035986895904675848550618571799142430368545533179290501230663580698046110035068445319751648347112713042343478016597648027831166018717026496195158967586505765495595590433040782472121547459718978043918514038450315453483249254968329237130612362712711812660069018749351652024067455753113839453735234176348845582625001814709829280736883091561436214724908774085654243203665284532576186587075625879789623209881522847183808143597533370161545511335366219335640256028740875098271193002142420378450212892361741528025676884804411143844173593179015212010914525189231091503912410316335073033490437192363006452988190882187758951676160661592618159174223423984598402028201309230188672784600766569685171416807757322586772977978999754141629302689492856022281994764536105554987724263868953413551539260715264775835085482757233415022770523289412103082790717013516494029176372352752916090947340130678454811554272098163028825229945381554452764691317152499024997932349398319079335505959393782811423523455431059248176211921812128057409511827210123810889877135886498254605963582888741880739575534672660230262535913568480023636662023702122260257778527051216974927511334880160357691079552884421591949063745372126523787341323000552209792557564059718466196106235869282023126477551480942175938691560072241991923340195128302382595352878575950082897854215728490554933060048689116478008109007471709677109837303749636139747335479777067554632186222533598943661120076914263566932963459420380205584250213740083148946196943127369017877603629489252827438058922924689992647398221757592272745175476468733610199489673082938271001667250054046709074064202640206048679861298139974356703475823745328921083500403580120937548211309054436581659484585066796459778508480552741757775264508028926182721033293154625939915461505856501372496766454011051455751467674048224726379304065459433096353855871789864084489178443128533347691397122360329670359184886108799159634731578671677837052728858881866128379600205202990821118524205975445261550390163853799624016714788164860852397769019544388204940905101918474534099078778423493737463186026874411878955745630488412312968656613642814290853813712818179542801578104350741157006816219743611842951948980877695895399365939815152688828939052179905263160472568155507531533916085303891202778171942005363079758906922964694428587189997914871826049001926233736097740089371630887208884284712443417762791513551072874220321045568380516726174684661863284245148822397409011865234718147293767317508319101051768516355737929304438920193758128839271285027606847238213321434467139821966054667208331132690508394855571684438172285928998074569594376293878359459658129309431496978174782987165291125281647216010881785138773906815988734135534141598632114069469254925846983174016977232284707297786086188291217960486146632917710477038996587425768525720881705284934416862363114847714104287509929705508887375919387012047894485779376096103322418413303422670406242153839933607765327591456701539158366206390431589790256897176925331466988506709517185459210889110440604137370109449565421419748376705710888751730382127359498766295959676041506842060619369020501322796742191186948821192013347115141551126282485459342914812182394778990057151941822159744550354395833296987179427692578683227170177128355022057625331528567915266011255855175643445000977708343652507831630068324237374621444045363477146741209873657686680092024731472749040768074186040664210340100515024910940226489839224818235540577744500057706633512215174848453217735261673040589595752752465469312418059789806448869894609412043609668772434929390612804484639664146641645595433725895144797552822066062252948958674159060362013091887961439916933790770762468927886703325755918683504927033740626281317439341628363640559721107178728166317006644066156594074536481596118931302476409825020646330943678870117323128938907492137592931865461820010594599210567929291951339042200867750531373795786259974905879231402001744421455678961706153508535930469012340366592095611717753907117149327116097076064206169707321842807064664821631060027116362461211241480856666268735956734447580705093373374898214515452144713591285530573402447255425677815583813984921713450851723151976410622373994558651106376966172429170508664463664874503932390649838945885300206648428021818437070789851166648872938317653182380264165982751802708497069214509605472170883838531206346785047674256901125204703860746905740946370768555047264986344423286508727478552260976000964702852621957305993334194918782415699377975824281865839854173270026976832469545731668056372784962124657507346486566176219605556797748008027215392433619942673664545202626743755674840307696193351003579636882687615263791227324733646553946281672598372824023188598072083010327948240235310137545683137770340049212497221295115472972036461103393629185926073198726841013927952429459308189846324095041191557912872891050223846866209102356515069117798100850155653474525319733629193756668245290771899369922637708067205163754821445005836037630242995727765023636309795363887947408124420937996987161910669757507489769025042823605715222472800642654307459171925419915040102657782864544460191812181079958797940929078136062822012273380795621645360969582737267104758347568392923735018561386016452797922539695012174831864287117995267512200865983129367484199477423976425876507402774444849847808622939863913000318334310390586814677882860651561879475655773147665683094136285152830102278410488985857423546039843304100172148858206660650279224467993441033574182717742533942787426784337450145653047346331117477850377851505814416927235645116494195653158578614175780003996498410682432284799399635099588357744872003438807189375921102796759520934894679402779250411267460156859452180780555061260227698129667531277795660054843061041955773324251556438796635269877549904889699352788026098814437205396971294589735217830393404549974027687332476744162048704092932401742217050055107928284474970729050520156004369491530035986981573476003124997551567327958345065313444846811492150128495827017720653875903855567334993290086782134968762122024115069474510415013128127625294898493557270450125575442576475105968726590912750903888939186836445579876872536790568461100273181247367736151657777147222717330795568442260745868487493170303091934882191023467069067680311343601559779293489912802725234272382131303179986885182751281521842927989044146283665765361966393702858674902935111380489867875253924296657306017589326468854242718501403953451925479266221053756505291913495226258789627229044498757463928756749617291968922165369673556340471322739078501896131909444527998294948852751629701909609867694347045352345748868443783803853451445197427152726276365497250872991852905905013575619955850354031065549680754643899186546452063813207824980479805473743874046227707996884645203774248495626607920825210978427574530277528318846651922131136059673065768287621135869951227927691655773593680483608339179279217427599781978686734237799343717541428924419423989095748473336830977628727437346111784418653892391847371316962661960067075353110126502507299130105845910759314805439293461891275541265102754375073495602032654972863924327150427900363130244070494472428475927553709219748460827178156194989133582093868389718474293347165378186104000072049924751926212368620121670397222349876906560225893604969112487217406028635977100122570730246502554771572336450943323927618248485761897179016846349041122857819933926734595894592579190691516754587575335198515778513350154008579469445798529061133636313767649029067632489200506312671931119806687232311117625595854565732991296650913576895722884014514215761615003368978524695658960735596889557582654985598620627473287807270919551066879300952918037750705208780433723294573816774448701088911237280371217005130867780991079190867808077564255133158150825932850380713139064958762611890848669988386083660885007936378702629207059059897862885001526592373697465268458747983491446578134429006613466127337369871862884191316236026537447647137876809657408184722383495060068385792607432587961701511479581075143193439144025312855689505297933248140421976215195772021683842636091451356608412556596393030411474558258941588181395749780138970041918100730674536467753704075990720034860284561333057237242111896044083674243963915933484919725894937409113210148613167412155011344217681411592926734008297989709356171059726673351194889483106913520526061306404618816884639718931689500593485319004944734394141699286518428301593877327166558776637477849675954293630463176524096709911315557511272267031427231634672101055011011221723894911497428749826381782830218185370890981839317863638862674236788323153154478093332637321728977923325665381493301442765071439436054000930813953321753449004114802220470748072501870158014161433255036313407158863129358382611765888103504150918283871000749599808437416690205189154837196150200324623581380757137576470110427684575021598839907191036760307499591306796299124662316906157322520974907055382026345981144225550366673714027078228621848277367142751087263845083084778442177233883826802370703276733322141304203565958634514803876512144127742092534619208998393440768572902233283986193596428964409141262991943654030247478901207515948611373528540830773256215784531940938092356777365394691605275473245159221863827475288152706065203087873544768881926319403679296619349528438958824519359744212512159200407383063770390886707107588515937271106265848098494754110576162229831377146078962128055230127978889304848334643529539854360930361713126642087526569905881342495404271815594303477105725066054834344174699832643620925749224829962567278207609518786661491566556548195817250723830100323199992427434131210877716355687916381436389653194937307832530899259388668169104355539348753718710897493834256504165546293446867285573341796818943008264383159036115842330018157339214855541017702693979618511327076850045955016565100744087332806118684622063766740667479719714089150849133583776447257124401746881881677368052163180528377668675940645617285387937502649751807527653944447091713149142283392766213098565850581217167256092841994725825694478472136654892707170434554512633297086845629451825699043738294188091234375513451170584685549656942902477363026196175632712614083661030288603114363021532426949524783709705775728297860594404874338343069386529975249620616619011410564332823439901562556198925533473902917762540589154471348307755799246276896481825983502899790599331326562176903039377127265366462609479426284481894826588400860149909658311295222602607720362472177589003121551536973049451436288157466415428060715386934397284038235830413490895094366486667633921637127117628446502424260161059018384397209934048476490745592269547220589753111695476197803874089309596751588736801093898451218091222919451254953341878321613715559332817336087811238763979811586791805625405701151387968715322502797516956470599220582277778989293215119245162323629947287310639765409851501524575141057902083144426933961199363887972866006545322934781280497692343612952529723729484533952118497651025477387404796484367363186949018755779311108682365931721566599037021390029472178408622761082101359215542507370809685654235186745577188047036683364344030986059669930328445663602261598398541739999827593242105841611453810217004784748430599403038690539791719543113354474025439426953439419391247432723056736435779915586041237705567533415067520258095720056002190477590499216580901525543390643459352198611378689531357225196257544736331177078571179185758989505239057149125004723948397766645388535461324319961833700038373523884896217821961326717294688655073908163581435705356969214706193975731197282438188303108860515746328001891031023573948649327575053378175783416126453614413118284837782640576582164441917802123738783503309978497150558285448120382688517923867756883906513682210468159932827053773714082930246142608919310667282374334664167558925131720133075876254827212588736773801129873869912443817779109133345032721950976245172892604785361653577721662101008836265834659560866414886240545921818367853535085343540389089055718261018740081861933812765218725812739105114668044531073138487429293911982159030305411062488523609847325999691672947375050950843703541121857634260802018059237682093399557208568986572924131654353960356951489852615587099590038601647045398610427345314281091204735727891428610031321353205670454009298273592962556143854481525019616586834886164373472247785149600054459701272378062999765527905924515682993750527644846542888448304942825293261097147278457653721160565731542360478751735570517774402697891580496655280190184252191196132468866563879619157522031933929491937340115209874028668204887152232704973083015533096148577619243726785866713789096816587949255331019826119909493824356434998082958876895491572294327677584302843659265244277787714091711137637920610559438620615926379159137667558166631444705909066784923247655631277409208299446373560047497931785809833986721904690546405802703385677285032381334765138886447913418516497377350198978963116074155622220308429687988496899247465703978928202182181423215015121745127272855931347167701205994845960927762583082209655269574253356785824798287081598790091024819969326231594233781115941258494157954067629437024062288035773446576525135504815270363669959081744188493989126611818937120283761192955642542203423090988270468440418580028475929572435120583799971340333931682637619692152823640329120416000195649004087575001740238198902493027337396928027600812202847137881759981996632562847472821403292270719154594484229762763181362187564149179345347459289139597528096579400934102769913782768054845829494109470735318409768733124861546738947077764723523717181307708453531502477662758040940649335271996536124512944013459802616422099557696569186201256460833283233432380331924474681806447157799673958002701699028251489185307515439347874855422495965350774212356589234314802903207558364449998781757676758799144897759664649741628602131375766006962996557358297281404402632974266194471478291363484853584477020929600993676173011196075332868037207508672409985317458639690764602698429497580443718678559955639738698457656686737880333125286250639701832066177886086998696260876009784764754030440824252318927753960500182052237483837499788871422962412361383900172281686777619199444800568715394609331049552118040221432145208658286299205209102403343256583125410434706124529538300117564266274197228735823012499666479220348719542680593187456788993707275348376248553872415816214590853809713878003718567134176867109793274605307369950862184446965320353458571332587807326146122345452279662643567064570342151074270869780853755433127351985475326377441152869751114546981452310879332745365495538207475787195709227041382273174144310620540818587922055313447984894368233865421850589699858388222908887545050941295201761028318144885641919413821201058606489685718911191659905756774119707369690610483528532949123924386603411181648084492231501216897956033955739821946168052775658038573971083479684964603850605424116316502473334531749687451954067352083165649716083923861646804017354746755981688051217316352054290044892018270253643656827506211372332878706478733990726471932212688435560149494465706347619729839702614335605096408885995903483402964371157510620623459866894080563580883700464436364034804264106938461340804157069081135393281399228885195030527069349993014161626115461907898022667745388973335785670063870022275974729422359407572309236209126317352718902211882140302538732306332767139662900564447370764230442483652222794834692407961402566362999427972327109338923551088583059066598855015791498458591813015877493642474954283877772542812363307773710144087875679553851903226123961130976478636356432224010589193254550053019734759953718437100929574093377462794825746023617088914413364363244936511771565922531923992844394761481595431371820327695930420596823690526004827312263686808691488838414395451848816288779073393169966235883655535603363699477795198828405852703638142412513925767723034628409031527479615514545555970542744324796258265952720700578192478125935573752953345072805201198928118072137899453328989672017626706467184894689928970213380083535507771249812627021477171968075909332127477286490795609311690556563293391880047578795600553815605540870622254803536744842485850417859628750030652972955526761541211859927493556122578305943155018189269332371422815298233797189136752756407519607556343308169407757740322387584116188883299129235553151174604376619741070219383022954103833834065497289532530389940990434128890485526706093562374805671853510949878208693127773448666418282781374216526122114177445219757433347371603699755073592968547090993026870840594563609649525408271318830267331089269461056833338116605537275357079885264989304586537962551608558590704983535294674882356976743607051607578910782218257681173885027940833211886202484898739572053387879359738628296321378072405232948499274104409180404472323846656930385201712605669614085216041722818503328261751415567286764897539420774577722023800591212022113621366841765258908154251779344205935504684635503924785311956176922987057854435439381858165471847211246700035732573824765994741466654019627657435242694893376735249240058962404164739251204744189337588384369331508215932187913242612253088482527740276879264570142627928306995700134500838446836852782332205541830464085526850470429389294097066500870364150352758251789725689318551510086130488925284640596504999595196283590187937842971145852636802399212833873581104846023147797344139180025030493232660724541395449225076987255826112231203813501595426225321154188236612915053092660911100816149743404939961560464410531228428613288818058508411791869306873666210377023306807094865300799975221758990430202391435389951633966055662775887614660090003530616146720168568061791919248339461627056031909355946258344395045523564278540598270920855993071916357320865441128863027065819837865985650916083867246696825470645246679651906582870352845198386183126680341095202343768015928271208709504420239518613027078229637280726899581383822123216115118851840902791105174035281832578303250235120034451914900776177634022267134940916451791135267071629507162777207683749075988913143786917129287232319737438281847270951456034871414736862131951017118261097286441724438359561042131355653152424901738183393409385731817721133786737063623302249997331411446259971653157801218534688976506962062405341485756942679950236850515199291926142002089923919344319853297257460957600875840674112505328372117425166319282198934678612973906123257521542536142487131824314955803567053574394541241344127786028465002758993776123993798166379321519377413088138336574842049291068355153984174487705039676854719175611957105169025158946118496595946725666886448860264157606582546210734861793672781220156232638481654444033637012895505681564578795703722274679263994211404627080350174908192528079182635823166823889337821389667603583454196780314914736933528027157626028688557052490245069148351288749613094952785385551480097340879059353501087642298733687915032131804747606998449864473827905493045511625539668875138696525463332568176147624173703219668023144973520668679343708448183438241170976619953469875245021567073581011434709506877330352526257312117538230550144329658502915331784011660467182656097941265549350981980529740700770650351409436015728236607778010953693109051320082156551175339419187205949271129650020649201677535881129900752212586137514781130807180107497877633982999639008637388369558774580509506699760121262996398854275295040112489168442963441839087875085898032085712753395470180274184939582678945359158656451545421197091585360083755144579421991417977479530039601195775259090428993489340117816950493771029054162656392829232260328372220637358980804284839721556295223180831856693401271694729000256868038235418492939114131763664278254709354262653056879136505482431054155512768226895745054209075278944065715455709942628509966656783399743131646107811229419257261448772778759336721439188074497360520324776247399848089342417047855756645428999047863578234833997823366101656633484460390803797119289755877585537801036464476645411540699639819957928669836891878896674778811753220679544420019596258332010299239879762878494253329549584639557348521942148420069756106957214736276992372500179021054557833311482315186163727502759802240978974972409875736452038083305214730981780975617280171790076790677268215891971848613808389670303710573595892989115525536549487446929611303190879850902721798864854734910653736164036311708106035767777987018068774019590170677586263894267097949633463196003281956232349240679574963102390052809959202442226775061713466322679054878483342837065018702384790508959573013657584327986865292032348069584526707037783819951956900173923590204923239093525351022418170195428938621295172398270839606302307810406501605122653936736093336586260666384129709960115675701453091266289710251409040667660049578842808449977493731097168750575368623135320723550645687734243416863455016283805792282662152736217406801655240259006919137524516101270492092685081534064579674945916263735420392518963828710530118141390225242726839819105232053293196894725496626549350540928404442034097461254467921094418650372916523066219719303315847200414831229892675369723077815712681705411402796561795065606777757274693690802298786451920366145167855925398208290242764097067065185335120090468696507626940586149318819331753040447165897002335950396096843829424286979152221125890460903903962090192220609883476003821743420372632092572824299119009656688287913224059222594216635897341543085194704235850984215469843944852320996793402717721233944300101663227654706539282277391322439277160617219899389633027192309536969869985738290838818839086021530034639879592552245499446154690508933923870018630371412226327968125891130628976925645575886275805542086819466267263899930508704709794187706613025457193789417311031574419452296456521257871046019898937046948991107935200475285857245328386873275108717531544818955793151495878858704232569028997637870030297674613722611069303666315764533326564108587236888289797496945932690712362708918742720971095625685066879372868612177793852406133000646548452442169585110936421574188736995328027295630582516972572344255805453748208609466769997514200811788855897960228572716205996408087854964298798785287296888579740787371574254249225818238471553517990950028428674525284814927054154762850663011897061361433362868583506621226655067355045327340263638735793752488075874337178570473229885010410271602178466841210982313098165675378326409785874426945247327908416785358865555871246483575547301490491353076243857692616570553811300584620705907953326541061919846875605109964400490806189449094744695810157958873987413767090326114936016502585656874983539936863075661912213401207483879685966737940500904359446278880854904731442772055412833702481557388901591177522498163658511267366002835571332910938024092941397409178634504230324313552440702782020099952970788196124357700077561866323705013992975181162611056972038906142365788125161652815468292282355507839729355495923090466710112627487564024915550888157743505119997882161962154239578215937670795030377083822899985406140372587155350897246666448310866657076364571069939807104949343263056175416312029129089742129610508973300476915220548602535045782756611234350566297778844386538493003781823211274845301723963427890352937833774197804174058394498470873248405179517368321761391652529840550315537795517700813657581295102827979102369924055387501615740217636956627566456689497232051233442302575610842130955867783441207967650830717891222021998943937135092081319287596088172084771435941566864371802547829398760491011856592002536667922918095301793489975048624092342899367685427642350051990045917400408857563877170568597803829971550541084552416224537427359197072120630756052462133593513199504040349218692062101535967798931248372722044260306975590020635451164304540448734975324654256282119349424767477041148765250226073758203701327796655677295154768153128190368333734094958991781464427597283148387987037998336092127438767361358322165148541784249155366600227355320857956228171398467418613348848002094579207665060993563213368399548693426627593183983257314731587722791275286831288009710600525424466022697055460089595696551309125525940765556324137340377201441459146502731643298655966468161055169205388124468571225803124204834622730901047837647508948000742269494546621829826495268716655186002392269764298482801770115953849040266110056219872327205337431813591676331357140260277921760154728700226883114639919499496636023167880610906814441518367860267368878366660053421460532286114531968205854244956527981338543723953627028184168646015947663905977219817775748460169031424168820490686375248972403853193784147319160678026064893287783576816269870461458761715724429795038249841234661304890262156915150890523651637990282203458861839909301654745856919256410389562308952296396826885477073985077460142726632509115643983321054646773079588198607257353979237279609127468657896385673859348526852825601776455649682986957167368920017529299792366509977565183665678423949243722791318222225113608136680483869633409807102542771796266193257193947115597365163698122205544952957894544389411257574820966852751029980239596591677948606842546341371489046768579503426598457496477097018749284672649754373310513551182404091332991663403019774393661013551424465093706128960047203386471809093348205315795569345090277389804390361704881152767389186624357539106612420681550293150303825831309199434167922090682177500956210917683747366900012767901707199773415621739338799571942739835947778193524688114554290713005689278642404641664333159484220671779633978938720841238991018321626513038392327957319453925723179009005733162316236837854543238172437669269194092202274255114698670397712972493546919095082012899117733807945311162048455727929149049468766515003482785741071091698980465757383288503763552599892390006705375886308421729753661895281160566788897398103233562112275723255561217967847236873699799093064301416383419131735623708532984704400126931201388011346750278301759736309525544994259004637399034199716104254807543976379540671750357726893884388080909917798172119180492956321279830882382057470318558305468126808792864761125531090932964079182147331626780102609568820915198027681825382501044774018823628486117844809002383187765198579108244465187609001521679637612589478493734458685625319831882031765173279559756886538996487582379986687160153196070419565149542315884724418556846920542185019502835010526013309241336839887956650729177823564558022251468579700254560960510286058138147683773325468920601885598203996933239478124256747838270020827959362547838302761726870576815831550570374094085554670892940697956426552448161757511892974698855738941077213144192576532486598642261879948924373382174680281595547594266034179954188568492137676336580457080072851219287770294259061916680961145103353161258362777478715501685072518175828272139716985287418683286172318934829728566584525645540476529619508214526930229645989332820274391089533225728376835634661074536960478214234708949692133578746527114034327937988414190710009240960741731408392255413121200998625931102351542585543229057141004782571469154181125173764521539492955443656388908194280692122406396195852781354348444631942556643102729059930530762189083804190726272539698649842583325172682134425698338077106331941674560010329926121470512184720625728454053456779086834267073403913326455117765853395854971334833244479968126772170642642209266206183428884191636549954360913523864231635985255924204193580141150593703820465198929522255321227178768316093439255893806568615071392328028131690823365188591999943634949564878724967448674489066776810954250693353817416845162104308011103431665502317485682352452088170071049946126064877791819525741953619528955431711725598429069241617063078490386904765475469858435774976943455004981029567713719219147672266443566777622538442349648945576715766248597807692395496867860072117457167843419204928920232771090135350108850810551050599734372032698217567218373813458860248611599328582358437667794611574883522946348471522720110682045121837918303044921812250356265330284605138545750746238789845788786959312760045901196328279762367884934068429150120858547761609034658393078046225129437230408373119193129940925762213748276881340587778993645032793638675524629599643692993304701397103204151338594950478828628012923605228392797190028198640725665740248207238915725898129999144961968790983304714971317424553410590581977600232583945201406738486811668341087933188444774263243823354555742747495450667010545793221661077748040158691220294981576400043633561565705590473665052578589996319521118594372355066954791742830048924669987571607123653259130167502002203058081970107080746601971318817111971453690114402191693978691127125786044333308873214048235024899013084612168889430411511025077666065609528821266418387849927591293388462047934894471936496751175402829257708981950015607505859678590486133690321263549637124924604251565382405393285460350435277592487194164250570090291500311461674522772000745286018479403662175218428962177956075053992486244398955897148376983827152104391709664245689702096460792589742158074641287122829313851459715837456823590473378543477436019367883547251743507822385071141102963403937824850536112327595390286073326837212794824368378917296442625412437966050283000848549624674993464689185917164270860149932094879947253158078408045483783460987480463579918561408576787208335219501865206615358261752000981470231629015735209811824698241169016609472039301150626743435869409586355385731919609743898828445262255274698097182396053311410646163853946715533149064666093600334294180494290052694395070731146426778288763179109476838972017727258892010194673390421688991806006826591620346029824768877191934462715026684800115057316404316927812013701776460353992550216997049740750252968891579668864626716779582718999881050626255566741650913382848552336496242646498521947710142509472597205952142731795966094689355722516828205057438755252323646530831740434631579956968640446475845922625387584874032086241648409617657696754825333341925059580816727841974811812268878304378319779052674595225304295097735924193551977304261605636901694483548615118512320591598420135167405647996945738277276533512383595422617171206100556198800714376389130494341018768073516268968426228471460135401207516545984870868920686412530546410648497400421607183989906334652402643537904554028960428047197590701197277221361109556844744266398864411566441167495703043399409656117276837208827933449993529281881946477129596995161914954608774207510462206369416616405010425530816138210716743510178236691710954388106602449472857074396203579884861835674346510753354140790304215627632011764825945654440483603756470073209785690948912567415716610657095538595287965733330959719921015459600760907008196535623786269729619580852344215353908723478780963718827572468001684531379409079743287525294256473593698641122505637605455525952230109554593639561393427482626398701272171056522406039763266671498910527019551581071718381515528949142161528517641710504892002881535344109291863796626464906926118885927753064807289423516928738756119959052592106140199622293872440508194217887272696386559706072330904216193758154875455606542640740954608724402466142081826286761708565583665766931729424120218259270233237126669630650255777671997981788693469353457348877979211976164855078411623927651959020810662614291123093646012287429255994582331114170216312130678203273635585619190957321074203466803522724375372850430946896923809403891567739820105903725731404167918179109424648364420673926211361045514923654884630261085265685876905045923623056422388544632456779921230138702632914415432759426561170321692474799042234592001621630267290851002613532834338328657779892003618084330602905755727601816681747779819834307757820572714713482327616627925443443313849417946900726425770051955966161953503690135425123025696014710321161285572365923604496320885427807753072755322263160271370141051692341281878327130540333338395128843781429441325954283147072435075812414980208497491132451720415571533473551877968473010872548652721342345700247022067996595801217774495194247608157301607575149941268801628501172682963568669359265978664667044774909490551781827905955150850215270261508623482203383414008802027162291778517542420134924307403393504244435237551727626699213633422090590257290503874487549842151736540117203477886497916705676321597413912489469329690080266352018367658068149659090859931247877005999571228023594195661666365331064327489988072210161734045669781999328782952833443755692931911146280301739715116519205170468759484513607958841921051642335086420842141526844695337075304364229039368271302664060562423121279821976797832562646158411517612824055803506981434524240710606686812959557386800448480786774507212875130011191024599984570603200215568759590515646051910367156789428741219573050203598493703149446840967877648109019534366560173890469684329931654250572469355585897019223716660551391966037993194009525225960819314874300479711293078309376338695504917720022286651726408360659891315567442385279978793674001090936908254557212014241599866331215538857430595792770504987031845166516007773899696704655798047387997722925128258171582381951408477728861848999460561194627396142883845504903785472775407753862690593901538336462072794782499708423092148203251686567418349447878564821682291171005854209390124199521236702009019653059927224588891443151364167398762537733472292953103734231526709688617149162391883908583109307086865925982464991042430379192172301631742260433839526475950251291047643384537124602663880053066720745584077980132581025659050533652514607813243348437484601418611197273755310316870464929608160244923463517328999798224837363431859683760018567449477120991613285659945911033118810199872409288506408586953369083351820789864050808856182435378542938652012181936776857272894627075439001753947767385719774520327370882201846067989190505945797443799120501710217148717015300073457923724170185382993009931511972032126932932929893194799877181009696647275042991198556252778476949698450689536723187035888335784848712439952319156041225860121462319697006262101626193142589834915180990069531059065156625739490105483466065491577351550749736193448182526744448454918329007278029469500142028265484533776278963443883756070678629729732867951038425100809960871094588177618179073005558150553931085594276858907182460589665793036677070511217908123191696313063335567874216435673397559705897433573778584177582257862682243932258807102677818112597494444144274883963305823752353155593398629878633228947527039201599880618351231544383564814877936471507102986126472423441364219461939556969652735305149595475969329716581532235544854002880006035238432340622791216943874386929918119854716563528028690890894624581947020783024045815982739863238253821523463486372607484872172246966512139929440012925186455284679106046791748872009103944605225689421961006140920567440483476760470664175098246092719754795464572082289884815098360874750587966294351882816728339208147459201667096209132436020641669826173615753636443022163865131736529661076050022502684869099684488960669131359718129938046466098790346538458983511126010051528234993443291469570174934201338689915774786983321764752570967736161357898840912176822288954276152228948617854543103881009729626839907697734060924601313574616482069861412872685654586149036595351281311905072402389152932564572621177837635406537435549482943705886695736766063649306041106391251491963294999993063642967120191227104860644928247773853673871862630835050500632439312758674770969677804873203775041795285083566652159085867846325770959162783476685222884734884702032119103213246209484035968303224047360255213891792592747823519751848769698992906738314576351839533660036092035365217255751231429119844680239440773209215317849532003748168814388168002026592337102196730015512401818134712322596696702710500829507522292239987726594235304794884762589788656828103917293726746551991132621899326534112243825816003522036298293598487886602195643896959680802835390653824209182442077697376362289854386629809472072892890442983085070947442171088367105172772206055604396886218054123002524362836011686523096252797753299383145380262068517418964391205601293645709718852782305058201371515589773641866240373279984116895083064826475808721757666102725819851432269082485762463729563958093511001314396708288572035571678644872997032642189364005124205612197089232298569106263538337903052368294578973437235309668198157018950384161447405736311298964738814709090274647602972984671574736144311262138310812724359765641394991015310889139243297079768802013121742958982396052695806271614200562602064469635069416175375398296859027534570143407657835172002248162407562246540286930153450287368986768110189040444766117345918659528634066312867812630635557859739634799740240911535640995353732176502021024263799574383228873420899595841133782745378887110203208663502688456098556512250652293158316071570426012012007861101168647507872527134003223336447262841434583186711698423730421405293828658115107649954515570978842005721282412578193121319958351048170036360134733125210611203331108403592536780824546241650883369742465445624251221133535724916175019358120625278820084977777161969196882907021334304445188842396817768265993698638436705348418645013875710870157280858008731321201438109041766712540645932721379808456476381486437520172277295718278533208174565596987346389460211721713531770885276633459805974095580361579085741364552704077995429566116645184148122819169379152903732613314587692211210372054314988856526086587468924998903870106341608845231701075341328553246866111334352488011682243621408306779589545217270258535769920546522169155486441468437243265492150085748383894636838387657389905964175518825928317473634475648385932135240297957876886592329919785410324667869509791268588284693381823884799512952707748786688509701401217977440472454929480075629808253791585821110303009623460477434356706577673572844447966610500241313588916038011465543215149324860583808816603464042814548886147071759615888605989968425280461917293717641659036486857450052040550002703068355220063106910630884306074425162919103545269182641410492388836795730812850750307079570982706483733839822819384568227291943380847843276986104443183824147299815932132580341933635408275715597910347957302908572711393556013906039102330358695481895599415321537411213766013490016910435267581479866607453338530821732818642640127833167077020823160521850169215418011307967377782809088669575410722843707884579320425037494843249050545269915844236513743563585431787937029645491274867805809087438020935440791366211495935062375672474904489763916973988300545395201176778261433314839722821856584899122644909213587767633287044168260415934090165954163625607503059447217461792656991224237412731881381240067343267267428347440904143956265049553213206982166050648887283978562619536965241453100631616613654708306746738306624948228427952836999184612588755465675929822212196591652587998585222898823396506269481497276153677827953546380093122040874441212058967711588084887955544935516503985939912979185102261066991854431859716353770743207610780786665979687782443756978436408956703616527063519795082775538031889220097186932421874214355266780175715795199760216595747736127809807246561042778459112270258745703217752163584767084597059452228409709156548084159728778510674077003308347194586654379039815437847122246613222850577257892544131680979211637405030120468158148293733392171261722168805150144086134643757022347483595812837037954126667791185261193105560425248265008133440380486184775727293246201482905188090761861196232071841746983846579353007681061215987811907565162659615630526453905328433962474109505733596249274583138424285714864882409432883654224997411450334747040492292762609572695068687655077083500266629520215839685885301187514212772838540187431950225723670485005634032414826832817086804628738459872012477966623444278138478416295398754811662401139762294745961448695386324413987216628011554240930691993279965002696905600912456716981156106653250222798093292306422507781775400826615680014997219596777420215117672080210288810232644440447690024519546470977144790849236035562018238671276153373584909770839622934062140056526209721435267298493313788318556855517588995349618441700682070594788429658530099079550511810952622650155395659057599535243985774831653449786835861130475558543867232329359669048345460678932041358457369364801066441673079383254121725441398383413537743573540309417469284997933821828162065492200922341276858270669755960704946169520043324949755292053561693476777856975669978303216078424259576869075065239689746653033002512664336084251600562509880752848186269902740442045283237775366432752129334946595997824616387558489223359037248134311297967746178785472063907359889916812272033002390315492964547930543797703308029875410968737335039897275036260097868992791453050633249613699641711036286781279220611680313821472481932590499186331476730155595822173542771381158912451913515276661572259941873194602685579781314916532475223884052325104369573004364076918937799913903699323717804289668239830982053939906755000612299972424144366451472205441929846534250012647028453186193044397951677076854737922005718520797111132044662331797267261625878776412832630469842771133943110711151589285117865401132634478109072735377588993408669096990225052716032163654772169345588182296467144345036093739923076934983315491510571364506630768072609826899378208846832036827245059582183965795890837542517608701320092802874346871076994611649790560902931874615459668992241256025121270793467997242947475988228023893917336390291751654119522001309143444474561272758274757649801235743396336588453523946697126324192337968692883223993305290430520461274778241413660907473825418333946770035328764009734492274326230131412469364318037677945681921257824648729079976380970478222059512510804051029925828060104823128630913840825670236700606386120397682674351597176470634969598364733903689416961167386822180253790097726376094921465134625173194358614688847011971382758497229181881927918776370591542607810878056138540911310678613322288407504910995114601771255120715218644898640217212100250114915816946931478878047083926909510045514637262613906488971437395624707472525534081804581197875010170148855855707519687074606803447262231551514824584739940146612999970861909247145202690525174889531057583942679438316881718557707119501563586519098149470560795066186317971054544266102052083935889858705887792651197142119735908210035251065200558665313314478032288189586735698247905199558287339811471749045725538822499398360017644484838940919631244886141269270423382459729788462407123229817423305000447620876945582661026300709003696948828798670404199315104079747966511688320122942181333020376830924189886339544557815421147018872491519918959294200215065443853396730175466191939920922704286785875720712215137641429781707532757697534063319241980462451324285952861057550316196953043598695097188926198832162427528208585745483488299519656782151960633243549115930336015813514845273923701205993041815457386486953855052679674988826656929376966582176531577619893170894561507167356004245221735618955931332274803528805221852580793134063636798375878108380615118233300841717253566742717959396179073068664366833309057591383245213212006843909169132747430761041499307490849696709338771482814399645084987729578309100102036277496368864680150314713405390010650409085155492400042455167168338560167683611418111109402881482438721567317326240326749020863941628359357266468650114352912313179194399705670843266545759175548159596104664577384616987877813447914441943454676373235628089608134421880063776027877704946268950610479977210396120129842637622442695914015743217153035329504990909852320227327760995323960139413531497452154478117419165360346022611182916846393132211330803219254857118711857346871265276477697721360645658828801106196923170135821055217155919578501358124936242259695501467324817105574634116982265227256448068552492845025930497594822569805390191252583855656320695875306245899682041741015009463938932178477726532333762674537452281861324834333232813986590374348565934360383324174224890499572262486879885770267128406224362034531536399946549864640963178963551247852770047004596792586032285888942735282716396210788580951492590285569248611639018725802076584661676752064979672519398378862581388244274836154002819156609009520834216916497607639234358061630514291147255073699537135622581425369955299802640054476215059956918003336127999320926332518561179386195743647227952235643654982022780250034878551409466806150087803733704316377114399801740769050999498133222887223997320515840128942716556711850732112310884398543205159254965836217640738901341007742095076304229145900249189117746555754544414486828659125879096362174451455174536553112862292556448491303189523314726419474621514524278882223065165150498468001442825683710941377347512738995068833081716829896580013728798238944125983472083496761616961692052151079269284231221955307459044301976318984208646425765751598105464736044160017570692815122419694312777407187314176902850078952800203219485214821530628351323979076566307901532688103659621699279922870794043224073271469251640367308253636358419152771736612871284830978658791061300382939206583082762734404154309262008653198447226686627196919634427442982856948800509437156391510135088600673649317537648570493820310103934837326483265922472913760534690646103230473304163015087684441318329201541269234887155933027403763053763004705785379905931281378408604447927399456100448036282713391239710419171540826818152457346154266723891761898286423210789843209507290057358128264903535439248843691271472881983422975049552677118921454066618428107813201759361706052476951027749110324541105736767548997184440325505302659227517651844401184508836046522047797717522913370155877381922402019717554186393565814377031814746822901741717169491688345841054968377352855207553156763803610773750323439433195745752519003697051958447841998755962204639676576472019148666588413160413784471801661705458317157787397714092483632065771270064235676735388913652769989737020579164336977439778488208557475706863760786118266182825768405326147774651852951663879195532528926217074745584815218425001551997795418343553309075316901028896738400659298385384976973044035476132470415957993046169089616739952757734133474725073756613398094510300228850384774734456157630620195041887995234644961510265077575352749036239267747726845675586742658532725607246427400300582472010900839567259104242250065586637528457030437429826732898360361726124821023571416684702182321714053114615180143848167550138034840983403596450632613873724434130572748923760192054555522108387526313123744035684039179393523728623411160175643708362866953353308107999840334873104411132258442017664538063939862619565776817704484461267745754002846900721998747416907336530298580239453911474388608874037365544997826067055147669068083115248273880313783384556839824705587562563069749203157485205341235479200594494519308509232533160425324860541391602333615450283112116309861072903990947423645641955209991609632988759062361931624273104518378651599185222627317898923070042260699060228998340354996451389322293219353185881794737943038530339309170046831369902511092871105180457553391098196740901638443533181695330692244234227292669721510253002197181954239820899083995181023672618217913056670838758794723741606902215516176757109176314730642739400491632320759240805030868687155858942819417051572375461261531878135097810330869188359649184391836713209657871644089366146765592104054590202236596354582359790288992493575262655225672393811091266498304545147939737930288798953532329093262583686860553932913937217920821400762529835064084199170162934683976186592712716839209311430687784187972378441423263030982865272865404261281269746951041515138159267970868297467599758335945831696013661073368556987252788283901804860289215366921977204987567967007947621650531429583910610226997911633648139672533853565356163399264156108228212159931540005122169217984482699627687376229134334326556471855692157344102583369116434683025432781194727293987284593227180931989519352728598478915991056729774194705662274233603098600982028727449879385896707298046485421592993671753007170566342579127739225394129317991356049996778577597787598656035552609917985631710490453940891102750095453648048470679430229170666057369549390943810883802884625597596503086084904190013976452770167352899977179084093343024121758582564138186820643073638078089541211566171627464591444073144997404143776253005589556197663406752684427033523912958575535618699447396223214146657598866384896290079270543280448127923646426537502034986581353686032082999120221706953554608997789875657824058988601770377574591253510556892882407171105103663118767189048221606728887141015850057793794647139621550207023402908373256992064990570157362136309302596625751187831302052745259455616084612054486642789935426709496172915446202070852274128439313152377401281561279199319493440282055612219559823068882351757532241443158235146213128269923408545287755130335150870175689714317664667127471261446115881045186391871607178954976169903664750746705673413393525764424155136077155402011480073856976578260772871171417410423643908703087144281833398334611075896311459059403099398350132280032575054408574862415074480451344211208292965478354549386145313349119101425200579669347823952889340522569805538828783460802612992985762765553238185265524225064918789049447661593287455319756225376555836720484304780611830036415993333350299521454533916259283149310255469089231838977716476585318887835254808709904075803228211176495051884304866420044431190674222099492448026172440418052638172685457498130608064700286661940822455437310788256794602032025704332989690077134069205498384471655356198094999553641489166689488194474272218166293107586617732774000566865044331399422358290108487296943999327699768714012474648219353236570734860829066736953686484740458299419512042742770238534178880975065178771700885072309645280335646793139890031338051172252794704199823015444703962855244038579968497019380861012555350108660165994172106364302319926876973887365802204202322788412861637258395781837492570121547519615096435402168712203061391000108981370020196361095142796254791923415441790528035117542401896641288716480379131573729038017067864461941726894445701704863871594493261189930703287608156971709808661558143454117108864039293932653054502886567559485212994336885528702779965689066763852850002119427917555148649849520609333294522892627322824235636064449081143803397732874978596234129881116280292704553150113035645210891951077855884514838789618409187889797499493126577447370703137804020193651396170948957314316473193586447037084839478143613456706010366477309500425085520441378050536636205646781528708651916997518921066166154851453777988882020238336183468668548292285516945807144008898709248103677209550155022309558554240444436201746175403600905545369238421635458324221606365197090344309488416174403488902340747595871763871919071537604809708003704279447878136287905674025704227990650030052122803661595710314373934611587309167968976306704282775848186397627634499241194995620230004050822303165455026528502718034577895723815428526097108961249815460447349006862123644867102814537555854146681449508334884397842957758367037856893174417653872100697110132648641553299925039871726501561653492965968165091729021468047474827136545548865062880510488680059006684847782289749632590424655129645119537658413871786230267702531605579969335939802796709191719244262443686867011123379089563087278880744996644894527369166480767439094427300161327781167304746361151590327396374559236439370347170297120074202191650370926866974227334701799750463223599752118850047456668114509970850361732747045416248095332592190488013240055185560073457736632034893445060945467801008778342906628984878544889311262313226918026865574462225822489314117539955087168607863953895806370167782201266641098125833624919325109837174668002738560072048466242889636113622797006071915101480509810546880767765917342954680841397308609010044108079091053339207785137628670571375123625523732556046251141709568024942271172523915754911051022309178135323576155693109580392166079002844096474035644098816642116211214204967652415296265533180213650611420624064746461182067539096972402120005880341784755365372574869113349237583108152377482685580531562386043706249384440188368473994679543794884981142231748766726590476261906449913684254471453558817610317478157756147911051926046184313342731445412900618741478060778115290698231341238638542221247027207606860796871977808931247013985051897604985680361416901665325401639389734804470884997241305979953028392247755147069058078549187647444251997507289104911734080364984673379163250753579242733147285074411098060185864494513811079883240317301604271861921142090835884885210321363054317380832537024224128122586767051820182341637619694503435857883416484158953267848134303716142668644462627216411138161626767758697449612950684772908239845500183561716884153564498409235483630948311759502277349234108458210005834256700827956550419582139697977333175785614105119603888043583061846364986610196324964405894952762585725506682054411950518268127455425898505925006721283369765583205323777630666214708302371038009374578311422270389524915880946902145200335140973290027597987913506840256218827179225896238669914276062227328673183373112920314562786244647948362637531726729081726592091783952496230828307282834864789457591481461878084445423951705317134520313047980161140240685166053565056504061618268164944760338790218298842498836655983480739714219158803802690748663088654058607274432329965295136209303917314625327979980123689842756985524847712285609657683551510359648452921313942972510499631023509157769775047730382393109097297000236534143256838375463603019371576996703791228991109346014751925359519915814648903420295547927000339526483227836519414032419030650576900261822087000099439934952673510635889842056491038549659113310717411201541695211507609643765084980407220213564855244216880843757002714525580364930823006001820181294649631808353176968344158251161896459133413912393328122213433106425024838909607378527244237839214549708326746072121980022407441619923746114344306368818897574190485437791201782847497819546893440962202747700625986338490933042412654504492523467495623895713828425419422973410871660254520264275188262798848980152495473469164894225852486578301179907956024834088082641052674233785934720278962120581462035645663559115799520797211502620701026381199663257752078215428120774224952625503374990013953599593943835506777531253176261894824085735338670801489592096031172000920388957980213369078977358360284738883976104335744780892415001187344852243486845897771651069657593518234702810296793623773322101761090023806614725083389209406243388395199862503746808601934320826048821485435763598087953858895870592214502779311653206723496761089149455645296374657744090034834313576042019110751763435110559120432139654029654242922997742811923751758627183016807120953557570364615280067387552338339645763111816188576608489830583147527081595580262983884741000330255513831715952009052130006802265564913161531251533884697726564318923195192095189451404782693924670397718459843221571285951956128491573242434677824106228607704906346913694031897117012211401656601287284595089444618479520509876296068849410276497851608781069058160852370645469059924659064889278617325005655713276129854477228232076742791021524230384148792379720637466863533980635978936639934406286430028628542711481911967481947970470355664740751705668535599913891770241385118865338723214734152413325798180575655220424031308092894189584025048304018527783933427804161171957414737463489051802539825678279418238949665716849042873875921573084482061154107517961679078384805865513198421317293048505617401952185342349930110226429398936299403771925349575714020491836315848457707340070575473473788997925365669159703758400513917392582645963759800351346351569465356963126598540451785774045645477787924309127509233163323153314017464799613164037245947195235776824528022050772641830092228945981465908600373519780871749058503297821644109120433149821528771651845052880006562901408563126475512153515747944414643143756831880309423216448830534076587354077056281844885455483316864476219946462587717729026536014903374757172045142423351575036066023928739534649733770025982235263933948446630954992415990486925816124689331058444074749094469653648070902554224790705156685252020640115401862472447734318292838020351489603007167525577518956082664018007922026020857264298084145655603419865998761180667959253006681075841284725568691887782401648893794080327901148695607511588044879640191135737406886105437806501608533681040258706093686109038166049920529575725029762455859438008572229010511283227988516985023844315626738672735504610976726581442361522309459566071746746101936317185649883065039805706230946929122965999333475756167304090892037912675232788005192847240950421382791337480781066566804679147904198614769962784078227322839975499927606683009462919386251073981321179317110836519260447283713980411179000117582121726700620037799979291123708727697105929749992617208516832492349948589732244909059427468938731662818284517012660982355428360530471788665395084361854142208552612165902896631120397179980132778543762068094341857733784275733801972689306319416429159112939573009266960158022965347480880606428549769869725808661993214730963116655384308970728374089057493766573749675162763971042309559080044094778916495775089173609788735237826281303743439143117783575670314769417174432263003844849033872668994814445644083598526147091084522045525215294524604157024833022084401613248478564731371666657066325006654503537107836405495920313034011370704663266717341890109727793932882447119633274730041456051223258492596017839516727049357796018900624800191090808247059861797292420046278856887303525146476763458331780679359608425057819235883582150566582966674857262433853983312217902923863991157430482736956353924610678381987359587541305883109569044770526427541660199056357096899505926003167690595660773185285254295757736481860845736514022228665505678908497428978030835317997975692327908946764493759427952641254624074024405068435550161762724477568041717924722336026879042584403730715682885954921571268025190023264733763253263048667529783240228236222458666938759539665180696604193633785422687191536872767980586390712542097994870133127547083751133192145920444842427674029130880978627906614673129483002803228998516461539140262025993939852325380643533150080736147286896121539125464835388440396647665958229901790890620833920641049650356679642148317859837384177559026161299691904100678728467788354003261902662546886428142311978938576455634035393985922308302387378024759833750540931270659454478375795613350776604466213562865517789672505455472069373919693206342499717940186846881960759619932159485246468790366415405347060560161512100083181809198988232858223649416682942696890734617216613430681810014178499191210355218388799845888905637742760085139749227319425676438564826870148664295366219900248362892076592911057484320266202288553725594169629650903587372514227709061299445957771061786385596019990898291858849024457623046271741928632440223985105178150178879527912228776668766291221935371504040899129834606428356034971204675054735031826724842188507026497363769332548375782157137303856546382067270975232028960545062583279744183806189253477361043899009533575959407015649694464869836980193693057863765630260105679335333021437005583792344263091492899563105951831915835382509086747075708765399496603847052470980772410002704825088516992322857530982008520090089377013114342871446263573540880072371465236087022919676193571336367674437136009990854054798699941439798458123660429898906888341637983574872814739850638487662562871009082539690610907622407758599531494047703019657482047667420688587410146307015941589360251572549960359537376630529255158112730585568004758329914600585625461021345932233802024255481844350582546724672591740110415348363927779814570613048320850220103690914197048084784122574669122823122670034732682316729296479867221709753062067536443722485367658315615357541468324900166713185141500607727525676495280640972318702710432358664937959883584668990856016659400740247112850040789330473683497890584885511764137468975795819653297952468116049296382459888198178262782088369303048850887628229911569630769494127468920235235892142764362809505609602275134148746647718677813927498137193968648132833639380915555539417405836438830080269025816348120669023257038357872642846371535129478376341277937698442516106945895683225601643284106281604914947483458134216321454252627051145828251066346363394697226151525446005375075026867658594044246855784078110457131127658020977407402240303420716470792046044154420266388470489762159515927556523876039957458193573332798706058528991538961084570824184060789416756677582626262344438475484678524114563616473507692191742291116090049570222453227456330888084846115037282027863718300194701380347923822277572543792759301554106109626131165474519191775796173663882175897697599920217290224909316190791097028185393286202359593956628204466399560333981596618593290028440387389515455475611999155581928274960067783103290987327160717329751970225721838292164207786823496091339475743181352628610186803288508310641462874802112458659504042442978689083204075789575424647998856074834340406626905338819073561454258460658991002590277587165632648954942050637931370740749808167674417979291565276174983639968155661800153737818969701053100687876215685243166861251883125966837330023143381450386078808278913685728650421715394876370912130769962752686292918685988124602305461002164383563279304005995301358134980378239238387019258101688257774349107808157796443333940261188326041182826738693234888338787698442417389774994172769981996525080197138155126402606286489228318031600363791610599694791577793128553690214389213527647381517098024212817608959768081687568492943959108292207411520639955421493867540116777642485913137981129339643330606891109631045826248071018609804849322277015162510656939327331322085692210879420469842841304350626751404056403037856762723955223914858228425319077339265439447966268599510645108589007791014255851541105303160576355190343199506178395318680012181862712673430156296299678745193050671066836857197241202732853175549652375126476129243977376758365372878910710837307676619700339574143461049299404438942369670710952840619804924131458472261378512642657538400567410278377984847729046796100189805316710133366308906150853602766443111801467734756965196035971609290711713984840894750954426534895393576218205499899258289722875753701930401821720258012505387537627668512135037831456489504778738136433222433297130802872248865205978160462877178049038155464389627147492361652470285548024892412928995821948827205731239651884894030604046623754889797865448628221583968031823167347808876357303405310937528353113851259573219839307315350124705710308463618199692203632925043580739915492036821847489160191334577443896058210788837744962804742051561420894750804775299978743465978696024770977102433171542410551165288097539308249000651065224015281523231133639842078780422462823454108018255873196556701578230201607812496630969664182674444297057324723333026476206417813397514919434262160794732063144319521744125535027452724393913487454858767409882642104136205722004593102548641293652377838359226683535820084880675927923790654779326303584494437862070911354285784851423541234572598184686614969155941133698349239925442506640446213376515675073082704179907681979786340508780770197914171703877736947895637101317026149521546421526181528652519862085778645461882244529093825103691447020303857069179822126838303223877569383561122727425797293894762523045059318058107879827448601651739390448508277673182466788044107587631800064559276349452336684891020616596478508072897809824093880249980958492161342919710788046377421712882704265991523508871512462690183759605546313594718485941663839398421438986896751136536934043292657458054305280583905414953392212429656983735826039738870250391964536073995200930475959789422042049257708856916968996861739001242255780053281240923189546768502164594948902360962796848838930587917838668442657546037477612952725594944523350793928073445252902668378373762964162612360240216911865936309309154282958363023059367270024325460552288924418125368440254268380023507529183383505216402605342932487468002902330836799909532441899704491421238791131164197512669599929829398013661797184998457195656394573742755888297881227934804372765857210970198579569316658125116430981662701152483606488393417940696165258434966577008429901019390065624873155074320241422412146929889980253269111810910484810902889298480908530864932064374059514206479402042772283420888218692002820960520788125966904519078532140628259761112043141730202878696216507133589797175527441892284360263548334891047679730177849621667404282140843340878070636121113779075824928411903660649224856574933779463679048930611000554697084846276640044043342270542880354973214430360278112762291703231471535251513310863515598368094349735746474492424029903608283935360710625702673533718361119475738294329879207736557997155057296350261817171914668244902184981908071393345032901028352925118369986891661744404554217560966671113309174420637554389209732346049594279841611189145759717217609218661231345289623784525564684357837401297802668222699642305730458049147192796031230085694078122634178625307694472942861409392517083513741595100957014601811779435299282143809878387181661279734213168852205714629182476498282677424923931964836145864675280428138290063087806478505232760260417552920346647838532623130838768896331830046160636275810865657975797708836619749713906874860463273981796629389893103305768752573374818847126237411479489243993987136902517402097844421048447858846786066269055567368923670623293974912493924383486315519136460533934757575840744627258325724897741893316669238929600301483173641756290934503118319917330298165768960615261809018259036420062113975144286763676078108663212299289618696074604115798511199160699541047281033026245579940358715647131187517298445845707419614058590195050554603164138661062004179370186738931015917252737276055384885576123474685912761569662684633240280056547887890866319702883640637188313969473515884384457007720721054142620348253700443797404216265827336033184639013218389343972411918892751032415913062323467802869141555338900529031624803549057287695056104648758713705231413542831509266684364292842388190865663594654342531732222951482820593856086194617274722846688424832920878184394057444253514003933240622095360298788541384905927649466153297019896104723158290157865495277265516239052423355275777950113183509236533837669499639146669045967496990913009063343707076330819239236783738543303785553480418433051084430348888060464796632529623106414323144963592676997618589742303198515269656194006667854001444501366622297867557383723263208584379377344671422399297274101288184327219361597832932035361196887637789807326586597966380719640491973279396428755653517331834828191358417724051517906802124239139566603622924235153796900538985959109976477904932750096331937882623869444890280271185514751348805093806630942412118719309239563571702437603108701118406107193268206166673107657888882512181190440319216784229939815666202658605125142818566696797744623259361537730120605745237462526014958194377518709225941127788797050940181746259902511996813826202618825887752811608385661055017860481736517043500085164512771963961975704183565193588370875082036230342256960042595283362668468194018151546228906370709140662959794113817038439547616690736953133185214819849314510794659081629567860849417694944868665981268257537903326284251059987659526869074116483067859628319536844605137867594577849704748576917378557750826319794276158681794245598050421371064443847541466108081833766763123621030608624960807038222773349029652347038795528178663428532149629124999984229730528173029795108091337709712920994534805176761712426126199494298297558639937650394712912939691936107377241655902449770168212922532949213209040474427827223593612297898779575488069129010682031455417006565757327665931392914650914764561338019096229675085545710622489734685530016948587729019566153108267258156878329627787407865606030101643704753840717114046228688182145056654282268191608597674148230046018212008147045005733070474478903289193978902146576911935226664115205462927890924200998956726356455114307192554777435003775717626497460670771122144806922532149971117912633439759164456340523671789472124062722862165479071105365399478715637047939140801684800999830274036856565338344570305378100332182556380203730656963910932620059716972667552094311624327903211048643253919130973162405785512528195188461277476799778956823905900272430235862263332715149526271862302157336258110394451009633416206024715545729083166130174559166985940649295143350173197957736058349200503112400636322459796738600619840033596877853785532244347633764406958249137093853384877139726159368532689275490077162071709476323224982219790916630890488227424614115773300428446521988380635019943680507770868020044273660692012855052969503691700427827217614020096172780154714154088550464369747228045252455157294871331475091736179524143473432362331888077148437145780119544989909536584211834358222353231937781512920495728090493889008345496047062503090744598737001070958535612615130470015691014906026450168551180038813554234857662516186796689168667973507799154487673373967253465042884620683537719695028629278124620365633414283527935537308282516411683163336990331904777080325123464455950684573812475358686716129807536868633638915310672184489506498480771520544010257524899453526258687495990568091036409832530289033447908810639160504581557544421199997030819178097787308272443777318862379410797395890318702083303114917772526584641812042315543459673171064791256900338922548824895830476936979131312638352920679642313183776234218287543107778604719644939067409282305894568857469845513293459928551727571418418160789609082617019999117690102495125449862129345556517094312513342237814534444021969703407462422458012941151590105223016496854634800896964771119369459213150575665073079514804575044226832716436774383739058073354519138536233445083380138767013859819444042886192350040233013982710008860177937718998124808031067631503022640275439581659404272764745525549893005174750203133282239532874284243910704749638077693582198299808336409237445450444757979624609597148254134021357578748857536624521639488664566516059392295189425667139444377790001605645848080175003512064604280036620173467254579190229938143891294241147370391438976836974345464853857681965283226499029163072468888180067404810647733795269704014637934294825438431635641800479303749370042926802203757085486952805170959598455851068206037162257784729102079920520397174900174307007098620873642315619107961344124126871054982145219743891956594706091410049307556580832846935319401315720043477890858980624134604971101439817891392728483881147229971947805716797600211935350315498900474553434029185003020623726985482021641201932489868450047446999167013806714097232988109188353690278226944266949992750912543055702636452202554806905233507129445960851650921769071104373663820907614655507923449984240938152388718695307022073086617618243111923130508353735906472289638897003579304246108245234529177966264561721599832615004796044741170029351981110642096434006734139949969081345125553370688907269519075163002860284861251342504563087756921780106163197672071427024470710947872700088488966051104658487937188026440550437734889990267189810512660535135523253272375881855914743046987934345422773345558134599151020426974700319936911650874809608042191502016545099107352117849281059780505345897538473470645931621504516032971485012171974058510079699250961463274538623181160274969713814202961331238244843769040753680543512875249997821012597570261084220286468203399801376977770011820234456432216135552345881669206948776326401076189280928932187805196655036015417595581360851178680555107553726764437071246244203532587013593600569576293676570154281518905441152069254493199056483358367153980350091736513681373343831094981764956751987627354709641692986070271934095468538715035970794942829455491810484562337965936662029415090360699117748164295696006914136493002182667302138988722409343814018113827975165382225950703015231047706904395602106886857586971367820477672221559592215571582619959261630229961605842311758129175336199539721570617473999317368720434337570972709584694247334026019935930021902087908897337581188166263474897735435741257118217569291350928577194442040149993170431985727951460418247288272799462101902800141039613552193877442627903535034565967291596913840770467545066783253572200452313287643246166805280453690465375995643367361018465724949877335773975910416498372938083154933353415525283962201845232671107202386054670586310849996485945942599285903236265637850131273436183522131691828339371880858135120165606490016249232893432346537831957216746948295807833400468958402331646474917728248582572321838385444559490420542143679523163445558467660568682939171194021819788895924427227548806819138873237419515130851757819186914317418368665878755597975515606635826680473703952861966564108851661072194201806401472891616351848143634013197423272620909188298532028867460804052179940334711563065236902106558242473044117485107606071395367295905361607760188341260237474489018863728938698122664476119899624464701328827908892529986370241095380868242508492016739469086869110681281110495582341209493802683080904392945910086963665511148796384324764347112059908961025886198553939627611807041743154437196359155414484405194339562443313203915556707910649460190817806473463696858908409431829432661214800379724436399226736771015989304410668950687360291802581972010024263191290555995376994091446208837702310223718071788184733753086375980285476106601280349811267866890915454204923101295909759919843961846455684923466709669343305806521382931204014421388565554919946303907996615183137012847952933321248094667980273893913642714186085984523645910356393801120341922514669071765286589353332172687474324240983337482387076648078684390009348394087768045551525676894143135414036320908348031954448458192720624474925165760859314113598920511823047811006470007205702612016050877830884501145925401613087183084589156640207388168658084187359025646209827231507422499470687959204644581560997518905449921383306540771524661671850022920956875672735936379628100903477193340761755910120513619699485088759068015237113160478268866303430070693889580592633330375881900519971165818301598642352842405905399560417426692231438555326432584790452925408575141537766228644476637190928619863667108232446878517613175600325409299387656574839922260291465625686597217905311077940256088392919865482830298210990505155101711012833418531816068915604519177515255144612808077912017280709048160533910942951888379948286073375338150391014084639183117011249826499202719706946028157838953028257842024498653041901250209281806025662430639705449669087022208187911331751960354433007565924707312640117093190784099671662107155077523343914526596545823515141451260936126784696021662856552006128644711689725014782649330742630004593636538982607737919659744076577631578922203331306863306479532970111826856920368410978785321126647296296280579042749972423395148457640786773479887747868116089125751188616171060508812313104975820240774222115185813196788078609237049811882247303706869006093672840191633318296376636687642462371413474672847433756311000210579781383257691710411799400277063423533814915706581562384945018299588271279008881778690766837591048581886103085783230165916476885046035410383707862713194206454313886456545334878303688534111464260192247236802420115389111913119345807765568434071426737136349704898079533452590201103541596871289620680350961611117375890068662855758698024892939343641195091816774731685369987695307367514756019135876295671741023581687416382051321224362878829689653991186647903074938851744140358826022224711796812670514328945825838514862251177332349391270232716751427168260893394270943875657083892351047385820400181980983466228790654416288429283989585442003492396978931338668792633426998554346307959051093336065136851171573001099298336125794325950367827685053475222018765559283266865652510882485875259125927819796087742693842569254794395579905731869723114423115447817018304077749048076362836525612090028357731416610555576986542146263166268134209277561205771384221135685544959159506865865988038623493928652834525709826845269051724166576166060881294275701544428371911079925255235277895666219839083648282530482253731829360787064782571816916571726976437112393552845975967496105974399507071586111195984322954287051989084656831411081191882000154792772724827892001126075538579850272049954812320055811967320737026184679374644478488639288485741052134539929803180661668978467607979096863154235368245041502391544153641424072843462554932453822250482511800123538210595810445394034018468662222762527167562430747908049833448383626295256986572025750428357476304626389171482068368192724120015694175691667999223271072640635306157325662527273104417267356114231796381435276874902898628336716681682454952081127722022410684484384078946800012322306342165211324000683611547708295587486689117710460379058806199732918156258322945171594774863792619567638798429904519874547127463988499150388530082234870902642233817260731790034496758123804498855872321094202968586237990283301410473870057872193545602697254153657756385371666245193086612324895551618414248880641703489619956207937578340873433052355889388078993957798777026473658339489892020596091644181061423683167640607004703506116347097631229433951046225296896417090608269403688844841958749014965383777024415789827931405597115612628238099999217205496681125692806777084237807061241764848848392132553637297979426129798592733954261176898064882241519894926415800507355831175847520018670248535531844074706456730205856261714058015067558105912079197622990643766849117512987124946399559350926432050078019130829966209643250327225245799576045251668318468229696497752166530099685165644013200120587525320798878864412931169553838479780699561170778286712692726461552336732432295121133826193089990352848501748436578218218411480214979252123683574961035605596473626823634568777296912471954202212459046336812318712358331807502269652182668555458190193586013982120150292539939072353489565246551848723702204186470431135568175858638106214084054529034105007922252618234449597569025136873480728030242477226212933660966403864229217631472762029447276314586014575616326746061362613736567166507943189679795586168356890654751095981962711012184307159944161727839427678706084074589160558879880305041228336079441945262546980818540403675043064807458977483411686781813936791570372812658467738943927666925772329719516027227042227219523317988148801489665632924384168971369058098136815418377815292345759812220796880551323805339840635796327835003279974188283898150826431526769427837872656663893893328395856382200431639640962177296849172040981913050171842734727753998876592003808378417684602445460786825896926286327896442710135726123098365795979848292271630161854919254857917584571080873713307331788205472237569375433738784838690368760597154751826591416136122204832500888741288102503888537586712968115153331856619038106432146413387137935012268570952360596940650827226769558620697292134725254123387408407643585208194328799293030417555308075378892981914247392209284813505457134409474130174152484276528072305415918970907278504761460839374367852466841720492565377259543338442572361988881955225434711746524194890307577513933022562357253406778489260087976787016521371987160949554808730913054346027768638745124457579952204212874339267234537798037007849508076626384036970322761226073624871674209426494965395951029775184023251736690112531885360280583742654508628821643601326797052024004273366170510473193193420555628082946774023099617409960239059403442303920024505003572514779400773367205024194974431798537536930298301782963694665815323009432309424399814385295615625789464154797973834946149115918006896452518756098465744413395998954630137747380093329253175816055561103999647782826309207744847966187164963838935414930323668136789121215278743622487721546398041032548754318814088597506600482341223100351724852538837342151618588310634068255354647764718410008552078943355436590196237700239412730409648473475840622745424681190480542320073712627487979356411550571859652430789102127484382419616325926662413747421525068752073102310647543395054217192045002244033813899968340503018009294268480594356334638771528020571235285761608613547089633025742548765735027713318934191871143697685318153860264930569682776921872547006323849416397652914317207659317540062114412697456192919333172801357283913450809686760701888651338524258575729702712826901754053502643140611319055745401606727392496190847319370526306895407556185876541282557494067239235033652995523298056371597057661351333179994162417968151599003488861903759059215189605955700420484120035533705311883219158177874020106623036087007148572897573935831525111332094552888250115464521469613533278012409408924219774342117505484101202963964347316583659018685598831167378577387223036106421939150519533899280115082363112704853357128841096729466445230974803666048442688326734165559270334402513139214870822344322467911207655360544028857345757694850996513135877537031185685405522171033351580758410395363180496014655025969408534137614980725026141697495071316481798418890669029423139545072509892646773239216298340169902525259388499386243158971564560336790868364522540456900670122346317064699106384523009350352412812820642021787023820410416417123412524076413652820966115690047230240537987528951849364809335636011392559510004586549668605799469105125298402263618511537034305082125062047506653014769048624417480406080361451923375588532774539740062065340421571916238571793496573759326287145636780473283657683381375541227374673614778295155724433581026993318600352849694070798738264690924987887470842126254829018791281314108371708887668826494739796165582618414468285399321818917471172369691177997990152450662094484934222266380941795554439942923233472996964552113172162746652899985501490918158468906080716771421758047073525716598676811205282483559199693211651643284136636442220404614381854933402076873568481663599978786750712546449764644812019344716051476977950226364135163629901710754441616829737655302941569584136843072752674806578818509333141550325720798874851603572046926673489187052257554501295913866246849183272884516107383467108057870510227268231686663352797915264655445150810593040069636325887775186236503728706194652652292917127868367774678800245867195535662513666029431747131725355804378462611620876355465566443909126344766395803295395539234320851005228774166067966191933129389928323007529356458470870766233732546791406263979374556922915620884488818701381760221034557715473000299082163148176660813261431823005413722795913271355045826561672660312330986302603234741143450725531853394935643556666115627133842209229940565043671460952997117198163395492962718841614303875938778611099743089149736220350788663404795773654049521320106845216017718591294006085834256328244739781271222053513402280831214320240441323936048007188948876084874174939611009007328579279508167542615991698251551898208753788068895304254812089608846801035765034410941765584676390831219477589197211029035384054176835851117764820245004080041565476311513865176692920514527912130380503249717135214435021973565652770563952142878388406515074944489235175897463184779061190189012403484458465405285757983778913333522678626081913445533218015173385343991337904924089163893767904495816680345326932881295248452379819522884016832070149294152966049820656997420895764082408338197405556848527041657042286609201972996251655931221415460918199759159175444509086324539597774891228459656186694754562554600029271969454251175049019898939490201720244720898699909900054366758727840840715287378068085189678347762121281908470807992659023022145661648244586157595417691680631647168612235671600197593538585115400362522180662670933584992989457117632401142718191378477635041595822213747407446367684599709567972385622090574047128207887378918177100777316020739747452559019752340851782575909030405567926931438270894371485410575132439421976733941996577635542657269076413664895845520197684926478009730013935620109057183506259778275233692187795808165356736016909874828446813408064151685026568545574902204419966221718012932405890614822747069950657797043593997535607594834555218713036263752001151114848213715198418255330899394681605922724059262278530643695454438129416634761298663817894048426203364463815927224882806806733331163072709638473021526981018567533088397281021722606446255187393540350467475367155524726097263981143249852390636305993713473490683557185350848912264410635182668899179186694388616471655745123277653849740377285612852418658416116758208391058446620617886518466703526406841949077208940884142569171782039054913532386215886787372817385177358880524311403106506454154293758140062654817214597393218824785531083457268307874617239419172185922837331576200023827157438080834549242868948479999198685001154451726829521566705507269864735019266082541497460291741121423250460035117664595430087026048000880594259205647450828024419380523537937217939867044110791584483745520355845783113351273807492972410540796300315781297847510339919469422090237175722568858544056053569863623281017128568228191935530903448137033381010272345808024309870839956252393999199074679833486783198075484772333456553070365035031139625169240703411474599474529637791491041671122785304093077273291437335897302929300181288593562307366452433483279259376678800630798041555183823121639798939772100492836520288916135036910785095134081290141429319140268628212186218323392673531671892811452836628073931990558793046624234002712918075202509716239300336851164198466154210452422599183443451563965051791467838855706761111584302550115660168091426369573935720947274088679029328980809670558126351578194009386754268270130566509309721004140358896057956398886108406258597532407450200670633415679382114593281771052730970928001595294660148214911032713283494581983074515914839229563819927525014796656366122956874770624671565370748125969989387541064798011242248538053314758636104814961660913818587373582318006069424898844448169934591163879730535898936557221989459919095802145690716857443818369631003126959312588665462065056638620238647189891575963733439251503275067613903492705735024816235774810212039985296005451949070097071829695488080940610230095531745055554254075442229070875018170649735192566589055913212272792220996496629429885048467777610719698119310809334461347247343006555811240075308475961344238592152765134607052712732804776846627735725328283459102169607791850987051152933069277328799719067727230990500724978423148138223998967910217499882716655867858769379013283760137516592394912273494115350338773557366881680250119424355618798953807113040187977385500565464384636504380620697809808970180424592962582091266111892083434880002592254606082630415860336750130536565810454635162969015048934203960466356404276376110912410792188190885566681820891225205418681311875577080833340653984296791762024548047390313323635222145542840873218157051737376506413154900383044757173814268983393798758223552115428280885857438561102428016180851518229722424304942688407303575875489459769768343193030109562050530524933373271994377690250535774752120855326647273453573798276357059863721230616155983033889604247246156107663194678033030072234662839953247511590287953552731034833237682786454459834470789311071082545304274636454507241575513938646889083664478775531305936076318973886110038663909737335027757475343504360957936851312565144194255608686725208391082515877549361092022386360214052275345039943653998542413084546071739247016753775444306101995308751116888264637045872841075025466226689778362799180707293683686778222818816151945639130327821658426856368674983698808989620004129440010477559303474431265369176004549307954112580019884936286101932787497294239700573088818237797916535217023717614991222185064223528104959008381997073278348715941152315834937665300845034148065907819306589649047895253633318410101588085164607890995705673191546421721053204548131539175349017120509710154007328696743100319192680150072468085653701621537068733803182780372460389737720071338002925601911636610370270451108911305164761769838559745064330441366886025895839592969267091948685525723431476410441454799316981833063739364868774356998680730448528362728351782025572283224348534071493933152780693135818011820028950939277948250938708525639590076005055534389179942917429041618614974890416084767989839262565662732469910462819958302234464513259415672996855990951368326410902282746978651891495255883711841396494544652677853485980766461524514267334111581601060832373679036412647961896437207296070487696393344987294146687671774522545311240383053728414882659753507374481112808947600541671502129411128527116542637670474452434791526323288844199976651028245927755745873585084429634507207333394430188436601534944918155362486277363963856827702502453800429179181308546501729934584313952888321845263469121690667309106407126473781213515095235547212497432850840727533095989681651235117141000901067929062548915680180978113030960761291708030171931863147774003680178106089004262841416709496725683806616200636952289525457672686318800774546955734424207178343090352800627404570581504632449189460248949250911716614157972413595764656575080800247786386713909227259374949864994904035789871958808468400595485453661290936774576494484963739467037635924692235070593345250147449280531775776884416516527686869913567802527644777488227218496696520001937749312017009457893412639519390490424188921427121906381423409740878341935404024478286212526193908970070014297996004991488859365817271672393487186672946008036531808434426788437886075912471380655447095962186553939905903738353632781896795175881029214254633687457481415418114097161287758559622554955263221392552747885525589616730730866298342510188756064543287877402646865299996151962416276032421305486354318814776171327667234540843212442660950813123471513844364245845400693360876437384779727825048066975106854402530127568553609073785433344491892358438687424946395480711441068749848384704875165737030714300565410313574196261835258814387936563765598139972852851767691694445726224353680753194471498009197196635242022300363111751353342949673418450108481778270215128314182651061779509718355963520655959193940145569545207573889710576372433005701918492949216956854961294917381318899997741462928768724754741895595562413505459181296419851181012926780396035162153611765632112353637031643431639823125886754200500380433440126354978123023501406240811104257830857764024360423994744063638756729111089879829017445749267091285022932916698468388561290747016810441688105005096193239580060404909088561660431545155335315724593213250926650000267385757581263472041773095866123045277564280749907234878142247565100872809175625896225243948586012166699205919405236540329528042279080638915442050036417465295503315747571546196805066001806877175530920386295335613896838778095824243777392301488038480030918365988300767151355963538097950019388150727848362079099904051254441340423335069762866602659638018049072695835647626702973017920591460655213414940034000585420682150378013331825754653716110751567056209503944732329979407709808823668366673053936213813913803431251821368190230545086783700936306928114301337921070189175222133123353339869640880927604038065186815378199881748985852133728437949300767784496007458158501436057999256849809480458475215798803266292387094592204476418390146164694845530082220768775003561241004150115235072244293031974021855031658437286335399289852836944454317358535847921529647634632281104957913984473466385013980964336353411018177490366720267981845474253315547374550522740363393646904707036184752365967012384639019896779244913872411700081663931464216145382192659646908184258322421243522692376881337591672582862568750162900561562938362621542809249247090042475222297041891164870425044947748457872080544811051412369907681089668945943762267663130142624602812642673083590745633304294261169216250011286243351150256778123198871429304161595640412474686477070776167813150383553312140334586793567321991654818416201865887654893307048143708416200601755605746367651026467411897925545113763222234400014608586084253784556057844034119534715989335751916989563552791952590476167615685890698546733906963820065801882937613625377969051985723395717332041672362026682138295510496841102530692486291565558492675729612825330576659517710082237397132367104024484725117715326141801882770536642839254933655788334315192272342382530934301905568781266759774300478829761348902861821266899394938340714799584732645577314283171530283080472650711796050864574452513127419883366319607302083262875212564519366233146995035965056624896129684969119850482765545444922157553466409537229949272237765269959729770442703780099707526896524752358482145766944310950948735382968572983500383275813582743593480848791824879851424635118026861081924202800192019902666465745232058501588222326314389647952325636562753236246414290687959553473054024960872773031425151260684365416903433806381961771422920530274518106735037114129767576505269772326643062414780240318914327717768318095703513053324588076763126885668200482676136725803236565155593795597355814933897739939625772390746140983479462665405989517459716831901536360250079588960277463726429685979509102234662613715715089726470176074389051913743863669645195438815402311866134475102278258323971276845030085254548305155225386391403581363132627640435989378067599435656521957834031863834870910799782135876502007966268107794723341666742908206397787789658854498841738449150152062085168687522257605577087855101739314666226856892707719512798874969101725004290439040514966340435257615485854741966076378502469018156549149487371544732379061978472182183150734646069711115937279695759608756809520547480054046784626198217688354897547947687516073434162559441702058170887666796264606548773921471149385953081435567826336283696358831383632559693856910532257264670577274694791842663502898644801627980391723688778605526327429790027334975640717546406471226326002435228661438070257690439280906846164721814520329620190604808482461820395472506868603405492479044470097378885632971077112396722271270611441884535210465725261838651854990698718927891716791789275604913453469628545555050454828111149226923633564217110528958926741127600673173075541884158486091195035345352927590379095423723894486655349692003229505309043128900266679930554413677668187406773564785320914646509997955057908382578463042464012365646732916108340652482139116877726896257941049881936986147945076707448600325536053474345061704819186607142446744434182877698766054753035181180421526447935053249172256659387372324888365614529802185391558639376985029060346663676338280194735093579045537098766546850763822818964725412369982596174654061762761516785075050109522992066311254482193479229372268980607704527261904368101262456653055593545812445936097100693578979726693922057882833435097180990739122544408545919231196811330421179189223094450605701639888711372000710047836947370231991350160251634312136266667847224996742092278966127603004249532846144761770551870070643262386913805605825608273536853533931807432508974267700046194921342828588161618794667191941625322347242341453703237810170263559153247540149800467451662979025471760647260001380732284199987253235899914538344818079999341753911999310648162244269117347548882191626136921024025366705881577519090067064278072886654594822615363648581963301503533627062618715435799271683585523955511072504776098139905294840298877615326989934946510057718179208422838528367525133819553105128131096232060615201694453125684687575902768822969875231124282157830214748038862124436011895719056288364543101786121024896884401135977407164913115035308754198473602874247339221592926556198824409336640469250284084283034472654590102721378052319629251071590100595736128156266669755180594383541998722385354875699022698504759999044401308880767593633522454291427044878661210163336206565140308987014689660211959285292150466275885410415465440122564617732022341460525924265775881583360035485885691039894056883188817823705218319711455856284023953025044809112840609978271639528887270825302181410241022180799940087116048907272889019966620529210477494009556871531237592692619157684140450732197517719053447974912134723847480870405259690018443039584778216430424379453742635160629270145497622992555003811704551698763590523363957072152215627981204666263168681761381699400269263370754895550504858862407563984929020720082601826632123643735579060944441869963844640347954322869824955576561119747558708121458540590940201578995851284122677851397294322628684980708987862030222325894379473239026184400576192862144686344876763580597109410347171553559046911847253820496508824564004370385570986982162788550888306098779061516112467183839728953149872170658576018315843294390803983273215300347795698314975493423604897169402769469275847577522053934225247012211707278524950808676485007417183252786971713980944940982771749117534361647523429381738149102373922288648984181535264303855538564322049960879107230646550750421079821972233544616732239854317748094513313024393404928175218991825123906006552526691303734282608832782525255893315738646724016067573717558952697646845990794836888148022041399117583009788128088888045561334027749624053780249014707584505077301121889318013221247362735966435557844428486772771291319687103138113862205324615974063625583423451316917208964828738608716226193534670858107784728037955662478915508187255483252602629535502338078246855755690186207161127604193810477908385039886208576629637612904993631141713374973011053622069083875883946508547881286463814820135681525591842567173484209151548631742572595995574752708126145771975277961218324942500036470820454463992410217689469393310414819839284598176189739281116702379174256545410468089484340121893013974742574255061932251168158650725044372017611625125468935038391462131024487483959675464202611142154607270221199969101709083449684981018456185096447394629053777861421574933305399009177678885487949139795002717062868311585048512660762777795208107520839059549345538913000735108092927582830916136628278654842703711317656183934874464640885292114730064943597899811121547166918181908547359754242883229285708564786250179409370944015645154570710332177418502177651146542450460754796937209705035048781803413818055227316309741794736743167117208189956296563763919712136857470239076107753676533890923056991812800616565700761184743964302686291949595046779621983362153160723122862675835336689761633006701900600870137589939689529915368845413067450777450546427446767515713296158695333115852048882521586139713988121281306133193435412382476376400509967561656898576246097165057127005069721008769335994740277778104507378834823884443917785294286619023218742759113734439472403415886888436962554141051984024482616399715729389282325501990921886374764285844090217329013806111345219806130261365722601045254650879940654792533611290877410049127072690801067160962465527424890484831648846977267926449811149107689869351783042499935964397181348983979533063440730722249458443021515653991571802130147432855302478175380667932779454011798264476157682356798345080708259309169960969601026331110049486069694600185008047489122797269353819223994140484974154848747193063039319404810073860894668545508742940518666791734735354255371850063047767632979380896324222615558395429116309470545271603063678333840497148603290693043592430319813025544430029891024991806265217315009627225006386336902630512321222328305490644871886512564861398833115893179511743098964848392646380596204496000467575773941714417365514848425076599981881832527248310855208543588193551401796514337138327669489518846268374910927547771602814217467067773798347665585919298568126254893093266454654491256472328019755623071846708996711140411239681143254455835300656263805100555899766051989484647198175280901743718879048738151403538704648627017729768528153729120922340218068477241376729716846001258925531389319731440283835398859209145546327203864286487519528806538738658623350009557700358136076218576442852595938463281566474871005737250309872474186795511797062403346484219202448466132675872537397018578218368433839490327533194782969585468906714519313202796212307174348027265382558427573418484057095249750292537807455271628595065233997430611406014962505342708227332904414283313778579006337138709611978409500145503959059346043955193812638287049202439052042289676019645793857794342262946736535575283769179232139853508325854875457529857132931073264272806978034212231517648828971609206632664686534676445831083865292771273905721031390173384905840884732391856998471523552874594359405575326308349900508796531316129228254855293084444828513907661031295655626659889605617521072442600530561279004109362320550938026564348320886141190534032814318462489713473000119079904792894637743899591632363514087149095954711017218837512820400524695356725952383908934762817576824704844462350830357679299586805104688100327279103277096958033770652015359504878433809308887579440935688879868338184657679766964540757615438628048858956059598860983731879723555959054986209311351597235917822980325626100698081308108442954657948135022891559083020092590526038276837258528600358197218608105851826974703874883275210208207560240229069664793260106883324318306681652743831410482266369798921923930813595308924979154991483635738417632420794093707140637563449288761794968457729699524286560725017887282373139174761802414474886629334800388490919224326810811534354694598241446955465105256780378726951757178638290424745007796015183904988055455846171687707907207706508053202561116012857541871593203856698385021406052030391699212148204019619821585131422140790786311498943464787689908188925063628555131397771347760626361385575941406583152068256492711185562693420279580050049016413395603766412188655092681682691415598576631783863491290370220201438023906133671782185251631472999351613656344391454407538591189762192162571785081729004222510269330358934204076721805673349802932521457514936935354683702371460022466274780725674450127191716549373244095606117485724804800145249934292382436971204888100238549878666804566958629175760205650170461542701107754511970038308466127693467028552698987248035522917683070620323427460032058702321536942540060045045784512130634569939993100434548456084636519438722649950939971072781634011383622354533837764749048408052977374159863575952036086650549085638738937003219804527056724925082928063245315990143124241402157424573461854212829602948670224632890204487151643345757368041956825467167205692475700648512081736167766141221924537589703769427614021308179338380251286755672840718750796939540606694004994098129819625107424242724098808052145409343317349567938538753193996579120759879110388431325180220096785459528847132061221005017386314272009688541168732963443162301316000657771316136396008505389629822591131664015107111415067576572353005015474699418032711572180560098085733487257147437754943835120370998034222443111318742175040168474237198080511384821033326182591561728684762164496631009948739328943121738094061509017004924580794257651189354545084132367963782899737407940004538591477185413867209858088563214674669768614063486830429218376003260917619832076858217164987947881399148832210713986925561556694993279047753805653462201932961847898462497610013417426969652892342339981747775742941376266462582372557774098378816725911609557762207823209825372420914454617711610097192843417159660835903120082484977038879356439944677061698028468375907547172885382820262951884884300126068367771605480880199594143937521526399204303008591308486141883980428134432859253991741613280938828667650772730515577907269259363787469874526318505803663586834308121085803484680356491569785404303357239098074271227166781780187466406948283972578431988382426156678321751486055625238363741397918587643914843288793481496454314596378294583378522137408679423930572298906774759052468144868015600175463389881514189109745320115685038478117850640416461476579678601453797157296066975417219214003098888970827322340513689830527395220653204015364439808701350806240554818052502008754358671163306398320633233294682821606790978491181185158329586509560505446533413362183535665110944235521394320932110754747207062666050729987961348020858962071220403603094917542508900013766561511645175100391436120757439462926966225851373857884369304410424950646714084890925517894009992590444752276918950399174249994050061842313444131413674781510917042782715118853322064397963543732400728097037839556446596245096127377238775942069044823255473172728969220749547940582883910152070383399713257685926327223249039470170644111142221975108874566671369417890062624626835843940356697460398578236354068384392477339530974557531772703131352752464407598515569178459981356197218559001326116585398343734821740477858142587642805966259575127264492337229982888266677234815184590524380449808142309744317441751266042189124137887212071157817472231484757891810347559901715507257045202325998333383410934246111229699695150835237001621470044672467463507366607509183406197436908218015672332219771406957156359554589729724980440604800608207450316257100223991212570181593429574938795931197149668062165805582677636346565890760100520985439765585170069254403950439274816587416860939457083370764953279621589840388388473433912811322140127070719365458787974920604179354517961290226943415156357304462363616027196683520963598535893282803714039184692630100684884702841895201716526821737367241459618110106747903989241939581235108597856340379184954392476829902230363504486646396401870854235014887842797635366932216773880456694252387783074177683239143345686791295585040009547378568216093824727395031876454851983676823869420141355034633050209993561713901221212844940810326535845254312200395623960418588446175077319956465259595153535310969913802042379851874713146604674634579889579553946637301078780250783774220166955421488091958657788525219282798335693141288333118045520602755640282432430365010867190218974420243745880528322920491860723483622577650092461492996817694324184504951031858256069254292575066089841696449488613312221108278382706583912495026478537389724770668466592885149374096793526132193138299343337112514240376323973603764490467696544173069906374962335576442196215697477496057488446303098172678100658778200319866746865690447929752523871362727386174991557229868843050428953236665019651024928560285566746345486248217284965788934002314338131398934354534497370919979199674229714471764471540118380869912590974826295869702614896932835928815115338514778892760772509142192620181305735266368963256358555008212023533888614590895722226581121689174053858952038091393944685472029397840612112345876679398394484801716497912363454605767201757944860657187021548861356659159559575360965171487548468369286760438893777147319087865903142473420162871106543712638708610159096570329484073572609352567548051825551430663997458682389528971036953841846826032316502044566651413973142623128183479285327579405885181794802248304157348039016663599496018187486025336954363201243547482008638825796478616486969818117759443758649705259959223592777799578807756510834645139567764730564042741634946815739360273365596859926213104299550401418919530374997585378141509464294595995300679760208308592276549379502059924349335641221873010430712599095367478215841353641727971010047465287849831303965077043537351555618245004727342600506864402628575213978941875624785578631729124070430068869638020431281332989525220975409720260126605793210083746550579324298548309057544484273641312398549091647920310393894916237221135274942801699005699153157232539804907650837526351127933328518935936249273652858838648528443565261976043905818288653475747637459275923436690250317090571987325001465054589684078202283117167400361193857417534195968379801304396246627805306061261597814506473106555611804225013628907091610982920532982049984136430240237122449114125493060086800905115654946799078520002353608923975990958234945454550799223948643015379714218673082730064545062278831285422001272292290577420526221415046037995463908360816242646416880453927284279068034403054418072309958040656134392525552201412345493347250661536052406461806586176519368509556577281621143626161708236976939053078072067130424708837394836363882754635340637800102317278793591194100583609735787191473052887853985652149204751799079106731401557032499152409513124126053990361578352020181452074483330075020299573368051652728441035133447185246608102958258263581743296748583239584864697099816909321662870649018268137886485871785604014700506336719202514195256504451906965817577594369685089844831307603478656516248848756432839499177143907711797546439951687781063298426370618517056709019877251098546649109845250615839066973975920474855058716863274595117356208406445522559210621341988863837620635935783541550017778582078017062809467676462490755669953360469590546291837374576236688742335949288576915101222003726863538530569281121336923661870241597844549930410954552816298212188184207729269683240355614154294652009363903512214949238488043075476429505481575018042270882151133268968424971342704238998816322774894568360069195901732342209572605324165103061915704908032118118911389601542069421161928495546430738168675413462459158887060254077231673504435696305370336007100195359042732283867927673390876584315004968823145530743578922229733576463238643263018083329095635614228776095610155883873900754415839508084405559341007415198163944611514333404470055366963473310874010847709451676956732832287607270495147012965598323860433737313013659881757122344849881012927991949770233765450781323819994913870525915671440198503315800671360742944329202046985897107263729648226268363356386911770026043119714191988409117697059810624878069523557428290883541379855326363288686487460593383780401424747301093308178657431926828229918331318390243120332732902249726921956542174404923337847022117086486201016057159640061330381380020176343964509947467905775587774320683103678183383655886344348922543802277571504685999940971986252378598784924634551358377707263926837391338699385699248687532016116261449017825168900252595753900062990233702748593039841033905205476859050223678830716542943168417731732508163561630925271099279326836332884759934820346752335825049576096055786245801007208519933727196530109655600362586435076610295462079304454936212792183344961834617142471913818365629170533717913515748148822832764214450788482854835499308979437899375807694026092417999587962008840167667391301836711063642552996667122646931849210833075064196704946100274259027770110588977298653064928293669208065586534570672173041081835700121193260485888217472826272066113666145208237114124144385695739495020518261692106780881898635362020360274967317149943785520503638999765688168015457513488033247565782033517866567891461096445855106415759352474022628411807982857693581919249659639238804273598185210274761636445560556482004590486606349156169548613266974065089826158837495748825472956051286733404330624294793141893228356954736368781668080693715393035053633601270578382999858859657392751472181427836056527196425989273303545588655214317913652829960166770685927240139262276702489590097206371098211132681778360597465083576431245001891099786438582615417026401251121320036676972786437408151484249717659731705249532607034774923402102930651136411753403982106952786274749652898171409007258311671383532272555711914870361241045690886708419924584705745631523218788129396155347929427138701322439944573792190994718227755503767268816135612712059031417298715481466370697262650492256691098785158109259832194831495277241877193225040757820631659133783723273984489304896902168010753747811560417029432828559485532833564740426078871626243256347901836566623111283929471842548917303517452269922647143964851166132138503955928903839326505983356381309738976050971415288147330590316063148112553631835914709636282371526871765833422580906811608082071274554815126947372375618139849287102299382058795543904733024147626183679949891708802055239420964945028782430049277761811160429960230401050367351778147505237617904430004209348147692786311424518782972556646538391651659109197770214687180610053719714978266778548735338558734164373366226620573835852053339480179662082453870002257185013604290201638091687120594644778647536192749746862352270065471851273392022423310415917654928096162928250254203133676832143582534349206644010131317054492409904831374741097268017784063509270213686835870776015312955631395449182543546151982262205633566517945875331500352845244310249132435639603874321128187304614914087070559362973571109621846450484781765548925257154839815399902614542529982259104977590374079601756809052717584131116173497003458084786480392191494858256401355204320480747898330876753499435009475241123027989566469297810440203457097027141229520797153420775342977819760297018370803104349140441956236510732499092405946742169124368073028402122743862701272839973976898517945253571207715247669975484448056163183065730840819275032098513979393663805909674433863383852704851209404943706642822576917394075243846482716539115701084235731432147914728924141552499734256222283154813662926168352281606331482779619959508953205191208069473198942052616157877328975022474617617394615446802173430888265179509573545596196185985301005066506394902577379873631152341004121071370522133881649353298868523318455613591964430599045263628369032956722321008177437496630385821153875282535140825050006325862434188657290931711651492222269243159939430684365154537778516719165183842440543918555530914499622928954131460188054941227393755743022920259306581373040237944272156142647561202867881062441869001785791168749772716288202155722135473358954437360085935610920041653266245908284047770976075822062846762071800779241015111758705659460445020319318654325800095640069421727369801654421954425891725670756410710380930296595690013450979693265199794740039933366325379575637399702535224100196129952901690026098502570473282745251160692960214937096125051850816824294893309888584308072160653635173525959666361213106127754852573744422870867463373079003808597044051876854430851438539078703691879270096374594233999638054181882360430409622044089770976281928777361728150159934950627355297733232434250720113624704362520933955604855733658875587612437560530665582591929345129235693664629901412926002294580713996241180327740369379600145331832440650991028750077756785948288429135966712112257930919971831786145975137718695662458470078461374293043563515593854866493382177773180888424756386806009432331713617504484894371179683680701580216625822804348341600210449390765817330220621815803470970182892443671603914024541546839586722706753661595057305454278917997679079623395533927634593535288539661683859078580476591600362596652716901031448556106624347007793755802243011037310968884723500977224590868693237614052771793786410422897910583760283871258768389067847590654362763659106414977189292846092706679323371715599586274661433034529632043435879936940226005381191106963270731480263425303311103978984208207690497354301790727997110749716352634903901170688427996507740415592850299427166950193012214862013545420011618487591670620445811861167691895150758613405776973567787787040294105139637111162773693752109287351807061100073906134334710189496589398239589869858186185702607646017013786092842725808948569299027517106113280678372106884256856699147858450547347927391484754720434717778044045586694225409916194078747766491650250928296129020775379664568211787157203864782819508233105473886394977730401493889124457111714607091025374953381988179345221757181502947712200911678677015938080013635569174745092160287386017568335043474927795506914005689863580306532913479297555871844286464834324458298250860412786081258706062512478346987123879474768643346154175792424684089982018270069931351521592215946709700936128424835238934609307541985792114633497568076647201708933918924619650596345142296219099335901687139999379272542954537726383637766095709016492148560367951507841434612606678544219348705155179597944669673421671694932311008818487636124099427570868058799901993730186641581306336435581926154151884869455046440408862949709659039400901191539178716222058060747367416001940255261805414954850517707861362390671488813008104300452952308090011064117554516852649989529355865015916314694648960017462632262762242314565458782266810691788878034771982332950343874081657754004708885304868899248997205333827423760486422188882182250294676405034888989331004807198476200306585270225361528985359487845622529803655921535090803624797840993419529264088326664222831077795222994086235606840534580381587347434219196792907390458232499514808760817194917606344668885141730478089506671292024847530613094314602974110630708318377297378254270734535737587994731535721938327724784380640520401315179470743327120794993768101887370709157666131818595492353425788380694649462379856563889984378475975413541759896566449699061204181828115928709734301247348426191323152783241061041500793649039249855752771474198216274813169756367409597164294411625007463749353268802441226089651352239132638724268992672042884282406012232153573120324537362392647464961632727034596933148948195338417630212839289519632749951012130012015420743924747168203456816261894927739866731206692278187545615126421718436505802923320990213201041582838082054567488829690215137013209491221147827027118828856375566287318055327034920154863937289866576138898067064178650166697482957734950906608936499086161414758082928851549623993612093142920165147375738345722854593298267343760406324533026455008240221813578932522691392687121100166504909215606714481000569464766729868197236704918370479098590980090797570578235269724651165132951931445749307248660934113097045639162647158244093460326065011043397530857383898063984069112286679373607758705777712624527969484451755662000398443528082682357121940094604273701131671275047892191289552363725795839219506532527457360453000904792331714354222324535445328504645054567574877215781194787093497669571113443281574976465077248276740384782843022332336246391551688672173615569988051643953362920516455538453731398244071048342939880855254292535764129967175426286406987882574489783797460606721873618517752936385804537625535919853095608649616991028069168793320357486456380810690764518292432750020304161367372693123859308955283959966934731523169170403117055140009868744783877760518908570295719214070514673196943150642150620093232654877326811927182935625528907292900797607032115307764445447955381700129457736449445345153795304319943737770167077139613055778848566502235187714853593281716013595338078666756219197558846491025202964130124221143066848976271766465550966115028070567998973471824040631197824132274664766338579558944325498104420599221717930334682473145816590681992734984900886011076695163690203911621358111689461881453694872232278005879465558244538146332763082405788423416514444572817233237342299130957337067639292843147545624745788178160487466351425167509693763894447227865158581435990785873567217100070734327264531775832382662147107665907295753920756221812699149767300252844605714243738776833757748879551782963786931012234826734236906470882725180359541317971368165052807341831276911577058736138184792974076734445626928990197531016414655697781800172504804282375568123485383556956511163913929788102493178731897933968754818589758222072278819191855697190980792261045131313031741367886591874381728557931616361761012944389396098019784411656257637819768812421677670914244805836639974120922022700469772281015704810703165206264819804157292468783694595165441912529152415453267997355401073358060202919352387836950044347095837464408634574418523385683516150617131063229814547719772164942805382554345408373603593122103203727248713667714362232976146288269499486809604401196663676556547765079818636822434075780650208449504375940599218112749721403442558469326721186267668696006969237107271314204012917121544153872794238615149304603561001960472077001860306547198567243752275611476662118269873460415754399303944200362926564715843863354079913657491284740906416435186079814801417821728350555955031802605587711079314983327447942295195982521436698445261226929226050844695436201198502141115210779774760408793970370679285595196456195107889587968215992082276321791471859309782185787241136834862098295903771216562264391307089177309415165531860318297027480306901053885855642724102264022980240816768513375141392805700957182780038277148980671641890881852162310957242910575528456166028159188820834926722484393197516298475662940350232698248970584181986528386671463418139198088929173398572412525985664652056449091436057530788613552043802755319004343058677418681057792071419280452453253983321524272836984452409919290456873083709761401420681186077089070765321000732136395579498199417469898668995703630514215252950937496697313093873715921245332869783085816461606537603369561566854922801388542161597250977643703913997723274524741709636580405244367408409008577378678198071973885585299751749011920175237561948157013590543729909249967587942201234508455495572083247128905289837418569283026397389439735190863544412280868448724152960879172835496906591864505716444320411417104774999480481504661224329700576768404024403459728144543024976237723278461946276112035853481185010718912192730147042164563836395924306834185652899669807059247275455903916623710538661812473073524501563048024861964945681273696287724681197087110477854491414803416916416558574368491101279620588000180371349534520495311147485467817738323295662682393770139294742368987698097522676416990260716911535902644072270581901628880863976860265464613730434593554969326230536137790676854063635752090016035013542638839538578814092852675775541176219180723567305131730956942981235894258310616449147702081959736809949406805607982759239129992509152651126965763178549862581545238011261532377830090799189443431871356310058142485968356125071660742903953626149154923308982637808738860671259495637175090510114655509471885180747289900531615073355920337840320516219470469573528589863234203000499814549478087231162229394642320719486193332229108382797060679204542225887809166721007624872883377691432639184966379704720855297881517984919320418172687425693368279868949623860199308675461216167567730683327946317483468889069147966462272862135239866872307297014472572896387573561301952495079246172506581341144058490339325926998162069314830212939695981141069386071104063663766935184351457069369620443188657751821147091933510384918855588218807689143594991805274935582966010033316944944081172916743447337309618716317777212578108159955659021346538477234605142399453063649617866759534014556447250693712588077304991752594255884072583803487548452146379619470392019873828730166162435597441536022904028671309773266824573692397428768628684058609859767198895915666885326259002505728509893161764823291242948670516053351227768734911184534411188753154893661029299008590455908637745583614680069845886241853292666463691544098611527665024218773014389109668327416160754903708551251940167984451484566865436151058426019705119651036327367120614046752938797329297729860690186453729927220265135921821606949306714641049101164740115403336954999581586847810010312534279655705604334252963000417734310840562631467520573604034646833345864662656866435089873378965757777812385852840957784233083303104098678936543114833406512849453378740593069876527191910434026075615588828233153317130177625685552678141504399571881202111255816868638137264308922135661527266278865927693917377787758132419497934263493228343680104129728446715451226940415468162408016125045593184359130535841520706861755990557199016955242524407627571050763677262626148637412523280548080931773843206539156527804341717380515584706998455426940679926718829361970793476413309089089468648456769403814213929887936270030604838613315430353796674462578987865634293501357934053325254811172109368301797891903047896761332142945821610793146831813621888617493978375661737679757891745266911394573043611950568298802626671197740962834276245121228797534411407110842429398314502801895276432354374675741488673722496805665892437618745699579142395956123219620495502018771823666846380596365646031547904972324539233729408452593402940364080479863654039717075195600404433642479277122040968939797337424788042006512788099428336986866014809438124827165214427259348750331988006031418645371170818691325825693834689079932884636354527570688643158474747892041963225818341549768804320774766652146982145243802959468645877212587566126809766769892530102344854873544934117580330358666665294143350955950829026757797316219392120217604036506836295096405969770691387671941567236014392075460537659892650794039527292635571111996142599566025120295347842000081999234012371616335734932249924607004850117776484968157041538941287303441985617707881211451542424129670769975501025859213859855341946820748593537667260402378698427905288362428984786185903226342032257784221281718732887943569122253168031548014986434918909359776038931259033128882169501709614658345802002521003820387736945198904991724911788918874727444536693632735145977554939680405550727533208602342718623576135410869789435122792625778465808599681655797821047599415364339072722305552689974122717422713705521263322715431188141709136229931159658249920205802547226805058867359605278686115679076255789381543406013965152916010381186917235823895641064907231899268064995994586060265351636494229351605952899374801559045740462089854341304663729257694098479008182919851344455155307348478486602751771939078921725205719223522907783694301829888604047474795288153955890905725685392607756359164943777020767380834492475403509344746733109022776838752138863500943958908920759309866437100597830796889607519362430885462092576364299503360170123085041136439987989702583019843197912319991854399783723671189790360833722769718643840489931723944772289212116769513559249468321499062976870182294082941162224399394799256364946310947200660317854152877406530754623146671642197654889990887932085404543405481346582467003960550217092188119068780951995574982601675079029626532538963778610974132472554351975694204081466824535078337000549238504585987180979908671611605489708407301829517620319913875665832055747956310632298493361836512798561680493743067808229435561400780357172855028059563942115575258299942323520982521205854787390912331713185355959317629291987733083427232795248804992030710428293494892629911549241570851359242734381363686417524218466717928632550991279569893044744380795927443706613964955357955424370260044125176369923551387441360227472309589296405739845001220293881068692944104490987021607774471128445217017627620814264293936043310132775045990213069189762327728834136311678092581180521419208788265730367308547339479510835537887182861138164720876332645302920859377956747719009737697305308843018526887710431851661456106783882036864075281966559197770003143268495113024876118755224660768250280955265089778175509125081722679350358507144517724603316072114402650460021765458015406142210699080233869108585119541325091836364266155592284537462455717961582183012159093648786601925301963052019647923964090887180171659804241359514755813376161672036410943403144902222984163569660977902231781127462804558014074438293434818588772450585914292915766978059076021671110250759974765386799045444968499149471098552290635954077624351672261086837750395646159151979337150113102464118497103274084167772526312874424083484003598363428247945980731601801135762787709737038190174249451109018549409814004920538202596381729892217908035418099700716706773849519168993570929165470397211512904982242568024981496885377980798244536821294263357929471922960410008310403660953154894309970133039282675609098505975501603729443530662848579685439020947213886708170365312570465486549945280906896684527956909921202673757769749584763461799177387647891806656837135534981528755362517534982251877929397372515084452024077908126315448915195103303336657680838104006536208351353879856893364449395988734927884345912123694169649691690416855569622495340595230306162815585253171301269833900989832228738941068865779131551567655558833896834553029478181330003166666252816550893049583116401430925027285628448305394655112966247395271523384928880993276976800397580613659990771315833674365460267033474763860778570863851952943464629167173738707220539675006758630587354110788539208064793525135539572316819829693157660696167510361399411421921160090491998083136221218985894212718074400903294491977102817657809960442306297178143961315893008849755101005875362934592926399060392914806752523744142003364011443877946439266221852589816198917969652241332604288102484250693990601023002273825970781150072053919127411530177045799242628494193064029242082648798742392625383621143914951633853858595504500556492567197178211256001803757968197441982342878903788746484880284902985116138272818493272901282093479279947351463160969554325052627013952064993819816588503271663860841926301551635962911601691528310163562216166294447705750080646690781158741761856250036560498308828391060212623157621575628856023206724682400571016300935997399706946953889526430103214781882249702961002104039967049865227235620947685630785828761403143910929620377704649161626547424077358533687888266703172022380249407020866166315607350862537783720729206342222292695936067024354916040470585444779646608369154267454095010030873767479590227811061861896070354854053437645217282028357575387026962483059733009282527940594473027554337304574881852978318530984444856615432840123030790637025268597861295399036374733722757632502335534758174478047755053754581852776903272242311484093820193258438586445197429985831272130085437510667769885905693171108398614394314720711931885638434560319241221274426554543193756393585701196992705976897797164953584798790589799447762658186378732669973024223841225750086008758155101441445818529621822609427952982335568632834797627386728626431947882907327764876630875693359564713929777177197805354942832743681701199774281202886970210542955431021440255888597000239073937768685326255629322129883634771014463237293821498033303517117465487566589631348038873635322726482621983762081215448461556104285843228741874213134883727132948217133387237365377428930086481868876217303025249879325737442409974801185072710758261337777636686477925245715605708487256883984458842206369462322503096068038997608318463823174076259308517417143150110521100380919853930094792776472667322457988271595717713531171036066883065171801736238469606421638483296800437728772108170031196188051308829114071497601017021825451687919545638333823845936731780023818180897724403712458204822903666214187473228387217560104376699491538232240625968616856792661068683445339627011681986237263241061062866149890600649003901159690077652369528069911039128004076178066240355843952950971031973764285913206401831045941085856519343358602078538829956395346183641151609091447955423718557655945947216969963386175189828608988788365769574764507738323394609872837925908894699738530421200900308746919242434280832908398892780494106291979636662627703723991644832458886977900852525443740837956227344453269057502314969522556163765705502804956793934377354593303987380243274107847381071098846992538571679850135182024957743308491478563178923258315985124076916742191848498172366190839838062936117762484135457650531875610209719543898009966053277710876048519684295677796771674708068346390286559584530176948456832198557566362578923976072309967433687662572108673537847020953010662377567981056363892022486069626172548033167068059733382869135489691747074467902261433626498697487534025515612287103847510797465352596945298418138124772018645685674987041491155326245065806900390430339740932235963484909033310851175446062629464541123286661690602330416013226924243712988164341567086005704830626063972058673872366635497021088768304854201638354709178070167697710415970725958321744941522017392587513715919812859230483690133100435703819757657417116041633626661950288764205933308720987125599833333566266695433502097955763502623087660712215788844377752651038713538237340832205991274227699234198891793966338402617033703139038216245219317638651974456381116904760518326524948212848607135440580364670370520222384775425161953062645238401795991881931628420127654876178679602808177885516545265098417469995802866616664465464471803748415135632121914865451271979429785604400116606974935696289196656340099432009062180825992510063242177371305454372031479069600973333020192531143074374633013257925285903535969428535918687709617621610932186664849009533470919567274376041605077398049621269101957578918058167611085660929387084224080870793412601443992092306096529576239606019190287474274301784753338701897373813789588125539594381969131511831012031533096865670509911093168297882839921472220213374790190882087645173766574281658372986823331173670726367094767464383479766546999546193528939605923800318482375695025656744098033648860334511783772271732323842702556053876199895251871919798671547367881277802934708523710655421296827437909099126070912404726067118940567735106487980595655531250807545563183173978651725080345539802203844775594957694236227807778404567043050217031827114572105871908041392360319988008400218960207607066863502568530416191995811074206059069799114548374668066749635521602273956226121622514291121261962324051329687963785386550801589100459979906028506578855490445939898049643278629231353992569446143718195151085609995991625887718396218210605086642505355831514217036937615620113028836328635812106205267811711891312829882822663360655361931410932360813085474402323962388451298973074028699822733843752754394768527401899904309234270434851325200625582273494313725099362358248301554671690879272066504696864612394613734227464863740182554773765934493178469746101061521105012537022446208586268521021699698839515424161746955222392658782974104084040058635623548530528556963863576011324776139891159653688738064212112872131264973934203958116382009895785194748819134936686980425677402559801968178030437367563056844083875536197533768220462701785738705543665138708603850282193269781648811003942703111784253566066335431710426488362987547397993273388395685273597002908281053324331811245398333956851076919697116494563372574503974991742388961091169327043357826847185743047667971930509918130860027886037579015378304350871337824874209593317728299788013347010035396053599645622578978441622254771788655271251703882020879764644712951304038369951291927944139368718462061837697194084644105793629437045123690283385526080375717454625422094983289302647266799155841262131539374383959430490235263053157037838788671297880995036790878087897202856007217185060880605787822966730603644681713132564460000624216882151335489103958536237286530760092353277826621996353343398999883143905478063121398902458951812749675006121741057329331860971221274266713934818963940798699177865425989136336931890977575139886556854740716538113661925082058149921345664013628649129789848049276322596221755228078402956748793234167978566135391188369426405341541016302830375558674899342115091096207966967872014101375601098497758671630613683265711079365267648868097931345529405942000139495782030930930728168759392196360225873911816481610068444473830980094029081440945419929274553222076511685225528826066979810782259886261010199433988721937494200134811362926310134502994240030827545422030781788821233966930066473378919976176861866643210037917252824398268798331286764018770606265136751209657342392153139994130764505739521416956161382049184372413096241821199890792844047082235291659281214240889154041241811996020229230406019464107474916908838615907265958841345376766532450439379558788450566040112495271165198745038441792083205336675897282383964024217787927741863008680559382853244908279239093748532525363664909797529635544750385246257309186110686338542444793545157270140885730068793073550472475341435602041200027347643617457334102792427781667626775960873626772295808052040846802051256746053460573892571680945833141652703121733132287062638397758826084590077942208209780452353703424422360971626579117950762869708495742483716134089718371981331767512870365773285161028119685985987900945605727546469136056018619674304987539870286446019018806294065343639745414613348085348613780166529847049934468917615402997726363915348310111613404232354419765260531603683914507679091727999664733124301723024627442377498998234043524034828522898009771285814697894753269169725483971127282319652360796220739989014309892911955147962647006686552958155129333996734750373139792277702525024384189402162943444083567887087742825193364387499504721393278565568910217475864635089314882839976029582047726245157309084325259306145313150674682442960335882162010208170780214190491258629331763461398703438278946214153796663870543496525770377161899622708208367498379382215594542615510031242640251652722227551382344336514224962285342466802979028124090473591892929041887784827151289960497290889339621153403104937602115658903782067515531324635793733072101504606660487277486668665132357463196951310502204830712530854628448214287584190327203598170200179500925473142794674791391125312393979166724380129870519505753511452030283592926054179777752179584573051545125500640234619385471529456140613620202730628126855194495773662733400867171534858969930374162560378028245989630832107733983428484978645467031057990674877785377086822539595693517166375484742708011869742609520469166448727670844941862369973904952042265369980034531158780729391887869004203405962151527582393680897413161513921871155823528758484220031785114465010702600238588245108696987290964126749317868458402669883102816842952778096366415285134610019041349989902870326637829917577511587799918150144945378312308059766513463559572186724705710397987935584302624839038777966120023271241091097448229102303555029227921801226474229193128130520683916175321506101129254813310322024634254784573914212235160518680149980120163643834435024046571633997593683873802183498983826140184148064416263024854316524216993014253507894789514458010245354994993314877406748436252517551955135462463441141916920469508424776244821324030518630579732381169647127992222905588150953243995878887844135124127653464612159732624355861603124573642068427800636580784405331120327852581788481704897150228787021590816734477022103828114109745980626308179025252172954308796776194509163699102487887620316340520043615966957702842611317924974683196072666486601880761956583046190192473652616346447567581620359030332536450514363448545312674892717915643301128242842596040826580086183016464544658125957725772412915517240473897369746884820321741671637284135450102999722368604966452806807423235272637220144390840064189337960600521279138350049788940749206697289239378658461378684319218910112611270785697473136252158822298502024779691281072497503348829300887387444920562417785931613445925171873605819152019697865828698612686495193045394307963428876656289301164515047227481243418762682686123694690372713436760989766564964832054935826520388196530480264793631404575315825912839758906856701180328428898692212128203617914178951851578091558370469712333610881695373377818407684908065726599454742722109769576402132588921341427950295058021592348021549960817258533396158017261473983024691072938299602332210056690778000179925583601567960810121911057754614552101978463521487574016290363902978569477063550889122651433549658336880734575091979292111893014356879114739790627319339847008435025941720833438412137662916806032402014283888723265941279009840865000102778852761670237648747661721321748678698722343983960393828381665476078227712898690913543126032476649682139457317104112901690390571057260960779610362113938247119020218840115371600010949107713039130480510498139095934420566890018180067328641561559831002839618537797885519117414621712301783965051638274647808996588169020575720314341606082263854717851503278557517198835657006124165062624706665736725391834156388718742423096387630516609597350446795732458075584247644046603230516299647097950185283902598012615042158501199302023381162840130012494533551679946340269206920898727415162416278877251053862718198509611497977331758695286391807326469884441360722163664155110457313557197445714337585319072696502469161907333529548631735651090021382559534359658973780322185412845370952610617510027238595528260772412754300490845964871337401825057839949385697180069364551395213810333642832876668303812255747753502098209352305801361758941955807247473255986886043366074224607820871115023109236539835987451351954783939564110213809462739563366225764129933759696130411568457324791772660552356713308764535076930696482876028602040193777086411470711990534449785243505429200276831802310316618122398326000653361058521619877642946805422917589287362572136189327660166757753662724847005065659248458209491249186580747623698474631965757143529155351505347949715087711905373796613125865759754601148595529642484862551280226852073588878133905868066334579214959608060082248508383076218995049058431073757105309541107787529504286451332636324309023653100990798605228137625660567837534442531753683680182103337750622512022576215307311672769381078922722774194695907470283244791504149751530412471851950260066576801326115379544899497372874282409418960731620427871012570816948246277931653203511203245539575038963793139508740427558841901602266914257765568727654497053894726377989413112601520568392388304307036702212824473429960099840661773154628628992874418210664368120522366558525122388803327095617915931878204704576635071850980245071993532448306694233313675923566132329472294984323573302863419240072213554504387640807092145338439653520537676280727168697250407905809890320915608663415128232127293167602756546952362848334331265762798979702237398290555586058847483592950613541141030601987088077147135528953681272329424715885133825707493003979194473759282668793752655889084586199650478601223476790410732342828561867861365594759328574196760428920310503794099230547456085097847089205375565766432045201039128324290136732546349146753784810065703944920414830500505723293171691208609173163877772623488014705558846571972495514348463783323130067456134041619652828356485132958533611017057827018368126193136961380157525220428009207785467225544009259421118698489898179278056202120723807092201671139908933182440382399205982393580061042692547092409837364225078757074010605729778938767923671953470747694467963942808942805450100655146601651852317153581668756321784262341532758391850061845998985779997589268258624085917624159965687334195783553880467833869118847746983607038813651631318439510865289728458316041644136196695078395436695939665620170527291075189087813319449001186086818624643718487082716872598391638216561318171646524335162784702967918124119491966840034944501795308489523391124448521983523455510261199611254676916279837993635384683716295946277977992620375176766046452861791973569824920013038823867041938331357137455767059664548788063223000180536312503460696962150788338417742324688921652279568325035151594702436096525035939355800483124739211103046089443678951240271607804134657793149760921309251619308460686420431832348831259816989677346901658360785934176328171473039720928782077186848153852551578488285031957881354388256915800105103079790262304726338253473907078095651508600992372223064162454798644221489044173408827345144757225675506285965007293433290501623703539276696760277893303012091088606600408958243063777958232425975279802155209980107417305900411283041948402174550335107003974461723594735708363481677682263943800301018330189751633910027923400062419782714152021483199503357629396734667234907748806398409833626827647454093600789050499500603623357983860819493528227849525772084107550658318554202482477559420832962685593466627634784939900363162898871040339982346960748331660856878601833793514590164429008312860078692709857505920715123334178867091360911174884212829262326106497153251416755573792987839824714462212545439201124265676589526216160993454876190553360935271611016703644800936268936668156453343283521984496388290706944575726753787288261039210507904110740630329615517704707082182573032118623659242271658356838944930374672669968043343557995553793438329466553303346574742965136699505368553696737340802409761453532170703593570689022227141069808924544073491771221634907165052460148477747272590155574563361313395746511219685475641542917578441922414388844698214806563147578886133714352520786697612188526723961913083436562009655803311689588275145284057995705027843212988726104170367440218908078003842416874198899813792603612599224138373897226147398886196602155181866003002722092877608239331445157863207665501473260654290673840100290182792515735141757180749330932652778608077119789481370088934617480587549362915565254901038427768783793821123808533086806182417323379552322995076409327632185261334940671780293722677792193040735896788653624506442801459332882892755399583733462815213789148682518625298528108580836627232974317894773632957901260757507810541127035850005718107497576380831031356122141189337937024565988342869178230870689757192116672060248979040493223956621000425641480724574977370429501230717086234811514735613668577932773949392294064040741412824717759105361972300628629355247894583749344203746574932569320092034626863864626382842332837429574242154794158759300935385767333365923687246294109455067134486229473621368064823120997762986210067582896311562314763857031646765169713618875847414411297236331659508355828275683445871032038588077068781232213089158610688662690496573870852182761098992915764286854095346431511940744028012234534277827129355864171076020398827167062719303366712347521014084108724792640216284018680693781564788364014124212558163810546488943095594918751269479708489675871362725900060749923379413582273321252049390930272209685952464979087464493558554649514475072305538359592581143621777239730740441031370128372405830008818331401882370834441123032247804172292773742910174245631680181942716422890608181469873226245546252115270062583624204856283312165792389670580070437468064966464894489965922142869451228183512506014430756454950218677935712706298634953997738366393334839523641687975917349672893443758566057613860698438605395156475400347081273493818213998651602153078263822630815311763176377826743104148533597934553283903422423232708358788397198671589778562520782518240100579154794490233812542513026422546706893120506361366136864539036307832447457815066735457195665942114090187983299343674355271367733465581660653103096763532016191153976705465211319562283923619325047985136815370434577614046413938207095333099205174481733738730751794759776927440538398551437217227907204632342613297779259586928582774001069698739031272294230188080533887089400900176828097873709589260398107142475186366618632255660689850804843303995801979368001715245192521231550084673329211442726755341471123289700755544664525843774900496045572697631635128403589036002819006413433816459841814714354812539703162662393034946574915008510961423438341484414499007665151166848442119109624458431446372305766746232359487585891328588607456326514375141548176651623089823274500368822184871828866434720620184001473780866204833824333830587597203020752656684299165836986359357361789535536330494348395663295864147034147023007489009870031947436569291149591652720235766872114684289755602029703021258147929983024686987783275583098433382174041474946443176822195652645543285143670004607813951151913364876441862884388940783588089294323155995929463592253590265664081797159488547695258939460102958562653576063905952612882548469902485990401903318104024063414517715285693115984740440611895644662035193864182229153281249746171267553082719595634905707162957670267736245336361690533210869303858831502176101554026226607703854375637566408891873404058903203755816392497943230827911825220719553284191286886532861142753728251823831270547449368628845606683469447183602647496311785617261456983935438416963971665388032202492158822241487391213021117182874666516102169915815110503607792496620078242501834958766645252990646228960709586427860932871679486342714056253804508003595897754137575713037816763871483112446610194340963052545708622214041159235108166848761380733032588377436535783042193559890996590399443694598839343796329709298417332395802631372217788397868053257675665986754584038740445119655607815593247289547026749797743493689179450292500038106802545702390809916771314316185718864054133387974951109578463745669879216146027817595598383180321958808391032670615592920106829189290612811358689974991464490075398017471324782161941811906915707686450112620755517194193783729932445600430382494861951529114035514030264263322848433258557824845658234757189506811377561040808858055221090142390241367442508750382619059868617682260982474428018223366703016444175266657891209321702284606735082380901634790209012598673683090583752231210290917404351789262229426505651256402866270016967869460579277142413119639314363236054248554625042157505131829828620914946738996780862922354034793306295939886899971559845576649360750476067727674113805861301061222079843408828490358640789780962321342661237365269612112066341849965779600774038843436565796694884216463545725767157403963265614260411884415809280250248843220817539010686666680290947277137776074491910044519093427099022026938200254559209194231003059948790940054192197660268327023092413073865306137844501987783134782043178665697183036882491567836285794688792399330872705223346586454388616618026032770522287791330305261699857285017794574706097111031914357017000963728696830435009697150096196384347420681685303964209846532573079138207134337294944722413714521175260546323112689712512519709115104754547424218869210075397214338672501831429814899281682723793970968072782722566495418909300152412871803742940510901522613714415906403058447247265893307165984822971993814207735835886240002485421247368616373697361039354989565394614941649059031688359145496834107108073915872783663712337300654962351820403387504247830313855090178154053561664203260046034081650971636764523222846117814972572280974949733903932989524352916527346154041384676071761037450007817285630515901491148694119929515591625941715462868698971454250173456271368943670721968317386077768898865548251642552979525843644417446897922282440521569257340178240526774911954394798444706053073768362922913046617986661771639437815768244882547280219625854217470682351388223113784295824888190833079271591017225374311322547809704907422840401564422327405106286723628379056100149003407464679601027374925888662073192891690296495009664922595904640811055457222170772112034383615905200951037112113209390603432306399853860795228231902597052795505745144355578438159357517389796116745942185371311916418484150138045919002766527365725759617955663280841702801794350712819412948868596052187269209995949238319849478310635525296303536125996187241599183385978684391656434328891601379107967542976539733362932897919480880733197748890060518902902779561479760544143728569660306463584446136286017170013708548056051734516498711818247331801569892225005126125116896038799961902486525370097628810648672886317444757873221023430587280640523478378590225265413711060422577060000252896469097852970744938091452448865343977137450293162396372773773782561221944113139455761451000738069944838978411543763473180305991329277523430809982544892391893689920764270423056307136733398736769426821825653328198939798704389974563475307546556475989507389019883971197114625696795035210945750180479021111252591274043830780692912281660767144524455917897462841387543271620133117907143558751878465974408647735605137161168111230802578338177269990693243448347130320527149374151721735725227520650584164796150199914060249561736888940208364839477559721917505569857389387490329418436866290277265118778619598981851456340487020294157829887427866173546576811706329755049455930895470272793164116046827294244948023675210501472259681622706282868967486564774312952697846768748752675759600139047771698092652083569250597085849832837474824473761277129677304386159916188175654715465721461340326561426671980236033679886424700666881081777218796463668364665494333169870628419740401329913650454424490345416221263472253412618938031270627440962630094747256764172350475838476618167298007987427376696457656579798812358462876742489675393700541430037511723037871943076109162833491174652423803447871109833450542060986412304718608804276957208225369581651201163192598087226732477855490680069969996884896937418134378439561380767386609607675498021183552339808263212794494199007658606333147324380855887952461698259942172486872023221885350743011526852986937846230488165627835411104458560053409445000454364914435118763187499088161590643946832615951972301481686932761471260660934232504003258803679526068901661223968444984862327816929023208599091117910267702898178936453686866150950776695186895578069370122772076206931860973671951858742603694308936187933905127805723952786685854282873068865613435747991260260434123167369367823701832068148725527405557820577746272433265159261334130812212093103754080375846659345543110452167837705353679552508776338310961731537636279423765044380318300043814167869177466142161833418512618518237646694638549834622030460779432147376460489951110483566019787841538806746290962224873087875611522700816225451205663227418964630945455667677915172332431886921795373621923092262309628545656509961228955841295779128252969997666719780950046290379061316955254050936098884588949564238080231497009006981692241054563841925807361215666992333891386722626448372015492476670772394574165622389762728331948720929999795984414562038461276436853777679033027038998358565175067835444088330904190425015316239713699878136954492699357342060564711153906344225525470462790927525949626525244714499595204670234184650422737650727660446927744449001274575592768842380457611021297353233047610089119439970364194503340845843802070362406345137094668805351735059902171603435242121401990240482717275812268410655496279613891397168704224344412722600649787818373841762611719292077957668914951034333421412441192472029677926631289981300706580854868599947911346131316108041531542533308467768403445533537361433503756023780970853968414999343636106659550944799021440455440753858618751436750309210188935445030431881552202035291850261552152521765848509535544865728346795906932020363613977392918446217728919321664426792228113425526482779905286743067364258862481493762872661147052898015952132405630228282745475046811014138210373261844503464339646059709540771897230838808860219395122743161642581944015205432402911381266770631166712946445471260004729567543831155839513227186300153316871567804759691775705333888518584939869731988345143266719644806396838645190463982877765349502200161413805904035873044472945147464636099562230683701660731907595290188687173044758773365251515276695780345985250158595486527614593892797247477270809557220444475193130335364885535903416672728734156574702659372211306914094197682888341442901497829696816234974322293675924359814018929080364354861131926981236937922949344570645579534890729093018624285373090893462501840324351789699495793097371365440928378932209992317143277670999024733806736784078312875029445813828155431114526092594071218721903660514690181723301247898177150777649311310248803206659920855169625297079108114680175437517344664547108180483008799037393524805343793511377882591346759736334571533066246030105009948838894104632408537770823893131924106232906281777580777757420641869684683640499788782992316971332168536552458918139143959772136422440243526795492435101903943554350325464686196926965675505407371395818933290495502025863943625794597283734071363616349543448327318380842855937304324899014200330543195888906156925635338332331397786676594575878096523970624622604121578146732837861717471538286217224069059177140365672018265805739712596192924172021146750816494897065054738905321302670531756053209798843995799110812722949767270109325923241811651171863286412831812930731190534776349156883402629815792813044847719068406977468620418806083140798605062468117951598763293025950251945168147171883587162755211651766751187428888764908930331388384233570992705400565769617220414507612288328057444281127105934531031536117575928612332276925008288985611921481901554874252491709632972113148116244086069747722553235032049662787629504879000338224515300030459331225433675972791618423947165852635426111718104073595676390394854657165640385832539660312085058081539400292291056785398205364789806204892309001640626475328277631310739225379458495207181147895300741484536555954017195933261048471667472665901701413343707246868439575810515790566812434692997398456442659701312672486112561319655768672092544887012118623490541727881647419414181821001690563200218302397832070092343123263136635573397136153556850339872870173526963174536932372588052339468690665609410004231654021899566979790220412407858608695688392120248572408347752074499484926185202499270470162972159391867809474232915530865052364212095296098560788579846932659906908387408715775276793022950963787390990293921331014677906271770335191122268200770581830229289200946993404143320714426282422515725990027875635812624665128201692710335188027472409530314698892567525772961880525785684023775259867234415132818995083865419416581000482412479468597662963860822631722151823468148245041079485194723787113834017466506404883476083731371006685827727945576763277901554033063062161745855548258641363439823418028822433428237611656927970053096697877445556474732127954578469959779003513231011310377892634054971133424015622881159914766699393028358075679273774141335435762992103887122016853976131594848759709162570853225787101221431523267481153050025148762743940874476099295227577398635831423940310822212459397230513191721319934776546321099980902271803670796481470570340633454926540645370463961430927113423193207065582289083459349939892704173301414798064647422493190876389927670709107727601890289564823585234564539340545185558563478045466867615261293024421234460203768194949818068479181109196454492707788931963506333465321814588138560316460821972034592712321490733707769112633841090835396405418783331166397650503453448958177734981043037632059025593354367525411382163997406856211632926146732471774951769538267202541385758276663468140696964310111077384382019654394873201358193403593220008101747849669324259399736469070855794372099586035314134762721550409346598256467966926732885095681119031895911530327518906818480550941785863213811202413283474585943223336418210501689078967371011748129982465645224013505287664661196663331155573004149195836576189654369345338835265333117275221969447568344413946432795954466267689180478336916869082238933524465975154898315743855963690632800770782767602427560755503060613725902517855887674145038867370136317706680203868937283851685254679361380895232200991130879708828056814463811926069772765987368391635491446204416417876857079649588964521488493406124282362981380569430718939877734207437931536381533105633019159098641879952815223320786314878636271716641023056923727670183542441955990585765056287012324809072263553053941266876471276952723937716247711429380160762139444997333076418183144984825839901731578541536364837425925660953521438369868834699188611992237082595923795555664748427312256222511577604319343522993649103504859021733002264273620056287266092510205304163938332535381264071113306593337592387300731696628906075167363686510749590587681516931339183086038683937766781314094312749834871392795940256205223540397645255257455242142475493222306623938682572298898186319237184949249210466206395247570285530453635042795927750086853161277098522302916227094219006372354281229872148693330363999420355193342250857362512310751803753078894100068358318127790282031692782061674520591450652239169296370336277290665959236198610399281706156338523472842742040864497540285263190898396902632389907945695255344708523603434592386289056266211586373626105839665975073188434504907804001362357406208135257392038597788053487350484259611273805331615100244452659316122833694214842375096475907220872823234970741578378461402916118713298408950796340698239182864825436382457952097983923776243322492091762378652438165236662555828028347374582835381686160331576871030142785010096450329348430103220535185754952875936433712725948235011825055553544184800461840191964097169276179623999235617271929580939570217348095052579231546896157536185347971094188759310320700090246845338874586399571453187002481009067125788288614982453541516693950390943225792947734959714588852208432103543860132668433816402909081693893765289441230335622238216142039037858432778975362749989436115558780693136402248501708361695241583420965190085045545035230075076049867005840843640045638418593620335111469697178557395252655334089720587406844634291807680831779650626019669466141034687515988402023208595344044856154515934367260223795344260694598731692703130871029447205150623545050318955625948740885361804761028680534358010811267496602111178929545448547066363026816111464298664168240157763287407662495006114399352334034768977344310911529133632801404398974921108442059618423133977772551882015088696268113883125335395637015820111332331847111939690245205367209616555615740736342492121054750156314611024277623372046058605288373274281857645519214303843273768309215824135649075276125775905584282198044237302426605644271079782266858701195812384869862066539992123709116632405378890902423684472732688408829541164799388510207052189231490012288017716050991972330181934347185631599044220521413953452276245726756002492089913656719916519533721529416244996928381309286554965352547451005897518161108400621294964593259394948918615692786372876002258199139760222145652290729022216621196217552072117718358266993457153726015950808902431130314496690766539632329277507141592087959718318145201890262285924842708945477204991982507038561942766316179310601153454783126843424246350011149024005133334890394328110947823256382461659721596647751615323075774779423052937854183151508318609122035349193640848848754343699293204468311266937211880502056016231663493594573124491446908654391058940833380506944423343186276545386600260629839593137158968052970072064397237931685167640844241287016065385738645234994189995281446618841559031362622112247545841718393619522473516324906295695771200638531601390111091357816372632487588598208249429118303446686418367625433812388229662327506579212424037458119508301734798380718449105324747913871412674360367139401295086239076911930302245195794517501266384097919872145355174378937232671191148748579618562019616841922244461153429760024166479351917910272996537469873393106645273200913430993628685749593329953002084071726538513821628282458326934032954448231614892732119109961738057402419106255933021108813256373009791160736180636811233234605847510146989494066092366784440336653218072317984446449018485423147430806285692777179503264082729134274703326782684101296620414015506979220223176816163860297773288325433441019609314491378596062693083959111454563138091535679357942606332577565639982788272688149909903172423977604363688649986114133387386643779059057548811485221808999137534593969938439989863737541730828553047285585183551243094619156934633469183595495348724556363395056127565071188574210597027698065068705056889828389528366122045174726220635848822436859344087047614544604023024296093543613057402433873163421808487771953814753208685910667127275538675062653096042066068150970154413764847741050905428991942221113402729390645897613362454722905975932889768542551403193836477489325353710256942587259426539154729230759669905590808901584938665267039209727745257551219589039468398093304577787562149348810677541348852795323629909441094026376126734045425596527009798289206528870103111028883453018068112003641303110695562239819729469198548803225880318706650190939017929231893224546044729067669637415643769121214085547152382081744200927954706758276521725001909599578128495817501575053616957722298584637881420278550845940126446287742895377204470734083002085272580158272251717923675307929792538328337124201796462239456179009719288912542754633113590023775478023290205306422311983350303506204655684068913072279651839966738627039347553720054346650203268778479018214565806613688053159001945175527365371599554400917442556508905502733110249919209672034922951901848889593208854020829351175041671056792828478179987802280210507316975593720142704540057795898222206964051676999908999561013392904844043805397146656461636983665244793020276391556705510038366256631981460576426587998329823452357061236437409465327029275077490892010178643286154427037637915013947976493436051473158234057044077680098991118059961844900822645294087710205282208474331591643524192411338684996262832075898135177215223234192723032005368169249910943363094247996776065446553392909208645947513898987184320370277215442175775711144111255889173070223426310153569615450907894700266825540504137139299011730297220425352666578612069542736616631554858534782181576273592461212189026952561202751882517507778249372136249782150783088029288929169495173106248336008350042244405974929534025153388704329739668489288896312979220713118479178301326561635102987037936567815326555555676955839751361489500837993189265337593519976937146445351462534199589662613809946576667316710512357647456412779388901976955994224887877606599247793612611026628866710078416023947573382422444882678962165692890140865932236570496966125326449979438537424195853746479343931253493791058971652197582246209364663178454172873214553158903921111176738448539630405099090184605379037118311163551870341094533950683943740256808397581920506172186416018763308654503381059524662916583652073963550327703239329174475021009676911002236867042604185958610113917897574189257082974583492357399213230652798610903741289097430950661504493062172837056962881251662274302031095727192547462966534703318584307410717171982562108217111527623316867427506209082033356718041294851236870386035432522321386663850995705306845119515865737539158637525425495481984195294283856780467201044940515344084998238168107236638365226058367744048240501434557874552631471645639714170554290158257751867136022938673067456439556086369171788686360099740962870445354308511610880198451526247285419749584973967776542143666012781531033616805607660077575475748099403434676546001710686262396213348347005412506906059637175094843368267255541420602226125630876902194178167902952120358641160848331793125701588090394771649109288651865849187058479685257834076317869238738555690156372403568620765787064745829933678815657391292314421158728039856238462446060627220593954109520198437710342915902234385511535001535475259323038746018289163213759685448169777749447241545815387545927019440785487671136823889208201792757051361484000132923567533317978742730111134348813600255151703257165079649612911464682174449898909332905907980515340241581476940036697421288656023954083374640972532219566686754922256624036539090157292912677338159415946246179222636122242745101706638152094885128813970364469770817258091242493640698745155984913547876478175350737853396530610041820384059165805341015940545690048686056983969515328301018128398051405728097223279803853319024113461589755844027699862598044613622148869667460334739657392422206622567779351872657182609847368309299773967496946035478387284554985267483659619068959331952930302847674197642173925743541554206545951842301410957314615892906465229493692512232815448740141539567948743355026338959386771394702104922110085710817584534801531884766401738387077705625122857038107124668344660822288640807325750302489983135190431168162992381424996660360505052986056976174415759909785529997745613266820142750802901092115638428919678228803158014421195535048758010880077427480869339189036936062415988287089510823730178665104378408306123309558413633174370358514644480407966020107193862685748476553037986939900192701061375351860390191699202779515038908587235737386335281759448402765771908785019857226530380249371697117214728999665884829747580194756214089539160244696818198910072398863427643599215702375871880975601735128393532255561577023536661889151837228119327126827691157905715000706104374786359055340785031220181092546823124530225921734866469164100056831418524012559476601508997509584137358757943037712689178140995568900209512499420150640629355106541455330794180076652924325809500731565161402912054272823422714656808771415886586562204657882651989875725159110995005894982096264098964355584012972590115009555531466472762105495887801685540792501040703211268313226931179618386119549746157907810554808726489938004923432807966636973196441443591169257186310944646284179426671806148591629227445610817566933811889711990249765473120685470052985644623424315301317050654664912795646796359128986942200468527828942508294063979697398372207527081480379204492223227720139254313202538941354076146683080972565426228737849053775592110507140921127566282756162042602296527133920298276561083289281842140101550957359303332628628025947591889183142303230202998833013099136790508900094581094850787555972680036478105099509834310491181584270588850788392629535014892361437119244713146172099188530878753117602517727535349638884227282594665878777963921860638679421166462624746829074866494785673949357563962786797754510103722621410858685897969232097778561407506636108325555445481309872842485715872549950188005552939421596567550642154246869200785037646023122877506296269496606271969438111212511809305818415186242209285576010066869711156438096042281714472087460230061148282939238901735262181047801123363246314065005756490432789702776262791313243253503197263639848417992293406666542063975760932714911092613951498847335221750793213586488109191377071033864961222230308627582921895169289594586983095894555076776797070473679225525849695876379397665212495427358801173429509389756560259342165913883246522212040112530856439682371873770540837498695922430624370570240329678834088768699113128347565711666161641435393426246623091089308984701603385857779966314416474835900069367097311024361040185382712572722045751489424165536121310442121089124208634828953132813168921184379224948809499196248475892986177927761793114173583695063581099477381148548174193541160711709109470759382104089135584945934922550677157065559542475425280036787204439606534856891785450923381298852204244350044441420141368720504116270761372917103527646015582151509387956852652930130815395909647415993042673169887234758217587186352878481685563142417937698387166582806132143534695891668463059690489650675143883113013560525534151855488214521772425850141602105646978426835176679020412933096534489857815964035888795891127092247781919589994461165427163022060060364137341652882125108136193130824272789112776747135388585758893425070540121875430807657401890285661091153728846799577027106053628940293428595443793150025332329564784845510843233150453669194070100259901889856570014458962286846672774451804113063925831058561574762193428699584505564040366281858671367217300337029466715991117764199752271354060670560712887615423415708998186068597942202521966542912895899755914652779725495564218798455421961613449064386032546953439160556871082968117449311529826535834221955021517594574635725116319884626711576239476261966660185980981235624901142749168715320544064556152969992677428325174229292484940280292529203433358406755168739952343600339846870619567375601447734439559552379768036840023722587842387946828006989090344984521519557524384064006048367808806066691524990709860703989304293801217918730307665793364391237388485344890234571718118719244296105276431683918160356500448601658308335530448599734992731435100287754537620832020573284895604888131510877015085971682313835146892162997343169981650807718424276358395351044184214089559015355416779108563313477466024669157350867662942097437608193328282453152979686144649966765890746030808693103642174868428345174051399048286488898704668479931408472992852053780082201968378130124182155831926091409930983211046346858808013341365584263533591628409096909086805412828325215119318605622638129129358362262196739672943010930339600708582313405122115123053732487558700701548798945402576508403451429397157419523322764092362987624885766150113560155391317015744920174655999241578863425665247029819906506090864857854469695065176547077191830278458105624048818551235917659691428845272901571270186546448140442073638306125917596263569668781272073451141934515111402704290995278023305694443854663329846213795472299265671945161351391407265388975763227028598478699144536031036169323980789300615213146875032295681490087574088792265612000359564763392892637452125941709607011834586296380716040375223336581749552510186154372020502870791240840592526248040514728603658554946066122061839763557224945072878551144255155018088668638595400722986039285709884859551901233914157297944223009389698222842008453273419694946807016107534282807572089394348662376715221630686084214170469792768064078025695937480153349651711077035849813274645769396273584428520795293034354014092182100517674117722038355036764661505924453395950460851861833322116930079358750996800190063082485388257350834144467012162144128935237884387379507006267699741530347840244123677034755045472604159707710571017835710213161518907724790260312881712614781165256324508884455841408417894780783594614402074857016423694442716352637314917821032024740281176768780989785895470271989533810688692753144757470563238916614515279339721370608268865750255845279739873241455340239049609892618570039425346109699398110520256091537627946573345802940842061695903954358801461696002184242873206746499242914618801675113220226399463320416233241462930536692623125536265596680344206585746163010730323580529708511468941116878958214366218472806762244224174291314511295433365119811234500987800322264805739674534795912029789308862710654019325078019499259667241514730083965118037359752663904657384172877697842280525129112162479492873651198859697238396850395407964734772292086752151426759162521841493137496588896321851211247584243931894294629024674265209978095214766956575705174796039325296489092341078023885008123933500256046498258075970785676117654778086513417978678894143229802907531250513937811655710886393493095030980213757404114746572560820095273740970461799916625240465826447209304536004719773211498439181265150238189437764249478245287932363995517452977081363776342926234373497451977804603455650101430954989955972839231948834675694678225697693990809687732800535430512506453941634661242058703441432296341277780309465342881247860184408212960515778277452815586904721450433110367190681470177665870294606794549294961874337232639822303230374077251599470907130658734030758003860080853003616136988943458925646134942869829624963289606329135516685820568433269256181357103165673347915064273190895553320616796543061965124941604262972192600895560150265431775536913939061000900165217227192363652383331966443427800024533917334075354854181036154026985007361497069536683699244999371493698501221828482812381143844802671809349540655657641872186347853030354535420215859730822990002339742338270698402505404227560869091206809972820353106986086121446811028656305181366987625739083589473528196655198569447715587580420683626370278030822060248663872907967365743073638911957830555543208038838038450501834616401225416355545680103704708032992459743835207654004046386042515915890939608012236974418113750640490289845710888190993856400726947895206436645362603749943761183909172723112412963824441202679627474915739506845808057932188807002971144880414422121814235587589650645654976431424231408515186444251676019036779986850476987520588029168600333797141696246174226021676610897863517696893908892554923553511355540273332977031104146879401980654857364495651559421378995951885065325532896984370038515061453510492637967534859722607806991501597089862011441469569444134397839755067885813728270408550127198270362890741304022970985720265163334366449226690575098868565278064272591861059152522401302819095827790095354530869481941959049253172384574396560272477506916378136090572961264223064054740872352441037888158963737330726631887981450238265878799998905447621359472536089700382505286370889602657422350721084962802667077207924256166967806770197621358252185618240818696370363304832573743472851491733294737409970954353511994600338231583944281586814849035477044205463236242659948130809754026592506046848562003728277707003898138915120545426520762921882223442132030592314078731953917641580294472933537941748691013461454862446067242026910921365333197480275100052808600198835915411887748013759726021257837093958348364579607170538351815620141255742769303330486896112472879547201114881846659614054865206324738398580753568627165826041295222284258345521614009530098152697344354860291822163049854296295970144276797821522947188298187285746016088029268865483445181472308605170677859189831233907536823134059184766144247388987847648974447883691952923329126852829168611845084115687073046200594174008880534227269918583308150854518029772763460275795033888280054361651790481625048790275604157034356177594433230612893638227084102313564939666565380387518128187065936285111878479401543845158041240585606643217796573182629307083873696697794732719580521539212042253217535145744380541274127317775550876834610226517060408633111253053077086531749720535785583525464418193603400912349918259303314565638124283846187898789236207719558425419199618366776658453647349186282517706341283748349880626738967562552289372118779637217704017139458232371988625672924839866851453617509467375806824994803670890681789301369591692567908142954605489292502799346121110552376765688944454946153096804389716187004416176610676799530448663249604920116374766009954078233106770231616798051099369733899455395718766008847882898756564693372841249609162415923070915758070086837138075790375291966734236634037424653409192873296469214566639664788933734380485152288634484173865798640498424050983151130275639626023167308080670554012570132883592050404321028120846707672369512760947572664118493400619482953178448919621329442360589912098457218430959003043574115158819962842024356267004842262210672450537707354383053765956006800695962758301560480522004821236135612717784213292004881881831178596164765757939084406486831991410279502900080376192782216397615030250434401794693475222324837106488289082332521974406146007082947151146587536715811241364351064119440051054171443163578878863952787321027058465073529485715046454768038517784225202858687137468393515574326511254968113106399480363957872482993090145862987619837621962619567433084284943368517942014142672890312261959367028294472396172994246471078958041858174877015317124694826570116850328769075294546544318450980235561197375962104182632868171515239137519291840724072808610309276612092096125465026507748723338052197401885229460656355215304783755448788538442989172176910624668194551194697309343311505393148051328188898734595803591187606591495210882307325840523574659469225728867675876350417996897270945216957004730757388387443350078389732782657087852302593839640711151604973750258348219804076827638580912362931340696048858288886285471043669180943766749072050738266279127195649969136605748645839638182930533062730257375976096005122735524011897257690755390580351814490333472978212049471564874481568747852563047675499893816346716368932314226435829177579202010223287725244809185785543205908332505831199092347782847517283839434676405462097166439043258872394128782400418119648997710590671794804963759540745632649616903738933066013888487877404774692532224719640474098408924175822429288656649985838030077373619157813909181782416432915019237539310498019122197271289624394396682053845904951374369550523288333972994495787371837613766742643175624800667708002063134453723727536963623537390266936353604832447870255450732716604436893097942200298185803979704132142475201525957005597621910278402688556570961828160177020361363059324123772318252323228148359975913059730104670359648922464853613972909086801943794266753480648130959689489137061717788035066324229567242986598777689886781800696904231771268503345791444414263809586557851569656810082890111341693264443999947038810776852131546015633435263945358595685922765841906267760837311928864346866289318907984436366437294302514938430228138330531496277309882922607198712281205939037181205342454947206934186731276968950571862679521425986425033251976837497893290359841382896778116905776060085306908442861181499623476544228622457108219822236513405043948816761474053442257976907065378223119902713278789107146992838691337556729899189895705927450094407857073304537686459712517466916392782616466668561219390096818629964154956278109753639255066052528564768203882370651540134642306368245904970132481834913133615157050227658249087571519400744251771336622816905241272282957584338402998104859801914623852673744102715130029246788797563754765204641232755672580716636127705347184823027277064148489302895679145351488934996588786698009615811260406846865984581942176747852238863625828200515052162039417321043063276076618369796063347352345733082237727112297536964727792128186297116440058040637002585064459100002436920501011059799382260172182933499866643137757347997981493285877974116774228734656912177377277223936623333522672497275342076158945667274161719323207494984343168630766765542688418475248056630652367371441401223552124619282312993605236600034418464328034277056606137452038242932042513991084737967524098703299869103067563038058924217433198265905415576291528563684362254368982614480233542168927051583730139464196263975306647167657032423242098649601054642313496641887100864769680789140852807236883760582420371031642876614360478472801021693092374640195617758707278064089799174627092632952439387231426174885979597507793232696302824587433765845670261049791928500330987112403847467217662666321528854371125361857587540697730122953473867219005731355292643664606881361152193269762625584663564811849858664245375562730039581838712012164824458300768057944908480317226830824797012227134173282871320591967490328802528869357371809438059935191217900282604935628826354580110379362583617845638152810018861636548055307416445578670804461254983393767939685890073199232532445298789575727962270202449923711001692293587518430049610614353723990042941705430844828348828838188537470360735445056261227254229571982524795384562910392290172459216405742677911377888449835551307764230914339603969984701563996677443490663722388904997362802401908176099890655677583087799232258951072333015801065852707994229198547948832585750912505841814945343536734042665941872068557049265618552221326906176869240332892294443596192065513672874307683102706073180010020794608364924727168893859765289821871574228466098956339470442695344990989506287695956491197683353201141656332564511492012268673843756752237710438110311772494779119731404845323965510488760768038357523708526975358047157460390819425298676093918029807974760031089156491651894299358449187951649158283893427054397668171715416178809342956735009016754994823662739735939281083388136985609784681940580975757786053804301747803576831708824336961883773297354019618187492845986383982587914512668341809436375856379278763005423022924792961020123653373318099127665609343028041311889289120436945636969986766367252057076659269072606352547044645649390152213711920632483199887724581548764010757576567819857203819909991154566364191950361873265192212425735295731769260807899957062948190545511837179200861415034982593277098351314941032237903896200204754832678278632305773677778723737424608430796994954870469952754165639353719035337645748071168314281947921384887981241270423009841574514065708077092281540571733634252498280866127312489825687924171978153210096363043683574298908912782617328344027416258941206369390974803614849660588949420349712911811013386956772462552616474796933029614169687496933693322183680460700543264856693116997271837947772719558391969768226718435986806314443147822485418165928596095148337391798863276558965164639578880907737324272130745397854044462323772056409442115321269623092679803266909306225633205050374972034555110927687280880190725290980273926099779549112074993610868099622527840271124138041885305378767252023904019927086325975864212057856214832151041874623099142064770438930813664666465651509319051369739046484957451628017045473365516655430623951078772276859120828991630500459082506843767175456968702060704372418913537097647912058640197664957906171730475008024606296587612072395011025605188625033032747225059833202551430310362397384011643246690031723016108606328858894927549775011447292490800183536408017795337285810565341623355528294885746828444857231806366302221315123238076241410766072604448668607266834247398144282570838714213537078044497937860132433233450081824009838467538083203153440610897483513883892593821744194704113560783825137702957819180982777673610999509523774139837149235091940678140183663203801249779563254166836277634527044649058529965246475955759705378358262028422167740885326100500667465556685367944339759582615997441011967314015401206540833376630747995571296791931745287730968595908973153147677046102791030860515807910162648465934221010227906045725832390519851216415929988964714037049354384980242838242270198603392719137514143738970423340159963894715877505493000881110491927878651068742922617861278379470109540247368947155382093826419951512526615062451519271616302525132104566186240736564584102005849510603892617142294741519432209022647279134747261536205381958482919452668602780752602073893703583352101462030761321835428263887583587454231940369090489134510288736292903562903067834513272856005155806162771883241888995733647686023125254335454733909218587233660180269004691784373366965443926937836620153947487869569648597664945610525600481706236504670540807990449006927778225963212174280084572731922681396642109735758551613327339276472288521715552865306132746189218719111021598965080790726218061332220260928049067768884920429922367679198240881348565176942554228241575091352811311505216712163415350521159843906626083535565881224026207651957987483465409880451727641916897856986561376012235672671616958900832208672374536468224915583825321803265342482907990479871909795468854801522460583531696059923900973646740720868562421127291183202019226580807863438602277880947560732983786511251420904350179390741807512767409240637532674699066187755057071392981440029320037953107607485860105729312109566561131390145121371010213346003266863266196434166040442192164972634560735598877773963782213512575646833852787131323766449199490131145528947449257800263181550861926539766773128066235957367091567561178779255137128751181885115618628028092351696194473557135222753731139665939021849689962959950130564451021727913861751921993056563038156353516726163787457503664246945045490889755312422279082021082058828748574121519074503009320693181711203727220767835792146908753931345682880960205747851630139976634000457537674587859902267674642621216898424527805065033638356605267554501337369168966636050542255351976534014075036583001113513628281783207627021368390330667344945737951126519319693092793510980323882818794553762823181720420593025562701897709343146419066388861398447320878251182124364929961243060368687820504793826128891311881449750453428536154643002537687125404217077250072790349923130883657390669799722219919613693170962789707678560042951265188427211697919589622791468854829019396208012164719358721897045005395343278473227314949696686665083203777376900790817089036634190572236086208730925693549895640094980905621547873203630497152247602915455065713022960761750557367433922321989369724979457698702311461007698128586321461323219543138136313266491131896785649322525103120316141971256763941808364266963994797272796087553735884682288153355367056866079794677446255018878225561884729250678289418418852892062868014318052515200560569721245940126034753655571349589260929156077694673146977057019733955734442445112300132170011168760502761215092216352616045322782285080876601964883086176135912987466568203754466973002169382824524841638148937344139763720259285932451559299729106403207523831650640059830270779661883438363027921686686657296663366101362025065563237586580718738196446199511040061490731404474363993115191961405516006498820411410369990162769923736942939947541019671091429986249692673240011899222874273607114192220503785556064408778992391778624805988307669905909912600545173757828745853794013907062897056219521070184109267216011338480977544753264082401457205734694371556859072354147197513302230840395519432237556291172171694723858094698665501576871150279915274198499956178043685051593088022391568978034587611051733654163119708240486773206749334382170234263079615055069798054956804359983277704873947482193600147000412156000404964352086396102974641297474440921304154938277919104789550665914954361672871052892889024001892824366561897693304198692303022722654203721765065008864113512737012318441258186250686004215277170277288826615924143781085608052840681381409419830107577750266384545178292649019378061699631239049765482511567299068175783765166764999855668240205571171065092089698669986573964622881526203748266948610954845160453744347659850575849474512536956812425994090949492581143119148068745047609587364951205180762125704884319622019778685033552704718070785018432072996474509821833471176766718530199497316455805267679948324726126113425399258373326362462312992736703825923634436115610081131344714137226147228414068349493554328454211230852259152224037067826130732046482785743726455342881271742052138344680728529177535869745243982107678972149301783174230347153930243755838766158867662630210851390781350436894480354612079291044196300530327530904040469019524967350556403994577743329000327039425381182757546196631942714822401021198017143126962598275822458088922975422069713143484166353318723467141507932451008442417053106250021783547757490421020705731176453873733115766750655208190411462818069798886887926934291463270924288360891094593095781772413211348058660325574492407231973127285625616973842830629532236563222117145439010950445411768046754795058656201328238996324326821779298091521829862215636795116823700579715579712688081450769468886009395300710058626859216999430370894880226638337472643535024840459662274600602370188813276356640592885386802731104400273555524417441802598975492725263681589868661376674346441928460935023032798085330362413961011098108449413991053028175163691050647974718342640176310140292858217009934205771314839246997359416493681786603715574626547489224450575999754451512904171949983661659388782295755560704765407399902906947014391090906751553141257317576086391003349953319487508678928672211066714618912958827155904223936638716924928448178227985471874089178964605059288643682479502254420910237329099947343718852021840586984718063143499137329789524021227159348992008753377996195732461029151945486328899432416845542922094598969285026659920195228587562094748930487565067269208780694234592668703611516993654997765168382607661649225742654839260061245915246193643840648149970735966894772435679564129189260153449936185818251758290747702654531298724356286739001411788670513656165309038064922647854328122458456025926724364501999297723086673668096803158630940596210482615504150599957166351679041103573173442893419551790911492809092769689905389516878224831157588090322294105449965060501208188345202908547522897767471100220750893595382252043444804647789452567840585917179813731580976558946134303898728048032046021545324168349762393193632380490254613945798229553935730683506667640130832069375205443570621829126787383652788389246542155585462920026378545734298507515074910403534795702539063553483791142312568051587886210998332005656678825737916507857207955033073434814705138538223625809262727613806842704997685465265501122963167997013674688854221917216547237153028281135995610189081523393434399329986425337894445179058448836885728522109563370863612158921800301200569943963799945646400096023114883246806031873443013604664633891633152953950117610452226855143228793984805763975506790255473807136407988710323698807260633238328016405353513246052672658416958835394684722781121471557453264225512977863792256530420945958846147122595434917296501727709276987546892697026048728439272802871106623223353189400031518160633640118102165362423389886844915654310256263103046736283090003284165442219476162024798463917192319216192842426216378452738812845341775078833875627896518916220809193100826379221803319035036036755956040916517975575016118080549277649348942950131293766231845146184437441893012499504375881853671550058826201060922987139953739479262910741435051531756891786528681484903900889878833668543296870115675235527254240839931761430431393450613165820678250442230111735649957036970974753444047104439212669503778011334919511541456704740938313498839730982934312203819944504428657084091822157841638576944450727960361561544628312033134387745922722291756842589763996163821697923026927372927087157438078044457895610688042435753400035375300815222330860778982879965744750112859622231859077128228324429069221891706723486216912000316837045337557712482017469097670879075955068771793784247834553181184604815629098943443269045710465989901070938655260882542944549717561056278717531494217188143863378231349312629062266117699075105354928958526064045372424103042387262002715063066200676658007365567639381897630426394202035250338954783586813531456402889357435875587208826797659532271123689962344604471374031249818337234901655737328173470698121772189427040731994531188590444564066626443670564148465821998673482009481405090612704420104694242304102826594635093271602630004067293787725399273415700507125767360092980044777715547405116480586926336040142489389830448104165611595685841344489716213185702236339640633460293426737379571678255606758179707603226490766531106326992646140329641040114042632755230803867958726324565527388471743718875851613350564972748476499229862217678803352676348006104582907588519223129557092160991175806151656258067848942529553862340339613916606558490120950871753242469849353254053796055312976420472048154647795501677885631018749116489510374542236076694489794032923887062686776974636052955340105210737586728834368245760046955160061342416894282478877343898139641299919979722730925312965322188872590290863739114172097260105589076757771513451138992710927244227429625338725198517878858108701689888044316627756427498514492482101414297466992182148258658949030021862973405136591414257074761487556733703873467601278844999523076509517489524930915807764976356964838980594166701440792479966543026569153713452321447857903505555141902914654386039423833015671684214797689969783650118921498174812432389303552683329435012985066748200216758350269063434188621852480176001518213267421421098494217133094312886128405737078289433598908730265113325273740923043425140426660775727333350073777625381018727162264814446772233607561119545617258583680065987942559525338890228804950989653326822821877509502473749017730651538515431276582139366579071101087605297507634826694129485300132267025699451011855259392292414822419289397509536851295713967155636197742160035450889293554993195750861870196007436857780706739086393922864613559174832588537525646513863167528564577346232012854615655421439575762594251979234684673545706015548996269307301471996600612075435663511438070684003273963412876094567036611612555530008194469704111337441247154296229493173944264968903827256644540635509174474484844837835653580505487902935295238203394612817880276644066387684956024350098647961119840955276566643347265716554972053561634688887790183457393988456839858760468984975562136614573716899223372090843736342690610794222958166408639901629991102114134311827373385123446477359154329183294075920862698089875180003218234578227494371577383993902384452251552951235992946095011815033693859847953153799301379575614386506792095353652242848065171176265128319208777630127307006399023461278525641882384738134035678940293236636606036395730304463572968015535963541736310886645091314536340523719917854290157717893922351903503713421563634975486354040751918260251465466475661480069557961895311714885180850202256052876414438533979479731717429672152586342712639766909653923699443055644189207165322558716317131096090412531900633004449269678638017074851302740444595785731561102018132217915857654748773383172057853068838270124582267035997229934993521841744978779432473874212702831574502377387047865005081953509789439369590235866488910297955537995116815183512503316124962673872285854591190406362999103729550829268274972492622841931052873974026903136315065247342747355248184196021653341736154701004027841114925024243935457403549676869600058984365359072184792115758464360391697421385212101568790675073233936727666346691321127635914168013560806768577745727721549002943611340854618772306163631890484855343130053279509017662501813807352064500324824108710481427322449284599921043010919521915753907443181912581707815846926107583759867663976279483548996654114943124723390811049885203338348895463132876427351714290579032121422887374484472923120024458551600993722636706752775960892816632910953905131615785598397495053072496741871811155983549312056018230584281621843707935590140009957917842737593546976217151543717927012447480046518361017744188666659182068274663696266207297742878270839844058183485157450112855426412906509515525181277243396813396375196999724112848462460072311314120959099797699487156419518922035927751667143688952242462394575949268633738479011174939277794909259417095869139416036027384113830307976882778779783775079917670473204318280443819393368682964144054161776794015947765298846356194883991467929817620682921199968135348318477388301967312925619091753971023465517542195041085995942919406802692415905769084303148331496700546551881406587387281918137696647817836974256965306067573179161871649153702713609395483727660434668268058921006799179431962530918981796441727472631325913834890486005552867742650933913440408137126968552774029573268675057223747338898470730827441144967146179051059466264566562712497662895591947513207295183007874753042769576191422175146566707079340717100265147916028193838377576788745126676561159602574454359709704904336571740847124963043913340101961074773577938708195819287003672679230220323664094339017474594107482955080182832111852566849647880733892823286916951592944382616761524242842073623444950155185943352889025331443457352061237813594370889923064205949035570282145128071961034464773245399622545591192551388737726968897168550677493705679405906077827498616679301231646427986051319169867505213918052450927079257380273717905190908957280172471889273174888781502143618739916169440244162110358435104912685328629293719736337926794922884979441031638562268133962005594855000303928317068250362428082062664480530851392578535871156599765228857481708359656190966850381742887231588837737486065687589636157106688067865020574135121109976296791490039501322097157333926473712430515096026737612275897979713797725964893779828876228996638615697696591197084306707117883121906151709034349990737249734498984666745822848187795628136796123302503660462313256492685203462752311566116629014824204936503277420811691746298878840648480208406021010085977875113010456430930131033452328401010921407480279873965188945208420871043329638433754185835883789189295191177251891012065062880267857054505070550533149196213783832696713560172197134731457127382931999901305754248617714574345043890149343415305438965925426553753868048376456769698713623897602220061760876064933712227721567919196484339153667633097610500787254755263576162479647715450509114406253079242277278831719271615261117750153924589690774121935844037213454149375879430367892842941185329274787479745675125472651982649953057909939656310795684405936389090775823139853219244722540254530047390205452518803001450137908445030465103086117909506766406292814685924748787418699744826444304052176345972003982286237548943008725089207343803371333094307126309706900782494349310654298666073583249405129527105383590831504891196630380452626215583170471001109652657802278228769069342577121804760515235420217973189879483688442985151221405823237272010690762872939684811543598466032245020187535358353819494114539777545961362887133037028649785524313951271489775181669956076312417764218595865374733868045395856540269768963068909561757782408750352757619288705984214072878883292785384930676892179123115783742094283990955010791696307028569632193363781662314353047015313339817959320749039828206987785706484704177146930757022595829507097369276207529265831450165423301704844568588497287136184402482504785503099480117804311494056682044470801720323079860813703150737551136828609216360988518634102672015414387285990070800863586534995032674095122415765268241914799980755912470137819059477445055985817604263904097137166539622091007108782979739150105616023645860979515791266593835290887822314375651556899491410976353302956606758479987490634353827396339199228788375700818438235407890290281914754634597348833430920314857494110321864111864173903035529980751586227509321468953296654532592070548980773242620411041275808601826327322595615671803065079268771722813928823632568807109330862422639788184570175363816643097883859710294587671949558887140576967168479256969177044045331280094621278388691302039422833891680199762275621758572990363822343756040000586319600281441805728872316831246698796832094938981855813193383778055018985244708221979425729049645430223792070740536483869144053823459171443340257108264481086957815855433520046915459638020207695563339340167420830326385901535970616637473415590138980274728624351120361944195286891030844823703870596255337686236985756562002689271473495890487998963085492463652137712080052021507573474259356315800907500371004503123009824962093958895484480948001462778871288834260226200647448769111421261849913559659470581905726483294846920484452115515037377990030985752039497937774100071711555682373345026134198609991212182787253911521868682910085122195888802603271896433822458095208002189451007634632640370963315833620782235381142674562108971383390968500715786421830481690762572134504828568190680596613856430192047041604059127628645884945939997501983463625777992698897774195639818248245046677797281241538889654722312093592509382356686923688993104631489008851579598061858024889234881544092297934236473966132986074799078331566996814102672975106545270916394619452591950701311095358597296312742762642510019317853778503978502679882721001192842757361118584234575608635766147173362471294051489517361955398957995366090347001651583382340451927603827675557934041390669105096238343529102237643671461813583419151905288252662568055103909736692731237627019399650966387160054040829508747587220298867871114501338941734558834232559765915126413453093539709463369784084022695392868187069188250509610450354589334466264847687903345894027695767432134012801212451444252779255734066191739706879199193058860287520478583035186275862753804963471872603784091295694252446151450930091575078484780388349726308886720121324564269444203280670451035049588748369831224918825521432471627875931016887793233003659180266354051318810933963134753557502020741096771087453775789855639588586031099545885500976030172917642161366078025925531388143831616708552227486400334511099432286324597487067425022218541147413346254454653020417726561901998285211885993119990519686173026105832595490835501904240512873031555970794924484623182772070986745881308724543261339660923772535629006163630599260418395278365368759042216959715891987330580662420485406847474296479433636860786079883912216507119469622263156043684635760448066988977370492452386010181722338859072494966507875983575246857467691577675370232338196991544742488917190884431447204802669554372189218380382292917334078892135655305108682298892734187715672384715725706831697037331243648280566088984379194033722988029413386403825521590973991570000961316552096435064939067284509821949709084522762705023580995692828012788534290392631836704138880694814216287017053052545429154595184530180943611898417414404372239060995919353539934959735086435231717502032786069350172073772849221063121617659079553202221102057081349049845941917028343524351910909022624605192438280255914901369224162413563150430600988117674022785526442757037322213783535359952276596297201366506518838873078886820505748429866284557044932214424068059693075173554790483959320049422756673279560926125773035671376459669365939499205488654277606372538041351254450641793723005833845691637081293486440271110938795113800740215740287680152636475834721584683041646483322779197186331263248832807637306099471178617108120941207697300635916864959472692909877411851929408897743471396411911098441017153843861656160047814953580251613725868907312637191920313464100995926383124282648549364856928709788007235247030521646904871215346440678928994443062429756418945476850289814830594375070745996185357870108306014117516775937018631932142570364466957079874327488054741169496716524286490724051970325870228599597466412000185540868815832090341018306628849970645745791245969450881333575944293244999993825564869628436582139828459848868857161445139966382799600541815482175594679976119986254345313817272477222142115454852761363001678426005766530585625785063186400820635265758334304110106299498024007589730869543910441056475048247785676240552130105653006581122345985926298735845987592487776697827611991239496922074141100838828319524467563812584105069739986355622007110870716712144876236159468655776026798891414932667907150423342661758062849394906304462243288535930850398538723911477174286545235580105244452024601310656112670538373531793678551115910782095871995330828836642650609502284168445942297468987526017872819445718796942603085311480248396552470658139487500214163561034451767376322136440750257405020740576882735713503282971998860987275355890146832648419684803615759633620694193425116604598603217730013103892358108401184347439852812715653799970777644245571433619831943197615673047204529829288941269397747313347006924975231376198643565221729367155986518379769414955861051734183581850117899606712658208901785487400381697240201135246753994585898846628442006228351894668430988623219139807173502756591248881082902523272512279606590006567735980598544111460763838632067716055778802209199979739333322764681555012818682491067515008031539254541544390580832009492901466714703992518283364887203970476090705369266664253597065401132154826266856850941772196045266963607602804398403403934839382216603522810699221753342087404959138859331737938411970907831577748624137226126657549467399905225741931936907232982780358316415091653522710947132779250456590921810300403168224786811831342765307138585662838199845507390408102352305420274808911209470315659479500528522588702395452339634400443157511282920224120329206662859176906102918042007510249090222716437445140915157321782109554076133090703640071231229388918195497741571211160011732386639076639692753895532451974580847746747112877901829663005325368163039057475528989096660403960390662691296138907914320624547545061344400632010349735174232458077259375594121427049900468543728813362055512406272137067567603769166021037192471497421520739625454651157658347964182433717054403905633672243168619321991892573241318224283439209915240133619099550394098492080226690925809194290148590583368353353304619303611853332307025714620567069925690247990438652163120232280747995215348657979379586563264755106987098934045860803189369689090795449825037227639010368063545461835951835532180239444709041496796975092668287220804384805887746213586695926406615381280754030600141963581352912916295312762056393692264834480392674037507146858556306645970398641485550590771785974490166129963289644528784034107712781059080130935630667062157707115772064679887111886099318964107751698492515161157523491760179795596820937644258563381830833484567957132234522210983858757978041912991036217369820009737467550789524952008464304300148250414601703458301543751690573350671393425967947360096194200763380269163240925738444892652702533564888558537151008099768863913953167185634854016798231691721963759960696398445687485235429315539911692184381716444998253512009289932794176529373207603996826826511427522603929421246778309316332806281935276725995381248821960119883793954215987460369369698603935053124388160876795221845518232166797042866916170102472931148767094686657340415272987130472333444602203539857713589150344983624480622853713522445271147667523848305613078410865397534899527730503170138483396038869727128719728696810552545838501664427702905617782541013751176258623448483951077358081708095138192991727308702987724837618372815288888701006029120268601567569581014162284644818967513003801795545000154577131117020067034917497515589917859571210905065473308783934791824479891469397944281009289585644445875141697308193483125281874728531481907113946902328875437283543792198986897173742917017115992723018126965588835518774198097495819248657344075707977901331706725103178307505460278048951461941880782937369735984763273112472762300644844733685654471564322643707928155937902393694302693781161231318390258942863481407254316704884983075267423505546937811367747893744287243064040991674186433356065473947819598375077050811402578995022846788172582986249485248177647188603991042063888077686184500957769404713701261529206701499765801989758084313277802908145359759704726259734603539672513891123718082790277770365855100020723709147517136005211967576527478216637699684600589592671195713277054408411562996089163813886370558300204769323121604540131751325849940329548794793643234666734183171800518126240319955864965262993087580697951146855760772278395946394235387160532141317811479083704876006333582412658993670289894780486510296092518009635745147698244636498636197794255501067806366011513473697429906804760048808199680405282873273758197358161355509410674572406504030376767388593644232009732623156767524356016849411246560807224215857443830350783626151619087902984476773331691827802073534102993977197447232283588701734073128919149711371643006624263834865909491222154658122819859875057683958027246844653169044079628343168854394929833861393821165682975824550598616271463633904536506907137588781041245853406268241553438132061615437813969584669661748799816320215143756677097820081954870309786546338606581727083013815279805710263235624237700046379656640057830430388271654415377491930636185857980924140095291812460672942080841826261280388633544922332008000864544096794963320950123157845558602165127527873199563807777657283768608749681646837503692118414290089654803044057092073468864269592803607162822471702080144741696245473581227475278698029901745326736946875977718566482645541207627208383866241479847107953863215133639962185788175084489806279643697455970481195422284871233009644226369292824577802585822876742673624252847654288668220815613499490366682573745411339552880141520541614393976715183204271265669450532697700656512134772829297642452580769709587791770729504724017350376935094767437982091360078431974710694979789565080474113859165755041032883855706925871795477367341544709494953522607035317833986074967997253434009072047926678481235489076553598712640943466167033354633277549656651166674683333057101268503451377219231582893105056098838565493995815796500473699434822956842563427595197266053955621025219008556560218299915249485240424982785162612058804513169135076002747260836733835800097287689165620010076587167716367570383331865886714970563673989190324958224289468083377412452162180603624669945791504693689767823766491794979246298047212867382820995205389556464657536761140325806068502962293119994228941245563729345188361000362308192594396641119931635298941771158776313585573451568537149027398379776461427745289821979396965735359422812885379280158349993006782588697177930806405188926255033538441409709980063460462985614433376878577810637624111017923452425091807848023598414514105429152615927054316837378167074310729516142956140390411987231011701308880951457332836509607128240907304507579752565993720587782726199749822091425614361968459604753870455637873707507229253205311247928167062167537527579459401328567292450562936396810879430508525772025653004962653215231411146053286740541719191128070395444331630389572720583088714371038609996088605048544840409556162955984917217109052951571297269655963145367374724140153769470936623444869658502871096570885497738505950419831654898745998429290657925510429283100947233377419461260296943423726418330974299622562599919333653392916561291718588654008058042903461560126499002235509810680889343383796011134058934982486913747734519809433494714570126959333754041304835184474765118548162256670950150902799390813832334292783687176365084660500605919062537305689637748359552078695780979685765989222308543739553094718663107234828356911656616423220564367743863279603644892022493778464275426426818109524749049481034699934690290920970438497671160394581349635749027983378875802960058195656956790485443094099421031840532617802368033348535517335344416276330268623052230670923696656499121191362983289697268805195818064145921530409079388979249051385188096341040715581748972645656644921377256125508641730762406778512822635329481259818780709328746431521055907163168256399960851438505985672611482100874321372950948205291493910976206529252516422392871026004247602352221444684760425996635011027969314278338240607964256699440369335479133509675654315374363304355698936859223353779862694440567776656005799553684984581165712048838542890587338545165908523566061723840877472748041458774127768987155380919848248269242687271003961741850516816396440000955396523339329575194772611852793269974061489454965906513173901487856821583917199288314346467111780634555310661878469213768871165042355963647031871845184739794821831085270822285359152981686532836755177973018288516186300206954963564674989477075434028378372545521899123066360347004984880233006444676525001624479612348501126326912232232816510634200410937697792297463421833097338346874920097691407103274083742714292264353259314353188846225135441034425018717314492791526595921273435737071362097608493283251582190627575582942580656761353613821387074977105984537884052562401152499840680174202118432995220604725110538626490287918641663306230679241161697231566432575024846231425206961206601316755332926392252857346444413984507475776405392642944616410418004321739440559628146187503868933788060901426232964310510517381330780347924164093225703521785908740839179960787624189896475469846921018578583399427879435344350772448026794621601492365555857249155078362450373504098598403284304944380301412905196434919925416781112346512097122914385997452785279870064753584122119703721549347356974037797037630079865074744388125506705586955803009712249553468790060336956862062872749758452643266301762819297130792615241524927380909187860523213952388169110781631195954648139128303088476670052020855242518852969080921193859348822138506141283623052632208071513712523565400234624089904565935459488784357849416552995385877032383888688473386890579455950863721908750150511186021597288729020349432185579772705272248624783132404090389488255292512772990554052511921474541595644776600276167262910197230983361064954862477407766979575398105836577083213705503224048659557812090130843230988395604657121874689506113430322046192996021391439865562361236200209692234203799205936240363342641322446646216475779008071175056357407719835262013246955491957745126283126136268502723911116179330503114841032518952012625244225755785612413985813972112507102723085861883127603496994995685171970356315053194037708887028897706820555859919052191747935239824681971148418794813855614041753893168199864685525794391481345259594297787254920684271994010656945141713920360161597029198186313289751310844972017149690838703167730282221871572235493043887761043188753212706439676328472083508531364713165035384173277650528176794294765521013212661752383622190238039091815988231931095956097979895325085888259171870418757361771552583238401177014011067114791958714966514318798559793885529363611153750433249084026898023799517713104941956463212319373597451252822528543459618767844961039647368747073819181755182714507301309639840909077005289050953157310312859686674613241432893985778924824822110626718719235053098749248352464112415669903994036342022034069777924454088439055053637019846796398791101827323670464641451765236367225552597029122455494230288615764018768344943454933371708021497979523079500587430514105392562606328991390004081201927539642502742111244741876583669837626864240198196331416002962670204939612213895929946088046458997858644976920992398435595584453288190756069918545314332782134449937962856187997251967494736850497451415902981499700087322338690618092800609639186003028016939481323500351930040302044963227424626758818505231644513111500875348720217508433389657306156425186482704264908423783224141876068889848901358858411068804069097290903032980974440366004655121639119407592596738446104963116276407826980839636402073815010482778400362385666257144743888955307159308735736086289832997124682910392135287169648588861233858797578058217864161729738419384849644463332497483310918458381535982959620935549559359814048503150685317135422666335917308649973638668460237488932590687844022002284627756284608543712084915269474432327418610938600881429347061026858542694524053937383977993914107008839945725766438143735845136649995988428389027683881374976564665149964365371440745846339811484556614499927172951060802483389887013963497800888623073981217546448282629677630265047823823396400552773147678704371403777451832439834917734957026621241402291731993664051861900622806744702657440000512003067181976141650116357520236015533027064395094653309341165078575603668119313921226426336608961659075219979796982625350475599564695404035497139090815688682619873752106237209126781773256072575145963680893755664030708362550278633798306627232562101743736799695760085523718717386729832091798085949014003372467401988044814288389871160396285552615283645572933921930937836399004988304950293578999358795800289616063269894310644668283426621744617602653565782357174035788190270636737710251407377345698668196751262521757421458147682550330325052729224549903187266586823195424047373248347751921002580854059980153660802965110209384339574044001697220536661025555352384118905494823355730040560619862722749958316819309174730149589297305756772801716772925328244729965446763417136451814970585653747743827086565769511598962658362426336777697281279364620726230346349235860298861572232943380973336228584259524900186936803536449443185673557212279303123142012434951754860705092301007552748908759952308320188294298122008364666322821582271682384634475605773630375629532176839629851885501543989134144062550055753803200130381664714519743976492179061033752622332354252965091173504868803621712228845492338959130644611640576922220442298665461042071798296306036890300048253044724465138510784582630506057845510604959252253103124887835376671520579185442279552521479771477899628811926229138818954348912991619453105568360162892273223748837976335817044427892160394208947968564021036105627770649219313132089928395282929356084781621405583122036081104136654424135297867669712272707923304139599876605562583869226898551956387991347383891702295291007659104702816513148288480530184658221821977073727992221521069058096403344854492986276116264118020492004838732321025876897753846803385558192543489847122114853396929735491104541646657775929652508271485568225449404782376185436576001874954779201125772253544647163265436285298461368142270666544139576769852045429117611853339401561973824759598564303935494134117580302648191120343834217132970066762319416273022425540291876771336377678393897147069499754863765364141417748401241906080274345976812576204854487514613944726424366871610553411738205896335127584369109640159218731029621366862710886782966088066991178143611942872738089400137565357775052641202195014023000341652057529871824306576944095131310377873996452324052387701034329367795382753208404481026418888716822954387348867416884353607901171736970139583244458638291732528207123341437995221540205837291673208977621341611719731290978901564461914585874044484105330494779246990336711001242909624128551001323622581954822356313397743742948995380097045354298243019854288609636489199712960779185428764110704560818175340415153362542180900365775224767543586283613332128222211810434428045336536794115724040844989471760238766937400982808951641431529450492582785831060448797375160185235301208158212007939116887504102272851335568469100461210635189461819110728285299549135821043152708647199354359676330971617520122727679182578938824526519538813913598126696680736626578990570946873087508572276017096967912849303377334908176450426679426019298268720378549712801610231867188914529960280826651054091727665214617616268610504661617036180624508036943309893966635239903860956584231258805956643445412154146320164442213605287423750644350087044677975632561290630416851865686435266562069734654953146014178998354373539352400671971759314046615346017519477743476672035747710348629628055245114039842474349929967299602721426496141767880658534321513986071942064530501711864855477843556056639661026356615465173432560329971361477787617079674606900965859526860192243433142123554501997537685738821222601878390609957318752023168139705493884902506325382660252390133386295051576676288020885361593729881092594320040761064700898006801606820732927496781117098902596653200935712983011561440709290743675547568835437658559815297448707090825302909870652297997840729933630985864953588664688712339977883215106070699427698839801615092658843885994936927564780076390076494812432129398299820324249145552140652254419606064188632650467957266425545152530613446386583295155655820375832131327722020770787900447590856200805279961112290175201534551568454967980926100657555701919247348284271045568318443805755202479294841961903621673333879500365815607397195061801770350175885422665220072053290227523496618429655945812606385639123784150024760586977438956889038542220115738306980324452783873193685541711313960390371320557444908928646105733629878826122323493035223073900534805175122462299382959409990277745942201569981651044484452982045823349883203677191846206430641622328655853772406495056091750155779161976622907604917560404940441521979018723343411640367813914048946815287813931962090404859360755987129344105944529884804129219464859975562107653200608413056651793246631909582553482672251348912490928208207436159297486498510352979936822326719506988201674185408136005614892350183160073535525914169863919308330104616003019041279502038954322797265236119641789784416477853356279784765025609746695167013517440299840389477616899090537647647307123692038025839933582803836362751362888129442846488887194823011126201747229550636793242878806698891822754013520815638117915019883702502525469085587419359717979750069350392098355707215284200964760199272961203445546101417703374854896134791735004038942418058975571620015342172017835165431269558192350429488577553431863875491610063146284970437735760682604110534650907338644395921450662319401274775156225008963628404480090387828854185809007117811280562637632771116720688952115135948819916362582953925931109907694166671714197911029241937442961445905636439693854597313924737253808039166699016067101442608635349170448412558971695364030229368743233667968903506494477537593042359099252548543643209194740451004868057195285942338552014348438579162687404064637921646604914459762353337989330096454451817862672414575026656971359641523297576111464577811861120829296351715726713288451978984553028344891198708679772523468529879047731424282948133303757816517300543026570782296361198955168100564686202296367382581355815741751582534214640790015308913429528422077304485982602874983154878627134990973501614188291042311340984081115255115701000293800071750418240789233695475343269092376051192856802765546172355887136928785045430504108123790942623075509293780607940228734420500383082072437731079000646520971492756204536326455934297352232462753853690152739879989913051279577903107438705056338338312795969771627716505353353373174088445038001788864363844067124350854501334133413832539438650549108138780501010555002791647686931700843076144319292657945368092710309382031634532760029387494365760886580037323188598228551857128858229096601796546795774710881490797388574717277378645293973642108834502173183955277012622765983047337762155178262238982560415701631796989393674582093860169298936867284907201203055093489836561720806034197690820719277309995191338463915965498476230268363464206734319141648482754416246019550709889587435807833179750592592423513468574305591216586480892104129862963995318518650599927999222182425690842206728836203762079339167320626668461299050586215782357296875566639871600675039933948279144018268743377658174581569119931290287084436878811702519299630522256052595169847538766220069600651927241522992967571777877299045410572444087299651162638484219255929130770792649624243537498249677609790289576096505363885629076230642830023910535555341831135144398196539678521816805026482889720395381859987709594677596196598474801033094754726164713904805716810176000735326379520006684326673922541855388656814604192878607040835092929851451248632897518235206770825731160818853783207745366290919684339227900628195756878225524878809837469723092587840952454511959536686819213631263799179893317025794468717456241495289998327036674133813291717620729972095308983392483712245911612444944268470957354631257597941458038307907660709203256097022311314013364200792519189303350655434517425546753473715340164563407954972197516270904600501512135410843852455328716399846569800742917934439854914625329858812363797970295218698911477377642020633308595182928988601825574983166099100598248618180600686697026262702158497664728745818584206315333893338759039519002068257709573724544494879012219397131318304854145542430606716827752530094537852518959036566358974112357571176827511632063683093775542377146484172319018207433479898209125486542514830204702226538571655177409054813287937009175991743397889950336163036729018196969738900252318764950049975076423369886640702051924287893299723682291428895250932602524904292590739970011641074575227240639849594067955013674067649492048009579952379950841839117812523349095997169008320047781893118443876613215375076146479413461728236516969862162316355013772176698946091286387989127813827587707576888250329435876680866756073085643439182745364585953594306309072393031398034209823977878517648295434272362001598755037079695452560329830087716987850303970983774397814684144416135877334087222024143522243203626138874518875971198038982436444824847524431720843738839918386775466655247778114760181511984342639700788210043885177017428003528650539923007006783004659643375617818366520607419293888585312563065727563357885967641939523259299385350173255517426772322394390808802606307989510032285010519892774004155532078306230784815729596586287931378357994594281883002499390793848385779008577583432213091942501709298921283702599423766985217209858285403191004553400072576745230372687706698717559608651701501873625417852999199184494434224590962148162065444568254037088910238862142022793932541213123571093944220638559186041397949939475559169423718711648238660723730637906301175328513311195149175691376810684606818709821771064402173347063453092975389280598992972410627788885949973981691715506704268467547253799583694204739717988976924382652163421104503188110662442662330395175208246187203769685862935800100913028144151895127272040934332971044024692868483211191507922950154562726976768932342042359107823516511848386218438956092916594583618061414256631571746502256538560102061495673431373576839155734041042357064353214609600342927611579836709485188017379614878132050400781759921584629867663880103229152940363495157823329029736538342555308456305523711160479774766100676497522014850163150845311603361763263214930337506845931898158029725411112404164502324386712355318347970345157484403686839772354089446504063595422873135126952764361237280300043848375507373049807811731337756456572266197097325486632063711990241162189731276541436933476136909719316205277675875499885504180277672886678696695211056554436493432309702296934004288822427750754575713436348580545758752373527264154233913113148714402935456476342478315266325261565795731743983996092102107100157903022351604644016809445666402973771519312865066508361131082727959535188532085461106111522253887131742081472160065243846122171853963357309341784829798011317002616528258798439460166387605822235018983928794879404017897305105308879921619646644811779029738956144200982607670281421615580511059669304360540722050462904820370775266059687291646827019335846309889787326769096947284225736419726676023127926670767036534370304497940962766353146807848297751621080238488257324043497524934450381975042732740977543129818997683800098772316878871389671078400195352808243666100359508624577824408636879187914343620324508976675229973229467768579771636180716633319563119921472189983827829428144439843735487143494780012904812589517744458430711659193062287411418383032819242194899099048279635730090015223899746460599815947245676874833659055933013695190276657604737786990156362766905890905119963323818462249278547566293624930752742530733721037971236260934701563389700032774482495177732156148941010868647208407434913147793370833746473422504385560194972481973510201014994510051743335644756669187224995475824028628504993562581527768300369463459462283237925710591575605377829796831945199367354027310852424897120064864419714985945046168443605722380802160971314151905002873653420435059398087239852188138204448110657432162236038796194270217303901890276656448998432062111463818134220851998212272891624262586656408148681251479182284990320048514382423456395585911395168809966212422024283016633173068723063062835797191195667100336448334481091935166526055320082812145275930813685313912486121188272162299999750716905182986766482445919631902226843140511701832011194671689914344962154622213500676579636108859563864244575649725408711256014715449658067770802028003925497482033721290849620595045841058947337934614374625701243777343763340123069041265243466180879333947388783942573972491098819736669672664611497740881528365591515345431855104500586729117626850974185351727104200361959861070103658362268762241983662902010910770103978471671142248816771199977390114947054316264705455563497335676562170147789351319192111450410493685767548683311311185894845028751348447938537164325772134328059784943483608444906273314576335997236575383330269634172347332064649905902972023112100229072461223907455168425587514601774704928725596915381742742706865031635480530708093204794668676156453951626864423846898934612349233664514653512915153455710172302182158277842436600336315879403146479923721381464123690641672792840672985672799002219128841848245392439340928323958499476095968223026594792200626835852351346571178135268738823849561724175938084995596703122711301056264235852730761730520216859669102191258747163410161286626361774081244136637283474994806837265217520016477623765214215945386238950515344578471087963793530418253338979886192204962021603172106289168809370658298625517544161010776528359536047360678247288107986974295884334500352632587629875026996333694430335817819019118522269577216300012136531636909793812332321578514237735442848684605155957133883836269266319479504443911093835211766364291874098690215457301557441084528936599865981906744497145412420397278772006872835060891920937158346973271313252878318824548527641135415632329984628345547164564856316547791610912530656391225754966380618663074370046364501051989646841811453683586715245771159611440089378176676002091537382260638726236386036835762465313463604753133834686959767144593898843967533182104435846360294010605878954624879576449077170944216944922225245346075310448226475400112443011513935795703552438664840512219206762502491919348045463497651160694314740110117576808362110220432234959544564091173640318098791243485371649052394620589676086259783302075014096580934249531560115779308369617252958166015305934669994783393116955868116878670469782025593343303208344464951695345205958902188436920965025116117979838346918950572537034060332606789593378131014662520546694320367234814364755138805692981366810518067722036215954921853233227241318922372927903616099423581783816680377077822496303818692325133460790863547895431582160828675721677110856132923263143258462518683340540247331783718195743498341582501252971426104842381107479683461579405097962859238784041713400226292352706956057868700943918102450847186280906146798609688168302329929640925955335881469567621624442714579436091669362593166361713306841819408838378948790263902824819430796080968432377722036359763614213082876834770898105307999285003146516947281598184598577867211239634709970087299503894965661970999665610529869221486322831136937862173237982266440789005679641713483086528770256486680276818691657797158120258163247570968115112528810786092523017135240947728113230040724166485520084516650359036301112734862626678262598323389274218263930817956627508955647113441378455590948592090649375447718709007854784289487141861324540886449240957183613202361312273756436002615489255768637204461083612872173120755929719547299384651806499533117643944061210720426230489548787863297475453107144735072724180133819298868595341881172836424813044017450686150553027693878511271278526909312709492681986812280638982723176288197130679551610958303655366542990648576500121431276870900724791836161053246632490785416930103296423157809164118812947980611902056662351185720955394095244260423375012779388086041940194230760594905347483135444463085140276480962772500072644109786486497967759382747802766767520020037161987650301368679698421033571521515034154978063077135397818372247354724137501478604588398791292459489605663024867867518663077290518827589929046692245862736457692065466413986721026591981046463861066497680744128175307009864164629567811856446269181079413982862188117976667565928421849961540415247031625506914395832583545362700414169847437122990875547351690855367959625600035517727040311680134594240619349001749417817391853902641469775511768044444743365673991694995931278365732760746546276334358012082115707836366083304889203378578003789508144175035421205124632357771319304951866694276528243713253700267522899046333379674525527462024827038338341087924613259214550806055802299602924278461626013228655124739702482389568529976682939765824038351010954912734896140465760571879195008228342976515189536587673612576291008422613735242872976447084571416273890474016141077099570938830381394443252983428133574983086133910724175244120604046103846457688432801708371801857908697424125363745285843547911884077561302407700232042649484611938371894956859970038654627798922670560262305744773194638431750148320110309053364266601322292124686044510712909752368546433920693388413651097163935879492498952721333056440881629609947347509485874054352487675437576677027203734187743501198699078964466357065606691777761573457519342781428820154738553221716016601113059358327048971093919294002910229198582427416248344150985667814397006653553836180177643925678217521235777648239689308349037552895113976534321461011790681408700249169436501295305224162736359347958990702352866184133450800644455952496273436890362068362164969106346823676673035429906109743795243405258890545557193283999002637661736183977068015019336072738501321563136851861135843941804039891367913792529493221418029343821572328032647293543119273084269884200027917013953922628262078439499344819563220727222309163810494363111278501003930313579246267550437347252617119275948622830357027561410274212505773799621284785393269188030706177314060485627556924068106846814089705278362274816247841310465577979409874967943568056798393229093636969269317830616343756538002590991505941397584869708844422046521481648915033258304794280361222891801376176502405057091272399902011130586485957894046988720465000481680318830915042113213708236528228126060312662253565860032617461738432768006956625540578345937146678086474581539626034409808518739196942268124360646914062626269692778851124129467243225717779442853999504900103200344398363985075550102716920090430058419845417459636744413291423637721531773018004274554321670695309887644886258452241816579074059035823750634865416443458626469916642794629827169873187370454236561221802290541383490574675298989370068550181652254009691122809555712803177123098113252340274544251410359663423070761784356225621387742843977995210226428874997458638305379825563749890721020984311934565047805639912635624325459688710120159350470032673974701113460604830099790461114067006176120444988560844809113100911521528951672749403450334531983172438457192884067785102141795044367925404244892205564555259833564729178816876041804916937571844951130687543765742260920430856758755888430895640757634574370135642922571861325355058477066962032440106189282931882167513613304302675293170193356938379838986224941009740485140231226769007183867090827011535563819507006753804368674221591604480389041934093625008275269318061725828654836985001499076549784607208638236626855985260459180105412601207394181915819635149797202206167984998964628742561913634727908312396457128934419337001128345486844338083210876709628691919143294039820141264107491665843298262249421071488593252204517459465634216654593914108588332938153398451430175001000097757597098535030065433845633648713790036662624971013890384416461162668296552826714468250103890305118125535212363836883354346113674012991619516722977526426575692276517178820207048147658541644171045859113506292041614865087818114419606058931347457370412792358459238627299426267658526453673411050532114513959034193941106355626420845434551356936982511397923929247459041106729523815689115913151537032871530112055692915369959512151245587241161732381517993706524180596302943338091417515463110726268575754468184650703571474877229338818654565349334293316421885502003448450555521973564936644310365978356870766624997135115163086083369449903691468117342169950664393494071842868691984443590625230534348358407978885408396723936320043828147655444980220095949480877330599237140609484400098775800958471847096580768393896693349172689367543798166081319476006010810876543106078622172680032167412040442861025146499825496085475792915206654359630902555405314646483589303904853958194352222213026899147174682659490902746225434242336563384068260308367577739411946347699271154709111129756386649815120452563992892537517120104933999367394622726047043251887764937606968237880766531432047919529834261635021518322305119104070235039316029511238094092101307094029835157885274646490783041857229068488673837041391985045341932155326800365259805726507815217670056377750801824436075643685835145528816885946622747206515377912798179220924734058086986378139004869243886079183702242427139664523526823569382798086058756752267302215214011326086242515153940113032532563805231135156323988239063641146167626051630647553165044479380947215812756694722541421630516693642953925189279403274964543418364544409953415017505504167175994297197947234811062544788435120604142196985153239446086765276733855961188903799172839354681674297540190362713072890157316217824143179883354185041856641889820696158891670271625125807935218071109383570330495508747937542731983937105833856424793432371106186929307250478606218306008965917065662105278931964785350214568801624042024818385270028078415570919840056965234787209664350614100039350650927824406473953395518419438759010846921028222390031253628920680221776797401919724482880185308718522165805305785929853137107138898594023706607119425806987412889156713593071353648247209120896953168318290098668057151954021931749385887421260940566809665449960965529248133923850758037312841901617841794987863825362087815829944175157002252532248878365380051267541555637020245985459117240625334537854005676654180990524075746254128401695676661932892598345357095726909873114615377633314460431923900860595281640987913956819181626523364790091515482029693284794116110240604597186109317718097030019691762834219171606707221250448323578284191371970838701792326856532432530652393421241862228277330553332960478105505185788763031544066595667752277789280181286819015392034093725422000726137247873188575768211364893675123341102635266141462025879984648972998697270203646494850068094416797022548828450124581924339126082705936606483593433974622444809603969995080341501977691160762003426604216383076161799200216583219644906897752225070825400429033589419719960888825206995300251757475467390730836063197648598316667970579837318621015162272968235555416151369291935311728613029883313224222559192931129759209729500138916570088619316341799582195045634320539454164821895873600303423970843926939136502597351395394392476982649710867235629755663200167510004600705257389286923758514455910198360755027770675868227649559398335398650187473106462738110132908244140578384277519429863055897188656885983802207114522987134545536909075163795631763915283827436354227166332065313230769565203106706077163006936216998916457554066310002584264364356234558172891890536586312649003141846326476457666670247623904771272798978096921275107235041385895878695473070846644990082258183321804808803422235290130454664700633124235149780882913379573848876216828818189074411520716146358612158545710557869878963036869026894796874830579289009663969103823090764908310867274523724712543538445078742761614561933728098916501612146052039904625560872308532447274013800185078414056485724927970550905633996197235750532494381137181207660745569302288322522009344262529981649333601770615669843561473527292154479910635556220438724376249478908385819772125777769598043311100909555532137632309301082784423546411557118782989365928221355178212793364045489270833500296581923922306947127943880833411415476448056836653954785643850638060620403041539465239580845092321189088779949126181163986696986619889057507450908269641589599331031756018522882550908841581675414622475545172510610642789959479407715316801780508999535446967996788014077527428923799973603273604888805487535887206965776804161635311602513493044687480995824112467856282547524227045713258594812592602010391943839115187228070556441316383061818209770572304075408805996740701497914808094539418930097868895043781805197597348671671555867106997226140382546192959330534736850654058137406566112096492722381789873267362458002249369534254600034238645357785340876235153805651001548576832358318883281277947988337025865306157955360908768392537993462379200061872491356316975716856204275396547676163626776517305940057518395210617940974759160266450010033896045015828264218214288535941641921966190662430967955310350290118700592636470403624088601545862004149433853844585881026854808301676212137631103852308168378019767171318225273065715633682827709722066876067494245745184263835406952028809314464654888324307588227215421099142692843698874591088941679011039860261557647416652135971504551637307656621420032909031623824380720328115018704168022741396071540532529145412728262792817360966310697768803391692643729306557568056958543611152682947015019295467497159312939708223804683456522978621274520150052190385723786800211501946551877765180680071015788654064604738868431151543848055740730922395638114996486375662566611539082755513445348646392116179043088854621653314084032438133938521498818011499918739014522115897635366247530189250318568861362812677738097696540366508913940231079327604845988479059921901509692737713927339433246070038901158085048805956222826615172049120109951156441648538566742199775083804610310606170358288508984300757152643831173777876753211002830324038472024026521017828182474454207576884654261086042066739681186995975076874801745740365663119228636506133544062663701440037521866441550329679316504314536929884669142667565347545237343218935747596255276296107463522555711259732318621395190994516912936894540156660106683492742649215206755543460344432816665388172020365970925005930546475806546131822181886778715388204914739078202445460810777776522373856052302428396007206420812355435122329230254013195671009446238194099708769036734117779248634433833192316647118391055942443953167225673202973075063780576943675290297981544345815092010304370312229843901717609962159387093766647804100146512394105286650045024212160498293128307913303132072816027913949012512290329152981034200855636965868015469518668808914869778929880375471342986310020622928323977607525436444564353236721827263323578490325420495711663468432688100386551187258550216891175955921015109614189752154302930670779133734853631311340106321121954361409501046881987934807667496190555450455824913200350092420702642325238063121915284017313225931123421518518495604372892883299079060956175447162153425910112810279164251404333116000233194611399069057689676353430770644547961121510087426197683179551742672998908973315588785638226352985825104562314675454252090767203273222208286150405377033929832146288471703374548990383310184265140391248082666587216752989454572475297560918591897090216990320986979942038053394194901811384714860044837603390704631332055448488571273524143578969760463540717477488627205062928000465934528992787562210440731388429108929635583425190079683742629892988302273796846924639759764117206563083223069474140033532434403774675557542257213531076453957434053450738846012719266996392699909512292073196606345000916196938430763803547579307072003764879067542314205678621589917783339448296904799013431270804561309804275692126206784185876167498476231598597489684146237424820651986545297022188317182260545473972647003831484852629619947993897495515299671943962958131522978573910958840876017546318764780551824807162796553841269756287578087958629298420278046464750982947917413675908016791588616814171557683123528911206442115714012292935273158607383747565724612087833838558085122476288250416954398239802839909162788329280567601867667983020032137456281543138079331850582688851488677628360636380213702051086387969786126123594994010227529789044627733098631846419895474720999824232971410412959657679860029789523801224057178628136223670892731968645745400042041828902660600708694551504811248383124018053645178264567671629191575879708118183728147490354984848043083348609669676684702352071905006592506674469771768547942652852271119296732647889305903642140427570786888129184394319655982175387409768675970843373101112541754090415162955450689072015831529447242479012807475176737936833921119844454625536660411413548498043594358851019147215481805215710437969834612743345701677071622250968170844999203484589800217522701232422217944362039855792855463298645902812241611338730912841669733105845627029896408720108900222813391264478445583389316103407963764138142174881353565706706522471286658067860931790829073388810512605808358706338048711038787848279193381658285841062301477502377119503201493931755515120188290089244052558175641361209875772410037690670328304427077888823008221154235378862988508234436878782711746829218786299843472043460476606736761863270246751703172950270576547995030657797426845504012936755530747456674928188501438104576537901466775613553868810014364407090188932740923429621240177242338213678753754502590393701824662279119901744246296248762558008486815719476116358361997376308574523647922018540265540966736130355292894777215714971514365947039442062777814488481035605083991636028317352153781781587936955239818366317922720968916913756278404646327493345593598297362478136379385598652114152428548324239665294266705785490979795924367417141797947797994262035712543598581681480138793913587713419022687052950795773928443342188535086944060040247471214701556923264314200228084072767248422832676270180898622509122884011692992916832088912935242714071425491828867067030645110356355197166863706936576739427209061755450355639621296640588352940735700513906957057484776171404682379042335746506734256067740587697012139948840844250137757570848717584433278594832834300505138837613171551862088090245919687036640530412400665453723780723506530338717862794313045634880459762850684164608851635792767761063403743707247700946728581390082133529954181395320011505097812434572723585150859635928715805046251707852540264897898344629346216419192037726377594192689506680292258811517138252723084305808776505721694439861590737285940206315976536285746898642068757395438181731459789205706473979139610342796754992244135323666183276056600524144883521861843582104419286532257860322300567833424945898972984137119088303532933014399164923033727650455113887596729856091952745942267180849837798582771296790096714265334514671661633919202356332038061986502774956813749714694193954508709305083197059369236788375196509414506444772550466579076878762276506861373392628676142382647336236548577358020280369025126165196419948497149891549663421010731660777931515675169928225851215287649844052154615963001496460537686832510806931984008660482017493688469273988689435428005594956980031272339489796465501922956504873601907282968924383406705926184585367388217193745263314817342779225358592001559300337586565848928467784324755599901501702345641891152919081955345703129644246777787710069665826627019972287328422610305738287936823321903767750251864318212325498054581156267593015611117075134798066882918836747180539755859108969738569905822985589877231075192862581341578413077124924097464684217181468838123735775382631350464993338560126340269139845333237370966538423709318370133903254967091663739912265890668769743509007017411818778866753347662153565370334904083769651904202501637977141051350801399996494136038866705524355087939823518041240676046916330128043490584942011446657738817433845114887367266903036266322457860127902094697226442089169629854027579401468715501887922962728944211808031636631816254211838522003335017616075816338271026347389106000706917371861249579452560522363052981627471306690247780218053224930994091065551998211916654085515778763313914585118533734545388476624759167226783409790515348630871766972012997683706847038372288168849599357750284841758468992790687608129423495696213058610537134031769882208908965006299923497757124949928583144798871909804663484704791858191396487937298483857438087036578311911159196877513374126951131461339912020731947950793182124419396884464878103454084249191375168532469983154920044331896546556217762123667070155922883957264247350193036304382204399185004318406708510673890335877321995717403838052117765961163447942268248620537449369461975336634095451139220469475753896502231806209089021168311158427811244499505079932721456710688584677854624624102024810269918706170934066634191267433752962063757294847065005824514703199018272944194457945879661884801061942381089188917352199548581331387428874725772273304377191061563505682104924761104452505501574200424773674172925107859792713302984050100114858847057527061732326297148526097040642827961150694135732575944345237918586997749498916827817271345142114968488873651031124962032963725843356813764385008828628629670876489515997815017060524808464064065516531610260468555074081708997096855925339115414830077498238535533629205856315585346802098135252681262464314887745254341262567085134147640205599240123020550542029412478508836557288117629458158711030884025373995061556691093814391433841541082842215104357471584661466784303608221578794207293815673420356707730877055805251672731356932698651117181850981124481660219528726067757000434360393617932518334807801025708142038236476179101860843120828363963392133405386487817241081407001215975216953871857887924879717466283880415586796908993689119010693886894982108687138010156401146729564852836260742228339787867773152092073859678221522981280110606336653908747755618745740884008359197774383009630392791001053360043098057423404919877633447278927657692878838797589874690797478219565640535502208690113711448671713879621922311022986305538159039408063145152626944506677187733781445228179180612792627797171099830051957912796577337392788218262717773535633693321311486550839676960498175831247374743303797130322365882418780340725850749886683923411507615212000344902981008776888163977070220074622205679609152498862541914494086566301323496131805665797437468819514894605745004923014450456325109360256282400565524490957527423666568052352638396476819733326034999088879867724409458949666098527366637886980501339485773994847248131045612924644762280102261629774095016353145718990986809417705248922322223972834659932655942106019052679926465349551150945254990221240181967931701121957106027931873524183302789123517528808753230210411189916520227202747877178390734548641097119305588651550353078915735331175417136910211717341220127730470464808025920463377372843575043152532868467343311479563348503205624102441397881830136982801402520950810489135965277589512679571872291674712825304868003856939528607631369608730532722083748718337493887680073106521330513779239629857644334954775926003647548847636525239348843422476278801699621583406862327367736879064300554240746912013139670531464964467833279362797410821684501536310673288275682994868439943738447059004627451093577469372487918957404790091924305418821036198881024700561101905452688385329034929257739689073245146005108271145643901716283093795246721319440076543090841720279689530957512322898383072571479249589335201106623226069475520930020338534784768185805296910966229945073864911843543750540255570557013752613476935788251602333868416590058306960289382678939116264560456865412762621444426855282000475082591942773688758393616747446741590856054973199852606892359537591361714789753797527598981196987190765043043102444412373643481817318793246536312531825028448802098046015512953576283035496795302596376628967260792405348451210069705926562055918882054674523804892534382788723824386378633477116463731438367405087531922248230707883085216756894888834873327427124438445664456262295874520575368141999178472331796844896901254021267926478655924690244765641158724119856050811220900583866966441578372625296180981255341295054959018348502008583025946666765292030963717335928069095669229646979634221762401419998402623751867233670149889695479894826200995091736658954835090016951460985113515443372408410474883940831282974166037049448376167341057930210329386077525160218809083002177966419198693946104911925408343343262590869665023514850007913799165426590669905902662921862109946364826436273828178938890145484660231802909448512990477430409262326172408644245106696621047711497340176507788774621146316978704196679309839942961908484497804224461323376618068472960395037080679524937568048869115394771461331867156364450727635161850004908671978019616264913274743454292158395261410324471887307028646690794125661918525296679372101612369070564803200376908236360563527711090644782918585215274344723610698981531627595299567482375963746763640955496436009703500863874905571027266352934702891254620398834085938528298537197349128086911977470473196119974403880506378709739226991616006117660350606249925417003800244813654755022605599063894377759459063429717359741081632034219587568132806497988758168968697684801918557121212249334829249823956404472199621898408826645006195169076463924757760357577392065062963265874060926290826853435556016294291102831379471712246637754370695273814355532950747389152282253191554176849534731021023136440368516090656440391053147094325119229218524638338341527793851642265482857313696271502886827372168027265709509405063948706780739853820577259601792217354478576774057028477676316923365040238610680323019083462493657732804977844844410196486847291245001276071250030257998401533013583001478684659705754258741075030607674060702092303987734953623009712960908806236033329869787812621349990008193476130103321412844658804104130533377263317481463127023374493258791553422537793999017006477478427165550321804666990287134994190868851925205077501425003213626453550862656948864118773132799797179761102806806494901514226591546344810829120540690825115455133901523894400445793508411441401186653430856810547269843777372903126002029573458640033855538098784053611741216507745932290042775557753913968305727927096726464456528735281320455980077300823893372095050684925166403006866757385420245590180283879251447642331221968845780281547454826567185479321686745449324978865153433811709558969894619881610787837824158992088534714381907727327472016738389148329007939386741517430984100446880172392178304723387840537341078274005943663388976098654196771863261904995101309637500369156247675581217889862157930986411979564129366020495836314373400746057694171207052337458379399185030538248929187766207886133443139464175900377474784402232027001303672685305771742690346748564824781283442391070229601091864154275426181937889799320730685331079733079011008195466385125544778970839588832396467309767813216982109411978550417763854997349019746935840234219989928240622439550542250770374423102464924396847032321397632309630318428493221180976102987831041064963843077937777296183216605496064502144725911960762343732426637615783496515189312641223108186591049535486913044404280698957850249222660979521609250366768306024343786761172889559489939235972584568093190247751382375274824837973480752527090485819603765083697750258036915814398005292899343788000805801195748749568440261733802959490725853876838358296782249806405725776376848912195809700912240503039546601177718202369396975668980252898720405478120117761378687185587305436020245365451621709564195413461189638030932484573370358869077625596887461402746404164462785044748536385533603879699957121242592084756344980232980358520627023020184386596878293450690430683883588265121086256873259477379651756549238433362033344424398672360992440975693352688764985159498064529034787433755611955296746028618456083762970017838849794354105146673034771945715763035509239128612925084708915437888056793519832117080443843746489032628536092780959492807890391875499093303476709999838639701236979234466949957215377643270830879142314092027990731197407409106259238413357126126119565596649919972615320448775958241245816209718906763839995236097489549727920307744780222069126143299061634793153838800825264184621463853037121931708198189789609923038536509208114567334143135727388657436892884756122845586765099677298027278051759152741358489835457657217345553965641457663212311949262281403625376896958442698068049820842684590531175426650426369270108589228771996547994194589037052536828163449160463922960727127221472812387439748171906423295455408006403829736626630507101737698377783636372546988968406365822502634759505185683297429851390528415408866011396109139349080113670171048018542350417969823334248723001425082887183980674155048648536093065727400078942054764970524124804541095447902357166229527743545485920502458163088666779033687430132095388898085919716596857367848090670863027483772056256621838737616227422948192482498094323012544820298032107227062937995088866829425728902446132729192869268388367233745363211151823779343398723340706332050338769019982517587819386769790134330053368532216984698296548816460823289138119520871651801681049512122818274113053987019139959495981733929091859391361015133257726739862898925333990151366065210375712333049738503680865130188467317941955175146806180224529099209584764834331626196600575198920047587610622105880132426768311974282343413062040432596042972190770565704420091885839308553362176890555736536400161717814903988367124244218815002826127686226928973139960414082101272933057814937528683888616618451676463003146953001485333934780239410678909640824004814325382916815650475561376063989300432633846619474412358298150440878902428921015436485611467189229185929892062468825587305227828302280262991128373298874348082631376622835419242336168795332578767886521412616607559428918061264133804048154314707577289512380959963987123402511680227928373643811380759248670253984063156571224950427855748860875835200346400887748323838735963808533120737732910383583316524518615928686103403088341529738133437722755730768419936146033863114545642535011030596136856707432616691023006347583348076363109920560296046881884819648695137483099647562915312107629085843854980866358215347298227696667479844768277647855727185714662398929898849121323161732294182070092764942619262480879348165648185340471775934511806668663631582403371274688006460991524066356684837388741569382520002000019954512099638047091426781260907640045650570431115516162501918492518861544900602959405935757280070621104204003780791882411221931355652767645473763091857241162717163798417094993803269791971302111525544113165754642792375412205107134376444966282584386838547902035935406719772082103201659460265732815231168122845779220779036696182744652486723923304592557548896067094879147913579920249808435489387547548608446980320677049764519252546872452920400140868129761876910295267351076533713274288497693824138895198427464523140802890556195779235138609623912350967875119985628294897594481973414269470602824707516607647385463171874219318560802740896453145897257606824280244504504216066700826286702544186276605452056715127962838952008594056738211830177054072852484193990723259830045695737396837661793587623189770036444360195332216153366604256554906823085733435679286643607579446186721971107565906499815315954328515863349456693926181355361950633266773640953794668817233731002141858266754980623938340895161097706490643636999909691186914755648068319096633853194335307977434905488546091790952724111209328047781328021055377124889267680851603067920224150476839389579515325844541371273808642272582069968122519614181146692931983753396764556999060124687727466613789043874676578855405898589138451992864169434715111937301050270308818056388038862522352557362344035078426785029496182298408585796695838053513742050276541988967608722519342192899564806217719483912889332295852507733095542292547178309988313489984353646952611626951566667276196984099540232383131006016190782385843053927415418913589536538218720528977503323747709741235601975470639064079254789054247317020951780375637430027962294462906963586060138866294171007032968540205134867725644225378710957451071249830792540085505192865544022491875148136531806589880402849575847088954323932941024263346476757123058163001271718139817939600993536989208227423400723173386327467879200019343324925388108312067549847722590783980377028686086997748532534806726126915932105996253559370307401481998426654245525964176831910502095505085766352833521270191690904995891667995272862913495760756837430159120105894699124022926066563471070654426034795227925936562842126722140557031549318760181043528393887557359606910174952268890391472459186201563215924643929780222051709217051008258015482345630650335240121954864421023251640414015326024730592532525732680614286905637000079168180602524350712835718946683005874528225006344627021357838570485035016127975286041891532093344790403668741370208728620606550768137179995050168315555094845691427366670374922142543396117904902980344459864920959131943877364778308629577605685141848938995282474753164991537796084323641903655709157739419110682202614683242540798358352733227930504338065315065663944223531042230428010377985861805386640620975148567116071102336876025431993055658804558528225430816227305061704108482643243194339141967878794450277530601080843871416733955110397470702066034956907997976637222589248164868989691552798695653508159005711316825674796398260346836136157224351083994576998646848581335331372910693741264542015188243208294082155382330150273343830081020146922607345293421518729729903805541464986518639606506164619405096920570656159364622071927624512274534462262857272932122805494669592698865115146794309171959904453692909967977810843288437723567640180663971704333370983843023461685075304863226775812124370298898325686236225017692148736887302700654629613255621722760487519435106103292044347302846298410392753514693074401456650987428935860374671510795449289602867351939337819190918852112715548833758191696203382302014005847302974089715545793954843910935505879643431675458519396706333131821840505053848999848844116237764939282012568922096915450416810750577041197801467462966389498770183564093761673517243170952905207108050928168616233331157746376957619143594871601989560369329525535713345358998049892041418759288336241051264100698030649023418448380772161312367311537049078083148691857426463667219904901685143476398408184047126656391649527768726211814579475468493850549076276403626989717687657828544910527945983057641460705221792673403522259632218208201326252056972297621514429499247191818791573852176532054238645014448359004705909804601852443034442239150733432595309831062863448389121837452103241347529438351270971370770762827799124119881272120926898155362501621103423220035561989782540962620107007119590308586466697338700099620329982743990869515453454950438619556244724678600580986686316451025596639653247427098006582355645354019622922801905901604306234717416538460776988135657103032137814193565652043053672488390228132458328296969245045396302820964173480484582849563538360046104076080226754101193654424952861013969975240160687842394133672119559871307191117155851417731442437191299809328549591090541031765608428326356158607829735569187571369394458656863997797533915646504426758764633352310607209287816998980927525610048010153961476136701970052869516285299016525264675001914713628546617065137938450172788726723641585727930205325754448370275283188621991911912627114407058710889762826644741595228596445406749971004119406360484814029582067293743801987758487855489736416352720372063491923701353575806499829207669109383907823494697558220086833108022355298130651585331434466006549767277935490979419546594488456821286247873910747107096981059747862549841720079609949069057959403413814369215814508983326720913950479146052016880995838796322820367749856810983940450641064145601869733163728680554314933465175860274065318726732290805915633988058967850955648550233055476164435821652317902525453510860906595214857518515338517281407469115407650874817065110183204803953002013573662202425235561422890231834050850022241834900695067146462389965730728748916560414292581139014571110177142614091953781446316518414976955444018173301293223444119304260925530849976899249982319532834640873576177842090863159167863632395720948729465677710951384648351403756021877239913709829578512366857788641203881562520576306405563012763011788376897159013988406334523642185089228673274851491683175569176017700807301633634838530262789013961682565406146971788145969981338556499080920002533146003716054333883554551154722081447925203941331868798043645093768891146376942885139078502691466894956314643243328393410105124965186856537824589946230719717284650632091737959790333661262220291357284124235026844080933248673713022845347076667365598268641603215939753680523745698215962339685122816757333723057705331251129503487990543723665433864639158319123256068254780988140136331502770525415233568198758409443320893379910263584829145309789524879001673486676958772230919651621929918393180487242447388345489628020173314106502664049667508073493964798581644498805944395863028165246233338902087567190344820287508275578715731404508001246627931331884613341064398810181070849200090753614336412199955046675718728891040246583199119016916071717653057777643099691497280141543336070114299562050758938235185140932150218507082537730193332113493512488864735372614716855526003898036922928007016388875994564413488564813558771407306293714593885044333668256527617860825941776355891147963696076136478544350565780030274516707567185069121092048640979276275396133832385648246120480335876330387155964307874263136218841204479513987183809753528038430847097028954222462769733385509247509572602767245751072361848436896000960639515244804491760258991237407297632791800760075518792620609185172996805926388397642845844075669907676474886505451398098301887683328225648234340590016509888426152153190081901553896598096128123136985062590341995350183726686328441956485630902856180382438667049193072824917952816116576651420915571863634478859064112244695400793391102433853484831927793087762243051958080545905588401643323913058610274853152701256614335773351969831458930756209915979276156636071273638973738659554267535702781639408932291054138542881163455978143227794849966358184838738340277924219625914635991445945064058878757742152289832050332908413484759560482964604509008960715739887757551456634748221378165312279005756521501784537508228879443591126200483534750582668070513590275606027176100732246416026266796376452235575140471866758128964190092449904671538321320242615822557318277998705922738177474739326624354010997370406644708467326970424409731048505601699138484723717924819679741595708521183423901770865031594798438029390717722230423768926678756822406662787462027086035707036144847128905209140990823460844891675123807194620890091638788233372853888116640958451985668362559995107896117483324852378811175173960049374037641424320007632292945520787846937653895090430378287808019673826376738423647730169785592644017321949094595750603685297039762450198837660232608230999505327618831057861710584553432749253744494390456465590055457223487673834925587415268321556556609568945654794880246475615972526903890478700279051908587447669025481051691571659437971748463024650252270743679684532440258766501214694949631241834759188708275004348786957802342015647500011287648918067029813844140604480124202623928942095983655232016125698317510710522301202026139983500358497442375934151609258853081439945085378775314798551586438195175163555387732593695502219833582758710452170091268573987128452703392264465465869362885625497833344739391919375608783147575901264747470461646779727396593942114688045329851399445029366718510199656290226530398283746489987640964921174871746480353318586535447758734803455141168397441262734003793934118923857224663010004356099393233151550012869787311832105562879097659786360495152365378215318191234097210580306388594542777050971574200397937335653878347487074076059230192831487168671532854896200928806598398411742095179599127355694808376992354301304699855993176340691690839113660131656511597694914147537934575918271668805522397608528810852194569721486720918582123940337646953607717432553742871369346784815135338039394077317478618406749170142400156283692202688052491175227958659030585418052892547807892835730860306567557224719750273817058960797272101517355820701096181286988533722679311393738433120459915870805942061402951978222933225023036279411597123582081917294291907851821201939956270539947064595636787375826988891731473650072233655985623556794801447249211252068681517816457735808254399144434540393135169714555139306758636946492754540292904939322613965222910680509494690670393602347119117191413377942020660846092338198202369122716627808898551366964962882055922284598688531054666348999918879836629772007262914673601717877394561719339899004398300637098973182011008599783293230014401333797053564335295638433820421446728859789142706145000118904698455021138783767313895193728131297854820167080979334287771817516052301771797776341735965434252005326940243765263785984607606591335444500747388769078788665714820778689118515951666467358142264102062903184423439574071947000429171909119103605682599889306462755217603680876660726007443948330445274307996342751321826606891102919054013301207389163297632430421979382980884881383468992826705094042234066006010905153372105439230778339910982497381415464660375671791438262039680420551210516682615995326071008812106013015941425861478229263986183731634231259678248188770617675906082105097102402344983806361052353717805015491750940501107522285603954437183969184569878226081485601382764345906912683268703013326630292794567401918524820774250818573275951602045074431703286509872803508416120096091009469706783963927367559036776667927365689584001732198944657471195075746648058325693860826878996288212268759892406307517148473098860638127871839222339754084802516046337340782391241371966616970272607400303506774416730486592771114810975646530502161630417940498297504648001318471051662029540799231237700190533901526969419872830819527009618101994106386685965574117836832465039593155422731527433161519689607595050216594698937049271713514410438118471245379888366796587806900531657115539023867139554133909591148165406066572883089116840617013306572185150945260260815555199785595408326664172710510691793486757662533589425062235436387910861592255709487611144829199197738554707924262755849180200090735477787867492957610907787612858851507680222842590603862119314664888981226401918736343002975344522584866125828667178894285960549165385716398327508732808471702378108559284665759246128645471092480661759458810969815065650407145362753098349281017153504223041799129115157039660179755861352614638450945803206553237694039469393073014520122452956068973179902330735048940891348316698026513001102560300864450973952674159512266534124317764052781092975629726126016118449391993988168521970357165972323937175843873926421341363443132175507154346395693343822852135495344876411144966661504349258957485440123060463593134540630370801256295821742930565814368431396671820729227806648453649476438791652257880935503723348231383928577303514595861657727102816127783118894142171909369540543126567297016671406234234289579712634102758109879045404321919365750082843934999059018517399394355911182637410329078634549814033871803407117966102243526675178998921813024787590745110999855080614532823551797294478035458528256862399696113022177105278997318985978482152231212459844423455242455994561130512801525690760422959271911149476725078504061859027309840033614952423553853874801094005706675088181329977704512694541771733345781864343184564811654368094586094046618227248453431928166742881343571064625049064194079815378944093129776495090166525144755237334434518025162178744167986166716493798064695825801102741039917888705230636477271672295527257824332499830084996201511769230690712718891750068269348781417050761557283534643950805480672926511743400857455853237934124875109636577621247810770908616916516490461168098384859675090873051117394473453119481392269894156318786779763445993499582791647683109860008142802495094581337355946830258134182610229667845293020726259471379822324073206420806657102281273601324059738801807578961057128732635397971916798647346369679389591289578103766162507698858124487099412278136759498623125836400747766987911692805668726355029552247432599759893984827077816172252900213431068640587355929494079250341016082975245158205942292722156585228406270607570472501075170661633945621194120167558954837849816395429235918572230492820885702471063712872571011675016767816800899763083706734334671754537285773201286196459298877449668810415235197844104769661155617364701318283655777335631875156472505713518107821236104790384072237760271937383470324813247522021631870645051089210329664083416263933287956339724039137237618175803461649547027084014955756842908979145763602735643328529074837665570835661900960957315210156549495602860901448353712028314167223792155289138599096179116855355548549715627032635674630147927334165714928289062622558597996271875006073070408257190569705474272941285944276623489667702318774515892621057812131469159230527645719737480979782066474835912521907981863547090020363599197610502468932100936538353802100121319227525394179521468989718058840352870809475263106903523728278636771674244123334742965841980287601734251756764372970124717145803668101908767450023008355525009391370690491724149313470585305287687886474170691508757696666357253377713524607466471554330093829519249729337932997653338806021995765849443916151288083745844518354871992537605048678901989912056062002333302497387359330572032444859375253870738311851383443723468451818339650518092107506011426744675522858702806351837301731927502217280280625195956666286553669396178622811165250252369850184642536927093969564015834814725244094497529117337632232672498106804151801116611694475072816727649869887157768330924275460522937071957397200857857313708089205263429797263838190783442810237351625010990247789018612689213653445063790954902488656720710827267202467157462087884095840942961793228888524311446388018676852708603435204841305440447918792455250917687828427752671086324742045652589615339328147455378695587103029934194400484566740200130961072737113401052392442597669126607436967601820533535363590930043155448695765561184498711883201512071202866642764422488785545788942541287912569845680750046871116095283555911815184608386552104218003950315601798668727694700392688183118244877608606959790806966370525962776757649779280530772790607872747395352818384944933609538178755519631911406343721575509858119417962319628305332005376119648599141546683296092150519811867219625404135122363257805992668789999426993992095121685286960484078836297219726950474653056767317532231652039865623189282262388700962691358180881970193802393211510390292117730551185711765821153507944537988755293547455846093865321191292887256326775908277411602999719697642435634175642285730618769491550762450504584589658754746359486830333104340616515363523596779920754270093469614076003139531280791668633888223787357178168945065365167202385903566188801479446973048046231148957575414182771997564590355748761612764675047526988460331268787516398336021289091892777860016973462600878033757544701769585825857096222501148981499390898979555476243426005624436355586624422596319181020154867697088379820867401475264518967103692306029603700882998635374331388809744368889315696377216011618242530888458293616371269562185370132781383814462337844143137269060725959399643573637597061201282451615334679621890990163491038759048303678642930268758445178816187401030994824050603566140276568245023157581446244309386233508490633969394247406450886300695688825737953383606490775521834115919982036193061594876395957542335561019038994473699547436483760008629188233053769184348575127358104296232428169958112754839461069902892349658605047975811252326207770493875158334432968407484555009513570332730440928118815274738139652327585287052514825848313474149791865113099997457473015301531320818861247637164875191960141836384531630793645782546806033715996666485621184204609390539727128398295500565644449806037565117113460859348169910260334487291635570036091768962967144218096302926241425589360718747268761777767568797325763664365486185789889486057393170568636797167652055340795663596166762100773889815851831269630383926990882124313017152549954170727115792244031539088113348158197724288620051138070645422968314066881213817422021667336827555639292048250504036546869440256047328467886647618868820257001081796004743475158896981222491175738253793587754016526553950150362937380591654975893283807270604769050445515147745462863690689885753284341836244041292307854460790513466882097347805747297227243354817339364588923975770093259206222929670009124806912561401608797599653585753143530647421827126714001667803232328352906367646279417338945516725688535696628748008515796371938927008810129291796232837912433898673268636956184604627454400227055362360177435363701384859196616937804707509729649937257472208692303267274967200927714719747592409887653112362981079503486034974059434142500723354437326974490507267864232446192863428968652167880513536720362305425732680547919858340134555065070748112233979429354910322184799048901524399659000318613879758634587723995330109025321872076010673975558494882081200500506263302509365170917488632026041386149490303429802141605249500147567322099715167969540552688062685971146520682652615057452386791161497562320505214880895501084215219373148968974320702381155825142059868168630192237206215457374319085979441077260534405770336404576211839376129053657391232148127145929349639078503710961803760245428285954102940236259691673360991797120414396036715789830493752641519987876468619180667686209934104425640430115613357011351061882287847826686182036594589779767838946654213824202403895551173119441776088140651531875629813599339021224590558925459713998464956843705694918888831906741642164151031416930106528632050005236109681626977896823923378324638516068251033203721142759249494857376132949957631518278845714799807937319479149090580736398159742571167559984563197934132174445759758321749497454653595278722768308924785340317924479218634336860554683628693078881641277758167072520110822810917936282601270603860228491148865491549700655861051080380700981695596777357949555924854067675968496328242291074615468229324071754325642698524289084562699882809519106046490069953516192734684535122044061767429432876489516546094018087213747768969532869526574150964356662175088390011612630613475032691023100494409981425821689957635503426312945580426516465670036932301468957229446493343756668384402252974814871827686288410891018041326058588324787665570445016955013534334312802484522445722758786766111751623184206616012812234004462304025607410074075431000799605160556248973171292756157607522056593450651239719419042268440249497807191501833506453647492738748110402465333949402627551842038403641953040457471078871738555045201811923051220572733326010155751424971263979524212998219261301447952223118083415766339148290380784401143255501384540108132782983730790772171268756353917729899048632303328549046826567267401502957671500087427835576876462982391431143748560581310577452628036423750663032365892904057830290122068352195611371100001455925349301763040020427530920870674889248345014752895824574743677289445428439019727186953980962284572913961189769802461543156194717947271176771859658149671293182939861727243951954100546297870749796063743976348217171292044546069048743481976342875224703058273203234933709226802276995909988369052630220917299644014522976309348397038543126327564796659101910174596742925913592842133530650125499229020937840699456152332460264964780446241614352006011132364152421996887242733692875202631449433502684130942254622315414648462596961587935199886767030785295290410390896052064757828439877909980054654934136667213050055144287704179210664054085888023579423791307248845279525900032576495991469594489874215921700545560105480046830153958959331264109722551265940773733731751502536796549963275424733745077077941785738394176039934419045949626934104175916706196425086384693415792806569315128440034859936535025928072588381118550960408563020912986842557849945190161118212033233080019994511552289338044943367238896565972089776269833123322752916127483835277536286955562675536332906611427315301315479368933284769758433600521991471963200119505957587445620765015534576763186778319580009861578878914550302901213746398691268097989953608809396689788015683916703600552252759897238677364321475330092044991095258710984745572410561664581831628378769132459508719287595171699043747208437405966025908515368052864070281149296374851901575036842261429875491622544224340259222492556380236442847628232753747227227372123942717910416637809980743419951511779468441217569267843651289561729492292754193273987997852214039044028210030693550719583303105189768808708347686943424141113085299900315055455835794943597919754165298598357610793519398368517278725093425371659378405008865790559777403434114286839650121303059147315574521321924764798828424052581413525523180595627069206064034630091453673641650212384821756890409215425364823227016821091291372419730638158362297118543381315856737308730319600489602512863504380816733077071680485723274553525695463815791016984332414608018510938680992745319046023662047115470290056552585826343403700311244764852359734457977689356023038378321807848769361724185841715886205452867493959648841839772522358943087295686525211737862533875201474363246811648051136539117755817220055678708939655038989191079419907217037281569794621018070583812811453652126559248397846380373328033031327966675569759291999535810885057251095515799013207718190016680540488203480190905787334181199730951736842047869888461938336264913133037232849597877299269092219213698851817091106125464827457800541632827720434314001765790189638659232876600239300930363599324413449651098222567330167460427145736331744950995443426773206953212445349526765639225646287648934634925941602597676821298434613075534788612543653196390747522206059345164395503289881208882316102626029461909084127373029915776037019216746999123097447469557313079986728227060580859314395999336513819467924467745075837835580216949011348829353835618856677048582853523106619639476190435563946963050058766694489862551699471748400669107542733854495337151747373085716590078846414744610625837253152719937375909755672360798912598812481155240033042353702909267572052317874148374717490899711087739918449381085761818311305145799854540191527403060783178405846785428522609558378465237825591789813818722112783027060379516527394106640291418623349281493921420335761844993932553565564215698750125555497165598839465830659826301175676388158375309508622881637071123574934770478966997575483583290525281476984855856799919479833871030943236318486457497763846274045464219335691892739518118791779004309505950951068024221037023700767418458706523944172485626704659075472092833973372504108567414497651544752754429163580406399761821572075585221467308803028292396074708033145743601919412635289627965454619672719664033969620109727318022649960059039040223661838476748021056963156291832030232244668478579523621787580005581737425807022658331650775614542763930576164542009915108976392932353106339475673589578853258696497657803921875633038330101549305441891095598433013998303788894327701514460857409294216708365644913492574578561345105510078181394906704543481912251705185805013080732142299040879999086974185893800150436296080776969430287705410069745877742075847378397894826467748379371279542090548711197761739527268532923094373144053316663743999140975317374100277816009642751423393409493832432669693687018089385828718178784182678261693570945868206688815713449710796511755009569541075105559663475582940406140714329681692382899714664738659704255193456627461706526529899032476035433941694115601903404356295521934210284929677203881856260363757431256154572634304983854601715073306755339797643511505863594182060175576947376821780222038857416709444771808440090560812658016604797061985869418236547941466963858903830461242823620245878221545143154421962351007209209704320493714045128383161557634624608731052000759887351785826566842206160138991675807037734643815499538279047255459015500763891202977637159110115340858800223125218021252615443020595164725482808280709810741443726495034171859295188647330862267437342805381664290790643124401104674269338306764647723791608083424391524793155009422322111697017995475474291242184444211293353783058334520150660187256066314751603528474360062921569823393719432717788461736857442541632858526877327515994002409286140822830547893410161679926233196595513271607157279807487481246009241705436351278074687853305935405249373253346868917173704091325075787181524334725225451914198410717110106198969955390028217399503063246380174399188739007819615361192576083200183251845785219378890445771618647369820928781655394565017117924724323275032863846700482540484317133238119505794625537329599817890823183277814896431310410067962726587737079413331963100142616854712012985776067531275501170437890886486812458534719428674508590501033352695472987089873055920502344009264488624636556065157014331878895164340969173684759813793852747448354200670685690040451475165596799768513196800651363208742968624872349721503447105422527112627719158603554028649090750571766841773677766447023590768633720719161244364934244950817545906174527921544351314215039752708983445901607459256021530897363474962685905147683520648024434474335891138932629553923092925319671828923102616606765576605628951823393779229710313185157707182707742751776519228355689141642845741490061712798647918636997517828270048096983569287224211542386732414287710979464580593191445885152114872158513431570110812646295851588762264470358854936721271377764926784810505931535690264955573743979494211026073726598291453691670651020783728885341178833434594374379246547680391145776856883279350502474512099493171108136917832139604040489039850097248836000121041360481297597521422533101939374520690479279005919961497033824970919714481239888319794791511873372377758453845038067089564693147243838963213925321022389604292830755932345506095013032186741707670164800165262328179377107973155341643514820283480145749588993230856096627431983417643394286898852102804209147864123783097809451246767916003524514263885706701783414964560392185929055665770734922693657605727744151883227677585572228858251634027330520409967633852483339381574602054696623115646091608564854050205420727845083597824717338024812676808994762200723439699083116576476857056584201486525716435930445515743761435892783811695058931056960392233018035362860696636551399550744964834969428640718025445299375761803965359932264440673488190219932645735772726065209112381590772583443567591092966510912135245933435897852067278719303213336550445725841075670460068335625396960261915087144112683961727378503863195524583618085895882296645586806562434884031705310885042817187605101897432444878814995422307964997548548513495977588817475642401423287601238741022139536674433214936260412157020153986604567525607413266988072194561595009539549832067730508756246558386612427941214214406031975493919113764889791195565880472540674065744178405624155019073005523770261873768677108317495671223900958292329621287857034446065217541380354549936536079297029053008875044234591780796346880160392294396985164348775699778732279046581871231273179431828670020730534005835204851054043606983755019532811468136195788042068437461637096265817134926871334926857585861543263266821807621108330966657584045595288012003518991970740782566182903634441754896257797102029805478856410029344678735511168210072214671539517746815598355179251866908745898597171818874552180172687988582317092962682104807548399876978011503133907817583760286160518713761778791938521769080320701063551204266094145143761187482088413100485997991069281722176665145748353277594558159655436652759824100846045111706756854080246750935515615563247271897265505250917788841681272113967920996574933942594386323046399462492207759451662357600995145177538682228450426867787704275406588272106413283110724961347391499102763474169706784798456394109556579720058248007825464801765837182559718506240963432488490760862120620578727004295488174202981058413237816447019251153307084423841235095283606577839998667432360275628661772981924877004663383550677952464988614617954713215796993551953755664145869257771166369476127726618180845137739688355635199002224429725915092767513427026301532460624586836168092053143324186889499606829741993253958116694835186400143366214177742582358551459936762895717427357053341723230051888417104823618581694275617828206330438758206791343274450803307342984211780099751713931260585823243601639842210813457118021850811493906203123306226291123159792167334135210887467534196638820587249632288610294813716109542651124793928318458004541729763054735008536519871685426511194415619911601331658739245849009443077707348296370568101650982042162439059237273277702929025871927972969887898607541467572522937796880681853547928278304900538668267603837595806461454780858841206201853557722052941993520011632907833654746502691606729236865102866619180452834445501975553386546994470428284644858642923033665561885989277816254609655503362068992058303513467151528024790856750137132241872064919602501129775025053718540450408695731156719728737291589642756466698683671884290391172113519506554602832057399122335418673317713959086376005322584373077991276603070444155308483682205502311854766382507715650267437062757580419545695185678583007967203107833610852025646362581320572211546618011504815159919862638811430902080891585331637025309604008230872065785725646037857674973238467214340378630894942964786003158363967353439036775959595008468803914186150599560013798689859938957042528101939782719626465353462383764191737149736609026794516646067862664247383412923383972625619840211998192023194597618456449697703773676914231392044293432278149477825574317440205439984409615235241043619380064653151306191573230468700050103126198747378036030554715098282424361176530259172801113712331769756150887728112321969399964416443888869095722795019088131970907627845793359024027106913043457290631909215584201573686874112889177476293257737957852893130293298698487339323235957093485237103400047041884775764832882866452111663058461659100616485771235872840116445098425786767669609309862086066642435534920950163514121582970867356779861089019108036530704908312045218719190089301528663693988782015656061329644029782943533505154967437106841076135397479548900644456440408817103470557228561404596108701704009785863233325881902878988909753573411289241057202622004495147412429652563181082281586950734244099912063871695640560575454994216782144150379467881958104552279767114641173864081031214278000324408300773649178685661953491572226107854182549333861530634464660528723359397926753532002623285907027429340677137934468830678619966579135976094781166292582219262868778744505361594686089633937380246920507199773198129222414284110235809210802393370812604825297144578041892821886291953532171838342932368149452359019210204927949438852140241727758263880619852489642753926672572147443758089479254308509499710905180577968382798686044319315492654758956463684269611010435817316815178642833976952776528555417597378755076422635204863059334538451299988921550279655961688574508038960376823648892975012596897409023684634961827805434146711844421954752939515561430568685858798096655312359803415491517265979709105612757722259909423969508799157712468498626155604382513051782704788126752649961206534592922262448918384664731479920911168556503809282641107307968526775855364548451215991328523573081776911591106357359748353640175846250898509111618268830890030736163863350720545192370649002777621073379940661632535007006039362708581067671051850731490994891327304102447328149828336282453788064607254865187868016648711758795410245743394803225260999012880711016254178903291965483399760429014852516192995399009882332331863921989139888183755358368126494742322805845318616532912686006707973711636619090813399732489376061782604052268781720271508236375224692014881555846712534567094819934149922179421940980238791263657279893724267830793075277656542332745609559225049915410126992854139033885362654946184144964265159389126715750668928083209628719152155382999178874178371708531856792856541818388965213965862236701504693518162080773600208200075994463915777551993306318480199966206586976305713952016161473912728810833040522346800319843742566174550041623335192773292324555642335665860682904119108347414444806677484223433271197428554554928880314728361289468008926572748539101198805677537816329053506077571420060325883397215838565974704114549268182950186724094981870204166994232092331232269610163731928143931965113675493547989917410387238423777295112049525825868620834341452587509405288376778115194671224361603996537119812479806048445021926711407701017282539717206624882501386735002594399077182400222845908719301210163087125452038561506712807914757737589983089835582500287966911709698800693140163666868169533254800550319494131929826527642979571809951627316326639199158736771237772822034236976275440972476743839502183200805347479351335972181325600436307504428353188710654043540523078759754282975677982563506217191431631296275683570674936434000947488654814610287411513209445432007346098945795340766508767740668904387725818291947952542909232668454171315937842889358556348040160604962455218430972893229636835435334418796918271625440203195965218600709558639799609754465863313095691591065528800604834825430869170737051934129238879571600694678291576205479880894609825329079102777833967091488466945105196620137047656677208624990123375892800653591826570060218345651428811188562397792623966779919525635424470757289457681600062478730585548163867998485669661331202609672062825701452274745022099481085434092174964699808260569545630165760508228574355040835762127985580635962400369304534080591166151424242863898163815271143151577002074188871024576307328562518881901773486298763503162554487550901904378867030241713973908016232576283697990651932304571921467076320991642837038403399955050696640946421100331236586795800058293238008832618081987295444153191826095113458965836741274867492622040739880493315810419888755452640229373487512680561222755569275305239343010237182444636247842508088883727954959823557440630864872809498403015725562838732788776712065397104241792765516515525803611597570383847007344584254809762886305790190323808750920526562785727639416097631334397616788230579000416780010245163792548069555700024420741222044013123382623053263770702684489539171034580047029892282490552815515100259135064499070562987073774097119254258005371709111767666669532398800632469499229044745263691333153484431438225167699303381143943648800721864396371485224131270479950241284217996442107445883573426816878233387981766406655767347022209894796433731211791696051587088249102059437665319063300060912243098484828079226429766952696199669681373540078786950741267612344504898287570648178866408310811211289223528584205689774704372738613356713160358464395528737916619749132923089706422681062004815247182025988613774358785298271582877657559772945919111055776377491353629345165335275728152576371613497355188956847691481958278345535710164908503800136257395152688512216512640896619652753362470210913815600087313190873682100447591009367220474340468674188906705026237009918314595201620950501072315521618400756881781836088674707858764650065326901044554579512094898250308593613919894166846250411224252602156590810936420256932478018146487933800843100858739431840864781564619033161252334948150292626079437759719847949849261539043599790611511840619433925165444350170409441272806045641151918218608768353836994789437403351527039862048343531639011345278317577520088228599556167814415698947551298685621335695413831374397810284670710954646884700736568941224593523630745688695817109539123169938392239144448757267523347704473280535868110382201222468809710556292008674785635066529753395476764359475167919217470185905715253191129703308056948873618455697134341049004248943000462232778417440632627391902181121261294386143289204141848658240140626963175498581496532808631421753429188070542438140194016856236492940960867960496970681431501024730086980237996613672559666965066486249018810804024551432192262927575971800576195329600769669104523194012483694607147984744474370206505518059824286137978239467591133320804760153017925105279920746887345627318891099965479911397401261514883650103621108101705063901079825504670688317060073450302758926982960058284221844690702413402106847591479010072400826183840762025846581909187360588505908302770223738674003796074268386518228820957185347376901393034191129326139877185469792154071287030389952318677680312376951972696471175528761745937275973712104917646008483878868370095069984717082111691235990351854621271965788862677428299651274116186448763398150597606123040376844693106081959993883583185549654136820427913356645161876742691199613900435454873563703272007743353450524635775529229445138042199701765192573301037506181593026785647314808982199762002443620558345412353900211371582866650288097703739056018479665924290788231486621998503759298653733751699760993460899093784482316897527781512899888538105086710002529778518075466213452731315451567087543818050616533932391639236074127735922283039967593135177956407104190110163144206233017319643831029308062077994639923821674719857639045757420609755374401772236834213049271675661048644655661173757651933453068802162883919052504944255296453971446870768612238291975779167059788387435927805074768970193409960804041825136544142185126585172144907324138003988684988372609457082213712919799162904574114089047529414202781152335322504742982695178978049340744270749183634031464194198287185758018000463833900469018584342347533592650934814891265585436802437299970992619771975544692293543220970801303345629227023829511576397218004957896742261886479722836619163446592422275490545411525202331898498234928051994464714882422229616888574637682916451250423521430250517805133461063078126088615492893010405906135218044538401264455672449349265414167593488527959409100245971081554146075753777632051421790287174795822184123977359854473433123853403837243649216470763493400759629669120965784008386154778152558772288320482700031027780862059592030246087750609349526953810255575846867612524282925644086463567774173218474550842069518041759179379445467674459742547392735604446992377319171211266640484810358165442684162196259563161631453239691634107966440982579334870540076494185196467713937987053738445567208233957904642181794418134322101923307809473942527716174036615793188867574283414350590474554848412439990982869151685528623364083262144953193706372630978567575296051963811888337865213687814943778227315004660001334300688240124770920595044173844418981399923566213733702135105208210247171239121538150362717920911094971144731047164309510537561490496691258062082581957203870188564639774560366845519141782724288891260942410288651970507650811631710905175887520763848330172029742847654084305690236196181812322328401997869542837710376978375881402321838671388567141298680672500744309797525756427403346516765557282550242987794641943158470572521491770352320695039587408560887940392760129817687675264593503228417886769094794978597571478096111724998284667939016209388094318102875511635059408234141924925866040297251019233734284041747085013430963035388620692686387288815867097730536406098130874775833717803797317090247204592222304563442137645440013639021305362485600000544765332706347253646628731597978343972452585637091828176069476498325095001504210467241758989004499968475269443442901682447246246807493550337584915228426316451032697736155205926563487521972393899406185349848530089493061449226512112314532866270214260294614315264735209684011562154563640560360742615618094751433982240105901570584294388736793251459629851900069677436654932120513564286529862412715905156905951637381539269991100833180039832796359735366271185647995689417161193359282444102111847288975871637259046485861638149017021973928641814580806479515315061967789035103191880628280729000986978806519740614268481854582248771018484497960610287713709216719537285343726358117269066024872987833545884441259540329117985992673807548234077455578471401226012530183630228450243959887647532035710335731196658257516478816343805245294470714503087006287284855315900358701235570661245046393907839716098017314008679282749697026226731401649931724957707793571453138590052700585216315351871936043643522724898107060551454764730571561734783734106650760823356875780949137414455534401296531502343613836063173379302919194544821244378951114411417302710477296072494157880301395011056178870678020883221232476896538049481624831463087905903421438318829983312740980532180259656939605970313109583870241494191836255268839059212552327075758722614692395057685774965531851663726368100102390979087366059117375438865186468664990511576412177022691692741568523890052931346457325206633467119219076981198325137798944978897021966107043995880977579426143495938842579921829052206892151539438619825305581990643645013091323673948466726644533057634536122126207451028985720510321563125338569929015988800462701261805482590847745338337279892385340754087359003430870736502137553332188215593862266175038262268498678776325497543980951512681076808937899560792917033890441003801003526932338741449784955907747093127565544549514988468597382328893902999228422128734692880060568049473817468036273463500463044322971469869083808751047833592383956865645126741813864400869104334862269834146653738391743993670122296059421099647682446546327802932254353153145912517374734291721936430187230504662382072834635470066543408362038953438622600110572639585562434010421032981186738655122014614298008100393031730085709224445843559792550016501316792717986566423778441756194195816449584526218988192520902295596683217406715433780072675955526815707142150459146087821887777082884740355709256139415330596487152071624796244624409446192329118572253291588841366990361987990264358322731275232630289999811134692009835705593246614301596841558985237003994247235829836876458420108455279146692746942518469778195360699245483556011098067973430214473070040175718642614776751924632196381838269765743380219112242937173308472703650411705946963054623412562184856728613484037116465381292125364441126784917867351094236544821720092498729132334916368788580654500990995757104610387441834557479890948718448782983922054966772490726220165144220059913610887021344340885241713366198487689437872749316001004840023810109018187050070887205535952125563108687796591643107722401054518685569117879633373009602525664773418446108605525894949601479475594402132772152074798272729075361485395132604971495482231962466651167730040173637677609172726571739101047766754526262640345566519811148164578621691834832665643563146618454407361752053893447586743774371636483793775110050586605469049112444555828881575299458009333588710642915318547947487154376834885645263903585538907656532549513910557520391265020528768807917804806528024715149244634282695451306370071394826394504057517296144479761367662911564954158904004198315463535743107426960563157960512775730184303215163910708912896616511932100589997637043546137953182554722179139234351565855064702146184752682329709232272081507668694151244736296063307605456002424038693535765050598968625813222002159306796490942451944579265862776697364242644661195678907834780370644481094222151881173901414062262594639890516771197750026642039100109219938411642013578073246918050930905331759321569425819177745338338865404208778382685289958333713715384060400680850002701739061005119816686523581967325420493006630269304857071767091059616818515676341633811504750195163494144432095161157545305205552658333137377930724644686364057124127045978125038892398290437206552458608440152256563692250806286088874981059277839470242578716158446162620457700209968479371270186778045560191459733500590665845062149743051953634380910716516341597149493062614868230572468766040564139610136488764769092213196591356169633155584007897149608603591890042444433633784136925140377057647479359820384015836950565504957037861054658015387248463826819168050202451555848471425662359008285904724765532528402569524212914349256603173207649915351611572772672888596688442368976975409180753329369480079176313022028350520978476925998353489043756059343361821533523793625284765444642993312569545138597572766478522179220876883376508950309422905458018353334965461174504444456468894741869187211472012400916020716100808192543918941092253276874989834473221198855523563335906847904774361075354036486601974099766875591100327191695936251618987489239805196181977693462135602409578000706728365364804389312965838291406828449222994605629824164705562716581785453740231706470408663557597850543831856803139414738543426942042570998221593275367622488245222430725578033628685468190490414093318760896561084562684157389041335775671548398807648534387449253301290235250387278670613220411827070507038391102130343364029553542291459980505050166705049705848635538963137898287583473456088707962169588567005406768066977870122440053297190394438296907904470692096850418502386008885058830978146583771530813978522614178238075083721799055378160295780954016942152377117341857694046423155403743922793221891735701833357702817851155268401949336552978622284524986472887101730091098976743811098808701015835132437462335301266758517108312481802045085387437349025951959151248261126833945616733699162088210208673292800772786563164327871420930672735863512226181830879186369792162439437745203860358076423656963002404706834990323086435442024100840606650871977699278658162891772745711507854418927587279792836999480868748787118830969624604692303885827645314297604033590256067496600192523608540987182922107995627462842361127807385171039224821234785375879619164325478844925671102583578755259120692615411935639910040392043640261132414021881285087287169433977783052337324463669521024233833912300704950940439534104852143482123257751120341367017533896104722902440734071016554843834568040075641665676736867662704498167772923492136857219452160030376430199275113900974484161910434765782069959392008830123929501802383006178737454332970864642740223146932641803799214948538294220874382887851335049756806240397755011570878523821706328066106746940739597973247389025431815641126365370448807344991079016091644955619390663236646071465769161833282954543973085476110857687507779269778835605614825017827671228705629290322396268986927925317633858746653201980318892967209675765665360716167980488837861051984945349439186367449242977782184575126968568724107840519641695937944908728132737481353436955841268668984098363041346245870351748709068638966737384311480991301879150355125478075008591277266226634930106502537624998143044337556202268615977999075869716257994082489525778081293286512849669450816879756736739249232618868954346942592374514520608157445479678901244627950343223691630611245606176199176091258567473966150511623506195268187433930482107456120956185422944242493010929733554828987009102452161063532419896211090141186667446439696250606050564544462499770745102517022459754610857167231230277473838550424047952774072507310882071616266075246692402274820500256680468838181998204345023320282583714741444332307878257193550317000466173523536894684809415511856229049580024239679431357279988914416938893398191329756029247012685127969344320043193549411397990128559029216663720290391968866997093303761704446164994221850972066816982552304042568736742848928909344773833163331199579035314199303543724234065343264421038308352862608909065474189561917027708462657768393372403317921104867561322249141493512555376663308595643604271823010338747188651816148635326107787762439046078252267923440874309210142520203866455939744274147418960114647601728341632057479981260848603290582705958820893417901023374600785760255114649593381795008850967447193113603495066658404929198177263764201691313396948468951552078801185635865128603890785482409504562545991098569641899148039735622009973153376786095187621867633880075441212437986625392731681617427894519292095891756120577402720140338082280567894143207019887838749277361832140973018520157373053166421900008665155648077605878155438550653440162785581085172401635294944889085261373341991160081865239747749040273066327416134944761712726788596014687188117423063018515348715766483569259685693105544618665173634567007090688830876063506700804538149539525282297464400758663349683252307499631627854534352296653611359188912300849060259572446806363344291394107759536436084502933919780508219447277155341248611326375703658967760075914584268387993895534060323294327176352193110307495970400412646115278916736448310241780311198010776497831177210016578688889865552247134842334210503432206494488895830752163661322941905904115474335001295009210151563481162172030757129939619319564353637675644462463167442484209956052850716808114675367069112190507531946270907028308684505800218432271432365347841530766018994116841438194729353239448105748422720327669702218036028396506254170859381803512550410920433035383705677422563454314565694216074831203396493140359955442474350896961965068455690957325866209385067329754280447087735056199552670264406066077520332239582159066284247734616425993222698000194380098249357496308521423349899019060757249764575060390702596044323706801292318232502115191365821883410874485394886928323628149334137099788435356923634373248391616500182749657521304085352071887033074874911134100782253323231118248926970244425445358502334517890759249671468786277424959351051085324355726780321409364461664294052994967859194781621411322368878279185109461735908375631982855167902045068678813762228974197252493150533918911576672597237146186131449719581417487768470986159185622899704215706481324289206627679596647501900315123513252854182863726231831773379038405820447970796747756941947784986911034377607752441538029374505088981856658962106441264967170138325475682901717727779771941063862945008232588811523730384509783114619018842124771754350861403907066068621485223300896768461463047354293628632963190608580350265719348770433448105950612610812634159584631353746277329223763463507021033485136598790865744782784728924813717869390047877696295436847372263111059551506241484790268850108092339408244655337505623302352794732451230304744972169315580746134808248237998452054100831355553463972645129395722470504996719076442526161147542036981592077649131564122799588519879126636326854023538140445579502676993191947400851417038536668503773143503381080591781270676910380719701992011043137529110475266145415148477344072438918104057279538677934647486066693935061509237467653923933741879085894572556025991750824132658630529593522055379917628293084417190123665632167676998065374729703964447384556797452627457624040207352083258070720603218988980467508278514103120539487218047829439807913757044471730434190190303409465348242828052995369671154086008865015840127756600078991016368231867385995545268718251976434219116544534218766479620724397607416185745505623628145708564226824835272602813370767608038476941553454353540801298667933453096074069806140976900779486228003051140137335635563739112583233859271235300731532379946796923481845062262857272022735049058006982872411314404381505344959115721125131512026123911799719403138112014713203363445791162954327679238517827245725159089547171000104245541999286261607415985460549396462845275162717184057613896703429065918283560019809515747971493235561068988391361180489893963446830625803095955058151897232471458072293486904690643797170217737968491286202709828998258254306429746973839634421274946177585050956411662553479564457773840554083501890468375486249699121270939880510592575726366434369540684770052065021108381331020069500419429680901441213286637831295270211138821737287736286704429805919652005072224946850392037516543498553558549786107052803698583830053996348608030717423857001841270442684903440412330793896897453243731222125200108895156408335823745120184548882493160666292725836821684513922478737595973948959040825759604467538611966704126174591992342520771642362250951162900750667416260324300856183144979177282976829149657561194964527866173698253628454537610104113372390469286669865065843391030132989399564875484290010736870925018737461011071811674433880775061535291255244843190252862476204009249658079491210764752978410161125747159572699573728968850831838755761056735573978757734347336017168454624370531808095240838841237210652253542837895241841243766261968630250249060342186758921083408172686496974211775103526210778175457730347024775980978514818941333779425795145716213244563754596647956290790566938397075642318723207902788495338687525175425156119515496409582741926631285005604717930546747824191882288558898171326249229721907298554256497650713298236239672092035879514360240809185112119357583648554074226028270067735182294292067500858390206959923498782043382811767437859783410875884956714908240736895035187554642607263730294585506240644534417018820500668152612071714833072198113560962087950388078327555973594696319867684785295899789993111476169434005549185701260998910789393426526650649972547644339475699809432394470718360256900573382991533696083135262083080412478558639218682022978651989186016240826107575769549377751273426706987431604321592945337734520398703567135334768398438105364112827665703009319800773855554369144220190507731498282795572878660761682139558655122556810247050727567014265413957214679388214010476850122108666764810392352720062279746746036673360709395512983369080736954584717923357242377457098609208302205746677202400047364016113501976095783972184455190016504057733905009798974121830782061361571551814469704153860965698667826529849909368401235918486865453859875825826008503674739040839397954437002387384386206300811112442576275926615648710453796123159405173845270356765380844342953908719647209022122818028992116672771381079104028056099586332894840009418872760803361211744517796772239806015321986526768640582840470455754188667168716261827071442993246817714717894114526030729530339865008221633192094007532463736647588536820068031997949365086083893000540246488686397360239527419945101030426631489065525941292749776431231308909227309791108169367429651364171237456083748529775406585916079179418921297223107093036982801256243172099771875972396708864843676637839161338672636178278773852425862496994225696897009928092762982898194850228624804201864218434844357032220038598891079536386052880785377916968647895300965529231571010618389616297797858295002857689347034432770621538621108198147353065854576131821388092837579831545510053057364556578502169215910758665644019186996623260561609995870296664135556992666538342620142355823720746520477105271363766599244747219802769299094613970240808287113412192349987578909496071617941260947475924769356871663615187558290734844256934316222731629414250758306658398173682473509598144772890433711636445114411509421786337869609780303473353994136184752541571889389630535137663247304862799090883846865801638752369909253646706860080318606789340111367816187888090286828521615541237327659375855346443746527006475688677425302839785420708300027358927281916060006516417365980131649977526602294840344251970852236467933594906745804147094331163335006834125726396215555109827705585083235574725838010040247728125476471328597946316870816162017237754425643786366426056572481893561774452603731965353576954605005785015929097583227005505654765445791955065312422125061886929290688778564096155395522833110950240663537050178618123810751376596198100768109085837750651087782856334049966720828936244473693607894739780253076842724371780019167096091677515665122320040650557794937706603903413381502665026048436257454520803882762822352846164117068297123565337371239332894190070500339628408642098016906659253884490194630411883767615278196702308576449754009628897478678406489379132566502600271546028504230060922650106723383838495434288145899007724214018885248288262095079976945584685682212947841193403204833173220299103424746438397297901219723458193731569214553030308672588629339726970425274020634409652328738405003761483481830223039517815104402835274388296474166188278506936455647157095003327014841639073731969740220309832520921762555431940584252169248153300655503107808599653830737359539660238589977109399917616671012679823171210934143857468100739342101921819436654720970247584247008039842725851166165361905405543496142678917496273539939459520216757883600130945590142497664974327568812277330541416568641673124415818122760367296709265531325652359264970989795904741808331566671290806893831455525319755204578960089786483560395156470429455982006097040128686884303588572855533667053942206393710657499453414144154001412433590501991845445284787833340623056394699802409100713338738820034204562060472844050349748733839415717214724501090242368000326936491665269272507446713723356295384322328826521828076335251001249554967283169985402265404699994354957402366017932501728880993187595495117157384711482979501771546124708517241007777237098488145080780449402190114084295168626181009365402803967057214220024600450394717592698989899615099697308516872766591741521352676444612189630175970506207503360500732714729141599460592675696346257552670485077654582109179243359576612037000989528694281517300875354035760886178856907271071323662278539304196014901775962176711290571172223505595959554176439380310658190657302387537457426711307246865955563803612878243231995941705144834262890638021029390728134469980044744449109840786565643982886138361104420523362766871968403592254490404813179573969982994695793710085970387315753209413634055138999417994751852813156761072441897162435341631728040168390064130866069445861164182019016518657465403415456750203524477075846967927064252021738947483602529706871994110110888301112864799668768516084191699319417416004414894977386654555371984082343111061905538597394668735095886639266337598434142818031725092189311202530784200213903369895018372578870972009381400714941036752189362770259386675213777960762791482586137341874680141422910505810199431586037366865431157824935726812586201504179655735971884426980497538349883793257904844730362138388092279110350238585074764546411596090851113716714151733793002101468103996745394339063155395593088675984294430682149051871105862371446110954579659525521501303569322619995713385512939029060396425881931136643282980755691131311258166768228179967647716909535322318816036331456121885258085754049180948573022008756225844593190244759149649277889323836801957322842235139535913918191010030099741790652034291729398443429386141687473038814423486333491320604538109950203044562255617807935368305115055056504271620334511091542815174317558238764704052101113581352813942276953996019648355364939590496063065603240578408376444008380801714605897652305451611329265609174279923661891500396847587407202516324498443786129511700850856992749776333351537756320982121077930710200427261341355618838128434687066218140540070082320691415301125233671689156775546038649420053072420349802475857000181857823741318658319361690580708253534755146815183634653291339238440681225289512321723768431143797437710289158701288906322478324525794516797959061070751323541708686608009746410302276895720114687518853447891870589925523777708380123072069953573179571727740582532901626943799005444132972032136436727494260256571025793194435779277145273481353999408891465037827608137530089281052448936370687785394351629624517670604645930638619443381001323050724699904074377226661828931148440324535442595389261224421315665207156312710564027129317159002735079847405416086768658145890864678278232899220185608507739549949490196388863160335540842204980904732924525876154261922557693885794039140357450042069800116216211346964733435542578584630316945331014381049746115269934856296471899873620925937889078065998549740886234913283481914415738580402526796545204465532001231114675266837140598680411632891335980407018556279754208619025240386889762850758605609530368883261159991661305310753234621393166548170362181687621065663329872051273741439791174171399636817344537233786141974953987864159573291023459026393173735392481848824744574230108032681915307520949444101693102820105340968026013160297147397402355315312006459478786347544483565571888474183663236559552751648948503361299491962208755668997904651549696392486781869089592960349785027383868356865593809062028441342278735446027056568711941454366994883738287901969665842480624136674936828178212588070757415458094394774770261015338602478383755173407406971134843906496999236777039622585114784347857380407918676120725845311436211342706597208113966617777308119146302230365659210551567353679611133349145242399666452687868067346829363983137592666819475702266508619015414263831681580561499448261008996600328281112373357859216204178799917492153009779839689611707052984294490011918412974531507208856968272572510084707055388004657360437900702400451130538772837987305611693918278983159694066563642918702686555860999010523678570325485434801244343401705449035889702540004180472159418835259298192042090677880495651799308522707169485365367189471326823262023213459580844805585582108542020409894920722624472366294254429550499856485596916376070492535513555642891840803383420524753002013862595123197629625131119328155279609345707296139315025032377054952041309963922733240270947817596740398235624925247011670691851186619512519909003096794781322830294461734855892891933525269053384821308007771766000922164572534180699755416193933006333344986509437626026995107585551053965660404013327797370267338772258356756750083729694758603693215609232594111279408490647021892176253014306656658352129520519495798035616541795207177244852461441198151603323052138322524695959530688957640534125886661850872611910394162236823843257894123984847657751720257605826174959629756895572331336594571616995602610016433217747028537471238123679329405683346873649645490895598915217469989276860574388050878085916833851109740192976539411662815321647533245093564441747090870627028351472839802825635105941853038601605973787256915873816314416031015202197494454114296990799461684633572475698446049343596512752619958640662145091455579405483468973802154679083000364881638590775528634861598083745992874066472907493802931013406101254014199467466922492654095785203643321705144402534852913166366045659131852951029511051834898235420503803338192164918505035725045314894787427168635852707584200567589067662256832647635178390938356774964249082135975428021541873819619772575205145294102577040213824930745553651323574163453724879865000102762470176085324495799112511016148987531725232392633128687332662190642910012164148891844634712256676648215361287703084561682234731236718386462964256307502514663669989209918798458742753306519272049292003148664556690701626402683143287822623890007108427353647714581441947596481892333743530779071238078498723732000695972157154039866627994800749198819286408008180809248675213362570525180455956528099252075325691215610127792176088541576459190222464607917708076703871578666527442191760215963820079669649208220175987805750637208189792555146865859703257190825276566405455344303442812017873928099231179119837333897869280273923597969729284735738916764645387737864712956384044271387635694477861944288777321096010139651197819002475001772975125087321865219124609138220082476321917366252305281786007125125179766336818369251815179532147847075092073672382782638431680407966040188582396073060988923360032158657639300769013620675281975018653076088818110068226181499458923213256582474387682489076120685285271461641741336068425069120529729841654923285138722750043003516094175688552882248116084135913550574993486279742955461544750080283338736837024399009338499868669791684853045909257325643058011849567103084095378590093400337194837969473589229839820256940847787132266773269454652277687138881668771447820651808655103644435662517752518360605680585899023744275224029441889465337030062697650858496849396845221295471658048156122934344052592605227604446027726065335847996931096521391703262973055373760253495332081691497588993940603373815178019123660121887302663771518283413254008434183540852918929135442056117664431902635150412246376318825786085746657361806771742355329508960668069617613925758812695992960880006561147774574392058043619280846611188739300612717870220523479317848031489847828719501920027229090511087805482600936324114516136545910399610861478549319472880290797828127918040776206976024696281637712913947751832391042236593550823413348999696520924810554538851117778826531251227036757695244675323528428301539017354530297480332019193698026132036436867312663152979276113136482926048610642027710352129947695776869418487394267530822013594608790573540471984584607338396608119663015132616452189299160460458901850040365294927433662598410664056598934095740163570346319972276840234620354523543984918537464221872253023131628260254911858989515963993182411223523256441845351112508651283201993264784614071765519760474471296285352145622913475159330979186476332003767447312947816234068365859293883836020875043846032076610949876642589026317864365413705111668107746563774633482251363959174961381146295441953657396955099184563811327718326221346576299332792919596517979584606378126765225186527987262407586547138153465489121123210824706077166856062143382722732445653686698196420377814770770666192090839545778773337326953289676468888758678737299633216735691433270273455915509156295510079079954599066310665235454694581889305483176697181218112891373913487465497286873340315592762084285674244632673391218447317460995594690517567733762096049973336662330348461953165435399636616570891791653578915383663981924459040765438780300408097987809984539514544556588074275627772498384835018291395817301502230086559753378744434383651507227507035061005008852568285326242839555405912453359372936317507428966745241968605596548068231702141225346443245183752005849739894777743043638607743362976709951848966303592764160324240853714839317149703576432767452617567216382542197086900549526168550641679095782996830256098072029837860894204559375962065386866135292597696745130878632795250051461916515557421687204196757390299317573980620700168454113701101378855782671604269143203146472811588148101225560942353135251450182032433959082402319501501245836391523155959825900360109414754521571010299306186063183865251959194921249368607843755895411764173826821346822062061722264697248621653049712879810023659193960102698851641697584046875762234050232979862270419439516299972753034439367809409748817651149743510313264397396629565334242128343676209353327523074080732376880005291736528448697369980676705390281820527565232420998491128066534761912029378779648609304317697577961800820762041446037330149708898258987555728351452381914264692812857797145956892269781454434398930260190500436450292285050612889638212632679933126251078685326859913322532379610630947578978765987933562158919033338899917250197324247762166821109696496265120841310031693898019537331075216016190018688916943545391435709555591309916560297437116212943853000929539261436315106866042790493866051327836550315721713125660829403573009342784262223807181788244824988511889209332208219629096530915856411011795261364474304096266625346399239616806051805532117151659076708896299801951209546211259350419070452011755954785129804078049628590122686518981332200724322894957342565588514182726972146137632250373772043382826273002849973216452839101978194227844282029664393328949023419514766068033609037047110683297846302366838028028664097698069972047199601317202797566989275637295770496679799903795145931155875413362093141803394440527596679346941057519893874745074611156645502141944682407744812192382738888533139847936765347544236978927719220664177506012243427957127931398950763533506431791191082038177748288320703882167087397905598234528861123675103540983347333364404531568338346856970232097700460612314524955882872778810575534794951989442696218013811446064319864476941254939186041479025151611074678306792264504414170472416273247803361445255722307416422977791105385702788972563216494912771098109021635794124454376096446097819144758839799602250781243872506759068740091092754560170099916888183037551810231167639093840742529285714160047001694731620890918519290584320120662137935031044560451522764595477413609556359239237661675716927556617857144854459305788280579620838165640416152403887549624341413209117138320372858712031390625197883968682333232179522776900087929288015592663780485099101301753419218842915643524343151186119088699482306935505840196117391686585212470655031525501091884300331509512545895811145488560662984188564422172951669560906577100494588405303487576465957348499140226181813679678252006841950065959697159902448654272111636080810858294372890932764034664197937152197773997341422509012176403997271945682661922183253831066152675253536996758902594098843666924835555685262033806957945657213228681392819890733366377796728359869383023360445283162107002516221909113355413202767386388092310262577250928899319524293892266328650453951076391505049380186304336761527458673646401905685863169382759220531724245225462483698209091227145765046830865640720533108179746980233722760921687521840159571289151312201166095195154642612223702229033556833724764000091594569828915852811650422968360740562005491701212135428210249064398942072412520418590287091961066505102684509952903893648863147660031598881244365198492960164636028104227984713851862721773362481464193324539100048846241701371483875558114646766265208681704809351231160051072158950607732560162505289310517680914723749634213083119602843703744267161270919371235646864532996109482305222347199245789264843354501509295485078965097660538771167585870927731040949386076233256134581313157722947489055500671372896826448352395788765241382528678179959079912075931050207800601733555388747836362063089525093820346963970536246190492588358273775647633617869884775348102776119143886134200338951011117599978137802559305751139823181009750935071699195486467107788902307807806803406093520525163330948347805655588910153607311971607108667474702602307184056084184612521092236432746931327123585689518305407943748901409976330945616067588324368568749184772461486875826829301647297867339393666046966484832304857697644810942014919476305187575993865899687872703413333871505780306389996447305219049103265377004702364018582593543900358385776859415175766268514977069593545908679175006944207787667160985806415916971469140473225719272400950723605629236225820161920709365131189465788414727112784016577501777350838892607887191562855838570776290872280587578214890735435175671326369105477083008413378531027985425848607302952751425493236792210531479286647931112350463411027275795054244920874674872962795782947235054396609975062142619836351095685209810224478481606511281208069609675200520917126383783528122514217841924292803548544063999133627657001935515267106959730076833857068067649805101408625903431275537373043843318085168342640308521193035144665060609202780824052411175856144468178672976452437458334327486609444386565215845863349847818342042098400588675196335809618351144993382879724638990165906557739158404491900183965640655265990592912743886567031777692798627635612622345556855814772101422276911520554512063870399546992464620665451371107071976483516486916580386113071506459097558240712612479670553697488367604616185590631440141404879500926175557037245528743742192105183612477807875355277904928832191422266634928583411997732181013311613966573849165336122593091099564575442220148723365160781483922953408908185800929776019348404736233498086612703572403470257476758293889245725121581945587481919356140659996262171545058860977832740229099933942938820699151055975211698612197904329564103137621246616096693523042953479271177800276177497768310631794426567606279260644763493824796863116267783551626790528150360907804695944928544104750575207740312286343716803049083588635593412253610421090582021515610816180478630887842515033893045104820390076064163302310883324199501594102704588576639321129526024611908154643295404673218542600000584122000443537096929352344452843486415423155524085504740347628841530239378280116798315889365813407564065395389815893758453161251599034153453959011145764474772055835388692116197315965994441406520185558113032308934965638561813077776161686321235058468220471210411983701922126012154604317100343769727222079175197513756738711705728883203996158868864964559404984728588280280358568864995136179764752381771118844503441381651702690513417463923861887026818750073130728044252355515464089783943542253950019650083976519830839828438714445104042064904978714617418132656363041036963389451761113810386239342914706270065858605272035767276899347176185728660850673063617411105056180399628852035796061720000468574150848697788808189454202701718192542587260477463401762291129013161776724687704685737489330447177728542466278570782446357673447324169410055467990876119797624382070863548549081015165954620560457121120187162064678130564843975570547271026950664607392664999798052315167628426203079822510057262522774318855427216605033500313873622554702838278821830715278612429483555231534986395072139609716947644995625756992909242937225818930938316399427846018529850755482921508951652714234153386761639485539965352041247609033849113173863444258073110925477856828713048056015835405992657006933776429733854221786230337284843568018718464459616065061761667544033170205322869176828209852917122111796583989701455915329638763881746075528385634663851118475423398538640703325719909375524239341864804446149410058596282503677793172086366592002906466484446709989674674357041844511432584001976796029813987060771690249531065423039520937636506619278613449831453990284233680722473662985200143674080160171795107093685516483612334226552442221686000008582247505344529213888191675732732000077895656648597521687711478909762226434632956194971935461024363005833294033492541041745758238845848891117579958317156640533090712703343679770963180246553815302486731861437573584474715724115687913749283492042872298076964064475817531982312206846798054851092404360893104442821283250510249535914522361010837612293621252975417622086476890004408154153594479374663197350066240931464737850188697304721475752987709626437027387774908944940603237838308306688697323109572739755891284346989610380939113712013461776351213259882410554190988886405703840275804341941924738251211704053604957290915992335851013761766035143403324362488132462078904010752814234761721814193389851957394284295726562015064237421708689586164785845354012654816296584610347211891256191275337511914684160595423199330507091826118217253082721063495390120640289869570037392948701460405967833695368816742922166646141096446881983485904729911941560531118066518393545415968295723703316772748383616938722628636017835091126194181872980910107469587755407457690651286422045639124785142415314225273704190174221739635744664246979848050106513668869025253364861799557430547109512070508059148310343479325146864081822096271662058240919564430989971303311494045809022519500646784630938993357868861656938059161922003482695000511752908432881075439817351361378819483902883679877453869139253726318706644228970939514432873082499254312585886814483847918878721147043083833280773271018986716950874417841122825137622478401856350761233556202620279265947819795342554324015007222589842375014478829521523201324432779615393791550610723993990237891385076846174917312797320719231647564912605921961412400361664564912901295575529452107633082406303001314228511963009370681545610344021736269624947961248658990458819906756541568675078218384222730646457762627186940580610276579638588118918150264477122421406178130183301893390516898204121386662203239520625067951202991752570404589455071562515275201878033103652115709255097654813556149995548252721470798458609777365004218646286283715633712612661219574333926867031019911760511908550345407857925545478773757161552930292835824462284117910584008526495574295209527831489206217086088372043578817401281472305364851590868393683227502833961495393359988715493316951780444662191833839114380345463951869538163753001272773541980434528687132151068664498508152134512479288407494293397756090581309146093601385234567164727029562676002840461085159578562398036695225880304611430972469022970347838284663952628811085986324682143591662405617640541041940875881878836765094750355532149799595980481272342838863590573451932120081166561341097290409589610328745140721890903632701041358144586383322168073409837294290002458747833094196716360777361368338079070695041912981970011757323066008736014259186746942449116084030746857419751581082845560292159557494694413904169639058576923321703917935894051876507842689899212063858068493435220860308886595112642141846205467267725623102052775501978768791126775051766060175070510684874762862227432290319987878783225784348164042303504108459159644927062256816073138511557680397879425546835762697282482308644388528179980314680635085889442788358180669084917185380191558527816842132784300705426189490339715242592721117926688984240380666938266979583329428245954148990720559217523787223608554506265928941029533503226360969580016496309536220966339338155916970637268921051455905897019675494565474072921539987951429879511791662490424678793229028931484521534888938293936042778976145090348263659423159886934908819617871036733355484780742519159820758564164329326267367960966450142982959909333438978517370372401039953695215919346264250389194093540593489173436282031708159417709662372670602290588100256602269027502747435167785418425115487626068723214630570729979442060692056088793457781898969592962877069876254944278061235035221371282397082150598170946155495102460872063378796804726669982272682669887443501772398772234048518506907106016767351323894334350537274630648307968587231642283894300790881740182454072636406627898536982477064100068819124368194296267723572280309689390474537068166166885645022909698022216149748631411516847200209104191088023536928334552394399145246034335404889924737455832067151103360449067191733472135881261039489177058303323392884549838043600336300533541003289533985716242844130424447964018541812063375844241874080031459300318014254842987687187909410400767008897818569152968274034838858907911632490495430596750732102416281118027566853180408043756079539988678215975759753897214652409177592598132295651986261706922039856267221181094609633899459969636953060500799599940470962833520567541540749604327281078021799004870194500606851507581788338649378072664451910558335983124411707975722207856091751750678725802754263117929079948675371352079065332047049553358587482345715876716349598060562294175085720581649230766671075622023155171936932605309964092690583010367550307700441210712174592354361743056533156761581324365609897348763746171668468432210119714446538917851921074634096015250587748358179737855777457088771225979759493434782808177000595017850430173509900127442818630286353560589009963596673494872091670970793643722879095370321671740462787697947312635834436824437382176056003320245389898962586008692050716681522273458772471085904030772921976412111331929061128514444192894598785377037925330688583352680523148347037283145987717570594337913065904997697116779214481919002381694683671689571834267105548195648728738221420111903229070048977992591575172623567742307628024039114911972332591127212559630753900342292129966688987704992786657088720321890246531872821767588853676993680894489747111309201431590371304232561501820732064512345054569323329399485357369174362737632240397212202573837103247709391295603594973069739647605191847502448800081423420799475950487326112590059469213823358232881782208018311163037758348711815995865431765706935936215899180585796137211023032422836141411555247110603551773560539457322162275345630190299682946583958864007675959223314389965101073657795147668256745313135190294410004334633540871064792151475293002253558330137596613916584372474767620069909204908751930490754290655047782122826526557340834242940159104318876478400372440584342565591623045404088505886074248303991329477071239083498640539756019309429926482084068851326525305086107680512701690466668688668420200287275105707650048915285284350602154513928594291270102334633327984738534250101278615360321451966400399233244726465394086414766176195725037326769339677287578102452948717625756456606530870337752896486757736528947502067717834014677532716098879380546151369060919807586558478972559965716727688211072285335365948805327365792383059833989416453038654139794706745413747039977020566217873177924753862383744941523447002289628723322285879120218742461392470264371149839555813030923935853551573984999732534337710442713047821835918365879377783720184929444490812373955341302409573055236463926840108589229364617227441187194067013749091137347920363003352782054582301746429822708469181454026463779978956574475073241108258160573682307335565806181996435125581022769081134669766934646790644441208674411426033743939484465405371838913090315020854683184331159090656675844691636175827723214655757765593586472315158109951788705815509686736594421536647484280143401581309232106295363956611011647157467712449884097000750263956990213763758931912528835434295913319680622049375626464941154158183654767498837476478299442193646873129298177930696938352793810930452783154128643687109259384850006415251306054967680632846212857887544299626421878237846905030798620051321756610995264622782340935439543388527545048322518104901477266068405334276247278664699402636291855260063535193551760543902549888930003405115305075349417119865435759571213109854780066349083926361515266672581447422886146128353294069277967111412459013389719672245527898057543804801531282038609587000117805409412827778338765219881824618202377991273926295616893782463290920387538959495008080255629243043522683479145330101318634168234183624915675238800003733810793884247299467142233396309040076191360371090036666757477197231120665207716586136918370687107013836360681485830261804245720827389035271897845183084807806895172975038833736327036886879935108568891640287248047333046557736446334130133405022623567751960491315081931669010008772076385155445737052295050227987246207599896585004218010275909773480470228591151400884580640764705260516992857099606455748770478291047147936579160707602154555350011759039673128777396520412319838394413583310629198188357210780264242990542489300268506659546257992512803016567138885531707277002734502940040508161708113123052548504763672551510676022722726523506707414893590365698280444519322330620871474832426062098374229732099445150572726431030341563125806091359008585959348570665072227575416233817174601587928927295848796552654895072557928861732203971432086506057260603067548060607433466067781695905143859550104753883125863851030670310550240352978877460662406200358609487811541266336282207700303545361301576694392745936613175038755597108984354942806043818368964180266021022525319424855099028898841365165481531389627228988760064640796670252297966977245071540914988469089654537366727937084763148750660179218731973653998895466281751219434087665598610495670595048057143233797744449635229595151920811767441403188180672418003819872848453866314571951876392743102981983714988922995516191864348675343588224879027268286535815536138371150065474047694729663687837177125319726153537188816265735312501728967938662791598042130639176588109689664969045375235638100446030186473207997156608861783284833476221539047755213955874643181031417997402423920426869759737068461865012793727228189521172716184625488844785146010641116080215226117816628087500006709624756859714667895205251348176045345419425970421117456902010165943953951362895537965396440229110574431446273292755674632786887422779222178420835718921149684680006319565406210236906408963396518082978938230556671449160027032514620147665051861215562719802308885855470717669507624675030162559310229832034779824418478458878679403648847955637230957088136499430676910481896276543513581467028161213445821212876333387322389884196842637877413828888036389871288503167235175674546471632898298877757857181143327375843894947623517376030374072485395177151248435213391565246868600715755045140694818473731808246348676755041718340824574178968695669504481221964398987231523703474641980782943230996890192692637595947967163808062006895886938707287782690686242502188099713667499720758662708693443783048852233307412939799119254193485354719426538451863715056625591519883466611748951960742008764309753149646953934745331392656115793053363337578965735007415503488550663651978206680274525167888999309950981954375475590271597406498019402934146348673317865377463233436510309412624351047882910373333320884703349188593332432806806484175096749615048847493770428036822566430658035705692185673044818271369117283863529255336246614266582274579191676101221092691021975590004864874354498495868807197841828304653268101442934405188154879964940878500875769625638883819510649224810789910405124830389655443864096026025630061559726767586498676038705485509735379784228959328276109652739794975170946945852402232594106510134055256884586929911512286237005548953512299512716725148102143586185083530910961584121534723442071683392614248913196560015616091817461700038882577550921583436932448619240279103242781788811479584063154543641203564308290496181469158404744281495208789472587902980946675884043872719461542521629726851248642447338560489330300206251992355567024440429699996930200960297812232481533550746525200027643375996587205619645683481545547780492590698226027852023253275014089171996215541879256796218846139440736357769546826318329402882655656275599743809223367815851816725739597269894564394653962513662499226855657470687758150263596470905794700463606805347287724891709286196665741885795491469892544068086607464333421290925810284031682924854047210742903780135789129662477147604857282364960031367990121363051157578653403665487090639833395180418984553774821237406310044410608989850781134937334284874776575141959659457505533773763938458577222386700148754313169935461206682303571902718886118377916763608673018596577128870564175064346279871823767570715895577302590467614816770387220968204135184719341717097821511004019852912248885940198097238857096797486920477418428393480595888916213759412263145443595684675694005553641888375348799961200068339696429121575419119543220923563418993229753807081869679470096632235452297585173180022017898775477943721112222146615237995803847415204304330450528310332984191016112092066758556406994987875135655249569934099135437371528018376009192020494237667389591058913254638060386550282380317166452149859633964260058229455337713813403721760295443079192289091379664384064200044675379408528823176317992596976834121827292891528588304780208898127818402594738900246765965713001906256497570886167833738220382776096546743699432607553952585014401228310685488922948467255638324751120204626660350996473411729476510404164764135664068172899732670206040655157033955180299601694326042113867193736327428709548595470396740500410398443518821620347105182972848931254051653343399191686609372801876487369095315404485727899751832281562092888990002891429161862417295989322929840865012578640279246570621354896256191609537825147639745754030627928966832679811521010479727543726011197615471068490698699522576046657598875698343498609423160999154772589252375063322691080524456421484124074003307059842616633877118259141002537801993331753257326753352198032692465692783664046953379733857233419187413041383050717538831814130738302389436095430202070178593396588009767648897904254294541682027343734137981450271532170227336330740205264080641775735466370053178483550701503493900834729681448979066073037641680216328468135693919442269496126195142988613625193979739272938856135147744006218258570317012008369215595364359946315397041943900185694185179010655262432873246445498545154754347715126243046023869105821752572962405957388790524431484111975833416256173333852065989852739174478655259358444696480341229285690957279528614146187417773758904984402244540034571760244901069623875707756295292737292605061773523058764373615846597611856651878685860355360335004875064592527361891518238511117058594133117290749640056791221241376273429509162913513115022275126745789368373020929068520705143193654921087906881911891786223316880803126575139950083575820084872267563465280203304908454129413549563891886782273056787634774551290698058910557591252588185283798528694228878059908435266614048669594255346927610211443819321923868004961173566946746922778995712733603368180129501236067824798929433443922875254938175500909244219977118296463553906318808991758107222563413002737466177687769380410520441077245233774959286594689119511599548190589086269619253747169591754670590835523351281493465357591265812435151338616701334824351419737116697995806594336287365061975460809787317741539909487587413240274809934258130051606454574260196132097164975886045743236093017813317613318797381057952134860716358432510442464825070536531107189439618151420551025834928872911369765592001296670767500831616517440828810108379729934385812655922299229217848625847741567450454436699526253753131543779173058909148207490327015409721920126658576765277261642652573569684631094545398811625872263928514540826576736619270504701097123113271419654776252373438054068802368166298422304635889073572158600200721845126608292285792151106265327585748282101910829493158945443625779987120764224384946732322315661590455773041956778977587693414726610948492339291736286974508787613481516731662939634923715147112126353730359454299824419757013831206676977391263918826763070352995297283604598189413777960149405940397101938283229547426822374568258826798876035597654896854349861031697368783515007939063748975029604774407513705157340468114818996358370638130964521947581655222720587324838537016503178819450961317669873411066718503004127305928438835539931507771909483742949074469850000577783287631236538306685160669047584439968391578955836809062271488822344223011723499028718334203631361555310835057246863014639456227174763364284178519025619369450676606393690340343396530559213246285607591057345343475388705859963823149607839184165163647260533897206586971153524033201572660018707173945490656759766513457131303859433446490387379538720389153087406199123850943064428668370804338802521548831124847980876158947879529824219158122798665674458122399351425677375232477738318439680388941930426458975235250477381375884498167666681141173329156664399523519321410586816430151605437581052883724874712658186082067185792319589388641968623384144107784204429782373155315520367793530338299240092752361400958210502425802424418585316163652704055377724837047824300800823314329878680022201703047951038281786753314092159174642111086582710702827406900804397661579080053945552890682559973757934700400002137728813928102287793321594940517022602680069984401791875332084167790258968747514257520983030765318144681216775281841679381028745199841383834040377850439292968058896731011289349831895853803845757703070386398478775137519181729114690916689953043185562084902322929398305128301518777024646297470450854559553098547893272754160918536120283452884631896141345271299498705509937729476105044849254439043941528004106378277509120757133624806231551138093949659427615204549394954561684446589662674577187854521347511143972061588795293684426210502757683259985703205127580347764336490530286409176315199961367965906246112713811692819482596709075298294649148536882198651779703259921831534496654723297190752942190915401173331971892097847876071526289368431328819536153398094514080849899206418833221392155228547430789121049573632727076577865984570652245188136133515937725797234009743550535372683014638963310384276036173725831574710098538240107339573075707365431398167331638041944225555470126537392827103264343155984681828215244422266210042348324899251790290841851040343983580990712777024218777495539378368124706425258806125746831371689829041945205430894005365989051780479674590661620912544962280064163838445375180239838094209307273841976573704773447326393085816456629921085902686189209747181635056084561437974683425423999380237758076441603037903216807234670531406937667763321561948880301059247479062383438232445972219330195432144672412814884729859846163899925918471109802553353482646476177897666969720126426852084468578849085352014508366968047309241652439702526381869881948309647021115037850040032659325483276004550545889143365366789339425744821020996920802788544185150537090495543544682157233950468243434480482302356367805503657759732310996478462060137846460347407678244368833320913928105608090878776977865937298572007944844028057023519067171077867185050947199293736498176418462137386902143544032639868113128602899127560886478865466995830543927688338429122122320761941910292220239784058027570535640466984790330687714372364676498998576989337500469483453377725735551147696142487493730274055709458250096479250785228210187463328576708948726933769808507985350579588260819487356885959276311381968235852657114232543552541572868612074406994430691103880496849539811905605595548903758456675370542288478320966324713037090987368216714910286285223314285654038593164057690312697278359154804196106409943540869014665653268142273848362757677773331625782832120736290576099494633509102045824686975201696488321798713576453266551188704875838073600226720651532616595274712231860200289745976304354208555422694132695744905851736624514219209327204223186680753644528407160293421558112729803189821430277406390254170417047830764641597572573984142394999828963199779852652758263255072585291041251898532690465934631951232028095088869574867078845107270116137543430441611569924864471917489090540270174490498505493315977777247432905295241102069453421826545210422637161166168889262788781744253124454707344802450386660720590249459097778111905352611887673326152325491579348034551488423196705837521083390433871277251475871765503914347367874231690891392298499717527730081856356727758195727567522015745941412381450966474083849027731532676457081466954939717924226235741993661662047945763744777183877461607375168586077890379686914170887982103975223264388577679924447624557189508839717760884571037974795199675887601160005843606554189123417513241586782229974696511504567127157149599123467043514117880254157606124088504534940974914118624292444428129367853124259010678090296381712189348471182073101778897166225099340616500587983835307888948275943475036464564481613415835058595461844134932656205254444258369456717877483726269937214922383812515755501435138845709135150501768441413500072578706735050613341210307647703586781050027422850445006955276578947187719217083583857036564153335590575886302888323536102192032140765831593953101907486844497931022200124810459176108370620492301393274237330195668866879728184317526988154353362778813034509738407393038107115591842427025086119634756659771919660316406153267864888655437854630096081541512087272529594706864246875889767028924378878320629546451065175399625983890840544228714986757864838513873862114455570278515425269159390970989078308760503529458772258157730406041865884801801823281269472337703014058112118716500353950358101103267031677105865198445770508985558808956815479642127381726464013522465837688900270358263048784912446477338693513513790124613971159231906259971287196732198136052279145140911257027952453588514358658653724994562436595330326994868689435580541135282807859653954062876743772855136483602194778859940506082725751329826024957827011021821538071348673673380381467285937543288951187696573809536815165081966982188771131602919796935303167889246070942004714744579130651321284345163196171362466977824621808866177680013379132955935470505525191468918121312140355487186973265007053532786464378309133557825949966564785905396176937050083371810287348951010466381080666943999475233926787903751946014073762086793831514685639063725909463553880048296648885807375251692088886184923813903592497892036731708170706486267988622507298285494260297785187948213480270181526070519722533998389716931670263746959042905553302211337972782608722608728802487295989663407905130151559581987548107919634637810487958926786743081471908515873074581860546080937342079303932558755992049970212585137543608069288302053759958992296388846205600222292537784037778555226983815392174835787813464332670738364690825125419965993203920145427894841315707243922230445738423434720228553761393273223981588196681214785114649919308537495448306087244555206367066637132510608212611134374128195221902932658953581065296699753373610999920035184642072763363004032903442074634283698041700030245988680333243400288491313555425011490118209709939545373702914600397928489501780796537403566885599908552220068111368507378997559121274454449173425459325488003390872472038203036815324567482445770613884048657173809028998377848902424046076843305917231406015162335869653193955932259186002461292260224875737212318250849667308604739825919592184962481631726816891183205573339264557687505361390135673849118362252196145515622635603527582599182824115163707813692500872234737492994565325115318539481891443843024108821700300426142605507194420842763983279143494573910197341656410243934447465875662413508767820171746670446604038056753298519956061163436766407079983913461299653032335410669505934932438486079160234672709904863876450202861256765124774492602564567421088301090439994959743414950848551842921232596624620617958920013468099187500236206212324256038321647396144367279633682381193896190231126418571070512978340640384938712566093171760322776028410255338794476324503822284017947555403669169228804927457680923965243879687060920766753106613953238986999653757421683000919098501590720438608490866012678129422669215248618263349882174334928715166867763791150906407471486151190025054959576948876582396252296392732099816905502598570645752397042231899853344681524392497999215259412601367224349179672959483459250933747752769444538827126678506198345821378772687687819401469980088514510010949134634064044610924497872110884718383054991221750690354822408682392410079452166101949741497960322698540523619397045107379970605673815379181590908188713860639252213385654780200812109960078653978663129047581658121018523021417384875496060289271760266064231322969682025793993123717249265709728582371168730273539379494948406700117558743446009427748351147170699091606201074366402305883504766188102614871705732182435460184403125272224923624760776709081146500086448228634083315853688129048191570482384427383178139724924129010430474376255051413278839096913693359864358296695475436115655724938342122410788449330224404193117007488090648534382780582577779383080528231501952398215219831160745073286863246825282139370968757411182270142951395290441476005141122723959487987945407558451672439053201341112057613184389559691722933319881510322904714006445883611533022686588176675703555868998366528314649156929034283686658993353897463557748831750881198107759138913609174348214474126048804690044631589839671656547809478404414180011878160890492115577049016288853207938745519739467718835104032116175605086517609904229738183023440849834123838064373195814468698850948971530915166435234989266150479411129066809720552108214448599884987956881994202603692861391868963999117151175664793712200562462702471812807694243102912683816114679752280658676033987859845110029085518561407296192519844339137379924209764436955430770991500627699338961925166411591700457295696216947931029498593805934070082394073522032183373340376568530711891390695888832202683934036491221531925752932968979904093783239578235961646336403177315649976522127728895908859730646769576711649823709012013341280716560214663549712859692207757497535914686667610215452935065213378981236813434695447168782547784089518510238809197641612663322699202846575331942689313500126267403263125713382780571407053748393252497773363406995217542619160288000271059931209701164416573147345482731356734631248276378741944120687407962938136319832397684063614018723432482042299980197540748597676779862780342787509104729964289390500799533967975297814171412468257335253205791224255597248783987790509154140754392194531362971845055494932740883906225906237011711133301036551903154555610508655591038448101682074778008118914772094571590730031446300713650931463080562789313179805654305695526247758427286432600609010890819866916085122129647052647075831421302117061470060445483423953765048953012382170706499302024820317110229603291089816714945905629595232082526059378107593509461622235465379569310015907536116797585973465424121937441620805724636045553946811961284080329147102986707259038007805628096774499566162597835015096281595536646237833286343094929761364353801212415403131275224650568942574102223975527726220832217578271285231839245312319392062170443563335912190824316780471626753256814214770007575951899784723925074148126153613764690222943096274539813304329936154803353601294108037536301966571813996534083582005708042540327139198798727052382974193576047378864248375727996543102553395003939304850553874407030649580058765742034557149393289655136582702387119565259368071246873792660060497974426392472828194989899056984257784646878558847100015490101119567142547047989723068515244495957331861853010860870413636077312814735537409189354193978926273005150041431375464210121099486547096897839158581820569933626820003062981585112002576071843827523179339275423921952179974929235171522259530614860204739229192269200871905390334456307580497172166993586304114569458881528573418518677383064208066393346650298077862714815942214252641524167197841574389195991767988307100422618079519185929463333276562818235125566178797939049942623893842046650091830661660541910064864528288623788266610520084101801811187404803950554305272468226955000773113486663627689841917646407335306329161106734085225073540321755504213642755586386229435118703233797636207651314965457051419577114121308796511597899181219594691917035622121529601041183766545087248136573689393882246970071669002139141157654263695463516623972975140053594744134467667101725202662860801737464198435302417522513837333720251659230199902952521303201197550796129810156235706194523329514817768791254003670878477306100868071816156317122523514557829757087564361157488665491419448904339194194499982172895704274420751342139630408322268613449843491206730505577942220817102854637182539343945320528546734787062165337247412338451644560759922502453501560780358448685037546079639761998580022174667443035843936569484573695575376776477367201277809496028629404007663457612580530520581355075577858914498237449897581071191998651688030184875135192821754717807340284533417334924665224342288733491908711779785392456440797817124087771545723981750628982664446664855382906554764516510948726348975429459223551673899338309264686277988942434866519887861084845813891192480895678275746943686113895117766909357071294345436979711925960864529185799591891518231319175039938894418372980759783939007441161692440886946194750416667763436489798970172480905795807222075177451433817684678843858765547147232327457981312809564798033214266314026875337112711905410140681126037080812458094512490501146978292558286490448178300800367668710622953272919916822739368592505048242102025607013389448104572022463215809576337214404576996648427530686831030110824953202646812592376846638270030755141539149156110413423691225561470440509431478766629291938009366539014804248472206244731519956903841329710524187634911154591275419508445563130408140289166543174596637809303711028017733484000815131396917753411856810784185547236022089839395887990626214997174424112764333794510207339649098678917705972853051784422552890857367166877239841286685566355139525768354197733447319209195788139579766386314764811107289749234374014309689847474347019142771342704459615401438325228520328280725970086157844426798474732152724879713749020325109132616014921463016077400213841513391126046890607533342448916849922578451856340369308854813119629728959473453135887455058115315413048811750593797284615258072135989599425327434710481796814043181514047062724464728546923929308548600285515623972523797025879709106964365979933832247114176763239123806402803217708628837803298543837275842589200947421440709031897075325919702060974324679699258172741355419557812229512575490297371054400722526153874071584067512923646122308567531215110505774436733403938078919854842401477505681287602977080699095041122768725116290369930346164034182113568689273825107324195144092042448884801044801933676667174904776936659397596196004814342971328001863158157374603068849771096300346334935921885183383975418066889731134987367213708276801144972115547088029144132652291831964366446622229440799748843058903870951106966135334130330907860104804035415185379604863043830875170753098001846199061670431534411358740350248605328280836667358505974818394524348483485972762655466540890004795953229953422660894849866461417968436866272162902621624205198108320217433277117394123797700590138256612602328172389639998254244134782756343148572919441027190344007102047517967084051191270231601291597635651680505210223227201275023095785715701677326026694322206812362128222769281740172721127110514232654494590837788972959810080761774895600493968083974013920860559735050840854448067681194013719059925482877939591134636501725046015182018448255491729390528850771240446543368080513828044427703540475355676007763756685580975348406389721474390885214837347297376573737289431492850940174088774712279698820628163221817963325163836402407944563089761703463331307995998953854215425739881781072416103042053122914621298445655013671131306175532718828134176567403682346182354269252331010681829419573116021271188741603498215711005825217395142732236101415305908120499574183723224690770334424710132242590574694142067871274738940470450808653534862305093873932851472658711893212015824697917772479924367206326423844548803472631032480981069528298223237267732843405175817952281558382883487254614359792923056819310195703042170174929313285456073992261736572358886519059214522410973269537767599600202614315786233425173078516931429345877958601412877337892881584573769350985024269754328162161642884751251023253088676933674734357660024938327915289492836044638040519941798249675044929879341235801274690266482297680369076710311870355063915480393745503033786308643991585375126747457247947872909967321461345559756200370295222398252393123141404164732708190242882112118087495144402255590806054204177176939918405596987414733137867737903033607876834211975476275495491498829421316516572276769488266378654729188267265889702192860482077953694130353444876878114024243951416203970790090138655824379674772324918345915677136434945023819009264818455881994509401656779230593169822312529025021135281049276594258940594343195579994773006683980054513230154540990273358513189464395641115233372512022601854746482937778687153229441375726268476762053278873310277247277037200191661304983905698586011176228618920844455233342706720910433909118922152142218313888014436485097675286820528633862873149301066659381675393071623883778535289138040110104760258977025251114780805029260742136005378307862467429002193354424581865663684420888562993336347793871927188448333942445435517053776289609036103995334715216806417011712459022438782331058143313982050934065538603556933626298110761038130762580370260420420801336664950225475061376481884517062693593746988722475411347641144204624596155333435742872513122905732821151505365664695282350944565130967884264924916232495365355483325553071792261909184882309308694999187661067778973610726630880835976999282375539040325060994539982512541512258533938390125422154035827566854537947321880910327435138847323569181819809002801841515180325389970518720799722223624115257020244800373759641969167259926399745917540346009407325155930432663353627242457120301107714195742058915024554864853264014105026540829048967637579464148571464043574399312331864837658315973102292074865392333060299861913482948862796224917724586063535631479985298124063324294760023148569988207100139284571809406375745506127989275150228260273076488598635906226519542216520009987893572141433028288480629268851983300669073059973499410857856198895323692445698476115074807044511814472383514231867096994104087526866507538429193359472645402102010995516237429129202482949261902660444529546499210177205685774433704874567539723351573468129888400011245421747743421162636490611339878943555713845841106799491279602161496710368620388010376121718428431608013795180863124728495735413493307672466011508164489254592840660515622213173906763359129018637799794494198068307390888802407035075337252709731237686639779118661776998534000938714472258159526533169514418390894577537175671631985587593959352211896355973200248085358056756915718191551089597643312539533620846093647022523246466874616100896901891409155768382061245880814001020911969729422064836164154723603515267268858691427332868543542679053193256312569574999859611989626572203497814802052996302158536760442510918010051960575130100589792521646376903937311452218028278587638174562632883166880344090666463197584299415339719068483570458882460728645478864731446589858141046414048027249498885140652999753893330186236442010803961919961615127310941817739563161891102676451252319517273435686089214382915911748492955296444292454548927699072953908235118691550457489670260933787256755566163998967276556362899411526292493526160591728598149192265978329546684272886786593805325641391895044864273978940571463042738727563071862519748516488156450318640329802402806901954096324364355038922537882033869559023703072701314542112594189175773142417931632356824145808208902663104769129775733141923174039065866344378834560980121606428615958543568812481472556093953459335961612582430269970190514167548614012884944028622869250013957795300013907060858194790784028024394942472394955098765608856530889848900802712522378840949673028953948952726372410009460312600818970401302932365782815786892363990408467339735400498044950451657832291167314991973214948459806054473491335790915721339922856523892995790186096481490140976415858475909290341765792582820869731403563314148520946955177646232242458632525338865059332649046693560791262441307870589152462772056318339728352262796140251313685995812243689191446157001630491703115835828079473669678854275219151930387497639772124760430516170872163667044352705392195193888470182163771981644763003614554336370426353258904545782989627905173274969701159297027472675759322218062769504855655294017407520946680827768131798598975677422980624145854706901967183626455216103184617378496734637755493913157543922559934155155757683495970091079527227677693012126066648576997486588087769894745203875157043296546115832368668374977163026053801313518964481650739284905187745334181271160252519750970692200204939104347059622543946734103711837247849233133196118827036463948450828918649269913995522715746154267672139149484213360346059527501777784787330797090118109679861369868862313817830019506003185250596542569838948342096576626671951109837495887023660648169716984359071510743165663613196543226912890697490648057438699087646141267879383390758696903801080794199588458764493702213851872507834723857658892573716985461004181582478984576743490585950785785190822526887926068697600513235526580228310632872721222927540276512532046525373159441391898148112390898410380068047545050571605698410051629178774393163303642264996584771571329595529660302796758444672172363621860588949067749875200459229292213851252968111632014155763385258113559116044326250813701142174894293095784166486100510826638739766334303573476120497621590714983376030165084747946550152777504799635920032910323009668570289470711021556614823820493145318049470072762815941469640477456166453487145060413536200925057526976294788959053768360358322042849890077421630955566291868647980680433858736981548160271920220546171834451774187474762774526321195006863037786943379003061013486850464910618654866513252861517748299168222164737206195377677606530476263543594348110975507764235282947949227075170101048164571713986967558216908500049451292436042152619443501270036636753563495241959555015151685590609760469566739782503085506932221613623166831586736595346952196925746478432737023035047899607557991054915880661732444486384381460898006229134502457888965463017488803343915242597567955372958365185899186710823917442364683316656252962122461186242991830439330896380907199819627472104581651636809927699591091616282200172080137240408312261232025017440778866802277278711414322820398944534010473002894664375844538408861323317535674362282387021581535799950320524243043682919137580070412418428618337332787159843047373148005991936516301769559329718579428070008646754031046153931120929854825978274472824908178212676753674604726983270626565657769437414389548657286957732764085686039188404430993837452336775210177687161927448763307632291978091951456151427300417782939780365352696896287552617646567831323416377061443896194151554171949314386303704956622142699870214024066175985986774608578080460368666816273067984023381045947891304932071312551166918879212123242580897090437444609778801164693754911190312075825882565459365145823457625027049114500755982032718327588397654740796767381831888148273850514602071609388408772326752634570762440408483527178476595746424260415839583844316633719882318958812519019922300245967678103323202615729409693665978113432527176596024040372083438011591568627301372195190123484540947952741045323973286209283245501979496964119145118470945898297167881486663299960328179265546842981625003038577240238238578284301939491249735373172738318367783927973802771028521387152237684108779010960447208874636938719694152576405104851399054648488928075588836393878934577616599257552434349020400400563071097909004507000637748961753819715917586854406458040286769333643171558628909774904192665474617527543844160759748470017356136265974137924367627791139192776028884935751693091608600354470679717581659221483839390290100047037950665248035115974523155674727876952068978880911583968236708715958943370332329865817978483675295339054387170300035432082928551233630057776706393025848085177008460568703162663775139404917594087474421429565958215239038704855445440949608245283890378668772394331464879387264421495800201564136989634488392952503958763971446576435949839882685690192232272053331909562059740154987932805596226713215456095759836898301654653888708275836219794453131193060444369628983585196649080835596966120684471207998709249513872428488268057179564210074854252263388061605750925943702998968239758620514917496453856174721674313274733375366088449824556956374291868515606562056102101418355807864764978031111650302651394316286291132904880336518342354428360804126492344595707596659266938424541876341720187652001095896892302863845180010117297988653100320250431795278522556652054031774712390642327010776583130784587950257189615704632942430856165473381318208716522927114841114491492771555142788984637873004829973132497636077683352544759288182245278691963655289827810532405733308766508036130966590006799416625795849139199285034718512882191733173810063651216273857575605953788659274356383848485108368518211616920943798753702946334767519761745328828971730233024528188816292808833264876558979813975716981929949834331071741989938618790226350445567780387914770547908389102265582575197492685700284241374180025569593494473618095035843150954185062875857003708116144246858820862449562215656395670569438428110213995598315701883892338314712618668467198253152676425079723487986805260369431554438029464625845022085188161198458046225617703005412299415391646159517158159545337445940490077388731846263994758150378938052151748546272881955877261549540864919281650072029408337376950930092203069838239048220673952630444708613680937591827885581525411036689113345731334693556170882553284682158020393507946241235311187231352702022268717893627922707857819000935980419643998021752298047948464009947688828309467318223986079562366023128107117161478892683109377509183979249796089349341141922099724167235707504334385247290625520050079059304539659696384486151381902486619390263074717587966323464626157057943974371642687820731511246363246874305233807023716045214530529769916945219478235575902936138856948441971825594710323456941128822690409457737266490337243317660510500264501427254934211530533632520393305745163488523625141158538253902293445988501741041538353117230162543000529485867252174862161820771352274068000892205151015861777934520291524029467832064354018505121798226543615389300932565200391212118771545176380122094674081383704274147086560171525576835017092883511447857409279690217342774573753791033407081919442881391726260215892110347403306462517480959336359854481346938824314665828930003066711215991007704906875265030102850293627862487821310293368121784830906636421991921731140693579699743433023976271888467832304862432766820434369915898486327911432452852580494675187255461351231180532187316877344729140358219595135358803148512917165391556750756356370972381420007219038930757364929613815866675998280647759618076808043881007862594845064591378385152135883554619203456633878496247540675292850731920163573009583612229029641545635505490354047700238698239535626623864517356686922800524393535561422530000378006196411060625370396869170209817641593586960226281734696207994587950441279800034823332193205243234195445617347211363945605738945608807873616771393166286661379498956102361100208556961128217154448414540993686102633111844547979313078825618256745910787050788651220220831384267474683262040276387320823406206068813819628732009596602715936824051600190578893573521785641511967406748162497943912423659205102645162479137069622437120839971761494421832392799847858902144005255569369749228209950196321704123448040807164265601481124126839156107579745875225517111861033590574233509380294455622274403142898907239722312577630383509309276908341406545959512981060117525054748638857639097474222346776297489952752405618310639679633359222261464406894270351273313230741228131082652350479944308809961673899824172987027016025044631505194078052773134885763697344095885985637738752221648029231993086000468166380524295014884900011100477614999204601423421191639543145252599611401378360637119640581457573963762568727999434858120574724428278851274504830078648989472781558670268839010138811446252263889886799421735737064285585901913951565834773139398136061220022083650518642772969531886354680303594945263551090162879635257894275496914439843290251640783784305496039531497088121562846864154072849953894463759844896762691931287592860874664533555063378021132734830307855715785032763890696954626996862955559628168585348160187567379004891231223463740299988322391154735830631825099334478757267952206990072428244394939630903347727414889139405124574178135180526814685320596304652856642979972163144441376034456022814414016475431145172257742789339025785891015303491485027198200044229012120458424886752907285605778726568053890296116015988160795569199531837501579449273614555309969673919989053225595707344126731022551869890140771876387735247223099608965435521723271680103147202666355728342617140305931598776371329858793453913730946145028220219141059344669857383655748077573797047567894719011342889082500422824090773674244525776868738675805296189756698234541416213121231135044299020147219881861835136358537442683794301555379471460768667320039647640373540367913727106676489702711522348296240180820315230515539211460866554375488315763186894838847570391568378308157081575083567737946412816553078008354373102617590711648011225847093628093410068418129240368374735696990415874479124627175006615075094703852106829933391522341551490917225049404055580040878007116633295959425783112799605635884017336498777572611845667584873264627881002738150167734590629431214105436149065069053986192623476050225597428376698712353977201812058741184207894685813617102413594781921415849753300351117779371748024845271404488806866145909478989631888228821507887274297248378730881253829515113781401878981053522046010843881300280906799241417770319327943375459037462957865601817671002720068541411014443508876868356901161297632863833145423759962095938188552116331247057131470622366385511349410343455938315656897438884479522632046078156968998266572912058320005047707940094709961698998997200713069534182063292518974673791861306189958296506512327162563857186470392074221575683135362833541038094314439467671065589954133085143644103544265691772892560456539477333615550589805917569899872363116184301740100993185193626637653147228941981112673617599825378585570426240129535636586052150710683650750613176515461242312634441893236465962011231619029521110023238400369622918797769640365276445621409461504159956289019454531741705562477282003233481528366217595725843071298524397618693127447979577320345298111306816547222674994178024520547208736354926418549216875674740107254254990760093313318672063317418170467280798909475374811068523225871186780939493531116637909040456676765238728433348313287084438816749830615097883180231810727087637270157382856130539869691178437612339278977743227883075577081007577056102664139282747287423410156054915533309685490494664362822178996852522209177393008773534703693256906809703713003120789296281491817619189075096387852591482870204147757339096813838598152890489778364408108578083269574610761976823864222582416853827879984215541338709131347812632533218491094535561557704090346335911016211028959103711034884286630336298249103751470239723951119989363785572245499193704038297822206743462338608848724884528044665820345359563543704695189495803636320098140285390810561674717898592883653321470272184505287971110020787971505564228918851475855555505334021763554851436241521256612935154316878838808137555322399039196068776780963123658070294728586491575573951276914501745279077317379421837542997119785678518148175628882382632436959850987685809264512276973774635898954513922327394679141179251782231734777334303813411613530934148841169686045901486358432596403305104378041636644874886337494362947838439452040134762775497962333416484375329416872342520578917393021727532050235552965962022345188081682555895991238136571146305920604201858863558308854389680711094522086442353907480079517917860003965488388656064897112926467638266484571550854581109436776428514671489863934853316154473336082389246409911555932995220304651516249441602084512328176598013691940371350212922295836157995815253377851729058533422571062370807542011344109940359323448591256857416507609676577033666929729283637319069122844258363891577915609873766814726078359439921179587429836557867580316339267267084927435890333182411659993512941097894892840471018262146199322192507866422201220771381600545150913850326074269153542544815988509356487860647264493830859985742283627029935465240386460815335909822004154675142827483289465031264508420021941416031328463190949662712094697476417073508025958380059740637089828884627583452892804218028309693009635023274362653852762060694434829455336475386043479917902057324823633239544871594480727535651718218254466850149141302937234800232352299592143614724038903817889803175929207335755780459472718606708221284345842521049245856415790543783719372995641819129599693515158608621778360957054088443947609262431454816220613223873175133322360111402901473973413542360261155997557837700058242781384417418416055097337088692791486986778273169623568227221584450632909301428582066183056689758032165664477241232917428370925179749954613578031544994072252475240946486330930378895086787668106529663929323261275160682684601001758542242556147910424674132417951768456184844047097800172491089052380465916359475144499708632261682498703201420463194086056183094122892479931105145631142653921758602388787781726445320517533475100415876803357722480287905102371895770285102277777724303058353909393894117150707201630055296154971646180587052960626065755411695501232174056358283057619561241958769030795817058262259546477636078100693362058851400558121122058311546566291030368325965762410000410719477855125838468866640464008461169155801848121056646729615870701074150363019383457712316573093859668060468794713262255432402579951535581248029058953786838070468410441982100728163411718269521589591105540055576945270898389048437834819069817133906700333954218791130125902175314335483799421919428472834370624768641789937462177364320121503685486486134022124917131129217778481407967823559639477541734509528484813606794788734442039270014287593586776979732272127742310670440446149400567603896918484894920995966080938961726072906220779514341195408378089355007555158986539053784393859334245737085898639617498452300771306194042948389704878372371133854107077612904182126672797219887915161687828607652297282456600741672526512228713045822260112846896022806709846743832116426614218392703583399365142130948678987075925433044170175643544750035444930045880771223627954425194079544804886342802263745280212206382046925197965827347633910425754355012438112243748430020289501676681212451827363128698061611414973504702430875167919149081581055449783786511564866428019783057261289341565868350219057802051827385251342145212831883723011280572229648843598355390567837429575177994752869226528886915689236041697348798188181887891430633012993887575517059101794205860926608541233404307638456498657966127388983025042896624808731430787998485729526859228006429305229537631540410923502617315314134738605286198482776576743314396143164306569056215785814214696275393363695714753688788886281109696234844698798555019492198007574217192830811204748023021770503902466765382678170551679896997930411983449817945439818999123205721403758691141811600457837161066138757427508240504692431318051173732811693722299696402933631937557599274554927172950294123699960975130076034814706268296121896572289947388187992562021445631953230500203921731437082234451211523717644212611061031788057275187536115166651097965278227986628786596046758662776130343323209465598771576547447072272785510185292038741862917182412775865453987452916029447591928898540999709199729882276576499680743126268912207861922156747886379691806989210543904899335917428694260887644316217556545642440839452221875285562427013763113508370087038854732975562188857447483786457160809746884045451117758459228981105359492289647971780001938174051832571417064732384442514020502475292322768157962871571603378671280316370579520504629303914310723411718298037725264750642213571298941609882161969707251819514408127756025817273310003683026864852142045596571441187456500693906137861125622384406455310216487916264935060384567821730152811158167791624532337982979174396539796810104139332958236383800701438565962036254830592543276742669055931337932168814885676314759587172349620522409897292187724318981448723915666463021689220694845597736730667297088276827299929342974208626565466099286307148096752623767816449063083247087585311289914097170191407300425746103266814062497391031611031291999112267360301558991950146905303761176465381029309771876724790990375433774898455396021577794432235822765239630864413607675818154345074714023711671002145345763856254982105001691393924561101573011638455086348615448973556795924826940920241909641167514256808436716867313081358002333717288059652008550719431900680643340136230330512724957702769953894968295368762727655458880083956555629026070980481693842183189189264725135440220075322421219194313960781534536398551574134509793345917694326569175769461920630856473196824781810425644007476540919972538260763057881176200358766772969138734716179553524671392899872648130071210435519217945261129035511844778262659538874946355901905200761590699729168008123992811549171041506189128969171011817241118106527680210745885490324597395024239799423040560483399259776548480331067390320625313217262917075248185826084795173728794928147059778658995366800427958198841769711415597192753678181910697803898131660443923718133942825692792015850363036378728024359942548259975073445238838892382582141225779922125739918784395056703407023905214453220531295424941867502772908373509156576643025238976028037876751105532487502878281659065376482422444705493677687509912862693706084302633408911310420833523064768427736653539171820032136526399715201233669865408605888286791715150822739246846831840463815795081578607706410950617790984514466641242002146771620612008428317498555462386981719410573033772204173127456622572551172069003122844213399735612319694722069086478830609314428710211356444063697972425814422642492540807415088596435136081554399105218513874689943176629208496205090722504514368628236025880507788564151875291336145784527646371248010842670631267062524111940026634199994743135968487775069093227568427097976131415455805299110730205105329087800862698976010851037201981956103327014436723230573717974164243092630376474646041240566523395882945567396306003345013015579319977358239332964626801474271709180812374532811199950343703263968510249670078968085462865690843792435575900734938527100986861802017443177726156275176474688042903961607168086666047875700402101946321487632263935429435560851059592481591898964495189958939665017414858040391504226110253532664536555175456333496354578754980655360456617993371266101455453351435835431547346669859923585541559781698634503599177285599403321706941023482871755725890330567212095748900028392736755783976092561253629043370208418053650343411197379076952048790432827267958925353823748831378760567215514039033328271055587781867960865426114796910904982224467249353467914603778041117785240273736024852432234252231979326389527825397194587698844034060862207368672893743444856624474923463003118714002281687504701262906199874336694351053538940490099182372933793450177416368194764300454611398237570330055875764106462890974862405202855443527977528119625911192578542626074330324913931230352780855964445601474483451249874166593955749888390456328997722685622022825933674186184544648869580542124502148629333246771440177547707720277497223805015497345314389423240576100908233502680567065521354286260342006415217151790365664879271411788132174855079824685896348980748756723756651773495849390619237581458642646891366539862528886255837814949198986887280558670989274919912662404244564648488082676481905539324814108639413811766031612944517751253491742674409652336130112569511581211329005636995832185036362514256784983728150216117456294402996826572899565423920253520157728519707211435485670054725465778781984686593305338375281583042068952952704463942872202422238006698820325200639995051164154419918973061507935307248386107559529490131516926491879648382741643562335598595317403584908672747332086760758146282825981438018505978210132626263474097929545598883824217586011999376004903704555714955131449473490007383628079612508183466843946386166034422071904885933081460034867314289904554801032145046886270814471935898104960179047560497111493247176352651770574459914878310342766960463989198717808287489912451884516872732622986894203542437312955311759169932947004902855416307939160956964479169248371918720139560518172336886559338334350161238110842788214805782845420647280715867201884771996341938101509772464891736373726752417877461717582496812919395996173233156193881293539438050489982622639430182979864714240511407522485637652773723302202955470529533551748880713642017428114007521818110545230037293945296738145847377471402318939845790191240357083075736835515521594906886655599342646202508934869208210526440305226328337072049940395863949539480051119210930580789693009275574684954013415171246352847080914156232104441366412280560593462000028951146145449684620818180184583207491099752780586154119907113275250166349871859397212029021764585851474918840858656232493229307152374693774969418955697898272957756041077906943486068033851598851693385046908097683068010165085747220089816305590682596345059060084509274110457864201697496259464090121174849044302013034977336451394469629075959898575230074871457964629229640993615961478094893174693278054430134386111400778936743933890756120891561446023141190413424133018233433642462708961977623024391773760086634299577885360110489881943137788060480197766824583109917160534521394059881550668527990388715625611966482058121458415476159415731395166865965864576825874758657854117327833577231437696355523202608863670516430876915303197982421158494256131221379149415802299761735086130737432368325517117934522577115712024158307597814369745409359599858535305148162559105201149372663339362943776918502223371970032147278478420979419222884942368249155147066623703358700761148635900909657735990637506167644437969898706458947697494583086349040533839440309179659657667511562631217319619290372484256509243914666849910220592109400055574838795679653276248248904387237288414360261672806891134685684670967683150330851380487691319219715821651113652094841336383546352981751677412474640474035384468118562422700351414047718943605245407442680099520545885191588054053233377388873583126417158005371497859552327515905575158040360367147849387469371797564009668391131631927491139519684265426828506557809413673874356916275928159220444280327753755812894712009525941704058062298756286534875276681488616057696350531964188517637787294495833397767087110839083158261606696631513844821784712974791088978079229854895847987039694309007070210734126753133895134607611190068844677143126859590442077420106412389529539342925379702819825027521861770365075993699312273408409067675985412429281256790534985734841499160304164998635508514141253771458392586448435447303690183650956450166898134120460348229417707045954796888441336671157521232848130219517624044951290781658546836552511010737827861946177525423668364986155403961012669118820161563307015998389134373720606302634138730455801955205419099292396141501433502100780331043288926922645217885129888771487795571741414790571927984439918035170316579893954459122360672323783653303795750313247120631042033593728585668635121186142155928228823586649156894068983359459514715752165118284119583868291620909099743322288385434043859156252398247430953084766075143705403624520463819951308718043971952693988189209338733400564699924570947172247643640436607345294178614246261020034425545084208042634557485064178214379899766913317622585394923771792293082178973985041201422654081245201427838068580306917313356171527107946634683706992297524900978432625187857805984507919080641689443432196097725249926057952194927710510873543073513580510872299915918310769901891569132991955836928132095122491092963050863842944727403388720523247066062926029511851406034408988099885328985609380383845927016319869100776141714578266897738428277241037773023995911993056667394569587310465864113511998245754060450147378548333384756050833092442967175346583788225508726448290547540623395729226286871160625179434283221933585094763057867951965485189721683643643452272415983428601796669277539385171604878447728917614667764740445879933392695214797228459155267039613844759552346105525232592984050531144266909177208390167866499276847431047329651169392257140706351912183028301156515390740447679082142485332599637754529015845842373886670590052067440621544231773245834164323240839932886574603199631275955225422098679648628169309089871488501230106263110461083338677358499049417968286836881966284415053579659203048241254755065263652929189202389372870748782565806898776119584574046508847801419793871301933986157775299841384424185406566333821525789807842332643219244223578465967517288813461532468302695152915433465285371560452479670319185487323545890666120748182516215023324312999238295613822682135139800405955062764927286499291443387270535082767710449685486853763457252616462920782006885688160922438925052663001706892018991835440178251918668841133805745150869778158898297503896599340850831412635866096211667019358678836456751915622059000875399890025686762469202459336794900985114425068037961901278544296707613925557372412358089768420205699476549221735980189065564360853878858144169367474188715096330876890158917498803128946642388731446671381252384448977024040576358296657413482865361774003357691535749085405564325946400537290284203470077298500323368154403986627299121101912386970868850861104026954620719241162777200014507344862905918099311621763308458504196749260425957801626443297412589734392772013821413522111106104069722532598446890237349470387314478080454815293488525773723918942060800420285246013492921437190293032963434769592114451213817460280871690395375519675871542273871648510934099588740817232539555528866330332031660108702862647585074006208433020044699438413748189748617241709161120791263764436085089649411130759487451607815461925204491141372165086036417240226562308877914805547122072083824874330714579777996470903630815687612413935479933168100941183887421348860423560290639069491285622914883381279366405667149996709250922343008553500448743934004417554060308632146301458871248838079899933429900958633195362921089788088756169299928954443046174959505781659039892676664003536349813350416823719246400129367908508816797154085800654764374954058393497126987513183037501882885626876612578263036298642293756732870563262878413619256607453495605878291667841296611381174505552806494789793880183400446988842471949422674049083186725645725410633210410636618703399352559944180738620098880934988613527038416721106613280407684184300383433774448920598210604971999287637492650018371175800743111012279049524450316111560219720795684750626090281739762679748755957811375200017356990369801391977382965073476828462043206916517646372420023737067704066259981466175274471964715172149761647436931431508323103545124640141993993785190794649985175938451473876030356463806516835269204106315367650695485682833121842407697122038998355026842690590760747710430754080757339743594059151808643888187280817140676173158516665978144596919515960607562871630549860334414609023734378882358510655386244099908514147644404885455608106424369942312291040682621164955265500068938559623378307796149545366127714005966985759481261342718595548005022336327314995601695856052018248973418686913075678354185605144542725852448573898380241241349767257595965949922420735505805409056179240796291375736840978287931835620371526074519497320524031624637582945071668124292943172997715545036704194196241071792896780471451426115058954588519807347648979997872328079445190980357933324136511562078596286321416515496801676284918186772268594060615221347309710533513122503631356835784255288455679423555234615433574796575407711184035087288991315375527060299478344921524517465083959209312794262377820512829868535121732191684131467177405736972736695919027183072682949637686024413450718930845888662607313656256107279416527608390460990109016167622782991420510505988029872539782239716504866532660837728672844863458870450974820980534421429524223461517313669950997785892042676221526137987079081412919104166393548906642295196052816195370090806285919302245752126778607253742397363091626963209221980630610821870831552327179521939689895438152480735451990713637387286905195435786306062763904684024633653186646800896691032598536136949367446755813050465258047683471333998382062872984580444773414219693957095602566152941023361196284582013061549972166609166688919377643292573018430748060079361975047366728368273697338840493146410054934823032421289851684474086652986181027782178299781267894859962654896846200353081767268409574531282878977592956100296275752947622385012744857990869268155736423597308372743343002776842242642717927609447059721967288521807189177244396090906807832101303248556883567482325360909972028958101317502513932384791795044523657972627084786735282666613460674394901610316195115646613736282204090100783108460051780049390190888613179464199685614454854595470686635314177093259173638990900941297931455286400523877479163367714850436625303263887527964364099651994052044316825376894067555936131904489150130544391943268762498679190861309988501661288485008080004779307096856960212340029221389793078880289370488360309039086320932708655241124956982171264678416499681421957124984081865156396186240080419950101831710277046208374489726952948996515495668285826087926506680965446119046180670536722429884862542399040853861431262161604890955619243542103682699539484626580734392747404270214941280920323610827953055648436913326472739436285766305067447049314910130134404774565134709896025825405327872440110128019412023124908600768602992806137439950110340189460406490019191005947584178666033726495819072752864229582421346162506207320506418699422800665660051646561938497939695795547572104644665517438406997660892445831302251025345485306378443804431234642279179463360519499483445881506418539364956934498397133727309807595980726400265555113721009484875261484158786861004955683257127763609869691252952358816475867154641577688966537150115560509300938922111615867567617570379604128826616330879731329509172028310489439526440355996700737769796450589997176883587416332621148041708067401224758313171660871384254966791053167992959437141461789512958157093029603649639706656699648468962421999276458263717579139830944646872370217600866640444935907011502283554924524896064900727673481866066942806065620358734162145804964013187096590619696086587081590877782981978683413083769142920091310030377248028941561521266672145846123704460951129870760193685479903040061462605380252658478553775851162639439195959187887662888445197896258116255845749358225330051878567616065463398946654287782739433702605698707961992311175168758465996786211141351506414254539082688564293604917792605164535334531125881305264686826686349456702202203264944750681814984041862798653737870052411039731914328359241166758157074771153769582948057515931867375096808384283303287623508469472791419306526019708907990579808547866583326204317009867490327216124178008599787487991863079887435930713897350517810463034347259745028853048236150944519650669227380504739944071118807209972034956736964979023399971902474291969045114016109363108309482793217744860158683196316076657122168579902639259960566549294744261184393094772148087191328447243875235700791105552589170686312754216509318390371592558311216327163312287945867928167561720684470269494374490861248781616813345897269092620070021179687163052833064264366825276180051290132698253855344759793180824488986899302574592208660186681074882939030295349469880205095940748491324582214256793195087586540842044207241695084023293739382544950751280571709804840629420369897288367553476301750486926721051986562725758205671138042678184614462337544505763956264021022905202044769087865086648392365371406396150367244974303398999999093130546714976896298781732099687257575751873007451985323460840702141779318025486622008347929709360367670163986580501817126566641968820771022195378976701442079611419860650987947485920043246980352441090461927406239262205192235017917104618139621699139990904383211299142233304460048376006420561462517192009295113279050664438066802588641005828904250113583512136257925404357619977379807610963901836813612880175398383314400878152515950753967895304026721051110795952776776650096936621014689841366585508391425390875047612309390764298840512307372115797389041138872478584104902264172027151598040983741163014602728920233834403294389151628149176739415587363816158654633962908669776523754262945444503591375682642022740430401435759753433226438853559983544038684446844187998298805297019246273722689803926958914690964462075403013077968335860737796954147059179023191926063059545019158986936713749627083694020478451936232854795485549123677470947697787525284740083187865941501352357943835054180911272276715538720456537677976944223864915733762745904026837117027745663842574523750768012640532829593957942992588734743057239524273508860438606371172019368192410170408007991169126105921196516921163357423992780236637311064625127902877025547004342689721390831690230696917264128426502093799793783785427451551489262774177947176595771229469498163516645630199908809003206549918616229731123059673312209670248649586566731059385683989135372859778155804278229383882561167701647919191696040062053820197773551148503346373266982547642313916466988020155093202881114645821361349083043774819580081250228490807345364075075401136859224468906583569843367886904577178626744229529085111328149538082251900038433196206931390932153257434971200599630772063498553478865321308740182767862714694593945401869373961714806949087331739093874069649148722169463502948406291184175451403721762993348744707156906141766210320065254965530264114648132899836886549741694295773294255859555815050221616771681167953751849152685219023671695652511398059131652564402615218609144707630233037483341119279731652516334710729164643700634318978715417717059694200197080123247845898836337062744540163410941362276362227610297560381665526354812906047418769925584162312638648457833150316507029242423702261084280198604946981434921934094568775068126764591019647572160565849430989270913372824339649438306637982858700698059525774954142624329937356629445139711459875218229928124317930278878757734708770185416267593640650924097988478625551029683241812619438645549967723011747544418573788850069084042861221246749920264289984455815685240048608704347849932691416708439843546242150452488032413905610456295629181272397467853479881975426113965235331135927947225899610283903289686994231163652979027315034545145969297304585118992720494278047460111407387393366642764379510435618560961880990814703310072335877801721670568266882559740544926546263255585596800623010324106260356515337317665674624614576203270810732975190374751921855776912407754836019723619749552734655598634181761597713908111047660131867394095771484430108458435169428333644051314475308449465713155319901074349090239826847775574245039558644002023603571466760639371735658142914660959674504986816328674380276761345335286207231831675413399678588280332919732937444886834469323943242790687904522865547121996062959831767585374091018896831924546763598180709770283055488461383432544765818658671383928333063063922789841612415130741109235784449788554180621930123250532485706720158361290459381590531314592768226556603873427844460415118445440793622446845313658072426575998837860676384544073041603685632916371449641392722164050467527941437834126048906900394926243155922640687702677252772264957843260605615225580407792236604318165722826468057732760269647562610850307073956426987144980363246811863429714055305689250387016172568899640123358995531749716198275955270008184011442671837870136015224757758104617939003570853263284577921641675003542572761938635123990799565260238541222531357977480759026265749387096642968820828428619276026131127266204775609358946821230278123276154298413930130868115471328674379734884933818953997914985616282308053498977154578748582419457467352365202512622033704167638654369943145172299814490877229634604571011564020388912357251256665547433742962866109335039780530313838244700844515266561937578987618962131557985211513173891856037090514103993230087821830653000159572833422954372861796392966102857675451987342980944810427100091695248791238898667283559013776569492468175540620027674143960650080447250820417729078137300536402699480528533808750570855151179717330954932693771141441182579987753227369677884573335278390640249718992312027630410481451096847564232101295574102328079403814251023878088553951094049036602390011379853431952084703809659687552730665577467006258498712891045165938266117077842102881424843527737023147270877478630629403608834205786436962986083079317055473241228244278811791435166869946142853797658632446467043220067148448042021790855551387186864916440186392386257863825538590437087187824396230220342900421024456855624859424248348333470873931260429404849729643842736642378859096003572106022148773329236103236120403082863639646304349506520924562209497501312425876034237159478563380702119791182668135633992690210612923282627021892231606740967608153857076119281454939211613492702027357169245417592517177301411307990220913449919208221554954843942785314974796166787365166490215373291164094032593441947194613523956410841125978508166707160559091430407652587255669882791141367895204614191925111038745495099330438774576832117351480242068751723965527490300840360961559487324665896065163480513081667846055133919145200742834171129037487177175134179438959439677117791723166048015851622111604530887474482152228852585388873660612495600283276734698193217477559600223144035841356506476971861105089863175534788193299280382901111317625504212823996074543263786934586612388510702672845416983540182741986468240538710728884810360540108151086698366825764381436396320065233608542254573119056897259867796066980202078405020781091845662701436356500595898404581475486240525500793062071423729021871587994968201398959312440433457416070419798938722266401260705773558431201818620767480664234475010682125886216178248517563193129410155812713194659737069890947299214522740584829209847686084117867742533025961443120676731182878811704677525629818253513772146013316064859835345536629353957413275747328115994341524651119325391916574254788479149169213527724454082322249706617569442968327580080727161144586939718575955756515905275159438483104100279119933545094809543858108698431313760189851373059483482630199352526092825621129824873478062973275413728025095044556066266039203413932637124624410887828582541416713588613738281481637884186810852903836345422772660251437508352636581172295811982043058760317204911327910487611803727102855147901676618669233427281958948049141107796878587895501956136553850109110876243497600966894788756531433847205489741999567215748280338899206211942912857505425974359951079367540547857912890455444850655286034522231985601016854467634375902946106190270085448455283944313065036737871855460696631786680930481504898201956362545803200426362888958924769366812791812894961129135001546211945510632920876141365857783012875884975522477903459159862932590394394118799459497205464524994720438904825389070200873725460768319571877868078166972677857616531176934006036143230585823868268523258962260009747605702037199789077721720962681067679038962344893274735635580668106248732116524898207774139382866207115238713899881023942382672408559103914624072575210981809347184543051376897539879315645750266552891515495747302053128379496979004065862486175817985452447863652507226315221511861901500018863366402013219907216356086859618293609135119336154374813319156823802408722054998662075289992854000354780244720039942819276950253197477332362341043469383740869136884443046362379936613414876689216103026804087681992504183676728952633737529596040729822965054287715450206034451146790032043340722718634115418220833208952717059518364067683733804566407475283179206985978533559995585251052126331895312197594979650818670782157676268545556448091002116361071503372929280910551379360266875671359454057619373435620237719072336796274146637378795746988268244310626338490610669289420553291304199184931152339352482713963519773954730154658247676793313430792473810539831895173272602139900100273429745647743960005532772405612118817504190316353955848434081657758762160008462575237176997194477841548642222590827977816515141759768060836865007365248638243354700623766849935005850246174214904213517476349961724400117652202904627208580166168171881721167843159905002457537275015690391611896284826544466726623594599381304236585548625438245623674725691155747146813373972154881479241961741287702403786096591814844825928651761130607341055436746668192723136750949021230133525720422132563278401302492885870329468713752190902093028589044780695549449237050735627795463170966048347134962866912800650026651526022522986075555267145514964921542287457020370783310038669335318308870893511973199665681089874226752155290716562821511052406172276554051285380010275022611862760381534420912782655011579821743430286113475061940134851270804460299295298228716968119143067407848745218939437576955359899632015989135290360290218222662869910783495211067713502960068002505788936741200930121978772262501689147918694338914576073844688969383993283479105522893252828078450302079681191283427907193256461853978960338881972019061853281123883156491085863791936231001594792832715198312227093757699360392197546892367861890170887639999297953754777958134667406786724109144259447219971419858781156848279819114740866070853342965016533535502475709111530171581294325935386038964985112486921857869743304022067181589292523724269829989685604564038751458967570414916313104268579520789012362260135477167987087673860322137669790605593635201573065995305700019215395179169702479022114537927887022253035315166181498141476388094956643045556312675420057835230274793851557624533666954734785027489541935856860871764439038285534065964435198917762855473012380878934096975768512511740228048634341330373841192359728545380389192093177168602448609927977751789756595556727072693897972431092383833910325135753824542468112047873865324187735673784777336923091189056321067455405782512518717779617100119880271698268482391343745329685936790125723475227026269176497620245377711965702305999849749412022686230205929955674635830488889103732130813079186878899146089145075065999594871114667370334531789623799824909568685846309490881407387202915320061763817210585294513697548220569220222582880801375712916153531384304524624385352509353374198192682514577616403251951667962984016566930796846072774929046039654883785009121333503475430560571996268247213725999157686414956709326811257697811281920236356064746453080602621990498066043328411711844932212285764789852162386905794056157809014549602787210432218845145457781392526971991829123664403598818963885497217991184700170368535863472202964204880817788001659380247016453801086276743528993366728713203426188428951525473310825983193420364593416721049040319233363819496649144894410931556498510155996943835821100962105798051551494071216686875265022287743313502497472779914043592429002649469145613814032158218434546638677684033148100282364201507919126572366146740641649549206183327277319729769998544207418265374935675073749671677324757666742315118146650680626548304936124449114302421745136735500335480463998564290428964599370929230119651646310638351850242631680485901580939545894598432713193103904652374327860683294585813347468829878714655224384677304688399497601361784624616603902384455172463794407163592525619600701200991249561807943314279517582492789822428899800500652127225240753787128038436294309711181855799015377938081659260599924011292152199109882587189557457774958864096718966157475028610783657191403183649802785178322519705846630147332449047692436420887962321684544370128243703186144875508699934994676820185956128357595011486841238036424435832333358041090337681144543886438618575421094867177217141142476789509123368428674378676194042410188035218246980924452517928275062551975890797764422349057127395661541602069458621813600728089649268595685869332600094175049542409156579301493823621964022102659276955554639108210610658652897267391462972748397671294944451533848361055580155686721570628658538813177564713307701812442533854120428126030654958827591392790143553370394434666387809797389117881728067217720694100655825287196907410260870037958526814089307143473476002496282928227802711833296645845408126947534511372661589938947839605632331070993707510650493865545746523259906333034128937290851595465055721232015783065467932876570411927515028961547528259988210387237416220413887308726926603365681545275333352295922645426579468744747362447266250117732841780944497543986877078145446572410753207769539194030148057462733830817360660305179482376508805889330024172927074839998767775734637597611294072603650278368516799272538818582894411952711312250597234172324965255053625582007120233621935791487260061487283053851033356535435250373658420111521285982433424190717063482497072491206599065086632639777522881798305726405030488005651965640725618579816416933747864588381153028096562861398719918706204535950053715369708038773558704966983155598907494638266728116133935556938289804140386805791941917926292866593187926900170076490735201996023017471922360121804666774714230415682121952873276903856193555629036265430399573441404103543592941118830110903826896679340885966458156633369309570218277320863266414181231747135240944647556096589928603961412622186945601398953901560399382846480178062587639802614775266185203670412031687565341899776140569116315263027313877505927974850877249403227382266401165576759129796779996527375811718173361933009136971344712101738709309032945074714733989848829296570720305081400378589736895076077997437111146472513562946830881764599806600516057570668252998953599234344453797959715352523204067815169723257649122679624623905029187531599502361550111570930677065077156879757184927402803570402669060235080844465903591539771863274698376563064446497926030990192580177486566492134694851394673592660052059097207286743229682506413030197893305979619933407463087603378803406050853316778362743748588025789038252860934045838263540924223725541035680500240237314562577711363675196738787046000292812308266695283631013917329445977261966779859364793268839500373188034883433286862315228908678296754000225545539779967048314045366182674089558899375083663632386881866480301163190408903275854015108104648014663276651585972473450667392420161323430935122197355391111032404043583195212525050338960614287472817088369687522569302666080351766959816381976914859162522759775722367493951015839753324791420042268048284971006785926005832775421160655340657723152416206770361983663377865094152710341667661942418618138399079495919112878214929145875109572474595597653933350700004299300836918113170453527404988720079479025263665168718123536195789876385861180447357671252100077641175599710638400773365037012760511209548351269948934104177257321942068768551079839725890243042500867921095545636597647826647693653451643676544967853336605862227214603078012941298080447739648367058517822623537909898718650369899588900261433060195382259435211871559118783982739707077202404083665518378911070309202479074780338467392223840668895664132072866999939436613287475238553972551716952965147901641030977729823741221518827040834854347709113431489238801750668552102673204563234384190374857838613595291981080930099214913684064112757564877567391154535228938740016392124685582884301610906760454861753983283231420301506222343026397595655723500053291775625972091898210550857563387992470337145461426411768558497168915538626266622712872576183933636464970347014965349622049410318655342314885221800808106472895318197612009039202159954982422877149086457212895918588129334230307986722713360240119110755652539171549926322693951219446422181383669664878951405003834845350109702481683580124524776566226759880505158628390509209917394780940502237577175314293029119849956456882125008842461966865550940538406483795072191528753587867377206565819203700930543815256253946320843485238844645161833652096300494761159740125991224042483601700915572353766718230214814303455852491536979370801425168094625355641627039949493122192954699841541602059527671086758147782070659005942806755004289279347950854462268171661177796768312993474594999436180616869281733056086675088367254005862136875395777797294525134129334560014618914224646585162174371318209820451160625994699500486803990125071247144645288324629057397157664160039327148777214494466070669542468149010249788715246402287664333289781562582770601708746192483511081298655714594144253476224581119218885440258939343369067556307017231885252028725655887790250427498605039512314790690620315467093737860227931063902221465202227666931051537142951286408470796107557388635049826862876952494318946854361628665312054796708363363683427862999118814435353060597854793649554183865084514903619924338194204160396505996196077208864977792489789076801100313886419512413281368952134124022297633905871272065563652378099109514293937455253226948149278820491295073993604193908019445442835246752346904073292615592134490677632804886194619245623695294941163920281621522176445167155035295522913494156991619866740490419615340358666807073544201486005630308715097616956720301717204862458125410270910934582631381822946596340882741311557577398400844927142640485842365177636944042544877286019016653014995936321029114587456467105014861655434749314848709924885754898719218372307129769198080439983840904727983937702595486276176276774663265100600963597345079141070756349130389921456521745613913877908517275970613185537528447900753016657390167677244870836821570363503726048885317409937494556253435469183784431327563495444420687649149597597209220798701507492128459288948435076123330844705497242709891085931461996987070489043537621586961380651866308470006114430840972666109104436801074158521128452609137013615402584587377880283877767337596356074282669007172627230224305828614041995178303341269202702486231660828440320753088415746478342717942821359976555276416239117295735311417881549355694447199953558651419822961531520751420718490768354234497130386265645162276623663587965130823803205226404603065584908770911212120653306860228155057290011362074870764833683443769097332102966496632723059055341036342769789241875900674350510612767408296401764419959258538227319668419942153116782542081967710323079510254320716848592456990758582113733873090063199695424826267526349330867932522504040293859105124447140578421124435216758423252591416032467318249672565434477100221191137805766601158877375773316570948307077193571929582426025846046991801302050121114069397914583350221678173669260968191285188977067415512335646663266470986211227740049780448794165022442012705250179196466609486759453435755414946292289573472293801299668946776227286240491699657984822033845135706018735526033716332182850383750704385879348489968164421518866587451528764327004608885423734989498657726692618243931009283721864553274591713033318865306386308776339054398223227849233344443483328037050910184361494328435220454910278031377978949630526928995960493985749235089335994055430019069620504889898249274371952112837087325332898965596649654568941647267245024588517295605931833972876167558442626445227785520562376192009926378538088801224571705552125294015675274910715275091956931957150644625912274860793431327408893333928365672174440615996956799587355757852071986840926729746647547141660853599512221198589053956896082811432591236790539926030607943251674263574907651886832872553766247267394204622637702989518162799765227643959363988254129721949691957466236772183641810024395825383388625619784726188598565592092731472599187161185397719817765854169897729896702950894141335006664302631383292213204523350220864310685264271218247852798824205575457634029133880350683876442586056394880074173331177900577596420045850294482740823576741579008943404932032285796835423022357142807696436910583644767085753752902058617931191321516310205928724826589504212217186920340946200269884640830544642306266829865026116109352318631585563943491900878081857521410147649542727365094190424800523991853505622837582312254307834534828077823391094262228953797251334635650645585537014291944179649217978733304806571119736293950154197441025574246825529469989666844522968216656748363299582919771919401704288479904178349962237947908142612293807539315894583011231552889706676740268710971848206410929128758519614101336841558638761165961036920482225896767839485588374357003368888437923085661023480221306684371833069370984901048398403961268377083994342708258511146129429830181776485520064390991649950073028621890130701279103876387367812318970700427083115235586210849260315251951350963965412583741643078383662906264284326316240705806240385265014508765093481377064341132124255158546916326732836586598165053616347724963769937039548483323055563642513535968831339375055808141271586541917796884455433381159684312803204239686546660749887418498851209845632105494121428900291251761292513765456034796266225116989445444201297120957133350781117751044733753063750633473744564033017277542400552803611666112130961810454968275673313967596381423393561281137213941802083446727800676468542186156766663196907438407549165240948090648073940114714171269546511586733928801787853587505300938564209583528401991186539441485576918210710569923832103320038267020428628771761546180671958205929696301703001825931556250866371761409424486211238651422071938959718942967881586443399963689419461758226898816631034321766617620777408418032329500134515458405854785521770256511905875782154502742574136717780694705085839846010723149377515379231792228679703943048351935721151206144663546435656115280042284858170290287357923355754769867086915881915195439452265640572087778687852900877720773018421775107468535955086636097023641654815452559534425930175243838904357870935020962786773321981951677375326136620269819595526486699720269208436698719256593961242683305661259432960986949733091934425225639157567982528138459324630306435643648589583971116507960124937585101626527287394368194600133837023491784913942693450193200139085506317740015381062207000622934551503395131659942767993797214150297693324253316574312913497472374703691670126333761694994337618936713120003690663470565286942839737856951159206225546859249894191210679791995473791915576583560459493945205024021575281021240941885766217833873453288179221144893549899383015543832669700115093129622878620743940012573586526998806519309153982609237436670738757649472469532359517102672005023343882757849881826613250221956436167562568112421207104691584920614178834532077218675128366744351181345951583784729873055771434676665369886970036355229500099683251165194682467256232440521826570601017265583809841108345884437676698612194077015809336922521332558940570603013877448332477490081984253982580408681238572391294271918876964210633959030039202784521396777555654994173843147134965873650812732565669845580611935399382160075724028600835804760716835358443601764752450700839762368015642991871936121976327541548827106155626706864117785635727603326799860950217665147120477504960542222001958893881136641985910945836795579935744300034758954186876858032908395494127823224653836540775826118115953894991747638041711181395279037905496297839343431051745980662748364689175486769445532039561419292801680079185752969147109233707764815224057249545833232925080354430343393536582700489715494137558063530270074624031499946000634613292947413779153862475739617299911177517954207681570724861901162425574532531150647399646404488352641553956146001776119926583259701997940119759615706038920756399120436017983128699292666910815971236882188001225683525291805629640698443048371213211044351731485538666302688110088511550668996140065788740879624278135541728607277483301044123033431122018993567957781521369576291224748331189469752070925435631558122780006993753642559239516234172131916312734383532508473553725188279715996070796691067751744209287552253836723821470772322914774418538815546308083813830502069587020683335258224501807107609571136066444259248148853098957008589171390444538699184041686795710926247032401531218332724698555278376424089107012754450461726429060906810203770958259589943073379683602237454612922395823354946083877244353704063203127994530052133273243890667260654557591447279166854777339933681190403223739972269841504715781695683271506874802369352647487492472318868410256753928004808531269517173740659236558340255572520103987046775974597718643313318324780496480788144884230257406472712483021952275891334778601399090946293554733380105032171478841543297323533342351892426693680144913378285522802798498497186682418253040667449269488947648388515649247660213299651463885374194946252714669036088921214453482479769016477636078736060881905044766481005381685046277106256852245828363549825681593072532354192431583751732419575541918254977555854367202840988798394741235996869364683088020021889499026173499511310351201393857325525517732244324897178173968538834816842357636642971329240487339492573500059017252037092707809262034437051757566231662364817734392239016397835598282812261151715877480381199808360853404372340234106882704280270436887621416349567932990357956197885691060931388807015408188733627866285446945985698439783466871192915869381330907437316625578308966642968077395629828334078719992261468065340280374622822323286245639831838713741367521659235205443876485684412935122424452274642929509794655451854228197985733384776936060272982067525175225888940217137990620080285289528309314814150848309128481808786813586127514945285549913521097426705288524694531694803381593885178776506129020092854091658249691846381697210387098091584398624535094527867374627189483437667015709760151400168699824024188358870904646296110604440996774687739033086978538188550258615629840544851543929559072942061079081709205104735709217470053492829335627207089575351707107944746557071269580359793629290288918211547572273563070398082653983075116571645916456217179026530839324750655545180947077447129474629249495095441461854276890005727389048780831165924635810914919128855529604594986903911796576771073342958823238947773724732157670755017720692733764048841638986592463264402753092114770584084021279289554808843492457563155551331809788722319253625004594958268044895014099853948611301130214460711330696262673319220615969273718791451073818427975194948725676587524124101772973310810932776257852896190804062984873599614987746798465665651600897073578871370463261359220337561625050208087063196325238875950090216980268134962681058053514534008541991791598093631951677277350714640278443570131534229977479131641463264860077867769270733715975404316495474956920444798492872014347504761796479253070754550558354246754441439808400266453219234050604418159461112916371776788260098630786864383222360213887800551848543972589507431010188993610550158425325322434556245568851570664152246277225929152175367712717691854681023504990381652318311782713067299446306776429499544908854000002858260106943415700075958633430658502246950252744320969615510773838336269054813666850720121197149100889058539594516616797687481924963788322809494647971479147169890021658539474698104802539902295982079600124161762002202596539440439349390317072409368043237899732941043317491595576913809274995179549949324691368764797430087159670821866340223099544338290960689677504976332900393378673311350363304391932948882879610908467300299647445006734840490180462139194616392326964353247295036237449257712287311552514469266760193420251672720229962890748437820999427934858893026926449734400106703005918113355159624547153152046965807760961324208870230579766508088269434199226472172391350876948716867071701055600955455037876115723617704809214569736491061089186376224094242447758072644217985175921544330328452515634523103692370879885500024235024977707237755652890201375390318956178611791824070616945935925694080987895993161310043542384895647174493797802224386548988434401989710638642695116004861292962570831359208044892626969404486297189789699415597491828418069031426852654636169549081157780622477614498005152243123582744403973076847464732452464397456807649216085813437541401603922744638971616323295764484648310614815599445872387204490501472895681887354550805025155452973059712964446958207676528031480864046396302771439083443082529706949330512138775010966159473045205212831187435413755178637638548664904407123486177296223287070511657131330629200261020835258809480378669263501619691482063000506357369071103705200502027893699097315487868092444329208458167826957471959412264956554410491229094320124327277310732439606232148537883788487601189094455043732722675534635580966001404580301377720828007900690987945183652291485725065905496036627058141035368376965204859290551307838676470608840777358181331905606654244722011896104960710082167955957058028000914308417782583337290765205681048458906422519210058088810807983943194381549785844889083903288939544899865559820702491876011598664928402779016098496716390963023960169214959062265154909078089299334072430573246067617520727286672381783302214676652395887128107366805119834165015678955338331745845514252877933970796928982079041705913156033420637501565120138827723075362037340281628729081564103144384291183095551739288294455933036891165931729055743689253990915027871794148691744281144864053266875213537299545547699615013837618953342493933812991186536523425251404896357291645891186235911895276923843189693883426793595368042703474154124078878760857562815544585027459047059858455886611402427488022828974696773848050328810917385100244050912629938092185281376093646604919740343197570967939483334488092495019797609885242331851022048628184912487067116110242822531229556187103348868023596642237602728389604088843997490651392709494883848839048278606676833619943384959971283394602290910170265968779792935805056880853712633472288762884463350348647686738516326089221781802868824319714436957502592168608916500924710483481057003402202796095394664120457297687126285280874456418491101774362215560120124905897999793031871833302862930815627874516188943992901346095124988781892457340436782461673594774254289401351918944189162260662244310061461307873530286588306431221047795458801334073383727905314241065151320866107389853662932672293245720532705748501528641955494509351873401387059303927345505118309675956685357201352500961131712207866478837636889435300659782837230085413486313428148526139485875995833978509260448941280527099986458306313822517601216315038195288003304315593564504178588254668335829185958848910793869709501960850141028476831321496744325946892595846125595554543833986519417288148391169681306964982168152895472192365723916538853394509006572043345908658677042523828562933148457682523045053496469111715981506956359624907274594347212477796856990469801387066890295938939926575263694522206021976946371208253961999724478045452020764029654734339245920589070671368197546114919155090906259222212280213462318570135331107174930611256858002138747555137458515018700576990907259724798574818309523887963114486738402814503137342940929864962278617737852549446028094433565725463646802932347335404388381265375656653609339931684326656817517537458305079560876999789385336103142115959679082449185405523979817441323131872500114071637705272734828556596188354378583783594796476291951908463392418960352055270105228680266473541640240949017068361312230048623912619206568372939056148469243603248074703067796060585854546673464427429574044764470425671404335523878562156796718228715797683354458156072944216356546211577162190905508606540802442039608214064674164427319553805900846980440953149704913545184903268416339744661046164116576353361752121830898901140900468919657618287440086090508325524469092320488892020982640353851188303413547393599961028390675831919943207607889881735182433236720513169971954107427916797273184205176310590118082185876772819233838364250439915377038627134961359903110743644762495939452610229051401286509823844473054721317428334223089385781660284246838903053381950755076215342879412233078073493528778057964613507953124410399921354613881028591208525422372225869622206001450525545366131508866270762965583628697391846629939749767139199285943494967364354447407233616340420917594052036064923863894159761251419127550614969969851951486512216488670889306196126667655961278922254121545886423649051878785690481158846602384569955515788146881551879342676673883357032538678122334805908764238844184247771539450424749501023932161302243452005933537152603721648095224891730976253140065984764074964565049802299748198485374743437030188961116192334287791705634195952785608802815169136448573904444257736599242594423748070414875778570151574220753563438364343680199389924239915094834078958414512006130116339231216409910228152798816690402060573267476468090678668881209986575530734122955547301784404383825939029666722029840812407528926629985618721657604364455703653705954028668946383819479802338385915376243209018798065683917842390768516389147659087507512911190881407296425439441118971656974109584555683305911172317456948591055993243339147080546738174775238200699963088495421259987260187959216482842526013259727202535629078183038528496241900391803345004649341410567095193046651230933072943827342660335156697913331766736116060424683434752777507017081670257060944330720712238854400502824530469334465943873977193903401773173962582558973991675856458764753702035360394330608102838195754583704114372554261508380256596444714439416700512621138712874908185112253410660787197029207748375508354787478777166235938039284152373237947703345962128191267601726855256604818858674934984405034159293804704268741123651463260728136322738953887333103226889178793282076865693485330882085477112600267806300906400955717366136472313686093833633394536295897524629038484162924916278847290043531701892919404753793465318489306280766522733523255230966796649241824511774876197021908737610962600679587071996847734517171238617245128484758840501566538110970456687986912534070956620547710415593982777430305293461962418353898164318471894006918135916369816046044038029866876309116117547324861437855565454747458757077945354889599346984783596051491130039178430698555002979523756195213964297208422113270589596773196308570240412028542779566561699951153656897474407259064605316879870672137935578458548592650212299547178470302074118456167445939465300462759923999580190291522694857860875381327971166182634885938443007453623265872864598616217912070772680298994803849797458721166840831675654170924109590073550640718896367980196390315209664050416290620447480027281092046224731890977348031442532238299874376397616686868724683502142579110245000277798376577716241632728718314079217794391500778844212408460258969164945086781793987649870453082242995322328446646432180420004584120120472232912930585676806713700475981201338501438085662579082564864154055520203009675084375151848925228034064578154591952061510456100155155704923462007366960675022396552461506232102364440297310227733228853202153685241219503609600200262226891114880801682760042006953531659518824500777831085414264046348222528632991942004388572963365924714508533258344050768727907221766295062886790404976901554723898421997563751418009896068176710998681073573766685308794518110105802956773361524265929656589218505006538287209596338565994201859894258188985792452071346345221712734691229679875589279478413077085200098492817805568242744202282682541878972889753959774160155012543660289695539208631422277406641246042400789239019058493761149841099880166404223757813118394415441278729095902136474536633018099165924845851054494869094728187811675592944039130110513312232673517578504113780136503632947002813865339001592738723701680892487733007479058286992871783715385318088838546934051496448560979165104403775246970930550599357970949706388538917045278428114632682780310439946391168090355861311181957827557902425326691292136514865510754708367351511127613359485474799372985240985042659411874699740033493947293885772511358296344282173091183177840089935669828131864100075217413729482197695628569763861341327334196673321157928517649583376504383951739283717378318953695696939028030807426008563600285112692016543818814138740765996237145479334127848639552130183967582217807880209902522931573148498396165367401456211974984469187537912652644823638447857421793919093669256427657225358950389072556908895659385920474188780258261339407086550775215324643842460659806876861376199952133361962340368349635250132559852978768418246507706898094797129742152291903450902456729988971554410073411671706966953908896637137896410069373606503794226281416784322324775256330446751609107642648977108000101211430994651950346756072851181813439758398536404118248725868307381083019214094363517169516796045317242662108205635815683398028869583974196670929638962619604583732996954216372173743307601711997109466868063186690785696661355964554880501725794268767158221042055772289432091137014410316730079603508621006757466528803435753426728192952356979273007570220911794733455460503008151907563449242538741703577348177856732184745019949809182713766102355228921290480159781407050722383951515631275955409998131686190034624388769086566081159856145688951885662447470231541789883448854694782142307597575742630606331367503304129680776427126725455372853810148186350506430471652252963061210122239365633922837468623670681267578469004932644363827395242461209889690268626495663070964151639981091247623219579783279528413337498033349899002751298859911203265515858261504181211720231927869157537205746267297823666273398885913783336917213421099430061370112460215875413134270282301543640051086328761277590270737862681366105753362160096028660029131943207201850502987402849258969237174053197052030489547716585191391244987854387030091850355719810088485497425429567270693403351109587833629501032897842264457601272907144758786415963019987723260824268429213913714836351790502357589505451348104563931824995980861081289136642729545770306487712360040194495826508856508492726090762147978294219345187069808753870393314413211443691481546604670387016564094410955608971004116246712305710317838644471738486537109079806795076741197081229260518970404644244337653188177182750750065194581852351040407399760355537972976257624353952514611223154003216704948753661936694940949337249897455965609415612436700941193366830575058436383920230434445386500959774439549680058498411986398345769176281268483461702005915682650501102600757280551771600065721581129527745989751788173358165641268188834767429235994071667138996805851833575836887299683137353503320345040182621138390018655663799971764937381178112604136488359752254292024389390642527234300308145003468498912918956016647591178964945645318293542495167789560607269223150780095117499185357624678266047662033575684810081966258613935797335842786305921429869071379789633213926793294088593264249451929229449135953417206719655174497885747151236126060251855660362183796241122632304725010952418538172276843554521566420858387467745320537970074384141378691552571513258974391237315977041628424240899565443351470565219509421282631337428578754047544316344772871645740075978629903438444204193320487971606721162134755887265091764672719970527887212760583724911591567840202689492830063791599067497013925425723386912908827525348056960399253159666624849115763833127725225512671370413186024093180434342060805673973902332735643824330732459279909054635002849182701283669107185842672394483424024339169202087000086102173158755069819414528075712050621529867572068892767678339856755885057925452629769618787812701748807091387755007529202239730472633013804416362197960933334521855990841402481726518424858488511386832557893350927011873451133705788335779331237323564249154617037423441123104336668900582139564141728932740698534312113809477554677396924306459719581470450692112812261631265479019298417181348503309715779786435370897562702906212720681404900805518420188162858273269584257558871322986358499781755157891354274321972128988979500534699209693895960334131862039095654297957977405667035609011463270537913326507313250071881209913813436746180334193581532081641634460349032186944835595789916691497726940773682465926196260840151959273455911038491808438089620655202925190612826245782857610777034205842371281440571125810894730288942957274051028046069344581432821976115835025303085721106583794081711622986740859743801098063372096228403451622586366080140858000787195444971526989495884891827093050541784712915908347838185402721140496735808012895630707371274483714219819007409317874637501984004971118875343317986409164809255492831361907655309430749919356770115401821145997208759894003681588508590874375359989696329216821008402426932105733779086342632857980449005278103786294521980749567758991187630394425620143095174978928158554024577798408337330459943910395288073960786091653657532044031402832824073394868850494672217015652924419549060376140068586511751854796374611564973764011126929935949286423373517195440860933061518262831050351366782346163041345438920608830038721334036871143736383795904087009828686736124177426376615791268089535561526803415839516007449573707249316621209791676051168358268484266750250399951292100107046384566328950842799748105378995771245518115492463326890511388206301272003557162917628813554656718174884686940634221884139882405190170157111323476241791650223987220308629111191756061239657392876172228610464246369703716452425777819859687057524870529264862545587075294370855478940494201142802504006394338011914596270345053961663015887888044614911377804802429459766715157536794450194266162274443137000543905026065766247773753336005210033608497969919007829197560050065897556732456904908109402894045875170328498846509576433653263334293935864815372279300364238779161047660560951721024111326063450912445495024376763479035065062826408734286381644073240527948753537568931034439505705596190548063639233039646701842858969509358741317511955861298714898668126477577410045682296354410542644958808379461383387242814971564456113618192176937380103510503736174063327506036247386360400838043728079997166342277653112551383609930754951269241514263713393121548128152230938267643617536401882929756124662064539396477952175213674340159501487421552112804651765770130812040878433231521743580034663565130833552760810782881131853574548422940791275884782485756107922810878952127928821975984116203865193216726453910105893851066528720874639730349135160873103517171536799416468178934901006434233359607467065011541538995299789041266563886529350860775270142188925026003746642225505268231533930289328540703521794109356341819503870486479984153700931393701220513762237021230559222289944813699093001530992224238561010506938678038356402028154798555968903813242839295941910117235901036327894079794815542676045899452291652790153893684100871991773312483495679118482428565993596997614112919708218354175309457347671874537467542819446890761363800484162745344721069149946701198296420297766576757749109754993506098259890817205869886926933880498667171999329205833117321546237553861199409570374448505635519111894277851853035399225576671154110970634809381492451022959264823617766921477243454142823137160229935138902625749579487955428406291011943715879694753778669590041532044143472454521253558307017315023746152075172401980245376591279424720790703995995273013662927374402132383884123444877118612029624927286819500391912015789307907401515531097257873764040144193520818763223335881215375021616475727521811589602695717017188720772101470368721661084059335445026689020002386682243621161138129763876765102120205576225802087625387856877227029987162066198230905143730882271248318753924150492590620221383288710421957979100732304402848846572550809693228074496542141922424072556301211583765542976513179372354483260436001543045390439239383120548999968918552764656025380507578463663433053130750859475627024692272422737394709662585450733703107323330749846260536439315059570224379308146882212224082500981347399809738646923266986257241860578289045163917047480314667765076601054737661457966654969507247917461509310479433315719459148104291994591111788881775849348875576496317595077765777130967213277739873187991518571718713977272956549136475117268459619106394260096387128670215001001382379706873576936631387058401650408386755227715888661174571817537806489248319325916082797358579210722846317781124650449968259730441776817129276660042704929559276513499379085793134515690204444289064403672035638145719983199814283750962009245595215557184672970280056380726713086563247403014483597561209493030674481442314816307496520274970907906534853128349182813680854725481593129830752606206358618003124327338987199289610995020078512485845596647233666869053927341574619349833928876323765550386575815847452181237298407134434280690285137837518995672039214396261634914420507288350064592594466808532413535377895190226192821474994307426115179845991495098012708859885233520242917260976367850292103362882447646112484810162728212363143905686026710731986470875262391824064610870637054198239703031026996134043784143515917926453083123642257788332845504939488563360571183769811298451082451754703447239833780530271784679795463879060919780558019588953731908080283684384146323601044768040665549600817459976759537372704537061146275982276725022434977186414818465929094616358185775787060569462727151262427456667834249545093748618170879260838608579262492272015748088059118293171306796004437419592934109583283744232597013159105423455982737785196594080361255633511680996343103133985087175204617605914257928056215144350129690275503389030843397079285856080355476613818638525155509888485348124810067787967697059066435009706479544443537457074659725714977868012467089032720518660874579521048267621603952429548334208251982285898707040026682546054502469906400692306006252332189089692390344880437546105643426756246417217441129097072860772337116730346620345672753511768966652492863231618108889495174026820740630805222506049295796825780406364425224809311503338629673088327223966636967268860627551710652693710285106790037996505958380920432429876471985125214814831807514538543210280528782605900125580348438181968994559170195955535786252586145688303867968250789796329297499325343835227892162328643344555995895015958676390024527396583983613039734067008527256806346546920154330556099268314173104891805036216010339009149124508354084340356996052868074531601982038820803937782375654125262702388234248203231178458844073421010299148707421507754065090209863056450171327158488927816017967872755592032363194036065178415370922746292109616402257234185875274248866046768048979048716821197480831560513001264353937652499309788982663366896190589297251058583466799745174771236852186407522887696206634249184353918925813587878824034531590136054129751446882819975891039188340795139113242251573097864207786746895962931312494247282510839939411608926872723930520951731581369693255106527758144317136708202378965660777414508337470511994938900239214323448871850481363330555358078901059876411575915981054703741679980439222409053393776177053597747875489025274813596227353597461086223531236376697540142904529803598864498136606660535068817063982185868983241768639865707405035233317700796837767865161879872619416379648196302581251307526651559894873673012364759705050549731132636131073274633052966025235951427256867393584996774579951660518025451719637936662706109010737998382143177081844253401463179973494036697996259119130441717964832041847570899570074214110011992105540902796290116063037737059836683640725052709088524781827768776671653862762987576780270968485987072090002727843310923744048494610512084753489227619732767063041012517623786508490543765691189378967221584868662967935781611137969883659031348734905811538969187750184160379193299965948079798711615250421812724772776040858642004160925024854789577984940890362107988645610809382702615995128491239020746464847667845797810608756133802011797416129391985010940792063782047012954153751079496494583490593830765014860715703831998782367810871783866738459980164486711820923821362788717950173706122788603012889317576533879928710049246858897419491452403356120125853016246153447729948787798396655542910040438361237319541312694278982458297971973501906961179173618236135246402448677476297610882113863315055448969345518306052499022876518432576722200604005151428327246869749990977884961696337605976383969772895516501841176590406153453503249168229754838674580348791792535233841379467952325041948084042378173251340308303206481331119494312466423187837690806633418724971608535925636635993094507596927010407087555623600949268070099111382560932838496163364804773876218508262492843071466357357617381332515159578454228142441719381414229859307515342307801752967754167570520519779227813101487483396387512505047860565482295887635311226919678013054471093951799578729233701265973772327464123995488830474834747995594827806269499113216208501735194750065403632333558392387994181689643554934616539297766381351452484735935884006070503566212079884051366114582755540455149313238287034305708365415823657676572139357544079244250179094194217597394693243657881818434742037315320914430883752307379494512775293773674946630685854390214367664621498807853973526507192204984274291196702342569679326106840152593168989072402265805997041801607475571689125614295026365562266456550021363663079808872115378268770295991855703343874323045475511241845396679902732583062872827110064978604940915890451521134825221593058256504026967772465454417998050076221287530037505862390374342073169140389701622542039358517539182126981011659890429939523874821397446276807664339377704014602746067783139052346431355715742796588751263710593047503056476610094344033106237177633008792496347897590534510767619375681521476161701460350518891554248420483892797744088569968708940525708273886618491665117797167634112633082167718181807947821920168308269158275309797300181342076914311132469959828956794166779189178274460989873858631485797302841897342460862871761880657503749053896605852275266414968490108626404290771588338270429961182061316113175828498643250755562733316778088729655927866374021046519031817212079354673046694129703192053319374798663097914788926423935592878630480422067392935552717496586527176527093766185061565037390766368042277720373452435482877215261744769000343401670890945848661665186790280070062648242332631233223527157022796340662308082606534593404466347678347383976285763036793046352097014622245406077877029086245095723888346779461826857063917392038879882576698101218641528492032531944873354657260989493421983229195850117190235955840691435382903905653100542115151207273320546107960904998577022972082238380718635564954459270758249868206659781534840461253034951538756086845327948057074043986142486398467387588705706237453755658261722800837604541607381067662401691232079069655469718565437593732869294341834484633594523142554134123484926465433621852367879509019758895010739374678270805823217039885630675054745100427956595070530851021972427311968164828819458326048994552577126421563453871411898734284789469328225824336768853592850258466339753643743161980756891550180554005517011818236410310781476028096891615761528266282562036885771681093581567598313861196342561722685433583348078383819507190666421809856719823236313347317809527825845317931510469548460504547875412141134719026742103784866277068212195510996396845474833125891624456764481874695630429851451472281808918140667317209600429856817231245310308162615430827692498816397030630661457035593963432130674410455153176289616511853448694852659061783276352527181284900550111157419447977693924079478674860327987124089806435414796193940299121856351831808640355692401841777869597689122688992072438304801578729882464840725293084639956493209004898537834073478023775296314630172567310986625504153133751819218169054015127647773379063229422698995923824289112192006635612844829583171022040779586114806534074559269028936959792176388228278945895127784526598035022696734954949396806600005654817179383496675470040429248757548479722208507244438706770489139842221347786271267186355713794223674610731813732360366801459138426710687682257396436098615743054655614320589293728432957825767253450915433653413384147707660134642337924912726797149288647908422053218497816587852824803214339956973650179431531953046396174891967972764514682558146916395913293449123515949027654663001300019847028886876344575561971660022582476871680797657518152678679999749757361431251903755809501002044432005159663656110259994214521535416042871423458780313323510182097324251417496981583477500708525565760966673288526613439526959298830917206638404561758416901583614728307223443046744557701467970954014628992231128216240428274822824067583102131468801507862344947731264428740954013971361957748602358807618058256673949471649775050618440552344869777741321034677649596048174127098430557505090742579358183498820486437631481307612552886919572320386476386042674884151833541937589772075635470541801169072839541823419979917377759333819462685619852708538548397598695227545207953152071562065812090336849847898228747073231173937236662671748085358380946541753925957368994469888792222926224678891471298985563380692777934279427369089317056794250223239316966965581048768380989777111189080366450997073333814610416993901303632478326144168728217732369969130846694507351836775674882932748159318552478391855221413604766539221027746349455425315716392166567370108140178077518255592081229813561843641961450853537946998128528777233775102564746748324815813086920016959282472858267038147052247465083932348817749520911391309862814098113968959053739830362410550252926888680098826539339032169562707894046279354156112877235636066440729435353711017256862421661643460676433492907443474364886759368212564129549051077574285835622291251523666382022742184103741546782845317070553530422107542297657164937097260059647865385145627189402546983117377111212848596301556825111718700141175232756831632427051624081585640183674262149430427956514536259585798815215645493351341241368436359597734600226508145212642707751086728746046723905708298982447986279337071018411180860174636771145930259386505120082202565626035704512072182492532645595921895748020896960202100536616663509094727895854300588447448206820069394371172619186647990062650219380841451262515997279510186645428396231951436699257686488730252987439491051600600509771410911494362135945871556015333907807141705423863409231597789866686241633323977085990488765298749752291295292239696148156520923993435086582687804656483592832804220861206588174860916614077620422612573431763230326014250821650325107504024116213821027339907397498419251623562854350309616072612600558891914069246875839035832480329536007786099280029502212087751892314923346028432640906260474665863962098065773953371751010272056090037879380959592241661239728761509505469474244002204814110315762460347762224802053517671839324203860139096071072123839311385468605179947766494213371523138226105251094273077614861437196834826189726311591213579632982279710036349426995899493208157199711499933765754689374905923837033069335075465919170876508593258765270887568595823799860222651854636297931332723325063629799488212172634709729697495748027899379157589560105218239376950774684602011844936653563888059239329944642544278117068021162743092096121957298484691067816357827964159676883323239542946684572386126779958778213785057587208829427954215745411145871031334096121358093972293789464378622190250274489903128879339083941939379927076200847940618237105948900314337379373882544949427588419777053011157583451728708257673944927580925754459355992571492702879493807236188936299832542592316985171441044409370652931996300626243453914276783256322620229715039631292176780988719683551740598386963720604653989874529712421461577526737707310455952412360413600609393999669816576383378315420733225851097356842245801852663446118190211059046817227005215739562193523659544936009180460288351239996804053887361246612624776324071084354223668342709254468059959129980601883449170277485302504498370801595891449737572939258046185959113833468279464878872800386428605620291271083426348389316600712090223051648257991703045951734110328249584956900389368328295145418878058510040300887091969911845845331531870842311432030546916098261716873661268510764289605476108047452284082757736336313787818614591347152123970399728385800900046501175219183374240404020808644719578841939487395467482724041913485664355528854850553658876657070683947372837889882268767638368143955438324792377745247188571356361172348953160529180165437856165267078286707306021225140599459896319408025362829107977156051959788322699960984162265703882124522541785880165428288883247802609604047677270574472790319089944060671589972833106079484792167316006337068629410846668305952939331744872218321554173286956620157101057982273404370594806293933215639400307032633980914576244882758218926676939621103995883269355376892262177372782283847202225687628713804570394355474292752516444050134816098842650614577435715831654222118199799027874275803083148603472625553206660267808466114812828678814687587649869845586476974799842130208890880468903968943941332259042797838739161427119292441470860397484841930676260557683353646936895837572102797986096060345479939388758866226372037606140781588980747181997804564339885093718500667699015116663370395481523919179927338658614288594766043821243630467420957112647340271342867433037965972782890995681505544510860036550349755015375971915914005984503819566285220028932646706564547814789304683872985805392330515631385095201644523348698595662591080466285452978735990548356499528701861913944380879688214900873404649743407686866729751685298378856421909975525101295331568780234967229690989568702384812728638358828420982075673601686590718022019890959303497621438696395991265157531491489210447809101648316667954701233199449207905287974128036464450562750313877756478451114155083710127977753942381223111260245022970352828888205637648259958722177763777570766304362374286637036631500149909575253546410652612467210590649101455376944585953607325860742177233038896564223285191249470466572213871056792618328057205521796056677702895482528584673666730990862686925245371136809518480590638056652850446622817736995053308225844136403564701776129432878282430695378339639289360185424938150670018040507342552134573322177377661346225615871767961301517001426022816247177682564265215062366006005862906649176997330452235975228297804728168781719130395137996245104282624208626547605017764545455410330850038979908921423437569495728023111276200345461605575749472846593601684949193428751120273360810583591542543577508447310762836992858953451439684118471808333928392985989110811253762070334885706706044958362217789634471440642369692643400040707019808075215665221264667636775552364985600021967595692865692253554404000795318892723509883883560664193799531566726954553978036823723935675901152049196993295292303678360680249858020276075929601026712748162687957807741577581587078715377237636777249594746541140276411634711278281775811018439271247776394732687785043584205702956906244780653748762346856437655844530843866557705514310896516869764680932109718520900110516430918384531153015776612496485088556932395130760661055206785976144153275445586040834754284018984926739462355888341383108998717702366475657146747146335229400012128474954094070087031060439770897686091646445368263805438710219110070003532900963172063669408635659234569524862457696340495638267849075103024374880696433902288751585291057976181693276519018756652487869264731808403943835215424406009101011783053113655255976710951098796654388178160087680480643729553553604037285406241576187369058029252653999337442436316223813610359199984573582882554351033971426635656816863377166239431082737915913831611534493039589137146648495588519905014785825701603062610328527593965429224233699762173366627669337935600527139641918326531139138453210153606326082582183345274095071137313691261658560980703570125571840893295402419945397255920931248483426386254187282735271034702632224319795743608321117709469663804652138848019450034517728927480721734317999542745304865187903439478098989698015884234951259231186194390903217030577849620271997186377998710163965774098469112790952986802948562583617223493931406333571543106494746258118165939834975047776831182555846470606031894121023615653189539697845535005642323966133449762167704351543103121478700664824923494120099322043261027017055264072803125794423485927392765628622398065651882567015952897178236699398000313389551401536105643786855553590398753168554687074559017280512555358977750497863537304540681657686030130485795369664484382238349854127202354399300903564716174559361913076777137753556068197741777974283558399424687548416271825810296675480977992004529732749492153361959777713511718644518116724417579651989488457681026558918465427933978387755031367863405951026896716064217575546921003337289333465343785720732004345889342340168775513630190569603752703333849203424421205744664434630367511843598057492783899992736254455299487823887002222558287861571291016477500165654980679026230026712037972449516838193600530546056469874508380068854089751490816361392790343022033078505148033809247034300973824044598282515444084722277721467754275325578736118079506930466827606000036646809971992293627103659099377960117241622067538717501577486576954570061567140326543909117273360859158759083787477714665711270753944278910958990985782159600378306841494198971356702790848536309789124895164950514132461292212299557257191794982595614619943310963249364019358315156096884543468815658191302616506309975753721249022281960259157486157702807959136278882578801981324988599763715493322720565993957188572620174777947021696647034328027405000026276859439817943398470964604837365762261570806760415970992448881625911011479457752281914572827513006575672905214982205537592573295224129034644053173385911168877987795563370100574798822560967896575176767580057546185345941860421104996203356296184446460356799402525073528782903156162833222770148121332935868525707564561619576503564802832706807279913532551928252545821274052517858045406066435585331884605012073943624625861607316604784603377314438990156746957482070296035113453467137778313419306715966636582678069251308720969612553067241551584902766962558702361543004685732371927168574422988862482366988147188851148619483798739263358286616570401718520061889195864818504283195104216957091195790877164117584101332185517678818799266444398585125924151758469711140844585046736107661399683380497683109417261575840073995942969855557286747920787756119756175360819747098527812421151459415390209833190693526176104329372342449010239990320182927773351082903252834584277492262456555408111632328865209455604853506900956825082622857747287615087569713443474250488238809503188073319776647667342991088474156754035498255882184030346732710487686255131138812942657661868541718205721838757224669169403457000799742860013345065213765767524359698746289455492814462017789239204767752623829188457451088939284637470092925352548508869883418416415203637471124386548582161752702794352280571245447218235853671249083595749364375394822793946032614675890743833417342732030278514349853542434965136871373413845898179535484102850421637764598242308880064463221477345072420455002449126494603464885621494249389942778082758079257149691138182491808370537044862212162497716383542687571285915558875906923821054485780297277899455029843049850623563071281028884163280802885864021394953915353736103775595758121916792408569909299309977130974738514688567815900347163951320714620253726200676024094818343222438742777037693556950337071940557577103461469192597863592308266536497244354924435991103115722895970590373244447902428227588828222147357698594323327849684154687728785751006692056356367972041148958829189117548788526574502490294017006204485442180248511875417485384610890152157070811914073186980337432750322694012742635546835369932061072355628636615803916275719644262803120925604854577605202295609344532181341851059561341762761826307885836211225286678928451591590887896338489906707210393069713225685955945948545177728604403599097743753839604363404971329059229406829519304821991943542240773951839120754847118589281771994527784993202566080841866942751143059426585506069596363693797739455081185688260071740805750551827861319376266257856337995371182445583189521717645066037149383893416018970563430168197075281213636441616715972327003985089939766513175825020829108000078319178304963695230953512458210285663287370959065885676034858583102165426040763088642395073746128616970974884820079802435687488493736219812934475551703277974707433335814010931911285889335142883731151968081599317926466156701907032777500979088737904094249829433987180484714954941564303692801610471979653461050235597166230967204948709578839207664939843680844162801553483455903252637885864308584135178524980478603636989070234528335460198070440630023755055485368082224482779613079597265925864731307121235538985736157534812765266484560916644781776259042370132499986808690530929757801513241591421019255216580120414529144435756261206985449020285138826829611755958795232866257154611337957250505541186746063110693728372170825677221129147157712112988007502006555057215010841850405336869379518517715220122097308652469831240041470465808656033449562593145090113412791148206400522731480677090033103516016407784810693700408307900529516690892677208582694556916301956985182090096587711211541433539905946879359550582923928826833206908409112068537898238797188065358740567811660886476319938400298764707343881051189181743826840776283648325522839795926138496121602358481088251384107666459431920098234363650790053278340980467707625947564252821430132824633518472452112893804599006441118559519748500575540747885918700999106781109089016300905213451395510060994044057058159515021434111552643360985891837280573408492120937414895341271596427047229260518245321749626550168188848034372658346362846361500313346675477813088353473704146858059367017343170683111836479882555310538260857176385447798720773288586301185346356696589542917738783974928060905354156648604873148627622898136123327410379820180852974689399994296965541690904354843121399250271470849739875623607344825734556840725168605713261731951406568098260586698093056343949852314698813934364334846923928117017568525428770761325847539792037814656611994094270360535767907514232014995680821337566163178675714647200666261376877382466806077911605856956092576243317042881968184457395368920881139146043525401711280511401023849259857628474368073821836927775926199997063036450399225183491279354297935524486003189728808640813514102981955158218799847907937142812878783223905295555883193471210758817099232038647988384179897597091945490056368938817879526673874687159561284468825135397175960897778576468089638562480150531708436809758589870084855717654629044301719952935691620025596491901765519903697457914546842135795054582373802700925656082595020975635455146908659707361736017761767500999516937237493461189057931215217884149375036289902972478165685112399512504232974927164460556851220691317960209071469037870374713025211948239180284965023350372715028585723872855023636101197251732293361090320851232205065365166064579583735855960681329505430411061974861213632228263733950397022152468128577871476598705066920221246452509759059340052024910564949832312716407343610104460567713434267233762964529868951074728803916747316480820269127441707765736273725380922054103787288168303556807797901631324852543935113242665025421325267895940963279023060890030570111287043376052817153411810330952625444232258021538615130878236715953581604863751056196535413764034044877423350095780174667324508426319410250297293603929896544069273022201165715452543781749471981835200909961010783894917308731773156907995860547974167949740445007539191413068450670162804200595651310463500932833399848019444704193420018784615998873379741138937278915700296984556558300822735521178123095500930173377850736336153251194043944396600343074710626952611739843022372183753142895115310822926548669616058942547265154119664336815481325861921069436503195822566446355473363031660983545135867482701124279536125133567838401339903970486785850736156370217728934367680957648092485746444712631001518646625997025403822010568313689099613273433166618197749757718672751172910495474917190009325555956250729479211550979975784692677886331258824799900914196657454966795696707849119817493320581090314113909032722608944731451636714592044762879638592661428873161357222642954703831411573456755531242874627990072924996420883430743327172613228531343749471359639576224003427178016753482775464804338892005219400076543373335166093182929498297932509859253974148657080685910560954676138054503240051433245841573895318286965655928551669101256045414866302264051830836203071191276853880140508111285104775219388507837132918351961206222324475832557038052060555758832360666708882206766677800410988465635812687802837560642189387663927773525489981311185423037185378022522914785249977224179579443875361550255390971228919727001975618737126542059313607824783214043496294920663510370125439693368479515732101327022424681023316522103895795398478124510815135019103840725498621882648917343318768900745763320362020278867105839611071642286975792394926651559994009097492530405674623185672182649119362110416568646976017066138915734043256999641124363849588289393283086292118559570766545115963767640674673704563633087816512590367627546646168945012124692339447966191682505301498198730356433971044806146038397626977635870725006633034472912708098466869748172560548841058167840229846571113265440720529443090543759737239377338719585220558344864912449048315550000890132744525685635037170288301860480634540015004448422357062094085590516970347342531606924572707706790712458572348056526775969778744413703083040109719445383062004547855348065774438955863040220568833286906826589019081422313904839664985535414854203967042707846175929529510746710771598351262235186993975796591254156379217038262958775261439468639630463303728731563823722740946148227029627467036168184870321494924407670209677089191455830114323040583646897633748804465521129008055860333924274168717388288441740422963547989988792179398153796762077897304123920894419820754414184714476059515242096278765069020956413164916467191285511244435376326479440220836931407922201378846584180920671299144769826321347340188436193881638753674971587035513630604375772068601284815693816026026824531626433765580733595026678207374632075961538457200213733324961958537409825296117826867255124530753069044333413950292848989822363150699711479407482590500098566022856976180168743704203179887138746664034254125409130310350980668742634153609754298219751163343841620598395675910516090023030966427581819502865775712729597568426035795891075337037133270675268314934923492938866668558887074374274569089894402161755286923166312037235148311008688138233217257788272608185342408929985692508639908847987593816443544685760156626892794739625664727797035364355482376953847802802919631617449038146101979438224752847112755604313136009656365611334268645030315517860505465886580084075425080069203386591071234036166759871690734810639057535006582351851724981958626891486223306740046675448767334553216607481097949296968340290899274923035980323749382255641480519268944651818797870175658832385434416963578470500882414556035518361123095207214829571568260322090379413438894433269587999545283377839137699134405080429634977322797125389046032009927292697345569015907451809528715266978578064936099888598308305037050640226856255729385211389748945969033734890274988023879721573536005928616057790355204128718966936537238650194323839148179847009140224216081489290756446181587280097062465307540898023471764489902478490161099991639248258902549288717964224306788437563001003676475695262884527649999080199070205054025716603324947556137924238374147603504705005027894548951867652279433031130104038778922547516813977138299454420646276433246134220824913799177281741731272469758495051015876731582493383933180228526064226943155427323237943879328321034064512926236143648247407394648785406095072577329319204965923638528693134186016844864932727885030995153123103006289043045418061274404428371143390036280846894215405681123912950152306093636158279824167748259996404785536590212539053975865148449883425916728849072969277702723333930796407525062710079285492498521805625494896762452007326807043826395699017649473752460764172094546552101601177430680510327255275698691494235341741484836153791889899867426371243781496783709641429320105346945153038658286414471878337999022029124767748479249023504360660301577032697430940453972499813011389131239842284989122460239807111888773755472588734106333283585847503402363909613808153037752126516162630999971311914211770249954777739256144170622585084568002526644266119128111227093087441258843799961699447830651816660663686740598025798936737022413012351027029048179370005575390835470738588476131266661372948723459917183176152430265605380053571116265961361152844711783345542489878396743208663159317753278328861051746226997217073249721486328762871387964571527783025224293966183253611881731442444613579340871974128079565164368273790944123209227444115865408565119272774507279364275893897101391781130360886046692934386348143964585694912901923058571107759056349268964628787540558504343605805991446244344540929173628751826660975266650649268643264901983539752871585509098081694942387544443712709274150530295764850543492121769848507589954518084306932243946734036805095508147660704294358820066894537710934036220974404032938406270662739602697000964158692892592184818304132757636574485932039962190006403857145868395927585516062306952317112165938932926483294874207640010147114435624417006874620736296054875059843120821842363975863624066022894172164979090957858456442204960570990075554303075004977590488519174317712777076625120876244522421908171740445600137545782729982665447928408225618502660733601886258349375232597688249722221496686920564755899141728393563848166827114686552051656514283228993910886846493659942158451654139089529136092227146808471851536056261412914894671871620176100919038726586367298465979522773136065419839620369104988173673023691059148649062731507022764001415739739870662327303969154911295278018794035444063581531233486662088727015351657369120518723251452122643538166432272923631884336797590405409375321079556777542934588834333343939847219653172272977728953774653388244990120807290249288311450493413386157199229945034549891881638876041481530221835663565416014276624690582887918355180620171995541588820784029269336569951258774210060195401955367410425404779577521803076406359587667802119851755621942132777718680128809432064811082743368441660843339935054551272758231428996680378039351929812795213791336165979509000258666229624196872446273536052980408104125181012349964696786132150943218069852235827147086861817425068526517036001234053255480961655663024172460154384668522439581032809493797263674689624596148428237423350113442765268304931446020081348838738180573992557371241013799334073383991711939871877076580310983926423295677154482317245154872187571247865730169499968360700883267372871074368795612759913749842797900649601508800222938993538819515545521370438206605579977709083171479468191886432682455106274941002350763788454367534304073489819690717500033559614761105119309812853115889261573541685007340925492726987805296995547261633858691191984195914955112442068604282027304676057199940452188609517509196704172084605107080902930187253856596867450245300864858699743640835662673884669703500115931355829242407292460915272559589038096017920609635123883029753040304989033693019236835332231856482650366310269221692599141416491034210900251435841992015881310396326856487591372653011687941134244872392501047170721130861548430706327795413588292669984184269830595825479792269477589014905797652256968720876091566774874052705269582111891987712767929987358882467739156925398437797569711769952484174603640630889707923797536174553294788207610580714212819165487880822195626390926128552693759370141937289027020051039298761365360572964539577419102484258196034455756827092783864079142428903317062032955092993621812870447613951701417577349975910518639375873458703333465937320807525841324646671594781049935835214922957665482950910873090306847986358739625176972262342908317062314238233539810535180650363645038729438303926706036995714515563314740754767373537307766998750970440095451481057961165718871675880233543264465059483879800619532989556235980551215422605659212392456211120916861299997215171058963244273665775764097825139967388983028194612130659611005963322797169357001478158677848765558123367903398050250777938394243055986370543103011640425212474795741416962916106976363074480461970270336264077249844683605754689249787428726712339855479487731624973818362783716330354499775173725111870297666331197113225962164688583689471585246038591475197870785221171631379992212335008896708543300292425654348508339691490126252158271060072707337967506428267683262781277781788926282085440034363781566125292408101254161055752283070554011112970578137129580056221554141441039240474547611954435345795389331294141813562020215214546065758445484267400768605141531324109643017748621686846913478913526953918951793984512626959397634013096633872234864218024662997313426752146431498122899886170757103662886246264845116309876330666677862629268246154449598759936974552552638143517728575951504235044433190462386451822786559681564223125947718555334885444982196660853827495771127806407967423437073452367470478993686176876668785393237021540680661027027862732649049195297984960437660033639758664873603013902994305930360193378739301215798440767378553456768867159294593488488440916830999858851297118768431472284814074863319687032691891355298029056000855527436286599869926756650517194969809512110353375839480492388836277903037297130456869211034532543375342456630441806905240093970795319337218479611746977825504263627170951036280241083074661673176455022429281796596447328969710828703766838720978538718948638517023715271705816874009212380612677385882936632810209009142929468254658822602906335327923247078259917484919880775916990789902843979540398900923489004554134995093663681486983990129813805509977502632931142832350540117513938304204033987459868300289590587153366336447672103140975582920961525209524326934084755217593909684129792199321234671744078481545214753958239898917205994220191856051736726030269909922840212043287582284703312404497853180926403894003889092701126765663446301019733103326530037431190248950469728563276679247966267920790798274585007502050518358206398165759324259765252362700060812336336277790904334987011462308796823110716723245772547273139667263847110648457601776947437679588537998320536242571449351788675571084760697113204625232967781232154040130133002958215542062776497600725040623507000182781052050086914511811449096937506193165711272466937145103544069642525423166414063015434497673575549106018208707338896711781648061844446241344827790268661335345271039701376170585304906415624275248612454663885807522034443993703904309576545270668476092596108376990719010340742911454792541517970367382000897580921525947778237517725409303999474971125702664507269779399573122459192054076119739983006066526790107041028997437756083084976837765206556510463358677029936353114297234292085671813265561868025601793655786011696892735583286405747855153996792458176894787288332808534270583113752563425849065635002564462028641441204498895141527826322352141169348031565261823406968228808307534095398148840942872613218898181970364587182390997147063333408303777269209674065597829793673483127814104472381323432094172274804125879573397646631330219019938701777107883260048120365139380382470423824113780885227959835070726723833365553428021218839223765215075199211642407879664299766660803481355489655967641654502241158569837594078908961758087851497883638804712490765740619876521017164177705915307411253935850205981973891362509105651745209272999133907538802581315914431223268418328895644628692811778771869534994807454167072178274516613444104025492341021152495777832189653830512581910342461377936043010871784993910853592873552853620584207917827563714191593238861154497918152915816561915897269919182258935482466498099033671252915692905213449679720674074970738152541396082764984948678868075021101932709281582358970983132578707743959562739333889866537551118556948236225434379028000472392580099386156825812906825931234607514200353573521621979074624391721848751837948268146829680088148207717307312526080564266142430469976378814863531577789615642421724009864268068559017180210360029962643699004119966769094624207754063575165264138184284466011970699571690711337699654135693013766529806921718323128597005787892844550593121137341213524572889008864585593753539189818835254387211819406726692361253545647052829226300975522442955655727831590350458901714950312058016009781125397451014108462308253993752153860221778416570089763147523496085952029661435627675841858734126254819351403923142905029559030237713153489371369996670908501249037540967235474529738043488302993375068331236788879722614071452110287755142782761828687340154722309500706096158877817594470615907535108875867073278050535322750479863283891281779795889335831650379459594005101060515424143543266926109686981857823608923046062671823435555703688294926883590352737559949741381936295674986972000628951033324248402249666448949569097306943493962812925465305409771293610117124769754992567643369090531250069409480306268392023269603781233083342596826755538652114221636522602811865066649972992785265122661355216247349147448158790228860889980730141177318168377855782626782884218341656830473626639372854212410772532617447440045779586548147500233536058921879151877221463783687316526238555783689766010566329596876177005189220274346517864616874710423427132666030334392107686994763039535300379391073322104462820974326095599129644144280671860573816437491102522650129643220029032464836551894537718055491537736667575302810745458721323871351101621895824171308014257329446648217374248597835777105342477953604814024024334946579933340196105978893168063719545101951230684921107466120441734523587133784504331640331864760903230778458809546829961977496818829483373320859210730161151310219734543993844257027760637194887199365972508031301490346404707172913024386045197405099670670112878024401517163536402266817980916218758831505046155372432159996648535261209591746334800742986159197805152267255063697908043469817856864992876415500038436251347685890171146700679568330782924814223508233900209080788578387596402862920523476576204831636553114963030127484724627021501618522557011118332270518968901153785749167034909835155136714633710398410781509876532586851509057339752323055736766665687700641311193439728357424167277781962760857282335176417810689785429597024179488514952432060905064416093370473239485545323314552459273789543155679454087387238985910132727728695817532801703176760313103694995098660246413879892572850614531020319944009045739267372827308016108684062811873963279069969960670318511855088595473233898982630557532090199834643971955580091838814678057020236173439976790295809092398894560075499708075946990190906758622235999237942303857114623461301154199716754546387152588280488020347122496184498423288454061131552168404142832150770068645391385285755596065995194266599242321602754715968212383391995949833190753565252354379165079233813695200874560886099750120091406053838715909909627160066540263065107727418840161380597415277396083551730554407173873592516032644001389806667982146429691240006554008417305907529702908093145437018610155407838006443146787759689957049919008028337610657070186075428188826995816880328446773108673756937660969770639856442310526776906319866597923797799259451484131999882778391743538871037239256912862792957398742651393272971669216468427681049049204234371422851573679421210836311034668265752676912886627671789690296614674668314694420657911836669719128466915775058694079210444758597185749016260742511740902207806781533025479314167475323589305734079590275941598961459514791748731984044764850402785079568989875949259601543767819697867038170476436216697285098285647808946816656727772174531066066673701999367929433564551248386311429272297719976152161464465378048872883369415358065326538182059112661409489528934714762399855008248970366468306749526630326701892639649598782402267036573439351878183485357613369740256653543119626676790373168145426245967122367555453254790049362739673855034006833683427574240468498936076588048160752484042354272596170046039454981842564616399025253375801161721254104827924007140226822701201369100393372111956634054476848676964376351385173670961747077275848048396923873700605392097805958963511306657524191263240764616316382544745574790566987722744453292857058471401425696196328377209349859201699605452106199197018969632115513389988481520002479152992726173086474446705667942593436674665034721515747048331654672055642802362814701230593798952127441182384748872591216233208699624666078922332791750998838012661718159797058831090844357413110444762455818443930615253580327619928636200090973377096875349206513356517887145113569871684938245111347342020700135289925241879672009295207276622190517417451029745496621252753401049511882329552076213668183662047296703719643134081609705069818351094771239465660216093963504092157220830967385396413222495540154276322250150447152944045976784187168716170754268586297006446042587565981615996346886012676858661550271457060479743538824967335588463711609716111533186756140976110695839666247690054396546843280820707998862565719554331138103261612497969751594673387804579725509714064573641288284324973671151384456712600607404405788716179892297137525282244480672787864059081975954712075017656890826639957833424543272550250792689630546069096051332698659923125154805342222322793575328664810472473841813706838236351407585108346089822129067239987760276811592469520484092555792433836124957362915861809092999482329146871502091562294533542031374152665053159415631736314120131021155811426285261588738688097798206627658936638150305569923358974506571869639136451210740565316816120165342826486883542692458119376400551384012019714402996791996301373816915470176936907076198401258038219325792483919429908520522301487492965376063210305798250422610571592688761495496554309254977879092972878316607988137729840141660071262706728209519795672665276296704138575318871129308465038341709174236032033386253870180872368960917857826898549927057059562733748394671802432811779685833511616363264600164134500272557537564621495553060199657692758127018719648771048168330116013648182297620827586498182957325377808101179112738474516607204374864974473530584748373172452426321798710624890918763845884083670824635346982522982201183817337258025655031792332803825928704099746315653740183330769323188343203226588459638251605552416132331125849717029742555728014288881851436109711760678913814415119787879307686848809390030015520224656813574417671606606803411073938676823288725033411852019929527310541774687733492204864885337530610509157533461819320921628481904805382993959718233330888751560530391372983901572704191266646806179918380455386329150197062624916590390252291006061506439914669783594730766475589845526282212722714779373204890397588453543244207245305930100705942314817043110819798014822993187353294020030312255189041274610162587281010456651862814832168931502154206186595772088975615017047729658690489070755495762614771273189802882362195800765915753092743317548281294775490398824457247187393153333945492187187453108142822026895707870906401959899894148160753718765019849954486645451014067635021463380094621140459586397055241469561595688737324555452274061516559878099230150764996616310182162834931815409479985821954707996247041669517423411070850363482923540502408206718420308898501549050572932744227918655176330530744167512400070077074630053349142569555244744522838854902495500010072658620608594120162784819219636242874833660496958148636789559267752856004412590116301532628675700660045323666280147849491649885922659942448059136895533764807620746523926217288068483250092567454571799613748828737945433941311017396765749165389770228143755155285085312446177737828038350619420431424704904814180817290213068119575499887160812667012103029144547507371349662138816826024484837308753888917146858594489172894295391240657772804124253475166261667391756201901822509092725759352451534390687029517625985758237343816915208997593909983003851768036133787148270361616735544557961732837108354276554065556789523011669964691889130468468933978840305273431143574122001153291957763120509248334884418073844881762746715126566881424035354268591243671925379251948911998687700483280951202930917701992514906702250625985236605150006305251173362386840708030270518203128655581042063943306686953360598026690121466614306091774980733994149389609880214326319225795162115043344192055598562764214877140556318008470419516729607114152853824271714278101909282073405525007407795489859364844924381128313329052045564201841121706377300652948505096219328255461107600804139556888622749216866869785718261652208272003190119899103596868557257454581940084127005445017624978283886465781682910691528012894518856005122493517491899958737284778154840732085742620470178013818290620252418174015378269097249086773026468286183117146526238549636345207826453549096330250507564036914037639571280231049028881848193299323526031889626096092420019745147530308899505578810755670763392824627944845164215434579310248021466033302325711470647296751014528346237131149548639937484840142609932723367658014636191675048244833443175857356401373019649275875976852552714598889295425661974296006086118781323312495612997519641790022917378270793029637256432820241066493397446003774728600324097457325106826869310047088766255766067938776143090540524862299014201175462401496100617306741700817324694415641691300187634240102085443455960156802932920274589050095805955500406361344318232375366481666660520603792504843242761948092731600363417226844179725664758851291973881362012918323432712444448179102838753548400373710249132399169516778757122383910982002269689607356176506763823596883872457779938613648437195820283307736193318336397363317066051818733727235299439542490476170581006552806121334623101297110346039961008412335916278678874769284036698114174248523212518106974553513572771606589883088849126197316973362447962777737272751847466837926283444165994925852789213898567926684765301490348719225563260111456322112659940619822678091581394167833350436427250905458787312016615378722068849198989752971029325941374462666667095804010725786749629936001407122883051726832268188188632827570487801565507043707897332660605322580924765945780650019579217939072741432291653138522757733133477810666241446797357897721115363504001326934586329385412398181394124895279821656932588309559303853955494501699907256002720835143064144614102094480932415024956781312740329070872985490769263264930911525720230812971367213361835753977064654162094686123526630203861423284535490121635730580332283159450426345845648605939097174410469610999721157470269451827347664213993552674945789530323308887059824401167220815789838373565206809765791464482993250916959362650521760055220435687346867467590656838818227929230958988375844727806119921357272568560305531704969113016697798859931149893960896992135015185628759234560705629627195988438642586756323411997719340709231817310037608038717234437872596905305396850665673960959084675634840299962932324875786892772829535931044453765006500073347316824863264216553731743196955755612672235441989481395038170966882894624982131212386427546793640104247084489592248398472530818598297758278907653551744866775788835999461655717674626379874678590640547314987964598334742675352697103530570020067114404238180155550311743758904710421438108598074253666779895149906683854232005885557674932764124075132640491216716496034026997974623546847279846975574702730761449352816490935842479786446249348051703705440445617376014748956071561409672291728075874749961421333132522040888191306636410072824122609193975993793002183972943297374393541015187798806784626175119350487014487006346688639554081866257731641145950637344930141095718667980688023961785920400071518246453650201064219868275981842289974117555426358641874135237218351395772541553118936700293255791145943782686497353816636364578782231799707806347994993882458953225001505507222507369971544198001424182430640529224487386515956616563318403421042766934479814001155107319489417857342947147870295641605907217371863093983413987553770110158543519757781803338535205005970247057858924247796055545826176534861879676564782819568826570957358630437340034831250387278589542603089642110596234977625021894100951609319013195188633253532640302948712456614243529557597328975142263755113902481980973486778937771425099121855600050180297603013866759748356050084573668503586515312315934150312312812676452088882863055067472790568852452221329362088657334130839996313936229377944394486155925177866231460747686425346515249672023185690788040003832540606591656975016137637646228721137853952823258786893232663986211326006315981741239137049425897335360632217521602690689619157589293099749034503382720926391287820676657643742751477429922315978685479297808313383464015442601397811583348534442542859790531241695645037777899906334771792886945847145696156711364465291313283186373328576510248914040359041669749526676264805174876252256669097600318429014657290550896136468318597383967951430066877764270878352547315923291524191416177265263327340861652001784765440158811407100092597182071150050667208982881215753582974502513838997093814267713831289593584666632539838245943613691548820727612397605938545205471490373545512183197732595889350237729937398086455761367943902901574707691204609633524761687015288268141806428470320449080944853199845895816115400638180822929300848474229423055145239856554643815882797897586393962855239719887456020038186268674812028678504915028066687997924256398603172504136598705864164358803228605606480460172669510291310208765653657086896188430948766615893508833361232972720965821505450269776485306924351201642193010468380841035063778578586891033827944687782324224646538167828780016287087755958655237374930134692799296947143808981860296856768978062895087777611048972498456843976175040789943066311774444737278283069893339609161363159048694103314725612717076355503376202226165684971324005773103523516294219516061061659767507173047364144752805166331525448575155876122613442004170851847113921899349225373930291551573290247343934523615119204544904843926328224276433456470464789030497143246902297437288840803813236892766723520819545451540833833377841033994460737734610813907165814258235202405997874094345148386733613381607045358516733116174105411888312998590057853266266318009464336092824431108193916354261333643873271097075514798268209375778916994590559634983637915048008189403379011532456666256076117999664165890959230236783808651152398176885419111779942755818434370125587397623800044080768206513168473013446240723969125728204314705189979304391198976477692342187695828100358257363750471275324702463906286862543212341984711266138904601320135913109486393430518888455218290865424566246946253300429778122929886411584350941565591168089457059898987106177546328697168565456085096615901198282728076975802721279239967744897403950452163830322610950852861804088451158900013257929375742652888546496415448077406811797628357435711445656350301174676944258220852521344400751036436770080177345866514637903822517698696821248363192202710123714177210405923728237063075487698500326594540227385653322366183501518533035940261695739053294879728414813263210127311285289093218279387825136428607076949680382394692108342371125385822028285524106215278179386309293924989576986738480379615214339253907207575464167516107881365536396984023350362240940809798864260248952971803161634459755745106413674033970649362750152925100264655776188908744564325653879084205113244971861514008042178508368323053576630680609405423851976137348138751820801823263320010511047640850214378672547112153245169655738726304952659827558557977845350789784156116783759663736732683746953882286018802183351101386219046716391598193455380646552241839413512584247955662075539406875791044599473230559435202677784069825393369845902580640044507877809033482463906158164758840102227794600352738096875667001762929346327986327485474664139339543972864635421913885484026754920418157314419437888271752408887884583901592784896690643645492211466792283151265114705671943973572383078234497881455498867777114244003037736292181092079032822761092150210767554220730098104324833411608592404789395011849273606732116731356945418812792419992678475462783334170905992976287767982117350202065065490925065489000452382917193364134397925774641340419157850763755601211178234537944526693466756325782818453494095738789112869686158313811279100806283746722678156619302548756995797687966448887171063901821342554817209585300264245680165170682205698841147181557086107516266205220162740359285135258124790301672067718704839754067055771774014734957276209360957844805571067063171952683603143804311710243446783575501395573752183142603033062049614907407722401355273108162335369347239648918666287513295905812662031950046183445240092561424438409575667227550554605286083815635461794953610263296126699147693486654160697024661374784164207112690844280907791093657555005102400552021151171854950643390736043557438588689697459709432941669773046004799170642363357557470313390592775412690688112921519618246937200993439608335179493055761142806852134386070670598330249930406582620344183262789465035696483851121599267729115314882779449520738721014959132684952137388675537972087229474605121915924235035153022145633754330559859501954177445768279210418820094454105070390795095936524596607220162649068809796718001182505370587350935429673756854293897035642210781822958428561557361812689222435809767309625221189403801356072131570933371438682487428739503341528859486455556891550367276867649676533896277533736649796130707654924774532478306424886990964874076961220985832933278049677660336032302085672558923126650232212642082505679297217622309411233699335806571341326445112917867335522527037428860373497118457345325004975273980335509466686122123771738429571061602532239073387780924625654178301527555104311799710998263168474510263494652051967453227729669901078140232993656942497366634014809489826170122255194054182916350591250331623455041986829367680117169702809480828647142133956500186041796675589233395825841000202046012708920655422269022833754628489531035465311662774589205692705804956157422212321361842832107628472563496501938809641342875751718283785231205852286613484094806968464093773794095966135674833969244382858911788380549519930217641863368377859217437655267774159089207516421813004352428263370200319614652160459256784830452190199715123479889669939750484087232638694377313389636723169296084867232911767655721354579423691298945887803147863816040902871984046696327081888062630136241969567748966837804695775336326024028064381295700422385644782304293030574900415890445485367316632194311784246142227667530025165799816060853821997418702053110986015695815841768423838052071504436203239915792819801248545529867987474558530516470262423230863972918447361752502357842217332091175990470530743628362612027774935056325717989901890888317712364278799974534269016681731393732287144883483380207944950655286434022809623192900724963045551712266493611297090979900583869080409735348400786811280863774997982808850180843712785875849437039233850669424769218073488626199749911423921151398475675267138272619917762178419839853018102906546431701878304539820618313215728378908349822953341962979199500821190313951259356868441446745118898589632811274370757793400912428215681917378189977334566355337470112464308665079611391299507566068459734422581507620620599107226258836752164512192376855532711977686631395604103237983200215251300864567153963255411495811691981455554180856620067737438332875393649789045343359769351137934099278176814131708723757260416411331369827635777506584212847619932337475923601919631793477270288074119476289540377950788454603586786128731592545273939903791235622100125123241718970714050869321251940005623080555083615805805870232085552126497372340730951999126464766495228104212750564959428573034864836968999116521694909912349397277544436664512867574947006964112769869653546788788311179366201542467932122257597550038436192000428662201837418230281651869987276119542022781640167831998813994516762323856710734528269922829251065081734660203310316543840816861697237115162356931283707394780240870952791908655264646523434298613896422737913722032620791776976106173904696879050294461886518403194157229480747176798880148610697327423154051320126777952581227264138765843704018495582764317319867989533203191535175441447680909992859318297581350191355672448653411605405947672928558694225332947384378560060959338578127597446453069880149917117768611757043368679487366299011668997798723289271639003920309306824022720835745369723136009954362682432195901418763752305128951051771833943356479975793348309162937912448508357566233590042201969662203869097754015412478026047909187605639590275707587848925696521769614821861376755311394674340117471892390934147498904196534561957496875353853021214326448701973623672115931481389283227716951861440243879945902888892531302530887183803029417244127711496626210910283951937995059368459061329508341897557838366614373247253344733325552690480836006103112749642830719152259101478732107563232041587825484512432376328247955211405699030405543723529731360466161951649992844560794404792649632277606519916466063228791526157566446386021460196001970480545855319263782287379768762518926709290035358549910162740927037806336023981098010603562512645512610055089273440160902512672289826385335732442316596703398471873843766769340498695004227023228186961916756084325822699214265038166755521977604776736937631960759395554083822282290589544434398627216696791821842019334239062436165599251819898625961033233432803500252328581377120165232395673426027480964648852787237225378319670001466226764498967882887496407282709833115699660820129140164199805425244880870914124991335698291187826012031029268640969225475292395553574493768745898790288628199323288641376072582090598967031784809499878877131289333512815050705394503104081480383037917985285614681403082118727434434776196433256053008781014252814128507769836805197594469635307247995181188362363207894790794429585613405303872464864590826477235792219368577281868187568229718907037087880628741575917104312735936509107917233954926969107910958186840111500296266552401226521536591094220000355686746745169504992176679257527551325393998844220882903258489887145564219693948356247558405434774834974472095251159687764310772101376865472447447722869695167908453131052591572714225727255270905632518403033369363214463199144267041319934196410377038877106752637460109076636599910795158387030526957470315478281260822730858397272004567005289645069464823846213200791092192021540643856817308566383522670308808156451128678717372661964002694909335546447616603862029848100200902750179356818044604681670429398649779187454186780002883677650306991477827124102547608046069795810734592125242347948385302436287475012781403604381331195873684898227911239267817825509897283072311710853618146872438074863826408441882954319561172084185177263387469205707217763220782385807758916838147562432871567512006705083649523248659224483324824361002579634913247960038785962061677349824434588972241962496875065046678332873202564094925303681578071507327950930368314475589395485447597157088342228747929333206423939636112101832668724190734363687447504028073995172295056954652548183053088053379896462657779325208730109710273082887066039590902004412616295189558150665035463301674811820935985946022434750741030672030336304124493619898960826672076056556321170467128510076888048426343913995360679530928973166114180324438847145916111557904457246769590233329194266260675955659116709474982101352009155534708748156622505028639117471425402805066262307348283954319117062562249511358123221460326977033801878947904485115449870681626047984779545689838138476790154991732927465554699254647053497881610000871404877488222121576155823307511994508239169404712009347726802478578341528089820974989613776445072821253886365639159731878038643146097253626619970788882009435933928144297054224561354037942025617411752358608506543940405661315985910258624129522248357058464067143681431912158941988463383416794549330207655239727227880642464016726622564111685603218490287222096795555869957255242798146406217052765323857199187179412053470806540684521173245954585108592344275006129026493219665568694507524700793406033678740874898885390616626511422895183108526483880886085197456245528866215975820577175267196078569349903122428772952418901055873971660784039611065242991884015511005230118292014086054313377650686359720756191254932917410298274715594236471250853069920910638164693827538862326204188436099402078836460475264590174829038701440792867805160142360181801991673823642728148320363831922354050818964885912238886280618246315189353146673829140090553509449864541475380012003047083692229448796992693874711005894264198547036215203960830658866827541697219114623062161308683820066707004824439694354751054426996933710921546185729621674900471231118562066846626235825918682982692382348136870120336618652631163569207903740997909079026351397330157980410231122570393235789506244052716312451328993418889212571117401660746684532221716159683728326795954508745720424019079546562790561902901942078218291189951427207270085307189329225562501525464586847903630193739886111441191065250990293220026348308505190925651096011557031010859982859053970150440679440040499201522336443571921268516735317591557414337977343882766116628708752418829545948260321906982132532220102262104122342298149812558258211893637972658498184301615865046154421251524384059288675026150137958693845349578928162573244535402002708117835706056012291308793956861271225022806655847529635374651094223466668500681027979147918092312929004501426647341308709215824187490444909668415614519716348816851583576453463129991121537227763064632059287049178653475486886500852972455655427583907971874057590474051923922894148646460646683081969964556215137483817623757628383414904279882416416302498840304631943284359590173284772265652058192497892226237319486110946374489459580798809364488562858443585564228095549431852066960639494616239254392187874194182486099445860377389042657930979756404962780497364567251175290704546291032566906621527912250605802157661107514223238912366848092649439655082573414426811933877668031610748634844203944266348170713384338510786294904167292876240206103599801634700221596939539931090099590399769001583732212551372729223555393848860052035195432101620995994669737479292501619958782828446770907097334874581669405441037246455397365118441233249513751531446587424932757478816512809858725967964713633643605005795174280398513158921217139636190479935598806987000981664442768697223247118142251630154193991753879119680051919949815918032659063161269387405609805280636297626780366722878227987363678745649464092805257722381728809574927086958710036583939453543371655042294668028150646564266262080142896674283804590707422113820689691696677577954684210025364078661115415339363176159938747025865143731469534449218039301468639067322242898768146910035274201738789754524005726784557203062993199083707757284675967413669923040005006798189333606818753124250909324007807149839854252487241331694805785993366208641883033504979654252187942483256278995640329053963149974434943460016137670445068819910474275235985175510056769176063011077410470815797555570193652375531184237758233535188274881261447769574939348728306510918226008263283141194889603329708568842397888992915236859439857043880103622549970314736084784210267249535494480639089137252030731499903858852982273132468952753056995804309725434381090738172931673525083922800456844382167744110977422264171929543745937621115688274603049816604796012537588866449447283905779893231194934946911247436260951023425736150558406933340624843903675388421257758671617681589684199632781130819122549684837570353032089300612987774018767021154741187040298864675906532132248214055994485281930275604951081409472318363283515430086579666218487853210878178404334014537567240588940513067703943246065249642307613714761717530704203129280800037149702410885199060872929189365387093396132130417794344449439224226281550480078421226798457074600919763768316377943134577344572646048652805057951363273254204659418713975552318789174324586130630534756453726452682368410955915252815023077028804586262180570917636417307239056725488764689646629637015062653284025883734959439211361618722408949326157537514144306439519002528987856454489521242779195765783803090668164434993535630249870480390374242179663287033319076999628893109096887752240347163739034909067633226038388791099553078857498732697702629790668342382110672371959244578638623602715284577143222368849530444545601974790713266571137195357347225363007186445348142347656305622870346825442034286476312201016294872526224666201750361548046297294061231294329749482225118779566630309565245529507487113921564265205207308289432767089535180538079266959400826041260699923101592928285356558860786602844400307942094230700749613695662818836490149736641330636577700542317657579381537948490846934715687231940019456868927808318553312130460370493340631902849879429885025689127896434606869045552084591189914011300439571889425209452630223061683734662864077904109772200718119378695203513269815370584550718602793842159326200548972001880947894453249654813357563832792019000612990320872944090020481489676991163225904788236337093462127613619071002199745470092032787744007945806374476873601041561230914349539037154534433589747887276454056799753970926082686784696523433508814113125802700596519028431454706501135901548688263242858322586851595188917114773553863660467421645705766987678622960098518305902371536221136294700711700738127553794071001815871727279545144981988639699454759624432284568918082490122605301770830168419957093716384684814062409577194426172193598726249844615661928026926320556841881761108210249603373535942878788314098214751209575521497123041797147588483226010922843103887607675072174691315624674894423591297145121307524576819156130074024518709960820547592168527907511025462479270632120474445080447304857364312899384224511696543551177962854997108507482820417066336507053864648708946501314731262207675243420271910270995212857352339851920187843132513421515248878316006744969886278073079782855004721465151409805012989987936147455144215101684526324121515875112742784553362111627244790472062691942851922720067389723510793478148152172676820891210394382587504732459924891997019626321598938309338758477061952147893952712208271375710736947251358944301864471603708581005492853705126811442301430018843458334536284878092939214510303816021353704989936307014683612176334085634119973216773067379202937917209254362618652878378794996405356231111350333382800493996385638732016575245722201562335518797354523102343259120501997705057568188051438885961279618090732944861814089814266552879127908453900437612940207469720771647244317753887325502528318530788390160690729705904938745868054441484034848213607363769802640279272020683846018812538673078391560135983775215691457044935218499684100146058245985607435191327722580275050473328697491528509803512121175373325499006099191626949549001782145440122077108412052425595082105595759886859777092770769176745170843197974466611652912702425713516809342849049211065110616376240290580042836007046391531030130002523303389152537476572684651300758849594847859484447262148524024357171729344526618068230583442011620458629609186298298352628326364127590753111359159966452896717141005042447021654797782783808314403815349349968877867783525759376080996997599685380273736646165845553784878415474187160602175402603420290163698801255388744142780035524052729188766686350180152996875374428447898739686003173528854512117973531045385204011575235705748530198791373032387040513996763025123757691265962330632769359630626371785885421600396238642160898678132005832227552183988290047961916614317395800498599473251163488241525891689083799933971443843094904278871081040244932112545387458772661967684022064486390622048048479247135634299980545453828180535027782820890052197115790077485571538502503572614164048433604456763876847083045646052931316589831595237577953845083181026582359119445265072243291657438845427604930307858099039010418232512550214986296427201254590079772584260614824678419417506888932135948845745493354517597965195561347336360371958801776073632740589078042105681781027127290887849687228785979028249590657765002341062086249140687850837128300024791691774983886387823714725927709366483677079407564627277351789096563856573718604056823718409485568846935591294256092783148353516086219163945520327289458119787972952441450682976920883848313197756077826718038546029761239270762500776937889515080447017340882666448009336922965094616747211650577571935035800454838074703049184682338763486978986836710990702068995160740919119597916972550055528338733896221382261228179419896690291859785463651861444395890266589498739234860333075222308944008025382326575070144126105190877614956512153761046308636708522115020625379877304284295099033282360922329146941168569643049009099852885070587740492148252276349069434578820633051844128028732852429239052452631278132789842792843173213912742256655355349884300577623052658136650055893353394125434772476554456978957377892236914213144221294424752432749251265703710806395028652683040399949851168985786664202974590211746172797681809780630344077579125371550150395935588719216606685500798888755347931712746188242052716740999934343074613486337252538139226637053827869589746032676362918838373205356530986686362881825728474929671446694563087128661761143584498193164264196196792105425792550020348567345961132542403995893809104294892609131978371402040876896137800272493105610807236010810768036500273077086851753551288936462785079419438244925310137081573106974812684611320884249013540877656605695341940540976364618243988487296016380625583534391631141613486219096768868981095051214321192480405759047016023005503672842574186529407515397005582371565897574082225694940848452496673364254639851545358292926118615936004304822815390612453078550948376917875503268874741077357003926431950309229951099323069356461395640704026043341402365288411963041889277101867896849867748733098996308949917177532979188624098110664920656984016716439644272116296855164775626399707686145299220885602572796121613120547133897965682024882191694265168374054491812795797426787908045614055745659115962976611367113010709683017129609755783996468429407623180661337069808725259383908833943849479086232385499143345844853747425157104940907565284002422811936966152206702808782914182424986973819824067420847607481521166873373100425277517628640034287927641750150720004778423802856337602095353494397085847366109340079164433700974538073826593889641551567054304352415610252975344043623776587143344052812998043310725044697260123303099922078100288949016971047684102921681891527904910197896120422005456351351154047024873034586326158906270405100040552944941618526746784604038742225236999354067435946837575063460769817068944295577915706536441446049270173843764884590901596012918496223097625556644483754784228751913803324663000426649315378919119317128067828984597952614326294699805148607930614396261623288705013780083423445166885618895480857552213252121230636340084002420044418353354316554158766645995733126471846772627967442766736642134277389035316560072219881128646769748408783848358952258980031133746613144226272277357517301279003059826855382432586566503344036032834595211998696180157734551590313098661539799711026147003988027739461666353268263662040222648273652026634347425329143149822104906565812188944587978113656017941321774146789000312691255915152286739034355579098683171514339056384314268063732763488294032304228503604452519877000015279505836518756315090376780251286009849886432518154235360815898069051552950534553416813578440815611785700543639357303630220531043171883283055792660845306709821771565988383567510896852459870842322695526758527636199432059054676141743216302545578379121927172344759510975301536104375928224177266949999749722814053228465834452107651547726896801300295140623902395712478813589951139100823345085843240828100772956569253301599760365794069765853995065612273697059926075714999016026037871085065273835653400281422642962084707384621747212049719445892106537635626705479191169527139401863329333309034929331307740217188472505062176042588265044874807790111722208864047273409987668064391553838581647147603730961349272498706705012120241650851636008332207110486298361327143656502277461027100031400281294852215823044005987208276702189978592678085810474044809359591153500092374427145675389026531278895643669077261410921462337566977544389675414703483033629825918826599133268051633668541915320364853524919788899986508189596324090452347961578575394608146922941722213024964362152055828145280242719912040995516533403580712111440079932702058817397597579584885077705208201075363860276736496961502247763382377650348336175590674825845210875914491804536464277113302231754622886515825123879029355691873023751614907117405969130385277367825134766104580785525986002372690295553194685105948929410028101915051102124607939279145374136702064382223831065420310192658137159881828708949928607174204989287905079999363205008906526973693463904594150862922183960206371794489009652000696157309348435794302395821182549679553161395982586256605512804846842724088699973479534317765891627718204396968097306545214266560875172177269725683887729971250006499106746238614001961550386308668819770466355293420369333635581773027261885191749354649062807420524772538043047015729415841593668493369628350898286708646538055443002503996597338213528049364337409391222455778598655276738068140034467267044825446783420266494426574835647260539227886765995612831453705844924079669806301086907269485184012336611562517638076591389487843083462753348728800252232547339606782029262359286141433526270801790391578802540837729174381485030646067620272315428356296767842418312011004354806163996792434491148634468669521515693294019401936203098214198311578205163672006823697320170088038612944183848149670261211965610076513506464170033168931640706327951260107249646660186593840018974681218362056099513096911571771011076558294418454279759377146205365063518361809324397103547523154569294479042150236564940990128801771070222694967209174001071677300578481769566883523943389124213847064402908301752982612883272036226528808414358988216939922037002905824788919820901178668893454670058353707505850265656252426488788863564486377243050304776471240225781352682482297869599078799305269656800972894905322993350566737721220834324588028622759186809389446241799641694663219139275772599521766392519089583715579802793864398219245380376317214878996562709180758685965758115640819762238160979179897379570184278891005743650764148784992980830291921479341531349817928783147000432042091896402572517799436981735937305935524283938885355640368375428257084473670439506213762665590426182687564414380593433083975089468342681357858367915000069077897089739299078273769558561560022748838577714470817009639522179415226830617147291199852425369372697053210785167682062830618063260036740730003105934667109909010556525767262134948697794305227008650896736363321025014492680515737347744157111934817269928577140017064558131287891396644690788451322224528118235238186094224779098082629538850606750609930769697723997528329666215494585316140625052253542109524954281952918678325898891816514314069776258471446329376815762937988529470687136317838853570292413581174090665189523381853952479428664134394997720679211075717026899195783976746911016992947843765400598897489118702572041591131321527018820491091845767792709449612935338743171222500189682047140853654319808276323008532925585211217820883150253506914150684351933084838149213794235624455403411477280209917337968932617973077577345864101142208681848733421722701917472003471843167089864842790948074500637661985441121737384708111994436696439861656198598427022933414726820967353459638903358588384360636315041099317857871706333757478930650862360160836926769933868226733490731831226495023853109276968070966570955949524336507254588586663457420864855515313743337718193639033885811107783687282231764679643831614846173378228835899018075754678620969132369723967585021684268613982154697882489453493178002234566031721857073554216268481193538141739454176554598013936557412504739945012116234420299598065299579312804483385176039236926876374503805412068226367262973773485364038814233902729596852416251172964551738801583821262814298116522599606042923401098108104263486797030653727002219818251689917541550516860121694418448076258921849441032225222764336456403871443328555224534756884272363224130966319167536595976010319794820299339024870536910722016417617457314045076233842498144461838233484833563083442248261978547104443066189820381031520453662010817769272231891147821171933373272017440352438608740967583966538004804383787594765141529282802378506376616637257447033679446006132356702963623331462847234905429172704964142345706374887633332423290071341827335833773206737260677558250612374332151561118353857791897483981647579662434976375883495318845475062330376673678304211275599340734107740472074986714918868130233575051830640454693091265292210115312319152080622791452409143095426839157587826046029869844854577613746813220868638780893780695782584686510742609010537286523681381269198299379728962249077959235443765798267704567262892757820981357324317505490158445315795454483477255136973601669583939879405721740154473161040020391911013518603963776568675990226678019208185844301180168325014043733757318358668670787755627072826165810490773197954179924818505402056041352690962321789901827233144831691491552768557145660412041551309387488151395379786543158537762717471094674093838391932505377866862389632061209851134329369489119827298857573390770029128044500924753418638169905397794138548659290528821273148377850610921260787733375748923191537149289128121237643866178690695713365273900865721338652508047284517352245874710739502268491212208879708997279964682869556756779080413653697050067953991421106214161627333105340714855968857040236018924445460566678190351445334423368135774332910328813553158789217667049146482260785758260345176259092866366982465055476780012496227242251169948886090271670741803198940527765775222130530855929897864998783430851837814394988206272955707218535132580544263133048217983227248193822496964346275285416991954750946095059423804435016618788346549969398885434332498561724815426780053355554495162348296501362257859944139376900792135910035382353917963034219962331859496754130913906921486612173018122690619697009355259270282271852570857563680828237011787937702526181167386387454113765029952243725183943554833138024239826623132868135426084528204426053140270889231406315553554976620413848106238927667316831809354428523463970219416609272115854655620357719907039058616153785866115228925709604974600482762912905924860893081628082193456083606653792498209256612364864726356036819662518205718133817750907782752275750395640293615352197823907006723497486697959466825450755152075773248808538213862724584112977844216624950498448077241122355088484389909745991286335152018429300991510294626917642233215508672126571616610621225826409245124332622643378648992946296183003715017970445217632539739449098034594104392400563047744892657519501814243335805862456320751913580107101899012667470105067515601725132057756813755566215424360152249927642191834247091086678954211790432367406619016259986474559451553017948871804292694171950372341666266231642440089810088459458512106902362396996659199245398994537430230767533299716538919335090431391090814276879339175683892319434917624879387131901615076283910199444824055187457738589680394690587876443875144920772785044885964754834708896913576557880277308537294091713746478109249453929837337761335412575192284499709257745271866117791281891824966921878624883352377735748137628190625390441927342730073514894494819044210498767829316908089023983332011967028622517920840179956589578350352676486566511839452941077801405304995389284019465684696365685623793904071941032425217868844280035081713816437912801003904652142468222439103902041182716255132363828411570916454971307353719416491570533102815956664939965776147288228280808045448844343069003404899935017917486980575207479794205976062922478272353327842441609662402972271316312445850678689074329515318039378066602138778929880118472361206483272826591905545169745088852919825581606260741672241122023612835077894392624689492755801972321184668360726520629711155143327249955401047302517721119791918972485655360913784724175542621112534332850411542638042747232182988046488753298827973048774104213473277873598360783993304589564479031472848251153373714306389663510033554236837395839880850559063473098971865401789394708735565314843277254792740326863943736677819798977078840158687134183620495673401522533232522300707767198433758933214376940683562629772707482635788495974811247936927001857981445579881736830136772200204415374086908916821061957936968700029836816587864394785577360796675188725136753141652267219237850699277773736506883593763840124592043474724880958942852833879166117142371980968857206367706035208539925878412717727873489172905803984570027639505957018114652652668790526712371795157470310387819398446202149111640279459175642064418527690400499119756190013733868040618384042719151719682798489002366941018391997112134070597667036609394727410218002800231236004384445450122812268196787430716669436873044828495566963056407476949713719794559491036452861112204112487987177554350134500522505944395361763447775578642849051499442830316602879069495287136836165939591986299557989993547980442479848984616676217226450340356724741232269536402759907158320093737607306819127797955206978786035906872088878468410732244942617650717197793020513589053279180794742361398175290657130901598305583826026430509688116266386193935141711149112528706310985930925634510878478015390290698983813849523969074948027522185743608535202539695597368402948573731077896046890376478707771336663893289976798541260359976201504983050490539615786420115484907414423444176507582199761036791433411288731026370212070129527802559401999059940001816730573850768228466151512041319590662547599768249997412056403740392973728479420299312643884888184357408898264948320147759348538830926183598239168141081744805238068113501299598474423485968245160214508805561930090251792848949428600491880573457420730382382052012333803118480683260685541010884973451764239794732672000739473583387603165567474827698864939232783752823068879658737416939210885238378567046959951819684026545223715482085170385834426755313042333704725948710026941627166634741214794434201581428130038826294213378551133435071987289221918464501686609761063388156026373687764680616138992925004392135677471762108153045460167780498644857055554733933248174963431763005490866962578272814623343449618186239345635054348691223857751929950279314516826435596958019775287423129281284123510980402732248385901757269008754020136388309415924621353125451089645605269338699769674165457798227443456536401464960823262094595001312522097702195825941660154309376912347058962164956731566720787864266244195035021241051494584204162279564920096000459921269505538070301166682345475053802653499622604740303673822947303344761938278807624023893830682685682539512210655798749697079901951684102236267915409408197447523185780500251828164279418442116554164992132096911416055699185860375610613697450654351045000267262018243755100700543892467546639277343604012990415818917812851398416165700874117621371630161582401688564812023615916933985001246851181264436485456887984570031543108034186318141428954669968949617271436052259320889442633546568689174885285115951976377983335779571070817502643069343343551237731703546980749991709584767007469155801345218918474895159193963562778285069106870499383857312091584745378340043210850613479114160655256523910523120144370845030755823793776985024676437843549842216668292699605186621636279382623547092403806976209022051457987842357885813399132779976649803939661261476149091840268717026166926099768034583832997767799073562149581688265044934285082647642790281510888630815391099008479176208642181384145174017658326723942238955367215352713685318709197074790676845570733767291462195867553318599635495808133487787052435760492911123975466354360103472031046552653677127013757673377029646635354210190813249039807645431412773838880573750350538983722477700743817116444004676988749960349448904753974385913390418581281296291957484101541321006691239544835190785588313780485229305865289301927837584176048706112409142893819800353846727352761860910134807817039518112226057970706788139204548543074865085609744125291558757378499415340361713703382057608285766683688579039093403494312934182597689565392604908688058794461924556538152570959831146227865864541047661344952360995345857852342087581869796823251377998233311417450589156266828315520455929272543011663107331355093536337665377290476480593181962130554947306384961439559842320786865481706942095745911212859490911189075586638803662523068532448240753800363058854781605482938274501675525795933021430240241950198540365687786997898388557979800887830140144718166074900485214053268260335576979047780853537934591337261807269847924109370990694512066401013653106245649591629732462482733376890321780929617803459118380306990206590114324966851686781973353354992091878058457945711083401209440019923049223743915102569446343643659593352848996963165614423978435620476054788785187777096241622781841932366944619550906764766068283689462468673189617983403250282733924944006309106886681451580783765948678920437385492079308041942406552822372219152127780105612483495505245344886962920321880248077083989336624770351504496191021939294643718405950991137377513073241916386666646575766452342149544690673405047755738566185991793282360901706012564223803201114867280436391719918927027478053019723273510793693068444563797907105540130988261206710556357372097081197770692752725299442473988007513917866994675266767209712704152120997252574652241560020522777144570269262187619865623834860866627530460210656223145398753899532729383404553672702287623783115399640147963360650766518180810507244628896734153741408798116995504194146726586325325087216431254400627735221434615100225366271936824499945233942140538617401263758438691122970970755451669996055405712540770655306388417336948495552218550121483730738591688457911678460097384372182762165706657071480237649467589654873173850706645202912920919653696364347946873813228596792053575613861104997568265513825461040343167561211524980232197478239243029900824313103228920671681450442191847045299254632852794489285013799675631151955567970629884105650999338872217549790893064766768550178490231937255254275252520687491911765694523057827821333086767301510278714860374634998982387190088366033089801785173585835213310027579854800845746539064768717895694411899578914646487013833485458255852900561232147799963679276525488621311930758705989955397507659800923856595613834364337619278422425849967691119223494921426921628869748336655763675511089415897574291668429148004496515206305099407780243408043627582485264197639022529785737740148397903016584119404947557744056016930339207840671097482290241970240295680942037999043267197509297116514995263495628615308502662741902536561203848262856772694773129351052923727128612799533468676801556682458785501636313674710659605532439730384287617453888714152972849807066506087425483812854376222806968174669019576198331440627825756639401352047392002005936775020298681731184802088543325195691940192804360517490953463184642557919683170513888549511843192454041297187659402226658827108002310933206628963238968683069700737761630777179543831746469228989999101811985571393648726351957707752505533718579169357745356115163371357833246540976128810934981496138470649093392863901950151697246115425018362413332281003526956747646794534840894702871511390754375805839794385030728214718701517357341168197540732699718967188829922945491897533894235049772664810010611856056222125159939934709257564684856112926626375032804789265537786285028452271680309963658460401037558759216307778530438610584409199114329999131061176231688398093619872108759339086069365643581793187350428972168969831549732101807131060155205240883983925393607494658614546710606836879769374857915388524413882780330555088975789562890625858316598665977363925789392300755689379910429443816191443091446577082591961451456318454310857547968442146385594130387917873735430783741545719424044557275305952653453813584082483561448774406592836771654910993937905960340877728205217006486138610300337639358954682227949358791104801366230029591000635682403869565757343886025884451755621249144071205489030114138959177504598694193257805733063691907960440283639602781241111944940261475556095265691002399336145144708038226390915490569600815311924747126698430838394069750199777125980826382252075996120042089701874262619145484167538786412214564009406189408975305676859904952705233875918950176468076495815290282363749442966217470016957598496391117583431766685225387502988047650902953674835810765113271208840676049273364504268689025401012619737393064201774111213000936806959486014762261981147411491149474612386808150958696240859728288517210241680862840000568911694139751649054168409626125363122593656255475506060313846651140081917391595284435375971207207648447697101507310936469768394232524940559170167840599532530955488359941668308144042516532807362836028004519137866111582060876495062839146361932512360776016066647855265199120021906206890805385578770345879692188296843961567354006493577097715875257351339618859739608896995303396674472032257234832147383805935398085239423169548673948220278565887865287288234972500000038441054610563725133205684086385733628047375646523644922836292306173988779616334180441449114648607637290862559366235326792278932365251907671804318798938328490015015484556550645783722385884276903321126307537136889185358941022187040528455532916378473741723959996412877281145319730629498308334285777454181425987811486446660337810406705415861781115286076225988182039418365409607083306012491990135140537526702501922530681976488891809263543561334351616275125536312222412447887991228231341917521013577691995398533698809496340198834670938168240463910140425346586216967713056793732218349107699347693810890942177065213880455937319745288105998412100271682163736522347012220460129996508339338140942269966650826531257969201458724181606702925677535941332973516978090308556109210300384157901131769270679191778677328640833436484240104893343422685808058448019399160366934929834954255323883609183363656828059542983866634672835700261261812909395710116632646961768866741937316990202298931206840470836917555226587343319044257948347422864669296313052667421555324108545637264641208323582536292269608108429529261792906515756369504674073754811904311137032534252666934367013220401838050910768670238006087774860711442260659763896035127735475564081736563287822823348861713109512660883826532084935726872003865455718952268280540321047318368225872516330158860275020270325987686770499639174140815138345028569499155243761695183613896597951429541271851726807998723915319909816860372985994879184570767542494304291258598291738452420035503143395210458566186805608174751423550620258027723512972660631631492727304943838950972181363617532286975246062222323344847726245371889648423088654776485397776003711269801932184319909831911107260092439643696508651784601125905887751707043705823979985398497138734896074260637246402446568498878520952105403721632077769793620869058314303630297574037316272324023530925630207174979552069570130314908119102861189612485656262842265117808392516226990075603942247997269245522187510261429922606290577913269183324544364410283172982859390737324282193869918880294711193206729811392505206970048250438286519428761091639367348809761554554516053935714781854044593178028977541168262611003888799793008866368082465003708773565050762999453411899920518560999812054536060747280171617388608663014712843873814195498739630684193103597263244642738610658765885455153664684574421191920278186351422158154240216190834610958953323811598886023198463054930307920631339656825222245227968527513293573449131485764477957564975328035140536950487160265503614234090227288983877845095109243071410466156684134286027637032110780285000850782219348327389328792280448607327803097693952695382126630573133081054817920857559658373581396026203744808350775766348752963064833122898665389402481386887125624502159787013728961644046945434299602455958134609282794754627564974729818822235053528921006744229878346439003303465967265105080195093858136954036944104122939812274662465539456986699111300815631557558781852723115417664600608606944954532497320751095853141687855727593655068226077943155179500515455532252679422745633907286360103144999396834829540986180752022392859712606962245365245791423752754524587067319466776529774818714065022847717907560165112136668411839593327663997030627926090806823537245804152686396453660494859959991249351987735469650105388797254834997940374111033288221231074369043843237960064605740861235844329546317041787200560045623513763413188569538454601049271268036662005753935764747654253150159415934027246080260833345918890767267106474782969824346479837882571751877582807165739328633738615067316505781394710892851242512940000963782572506257609633612721465091908892776001628304189184247042517993402359702192907986415484329816889849234114035764605667866205800513945388890023453609890712297889973921919353558292192147243994520022907805037571546339705862716148784238521343346185874482570458147742053481218030076808739483279296203410307464487395398237394599659869040791759991144848474943701283193687269978901533254004468072079188534893841692461057347771068019862398248035706075492329031748979258590984470302365385707289582087261771571845231433557638379809674571569444267130715357527359623878805463327943499103340933583688040296155740946960624212149014060276026356315626305610552704705243095249495792952099600350474014784164813426552387987570250674730256590716171030507667316147891930474876032839216880343555954758296961672504722462525925579137955955976381681410126616854588356639308869080434592593048119335799909495728902894924250262277388510828765663139718091311726737002954321089037146317105110834586442498445712246839552738414351673180174928394936385468956201700852690704543850678151967100376357131928383135298724766985893655945426080100765944994771928045023649536951291603057051312871989548176715521211798193409124871541036022160855685226402072573578309688835569629203174465267740605573629544521064529022161253349089040611961954664898685247934104666359957030776155915448343375518128588041024508090241287998307257571096327535518784682538385222175517064829111857260420474598630195620131686647616789334511015913102055058087416046796280682994460905791907679771732486574217709749974099744256887897625476717534876728647015714897431237389807938165804957930558702419545015735303046531727215561897627451112240147775149530775058966977016777186951754564968239646456913006931944963604829377483015509840117949240905904960330463436831388265543412151333990384993134774846561130094500251510947132724961366940787018069714186064836398765807655042672240393202757317092438641386396143116526722699163525651037547252413215433374211837347776809298509603413631949400071409360529435424706178232978564549050103689087792932916158033228526430120866074437494082006094771342608551336166026858362503740576255934655665757311983161426547208146691716026750651358564932832731752831462470218485485794850466449983755670089506070277662773680741318712253163011711987916395948560192653418130149260939350304236058114586981289736928452205729349257239892326676991941191578650071949960377429038757960369683590942137363033431401767515648773114894426618207395814951798946075835590085477132041872551768918315291549945507896510155900494723314695347409198960735258762266147569848449857022161542327134949139114751343152288649421886184179878261750206370717603409960093287077421199106985750015398496267411879063379145785811948649827408778276758324722488028993844007884939290143431385244962577637529018961511962916469861858809621189911285908349276470896526871786723790670001521135256084398841702407348884036287491368794840994032752809231830456033687025998223497571107711729931911139543176584503105256552140886902495241912253312358980636349806416940927086331814532156220791086093326178097233395988725804126177913671330139015889915191108774987097142539125108213660427719510118245013098113603228640024621002447338495149888282809276938443657689168862502369650460381027388229677333332598583920610699091425143515083033846189730848305646521337595486463528840349134515017553251883540184203126409439058973608678858271156307170316646105905526873474093811450340617691589637693049207406641634925229115303720060225938954746154918308203474629390923986910576500605169727202464258970090107094909242992961685772707219290344644939952431316618398582447130107164746094733064361417831603258846684906325413013820310386231791798639331340190730436843477958796327665839339765724192175770322180131711932318089160448019613579388057314205920051361628702191973350598413209110809609441251084291542689466359752085355771165933546002286844924109750411030970380684524917921501315027282555407973088549768364765104892418424719938913967506419416940913475034347613751732183464225994315253025959530855144823182609091891765066174241621535205607209075725329943781648201679660386233545610648667994122728962466900382222157066471371596703211166692343735785969361728054049791841114271141585046464946895986627735872903997197896097267429363118890134122615278633526346614528523953523159460932354535903998768868959294371890620000633973229745744243319157422614032123321114928345545098643613801529734783861002184399593412324432745114099880595536348611301128117485100265549198418595685987894894825212974347106436672895933736293917879383387224570415974663999814364307320660516971424059415723438122120203459445462153213488996939668775600531714465536930641011946689386653544270905489734150076764687336395045982860642831335988196183536083479369762106163176567268996596747402488685749954047168028839732556977372795039106581977225438260579411759769232314307847176839002145492575172968374314830642192789388973926015309230330552131163893720307274487992254382040306439525373301200388127527463613922391585272788976603014171382805615469843702846572231011040421871480205378390594285111698082271834579507277809844202065675885856965725398055699478735227306127518945474286274225971390669657816109803225889137201761510612896422273085419092986580334151094555422240895640356313162317788396959426474774781166806568421729212662746900505288692715960187496347539845785799137753103622427204776811778970232233725627420242046415708203317056483842759032955265468290300983580476515284320209312292101343172539586811091545148049294605036701893730241291990553143492225728201397823072131426779536080258301906185911453831352591495568314334705584448371328925600801666794468752141861169689996760918530351299323091270564946950600471627082001667651270731391155900638958185639664087593773366972546484944447492108945050246031113004998701118609575879353426504021736611593668413971242156819943967923163236560608369491675571306403680851373961032237378137741387964417225906245139174958782373165169954758966401895578437081361519368526688353913696322242359479452115490925923975707073617593204838413571757529693009451033825791430822675833514240061435331631344712394831536445200229897085898140063331619340882013041391642349128367677738771058931413818302927858714574131344248596395444733321675155899159780553201720756863794844727172481237612953184947919952260335454319009752873537067281001063448407753796275891899543080734747679700962490189945254317311573194708393428770407273706075504291823014843465174481110980689802840136337749966157089672141929842528145131117137345948894197442948448866101998503018113381659244640139433259035874987717909696726395449585063419936120510641508703537649039656849222400424434652447058555490458784872655329171020379002029078677200156912229448886490566977002341457313887802053045689052984975854446051534563284530828860866867552435452638846833399719953200775789309666097720899025179439283562135994276011891291925486545203604576440260100801712728235371832488285391469202293456022785710179546682381341720713687717860701132928504080363395171459020173965907131239629957792537036453215278851378821568848892641560585560990094080551066655834190468659567459023532216312243976817835580046481416621976332574095458907617062155511454866379009635853098463179557345562904484206556858692660812597501741546632668216971782405891251259853767378872769174414422223807859488861594118978004496659886540628736582265247407538644484757359174874903391672830612021989817324445485940485903666911647859435958037422319376381841342766295903006959804764531113853139712277132495647547674299452503632020084356026307966555661911021464030666426156846481340159379693087187564059963464008323915881558481196611820709498779605417811009541908027638706475221711307567080134781407919494636459553900901567308688143672044981472908636060412531599766867186263345134319742222847526614495035834666808070000894174743381254989742404595704057146789952798135976096847500268565882768568732779443074784212487932437954717401679827844200295777317630917528700859429290359457982989540892571236850084882138261564961753647250845953848432387595184999584482916324635155606100236327266967539731781043629052270643565855520905723996809599262194268678865673175939982493996935431290805545900360427764302993569797214777166502032650043161379982603891842587829170136248915680908362117583137682447819065342391659661690343295066960310034127174196350690041896424065814119828485358387946173199342301446660788977468075332500051116231765673408976987757761563260679349975133804948562291573757653575598551896195502694514337495848926610629576386730521083011844882650584844094368853560148929583444928184400048457293453036184462978471653876906897125491146739955492167003510664596959003083073806163983151256114589981791124678357831686126143834624980825735457584418876609245363515021743165327277797209072786870341095655491478986940741557408087778977705626947842116633078103413489254723180961351815780434030063869263308652749087358204459104229120921049483684713436779574090476238611159367638667421520764288907107064167086094115672181699767502695526200102572260373598516240707267815420492987705079947559136527513986255558724643534037020322504382630753351093037522390491585939398251743516086502256114773227495316966079811797938065379954759837013481321623782374995763921645154241955879707842301094945402824952981212214149587506988236703319558846179399405105689924945305613582185072312197869924821434757134955257934707541800589611183744618396442658442714082621962006986989570203141029373325070322435006452153877896595514585149374198650874529500410039324674321019626940932400782445347789698736693633098829852026242094630138178227681692489582405829143852990243903363288741344174427827557379321892850971177766451296408094150382236013270817859037645290098969498164377569556851148095386815248261711899054351502403635435478987269507953963881250467479850495109254048086721747409713630324183636301055383277613878543924491406517414624729183379946044329895448579612720455995365975465474798039695603909049114623113123255473136103737402741927310987376065854055485238345913811085645586330468405524655818985983892475789263448676359542617105415364826233772886528700332201725359440386854758333654149915034939193645928607456683917323860286788807131873268150421233922162176922476932891174059571993744776609948372614425911808818277139813090072684944705951414094775681598499747507973985286944349963150759722709880701984000795465687589496650733880929723895490750333999953587722623153869322642600886407500047933668584075923370881545514159414508209458417865302986204379517124816681548219483866598792881941627967154390481427570632392834113004167356558581658399290088115630055532888857813521708195185702678549693304541644399168765169633991903197755365149263170314961431357076142732142808433872307398631570151892958588793325782577878959300862324158892375927082827862843427267354706449978093290841089904159625933360857441291642503736786127721087995228028817759718705593038116675427744064254119066960225886273908294344174678605293255701689374172994332145744700412679479733496169933041965233099738894333718701357914457189052787237607753420608852335253747935766361358164046799439120578232467686069064187296959963912256103627920764757936337290503759689922673772584513877475415472869004805011451107725057891193846610336750471344263427309274605717472524057268214495769752697036334809783218399238885045294820569438722974174371502524588504482963519057282681830187892923989396016251440009022648263382103535168213267901849920215610770099771435732397781485689113571832327499896370152373095215404887139028247578905537908614968588542610168973799681797520674977018721499886948310374746247454139390467945510204178923518755863457121301569496346984868876975936375579716255486144980585455145394647119584265732771353927506051009084213579224173306616263503892891051767723522592159724744645886638121395156271348323442796263225629440526488175533709422411990495483115531401954300020379924305468253501004777878718804610239216983037559251137485885951009665200678269764724275700476041011789907830739556265230634136688558969633721610764577895975149706555462986777400769314086153716468321100861558311982408239968231018882197009783992794040468350959851167579248584434046502552943392322506237547338411855089454362586510653785729306568096176678069083880793426792495430942242265648940787478799109926546781697098180144636953703970052622793048067105855157186890376218207229355685105222839983344458667819297449579183482665883663035991832884768782917883552276656437079374895100546933047665052672494542052000387027770461472164803944027401402194389589114152963051771142135838809449264139625977142522571063439624397013077982161709988606855160857190831305859320641166105965347054224165916514691372940739081230048062356210480230903763949397485593050159819638801276831185448992087050645314774763773289888664690418790682480187155252472054385505357744729220337820020653864929647476051252448316808523891181280796584958931905942128014138130147671609753135654086800586806730413905309263164759956109341225569739200813102567067117403821974507823824520235280161435402259987971783807547281910552367043828996160277081634770509565844208065667195384228683900916134146811679371624039328460434779345618099077304054120265745876893116670814373491472330755906414291377568535762018868558046225386356313788650100427077556969510222506224689750009554780719495686205926131480069252465571239052587520145943179178356928420397873239576683073534005153709850745154163645454762247069169545597021759299134503490305228859666900616111426221326465797946733716672381039529010080222845153146701079170994166468803894696487784495131151487126799885299163863397111652247890461733849215917005457942539963820652692276409754922565189627988870850537422526744573937175052924441472610565394842789414237075056350169673434388292307128795323412844652134052264320515460414121363198626844484912124049342510365376336912470906246066885539768001071129172400064905910258859237953277862060302499360113513873446682084188148012394820263806943930102019572604142685962573403896287776282878453539811175008320386026382081434087643926856208286485009594554833712445616067520868444653497806522434380774382919008663248772657208458090104715197223949925990636103859736778570280175405305925702441568229581907219749105137517241876152781454164870546228805498209984789770167869895140775261159814932649847676831445951901882338994877171943769355871079910389200053435527464467215984163859641661677201443469865816002856893047353698983147154314007474475417452586822535357068420724317551903230984060854962186847263494951582398098096208748335173243846658957492419161897271915444061250710532134428072665782481797519594457848730508263411929969474136929795180128878947650802893961140549333620610201713424838657365905548652025686958810422009336848867059422155735350718013509435138562665007846146339740045765157927672386110744888531849130352869469803892941824626358617676869711878945887634771233021760670610761471338309153281778590692168794287359056016283802904929831992634353658598564701766828111907009539918311448339570639387467004351757897621235326925580507169605599377589555325448817255923398840799543127582817263816089510569808184578928062978241784508256101579098462661911414105863709253222556906634763381327090889181424773351170370360849111779353872181209224726271091724285663637355180779735896393762267874165553941251870836910332031768062635477267205677255242109114415314784212462698606857446517662954034013622320960571687731931768652330526791666467078482507765963447870293570142321106553921769919047891889602548626963743764897056150210192716104509020557006034570751262666765875583426913827325914501064111342790382488197416282710554172567246288512739401114852919288367310301301273358534487311525976585972922007809263607719926299060334584133105393992793748015286003988383423754779064111763719271394293196321778798192488984231055197897908842305403058279659116972629282697774866909042769796547853218364231537785213565342309214891221652710690195561625146163896782281308227477057413334376836740803444208416236585912954295233831752712875574020762900134116092415007649428620264562596167395177495236083441253786677190909913061863328876432310600251904548522928419384946757026609510090037267841111688302422024204634367493069228020643613313878114373587993578165441263240256365558203595812707450715500656203815674279008716182637510888612668405292112874792066772365288719128419152076834397952362835787694415113474835291541801582622493150083462062650973609050817037922207320342271083647016373680734784075350287303585135244489413201231993612325666198538886322961937562446108755810024504107374599718240120608187562689272152696633122272577218234844177657638287309824423375693405999426343043771931273378288757602735758642126390157910783543557768765296574772185498579506978459197306608054861836162812965104107027182855071152870166259024617745925047684395458992234301520001966008791723786410827298140273356450769234213414893073214142869673935374350124441455409821418633124038952859767844757050423132751389761625048137506603668056862281158779996539938368602673010028464736195004412691164482197147844902052598832945486066490248824285903184065793271593268849789115492060625167328828332040793537026185751170554116045021357779184785091441521449236701612867010490170693819350924673451916105767874973511971337062949905668715342128721313041013650719842427497061605362234534108562956233286851633085857885857475649687629197559263765574121026878064514733967830569020653625299071687473539756387750127463963133688684585315177539305288381077230460261955978857037128275814169439256183358770552839882446936329618003901917329132411661534386102806901371207511792850315070744754872561272300274535545470336564691372046448447933000683825079297438016966316335421138138116372291864355895491434875086191095284537191966721251362587701941742614170161845666999117796516263371110981804778172650854442000176273024775087880144342483450261974676664728617284838480860530859520136748452475600579618284912020929207730716270191701930339930724924962253497959898332171011367380272773411237747897412204299765936331456427373067575319990953146125828665752877600140427998228352863278033783098089866351148892653107489105914643130387675205349590068126791907089463369876511618194454566814959124863967204728749898024370059118760018065323456961988206793040710436875235794065241191114620309716919902883000544992502708266381461536981888693437612707492296804257490362391209372282647609916399735077441321069246318377856672882129201741205072405694745544444366527722278473958296208463083184148022870257143847935857249815744585155967667842075553885842404246512499457004507299060205370782351297371788366351047496449238915234290487663456835153438678881866601044657316746436495916773916242082105164114440269723314577575332306632335655541386664368336637804170475714751764366741537852170469821861770197183563648277627208648729559679864611029748108123398021769734866089388473856719605330504245235095369871760747807700311548825666312543251632023358858340301911654664003879572772761761932580223471453416272854948457753159800473960590101788026986400126573166738213595329514005082149165590270584715974292460943663471717740148131277712699686514421165532907753681426698398324877105838049134509881496956022439324300279112892442146245838647048641507702528842105796990213964641082117639815939667216508625150980874052185305899549278900761486481992345365558228486096173234931682328279560853079853900174814862902852199470531688997998731458806322595259085157239036002195256075220301505397460511482062781864503277736654948396061675424759256433200298479445688386552411791010573442005557796807318473528301839736256701107589671688680220474457498631876434790691738958544829071778526606082073198410664579778478901453153290028303198914970657891302749129743693663783983003419184089988072856060383076955916359516699175877689234050117533300845418816212174249165008440260522891484249507898745641350349613911562769492031927667007974533276932104011275963047005162610681087289264849645478810394767606524358408375574207096024334904623620129889588915495931882382946548432693999354728079929918011404052622519808699888117757689662523444412835425290092345930448121927350306040783997571891900770445896158920723012890853529671630789016654714355089382333886292247127880508236360841670561779531960557043378065622954452193283895120150852129843543359383693645517976343425127161984969141375982504105942923598315347884699345808783519681300686105785179846507252959856825074416674274721548005121162904574852195931777384937877388448218051280518796006773508165410378860510262881427769337348060688139311302817080043229405498226477738488549538437667482185226277136788124230066348779076799548913558210368908793598374102667067200201067763604361848491140349242402539650830635677995348055867473528020055641123545932940847896863668127652649478649052699822630058509581891281821206382949748185574366206102994841225365394200729237137413680090281975368816392904082337389522355896880571425031063971008779037314690851017652760209844020720361563770009983820382539966763969476115029909492933885831898287845227593369147680547702181094693031245885823914371082822074385798579481385547520155794630229517735365382914193888965375349870079147183837757049195144755419406584572010988606436662230364123307199326969323397359616804014639381131581965449228346386410183621694379084437835345856712433442815421035735693614628645691724897711954074048623323815119354748049291339804180422018421919858246940837231130653562004763841521532324550870581069237275317160098568912001881106021865414302187180855410419823324113917806057948748122858414134199940166540540626909146353891575063550520865245446965127510862936042478423436330584820925536912804929407969523340297724257480400844968218144089232522387408099708538823948967145620207190826993165766457742654787306541163281804420964184918358365578491429929593210184115522105925018304653503045971330884458886184704394609096018603407479617176116760361865054827935662641353286320828252728716448145875896251014098621220057495415367628768467152647079280273053041053467289825962006794995540970550738578451455663979060651335069391002284550569692057642278256608822325877094639742338247007908293356519130862569971303169012434744047973861955929006012379349265894957693688014028106327935354920533517975827670052416569191936590883628645453958142348920992838397311504526799396826174470270407422571779539673800891604233445287315869950064849794097379781047505584325644551891899204075921726078163931002470580305650792972480976544818197978889546141693076507833862928463043915458711495802074713259852698580193361913823981795371602296188608374364924168939809454790361571102064991952280863732995682888708866973210246394510194968113809712341831362723702916998032490920365434491161098018608767645937710801375788686778619039416818948234623500456732075185661758743270645059221770687117824022857222619767767540459090184282181814089465832736571450634849850174097236767902425895910519740155802583020169373702566094848577565872470068763732048409435615781709109727917839616888425312210665662761086204431759863222065900054411649827355031301221613225371135462555721747885683771242007299787026445432824099780232825023236987178561596178403844197991234630789867769683194488389481339741135470178597154338926069906118729504005059232068799682616554480092119227449801404398477881116928195501475809729941221848925515867647532193641401707417858284480279502508070823183367562823702076923596805089569533162573760404090790418943835021523248142085040503807075243860134599716974636971286925055768003515207590577515784863561571206189178715268042634198632475320130994675255585850132942922868121979159314461693321990940829303561531918965207835852209507757365322291851322173216065173301581178335883389080544442724455607046177383139427834713151301443861224084429084052144057442979235986550182664638969957594203805376775615709234362058198415133566979196109613095802133490496343023035424259856644026198090285162911056951061529364088754326521730243790858325493757556992110088126288751798204841010449531342099836023707862784402630455332448202619286434832851183185609139946679323493951230180291621942686701320698127570073772313181693194518111214977876281967599525811566526844957621444822182592287972581845186272414368014416775073572412073437478989096770020606000275538502469097533972781749340263285114388973784706710306432828891034503309530528204626882560385122454360173324252357167703360876382025126184562033207885224853811235823118468934176043630037431465131924902083643180600955568240519650889887538679278541916603292166163223293158965031685545381091553998809851098655470040758003261742395145510343469597481802142036775517623720213907089573438099552645004331400666732375995801987891733241817768758983596232109817507924110624852795958849876923813390628709821033471654960321954420701165257313164730081387330987186195602908072408789321628222790560306572093036624903945010808402610714352178192891853488219458372427806572795688569252709445373480599685646602999304068503495134878744728322764194370342842264378124185302345525942189474691526586526738683152497489306507176578019529579455127376412377390337132661596954349929026617941292340715778537984042395936705371179447999039297072811910278333342400677807924932684601135928615935801995303615814123632462632543601957763206352169817517551364524349653723925760090709646861034751771886016168302971906291772354747907759975767297162386719375406230857484000535920089214336004362096504355383735121206807256637973543055053135166896911694493092102415948811513676741440413056763666814518537660893041118151977363289003856269822258547739073641269089769250336917431227765559647045324918689840363154643355615746366189155984620291895557500857932008048109752156587090888187414779470595872419037116067387903722123124904738827664550717075736689222329649392964473266359408511172025287888694749988255111128168577501130638945905340903096939504341015983560768017607396965320008203496600946884402064928179623888467597406209094772448205529471818406529943522197523483435083235967627081161577662246433196408225306301536593188502324407640484416458454783587285878511731108457508645967522767497823439027175360025949131478122121032663989011815917703319186329412813003715731612525745489890949442693213467160133000211453372046724568948229098411058028039825097567813453710882936961758748546837289265688505580355998744132639128123806975332672250780881831758630779847281559979434857773374331824906043478709279841442912927444523498944042061139482346909717526158334434372132128303223013651971013307646104095574995629909393251563662393926631038545051186365016978443626979944673164205641454513683578811868616881813664106689793128590241974082496579596195808606312897384808111362104337613639814912458989074365161482477546072525799263507063463769634798749084129272666881094260501638968272179034643775345926399155226549283033232573716385014054906684429191201468282843062146153215507725604418136130148343299638704831331769684907777406560724099407167102578805346789952129531661226196738621025243808915158356391112271352751099770440670107128735876554634601803586919798132888737616790756623113192522952100151815133727901291132710680665478617304789163546189523431207063623729384116625595427171049934215314175557295468541487098114689176856906081254357150648462600224946375064152767480831066928888926545848966593963887046088390141777799167381411101901432198651459762676846376303381966275752422769223162749886248581314647155047920954850334485325006427702033096146201810025346375975442953861609247161440503101393785800064950735818442826621199521386316724394482953774367805106120978161113916884799054587588797931828777280064091927982658138653612375799606914913156159911561150371651864511585337136977503769358284739208130720522597056295313029022855487276352011622660373953221680338532814869982379033227090773750382333533889967048784833890798033363425430774729288997918466346481589862227340667703786738945234547453945882368935133830005139309075870628432279550664407234627215655336919189911745016022673312577902580210108800141849585176271279754193057201234781155093976144456612305189045582776340834621900293423437631364984684715646397089199450219989608893549938625255652798001645878327429984593007475019597043203143141977113300530800106718005537564726018542459773185802774865284194491809089346194572617392725449551129199506770009537945678401772606435634601142214095614658925854397684233897485402401205284533798529993060892213299742859198422117509333117663662050809381635148350949133394709171243293472449469718114908632143199273376224977002680327892717102244273637960451119553610618831106488971545593577102356024854277310251518002289532127883855740422484230628497279091009401867259640663734150546849588109163437727176490423804503685202133461377904151311400630732962554172281567670555267199526286282989017469534087879644320400532841172129815518259600449268591842650573860888944127828814894524592347828844203436078551571372502951921832695535373557026929371450955408164229376581049935868171117185333873136705199924972833653441910357356408791158610110325963482040217751480511900000399667232956741891144738064536625331593918747485277334184654943324343098605549570398517300979507829026153146038593305680782093165168721332667051122734049228118832165791869382555076709816215021967076778880693981352797784042863464759081317976168567305607001261923331224218307727756009070372250857451722619458064152018445345039226544892428661817920706339055066656993168590524633423710127644072676185767298111213078161050900430217481839101515958678575998355130113593639115003740072219854255052403453083687035649165490712219829055061377654647643503693312668222990947030715136697929459497185617231136863721793388639404634962500254310793309414891696534820694749980200269335150784235842114873772547222213815863748139629441399346680925548583670696590132131872480832398650605095431829656579787875837605447163007278350134119563159437814677926877448662032760985097561608345017887686774910820883374395491538982143216052642746778182212510728073402783806629571735884705267337612311712211603356528803803496910274002303972422675964971201031364378236494643722072758353404688919015539113869664802441013047775185046110812426363533738545903823439042902519963295980347750962966836224904702625351769126540068903668137301309276823488123742742876371631267801037788722668559741523824285308382873979979983007340518118267077813064092617784783093865450438269404869242636988899477232244582001208452427080092863384614360499643603255732957393959905853961362889203656505914808243185159553585675262090188791583064149227244932007154227745512366420523906826439890695974161716016596470860723365732958344938751061869709179430350435527446255467141023837477888082444499565608151666033576123519095011677985710816234535658901343676443964899909048059357202937443887087901113116091144840099466317935096805953844437420124616922921739804245471419973719556740329003613957655936816535301263063785209735863850849076080509858219571508966609244203607960370153075440188556190789269663204275226950725555936364958050814594032955649141972905391936937672462124093168572566975712711158947949303449076438379282575339155021997801368332998935215311135734512674649599147419665522999939010298974331764858579990103075166885372306520437149321907150125918790286262819175407369352110378833604351823742593979046931462245036930060447572769706994036570242984250461602083752691662949221538278046169845197886578512230809876747157415507357497530571529577529589973107423055807465670632278227348981581973314397150387506346046212339000699397869783490266738820976191160583966036431046219095843876333688121946196198207869658623865627436936785766859183947991303399336513598082685324364470683873585096654331302613170296520398327787205322300662813496964603098725761303399415160172687043964465540604741800699817820365201405609750447162847217311606879892996204720846440883502812250755117618806194176728131994046291734096092514134215283016530499290049880914981090813532592701898800002286279235594732877383338701393911197815336587442117696087077441457689962491510599705432667353633894725288076124044473318541236592161470066401083705864567903495310016057812855598746173471475058080591788016467803389573829915450052106392784796671681823256595155164294589601981889855283001490981729615673089955150293141663011222289214356824099709672745286884522295171057748402282863489013317145177808716621006334833794606012454523597487840259087874688023866647431695179387388513019600886149795435813727031824631972636828402849571608042370957671551487945165428023684218488890909537230755655149063122654494208417952648322794313238899670156278848168269748260735941087211245243732138074724783520402336888876788330735464942494249103519466341060884992546571729132214170768254894769888042895912805315759759073859268664110826243562581052051988483222611640380021889659856924401593586453467765947852723605033329042423931625424841509260653753686736032510577072526781931635275664716100183814664760171338203057900452306637541922909879161562485254776036097138262034362694919392691615206323777729275285392320495431527974336617145404639227722234206763784823383173644558813106851435199952134218087151661442728369855717764644582222578317210553099814465900495808385307353229635567702418388914986996865493773585284554025216502156469516068750351965410918249924146628532306626597078588686654959196492611655198374473542985277192878201949534481222643316505329829283217555023635065670678732445402262994298093795796151761752020649062017423418354836605686514375221334682164891753749277140602101178627815943862889824992422157693391505056099732684195187881583354072422806196525442551985035945024514095832202843765237643182208784205573967364895782149074943659252419726545097659916529973141223665327520782481814768128369665435670531067359966852829662581010950600199981831007819503101811507587601258496952083562719447541022587029085351381112968129174748152721303195754651061996272082240363437548295748211970946753452615757051083070925143032017002605361481236869621821880804034506302748543362586682543498910770908270260255708647749385764723844769367979854098119700923134985186548098591572995206867001995023797430105484810184755026159076164339196197229276504223360624301065248079774243109279349679183877949032612198279828261680358029743566790498769024954287345821635420254649461450289302128607837483965681866997653229097128872061085050852874039247558253648865411134179676214109600679679343953664956294055379715597048168773800251095336745208510205531176037252773216828312385654370395633583915745728597596639043363542123595915388133729775140662703700422496018634673789983660965064941065550888488479945708445158632959506502168812480787652898007415672065750091364643077528841524329394337434480111660231415256149654681943591009824757031184394873670299651974560645163004547740952336203731703908925033201242245987133015732842956911156847264183563289124278152102140670241764317204125834346650841426285215969692887844348292758416569869850792346843275543685605414479236255984922717584754373351218191804676973008148207610355063257276213265709293690009326463421640190731881819794255081301067277920128576988146126777949225530793023605400245621241115145155029701321309877708745044703000490680074853471166009290393267988567892031819056857859893880244484335368109669611439515394231779368091499871697630698775540185926034770106646538098938738764143394927747624799767709518342229024758661792595021775233796474109150342780707259302200808355900623930523787638922489725837007338369784664164546930519323682880353992588834757396418399250977887550075238640691911110796844172291745242458905380478632865253995651184009472289969658073050343341547593830940022298577132040432578512735506552050813613528396878971677612891976252513311672574751189351152756943894286436437160434425432388900068280525443582695852210491938176521698251163618765628662793406700453196613485492941322368784189099203546820625507141705089525135591558287246219410471122811510369541595144191403713321652652979275012595812411931191657796316655942523600989580749150326317934511366542683177011363923650806136205531145847285955077697641567518250791547533790902720564652925857520175087742582594360955661058349966105084390048354928897875558627322690020205518811063499329621309651968429015607522759266551168912878299899068329994815205137000824168004122372403811995502436571913658544524620211558347335674507212553781604317675004071902282999545431575511506203227573816800908630493509410526503165476615923994673320652561683900575608464141409566044397920264314792618718601114067201957130949535103326823181604805023160937806518165418688416185319654142080974715273603426317990889896302351301664442051451548073127942020979555796924294251580760391959536202820207352796010655973473376163014012050903280857764905901823893638936851506209267319240378260083120619545925172729767849273978084057638384088420702211396911105308641143668858311205023217723929367840594413284523477940098838034285171302853226601809802240518093632450493283826145098314933697880892310217148394895097687091632504074754630389855715050418484252179218226709204395790802845561711613645316832816313093427662719228221517850539792471578398731078232940719045161001123892383767968435657148626974743467884313639731502954941788537540033002300618166816606829065082110451326782953227165082443979670936408744938124734196719666322512223452232962783418919516959042704819792233561740632104632243074350736623964098633703793901800513458464465563762700639860619933528344438742509931573736332140982176800368454530372480434941968637715356246372205542856963112633095611257922081269322402198197785584303087935915037949085696717584213702067361971340026379344288578592284423922719553390129726316909333559863194947081616411807595841472531364366757677714868113620662801900025447860719356674422201920417114342059658343551366242626776325081093488523435406202396226329648555196174134619640673391859471444851569425694652623786122983676718379966777621893220769520496477422430921361934197681282936138481066448817153745004789152763663333907182334574446283932227665929040557262035892445109177214539877934993815586356056355286007238624191192125891264255842305028617438536004655457075021745471564294765812974995006392986100835582379239161050113687587516702668215930645140610905216649043526431590453860302923388023661818356141336500599027121032580116326083379987310201016704714685687361964411839733338265421232795668457514424871221427691908735700101029633331248970067251310866669402856092856021658170832308848900851498506845217071310978240066987619654245191178084421190213013633901676029528776027275646002875808347591837548127998231986959371276299760641333690615449693897364678666526927111188608567357329986038727502832560748323072135488708145171309450480054283583594299332609888782959204959947184821257310486799236492368561057686273172005707301692743922192817089844030325028178861465783197714436859616356476510467153966141462878083076959304049482605138508184894474744559506399177261016098209351665166001601761395999908559627450737323497976891665457109423160999872204491110475669665266652429424241309438704670720854291223967479113362672436362574328617042283670136669163150591969324242591712781347834726447538003964756465143505682937299953163252043587078339610265295676523001491043223781928319837205866044209565827937990616943382791603388315788638787779696160131717616193315458453316691755185970698576727323467872932927885580416144675157266056129280585703639801084753954122521742296490668972709053380131146793600378563953987870325947868770801053855322581346385128890908893291822123846886666311041712456201922710750134431761767264558309802375104050374974042058583625192237879641996120204357027555672411116133957159331611994903080919434621594376588117325477696232443857798007618592174673065477853127468321529085845537088897088503572103025054433630745986990904349284257589212335408908537198262046264667585136164757720403907070063708504888239822727357621029655100604001622557464723213034219267963878834897760217090452924573872558620221197726776275819457378682816187950853410149402641786820412153374203189685207046368356201291997320969129257069819300060151429304772495402158420873753515804809613658757781549616267764995290839286283126310689324343304215818930379656270639188983241789350686188773375292606169057248609561574812172141102754851176786892089432962488977405924925039041599665844757012510276966218588179267623930589867363226057858717149901866555628952694052652299780636142022708136416648763661448267915398734806112416633665199466987066902838006595390418433556176633359571650740155556833223481406195840173635381927439487723518546981414542582721352870509473560054658532716203203804989087814320993922017716189642765657259573848488641784032080117582253170572735062683983797487928942983090639126650479455517733422704079557156292223902909267102944981670653519195721574614023840345943755012480945046375997869724329613157760083984520808390816560222466527016410144688687515160047054678183113313776786700999469834668051789927618591512905389002156001677372864188456482288790257371056539851435629746580796995901084761280624508878083743843407525462596554664891419355624415502733943743315580131502943388369702625439275117244642253708919118494234417415413788649732946848710433860057874324243720570746998006603794993413567824634567567098101180859550934758209299651912533813573936088672228932617729396506368475079283708345881140725764485140009667839339420270846462367705786308335364084031700084112291604724955911394354230546645994375987732267971854374483306703248156130880618826923593557613607071564275051937284504564353946704937058075086472726258166023103409439145652879344780943387795626030589504507275890774627474946259055741445039252150021838937473809160323860699331697243216640017295853772235722803218956280234035389750727585860030354357429466411023524676054024185954113935809535373743787310879506382638789127428797503409683874944770635196782450800861039037168253525250096608879492560764160033872388096803475257774458317716931836619345619681479082538565238216302344693066248697410586559885175972640327629704763458577912565617574886371738599007464170140073688094813395261825247113881739045045644737803318061719801494981853249826172914263970264775221011781218595495273599840737613863393328551242961736492567072665330621006079317626641755408076159245651517147937007979978780352478372736488547117959032051477688443067917489489343038089813737434776004600521596806932582842486825098100628955402436583866408139846729395233314144431164218325828095408803584617899211193187972011579841897065778060318444494837319418991801435494222113996974242076449451830944272427326851089387611707654901920081195882134228578094157487852892592028133278166135152847618906261734695799530428058888478650841730237345003292824098168199911341062777153779573058841978898695021736010245117443501141641022770491233252368660523713211030787233176590263097268781619721972911489738313872645210264295551205173952604393817224034442418634894988260882804870280615249194032878004645759347455522812942085404157021510007774440217049279568977661314261800326135092931943346517158691778488947611216675695996101265277448869069139201102711627527822273770668606433236817474986700565022946823286511801595217330349519178680035226703897606867194059791021800862167929709102439051168579673115248284893954336321090055290319951540141817096995266159164070467249042554137001915810977088568365710418597828039676944533760631765392577420567029310863198880282175564074459933729912044480557992815933516107679701510284798826940048879310695012444203571806210359152902902167531360697515110860437286441556233881151131099792159997473242603703866952437628532928280801349455589401527445219859648298759591856120061426682551097202164641459755405055463273762852145041581774470493038696391346498333509967942238743224787418387238177725032025777534634009633379095540110835900211645409809784992626104785576704585208247673630273867097585330220029511528071655674509035349174716599037567586883360243153437505954257745219810083635627588773032861232084832174927234584374544548339285825616991451228526223789042422590325678852256131541058120374201337710798683129477922544076974458709506232382981930459050596768881091628085471679178754352569282317104370572010814487612319493029289929411427945192412815811749812486367400933473975907565220870408613115288279534565940314058777758015409572115428050094901042034362363560522766037382340522531210393844267309082527753703478322280905545649586766763536726863682306824299195249290220841155604047339044979872339577106626122714746397121932637903765820130152443413213505295308530814008460201295969479070431416004333114890904554980076865560049808596677532634727079867807820902551695782974730541859110123061050259053708283579551210559204485903378157429450863904999429725991971939478721922262420706835080124589717369722971379368286971013549202754128620431209198052631808506846679012537711336808159325967968388080544734146325192791886344788952478225008639544377197917460085637942153266849780218413350207084903113387453294756031238889377880831055386539370956279339003684856444747769914558228483690778266716766027085689619946419085927275301342930478818322631107195864268471070444987272002234863794792488110963004879129920278535510519501875566452111749387629941084241845027803786252484251640658580341133175863425107059424146689336233833210133671326433201125993323598832959315352532777190473550152484790980512255745121232748439138928702861979749014020906499889809001484604600628648960851760425256173802916269882256159593550122642768762025783487041454920726220203636331052719631145383751384523503424577601362358707339961184344243804717744028285814653003062399095372527901335906950662514709819141789838324751938602861165293536265072443167984521783903857875794375336769271535970420067004209329214080373871804775423837271566527199394628506776345619697810585140293125092926155975822305749675480424034216936966190129754434825230535318808676010213223573705081040494739717008460618568021269367690465270524083015565201175930169724556098049938951884188049118870211892543976201634978432506871897002356665120717606700239202743351405703218339266780222535465465305988337445221554766664481961289029405495590279014062771165567098814828413695405785841075254807159461547669222094675724681335951272450615751735160204191396190025957338803874401188848944764628504893209105014782625811161735496177136013188560115715258249621524145871727083732242784743811728788897435757845634205723997793371146755918549217406594430253170310418351365640712319931856599325551101337738073710991043092706772460946345448534714045357321034395300714755582069753860673762613061787351477438155755015963095886829865412650718745749832374759505910434538837356564009233125373471030570774522697408248634635007484223199589877337418945825852069132810848896233394275228771663415355240199500775957828649560700022552589857064828189589863462671353856132175456133741537279802517922358849516794614662924674431208607908905851625756944423043938270590648908284361544889898346136077169741823803612984924054329476587192669922631028464270145975565419464989812886618017720154119994305024922529447970507037513302052231526066846351412339657488728569169375381543656015234689484745087425863701603295140565938356388954433095916572916949941024455863739538685687767037212008908031205867107039948038245568358910561253329795409712980581431912695858884739762403394936931656955627223434481520377727609439354306030342203027453076865584525547515850031665887099364938341626768951843413733863893185132242360956264663167495286667747575735459534926772042007209709881574107271731919796971721281063075990635542345625336180970830460735833744573176447913243500852644214988574511717391750259978309113447004656017616098925295369025694742030011821588922384827193274571655473249800599576336826376782958731919434917721059880388282884527606089733446077004759382261800640046694752959458674496112332386423041174380909242900319989851646150931793386419593092330791119066483886779511932777729866591075079331724897220307827873662873673135157397750340568404657356579325176012710644433075576417049507082402166422000572343388424778781318366427507027957246232852925544832226745447761429105765650306578998161077915446520103932016298381906291667669508672272461856136172543169711109590057487637999811277152903178480837681580535532660494303610173632269673750944107745026578127470560620427573166746246078482243294895667008112805475916750625022030327429830230525283216928109220895903973236387110387129940914650562374857708475108491493561084558635025359046994538494310013410387995134245170769881225257005090420604260821608686693680279333932233760218746866398748961325119538500643377280316043815448779190876913321929016889344864468017300376652535364030433059462170387567174889461578520227733180247506646962844345925352412545903067665957342151391937948651619296181857977888095587064100795953725791495575409888702912972523111322543995491984014695796842162220741724613561299009328191116146897323916525678698370215830797445972147528014392163731181852161133602860566698298157101548979451942302758699496907137203218815924088894662922136224221065469524861995211723998328894847486797552180610059620966729152212141561585049118032091891563901084033528079859032051984316797132438744080185172785151964487261808458598651168119031843195665481837654210839389183797736455099128556109819616421970361337190550530359971911906512737563502463594398973798754774749603416696680561551172073398407150246584706852703300736384828518057367360152862088323131252151428916642710022218429935081360939193539938163127971509242752301224997264886912948730411703386778897896703371893558260689347183055276490959234419379564402688139346918240766785868527488386357586046358623100309899938162487223222090700725427748991760015304833344197489920420064264588157217245929560277966972873598828036498148506579483400223045185040857153278869162986840807001676752937600109337957926637296874125834829951705878090445533957049276100052057830323113753711235995459355582454383776461311684520914451969798414808941217070380555029220529565296531561966076608240403701734125302739486128908715351695297800618776309166651293858984929827390849108647312802610700717100067889837792283426226242846299593661221312085222060471086643052519379103964399760696265019829770279763459770293955530861574450505127710063533620941969287845332590550633866993672835468549420082717550032798814636579608703460223936566331570794943516455793498788546887280159331997894503325519742542535679133371934463260424945355193827533205891890388651572448035254551088318712569032930904150416938827269248124194069935781289440048659274484880672286650102580331611685413822976902320421467141542865405897124043834470559800745504607884874822005645888193964721970599106654006061627846674221192334317723273875861447917233477968771533263601626935713868931325377495601683500156502128897939119735978804719734262272023331577085371150603851973021746471826919803649839939809189432579471458898137218833586621207832523130710763198429438424530920100513702081177343267846965218566302902775739630228974546612944908806083151484201324144712391019887715271912268352674631738075016825496840102982069805525880923168409546094470199497536368732518095183326060999280296948353963983678539630056237297570845101643784420196668876804612244658203552753488278639764662704263585549280300375297159512175209582589185102840204200461233239926269062918473585363445820767235319023262169135853072329881314507149369532579885946021530888606606365112892393582407549645696216529352693237369257141038767540481130039050915787979542436620798529079237052908943136466089445303138814630631988926373127728036405964184498521006723931107224393627233969700424505287727011814228468700780479899650297401404241839747278357468730091986033342453825700077430221079325952471333712203804267809446789185838849253352617690039666754339851608714961726673138541933828016002721758923889398906588251302032796356971783453788154111209113329285338310230569380516045002047223524804206271177842822933393653785790575005768946259221041669849647260530525795213831561906147974752654870897164418597560084091689484277239771787226603029901558496783077556270413383045645335537297922925370954454238376969926650897653634619317530752449025270229780922136287794779333912825977098459557592177215952607205893709710031656349519658396852375810686538213768004629656483983537817722158946030856662619977800699853660001751072464161470026155460986422471887798492873506773916567836883364937829379162335927567726163451173405105725516245396851066324201890195974641187896360583286488739675752043165058222807826779917323314452313627006373763910526450945484143290805958713233954575180928979698550354285554729390196540980935352141035423124979382533825618663250672607467411310037021163168059677527781918587838569237835234347867638947135602343442538030707821624767418837610894346723841999332301455322396920683291897285408393013335719836243544988053087028027489855213744613567088235401080610817226937602747487508895093737234060363009910119392222146752632281718090061063589777192039755919962749316082235203059916357820656301990548311955711139764206412088810738812508030044973653534406162586627664902246205860945136381642661165444656641514735392005220775399499636990413184357963797749268164912738680382326981368935832332374118380007481407075819625959422172440459485342168656384402995553777020162081538685399057168836032278042025253438509288904376961733796456220265479392276508140203940935789515327503471209004714572061014673859390545920584280580436461997515189813289608324194719570938244225533501115145372358773258332884379497190703810146319955415343525142439277528717846091223670838980371525082062262327306992293679491090655372431143517063257903670897434608550992083870152262235219719289712750310107377511059820738497265355332633183860351829568654499973630438559119074226042492099914614838621036506740849761142587588486634702880003348368464360255536019940283658648331441372882909584381065763602278137962412692944586969367096137622760464108705565060622072165826089323973621676197037267305575209610053295059065821604111744794834043218808657392138431687329971434977714194234034672686068846395991940544461211858179807384403693256342566382614350643420446978802693968328448630520615091162512851294027681309116675518534161866967248956557691602369434866217924763199272753310905783489710268024547150091115896774134012541029302725454755271281773541163448836115683263329035058543487420021517678080448535359424631966458650294196988370490686719453217483610510720792987685223043449038876260435826443687211567600360116461576188906758137513875684430805986755418962785502246799159059261737741160323244711756890244954591986092572484413251124954160045454943156368100016871646777271536019002781133018298546766770572488151369963853406802301424343578819490738035282973376799266054522853890893013448209511049192975613706260977110578593926451724715900776996307422699817534632085471109246512087459810312681908936260626043099307060771225116006823954891508977459705678462051281755936988817370321267772568518080261922520580835505871803330982774625059577285685700078170007763421578436052754223221160130999066051375607863091279508575416985069952807244779610803390480712749813446298470164720187170695750146669401825277984839243967588157022478357946954623182064909470372010973862774723436745758304045568487808695680969803188440887041058030522948880765871151463914209383478852933807198203335020974019701499864918553170253481685858880393889459967923442859962732507414782167967221580620470227973358988752982596835188145130769892729760376709646712488793594230441517735750274591836745046586064035774195170902215509309468030066040534501334266746418182664070588065099370719055353274007617847028535326931838949181925088650331367000874454441833427355167058452272715220602154274897291089007422692261473316502796936621349483313359248575113559153039225067858221104190792622588598123778793932065197853483723747650858843216953566086856337114997611149353108976710601787362671370681874725094759149887389298018606373627329035233643308953247599227865166659740810646223470557271267968991624359653680438915170600720066443457243640098696735247009993339923801458482768783126645729254030248328858111757996394148106692777543256409712012234157601129197097638171427159374013227774920519163223406809004759592587329265628347252583136818885668457606652003060176982355244208597912929527725191013585282765898712490737453352729647056949984513085068095387096603563123985798783581034280815368099402821165986427663560300126518562204178314039639033342854553774909771620695341047145558359224025779012345357591747940360390624685372661097357772527364508332442933380163601805404707274796849471744266756819746306815769461548531089258382458322343440741770536258215998552544727924739670189393119191187267119148081972124702085985126661810506898693582111799895716728047910003022646424418264263121348124238717408113821018833961183351449104964536931027510400701419795733036058849214095314381105106312192123673772678824113192465010488597913579082336531694745635121436728138568435739852135957005180900566473178029965874937422442976362868869224186709337877304103611032951401423764179009318704065341908198672566942013260034362394779280899352621678825513655475666039451327335220072374830550588581316177432255837936631505438191769635528639891329758263095946452241102007327785464304894705855641313484543900010979317280868562614593951242028156224332945010279572749556493104892846973673888970009057984635044114449690247770739929135712475929361159476400135932178652246262661911539938979100300548810280043841292940808062089267120466447498798134869919594071478442655406504849639715797003832142208890559490353874915957582506572992240584184342091319560402850004788507915008875673987555463663078092913026348494186552228988039979433477238869443418241403494876410456170362390781758005076496062002948690951381570617631613825437297066679069768867047727227113548576125388142176561340189073890071284580802803406175292769113333231298469186816554966175606238265177911478174132346333457029688676803635659600979288721857159198412819072333442304742962242647316660190723044166108684704041356971479752747858946387607338773498082788075999873930656432905576966566248575577592396749828300025998938240247048055416220773112988846230524875769205289659276665326030456824348684333575249176953996741791277335178271500452211042409863224523117151824857362918509194447430411313119698418222592477895985266655681720434771341451990321583731960866289454676557303086303302811995644717866469079579849200530182354116504381933281189774290240597727663312945480704293494395456617674306623115011268099362380646271424026638903811722570809168543674185502252085498060951346770441680699004190335692158173887637786449497844103751878342326098275454941848774752891342041897106004098384214504089725502114107158576109115886191096111201438179301978274257656277500704605859601146375744001856752484097575063287990728388040134290305969322162134212534754750306151428911954975962607306902967104950041324378551840960081440188650510369448731945828103280777721706003903116342902958698397569218172183175606665736237267792046924767352649597767076857753286011090084603508139504935860124046737237043625209311070868945411037874669464101388521016906688564515799220542444149355719101877232742539621168798053026816979533454756451972186875886300034519013706507701359250894864530569009919056943328439982897213264269875253300438327783432672332197099264918639416519366181483652020639485008411367468372751431698854134676583192436837771118358180540852659389907005047572312557778103525735209516527604503886042088308059693545289311818245205860485728589499069323422793492718784461009153587753233814352940572850229710932979875639358526631368176061667365622811146855470587513232860861775789081258213032498383095080952307466557177238587235441642675605313992583133542317803840352611424229937907721526763862261833306327139600835856134590526452219681058177051346021236904959070051214193765141017070118892640663372899901245868602448866780842867514224167088453750480772567970862278895454038210058946421340884764257417429591225585539820944864410814594332181130849668486369866173515996574668681831173904287106823473982379915845332243036879600008915205862681910211381563705636475283475594404594051631881154327790002488607889636249305290834290104403740010616321034210885878804459864302082766152153412390290235456285065861918030521631271994104807499456746025891856580874273192833476953482882634921998282093994155434090650917462441272797369556659973329252365342713098409632366539863304807804068751249944191340920549067412972894049751503206927613951999060778306258079911079045327392115383973531143347282829707432840927873154272566475920815319359496846281137567663725199750499296229067474331806887864281505709685540957378876547274445739558828739305280310089996031516750683835955072173274896003370030340132358699549754681274861810507379172220611489725210393494310123037063170525815837319264567508855052035416020432675100167807612352632944163745828126112017259549880713417766407642381570401249113086592786175140365526467435731900732595140084700172289586995200529870974700563417731653421688079736921647305468163021946986407265492002588092623262834892071705705884217592214816773997118432950342659519453031499588765797569982587448655684399558377846091264499500636474637620339228127627455877478506445987853415337078141130867729584937013195446770519813417151027508440699931469439930785602012612382483487767530724469088657172504489763866091353652608599620211543077764433354132703793683736841205104244300724235927157015599565796789710275875615041120951534202219299572519557234086776974240227209094021141114939839788070101905132277544833938224080822521233109820173827874346786892404363202998601048935738804168396825463411873063171677342839604772161829747599451556326864399728696765443788260675783867720336152636389469535631491386184700395654311651303233626750726315681893967850305171861308179785052438134854606017401205452136685210013722123772124542474082279874002590259833437653439654349928139508818207570326814989132713972583190720488490272007237593616675365162945034482729144430892076880617136891555955841288994990782378015587910970412897234244330161722283639253578070505975944452108900564474531760753060628089598281294085236379597503742817808334389061923157931511041314137915641529645085828680644875124838650785914849229225931929787611536707887821178623007142763543918915742077233570255366618690361708426275598685898205147101101653617733060839732908015335218787632483347300165613946334007816905668991598225254479484263047782305100720835616231656988187246240625660973792274574525153854654900686304820580571797933891013241748628925946017880804234852360897579601902149311721138124650205972697396681425297044445575670839929378065478587025252218500454860085036006247811626862590594655616656505873799092687840093837166435266749327299336240501649533975812528375169062738834605038665265873928378439910903342630316258330658920332242285466761475688821290913935397287972828337886458425999354527078650904828742715994745117336487872797119474875457059197679439195321504069904299296311398843750979195920134776584260229659957007915931531744750814726649573732590707979221356392366121485596465017905768269170263644347606757630720601151185949723449685417369153470878213987219263773173334441251457104422694914710920610309824869383551053015849464656817771354147158614244741977226439798750617267943595478497579082926010760525739515878693101724108385795424134416554976352155760743375786270880306915795127070517392178766899345035508396700041818401171973654608179153083729000242337099322734942823080276144350758199911319001588159145007967369226041244379882049567506232040599611875171313707786552039967674735570655313925647613544555064228898787128241952237543635419400746283130187112674363608591675506976396441257906287710267242714573567155150306963622405135364456781777003495989500218182907896237253484568360882707922200747352699348404743598748755993057083270078860046012128807159177276576259893624352918913704332510569065586080835300006647197405934072319537001167967456277471181908900476763041734826488742577498309862629631174608635068606525459264490227445995653255387062273808966182759132840348322271218985983715075973871913137478347370027860077953640059642714835795537036581825516463038515575414926208876440357714777763754211130692929972069523527857151404878978307932153194030321315750269017164430286417596696106596596807372698876557399727777394862908469546245630472390050847553295265819617979853278563217266436372773995183232294380198039274138691745633402906389139257580781520279766101046656033094078342680884549376560863284067411274623496778686048748962548400044682301281540798877163458205161616765397993766360053473330773881431264411276752040164783671158708880560829451200349097047485650796499259708099165619353052172233724034386974404761754700430399449277133345290184571227362589068906430409737945910107322670157614649003685282253276878467672933843072794263627709315200136014979399419033316143281112968312583949005685099927282363016583107443479781807919359924478448942868162307577508676434889546622203910019242476875875264857630333807987347450114007596080673025532500431971056341118523536360964212662884802313517891891246692828851497909643934875110088104038550445404177357608511717918617760291347803716684530233657308206516664344950570091671952610411776565832714067896657124108091441691785332418609541831281504790363746031025629599792267026239358000314404090162757442285310133839702836793318970533597011376300134703428946510472804551782362181646681989488592871666232714707040078926119456580772087922210616647644672384049652392357151130141816599978535288803171296895240964070837615760931923080463745646048900321200446649178636135820638914304093083867332796981165945911105422680565965926319715506069842837498108257565414896576061195898090572366761541550836769828575126197445672170641142015994409078115047307031287948486919202549558971027354178915329514767103185612017363442966898455138174295414454306493666035854925452744364593043597775006540252344822630275707699072037034008522502188803063132025478778614959916998787992659246513550479497861958870946312170227391769498271953320473970319036662260437154752891643041804131345564468568346851644381870950552631810454127735321301609201836641668957255235265799382570692359836391385195335963466549669539754401794501797343135448011020789384702711381126094688161567688020483557855353262166831705963055598527984610506593241876322617463727489088464629472533700696359496788578181850130591875191874721815825717305701107263051235186575232988936669810028138720539514525704804478425126482968207251383634786363507607639644739375013933713387893891633987428141835023359184794284500586773910162830900535358893528732102753106766244598901928628987299799035319297915007575523955765272617808552273132183582179452708168349314747575313435692594149699752293868759378524720245586958757321768443210373334662244945567305604330374249674033871704138233956155722814343805750917747315515059852456747839331840662524539914046971156853528867793172020297653778161697402540726922008800545745469302458589435934892187474313228512924712560858352917248068667919309647303066537498509017112603853796273494083247809190413169294169993319737558424061010166310978556341829246358148402962806341571453147181790923117021023606474425583158266777119773273485051904826493467892718929487676892027259667758911887052011872089282051349306521467639156634186779835080250389551730030650189279260734557210292142319661919343478907999548082959959241020565616644079621489484016541410869354448343956312225533424293119581454409825195285391557829406987833947943195659070980450345977511767240134179868000468427063769605727833820704292980103309221370798560110886413571131691019130168572182581044895681250458150529556911188111614803795017906775014928102346550492897565932676303166135173446288782694279306982534645849996249654520661329872079807130623376995547564522253687642397101380554000084303002394189059197285466897119167099741436868267924587649661229187647725272731226748873957915642205852722051413808695332610144863935850660791541389554514347296430617434882261156081679171108581588130765815311425848514399696308692730445675409578336605578000610118193266098992338567292734966030384701975401459516704451543012227923977586381313062747358957909591563267815562141935784852571960206157083836699859512400017306807884302103144109123016267385566408180650232445036393770562431918227477336995453265981367853858625732369385039145029833440050667514245634211514678234784810809629442822311606025617728510282605951127604013676973394667754494429372023862529016387202491452699311363563446869563585519264598829698415971133722766316286242329724935307289752275926009326259905510353064073405207394347595173789198608070157158874603066020665483014489901231505394805442391558399304898669700956138900402064345506174633098592468336240560097355029627111981796814583617559160797452693146337286223970180437554562081684803281936970300541654446730599115790155645026498245307236192104446269865892619545983816507567499270666358836264460413034577426619183501190415321513690885828076553698989596279443053916999931515377651292805427360646798757899474180463357527427042539594983855524611635238805180327197597566386472053926110931822337894141132616457409487417038964279051374347458738663695648360449897912959966131480207740073028186070193253502122147187850375512422868123603663533855485693469244750549009276929606834751129929630638140948848143936198635971763407259095384911247006556622885458434570960970475316725545417762423054586588635145275902656147377740568350347011937428635691353383443323552646066432438087675748043253530099687643532285990923276253088185215585134034300456941954589307477511738394529930239037800097889322005889831437638231740634562800257554048595281322383780038525846649655354699398138064134203017074650685208190260179060655219634642328555536845141016624295656980370235660526118176943714654336962745468194255713124321550478290740221831427316055225836187201740557216451963235463671514259274309493424414612748328241881157634147375483079913912074749604134548650648239768467485343802344994132054639385138603412628550415459610682609408197195264267764795920127192036088230902914706241014423522216299828774782931726155632923126511176592797484655063261338487461588202323118126986999108586345133472796093794479416343644851606216140034094456438203063581699442437357511418430412443162972403128830808480688165281540166057549321564599077320985065897075310051688034041910537560156158777077293364972601066030527237594908490019840259472566269343588702254074842524148709383087893137593393098177156913374844014701719308305683710894429312347200123340316922323656963982984877324300980963921231587058112769933835218114880096456121181888528596667960218625710741569248034464489730747252076792738329336749553309160547336177735905249770515709811753120015489055380166736954522863706128220727654933492721745406839492300861330387451464491996225329367729747505395215724334336057437958961496654383256529644835881646278390483411877517255475761769375291873805952873339634268654192771100840276843874481002713128853545913980641941997080672606939814318637801729208918634500428131460272378906489949258983988544476100471703754457027710402326985651002617897355255538996122055722268308291108866882671384795903990379246991094260784874390226802565590642278613731389567371731173117168399132437949267603207900010635364039467977524478587534391481871617985564026910509048182160363501934800904494663451675703135497467085944041480561292328993373459609064160777520919870417893349093684126643737783751433113361119656634406457385718498733533136340890910432667803264101520888206908265153606660143297436678498284282452896057000803053361387610127959466886792169781556356457101588191525375811707990280855594541813538165912035750037596514190170830344810105525381065948591024693840214326979211645170880497251897638269716465374064247319162541091847897472461299748132532748966264057335741691015448649290517899486588669564061903411878815565994926977474047180760066515091202473703288075328498905941452096248229243883907198899171974362147366879301317233458801417884816639357888546718692563145323002915831368798139429344048756651212854156424916852790961377276538854816398683386454127332796847898692877754372223647572799800685966795846639928997368479564597689638384483276362905848384062617017288382876861710100423574940238539698735450555152819594959172750507274490520910400125986940070309419753267112979168560297071549820576400587285201262258559013929847171069612060278447311848547899675676760195046090601696679711953404848279120142248438416738965725207344508281920464835750969962402749307013127084532026771198173039326635031779838581678966445875906917990273895097631387915265664996863243481552380937678098030479598889790386363298497704784072241467053209370563337801359550302632488138519863137912066580146511098316782516672770199974259270707595755142900811515165064390691963602349940084540939224086674069055293177456230917057437283306314850991005619001748304525657752833009601048419227183372059274677071197791286272984123995868078610202215488890765090840807283647555956590432873579670804615095582078306011066608343222267640140128570011825257487767326791097266481613686830090535475605710159582242993604504961777395205828000632738772384051790225852402411797486008110566066180405286157956017537044694280974654640423922185992795177159259816568908741300559074813503034451989423899628417470564115939972081059960272916260370835177213151871904954463477177323284542034146523243400924003554531407539856043871585567821146254886678730868277283206738975399969670270705357235855673509872580245576173156893199579407092633410657347026833008377162698397782075776658199793711720126803593270943530964186042735816413989032378579991860271078635594493034927975746859592527255842597996354155884037751074625812897173417661965597147605408683313681632450607202057753108315741270194429306751549770508088205550624899009196303577179171750044620447076160059871626380409261357798797238886209540172638516630883459001021244896946040463569985490177697035090065246263703901970656006057928707542301724160353020624210147771862137191156188685023340580721103316453979224272178462281532036683504581437690075042469937647217792129435355477800196130654620032413135348133460283568632887171260004437600874361865475373844089735063582598101073372331006456589364779781909500228653467705750373134556928816521341312759774981715203725736932455976625007212188526797069348051845968057713047712285516380883450984439591055330764371634474465687157894714007870182661263248728494792722897730879395601880060823547922736941277506607382189825461744146280044706935689228331789635652696748934789515410091879394922621631221867409799341085460338003541661295746344380343608978781543090482916265963127400827371072716965632628324380067798276942663571427290802117520041036151578839312653577139921764394218584339575678287473142698496233345069075093926292445016107539622683442282287092936292191662542047644420479241520247976264614014736905588938798332708704884238088553084029866036063194974043737702312485435107338128890151688063616091470974715809354556172802700398305756414091543390331707505311133391182280045539216158369972353187632812068502098392695221350973028264087953708595736432495954464931341014188842190001804695160808789557796935372319366369684240700713293961715203304641856521051278176001935411252527715452288708731496007004180961732156294898904965019665927250529356429164308352570570019800175106168963093423354882338577288090652587512681530355018691907364195253792023811867575044621359192373830416570698485159042490587985719136347196604350030947947482420333936105046508518845598509883189991898365608603683475396528805516657692023227539690669435619075795996112916683412302560432434318166992650404619890194931798810080940642558779059666549436385111999263520976743594131132810023305995852194220806152820488903939011743965764575574517628473823003793088417517265347646969897989886657352367208802201206129881983456526479431789723520085817907894780861939140327553331149401804540501664958848238032953643962801391070721542019976462059685608043123542161090676295879639816867657472859677506259141691026136278913538924643038623047981152156129087839747498526216775889494448345297296110008856279724841335799954256031293300709431187516928553728421218744363125264516690302587155966180992505582675997743701830523664697542371420884791936464007234231385031802154873825466487960277510565551807761835836995921451693866419347445525057116314222585758461595674568381646366108340982230040290861042546319303487118216702673459033946493814920507792746844677718447847384855101965160460044266273093131628048720622568714524597166805030043687085124656451550747307220964603537885012047619062182354179115893133498465534826585545369217949694681744904692549713027335816029889973483529256352982012553638552946197987287744926150317133040932200725385451990235433622674622006793645624354469736261391135343712803978998597021968137100748250517279200860221213476067598699220196851222460701658133666310338196696748456899228411990008737634582951924240544296841779803520072438503120889698149992634784919854931529514268692168847069625290824437961238183937088605488913127533355991114813926726741909498882944940571731936842906628773033976495670650039094682769845236147069690082892112694317361626324600887106444223162032652969117824165552486513184535212779552029490428807867791071823949198747454684193139609393430133558272376534385993730608991154823997131266451227261798776603258199355580146475398172670450616311281566132901453594817083700812698633093265675308003203716102814004802658890869144790303358311323112100382570919113234456196065572806122903480392552845609433887859741745694400010378687807276260704047128524854478959941271559063558468677096470980587769752963660021533843364424982004162371711192241195024497779952841769394904504012573486607683051690320016779579597641380819207220176592635658264865376856193930217932742373209319639691015352042499200792255121939804103210729278151776266883377174883204870107730810084670131095953735083840214444218627183360502104214595185024367967779861362304622454489225797635407438119647974438096479719491146713429896497392006864463091300781930499417291870226612342866886262407087888672569003806653440196493006117319261889030771102554369514142317099479612440922591305035949135151157444232110366464217444315324405861708685437545125736649954555485685784389708815574165583568665386705484388462445458964203254124263125707021974112497973234772521383703233191003012779282949283823459891145492617799871924346136393445591663878305212581538104651304886106507578441011746780594060570512629247220443355596092874498695156314244957896841786375205502794800121184252478194293040919538877201180583588611507239231092787789585739192141968467386407003932982068863411434685877852874329751717789332205357600106819340178198527482172494615632706539806800249479575721114734273322753082553395986531704820679187669769163981219714731212077597853835058704996272738058667195371656560963469517256299076112187417969547498039367983145611970853821111705893085227726777573247998425587192615845172162898579600534046259782525738963827268043427377656792398811439169815817970096909647337674687590046743585571362799891905033742988052814819681724021908388975360977790479336198714899284415413121765829401890085574340818328234444681021644803797501994075294060214737459251830428212480334845840811364746295236037461656205440041586075337622032729806195260934463791410949876936787371102444240879460536094028936531462121211722812403862741783487613938635099884701091336994433754864076823799242005900942174179084127630834841515853339929517349838468982659712883553239287210501100466982867293226924159847200103109255919356026569330624910537909213669564055485174772618564942754480516028459298022540674659953706681989701081619613239717563839621828715776507940776099171112452284557362498327961957309937678139212894837816254038394717834213518601586683805170842993940505285911852897828948411904599015912580800574943898472462512376087822266845820450536126871467550946167740708324425774864484321206606679330405452378038546946533918553853996913229995178633864960479772857097670851647332055125317680572060857413863277407256321770706471549571055984986234275621361773347444088576468476478303576132163342450344481309817866348998098781579217929906829921592619014231830913760124208665725047335238032124447272581704867423999619159995290076854481611655470391520461435434406121564131083092954885644035961731378966585495893952617126473079254943603631090346196718081244001038938070479549471894020451955945317909127884190853120101639174963072271964463347950038091218596739538637941832219065670730304315048351409914773679748935821661165670080624376181379492839099899120115932599205990231071066670494531726898144857197770259896463179779966697011439595115531457480542114406395345693891364594947547271029762824297002676461128872883981134945208768263198957374553823540817668380261375173815821481004047278811620341390142407758990500962778527626916508645063020187052231568850890244718934129519230467347777003967650684906827133456528750168459966334560577073925273273001843579893563685380781766051558130016558413016487830619470273413598534275877869139988264266522517471828111985729813856920612340324903841762668201748088400212237924632799311953340812085628644578709714391021183568536928902081666437139912316566047740215707401032589221916462056438915980196221435447046472257319880342481856473355247700299780010862608243616267838002813836841208548161180770388009985704994597788075010887368454502366484771790406159869745369450366176227353350634237606911578805689211796494459215846883487234099694354266492797063433257219833386270764398505478317831364083340071587322147454577493337937883263945069250567435685096934097077435577275534006795847870320805412386213713733952834869231370595779015026060672947608698931606064434692202255706583791102199932842615887486274639495776154441700436042633378013816720404244847425509318892684103039897911616760900327626832070189708408009406401599006216327555265877961858077724992382228592619918784522873152836942621084043068469620619835293678986171409472111376058887581698291903230291073120700472682583677475850340778777008581327859161958536886702720298860886846583239140590072251041795594424587695290577646810593497872614766412475836794998361645543429143899416646694980817285542360363739700102629924298601958634328193983640000219252333912809368831755505798742839184949367730690270592741906013626202853144885763137007364715555459835547684747140312217199600389195672157493204072497249743124292858452147345906496611077707529151669197798311641767263189903586864384451973418814365489070821314529744019276057207156154512572619826058180679394555195368059619397175222495831236450196871517906656981288641148846213195122685964602055097262425581920108043754054999760092967239421406576655300141724602740504499601536561945825722106616671771045030587587052847203586905199132589869460604749085090132037378330305652186605399701940701204841349433297312782631216500332937712235617287101413444281170197009548934514555508116314693038440610315203122757427548356440832045498740157281893501313936369376732690457975442322712831403751611354554571133404093497966750460120194730103062354404874140046301383757909911785394900054199592471004823047521511984545410888927246511805884521130042792316113872968585376313490768078563131452636754126455136587681655553577547638200030811403288776787592460113608514941890002915001679084135721549919227906123918702377483368133933536733607295625820599442315854680159849385941140919066439786900656075299271441836169297797222770792849346189628318435395185387867450080941096035990190614352272283672795704854001396484654641054561117705143546397222255542938794585321998326004917942345726283076258140518662252097329346832742326240374719530832902264618384100228741029148803652159315742648601333409525215039245975528958848969839001826328576753745939878501752671562559405109944091929756016379783799303473245846774019738808006388403886914731024033367366525057113555772635958271427161719532890929509830689619501387412435314558946962756833986343424341522560798830940153314088837693214087626488179409298193694698042349231360483559423311416337656621534903052603979830853440772181339009708668183036152889356914898928050109356442541141068160214015615104702055951600685457098568812352693858187480131867890904176183937385106219989272144847480323954692309494930739526175685774785462472512468374798507666621240616162894376554180120921307168763513100693534570402214072838046081544487748496246344124405615142058364032111863855162026463997442010489678918801345172057982561542115415208297749248706960584692964643298500985036301411209107485035967311063198438692120048884191156916444221435041354563511812095985813516086236010441120490351914299512843576246778385052457236893686645322219745906144158047271379712991875800451136052859774148514640542597031038233886278351534743938905836538686116623326411202246648098666889486544325746800002338525066954375580201464658218178313852240806278206521345558367681158083621105602159515642251826882226465347734802046297820565130647008384353965339702480571542646463227132256197559723855884962212741562528159634036028356687404426482272696663503284184390656738317298597279500776842074235511259743020662716077222420075870127419286178826172356671784248436812430484464905659562206062215907165028297913304436669277180669544121224482168709746814845428521331381046058942529535806691221053233812842380138377176789276609785017085721046363030086564346872271053410992708002146408291085596050581092722922301610562370136178811423591346863255226037386469506512771438136208713609010677316655886597237604768382529995945748550087941013950637637296980575197730085481608837464058223374369674566875535773119596588274332553365649178047184202174802414973749405010002209785581063510874747624241995620199457480783320294586931156573769655355509119251029449254666464980530008797004616053806250479673627120021485872037749606378605255658852037068861376657417120871418616615714653417400957217279624087243357652490539080036692176576978061471927692966442507536245754958893400378135230729948356921627867893804191483909230268395756044116023845232764394621804391343871675170876860598118553592932787446527275428366286581047994065383590088309403806257647282952991461116231154098317968880925496098669032338796706502741864163744687881556840580169334146873348812362004017374830375755527551422661948103440913858103364476940992513314779995992624443524431328441370979150957693923136744050265969436627458554542110168232117487809488651603007134909654859594975773871457881801111651577095249050114408138069426606677012986449135037936185935190034339928355197255074891514268367974165191549511297809062459843190024148437896474807915094388960078324054128512542789596018975922496624461833746919817890838272066787326019378866605715370043481991086678766172742563376618946082114385515597069349934736531739292390782090164521943430066720395958806333184612790228127414892107419154714836962804005444973682465151272706186154000910346366107967016053071990910564900362541977933396392357806661271039488974520276313749025170582781753624545457792536473838122399550667099155784321206967033243235594033415378104360838230678382777292554057763807825724083609707880740288329372176799850940872855204736645717011648847675924609721993546338342636925757942333404867564487818606128369067962643896474301968598253184192102387775048130082379813408711042028590455749054672836907712259639767243461437442854568076412825441575994297205669527756447817003193174835493203232082508288043081384882831325252285413544152095362187270173505286330539247596197515216001051736112861656002265585072509091615974569852167379667847371955869764002322865743404434606217663665471664798725032123463984707887296428919318295543667711448227094254976182039807681802628076495880982005471453152149653389682568772352370718771440288445572481827094770070568954479551201942592662808177619964403378034515311093677581716378937008802272609170476399864472304273321655035792088813066350052292589091608116824266966635812952732688349588467711762549225097501920460046727323142665643642723197989530582039426183932988028436997402007746594274584905273027254168881928193736969999604083034771698343477101922190017320170144512262840091984787209496222923324858346599725268535862657880092388684246255893995791100978134642628589373784526536758175679932291815242615363277395425365525543784867518377644722555507721150700177407967050952179836470863653736095026263971401542758806222074865397461560638310376937384148198225279909251492889906973114841915292445598905017570725354722000737186741325197473768173050236614168461730199067254329540777975561927946941774422093831884533439287247799344127516489208471189734684541413299508918409396470970419291225617713575891488417993312096879715664032518516156585900641663058827346254003887715257282714646346088555809127297002603199359281955151144721626328742740545874645439016088318852094061283640736508898061678887271843633448206609059814814313199186800013615079184472532341481741571393302932576420086401457864617912083738993717947739782123175105549240657267935961059044509155924362182039794271285993250822134227916838185684737565247879820442431813860213646017689188107680272116449400003666409698646133563547574711484885474918737510309313738455027885139341199900323583089718537354198677654200251136701990174156164887549025692778448730602492473574650408896607170392223729067917383147140777746905817447596727209503748282331345317412735401092472580719910160865725920492481940244471527925782629715486415417730252560241608800258881667286998032673884099692243029856393399185523988831240655458606042178426193098760863399863653463919660749959966454552951441584503157291287617945291009232104993143706937434298977087251198465877270383059854179190402853877652107416209761623122988885066850691624913642157930543237237100541814350089557233674156419210382670055057385763617527159145390449598926676608736490959048343523391744798161422590779383683009679439822505349836722227722344146263008000775193879676997630235745348139596247469194997674355801806001974504678022772404156160209692980750521684228396479464024316353970813773163547986456221194470034977808753327112810266664871003364721186415844272730495165262964917926204718480502967603539905997548760666819843646187882508886045435339323426124425634166965374482309803236118231241118233449602059036626384475188920345386484857640541657168424881181947886108815524313482005364742569926727929511749719451866829696499791673988605924202155803365576386843185805583437114046342593751626110126854127441043107239069602888400777176628760777688364713994867846787835153741474644362690276414458705656717618030527684723001738450971672704099511978615987068650551231355399640738703181574177599104786314050178520141749472086430955061328508302925470351859940601610893440234795885843251737822062686403927708499692603489186057363487590531616213379570924250038672510467721750576135984255896432456177229531759618598763388106013126012077378659935018484775185008771983443938540541760945344542636843684824812551241338271398007321680582716612110560944115469283129489212803727776696004633506561890880049748315215893349907958280417488206272153255026559997750159326608041268924783976318830886070636450845872465183679975250237372380672428897877278365762200474387520164212488697568162458271720805231263578499153802418684973831197363358703550537694821399070673434489952181306211424320894668025659411202163124426432181305104079193475730228734421927228504289319485753596434995892600391990604061960594361737621255715485768265069919959906929787361484757075399340453850126484399427257735819383557721232930502785462706368902838004637288512486375224186013778335257248681935568292052360813261202937700388022986295244767006696536882491869508776461021694518852058121537429428124695966677393819756314183399233624377159386806230162909758565305685475407229503103406727499265962247880112058622947267569807963814192814013656711963207425267085193611416238942638626429736193407667331410568310634230856906125545199317989846535121106432867616829583592752354554208667496595958034789424672038972448257824039459720204102341720993509222766523693165920461121745166440916922667981343934653401120685053231496162267563196285050643285773763032465845545109442066108177178845007420568362577008199917552538293767533412750825155586715676123034857207870178550375995264774584449339035263494594670812184087150513025464567843427649684292904765168584966458647582828223783402750996747668402451508715766407108159133170629155342521122651300980712416542740173260211891207603709574185834877113706952172342057471099251757598495262643568977989204809962314377070328827781207965506975856771580044815069659614825818793860623679377694295739524807646004196264452229592280223951029826657846708205867434165910276262143320442342132023452602590659106286172315657932707795014217805968319841550253972325184492316316229047059966743713293979343666284799718512526914513683404458879835728656199853825360393640236034179398544590008290868245076638911600387934712100530779264707500983215631336420573247055230194851664557660142668277711080684981164009485147663587143854726943344375543442700359669800900955139036049755936323955801947218555363385469496502616377795646340256326736899759121123652545330075818740368389690266618166129508340073871657438401247602150957897854126624405484799788469016893861862962862336622865712110798010398778994815932298529419639451849962977553580976203251297750176217337196028910360776004088186107897503109848069428059089348441841357334644137811556348059575419507274891443071545146724631010860741002318419271567820152567174611407618952833044402840759353985823355054341669104776125948349664748613793173526778234007097611678245520269935714405409838209575750805360157833191192897843849627458908841582784668391039019264306507458475673844196066657786571648862227366411419944612524099259611044128253329324064782063350924833413985290597595078665450688865100122774292561874176631440178801820726954329964083679941840255190384760822513802739324387905993818917447689176982218086730536954034788084541892199982828697595800193834322949813464595282154333429884082230384286294419640361871026977453047089763414060134365528515162282201817664898019615707442130747400946421028062519471845550479952114275381841757429343343178411350530236227431507761541158204707162580769561830431859584033723181836375536293464398524319280004289088514335900144828151111227442066852903546739121393495245147764677560886554372638442521666205297464278703380287307971786643982379715461272117122339985243116281105568197831305608523021708860004351237548403281446055750119992846021004832333433551853299210404945098077691941463623414114284125837205638688098042547653594487863819822045251332120820980256939424376136878113133625266322403499270257662063859024759087081754068115174611197348658220788797897153555089762035896219530196754827339748708611820206215470883948754818407526223107223103971314426048522327938077653181104492520751984942863583623289714998015277657217018172908372701599322580943392492348296204711869656061964125312345752242256945570613611434926029216413471964462334658631436613183191291009394457319249509484669952180794583494264324824722729205459758998502683157464933920310746080213697777231173796899491652196935111545039280526845860937590607172366155270284959458824211259022588373799961243017218307176659041095963950900073406024460142605771792440871892846179102692248881089388318553166728246503287011265957857483941686890714650353868777640405781849435345801798875309491464715001660496881319417658372199211485916595424222719968992278728771498975152544704189103826421797487515016430693028248356018409515878159141035920608736516376193132008808760726115179095275068915638074411532462388936768173976134581403354152376509817997890838225020678630489927749082358901304422416862802677475334367693028518135434562032550410947327514279461225065400478701478108165621473737391852241930685520401393895448995801471195059846628959223817739301545821865638804866818174265673272760587591148143063162044810939703655529376976968605146324498675866422250473585308002788011709371803775468012542799962878878444231074984371706279925668147214952293834855548997055023807035267678823555876775663409574623521684530959016595442010063949877728943409800188335710797720072112481895454460735183365008818195955434182293782956437955279835484958463303169997204838311325718771939694297655075459447433726886327190901334489541898653242321250733126407740948067883883948987190747616124550081684608837589084646024078482855097950369446226245336932628700902482544171951063424336946355116833245542327341533744566884026137254675273918183912307202932340694426276454229359573960388126582451247942536668348112037999286356986886558182073731405574769773222551482713985877240421997736898789340449510783681833342876848222534423963347268495079993531746017447148634503998356292942379708416202503056231862901401264763055993275790429755494779564590601408921155674323770178660407167334112147665568860949209066624661912482963222798076632705513823538537270899334554715549262199771188576941838078984993285128724347021178424485901726891973158701411300923219194738569430954514204536371565925597043312940414675380008387109409350260013664225089156261426105475948894059722084985707288996407899202894865463797806496764586468461281799975379937721807244353146905409455689972350845716254116011147330449268045930674432586522566226581733287640912053930919192880726505267256560282869695241005468546841925403902566990180730377716176259459256743285422350785094683107410425852153498953389839508242644364138800486910183364479430659507359549822850569221940848456451620972181234577406774990246465204086749172304232305436785193430160572496208426183865741001391099208017733173659743646338092108367412113366915540873362908421249861260714775822644382094580285445969314091941720677040545153852925749207176192106390959315560222449501485663331135045486034351226583294606267527906380272573958208427463302183249986829794879347057867092311231217232911626298944809567064596648379320347690778709677165299487211663048947910911781810979865205626627892147759107162563077153725660222022985658729882418148402729460888922916319955561917554192233364859901242149442578841657988040314429389250497578294826118081849551681652184152932321977212590331785219987930564614816985135589063549307850944617646244512501466646470326750195357364407024160936142797808863796139844708047716772014620133986093867889038777759006653822365656375487820749403995416209707487071812428723086425004802380184946391472245406375868827592058860978867227600624827320864627966347290923362453215290202434326572766734402037921108894699512863734310124062039463859537125208156701152371016850560736731851908795188707140278723515847157125451739112315542145986312211563110316034800008160500669125253232271190254648188810071778441517901579008184900245543684850756790282256763269864802556723148451676310801887184047440466948498707681659679404573923067463118102323481098811610391336144010246522563440454482941809749531105952037205964934404558396791524846248985000945090498012355164094521018166919532289883286148761602859769319588393420624798874330850681816476051614290101023021882353074888120716202676267621235705879766393212634180752837300555337652479839436119018634236438602685510639171355357811154532335377334497408325605685735451525485614759278543637153365364085743755643159706084068723239923871201429489570284184343882902450384669466867295174608262240041129305745983630688023039407659921400703761636422815574862111869392641149310378545075040679926827539086316510850646768041759580490959109500955204131217512739668927428126586566014319120117790618261048449668457475640409346222145089288223394606126212477388349565293282546945230924206088989172018232342710494734265504500153684041216923007926641563794544136606164782662125392235196980107343033331325879541255716793934888887605541689127769021574479974821390332309768755623628128255667079490203351170114888912041822033290245544675425916733512047460857308289829362405374585574871729723117824070831151887969206181497587140666233704028953565003578678648791287057505384198826531716077469849114944173591875026448864259544528915582446339794037758122308684925897175884561068922512333185304785992389775856026518545215679311822405722959207333447977999043802026176943433209347191493684354774583483875636546521129298798153555497159605724242506082693273473099990323283000381336141640589300637635877685974777824089783252633742135168835977702983694667711886111174255264899137634886392159320118887813525177997365108904413898670384823868093062671743627971360402436707771816952440159256817780303212137998200310699606548873790955680506113757280177193980877547858486641513806030978769312701682203795118914305993560018691878522713524291072810709512313032268966837364358219270074776473686762180177518451754231309656306499222901601321280783701064238588824786991894951877800872640962996654552405105122389441949704627248896171603845669362001263994408506759182108169619253317337032868536931007099074476821063260428313440010342664710138182543641724829107119541536303910782731397242056495864287559411962090109830850158028557356746226868715273286416326218924332712474749639926197012218050752977842908408964497380722245870363783546856607701416903066328346071641641501724430090052102732957100426668581734425541343606605464657174096936044161043070821844011383062625271822710873567857742945413087432702068953601086005708376447341669755557536268604415584793665911758751688889108293358529029031826541184055202051990903639213108322680935413610708373891507289326935828242668368286591163173873907621139170929260237561918539289458494449035086337910900308882328231880919947067786291831812851696390280805018838201356501906950176595315026329789042222063168708860333363855585934548558713393777712723048755814293074265386109366564136478244769871781765928455078695205363538299342384282061561834847875631989403482570509602549877746580711852117314370565565028696490275572202421586586899467404332650310364738298251154039572830148362885940334793886454157487650231509000710184108111829733501119398116610584642011099441955230910714092892337564560236196739216422460619576650590462061216553490320690430327546402632075938883949966481536686143573658646618536590425616587284288213713379349553589348909066442119804817963862901048665774692415135776216225182079982167074824836763935278899611776634194531505714462750715285002868653744913733958607049263511779532179037818981847380754077646686762459800811154422107964459348045673606977804976443530233170539686721348294852183632625127584206041106309690182990519813505021391798889038766841432146693786707115745432477069259165002852883578973436274177324562888555006250563566980850203788672414814233036508698222585157076699060552294185203137245337796304390430246155039586528237585128080104875080333384284543586934255316218298046618387210143192277045835647731592183662010220566025848051014526747386461252905926023219920291200034778639458962415149491010314905324726603810691796653810441633497432188857096369972218160345795473068899540165617239191619165355100408961867646596384653565349489093185181773317892416808450433265900669490249883928077307306072561822547164885732440220034717468493544505314102286666388138423959033580123959593414457194948121305045223380003321601981123238690539546306120336367404968666978898541542270539331692592228903127644131304438539602626234144083241398552230897717860905164585560516429063572151428548309695704001376111949990856895534641636774698407645426067086665220538593378010117842240274564161470569527157701643313932876857696887705640626463695081552265990823514156236886852271641882729016284522718681072185970917733589372808186928316857774161699913409661245242204715464752349652650502311321476896622801776318667281194072455062172253491726176002585768557310545545462046875846638937712837212886870293758608873292251665199658313265628602572170040110838974582457633337119080217685374059811496019860727833038978101926660733839370224915598745948490119083475485164487889871157414231713326245298905365614241692814716285839702917253986576552656116406552361909233480198919162053769069171957509069381534490340646839523308989430964503242827458552308492033773421283495769095119236941653625248430530778913860283326074883857175888602902577111939372957662243053956105356381563749546738490541910383038912786105670788216380296663201895914778067134134675974087823424076681874986676216670445514463532013456273380114481780514247697569750890070143922531490177028043476269273299294379058008438813612260063018324918211215466685587956974672575265334406862899871917151983926406326671615476627367897705842056813007152592102244003094193962910664506910192164703465337807322606190233618142412019592080161610798981216344370912694403780498130138402494245091280715681701573504188548744676683177708882361901588356841354838351150432923810123784662623612034610413635903162045766180952527931665003176068912341369573395420551651391360360281574509788680730920046259955691948053268324469237553323663303152435044475716213732680650828359955554757398923845667709337265185878652867004396969873725890247761807943950036899287475165050029674766626470477550656435001122471291922659985576948170639507852224119048646798581283384690351377185531024237371478875860882912190922103252370541781678747945028842724039684572788839639195474423273483419454117966821691929956465742938779046890745191672603531412913800260824811966334198937019239022707949580811508069243641619784428264154639210989693133067540545353433571951869313493391309971748114373683688240857191471361128954508511250072514728726759830957978449102122122547786052853549390625943415173548636798689244387767738650489725725697730390263450392915721634381943508078763906001318796599705905452174617904212650219988670669105746090709671033128372349738491032813825409106976166586655161538220015981147056837324899599717507776439498900270544256803553792541065503650585052348312220166239745303866845276792734902205229066879557808665279293209674358118696406990622887566158497749917998855043306241903600431958176882050743033347235132521192074908363003029557296865819697960856321945415079358373414225515564499038476474585187465315165468392466669788696336594877003555839379767903231648986449267580713531542731184428827601925350369203228896900490641758184616573087111736692112027991738288833610480497622138167433861794335183335648132239438928186252864755528084890058546897917599522454806346282590893326003267934098319156186830796517919345647599620633143298843065332510264366851825506944337980137500943570953087058096705996461284272640629422797983653581003383336961519476580312729201981266383894589216775859659226029678054768550311947101091433267376559692683738954055561210918043262892959938628910685532652502148874963731047201315398496017368620695684559942249779497204146092662341768658687276700846187149124057802763811299917669073284228937668209413470179126739961884572259034451919266156663790847730247249398076772073161130392426679744349143721666253958775737810522501330054258197143191423582735698771412787395132192219848129081718243972436252534543005689389654276955091524128275546684364369100739829410140484345620859561359972267655569802233636685535743436489452454885569192852956571343562535185141087442918675561290267015605231411966131485643634241323572716568020618194571879732371331577710618745515275582528752736562941637243081925951420058450626014525336737617946018477982232957977447574025025962872282597949518102360858947137365005725143255124225163136990227232586698134306048349522005457971695502078314626221435058165474417312754120023282380931105883922566055924180853064521777121177275818283047774880225336407647784068277703304986409841101391929398033590685455315568957413125608675759571485984088224804909253055258874334929095501982321074284202169146299100291410900301341370152814634797314314598111314590773884453879944123544905846577714608858764966034507929400490056488667177686206098103447397129262074458115092971909119191826792798558446986373327811037838923083832492450455917767352577576576904685578042262681352923468169670386091032480448082353991225163044384063043382372564660592639522863285029254762180385935189844129777041950776669028931702105468380582777949928037012667267420356545197820575031689721408802229920939726086360987773254590797576025726973338260067108601910056153321177422408334169998364144251387424935504568884703964272650930482006488448150672860690347134860736274628970072462217519377074077622190440676377297647354653071150775529034148844427311659336127351409631373798109015688357757670821582619149306272205810854016300740800182619776380846338044582042412548861736810180414895424223845212286660809158625500509631798388433598615709050017921729067568972812022087394738584950007317097865194319779918116178428733938111538824317510588993241969574191828448708900928401169291882939794180225140107133615680255798918765658554473896885624350426556197365403457492217047386549041488393754465230408507585460226224181235898137054152261473264125902054219001416616910957881924593968116363375582141338265153289941010639943492610791693094983135375810868875484852975650552262573470927800177388669952464733310734559913810453574639792812787706280746748340405957892359261194388088981497807112664695870215540542232124167392638239033544718763420807824579148401433915220609373223557231947840772098594246734366021024841692007600981535710798203698766171291632141020625137975492002396723771716903891605031366500749353307274571443708784389898539862124840756615430183037739259519094143918271476135183866651726543337529557756290791751262037153221530782467398474713694785394608290585507379117904736942736774209042946839301099608638465778320792674025185121363906776486589096966452463020752956897789922893504122744532521910565824398725112911643507704075904554215499316333590731707614483974944804073422471922878025843923320057244131095794693235718578381518387733692178264782070337178569695404950513975576742442236598469339479168724025541652394857236308344214176052931726656382176814098537418801007753763524999051538522645567784053939433446851018696180600867860968624244270111733920037957459150551618619667246516014831662297092159219494520734070633706686642879587412610302923036743968136029441296715167566324495211153884687985143644705552552960620033211091426716315472233902545397906852628470169815989738492781101228701008429143026738050312580025181813107703907659021476490081845828481082052607423719980930835156984041844005856214240943358929497403724282996330415033911834878317514562441660421410773195877153854173990732779015906741348111055266825608241344287764648284547906402800559366350906867986028594977116970417148635586397122783503069754059581363702692916551982979042796606906673293205909093534570852940203362481869034971069680485836039837836549270446840317602906282003809764575606941727307867359372111588779648506236477197411775251806854033890329245287484939799513463425188793805142694774434350460312222887836328611670353959869153408385487970668160847663073176234052132095556472344091239206109448840016192284490214958064890432471304435696844893731502452685415216956370040461541536935513810429026485722765608670738598290274276444948232504710557881269363720470793222903325163360287866821853590837941829609079868243532435492506221936447575085916857532314057450001417008330650804013229829816393000592227681159407446703110350059937556004689528899240204494321848719068766038081261911717717674034940680230578305666607679049797194128634684223996122257423982250742111670163858178400290045445956051096736043204536434572094046652279106980551738215342714492717224818699882011249160131907412501177979989062487231499255496651216416751707340391023863178273209380225742452118006982100141115997522288505984102238094486244730148619031392751823372290468507439210527742489808749391875718312924284564203822339506017928096396631389437820387228631165286647982014324650233747547766035884779544204577976425796646993787332089454138750733739617467474752965794129217909513300356126547618518810639986076461467782946741502286245411348200669361392443178062230542824843284364963810025647405182582748176594238266532090419974217205754269024207392170105864680145259954347179582895792629299175374189190438319564964685961935717488042089555222015693076966944210962886443642006571343985943735837152646212705830013899565959368335120420470369360008732239067908866652258511055402973729233719334376872029368474873914721712266810668298169804998694693355055188655900645342661486278351641735871341920250088745016908021309233602737262109597969914451540164042953684357848465720433305636317587664616405360763059098486747327271401527685185377957267766689345953001988962489471823011577213451950690091359292819441883904359149963123413267874266173655439392382286586596013741547842000520430154471457076341276963932722940526714327450403711773556005264533650480767696623309957454325583264066972452515116524434462042633847947706388205557767477956710261252276058083242637431627868045865399310247661492860548378038191142147349710080753602929214383123175366640314737990079614265409422019036432877175170045821762383309051329086468690585579229509591655450021041860906547701845883957148443701851229684079467898652086321781621682705515315040822702511752055484442157112740634730648481990993501038217909009729709146782974671424209780317254109021245357079601401660517496308707516676155524100385582206791199054457056277538254996982757588125548225732643320292017311465061669932046459690375748056162790518196177068171237901669312481197125572939210383037085199672814354813115537376018050564691757392885452904322475466517775046781921600510562722079767832228028878702061065064528361904085677693656450131645673520249253841313036606260420957535805962663559292425819802519253933076326287362883773853154343511489272811641850155191757786232338086900622821082857775197975978037681782353087766683908661126330328728389209355475264987224228732646876992184480415673474048899387957997337959289827774449071715919815402625671051114164942591143794567984215295315732015380806239766964418041372305352998837559466294697284838650857408520278584997911234776192796836528035111715351826467071576960748495260066952416301032734595337137044447077161482074954395130484898582988068598463825317502451477881774623832253184450166648156666583510149909384302135207623331923374984748217034728895770136212182038910799738676765024093246141832237113636481125383272039902872799383043314329232489668096032504684597957956094847908964692243939202137110936390276711019309614231142827193192022821916266289035969652856511115720431078142902614231166046718208250452123565510494803265251219027752131212314694885463647378293031634769405088552195170444808069974479263883277463326748814458612322813696200180540637716670179225920781437023580107416391638470309990644983157433275317628894333085274293040107891609382967011155125298880594063923490015074558898030472788160173150285573055943238998567278080288120541992507746784632251696030624130356235708163001985068292154134767481792054888482262022656626251008766603654151267193380997552428724694717263061654108017907129226656410415498645402057396504623923718082547983409592323715500009496826264567022410798773813165712828531165221212740925321005926695999288604815051384013757186821389148342206146484194640284560462333135725464398849330262679189010490076873372896093017481890518500116581839897261585023788115491962218079561231558871550124156292586021613960358514711757507872899908811870667969919824964408442076544051020150176722850286739758506382542455044940775584247570119506965472171394488840772113782288869565078366386976969452892370079774681993616452968091621703555997143708306656090857703989425764206368775344507012767245417647430113576366779564469141918874787030362121368328385678485973600905066747191712227855773941224225826198887716271883393557976765981824595036567451425728820250385844003461279649141164640660354861310724693758320017297153265050514852965106478728514518095259968650284331523973117427361381989529520660281005714994444201641629264063071454691691868505869859221201434989504509251768347259441770672502891399550511745217257733985577141257776608378950016484901696454120499622354632217192953204104123057170312421605606065993054631209431451338699670488482600330869327612698603312799144535310893885811363420538576672837628965481436819053488802996687026056763505163026102617470234581249945355483572119042818556217987340792927542835601685644885873843273732860437779990622221105138242164961002919661875072518160049378938766522538709633416037493719663079166226749599752525876269430505213534611030188485192863440460614081345347854729497877257931050049522145906943930329585812028157629186368419902174882471490863829144373619761709927140612584608307645390605859325170881116486054325869291459858416569484195410347017169256583183021322949629692385796636211096998919972176658800315344916418002132887725195364186154788406137645492634220826811659741967615343617116172063420771202065779276427718431582753240227063327640195005693696931968890180548313995698642177002695071603612756877413200540106598445474795413386734935433537288540251973337002908966077664244221947334244966709822913331808451807114241887403888563532196658868543994673061261026610200527091069381477147577922521553317331367695325592386783712105220749408663441098782906279738169015289717529089909735746188963201655682372272957888319015717640654040176270089506193118301343872495790146593529339451757767477815335095913876508936538291551555114302656335486120688491661931256841911986314076323783514813633244309809988247636055482592893192824698559926265094203274397135894308697627993851492346313379619333392793382312702575062082982500239154797906796877738074630271869761906938042152126157465965028649491678278043005737495042043285683083578973708792848753672253583026633607643741674067348483040603684560981810784460839510130895373972053662036929584913511730952302677060907518818945087964726190393485442091635223814066477269451872952200560758235057703804972530685500502216543928669614561638725961107062008258049118766656584649063081928216777009851290049909901156774846749697949700547184275243595637753799324859349148027602165865363236287166716564912375297875279722659767553892335861379376447239786115182474914366014136023817672690480123631074126662458221750987492201994286175925534495888576575707093677429774235701841148986517196524757989408283666364485320087946823643592636861605491742904697654618290508778096031832203011879543226337524071284248431235896575282022005005983021441686728366775591443844241166479334198029949282072075903625458584433182747981474554941365762414626155259055066234912878525582962020311055261464267581396579652924602226972625601733682656631657519418637781484199197271337425467455260744661995639141452720460132250128578613630472191881338845739612222567029640649561290862820611199181958939253927403264177743498741646517778173865240300591227933437077232936460723213824140648154478426972003758547968113988566208734130023218016584891511016864066316407950356825235209403671735886996994024599217638087704060348834787729715460831687710217821778012838812325479871667006748821473276537807746816794549576129215466305768016394077418571435333351578335555775930910655867570617063300865971892465993644921181397072221525618069954777422797717595484878130260461356539586888468686797377410347023967537247831194511489231234375955910746992026505227971286249006622539930046465952318384130175718517296053991569474958689867712227285364050797450343655692348446190644947393556867963302526975961871641731319099806048475327314405384563611034300846119373290742299436512252290323493145693530887741505655375600177289196436053134859255081163132484223443125959593667680801433402307293927285139290741532242883157379683580216250348921972031289936268869664238886237938090573608767368630666788175360310088366505161182005175406719078430580038009306894111028180870040210212374918032364193109793140786313544062434162913750575168868296316748747895234924975711573932897882454594690515750124621647443671051569033564896584620842099133049038561671010309706816404515964795447514596758829736326501785680580297992812053122444412151381130691840783784300435333059087895751058468308571122602470402173275544341328106633628089541501669860080991326081111045182473515877568045101314647453690061797042010027962484941593261187582637453974070267144622703849577300251193041725408755368774404200248819025008596512053751967926105610201642457355955903044185186443062173760278534362937448268459033321468933772961801817136554051831135324855176081405810897368694426228596963252594032957289279215477184205815616629099260806866827006400257885126923372306014099757103031628289574538799508758563451025197405739608637170483203129870397237953952504077692441996867402995176078128259335986598452367951139374726551747673741396080670721085962907757317728080018628272365065798720858165554301267801900147969965735953147199454852518890157145652381211432975336635951409330920240747486424569918914295212871997250579494685546606460846258774004705618816089716403017177171369768567573250365736338588602855934261635936867168059995077513506951496195379540924852477032496256262171404672354372505201452446112127158252654740265632744629449339985761333445414496311530523366617902789591031446604412922935770032375526457987689450766867771522723050690443568983990185926532236187705865484242266212547618774388554428282472534774388687590070263584415582564988659865988856400222199808413406914697461815983958294292620360105177594240272623413929441603662169457683893479539325450033331036536096037630095194898954918970040852732977135904077943933358079308465155735546354441603160004932375792639807038076092608356809829598742176878600779635480687209383634298206748733365015589288386369134397772020194241927488239431502234964461013452290787481454519310752838465179174994654509691916519045988021901000492649711064292444796131510749532525986924393216464501621888535625121241468246178821337050501584357661759068288842208966013046496428120453920119902767585347557906000934684660262922963269945542124399490129161992157375603121504326329356976379236875295627254772880442002359701527901094145962404381368860754295976121925843286124929514356826285620340690931780831659083669548358734462252585209131616466735568572377584346654695392311979152828515095125090155023977036798615110380876754858200094640650716719095669019550400078523723915743787830247374698338403233190437892620128130366557888495999293052140700826935298528449424768340118993269453098668440118388862886686903961490553402883223811048615817605825197838182322315844691581664629476641074979085855066860870215534000005374635065266672153365271001131195104830883782466544510970490432480979306243725702885582125225809117785486567505064013756085273945485068942419687083212612924749835277352047558345796568273451379072665781464719302577185816390171477907392530856977619557845990247154610719254100673324018051102711950891225490724529448184437217657487190617751871525476224507448538546948026834554178714244388569532395672705935532327910253784876295152280185950544550950753712763199414311920513932118319090700536233586808767718004598611041225382864924873713496646678683969830143172641025515489989104013981097440152548747310389704749870738050985684312203530579868554944746254449798249108030890192003861598939819342783726461674298073569763845050977834242523075262040701596888142309313210375626740236956318699410097173886706427067214646348083863540853667765102713708619600925066896847468551153695818366546800255953861495070015906308471506806028031205519427517127191673094136370743548280031523631854631540121272702811989879449799933547170287600082992618175895381381065072106762880706193358452647076233813419532128357022684400289719992119477310038085891702728486664260679471351089989376553387377589818615842375929307619325438193858171351095905403438686580599322283326130876924149441898191696555098581765151256631065229398086404701856294097394134593310922243896031025856085308140174334428704159192536841076738361924033036023512783991134494633336928398520077231004584138274929472469925020676300934605850438775989260776453840454099729163884969709607780175733528882962100109845498315725638977821360107883311332364079683720949938358167363752502978405360626728928552268263264860670116578417231318955211644810388395306680377523910234245290486697894939252452291026342731500904275321653723063437027388455066866892936787307693030522441669159683984540673782882858214566028983975048568729742706545200753919758569823918962422733188225156586143539004411369513951955999691850483882601767307637077376211956919681738723082008187214350844393737096985725669541330792320869109008810587249876869529366849413855015510933537572405111420196672983261906030996254187823065431770373714390407572308298311997055571506069295124748891553575143070600151281287867980772176472081727483713680908537784126737502711587482654454028392728321122563035684296101605129790305414941793665457882208274065748958734417954595878714743312042780818755690293909764270051171557322535322969251743139165192444700634287434506921286714234927708684057239880819410034753830609354030428667737908628202648445027576035093096648688832893003750762785873056440727616851404758319050908978976236717199700901188778129320117003265419678166666184272617970195982106711789129741688109659137998405638396046889025237468528653311094094697545661352625104643259087851552534263123694209077058272185944529989160824267320486060761872265140448357775280466414254663784413510959517804568189972629681759469476317554361263924981344420849256345368224407334227985972150850451788013151093723099003995963393510820268471156976970646704282178126219100471675361318851963728867479973314862510272823730870574903710477239414116389571262375821986566431893165432070327047972573498043343150378192569942323778034951210288909433009234483972930277913318452734962637744786858881940182193811188320896946508422921113788017354081692624066017761819575653590930083489503194079974035705584332887587612995325993213652731354335822540729544637017254505466556072433606525343864441257586294515585431857579969573089288069444082088655620991541763508982941456660809512162323483745956618684442553662317050934707260593344489012345360896238282899782633387941889317255485245449899694885904834551222364756042967117020380080354713363750660188189552241465449337433733138511126334138157299314851097576881056690553766065170801658107443612002671399786386005719905458291829550379291699981086517452162211677396271517501713333122216393894494686556821854317864477572150459345488315179045611026198474447288704410892873076044686900825934918612215992651486837338544436984474987679363456849752702187321378320088268954096179354918870905301508596751734513037665060989520507308036925775492203891044649792525256733903995904389554548167942105121627096700108497073810166749354552456163762950053810508557941852716058017868743334482491918857896128406075382808838798618808041489280198579126496854259921596348523111708497624743514857074735737915554207863680956457004772612702339967567646799215211620575497476814250134046699922581243372586309179946182569481589180953132187761643723291883853095515429413961762306602980908297575552255923809488368761145730519597403138066598727108270697178397231383268714295530884469645676953603094536124338014361984773759019788709216305137935476040969361888591203203551583288075768610957300520645793113543586962295313689965048000321197590932985028754936751917484180553189527979660941301858665974650779250038121424199990776129620298047506137004271501588108301207193200235912414825143821378563635872096976548397974100360375937075578017181978762476410510792106989600820851287511793801113479847218107900577404007824064428163339995652882315554663555739329841705939161040760608828723545184560590396269705973454904770615540985111151988261506135204449939484266044713173177025837655158222571740851931397014108181857037534874983680241323670700085712034543430121667293327208670704755819093871076330065627657389313534586792248278651723917869330681163187755323875878579064327282125839606567180146779477526954406925840039047346895735061833681325788959441039472278713669308032019480333705885627690946828087826740100777776962362331817803051569064196767010619718651100941830719079595017882150694556583787817467536904428779034007140920320359724244342904184626270730820038680424086228906024302405592065439943515410444840955397958944794512232834355753805469160577504427130877165534507557049775396605897777725861127433182383270564047822613180290558388101690031255883127120520966072746459864436590087327952749270529405978040260530465727060557095895895783034402238386695310707195828215879681020910302750997572079796407853440800923300497924846971695566199714615977225214751881799054549123336739490013705822206275916176654927069629353988341980877595991070069237965840854801009264427031076095214716823363806186628623252964059054253751307413262267886749118543715611504725042680971899763544159475455192463493005303177142314593819338825087653571172858070396574995375149757036256530508562659773968667725499155808155495801238422671289029634927096911766216267207756897249888358261739735972195182359676151199326396987465013696067401225950465228113276752802157636264877920889722233988659741291572440676724853175575247287290337550755223290100005323213879563006370841345350716211885022154744974001657914869385753584443892326684342051141136618363374779377705650656388032854415759552909457514802331929347018662786374412716484725363450847555423460748266317880772070556715907437054477074894322037325537022862590680823111213286040574155682153526956654929783545631970973751771295825556930851198345995044331860660069534512586556523926210343123035044895368766803866709123218685939841946838632798962392605971389773821949812270244542190233195878159678461307362216655358467925364679363328992252679042508632051393461783814502593627005353756703719672020082569698989346087398553482324750870748514167168864286945334343349510302933788112346511745508238204563943437634717739803070961465363012757591060929831508559236926252530128572996335027515180177132594656609755703838107788643710598700907273580532957826375705549187907520166594241342206272158894836150606335901751034777865770344203931258493898363834832440599119697453529199647056790011783898462062778634695387782441209990607222857639633026822530674381063009454388962774269264004293153407446363871640963066042582975058946075537632364089251753901370856181052728982142123425185082058688075311425162203740987704985231816151840340845065442146369961417851612392079656608040873501418657613714866386657045156828534192089296617228899234993200305597554796538862708796149010518761014753578310510284658278589824718956653622600587747262935352373876421644827530389192342425373495008096867097570491268932196214363256230935106790185624657312075098691898851741941064474931944873269350118537469091841463512395870341700574327763717436301779432087054040943156213779829876146775369268850739814763455157868867362087265422174325776265191418220445654177097639315718969302116330189558662643741554522959386547042917348200291788764225677777886247338225026966716540355365991865756988185173665731862546037864812116314626291078778204537129809465387711481302747946948188212594859249639349942480264885900000492143445734825504279156845069740507716993998326938118963206775897796315328871231659575250280949007580129097588943483601646677231766127713527975522231346247601349939174487322892390915047992313380568472545247879691415261294969173576818453721890491298827859111033101746580648093393199731352716715975930005327248616887154897295429280446945520800466131538960190264247173182943253347452061895077293198501592914863526948643235341697497041406480028462089099161363708641990461019977339370898028794054035088650094213834599502474993014055713269892675945039257912330379517995217461518167149255072840866394761402894748299536960808731770693124137609115155830963245691896823886874311654203103914642828073669165241094523154549695021897053266712993984979380652595770879015068558916062172224570998431882909321985640649723174431773300004417745004368691819788805045724944435893969957733241253659014689407819103602828248035912532476690955517453586718218048148449519768676968559188293204259057291680032832120901464731222725588589957029986726835068195216450743308668741265667912131352799860665455102615544660242583163328805766283320571255418433377917535963452393985186027739821437877601821642489632772329488748378727999362895936180279000325558102689470960672251090902498018853855073639847805380383576944254892261459834313220808353288424434826205195049551526761324104104421409216918405497926356151349829830761313730322932540708012713971832116234122874822781224890785572010726261285616694160021490590307415658026711443411072290512479571411282508936008735240836351251506361982171315258597629222962991251545634699184739012202913956760344431984185239510323445565763871707813812961445205691808672434087711250163003407974426279372735517036712408503956303173764408529342986629012645523908819451900209598219276841459880916901957042346263909401810292095419204024348103763831430456706405782986112238118423681425584849590287070692004775499049376893647317689167446459817608939485275656244926619302902968620276940791917292811873423664801718766440377453648593415842365416375302704078909549179800553382086667963338621850784170650095608030983722982376526205351840608051649165608454472440720461446830216905503996622354350113388485692880660454537383282566314969888465310212195424524022081429527854755738880273268559567303937921950771198938415165447998843078406368378281080679231267469197739472956092436855231358259168597184725508110492997551980564893469298128292806159868749529089795337542461875520528119668789065002940751626227763178045413115109935982343717075246394177868192121547263322995763135458773311132217750178311184649402010098004741168501978282179314656001312971158729592995198214111229353269586327809595784195947168931644400233120931496491532737961462682421287578864162980511662384547234706011745453291191749794817087187810157521099148194573825045651440673677609036577218603941460905255013801521806025892367966518702294312551102362046616427520674257215315355064294520782130125093233152107889690240491344889793531898433655329943090159314380109001345633974925113317383024315916202102210570147799801613837708993385511614881522557052000804124298283096758592384563276962254704100990062620281955204584840873766172135398502086482935717670252778965956948028681294793912411232597290031063296972057026210774463571719517875924033633924240061694257357390055739042271310050089700651955117665353226956406522927764690100746207610482309963632240636204888040960771574207257074415575967493310875957189856684470528798259051155418092938426262114887687655403743290266987607903030669206239984320785722452821202842037216270751492383777737063732244518311061176073682566254629040137069373860262316839498725925674341437657713765060256820325547663961201614884750169751925277639419211381236483652466334632879315174946379653170049169373197004114788648578431028066744045618437549689099230510327913828554561230193500102315731898078684485521889296502412036938582529707442188477133175217989858813186144458118087586481909491909032612611567982593747298624422391061224446515466245565340549772680426138091214932876878774404584094838798904565050270504974349187302799957626277543546057266452857177886212892882727078550879740168254705928761841006574297090363813245700052874200346986802055759723063417567614587446601933958669675869993142068894237171959414750630895667694298418237013382400194276555143892976811710179049712354923455033961732482007252525991432556523395938804053184474593617394030773787027091314419969024067195462072053746689673083150387866525983347323077082758277008548596813406224783069113773304785778544590165966230378114674341626506882671328105961178593545006083819310262816705840147376055331440788381606549946826167361703887468839868573898240700082727259576551288296819387230498715344614710779032086801928336762932856799817997239331924137853070345527803575458403249239157051480312091534547500955584756801883746751921110986734877328788627744542385671356536053696538225517509519600599645487852885252109515565002957608298695556657934710805619833910578675463360969066406920852867859177630610447781466058399261292098749630867998229245630015808938297923482703110490083075448526665188998460201622682954645628040048797100780155525736329043420024899868298027058964361332882049096530905498475831696388384386499416191121422735144743775372295363505667920680764326339474563310199730980971260276291165867484233032496288444809248087664428713696290617605355918256697484471287914320765451831642649175634308523578378311413950826575721342950160421746797195234374098092940537584056799403934562202367494533309106378375207462413900919994936535650791090179186372830215460530754761568653930299957720358164395339604694013054981026242952306217250283779236191016862913442621231921532015101307726361006740767055224520143057016639982033637369487918356887633682723560481750658324750130809304538237134587698805244262332137932673774177122963910659013613303573146240759686463059971181693196265543896609398323631861812871816273291812764459127713837734689600942592842616379776413624084374003653268316056109954058297898435762387480639618381716369453014181124241622775839065324133702921228562969903246545562812633639002000887127152179940829990338823429105937735732489281408811826581868630449255607208613321082336289351276580186513076686181029204836407045952682363761014252761954079426942980317429733247713206651516570385319677650575539752588944834048582884668664967913454543851139447570043692089436517543293011851145514617067859396140212762692889119431919713187456005568733716457123227883983041415066474499916798347655641884675500141580059367786869078441880097385771182848566518869729225528259750606773344984385359357959556743409414826265338204445776719098084429902503990762894880398604092546588231899277230599375111926534630148750529437588617569643666508573666213213868576006879135622301013302492142931083379356583837626877710010344577932632713158463951762920784256766963365083606841458134081041161951819283217002251638455409250326185095522559380612394589094897556104823937912879128893014839522852163131758788813937840492339808906648001596104710324862521201462658819084958027282617446655633250736306690509102522181995322050984481597306358864020622960678199830329640681276332579173416936599011448275966803554482119811664117347929809915645543447154802809747074224519504679946487718953066349940838023533976597161567961428904852380845043864979133545169894247369754337564484326735035767078779738280185272881171071030257291466829868843648763250821655279788026595892293633780910325390618435976227569312204365257423775754632483751019733170353814539874682385609821159541402380280430766191862365177704066701015579977505680372436233907552858190393690133000993093434370385778804792043241592266384807432139651197810935276598278852056890538006352651339165517046810836195097686703015635174401189378836578379691627783447660723615279985445203479793643802254195912548410437473957161746937070106451593182884760773052208407275325818873455666525441845585049009055940060049106339653576129187072950629714956144034537867949574825145332954894631273341987779913979714080410228114493185947935848877793913133958166890750052926218972654490254444269949825135332246220828847099221160989971114798741136725960789121791393371978340543497245604818741916528749841917264715484767773532862016932022487792068597570070696882235340622609062380986845338915937079216495282546309257391405712303109630745500153473789365836653458248756009886219595617205496634715196014209635744058772386912823923199829044631833509288734766188776769578027828016288903378081421807445578779618254695201215530247247382450023351318925053025468061180015652147689809472562681506272130287853927845461107222880161607789212878773388155778486674692732351657164267996042584157021896880969404509130818645603394923091959683232268463318077835587975749180605810500039288555975476930304467528547455721407111858483563672054768660664994699715774836181492819662566901411257365081603391681847565354420406359517821715247813259213484900329179210274526316008455375701032701395440273550650919890941612938892088933310004170989198567006595919076885629037003176285326974287929150301625589056959665833392058900088960378359656002483978800630899764163615411020743920702598799524427207023714536455389140947585485923793916068248109308483845328963331473585065243047667959141780359325326199526997880465309937329274668862097932567382772419533933991309358115799303644167528678136967352045292787553916754529257764740129567819378475398840519380859619558653895710458730854216127013853543659728646666864271961221640270075687687038246903346426658584885535297860091164270329400610425630420793749808576758971925982471291060118654593957584230608951027409126621773762433268371353972329185598323599392295983636748274122345354567738920457582346350142702193650160252867405830356421305028459096063066795516866132715168730025675293496203497543488315573217504406076067737317489945292558552040244106717515917993595892997709569735159501611576917792346294471702376550553605074127170249306501641352506243416764500016412579229209164783232145357743827382548294637205128250634114409094043070812729048430124410127064943532700168835792403148144318700942619280794435402373121997721797589381689767425633436859829128999788275943678299816791212267560059282821384104383021656605928370805137699466876276704971896048327964896067293879169971266644096336088773803923099429867959844717354029816615358244827670915646718232423023830851067631372326479626080897481491754670678573998784687144696521481853172916721117833445108586052372609473206768098891569641189011662963034136108424782976895685471582447925022208214987921990410373295671995561663344184071091653717656041848322518563148115528948122366364015489358282254121912761452586059011753295300526771978485887548525464767658295965409617226617528730013909862319384957344666268179897696518765040188866492862634809703484830253373835242323326851209986028640342247741824919378585903152701604172616567681174720624957324817990844888403460753946797866326803574662774572149139776298733643602626135680086653630280491687011381218087417696945191566579629293582606078915868353981150897528691134100582263148504978177174868859073972511056251469823766391926952310622524762341455457354273374503234176919298046123078761870843186234767839603249211320491474862788254405509769797800539830032677361622845912533033583595817690719317023936209763867080644091466303420755791837287263226807572318846045735416373158619041234177290789335123343111177191567116934115943962864163653957298778911473864323595109650467555821780442689199465055151756922121182525868202914596167112671009407845870482993693273609316607730454120838043847143507301128572153312264270424215241460593192825749917116565998746175833001677710582172819751093636182717828683558794280490158114496768124277008168978782534579452033874739311701046774230846485995792956832884977375425945313858177055287075150271100587481648670879898410015191573264673262710890226374717374661595490475438386935028131183683493649205376387129319301946781379212871486424221406560375593585558903950385625160978378452532382495130837385428778198407893818743585563733134186901890874161788636360842582466196930589267358040127200240309204882684112573275854140126297126689311433509884447901320344945853049467316621911915356709913358717910624144841422249649330544435543162574717632872167578775707108767682682491881687542476907616029628903196846952157832543844827588094335090725927375145499931803648410320545515832848126943858858864285788667425148340992267718382101508701160524033517165236030650197063173132322073884852895476104755186640925698553355590405923249088933974445922737825966360121436746793104693382352044255082501224264295630829012124456315300650973229017991465539360508010680857554380385241538692074767022207848016201349908400972244494769213481330844137122561310761519840823731799646300636259135967023018176868059026835971346295514694893212169882756746346742831112187415470946883931447037875915547452280189510298379617299989585781210126299172010826098331103867079798774497222824862344231634285864279632345757374221322561341040358180397440619007029974902703166719136242160847775999111616480183406443681390630981605723314642560368076271743533870202676214018706431720048917671397022174417687602298613676286742823093542054003459689908945990757061103190149870226487308987553199055394145404683597292978000006020500101934770540413735703779089597832109349126858544657851138001668250550933345920395401568807502449312984671956204020429147321141299503959959798627742141636422280986201587786645227766121367453988783676639953283921546953113976089649098098919322079450991761410616974460672776050420585134317897681044753864187087346291120908306267394445213224505378947421852364701490294674264752244736017769278104835212768512518032003343877728194235333486661796342275674407099871074853004593499097754369009198466234151960649549285729597202265176321677358630800379620273739746767828483426159621962265442672306533103722437584941015329112476664041454417399875285829727640523133576362727731615359410079882608851572141092261702722933169480617013951814167751592088133043241690228902255696874340693094109137121987708244847627324489453339637466885820246320289568946988102637553648848729496774282895384271577246639986104665453533957757738933762651811873805466777139161412331218229333291955667664093644242027209352557674459493211923221115964636820917339540156881627523769961035128130281940809441721694274096277506825667714399907940210808704232566386632596577780682623501832504155689072521742939495126127273162715876873352510954372287736029456704437357506800075521014084185426999368104766000770063644409652990528646759755828580018189708169904352510636182170776868814654566345184352126709191464229015198770062389296585801630612756201898297581168383382866633056185999316589221788105853993933421325187781862115300195404940041316519485484692138833269835207969177622903639268291123376735684173163097725439203538810598713779191252932575407947678401759527590449722018839533526280095338585221967201475333858846598349425118277031732210576993489899274422979005742120963942922593826304694669699078781879557694669643038956411696964721457413081878181291267581310903521641411016908067103250748071973353124350606572443621885069168168655340124107131501220455942325747538442897638606791429860293011003420712407990379376966652078970198018101176825533125275638678126624582433179185351537862989741411453876310757686775307711665687713966435081551262130600588558234898327965375896710216018440203525069489906424051078078343560521080793860556276458811738728458379863871660481699667955666062072272956440432978483476202166269116100029795063089540918362682537509861119236734930051977454432922230140393893192158434772476019519729596317456440370695138081396011532171250264442800066857499533688575574645516588912691573124820384464525017636061044585134352816725519908529527521681756460264758606142902706807381276910395541412552951187808956079659919438083055191356431936488919046987517093718778319279275911446722163236037403802282130397988161161201933267895846534026839163772109800529609480441226857775659928112982306057978030991252184249000872790355613869492330484662732743737664574999577774902678702422253255458248251225637134156083623533467899677428936542665227356521112628256490036341273557511072908233374140712652022282649183814777239633427479195568187513947392502445060100271111364824452637697280680252627157928450572922399885199170669318012332256901943369332404704214645713501461453243959645570788464003713105796714602277158838165521562578990405613537408197047530822459248305764656540902551641698283455422466821853932615376609445278183874176072032650411040277809881962451536953805783397367328556421364748831073109265346338305569792265647512630080711496624859139313214666832972983592447850261970798992213262703406732735784932238442904856697640302992985370392064644736953044711290561198345177277072860468882636922028285467458504451495526080542683485666644304205392054113428244832158235930158320810354463223677016052177655924273405588525954525739790055180653090600491353479348305559225892726590127800210704005002365939411593894940057510708631671795858904127036761086198456792512128043739077737650871133395738909707065594401036999287603935036115813909465442688761623187556742054292098511173589916140992406725284381600057773223569543203097350904836458114443179464340488964872182388298269454966224766011146842325852175590561979065307600686869108853258678483015649870766724310206895810779478623327702477035292187352618211809412658371883613249499095221465764773214298864771613777139515196564680449465666022564989463288913583760333742762283029379898570506691049332836306413073620719606908488543091282480802245886200606079424922857759396612184705260688669249673472778213627686452780595770004197947299725840780283249306571301220654633453409049095024518742853821638275648300527789616598962404431161492832438714470279308028262892609347899565538265498056915487701751762840295986730280114943889071012110272638974855773170325678065199730530783881716030141400870431860352823168148197758138827523565787024477345502934847646036729019063718809312002439802630016318845559080644815778894559030162094255850529856833711173222928297558726986209737618125013973313218529865468594695862950113593894497506523350628472385809786925498029013355509423110189912484830363287003372873167107151689194200518751183116393589917531699005500105220362140708686228097252004726680533005615563401283821349188259421146818579291536254226921164486012798722454373061751354188223437522529283085493227315425772835258240267810990248511084782706579288158214220823391437854107470170197320705754065126479896851169212387617807888586878358487257777025120988872908940759138536506887396533481213151379989039119065765184238515275772664423430020187124589262842520801790348863235315421634539000930700577820855926027890274244866748647705399326682200797770768969223324006479603928318356604830225711217414657468266744298793109803705966519910051604885918584326995565446187095036848954251704622245786858947723050877115942707071420526552914833042423319743708204290042590571476025312817120438119178539403674515672971430648206360058532656611311088677660706928257531134587931480927492485142716080400963248118541997809893676558919159610340808785863325806563275075004676663152992446065361684275413671992945353562604527741040219571615115868957141272339494975298543319890889117414195662929221474579093130027171212742984270719854758822442942810409432388656332373369872248657274723640262375317287267010010914787933103788828561730879902530035335984318953455602786254121668974679391191436815744618175881780096404299840239230181746128616923425051394749280091286526923528925577759898172584258132164672574909896806027772675907600951021263555837586640277760089838638215420894483428607516596519563357071683489645212418285861459296539800811426160156550715959555773908481696520756403318427444623086970674258542628863315762096295675958167313838664246362550363213680928599093705043819284234912250639575185243332367536465695963312799906094470320668612293295447852722131948646429283445488108547112973209964568152519803525231619782188370742387973810920270646579010433253266460866653291111898538244277436203031867204255086680731382650432602494571873308184462302605660485205762486790534196314882767123067191151879106110346537113422191857225782095801346831244268490402545171521389642700548208687791567723587360498307943502601998583742373272253801945917077716249995936155108687762871349661484338306238735569257640582918015989961346884317248439585268759265257143423034325085448373756192820411531298527179041618922736729342415974476407834258372574655378112606134794626050837604251145810267515760165503973496871931522868533890025710492619594299039819099686455967218840843248372652489694423406340889837908773754790164514160931467885359209051896214954448387843603985049910328685082918443233510558702903172781082136657542574112235972224559562748729713517063093393231948066498097388514167166889527558913467279317767756804590920338232545335826058225202083574340522523098658486315686697014176690481557324859213618929127279582721711915738308309746135584205097250038590738675650212272857872394043871396919452443095339482276693772356677505391546129795586912575989109812238542982945170592847912545806677376945267048275542271329673423919056055495789697632362560717568189956774959594102941788772680847183762702037377892549164997303739207610836617633872884859639242356841818595139942845848848923978940213355497501151132274743560829228031194018449739723965751907059186588131769883004926091611316261548573189133922237093791967646293515567694744608802674920354643440320946060311469654981243456377566110847978911959959525758823925504226808724841976228330475217173072007756041675294543827275865218477110678916109793288872415708910080017373781567979940145090899060025978904609945797291421891580798146994334006626152300161922289803821123658822533705895333240229616310577778524061653737740652356628740691410410009075022307121979261336750511549534281528277644675503992631505496156059691022247275150739258541014026639207596864947013025615206105035682732995209115677353619874713909547056989534523959711746748942963354938977777595782850415881428239277213216028298118637003403210878247579737929705994131011492158633799840924337599294349005487030602919240329929460207080173786492291560083442704011142282120032678556990371367144722468137291470121744889750092276476807143267588967995644298354300373616012913951340042215819916632114137613310248741768621268433484670832800042201910139652653297598454840398981467522193066975468710837895756404747357272739041428042289184944032006961300235607672893800961646765034734026217907573829138210587661869840463684466466489903738074118580918003319617734190291990983040983259824717392993497712627063270992937044792266424014220065320682662458576096951831938712896717914539773757877939703616860460356703769921688999922087589775634125822727894935255767899664134131581152953727984372293117397972542826938565136971192379387948747845222651006410428257852980538895758945584250219968673513637476570737366874458172111712131464514656486789987146623214748572086758671902106695468763964398509849188967723312826375105775148152446624195969612624080323131235944177788165461600652061644821486430825638995896892735044167661816409331581603866205405831116369329244646723205228886302668261931921745781243236791779231226505327853412728990523061730643988674130107735513321956107009330094632410934991416004650723928568030544767675866335400454317198470330823529754180873012540977588735810694221195402493062436717433713418032349863412667835952294564209929011428803719939130185684483448686855182378293265908024894195054718703598707070643464480207191861285734823855681243298525601553182960159374119807044094808508182901362874713836338864340606963396315645342699306815309721626592518943089783408050160494652435768574778421723948608688863253314593735040389505576161036678413302389658225619285536669707463162795122581648120839833551325094302773357033009991396264993494829166816245458710402408671628717328779345167475936879906681260988831246239060502759596523379355827709624989233746425613969300561428369603805067871374503498807340628652102482495998055240049736554662063488892578543693836848464106166547757572912360986749507522824951422580088022398876651135914753024251040465761897761157033337395547182071908729864457353539561511922660390437053568493976203678522529200797218902276249056092613501389834089818222723418226166673520603996067785325132265442079972340006573822222215797759655055951060532864560026624791655583743751609285385695861150362952124839154175947439873456529182818012875402303753610936742362972965092033712221821392417278693803111155610366736879860325154908041541714121811693434338406028287617740537236158016006163813001408509835940504419179710309678476446596769038415617075265213984391053298300487093985330238647271654085187927193701390345485571299246363994790187613983819680822523082042559910754438133924692457933973678097164555588147879188376416941924773668686206929331176764722513566710819756580191014894300685932747414768992959905006394921091941352709875805356209958999403181520039778961750541074040438405514743819295347889256222244455405270615883167203827025326216171647299009042545701377173957616848779685923913658529463130515889829582232865320414586023325012490109523726738054399263396904463387012804629643851496537136250185461818742991942272834190005685359816379280076415594213364958563813308472632986230530395039912860269453315115736506134569340267607332295836728128585684716598587869409988918764256469410450957111062841204043220999783124320797273647234207683335627388244044250022511932920405014716656042384538077289860993959019707461503376714117595173718391519169393153802587783947116660195819696030275499721017424214300754876863353811678666348867374115969244628860593421544031062035135827736476288143037088582237168595517150808855809617046777055065682798446709027029293812387453350479413270891649037881443647381122724218279516745509015436792600405290502963045637556585922356773156699309736325080379723027122977864303093321817910795451438854356335209487858181335104864832662725055181214469494390071010657679167947200576753176613529642820919304661050013777732347958195370738145218491143312251840930491118610916761199980416567458788952492660978398475897242200495160535199664034019188279735499785488210925477453844165419592286784086663440673669307422554737001074415951714520044903508031638319930091753975472555459858804454323921918036285296179483484964468836098907487341757890365066924727937014204550651045485341791315831776738524484672016668695971452142417473027696218190396037215363967845911898235292618873165764463033438683421924669201483096327509642048478189124023596043553632387442928289903810586162214065021813014656097066112506972983007572529553183759461386319918523153256630104670777304190600948988798898547598463727904678779519381860291506856109929957671253513816272696914156816970757051847650496827207169167233458031106714338500778170914217993101209872747210903776301306006002362563370767269152619020420785715103732169201793702353065917494021261396044200553413361979126386611773736548282555389666218013153078796817800655334723392622420276012405434086418539305886166499441767724279858176605455164267049904302911657385026355067954911262087778621305563509528182902800025990620902635659218763008039316905443291967287316691442634606960651882806994536662998777366638879027060404256994543001364162856436505813313822467667905566429220999446401897234077996127461216168394749082651222955682979029764861629758684935105247547787131185730206723120917545377978860434432788883854695060078819925598785269075818446744629191388259414457434205653938873764073113510914449966770308535710657577006369513072451239564289769682911093738936673052818782011956747165289610767594308984836541034831172547318041456104778018075752372473359695577970590018127258202977794819483290795735530696870448526280408811963585104449550901675272884586209653719324105698679052403675220936398325215574641453581439872795687065873530063516396952747660288928876568040003332934014943911438792111985238003757103371539506555475187765483430548372466855959915758012486367959377848900784379231796417589510221975725355288011456981138770939988394095504911359083019833246630610843350062624744064739911571315742659812081905761586991315866604193197098795356894788475744955499459268556796945669480079232841343270940366946773178758170861095468958515847276556704910662092071083634612592630046187223494057480743535430151347217787307445395330822350109555621312442331388282378702870360949530968019881708687502409078274803903371482350587255864603677857847193113004273678199732703539561333240904355543312132388097757917378961878364626077667696256717116708319187881095774843708072193417168425794577757784690658258894125387789865796254484455575665750841797940543194236737119089146954110708235056261033422534126635674796019293945778241077126153590801389657719454803666922357155209223767636894129991714517706567635444443319443509428182116290944740857174663715022688090255726999070164788724141944969423754375574735877232325537186842519314629423256306890520849322671488380373498226643126828205163876403163532326566258097734305209151684798413919705925568789708747367291854252875364320798081271581835613591416888962881756524904688706926925578095754757402465523811916452769264187574530425200481911277381364889967228373399510944826803192810911214153843605741757685891499822943699996285937429788935634977357090313290304834405463102116744369090251109922442620641072432495971896780413280383180487279592647647359387905635396573310904656289671173012827731755839712751183252339774420531320956028141287840313963761603869948025028611614574920308783200433831930511800640740280814681079351618248396213240401834841632335332894602856367330745473440688958145804408504062127554345898472318680306907265109186669484450110052661277101184243085814081788086825181306570619159746841365938034374947625640771924587428100091381064155646086557679717599141709194001104669222048689841661449668554645430363085448837300257473279858518760856123947628957016709469905043828511897665154713565899655367309214481977946131655646150909594135078059757535593718903934760178423346039714772026110221361713680917579247977400046707414973110157941471242788660036723761670688130101052025528062928297865564097962183910084889672383059639617091005559907187073168924178311110114368156462214726454397524661652556812669979075210046658250577067890922385687574949581339879605640888010084096997471405647129101946356915799579680792449646326873328365121244182830958694111955019726770616981117373661763732680968933378765671767560134325045409363730160799625545726095573615407072076290729742665563583005491007441358096702382165489185933109131456886089602631988567616337427355364846607221479669436270423075370293220053288777638216106713755927948268302595527820421656565038810927202200022743481315449193578823839067599075761673351412139152887194975067634764952143952499826100329008682021336211752824332019681888774092430863217616242826344042269578158261016745179477290000734232966642829543150304325235901276878149513789084287778863214688834343872628561585913223213215160409858762822183319919416815204103768817148182598267928125306109171424995735099909604051447683356511564781215530575340937862762026512635224729000387497658491807394034897932392057889275038523599689229298289892884258397177215718889521294479144780705769784184736922563654411332489001898323940955396248270650033329254578453085008564506305665555418396893747815134451737142078366044466481771717292075520152903456302949702714503831503347876480165781284081668726274049012203409922158471937193321503580678236481896629331105632169278631190545329574713186738398915423747381698105300919238478771330837372214156185491455754071356381824582420560128910653033584740891279731070855233413980683360917520569112007609903072103681903108041874053676538798867961327715485132606079740430533150226500427946859089824385417242065065437201335726589704370233414021998008466216883653258958427353175830829447438532147054989603555143215527015321162090418019459235406799365091394238593933994476067667671930269931208488371844599466531967035580588921100148328504967148787721851715116141091709337501333183916127044668026597625541445315343549371261740292519399794534875267801302015339009088155126964625459143422294715661013073004936085724631523088673120593185374364109507570724508785398781302608884991124378800689457155278001898115024826496258800154611423732341622535900312144123667355357117167122651299632593071569096090073996201102771546693336956191884436450563221111095220409555747096353343756274941201376135563170668173592455930426196562042643687555723948141476382425538263103953119455316050193502812664940126994966715505205939076031531891966274549063543972040007653039828127430817447501544710190555198024079381961933119829274747217691489311577056920650394456003510748070777567983658236934251575633064446684744466562393021823276674389530374114166213480247768152121708187946419468239342461853789609642540326151720424392936205055153068387897795613234868196762520412087174069747455734283199952574300082492469939785512713907699552394976497001439364279280448444391404713859886430790328183623817324304528280021534023622004197799636496260037864312502140646450467849206119904361076229932062389927779322588069778047075023313197354247138797190875246978259577975657165801729007410155755959821583065529465304455276192741348804779919586083294288000288072165325774859546961249603020377469145170123926480200501739148933334551559990481417016325275255288842723427209048025066451283229149085750682946927500953582988705306340961069183882599731630528292876559958088584108620689870381902379279167997648241075548690360259049682676028104677176080419538854781043636681285224891715203709802285229374062750794011816780158209727452531900293119739536968248217467503731057565955369068133065177518711002375961174603677928615797936422775490694791893741191984024373048625462316371652447248048026247367262011839112370926922833727247316024531947968342898063417882869683017404938777690564700349630833571756844881122667660961266911991152477679933982828781616202313597418877981886347069533950477182912029377936134407930054626907694434298165891454821017380500622482648649992470593886871485432291079770117385101014694437815089594383845451804742950575237382327174626097903154109174185489572450510294007699624224723776068517415446463417609326950303795235782710231619760913772383622931699981933065560639403915109112635578983401776716022255052778109544448642079917469427339176848617105205624444663103258417613014751052313501321476014679935839811509195263107328917933377935213921475648404597066455442004322525498022247412879850076183205599893976310749220172174861940364604999400320736032249497069237170092898884415052587655924114489149262642963228797370265315794475833077502796120673529929195035681361791082010529250105829656442633759774334114527953419594736677907022901546180731616007049914558305813354553143423930039881335115379260553703784326970028975353309639194771964434006747679946978219645172079113387718930767368691127844870084361980545518375663178456915332612432090422880133959183415350569855815358722202394279653130643821787191120492047069650095236990357102588680468064355053099209481751598811459553421547828523474382027577184329663030024386344844091539471610545189868173451921126923296289641412370526216298732319504696251763152087551318089200455193187844554733213691161531991787927174075555139441609308175977716943310886180609442362461538039579144409435496147366701203863599775161178348300497566535972471529497753882544913305010649510511846359723713435037230309963283223548731506822140668664100358265973394323713261812053241885934010149645747460756779435831398665342638420006377954693343714005766497896209885308709025214914741740197114270040020814327351778061788839885597262421574008735675285977037191769040013942561138932059018465273663475716436358729388472381242552877082826515849355279049957978019166100214035281625456781166249927745259287302417076873201875023213056199622146117679609433718389943427802020044694978983200042155098431450652718397931578245602724444114243477642935257507608530051467197161611809815883166580218916526231893918360809468834456602065564171991603118008060629075009844126729606962124950572533873709984314689194092568211071564224790531197522070940748925922048599112801955016765707236468872760793671780263881652067421287526250746935762490880257144205362979215011611784969178367357684175462946095805521225168975272417500599356274886493314898123744392254762409105062334542382341673573155546610408398648241954900288941512381650824925038953087287910775536137695658095757572996059589970740537944980878594581362548644899322681301447894136927589103853849873150459423077793088539229106376748739983699772212224447427916741453215616145098030803800435814723639341933945519932541787252753692354015336268778778422968008574121355952709809080810912389058105927655787633921083375821128683855709097224126078196347633395308892738057292960867966638700900471253992841103688434964766833864084524012315417652239727182212237903961983032050187636114210805490430718652234208207460341507865771593206992071570686067349627370283373693469943215964439768430495640160308353131639245684065459183503921368448721395780109364280936706609836421413453256030258579031826609143112412321760100358984579256990012305522173163040569925779196713371622034696491234220527002952898963876182983032016783927288749656875732424130972022734222690372283298862910401594888366125544727868331006166013944505073216434471487114633755853673971157959557421111210726304895666253761311466178806288826968895581021347662943952386099277794050359564581726156914762422530923541823653665069253226399296858689992695032160261538771799862618951637410802914732986705601387735871553567432007462671747985630682503222857589488197737930017998485673597197979138038316572594133076951460331484384897640613408851875012926965734290389996349400437836314011993806549690812685862828370304233823647496333451918013619093840510054715124695061697229955425200500038992104594276103089358738619502754644337666147118737265709205767779320579514608811612106245833711532561448754023819709202981975898591296530479796064707682061776846105526223999587840015264566077029314324292656402717820063833871422347707364440272295688009416862019783535596127699983330316773093345281869781109264571761629059238036527186006587760303955765767356641545472708233117923661952735776116106872155075649701826078709150686039238726639594028109883524912187588312613466951214485133804795412726951152631128258429728523602478753958048670479268795494131950017616393251668903087940675051307213342524163432837651675895622313594444176295073650300709597557205454860867609857642554308085437751379652464869811725791916410111171184698172856009698899365046139970354086109313182982756263040770265665047720256056202238339495184534387377836155541304737959264675265116002784123657556191228452597390997319433576098299243384331037155207409184794869417500622626475248615590359459230351804794378129015632377286265592407973182072198105935932957780183667152400868572835244885079424584743980908200692854160343643856731322146249218844304533212769695134370101531937489385234074045130749935946116987006929043216985303113593350149884849253853449982195154373937957164776065200054135786452792903410285118161643436238011701864514115545485899216033080031145629539869172616285399853059359901837119922382290999881355737425114928729939044115378025692245333668690696915239222580183492011276953117434867981260486910640645848944207749690269390897476281136599762924855965495819055093587892028040109608328130313192194984432768128163271514068162721062727613534492909075049394557339395437337971180672562282190164613070792764392039578568166783560066322241600596739692963844503945696766953543750193366192204740767076392548261916287509992488426144806239174967129531063812633050190391912210852969149139240815076416989576297924633130022121392976439838790645697132985201266859412491318435782624222727441727542942741945213254151743961746814186117962899815108096941658127138188426670034760951707716556154022409383294853175286535519958210106906647334687825541843019513797404117902890526869647225507092325571482755358390600075293531085285340683439226205612921401883940814797432040119268673043774757857630017339162328531123990396779274374333878125254583807973625193073661020138049035454799832674800242296975023833245455551038834670480937124569066627170984706020021797490213623553713381789751965160112714746511077498666583024829385508454121991349861452625970464783607647718418977238025726353620032315593594907275542924904913107918087898347018456038401751686056793227487454608149981037703657414723859172466121862077130615779065205536886080453922041803141341273657330737225364576918892086288825446155871014428716236326185892322572805233048092659055906240387810692483684127944913370114671568016962192034231270664593124528631789339208002693498149802353392754295943630086213474127118078021007642039209970022675006213680839498004581756790780624293142135263881363232504080381826401116953063138878943125960050006702658000288165892297157546366312614708553970018893206131090462823739129606992588436805607460779989518698679690191900846864377125862714758973033199907279729338755729191445901374679902946019687250476969856237236006416733680691004613038043570083754687561751850884995273123169458135010723916435554669739737230141570286082335689626002388294504523522087619003904769376342991558656846108183736463096095695702115138729424525989931964863259391046647446603847352122049018164005617395803402947369585741425693498999393406910921983853865987483710248517212087942466265059268483324579170013503972612125450316834518334627430876745974416738771161897030379333946659467115456291340186547527737658831357264715883244771593632810509987822234911417021992924693166474184876741677103075706083790678205141551492057451553199003456754529709534205449157323338033054991901800727152870057909621381419654154730246631659301301938409687667615730391117570400321163232881631661934792238748427792053600357292481771788555766302639447462912073620006448952877105826955172743240438719248881408543258153919537937087177742509784276627059463439809439250763950484167617648045732792438290696238192267312124447185466824231401180213607909907815827664142312425901388681888932496100320227669753186505103995047074338454822239664829469051746994893878387931579298091437995207303889245262189587576183522028436241732583529539911923665298847810277231065066462723169455940613838315546215856993906470171475134475823752676420695664934095356473987602954265336553785606654953914432878478311322702390022964957713924029262802191936032821286125361259820459147942866189941261661000476106826025025865535619972087692549249042601066755822039772900116008057645143609913726817722485800879544773313673511902430964531587630865087808508185730769877656095394432429119396328242103124976335210072033452010036322171622035669231056770951869948000449957650341724821156518684112820699892454580476083336990109261998248654228317323421802154702753175129099192363036717223484963176166120620925724685255949718784062728591769123931629518309660314948972998712265553193389885442245574121695098286135851761625264396366253029190790093400066955939491667427936689838213625565969704277393287729636517330606787986357209151534335328781914306962692521008898876027415623059335573431929539733863203292543114535129725219693154634230296101849727043586874642086783952708354669458824364030481844246654881317513071833564745777918431961923689101964449792254102426640758585470372295457089679162103181637440083731699734093341823058488911109797751062118921418310285855768468943608299381698907648237199231330358394655729763801337405631032211851459655216897757612056750303279401145116574530381975334316009449558949721350910630767434137727863518923723072715471049270328375736847999512609038080271316001214048195855477558812466895411225395134351282099131921593377480818469931913184998120890643635352843894774006685420247634689822549541964448205503569990461385306905963016982336315929511395382521525015937216597649835516068293877668213972668235110491929809719417930850457249252153226765153611809647484284184748654385662393562147136372572814190205969221784895259601259907923064549729879029828579751079027736030009783028071127277804276208990664711268466200352447765380283571162290880200516577996421679722170476109736859965892303399882286855950939968658965973839585085590234815740571228342711377117387334787987076969481490611359386206716133431105083196962290013115789110583527832281193020726100646633053482314831433306593243772231132296404929487862300803250510577329381815204304567892352819807636889073167369322755867898787639649258962186225479532606847686846367939128419752591899219872195872263454448091722749313894913155160158461001412429487848562875426901320361171030538513218002751302050069901158517967105244168113792691317711683759298289849712576308392688841847503179524386145678227556562409581790436085982291518064687699797139319667073559841839803329607957275162004983140918239766400786895156008139011640862360433087996793083902439720073987465546728337067689625653757290566347516274140079472794836527338065282308076855070952474552475578026610336587532975742515315559828696500432717588250264367329458803408645129179802732631803477866727444597157814703091089213483901463289873600594179850428075908538346787853298963354951985394751207690053863743360554148452693167381060598282051944559185967323508138876033820376103478278755303794221682131014060035829755208364146220374151214802291530366644607496194584275261711093794470579905692047171688784659982899821209325426349527018314276066818531871483309043332481800381353609355840056143581503081852808556208751588676202564187898561086052651864048706259649518092205299794930592922086865195680982759850333689255908647244371760093436595002630509895275362303544541166895936758365046224441818835451071078069624491973080827906408330241606232521570717176434899615278744210252870702019968251690140596613153938376299182134887693395371717980107503317731611989245359833204296968043346330534870069699649180380643599868657161953993588320460011681284897440488910146129436693221003635426518224970253219310968295195085531481494822857920079870571555634964295555100350259808334128662573830989553861623046616983216269558232769677371975313535911740102104188542177740978310328306846742789775033628680800865800218794332361868370871432677103444812225703832781048432401215813509282208852597200678010176204615397324226445723688786494898440852591535506554036755982892022049282564769288735376780168834944355934476210338022655708140305822929000221965748612963076744055039971408562915777297419246879245479115078244502891707503056105685521181355818559104383028027934027274260410293494704094741973150274491957449406703047592883478164995536567990210551688084708924471004828956769475887419972030770148563925902256700212378390042765975945002905489901001468607958998665617717573561258838491927257554409171593275294190686091968305400748954169089050409839648881156161201346068355433575221021586813107486337799077013164606298198009874066281220398602486573011384974808448356844285500882510216069085084258902541528070093589551079855377909026382081018892724996014455599434938062473994853794383387395373255558612671999715709541096293664284726698586238842149013492510972239201609636092377246152395982804217595041555530584849658806770842728732767903006722959845034710660481356548725853422651278173120799837488133484624478420229217624109796992556282466821486708235935093100299531939838850813850585694903040276281020398130646527579369451527487443393020531266767872987147650599269908424506539054121754920480807989599122625243976045209117993241695778724120439922307104424589444398153986677996393558904517455173334389603243793959524939570843927516687898159700908274028258123348483130391773800973499046713146496254597393823666585029616489875930504403605921616877692187634315223216864957672102876211713215189014769416609782967310007073216442919253054667900370450418781400420328871658961896117769728207611421480583178590351288344923442906560957357205784505279664861694431867504812632037801106924378509371168402310098534640843641428738881623565746093822644471873064349396998168937787442550178026629396045315703337008385672053170717091307469609331299067222477503386148972127910262461790798285498902210071512567918717522654869012052892236753659902612477970511091889694295219020251769151621964919619320242907990052786356457572065883084037473358537682532466539319328799339357710644441942148124109092467779610472462972703995860756457436284681746516665698013055910771134903822356880871899770324141183926420619238787745585470632847844761872882328587969033298562883098159956265400508956253357613552890818502797469543073410600998300906795763473965865056235805837627677135908362784368776355357416860697697696997868836440226356420114685094033037904980733230823910824360758108158679392203399207737007000288521163171233260146385466558575896588428905269039750797214128458680545482345128579280447781023392207439468884488175555393316505272230710969580107441233222440470305977941333565953058007920606080447183003873689310603580211188733161327008912969868370092500859812888100517205684402469701205244543473341939539544958111971721401440999509070690772295288613407297407279899836148803797823632885296963469597565654336208774505565084571666625364171108462771704147874013578955346622808179931391682845642359881979080240315319203921801381203928724570991636165242091476326417736337386803734052195563913456018742071242473559783152447149101030249095252626814114460754201710697304189415051137798290359486421923485019553628150780618310641958676466643408791920833792295008573279330312299115170390419429726971516998517370291181725522467443715958480751028527396713671696851386431943862365413349521996327707072396657319522411527244566743779761865487571777594940025047232762016193428827131634199033275803641049904086753798830971981812671800090150572496670904058776754395394911714390534746600502632725767569656393852611088697731043991092349576712090332418352450911202102475465910423953696838892203006050046115156758080892807399291264878928939243363177883209292878634302106787766381890804392147214103082356653854755109163350118768701455674427894019219805457461888314876278074186934698270570075386239085697628566322953388901618305809393870648818488433564504077956721959730211044427814681283250631557632328528825558730620995643435597043807820821054860421699815610002431180132585491936496654573862348696289991578340609795481748105714108528489944576533557261826394569877440769374983794211363283206305099421304166790169596876928442021852176265467481349673502393464132530339717891640953724992041545150441353660449547926019949632835180224663575856989214847415910233818342360410746680085993659968815953340768050813729181490749385742059066332809926618285631607551479813272838808250249424058781783894084428920180967243630155399600651742091518724986579785268409603878248352462209520045155795865931214696662254715703038215084381625859555845006189978955904097329925409201487230670208609783709520311461291971076937869440305853663493779183763643278063112136689402754984654958519364751069297599509385303121074911987927130327273307868192073913817360788011027411230448227131627184550300911608236168235929155923585622017025824426804998351565921179741239193657917538405979853643045491277960602855946477821425245944987207686568228071791539639862744586099826887032873696562817377204162552580595785983950408771511585789827481611132987712871499846343872397884655822393615861356108765362383550916833316490518910472398741056718505865983650787963151954049981842370340772859529388644520250222260620326066701550968277624601105968349390609279787338459837690815569274122933570778035532166225524989576459152040233863913553292625211684518993285213370578739711233903062418330042967839712894818942876491062418651255370516352929344516401674395785812144297279776757776626507126064815453543221322740252309871249778257463032971700854449529169130969799209376392788261339393845935344808160904515461578756596963052609698751069909016448933294382110467587959934706571668653501655189210031176096721284876874667205696180635752669522156205527599967866192613402399176723102234188566123352055572226708886270694739811332485929163541083253853024431294431804586319303157116897802501962320695894002057365233992109940638645000069868005517806552899711040948912825499026126722012999682643838718176426867188582135625292768264851138832337296808842518760204206723829040874866369088161131349738544894729013852444482807577250355421803984768538870462256051167802339521347765020838625574814496860426937732315283505262264454434878684240092267973149939794782479675457469413889901065499673782553522377709299381231599354663608767737774224420826879821722943038368895540123065554878526376624709421969267480610769755841673874084082866250100672641808737351018496571684982402276761924899884884157514395557608699794818106975725630587951882735534714525395562308903015145845784900008125156128588635085213177501232253424827376627905326228072299430658623393104744996730047743382519980052921697063510469472673467910252589206459802079714252409210439867291213722559533152658978747269663652782845667121639853563329484339297473469094696296507157823509293329421292454032149520698143587450514131970078383730617764846167690109061904936718584512932309917752100668727452554808938271988134998276649940292383216235619416553846736835476222017830653867868730973359159371709205455313180724404451592149048969160921572977796786326495493289824747911027586055110198049434636090779037448273791897074522675624905075288479635483297187045357223367827021067933282573043732355627688008812667300405872717064515605108508685542340244510284475568593121429893245522419304659845692825381379043387576051346059129323450814402111195908502976308298536899508256284309216783541776650963627170668939841146923029499828782936625637883330833780514315941901648234455961734373213181543096338350461870613116849725359126431462259878693007371659495949256779797959231286224536445313049713443809447452507874666357401752812205515956185300925378482621666277399068348291373152034988795517433832069848722443446027283971680141755357639465294586490712638536615839560693584359108081850578042770074672998104158632328510203067475630048540701631644810841027591089979579951733309237498897594479118933476696155062004242249352823201829945877539492059961585630839433825741792288405230521469871029173491885057810008065330114296142820066315902580505355695331724822317845807015753444041771238283213073674208654624974864217187600759015087147318316132748923683856576308309183001555100766898478080021546151236234788607932037721391877855907574993265461113889841116257114762414669644822531568454327527772904938218683881334426975643264532118451450295597561739004492898323994294363153257177965392881835223103572903288503189700918721333011721196701582733893942325846607832382788473651713297326010928753244399782103921895333844640578909919233231692047195994123047641658722834357137438707806418858675975934871192230802088173946264910821714012123026799082391633167530028673643464406207409563604645144446990658353319059999336458510869112682176562897026376049868497881314038954305963220060700920589418312835090024942675290603017130015495125780145645322850433412341113208213139149836969717822632343707797824780398819632560993542291304533581106733775589996167198097214499130589552835259444210613161869986704783621829189589585152844803492540576540392204757297286493109254153112918801816450217762662884323710479613727912234544753996722248149258660270969913622385055604720839970702887311995417803312484356728316849537611703427142470345134032329627313476816724772715091575963644167285204569550555218354452785049156426985526916309920672810703689368406304509965230593509981525721471314220306624946311047991897985532370949625767880045324133570253492093864880247866997435125891741256171547718215761326894211362043508713130608085935793001152164053794244133915519787717934109472240668580513947583358455478162781610489597898734609069007627119350629784392361595073595881583209869193562033602393876589719762344042581660461461093219225360387604958374133265061675955744876070356692384028435786079634317912707825765333942082176154392340174290277808738058715274863483999226125420391155892188534750103652202877722248409521724568998002743530046852440247889066460483852488226544436841984606825729177213453826613358794375374147748643799618313756446299937605586216088212829445571121611972322743678280682639571340005992691234585287595629098893062465925047526966826197490207840131160224627233900733898043229330509069559581967767765175366591836063709450736755305344279809435783489557609162763520778066491517658051884812997513011875433896635382179767824719918422968254786114140140165989857551119491266260553312153851521756774463565351117448725911804038684409533565139253276318056403102844167829401436614185742365973803089670550050687345996124292235745551690979651469016666595856805658950228286547287473832144341137980069829992931989024231758604203541763917676576704448885994594640266214413853113964244461615911230076962811049074006322472590288305352688934637943415130141775328740674380925512793186148574931963191627153760285307099954760607680946955405063114772872012654563460309492074639695343904242814131692655423931297028170520999754455665816799339360859313254599990556371861310273770523049618435135782044477963174893471975893726659764640913697964624465173352762809044436789609743359466694534071336624401314407328318605873627050952257179218169497386175284839692853374140303916266895510408989783628273915552264311650917817750945960797049029611826538659273216427973593439501842857121680849568932777248769623477121488169400524883192278859824400643637834542883639468759623954918256432154946938971128918954206244285245450383853400820635761167849041015069260999249212527913183566566915097060766897744579566211261108169358597310724208113940200783460141739549877391737941572365631828023792935341024067619890383256717023361458506777146972408390586548153017550160152268293431199817785272381390505095284970439255396687712253417295566764179576092165666638760801419443645646313139950967789664553900369954660085057689565636375043085084956180644218682261631804145420754003094986369220316998745994611634378984571377378635751111082055839260024462546172662312980298649143594671231770830409299157653820752931250071838810206173414237909780870242027850973474722399955116146436417356766201390129868806160780665675784189373289769903467929008422500745411542755282241638907974837776717901384748310760731137632814139917230060331057697171014541716933874110315124756101098730640022867607030581892792265917019165573177741579184798118615301396512689784587058076846123161722345643269513224803577309037378809357383183936855661097918066019483848653225371750524929885276462854317728092603036348148647623243043989958322536692300697305344662482111391115716035389061721805278426464148388064637677429579763773291905669778608218766831854126976160459434770953197107641600091048241131134859118392822772210153789925379072211400771363284797063876890204637066653104513147079879934676264311715451109832889898058540600873502051138099753097644372308800578774682055476134258422800710764050764158616239904330804188131093546467828691500189659866200063193271539386098042424590595526360207386341964855660187071372906400364036412574762287600121024551341111822009863919299856529747940852296252147680952667369610490611030072955606653064725858270155075730238844222227192383021348232085887089610039826027694626448232184607096216014297089973586453872736533892199067789082966886418222312484043398161448333557605562672366054521762996482186808364358613525415701936581128068100770978528203491175894024319135413299985275711776770635595943122302811727119453530631080828915685974091404359222069907225584888920949769173154726295335714287879919967128666008002656456936002605013881448563872940350091512507874172461806857726460438467576158827840558094838583151504370235186894259188601303136557635256099580593240435669108880544880459857083440402875831313841406674205731769715010651545459949270985818751672517043041997369728207495933494266021950411238584080259403723324961136772952818661681695683912258106457642612142883539660444825601847368243903054276201364367068627078972213970441947296407758958733447179645404952077869635840361281558419750741699513012875647144683887807929087450988012802235082638387659627264310435467775652343830485450557884622180844000869660714628983026248119156037223580785825413010478197829150929515436843366404963892553249366189648676571591605514018419900193482928255098498449618236617674423011707580267344030801073875016865617386302868232914634446920164623786259139660187378834077825708237032775938778280236823893902551385863325252284533745935734713631072331769774643603265708735180355990302901053878012203947409051087940599517942122416450030906381141561812309529896620788315201079938644174309560416174310447493258600392098613626090987154404672980105896075325696305870591364907415824349584098384946480282991085076379447313546408645425206953254247359400024182376130208180272980174571091791312445898630035819333715258181815140140260677908841517981722372130589978853272761085641951890660122604263100959176101228754629269541571982348492431489148716971957230023993477845186243938500375257884944281742309682869813947527136045777123201948828304538926361505345775856525603887116160145217582104332333168025934081546653833239423005747222398693121120092748117867246295099303290757834345808381035395863169187212112417237449286795875532873732354412896179503067863438725462040594376008073424541789612145824777546980129776165474282841355906016341804544737837243164135479137654441474849660412972445816140077636738878627961319384729016593707424084727420426486241588155432089787324398080114090638263620000058518002248248775920057313503272179794575457578935564013464435590126600011410873119184840062765815098547102468658052336411194060660833075117288043873616103411786721886670908250872327835237420501561094475396327159288443300555188068631980081473907585651662136595179141008684232704742306308469601291371456566259504820299753272658699517676460698196139306551203385048584890417204402408133214444268231836167791197193573581349973313888748099568985926251365279786620916685007720828078530354606379803317543228704351397534484088990834306084567802255471272874977901464660734747122555066807717450474193534365564401280750864677505378578932464430928575928511154547961813672797092972058561806541404582943965224733211194242124072895942369174914637165950919311469745334132864357208817865326303251744470249533132321645359564555499036493431976396962775743951467455078432579702338713608498780355907507304887243855861846858822549394765911007294946629975461057886382806104211721182104568674447916501463570301689772605427846307850788083464852347992969009411221162593617545509292645729126938157648551265794365802185210240357011179248838677879739053060251180378664988163038227021280447541238744606118309184632593255432515724110964099898958217418671144152341621087067387015039129350958727353184347183504453127407929456937110849122593194030426347793161719116062761744596674087822377601827246865788668667990660430759083071390731469015321822631256295864666023116258957848596731746615497346847174578678696174373529744627028802379610173064451905289754091370056821715057927156376493336225946352395832930904325000632110676917460145931079382824915833150352653650096201969319402276088074115595790105438597695047635924305839107897794352971364634387264915104999301007022776720448864177170519087817784130020414569314399758215637528606992795896995544737369566210633530237442332835102907964165368413465268793612483520934364054844270124179759681280966322882534085290718592104370147011158756387934132832862845301256959518603068830593137446296040959914249290675415511090925911856603011685550433889804181302054217816730958353262131065399890252981036950852679078371164067677184198713685755535091819702389418350971399367194449134063116055345698353149844523690915582613160715578669104291020847952499789191930433336613926001377988227175367438766916020012059554136875428046023647440029706544857623354231578809918090925554624605435424963805511141275820665272760769929144343511501703021236888191492368993709788150756557502260678688822141670753371706749521247872444599178571384243473523351399330622720925041920434871907026815523097225961440860907094990070256253421757992077950373064158621480717467138393406232649616524905343139376003980066985643327058701573060273105033336792629995493141098459312129148314685113936418189161596057456024093427663784172583555036862614706626180936020594866750195558476150475297441559263564315480719276604844399883620586870283400225299295249268810295744261285666530618935517216771324918916847021650171835421011971850292878826751051450397925850032181310413842213627535603721170418676413425706468570174343556137377356775257236570739847188797830162650629887150330971592704977969914349149417227590843735793257612295854866727439176035180372339132302534003985182290325705936350707540115547493121738331126147065660165385803976021895636345581967184599447650134629003711948225225376876828606521952556215231955269097051058627168969855119609041567346158631681800050342309895845953086745828313113222057375520505007419716160276707206558077872124361249052725983228512348987252352679197598438901636853486900301801124611925159927423458188200362026254119498718671589442759002845525972426390667109847735522422977913266243004183596630289402653157295153713684439219165250302557907939599062564492072653992893683505950295177792277016959283207370398609681321817124870413210475710758838599212173405959213391576980194751436974869485829588715657291373836653257997451810898883688704234071249429432163117364958591827807248985926282013157392859620256016281339632951152964309507113076535017678757362828718065570362048650008807533897326978452169811588556864229137625116828848402136261460652578965695784879571480253750882803032655602702767873135289857486339574604229742275275944840481945164190623563317406475628661412440092502424483296337611193908001147387305197722471091335691600677112219737504031942703221800936249982197225112324283207143412047547503786297165467765545897096885856027294176604559552685147819555681288706592555025137646022108928559013100194423008045279318948498963036673084269534169017524182164702445383374604976796541622727427584741908923598337305512165021805405378164318461340784374090976684276119167768473797659197986937559339470811112811380860873564633474386155380521941554397437867439773709875833692765120838866489041004279661498295841346594508493108825672083961666365469062121666652032160401967036951110202331581370834319887217682657474300127201030800375204083386876869740648272448376639416361070037496769784906565052170292344070786282723297015723761973479883703320280254176901407121611120974763144782883385250406632772837659557066155878883578273516643840375732712149711069820946571803879518689099896124096097060902577717283649748653795686493291761060180432569533256784451717432168185177510467934725836954421851160861152310390328908273403985248950622942521999895539552824548274674807725733448428379911872814372582326635638886359850193247732458183446309336053288011257760648658977433379911595578073328315881780067978265058913999973746870537154644920570547970599355274521174337497956237551859792781442990453264427624119892449150846750036064733234320057710878325777741184882684629914439020099531601858284620776021379379578359307974979235298475578667982284160095853994407203513744900525994447165844883015374356980406395076112825944521956388854381729630474575656075346725397943864988921191774711126330125105680245610256233240661433319363307069579088673755755221528347270204959741539293095937189067251589158347677508806864510944430585621682012408426750580387369234558692976123377024106999318315734961400079727408626884068570048962460774604497326467968729739839507702763484061977577026144830857202747557369351480085115974388743800421386952365823997259283958807633704124867866032779111543329429685823862248498336739227651368954340924609477408730249226313262795012648463594517955771711542045391905681038231050941956035921465166539119835951710147648757599909292193593587623009498850425031599909511253923261512654585777682654888545209859768032716262885352799425027482780472819721859637058609499602180654691842973230139356210106901365319888068118237638447879834938185355621402478540933774698020032332319151816427186852424979616736939737993210786760441693773086805654921913433704626117619612393872245964801629018267282420122644087236270965583354270602169878989943443007147149087856848963971360469409914829771023961689430295529740297053673822528702951747621975640738640180368811880661250143747630379928383470572726544619847325970003396671689286415349504211192535961975145962714571595442432136668823464392731601256340453123292570521499134235963897101969696140514456993037484628356947920343106893247164815748502439982233573584713395049469286670646831525385093661260851616121360578392492594517606849598580899321604166933034723352873788082066633025052507009232776884169093315397322177457659336991491822985309200912530308819512785969088322199984160575032757936037182438757745678328103842128511084475151253245580688723775768215518929529171269842207118831760309690388457369326584188790479437366756477997782914181514748486683665068773782259552463737466250260829965843887915035504966388648950329794770329787606094829573738368100753666189635584408365103926933401208631121553317366212615043244357684086006323750168838610359552306598581131048540994262451437338610292185619422863840515767452108855728388832933704060504933546699465395746914473754400788747442729688649405053382447962543376976791258763889319552000177456568491229161850263377986858647219425780881437952018506828730180772754974291077073198236750451120488441363110157458615723535101869633271792532456268914982849568295684538744543853219735141689728799869739728846311463260328652877571830986992440580217800833399430242699009831207853773705452197156805222349907633088457440897013470067842088753070876563446448091686808500655172286051394914968760082552825876261319951824741050522161367935116081423788934843472586162703849071299766205805137760660259663179197157704887704603940791156615777783407429511262145067489276405971939091815007955549799324583196440819192483164061101558076953818438012235655955346193575389972928287100180964021229626507209657037940157811745541029544780173989717390048099956018721239936377179226764836113066499430012891952839388719715558549714394325268315657837619296233920090827762743811347521805124635420775440157071029712342426851669139209284589312637193392239383537008758416515792975513177281390236861712515138910413113179038572278868499738565562486622420290681185052841342578255805501442152380548073110868162226561964012604520576937121771999498218920380981604517510531072771462363199382350832646103983677218892805840920911496811278146437069728081146740965523571927049577726918384499383475082836051146874067078038418025809675829453858133101381795640074814635305122103069520708701411950745740750994344899385829755868599054079908511793132790156279013279722599069198545009985540952606298268476043535837307302054779857548566327083497391466120083596567652930354093816212935489548165749526809715245321058693673868835768440972659916811857948835146066129376870344929591780320823135953786353176391776692793448143685199439752753130665545168427751362393424664405895422363409747618698211130884151515018313545752429658587768764827267840684671508389609713732707005922588431344947396307661790524002186850019349262633555951241468004533010937686254726729023624176403452887996633252827904452110327296197180789766972883018630277237331893702675410809677848564292754367119361198217867200353823626073441241498215388949040249461443123040987638435845597115324810237442738450260450851989195865473227524422270408025594408223072406129640435415206262573450786409523230479473874361418970694352681135253032724232694638414101701593372956756973049703748254563289935673221506615701687656858378393583451878230513897990257557598622071328821885024881460523904389584231048563692661648457071633126919034098456716358266080590952768062513682231998061087918618176330934668487400060442556512846627300769115078042084812187247423631156501702315502966883087615355576454598491779417108144524494219837084763502205730465325931932419752944928419427783156658809909072669987449813438445452112607855675360821908370685449337680085711555478270557619546902755236837890908064064600813798721695365244004382437307129882250726091114284065160505142622042189253091432325493949793025803370899367501485948835094305495668830705148021139308040300798607938172359684483213890203045987270900336731068352237909210830340327805551602216076880362700802400054523549873742755544955341290876331744394664837896149951896276261441288651559152105096907588353846276204566111589462590687120717176393291968534272409242541428993619126014959741158433468015393543925019773602346993593651677140254591053161234815801287583424596742377622665610776182056841575738942968685021216566820823930306573294237324440697754212269538396136801303199482671508669453832337826030916117971335016516254506978481890519453166327572220684954149765932065517978828155458727220643822230710939942573085664219581431650069805601024756871130084452104832427396640305911150083447914212401650767985798528308719628139360735071800175373840154043106762520558305030618962682284413643126941731349422731461796361089455358394697285472574735819432551892857404854562128565342173424364187074484316724519342859299609057293178569383584098236664181469674502989696473678341787720158160976154999882682045319106542979880693891311015980913376664310183981215699172931882904936547155195898013450449155081481937101570475036519521257655606166382975373461230251820568831112041936267882917511483166133522406599401204202782046799967807658350059837514663888468699201021293304438298351588944235148450680543195685205551459997551313135311682600510161204179161341803302336934800233340919040648277654668830357184012853902930428914595443458722944106081897047855080556702864050437446352780792032290120866967895547387324437928814688723978349320832876019553853535233729439414605380301869594298680543931567291216061226006805169310050998411972815721570527705215412931376825972028372900907259390473462249544889039530643404505011550515080576323027614302744878112502235570897370734816668374706507213380981621111119801039273364727419018336644693802775030977655649132993646055944331468428432637097252715106394637891969662505547559897105110846804760565091093634664183909062648876319825122712952288938815614484703188016925319933610482796168872672955977235370040639574041624683096972368282554284224551507871936383495753899719124023830086278490214672226349220226801338951411732045668422766305866774089105126664745209210868004337891630125358320260208725688356496916898621963394757528753149790380433509489169722798150431540008992265656016460002907163031657485319324377138791708113573577766450858329899250807844397809195323788362303972274252015386385601844943432682700050830065418086440990354786924125357077531810163589375776532390539600890995849531652396446164547980274759704573237373991583557802347253578582455961984884148898692032886832011564876988080347500386427680455728982047857645038051882819350005427677482296323307863119506515545727169551848860385191975463250266034347492717791370984625585147751886129950671312683679551411209039782700018458061538974180861631572623505385886480129800628459123321253339744273877279791971572445075369211132812689448341281786369174093039394388542150149789930420447829337906808058452162722860070976259634115806287677405147883864065080761777605042438934869139169376650768768365260511496346203244089721688313997115126510158957288969323033658653935753278019502205414934777763952385943300586363441396058031152513053523721176236405270639394325125452708814036203400770962137757605812893872044983022764249679541638605585921090779947963841301831229208964803842665345965611709326498884628251805629193925724845644368934590002692967694844030614737842358020942854775716703527589481961414221267660752906666593088395731610657073074268365329978817652424574025905506364214771052034744678800359298973798320384873734070189687943470473103864031160242492399847437536543750266756596440525138835070915130266950551243361636428193536586238797633555405488407344425728031742636019239097383693313495384934750733320172334936272911274737037941107411401670945958633384003972720181976250607645443495757978751060584801520789336228956876999151119212967489256259043606749203926840851780214170422880596995207548860513371299153776305403647570574555226455456203221881310691103825299704191488255106041296301123369835549441633708835741246409446575786407588888944397358682049687997288475840573218252776640332717901121430689759468725224009233460085329743430907059877453120384193368303489521330182264758891117932202597358344912910557207346740951413578433182615186911637542505002799189773223414674147472126381176997555672080862277524129869958161064372472004470690822876973875067545035442735371793527962203663873487809838448256807434145817405402440158766174205081123750120171899669921070081215369441003251877839572337795323488182362602809355153262204715740803993281770596413858868649581655892210460012398525554837663686326996448409487806910647117850673002640765881838102865446329325560928812951334688351675926750038207857566879589040046899480956230739229583746628348149850755869271052639520140990337596676744696835244330035461406006848247088841989849971825489691429074685188690770064493939531898606330988613224789549172523901713332920088857547192118728722025053798124541187651735456638889178055976012841628503858075711617730508388639722884063640879082636238195349478567459436485799133197239283999375363401751567741577730256085375523829785148991167456225215053434048594508633391373588061885939327342751400954914617128884918742853537775906925443479002723636058970166249128856026945686762005174607258212631838318269208039485560993889670278546514171270253371516790262410910999656418967325855943739002978650193141636717204267074325140326105995168676506283532227210768331826513396760815466659477325191528722570057801354519846442983422618740913696416483929320906113519859624519571575377414638038627758776483366810316004917266317730425944314641865233514875855414382948166278754302109592063369934889842858155525147829254804125435015368475172609342173579932514641562752426055538985643432252382087111557414345244664430339742492966877868376486966730232707298450278925766969074032419289763225018046076474203139221925058714056139723444976753974084791908956077051961046557195810558327413934940917302589950294559849551594168966313120350392560793885115904917204560943303365700979992471617901427564697537757207561252489682437776296895978692485177002422805452574673625731992968958626297537077381410957546695156691104396386498127072577343612363024285742795669750342710701210929106601145723735224873975081215552385506022839825266169083393690097970739273915873723445354522914655289431714414034680720399879660073589395313517428583800792267966892036881663112785865950460723519388135502446194466006273895717331445719027613393083031852205216076990925326294015835005856726499646690194455635243266243940006586604254091851995866426128021098496880739298094418313283219004547356075823108449699679050140162162769888281032310701401927587640134692382642899912397316886023158519354245199587737471883954325004512477771223509367068268039626839667023890808796327209439749135785192209393503742131728118078318780002041307851351398283277900104023031963831961878285791508176100483342023768929720700095268892077620896193885533217860397375405286529042487050259265635730111470273132051154549948777997550090891058962205036217971335977483532199290772843623127322653145460327731366763042398732741268884755031899250826362717267515889385500829860361320553848743281729836029801260479016440063645301452288470526625266175306546020530861989768957819773705104728481669418130260625320017925443742658610971288197230978607044012928320339203962628640006478181592891748491012769186870942026164521661804860887171769338179325724600866104322432965258496594101812112763475202926053690781907440207057002453094626812180072690043485720296695382718698353951529261829790698596621050452621281938409162622324042693894220321518273962548594904706618977557160231085902656908451397635975741917575550998729182430092226221471852269997727454046385555648936607127033817983935936242297875222443880711455909976202772372155210645811818987710683506054000629683427409766231719454026959700945612486068114569514981064900598129095904596999220674112789577303141626426112155311293776704698387532452413060747620373305699477460432524638650134709746350229712975998453420400277438115052297524789697300512779930316064334759288999846500753571246005986727406474722804718289311112828021235029987194601612522944399312216333823846070587217487232807028173888460371669945294125518925468783759596293667143114977074864170440789557567387919807139362960532884351824686765149353781130138404869366468447146824117590226181731113740299140600009103759013531863247776429007519492266731375398695386391243375030765557159380848117242029936426440386256554999494100828252621855846440247752045475071526805055213467389360170792139521336645082653376101492825081685116205030417752908677696030502289709290523074678952415838265321426741215458126451660321388407941952274074194035335075472153549311688033795105437743120957870099808622715694920457088265878859647145066604184387250550139756739936102201903578717353569540434899733818316535588381651023621330598852012747007033919522913618802595376650928551556973147371906933552869020671000207903340722477939698644512633591682229227670658411151790048001497564336935093620895612902240617179967623719880624102566350919492448644672143825113051755997468789277550968548869460408320707287984124537884638460551571977509618288451816922744529635628967956977917033322990706175317554815968357793253542113338156049408185456656484379502657029629742259024834557200783696610193251127450685251204186862876943181037014045830483499621561491660701275406895948938939181144224125097910541365374741499494987094488310403027685482210800252000029079805752335748386264555432552200570233866255855187191219955645312915850532145015007820317006726503824863079482989466023975676884773709962048891849418930328752240160584315827455613923714403552090468854709194856801967062461490207200927851256329379868214128786539590928681887773295372756023440124591123907754998928392648690965671965732733295850926346712146670882746528753773790229677474079430349996787900714719728666296797889367843588868420119845168233858799449165475818759197658384481498021039605172060993019250365307748178915224673305031779686693233732150436491319099426404085448721834503149372870221441705054070066821216227646543243940809233220896689923733650541151352381539376510157082351778787689024082360076974290382670591080164936242022001963461993962427854583763127806669153205396850130386853318966821248465510305931972625829333282960396996198889435068061939822112385711622868797780781782600223653067501718550726671198575436994020636243477650121524493859588249762084081040332453886283012037030428006791080985351180015558092423695505541013527505900164439816011564447901467289976953545354846365045238553971834804802082011998170038189571087357585947762394916397414208860851212258611905534793978391294714341841681222003808995831562985687146992903365930776074827534017571463575477051106192371599330833973107216990709884307509691614795852126078040780048968561420914902391618741528978202199428498478186177321193363566259539746021849146137282113133473208478152790888004131181433660792516549386061512127196479234373469452745528650773009714503103465024449833839011202776088868086903628059174698488145855281313110097583804024949504369628969223176061136820305055040342555958101506062404555817495180604793076986191599796490357122426771494368173443220886815313895533897357999633726945499800669190017856825641080452407605284099933747588565000557776419977974179450030730847005578417408696672111117054350682845953944516113403755518387391866697607352878684903403379941671730181359004018014447777868327080440575759948001825409528777937985488810347349235955803588033458112545888731074483779414904965378974669076886632397856764511698866503574654281296349647808219612368848390182251801230330894698820418481976412012878876380021788089253526390860797125775830731656185050113839367804332976493326163239968124348204817893380633075036132535806771869585850931771603996026074064468669243335027475601754403340615167310668812838105682962396074597332309350664125238922608165068983918191850293882703324545309893441570445075368304004372196931482323886056342140162085598320086260145876605933873956644959333400297953294124735775152505549219724951759577789581808535080936334722093696722779961778048121073767344550424551067594257422557439588440118760600691127609881590674672720122230610260877057097194905626398742401984037380379359484898746026444890301791008699690374284223377680248253410279647385338842267424910378093624697464238758811090667375499634533602561264595850307874805144029147146842660442524330740979502867418861727756671539663337647197591416552821084957780005825985062230836433710081567873516388129524802786336992099816514224140410684520301922579992217487345008514057437615221879360380668630507507832467011234600143022166972409445020072866997066591428491758702503551407085678727101283589732054511727967872525421274631913847009884437015223323476795480391031187047635816344025888302729736365756757545076067937275611378599352888481058325919283837482179845631617671843858053232387907977794966951576143713330309429251684539184751075786039872238155340440705780278139403554377677098540329091985141766805857681883724216531471625625121507261100870528112166055766485829759572303797524648255318468237970687312043932655428387341374977509295455423015370214141835131823375695088937001888806118960126387539311109899275171813695498274750922351629292600830823369228097374115985341915396934237573804858856260515232023038774054978847106072887575701271706603903317886175967661445546004187098024932500238276883092049651260589894573984022591424711575312011330600428664477462027327251470753624989334618733940158343628153457515489682261806350909023072380966129712401372686024093130413176230983956251071350761307182598623777361432051269839088114295721140214158914555471699626529617805027596201212739244036461026702045405940809186592611276997151457917694638409996965964041812767095648612188916456181685391300522841032976193616257008476733949709426955776963234032845539535352582749366558102685510072755730568684889986362017632937243679899324687391938242189040410754648282800989591388717080867918666129574248265180011923192538086332038073297647662392519114069115920441930018861962627378120232514503150970444086306899178522824701550418825555544040867414876735580121214478441275306936674831212692350403912284246280050689691191542376291808324733452827428191871421264849492589525585139877900757931171560716045650791768470013372701409995095083093502129044257282111506805357371458973010196174434065541003898993148495324651560700563392014103696240925431191499095847296544043293305962134774188510811241980023033143234108769393455674600003802985730639861541721371308505407148753164175963593190209373589042044171956212625126267137044411903400133520429583856010873245100098126249568231736136916796732654094265159514897256778435029150869491809933943010367869321548449229622221525357981850045076778763140274644738666914535432625186510403852249216369083840454976592981485501339813732390221700925273708961964204376457035354791580989555963245359106216068435697954428778641039280773223102826858822360416961193280120225220748427684128632696547448150496518706845542327942771366842029990778546793537831939003849062763968106461130053490066953867764790403298952155474428565792837522302151031615876596442852901214313622973159661254988633124750983727378851932152882785098555131705481417843155192720261485625326428557967633368621801378719643509821878508309316468019813156331126899894131510806428839959816385778439913523743503715162128433093404626380731027469096425782087245727355874083474638085767446497721041649547436385223317573507843104890812104856304648107349500020753358344476786892355617634811310008088047881007345475503411635510903043566425405983415685293647989106917547769135188107357266002576230185783930593294330525603852253226316604228027731029159969525057154691119392657245602536005900270482081909856399432409091116552077823940449707666935508927284152604069088325024347399349241776910788057876209345012839228958370431374298022923258530299735075547064277404588094886532053089900092746611775360187491984641583460175141388488201892809282688034202196041565380229910972395456642775471683770748950088562666068951279236995322329513904099683350515680656164261768468663909717194258191074245411065288533285846437434437032417900991458181633977929973492035446558708586396686927532050669359633799392925784259338550194428188697158743149405726395866531612569038246445062385523210643884767587831651484772083701564909182346898964743121883344313418766654259637329853097936727171760647168793864797305731607888332453292254624606994958336862024076349542135214457031185335076958446247238976754485811182185742850218554800037496015086185320886400558393595169796541241445748358808319439033077443655845441455819740257411317899465374205386296579457127616569008884111820556007002286472798780457822606870437917092854093970555553916271068436082508535109358261118788908456777274504895066810664701960436302345045548680277444886076912615583307906496083585769258026951356477524470007227108432877800376699872693746646733396185494149891298040227100359391951693602500882767105244813922780811024636173480575106091058776829320581698693656985338042269873449053610733439294890917318576410082159425112238336493114144975720540856938971999917142873926018995927040026521834455114978439775320453658560489773891335268622156305536318432884331981150936158438184613174325266516644634877154353701841218198950595470787532595524655134223510291359987145316282952048786740320241290783750314237874708080598994837427755093422931168618797993517259653213917889103499821819684136915544725735985773234177607353067597315203028723039739496750543997966331147803730435708901367500603075539337694436044761108623300949451344293897193791098968674024722425315245074867421960724996096597804754407101126168002472889527854047461851901302585458649758911896623183191297821543164916494669533734129349741063946811297862805311429695445240713577621657010604510869986531461809233046215227962086577187402582899448219853573751058120327321366182953543758365677317926662793482317826442984482370448114926374634287503151221589820225298199210408062905929694375419802856884877094888242781911704123425542464494140970587125522983886776126630561968068255296198304089167635043946503905228576907936247265152531230197326954417210969796652392606859613614062751186524544023955534291575370841287746543479433088678589392912584396239920746263714926846128864898049403401858993027750397377063917766457270253031822399806841920008212981139647568874287849397775776671789983864884432199977818435307500005558365226699585072896608274753192070875676470759276023676206816188784761856760649185358390611857385712503988604436500769040627344314994498183502107009441891965787206961981208282626961549702740894926125087418471719035722147946447277840329587684832072881046137463005313901084924520539036360431094423806015626585386173416728626748661391254432220135629150755719201235444013315214082301595285481744173526605595960648841784908013648468827518501014581956939221940395327571044506791003793761446363129195933376866729922069495053217001842711688220080226910006169804584965023592518749798088394803646637429237036616109790239866157015304133507382341245442285905006623606841967096947555514076033499623487779825685877276510340993940132669933941086672824118002411632940105621252810919948235305051280973594819271465134859738394129825289795300252018792393578101820674169359552012996053108791206827011626715507727978270406207280386923616071421438835774010268508255384160784539033848323410225343831961769341490072145937775198951694260052460468340805112544644615437496427621026340333200537041140333205108621913800936102232555808482210746641730381727255675268330902029205179458189193690103191435256073754839460903214183293389417373398688109725249523569392055785530180707972903074697531270085782017011689733867894135352164678484669449410549252826934382574962098418500880779814461340503707632479032026861643560334659952684492365728253761109656957731952079227270891876092873544564982118264130081114733373929278981274659750905105685920533197576757260998369954395222175739572923392710593796877662373693339218169929152882509556696647777239088673556357369054650448376318120576120054704288034477667746765620141829844027196955299315079623165062971555621779902014307825182962414885237499135275419231669756546142254541011519692196371968007182008694172590788691045926582606882913904072595327415588747438405253135884097007237412440947327726084476132158475171370998464950559834563921028950720682442328439242221225177614285239657352534137266234680246777960353788835945413098431659701654963485314063306987348110880503819914465350196631660572333923903957474496929654894567161657303205046134033457932064675374726354866715046537795883281337901381246899153666723931211741197620765792341957571174924222314624917440381822303650232667682533166057968443263177582088936061997480154972279295400994103546642221529954946562835301068103890572594296379658300608373447551734093280610783976789420977019832025979911393052263101036933665044811688296642031458110073307294901704229667212124448688962076062848792174964523069343964656570560839584254530391291127759020017150875180925772323105219156212460782095693477134782976580421747036723606629716918521448586358066412249485587474566661251497970567032816428814563056840435257247401918358215119495387546410549970998006941768371821393650534045955271201575039230613561728577712964785884413190555032629909207755241138748390802742482377115298013365801638782519590883907457353760479386960415667558799408081811759629728506011996003600214176532269290785026907863898137999458444730018172114453955206308651683543599333138187481078303958260110794537833198017956262979778638414352283497288198319640065116653568095999721997941934114150932892340560097428678341707700407855373047656716524042069378341206038307002240927318745347026245997436915429190179272107110380473313708192647139180637005534171472451304973404704464082645100093921240129911744331891555822925308211309083895691390268366451093809691460145285169355778224758588617566514887996449296947088732420493313962426524553088651825713127213623757362514174019939805480077520276507170867589429748179883499524151710924019930906522033980689328477295510144273347240802307363637918139985653379420837264947245226581043797820675340011268595862497949928657480552306958232648516796842173235690485566813786348188166389387237201026413574843479261366311505812597560727689025829777169369979524283141437808417155535173970480323468549576109033881772208729652844253409056689207200705667496278283431009047221123368385795773211336959747699993391477516538747470623552277825502230194728383824467786284473813965676043442834375999084712834533631545043486448974895756670083696510784576335083826394182931214669655462063019936887707970236249697823375579041870865934200376371090162809138725262247865690093047125403184771920838642852340716200590290721125643309667133130451738473978682087809356211646879064906610439875942272851802541438773341196980097629496923214839637053456129751632198217722884387544596267972693095378080235080401134569633459101413196337114678156265935312042332587504132012169900865991092911977074973653162193039747891881439811615085471260795901386059876042321939477573669849291156637331621063712474985853890137721158798508767016775366563024232883749477318476828566365911850287138868773855901728419918704589700805315168701041827719308127495441214596962745736126553594522395681448428005033339576213588267505116800048456222546267594580927625903660650021587334067236555580495209433570423589876123811169993265742851558542103297594783163554776498269270900768931380053576273676453900939661064989632448744870098327971324043948170031718657987417664067268989514422810962444160129633670932512163353473967515164626511893989278960584008975062345423683347602048565583360875738799707162934318702599244157694008778615656194628195578989994124157013681559372337400790356491151176766389342784290471105307129952329192823764175998661361243350580681629144125809918381254447777236635801644510721100322891008122896654067264820098974423379883541134687354605785143762401076702951129130776738123523773099705546101791105111650970516060134746826595744386381512100506504799960581817007164801373335103011577074106949403445340508617264528495668311871977680641696820568090413653645822325498343486844390183051159182171850842828948820692849065859530331912910376570336794616669144779790131399302884419036120646937488429549710770561945234844617195616301659660790862509857129814995733933427459335369037920325302517444900899659403546717170744497593442682405693556090006196637301270878037651719918269038737913755855158727340992184814274314984285548890443820120646553331089675691296650308681813345854342521333703823097315462276306417593818583670357092335297653834193411317759821517680415706173033223596976217920518235223186484513405131027110732092662658514984259130954388897739156732777112086615779741642818681725699846955593178453612114525426446174080338177638170849158299060362641136250774425001858584353557215967668453943668905710157069092377191256011678428623227606245590882046615705456392033768188769448758077817295391461757021101962392381235683312140222634417059822772689447103761330718013520610669714487533548514905331003136829368279314400159054649200778333734802509857347683681687295763208496810302894759692321805407755052290723219602118208386266958344395228034226726381792410940573211417810006564108045336698822596858802547612750364445309061454724944514278746524216567672047754626111067414996556738425763757488718483235002958435120082777631534464699132178864721181730263379752318786865486156144105660296401032440729600760876255609232226810416686216123366068516355388409307016301565076826105537528004003851779508995699120143346052006450043212481927321368559311369858081536566026793083447351272026224304373183155325548816461493867261651130253031651343856903716614253381681678738512062914709301023891535535687394949893783072330750372594977572719312359620214462029331890659154332603631720971999597427285380022464783487739182314428945538299545362163913386651194246909565216889389175444631906882782693565915008162860203993901567225944235916913307676146450920347621442163802939206287755739231088313406098630957618700862802287838984497992278500623141221326173759266198626525580108508146652605655078948864470927924627810752395326913963735145240783743704534841039069135790370721876577402612443798622117079808674116411517312614089440689260868991753884205868409602089374939448903603622831676939829802706225308054151710381774589825063739584994542474758988537585634779149516684554754051189285563332062654527389212301073521464214999106318159397393073780030832294819109000472286633446823408884714205636279521184134944352552018207609029780832404063941278509596648412784942235438565434381851011443841656031018015411807857412684566653484489259682802732258811025339323496259240095930072298206922552931272776565369203480141241767964313919606215031823412349243059359685331449180710056589958233359012219058847934128008475392043326811648338342584388389090657158431594998660991559967548013852400883482492526514436638265788926935090234882009463664367117054258736668169553079578469120985550048996204765408575588321933891874445091820325920506804690875975136680935032989499519439267713407669314637221899411267831025874836073378501147727826245899499421451335662077521882546910446071658124669805623218566717269300893754189791916741841423996895038182870279831253957736302852459796514744640915468125499122968863035090651715538276309609592713688898312652779174598905755689658481512677514775752202738014300719146081494259754389886908847798513311530564288103326980198459743513027962686314641951608532782898144163223383845664977948636842890485099935839877236923264992723099121174340748118966219419036216871425479000619219900307505473944894855150400758482672884759194932081560219690193075796432031791619986371610734531507722048022983442821144776842927986463839698537810881822869929135309932344197907566819893740968823131335126795337767770850191415346846951862324428208292103791304613511690958655823996033789744567965306801571592092424494150892165274216607684067577875259678957187834846532410004962192378478737982143803489362966914862756876800346959473345543427072206141296162699581803778064605412228521532980155775269366078510363674935496478578648759647849936397636109243645372196875193056885549920132191977713542332590715967282260653788218109032675993307794141262250189151324675668696329033722418438021382714717772959958932871051910019007362333517696777251782859569315200761448620099301074526836329971344438742125702993478962403263132129854173544319022372723824352446698757805111237761398541916850655060837282608035325344471470732929187655814424705180248799409548018318221632851746199126738457215500970205846414922378868653886429237941769292803021878678427119533928912773267479125897409689835444875142493699955822114862024601501161010102967272544899541128915797741179665460696543276580604486210760732917139525352362535027071681261376563826265186275475802264262381634713185324015955877756593498497705543576759872507139021650101630380277466096166830221226857315787702906404977645728301940408330228409957644034702922114809598190473757071179202561599404161585944791354487406703267255850134052934863866125373474290614882467981813496461468443902176048320941559161238879761963381676581139974654637105149342397904066902469532791288786859928595440536326431614462235843489927270004954318947230380305568323366393579964097501950873084229192867295192977676494972688713843520074177287130102229112050408217936642440168787592014856748019441935301042740955972240326496781795153735841381585078265264718526185522883370551193043873722010114409316306739761064279232315402564110293574998435842918708795687697728290703546101564666949296095689124601324947476582114764945790664882195642988614943821025205383905564070286499528451682925319232879644976370706046214118558637037208047658443197316909828452775299408039528973376691284388729980834002884641493870585969139386069502206731961648549814609633512546412978306077760559032710678769181737749042506496801401042699170167905100515534024117076030469498448407463340552101015532243404694343269147027251601796065636296166241614047582827306731714114176843957402269084879460111927169285346231169026691035923756538298048187212452104649512165694396201974404370353246150402856447099107459064895907432564841912081826410132312613112779470963484066136596394650812841089385079236079016603610238932568442536591358566895179737976227812462156186424313575955029335678218428434514622155131207157508536162310346548163590107139512181013060435422314462987502821273810923940860453735878093878247929869308628219129861118164882603794159836397544224808035386067858475903973272544347712073311596197469133381200197973059280640408059631236142005735928309781124988243573766612690749191638983448088431013753186720609967008837211329770628997570833784734218181272527580549312155034143791522703034590415780366027528452881146881261644624203812253972993155586845153166540821657575438481858096246720150551136431914905409962729173956116080583919079261904620181823782640357744527311164196552671758599775401310143040555992428671293318220396075498674484586758502495170211994466516834279133106193608187102548355415980693099518753597614630521110002018035941068337849102882967757369535142339267165590334695136238328428394673556611067631586912735223511499192901205345790572135070473744847190031570237836269400683341992926724457106773659314385235556064643833031664338099345102262881819235271504904042998176100057532206574077373954700080197397918109280640751360798428634225162046388739504657194976378747778845155874697936451417718201976145532468796019099434163120747170740322209732797751341745560239529950136051615549605741520550215263604021946028056877480566004914222812685542145968668733563609368288548074470482113103459708644457004116667529367824534577302096094563112295832103241860842428233058042737360337818433195370185582726796509380604693190417265525788300780350445902195419326789689698357135277139786838821287983421202423442191426443736854376710038010519462983026508053555628013866330841411933513039602895663660612630738727984795551777386636779240146983843336417045382042855286494378556167070979226756484077522736149922141212339152815420966823845516738112723984166208700577898068880354975869428790740870399310550486138446420867685664627371435089368404235700007432216921893597010431186973552861564304197156293124511700453791090842696597443049968496473332515999758215758894313737483175819514083684605248550057902749946200370316040271254665320860877083342762369995344684343771991685380649465695744749113588222165142213080069444387229200689387974002246592318552164150044927892652264454236596624413432835737475243211863063616277329462038550393445399393469184441543603975493511697761178322691213895508227595527698487948121134709289428928043624823507110194296848148747539470069850629164701921093593367689874943840796294438664310037215037666073666071375097415656278655876305990997358347517994092579578763808992034871327624980133904968518034357443887534223023802095390668903202092174702379743107325268809672067592844246873685310101312054071686332045944965719935158063793618607919225735976460346705469746341367265743756120690061467500282288510231145357988153353473187266062852417368707653033044383388645990556565808491130217364374657784364333528279718934102873337086794030547646330839381080930458969381145824364049411172195729377362700653021543246216010110602715416850348564794158130483293983532767376454445725015905592160058960321606610796236170474789983862109010712950403253112917074105220093749274713538593802065003458025580606241325064907592775858655874974728510306236842694006963288798187346465519958989681387352474291937728588133822447301986188002353369704728485505715225187199488881240532528086439151590498707887087684610849381704692095073553734995733898262319192330205274487972744988861389205763947754229154897944315862592533858960490173575357256659325714754276993577500000880280898432890169682380074006741736497330069668119424342651841380365332235669400283406005451999654420124169928363368398626391776291583099307425531604095605045696823907044403920890402490603347266249361798526861610185084728937478259602655580155481051724616552037998505403603705692992079008254743403976201280089557136060625821480976357826692505835766188205620193647542723026510166480608868846748261382038838736084306295799795684518262581105568711698163458274709069947841500084576133473919131199148873558216908409690606453228388597526790044060566979172488780326373506388096156190275993026308581770406708483427617629996069085986639376410128607062960323547207980641769144859771902466300767375870127728782749021989491266767710009146095577130637575022630324004769979274736280131434363824436773258124148516926295193344962751385136779672188422714874176731222996682082078255532546188804851246987560142816700949883020025004825241726939641398946702484712894428491783847067366263866724412736305977165338040959368525539310740341121026259004808564428463879390299672254959347065269394688748497739716590309131880336443617649744343271720177316015877319944003657323004592494837851231533302877266175060271684172138490623510381057023927439351681955564284485179317760709503337846676332985655149995670039361401140041912254513953004156767529234659490058007677256562747185213860141102009892593887342113859019227703534207219518374419556705124254526502327812570771055762343431872681963718391770124991268140354195741865740655834906636232674296579582428396352671404161489935570075540560398625733677856022114978621333714665233294976068969941936316966756284318007661354731699532886235304207477360455526383388584784135736525670539454869342450017280889285996460112675408298636106220939466519795940015682220451997646783529581542913482047490554059919265520873338516718488606617882682344859773662860946439021102636068456223895079347780438893366086391823466756636138877758555086718690679178792342929397180627811029548072756780698567724064762597370638866764993227968612072023353441053077322838306409541143136888033545740912669905699613315201395793960894180647273083226435808656773746666132067878590061711595412786174765931865875647904940342977803783568576713608410411087435613649974749598705976865215129871172344200222116121204077953193104309281612926413098947046280210237167521079948434757148652488280415927451786020429912136005769755765615573250701497366321205286798078135638473113094365399542850295085050255361095617281832484415723604321002203235598039932389057025338920382256212685455591686962059027997564320579365626039146854112116445727750565717368950596925492735437295777376684954654301763173679493451855551676612414909289086578013933478000549247776193096552781448953657707446245790558901608410610631046630238624567852771740324018419927115118314796728497912573307478545872085664044427414682673385287483644533486518151977533909451199483024662577606256404424139117931330150512615856027988854550555292042564217572713167120627947099769967306660045383821439528100970433662039652431651688772279223954766751464004606529949321466025961179447196561078381796877068402057480180009094998287024971378996667711190807033340645199502702742042334803901078810464324711472290988616074397811464250446283516803753033524172196486280312098019629300729468737053108734964731170107741868824683192840231797874854521136931015839136644937116909593329357387674047395667271764495160726096759287723251440939996750827831019541404614909730013679156500714823996366630138539878670987418093484771634311351544151353537798827861314829542574030312176900150840725559191905167284939110679924415093248094469229962768979115953205243920698666755622185179111459045532042186264891179058888956961740704084968486860564347737809677205378125105008742132738548337078168829330210415854856510621879680930808303359129097058910064587263050406427420140804746268457226091247553945684677899130628459478617115150308003174354755772614535114424163012185674281490469977820356625550401069421003194278395307938265221623228539521293535712769294225772925874944474786768035141293683209012212970264858846889721752568899938155096815630255656520733161747595266409825125157367252288316189219647014697529374884132153389221591432544441453237085424115783809194763588721275931001327400988411770799460870244461563716413337787102235426743971509856290517626131211893737689990855337628329393273941810458184649108973471841235559240498930386614874372279144395705238252250104348289140615848257826229324440579859363176359495105940041734339493864100351211875479878914582797473794983966710288200411376357685206104573966189510398423611953476228397688504632687413121658691327175157719000683259019504963050498534709473688679257052693923004143169094240396991834368678472311958897415694774027352928724480747024592880206265245309860076924601266129055159682262029236360309981879239114147962804925222026088872473359871972022072829850855847004208128023562004223148471053739013071654869887496047144957878905564537040491549917979410386254825668068466741976356396431030494250084852571750896374190810930283658486093121013948093017523995274432629372588929519438143626545503940597931465054485855540833636333974345220207824610792579585402773357551029233363132792753812343095230631775772232722722190976539449840891618920729067139875985768537166550814989123887625440969292546230615730209258808569227459850302143709272839252152957626727712941638825705152693705862210775224914774519939940984891469378716713274981286302269501528285280642079823029815382443598792454401360297196454284311992678073352367637431938529225909051944510427368990090210310599301020728412910327455865507413821198904013287886799608845076811994354149317737945108440232363877584184370605037538637321951428221933868086230268410009966392727321108022766293501489431094616482607297596560706786896457117407477781326688258198838613299845377803194818568540034800650632411571639147936818698653483969788037466177332901964386417009729068053211873217183666736556651671295956877842257840679913606038688871617757377283972696772056158108245696988774024886937107786504988271695228814601527773168187463193095420894020082961287452619232734881996746864471804616094919578406052220496458513151533200956555400506435727687350187536875673557174919517079243545875072402014528372114751933718871350668130694101330580783659328139390687564370911637495697008063125662138980558379136315284050164919669256151072858392206720632754103088693762711375623786994146245033995772828671116591421858687407372023699395546222389255135259289592535630323830971275254533511442058190497092820017445699996729464017837840330986287786560685116967493449785534040338614240743515764325169576628180040572963748146427809794656489145507125479096800240749416441926310575275410982868313207398788461804069682563356025128985577071863688187314022650284575841083078649625804342804579300437930748481613375059834088741659757370113846422895997948897283554834365194349645761474416079326978532263726236761630933391727279142318449515277705431216429975968389674905825189759689044117281647363530170054802755222386543232405890274900120375977673903758367112881217323679519425246827020984875069517550297705904464434500802354948142804231495553827772231239579336753229724919860806954087159167518513664307297838297897797637205554465329722178393348531889292203245107231871123309012511712210075788613665027294678340962776871535289499995665263106784437885542831546782060987988182880754417726734643964094369535856210266649523195901009616526916120880857385279735440939294789283572139546721573707028765332658244136331269954894564048693587978326807496732315368575653586325385314484822432149116732305885226257228249980967449159247828053597619900286374592280873171514159027070455589691930026816392137797950564809734100204159973279003806728927046017682691373636432524696859054555582386385099971907045598137234608667051351975708627097346103346901840441111291686748526388893185160691270352608844992296220405373482334264689775919354417432548365294366709482148842338682801113443461978939646361535196390828583623937208173747517592254300383931706378486598170633060197459067466792499009941316543459350318110420039055920821220508388670185593845656957669009635568425604426994486565067003105155667008514922084096187306914885999746018646635691149319961369235137616980935289575851224290812426047316493930574639759444467032887047556477079510478611703655192072854959214929965615414082597570878463873467864573663690868038629844647746759849711089232871602232787997572768316617918380494347221554583831109755177830295060734804554909128234316704724442518078697437014208278653529461667157604602085174987136642428501453281900462936098765826546871249082972285810263539227648900630689907661794522186702895532409196854225297632883162878909804803576050509715106416311378578695598404804205302712463162052268649045144183655282120860720088476480111907770869480230404739758264846637599328188066150833612084897314719231761600699747641563497298781706276076657930036117690266705040561212014534789460420057774664232145836998527540946501123678673906854599750873404113580354242699169561965463346360534260044662284606775464954023717854180487826802975571665011283520229104037965774548183718866468196622740275869982863267357725106912563383029494680560288402086509112541617685011042506410628030140855229274937434721779062035792738039764524193204783401431771094095995646429047182875261092573243161705006406441308268632042851509769714903987032817600456132906615208782042526306221767977509657122101442920561028220081255512990626733738208521214333487857866234350358364354416731837448013806726725771830236191244527307651946893512850592861842937014168382146238982966068753489530873040135306653812279452930467770776351907811548866714613760111922424363018650697092060447624680216667449780543493793246487514861394790862673998289357791973685316318432915176193638083506503037516543988347707320255335960845190657601693262116387762262672937062508667688129606495125597991781737126307186211597781175675713939852693651824671128020226300182387483464382886257639866796373809539849565829647307002590455291553310280318982222065089631616462992440144237457851905488437210336810686018279734691003134414395186466590154290288164642018966208011425713181286836229759112856832085748727734374321142399803036645706852402249345115042848961265832464313583246738254755334157024765488160516625914311538798289191704115430169686140885802866116558153268501832604844430146272187682634230912284049370485861625807789821418212922537499598517675345152012950093910261311588275305902571017232838100311200152641045029188286628075756888163239437491700139459598367632985362200296216679343765546883745336411102736014719093949043405884584404554372752413162495066023274598294212496365915254509889046411898158057682353864426231027667545220768044838307749863811805901590323812135732232656007397821204165110218350156593644682560438745213191280836004288604711839237634027738987434650325892929546774832071687687961014333727640730991241402536132628193614167522658969481208736696490651869608931511210879147892205878080033256490935045565906699570954446265767033493856430459327339974308705326667425458577278422502985067051040141146836260078065796707565378189480980503929192879930540076455920092202701873071422251261617151996053694500118125090952103403139365997370703122758028042105104804235646636102963755932407012085022294613009505393302959093946375791148404014974163568602798942836716193588153469171986722474826468137834952160811394468104395456525408493271374414778688064527742699332717971497966807047612438510676037044134852082656547722184131593587406129777728008336979101055607828167534630141642801138528981795782548053631793350549325931225751243376405603553441389619219172296893657240522150376048270282032407326907099427853763985126215158376303559173256134541000941752117464613680993187700924634310446780578098382082415954477849131442373458167141100914127776351819575314077179159134093306552003215564690044453110740130584666429392751066054774004298733683276004868074675200677302117930103701024050347677563371174628358233890187674016875171112029759031576988358357676140176093820024462431787038702951699511133590608032715952709022827237502813331835280636836016291890344342250507396748305669280899853569092513497796461162274104726748305085034875913903248809545860111912265745689455990163824503881098338767006302032142538134150346459505329108170984575995121103569557248404729717037961470339739785197899882982147441555851004561644491598818198307660256112413125313354868519793698817304173521292661796674900990823501302010007845348520167854525763641837220087302583529361326459579686979025107667295181797978174723081921455881850313280715918018221510746693518524727130289035195856553026326111180851666230123964664776272425017731428265041635934493039104650453394756524738645637270323685625994446557604513349534540720787050530042501194525951008368329309587860631161049970441851904176539314017362633045444307642961335174390228834521998124100618443205534956458793705401425468386265221873462832069089282632000108845015794813800174131941479488337371143862515124200270092503514293320545741543929288591386990347793642079759415151064269854463997333377691183792378119125588100796857841593215842337574229829772696866220991071970895155966430198418370639899429394023202351769630349714187282243731799952668760898187903255328052838739754960498837636461098544319416057916226368266868295289400702755840902744120760104279817754640254594167946989586077443527846225513221957978544245511984184167905675057724611186041237491183780539936253057526475284458481406115297226327099235336076191033843620201625816689078019745380370384268281591394831002899117988168609507446855774819767081541089920615331703813539201079182142448411955788420731645723635618080678321560186879078919834953863499179754081941023029087603097637323234344408252239477296273178256276160061708990789544553079155074063707898552913413096302187592645807808162590979696995196630478423194087309187162731729070382728840020520808593567801988094462103245544162740700039944045563184086651363057370100111847848783828495245070491063137850540633902127471785818031161373860095307138175731962723838168767177505228863005812104277382726188491703353593974172130677910353025883844753419819467329295391896696472628246039787771887807509268363302216178897946873864831190052566450668786607472539280396785335393611952147227106052519422037025372474677989558385888657125243168278197749758582400478873291979696996005863508868883417745694532090269709603344491969987786835946317917313066062859219302258050725968060678730309228372664014229374251451940503546497719968744393676943364909052060677927576197182076381581507531139388074135660705547438830312704854238582349095493673226548274201673898572423593376744853632266289931255655952269469738534243719344779143277106135769940891101480986096613369504866857169557642277890780401731836290986710064463383652549454498371544122326382214723248815680343592939754678579802720816787137656821945970365961544639963147744160476959182114767148410929398832347870205961253915236321319857377523116422378682015865648320265694298434498893660411513979843773912888562860751309947819455959313282703448883895651516355448839885299803750883886110686263723010256541085532108164307145652606349921141179747590889091164056794398484294212004703844609686425751204025232337385976932528302612007289390992076487351978902940954495929422098828612350246309383510922520811921091915686842280194204309261838569900059701395542964025767850550031846914634668088266914741042771331325048806735810549843411654074700351034847063489830137792372443791248214260581216385530926466123456629046347807422464636728590863390747453365483451097195217575757550641664517859400640492323408585548840002930469534625968169708682131537551782546681067354983333928337563449465643911449958692136902120623536398941116086989229096330625297055213079874287090058334697501834384975590275475192769852088972091883524030567938486279623473619562227761429278533476090778899466750164672885083324165219055153014911819308088297975546058000366466852218251406950265800710061715556832590771601511049358783378661397022753469584306207140968077067184707916177909285377325980384847679774034725988265681583281605421015883974314485805270823231014134860509629965795241026508683295848239543632425164864497599992813746966820609291636794308070167999103589494575988918755546534854928971899521091878271195295188235208462625704462683785818379908027823704944145189504350887565611449346160053216334002373636611291190451850113103408587941904269498516517200567796945756782226512980978166460693269665207016688185741287716508383314475844640086691521683586068572338492868777833131789201426358599893104488779954238040307124474074263065538791964215622431700719218969043657923067226336672497157115684377772514120104923524516913332418344703930765867768117761782469302221874865998091413904236376427824736574667532874861325526307070753321014828286709958352362360531051279348218498375778380838245614000630029372720397081763121942729958632311645619667759060725642566051235536496250164517599580481509041134711027317300630123204524984448026867091668155903305985640601130117234361376130527285525263333049520631783315938704254922152479026311316637978439823820210159245444628355731761728333535482891982444671202068772440626637165508817016804208935445682729775233788955551922767016458474180379253737438064155818041122844506431354922697889381680726657932178481289318838129987792788807778897248545179407078358281807260146031787494181728254592058507723790563490275553153675775439522338443266330836921530301494522979237962547252232779442272564582444879601547140534187602520904994220171645081653145730322026386297143467900524611803784708473670468012441186005118796178282409935542711860983586068553875270210749575713632130080875041316356077583945796196219766770537911278984810172045137799593121540733237748461777630227344713149644087189899264165141004764828301975573556296045070362765936413929733466953102569822207742154197300027240550682564857430352807848900649624615199432354898378751400619140193982727764000586084975431100820944621178547647620556516903865480502538732216721131203956048675209143575271647585040953015716705389973833855343717629857582732490254004008346911507294869815476790900481000655688477940438421103792097669821270195413799754714059476470406486966824133748028407942531331561353329592111334898843818003341487414253373194283496947053099020748512370125791001082613143726230165207463920089659483687705993499312683139524332342002770976517229899315594117706205817351768156996416657024908893853289376655188377077036282969957222935358842988133343442890552747544103275826465893210625034236574884400000930661014147784799473168886651150952543380755067442479599876959657346316669447926234327756503989004088526679650057253992173177364956201057269239599433331786348630950882269506996998600331689469507021503499954928857023764492162146415575942440130356409519545632535124233751441433020231551088830553887019664123265875402165209281952209508000654795229287397644243626078504512738610441223547844743414217202864947158248042901279930228886866829253632656828517920853855680303965836273453192316317626012483951454928468152171980522335434811602682043645718230875726876962784234544594081855053112663353686112720811357581306749083737216605948393869425929806604815228525501004968668609865216212804613147625951332066151443392034670586275036414004458138377639922722366024841980208240677901590188476447715111275571899234950702417707113264538590814559923208759925813467377861767659484496136096393934365988094625738023850666592112035556637322977363380874251257529352981761652903358198917058199054495824414994832922587281815666421537978173181194593290280922958423342704322963408972858031824937419700136127523225810439272235864327611569741434990167720550087202274438958264364157480283969404674966766042189895340039131209651239630758508556968587435032313414255216788677041910844757700532078482728232707526062502838542538762418819761030509469788693927102017249073381037818188580803853162567928235815226224664124762690891241361618052589666288356930517007806347360394677556177453940761302749968426466202855110029262371894685062604392527553029061637803186097146258402893400924134763413140465249670452257962271871822996921372114404315043726638437690313637907710594785138067136011215974233363702633423631750594203299769477534425683660543425841478418139286154995924777381357520259711481088378329757185039396528952731427515737709953459354611425724928862439446454089661307501356948913145489914984661897197604007573275096130141938221257308228726770912148140391772422794110886868754300226868224761559570043695553837397784590048291243948885638509246787951367680817887865231998757657521534638721994164554574415455423328199424709891580149135088288410393813522056765154197090346029757567030987657812448529019893806687996675945732787040244867380919203838207357856645016080586734362467010524725624396152839333203951616078455251200538983121075086106740807976044158279149071369786421170660630171585687044806434646548029578224254335805700585895311645062842549283559714448664331944999769874330433065994846104948379947218004859914240167891542836544406650876650972159495857954346086472365832998631570400645802751761930035649483118135846703381308119655539232450561955895274634995231909020110944623529336311843161036698269177064312967914787520307400753994507771676920234313080692540822667012975036206421554205402103691276111275393542357294934441731291046465015184162751610994355942867505264861547929276211685019371780401199337286107577258120959444344835828070672175681685163990478836999134828644536212563218478203721518099178833794783450000910893700569916455992963692507475542948265718785539112998638288175093506990666462477139482337530407746059072783630520095512229818631445320280320551716152746707299590448041197476387340083961598602805887770630869614529910074940285585939078342022268256741910050791013473961533731416529198599949780636657846371837616989687627864011809911097438420523519205234199667677262677844379117207401505501686646532262770532538370677169287561824905912776500020771466962858409085835760097734529767382056306162787941087767090381260323397234062863585408152835199213724278002691026562405652816259105546488489695966394313986602490525491623262158266535895337520007953610501378163964760259063353614685787664152382340545715813125051024888887586152771985032256962082915985025604820759767285175454411869791158428991161684463468791703034052495737177973827762804519566877012352855756501730312202249439693809542386959168508567072210113920469954386790231679642375611929115665765125490077937980076796982697178928689880412368308167806976659669629509168804398308325395134227517383369947715391441049733243775687053734532448845965815970636837391765615072913724374960311450010839767411258684490195445473126679579545857622330782395873197997607657732500644284715383500753722733393720168910204889479617918826595206507587009840596640092945707348548024488940508919365167803935750761060468407575445132516505626157572438364905725363090100063775776173322984184416638359912887409548242277142674300701953112975165774636577871416016926130996019708230226920021305558271462036688453671723880328275666161317099929272856193824859099692350034591063227884499642052713111895567996693982601457732962749498151459810800530686981447417907557596302733610460597236111964124764848007029778309205924448668650154560770892751082831992892726228694536221852992566510315176665774943622194489258499148985195716642965172255502665254485723768804593446475181848148468293115631443289476609693556341007519007799977388357846597712176008310016371983990629732168281371068593607928178820709599344576955372055170655671733055925131958036828365314041949140960764843889924062444017322873406926609065782278772523816450402092857488671309047745047792317024187827086880160347059980651354772653046808233894829482327179011785575551769278374911465358202033522156916004332242431099316382347045161388457670107847219167788874608797814664733299630922530490201957459981470285479368914538069341158251989584295936179749142676904585994102110096206424504661027085600614795445645424300722042512452470717313010407177874097430423803700452492348050656966790348888367382316141107079347636800191136691344454626231619165892294074062020461978129259243850129398145660573408197723899611838088721588569734628703434888675325491539622684832377508406198951525685036040467191849958128513435127526340917340214156800552731616121133804760348707594941986773110499375455107942769250346786114807718464221156119569642409618238495142656346821688000162752256230378684128537070884860376736933631048758510668890192244217327183164592302811507528054520271725125946176106189480532724411048908067053119771241703996246295627170410679545994142812784167643282134893900846927794539003658877762769040017371773984818911586246843731098362239425468842422238053322653624162341226550013705795660104336070334879654553816079947974576594867780933872827297728444114508971718932185954283850168261709015458495832269109619230233583966084166632553136745573056460503952946080049964636392262178567763313146932444492779737071545759182208581602837299962555345633867555060270250487041019140834562169937179937547170967589311689288042476987932897993624238587441239210051452501019613117252171554103946788385779155398071931053355638235368466781637457539278550033790461336632305411683908841250736050413520260844326444218610109117418339109422788998918586555566082255624599188968010859564033323239936018783200178148874112270055893930994400616415952761848280935407717341608319241506304647057418495030766112146807516818784926939540958593636053849994946775958010477841621450448699278945244834132667650164999963572301224903206027591512542680125201443298541142259297476601034265532275704856830477441990897217805855375123385418564259576033181432600588863788524503397022868832271783758903524050033692678432258282999156059355147050285787609272062142660871807847227435217171006639971597044564878448681724792120390229393866672577975683530464351892264948325459710175049039462202751369872833604904125259057208371680176735674697063828446430033223090665705556997454597584000156603159026203008349848065275980224987670295666642344363552790570411943008881580745144967299628522963940513059869555611703100449883458827046056450975434666851430308126391850800220863991632548640850700406797139204608897800877542023584494760883514346678175442926029043795320418947166526123729644087211642348657136287422817200275846392593186652721116374890385674974532911508233270065938755868727922365082728082872732743551094547128890772127932302347287444631366375034583380120154145877184811371946829567140710405648533233545992055967742098557629648157276326986427310954013772424639221145791233849506421804675282335270080907661782182381115720826372770353477152541946265023946345946825999349842194512972556821616881109613708173817932904925713582886811630421355790856368437550480118459232313009946067823092079543396287514064044602862343544685060665042444424998378441469819190355408732974625934891718590984778580233180976933245661374845397374072339572463081949585508239220402747620911851272899533179563041956632738786377775145479739331104860720140009547297270032098433079934171970414451270003188680006648644288386759920907841724187334573946577739006389312321490569933142395871729108821376378040980202181400093718268318283348711177840665294541414116800440486607247261863969955043914612925450669319925309295608175940197771850160674439971363596001237591875236259414598719863326576434618987031054784528640971386160902503839450445756689907225297215517411176684577536361931491847102539422321627158586564298073279574746055681856941892202006472761463956177331321149040311341145148614723982377984915897220381574033387994455387082356797696161295846386660005137680782118522547127502782306937318096725437678831703278503435555590035187138474015462649351062952870313905933582081982722315427924344138285275064347278430275505561047679202299115818164266492167707140310040991682904005919827798503316619142726811690814750523149501367151328183170646208825930031885914738737734609897521725288463007068994273696039792291793031071445035556650241598568891830265317917804682333319400379596854190122001497918496863636906346481564346244871860024069216980069917026517782345074484690808245857678691143735382852109047627465196466968504488256736376152068493989604556150369104087419071567632831877651849215639185763097758314660354637500941139675419840701450161394204152714860465480893788261158374084508200728715359559911028504056560189017492679755402041515894418027397737720295234628620363811346498819494166687485067114254364533447798439041981694901364823974449455781932092737411829381624934617408965122415366624158386083038522070013733818632358426031565104600419575215127720322646708437964822243229583670049268313391264233809718345768438891843880148785532839008369782653386221059312662701701922677777487393921840783685857895251646560253352230898210805303903297957653186425192955323524917096606419122723301211425167416306489975603718257427016733908369354437211622813534972149028190830356013017549913149249903505729572306357359312782079792039748283800743734163702503362364153504384843293372215103931156014170067516412657088194422315131769045232216721097590074850738895494019759387296345221610207556903222732282334118138226293592284455971157764991119959992035761191737304555820650908320571841648303840362968742242948430270824230221784119363220136224377750709362955230966888694136055078716476461874546826662497227524062492942321869941245357570951917470832499481364519798061846609430316370543152213421897016441753337387791696437908291324355801686736077238998220097619402863418565633700405173070472981661813629179941581532234826751969544445203676654233072889975505843299837580906590257198396353216174821819506452085790049474961648686776553561427141874456538540665566062847196691589428543425705879985335045178799702888303145383934278753139478492849099278646552722478005853386592925322130844845974632669745029504499528855468408918469395913909583950337153629759919877123072603832533571152033235610358319858004197815821575113457221395533371270556858612697102300965200466384177059893272384406716617531708422069813225473773588002060229254554030325746398994661928145566436916953455483682676124584911471993148506727261334426489099317002201451270191180148556089298669732147314326512175791358004564123349206679581919300991369417661760426562870725814991186063558937235460861260138153974847433269620651394455620601238383285130035705923851297844803731645050933775504523003910963771441706646250792146178176863980494243029533118695251820154483753862136458653045056673698666357269126243728840231208126916075985434760773553557946578261691034772882883843805141697603031902823302843987641261700568471268169028582391229802738234687431776263427793113514854025153914922288748610818245498834928741445074233305456545365976962320082386408321972600913880919698847623025405951159391493682477970475515125038630124343745754369462246596921940204403106616061896226584940263535393892154554943050910836420486683785736854607160011173600755979420727499779504642282838716066418608475868005419760540197150091697104332153260830749209663924426142313690858097626508045823126983391848780566105016361901233738717775906817426297338684862778502535472373938456573521049788540894817592475133541704235808733576531373008364368458453506853497602604392417251506958951702172607046260479572083601787490780354405443902858140987189656257012825188783945069076009383237465954791737606563041906038368292043712897167521249968252142895727415814011707303926852933087602230718112599276250487032879534998833667354954894911413459764135845640766740975993886324402103468760163113010147977339803503714222570443565495606599355215069203519290459249630366684262016058726703540473991196388361038567977780184539859455606108570140704581447633200155773363384927753537111276686089724176862029345089917861240734848013763451821892822023203705010665869673911759784034712719246408916179314066779107283155739101318347826099871376586741749869645382377099079631276813587213538360445125790187593182055443868804578214675130543174858477240591494773871179867335475203523256646173973678931897390896319607249591232882685042791919342157554971117015290724615444412410158740585001555156321334445762046054369918420747328642989467613282680286631888637748863974308038642038092599579177724808703552340090943505451824325909095056683579007620063066481189649704460219960268615800255557099897595998170058629641339379869312146936825338931266919511880279301072241328727854516475405325453898135223695524777767490719248605475957289329352302211086071000747389639484933147175248390862615663099804448362955463635036947096042367898584627437971970519355246081677674504752842941472550350665560705997130491442561339132782380427755117573124020214431921418696087768743566382200005274279336682804984033956422172752167294038596311177405719904831349558103918313598260865393804262358099084357207194333346091432167555515026828604242970296072114811353852876616516900480211887887001951971556420742933214194269540146735199340161987728369464469076248720700260173120720643852664659274618210696273517966103046665328342794682316429149707647689724198510558725716269706990614284571182128275201969713578603771102014921173462450640237659658349861792902291268214576089566141474626276655052680905205772357832537013912774339146144899805378809456636603387572162153686910154256731027413921971328115400912980893052345906444482401857190439611943618201874411955245423975201291006101467968527015222114664360194101738244837783495635347582695034969202127629202932545644815099255198088646502356240452119828512673588749786332721502440965173738388403218040602101312756325879642191830911336519343391658807140137636984378894513444254279390226130356842888453348773797941012106962269923094364344981362620774187895360584035969859622305020431628066891408679325990173973499485438983354781814088362507059084887288850985775825542186632918800577343165671463418175935240346327890152898974501629480334756131717233758272639237096554847580619754734765186187928018642190729268727328336860902044418990811562333912907604062015410551240966534532513156312524550008226127683589966899498171334594424363258956226498733356091269696397631306196714178656382271481324850657517640982701789614367025648703328415476371243456135620859097645112088835185007436765417570199180455948067397473077006646745025998805577585523940067969997728642795135003235823288135244486536273735096038001316799027149821768553737877326638428430702673565041044613684136713717283234050683833327506392083817315473342251093544190005108817004033902872335710546638447062806055492632134483331533586437541425096043949564130106691580257224233681159881775662010126164737028294120513056860748601656676156429510758353614617615843442544076404026119050115830149590931768296948707109687994775397966728050332041587817224093656635637649507896011636306126630905458829020800288089524611932523098057020052722136116758536496959757793215038600130490571094956750921227627491239363408727199549923066885276629174659015779074076416592109401450556522252673167031154106683313586019604283489363777467748744099616776705417962448319227047892241460909138180418451089710338348755363709730149233532547988845759751556942491170985469036532647854360019491983579937938879281528300857323593223810761276721145825916765977724250134598995625611925117021264257847967477613361599764910402828754083023339873045744103675129452073940911455717415428522614967001685536934811843770199314226030954600876864510287677949786484878789010858446379364035699996372412793843328509321770410155248988880292362533768048157155438367586113646583075639226041340391095083988595845363666162087355694425226844285286579127734269045574217200406205389808153477370269422888479951968209883427420617251148101253359366240255506436649316260409272503226903573306736554207324236751698973925585191056810167257961629185096809148037575760630195030479421807371827015607087584435594914365206358588973942927140596325991632246184002719894110917719722001044064239167921018066831358437755838648517301976943932984847599376782707686526641294582998060995344895720036115506399753008433296638695921649078646031945752715511044447102927176802640755843847124846186177652680561728401684279318049016502088259447839103897003497656183899927964768209316907683461881356583044398180960089701013339149590097864580175904734004632287584823547227643916702102383804668423780127897188514849149703503704373288566935611496525030659772248421684312857879006736774851765207649505631766980736127901174712269881149602045451311034479809759130438535712245000655270496460798713513824115247373387185290584423259716405697457100396243853298639016422745146427913368044562039691477560541155206231994813544339061655625512473143823064377105646197511247094697987924831414295183093405263444635529534989500279204160732895499946340959184860344466801599987491594909935194756041320813526531559331033236968252888919607780868095358019887720890294250953201956981591843218245038819494281135394896087068921245283431710711712601469815869968948303566778124115451136598853103005637456203694127406387590568566654355787439052299762675340055980543826080343302621197995584434695035336222152403732689151291243287018199205851665604733800919561550771650899151286300686889029004799661806845831778769309338431620866957598239127626372298175725432844135667846055376948643941073818325352484922790905334994912488502468615534962279623109325283971848216365440416888195310117011870543620640759375904328222534963157613987790925499995310502565692384794487742850626327550714504783362652202538678429820877696412451586266537295466761408693936444797849844175762591843957694243997944572832167220555849313285184354980289440679751899612968792830612229531261314813348729836302048307512741513232251052132685612018853355969592677328574313057933272781560401333413180158985416542815959488086765177687993303944441433626654981516288303777819164283594611098568485730716409839226942073946033777866356220117610368121352035186180424402089953623175074612037173662492159537048373992773917967743840922664819669855151445775377203533170549040985710078983769862097644779277066042739643365976515402002080929917132477447956516300416149789931104620189948271713177739850993708110727437144508054068358996982911535293854822351652940729911555475878730277314673381035419422346121342107245604858316993412388925940290484406603166126993577531262410740768682471790854282888542370369966930587282908611587132209718367154783785934161714902615148301655331171022065481373057829480729143857497295068923597698247955868356004710018483829892790967743358492289392054976567499844772406189723547970179016478819000992889247485248357056697449275480236655913841150892143365186672772164304500996153167490598929495314199838720160488385866983157736852190993694086899130682767484173542652971423255401860114432719815567229234494531906341200179906000169446627014929456227657327182223669247934644302015387785227313516739723664317374195216232084057349010586704219885816500257524046549061369484842512451043779234714602855812912193415510604467033904167195381741480893484911956102923672361154425671634852501680605071093331343665247557502470677956576868268036490488988179748436950423607839859859793930748676835378817321552237615421892347467999873635729761599739259229895269994496117884556905477288324569502892041797504892008944983475980915260675377667775917926131502015961154747137893940956831832158515027937424145876882046569704607903956429994871302197721961773960835715955783650291563310314947479011200169547234745653489567645320943763220361506593906940264598374199283291153603486417589403728279432903653814330514081311124371269793200943111740875450850565666145981353431411543414176160110165746479206601707584831572416958987907290556344990821930115951107298899474065436205039652826247740677316118987705932795441727094737015346089862046732287314138342737797820953514779503938350046367484789428756382346374730454716305405882164614567879070751318029330745277831854361695828489069290239385309714503148435783680740597727067676616226204265998320680414398192408395918548651465970525585980814389884110056087557833734509006667322129069432235628977968848825332069599728899883196532038940000058160412676861246060708509523917248981183014033590732743897237618498264608196058914032070824234349208492259100637421999878535051228928009476095388249178457048075359842326443292485907504516988376045740154608849577695256092111684103347849374171888773739022691253980167230966589947817325986431474636448348395678809514736998511687089007312136678737381148907344990620119265992297245426475362484845356709257257187585403167107631289920729126294839476360769548912680467193527626110611303169743360299404982544673403189674289349584266802421012317317914925644616619259175196877372778707246307638559112301076080869445737980148305928891282474586035607149941142810490343470475639433682351910186489025581692764329623757288429774705965917222577272996517908099982752341623687065350668421004256536830886939255337337837087481893303948026563520512087514825199323214176215437553924932863151239737445176332388046709376318787786960711790247773383629347668605614162148307626116266441290027919095513917671163846842685797663232424436353132465826644725974839621983017751904550079199200370826282655325271092937694672663683717345159173136327833025380583996033190848937212363532825240624066878019556476381847598001294304328153102973267678157551645691586456900486972386394328445741747114523036521163337661731719762101483645531686896653688964100379885793208540431768148774217028293692600930251662586432520720497974745740401481812822900804017057167116686902960360182341518333231150942293741335142695278102212027007673852057544794684883968222376553333507414775874656120033115080860655822492553286214411558087000611133191705977160697451651345662835804290650336071708864026477382046062006382841905820752835641662037951359121312725923670929639364947663517187409210771709142745496100925895147205394064154858334550319056948131116201669212582295818868709834168438712730983056702948453163702163746874548210067170142615038107538675441248369087870591486369148676331303863221416077148805674690027453946196189560630603454932163613254989493066110972379278103768971641695916844697209716218903469548724943620527140548833823366009970964281924705071595571092325997976464090026219821068325838109257430382360486018674474228502652803191516288720165085678161485487514932865780725009568826886339470675572252068366779538922502324220445126463440961857368901512150034740334894171925519557929047818434427639524709203935999075559399105997075280746398004251849870907483224670305315674836564208294463907445293919182533539980842311783115646823797385337939320258301826043148361803752314483033326433411992362911955798814971262398964864023949346350546376349729280353814872721550978844292172602470715704171217045282658911527343344242835882197288278801410412696722587260891081106850965687584694493580943864380605768192632398377014199848187331610894450817641053053070806857550334263977186762250254631339405013013696182090613001706906554075390135030086651285147707159407978333088650703201682161242938964818420281614051926940265070134624246617759239694453559276285104533513078454949081670593321944783011786043771558866801248408305595173146511225092333707901466821883980027548168347236986149294644019098954692645668427514845010824946095267627981357044503475128334726709622498070944534292704911683219721354048675623567599344032302246995181516080286201616952988017860138276777841658885702115427428849926248829502232082464149273075316574102257359328221555769649017946542973496277684787425181382910933175658262939485584558548958072539716150975392092139441366891812855734643550241783854545136074392727517591492738756889421410902116173384990164273609493622702062890776737040499650376114834685057125042201182343731262787535994820056492777893010901668177258641613757408820517061984406393460321009023368354921087778704261651728328223293365164924639246041027414063315105113668648341566397700013458331631669080599117153018010511222039256200351907527880608194570622119328328668901602755500025123141639765895354336514628025616898382975876804586764476012840291659893669906616006342362244510660669345460893773560826034949687132625505595341791222329842029807844049590348291390716777710832406726112178098468571272556891718738164516872445733659019291637393278345176157454444127281314214374341338625157274884726322360976812128360185667104432195920423255530697747454931351604956941341280721968331285711015468785389259418365684142392787220212883104709806831225049839775028453547743131400336542849372759806822837410479860508752866046545275446844087695151753887132810411815609216273745603101602124232760980212669161614440384142145195075266831672895180242075843939453972603536322879284677626612401960287705902565551537001768262574634098640285686486367031138020658581519841153432101576881120956103220447790751306921893654425269555778016274651628526225807242722676582743999808958238135617949280738740533752712358337863334194163525177159265932154231878054441974715214136599818559576153370150743580187889807876130416498810330816853625648945392205285488049660117306657932117545085832347362795379523891282274504615604164789527551212212893087906884959233666939905144693640601226888308168518133403253300162092850267277282586642451180348942945428970046349750821138861563249823053511262362620109992410939804647696520138588127265014938629976489377748589128878453885521223943847575644065037792613218106197413798623227141815176102958555945554490095394531337165689987318712249865984928672000556751912546708611585691070859966070963558739481253866803138859392964440292673176186606740051902954917068647199776762508434186354110614860086089301647368825428432287492219118510788030549767152465199274438087754562150747694401423751345254652274867285143410833907502795617678196460248033146250628646055503567277093788794111916409360634241034521960800779853268107947956198938812708368217040093170080459336316237476318977586737115213548143198488818391381962492528904522810397586562703536008804050312162560842830372452321374121788171523552089718842623126800841847105783689509255670658629991886430606805367644376571929056212798631565743677194107237650303283141585552506319186183578687029270724944821008670663139800810616011890971629474092289368678998078867642968244882813451725377377433796636540609095574269188077887932130630370518398294642416815578977642366680956124691067357404575314711483768324178182893952626043025945028269610992835399336458182232354744228586202498448589882940202031783774530962260524343290851886518758637174089654707272987013618286961508862944311512719196573587805036453941648826206605746059914621778556991414056782493073043570222535248647327709002851720741686889026597575512419752614202602929554543263647405968427571007808671860752349306003207153099352829717813222313291643561131759418100595291374683658591217206762656663877360632303508614150124352412219194841613639154405923695291745602119691018766236372047003008452782028625045633822052151511937927557956232153092679380035691969917888818235923389867151826465333144208032987112239732935523728560438886030630757094956165043023484886074660929371953918329369144774695107304642649221551239970220348359889477166151004452494002072722850030887258366012095712203525299773068817755614286539906570507672718134911974035176551902782713381075915524439979599548617026488998298729905260011336736396668334305223850812143805394239019496566981055512507274679183445131427083005825460419603101872375938081943445250539776398310914751295431205608757463092946181738592106434766551681003423518891900574248044890436483931334641332748256128195208207586275543475488022319000621022173756375572158438864079532902046244297428406314757374335294851830448153100994754756574182693160705190501385497829849700119743844253040934056893841131390343800886669523577607575961080723681998853880497146303575075768094607983310612163478328812586676154628527582832716492545124050877584815841372959007780142401964911160787813947782571083190095960918727965589960942630377743292124989283980729048059280682526782025953431282401582328514900750581123275356959452295746430999347309019913318793804628386017277603595142257364205564311433014497087933000326869896282889970663255644412142808529676368617178463513466998570061267498083037204039062398568445463069829554276128593905338168584083229777415660585919715300411574590147395264439170830174293597663470875237161511639320803316553987959060899510429699493180852106233788008302522569871346377186638192399965653705571973034971788480714112730966973206450380673242568476021931150324572079497216177698644680036365510007631903020745316563343446279942007964662779238114168033906392682084387832693239461119957786920332788910183812339775552023608436180800894668823577195512079794294614676325118286234132152370198205044025569799703883732226424701315242680170991299331829803595490430427106603838163849509319809498804154252425578669825829009227582290495165204616556914594384848069871929662018263306273058373854595293154251978263462340097083682137005006690356391572721643823963692316219322251779194398889542363484615933540120298099863061372816383490748626972965703818282498099559034921913247196018542248912471329479711688089485652721161679701107997441265748925486600503431779698298363243179657878198132791053972981395824362749073717389640867584289411268030261904921479092252849505274172998886132560890846500443091847263564439677326832739875629597341440025941081552176253483774502759935917692631891402960195920645871871056977291504560989242944017280323956504703666559666992280891926605641662798778926991195407155315873715660857689668205051981376681949395791267985200562970452788948006178344348915616484602486714085769618015665264328364482314372702037073746510031304441734053562681088008897323451591265854263112967736253673138701499857088519222479139066642034810811280062131100941956047567319679300557542089203972108503353827751416844040284494406831293332573272663432083735487327197135038743088450024720262092842113706961211604719051310131340342492664243989329995355414444686244152358861432851983742844475502266610198831281961618180464416664742772652012170902867194603945416845791563373117353971847963977749490996975397812310987476929836490208440193477684327812039586137647602534233157539496759641261173257554142531083641652122239045046986623657712522676713308340518969266227698988617136473272876281901688646726027671450261067335856280127997106415142842539290867453941319411023424251413071045379239070588555447263328322822606953983022233916616562658295327470688154577147172499014249027741752527670320890912214492393424776655079706431786751892987341660692117825300500006261027282704464906702252449107156562814183828508314360463941001893576981382840435385352172147581104969615173076375057268918327067635229413981858228839806479382814854959399011382412194092808980143013000549548723491947474298853659614734575716231969532092584398787734386151164838828661031766201709504506807839777232098399489556677343681044331442773985871747644400956572252914587453029331594283454298678688244274538517702546889015319868478791830066817123602214557929979956455911885559657912133807354358225032135172282710768460139808384145050599101497467304476542546291450262610764904169849231287854091247086510887213261234601914276811147257551493921547829789437315807057812449722250382234098613120955579489099486114417310842820815585661947004072199550225643065098483800246926637282222614435437551491338183011425221476056441255961628871359126729392329316590775580955056150114435898401647412664559969149415727856922947592389693311389543136847041421801853189051510501277279414369335468000770321197069982940615245186821498887021708242597222709752857659249998434204078907845620190469891695094254604400130179677898260442387586382286656359196325149090344771943231875397878322906719875498277783750479951798801750417535293994747125695633587214884871435451537478289299345160910656557446399604141374233752882026730031845176389339916166023245301670748278575880654361533359601076164782469186441825016903093172786423473912001122609910020846736366164614849242993933572833903334943516315945760376880727494427507491509902134211485382156158563622597420758643122663625503972619354999714373739434371629302336200227095701987223910912866776681080463194962135964821921679115217182630005902516090064863999446197280048612320953452794105576581921479034334799863626683575302402269962626789099069423397079345461442060532306111997431273399900206674681780268490910782361649787664984934533783666846526315404381317699696383067046118241114916075219482488840755313219918399463368383775287450711872541981856892075479314492451023229586355332603123733709605110128464838735433607337206578713968097510576326949143305433025800981446618831718795405561382540178887360464564608961403830466921115590523973576512270388096767366812008283099824359975387703909502424025838765872080130472067559329500887431591536807660768607102979248380006955480036399887635085687022813692730009388665195199240339056493711252755368519427230349031247658831342027551697873649311162965301799018264871614305079152678861463845955276500199437095347066903796954653941309569300814487526626049824833736306464828127242128977636331746733367277870909794385169634323159243822098545368077146118315030237655224709769187225060781536812702467056468894901074511998607723620976515540965312472688214792925964509401597294976195685450945930095008153414562624570002532274091804188911742431751224466040589743804370982059081948393908263942961181015898353051653164861396909106011781422719625294463569030403648871347315761177864133196996989364385849491742061808344847159380390422133336937230499165599458870958526870930343735983118279213222993615145305071658703227140790282658307781643256167407198673635098506889373615877297222371306615798849013142902537422757953642946937424895928643961169378988455589630033716126289704513433563685199420358631961775125937353459409733612347393452517054725539089553533713306432631610195352439083652602530306864324196444394064619245806161532805199495642456560783376867259880860163858050026189162138542068892496483205964057051715293062258297902102363777868350854670427850770743694183214230489133497577392648122533517814023106589990155750509643140745738032463563976069618276700994061635466690173867390934833894471087324304701307066100258763021908489618649610770971655633407948807170940613733624710250956592004539895645815468092003830041596013965771679830146161953152846259061516896744330752953465421277939367000614722640408408402389930477614227143203597484905744751412519100632907359274119613553006065536950754790647731300478406988016059689005532531486760994739901573154454590498804177054738019969145754558933597708170174550148501598832879232596625619666292259990259655669379976125895079100450348318619757213421562046659861801749813648210604796070290150975625573416667311933163107751382515144495183523483460501342200823236931658281513941676818689450042278618492630692709857747297992955446916960372526681108611637211370740454962598496458187660791715717227445896345734227781213721501272106406422361136168223278954132094248149365940343100523469237219485640403342560632828220274922120803117694501739109448605120625618907568743217309807131659461161054412373041503081609315114218554031629522075067238225809668434197865932653590519390763060349904823652902677739100991247147291001080997815200085303768240061552481603857414424269533850573529515635707380590632163310875918957903062826486810366600709279366540079091385800814991934761843444690788125280936257740127818883798479655622999808496736259545919912527793593693593626750615595849493237347131543556550070636491274225518192912204277786789752850781030378262411319116093181854770400578775846802553274269825131990060371228252166148557424988342566927264296479317373932747452190699156299186409143812053546899023746945424863400397900735067747683263044767134895255673235786618893390404098942114113892331186704254060989661132712743801112695532033637416887171601757082121888044196338840340950751451409223331925385594274549704518614040513838747453728533942618710260935014890645161214080715571300695817265742170099978754057744459475509605558661795253733993095174574818855160115127588697737885039639246686539375340065527428338694538366681965702496135438395137586515640727958594099510459128610175062569932911124936761403342571435611049132609451054610335107202836758783427147715464835056465912755045557453010754754316528875606679712252072283065465116588768379503864182753116701680203516134406268029218379704660091877706078964126977721555592758946076151015081200722799504832460995462419146375914198770722706948070502542272277544968625420896926805578386661915431681022847944915866135935435980849966037415334177686943858176579348554288162682080091639500718585406343127131911869380437480905376305486045373391856036970279757509844853432580456502299745867830558260967285622776006706611778421657740055764656866421643687485714680797699625076362337101646817924064132933935228567384622963122207854469414812813452320511571382370677236772726449532412148825111363192624238778863158227374279510098791668356436258897015750998558870761565827004001871747198869412327360557542985634699762634942259427655359313370755482583607078818737265055803950463967017718521781391780880571768073312868212764766154836150655833975705162018587602900912616519623173727407691890456856889706317521467593538762073667671634949956528710247054800123706434311001997987248224640456951028553184705536582258298198593875385802596213137616962134093299520084630743139629782495799291784309788661932494723274222592775516337483905147418516730954063293914483069043295411705942880477159724232916065332378833737726305948909717490804362389373373545451772499131566479543748719473162674990342294402576447603617290184756066155770907757907451306374511374666692015728598606742453388733680978488960573560038384517045393413061699759019559614483835566084708386231160338154620548863777331586163609290087384940077709940896305393874264500819702790585897151260226403214887407945687235857727514433302686462379644953371901388312028355331811958205742967115812110673610433677297134401383823301885855513227347883659280345386330583309027022889166490300270024868494404147909592919934455928381378757747786936487096541278148550553704058697609472146954823808448956977780899820129057387671167070927716072698200247899803460415661587334340699747012711729003884792641963173854322305110185023598930045914781293330314961786109713193768457000951601097407261571579088771314633957333100865085571293684920885551952049574190158818067655620733205389152665364991696938188524554966978147307157732945166962051228612801589044162504780161319661382136159452080406013450583843939858102282075795461830218496558277764271807386022866672858919282168558992185645975888711520130893759068858230880527333565977414613519390975989089947157726223806942789908537109124619305377341361660481159486731203256183286342675189169754145719466221682984437811553536457539868733225338417617483340839451162473605504904629469600650370377485290012357875843242761134307268387509112676798599277815862951759981981222602505786754092798665305427470286198862016878346454644923166498547360411662412484585446452163266236296731763519768778020681236174736494915173156064175030448706098938795890926284349917639474446924192225928070249446344720031952171685056487249652573029433834415755820121500026921643013446630832889712829755861350680162209605949647947758342856852580514190668528398717863504497423526830694897232631797847550074645289133272730463075597057477801694684677457337759504474564815034824923664761106382021974621698472745159935781138634021715154118415690332144297657713498238858338131833224828638012121532401075779616017145194860054478977792268465100820962591184746289539602225577622352213713248305622238153165764514581655296152335433384744979681850639260913688395252275082648730697022420504361500815820060916228973827527023884194508222577923849759969088541897243717405486210644062506143238212106301973020693515423174112732470097927734744472145307388271032897005850600691953908552191969921293570089336825945063251909971146596758970568290987212774752808450304520518185971736441655134562030028181575943291739946971068125628740075963754495615032711863321177824933744594061729491227946331139495890121344203370174262625810356581697244170723464374851211734503116347591690741738179824016227034983068921327068045245467525852011007646241531697749721011689106674379104100996499938517411992623749971404971955019392572677035688336679466490071330400738564017702634759217324213725986524817242333870665873928693256000875161328611659079225456042713725750262292123327896277104317193165568629150664376193245798922555509437253866048972041737370991614070940628609266330841171515508974726612182874439269526929907401174033570779078442416388681344098316554397861862000165282660706510090776743650237987320179634712498333241512614819338200026578545091104268220579092049997400602844076046020974808880998077356607270219445279504785369272134132494131163833099153981868165049008061233265091434901468446221900108488841344219882116237013968581561234282035013275342038542329022179082667652594117706829585791949119865822166584924342752738084802132248133390022957605196735825425909463228005454434038228601477317373267425997691976376141007974872767405004862494444100903178872372827129330663641709028191043742901284325765056393747501639465913065084097715657009477764667367948504525882507854311084764273987199628903223988774557446316288755262569798960617247127418958422936749060643275329834325963770450224886253674171895991190644482250957738222474671784779076790170469644572293459161466590076103359296505258830363056500447723250006866501810043261883073740910301658371133970189274990059374077742629928578896387683645599584792976517681687994847618372581522863408852385436665938476942631208229398140874731100265258227860290038736899514769753217075408068303598833478706461340943734659249822150433444689446735205695485503208736388197844314831151710009498908669957042913815169780893555156930855131657480254291741976868750159875599516232837371976085063783469035299356605609858981071283240827579277277530228480995419547536547942432714498800008392747630182846443279187473624187041216319072338129674820515319102551447750922566905643921210546381794925494663314457671161026302034030906055741085062141091622066743233227809188558717524446731637264498930381070850148401958635239456744432597988027142130558611247421858818841636320273850983235605987638429107893528118989704677497573083558455098694530659439268096020104633679029491373414433788611884950556676212386783576632242782458082555671385732077256030353858626043873583348766793146368202268051279200606697318736945782285563255114546307195363973020134794727123779203537888106563987598064111773021200249702435432997251595212075913487223049992261504791715904041612587297277993498465418668225456412622635823979930488918090175336097850607611177727343633096359034382033422222789195055295126371708058241377195389147066539107150622137234080731682732953636911737533522459656189391209332030653338208520391822060430216635753077343090030973030595482037433551406308111426698759236234348357935240596593674675030351964633611558775165963033651006202408979066265235057313639098467482357377766523125108180273819562947938312252474274911021026650821524999237786067611519911551391936646492880332929003450972334937826767915996903666916617416166709282460963459250298275305523913121147158831022893493276766830316835400566877236695295839792136739481155937248651050825664666936975690382355026237099818720592606314908771887718811923967537406321981197112894020545685957929011238429671925402839587647738727656335834023353416571207757884522648063570303501041688294267373856729804740402485301885839402027148353660716622489269111265888998804828783885133229778306352628390249960569134921882416278531077086998612508635592085356822428271009691818753701644619577915761521118835665325855054066442542105085516500264531863506113844661533941410282834574015280864518984738204246579917717790317717887583404623459236532895537703092936805446414312028778354580542434953080861520123964171830485121868682772245467669253160253012877997532676919470403019887833132162881585886808062756098137976533250780207697843208080710209770880841011521340517104417886111535851146809105471870205513359670587161660825705658307373407827916047928783751117423441809506656835171705913125387397127101862271708075040032101667110122864929771075122750536731753799106735132402829824835210360154582571095722670264267469477725316178312073234410315713437920885600077276863005636550437582247360226790960528394858070268276251275079561112226036834031725260777925454938018318102149773244259629835718158721107550072644623637388024519173950105336230454853511563951151267225479641599957526062592748226448317572235603229983923420243806919282204290418804903293637839365893759848528273211201835930350360042727703035959074586173129569965587901141760519304866943541301493730100487974082161353811370116702439002519099027104198732877118459418734513009224019523995761966076789484686128450213111856263972904375352698347990586093880438861802851893186526315074111893438887037842378097933229069837423745702293125937477326635551803264444758389379014593236543222812313679606941332358131012531753959651622411343104545114120073500073663228637497024833623667689346298741594981455093947442705787816779452771846837895115681974367072768340882076035896500348022448667613278517963294096547218082079241631424837277778545358817696380142951954824098748571598851829276778874536730752496678229431462936595220435832909012072619680693848109662504803556819666020567749870521771374090812206784633767094044280201118219735361104410810723721586437117315034240269647763816191574076113710408319747085946018583907893957302293764798504131166485654991980118944916740250930437653820617477751060304266101040185292721424376739390829081097484240244390400580051073219618219690974337573257646239685723492981604998131497657521812189355866637227167718625501520609098520435591814878191155296912232945414553356041038152996474117117707216781631417471127162433742206139895360629947461738094042377440440247313484747861922074636734244424257799345668980801812605374381185974357255816767255577416774276867196039324563349334140576367537861400560224761598414447912041473679548183583613088079687928022717397933766681830001341634976741016856730372302592670006251116303472568764502024394678690666877542877782234515288918088479319001494470332034128124128427137964518613622022666634523040605730636631847190839415791149562338688076515337989606322377432915407044346200077375490028557616869683931541308179156719294877063693663077253466631959597747945752993601585456883182754862871595929094977743020490745247853688987919783844628038593755700621189021978267546462213827073594425914487419062724079928376285811830359418553351708916676646414236345616350025197593122595293463403934810013319008113899970832821595503790749394541484466272562978745506348888031416364362674055612135492478473531741322857069136091011702789557219575251943334120221510140198522142238359855644778642068696726827046527155244695130433414441600037520301875471927087899267607040817467776683135087322491305448203214052395042153618123443014535378290884070283775940391960991871933353361991218416132410234220064517969626215828474625986166230094239009098833695106913471913233552516967278403514710838253165534568769603833869966698664544713101112553756515012070669188479600660147343587200114650497247548917992633440719836084133069734295727992187797887111928061786992738507046450980892703526095386432277852715151348523949280545804618862816811049402009951614053844592480948326650640611329205214342718730819533875688765850579556127028270658998263450288469355020030267906596954321491708130249564295747910606744418546133879296827801953242120691228318405069943325788258722604036261478402002804632638968745802643677402861368710080404962684211834355003339339087389650674198960360910278716045739019355807245438963522703354389810030035063741626380872592140497697849987123046522520126736766780185439588273736501031786579639722193101007877563757367307048686007205992377553145100135269880725240427686372457578131893805060127965623429994282886103621276959901199765868967288430736035322657332776966964033381695850913557192661134434651206602553784782830459576878746155955660456391190397729974130445372689536539199767359232581787267628021082284437143883531052018501314950553803466191185795178468765912592687833876220657791700362026109906988734446011818007715490059836100800266852573097456855050448432569355228416518824682893730842822854368361035921138446670680345820333183180344872205214391642666179108302882043187509599003774155504775215804777577802137202208172873294226024621140436687570545091113967631471969906204633799174991472633008673990536469593072196797347500318721100646318581706048508005118826645627380052959084649173013026225528232073593145025562651697422627456778828023613513848583287635599352010925192464149334523206427697684910360938908693390558466805236692772441257014366943122656779258335578562595270244018647374699531166377053170104790546213111232242916830005813120357045086732114417471403307089164068348136704337419789094715942241138328497104796932842444532892397180675185023562479914423124172581040843286373652015298580197352297244719666553695332736999698423215323097707267228105153438487869129096973781996457514639989355446052778915822899261752840522617632585812218646655907734989014424564556071850930602611188661786115505603092179373056179170168113846653422381402053671867513589850404679343386833940587791375673225274939803850591272957045407410504028519800703082389091744037492214143095816522071746386087313708662442964666677779225600348694524326697140822846966869865963584808525995446866379656622820073728531991173267168191581493999634064631514686407005847687233945644422171036291456266932730165307117080545519577938033141952802268003761377610649146016434770173233617527409229912084284750257742399892026218186811313913662571236217459096331979388751850481636451842589877125555166348187281021265458694491030565736202138868636179943923882187000956152471455599290759982391180465238143637177964915746591025826168337231083373082029621238883898775071510001398824362300221322736582576800693981633211211940010624387029240548889894365629866628104504491997800843564233746627795969721687617321138907064482905001290895008908878021624956270297532587374713310742616821381004709955746470217270135462605289779723514127866482707251599670960450924992001708275029660859240578090895385908166702904685302550005198475380644180869278818856373542475368225539572525664830894789917415291142350469658350452822795587853907709943230564674530342115387676846700611574775595233725738355862700611237750813138909450068751488105702354893824400346758280345180376238109737623020600027350026836146997321313493251926406268968736849682227516096007410370371247964626996521879314851761937402285739434387706962513345359000572274143201383425973474337454213403692594608222500511936835660515613877719511806213392971937696489432120806140355544113144051400792897152177089423324665912563716112152548687226220989174867931287812053964221742575670195023622569569946136997741954334160396634475635793797165415421064779455236867775934630137337413675250622327421333677287651803662087153939888150577175594827450606715222717962955170648159797489476967588699092161913739580348585405393221400424954557646729013682328879890078766411325768086647412409801025881955792282404070508403311426931221358351785081420053259652407334984033063915942449943419966543795424193896781289731592156668103653824241379916900661749691171526997006603853519723596870367130266737373474901607786427684826758220953097937105950291345850588489732853957747940664539833855556540494224704826228441630225818577063749142629972537373545717278809781021091376585314749975696575417216371186010054436444243824730652116501893790617007691288087307618273535822130578036096180193993182336690300040814678586024789175516349254287201267231112686889894754748265413925292557747300723275090473023285772628722525790185778113813478565203312649915008893062100196925552882135884381866776638389309219695994832001808358634121348701479035743029612086593230489962055939550443828022750171619231458408154881402643095150035365410020149518464306450449345275140950987614467870706195190272715565840081495155706422580684358095700748461761994376661957429964164117851904189383170927591310826105686854288816568630775545286039399748806452260033076015508075687304576228416402503472962064900237074700484236671260245099452617371594056487356509787476411627866230189460307715665317793573580586930375130297097098193331963710532105275866070164850881354803925033831783212421988392910451724766643520783381582646350618837542148840363946076270171166372464806679924854490512079842119460338756437538139457909676515706854416270797495413647919417905022788986225887980682322028672839821300390640186121133030038719395186240485832040943990559851326773447782427790906939366327139045581221193522224477794380058296972888323016658775220910788513948785709560748234894679991194710317251864585047200949878389362723478877975130348834861510662540183613897886618216291954226318940858758175860644089247822436538191082845428849644528242586778634644925633302493326577214372377175200179029292727824627407231826082603017055985646649144700264422313167790026949602689338471384910334425310242968881918278541017318597505387960113473716785791317441755399038569457039253009515147290880431894943293237315827721378108978066527553980514545467390848468729813511054562239165500551615160466506553028846366755712983508464767087368751198797499283163248123254666753435560581704863344885798043399660076801345763585042718578650647193152280294519150800156997984740704273810853086412659425225588083792558569236472308413008911595926041656749221160799417097271859262802753510119233281010727803223995788039803432047768165413932344063854686976570868500221470633653325153833489775293079288989919448754799860743254246082527745874568761099347508040345670972035796512693853549017442569468455228665201390133036865829552820727716118987751304053955923334904648550730137603922863825971480046467427531460356457404737429578634520845365336388628265419622453794384276907356423000024554679231944990462529326187873535222588707414151793133523020657096180006481388893509840948624104359848586112041356789247371555041836505115068653519625505357424778603573410435831887386624613805080083866635057365168637763649691497018675736519489067544877444532283150792067944920136970065373780934884932155205264000403940543539929917509418408786173892046608896727356548463524632489322549918992582391271388082299285432756517139188056168605125607161111241072827980186152382667226664183289522363894708311174573597879573015554518367849095122426372473243231739514654178785114093647062565101880024102513537562181216953108411876059891313197928702618141015701586542635487046752099580253938973922976759542330439657334278737684713686150170232528136281198895881225443288915116089628802692314251085758214584389100387209789929593365978913068018448686912316597092111343709125817658441501000782900904305039624067348561883576891202744575031965456661877792467359718670303790652972043310408528481973065049782360621439538640004039833256544483030591551084146521106374792438252904448724025872344191641529066461730235111088070119460039376568821835333644797524457718017787644068628558127265229916367299430748853328526883781324210556253454392387732003445343923791864482616306958119112266056320807512885804408152042404313300869211791276783557150302748100042048333542295184984780378612170894544961653073209615163547768426312027369834385428359962812886825119164769943753871150461253335174668152953694975350997674056924133941205199030614533237946421483923014017551254499036050219123678870845585167627185077614009678495858755063549292082496324565944477907440826333842354486164458978276686312718234938294916279797118333539086113845233256816470939331749868687552037895887109206800508577976239737305507278025432205874124366626978049646153297334192294407114968900258564228700725227295954008023717419588575677112180303004727222837442998360105954719139688825001699799959157375251098850851373988532024025876910477347972616743221674933547563974179753077436730502995251694950906387906545745030172438870926299764942034307084368966174405762459700792999970629278972312300749209642024958168464564340297829834045696757166030157405911011614064705953169834388466760092869855345782969276276380687794894275055742036665953054593127802419295081498442519230011282258813668462170677652091442654650550370297915652201624241512406158518758877379014151576561177760730056781916194391794657761950956454669937856204749524710670048663616971711536327455255330427435238699193259076126902362557147588817582215272419345331767927294724206641648615493759978807455680944299734075762280379610808027092325305097689647352564668361960733731801113620168739577960615673903059148689577095433788268413090795655658865044622607740690925447092873825045444918790938946032710398100887208618995061116535774216357261903126192347618439932521273871605094825561253653863833705041971192064990910102225440200492492961736352533877825044982812979982529904751817995153946749881987740717690110852125963886290342240787652241207131249061933600827116162250325272942688645011516612918018778009202901896934707838012299047907091086693920484983086411632322345304791661005023829970962758091233366313511050683987943012348552638492259839928619184771594795033009437487221457612715159883300423947810884991282946861785540626061916534480294062251162693441901840771342982158165595191811273151143730398278569529076157217856607528386655179766757145527585690524775002347897550298633893942349894677725052930391777710319927872102470655817563257686638199319569295134363426521468163881656918508870099853813757344422802186610850134535650539159532199454518208891950586464772908022563792217271892600033185288241340517925485142137562277640008270674133030879341572122526651970740998052884571085789332162016961164671737001720784526824837662105429572770371421524051581150784040600246561292283579010662094783061316868377745345140325573558696884388274144121320210522065711639384241790172505321355065963283801424078847367829780659861850835476910450567908900819109883206043497718031062966605521623009177354980330908862796955275125331171305754194546098018839437839797859518955546778141525576691066639068012037628628163379749251458762324115219498382971715782339086945307406560981400391929621648270249855973334056449840746930369638549939226249223132971777322912389548903789808444586786327657944479364698309435250454119855133083308919246190438120748530744109584801263128329320773626061229361453307859568514863442635027260523314329125600279011396357463400543038937061499561108697546676862090361562821948111516154285300773472596687049329223034650445526526346775602323305812580839974920426065633949667510246124536729635064869042968416492411990775855799403630116067935676070888508803933244834912749982295449477369723661516666079070015250485536282100581393177372234214144980710749232809362325748538471464428089951898857030722594470902715067605646923394439299387390232117393314214395182697682930902853448621782173446562451607813102278572050982175617261743326967113322249621829257361357570562092579677293450884574292530977477493683680854346386518675211349607885047959665545155071377345967721447023142765992017954006046672641997619714142675597472818515262308132102573542793230620276620626912033798728169623617070396492680124647176919161528589701323514839241160463380824304382229685817031746696624962247905546836691419658875298201965555274922597582641752807116660186841625078373562031920100248505854675802113010841520555288146540602030995427688280546262583207655516082434076559966620221724588427456039966281739561417450636897103170158041342817554630393028715463691363057386072089973506060059234748723766165591328760690392401152641954695661348330097703954119315482162297235457372924515711347666720983268448232252822186213374328224024677293709074712719642684970806079489526496669714151466654524132056975294709657693909455568026887088190618737307284338793442922791238246255594667963850311191257818049319307637247896037727498584482345205719522877763741014188865919819893574755230740014277760217531994816976547206994399438973997937430805009302344052948371009039525729499341125963539539991910175745140571700484229464311319946218698835194391321396443694896799718734842376052787320690870682151551721515356470885638905722115905879815077431299165436381485889294663092374493286816696904782356966420730487317464117275489668144008125641838251840834963406120880436914190803596311415311141631352266506887876290952402769639946101325530692420469431152016046703694620674606158089124913663072543370476281110080518594390655767479101023406877211237872375938502370491710429699864459701952311667140142037122495585028013303365571188607946601376854277798017475518332505249153441483583541061199189955324469523745427015596914266455571760801603521263654375857869022511055352043531817568924319607158195310431650529010467731670507034183741940154382144937818109742069651910974301701731666602038952530174451774618431602242648792610599720042579001114479905868829284382602832454912984755433464350464609274021319649502119163094322606033902352924006306249382621962685694551336542601808209549811144699992259341882277721802074720708599437114031531774340820927517513750078803689774630350622213591672172814966227113728836419150399176592232149551128693624867632841652341438568271224437862820528220183818135416079329193847357076964819558123889229272820064953215639614239866592033909763887737427995560382076636004386550074478812771561880193255973544409391126824030111394610148341658430545325919442685677985612642381423811284068878546024247981111813391468051081466602827120494967841483291421487764257885648458654814082186706886750286259720523688121503088960841540444937613034419261273890706873299194739920814802789573233938237219127734786391800032286111841370958751348889739013602564333925831460091375320775127504614428047556253834929486309845716011272557308178521215750104046797517674923005423817490337293153467991548195176584131069726769863819218021553892610867614187704674677281127099152692424551807879252535896119324575576611640305630692401771441685005220188766306435895080309383426528871454676057381516502031143412053425834821846149762839594474988300697688437517946792803203432998880628605001681310601532627495727482280552859672255554041396535931090338731979319649675158443757000775890192653946415326667420348879996178777292374517596953677106147230931362577952793945371853380538512415410456650681808043084784426191792602775848771801022098624986974465977622694533544871303046478122663110450552197931262683232247752023866748548548990847702763234232139599895683997585372641597821742899061335548115377360321038204451675404374495251791676147880041565427713529610171194508122947754630296245104888273932873777280733657640747921887452819622532677744125610105882703783360732414584628739525232112870742148499019395894960944248272216897445181092679762204155543413119486802851724158263964452964732980573743469179472841239421571894671838917140527475875433759801367852867223487111376338451709368321627205319856116177452577220586768126291552437000143930024750744557640438556023193008160400443625688801029123304360394252028475959845300434023306597882406482739736111113593827952751797234802257882466270592328904431860057906577558613875968561352658449076501602339164873298565090241977198533225813856759605891160889836139128461422531579933309252149133692055365266842361081007377584994988294432380731978031324508835383200954453487493955021080695245690971152008001518134810805952744566705295729461332337850845259313446139110438993868851063003836855409111374494777515603699277197782722691734029769843390122186077460945927236865279455489314743684952779607122385259160458728757723010058014711649808064491376912588546367939577939565594899860921724265343161249890059297751757232692398567513134468590069862215019984146176125191025497044961998226000860692313910364835863914029664120809738382175503718195206974810930168213644500328192185611974969968735327372661580409890411994575335082290928932722371250464836476390146327289239658775597070350982358488233081664609595905779496340014910690444894303166741636097959232154935622091038048789702828653083979545460236639835961920115023853718172644779817783547609193920382639108055824687256430908422305771862150408444148662299330718125633758425769129789915859374873410072202624784851152321448615553973148770742162205932583409076101668683996552922937142263828046325335008493272345516968404118156627217662645173872406704352332645073338180023448755348068650544139063145816739715933814705661845455447583130261510504889599669977088528784312868687219994084161203010109741222433003551271405138052957825468918522005178278762628796517590255170585977030205666282046127030670056983399058191783976200074925842639774581034008664937196974666612471863661919828991987568933308271064524111124950622083904416110547127728684816057783691325661174861874088758154054331155458865230398175089509475805311630866516538854573533694956382660532243501709901203488948988614122670382900088484328330104565805432701529686769926205181017482549035128355038551791172788596125996724638917550676033781639199816644022146034524705560003468316058286294950586233287484584877036240573166715835058775939989402036866200350061355641533552092118862046283126200260403180948083301780539868073659810358494478094731146277879300243644853895199604579688291028572735250704968725376042713591669329306094858443620863646206015621243298938444168081862363036065759802880669560531675552705725656196751342792003817433955481420703145923746904176513128669525434584910308558047520234054837124891495318566650917609033342108620855137041193950455639517586259621785999793573658252725888213200634044262641792094857490333351621479620176840222360464068163890556114678494103157035644101885017861503248809675474210670584889011063313411172714440537056609324631994922847539818609996438527086920511362396799646100018297643110488504616345806887349261779541189896576696284196380024304652150841601757368752849166678472276386952194829157399905414803685616647741771306502349585456450111383203848011905851802588539942617311502366690275284344844475848524325071868604541649041257212827928448298800710157924034341839774099239845523870657287074930383003149982671857480827536664983750363151427246051508235887812585371014550959739996693451379139586062779427685116303078525026555259926128686243392592188493172066506952931186601679443349907251674944264430751966728213337664998522212542163019537512342839386187374284040417345149156188322014708964761767931056445218187334988209451826768850060726925251498428251883083270635999141225444388917443675332597417225233916027854815168566160171578517207524053097070163645607982612266918929515015833557079193578870916727103819088530003221255714575378986690042176877154837235467491244748155244266296330711963024496955242512878279591384981908623210114061925664602843553407439566226315597392026826749162848215588489382076370389107683455154035773636742366366551416139717149655374610491416078016582717705041431615426054416285256356196773050618985821850873013341653523025110464914257719687039897814403044879645473126841252898295626449565662439502712951756883057306373919316462377789049041231368488553890583914772971975551486984725841190930031992297256611260830190318046335771007406265717732898542874841588398228392590150415095530795639565344499284015588431143344916651016006583083818565287582720299582840530893389008825538072879692490364786404761481255376008023409027979432488563915812442330781807311753330753311543945766858224319163455530017247622288598080807800180633681160395444663950284739994160489193338468013183115523258783205540908987360707548505180969299251952201145931769268157671913651399491122570227823431994046374307140963539910618713381821726828414752016322491950259845839967399909218591524698385669619997576992645234908746046605463109508415378772974916834831536645231302265793712075089398802657252911309291151548121734731080251697125239310522995587826492723474868164128165214710082637474868885651928708784679583323660817929797145549337298759575334757443515070479532920550151416483410251878543485717713567473393625461297524453445818816281385475884344997405274532283686559996939114403636086602341309913118210741185149062592770893979512495959288513231013163546217288087496769886379636666731133107151065419101412172202582402794257224440592891625555149764593357246227027670875405920735874542411274924994636192920018480038051911565895401422408603967154167581430332015028735906174481174151112305438911200099467385567828796118244331066862243110431551887458274038273581108277399724284728838603113225027171353794305426910867312617785755603815053021755839188396022790170146961113027992666183739041571360293246239412698846112707892359682453735679211124261755137703140241090962604770450540291728326670405196381333465916044142403789571591138643380849202551914300760765511931147014404564010169049254760931703066558698489284544907794926158540534916603786104455595282376408055012535889892072475512607230499102196241771114216698303416231517402240914149925452641581444002204172194564309331173732884872288622402141357221757960167224534872469275263979381562726903691420928880634206852319556243347240359036012539043815380122073113585109054083229457322934942376356206696688433156441163440761168895924424376999717630330751466435680613920940223711391116179436086910615318510493831444555628944570981593198037889669816187261243001516993263337172777693797377711435645412357500529306268367339975769231665074871053679360952862401184124229454734140688854290770128290964885784233098785105159633424266803595012211659415314845868950652672147803570772018088557071319164042126153279116909202616110773999774765581665782370935757589165581482283306527622179834087715696224482757289612805156604221626342981705938263905886170547146275735221754755256087292802614897675844884268493327401330867263658346889747940660359463893403752676564309874974961329991093281781883100357616921857136586896270307239800743764598342242976625316674727113235612093315051206582623255728468278388772060459074128799293911170146495349176525434150560467710004707985699264438104684067369947817990343795855475392986527090931583025676954678129995142876828210350824495477922468037218935820115963086272274418355570856781725369213867511974223651939401640596334799015028920367215188654928795145235024796835015793955812244340467089165496898798980445385945997734581941242953912805215965325059824338009545402406611256231879167618359285687468264897686156679114701706629229336792200617137638536202619488766974201057195479523396336299622140274469994762482105450531499544047507840536515365492607988285819775795383353784618045030054500590083864061603366195221138409332110382445410423850759729057361357062362794636082397466890929754092695621341604390714691354479004326613829580704708187863177455215263045294392557431400148317215506968317025488279046242821497050326512760628240300798441535815090430354316524181715786185213218616440846714033161361313678954175836446136973720843012340778827575721749847184777322228243862131933874656336727955644714681603900778429856182726754473021556716046956221053545377324956654763168243470204294416710679038153214647792925778188211388867958522761462135396585781271220200068607576963908526642264760795721284534604048824208731602764595147180672512621213313469417927316863909898940794375585067476671158749973525474388785857025538688314161366179620887536343119385561017514321646233733957345399619994403944307402786990197399096226041765456298741095166815197497781597100377689497820845428872836082261771938967031245728276659360607924786370377098773814737528796316926351801782096149742380310182934982761329098400980299108714846916941786849023646377354135421739814945164431405113144907321927248451328894979621955097334608189011248277781197620723386125515889387677351059413914052020158028100729234372800631635280669227087442411390377391363544721543433223564081529661373599158003372083778512229943626314200969915415662816059694705168652953369938611549340521769864513227351201300059482072680569575051887931664026359138363372717275038202838963620883853549390453622011708586923918727246260726236741444438120528412850344114180157833422577928175913424891013234428133112903816797980940672293741847668786926213671297478860689434544171087473972899448452488474779589879451566078525090444898608794874368794813137051855659941336945375776532125275385413862501066008228205684041035689059483896408362688000829793051222020561724373674289423043047097416979583822052886173465283095312641578265770610914429624376749381443035965416635089556419544126449116790354937984509964218841349937008362488865635353655970220806615075661667695993802407749530237345650094588556621538237704548894781971239319793010419384632421580684051893707902103517841663163072905873482861328304678372489952136472699977286550725748673182789982617507876741948939723816734615509571990908557785157939430664139273813710820560885526572611041347671453786717465659593444090637994663172353854034932450320674412418271992317201304678872099769934298825953192529452773519413301220705950507701977565564212833974947846827474504238628922076869797542924673617298379122199196828400162416323032508054329012237210926547815473030091947989636063062436424724345337852850207753247066931012655234374902243778264202717237310380881306363513667452517404616750417482733176680418209763772912290880146960213099626360693918822214686047732296536767891724595543093612848711056648108169712433094157784432024922474340209565458550874095023463526200399301036671384088484488293292476243292315078662917993825159145417131205641256008770624193360973944254382618605653893876542495438101414172479973806092585588836973221018534360531160231805585778511522593514214756271346252182867790762020663999638699631774396128462421637092257694383296632549863621737566480955362416580177944736521947920964098106544713440169079517808237252943693011445464010007616899863785316310432979056638884598749872137753723740348618157346100511491624536908998335044681035589892559831823650053095656865956226203158953974413474057121736897266963904645609494275910966373948479176077867935917830279218331885914915136380249601478027406040642748768468606690839395281831853762292517028934105694009562521067093928881125621928941464688284465747404756372632369702613041914504824335999115629572698218408926019344375289805351227124722326469006944021872952713916096082827481811854940246949426468176210681164777646467962155396247679575299767588091814810963160519077454420550856951904420768326003764147398722519201819388663821025266366159155004429840914372702147888045337178609867877170344806835617888457145795772310376573464217218964559935658574017560745136793949839320320720694019197801883768030497237322135034555175577698237053314898531762172912009525210988726286113089620578411324284532476240737864886263432770290234578686887084689146240942885860884181119715499319048791889744887995078941052957774580635862072675109381906911968179430363843936702357862103069758759254390769450383936595566233969110449207928259353356136086567743763570070159939537218609191182159241297900474017014934232002841573542270441223648472369997934549366245269468346983151214544370309448969162397755887603738396320021854842830593055837411038011752945246958692604078938551337884367870241382342940392989164821689706139111000520041025369366786387898399826939383107565473337783860333678923599383827732638253763818991524836938499493990462389101528168334699795071177890148161098106470993842454943281413843740596508609741035285772981107027392170465686130875286191329393276102050747025959368807522266585914528532664390448326286133492664666838415240504612007202467140184136058378110248331956914926170212050196839772597739822547512836993169539006731847932752783071714044109345636687698440594028673888450014129852947963787557181607846893173386286518671981657040034814300105388442785476136981714814118476000413077895615352639576138428145113517671410901948239888646306863113655711348110478229592847405973306483432517715756830190323538978429816891285340595192099903526333896118862068854136110172938170378821683980429731939832451119718278476919461065818686091522130327946409716818386891199305152623210481815245262169844386179249068313835885012356515200347044200414522873847163089996134122085458914876643111721746464879654241929082460306045055540353005548285599217454485734229015142997966758903305102661258852011207428517565154411685693808547157373536558651218068903792810798643990168149168432303904655919314518413650860820605959134187243106879503279962368533146507399992901114262500967359945335830758156780172811943074367379774580517865533809073566727776644735672690540523079762620273895083736956838202065577562851342389761248398793782299054459916281230261046515591719571765010366804322505842611679000856155423651173974928182952522958117036263221277583180765847963645886613741639090723781149444700819231908293340739872800118101932352096773632257791574103249379178014318211840485017247243544106213725117991583624031731944619305934123086233451171364682285444551873020945238011900848687045544871701747242314757894926544073433372237235657546674783533482439468920780100137685088773102294509198241155663160943614150540648110849263175537876889805219648439234687616212566414534020242698514264188536496449802271823863357767130327086897428685199671523210170628307612248116945534300765250234805465091611248928323002364497291057929857189214217638179927158624649419973753422205895604483794518185687192218891581670313412700509441107110519922890932106908585496936859389429823421995227057551119428335901558872658692553278176947874285082922384626178235592992360203295286027568313907184233804033135061077021080222579014762317165379740994255766563199829256077945836039880818370231877520841566343457905969887239807199745410865332082398438448855292969655442667404729387916625716945661695387427953931407929386115537596966463307305196199281478959580070969200633227763690947356306699995132498778633757581979653825769393858771496638949538784517243337701605662217595779398587935966065032379348345063385202806226605924395378717381720053592463606458816907650700813580139370670777108160945040791633458740077956496321275101176300418711462426825258172227502808629944039757188031819518618030179111783924002124672875190180690821659663829082802182156962975111283295695903981430661877777023066080301977021312256683282186870603897840603439839678958990355100028153242382478316012691824399773244765964642720437044495571702249396481264450096032970969804222365335456134098474529832214400121728456791319471276069311725252362778979842419206005741234316947006743309900382142947049294370458864652903286053403715510863691365345521972213585117308797173926743118950698938305296524159281626083875649039361859190154543066704974865188859181640660273518736933126169809716227976311473460788946940312815714113233517550212085318856723535895400097258434639635735520035968772196727347923168203851382006331541682034085805435287168226945250622843085783725720690482880478963136410020312640085852818792949067704143928265613874384213914400503056250308944469339814518894622147492403086032130898819746492501068154791207260094119342930108821642803082813506180890971785955244263978013391638618857815512479840196394234644963502210878260510853303294846966533178531202957861305611171051579404236816910658921260556726239459917965808145999715554984766765957755545186315106144051065452190930176961049040208642964226510401048741676746829817038712387591157450736818123583978034716406065034032628869678335088135167517369458287432868930423292968054736669724253789432957438498650518304131224061756542134642483884746123057068835065731050441123393879933656123240688627489584070099474464174537385099971440571911793406641026042533721195757604117710066943416275620685596659019657731902537490940659854430237608527315395528115442743698596494185986360542032571142603296555193269966862166927121268258111129541743994725928693821060127715816605012506185831081603087620555516147070070636265655210761330851998170296595126385641528472702343834688163293017837307435535497513570949657200542673261116265922413095853305180236372729965671595742314436016061016095997075745885485187134556416057428956924142429603906348950222746489390262002325651108729037095589309118017363695878565277878580710417652125339296970896282819955395463896622737948883801459400149620396794895990753217385245664502034719254186863341439683620294400171079300405663641545330267586781420705010272672720703467292976023316947020073080197117377471463015295559534502597573370816067031194189706370565177052077290699656173192396014173573356715146555458447625917107080859752968178154288589697817792577686660491455472653504548633822270464366333905319881149639617111508131683694224352728095225972603958312161623268554475734501212668880341946414220180136422688658883129327081071869615367604090310706240532825768557670736034530478534444508141931326449438773410835550032553540276210890029414650360366014914334047279421838351933501185779926548679558297463930895293552545517189917000955429066385765094490341165543366266162151074367665919396241315971906493509785319587445771002337576341036400940528333385602074330547273316395497311857419557481662728418243193830921548692852093319033735960332075885146786561258750791504465293306732293884258306058616040003962892551704568916545940931854598670943408512970070406372398754607054961073069904566060147460842129492895007022017591199404810007773222271374129240221257085269451021517864473506204688888989786889277965577957463906841238015620229198275568916136521742411142761818062549111504245524513048790932985161588535945842861851431040610144197329024603955044240289962233555266332101581451778408986197601221386978052872415843040747878833760667218493685775170890131244931648916555985585371857090859891702299752676150514735587620104117217132181786155063226293578578309106012030703308512808221807094310653297629852052129715743037495740096545357907092417335607669698482046486854523308547056144723778153479204702730862939706910389142576651999310926300925304481023354046592505514763989147444835659058687544366242799114964962151347861525189236747467093984687014888406141228367928796198054828452457609093779324366013440970166519255787682474344444940019675493354260243528087397794688395817599304734798386643472769951085935694743596357068588540747048237202336689079034174919528310046858684823062312491986075603944739378696052887248013281178442631372461067450161493589649230604244656138254010280022073216618734147322148031052941870646673606426798895621048471642149041620771016020133864441207819985754061779563852305239830277584987930944449934250638573564755694136647060535473286127517133896987446475700274364196618202322493454973051309880003717012977600312296956635805418033360435751671801534572673273180323196454410796689147395696176933901430930809999763854646231782248961116727147627483065758971291067938922310604586660588409078709909853394453857025968419459523427931048087255894410095950031501117629669923853118274069909475019390402832025007920029537806826216024939764572585793263139012969153874253821778455125145157840554529660626094509196559479692278339740414870914540354436744684343540161966306039656721827836413121666722637094007956239786984216644359409869875585654007635519192771128492485216649893853043822294666797690368374609060559978694219267744352827343594158331989731610963109438597100789557107052898287638716610784906807082456661295997492316642609923453370234503151810105009764517492798033718173261852649574848813300813289084925352107913139031073982084015864757464397083222479070119363994826588410058396341678723209594359968916043530048799314086445134324326595235500799426334118836807490978733218898956222018526802536051631431584174353441278807542137113249108540773819851763144644554672058839809541920710715771569673279548173614175669620113298132101371253552840185456745908086740067564534252503430520715710048057814430466146878643243626733903149628578056314807456976201021469330288325821971401224117996094627559572784127924075173525690601176734554963253275193283162641417494427209009137075696403023606227059340723562229160974362595343142987630468180696583726974733656788948126934474150067320676575921943252823455810341089411470035704490132357850062292005630856761418162467274662876908170718484332794667250846481642094425379514386521307236135368464473514693804791681046650282399817439272521971532651115065697702694492013378463922553001249923275429338512430939001683188554782909739610150342927787524415105415994591328947022169233054134453357404673494599857136507377106241033719464200335730988184449088465538511138280920926511949174214497551780007467211907526245849409198981029012079707723273156038078460889190364095735281700043946946047684545237824554154233022733285083021218932184307196466103670489667993113067149718588463677586988412287577940309890497566225414784407598588633492283025822089420427583462826241453195435579492633199492524366196628067599762464252771714460604644784747729305151923659986420615692516959584509305704635830192814635978515386600495992225072089978604747941030030868155694416797371431646695116972761092066394903633846925381217537354855676145291236871217847194654398943711384878603375588994978124698908706988702466229845262860416033120807670772773391464737911064492815613399991778686235896789249738241884653600644952434587729677843206957173781631549878244374026337166994909347001606660959396013176791944543152350875625625759487266311200536455505974546956866046037315249925787488798510177571980345930488833001836376911337298513141694622517144000212808054783162853920562080032076961805273441767227121418537564675173997498393765415273166415317944941621738334407930257089745962406654902963164042384993404773446914092628400356804471044866947247260884674547345693717272865439896552697807209513176838929534102615522145197617976889393044702276407668621581936845260024991592823491967245701270109971457975892185594920335238001544466449617917107360419095969527378700907962282533300657740286448622202087252853883521247435197923810088944308670187173471159047594631130323075561402411213871330271515910268434872637508934925259325473738902226840006204399929805818037971673286852450399031878719808256563540342716174188790490854170729274351732414836041831832554290008989891022615280414564709220315001832853362123175147153251211704264803235739802880862175753427597566307440512702791198237911735308186136093496537830731357748638656413919650781259230214796439779807090998364026133960088883988413222636386797340724448995241393921427624537958624074325053447940612162510861021835645248456731188101791385922484292928753235791156591898202915349913306714791853903680315184824538681300350555192304145492950802277144434013733148954474621415756509070949868107311440230632496063308243175813720740779723569742312270001142399302137982312500548495930601128112238337503308311962535741411201464019148119422044945452352313642401013869806404464954734848606573957020111922864009232340363381449749494151708654608713502082707937467252637768231375443539443243612787495819053693649875115121212413441002213234284398945284328268595804637912762603701734296289153388275593331843189027553611231848949639950685566523041577007541983113727854478129420037924504859294922138335139655648591322431937797345526954208430533301106220915336036338337061916412189558995170183655282237552736235545825305506425029863660182269791319001394318354184175803342183804573690922536331017882730723267266289113789398052065233690911755787450572518202545184685103173570801279808979068480153980807972464402161672384187923855283872256358876994851763721044083247248119705453358024168872819774339582175218793568903149366227714484344889377522090985930524120494439954975316946138805596353935866230493393426940394945153288403161183346449524070951225389228853820160709417119986740587581962368324631342512091417952705984257631200215424814938473048752437768065101642485295014786158268630383367294723540437161494532824036653405934043529766118343572231514142907966280864785881516598789332737560022261028399231501027989338053182399478961733490880478184034307546259367241550130791030641092587469334936130242719569835488823733657144261422654003536655780080547565147655001745001272208110215546934610792621396482358813503757369721596915201038571612891079336631071446178294130908588668000215687405652625600569818607953582581212648217050590769480937791214252146177225558152473319634010794515344755451887280693956461968908122029343482170427341460248591537047900693730778597348558876448365757814118966319935265352753530767337857948545338419424822537184326179620925544048512426853362343599912607790178458916096111051308151928449682430359628741457513619942905525688662354698998886260791397877457937905785800561570964031581889001466081377368731296265630621295665660769969965015737586898684285133542042299139939783037582445940085972832325387121903791764004399219307670891372358519100727429064658113908629156709369364699344384713448817628919827032843726248509352302714586477177329939516620407593670823702830258124741724255553835536184157689670238066971934606710078268302927384028504068647065581600138098945101196088342475540110082519426844223535014958283319866807239487961196600605862412598847235531755158739024938504968741443286789878896010695725770089411585715337363999794520605989648048045426712873309674899133760988566688919745350115871017002099984976988629253898728311565279499841175187552452439064168797378910904127435863010042308478593974701668941079872807841623974442294448485721364222221323066272942447100826908648320652226765486405090200908251085954544530507075507959817937875034915272324674847004336371780787787896421161357802073606470209545093446330487640449421658048117392657161120383437427539034031173396477438677779130952762895203840979940430697339786295051807261970289964986425337591070713268903696376770959548676059086669822051647313644414340273473250635321142887432607309679690675103074916289728357514915723098619834581264522279697833535151134852246917021246338660177157848542216902531450843113687362517058942777059326790773257083813077716098406983248002611145146525050151802875169284010433976956632532896008082022942393487307170043617303380100816109982278062176393611103424262544760233423695381036647753561050386316518456037165213782274093955259798653885971866218098152537557067379570222881030359883885159416502039400819990640007340161697151024663841547395641559602286722381262251160028428214706594433876282345957035595473595540414114932608853801341939052890880215086543330083465919977634478598459776948738172920914081883829020393572662666184227729849418587115754311625306782033115614520071058250960337535883405525261323866244605066551980450194881942215603171120327706997134371656254553959385503385935345440009567338517302651310162834984945432916372150161772687822793466203240787157480025636209305855730972947356905655185575195432944441599889547431826911587249522541799515584421680556460292866522551913112633223575432692861317380774138143248321926114088418453445282060373136499228459749473134074084471201418904840862473047248528987496591131330031838094907909833120953588776016218004504765437595283701624652951569178727760556524053193796824625523072020323578763949450807855866921091508172387718264978867604214479758288930970094083890953655919519431240426820733182245502736889733527349536674821620970134276066257336671168427069226740771316037415267684098967947187418425790836918036332810249942491299397218341415962602285317393893391125667619960597316853364021781221124968266543920412788041199261883462191895150643000397577101690274174089963680619672437778752920016407197240841079099745555741096129554007654814291329093036317579028710927859059400161234424936472786515600511303314760619803013283164947512123769653570285282208619725931919454694163370423804841753496354087617881843574339424817233327363662520399737698005105810052104055505596518597844033502582173900781271451314183234443911606374593014984781531899891191268133718651103212096224609739006646824372422668963625932515693223443620315817841073143763281090525853838360499677325648403013130379343510499043147898942611114188494351340735559210171914991781407705699937638797272588298163101661172695265236712963011979784469708380766348605148081356171636725587477359393824020714492713623370999112625752641490419696689439907736343751048740268783650381065669520584180541133076093624124853698495609424400102905766997357121834672286433900019451629655425793509115165560547479269662434107846773610437539404511171508410181165076289414383206197633217466515142789205365149979633516697114826626704664085048050781447080355810798235442411719168805908928316230018104496870013296183024335517579160523836356821146987954013424432054887476366282077767402662597182588001557235776194614349985845592007102810977482574694059101342537876063242917602353032332049451736762752033796506359656170694969003482528230936731252812691955579873609912320601995830011262645217374843850267261325644261698289800884559356791864560579203691934680852117095264566238317254403415009202509474771920474978567325700048150214021728193960629004146919877682493298353598353028229144876658616034134255603226055438176531119014638267879430631970303725237462442104093746505184457299290350028260330340842315541061947918069960809159468239109044078542648356302023610655871210447398504617323693826781094707964599583425313427033853009564439174554443081517775344029612160037804905064926446645940817809303271784035393327054498164659043259922094888134224917018955115407281903483919761872554195855057396015678181159967237439500778652838234732944256169120520352913751584241137536518017026980699355358679899236955708969543169722576160036394770316281984738675063090906924133175991483488614410791298918729074733233173596481017863894213215418610555233729600426268011305158205294088271960166864823677771933415217345556272262301106821486709720689949808468097225011218749388636671724987142786854106028184838191092478811769315802276303784612767865899337066021021764607828048942174262062338328474208095272940658931745305896623529643035041852723750152834287357132562078443176446389749366243280259363191355501634859487641417355550592442977080956764320537042646454608340176388050877347346223966420720357022472166305356368510032104273237405109148627922367252315913342998276807160481954806582872332925601050055336361897346972368730371090472087335541921056502680596944268666380614828475663509817046680979982190970511368838126759922817907049606049712220948204854412171637638804719886134063421618050733198779037971165343395570834409917591874557677732068438642895069676772449965678198588749856642914187493365907612188938922339993062130371940877552170244717257341135321519761994061137353202148916721475578619016878966179327480933310639462979919952089013964321373113308103084437169659720299195175909556751574629809284861475992169035245994050563684146181033116666931786671557227262742118060928420086028910677346179333844759435309476910099516369879629410817574428700900422054112222545806014607858195303678157495625800564562763567882753660659983830141792862196077694200721286139084860142477298920939782082175180076835937974698185866604835405366752922331509109461552205556892262400306138455635057041074175131113126142782339432806559816008672784193140202314877508767062422876809294260167175558808202106804547590806772977454665849326404353448125773094442169872579603594061137443966646459446098336837341815807764253901022326885033331113786484636879793198974431575978209221908213221776667693119477793356558681007668555797609152984576126896847375020244649781946023947693071885185971167555389448183568205521292394616308200299183831653161537440351713296200833122233590334802370227294145356730156886097210861095776893456304712851770574122508311372587042281559461130958634676951617497671201691208959055552816783818507847312580158317695592637142032315013206886541945631855526473571953135538975745366427011834169084518302676143539631543145309734691499042613339262313005236053714694737961447353676101556697658297767886210786751777382334414426234832951866154137006957807057180088428706189863850069392507781140374025872666207908959238989905116866236784101393361398361368635026938289272424118156507236073907396299481355042624856960935837987951433713079218646523671684115211746931873973835844117896598207198634713772424253192218243189672790383713901256095424810484849539203762274744439415807223406061423664743416007907373479029484218185646489203320642417908557239867382406169519035254360768182298019734983029951572733196249453280040921637464179300487591957388502811778801041680197151731892758660987422755482798886389293317034481495677890326457427884369551906985052060672121396556251412386832075705601764599605411170582739838879700348650138255929250947705996215966014660968125264579804353099738388993988612571156400918465839851016010134622023359499006869714664528747176869596651800439874276176702483410275849815099663255905095033657080094562187290428826508228902634926163304962456117251223080214107213954833833606930555348469597198746623447352902551935778935112324014897640184619445695930819026939047331253611706562513508970389538251280819942467076297359120986757549476335463513167131097471275752516219741696928961310566172282376526578436623200598917003875278346211487213682101098607361626312448712052963551350469084406013824754009382364945443939649756639174460957913073999902914017076472606799828288815535745930596027603749776171039131701644344289343299320451421223772749312600724904095134638680826360677131589305272857978187490053388540526206147943095335307440145911403502510047586879436324068790989977696956744510645952185315911774271219207460552380450684363621313484109587927170454525026178357086784313924995586006051751122015625059573530036331380777478414850524314094797627394229345873418037882206600063983556902126382660538852468592852978004243298147562665711003535755636640139734912110135013133558482832590737458886283031002594614963867807129424242370245399171207412648983264038670056940177977941885809341619570932391025546887397118248213479520139611388034951077176696188233776771633981958818600447077522401910657056874828064415032607518736235536735057958332363197768060897965115024119902326333325047371545144770260412649804909155228885379653475760806143806634636407059187012737875959658588056264934091787058714000142975193962576572849250611747341213145028682403095460923207461793394787899087612854354264145762498829078267290345109929555848183415605926046865815469097395606374170500033682910949427455672238554208908435989494216878249356388693974457975822430002492113130948546466625900581761988262076560155817255173141186590706057773898864240034062961138156204228392973573293414314928376910651481049789995308277626878479875773850773235389152339251271241134780741249648343252402638300660583536961449569693345230853059036996396502213479758771747427984704643450749928872408127566666672178955853373483716904713435004975686811254716800412485713461975845580319223262846302316106072789653814841469388185282245239113272068422121974861966349493867787302276584322108413585216344719744952519059948322493384382347281012604197750191260497778153611278011826484428788770975251441638118471951823141631777850442600270651749539182101828252899880996559921107486643518385343766461554452899297570528651172716362991630644617989648595169902919006720956753045575682085829979548611480695578580685007228514788371403613928692092863565144003079052537435407125454897908000615907949391189552759734839682438203676346658713448042144876865479962279454186639901974158289535084958690638578786532682864430302554379384776820171722907069663029899267178544025876894091128471256947610744756040384887367138803160470595385354674519642011392540080731019103684783459093451255385907675455460932369073123416199994606146887735841563110706608304609205371916567880316343868900908809417570565513131398770805647827684882383471032083653236396843265738663774488359122030102614555620257025712843430394391551244006028223179846310990651681147419365346515236795201876801457021674180390327407932758207195362145661234740673781486943068766321883710458827983601832250096864921114817812741061015284547722967467108165515076721795843997104028660004314437352329651403929396211520851131946819372826681107471034264368099271604868598002268885893339113415881377910355029193162751829697898099385889251664810257394184407123852767194685162237957146694003665334260892665141188952287336241341353753834677088655927882479427995670192477492809707671632554681552246516323215891948055860965351182056524965288383078454688075927551898295130270463447171431114844334707517869794571858581982376738591055383752449502987941133947205832132257082706353577731209971152856623354529546649633497783823690832661495974142340080451067805209080374712596012947261410138534611499269176381113146977878703755432189604991828230684937556015809872696441636527685483209834578491684973941579873966304019297005207253884464379938535736938496170217973279392637006408644654147477610813420635516957613390538958106502908838184636898358809648338119005414595015227082512886871790699031239175960046392354736155799978798877686942750429201607335902699708219203586211422704402132535223537422599154846957057408408002997618067399531402548461813047475033042654868506966104593481259666530373558306624434314025789178667496944153832390467551176477341681390064882209667262907255951301649862017502060205801193171743380545125478891390688523011481542953483785246218401951602760700763437817107903720283285262874427721330112442783389463712309139369813588181806131862008752412832657318734089522918865690684327154736734473945864308132781764729102929473759089047047567295443311342759769960277585905134933010639581804887965661036517852604091845422674110280433356381054192368482667333203162276672011110796097611569197821020065377891031673877896839375247516899225462263469009965396186031560855309317344510059711588573884220137696855258273534525441768794075311146893859335628810410131125629998944049224017108277181619925712976621132064262498165045273095796533874422631660974286426435161775875329726942740668525055957442504937106901155575147004888272978295011458347860027887399665107395036053854122444704137717053077858593292585012961266614376837479341036631815213410142488079567007402569961099983672569499507486219433337125147808718270747507040800443496315451781506877359357031554672604717762434530424254821447946423994703906271612754358958426911189189255662869482435281641715514557763457615543210911438352509363903756863878609748358762360357233152836910485509816844386968856012039956892010787498756349813950046157624382978638119848321274878454266130990471170284115610737217450713217481717261212988050862454444094401663671539456834498559857683996819086304750063649566983526108070428149228335969781775832320788127617842496786897930400850846600869635938049214599191792853172866443772290984242704829093282178151220452403042737302428706232704889884727969740657883047826740127158777399346639964620413952790692843062298071614353000678704889870837053447093244224159072582455885536359158034989398509383227971862960878908751817665173315161752811848983807093505680733581893002036116725430707659279512300110700345644488067761754632675951847681068712044470744052761202761081621412735425491267631739133554932919941701917038576363783249981261236807144389562897728310754523400609710822993158271363272256178780348517465331983786762621441718830678175410443066899678782964678449598269913343884462729168331662377339176248199433366593492100488046338731544866662979560177933373048090163857445402130178539915275686294528533635089201913123780091942887712346936849118422463051957307518247454812238231496039067662946546750875447623438389349168151647601009450954071330921437466445467070176843511500014387058499109237008373908109350438362858185715924134103455734238814551185124709493925937532148599279531036284229325201872445792416652666232498524309582374901885680729921050399667067898479816724904694965036121720523685795912343580484774413399738884444805962520579165337973628474076332196278818309130227155562166315226783923048080497054240428011388147533447939463892417141983908064236765884165457379805618511209267704395202213869679891709036895803932163401901499328587208117865756248613218435490846755807503039412470990205981086426660707391816602513885834374191066788134029271876440804888446262826144396740771979667545402637010571601558289914038696281307498492001395013815117418554653885916099902593214164588141226386074030236723958736618025399535004524064772936148965025117834593532739339901245104971481991048385935458643163851844301859335777791546489776425098650280531868290913813525972400056201688186005033951928476865242749010862213775473688726568518843603244395777446381808577352405848626502460106325503133765123831606871626174430909140652637215367546512065883350854563510996393246085450543734460223499016146201940297113841062930087769092576825973531048088583901062250607707110577724193141791880385415667625554075416776946294972123957174367505744750334924241694699594738635564961748042665692244577130549160083735633735594633548777748056320761100383351424332277630422859005397550994221983350896126789098298189658753028208816133026997486855240884810643428361684167940135322172474671986550223777505801655259180931629648980505951863654360406021586014331073492008248694838139581939057002518330211100801657833398630964773014437603432786860145579983332610862042031080275765302375158542119297842674228335502832556626767356255107474949752767654458454345185008675093811915186335264172489406555667800195455375245614417231856033786553717021835362880514400516341437601533570264280178656867257220800739087252906615534098062012550022908973151540429255160852182685597912028124586789482503692091630650162268894854700926173749630560242786617609307112315304561508477894871248035207626825849037211720933387830116783678428710641097635459570353860339170185601141865505449527118603402633911006731242181208664337351612579646574598785042158418297601347028549203357484448745376507503391197024010533371427632677095714608024936822806294535792295730892133759530486682086412740401331824000812823251353758531993570406933967359682802028560693587806093714234849954364498813426630630627313095969616865346456877699966029719276451233397649987928108857500819111283664033906464273537273709374583917735942970347351636066933007689548946927481256108176399118682524985326366945324814834708149674149774386745573731659305494489669926932544877671496762579686562993106448332264675838959538194155391357720116667104891843573276578380045524633159715585295121521170036842725580699016484022925856943919190324019740385951013857229554696450783304113509173636546388995200337678404650961370735254497847227250352455060119519257913881135893967419261086541150262666786662121179926634478727701685900465583781307383702791340644242537507826846981271662653467630973126190348988886920680520278246551575724735322878509501494075611019628350721367351498840671793525386453561904911316421079095514070582472238103566448983816419528383331714035807239205892911317755459097798582576982897238792192957933412141066675742546060684339057832843351554030125562559174216285819041811671375985290347405011234306437872781346674552521390728918907219015112522500081513881296151007618973394607233796640386076078340179301447408683849119588802294615686250911104497487746792983046195198809823950990759534819130339221258316029795847192835106318725496937472855387782715721977969082641810569136327106899416208626751105891268271401190065534818428766625461930441659317414895126367323492039173024351429983857399676905417953615024723991641194806385809319490911023810030946276496086579468052976363829118534754476572640635766883649847232868448401621212060979447470455270231860904346724343951007019300796260579337298319916828548025269619395571698477099155840904794890143141519177788048933204592949362153231865601692704786414735242139320482759233060829085977668638070396302516944906134748188568142329600322671947026966629306488650452898820350420722559232059920645440207981174175654878140731790972266768321711288815626723216157052636544032040089683596541595785249815450484679112999752984676169857502730649496192200864032872584962083462650107348338952021889109980463600441830352022239273756746915918757459255455577102250158535070111419791086912675268958811422978835859924957646010805301567607639634428281171168032879035396142274747006745011476828040660194508208973053531600898034676418170512300191575925519562105776615016363684890545048524723964140066597825652715647581128819133057154468769518760223938937106701294264686218871229826534438432908543023563336379018402813974394477572993936114916014874938111641932144090904814215905181641068688456070694097414034055078026857380929986488007851535939256425465783996116876598632851638991066462437295952663174548552294178748483067593731966332875332012365473451289473816595456855063138773294810902975059631370898237916297025003952522393602232522515908582670702623627852574729641784530297953429142572656458991347840986471005881187423720696436528439395222774991607913081121911027746106880608923657862823729117826968373613826132011873567411765003055254048662076920851390690345802474136108185656016978306223954434931391875835100196989535606630669409003307363205645286011604510122496919915540576810961427791664414703844740006699505893153474183643583568586864714027759858906902076547423325575327237048426844660761794490213439820474130042955472772232394518838531174195574426818668613143046374078487197310423543730704409264240207213192196728022546456342880262760879561700490522638829608243192839426506162666026669805703984511163259193875958100629174531790541773189786610603647842342698414821057662983693260368906537885802234828515283339312817920475526447186385887134691535916057266331992353945585643431854673297669860349912570560369113387230308788073997200835246516801594997567750812940976856852824293936640965330186436814329906466466529876682037917322977634387119714680602162913959881785742357701997869244414477019243688258068094336359590829944921845811186287261879894721080392871170831730917664198786509451305489532251535223494458067120891226627099314611418771938871047603010421162990025179049507793350694671143442612896765330876736550859822295831300099009696854140368601927969832630326827601276967257311995405124456312006185724643915254337928935586795458285659195171481563589824810708270251962390351657103457913179437061301964296914688028458978110825546810605165072873049299771485261552797659292666684968160207250936673960645041079161205695967709224053491097694566665287556854861769809661460105250712385004542511067490055522685847999331538443117719645708336189535325150533782465757369737931840973161430799464052671967268934849967773931011413818890201525640712172028452614692596827152315420659232031330413935164538162745023665807630265280115476630587826433816374200189304680495624034077115042127828012402212114828952502041412568028579056851470492890418798899775480166364229149693945003357138803184992537604289153270844071868568280059836562148591266804473953626248377660153149420460467393846690613523424691011316330000769846594820829392322684955964563071271823818361519554236130838103806675576151056556704219791982587198322872050742480401664540142975935220407939689640841030688439703437564382758270834604676523850132217270224402884629470295435660031117122414901384819012928272077237126478481056451797560165980636403503021117711976514052372472161954527233899481032585753760953337170973858711129256667148042608728572084698212618000954489264262883474708549524883321664156425064089511800405600324092331582087002560727654278981561411225639142197340684698573950164104538264302279824434765538534914034960298691708188015358793622988587280442017353138005738891720530515696024787125832400253207688411060241823031776930056146151817624837668778410438721190742821185969179420374658417542529205663675573040898486777955546070286267287947036731975803844278856601015880010769355178038940512607255234182617747636484762221985925635269195983013861058832665962262339160350564719736573575607404231951451927481353094664209520704945208591681965106332888284247663693760517782545722249596571410387253837031577558313868472828208806090795766731817374235518118718068421881924157639942452917807833136777921018747522131720415021847978824417063895236981379234190484720040646309833842655387707043927610133370172673802126578417900162934326882251051837740955284299178230600320882125741658814141337831018933213825907936528685222790214884377444567512384648588154829233331519268201027436530483750607031425880292017954119081261489584105253353596620403852909531450227471968596671669233162206213633327112145000766423935598454367325082487965145293719078317327287095259587684037116325231323469153168853554151092020580845617420964804255439327897022865134170762080659026403600348299125107423481436343891000797835880590672786903663931194277870307165463771239480577423077342541788877352919796168793840684258461725694330293269253072710656885673331076924147846848734241833553324533844284362762868524149212533433240439944401952515881747117903505410999302594873038766058981861569909208538021499494101344248430848693638989021834804096965380964220504817812468393291963807631951956532242825827530141486305390301281516593765822229376136590192719076374315311529965145359317569326064545513273971095530650682040585688387413310481426707643845784738794227908560488637555448264982317014612810003340434696494398856222133131174380474018056578247038981868438249822639043275332213164452653451659171353112818524290500639110260226386359169208151413927529879762929209989345316579971004714413789211928796524252049001646495917580444399843977176442385113939741178916096369250410112250217762254066716613597720731037623161791143029020945766309852221901365177912208932951816537383207961486928608864437773699606537625695298832148466821151580904617926644660797320503731551979215296455206597381736472805461931781750211923422259951208675990026605993928121292994025445761583536486882203357623280144225466043390394551560844070392318849018386190421999634078713447318391286941439733988656317919892751724682452284522850286474980102714105473612598152040481093121512253128057094297889927052063449794543235132999192619380036829738388843378266361058178019939895038481897668556025812921003785278301043972900685041382673553911312463996204141664115716978502503239749432774111470524856007663612431861735839376068384894905025465315476556018776362247371763603451521854297667209418580507260840500869947071340485674531879757011691394192245927258385002025799671789693668853010283406694215593436452104356238303055277067148734119928678297123626259765512730369379753925014135407010477392954711443415606489604737009560134111117137599329981046988191653593416696147948265268493508801306690944009314694624431095777224059075468572062398109751287209474119348936693040294782368980574844113308702903079477919984302739499553259172219617626907035030544175404967231644397733202054959211710520523062090850632256159599450844294120746011614144599581471990334355388941907830772974579816512052197543862025395125254554909379179202375493791677849563249019718065807215456871276776708524191357310690862762905332876725768165515665994407848122503504928918987644108154656994195529246646926148227786690881539580686758693357863703995920199946085537335257834217030409410120372616136429151707114054087784758887816587170107377639338451529318016788955361339337628729972027540759625851442171291163136848131688690153290862990696708064175717571738732105795989190419954315760693714451751270141702582506977924316842183752819386194486335862455683588063349441180417324880551065581499853424060114265106993945701417147408801467992096002220171514105136679409972385269432162270374200063337615153514462661868777498107361815140907655383861378421440644514566503263102229237197797931969702397530752444061807890440611958272870626517226598892666661523259860433128686549903942101842659828736492789154870895594839472082155431604116462220363989340960023295971258114567290445397496579161548134615249684795907276049162131949462982427433972103492847768142562844573068684944148158941907516715286924848816890989442281219093790797860950904867247128248405246939330656623551551745576324061141060775583266890786460086154635758321422838091866962904208763878763593854358221163170538143961352244883583708159558948189207359749006686468226591198763740475228088485297909896793938016205456624820117076466391047854254405886966459566607493602220901080035712637714702562460572216732500025871065154556323676881357469093420829397429957771491903233809611716962733496184260083219215955708408233687702996193506994216658115329508786476584155304279621962599471984862671999153659163543436548757597091099884006240539523352347602865512699968057007000478923312043167534301968665350143866896946928361849880919628745998024295165936902106094373037033949299244890920750756600756227929056583690880162195649850490083257144529289518807764383347384002367554593710071315293296782106331247468070067211796903782433554466261640677751281621264039389483571222520043280407170987592635293454271523366020455925426073634207989412838208869422074317543843733439438664982503538218940368301098350508353151755607914924843554111482245635282803253063087749432024245187004885215044237222236889484300855633228172568524956761565025209966224833113140426069518418153736045573172036542013539364897643106286162345035597214472503410700323090285820011248183310324373144739537689523273177864536564272997006541925013895356363047201021189202688928949245957031970010301885318062841535607130861617431420585005694575387222155982662038298941434333063864565972698067476775893684386311423119324076518173035235902174778554156528555637451608003119646299995521939706205175367008208084751131073615040140759953870858881397534301669553512256215011061918544512175389967846028437524566124435517574282441686285948346316948730697162468909402792259895210236306619057727420724082618316043005059312550688030166993310563944998331462417155308941794464097040799698918850880842672366065148133865095724762611927230488481272636001090208733232003339728668657294090698979409912119109220442961173879734960914316143559387280459369469033722734403564432435274791743018255414546487993743999378326971478196652027292430206568643653323405278264626440371645820378035215963139520684938451731667307417695417559953020374154311611463996007774411098773453238912960661164419211579978131459408752717158200896664471598313589636937589718281588484837819856972201635342881462909906799514076914133528315273259757913005795390022174496160178680840065690417358048847252890613340751670561091010541540796059159412928384117759790970071525904000625827928153455726754436764185099360223063724098611835609166526028263882870743297061354080378874887703910636678527964453495829419160295455379781445666272822728548579707086188784801194157209463124568890973503163749174403953505070091325255820888282640206398025776192872675493261246757913533433426637313661940598305499481783285855735983704711795130815671828387211567820044328656294592651036393295910455363006512264348832953762484549195251423933491225606815542846459130444813781098272632085390236332525128049939759614816882016031471454675140486194784237963690279526040535510928355973683846043166268664193517445602139291333824943464361109007984441356162661629537841966508028852812909460710931316206093665971836739362761815395762586810202429800172609145663710263967403934595773736313779748308748242626576449764064528055277416682163716300229961769661722346791590004462192164098144069475428997038006579540527036496785959123958546768598249366203095254421993063764435151467316988180236625397141763903823630537779767889516208100500985059473080593443031559416590226505530268978175755521195518182951693525307610494230528549185654961133993729193918062114513759321515070043811230920059238795702848387021650728231883262302940525099195996323036293196145796816509965466099618543641403690196497260527252109059285733213254821589238777389838227195726015939055391271797923643692960330027777949870036375499338194269088137642137562092183257884054659367751115453374351718501864182257356572805106504351516473632533562454985222879177751183556185920362040334192784152831121991817448731002607534128105151580056640841488037453885880847383813063642683598527451927653779379392583600479024589210490953549940769768438883726078504044821137855836806656136070282009640252247259120817295157120753598291827518474521945958054185950428901963778633157960299200714798216292019710498668920737847758268081395727143019410389793923598637482479248298621396112846473810796150397411556810033168560346781513602710692411481462067534967898341372192687854488484045135589264098679553547721250131321060781440244001865005724515923052262778002273602942731352606090762234781294254034166659293241117472545493116904190939236307341604673532600720096056560468554970599783316730912540547980050892072169533539428387157613163214872621292994304129941943608111705513399436442837320184008201513901232880755727464246969768992226661854976852434090063075862388917507818517644667351067366676383367925910838373627027348114730218038403477811231741850363840903247208169961022489786169754269220917038499945931662014357896644853510191853171705872677411996534899662145538131629577742026822657714868365891830331827239463559647943097262419714233545662517285977255945141256500660195438278783924302996349024282295752576324948628819775482595979439809629830942772139635066781867491602787465744579482344581446660517810719186942642888826641019652152183653501529736342947539522453059330588721779860731973734208519114836816720129223945572487190166059829393967485726447048687339060994473664545945440614187435506462384250909952397610358323737608094983858070033288729134197537185195710911898531030932747187480004884958568528536319849765893143749867464890318020337196532877567559797620100420225919714249272130332421346833014618912615248967155439304678664928065026794036602668378429272589667990077574081844036270579010417236756109688833018821507168960450788787361524559490255614711819419651935010163778285513636128614867897795801956472665492322423023837792984612041213509042414381259227431183491671412898052296901893979465186167364366319278997453710347183634329417678487293939811958860052802301939302247939329828032982599542820346860654939925148690789221761912048300514058434573287025089772118720584630767840205449498875367926523356408159134364715211901574346573772799813994229890793842985208027876897111414221428183085267217209547410761467246771588505960656916670540054326817446888647094601161629242059758778946990675157999866678303935996570552151852202780431697653664017503195347549205923970090816752115418940592709319471949261436443056229670194307937415988099253790708129023564517222407630207337038674829149912243850863207847538843426625868403694202788162085888362905160159312429674779154952156884814450383387017481929402101524618210974815988327660517524475701832874222348899134175842953088123771793337707247544957388065287523274804962230092629373089620458813672232033029931729093194184087155639668713294268486564796677877941246569592844679161156057887666205578783289381767759672208918213054267969467795352078735029277152075581007958971810862872185037675089063766508616460337530628331943041732498471883799648583285738179179298344382106392428191331001122299751868537782695145096552079742900987892872983294637299531473960686480169611702512957242005535669078291929993811787460952666326559655953598038367638669068580876484923223946801951128916210337563829605842848336289698522943685861276684481429776900231745218142202754201715310138799336066244504176768125875334577571220050666294524886476591131505484746588140970859984223070557415195414521431419931906178598434528546614867017708704413583368264837774027714157575847288367885878479292682466112560375126336465113010488181374734183776287584507786252181089081416998289145516558657689424543156811948409290436324550683510370424188729162926734782518168679308922319993913416558788568258006380028471146238417640475605410272970260598653304684174170715240051126171946275950716783032291082860537965400612537332276857413448622108893216660981293517954616281831630940998180361594757992043395551447337855333940442424331450114935208592676107947948990572011768370064188652179361005447292109144371248385679961509600068755111851230662351737770471252093378528522943148311091378951144705169093944493594706252691687305846805760319304750081685790667043561249761097109449188359681188309965818916976443556227672669626436351499989647020795371062982210839537772015376551492451667556046327081272878435707500838565517424944898372422151319373942447331865687908415520381371980147154469954408489570414216696960523683756927905427354433343052164678172754813124131078850251907873785543290601337624372922384829399512255181762536757640175058419886704756938792195704454339362753375679823410303692896770415392968888389705950722064176805680746608394309167181515095498054697465709991340574402870101553075476228641347178933208898336685763932558423233039888576052023793848711244825040081819782764204640475887069089797977079275031132502136543028800642045926769957031823268809850404874298132231840552512950489541341183105157215927891092215245041672667740455900821071256826154130280579581064021106718482833669181910474372171268164613319321552469358765799778457951332277724347907034797004332233743807097637593312956041252501871767924844176751682959328808825013031703900453496783531679117363204411304817144167814891870636494366543961109101340829841337182265768361554334707026671226245701035637629872731773397169689431897426851867899351016211537693800973867982050930210023613544235617590502220874059866230116484820635086798075146419258392102465325628820920271420715779316995358954316574239590530588001916117052228606794052534933385935567721967158035443400291140820928866882755669696520742718376249729525617447115378557693512188277206425153315476644714659131886553352070896350553656824517953788292563777357384844713538016373377101819732831860078688976923763043219821501585115781560537741296633248160391225746937438051834724573779576373658747247627229003472148981468248910150432082642796864981425625756371758660244345922417550877764350897774228439173044330417556987220010196904352145378414957445392153765477214576646712004514808292839019112222427597064018918828168905477578238494798398883470002813605502709750844447419939255871051116073321785245755995689342524459086820345834742107896679961506244519453179200751326147352420942224253218749451581296932557671684219499707308073351471780277614528947568337067430466677908917086815616143513371300466304491051333617091178451401917597685695568841111198852971250692576550879627616181363647057333749344373591196632410307332687964385406066093293110057863952484519111656155280373869727772980874076176001572899707464199506775708616119131252777154687117502607798851842122681717209351281197293601216551588342626645641141853089377742296966378225727199114759728835406066984352169146584934980873250019363925476456541841329052604777356873940095402677670402274691922593452100723529031090126753336095319614652183354338416029695254553134301658953917036422473351283195527079923578001025122917163044385745665796758830347664937650939041173233259498772397705032671737648396029991390505266296310702261539092019251650987309934520447345669046105188516737148950274773036735793930717239624001703565602673777597552233561059678262320309315202368439519088931918075040656008963736961825531607435646383181997540921490546280194484614729892284375821412396872716279784580822263844712897378899924601251128652124599589911106295074024538618296179154291033755791738010363561796551145396659958152429947127045667380489913986659845217877751798385020305592596550845308274376704267073250469752310253402519662469495234651736342848328077685648523566044028454988211382449510813506313038793388412874969352700877431347159056177220584702022492756945380986655151508592456608858055304238865341546506265884874078530480813890675962661721956399844276687333651064337914020230825564065824247699075072889705096909830441235528605720824535219601897654834563322722917917401469316414007693215546886978652222957316481875104827215701069747072756273453771482873181991728591539694255866910963425811105005487746565456073383208236842480919002898137474044037982507100679136654234620405839020046934595427684213524212666920334569857221801157427003106515440659599223415001451508447609323294707581509544165711433934377337479976580634040712924681794581288536795580291117571791506356972257796416394845868253810307155873692955142095226786043115219350293637479660607035726405383366887515616893327765487872347137457728166171216152803745130146637351022486536939761676511624152964356124170757521958037847082244505782746451379745491826944772660185760545656894190542568453232427900244406753736095597108134955653844913182449531705652698700572851865644951427200888876312280799875757052821607227703573187854948076487567297496989536023801716305622577131992582572184357172386121121317693633738502665105372688860421073202673542516137686289488424337282342139080442961518149114021596077391349121175797945061873985676946202821703938540667751373282906603336878300516762324466712351534474771244434715684657205672819976043850904308920754421329882880081490758041119233288174773736558853437512244721182255215502072084770884600959905787510189429469632108686191259965861548732308287298564296980769787185355845342217313594625258197833329989347061973622910409212990161358973577082375697539970440253277883437781637279844715198369715469979909290820722926532966048853695937793805213923866254234721840819784439097720644554109567876271513529183520692630786627952846747992554556226708428512461716278186710255290893056627669279722728294617267614906302881063868975147412503268303178352845191338460832519555843593152752243023436952218686776174915154637111630833296696900777674805098043214676917563038789434074368139722995034842827097641198945429299843053102594671387968606087129432668091769516691725727530795870387232438187698791447651670553578517535302352245058951920717421616298207763939477223172725618111131902846129282448048062300461848960551525252662269501359126760917166313150134622702033422535010258268367297119432688880843399471265849852254917279265447337629768466585568903369947192037513491810527096166918894010588203411846229846399940782174819153880281861624702377797620342756088311899384357889075568759453090661765632799397340579603986130971563435676782944849183660345466633459167164886940348632738501233404593480182087702367753100804101717929924509700282326630523327445558295335565640143158424281137291337835386116202798302639180507223997552817542113354247118147424617701098106343706165117162559741396621292235063229995089040567052579242233167434119199477859846804393986448398816040363117139932162399466557461074737269544755899537766104684272192178952417152905379722745587171806048801660175063799130161668216312313029609423671106580419837292740304815351619254835817807683317832968904066100268358035571525800631598509622675706412565430438054344206934050684095744181825765154892032485328662233614632044237809391350788168018796695828069728129940009246338038933872067939052225422392281208234703022617570863530587094794241906147497575892724186703370402460873145210944907732998844281717843997156269375185366083119175281945819694829990616592930997643659591805945363670052074942861789679904887616291539919508733714362387941173990668280715267532266830659790530162865183842341817277307194076929913438601082576617453278113952043102136958643090160265644908645819567369219971612800821532841399872315516410576755100706520237552591155653475031400062236595466053083357279025526447986391777888371011595757459310698710094905125058253136816419081836074005926133276455840448265952792743540906071807460945675584137495007525743073043536828232779514114866552563486384825738474140522568018421811440466002128191430158782460637382321404657593169788909606289905609557046068606454364437603378044025692562719915775658630526386142225823747049233858058029632136692504830456556112625253686075668112451500274186393177369450889704807711558480563555126879792087940808974037765910291672383146544095280822036385453242393976951965878332742361233691307858591581937572060353417938308131412050167200863288064633717197891401871515700269060830317182448787012014214015976834007764503454263075055022960612400553105199578496095569694515681217649426764493736446774249244451533769320611468597401286331960173289667244210184295682779971166908635510204940790079209214476113894450989192256151541246100586621838314400079843167506530092742257772692928872368572421131124290158585193956617288866855301704959317784542304323014307418651380322615681623659236097384450610305235742427906142878062552673089877683394489739287590339243179665351175078042924735408420412708810092139893332557019616297718475177996948794906202236035618696890844233986347683284404376593111638951337598942458681671511329187795496613031473869213469199212577464175874070181816856443871663216616511757732041064919449751091238057291143550918374444026113456821659200645817472992056773496295759683350315444806375186602483520608847179673499498046848449073803849603044963835591022814541814606467848647904971704695279742197733894629778608048421024960771866933050812870129894398977099946182774865961664085848653574256278001436008695829974371297045472793847875384281217439472796852639440350533986991207127092548056037077977935461108132984188662251622941030980714325581823763106037012541248321356581526073840254091315315188389954203294712037455864504636387995706720453727306429917278625011299492081731122660644727943931636429916598361542261568150242343045333322485068421691314489838042043093792622111604429892618587103726022380196645936826099110803687887009632001906577517474030593291194768461131906735621009017720971107638413064422262508807495007890263667904148860543103772529076931728957525349022287738446620650094321718948713045575853009071767575726496183894960950241259196656379692133536493305732047303864775355792038465120471772132527426972375082120922024458815553587445714005424782819697137816468330420376441021711249591874295647127048620601218764132219512219002687425253596086761569229041463179659169703728996007238318562137225834743534054780711562956352498307955910908546137049780226286898668839543766659856349788388681833838252512321993883037141485088553067688846264570582348620840254190997322316466334966831290399744726438877156092752194243254317754178245069295394611002101863358060449070215806705380415464406590660761504191784701778999507240172192748660341456170695334839860087605395563800727141326317976760816650090819273247797549489721391110098791924594369800869828219215347429022388992858848946640044091183108481365597564897522057992850178411783941484419190509771142053953038187960798738214885713511612819253936112804438514776489935049278591997195397522812120428539969220230717221874264068569409513318696051470299345220505889245197798674904843358249116648417066703028819697389081173053561097320695037448907387988451012034600822877727561071788331432740602249920308177466712906473565498600932479039898829640929450860491153192168297898628179744270418329768547833366919357638005297658329261433064860881399061728839047854416897588180069984807033330710064812327242220135380992659695393364936487056658857354142885506623488032748590258702746680911841616669591333325381138871067284690702978980157106853500205084525240930261244706438590968596105228378029320120368961041080019617639410110472056924130184761485906713489390138774447266794477424800029754315203397858465031816316071699554176740528899142423454410437218144619180942062825812680814111085392731694196410723636541959971803507477647466793970036164844519534457796542231148441810117902867116177737978006383174430742466636062394222634822698844991738436073648801811756735782895190487891069860594605628315164559832572177687787787791467997941487069349264865638529350278964404236706707413316410638318717236084109984114203914733189282381362712758685552128642778469612000528785098906406262101935988904123293162324974281395590416116803256944878498346485966384590389201305461487102403226974266652680622810809064912993764130579543716548582809184286893078803330171984329226594265768812222798392456389043208896356636548464504774090342170936903980133842292216351190601711013885635945774826737763252400752313572239056124590163156655912026595997166187315719037877807954794064573675122125143692554862228587678993430188688066810021519367901337936529882025416006299270849812683235858083253920204282554294383337688729065999031759089849683797501046387304888607907357069207649673014367423256942548265436451043246080886994476312664032638767820922904564348092867117794598377538176210937250638750308739842486698542404719548220652683098347661159130286499793604898851301667748733744354364724224059103195815380013617515301561503166737981500387919334267976019990941344985716944831658268234326608021201577910252897074854975829628161763806688739946401990069316834333740910950551628296438418578163364223512972631077921211398870230859184585922426735994893523478466368366501918081283429971175413726673346806242971427939573454735229875217060170476643005391450320829496514836310130941887979412039167965004986715320978690925212371600690605487277223818129737762470170888021971595725222120976092338846988160499355791030438008535017009269406426868805559421388814088956946613929478803216935240723872916271762528109507567667087686187336727895667764420418843133833426491252107428088651285183903103092036382215310092778615762934387428876487735103696355001608249819202951366213732004870145143811914152779774658969524614875453076859705653102155840064305542804494659891103590585135529888268421011272584481241871503495882939314987391943353905764991623777467916635979701249794670738109831187902737575319133795863006776865833729480763097920632148521381987094563392265861248694276747949114185999719600214143976050070040362710260586174818394810677004053976947006067414639346552874102183755358955716349421230025153096013522984097525191603731901963481430266580497160179945146434389137569824495706294747691729001761108389888257935360665860873173448152055987742673288847682537578620117944540717120812399693178211577821491070927911098513640662498102068526639124544821859467267456887943078746215324231390645257038679038430575739203693988666047485546370943873717904502526875255773915577023305906322954448736155950406650755474920218321221137529331513582526624938344610914883709904383557448243420172470709136563533710128981769772490699991730468432429717701991067110640167076555504380141425657387891185776829156069985706299825600584268410594124406085903351714099303988136675505452216954772712140063300676558712670612226394016857229941834514029790900161368711521808872234827497478307948920026822335417746620823674730767676464133125287714037376445451764363381851408418110929457487914950306082360480294459289337216953449978298176010946453915380042997274697046372599514528177608551063049956614516145372836243555563542459702121629900074604555434758846548902857239537451485894977218739576322620292933986550527127762730540155978645839468868594331554700289010197117190333599687781296895098554205277098161854100619924478630655298936818350820124044498640244809247675023146791673128364673211792027466472463026184773878078161266537044694497644484289875356362058061991672765873023193066783559446402445125847068637338791040340428694261363094434684936705978484325657907297288434585430694453654167914748779399024269442355989825029425727121844341679440776875050382043278807587348095054390862210138457910272501635739197195992553551978123493203820220340307552842628658878892888789064001406293083675572424722572343303485410063209191920113302775865860451059464575067978927397781774902548742504585647160001985810776629192714222196994659995300448901834863354828141157487712038787380850109243000794049222770575258471818025947747849145020698245994685544991900950448669210302259163242390418413061473718961396583728293699173337147083274128428908946696022675685551446718905688921218350016649620320527748425887621522403131425768480873730586195000702264827814037290760218128073099124547730442767112969530499635980955956300523417625270108882790201726682974643089450828256722689800154289566775790931381750730368729415943017996411390074932301778285576687340942737164073471738125228824565495931364419640127127718889639717262125727493507673890986344341509482786934414268277998050354388951461336576051254181530218081388930281585204802975960868143415665038853514680091134637162940132292528151870254245075063947213324481469623842243575976992850943293097912456193117477122286840476006015128568087408786068776951279666114141371818248239625928435855487399332778868535589308951691555962314821029171999619979942643007212111249596461047254029728767188591891486542292366400513939111719216574179324510588140074798887116487243353817835202363729562057114698737901441212737542742395000435463774270231453331541292807834678997096017885057122037284137525103612322011184489712761131253785032054744619091239234812027812211994056799978331856223385649378359142706797522366356236511527951452981325597819636054379376967113692198271259232029587033578066935219208605785980062622223464644574781077828045073989474277748577151544968861175617379175848526664114104876300398008296068135208715286421333869196138712128219225583534628105982517260468370508455009574183280695160470290895742963125080012973982232216811655138486574254090251534003937065291519413646379076709343080972607746658170491491956734767050127872037170705404997288095255195504215120836412980566201221361595671320122268232744098627139280279843135622625254012662367562336522338637554693823237566149106949922241051222755750990538725277922819029556074014461938920790527939906344569925372427548709398698844613390798209048351327938166210247187250730440022028647163098213061242729216888248384996687635670208086946846028725608448418538642640637963573259248380562820421111125808606696267930706880818794526275371786025135712277848328261936319057972301145197148315842938757484381997439797130282019423452557921997493875078838743746291153360742737119235517068433431055027875916048124121327092705350494986550906700018108276268716009328943424107376740686873443737690422772246373723619925949914996841568963741549226784605510940125245238918769913403891989368558114377868047801002724986450269158067940349944252212845069047001112087836811517626701614435706696989303565212423289629864417120365251900138179224141912533098377129111948266751129576641679614402552378921025147166053572992496654994852699245945005445228003753026528303414375419185607702489162588095802434477983448395746622675690415801993126575537897973909927344612312499870942889892616325992735515951728986493732453957427743001106423887758446342878893383009739337112831548866635194814899667356477217341002703381962377699867289942562716814423291154885398899178756796541609251140329057953187627947209650929880546946614528191869479352959125309575148188274862128841931109749713123211317729695234783088523227782890222422229965730711303269489121615523261932790794625808905595784486423985548231140659599075686506993912048041154383607892511487618502936185819896642537279050055917626466792118328159946387863751148905995339521266660710761180740892496276085469411249215365123061047228182727821226008529524326860259849941143224098775733130493403169515386350389791526713860227289178736737110153921978219717429760023129646912385106577520671391372600241102382664512820693345967102493368655737567242925835898203792564654746347692413291962319753332269626507622167903051025072863381448908078958038649180910290610532398379845016134405116482599381876980245533126153718420264515344153449518951289617853965350563176304404351197971003507357495895293118372640887167543309936926555578144649590652300017063267701721458730001803312701267796161379638989171088072370646817807186694692468730373628296443811953004620030645995664886343448509288019943155710829893168965739437867405279427192382016684626118855594503939481267912516800828908345158842787673626640010258837387360529179502853314994320233925549999499231275115690038700387658289157487129468263140334475282229302883004081347649068619159027318448330113782489250650972166321500817291183281056997455944474039792343012776512828540576412978518573193592067087144735747459303832556242557257037432189926746677642467472742469062076356448483626783751360418747924604995486110889725263264011691073414137926155473105856760972229491680310909619366892912176497776680847446820208683342172244296148680373857667182140867783711266223310664803226674360860285215849410022123137202227556189118894111817360635829251101617364273342590440604708673359086467328839382809227198721033781254720895899028024632425866311171452239995833574816221035423876368524420792116722976252927076556202171361348451020262566040680598106383088012897927173141893679204266748049896990027496922621151899858544890374261292946965942535797904354217835235137904112131130914123953814336640271036343998619167180641268014963519985648923858410250208419348637574143136251284615482354518178766128976547365639513308481155915882502185462930024489689689321245519986024641453004189720006180931331271934992521353471919833309833066195176340205123239686707039715600014906823547493808599088857496610834449146723102284968696353760798226315641011704600886415158979634026290863526406992176985984360552058946756522446024045021099661786502357955930933692229426105844722913520178880660703208622479846197880300002339282361791530908878476011515775991956698298907402347487739230002012416985818763399298128535792651295593568322824045540016672192122684288285466781259404178408406917502960849013811749646791267461677567130410292941276368802370409029780996044965503710472019557266463047798083102012913233324595894750547211740147048188796752377115824159720033195767707259799284249044165218967693565101622622965261292640005696404677305516566822170398588530061749963482053444042400842587593199950459626898088896579987656269695654321506640285525375241215371801808581262631939948690223933194378749953398448610150721231366192360931514897971773096192280589647356848229598496150044047766406548192884205395473218903838054270393208338640305486229912064968924917940186408826304992235868991602387823360250365385498165121359221534192520745419306252824934639855060384107055203591370570596178893328131282998718043575366842587840323549158579746368507886431354313747681993878170803981118739910777071955455935159558316556587345150423484997360028177705378384164949487636947673758604760088318586775260071219470449418494401589891036049644788092431297371121296496403225146798490433249553903873968027684950216026655155532187033934551724881604262427266621799623238872842133624116668247824732430377773937956706603537414704304061279614028611466615070930078071849252235877614598214578262400303624037668339571075337394347132569152203929339211455603262257560475602542042485939091394374815351133682712192570901208224095717120752328967951047802438871468949364896592953928557397171273827846722424105436782846132043117123197895922237748339446100050336170183566798977692040067948855376540859576579397293483475045800822366166245918973436828835790241559865215901718871481133986958502665405444980585223976491876056970898112606083582611390951570265257630037240190991431441351899351140791095058844066902096171772838104308906391602670275880246684352495474717177491945375454117437011370850106201343026571636065756972742938498869792568154608230638680054538490923439437302448761586169416679942788886930358958212237350790084777269066069911775923448763620733425121429721528724036113829562206891451292151830749639124260943408464876231195248444871797956821826018705349113333053358447668925302990375192385112869249658065135433740960229256349764049975651717596917787870429763221523929534864411561097849119341687242342730650040047121852272656284831112327273478269317485589862565676020467505339289003876463704332887777862846738578473216589752662678555897724655883140307497623582058041761273483056469018856422913447945356346626217585149219760755575085296683266904582106853705256856740874870817536592336788097630542604491119359604108089712712044250288146663317651373873166420371051075292574735402895551445334773231252419999690283913701634994162390378054956504594210029120328937677192038974545490856629546754796460623925520529299845682894670044687543590770263892970460459012161620475827683846985609818826415420976169646406257669927404025838074364556747302409109393228849967628773986794756088798162212480626097084095597383332437079082421901790802006016999606995082668990086103065908773126646822102715232995843229371221174858804711353770682199381547567869950297188129329039698139970006068508641695951977999735032093036704442403601410141112855328199209796568283358960486990681546920337803572250649080337305639695308950831428408582165851751320824140695602470017472283565409474502454427529977860546512067321005333153786971549052911130005642076766757958788998513689066380533972163382710044962426475991519255540109164512000387156449567072824421885958331449480503826047994736059110700798371504595276655455743455144734901641927290872150517372966703489222423943879125992324670342163511257689529579323661323522573906231201429325835988808871171298995664578300690721106823352211323640304353980172711537083332690067213068077515296958438232267031314752012594953549015344873731330088280878493117797422761202886042722730540725708995853031141013868647934818641933418766768988142440705790633300544768148568565710682687883553344447734007270388573881944050805528991649885220408277661893989401634912098293850473264012032883862798690405713796866762285980090009422030359460849387007475863842199012326343702887284360973699590433957468899045496349832241201508932017252783091574883067142388116878474724805223331385867240893796909968446126388426040382049999726190139060155919873859166070809613757262756978265527356699309642739719315469056858771804728123562970790061858607711355096558949335253131074351975357937106199507558254330747321098813206761782691435989551618022871210070126520536870576267635055901919406602399191139221419614273194728148954629783217249042770256957995773238657090443422783312157123955402388132855385743508029382392232344982019664126293851973278816025066665971793628621933776557661041223876465174670526082438880733410368178351251471151460428287821772493843705559186610810475879208833778317954286397851245875149031440166398871281242414298676083026734686015309804178850867633101181193939986166421736358350513901564596875295657633645201462394380741342118167510907963997706139281085494960230050995540550761518504243291212696693812678886276993128645116332102890144980557226043719902080833956589712094708489308330530612047438596358884058079133971034007556545313953067962008882090530489840713128017922106859182525060453757198740745277132516758522645025226194893570723201835976768545871094063690519637972090163308529702661875344879361690713109558460405211193267469510434190756821330841864015036566657561399039823109147516952556384835196516173788125779715179803234738181512268417057970321901953062355814105411515787744069180659151395734570608057707817301810920289048931714224466810080861380998038857311830848297045009754149793089582323880724913060804777074341088188552323008135057355793162497061485379415741011215306470718014736183870965447224642450185644833806193318361638609016501976191161020799105771385936411701719130606967833748533307153110873710465483534563564990370913051850848399669554980063186976445057837891343078559314542429069299921857349915920866910801322226556375499356962745627207929058726197206947083542983889857953069473275720113845845074454466549635603363122821870151778754489623149473357817207237265349255042937883291143538571951693683775095899750010737995860748870100422831475243861110764793604962542177391193574033959211879647992104302741365294405735107707088112489331148102070510763500492831985242215360013634319274499862695961135489460826893243141712940772583719156499959752455060622781581129397368472304295478445156100609287971826621665028735152556529164830108609848745914719068851432649605410748797878901260193710979087907662912455755622742707249747759488115865908849155537919626697722746566956364356079530177898745700489387839055018191276041231356237973538923219984138216098051845337024907285930934326190279427870054172699130891221900621189277960998891798770377593097939503045170082237185679766417488865016362772552876746963581659265953844466165305679839093838076802668306275558808958635370494875118450776061271293388385022023701834949713052729451120469257674928689850645083387982154455076777064701096112501203473126573305133492668711911939069418423342858707132819709251083478966112104887435082921897475544628598628636074239204518163880646535520808796483221635932010581121343276015934084907299647809397905726382442730223998122353461947157311376296429883908940630187546949565080678804400042464221676310724816939927814542781924037695748063096404700431675071080829466021787889699368708647290382928830643445017203199921866763696277731382165653529514970856174190779661491726296176763551955001790357805352044214151905072387863596922394344051860839725212562242329843466228391671916866569913094393591991900562408117568178365850846138314252580532117885096558529296102198588436772753156888322110440686219464321493536965577293933052869053938086178582123993496815540999988765864083714462491847152389739276148591324702601495533189772468573709602550124313085207990313501731328361167049697430999461491266381101196969360323302357206996419214860530578419677859069328353190074613424646172932871918705221611958350285654459258165809937138607618159829253790486098275723564877336025777922508310155670242472455895387153102788706435479545419887625242866071344359625592803974754958021730420823325528649336238492116456937874399245704850904069018347168202781493845347376605135328456898495464314668317071566595748545054974894334224616818065500727556579042025990553849042231029033279954848906027964055326778137432695115119903001432928062936670465388420107722735574616909980856953994335808816707694379139866833806274867975947633783609044544559314224008836731382931114548873181484633056745713910947753939589287766003225840980267156140563015371274840426677767189689507330484134644380312060214184645223364108462548262052734772314396058202722838299067293693129832649439753258042670950070829241507058605300395696416610471308380803473379138718143428021248116704744595792215453343431667650725185853752156976152214578190168484431334876822980399048892946910950232122876334230365123838211738677167142782771358611100465692488707487832883694700388112587991360036082446186993145907904007159915749515658490954813797172936261149230516304543234307128199880373233131398109793148744457611408052942971177470314345376629844043569572385679179529979522216887686701133042757170646019323375502741782043006304879992617905728657996673836143620318876706004587628839090827392708072435242464833433029791749109403683363500646911664885851419591825745195239316773627411839829143343076721840636076683776244579582309863257297902326866756220700750171391314925726582989245308025712648403599559847458382867801319996726330482845628036453308274961131720376601726690720377153980785692107485688900407738930130092464776559336609497486866647396701689072712128275028235528987909772305066577448541312664608641701583002780511260967519769574096884764787775582727103009741447680245229393987003555295798230108954463469224547140158063886236700418412248077784721313335003102349249597825202451898570453877689043266821937797245772162640318322798648994218935706634778685119814101596569990512117216810277409409254258464719087563097938987745358498813764061125969053531575616758120584379276499067929921037071607629403895365747923011365426456944184541062387498526261126207153851876891844873194130011770095898073925935478421221483494361543686118968990487603986213562337619481657170392193115828381756658994398365409720606611867669978311242978470103949179572189317518292648148787083907286908874758372525822340919067419196259257986074360464892697884151044610251703155400483077843805083462855036903499522535496107965080473560882761967083665280692519388981236289650402007443697592738337111818102672590367000442988441324565193957209506280303237933646100547065653791614504450894385768158095671158362599274922613050884488011573073023399448218249625373812743386316365875743467951786145086108716727672262106306031983580307955342856843978716175444361870243091762370751183508904960306668156613099764501538602167181549607475105267461585077336091814168902413480676841574214596401753861629217682337415925673776465833839055555662034125574879880575766604191638373847864259040287659745608042954595425359007178238414820415032971605236614989140206196097711697171760652962313589001645864062482041480483263466581910179779860910572823164119919718054612652556013777655815721977989850896074232023953933857696229553051064893585202473661500902875893556582095289039063823592373640963668879624484385621489727333301549913044826372023502822586330374888374443870933206119205531083399909742747789659866719492614495213768152705472571631590755400474082621717643545603575997333516903384316968875351752659294019273760448848626409450347315652757925533865786697800345253833046485532657969932872395902824333969731179610434493795483593273377984694650568806064875933659602934604994424164705975133548639750185414975415296959226793280997816764551349948563789647538646511059222672479414597996373386568979537734818834969577023255707178862029269911747146895367146314660616651012434561180945506817759748834378116072497019512778959545837096510329146971987637151443008799999389924511395416375778293970527479944780355293688968821393121822654946301109407187004595704433699321006647088915158483592318159861933777466143693820592923002915104294204546651311204521299651868478685756613359819086559571876556953244556721110526227075171553150331493405997051585514538704816124206369950000445973089634234654599703778717962061090628872798810617711798706807792195493214646485074638365924968930020372973293960158262067018512590424330748210168162290022491159049054062328552290512977402371314451129544628789505057371774169513336587977817187618726233219819283777891813336170744874178891277791092988828381280039808129442728448246382633892660468782676296075147449268148483365925703326872244015971271719745939654146266068294908518389524630357858534542741813276069551522881242625486098120090618731121582094632895778276901443348302796440996498649630081969436272765202116762541495665590917875002393991507048256729616650738242683393055819295186716998864931680098803845482775622981802206039712800751251192825542599827319246447512962335353938079491652330063368111645301490556850316880862746437403132497673587711130366035832557485170090791746865199472467685403213663798084815828641976049974226980821434079461511650074629876948636405989302685375042360641953352539204533522427793642268559542565646150251635828494657919989868407467898095786343548254866514722740583377777088535935236228294807022031556405619352745874524756311698494277380488632403565703330384833274416399454760802740278043471755065631681730591916919562538640695793286515833222880592640668274047881476236599652337022421699438641466627491820826480091691747718819240334777585725410741475777566206947408593146642248137637859721791965442968357580221454242764558327578301070437813029094894760046169786118634668832272601587832170183083643594421710564601100326903395794635697371421657364034839492009649443766499726061629554319162118815409871591588084034642690788651701483140482828098729782719843045892067291220207801937431826790938156434059826416555535995854834769679940431930570004581592768496564684594410096028696899689017586716987139719995738669665189829535800004994401353994993366334276990845691104283631262123427324539578799913485051369232693567710544151456643638562506433760531222214652060661336822855909066056929951828713399664053440478931861071060406303332276764964012994873181932653551488837111107714131921087403499098138569971896420827745370132607776299532950162655316928699995475024902927397424342781926429587931152649784403915605976887203236251676673081625560150378809303373327346521932905652642852652860977986750311403533009234808107203082184679153413262534935659986108657714602537336632634384567390375956267592967535931295521346051749066566670966837637086332348370310449712303882110207839654705314724964495064763863821942096250053843170238257071014055676201497306380309179142340935824613089079986334163277644074950686096551486588600403842086590847599547127522287792659083689876215294945209445498944031437617512277370015297161750135777147239250687772741729436244479413026462616707892307939239354025994922827889198737430567511984827897682140293961858996655201625275611879424946284904912602880362656556941168903097138704959001941003277061371091427894366502518097812669559160160226590344130590935228812082015145190068687467094166452671971403670993924892544621513634909206561271578061224879423192457128075549438455534491519206275692869243719103882882182788153597462074654689246183495923744353746346369902336031587548948309629283617114573999510638438713437026292550024542035725207679439212344732304160193966422422004199878240453165956692119698837991268492333401225745113049357327765856476646215801326984469228311865246483753855921933619779757186711282504258735414581417477672372467951029095986354414686763510699544334930467818060875339693644408382239464990196336460055896925169955460413064095334834829304877876003280009749976040171050965345034801156226512606585205621555878749394362475392496953924348743538787857216493041523124045024224685781615176522190479781944806422383898814785443132746926837318672749669195252763924501802786510952225572626499425779796802779399080674627346048149044343687052045888014371439841090414196177049365225987512684302714023385042924900201052816104910439118374763044416845723937397452629387988811870688707631060816859188050525835373244207162533017053468748382833301598827248438395138117229788009667254877591464945919324103031667493797401676896314924690001974841879469051129358069258608515379063796292548619353404791897622705929636443858941634637087470962762159326322274170086099657638048055251475490803993557696313159054354899735500041178748234960686715343206891882862165384550459939455200012968191548419237314061411847392945167221056505558821169834374331794632429659981156229522034431966727046205912720648225205690822483057298909218963166565785529502384211666826636259651015237578155837206216884541906527527543780383107530092187330448283150949574693874808171560008775730650432601573165503524093231616018586937996608266795043802878096319416408121162734850326114665663647278829821609028639705589127312822206467989941118007818279280364003367291235507592941855153797925798879923963157505071275521669802131263995291043889174089601795136502052895859761769863627541989127323186028218216038759899615907290875226201871944986943101016943679558684010617258338970172926417012385771660912874168433840857214495875034006478100419691562176000440944653536815554220265142978255102209481557691164307869844677692004564710451816800568764942332747349518407809347135138040009088888886649420455298245943270541033472977945746908288051826353787929586051568041977351264483682591213821508023177177105597864028464825818593103956346552792952810797561731890183475667194292000055512368258815479324257289966820035289704240420026345940332677235976028261399180054190579070166682671834763566709025944876033385859768164015581120485995894503684037272573723639643505210608678151878816856094192455899302333773714354990886095051016738705542943698997136617512601730643032135216521006092285975776057926869807607804868434608835414349225422353197150449034704954148252600050821601744781419363217365657488999017632975549572944352656186016952881991973265935080820266624608197760861635310698306045853551388331465001140115596232103631534355673336272446654036545646573498969661963346152511524575025695329334206774283224316532897864719347378568013741084740343008957386788963266577148933957534118388781692588593738092002586805383843702511350848403708786172194598678960997959677645392582817588649942020495579828674136742059224080367815766660517911620565513174371799544534392098465870114347255988003167374087106805089388211250627932923980793681100739108500019861304719146564328402054789871315453167119302412118507075388132429943413922294473965615464679089266635131150213112351375770320264741259813270942148420003109820777303943835019050375697682799269793865838259086403581122454499510531040446381533505708779895682642599096005718888601666681138512176260349162730453112570013459950736157306989655790509442388082218435893219513421084564129100616500453653793428170918620506837359666543067711617640187234376346973166046906108876522097956631328537216866048017356065539266313118014424957325770494007812253032434945902739315506185039485713277002406752886214507036524829647169747685920927587868552747195738401933150172517316448427973840853216714578800315866703658894836238075252681839272108573834885967959253487445360037665104522722906108297542038861677002039451341174113056660510591027351711375715609561691574127410668079951367021047156906847155408259632918118159441569941324124233834367427544200546927471073420066528041717080822940787703952750953953445661802908198380702003028214108105602335570440585729765661276240928195453514277954681621133128124231136019940912475551269332881278461248913200179569071125525377120939395876729857451932987194091934322214770469855351241568399584624503174742377855424014732417607921589425291700146370329475201530564817427579425921638951351749092188802995402194043286044570761125530615782754868427537371003872350603569286122161851871319704258217649983912241063104848266348724231863350324473342096341534876094315544442381459700389682565722114586974138061300853047897734283792108231107128921826751388901250135714184942284898756099091253233840717046653855742392108135792059369842274663496035135148478169465091320261398446553229362961003085150885659885955434512109401007325757073822094935683212217164830675673390326352168782035850263753397532466347124379110135853912520186096654490889940301305396768925552773997911104533137986770250826953762314831463067984108925729794659040083811212514377770585143265800203651860032400409881452777940083346315966374586721761696793425777828444612179666249055483746438020415273775247323003173520263344346689239506439238741452571025488663587626643686563241122512825677886205508067706959281212199102192208644858494870443648580981985155208235737828176528487379675522372035231875409393923153337125268297808726727947705694771727378652926197584877438660341934688942754783121864720298574405730130385988529834429479486955751867814700339009845203502914844939879506087855377698116361733245186132846284816279825850365088791994470356535223475345726580990845463775800215616197267308403374217978254627573429516262813746392965362642464779491538652369134432718065363978125647919106791273931625100516218636604142431240711936107365676762968564971345590385024704390750701804424239898023319783869970134192186822768615948230394158582118850105378420475293053369633465632938634324918764321649201496357902567329512854701820366508004276424884771893243003304281588601800060182426178493620479212301071658288986472829306615337222335436657328699340514808659214507036302250871813323824724526855487454152745312155326334991541371424898874620028118190117359764500161494394786813360917492408766492453327954161848742985912181388591750513402520092316849057956666992664442288319377681822535777268187299344587951119230213961624738228081285779652976426718604604972643292795578285895031073542907879999509303337193717630548367029912033132056306489489640524112511746543732659833833102143411118112165162964715263987620574239200680118318276655219239033878037676369344545413642572041728190510762576535864673696855819144448337444822147283197966743298176347049684248222314204299390222434882548963735250686324637658352163376860118346921017453306547345191827243070143271561069282422332588792700439840372290875822810565145929800790857330803139632149563801540262851199838737028015882306267191687928362341646247273843220972736720947504695124247179900469115571304293096018695014321899488715340143792025138657865047843478606711874819051682053560165323563758685578104348500180853435412635635815014000232864253280102144286345636032503665982824348128532286259792445647582960964965932909427736260959246847789088787667756971527632902389293195541888542388253771158729240553821900122907772358801233259811734457494215800004191884913403502906462759839821779005008827909108196786896390609567776820134251838627487506281573050722405639598323900895688174641578219691196985932543828428719770134961919116624738217369139207985719766569770495894168006265762209921907141653752193682974263796615541907007671505047027610955024008261875431977410655846853561371647478215176017271603190408860851129948394705722482032402925823943815096165984345495628755061319960345698473629540091161387352909646410050798405979874737990122854039272661516222108713346619221702564064832879908218908518648393481939158808127297611485516712440152023358971246460499106963698519915612835314394294810185191259987818300795629411891838300420856284213680219700387582331706773747954686546348440354487635922699490432002549457647413637222033040677555941825691829432285654121527323527388291759427005225227769186889548298050427364842352775526154521787254993362243237851406284263325800939240475668822979453537310527150677425603491177545241738793923794833841009033283517115218426194832994461786897452979493069568366054988764551462685645026310659779634814574920293496834287895251065881357290811410355880613780587171003413981573691226342696985011512960628284048369769615899594633553980067115647425634708446268572485757263992284163726162803474186251300601518984662809105438262237679432011162214964127971523134086916319916772978887040280576578728286087889912529173045274457915498563397905027175642451120755656648427495282133736169309958784966130165496564347215546580184423732294232844731856683780037065343705346300225528922649194828213230955667648645968958561995865899189490040763814868475301188086014108143312768567392721760197516163068759808944227380916229611785045830195178996965473595071363135684344459606123214166578076060182447255504828116629037616529523834462532249425936899645343296913960094049557267144787905315206045540025726046667984107645524492588453362484287324994505860281666867317240564282705301634446938149405956662238635195871606899353489119303383456184928630831222061593995228039977608554523529542465525182530467408755541106546561846641899538791870655793539837592979043266916997421753377988161509076303701169364618774665710274994917374217947908443173055168888355464902444628901341674908022551400238926630380656404782141333804848224219916265643602375296389801726516966304957942833460613708779906111415908556140852237908371202157524047847629571207170839820765993007209818533784241777324333772396734443100402467263704757580405583792592506974957061663434854239068093116790210075766544625664429500669341921978926551450126006881846146826656773806473040029082858834072084618795711840582832438860054506703404958174746487219747308375549656718936675364187643385434456622399221672206216211958988150144923811783794198723886865653856659589902859182729506375963457392641147194003418238151117538433701502440638208683343942654981698451167116375734943592503779188286298456368809389324578788807657209530976111923126375500217364704355774306251771492450852784209358204550780041512179968504318618901390831700306403232096120978140165639482102713549624514630394465224447722297192711008402836646268638144854194568001421933837136556742554535857948438886443450523368745224885946929458255266313632840570904063065731298949329762319936411610143068479620999233952470650567156012834941469420674744595182513988272254908891312946890015092857111815153993239349397709392118527534903570934223084792703725214104409435495283108497079084740489962313047767429269964846256831179066173841393335424517136441167117602398461142055437697066664637758182080583848992104345090672860345149096913518294235041414192905774310984712564306961906424837219415952919525353411600590767900478727850373010558394792056530598875840369768259144409893849005866115614659941339672080589785699429975048638406677399568504183172702319034027857965526422781373201667882384822344025846267628464885168779206743612723697426596895500639317184946832789576377723798606588015780334459744240881290494565097210279518739239477343004443035019793929891909993358772646250646945854031701537214408302594297128914026293728526475289142116242398722125471090738054343426231908562132937229496469890523997284962730568327841483959252806905725028032884677160249887185946893935337521296290296432655516546139147225051113514834396249434798449637058638615938664919162980646559604136590729332814524567392800237518519177805013194062445893390781692086786911858359637168541158402950673978183168233699690994884934294959119514095861808632812952296046341177369434194786632063489898174921976961079743851122425992011786362656226033946287787819932927805983095115472254850736298916719430183761026731584036240544783055606138475718673303505108490784710382640493773232905810560225842964251775189639897132576410470458230286228522762841111340054502928052480029454312881244400099493391299232545647120511028629941322614882930145786567207073333880792642296840930482404871216088653439656172600660604372457804198471236619902815459860091508649024356017011444903888056936405448071698146647838210217952178091546322898009691090133839051673014865259855532457281276766382823868833275809476137662373329493192585932844456059060175051340995520959775233692721662156527676856468045555660847591323695497758730302597520110954101395699531130465057558268976505154877984086349710742226909727927251046398688172529703176831669483896541456919656666899509254000472189601773402602682565027094529022289066870142419173862169657549312063826868423763531439587416262274131392906870235123341729817678650819041275181937516018479242624229214716886387666715342757909702824785721279769027177297796914168383521668912174070879872558729857145917933862204376627344586286820799372426001569685458319842664099677594702653618580874797361874665318673935966036867284714212541640415399864819551484406873837410850213878054335623712644026507783324521188577597142262904152403873052434272870821513425239784145619889356053134673509565557333465328565862329163097610123729330425542553669773041754074855992139203330815890153228015454637125434576656064432132159435063057096494108251863292248283455162493250730011090738620972326474631633308594145730166612491826978308180306996195646873543537772636845221084016214868125615880889449657994565303762307608395299002552444259599917767288607009215373969645412204373553628841605657267372299898249950713539537016118826462424512931573463051348077623983373219114162858306913790686526884738784021478471158974446475009899468029191320174242743015975699423871281563341850937555288449703908441635106216338747352144801326478532471848208961603029499815907732275904476718008774937038027554222834808170529971451736428856752918344893549824151049093055927066942169492887429140818644287874846237214969445339670937141558680635522992085408035306326094029940203175538939710081522170358356114021630909968551784406913071530837955234348802600281649367776345277050107857836876036895286521627870708060516989840687138990800939564466091100797976514135168316986394421794454850278687568120718757052742780281842311805869081934703336995150167463683584760932365431743043143936429759519851727417867505903470953833032143448573344302058296047232121218953280835557646505651854261284136367049110603878113785944894745483738589936797273200895829892068965893557280486028306083232594768446953894893767592223946419144161473292840492811381001374454244497394296054706624850364382752590023839039996943888347688983443286265075310878940730118297403453040547995618135401944538947680687617730030839336228539540659021579969355415076745481171118017867916547916046570720305430561909136739705490898950897713333357755196357670583048957206134419041635186575202497256420673445176933292110008959640813912254462278982152531849397969012900219082828496506180062229550599350532771658943743794728866422785021994972203539348280624647755806214801842876971761419213811547628064823912273493071179321523886541208078852099555291544031726538176297323582396626106834732814053167444585082981093849364446263529986708716298891376160370322112705785346684762360789082249035568757825775385651564309260734652356870997202785911867361325988035063806532494708509872983204221215132312521550314828695897950402660770288868068448781555339911331631573087815948428283176080529679208956187294039702045454941581193982102691915432255106734999477600849448897828874310420585017827331637399171246599666963949836199413346054511613490531199107738910004979267335432894501586902771426222035630672189315832698431313697936002521807987467283391648800449001250332630635492751159211486776475880807634477133573154276633261741081542283840359717372298903707283721435681728221267020823661722505160988632417642090821625438018186010748206677519666223236276519808423127886877451131564562994530586479851683153222259168606037651443484457421751120941472239911823740897049608204679639405099131277369988561421635025444937963727775200759322845413074211273880284367166343276996962790766365026123774898726777906239458676330883296497801248010999449261760746943026144417347440478579092876339361367304713837498934403461967246304101914217278713303439815990695716586118793080667198379263393136049975297910891843831347834550799322227869049737530155517041949986038313727593353367174410203583333259277195595039551540948288481050634438815559114334758522045922571486829557750106328788075568460922049112521038096211097548641591666798212656528531023508384098895719267016263188274568992017813180818412614185446623893065644399391724238568698751424355362074518348296449802645419525409874488276020808884690692772105873918126096510266504175910285634964778863401939354453385171013047304075569635393591871432192976779554757503608840944135849919149614814074683032748317021236686740130187007176623092348130628142087109760300556400364737527213340268076076045625749915938016576931121142113351296631030583677797051711222346954588083296104501335025586929545042717969947184827605394582827407693839644980686109159156169147877877137926806479057476723926331341547596709158380785195623614319286495388227659452218323800163529254719175803830853969884569267068629556857509933400911307126456798831727459673261865283801318724924658660472955396210645757707522143466974629730647401442531406874352675648494629416273863092437073591444536881822438008014410198972596653722255791935274690549376350940412324265940995773889996410440435759972942350261711333928661569240951708373234010593084013731307940192994923680785321484130193445411802854182373186881244373192324658249024392551739996922478703287428723395147724083530691200661249997191432318511445409254269901576345497216347616363367782758483870647597864584963704526213330158695350791202319169442195034467395171115082555051691054219586263799324929411424948728755460106074941991856179346656574525503157255506326243697828079020670816580283101095026676194527627063763293907368816604038238300231399384798780534011636624437242232315119813037878128692094172070655699463813441569447286530101987036809486847249794656135514215903888041333327649303003941500694138368147697210210176111459404772322110320746502154873311473198226923717132822126093989470654720264487084290449279842132173901764926283228599785352338204940806287799006124338460260626681701972183343955549786838291188438108360077305205500463013847701390511736671093375553335979767888347876217152112901247573917310438508139238977751651144091169374035481368885813939153851271356916499180138023335547310529249987968008925579085932544934233318121706995006087026912929761328453303214392980241961430912701305509015310468489509444659309036761517175325881787869298973431498550246712984469256595409090918270504337673282367987550221892679988383402682011006471486850468026436198128347306734666628784661876730979870202666823856414354614013073254610355190085383692053075219068488457566271503808582831240828823465908880801200279151952074543177431734070477394701810850513479524107498859461418068012382784049383995149039993844239410523635897625867983672659519870320019452079876216518616111151335159472080538243151934872487262076926020968368437586831572043112176499147139538721642161993289064682954005767730217437742289845306521083162086695553224278639690681859121534765860019665933058005097706270241745744546595524929861786428130262150232571432928854893774103824277471105422182388657090929424807303548337018462533947342541248189785081507051723563445382856721698201536444181710762207244688902739622089832404990439066060908739477474634220349564760882706046052849503549204263862258498099437780619994274314252378665630758220680471668221708794472903088197000613480405049687244447914349946165471889793269346679449871939905061645688589437404688890415407085020045319865742857639309182476380626155557351144593329464887479107556902639745297572240065529185045832138977356364898190244563068388018180641119686960115799723382370608108098588010047371346081193327439866199329194137687844510384864073155138512372275396801228849823589833425225431117700132554063396241461540137261378580528058719117186818828256155471154117012203303893658363670047691347852147282110051281300304127788674557719203288837664590088882512733815473448823875262402289408586899861326579991513161781573033494340366620958826427671998934123426001271698460228318026878595983390052912530143470770229792714690697539442314892508965178677582128624916388887078445029877631192409552095676852042990405804824708663395024858862058610727422910256573867159012212970031939365045411148772152036552614362571471312673649367433924304221314525063187073763267588845624067163209617695312907472850877908496562624222526468321088538318973776446644937658902485137671463038269430743077588503167206813174055053095551516210257394222957052988211227817905679712496993081498699724529335097636629463898754256164217679969617277305166687850883069322350233633427543222335886870231299633542420596905306399758593465061202256430319113849629688986917310063602192723095478871557132041114223450972591661491343551686290965087070418281296945521959875443707864161679078946908007187301289704879318260032177094286712656076515593839052810626641964870564339969863336766428224614034168167656523430667499674641334470108686208607064498164547052500383191143249310526118038985557457433518555527470510305406514116427748879506534981813280135558156386553154503553688287831606462918261002957071481523623401526277287752059350415298764240504788219780139404304814581823382223319807039906476329671474593584240961881312113892546989658702770456056294063614802618197507698913138515855382218260393022900052347672710440283901224958993831360005004343599311662303965445890642855149423624838516126870313020376896198567563703448942600276548889789440576132538721863430095215499007509760749561312196685481340899633201971163352818474552257251139906144838435662772391904160595246842883810777849912752744500319391522174944464987201364135855747193769711244818095146418411338407309219350366773130487618665491069429379191786573966134338103888876448105531418146913940759036260870342441767129985236048456803547842860467616932311117856043712151825026571598672015906401929777058403643357397797565419893392553208354468866834773277321970298770714722472715264781212436513424635266877090030986152947327710621931242292213814485075342385998966637216603192714515575570299753431047516830915789853679002120876456390165533321921815786585660443243579549174826159335069200717431355101082364249146799796954342778295585655955761998995200275613318168266310430637187342646591486651547496692572876171469744735638139602407232390371446501470114603678179377730585075434993888894412251227326683304091283389350442304101705229317128953634953797148892374934104051857784989686178810432489059219737869979510143810989450726055901004727285235118612250376653064215813316387342466680752549143356265992326050427429588486158538320961225994151632651042688296681988223704178133308756280328443768924743342918267156903136968947886731107465289089635324571612994731470211493084938944640535841402477054020566268991847963059663034665114646807898646220605908880188969616253851493874646388095018639183999278668081987072963858795776188188498738573776608647948513534037655271613148955553412260179987265951724039156907515682261675111120722175789666244701778101398922787271676032511067004063454737497730891305509382377703131631501882555327793306422633779687828390756163743851041863513392122047295642016431210059540327455936165404915442044347088335098861393445626737226424556648199514200390134641960371967958305843586556736411927691310517971354347806537113215317689920644514789296606279277243674126929224244820108182557279335443962820096758703895707201939500933627455840200693462907138445372389682415993226810371159819574023862039714751190414222255218441683301102994355643803031644599570585873160868529283620794347927505108129932132493351907107493281533320793210780996149465452612658478823788668819565009941274186066812001830974634121804212523534411037925402996356044174724339983325936883819409803763873753389232465732254452059486839019108158991747690058523584713917827901770755999370976713818725217269592949650860300849388404030632934130721876841926163778902927014399495616477840561309059071182583278655977004484106597502337603743991432568795023057864622003063896786783685303904622353157897908998938119895753208061301217437404116728039888091047658556671697191920841199930794285109629177817571987949136302713535888469599744430216048410067232896832318768823557198162340876589020272933054969236112241930284016666848469965027465182838779333509657057646647047398112004564252287425249122701509474588088663816538281035191517017334817488647455017983029942231795665750084896353501161118905136715553176950807831320238282151431800304001468796600840595763843758173552577364632415714056773439614306693237270393811513829717815065188737024529557494391497079115062067717931673740391730281925692386600403988865682067371862064186530978808809649662266077134488953681632777315960153343386498034885298819542612246888322926676604668130035705512227638978746130462548852846694067219642804251614948226681003679190202547537897806414485083007882614381581068169442668611568683632980128973445206328595540631558920662786543765510073726885898266533722216133878691657338781872014481663016555428539319959434457133896369896984759426862565927205020009544433834508173744545818308504235383790867167873572057094933239002614573682651874328812436049154289572024357737441174199259355205711560563089715623802381082970152284620461724507710920528887288116164271579080249569056661364514479675170869819512402974417499890178035744324527419717585757552411376310773193202576081493024312467349431747886621969105736049118030553283752250594089535499264932983591004746399563916050145503751399595243698174553594369190665965297647286059780480574197542459681080644262314600416024247235267465915953844203074065088906368654240160757122069735857736673027814448801833399124129008387830053915567779040950277383880704975631143279221870434393033666732882367809393865288008843923086058715014971285795359860631973421266980079881697498495382306899753044206545504806533620858866828618696587777061719738065172467351978904936122064699394057863918053121330879164033544106620181191256284025419294086993601671588210759426657427552027033841673317347411010653360487110770553311444857505188592353340159083991443648401393813300251823061703878231389269934351505116281872898549768020289649661674264038453570806788581862671605140101176194716885452501052763266777025084185402819929416824335195837974327377681490630519565763493184748883554681258956546871874130831690577592117717435772106839929084233756045390606864254507159111315786555906587707477366535446617852382353413430992103978715058452571067825669166243273046176210489282925987400776241116505790963892440713090065222465578660543233182926452433766940301661419754128861802044758890392736696342453953183491139021379100770487572837269425701646178449967592096811259480118908481534892388050067436904454497995538753576299534272444440911444363162298131299224148924377418269384164320045226823351283454389797458830809119987435365044269160092393158417449619356853957831235756655475159919719675972059485252455943086625103390818439646895343102852773884853886313531416055935993485859681890660590416144798349024474049606420282416564265621084337439782284280276745467941426454285629716464279056050198530181838238591976350236856802406829969407700868612761103141127592653942270302270925357866814889795065333712107669397407323130435852517877728602420835937408410080062343937318210348393339137845366598972210736034935960500390636750761563568919447890547538230451012334753560553909105158191381825172098408744451331611528269930495039914611867194116354802130691001431874496459692135479210120856669361999050871405328980828005310447419238830067629071169708112238354029959900596896531193149638012606674721172197619889882132847612337440623380172445178869189211726400047284865332365401370306526526302897156100134922838553142418768421258467189675365493033249143954787492290284607109741118070254491235217278977447015002956202824863098220859846815918425397643126085523979171771989606833820085097273288907441071594992216011455911431224173834626195031448588276874840624598782036961322083732928474666428615944643341059773726105665911293785712356895663670370767096623176610215244704602974230084351931964523319503499608790235414341993771341459949560776150992138290296707131208488872744105963337440831974928023746803219761650767444388056420388533523931042404164784428170710683778223351034830585085961262963109580164733264049463867720194591438785384789716256576564700718940986702075416673157855515814777805415126573882113725180013897245292043701671738820697029692913933587952592417724140909692861542318686534594357137021117237486526226962876490115535208198358115022825004393504805326740807453554263544543831427499444124323280242159766564546380452012825273971569343954395499043537700114408430233555294835509108878592143810639791638876781762010986501144578956976043151199523366411718074087798539870552416556884068455175797840208640778307337630985320385655692517098391157879797343052478538438743450886663024630827395201466105598064368496957654356038925090095218885486633924528835354359375213160614258471659272093379898662208263578445400379251078220369448385232797659956005598230468635557120712335887859069822087436758527400406405722195614201646226766122695114574822913304750036782075690676127678049590493647652419669052255309323585693442885353180267173484992239908026122471987905062073537329135841363610373556280009333332746976895311929765099822968966302813142052563218617242907756986573929569556767863158213625631795367298120490273437025211836892558175287576317121512232571558267227801406767253253140743892421690158480662791942322245483206317161788185213838738888000516641080538654897818909493851771469324071882479503670002780126749577710104154952817421655171114423115057159823093960667146034245158680233736108516220012607895177222505599999981780082523274514848954625586719919394896193745017804747694523691730871634861604436407187627170831776305254858681406283434245989974328507252152229509508816509202283446185432991664770140926967539701432923738147797879618710314219734181596951637713888414981789440708160075670783034837626917292674841461464261566552572939061869279175772247033502089870551395064643642982873984348240316998724261599472707190958402329464860848863199827390512169101071277457771696809355103836723489091411752058792764718353974159077012319325219935378749741922914997940898346428778218926951436830027100510094851100308506181505561313750989653477052317885745794593320205414949248304359375906940437805977868428741274300462419994897653743131289913179275057881075953305208217239323906960877218108118442306595837406359231444822433369133126569436324080049461630460407933231755763504750625088992920737212933915081979709842287796760704780560628934801652741737588378821566644536755306119464739457953942933016416779523926598972889604308109111605653048490583873451650931284836545386863730955570522996090710423541690339971934322774109230025986704924774326054000474093440556349969132155085056992398483589441370762246525849884580689469542701169067579959762867484833200212515796034822982970842632405434178490496170088233437002254053291801636373590324034543080856310156329317570176444200375231486492161360873460670621663140240691591671742287872113698741543756734411928673401909239414009283939677945689994444761662274578677949256573935240703472687410332043923375765778114678927167372053422678295436717003195661686427081267205188383690446010417380518741507108327335274729824684805723294036287785152760639622420607960986721123366614012203542740911447885704755153837575322987215978057380885659313219664461840811255332084596328639055976194418027332575032610285684504803535532701194320126742265909464382237010147466666680365129766227158960200982241142585768295750836829751307294314471110708540553875730429797156631762211790992706414167023545371620611923054466574373665202576226757255988400490336285131206683279924327868956352540012864665328245996669581092840549824077474392827958821606042065620393493017877602078313126326905597651652296570356740882607234546179418403715128461906751346021701913840386635089467798820810690707639564477125577835816143936952875925891543019315457919736862687090106222511130077580737721969739632452041492239064059591781139597726554802374119337753013458309745825988921365677296364589707359795530059559669212872150654187276311407315100178590669226470887840557290836843862659924574747505263117498154957109370453674356955205055039284429752581360784548454459257531181503100678702415170427433009841870524293509612161489666329091585989542339130582737962784434702791973583234352205649584300783651798692802053925099820859450723137626100499070544208541165679869238923084750819961549322199490016942821748820996911324264600519967482571331418278344463807091497149271544353074224030880766185204787335887603331930236034659317104052135433790376874840885701973185516204446084256395844105239725652910764842282514182747749467982999786063593373063168989902492347501316287883109814958588641525662817635000190227549240082818613964797565796237948140306297218346637460867541944691997345206568114587537980236049801551505283829675450676571501065495445859739632312983183988717422255072802139411509108201740098627699276685299685974381207537260761758270049650422461204866382829246291173478119326915921504118985754964018174830212750044671952606401859567746783109381401310419046557951595361374750608744556307609804790699625403970394221554671613454925842923098125682895073079946617091162660471897352071637468330535787637002041086599677413155759347993157578486647039623369219418493446492612949541064856671914748970832400178807227607611592024618029132992978494826037987184825956509219705993158077237614343078196699439086175510923736054737882099961391516599058048658409353355114499917827571456887697255959578184914895791994781245411652582576842932169289110806081021051515927005455674739843812173744963842172919853779445799452030889808150474541774728420863203883632035996597122535103509370678486098798351425840940566690156030494523869325745672729510382448990252632766571559628653200276177790899248206851199010878853144671508012275968975944400792013433841384472329265234970625182525264235136555359572985833172663731488690821960786536114239915507468510881827677037191963952909353319505717497594435589510133478356183514546586986770570290678604003679902469454628687894888256895707722014969411350425719553007436875644540996423235104953877677622168105129440027167861055074628114119936365269760959143789519938420594110006471966675992027963076950298188961271920392080696271236095856226080767945971162218297329691161891004015176443512885948564161251686020221652731470752801290546585397174633946237605668146599295046281055740661603575138601148846281782414318291779279292522158420117448235865379634684298641282829114693775621097108994552976488613838948291454825377538884569053048909155647250980348633819982908558215583231000475023085600776968252731721552615921447333636582458026053581888908936595039179762681638761020298958029351032871356674210704372830407488302744883282990824941856774759717387077305605396193834723018393982300394271354665440988295973794285193136512931543945364628763470456572680492973737864728475478055579506130449907729311854796732504450037562551248482544530578119158814361793460602962956081754053901902754910260703400109308067381703420351213923688319407957882655255034062145830233651317272572872379254831820908348944373144540543764815337389818650268962203405641205582989673800874770992652880502256390202542877614215688870778386802172341292364770627647974617278787861749490025969785216803958765825283491387469513343510867934819004030476682208842899217155255500409293703772938273526411629033630040283394293491245501600870056587589645463806309784693482356077111669211224109524351180972755059415290661828087901062736631682245274826026043197371354307879128584840410944724412731875019661651665971678146439776991996368661700965832777264462519132042634878772939014724148099976418740368481768354436814179088931194406843351787633880709991368684838255371503607943855144394026211007783588640387112272918416639287906650988039267980262670218190467313031344400167406651314610473276930678119435836722754267039315864704016728707081937550368248404572762167905211301757766596659818483917360340818026688296465824375267147800346038860490098766488727032660101405183229763942599132091219228913197298951625396017191354133567237862691033526238022811162006159707107563501515177607293116669653904889453176326007306492032412114949155424309890244348933985605219418936400903152851865807188996231816764807814176901828420239508407108239972774074165241902864747778625010396856925125439187915359098586389969185559434190296258901932944661250522988456383153522280357225942883788980417218888115354713958791776090190598597971765122790855049057971506968251348091078777685915050617836450158585942827397234572832522706475484897476248359814432558344203048705994608908175978678039946548640707299512839402778348880446376433432403013429303029542365973715133245442131493743760296818567769600807631291285673745392414045761079115608647887270402874254863299738447666522884094707470751550869400499229407797781807983814667526007510446736887272540262803135086807808997192231733444883111201211002716237964821774809716544058605104036932599102666767440763147562857990583970684426718872455447141154599219844129794749061952846422918298058325517985015422347321863538304601547201628659715172508503579481836401880802386210751919517995379433190790508195718905949167546776425365926547648340540523144675004438698993307116354147805874443592706025252771933217435247467996027352938207372703415411839809579313285525871461768587233468039009156821224739679500035045619654384801025334579521076766862942284774071785628644343017594777202426564097412847832500317432340522895729392585205762821008015558914189103134899015292729867673013765554940556984751290037934479410354468532081751047790673532635363883750771205040771359716215663590907736503921667394608992925139157514297618265951808738406254837344675307408788979978727438819539605292405585116228286463279393435426471354415802411795946609948316267041637018491196474704618103900901622014019395766484404003712603536504673232466961802985884034255138112182349066714158030137540096570231430712371873295523448108712120176118087273962230006841736942612413103368648402087552794239724134309330439460039893782134832553042050029122983513737226567392744835452849526960887720892397118137012372753530798312574429457826411196895039881487552090233824659465131991555151883698503159020588623362749564247693279206553448261027243577915212640188753276967942868775572929744307397323501878084478477463158852733177376809015196435174368498925116059982448516478492792700855492421683989883965165905057528063048482048775668349816994280520650283100462584955941230761011941555680580903137710016709980530720685136576671720023068714150051569399145650435981485130236195576083430834203956718449564755320536912348209447936933704426655402088373837822663257122860050701273004336162791767353315557840923101149408301775874736141674079142427779930099529421417694172639019806206755963642489418945031843542911339260745843782531106692565424839129071052177821339521648893085929090572667999893368033194158314313414520033931079409062481775359666840782636861944492610550117225766432172823949352701141600412746048495517318051494606213199325261824574404892217002564271218295928638460878823130226851179487827504713763962294330794073460791208182127581215617936957549644325658357231164242162963646480056787450054802008943115516895669593936617889741017564920652689328403366856534940689689737260727322005941599768707972401345818394674171826277250883769793063456474745262248984098994822640179073958694567354134650653923197310365582341469700420494796031083718792781143780018015394614315557196277734832329963553011604345385884013129088419373657018309551464347729030212060127420690409696107605047510223367551628353542504137853663149349878967326770498040188318284167898670960678522351215748083883458606943151334286538821782471291067843734287500679010749389713205713796955301921442440693659226056640662893440982369457345272780219778058638180964750099417870457605213948538851710963444260693781835242075715769298688615540172751255450574702590486920039207921191773700853610236178231865970713149152590601927141015368413829600639680810482715681892971732617889839576031939836744112457353990701401185210744323543286192503893797052568996641759063768513127291792819473492446849792827896077178181254778669064082376973790241619456763622191778871706259290252903076671328921730880186810526359994186841789581563531376874818104634908186555336369742984398450205385466308049138382830858333565224481118610831810415374651747190039441604951072098563564058642548092402803714336970129981262387255834975744433262926393967904453497357115861185171349625237807291479178584772488443972258509955842910208249218444603347935196322711503495810007361295281480128636301920838658253707460702935498489695173194419633331784250303819773575102630431467743848905567216930361260962375048164393425542475361947701336004641518783815393223215653393701132123031382713882818124061925693482825059110022125813583786361140190454025863024626927358812092757552216646299008681100348692521524973143650331279027114168943757367050515966747773835993494425593639032462843093284407279259625702554423948802502920720394328987625141192399272715927377801748337737919138386439183377116880188030976376610956858883651633737228034935323564999062624429961404905804181352465217702648864908898679235209192799019744671006177528510252721779340190637909098614924907078431146854677213206810718336214270936061316865105163561594650831680392225168084016956547001283067304976672714671515875051911030640606027975611893356449437607961286877866056243426451293399157975376522251875504180724434215679419319855147075674441894466476756967821918808825569999889022631905981481981789334964148090984385030985203154981336966746518882618510254578104082767733455815681464988966483215170446372949107163354991818396756341195284197336654267904493311000612065082981928769192338040795810498451979710120988005184612067425398099789594806299127224549524118166686572202216831456522340032802647182632151366922152416805108337173920604768576075285207416970786924736515656600079545888888503304896517879410743996548737631977101475681282900995270554233957285048195230240985248377167023080528503659942155302924659335216696127120761349311735811829042062355724123107908751921632857724639001612497127981351053485591565822439366987910242624378139542937862485794587852251356276931751963113083194665678944291006197743477793354351740405361504784843241201692943368445000157139157927149283153790308829505023812730503560332008826443596244977425063944742927141086639838423514525745903212278878980703281660618572128227601888650198891382882412326217986396831855256064460741635474506406687962844126407357357297602649581852755709629729629173663705793470181313960094237215788843656210374564632949686962087982062904191022236242360695186175817089439549581830906088180856774711371641989775408324034983250571302493115178552636324943388887485217394538579605548516967577915446467622797687684783307181109351048661626356095866659840251589038326574651793660507225715120758107009908874733059568026704958162582824345320950948723142049624310670090487757354698423867253507186780373674948081150946500044292804719050081460405706050525361687818617433564836798567611381711622493229354597129124144494297070220657508238066238562642434618508486849844222135827085012569396815329814005920344978611563367547211944715922774440216204406000616634955497766344497835842321376743441189733698270034157376766774181944526221336515469632283065702113776510003986097004068851454034700083484785737000288751298581053749763768098506544146465175115747742155240389426456107614892067055287905646779872562563129530935496067409178728064798876255770215615852022138091963109121694844004865972317988413801089934510270991776604721980959160069558473878405108569935370616597308719098735831071045653077175567348009927813493581574081024045321058088052391007061805509114378340202702091930065917767227510163830982340512914978784082945057234411518905744394457358713280293342820395930714175294851434581996516170658601053543226986306406076774881767151231699511558570776375764092669489994787921809263190626655312330249773539737887285303497465332866856928539229742527067654568133034866330420953804514108783088657126203550998840818180940883217811608452800062175905759488915751403163224925396805062146457800800481984288816812633361619825741797740141270396394769882477953330033285670300550879651091043785226335486026395745602230035873069291600635589194158084715808550497156914032306346325711667916259609535818152394607683022726506820562373659300133718954644286589139291085721529428123398209239829369687884816254314209715848203604169820219003896007559273553534945355967556220213432317922653441807574191092681708368552461192704595844581239782902620832380525857581024177935017886468330399806968670118897011400251198797531194760195477762842333938856747266621830299482571166303642502150271023744568003959091467644222048310477576133167273259024333061319096696125130595668983310153199647822012549666323608463504582052486316181065878746540037154400407332825296519004569014451187197090576324805457658447648799808351892199554824139699391969053545844541232382646902158934964558546278564871661396472321048595043285842480988940582389924301614975049352173729558123057575495382134812293805766592706578550096046500567451000741996297745586254849966835703577005482180803293002235110224317973546047004909791465299597323938070286834505331701323065603338509045483215536437823848281523805837967901531721947458088122918726231461621343112133095750297353875622350231037362330891302108196873610066943672969994252324365591250540509414111544082118419087506185852624002317791355068852964188358861413897148982849426823237702359736210372197059999154695474938284972371980624130698334849138057895714303226925797470959189444138068359192052521038688826604753064812155799477389235844858665804037126944468035474320830920074169785020716821971198944693438973296332185212760670544402191739334245150623417706690731070733312988880412726025353358447415238801546817560349557328722074936885788566118468477814192765257589660262135396819885639633622461613082073714360854835026100972037521222829780617904551739003179578007280444438536166839796013203465377745616872269291472233245312816124900330174071150176720861981698545517266093043334078517834583221805752577461114780409148641417352428329532532769464532264350607516732929749063577787452407500055572675156757468756254482565086332510440192684030516686179523908246432275844612671314090028056843377311061119462968321948212473358823490492666333936401510155282576754218868297431412029721675166866745156607226375412766094423780826584466031862671998253857216349401869822397329949757606965784276248630666279405578760562811775591572042451881432020206230015220353246526966201672372125883944221424615647921106580130961079169724837188846741145169668050098146162107073470301788264954083394175107764640158817784721166102007892744157853288878776701704964023349148587894081198053612962630997140998996398952271654693086834126588342371754504365837603705380998472329205223667116145019573900568136878900633992850511417417395939225941462598802887022088140849971983911376380097990678849753054769819550911565741475231805384945376052048390533219557060420216525207122151641819538660952688386263069163757105465235770768964830724940871870892082454570883463430949558975697064691201080438675067861452275441390291277490749221120289069948145167720409055732978458132810977552298445217381738595284179096551613532616716450182149722459605343790684092821329801636629943496177935894404942495123249091854873623493958838034336841526177952088227013275147813681310791446868552569305905550120872516463453193954313823289443478965589572535358081563350766464671011633989233422796710134699672919999460079728019977720200991464306102503095269032721438700380333881247450198788164605294889237474225061275017067542876132763155912387011685411446278433171404181478117755186872697254831103245972810086023649495196109385044532209642706879372901452621471774522419536417183601984752932484898881044065451954271514997888139708508294851334461724269631815274867025408263063688088308585389220656408796077907504829507326937144926443232585463485815772446626669160561349073857172766993513726373187879726871259978288743468880782336502196637285567299865110124715082945133755026476413859902698833950028073245107667154719842233906629297924562808144456817724212271255449469171138653291231928482828077940679422296306041732836886125743118014604021521280450312919155776183984368306952003541110522917586726216580817948107860446097321897129693884582495180407180811615344060275559319026952115041803898117436685790469982797176778636260070915372882353554609086239338989513984187409426002197237044019558692510610715952484332961153057257704951015861988733262033565935539714535623642489076806247324169642179232915631329262298359965865973302927550676998372173672648498048551440530169064495462479814412524766208540568603935901778557626375875169408500934261477864835175363663187657089924753137324777935210862778422708500695577588569697570397110587689355335699690682061301806653862962525794684908440259468555032126432244199944520910204670336588000119818939183246607130320551863394635800388008452044781351135976310485606262328816979405759738438485099080546900688925579601785052784428200694069645217243518612736174485327141645786097426740396403908445147477811614514770468126689835662965711870760462168829935194635535886537843534133558476634736220785280448141184198241279018945118205573073030367055079934191089537347898220257715212401692515964995229853994983419031523361849493586795566510305287648699074714514866679840408105637308982060626948270626349785377163699309074399030158522044759564241658312600120929032039202727865261577536122960979849241692414969679254323942933840464490973087685605533019578282464859483968104487113780811334621944112816190338678358993673611143046747661990231055847299848436130835236960859144751285036743010941679983467144820571355869244962881282462862532429911187249604947342314011074590160752149183325189772887618835144935596895663662436289154070379185547124513326027752682457005414023137135547272783265064887110635277769919580207630802938657004583691345274931787623123210820026818671059512776801427056247304298512972834800977924290107533323373593290222003263455143113300510233629755510991964264110665999870587903642699097890776252518544783715590997223851235117499391325838845291428932209489439710883250932618428462519629898569768494072098707229707628915830759738890747271280101820214053786980985425994408539056817539530106438568115927649199208751277663555476294017240345925815418712146492108761179761742017084508911389063097453289175674796814345841021098745269176907810071217203523489672953892907384716109527305630220018987332381777877215942092261892254768088549080058628589975126088341434098264354788301607636443903440166517737924846656667672165704923405543604222064102083748665243195206431316440623266102970074986620335672186461456229330557974649713073552764261054703192774927885343974486208830971610554861139772463143347590262773139119796581296130913968843008541498926904062416671244526754362887221807263975934464887767028558617252566921620006689607956757843111710482222128614544253437026494683962126306838072774276314334243748307313278368187857680153534793236122381754110373566214981730551843378859738221243090222270291115332504287775343845397983704272790148224797896047772484539641422675376624359034530869339838518341947690681529761895890759681387727942928553273202508913356218118134977526575657401377483615101094214133172585608577852283777707222582983792799478183839171468562004909680679846603258067540643450984462680935031147076026055724241184701808753069665148499360753631947613194653154680062639853843880313727761757494868403726522844309458330104839125627800773594850791212166576197745848766551914648930347269180001232844036832594542161284907513925221463717890934819585672201802137573985369846987603461697650859655266851252215288529508844411083986935636061462176543605473266730828281480491070324157202022495596911233230131624022127734114484981562820216491646186197339958922605595389326006881261532565518492472486283491750551867610851224644401340146386059151365942838894166533825428208032824089478010919223750957867428542338446568620566048767073126259783993080098513532508773471340518907118735614540045395330974298888543218821255497122732719572955067709401472162200952321989537023028194593085833782549525721906962979741881867183886645789281778032885797733570709993479773080489097908197460504429378857795309138440363650724140439728422799300033530135001791096369317994982858007727639418137968552776720256896781756720124011450670675986177828324823350443298569261554531466241241098965694447424532863992165309780286711363487788168711519454956725421170853353878979588373507668213099442173034628975493041370743915491252385093804114148721818327443740154724141469655764978665387114510932967883906723899456159972888521735597042909733983815718115968690610390985978782840608475557134621706544749832536348563464255498515634486469615008152959289149407679725788627588289572564484882000899359364439660184171402777963607713405852492302992610146326524527050768100665016138311972932838684967438037690777858818848453559009113834687618978477525680300575434862217355364045712190859229740656553815619432071239991609572675014497395737696845684517681070896346620496112531984475729040017126150313285657112390540107746675068651002534633986579390898707656342013932973522889098649569950586923523292633153144096719707493730891139781388591318990586090352236383349198464440474816484082209815798513096139367577133685174229272366424630072393772534332853587055173736237593877155922683227724627851592178812829961489277605372725690001058867222482811822281962984652619356423651963034049282220070623584285776766629110781223480013262780802476106570636293798011025681503119195886554730917222248890155771931904218363041437407645918839171290851954618403688469932998880256640590218602324426744086531532629887632268254613055074434033862067620721652839211397191503690252085918223596575875176111044515977758944167270769578055976727943480386777379937660539947669338954737708276723654794926608833053408787777423627547216561484062705762597233467338283019922314488723523075447264965033775532561624221597016270384192880918659407079603754616735103832565505533061825215156204086911883196497684136698238205509003951737145563738841304263385945038556825984318132269499408337956725228149956784657927448782847304554220845187003203649799904346449789342417623029467444140576694828030479682691489843671404265252084624094584145924957314440223511575074183713867872075412200901176258877492256334279965557188436588066068131504289106889315900846066906347298133147091293173409258548811729564742883001618930327097159874440083385376900771210031295791092239543592741517609349805271759379111941739708566659616346908375533716280539731794508535598077956820637307962128715974080440912036890352050099103431021098086397903261648941856189231911394125988603642017194847512053819170004879045318058352678716193338421756048314092369718531279302834534943117664112925432022203888342766949797609805093154771086060756501689119178081014065438468268761263592834943055782166487484984218628054484704476854365913746171680180759163017052725907908364049359990621700518874508805280189841912697809776989864965019411328945554290429885553425791112472106124544412588221219776946385084770021156878622618525839652972548979197482527776420426536360908853926707098539940100268326701151427062429693381464664780112734528791271607684870745269593263422711534531667126577693640188473466833568573404281599883405276863684478845560497654557569723205667301169965897270708326026161029183944580434745535678092684531454483632178348367970173873311868382148921285051282026530687903699791274056636918997567118066474940824285945787212957391640711883111997312677881276589096607285241370963005577810511472466555755672681400173932986186604698177791370862700151570824101731224968844353056530843027814356507941423149296531030499290845403140371213214900164678245329113722059023227805222233909540804451548510655250315498607406991027262308811708844288481323441401993033433073217355585524075900269073273793690495010604004844931955622339961302392591890760643580781770964333053705733289860806401093189148092458940822987861643820883035140008927316194784599928961663176125174326837664800472015550533914182561139759041905983229655511367407041075781701792848237447757195127942684231389961537426252384294665699454804344771125254581873810089558724652051779983447486680924218704429971540672720904768132685974528934375996762946696133127158093059857800524585611209801694117784372016254340411976744038979688090488272333755018535798090686978979005767280723405282594186022448559515317124987752375533431251555261460196713013267731905998546737712893686484845016285758390178807020145046897038004756160370918565004497480433087941572717291520144572089855799417839378803952459462599567006440487696378140932540400603343972368371923701175239524538290969122963142819713261607692353244314851056357301661602248600327911662472287725177016058264080218855386676381185467432617044212166204644872927543631790523197124246243501600199826925122824351421016502428598630091452475274221637092256689852489548921567943910945524185260528050330414967444759703472491110822141695921957931441158469767688902494531971687955634280842686281906210775753219938585985885997329951112251974503378108629721326339872120035351060042729166849383143973808017006374369218922552823245326100493374452872051900938737682804525232163348660732573605676919560758543313117413127188706836871619002799730959250033789603098296440314884221142026377062025322267927985152661554730075546581226195239941526920471105515951065423249629178693563279329785546981223807805797665432420791389205880318478668707969510861949240781095025797768087794664607428973243240550821138707690080919033146161023701521479441205543452150562103471985196966028981143756627113793405468516809419743216562448067215266476449844024251642942597584551517373358594995102649390599486656845865697595034690833380190134612569287416795024980333837005628446379928026714890328744602944098051384702365580029827782708513808258111819829616056005661857261594180535260985517774781970207388225515294398390694872546924424494713797760261762753086572988119028039650221028532452702892690156870072400381305752012923732042891210442839074716801399594348871139894836106341156098631542190133679234657139263746557825359315811739546635258081920623364340390406645378703852348517808888151666846178641080216783687613131955105331689038868424421849654530326940061223974619137456629369820893389240715332792786566578250572800506568862252772497415890231805899461374562652693353426128613005640020509917370699681180727165933899093473652332248774887887361191121024033504336457496817463476242823953489131527148265519792963113477797687362322086268390384764285018286624940856002459269866423004513537212415022552766801430995097610839758917461276146520910537033005904737501382197895792655763199176814493971467313007061635588413524315454002363875124080325974266600175441017804844773542384625422969860921010508450111961649033703290890250985401717731705040170460615523791243717246863569410037614327914495237418491444251529268388676651118111111247621245319800489203250674427626637757380359490996429501335070768096512585057551440805467198063623678784697817198214417514425342783214885578824379133582684365500548952723171822392304557685984211871573294875531385665372501712360678603491084213190804878090605441891695427100131191947502424893714371608066139752421890531104818739846071360273775761047928142222512716037812376874188049355775233110976629532748439195406348459046763008355127708479138449414415332795628320575233693011584957149545805874236147611241375100925552932984907648404519558177745893564542607972573215785947762493792341475881301870489460279226896310945543313384636807454312965978134359025345633485223220243023462914162888039791742907120193854477883260616211117202521642047662832832140426431562128682243164493294368454749492799042226798484513780595057314356922035298758541671031305472639078674917024243784762054944352162471046508283268849306709115620546668208843787369447777061391642874298347892343476815820778902749144664653233028697696100632611226469104387090639816605950137491991228262840671557599826679591166733667656331690467022126748958361684168716480359415741256008142812719276070775120403104120453765193027237799123080763944131426370145156614157407183363935658209815184938182819467772981052014233175254266874809763585440587547359933058877248888491504410930879543826056625029715635977754508917320763166960775751536984404323761399066197998855505277974905462341339344490041601271820273372731948092438392562814189360151221294408441703474319081506799856286547151814879335072638852209791754221043728306419619772032364746247959720133309488261646235228977698862956585675716666289832356715580247707803454286045306387817488244659181379888385708539059805497701131918817905269178445589446789696974934636949646802255840631666644841803541905348507091712891215578115608454905482936971039059618279377728445208827770224048098605601861396218622286194105455945436176228094744138226638348482234767893213721830834938898612571112254488349203446637829073846705059995667953224486210656875607179597659553171058187886276882979925391230220119885945126012891421554723192896037337781012528886147969021884716273825411090243116451599486034075702127327104428244964788443549820684189267053398893921483661610042416142982136266757380944750197976409771981344148937617145975936415651422299218704979322199852959089947701993783492745126380061933233373677449860530934207389861531469166751975801114354696116450594395868929018907013324524922328336529625145630336576037562635090153087402067937765165090984299461350743309665546084497387272829847406083779744844708401222914391837551825453126688282937332434037517064002922394904501472108946496464402234044315831881153137956827492222437084032569726596157644882426529737072148377313523852511037703342049005052501124864578908980900684538661703071957958890582500374336506337409533865285091611429031033662997941505920460464224665256999777087595455423552921486057912284156559279944359418577973003210303410984009635599323516693462180527499112584237401891487482267524130605753744729465478410875143618217880266698069533670590830851779988567529164346741028933795189977619330204571669979981739433116934617239275723308039034224475834866920267571570007881654015786448415360517339486645260030347869941546892353497940220162726265757616950676889985387528048427757005924359361734520425793233651052155793295812720767740686880456486490824269716663642266195083021010460412292106062071496379831461765919706668511062781381778510838928422776599670897084789933912526017074747588106354553606104108017105421697527684380783461300327696911319356046758699365124479838347205973430785697703287612030245650370524205184418775766762980559703357769836352125498440284946731384994019788243581710060089998714761059673600297722090386704597652727558825200490725081016026585041322599509787752365172155704279864989072643694307394596447838659311459764233423434813296324535922213171096822815309248188051342326150002303073516331828687577018055133721893895847697582541938512515877518785879108898208744927692771574602694197102543853211579131081470366814279554013191256641256518839489592116104234187814549034370817558700202117408092661047399586030699686352293426417513558586805260655874844239354612314442839166920171216953371786504522421544362031773281900120404147836236192277674189639339282156418732348430400508414620974902330149872349877900940008479667452303646905358863850919633121275088684291735347011344600906600951121220714958204652122338970555285404100165821223715886679362791242484535635473648169287969733602330054069089919090302618982851663344522165535199654037696979974775934486166169790382574230804984236470611283895315877970706203297617932511235871093817552341963259858080068709817603632822843689636440916191898735028718280612057331030058059471678424090546670752363300917578388729024376536056148428964116427656191773434184007727144463003749938661466865199809470486899519693089530242689850018766954411800389199759042059244616186270673169490901666282747919115784960607583724637958403949319855944360961907503132574353979469559285977391649428567602141905808257486143007303791371281214698013569014625068454185569361104184148164428506356931860144596325507713071998442255819740458284916707385121174200603342403769456908531555845371325675554117903133033834758186830344586053836568528124201335094635154741258220250140988064119958472467861338355412245210718195330640951330015408469303722851375189641940929865187269228136857981745511012283487408699609065297357019689022917240637148066453854150136026288459899611479702089376186137012621075918538163777459703157026305287876646850761161636303825513460324815885188122739636423471048393934767161319013271388497637256499132411714151700592135951579585522710419289052304322122171577991520066202159863082112627317734606391599092779412424175561603759604685879205472007749449849373658394119132049262401000986728310066033080255132783959272163664615317011903194357732930776452045935061014309293243710170280755479764344204930352805553998164544420532587124662402110752017571984328702804711100156803360599874292363572577301722185903468980870976824157841736674249144106341443822880504286505290406619358459186817245717737482017126081122540037558212496315700877845747296060198426853370131771913801144684482208963783476301881344023520294134742879526934397983137516334244447470950030812690713922237843025473252381582368500906892750415549650451070424173486872663575294325796786502333761326387816044023317821344597467475537807572532738951246905251086673039565806423286969335858162771508882430947640791857533980531272051707178272413984502591598157698093217804042452985395890141495415720660331518893613371065924587180081311574448973818139518409449696074541880226294431197154011171305101783802074214384413851434884120444877106037596367469982234327215708581851425889516328227501081440181005327641548377396758063928876805836203700914774870675874581867207623131755004615622561549384388907097637557824030260103450796618736560736186228712496094841191067218599813338135703989211083655406020305342489473580677131798247933763103709375397189145157883811340397341955112476006389309836065722936866599340835212951457859942266929760531092448129377192706838265178884100259989135338818998874877978509923563258809188257137262337957904935877284629201636971752487253828663483929115870713921468939577880128935826057127201567989816977955270143718865270336494011610119001179752237063164925934286406733166622259683597160798227656831685724286566391799252283347452507807975355190208753621453909205000816169705496725700961274106056482438870857564228188128426285042688303782703826316832450023560654567451503072524770015535435089147939245134940845073015044812964514560348147927952151919509896506019035389213637869146304394938125014921111951077095257219064553265992684481417227327764361043198490254137719863822493108052950646609685656690326816465576129627878199201233220012989515433140835390180073208331620304112254700251080627955909708447445743835678225940983944037638491101341619701841430065740522728177444030161528960860931000838696145236484966353234432029085314998582275282551583694621136981654301333757969399674348792344493865120870873606590020168662662829512293069537683104008296301944265505750745498209479611806652445753440933531356887197493226706951746262053033149693263880503272301388054993545664746475409793655476183468999266576378294634497621634331002317628851246872675660609525671845794981888103153768272950759965932953044786958173024462863770755071324621013508021463105312443604304173770713323481184800717936696910400050660963570189249782803675747573743911131310296221702549214245265423504797286848474607686758338059615710689768715531231174978677113094323256689431405329333085869324242028967422347582222498663163173802142312335125101763884634355681475272298828905406764376656016830181871029554839632705662694689172430939848975445081202612233146851581013869882687474646163621388111948615672306344651077812608933313833042141028897449496543580681324178445753629857509796457096869447916090474238963153956702689183417362042069798729105814168528601856009623393562347306266074188301021893088807364117229154215916656074567616974701284674331181045289070147673421579895925013868018603899686253341287107586854425434868193561344595638743338872338728102717649136798033697154010693247648060893101035447657435731995262235744668454623722485458172881798884616589980669314438873222990242971962289739838891233208297177637749529732825666564633374816217301959520098797859789842953203015427913066155172711300963371300460684594665350398250369400979937119294243098087187995388872259059566069019326237859086917819087128917644867128998822943974233787709818319619258249266874419180243020097603449830606859353576714739780290227887547481226205260946857781834562863498222814801138908771147233378009566400689255295639792259094690885607447489149534291423147614854067551860046894418663659064935598443570336343980805925192679464439763128614165732159842877797675327297229166513763156259165269488447477075274896534822259907164884490238076179183409429728177557798757677477725558881671948362243575883877479772593147535821641641489456759488474586212304746041116761572939751247700876499547686899361902635940887603923614163642620524832780560644316711629754554024061333319762070229623190048058665715085838024705104694737700492525978780307845674756098789982163492934564586055171175085332353176590121932812274523297286000432080195529845095187153860703904086033832846352796536709055846250070960779114766104849626517099289136274180322996291120040503458386365444910303947362847103554479577686946813257153624190593774817226391050900449340180200865864899956420417270832585085903638855299213020249237970146951815475950876174258271199537656846618720784938804378926942989208355391177993610820412558586733694063355544131252239680577867448600801781004175372893425831645080393485659433212777318557955284051640832579900146602463962436027850151981830892805612929437118055932515434865498968921200655592183752871170697108640269514939854834111088713982327633200505148206930089090038245848992655149315089392081852878548762517083356327133718233427039656589593295744307533985681482055688586739637513923706866508378631353678537961424303560441112944806087089831444826377147899749810992168948305475273202230917606834625305432025150495116691069041289565701674680416351975490038425228830954671923006043808550129389682210814803847794182333569940714648273539201756943862699847687386388174343469860500436200565019524106477624394193129624985895327103198704021001046382253991733370450594922034446464970687474580720098374162764947560746007319733710527217255172739377051917565766105749390187192133377027580396048014823068479786550693254208142228775015473391560434415012377032327313387911153348321270440912859377065337008199577329784119771629632121304791968588390422022767009054237175662920449783474254822335143797486041268351624827573556578278170638984946602917864867289314829296279290014802515760593042112667020155521603129099347174705462713758343333033738251488431570087049837220080642518050768372652189882721419360261031333380245344969733061579206510886841749486831292454760217342970748266654153804075067110002885212345114602585370270821097782246953984426945234043411198792785383441175245747545086233627276344880458283076444679431641523358646356296800400110080610314559982431491721803786907733953114439440432887544418179495530386979721501488611321746803504056043346031402358130850975091583226576187559179592569729092825964495034139544492659202172971308736930194874529757804212920405894667794725900237476291690046425625303326396493981527250740938561563638005107374105504760558521425149632793337199298727417163626943249008625395912153316632566074231996164388363715724695737213994343847140420543088458766183376863156479142272546114413801483649319009029410355926162732738935556514609780294334648291981211646374900408678778470651834839293198312917652571288576874821954985277795145215146815290314930984069663762771451314063279534255404514138321025281088870613874418657634882017249764454629803518186914135003863599757410796666532889049515207327501233757774492339811364310504432358396018986207314809523497967810360781555568465834054950776357785959228214032835054513958561068710146109381507686462792998803737853470838327539621547087565217090010871684151267025970232716065009295955510296553567624403573225875730232872559546801665725330024179401031769276778981377821341815978096034055561373157655308779201478105172584854400251723756689458960344721017520368707499820233735559386706557109436799378351459601964424791377640555084471949423587679544104176590685725904930246011041894819652525744354252761250021719950377870397626626352375409849133372042477154879837105973546155887371343850170720117076358313103860354099793050153903196220195332782447637344941753143277324512904972963281226868948447848773310910057873909229656852232465036433870314657853555193352877964720449044058286569353282705749203492981322673954840101100369784997563644817127583067692744818752898324546045636520945037864676850583294428511902954749747955522901664816272377491648878603564819350701844733351715441921914876305256370793616880028626499505339917967772759258022141895201938729513907397353058716893893228395569804529216276952965781818329868357905506923028712537134104792291291868763001595916873016852933957364714527008274148332483820034081651190063008487573638436088764887218079723851455020704254120314503467407000736391227259484639293213589706827235684605550503196469324094156018296434624467114973074979296376088775384377671212901767695076317503324918076045116244377195666296341943355924102682671307743137281930943738475387997702587823521303169574791849153055584713524722311864909467282434160072115266147283148315236004418329744665998359686554601273115013884249186250536721865535996417175074113540686235680506665578775774367818485385578153420871424274180652751237688214218993278165479349939325570135540846820410810872620638197596426975373984171970997509770235605080297000978820167783177805034953580784042770235322792197839462483405084157057732741274583572098235436574791750565177653241401257858934543458504940014296091084748170036057721455608123113918037132293985014977300492199805966468648258666743928818566698128287470745807154491065331424915603443183448576694821470007667489215235394155457246144674586103446994958846865475826218278514471440084641752588509534923277806599868460826780480119643410462129176371002848968979798336934688874546352322111781665158786072420482847707257634196555163727314728887614271389717332781276141543911296159239317957834259347036199797329244672808222625548408017174750668513103585062376852203563545951830814672774857005285996700635530415456218451566906148427639337711990987542476485074471196555333893636892688067036841345032819433536380623303335572486990283988507989568949854873558296323374949145260748229243518783553969136618806298039768891966097427767747860247876977183229743070745160737755623295783154449896731846456872963953853762766841045168108671308523899443832132509473139279700448191279794198850374945083559235981792894861356833673282773507014372273663321166678763376290179105399836555633197083919787910384797532068694192108123758750675373040317660080475437477409411249141774348170052717051522587260810186579596853536151792531950311242640922452152879413631792743067215263215638771076049209651454074365192434711172060010408929241230077775339340092681781166670577051862545884442675054299453826497015212261642623839246871705439892775435060440993144999784564141088634801912807627316044523140893665012262510073875544930538547106783494510683890697942265126317101830218423511052802120896386322160533007388160730228409517851167229408840002803528602791367986916720696416588458906421506130086391133883669727131627754138023950234769269323346739727071285395135406688555307510161347199598648722501151232697141827613132715440049143078429955331728264659533827575335928581867489126213342114189380922060547448967365752784414910084508720099540413462779562111031136301858659009317211416301848698301019038268336576870456172350463248451467098497743484150953914640767747169201982568973695022400555895557706029060540844916015321641663563108975673976473110365170855004512959525903869216843497710873331960821156209267608449978145448739339731292068380025934618235772938865540775197994868469827074204584024860324661500379953820330225257220968928922756737184447292127742739479813821055742492461211773472345108069447659257516154416187479453981188714749951533565492444276490994029974349316850125609157347607868784318572221653706086915247232348876644730213000893008337960286919164285321798675120103903873222742735453554526376144850206472292118740004543315849835704585993114305381951368713531699610692654684889440525973436890347943002795879520120798943858347376501943180916854288132641161581160359857310643754580731939176922319631947214090131847854440598130498188111911775662878454263403998196914228620228026819611506607644526550551224783513466619787717410782412653102050233615694045641372665726447499105232492420842177292207414489060341188712704928060651761743066841234439212372993872502695848040718749646896548491434522453448233147143083155154877614157127321277230183456917589882884838584547326773252319510631775979805247475000368686808177899174391999930553379359824307256413461726202484102371618649408021978822627660915499690234469669684754868896609950181747930334889869992077780981786482169747353871404482741459167234051907152568296494323792339414050796460096585089702908477791668090059700230410395695187566844450790638316478864688541462791268303654034777026872117452675083015953187831008726428948349852582100169442897762579233667413163205846465958954429185531294422384858679370273737357750895559246030068485252111915175074676119522209390279709805238061039178751657344556194957484899046258989036876645467040142436071958372007836970620717402351589780400536459507086871323775614338390049448728647807963373824872565674964362781017935532755306834473952732277002827934561720382628555996284100619188135175225723204878222250038615786646031815040562380309563028893226585465769828141654524614709834050532439758946223285887020218176020200369776757305631703247490775081545880012868373419414855438719669406954908189376344393639808419390918006315750857004290292566789946812089899027928304784030839805960167839333268721033516339425642395070638342792651632077909807701597789895282674555155126469662966482259604112864110436554919678016769080238832897206064150921973592069048770979264765770052096119830314434068135763654858616066398222984523840440406157626474959297521336260727305658031103390846370648947227718898699449179542316793318988210770895023536766833547798095914554787293888062344329781010204228200589041967268167699515945679156487371825253307374892965270055926548780273034950185940679964861896514739704988197631198523792252392267755776820816240697527519044604900262324353962587115866952650832849502523176639516423012926531979234273797541374364009736702034000508629226809151029971738489365337533004329033395599874543398407041314049093781371347939193086122174325597076468869053273901926101306532841194709584104376219044938656536529343226605542212001003282935903651162782733152776012187199491289729345263540624338464581667922412502501644403888962712730901261930567489178518944581858223623528393024101012773454397940388706897156952551314071825489197552733080217780058819415194203328921204319759412697556586379216841308538197658745740715623057324401075629826196563791524592663246153814644099283919041215031083292843687120264904792750051521183468186644479677434813245086840919032702308130727931544027129157654098497276918733252606588649168029292518315964770750392050407256079779569818235951334450395722590408265801849307293373872972229164053605516707211134885749028418310339840227135805595206890498892037357408795763758264298977036676850673697799091584294759018361322154030597977678907104357786822776693844746454305617558209058505119932364961206679952906755685738780197847054293828112711904015503517895595074741061682860920276181655790547562311989876815446304194676400377500183718250620423587139655931213645189065571086926186065195755295331776634787294008444208978706312746150838230046426345261601639142196166981110411278875431035058998179190687362525829110615499105695945090130112587785756652288927094121897750759593348517215734007552856162945188009270217763018369810639879696943191210909852504551993427312102823742950689829961984976309065302321551275049151148017021990270940217082264465378576626999340443284709134210807068262804465400560499237356701889642145893202775363899494648804421457839470722845652576855432586624364195344685981384247590354280012622837990364542324329803193901404865250756528478839808098051373199616327117382231996305421278541774708774947941364880944569599194417930631659720931880279997989852412143803006754738564693857574209372410164549010831664469802682208199533042411005195284169567147411888727417798868831038827788924067075971653806471391107797117966198935144090168664938695646814553748795254628518437963075392617207513024102620075224309488546848385991484287831371944880856831630689449962042754589071889257719792030480389950921131333218801679368800267981162071084459318956981124619842166035983187726095858681321375086748013563210140908545667958192054637571748724923493087383402174924912930020637459247015861070127140906297101724745592065900235557134091606277961124387885205929137860156728817916828230941007513067203518190809806430679406028660995166174300159906838821786644069695975034607402227425402539713551532831737174584260281016842902845939352554176311661119047792383538972752910870255590110526991171060934538685729423664462656629379724009021926454282220707045600011073146581487564980925098858432162435911748540960696163741844418791418823078305600174094084444540949060590972595912104509208930483568988242449190853219128134606829435177065099357695926034314102823134931386056413366522615063556050609106735065859326027583209983401583957645670363419464973754488844705088784890409494739610551535039665719302552089034746333793607276933690127231928127936662347274875797447413231588904174699244358365033263568958433158241720581624353481190491359426829234900520860581366347409293918811151496654256881832417717087440312201324385282388897610377413817493327625983982586896233537499494263860911524138494262996749167758659048703059315358555355075350923252466037456415569700181846652489091025263634436552516516285092645335699973426839036660470472050722562892090648440358549479542181684799576198007585565382129501186432372082472535166813278064703975912042153434143731933238364916723699970064782541626709254854135395065208919411603314240832226488093328518891866890817097688301278578053864710259626133819112831142485051383194847261119769217102235191398120165850388649024466205658669263729797882137904602704638242385562163931017096397662494062967860654880103388992224091910375903606543409312152034089112724349600089100961913927670825831263490889685106463890781788996785488004424556319035825371385542099302258008244249113606434673063860688235960805068086508208295786521324740174309559939689845556631612877439240348575492230752731223275000508922094963503250991982573318821529419290277848639755255871683164024173454076487753811772264662906709311569685837095467461479864440688672431184881181324860310024089249702193782456668613396036912031698309538377284925946727115654360777644967829218689091546468750407495069683360742227457752116398169359708697647289574453570572374201726714961401556816996553958030881878583463153418266748626918860690356236244831468653600380482766729391397302801421594902210036012173377948345639780999063788623846999992590099331079932017587284670252462943012547668178936831282446982948389467994547414273430246871712025067370101392833547186188435562523206527038336105336755391720467305334307243983390827816667894731253628993901662419706810366459799873949341616759343412576040368324735770245266467990890115886173974523134013902302421660757770204381444960681109031463291930459023386299625657281119368492443658713086714140398318768861674615999503157837450273394860288774130669711462628630277026733135759403486646189236190331442887915676067309210511497765534701021072827749657676188655641703633424942991234870547176931155031809003567687609190827465887762465921475134332553200137382943523364558188420548913851056860402844124505395776732744135412836425564822178185738740973599941573524983002551182441602427563858245150423028077994154583542162866589698075488438962249381687489763554507711598849223045228776159740173839254075471126045410077756713689814919937593677740348757371703525402643580730395485692211947524400337357970007594367823895762389926951506775977107592647093271347344974925303216047650383704634852306627116534805608151591834273094701693603636421937688903627762048182803386400064458280820166924505361047290212381827799945803972243815516884113375661678808148010237515421874829147801893601595484227364246624461545500875948025862802166658902532631397104612424516676722722107362014069908509696937313881613246049769271546289336254839729686645491195266023231411487126149200366979610674173965916525925280474085179120989902301148024711968377049829868248911911752294275360581522160237040847114261256721261507721087310701678854792612168293791031362119110250257175166299966654925605250341997372536578482978462464710724223362476755633311722198454136989418642894723032718548885382684510351289217933939173495042315487297063216701678603329321795611970069770369222209238211698751951531931591428581461054441418532804639986012697633903345043212924225454332178191679684908774487218413999659603754960154234978605734715952736144793484033065289486055393206043853264955491683684952083409226696255272765674517675501495815468416228687860121000664609678129905133582336784101984532376520268425550339601718674735460477949618179060662078622390062378714343319263078068132096282256599888087261864476718343455736326326952950603217580729901912195382503202118247141596907932079878644774581174315801005405062874816014323531586981059343341544279870972871493208172056476469185425919073309498013139693563779644373309975250903107571178018932173105271364643730996699158587558647013262703714463083600776384559464209450220343052283774438743572860051742569418310886125332501023839556721874954485758869443198456243899169902739345279834892935773398124972477397085481167374511744857017516800229646684202770238035094605460887626469741983040272490530298909063172684843987679667833895470269877416858752701732395383755809539778480813198747618266778619635382803884097350334972022406804044916328563646146288362755932882829548499372327164270312681765088019915865951455010543050649913409328496723228707561004946377381715339938159328477241690782829656720777087096822563801505965176581746052481939683026044166381545733578787980138145718093154482025107578178660163548419434360500500840253991889643065522461923961447616291142674674011880531486905176591735794129192147794808269038227073200116431543880326402951473703186645119592773511857039248605516757077897985706895303082272595742684665526464362174951881822603089823711848172584292492147902315812501940156975555875833085287798629199159634849762510477317179625573691800166470307526874319725944128214286266485053234157425891615388048167846764038321930272855966346179178189632629422840257414070338618927632483669270412518679645809505571284734890545190490091710570430925026124176945566356513314072595161877809425990572921130715188858659140364506702621318474080570136560531558072336926557979973369084792341969802505754343706718367132369882817317323514884963886692414171310060702384587442189262108030742466823577287470924200625812780027297513027584426500994139376426427436404483636515123691671328743302386810046690599784439362447977255034865925380291772534649999871013173730399057387746459123645020968167413587265501729587332006410852621844740426715586195063868067940783967980405620028954915954394464038946436234844468897062455385097400631924510342197769535271130940733039543974666633367825510729107334775546942342014120174251873653968138898423015788912336971963072526545380054954280612392631982732303261892278978889047293258307646274070896801673499225458020275138888544109069653075355555206510768448337892010893731824236087920655353790478317136380107960944176808005330722322751333433042787154594068577340487474998006426304843465222482430527364430391210160406772687354459172414249331959713831999360457322935745221138437370905216753011285853562053574509210936983613240430685067054526918665255080109704660793124646028496320875621753016385712159616277593947819776049228282048824227904321188226912873093625745174808669298200507670861012165716869615050085474387045048903807507204665165468609379856699198403552891517009941130115494714646215463866095158782945895107140898268924747372024639293996550643959907667511940594247175466369545510961981033968268973523031377442437219482073367383593126689076468742583365036690849786940485522209791040932015040543777609698656539896097648859160780835758599702127844814641925371535653756953091014765972441769243128732670711363085928867969009573601835823926663044041092681646960551049763336793465557041629842160773026672744502019048614946498765974220477966459381451279237464552597857713650954220275030206087392531569208245168953998911517093640348830930195893601413556998466165693024939956064875583330756739380827203508746836440210130898432368976890131087829790143722046441055078968772449577741030009941305684501390969660896325879201837816245772235090121088078814219461851612889229773894127619894641762314430466206031303557260221366622716756444284228570408233528550987473330906099338839560169200090529887151072365996484767243661853172174389143904568087712504154918047181594611813917966688355055543986851574890143719380062316172381230838338689881386308349169619708548917977352888630406680636465305904430203421861159469983077975680768484127080050364457560228965572818679577554554482236918666885174769466156153016599591615500915066700902890138701841540934832196902953260812140247853080057787847086588574060486279831129534148779892074092295937682056884800595666250238503557901498517841461521654400523256827408793743289196719843518019743071367622393110468716372870492338420043632651744779731822436183134937191243297372152381810305851235653276171644345339548641532609377882060734770291483514766408091246994915291110235150306590617696562804286763719812108150053204423153572191580210953609138601979715118580936577296448198693673970961361721000706094475978878647378245037146446339255168510259403566675397497473992120651355706154753627092240837397750145810476309690398162231904598586400792409833295450329192200620744318364317614017246145863581871046444083162102618827519012500379181679764360955309918327811703015003990508835976874987567283452712342656057508965727881326740884760083855053579156691156932225705186829936990412151671935771352635978098671747451759628795088689299156577403910158283520467733261407093342819613707936348070730917611969533704947437010612960260795867150321050313003185810266608993194321877000367490429972788570136778008293344241353346911786556890721570310237113882210924453317338523858710205506485937265585833950378005861805141738913918851524854632557983757777849462107299214128847729294216948117656559186425975297211855252125209090285333388637068142996619550802438693600049648635063773945327459663737130232603015252979232340836352399044251168150016236435182705644523874512335143345412529054728127161608328990158380240363381339878526938984278293106731868188720126558889432506498495238915553709148002397705647283771876182417856945778667226017158945177974706527549296829207672675629892048508274225460608014067270999148960739502570712160843693721023105602995648155078547930988471372483231155119453567399394648293429793908805420848261459887562079700641556429286221155320550038184873609085329130499436495723006170357921850745774591429350941012305227173105184225028251925083009586210562007084876309541188968700018574141262435521633363887973023302429578862925265227572731222185028783193523220010093120017643013533336554211696698311622496792601573158328827956020785704626049693898237892023876682614182715210555033811881778214204572325875717181895412831271934471292358897538681602111194701458024567952787146208654429278970662400649610888214895621195728749003058455325838750763087630129495769079549776730502332395902875100898306593518097307045007306425545973184611264711500855339006588422691540017885676940707814701180911378676586490134024027267210368507719582080762734106818222149844834936119280907488913778485065710001128441375538094371419495060974213453104812216004387732980594177080935013287100101777395790296322561567249328180399423829962523729498931113891035635464285192650231382999522985512779766050128311159678933394098349496777901903187156062568466024493676554148901589999772264699233714833054975182205084607744806917472764822188606711646029429519454318094212181620082637864974626037847969357361313490428586121497644404374472522146124071807160894259415117948385241013042701754458151542885203239242617043897774018661228692788668784099662303737845256393181176147739969469018432000675671837343920730348107426326308765937335344465617702980614739329915316379444189410791840418021206228339235307202326336459283623442255707400257189856725060831895487360054231560035593041900847789696237204601568007351756804811595295238606712493221505654866932210680098144002627345748103947824866994798712578819302817219213780399715836134345953554662515490607123303180429504295428846309867502745076819896407801306908530492487909456014299034823037805874669922758887099529978158137110241078180413807151401657684838897713541338960331245745316428521198769493834573281734938037340801759471082184863523781286172575999502416631387372395357561288026079509654233849448390995061925995702359438916719075621520207277868127054346688830012726515555077562022319477186987389311200306443603703433446872317476509402719757304876239571765337727895102214558132161543622275427183122693753984406565969236392313711235582959952474054566217050856040656415843392994666690160640403616061162281623133071301105538957820845827660763389087394102018476445424979558426967691672717443623960691883316881228852919976306686330893850541855731284862821214454465166212307048424509689451001681960658028976216137642889665230006775961491694445222536598777617414270879861950285844778211527735013708289451702789049969950974694481723703567430887490599831758200693238202793881724947054773711506906594654525465141268675596644645748800331140799163803333197956273273335639134860864553876782741576980127095567417960724786267040323848178143571633804197709687994668474268497757652346001337716526418673202295940921640107088028977588775079626637289923426194550130816538191368566479213717281928734809802265024252324644082619677890194725451562082799503863603964143132863257014545972430077053238670150434907060142126652977807958527965268340772466276037144328921920649978264894728739784977181100892341065637630529599440122217216167109612317962657478629087968686224918481426723721981354860652459289583753423655323216601086237413688159293354209942536372714791248999146451275315373801469336525545748869255196361143406715157066024014158649308720245676041977982506419021468737120697323225991233612565711852560406543991730280382662906094332687266896870085863810722918306309505205193911653103171506028486331103114740680661363963028098448606859301475889098245704600743039875681187971233681566202870635912551873862219561498175699352492298526597445832855763240788997293772176828867787136503505595127332730707842781233179083127578865997708176823552553158983981583623117067916977162071553314324444877596550813537265936032741381015884750856886636006779204607279828506565199611930530825138995244201941826067109210861476242462604612161716565185098936452909375460645182971877256877056669789294056365643904524590014204179907552838045971423743130368415414886246930900682335733544904291380882005179646245490227438454767181250753661944617129418994111606358370455654223150196509297758034759299535845618114858280204560049761952537521609183034443823604464398597947924389032128399719248316308809904130082178106108141976510352732853221806234719464167907368551033887423881037665644077298036101252291470361398562653190862082594322832481528121111407402237557538431267423962976896152281444456698075655538971946030277426185182733806262751374679510321711213020888105675207242478481846120513440646654877100199551477951636683032782567909578317554608608317255440776260288754802770397099369964382477348944065058504216992148572946795923634195928960799045267913604892977555573047420206157445650296946807281311498789426872483032593816755193460819899024756902303882950215098452766842767226864214076997884203917504602823350891105080256813568960004238399249650364032702603980677231647568208725187218592292428598189109899105502540667391735711502401448389662988973509337035563904927402581660170951256390436002103021837198364793937590525091732935745037606363112865626667481556405630873889756131781846567847334212730697982790694584280062064415974661899058638467472420845482607504636503293816640977446700798638298988143877881033646225168821698165429195547443860787634320403528940536451919246353658206228670390289571132609060406146181751173406801268955744033548713071975923896051114733107138227509592980891851141639600717639828330581557817154019789284303205259783631956879667617512183206610900023036144292029403585485130991506712914813365006921771854699309142969211905209352628028768028257693387218740177699716151293552122431251323385912599509574409346380722504523994606904421486774141912863057641750959547249158140146159133861237677735844810948089414442096935351078930229715108238564884586051191273828703175203765975756333615900138605231784165347087939860286462172155549017525835605435433343328281616324174031541787041048169011034210064594592558389302207690014236426241245875758204599921844400930684239729228956463046388678446051092965319791228571986999367273921494650160175770811981095822227769623645454388156329789590325188468140908052721986826404123471503670404386848172998713885379265540422718525534769448430321255818388723913058771293124096083512737914193154104196604307869928325895218123865906145244998462074280689007055572947196887223082204595271899923450973428894112421597169126508757505741985955288072595020871862023057589981376773616142886184534047858089797343818182785808013486126662713445273170389476915024823194364905813620011223204413865839433436664238483803415056555521894993843217668597769231691280377249202658948924754720211843661508165452172633372879316877174665804203061618675389840070911643983428634846128311532887014912902904796323077758659632624237946962445083818471637088932553210463321671059941815325917227341256376194027127990271017092872514581862550485309363611540076364853555605617101153126031467228130375264345089977581288809887444163522352372257633163729964236099228286130632837650798638052357975133106267276440398350094332592110412902679021814634604954519842287512214318314570399102595144385571008489914182307539252127291995338326456527133096580620537052727580879604590283162943566909909983057950807059958736292829782334870645572160717996849331968957967226281827863195052244882949913219225065502156773122061403009576753840156699193999887723346619970339867340665834548541625090027296314070218270385564041012158190685085524103883524153210333107911945922456565514397362689795531823222763997991425461986980273966832080587311664494530030089489743700413345016096559431584122602678128150758205767129411729791551851817549737045794534204543198000051861189602069137186363681892796646102355974347675373409641586341198241926120588196533431853242997670641816243651991541444506763816674573865676438239447684212180470178910925823377482239196360489006095346735281005749479551255226932311309444652692171097042196769975772809896535420099429374113120405748535627089306740012439723074318917918073010997887698759946900613463533169689807907373996238337033705124411842834038635059816601164753102376474393292156061733395106221638073971196464077009289163675322712907598947387729645184442608477778719752542391695079194777692756484992376804415310750441477339394108877242575533281399336126655837370333966903354153746642115056360205400057038018615780020210191877311104306001374477900274329271075696723337907094394663713870641393865537730720626029496518422000397409882351637885673006559247634610466412255931805308614457731427433667189363020187766916388423122089501796678510646696657527944370558560664642279237376219002964241857802143167766277743670421400959810309647945390948577738605873359291106577964743788454060818786938969635457028113352886629780498055512273258898516961592868943718931279666098767905543094477012084755419849560063925231911334294984098341687634050507968603227758690133675498408770619047478026392702189221571075939755984680506138198036943753380723390323857542534294278295129694683530894555782084763420430660417717838389410804402890570956208741656150705583413991575171919164833573727989992856305783599025822974730756615679242491433156614015285098548109373869874713146718845737065871931554530635229710087755400107468889087433558097699779580376635319608970664583869901938351055539626992577374581853353827441686236790960017468152326004948000463811175034715288859090209094849817376527095046188162598634805935688201770615592739821473658279865128264097975356714775809476177435329547744076035749280755575465558818783452905074795658774112699498356330581527173552488122351699846909165552034764195421135497905366527696183404303871449179422011040218720537599671711295215882079766728504210639470119308972879230444410637443116538887801973782534816338046294101017842048107145078821525886389647496015853600208235150857257416526551771906259558371930769369295976025008073594702391041601199196507946771164337498475333796927438573895880420951378253622499768816458494874833373480531992489577657092476256059749364513008085312154284292842540079034099522989020983591835496607110994967276404193078856065096116372534098159672278867744143726791982357155633556519192117176601264279925428503052305510147598037872190909753943259760578276233713978592137336561002126243164884431926089457503933168665401529431617008375261774549638786473884515270837835789890654662534330305810919036802693274689900443105861467080708862750285577805426970972838197267396343803728402920837565615246259138144585964734896910974498855572072889945425516903675064421767731601876474963474877579824248864175634291711885914259532312497105782219262071334405318146581642115827037450130372130446728986895598557260095295608886574066698922672571849231455502846215946097608680127707183576763491176773254738406884484941851200469252740056398365981744603792883196575965169851651817675341353202795785602627206720618081693372761660073173345905652211852261339705604115390946171037737323770724322717332265546253282235077605939903313389575973454284887507158039496259484645770875710568270384179109853299965374877229605436344977884181286755775870997804480179322609892922893730108024555947220746140147008999858854374203743511306048592868246748545541119032680094732192944012041426614388447107732144940782437238073074331477077016128913423102250171808638322151065755200695965044717284775005005528345782579164419148508911520243223534391378507106207961999086917522008411345894231580278355571500790621034600080672188687374836510238778657453798665446706497709704453387342818801117176385932340639545166406033368057725785152048875258588159967681625186822570021921025936143160217876062303910879455652959044016353080121721551601131965349915839054847375812163405484971335440785562116533787070615170926263298474761283854913846465612479895809173932519467313338643388273448676328277734899431633276265890800603562686276510545047258157353773447418950687799434385551433578344344676105817084019937242360198930771679761145782288858643396741472846664321967267991679668453745794268766654227048943356813165649563117082287557498094894701461450275356415876409788503388815929607924176962866253488176848944190017399734147325172931119060752365284825306476099815129649188377000260122154896503224046337415709588450981290786636158342513581629972632421445431135181034918865433269871897328216762419056999220170671871727230774739415777864749373755497277497498978809751048366922603357633091287973097912247846421105947095215827880688365993569919915094559434000442404727328392237482989056406343613864548342826603110872018979924146294030999428529608090031164083313527856938201719920138393672061121190321287135969861037292635136129243963090857966164665873176472078981630736898846606029761788924990525338526022870502601739731782805635552133089211309112825624512510377022335843394070425217826062716742831176947953811051152584767356073261465766018206079122555234261532875585485000495641690772117306632678529825867417681411750784059724041812673241850222074411524545988397909253438080957915594232573783464163966287937038541219610501012138377128226364790693835372234817840615618462044820684209602568966329535652140450222810005646061516175009529886020303671752745263099834657831678920608077120826247287993956578584881183478740084117402501494088528048598148530622727725344424593413619147438667798401069667780990248126646620052335837207104491817746620713082756902526355647290660919937915157960133461225339940654144461215672488785785531564223953620066408762875642463242795253809509005154586240463889634563692340163212162524080618847087146147466097650904875742194563723621947044185616854043823611703984475142272555753422357345593263547591131399499225968085785650884276482630930352188407650296401186616917669122740548001687493397311594540287347150525344110549549724216658698417205185052787925609009322694571101410058994756726701177104398944860822996342921403100968848997717621427297058799416910002692992207770015648101417280225260293144717127592411799880408867864309128542830355359920711650096777871007323479129280961158280769665185140452445620609287676652283824977298976669868353904150770448521394058117536475968548679726562352338892552215573738431807511969998572215383828944206399729515011704734446852777423927265902484006244315354307832459069743050277725381552529486686488227785577861838207398203507467088116722737205859599843586878040602009613671321950331257376733561792410715381148048258324712616676948275979825208060373082332569154393281764725559137540865157090327804056261528962077634171740838196130432697443285660619962089029438101671510271296131678268555387382247500016468300375166964381044017897827866827832042214923379989514608783400383113775768093183297363886510218668060864489343562972172547860853997134631655675453057029142140594005172391296313363387382506072821096401300678654821874458227304123372279025201297845575752338279138888386592354682639491366055149325313134374603542097411603713030179734835290099397486916316703570409328346568735651878796078931172914028076323448896957470249420743144440200238824999123083428948014214416641086289699673722347828067092341251111379932121465649032157936937833318282089783416329725993355479785355203750699653313268645320280984671379405660117408502883070682520019400129367599241940052874099336936914007045316661315266070336887399154653504708769870275109649483269606666760411327156223769430257135637168030648498604776497541538789819337592731522135946812541604751961096495296575217600832295195871548340008122641245376990305279139642636058723563115270032232812799665600370016818174078460845136001718997039716082138763974129348802707181197755447808403384217715754164455668734645892182342762711169442883186946089370656736921340688122121675192584205307358379640229140329964876920629814378432538460041282363852020601247369819326231727661051911527028465462907869325330212764152928855039843203828630821139388225281087650777212662537736983671214842191062901095469931913784274449602902170232007416308456720018051221749576436964095633846168482566041032579212723506030530426643071642959976284955820753031101954100125255433566776367195692623006852172832220475109813604426476344624607492109126647737290966189700948510226263015325072959516102245130624639348343210017304683447918388697363144470619452168985697838730519464731959481752855299867591679493613186633854600740602085154103620829218578477449840371624351824831538739277239172285393686740114623607776069942655826889267950811964636128962252343129882565827448130625338542698956932123163469468657936019582736863422306082391314507281349456321734592747234624377998717977115925209021763299642694121923704205776019750348238825473931268183004960276509098092518178864902937009037401349470235746368272917539420418432606825460895117257335768214343574406308257012972784117527466393553734772104420539236757620300067361295147477245733771504238390236380567617980379988468065378974678293438199544190004962027162921880316289850061717208638281920951405394952755037463746831955108021294787142683894040879408807576306848186361636313281789386962572552278264987667377624506538771362178916707363321204573231155001132337013636691508706480700847893991549815858402661551723185214773713583905718378089266952400485462674473102540730053316390481350956943483010521465021769996254553276780337362912671889412495781659407080314153099330077491522210116749180521425074710387092809906480769096414621877937891423127333680010132849987663108350961569735362075075842157693872622117296592983427613103050540289677032350145373271235895380061198694410562000857653706833140716580271669039604956124998108908930421233635076790303430692249000324331536143366808361890455828887436697013052807488750331188851451341564357420887940580937105367881824109260998294807598632938892830634200139947836593856738706728334049111805129479603432616281165516126274122561353699213854320233009967625381155009048513672002419991379270106961716341883765345781243629956196677198927958549223037223599745502477891169835201908535550528202006876062203404751749090272683609323644494238007392138347372493919178133920872029772196944248195827353923110385246040595262570237127490697210282467974986768692902049713582701772108139893783330473764197503710408421581388817523191775734980091480993141346803635852386955309906526931746269388806512672290003879433780478722999762980273800037508576908012460011429374970018261350126916231739034449136760377657733766452198869728452942809919902308000134910657792343201128398121602942509509559230027206022265218721828214371107761235710398677850767657436080229462402415718881341230760262544728052795153592148934155327946358368263740121179130456315013523317985338013609504426346118464856394730432530927151021862075263372296175660175939538681989485242594419432628465911909481345797592813981597533605793040454907516553268724911557270950081085431685201848334909814259149296553431358239946091814295116905261954959119246236605113509183744951309229297458919634068296448292281095684457400524703096010144541050341535224517925155608391404930388851103960578149636800010401635375641095593811487408155333462766887498395976258597055430391497062832319154163658982281247379346509431366744721360139883422505632191394737498484914459384746309370592505506208798908845790235117537744551345278945666341336823567825696275368702036096558858947886167295765965546778044694813751016116791386202416544260613229097615611898878845501526097315123955605753903338514798394767403574245166698220605357235163355764893249966856908818224508064500212039764563232764591924882873661321305003192845476914975786030950834821713402916624133166195430040923771972538829021069966298280106727632743650609258402152644159715949982379906098151057423426299671611840134553721742917144818879069022616019278152385966867996492468579760021777974155028122406574287316071173775024548299444150653619028058909861580525355919093873179121237868907036291214682655681084920083353257958341051267257417446421085474466818131984945626546178468817911214524134617606545172986403749314273627392174190378967839307528726951932665345604479432937775234312771460922558973683785250365355324425559683093784643037511997968947388374483117377554790855201395709543048389660765188376228087571173846105737265431501628956624769648757424039031825553201746199901129618208087145750417323234116823360950952763113007448839880122938291070960344725266876528951571149036604626613633836226286861702846333230973566552794037499537938336088833822214425767647614145975699365703320456717474098361537428074802669919841073014077688354973182300197841486267040331318368578389428110068155090731822691472814823038155524608760438148147739548262975452952704081638643452829654190966522304149319320357161823919583538841486516370694491928363973019123911523283420044089404523530767895354988644823402561665532017359158538532884499159974727325094975496245857167020760618197348485392912289094121288938289312284427873555104519326131755331559160936447641311594810095376560586396845808347529195881186217954349379916269851913183603049317504901516232527097940996035484594376879241579316804472235120695514089796924703118036742731080072952235437929238085454100252445349509733259739702660563861854546291056445046308273825741880738870430761286162341211578923091580798070796507854955214257915036372805744176374592012432647559799996288375438606582883633998588679303794635665130143838827906600687976189894912859605143770941012392472454667045511721798242973337085066322362853850798873540162832931420089185445645308560278193379610812144895372520673889493248155816882585540319669277640751614681701158157831330109027263183233755449851598916149232764241749761872429760450343268300230845519831472248838217263397976532302427736295454819867447205415570011175900684295418483180571889541652634260401717848752784064155672718921392188382659264574705847125935575677379058449529867592424614553708180204416368615508645453611875340185451972451361268705929972974673170875329498733554002935510352629107843564552723634988419706986131401578270319741103648670426658086366340275540318017269884516259691599722910152344024721879404172210790847636050051672682776166552005715392207817300184976022282941609411939845288877714853798640129676675789708218546844595970695525368889904510412428632249226741894459177645990460427958475721465111172827738127341652270403965638091364536380154516111835838171917025062911335746661429214905745680676138394939161656177986678661225634283152560471757747147493623437697549928447724959542236197649852553565830216878986713910874566601291869015682167650690090338486848074975385597849193269256703676749114788164318399016992876552665871856951886172542745203258936621551073033785894459475563117544730150582469247612300010256523244871350132314528172409333316695020311227751606600012756293289497587528667958207127862590498949880254237030935700923724480337580096335361831643856872165946896428954409753449170204281465179371929710965535496843640056040662407203299993010327337776813649934124073668891223385199105528959936890344285729486299980117963181185628666132671504080176178342644268184318846651135115802525437021868156843769794369023821801277190308943448921689330488890786687907706471869001552278049003255984039268382071002353308846140531601397438734591971250945027030675053431176883937051523519046187344887198834772390791046526573319254452790991624322367136560218369163248524429255867416658009541830635093360600391105493759945674002426781737048709793885940390506955177080629180295674734696332407755937057282491002131187887215625385014916723777532426293554620397084188873540960962979866528629438836172831111943983821998483869398418323399388226670988398887716855078621727932895002350551775695991342738237754786816798105587896582613463688100490867353583226588957480645290106534694769282034117298401950758097692614175303661508601054386618034736827807187590044684038559481269378277440106695520659985782168349949193238559185382953278256561330912800714702817848546760545755003150848073508187697191340208803807566441179752159368329905981993157998454437756816489246539188116956031391295437766040564350690479514895476031770565868839112654119835503918790125051912500747886256522851738550016695541616753134267700349489800855364062604138406186401730354896469548949247758887956421782452896703528721926394408068834698963189074087955161562470948136354534269507899327700622406257842227723081968419524773301020598335320164656146879390505857781201769826320532882622362268198837590020205588633134782244209624569514770080368598955228830529171793844258915002752226240154021042974358266372577532449722163037245739687636276184863613368431533505705531223077880910662719673478608093576092442144167174481726939899501870097526969190897869234607979971612182561751753409421886635463331994152022520221541652492845750296774312683958285328895103924951714614581335271935080544984758915521020573666400515326527666347070519263451035181914359672049632509660711357495347917568372826501566902608854472178972801422220745634459714405813566834390787507806605733850911941239355227826050263837456208733494310233145247140260385457036799430529016085705032748476929922205540309677000665455676724395866164244606216575984805549963143311570463087630678422290201406311549982017841441466438531360412350626034154313408752952746328480366354469068328811269429546678890447943560040626314810683041387231556780150200509293788671183500185981645662811638637422845126279631291011881172709348257745540454917883873423070545966470829909679544452582938733327531503938717204202537397124730163993295235042215386334067447672374277423250278269009400486666433527823461727040977228360245969093152363692058822570180349939568776699835858744474595771365894408468631447935863605676736240532309424005736748559672217613279707195961100618472106053027853417330850408405469676998733276290510543674575112066093319939012320216689606466000002941115350593231111019813731300845765120812231058759346746172396756822032915516256203474447489925198741205715524116501110926537088647147906857448928205522781619816973253794020089760501764850868395368872203898172958807431670343599910091227138566724005789175989539060350481416861015490028150136005712610150098553167995397377067528910837100162586820298759442536484253803528367875015309648047605638796699796027861838080759685914957123092336162638880796964830885805435355681763290854603970577493400558667188227542922474904145217974318880313710703400473517692026118250003748617743975046854588751076354934321243129159275056089274167756952521155189511380332695386203983547008423361999815132837185450420842716317155084507393129503325816257498456425487228183807883491347419076397755026054990267906274449125386490974328438603166481414436596715814096073870026292057246478086225852519648600527099562688750178876887352705821087995788299473305634940240125447659058197559703807672397728384451734656827112249844525019897205538200526325568983413121886419282200343191163376341077746847982736725098660240803233319132455384066979479699423847755739994630004028988261498482320678863997106221452660986252283865244301657317175834262262017918311460927415384933565839141679384102139707298430009514377553361415298319420467393194470055401897988739540343752332365715837254619628781400064079441840056664274604517695658824936822818818466987481845503443162254189989965753514988646700210926098191555475134607855303294552186374579993203014044088673263732628091003663726726924405260668032714256284740647448365048960042112307250669014497903276621846061132913150444415151444312913238130727851105798291659899730041848135087819971154862340502777419155959320717933226062942776219191699787257103438770629643906143313946747495969999798300987779110999988031529253843173605737978374267985469465434174911450839996400545117152374387644358733375462882355585390127482283566618641796135446265248516804690770877014390078475627714411123599399896095488658417573472711131936586006259484553867003252336883567672116412017539610186441359906768624521741883937801126339640659897696525539336029237617774936818544426386849066930799618515612567953582965748441703138502403122986560856797724874466130146080077590511357817654758059143317663055654098748491268147027238756952333314270559618076343595626559133459408863721823194097818908144096201812350348761737744826660210072937306814791348989097551359618298775294841709923706566632806078096395702912588240957227651871434875222848647252741691732500195644957173085638135842738140430690686394579206147271912184038489196972989989451082746542253097082563085721450986796151197457110119520552958278449037135011141495654303682681996776081855627057443534106249962807302219282477768479930310106926664137308188918560471049898362667956333140388819214995225003356656234424890808663571413430315298185040347434952586012687918079500921285515215616867114229862238694568265083062936744279530881756386869838803685473416685683883925010374117198420270963275330205823537909864649884272962058833411777742458117120852158265153874548816739966965256109468203059240281582175157720211147008244095512650882227830420005977929935321925074035866274214750609662234702806721577343753683682197538809520707851328032878660756422577937484807570654396399570946333251173502990443891212052828872169410419192423903162903331878167779355917615775097700576807296723166563898794723714703106125242887948965589814924109684646210069208061615161204588168102959329995405293708484840390191033114924878832922907516358191266019434748658234603519339450693600931219387884556507327123056740958464940439189196047918094198428975981747752264926833613673157977922881912059453320320905174225423501516882254171214158347264366590337130892314126765862172040000108568448398703511620638316447372508104358664539941337170685673244099039915950484681632710235988369226963513425028578467011051816924068562377078550713579754417408690879269677913971935619674114319929500128661771563956794470576808782547541889074157003680586160642628706668378304954599074605077328280735437572061556146525908404618929524251943051477210632791145424473561724180259883643941591684009725594954057564385146260984655998915978183301294243722748053583522290101279615106054055777005724781473665098480133818240880969546787609792041118757275121277378357755989710662216595129258703589298148237942503909426712205351525165602882129879514710238912392245872773146457040023675298833557116618187007849593425259398619778557907154934730277628237021305578449842932420135192559546071367636894439621544076079749949817572873586556568426733121651561761226597274242971377296832926662006056600246961238703740136558400736607458394385832580127940438634868878125987211381003644126367498953836765766887782614236551312809365117054629455435107744820546566554283393710713727965710562455297078989706319634717162014293228024739714600958723058137136044174460442098225336731764961745100187724883809558096444932987267201761114723268447320609483898531560287273523508831742101196293461467775812667826607813981057650708776443586483926572991360616538105462158683501790728797727958467415778050322462560235308184006960375519305918592622717103170507463256770602839824119533142226126370147654062156880049920191241896683515993869842555523379354896277095420946988587147520822040372812850245718110267958584089061900146949477350658200156484316163470006223391635186950589665348480277059159086958967353251873872823727491173648700658893954041167853319406466779351070070959847396723029111654660517530798747268090489759381771747165214864900451542112641399929699292793772421413187190803888062786657000977739442467268954439559795981447737134427560415636250723606469770165422455205772280838739557240310893617413001403482551691773604475963709632043073082551497397110853737680584386356944290136108171982843794533146075277828381521736630384775474192393450746428324470970579104105483355501315477370571118643603849058294897547243477650163323138527807488460774879894684492543640407726549546263875874833009307870927199202076152166565719201149045714221589857501391398323766283296239488974236079921905015549047444524443218970204810004728592911144786967124987342875022094395069135562190578372666436681580450637116537718723416641163886059072473572172304026451147365469241570393651862770856018593692016190146475008278187571104859828335353095556767178699047288912807944065926762520013128967001326426178855310471874201474110645644450651380531980270951766617884588375553995579492656157661171382100988973124489351967199004973449786340086233704134432580459801710412749907998233432347660978711422461957336067566589055259482864520602595250070574655768558703582169652988323127477205648445260026004066341427700409265887444663660418754695080282320772621931051106290047401232030686025356201216116013987064348703282201081204474841344923931705333224677525292980987879027142336364965103030472314281087599803119973224274454892503016614775728716729979189704252065322524383520771649247412221529560632765436697715419275742510121509053962932760961214243424377145171858828031561106984890054291666089214128551487322957998111218788141346680303140057057247088077400831759093656792936074969275695003226718608694146957990702276473662042626701317078926568796708612365397630487872788226076407622675262929225169378018854101836974282502207329409023682848762509715784666955630521291445387830647638945867911951182544241624498442628874022508712296135305551853098517849771012951615140472744573114089398555159836688559277677779920423189688345359918222647347134894331809639908491960240180630177900292631986017780883551306641135271467667094025923788469690065412435105403651335353575048847876993621728098986306372921922114496451356330182355761376692455152610598344799315187657415522463790649004362423949703031608940795364024284995670198285125677714606806730779739401688644357254028167504255283762922305150349011160720514324910517247662444997064321124264016032008305095623796746551660482119988259350070124433974910372297438213234581846668651310563479867427676096925301895114107530445823888237422938811364919300976059264483700948001507694266578945283462135923507873154402370335006963921226788812601789327872094058390554745923795634879154654227910107373154957069570303962137605470950195049414934124642813972763229490190294127044047556679224639093445387825173992067992857295611737206486765970079926111682459173534416238736628924506416294875076999684919484577971333042172115040755142879717674655967859488517870904500911296162294972285998302771484409940161738770003550596659921212776805790258674362254983335149849112089624913555534710011485174130794053164055240410734485814510667233035061230837074112977947980834538695798490948280702368888587297203346090033642800459145521757921969958162459234821813674037281829682863386232500569255591309771848012337239782770607216851007039598997825831937029637187685865830641728600082968226161397527393835640920722884900435902853864286870083926929587571208767783304055640839033473391718129708728099270052454631375605132229850105698271504909085389399055309843370186891856806444657682103791157284523735534024915388976156948655220798793694760832748299172559816988537168642114294093581677077945317431422900547671162336976902202555498890995083416436070689369984701904128583306617159913299879126087724291783771130153104183430132473864546705596970834740182972514539307809961935807556673340386832680264355322874717045022636226465360026220125370124903842787009682577526244063158281413871601365385794741127083630341962949289103850017187777925230542915701876420397665298930775378734104330491718186914121144487194274854910761678283914839921890451617462127007493422057629762265176277030577065396427944827675193706660965637471988003639276549987086909848790372765677140628132644844247517821655113539112911329638970268507962523523510369093243784419134317381909335045351468741069411594343930243120518165576985780757002970022656544413080015390220516380103896998286819870290310051964738597054129243468554637198385615190385285578282061934576891701807806600544734154145134241556926879227135506116336592431522780514174477380228053995156164485027969047869053103004397810094160279329353550676119396571179548500447230417744518524807157094521604466273608273346755392512216606015717183311546440705799823183723278382466283939219338099047879044212128614782564562153274892235558079534021840016322672843844270624168403620870944126900735622752866857773416215369128565640203363680944081019956693901465853061625658838129677626116371757187054369132930368525414033188433195273000174743186383557729521642455784789332321976191867008656369261695985418090670792640545918326535948360917212004979963062697560101281961363676952698198927840550831307829952847662258376028280788850526433874288199926027433099844484933145319410443825818965640353952237084861783999209740527313256595879132479277379046511252083645469704927426529498366371146201570909381341259428870648018823854364831667461121847062613978350569837279028111906595676385293287017217389632309191469127227002893586272812495915893735386199435002678013725111696166308471033542261921911871083528383354301749657465802034618710512809256095962329580865442380527654756635879055638488631812442833196848855373416584488921777014983940549454148944634978950931031408907933246567163433203969311807745524006250564270582339066465233477565480498889060296500829809375270001302758151016015581238765105398598906612514072884690091052529497693454656413945454943428609923764888793184870955181629234984399548263132438105066599071633262581494536430936851854278358155997387340442113701495899767512139883857233182334046368152792648524140821565834785039587733491712547770435412816819817318254704654298846372957891758748325533051012320836299731796879171754876428982087650925500609827184127238547039426460516163490153527728178056868081056523442274899240147964763518051937400493805802854631840224032545737384565821751743712736722940092988967821834973365709565538527680626225223593329008894840766348969115799516780718118212941198177981728491396944252121599811194875372216912053580898560849141749498317397481452695862175989742820954432437249531900050246595090614895700940317301453994375427259398572036319188592594930076297431055961811600119815453786240765181096969978899083125076964961031062667737650370395405005951697493106837529593225311467347337724575499695003439704047745985328757875915203132000879607495407053950190669925124346049639520545267321627407075376097202198128264377645218307949948320648885844956376564686631378422827660995026170515535040795776040255189100484143733753234951003663527960143504831305255167044004500956933978532936397445976601217155798828213769166073079229721349466596691884494797364208592222806442418722102195941626521407745911406581241591700072119641163118752235921777197017319742298320157495862357962036834419537844087783564024200508257517103118880890972375516242278463066072322218916822726108525765358976601070390434967497099585010775719329912992973956439354742549482520818088816254839728209465143190929146575089272253841022350070365130508911426812049569338936747150825808017933480182406782227527939199819135933514712482057065174430051374604486882775395303202457463290501628228753007105085476526462017644223662939457491921883314446510389185762457881605217357531932814098000148540803126220975905180790938271754303343606464457314693197688992907369761844007212020643682768383060847990046784516425806740073200168423959022049311478053430376241713545018618388529831787137862439214535805003059736476612077321702788997559291053569569920353056812520245392756659710891926077642188790579976736668987267763420719438541233098631295411275939712098293905173099550399096366666801212569751461844737051310633370820301789346484733327068960475367193511683125899013351537165466679744708629833536379987134285774004183337995704482675501116691823150130569402857427304906914554026230912733492963119053577628328376238877376911738855551593007980708585407438619688710776850111237477352449941828492313558664569177453361066527327158569458589832241760924429504343268054992080183188501736559951692900738005501247569818318232140839990109567037468308649976461671171877322030502423120209185491951646874496536093248428779673841542209002188217051833855372352385614079080282974708311485386421363755768657029510704818177561260320705008293047293476313790135312043011963503941551202828800089074068923909639799262427463815117775924792607802553447797738493728982135189504860810314587623798381144485738568268251717055803822177839018868718735734032592190298895409097906132866375491365629298242487370486939697501454221732162014851197087049749397638128161687186633404016028902163625358306214307043588311400114327981694165968287646295412072566199776086193232274570342767932066144212657301339699762964614580919823022756619535676437971849811539108870409073107770548219598097167068756420871532752844364278744190687025983750501617730404613002273126501657148920280145882834082015454321879773446041605693506099203848703995729429239635218997176231121447530181720517684593948802806944102138676390886179547901063271493677676666347998429661554271804705544096519968402029537030954331785184580832804828159654830008562620321541769196812882419933116881385007561794009792484423904609271574595893503187381171213316453089212850451070542503199174039159844120828173048540608547573384553929633261523605513808891722591861768753655667248613640926936156041970374682427686980475088850079414964866438492632840785612816734276438238620343080311118584161491045883095457442933439340344843738309721314727879291339864563249017298522595065364904216592458181469624087265999537733500513331972814629899712059776422101948762956622685256106764522194368581052615579184897157679969975842833500517437270237199414012704399330265948565848684245746550225889363838908405540490468721621014143559237986790425215870949077981297920042349227323446109975665595933570081857829597378383956767111211397697320717197603145914602171495368276823146478227522160300141335242098341717411904762960918354496743101341964560589086295265277276533029579018518257716462346124977466216387162671945801301359692322727176522646519300324584518231436755036857411021172999577297409080117029134015554605056911298392673350394475699122583711876306617573623750827558071016028131558967733024459329493459593653804862200142887442604779072124327599777504271729783469476162418532640151046891362673465018565162843609770033873507654923424349239463186163076161969382711396146050273356052076409378290592704827328368822620281092094341906800077862621575707250653271285298392577254063101854069857826512577081428259225850432604985528460508946929564638476629132812033988363143035947456416111035614826928932495832919674703820994828311338711823683592342008954300267680950405351933577389874079709194511073347526461435118804225266566216017781538116505691116860419026013070511445329800085433545858706806700027264528306792381087899405808135475236088443357050204434990035233093809577094816236592126690889335371087592947627168127218607013621241850649730625199468070741462284831328273089308941966712125381217397273525305623460009294495171559720619381422988457469347416813663035185248272674107661763775520113609345994664887037428963509632114146689619680840046860009689140053357854473021474917186343609098360582478579140390353028029472535743239381122826169579190707453466906034004727732203822677017279971525449680749927078589165650314989715814250253916322186204065019419495838941370822788953321560691751263167423166392936837008891041819710705673711985109363251059158992468243707991232145943395395015456464183031320110187431403570468866886925425181738239937063223470483009574609438100725878086347969633496538758647980898062187538021158848324489380880198374680095242820785992802257700935733843297731426059281163043348911930930681767379660339832393161119722649959475161910048572991207669253293639191467821528106580714605992766754314007285570953227937402429468931618256329441955601495492318158714963897249367589752897628001571911507944875084013577942187121377169627273913590998857681938561656502368582925439846716046266447580339972628121972983247861910565911696332277106304215573238338792294514672904337343473592310451006858707445588177374906272296699553832131283084736035303239176141904388598408453769874305220064849210526529665469549940339265566570894768259578287371723278392679181480439256274260072550910520767983675217466858848069774781408437594083020283704186030599648360786551332349026624360216102679052958045417743606251726802045414223638457196154794380149110847481816409884373698288385877453596927455983349245003246538997869100180216108927099857765628625734680081111690549235715762878482406071351690194948713737347993399659845223372055701100653240566276892632133059518728350187286779119869799337929263646960174530606842847445745680394987520654929298101539547796841162132384653244002878877567771780288497724220132459006247688765566530793682002299291635898890939944659591905288647754418025673540960754866917612654480057757554060121452099371849325261281485161825309232444640773353994518239903234425731388352521397848513108033595349769940525240867097404350175259204205719733553696985922409699494461568529657124369107066219020880211082036168419824049616613000306184938842480195203133736193723109557672531571714565428085153121129548471221512504418453603528024090974568214347597028547826727464180385292963201246963755333441162233512865800608225357311262155929733327892241143873458378485457248064311365486937360113940591917225755719300655467753139299252910490336909476012161180048145018624419483982490860297221224582994436077726498206649313551027806189576309915267299601150451644743838284388133334687357790329100114805891616891652205192074639244767772706178302746528635475188587776287243570891266144396469034302273052990898842195179595591950741025722594587376595595099695425799598781975289265434456323992924797584263506619228457938379791668930534328246805126652616592622828395254295046006170775741613395705732523481296270104902201577897383120983148870210518509829356585751279713011542706434283007393490895949215997053708648593067985923522176068843760374361859724036434155096335072686854227317608639379234145828361092886768966031707953008296441379329157586741544869364001555586765015700696020778719599599651858016825987911359105848294161700103043041305134017105135916449565566002664988786679291096353758287965692322805703092481738524301519287183299008631609943435318959466283458318234433304075307246876352757520199667323285129851674890267766950058835726237546461563492247162727979011563041270486827296455484996272882520203345646714040742626104612691777175925960353167016156553713879134340095850939022187026828162804912594232117941279289525413562551749311501355839284296855155249283881343727854929741338704230950082674024794131762883181219363850467293135318403313437785360659696735792193444903198243046543601840124829190593120625896543981254792987652532590582236656718895213658533341816092354623181553151980670020860127270605560638196873105544280225449028487243552509306449957387896420025796293553378274514970413638701091122586175612416303119842210276060061034154328076203643029020466804470402276947920258866336092628651858074375332659443209119518048220877905860936929855697542892807542490355081307814359630685384999204653096621285482633233023718259945421089721018491794230732038943846347643780765670800884354691996216908034476706869131756293349356892988670294392381800676924194480235499803630919132268245501085970518319171267204316984024997840746346458291162714296160932171824588206786821166457935087780368461460527217446035770068293532482344415628373911835220836046526100767673195670991634990034879456708880007651672131016915715426314075461131856352554156230430712265071708330804044146918088488350738805154427861657781480122195213899264252975187789107199714852023690029778638037253702015834352656037780326541896138843037944562950209875718478358226751585133940949317626008939162206003375518145580529079503658740890823813204651946743474157291496858044737344684734676015413846785153923619284180566622590665871318372024811431841598275348553910963821716799928485736110992371015874037591196282922524380473025409844589644022914848887577896492154368587569191121298639576913920549858755161175411110467315189606556355916529503791704619826096189083949356981993889999408329726061250895699511464409960502181360863925721158776913323778348895857359898835859366437868158466431224030469171588404891402035772547961493956822062028379041348773057906591229727353860525613755741296244886878836764607216585049243746938078682653746099961643543311374180472749555665331403925361865895490687645556253440549499728824840899183881005629303522966210105320581754772458535412891892423418909362604720720739007131437036376446647985212720088854274558376816366182371329259318362299734863801885123541978802527408162942854856771864021870179995295946149374272030811858197973557354398498726978272185083218884639509496416850231642195303009437427419657733154827215359453605819123777648640963896198796332975582673028216587348682371020944792416540327580288805486064922821382192769558243653348755318065369456272306980894580615127303135655105894821810877104121932740769693557563718936475929878093561137061184960764344663916742028748100997073543893295202607319194198257168664009421275904397752370682707286380639445361577660047713433118749849571236552842001515788832608022368440729419005075366025088254383699266027938920475406855214493123958956325332202363772506503630347844196536200784607063226063866972711194877823959832909070303708945312718372934037761105115861706421798781222381558157987233580481334184655966241555937738227638829884115375506985646247225603164820483382005818159435180738833090138945760608249115610680922096061591131563024384615769644848500534588108502791513110003800807308931904063142726964740509624750904480472360604085914770219751221632504404606716231120701399753575560321587993908025839505646938765434556540526739405602512862587834333609867218189389545739996601929237220667704702401881211036346071498282146026710302390656888390511292554588909914246118986059335919097405545683183730952937116946984564066958411284922988504792603074880653306830364526030918066674641148263941644751591949149986420184093736620806437552420885402034245171781177384460976167008955843705874344816796289609271376537246917631994353164389225052034027437860441106069141216705876008684160011231451190787370255688496151679014624578728396347663972449023714583175955078096179593627163428875766664172401822811320819405384079138034243794297146930779204477259137788054800349242212715747086471766665825952417146494502612961912840050480543334502460430342097189026269202702599109969644633840640909233069688662123042307783279223816208719651149704036974267265572555429968265913299127701146984034355308903099182483945956582517634548778689846204182746705426339721665900459949152650292653669389016522462514815643688711107915761446853486291100657950014697667194123261590283442482380248740461222267471432139103301998612900565355989990267612938426781811924525893220812025905818037082214634418753968590681033652387908495667899192274073338658083409968572886490747857017065830409478846473813760488567857912820840450327920353775939322023937885853288777553443211452312304817789189001284862291380188091753325043876768024684483564048685434444249800480084967559708312333471162890420211460386022166452014126771271258895081694809427195946242521352185864897083109941026675539057243516400401121270024323083879522106212369739718672536018703514458335323482545270137779828360801858396013881544880490039849023415455920736868642749256019120997072365822969244208275981406509408883422974677310986678257577420404612718711885718915899091532168696771453496423864329579312624320161579023753116454724733531271417361952131851004421452608284259028277466809208220891809633243033188727374652521008430916323924335082540914185450978265919519140257532450168984316878953777214304377789279410650835356671638722494203927150506136850270460165287453390292693975825401335477339802933401467015039111665568376452009190981486104497008538287112544117710971864474114082036650599563503085559283143603307943302576802230149378523861859466891515227373374945948698681572054045105518102067311995106347137248428631304056134811812147369894395370160517446686292373309627880321676003197434108562692269807440091414201883101395365881734874182993569187105307803461460247102082336454330958571868764516337534370867768338125751836840236884559897571877034453710062478743840878594935520333796137697946251687942767463658308907007558308520956812063720559084980957058189624308155650644532516867786869167076586539645590397216196054515986848947354744963137146854785991816036394290082288972414641712166313665581959821275477359341570003736221507021087723682689277491699477792805273696727963527070153806552787865946916811342197993767366395175079675314735223368274981973098230782658003660182289592940569727591266890775184683586999085656974050153657155983297180854313696007569824257760948588830010298071543451363696897515644029215505773396429908500819505826444321604072125743882043446847375582094163489740760473950432344340394674761043060460184242947259997803211934162237431738850448133630128375791096554399941825746123599275515844583312852742185976884373742027136723717557889740643240315859064901225505782037781431218466742761540371334375463989836106598282049317659502698253337992375125427433614835841841635455134398328544427393574603112736011540313990308501433184432954891423742959354343499394968319737304307233830697180176412929943447731641799304920489772905635300456496644165137079537992409435158303623844082495010702027921786502393351647199071707522607176329435083265649676865942591803361481902276069934369003872404369087111484015081920851519593790719308634490789456272673252964300752254833574872431926306008236805385137814674172103884256599697817950895642342740557629233295209149362822706322452820440567210568249548074920144155408805352414624436514375572874943795518064911582174016528477287944240145924545297673394007476861649305246790539609624385217740205509728122775383509546083498745446153419284061386036651259239161242052267254054135340428850277795168254306804485116255679436930556652363311455963383767327385509778185589537615212164109324465808132937319698834024689235504081853300080335884823501843777739316863293005206933270352706511117877331893594266910144316757481460135006352920071722226957682661365994219578884937142043293052348461357325385765273562968546441591296313035906498326460298810485439692692953405007988925369778416161074791443967701464449401861412016423210124567011478523582897549651309784268288843237143373509995467851667293073953949485917382611769551295463439718130372626202714213414602674894793833346157149877714874398217542306718355493172064742704573911738155841871783896400309117104565233534852303872269086496653408809575840160648957260844634284771420896862084467171164247965624445916613224373420800099438213673065459682460228022147376230175594066439401150486635517707590308460612173084594312513434283554150545700427946595212911814734988155063116482579971708459369451283941560695011844200760555388907206198058943040585889335160534795682559239310955591690699266654986940809448365270156588538685045817282404264611472050761569843093376740335446707362041889627339971386678192174831544046590006587334788234119408199482639625499885827071629722221863968721829586600034440290661404845539227902289111090897523094313303414294851472110454129472131454515373317171283246145028570714807143920572179409617658408964511927178365025073007296809141109393734854272615643953957207761324554204089531472173404615130661203725575361291152876099783395237177149391040473379354446637523054227724788228533058399400717423811502653538764155315490954389266852425178117419996180463062822919496131732109849767401414761662570640143826169136544427590769200051190853631373888115636763876526348261942535519613082111908603951429858322576424570029866571345856109590420658156435212523650975520799093221490645759520657920638999198051461443381205852459360892161799411108256851361939106409758061236121155325256472459728265294904808947068289021926554916977089850730126293557461681724696090397831022114848003165775894149853324091081556067009301327162819435866638582569004062494803566957976535378818338431198315313710732112008328046653224581092521738652108562231382299218871792224966952956859883132723911957726776824522915517596495363987977950375485951699252373867749416372048427692234852527280014719645759855486346393348256924215855191678108116903123955335786068444364001329994938851044938902741541866104502246331662412388588647649913124566093293188140173165337045736814730923210995932171441232656525134494296680404715320020124092120292039361467330366183266471230097388579554037231022069594068755694631069191193027961076497608504319749075115548636374930505009655779907136086240375813388014881540006280899868718217002756718160233260707607224222686203907075195475908394284716913106645797271400872677021887919872030553408103476139198282804455394435076332833040331144913582872658852148695097299893767431693003126038275226429286031589158826289358087991463862871596896254806987391936959174660125325162352475265095286862370681876143589827455607230046314782507835583188142698446236568208841758058439718557336285605144284993702998023376055107535163064553597765477255115653911756098189959705075632893963498034249804619171332910606062343331734008261894866256253937236737106380901499566625430787085079249615163123173399835100635773499182721980114093511015490846011594367029956494956038152633203931078770360496363202508691462589513502276364879690223588510068416972424415719025829351347930210437294800776725393364518059965466627065860406381623602249232122489724342805893516794218243591794262108213214384819300900015822918065347272365577176035726260191858543019071917742420914892855050325382634787323806781969505855105985106088707188104907001523177919952224542807227301377774454265410646857048650107911909624421533481717020283292750581788502231692393109814278825713562902080715967326176455492609861821235935664117919262883708429824215498281252867024667430533897623192084018835412937338973453647337297051585807702414250827421508591000017904901205876828355640700838526779029421270353724282064935338174950334820996614882060172622272100537457847534898652321136611339750049353542451279406262185921154541117347823088263845577606803368162607957004062906077930853422989731634053643365915554623569107789838645706854725410010455170117993701781188348005089358678607778990518472484221813861734299433307470759954788416412834179313685850225854537210957102455486460983346053148741510246841579328112373914048246105199601169412975608377506758626350535978246572705500942535235348909863714910668189017983507995063034291619499601793233228442974620135017808611537829068654652942648932988818356409820551792599125950602009712334214565663232619401676387519860994800366280575103401122948932519048856062856976824298973259101857084507933110770136304953336222135515771565805578133640443712046196620842786171540289236720976386362038768223644191268238134791115385289103945787492062889360803712755589162899142446230657070378512291929428557494660656464359948784899800930816666287776841671746660036481877527059546702496527006845433139393168509132259267272189739262879566821742249432327862089576059076343917044051035417682349950957308437011462948637518423406342291589462502851363545466357915805210512261917910239627136692918321537737148051229147092562858046308861552160426721732032623592176143316670945033081117504000582442332536115453006919847231230057389071601800303664846567762123520990591115778416218859011010975460657648074684001598241858815527949703942330751913249004940463385375967933566783315909259983631486604250566185097693587610471094902979671166412474152262864409637612527157917777068585314635903478100553727459252523620811850910445818021108004325794276289349574005026371991232055902718135354968957876094707773894980374150271626803894781012018034854450326213012660486321551554475087808481621245634497965397348464099592008289059688450507371677256820354539021052403876560364937547995843165787414257012553565577182376111811038867994437246839059951608608913911474788100287360518236281818493021817205694415672374117246238741714236403093162791352601585418579253264988525454515920862012828614663465091314804112663741581556251104156914881330175799988457959522414624848655705977012305762568517874314334422297768775592654640838366633295731556655527981556441654844581124120122887374127181446778987051063730053052094183484816014359879291835928928117049810469065443945212115942056176143710761861932319783346714792219191256064494859555526603020802685251647050239476654228388531860104023756475282039966725703196424081156100933518787632140744328935600688655488091928301012206264325534987959129401165221148105752561023744911414638573126273697030959773469281514384602368960344174045843197379121027112775827128643006468418984944222788268919115084589597003255652044170521371312847064593718838624684220173685100090992248776502848543489027155027764544821498117490530008193523819798037170144256581628685340110236230290630247884401069856518007622259468723193417516737681811370522532146394915996917347999862003456316065498330144338820067263367058758417347504672119089936889054361101353533311348078503742913313728163900632291544071046568221393486752339329155257004359908002866052178674704181218223066260167570951095199469533226354301005736878224994873929856864682057490231152410624561256404024574192599307113428419535332085008238170050831846575404541890001943031416752262566825677289529929445862875689862678000765716828955422265997294356484820276034853254901936848377689513035183030331286406510222531077151246534897194583916044240768901442569892775665072847905648173907940826530261065182229793866545307680759126463719461996360274205762049904791161400565547591645710987477779142250655022364221195078924143794506275922207065254268701349251007364257298447037269055410894887276376421123358360997706056864594347564915696938804064561296622809719613581509211561763187800155436043526863074736550807030795158044618273957134845853900409072184757239936693645512015478580072964404350314895111674269571672925306651028907136983009173840822820646929836459961347636286224567715324352448874826713405171035121242584449866793745753715936036332256483898570446846518570032770388112870397582308264170517714816603116845008429038073079050849603680836670392494678493681729764055233138457395427383968404931901082656762349744963516038786697667683549280565167372220756605379416075524514864028285868249002740473601582811208695378022394957263668983093725082357758901982658337489371572952086612753128718836779297320822553375209734053595378326858204968005294940161973646102582696088674252223656294339090583665366725425361705118125362875527914453113278339674426977510149496226099985425856583397162719876313930383801496894295793733790398367869328580082542833214549787998177752642656019838193825223849261529584579458478243484447164436779498438001260703263409072702710637718598964822623106743387341268770590373659353128955309985396637638649429129895331504053307318656850543660062005148270362930777470856469976671652101664276146938559167386606170588728583507163426543245912516941687184648157092112694977573589439857241086949897069692820036551012712405749561486661602759720622031636883732554207975686824163260264704952593311993160172991842135167446824807975315885519737602148782680179771734749229304426676241753603616797918592745843629666531899075254999458357429762157052522952841601080522688665734034130884818731699872422328228664029048281572914950350442476281435433071336105525094081321722334809062192230367924829421537185921781274099504240513319917759929079160094248300865597411176842386667247486117641366865042303289208541226358844852169733551127858951549018175561147208834654671047074740508459992829641135022012723861009062799077238314873937531986436174244176937672305529560061997781893198202008206145181546072064404685028236497043567974223608185174220711011373417212361713461643786358348521474145408347719191688949926201422920917903631028700277353695496802181936241246917454787938947647565165948060451808179018921443309591345678817025942051767046925942841266667722532917762958191394087466623759163782395627711828656905075661540193039303585787855549281210884692916080935125134471859348108959093346539629421724742415944482119877240699525544123263365741674161098385850337997817456805265984771910045415895408407339405751896610267208471323037492459070412075828388413199954666178038355820708979514730072756812065100393593797117538318182881036090861328477588337923746737592768939955219002540985864265569417160425376053381301737076881060674426338184112944718738605352597314378301499029656400924455767595033535058374632522039200054516461074870252386385830867159862278072790470921818344451136363086798311753587666484674013128985842345544585909959257229940743223954337411546085883325790604141874905562203437765532760060532145141175267487624649773948878820445348274804262890468855503985625798111349313679241324982067843719404523613132269516986695370660511413915317623510415401015586525553854801957879202035436607847385628287484770944718248640752673011862219571462465690131698540973360935982323053063293232124349468411270245370605825370962602421271230317718531619566909739461100993939659935209156594443668957478451193351830742915740937624352836496158641450437853059469410974198713328168067784769457749320316515988568931311251396636996676790263978528838337463022899088718949462230284185076462182798132836428804498509241136987892216490414232396951498829963794466775494950077494168497860088886517087344846568830829060363724705976969670757136818954071525816163772250856450501474256899647807067965472644641337885287171716142757152237125691858705235197215264399304719843798771461420019879745128610277983982832962390350668147748728631247821447297147619085330340457695976133446066972775047313533706479879417690822533410144344593092513089883685061457738335151112337681733846006465671321879317225617469688919873526268904074501204366172971348390297883608117874327000904972680810017238060496783208749097668816364540486127042966781936376414462424115419855573562611221098278099126041767703715360926045057995126909145047235833020423799556427031764865856071663848249061706762659397895559158237063203755309359687462199028837665125426855171909218320448853850425898500246309772921707476118431590163048515449020968102506594161019273954471982057313303777339904160462128426945440638608085732605204167003939050502366572850396737330710556210263641889321864938234072413714474760987883361910987737996841960924406314693752071326767401652182678643023936317241410343873254979902981814968674350507774273278222132693928801108810252188954827539188198330186595415923164609202712604117087419200191515044985089040390357846789866900943734862049140304270513684755291083754667230488144580444353576891782244319802541841837146572668393228022108223535891088098797791150213242574380063508272305880217245940691876382154744753262388686053549666372844357878345593539777218959011733312912403522195748350015459100380811560387496276545929535325512341666649486595620480260870183311331571214935264107639564445385772049995121276320065402036325759684760062398106432740280801712723705863972465175617195871254885833853778907354373415436804709815739033685367078360891549435545485384764701205805770850461284225465886068427002374631258480123340046942669424911603098641525750736776843058499573153439121484371121086526704464982681399726139576554419848845625765883006997598456283971587056473122603618178152191836805834528215976891063296301732896108864136748901754499552562114595123844987802679159638690742568371524645012414377680826077552667811536727165863682519420345731588682099338417040649045098742943165669582091399508805283460781458085381331903611217556080991161333026011912390509511039328003960363951278365425497880223119851456915594146835194393953377343337344020916115438104188146531804872027831380365720297815577298169782703252396048305401178113332501289350212316631788371282403898199252889667683478167035728428977351276116700587118201405469134181386686041600810625424793933742099398362115837251157763346317215486921461012830255518592024142682698527937424360084301219315449418563737928583064087370069272023625511069549748293292698124666764319841280475656005705025962431269415131865470052918700295475024915111947177558896618654794663020077855821912943310710173722198515092367465267972664263313262219366727074638076174275814768936075590244785671889367511082157625724813462154250576399045246587556325903062491607002511109882082799151143214195342455090786044478691503619220149066691677441998789598796021283771679170901066186216291792134120889439876705942297232491339877480257303513257029559008743122105555342754776985998508429421478297900326381627694254552258789508724523853658735102197643354978549373658097622851396640793581749392307082936578723111963943764503587655094533950375117277590695969730694659095043274370316720288749673390063243898927988445141116673181601322086368416895593380013791554336857380191263293595997949126827921487520875954829309342001708242923240020967348555423483370884836329281324220857025072670353785329747278468398350978814272014084135253133718730954623090010177741627105768590969699811096237433830502222747847365407923426383663210998479679885286110838109599263463120199179490992404055868836585498409638652457034560788003788431767104921056210228937167209556464215372885773257314530093499667030216554263474490255936833111848440412825064027529076768037412102383846096318256644432550682877764846896884519514530160295791132025147642702949035639103989616091578753014168677993048833943421865228480441733462439511313820439511720513675453062134379292940916224468226754063448296227262709808584309582556108607710896960035500010588613777557371161249998436814348227774284889425700302661591645385260109004354741439110227285070378691160956032236164283642546262041220912185836753616661423752425684858392731575235541799406585626854800632076204238775302062454564771744090325920082733365563773155882922724939097520826936016985337581519491424491386383967586230401264634241974155964440200505793025936119948855952136306149071417731670517064401392151029568008507243410505225592164209365803333148733371868220812387750990046433126205029668470347010115623134370486769508916343551349338186964589445108915841439803520068834412135283948893979177854983914479251515713770767278337598525865551493919488195768128361121193008038540894918647745679958877979943695324331188125615074731089452784866747560295722245711141894801666195884598934399294938305576595123944731521291140722176229430137839761194647268213948515848800604889988217183743460393686008502352744027627649339344741143334697408807464592534516926897165396043295957843863410484389211381413891184091823501371476607339585710612053670933475706710353753269051751081970090553822395092136360325430423598195566760659921199180750101964982064391151600797405577338834808773539862821546274497968750548483739490435671726845007048377357977123727497750643520169759749805099394898354328309548225355232502415445472704608180357833627825086257299230255929721539299675874013604334994443871950342454928538018458011507637488280096148389404997235909331942904100494617965998538599769509368936100423404557897485577864057486217329257789544149110915295558503248102180371831157521356150701665646934209675833719441638325336074316925751462204794024764724189230032169781543324358568966574278617990880945557677572229499365186379778377072980762180239582969325670589788578344901350304747164415806771950841133325451033939234294532643713450521868732287585250285362315623369434326032239671383031401476777446796638125219940174859561582364198557682369467913599176611690503841603975921786413672520420731738546986267239432108066792520562136237214791277678252703854718926556130921353185758803538216899926188470173715876012514770170460527687800164455457902733705235470302206517366558575565787881275227121097971309786406672129132201744273945250004485268619822454858325312804061677494583398058881453120069163325884703399783813481794687972244124531569244612360181122018583476451291093718417246126072763665913348457744626069950386321295463293186261298391091333251719658294364650029106448220594401587861570241561237821981074314555473005191704513505438794752575041589706633991832761138280877157993033411898886883764903063489150974792821106160918596891466917266691148071810194121781172843685596682126529469386348243085181268580042495661074338060014480278840242519146733755641995302514666862659114948319438506795545488595428121494417914280324728754540564781705350769639923363087966296993885775235213602384884917130261425414534770363549012254958254797854386522824043790506666548857442427194744200586845208027433428998640256178763516137097240054092180574488623790054861630993466164694644290277911285426666795650842444354127459794925865365189421876992912175220244701526163374160969675590953807640508307894007436469310309078158189219645805779174589654289118600355545877826374127282793148695276473790795494532619831361297896376714551884547916984238499412882725205286023375323120455701840796713905752552148563602737906515730074685540200008814440827986861977498271687088639848013846721343539315484338527582193143163160401999426014988534097010190473892700269433602762856420245434434999568896482027307757112690316712205244140094227794856589559922284870844304153495412578445648324488011148364511639313645379074678238208521967833126947732746995527348110824303510823838710271583116761540683149424352670769332305508480870916618218712718622009648945552007046097501607522787316619378013990234792098000704158815359133386285686061831132424772944838244904170023504523414860364004044209514984408012212462225677404762955481583511295895219349028258474755089253583105307748827456568950882012707709517944959867201853555883511857667300429755881107689936752376054495324046836946858723563259956354353109367693067870656378234535245616899181902819302177082544290852192456660517746754251567574739376513466499639639594706552760689812801417732520910493131787654032946775012826439805567242223267389791716183113072098212100965183404689144393199807075706831563172020147204363758546904435941379620253486546818314778644169859659110441566763467390049252978145987180010107350911760001968790912319366009839296073150280041315316816114539367961276226221261300560826077605238833628887567222152964836102838833556792994781731341453378733186948998056581644745918068464107064519413495825911894581529134352261714598423839289435607721355625130898835221886916756616749031594012027959369073306106262523834074159551686129874097446604768195671997899547659986933477400123145511061890801126158186645930604929249651300978431658473832906511730419897685151231495647510527371167549927872348167240355217580755014922081376901460016769418326559795353436951356389783542677101980105125307531020083061369551426957759456874434910501730495427642573906447987852501398231560313212147860194538649671876186441955184537242822699319010043143935991151725218947796596159185610705502668095660254207356907316132702920781597825970961106604210784262607971391529371252544279170860934269636723036391079955122528260880344998484644090694630476285222772273779273108671238508031736711651099756937078549097061604213435582752249620728571815088352108226579307666143429664739582342223291615023245293096622626528079132296618197088238135864603791307825877043128452281811929644593224570494313448860557869100801408239775034150256530813132580188100940155238590185196465439052328247649118213630267300706306715249894022003180299362656016782774111509342804176150852626800169891858640840979834022174324869369083147850032912292169846301102695036864954219210635636911861021381843355637358522781077817058902939543268583523010185397416718999634616732031009687119015181137580660738914007559128750051264781649683948847840952175567032487705389862888085973361708359559782281949820627860750951057852076427110580092817183994518626747546738318175228424685458876770013275581506625785911291453728335700181827018242486940496434156815562524059407254167129721385578187994352623692947754922315694946399381313128807629428344303237943965738186476309571366038796128194155163613498732590050404126691674511479209945967183885024109682862410007581862301372859403315230367625234600487299091298322294461445687429683828937580867367951760419826572414984716267092943839531262247769555263747491506232308698036455178408238059041535173903416552931188423527526712412332467578618936129630039826816689016068129930709970110886109561312859934757216592629782595873077396011708952057320996367673246724481388920457352211022089223063634568126825634884041581007128065795798293131453751204634639109270124342374583297354660489822664876179273675235028902715605055276833813281336839150301118894838929366094972127629771507932327600328060225679780189079241701216916802706654872859436780785726136960641913097096520557986825398592926993956665294475640835043618944824439850679279959867831001599558262578823081267840256043260561903584410154570321151261401816589173289496631715336353458334464074698304303391447104902962934879658604612026539505985303073081730233710035671750466075433939505556114590988675996984680993690295578926837901951402459638801112501060682852488471917021878781859982094116494831841999918798255472590450995101404439285115074576284069115358238400027532937468678466834443567692074863399409055816627490277271934317146337931967874128465536552062832085070926788779276010559099692439978117290430650335511159452991090305664841380857642699531138429994746410826020859742432390589123855764782636358972590333538158441925437403962931766720755547931722696272702225501827134921171378924945678926637719832084270585639079301040043069314648182117162920427240081771336785091030689380452913457285977761949816559000745313849955641084862428424859613296640486784977560714199269615394683089500061760234931353937340834773472823307742839768623445317340896835810033763046695169356408948534097311345261089423635414706541865022817388400626656438134500532756507709541171751541550308433885020075775182532073600338301291139954701604050315219355512915274236034532529130210282148247201868138372811780910414062811448639048452579657951846322972333791429624928599029558802466929657738756790283681439870457991837852578598533790894703378717502110103682382716773162975263541012816826020694114074492980696234509499621555124853796156141886165168247971214651037343803921724897686546076825677656475652041880855721031282873505863060638626679392253827347677921929752576278446932569421698012865994656901433298676078417802517964505129001313241160340610861255762878238075325820857598584438364496202867629081466385391867038043908103945578961436769019589241059053780416042379786951093419173142618855281799759480120431720921815783600118253788560523086633693455998714891193257213537410179877921258458634925520568652516361542233634534998420002820117713553266435365211127711680997446692126081364255909258433571412854470919499538124165676151902182408296449061115171323333827063644034782521516865715651225277755006273722139834845500978564306975647369972137340022922447300849651412556503005106077601941940399276655744473360174860014093190321774977824788838890386873279890552339404447324645018954211870418764925859616262001386088423579280779997930648697634566418567060774090358822012177494247616856722447000217077369852572244945032722017123556884143194435776290391598861359253853639603692741059684119556969272470673022824085453808811747182595668984376632365879191178181511359350963457226838581543301849633696483755393395691572786046128010106783932330215671574414985398438286887145730014305291452573892774125134695478862628365860965704236646197847300850274968200872935315793022906451293856938471977074740910096304203003188692659392139713421659099922956973572527468816248047936504023590166634402809639519829021226744475901708724636922512834446330250259291449091801987858372126218834071298159020064343405187018877127385922433955337259075968329372163921013889040775743770009556188162095506382987643499333695554478269866475072285807171640247769941684506524495424823208718250082169118530206101969597016152216992463424448587086579090289147299787772847854853913565718780716297533379742487737185178573752526794979425035593479945899070959428697697175964048038879861825586919869738943614809086542300628594849322330994929311165447849380015281447802375957088727674923117236148966637515723996631024116903962292086326231693871557207267225316387822928429013039215284626010570732372384567330081064530046302205556201547320418478174522641858810660707927055570811717313130903220952610347735306033320582994357365472310922984190457479695408462158499987255535671171895940970735741069603056528774471229311808097514667736285098456118945769529304069094259376380600275619914430757488591274002621722554781807309070722797155510145578265834480829259895873247994741973960741899154020743411188147683700118758432924787097539428601876969862218273165569967231668145798834009152755420131217110074287636206311200611586017324420493282830812627265428315564643585826172566146320037135746105921477263426980194276809501476156889174388655109271229500860419491540603472593172035258424377442104786098205543659551492773123092106860740550786811347462707483049201187950324555024305406791522070718550551412803139344603777993209294841273498195535027342735912240584953429379612374957903247867197604470015182370588599093080543558733939306066711366000403294022084921685803412499005483940334201400185489488680012217249456742212514105352552215095351640610831072511616407991130457840484879271462778224492943473778161037763307954857806143574912385944497076620956622468937006656674122376554038163730771544164413808711662357604783298986422993139402781254604346028437410559764980788205369484142982129025132989897551184862164356087109940799093498071771126103815788021866900094105291091045349223570715751460391922612846218408092163647280251734723808100980352464231989804005161941413103278195783849739301869711855672795004701595455793557143189972055382525465688737158195280836842487586697246448382511201829657620469915849173782956898391290871750475445936422435860064936212286779748798640195882607585672522725254135765655773498748198676167492737823785696733802156968021434053021087286341849697255553211075243048079043642935040159469475832564767279588785529120186796381074922196005981839219034941284085095784200972980547096095352726368462903003955413343870439899057923859181414124429347225906833681982078129068743740995647617481865583786910335788567808695533420872440076330276217412144928325366704681782055672384548447904243708510363688500128551215229124811637508989834919080668595263172319986178650547956723946015025333317332907931295195718902739582943978895200670412321246445036291033215592190706965313077217703440178537463420082227836734837780257900540084485532731490740225553427956782022329132418766883727423966682148552304278650082870627750989743862269003419008314077661881334503317234735941322253973278865542505591162016682296373049935196517672187005179941306373736060917363018478615741783414415086320817815530900322446467295551842119404391842426184984672426053764622064635869247871840167438931976724957005824647964766343990052772736652845497776757401950842166169958175606057766804587283255722136285465211628022376258611593063530502039219501136589041985558927427818889301875495347345733067935533176207278488254536969342620003380050139988830618100012359525811222639659162007697947836586300259845511045372982898460686336515734764048386686757930946399197139348818843185207132509454332045672077297240175836015727949019702842109096520773347544552827083216276158349235334153888363398295661010329301951736235483825590065267670096391411443161824244505744700878154999144614377649915952922796963249119431310676155027927089219035593828961706507017709900621256864806656053797712880818074219516379175949837347124959079983992386199592985227854498809219706911220909045530365907387295315256608352820536994872749654347221324308561054061531493219390714881626791208609160866778537481266898837936307194294089690707215249118196284413490116977813291126299540575076501471369370019385022844862421389875252456481330232959701042976844148347333944102058178277655343755252460952005089788146247183139526229525881960396036694742947718651379566477206348751052432538972174872422529141392570822765274939723341044309070256587541415957827571847337143641776472348861528941603079136322564818597217489555901371959183799586859243570433180372332245857026185496415710680195892750152176851676729742428949597644217101276725816030837047717618941009822279169827498429479777095691635950760829876676797314660046177328666195892447573655274031654328338366016519070526722716223898199331729699636923278465244888224794781746936036512803941025085897823686241634238891076055144426111140739870261101593185347603878787871863559122603736319817039685050243785293496620559173805695690669752560527461700274792532251403297065296502248758724535111767775395655962126494564953772331963277801524035887817006431044069634816158867905891938242944771895574788386421839178170033834049184414561740573857275555472630061566466501273518828283084969646259067438330404949718415271661286548587764920734701264419654613621469930329603596547516875358479727039226920272573251904191036086474857828601595826873311004639747790475076128530107704776569146652034045552550117619244686849254744998329661606439786688733102618732698571789786093766576006615263058421819853976030577615062032726950321606637972213760811603274004424311076790050405633151791796780672491914552431542154473592599804106429217226211885314230612911428994044656425934283604741760121000036095749243505982450004998548357606724396845860571687956851145980761576739382963475817303222283017759307816801324230971004047926621832112035857165808440852016388614807029509664643466740148046029606724608238563504056645144254816083431220502060156127054594971005906599510336888004917426038788655965340299531772962512309383896080313868158101213416599776098276370707488979307042435601190681888499972981945365277859633860417621542041420120895301088133032978151266697563194519228007946631868936229259326089370887956163402754773591043380420928429791126637042425418832629971401173595144160263752094001957607920262327364288837174285226058391100444059866664377257192421458954667017932723149678377465773450518463785737964721250031028865049925579771590894912149357126180749399575055486872166321153580800687337691991591414215044251179356535961932356720593262533926833396482353387582781087098830896124281649271577427544675849255688866402591302168046466918149559798259144793101157008260741753997112299112731682798857690231923806690318464633816917182483032007307849227634572710027027149778825426244535803066511776716543458191845885603126696138323726072804110912411324798187680026578659161725451331451386091738301608611973595637285568931922234298287629048877367857764846789908063843366834824734466392142704174891624732251812857595618318963165016690285482501207534268813623513725780977259370095687024337043825983749363019681534714694613220234267436890472032706702311008004421027149566309368786356423347262703607706770070271596435312808142782386838059457957089424782439957843952168237969432139123638287500770248338119741632438934567722766163505738256578019080108080473901830975961919686315850299437985407083352374854386540849969407646537791247132870186831014979689749065673108862968208829714875674272756119302653791429497839081506297937204100167203111346584331667681798960342363825188085314326595774214620537830398838420029673875287873024388007056037321082453882153583730452910564526817437437651447208111895173327020591834505884752234054029843950956626441332137138068323137549602355995119119540612510871682272833083988904973841147517639281127341600780963368163221320814953278385474157127106281341105723834946239583170421321787583765266721753581241225004874675969435982256532392023439936531848096837873156880819917507175596204334542489520932422342514724365044102787559724481964683700043472058590072212642094175374737140245640989166513640615212879549743685011622819410788841191852133298137616110789927748202656863820517700767603329039596543211573513338886860922370382694991457537809285808282923246239162523487642248257980951195954853479402090578330859077076892443701407783352645178577409366058116518577120332197917215398875348309099372957302739016232254361055289876342529112012232278181452902923574004825208646583670095541215919664547883585123795735412511942224064112199301541254499673991126702256173533439958126261629812623544352749984118534147160074544829518332287139850563144245456239165716173960373797630185389433424766123299445216038753349892396410987409189524063150099693076138007172150345040420447549534976472113654222653459008065342059697797932000804644001841411399197478902039042873999543003157987660223532753930998750459784288017967128487481460667917728406048611988416667937419536971335753859860421224994129212251529271025672534996386780552805421062432373022315277255325363071122313679452319140702469414567410341977694007419531256266403206275154499570578838334592074853923739844504454070563491448112564194389558177636167176910374931664221311506092092065600282170390392458381119679065688326015928201179741814109065900171264368929672691510986710612918838899567774336228070415799321079225868016842336973808745606007672055661672674619496088754455418781401422957149997043233070258473443502567761151567656952710206715966016375837803339458133185506150493052684201703848045516846275618670123703196347596448865134772065124749543824803736583729902310807709062719197999719733986577961708006538320729585335226221437670343475403854664649891219536727243126428877326457951036423548823157436539051123428660903582313409476116117398687895025387866751710409931346454777128053648949516442527359390916493391012627543393806294981406341379478599318164725440957835254614252285735778041086738685976129489037026732483844196863661373057488873633513136297906697393419174954889853885938572486996312846882915567864424172136849585839930042423771397139999813982678776521851049995853480890728594721807889382886808016987433636783453702212093318986778069071256224721160414328844136851870770467782022981000065216356051186013946735918236329115534122279899398211854075574155587154828643001573125883677275228394099657234336244082759981205436197625651981330558028509511368927313398319212482337419347621831311458639828128422976976583059823687050279383362198349140680000635163238042519176430812159307250952018133804650576266177103603042342595221451637212075092119345294550675472899883782704709246429645967235631621189563092993551194395195958290673523643891441577682767660875260414511657380513275554853021962620782321659420793017105369744232880351489000652147260371653086210489828981823070296984364100362181031160623810955681351548859879823458506454840109332624303661687255706287931570143458576027341907117865153931984869391584277880705899633240914583464081995922737463826249274484812495433306392632327835885575579465023212533237696453194563578859076280765413722748486142258824716005059299844406794617286555901402171263038961777655368371823659925359678943586155766048250284405560910764810316633797498254871287986115358566167271548024896990819102997610014519379733457550872775955713736313783118816264125403132420926407536927706692785209125833703944223182700907531003923665971961996413924152071698553018193253543629835371181457978816137174505776835975330278216137334102776555230098493715504243597807497933568879134609346531483877689869085563815393263921048359742570476220279009048967369178955038599899402671701956991512844953278708649294882581988665952201450306488569147229222085318183789060815938384473798706677069087987332161931398075222847300529683393918573376647685988173407428219386872667786956450128483370817286756193890639030005941795026524303782778951449713807213806826227818735099195106317926648863269881465612393266514718302238276162930611279894053425232692794553188447709427871761486163491941174532036864511983363084280968117061337910297721807913829457652810121247885779173460685856466178006048495439178039764257285027293167738321833718040620487764909956746918656613576959841455779660283621026049769725775735158817677393591932003038547974863209701812943135404542516635978541031736348913489272359764639193611570880047823117512977820076087748841419690009012269738157304701367287341256159524512373261133736704057152980433960728828103802088245664929666786189470572221021642674324462912656271141980657755302219369743993659434186073121160481481174494040415731809601581274846248354692222543301499613283930544068451152082206226037345983753872932881374565659625771528034833668127276594442413971518849682703143566722551219539404680128141570968436622007131059459987223560441616487091658062619284781686216973877781323223843512372291898056665700977173539102218272343177201321955957121817493632844570869900017545587626312023877613984442135126207717811416894247488512649668120559985671925282776146162939417871521895330257639108790211256339181157187789260984711058756112802050722822780775422592403322880304500247980732679563867251370001020992796956063015786358839244755607884351762510600611730245451519217708161117984568830960882874097863945120854346815042936219186094605770224130217010991924139156158398376435159306012117754570595186030919299567160444201984745205801584079304436312470557002627939201654930689490157018295238854408744891564428203535415323475703400357483814332758336429855393326797141779037700538614208117821530632798036585888561068012406668185436408330241015771667327740287482187220387892544777954831453944297671926466644895363430572741041608730974898277630695330356671850084514825857453740556233891808792643282540649861183592502102815017310832971052514299904251998458929623592632113250684957795865592899512072719901185611680929988345167935136293556853787222163661514441862210103067514877437670354276941463653285553558711831676110355658598709635501517116478730650846984608517061172911304469719496225048615042025574658438722995314757347339945811117438950753794499286304860259859820923644702432362069189316582621988965809704842979063653508170174631554607101554559738714552588966912179165620409328903158403327691920443908356778439989397102561700455911867671369802510941468085768743890142016589743001607131179503742488737329391582944138504810196598090880043904306023908005428750491612364007997804724117656966578874438639406327343739923154532300735294018352825421712852449858682114791949648974437133358984123715978034414036177175328782829020314186890788661260422706868779813795340972388579967067658012606664562007085348098391554377616458074444454744782648166398976498137999521253482958132423795507718888613566819401602620238591948150370904004163508122805092202901094104974671047745284891788871462120818296902819350760299632342830560684496608364859381243662870199038065174261260459697015144277898837364996439098251638762506605439289750079879927200042557554036705630712662851490886790543992946066153483522402763827715476887675784006595540437450484773231890669615915035850077965975400161194240431112438456297813609333593278239660765969153785355955377698578480980273480839900332799059273375951805185542055253437659245578386506052629338051642221281346697008084059147685612453469397563718776941336647944990255762503862249277905461946933238264922592174314238311297609483273720178093191251202199753362120699670128785961891868036778532469912664611492410548827308114287842255425828434136239802311420068885589518431737063698756453461698523643043447667142223379619897657700681870272540545298321898438819537636377528114028032471130842296086285936855855911619953990281502499346077576815440274644917879271414620804722647426667558307063388138493344616920659350586679232451386326145330514652600814977235363106385095489314663182998761841310010382718264340261243217827412598638535950999253306027611619034858396706486247622359346510328113015738509304747002296316973602893107861944720129859317687474476107887174975305025387421683160020283623259232504745754637274248685320278761085315191186534931538947713971511162709441061453729151801192523677461973103523624340378065049082569767769753588763697338607960000990752973745468339631995447379799684101773848826023645221474143778250104922002331535350751979507431284045261363565198500537896394043303492424930754698469803764996545395199678024925130731275456455613523389860008837246149077010511137450094242782083081891540377211569757438834249127915773188836838824836663196864268317335368385937891572712960486008354007060372729419753263082823019319239751408150211496159613033639665040251282990830945607983403403903842054395853303520283917736390356177105269618313760130781880161465249096868625351378217974467454961698289428562852809549933524615519724115315844146458230393483058937940070205798107297346143301098710942464310889092055552661447377018689753479677880481504138346041205883645217748494922043920065868708102240060522505753653432400643641689432401831714872686013303124794105857288228021586861542700293577630091685071141882237560187305370345500784996516321534310578888876714720218787934286098712326888727000756838582421990425285654517013666016044186991716989369367385135910665894651057053903205169407384553063607390221699784507376416905149728149696961999679679451079932645201579281324280905108498280477921133210763484372954160251338627403307813643722649657879473687459912965928865283856755100143928489705793996979780896709582190193963279752174153360905201012291057489872039194235157905301690726803028919166936607751637660454963454379760524036997396866125296819787602202061049330015777091158411213205196004714977903281238201846213739139728198965427094297712171076270664152970529888465565360184232165853656880152186189825160011169652154193459566481949035671841679451775982607686497493077586183453424033839622821323770200241788466846266470398203201207290224779072549625728439055828431126674068152652757871827358096499647289525039825842376319086579083699206615907094435083699317751099069306336002016939209620790044434113972209768665248282450034485346613053250173696498340351311074845113613409972875646313169636297946942750454401631814166992062107903905779592203287136098775940269878281324272758572173869279727780927187554043351409133959800894542173979978754475265964299229182490459503656308878093061691739711499489137064776845944280130206945778019954335831202277099228589582098474940362143574822037876977118307692965793754496228562879399189627495066754279261629067702850052769464754909604070604542703398448169627072483334891963382642716958484217727400764177753104092581443194351704893446056221887685949121585022763449689335485398255459770873864311053613537652930375916602334722275410315572716098298871886981254032236052533783682958820479337974609618586393367743041271789422290543073365452693764906881395337681345914564579557133419515491249992413581274925840570135989436205450257351788577152021198752273845285145336218828389495315868377204074989920582446632423963460463183535508763127978506172435559148471618023910649017883783478611397251149617897551672133413236182960212518223582690696348057611187082429347013003068434764302852589469050334690008524917147804458766872903575225260395023621698912907588526080373521306437175118577409286530370060847370183111769290432556768748697515617958301547536067828018450422594870184292409269711697045209390913128576801962329197073307940764956004499159578805424801522955548468228391677915866602954534483691587807701594364992666805016182467515024852422663337583425552486764234592060410892637116388963967131412977026242481828258974445685089552498387270160093150743057543379987102542195676358353653603214448764377449211647513180406294661881499779368939913067315284256447238804815357682847750707439810353118963723634475037785624390863395579026474211506822828089771527077744207526300628086940212642645426415162433893581096604178600372205801681893359338505657631454821627805022390487746366867391862878410635191250229352215315713277439684362431362385468402832211432519247479577422866130297876139968395019129376210966827640206202876754169175730912366782943199774946699291926345393265983959278514565552899051399186759212573029827298443196023798151669227702312193473208062168837622518135257027248166145835657306770014462593901762254193665956983025126358680763428877567282644770589241962828347535692843275967802368691964247786239030099486719705506544211930486926110111150143446749796367487821279806082034547916092989996830923509514107049153557671398441793540744297339267805141863403878762062733757939811500770174914980184254655891832905373232280574971146265241738811041035921963519898007206642763715657691232359287415150579163312802400467870244667482991982732316618455485405087883696883385092660981630293759046904417128232056006908772953606819080785451797850552515200648657340983684579216021141690863114978179035464184544680920413997411372803326715782132441302489097738028484661568744672548586981518640161313534338683300729662221823552089536203362097292028482222736304222060563179823585483560911611018883258614258387979984035790556613281519338123400219419478837873845248797485018797620993550362881874708946501288445507670255468875870550199103649428306421402443805006814373266617308132415318473822519615144163731497743681352625824018048310625041227377118549763972849095728129312862729631825950530513587628225152541746750475955137322570121222056700498941936732298939969774268454445395189609045722227456058743289218490194170660613983415285998405471374544851655440419885670389500204926470097953159149884133511658814093565339337445097708075059689262837464072004815801441292623960465310803132507287177470283615200286763602963187136984087614111834436902899819347390050122398789831038917040685891529099712170410866348160371110145955190136660299384299001535752851429832114354534923769845054876300036841815262391155142362675108903805877474619930513545844122152974176991237458811561844138299123973731285690324854667651940343787326279782192959195615813172438743755489527420412596298607169283540320997788886338477707071494192544826256762991380905200504313832074060559287714620346685899368826787268675596922215642101072204233748361775072241719976716722370877691878737166100228501051772095385623935258598986358551671390784294874092296857090227956699321549764188172777599398233183191770056324702475046621796525218599550334237948933596835779701441381553774279264057531188230147067374033190517423980658029783127496812254884589251566547418675139224112144548036827402122980699053701141973444696839961116576843307981718945540580530315084105269685768101617926932114608655811466111854117220759875708731632509245433967941290168013185365305981887486583573684379094335242547534284735784155784820797925181644065288494098902380055802768010421867098159505904431098107240288015004632000570666369707016593848648929370637447039892894106774584171875530094155691901289152859440871704302836023914927301347993429035163790922252992237177690371676726927568756211271277551790914850127605518306564476410134973385909910383531694243471572489213545205434261232100000340318986602328844341047312497342049121036292859769992459313588931594518125497512486697963124124306195868788030006094636767618410919767011765315623139474117640789399551433590921182144155505885249959746428768979828703902493621722888031056345577655712136904416973934101613868470627411760179494902813161315125445790467195007071724331430234298467890931164373277654773009146332192908480109810820401926866080976671410636895080207182505466303811961341160844095919853034392323599624493172502441969718214835165725082756954042723746476095681912693203842687184225211668693477270223490525655502493505391820978649255830905226097306287552484827870640977171704344266147608303891843507579305274594810090120080456464456055089258261415193144174627505062831682356298662913511618061616630252890415777802571867312372007113760017707833453098250022852602359827228275748595600697439249846471815716725957285299578166880536874365764525142245682957027823663271619092993451864882240986337680304409003589563729009788564036452184851667616603050176211460738526204638406568219825078777786632159606548116872716175270810172366246038355660351459186134577972498423395312569435832310298990650397364800205321414961703445392054017694411269525397404667011900340906554932321295758100448468186567309076188989252181956591624706929165884926352377754087520365343002333432833673045381137793183652666490668607465359628537489644880800584206842386310129261833127546094843494806187102277738780994737175789441009667972739915942277006211414600986250470243563900203118845718829403878079485695279793995666737500428470161364874647775429557882355457866368334594194254022540854393064096615567980038766657654663529032249650927859119396400655066748694530452871624819064108081516170665031885113841475635563423267622264364492457991099768203548927799272262300730527970674438155613786985769463646434131483972444530105530965014439122450912607530254906894828195088090924861007446268602255455041396372132914611718762558905155356077928312880467971958947944875313777977628295001237141675446429505151338734255893042020851799750242173217501943957869228540230110686145784018580816003372802520414990076317788013437613060573837767934968858426856944414543070077008979266676969459790446792781444048686343079799825101173451012782983574368989169255381466129336743341551509679146414498162351482084634434167717486087458066431478408306191843583783841511698185819830831379615943513838707036714091429744513425068769176089069556280515686808261467578208239055514708528564566683353666744619561470088993964112925549694851709836171359842982081818352129785762747971293944587559176319171457266239401666687746101393854733197101871747895634494688855434094146453973232626258887057141246600693831533755982927608608512251721807263502204237463412040184622851240714291606251296176107555985157915811480758701870952990916550745052480896882543812836750821882524118967565375059913859144182091444032307013867288051118583596901861947447809266463881269464867577484666166360633935483567321953153212443557565531330207705278847869003266189907866090105855184644695740237700709214645909156385847103042701399172688724305239773305887889719388565760363469158451944044453196164737750867609438251764497617969103110039965125005304398045459585598900271249924853053988811406103494849817088350005814029766723757209179941957104314156694532420315513166882238183258839193411909391622488185522753453345905964972692580428909233635555481202927437494221425307704958845824516096451849951770835576933212557837609578085515354187844277237841770229351343163273406842900618445573499542834625751521008149214711408743452954256146893222881295270725481917287106305445134192296620913021901410363440090028839538437850256229167535679317093471673123827949476321745224941846263718525918581149384204347013271546879515717575704410410096810476741070166993419628349603864057100206713776818022969915328930944249117352843536599277935827128337082912191330041802073348128323079575040657648751207844509597396885807188048038479326512159551267991418179813889561289483761660267700482239455115682183210302935760658179276307748058130634761652771142347149762262048610377578780212960425363398163380743570410723705157381429729372023528189825198701735596363653696571555945320961844443524191267917242145748079104648793190607698408390113018183789393168965670213128072991337251539380108239741726973233359219230129227543232762430571441243400289189157413691298805144997106056424557304750463774450024419567834717572086074490305466098691924014257325484836994146532692458653168280062084656352737846232004228023241247376691400931771158520828685165616496001553060780447047064630192898444819582852953983406987942045888900435422520605315050969118172629019445174209006516526035206041509778016078185762102637972587799403505786613352904148869222100389004332598056484556032482808840958166174803825681811360536983937697536831419355367505857938899030027635363006549777786236912206154364772383647818737949973070626047306829302070485839850166561853022526425768506239081925390330036764527941754858964033632358904634000539573010207800949788447839327802853897759876382443645130432686288863821551264345573125496115541026453682167393173572540036262143780027122866409681614806387980335914166330054851118456255499264728465129225552726188136019476666890342949111357892109295328096003964740227225882929393118443936283643845740143668975494608322775782496791251253890219478256265853557759293331559246403082481047346802231348330208842402678966547121787738970003754703117187732886746561880995281225936668671143480180799059951472987861570745686481087715023288182728973807205986721985340698576560469976000699340892558436899083778964044141312654650841452262865749014902151721067875057695318064957571438758061290002079348303142455370795509842230422416816320787470618182241859985844198277188918929753822452640710055496619193732257134096830283574508046664706520677391022630509843243956665233222249532799368315217990795739347389381772561014013331610481377305960517169626485873691812512750700893939863993460047026453236576585976589368295078808700836573327033111076704799546724865677983899071842735960003317583902121856390784829189387410358031757741906827072931198006465380959758862315341216711501868332966898083999278393871235639203745523525807602819378722485053971071629786249189373308195691569053584938268924096975117150509982012109407994011801502156192333909904467863354505193890011892456620834243958828046402917680067292159594793593153065300905704511083694754383705134896033137524119695953904787249894694697375743121459346499925620285449967011034937776424616544367540175389324601559187685470801597484194293078891087762805264497360277847547258413512080801665814980856044268294591581911172472705927117768836616303522160684669740102990826303794782406659447365570894736598401634874751228184075623222661362753771298843500513066077282595157570143011152768289891234057174040685867291605665168712740083811019159991890546513535433091309087458191786199644649478941244622419247795742120188675243319658830757388485070341625975560165481601248123981128915097802292299465710966765682389167381472169564668879176723029340881145535333998161967550128331251442278202695005524771718050376526365531907852141065746619648924642171130543240189915808006054237028849941106227819277063233338854965377344791367016356762285778128292448773701070951051099486023343608480161867574025739214240236064982110406547484149555886627422671312651160544351661037530972497310607195888290934804814177342038232369364331093276089231747587178713320208357971669727113471256196476378880153740752163376109962312014139832123002566373898297662472264773963360593723149908090873077996533798459392171968753084518475030676772637631301012213122034236892505434777229817091042767930079732391881960869897699958356063941475448944378296955975138589151298643551409497399578686817652804395951362265125446825370930791389852959758102148897903285372772989610953097426786539069512556871978186163483582247973162257630483772334839957557549006552295991031986587003821170139550741016841631725694907454385189495326252435206045981735029004302377156934154310495329929991285119647652347217237883494255261293831134068180584425581170406493196461816140055848561408018224187746713124433566342555301519017304124623249202386538737460705874070519934646322550101783369067123225035413619363324632395973248669330480316068312664889047503141081799437424092111948539812498640595921181148732372473645250719666388710806405167593444864063435257649118123619333443192540734116061366518013320031644502031311865384076369066253777622979277123908615553850824615074536601342460696407234085405208187845246568784014149451598398359743555255122438524394788186927618402060698089955504545275016811925445241659334535523160187557544277710160357591804160784775310543698182111090307546029201687531214999132516976790808944507884861364238417677471058828728988888488001872658123404946992311044651270034517173128272537358373581668885688223520848425225193863631278621365570621905184123454379561434404378158464764949050392616162956305232250654381917146401440765738066117178900334620360667709430055336992218007150328694806334114929643963789631419484371340675984989387324032440102022903705459129080436041317129776032737733377925746014081794481415732667605686293320161576354933101050119455081789563215106363034229284008006925225311894274990775479800948073571281739586919752338863105332979667646027219191000017876800579973465041530154508189007952373405447735949978461854305165909035553403084191908303281690329085770574349786893529200427497607162323745007870298297774041987174993902198640287428332468441533424557430693744915215191585909695345452947993489133157299919793122847451521162134035455492771733344941577837123336259530180453791074287716553177096517640662211653559990364702143199302919722424666878375333167505966697945595441708722345532527088711553689764537799268067974829257230392025609542598137390993191551730379496660312837657566979609572286429950103733678759323192965731970937165147704276457596821937570734258805847916013391984525234971915154586512269064788742879947349861592757903980801516791021337014501499523523117635575764529220297318128552644205305273188055842215190591116599727043505721473326349615715111923261628402411442271064706030300654858373324973226142355837011667648487222231613318224461951494793675007730056572932076729299881522393842451789684718286593957351469003320343628202073414066832455899640628053021852855842846494345175626184250273525120090586774887820741328969413281420669441165487295775258223202118882913188391345200112893898269956116575126400457253820542365312244284402517783776728252173412421640455599542689969153163663514948196595579020016588816869528877147592754312529199042624840836426190813206141300973443588585559773660566762410426473156717202424015273717525706194987485574319458451928112413776860951391485460098035239803029458899145322426625179382812753751692355360500835701017037681968254402644716088349679263617707336683751193761324513531528340280068907275909848994019171998009837122327626558759073072599989972262346684483459590951317196608265316681221696997181321081385148698882950874627890834519183236154047679278949209886004295307879578615209065902262062311037515243957274159515323650600538450632183364663645143043529100029506034992275986640159628160555296415919827176904257054310170419028961987926304604014628406005909164519234019298904261131007431905833740071946360334170118009972122798801234661550478150470679010880121119308324727899476998983260121735554317961999560622201463136304020056903954762147133063988376570223122395433972341695939913242484366924739088764096870873099495786775658414749043540087711302150090331914730493405334876794804747893012853406456862137825618911120197956875893256466034274369637281338886803049785910935393595744950902556080743727657971930909669160797243186942084069790664706085351620242492951627065990704262870281206770050777549387649012745891816748424790989352591908121695944331897447163573261252933232361041952256183607668455349051317753226678634756768143321756118297838173106230072070462093663016446305397733667687201334865595886974471858591386287020016344996937099924321448933691136007083805056478569275346556707891494871961092128366527394410113412461397627546791385708521340329916454975517552528470889898384779188157896367646671780750218415733758145452477694066201558147423923662854962331688941214988154563842206746200515573346166223768134651915833794058569865554290259538075974755927427501488332283268625638798365210480927452030546852529867990695468462851059988056725322654516271256791576083432285717941442273662542251046161158302221608988804911185448882280770898797179783455139789671707814468216564355823096056651857927417504695216939996896939233311016704103739145709377744604042839527093055219413254198312663613220149651686726995374348469652173910989464949891126184895429789888357607715020456033358868327564317737896698235697199045943223988991858052524455651621230672279171119364029974656643073720040478818143044925846982462428127697922485323455486428088973241177647006205768743681201006304207831133284527346672262839515593509689433517230382615818195544686021254143209333626710953532094510057484052676353865535670658843835365047075289097353024113067188680037453219055441968239492332158286046556493193023431742741944636542299348002069286382448767249333697383627347088241986970329874311836238323838801913702196717031110774999384354411806979986111694296988617956476465101444950557951979822554425782121341585932357650725049052417550462235825144975833013434944974792304183297957954580154594350242778463288155336216581907995947542970338064695813224165472104297686518458011063629712300201285272371324732316998500583890114667672754287381435282831676336452442275283326838613971721627628709762576664932469308884576455848212535411379121026955956345581014411094768093503521809377450997067181594811599597706359388109326472672055225651214392221119809018328952883849552910657309572953222876183081393606119254612265904394047480116011523875122576195253921126207844262193678586016719080298458502590857482597763897856190292674927603146662038098793625324538491187444011796982278125810254520857139269917718818109185134344332091042650313408563718634266536167373239752139741076734367051635548063885686966056537813915807264047758012789944527359443906007787689034254624367383553054702122122024157074482741223277847980712575983253904660011615614468406164813860235049533026245941436202047753458534524304572027083075897764895986434045298975967968608678484884320564623680821107199162054624370896271677294299708299545848487610877451344788475516814804992094833840637830943175239658625750709942868002648613197674179989301914546089578251147562870270100192759600051332040392406035985193618781549870135775065840150707975498324013357687188995102071135129207860730303025959629069268832830355157504896547178541352333361761480685174072961347348308467547495985810326995431990185195721419687194427166770416266290361250848607944240535877825507491294144600816427059282926514855373767466586833731499950655629804886349391312702357447479091231059421018192756333252887072717460425451202394982892534377935771577263501245083009458744561339703981543494272419024430392543311237668300049388763227333130283081265505279647661326007461767351977429572810710456046748262453750045771971526749529982110934304009655534316270862892530562005485714305276516796657336706019429112254590844760740527024180838507503540813690355171327158305734622369238820589748560556070155564149036494600455558692454440181099213658006916072396400717972757457155471666325175314423666711085199359350656690625095501308918045773759395178948052977283073062092157346924952553948944755243114840173304207051288390555552093996118738094943166267203092477810419844135702686160895842983256526623970872736663880978970211836261511684772182736952577419244539769713636438594154652805550754172034138455833012007850483780669219414716563507315074531168120833328362512849196908742388897537384863202784751788133831044317439878635251942328834980920465981790207706807306556628259360278216423627794053072220376009408323817818388777663901054239321260278481905697731257907756889734648616589559538977510463105634891138699917776733199180446199679207971866763716603027681381451729121772693475661906222086250982138032577576079739347987379100601726646946883848968238518898902630798638343701241087427499876792519421124473548002209239339017199365909441886772018586802617904777891856025804416845651421384485493249270280934927842686272565129510891321522143473054746960424012239925535557635601445510810343062791891152890736621511466383115200051440373452864565348113572518383958372826448575185384927603183079154596405084825771901324740618680638320152246940569059392149423160500024973789201871846081308230436015605306428516588318111726197922570911516115819535743467607876060958257191771541274068442007349730290576332953073419001335001294568930829287691649314104723272579794477157544268760369092704200361059291153759266965057090723703063501147109848839336166776957312698288909948188996403688099223163637400829599124647847284038376988838164930951960257890843566144799222781948409221567384441818955566782223567830029408561246063227842430013199827767083744921756010049016125032210165212849180515494143216805213246194734949478851105049500015793314186976434089701868679518152051818383408526371717035521822416317616826644667930007317911536409295057668381135409773252419410649374707235781394481817629723594626280619661909643213504387078854556525743510038244039047749768196244185456522297945075273177778386086013008822153429782592329666482901832040504713812865025736733109850065953030916065766027201670105307750652980431125642781985884831909188191355759968976440224258248439065247912985091711103008210873190437513188313251381017270063885930437738244213765788699057162026307198637210358337600587699729869177432052593340546991789659951490761393949126462248666522080462493147904625360983160335761662273964333278907503363142352029136707618640830326457643470850633420998359555780638503622540088814452733036648979063490948457532799458205947363840297545966406944861355341889896294877389416526938938281335568711970599891266937672602341076764932555736217557745753826792780825178814971399741082135116532912714911592088237323168984836674777381560109073964651602702311305412845944508813802610039909465979407676319760607402942586187665683070654622657731597167254016470626478260962176234950513834935528907383118453987355639039796377223868301072581269727615604537122517841601952538905342498371503912003292835137626044027472566486195954831490876495574568093026871180117630545931746005494950358485355653517190392686814000026860087311590859144443475111500982719405240642675559251390640888848765909079156565508272973137058882567264694244133707437371350227474462791284491926093470917276530226557538555218061620712418850031859341790692562268370313156564552103427082079449894340806228189704292974563737684350468560635109424752062464524685062244275956692909027467291684250009091414621615420769851067982707738540281177315841236126639984659201290789952888577118386493816895430766767811006569581714005078229678253090202544605977239165301011995948338096792686223001467210075213192138975875964276102716791633102840479552903362220927200190750850588272191313815486093130956945775691804494125454508382471284745211828601251880638963761934766542731455266521622056342191142534237452224507062884610263123107879330367151884148844079293992908122008376735436223149800672693615889431445220782044079817386597181383031376700943699341012845487434274100944659593126633714182847088746327694100901038038194374596601279306813343696821684084631536707564226839442045753778986606963229575459063022917189970387114369662986804468505733618043808081864035820991812865077365870168985622839743672789395992072447858568311433387638988999427639305773513464560546403447961074799785610950492896804406921790547434429501861273271506845927277739416262870673646751766489432898457224892329342613318729286224083681153772661745758682809760834337016940810762651988518149225300132210340649412388601641842343846625212550548591887999793075278269526130240331192447248862085441994402794238841243432119044795017687613977535417490279628893168824224782029615975243844016502490569198910781646537451454725087957024244425753126742444805310285885101897612116795615113415058633184471417989934643941313008458901302087590257005407784161915839369135321835750796471027057725425304966649232733730251918499900726831268547415202487159604755508126527155778061753006591379320079790133444588585756093522692581621206246242987744909301171776466290947702141224182763716016918058426308666526909445302431614302977618305971863603860464449587530019627917786665215118137654829521463596229484706480926955646171916490958851825640060266334881266469331015570546554857634660470726451655718607986707443021394044200754651103385867487682905590540353883945922888051981737484545358385124619909866779355668502949721055499667512484531953771200443888762414290186194086641020136037355911071877133827301769762146537032743520232173177427396454712596927624349082823145797532639073988018450140180992316470210978100392244057872477662632352550093012059422907981431605568153050175177278757803320980303874780885280613413459974116521498652061746316622669858421963662208185409925182718360420862776439539603683708466247638998517484386219948056401087945747058851201954486982571188215610103899253166382857099039233542449108150484562722057644075565112388090638758326602586186465977110006069067057615646373128858279797277572953419030348445326726949571043611612466089541998977029687110220178935704852459261042190010383894409508571958020576910614474688915172374274418283975102740072024781190907567030200389068338535219726886918195321556249158890851661988448857450348459696372513628325220020931916369627442342277312118771925467139226888491220989532308687132077322424319816559090633358320007697251205449604410470524013711319432992625262260869582120447350967100115934430598905813059356581821429844058011476461676919458407377303305966352769370043176095731440358641742741687124742227761723833227230510831633890675703279335834708725540596816468226873348005647727045706221841717034190655974723856962320744893009007638162536402240141734299782338101767219476008642900931753679153885854307228218301415407507590968270206659268656076358989838761330507438523849769349474387923450149190530849925385882023335023173976812325030261229133391585560187535005632308483428811025453021513977546797443128828886952866496506601380243478091721851135969427220274361076217286760767925266648716564999152957373568360029960267510647619072470965572238123993255439666438174786775129797337618767878028784427765916324902595586307541637915853391004614301375507222394937577946061443061346989134643558200959055088697607339356766985007255223359959812461109318313237713216702863871946929446795351996865540881307156200714763425700365857376770275406475807516411137824831969232281113904801312689970285190245447433397074735174839115853960797366523820814879517831934407190263281030684400307926785049395278864340375983934360374998625581186552925776153005100156633499817869264360443093061402205793458593038859358707199681706002957620688830008075619563706253056309150078818230844278674492817245289402956215792069408354009715430062102667583582338409924827626794946414407609823366108450848659809381993845466012755483574792998038898210358557643708910390056508312445493363338295970694523838563307603361002928446647775726971966683613095218961697310578189746337627152134321379208051748752071439810490681788899421397346320000033152887777072825695874356145341726256792027977671490556520262481366385964286193253171493944848628496584551374760299940532881038181891836450729631367533223453763854514466106807114035816149122485931667501433950712247926167769445405605253968743620124894732119198872614974285084905447394000519476804346299354092216315811017843095165048992800191511007085027242474758617913038648908796128487745881600344533931953678302282072141910408127084828355313939974472074126401421097211995073815644831584880684810054945746193045442855228209447754162108412337288777849868685412050684768502168941672606682121265896498005695560322714886713888879289813389837287484521058692729777661899332939817536690745635819413640351221846371114872837251222024138955032115442377561741081810834688619057965974822594715332927167063815326186125322329174249200753586668850357249105115422650712202906444066505340099788447418031282821941724910953640004769482169239429954822254673260524163565449535152926697623970786499600853153654427680524442382189585917142455354340733499373481673460577996882963584136867647487900229642806334470431002682695376789306558792286081498411415560333898964051001178621349103304556268618378671540442878764474049035121984911733274552581411488490373337883174150604010101666573386579536196134309680611504485732252521420915766182660247791062765494924313531925871336677884972274935389725489241382624957814937322027967756231630669613634432736353757215117113125326726687931046655391571853756635681410407063350842396109048382674562420881563117634669933264494154403537946236274305400115873647358925957266713787538946794061095591718440264576962802747945367739456013640950050189206945596584264090831376083725212684645268965889786093106527697244727570021133760040494526297877878053566718929734850719704832264970042468752010497967727455415075324997403477832100752057896020953603866157023739425283978794260740715382144552061828392479410050428453488942163961356890728644438463290947182517602946277334536264030140009100181159053503967179294669567374930364472503162547391238697702970272091847417870963632104275324926646507664536403864038460003193224106093714713974654047638438750505070049521643501653740178902011511308739044924597282064053895954531287724067611499523308886308336377287070453567749251324896902766452411275199994170629359131445764011758844416356692445550209714334895044610926105612011934749255833804078539908369226135150094645725556143202680489221966458329944467086903125940367462566343577870301556648778171643741626411899396492724813320983159607457934769464127397513150204032750810093213795896611310532566875310966904974264090928912593909757624024752915504391729016825670233542901844204985682997127233511342880878283462614122032743942395819610859647762660122604870866844404571355209387343918472236999934805410085174948086192068399633816524578102229886226980508678542647781477918713695791780750952277758214051769732698473128959259628702291473894516762186429192477432418577491946912580841678079778982461648391350543071719877285103252435896091030982889169233317599922962058216117847137645881788403433216970629442735288722747143673180210552199176838849201205852654881181082966239413401730928644498617011252894012364685477102319310832786073683967016750915033083874338414274725856725436521331423008689031123318281747382470187915727936271117894184821504915015361465249800341671387851150608667839355941044839605449574372278058602378206969283748673344421467489894197209718600856002786337792058982029816177661698967759434111000821836110617245620769968632845208204527060907766612831138200924606104455387290412055608252222732723163993739312806400662890463669783476169547814405283448018865142545480771607242532028409395383613929037840762601156312096247018133140282125366281834749587588743505083189115777752480246124499922446414243773374428804602478397244120207328566758880823020359446179141367859357246114520711626748477452348091817296241265674713311060472634987102377550127765191076050552211380728394789983590148000977648582847500449674532572273766199242325154785159316282154249740949653726079021298847831318879314733781691305116854835143389026273998435574875968912282755643805618413828364354284406529966941378683517155756492607437707086158332171642297730071465715952723550000049983677761365801529265925143068799449797196859301925342466189417465812389563770905041943682474405378514236753048290036343029284089770417416033876102227784699059507525670231261097001933542132647829282895311865791081495473587779895233591138578547335623042559047414834338018999343809690800367997981217027791214215802682960888265809113258546563672476914451086463450624151506729585608768741855723562584572000605557474805716834949204177013494448753596039065655028704453652165151476384988225017266272677450782759908905612214732578273805048598122154355100953668787125418332924169815454281240859046643184111574865037524216083869541208045427368352138037649823395461322692010165599262667769379849405923508034515376650953227351170697350815400406648085647521016796349151158697375039456542193077979082110793612342144791191831936235407598588951422612845549790642708662692543914307228349782151920173105195253676193439936158752273105310040516897234002480597210297871934809920008601243741708015522616298375251120498851173626584245830537912070643841088635908170043806541942135384384800818706761489896611178615089577181400810962766518090854094604466734362965692749932354850561855406737551863769546070653519388541449136685745300027233014219969503529190731827922404972644581838308764734075366816422883798600017217905683229057992457479057641978921279852087847487079689099246699225098974451097881692935252189530170733331777581097343267938947839419345583309506420816181854030785816674673450769260591334995130395599947272211334509408524583562605954410604471850430316070815525856808702906869627840336913118612783701397242747383274800456663398028435970304303838439942057859089761200867833732483088712226036154116652061016457481400793884900708446597796131980741922006467473204635322426068632609265351913757792678303809683366380774433508321552585318494942925401185462722070852236268317427861996423033744939082930643950816536091255333928978888783901235441444195326791919657808126028874168346495582438888932196231350271713665159172958337645420722266387465706235212083732197584217324178934572023300309887417314582553569398681698454325035444154351985585107828324230366274267562538077963142359178334988426372380982181678672985066775427103954494885414153960848785116623952284772968463968664713196386504202971997883010682880533329663627828586053187914237767215902885704089050744774191815606613051957319317791580743728292907653908216538805884440361307062838822598431668655403769931668136723615885011438583121338186480411302323887191584844762095031679179137934772739634465296822541552196395629431589241127804767554149246088074097707681191921310993008114820792598797906867554254247216934942031504150398853977344148675811704044774529132776151992668978712093513880918252961758232351184601248104602333978147870670707254982654167266155381146734032853778224624398442483834884809856986658424957953662451976484463104341407251230461109311509046719368421046234019941507007892636531636449993429819861485911217386858552605702429683959384804841237170715608212489044920084724798573215383961660849974281840126781066318847719234160591424349513240206424291678864196158692859046001569780638786072621608496445196119843050192961614427681330147453078691419413121724567662166129599923105345506477046784247325597442084043274208963320013375443335640132466162981811609981880668643742499789407777064904794337325160613909162834242067201592173518251423631495180856182650860082495468822852952915362016474236837211468263242117943909049502412318751003064232802158581713294189550376591138334687334817497735134840291800065512591047168249788076273526416545952723197630983838955936417101213654118473067607969007303662168545850174149927269682723997796656359045557223712546033294780446598167882372184643457927415905032200734683132506325403890514833961553841328398477384805281639001387364895498439699307913591524144690480255398580516267273430941747361181910413794783714899039058848853564627719953364492590167315759022164255077899684761799438024998980263244452142548751485324332344545390589368513538072490397790325546888146929465919094105031245439782906680803084008764103841330621272086855746977238029906462978292839146281779240041132202907846232126127183722872252887520418753410660118755383258050963200682937186115487757534955314038565353178190406316658387746224515405816165963705116618113540596021522676853540117679448550966680093562432913267694942822168400986983628832684849091891091208213931419468315613699416748043216469258263530302766735689334131249103439284456353576439441338303698715053663909295030275941505633517263620578161417135895836531614466563270824005442269575144014690188694987939344337564278134368838669217037300069370040954746424732494141953741787888769231801400787449557513273730953643139369258911872628656765809683793460892551776272574606775854432411630552260844445846949033559103977251797407101814404444592942813122835007532923290973640899206378860541701318081353283500911728634941072738315851842682684703891430766497451033539872737437980263155195972228273394248235288046792451838079908341412392551265517002624736124209317266084439219517182543514590617161968785683017418225131942806042793527269564321677171498113523609075710906457020814015519251521303328130650784059345681384063140918928389526521822771064494513680959018038926020832460154550670386716365976694795636114109002116259260215226818693393985454239640846439691644747219394653339637053734257938190134049709484353048835010430554059525802798010683479202364994254119539835012496523454199507206134003970283849603152337055796886203988118658935941794401027871002269610967971043397884851245963673639471250216692108937072236521300085327190741586491581038178943017520966113555158998806702183118282610064114695769492352650524661351653217903469006261308386366705828231826180937419916086261623377142108152646364378324295858868358580641737574932898337759741360225620468266681343936249106471426640668353873201396562634074123258104315434858184694469567031621200628295097091770043255078798374158803214609387674537838052888371286084712625585807778266417085213746944425108990838307822856118080278275549893710385891085034697544714820882259698025363436642681807628519839257689071693871954118032101024552830843300123498803438984824023890400328544587695325946946149737442748558511797404312266228240093748679005105649572226541082282504589992419225239914451996704311350571146595599015806675414477328069603031340253563547351373177883230791002154754768636686036678094008544216360903215054029183353376160622625557780117601280918405033380429693490382880111155056427149186706500091253977300219939942698967754468457019506944483250061215927995464752835393337256492118393440158970974518198723623834560549790084051715450398691366612596736853658444494784075350116204469145843316759387450125178454196817389167850938580031905212853916241540518979084001388989097063114935220050844083668697039881599926664172695568773800713617085765702865353136291085599393406259529963748507368729472634440916509592303778932195062747536533181535899762844318876363340796302752814377393705538745122354032943887119789714042487959883366816535557585228944211109335365772007794557337345330806195755519436766969829148931464656834650750731131190506697621759407830067643510355576710827442752040899012300063289993780502030046104127156892855875980603407255579213190784479684465477690630926364226715467648697254427191697227003958472875566621090812470995308676940643782987956195620365168804321171939205042859414750587757636003788811233354123518949087552550598915213477283301063607678790041112630560244692620061512330896775169582441912664439339355701497291212496563826385053785117896880972774137306903436903320980503954316490631134238166217680177626028728639014159624525379549941641485182562111390194600943764314487149115813398802226264893249104737033052369446202374923261175210691877456124483584732106548450073908379751641151504068638095831657222354155555892618476255920437948983753487669397333361244003263884991376976490146117560842262214205565786743729207638169674060997212780088908151524213098507373387832569452622585799221608327246935645527510727683541425821543512959231431848974845293707784809062796443826649956208014508086897005111169091548206143038226565078131619314776926796580276275425134626782329889674581203592254460684617538912107927509759751203676604394948144723397510213412988063491944791572818311094915109601311910884762588729545773996738996249880312221508200815367811986412823818205429351261587442017632178530483995675966365461556751917164161928965807655521439105059609524267018990604659171442863326018083607440461171061753219797379567968670112828812770053226977212683914501586808744137065732274563969333966416218844535332054507526852417658573531906432999812384690917295312083518357222670289342305657744785108454417777078423760256481264768195964045844118969215099089575637382297316315388821224348970010384532601513959143913975348648113991298268956911752312036269285482214460498691844127616539232931980032250955755716712456343604544088736876347788602028062683258514047479720132985028270177963870682272065378088357826669168776978736529565786717253334917257824834678172223089315462633585718593634452478418961215421339333797587802509686921641062123525697522550918012994561464587637846281314454592862580714120074632328566619864687742428047562430226421894490727200667967289491822127708173294305468376024862594357644474025067757591518881832041825530176314174655178224587506506413260975718013917119285603984259614364313969701820247370451991943006049216955238907144281786601439105724594986802556148671774232582977822128919684195045908047356476309172375657984141311727215868396728106980495107326357006756988201974854551421461996226044447104694248316857551753483489324209520046825950059529892444143367286007753558079113806361156069090350901713579348261104804473606664486052715980694885931279466912325644986243856029677766541240814838140714607411097459066452068973145543188114938644733547291036710413490794417427454672491983525993389687917422170263115738238853100629866076141316043649631603027551688037901055775726161936480106367155785330922102659722895488387658767330034336460354162182194994734448420949358602324531083731447737350961313724044350272197066424444279225680360997324109940112739389230088498706201874803358418630771958297677300028279887662932979047255189958050215571952541497146496068019440041125766864234158126220246435998202183444047945012674797748200315055812541990169148970250201232674238503511647410711187973135114063707242680932186617027457748335653861825084199620928647466740179730668420513572116716107835986773517829287884805511911255493931829817373187707737149126559022242011273447841454540336676891029549872844054376545243273473884174644860276331788896079800146016155071289108552758153544479903579899830686513592273135491875723274795319375180681964400576232787969398583911237064271315371944311150285851245689455658892729630765495408974579893811105624025697325445464758601492506400357306883162271283667828764398452924574087441937852920135853349455779098451643672048325662216098149466627573286958287543677092962070400252067850434613224748993172882097329571791844097108455878086894344424442441874268885672982204894373838238056214241703532643244690215057122938903969646677198399788200074729490682877061214177350124698293064711935917771839045793570631118129748838709287393722866238541652377398885394947722635081587002641147709858084585481419170418601519395323706652458970647831201882289024973289443440130760285303555373363500080555601389243304797874739204498784884797024582686921802579784563495769233277948692917166052953497343521520639701916135912343926541104011780028996032032143813740479458073196223798432183200298114224016876258657169503863553554114161297544461997454969632712573299401989340749922337196223872915255793054339752113359568556495792406561016620659316377342671546305749261577018738411467451046309864809117875734489836693714671651847117715108141339851717864637789554322206412850108514903389476349337711095322207416300042670823544645651899919863864046885034728883821614504316146131394716353998002816054724939779203612519279737789370739494884447237433770023191073548968221297004158114113020887449073142418176009647096278636124552825360280206430425526280579112624077753461857656949590170777575905574283853322523964659262406657466739521363302504278551449982748500313281585260619389291261914150874605610551783900037334441651399659158584931486766166957799538063121632982463252225162239866973009511620389679867182786276285266141399662626150377952465860027250197579204641374219764272734011406983746679132746249958094380916028410154661413157635619639808613907787944814079200035364979307987342807684197116590401258262696595607016560159611737075269466317963066050611091497137828602917556419878013300278876298873161762206591942732848988497366586466870982687991204076571306020341735634498506533485606144970821462939066543124842774124037770652959792501259461845681893252052632610040164247989315592028385335667544937256712226287552139940952361443132809235674431148631565012887133313947764887921337688144395039150662774151491395168767180949052065433442928273390805590081204287398104730634451088162325890384961095086353608032957131786860756415709503840692940584875300425073870443998043933844496594337269833352320407056394514858265784230323739236695020555600987766704740321642140677425928440779036504150962989851492246598143611261582810074925391521697203676990001270540991645176467071434027631989921697184525119335759231044009714215939974827396618946670840683770984039039660920917291012189296032662022531625242807447540831239861627132167828962403219858505167736680429914213228016144322418003724466650891763884390229959473156320709350203729291425674505022749157462932353405534393588624508328273777976897364588577105169622373901873601357738935413073975633601233224940586522184037295517778841160525270943975758476136861681126005483285821059333315438727092925491034350497374908676088780143371982185391910941539488396342506549812617570764459989545245021743907306708012776923147335820123048243234278741057212561376995199005711555669019953076748315830534590050474312945102413485974433253383585239648177136015293958500086019797124276351686613720847438572159278553435283028843834599442608955886262794151753035175615067747760118178050380670244190381816084574711837694876956240857985366119257757289587708235026790825032037799924926467474189469484514026477287848535948350143251458233242133297118155367556778938475434804416124597174114505625555292741088117710662426597246531379833661048408514244142410504880234647532731710916958431822306454739463798054752368166387639578117163166293259213973353144626720080851242432311102823123916991811819023500222036600624965013418963324378048900687520092614889412131534890567502380273302948955302620633785264529295201399972906229844886288290418739413096350906897354953742120491284495541322643471912477768776207055874610840629241065542428606289821038478869601876519454125182590873981792848050544416229989565564956608322882115715101080743397937854628353961349236914570431368349679582844789219834335740681991543189639245447436777323079398088656976226424672245660996539548640623242868119664007670633278778639373493914640657567337240830210360992024759571927172829955966144954070395924609477514057602961559044430183239635167659894752408267825911211418796850511098231020795424220043668328855265810778486981234635372961640719832378519767860819559285446762644977827353372555245429099877533799704956400666610842689194529772695438604858723540323350658345582560214054786136690712754054932927169947706332190615728396579854061834166198115946815319027557904164937737728891031222413085085724276478957195364981906812341056776234669459227458630817948682011157622708840879847878701701874315584239342061444077692662391533372053629376879495991817201505000648874861071312156268190701520248126796454463330414110970678959760001782335634696955362616847518650751867920661473433422828560999037232596519461312461714801309051886143993742956433393479568290749865351586366656310808391525592281608995308414165430159489951767999973883419541762814956548746187263118012200592216398396753380494390803548804118135292723868907269194369092420796822162097914003635778184462723323301976365381498461856678914351274104429126249967909463789963783480882067892686796997136206480272125794051446002488215068709734165735950319808084215187181585014074829219438434166655379931812781019248040889026744182184243153061202132991792513953282653798201303945621926247962083719272573279408647789433872913346212749874421908465798138550861321066474225352588148964957220310612188821809640646719822539724761965569948008255088206401024371720260088028154626266647111511461871886432937636650616503756585504505685918467151298126737587704842021018804763455445853472468006811906891261923049572410282272949113869363262064759627984561010089752080891259248643870717469983131238869355485012418947613394253307194539169079354021781065642107879065596002818526118642831936591513038541716634643266267536466411820419923791208525351259861175151221388969636222543294522683138407045776001210512768119156789308885181709608605666837788756599729262971846294168978362543105311117707531603154939983581365827628336244675539668781207287429983093370744064303217741062921567596311025191615260488399261555527336569452374335873256682022403825847616874128919028508278283456432471970660427169312076242357390619378745318142279652121176135481335681552071091719217022599387177838778315888836409949887226085200405418740652844094074571635191984297985485712210764885975980381713199195705608688768844363345677707789286081419805826809393681276030682448693741159489789857238464307457410813106232197209445888502205301396918406093681738864183667887077417368114969548665101947399760119417878466938320025619403713646535620432682360394472031680317493566904649814038853217885550788857427506925577894818044680339469180988057456781242495457030961665346831102861026913147385212050880568281564186462993864241292690490862530129265867982842992439780526729799869894695051599053827401004133293967225722977266726067567953891142050544189346156389316137039860850683746163294460976726962962439181515484939702065832250840496411341066992954941198076304601056714181764174886338231700583370757497545600821472353652094228463994952698013969725276112549601247078382136263865781479393749482714761810245011630445229731554957349171832678075110576247858040484902842178658257251872180181880234234441730731542330563524429171572126230162395365870965125981903911158556388959245424961592765674536129711048003559126460236009171424168459405585552522175378232387203900643299724481967954676814319513471443262698287336974200195814048166231057240680127288313242145059623052265188447141925655720014049575766521405651632900498614587765567988800622550917363758706348275385195550028117076904148170333419558433553999609885840838755140840054901016480260822306659770898097304276072075356661608014080352143861410644209148871794640463725935270370118117475455282187996832451214088997145029088944131440814268152014890693291998830014699150123597169863230975008603073569351738699913767106002282707848397206377856139561987693928834744471304257740880378302266481563945349713406217737288129348746049704960851416376851349754555158417283361508567397438725432104828328122277631366068453391314373069697122547139624574024749208339758845926518126915488766353613042688590577324423361455268467881558274530984745762930881118806955837767811466245285577447122759455939860588791145824556663518266025619131265838918415381189120435318120471875694065925279735433750428744018307293191907811016944462017030657413103139742958813578735525895946715413432595535858267780194109611416703359918840461455933618936283663946865229940466087416691388493446096681288103515928857178315047056025875598426098889166763022199333560386041388403100102445333788847890266157197780891404320425309745131567112978440507473261932358836056810508767387346424848918608762079130967569311198304451544400308422935583064572606404177371072304790532230974001061537180338820242871103698702908002809276606705035693875890344777827435237604549847786791065426304891090230079867961896154629646858263210860088876004598063224875968830497367298687591042137707801535762749740678346102743640077303670771283360634200209563300964633809138140463283084649741974290094924381300635965474062181463409191507980098822382561030574901272426888445546840931230168883076503020201159456947344671668786534310633412671525298304352409049554531356011073797608181846100015874274511898404198340691490049327020576438970524324129107237124415064492567784363640595310623585774407736498440779232966173717920969229886486043724232309617694575773268875512424751577596286218917418239341242450065861150560522308360201258228769562679219286300648733176646879502399547009554604089635572688150057115555538604721803648190104057743406363280413765142483111136030440161481114629660017756145533843816543065283537955673573307275710973790197619883587881208250042656142402228112711270179764740676403602297835961214992469131483766252711930702153062786109446390426811404719710250458111234900027943307696642720859685451713708100711790510530129818604250788742293976896041081592303695783312887757487262175920385032614744047484853588954020484277765202654857143231787059944572030573768150455132481013119951660480776401010979816337711079739786436262474196548986212331734192548627836536235021249699947477245180565877377705094925369798021829932553976321811401805329743366662605736316645034229122065708706287509137824281775348570751303903465761209071978946041205623942913561969489502573579553729729644240343984425858523372549371488687716882737104743013479020522898907733956637211430486596258439848104953524948077749107329740276884066391759925379107264348822000969378607098539445163069258813314564054127123761511197216361930610889583202602329254069921605509320121276804805553181022220837222287997189609466132389861952866770879584146653360350982080131914886053580547027658945045609212598572025744482869537304929631055841088187166067995675987623175177623328456645518210762008745937232545224115086297634690210150198726479678941113313024337909661962206025988960892179152600626637310123343742317568162845399713642462942950257507193679917797128964587505313823507708137395792072877670169477448041705065830770279858621960042539450076164396937726707873994453695150321893570072374297765199644777009939952698628871017288898845371862817503232501335495175682370869365963061453714776677040549389367765967649880366577151238631793730325824529907532348499070600900681663866305303041822977385066639684422449157254724337889663124864097708384022006571244833289340226066685800699904052987662572120274074876843819634668461505171689064533762723419305369295553704442559463184261915706017076326341291988601987364383830833892090100503460931505580508445840563077887862467481700324408434511118325635254168123325534943982831438817642262513469634692160998060343713589075399801197204506646168131367331504406296215273471356175300382281062165878613236287948550032310942981393781625905373005213015087131537056538484610642692555847179336995183684239663362550485190974640912821234810131328967596350836434962113909005941312776472171156501005733837878562628080564034651113413623423285735413824177428808085562569711444118911277898489966294065412356415877184889604289034868948900753800955745867636448196593085905885941374908690509773048234893290189969274697158033794159157874930814846897153259607769884091942904470173849616204045976262264089311024029029710066491252077681271219719735553343712982091531657120736439959692414764990672416025721876970545055584707461268163763161115531075644673251887180343931517460249900968658887387383208102892443898153231935405885851671413631941065991424934510059861484545844764055424262999497605239745726574313286281647060508430647175107126099186232014942067193797860692175711424135402584739983462616027981191775468067815331070149031199902312167888596122153444978412482798890856199913364684858541024061138796939408440449149001281311850556305451735244224227826767350184085360028718414920798094467045958187667568489266491054794979253959297380896194681972585520534334542821492290141152987450481318618175812215361078756136075617513632887473565475111003050936690258275897107438283533688323428237580604242000666413870427557547108925958904248052914449800439453512924007246628591456486023613662813219447530833003534381858389572552225487443295024821429719673187874221239601473712992343875544265053002729812478197596244195375486005372974723554316938936114906845741843529149567356630512781311064869857528154964784051440177245084270149252378461903301674443336133116029551086173416726653228991467196748611063553900664132678379007847820399265091621720987226370592887902686586720593023457241950568759349175118445151542763549121548852545233860222785808959110990884461464928189207475193110026549245598706649961044837795235924737476496664371623869373864708977800374262716286677209611157142603715659296329618357641909023293094412639230806322675945986494936725185383799044209340239983336939881619282950246512947323386307146250779143375045731503924569690892708463070104960221210267823268226782768135824386600029540969042268652342333132983789696538009772284429805186147022366047829114505656108191653454483240802049440801124448688151480031081260299026933061961412969736483178894495532905966316903680544836700724451454296188482836418475945443819459287140700024329085695194019344754347501572533984767793221543623875620421246564552961270405362515714572673243962518189716800689259270100075589612240735279924469283361705881864008778895974039992302854454667146227049410053461664770024103990367576580785485091408753137165605467104950367680713986520586842744746592756147348308914298696918117734478315936730585887484965291198189686773063228433042538730209254815520350350201711705174969708579546133066756002800859643418288217399573335947818015386432559367512180654146429189422203681835743050672174811738001040230258070872626588270369058897870436463104104302629104562576517956478919328367204065885637618095471183308457902327500138351744450074714791637752516058820816324069472403377033221594989387656746463777879177888975015562912817267439293442483976565039820860758639094365793483715544162440032174455363887184237036638079950360571818592653582674848121712238828762808272704771205958478657837769516851867975850947332516544727705470883950791762846024241302297112436916593743476033965366588301398656098087116719345845405568997479945743375845664887633666127297483104334553008325422414660097029170982361314226015437974853419171099308213488864485669682767596369517898237117691179611025848490417502616841674371988205019386150681879416375411733749879917478323150646583599228009361974096683933454137407260847372224216362506466539545001222954347590937954945730981122236466384966063842499708700392412020531524288765548812954026685245124957211821528028087156853729628567569844265486355093787824590343356029715756245320454488011816054985007493912178691968720377045285782118635252390094603643505079107785140792172206122384487335947315460160238023723910293753585385412960086725452669810824565248389544755990407754960977277233258453379425427509145027336822988138119417002290860121523221051837899320908210432950044461610082387994347498120431113836297089226895896049535590168152780016336350382238987112503062455292811029666033398721737763144837908193889746327659267954288358419930245220292377411224378443736254021763282634721942761957003645628689114260373516935212403570707438602142569698655905367536064936260824088650972620761493670097961422518766359544322827177235909032455139423171312514590625876636857416647896764871118767302713448116408652472049524774981131199016333104605713420693412563025032514428685972210506692900763063614636154226905453411237767960344984235382365705559676259775534763221683238602824232244289102378772686228613694343619821536223055047281966595042457723423863357697880400959719910158457214037232503280679592683272611909039674665635590107893425995927707395358335602461774716061696145677595930951985222425526016798386804268096389435150819949066262315583534341787115869392492188640343930419725853592871694449142324574396773337002366760946731562877965418778849424167932728715087393217185884277199896609438970843484863452034889986616361245587234696543091858117309840144811321596304752190771836937184021181380007641803119995277290760844037613597487759533530848573259731948279594267156149830035643083424840825607919881901552902048129641986499137269022020045419602561055030147886779286347756030566512502837098919922017221179247524927822701116711165275173169263545868990839245988963570497625435434100352013303216874101559824598072112850291770336124942134678584173217309037596707653861289259739394114889383386453393260358211674479540777354526126420688713489043075015939306390494918571353795885086212798583477515481376209338100581727780492374080677750501745698845151637282977374208650194725592216966026588370962407403775764192669481565795664091404156842421523688214246393998290793437473849476999517572592349585304514673741533798887699582542995560620656860104625683897375383610652764479219086234769236873448104093965123844017586759739433743783981275925363201697406632168140107852276336807233119445461240944248583807265298868121530291384021268753614326547812025926128329240416239110391868042190935068986162324650602792522847090095753920163622305141653575063382821009282603255460611095966645496621247028014810317416572834851029923280121495646459564524388876290377527422512077439407445941313279069460105246672018663328628744708841623111573119360133209553677712571593945169444378716957188676892300213796405394247702809224920808498875510110413148801527296564631699711875514347942410972811349869576731386797092727093299985886931557456693651307110480487437346580113656011984345767581431831031585387271444286484767267881947616384591464828732665990201577905092403895398517494365247498914533956017970367826294299917825630009347004194332345991860437182030132067949456524305536803629217639909846246982586785253334771684456005108879537720239242364680482108550237530979405480604998938723661572382290073637620908442502078122028457025752832969712043908166875230652954516145392993035860902102127438012847537326200341900020542054993084326085977660096275949007503903623874270086342770716535849688743645758057147308863711648431949572797707467576994570646776382854291774270179275219942603968698527756678591751711312715394760198980282122579090142672550880053221973509971169330265812626626491998706254370799142570789972232153103328246635796766682102621823261325621885997390609041657161463287636437407349392085307765169481237699909145331406678821994753385857122324275543238727333324322523887451737906858352214579667593611070123317901314481316112946821178891421567131452620335909037453158601774170660859964021436600260675960760882491819554125192157503757622606238112248312856341546440106016264851963685452787491924821363954883510579288556891037508960518202918669608288684430153566039729721082904598639201700386287540377734115330017308730327961979853628249321140506472401679059432448890561698603766972907578258355904717980276469877801742966068243485410756720652101942332282533540102635016001820586744214603527795362336185813029915929156523455500544715536665254312384559281954227273757717593229934113611180823116521937423188001734977229349415971356241365305727650316340893252185012056716300326918598668009099840878474744304152441912497188658078133967511111206593562066200487864554022094248847897553575969436835233817548127012397480310354350771492613123598024885310176727270140891388988122622734997957263789643613421357517059176638624098381230482608318540282469534648246321693948710419526516895111613250404987415827826288550183423380704773248202506812465874552262323718796810896130983696317248215577532116712058546434379215989884924782755825254047428151367166063991532762226163615666364543852884688929977495101886740391095453393976914647514774476965158987311991789323129871706652719220959957003808799830060167971036866378335550371788922003137579448384465131111671145526101868631006094692975640317866433342228721778766816626177077707757481373813265490514899395745336108818501001579886350027338791321744172963613233202891421047789560925710948121297921626295536193087963249349860600588951610252704479644039630042278669695309567180420855322286738108587336342461513062958588327977307135810246762811596996671923807210204532254730298472978107099380686413827635478969471674655621945056238218045149861039870800382526972081194600868375249222096622183945395731169500292107215955873264605688433088173402592609535605916682807737469496848920278524138987722905604584903733237392399483965176478498228916572249358984173276389207066401094575271832497189539853626021854701647532219948585637626078938304419438566179518042274804794747987284949580153137447737046660248021296042673706755871986619822820283268203201777303509615973001059175433630093545632821894457523286637369669013515767761100660411984554715348751292500824158149858221016987612355363364528876905906818016792547717686804190994365747190179115590818672386566693589639297970200852153477825696248749388732601703583951949651160580228747675075235998470349066856706244948546268668420988948004184595125272889371225189085940574724958593077138299247306174784765041095094342775574305295004739317801983079284624975180403875890047998765576862965276179571278794342560779433744360339382364115714884506741157798474354741967524445589817253903026731967826803536652517986680021020472206952418670365243805273398554443157421712969485471648807390702079710450412057391328484050369933917815316797331624169630881561812110045139341475959299102704588941941801294792317604533316471351541917798709387806443115933697472150508872376823918836683485993693560048809667619922428577355409929310902150802451888617462730934849552195600850358715685513614342408477119701365771780472325540662810275112833309218831257963367314524301106388459282191713545431889925067299212142736896152635995162216186486759426068397702568780974941897558137518999700597632716294970277341319203312371964793633959586131670975252300151522202675575233267303785870012138469912255536616393909382918111157298837906101098118915516784652786943226621380919519794392171411036602431928569610302814493165049736701084606505594866668915988001221504609416195335596863768070843950862709978604629317606092611361359405114673247232840934947456747103627966357367850486749119386626445198718057540026250059098733630381891414645767079706083937302395104265844980491907189791185179345834567930298316402433552568594245658212318446543102585358963958642131832032057309659557487366647953100099048122045099861305869983312500236100638733273745194262275680800113928311397640062717042944800213702817207180136722923459327880039305094388921128511835559095925534383020351635507037394463876699459339669050950600455315356949002391376611326061297712622704645950078770346155588234753253268926738838459327950494998102720167700664798872202707857595694086141397794971662497045393352012750947111772593765771350397334676156587755283748269284345850582548079374488357263209772256302831698899070325497769673147952916855555575193566758629899965416383108461971972077621140752956297229205854048698349893210735296806023225703601697351159027700668900295767216653261890792320893388481594406182940608934727523969542304561326570155200514173736192631313512458059419687024523275985661062609615528995077217086142780138508135202399016247689916269037211342357004440678895248500196199288595084740133524731313496867714619562772157456527831884049897994240065829627632531085318319494059504789055276121859158161785669843213139893874249865322838108595932940316589280159486910259101208238348927857954209184297409621343184135688728628869200622213978048779800541272387099519731764458664176360812312884635232325334001195207600611200486306006460773584384294114101094649099542618423356923306677568294869120348806574035349392114860222412050777478818054888397262400150445570436564007855705732048589599054851791257958724595758881486245314703016575578911830338524701524521002945058159906730887280442292929931616123450418669237728915168434790512515652195917737946058419541387002666597775304835799879531731643648390243174672691506333906809478569169770150165969288499023325075495218176821403983106787008909822724011866384056630606581485512399701706485907450350105790816748088699736429783271267619155230016666994640972939076977318759628364837181383220221379292571770365128783253074695029120660553427192769944679302910236347000906458087969387435630555611738263899298034303395914472194702103539888315351982395952650920067423556739779186999724808332762185295901428321543988792175761565883266249268794724387301273653940043484296881535964515208747628685235450969222068509127200090793960849864640056038109809882253262031708113427660383705536366283160019523350015709242487434809369220907014697759946450016294281897167397812033091029509231215101070375420626080910535300214294343945929455016468645503281425196161859137662427726051631135663208659105801937526412947441811816006095461977305372167518685572941184119929657427339431266597179368888361189508269670671821627869430867663036411928501251513597029679955224003302491928297532616151093552849743035566488774346791699858853481633963917902797213198004182781925214029806473925667985220028295898572448953923187116774027018142039308698450262598057213882076290739647322256651000136949085105852330013053343333275685973991785998166055663582003337703750018033619277043811743542652589336508610885981277727412432426163497764464441705483388379271483146206080002211341722056630192383698558192391101331131450293059589063892297251978545571101267043416610047959802320588019695326198869272029177537261194407337116190917787347884325133825382560418907458029676698774160087709981541057738173934311868954295205851979596174471051722384423672221740343578663460960178185233791509887283890602183281420474601097866375683249800493059862723251229532475347814810620718455465253079591440116076556037501986514642589013597230354558195798997151398236384323352507895396241375354629344380460089230180154889895023633720841175955507065778450362009119692083929208643517423009977935774634649575668354695322167131323421805166456883710896653766653461106190242557170244286642049290260463883935662006732314545578355847887170559200598508252380817228313311243579296140402784757093658188724198225736456166058796268035033347043525481473860685939462876027377982238567719788245531930328382410118500171512267301067064759531195315915510192276179230947630278782810391016369094115541308336431649222047692015669019003814248773684300837614789850066634818501607078509406694468492486404279564296804018535024750098094659866876942632089335208537084872169920620729089942061355741294178152452706061013445914071764415535386069829588452188112409745133318053714490551486645658795480555125109951836598440180464279740915230899453687647802100821316537524300626805263799654039406137645538254412137946812634502860917953793478299758962140185328648245480630597064976678855510302368682504101381983041632860534603732375349542370197059371519829101449024018285547747718635128970243652746457232662250898801449374364516474625169858766463899621875723301411801235491678056732448497556744990772963511972675077411319326752692034250790575319222242443165841376637926095764212591741338649288316741978854888117809727950003588303696906073678751114872441107286005123524315519465020450493268555096581063411155295025524324692444201001149423733847057957159416914466511142759730767860059823992963975483949103733804241462420140554936490094658627519400197332825545605960443147903183189020924720702104454930869456422839446968536624226035529676196763239436634920788449633617576959953650660833629299315288984213556743920318768464288741697154377642324462338624417130001234378830261279153699493151418968938675604764269604118717419224793270553118303521445652489901678982669258640179460078470133108011050116510958206633743602403109167285189585673729605719876877135843229708661112264153468591223902213443889632055592228130143397587738898647447203925875983391118205472588627763531007592331730528659854451556952270524534579835110314674277331725807403110691470165093371873040434404641568510519151891576784684158970023253381668427273972709898071071649965051931992466670382752670189599367985790385516214313110588304606639867224624641124252237254590734126350871183443799785229186418365258135500627451990265408454878111452527799980037824235324052504590997690154431271443674045887658181392831572973686777638258680225473934840050229120473791622398685102361365059611582821590639475636855769788442868256541657669809981917331217990929523089377387898325607376008510198666126698381058626113766032758797088400534326947780402730204719194400029201297905570763791806264906997532366510953786295562637885268661991919239528703483690670151340150974321351031549412246552246001939747317105485685514203497587022015308959434373426551022438859938896758991489672791473695672555206787533547611086372900557091275398928939127978987285355119100961289147144699277411539699573182151655776377928998065153827365079916970330820659722882573945830144826198868830925251173862806400201526126597050994617866460903294028945563207042691461983239136198426437207900946820929184811194093451110079677851076564143287082689623921329853608291286708446582159244369601615867324504217118584996113365769245275283583394123150578864499701053015550542931252026344643067019094993482448562819721086610529742275590666152273215779697133808658950048141743549918305712310771718161449277276825410506344849554420983755768311855152082354207527269632505663303438865250967552494489573354396978354133441534755184909843274867760278080909766421943350390544478691276252425112585644804382002126693249960305256143983800694907331216213986026034460825862828237243053866631398225281788594859367276118523206591377584623593428786125351761883671989405901976733558851568350090561727475928959755484557759675793029113876296678361826949653057056026135007433162254015047041498362386072881256047633237469114666527213817759227762833121893585183247719964902931567222848682335376165183309978843900075661205249745306874612538672790599511962982971475650694466428134216891311538109050477986723167494984600148985030639386592866249810862480300574735192850951810326361919767743652218443444839731478659280339246570400345971941526496322503008655448766591702934287666404150544802009164116951783912544997444190513950061533499488696739877944154234691928206486516758650288580349924075530914388950777718126289501911769451358866800210326689238622008836108078772150718362554275694746803879135924917493617595599117387615372395977231932992147604204338919646528344006274179735253055423504957422878068109350340077625705074799909810780078669827433714785970485990277169444678079426419779410276837327268761358036413616708638075854876729820608188353948432653771489991501835838103073487605530140054244001424477366556474675566930362965951220162897780697121433326341800518876008560223149400882750283562356557260329049283690606746850420922581716420315881672740476072061148775150238240634955755225665825546218267158802643948974898449067245624997426881688450104577694303823451456294738827909879927543287482055111925303070407252362897410822139180492580702507272676711610917143394654826532582405530111310854458679356626452482821540340415034194791106557501953874290763805234665265619693505323683379391557271549309593198321527960646443528922813440296889496036321047286618453786223897385511484458006255030072552091718270204819857943500419802018405599740536081061422990092974876982060349595951940661994238960359004502308095474580351355978576187304174084867066271738296983148699246764181468887074045436414517150059361079601933605960883404570991375364663639078422181834996519509705265574590143822106406943890354402808186759901776703913693019236126328459168618279495147358601386873491353776507899392789824152778203179874624162943638718248049776044067838480547837986604835008124184672728611572831993651621956196158875663503653638496353939685816930663719731218629574516735267833210652992140045601200334829245964551200585070774423674950250537002461635337284622643355315587763712784090438622450219812613511868364356199240801377556153559352157047899652504127023825175578917956574034361914758293744105307005434111905633826946956011481013406611207334840494075545296381665013188313861627946235813976895044834224193621770251998632655164935684002226876100606796295971486326939743659498829328785497527025148296365753428028750819784242330645167377564655157345541612430154132342003743643995485704942735778768028238285843257385938163179409093488390773898859043875948078078784780354958614612621712424962683552659762554534386164762390440498588964473078002997834036204571682111733312036477967851778287824392590712333624172951398510604666027675749216438207634151355839731126053472523214365343623754786634597458091698416182420359423905571135183485631585906669011356238912325692622084588951647299074683118274611681800906767111747019529119551496261492885847088892015174117601623527101728517432263989939337868557838527902290479787493831888926522173038129851021969419187918795547017682482465113276169636531987295993300901064852113906013459749312992706533582329130931121745205451265964320489105760631709364764798499956645952663388577672059427692399729412232397077600762455154502073403495479151272784913349712234070442326857304092982395628331302925125719411710521476994930062405406126246885135066009812547764444507196698329358335108606227275686445361337475633518734343113306342614033670710119953409807703346343352283738095303357683716614372620161273967758491470577139980013865779696164482300051166898720650890964029853037052308252869778400627455696843385186139457850413286357206269673764305058468228577963804830771545077822820086435435192733631948423480480870383608352365566052886697881311081283080946356777279982568147849672042525225499537513417841682291697514054756023369683815987594329384022895615914719229941240840994981419035155249046724175240139479018953821227670704257004881718961543899780267186699135490308467785489646198888418050291044435844540396339709554994473202113159895864260879164258696600433223671678532552134835150290920060667116773326360797828651339000232927544173892453545376879440293805314875179246829584796334377145162753804616615992046403792192726812233709621091094500729620340004877462576482247949510857521425448718359170149416212870928090393741628306152026909148196292727384002089762524088566484762165171520480575795408592346340121344433155793292028089635176014319241566228842109873377226467068439407513311071147322982175604544026303536643739651257035986319790466538920305640189877666461290015128746510586388919509199827929336768846105801076336316442336203516331886670392262227127610767247882422462993141653523824876576101972597561365640636203866602619845591763340877568712342603182740035139211853924185526272517091552361683918208502141651808099224112692651775433730780768342853844891981391042825567596648987603976939070769966307476281812930677144250402274174158162100647567669309451805954841833005317110248566926773495179790958353177395992305914078461362912138994896367302193835066747209070779813168538582044038469707863890397334435961662723718993260061065366263120514344242981196323552999552871378471733481587477878396586001563235055791370109435986284741587705454671334820444932980096227509207516949889479683716000163428657656757138671948418229920352261590807516279842741790814030031044771974438355126353992902793813072674837573302774326406393992643236994065495862426690417639863888692784036533498854437083113734047993182924465825363898478276033779670420318145484179475083068106987673315557458936495565809101651158198489494551102982419870052277111294483871073428175091979589537705072398191254347537826750301942862357200044319900514565922258147299668199741488417318031753150752779511458476706812934224810897491076446842026758308321194105684246098055711353422520195774039905499426525836449447802760025448100075458717710488103969744034632685692913087671458426289808528269847398501735458289313514876283867442915070860396123638507678531541949437998903586543108562682669654537516027231205372106295192613501252236069303295166000030936304364843039911695958780640886936897537274412565574280017651311716066873027111111682934077373033139158731494634712954444920791322667408659440227647179198127882727179045239503129811423747615356582387812752459327346149342063261882711634007823189563311547761445303790282136510358054467073563976448205601196673897450441630175086991688880671866150997153623664204253736717667858801177572442283074681032658899691688559219487123201208972075932289941829027813101883673554894453010045061353600839578501637966244808017058062928785273362856054635022185143163074548129988528352696205693795648447067152853610847092135065691789170057430054079442118739821993745301253312799942323898204329459675887569852814019267122823536066768917546080500477624366131959320590885310051928842435427355065795146603518878564782266799911485361940867997449617433285121171168292908722886418834401975418101484926530755657450598166143083424228547444840298389241853607509074647538080886843909227698833468843421196872517445890142415455847329813246411199159295642417324171038680618035102677166980119588029181339353235203689877958409773549965640481083636068734168865204071391288927936443936081043482320817069340885592087402257339611052063068821286317956890328575066192533093214951761660154441095712281269228505244907917569363597295219768639642761913903134184990258606235202749511610915787336549990913371761221993418426150930841545214005554496532477526898527330512667783732195701877366984094660556737620223679735969464143026194878875487451356815448995831465315004031732252153296752546501386458391409506251369491083971774162144300541562517953281451216152291407625302788810505058391405032427105082849158027345299475103958463148776032199089015407447823787776344770829128571491724635774117367480595187294534757422610664325355353784567215685657466234537591871046994778935235131955648596449309618097034921767454304018175419939455011819334534748961196556727739786696279447957694935020595530017782736187486935935154157770188551047484820842646123652872281740060292692222961801242447449492205103186963533370215203598710151160173855118176547565065232696939433164325011255760764142599300188035938338525873102933387269824377847256479465853113515318290553532595022454860704518222759451946162268461711228986631088145870050748774550363838897892245636447911096365461567131990331845266737716914330797784301680095997861543950123595444108666525906999008362302957218113208881819595977111436190465028843206214809687971151624583245795603492314595904344760051828281680539602964607028101592791023756989719789943338146711995639473204772830443788080330505021243489851935311367837158652732985531956313329970223024572710662622818722170961034184392841200002602789600521305846486122297376068852516670531192243864086470261444338538310422505716812223260408531436447615894451100831015525504291165156099001751515603932408658563789226333602752403402412102071618698346832952695471871236844854711841155795413888978828481714050063998154879801987191844757293027432256113067930870892953220896413072745293298613568661866052081612622599213218260482597729699786585702052207898164384066606121612794691028991730788204204874968490650300312456643102783206661929998174231893905334815193986244673758973945095182318883802049257097187964807257082578814347479442826310079667426373826514569937425997622527900113886055619828856833162894609096255182161969638712664687294134468780518871043210033552225187163501270072484940314509276025490533720900332024602238426648815321693497763087061971867029935890388261867246533734267662055346773583093883197047881389234850765664759289884623828808808192493329475158853903853471461427232179939281307654011714832790488306498913346426453134538090384979125096445003454892377826385103964068520746368698520791185217738396905700619356152973554948108418013599571295546145657202214900564952970733830905310827556456640770608702106921536027327938975267627543282525964926621201450817261823134404656062941517297961483356250012137110548295640765909531251137675156014808553039964681940193021526974891055045957025364127107886352377023503964127330959507899046746049977717745121875195567391302270402752390232734297248902213557921778557138254798524115508571515015017598523721307228288508642104143271267577496504334636620987193879760606543515779166450058759677308196600027623748334426489973196357700958234939353726889913271207434641976024121892593573654806034721023783879759023634363904231750258794252145522529582030612791873031083676962600997158740896678541613806608882862818209721949714402918635432818389823183569321238763007146288163338748750873036358920645029505457894223713610813756596847271329872376573361208155648373562310519465029962907705132158547985171448939794758238017431176011860678721859273287671906424967693679277459495069136286961906825060878864543285220504452904424173953821164681188118861141386443956995039065333632919491023609458424683962844421773884744674790633647983419707779017256542923635388888936036122697360659408491978414681242116952383778455960466816692479231864636215174632464019040904623269565513972396012090018095879449689857180008497444506277213695296432872324121972814696767138624905529943602974988283947998666203666989428198480162201784532814591333974011337250154469142461460149986170628740179380660272984655858492524806292418740262336636202694973435765716311184326307905779431808300193079082541095345833025519871481833429950443284706255706171355778615255214497961980188144425612431070215192539860114857320505080796749804307298468768630633003928975629179513367737438917343065281499275696843727959290355477546091696748655317292164643473829885439949274828129506172774877568595221372424972927636012343305862529380144593859661443847984697778058973711364840874658083884792628966923646904126248852861774776499043447982288693049984914590987555000567656878692857274098651104567526898658459906581234633244762185008642570832523253981852922725591142080984610970279494600910343159301996663738109347672322116404776866406891899170887459726630077463560156825548687125033668025375452738352390840607531950782038241125332142115389181291125747240594353845177016402300845810446148918156503166343088125904681609005196186286501651991230456826513380940759420663903181295515138031947292114819096421290007602822779617289187546451423839168427306759252633828349982407821810486287032547121927823272389531995547526951749187624491540710590830976824604000884899036506081437221129345537432557182840120782566078710716101962624476979476670621424055621994122966045547802917280296052974198130416199737866603681204833589232930684358547158034571688882698967104095308266665579349344209677526441843366031963002415474381385644968296999725482021340348992421737260203468308542618395175111719762263514636109833309411828013460415971975147888171586622522321678907273368934626031429954357470834915945234272406103018914337671329725609360931252041546552090992596659341692492616258216024115079517171063488739229754515679236357456549583902349624910834484689138442689869140623967250137493822555873150334819185836910703967358853370690606444544731860613853937033630598517312608126786571158579219099962812165309113338715681146170407158486579410127023176358225348417925474594826881104757964712806603218473786689805350286506451232333481265513415484724304121546490558591720915432290953537490169466338054526844373234035576089700500883548599079750792232389014753808317482436300499876631875031329376301926329972123214940163344275978782783793750994355387609480521829528574611282378933236253451158937109855462850665190622235804722937963470245144618512546990578991790300747760812176969476209782939040655452137952017633842048595235987760935740243027503812003366377828129442553530698892523936654579139723584776705710762980092462252782503101310922760128016532503258518715809274447926364168310935236160692519544120924327407732390937116286357730851134246074462007381621215666299319491220430732004250216417588162225510766263983795650477518276666573814966370817311036681775123551723518660358682183193779570767270302125073739833401507900387942520463569778605667009406809076355269996474796908904778672051425235179313994103463766250908090752643615554889208488900380098819862925506164480298481522393055818021603559420164696983110787016311091305154900562204324526662130929374198270013838402801820699378469415122179986002955940746668499829902853057742749092367393851851793481497435838476432479020588804663342656015598770102605727993867344376798622671047000584465882639925214336368500988097344629342122360839326626272196078089140052218771187338024431304786751706257403832511058587621684907554026701274459533716614627030482331565145085877208013715733575077702132210025406940898118226861534047336565281478353217011262658531658282636943830727789517170100717022519487568437475532176783703507353540692791949668152125525174037569402299234217404073561587154691347413268175294701633337695806543775011192751903246762326863732386294328092984519393445365847157028807175511384020104642412695454233891838832414774856584762308610581146273052971345636537317128027765460200278534285645482204419754042350365459991120672242302753470821509118564446016880740695386190259238082644308842350569257075277430074440465678485101398394189480905392632027935311823715426666919105903799856635836114136488878580169351339730791481415792623381476468348143075279153472602149238685428616843397258640684699024417946122217894674647386073744316917792676282524956652339266849262909121710663272588326385581663351068493261931497349520025994788443115166015410711339056033457473770176194048293318258898674226684010575196916408239577241268418040594446457825881756056016517019423124431641201121769471790910318505904114131798101524140962589346482176874240340731481470433308300901294078616393796922248437428900223055077934305288892333519496885535519863320668508085460528630736049996351537170264591205431492130717543023128918748390337273638101820338605808522974011283950656137058262649449665173857566340185826893289514435385583667007722450242012912795621331779354876258109885836031236299293126817225560076822058669434907618478094119738908240109402741070583563038436667349694391930694192307707464824197489462105944313348641384310342560864593816468263681176173275462775502761938520166966221740000576181213096573539059613440105683098033121670365460634532028366209717869455400411102081857959614099721844644376809006902896787814860003822200496170714115593363568006152291115848557737482277890333725087497158038836220013747707725586578102971144150658995088735666971570167192179761270713050941409322892309406132880147414532347135413860171559626896783080193126194233313461874883077874191143402415108883575582504179069387818759938559777171483735749961332085143411986747573963148077368736562326976332831422153643109828417649532285166486872029988594503936834475860492508284252865793063685875153578831478483418404704563507600123085014311801029507419070386142600113063103491241751725713518812219178031623847750070247721594745435482597025093883963832257643441632921015576836369562895195040619192953163848798875675688511369379468244837212574251097393158451120280254400989679585436996597376118456691981856645424855739274370537711820126181616194698733347384273040243778949338507971444118493760765320623002842991680121928755011671745891887553502652762067255195323693506527568006163971048927325198396581385759279133329499830154573848987186818939325918710014048473066636808257784853050180584593996534998618242792685240302739911061999902477195793496047841254593450686858817206991901755176263001951311101750741443357293070386118322892601941964092426082061126118333231293593236793301682323056658170406039557168801184635322565883425279036056520801374969867573624895652744735226699689507077067951594814142643525276345806663595572848675148247018701812723681158468292797840398160634670395836555720040243022155376419879045535726742273733007865593881024429229085892892098412424768193577566207105032360356386118006468338370524271804847535881522332063394660742646608329185271431921714671404820420827687832273824748774748555998730368418016068963358298282944617171585672472707363945331764090785098840431380713520048784516055450715467359388731942048213892242308038300462584515214439709022410629653418598480730061402135737476876573592494601565319107680337388508644837861200019534514615627404975468785854798350369481412612058728203252559019184414184232466854100845338726556125194461633864943824233644972196837649198340904249268611595878825098994660375340697399537073022488612693706401917081375248806247958395676057075449563732216186418199184726834032187258399569619341965317722675845222386593092206046457418377836219491642664718015414182781349196429607098504091395716589793914578160086432922410756327095199057942262695610358656281986512540880190423712862238524565126926236096426497627990848273979343484183041369877188141985391984546779124056210390852307271698810412096636499627320812799337115848195437619213990370559368038969533283715285356425823785862351108714160075246152299478826099512106571653834527769783088112270572403337003868947300644023020143590281302063968379631643026916379899240423488438236906910274922908711172635255367026266439746125652619705088839801523047529145211642997662187325712368420419956197615243394204693578040243150124457063117463917817908529515353238245144812397334183971105374330679824033877042909959704326534932609494457704516271637489077096753893838360887771068220218782984294381360118737680512188223888204361674361498826401931431842842337277423549933728684891503065274110303034803852907119965263513391022464909306992332200190909099222918228655380493587523467649187556649976594480492038360945947149501807069246518122012779323819230291981713104325156783385356132743633388630106591441464500826305303659767551272594847963919483795514950537254433696340281642060945403281906705822874356576573314704961054871851329790768077282412303224570709002915992422329288007781957720600500998517239658011429703956784111565744545118694371469168463020830089839541720536357881876868468912984598088988155762040499683650214039911326555501498122747216892763681268105756777945570579322098878586535087225428418786301523916196402517089252650897096839752890494390961740159029294505352827798462096512247651675735710305185929459543059130077472759715125072664478042756959606054850378548094187339852349237401658344931710052190538107971975709330181149974857026034229365279629468067393497983809076324910230664261776531992794325088974099374522468071146617673808499924127160280313401192898611369159913144308369094207723514299112763316919773005866379471561439285869582376070422675677284408668848861333378093142548834204387137349775716792410968087623811831989254554369932874843419663997945728975096720174861890176328645271760675863078831649038272950586669449374513011502904779893667760922115622948061178735939529642741728916578705633773451664455356116416003437383298151369728804866040846284395841838422804579410003113325044827444006416399810010591646553552473003761306183911321350857407108818779535607226913616996397886951688438266372710289292491334151342325846773539589758249722508973167546232483210829994695906684008859460156674543753772447455842807950080107793010790723723825582930381123154068571188696179442754728756433323569367339986388214171877113576682194202258308766163932547466020000327687284618443130296424755111190383134358622245354554487845121094374283717476317193149608011823882069538826184992190242010318363068292190399825282732763257462010357275636607706419562930982397983231060200076654676890221420309395152704673641068025830820330167916487552143252695589551168003741031218885282965680868978444160824263018999192121076218995003924020765172229035830590527717872522927322567077368526133392980504676263765740601604764775362842529740604540006362749125765542026428428248308382540875934809606181570029216167892138982144428290967181876237262053026991448260246174463502877315822496714036044896360620416179415344487527493311858607770308702469667151196183545667354894131834531829843886266747480615804264793647890960401645229182056778192197120908471953720152964101230248905393470005071158146870912598480766886925244481443536366588025647889538563399172406510780602237022593613770802389417020337114194067724189520361382836924233538238734137627550223453159437531677402828958074481504604208720247360309060770517299024548140350951983074736659418532057285058025135914830164714232578511649735205615436102222141086536211990058183465269238931730781967246973114705385051443433862644712388348127896238122695342382028684554514539174905608095299101090212620321084668302239004984467880314793981516762070001640114130886836016741912177759280141818607659361360975851054517740905382615504809699969902269513869055306424791561312662231434989403672944339356238754082203221858014965235946786211280942417626333257487951562047026911178812149684042309306373213573149364916772594280856201992398160224452232141419391289453347520803870660968785015291713906988592887913956584309853264385902219592798484220940047680971203879726171432037499775176997061246130777839862674568380819296465513323476945477189150445362905941436404684039951947520548425565502993164498211990843088712166145104078135849447896755306869868715225045628343372330764377956426154513159393294534885016845070469130016115688513014120311074555723543756496141333152719558971738531756217229071954433466657984354819921329370131255642905428090632003187735297813321013501673263164847216360283272770503405240015149587486332556927006633769070833309142633736822888087483010316462915794519269046283541257897486880535897721090995622519558247248030106973574320864467001344771245151376999492700041928058557406610842471952848424759656353634295436903787694827390406836391841712721798789019428234214198780469373773148668270999265029859773810446103961301955855272291133541149943261055209023674425785388197001103011272515679699871575288860117403464910130074023729611138287103683603111544130533991997674270321932924231245265764223183944377438790256564258402520960208895867511154640818378947509218214676936534664613821458493366346077600344824630521362904815245889910455813784636566120116319147261591498588314714743846136231573837765611162381574435483495509418469651935646165505362343376834731637874534671784692849118101699049264962873477688991682608935387888538454159351518456222973859192274270515913651864830909829919431338351403952331331514732615124635079431823932378858696833716553178042280338763918688888726992889758018512682020971421153506435399974849145642474713435504528184949822443240571406286832244629094001768540279282802844331411494416234161393264445707055854421951726444160958804378275361885197648140431955025130255294419079646683619415909023277964794985158315395468560110699295964749312780807087756205296898285845732741791493749741890444083400639533338282203027834954390114913522420915614988057269026403429065516148983743113358784148310172319847408481014868070455454351551645126511080654690933421295203575019581343126885468621905483771518677442068766702590557459918117737054830590623517923613424639793683701228048493757022014475128024147889477852455310854975198021746523122498416500170403903961967043358225944584284564207986573343099697930542586047756459968251003491164925625721200308303309681865101429709273248478451214476989332729639899910495610742499394904244358335450542122015674717119417760980999813070932460365810585709192340601262951225228409070024102022591626962994646136411145303936324186992656552612435692877040535368113328537635773422319847371237308975794674947752108135134471538160794599277392872552020366556276322941864485691847565150500049520187469835112030701038136619359815077379951318837416857133166107836813006620082542931858387826810579972593072542465133881120913275706782301874431714133068735912777562352016834740284005373921121591356955613514752309629167969603337367615413576384455650631019235123677025659515211370937062746987347678887189978962520727366700670621287613120412590389489339993448621697768434082200377837100340137744183089426938354967893437738321220418370550790114656159413941818226004531860381327310423997670463989254025910589918385857359264769109118561074563062844811191454102573634970266977487204940842710016681609213355074399248687226728259901740830394050277624871856864265185707917341104132123350539407460599452264691876029696732863997822857186287089700342467071059130961991017111343057420687298802756740741473201490909884340397001903811502017517156357294673176208964050707918587048282846215878803931126818228348516963612220376262094744307112278527611183621167085467100384520252174380232604313233921856576206284393941708461748301223037561667829298768937100999020828224201779004779024410600056609438505346773462698157575846073155359299738445054017961368771827598476009047336994746455552523534898749497783129760421896262227658562846798114009927044896550496408290399460535146758853498938704202807288629066289677934828314448963046056655323725638611433256203861389311126643932370427473293605076660747493113560178370118385212996362426872041393665590431614105577745078758353778626146231452366383137843436635856277774713958863601337134996571950576782153529912458994954659446820498092958245791172992750522192238598908996778161784993914059956115670094979202272246223936937795668147098802487863633134481873621278234188294615095380652172059543274941036285861107640041289763448262264967217485485153565729216941474071347954310456698493382923465853982017142936164120320516144818738717423410641327604764144238394899870358372823263662190911222702457034497815078764970699924747364009976235059968302818116909710186393230347601961041784304896148119202203744689617103479582901316811959452467905612549138226059814885476907317996337809761486687375073006853892740433550304685234737124971042742785992989560467393458935661089754295505762782963488676421102693961240005818506505210872964730779810890357984046195747124825850478391765556193744614384988087073308249067002105317014050228483844312650981441801017559663648924329335988021599696620621621747874407369761909090932558314868736397080092308241316642910423385692786133163749956621861691325669556261636497399959990726172234029575435650385603631581357538949938957100086779201214828443446962622111964322610259250659546999422880815072311515336627897802003888941943428355181244253160494800457788285948808961332064628573841218713391582402317332554623295218971950785439221502939071865811414158782892292295818950005303410620043957032993172885333080464410512511636683402458641151368843771155757071766143056076624513595217064837502144728089337308873966704867930634085119562525168231488763102893977061228289842369846526288968438410710248748023144561389785610172686485496468186888837311287476045796891935533004750983051255563811810893192890978327435351943042480972324580460790317410203931961571677509233702855034054312499113823835493940209351693780556444177341584401891060343170931439712492406003908683157327925890749859971652098524955961630504428441184243689534315089161295287908377655840367466842835541768923797844679450903960065029620030895733510455906008711139445773682630138371134545344053802773779717791088358195280787968667161702156751399287342820601479601818729767336099645079200264729559302667781693946341149205614972439929012098810240085900545127830044405651447005121850844877231484880666712264831187251392504204541982358447281259105084082366172381826454861949982823733882229388709566886936197128150774782206375851037227322790255065892889074348278870442303002502112403459073324070669680607941191574650536444404224163178897313198157572611694729899993562271429312148928130567155981492761487961338617912982382819447113165445186389621147670931668653675291195449753688918254106995956409759237257303015517671683594796190380723955836541642827720737946293761825870908215744042501003200537698688447220291289271242189140973215840473909967331796501963616922913662438936999504299308787013452867268201088618216354053664565338295311243924004746919931214041321489833855033715409206540284703648312839594847141114418942971350192697508303903673506437048374538901533478944750389906895676884472562572493008104258875031090175047792252654001859961271746113222287215541740513773865209080852033147121201976500842067170227322845743240129717653341714312070414844175507474415840726156327345677966474225186371886952816690951082528906844460613856219014001559151916233369007163265079024539003993276071162490738808308229126517277689515450531283681868221013648910245372805804507751499552859359934638402456457827609904794146094917570245092317699607629274394243628759354213723778108390592913841225977292634439969774346203432468938110832989055442617283039047483897376950116409408385292065266990282118403527586358818136374798493984710782960812403329896457395315482929645901905768612788090936087473380871898387564643315270739557036093296034377734122621059353654242225294956061237141034461590801861642829389213928434135898761382095686542511303540414355040808254820038894303157933639496202701486081197920821896265521731810823260274035791863492308931856037178203219472708265875689002614382064145154135818252404820142599187700132305113367652400786870444133115847643045672180418607726032318335335968299378455132581898543175066948631204369039488889051635665626543344938883850430780583059724899668205087717726992212372095673952639363600714363980579856156016006589699226315967149754679624560186378186250226146196200673837232943744223963135759754622925815985227683111680082296317171592574260938761941561492952867120679976323578287830675009077767407608330712417453591413808829803224059223793113471935689282042692882891524163124206457630286613334424791055454323253483985323175526778498043309645498983875839984285993098056241115844943556265634245165104328187597078984740518656720770471049514174914919441059496654930988731433122328678965042659222620431726517921660183225952757932637293859187228116895952877646843499525469246630780690196121276717009847108927994013929611996816802685263608153307235677590344821434725486077745466530908401920769286218194971778918548612917408751471576694883313404260108077731341497362559298014751928935889778640926623942065669105383495285262897238699125678466443562373471977356460119702670216108063923155687442692175393824586617979244516380373314030990669647028802388920181288568931372846892860601221144487036682357319837738859674400958756142620622137022794508091993133113634280834003841362904249549698564115271817879201912918322789308623275499904091445205417597099552455477230494785852443006185909378733102724606175741682835530087559929296870126561707601572556297894139479950516987188827299621963200023418831888340932146289202669808678145188394323029638029457084035717403034292810690610900462635840406665178487513663101816288394082342368039690169511495941024224508531789305428344652786618056605740863003732380331391935001082701502730069271128174039949703115075406290329512638106009569123657466730621354940874311374469591851377346513651274281432755310560141481698824390476687941060756958082923228895386766152940017060853532579410460706172132711100248467937437480055191223518619075147490834284647031556623826707577288421269295784385630204790464582295937630068634295761661725010516096388589494865731602684421765365352139265549716697993309324676556215684174294378135133613910810861468925692634121843795588356848311302816966693445052490490647174121568542431900705244999617118857562691351178501267616927284130017834414639580944049875698587732251966858362276752351036755784002893839530302411023338545983620156272629696642292005598587643403724809855790826353039920603057444828546229078191091725552260959581972836360117245726569890964421296633519865172072084112724060342988258182715069308211000654997565565772115274066297714122002351196061676761523144955106359460797898585106328802753268814830648309206439269301035275621364815323420504391756662823976309004924044238493316279727799379982267886654603306398548241567081547635373989503317140146009080458807118465098589018825142795632318486237932473990193258152530305284610835392538632255024397781874485199492073243303934588429526810351812415822439411022901339116539346349828064054164763316797046346508073789305229884289910745683459942229597457028283984258230694429337572872551299261452600249898391109179920257190427080369156721550797543406835305021358554817112425230233242170789327655263119738870322127391188846798829304585641912010607267404061355622567018914198899743965971936940128510908237114510836658148475509690310884269456404241897619210303634549958137626560932077788521788553933691584046112214567959329484310719853126841624266505876665078324596478471534944885941771153321734152279183165959948682640350228708164789291176144700191541946669263386531405549455541521010700196800939404641769937984248751112404522421586101026988535360865122601338313059799846290631892238360158809976917003484158948879917514734018890527235897804855504495418261737022871747464090334579717202763804081804718808837704731415166034897068484054573401286096585921743277154076679856058979912067623809529615477683390546786151469180360403652879397663000143819464162885824909294731090379229326938069479653437212899509489311631279528023938121587469031417364768419847835077702594744191494402179825817351861709023875218207017929320240675819994447465504382967210982017311100863425359334947870368583148456443807416344037303895478233928727759681095799740816933879448522429044597690362588938073693505034230277072758832380612156752783626569385351353957314866402465728630184118558481638927642214521134472406044001039035887709342347537178990256057752669484448292333482550916107263868655450130867837249458650382862394709816908733264658675306839372145969578855793119767039524388759721386381974625390060453811884852306159646970588723531744059932214915373663495254247125813398105132242323408157682646847601629389401267025715984101016109450575961443306790195975100200883734343900139568538028369399061852801854122113860272097063272484434331037185704056665083399087432780057766213958653967754583639025744691580629334314683284943621737987472494989569769344185327163585117946809977195123820921774379052328128461803244809333092549526380675328380842462612088340494484669823673544278418778334126838545307364709478845639137357625317962749526489629924325729281690462481049911517055275612511800297964906588983371388941549590057678131959139551167153740019141577546285793732555618545814521051871332345224478914555538739517846782719752268910540542731196147971039488574524995543560187157846224722264671352933035038411509903668082964472260262124570586204244599651768347857169115173858331956624082778990835036820317723801823555214347671778774369610053341114377895918015596619046192429460638146320574289265215420701640655374630433372826148435732876364351739524678926356354704768779839168357889366666792319428533901945787828428052745900149324634030143386582353933954312062434180051454528229721762232420880051676244925707780628338728529375419562125536162206652440841454996718073139920143065641018584059320132191782823447574374277740357486912161687738487738710691697307998647903317609977561608647375129104936450465462424119495796650176439157331724690724161881054148008581799917118232064049808173855627896773660400777810065413262743409469761321883680394927389270606177049124753211181048901116196940549986553322143249525352109312088873874544784944273748259779147328371597558672102862372070852902891779855239977349058780342887288536509261421889615996726775427932662063113755346540921019175284418430905717173941744262770362587176705258640191856169356274703289210549155963152759020879509424853769920519189781110592718131958399105524651164956550623404934170784893500789874118568448057236195610496784016989634717008729851934444873690256199154383731216977975070029203965174633325197330291175214253567392469561768001046537428473499344177782257232949239494228218000747633701417296586718502270332714858230788550462753622344283288069503056378501076301514651838607963668203049099200514926877174486398557114479481136735424894864439608240155927885866640496087686138128926791197382939314404676150726228202636806060294517073922179713471140126246996423437926561618995288904261277819887728442691974523148694554605743204897995878064045086116248825726707110575496211330339921347340858279531984088649377740957149012039074129241720324350999652401350517691665783230032870892650510170936720400864235289560912745638149561301455801284585272170160878651457864708150604196225840157748637356328710965690788564754793201690009963473625435105886278616338118556653301678533348620358800076128335809531670132613455689292871591995844450266230412524175093267358363538472908418506551882691684717325530240230914205816109537933609472299101803916203538035430228521951290911957993523186523246069405302543759446458407908212651786169014214929826995498544896163263672248438101184206013136858778720125152806592671865973287334092926594982021099414925931804921801745350531472062182707526599038834585932809495367300729870723097605378090404749351122403310844059478753637892848545471082697411238794348085687019986039881742447437478120283773914844828014110265879524347308727093321670465351127454706170073987515291850965593141459771310073744141939496077785829848624941696192017011094477432297261551912288520386068057322661506125641184107878869721548872472326394589300412534641979550920796141644221333828189069644541484020259603270574311122283718772598890536997687709562671946476577356870685902342414635749826617612147672078187454309099665202938160511432865151302630769835657779132549467894020263119944284535128658110094765108254833140610815276882794288143641168715715016791978357056152681189425888735776769560627950650102240465418690101746772610198739699024951561297057307268952452950046763910839048768723639728122299256184579315950165129138853189490739385916807072844728444573124310086650703514781712941645945041804604828867775409377444929933870549013476741784789479129556771538677008901281082899513557909685481939057605030936491815918471247767742105487303719746032422676264182524475451640401942220200008259033110996579924055135277658631254171813287082658032948698552391303280110672543036396395989331774507130737969766002120809021985679032127494576589919528777793409492122262656878064978877301130594240803006523206557685068031738942855388344152240503656768882863163978044853537131676447729133056172302243032487203338121164367979843119337104014574745549822324189411008516579307060210162034963843442664901804142748767434052929289147923086206914611992027072411595486587275569277463496186612963063392709718835501747585669403722885546892141196609440198034143978599214801384317658938145916503682688259288661768593691294034637862376617757620204943076598096614352830147780229799034438231297549024800327008636873636784106678385032010720583917139656246164893312099098216026936661095564139871844201685822910936742387806371732194766826247774498833171510988773835113390119235700575408527450754591255747069440660397892095965605464390276339745992806777624848417285556054288647843695323983832900501273222045674275460807414080102778024213221529798856092901926685552339025173924763846116275630377406232739907097200659484987820435680474877481650404290870116168204108379401687587852280309618390490337404334907698788731807767483428926396739304334479892707355950833872287583162451299527462036354445615346638960491819321270777726959233356633130983025933249958548402904205081623795039572358862700179082635713548931171832791778956891651443875397052122359054077107410399282104482972664077882185790532793336725792473743519144539387133881061573435786927246235847650798167862664414432237029999352176737144718855418313627877940233600348234918312356199520352680237939419417980228678693861271575924906954826446284079432017492675358433246768603671312772514960344381729292521288590116285354399220308887534837710556434900630608940087747678474593712678098772212346257408049629990227278222305175474564725032111731992194937832709701154945145563172438098530645543344478448758003197266610342092829811340154897624973329690734252750901555153516236881676323368496180767310030611679090885294840861570409036348923400598999991858201435608016175487980233282305630230077897991640974386729334828744461890400113083360982495622010409595340167857891220750651077666578399260573743464707652376405107308437972451212558313810371555970565865430650358017336379522724591665712964146768550097670378369845509494816699860955821042433238968977196589773253449935648014676808424901002167076669184903008769413749630053390957171626284439920016841788866294539401109738017759265553079513150012445920765999086444317360101446305244201750862664315678888120399008265578859890505650682731040180852450820599131751308772523501508795395842611382247509988569152654859693818875955428109917654381526663288043775250886099948307360425820061954536543043774438582966253282209768966644093191271132449601930773828067042274008541406388778173989746749665755125589449110728738996767853194929267125998117078560277761875146491465083048380732386442684908783099392181556756016881760867411384102981635662380834776405703214996010865280873800044279432909716333437856348340286353800304771086978667222315506730442935114662462200586685814302111157343479092449990798645746846954543356464015924757045495719875620706185412155838919739393232285645775675931901120336442205865423450486934156675509095298313062805642970638579005680679451914045967154533513261085636080291971672633376485050612137352189682167726378841292600647698585677148648558244814462486334071584687420212665293999439786736977671768633361857220063863149423212243167614538632124326610109875656599370191291394542237516230068852534052156276690165067989971098461320212939726556664334277796777005176478608790966284726459000933007992445500033338902241104749400609405782854933073993861023823821666618260163511012235021948646000329311146090522103913094347238151780301075885981916873661390515102945227255381039235470579798406903384305209545932259441635738384260882573716534387638234369254409300695151706899831842312025424453387747195326437510578797335005560520944406020242080452834643765790271847919096460392924834149371397663145425836766892367650780462509343952016929152234882310990082224461976207408855718056865721797953338002100534920032108362500882146808493341683986701819356671089607051131482404886101971558496337443445590238747682367454969125532651510869723648111631049130919482154323322023828649164814524099153127290461362362133354566078255655258051450949142153161302450435014574915809484139915636928976157355156203570740317991922776624917812457567831462240405323363247938390141707506381338654148100369489878230133748029775223197655989797193834420667492294057370826166526674558253132535147590379554573649229022440648012964113529706546868900619513375364754190546604721217739103514529781335600056227431946565472588509904072711730811883169635411155082628092719019895901047751070892888246059567925055199283341143472104173895223221607037311767925815892701119697669908610594042209124673676132634298214426876236434826391521531599347516037390853576433191634468016129362981276330308604642767474049182303752842373222610217678327502876707004057491238842745641087416687049346866007068882965906818507470864222438143179864100013147773332129066462219053562499253938790109931716454636569128939757735285420524820675718948033217531670845166768415395872644454119651192127475838892721688667978204142420372063123700498596366864244496664032032538765566086077941739190806614995585341153522211751313895807932373800531705838616401808121426772556128969750001412969934087011800569967989388349348950210132545673759785895062964818795251776141168021927531243247085266201360931086520294254918233115947849869729492748150597493284059848017938171668793253245648104208787803441362297869352358919984487787989005086934753093928090577940377181607994683858521540536544428836351758218969639173088386305294311719596154761434492173744950464815974655833183166949201158266272086895026483383402222198314677904951346290968360434374521865451806802605946947020578920349154727810481029675714927212555526118890955409712437372026493427944411357048278191865277794733812112249504061929291163583676257092807823888464136266973958800683405117131444348003312025976978638664240442883926831733778048530092039878773231813812941432313000936024903585140925727427068773360240581878863974628949247094249165198924184189280045412289565504784672066044412790628829525690259581458649779905444872889650072640950994726850575332798780864497454866896990845656325654570206301655773862204582176476855343353646089624707965642358083178454053560338868046808939338754051935855577536663962516305670812813359749298653484990716429965539985232168127616772751746862209561553141272748463751346539907579159000674755308357200216400551846402581344394710167333057369272148891258536594232875606645614798348563583416640610807785117043079831216386673441461888746144237168434191678585559313979244762504859799042746382522006510192011458271891810936455872352003312302342676176453612136958503244236890293264726550540402211767918817149941237433032533707907503443514485119389929596567282575092890517213110359303373670161055540109268857399858717848364795103753808717848623648237357113830940385283325085162361543914812520607113850076280825534839343093852143987245613780643878930041983138364074821191425966383249493699545963968691375142189439633201659396407307950517847132475317118889183811997217426602436473313179920943295653414458639343440582405137415168797954517904084263682353657998092407391641613986351806692994945702110795066548590821917509992867435531652230395743378705392338769625879734398318902678125978090054723575377809083364029023551805337545977328436919284153123167902381741090309160647617846455693040795144672966294007263925371757652223682357132934278915980429662166033039266466552864158092682975468165889758861131054425148332203325317564572607632558901514949242910203851642625387942428349673417920956892044013123653027484999962689381086049658425284607316037750866385743363565396690517269369446336976173066426891289147865676997510961771986849000406557268356841139843460980797069207972669588230059398504793803546478501689846755738110075091554328183528613159184076216843244120464716976663191918111888682632429112354511604296566475280355235547333120251400956358871297141182884986471467730893226217156970543458553408167102392873404479515981708090712221134950228718679844684364422214772997208859007666302223669928438506720584529814975441132709368287721722464030108543198473457198990350459053775638713611139275203319011785222662053511529476172907363011065744459155590068808335276376253774585407807924321885827814908327002489563741101291627613981801762124228302299158040015725530978164769165320949539242685400257439238679744194895205003373122750329471757147744469218349832574007033406792687681892198758718815373993455609263524711480399595142025426302311964748014064097476310555041187508121332555217884305767331470177889395061164794275072515882305572863984740278783231318211204524678634414294266453342307785256263781712742648858029877526806467384123025694643782759289064212714303140211529472924127229693602817655795936438387787351546082179848945700122332905689829701542278671730779532986735126849145815360875094759754700191478945035549157145368182289787571147563084932864241731761701149284420187288327745697091370425789666914470325376255125560562946235244502204334771571045066457249269579553819647207489761172856224594519423518509237107063766728751771120225934560470251778919857865256432088234676041058077850424171160635512167282384828649961492314192985242084258205335768295380658325981811448488559754952411207911751125756656426003679257006133567794048111245575675834354690873774773191199387639916846052907693540703498535669174001631324033452607146216760412661048843649977020269882111291043383742672287082951255660806593260995199648663562124858551526128151169854291713624082159025361080299862941324159224196056062575437466261499237052609303121023350360291182013519799942304455251568275569234835695210085697162340988444528956855064702290235508857119954219457688760645990260416455892008110539190531067775770332710625762675265328996751783980838859229162060476151554919995349542334353777402534815484179727547173384694664950113870051647364677409081354797142690203286815577319196370108612969301611554822415278554597055827292587836085587256511890452143606651960851298935574245155969464003893906668688634063109281630021185705257262858011774936565237111416472547369274812834199347427466813685766052376891731795983780263909660872509002414761599569781971144342032464544827181018543708116351980115032033805261949361702322550232204084053743405660109447904146151068758101004626880059619213600179019820396631053270236997290404903771983725692167885706309221871446600880404117989353287001967944126667612043504609281239205914296975955317177586061439683145250310873543522184043222640033913356661671574796646069686531374229433024950593122967922291943891355361613201488168781447759400337333795660399095996447620870785149779140529956173865838633008444238159683406813200451862586023182956540495482489398009430339181599239288870749647473415507065537965758988839093113289610510993566419665526009321527314882045512440058996259959239607882504719193314289313798779193296889023721345783980729573724390676301199568638565558553979931054985194605222227239444959115009493227027771956174106348374176232840667129364127428895670426871508708270276738870368393365580475238187485699557822547567121133610860189308786522357215384890674159469996258676850894771095780521271005163474906734562278212828814440863172991264554319062466183709052776626091552662789432368945878139728001492070004037095169289055120975861553533635201777628861616264841937721040690021246429509071101693394656999137638082032228546818411973726707557166177198704687376630998579951658988255495843910464877471067773906309235694029231059984508316068337717673867419351889657271037324395799022561862252511521250083642740441584950595503296183021740926272206706018035797464361193646902113822631311896661993247733714375821007579376471759540689047149245427156754542350589978997520237228791258415318463853486514978739906893788163245629830513273698900151797505809828349420355428681108030731724338109868707363588008794324049052690168756281327704892245760205949919455224763404954034563756668561609983356517590268682876427012318113300073447984442430828395624214007097350961337564822709565593740864590134477689269361865163835476907928854744822225481169914477394228872615184446683881181719986936123971305481981146638567149755876317193839527557595091162755365097271543813731414688471462972278109683239464280367516312175275634642711530970615762839320917616631351063289292579439689736246691468637755651622861112638707527682676398755896940248544532857457826839524343192900240989258460531296153879531174013006364738726715620885447971729509620261200403825300201986505929627972571367401634579437455937171358680493095279153371834325976650379132715821946539379385385772416981360970916479402767000379301862106656128953947970888814355677905887973759045907219369157650880820023057198060117500076031591406464894181775381785121390198860575216635182417439962242735468261697739005614136140249268128045575732574455469151582034233834277511436828514208897270960731740029128176222551869428929466464935190093852052048575383372014181858078942529933820211699209492314032919028994186446301488523974097176248178803444627462116817874580993296778424321749869228845360966816825179105982828673765266147459014425373041708701907791553306215765903362406343922545127200859544698167195284170636882163638814520253364565550737400609189647955655419558149560751725181897534812473299049670049392147171254534993397496860165368239520807082377915265817413679084164385895649171541856117077367442544345643591259350283912615817625224458510760564163952573487938467103383776909931588194029906213508927279865732193943996964175037185822369448145698191087273908664618480287305598873280772748416291492109825084806586193909799699439902923978153516310574786605436456258040478829204839549641000676541860134475140018389995586997450525861277573009187193970997091200782189746056294717514761526997449269447384528652244932324295554808595260032417185984516906004782902002082944069272754977495272557647267561783887786485977657015124790250642519371033640767536318738521434266477675148135524050698031421097756444030271159930718976365106110686887627129122304976955156771988263340324618879364942449306714951906344982260766365003421767220495268834071376738838346864576900109822782983593031947331288812881379951688187299179821533626835908867570409982475945658704550749744897812850731282039157542934521093265490428404539578760679215082828338104788671408564973962580409383298262810492414923359064778443261002331537486765168075465191978190475461738042910015832458675262025846237693467919552336019379266506021140324371274882502106337254711193469631516419045931650551329350793673931532420978694479732581142458187717245255250075080908171696181920316023318278254449914438621397867772224730903574084489185854649491456787172571606264101146996705624587643279664888359187477662132586238408991569246595750405684850965904027352729491899705246677651817733396300242798663163088854755446796215001637100427031442279334888628210838640585742157308331590584876478726918728765254851927689213820364593423326899977524045343124494941500564887509995607837086716998041856700653392590170116049405576189238011379671755423323869960918699344996053479635854719153288235973666288347642242271663301986410689655648043928652325703416850620309739121895395773824567716065101963899508459716563410258592464501538235570579240778874736715259731001381832221148801779429769108707112622243737512858566440470908669373108059698487384349550224163312675964967277192901210887971181949267299243874127130306814725803142911328058328758957530175805757812744553349869778249136267603927625121064093587563943214300004941823170660425971268502719413614876378832992266797404916264872239857671694024762206338742189730349152266196274377779986243894673368550673299918415865339125822710537863368819567100935661115937385913042576196341816239512061132320488483421615256069763581970883007165046088861055558312691033030124790615920229257113207407753892535289057185254921084003672068196614894212825380325075220589304238751771847230575221188663952001658443783004826880756390210803880313750850664096027432443788567251889802295221495167984223752230473929740169904541174853713207559822963753901713128891034118130670878246671027414032954968199314671943218808833143263133494949255923597061624488673895574220338903032621883811470086596746249168662986754876395784258107946187288902457639975813206879791733059268357548988892751826142020939556402306396914336058401929500979879801837174142859924868656472663089215813812051579209743356722683405473754720811402209423803350420380683483818466618674679071145675256801528482490885810060649419647225607394173432386579308048758764381839955975207963165735388232400804325362003453266186316954664326205140164086747889808966200310834036405828337843743661289039610502834948166081403843551294167327294022210024695538105499114105390806951552094005865994315760148283901886473230148011289108415466566888974524660883508553210789119394891162177911108868134420688946676427934990382961696877193753535241398799389015154570379249765300178540512338209913266628801422949875052750722167699641661230706520955259897717618998086661598289591229644624739578711936925707640030298959508354976956831592437587910641629365367645632637083635886394443754092620371634034679360446057868166672645143441386587737926650546501237204676891636909045295484575353611090824590705644445963746300832979708840312054156335670426452871324664803716158888796346573842105966046660971368038079850331222039343997651825384053143753476695102822661131603858851157198069248718572364543820249449883839095680400151848431328514295193840187708953914481938708173566545582668962956250169379387681017598899160609035131764513704718682291899553280596148034254973286628415062601582614881648575819709848750492992778964925060135708499559818255517139514566798041300191208570584048851968286479577673361988741657858305128941691654610198883888740630222181554556797806312280904877226173816303723955456358361692460195365432940803904918899216025494429643755178181177837116627091051290382111096381817801240508920576501034830459417987297094451896489954054102111507515754346175560278314468870208378555429923247819516510653905645316544524048842136696526040807135421509316595418101905775916800046046690706087865401041480968574443309394354265811745641947597127884635667793374332879441297490108192596836476776948904292207979359961343861846474859140227524100165506996532387161477606113324592405639215955032356926822148836443323425875338002040587137482891381604341228568330481454824578158104974752461213690364490556974227939886908674214503694232675929095412963378897695984076835185590827427905118343924940488329489952432394066396897771389185895014448515423402603293667977906446550972657780325647810140643987645323266700847430390729026195280901495552262388937972853558524589752310130609597244993122186136332254390066284945208808332341058855310465662109000620112355622386646589728908601089681219786237442308617293517143125778544674799129812224864387329003986425739232556829757361629989426278285236330528780800831879781874318054282175447358251347867581331661400619976439407152422162343269142667830156264187215484074960228931011793955868146674428779857413562128604782004374920038014952623169554028568237012882221126154393114192499062670843506891691581696342173281896808606686411321071871810451288382094043359725085584609575141311159598709304747152510679059466959473409647519746514124285924638376324656296359221057519108739581436014117388086317009886758085348979689427717080613301504981106329343426394305240689015665617809001920518885206079011663081913045443205055848847533118706849611160019580574674952954861767171289811075769064994889978269926219783449494248176772740245316538804863282364387946532883404096010812017880678140297643667346981703851026510894809205087934268175295242000189078954950295909199811508762562795690521588553245724982423785555586945061534677558764350338236959761884338968176031853501148543274953324726900541529336271067515707186231788121222794402067939873513729732577747873842433126831593056169665125380557706956569068711204046523347713397383163922210698816672768360580178387926973393642874348446941226280977349664790311920786152132059842172269379717187677882613599281687673092096472158741282995546690676437863633125353688552807571780633993803641297008003844523054941352246645521569925385950723446019439247698183938359346825561053639789428361959650559976058881170633601708119838981234771004749689462849018109528581050303783832297225252579368894506955190384141003854390572968313087541273683679698299461401755126400199559846400745170063166564411026183681438332546426408479075666520613613561901291241241002156826598579084128124951361074639877858226118626236046315433050673552593066201259461240372488918183520388536580394096996640435622757962556721668595834950152186342784321381218761414039159259095162203390458452795330581867919574309353636183739500744796517732602990506203204290813030926982377654419780986360719622458386836101875947067235673338952889896561883024172262266370528982270095914181452473956651074181448265833614490141385778090404036530720297401058402265334704919997234742497642888356608183627752238960647834605822925695471752629224128048619038596274698153353292022233735042907820579019839611576953020079242537880186146089198814239123250953520025501693432258318787274246001247270421786154529930118557272632134307886163648804102074265087742991296772653803207009169210994977469865130830848349723951466011299687486434296626824116010043567945190821338235198243770579300452087480833552403219856282462749640939645538402073307600753164078990186319398391477289261558602647585363364078823660472519769334284208633133918980197726813243089951242710448120693131013700824768373427269009878420220225958198133738137583901998579750299417492964621373968066795325257744364553355875979077707218284142849868995338747124141581405817968545231802819008975397931520742576300197517019437258125817327049641007477675283296296500270222803715526580167914894728905510536301893877634734696475877998001442776495599143526625100374842749660399424284345178077739337555574511950225636514078323022685213318079370001696269264115955521315436988853356892737505433525040386254777337414739676419464164693451502482038661505839170724359243224020470522042178882487169056184716619132717857788235076716411689387727739076258274310893294942367570342202839572931815570910475355362456074069504048897153715678668767532423655867257028397820511154231890643814572648454390298423790280885647651284928610223398941120602531493093744432287473511465880312280952018164295046888872301180819977425029546437109879319675614540033119708019086858834760167047776380181829315774670768793481730765590323720494085981803583391710948892135540058262292448215705370594266902535719099185542439854636815772803247884667561353571865951480998576719981242221134411363545428984972815426389645474668902441528985030104388223348897994328219319281280519355411599444485241567347113303197110983237628829338419160834429568997737522506103830036573840634220487011391520645085074980376741683898076958897590708689410217401908737034377504527299992029109204825879161024564775256407376415576320374287835480405617130462430053753610806446943037644431916989462584584562657831272927541216145582298727703130861103621193015588276198086744599585648982129672188397558581867992075673204508497560146911824824524569907288702250683777294310573084050853511942161596433283154107230727245340098741206218899734357500980458010595464610314518428842974440991942203418655212590477739439695603619791202719492263185986918736346652560950415638083151128767379115939861110409847912154293844804598737739887701869034274695445027348070313368805879314370442600357093717381338485499347948719397447579882551707625258680189883964256230822025451388101960693345507316675550993545324777337963789104036379583623450709080727307359435615673406258341058982588313369451613334154871185252289035498813042366825234508329228223698920044192731573500419217724961666205189309906657288999630513818541133216721413935018315626477026444488039536044000051518322795075595559376751531785298249583887972338111351424483967461642087871877384848609882762018229592680762912436803073603290734231134792909519681193214395209145689361010706984413620635570709691290274429003568346973753577947342365817095490138691768745524479879972734009709762554294619896609712270021415996108926142060335348577047878731682192366849278695157668998897230658823190786561370242466235550631703797008604368854593949170938432895391988989466860331955983180110094531130448722443154701867595368482047832875800000936407650790690630951913551119283741413961616778806825389007793400558060416583539038103014326702547146548331101229875092064221096820578683046587599877471595880669560895609326825073892947296658085239116070786899351251394221060279958079520854602777976946909247685521836648754294004416392518401273073589083938793795858139116144733338664874825355452665248360333284521352333989661699569447789070189865836336823270900419557299805942306156708038477625699660561890603963604630069160144059801799960697773448219794018603156444952767622614515204265421127575095925634238831436041331932849810662295101670808312677407651397373412633287074206555277408483927889311102385546663861528399240715159272018383780719195756368705266419141608986204715256109520648733136226487506851182178141836308557792331135982392302485939785473896508103078172356651547624311645588376475147845900089362430695212722865865506970463366980823259825593246971390499594465518540680799356344558467889961721339932293582207313579054323673787750891659181913485505153691903704059188227700258778237883735123628352827656062059404275281467926504021232092689957600274133391696028505834956838698445897508030427822902498485709688927252015633167527876348816167461601550804849857169340383787914786967079857729875495035237429882134253675012435276711151555454128407053375600856144278253868369685698303114028762316201736215031015737902661696978657351859737511593327887013596029924287963020755468994799901416919441424872443787280314896845128327734732183069524515965536104939001381799384719052333515986714663716988221073762379634734652044642832797209467099222944667888476837050788961662240951612051470379439840073175684122594415950631160629470410759433986630962115569675696796547290394175338344171570871323361381327021487915735680973708796638366509528261514875822692786708140914360054496823917211302650391921277500646263280504177691502908312766453966421099897560071854400045473019082483346014515677763059941259665157970278656645999808989797163056744945046083369082126999079713137346846920776045535088863100145238876341679344962435903579057975481742699285401015900710851704079201620479786517350666547909469315601686012692972273519644685506036631426317888171781531311559043634813566074405043623691029654279232750885650604616244673730402746652055162367815140491141056470940288145440824881024315714115788592482005134740049987454944764453430542787429012966197212678223654004867058869934433283811685721607989428715589699664397704335483006959458305161506130922999217312876832323479140232409733200829274916202057876055436055923404265586465563781391884887578617155205085707281026427122353378716633546732572619236396239366050966441842001649118798221329355406050087867280581907724556751017868114779408524122008169273653580691630507890350117703331797113752919583728456762921047175436993294150114464464103246700728373162793099744880912344137592186278099847164791881602767859466130795254087921939957803232667511198314108148142092234203087294497021019641347142156350376900925402277618379471608274613806530491303260061467527622723567346391212693356350850238866535370067621136424836132821100482152771029081104467469735263466673847319983317008738733109121940582114085956655341492690968212181686495870209876687472352340495817306312126408066649280890623481517909098068520745046183941664687356252150934438761464567262448037959464716971546921524686446857807454462000464304811101628841430202394614529041320770502836232576376371897032770311806362598126995671901453595440965082483438439988619561326645154704759916958831092761832386780861817359276555871090401502665881600186727539599577919588538773431361251439263952901807115293405227153041646886194787824879601879176999687726626959869586516495903186666724530981982875640384799960347547182653129051046450672749247663163568497276979299635550067139687444138722644729714906766223937447143987554013515959566037705976420685029260036881249572654259272241601774218310969085258288358311195801815010631023288392382353515451016914655128515424544934360399171327744155513675769600187057571735823456676344730048414000478554272177772147789580757568129304608630858908597431248527665229049543424789642291455306964589388653276504887270040307144853524257606272730439810949366315163317303831836666694878976340835522044611820626937660705398132594715939464435042398875887741947893912315719409975375505874608472239056628614569923496564481640853925897736331125393031698909749507301148125028792800609481162054699411928342535936266617569127927927223886304254870326574928654177520046451718783093606635076210145613096289874973919561540608408462798709194544020409536106154485146609953786902501706940597879446663748402562814817671502871185780223400635240553552442161722002320290694729684296113946646885684681512039612698646908756876562619791865496325158304333989461340530302115794885803274608751963778583470566917954220603013242483040507866474049589698824396928166673564796691138794710548035384285837647702374158913538984174395835232374964327523447551284066948287190692221650735737652593397866113427173035667548516795922905705386023328351482277719063708766828101428700501805035361789339492313372190596153778103252502675410131758630843610598359841787015426082703432466444887395554234413333448787166887617915055999679404270113393311057127524869391327390236838092750068442150377119806975968372426255757680937909790543152000099840942325366166658756139947660483538316913618161515525905844117630705497567247222727705414818349308014869048385071622118371910801272221026723725658509223284770092475834448012995213420423730446896049089046436994836282167790556328607907401830876841791061566187868266565995168331302996736804460534590180802735874220905803507954783016735026179226853151951152081860787616718561153009902614082982701560265948171297951190183921341924480467188019966038500053242000181498662140862023605050585010736931273507302191053992801577002436035070189781587002475854677141969810709861043923206595399126901216594279437511936248459982964858675750565484308550515767415956332260291799569206079227202674415941281657623721042313767343040575019163454165383567451500628557560299183970728099751114442703377879773521430770025717924355322693097016292046612610792998757900889195362733707928414766571718366282523671710653880728279975958321738899401780368775970977753771555556526737935400742228430499747003824143764280350915265078817328890937827067168280004627920474527087974937088448390422336147726209652704623102690726314664869400204766541150085728185549664407511141936369275939732703796612409266209384227795049558159646824617782843019644166052044918914374021873161289782499682376206903125862809531066010003720255494795741226275756097360595864703162260716190812444052253030942011513697189179659076754281534438439557045278486197040503069770325180121986526971046182744815658871199078651695262785209948113799468799880189828123482708579399092055929779140973876885413724766620329837455466273097335649409921772880516978357272319981828118687850820545476104461039063860366208386983004087302144442574608060592130112674926009262366282552418960590607752938580421663165667548069552255082085187288024145529394408554509618209773539406083748338982891890163843746860025701239525124175656563306440921048768408518018062755778138899842990874819639206273080672485093131891671628216758115378915794429655476376494290271686269341028135438761294368945564747811149414892736942965600734343528414112103893198973260576593436391367057037284513510885932133434599961162624735379598380162065678549527733025636350101817070345777880614682723333768490577859329113415995637985759116705385151678539682887499816954843132186401304924685295135837291818015700475824814531249035324566660121169095086122587312039092202419893032176293688783892669643669975993300375355151226116557684527236013968523247591434505163309810314502870935859442104152223203178059467964029069267996471262197132459465419138207228344109116984263652750534510380990181293831408536315225143849510905639956150544814612595195253101481277535828417055829429064452834351003281073384460443264036702425829489915227775050641620279911469782159457742124629877196415874775236733528841519406160166553358068803349508205547164299630279867252591902681907741974101885173531926674315078199940381969849052812185655328492447014790737876576633741893157628884728189437201894888157812490524653276335132281375678126795860849442904736348641349522647480203862919506422673474761255827184830743151370749189629210626844908632244519135901377582133677954021866912715871162321539301349658547986173000788404396740899545749830266654785135768960933301494978604022986024025797444926141155315956212736038743774146561885912757267318245238320024695277149566849381090914879131661070513844198430927650820541427218633435831279517834249933107718469234808029606890060356345700909562187505716765510869756850038139018392747664253759914638256532132705562462463178225195049298619903438834951395834488599794040554149286102360004206784880530567039631021470301831651103834518753252836984472419612619023417606634363384948918545404137667475179032490315047798613023180183531407572865006567203933610602076301800163145183684037138831342051421009181467784537397437665959009129878605130859964006170901222862555822127673685623110861928576811809736105345833288652952242252399638342452711715887909235973268375303876136844622812201590885040168742110945087485409085654924398588116157931967537038081962067950955456471083412691993605847663463942670423843105027602591988581871781801280808446181713425820383131411420361664796941657150254870163236038058670137159737652747450356975863783571421909943267542509372909591914736261501731907467813094260130203787232321489220397720723481988273733368083725408478583760054866088771858927725994933807801416589527890764969922390442106593255843628074660954066628952323380903720155725639470941144652439918710639355299305843421155950044583908579691997040549024939253017773557191850138543009226137549715530916801275818120209342533541001814521914735105422676778428180295898268729781579627340731282150854367505160935860225114897001338212440161689318239697102639581207428422153456652283290900400400047053635017026795583450273932871875319281657243486238312211406356979595303432917428655342552758266274532206908364337601745724651678056310738793933565359624348498647425761462317873311484885671661217509900753459203673398509837221100458069142575509175505494565443215436748794241382595959718732340008412332692565843733650531864982235093944708866830428924464016592155033353818374870634829044376878287837143997104298875377595316189335533395446306050999023154309065599386411530643981095904383246059186379257677539549234048700407731421886732653287971675961819455165202987123357147272220475999023127467201967140923611737959438475098436945978116088700652693719819119315601666222887202714936437181812187280147956479042968156596839629424914361527132041216960711761186405717810637367054284897628853471752918062353126204390753920961650781082063631207386913581528715990072496631375152853232256949476217746014003338660730230179486877421906161979292229889959588348862890879917562969798056178123132888381494855283351560335904343208465657585054250328391325538275510130262767635790537478990132378406281303461307980720338712272322987009944475561414099394418246285713742979745124678212659689643565439222732416586190757594845737549139783904214493644582731443978824800106868237387661166135768533472382754394413762520059274236298955148792202359199913390269402290843535716896833724712274753115915527454616765953296168289121954969823376165343208526217124901448437156974826943648766824366113654009001120539363608093772557107232244629296868739653897132465364544953073938641593593571455214533384094502652408382469970704599980036611239554381472404399731475026454620756486991312195471340922403263513495482846087482723674773728115571640446997466818849446363897752967248058195701897264956539796034720360777290064137711928480542111870865104955275689820809735802296983643644412944124324581317783144473957987263262420637117469753949070776411066494761880227276553230548473585250622419684904195114076551108567006239630612944184090876045347426700446303979464305973797231770469808778844858636206393378722452471765103315298286496162199021103975129869635752978330338547228647391304480289270185662778264059294740776315033671704932600572468571910238002772436758571833490391657583883734546704216080199901677257087863335432233819733085360968580904278483638292501924823622164095223517089969874258421101241453037152891671318150535542970590426918043768282071458848358417816846327851769284629851623774762023337739381999485932214351935238172410624707601252271822851757996331257555886664621809856003865591829388635710253979044517345708270217409218247564546055706083237126393093682063972931614584476000369757913789488681599883087024786498024118294918605440232252740539894575385405302902078382326377045250285503972791462041059741130847472558299019835233054613124521201635259789940437818243518542215706090262779834373658855440839512656033614458297721301029892547756408850364824300918079663760856168932585114369211624606655160755931708992563443902682348098211635135167639378076551636250764286793619348353835355640303287960547211058774204255025557870296338413054422219815646069444364579250489089052948320593189363201417732795844321009306836723800870388588902975751775467298506375707990038638822541417881295480262166382540164091389572314659145141315480639451618140419258390295429881501759221865259949407991975097654714557623121584846269042183573873738644446014633123742188260021815666098060846121078386894534819207051190343483459354758639412863299004485673646796824947878577337497115671170016695185139083828624201032903331400595353291762811533845455491464548844213441463191307778307311121482056735212686847719829799190212557417963981590762751582591357495018713726593249723634566115154265788072619073166153122557831909453826881686354490469210187091301095813699545488511470118491886819112847530710307134398746264202079961925870311610376055513230834473685432630604544919151213675025855522176333044366929149683554717624914967164090296419058120465397369839618356576342336879732490841912589092165311643953821469855353602386462054680573850482297666446621757980711137130263959946676051584143112992206984204768926415894394629257590992604810037404884090600948362731182727152321672737880946998081583353012801206095200178908447925212438563765754857054593052437529115771097791910087445202737156318366050329701194155813805915965717393966475590049534007323501111790604440476229515354326781288957465450507160934111178170597518132353458643367549519635457005954223150963475322404531553970095784725738403722864102547572647123882349384116084766771244527090094773043892686866864492156870885363681631614180629595421088773447128964036712960028701004152103777396306955125497582397600074270523311344154050135984581891950622698036173525286548040041960168473001393474636155392865187444220455203930984644988879776495722360759956235318855163955706396669244279432619934908869442469246698443849093068582023317135929202506125272590353230623317323561168874896711134013836194790334853706782952089752293508435973541453932563565493879732140955915556624303958500742453128227956017721866688269562205799865683542987379101411021608399717317390924207422621638266086383777340670096967203658594181251565157654447153166243337591022621999646829325788267585156122366371336906247498032809133915478393376867455378537564524238695680637979617016660178255072248584227841058304518310662681705506242261898894346267929265385595765426210265371836630030585878551856876789021328264256196465936324066175294547362868361998235823223151198376477776980677949330393029188415874291951984209092363726189801269368758877884131611374768842027829706438474940940968863910668574851818388624432424835070640763866476263252369465460773331941671068447080902658248226853965325240405043526889989406021107266986980764564651669143654109696945351076567661618348995189637786823945738846640860532923336376344854757735732062770823738281720266227780364267681811799651287313631285013046304072462507044281040815541512617909961956986085871993807125336694161817610711266307628972824647551861747296519886490260324679213667246714946526483336488867897843429692265198772897336903761439959283827380643404779443261531274303372773722965785363847506014719007833494770026207175831812767325242253349439041780047922084139840503428477763949927735806141942771717967361826699586655512765723271159053258019015481375666290457499190214718501183761771359972669387566444963061348014404775312631771917314241587245566448841450788459635909834211352530384301885271158170597406129534734507135377890216436704324256824895608458885996285666195804067171009874687736634352712505679510782436021435730737840773854217448818853342198425551862202509722351284301523073985084094701719159742289482278260110266193217733618979364814206742992012527124355627723333026807159199310230734198016281814366837198372877768068436277311887978386665509277195444517110607864399570721803543383813713095657263353424418151052251189667247406195942504614970093697598562320376112748776055938493171741178358349600804371159492604502768277630011596977794311454984297920387651155697732930006956102556049550476075296456119849153847752431181197815374404963959800873974259373380441868415573344651511487148405035848807888852593980548554871431721041860558044861136204219745502875463266083430757824497590003351890777214549609534083925879406813796609019623148915523845979009573657646908834214224866436714377802967749066388592028228057507615190571011894074647846009591046142560857993736915611191002698119231283169856934985543329805607085464478278804789932619235502384708519019668660444222411031787389400399459749109716290241744826009739699300551514838180026914901024636724975282916322605496280033661766757111320078220882642605388992223136594831417503156309510085247728126322357060729448771593260643858949124543357736459139785100376971301668298134758967815887513014795617015610768593809218712065731930842151626114506624924706839136304096806331443076467648421500811658724703962099563073481531621723700741047672361246149115633679711136231436058330134638467105066660205302851141049894050053330404389052848098772652428686943358743256008069888813332218898428539576228384245025421065843168460986163233004881578746871589025101225238639585698739578697086054701593769467928017458669592207273227856294177457008184707418147694929095532930750513563078189973980351225199380724782840310303921046774300173201968279107417427535816654665325090144140810680944968215118337369976807151229253351948167591182341968380904761236105073858257760067787397701785846437774038969959069829450667001753440913369898715965654137689992185268415803661941410146407536618607959076716271682331171229002100573202588025247723858228151080170058866182858775675198169825389524962177764654368954358643775568697121446093510607871811550275186879115423399485304034139343549061847759357011648590566962791122776506783516494781740779723294331315928643387850832249307735724267058452361783341645963324525386648828829211770698075506035677838812009533690774613110028988974504877154904871072744955458862991110116255147550708549269363435114039165245263693291963426762765292215819590314442394544395146490010046279930881760536920272716285794097149945175259458425938126791101353247561361795670583224826130896967914699526044886010113735346935392644658210709868143939613069888627309126392076285924079102810059218019526426278647114414641083364736391778336642036392334417533262080717598322093644004842800574600291251744352128853219900186021878263777411727595562485824417941055819605883503102057883283927086244851231492694056130744491327387772071517591733642293836779197186402652105618217363677550363763546521584237536879316145628399177046191282230883275657616988227526229996258627225958030794007991896167731667432478427722855747297331245394514231730061161550026089108977976628790873531181309805557127153042599686263574899998104885302404699462317304918698594963796251589222468366390314152062364530904394829520995464769915464707176822505772031511838570397098868754603871302107244971697771745853402518402850712646821627336875941166303531982069602593934833050538596908621408416116754557821618606918389627905908494948329937107656665133624131298185671299816666854136298398786543325972210409320024993248840482935677376264559537955318492045195225019717818058437008227286910055159606121547730957058712267806414501598912455784476449414087695093641328727314799392232543819846926460832290583601414398393845556158677328758951334384203977354556738108042345020395059322590406968670132911585040506202586292613856575352991232908271386958373426527569531467691917634245806588843947211761122286937788208958723378640555626857501011183965169870597433460181986799713951923868998996628598374462854939114947681548763433971387537893156117736491245618963839395413343179737621549643149969115064523870296299037246482486881940111445680976600730458538099201205899201803766344474243259245863835296552943477473455231803611314427435364248105025009456317700711947854719658749620015964193460146032744750722843470449147334280064001167914221213346106524425134016071660740920894822089441237403892735710463903002646852884317960959574040083187573482545225053287439407988737188582969004785502572348324714275668897560160328853693708759054792578778822922732256999954180163761082287642792811281234798516577913793497980868809530261734573361992509723812322509958264233208778751312383548537625266912689724027597206122528003916915587518669952175184692119893525374666252727778251048541726037295807154863753824035594320991932263143094033782741960438489919718789874380350905930362307600870991247783044061332712360142431887540336610367978380624399215784691013713699916228946908344313502694039744703512805102653675339125540304084656119983417378531560798295210589150470832586204780886840453247527973581030082404155733743286526637946608515493891133393907965187590608265654650702444994134496003852175935205238943800660700245776414424985401027813619259694070382889718333248762817351016531916595794226187297356517462445800687781197630112068841028427190140434485149522570487364865639086502884467960361792079652177972565127319695158585594632455217939821605671744744871775880520843433784079951146696412415823446799014347665646015974309541736083631239531592010834932244945942200543508848544863936156061285604328948301908199762429397023877605905770495119745055227161455893251102127098811368761408227112449634932650961985780447762960403062739270608015051386827566055856890603238023936378067662802514758550538911023027770968906115917218936308176148486224006574249029935837193175546773812766263599563484675203484769453630320175606968186127506546387513869698646562363597140361355148818559184489821157638755917946791425583022913630514625223702049209841131054190620398437961786378155206970121625294335141995872181640194816674196897173975579623952728409420145670727410400408560136222102633771169952634420013125945204307813937674439341639488042033350789157473116751745397503263442972516326808622669681364340078050199590524140959657289254570300694576711259785608794560361378944728170451282725648871770131919116896901236932428773313543301078746605407957290839483219505216027140190990259406918672332299369210689211647954924262401897761924612196737456667341922996394177027586455473702179760932539384150102604937323890876257398852839771006271239549376980755626738492689914346448404756315745095866831094087232083354702842478807433499398489656077644722138971027349518996469487783156571007196162760874277964499013303090178622875067715777850564806541629197564933859098731323174124310381672892620463232798146174746192980648560264397110727747696328116111979972603713996834458194207539793621245512741765633952001255948669891134868532271063020557374203750137032992073580063190833620022430977606109355175911691275449059946833807207024627449759411238700632636519596716511737918838486474849890777307605463109039479874305966227775181233689355968073228529400506421281015864995716929361535430454772331787299103713037141789964514956369871692652639310093950630361597308042971105789717592825956706613947945727031994397644567915753923044175487401935483245827595662859716140356085704536390703956008755766054674469280545347462413615409516852550811378844480416750381071830575399117087984893974623910413854845260369618950627067398284529160503462265608807913582623996648857070793731343258108023137296964473957224787035221529786688096391004121393258137461567919489890444871305533652331701397005542473070815605899200145988859853340986426115605186641205653699149877183123298216918501870282035856621143206742930450054811451185888743054248289615875733120357784129907427159934385199190689336356315708226058071474560911994652571275831336339597146367026045302595310610020167032072994064925104778063330292628441767224609064480964169550229855813007769854670674552509870643669875561884998154430378568958433949117408329573672058758001982133439883256975268486587171981390328900460599148855024301456083934139241436553990769459782442319871148889872393717883644262414398890642507660411874995078992618604929799479657420171684537501447340561144596156574131962115499521588497016063445458557138943430098322940726550112637159929421192822913847805548562228424099080102108576078179614875815664952165096846178991298819507969579706752463937950692065976636271021564810285027662994061317307569363006238139278617803643559524789984340321171193354389612554176527010816403278428835126510700871951067135342392183564096684224165969910603353112417531354650539843285710918778186237305648412733176922826455731829870722592947655181190267010115290496272145413386422305532607641823738740733911593659902761918347581786027346664028840667264198920418694977191470789620651017022865141674746938846004821152352030503663516281820805263270608081454948479320856297541494547737650314257837272325900876958520663932813585631184154400614424701410269364509320328698747172571846610203069331789412655456651835658295250825560621678410866220535032548153510870879754848440616379168449482421744802366421473652379622759691190630280512230646633514402479782868686409260746823799611990331269995154720714171620593766291110640974072592668664707648136410848222463546719486170199048837604687886078033399950026042934151380436794378228517422976044164886060732811322592218723266432369282122458332046575282958298172492799797138835753105065221497924557694294499508135137629620782494655060173134405783858529656649848342241454327627866039303881646835664875364246332581572497786931553702306849498929120700822337105782234139811705557973790208940341802424132242093419633951153544501786203615628352382393091784100814004392050863035180848393951489652040793345302644580473115137489883831162693875250042950700291025030209993710988186900341551018548037489042324850438054539020452764631076180704766485490089209661968557251176000386544035001263451448322239680597223523529912059611463781684011583319506265685429778315112745737349059523099568861912709509689783276390352347656158711788079626125314734019085067794392163566785683050111083190218931540476107432384547066372755232461524285516726767041899495832398475804287798923763971370762534596368679757067517892691620941792394020660602310359227647252915461114646793189196411298894118113346055168784342255827729864414135628672246888420516046930919294127606945918215109649536532552068673334388410358460287754834864236450487022136203820885967704367100662190671239868118612871919738614021914645748295940865051391694432391488904427923811231254921320577197040106270227702412453519075163657933475890406455652830342178836544687185173620869021856489421183704993829016459391692281603944482507076755594838050761725720677671338517994203472457775781746161527114453299277809731878005218930133444380091395325552748468379363921645085339654498940918135598810242566887132281113088044465797682703564160965551640606179848507919398517402109142291388634367269377724831803943702734950744889216893384753825334521692694120288646367861765302937977281891302426021852428257708290448454510794680652448470854699235318116037402396040435958947082097596327105870325565163123159817467426198640568374324652774642819309506736830616002336282162631082920766765034938820927515444467189629878272313549825473655663289088308531803714162594045265147291761153996305228214242451382635887439709098651319957658123851873242518349473712675667564840227673675236926119530139538491885772609619748905878538886583639414896064630706234413940627962753098402413543966671390670088373899369999368939470806072019022923531402727683249228539900587948575357123040723849398929038474517284725541247442225233056928754323530751520817270011816899688882586728896332715354045952098286194993647140945586286002347857896835332528515571364475951646131872202960909340423481895877547905719629735412668708033677184383980942641942293646046943062477477175688050912117152584215451661520285305792494471547036255002540778858009649084687033420529551356865958476892469339582182465309153615180377858579176447594395793466464904018609750126818141936728576087065342317774502770709398135471055077766754266131276938036023488738812516689502427225596778519485659598292430391822950504756866990787950103935378193813207941373262422608049798636902674498849269999705372447533566019569182822159230045260728341547483077151102395437921450502502334669892133398909904793746034330528152066739835340277004988370862807883437397288389457152564512867454309457016181725725308252051273606471004158691094281729705517376214464104768728221818254722440061087210617331466088063776978248564358565269633280104658542502099201806485955468998182109841574608829797250997023222282735349465318066789892682209668200507118415467521458687782000108816262634590546756913992470956271194016213971416615434846766970245173216467988280515877497867253405289064246881085870021036872110410691436497870998260578738251608428309087853571001322346054947624384104668941121860951005434971121834899461188406674263617699799577553551920276663115755412872782300843686254470619664714004630216868838114827023876203945600667329349842034947633186320722725963291735521638463182739867366997542858221125982003496890781424579411931976518749266384278463816437544929333491151167100924410784778478882369646807656443948497803335483597732722760006090500503942726482425317497692884583002107789418375495417700172020514055577090596100868730054188869570547142480191792255528668767925312302052597191935281273322560294520710506781664223897197570557088290304106677493175814756981075944158969042536724028755510048268375913765175986389197931632368902583432865497155457958313863899565418803453815697299671338768218821621881216753773771366792680306739953636530093469429079558033344442418743108678330922277483718969297179069388337030430310520402026383303013473415510209264713571737766080871553008529332902289015294616683528386676432117338404228188936891614923956110092892293504460328178828774048389873854979248453070217493930590973727012528298861349758984819877484923554083540062504267865768287575642030236175666469625750291907737948125221338491911349643425293112648817291428328343036700311275941969222176507087610097342667159296357246711609340960666069814958544744414804306501585788837471493791128517518310315380232080824887805007167866853469697852787743719988194804883125306732171325361320180552384340934345640897981837082732818799658511769345141175716330830935513033726832822900559095647587140569374407174876218041995441816489073491300754191702871423980239366278898032751699871065816809268289577251205527577317753347097137657833798671134766800194977240570655401487345031886395226747803925547961503498581337727290172891598868153241542922897112458036387184266833248697848511504838743180403984080846942822591480856571409217510124014482722729104818643713769616345950443759962037663885007561849281959558889109886428601933481153962449244859394342232017707334882951358967380053837304075657735821863395698496926809386422067592772620664041167025982269333743030897274354930312187132614882420596854855131851560603320744456988981301106154368364956236067846368828431456570763733533981857999456150175455673753568113782019677541043934796901138211020377471241795429956867220418303143630752850275085722365555137619125989756474313969957254848336289044508728231334681594031268657994648053109190966512196847655309858250625802153350797578710777865627887667414443257708039797753693007462710095755245958784241889997272601199772245043990836042296553263768582861337778768319208723695308126622138633807226590601613124866625239525674579832279444321661819590577279923224702996875140783536874697314107383730304099493612416987640487519178371587257202858765928728891397188924018803305947415982250054058667501997026330036051153613779602591352738801505828258061995837273823504364551521954054119281346328908877954985580133289031336268264554757053892018654139456819712057556164010860602364590675351316219349083756256733518399651261935255686266534113039765409827140764353266136617322662776313278677038621236667416613626910259748662698277791145816838665281852900749674300157929582455598501919359327555025946181766670663961004380512502150435434287918888965515284994531356742349380665782572054636630041036205265429840546636234682207699991837537378287093663800504437451857672092939897220760180910227022759760501326782032686891360499854501504954780444106006941070587195156543341042378936612428850065831532196150314805649928261201116893408851247692897079049049412348544216301868785618625940533212933135758551850933069702611421332659923693677083771883718730790145101319747146299160809697497854025317499086324511289714878999478328605741511595159139288643306864914938192752630778403501536026780474892566160004819476744047145551707454997866137923082437728830262121320961154075373983874821102275868873894479478279002476482243611966234847706406564247368617466094193542357200014913996253306619921412824091139730355714547800438442613214849252983538261253529218632247127160479615130147641050692901920399223139608423634782956550939938055260561332165738493912607765885163210212880158278420325236155710667443957276742301917328076969344659847377969616123881894589906350317996118064216819235508407464943894675945519333980373014249874209927788879947271648035247651261520530915437910601757734104194779437258796116700848240451783479516349092135815872376435374948480646194596224152215901408866074364527189746081835792182156783016006280299505994802542203729643637209841537748462570713146665554187184748603752917825041229013574255366665508433920090046157556990692516725650037921928990374955849533331728171272729451798853759010853107400567315551264265530327764799055359419229489787923625228315377518161155680710718756517003879240626854002760822277349337688247196328062889396637723522544203571755331322896957451496136290035948954014325842544879868282678358897906666552201068673931755259767441908598507757099182123485197559575216397453576626902702765396681454610280281391278211062004226352802034753767833076049021323342513616430726489551063044068155759080672988979894509358989976224347181211138886253505538139702523884353992277144582958869214990863705510830286758617258466727548505873579050115360605027018603454814123424294188651496736708234712887498652272180818335263237474326079013115679547924163670871753947261090773462500683058833194184961884203178088843849279613994502033896324827127121214237387509791953428252298257266197622846807404027076855840400727848092535023447050509478413975980554578190908480141926573997470722895403659045598868996612604800336774181294471625333954643721065366923556360634564852018062793912642647640455486621692513259015017992206481593275112531692987617111691856454601651419237379299222028180621759085542114426232966633454274469220632268666356438522553994369961955192968189017472238032083500025145155936812994980627640714169355507432991606444084647854297620342347401823033652756315405875399777546945489994831437365486788563734826397204431166604157020174110618181442869650231060037038849899757072423451776812982485940511190605651214033419831171763539772122244598430565250810253466482092914822024968407998314395724988229289454531746446846642361281034534132394691149420436143410002363562619211064777098119848763756030457109839970850538086026468941321932954449558387796604341306627871442369484823397948364992140819994329375307405442130773105254413196838367397715689154393635894884264297643158399948741166469788191312176670424703953153416557713870070172224496589128674488645060381814552707492423755456387790846539915584715382933317884299588181272020945609302598052459276347009661327294559717780396160887239086227359629443008152128647654462618575003672947409516221921061426057374559723377674230337793881943241249839174136983120446486965641015615452013284383561555147678554447660230263999299595826532526982222796394687448172405379741453104878103003572775069957686735836763223817705236586626428208132846455332454953860695257217139647887239466330654481427649497377624203573451544418343137248441203164194249610773578217862909729935235890846074904476545917943530918416810152063145140378858572398412979347461540794375655144169157619588829745649323378715357889648605043454701325967491740777220668388991550771821806838286431349772890026376931248369153611033078691574256469894653215576556542315244703792428110542427904043949738163720915658721382199512329906104401810863184581215572018893978932177791448650716095368642372408790865757487778155243861433120028174434558381632610411584114430176238828605833728742541797729761579688157342639759666462124462745216081622849012107156579389539783872068068224907635653649963745659753928387354496337906289343687702688217170584115956421525503580912041200546619066447084570846907910272743617423948067201602394549825798334554352123747044473708811829211893951628430386988982169701887636292156260874788117375751417524867611418067712775312243995163772662173896172032920486719222416560087178491637298663830076842037941779159999012508945251516771578325487348209328213139316503934309429461570298084419316601228558136565459728746634661962396457721572560504119978479569953570784587661200714564028959675595146360012997181882898592175445118123885924954033453926006138829778599076046816326135484352073161039524521791963045027041995824457369872392412592669519081450629512352746513061972186055977023441437903632783360394694804482286837439347322795759842069422888714097804644659933848969481492380233460340140881352236244668295295298655355023498720351312371822257124967982191071123529291765039213060044065705387481132546011188165378343499620080879539700642494365677352618453286405658415603820292965831122798188439516745776033177584542117741483515386430308629699693005980056571894356379992366599047892942541687239375278027967956775362142226126255075046019279256103045104915092950033609289098876260478852053468125967997359595472951289126828237676011915837613029026040759061412294311622295830366187134214736872745319891876579105909967131284195143169676483624475745414110927721410841571061182989828415551417915314524264076511139778865554018486367472314733186444704228737190759511672510748966980532630549825979107050316237156125078428411241592600075511003916798897731332048300904173325390255091799805724143458773070567958387999690186265299742369041034649998107980913221556871806296364494126864579251595483710281772548917248206504841683738053299369248329888906906099981906612309708937094215079083529817188119689068608541025980368596929375627907612492355095621229218087983556462887870709334165337251633041532614620495017643783289277284745033852632784257830312871614835518807117097550094797197856064616517570009258275191749483478857597994533898593989582178786714717821999651026749554837252502182324229705335123490312084539511415939350416797927899540618811396586097088867505866162730223903380388577664873350711553260929142334694438869207003235988088124107873232100417364806715146774292284297320304327840146108567175933394545515401986171560319804536014205224891152853078760894234412670725070189657936835829409195877431583579316170012186288265909458602512988509277698176086801055472094679921609796460248336358059363328805025929198538136968113925689561715795743868045593700016405642344591766129886788983554215062086708819464076856948886608991053736374053964855116356320957992424654662039595424488193207403599545412433334720562500647863174638981203334038741244008076322881303145579831354921167964514496674692582279946431417178373278911454419570301712242210788480306869298165254617608802354955636883553369954261392155506878493846249277903888645163780114314154501076982563336640301786672645388647893621607304231410528449812032700982335041913652316488644118487153175303688075483479834108703105628662357063966970466876460831278437871686378987413780818048049721961410175563616857799695814451667573105606443105989709767690439883951782764821563342285492741746076892739798281688740234848536032488423418231222890539057650402023786001428615211529699238130910403135603381981985895396749273452053614672182043866291161033612424822330339997975097714037350834900498701966859904471529711652648244725844819397799207199225895136884347011828263033894962865175540836519284524894312024635796508823661973903244557765335822315302056888267549488132741089302488679065894062220902560514454134164864004418589684284499526009558748169923797081223558775182851258370221786988609439229738637075958152839783507671907891069830949728006706387210717979606963767872183491869403074298176680839815977616782546024264552475913822310583820392394305879708704004687185861583989385146041269634921321250990680303974851240587589214774058066425690808820661920964498923332883876899751287902950547445474409547576243767466422106153680978419721541559126223956055801419348765496532445886103903627237780629049286910674282260526703744473045278402434950883095365774942085555732859960670113447950209411545438755249861651659784673724940712974222596134382137274799057436131909487509714633090783722642621170642797455113927524176524535110703354433866274796405017369978913076079455787004717968141933948774598819720441534379539655508345783046016370788975835644977147394104185399467705722144592878194493271165107100585171910432059024034091741504655277139103715622652516639507969597484188615745268995945524785747322857736949480297040210833000092224831675873827465780265653555498356447251786432953991968344619851601790753524756829122150917768641428304488008118139660111888852443272746446340719632425216084392961954713650473026351410911375186266961074839183087743697604365282038987877378273514522455115791609010692184076326807361590518749140686643727112951485984477809502905795762690190783729878842017505584406810959293387051917167775101654777551825157638730307949503736263358849699181773646049816800415630571631493358588260621857745449789471252986976797502016945885329008107340710872127361085024177672037115692302457770251953495104146422146676722533719120110462875616903262858729988759397483140166030458576154780238693350067383668514780260957858165416491602123077257263013348918689195332505188756213827460731617626597672343837631257258025682444916830878965068366016209210803174269116315350506207518070626236429024497588682561195901847042638411295548602456564885144949014323179235807034843760066981984545482573580643691947134169375357108119619640370289254227699536358740743628389929518397528480810929191437008696248264295346721987643566945552229291931963047981820037088817813871759791510784373487549145684502513874133497585120926462873557637167469127789490213409398248994837186834969436502713846995812489906016876566630517683469861863078253703675346415079590762327990306380688234152361589587975440884418834816264412378720631000584147385269785265496746710414142378179020675949230949920389386811711303863319786830224322817931946871967473833389260448206148229907672083738624629890157395199161098875425807778821525225745202257156423795766958253404533286621395818869597801508191705412973416979477892490716886389345374353809908537175520311327831308207734722024275974507554096729297062462500090962622604686369018602605004397569974810817496880377994205182753595710543142389044092964427594760854984457459111224661115944453598392741840105511701849972565515022426318787227972047440489670484080344758917332837340672048612344817973227558865872533661620132066922449356715971378455960888926716914416033510566802415352320299304555352146445328540533228336793296843775809474674254028508158770288570735176431473180314852497436397618877248968796353511596658402980598276381378268065152616679772165267976560478743309915983786678443207019419699290678414987087777258892162533209160228175051498025954454455084192439435315764754628468835384304400450748179272262475050840091421470125289525586326482653598481307686911318518205848154037632501132753507064535406446750479645847515281040479299783192743054984289948185030237056693996122103964847239124442052478382771531220069282162904419892253154538072541943814376322566154599419896893166150560910371089862448324094178252298474928035692272264207974981640879951816882913424091348677327001599663679450372793065248402646721292194316988586473137499609900015424750395125378158234697509014703221511966038052115384693054811657787838709819888571111183709706330787281686235490760040972549543660518725665367154313646561693256965534210148624071452386696779116945171129770015038509186349130844424302269437696829917385377721254100566274255539003599898867411225183097185763290116629613288045229846013981942403187320121891639852704655642686977452374239214278897784019076353667123482777064801784971020159560598658064899165991148440526626076324120639828899002553796753091865748359336061601994723358065347983147697150531189004866174067002106072963560962799198553780721797831270393028855329851866466311656004877050260416845566808744218691413545775673815798635605158736860355484196006246707414776123031275512505739395396329508545097009989632146049163514177110719691965425333880471769038233495193978029845892122491730059301025914754274174529324736381735551884888910315259157098609928795918991254900555711663930015667877031125994960476967198685089621758007524886638891647265395952947122207450021770285343823967031049228419841358288938895341184105443710602966307179425115368864260466301714726509929351015902048449016589870101764893766320199434037585289010321785172708722069033063595154625294043517769722962334490330080964477370505677754212565298365325179441066408477095337489485710849891463662236724902429350777526015072681621114620653077924172496052919624644102662966375343872834985418950351321127393762854099885447196346468208029276201070153267902764166412511782105731439259527863128598006022958202721926781251709032103920525344598402488015634742742905842067458449092055172345275141826203145244776644790591148126722426156523633664455060147576701594253893155589218660031713079263368576664684368864147144784128837275898333181697001367692617345900082555127988100923963935141094359968793505256401737708127299047589302650917969074478488909955117304674711789085538401137234547355700037913448992083429857149541284564803181651557920685952714000873630868694448677010215985135076690722418653735398027774356416687688207248216962565090127690739578090133034369755019283137437384764187343752885819314390288199244775528829271578667613231013188706330813824936361243873497605061787207072337222043555219921805633353933433846810220346569675106685017007219998615168020545768405395252330574656826044161321713615789052042230659559669660801099259215793939273957934302534104524124713000328146192124561502107767001473677356146789196442225529209794934168036144967943883936827175765723680809719456373300161998722278612165315026335454865210041230065359125038948462913826869832529391442220709412060068812148689801191496379378325660128560686306339324282619906584330168951975997690339910880391123378185533064560611629599399252732688713909357008728141390962092193263841544580180005911185742609870594738806034897739595119773989455599523941529477399733950685328051535853556802674818296112188516225062891486089311788809198603836643006217392429209777533636111858417880824323733971616290488469585624216985432765178303108762511334037147089003924006874086504594555642354003073949993117738327243104681584985029939444091574853916051229635533827608263090234566935163957783749669036218682504021938147598623799999384286484028086754067686638509504016093014359833539242806766288893602656651289120153907337366287811133570845045213117345515590152463885626634249147417281213284998046432492084182107469566845037665669888016868390697139221912919936334175897791421823601286491587084627074314459410472152557582280484702520530413900441978004450220496354088704313865420817416502271922259471222614792698456653299623595483213851957791916962162875985919199742940998171837744226513477008610753241791667558340404177604800877513358897230218690254959684865756112295707104155664840536914206886654579221971414721883191303489254972018289777667901358756340951839638693353603054470935428111577343856961972228289299494303977763083718838711832957753052895219013667875662708147115188180600869007290962781478483866489534780933029677580004843747508251546382817874365583754705010537028583226650407788013720215391500774084364450218973914419897322693894524303705767949042644989276666925560202602187200186162131048071691009501386363610865089379925039333102412714859994652296111488396870556032369706025294250582047896475513702528483615159235493684711588579480578102151012791651922697960034834425916208509240130621590573863909797730867359456112273457837579292063690708263514734306861013718956966442103200577974250322273950974978050996520823840593391598472486972231881859090201880207974921518784153197780605194478143892410809755064743510454295562347030320700825375812486879731380186159217330813930729613769047651167018168594060056190024430727682274728831349254880362080995555831043725016355525802839415104135240417292882249220328162023481113595099812185903464464272858365765554091567083705494504257250098448169133991298388586323948594611442721011798398713895998457159010906468447459817969257617061549996190420523959060005456732591752736271077994617453976550770707894597999158866648974034283994416248940808973950589875621454821839876233011039259851876803444750648043051921143117077917918931573862682828884163061564880794383116201090815924111286821002599926730641583917884168146437694624522214299238586993655911536738232270228617791350251084680029186552016492987993252565614198168293403564142853800693953397854872455523725343432167318198002561556776269448684360266309836474151269592418078907520848671436502044537635270043151169181471988352870149936438639584331979161854625811975038173804357995926719924093090867321151384907179188904009347307918163764719392584290036593226177450436383163212823432066040675944205786477187257471210124255181819808409238770109175216431092994726569849837281857802666719519557250022056720850043582356747862201485086647414956643112491696624858334381588442746758442066042149755637778877706514915781093830738981152980678418676524020181194660274008006646245417443771313007472261375245200756952947998459164932045585909496397282268046632768495099667115304467328743166953589516071146485164214392193695313342166499005330896327984580548414849958745134863428401836957382054022983877169310288620473874678557396954048975832802452639153641291797359932887578211633009715108801779274578305597260870992806837394631524346514153019641967513434324000654902976529679648900002704810335803015550516398470540231715403085237004865778464292445521188925320301437777707652925681960561589907679008562573578175311997404477995023704200590046765262788982479869169378586980412028319063934701968062833644623624365058079262078559768461325311764308673948127365131793798629317884974368693709107315022850001087150494629006696896190397385457902744482514772403547258260456879937142550466890720964784860503636810076990247746764474120962908863321959435232345479769452784708470846191140991646247119741867521735927846484244559503599884740669741991781074068788526173783498156030111094634526009224645847631219843729906184978636314877001918238230503976042499004681789441130078232579003947391826301319744356508479590079023194898224495381873551508187514789817909965672893629108180385622841860696840346310849878601367285049522867418593507849458819909160911393725035880093747461628886889418129818541512590390089570454764728780331100605925544434709674568456609248937892258642852360873313982655792115054297531026047930445001334116795249797164469888237564497062323841604803641673158983558417650391154321930554620550527838789310759694311177990755930549378001431851118337923404859113930023867098787063114877424422698071736003340682061783723674137571904710537135038308990222970582837831946290810430739938867846435011928328005803412090408395106121740653244204339875270956571122668221331382999161408848080066589158067868512177952726771367193705421551555567574433601616474834013534805615060190435808560488624238534977498688834776325270532735391823201242575632487691347141849083244318390962391202146606548560136685577638060466124972973202921154376812030406372635312320543744046894423610195043725240018741328291335994763439421020014463573585827398433587903294957628820816159019494762801954250327235235029961262021860874979831671200506686952113321951430397783583210751394296585181610179297684195325991018923339403542692102010080025344450476444455379355250791175640146655075033033387641203834862654417019741134793656936459655825853187316003170037682198872969487767474061204110320161951600967773480354354409273079052109554534437421534321032083404680900019159318729631245153991582749076059503488048264424080441290220452387185080434969087157310735698299695491631706113970487642458966142760414179747504936474067151046211798197372790718265306347372740195627883433550283715829732110717644824144554118610989677941277589118578389347034994723305158585248011015573835004237637026004889028276520266611418887608503572661161171873138281747178766610659120586232271265295192407572076887583245959291775257722345426651380387882297144199483478766202309299591260368137236503596857315640339738095329107421613633383454898828057127039091503411998065976225388761949508133987221901532188925630943668573303719319353676806385044200709309142045343270191205307651131214854924837855680333584448153242773564415333267679856298609411558038174894627796862120684612846980499146967203167787006371588859870065242637616272794244400198681691985589033071238157443865155118055377566652801586803547631218522441163341162423922392708277689753434755266381657661043741388266312100715955509321204218115293865024987866845969846728204233521884147816179369298069641073739298352668951382225075216102356863862779920589430149813480233461423581228542509978491080678735855127820917788651599424184775981694486660037222030498937544171697470710924035201659537429280048584592195664321264612753650494411854220819372976389636120406697601298227701139347109023835471785837460878110498871752397466291877022865110024163662084702945892987483703515655161656836409917312680634714984226897916955825482825589281175374424976304287522402574289628106798080817128534721995270999392579747896666029157883041580850376141190229045817758391173935925829203696794672955505857461755643163569591146205999672219369876403856372668566810826687480664493736649106333954402936822900209372206857656624804663006982663742837802257906674288390540716806043219490388831983255688265141233636274282795279887397171290797303636301403541947932616937426133772270316319908908938806088758144073174950284685511527729398298047654676575435384338169146348660499171680776481848695426065928076605845342921328642388615811428073244743028970558963653767285968779936851714929854706121714887827876595749015659084834878067978401516876128852569089195919775978095940791910495621452147113175369242718302715904654581945944449471151265709497775716903944067540705305241323055869396019291929305831396384210938718916347410496915950951170612712903463923764302497953357362466441001479023341770665702778466876027353057715188719904967541346221534059745828073408796091142346549367059543171333032462097929705513328539106884306950775647181403265792434566996411656634483187100951310831080291536815257178099225456544121915087023787564920844142003282967031865218512405181042581352885946864919471826648400228842547155595333053471908792123381113297797977688991985699570894166369909853008594952101271374104069703107196497013957540946247587303337742768316856481967647258180122505622170565557114624151144784902853811002889575714514580400362464248402008301054082266381733355815528891902374693666370505935822226160233520343789445370377016909306651397823684027401356150425798751841500181001548784024664186014077580409759368529639813865998424922921678555762267037189980277762555105787803799057229736791196195369013015441051157170197083112451684532502608317301202999544858950245085297465779205473312465773821726536349713938116589652494657918257769771197128925650259189216362528421564479096380040931191440898185168905997221119517253423442771641705083413376646444507589747158377907679939218024080936190244580862991069550546492253962337999942143548490573673126624116903726553300374320082445417150228728642974932596647151520480050140545227137721439070167771110839112325209104227932521687857403417692910125099243899206408921984312523493049848887224358251988158049064752400714967451114782744254267760196156736293006718806754212641179091977972285585695026749524709479683657054919327696985945778998402835332357341551969580521860739360083318746502574087337503358827241038083862261925528266668473950544220097034355120388410710875112776883927624055348457019137571652174283005646673003613938316791087822688178072975270253100124630192882602765364543872152062849937048246081143760878536617708279894140688686401636979054481566802903284008964021302657190078314018777802362422758939564493039039919984976618672000487253520962715685567866974636223624097038214586438059637867452036131156032693083038931241705860386213534856658230303489654286070921755590235102705896280577108728587536877881244359856981809148106490282244920378412772405286409157034550575353218821395336204377804041892353284725526830118453759333870400758085436054819288052153887250735038928774170707515567418198349953844648444344470395136546153755835663661690991775833811684943887169481008721452732121970728057172063820646316588778131642365204316231298828386961509211643721532745468619675597640678434519490271730962218458724438695555680412720042726504086652811566508148925917772536835964125969392616652792904667339358361408903032258068407468896771188710852320250330312628099784555681393050478566159224123654678017976605469202016388685903201689686846759077435694369840735621862884492282388909321837302858989893373174924848494795300749498910481357991313652041033315600858770176860223033688911156258523601754710945575793140674462916451096278012816758319938522179139634259511126465635191125997668166923414371146342182616015416725257247158894287555651596696183226279711548503117988926986317537045986839264546766863485387488619272054377574736293639992579581465826575888622795808385957861806653874199506136695239125934335787014457560353377295645678029842932240152785494552801837791177001094520536781430669598110715969577467325580837251163731943825604186148224354181000025517195929333579343328375332428985488223132460866264050708567620819932001966060327581379922005988232503642595965711605956968520694892966996119170031951632740579465233055317583813863016462186090831004297143860981037262801037249322673108094619092745804137752878847419103949848161429901154246700963323859128986502883706530800227531812686587484661264304702752239438194660835794949805104011385134685091602819268325312800721886188782535204794774118402410592163784693621802290749223928328618166237893739047513822912381288118581133508595112818632304105887682367036000980697622680258863248675472893005960447760973482084964878337938460831934498290239863746798033840587167213949708829827498564015643101498582892053158938125186161598557304273581602396474015065261821124940193620124853605081551445000753272015164832473969348207799819770531925905674904693689512076635263877291173762105054948184872970304955453125569933917059691999841361629909674498103038847562748636696472529616336190970656105754348977431358378912128401747873497344733583741890617405092268732421337017319271923430361572048657401757225942705121428212020913203987302009818599248037652198512666718064451238461037537956717583996924033173301631111313492494848016088084966753921963630828025660749635288764098938289434292592090659686102259503881700512504840643276468708440048223458733120921902721198529987338418119558602200147395603371395094230861824314543149079993461421869077358780441382051384697230620935455309029108288246202700930447104925658387223758363075081235778214347421038442461279769739173490447457399052327474433289401439091779562494972599799449345255284875434791177760958082062952971885199975968182972003670570664997000699952169488343302769190817092876374803502268919612647516611410753902415821729255063031034358506944391271967114221931854540730064062467188011400915883974176426532170105276858188129133160316753117224812743255550067506792284303189661069473504927966776265586151208399962228035612252530993174714397146556648149331639428709925587576456493137006816416077785179278516960980149951475226462022971651043029582909547321231595566623656026090152104468619510252705382913621079057317457445507344064864407121073611382970129522401572738429673105475922270052658044833717140073646158888744977945163630926218126109414259501478192740184461916395396584077697461604047031802397560026881050598035396535144264024822832937863324938820758427289934978759744967312575972401143542860682934607430014827590259853478460075503502874289628965940334812315070208084861175729554634172394624678604968925291613606838025107147767931570432971768019112215977400899513770847476615248467169285488750882244010601361784951762371321282050333423605352215844860566176411325875571827126913247264545965016502776827993970008523201629734486335014741775748048677075341030485123198966857921782493201087782836651186552896579059509643588770853953962419578547039640412523214380697264431155949928439823173684848995284980391107758803155021895578903937577244440370420948874281267432582942837035239951665974374755187673850700905307078744474737664534077580082254308690416392785768561968202108420347945394732766760134496309555218693229470865240412070279574857610645863817015747113065081951684585671885355648487370955665101254693748581607083682214482929797460530890391344522448395487554940857765137777515248350735397879162540845879356999560769813641217813613901924724655244320849939615505420130089470136113221039694839438401301918187903971048397281209472392026744452593406022281880059440173299508336812649394851380493627080910841044518588887048193485628348190687567960049269935965832620882251332836002176573788770264477797898440454279716885178566475045420009258957106597078798325449330731702680719412911216737255597339662489774000006323025161300951618961271617206578397958891556736806522815863111375426278835358357436959907254458445200510167493767040290605790897015219658808415555768980388301380242089078734617531750843940875174406750039231758490839985281337668039190247690140868067761397447529392635592150721526791389776996526724257067968976907995643346218846377792865259391202666733347247332957853449961945793981106807520214724908921510953810110629550648654362285232690328723626925102644859336857456525818510544501366116883258758874645664106251564510530870460027895957432253581152768869573310032014736915324777130958055033481865911181336995848803281166673200727514217019350464239850750571545557753810034928250924652124605738396245815901717855622665667342722639073359387866885798251434140483305970913480202460411894166642537922667387476780523283879653745613438658768153822756484486592879189976556431315576458357616153980150253045311702502576411699344127310334973007080935081713406888845375827934143075862221619092947542587064186371869058093142688502961379161960398195575514500505683114172899999532199808681693804827348474638630788588128867261771252531733417603520330858345138089097507440871188492241211244861178697336498398431170503618999569854502175428871652212714018411996124166855038661330408023610492920332342193320139273256640167757769119164141368508177008204324374361140963231316892176360001987096395373792230126395652743082504818689824121222237989971985554153712419861844770277186313834854019281140277901839992669007143182502893468218939010533688964778993149921728701344159343414591717047661069669157088615282569796107529928172673694183709923596583922737158384935937141058090903952232602905766272994123706523262442253421878814299918695122881761007352272891877669852044986872400562701864712270203810919596150306619086591571782568967219364081562789537372111429382256743944587082813898436715851291919661400382875865607359603728123602082054503695599585696513327705601131636173115322706497021797900745842737791912520334333210913151768697492925777066921386670715285404638446059021388846704002813950820315732166188659623124537676786980641627009036645399105930570482873135383697570442742289352280272278018229135247654511574424143518529546794532522702717161989999422504876866088007200661064694675741271423463980748573503133103836680749951256792752647109257948949691383647735401393436890693952944992645694209034572965837615258198738472684688524004482894718283882837974655629664259877619745631713535335761737809988514603664935030915429783176445866828810297756294073058540089544675481117661709422968694964142417608886984792587869873661012062899118636227717220730385315952175140358297694796246338626357900403331728473618480020686259668880699006387350546300463421787164633381409816639855845840359106723029556492238031234817025703570130835121842618574425689167775756495914382935681249108245407595224743237772270912531764497516849811121565648064966761865389022455469924106221552395716554061964874715166463905466749946100668888215127770357270846223286292604386146328743662617063187149053233149777163909576245238142272272084717839297276750241412650319726890535447277421259167493216511844521709549427079182894411283491662779278796704441574336684003255336423231148010846246418710527984014387721992172116239036671563783587603536304985207757484476456946161475679628761410717110573696379305400612226537447566560715360423343868132600215258786460148390826804568119594599645803311086802224726349167754350333314144935674220275660301425335478579691142602765730376592125748895849279392203538687301743803820661877292334905752702094398639695289282398189665586477973021859098475806580762877634974415448910018972640963565769734036377020136888847045429813546657782598927553555195961133068877911942228079665070913207080979313186167638430380831318194159905212501628817601783069653290272097024600683236077913629731444885537977962021023532941991330913613144465595512912427174375027533582682624711818232280070126496568559488518823307328841192018063395920549545271783637417140135946656286902376420368952066969434714482990316444663966393207529238706923242170402211554375577153497939563375981968376342378471017175921508144299653281462902557012573306751559260721500913743742959942305481119501867969306556845711076917292142726315241022095722994972505853758718169845442362791448909370265678441069724504283836952538476342411830140109734054762692154099087437062074396609643626181050180715593882186961204479147840233002246380716305141229077529486209173040139975030692387000304394755274746061273150169186393586949090305916684778917615503665732268704400233033070196999840065673470034020826132612337708917133364784325370170787898902108323117146405795416143685440328405686815926116550291480360523439865092307110144530754267932834844491707167113983726436497132258506171713100287299287357154225813007770593549946957796569825325260435297774274113532823885823397823858149354560563461194777360086806286905251348450163304435898428263944442218044561835487422694618895292022893038863787553841668072724347165956105812883981549274538120875673199770549499903156222610989957670460652784627018264379566373662643910991560529363716743226261015888314130361297757439691203938635608849004253533574152450521735098048403970526155180827036934436746870111817721978657068261720052251347309128168205244734984976557265352815590040229827447446179011043794220478011104344656265836593676353413466202094197090400343042698191723243384963582479534231920283552858248100529556084171636121483043105158963496894379599129410292434444837023596325986534710936929065303045173699385669580423170953198610759627980158635581818873130959241760607121538062977418156452745935305186413572436828652399450710699511813025361839672125494214298356106639488535203243677827427005795649257340389256831255837189163843891990010760285130189888394128485266317953706438199770826357329374011239525346809553605412351479084456568134368911798537930332773482677072760500252123579902055417822944233229688640407936855435216791445394271983848335138833000432606958746849427474736041339722774040164744038904993618823092795287011908680619511583651907670434536113192441242784676183895645566254530903987434937796703666547918606340136470583683269902284776335201575550524384127823655937762473609512118317223048211544079868279272538207655705236620908615126679602728448563343898555353206188883924471899956459264241403408310784888133414831468551366998130062162783670159645700452076054507492341326715925043447868439210019296792501804520866685011645421897584717230513756329683179063764893353823440712711594521157324295963302718325633572842496419688909397169757978881837540125663310922205073099684626259080596612639017529094445299454457326269837246963173645823759988935555668433027427023248912270369566831916070883125894651197229110204114698637928518442003217773380741564233260465142953697741500535282516552825890761448993742904811724739249060677301406476991002524220585909635417201970240703961355479191292495530260411114600492994463715878350789862216559136751451860588138848721329083616097034835625372476779696256890700261664473586708742938813452838414427469395431942336185464926825537341883362759516923586295798829987229413294496871756083921613224445424831940202156744126454858937468434260075958188219989190895665428616098177648233590281883161592207543896474339985370566593964510266838498804214129317367967847681629684916825241015188043170380756793489967022047463777088011342759568039819646251397646932446373316049911939760634087503007299317339297700753367851526294584744394763150303315173642994174536410515098700865942048763904764514720170655522339669274488206206979964586517163106875327932746831720624916019628040460677423804268375042895280304436876000144486644930952899746536256524054772250978724822516713368478595830842092147099808357632378657746309845882373285841163181483310421378783878898214371331025361467755225235812981146692019537088392707568128236349042834621461638242359903643854335707579112420436579783324283882074218231379784226235862115463090507902155185220466978473156945740873958924149968602550978182422905654302405996630585267989453178904040269104771786625815702773742420391648649265887055869037478332864504471011179793467552005030913488779202213450703437235648012404033186045614207163224626417515599966145518927696162961822782257402086924528735248241247849677806860296909015657598924046610379313937559192143442535263222360686763217349412831825291402995485292185422860516031772299196946493173702506976283370963035215532840017661035961161332344997345521767617096836352583803044021815778972434293025608505019461126160925094465539906610678836562634764261199543462487996021176566297985056696484310704310590467072601479351404378872690134158898317912733734170873907369169371958860302597062668274755596706084489584397413689151013958220345250505050900754492217794512048463351198467653875226440808083631954483373312979670115114565351418269485163985326986272060459596948191195491380286525658393376396586703625950186500907837476119011764649350148270307121632998920812713025711354591903291010725490674759628313150076460200240676830293359300553770780926547789166589460608070290417328330155116523479540302727173207214126512226849507132533390653098970658088825444157461867068807772690701996997907801928571952274768287346888272066167813848940241688568807798457255620398217051392826589776645759348269187996134111209455818765317628382995721669585297118560332295871212344565506689263579653758291637298531542375007294929876707803630483352050615436315003001140656233088294098130283027537996957385044092427785759389452467289991588974182008849070986632397974345276818434522917424923583166068855202936881817658552367700769631949461319186266772864607229537740354176592608693885906389143165217928841618838520133586799878692772409235069576681343379388982778268871507705723525198203125514364497903195937644751445127912078736671551182911919154277742636163635413996589690505204635159145206405174523472728501690922906619025649639963088138565932364825052876730641922593377021094079151009380311649103573174312148821658449918357713135946655525638252619291796573488731594051678395123989132941336847773988177671698890832864231168471523727691129367612778007304493973572767190023644741837001542044103987509784176726951748073804635038410983386753634513349274986404320081820450080349695585158355340559546160904442738024574075417197649940282270433223736325260854030622837125843397181785245758631298156798961921341645368026995397956823436533872033502443749038818477325838070070913314240041715162666873388851937769133070447003642449787715097723155677136087874456733958534321893308476857413522350463887020425148502442551929207289046041916527935567511844746433569498513948048005754340810995516430706715166495366393087522589291661066728093337810517927063807053206747526193375493585382383882974837214111146602794213936616142156638155180920954281317832031306290340956567798954597629597357019360493297275911398201355188351272344679731355973598516432884911340805474243309445418493077559211784825290018611168385885876320863872681508499528969270119380037524175125448213818970475097196158332745750942811347944464447854816639759561100754034394232063364841367338234667302046354083235992155522199620982194298628270375352894793783063726740837338622496879119415357595065405274462394179601066100020854448605716026653146558725415322866158065886272173631957247024820352067054572200702501990655401274385259303241863102973571220552399283149848438526870899209985761095651766576328336772372718784637781031369109358687993682073513346258446969975851782271993038674076220748842261928135157419754021413363619411350711259297524120378500580414346811800312217238912754530718174067089601451218578997718695705069611546090084067797207210224247725300230390822992341358143963025354162792494112087299316250254971545186450737922638186916254168462004943117290067103676340785430632635685047511425556639882655549576479853623905909490853215965698834932668989255714020065334622450145684975094496235756553266064099077180281036304396344689424384469854004279326433606191803343315041193839123332275159086210820517151796446997318089630329352061207412964957313953546596880099667512192258083875867271904729629968008892529218574629868770931302221199758193039643901573256256711476908015587375495846706934120307423385455909455317556471387731992775596772930802963601284533819597980539313281914651799192697105146060030187732256608733666255553938198288281888069465363380208228937267031818329704388040288744956282799111497031779139972296026909395320688856936479015280805600514532742197935275374625024975205610130146365461297627812561144921118614327701815909047081982430300010035244392411619327339657742428743496311276898997400231124575563900976697513033192031807679667707184612312758733328108712363712719091047362859139717425776455382447106879271970769501832362361419639885381724179746181631670979021473766163463122176196322047548225063007836434125751792607028030207736163774664013155912582102946478793358546226974542195985413310693622755238526499478083120715299010408292534206238549148878548568872121639055779582376411692306133640830654745366086308456827683006057417448606932174269335025119069966999095085274184129968961498878411541353645505209302184902572998590478317218769314874474528429452855509822264891646317238898297376027698906352279783365820216734986688812042459876301960955859495113935138669502240254893105197408087721808195296386292978043642007851665571161646711891770133403340901963753404643961913403288345738716837386045978761604131189215716986226651273689904878567004985980069639194016478440542829503897213437758428695404341921694890002837737747995038323021867444891683929589156856373444396662313289260263872397946353137839941413821281405427719970096952761498070665355292963765434267094805566379303108423738464333210271932714917503860600010053919365735891323850545560242337737176179945845882696931559594591413223670883952596075927060679269010616827540757142667490662698354328644821735467341315570997403449460916654753387362067426232439275147582407158400415667871569995176549413816710254103054580540134667210085926280643731662491306871721241808947432819905129158777960302269914666280326261921478574608091715623145193000058650512636057981942214631331603309813039949757740273393582132752103209365190371418904676316718271988224763552983306330395915094625900818952320685301951972516932751505140001738888820554726652591921257909278152120684217180650480199022279926725651391576727831403000057021952500730714329115476521078834537253256038238562116725077235802604617227803743727259654434829626412603961293829918779475478498039415055965769043293681418187033395204948232099255825183762075121576936447302600221407510154414814864141966655109709096036113732311028309299541929398345939204130093968182332047621988064254156713441277149332940993686756495619220195430900894706000691411564227122360999345361893328925694470903220462715680075858362875010615067015745140873225970211620843813161872138608394959588365033646451714625769525286486014052829166550188940475016763145274278979500135548017031400936699564468892996969053322790477106127225633903273788330006417563957922532045814685154145201884065168165676674851827977127774879966792303513366221158462304335797832039021235275110731199612511991202601497784216864390329603056025385916945735447939589950484171896578592274913213576130036530327211012143481379861436518368505384572512249004932023649172463367676094064175467819945141977946154342367993846991998275138998999820147022909279720494397793142004856668010990626148399097389012500058230531428531878147560695142009662255073857621423264094161233947624358649570515565331889236269863394539973569471796081772017747090211160393119153528555613041110663501153466164684409764600705323146639715838590748370379263292338127404451647985758687668303367946416834751509119266610645113140303882753697628966145665199690560378481018818071799953258122426673735389447971995035690836502514199278983393553770991287636089649810211367287543927887739672845866245774636066061961139331623512810233902123488507691841997040162369968006393152889909821493799913334619114724367858939923425076367557808071193745991293149139021398395401214256528982405401311399260647842924422934677541438199020078844993489112875590049396396824891710679362445283248498927964273436138044963943081543418550350407611236828061361524643287335183472373263414559040161486161110425490970581696824050136957473428599399745859686783870292592402921067374531140872018831554421516561533737346273689127197792362900355233897309454301781983697713826336177152159826677323330826125909799413163202420318231935516606445929536328507362340994033303698828866275849204875826038810981161888675473158152752496494032262474533247858410612402572236320794169817799458161778446602153827991848703336443548893349305963341509686311325745525882209268001032309600003947673897433778952390424558893142210241110983010389544988295602065201979085978595849125858060235461644717550635778641660711228438196566239579407437024705955952030897119137834580654252472487233097624481285242493395807391509654246589773003564804939293111386862361666822541429090827792980174133544696717888696306625260632851075938866923357967892952185691846781892574375478406453531264274902956409007972467781172283959781053173836726921350992947280223166952279194571676408408100602360682895144457373752267369291400642412330578023836428066014210010985276391599240417251901554062785272338444706078232570075917728961300468782584914357359502949336267956417665591741593543789093130448751564725032292079114538915450049646776874928810472579421124840113720598208228249018763540533134051344065854278423088298789203434831013794797012857117110327380640782214376299508731787400388261985740362058378382371253447374986607951836193325414422978363793641939538643654097005620286002562736380044344031019729387737286215362213961707523466817363090776469086827389766547873413811413335806155491438910223185302051331504992267818063284286575589264714723833403569638550521601196637939712021357594457677808528760955086578852725138513494010748501297760197435290108405224398426285192411632173403644351790568331745685142859444658022022248100661769832932201922970747767745072934368957147688064815448685750990330746315334482987277776081388656946450872975030373194083815131957803157735376235412630849451455347632868952809955618640332123629913252523253585773516039139870778624636044258326794180144840482125262599116473713192899316287171537603909293163289816864883381647701475025832099262021741774688352729636877714734311717818157858660654713838592777435761207091361728695191674672648787249970105510614157158575167548233614927335730009188745914855449232971816094434471572180945752946580583982821902693805661728863841757074740589522496244699028781038222359291705281936886463300247052701133299046440352556476865535172897487470211997309163561451820289740171167283393755603114721278721525159119853703861168917097653813623053867813100808478409065786255983023553064388692338436675440618347283932404387216301420495131302987376597718392071019224071990364680645884149144527724953723157802750786078693560273029612412046129526966937578894930818482761846784844008853684873001451135289009634887385417674913242447986790056579562716178320901677790691138216148017245632159520245220655070159550689987568407302741881734469720163688956043281034189605356839587628759125687229059899021629461969717057701180875439168602106176046140238921942402222456265529022843371804751311735689831538266352867807558499477111193630918581221192996408396011272923417750938986915991138519639647408398828217769111767195570957670203300823775892053701173049888941114075248478044200792052581246495534825893839847380474640163920511851037075931382923634068111908926891468590048613493430846156701338171538260607842188157049529224222061954448962881036219552957251637848016058924781247743647549358186305403508282751239568675568872321512803101129730050301730044466975977658045752461237257444353659483639314857593592681349000186062121227254338601464402816340146506851520987405057424776235987386435936234240052484507556250170487305068129665645814952099788075509700800519981929332843058302862189288517449015158430413744722440305060884227740521916871707772615561405465500399263863636389472623817037448964166460849282365551597524014330836235064598028036914234050438758028912149778658989546783752555991334476302073413672780217509317558690814235048273706989778468540915247293218172596302026168042889062003615001227898674435322559110680234925368654022618726143002946447558594447711123269533049888768623067270495960652752135029114722282077440535498400310585973528372919132213639320676831121872611435531261954932216221384178035005079782503805006350360594250489501575399827436779956880452901876770586639286876795866112010722739624105513829604654366171030812497611044907949585688363271449639073301447163253346907574651182335685206851961505101348116695759462833728060804663054976869929123649261153957023810177047052427153107544247485099316664501882549027319744122630407515683128677492924310180126502392805611071116882085717886207241132307392470980356839954281951012451196528708398355730255188089439252635123493921627595468680927657088716813859702798742537433492810378822520960290921934240349359125720985931698121695262861656266273453581522336410690359485356267055661776222891055480506658040355598444187038885725380008538205154037240624854168066538904061339945596759812097885595968684991996388972073237028589628276462985473567626655603385069589211514537943091706635244706694768211813819582023607509137013429910306795403463243120768948885692468053745654430280610181647006334899653450116642271524780364173880694043447418917147663807435258079313299391266424655403417015561692159774639725222440575275203742314499996526880518144374929495418874054564153278481495595919252370133919002408451896190973032779546154948427909781360394041784990734335855366440803678637401151428865436918457749769351531975560711960492114845338292174896005004134164375359528958215260832910980417114764172302593764774863520553703876187042977497258179633364785108941413196308443062998745303237572534848271706101530283292496155067219989410141241742811073859398229915259075034833149715195951712912153295402115479629106843413750122513201690294195784744354063962429921444498490850615876993664184540793419361296050100938115903212777321363444751545715552429687261132968140631941346744341362116040726117480323388970889740615780355901499170025872428517825454274963031099630341543044625733710543804305662662635455169512055727903015852692225897316206090138674212744039957722736095196474031449735412063140838956012449396213558681947112320159656989941912666173720310397049030506014721453534156137689425927045814853072721300967008901232415081179468702083614026472887780536135398468136440773815695421142625477355391123483258428038043582599751305565854354937583591334782094403398440582864600982460704590898926624789498777861564333154351342691216975073256741619743441570802701701395195312232848055450185255751421001037942582987946218657452657772806368047424246241193032213765209296881800773634769931216059141745115103579530836808860576767842463192788441276542166365246539671834105166507513577509061673879420408002537788096653171128216828151949272657464081064850140791713402692086783542987095031337164192973664546847783448574072642003740805016728914111179474534565650314944518040691212741722745382345897788440555438692124123995722340337007121012278271223665411199406737292080788285715281000075466078832954285817103481958920851640505306889515190631165195834149721484373214778981683154477855434902266942412797073577945246587536826972103925322241354520175212163792786515813253487776680729373765875291821098358832675373342768308689139197234669874968031142879832997787874769136052452948735418882391085749371616867679667927146534793748973806044978371705632513236579599204021325683906580852250009077789332234221480724291662566200365185656935507197836962699459377844850084166706959833736370941789172593964788289617271298419258172268125141166378456725432830535699130907997407996370880473320988830765156079466223153384589532655356749449086887993031658990473931881386070700440165067806296181001338930819306620669427210704693278066180660866984112302346023834969319207655259660573759056923137911710573123877626273088490406872663575880528905833384281829525200572560458017637970747729986646588944945562293587694667481633049467364713621138473928757962213475008278262114578896015327812190193645871631708164736545623376056128190375198811803065504566823996141499735728268837627769087702594451545076740884139746045275367342597957894015285451000561244561347057639114472304113508862759130555450877176556986839791554917392063684495048856074956425499936802180717950175033568482855602357728418671187405400827330789193109502803464100035269002470631717459681282698354342204180636344840078280791038052302745916303327662752834733156690008147066415930472439298852456099499729400918549026603401208762173299322589375361199194782779944937891707097623651799257568903997228228854125688946326993558260529438614784968038097574660199772169876693642205964121831059008424350994954816837001616469250794105866316328515990773755572103741076661040146459249553227961096575857547972082080714408227070361693824524391582590894739180836843795883150844497116833620032711811146567953633354580714759987328971446954155884510595962936796458158348492385728547125820930155225516521128999396970353529787823250607289653223417298930899912666110818501509651270047611594095942473314285818091725312602350671945499611139186841177346991543830985443401657188354858119890285469719768671766478512276866140434829262591248783077630448720027162739973801547160459108268322107780477193985844503974523427279205112233549556335111980857939240675946502383491795247410256662462919406682642226944864576216722520543963719956545352832595311634939216782673311372716587957215006788574652061044304087113820687844367430080736032695067215573183131736621811481022889869990312500608081763203615321186310217227305294815890589799936192383391370082003917355049608131070333991422284637665353280874282859828504301684794839399130394025564925879029850714603178572770164007264002974124859102991804774774054125473969912147597416613584298303327007354014671781626103524541797061597348810468566200065977088933365605005066552625416301653368727021488589305792589376691691321808042682496290193663682124911501799181024079511783070509054437667519831738989910625358538597471534396670681936986752298254588027628824323595023709487578451381289539097437774021385177169345166062980798124846937014724930298305059819407235164888726870178201970121318642187199980732561270166940898939454259866826751938341201460111635428166263865823829811850781342484984558209233007783005177561744427453019620814659162222177539830054506771256133240798429863599485786243698032938377395658953347163778289234256978137089930610052426596336966853479017988552657705243874603436176598751629033347218191795890271176936105808363826421077039997980949712892664061707040496026187359610733451632180345056728539736264768604747985435250889230578102801109496863835289217456872026679791503135157358213617353825517940505290786722702973940577633939353129265250836993611655478880760334093369741881738200332565771941602825585619491268306813727464087063690635309035638961911327259451136335562669434717568760240493156890057144266186824773527244222174280965200031574714503785262410694265085847000285851640716302846527479008229360050061003856067838562620154985947104075610042129692482557218836113273901019875733259573915816538357012955052219828331656778921495702217359199540628927500523029780745720709000342601224984510455329771095502876179038600370185609198577321991322223581026257989248490553138959552194761200861140036872166632759379918452283785152939220883440198700050054601221162402346932695081286367176238305665627900328043886201641933465139277901422108148684728385863947771720260405618416054674688165285917456589239428311401441072944976530478255508594426887007442586797468237496006721282589794675814958221808948496215693333667834303214826083654245949846326495974891210806960357612414862500983047540352818742868878159162833037964774469633479535499598716835562461685992607899394921821736199416469611882445968520265716337488046616752163380878631820991342524350010534362634541229988645425020938109998810206609938121139839234354691735450045977039503842584492106534266448452270790820378901096444403446714109643674755343605311414422278608431759158183250931019015901302862661305813812570086796163947470023205141881733291063822973667846632216334307984485613106705754403840421648302497460542931290983188181126611306308520626594420611227624540530621260833364496890107912426981358357679462370422790273102767591659044528491979780271963931738983512673994627534869708741144709718778234021652404154904763875183205459253153299943082015239261785392022476459389079854157397094336161327650899933964598888729067436309174348906622683097082281538694614992223626086854046390359230791937306336484873836766453873511439270488024936008372048938738249380057985277106622195402624521772809584878484230581395876707322578666145154192769578033883674572034093644059150361630633037681131617886801921875608442106918695959093374619623011536639275752397207502804611865749750890445653178687540068158593201494885795933114583088716811645553967758374794740401318846999639880351160923239760812975737414018231924148767716891530511764128857512192265783221198099321226169471846011098625229360767774311700221250028907577630596994924188473415917042525223460716585173582875228642387585756724629005491564001022244699857653542791198355229072264018052363712376344426459815482247486734443560763466697489901705153314913339596100064195567103922421576707215318948119792347304334564229279445607608942276168494967859633354737313807004820661901418563114927225821779079583361369172454842263892039393455183827753031506026219110438200255847729353435807614757762029137801536836434272833504939222814439796099066974734260722794504478220336468306933034380147870885334323332211306645361998226151362070393271386274496979471817179643486260194250462200601942001854512002652985646970133714388220979309696496264707228713632015202205265226761983200576282374930149973156346532883344471300580805788135319746871244010966532688899005637706010124567625851789104752540587897179498061365182141959500767345032147767176328011890732259721756377597187776724400431125141623336326606172192607313088394851870358913699592487530253167369588277768019634605160343009270988917512494679205669088065349070486318578220272084017840602402189883066496583309538923270401824761210716531782290831789071903596269621417789460211049170233727834683250263123528265031991992939253315923110458456486500459448861227888470931213784325893971719070842676731050777448946556353381385620105357648731522440904823831610554744438734243156719805622950630645916357515832768716952804717746472766802710564225715503649284920169407811314752962925997267673727299329800549871887997680363319031956148420061667017934367990984270052381041894661306395713707292738821545172688003588575558605183732765053519799387823665185575381423262262207996033125859801009075932804195256171613285828553716002630360852409521488198359769691472302820591551380820825848455155136846953885207575132299288129153022939094624458462839961819398972561452539592241011383527814326424948619836882137375730816572357345078217178191008269819115239466019769018029508477093732140564382701866325964746045087287678248410934395207486239553700290146895371342992201984203809772831314681430773362405291275149439857031001177931718827543313752055823162554414384974995407773716800205156651900092937778395423981033761515485125878315604044210829035605826476215621014226950052651948862478286451748942829268094335306788041843374656821193026070435788193444779704222892036362469873512817587129774827970267259463349670083095975883385598892315506246207368683214179408963810657905681444793737175984611868940593458402787315691832219747124773375474482354985319141508777907910989223014329212959067701231588373119691170988324464525254705143013267445987571475584846045469943364011113840156160596879825126087466372266187139803112397310704242147039173366371136474693966161191390225353800827924543308202793687504581919042597292627450486814027055105759076898071808303958999041175818234991708708818166795321935679994412520093908443818986681576442118447192491810639682881071391072447998433347093199877211496422288645697869954951811398277954369387011358146983775136036714149248456489713180230158528556788190977722928936908149113358484918099903509586903635902830486617281270209081715332457632230367486558249256962869663929638402490459281260274369363354891363504674532309115105358284212176053038618337876225475995844376212006866401531067307043953741829249961020585486389078649073533246096473075893559408655131707170262421885144552860247240979006837213521285668181094449843565960903597859315973659138519025368750974653488118983308445022277012479920382625420383912758222294907553442025103653403270322308113299400062779253571109197620164305130766616712254329525615179202324590987773302007466429807588896083927889880546632548861550334898438262495569011685278018445489817063195344160786048494897502263997524744498745298301541755836465224993516760251845561573909502307874018620727587844658746683555958051384014701820769596660587199176429630735353621619560904548064188189994525968912426235543053319852917186597624466870791672463792001310700991143224781419763588402485966100412736086446375583095156986616560592655520388216832745177483505061189554540096430122091109804101656109653032754320518707903753889182060350492543989909789969565498939976981871558500065796220455600139711091244321678270464280841465540064036047118866053769108955107219618813236297214911818870654114547894023995532100296664146249412459760364586387307265270076128746332834189799399940189257575507806533523892857236051067632855445471161909627443486380351674229728789435454012795510108781347120478899702696339276533932673775289707637773166076206489365011347976510218699180015175284129932187524717918202093072057790146992682720559593500886393551495985955491056147831344837344189499721543435309507452060282833858496986971991986580096128235525068503363234992681366519276332758314671163550544499427978372963311419201353773209589623805407956681991648778252003556830185635209570386290621906506430213524955856028062559674166879905370965809021604193121574731640288844673935323137341398948254339658554855096532086189002756606882074359694409537593025632955731189563420693291135157867833796483206670728408798467664221576551524809480895198324028343873360146148067185942704545699156674130983412022338436111671884178484688500017236906288684584563381150821620255690100269910052896282650823140087391719020319833500265257682691555568196014368423635268516285947241640236592012712768850085684857889203397476126306349195386280253492865885093964888431212179937902923479850822618792753389194372284302330835022632653380309228667552635216993538603417358631821935035666785819700228167777907037421976211064740408833268483143923897264673022554296239518853452630926884240931047489539619644945359384699019856477277432641061166033220438193392588051894743412367391060301333208413916447863093164327606381688650808771957970654074038599637678053714122614390841842483010508083528218496075434864177635462297119986081873632956649546655524632297738868809484005261632561345615895375288815641297109956043941251411264717611198708601128731978093054659605244714991896553809463484340731613269849140866486157165390894212129874523676330866274546867950925163280482667471784615716456747062875698743917299340934126898285099882383246661142096670907106097854199771305179723719422558110071626453786898441811138350730951903328948282722683901088601529788884203325775035859427317146739316068363332375813280260246541931372763530314402461252534827733708877512153562259884021070748639320661854408078934368990735986899952561411005580138069504914588664525502066981505625880813774302545198450633138759217263124263736250797197840820113220242754415118506783197986659174555438469589108217430099330886765561334061236607737063463907959959161152656545238337016576962556689513116984551870308479683237723977521759669565060725767762553708314333255212305689030423043276660891703487541903556870240894860561333511148323155658968292823913288444998603642823820204866288618218263764630476446974421203359771932363017472346785148375711938532453553157486385817985820598688587413597874142133889280807888134683820680110707207603059043598375674261406693780734790939087832549309564038474470683496389922234165074428346579732172827826578303772720109261045767768688850168113871660044506683782530960583502983689070240096407208519249157383403258961091503802739904834500756535103791806864852525150722038709474448721811679676008511051793776016439921572347148825237718131888314419149496725741373867613659752751197857769000277468360466073855386757325113524656372586601598054226129329757876625675654426687045897078342856820461945537699487449395919411045731022279109599646412963529106570693991670452620091606358424148195068566021416861816367694918924580315556794859707078331580784469424834521186811456088339149832706438029197093006257506715674578204619927954393423307092859592509629910149770711663337689337859641430358242942819737490619446724906073695970265680666613035576397179757968034465791917770531974468518013495836220659817481555087007970206714879695657900399951358780638392835347961818134999476207425854135770927751693089612652283734443701205060247567205418734169363513576081438392199052791134956796815817586211962628667867034880993626812488722978931425354849650074216007038627359314445970920701048645610110379794961264458830458069693800102251789423247658800544468548948351578983817760700382008611114397519687171095521018236752198413925859520868693169792663653992256393407060225263581714987012617310771800858793845092276480539885265647143335470908790021998098337779124058291688866394369448659353301306202368698064104109641573720631797752946206156348050907319624934130461583076822135499295320017849190272495702223047970012564793275211096421429555900043206729738380647185053384444466360673820148837906782330435971576325856790572067660991149863812349745662115799610263521284822574568179711831310501910701249617969824185789797098563789933025142132334718684549854971223399953446310945286555292858932460423895615941392654917136113079141757907621654951923248388269520215904553150426214836154761827350468642900814773176139023502496776227567109889826326105391709349656438527119581026931152876975930225339933799635256678506840934895203640120584359399230339584688262607876631191835463302757476207573417908545071821055902343520021546316176835184302330433820280938166882607004082691165052987711654831592338544387312493984533665834344065290395657051848553912300129280859548024362149212633630756270687084611337401938966723748102356176011177610104190373489431791332268501849514804921567623834658633793053416501426751695435727402022856897138643707547099857281443922450952231068061374653196567709704534872497794990938162799435661146593748729852462104748186917130165813166855997559609872404942286220044347710555965601812503253938426708148226728522076098529563654845029914120702991495071460675658643500440525498335223399498113379906063537968937436779802704341708908457678731200985868857374025509730823491834314847408620599583777030597438342879981672812293350946938289294454485246303099941150533886029229198397314752186175030579713255631603072983698498972097650401889684822887671779198363464168962905215132510247752522439825448376151456508857991764577238105950394238896263919279003195419319923375745802933817922549010505230292555264646096694364255986888595846242065531319732567370377330963412634121359940156588234016619407046712993203806831331270103113663017834298525449448250194561065432669223371346767736920550445003568568863916056672715196407410806856152681345457033361345001467935238994396231589502527309662373308725808618345578240647937507067361464289655261557981952804329594993540792732718801294492889271073776675317869689571214052164187199150555157053439056660059135411185230821621372201695885981786226815559262696357448615052098647182179751418574513007146322718664296078637492966845969926226238290942802314266825587876775668873263769314240093282541303956978958374261170466341012818118350100257748869375661924207911884954696252850855423537499590348640878093614519675978733630807377026156079152485612809214801201932240292950356748445061904073490589403475067025664608662266774911023641599039610714201027654884356822062481343283705931100230201378474806209825088079195695164679460368025802099710887686400793062287816679374114509008683898852210026352190989837540294355928443549365964520483994751798268789877429984165977835706852657486520062582517548240963602433521963110420236250804239560140611641639207956564684739886471717009731171787009208934779100762471969210591613175352525591711734065126713277395081929648936574820300561447324090768935414621209299389452558424484720107429259623840691513710134761634487613505029587180550864260282110699699266432646088834338691590904653459918346418120384414553611814092384442112917409394471569829974485467436246739451146468414626296138562948500083777902383406676777279794732135635662049596787239718702015156720831709426404778184868946131041541527683775764965240188359186026131722097736944418171838690923593505488724492376353599179852143163371882996564270704908690942236101381549264789518980363380020423129608589974879754692774382137079662188906132424802158477494423326305824249949024423512126480035755904465373214518550480407067382841566072643400014132573048723236358960329382761489636154359325368336816295765750378760845719600535401665914362109610335802409849850914274275478710785851897031674013528846152206131159422254030355979255937906017922297154170997273924898108371979783383192207993200491907418588790224706608189736162976835472433598233677723080140396362831745323205780197360315000018588930970965157859136693328319381065285514886126991764605256430295858564243662000933674963183085545869307789906394736480293621903385691340924747205668564859080321160027612295569710904832186444531281467508944943897515012317339118568912137203836377259759449348973991858364431247779226157449506892674820405850488961737996497207934354946394357472008738569906102088536086137573388979665383384042109900457977482975217660949348908960269937236140085195445822693602688926270359698139568684166595556002539498201604009041924364970002090770419771722912680808889631301419256826953729431976235962399780949282807748187050269208378446896129487371624290505574520056263030625880180933441248127514216221607996118032521145565059291546905543977191489967645778959774315232451506297150526034552169853649582171734282925282084719380636265455004143521209953148825453243960554988063249017011027435799014420644903620627647057319830765754998690731609987086330906891701700844864018668564145155138252231221996993036002967797427378204903719610119918877738751676651992446991848649295290597618007616611359369831914151250711806366424550177895212661020168339088091575579216647990743171748820594198384720306251814919314958241151251372822606468600721351938907729436349888744172438065144496029831565846344003252254910192394752562662236077430954972106419797383684680035883299232069518683244829471208973816832348836247737832053561538376443244973160856378559791292754014768987226950540730190010718938401642381716987746753516678405846045641021569300716696343552515357452607136858773068723038542229196495333186837529268043716835984006021495977471810267002132712784772049520678567924455187520390702222439128269485413747509722582276278031089320771339659461390088553178434498844748597978429536746233799441270299625580166436392814702693317066771717537895610716200655295514101925888163797719492130811282581450128883786319793948224815003893541094551628520355472495118510393807107043809865905281889206903521671709379613117603566858605857118724387848964014706037309216459949052274122675233352444054791182381917614885559752614906494932964525212043456140046040041111068582886273328687675658872874818253774514450170588459938850525403286473070597195674736962678906913215908605549085341446884935533084728467524963790078824476890788179176859635270482985853789857635963569285186766755360648779505647551121916461084659297508880081607708687904795382570476087497765138736027545916327695256300135410241852449568931073892475234545313573188314835491760706822854241295702537494131831255095639452287764481358979496282018003685842320864186455063197330737981746475683349335339828365331499545094399827966222312766315536752626282732466167891967302036251104209062317808757051989775771941336122644003000672883120297274965954634913136194223148630846533842802529071293711190428042286196680099814415867538325830694141071604692664461914923399470742454542828895032578844109081565823664526343586605728193966233989538641608744482590183064399261476862933506392021274711733698184075496762213117213048279058510895602505923946239848700551480857266518761353723284028085838787414480413676117833116179221065740768133576150491002495931644116018043922662883264923792887122073903932087054964183718234119286355913728692181232648775379652625207636890471624065876658383467655952336731524264971886854191909443629589238409785276050723599240209608091036586212442632722013852310097941391479558085772947666260024327763073855454206012934052744079498006282813018505871936457678312733634943059828584661657728082816528316398432635672648135673468882236280328113438138209610530671418576896256203445988013052539740621957830865281558849683109491188412288429797913224294538923916250525429326905194940285759336236466976895088215188929239691751853846985795335462799542193565674431901215954111360756472874954229832577281879537563569451079983337657542992571255120040322621345594478859743093082587770207865840969520190126101694409157141056548630418393851726550147716649575392302228989716798870712040176532424662373819220756244653482955973791877040681510873429713479542910429857552728121306415894938946233186596231641179542898675776992353591105731255041670178401531420787541402282533978266175972005367613951903168366342829325829699831438552163652062429095864901885711780216905408972824500007244603168163391720355955054087753787184199507992317569968932659174161191334391447423353224577025044107440627518314693388821489302529319697866586262672155552768870959801017712649321836639602800070517539714686222673841863471962304452823065607018300626333295280914150374434943434533560591879377799989846463654865227649671409648003058210404905751674640181340325949865129710373946261465230216725308311072931503766747101490803717481948749091747984343548802274640525501616578759480908355998773787785549209897750435279544232750078596137700077096464950254660478728337813017738144261927519458867754731421853741188569006619652064234810237222232900464782242726210436164359002589822760771795270647309127845950031946031859816408761020949481834277004557934770100743975078228322428620346947122169544685283020015934745695001236491681721376858279356922797683955023301375132739589182103370992079822013050150342751155880992179126625750554417882472340131770906602268105992608685968899268182412485682916244107857009940822276216650225934602488108488184437071616924208292313281939503963379742213800840847449132259833543941897933900491982943194581522932717037464872167690437714300412921718723592133062536270454927874103668339520325460248522886433870530003119599501003500804297190033395454348584161674195754013638914136072950482082023711674778219611855103396493163955822291330235330624803600609075147317705301235371831279498823774517730116209949890862029192714682232184787809664362673229498917280552470357605480444687965916702591453176456869177732221173950786559747684704382401982762847042570320016958067958483346784467433585536933632338680419434747455523969285163288970608152791237697205244599846278827844314637176339866031804373001810948605303728469124586424106243980282660885262262263282603589717419487660581934931230999173866963097815997594555292143556545690837834197760778529926875586528900947851107593610647301517496972516790798413344912019893484672893889441868485302903345924469151619266725069848588170339233384638665129281627316588828457753622423206048133218201130920303248769983780967566441184372865483089852897214488372339713442165890763511919964347867978571683006986691156419784534531968354298321764415038642917126781549647292652641903152162818246178554691686290329690924282824866065079009290555357738977596020497913567232130015451719054440405453346956238662260390759887170274546948394124905693333212131285947029056563572562304084070067263616228857546827283924968010477803301067719308042204898694545945882224701225868000588265250460934855315328788586562239691705814462055997220336555308473838510693896846389055154475301251973089984301027597399635752496658524934888551006581374476179206026204506029449978842978510999760063873049305153945343767336278518328550980733379354117334046581665480906354491170743993116152005119898475593952812980123954952196195822090798686667116335145115602432017207281067623308726331223931149251043216269237620821348977640745282031564576862003494714320456688007335659285465755895755512276477238404920552781021830712881371101246732733329639715044954798443179312708007887641034740875509027237422734756942892866942649127381906853631981035396343337457004430450784763968443928417719135985764892415279652928872411491434215116394027806674177837742325673350757002558522457556449944368109380725720570309915342453707391333004203606352170853368359007302706827094037452566935839978912909820417494663266565256535151391169314816820649323034342881772892767206817902650492758854184664982209639445056324214245911902831105138729415542315398879959735286758676862623316475266528218681598114626988794395385206683052773568507544023833825492335817206058546020904126769577402675650644238351436829367712041448039900592700636534758876493393973462639618238608715818693323839847164149097459898076198231648180421651599355415831443707252167399180132132717014782466418514979060637896979979150907197374009754188707624361499650158937523698570793846668199878641135864522698199208742837766660886163326559828501964837305082091572680401328592343436867417413990392909301642924942788335508332590356372411066033702703217666758925273117783783090396986693756272820256454159417788238257243544547370644452190372855328048998384264675575960352201391822946979526953447997973913358809280422275767168878917992940624986275387908603017197275365164545761561127385715370729901610036665497484660604437466899483623746175509054677826489961723429995184963476580826552172059774597932534038618886073044599979921012862769582553352109214977096582322866929325347449240410276386496655546194733841943563401498378383996658925636798257370226100156286776796821892665065980156732148447071076929972110510337228658313674773782004249640550887470431188247247883859000902065211027573665940842999522692030706075171096114507493297840394278705648797620236670731580788687044391432001173224670220550214539634210971407359360879342216954664632248686328257279578606542994505816160471709059252428924823158042945165606039326243515176668847700540590477352858980683072989602592276763105684527637220066896164102916863413471316689758326935879216301079039308627722898033537566522491085199329367961604569090391332215529860895379211036380375529353378896208290539115764643846471621169763140404842288028610392875940623257493240565122196499119172775961145323138326926243943502703175061197409531226343564212597059272960160862913387327135495501462009744075007702802659177352433648468028626515244701082824889279862970737976978203981084316552130513428903127235744869281937298855151943038383561027748181649701578180438042091112211401134424985879902988856051551201280541631591997570697462670730821273821058386405430316440424719581956057940664311651652845320003957400807795436854982307652182193147899816818399298448542344504930601200614121590542713878433272270669237959452234465704588674879536510144686248107456375762022288091437179958047516182630798049967895587807530307399399272675812552182378953337633620200065991196818799616326411481892137723410940777698481257897787510649768971459338193023187947332898809122755859320038187975097052586107396331828694154183983449428657974804575078885358996100845848947389657314201697352639378108088664721173726621036755767103301526919200458265055231624122876389517551232792935760359417041942200701750023744761211646543941885597526863392252683760732343258034585439607879925365543312647142797584853758711033309327788863349632123630280896420597944804519964564992773094808142452278866652357386633813404586507588161319423488300648537130725496391400734407279200094901385353655869926067966926892224981141221816406134173967308153044237274052134130551821039979471179829995479102042304721449417851639474242194485960474818582121689386176530863837985893279214056262607114224568207151169048849902788525673073398892867010658907379514546608367869633993674654558450950828343324498941878582475333248802465098773487075493254693416341659937057492725962636585821534466431066532667433742651644636703629267609529126155301375474625453250309736887185225029290587053682930514011984443890077601718925587006525310089634707988147623320326819747653251734899040833797042900534657618908185608778058827260294802419414528071320805642870414516137943009509897802494531237687966888784139842995559916209547810063821401097769174593342385018791463973906510295961831951853530659857557943719908497435935829675162627894643206121749666262213045249824733304966736759353743796392665270213166191829916194290793990359298805315217178042519706990029591090596248182497283279930296482333403246584695728103620802181783525712806285584744752287620503547702148639889501394394399261587946871098077062654255030456720615471394653433534691203160107344927527265039578356064234170019031923123057057190672577132177457250785304273570612787547498060890981737323327788747737424385346034365597001732652954245020791766604567865622828788930504848368776584921503870203127657679315328463169422885221827133409663206550002570120018748827275791809563376455520758692052062735979834768590374699297202290600234212042912702368804680579913622024569505439645482401015900830149175757047938094526774848606489811648258903756921752078455902283873020703964932490260752422472924385760420407764788517264995110004320414238897812306215704429446334320580245672878901059150017072096293911767607115915825425002926188975710979520194885615184817920927247745862918980914820940354698645929739464479112227934381803785880152629759600839352206486301194793996712097190318513291178200167511828656808343513821692944880983361508746848139248500493241392696446171236993445791067924625604447322068073321714055455879850881400462383126491862025280061549311938746231850946164310614944336462425761412432188887547939878251801314497379499499303288555446754666056457124540779812460402425436523835757525598393009005307238706628918481588914285974946188087517148560900815189689610390107951350387786447615465145462144235236014392277483778147247838139927206401123129867731523017771892120238956233500436822702952305182945573904050841523719628520371998285213779282420985338195959336588314169483177925946881974623565816899653331892823209806525450090783212998012101222555659413205950448462603927077411747466310490690356841332814478228954550831425560110906888610903630738326864543304950384385684619973158781037142163852444051970836728696988323266489864276046433869992819105279942982386712207234913243282196935412996205166817724960040392469870853905146083352769468839357870635538182931573806528046968856499511836786028136772392427256593233655805417769358298014509850499060570569966834268877295163568339034342671231128702299661841192925325271682320903237759718181887570757998776481084912751512138801169547624312753958191072469573909264217107061259821803012181160770270454220557648120162394798879990459956573138437048776790881321721145570608974130490677278016667488947236967019995592219300603311607690358110603585137837546796930726753530518737262057713006488304223785953786437923949873030525257126192547420990787551687546360293746562883843720145197746537090416675423277758852110127744535077675301610962022615879615940816773122150383238640610021832124459242037806082153158535196138733366337096263896861404628481646354693312178251887343034102707766109228618105380826019767895859821654200143470506305633417650858482280558488175701188436859315384132785194536670853098484770518179002278484855458115799282827501786165317409734749049260025773268426062852210611847955822389962520795530865725338850187247509524216938988983340644068469389082648629858687549352911049082365822155963999363133610686378530879072930063168296625809795664792638930888590339143795263541936074836474827050929826524126319764734553118516457805831718880614383096189740455724747861850782301404925220311173717249220582205946126962354171821582588847589609377039762680423458444056975370369056148245133348675642196530892617841420593101316050500265436883364824174007864239612195132662888943897676685566760031108344798326008747558281227834787161463301970521353777110800861860986714825471396836559716174937660798415357549220287965189517006399416885105204721067913372938494826050773125320475004468316741422044567257387927066981840507736565885972567837953348015399885035323257830924570770231678806892282015148044184261544859108991105492499541621668868712044484176043748709233855633407554901237883033808877605422878611105927445530947042264916389855427555118391688501122357553817430216261108769806657953705885472486924615450374081638766900809635673962734132665943957609308032595807612397157573431063906474882040904182684168864942071579351217003700269690816816435901425370051893724878588667618359013725965428043928143534792576881749111044437268688220238195227568502375638728506866794909045915925410118233393371567515623719151284460544073444327757029772604871090221607245106627403489084596607479707413484562840679483975588536861858790982338287995268515576629350869494094410075032777917460196723766487864132975108632673333315142551867285792123950425577960302005792104216545705986927739355022143917537479690000925418992168909901306882947701943438037045824458122960333798537898246919921213153486229180369560317511000097869747714766746217383787401819379700015424286620216372482195527091233348802988279374550691918763917085749663102498178028926463747660814024243039980212126235926615370143632703140556007744144380590854092015258153100136009103950264188600002040088787829695060337615018122796696699200794994498041933249937820931681150993374254600612084661416638432879562480929092819746688211277505818900526662467208132584090606516192384766315856090964778401689500330238859779567825982925677719026775189023167432536186665902926991039886361312712919751788121772308098923540346582544365042888774243929314782746252789653600069281802951670707437838677246149237894298224930518833261807652019112051975078746201460497365690828995465812284993798136916773854471821862537622070705417149698658239090946243715132852570455282354553626581109478816037316707983963001409416114349414305116910090700233332256283686506445194171190756567269773014052668160872578487658112241574778849549376436225608087430525561308117588295232494712391193177149159550715615630795898677937478067469737081919863385207771122124899228169218610516834952130049661227395817852762139110185327973072442330971913051544472906617505413417953673105131190304042017189808155328908644319937447015330823541104423233028176737181948949248543915817450874442505614494170536683296933730305905793424343184395813672030227346748684281367949334938962084085543978811456133036194444616790472436698269663804423057537541096335383407468835214331629388198377159948838408806314469324838129997115403429987307651171032373376206125227831641748234198897104972656405841362149912029799358545717924554921031624149411582708751483163454988634076817312469451540420326657010060506272836414809601533557067277220234738433536379144843399827527051395427864093094430655878404217385177469129067500816854543146046468491878087721473968982516518738864963414623636343517644007475378525461515899362172754780506555205222107277842419576343942315248828340175190274617727486681498239524133677848838576035025846729830707809738769509057576368270390169215881921734733758641687044258512284811693150318223894914016516838361039332711063653296794644178032713883172877002741465644694237510624186253359027210945044163212204119879528227442856874237064727317921133354198114199954472857757210709281813082480261493881640509144275707138812458846465549627497241769443123833280552909502998818609613023792705143240045780433688866326801782476836356352050818229014030244973014107335126163761711585107315607191872301553757633714549337320970821174535979525530044605676492025166382208721854921817953091953828185351496435039715816851332984709569325943277354795016089549197496375405572942191804421302094284824126035767112035871961929987326183850916507834203685628346440765740324059449265513693186043601629271889591843874337282226586632311903375292961242043373573434106279870762640585944720631719402245806274462052838187460692222368978455711817375247292074709161836056365566301848224799373487949047445649056106141348419707394483420916464739054294537755389207864735234351589384425639502562970096136816320893254514110732686863301985280756606944934783814102319725563985602765117156700700494610337291598787247529860350078447888521608730257955249582808280149804144623627243388636972586918244718349118229278934054458553820690484943009903691018665003859817278084141444412611607475767610592891572515784731314722824697225232593316447403654278186232744978478621999688290103962760191650837982237075653503566580091766573812298503837005794085776010061406581456896904218360506507927716092227180922222957951809899085575270255362056378635934487423853554982201853044174395865156551675585815353406778624577693735993488722261298815675107149302278409900760051793975078609480169034634514627764756132255606507859751343680853667723097042770251820941274260119358958965359090938587729625393526278131509844474457912570574147080180893919319053737106010387544221909814830798616931999901722989568246040738747965515659434491549879420763792936297117700416121579766320396971214026268210376851543180598297309123788832376444920678555593110825561149264448479684593698520431250475117206473029047617845188164289737030880946891727682566232460130953864669605244119348299175973213596012090034972653057580398984271786448482118360995501715268693287036226969332641708952924899791341396539884514130470772269966045985525411855205760403256784915386724182928957909681698730505114204062046653746913358594651112176196161530037880978209090927486023641586504359397506383946771649694161759805546091469706682589928797189156930202391614580278567584522523653717097955713645313358367418636789857579749828754395404530017702864050119856027791723815270730649006771065340411592310766550495863633757294145559532316919328640425316880720920850766186790208951360777947422478409145317793157987529875701648981490954787879107766483983574974651930784043066324961744013456932785346361257763432288145255825468617450774032555529527802602698856263595315970211899830659304323856592216628913718010023458078772863736207738210518504626371845170829715472097413872258733569549746866473082920751793147120428883153356556163587940161492639155174800120724641746296536683074400023227670669591012163321368903626333116880347146445004492779272963613593626218998575900660609008388162741931916654610108316232341794729845777927431882325555338117816186628171791282279854474557001594705888447073903108524932201494723095947058000431012618318378425201890709669621927828847369260782795265579496054526494409127781532433418836342123964198316329808838615441426080404285087935072231335255641809197851739497158367754780042255276170126247244090471620840040829803444606956332858792052871195170437760243037534797946990544856624170400044896205925029492813832753462134474323918325661258282984296346509853823640397972890594672469067391512281277633965624133815559770795951236375119691479819970872936924142136048293514128215243516846381187726858767461495398347703169536014658313916443409263708055308632059427231559152294040737419097957205850543292451425703495580674575918291361704200038008338989796800137843110825585214854574922071256483857722256237497444556246301717358827507491493512325940024698920067145085843788826025339945033530449006532527009766590723497473648044489823983075955431950573733349765805638905815760652991511801788329909059567107014049719616984059638401267430843433906936111389628798745799023749289659113233575572007080082300782699967365891116474790434835685780372682582545530101974584861884166702780034418875183273407763750249025191812901328364647302265974883337275162271620234361608694487265479358120603310156712836916489302710396666851485316536663796429338679691967074128417456803236293484521608399974185853357959465982871698148623440780274995894448649101146197823647639491401228617871749555248310382337323255989694463526417341476180618392248485895552173722459176217355597076643253469038849615015100091020110777341946409340935669466341234160884759630924434014640323616913747583503898707611416700270955884628556811031492073397965501575250516407171920395323328490896874563408101529856161915947712570033258364436513921958923554751525349820093603386604370868568932685692144969952872523586212973687607356082843548756825840908319176535470827817610659912185698140497958719380716592917415416589386622323895457633233739772471911723217208142579711207233820339902682639726562869900209107616692018975826427204787819851093802217133743118332662392533169676494216902594251688167937669816046017302810663121209747145328812903459515137251890157913841858388879534561857007411540326067851143512248832576456082711771883880016820765128808105666042210054388502518839922369905481273122859300387831473629806768074105815812938170167983176287630804127125813687858279127775928035000615172078855003779234106350126584816505757190856850200250102139035852247991554784238076970650356194304723167071340248705603030153193628618514568617664409261569113622861927511860881901932501812730324774638673650803985086728818171720708102043517812526653416754395201859359632440028200418015354451490288738850367067951634910866798114204511352683772175100669823378254091226862158174240259681127826192526379104645224675125818655889550145667367733438514891222984100214085703659905917542617861833949025151132535223882913839704770464804399850238955851764821976728726693072533035495458840065994004370698839571936387813053496775150791644735834195017693399407118402733689210577972295385171402724976872502137748199914880929400938140906660117297553908471402611937971279961089876931540460463090424188667378818276403090652813888413281823924867749427665016836297078388628985352731150733931599679202532281020913021866570686761949302821240768916492852134894545257852424324604248797571221435281076264758702913337077711891214806999191418352185270558678576893858596542355952791602193120704620595204691432318320701473893375034707614283161196724721989848285078986265705872369628357093906502132855126322907869510691353886545598549751452722073557372985320675190809711442751209792376445297447216336741786751084571014909643665028499627855427680733153333699241219397236844819517820813425182483500212926641800777930309263368456676901812129515428727150336629003457717591836811982206034867306407820363700119739171278354213393237963807986186011277931157043108480696726237570921507490213488900721718220223346629392565549455473287180256257618263218897997628608430671561612878507855747569618410230786440387847692627460496957828431164678747720243035175505896865787594166635389927212119364472639349514934886184678543788427675237176182374157743625065542717894406945603725064932139581938406769080454847860027482224857210346586231081522366857342216972942817409270284621042370127804979204688355097558796612625561853688438500329799024245208995419910729674851688079549745521904626073462818466086145125302367738202625773599503582366023349428985211304341730674368872323807402742849190352801155881096045292543672650572459431889089010824967595917823875093346293549216249793464769289029452627315112252572536052994140991200633499362317607111024848159185913396902324160738845706346013374190349264612722869762316773553233584017980390538727386477851550836058289085968883868022520819119765042625213937495307288065848987070728074529435241975315210832813148741291049189578100560307557569462621134657269103695414865592193519612818960660584288492647347339708886219814718753327962302197076125483552164373197557517077873023893994377419420896782532009031850832389621193905215668061578044930363795173229652042398864222880623242702979848640726870151862039722830173720985225761880813667729072298660395621467904324267462565172469075802598794958282117142212404979295724867047979485504451953438609792142386367086286810945681101744938683996208143422433859267231098059785196250673646683601922860086931506980573243476450498294632767629797885740986474791972861314276028203913127333748656612041582748157445010354524769501260095315843322701309184079467280934998339766434636081023277696002232368331509030606958338089026481436051809925333151295402803980109176852690058929844716241515227189850029786647131942718171207967706623903526357989914731220489498921157157389426473669218910217830623703608019521697740820631489196357102564358319766526168360804048109943777252906021739263494276290528953699520348212448797962933349671003125629811500615746429780252093119575387124757791530536190692680247951894399888009187248436822340637018930637471788056161370296473854340784542076560915506823428964615655691623823151483300899443589973475784645382741155683420210585322841908797184903347657607155337031089426974275427263533883867318386711083505613818475381783313065562889799398955402950708911008103806928021875095763770596165668973247574281069733155171842248645940556384577467940911140784161374944125182304792457250872330619565063499229151109821782231227463831565955506144976424071627402131617078376703168827001122804606106995122682897015271580138136592655332486260191414722517817266115787179625854566519685748610599703706680329973124299957196567155287731508145087795042204833045349675217550475447919062919795688758206495805035562864908049440166242814208997847287237079942983891739902460418705439891480761679495110216891615538786800309319402912766173860661637261321348905279021357466642906355990423214114593062650833804464145697312984005032937645088842624425477812666762592016188776016170916071940325123697323530168418376250257919734226786460805277308059754087227812105563768163394218175443897546099976426845258899004812185772137064728797109552172496135285399932352460113247683003496340298070858560387819938279921158844253479480507114321760714337893327295901642787992817377787969522784834661197053592164716702313201637095108498691461495161960704075891541560482420494128454355385894746628909944186991833743679787914787288633081454019481646755335848830824088920010382822349393108855590735182099884066855911877101630949591788249358287692045774302443473228408499325841674565681468494166239538360310467744169022930055179960815757457855861379614928457020431358823427482581434262118914771617354843902743288387449977823588521096621435735539106049801615166317520915260284510824879207222079513454034962945194701779076526822936655168525927507280267827624536798821945466738397215366719752603876821324681921266844645067088449314188769287445908974314559553135936672046278638316320891298789058320692086327057008126773746017030614075887793380374893253256997541102075371387262200161889819925882382129716658126972285249345916715654672438720095200736246822087927123287645981014335529640558260918356956815728352416943085324539827136752381302645505342884680434705415718952543292079595840070403739459257472077211466632342991593176832645416208468787707275024694978921605564927391136841709024361026289594729987927728052839266385739337649480837028067908609269139690420997305008540416426101589354044538751933049951046372623653531711903356505073565703836169069215188809993982312246019054839091106122378897751930939831952086640072215734804811609618490686355977559574063703510787555849517492276177858020705913376576519444373118174724280269726765327719691615316384611031570013687982108083871414743729693393384841284240371648988713915421958792003333387055261625473913007930289190947125193248806140193305767246336242755279497146642332355781619555993905784336127588107019488084082974469368607763997831284896985685843953744092799772130747560355685059916910483499672233035302329885656008484427034805617546593917796090219487086529033646053117039881799238602143271078307171162984341688404591961702283324635716004736649645506304412640743196359876472918548532830549124415140007664093408256887400783403581460932621260995615500124599025872591954437203395223338225327387030674969130462575149752877443939148217849518454237358693232843286612100269377932836905340532088905008970924514394144712987627329488594628686812355382586776124928881654377086459057142773650264095524203548573297579501467291659225590534734296335340863399144550901330639209901597422651247588812456693734142652207564102925161106225961093510108470062509491334237515982139126249963173639340226556189089402471569928381758344485289406513816466193561115666705279440636239422174106410200526876938728227190227191504665356831306340067063989803703068356597226279193970605145079586214928083220548086545414597637459187566714174455210899074758899664684010946518417628840765448298843438849908857050703891709151112792578111552398084031904536299111911385478833558638587902695016865383217219027633096127015705080009400648693635679258742278424010057170005406624908346023071639489375265029439866861099356610322841790139386658241576450714525415714135245235724666999970382554942707959033864749667404132125524576524843816705414864539577525379414880896008940025786845326521842567546925835012106973720095440239155783765620361503855295030681619642016504399984222368315689919977530295640209169843621684641533079586043494868356059077136225734136151777123725967180489999589416929730652696552971173034395889485626197051328591800737475522413653127028200660640140067939967882146194771540687083256432601535021119801673970900826103630550930921252321074182835859400403575785652988764807567466779904842354405273825870178158776427942440014372486399681252168494044159212556832036291397629539284769057761004659551729491834227849387938419603958391575779601722801192901292852758094309899475759500136226500391423697143057322567264869007634625259579833128457024049811910650957068922778238794371197977306823317526735609710701584454603626408515411561487788519978694088843884503675835458630748917931383692402067218464360576655429029471734714418144932990116332830956190503894578258997868601359035258391233874532189677138246715963457584053572168865089080197590826559056481226096406120312629591857081275914218258870747870122390022776040314373752741937001624507547164504174544306252430517240355313124915566455650769599984698348634086467190848672527658550951313471332140172896557955644326509489480611296636188838405292028994231101196948314294817983936112894539293259087615414070575649282802145911171532228774742471577017963387815895628739619695502288854594240061318807053609405936809081862328953370574510701239222155187830960001788323752940572697293463735563104163371634587602137431853411885387928405329348472082349452629158499315923646553608281132417138302369943542725836373371205019405181578403821756528457908062334294723656213698212602429208164923878141032995371929194605510610558125774252086685410577920192936791974454142646233042201477356241726389791193989570891114737385053585666394092509394078314938644305176523524632793139460171632926039102448239703958881247018570422575072119406026190921189154429587872804582226962573183196694268683574412546888657033044452638213423597301098529962238437023383523119312980568641374006383808742895235674657160213865724119758417603453189284799656670427954652972609911688732290124479079884169597949974585820746876310469481562747052051421238522338107983535915424160183754789865749019110504913971690649241473292970005963132505717541773201978631526876145005740468449307363510616283674219440864502399015040996935274557776666116213507858810406171103708700120804364778392485633858633448529178289045426147405444511990526367989817699145668344335797999133328087853677002583672116102908024829555650964265231035668330632486490888785470796903852755589295275486572140688047838382935087348131968530946662993073093789301870383826048670629955229081624034757935081835922656892478047370555807541649941616312695970005813794312973948274137458146049472984216254987173430498539769005084198901435828667656546868778642402458151342570687431302150136141967656821828026825665773588926297719182976059096517055595998207400286655526707342153291872118168455475619444121253765907746503281074991033901353752165800036791260408314198670505053255179590809895689322883425644216213103371486383513098443696953529860483269216388114690729053617937877297852446626208371832985645672645145912831256587626856476567362723459341949732321300752460371950334429439925626087211219161402529632003545447480758080752845879610118423538569956608406178048282754576172229555323800758389873315740838285396460633814000680328301002866211939384027466613836389172078345267792104284563782925940420409496974156565807382637762604068499043852970479816968310820061689194345627397381407270587539350078638778773547504830609403591581019185027973909558222716801315268369730354251751824201501006849752440540888774598644074711578331327506613388686616429580813235984346653527690286486249158619346373935789555936111470295867647393665817446769920161819929862617923609389787146762191050488823475770927284939561595693762189238953028175044641172544872031680943693712579312411101880752382697577900245938022293313401445699448737743997716974784092012970079760999447919499466647597747998133911449233297191403158395000842981088195461480212047388058948389506911753397080153130814069559266190705670907479536687097237266675647113473302037112737046225227278570205388816767379988571517967665522591295685540866060822964450505181718176889487539257676960182799827033013848069120580878171585371373070413411150941798455601079053850331629152187413953038841563226167531349991209794151258956245330205344076528822509107965650348088704446729836119891549714845248826534118284078815708645174327647799641269911654043203372760101593182584460117731436003195920118784329382647034735278114505893011800715623992588697479598009778939817706655237354153120324384118105495351286461745850608200362991652931205476818965845436542047315226520027032103124279370312268875957256655049028847074452930868685387712579223883522037130917401225313536203114457024985741193865048387813693625162030182997708887924873454118064302307252380900277819851904345165780578458264072072717164575795435884278953336544650737611919983659480764699250097359027308907306327440675020157863663731841491947531857656557508425951676116103068491060510471851585224541695439655276035473237466059113412180912064730723235631852917461167426368239874645878693986218252330987511101779902017898164748195538321993671985119457765493196930626184613176916662807935804186933572388583936030550538922448673880759712685080826283012203792912527286010688143823065788363124934845483086987397527263319871933267076388556426741855095137186867243593401338667857324409942135623088345832744701048522527406611491830232456847582569032297397234688043998467469420936408540770704753206413101640274640443077203491959556749138976468120633798326752658862586495766014767345166917401021894640517474792398837842163319961402904839777786628838073423106089673171292188647059916741461080665630078213325003214739482478128664110581267408346263864855550315604865101158644036573030618738077700425384317675252041998603485269715779347538605795844230101169512303689684253971138807482686074800611209271659776439283959900712423054083972647520202079989069776520576281339365553183073037007681505791239095900736020159621847986033302682120911683429639275532709052970718956011651091848722921926795569933800062414813792243778752867969451986265709320280038822881465784346922293178911586865298238828068992159038385097159198426910947348043655766913929900596483961698356262567612439792372758917538825577738895174218973397416084961571398465330423290913147595222545066226339146477293628024234254714139663578750270555817398520496744003590206749841808388210391612369971395666926085302809884053484435533842904128112026411076826923608541737477208262014369055359257526699581048993663649574888479216166488297642083158868570798003458409584497260520066455660611930585959748293367603918397770463440954094873137874488891263621661128422651047268913586956600069826933329962305126949403319084400872040786540730457556443032090895549045722995736458147217316928495068929228778937477680925769963059108190493993722134302290001393680895565352446553963666051352965343663867559741228200384543398464433587876475417595144918643690554587750872072128170599761691849687633347136123087421662001268667455359712347756759974569487541674291761579704241660620693227725057197483776828824841316413626014031754405293652024886206920353025616676774288529706677528588198045047084224344380755097049316528140616531663348435703742643882188179510186225164739480455110739216746299527182545811437986435112445332772695289274369840552830826518380330667098457341968619217421000719763924732697303244385082045526222642072352467324283736440397807959277149936473326140687341846986808441032862896611005951855792266495685275143204734597056324532087456005276325943609865151613502927464836976819543421522511244204970060879534250266371240502193275100174566075246296395047335532467772879798836252539361846483159813228021008185475159423988993262331016483340152088846284162045963695392824971476083976132737678906038081290797406433043887291698474656873229478506714810054780859425796543456962257317471209552034491364909680194893146537208307622314951423658983764101050166134918875969220994047163618781831373546296752461643695394710354114238455758761814895685876723391052063168120497594360880525604616483287824075601456906546292656832942143003403928593523747883270326440247516816757010840750119600186630665733153836740639880301768743378752290381673368514624005790496397052142371857158593755808507936432450596006072822655181856475361785947863887467422642586109153095101618761990677843952666316476127821112833703774426509094917780392433699288426258588227570813183120034545056687540810947353672264835735192758592318269503911201466608836563273782713829750603084090062165086571102020478886665810254228264577177583884767106917677419777072690760644893025819212830162420232341750253429677545957943266573509767959484918534577343723894485458851965718981114374253321483328341971749022373505490368102198740296657744574257358682932362923803629076918946950193188598093089514920942238811599634808182411692306824797226064130339041882328151663171524159849528393998260332584017560893531805949160772798142131774156747354811330471459708188212460847527900990979884659343161758949941236062673352323014207796795425764286491051952838831440086855642583896303742319714406496323638491955930547865626499299677377883612531856694030937859270464196903520150329520324154742532075354409896138594748489730464353136166320788908667737259497060364042198978664473721377168421145291189440235816755810007653745496262699891062320468641196760270796454723119047710953263235305048704532773357420731554612597341842637192943610581104839455854360659035123522728478739406796814258479094486017503424562120987901518578094476048159054838627338162984376052527282946541612906168508034643548725305509592127398605584411463100980757652200014406676787768208015343748289429130676113436712353108831146025881332440750588219668153125710428864968414617258487290837082479551175662798706293386767894771653015713586746078514942398344948984918567356772777441886281212800000197339007039760309630803039841780013417088591721852884217563075224669198204680026300757943620205587516416145214309547730129973740704975416789066294084400772751017106418543983451049377435040197236256276131543614918889465264606765935371584399621934594758868782075535035803578156085189637156851438370504797053475244614426968649938954035040464805005180520541364767862396088803849898457736133617918164897168029071258966479023045515206748004934704830205004854006631619427212905039490470186062828575795915561071516643102956912482320048222732230374995161104219320382048937399806200796911855836024505904690637937878627793165650675704829294751112331743857134545700055421379561722161751222114269789207735269391599422290089987915716157085194464866758242253205689659911275146370320598583140098771262953373907102034848087629759393362495285820019021269756933012415744004695022572961840232274558182173548287664052004465754190619684020954986357482867643363655083598729938953058960300249468896183664576619999319209125527539733186730496181360347686854651882933547142480838528815162940902261530706716954326661840345858604807059607236715546546339893188405075053617207768382137216421030036987159863337081946673977841261108244827351998309389748968907716516971063878939257801368575053913010657778346774501705483118860861756593904125723571995119522560611007399322091245541528494012594245154893831688672838930467643961152708012924434136656032976360642028880094356364992991152811603267911914776114561982685213536642349826503091337599251425963652613660618065785635260230887358637324548164934906877912359177813500869998890859071579713825707243822361177921342677331323096693667851119787781135519819292102862418733207196380712037335458293509276576710825698405146680241420737315711171767645362100713278159137052784477952171720943213129410102444705098894350715636164177354738769340049508420952758143822534282616864200861739307030376542946916528201225710505689127869824776766755177692689949720385091837383340648860937785034280926486386001700141897354383664590387584999447860324605831229012276378028153336623177615133310980282190086196432859820890324757648669433984979579173833303480156146652653828045277092208840494170043945096655261029372158926760969289194034646363275276878905293520508355734939920020406777418321499706470421631481535411190458296732284882319318632736419392062169516717885292369292517594012244674292767821889473588470783193265238269549933858129053644243324230391959419070989687515103367965791290161777040266354689495612737181301459932874036939796717998374698650815719904037466671056580678343967224122194908978787165591438347570633402173896768476305545523173385307349454258364776615283589936870199260431544122869950648156855217250974406702635404211735201369106862386610397202989398458488737888591530895855808414519769696351423220956722830888487941115516122223500583015516973361518355330280469490583472419006386394398976589868441327994247380767819611856558642697602484094225157415898511170870428128736190388218875815305158532504198564699448067220828305149718663673050796202226094152940985371820384454421055674401920441166168543744373778568405485860228599623126248676466725786352548098510303009678247352421051308944451859913651711369948353043884476418630382186947536555340796103020307025630535144847033677056129972334625384990583723718916897234115211959627565671901278970254553134150160492545126285473014446486090702973805826629026632826241426872586521811848989309057723032435490162220521264954225474915876994755139204329728267729756447938276472476929010860612010968023110698332208306027365158839926141975239989188307661380731260125467455074537499766243589014678539143111900888273467746414853683641541228789061011726955519921008646863948593807531888389980200763550097994102398140160270856026592239269371798551011404976876930528157388689374549060796886001260715815448495396864545965184355763761478496114492946513672509323107399405616101022263265861186850722708984922746783009909081044227096909946703692914727134550511894058523844669232769524268509589954068031178769863758937373446715121963155229369885953820779428242662846112691783224263213310071381222006362319446929949071930405687620946514079882535989671019592063733422563546909656938748298912235678314441211153403603371610722096036870306782411240437687665584778580260246417444909706988468019902438070450775312263232983042481408606130642903247740105826067082928488058256910423590391755495790808126541468506120161470733200135043988204507839396789504731802961345837105491802587355238415074093087636440608002911207403943095049228870519490791177744716456640580481648705753659217332265620402946980641711701096204177084896117097897430954467605298373146234540439585309215351758284089587167814557445760113498985391701979159563351599915901700716699995605162331605577114604494712763417733092790689561993496313281256209156117630998410375162896286632768749461919129909156411641158923849197469409757738185151180396308261734027133844388768028346126699552436513823253066644517821838306661713150155336517418607402305748711532109599761885356074724464744795350573570254532780956305664209059661178491158774366978864318408157559205971300379551395153713642539771023402941873341721891726482456621244531995562512535874414534863069270850336971571018135466978834538839626571346349749084717754134885497391489875986603327007638113521153541316097190226449206829158313111577491450143235372471861417335508530662261066284477725958873707743517884801046378536267484881825077639316756159106778663760805161219786311717940314950124271044260426865129533913873144318494071293697531728592416917154660267082011431198350289530470403258013387083900725506997964310711304794816280806114638760743457951892814407893857584954822091323429009106758972558211396465071715602261505538369717957183734147273013160867839213480720612103544353532307136101026129919335474221417274662182017927127484832863851982227368397913861905328569832061219430014589951739002917962268337966095534283280087703788720844849353207602333783677753314380652759309532641714288361820545738199252005414853507621000371113416495149529571016794002579114539404346167293681954244117969575671061983430089329365541159829136437656238968943667370009156564397745139104059435671567763567797131020763514164807962261231196390109458576346393678681223521489164755914173976222269764815741015723756282328650779455690647190975052396285368820231410705082600280075220551787635282162487721251330483164345535631568211451725864746426846601342721016102688782393685694444758844443413160137006839350771335344182963376127234873038617678872182958953089419441643989585735648368476289228296034916180744632179771129426098607434947223751936565150412758743267334352927976127033039084665954162368661407321758647978761320027995346501945984281001911690308626676521351739228657933615793589329306554798172286477583317297446267753649130277341097019087962604054635989015992736471437202008352201162130190012323013573463633978788166401766703338672911041474392153649540820484665252554539084428194658123106306201116290551396172567248042002062423940429408106532707279882864544324374343353918754898768470473896486342415504996121591091581397360121373519259212446267270614647647250679558997828800180110743996707930618901543532450893960745838362551300473525683626545419223349489542949775746270603713696047699884969468725417375538363803900795736314486880055382569729348459899604250237387638592799095363702493899126023091275460721886590072878287158022012654650941719574009574450484030543046112859755883290070156024155847480694338002265191083170941028849396503953899489136709380111301940578425477597604452279869613881969723022118464457932585304247273957880100315251823914747260563238314713755291622087586843317567320585790622778794048453652642347728479133369707909981647052127255429849188527440391132015093437577867752788503843269194966190527757807775831868900923471402211545843659058234388219120336077184569009092229841504268235586701614727573858805069236248676797080211444733592032762172331014992826062517729178224611035888155114989967763346599387477960042484268720796382269256383493293771900495892229019314117951911088136738711916344638006298235255132641217969779267421677750486144429918353052110082055847806647288138074011743233706166076667625015094726294334093893121077722740955814127029122697869472941332043418225468835046955484472281267814711849222922968661963037810071114296004867875100324257708232276810345451937307431461788267347217716146134217728359953971698367297894920493889577967896640867849887716951570528431868706947686499162062144034619795991522116398018517844091803160596523971320965995424690936312500659259162737083979599612571193481274709599975139237591296385837753605832935369741172983724315266892898482730305855869939482804071179792522360901327318411765239336794089083924992118683242220389689813728325754856469578115781684275582356308088534156338124955405849348133060282399539542150947136138478804224086641566501039542037897219556466815229586203169985856738287185107031345917581003350490818837588595470673694308119028363646659485220322287050567911255966962824645718660423962042301015973460260979851413049330621179897960633911917395704982917141559640258670370048784634939267171000802141589503346546030880028409721057271362830094488443042235707000332173163246606666555084365917811046580473512930021489585804777983187775918882590749541995209822155372854292120161838250645643312947474741008109718957040621373599819723825010276685401687728962417965748522178484734667182684346716528396283678864617118097413415918741983367659866516032717842188728220213831830678712482292643561884119688836930461624419328745568978613696092172760233146098432346754321171616016886918216971919371077480650408333915734629990100480111340946798200341708529527143454577175468898735016356861755474823351373411627443272629419816339324246180880462520255551024632719235316867340482669920023556769632225632118998023828953439503484323384780592692706304755802027073015971594628445316706034750382088147282683370114705199783584858908460728065589165145227637674221019695196008847963890953238571965088593707599898281952509324699114663177085610399698459188160042940445338514756263784479947743696032637953505906280501917649915618365331245597402672591037881330114294205228164419850178101065935614236984234409757869274297747686375516088562866631611352751635536714271246720900103974952994972968850078513583391674790880296843621829190741997066284334387457774603859011155209856342090520280573413440975229346627482250706843878942901428343492353286420664492870545616348356290187581681260625289907210820604619358912696960455933052081876039458500926054391287944148646484484627320230984082401336185044150566242719400175742799845758775010199934192247864131039783447053331591656868754145273267335120182651957304489873722665865408713931770198258241050981679589896422595790311095870979837964114835962414783714962801099573515919600318546902275341451573554775753585465254683267209534413885312016395531983302537041601559349822947726332279381043065011957473263177538765090483747733604510265707175631264565795069161428528570974004222586338603893907188123989659256146839862960849329117023495987584793050623197551569646782098162890168123261424008991649354932362081513431239146775090777837636497488359828386233396718264325971703805531764034520291988034174489118622274362473477402076173779606255277423541845826217451048967739956632418783927525024558474293526975197247228087691994512193702300175929036695307475648623552477716901736618461289480034206562212361858625713757297238439911331201140374990689744229265176510023864615628446135960702643672161575719454403121744474431992999492829632088004183657865266431259323655738285875253602833450507970803685737503996884804271866462616303638631389246046294067856483665710924573059127441195794845456900237957920489733778413683974981270256966747711075221794371575815957930903910288293509739538788067701843384691132581616823435299721982292326123125173295098264129490700975882198211833414965395332022187034442125232503197666310726740272291105303981354893578417432597106213041550879919652029015533711226103244037210755373164455548818589113287653751076292637655089448580870242502327894442084565204039134623416259193211630710238440616179932249206396400013853414224170464767364634958873069234263524840746098648489369813687635492476854694044017909591294672131140394971183766972282593571875298648745168203475828955213257063431196600407783910325146207612648515424421895238395575681232895628605242526191475335462461200870589936223068392960138099316226140785837522035281721384362681978265406708709955424729690941324194025471631408834553901126604202311211269526296302090097216979198213326967497397393402197099707560773570521820236482981285325164641175914960117505540462522968074816183823981671055278829138602164163997193143147499504367209578848340229406985744455357842716852447259189366854115794770585838078902211836246658028270600783154226186131725738211133601500714061855573686799148790074169643889344026781867227182745714427235486172043901261306725238759228149008209660157055817092453605900957730767355569109600063673143296560744449293260416697340594329639919003978466106221891004707662488103043661793628020405564646951670507775605162324868434300981802406703874913713395092423973452562394700934143860554785492876814153460006663483063696049337819662923023515876588843141093994521338266889369030128415242503404442052939148271841549828627901560518325551442950518735929577642344506707235277553493771223746712977569543461002342574916474517481120338151962294457637579628220337864207484233740915058181083958631088561228073503603784837887997918144618577212834891115695952805695801975856195562571830746037542732880547510303559688417468049242672465632109061873256252109998402525847105733887597342816016064815133006220757361827694370840152666622499482218398054385046400332951547450837832935589839315060427947013145981356007711187714067386191552688757661102698885737832527164269202360169699129881181211902118758665910826119398290199805415966442206412012224494768082813297163708352310843155660754246806472685040897176574592174356332047780296391602380053951334578219568573503604854686052874952827579193570418975283657384941750921894016347199231711725342111771993576893812811188904998214160520270334596197485195029290514270989863593115768385334925455001099826829674390767267726506336652515641137993963444509587632221792934594578854969961651250719794732204985387734378032609631125773741649428397158508687920871867181703625836880197563262517754564371358362353278653377486045435736402597996352858081472006953118464545454860763282104521623210648502243633402959213903002131029558346633954472258700228904975540756647095458233257481728465108985629910056579026069354000509555245838139095499157554183131294839761296318044370860306610956986443728109511246069898512786315401314574721836638828126050614415216977243707347259093388980556657257789966398375661106622915110801810028151860412438788276863669907860940558789424086275702849387718488494571618448249065441848271874954611684276128919908742105698997822831520863429346505169504904113105814551463306630538330209600460563080505975998912100667240025423211704897276464085586672903117819609251747897064657823510990036637848906656683701075425234363858663630067096561203380582232878520999711557608498974418683210507763315465908478784088955623289513188207050226420191999111209614806836405968423075539219214496507037000559055703673224831074590441526654058389905969046250164429161233610742033415746608451711163775585475221877420003406641425198432214673060680228694582796491153945978489288457104760362471920523912797458070945981492233834984969388458047045444028125607975707966944397113445482708457588388683708075056899549939767400992929109899845004492744916759106121590000736605822877037865325715960886130378886071720534828186348424636955188211716732637848480864768201519148840030976061032585637802209375961565233268617848921515056981796191490162766144543337636738713956011873944472529177621801512289590197557365693199403089912036181745573786164843967985561930097805851847294056315222617453880148285152235585018215173159962920482467456099937842044413200905472650867263815401833642575442155848480328888451746722880465595911367925722205423935487802114650921702501634867197041101082310524442107726289203133209277191224361822944595827393249264764101592980952897744833373916675307000997244475788958108578291024655401077939537216681139287264216700794647485958404549927525269774227142410453934744685519863771215395073759944372632795528281704325961320845460907063472516463860176748481871793741139759737527959123180896798324833425694580284932927209596295841657422354157964396342416138043801009712439697856163808948854390126204115218055769583358302463219814442503305423904385704020501652449857772410236499652369555588819766017120634170314694835909596849687110693377179408426157370323004855657448034924004196085158024281010175724276054063615006769707709732444859787243845693272069940139422893534558440247878601132824901853684682983800679131916536180994920493367939719523452002840470786129730566694952341943565126129681765684730389659607902257844534500976295799863219075223479232375150482375386377020811676113156049498341556395191083857981911146022239258624833365595007544950800536849470560632150554911424552086807564802922444938026386174586406584088852914863659987290130846039753768600329867403892750366540425758978670373980764376424135150200532735383560386523998006887793248478940373149325016138649577978530490937637187374279766461435487295628422009581584658737970322440886432279387755205570588843353112408788756736692617914214184454401684495583530823010953932494881608529869715628870140200790751478525665174173550463660132367310493770900875506327331716997292599473739188923424954909140550153155122687265806964155185177433442946105484446127918139524919875192713010216866124063088626271194253009216201851806300010931171360665539015662674005650381608795213260164520120826014020245364678522043971865265635136460805880294597284308542966347962047977756265495859100891795934738609091214382406357395947130977713581098596877468726129496785936256191878639481725157252742610853677547880732313619590367148192781157510496501651328231804984362720064956482841778767211215315771865721291108697748522126767738131584656044487761212636072098269718819743509607765067224855386368558202302239714048563041393922120137801313825749285041556710866623376797698176215482449610526722039832627545051691717732069182570063839116156186146690851938924137354898382509763275278500730812179881631907746181123629085002805264284344200779507497958547835083004667684510135544283438794792505646409325964521872443901130107354186607230483115502185263800245639957982345016299184095533560319577850023273987031853845509044025750971906519502160866892029454183078885326077347324572269668333808168643348577296256197437839154299200027243196382601346854799250403940680727062170446942413024513525810203582622674421264836052705150862018003475724569626430904538218037540072113552798952130075443489385217561811678494720930569825391147648303090844975674479394403713959429722803284615885210396648870777466872123759590922483894479816106276941838430365400887263904672446010075643367173224480905016439547494748114041315335618153566752632502772307998529653050302262876174677210537978852032952452723119389535844216041903345448044505098856719310079013598048863610197147839712139562372349749449232661384670671965772791897915956167465506748521239358921117584503554155224013070526383538504398804871712030359310766918641131472474153933188811044010562788167492517811291616418496703355843855971241712164541232789122886588739315489249729168459222489653695973848440496549653832923664515330563108939148430582663094560597108403393522811451253180266813804859780422984789727608490539968377912443300198534864250070246302016723573729143025435616426166837243076920570491651872107318493979182964878605515887305397859061708205326541204684468330892371419726270417105245691204218870804212127856933423100542350754753922884102224342206049858298586099198990929639907421414849626799822305149370470462940161413024847090549248468893022866699238064410597491094209639651954018456915929032317951269310962018827351165236275061149507966414186077370471976708653845927387528278801558028473325597151466793369208643123428195629840777451558282476303581076596081617180879556719701226346859120075648718656821772829121844100442096432218962955117886715089100688570695448998725164761773849336720871315026660289340769835448963954131471088756739026674022747663295497098547780727158641259928760010302760430461046875811345884884186707492785709996045151688105303002941642844043898374757399264131408483134269945952949534160608765113916538861205454250705986546872915820796584984179197834629620126673825365419217664748151950301725355497224463088490698802831815547944685794562533096630313045910834153376336109224290798667741086208080960338533211980645004842298777415948716343110615065157100213400156113795733868866378219218588421424668660478446472126134469077310494296647659908464078229915613107953649408573738174242465476881075665186265817496159412091935799874458970726665109377417346309029940455065959928067250203689276561252538621710443124114082386349304587174391918228866337011492293438589030384281787022800568372212260783199794721364445023153465861740061424420760977213535133157888078591331426570355682107287842193944090931093208107629206515617323116042538011871368124341574539065505979321622320902080997489606286284666724074288431980123140115155279477016178407411202147680237100137023121160611437527172399634509354043300184696925800904196830166710913125386411513998896122942040736832231606980316592520837106129999575541363412270775866507123647610428327805571173734766145346895104971827137444782124554839229164686248602209904595587787238125000743031064003196849020469179707411768039251816804747696256522316665839658737837347300024850457199412210045344863224860668622469732890029726235963752771475809817745464961346444999786942066321108188859030692169733155112045012640221030350079292818032467939000319635198346189857759636896068345365315508779091848139312529035842793268206793717574714151567127160069852738986191689329877237376431373969448579085673357253205727752596119004935582387465072466521766938487929824281228268780421159203491502331999636504643124232500167473331481758945051209896552899432277851611932775359963261185530205174856753379778894074111364545917921693384807803368954460495879566158661958515663552737429949511706713258208704116674740069280343328819799155814003843403759691830871851530308593817912327064614036777885805131239585281885870451637631468669290581140176219187319256780345705681631027712507153327933268832211049872761037690818864013515680233445409067445266357639581188316278386232562815287546620936642252602918331238421183754990430510917314053489258110152766647299293696562269689661357152104621837637830277495568480227931608195137835031044624259476219043964227551979225495425574694210163460757169837044322529053854621520444705381018711016664647893002442697011606826372218588376475093801883335751289782489651747271689945396593197146603180103132739959024643651591638708184116799119354712720243509089221349374042491635232644587473150500841953685402700368106807882804060066923645176077213738419064295434669098449498560289749213221882961784994653671180740098320173475405009716451458977832434609699114013361917725689216137091244789775873782938539419094851228785804295453247258243823336700504116695746427195506823836116752444326104698875402819628704300195334126754193019578408545370579438141582014535140829266741458673811418206878959523961134042370059387456506834947702533063217818421401154726930354194304900564030494549404968620728544547877112859228371756974792540994504133805920130474920172118901535571536284678066494369814998017796438956397027343166410400898552163512221035742227890009106675062075631253498084505343132950668967049968313810107668921534217401764246294908450528180330919314897109732662692473065365700058965132606663690569936201594693559251345709960445953438191879879912892806911250965229324659235555661822890498020268171528196148945981412468268010330433274788030293134289482768122265455761491773450912431889256407023606798209490764159078157017746868638049745484545643292354248989617114031229983599200436712048126943913622978422728453227660501269976207634353574881069193769132821996502863294062703970147295145823449045468849247774407799360594240291178881113804009701756848382760628993056095599846234528390337079957022191997248254402427239367728159103425672348685861977704086250341821689811291276787463659292597466665940763065856397016788680814783954739470778474188975878086175391692968030576272312072953403981116919372882522278781286375497380278683434464162441424203835711727141069426407486325823313715594499362187512986247617353569509112605224086747905428343773543654339684691105278806396665056235186215463182643608475878490863952168782996755242418677984877534390794881062282060123685763334144921248092619462811521576272552131543538146763712132825279547341978608538517239978752150186735873758959172566447252007870109188868961212959334371295640487275864720605406390843720527733466685175179586016694833620078928843760658253752512226763437568542210164524676631044057653235201173947630688382216006167447696941077473023128148047766595150702372917202098868910133053544955452048785468761373891088711251890318090056200121561294503304773031452680305976796398816727202102586138907491384165698467778482055242330602060738464979487295614812255363406126725222126088667835631565075677746033507831465197534519675434705935694036948520744666889603462216967758827802914330011211239569310437756720777355523252805053754020714318359287887693252121614450593922972159046414113493777980986333761627076424186061476120221765345421455560030835728277224012049312769094681011448612839459868311622791969800702256676451568267310101076236497217120416742405956213553931783064092022667098781874075663870795146704848554018303815491223957167799401824004392729801774732934939960917410616574984991745374734346460991551790784682850600612018825178048917016956754332750866163595011407310595626529864636038442952736264247209193393839382774634212635754410576340585843683373654493720909500545058332994840600414752441317779930276133818746077407175647746535956944863089720883903452307530226591307298064110255089628416200769274822475789751026173487672849917928588122837347700379477131305202246280657603185263162346578916683966453229546120192676043501302037598540314419463943974804591737871318717764424548382063408229451069045474747774487078692587312622499384433006776669590250671977469604713982410195554277481066143792569489490471900880745826247177617624348832388194603940896006259333887398677544137801114199568827892793909106158020802233510180563863623924489129561736960203330485949171392115370769027447021439133938978596286761883884277083931665029517270416543147804347266631719513759897619453352911669247031450888483793335633194898003407062634387028929657301337597274820772697785498159644822805426364183243548999928881000227741944529407423366105831473020884702707540277229179177645972492129350304445170798918109995156477724455434763108453254939337511711434423057652127779489964081275083819446584177576566169643970812382614893841797629155620024331545456210587421097328553717195598153798769118719439919037640640932340129381097943380366218163420577743448660424092852303045830898105600018653859362505108784891249093966390441376143512354200684305342458147169062491027666407369050336318071311060280245582871493621141017035254103439541084216094109328840005277606889894786402466890004252035438368791200111042566304748351085330534617250351509025868118949853233493099766096280421241846811942709138305859374609340548910461752183087068973282699882821654052040398124162904454497190040720842857964933553199214077164771636395298395311548735890154090545460708080065293304597440145193264481520937631701981529047102936136737398934156865007653456128239414452887759996574143826391815233999750905615140367875753578788095116349202321315738786623160781817679831483234804175051823934867032876245741336280719898053840160692813385753939957442346897846214678283104480971766209562258158945476490441830248927886717622363021311349649522141424592594210474938756232273017954046314150445847061313084075420050405103572598818044978590051856221990778633089775245468967241086783432858717469140638517857656787766673032955653231701255709474780613440100284491261974841677802682628793606674164960556870382557885637949293951657702951474174140587478177966579922589175739929835859886388703041588152093425412925780476866794728594756527075823110366604224463606346165422543913299417437454458094145870733308378359301713805594470919470075576005569867533439923528696992488773272046286436780796304100095302626568229028016414105815289615652340801199880879787562225025681781709584474624847595629411431297000320103203706802861783327619639089504001359430577823655365105986721101129830829715435518818149129894698791709426603599655525818787834826415752401855700699968684108930734232388394821174965630182702811389070465472761925635600050133007649545096106466526480033586069728804378703497020538482498729539645972741247769393380542852539967627327078209810902004659421352611906577978422751789588139319590389956355178645511962439298920284180033343124091103242271653119173906616322946700512773850024081673296894758417643814051283714564031090816297609317927311391781190757942175343177872864807536241530898557561958848963390678857710583869726287278405214219714241943330623275717655815207441559314223813366146060149242152886601874592988420198373817596539367739992292644921468321565705511559048359333765025509807779655886522220408055965987056450278221163775352814226199138671783306721144543662116450245695356627215294657845855826801763852831286867317346894608410826019972436057126127934049008629652274932447102643739107832150447637716920272127845014654988194299964699090085974193244832654888488294111858256553258443587462673837962255939228600651113889534332524022709976360321289343349935570027279968305142495349790708633289227325048093687696225590058332330114940017242696917763339227157897609309583496826673152412122461042779946099048562045398583627902458364396933805952586286997839027569924241570799621488069658360996995899189054451309289455065910247949627635746782363357575547246716792106581618312170149301473818699299851519072227046667143958277838457531466153958091550623457003620204681130514576289608871774703651272665647521317582306216605495165044479711952233165829445828398300266858457258333491945510305469382818006198877012622894052430287697542944147669556138228813954450790092944487723040157350161844325339446411443427548830983392393581577429844112769472095314503842504436446226889882772182828377484621103458362012964050326951743968622070150572294048543917013400343586600044570111377246519870101293243191250503055607635691379598607279257540906965907271503052929906404339516526793683938659470389762315847447351832666742333489566663413087881996310109088942200299158720007447358248144217062452157939411162140387124321406928967497322410613909876565472415174364193884288728385234170179394862874432782055713962531601115266724881191136728381113398012466368785145889653550580318023769299896518317626543606104875057366971103031333302824119174979536606547228403057413778975744000489612350714057956034146285465227331629915536296795956177726640341339457812662627374996166015484684414383646655352075804536508683806270688217303866755964151201450330081365480547361909959455922808231133815414549206604675872646918251301275957995381382138844631897164786288335380459809611955289591771439593370463614048275466341456443606706506094177552009207607115239084644887119845680946291581631714106887780959108359536676193655551222869222264522067593340372850796542020293446820274518422177968505413097949048532116876858556997853871566091398343636521269158084456145725251308887159526084400415177768255869159955526376846335905718628741370843016187642089613653171878278292019633161809072898346018389347431713229300916579725790800094721773441224101318265609144614446313603765220301275217217473641928358445459464664552211499294109422252982026985248919005338697205149585319860585955880851714683889907792318947276281722249942296848977090338954895211748738453033649859672731865023770181283873927153652197385745799521313346388175061220756849921164970213906976349601535313835561905539107758383618341161815528718566051179693334722370955626780758712626470790872570976240729147829597070385595213196957658923016963043108830588277763472619355243964574058009597848414051776635721935597810358611060726569762506461012029639902223803816725739587060281370423340250587323278505242070369259911194432189528135896684092666206352078890283750883929315481958100356025738379272524676102548930359178857042670430924954610213652746928083051160738312348802539881518865380927747784260605713401681886377175557313934775129022987613487482469231769539183977031890676014965632455038335828248480206003696217001810541574277139351476709115346262543468335154290613656950968406923714260304020502238069153053883160235354892764602204676635823803609184925419104618108636298751258806135438154208860096471646914654105828807541044208891158419653852529576891137421638825053884340980720339749265864099537989347373644407743580396656031742323684359055917678020004256844981689859379635151182797743674671604179135636734005462125719895170007989141766224023473707055110682427764736645706640341154938421747255695123779681245479724105720374820745630563127228978621067930341938428257972338497284394349818213338750265090786698938043994272800589727698751893826894824877295416211504816037950343790820537243544446647983828629084217406155125309530280664905017947278027173547515513856358783114590138106074380738953345576442946840560626066811127720035009686573455577331878205051599001098966127898242764270727335377683129706316310449756247875380795821264525095296928034348879332907969903862435727097077894630637937220066617659253330051619504563132373154259716562721722008005952320421645335451822383033065172433381033835221091890682027164602944881143164665456622770800613119959036307896740225422623382903208770000937071638862659408720633564386765687932886779681655889548101749909687374973819674427644291007842829747679278259199290125626254680838767834431714419171396877325215907197659127263352754104259788752291139675328231690657227077182647124609778823154742527572562355712404674120934100965311728150620116381408299668895380789214524184456251883550098536179254101186850707033491599540362247042224089730096981697993663346726219659453116226714765374525257183413070249424740530921589754296017785505475031049784717339379115039623259681428670679334310407657614679705803867463488066026667419729460464368894556120240312119763345265611812486438405304269459483039286601107607931546669068849181180990434725399601640763385928757210823438848527545321302439255853537044398669033591897047404818310069518894210204747895100060770490697352188528119842859216228702278153981232309384190507515371051278863517979071952529982982710737600069066707660766699147960288286154431888937201195292424108405256348288534561378464267198392241114537744813587122924459869131660839880679248363544079380488077946451258745819481533568081250496055683337879720068008662851444387004062323996053015746133690844077840969777208834984839205141590871914410940933075554479444401323795348558259543674043801146677695944929142120457649542866233272451864652816320430826186530572826241491616140337398074037772772776348982775356190875949728088219455409985526399959077812375726636741313710678170840056172394715880598978406126645948646524248703189217342846856785295315631031033751588276509137915428426589034750621345406879368664832385284144667231252744927223318678236194109329636780295286374645026963338487446488082160561612861910781158769761731247639826065745804313499647042421574559026889779565451663447941538001663144773934997415761353282520118526691251872842203232760979074086860392746173903035010794366960334668565353487433161028200004447292904919345642631103029178075725282993319606022232230021493264118336328561255579845692492173018426606081423377839266917398498134263990372738361856242908987284082840190261204067194126836426860301874063886886483092044834083423069657440507565184054989898693526514199356319598416718929592649464905253951472415077892579356501252665637301021938239234448244926819505193563893026337808487593094335829352351682873590701979252452044707032291170793248059952489044896341445262886479771311517327949021472281764548304472259310210617277133063295417311850848397788732281161516837619235133887612759203403763310876788591363912485238781208117065909532238525169954862161781311146285130643802564494338447041792156988705740451641445038449518987457292632912652215891940083518145423073214272478469370133772232872997376373645934242440809757674033144874557381909670091523689294303282995299534372323779597123098127620937428389424986473097183594462025614787447094378709034060996015166028012146750547278009417099540107252149853218310200701248391705892642937725195190287289772849533805074261938201985689760697655459798688568305419499676544648372237372324613460747667985645570700739202421984238047055419829676891129537544041182289242195673989487760029299426905856325826877089661070248484140794321393306410729374868659732237979199372144489630953719259295190308592170745767865469216969548486808421568674200536632603956836127019439476772484404970574415692728055769977672641685601152334487873651541226215465756410391043481967365938965260290940229332210760946818783845296317704187448219395957132027963644034252569822660556315284766855234861044535217692662336487970551407941959407683156419387326481273046538710913929459109840349770866008232488015832945935018492738563091297871998009885951176904809289512183181051007410291787210683549163862614463398219099046248954661559127766553353142296045198404523573638104852566846329792846395290698666994887976687972980162684827902192230241881597269089739669156203809523035420011438232230611204582632492504519185631018207850541829282532063170513307511645154915370596548148996338823644090939020294240835502360096865819413733567424484036783700311782992259258989582507219783410266281798060132402382382802208596264862663831745190587122893677062695381845803283081793516771522834512342824566130601816093780470146847669531845170682866980205346125276029836028664696676822725920907674473410184576527079445469830374122849760734477777102917208776050096326209353658888564749016317341426732470183648197945970640542333704147502366525820386228188844689320971175812075439247128268914449257785129931530904536467735013045258369934595874755925408678043522897854439685864311824702987835355235630074422346760656019541034974059453599469089649072719673607073715349890507595018805497397333543258304580772475426687127800958651079829120132087208461972339669908068856885773574821622879937429100082368071854613343868910272331961416364959597824454220913513354309569768635014266687027371263018600493085783918215944545046568727472037797523094219703695738859346262490206184039003367127985860794132377144805236220438152623573730946455460604824805700727782578835042154251503724969200116603631266039450000785965565859623151727098538980712933045870773967527691428380836098796954446632983087141033040048474691819650250003196008714669041293063142429345736456738139993738663715116101087549082056299889471772046953891727885008325415006622918083795529283193428067048983854607993353927656194946021511097703650524372063636877052060128769339874906343459883602634242349323351649473869975329471911775812999744210515883255656207510754381488579713957925765039131698245216403094495118486141458885379611004611932699163666192315073763215135229704689755745898805984954574964980316459294002862760236787623948167589356481308788291831326345858331519503931115420687916140569606952076685492673466866515222792540443035305201850393164239479520348837666042621608503877810387679438262221075705731389517973834137173142553213039064269242418815838473974163561658417492216794613081326481091240734651257373874894527963567907673913223751591833737250364205994942521222705112788202213671445349440873784647067930151296039823977287847366799521383601897471271772993084401272458965864457167397960407761984464280986301974264031423688019778185919097746094513451649883298539985783130135845917722271754038233015395490527232839351104862370702034565731859845185607611040146311793406806062635683633468957140410114762446241057543657931831116802464506039865266793302074647397694904964895542901195680829876371113065893163926335654964122750905738548257802797309082766668387274632847710826713894122847773508170553273034429958228255521795263886399716213527349694310137940666306366536108495903404181681928953563184851737513284356961455692899034037594188621260321000197377318350425487775287606534356464889056512643318737558376318681859914552214441100249405385214332925951307677370007886886102638091441625320863318963676325698903201348022231544708377822491648801857299966630626413137328673759929495423498000215348919738798113719661407613696408448727308321764408766098589188371901833654001709292577384197815567843871304028452680078077268971996742089335322548972047383076102722805403596882873045209864537666685706874560671690508433090652628080255678440224846296194801962302910558503974221645576759548482007124216650667495677403961944531098819864527477206554219710563189091331090180887056465317519106394343985139865594141909832262717997227607784438672894354329394915398231324411635724419446070910264337348383318068867790517845286411476775526552562708394546931461605293639063903472877479205141518999909115739628884794003296675853103458899906803243978666536795668562669133520222381595330746782769947172818865670452095850425879179216914396017571012499012742460126287187672936350881297414107695154326287842827116495137995483077268019784267253815267082071941287350476218188813241633741272371129441972889723052224559509903390848989679310814537540497663673274926554737856708423557195900518703625712737196968933179758764117146783399318233762991578803170685286928469378486499786041684794903394042581072410614892069410883028598847147540360717592497938378871235420605715769503045248494993330581467145458683807050199773274043706540307450326346174243271709521081117465385860523935399198537999912983975844524546207724741715826153802022564516510199766998473174267657700244420578705076464138570890120889072230792629499231087769530877403311273265761316626432047439744057046063600041402735061046216782270122088666323696363115507095790773181748357169319918092856667728252006782356962091064016383805648792923986454418728588399845280667926764708670187731737292503376435494850182022256197535855640931906544442832672645580827798673925026954078627905530672479210003788414705646688032656987602442927094583991949730057919023467914152296531819787196481620028964747098747569821634889762121169760729281915459497060369745925178119767189887904779891085388516501710667036869798757049580670496188224951356687164315343289338877250870591420602671607237490903955830037365563225210710679629573700033075954675717712711747630414343333043853107656185061819565642414974707836688385323328670288610912937578967379027366244737381182777179833512634238285630681776009965800126352546408918878330870843089848656568492914008718295761828941418821830865880938700730114922443138200366465488937562032711698007017728931239915430870101849556376037295261340207520262638864516018885677395755101918866466749820939307651441953454934821527277348359613468932393262632322187111667398595705797118245765067624093575950198798246615788410278466815635411617704472327353862705449049065147504169442751704898130233866983468428911876588287149233456302255512035755253373374492345789687450370368647743510952318698806760358016657241274435813941464028214517959899096326884638776737488025743554341786223274921168164465320331764075382903118832388198979607357824771978082569549150668059472954016380207090724308424235848764646118401463003377379740560654849859434609721477623689697126037894753774951445967095399636658237001081087673504703457611553004717954049323134246413079899115984387069355774511816785630810770560498915983408481847294682209651425629845540422610370169032335783453195160716223611386919725343479976542707937021553693721945101136117511320900540828673974823027630299968360762835590566052520826942046132691296229864484460188757648323203008909058475301286928183635926466546369660121915255605553394974493625061728841689455766923825868835154162022280875868005622090778865535198363465537677234187957920569303082124760510613237970277051108973508862116711292530503200663609468019252663415219389625241049949488767874156842139211456124410895813792939997402500049435230728994510364977808478434873691766894927374429529258152554428304481359971347985715894011820973645420650365143185691703466145762375960138001347008838409683983823390462908802832318074302851985023021332557236581693851564511403977900220025933410440880914828291908684826134995015030681206963520218491688383424767158327833100349859673112087709777587378767318146681591650122296748817983163970634272117426268303267112123947836335538478751591761005798907168429757631849950495966289130631411560678496429579369165847596467800777860155940077422756562258183006751780182614933315977404464872248988831513384628113485637473721904214923638524233183981557570198639497737613528105510926528475842640039449318373276375100970627292782818247844944689114756953068707748318000562628808578986187544026008214144148359176629470080097296043738080510593216764745599098136970893751311659092855098204191459763202442067501855583774889886476838403953095932559153628882949842547252400628697502782813205434983135541029826818841539258898139838240223628421191792504532475800055178032776897827890143323651232127256333686146944255825469191812617213512136475436452300476747208498399356154797892359637910816273533569717124731370749965568728681411569646868479632691096512783759653438990340927992582250151391877534391066062213095325636350231020663495125549578667867436481630638568545982218600610342226987499753559156388065326838547734256619407468183705977315427040219445369501365165016792252277916742518076772278734188969531669781465658454139571563567169555200194182240021469957291570693726450727626687747204321205695739431630314863564372793761157467704091114329437390891038015638191786333742664413036337181522470700704665147391175402549490220148262150617723785946768978034365691910900948991826356982159060039809695216678640503451259934514444124680839297841522611357745769918174984225522639474098442188982912603572246086026170034603191432754367353934788989236641126222631110287691080044496709213285610600510227350959788018186682856509027678796888785541702056744582291181392394780765276047326651669128782998076802671300739506753036402115090165792054953571438587176689157471188088422650736757961388828301350273033830131629788738216135735931794502976462279222384405934271609211349936578890558401500240505481343313709962252828712741164124917962063303266490082210332597374603774871725943673419018048592008256971205957659879913016233492577198987045408315444474949930655453407048429149566618483583413910218132371670879895620878181861438812983490153778817198232188938597747978761016827988375402946677807109868315239946674054897903272344050815362212025789722280037983695719876355783656937470415373744405410688362709596042079916269883052989667844334475524542685769182297616238861485152352651349519986610022531225070050032383181022933671644401647281178457976869207962007904031324649072631204863670660368050332353999300289135763202035490052449895222080765488471049739164293014003563260636462829444215331586700502461639971923083545750608489312704020355682587317765394854171492729590039941604455705195592035092175520232750072062457170032202371029491506419604452875798845564813644262085461430170639877482595122433003612818701448173700424937524704883427031822961416627098785611070319534030365837736481977555720667647116661587847364564770242776428931133866956301640984262796174299597209888409107998356459585714120257357232512750099960172562706053388929430863935327077511317198320032871514815462213710198347926606655832940558502151968952443732245935939792034241693814140692716709044644192857828752896437360589538471653197320126764122316490996320198277188011993529187101784722812384064456323529934391260282689673490263742702543707808596298681633946082692538706561533525221392455864132276053204343948203351211334981415006251360121338966668876277863513215340473630060724286402497665921602412181742044715693797665081770740899436210838982495515827096481131625487735040493399503216873543359539382411853244508498867235251067546006220676030500260244769220601570107969982453813988011051790264100100026783828329792052136886660471035275581712036698568827658656107843580680715716479797931495382424051899016246577221188769548979736639667815543418699087386423560873308117842390349666962783820058508345276155010751146573556805171092923660847326186284437889907627165748601758128832027403955799206899754237044454644905962728923909219037055140297351628270484685262032757237365494424075338920024465780349584778827281381015812084448837609612171550174630621464796698036790825490824795816632056078519836862158444019306805249560162205538414972575614813030503269630490722846211255021695107803097595912176912531212172626864589098407486494570089117264059575948894918450266054853184791654415135479511832094185182852948267543113664159180967381238032564984915003066175012897467008329696108096235015601122050218667003876563304036005373205643338340904267218854638776659695856985120224281832194453112582491326606317542600645144551387662066947616204080490737702948756876060391290925680009279680489165458354645557164395764773762707285060604706294570273015600184140061943927689986638429687260884264515083437808719337871695643586124909759540388361513439810419332308082503002740541741074932576685111636992673075514193313260938117855136337546255735688096986081094559929321682037471393515973828705564835976038235260855314333038154862592159262097799156451555270773649016482595600845180459737907504911919529425718603806935616815790794478345441605295914630928889585846840184716965128581125133486129948943887486480562436092531329123128086743149631925154321922253362297458277025821521363031143624063653089647970488523480417003385484427409361363736896695764125027514198875146872740607373301257946469288294944179443335860247923101395224054272456601456573242226477977125579436611082438820150474996264251457348008507060032654743251677584107244007446666216277708632715068341722033390238318713491752993196329834742822223148248492141977885965091233254460627797725328951787683187085613052933777411574753087078459948753206772499621067606766645822477846386534348527235453878058765567368690002386491739190198693462004320387859134358714066758346855602500741989254676026680512571124837761388542295556979689913600541720771314923284248362607334975174294888442132238435457739725019805759688882038449221094537221433227924164420069877149029192389335329382263724419220429250161072710713913016768335158531658412849225897554171795064456866923630101937585384245236445202334607432773226981219741407844171866852440931338776791782556668092729785022896497331319533381010961297352889150009082149021513315342949245778853611188537014886874514664145556165317965620683171534314785887365441949846117651391883676704875795129344320816732766518558002603463268360581350627796870027598311667499655054400214613320010024466882835081113257205901953867816652275047062594533559030901723177988497668694556531362943988782198091353999513094865030707126226518077699018285577834411828660003051816899871702167543706688776119150992532920766431998860476190996712961354078060639855200274536449841274614230778735018401401780426636200806009804058737584805209941655692385881323555531923643727128872438512142248055520675030887699807600017158741262036308843727638254619889808766155390042651112950011223313788257932742934150849785351654567585041792151343732552280527313181522905143494175600544943130336290118022730421122476191471465020309474510302834191494610655487491573816873502779825311307363272058945204169409818090902303756178735261960712979542309794836847207990803174742720480093907335632004981402903269836013430395367268380592243380095885065532911563716865906414128120442819544450750403226588088892282844528678808076742390509186655848184459697749441670062523275487326297009320482210118683506017362384059793897654759149778162206263472254669876924831892423892494642277044964940676823831587670985899608626772314713486250568123538152187970933663510269391813524421820025338623878507755407475529503303966043347010078858775308990139201544107391178063195391394946205639517383357623173570277253735238001372013137498466640768612436984408500542432943641350528837296650547636968085666328612100928304423091677996686317609495307057521066336932559976619185634325993227940696063885769124105761294709907794008631231487727729145903554098501281871454969145451474542698013805151790384551967469676954627687261388976374823436628825713029625146553016375975927241798337039544450680170199028751712369535602150939994844838841789131693843612826465096196448754726415829446896496960393647869968411682037258986972884687338558547026302403093146221144941816910143597574701640664539449343369792600609573868474567727541118285607222179283537973520691578372972490492974821477686838125442158907135511679564210206470721569031652720581158426856146768177142959663501987843042437824789045631866814198326709782610337931371809566704843795933206539103323813288488760707853922543216997401023733039704760193671404330337696578148157019376171190885233825113938424852538021742083232913271359379349342967930772691660193306625808522991819771514045854132067419597837080467590622067804695168921323517830520429292775688639644498362003705138015219232780760507431013505570801259946956334469187853827373115014479119152877375862874125597980225443265529899897418087915923746730831227110976869281959244147978470676222220743638495845981980022851865131065671877238634280198297634274770820329454410414440649419318873114965039879617453505757025989286328540691790701947741433561588456240084567128293218492144099838533131202512715782408210914986416932859254136750954460136705088588708195011198664959057887819686148834571035156044956518548291843816326643316044547608894512555212068141740928941894646593817106203964760213722090399621663831920975304508813351877424114750154350501991498193429552945723250626255944834448042076880637101221910265199411650977743695168354306189326352262040477127464062773321721556213939239250648014216512678325567306088865140292046447733556724609337535460817250821393868456844540727691130848869992847787161330193760561555298986280698479195068855296607684213897699447309726017143670479149171750106591785571315394074698677255996038558732833790131746132279829608188502034593710650947657859515722767738657464653148873182886772350863206572166726492989062559781548627149690228273056068293759494249366849205634951153319958938630803687960201541796227489766753748216288763722408675616548578372859817550977809868281313861078726629335990541282548807799866026276020193221704440218114023273267441501294506926326447921752735854354978791048623045300594164596814062553339012393590246744570917733348244321358452944948694681791588336910136513683068531985074249122490741836649017347581103537040113407824626273662802091572952678916139714560524885109671403124064558101020910143894631964833763780812006981888308385484665244882802719360922141036454460771280957796742009400763160790946225774430477236754816250052894476880571601235904861910180711784979025638476768412260977314721455405893112957803647669008049066936656457634264005511108552067023132495470139988802413964263252145031549791255483710602322771237231056835955687500754226296528971736509725554076127119598246469244950561021368117619536173496317527085236481181140905775349041407098243900245693392309102851439163661476254120154721479440491480012677461572214061281027146182488589040338898238254392803019075542924993551816669079236571073291531326892995531561666154784258905884508668681910355664797866336407520260365149064111278875297950983633399687594851676919487533057667812908526090448128660536510596066235061453889265382614605190656284224055766554693843599487537491372739015179716240539484300880318023278596822123157276242585830528835495047371307261772241944317266923188602392799637197726270824887850645718110554662331874874838183956753156281312551197737732962635986110363040465054444490455024075715012628182207880908895988471270540339318806039280728460418679066760213143330264666826152480252488323561506181432904930632074646721101216085757192778702565085567004621604667055765521661311536711415619191096425298328812677453102584998333483214897933832004315081151097945545324754258203966089709109133600384075231371510738409705606091119366351369326495295161780832891609808450180641884053853869629155384432591560403045743284447860841584999166821995969387580470349459731508384896828542317535874150455200146769190089967290888522194828636172353560145743206465814982907334398812535130222733357290138638976165333252093745838322069885226878060198085587466483007094077645273516031561903530370642697455473423627123852268101115622964177172996829329335732354336438002088207694880882927191632306776114156919677319950241531239333662021468682149527069986935762123754394200773127013462676165128502315812799499106051419378046551751742089005763526639650759555186115347076485075700680675979001435620313537165173290656186047646918394492131278444897682695721461999299951082108099843144420285646248403461951459787757241774242794806713670264203828899442289916003832944617202915800168551933335260825638367370463114948321086134291909732643724252602980731570681669149191410343078011911069004050513740239461929536718118105923703097766897843554961987937193999723011045542032124252829946543884894821388067219027384041290142002170124145209852161361066927563553674043439257590057043735362587741304755394811442250488154344057589184904552370388665656335854740262861151605066887122448649199067469052246104816442268498944279076086995133671861063844362955580813162946094497226441716445458991807643977868034936647439516987137463586589248910550814682070577770848632906601981032933568951819756178056478093486675929581950438922979326191113909216192541096694412348859456559222705612114282507265725120875247339392307544443165143744293463309842758104661499173763497838639342797736655429641570591537853832267859729017878745090642328024257777665403014066113156361744736810094497656466908372371238958207975908243089998495630287826471377812313159307653379639810546108711884096392079493385666780365850603707338261417206135131834332340409427467459978917604394895759800044639127475882308527643384866548332285700133342333196112491565580989717295684860912019933633485506057923496440902644206423582390405389530146828313469539077556671842262165642452481037270018684991193394717206113933907387926560304723203688438537575957573027967651376310735644952942297743262739152894638980713087083955812227330800867182958967665738412772351321621553426175364136383104904968450332322898115686921019778586589802756345918138058318573396819805846011469516201082976943482632936827314563350895314079318155366114092665006399859979106262579703890656932713511008720665618423195903024238634241481199383127415166197973639136815121540819865595111373249246201819261073434781801320508944403678498512113164080554810204368292668555617473479496926459949689327388192090865917563555116045363999077364048303607819492778119962495354670251518262309857278071896204283158548269535331018953266417533214732978356170366343439595237347999562354879044540443739988806372812818041213507545847280892417934989426614801862563466419181719697802245087898714552729083513951606509109871640796127952771322383771226598762340400867941212190694079351903173636191832172833265304896512510258794023222457599978391683968219681213059291735424349707018880241333543616662366570028910514998491962015884588865175091845056216286398053801627294156834651714519456871048936928419426250096112353092428060556694806137513930808459457323806137078009869603081711318273628791514810141325149727575565466166547036277270249269202163003743457602920310308045568837384706607637718327056413777109376856045995756870608743918472366849565461653369886683859736705343033938935309307614565188647074024287609221731193569665345457344665969989769099270656519573836142551045073671540453305079625157866437535642459835296972304605041256691348120993973960291620449706077308118807872547843899252405282380786057520786955573610874771272985983630140389861449198401891487217542714188177268434399255508753096622310110541639514941437160396631873226320768292791837379618766090800443478260452447105734232232916249915540614403830227138282497018331141331732828991819174154967925449537345593485463966413097143547933104068439248044528915123720125434849535505767404155820589052839634847475704352848667682453451419690130695325083121595648321102818115584278177024116506002620884784284952328223361063194340959813851981854138141876897395196303146451211797508704486655227335419212219172841867537313642401049704650703586266059931667695604415366109666225187597200631642026655561748548470783743684567159563820162663941728782374711295579950182979223362821950897500246705048974807943131418878232494816757422011182442087149133386689979008732319277279940262488601253714659087828841462750455114007032354369888582209331619469414451529888306490646828340813548156822961593089023178365002202305475391747187759399190895493338779772572765093797205414740576177969043633979615267230700847159739826064785304948794253208913987592502528584897086267600456409765307514734865972410865251666372938662530637189328681700504956435753962662906354217695750832852016025261646548895757769499118479637878183216408089266011098420403925129313699165442828354530489559377558355089206437845983965652590333950476617062190926205819384765529338792143913327063768652718397386493743256725487349364946604653168049645680432507306242186570184196797868318688435243764905287725538390658713796619175523881622799401181004274670068076484234674311473134247193482629596169197753960881864064583953479382509900572964200608756198508406277748672303948419875057090313403949227179372575210605764743233879817687467198268616943041086224445583106977601922393846605213278411289066943963352538529534399068833739004469363514231745486592702878118855059468360956106566128396759586314286045452806980514834896926454293034145472467561343337175668190743922750448685095620872903144380568178638243516364239806165309492890642480422459670169331156942691556679443776420415608436341244926748682677772359300573087178553590612989957718082248921972402396025637358848568635942858430669415062912141303880230065216553281160636657549116211804586431929432729520371589396552540363359838595567071493965615342688473128362165500143743664576418985914254979067107065358974237875437374759141270203919529192169748058400752879599503597801564567682246213330511821211259727576487217040360277643409837591565958350928291245847117432393661991523317610527553648084132490726019095917656770491849914628045959935497967526988306096487786469627339060540372712515622064431348583649921219564001793822046750234421341317711120245149330225771261346273220851479114304216522972839240039047265942541498171054370552776110087714915206998136890227856856580560461165739997194248534346435932876835630490150154327202246050385164022525290528717765561155695485628749544335216938631728316260546364646411022153595708853088020358048642882074174626434520380798539149212772201011406600672752695084467028162369959050778854785666430121181950645207783886617980987744984998421812449012994392325200092982149364947452293908605411988181054005826362858867447083471287611809691422094158473589177260178663414471960690457686911172874874858318181093990353431756084571856126197332251867191188452382915880002829254685595303890120669625809881647461959375227102522928791135326113516366732865013325692325811055708129357687139202720160895245198736533460907763890945872150103770166935015966302819006926851444669519916461977133981602914073952832910038708920389793274980627520744477832396482641048274244694032084201140117876918397249713244507585752623908112046147304845176967509618257115205252916954444285566848864370203743033074272112143576646942731194403097545798513223554461016871020945097460547033497028047892220807248622478524622546671019680579907295978691187141169717615323513800914122420100665144768169504127559353785783505942510162244251980133976583495210676729742107768957616491057745322483231990543972510311080770384066882251219171043677669606972810416664421945179025375476112460768481771073039128236008273934042060701758772942187531814891542394456441168590133560584762905133304624087854726413011302963097746369028185693043647783772211725331567335485097068159049212001563954433484520496798896067506305218535806304272057296330429349679823775763862143116003823106608935197318956275909928906627513478787583835590331396318498923291332395538019978674596437054966722154922997958199075181091151288779613394666657422489123030163551538279599835605072061932678788963267800014322699449945351783420123760150142634716953750552080375622586178421222914198890738958829914664123255649451487853759858303923194685824831635782478255717167472207047231898775911661284883828905915414118666739273310889613603009785472987196359503000869917966366292934583467643261632748499399116201261257494893414869584314529062017678342195377532874416394259559333609233088895238729048734369326109823931377677791855445127789706239652556943681144604958603138111616135288231764954275637716574121931944535731338420258450182512034178280851846292908890833362771822314602659509117953060877237947150253153869294735016455970173778704261777089071510075737444881309952307969881039135680755236374078025858253971022025827887094778315700255221035227517206346787083959489172460629667196105165091818999666774845173235915493107180921954965199833608193707118054732125556898259292515647380793570655690042172628517139932693713473724240786573992305100142597516697886312481842850606643571804272685209237930267282647001480251607746009291512148542880915675871658539024803785431674771874335088500570382894648171505527506492564517220981622648323725030122983873977487922868692529278550248733570214126626901874510461327801632221837909682798860521304551660166416921823485704206265432201871115623948932578246633440078209209792693683167224625694420569379352392212322644576668209654235623371717443904866706214657188054930782353524572953710457859857956688545591793577742474238467358797963102844934575982753629443533772226073517381639702400946410232374336595168790529153312043294506888222433705528328344698609362471261608869280961946680184036125372792966678218812179887132641354456552118573376668745889505859554023879348998985530622349490572957196586599095511511544063799620968439570681411505768310489733911375518702031603828931909162821074750273669963689163590322065671994744153066486660683271607903352356477757614167604276353190649491409146359221734466719972631173391592238753844245084541913225515205273845360134510425033304177051495018855648919653070021736398605694577123847700195061255261222967493175861024086918238058953036887904751535328296985820074966311494718187840889667839095531159752369770994845372675976294887977851165365904629982957086692768214913396056714313693203560704444320512404392193798855673359481583269215722475470192145185311053615083911099469474558824532038286848824490986005369776985593481769261546592327314588782204538748418415517509844569674760645330429618404063972729233728710483648535174541854878258138000215311800530319389666203983057413612998817263663916777483087940217665594900377184447883464978764637454774130367741530021046228133723767279780020503275571603545829126233389127110008622755919490970604393041159436132778195043356953843742784223023905991827511928267881146846673165072458473405551642682992385641701936971976253714622029059366939076173763237323688766513596691257175517659497476034893080607169038203799582847659717540349431212312470285642111451156797906593901578173864780574019658121218738778880279486392301914238028079736529057328462013852968551411999246657359890145930803614137304093922710152271236238461286827415306334154906783015361789981640882992801204467847801745461293993496690261707154214489067721132799586413563155021645883882753542796661965151854517033871515159284359843404216385603451692792608966802216877096578120473005144636000879681292983407267299269584222521783050019805253122662203593605123523240268613082472458083343501472226388225651143602897835486462756011341450452559137562254547494830438522056180171448389222906623170588589222675812607038082123464942020060325118203871564844996055256574324870858628106541070581792800149112661593627014294523879299786321552072390553784814845128192846694915529690997231877438380627960011768347964486660033974713977143581469272320961534240693176800686599411739245948337201681913187725025812306088945153478494671310365302028373740693241773626795678671480298079936111299352782996722716294650976016286703662226244689490696131830968384576481091608485922466750292183386585921910398075995029848777150927976963494793206531243442533929169437469521583376612854673918815743126521149863785723425971795247621634548807632104079199053832903330397918177508550944346048418816101509073814178521068856071385548087778014611176620961045448942421290869214171658256436297534338540687938605572730392875500294316508246640609274977918064028926503597706360016536962980851598441316123694865345828285065008197677263889179182978259477981495808327925980635360781254834780216739922844032015176021522413352160664793041427057980269071949277125797351846307756425967758209185493677434561367449506130417823782976760745239580042491365544814815003851166700502224104137943610566569492161847272950444248828745071804138797266170421655016614876328297071232147201930136471673950948627441858138652065611939743088720065860681810746855327451022361077402042894805603828506390829218379752642470158764645667704033883891098534205908044607666541830590352036731537701109689919544808923645889490525271161021699184697784762756051265820950161366555907016680530226772065203736060957206004134870296131647684782980151905095358213858971217075304587314042832781254348142957506321989092604930877996984467874928087803744496959188854930444461438617759875428160154684199814169971607341835155380368267027127172272769395723713158585087143206475868834646860268915964497719917467942590333217286429574454919891435098521857883134429253991645575527080737746588113348492191003354182446675004870314583247894156938768051123621592922267811057298882324056904338439824327692384219469469041859036369733665072408855662703609813622589909092811746306714682835963668210463664440776001432487675568477792895397282711575683478472829311432053995194146256455986421242486699620069132480633588518539670836324387224252915217748390875703016016643736445652120829348053093961039660796772447960565737067658289715116275327305136578086494141303038855769608864595115067804138820986483704134799966928127175003408575126783816174127912546936993937986309236034252942236583948705311071898560123282299672785004406084171105115084866233160942166357980243625629152177953196847246232122591871465520499756610348358606035297216131262827414201589764348631728136744342976321244408136209958760589090069394957891328360260523743421322941077422476725962389512945063637293595280475208276814091437205043341947583368044930010877702046042437547958385375915782030065962489789870141571409443531691268159868225273713764505905760400630393554337270373825944107442270787577563707238853401587215582960217674141891626065357920200664458550317828376323525886868699785887864319916869845875956632087607664235398762722540259286526029218985721012425374696859126616642163506102248777215586600652927378346771312409851085709660679126668302153413526468653205129130167301717068849244737361711751829762189290366632052464984456867718327690519666357785578206290297586505625216595625669391747730795323308332405803706221622599091727286141153416451216182478866111457538767672126858532548718836528490200814995512838902352304262254917624992339463900975508208289070382975146902004237634068894942330043919921284822952914309134458123633646373806525694831666482298666538240790780975717050177818488670853450661103782294451039661018364224467669147410221335695538727947548079040287839700142773753719698617303401083930955117816866052195831629254274617456289268250803129594519848592382396145682191970601480797501871366519321865995921085473307338236548768153483655875627843474470944522382466738872104027837797769264152035933685534264142691144644187848555625777536033585441178445972227102090046100515866188329741996543898354854289782142281186039784673335444685385913240421106292467889139885182859152310350726597355027954601928788575033771261535679218905665197240618210957225682320208827282539456405299768264424667211163108564313197767815072322512981869776431692137672690368556159795537313855494211245393634155717601709408580506958784622556472026107573277510458818964037586471256661138753573354163158352384498547941636458304676513102686503319981162633319098010112803466159269703062016706328808652499076183803734717092109294036783345844442857690720919065608311495644355010058091053024565192831924432327530544351644465117870522000120277478202028966589385103340799710726393037503461264200317570401138774092764498646861557435310644474564293116666056793623474311164220497488052757335622657582739150596848139433187044778580303596687560247778577017855875913236245021540779822279392354101649927295485573053502255294038999592855739244931508032655701287065113085659795944894799046799935630319252589313766228209687059426761750654579911233403976585754269583779489875723011205198622967830142680216163691673705140917667042835873249087343608673627891302406663907820022420113345788063220859928962348770475907650667469769916945994868233617495354879331487717279591502037369612024068877714373557909694302780811412486115497753388492423419204578320371287228717263652381906962977520179753449144683351865990738813160302360802776374473167708506757976679716901263029824971909876875801168932075334837939651550280738651255415028588565119978979213741432549449014118115701006203540250552899023707980101743439564193764409516538064566968672451326598826191410978023537819062984309529738548210041136228532881577163337807937595500054538961750626376285048318275792074436933071272212447659859378847440263082761350066252565516689112095384699208177908244068101628312374329723163190234392253536739701773450319528921613630344162561082677545514075661168395160070821203987121075678559462007483995098162398168713332655795880028742341370341488618782774108958254268225041167683108156398596351803941582374726434687321581604777172519328091377323132734407850078320376966080656585031148575226845904306069171436144000503307652430134077127440872961341980594871485626435356926477678522785646092637761066243223788717964716071941095943064327170398296332918864571425414982464500928762235084713320677133692391680917574821424756784852921232511783302042514009268887748768019955560925590248870190031176061332588583272164090268020084520020710371592386728815967090810415029728711936779931598962166361231195887924056723377891034489891315188251344374322528777571059367668712375761052748112108677651246746784523208582480476755214008103064246580191768766356860206886982398098629664737171740408826956410567638711787041853624613289696117933544359588305211521288839841900375027853122627284061236198546717125688315744151448042566951624826968713077658352314496175919878066318702358127040414539524586375741481574889023028412427328378942752860174541688174685196176122432051313098332845291570623902271201222666363343074006367036566370575021000856323977188061759269395683415961242890377408095123747971833509571198275572245139990065386870385274107820983387340159601606614345953702937245423774666336509239032115192939247525516868473127411918129946077423679724576572528508744563668470487319492784270195503130111569498995242286769712576798521139609672518842885518636748054037247147633234474717600584129204914031672451958131499549726504535863624131365971533006035414061521979472379495617542542859991788288361446696181822190034952189329566783827942454313541281400718896131312002073931058328764497888311126505121799110501291252623601747239471460404476956308556268258978177077379138841491937017360535172780025943828880647547783164650426328426297875635650399160759884542456757075681309708290372768567831965557355845609335353519775926158379830283828516762242757690301126028062735285295357210140557578069406252068147581257762574751223013592758748634857594219351750997408434579695404170132775159515887570120464808268271261725645056473216040604075279998088693332608894119570048414673321485391662706612409631543491936174504891098687283896638512926657513233941889978045319705429595291765917204942892868358124504684237225089877598605031420949042572412591246071462554768410192195028532019774220907629494854667877491620257898420606911998213502725272687909493365145993802190656484866080671165068092244474525348629238565918426559964573022836119337893211661303556672517822888256991360224703692941185950034683824283434485593109116891628850729209032980511277390011946824298521184514417371321703454938210236615713163316954149781174984204146309854020482701910069806994077217152445060109886787404796364119731303287924780499510327660838386024864218402691466514732337798419149536764178926508522689821424045088209763034956684392216922141183946531740701930755911215561259887910486766387209417411447096983371964174099056513695427537942513905229612146451307483904808688988374943879077975037523856738838068071984113212790589579549202328689290050944126421494327049870162494415474516445894121150835507554966994194011299640806744675024342018341564947462531907495772398508219610479699353478648271631547615644951046930299504703615679509733621890981429201770092888744636209480194142559925156267138080830472669845712487033609915617356654944073622349724016788394976821796092840415428520051824451726384835332701631899250155739374314591846897226715087440846506778376519258197112267301966920405757335978239260653973871412481364325047990053394952890701059572334626494680377246603596366732461416153449101927923572025449292015269347641651148993571528415985410783605861139345205959403394419147887849105376424535654594486546120499156105039503516482336296105270166535288470879891035010657149614232278197378069966725965208754576410370144580951553193727806527116037128953191369548151550387963764751402971189306687834289652723878993202609624285737271402153805807037901525175355716502592952729818339293091434433575244102001912754093185371257716960620196699512940012829456676451443198204286546970359387414573148420619760707028870124519168687351966935148002798379665078879275137880666308248161939033757164546926345335737317878814659058736285351078580696521476094820619442872229081513550983930650554513231619698005976545727382366001643591315126807166389099416251591243304437959327100218434256087816069391889270421791284616953291079394379994305061534737436670678684188091274661726541064279807830837017455441814952982405488106155675463401043337604855813236388890221435657188383407130361925715903681281154575533797763025906990825974988449967766627488172587257644090107223818338967835987160251754268586991678095997087104622208024113161457377371272198461634796084542318148721314127736272780468428356130555442163556321621746744288621704351910270625137896864382424476836874778419378001606548459155989947538578157891991531001058506198764428198602685347718353358999578063102614297538017244427671989803139837202763471429191240758476266931856519195530675776402515585656574965951073575231477230672348029652169610348429280146032177478114932182500766663636000476482960342221553404109602989963484448447566031550940431252072442628083053219690929380154378403486350984598378381631531118238835546574638252113822111881905238596529390776291422548906317488804674163908691663159370087406284252241875516612677882629513867858119108607431292490391190197031433917207996416921875571787849609654392835270497754237880956523085919443769853867478241747098276379984110216558737736804430479019960783412059841744935755266752897654136753646127185045035075836378265013085102253679706200241079740256674520883788725690016619523443886938026606432601295891233390094376944565642658824933332502775470379556863245921371890385861955306003938772499698956750424139945203716555841989363618729329616743075455315911559592413289877237090796402543800130613996132515430436944126261355414752243570073864250964490560442421602659672309765014378117743288330713077219873148314341553681373582518162471159389500452873861289353478905869751054847562751924178751293830239043252545124850207802766539421383261225505403194461547797254810848185522296514335864323398538848745277974914218365802120051624888083285401666095464852492554783997544078244781646740179586861458333008470385417692861941744336149759156862389564958400019947091881153947658591009049213748482828720233620943660368582762265576097663436177824292018823129513960068044907455556096651864368251620097531325596113598887352273907665235147946042093468951998876890070337178248645772397563073460374876587541142086917190250905822430401108246766274515506608238677251806406889069484109109093982626129541576832506629087995233622091403155976238797767820628770674235616734134803981729035867797703288244711659854312425366644455771834138969965938972408589869769906850395468088377141928983526185550336304332045623736765256364388366304117945145689323612396005215930177133463766604872280822894329588038447516074062802260528873790953498566672186202033100228667414072227677887148141358738504452370395569907573716280073485597215389679024661352706431781511049623778012695336916740795329814679907402766629105545146754179832185032892133028545120392770005382714889405859666097827277759822303654003067080926038160570991485722409896214202325115690888239540197049091487360360437582600783044043537687818443632037575035687860224305851023532996074211649046653361677067797818551934596948472029900782675270635719028870290988871834507786192157695734935923193500749114761423802430307730097193186087745654518798885913503271425850066607224463136962248262727327124026881304963103685052677987476652582790898737240152982213304575797027589266922667412661642075215788084660239018022569658856402829692377619538267489257604364441362276359165150183804849655031050858749259851401778766922536423945421063062146195587350631742298456120109009933570886037969446223535577545695910930473362984483810343482103320133468545783909132181248836341609606525275984220068811435360985944219243476405198325830904632290447348127572010649100736646044817053095615220588823220893861431813920125298737134065500703890597240057739196623366933634478805487483788535376811132006115301002595257575347627828791435373103214203194587828762284674520434279502876926645659421043853553398341523908192474471730020793775191437164531224066474811869845854070131024452462019690946133402442303968710258804892895552245239624552101084127183469242870255223123909376037575328747856905105205895294183603195641522307817299660425577467200232300674964072634849785537095827627992084591958470491835624011428219276468037816941010619240677499049564951741905484770253650061472020164774251089727628113901364512980812290397565496178672012797367885940882287073545111416179446943312616418176000761404389774790522308758569538386207676464543899440594836900261234086687731674254335427915957767781814998813859121011495241246893592813368144940667388710754640472958695660223276660703535428345167724923558203239222664589100439684544027195823211205981174872190611233916042521903561484553944740571986724203610484091559686247205608588306464916993547795749187438461476001715660466507387833154190937107623601838155678658490657535441747754169889420134459700962366146441991982409495697753729356471889054822076299809976440780533039996882813807701124289186508640797154531542563100710585416390779829906293812494741702571507311961403919018010163580667771319613253178963738679477661581097644781946069352536631576739529505068081840424560304486372656079798026789773256197786446068494169815026397435686700084569790020281005230176190557904353076671764954512538942353439532389244674182134247587586312985590590336506315838068928247126270934152211535691716753840115753553252952913884951712530886597026398851461666367361507722468869842373113325746632647858466253804741446226398865411537471388964569650316392074252972354382193387820010602411605605013885435631308782200088965948494158809773258558675990142959159398735358625135730922914892957338940412808027556839156952351108519513491024065460396903967327408979311784398506453177154603323353115449028424671639168974722866878754848305945020416595480084960106912915558779755419675247893839753532647046667592491863721878374431979125622313982054283981760032360741494045769314851603961700446490230467016627047071684515998882364620360182592798894441622256816251482682890336725565601014999967112931778580540828172563917050958705836291967506739446654207146779103570411993446301657985400107466281841756083470764961213829863937701200980696726889454606639933605971755336287172834811409810577139210394787460967990349945555132998573236291013475318460480063338769746393220148014237824830328927842200891299939609272335824148045374049457684062672068406259107994731681977623065621688081541963461149876214170481165610652675226597390868992651014312880131174335759292335120226593166991092905231187323886324179980728483705455835423724406238457318431687205300307816688941336455576259565129045610905708491134184521272308581980517100707807818332314828905366880189840304874777901726712554605057366318019546895976795509854182604833381049101352272084603506896817372298100357079051146527569576792744288935388087230886155816323313885191137530146437677669910636282805833157565974881297310431287864151065156752941559209726952567383202232021266910370375123201547681723314012735649594173258877536529428642991057385342762596981620992009544085818776495448264752087695648863168900905899754950527526539645038098388283559130286144580589071541144790021900823045778760217786632540999015235353419517339431771431335967364365071386657803393313459671002167035880553229536688929397814123911372814116558163697976999039093124171934965171752365536972244797052789272891108791207131640712840032942238122447962743119624244662932273921993522960408769966763109978664633310433149852909552125560431544812707675307799570229509235654656976415892907816976417428103708787580333718962947080992807023941205067992536924419926868288668970075577904351747651363777335374300531805308948908338866273237128052487011434853230199433019331701879756894300485577989934718284130860269690555970226216286684298382663238631476412073981086580858081315293126034413656152402864023416942903859287211787976468352344838240307480247950959765423583931974337896123757675052031313315222549407729089757691430360348814563778670327938879787930659715079891865280483248050304441600636253501489433493777780899078220305981593140276161249724698113494271707677890274650384175155304414829314659755657298736748518237558643110124257277955312765889118964062990728746818294920643221123290058088709712584866277121453884624026605088521224115229332458577742876501010096260377483821688572551037360099586494847066240036909139148355318919078902972994734824568384614839700031022899793120299665397123944156562701256182586767704005499441205643817151204538422286103574608948138604668678809296882589594713328003007084230437059390452866479059214420828550020260013347639030120319029488278726092504954779142227944951311856289891240192198029792435401249950754028770888188397925851348177997116944405888065780603886206186224059244283772136178150493485002326684371828208330244848218421694879857853726877096819150448078294165051480278465790636776453293558062855764106062704184967999148668035677829342515905401342934369811697598491225414954762145921167229454566380759344880971996188984367141312811726801402417436190947069494310579512692937702205669246690050658148452747076086217511103643516483945328314708728003019879890322148787434409071114262813663541262063129134761724878078167506456126073653536005843142986011235442793002727251520904322457403737131044468108131129614279152991677423014104665693061350356598799164052958292885144071204012923596012766712807293291278066019740243355087167887589851642426698595757239369030235407057273380661023485658602397183108208136884378088897717251482146599894376014986787190273776643608531143221546647799325751641854881808049335902779886685736150846014629224278400916336432903011884558570425055313077965391705991131819488621796138160715165591408157861768891698927197846137258029299581528398048009204296426545247466660087463060502823646036803146890156046316613370510185172218359003539104411983706313397407478905590073517107713883993546289490373003066041226798842106241763708233115035979065639910921448207088967045952431640637344204725555429988124411801496963714843980869074298447038662541563064839275913733445529478116722262795052685904143696923566458082054614152246522145377673159515325956348718504506727133651468782527921996041593335592643636461906687027893265368831891193871924063223333940713241337052860855984073894796371074508934367894339289024035678861811156652034349663269437096970878835591740016477658408176791692165787952650542176756271741700496265274263764578594227037340924407047009450015804315157474887303354589417252273606779008683087481901085891618448069488547063872057258348652152839335108911749238996876068052502000729753798166937017040601895683020132603392327602833219970625723698156711870006398048815057823802450598744097345704051960571005561669323874017056004004586761464241602953787543716410495369263091169380392769956233698762877260638149650748974795167445537512788735321180060602106703988896829042411287040383573659159540937383753914070766227725078815101828149216117673737322655822240192607816620637928134706947619074004181449415534813010211340461952682334736305953358226617865283238455507736373232948649372026844840818711853541418933829812282071354966854427032476126119746419005227807453742560728743923931619525466227798283519108033352193313068594652394421632163623997340128129080434856337138142902491620765877019732876958618975324143589994373831980127712089660506776015145717336827732655080006345192081043783221467619676574600327929098590691112869115639421903675131458651765429104050543293695297091229501692505029984269453040449388621669406931366176019961591103580284065909038487094228071507939273146807011259278275978642896941794898768757295408524162758919638860100089631180135379679556340055439095768210475160969088948429767532092618192148732734271991604067459222192468654571223516033248180022264914262627298525834861120197413763472918006930748129839175579234389083509589125811684267980017279783669699962038364892562658531006225785601222463828542909416629163539256616647006152617845872293132876429054746090712628660031014012435718635369511334155132780293215122231259819666212608116860475716563019966123791838402640479951538778359521795614084739388195484205295511378329571293351050752282713179179864060960008787396590632536414457284641412881742221980198037220195763785836881076930143536913312648034692942661560660273545932662552563666448191304929092933525424572867965451599527246815627141367370663250075386093244876999450634148772383259026809584625570354685134280825956649519549748730644975476663219324281777974490472161784945109562727392136104696067584499257694784828622314603144934362301771733156523930988579612182939485832763440851013583070392984405784466917993401846463421588538670463129312122568357521082234873302591863978519836267145098349325587594159414900628670397353396237207462590003624660835045141758811940697543499145677704630345889335624204509741481222587976370730214145756002461858938478794665219096377525999289035360050197944253410140981426826471779970846877393222765210975109940752280154981298909576866211554057213375197095096507895384388293464483717906101511331888153898229233562792882070412089451368676678628337029970748020240107804353276648024433766435929769248743015957440138925974206260841433221337522233988600280858384975757504162787419912147733163912008869891685247334367333819294941794813451455172871476674573175770382912165317060128099147177777602017558164062800290497137200892208375863240766534990174857176278509317580947670459227954093845599864891425772054936942867760017673610873789598314433245355977693789870578383177369518813011800796445272064767626610413103912632303148798467726506366106119460593080735009081400060271428136771754550327738324237422580420883755532051114047730283695250237323577328970451355962368985960484490693956010099377959572247713343871848234057442508187577286700610370317566931774983283711509211011128752120745684522917175542773170044454586284628983635351021375465061357865903871274322175386635279077821843766999920428267512312499191751166361385916647500319144874828084951644094296766054533545110152312654437544837852855412915213895198307447924169121000175578858607275158259472445763964504002729464455061736617773003364499958520640161824753944581929913113829226102263843765377625497030978410957045927393201360433009143099447845127322604105071999282996692463944507339134830693250804451586177752747693924520352262353810224374984628704275820042447097525948046029883356671039186362680687980381879804821085675696461990565723180909022574841133809274089222647924059850292588187677643732308030212817377560172298791535150911837299623083666319073546002570958377352751767920058945916807733231828044156476162594434521134686695204899519143468125556501450479438185318065498904015190350052484604207870320830546434336901066814485290722181098724048065835275920418379203313616780430988081565048855419859800812846752388995066231201958616055507145123706407162724841683004815781386258669067152493335467457693956512303456374356732806566444138539814509253565903043262924340832086148967075694885913038782914714367152415636991064193380420857424491723300051808302752470102450849380451526912694743063426239638560495205174939095862382339926994619465153594643750552032789481259987915931045110348092997187693066596099020120954214887439411906906807343987707531647031789537997450530630487183926056466196961564422506695084688715151070838170912941617738203006685245800721972917061436341771854807968354763733164593928281942044553953363989568236168881401444962165939424349101028950769427421765869779995722973576393904670828441354790835602907154970837635365639429641151331413711783980565739084277254445711994005354270771926863312124397303861384146283739283107750256676022378804009452051144612920006014547152970955433584886593139465675970547074705714088904888987065487633171799932694245080968973355635460470883656173711036466369443685328444850636780251956209758176660084863855334839388153927951984097138561767347614854001228326462736126379229228502946214568101136858185049610285093127343813397899903062421202496220073264041047780165118975620452682080114451630917737501897821985401574829516500718708463159535289731016691200015637963378270341651540489304553140289874210867697508975638332367973131969520602472748818524323377828723690322697414716910965289337460224633287511523891011067619705060703279480408203966265812441983655031268581772276571865385895814102064378710202875325366209108456638232866095426320723772555606517092248899821531543482247279489906150818921535862815597739090336662665597386823978920262033631434124401109412708521000703389785898812864051130808998512323011570202765578742686480980838866303334378650492075158261108267713080018329352854964720056261938135654071750200587282353627459957777602761374258198167779591495707480326365267369854167491322695348873810414515502324863442566273548749986907501311140071492320775238299280991103722237954859307064365674871746910896421886840852781687417662736596832647097724880567381454972147040880543850198210692702164331128022904273074217534894209008324005081853828838378022508810301190620211955536432399523032337625760423017011447554083045996015931131549817590547001490078058045872505438514275441808496674023156971148491747399579852884274440540499508186258857984583180119517109103348129566080629233107935249721726098238916703072577996369414228657261022627473562572077610407217775319237665887490479059189603070444674203370355797251158514708027581301086237728366058280070505407319043279288994174856119963048966167722896136670285302498817478901790026226345295349204610013330136519048945265526592589910896315116481377864805738863983976303025773373259310927394402171026562551120366320000746841285116692059990002852594419816411390800118704831059370745183134655905117562011965581678061644656347121661154355158511044655003255278919270398904115030365771708574510869870103585778760423886723312418312749985306003916539500289133261870351842643735180496952401921296816202725188807780679496123043825250860772615111136966028863366166734135889605681985000228905798269442107203788781228173731719787575104905211159086822627616897965079799840118975655691040234939735534313821003195823170109546167388476792405068608268815799030165899503110867856095951567723061078461744853198391846540485836911412254872912166596537399246068130649091676243696203836126876459025423978687463525641061449905518959478673367220823606973395955921401270445993352394965856506814378885373123726378422367212203122938303091610444687534544882246977598558515466536132381318967588058999086885451035227706010140490720816594773355521644769635726691092712999443383876113144391921504920586167527279675701933344827822618205490435756820267497907766394930027652022284771034797016689872460759448915033335556490095815157430337943757024588744390278367694368014930597087712162448451713760242002808259672180208617551468238249596820677213365369451376264794575123654681765394168790846602581914001657063001853876010095482913989064598714282209903463779126547688658246071647707556049175141182831070790643613931402309920618403069820642860196348346527773092150010580560986312478350804003079081378988915603841404574017356439232469493678424682418543342502489403100580384720092162380326466772778061345658122627138542915502402206382367852793801681293979299686668651254831555979060152742527562460461176524883556167395128914010864796940466449683759787264659052168522423244393970094170412239626670825749171811874946571220737169522884698367797675038869308645347433385496698235698472793645150694382217245048474471373445940931428638300343870961275791775378560124170955172240886293685213823790960843354720355504527099876076680689762738005585549095601044870664278871092331787099523746538991716979946180244624380313858392909395266739897847790231108774886425855227362483873766122759576903144140138990975407000400176748032831058443344139490541192020262606604474483999971505273807640670106983765244668034116510033450743832079306679345011400234470587461912414132652234601150750215751821955344322071662264166124993378180729355199438665895029320934519132746257251646220540923988970716885518288672109268151901642995939925106755212235246586479488247485668677440026243237748620663249142889841850852602512469409433184134361214796024493580855316508944297500336191014848527351376378359701996576158570333094511656708840783143027292776999908057236087497227664936874178903348485961601047905967327489199325642122425347227742538981852452210902034835293986762212738420043068251203454908753038699138287080506961638639715833789587423846231775135547013931584511292755364983974883411126108876679023693017929498853826136769498314556643013995122864104394319888577865555622959103830551304741035600091995140352159015551882009295915735308272120451316842047189914557632778595724269700613996473836091734567900648840716149521645320104198992118155300361896151142531491749553202668364345360831428873395039245457207768556980133832516577234369784597335131057708989877874282074488593518499924004874853358676368063000249702312951764030854578536235664770950613028881766507509024431346878773838458343753281586670189440416793585723123793589949121386532540402716693779626613919561880015184601649394055063335238515126765579512147741591338606921665052272366951734027583249374624576770515554062386784851653922837456007938494144637017504878769320365304076393441563434080375465604817977015442903416603378067218886844033451375531678813822326052698559805115052640295734665826023248447997771087047797802391805811832021644675485681482881574749290551507511995990445407640413742638420592642840556751102758052168800560622185193659303275905215076343508195935728513182817820991720744117231101496104876758851658148124770949730989500353134350911908707794524462813368717047376000544274705864191516664473568121355565502756491334529911073925108306417521093341140322179529746267836455673036829764091715306461295381121590546702897793980570904936263130744692814829674058811012277474779924902826886973974377417292364421051765979607549407140072795966406303973759373413755069623199892609902341946772078843258643756824780281048494039023545410061900368604360597048428108742307227152623862034693472294263574144340079283199125597910830275843052140269045897888741611605241467307301290793136721380528701589418100403139382932008962177507526703957785720684411226925959253550367146572163408362342652816770215988323061356116984194010931639168469565871138535188028910153143766730600189514832299278811462350062072735350501291402680456222224278026297542468542097292843057694341643737869720535954207537415659012180584212530755800071448125221627038668611141831361619313318459804883133273405762704241930924166829774663134718564838324646266612889745005620856157961108180377665647158271001451579012397091145307765614284490853309973042123881214589811219051426971856885960174957742095631875669890618466950038420001502315990033937294032640642952775366451128441276509307440590330638172129159996029954448090086245349865750848800687697926198084979269530170397364713909798197100627832568983818577051767698037439905843374268760111010852051859968765708246070140779659899512060786935500272273056628201006163400966946691921459899312739443709261272831761578117528102851752035978441110203767038342607447484064417278722625273257619014994575762722966397818642391859984740024283592172278071108738843318331315761379085434894627708694633731263830420753962369659746184907323545887265214671993959628449166755387701513026211658650471562949524564709651395541661496486736928531941354753977517681120258909493177175281963431392283430511194915839999507079194749811253223715973434785467914177080318207957556750969728608686972262271566194836505946663518726819954808357296637134757191139085611116419009391737483770614518787641336122298875477254726917241499460640236334293550159610445943776880354832779644029967541084525268112095246691382768586889818963798442971911010765730089480396229173231472641141994779482152060338516816829447170522034882082646945662224553095762907196121202428724421903164610157817512251382783952263994539789545768491009632553768507378153687689138734123365129626572841377882868332962264701901273539144933939830961302067331662025392524968035489893343052735828413802093750330785360198845715778538144120778551023819437963577667124597825053721591162658907437462989199665768380600041975193428365499504111711256476996535803567238743870357858215545585433015602090798368617484529350620730781888291934681527447576387854078952591244665397994945615464930530731542778301824874439603127689216573583695258447446480579524965700474098806441292946046927514464773481835462100753463984508218087530513679596328475223166107206567592840420730611607162657671210216400957839901938900872098537181158967346266822594713528104682191764399552023748812807692194721724801399420025341293231449224440784164851640099555182294273325340117250229549141372015458340597168841407134518519616648479439475954095914906275448142885797627031909622981198784897439873650371354454946530159646614180068332266605967797348227286299135930368136374702681416822657316568496683200210062950586551806854890062757738624960171426447562548556250418634656383605957915453196060455483785186029098868554425508519740822143271979394704373742096994527012206389698210391833115162676612445359774797696338294404044915158677400652014751208328437202210196927155430795558631486732757595791868006973511846224592573790426769916338880124591977641264048018020752051632161427947090316566845370062577232850540105412341059997051292850488131768540316040902465463632741850245284285157795610000289666493832310765724922624682421086141225543363652915105955291026987549313481615521590072310338397988592530575850159136770276298502749715059378199396523428099825495060713853448770087147647366757209956840154694638446332515254493106940253708959165063569931462287654210059503426372683010178533241136762390527119515694248740802229536045180685466199976265947998986943140227605004596185083639919182130332308802541700885459243721023732955192135404942125847110024474031768009360144707703783038228647417556804004131338256669741506299786735580538439766148216315968513900436682400923292540568382617722362811915624234030570813177567169599232597089439422695379928835568011255536628320779290807067538620552555239724998778413201005173988577273019489112515205829799774938918959942398147594184470313786739610175038938148224186261754041756591778716669554585414860702596765032200412007160874119865780172322957812041254796801791305130392050994303754466031405565353451148636041227142064246879551907097094749017918793014321391699318078730185162857515550503211638715684125843108514991624655892927947010834228821146881277632306918078477316942932602011462292183721200609716415111254053225133676580802264237706354367050870991971472040122609037003224498523129320049096066213103833479253305283724675495486178536855117933918873549039693732786735095512479516005135145972183693107919311320573686929884440149651525925643867379914915909123786058820054711090732098573235205256162465461162082387649846692453350681775889478065669767215071838491342045437772565146097530243881733869765675790601251375488803573324520828150027004107381031482177650961167299854770690369502338377555184374956105126633855952229966440764727522362919735569360442637055626816840550473871902903333989251869435505168360818936033551810262862055443634396324284837413330331519513165012900972485078489513713828975196867969387790922048450294540227701301167944916222892206702321404781386277218106194952775629960468362993990430050563989597807849640747892619568935068707822623985569833516796624531673705293592607398473252160955456667083604493288075340026549779586410169901694745404470156255938887000154930483616710226396842296414272324960852714392368720943420824752092990602937355736018652575277392608472963311222608047689322641445019574251563078573473304089264262666434609846809453674382242112459157247401567742564849721460782459991427127892962482240887049850310948671125000964171670224197453580567504383878644349924970665968768133254121428765059443884638968173312937671288614057373502749821049410487489518973652321739792250717423593203452817511299762534505552202812295202455275037796949541440554164112530792581263513369452197491122428087575580196703328287975613655235427147096793952003336647497381974181290253769931992299032185887908882596234711667267631059379299369726904333566604128431862917941309196014676980725888487380995165326336163054433370956077174134153585255393661502320230254525102725777464962052837480000946314797125611383277334843176725566877156280137548681296227664146852961319611024123873340164533188853498790110259835495005492699740778476694706540242645648708789315083246944908123924290815775858005517838265635042042701981065224206618455912633014135758404493768982354939120148024702916546309453716920404890585267571596762962960530017043280057392935304585722272954106350626111793831401498785695231856783337292945744290850874948442523370244333141123244246606162667115429040845375564063038789817777001889492728461878791038883890042211692803689437453835813138067464682264697423079719377856184793313731221751243809283575504075917920695682093410469867656171981841615809562130940807182599697602325529069205086200473072676743339556787197870261262567059584516397758108490257170176073855912986885363303387116895074681085971720275379769344107511240490591010494055412702141009284396440027920942569948732096521873573051646547973960409388369780614652762159349656883121481100919806995805315064031204287694042782082477244362577366623187041172310109721158765214984720975133367499872925785091236536142687707832386535237562335239521073109378455808423413205782809992881701466448944840983799640335971743681702962786955177196540951080813216505659184530846445700113944009000950852998732789841717986577741902609482355972283516540687951362115982520118926557941392509017025540937514774474050434309596100662758183480050259187816587356730243122439334997021981970870151268400691273389403965311084966295303898330420326222339857225534209183868962682455317610927944621392750554168658328427787108071574065177012710713562891731006402190142814308523200235593632965670656943368396473094534190451286317181675381190362560411559951560437213742782995102804460303940823005243875032812882680406474814842939535984543381404213566854540041393650203004492516948915715036735974341493216994324200921849947013509757088605799352893493206782122637230106358582823243383904680162285757072970890504695908568784706686700003240765540639679759300734366722593353866912280769924477277124765124023717179396800477722911979290384110190801917657526559086957193508026888068439612915148349252172835049906032950349786431053900144491503470772623209596295347946385247616955875907192836706106618722788935777655145262693405293106184771844257747687213061906301770723141025643097982271954328031319477927559640627743437128865248343719683161403273100596661788384187825416544871817515077555313972247287654751373519505724430748132387965538571137034272920258393495886130495394334472242396860012088450088607777538125349494025284396633578313605942230786352037241253432778837864240371050086233667629313940255276483683703625242682531594170721411917771312293931246942742768482716861478792376549805891418397022932736391838707784235548746877977460929784044230253774860334757258866913033010781359197613159280032097517211371667765453331236996346559732541548787889257350043105684175443708605191677173762973223041650224271503324333968701846927423702488717906520443986174400929574292638205773046610967508246950970851021657840553305413295055104024912642484572453976155554940581289701224737295297506541650923387238807538202636280793066991000863520991270271843113493803116093617154006801916414963421150632445327630310079437578946104375480856544774885209662148241077723724121491646045637701952628993995800816626208550629430671299938132741908179834647570840767862133531785389237273530585070328194616797732160539624252862315743732205439819334928779567822581024964411696490094952588773527640540850449000917785095075585190428239713642908730328439948659414320334403085727366597612783044541746605528905747837342913586423992660493131100481445642945608720302091052732013977982711583325208289171143136862153419312048930321050056805075902429475944776789681184817791046945627762985369496888133334586972618899354639184502085781917146549060967395594299650013412054946632336862963260047151769425538229255203192044107131076696129735290883911820461617447865213463945371120013842332899794123399694201817729504012919283126537842571056456922673108018117676648357978313915995831998310495233058326041972097664241034599772090905247581641661675582387312378633900443531497771217427631621707417382372746084372563562461701779611525675734333639171526065375585802526587209440547200404660745632262592036441670885862722204496323570539236607910265932494215900317971922118238795297663880566928960876038369363850164320087174315922312344583726745136448435056589624741320028413446069930845031628427280570964018899898536594982036578302675180756346845239982833225610859667718073263097610458144813226162764788525848254000117949734785041894071237521463651817871551152634149934338944990605855730542359326539303123646529648977412342047409009127756959531720138984934140828772865926778820414232721403477589987696007140313740596261016192370763254415997369762912679512967957644399436196083615718157915147537733462446783635326102496049961522830976210440642181282985663379719399357146029986824687449125457701564370013485929804234211754524051253101511735396694098549531917672821786846354472935010385911357922017584519596809990236205902854868137900416052537984357363384228573034519617542755027085191152889692229819050512686164194723475553296018984839535846311532299526966662218645710463269622910777381846012933849718336122389391512973059697520912098963224037560758190488229419736283878407093903948792223176416106385924864296094621642410813768845894582918068475346477898093774163834681075588479034983568041246509978601006190533862109930495375828083619269493896335858889236447095266613023145117238412546383084587789312980501432362039994901009656854565062526148546760448700659246689723363194953365759026539364398478596081983321596330053263977993363155033323196645928695318512688400479329650568438703114358020563242449718284345033532026720072638151158547452106931783763114816887274139647575622453240565101143852637185456958148065383691498872005133866263379314393772001654379784749040608824931828082065578935527819466366419839701021466183857860183010703928851120318140665346371351266722100595693067795496042161873020256743801137283738368419569085232531453088353580751756566112917555066913208414526056406101320767065566534579669579349309235806104804108201761719449292228869870766286658506674671861194283337078226395361003343758765019308294107183884789319339492359852807113895069480085403207834038337391114834092972355524068125376090509220030958125369000058286535014795402454450585852612317872132826177571281428609316427337659699982794930308610458941011342531851692709515485994250899582719460911464618966876501290258008506705357568342447153559173352594349974975066440084887075663828130798938104014855442723052056080366409174205906973266802598893648726302510377369474956500526880859725316370664180473865746700450409867010308148485972488464273342065137157876146605528437086319390987965755918405267829184613139024793027580912573131742515768287013509965694273587191899194091488818887877194858213328381350712919719950898624097079353634346666341836079595896021343671977210449524016883347337984147468835922172272011106035035729730608153331221684132242386360291152082093906040647792266399667836947360973309868623950691072604297227529301271208347306383408638041837470192646632228402203439606804763083421636546924387467111840401846698308247867938162345823223765024939545201698369383565155574660789075660669709742803930987317615757115916908305189644903299913737241065965919873426209624450445667146784023239182300475632602236369775420729865119828990216626999261109981495136520018565371342433748901086676451891751407486743222901856767145341888067929367047382576167907570874922594597088319975197773831799373089373930156401014616850376827880548367574626352637360333704448236647286366391196764368839672227602420319515486065038957937512102849470171917305246816915179295490951497766382217288720372507900793109558043441705821882022550251102509113242755665451389731519026429359797702639615048472950784637223336901240102190481499118702645983832433659618160435466221528256312415922149697298281421427952776989439995711499113652221179536160932244712644319512928834656838523453558304818109412028072693066635796481355823860603273721577606241173591167142351656307728636158632288198040198763493115703655712578324682786975467702548106634249308500750829800569795629338947117427840409261540390969697483865747823050563616697361987400857074373243698279903279126840450792206856319475223048001614714628385362530704824523022507065177458454383270158722877326607872076395304452517975648707665443583132546952254964975108518601479360627233883197835109302923787210530599308132793142357841796364790773869838117237303006054030560325751211276988240706236300401349467794193327843339597615279512350830647576606315479595251259788124804222506327903354163222134177170032334308919440405136418332144248075966943905943429810075310911945228704098794853397937564455195507526106739716952677840326322558506511966682012601882604391721785786986737692516654639142989827511638343974136722578611004685652616986191829325423939987887257394085432880894086617968646663899416359418064901285263562750837012764986688985705813413568597843770838158041551687453014534141004615519779268270371332872598893082186337505405684314080791801888694254017353703487819118500580627265514548120350438785274482248905567878413362147247746696615601173896282818553226827474078481440472519916094267301602383269103560577786258769019317192903292471527770267859320287836216915051487163308900987610136861238755767724253018558422282158674171737139330277551697885544587034046033033078612835663702416177771342995548665421267822240714755133986987475999101551178567569855518160418599504128829518406770257724819376454517247549917936129164994889204428788355258461072233090410157303422254204090681170931923869463876929108919428511082930207661963494563780774214534815066114210812144944877080340815915339620625671757264739763099622115415279881233744968749935180286524049402092872244267202165281461337488901437425906833192910626543005201503786994071010615100977734304643540267577111395519219662140351932654609720592282337910035400004826989333681539328088060741615948844975964806675560309773276915313093208084287958764578940480332424998479078343731104281929012863717115774211764736727216257435908232728541861879413088355789639702388743361040497667878048335632086570223876616477519025474417799296387902108386148282969251599970677400078392131611612187953983722114990240693264683027290894673845422023865694222566269961078721570148561530114784917182834665797709358054073178853730013441159299688422400528568754425259724917600738986873522694841539611614605003626588691620799844549082074453649156467760883699005873050389216825315411431013326352851699652787080331985618071686762399720152974942812948201460382715061000884308987304674115971624991970444783115290104497734127594455385555795193235348847730080767978460193560870235395290589240489014160140709068116015174567043956005121327697270858185869120530664716324230811041145114497916314473738357892218475236945160710671302168298906183095487032271692054763840143136437091688083582359685350430448578148911957156827332826938806099011283463465515956194973292878877800458019491565670986552797711952127153866162318146944787206083243372885637493736918767811623851367017241118535209581512561654076879841922927902806218343487011295750433277761308318732502972323495310830146802024109986128552386955585537209898353758410277255830118980606512912282335774983710809205669801172207491950216068105132306012097892457101080158892315633097930859986656052756893754291298096338793030044528049368613381611178573938091979399571346935964926061607681884379272392820095438776312431987269241658673192966455574104326280455666889350703412821888427073566919154124235827356365634146462851210350216359489659987404960693323069341964741044771715375764955029338831639152436167991822012582185149983996995438277933519173268373436798377029176036151286174236063147145752822539798159818925815074442426374052262618411530123351568890447345845279811795984528393798806436666905456931829553909958500657116041357523875887422214188422333875746516039366006377540496191555914671135507185769221594737786841073768355733591495891313794939150332860681233021623063868639800908772464861801117923126425139750716742023345988599779905224021726138283008953892972766518853632416815239934516286841816481751775952316667846737631614181619455690842365337918444348875286069130321435147663209089233906721038249305839152092379974548960281725590556779543337869492186533402523742603630722257887305294290235103908212938324803990147727727214305062745223756478073652813394871674575991131401024861427186784622671371853982290643944994273522905375093294990510243444636151502477559025009313683760474205763254381804571851775670110319931077917398215172781725213519227537965017395055478511712262465713705459776502524371542508332352082949743004436326420794012219155310064242283260243722002722063320266498995587871341894425028624212007282274639155720917129138960875158491671711821749346276223915549077596959640149535227884587384270057950201974717694341478512436789062769593529020318537137670074608518961417905843497337299233458509087196001570484775264216510081737919900834773806407980141515597608053396176990626770766492899014898333348075640528659537755937982170894902177041191854869772064864774319413477339097481652122570222045834133349784645414374406917647696584916928700778584624526969772421803258957575074821325544716732072565743804450661633689089450609277146023340676924864924995640971534434357069142098068870363349919765357974767255483149540498424222106005256724898931955227464573260183358451651547845312719335345484759473366858932474984411086242587854062952925048875407748363575556308854338138222051650406539165787274962601025143786178744324864958147268831231234246408402358489972811018478105497611916895750790858415780977716567356006758654650386564559839240070690014214745747216423234265766178117219844010452957169895074742030764042071988513564747914258483144830015140518325535621501929798769473780191532586506893815343956393200063602573695541919556233276332629046141071242416603929917395541392768922618511507762213786791315005215903053949862498244518188992324398761142421178058858593104317840968324605712979806305829552527799614754669450069416212914238112858460092588455200073462611914865388634826892780764662959013319556661046152405019285992746318384704341127010495453370106068602163567737927698807865455835353567719857217212809828362464725780625987559745516827763349252171784849470621582617584870707348568710521035835248909664971383512446127013802121984360947658749753578706573021059629934892530114862390568212914986687380528440658618395006895134559596518251824241791104245836327393532786114678838900406657701569448300286672286042134566854636987519629323636725541111017905704176902992403720956298618219090477440236788647919505072475059370092342263806726908105150586918587927664563348310862075993745953690059622527151560115953277413825282027352875951602474094116775194895730107387668696160886993469637482630147740201741045109897810220036150351191645054056258007775664305512061692121321960096993365065724431267509861467069726675668060095371429984768259763338295566469509567512903254874185365582623996955330548266163105115337577890890748140998526602965717698899149323744019369644334963146900024497067467995864495904196803448248522289781179259847274031328469783004943335980672447624701143830241512594157134584529191420712515409585547514222126504020599139645237536352109184010157535611949787560895258213625212851660144779435414846767879365352694462346164186680968597902627810778172059793529053658543137860990874689359366052792390487430069777872941813451549667933461925640006486556167139373278611344323355103651904224613174646155481502687947389299860329852033332071979730782655880769134309039071013851189491878122970991778903376360089047204830794640149689557201735522108151625437561038993069770807956165703377370899878517019331002804046908048073988594351782391235093642073551089162489849788405679756015761748396577481335396999197387197009070101134269098174378515696076705817176295825395232741186327360276447008974664356009403788576700524537091740566066000312730000703580417883246528565365063460846403001389364606675144966847720980450287616038432227086399585397151806550674132151009172277497848751524102113454037302750528290970867372306259171228953818090434886804943566803146641723904899182733606141220102671590859115504128403460104231876817298005477441678353622269741387553228597866690367722959697273650547591915868718844652154701042807374334980171847995966691719769799693249405420193184022546410298124775974327178911387230746291888174423658001910160913970983683759538809751764344808954382911798932105746957983359364534280208392310767828837081025230847116326847761121581545461936698772466886207751632462196513326960167453646578121283873120179491936853841438029208670035723662768218024413848918540810282567098345684483177458250567832094636909489561471957352218724837766615379229154983155561179124397010931024494345932290453076235237296863442822254688548150141989590042303392487522712190835153478054623999399845714014386935055978926966989350334836722834841638818327940562154104387006775594608843778757776439322986815368797581746438435964382277138699928537126414928020844425726601894143428125407166904175672908975725202626290396390793623279490693799644659327584187235313804355633813303570899593839863793406838335023818348941917182524871389422742640114625887868789650249227996588010616274023804604108004348588508249784625591778019803987117140357332244154859498487066221829087283126214790250274318419843792157950581006344218598865720987556854731222180490392838356716730684987967371839279869543138214577242035760663332986651194990288212078792413798629360114034359033647494318117462642622643800661993157617443804862990274996615915976248281064354244267480698093084639521629111103963275850264322841814360973841984100755809476183968685495417597802702252895291009659970081518601446377718101456033722598543897943262700817283808097192803398389069060629033285078808688678453994558708095095577853530529729382578709944692527450631708228289857888304853996874708035841534346991064920782832695025762765649062624915279179315821980297309857857268557131087423330959451181783998348597632768800439294515563890265199166586258114694687097507643454086586400274655173561151247799488265119778776490732325059284181651974936105673288158798314115558962161158146832337207763314156341796757494188716232341603652448221356334323057407406464769128874372774014281878666198120376831007348555251190012402291571337537347485204393236734813007396265946329033986448010680925016994672592316777951973755510287113701789774425453549239761189199304766054398717027735822813625105293585011934868749696260604901101264956363425714340140720610846252204301428479658599582372500669954011606384411520112979199616454115125357984256215996363323420791132131215894970353164436117745421638917088334014939183548741103509536224745524776564500637460966528308182756468587440110913026713620749076031876593604898273606885542056551510871731727390247386513604556215451495301636042793032017206559597084846260500129507809558203060695947597337419971241007973898266121597300888707581797772903416590847612479001834041804428265935591603093835650391316758672620117263983012442557486151675986890680451280954616568104091664751918030148892162716517947003725851566962896321937002569989555578005839417460906564753619819146715037573159635885482803009152416006000830929149406551459477223073593693058947010753557184937133237059666158735725518064511043435166877404776341572383218808569992659195938719359961777972570763432790638205961887463295550521130166033849582980151312286627811224999214910165217079413991550787080848173440091028865102357120713232534692426237319105843038840244242954320714886597625075026025695569611788479671501374686762310289720561556272871688581997907087282495260290059642253093025641391363555770952263044417299092869976744456141791616527604560881273242737213891513027502558888329942583313772986935369291070858742448406229952452763865799150993420427905577831556449423741398362324169742901002359021810529606755115192806059238377331687099966333157954514828059973803990323432869554677238233324212960115425399398813292747976321841826884980424617416173274287451509108569500250217229268855964187408663086668811586381950967656793177338148723294735290507786981102626076287524233091459978628399940207267194854104632614494239639168369174021919074639899865213741069573792847308658907826952668892418802330027018880656362699175872337398024212071965710377884752526513308297947494770384792566471854981418095689600844369113894252244187861425195481393854071690309243381116615732929639315061552921840379725307485950139891399023022635543160268530076112056081738572468885812030665872735080811800989732665946657299510986814038170854727966318533799414213659350786932967965357115234274799818107862614906892908514612077160378946052162090903246294791991308411109533748785816131984380319213471917642452509488395639190442517749997920502652243103007138485536163842878916647052237552221203849892547887464885773042174646818446111814548974697009609967419611725657645834835362927366294590709747241769478348574076619454895364310326444132243694019130670372775253276358216528738755234354075172850470033339194422068311929524360128838680457463730320436331961406881999733099330747911322303678345759927337234598612018802128939924477204865337427969327496683595428815313379447284154245751504711766284366976752033202745368556949705705323578890462583996175040790780102215479145998604500958831783432804277769287006131791083974604003898151451961373173859126844969758715088706181064708684300844073789774701201396774233926231003313208010007518632142991421079866958087447747713397528641500618734409574104733814839001156183324839382722141073687829189268800368619216704330279584100813532510969153371067329740587939018098590857135103936106129276111847368782229667570585319159875781664410565686194463850286701577904139570632895042442365390328798504149834022833272552367578967582036013767826614355448493201298982313328161383945839060906038613120266206937730194930521383292419932797984143425953810637102328873659106412154908435979198267511625518521274403250512589023993170535582629448243682988911141124406572179739745265147491655753208316387325690155613513232200012446179780593217999301052428334300818672320052141968206063240853377069228679326012417152715775574312604744780307182665575463479114633933586029127899903699502579489715403853561787625313578546537062501390089033675414081923605747850476609870140276590415486211774021416961675083911977082168168404394304339754892541871975267863830419927097799719440094442120877772364707164992549419921429114773565007833309868076505546971165113960004709757446842058477588961178664824872984905627539799953462772412138676398204582594971376227000799184289983247390950837816346373389871381134327592702944329547966161080907944153505935808693807495850487701986935710698531025321525701800373038355181389811472476805919459471957946299807180773805370098429145122168994331381335554245996241370760749028397876940156541663038333468230811771943277283097349767830968437100309831328741381917519891833399051593920791509282763615497700647540635018751456690994299598592369707401227693856320799229941907079934886001308821114588863754373509161665559846918505675307841787843704062327100864030269836335685526151996377374019099878402276711141582645536943600387930927306954809893461495914023683863794881680617880589019964873631220743487346320919710664726380231863059363349298677125216279571394618685605592131169657456346607928141972234035929234982556653927262560334966595795431509482049468437730306302585780120859929005013336933101279274550311379986687414683533758428990986750324060264470013717427338116130865928214586808861760061413198883726362032668114692692077052210178006370823455392103055424371602469327377375975708116576945226112628803953421545649546286811679102005150908147899348502699215115890219438912246915462721687295288341272622236236444771861785957228997314957433623537158096045273589414116981478037566431453533534762142096166260174838193995163284442986830251605785669707362591480647567691419376217400516985207190353408299908702576833924525875636947441807370082248688355733164474923591733570579167191299033990987454699962001809113472841143231316016630804054326354150743173887370750499185149557930373869394065615248841799218411546987279258502666966390552969722498579325950691454710602412805391040951515514433206067597348807336299519361646864143307466529430316394604101980624789704368124975572069287174365964025842500680972653604509341999823823386742334483723638675695496492131822338071823869204667004652933318460247853778159461255030539985402510633677789026533851066827978857138721677734045668459323566800995733361648309998156889933472425364844998983164903595323417911458687709744154568036347507544092612326407750062006471081375930438698016193801348962836877178756719619827959336782502937986439758865951035029511605599176721318972547814466013738828604218453812688155415328528119538341802005116585608603086742989141217986054772637165791306429488579576769283378587130514436099146145070648865489868713080825430391941989470361377342634266428891979904040104386470115360091955541450904793610124716430902589976683748122261267838463350605356625999950197098644029800353939721782321361588539587968948895767329195026709563045129453431271883428927765351823438515748474101700655331142303370086727283971354844117868131846306382295870398560172215959305321195616823726208566430412165500505263482457624386609797940040420712138386767004955090891151673785462637048044280837143428032467053783529017679798547727919164377864349235046248698724599295974108612442022799144295675546002971169319489583954629997240913455723047567749799611536448622748735423633063835979904447159808404650011475551039159198601473179358622936728541505993955905072406562136441877542392347622266195566607570530463408023063160767772473187320610273137260711921298218637316898812867927726914497262609545563317922033684773055795830829852571092271244228560899435287336356535470524750595818022522361302742468406882052007187847279361189449771285134318584102225680156759786866046997332714722245818146553240822126250991775890115657365143503653475416123217394031280594646907901436849945718421747621301963589724096208116144764549689684275668396697213622254272902689766383901438629327163021313266022307499518247889146465806125428561335711521000434894459220775148352445532253506656185218922760547227457943253684542052766622211986453008921990354527882391324717150518483515760032620251697984672706706514757123289414058503209249393900138421017799980167223832705132100854963286400387568255534743085950185582302438493707148992631836250404995325942309589305222358815557282605597112014199895912947305877244411563060416301162384705166949523845857001650501438518680712892148652612152515194920955322928839653398630655770475516222011573070319910981913367183397961047646068436279441590917700109873745345090440318917024041979679901188301270403386697963659955344955608482194755009207122889895490088167347579391928036060348525334802437348971493948312335967209943024443983939467353483671797001091075921470739557141601783285212885506849886837774865431858333631503365242569662562081879250537146216501881473755753228226626509461014812744464430986443977682377794620081400366806456272411103028564036291098500135846033973291623623551057262012522924200329918690066790843326042732447159012119723697889277307672614281223172503330412875576757639778774664237329464276190479927133140555227284206813436462385195778150783606322433857417960839725107821124109641809078839113314197500055011118390276801374601796345899888363179620648302409541749241436319487407001439929746645735963819905950167333449449898955946394011871266438564023024343120459101683587609686597060794906950719161648478477717800901689130517699033244543598568507139520129305354529856734855354244349670073357403134938789526618876949897081420858071850456152271785013105632484175136830634232650519474691286698502173625926080272773732846591296723456355232511018683010610136652663566694563825783269459585137805923068498844624654761828078197449136643577586776540729277392948723306028200888249718623891327158979427564100379941970975738119462333832675526095069078739560141587460138248540329999344367566504682446301511207973903699081106004739880576284549426441107809451785373256232312255892386630266305630317221162488510123048374747229798188052576894608368757426850678125743650515026132999402547851262229273653323922738671851716162275262964702365257152171085686056919046668702088942519404455266185508855389150315532932643813608570699926887006455777801211572636436863840050553425551404174672840943626206071771950175194805940398854344628338246803359871823513019475088527029523087150242900395438025540533972462309001293973310295813449636104914876584999149493801081148183817028032087831839133138804195983474278909981474170867530314668277203000362115652745550107708878693982772916086891966114061901160256243295107967060493907316411503330423104947572674730944550444463133683648007265847932964775850073175661564735959584429010113956597516165286726648115827102506894131081699175572053631124030574659745356383292551619311078379492888107867275443777465467414621040544344467470014013991634152639208701834605935617529891764350853553082995399717866455407697340915994337038401625445859940690170385102063842551070675296584825394750637070785415721284494393073874151594992746924948408908676951786765418674616879653344019051857438421955744515715604347777590771166311981389738437614927800005849590211261609808064220802138758813050286037379373061362727193449425862397829260108683434653345389776937883365700357438678334849629291020319572292696553224670527728921206006022208651921601016412769515941213110268431364603624321919815201020240974770579661164849891952582457842996905873701203316005630439148043314376914716749177548874217639485138994588751055374434785797349388200900487728134906608789615716842094593861328954847717133264807809753975127980882562429368183858799813257541126270029516766631179408984377057306481695083557440385148178112228518402572589932586970641360599283319237484894422515666788294751872241133935092105677570618224410169457484341566075491084171618419127511163372505111727454525199792821496081337088054359205377708252711574965424755306551746598228087958455761892522005255468333591528734294255774034282667566685067536833548675282251542053371250287679867468580353128419980666457070054696182149741467280237385334699047230700090927210269471318627941560293536371360981583101110680058793082100427025994243533231667298534656247713264909520285053005479818429823124055468528718079938791152289092085367584315635178802783394538667418346486950430459583407106141787064221965158452442740496815576143373864228386102954082668786437265630831193014836636092204052501730597026950026532150320739636301337761822505756724503492853124831478800128417993789802403528399868038338051385123948193028715942871724036291961809552053950105509711949051470115469740149045947176334794982931216085896501488808459165059442778507988209942756361246982173141390485325931280737088114093925901572890388283978866201476206231850293618796145394425718993147594233722159823536176675630821889844353494526599979321716527174390495929515023177644756708618611072874710030078679647352769134741682537949906355410588342263061937321265232203114214868072005764677118993701491996426979522477348953734926260121522655062550372221462403871856847420317151834084166620956499646250066220138255823248259995402495173000541779704776751907308842716892901032337387385633133365666190147650620872222961641999027333962322632115538668475185032223701679020032062200790017147023222732720432000323190162944156309866526444099951595383045299910149218888917691593818560488867990330893744408559566304886120975762491453256405796900733503871567955729195491615307361729579514551373280952721763620973046671645095960003904369532902421946946794874408573205885737348393613175861489557763628240523792061248540015222277006126558814020811853165466770542381639447817234469505106597986059646617606516403631296042063002917363193876517954597949390433012988019559302763747569239148955959007338450764584519037537359651943528868850180451117314469280622493587673780020357110355156935320525385513919764317843581466731620368690266373859896712886400373393422419108619033292541459439305867438401107667078042397138001225622001315830039294762745750589256938437257452785330214157121926817035088187505355002023608351508112258561700326523506559966415165502951705895522720238536996728445113812913036606127849731431992632054682559167624994413242492270185907716789669722590935003414062024142621891450202398619227389424674812787633852403776249622943227990458214658924450602317773531239532268106180747850473681053302390291222126062500627921076765129383959276414799056226226828113570440273211484484530828436000772696170501291912203468355217113292566560502518837116682205315470778289526151951046241790155451926440939624846597820659504576026803520282923353376507301735468236108815849773936715899330213739087013222218672981448865190642195253292442969276604653217455622328048753170715180218008158154459511695401811546371622123091725472660703136791832592882048520066231499598272709379191021181417446486921862053211115452924874119128022816845320026630040283451210922834224166059994414784882684393601945709543089074541307295239744980942434133972160117608135928159488212479696156088350507728956685347462657553354669935103576770646452828789654296892244850184900124372394611810514743065994649170511214558532041363819256474675468408077412321901744683418494950780038009289273832073746006650951720742141477412753767872181918998519669681536423528194347206709819139879513442144826679070018151353709478152600537255109068838685775675139198650582766391141791550297044066498237254346627687631744490438678854545237763000005071494424773098683867596724990538485029570127452870472427475342205039634278726548094527896868809173284397000285170800700258748170381957977912427878393468636143055155730831547638532300863279125668554089294150788020872079945560520589753538157687069543066374256099905766579156370472809288453046848822082235800612772575295870746721846259513598842568817016171910654168166923478488159480706647321162065787963098343488435689452312170420881403652912854980391524047786326728396381851759995792821527272207006358670258913760130854730413730458014607424324053771482654046789164403166863730135202035402011044850012339269877976483180699824582264568755691889138917823141958781997801145201454283587997362526837157453523492915962367380865203010102788927610476062224888229429183604719933541540617050670644596959942326351812854110184443519243393707852403083917234576383321998045145785980150100782307031579281221434836957317826630912428542243735554847254929751841867819161038040743814499317619207199453234265952903935541262384982467529577432399633283619340069003594657252351602997441211393839855874774733361206751901498965213231465529052334753480081487359018505550478847094966471253826568702180566256895330398198560931615012831014926794081874427748465462887377805883733384007776035937362397209109666247975187855959023854493633283179214222468405511520594392422166921093560435475533020426035298926078458772653876210499890176483619050834450828444624604104494306948583203973335766428473192489071127121125392068646733894449038020751112183678473591679526928477289427408559381348060780212737874182478212382732425372357544156048023547774497879076275579983534251106661775821278399878929895172075806213216927787156319475422553582701009824369386410077692644134426361594463186497219217409733765477997719669692732359706607838175040944051442461364986320865375283517148430178726311316456233056008337411094634826738686032545136621908396108904785665083179145892991465371583128359840193626145096049032294407817226782199694082266118914113039801681892988065802992264387217522642834861045595243811754449393447092926219428260241363709938338511598851777243703309014765401829727192059522982653091154581573881761039022439554843466210753010186684070793346184344452566936529088643441441069220160734753245910345899761066755589484752262918536729349507757936515983677354535649831663339537025183744957871789090921355560914552615709580271300702632252632016527085888236708024302177958919341642520928710628346548386257168221218136046027509908563730724732936970834059852435412797495760371471750019935774550649437674072100084737986155963349524492781630987410727856175714944270653937256812312105698246808662513312426703874774006096086673089495106497986203855261422196491419283673909188359116490193385384856038671053633006212941488256837429590827375771548517221135238845198311385693030243441157664361809593363679649555387604681939799042656572425701206358564078837599275732673309382594559818426624374699903587437558501191290438254610183184164292044200603187563287861219136083229901127787578233544244562627339616114503544377191194205336734939331979644555874188318781229019503725119834908663515739138380126610781616518016263478333404793115285961094936143351541897259361528840474985399906284929023852866912967202576165526273032307830683836029470401436381954618198199665967711157360161128885129060773921031736196351423369003914989264002161726199947213655274660834690996919113974574011049295148265231109579699437777166713112828627898666387049196926111129872515117115388653000126775078285969402540304542812984545075291315984404204470749140609544640131979043564736331745055634613699439156324742767982811247061663586108493464823212682077089887496981313368031662350338102574963896080067431623035697432330738710708738918428428703564538016076872848969602202694223320877015190102771864730484835567597358142738313007553337188016581735628676795416827790928304373479834429778096785171901553552945020494145275899737193644001684634543289830129812786438685790457408166728758739686625101650037306916658480630238465372231729833802005282622238569585574659871663657785287306948614747442636757908984170827931198809266300331199301224649229372213809111887157616099439165212528032263019762389637335415840828184198368161615730477927396815097807262848165171933348049759253449902888396025302386329037110997382196938284636126678818784131926708365595895522581954048020292046273769241900561755301693593749368151595213345526663822531421427308482204478912207156516774578244801457315581448447433006622076828538084391780619078392751352184012771431094180321174719376740424526025264415995603208594886900285087624714103152063123879768041028993654095747024174664459659360133062631916961065918255648449633908142587721848467010589470891737230292730148986604184485987121598879977071561333828011027354941320499483761692892758623884755694822065341538226771137157081628465249635127365845769267617197854351651632602249880658395998690472771581667674821224748965642308249084045385136659336903585744841768018918619319418803492378746371042422854379697397785528606064955679431296779915899104434484397103793845265609289765565015613278354282492604558199783665812514616841721330235830602789998296973726516544577331957785843399489509674875195954861305194668266760254522717396203002529295608097284915710376674048050438698769082194138063646486940393802090530765154201533127175796417717320733734408862254338379181208093026104334400157267536901974859415395119319004283310168022576436624818224105448012177338136259959331248285066089242153756033329013330042973839004634120832520378513849255883458034547446538118166118443704914182623108401842838922565564151629304375879249958748492090882177768658789525625394049003184565804037263963878056661252389828495123141006286710822913220883841026294640215147221223979965126548616803916956081265563091422703184066663564503330307369296633219139967496621253737724034300692378512678304056059703568073139063311371721116049130171941078103918558715646202572368443480404911197199815819618042509856044076034252130564622458074605297079028421301319842877826861674246829134012831441702304711441162177268833209842381885158648193475700079992951948638566895998760984150847363559523363502579916479846699735039279151479337297550686183883668790093047345799199137203606712372693401201924555439408725629134311174921264347237272038263825036453624160207996866474481300974310777811555784769065118504192329020135114721475247916590682445340571981100296859038282343168531773589883074209468766233023642453874366964380976567036287508100415479838857958574582784942316812563976254885379314594787224078675227066402690525256140232933798004539682045811956010534786558813136247692481552137540197428278399580557106899467715387482545895761892084174513727468306486461048092939324188936969771731457498011085214519030865341200181037887202643901434950978504232374985968295178963941086592586273491622380397923645002835100811541627575956379964360462858117537800552903544301403924562686660338849633280587389502116263121076169716110946118768066632470646489610238220077293163886631163862194505441280702712482867937898268901815291273644564113034183746493837387035909250887191384520728105553473086817670647534464164382427193199400104777276152826339669027266107331055454850408152846035468539777153213972171849549511232696685420849283126647695043385341780066210252974906460745449189754409319559877713752714774771527894081981000620727373462427925611674114363058495561964267681997631283809609774382415330671036666057867090194809974061001151890678730526039170780342424950461007948533313439239773906090751284821870255286457575961598716217538375634108420788716050246685363086172105632130137475159872300924012145076655134603909340990326014306498894270458252454413764934793669946517018261447561744329335243256010522621728111688304273570828193752492688649081367797600252908377186321086610192971720554872617273148861983506402608643513248875109535119509340542718801301702513567816478682967693398460834333956477754117844835389081179593668390980985480158835430093067890521957936193975066420910064031502050193272026703863029939378458052773524761617837842835328089760997824232633540409340116199124127035109041294887294850519470423071323083514042271769211257889751044738240094131139866724633974104192170114800714230028320337105048544546505850624092598946655252806094474592051246254528816604024805632978056594689430028752973145647918692061324746344581703737133265952674851247701852220757408226683706351544823457801409548946781466729338050340285562873292324217495516684734115223450150458364193289964484970661423749027516282863457560322300149227070878331447503840089248792898538328220074047332872204682408067406540018427000422905203103449193280492058363475638614267288344998351837890737654756883801306402065577244221951109477417255586308399826062833532033408139488894175222945853229488532588580677634283894381851270556561119439853175846490147356486908077352157073158267061116057942005473313087707064180988208575751753687503106834457028874393294037211119143409068185797343485090118998002357837815982564416636655241105400916345539933136819004971550486395926875156070931398761428945237598306679105977420382348679209525699355969624610204200311615644443347921821102170990431355960078909215223902948693529556050236486334722898950301195138708352267841126653155271040620780602325514809916657181092958588150380066863319126603777443399116987011003949315246843708787829154960828377287752709160452192555675070764848958308390535961176560138662858010369587408175592268893456235074895745509914942854193315823115357035308934632275029027548060350321099611506631379931683611728338558801712776444525220221281753594009039625065206615685983544678464020917707447429837252783676779873257846869885138500901969921468741004818167539281851983836031602353119887849034523531966959926529974110284214242052195180863642203494973408873421594421269385232014588523185849252218480039923831615471055402257183577517913959139423354608505308543037219771580988743689096742136156698223919413507607641536011336297697313608983650069893614106023184455214848836283821070294407856788801620615354063547096730376457946929622689750782031085945386618487873241257471385028966110116432998056026327431360673253496121452241131925833443787800825803845781902012508288529894839012046067162629613432762632950469249361072982737752997706687760836919365626598397232406027476747596937706946268928726974507157269839523397146667239019286068217470651103828866321660726663066625535848812510375262270721980542205810034887218426195107122367299864315560308383148067690616078834889915802083307111186488090656635309788171912781773485894946484191674697799041862476715455793855237594491930829420320411597559615902963746039366714042512784193596467008182588097690322554204786538223838438750446686478222573844104339402310430413056465393864948195150987411338007633215695395292448352404575786498415156357396175292661678815386769685071711398561965038409927654386818134647947370638079115783401663313793333127748375386274146370349414945001388794348474808629574157457069651597097044790132138825820045452911807792803432992762585825043721263465276934962693774589207484046107627541896845309232538581203536200162857685820229847801065312109898233298481919317413538607722488608225084304416766687144452839440544334203925405096491951593195656684686320582975601935407059644052352146412291365974556867501116278070450747010244546223673450749347432886333415487495462006412741844586613892321074768123068472899508174411959764539681085067784185172276132132668042762482231188011069411775885856727757422034073360663380272244901156182919856753687619931588609812193704145827860100182213906280656221410773654803928511296184054040372149042329790277293610061134323762968266050976942556583395906693164011399672760707269833844745191318508375606224323588207052859070020008635720046325492658230753280063479804902159355829887730242171103294888036540785327651460958371315990101794193546573440348350928558565073949115974736709694595433071597593019896087774484865271612388623400083416446506257274043350457950248351139331752613879414418069538447151618574640060410620189798757840498851885309152781175223739354389359072149036789654248262313982824593466520847545267501451610676348546073539673818514820233471113758858795844786871653722020759487280574718856807489206392448402961782949998332799662777941741019478410647129569179298468836617354669337903345374348659258079148406376719186049407110998542637331590515449551756260165603534090803534398926961282529151442183736920140225342692407898746710982039962449563788638515770704666814524930783705541662129283944041986480228784284234063160372043641232079772311511715697097694197757039643367608119988045614922673206880050788688019762927085148180245923888642872080572461106789655049261294807377401415744106469625949883947453038832115375711932774473005900549839091195690250388713143386173917989499077842150089269460057155218628121680313073542398653587061294971035196885519881788304820920820167177860004037266652477219169153040070658991558641025441848149519118677037196183909425560297035661606209307150848916236521719070124347670465731732386444338845746423872511936773281305436611026038417297723783924086449874808776996297925775077663520417393563695718931624460959323040529844006942261525017532485317331387586263971426213816427948299005024951197128627372797222590016118260733549938041201591144298690518852408857866134379857131854803510325850544431295828056446446617197381567170849169487813789756218538771375594504397305712840469113616781928373977669598515897206633170266725873489888519478858294708157826175497486034736756619257437795108444347617424174296166536330451996494190801583609742903319079419339617627332542008230079812355310967964107360610673850469344791972851703984532197942531792478241798225226094039517924372671180449201077106801491186008257577941505010759224908693125826794547005159160591067858150370338558069037567298023230130239667569840911957801354219140563726078184401827958619981555521696949344522947227320332785344972645859484099552312452254068797481533621757679001527416547341110082183109824671475036468803317545109425737932596098892409563881041097989924347583255275888504114245284315400393820934370088188510513265089804300997321095838050826893787181165724056048596178786751564687538468906318224076501301854300833025609461970689512284938619689053170633687169078506590935797174139788262426504066691499730583621170649940446434274820064576399897032656511679674504063681351580210573420192664534603631818957617710635423152072019552932875534716826194687770474382264058486652909009872388946195647901351935707309667782551651090092044223389208520518220532312230248556679528619903180567460236136647324666845994406075769920369487349301063236880063685896181704626177896309839824766701669737738114263352387290899648963118540829303138936224515020529536447965990976395453443105566363400309862395386853290401618831554717541670419699310563449840400562551100455119766253842327024249530133410560171555675903556794716428975671619185787702772675345315725215253209951088983243183485649816820780301978108011560031152537179467716801686432943430722923442227619961195290866206418175711894610547944328589869001211862686895809446358950384361451726974737702459674796219023728326476052355708077052240057742809611445211537311284177994586154287486003276529572889335839969130969770446546259307340952564239159291012656637796976619259298429368579624998550338779214728050804152488156922859361159858073703479179851568593707655529388765177515978173550352652726365392623548442983918249992179811633143146658456190045747776933925837168909671547889484370911757125859614471188870539994291072349421627772048059981778742961155902284166846830009238953337101878726823403962848017298568609652038936200424159773657207524623129138049628609665933475307447087280389272831908337390294361340564214159460322349460493643583401233954428614008215313387884028881685727574281363941874538399347991975273732528932874742283596092317821481443983265424938484192114804613540148647462596606499559232907213686196237639602910349774307575280577440853447511798498199055391929200054237718746556882327112852190429532629117937573478821401046173419475706146390783672763037021454306978563565934423193314383112462713281881156431274560972545151009189632570900457094509922085534464574319168308027942999339507553627667940285387697877246743663599975937792765186945112624271051023039218688278960026490571372305029883626339911484901699707715833098045547321192873530093900844859764541444931707469296802567104200323528880864564206358030441634221650760103692082531034011773214194112771085687233833665774775023613282968539573612324975641136131522585802133452326285722578000775506092923591214319426719115456182415882248589569516604519520978770950377428695516768926632800145331380573696856287821730645405698637859946740965068235662577589799457881705731489123680382838581068650580042842519813767289690396615907119727491157866259632045874538787821270498670018884198905117424888244617671544338922308926450477118816440669678206416017196185642254124982222203869397467646675695336562081182284738412640661972198591725158108802777516534136877303482595722806161464500646234743946121460006706758137381445335318901001442553088232002177011983676449937042255966099246445428506894678275098213621164926704328998741153858414559942196940104244374195422503165212608468673742741569302282746867310441634441317696338138559256800893827807828568885172396199013540330110781843227422386737109758050471589136559184682504680416638814615975025823320731802887434652762420651528256915963868297475251127362232848368222467949328807328930177519274737450626245894248357429069925568067188989592270728015596225488460464537079214481354910062926306215727486725863122591247273162976657400803470413100916123033150727344140458058996805542698165316445845208019374278549655601278622491942550849941224424253703406425275240571553090810817101216532024775172241985200504883251425153411198192714760517087556737756133599768925750020346331298665782675839064668682923370055094591388171544685280209113084984844906402951364490487021624070641817087305813353704057617213492878889580347168612474213500676069947643661177858498021082547584513392360386386260375546550018016912029366097676497550151833524613832660870955286569512095736031285396051250281434597990528642492456774464134385659244194649227115047853433141709718919832813536265834826859787260464221350790606374510997439163707687400936316426993849813795162896157141367503682226068494398308755198774268496216763585400005525259446947019979956298216876723379904264402510051428257739646471122665828908307429438218964521528074103796087280506813599000737050316896368648713572502222590123930967580597360347668320947680478150341669781094070616052462749985392147336281125315481172951655393712652314869466558711782445614406603455157381241856892006637367465741449382714140789953105083707010890255559410769881066917929123168556179255567022243887239341577898917491425506927947122290163335033110848445303869315917788827187228314954129553188499443997346896144641163703929722948092817358320044895764961023315627625371086693748737372936829178768949718604430210332838658486855633604859387663350627640545203646745310969139825362710541036426217591274530736839912141970031627839022610623833222404591765392245062003835354488128060598345447436284834408982901601374045379470020681597978947728936782560802872636641991598030650435775507370050415490389165482990790955907775186896125324275565602404471181748638313050817535673316282918477793433568376867237401671309661487157491237959928378587115839675277477732376630181053857197949889383851728349708609116354921217452077522898127861804800109314878818648354112404474428964446681394808803345035018568156610001236075419824899623509444154864621221534698637172458388006763449242083391074141026959001148294222420223584326507973443400007090091252949575861093860077358924641332399459324389233377774082317538785609338677185719951214067649781864614698557161160850487159052018831448692646006541363504263972357647261329793836758340563154328446961316876910460636830448829142877940433081075731488883714730956607329590688716076855690005453736730901851980127209336139884680676140153608836644123673495283763304306392410486621974083217136960277364870695693324984600269814432933794829860715086980855782297402282558072800811750200067757450112147144370014670312349440661385980579165830921537793531580021496398535305501456331392289547220716171125777349718052587871304638158627446360174143645526314931902103806380930437501731812101462139102576600702116188341951425462280219035470064451353836345469016381411984053316916223666942400702101563151179023381412543581988230230061840090261976139301513730032279057056856280093297712487049355966461361438503535408356612657407093543365953398355820071881669218812186082751005108834703055042363823476895665054845122478702878535469236719655008482573288376971584783476383524007344446550263239171336504535122230892650126670076719154805867601337714140263140334959263933189007246369537757420812020607789028451576584342814252407537339279410879925165336106441002036060835065911181022398398381426782028014158515910987137268561397562251259097307811806123293898840540944913251541731909273143768050423152486122226519546601487241217392926767875663018037981482760710454568390363530687772130118851272946297618857447097057588770765308422662992545414453337877634006471201795954754126282623010699872915604101365019914082430392788397667630927448974287446516556075497353147092047910926608717429847738385654591374696715069237163292849352272347432347472690519558284158948784938110446439941858132269886142660279294420292377270636026681628697886833887307237328330510035640516293136455931229764862581080801152567936599142509240544674382494650631560892984048736541603864076524076993493583495466757278188069966743300445979672937736051901774351713826307753762379110041444317297741794699147847069940423446473849355563794739247677098156022651189910723697477472711299077011125531308595031351047762400305884954759441641885460834074327964788766486185032483549609744679072182280677329530804445925339887503002177233993954101835464790240699814557941644698192933412655199486486491978323047652600646365575340126808091380922098338773995187546321555588326676371412926807719993648798765950212419424548137785023857260561477528941232705927969806350151317513261278086782638773563700738849138956137517274245358586115058034708232491108445008580182438762365186876365201470590968917453973599349340566404650544824628764797915153305020230082758920640379643710692004774267675140005399326779795121925483614456122051403801488001514604129120502159645735148535406015033340664180796281375157986037259997497827570170943133560502498350640916534518336442933333920663666741225979918031698503073736238831741779114706619492911201004115113218987165240836186759146202436529714551972101942001747301945302379800987605599455006380820410166098228065568843801804847527964811836454795511640441929068436615703811328949349593579063302615039173011871005732269904772008894446839089842074265287819137619019603140994657223013174986341298945748250424832721544079745461617901905611995966656886650715754474496431333387920103431174306717847983758340820725127242813725547915395295082529664161145419220234292874146443223219650825377198981103323490543109016840299333103103306898862929860648782125594701041068993772308713855875776131769099201209750775395156098717334144783094469849985586837134652745844721598748919434030530431581489962491474385133897737331332689096099035436065543683433079067331358740735097088118377482956658354240657301727028729536339799409246117795385592672124870131462918069255810520718385539383685256757149920459645020764491059595277112227037790532612072747617932096395528723569182390946387258961128625814979401713863244714978424375004768791278144824455015717200839785672853438455136058481383832299801948688766311660109762152503832816892741433895617829009367112780452462628701440999585270931822305891788855640619427362583833972264052531239230892001357702615480245982232810627877270917779317816814112079540015461423273238580338157884054289470409177458687384785766059819934084162959308566250827126086627373683403358887639574832288912218024332942570470312293914949812657525280195564075936590388075052065975940526812698493509157213651394495011486456059072369700494519952763493779915134593600064556318363750661993798873305974590302820857114634331818575910883055010968154493157841336048529813492013200154639275467267237393871096677396195525811448944119588868311396043140852739499980374478405643342566881496914410600638251764547054236610118098482358711647292395617224895589910260705246487975381572957868073571715103474946476800683465524604487456829807535645535910774394711654725143894442696642350354085434201597450270836873346461539512777062919234368966281696063808072038696355179644641104607679762131973799360149622096126792212970018762430977091269953004563072384527544693252544913394666200207761094174746257919305680762191786476713936503534726101170699568871696966887197662778930246622854752490926665256892481221017954487543333585060057029675881861549389940647001497144318083885864940460226562948111441148248544410072015543647529448323514235018673940982872688974473578985345759282277356268230259866727362496405384994220097394208753265644552825206850824919472035863879672674638237509728722318517192442855619765368518945634168774092111205120214646164729871528167802604485030081470250214640686090517581693905632831582175084248878962442664719519788887601790739290948042010799163230623957046946614683178000863927573248930079838875226470953898770951287966863729386968393094403092004537976125156071367703132251744297542147708599773323198528709514974480027171491086297512158026096280891215125819273190119518736618382466731238390836673133918081172413232947519710099004580598178647249431671237413535929235716449237463606271857520609887607430532649876521998991771504995457305143553949751613151860008969813293748010068248016075511191970905481904174279940991168224784156998513416684439109123316139426986546352021542853103482360778935305083983981904888027404623744043374136268146121889312793680455608469141233464774756923837516752366879734748275875510212299139649700701775463491621503225801547932474130651010311795079377753358556787014062408398982352041167075104622038259615041964109078603839603154748565662829841803159401251006062996864164135245170569362051657164652328136349497625654205129776460752090301597682244986149590051687627629659755303877837633507977477485652756564454599436367662289868533425128584102133046695354562489230318242370820847118973104210009493073043817825228331780838959269074068543069675669649916627504894667727474308946667356816207678685819215107965840923261021893575564372864670636501312551899417017492804180212616794438855401619273263015586496416377583397624431130858137362542172198861892470644942348322413455237923950122300713576256954364858390658954244760948383867496324957606655034196564720421072566832102616005089812029940492516733371354295714659296801762916949194180999188438146292928239610347234317702420147949329364732276611909592111958979081647178824870202285196875095554071553511727835074354510222628257499192429171813136434421426317987540989455322518852281691808628819306138085591432926900765281486500453672655790205478990317315026122865543170562651074266276956638576399672632712557490442398608174883812052918418284813052322224866093720806495986039898480088154322911582082824288797557323407321477103085630265013457943862050998802564545145835346692498954765755329172558388844382157676813565247551560398774137073264078585282990030630157329018585437095458165032841936714053052008396790443988604613792198199988645586057228168383895049272105502558320826936828572065267497333108438671831561236055365261001712944585519197903954431041733618826025974862153358334109280661604260362657812946808667687673050444956494824209706177924553055618447925949894147793247965404453743690886239788763130400055990266407989195528084082087649282462742877545788047938453201264487108860973954281882712032308277475831466300075006286272412081645226786768521955165569942053942391413479027500923393225025135403777553389268553201307480308891682737856456724692215626343337771107009584238539835522255801179694133141081377585397207844549551455539481227041769454849090539991716272953686028618839826100962394676890914406667601125100091718069387609642385775067370468673254570174837694294026030724792022952292429008010583258962922176528605875024547975847891984580614168038986754928569313214021687846610315984664677915480898119521867246049333088770139946545474381276691625707095406408053253383122590314255704939255424774664244934007550443051678853205983567694418904287023958136495533040657534129203280202037245490542115993354356135594481240668311964143248233402618117032236282742838964907708973110079060156129384198747211717964160456192611521738482487000736502568093237106540245821425363266351202090747857183019519861068390593878632842851371291470316811088316817813219709430831348880464246048944829526287587545227221589674684243392815473252298279171184619215185500209132576715546462305388319664600373520536636956624883270095103261141573026356264402102991318131106844391873743538351920619077326918160679335488732329479736016218338089554116029339380956457138317465209544228258469416847107556533991125181690093767046982206045647966400089663195061486839519228091776265958304244792974635148850443315711531385854277494085365455874720755478724954901296636961606182447537585181268493274385676918343966301891318793434323350899516801802517413588382031006767504100740283925460430706679384403196349008816238135672868910214265972618562628754146453494719293370644391623826792065451075241876923138790684815746639238854156886384305483487645430108117190170668066120124229951884223516724587466058853907535702156962879603957264581059198445728921804426189301730040731180913083479253204223659233922052871827224174984231441316446477624605972308573465400451002748568201494435467858515307887311277901454772379289869755046971095858069419057588743385912720065920849280406409737174458073044335580574822883361835593003598571558563369657335963419970010363227313265797150777857785336845287249215290346227582203653463396189395040676486089540912582383809962392438517186093670247922003583136482840136434483585364164228753673645729178658392374751351492015766776247808019780539641031186721127193948103107943879680276769217563941200329162977965314014783462586265028732709902915350321504922172672196923310562425203343075460864621966692165918130576848564175375786935395328059805272471811089086600867582037378834485758783317372461028973122734383766602875160262288943373199729274317869534879700158901165027541667500740872499476475384057412306269063609474547256999225772090866143968536982841753435201549162642140099164525710956078087530366185608834475282585361736425461206287241048795070853734754533581333427733764208935885519871558041624892515259037389992527823693448673616997210228000628145301871398703786156735578383288758943108883038713917572270855404661102564972508487975387733783058229432423976383190095519450802319228387573128046604279809846340535428026407499477905493979663537215152002361653346037840188662686023378032325146309211770121922924920378453160548612119729950684028501106105645166673694606618528430329384688574858634641232538589349476283015996058475251294754426872251311394851521604355695205317753340714490132344213817612719653332881978725226029562071567132390224550675828567804759288048352137012829315418087180304690492656311030557892128882380083390195485330831569746116503404857674394534373727934064054045219467430681608897802653512324708053822798157399518053232998790899048403275400179040880390179461759785705549931482552834791714060176385123095970730530338940240323126092183692264490119382798069459026850289642241308079099515215151385684188407957605600941870638812211128285773522191516006703285915393595628237814910927826344764667253995848064926284034769522275530161167385542909647790402860013237642559050203923627834423990186524206008688525883899832850438254630722785782888893598973239886840188174013605166651593030558769088852358536285003982764263857699244391642688317453637763940932395832161625178095230336492213872519491139614071809632362194950835188325593153027184770950038287585365067015219317279731442626508397044356215359505028272905116786336513738891959364678584976380988760272974182413700127403074734479969549357963436009378536038900538826537279040870567750096824511021636828293837027151365899130720815346781784230794106747922312140096096625673534980304282024631746735724106524262519911625385853538115886304213979949312011283160047395564197519386337469998610033272659188941212670578558760056527949250070058679923266956328193961256131607926468416139119359654370478550528260702874168605488347488998324653351388646845360219419366191265215597453823822456988623653672359727824804969454936639948865539898438540776402575403260346347093694851216181557102000116235096716475956104079978131572908549132235025271572014009810659637027874767334754509347033577909693941820479108675359354351877761696005166392228561636754633440425292054322314677878668440195913254478439432511593862097090848583536529675124877874942160595375305302835078873030496908044211191724796121027772044470369800010456902605011432519757084193220766263206132848801189567298851042409742607101952149875449956091202341366609557281244383546937533193390356968226030382318796122440151997224226818616681962789667088445068340987671678097864428701443128106204585226506414360321568647947919856492640820766920126486203141454570179625034577992485057954515321877481403080422363023197984998553661917717863720244155494235546755456672519434512270213683275953586602284108025823116548538039611870125795746750797357754128704756628589518488108588737424784408903396202935961442724362967856388996494076105962915158858729856082518643154807391626487651682182091594289523940067515725546469141578653242908267946243343778280399332415164930355395401276343888676594381635914520561313122671561118591142455827284517697778092513941649014242868936483727637247809418353705423983913779193227105726017576570089598247859627945327368503841729232921361764068374802987429221759168716771890470437907538107140172124915541500943320964870468564480695359137550259907853565619155929353947399405443985697724889689155741621817400407912277302629389823182349358143542234315093514110571637543043007157184942636900964581111363594635406743510483602890576817481047889980719822272565188946450928013803994882693003387468677825140389784379792895006185528627838770451230251157905483336215231642954901399688280353425718322493902952511537436605917751634148334697572384189509276565483859527448049914731185563867339878417177779457844543264627145598723870652414377713487103269067316810315461831844351134280026021641694131827569617126653204751480921849405333820412478994856755479044691264257425609293003542783057840696135985383623506384208777651211409949487585669215977854870067937106900003911233874426040637933985527662140520715865259727129271668873233677269385834354643892686044035935857637496994871664356021797776663965652360251415501121855271482987871182902667535818927100672676572134876339099468811065240872925293828543951146608589648258832671974933970392345708244464019161186484261831361423584027852198564100293821743232593006459259877419375098062075916386208249023494725682611616486782219192490716449443112937268528238497113664309916266868248914030678769485021483832528044639015767533195873654605020622311475925142183112187261772679267659429819496128092327762510913335942553077641891406851870343530750659776210784252911261398418497892574306910921766599635714780545904051456096481906573057540820528489916704373416561075476684021182893264965847794517536907651214536709847615391591442698726290950496297984399770187823130190529267264847141303995268310277068742890892450732960043763391045352310456370165769595061149190653918355593443913792337145345221457294212467028734277566671778004281964709877424835009410293967248788475371778683840134994521974944087002805504288093814928379257887366609924330917586661077075717851638772747592214472161045653313613450994188942947037517014411300653084191004652513617427704380461069528343646818323815566170536877834369026084932409814592440534974400582436445051665043782906481044730357862703105625277391646328541922215978117284086137612619717245556952056270452919230319549419459512642479727973495351558862478448020915634893280048651675661887241272273754499984767249103252296072189251500237031391942528140968962614885554182943493539544602984068207203566644055533164857214336623270861547859503060675928348720377719061911362038775906559953841497829893807624955462497635074035228840198295075193279699208937073730460303015136801822966628985844595269325831890272916686558217766887417299148863255921471696765495252980342895675025919665949863543330236429426288748638909363701206482819665313926394644616831204112551362722864831748283480773010779953222881321011840145269395133311118103853806575071993290644405050817989976259468430738824256800191142745497193961432105199864365049908585113766269882891992149652326835449623476025069396077353215143727556953492214359910110603265415485175111758255081523731998285965261811258828525571300806981308127404416996964554793968421111558907315061209281738946024809284187627595875022128574554955129751137277527299148615091092729316053919511276070192700037551107466737207316709011015203678301978310853426486262232920353588498686544334370381229947176938382096867276725874655675877575876107380872851502790524482675035607677913662003302839100049239845616664543677935719332551217815967205081908794537514881660511965548059180885353924756356120239276586575906622673483173972554393260397060504616499158176871137716011034462023578143492447778122851846176112777044434743841176119923406613743411238636091935564021741439630324533822434938901747291932642764510167053945586279858257706058703814104409583964341847748629029708098279386037972601346410071133936474076769751676357459054099004054042921684025399657542216643242797480385712952993886577508076769750662637508696864240670818202211767678311985317254834669960022657422709775296530527384704699555815418784129431260152808086340586638097323063579614347071356049002251883039702245929659891844110184858362991445113983082658498174994636434615257659340448091161088979003257615728810594331469824581247909358430350463266151137462626765054060208878992298819487632062575980654721529336248419782618920526931128079560085150077406682103618586407965184400787190992430785268375514451558531291483481828867828987339040935981558468698846205982120663583671465097939732866416557268035968748361603293187558701566796974961759977111504540277985452549685842264887303443282421879555146114654673961263891872681175630654513193262563346017580168682081605270262249702180593000997416644607157731454010841190944378123987654300545639709580088053822186090076448720433120474588062584229575817806074905637656274050809582044200196588238343464991322064716749499405069365124472829395243705805878858933457714418454262530979470963648003530272265568955893224127499936203172036263202501241317591619809799108870294113569067354470824462703106430253270996753150722584917328833625969876693260922093669685372458897956256667360384597606134752554406263100621250093218183611030694635414925492373704022909915129280573752253249741627198972269531056243787305928112137611209485691049542560416030036455243800902424324300177546353074397966212729381589020163748257143810189600857036120353126243880427784352866798064755473021082254792634321104309742969769889258275813337597661684951923242806669571555883876013549785914954278191363110065435577010457562250017075450896013460941003705961651897530256353854937717416801877739634289994902642597530702583874140569292272611293849410430203212563226932301144692141300055924889582640433625669051230020289533623318499422380374430971683490183456108290442751871855335237349109072233991368498634297267978993850332422374382093905054423451813651737446051221772763601518789780762419539604022432394301740713951827344420218217050626500162185307417528831256044458912701516623574968062180117927924818405864272522518191551159944595003165666587000301961451381330864701858210964668507396078577463061840742071957803296331882443309100628727819030683848298611601190471404185931252646262326055130798453292800484718099146818770901646788817347668168962798746089586901749760460552949622852607041846442421411853016756595049416756208850741642947984897458631116029145592744529260380890304570665800404547519952721823830203541891328294497572957051539475002059877236628073388387109192609062656980152820674218547623049862817525468813795029893171244004630749543007754988266842244398138065999012019748969395688814926714593992309168331504646252397255242639905346988917828170526725595580775448942698459260259581907763115271405369132048623863943728542174440747503733285416704580237913950120404492023911750252626377700009714062192176512472936797481230096252283373577802410052084099141616362817141252343733931019634460936952134520829394764064219508051207668855867698424251890159136086905448477653903190033454356518828056781710388675585282584072626310317700744952908722194966908582416219426653753071052258835613033464752279232000304238895895187704052958500008234539961482151986832851817316223992543692798040246326530460886976335294295722024728622259308386488935354005056254738765110278423614006760642449270705357040057406239369984083270132259281174888311226704004168655095433621967583486916558791278148000860447003851648075796726601524966083420438252762240061770732262822220175888817933727488826284004927560404818371263281266510787599818534641303034621932199995425331998944513947531534249866521965283901652385689096582558465808701289710300035755679694432771607540001282869162437780752618580078701876810090589013459117408064371675803540147956837140072786473836349127811729237663744992152643923128052830304149753162417172191148366773489229356828531507458900718962512892345518701246977460135064744914168087846690069691380738477346070625655034775505098981755265755071875294472344349356625316002902271787004241970717367315126849772445114510766586142321269922963823593078811468064021089990436502193804447969246267111082361197087476700436169834577074410885330582667707344176702553277456717661198690350507770146544185340031908777136475697253433801793149251167748581256748268912552500182841134830675685987955546945070651831777003637343768462574149249673989614150303307561780892556856202453618667781582924153190661389834252148880963245541419111738983674889891764572626002884704327416839152279670370557255626253603247245461397043394477148771849472274715919018465721314046652041617111976878231802780981479925155844432590861747623634777436547032445609522284516704410324263437518471654595477737803165595679830210252523526782894477743447189902488664547773477935468329844283820799010713291217933729331385783664748899985994560204653811006901618395548557377071842867214948857773866437618152963539765660491848263838922888021809017261297894467298776948218543279326185035250553777601072600534961761878513959692710681562130638643429767120921228488405496212950065510969528111272576175847319876106885283458801640960756015710728993844719488886330404089086122839226938930714631186293603606418901656378181517871741111572762721609044395259743095227327413306107337305144501242784123527475228792338173521167275131692074362102092945941984949056352273214860464404658833487704110192686321182403775790259324169072067158366500332125056190125992483510557929056407294721336540395847776565678502763180161791395409347757898350106337308991616610163102268384619256843668540023681072115555138568308391166331470697503156012663982763508529379481157781169392751225743429430164443370013810635673038823404272500818366566394190749814955393212823107745926598425094449194657296967414366617805854443105716048369588279299711996156306381825252591677127268847299579017911252282999250433571624022482387946941279833729578254844394099386462460670636076669118278710615140978167916304759849035398610074934498588696884768023000948216483728432483349851009211032864502741039468819266751228771137450125349023113135983219965802241260413812176990078899728601860312265165300434096333329466858013087871421575836350075019873576258671186563330936953372035095224552249540185701562786897591218713177935912926230987913906937774437410815761279602294314820560329310721610007928477786696770163909764384766008787251245074653361639684385606531590338071714313783804456212047653359620527631430668051547570613522113327671721351535985900192997422758023615535586538548174732061993165027219567734260658306124115682273976068797871037289582093274113137943472682808702851184299326781166436683944384354387225375656219221399469811558955711316117375167672755743643927064452524242160470814402189550439079639225153964257185942277405963827771982430952332703422474916128101092353334210811984256110778962844379739703048596281172842305630497934729326081653286598090094983430374859681228869981396908270578153551533123489048312782895607244879528253325241443034187335290006218931627007180846338493527130696712695363594749635260142517186283495472180290273413610426265610517945421204586919989270676761122156722296637877956280707892646035753287733441052587608473850338913889186250695585277923313914620932068749209336586375237281309220019452827883646606822048943865695268508071395365826322712501852014542639037976517265661126763334477878089302270210996134588543909895775307978808306277516890640078100517856910735308682527842491953163784181540573313810878069826875618497238622561929447637774420218296758896186307317416920039651361107325600180212306333030895149894289189617944907936588359627924952536329110552051257484393255530538048747068557552831352531901888648288156342689783204091226014917705405535297403039688253199320366114312624796395922277682522882542663575434236998046219025978906928443911436377006444787969283192142783905594914987106554195581774199497662492760299676617678774642041236282606262544815466930639436666972555548592262432231615009318899510959826959681658293527849059843212857675302305928616437092646283956580190442193585848263104401937831494541166353180062403389425230815067572748230797055279302068150574061486998131277474463290169543555428269513641353495779716441387992039256947944297755260307106143095767378954298970898128303070613701126124539707603115788237554049207868326655203582196879324120184579888144891239191571945968963215043288354570369600733197963406005916758907339854479074029169198409491370391582912867448643389722374775998830828439586778242374819511498823428874771989723583437049188568882558543969943135507795047273363112729840220363516034565894918905604579818633558493988801329984237879282503711762330037940771671693813738281834712558108138007502250100280741509657778498560692614825175902697150674337496608353476085852151334893077116613980149771087493984606282087234870848179497002546286561526489563755956596224072018391935747841936705797017350515871345311322554273836566789097141029936916940038448264949029811008681250457355894845240035897596896113970707469249047543654528095687673366325220934652901631632734046196565186807786268931193729062403959037116587526352988855209189191175560187748523419678818497744783881032998739798005727926713654243079708766163543283312510005696300990608256224221782500393977788402703069153132076930452248710292771144826399422770065519602729440011553614928831884707817654107976679592123992383584623832137129599900385076872996720242387968573448404938689913205241231086771687315640252094775761971680356984150746033042871702628142771204122356361426994025652283786864143526068007043741504618260562536794328714445889594369173280863827632516163948792134193596678678022556299357407525866688519613976153572625580264424164141512353877022076094966333535545138640541601488185161178506439553091699390091006631651894603729694598929835560796171016280349877448654073398161825038007233351472743828532728938533840320001284785164311568743151048486224898686090523143610005992858603138978937904568935631965289394197942853818508247812936225944877784019909591035173513447528659704422737767907695668122015853135996177343396515317276451123975118384315844893198358194506891923228874833609817785691453310291440994717207871378027070578393528371493697873085644875863819052357250722087389176182205773847024496965321293723348654292998684783066877258208869225708390514783473579705599467430100254982942399033694132854920395487368846675664906508129840876519329894414513599917937697813628160331327789585827094531182115188256585528637417612663353001685557789628143330985656831521530122439356800012914514954213785132940025141957413253184573142954812094143746407485434414925559144494982605691729292817506019552469135881107476439408777373229908015554449681619186587717611087737300232474474444694666771165698900349233576074168139817470855214903473715282374201988509366646606424171971628154501219700843708494637250096095403290219243129021052671374948014341091667914665249910979471358002133934720919686620437919233583211077597127708580269239218180744435295685897233252251431631169112064038425068638442252858751133022093475444809528297114240451091441259087853154914228878325463278581471490719547426543592111433406911117273110469779423555808133401825460201021213515367182128069212884222163521148263189551953035362524048112400390954267066730092516037695416831530569479670614130517885924591610096178917693108201131155565175346978125742400879104983525449166671610781266876637486305262680885124880920385895802362427546092774497721052429772076723264720640837988071120920284359162375092263613215207432139124164677571636887835604846009456975562883122888764167833918653033887313565318949106496570404277405615525202226426067139449817235919599919239280465400677232609053592046979269482479158305567020981713323835907368273968594069847603791626689628224268678786054419816057798118094400487875914437264620677076028922308338613540879197810932640109154956011718015008324748788400964650994901658616793774954596294960119811051095895799028702597479142111349365481569822929638175089108943548694972185697208297994202626058386613663560156899069581381698186206260249970593869323898539925881900801511097698207472883921815449557816822853863864594232209783023609488090251360069237038958210537695573472211984649908572348558613385806834649115542833315578319800448901177057525596468386484412094945560813649842551437180478290552989120326852360881253893290479786912680149339676010179085667445860536560247192581296653884233627966299775132796985454064835887794040332321259020182644952707900714326614939072632446260872321366823835755565173173009113496197517635230703552049299037936055712689340489410513601652323168826411516375941500180579389994385261976282709669804143940617783965909293961952950536381185305235051130966546754771654661515288192876935476128419472253343516681458513489470040995620961358331730091334235642740136514594487022793370729264370985925026237345193975218201353378646610535056403886233424105040444189467085062749434588187149359495311853318931527686217245156775108214753225210698065386036845044807407390214164051004944658206464928875480714911843254682512170702327814652062378745230788815391598563445859089008051926689877264873306595062378003412094474971621635564995727887321220297691066035392412718613296586487030025974328973142147469840445607249410858450378687044477954313009454489445679377377898461183672683323038777665854585762497944669279633998786342299037325571324561842125494207640330035028019117597079346887894197619763617148277513565608333414609232146732177920645847294252961937802629731273897594869405683893716477874295415236812449564537765288327175292272578534413968213608031269513897869318185550652130431762612073181605503962516145469889157429245300940360979370140492696070877862807032619444330974721525646165262252552643415841074630156521333801959737599098496777347787615329888126778880577023370995921851674005139901334614042805780200179045226986901844964444797472191968278679475680585328225988540211813540870075273853476447040280798408667341797117737397430492048230474984352882392216877892013374002578489925351155622212751522835463074227592366700075301281825707200679223196723545388001722321096015061666589518433637186573349254051245587712376182243164313206103661822645514422187416750209562961522712481207315283190793223760198481614426131849643804493716417928185866166518306074631819453600752870370791406711578122518834829130183459417709503753262907092274635138381515992577901836093218341396698379293834194768666468376520019848932639321982459786086164533182441535624316082994118693228931875287360837610971862868955200820331337643006740049093839960473065283026986477897213329293630780264871714843355855756001893260942001593457201874989785624805525626537107386667703772217385937619428418019149665180519497430165772334930375256502424754552903638979900445763242883837128312368034962243927472342657429940764797512801288988447189173090288618099656535364385430080839904092668053043975133610050386094408932283922303539211857799244358920616546388885678981804035831460478882192380033251497482749534373682243423129833938533785054039607266168333908050444547701581123109025166208020960393888134110713906012818943418110904984862672321526367144049072049602230454417351059850046382708337170929414932642420390691267558552537126855491152374709279090067379732269361564365592392595654134964098994566565101711550425682154207642421396278206183913781776275942556471730020354055507009721685108181712187971032191078103559795982815765444403875921258195695175178734610848410383519832100830011851107135148372265285440362694700738525305683871828517969043442464007175651864284866079823352765162325462806924378142878937400833957009611694364864522572226141889481082428205608362168061566291453872926690321329789961345094956946325105551919413630192091611705678979860014480952024409185624751825089937863998272756963586925858575390086895877923863889443828155534270620423886722879778089788265156348492098917692834361630606390503806135353431244372563404535716089626786633553745294140236122361329554661587362213928795649772008660850287020076442393173456322618529819822106737881813877670957580336551186916712341447608553223341867686422711432248324235281256418531940440711350985861631961707147142201798834793784841466963715581327535641706277224544198627238028537097000163536641038001940084342803704973430068708711016722895883159035247900208224595341211870420333794426797732061499707351663619474487742395283513622993576274540604436257933954649131930379397971202885934668130846417835839127663731979843575726183215648208825857010542624787998664858703695991648262322457421510689452478682622967560456424571275560346436026269724008010559884704770305402643896382734300903568311810546562545702020539290674793773710011393218010762218435377496856978017966627174378716123582049487288208037591233144312532419829137962894535727178914735321075087631559599011004350757468915760732300779570907506282638260036167906137793632984556700100530829345082600293378878904017112429329280566160783926143246255234790983493060898298557729857524444452886375908292317671211830910456551026063276697202673453437311131576732517977999299108082292186525275143876640578382013320500352717565511313823690497989140221952252480557198427914212714702173464700661277927869199907888001258396437535780323241384371063840994989575436367801021577654192825475100390374388853257195493429509020556394390057555439239636259133029409204002251717587326695683912351569912001822404538847640880508386098063763985312023790247114620409638262431705239208649788830393504024172418919279471394982741916881886987580696803426849668036438632786467939762645076485463826268344151948109645501043965939940819837606466261058052400593273195055632925619143956527648147503331205627592824432701415991604646099400982924677685218852451722327351173989019792818703372991105805570773175691955876146972347418519362340900472853584033172227466510977510371034009608509777706778903647879232067683429149527349907993157764843851844337881229706070829073022217173913287701997279869389026721836923491743705299300087598134406219830946172290997881053353728987821394458047428278542638414237790199467233690219136569375694864910559335350489563904058072489646089151159711327119308434370040613775278472683150910711843782069538276694199363928687467328979975959934524048229965117462409242835959624330751821418245421543060616733368879386694326631786700908567521371307614164383235272533741366650347720428963215179760706951620492917841024882005875180890462764124953645170878782075481277782398012804442427029332341353563211128546910278950154994035934107552098219543620174752384041701554609024516994811424360806649144935732990443769062499819644910384269993880632332585469809476474610811933090468916794523790463712948976927673309528843920833807395973401564155477801487077560379100069439825733076037949365035586635991979715343749507924243034730356761341378126064347941971097471485788961936812649791124114021495625306533558410568820478038122023812996316693410586456757288894960605328006846367581501688778755168433910780193936497680823536133492646955618370161242085679062816676785592223682251902716917429371871217019801830005034339264172597596509161608647492972467777958304256627310542257256642642569247747523372618704133889797577648962438536074487741123942015176168551638483108074987611986558898950281893919428678056638642955014849161453990032032408259809670053850326363569845662721525907776953646831218079626493113423677217552441952090788753686332100535619401702249021817408823689890326907894499123051357678023689082910538814117433037470932513005333612821477872728863977284075889687634046137396417416557913195367868347987235696598518274759258034846113209095519828473569306975445098008331188932183429911767214217849536264877316534251673884334838610505708417796448706210737285566694597797606268841835437429898466186983570453371513565443996603768885590596415617074804600229228623268604267820662518623002284457587555215462180493526351916215266244633196296568553665154651719126670347556985610421013494343438647694203568943314055573655250288573791817539006375558536169731674507597224799027509595358871860378843187150009372410853969293096365461555511855213675515080116306237777194606305173491568667699002634709671421661777591591641706655587174924985654874303119646622565195365726383477420663903355830061594361379641848095325615773622159682183561576487602584087562746151459908298267791255343473418913624104289772684903953473580040738560081820369796542602913921013382801370724059768074224731746203925578863038570707193974830010404020324160638336073324723170668119296167992911745359166290736801467815422835673803419770349718209251619537807232695329097300495948783357159568250487085223087188728132098637728939003128643051099917701252193445151050151248676999561014040229526947329495663596534170674544411369730704868586782394970171457354353185934939877730275328289170172837603569385990515493338641983205228556116688576895292279957886126712751639007986589915419373251161246578782468826760064551416272536100510039829067352344551971197924131794871783139446304410561939401447380695487979675935008339421167340861804176641655257834859594846087066167287552283539084571679771186622313625029600182763207774004561449067613266382218456375247958826221660885348077837134068848312932909251076633324482492852498923104625570035003136197261536471620880123527920097155185739204032728081968126194031258824769959800557873163694652001248167794797053638331456022799793900550027191186855179956808788581697814999730262380021922058347994357543406682829123235349297116418489990493440943111153789306881528296014671869004286490908217928177785404637737750971156028629443492401757452333448129382756827841904518920824382026293342778470577265438044004708307905650898865008898928803477001079846298736920822044074469389983925502977129379153121076832633896367002798242754411062084402569433254565718012032018805928903642739011233506020528720293877335984585178295292763243226680474589203627797724998270217165560818266048841014420604787123489183376540469943852230496250195086785029443975949357570563331775731845763465896076065434482038287810680237571851765989433673548243547566875352019043286727761681025071731198551833830730672609527829653936375502376233086406230199621028323803902685486899196651782749544765681314768352361792038741761594128164411641542625174614221778126322720200486327960595924430985345699382851315570086193404941829234577598873179814673946589665003424007403038128349437656797144701753823251009702258407312588129962375539936629304344136080601928086484804964390448087513073712289583695508061678991694179964278862966579142213513596022078029168906461203876961044848934026153131808625326850169791294384903165389461265074610981660814313585770839320738399446371508265827615877016346388426822100273324734060771881664184116347676421800403545130518789191282739983165974371063741085045109301540532386992012901491071358849492725260503918610246722341511173047499144520517573044544649902554194251410737620414117503945336948425323454456062440328445910502410194922925870156923601334230464189575700271470125230300994791652225529546854296485648917798110190186725632571485495745045435441598574385419533798999445601359716904672562830838004401829044612744897697262547486025527988664737247684645552722941137981014856567909909984556624181482872433614219190552206884558179858820767648970581885987524139866069177384466043942710080255644280349342775685321068524944624576068207250544339769086855770281937904474688734664307945048634394566759074855051787521393164197700118723250900135742856400768614855311744386651322778453816334770080908859069715492889565580249595767942597877639158109061500079552766296084951105108222905739615156626171343722772791891173317983401672108945817752774842779088842088410854259217957910635498690335964635117718451782442598392655373756852487633049454015391158656136950113890478539228093121209017826556398330671510481423464729641308660390678235364569283940881986135142976432847247044180547287991563044710135809766844355334460130681170788658839427362917507170173281105014752524825608308011929581220889042703342061403616449113797042726554730970169089936700907641977578475772386658100258194037622123980873755833881940752547696676940725181588354948748417068222714144038939533784960956329992204137685288551015698341073270698972520252056896996051396317795036774466797594067455726719567941209573766277485309393946582364681470777218288126277031998624355692890366849083803549596277664632289931471776401268998609938502043604806160240270690619173266363181348973297544881581468477294930531119549449939484477980966090636122928807367990936112237438798411251603363391430892360216699776510797699644144104869232758649119277094115556738064583546077240774917894669368031780599475111896888285435518579440238553172548995011861677178760432248989907635634468968304282829425694627822544142728629407967836435549950850497369082600539846219958587882933291087179887230905670744760841184354445386448852819955011035203862149447037850772995928743462365022747426219066068734342573988672647601483725377905199884914761528115263473013530233920999003870265680277871417457478369036487872363295836262822916072362627563276517566564766864193122574646371412986468450403187677668479868122410904432475781920811320578259645578050958051377884299115261689071557654818247413253275748558864694605581576485687564370065704730265048458012576714905193970074323803852250095561107694099712992885684038192089572729436990740975887743354087889735099037842729523129952772145680012539483497433871433580721940214572295823878505431152553317969576294910994054965418495587439096830432354413927280305885443687115361006504254370384158722150904686094107970982761831498801253309280685918489837877577775764637974119431191582909124192483593361239005078722090676713896109260583897048640021345435634304908765803940295931054267109800532755100481656619279022302198360455604972881751762127493608680908628821424567841935395596500175398266945981550611476997762496821779519361209989166627413851031742784589360530981558722065063548412026181709789260120983189493145842187644956958780714076718155530089570403181676373144024967031987204523484899281491652912736660256684597989153775799486130871056469384358275090133038314503023643368564790023069292924990712964645611202213720573359467354027091347924530502753517333909833955642818521485895228203902562255445923094465369234439003834159243784264163732080497402214640402254446445782365538586937678409910917141366304196099201044591712498010438168800685165352500006159486203115117020410693641710736101459282839805753426302174194646630444502897186590622009272032705672717683690335886112366627966336045058624436183903172206540858675329176648666598376181849066325572667260967031331442406688616480530759882366440332043661929942431462930938594344110037655917557200800075477253129968805681439736399924373310810013298748058578848992352006308786552877767196398163967343353008879640844196453311571678561063225128325542025337160154127698007038348794100179297566012382076216104381254225758219006634563791397427187009851672291836064695638485334353017441631279252222908957286704125494162197817896957886359928053816264518331743112568168076407517563145951496246727157058037788793255503347238976351606136390065057232937274223262733453083832966650391744125145274388935000747535498271088864513026972422751895509923928374744399277468818109195053202567441539375459183897616254888807743862767772368722596170988187896368174453391218822419205917994208311602274711298703440687823783048564469973084603105179052774846844467966702189830244986501610144152886271524835848296565295313912966685220915777633962427417611759493938759735665069643726960729248596634341970138108804972825103537689571678488298111041809311171738082051795456588516909508113903903415001036259131625446892594195084822975619103213455372486471829688360315160914770676000845035577346258501252617526785092308178326663820605296011498342421324071797764239293315013688627874697201450085986227572290998736742634871338202659271344711128114356795343926413647829137105838005812525396955884181394227967069466589704223670063897924927756350697040509035611069766553821079466536053734190608237236285982351801434113386883284113455351406161133494554546604910173862443775279274093845949256632140433271686502503759184301712307649882620379890680740293184605452528362623400326854869128493526447973219191261005111595194880430155276570212112395265552927917755625566074881013837418797372848655061676846577138789779114516492506668877695387894392867923319284249133712259290271702376240124469752919272594970676026888105361493262220942245298833450467254099448454080592082470030210733526881533242144949950556086279032384057450420238753810557687789506169341255366778449230045335268064154426789791019971757463681242830372785752582687430855564099759696719625633309981767286346844049953159093559281900976957331642496268251304070021776337260678018568271681022604012792416477000502360731253253990749872307168755308577025466321315953989087385082600386619152649727320543399587035965890294656049667831105345105165473644192546363537690774683742225708090031011550761254996601576346163700996299277134071832253844579630928416073364769874117597607157113916357530524869629117030691221914243508083147827901948817220686753123440773542981423120820648956652423717297406662973550107146321983576428363535170022242900140446453446810096682593837440780419973582391105438030462165970440038389182802529073230800140754829072927646071006013796122942741105151799040266795464602905787346684892089422077123332689088397468688802903063655112239487954284507764297678956136062054664895042076217870764573088235425022084783207361730799383268051323663467824545608043976919980308125042694482423483726246593838682871286345275472036586450671573324419458613184823370173025131419433386226936992167543775713378261763915749501434889355525339554374704563188143127160742673486513601461370886913353472948728710692546433464764783175463788881589146146030751230711540191925703519266386526766108496506358281645401320831311780891403005402690058869191452588279296044111871176342393220250886930334312103946346098723437491772211619347502334320504051439035150397272982886414277752056732228706699065103489800688885899730039601540374774448833802576710272344297438265535032707521980599578360040801897611064641027936558049190354097151768471006620803855544000371349145189637036503120293641010339056806963243552756929202978701529230008023865008030025729196049984329682023286000938827725223925841558144628865724741460982825240506007356397670055642643141386124112757297896565237897102942522638627074428205166920784132409821370985218563105609997181887848328381258323435068037883494502174689061976850692210133735058244318789355105147076727285167556828191324975325356960488626022422156805869673993412711498430220332859896189751088797607051292107089121323711373324050086337566169442782083933339925245963036384026629882111286877591565517400567573971762059146811371157418640399631553822825192755770447186305120987012210045919123421449599089950658143613864631906504242134270691762589673277961516502753176195853337772249997418879228031693109119980766589770770189629687597031179034065897703423186969981585418437200770895296369713824216878229486488186815723352762335381474102017483910450295874835713374098417378680146163131822733239223494181845292420559912809536297567640248861413882145445772617892113842592076865204535121981372403687454805659427879625218058020359724548925768603471810590906230846496737839140575679816681984162725048398076412606670412651479898111820018644272840116179509459726510133143587326008878841411769025930113665244605771426025754730684778504046980365202777118787550340763373905569260862220041028175989726569847171014988198518282753501236764869505400443268098160766256842700393348143566140218549398566306613143268909689392614312101372263045946259694526356702875515152036666356311757595157015642979771520481489623300888539137078335181951273110469349789037686290607700095743686872311260519573673705877029565818647827067423035141279133247214374294265044483283902849792393899806211070586962096719916776819818499097462048520502470418642247065531938003119097708922221615838598117186613158398652708529608516938830315232019906057285584360240516079784650044035396396561167169542032140523261490476815326876221665103555986934545195162531260666563055318572402091079923185697818180659464897002239849189140632135189402712584778770792026720858299265927169682988825084686692844367261432066854626191280223026734804973775915720135190793387739104365284939387087667508839767779400377378283365352088410009392568634213981569559922722467680910688749885178982786451491690883045443284854405360993286252983222626979906916013842489229220507717787131913328468517792703745056924784730033912856508199854505367366779914229253722931588709366512639703463087172828714341088298892250336337146149152561215523071502805699513874001335140017544224985464697558772681031128453412184485227117800512978346438540169066087133248807799905302239763460883602786230638553681741544796327669017305851363135081131171451951155236775978369876243390364574341875472273925512455785424629716855078714478965160457301286089214365898230753703811654176019342467278482692097397660407034352761109162200680250887792642428852899024170428120078520017308674394095540005734989522624583705550409652765302764779274638293433228175749232093566170076608042595800115080746625357934787597231241362081469587030230365514042690539707950352121952610564119138876009711155567270541582320905846705754503730864389970463607529646250568402876814218145529541899400766679669399435810458419603166195170259940679939456543414526992548585388849495610204568814574573291982152312025605406254863226784352176153968770705381850857117245723461905087393424768307325945791255496664011285995274120441808915043841649255291781162768720200722239272654675745247622481398253468308126581535768295440665970934796670113526567882653257308323968234998662063824270751868465294011396009017965407442293533784865727617833961532904187347412791042772873370314872594692499233905700247129737295055074069305820269961278377380209564845624269869004048133176376047705793873001852564564376792489450399899125479361572551178949613415532240766339315190154339438380097504348996051075541663970546879435624859323416372119311391935402605324523675900607342056045187659876168460405800993587381397902026442140568723493731957634741263155174031466180171608650613322761783881622300630263704037880769094907621380527607341103146061669370560547093407620438387828721459552472525512123012612946984181093495325876679293685739665196187584327480413595541670693903508531402159802979760707462379087091903799299396621216427449653121264200159253663930462888399210563841319238269416794137638792392157901513431636172042013240632454188966701620591355741851539713590833281027283054416780944777975763633617744325155330792564247520352876238824846490061843610183464928804106453473415712125686858771718073604991586034340555609891828135209063311256307889894637081341856990872116174827741414299819449592569008601340895739137792778333148134753755009908346438720598284353050611031382564810065019046141716904087527657447185191653512080589427947681835305545189504602251436343069897217094545875717149443581407797352418624075180240835601655862361744577277086391973157126783867768799717758886153737513725859271915476143864957162599644335080105592534995152654043621424512829301116341129303960047136874739621776083626861608270146770919536009129473956279223434350160284963910609049312243188772326215488469839132529467897233740493133510135195112195509768093569016404470268861439902542113786619417957134500466362669912667902907535114330780363897305464338476357305362792137863083969515949186993238557859408339457949514639306581442725736533519669347287542618141679146226711587427567354385791305468512871281860373909070895793141048451874725014403710738821575056050413557133953609233335373672316281398793092031089823532375497979197603534114487075650003077870260871467870167617376292009188980523052399063566261952679066519995985435551489535117389491483438477108423875199681641638597376132844333542197434619909381949289635377399831271360985696159345751471716023746249159263080327253749234267714817804580632111478790568677877508886734421404729458883809728080451914086834338433220663247100199429799627287218346501603077201429052978348420555662028670264831497560801216408396710343976427227590562456918932203672686945441916452795347640359448497882434534960795387163430792121566244801316649005580965024255842518238168762650864175578993809440483133728163813295233792646422921075941103712370505522402449968263039921861459498460965355613903903352671414948622551541187630510185623045306235520356361859820136703099445879475348932003309890594655405545817766188489835731352375006730355392210891625551582404427663729317846575198432229543304323356441017314301772621969313955011115328779822621346147707449310671720634208085972045118701904045716024509970018878615141882620842357165699745077970105600270423628932189594184049124095555546805896613526951876450195542617277520190334619580510242154325887551098842529301853502102996352895707345715071407063656651233691363559459780412173123767724077636384046116352540625571939106972233774536942785033157222573698856884175320710203728305459441977211441114365436350810193152531831374587392256144020817323033294144263799932823442133985257166553079662499203814207650846054536949552419330794008537842697916696028865731896621435848929005234911643288138451408123716375166761923294909498753701032704496226749091939074493589163641516636435534723523515485121255518077052044607862908819428921029182496773669250704483902036619149853078163144194294177718683556732623533009334069473456617417615508061360760680078050327884189359517283273410046541741858918062332184295949902736898145816359349198634347654136638846088586561864293614563597426785516990791083540787936319897357448270054715879884839155553054068767672915432765892440165777584674646288776853564201006353709072156280631828527539879767080471145656520597604782263725914091548574665868692724969786368254792950082215015003486763075606140501981920626819599177989857021731159782907375817417236828279199638437665175106249874653535599988203148310529046251142177453651436668072391701140846421550454701605148696185112718656878720057025488959980372174261288000641674957894943080509831484330330820120259004311596854976444821047925952365086499521530430781078090483315126663231584909758354037370006349117877257246817831976659196516297193619145664866444909391253155287106934398394514830586971916536083866762131720289335868109110525328620835839258850783780484494175860880071127479757677497193601085306320957242047322562918512057984071984972610169179688984807092531511708259230182460231134480951062889383340335681102792213866972259821347206748096065147570297926399841305027200020916803337187014784103019661693774043710336321892610724039461607055139003271610682025005888728212461263147632858510367330423685573002417212915611975232139574396883143580451498502189728258917497118462799284175617387008991446398732133758060395880264405881134076817397242697601383059394202157154298208226305297613814478261115575225087322402669560957478363349206090466331041013613361626921884063777518041640879611820119951881282568728235276480101068840043421145292275804731624662552482068125413421432299511595603493157084948844251593146188207861548393798331325517076684569039137474018697000681933314545399764634709714387919170117900131361593657522730548378013721758496211002097827440797631260154108815544189819662283756331674445833821226476610670223510628164648248099326767212329850733618091990936398232556908132784007975907721382101900547279122460967261273247757706103864032740363681098600580315714738290323207764224264217781707977059559844688791264923532699603243145618737744901990077886777366648908178332288829157972961077900830735790675279997357441209786515592902348165967655704075037052931322884386228817300456709027825187297568217113752471102454571731504072787407846457568367659162448856311054928241815864291207093579100566411354010461359970533513008142642944479164388172771835068691413341203895790914962393790570042166498056798559692536685947205201279254751229384336857965505085427272267587984892935335285667139948977676978041686643014747818548699390409025830077689252561536161289206225190193854275134146849010107371504481239003564563352459816399518737226533964211491786468834903009405223004922912101260388049168239007087210977110331136331482062106798516696224013362287085078117880200005358710277697265111878570440820649298178323628392587878303001688014010667479043977400214458689450082731115223698733601234490526915771574750150001860201791763404139477694023159672898262723295032243990439185907617843119225364633886492904631387951970440126204982093365703610639203279440284367086295975101654895046563246098861233339130789361730506359990098991206348550596501091248388997453433285767812782120759114521677385994048585233254867044094960228793060261840802889790205842999704374704249719466692786970974726052235779587960743193214594071816159511624629409828003217283623373595208672722827264061066924954571298743609925978924590390474517577267256609278352483893367452905893092050975879535874859287120466379445764060030104760745780345818668578128694574341541848673590452566796483327623492615699809009965158623246148014030338230860525203855562428495704073526436370183446771624380383762168002670438966495558098981126601887228280017322418178952809100731937538460382435912586747631847661438080777467129841470336968224204096858947865726020352928725741389857267161408981432684702126315298690760509363359733259212991326446496099275428655885525581029101196401782227215919905759767742685098205776905798111311272257533414167974441013805610431939396796675878953440876628691749867636775820858945724772902696560455161984312072950929599227577234366265480468387333575568572943271073150197193914786392886987475046567605804208778473975296185210259693867044216679820013873066790314604211740824220967041965194794980199410684549859631624110524868838001182271331730644783106742688153324771104304532394005928866599444741285457000201537620883143911247740470888095397961462067330803445613118268408593459485864885416321373317650423015440933092547691001403054139469623329320654105884862131598441729779810974285741986401218089550922042331471912190849344150139384730967031622391506203262110481883064723229642281292781433232485087055213983740311873226610777782542841066464641970484072791234220539949567725155128360641910581114454139299733481914626614564973476338739449146585839866576955212573508912782149936207617469990909781660487068451572297135046254551726780340693035209753588638860921037038943168118904363602008391795144889271970880304960402156692999507934206356653022471068074938019503765925205189670704052129960698552338243414132753076801803295483457527813095400879126239561685837422689314349599457252094841222673293899540754178444493729621620202481221915915584974465190515752869336332316458801308727475096051549821450410265311867710943843895588424362266022725194838496196276467634635207506623617650487953861831191274429679966523259139112909345872632584982957867802508274011180180303928281579382952255055931527613479447047447700760740071499599469623912005917155513323033477934570037508399737543250769228799878693305167114760390771178155314934473832580487807710355370517358175504982179444667915476239134583262000620160632831942075414069528470544515730311257072193369542167589203798186992854334361736232630839987719898904344208404496548124140206255639541717916081675748671123399894144046574276545069400638962888806798348565242947395071871636716221526709301129096834611121531365285110244751944371447552696474657455124971521192457151302515789359368855014850265785972829917403735245637723805167504118664843905861192955339789525477510779898162646737382876137243600632775434379618822046193598663310611147845293767468700890781188022685837064802015853552725603754551103373507384829399940837269224805687683405551764484296275076140156707437324398845018711029491108832357378115960744380263014025038941619145689379654200647642949939770177645280699536291100730026511089070143795365768400940413021300448097143307827608893692669579279961280413094191558242160344577590561245101014241909035007699692736285357482817816469830029252871697625975219320781886011823123929031866799135719298875817469198277965001833388837187125465042823449043834714589583404108107236926860205509894228645034528042986320088429939322136740486008238419724229318859147937003319185984501656702041624716164047119159486494803525237097986697621942900327597559593563384110826734561791621744363858996599153726200774849163047868393941814028434294877060633707015302754640404645181885810464091402059817802047929771568147114006301548256400082782517299755007553432426598907478326797249767238424634718219039212522434139353421997660865189285660415562868710684425129749365832885805693162264620335737389853174989736396825443663142365693508936884207997141147967644113713186303018020078762686131687625300525904109835086022804281610577701849016665801138006682925458867984843386115650660299895745580473746104048922980281546835025734366599088260997735320719948988924905796583105074816888086346014787678328415146705860001272291011459816513324497540432676135896035711745913658271799162463241632968132771453005176280544650978417473688210433031891142399956537682441506070484783137320258639244683598961450720766734980951240702076308320164646367305020226429907154691587517140778738847130372690143545428872804639649315642003000378754857601255886350797793189968795549511321087106478497120171200286660037158983801524194904181960861672797393777645015094280587149191483079064964738572522318713905660140429693971469619214088607865719260361464008261165403100137345115047533831923073178952621472988189710373536893008464278894067127686458096601128007431086808813003824291452135574450715260965112356797063004317227680039215439181532917529504338639146979058122407192725732541362680656565113503253234403833871111709260362219152520647526294016247045982782895470218091220280594651792503302705580693337573005995050480136349955464321050126319104527868135207414028361543423557428747285240301236868071863177655899159320677876357820061190722013730168882774096666068513214639010337776554831292337562510875396197351441976503193915507767122063528728323896135270069877276094500150966663128290093382302692366556907100019999547827857288981889963679795087341211705963950359814824435241527308916641358436238412229712579050853058463394206826049691003781515026843626633812706204129804281715083676433994573073014907666006673822374588932715856179074693346054827933824997199390842592503324403017678958763629453060374225076896893183098764904662749494242155416373907202376275239940037952250829859783163994039415922536119116793923391891871476876261213723144916805020368672154182130616311926830551312867094992697614869294437414101218890060412536900399597995612222450797427837597929821338309130820097109335745606228461268535693591674689533142233155558160367087287303268005613986551677547123691423931026942696729071395682425550547460497224044077867943315012350950843657818212593251125702591793127228085048111400781922668701106725733347339634873357457040237149914232529495830968066593714809834242363941659140006112134788146764186634985807818407088639688362412087530472182157900725792084781886349564326198794633453657264277021489337254113414851478761743325588287739968683499498664757352790853054199631155807077601553366499716667907698117363798645004654270312387868032605269331238586489465996112811690828665868157506026664868473041121756917901431898742509375177596234707371852294208982738296051920778971792770453463499113897804322079845077857300579839233311319852095201987415623737792309202439120195786267491162702062656965267766872138133024372996294204598631685229300260018526399871016001059131740006900642994436803791489002141604356853855671581955183688887332728442541396844056556828769575982615564255658952123786816710398559686942017210707685492928799303016408813470872961091764018811260045998123102887570338972129868608837966598838038357968959956740871981494249834411809812690214095673297775080725974008218738638794552539342266160342781734957402737131801016720697665236163602984028582591360776825363964094172285316001389437478618239680096607871759740630589130753107387689901756862272673706809853592770379029417016449781138763667019396798828051195579705354636958578795863582966844606897674637114795320300979037431113168688605196045327558758213252906047577307386506455932711245883360062756036616813274418818216159945734861443595441701357786209429637308298859931399883356191030297268975895477622311402509542767286037067872438161725809623804076952275137194527396251564443582084663465477541118219394862573177965452847047831272468840392034331400153596758835396278200144965020853801335281850347935598799382427235018077017437752693999257081010981117229390299891677898796070068840500909551207808929787800482292642805527025639002050053554096417596287894570869354447383702956592950333082918213654399103290577432213046712721940096585980673203253679170635296011828231466448568006098193526923862344233890305654521969703066685424794709463822649114608848476977959317048290507456456158290678120504774178027977261794317720564065619422732908216264934305975557508129863223688893223852969447481034412860776849235528189231699825064983259381170771511553299623498982231272477205252801578769679835927828189591378254525351108590454770438952739697127900039691849042376308381367626795307498159223703938305079018368603725397103764785075224396824332483596055852071917717025652732114674070339229795232268163828722812889639908707143850943692694987611348406331674730416302980335980788023613188484977589235844682785391769299043877455250990452380524879298701352262484497138632613360618542805084612099103391261792480604970026049069931221193836752379474502585103631112046743133754919085557535784068328348056523254018697386844983213580153175752418257589222348317723919548464535005755416733915958022857017452360983004963829370668199335422347127176492132775979871846684588168551313445824387088369390643907996080123371908839655122264023348973469122880027833803993727142642565552052758130628258493116809020075246964304940844406306648051468682160763637897505807658832929280842088950960547722747162398260526152758920077139850253442911851988166734948490205793590151688418236193213913611793443480309828784969662055507518108755376424617203180540710617105901054399843073069282935126720200810128490192085866854636056222550904826231084027001375212105859304574530695192733027895564495448249951918048580823615663028913499772696879038773341036021859762002456444228432866913335665433325944883213190331748649420961790333637884549205490631772535711926913659195367702499459732276235000353763089984030153912804501685733071068977238334984004961776512096118736194720211530226104182573005863543658857355313827641573850386556293325208967705772388342668015777866708703780842520403207255122849411445737794735916329401691594187835018987208931563673579422317872839241355974375905376540883303889473467622756898807153883948753509847807629383794356701478223394376195270726928177109307856272019690736887141551775114610956590510593357231102318456014115726097743912363884402099557632582794616062191220475262367865527399364488341345293450021855820815075928430294015524097052499788996355367928173711848463769714368877318872379281858992646366029811793674677815061154879423023992485125956628690207544818913872796277319901948093088756188447824587548679002827233553278005190687931567609849745955289026319500161872043132286562359834407410225294296408392884390277273971506280262984226648994673504091487297888704203322790389513803299810126148565506100865201988109242429658012378472871488561033537139226697629067252301625936166324833690643253863842742656741384052050983538052711014010464628800797442347833911863905491935700848022579406457916409526559198666395470181581332517190779821564644113542149999397929712361360716441160995330799537449566080596064799675232504922867784272592544340397496765882948797741735845559112010157550119151855959376317550742097456114403491716125176861077734252995671483715051402067158407142785028562935929467524352872650792783989566727253227448502555259640978671506422036898575103727300429477784361928595295394227682473919989583557328138022259708638523708002103806133965909280856013946940252663032329176214797737236154817959858046515596950498688232323297389419514797791686840672293027577109491782717148957768863398748342272453737486791885581069647402154320307318444507542466805083729937044978480589852723130179659184433662960462140348532785808268547299371337130645346360494568046740165278910420667617849428056821123426297806399344792415784862724213387283602439003546403098527412957291738715012829729791092225915882269940471799407376652757297441078642336445464113445482197106145577862943939294759621208498342813687989396185032916988347108528790567932489404336439394796441706097824296764659585946296133015341470942575647965163007227867408760181948919716497249462973744073182773363754987434406681296631687704000357556198427355266470171466748517347630876416197261339219779947885761457471895809526163364369674292313852020125440600770570679496632788990734027720329366805276177296945452354238795839310862317392107241165802229705761515569829607627836358834091491298449826795415003790503732274268498323530914563555949172312695981086293379788043039494545010111290727235863515092346769475174435636889087624985785860339613882697206421273735232443655833329218769153407986346755502783612246037944056696346959267778430137114783198415279132460658641063143009185266996368767868089965752982653290136958470049132843014681047133322483307352458498024562581352529267322361034186360065524954710785531216015255732398258919122150907553366430953017987754154661387995205333008328372603438208461947958024891240016100527145502519976237494359522433561488310154929066899301821542315096132140281340278628521655787979490726213295920820819118827852644173297634579531760099398477729507427870676478592443070155722370637664341695543635856074857693395716601883543664914709238916243133242159692703075684433744234114616652414061791076209274135366209274296462693020024543083249264119267183733615155881370163939484591741192106959474252238721082157277182098087286019728988531414838473456755880810684888684194649472180825822551310237129593514740690423838342613674452628280012865056425179218201770950896594284644792373748372310543201643214711356243886208554686240337175624840699773414796533415226287185018292442454209890775428813739379894285823397822614943605383365685784224181180881570887142117201543028399483942990311281600872934947244150830572622618162181211628350739467168496587852450386872205298262199920071644082372300137647212593230118376152445035268254417296534582295868698695789317275204263701925472511953178912657741693247261593936422956395626280114683508529128384299824267059137474383138126521673754572709946816660221696258702947355394708733084062452738323644157092330200377128614863153206566628532335444679573472133430745842308312005561262422558788508503793319747503241844936568013733917144499629746204804503395647160393627597511482246783094961887866723664113608326097534646316409960461710660222356184837192772123890083593326054922479295988190336672407927270100266153545169004590268374414567506926347288641096260292628085852316486128183327367129868439177146903725481141897957490022906890819231912862796604631411037012332824343549938772831573354660416071258016354585979464035496046339945668118665881491801049487328172754020273944275925835383243027125127441622376826339581064753929798766580110645927229124340665076134844602380223907794764629686751242675409075844421314603959099624023719876621656627336979821568989099387667454397018258188406710571660065945332098993122770708183705308367101652405210880471582795908196265048807929453934466286284464252623816570844550486196309976980154022014613546800623165202913843029082433998434031182972310450015917323288274294607223835617216817556875964545480308526827136860753461638129517404612096748390187450104390244994523726543415114613434113167390520589024980286539386208152660093009492000527824564559804991464014096287456362801531685356572669414864098287814076369886362287487841300821134196124366994316641145516599928973593821252524341550724515941767415234945304660029668886028177023771785731419090114813248533221281167775219205499424484871045363086557696211655038371676069210244776940446213693554046137187994572124429549333486372949568026280793993345147631491742037408207790412366848973818465494621311083959076262707540783333983909765608345521867343026074027630292458690432100322604301862893111389696003197731484863603452000667005822240557572652894213117520751656914854545252484120632177885718197038161307912555387008978329865705020763993291713283694044687797078348492112145407591318795676078947806761961032359053170398642913037808475398087602717900356981576746215843707188912755801895878925223432879561401120901705198469679978098991854283521167808406562199536926868903511912794034024980251852067749202998963667207368715446962934697320504878530313053085938507771809287021730972540510551634507296879011235239635451741453032965568232947612357675915364358426295907779098319920471531040242373910347483256908342921365131831104159322343962179659206066005574238051556141571356391276868784920110439812426835356889709923819377867393372213188266641247592022993121069048554024899625108312191739254668919580371111888894867530020683868212624163443515613023381594033150304670184966954618939434184943741715404447967189117484927486343198870903043673744555803440870166696650113700757535656172102151826706797460410917648497715398784004685218635468348507189044894688872072265146811004623037664489713160211197637875243339255028911978244518088536282343880501571011587643336341925024649342682442811158359771952537832863888696328769209301364812366921160976321424684264400080088889637125387856726307575392412083937167727476895373157271765069796777401958376776927541520319551252261493355926012617291922310769149196412511105206781015024060051739957635549077310179368499049669612213725664425637117885141259164684226366648381931297043472975551114827882151728298960647108914913933415899805655248778417153717597335903464628243861108580750655209777835702345166662748323338581756433294872988116552262625556113626171362863860191048021391477476465240402978764401028813815395392971777309485165633157652416255408638313174815356791728930226364866518055398366021554678638062860739430472360462642887650824020962759138007300076918932178665353152500071590342997906583119340366303463831038859159847757289472497263858625608177265294852717292542269022943665212648429788524895477226608045063774979841192618626303217177794227810729540833424960467050972446820250946712140011176457776525771094387006356462084868806491914805747968910347960142916285730884596028757872409463746370898182616544303871057782128703554222259083306378889271349515087685117022877792027395422828596699326953949416214728807936547054256569563712333175863931825995037937735263202281454651398910283346774804903093952401758344073168363695538989652797460095222914720328736896876241473324666671619747183443102470775153737756175174450549184786100107637394364617377900410502500070568076324784375320252862799481832713214855645366896712603675564251002421878682839588829067117168966931912940064637083514234983774538745870932252680886154085095983745137051002441968555317111227073812196038727669417594944993660503169801089201252920375113740559304890609972408359032826509589295908398003436500992041918680780457999645354833686372622725185171624509864092066613562701260564296371430241014490711835275055167171189130594581282012558559756023596674231921483645474343549333213154215168627730106298444865814300933489231078748935568412040326982048497944147445817499601858666637199054507231956410188354667357830863256433024060160348681060402585116896209467943313225125355758887363623179532724611903738522515248967534826743192527911667722367719097537788192201969062732351749246166399282755955355417248918314673866885163322616081219074263094040872220399554575211311965789459118082949264580383823131532085530253212386947054401852903730582540960107433418608073006771832287523114765403800065207980039245655069591374869349885435256798554069716733577229004062550680703981191524660085910925282319555164551996027649855509289389970070387089247808202302165427440094393524839549902499037447756211478344270457520548977579341933590861265302973923763175734169311018117193518151858733962079610304651040053583813107926348155751717956339226474921910973042510853409047189694716041580620040823744562701660415845689647588746493253684056333839624799698847928119100194141785204969168692065260946652919145290490015454608663552277250465165757756232507552934302771712740810004280043482039646736872409083961098437206816160996209110485377740435865365452673705923216388665486262601066226365191517096485975164879655713545965808292953686970506907805646772588770493689041171105634799168433962579613419381688838535971143032438258377423644569217618790981771112045649703536302613404986468350734745155949018279350782488036896226063946918166578070711173928400731012795727397182759635297723579004836428639941092293817380598904435687772527226888262266625992108710704345616874550774258584914707955519389113184653386011026539487543951214947214930737809733473831264466510494734740048951522899318706383348586518127713243401794693398083105882236974765666441221241612762451254814374841098656481550619725892582887461990748805258670484582441204647400536584870533843941544481719408563732056859080855728999492731355061533618697937381964567037887547798951401544176204406291184176075892135669018856975405657587418989766848267762946812406555797277028655166328626280742886741894306110894315185706862638464925416196673205382446798206680469079963395050068762324735783982975512443277178967500519947931850118313682772293065920167931772865086326561826662337157834275587776864660084277795059325866981748210965024182739307592158704406167233306838526075584815141921076360048672971806777640650266455727786535240738275845224251973166429309533552255996013852539023522070225788228712753859373848164074241243112975907189890283578844411244913498719185963486223261648524230974634207766578546418590596056794666125526951989298044871934959797050627074056929630164475244333185907527049336547339383398241356819598625898516500428784368841655219231731647492285528728249310367401277877388355947371187849033909025498298143437063998600310528909142618650015216827786006847626359027114005947652415007655196035143651494186618615823573854763291548690200524278895836108839211211436123463510402380388230023773612425831662775979193238883314793022901083781734926834483200448090318298005680740784904992396490100307232664455837605392627550679555783343215523762789200494434665856442239025828907700030627110268349575341258515412095154702879640781160277194736626697763450864042730548615562309214421734218697497411554360687387966259739764354371940951656414855638841038512007750653340198014237522937952192902566953986567763450865503497430788726074377130891036659872780426976739955534163493586155268721871007549516972187466755213620735673222472572974076106787426659320853679933016642283184680759866534499964845487625554362491177829436254966686825456032477264704458448604372448784603926503981716842317717814400843267254183925435184873738592182253729165047621326650891110882287363943861912050343598156592472478642770327081831145830096368892497462931030312452164330968730896938852361252829029585139069944653412985232001712596998828244040926196419896271831899919185448107100529386294931132980227982707115162426649333529044387845065143296699388980903288306529992986043787162126596774327087682720014927753312802461869975307397679132400376612329830247783473132635084653758871084579718617207702531768668665573198228347472585094103323881603682615318261416792245028823448746489075546765673905969353566075922474441975379197212366399531717300940201347625206549238298706911029688586836766931076446380112367930695523651103932290400176371525898963840863608262222970084753005376470974737276355635089418347827082661426873496191389709446023556957928834538247938874414711237974265427962392318177929205694167907424843044208913700155540802389296069107128279598288010307756605554562430471240634673884190090130277279301165339632253778485885986785606767042492271793545178545042462180263499876014556270719307534871671828861547789605665130710280777612722832294457392064015847447596848441950217267653118777071672200530298777137865474899873486201453184310435882641878726739512658377553615644421651886740454112370577392194853988495339490459929707631965550900477507042617193003329824076913971656423537664875917245233343993727229201660030579874018542216056365027773750960635892415559841048161223368993811461227182551261078051139101938208384643106348970212045572184215911063853373093492389601063547881343709866351633903442856124447177786795060254204745217137777520503530747876921181015416574902355193541095438848530460760299631081425999158468409525766115626917769255215984326621593672863832803880860791060344992249493706025547892388320039867342211301580683837806126985924225119371112501614862156784127607118400310073541182631235268902365593587904617018539958601065358386266946881256160083435293885922367220665267481442133638798165988991480004600042049580702367709371786229568588371908078686523205567463563683920949846926006893261942003927877453537347488779672274385181455628776552802371413927437094091323111107124010067459281562879874016027214439481638990501972089291514165184312727098973630143584676370072382114316211140520679592531013190513355815382821185823791318582239764076814826053472234544335441555427237670471494649602536165691967364293323812015432333074131428809678052816954003062008811836447856279415839684279131466898543191099008427668458892287326712433292304139726445675281128225791466885796110280112815693071117619515280794607307005894175441426161261444207511644068450245272407729340701510925577834985698380356421193035745193768329766909609524243271829044322609082497644309015331304050741405002510068785763530734288912174228347025174959406380171575024083615526079260490906815393320500447390420552914968249478161981364011750566054104744635374874932001846605088184968486612629504512894265382831135399327147273119945976929295133397750126681850981763319662478990093055774666134100994617833895781259841828540065566654086236663776479457196462445674586499323680560425094922424645596192651068118764213795645555521847852207428643045120178158992364665192917730453493884340563792600348487109781647389208485666125653918412436100156753965739443000679914421807667839887252286687281928301947171296584576945863629884321799949278635257265597297451935255087032384351062215546372349725554261219926526641243954089669855161261221390837054905832215564614574977432314929337894672933655152104547094660500124364583858444657450014183069593032054214694052873168022462389293009191773872268587376923973199020376491418400516295556555790223311592120375788827237136111907815064954183929125377690015198893610932481092021922964463795535672555952692209627212527375812687580480642823705091019055798328781558689389339089845715823879045278672072908550563373413439868858111569478790383728205626958959606001050719421784796083674559958452363463403240007456568724113179957690985493646284941516246100350326978715985477571787274732896575185241275273277512495640958158967300672759056519994379794431782632732441217896327164014403248445434239106961115703225785637947423391912366489987980801729595432373707886431675249800496698582776664079287607858572721307203830462235829398264451290589295264890390287150934052874852470954113631926324320127154260053282997059824501560995200133141198643976868853195349144481660287541647229428748632401041148849324743388656173737962048809961651654209043781708955066999603607901043508641206517937037507186183127680996262764715602978926426149272286948029094768736096780366731295511706639941057888799047307474834219992228867077010868938519667277502693228402691778140737313343476779288605238512471593283233502575501403694424271444685588300259572261372207437895613539498439529065164591560546737774672804492808027826033451963880978749886386199453592117161092494020997040924545797508377486497810894622934814248844087384403816971818499335195814918576620087299594420308457250566696586751820073638431031404312245505472493567771499724313026074891170908041840504952480072619335185968829187838632530397772048190065887455078470289571277183048926396782885255174679507622062639539653490632596028321852427240736743715240355749333984289478780923664797215080238888825416706053794026848110727192265927947415706077106897900108911420523638205217052435520085157407285689979542124717533201348991140062715965029268259970678217389665100411988258085430412320390926171572453293491701516920530693719723049288079441707015562902662785210410641942664786736315034899702806760820563600606818496740036726379848628327731856358778183965365137362037347727840556122827892359105779879383130437008344102211677017589334989749588212169919804367966394793677011164943936241810291664912453627763354798872313351206694914286432764726988163377407930846555399396225962048179975380610651465985626122365397982808919231164651364151274013126827656508022318310092433987217862863508261808671525628940155382470330818415249339319314372475280094238870105383232552352880560153050280706806444785828039920707719927904507212726563454455798174690692371524564458221763243211287733669747767769562775651051495823649037419326648891388849332609934260096102434270215420234675383661159964615350787804588769056448191978601264756657064081235715848822015903720455687064220207166736836044319636511906493781930350516432499351939660758967978408806371097004224488084287361362465238717220373766759637940181646647568306880071928650002675828967575328772058236648644792975544807408245452620320072276437852793965818470288467894208783162909458140368077525649235664747845316588231625824068292715588954320536245279912117262468261107403694650827971457834452502396237347063358209343100650377295343423279219113150784619435776271973141115660845910053412203804384843797282607495089409067851826843030846552472656497995699245304855919700101021696736799734662954988616618283479105990724127638660867891107877987286741440346389682592643833103821253466180045507280888159814063058286255613289358719546617118933585163978446740116537425208517685796872100095434672081665236661325630224068085688721408505185377892136514893084308119181715026486350641472467769316889205609824391117344172058783297389710182537034105192600476964442350790514208219535813597831198447290147841537746166294698260214785635146323463758506106167543306626998792917493947500486194899598742708520906492636169959971693775352268502654223855448414333888879719166711683194929295117675684167215575944718416995984604788031407269888713016109161554531689721914414006318520524799343333918945307587229566516471365850207507537150971362372149044005980736291409876467281905452181581459357761940046159596712349306663880048854509026686730667902811132067837753366589930806684230015692821470691952063796887012248730278948261236955163663213240326590911222922052855169670026352737647510015068001584554447172598339370384478837002245999871677764247325371687068393962412396620442671054876769658239002849062328164507215114973807976956052529469653771347816064135246761615770897518117864331404085783771644795485980967499751297878371772283172532895686486754296316060540209318672100203415434002869721135856221007429344552425508662249728708057430516368791342308944202944853067001769361281840312472051477226630456654308849667175153176891455209661838825654033372263942974389138573827006049419916762654982859982702377926016684003101621367796736720859728945249824700614651910747106999583307684391950085167811073415195003956550882427671147372069641575492375795199572541531364942160890080570218694073976674787858122646283098726501088779578793745748246571656834064927339267833753481418168784024025374495640327780232233341163726789454361122695597750432961781740165709899589989964410172077481445168779212522202953890074779778413416874569790127514293592732727649231289338300398980336427991505442416238350491004382589339213978937823117318695579537509504863038296156103888909861487908584742862891987824483590396579406856879312131160886600780271777096076301708598587843997430875520273734235396311578693903109984449465705368296675178028382368632868619405700525502846637391396450926194848572095977367143226933572129706861949565670910328013926464586996630103874349740850305258947591196614171083395395588730709958505909888006290485801863139927500482318505349223864155527425558009903750858336589563919565540930889656962981482210586595357702404203103650188034886257619013032044337455225916567408423047759176235409133188994761120855170758136014705459010211452604866770067636651384807568696222007368822607211563213898687357896682115354556775495319943533712852320426534211022523219981208193226633216065110317474166801881190801994901227151419708982373944521089061410344177382961173689457843299652508361783296049240803242320423511478101959105834327919429435343955299440164611775353591672986584075731673112830279311015333134242109325284078434645938375484620414975177313291492851293213098168631521844199269635092293063848683538995518846692322365974564955739786479706978720907530962242070884801349540066352459045946895832600791252892827075050529433854096053149865671831882735740399938578527338824795969744090124051336784187615705437313888162928788321478064792459743508424345330801720936941343407478859005148269343124510245823987906810549650795346629901292774995870150267463822014264162214290593827685947619724503981890183040634288069600517566127363621889873455951185772262185036372485700977140549102079982248517453579466660532261473646837443769991567735732194493016103199774958785630666714653162138951826411713754295124082203021417590016554391832909396793949882350348273288264597986720414809313891284634972313367313447867316677748909529496481580653464804539956983689753820883587624157777926864552572228449663224968498205532334199629161136581048418069691284812787667883295885970762920401346806746047199467316381664216690356363427979833004346822872798657186363883192306363604797577253102895044092981595873658402565717191355118730961572463315279069888522078311540140787349864613168119098282264725666409482517280399535611241634992089134078224101943318261438720263672049775569319814057321719926602043598101050464928499473446169610815559349167036725533959538234739965229996209324387885543965134125993715823746684011241867068556268931037256551432862816713564313988319315039993806390928970198812229526038446842061492166690002433550887392860227633163903360113067881954282795853920279159305710305414964063665792925580140129525457856664830068925056214254258950204613416874278709217917267847692724402476500011254158000515465139905083195673815348271386614746523838341004177335076143014316629599883620104854975828354980491907753624676459750448506641090139626517459080333855611486837768394765911346875714758014101481827921739090378693267058248862243409641518631989281022843148381422078068652371496347615881738147560221927091949846249346787610866765323734251756980311156911806787305206812837537481815248993821375634756107784334883651552434119563671118004534394286310162250043260570198018554128600201812955316686343816412634971283024688844386204043290576386606606598595026462993740656049851220592485518242010787165685546741153400375658309143659732860517288514417922642925011510561571440590433368590894764144770497475867477006494373416680820573001156020312530827207286823406296831145019383512435604268619082456656108013132315114167133825383263957907679844301435196305176988134173227359571889404917259042457966383763720826848218325851383395149854144106899698922128661858508072592908908124088569681679345164651008451893494012118796390339190769086092317529035961487292982406358610905273893317932456564579996316579720888437027610956920920236938513753745057566066546622607111192445265803850657676048924827388971639674041387380018215902124718151382351123523204337169662200610244256999165944020490650038284989119183199647280777343376843721479750763763298246886112730561816823488858198679438974062464053339126303179221597855027287761005190458390614729091713971177484342482418447396131470789680243543235415795162854192321590979287331782782954626821061370212290501613844086131370074320215960762270041133165777408133077802493252026375156745572531392740732541234343565726664937427729646722434075546174249818067183296017836746729735495706677239635605360893052274639788181987322330599305161875456283812042018632658511452553948299941037655714673268333673498863202215988723067791534938812620127892927984224441463239209330258066572434629157754516512290618822194607047750120848427085758195727908867609123712017141808396436008072938762615216170730350431192671135163130955369558219830545224446231990267056496659338189313608596379924633339433571154823382604147640671088227834893872859137309458970846994219387831116412238120484931494532965822912092875511694924466682982898125459944795241273524890671364242207131166353983862547059658924905957019994658184197124908511676278319196666748760819278206313625474551421200015025245273890864492037537949204363090777103426905080702922295823594629117260705117529416349816372141862986939906393670505239185678468855065678807022445058511549865954288781829024900890571420284391106731997468723044509890949875910651497777943807243577231608961932655473943659670815801911521892117654349354001953113283155551586452312154338610265382614899161618261507619419711235331582459590598003023342881132755385671874113071495828054004446024387964427534619500969070703803325198836996556334987729651315170149935659224415761914808101468790781413303668494878104207970510966891257658196591107963019351696439790310619056955390389790185874975611573868653267420913593811670300748685321194146089012578322384117070959941877821764294485370223866948682128120123618749892878059516463567165853074067522951492776121133663853356950993686363642967817606494298724576325369288068199360216193573144891074767143246783855529860914205783523098885852549488334547557899524867825604405500182159390137618848650117161636081833774447156691351552397373078635550227894291834598976379274553487726003796968125208072533341381290477592420326598405816629257536328770053361969338925833973252153748553364897306131509077264934753542432263138749425188048938496270814046598463500858046545614355283917974015209118509703192548112838215635585853590097589636032013543748149318025298505263924888601771083007880301680046339024153208133287232408282815359966902597323929475280508754586741035135083690396756131032815532962050506391937541492783676137662918549145552593637379613512469035236465017951580970271004442458701862760225573183161946109725235108077483024494696916070164431044801817700435331700484331420120272819570618748943145439639319470637841699415229542265777252664393269170615134584758051123536098108779626372972736452233726054295851286171616541814568280544037361843495442241342322027460098266653231363118164212458117218979251640673492912721393227722555481569844521660601364507149170284382692387702896074769730876008731903529484320569706306137873758083467623642783931934678597144570002379893755168793997550183331592768888215116874902306626409883527660774495595551486135973072028125882568770454947601365021938591429842007820429580707876396258869165217415765800921659177102733243502157298084747853604669525812948661762963224099163714499387661659184887085067919276933749798007510227004739022922566421644993595086015470811610773408487611110302152044889913065013823193066262363376026055717612185099571775540085180408496205403285960256677165508824650571924994311970256834067723548858593413052666015510458424202481279310370430123872561901530487763763791978276743089636228523323190612881602496560212070601142863733994142644887782146223634220195593252413469854995465062326350799638630663943489831604188255038465986783766634715550257285424506564424625679025179529828722392695592053803722923353005308734041555624252231754619827780037912662771584356736889496372276194007046402663423085365534304475289796087304199602744157526038294786752321628739780798445321075773866244347211750223812465430872532277937307045632624305691302806268075162713033576314115693476380907552615715767481064233835871588039088270664406607240742381320568922083802860379218778026990417730910661440598647399457399590166309885072592957048401077043938047394565806222668217039363883430753396752986333473722245085867382493253362945028077694113602670434920953148545116605204032186970101385266175896045771055768648608337852756600647094395976152502368360260495162722943259386762171760271897796863050601549919483387439281032931642032039030101416807202297385879629536791397582884551755618559116658303812908244678973683560720142074989218028560984355096643069117410840276776243009361250287198431328786340441325769955277065183603351575146739665907519468364598827910865285268126904979483506833336824470134955121489959029763344229381612706805902737699206095345584212990638081366802070731973137578081552501960283748867814856595667423349197335922893071893876641412863846675892227848614427267943554835699907341408745059924923352067192198729919443607914031040951461320557611072323117163399742555517592605597134349006677282362535693161985789538302958168791498502438876782887947563005930406840526762567511137979899565511332501614815581635194366442620144487881069236483948573055080201870362070750744458406631521433066542269363132746006467443741749265257510686587323020662937115384088024695209155440843865606152724595039130002220153411201282709871866939564884966750229139103348367403805162627226209603447786090796956618585049589446789679905488354697480280432936960275657510526094431503186334658686839217182917587734939718808932367711997501082939421661008733458263835626206127073820947260721679498141113447207704270875679146777595913394099861146013592265939298326875088454951882341587759753607363314772427407734445847990736858392119420714196038580360986915571759389866797434570611274713018238465836355403036689246144741488242291619887659007402382091962619646458635196168299044920168478709275325123933059763368751180934211916560247076433460476593796299512629577501902271875825094584421691896626881551246622378842204374540096596230528360107059777045411274144857836542621168334632582658156172610372364772789227628586302416485447708183002291916408724575610056942420867137027172882149153439058724424021118063200670264011826511436005177246970024453761656377821386486557650987691341298998643306449284619844441801230088362634275351998190259464710625390813289570472623058726436398759288712592309523304588135627291378730933297060271990476951221110028131603305449888862408141238308125978308445788541258527646856254042588676541922925592442342041202637745803764335642361744029423316021987067489624809246145375047775422930593620736938529972713371947946483543804703415545796036104756589332543509667061326955172558799260796727181490127835694375987021890430796144452894366765792628768196295923491544353135470540896523400811447817420930743500933147374077718939362653129723468078439936756205140823569983253859417390666063614970221383426234503835183464071064713748037267609879249292410447463037875149375731369654191193571453541581620955435500813828857272417487790695029478848074937283695844634517363200672604055335994736998005597149068307610817240826461255710296397418073904892180477329614558638007186105890057148788639214376689029604840922400518421302903481503560761855140007493223376903663456848482424926943559504094390266326002188236450854204633079087019627387896884981071109431475376289856618730825787639712803591240860892215245955438181542976968809680563118798586067159169649252746047238571980801494881681793449551299240671366173702617824295626973496932272285210706170674151273852481351152477351542908746932216804417719290361333499641311566537969528593682675071305720335125829679634026003760652635675400099182086917099634979591936696638585647495073835321527944993883846339923964998624813683648939665277574750681272772783303382599943997687660477437833381440323610407814049291496306163912466098394513386332754787954723247078606288869646049468439382238069554972975621023968966980679722383902022719788643127109861714061148918399008740956278754632773089395832679934657450418511683765758260744917576064661846943530444536954793645263212894198955136859139548065646872156313433406539378519963479062070428537288311072916082874932982685612269154146220813719037550404301492232784302640864335312682784544326860495570837783444370243604062389023290058900337012182062974266210065725778844024795464163396287137531329666840679034638919607097090907890426045401362104557878645320746038514454212404431576760420294488812506388937736514572369483126691423712718802196569092512304869088171952361882591108279661576025754377820959451061734785426295869534182279020093640339037075101674205831357807500895417554687044908986920230365628157619847232240019587042705355961618941152356282738890356382204823862991454367663445615256429550157417242395456681704370279197947417593807701874104379242128319526007396606124914274607110860327196386300643444931130446180434138485892405855193131380091418338435264265342252391369745232964145801665313917440077886034896062793689347521160766514952918729973884683241776019726559213282724679230245034439781008125075409756288061310907360763717212834754852959276054185597583481225275118451481437958258870779053269112283999008070446365533852576761158587401120943506538324050981782324949189383184062015068305490323232758013302488529489225973584674680586986963891253267201582826287555437368538585213417060654083969580775465078965968383139541868835904377040128346072013212318375591543349544900085152226374368862100022282804464826143512951986746964911399432948405295305243074661170554283343009668230221388726678210356986229550487583703024116148214162393420316890166061512934317463812633106540859411031269726166626940805666412109973095167350537418623292977451904138145492513970714540089117402469693446291172358536946612836620804963680294760728497724666932500787516570543969659910515140622286524815161024927343564654570792328436981788078445398202849277411713592055020959551084405750267039301786462278325331028659995847230871815863232033126649856794050465715394456309997782815047700439620062791956121048138481798054411582784234076596363703610866348180205347794076282022006506761619633007508283896594742337011666067210896801128447297098662971827399608271142336500575868138308211610204563139268534906724489141252844687228258328861554353976239872961216852197594041614551770315869999214153190471577012662118760080846307186445636246583116627074884903940146824890917950947033480189949163704902401707459410895199928748518106023453696544137681888867821897765879586545379247272089513701248591880099520717606026055684031047972192034139596863726587672410733789906914570667387092522600697274031114416346074920030541629171427964608654814300400018769885771101588120803629200911256363365735790498691541852870959418538074949257613093033529582640007716938860228090161123666973593669019580486232184379934463934480211955380421353472905476504444945452932801159423167148260492515190270681729316908723688944875762222768443010434388642150623674190812521786765168817767765843323211942630213063328748633309300505588273775875370328908857098172692722897604454137333686465152295578099536324744318772196861210799235991274006102731288860558371252048566246498314977267904938979610423217278478187591414472582611613265233764642311753629065267590757911951590874294606917794676307602174071707971081119039216294619670813596227732659644975270862159263705407348421470201366433953920362474074671258432924787929064495170808609986266935019947491508275437041157862131470120545767594375448508789891723220687488232395017762270034412659524368773356729066727802005218387838439381062295619403057297990207698412278505141236218556461024801710645348559255765449366829080523789132123062946639024335291466744735298817891920345065726044123614816466884955717355032631189165445427811976098506842503121870411103627659194270722232701459791331699627911474359721336328820398194199564468127306556865113380256796823175083283832553219283509788607582829975113043653484826861739969090300219053408261252579458927398714606465665254639997176026245385613725353258882118822719682798122562672764374884407649768970789583496434212124730783309298751073324729330553319541365188843059423266032436961143899704244518690295188626626232144152444413684568831023788797794248973204366571649510698190294957935640237865011865798586746111752398108367598702191244882833007079202899716214813871885834899968824479451601883839651600498098139586867383331124961170307560813100354569420828858053509268675081984868395810560892797466492772596693463052088107148707251138625637855185756010546306631914754527556058297873310338276710662464722804882586236049024674122931648527827243217205469560959740060930140335104666869455152439415704745322942450062226346102053270811968579404118268466504587105706829891009227857588470261065854703596604773756664434855008520044745694389012736550073212320673824128926313290093377295006459566321583453254507206775346453896408393763202332986127398183010557168619316171157007781000351174117882022283383768451143049370309531287587288007634709467012467462670517472354910554623558204055303457626992600746542710031997137415649293062126976968015754219267234877853762802931231339929057540888904503977521370739904793819804656744594245234163073134350268797236398967828548022845323000644237342303979990212117643001908679615462923992726841403709056344816480241506707669323935723325835367392585278333211674201341595279865558385369362292362526005490028796114609044208587916618080250700319382435036133481874223384176316416620617088888921693353076548987889762529718074543320704970403297209460723978602461635771450045514178561415372164252978925366464235718577902615677478764103523283340199612653330712347232187873152514237502300855155560582602277679421016917385495332061357584625883370315567156969514586155473626235937786538598420763255225222054138371652675123187224064156645681442323499329070848158076711582221435879455109883046764278096671765780785780719047463040080455575584688533913666430895366216607031779759905511456665573850818551764700965696304753914746337447043841329847781231456406797797159687409696137692269544513242489704772358821293528403395960281714118931700924279579623720815359429196695470217234362796271245600297912402990258555020403194315555978372714451645675482896375088695241262486728317742669701946988424791818736879161160907663526120928126561161471244832790758911306236411407117339020155390992575147668614018434051280913515239300721595864265190510736058586598795230554276634031197858088644268123645520035931347875482020111322567397339510270236466759402493064627134538097062141393748473317474756673501592154210849689928650308898614904038872374185926819382223721357717904384222005560336176901901386835586192220070764357551518361353206521616971750875047197689296096708857454988992468892726740151965625388994353145122606323823770563427576331312471994359639902174733806497441433233140142524484366138326256030475569134039833680475088709281057003150100887461848552183878984288750567720315843896791313952406638298927668552361542994746356214922589851770064181616761806301989600864759785655679331764878374170070711383106479928245433745317047842219607928406836103829357958824073970287075331937050801347456328028055631393463270892259163658142815456407943761701884863002933615524642431064752890740723559867696408301034286784924363607272345639172846223440423856817368487291011759450640227740752624912442011701000080839723049100790885391332588240276325116013644630376966123635863522278663631518081885721605397558230921904251179286419656835167112295996714741769655750071807242654921487953338762632477796933419463196650285475451831870158736241337797674222155099475844985536852386625273043873808674241705135251535668234090554748839502778363642691880681421586898176046493904833979564547530044999984079434492764640350012100220449124288765489238687088048136709641436771598902031618882038457875745457392425151395119675270148260423610849724007665794470095378023122267333939215968991457910715158433488122067853345516711462532035577610787400916826424315196352936918844166580906831046325037895450618036700407660395826856867733732163937318413976634929705845795322196829588464719662135068293115559565725456225299437226923472117584258393036767922538695904841739022978423750997960141525551578253969085310847640408534188392710738670119304512099515740610316669985325632110815556923655759662079667917815518737497397725384791502488047421671298205186966969905015482742744057234353893354861632256732186827790909238911487207178726868679686929141728585108898260954812114735710766893122933508097673403853141882660004498464790170222919986968037374975393644105886676456699581063924408371233163643843740817091141755822019521364979880776070151171922138426430440707679484025471826512217818811827470374107203822674574643976649624230734919913252722909575850945399347319800932503975868363182805073802196360499379120924475973504260434897901229882231512073293564384603813852272411309953458879871179709217174810971685100760582703626109129467044408861121806041350759714907106236359141285214309408296165324137396256025793869222508423453379084700055251269473663563246023980947255933397262444338539675507838879984417798606862668499204999654814775707690343488499407284172987083230788483205850152746477118229014984924237419286752855770245697599549379781446509401079424825995993958501169667459635850228165295474151987522349389606886488621831865869159388849188880557133540358860291607976148291314663510526496008625668358532833192004378468421360365612676302246251604892959516893566947321616021609859061021462225313190453595514277508457743870968844768165175072786272802912866810888675450001228827983478143191936636344387311201062724048749739116837806800682988192737712554513905426209970221236676867335589813453774992682977639261100177612223274627881384910592848862280250771624470011616004907317856713769046289098177238638594615593968679872456195540432973497690546505459638833091117792133087005098050790265872853871791506066740708463374915657579775536839416738160521817288782667918956026463814847420214436622468950126641438529202578574027194158799809847784129225358336646346760105541480063024828696167184048325009904966125572337199756603423470765484832616984500554244077559305930072467189355529709197642918304204800429155126785550345943116086596097971760475510809858527709914253328946456828970600763197287818727157441312693028307507859796050431609028285310212086521677686771310864157036476307476004617024973752676745054279761672415557157158711400522408238621145288427033458384175588313036292475235013453817427713203214494648566387057830336191202807191115210606378518651139252917273270822828758165712404246455102947560365162649556387978673542266635152661041161903895221379686170810464216342468841945259343659674102298529741554566329910109433491512314129828279485141449663569348038914741768341701309899756768808103094369267261005834961338672826073292158225763752647615137310921672966368176262374094042938086437838132009288856994494393713041433349253563687737329553014791515858456556967103960417250795001792836460418169453388910490084460793051626256419276144223706699108031655869869042376009988268220431744959694969099964444603261037491058051735464915162479045539268440396316580482593266348647120025648127852420922624214743433768938242930357215421991218143016161100022474497303076195222586392015326467543048104604718731392066850145662300759321911836135671503723540521000642154136980334448876056320466612212388609105668092930858668703845540819748869404265809095078797379756309375309264385248484250719280887625251509930684636400215265122724541837835433064036053312568892800108530344490781250182507710507502185248867723688149213057609729515714008587993890999669537092445888821950128220386801099860086026631721152042779429580308087706995524435594337386495164970173949209456785512481213200565097154684083672776710352164581836827781532903085828312326469900428491574199955169134397062597992774512303982593284174267205777399065710752526235087273024587249253865945304776846752326759364108951860890010482386442380212982209867595422557445567419582982061480819962134802522873414909560125585889191615666853725615789861128809481906866201582165536106073164713633616039077365995683097315257668652643492458673088430617923168035205293539420481275450429666160783972795573080751224011844868932868235849323270538846002428248327084873668245444587197848808440549663720942490519923716485762766155180053189256193603299994002603895436958261557233458276899866161530644510503778377942797343605093003196974923205110328371567869981345902620961444610636680730412800707381127730729989987915580493095444479353112377928597463697037039827677461366275971445202559053113758844170698503114368701928118223248022322758655532573169265206753479487601410630642952163939671770222242201779746540825546461110712176369994843699003094290185903194605105898372753316914372295700128731348186058781396023338344959536675486973315763035148604889630106203838816619008674075449421971949887615867667295240496864190276250142710072647501606976124667444790017781822328495819868135032626328646742541568917822079655929490911461886985555336492081711646758257110771591984755417428369472294127971850426552508369077085817325178048431574814883776947643563682025840629327650781209529809003319356051552575051415968001974505695551697889735026539803630035606995186332454838462511031081413985856788035195420014517451613811087749751603750970091824339103579990322195525599759641791878252703407844135131646868415297405917757651011206312971957325359849845816052233236747347930900599710690071708931532179574186247155245389964065554062989474644002033980299426903430009366708070539955547681301131627550734064202668641135177527922435492440571942189117217985193120760642001633202206413303932414305579042062193055942067426450863180375936160734615981151650099438650542182728621687458865299172295533292302696409043026619398156665504406805126722138686977006811644035397069109660644645669194286822035158256225733256118452044472299327424531589788855233124546578264716968223961412694406155779239447122393943787682728747946377745061194421339876367069982595122624279133778680440682229051190186952694126261365790887547890987338698530379774355644220200525726706468923287249883290654494403466685884669147537694117274136005491259018779433619952779706728074940219435581587695296369293477466602015431487035445045308145542385145938433720353301249747195441740778969591396330510215689186704496192245113378399083330763711685774434108855876118205924093900860292152216485230075943914391127957598998777448273877173496449799759557459591178819874616212587609848699555061929336609027222488617921222889509611371797870663084194766890544349899455145091345269767465060871322935306936073421303078701859402758649470235612787727352976098771503204266553215854159543533446703481962254673317709947808590969838607435291576647367431084241897812985980391416914530218165347616761598270328969340794334727324139192846438288915997554745916526131364672361812153532342438014522656279368445494725926855040807011377321054564865944410387013438576801876894531452246184789469092829676018332611210182483706054744991849627148134007922189551537977223137827137527134515294056686708914292232249271819406428627893776490418935931281618130940913745948792769078449070560795168605963040318100241093171624096571986567239121712935805672310254700436227372644086356606989526327476329650091948351987916310388809609116131626481730239231192301241499615253596261899033376203315846513098239189820460993533833459072770549468088941485867252117415413431792993118557562706421242119496188482970435170557148038503552840508388171287284653879967557164722855137248355148828324870089680013232179949334738620114404448433598811266336221342602174107606837916103528762146491176914928677232224694668092546555418340162049490351807900526620964916330680126871453688143371565565093646824040691259347592222338940232265040311928860841307200152433938280840794533825975779463230725550277887805276763485159783972181574556418379934613422594471001899780305841126539453080410063632861769799923478664881767935726038234088421105500331519627420727686265243901212645294512174711418638517247663128521569262914901398831776616003288751982702875751818201512343616543698633286413714845372898702077770776635754212731630083887899149066135897266198442941333592739318460753227798551088095975690672359783329459716790434573220339434006434319815607152778613103831741921890762247499911540297299940005463606115761931201913969475159373962882981727171208979934920578303664847596134031144852540847074749159889601421302987895560012705287730742158859298307038481179840242953414107983979462749046792638566731195035907103811719989096638389483719906178179221920341618765745647078312456787358229632569511442467272676931230316389195882258020463933714811819236602109687837150980121142880732832355244197182062523825900988758134344824923965662508457818847614661759764867106345324177719686284209964456120750260691420278866452241946476702018925512202219352623123842660525944904956572901896512341869058115898554288388110871966621478490353951756859055196628949999596695537335411138016060419448282173483262658598095399110589228241763189940010003909562498308168680932494280042959302477116567658842301949702499275889667673025444325803862134583435558741508334646617856911688824124682824638749334950366951272376859920817154514947069530333460741536243198141660844561563903894621662313935847357015132215907324826566982361570372315750653858509753758999393168785976895954825571788566264150523140171342389744888199942026707893908074894914801147070947876645190496741740256599448515498851415093225932012466280238341907025546696384831172344824185688404511789779882446004773954503474334672667222178302174624625332793426562869126034482440284705903958306346069382115695221913030802167039189740376192324254531586689356804454520564467374520388062197447291282459139293015997693509112399881948754399759587759978812859174678172891618012636602660314877551498301019712548725253105471803142576174206648324513893915137825108957737796548965686509764183176063206577107640131653815372026413786403533485134795969194946995757253381763354643450582440497720224601457377984345374479427724032774710209014701184999312153432914208990925490230509851392363412240977296936214458341227690230834475368549739136533883484862832182813285624487717467797632688836403897301057843950217799870929420537656001076153087373200858699094269921190254177945667277536313542687774918417512756661246505219500994804144028961833814701356867069513134564007734595953913319374820306591087397331209849666994264083059128368013487100152327014392152593015618322755165447405923068207546678827823532467411124288907826638753315748809513486077442082306311626647487223622492169559550749819564178894155185251084514980872391698185185339568300942656974951549785070545950983763347114014481583853585112837625958763223618166374554065195464015092433513530275571364999485359054237243825019080412594107448482716886529693787429060931265222489792307178596192046928617451052452027896625465475714230694266616167441008818112752735378439803255198400137566131585291648472285973613189725715220485101236648886271745788892838313547822918190242109345312434896702973648857689173019748701062589272769451901389291676428655965952676645173481432895973069859472769271300731202819018469123614632338082161016643098258316970052334793495377651205248519604481880412929513107644435503053820334227774582238202062333034603047826419357945336928012711050843130675537030519998527399545590976308831634329787849641855484236645675270802400431948146329909700547702909159786076221683076590651475366161280547182681511104657309045190032607151630601599139664779586561107041707279279274214619074395454564680271874522223599619242584020176612448059836607276818624987957521898760860712543202156118963579060732612251973198291725454833509366430119310884369905426075599535963508529785542036078977666842353321801775534263727664731774234632717598572591342190381132279584154413439391721374527130299021757265504900257475454441065144789656359316927118790769929896437285591014931470878486439790315994500586696825841026317836436255209321533689740548438572661848561621614209738237547080052811739996771363700564608058616440397608296773512059717995063001603457939791052978760430686937577813053037012254743249421828270747073338220451737943246183096177741580703541129647334369254675591439116260462220882542586878667971111584524351801731578470014053280067902074176365601901888031323332409276186965557639196748758431726413880267458681018261652906393518518452898387240066654634544712054594470474955285482133850546800773162040989616058344876496903679687731156576293645597643713631813460375535157760046468483731317614925065673845905474006851105566530972350816960835866665779898932516667542206684016977426649380306001827768145625686478260783873501913051986690184206704436914339819234767520329290247030501707000289822304183388182519708181961949125604971316568161192441633618240131325303232347788224242963955663844698587061001869216311022278738449565496125341791328845806834080398460581730908449957386502827845277560293688442403700935851583724515501312343484375040387769017403064153665186104481474619162827062583153014754022834539513378649496134090725677164762199785666875548405037908251295267801104267713459738884906073165289614192388396066303021527193005669641981205987987787694913909617193327250244420147044872414457183128724790636972186012959574826935343705385129028318360012906740037216204506818211525625730027242191938629127006862832056085383668520425436905323490699006009950927414800078984483172735173245625158601501139073276142868635177653975476498512527301164282553617062963302267209278303561040521544236500685854197016794978033288898269311295849704136831307620104234144768740794322398177835840394845709383580899819375219537600100963638860148654525023200782459431850117188829475349384321983115927871697523675174681381098007679173828371994433028469390299568207430448001993363477364461297942385737367695716060620248288120821194512124442197145983008120059227394136888840130768541883788711177305618430568956072847593409139087394100767525333125151737752444741771937049682454959973191899757723690247352047687565058607114012513483395957028765425539251941413958703504884809675157086392092692201640147329146614780729582477953474601415305343345330899412821374079357051196176071997835942330798450961962326861369469550934043173062815855470201728009872361508902055719590825580726884343184051031306342065774118056065295740725869318047226578288111255119437674090109075052212995408632773330707449661005944700429846279405841875064969719703800187459760854222192886899675104688810251889657987672280303904615642995566614125631355210140194254786374104295765454082712500951292730050298947239571648746981949613953993591928940589146393247381761272916331858202268357644825548222106785779778095966095073385193861862205023040860938949214419627870933735527003181985647452669133009273737691246012458712123443623650616794087580562858440924040329267161516416476826736741725862461044279814981239277328601348973444500355607948885036066607964743597984019386730413506174463223513889158290886014443461522233464847873007782758303877545057200643787103596543534290327613816925417710808464841537196789352769992485983248567603138760418805400165223947669555821807000314817877822223990201907571173872243486559324779754654358353432359295167630953212087308875708446073198728814907767433555803230729720295624592661899661533791178649133358515786236375087060354842547413303685875943915172935304908923895316477065195170886879583490760215469133629213110614555915460822728006628552489974945271228788658771452797749369348344304925255413493094975696624267473780434259789354862665322370186473161740212137115244916472253722494192763493854984469236099304015866043222748292514071520629197012475929003073638720102658114839904941331017710683147772968010987418729457267005513558745181976702647455234083235017046721253812571070603562790919218632083626330116453429943731363203730354972439598876593238092935794104159421871220862516589510581567311064454040499703331765297538766309646006721031336659116933820547429147209561823205242207512365009813875851644347959424783552808822734871758520419819508863408078227471713380150944366147426734202549744037125039303845114694365696282101628917737125393147602701107933859128497793803208368911331562373565796508810395479538303617651914031030723428729270266496442757661032539745508891058877231369342255095208194475216402634603187422946740266681023452978225276920979679998004886291744579147546020925213945665906090343083385130591708501382494744492399073346729930743521063492726219711337229905110709433527794113722938524357972687890618406365392008155145058364943143007544514454645806413051486149245363777038431558219677387021733957267630627577071596450246966339205384224335736186064435240882699323397367743883596606684056169417917607190864764942434366025039700566656611091136474219799858989974570684236781882892328032927011005624191301382169176865468226848851823921910752715215817181221178608640035972576772339721150705065451581477042777213562482952330403884493820743944681131477706363362641414071639626671971145743849787087132058331918638161898166559908566933814905018625149993196466758504164022892958859200110966384988203465445424019023998535800316552130723707269764934336763475805550081719245538140748738627029637168667577677708410415402494724911792291429032179996545371454436850746979983346592686082753301633085300288707156270631887105168589305356696729175684782321028188036946610814629878014421545643965636234204198457722627601307214212813259827702974196800682319250406671205382098596579336373891146778648621458950412418666490319272089065000211096799098074140816135449216253543960327307176532286450610163412463017803988681248788444763093224015526842051013627532650346468267340294720548779117378661352524584008198574648082437608642671933186165299709521969595556950745780244939720158436142508761373906933863607053788909907450450601505318464126095471376567897949547983122887230222505181400939070715677918537224885006559533872393796763813722360706322922683541370858959133804045712795725017919437705602345698870413606683348833063089689632831098162843404004138779845515924062137648986957217145238978826135383701926983529864247125175471300172892181509733154705111722423204959799377294105136863099454848680085801306074802616916231273042009063332872628236344768924874306632150202643563210918266228972633694078672122904689703193811333570290903679490996720364413728271951198408741532007681652042433285264019987010114787372059311325016366173921711553499580481785107959875016860578028057711543190302245993926469438308367771809636684854290594491936592560727004983276316883423630740700748074746225641781463954604892408724371278871271365050199903037895187214855220377315425200558339751446551934025481428742819236453332288684955714035504369436668206363681578553126891741791555968666296750936506544593853314117133810954762673464890973542622689701246790748116175666583456217936411491939528763493164689905099779373991741765520370729228357133615844754685909623755038552244404815048718772203164324114789141464625306645028997554949408793243901625491898958971906765724250313546732671462010696581387082086142336803852318475701858521822268300711879909537836551127992123672705498992612786540060412542871968372024960067281387256818336013223086818337925449870385602533262370491941119098644025064952987243705370485233278783372193752596147043666661744859602843905043319648513562508334336590992990578584549699983638483083827073401308366972351613919019821109886096924495818287618821285593216623769109172809379464287513717307383670980467181010321629087709684336859185107278339725789528540952121046385885851535617766233144081046277216499130914850080200408500446154084121860829814668696680738738476774480421512153321371224474159125443798464041883199511050151803198830383461531350864971857133939620737093985669747549289086462217181411401873020178093838118905784108230020410316084450448983309264654727987502738588474311182588624491654750468737004858146611809975501672350263982839833427491308277479413353717420037264681169205751060422789238258717136971596466959115405136183459479009620261872892728907055943907114648284518263462465605766330526716276048448017625890817957882265823352860660464143871561479946098312583701118264658113897416103220874586425000745324480099682409047082397570643691888164126477956565246842949314316780970151404379044736476251499314285521575889714483036722483401541679936402368244110476125715623715378778658259991787280712938968733910639465909218284621548414289623533196375026073176670353009552845317353204247868862764650129746534129563274431134222039010258009243098365284643819082779647389612168055310060675113524316289221719796676855464791713508335264681874529254406795196386809287953536618239953068327679646991539132435133723496642971789443291689003664926125907325599839970921351115450586500141726627701035953593409607056816695173448682005685524307909027661978899472056428873790602774790270827322433734438209709108619816162935744119349133358267902119162953565993417916373652263882754150242187626868339537555377502689974621452923585630982744264185845627477576116336430000501005945729150597525722703253509883726440980314633545492081985098484754958454897884959399703475382523488844268067193458636896429616072733209780563692301767838675045296881073217487425991158832999055458883091290523700721213643916973291432578382500193537991974981995682823076936914346115692001645993765383635902088043227957520089106867488783538159063047902319067367036058026427067397614667357427186593913523032686378466782916785829809049546174741625865250822461870989179627449174350099851769999155667603072706633632440512056483580570286207793668864129858954901893346459297354326321757344238721113839949939917947827620867223315998494322389148304545972879274607078330416196126577584772137885602206040311031620832001936541870390751498317609718212503885536615269117856068232505645259485947157763817191166485449112061036019822431267359022138804224773147727954545539670598867214188362639032917595176703221061133014204773575647774010685037472685451654170470131277819257618258727345541582116658970044889348129500157347269931881438623916859404256236144802496075611234417647598311540502141083998426247545163641141990952829753164373165104255438511425942138526649669942363915863231010900130759548087841102291935355573829355811122594478312443570769580967894179164719690002170633342675713197833074131692274217063508492448569689966150630076704286823403865377133080150500627266514500445847104828222195102619150700125094512727774699135468598633104167721288646209342964118548867913936481945322147634965485355313710546543891751570359071731096197468649786891612658813187299674524091755099265766914066533687218807598999332856089716859142621816261217686528445476353617829279522149347495511680667352964906807775976261085518038052038575995450316587197767166251155617143027780582157131293415298097432745289222955277285205014435968351424435897544751774788620707032746097336851156852020740134891158396970253883545932058628599912946667847955032214852355407627336402739365654214059275334387022529719452691611328618646185817839990927286281841134406628928585567120966022653548128726591286519299199015958440492452225978675090692307172497080043567390701887644361780523581984821116231648945068897235953010000577375318123295838229996842739745512008107334128191023260446108275212892096238375370880136743818025831347306847923439513924476771722203216970150763687370031526427372239701830078451799981583591215605005642684489728488437549010384074668475554397503553040737637857707665374102323011421210647681532105910987719901305893859282222761086355438862566836047062297966713994884037268710276498746990170961448040613330196131572825022671718768830623411945541460671217616898415748495161928829118937593149014146825455530120564431683333359523812419346186242197299669847878837252687536950205848643543318472739414572620193682275048517727706977744901973830589930960726885778373614819188538190444269672717712904881424157012272190957565057383777854482452858600720350343643223599429965215770759185563182729670338862578781424811123104897001367648017666272405504952794441135517185380699067600234663627124215722578484107245006184377025324294584502608944934688791388336813710291091916945547297334958910555564372396216793421882885411983832731697766937545360473151394297617022607023525232258315890728431572121918177685637431995429047054998081765960349048224705991699315348620532813544203267994401854359292260558010580799166128757781584219739310564436339231054333289321704311878718885447329786303066638561629249223857144116040394810654403953578694522018586827306572987028741431814523150659778110030479328405523657873613151354509634129068427238299994742487714897252567362218979999226310242452967904849211169816420916568358049105881158122375399856351026811477802024056344461329024629552077557837270861350292035475884757259269193673458666282037216982547357001394829852449023035635346661061968877908505292841742231185707885885079681779867264304321754429173198875755113477529587800915429293329153386702308309900748115765862065318099307533795870240899661107786953936192776568995458945708646017505101250524607568592169780227809720420525717347963725374007127637004102150481734970482196244859029127972327999833721029278064977164190687414319674333880149272614040916957068830908656185345445657679003494080555408110765184854494280692849155517059475599282154425473454463858299610179816265560356752252852102045691368311556393685481742366320541015791974387008398636384219654700727360976873114530374052280479782901825498534758642286376206781458685461239256927713700750245230967228906409752242429992762680677239189820400068334540766130456320881634461517219431391272538394044566238726714405577355135707301505424718115139564044500567607706448791389631467000372834222672556898836660953959060275768071305156742807122383659675765718593454382562142576384230368844603815113477481335940243484056135376842236949306437998899979327487864523032495366636527972433402701297858369752075701365296430586588957155846974048561903387378352403887610068941783285777426863206531822116941467541247825564017147051199488086587114857002223036985623334451431761887710758983907507908219704968950410354976821911301870347680937270468345830707625003979211992894940388651666179873532324603967602307771165316588043501629643020082877636204265604250044717002791652692942159353331746906280849203003573772985597554047781668643037119478892139576426879813806008117237450657169295355809474247067575606969834330347170706853813293785910719793342242224382882855219042514844395289563358229855089387105621739702073479036590092304359822113294714716434297969998157561371823696408331537596443722848085065985395790913153360619288861177430066274482870789002382270487481925635388094411066375111563840197482636272211558127180248586410595742230331370295448432922969962977081119931434512395233317669032844917905958061386399641178931015102848612149534205910132743915442825159114985978940959829249664080222121430893137796446846881387243474687421429532409205796871530243922586940368879855715688831563056289339768827001362137499295982493352103684631960419309759693132260785534871814287282134164096344392657172334538770693259587522662994272844241444430566559893384958989413338829567582123435026252555269313750503711258358397462322070594174434745066364313514772525839266111830856045213913804352456890446367191243480257366755355823261585585523232005722347161383601183372639402908534537562277022478661992024235614724364567817826024903852918086027997417613674734248607973078468822331827099905128769609689037957629563775981358979615783428126390601106912661911008238095944552488811958624192673456259244899751635537917559341794295713594912554747015249665272401114438790988523620193704621625091343431737727553224126454158379009411809962898485920286582394970123509536404691335989654984047986890106433798306205874861712627842174094116204768818267008643046139435770731593474413683859642377104140624393514082115163180994779164567662733369418339842546282023208106349305228163752160154758086757385283481039304242470083771398237609498179320299799301512838182989770088992462001840095390217901382547410093069921850155208884770673117399740459237543111427650799445283553128257571471291200616267821241451931715794829215772455053169459714657715887996098268849710021006398195401316731790931862989359003741662960284829264282436239551230073456964096932611889667581311938210794702439417131093299734612944622249041423035126729190295669403664229754212460075919371331965825804833532502491224039555788284401552536752321018356530888221321568549831843848943702673664188889966523726266888779581544090244786707535425576358270722286034689431051666715949133618222139427790219134588040037669903383846363475019244964725945955871605418060277996612458704301632383938228290608221539459134010546331084771483749976944783729692576066010307197987902709434187792608577289232656407349136556560773560505899283251267533272726312546149132717468678086884991236310215821467083459567857447344929069812552648068084649798741037460310970782821573155844672559263772108683554581543207914690908185119472582761775095499996560744353657604400975828471866012349580286067443192676222661116196489697330121242174687341239332847582222546714271121518276989711155971281302988096615605753029186234992853599202940415137805782544213777862331937618908537603970934246965351629965449701545638207265358076700116983030658827231047773945303706460806730432853587898027871232665388003120774194231681721781779944383874279472119362407542785780872118895976077713005991106721547317672871452199479367623300688114168083153052736018473119451645341482032820591242926395389306211425183887980552022570730579026795595835051698253438339133464920009046064886435451725780905367437730486536036692869655786428935180490544723895910704696591670987060420813002654907096259324875213069955734718021162926234573224921489472918377942877172673192133476913894857683400613761942004113009440403777347564407832866302328473128636648782828988419289692209202285819081830735731892713886287775937758703362912653214593981032608348636648108731503474103520840740689674436751312326613682158744548992956405050985548218033813649064050605593229743158823737279545095238086397509197641167101347933855656589969707761539108536627907298580593389775156260001600444858985911381430974881865460161035109638738969781411331789736377795202903596922607452079478065615848504629337470565053396796421794322379386703338220213824122147553595878797283149718528784066617870139503963110503518532208165385893274566003028335515405911278609714455818477328025139415611916695080903218182585544553020989861232614110420210015042864238166136135758189566113666833782287110391390307198096519940872549865059758513036002501463765219557868029056043525780713948559660716564328927316019902996419514358483596729243763098730532516223026900446602878656733485692536263187050274648253338350479122861709906760605338423159926561223578415841688254015842101515230510199787640624852157243293566335360750597837045901093512794926324943719327611384386205000045816408774853742086129370166843710166390783758141664178437311002900752912100809652117817003158857442164276613402234893415708445765999206558994933079993306782512733893356609913118912412593592251703861888227223773590350000956798652127038640644356762502515434435193801358399303361703162385354767475893281932635641477104919233349968533895021824769050705867333502408883474498424917681585368211261149171955114043320730349162851959881138047180352233791545455194129564979276620036392892280263317154475411836864736864436447637909721435488099019438914948760883179721685220247803281657601299256670873216963035637759259102688792782901309734146999490917705361746226579262018210602848234851106621321353249064022484373580664675246563296842081507728746658941100953084242972299847608623890989434268877768706358541228376630081221526288950191313344296451515145580157426409673721560962721112801860556606526770523619393892210056128314237118541115812706255731672124161319110106631495825914414696464807330782062464925435215406713147954108370858862043856720182116672738078020553347648068506492804801994742237365456985909425188119468736430540133240389642890457523941062289448792097980144921828375019007584303430678831490991657774580333258744980142682362482666161438763796301303686176481776855324558809612185921104715773343554045953318601693962931786550094125400369865814190683186770243520375085231887503024440040989054690486658909256190930553157754255355314947051079228040999998051993676297524065874853850622405986483634840052297933198877206668834387402723297147195175303635005720494888416304884675775922365611834640822505023074054647953681315066283753573876657583666322441937777734813255795083557964470900088350980474479435214689081828010571205152409025358288669059476858097571536505064499143810707162269856128354721018571006951268568116548256916892859494668620323027723207721104583380617223631722506085405442110982990858442193172691596236026266346089827843149800885749476757763031727292128574230746428020034682425946014563288799180083807090402726906445251983875391438160455193628059357321391241083852698112772428274105393144125176622499171687701278333679762305050457961547104254369474664132721226711309001896312093427085220676347309527233124940380222262494394487794536098141491432533584923563246383859105707925276738036240794302894292783146418424748330069062978378605223425555432655085163421839579998502141982372671580098873102278423232316724958644296505666169388376580744470115809638683775135030672195310106328532253321436080402045039214156913169367446172345063204468994379249604001983105616360083771273700588905259649226648739223691796943296202595159969184299044582355886067753699697161796218820824966445404861305391243325785159191608692919819814969191318230027247783435568825561417499085999178102430819824430844192533958255690193280613913422914126354243563702903702278836143812129405304925601039976111795586565592226642152977551813974108970878858038567638419115908261961746276728141320930667175694091313164402899096085640838891147692961216193214024752369080397392740702838530562160232242732097040203751577687756009733743012908602832130061194892249563476437571610374753925337840273403600835830518849604415689002651650818921950780537018588163689882898686363399000496188653995604105729127833917546463000821151123407556600927683796368544044521453986109593438071073994643519386408444540699689604303574109720560863889916460145901062580925628022887068960776096243723394748821419800007814161687432855387226409099968897908530630610307157416241693804033080158325035239848221008610371578086656724348737680639553719472312560873083765160981234779993080793638886864950558790308753997786836233893645654169456615439061025638015422358588561432557926027625220304166801194029280349553570919011017548191328766011571267116399495949022689664708421513913654882841817595788011165363430451832005145404458797581154895490791886339508632649306595851839406297771845862321916005406490204563904992438817402534066757417654620481314812688497423300480609712062160815872556797136175342106393133532066230491348899771913422316216266031226582603882637518622632146108951033883724679106112308835033586327873604761626728138286099381614224688881453090687752929663845669356709607629137986078593046636758945774137142606770074452015881030009248983345091199348313801313724464920308573496438530616207150235010824143260232616259982012118031185585799922365301113484775725001948909293911591537041431806820931946969624947653676126488102717076375731559604922494989901630622421416287254260342246626572660982292635069655296319427849695261014457706662093031368050557979388567507101898826510079929022491042297709600300955402331715685217786319968345725288704782640914839315559649149687226726099082714281384707124281086234408667353794828819008221105682496496025007671148945237222124250080593313798572925506550943700555190856930419430459244552282914182913341788200260015595569209591516891439992869560825615051230479999008768534119136650955068508242639463437320099804619304461461932150670308158053044529163836502834167044253676683486688578829125001832740841092161880266143408732799710321341269649422145858852927730792122696889476121013949186915715335739084936458536843810990525980107309254667469528332042704322177329876285978552615923770653409848622471595275469052773251414508453922049353716862906673757714744692379338516319276070078692634985130006771935520152531945225749462714802307411516868789674787112564700966784481725234361036947254690915168614859522005186550557876925182009214701936149627457221270606185862905851268416388075372969697679831882893554000976482319284441081592927273018487575217555922063527032914419842412496800059193146153829643453864092716497253362785437245282722485699813411339122647432440671452149312604375976540242871852891090313737465868916178662606644284076896408911935658956641549009916699358969695513614774771867359829965844107800851055877239817159436942845338831536587760329193825085255754712343749732186949583199252782628163269799448984587921000849041609919442273891986789635664914472334591184269809881479609775626650496619504967088608177109671384400404918310177139680845936950383683299135425887716240637575923619810299502127589870246672302641016010365030581498327927094806112982235722403652783223753146475056605357698144710065954659721896279659974011622629073648677246040250832947622646503883785283898769129322974802914907727123131378431934232770158992466556356428142699937775632510913861360334065535775947405549953129106174412566879365109266256924639634205026586768786914174202988479136248528986112839207687994751715279143525330942436452772999136795611644037036817853647964824346757470138228096369365802145233865282286314808996950255171688018064508307675117879084266027275928442590526049148472076430309566424062492643163187111665390781923191949785330783483111633091702404476317475908017229365939908628432771914882690444540425404753308655842432952809500641915522346001745612549457552386500172506953867417239860095632765714330063700898889318025442192993223727087185923955226181598764524412336078783162302883015454277606903318436522929740316234618770857043414618108406143711964497503332105200419395127390710784605471204072439430933744401443692535571080083342368814179945612100227738047144980442850223075856022223459562155550980260629917835844118033345579093321063054865095822079867614753123527872412512598998260455795992472956355443710690120096170388739440712600754127238042392873054540449598729206007504681210587496290345119028291124865490076929640562037544216822038696496695823074278185265284124926092514527901675322415185779428312514264402508660878783566187499435174486109815166157490631466884176427398942446452801518257630925171268269612212812242580966739522807305765308304465609063122757385916002706535279197271629429492566188707822239926800313876198092903006174684916829092774572363162470331083095665702042077208366462453749582878005931785905127317327632387856034943243559507291098322399487164937340781298833242014974900035709309289318843406031623065026001052777654575621128298615468878655190270210986301702578724520126120349446274069745354118769220005677888269495384804627050076557267283582145121009584915247637249176087832918997217923535279647246761163655164955690992447015385443133767154220910118542772325858551414387703735525329190877261754116842168749697656157096438286681210902892070559689121838526594413237216228335588822761880232342225411215470270767261311947987530816323816078241251787694691124625293797422965508004363850311523185215167422900906716808622847334041636758286687085794434535449677191354858567788370612412812745598408785728059015068883741027987912923798484604448650258338101301110086870538168036213853595664658980446813306095527897589403947857863227355265568712116950720019934359299175762404397073298281973953437146295220205427095961544259291893280523201130276375224654419567922131693024731946473283121457349143189342261005436573162511148771234935629370115353601353805090347069426450340225800964211200329687668244911583996030328762789009727114739647881276987861601686181792840776391019664529553019837530417518461987375212708778803537972527756704230326461317960822818605381077848416668777856250353377502370788806321615437301467457527189131204297112722382230979628091771902752028799124252298616357882207045644222294553520617908862589498247853312405097281870669216711243277021808375669294248960302066538071573510078629121308099984037362695007176507051336349538383496486690835153121916280582362539051310872474326310689760377503582704313561169065842109841515196883464489328942342400342849468264204118979301960856351751428284780862480525110917832623974861361075648845418502320306999582348608406660600473914991695070042235107952179053874592734126839627527085802798235447460201036650363125045364831204150145544253525329573541304210278084434432892946566485150403052774343637072427603524123499460441760522117906141114702383347189942208655783874749242873626026677632248471841402125125898308755405476381983851531908617420142326120208585884850062384949036984789262166468516971077822381177831614604771001707438006510887427109048808018027368064497090958067641389990737950630379005430177854008547272806556384953501185862210302758327410999228524269185963681065815866416823688051356309606385459405773009826155672256109350871039384003349207045493222195368034225263670158922235158961150998175251560617482242766029197572629962171025614765752471101590625546282473434553958240226928590708222183080572716958791600065225262681645692026975245491493814856788287780617849294484266195305543744392390475719835569621029117093190409883853103186745646119247953256095013851569727288301657807514441876702273422378997158818812294184137055797174974275723334115307378264856050067107204951233864421227583997331232326780058557857130653203863626793935517325113769394085458322596100365240275149892246476567802646863233036634767464474657773844847470957754212926234019122954996619839919640393481987126552244329169627533606102900768258676204443432845149614912690528299041407416063408952089987679762220129381507190927011466261303084184793576669717407354865044297132526205877993441725950441646958598705461664459867031546734101311250901423649896156519087651165412465789047719858249525954202153242980197060374836494884187444083667484877795757285549756210048419032383571920857993546172241181474584429327377713172725013343279970425342574331229859270094872536366366149912349946456036849592303288210732443932712475997172181271271314649377132518371679082114702112864961814455005730791208010713511050778534983294662450879747805769421003751058407631289085947371899551067839699209399705269867029748023954251411100468386827187935759569813282011859393480964976674569921831028656312587373700206425677610518361957506453654146394005677540049075142939598190744575463619617705084437184054059186260461929159143558529635381887282231370443368525627307732877222182797172172595674023419764865981137828589171074489686961924798790113600171940533141997913461941207116655998536347969322787574417244180956367701972984559117812677477038311494350217802294573020272595081959725018331990361709130461643785814811473125077499112919236725792321052110885506565691219739862889984179943919442310884012300799287433486761756638727211577962343560260893283037081608847224733641614772604074833609323153507226144401811333565325301015280783414490713878883819666035964074664872250895513322267251865369017978633319023551037746583634450876261760990706322058967971921630184819352843030371931333444402369675069615926798471218420664335718244185594298869644073741001074397042279944141199604030478925442671944279729171781613762607518152969739470838803446290513299272306828718504523264676795809257263599326856531644221143968564867175896242864897756274545567868910852781474787354485310591949911971375928316719197982651389741973656653371533372611772449729401349557969299441004325855647928051276163673610893277180752148045459000954395310408279436147126569966674321015522788060607998284688058136611487196303028538320714283523086641678906084236940295321948632603538828541916470263805457636091445314200232683010927176028729934295712869335100793518747932994735430672260847754775329818561141998401143790639019717892536911873297053970768860278807252838608294407033424457276540811616463376770170876074625981462914744007391489085126406964181000597626959612309143992472466639010714108653976684892150341059008139124391006873128106809557603392602330233525081888949110036696522054479320564817198550645574337462800854783365358540413938107844063147928204730399358427242403846184504086503331732476056939476197062409573178752955379715002177658718596470464354531269401936569295882267416539595780914112205892964519505011413010394587984606488174225367328581839234066453618604136718997869119850097930769713264071821490612326374370938933592540978114512751942743348405101749963371752639137415996896999762112062410477543714285621999607603036484783853114011317207718265418197355358927184374630907734834664749751128388354761787841565780912583366414206598814697561953815119100464574196362336206361130907524959204705818966682607345056332416505449014655524108944454886614539261119097317785529952584890317579476275052868361215058523199694522587932499314339717905721717546319684186909988622528902403886273422432902113419736903072526321939319216510594061666922717862329678907695811043034991951657432465244014539267240757118696479356451326624194141061310146385832184842752377199280119566564054986102316452619818297638534582272779065862013137275035519848051510477390749716156164927372934890730353926659244071223729593100474810526020688547810352468288329724724997291015335527897241560607430504300564566283056108125116498613149224129760750602607256563967410218558083970116607016724189038371604020795227197144215535478424117855522108486450578589186931260448264829201338259325983232224928070303414414551652567176953993104170014739164995297261866311355673075118165122657860191104692777296491683643308222875572562936994742430354433029232248096796183128518055591872602297055857566405727219389947851073678492539647861102226379368847649883786972882366735576376012453023606357103778955366295224413910188435999916412395594505556160959813873114006231106112082265928802828014476785910164593409901136970745978919405482332448234962225786396359842473144441290730877749123283569862598542352431698817267310133483852122358316726862132718834067047318782287229156219435555107361111161242345086543568506256191902644470467047153010303336683146100606483324660526939183612548494883522230613904281890511059789314523018598237177763673297001273497790212589366628431458077222098057319419051720654611413994161427292388018817103723596105984077968876000116297421985539446604133358574216720391765000138228264017733220509991477486522215598160517566373128737079696808791771045121472469354505336465683093288723882350707581004171743392578077049117847538450363195949131024258290082389170956289420302812033122542664043503022488054270708729445485233805536446570781024817487133668586481214226883952675729055121456052819618003282126727081555576225140248419815597016184741147989574105389610280975319550302706961722472964980644776054734941524779092519959842257004523336839665133429883016205233081723389802191789319108541602104716078119926889091882033855620620158697856846102705246991463533952647019120898442681013599775776510412971733079639346374584395601248608591135935501168328952292599257471274913713844174231624146429294992786532262105592696059139517662117938952078110871109215616783315996239501194614358818853757046332539918546770766504968804216269435694390222321566564132605443708660866888335291807322646166104763480686654617180420727394107331148688545084102164618324314297680988473732532784401086400679715319220547380847260791335703431385515838426795151790969232016037773771761387336369797477791628696729373787762856863144144712091970878107823714460961680442349537466671469983329285672911406577502271066088937995596233585751297516981565948858136147614002114932681334388721730818245856122562753538281816967328024560657337326938163036852159438006455069414663167992290138868181518845902006015249843064961994059512589269296991749597814496240802443289067492714793332885229754339147677471134471596296731801874647257455431874074736337654553016003154633235710159669094056362807802345203268009014727279591881945930352507780554908330265109063103935265681939216267797651450772206043565057942034051189538462540314396981398752452005010261037944173867008804894035182947404072919548582770874375021458309687652538717349622841657439815878116900547126357021277256199138413039654644707675079962068559783504369368628955524537965372144685382071137132012580041626810965681307472200654228193190283407053525580214527339751917742180705430693651760998884288047141898749793471079537043813161685594366300134099709854173894502670223467089693330875469236136636016322198424085700853090416538926535687054115624026884050339383762065750829420858146902677526558281902821808914032243556052638907460598106910457819399733511424163067777060314350705194687839157986214369644836287485288425430439166370529834586864020460234740835141872569318082918467479312789710223678656214603760649384142646287694217217427551526751981815753857747484861427188894897076620924662477282774615887270094054009716333539154718589060147479720087498953432517556565095586272721636689036192325928354718823330843071153348336212600917758108445340045486688227758844716151615675208820798818529171249356163910137455833542198164650358297772264478465161818556747780010297760058401897186504642517344339422442064479793216324383474221682382610593023169907720545261779987894601244733243336999078945326357854836007017480704903263813920888784851463944337550460101591516194813923581003243756499596137969772321145210950751568969512126393690393917514835329664525477523082640792785782504947182271416573097352343676151619588039640164164184822721513643224189125386698819678623112175143317845622356633412288551808382257791231170016191081732919581648730931781921528426529995571158483705634886519421522453122838672767315775714744491367701793995770591581406628288762422831918191472405183510483654155714899274990793770344444924096491964393269745764382022557536843763118068279669174214222984494298656317979909296450296519746754502567941495147298312608402938382267350788809425960776822628557127471557008616830614360144726030022390377779979356043572599647416348669293526315029277131001486371630331499809358502298554168340877143573053000130992642462505371800950446731746825234758090735303571175081524096389885978352024067793123361358454310343700558802426477848523112126537760635604724204781440591576537202798798910109393853788470102847642114761037537085632117475294279312694982304133318620924301781389810239951711203126763258419019844989933488833735080243340751199780194497299989940215895126863062929348915105549385101718068860675416901864389252936690352975668043059548457018707940591441722194190790634182637511969947655389169631636368718597627278152977700018011687753721602034848587582129498593728850503333703875248460206806212185045010830865677229477664006688505973683430453319270575279591567160525488187240549081214480743814789638887217168493229362355524017231465666165977143232320467505390339946908092549621100017506424500816285365936972677612658709696488681083442784648556723145729431881392608155674707107643359967078572646193052664986978916286558839559071622795854771082748794712632146417069365142047343496810895809067112509700508448871749797516589427984432928164718719833541303970284987712762272131678521074694741764084679051957780355426554084566802528065558430738569086177047592988493618351965043928103734039087684464026792175477528984027217613188675166381019520409281145987679842762463424835291624661909251781633877606075681050886329487695158772608207815215458280416743194362809871311216778667514930432297730223074003048424046014948810225668888679672384736140432189432217988941248450066276584893057374522194590330971209476112861534737555659782521865181489218314856977726937836191341499559457812561772550553896106448303321703903025192440804395748726322900248960844665503812913624701440226277920072380404335486914328760439700437995409064883263523246343326653284495032829969045026737814950473990164091964664112119510458105008808283991498142790244274357356069095337515643452269053282666425783925087849049626518879261402092340551838181669577061247216533819621923661296048266927447903897559456471874661805940289240177559963750451217343537139404007186781145105209858113053323580508557676876146745716387961553758207496438815955360075114026754549374072421345314714232418286882375410527129928908527366980487043635176277600252896539168758611222934241534109517837047333314849673290674782515444555819330625189895305314011577194983597850422414912780601796564463038089062552139613424521330292545587884178355895401668860822665082467550443910485169090709767833974914899361382401334939622009650491813646215519380841569374851195548898290467609297266636203584382099616531320575859705673014194272224889773809120023101310071991473630355732463410347314984004114091450856464880035684321434712509893064699090660416113552084421685253295460389012335366580067258070687728171336228228445758603523426426768304621252841498201985064682081501916466278728741112320904334184176520979399112040633514539069546189263510059808627854805048826422522529881264168459449616257281404823936070101604196476070170004157266472081446249302302808639884199161209732010374464684661776113814206712417819349563350485191758517792582043541597860719483749807633829665682324347821919672911716195395365483097376922226328711767666142571675904951957776333362788354086793267134277923252642986190013593131935492767737388647377037359537952238029501038387450394933532074314603574836028380772443218964612262437261070169183956744252770409539212916025447941140604095787279674151216492316352177318539366096575184083513460678171769506592283285289908140807738858509814218766593304710688102674915669584162490885018640593200851798778574381710910537565847420443306512485435119125494382509134249247825780134286007363658083682571225709411206027085076571585911799308653456632664168574530256071100194325353144596034576242390061200244240963974759241043919300945204070876104541827864182734874679388081100422860529473806011442713611487670269252845610135295550213811288157339114553414460353919002221565752294290904097324483486253492654437677107004835100475400654172760204003367060351467972886144212846070986537046500231700375800058017197007469432766872403463529232118956702372634802840536934034508713598683128742485574649498755313912376860393910671963976072008292533574382779301271588913300036953912516243946837234822173043977465032676535055402497831928134406305156688127581903921386857613909455016634992667076274199863769480933764719667776037496388583198961510745338092984766598247734142902298671202346671578792083669070801105480710116811714647840341874570025222050024848480261251896935115049242527285738665473083754540393215560856228316035913182438109287447694931543037083380748064053772917134191652279802507650161118911037582376844896854948216891977207387557590873084233321146489147396398880525472794836741785296356414185081463672973032015876617459778403683199335991220818175673532784802180675675204158581448021263697663472174790627846632666347662181916612306583010768163709657694731081738368715303889989615615233905700525324166334799106305819951382696865286281304609483050833980418596058706719697388619170002499471851356456704462361141885513604250794783696164862173231194074207673598222353845684757965657924941794760504164835489753032955263952238200648649245685354772076121176153741698608564491024609106118954243669344182324763006020679051605933858112418395045567353588502722450707406708631583578495023414074757840225271340791018747574010187206627416108370248201612430511628601990129841163756355711246688707708233404567809654704988438306650594954855304243127120573436816040737940866100730092659225477142191911979417886191505548279970016835675683205922535487698943787136654623811807679814027315444129881203089550733299271637987693707772493791603460702491887196592856400729284001801625630505881377580443295789310555462040995622888841034981208409880343001210291431244243748692507063050734022305300287557511436340740159122893937917515036228651934543341165681494161702232228069956757609188659664720606930806223709872114652303963557055076701941035332507307028343775495613291234901702101960418426902100304620092719504127508774319942971134481681878508557944981202412804504682275292069263622354611154343236888020547407222902228089476553401987678625973854907407842891493570087477341571532253202176282369619734614654170588953277998208788928498889353679988343760492772547913134605111568330923112039940183658228345926668389734887107347089108715799972041996818931918794033652039901476727382417691925681764310946863692535489065845616423790032647991328962104648213800770120792958130516404685769639134536404712859446817966401742678735128987036205823204697884957795614156692647538902139768259714441522971863820309900337325093540800922168021730407513339659718836697019459390568713569098597719056435480174866701954718848073984338118145315415078015995720508340508770426241206915995318384997893525289721339749019796281941838686293244067071932887225199552598983622676610381000163943115496367807256317331275838247827057606947446365590274997693173061352197712808048120839557077475841561039814992130152746860145977213913904466819860411962289884320124933770559339322899816770538040298634456019844234012601950077306492337195779312807144485197777615668645190353296596000204667786291250504454797326522684347586370937862237207493620393102263073418290815936796428837410197940903230924245225567313413064334829166716835935831901885417409060774161550768309835903362306720975967377315592388291318147469352541630552370152397503350674656931449780912115433091067572238604101011716459618140553586040540913636042973398869042132895996701880288303967933462092001730707372095256035181852048763129652961936896886927706152192582797166527748927054473641459897244099013933089398357769091187406166288917256236390520039074473955552718489818873792964661966391008112078319637993529302037377726060701972856957910117394042688871200921400311312436782550370638504620289376105197811701411244903935839472083370750850549805528564506085332243076348295060495816799391803335305393293464991781973672492811648924638299993906022339228522265799541064392085254566081934000141343720806484797876145193286942156747536254705781498395424164535550220616409372242104054264013360931367174202626340041333202142660738316866293660596750944582470843144138948833380602367825706885355874413494985459122281352427964963315093857989519703002731351959965293659605947064036409676833782616818438031432955519926833936540187457862404104655113315595952673642184804767653267649672006761426097017514723921955972035091474273543542048574120574129031066445137642816369473821565782022800108168451644185360424973579847568501198276028041444151602179947303727604143104097580361257946000270759507590918043052542367122054810126830238515166135661159907812525382424046671716640939621122168407840640865786785405035942902012919898615087143911548094046971903612674045044579265634090308858912435254709486289696784914529676719945097935454009591210294336019472615593077960248624170358375178706892824981734464420929636776569728072766320191469353997221776450754367118835186707987393773971530986326588522694659577792504182344304247989714022960380217882934910807704058338465448350112285033301969695459762895881754376597121460896620869900677655884982583709144959172027163517245936460244384689317360406284884413423233944583810047420386602868481534450212493772988434871908092331160846555575456886983871100165298147042162522321641928587808865220696455905251290804025198180636604262761606476050063900159899511993853018700128720755377384786355021990261165995069817025794503473685216776789787158290232048461977807931920791242192834808734556509795058971029152959108997634472494277284900248386285927135109041112757485898047558236497909861683428138193159491222550656897751730471582032569346372447023584353244384870433813841815829531719229433142393042032132989229583371242419268624388752131994589315717071960190183525882965636707013213714115638118688351480373799588148838401926620899085302139688157482242972521883604809228183991153691266911175643756208683360477214265787031315160819216136303954134059818665137170323035381756887486559388334014435256858668578487705276607662457422968320981653240832943018224684520390304363782324373646097659258849130398220900078854308336261731177914966209837868802121959880740370767038798956530946480632057946605277578405564472473329202645457699124474720840849860395837572627993131748354745399398264896165920868843895846518583070141968379784939330464220461397791797318402073825819353152044133061629397521987625887744445174099893300929481251239581719627247032906317998124758466385445842287076111394335103454884052168459379649741715149972358558258394421981892632092178136636865770270844668209278102178855370237774636531786958033079328098285177900444168534589259036315838316929901378895497990266205596421387058360540129588169796333457140327700628703578014696547330245249087589971501722046100341438104821720287144770424022720836981726080902504330457446636412149688162189480430540396251875186046394411952343994287871987145825448933387848368621856018381404013260018848751699010730652811467013859558367890155109360366959897507547869997061300164510376878356706960182496285369043210616622690620704432775623823099975496866900568237552492750666034784121607196643164871407929859414334534744306627835068073539387305122832603576833168408406315237337103209993440192190138923706745305443143238675653756969160530331046431785933994655182289075383729378470420075418074828612079785165172601697020082292107374498631737245412729085827156501788479488642288989007669208511298267972678883203635320610154872376538737498103736046674884627400901834976680787301122834637220367190485972202333585169481253832394059244183521897723817055448962588922782935788667435886432715367054684135535897486987181774981023371536842171200010588550520517852583351328704316491570441106789798990938748745851459787338930141931714516504158953946999095651966197729075451138900589988289830800043773418536760470448344972947235555321300391632371019902062800713219252957023584112817518347401900210948503813699504140286677457618209249543117622018074807534670017416948634353229283211042498671692306115919947334853322414801982636148284297526634189330987748036464618309609040833189864144661863261321007095019356682381724197431508379893096082910724213024075823530744382474179459907030794366105800506889350432044228707798694980730786360844565589545059214251954051785749823874169824448164317506393029834441238291069462200286358746155379873840992375410547492277056220495694465964931640774515351963138192410992554855788334131322588737437952228672263173465240568515878333095515006094364228626343920559362928743504057966106253664632870281777217255743852526288980245230158863517062405381163774934565073530237445264716508540780486316114386039447661258819211769141733808933644971362025690850818633639119277015282587288246502127858899454088946532652344831795597111887929534142589318161305715841845155675088376478394121448605938832546778836980223687311070167437944019341966046929837300652345601554956092326456314608076614895318763004219450517561293598666802995798532611261520076146752542646913578571213982045559195182883615361981575286116075175106362465017829142710150137594530325100386566478870461056857961705199571531140671273626860555510677622205232200840777007356420702295794382216261996726627948535928237864982824940144357992417682832259356929128782069680779990600340980149483169329676281856468196008167979529587532392785570405183973327960851679229301631994646661351664772736790028424220544461310110228035469456875468684717333019491220947356397200906963263727960748214283573891744333253789435130851194433675844817823208997011081722164862711382266110958945952445337095287604986322491718765945342620079726410263690419485412932346095453940883651498080713599931744980760269206202362820276439339292381722920787729541252482752420537981309986358059911426865697232932902781892655484752802954867390435799884384400459579185596968184416952968409244421087613180728286053485605209842409486906846989645771960416684921589336866839070522594194830112214862983091117771193857872965537453636031747964443035534302464026929068286581155473991041370102717225383479955034121255017454911724467150700331021312719156753169330102060272650913123611480375427337986165745824355375368520756875568145074250405779332570621845615200278434318950125043483373486013414316085459351293854941014583312524511276095036047924860021645177702414261001321284141585756102839869154231210151817923216108941430718039846367688479007998666416753658267091008865824119008721678877791163964087194992438375948803479136645514870541090768465137602605279047552040811437708186444795007695524512216416000162283993607358842193027353135705236286932354948582132417495886752784316698714563601793822595561654607316594786872139817534315374077584793873930323447713960526279056368033131672167779582627468270895094211564928749859558118678566427145330097789692736090505096647339346154210025706439546431778785309609182417363242878755044721822833389963862941146297056910565775371328152635227876264759968174909727755338875809824232779402726243599924239797942520285102548329467329556077554603389305604202840467061354390608776705597570761957377380544956018289750103200018407368800188673832258979793043349070239405761807186986158650209023313623454166870121876658608004176291943562770282364161545367353114787740824951458296800296801530654598418412282004499955275108605665974092318062965302117714532849337888569300243837855179465547527396074540312187248717585250706330297035668090475389209464910901267798715142185736748602938761448552207424073979869809610203075292213204000339380810647223731363662694413965382854613038868978002481238275008526587809979104976054036214970127269187466957300514710210829901116104859212414432900284257697759225117870294243014712931175928223037145800869865621217835821993225683810931058824883307511246113379832517465111501056158215441093928904006732123357241936465915736459086130161457759578189423394946634986965982827950970292295726643628100784011267601223579574015715078536488373213432435965641342751733100652516890510802491257084144115788344223662005015072293923706041614746215984309509535440827154325452339855379192688295318736301067826968980223488356823238488499659796765137749071101645369886136197071363641593927658718733794108132206327687464351366198482829006677849991436463904440345363910050515722601489968879572406438326059458515749046526234875798863017288904902407737876876987488020449213225847208810357893535194113400967857196002283599876129642488859008235157211410356995887998164474910160343020512363489695670668712013355907212562667008384853267450785125570175927135335845460374745865329619961048059430595711630128449053139829840359328673531384938867683711143418107606814205166206972318965713135010172829167368988025137668323748750303455293021389971018343130530332381881845155135095715757110298969428370108040332476610845535154662163933043480876245352297973871127430531241987602800901917353384735924441173575946972771500156650758343004060401879840156698202630427853514740294304326365252908640431405629571952137591627994664833060103422570448335851043005915148523026242405104498781339273903248427703004993773073069072651254995380065960541985228317143534557274587002779985893260824768106752262126127714331606049393203536691130468379176237047326859742386265587542959791528983084082029359645754917928652210375118081133888547530648418886641900250139340767487318670562257430804856999951493351697465063298661837642577211208895065860535011449006198045162431345670042880642696585234603327909695576453705524815280584273912604750693456021767352086887837072550770664579765806090717330236213259164754237157396079690226355792071233611840085936187845961202110290596348192787582217465172212710723219170275569869232933443779220669377794345199935790376877781469432853968540176019101980785627281654727103335536427480626040350506759228942907449743907522353404529918320159443835611721342032121064496099038260472198732243865614643945803712434740926346873413568227600968442618153071523993005086347591905034192728952289569171010996510900964013664795982344975816573846870372043011320572412039116967142833527192582522608052143635418647005943357780565109313293301670157220543664302906804508109838581404048263116095150323238177822875965447258248227959147017605494968754529191513904264731248900999828139747069124820672711552309383106598033030186486023274949439561060277837764922077006637333012276273654408535331376281832422848572966658365733400827272193163555805197098450571947035276316513263512775067555940415680595309560305746658338409509732905152173973858240775132110578586324911765158486288272414084950969831873531324019984139717698987819884054324031329654450033008924833594269670211517698481277206183460081708532085277204848000365382603027292760452689113907019972295393826598767050152235331155887244721185394589836207168828270791929112354165985485022157179489252754429498726230085948586845860391448766024906937479194165906363047277968970490804367025708456774652808131971299689980472189646986819067614843956624238418403265264756309332000866138790939582232492784936887185834666815489568392070182755319136606468756666239380654369226676116669345147033523488882042984430305568243852782282761435020477224839974093024582874659303483812738544251888828883676481430847636590249627387637290044899214547086919873692197666231207803607226280112620394372087136306292067874536464885717257855670599152902659104691580252964315553684664193507894703464424064059053580758782082056535039544767560879041643905328352523251115000099318951974056807139762184289763247691003725145788216494877329500613789325553796373332148589896021034088694557548478978100776652981366950800032093549455759677021885854459033707424275142785893609231471014347754178889136147488564956473216942848704533593944689729403498609821157249890418856717018997607168410900463080370090828101578411626326571688235347451268834690794199729710715808485072906085106473441027805081004198201522410887186645867088563872399013652880428198393201543304153363845728868930757303016522726987709311349056520388551553740686002214737920026634662148440574856089526820372658663794391446269811522620473836656917117853777207322512663572383582514038745157827946172731150361255175881826645673733050063330463304346005412440929133856682637986292343516773413008007541606576259508248925810007469724883025358972680587593942383215767147816805697013760049817761132590997247195363729742935605868586086602422009415429450096457829179365967813797941941086443088249472331629781578949004829245027614825565177214668945829061448218523250152061987525839392164775792129908096321195102348390388477280133759852662589921392011819309340494321599691924755857948834166742505040738158419312648901565117185799932438814825186477085673499151692995132738406760922445212441226705455743017541336300741069557992192491798388875496207496568133375925048075836190050532809842064039872974959454529761535787093529029052290094351896930341089987367815787819709754432814045885212975331680559625628138060770189534073672811628402180458603234123578037495992786541356126037459183268534566813200127153475875004044349244189979409116300030136156446110678721340806773411020646143530466652909185869411790330931776809532901182820027413689629926086570295356671096662041596443742882392614879221400564242892033467313495866240314003574351334201151630953356080098026270958446058546478839112958724729866309267785740136981851255943878955285806612243580565564323572927754434559442601233201303586092787369285217457089137768332045120535382871106529088643895595408627036064148099673495294413610996758371567921224904949628552006753002817902757924634633711411714904239532305881235586881729260440457033646844144875854229075442420789340173751907461552683888898473874725192420813996985940614343027561219027506729212151018727234072120372170945100487826762746648275231245030692521082996724491696321357524526088197199754501818500728044871326235524348628913243835535667899975311472862984416637829282013858359166417855789388332186617484872411433442623784516322977266229045350456721665613223997166781706272464981648801676272238498269807803216379620131334516811133168480580232566355975001029507426073039043850626692257233330919164407797625828600236783115547512742940723003953623765819311589470123466367669300195024885302801570882424321217690403195445500311647192066771152315115836113502334404754433342800952307014363925650606077001573212564987781045921263524749432354563064555667020852712795469560166195883483656150128401764986671101062795096796719079394764222857616194069914336936242661435347734414206527528569574544957614114103746506589757137348611017028059072565877701286594327593644561214347498111638531211286556492588098202447627121682877514434853011205522704212557476841267909324009655130287912236033008181623864535393101724745506438579818776116878484881006620635804132423747324788836695384796115020506580811781873954421206727599943192847967812912168906634452146639414746325087256024663263210768635267317540620222789205439290505508801596939896566224055965814538577593955052602385720819544628515220055492014138543933203324785258986851536936526905146004186456611473864282944130912238854102310027520635674210902469216394434256710792540462068443709561095222147845653151739803488304210013467349537799491074142212075547284667516746509117728120130514842884987640714759255425492908748958231163887940520297273020673361386687797885099132941004852980847119090811833157051129393503900473524497436391388343208352781595297938415277122553642795766231548966537394869584959925396812713219814207049718770805900136244175798936056683716377062138553824676521695262493673026254447719618065541057998443272464153786937057742511710083318224953623934464164623046537869607296905913476265678560724895982275091882179426333036978592894052089908216069645788835871314012473160881213834030321443059079896873922199867359339386451236220897588154612750162796743125729911625036541117861852236906433285750201419097695560856395582143949820159673650482831902409524962056171964755785753999997531735981006402536511782888564197849871795011323350434406076907856329870776016505253463924762235613534283090123440219335076344331886586035350744971831722019472011173524443749799812519432671743805340975213076596463133317004638353536446530674386751504508121646624302163573516811298304075301615244845715720123460654562990415475739215505036970205789842018939741496820112876059769212311170639229147886255974827789346799907133612696100928254042677639150521068176350195041107100242742599082928274520197232789835451690834929241884380654227849142829042100383046161804065141682607773482868710930218544064206838437568482475742968283159573510216066669846320399058452757259498544752143578842957261528534632903279371981903970121044711960973461635461589430053081316199808585689100166483339046933785636888324611626757601693810605544528439229244386334260070570390407592029212523447152687837705836400674456696685893255223768596166429172360362353991506379586183921322539849217517266787419126160367876072524729252149760165794506006157434130053661715050647388280700450524219259014257555633271390778540274994248402617882878938571724726190062311622600768752452674117441572820154551478123484230181849003071674267389754849910871682148572955724001972201677497419202982355912610748307048570147930170065101486219428957224849751836221875530652059842439520620365255245075156030779770835602192842815503382314870074166387288292581367317350014423044772075889471608299694396802072778553119384468904822493729932144878245815334850909288984260647640322716530607266042006808704754540288121010544406413009966384297608207469399179014958944430441088156519450694283441116641642852702957326305436445828907104022088518417821353565793920715308415367518409412873247442846282785372113076929078916768453409449756122803096648318168742960707378738416588419216484985027273591940437112950654924364016335212288291318729073150895945619126739942755551713600837936812695943493329683165366681903842918364526584743332782464221022611912524687067953021284157575204833119834893339562598644557991909229719887159538928999519196067411275558542680737059108380209834180408620054398538304891240642023310038415962436399815811957940715926110699870876318837879937629073165300145466206373482378258538426369499378775990936318927489091223817890764400484445765272652675064071312548532637502429729787971225484746807587217976733228341437269277426973738823628279935785259809831693779648995077807936426643635612520949641825674140076445983086169987271694191513579752587501162198077622288702324134033574660932255480474570897294432006811061612184596367659917608020086895778995990810670052214417331451216330705839808265114918000369918877778933694394465457891648836612162299423094057502339279280879659176591913166366457557156767307454483465656252342628688606944253668690067278115649504881422158260989803271961198002307221312940696500163358982539474335704814363943393341221972857786448486118758222712595365915351731234711558859389308770723792861674856314889090248903162386594983460542362968409299211738203807023484220324222948822967659676532083055045559558933314727349902739198955183039310472325062560720490835643172364902399839327787233734506393746441219123351312813882714446792211408476279517012872702415477071416574537411246935459755964823256181093994956016703007496114543980157976345227893322293948024638842120274014014923073778583463130826265380433649830727135136295060486172990640764384896047198569076469582604582567874309886901482487332199418114332086104681600921285376489958272078220933004864350089563044942988823643997078449794805478392060547911767452038496008054962056623704469021154279209041260127529381563762847512642805768216468706490600030218039506440453225164740558707388999490178981308327677839118854790178241008756408712115580880383287534496595972470020952828756473536936229459354933542196307627501402112516886396131276478528767095152276839000590326573615262803563775243118126151813126814357363664421828145665525913809642891604423828978384510496025424796664615757442869186691782002692261660216240339729189744727445653169584196084088753346814251703785971780338776050295300875644835710888421240844970667622772455978589988862487877135585121038217111754974885992070454351488917359993858890996905798976518938220429378054240011973297703592112307102513072813025083394656965598039528379931914784017086575103447901203412892512824151920822465977785745574986245198744063638569165783551927692287393028887771648021346685969863399528530826130878647218187196941203844325305862608821148974983170034372315175371242477245959509827330203132421975748257636951327936408318475465471913129540082667375323533780197231736754682479177343797922070488895695320442493536834399735992367660652612715682116824931244372093066278266295368441776413844660927601705488777877754949322662012954992673457170921268448789518209574077245858765144647329721006554273595783777196780877794593429622814638110131682218186279750423088135688712608285780592402752648871580385251111150621695376326488946225820837664217241668783006037066664088697068672440037812535327327145577466086334555657984882253081828342275039078824685343099697383778891092112654814168743374371013258607789418394721670644128594541991210518125028440170841306258374494119478669455411561874264658110207986033454581968952333816790887944531385561122828950236510103213676963512678397908266218765394874557507504225872379854708744358010704689052778378359483349716964792511083474930738816587530514266940737190205294775530025544251909516057995175531265592379959855907287363207902240644051649102722355653586319964698915991835653091233295284667893030946066163883977963340865950347253821389117057276496679632813748484005113294394393326222102744401529612020473155169816815987110009511415437860631508502580253839529330700148032011045223659701861861629034642549519936324018199184644245499387137783196855277739744932598276371641194510274774504237138434326680201393911513265037083516526751415162863202850931174318589880669510409589930159809554343948298722625992992692001553284576660582260350439763376093465284148067810883522137491408662415609887699208081417668956703471084062141816822766172514997065475912058122501255796472832855680691009345845402129208852755121611634819136161854835529471135679110724725515625708323726980661475356366279801043368070934139856003268870412381581689443761811158608880353303547281473122503530506054242350151233820362626049787130657709176058976178285310604092655459630672784547571300865681125252886875235580439661788661784912724044077092288075626778299195504487805134628633412125115343655239116136720073836697937072514928135860591255304876787196105327102273480471301667213698397745637040133077020458600601771735478774309365416163634765839043469467822893768549543729489032842131900850481514606043544766166645362789868076039913065940648899996772119642683235107927343884231153184761501846194963674742043659906642990334949106965754524122647717287217445097971228505576243120378620700715404128626829865674627989964282471611498454755613282892190121752797474637055318481480875696529020140633729914382957553580597513049393022535933312352093162343466454967761213036883873597680172627138953230990783275038101525481749832522026791225300271773699415738542605184838570408652633876159711618452160229096617270928676253713274480756262975621228658659871447937713495229785251041158844288062282653911514042056629833209350557261798402917737991561385284414937384332329701993358857823026415996477634600229924484278800576082968640217712861830036605064802250004335046965294905669267888625534911279458492343676487992612074319455414962437074437180029176181743237764076265890445158407767397513067115890238272826962503707303375862537193430691803506349337555161840546085600819463065687593262684116494572176501606252756301847019169249236155350927194642641717908805693593432469243038457987263693993199408488851620750982308089318287014716126138170012726840934431476240793574967579120093813835982034395768757241074818498394193001556334147474802630635240823696058302718940448155650222998807048933745404452180028686682844773411805033526275025807783569443367210780928204964386452129194467417256160786876332612403099454504210729674783024463765406422847791380785420959033991666135733664155241735593469082439872111193081251651799966536575009038468024255458660957897470691069104948400693065535994166900400590164003090487817162976600662178796739879544309448354996005126690125611281333235091862256868169821777738527660337462460364129508633172403188580604622080831772017692755999802546088802637196966949670328099575271356234731056708895534606949378529549370968605074231399790262135393468672809581412483196931508574912847755583617870112057703713836658651841112845072626512822556211410294638184190447616003847829549238183092726400563254394230769248726630724768305801485980930415247870336212992169221694610972948751638373211839052458166381467913789863336983356486695112624348776126763518607161390769626797795279644121621122449746592625033077602542002152001513631560421825862612968741675479167570988471693437189908048249001990869795233012652674718511817927479712898218385022170282026751849689065809784205916048886888267132799373268222622900742169403713069999398478254918035810162051273559283198745949952284275245102915132271013281586366828658009873663989890835174211095463581067821934478323325036049859842919238095371389279788953381489420621478332412920947465521472545624240995685952882871859225719449971563013436847524842373682758846156724599785150147843768121374054793860319291011152040135458434037644405709532780804514813153042065888240969434761855303353215208209942461574630955231705022746755031410385612975688272636100140372926113351024925765707597387634030389688014398767682440317849943571614659550071933702733331424220088921236069959141426096266109472110282971342774038452313662221479426016208177254292867003475415893510447912633781762461840973175009291772950025976378997687332773870862835183262922492808136251245897957083815701764400008887286168240929946328158576785241918523647931603821522568908830499828227590520038550863627401855353932405315367325488644675400355511572822941180608502426157220828266929070258818378082829115452547167769943334742502588899360020293030050732480889716678553763489820827196003781777435417770746440271278931891039702445303082365269292129690480171746622186285451305341807575219509569119398414991315442836175841229468606721256017976129603814434200813756768706232401451531649501569973613127433490746771888161478279243219591990268454953403989336474216093561186013114892721367257146502174571161626436761778187118841505143011396800166428828345689943353011850959924695770109107245614112360867145359266734991201607347035264472575579533119505683832647094880227537253328373056510116219411993384522407306618301369951280772113928164839998879096566320169324710708484467388106287407286364438680516901706929074724947130243641323417719490815768179274216707382832197444044986717031820296054531184045939095657393934071132413922840896701583162483937081430290651872288532710842274420636313375416316262662002548980244731677548175250856221654997505387462049787319405944703577214691285738064223929764445035010668384146518545824370389259948825756221372585955356536956004394739622139178975853248863471163005640993819626336823321029903070975733936660558347214109928678390414231779649709476160399491247906136706716711033343568131473887728540388131716534611167124918715499792172610237656192774395757784875510796780892334862040977791256024496622134243775706445896173610612148798293099144555531488613620321656675199703796578830756933328817973856889527025733972542556246447659775244427080992596955387739650653567246563294738688335333772518428512174963656057664813467502366070770749781990293448899528250709243209533371883260805452043323371807352941166380286804636210391154787673043430398168316192270174406893228685857872117054118635616842805140110746235957899043462460651464926265458496759318537293311035853225795791183388345959977309151514871308774166353092940821369279542822327202163741145497970367608766431650833127907869387393570459516335522483813399905514947286914689767855227914724292909123737085895384310859869503277475925500635441867908547636076478073771900334870229861343934117758026534102364701742846037638305795888682446592769814854996369324785563421516171936326761056014831049569058392915758198435058704104369206511085942301007351754327168763551996932981530745643129650777879635916800980731803369108410452781013798158829455084172879725075462348713084994082690374287527041694594496410861690876523965344504585743398139797991610333071076588190307635734182198547029403966300270157074806726792264788630944942751443469861232088683842033817022505718366582520373143428285207375912846633287578118185656352244518885367856666874132833921274479864350674909767777017862415115028580057870819813710883113746509283119183361098321730764806050742417223370938487168973572990264286226669522623499116716414776919656358770119300056275400981762027782742687345421495786883247292333261898763637707584848349572451830022971581106381194959382884154575507100193125188484593871962334328682930024704546041230991750406360969706640309290839282798016344183136254842690753282235369757022556611405759636049887548682020460356246540791828390283082856292732388411895714937809611888901103777694356162604857575809888473752335044632064939188861499257286590686660320403826118574338667622769545761613458261077376647799406290586752805061954414849532745150032774556601703117535723984142371807322159293062589165863205020243113875710038468731961926055682901566946823184280808834982726611102739643121540979567528716105323282842309889417065158210888332372986978512195647537383608857228273189748905055590265915623463197708039540285334418568457166906992803575844838940659665455180644187596518113849891863197678282758374272474766206577800695470164441912224384950038865294648283365357849540636944520663353101833842560083633798435027906314033208111268520950170488923327300541513336364693368409905649031163757904769732566533114039921368059741605510297987102933780953504901114490535600431131425907515904076518456273511317988936846921134489428912924507673879825247905059075300475953450088778003592963976350754405974613256725475999947952155835675125360648129004669010487944998423403839848255707847767772007104401864801889858160174411802521542348658645365088030506594987608100884976899535941306695714486176496370831385014776888723041575210131713592379215296376554066448622043675968537147848925252180390673279961499869108572382126551266849455455262039992469999824856176503550519240315013051997200496493259961024830492115709357003413967165734658719123308887086280364254243399029057852671471328261873018692725702574523002815448923977182401079864334653060862449827293926460417094893920333584077907290740665950136294688877533746162544061765498056287538087986413455146874881710742453834723362788516364768815993571133707066556601003262343721520664643026909940367877496318272851247657715671702123249425958614851621578056278933357280105412913037150059615401091457432103914020181258312327971212063243199460869621441829793413145759316605857596962165817264003775204640790476211484585516848941880679861882123678467907392512794520564374755291691143955587878679826025508287307980916823245382619638148905316668726332115483416512899014753273280162284766943889387420132076960290607198099714807262626173163665717808952196625437966546086918361423269528153270653823882604331054979385908889810537992908763137410059931480516688306317790864199201248205927477147916183454868116318688328610001917123081268051339988909320158792703804626978285640399650563622060835392610222098379961089273889104093078562704608854135597407573851501936201060539127937190073429667395939386638651604211452082153000198521632707628231069118919271506310696660960011372750764842962284253662347474946734853817861532845798676377232429089389874442731403427628769792229416033766785577984532285843850541893670227194003381381155525275905836992207785074114651385597425507597411823624461748746327888191224331777909811287294632607850133118810959797062148827228707685497621086927395598978780408707255522706009467288624855928845410623578144436986115757799783979767821433855997820090076564945199765838365431152810423725997187864281730375897383965735336367867666464757606104095754913854000018658889665454001981729846263989012669465239654875773479577303695051884552658131054903345414353716627357293540083568665239000369085476829436399795939707601898231212520099949115499748039868634136283130119634652308379129496275734381683825504025184858542884149517807469137195859455320478827325333855719057912912985711396075454323208582506350209525073316909577322796624924693966125442986394104058398485785365806786845201929935062850596352584527435105261120475993038922900229104659296076254349701238530586043114767730423025492250885600941462352960615715021803118104962964471204560133020129111293796437263169484819000070449383937845447890952919054239926754340163486118046460172459782971123752721982114447249625991067465892457655216803150141871180473591582294949466270073838526533041051764090699962633046117663503175558754724085788202759588226284654071055668544321282387339794436620957480660117977810284805495912994534884580208181905530776230661960972783068472668770233457749545146588128395604697221266885369677922175457499678418204056968924921764874220039927177346375874053067956917349452960951193168852395539554100909883379122250066367039331435268635723045261812996351559905066041098054425243950733974804942793451861696090320149695773001094277690419941624691414249325559478016948146448678257137836580978126199288388272299769563965954722649692071300395543630907061286022201184594123664557023476782753820370206721524140536634315248898539905101196512446984648251547822715617603999585654333633017537301323347553421973825357985069383579550618725867920252416401255575952956512163419016195247459800807592106164335858857907212879174318391836524599899315998065641707826326746179784326131418194534689363616313431750969703776693540981623213010990774077500592224447534181687976133979942129624698668963597112770092835788374332749651563170364150309634269451117137687030351219677838983512212014406797783776433393693854419069804169943571792476191866617436554354099575809589529155512412210549880204107168036726989057325355102608996502186338064387305373839250200525793788353130614819810863127353864671016252361357545909721905161064103351331222563757394860809936570056323799179097578716721137933153230070570128817956668040449637473442328043981015412660584423724798610018501692720836554218456789873476051839378532008887426962463924663891183651453353997158776005175557198251060412868745927358288635424200497174885860278994411829305987122274761298252921842084220961050356927270364232588856290529457270613105304730402832231973475719322751635681183588423056805887746351515668718496033248953837469410999203705687312947204728122322854975553131921010213636306716882871453003586344665848708005492723209745670208700509629604192829500547075776928760409032038415024212788237742484904054493129865421782538520818886381006492275959912385722284133499716686486341251801283504779845424974597464032060567238188349642427417234552058580351233659163314146927580300121052891985038018197964878059858641683725110728277618645764487170365425419727560037170353481988132823195447177718134432092101634144530409323539364126210966726949837281107358987261413742433571600630539786706198380057321968692739053674833594867106964409643495200412831505471807787914945265178579777416618866063836468847279484946559776865867452168391195677392000240361113001183931417311900601918979645271571265571617231989943209065369600722346298780043771832994636711249897094421165815555116228720930596301592268786519415934982520570342610711685763112322672569202683665258111750565125019413216666298886346215761621317738922229748296650632084982518941260701524668641503519980270649778363092397980389704768813923537723130607456176826884282350159472199858790769072645016703204020586709068649143404882850325764557671433612044797161376334638619453375044875181494703974833277089432309686217123741684487615938078701494363283097440190184707439334089083935990869215946316465612170697227690638363893562965372052356135799547796399641783966561224205917712438633095077813005035129865171024237615718495916418739113694243927998098795628159528830450976948121293128330509370952446762275285731283397406981159344285355181702908486381619874322588572941537346317897357898077830228251850291272330290838511989855150699348617162556313870485452094336150738960801783512480996016340727516945506069642127659432620053269031859134742344222890621062812451841646313777023874340015997757598302772016384127769847144594077596795372944039365136494611647759850968175603542680810230400949241716395453692107063486370400651433324678939231652925055233351332847034711881250262754138168513179708918313664197953765685296391197863863180782407966149415624889392766304540651509222669264510839447493171339562831503904474811422141566586506750432942507999684272598775546337401739430288427179706640337528962621595596711877047022984060924465704492685089779664668844834102990246022062085562302818386042349942048554103694827113004285118765377195404043215980018326834761624183473214932633326728315369375540076814321855543082749196652272837402190609677638787396966246219726476501062515863701981482934889083312088438391450146399697927310200658723423432936038432620173677999362087655548183246871912989599966147394162179974219050848693089729100037437462188520621915862029649598445541440550165004750706515240376569104957986669464379598333555511189986030985022301040475296573480167250283471469049407459225716688318920700874258368581478778746389668624070730233969459557498900806736597384920530868729836354881934403510708558153889195338853086839229367594004420248019203654963680088654664995696431820848914145109661175012734126834831689817859950890965616337730610285509835219103233891806973796995456387815236269431067920121355226942044317726408224264713814907260831604073719710679400142064271299166941276962899657553099615390101850602270262273993524221578403198421555955383059235218259795034044922859303118867635546754227260349645442166077904552790950510026487907149011332821754797328706295384295338572037857090663205442967277655232329314977964578015022113396419921537682705895061447283423421931550519177741544960129109942068438043548444854800051549039186892548882181574932740261497677186741020370016396428538726476832965208340905025028902896823806794299273584914727498904058285885611002188528155288422182329026918193460350255085850861694303236008853498136907754867488679870381002743960788085532053966375255786325807073857642764761600009690672637123423952716985553726557000339453899886347144130830579861822486075359199507305626651548667088987366433754688096434932915251909405825148254708875813411864413564050893456860843719710486699047588278446274318982781048708707397540975846397744856316628685963398841478104606708483581912542883706917693011321822248069866138243664917891472208635552305230064346335139030440257613703478305587243674966911788004490825995818929102401676468184619993579898515103231778391536452462330375817802660318705054115753824116203527993440919067276610005103373398428042842308872217897191716074061747456574708203232548390711569652078807608253871572825634338643003405640225855249281528257685587289677170027747262972846440467131249882849756310402403466589496099147169982505905522277150043762357978095361830425411406780861129697269858558641568016134510714382028760930283484357317090305355879891964842352155657519505972229883585768073597316303295684479543834056213203358992690914519884775828970215088310661725638220262820004287821627723076627360162674528469609601648955965076909372870134186262178172895835511737408193763150530583060952979307236889054209493979634620544286726258357860582115071843303106447215734207141623755205878237302457507735752521788523758829432906358744591697829985023174495763677349631638543933967981498433526415112261064660168165163397648503910956932616106291266331133156419051954439163523804567492170944832103796844974460047131484102530707655252296297987810995572380341998227980697558113709138924611874319048310649399544322441361860775143830625949557197189560156202999778929480678348594844890504964803371856620293321568117474459422522508922632375017545242333999861633871181872076356697165802229827776481596534935258605587792571767110336647589009275431347754663251566996296770175878627805612481784084822533809265544404728764515880658744755721366038557180700551791132900518340474080733135543323105608610840192625001532762500662992052365012988987405176561480493493714846161728564111002501225703429580481405805345680461733946322024149380647176869029757112571538287198470300084353204088296015372718276075709705372068476584142143740875377838283242411227614745174452937139066477515558706278544514365697296751219848415812056422370909667035485796216841768765003217220994228918181710879144276926901427835934238934388399386477122757838385632600854910548393655250399502841425348235747393268613461103187087079099517943463569355690221581184845754868965763143975307082346006279839479486758225496555317216912918808368041128786953927681320573938478068564047971513391277995612372345106584004415752743373292203321661126434027119084770613481369348365771466689848652588999759924549169333460290489944061747362296950897445883243298059377218318850328186030933889513035321644402283628520223224247530487470591549640932119601426285080367707348903682344477408680373573873006826139935598494406613284460651548720302275751493005206182844969312064637925867964164343478204015788228092575482466421202409113540468132661250431612291882447398907705137927225043377255255191095532524365487897787434967338668131908742027393015007510910673652970092750903972493938152176802779400131025180481736247887097663883582144435963985362148811135892547870661511215810848529529218210380182354938653743923961096712001835872714658713674415228019605420823618637531561378309190206896200220316247905403814208907189943664599900819092057759225783978850259403861588957437395845848215434145162583413811425590976841089970063608913631966622565776234469430616590848834031044918091990062385604020253897139488984930060256874535784549776657910502857299715193169008925985798458740703800629642262694564482922314106716917780162122187237825347866244703538827077573548105110894733191218551615748373887414711034411244231370528439967298324614889967737832210992937579765255113669553262987419746707668797373614248709739706105782901515926578870273675863216589892726899264230221740676019121962199631563362913388552846392223390743148197071585906594907888881138482612697553263134946906106462936780634565352590404802424010859153646124986666616711651948218107122236344404355718695308500820014692108215655219426607352433764352908700816210548434981596981475095737147781228563400492039810562956963968058452473246997698023546292709084024916743279679001444809148175250306218934373098692786083854169116537846207856894759655544908023148622034118165609681867126595889961067582593057260059817635998219850598241031080462316089547324300917208708002224845487358267326781625905315552119164997014058538137507778703233038232238461783106993663493277183994711336989840358163823091301463123191623067291060808628332859303823000195574554474830726498554564020428017323195980881907250887918458275616620658949971522556245394076060618234343193615701810120494082400334793162627105331860929397545038408084391122424940567987088615785866836128404659805537291571158981391456891461337749491620324677615419749731104522905954816118564557686325647933018029311470591520216232233360863179375337292852094182177315995125050608480908739116124613353366119775565448217010696493537711414717311216516520772834543641894961846366790631035164550051353406067759702966077717141468603224949661361861622041014119764827497515031272023532105941080796924280416082247784676213858258875735403561977492601925014346445720055080477256671738050521239466379102022919177906703618555732624929974628666206441705223856208289790278021757374956453212292723236914342818735621366483756372027865647020039770027108509376674432517422852121105558699584790115957801147397473558568242777867885037708583249943638994988631087498918107125982122260148391933127550690807617572301625969139133086909920310605889176111332795507631611672714463447298529444211888967979986150375837452230955244307201159970250869063647899390136728188227751089157077162869977670844717701468786717158195027266734012013856563831754999286801649403393376665406650355374566295628034043878025110634116428835909455605593100164942160543813031296638994354316779104462185304174488947283197279429566727538324877875750481734791643467982618965940637268695095016144540090156303365634782366837081943758973986620348773379794262092948993132190400681971943046886057406390513036029409138460586357568686132539449219730504895374544501331480551082527021940256237696506096806478398007586520453245874113527833054972485656185413658641978433222287353361322330482794100081253858114355084017128255448999002805464746379894035553209169091849526580703615579424507840827157985108278070910102226585960922627765152986835491700912811238061684176531513484897217564048140197192010129164748931034466798904906357807121659335623382982685791137851332455487481607944320601650676377920679112791898485988617800557311507560542924012455859312973826353206120924949166546277366870660510814929189271080350512071686488998148201221423723271069473350791718059960549407382788949362956585261917012699836146540995362915297396893075476619675601497373239940703859327262813228234478472984852116715986013693349368722234123081639852245077215054844079490835055400666537904946429171179224865010002849119592985763549738050310597558952052338642602539944397435782488482340249022972979197403315511220491850038915166466278374047825022934892310082813742669682169987508769880566227666687338105708663513234357934123083602367674771148366197244685109999812308265235389466419636117554971150701219725240497969261343320895302078745095533050887859108543673729270875406933572188283528598064382760216022605936129713867077270270967375008674188317467570828770596267254168921305786206294800238702265450512834898675965930330259494919833199010623851005605832484865455953079138498491006095700154896313015126795450607927568635130357794785430861786006404388050667244200274189963163922042684722213411447335244365734318593228027053149879386066089496840743351576729605523586522027622220990062423699316056324351844952689682320275243584413515428806526246819463797359747319194637719596029138135823928967467892639711361451864862289848882166187327686631118805705566404519800365649578095382242935980449293674407374231877357071431067258562590887571475576429952754267900350205222899967170434505682524777845152385451802503355263260175202215331172478530013641954132038681121896464127328502032218911821884959142288476003933836691580610285879662194097920602534760768006485280884569224513359335578413439324901654440767883197156101453169793341518875117643700054684394956606213190343987233414923664805446808240963775452417791670602111369936838447882950918391929120490139018652089585346671483486917608590376986650115956249380251368118385168224978878877394939830408439565153854419847827340578350362869480391127465449653335192423537346216460184573223430269201568059217266245140104990247699367317759772325759118228052570167506862210265741632255881874261968587553224578564435631233363770684193133189862931226620040136392294349239819966991354398281303257282140780855099310765844051243973038685340787382691613119485968898740383875395929574521592171349293054440532030560618619328501278492305414516309618919819881451703203921055567270032720594601366049380355362286257891209426444195847884979577570739313310377612926659608622909094069551783583491433491487431137224206016551161294812807392725970744931075061243887515362098379996184681897416315147426053444466299160298076238196345387460835936967201575020843469748421627699138288253142714221844503096353952386269532663361806383756377313425086778601111507720883080016421286847181287265284687814522610341842641154256830296832845299563866057711970760080648516444390775896888144499549897033101282676296798260259297097444751358386761822204296972483313157391709786508631108432951663224905992061536136346602913208935819123018423055413940232643257564679464597949424282289931266602940347353305158415238356826657926310769119557106866486531312204271198275354906042316106182931625993806125777470056999494627026132421564846611651439924869454513360280855049415348296632792285127565796741811301269438156492832000593787233585919588720808774248170624339502749110673985314342604929556356948222282103105330460697894659836931958371803458062809412026093479198276330633021869464381427982413488910977868656597254496306331481369156522941816253837175516300714410669043039097874380834239215413741473683485215035652356468003526377272042049879372140091509205725791452584222760670998734067221439779818966914583921960859870025534031742309724336228819750379007091621213105823991570195770852790315280475938686611817206591492281802037952742504906718413066648024651379269492988744669352127760846520052435068536163772556131394739919351713105484925149647533765333820273666478517622985410888749168821450031814120273852658897926983875381319052999546634305099258618268749475293164495636302976195891447842904133868640484237947169093595187666869334934264997715003719094965698164577502634077581571960872066599536727658930530407779579675142277214336367432126344141164184179911520599054587771626880870049226295375117688526990123455431165671428130956949909460316563197483289395836071489115103495642735875803527427032565337801209016299796683118386918128416943958605265124983507971666653980474237450909650155136729079928610448415928207117661108458419625843536654002108746081752243761023056728049511131788725120498540019377634137385839413945259911562415483261581036047486065232467111543113478297173556687310097040656800921275403351496338065368688893017207944982983856998891047464075374883574513096124465292606949231155362694166469170698114725508060728096180695538760277915977303228044668914789676550640562457487975070223354806671932258777847889631378890994582352361713105664804900616495482457238029521421568965916024659405035528666176595122666740290504166882528047698031117215282292483299731897080195014068600451004917351416805951483622193530751045219350592127758252515602488015465415514851368575602005011747262938942591361614564550715215639302723696271986530627297217246376607760151231785072198718768947739860508421176651763264088667129791202735846237099413070371250986092484851740157397275580042817903418948523210546780582545198904619775692730163562143507136660084029384729735771330170681366226288271955463335679486316830622013794591190532197307404161723996169094881162884215182597868503500366152642730519999339515975285853757764836016972965088726783935008114660802241789708988942032954585338789409330827575829014621547605670621122928222720231157733968296074740568813825919999768624265129569098387524911298511903856677320470875567813695318298077249819605950757433544400800736357639297984210964658665959399688973640600873986136146969480876605571659965178295097595869158763942855252030715347064074274658940383569761002906444521315698791608921173430182418729175476148125694430279114473145253930935728638983936845497697322318860400484658847850392213321744327410892573302359396096960293076946314096081155224188105965126846493982324284786810339101127966144980718253714815718387614015860687492610413643690917346694610559991341706839801638939560395523073675669453345248757872648736907838838699849484240375207122608599431408229484888602916874259926733904802620710704205423307454625053751491306045756756886850980322637802653859162396028728646197385973117767056543450354670577604307512781004412392923779589564457290141309093082887533815580863968941501540308902426096828513494681439648687686673274869157876918818276662616429758967550210200695883128389884315538851641587999703154416516287465477318951547429652295769708575095601520071608026443518698809026779808255174537373481712999714438421509241521428494613722369867426654833596707916900088675300661930109098345088081693187070723493828973026803624521014492598163875207268805577563152503373009626984427015073917170729253824598611351146367824494050395857527024811419110951574566664509047188772416843387066521957605991151527761078952173960630633359567718579495478489069508610826881856402957419640397152297590034239828772517339914916842826426521346520444914429955140379318098481359221625945267515825570150031075464510396447403890737878205281876854541536847733712339585387184595828016439605454661398311685776434908953253317526929287730943744411460407105488967864049039213980124264603846634795316402846694285040629240472682180054938678194780720765037587106409080251870294811964028756614039527498683275428588756617268805499124093216347268658228507587143465875136099736231372185565475817277490529267225793508871286992786250832540534925415256645528509342252342724857942469127568509214890040807375148543947708607288860944419051469506541285284588306917959460198364202530401280594851209552320425836448215348053714134598102787431615794673705580949103870939005853630241650244392430216158774268878322160743530840428210601476711682230701610508616382252354782004110408353403445287757912959389671781951778661678341587811731572875363491940572907705866040438960735633965299752629158050429607785403403341173326499317530065866539184672716775651893802662509934665405785787305189468511702004002494357601148629563741817903782743889469197412713021442814117175900299830551705326861379772131788779182832955315621793316248225959775729696303034580260328207912597149441455326670233800438567096738626446777987393729555672791246484223701719459515931846411454687844978935469751238420557754310266047637630090100906971482512507121965904446167677254901327187433083888543913343200729669004526489529855861170799645673257607922208232735783515469772795672277956134649807382713433251494178894224429886294370624159219542516545403295176662406448818767885042542158936399168592074826349577939612009024311783689391899680241717059406331053079340906154896799935693572384681425709263125654249696758005851226708434621248750670117862444566698931817815947601897216420246060519637606055682645823806226259935185364428117076277697618519896375067955696945448717523349230945919349983878813048740331045072799038403329495195886324552536810392222816586871674786897441703209908162930331877037157842730913717871117787600580703839851279850520006547434011531871678131093984264563157005222988213272616183431099868518755448143067649510345706885306950865220570038101925388659572172259816441570266979495257562565149188117477652682247043453999231998316565866706985828502183319995755232260193387620685082490755802463978545733017257273624766876139753186487148035171751873143254821829769892843157867665407075866415409094114290121368773519808259389561670768695321613686811439839208937392141640809900771267409411946637495448395121000111189847006300876277589182747023428668270986209542374689952330601561325809965221725031455916232400029490399119225471573999669562165019322578031586961518048309883949652954006235994162534496184446910332471708418521745616422423984240558436177835632071336465904880324364858192300940578083455851944153364868401623010768235760205977001753897062045072661660915560355123920506106055416153147453387829895310652419766452855808467701859318075850715996329296508754750364930962620792020352595430616826203193749666142706653589075731354689298682761640361613069208003296721588463167134156655724546729942307886670711226839538716219101458817284487034883671672010055242645326134046118485404922755044262790607411731785281064556460629829236640602013443583769033570316386720546117685959348680456177673422627682633174763267068658544413413680528681141017177790792172783290269784782279404169527208460873969964065884095909786781300250901001361069534873175645320316041903233953321677071607160442333147479311210321408876522441603384631447759035441452812364276001818503343999822786424660155677343683809610498244872454000703110755354314128569156461677498979614270011423091364096515554174377631856105651939486467683658035173691731984061317025273059424920339178933732422377773630184457323002318651076279487561383240692948884220026647589950704348794994663287055815804570717066528397098662020282562297148697219056962138350595138184591573368055402443249907228179973634449770067822313150512561210459072894700121454634265961487210316019825690352426192396593550889277985935965655413212018864053252092647934529546655704876800045415390632720707666486065225970204299177879831593650293244392364678023894645832098476951395719640516899993593016796016491467204839602504420672243246247957747491824431763126288272131695025239442324161293966447131589259683793460277093163420278554079886229938470985449922988798168144085116745739138439222976523411522688886174195248836742540875107227768375476772193405505900021637363414927948405602627265579890899064221068561325069349675463750699651019976829059131673157916096400989557896121372602939209794180034475445489257324584947610959433075910820306109569265054542464874069288218349611156098364062430225055234832319393046647220190341058364887700764276019847926662731916974409535978392967869470914420583523133424154976114961057691748237690483329872366714578120886528001195855117325792174895170539135267723714554017156914327501109485423451566290653023360453130243331358894945745610192614076013429340477266679895538888007889344780101083656542028681859771654902547946472220398496161227575156557034568734216865296815091529403875119224539667479254502531440820255538218613867448239772920091111761722009620902655733133699101474570172524844368000020139400576275919025334415145206425106855211877674884242313521914399481839373314832516201695068916685373235026604336515399414658620578730424901373538415897357773572985884856786590676227589628766720242159091684019153749929828085499057266119485173484032457034616506782689966771687462281635769430594259387255714936210322987239158759391633153778635385739972807751918957136508018766210093195453066010193809418012629687374551490497487542355182556942758566198828666731047759991762965449152626590007029214978588744912519806433612602263816723540800332131324848504082371575158709294420412435620129239361847962992629715461756410076201291873880981124481598413821969259071409149834146152579984794593570806040684363927796984554575787810102044393251182855060047608224727777003166303549227632765560189128470887636339492779792864483529136298128865100064521935067031734813207927550511634598453068848735095631335053461126229761104469790394265238541013412633927256848726618508618249626774849517238928030189684226513882409453007032130168391372452926835732354511719254159758178904000839308491749647795395771523931656914119586180828020559651548312592693225617616005483882663336381689977821347644121232396777088311710491960703402236986558502546120837419694814658135736164975443238534014310043325142327513703369909263546222310320909380348533366752510071716712616393629980298147890806561437548786966670006986011973847611611927272307095997651445776127167124436740530888573137422122823441521456220356310847227345606729276832789509906097723342385521920160029212863951559269332905770688913069342420402366167248551333143550666262610992051544810535087222663582762979353482591422877507857853435615019606373947354583472917905295778148943419591437064667929243965311426827867018773538769153222671618188344526915618490456382556248447849382604599608733427088958053361209023205970719749510475787378989302686506171081858341497238097464354725650918328644606662601613303304608269154408920180847769467336057619393887278737402791194332988503088325493678766706518730620745292320683717519659342351187761319201647341685036384774834048877107719357955726312811197341205308769524209625937381478656648146761362972695525117510027220343984223712734787332845385259396907002262384280601222074272604229776443211561966665435969119421901753035239656561769225628557209441254266900462695885975084114493804929208016362146795945553319441407552700057474324670854362736097736732992752709832849742272246201365625922861187378969609820162198372599113475000447381111141164486272155446565114680524852366511695812026477940199544787835939596500939039974672178158998626406210237022955540093516566291093680622042298049908518293907408046214061479687581595134139323322633407540703262370786079869110306473636466163993235525030547206489421638118554906070271160636642509196911723440584135335424016054615071343332952859441735635522214185780809580694359775422372194578192000157919880022776637422807679431067189593870006257059628823916019858219235113044252204539258027038852680053522933551847982247968233477393226223177947425071131364552463953581641218203887186856375807180872371076714970314472660009636950696716073982941118954844803473709583067757289067975223497205323750081485903338565533417049432318141993085201210185407802623014716321315895995755151200135095530844438227613848084984771486452515554372182672869356726614593335820718561362638087477811733588535538744541002351279498965557438961424430457074666820022405720951868670246673188515597764615277727685714964041454860815573467909814634200519716095242995983779339976878640790544917185094646063578273003525476159344878436406992315506732737562917017853384156965703515170551671987950082424906251253362132906101246813417910564206729678472905530316780871740319664039348013917329792822057597387791473309441545427856613261478422600239425518181467929781616812642121521713276534792262797593148184246037017386853220526362879083818481048527609390333800689288878432334261725502869676644821116751711774359977560811228925819472773078282636300815090101420039849630723314369856894274306381706614096236431099436430733679587147164373479169369662693060579022689754202689093559836383275050527201582694669641020117977343639251159063279030657289407059335441529212203167660055325139548846298051120839170644305943736640618796306169023498143450331775320607283752802900371351605878094957572230471821569035508979902905486851721943583023426432973517814358711973985827456043731938053896631095377960689792701290532340567795957351622393907637258739231845130287516661074188523589663298098891029325747037363031369099190869619809963513428063217279120930258765085858587409152410572957658986266191171842762572454059339100454896788904704569652084480124335424306874481164768046591671742122755678859265301422098575110608876532790297497164349443122923195989462076617739391694748250824960432337597127799048692765091085510175534233688339929380058694484863428209387746245143416040613983993710102755036795955448814966063925958970378679259856621667730720676844447058418093553439360648281354508502222014985475823203036968838102554625083270634836505522969224928019491320842968212528037433016928684148850830048964714660906546078352525435629241898232311141212380714118696918892662506539736357606446263120666539907574276154429613740089215131004317711320370880625873152581785978275895278514345092386056927742479591096954259532406305436529109983592797593866840826252736822588441143422193591456486261639053520145589025454868105452646112768189532439605726382830158495153040738194256557230289154085694094612783286587480244687837187967900539782141425542559605530971701958797924960187522340128170153390168305673093598751927116361033939245467903060124097178287269087286139806051972422377623585381222211082192831251147475001383246127664121634450743240672117807827490547936713174652184374806022410064981066184989480717419662340535989725649131288129625256577248386683378355694377892396581054630074164646021747713342363265055005001322777038526993524183402647400830189295206834735279109473726025518974400583573763013159777480090958748361140613244725018947082698010014321895723054403653575522368482477233287863237996840298940233344974395042098754342620493722040904985704881010618070772908340421922576948784890897396819540024847772702520033042294164515886751429106717984696992473610757449037246774553307778982161353103576522426341352984300630371290473493940449559915648854934956404422709746323602584057001353448488671526637698048621806722451382488892641741425283194462362331631973678155460487030345260916355757281722555956593638520983687835004795746955680244909696982100734197906198965294428949635361820528333862596028011388798174409090029590584807296522690512687609530494055566627625385082227769373336169182220757410649330773434280689261434422894906096598881475518340382246663244198990089509590395661234859648555575626334297296918748141867074060788841358339137052519454034793830713264386320575235040023193947746582281020970685972071304534335541494423980074437409035454440945069911328903921142996920537987407991112518925040002980500204030329474395358082235343778240044422692484253978107257785726170615043497120851151042750217131773124013472277691383316763321816148726379242782698836817484820997513528703586263556700641590038267401383499157624442636738641579442292132335063133112667997699366398811094737125588077823381651173417887844195603956309904797337025792161923777090482773290522309681477754780387075838382979093831877196871106953062570786484621398008080987588285441232693327372361561255566519970651073065352847311626623862293734381119781724477344793848761222575747107161190956013721027740973246187053733863240690624305742957964547421498270003146588738195610923180576609125888411708774693046643090129543222635331485505511306596682056461402419047140751915088200635843361091572757099855249009884980015986718825103132729698813874417777062166153986202833633912884000192927167038961312189826363047909321095585524763364914884662787923685483593885628243461496484949759343082266726915097446576048874865270375467692796644806497022891570644846193128726090299020773753795811595469635586741245499922714478254009953957177199397543257667946589240111370679619095325687453291709282121175731627864762997378705962630013753989703714378133871062257933981511242208469559941360172045691610858437197037452298378019402908704568592980785088946418331475779151396170066757659155656276296054361701333636015543129583173214697346225610534790346190467370999042354488766241019702832802159579605662779533476705232586694618069723648117088654356722667561439551823188844851749012045429665478989866896106750798633062089909343128652973193002509241611050474193027356347977060380568696276290107511772358783948094136327848124848555982092794457469955453167650158486528692047032192131616332917556573000517638236351957889959520600637686353775552772780493236665968504032229926449333153154183158167913223829798070723158782357233667113593435507168776178404270472576207242750819250512732510647880816846691091473283438623635051348558950250312757222794056220364310582373960856495809088400219468833484228111714209146911907641297987493139456670823877090627726288582525319983239070161112162617017339453300492855684955798281722437396284798250268516112496686126636703702924127265343112572075606993381817319316055771358265126723326448323929278467646479858455258491090941270727183129284315781816127932865516620658089270413562716475735470973143172147742885050184915796119635093217201798353901220013528151861589227433390742347892932520547156742037256317596862203644659520434044423195114108499669095468369179182639367418074426578089504618788489388268437766365135968541791199975811988612630545885192076624997048502343211658312447347129074029552628736920948144549350193346713315558402809362690568086516948925062630895893367186152709140289870112457748842427086652863307213466683874012617952644246380313614421273038213314928985717257497691976467959524987729730266689995076629006085110950443717519227205322286386675793837316778640284307027338090198482477632470421680594673200403338917064366004954825603199631920321140053749205356141623576419327549854413747869970709248560443114735316503390572030938136118359730336243969586802906145547312447721993486610299648901251687631096761485638759743235432388042331335621138089337245209750010086845731405266464993523418505359357837268578803959328035771665490116650186784522778326985637175774583723197815463169918120035506061064401037645152403758397420541583982073835760204949857001144453672788791731129762014026985478911698189035176361971182954719202203675758064517454862634152678032775522335393646143054456279106546813893544387290596052593027829579777901446561324334877618289871655296444077099457917795185243630845530297299348241705568218709856852055410874519431383357722871175129679432202123531381864845179957386568808128951822113472009192138202469414221581677304422643631752179463388289231081883761551104517809039574989503481645756502505576719848748015070473482336421572040622980978474847146634592194530172377521882024144046978191635582272633481437417937729779516417227215169514236558794526567581487835742352866206722429513082019871632828391395498573691632488470380098832861688382583797364338656649929526041696145086538234045317149573408041759521260033287321057848670570924294363746297653569698002529665417388186747569094589392707508381264872919624489207426371203859591205824042617396547634782962052367700672601328299295022025532775763122084718288715059379582211898732560266467960085354532723037952954310467666561198868253198274418770217729800721947745939794662371295100367724841002016613675389294757821410235790108909572848994220367645193216733797770238514030966489880279096681368631143395602919874893953820321468699807571660792672431172903358133791733561679197684331631700413651357533111403150556663187675979846869703198669518075057009534432361066298511846457641697818601236115918558088232602049141047212594638636181208520877997853550730442546172991544879987582743129439851200701623197308014020983020479833127309774843797586848319982653664456066490985310495408738107519710817620335195434102885684379800323521244587815887976642476718689832924470501103859513408339281038751549128080490033276690124036463110363681957296432959509094199119831136700711452109432147600987914636867908366494015595758626103632978186278969279852692627103724574195678578420866302928977206753135531016226096045893923195252379608787897112256962924708129229309432670867610788681432255362837467969450775097513660172094584127881786385177108973335427916028128845478055122899268411154909135570622905856525103798366776142383967003972246707580371753817935312472338138616873806202160036387382507208508732273089922299659908622388830032926125606065214428813821447216759921071031723466861062300835973873178353095154481645389120553003215434588671017635984805188460989042791907837389638260476907023097127946057397474003311843239028230033290309138936186332879828966730767636916511781329357506456749049578607671484815112278814005213795281165532645362931232529825189363733186024174744806111109983788077635619620540842399996369272566589252971494657281042744580509968694933830898695836252393234729974932317333796549312162587799043063350586922977286338675783290494876589742651469464693145477784872172802401412893961922937672237219115838982068489506171131502441691288458223151033719195235187883026955258304011690829570040502222970575616222854737360444628060305204759418194175318895673649670633796702542513185927256753539585566997010432838479914136610906603796069144049204121497416126454914898335042804738109792045229964860993971891929286463466312112658537734133736662117512066379485387759171495494205926610490600965484618806894605010248355103669800852667901786153614045963592309406097104387110815911517220503915905845515980942762251206881016643419055911125756896553103501582697535335314802726780578792565953062132869065805031654050553722928144732303680040127380373111311819526194870767309971890340654013522150601375963999019563419555066563955920558572984479057498175628906815713660871457514305518466969778486707206591046076957056291887327637631556112388277165164433662540240815237872809077774702977049810456595386200065170875058750337739665358129746930009842833487521963752100934264063172979055415786802321033584687986919267167354249212787361488400203282388045412244095638133744558331036895247387345099245993955262550900600736645774998716495901259887039516304693463062424047261736687026038929496797273606665259627930415152594665742275479814369347879907990251132557942243135533674850427441111748141280063065325120252721531326055745595377049026699612124699118910428377409300559778971230173533933933284286662749249981738100497668475293340909778908182994195668681189192719571249168930864401337472341707375580936075650860013076432998625300231173083855749861381302544373322302773022875026593346893795865783567199046744198945400221806301594375831209056062002533718887021156698843626446893558941318488327098815635673424452531108112355712128775113205768904094850589535743729946004555990444714801871545836455931133687010826718747388643867932407693421168500531657397697705742058163690683951290812424964740705151730693945296221661660527406928173362103902121960937939036210801190294965794695900722351323848480424146345289331399575362152681212848465158552177009848929263813809649681187468978532384281248581638669880109122825708126084920385377315032032562727155828770254825407584414267417944189832261142271938404621601554324391205738449223076654329454990783694138347197257892174508467411312557576713536101892559809325604393971842218417789229443036311087450709845420225705529216538765714503492822038862126656623810566755182554464945891355988151802630257231182320270864481814834770764195945389494101712111524304336450802655309603538607065925182596351293982037236990786645105105423742638167758718029277835806505559048395757464357612335213736544851576005489880494105778655213444793374272274302324046798280070815309860892461502440535853095885308448616128401520981079341110973104161215733673813015923324296841905625419672036532901610436375020016891002667973306948253060782608349665438920711995813788345032584519757649173743599475945315354458570726103346113161260546088830805840765402682456669330400116680715244260296550027678958202427768705904049765082227175414926202253913101004077895253091916097512142701758884088355846087400514471321842723352737979066465514203757365667131878412658684559104498606384925767147628814899963273151217309236126200372227349559799044584459191409081272783567227663364737637921491622575905046623415993366247744252339194262580459478526314452913939271859718135872229617102755703212825307180653076966994180787910204228228644281062993647162321798297170254795851515102233576231472524081001114709446949943300477002525711885912531802212196805007705810818404440277911336896845406320327665413505748549466515109237783447785354711201480039700974857107647457708219878067007909429755240804632303415639725611838983735821339124432433436162718771249858245352611833986017876242836994301306909515847641576070906353606614115527102089623866654622806047884645724842878706876575559075512006135624664124363413768340696007351227904453394073907495406619886457148488814346034587264028713888983372154927127610288982402537234160571382720395056285847802239536443850740873287224963536959654861944291367835501654202277967479279264751264264675434980059846344480379360410304261653971293094186799674179769232869306115496293575076436424057465367730986449591571326485450358123208533257370578612978474977941090888891375510713009401562762649398798782135151921072256903860244307398684742603587410444721900732999857928394400284581438018888453268812795151887210672850552644837660430382513805557460792407727837335576519845369905126859614142765503688026648774063734366677043807338040122141391555476577359257587689533786328278678549292474952850233093123083631283799784062394139664147766084028501390108324435779301828177131042376652907454949307871670301996380389210142658616135418541897141539800869822235243774393808408022058425204661365453166270359337097296675414185588343437909155586761617371281908023273174242470169383126809661240036125162307761087011724847507824999546776120146505133409754791542936559521074942811915596053947669893863897120763698921964445674525552283065856977452696992579144186514690554359509932047881097359027585026148153874424027144343882633614811726465132622935758327116182540385860418900198491789700978886330625243713919492691801839654230312069536574995149381660003514072073779468937081478520708790585705652212173398857950945764479160380684208774205898989117940065085611504254181818549677611195072435203461873586629414403391428641165643361227493361688102804241702819803678228234402851417927156273349142359316282261547641421055172688941816387946812189597599211806032479160542518579567065527240902569650788280375207072656773043530738807561359310432752194644871247286159844983754127710011573109728043454826066264671161048017782518744246510558113424121091094428769298544923888591304905257062123975216843272965067986941463011560020437644164200406823604914159919415693345347618672604545924994912037908141340340999003754512887280135939250410697321566709093689534177801808682964899310708463806724970905808626497029857903149682543824318610597042663199456969625457131832763032808656013385663661480861202896926385923212588112352075258535502552478356492394226865659628196384355979603450714114339827251109434892412443858863645298156988471725698075588524984449496178924019393729924539125504080409146848421177644283345221297304809034486058281189361449160072517860233173028477847924291761684524265476707200095836189322220773417460258057855127459661314540326847186778946944854744484355914828647252271705511483054627067384160973238104185640267405772646750583420920836544818925992508491002720873163154986730774119220577650957819240585829663764267429344920443405505511755559689620442121281043781529595009603630918055610346505701155453771226727401753975918124582048566349749327351240804433813894271252095690784880025282261121940288984500686541615284236860376751086490424854029488709961776083610824474680747349773359114986665695629020956865928169155290638747300087505474513103724962767044615613482145490468966214991787026044361799436283690999794410237040128782085714414420177838618406863089041933873751810915087303658687887484137538470719039521967166400815307057762597651337625050241944193643391775609643094686545816053917604395946497231034620506546071827221899042146098176611904300084284949210758585809146747155127974750628914690796475140647360612249321503685010151656247831656583600695260242887289657773149343555569889985010672419507124662645024042303050866283555346141109605027020584894627446882004519445263093751563991124027689131258300479316997067157421802790691873372112936408380197429143875243076721629094290112104056617749028346494605354171656352425889553098618705937067431939883506402408369391406006472762184374466255441384537744276656920707358676841735441760352018900616883788396858503422549643558643199063281390305259280265718504028019097709144153111628899517611334282127998155197513535176929552984018782100613852815729601375590081309472422269374437091276829424575401614156323195571135851762543405444432165167974610766112158037791991633854793691243857857823594085763379692651900800084046744865512952039336705290529815607091623977975171747569307932569261759965441871601047889976865098723878754664307720968486937808278047214803720511605611872969196846415186944041994076804338423006500320727324379944971449812479925810804330320177262760950401284090378180157180321548070128251332133450648165079768457186496439244915215209429081211055474771410231255733213157151813461231428493875783209445717673712044455206807095483592510187954381973503298367042815872052912169078407670864684072098969983338325371564866833643753094202313025856176932369363645017042687315888777117990370612672431661868242731374670242722440963905311508481233428442204230319358797475935315975077502662358217996369837058682154989028345011191026014199562785296070924348677477345855017045380387170392503518554558640965472719549820523262166090345660295049935555630734355248743336711886643517633330936911128423203570345572440341417333256932188945698440713117013750984970959800797350053180983293256175157204482967258996740783808587420822959121323275555989274894424366608495374185288489472172571557959309184881674497888508089938529023097684413391560294698597349250551044683517364204895347178773567500786776472830996716436522690886334837960189211427889135069241536256617472707802592878068435456495822759718141580114680848479618219714841048216528913895339063454514337068324925381451675427430272618659285913142070772404060346856864124267722197561057464514273999216026558590049665133798341520405075555237395402939444624577379733291851166293112315935343505976386485611002252162641974359525066312385488926576351083311203055589894669866882929795378321004570722588679529523538807100077320414792390453811086155805012144187160765389558970325364550341163773619363159616651474735876863434517429509435185696857263108922692819729514086215980443650809045907934026149468402606220576508968788270497519392741484756014089329413827956374262102078445073283991273357130835362328191276232044856041060637109710779936803563268568556336079553502082554221711983820614285092104429254656787386906279652543977013576947579779584183582791433526047353557160356374045177600245630070279360884538886175730343060156932072519361481910535776981367778425920974842402584125415469437707361883673639724242906771491864242929772044362394055202613300876175621495514669288701331132735603386181198340322395338139318498370759044298320414852418192428729745336378864804150240115994113045991436754359774298269216990936483779548328925542449100708715144678417914586960373533195908235080912931040806898195279991676528550704885303361870902306571779605052722741127147943972221202857240512891687347138815726638486315334672774965836537580519691447929661131059226665621322927854537288195985154083455508121446027374910414079511557087705896194959530896315587376156043110542512200484063087261462707660934645968668254032673019150760637736542788735120094742797399815101190997091924928788566795816050358983428775615452749985062383937236924260058263681651701263004044953778060245619115548408132649168365059414375173089147163211134937534635341691494266922085293614656399357154642669506255509682086440611929130349886817225718315320504693439375939104875455879526885738392877500872914211972922102493241173764112032584242703368322277426929686729968148359150754983170687909553819976194772873838273402370251709494025841243710675397496398326375776721488241513472482589641733689125134548471778381579628904833545220604905858054284628986985139227971964940864242640246709442857855748962397276268004198784146450093355630442716023708446045788701161636480555910795255183412348991195913740613213875634069067955001213657419508006755214128930054620812101223092404671314113502133819164009598817652319966479843716809282538165018712310601261770249449058624087072855230046651495131153866248647956179632435614640421711589660206387225315911170333133938158548088314746780978686162290307116949928141717004358394413660858620168807304654290025706931747275937041960724591579463960954165475727588814280395747500498863907344214192971919532711362698807104269692004654105561715560676457519611863755809981972413308230929036704006322763497357539174732944418791319642063427127349368253504882102921143397158403454062606679489109981406480736915259368302219667472928699998000938833495977065638698277754274217981490868084636974357391304095281098008818613011466968045549813332682134833376570680200797709144360102312776487706361656443731975001055510188557295356993252667579161762262247804560915995116850977439594396061508880622501771765879835688925216304403236658568312868448439608080991832081485428866200088117115654629789326845115604668883962158460698187555308337465349342817555613669044772285646188162254517205838267618764809211603363440923681539117580583787274901778181933508627212198310345792062972401926104303747585514585780875890550038054327793322080789474297371550265084277832618751624305002598716670748896812640517391188997219135515919305813625241928469729552606681737689603970233722888302089025356864095144387286619110513727926681695151934058478044599735228891987366851616051809056425051798259005646595849583774604486067363904981516380840287708795705989862353665617207575714029029967788535319463461080366372512115499150739200476405966754301000136493396075049900527080428996361209680381511556983100110813598067828321785767596373186432905540955851715813412146277775881041283605955937069666710148604440454896873741679464644946083436601822419161886510144479860822591718961176233337956849087805123606554079499868713758570896635234994564224936660366520159115005220262365450804764721190374830058450811624564475504669492891116545322752180474164859873616093620967385548839071114890971932425561765242654409877586205258769455235718266856354882723302256576828261819410426958277468932334716757800188516909917723050709562633543990027825547420039186511400705252065524528497416955169085524266736181990002491654864413889800625369866321414471093486883559775801594536584239279577815735812318473604255512165782817786017626169875760172563988444649167824199708564434262320201591865700698361622140355310028705571650118447908863240891111495406227457873549791804459660881898202707462674875178938452635129712803100664645463859196829191840648896158032645760926830516761385540909175346195379648917706823169432069410865232101592319986366852560788124125849248774587573921694409955402359719422392098786043090224509257226190932883772618562793973999070836942715009825155215718612946451628859631546411828915340138663381836468640970468424712556143437400113898119118509852179033275726709241505535926744790141187825012222001817069183883237411766053841903016439180411228213552737826757328522429640365101693529802100427633124803242191900611636159451920324534122832241943247588594394252203148987400033367976024669609706436420692595981240733530867553315307810965050901086564690621886192318189977429318707744149285932941232489237995157237535664266954105658658094961177813190160194322261751004768513895104509612067931503939117209362003779602599901657774013382754830236738570588574433677044409000151216287397668950571178584173934706692029982073579671544815360759212156449992500472459456441033494278877549439150729579515418832018281792404705555991339318039184138878957884393824832706077232820349648528630079468862912834568565451342605202555457893081954956367905481671398669423236010541721035495044890099154813861241762734950954049741798861366582003573321321590904895338830092341531945682135278616166263682182532864794220180059866817689600632969318469638182925187668512106273417822125099879125015741311172512148401792893491540627874632504882397644770983527252466550406778145152026474512677879122940159975708037666114602114723835520965779880768283449231110897385214952514405738646034921644850327452887796873316626712145043881886230349568489958545109991669084500488960019212178082305210528513761790180399392793643975560783157648091214258084211639338742545418099997661617244368114163814258836661805110475313584284559485675783833892798994644433833624713875330993790881105687070695966954035105666107712312476290929866257193963770580471066273066859067546087522767544652811470864208465163407462020440242381501913950391562160655557628890163238133433732403318604811748685255004223464054991175120091564110570731033061715937186007557146654984012523325436757686663093275269995332760721068894944442202942291824666670270633203899945705061421437876950837040631868730655186769540165998993153021409730269378705453448674277822810262437404091107285089737403230388308225952901428166431642885533896698920802905247381899942844195869406976554715691807133871640338092551825594391114195585229797541286150929291523792367866887187764470716612370166366322922885254255500822123008120078754014463546915933162446148840900429877036447246649494912672814222556557437143933357989108084104228776984138846486101072718963586880426132738803032383324686683719962055448429832997558537863665221635385287859572570564645344545594250850225135700246540538995390557089509712923050921084599138393772799494027684884484564973303818797935516265063325940441501978000595946063446736799636338753056821465628642419075631411691983098176983245967077955662842909708443431694641104678097851972587469675398827194037409124152474522285670304748532694936589041680471982650985918401436671059335844366100771151165302677865328372383326427275412596066403684213773989203172064752984500728441712884529516256524287078555056302293561487148324736048414440812483102523053071863533221053922381591279776017615856639145675007728050376488328956140626808689285015366893067836503492493213149353688507463618129863772037371348223367862114475847081725324143431660786962141894959109502493153652889254315419561571128147733674332938909466728302336053553251093387760027037452979862521468218888722382382682034487930121483276520151885173072258127739347683675660927471057712024133328534727994765627103060837364482550083076903542573571379524813137453032632281241570666212193120165587511606775651065032430473305181212907567981657507764453056275138930807959690121073849578641583085567446040970891571943279419942902390994358789236159367903331849908900854570886561752282401808812177767567488190663022204489431300455540952841464635776933257171477108604432087677343027066515766406334026453592876366910433793710279838482117545570360665030055710350476547485353508727056526819322032585537169035839825095056862837070894821338837727625864457993020132441653098200679588263493018697721945957216799941544290596351840876459809264766958049348129977082920239808821933521090507787736973719400919142207830919865520623508658868063186237958807351142003766646944396100409494831367112383720019237165434500261659457063029053318411987166398328715263704825625931935777533707259407844472794535955789858195868063226709222624241843965747994031994508174452268851688869772406372632926017315435595990761282805783151107170613937674840082557536441845045295230610520162832888995294150327652171218666842289141788846794993592372205112236141956406306402385793233267074988264098008933466369297794326237454615788594798957797718603155315350482612016517241684036501470579099832292723849555183922953245947786073366061468285818235427634002704684635532332744067452921067923816226097899984257538841961817888692621930474895497911743903923074799535646586311415948169396514376281388875916340783543532309326176518496953763602737664929776589532050231483690287799687836607630091435441862737018779432608554927355071806454428317128089681736164672063941521132669325901309807864742104892347171463574049378652253261022826816428020469018338174598056254458434580881564490240902404417583166856586237969552609284159767752910559911466913150289206911242759687210799155974919982486410975073460649307976749772018612722901934683265415383138914364068245640501851284006339876899829788267721870415787388907242952239847219742351543456333042618923966623390090993872983004295479089356338533709960026406412632951456541827826072944271004937984969205355113477147814168808509065180819655263674312583323318451151050084515254160466081231374771646931862407787921987517077156465228379285063233865872823088294182484830976897631283707609367081323874043069887446696142533411485619071345170336532952228441555551106741948533115523629072096737012407045685292358194989443228503728910418448363657325384003625590361312039773073636996321459012111290477694670951523887086536751859448557782791316691883224132342225742764240591407205905134187717596675376760176095872280598183875679135819126158518715864002951026027947976849117080471364153352240001557351382583578171872667841999963098457596776523757214459436604032101596903411237349960323120229608216543017431036523149302964182024750953351808799283305178819871216955771695695592478099937688464816127479160598658711783653431884922832394148940080348345024106940624632801567694625103463228320402849865336787523527019362664249106423482369658244344724084405667772346271568910567581431999731418021857417346215978373853603804171853012638166442414873191369924262951717071836605229422222516899391844158125156977389260710357571956638534637388259274264413368800518114433202014739331527753518913113381831707728948985443470298869255046714810151311944001489814223981418748672310885571988590495088670835869225007814549838535399140278281955964741089776814673678509791803248580997411308776945524757611742683650159385282905822994346079494150841734031087936500665177879279821939476345586310081430445813553413994878928682522955635106074425564166006743723086088875179619093389792356723982405507783928210071438033998991080319155344892483565043092883235076323910041624078785907481815588703289111113372793956946824025223577281973542774938036256788310782058953920239929941004137677564008452975220037954987611348661557428490897562987787952877772639271746499173294077656001689211159543566661230798284496124821361019590211626466589716707664485943311661252538985767225643070201049981713303565010859553545939893137934926368785246263139717608723876008830925261698435509361558994854821813132098504515673478963268443730185649392091688057235551191851802953737572826110038540031195421339801885145167545561855751149261750201049580948776892834526094522201197231139204936022438117628776597770725081080173525982233048099552149423164200387376035232612288360060253435869199437612789720144087971316007080710154371091036205658935276082588815366961165366380706254064755969669205094270575970488799357372777869737937909116411422486246571468126037979659258510840761057750932439177258088606285974679583710269946361499033557330083100287795030436234729836132074834327092779678530737604696846311102696709265311116196531523936276174124207603020078615051470284934208764510976271027273588681140898495958105246873014186097368530498271592918328381554918219887003524790841153278555574399077656004690410170915140893360627522589496872284608804044500556829916841349547279827851511378263192763917967693295733007369811719957389873889870626667474065773077957880126407801720788604500530004588920493087616292365595547983963551064451315909453914351262272652427362391638153827452980331476881717402667105743550087260148810519515683347109095216365498430620283905385401576013973760693569434233855288796927344686077265384886717080275944543076675164965731668319709008649619198019048676199047208892470247127857701278914370590767238168715045376836480241335910156141815703445071775840003539240182297108498128004929035680799667557264448045752143386557923870216672703196313632923067984887161997619515205937933521830685120538585900962364740191721913571508594154941761770145253625444875140130192127735533691756862869268609452085799897932030644318359782510306092151019895907164984528138210481712818874979487197397341217839080293149018900860096199889239081488752682771487493500475079054529821065820698653777820329585610408653973480492994576915299456570582740014874908154177441421804174631982171897446272054901750887482480127058360360524297058532137918432918620350505563093498922483377430168121196392886906804401906832909002417524314636144420103559714030674738422415961267959640384303018274476458981047833819300847206866360529535856408942988100686526743666487706852598986039217539697475464224615415095720578351190701209606430611843620091977846702928306218396141520712421953667914927514645301222587320394299389064184651961507019798435018565260475171337854709852629817489485182484557648932892473525947056298163453221386664480594007254106364473704110791843192755222062603548014344190656102638249590697409643733970391782180054965926479211227179545890476392444386371116458153860408552972907243127470937739125025819911928550303975783331285817739122258089310735558739487290203925327034505884054671747631583359453949375229619625255437235737211343571482435743288219009395518702861849100917950189715818632500771111308011776839277132986088851657069919676610192016688398037441469113458056999581313192064210477476331424016437686655648477121923584374139980936792302808737867878429325864387212155815648498849950190789069194392727049863757866079624991505072935864905810395818980226043077109664296831140736247571906729759367647952076422680273162944816025821435528397328605297258301919761624607044125421413750648796137695622062399045349807744462279665592390700444836334419323035844288776100103079565285841577736884303949520665743462537499984345924115918074898942250298431049823641720381385049925952600634346503288580534162614235251703523944184129975600792653513675101899720051006812558851909234338179511446746633900200814147706853193538626752221624573359236012751106395314248657837186967509918745408673835354423364052511231891126116342836936017876394727605988573291875182236458841536238626022182775548301271760783019201231445556700236558051678182541646872796273072631206513661324651576631257611796875953970105954977139566746971954916854738261768356156660083181930605139633901645144164803755387589535139747538492949896825179375154402587726548643093437084112645440712019976699275007341810929593776058683263242490547589363777446253917918337747220862650530258134286795779542372542305656414811805192374717146324963841849946969647006266204175338157454728170983138015697289953098502945937410631503708187773251435060089745851902126380755732327089781589139992205594745100852177703783362198145429280034448038176988220459673843865401898579094219270304809464750222355611257386059990059694426063186014748532991355730423348094824804179375206702243016419572732661907727635302396600738191829684722269041993539226716175495454483113580578649164553039412025120947446996203551690602831419429872172172777027534716140260141982118660446269543251082531172512072945125999782773563654912963338509044511237547811672583333419416569822305465320123830420437113548321663509653827520356845117793582850155544798419260054896093235766514701960020913893175973069138949823805194567497808951937392668140803521375754993560680953630309733727847407829049293042110260942139058136989958171998614387826549904629880663733577283826548992189243422004925030410881488215469846237089867902671199999458416724603421443759579444388420178920595749290991644361847058903997241245531032497547830931865327143897614729822884136200925884028675617846445356551761007480414978399325367551487178901546129789676058668023168088375515664333093135587870896228794473913276899944950386664238700621480709292958744113254928163070596520315459237831571172198788054700282558287511212954563412885765660734216098393436565464377243845417350039747338019517384434757661744959407707701122714716295669462759546921829422341327165877458901373841548536816388257343504537112100030551779142671402414074616003840533706984557674317667706339710416531393110044698828790808325330074967214931932282591897885414067099796080077199546306167470353576735598099216341762624180253707177267080203711345297759891185288784381588905980649628049485764585327259644281247713017176688611303747368552447025704676562639652328675648512050912589041888537048383778555872422621918071688517762116630125032213341503366602991985411024143874155151645744822001578624121972707331913143319393996649392492326633172454521520488435877133268468915133747582308459252564730951614635589664087836466684009481957823459234796137725259169280192511404784863255268911799942831297609738284135225420282633534898420151698825782742309302170892285424862539348813221410720881674965864625865826508274039432860223116883337590661633030802599809936244950485151635055506475937489561935242577373033579699806119936138180921091348039608904919301827551865432544620867917049419666858424353539033689171472831968709331757438018770296764016769346181561907253532625761662758744506223996207174346148202081046711071056415244373702736254945804110735461812124232853116251496858875103547214090140755355155752918820975003205963957014175712301809716682454609803206344828299327740284387304794297493356879669634520207384949196541665923738645611035164143070680092739168489607912914538252953606239764048368337926221479321216436040836305070038815211741532228620597911666128790220714698579787044655729047335119867833848582904813381347019223049370722253284102778812441568774640270886908225883004953840985660575815648266837412281807917055125045702273744292587489010833194034254485079824794404770119253424382300553315575139382272661861973778498106606581919712042538097637853322177402848597243104380589167724587763639793703746965574002308527991425215148393857154633178676401447341314350146672056498802176008521754870200926469782471549118420191938515169879408207593615735684728093910363457921140711594447946380309676950251716205337202114426333950415988052582889030301408896233891413922934838847368931943085065496938620747265406377192006202299454059164487493032199058198618570549446455913775540711196406219951159529460911207861799813378692932850519117273700842127835730685799278245131949642717195214521530752254555742357421636704038731431340763541227514288092890913745639758916087799753879029785093685782079601615072763951406876135448733687344652942491465353082643191381591615564132703999032478061796220227665374333753162791917616496529524174533914787076861594468879972198769188287542352568683159678459491230902904793367825218472394289510674684359871019791991308318746308786297850571694706152836495229481104660880458423568953239575895914890071031343307830068024987397973763825462069662846776388852654210614673224951860719441964337409783281843564175051230450385403125991808942078221983191287963546262010845534587193049257977137028553017214763614886487088472465825229841784585329746440469511287099550519063813352126335169497411194710554934096272136665985736594386021027085291687568090780043075688642918940459134843058857652163414499035003969248314495792344253216189045355035019957709218308839590196939983750162686248080109474595769586100625033131918158243177894184711669346310133172974040719454579072217681297466808141470726140060223638872267553431077560302350672666275233938468334240977543926944743620639537164978883146445902863099794647869511646887919452853807998864838512888370711934837351254530584702063518095465420252747029118283136846583358410134076107548596349013896785103483771223553518763491880131554514864528419051036086804603902106289750633029241749516772493107805366595001051700297513263403790527231410732181454988568923604320484031453485827954751134888625476492587599688819044324955486283821288796266747890127043826726101077861636364139145620315605601174541748356465601394755889328653595493109767501809247382588117831884512065068263472690411738652350573046174113359081040001753181276066468707183644930957410630090884602146260286562157272095135411944108995715398400920005754849729328957930560448707855122777619383687807861244590787407494474876396817981191226723834092076668469256612462301024082378219789969331463415504480331350743931777586142044077207214800358950363906905500919014880093330599531539916717471686353784688145962907005068894570564385311900660475895357172210792526317610029810335425265109566899346465770993545475217535909625108578597319867776832634591340720096289706735510487456965112053975912945917908738432184208779858314962895981799892179599045171154667617340814400917113849423105317799338375895775938338081955959741345733166976825651363964092874262709878468797222873272061897212936609262686996066939872542176740392250350490579048311253170881786017216406617989845529139375158732194719806072125407356745696377264881938665904495775206825359310970088860904152953491065812951704877921126795791288712826700775966547711654079105085893389359961646294899689815014931168910378117222531826124587775295789718249299526293311856326630122228476505277977132323696271572167669301535130944113535580985449873931986715858384722038438210380631771781327222002090839809573509409970850132478009608282468031272832160405326523263313804714807657717644089388297646060707324174750929972547597775870661839675602505056265739039179879999978151008722881495233660337481251305831946665571833488983724119347115031054141734585475668467748131126029820525712008836911613667489435745765468531632743628473291270983258430589063670322688186442376274084704640246615047133089980761527791172920544138623536603088978523938982821301728154045288872975122672073811210187250243554254929283674093098359632118458142268608201049453878063290980696908891980802552467104266687827527122766387799090814001106300105916165944559409699823124326274253660177783593166643247653185570754628757174443612072846477978883486768904647451844587931343542610597363165434005594286065967092437983545259099918033777820194685264296180121469676814982386827302263025063934528934970516061711590727829926624840338878734739482781382470289793272133235563956874932781961534415206851462787992440490652179548704328061619431908376622372844671735961959474471695426679028839198611336805760110285333850433213911625045113352390659456404737474176521467369172673544787309828565164437895358556827466692192138639384614844356274833396241318252049823665716208298215771174414786713787026893202069871074345367648488403459517803240864298805250067849939203494204522445554967076666085204728779789635085717296925955830472710561520163819954983215141751446981200939583993165428023362470264045835772438698710913590458785246016216159038526393808743590950910036324578075584453054792050676000121869732014206916004853887832391930083460832151856250319218112193609698993395205009989746943544272149602567084712033939696871005026400316720214889662619143097251963650671984781864414298440989597495172634734010697824910903482116372594540272894717966682004110444633895496325906665405861297461973057569802509367560880775679373558806495440989100689951184916310520577611767249634087314773240721665100110593874217444613047806636989093424143347714552227481494496124843098494707981868563295817384808975263544297791783496393733707436457589351221364452853920770145982922534438920662070316525396758896337640539270105607481317178763012126893102637613715746737908442032108078596204783017394973096983672308896543122098270578741941435539087531778760702678138630679070987451323779177543509447589783634299092814592679307995214878406497884456939664424321802848732512263117671887892872423592161816137722580582442511219500293532150469045800131636830099020954755887189470150385766284895033881481143772833969794250196129883328972356418528091993747276828397664344710960472452332105526837162466936148000148816821444935862849491061025243157482484637256242353045365062868301769788212926584463229903898892078505639559428271738885072942519868681335912139295334041156716806225643892348139611347692155277515510134011983789277880398706377439301993141612344174567179455937774774686207293893542658307057578566529876915528420208029128579598843241055387496787502859128072434225919719609441468663731666778418741516579567656143610225301764157395184218383577374852940886932253156827440069230452626914724790900978623403931200420591772808222283888894714479197123157086681045811710403149467628413391774940359688274624597444292669324270443894441121987374072337872451973917023664523356393426875445376927183550085841709208541027512587447334286788029142797025721879291577174534794854990279489503023437849411633636800073376099133979426469528429074399733001521044448466180629104738590723927357032331096478802987780391282873637229367393440370186445669628888624573325213672994799887452931898134042368832756624854001036208444971808089136400105175572633893439944128609767829618492535701659714378929385149697755286988081559975064018784724775788400754339366709042088944486395824544738923711071327626314021696686513464494496737557311590930409408138353730389298253782790231279778572907449121378557286434737153739436265095819965415135721546786864376498150197498146379397263188690742202338465947284380504612168881129688523532876342772872190096555230886148775177049407783112359539563657221539201556211285541148333772545457329400968257736489939615496326343221893904588308243129186182487312931520518325200936616924882769402368868761823136908164403770254341663609192447374925742043387441468355618141598607221321652891081086345174343142079647465380146555298620996007108951669466416038602059707166099543788775800808034429274673875691913583967202049747030991527540952423071539121626528423459430711609253052279841207291078814276369569674625020316934558945960244813592962372906026581045263233774454156909359118031082798747338754216858660674269315360571518945648178524618179963647580256746518869405982437638866237366430094797694425592425778981560588254385910156899972872395723928964180117287902524087304528658641069857467799560202955522056218495947575383571195750677920062885463129860230343058198019840213033872187996756802345550978346048714686789406666493722405041593551491257760762677165489815850919840752010799576379676464612754261301970508111907700065410362400724583404640448472124593027438858202142035876311850556220682349014814423708711697459958010969004624854106134947184204903063880827103533569811676862415165154752063668081566240372328800794193668368934776174894306291231115550425826107297202463206065864124922786846441407530672686915041081467379003526004658257414066677540360887660601575673746837049699009596655407239007620038074197487463235748253060533126622674573734049103756446908516078997976750877199924935503267469458144248783614611488393301552540905006359848235755618905344276517413169514249220885408250029468969702000093473999984632677236770902701206579527216978408793756029630863064676570322134889903754528140300393218820265735510948252532904430588981938294862858684683616888041040445176471386775315564492732271666713841011547889208901266176159922376471048051532414158030637626203557369116140184935121012615683700126232334400687345166052936279629404845356777004228955108734719635369651942339186717531158002714698564393289312608982947225366560602979022668581993842510513256829135536696579016762180350854787997115240715619282750593221792846165233141510748125643898549880758736930402431988216586151041625702681332889452494230199148754953521850799695640332007266006249353298897343528153423017204289532092241873966200667405793202394943916404236516727725270424399151094389748684817923842487867922125600898024645710435621629469536111679199057177553140150822157475292953876334754764388079034784239579858308610638185000560451849141630957394767183313133535284686816414417466135391911701809796234633487721998051046885850638657023733443707569133642351004083745637015245784372824397725002508988292256801405538102194620460959601498432817233008724732978802935848870404382969243046841387523987696332728833654486891500022601153834539644825013438933889894804839052873320850957165796653052161041181627814735400603179738656806777402342542510227976929212511914257623461206807110331010565230833388226014456358519343072887483393080807496431612823738040023217000496888846426136962101495326476195495603754514258472477682972677846984056814313437608057652811626461721468053771176021771375096188091350932432668465752255985038372124529457196449787729048835460658624401682957029505509646507914340974163741290881006379157189448415073736317521124178135096699228538859062760844297422605782184057978132101747327336294523424078540555527912408527960635246719482501957836161060980056919946105922014718645310843670429231799914300602797336168958002463256290026353561377232231471823787046494429250975136789906603828305846184142960222600638598816006777482429553529359757571111035298521849276940715430651545935838903232048437027381915623067792098357576201148910275433156778074165527462667515691656719569674854800137639181488403005161729743141126268436848716896048553138341599220697093269481027219417256396801319752815027559919084468796169299164668320613488140865272959196454258489837031972789287911818021172008583673513125730934338064922039186355168947894056547181238994738697887055341452633919972391532163074750610227427128798244594380787776035333127941985121660634469706221171593501928872396081128798944621249597636386997866445688900118453030798522477845701993964067717462457245757794310241591865750475254060770615718903601284279905540821694936407363260428760036372685918517900082914672998825634418792270301446069421056806426341826268123752722230713573680342117816193050800225718441273806066091623095584501996531514847090061132412873300217989959472810942189564359561641596449389808774474968982925524960232452594484724531349831217709450827662512317659899186209794235450119828385107099902879100974982765985095073065884254385677786408835734541836375598313311766026150525902791871018278438955245389795685758201723353804868185026959512858498160774441602589669210781367270075288603208461169425446601878197934904801823825001030456703761174992286611282514723932705350172569306234633618027892694954504513522059151713172919163276962012509096237304639942240425992674437455775162054081966715144244011549827403074918552162480172457597190624464618722296062485546581352753181860205758693969954631145570714665919171443125937691595788421498107247902786878135961054759816628383091015305606576689088606633901160316755121269655502484693910739623796766791487105304524428559941969366220796750738764411569105647462643890115152224578830402171667137916249220701925855125407369725332714397289414564579267576514526143061050214573397910706253666019686677125981810074722892262547788009642647531070049326124978131635209716789636577585613509126489873180408074264620498003142264588461100815573538014621120267303507554325936666443291837525667087939034700839860632802052769447043184021356876118691507274755980718033792865938487280918376215805308507693582932853114690940598078498703532127076354580960365003811762339695490605945011073639257564244568530927454550183286267675888307054085320748091132128659471130028843673134922570058615212981003669293512482077276626662685275555810717621094475831329420772748240033850731273554049158334792706904393327835028762313261486063046464492265770927380371074685732873188905720856630546911277798167830196758730134435445586606014907792165446928082966944463642846377657874232818455395090401994175698081293389140786963812626749787644192931657280134157786987020311673079577819417203495296537325425232241668399931978686597410777965953949648712638452080968140525448400843858806503953999756009475549071630287373339972769842957719546322256806798992657965878016790953265181372343380769166192836005970238581986079135021971030869914019403558978116637613380542766018748769617527623421454502423359161908578002267657354211004909754254627227827827244765419501989401585238761793757648706662583208443508789733720452347022864100226213125551723098721619867529950985868890783434948180879030811809478842867746694028179406852023324421304860033791066208368345698808045839454854045728501375200269265108986208161023402869351349445000672714752837829487327661765605368383815381754013789397740787003599430468663223465945663171637202113553482997049959695675334533480027603692348591018476167229851848444432094295416864434008697334034334042383993947252815382289532955813003445189242158886878903116169149132494886954193900978840215858078450647097936194340914384490757512702602157817522679690897251452074125990250503492716240915156811031548490129151103987413422844666386515036491845293537977726685519705981472470342334630820740390431652406543795099229806683158545604760951165268168201626347108296862154536673709960156805281204138035589377088581660885657126904550349144601750266079265407953833162655982375571157052112089361800483968869216018158553885319430176189934250301157140689606603687588712982952547589343299475058658383540656939813907954139569331158142271481300962833632301992468138363201768654455385108199483634105550067976955509200045022506256339402927761361230196971138433948169553464217953207073380901754338125501015688021517650562897862073309050412777855401827855442045145348092366816644641571206618727127983046949439459658099177093761738630950537709165689584439829729232875023206552256783862229946604499071309250175297625321909462180395351047428559597385451747873620875244137391186158306170323442706011989131454321309155091687835065519555317783499921757973703636347834079607348496459746298441401938306948031418705128710864159628151109354448690664682605272453388168354598935496326888553040610715795704514580543266267645199744029736226058405613132710724043938605083580484634130470813069837567821005301950243855876338556315840081919551175808184996744032909674819355216190393785179053743053250086686500209042500619086861364986614804543400559918669474473231707175989864714683060545465880251816618710298169961749852804565400726688075762407154813308862150561933460265655921695079370605722362301272831248336914448984106695588270940761677672006746153853764113880049633805795056501076265793924674421538315555987605176857807254889502969401527954544356453859485687749147532556344074984322891992220459393419702732146185772661095029664855673245939610873668400737954183269574020572584229239271548664889010414616183016549467920589905896569703015960380119088609419507813006517512868267298983979586149840881167360130585874132879295155050662716179162715193312530057810265384876804624069754444864862413328377665571906299954122576021775010282819058173286116447907691242359004442886388139422231096409793737208375775220279693540153619507840833930822743006622328682957061564453190355189193597361246505294890677639354280664024303515667618314113316764148597028249165759692513582497798339959882517723661624404555963516326539464065271146194146508057026669371543376169070475616202157861550045581633003537543202240433790759440476757883734360820875650399176627789931617401671506791923329758328755363944145848602058815698185815132733884985710151195276128411716754595395415750600772985966014750362980719150520416113765116196843700078591185263582136858369626396763779258516729623839337708957226641262799121447539073419071168050996343970837534658423736645826630785966288428263408450180416362039983579460179917990631978491440092712972268403282760264196945338378863577661842042044087767984303351645551408517336115634374677076860087088668745027218872921529813827681329289467590222588428845956160535919694835087212618525443042246431031292342263389118550530607982784083199196281297347401954579380961252964012199017537039498103426166323716229924999616267213189471214010107162127185905804216574735168727896272180979018296891630639223013463770035798968217039867370829388800180016319958862904458641839257491767009533852658480034077615140163888775111197429154861125369749260555133330801082089233232787726348861729703467797103527455757933554004717303266694152396442040910295614155528971520455102730823909935410496184535754076995014187281136594657483799405362759376948717032408546511338420357711694442384797259828298099105986071772995499216596954464206951696465940462265625464052842246875601023445910478726595459085947546766021415801350329577150023243655147041800623444835673056461876540687858794123637850494393154305945129386223287529254969834772677043953562279554367989552539089021237118679666003620734705964735699999325725183011752102117258739406534770245390031753492224578420169758775298267386206537561897166896934935460413483572666802985966790269905897399466009015583708816966265421818851023966549299688748112605295333344734810687157166748351821131844980625426604787315512540375104266685066972346292800148212832298612068248523964675908727489109485164437743952201029601621718424118636272307410431418285798344440225025969715324830552796274292875084682604756799551929991529319690993593457927040449870800676800309910862014570799371757562728420378837086775671261974853330975072195392908625616151548732821024721150632299839324621158461198641758812177262101621496463885657597899663246479352484779397508972738036153392207530018173023811543432211821636317597186085023924401184939790882031559227724270796681611032738720166073768372689333185285213198140522748925984020041677097479303043671418292946271178374078557387700283555203182590088499764222842655566681244915003735642966135853174687655669993146368079025135573611683756133913081846475203548365336958607202472477864401973377964390537561759250600646668278244322930731070359368085556298343435724271364188030717947775183212798238179270180489259121270029682130047780304250007948607462317804077637722903975947235531982403098341704093006514662609754965152498363056550757285214845904032594151791670941472589050051851583330450477704504812578131447051123308879788189914567385688856779790531114867354857032284415850897180888888850813653774754901983963347060354319147506121247735117045664032899363109984732002351269173122799287639632363519168731031283078834991373955475354869153813608028217906988297941376223799819174476371889750799347268233936099114485289571635017634760163190440067396055199641966557654471001063672222340650512064906822119929906887371542354591896875052835591525573372513490466515134006623095738184650207172004250769437712343746311367781339757175938334331659602558961823508917086760497072049811534727969832116948009524045020152902790893152221948450691498701378491161408564396541288146540104967375366589837951472228783400406498596227355626169665167688083586749099486798862958494637526193993102772576458494931442129863737721563988145686801154125600593164994939426216047695720964559973163232145378023541401639593700263814397684261016026582596387732030404276263875492573114846389295466039615597404412675583157169561669201473103848460178168096267059105490736575350743435389903286282934816877149444297908293145968366176434463384873285530562144089436470588111258008605626884695781968281189868604543815260231904844808112789898088330057675247103371932492673293112419774132620588985155777764856084701391421351607820128500960346188741505303233838940084806568268642350087924410735296172985391545018086455709840818973576792641948439285133300273148000095648210503612328239434699740416252987211340264158679711381958019062943261542770768695884493790022242237859502571329348598352497934602109755972936995845044418811121061917150672457733664707166234054460622394093501000548043871888520267445388304485851143755719182250649797959660219908177501663523033089744654367258350367728065789517313835486069150750865703052988747345226514655424914228716838059895395433240654125562908250045656311828226090072933050804525584319992576431002720728358598789616158399501261001113319719958414720629668927397877240038109073935022532465328466960968414024913230054347203204731356962775344405583689146888699251865640532947137738523632567834061656795891919250306886607845019430206925854270152044643160681715767312981173436509787343969643459713591763229274257655620396154618283907355192628059014316050958354401152500517705057717018626425536802272201571232730423613737036300070959315736457303226889262339528232450026795328520298755230217908451923283221720509963165690449035840823434180622492163635270387748660583285013938591172156547546657472970409695242713205423837979070756535261559190444096076312030789267366634523853721221313296336131698508216710101339048329553214772726754715815827559918198348834525293457853937067457853790162227038626075930264705311688540009095100953736648043142921607600684356994689682994541884486460229083655820615317424140596826306745951134494090882113944390707545217768244721557531033430962652813226434348809820748870667959690253859806485400839511777981560895671760904302566571924811089537033128201280592007096291740970750104908239855551299135640065228961191486052933105063113868444893429665370452366894691004895806712769721112199498480881584830364591113998937863806042389504093790142126030233426795151290194649920380893264299846050221096619201745474119160838290870796178997587796573761376334253580660675298465953604383659287339737632272278135223484257095896025312771973439519889183061685891453529516668527250574835298587029667797586712188137299568274182211716719214154964072101391887007692950884595559189215500366966981760593744551918115362919883313420919959191315901425399060428003410052892992898944609464071476596450250317397458600268895109555388690220383474698329704658771853751954551541487660095992647700418471442784400301552584726543508385005579595693496052700062887834261029765991072441246914253981177425732172355756525039417318879216286794114514651321122598271525145779774289298059516571398891846839676606461839589398839212806096538484615709770455194023080534597761517306109158624119371793512068338184361095940531442347507800904227683129440819016835803874009092375351542837303350753552514725635210505344204080862823962822091321651889791922030304302495651189801528197629685428639702996853857858910298647330496820145201312503737266917102553661832807291038221281776105596011369504808540626338266416851756193857390600569974683246019684141380834860807649182469910101912301728189434903096593931272920366132695632126181685624169747734004816660329528355188539119593924066586172935555736652186483706421046697803225227070252279220201303072789017281964913303822482231967744788419498680287556345393777431324949843982166373366142146671646597064450477054188778565685306789970847102812812236021152281913542486741372371052832306075431816947081412636592942548634066516393947145477582353348909171311020685291420115265614045226357509659445385560419315743356996418302367853871722000548487665244289244758907068812539342749211686193618608093164884518837334128637775720352996624904846124448742088750672605315977183093270492809617454264126794069948266384514352493961671569696954506601240838576411095795485646986131150661156866931892041091407735151961179330429403185222517808489580215779070429922051004287628936521102350760711579377319255171660754195054439909511644349825761570807814623365178200173770659596171760843874419467634000173924783624303066037004616405197496761065480866460908552379101721165244883242976524436898691579256989671026612877509415335744888171730596577744732368961480716843996463529265789712171688096941650730299979052056444647761253943394002531669432745258546351528789391637129145071318721110771936749814591534248811282013047370601167290265481656010998621076669795578206135883527893727955633105334608714822600275938428789977610441946958336180239973767830047732652320822805219697981311124854485060076671288379147127229057382626662501556453375457472853827209803385455645651352399820971891563908457430188963521669349176721104096271407415126159930439104175258924873893275210338311883844948444857748299341181142235549268056258079355357683411188205170861603856457804404363263306744237578448504858635434292332537746252041837499621649543194498517802181885492295585584591859604672385164660395958961575198137262013786592940975824425015764385026388603353529954674257428644289096364633526249316547146736923173376239986565756721515903898700109282076736512872294020764082181018415479275369846091005907282792850382171408459872655238621849101569011625808905174679232414759288768616146409992560466812989214219765096445036551729984216654559430010296043724547841964161798906574794634834930456726426711475491429315758009566761493249625498926692328530494277576667025445740343439588486317909450194962155028409651482270957666785653812131899632244713029005798920668489260413272398713342435663139381467318277457457413513974711553140704089966758602904937849830772437105920984081112990952320173559517320167482045235931046963963714778631854156004812832648151729191933579337315785811423393583318745354670801581893448791530503066931540607873260698026601168685220925546204201514560661591100091906080246249663519414931555063403193821044233066766694181782120591802403898650678920428666006873843623664236732446343000596701742522960173757201288101048099783259308824966466680864187355606501390706424688407569262256380179097346651681599735321262212900955775839766226854275502325969839799445863856832240335022474278958024575552227857775101534796900440659811773068676550507216171927097603629557139480620470953691874052365084062632481167307983057320478338417353689329273162995438568143665001799762835838293867499033307704244932320939766748024918767993534553818517364715568619913143268077696454801725706811105555418777470216529437564506531093281312778820650394380908897834348131042585604311546076883954251369618330566515544403890754040494198365307736342407485702998840438402692293988534063906913748205107177787706602032596151022191732776611819132632167201225039185873269320989929254299879215610110772891215245454694236275709788226126660672220687428723463530347561490370360525101074497009120737715346265238259527185459581212983501525830495567227609264420219563505854700389058859188467454950207138726030291174485859478637209344795826205436370756972622064576250787028893981458189236410032412069450751386081110011448955072882545146181457607788229929208380861213841401060036617350777836767430438055050095783246935249587407909166372967279763479280776832426873038893780102673596487878009726022288947110559674097870610736659666296994115412570767038124073112571839363092970193886646262479766671005791631081177065343516365447388472755308659439172305219840415579273025525415840481234640187608641597997105248853812813575571361415301439126831849480988424984119532996656149819648227595293745021476053400386100918361180802629788211895391389105940168245510419163467848998733503886153950186693639598743453935161578620189426094107504112586587460425263800631513576864632338652156360148604528115312741435274968376511205006627211528951293196554513542729141570664060249729002746562441652462033458094883797873617020229125621568686117437688462632700642636276793335934054431523910144219685375690960609477092216220888021008284420870079353584139778078452475971574454758951094695522497867814788805185553216998945540368875815784838573527836120941611554916314764294432730412742043884393807715013104787715954690624989687731776905553174494784610559913542681586451601542969346034093815199793517856034683034748094167496382084407176513358987215784772338559606205522539435429133267849529714281985060510898620376223708828197504822311485701022149819636535358628674734657370210424155017580963184442119398313483153601647994175340685045182919254385502156706524435237578343802096290843548906615358543826969631819951412212139446508669785118526298095494651970325719072612742633347845557811744603861961174271068222728799284580790861771113423073597848051827696820834013984001017293987530290880387857794556661729678540580195246753606593410995312199905865446679127665561948558680213185119129203258443526290718355739612099501536563582246453843300359075880758157559322242803505778710745501561645813713483361037538416550834616662139040789283554176821602671594678805580638561640807054037639887441796900929099798298158849240067330200977169232939054450834975293226155017964666282720413839423791031973732420760934223212180531827733886048241116960601507503960367893550127022024975217335912514583342534022326554861784273248913892629268740451829412063039022627043141892675000567632620693990196417871224894467653887788523072792008502481665836677551293177814009643694050884799464756913517274899859766793354858151835468715755954239597947727048765904133977504146022828722649922609811780894655278122744108817073075358055145975223575899114008881692441701100208234700253785254429493753260161721864168176371302755876806936256101162920426401175819223959152769728039135698282499684365437654149225181751403166343075993478444126576049151013944213428356759764251119488315923762277933780705020155797024760044387605856728686668522370202585413514412859207237094828303242251558285513119429693330055009279554747749536686834477879021434194973430389504334055848699096316234865916945356514326320843906165914080293619450729519572140722459386180062587260099128150576499638373099815248938045721422303234244242456000222223623555603666143123650763151250900750343795488698707714914062720847126717176963698267011557979125009107490901024327157300327358422308025373713687571313211753387222062939928656366990776225909823853342364753566126774045309702949939559614126864588466809103997223735200192910741355099449689317557578869596155929847870907320968739019752402970683499248296532019105665620267811843296796919178314701685976567957295011535371929421498108574161637847095059490403310914232502732932118391710100981791563678854317181504225161601468707915506418965769719445533124824506475822282251046704153555946475821580374573026598349973519865352080377361742552841729420998753713114309857389024658205624264675792160143832443149132755540189407374174705805071540241185260741350734443423532217296602002257988864341207846638374656004389199642932048322414773288685970560097083320221950531823856788811155418314875901563354529315885863750326998357722434481062459926161855075792469944730620252561934572335717681595822029973396081638821633088267204492964153927739029710333898895042299262116224857117107128920895023919225956195688045325144092865014971038316079100780428459194871582085429715281324935455685075775980971926021373601225344052137111344959911525224760827786695753536203277291042672430589484713198484104027337094105040571252481051780019664309107342476924110450853570281302341230895950181110770840889981584595227572513291791773705998856750443814458641716043517776571042742318914009151084682372083097403376967871184462896139421953781287704164161269704259221948771838965236659641575935066790486207936454068275369386561942251192596875031723738000277107850824920369416726348615615217973071684896201390472412174365807905769871130203254424789886367701066144225851250947499778470188940714921606925764175631257026938875484367666207379941177023269774534192561549802194409620572606354509468766742926900276097426079527718509868089414692962460283421435291091439558051217298870640728631083669958814734617843058203031035773902633798594675155326439271658534528616561767664454225723839263466179146918842049098589955789873653789638620612966399347643355481798175902218828521404691043537905634873061048799999032506524814945960211231084585122108057854921532013505117125069855194005880826018407972512439152114883093067916383638105348467792660809360143911621240638356677283125023664199986725900294330411591196235994926206559451218486255545513632636495284084050895202343228813748722236413513687685237557082950877816326606447627953048305256835362579872418001892117476831901541232668961096423339976320700417289794724942787041636680331175021193373499543545905609812043624773137980066344467189133117418334930609725257462156301098832349771207644371317141680193816659774821645910293337862650825093807629252380043837182731052624485061178971095276049486199945915752032817547906252235574190353185580449758729507422120240863164044014631870173785296131922701651626117679363545931741821242999755775081386855614959962869488167405345715923852544528495850531004743129653409906984573234595323759403212587741270474394930147974107953053714865021988377908521955934552587841412058353632138936715217264688400049439868515151227857318280873022934686735387961611780492297897838161150293348481025188161371392842435989866466288795793569277355438673766212458664640287394264359455162985556829028756942934162847913884595814462504158293260626816577803812270176320505277020456415711244633944407712530781042127039977787400954260102172334838825748971267261945534578196695445368109082311221600503944969792870903719889388033599174402050262513548422594634777775617898893182459720424895905550945346530711807195048245867255679638844855361866053545591536853330043973150502331701143854320508423529196264631254414229901035067287835037145670483211058413285271873597147074958757882125158742044601738501002025309268043348510824768490869205914873332218497458910897306389606996410142457983192870374414482653916309697074649413620869678591686695033986061291169020601103916488263062062091468990496814062211547072043927471445825146974768779962460823746185200387061512322375077455707733727809452755006437891853777920996741567830836769476100055349853402549875564025857064515145627710442980728126656837047662234618739409992992818047018318290632004406278060301723250883672590463112276647747909415007147153594817683370743936742272231809511203061811526572750911933767372966933255760025608765714838014046916874509528240350865129011872024515648750408448930564445954302089620647492261234593197348376400667222187788539325968214860742931958668173224096972767497871248551414859504321245415898206780049779500736898254774051133273968660780999395324809972282336240094265868912709680358786129375756551197558244747173061745293885223810993287652350091826969942831619055698484161546401747078424280228798427933337951147522451273419950440945455690014194621730582217913298926276131714207664365603034680136396136532147436110543834039743526957308566679341976625627640039867221801309178909871430559766942011734258271267625926912834291566905832425065467509317283495897392164284030934190446033520629752212009564396654380010878535664590654633416111804056406273128681468704784059586637062510277087153134117430190450626198596874810091532256153537420546336475887938165528492448545681102481938001501117199076785575221047116257191063554161450952420508807236070152180752075153494919032671930283542451865117258463055035381317031367926914312239627076834916889371766299101758728537399676935323532483785415525286852653961182242980403078841752555100937562916402132548087962922989553787085828312839082759022166742654723769436943165506893791448708780498069999042333262822036675735509738572004738383137153566034980760771382979168202021862658947348148767399189003692694730323016002333095611003684444664494250621021254019842995827856059871764536687502004818847852194687926809262856268547446774055067223443933494173993044959469121325611877342659867049986792445120542348713061602721688558053987379318052461457612135506843377417645336424132695764412057622646413355419720096975265524697768393513551985549828003890891760148804581475461074040798483728966067940109650324064495343795589775578769988903000488807983957667337953983311768465258768066653406752043498857758130832428961443110023335079880985170832484306663399233032500829830279127532725559099185656878997464384173183366982931637381801209158956402659948773770383064341568360415219996034883314848594404889896539969240640327781297049482654694753375862749643626735261442160767494709398022615572635129919399175856795202014125187592510364538254380622889038880436513419483107281831404637001112459971054646250194874577362505121736133285636763077035067420302678251586289380807335191583037270565122239650686737248682604118228328067114048811632984584723453678589256684263005233367174956754616867855566942461520852539215792429860296518096426394960261296982019397277307201916961879584054606289150062739240331183310768924150032581631781874836209904845312917350495286275888482771651679290538394456661754295570195463641591076232418096192249191473739188020075163095577012766141557803786202104418516316597444835794114513295766285717258297535048993008581298152100005217776423928786337657117717300689817947251546941870651777489337600645426757645564854028849134942984557670248383843294607982371143169093451795863469525237777242226344184623350903406236594958753786812291677497641787241407861643896927859937448515093161830832643011990869323164314159932963310728307714880113118381463673100653571067814267479655876474492530035015851919006445741891995682331410165617153001504479050040270939918276327305619089748518929981487496132304654898784105994063414474642831709960740668296294574462348520868525460530547395714425257486912598138125905101601338695730737114594859252541355520769700083129112082502174110388738648295533357162463988728591523380401538217595941937636107776769862241090596434520722097802976991540670684258114977629703570357327155063836574538678397121251142445796959493635877952440067453727060357347211642013708508947712180857541692324128243294865188005971409833920933411439944278189652127549120821572938655501436022700026569772169217441587287827076937390020841011471964970826366841229283078864214133195593254582475547799992796078987573822038636282769099644549123826547643327592475512512375947966671874106455619082541587246422161845880587171032858461699400416425752760104110338833558462223253357745665960993343087703379408042414024230936984488567191217452277658270166245648772862543700629244381785785828568059071441063617255143188200498775404646753823579216959275749587144374618595669648972602358958057225651242630005356249892018384827254683807702549540576783419930388575996028354801721498276070669981836868071715216028995273069059380838193737249681019973056480999908777057500087506310641100372743377074304644839340916426103369118752585247831018257032698553646359773678491199114596756421902310995700596759420673541888085298018417999476143728373105551023922087066977790711568484618320176026233807740851571663893593054530518775515957445425790970211016475710478685321793743416826794556963357309626827523199261335398754763126618894884182636242810123721838186905491618863025324272787944789900071709411161771810240146849868953155988062161368747421925800171638977729996073940414674280261286603814909750951167767902593261221237705757763027937382145781840497276505527398780495774919890601867824978993051782504536152035538851328641576408388593377780724434723562681660810066945189473460879452524200017989202912406693210964357223847310832124975533580335056713417478145821053978295855537160572050315922604642048069165022850096850869773266399397475277474344770775280247198555260610028178852217591052070180036623194733974492275062036068554656007433929903767382943222691220196710538945376493270123809195401990137183582144630300991738684095756794328964229856433761010437281622957733202668776152314996280642592487879833339055610202068771177120568105410882955851467561385100831333058926228939039395604008790633121233836387590261301350762469088582288488198444870223106237409801235574698634404023273134429806187575947163284727575660337736057851806797362360086697801376487505535149630144726823617844472037602587292141882871065386041469891587811019737981504057497434045124096804593710772985359313818473119352150832847976324128826947329122510678310787944826291629754880469856584918210271606118384751047947099439727248605261022429833086697675609266837780427412711609594190789423481964896277479399542696654695383757605466334722837236958737227950283091647494855790627535422088240406346915886248321372550291714111475130941793755131587095982141489472921535590838223128543217069520950780254363265693993274192946688936170705403521900912417584198586560715683046820748766499461236392092914642068319496943040289055891561162387579735207138978289684234957190156344088278123444711098518650086955006655283001841104724760941047621605219003487263951982101526651303686892910109047909139029660044078073664385372581767641219539939462133045335939636494680581524553918290912399243060158148223450656899297883618501870960830749926496322872783891919232326985221446020757766402763774661090655932756828214799732056594500186358984717431963750419736547074181272396059120267357725614934480169257327747007932227587463912232390699459819243271574972480562163564616598071961100852436493077461588171258640809911397963604825126187712574991358780835440698908178875232941933492200504287484870234495203938261736706041623711647414293875907717151648793106595556892734977303698913128706577629518057875075688479755884202484129787668273008855305679267419271488122366079415348764987500498557355744188036883903078501919549587259370011270596879220239723936094046280236887768665566242215638326775737448571097515174211433870569918709772073086699683774608161467719635855812224463663667265728004204422332792483575215468655575923850831937878449665068798708024821741797749426733379636882905872188188556075261812509461752457136212409389973976403756702500547610546905031497734158441899221227798765093848019324552119466863261717255398181638768974835205501290663477792976750929816866379376790217269038020159517080993554617905830850987320860844842520226714860398040604697016723448250991227130099798039384558200391511629611775040048601817649203909374023019337308865313976096832022979375904458747919627899117318638570463707247030465372825475319084307219128218009274610982642169591593758693818707529574431287915750621637421493359695963288500039071455911125505319878891499581003939288371073815684500422550538076592028730015813076889572843377476493310540762002292504700561495120065192810742383460038315626974822193426299726699101967447062088307968244004110145876435022694554567615257559842252451719514988486218593656183490516466420133316258009039180629129612206272131776680483757176563675147644772689061073116636336178497788578135189658318504155322160192506996704237812182477480159182036084970942236610087006214745388239238981574563748857768371909317076396200791317263641387103848576968516109128482847798783981225027549950778379652866571883309450052566556953786671176320728520903287678615015483031083940651367231265700237756839482385485243102622098557813140821150938541436506993373911149031090167341132639356264823445664829812928992592222802657019750222974650494702831446573960159087066525350340694979864451215801118346088142884504455329332392183227998443388139077337710479354809901421977708144750449691396151665599006756388439308226196136651767026806115384034584453257069589908794607200590388266191626345748540332743726289244523030464259723282390657582353472067875996450865854358806834153620840031879026017969949650446170178320285065444150178325134733647926102479498956947421059327326910042627254795362914885018015115217508280985642524011389154464662271168323711576056443021366415009200519006763739822381682541947336178540083119664402930363058477448543065973455106541859281459078552255760276711761944704165377994134859863369905897151852195559515000946129500152747921472776911651053341601621982796930792784387762484796833725002465051288455122253104993736802921836422773774116452523937839154436220931865275306171843782884177564522280933451964439241830497414502539706574347817230182655978137508770887589358103611906223257575179222833122150320842057842450913821556374720856423395263554209751661227419655642519893491227665079018047188265635304264332562985208528557072939077621165034190306781307080749179956860708187480282906083894199741808809341225253408933247923456453360370680389180463449627087416219991600832573820602868879589918802708787376439940360741153214316749241841033896446027976690558416290061908176683277732892720060612230148997924456166431964324919142373095986270116738935008288421197208922554318196074881631718143770909164915214886384840334452840826047324670344970427589174555131242428719960312183051295477073648109610281745537961462246150698456670331992649703454891369897723467367422850381536124755439509572971121170768870375669274265260992828095371492976041079063851576379179466663767267132159534807903876598283826858615168819157550838076922590495984242460706030703051288932989521951341325354098583832381423402681545672435336777547732808782599207817963895216365763512954049834948904236765322061298027433107364634841158519793108391697717886880110929801098276948147029967187874390328441773945597824917375285819905414637822079725888926698516456327000377393827952778734516783278339768957112106771465923008909738905740500286253418718587697258681940661899543501118352235402903179186066397015945074559198481687256993623775369759928619986628173375335907636987408781261771526753075226152662767537968615497785910084619437245570007581498379969663462124648132021410646688094148624366888828425354257117094981218929419832908080149111481509643249962691821574824676259518375879599814490605452672284006879635346459206102678541738074348490708543697619560318701595661069367813601053853910502949533061661686777246824880108103587810278363452239996252547275885090573560375901955265313803384753575299853303076464560902313018163744067853224934391001096326770226372616731834394650178533134550801026365639772993270911436895621038898809244799579648768721303780675995698387870120976244814732368252603708258672886461070365115103223542719703543232009985076676136789163264716844374520966843611855473245546994150948767354352651792465618010388520914937887161934311100083145404801787465923736334232818138197253228834454104881687648001623190297206203731561099310990841644562603348148618832378783262771182843409181973730976396840797311389520169562375594960723359130129336364896942557757623183689748210502833098648994502731050331383513248643717725664712655398100770315681669707031311567112577629502886856061131281746906091212411984077554566259106794247901019065218857645398946565440646735457466874565011454092385206882737444984656381782419019756804553430087584855715999013507270802801473069116377081740252572985788580623329816976752650999929950239569302413434678313155319994261280435204223416547358350469477536742233339818856452857978784195884319943582170726453297272237756772904775969800213367509400790732333377461288454732596164523898130492473023872982873863787449213601370037684015138941770211779806372501916603399212384976693967246698564720236865976317461832217964448028506306742075005505805769635018006236545558400423083405049450692645613816133338543929673938030920897715944509491437489136532196513447444030649278308353310573933779016821940971956831626447254728580744071360385666295804402766847520132025066735346507489809759529731473854597250337808219169494408189069986152398318523619355614844337906544666178215544722257775206293931028767065998637626860483971092656662381741713329894639087865379392674532564896009974216870899084221364867390673426960442883239290216325250786260716565206099825159790321356732074600789398090447187118333615431592711847800767656697749730538144566157257192412164066812282450328801636570281446981891170937559519592712817505143218207541607926717773448980997340132999370904030145030970926657928835523748141215359757250291425898379494306634455115584761021817035290147406411216828457024248161731432473350584402185868891218993557267672499899003228408088452888424607303863259306808032982842795967258725108670744029999135069118451290464010993945354174879784352377384207630763827886913885117717327240823789423628363690084733817677038370321709142062872327334858221675861760109534063947367399656769761435031922284905009278802422335183683235732367020384509001760474251174021525483939267231935504339142826205218467898066278391528291777574127666660080596933345228289312065696099775112827918246826394574090434428894481460224243952249953258662525174690644675752433705597176648505112791835044006931110589950442332154028090330405061419454699858546855523221922665976227151818165108766305548387435617885069685031834031802080169160456823875664458806678197207763534308365612501927969509981058042748795655470756402923757523460143025286022271500000723222427738958876667811837705567520414715531890186831510665424490170602846225895411059905112755207088373593119289920847647067097329715524224457622458641491850642856737856661840633334284729646102828745498023648313283480695986475346249765366049463222180600733655805761729192136988932745983885007744596646773483262528449469856278399881767987096246357205375314821132038222756159268024282833967045615149931213609165114299357889437117226609519844211645346989946050046943696027165037045202366684490106274322316388517621095336731737256250231967478413603810469906434698828282033052325782320648723674957381316026596289556903385837952046367317207770248454560638194094258970155658460106319488165764364281049741940738649500297160430613951762549384603573846661928323000081052839242512357292153182883740067722453238021990963986267101628102247338851476799003078566235271540120606574332852623367789912588628077432529777362791974279560456181126418301726898132772534692148472853800846371323392334108520473365092788003285992253245096239170111014193465587861833254246579695074122079976141566810480993154363016300607384227967611965072244753550252607668554953528887437770447668978318021926952852254247112666847842553510512090236415298585703933372386472728410540718634113129213872385088664661630959531231335950380551711024892336136026707725232565784474466060107108836294359154636072233499865685554257617868416851519598071897856416613233545786556761360721803400969777790167170877176463437090517206775149173915178424828897192706814272701889490728846188735451522874921432927073129547877062229107507666567467902318534893369541855462814673177061692847799571191841603637806504398255033488872706602798232937141734901251421319111657637380476385772583188545505479976112134309082122286812066428658702936694462394613033987830983303187681429569726656893253551277690064756633180283364902546892518430691802848076668316512123640757633463745201493761245178159394005337337673591449093560768051087899392018486389362548141217532761497934696146334657142420107102511629104760551875338288903966853526272505979733814073732021485293972195357358277254337524309133856680312901042233669122232344683157346906743564177730011036742445423072515116607579893135519520993395615590322621262761352652161218107633302875675673233567779306637231337891517032267581051062982080949025074767638914611085801334956650181343846029850992767551553745571143850847049685775715632805535283856775908188506983475926947290853374596733064110406313937709739709384280182619224806264437563077669195608989387994822697606937436545133068141722561820626485788824412754269751407282960270906203356112302141373473108881066451571021310719323594843062715578196461027148416081426952735798532267392034598555983257917084784889356665160685038383133401424996305797169027323532569142179909083065183068937916196310818220790504412347588686096686115570912219392992686868427558308085469366656751917637747062775974520054379847584212538155084292507981619330207866881253821748826395215964265510602665247448532466388571533959457825831219093912384558914868009358459659282967161003767334908584617432322543794245314117903227345472265765225538987294718254091271486566006280581191337287287978317043345873437887851582556108893806193155791939215716194169755209480870460022168743098839624090473997035196987997899591557208891920982207545802977820566460539550985377249002921995168865370443782926240445893709162595026228589440975143374552968285999481894434585049706703378515530785336422876686513361003981509414839543818248393005228365933016272471088796385485931439407648568312927941562514127539321265097501654077564807315712485970319026814906985337299947817978863069868610292191421613457215783978562505036309214049227601902326708338352767548868035182236063694307482557088883236035594189349448640802744881018104549192438388465598578026144852731157295025944590596808826819286143671870615177073485616239509094515430166028366158561764789305227763767585734328817827169820467842595701976965432311051475706706358638043557766185046194554534779606447058332414380619929616029044025595412138735719498030746619636465727841143702991958992035689798808136690031818872583996107617623854181304419479456066452966117395711677914922002323949666704531974481030870669623662546765725140509567874709075271880877642423555184811191206834811401442160362151184547763525917922859551340593970703867590356106372747150284489864648856448430493972738958234971068231184548974400595163568214572449144056804455502933067691770905864610445881564100341756382708600646882590722918917694187952730783569406774545997191084794962939374408897243889544535035083599864194633801545574477308663448487797905346551959488452721222761526002822565589056587535822021783667472916900529890934365512033339609425642483199818558612303642893544547719403777560993368237963711788229149403834844224135396891314446611247624280421970831463359735389131786584063457164272627519229793124176326912807902705116549438917131045677610605201370260448701348887297699742793102093337405474964671557320851137732443205642800446842822765211348724565913739595653407888635168617803445657474729053713085581181738014263290646233072772967889151228846248404288717433047927937161288717519962705981541694582377646877542128699905479788804325714669503235666299220826947352552161993747206771529632012017475129571074105374909923395319208837805884323037856814678290550817362923512486601608415199990595064013686369985392239266629496878978134131046417445138951068624923766224972479780930810683395898145718208672095893666073070173435062462785402671501316107586489718652525211134688344942295333186818384757932682736924684794846466617269788101507443157801210372616769692040994034334770075422583789341921769338833730259928048588293236699048877497960982027169619581415290940799831648366253499215732081065289214022271942555257116123586210501627550916009074422750041903736337307794386106093524346587347289970628739174141256588706595013168739939977529594119061492043754532835630168331750204633042764714119017008637579354334956421006746119989361765661181362985745601258510088633277894668111480809809454755250787826213887996717109061191257574521994141542553230214634355711295824374303979442214427622796164845522802774714166159500845736272464115597543683764325909586666600389618119803003651561449978354237192901668890659780405890980094419172917638028369776139863332571036148943436309302347498796236658675564857908158241546203658614768131604199900630537828751885955777360300405165012443335503004365789427129321463437918809020601228960482525427409220189947757146673909582647168879247792061520365427230502796682693606484798413498127594397259470108174848298602824675127438525984547474026762061007831752124016501445691163176444226950388425499237866947779409862696423138767286859993799948746664180197834356090327459722628363492630248295189093767447664543876979823243455839707398730413516060126975652390706846111886105066393370513549198502507047080656090335135203253783308854839348268887588569350078562283749864978456788876890830384000477015531945686809924391580945728223523651676010705071717529125246437495978050526469192505410151029356479938662459156429489353755046214249976382566221414100689172367782053758721000045242682441891402909208927242597158020874131175469789549684670333770642136107703666733756066360583770124901178698824133734267030651478080862908349791815469591157290093880465003873703082587873062904882824810981690804490704052009729119214551395595428316988614863559512778470892246299260167587528216338329577778064800778222673548134229202125360044563050007483243473248160830575240947987973151053312136741257230338251392377707038815574345654074725326261502772341697205330928937193633162368274966091294154625104784167034297250699343031553233660363194451934992972699023458555691637858228544523468806373056803783919481495214803334854553404733873105391894458111489699069638274162952010280002279368580195989624525117166969841773758468474340089327363134791544796757328662671484584004537319972269603322663638624486831450757177977622119532093786419340090720308944092322929143814636332043737930726326632298994991381274851725061951587716398506801595746605748509856487516414003939702103020149535881059112989778449903717583661233279653626919820203578740926528378217666022132541212103453619358645789718912177891081259896574903817693964048145931388876639864511294450312708110852479022178217849252190289057769512160412588949998314043117178472484899899445725551569009264094788880708982661441856226401851255986624512413291041709013395322758172001505377403284210141554042063796924529700524806956318667502964302374202212305156814104071913071421670753143619662030306659264958478900173499977335097474183715289945086350109049454376626544398711721308572550475684867673907010827105593748653452294682863164873061378768825410070985062782964616018519676445771390823278324569250605622103163792380227268127329835363443115306396625277285572254042267406395256152151036496203830774381206950482349441696036493081613153463017473270406645097962054410189171464518572933913398610829534526402483717551613230149003467598202374179655914331555478846717953155810110299166047993067584510461099003994971540513317510966856730004445003998093696076581719919059082877980542767061061825242464319392528779565407455881141077240841733106416488219999498637500443161607517019865436108449348173469419464979274303152281604777392116770123274939881258294996043253073474270476137717110023103472541274484823516782842120325132397377476306419344330071675521293384731200757792253985981435560713609057463650573264461690311713121331007482328760128517139482944012336613592378499616484401811987424675493446967145917363656869139395157009253287254331427633817418684631920143566293308130808316777209330193967289417000797542036017714923631393042915024325154567258434562700773544718416286587325013482534941569820125818215143248238121380184491303728576858395795737045341090463267202370835938324270255593549795123212578024074276030686029814575941037843137316239536306858882282874813883395711972495968385245411176670816410302454818426832845189613971645372912515578673319033925349625210449927126791733937701615984062105070013358370801803822789812656708097518999732074098946961781010080271808446754089754363285152160469486895730463301751036012013970835754046131934193760974601874677248260913124263264808171295822709920520635118577719066798804649086672038019791441238174498840602774076885850040211975567700224366082855551750281236880813987867470065130835948319276411582825673108956174297771185599358658818695827014928810649228340768107638574019265971475815588240897995300485777930310748132043701336997611584636424691298389981558219095230227038963538098308636234012111785376316781896309431117654000361958912791816550686416723861854588077144170851319553131689856228947467308505565139520984186086701828514875066556780716722628207450662049874922772283875506013660210776230943175569975317184747755503150532810878705661743199162621992461848998906370655252958194160375723522753502096473666827644496621332039877329973540728887134012330282186379744583958535750009451490382243307554998350483823990173159990373849248066092847498851415557347913326105416142626826518546590541928128662484626454609566461996007967028999459684645051486748497875478184240594066645928592452991942060944560899384771643180616990922367231857253166895700948769759970509059782288031982615451256572383547884432389514712637700052794798029923016358022409518222199887965620762262836037456359323103242922769307882914436540493835970736361656110321156379842264181789996492282156333898780871077465565805604047048771000039775154142476652560251764762570395714970816608932205036724554946133390493242220179020022854320650743459692509355665197707120851137409079619722828589175840778515997254507573710949675192990998519566487693181265455183674280775989870735049578777680813256704274852538836901655770182389850910938240970195711926751817341446816047645879002435467480065901337049512073381302982235693440555038198049837682447714887711401100629054890490001287982879767209372169194743974926785106377210230945120233061769792005190217856318503497509236060214028683246988343132318340172236551284855650067309285581656648169051772241730864876814644641996970452527731361116275147835607600654678576016103196573250748732024858447947848487308490317859043660004890371376864397819440285065361978409486978437977695477195257154542945304320225547065113365426058576716141167513683178701076031020594075740514032156305461539738928991286346607224313494843923606888983944147446658263589383762938310174132875026036168301055168896054205857941076713597732755896207607900477454891609808720839728946887671730760155825111033706872416930518378519562070620326232257755602212201799861272286522751772791695283066381036105005023438322311815166148380125245951167059834436373198596758419495654341774372040933242681890366654913627333184035305455752793594093986775828088833495627821126683935874718328551668692857234612959049307204901423638711668428313058707352363508272332746423380753662402635335075773062290731840977072963677149849486629764242843135946801306591524524280690660826376274591714660500428919067592439923640007109266112767934976186360190492688576543895631254916808106583790808810147828902162647995143552181973978516195263653813710134607340478817477814200616939991492285803402296102511106055164549727660638277010264275952354092686508180119062589181119425777331295226874548015844309327410420758080773604046449581527959244160759827139973515540885230620190735937699080990327607482060883384118955331885981559809225438568838449559537693543196769976520340303089477168447644076656291263667130702332105780689621923919845685809502870872957901323081183325184370628695704235395536898322353323560024957551811285914617139003628265848089791520359146469494450673196980697417239085356806953801977173513692456999602402899909105646881549087827344697082075663405522209841425655352161640336502378506359784743914747348442349466470663701373236255866207150495039939779151979673562745468307397435108227191606417908840748809732471121881251064538509568798385883638704846920576700882196728464755839320234771297045504202650831416358971176356716195008418041120549297889459609061414761851364100943037922886155302439226836838223822181784420812001006060411770310818263216186125569906416990157675179163110847168448919979469285591693468061562879030923665786320166468097157304407560485503202096898823101249262926891558620978253230576146255852858877439173171364223194134855874314273957141048408222820031855748034149482824138575128487566872981110314999340581705731551355132609389557262026405553660188487049756254385820144402433614964634582065708970201711743473896194470750071574238319105301246729843750534696371338689436632001343016714622356802581593324089362748234187833667505312742300827700404462983953333376421962044695433374796497187806223932125605687431266602392290496360635641680194314876974966898502732936120710357782553014725187399511158455462568366427495788289551776927170647383517736096772072067132250379577123263874452153181771716340169682808043675800911606493541500158609798872532287384861626354150321965423855301847562730401991435249796518080166465201354110365983935101671362403722265101705818126034278782737638694775556465410804706331647645649760512526527577135532305974944937079416798644356079017543082884019203647915217150754554827506843995683746642349132571836720238945232609379009301049159457506969873767511385869605293787182484172012325164956056137268674141672626589000877810225755235245122650466519241488183296535499288549382822455621425315009269266685292977438113834141731514112985786999097043203966786008304855086128748022694617838424719603658468072723213546127471634028504430858979189225959665529004103520994979459313363592965289843021130307978631315753527738824481242931523021979337471224642746476881584293280396440427214561564782070905812458923877156149060278917150953403584016974363572090296744807119526472268605924856500354325403511162595690962322991699829451417729132801453425694862255208921160834720279735945947070008020981328002091224177026351269678793297526893248174926740076724342140920960573658093595615240239670140068759128877629845072551261739993496229492075884880827850943508609761877824031716360913997236984738555109774625167978215111999548709926984362496083538904919648742988009656370010682164776749347813179312021705845357970272741880389711281461692251159024694230114630583006464436647620772160847415154623400839768367040887486446981826381315128136892996527581526327719525688766320821532775049966094296541820742111936359170079384321256087799403537535923032106157739157741526324197604479832276310439962966734953444224839268605565163684799358747813700918616460193621753561156011301544112423046803552273597437418672163930300508543161262019155945631614628318914239789073365168601055706530282520972921348016758023291485543726474508479177232181681303254462013881188238661493455725851207292432205467392653479301506651498870729170429469772993454264151223516256480502741043187985024483004569828401994066360650461925406196045947865710684153227793797273423187148991301912804199011750997782396983578389505752171531569604563520802876970726634728647622702902109927884261141714147661494704042248545908750443353664991386688023389629590882571799269720247505815110272825606554266190259804540666613572522344849842694675431923123216848795797025394757850999782672783891023909191299402717564741717246908210859167592288805074092858826000053337136584971494318731504467165077405090152790839928916586089973635062642425833027031021787737771514792529489336340656620831315287743138471518979252949239283180698933603622793963557742443781283366500024119941009734253283825919925496262755220398011263129315462185738830447968242989079508839791751366896232556407832956342634776113128780290444574290076231674415106165752292328129070368374914714349615429597642693421902717495781423362477607015930682274864772024598659673851795562638257867479436467252450480912250897984874169537872782162820207775383842042838988616734952517073536712515390414146130941991352813598208620192974171943772160835421825830657461940776392561227858253500379809429338471787905032821393331744557855186461050340537424977517282969840824454769360618573868920509284058460034908009176515231320469544492030553747900388221016844077390212805950688446786331958188278719301525679689135188235694827466165489652886523982028739620713562149344148480704389006417142668894286718723538681668173517151782915636831281961273784292515620488946267818402331533144444275076137595829582415063165674478145467315236581674936348262070162568475062655425441590409573071012422072504503319088521959096933841136768954013003625273016701499546931825898982277318274338401891606042574865797735369898917173419448395610889120844046506273829796957796964413041893425359349731167469559543378154656877100406888123662688104506464186620695898550285502271547841911517801773430943405011041059626382209232550149116818541137834581783659801514776694913936014263862534636731732962080278737536870739487823281105843203410351152511358050715571581702411981198553459307937824733643224887075690516206874281874459900873828491585421089377414701605065175170609960906005375202717415335971944112294977916017533488489790835625619048217424326000428104987401941307251415550258786519191429159402545894901817997837713382713496375053412768280470498155417048573420770393056362679079874498497950443982583972428489086348490126241505968850703267959542902475504124406161509986395553114001458203403798345852153494853717210011191336955918489753261071250921419027685123218616283670189194953640245033723259130437813720330533948214539521202340372244774996828552346749720385655864022625527391704064344173990745720504807366405655890446327109269344171092599086517822678339468644420647165767730584121476932414137238391401889517288251804199854171749952490328228064444970109124210262720116406382311304602427732470449746266262893531564700043590009700237571494677583862385915489898966582538728749001506540467482424448311471023364809186625000446065520722159515568101329120972959056123893761212269237138469013986351916849693346358260986823355557588475562875709804502824942814993666501856549793718904854030961528057925587438635331683649602539063370873237035037970474424776462174509098179439724875152964553620688803540999385468697978969000489872200583724507307305238078423922134270236611068820678174747690358085493388481002726860041721913334009228144978188439518426938704789784913371550748079218368783047448740778415574446204456112925987709083763787664533253558780107488066562995136844502003830546603897159065009200003666904450619788779133105050115944887285974174368390436783684486441639155699211872350345185585504665054213166004250082480108750059298667915549717903055118546647961965219481025743991110915174250881849400442591436093510936467416830411120524016547365680237097543176525907117614525348818705422592801399402199010914993332850070303944879746194814952421888342045822005749420298217693408631803715418707677354697986765049417045103016927551657598086541977952340558096323637978092635898630454254295026678323501017166893129840753250202370319684039778283892455854784943538664908610621578668245358203240573628129680419835641773130359591397845694833513514785699020080688975853022799533114210298521567294089687863174438704634291444505505100755514211139560943831770347657278915970162543695831694658737227344956001172376823167698638198876093102616216661172847065838146669650442162076023132148314959363950570490166484255593643319147067755139091533850604412164441918874865445993058962200158635581832499955583742455641048450212428832584642565544149612860770385625731190101999875822456965045244013806435161316019479866596852156822084182597299406347348708046020499961597984664423586745154095178897859454936011171863941610344496294768745089870533200177447668974071251266721186513401211992522541035105046469541017038811398599765666039885107369794860705569099082805807956243729855829905662334611050280751451035227813721769412960185999419118738303520110608662188281960806189003799259093979024065068709391615494896163360759319260085994567107423790095770027177045121848672915611985846029089742115623536811379275842582810883144305938559339230197880058079067404935385625086915578978558389513982179560387780852642279407668055472105299117459483485126385625929288658144052455462374954702747783019842180692413096758968153374409158362144633413247307283892378601806994278001544037901000867521827629378569555734601812635963025328887658881197307493768524396684219886463935330994155843863801772428124622616717193795138828986079642612162396230404086420551467302727809065147816835108421371596305355902844175650913873317794540857351963988191713908935646687702264201691781323195607947865973542208726727323185677390735604722740538817957654503721268960094658374970183205961131855920972719169810917587451828951317980530503611801513763798529970437260693774424607527224196824835005273258065209798935204313231639743862994384225804890057718975814776221602044693503851885562116755014695587288422683654100737677557250589129784352597388317328422043851730156739313450948984407990268289678330968478549134204403577643044107714561416334729002014478574687489406200187180586805464393820015237343394852956057937097755300996278609106598577455398012987861027023593223386956906662061461405011011166470076680909682158459223934295277215215161738595276626513147607091560294750371697381661513371530419483038088880937972089438165469537435443537918257229127161695012873683347151881254136098061371167115470043399696609433289889352653711514849910404723523722668009492151604217981034546268255813863690044191817024246685747946902769443262806028186938036821864890883852668760132301417582445010111367819437833626213237296756022176170226368627709216002397684059150917154910944546387407501380571336092975025321692208940491405301011294587610845060979378826585360697999868802053563136033566500511245560195683836577947087263175295672194854858709080680286704108526086275593490753312017228882531160809729628007164709677817127818299371225913323612040325401130220567792790659979882445089003724900571178150422855070331532119800563543819303889947251149754585753766746423621582788587180226273336456189970010162781454010624953243555378034235398931286662203432321459165999011779800842578607524136159107904817630827453760151973159757434987310410282974076752468925101599299751890192782163700596066520788009299268446251648517603072627906958702943817292599830777590179710508132919161779941002918101287523115065866414532554437251550848383770442073345957754252915725138035888314036699044571910502759486104837101588866743002076450999561649950957562352294000085551865745383989835171780421222375241376966960038145729482412522991594769867642051216352746669495623313242240037166277787439775212969849477432359784530351179111983186955576526580769456241017301664151309944102991596435501296602571235608970625304719148634424078858253224101588720814879848759286277799059787476181596894381757721947257357988105079439838997015159736682747553914125618202594800899467451512939892208170080730735904396177632605310847098368280622839622098803731655197708360953890021558891811342511954919242903327178987342776677885183117487718404984283674756789697106066331665241151784557262124774681899098747769823803484634048275779239582346445749440688192931563924967015095172718152299301748454325008781545228118910952249843026523363211933380330526078341856013942404977346432709286503963815397542086562687165055014429644359207316684594780247809632681469396417389528762331324235150626936574266011215076327972390155445986041518918534422688681832791688783513313208084150552330314952111137007917147246010543372029586816111237287716567005317638856703033492290798604957459178835854568267389864462581328483185836493007687143267953434634589271835891723727164181743986821321373230463395834963718340943728806295309875253040771652894852853101380692723981331379245246558550983016140285950577162559096114477431395898337356918781804200466166065694549241689642546251116456110296548215183571321767467453422842745147172938777612327429014330585345350053288186468445864018545188365529023862185671724320321497236348564924804301465386967186033209489416513236891790725327277857684171308624477244212777923646328099354333110158605131634207102806694840477477141378917022901408114467167012484927278815169857141192516563471382648004818030123573207042151834059209463905543955163381244049475227595669053391200858803799365033301823826752592565425972462869741146326120846345116417570780631952182502714748523849623681247328851221974340982378987909073830344145461377646184944333626078877255329251188195296697214903692652187773179803195521313143780016458655190991794957931759089946712853990856972554154341276594400252615995352832071174117456036179837361042184863893624253433501359089147688151085344696051411926918263460777512983584948684628240280803669266727431904684991197887293854632190075635672581699768027479332231618589086236046905302838117442443217179379220492370828255117173993715799181095638708393635661506224213531495126348296993995165066064038237030873322370683506219456476384769054867725996940078328978976404403383412620067382498390812433101926805384817913703855252688570319741250962970076431796368161193206866794349284541542661869086901834542545193135383536272459452431036491074298132190817630461426289989483220394484705528779201097837210334267724362843427217200163264891982958095900951095302014271066739761422573265677937689580444138934425814079499106099981663221025119493408094812727783050815365190890543162881506695473939043474386567480029297862575780242257853086254923081041414239153010157752216970227254942732007899283134123412213058966534127704873950356919429840185440891710728569907762818200964775625934963275609640086260209453366306892605823282839594275453196617207904012024420194053031834118532272331031020999658070225263219044466774451469632593049672179767751898362706244867694586518879716211020345455700191532667984169564168474596513176498898226776486472252000137651352510031838868487088195091104560691005497959777681559310963908248681442499628523848748378103408971363515258500662593761040839023911362377953121580600692762986545239436245270545938830211736048089717739375512375229317116531979559697098217543836590954883257197286109616442197707369817133591564136769994672510582744806265715485014093677712963280635995837650366600808554060935576015186457245344807420901943814518587150461651760380603612403032765250848442151556843966792474686178175175601641594534201293846636187299792130311676099427305510549358718945377471829149620916509118537760653027100294913318346452340236388280844029548511548094377615084906621153555296224892543576774810309909142416805444619857775693088107307163354190967761160413197485582692942255512214103565994059641874098692812848608938476591921218150831381022907138791159339204197146275336792821952782729660878720741935371016401607855406514610256480027949897942786687242896123604665816436804041527940138684748750505726196470371962958544254345388130590510735557411759152328735666061506964961438783745530770265956563331125230176388467485341817739604078177864098432309707809325473937328353238804271402360970541249585485773594835411341969149387242578340317612431381488161435088963808806624773350912567374120997039008226069729075502948504636415328094129597281521142048496793865313482576642480696842911420602680790704320847691423424474035655128298880852702259273040813770835297554057315419014900225406291027426680791633158678842913159804442695741296010121366720746120470694214349584893429505232178796192709811902365279638073206085054538942605236675093556349094260615484460308372348889743576820640711498284588212790426621393558998927377289960348654924862408368454440850260620154499396066503090080388743162903441900713659272868920419854809332078250480534027341920039844787926982032866925669368222903166345978200104400355682177460236276237266296541108489402706274199244831849590915237248160782457289467115073745396509319480505397082519381434434032254021198772919244417039723462323736318757278853384977062567558901972602276088443047761588063329451412405599298972714055569542393447267975689837776019351372889751745644866982329901989557930677743797741405302366065882593559735761598551658412037904517735376679494902511605210797601025006090073839517333278087707455137343790412641364210181814799337085524904092485118276144669933288967509993929705178521349647771800634098593939048154231689416371655461152152021004294448409437871597713227018668542777648829645916057436902953337107096803087681559900996433882419927945575709551422790873326529831982943633438472887068181274342607366364523517734867792615784172926829145064973942875984448064442436115868927610821283158367067126082677862973946977121891485345209249740698391532447758111325104945958481858036184003764877999138197642348888857175843132625744963171401022445473512134300763032140958167211780301030055975910390160579185918313562051170640346020230580682295582646598991920096300096247520983640744466992862300085007907549444351112106419661747456170579927257909937640124482148473554219079052625070419657152473533228979634884149449489781184682103765774911417441105941091707626446093599953472824039381454924068383965140784752948997705331819928873956489253252487345644186375388168918109749407109710647842909499274690595296045140082665392958181160740562500600790459530635486645071850054359145076403475337387658915654657435187080521665243009540701711869309896539145324959561376248863748377302575129564006032104862863051507121981432924103378152098618376217720350739373015215120849941439027384074234919168853077281426390040377970637381674205576287244693344531544987758530799368737194232396468972710957127915798499958824569172886796968317645681584935483940336422215587435532252967732483715106124374530759188617088429424374519976388764496255199533657256729513988158868123377074988857411411115047605786692186485586771526587549971491864202214550601117080357426530479290105138754485033178537312038861802783044479530994423633893033396660966451845958638602529773221892681582972504180621644463220360330993377122825360430758382338196035841015641660736476408083187867047681830066620238334287154333676049266188111560689487822779679518291423959951108513201354200919821462183428319710947590210718264070748773456261811596580994286984901299049009127933917161820221926457825495391360992736895562888124592225477555022294828788620346329123391603585143924512125853732320821364712199342497958720254594141830936157148699990773493923213894268636014603682705070144705665530215221026991434600639419398579563810581925140848826606450412275491611513256120963492636566375858493857817407068686175367041552707748636804802416497461321968424403894340381543543427491473661545720637350425009457850905733339538152332493750678336469581791869364534245764899393680814889235448367909855573966957014062106943730208479621302161103602617015771775642744245247841674333675792086740703183141600242586582472625035608089797080538515667695124514793864945533507491276078634044179353220512890502901066676298399477040050200160754260668095727356680033779898138318355864003572854907943466450266706725210705008264521472637588850937291065050567718336090493210783918193394584198255136279774996745682068414282065604448504148644754041037570284027547014089480200889745533232917319514687800680706173890848468325211440599752693600519059061650206672247178873897989239982847718180995290129138295542468381878914336986418729348463769803211164343145465981132072892098980550648920503521788939988711932908988852415439122340695291184590254998134672364408465057425738488166401705276758993905874848185151147673645008277075471927442927426298977114128388929223602377515489753743826426531158720219055666065185116068928252374620423558147732204010540269970372551446925348151657978181579287911669790344808992623721790736601233907345681136872697859497028317793871924702906323344261713497671819347596141377210173269061329564388013660621778509576402465607357560662679255168178615261212501308301709446951161087263810710079102770889194037218614692038410364747209868663418481519070374965496700806132620863848815317401465906073590379150742310739541122979200030395700988556042323026007990999165761043681000498607710751214238795884515515464703351433437925677737861903654487022068609411365385177842329195490978363915321999444652012713403643349499113085577749427025059589175627333025769716456822472119977321391673105104306229040926622024827963522695195716819713640434575598845075639997007644972426672671358788283231189413220560280318993340400939247994904572428829764265092336547374881273391954876831855581774890996155764799709668561285488051589641467008959050449840321450757364815464547838994136637700463357670052311899124849562600399850593974748368709515965731237192290214589428015608983964816588773483508538457257636200307563867184236732836738847297440060199806495115984243178363160683607826152142482055136953059576080611933484900222799160780428227058674544379756192820745394053220496007393622539914965147142205924689300776863176286554322078078108366269842748469589622689773077345210425916444972787768867812091141550581564693935577497245834579471751223376459264232463414461664863355375124627287045582518505483757748327417902968761918446961624134528280152394961263336842431380324909791069188537988773533653762013937747589958174235709818600178271002107499957796291782855734328546118394462220700251077100745545722429953600129399627454650102100851481757640323989267792055719189745151637293692974788110918083151444361975955737528717954348764933446323931679120733860542503808773024234386493682840493926152806041768855306326472753654527496125458607113643917649830739244012878669518706015260339785470203771455504018924619375372011177760352313457673753446817695431554075192211827974883963368376818054046323543657405021854229549558129418251277284342049910228264344264135961926397367709407882516085620425468456340117553071404820563283675088240270937652469802488177524515728681237571677186676744907946380909365699844595201594817227923182218481628833083902105251381900476362882452178764083370407941757668190537410968107988520477161205681537107124043527493620974053202303413891398999165542204770688451523806908957722325098651698132128544377404820841482477283947343863927201368633368792817964839329077178267764300501905715554471016840676795160987021337231169611129026713869521340435176319713911421565933817471275532648826835901175172729710580396524212928872603522337107406442229278368206130820157063593830064656555394140638273946737477197919825650355354817331864744605169039086141219442301305196899968643969871730175427514211459297096527906601285915117733011498540245794503097772315108537030023202249230461626820259511243310988363071748034786234189299182038708801581897483792431124834284819793548738792058875083420834666189562823473863163129325954233942168930591339157080262094218935624961123722346642579316079035502814527566220849781572863500383061225634721030058002540399247253902809065457277163136107080778368868174277079082862224903261021218317586668512138098259679611516723579785316884826670291599011523936113844640220570164622035439665034198604684229581276566160328038065546223356035423900532100315808279737746476695728989500230958133928254180108588992156599252339971151253531447289464499909612281991138900473104987755563927254706466961722995301514848139244477668102415952760872525431708927542571390396249305504539698675405300721741341224314412678133847799052319006789475184357830643560044301901845326054168549437389552748909720425467048596317955069785470046966614978565337332235623244193793911515070936761291917944816648424045726447086156355981218636390422841794382894010017493978618855830637377522622921728210638330527311502933770553946952901765571409839532062391591575705070454163287588030758643766182847528547488414854177169031779015734621868167485854763830533709157703439997860692458276374489002060138184743126485938541070571172890862736734202200626314704751053966298868228801909610257258233537272242058075092381471068139110654719159217495861311737274276836910770523586115442649950737895613396454614869301568476709392244099266664356440467022105368124286656609609022571379753554295661151393069059501954866140979554490236276460240523087302664190821155402276924186881686782411290423777372074727282060692783079567997544489006411734411924724274125131755701532065241227199703369580331248507294360624911790161133845341752766704165999745316303905559671503871192417903913858558052885950431542534894000044361257869675809923690836636277118577321918233988436783038094332197016210333458980768593597291668324497551498751352270942648723325461377647977394716334348270832348612656944935556435810457518087675594709768747943838274417258811734603940794140864386273366040274157755464273423518071257493759625830380786377164372330412988674677806898272064139674292727960938963572227334435830743911428224043341653321456011247020889570266144668234354138598436492482267981700247771193366834574391773639795931818661412401707478423996063254686400651198408142609077359917869480804467417018930015416810508332571510947491335093481822221612426094450020018561531358793332695557031233668425034432131750112617003307243241707050553951900749605658027385455825302981823384340814319798924572289587865579927987283213576830605359769374583443999044809318406571180134546744040938877292984327456043765301734503235819910053179027438141803253453006662002449719551354499644373267938168747060028333007898243721920913908598222411466939835843823798098706619153734869059991895056047107005234892340954041224130232411191843501132989798456952191301818079682880387041387928132391351234925647012640413546544818093197328429522656811852841880900227935128225733653751448638893481043309763297804094016882485398301936114436669466125875512996269334352328495877192637029403015231283387357364559229506669231217848701444596015066052843452210778473065881781610093767460483371056459001138780074863037155996443475799152647500363111987912787599317728162678639013771894568316199570396021016374289501287189366418383534884848387399986898197351905557164006897222129642263559132937029016343103202719990865788815334796878091794233312898610688279731280342532270009423785658238617691065321936949845175675436775080160909703366521577885497239843468650123507345337548053114297933542718900916343720646734794595447368359181370892638813532727879256074812748330812662250123357077612069053420419517132399800148808636415993846939126936055104236591096197040712682285785697840415472197045756581094032888391675442817530894031885272364510035631065364751577030663945607677054482406213044592768953351691494694004819643846633009954975869008361186405858544452240969713680858940300551197359714979082893911209281154258852234270470003246911439534607106796659727122387911098859339190199748955778705612196199978170386001934706145420106119041102640507554853850595748149546058004741358818784214912254655131876315519262159229070467714180101254109401795815156852239065121413712353673034563845406362972216642300246654663058918068628025002691250835189581896508783866509411694508238691198598283184777874167624035479994285426319018276300486731527439527216685256917873921055367718365881055207095305776974358277757798698057108268967496301328310225732120323233290885997737008548722274576968573182406847581136158436805875990968832281008848706497472552590516463989952557857056398042566742207460981353359253841784153038834650141747866566378485924294958114039882573842209221798834188786174573788898962592666145503335728719249946813922046702823862438493426236608774640166626879364456419507660530578716616835061315483156267877307757413091409856700011539304839735674230335143851700097295685688272630734040514513492616006762655266965134529028810417963383035174238743079883583834352068820724490940861850619438616639786802111876106067164236606268290201013529462271169833748942269529838256380459773232648879206356262588835152639310687170343722815861139871806426490892630689189392615072297363461389415806574584803115159657456829300779065389108517646403405600839180674511600551425727684695087219783834292238593460976511016698543780943896172304171152064111850523643956789315503753480320863017078342845378976507554409521963635038485421294626232888197681235017344697705996771380138285325888576870089669061249233898999927040407497995323765651686552813086904251367841866824160140822294015206043125953315626441851486019720972256871626408699896723410566487009068752971353374234701743612548067154533782797779175105182027690639386765619493458180487689354562310271749055145140473164393490291963970958715366012209928536042188019092028504922147232275396850735653200224572042340945823717817774463697056107837973682955606878616308524670806158556215057222470711235477517518906057552595611362858481520192342501438490911846035380347917107990368665096983305800713478817663894265319789992962351761448995359761987740081873541057056782331717296274006119619582520510406937394863717692279484549796197254449274443495969165428384179760837611638144712679281198048021174118925975057335131748471416599234070034293170596829865748580203474088930861943577076680592313798868412696909683585744986309934510418105858405548735289799980531599196327607297698321489051429011980727275645153121467248889593411484739911825367621270747869245742335402859239194178770693586039273609564025519073255376763122097073808113709988630572734564426387578929636801817061152500464698694887822694106344483036388863876372624243378079988153049516153860489731335583945330241467131319948749304800368163005306352981525065971028702035642607235953700675804382790963801481923669290323811329297518604218171383516209125469084186600412103258673488709561805270852046031993671209902367888273206891889866437708727758988010308836399960794333874760362503342345378675799458362623436587749123176985655578856577333537821820706382888285635112552477271127735110089355956785998987387494539024433862018248295833556382691411426775143903835952863528971840053714947295034408253727451797236963182315621174015320357042728901204396909550960796546984856393580798943538963714776588184801365270741170833566141024382540775546647193076116908742790706906316851977670457106282835947985149735524688356203263773172736197151463502949715782211462248880412094044143101984193229843447818995470928126535385114843791972293256396530967313916457956132005118734345289454295167017441757422794161976974827346823385963880784503871678183525068864644356690868213985017353557941360738397037108299731878267953180014512557657802814842462671490825964453476663440037285222137252471867344761865408551346553898863284879234911829740167793376230569356214862517887762014644471614019798063220008138752913579290672054564725120539125769002204048827031858269783642396627445714450605428878740183207323222174615068478025123741379088903945276849999046561573353441065396968359220457639291877920001429047288373115586826262468823010350930075086239709917698957965803364137566096328509784578186639915680363064545755965059230623816271819863925950468150158280853393132217024434800497443772841806346196373524165156153728403741540756048905150735316126859740557982172158130703560262346968279337076719778614586181684720120250887760856330702599303023582267070218540767895602129001105106646523664218382204075272209559765487632938147255235395445848312212704603552021993879213603250945378270104756308394372127471876592569032270678901501449298526153912222664861751605316944875372763116582434147807852336236772147235774650663718143434555900837529504088224073242545889615970186575098944154313713734792334416871268331600584471756746396267811264388639161702496839139192352325793656448924675874789164071423306856677600222524821337063396206948362026157854690444670638911486532744287346516829929591648136596449816276952097305286135120236100855445697308273273585601884954424082916349395411930748306958528551611204933321659931283422753894919352671553747577633946594492801538007198590978543070371283839713595933106897015225928747190662257394376854174336712779542205514856926590070308863666788229543494842721020665584434647236206882641242636089746156552893631172131220321723727468986421013100628899693723344421762655311045229149942819572465415087490411361113552134780005004188962595719737085555671897260261498909485492944703236441283081588852172765672058233811235441508057765947042066847461872337962485416788985763279511605191511886870377377734728414182666987095468174753055341488339207647252642104518336603593477936162351805968514914557838402262145532320628759077637802350658787708044758637203392295123345844737365316135703888539565097587339349812171009523833082590743627611412006110170015166800423984788577920260306055880954570404016266615411620110253700301474065574091754637561744387398483863708870067150972437420584641249020122584577769876200504746180851866720295574573502024495271056414220248028102317580367105379679204664227143145954366524645440751519105355213135830771871844923111546627845758222842265285169067519810012950157047960897847713767569356229818724251042564202267791285032974313345644549817332025079392347662169028976823122649352882793648225705667496636408294014285299095185978982492326464033872415036004947971860710118724270499332675704346974037950960953678884450238096632974087412145529947124885136796761059269582732861095854415129216286775938301546095603996811160033053477713081564887842226012170126727276155243159460923101482858920479249398115196724855191543111065744170634357894593511918443109865722193341127640720725794752838742979408403697022091139606037692894585754535220833099588195967106262071642866991599984238936753109139140514140208950376668149753286292266559580244944210073893972150967785539650945318772468273636267612475772191485907849831510376225511874228797428623310569348171074199376140700143033455084666287460339396554095487948275539449079432649125677557892644388967300839827945996749351062386514502799625542154860295293532544526200128967134721443809427252541090437975857259977068269991880588905373475119049026429409053168258737174682765862070929823413057837149431893385904160660834972114985525030562246324740003458896229236583833224081339269547181148906343905728341194960013568974969387265550501645039543074940701642522158995877899901801381327775788368307103695729940699262157243151985451371541145051121444838221587412162144596651248241305493886622733784235279062299649628604043599083209522635283418792888739925205256496232149356439740270429416909600720365893482251145759628315160077098629374213930719293801681733286353285867475261520800342545891409934273173049634663819858324706098839121499205395003708100230163686465033515720839830388383473848474789827092012657532614868534110019466762245269663576099531730389754042304539933732899915143061565932234016562888373706839895199513535694205223642959331249699373590873447566245399865282333494651779909791121797751243728052624091319714527404282519891587930291770260145376253214515347486556744878916519023089478489787897736007593391452357110127222388394137911595845792306658713134468044918843750369786577397926494533000708176078684883271239248751244175212174882459593082845457922622278666990658160512871597124754545323306967845575586665372423673956576818907717083912660755441005521793062430481668669576733961622425626406702823039058720770434200430748255859231329890281600405338301002513254352417396615055919002259275530577204440942187558821574206987579318548471339139315231885762694384003123421061276657709435078506448925037535064539092957018766119779679321502363363245472041398024223331488944482398992777252654655185668687740033714050693037010268522162232894823598447588090553041095287895664928712133619971327753957577577893051704095249072870978915712039224316821614414846094141487863301915013212318961540395651088036653834838785184856225099970901545239364168950084145616922455123913753212069540030240925972170188851618035855528168501133122622232693120593165413653984504552047914837650357941708400473488571705312638726121122524661456472933780502085996215733955978740156088379556654154425142290745870457857808150833988053641323297120574466706397575720924465036906686943501634838852307732995197296979153345921652903344126998844624108909143572130536213961801189928478397191279957306652285844725072162306781794999662936836990801670423463340937678798493559025861214100678607058534148255454716011905958583630508147258599483583135898280639204350128137205945139819656715134480179628240124633204404646865564225422861860655652921780375104388348313481660147855997250855605110933151504010118304244958354340011013268577562186052344652184180945650712941459299922423679674127609865042586972606859405648762851559810757224902474291148986681934917307624372410598626242588406069206231758305726412977465964773187358002425013889589161178973893214006742649271617233558413774784908434681618192146597379171438099457725530447919222375984416595060705297575996621418139705394801047452119469392715408602095243719502833160440004523983272423602005261609608370843322410718240760649073062783800903818510423213119544381247128437784138654211733169809429316178581894681205805393624041709185527332996953737330801778766760393559985359709950634658208883447961934971627266351378023871206752469455886851695194118560559322903152023012630097457712275437044749363215565308819473228036947096533878070562539331706534533564729448107881419306101736365893424327795386523155731587007530167683475593713559010280077414534670418123729592102646569289389546906852609162618321237316457557535109589224002534639522057343828774627026307056816811511968177599757066000143684958657335058999670544044263157617332122909742421731707814543510345535760493264849685225557022937361664206005349608822563182033252983214332930989845542973890199914359701023141343245950760837878654148885484996027069976222265256227746993610253642326341381304913563003176917064036218763267559941354769691570873577621478013117675344026716492828211869740031956607977403604025558444258498810802388279553906896473326013078060822422984829944155011104281180998615961348556553299632760568668147884406964390594316392728287070936942275935114137624956992075264300750570249973768550014479823076647494369543658654969089855643531553478979685074296854980024429799286903560795343971394954944334026686023472885841211606440081076330466988938675325619279393949595571372577367388762935531981637345626134791536529214492175153601808374575786723116634474290610741111315224509656944777851975045354218170684829392691507198021390469075121645619567535878762045637348066356740459071089558132777920400949152158138835412560186050130745509026717464409523996838017965610445301125674993830384171833520636267827319367342937557463990953635150980026502466444657483162330046843576982119805849125843982236674010301279465475765368322996869980556321596581430199802079697217995684767492737520418153314434816572948808242635183568720810315173339647533951404073118161583523642692670457185815385946173185835556619829195191902606849573977708219223189189995517402668086603365369153563701341692912915165230473948424336080804851141347522389616843217681297230249141758700727944187810683948475467621740165479300999678688211748683903367024534353198402359713541921277036622744889383272429089873289008990111557153697447575924723598820443084509569936063054054523633529829347649521062959788338101611087737493119023794265058733704079431673396298670132448732172267967687544709957057571384846220828646549894221585622594293592650223877870118216309504592932075779583648743906374463713112752180113244431363612519229440012300509497215469683890831435408351343274720669862332262477203753470893048640755190390843045887445075923640088242591187431875048419341690211182790744085159310477326286647340520977372895785138531919914809202339222608700631591057765454371246174811674387086482296903089039430599654136127796059040268557319056506529807715591607836924654064365399580241370955246299583009617392502925770297653726387603674713595957448155352257219752131233580162587118555222635170618899875849180736816494317859136330051979404584804505774880137091977443491177498504446876810220344830008014953820432212213534816197248766415936686870599420983977746632063256828371941598432268743476039688575518952477047355876559228313203207063491901244330343885880449006074599305271972983792935188170494507938596166746634329376068402148136862424150217995132458257951412013231115009747580190688007057777712805406429754282716356497992122018575322318120330830036977183766449474725371207946556449087431271711654392879813004562612446269248275131292510031688971771029089775230318539507381187235683061521006327845777482392391211297625663091006164400713291210463420232317369678037923064400455797031982706374906874317946002210686970933129031052676143389492741487224264132210092069322855990891961292098761061034115976179179898744194912860882536163671738726197412474825975241609832016340997488356891635724801651463307321248676723530951193493708279708922089247018562738300788858058181160634290900357534281755417955289144596858392775530791337165952462165697866586500853838524249134820128558271757130700455233167372370149672671046907104273632759114493008987663391428807347275303475340829892006806389255854841705514942401440370363581724813610880636203243828167320903129933621181149360255136441285600011093608346423060779892412671334609831628358369779865991023534053071996941587853111127711977488011593246559966789019401264381239117403246171813636607113433430695904101842499188838748685266602903333738331952862901815288721452608867288791042291245702449834191127883990788408568903188369869702852782683062227319471632382446657674035975519214889560647041934831703975372408673606934702114094115363080274217895176297219158988807371214708732980999460217298393241802840503402282996406557237386989126187985329668300194262198690063728393602652929062603308329061370542965647816332755812441801826749964748827215378021027759165104807923819075980899620526784087218056788515254619324376739101996443154147441831610374868864757975169710012272062268309196061239800677004250151959192079470800537840310062629460056579467325493946148865232153331301932587652992527451456535088653570580357170532146026922241316857010497953154984698140101493215471325405069073939103017231862467348963473329447911440792207397301541773435293747488582159150325417446296307269113105796305815553372014366754804598405760777480384043062412288291247640733297181159175374282447197209128384982959055543583426646966922916980998569824465908384080001945535798577072734366448850058121700361675609784807734752929617602455467627065195270270432772643154730115132363304948452225552203593390684548408896348071660972294441707491283204056757550598681441659809242856190998980127863452805009208533095063912201761135313328950732565080971115846609203316890202827533761401764050749263837042220906931794864279276843798594375330164976198340181247033730060943376444302079031185449767846273061396512343127201094121555939506948129828560599184471462954902564018707419638732471978546569225522742417171617748106713169030419705150451183377498492732297105280209603539539622060084729093537820483821152423330438194123649536890993455820969834159400837919396740425864029879715046512775412496960772263138519232156625976318585120963787963854381857070037594915831457087881537639205350198911776226964436713943313860312611773841072768788038678203986673226411024457346768138917375061801324520242751070494543262052154538767025263520811122136444994465962555755826801137131461244855742894399855672035622354369210537653727567397045163661864385369443792334916430448558079276555261149234895773795340443141256336076254390056425884309926029189496091717940525332226525755364506365964391125510452575571432247501784934825171771285328682068920568132650830685314331211451743054818508391814436530748391319684703768539584811151615001773773834679232313272984277614300324569069924356403116090329436679463497519616739163851134275020211885728797560886009990650340389903746854444142590145032632615735915133607602642961924292875804942392003856063528010557417559306532636146149016517210181276081884838681409667095505630010163704866528931818487484972532926946485337920869852989558815826105663516176210008521576054591950428202455378545265539627346676617856689837205958127086826761772119942993968885659773704269500779244995923555513246935824324471735464044287419899319611186312535113480965775458250581208800884714651598228356952251163632907496759320463420546205354291988864590670940165162175772028248391461180010323455646723895492831008035004816361894387090025540366154488182946623190818325188189361061129600623577622694261673005244988775832137487137850756530641695090864416017313999318017604431470010416079782772112857874026799593393945936448620075284255930748174044676850705725889364392172237125016745684292004031546236606791843055957180279137984744182909647041396393855789476905733488852366119201118557639426146320900647397624915753560640171842012829515892247084133387447827741571143760759433485907947192995028966955502253168581691835887503939388150691933933716690391834181781729843358416641334748567316942658143073867394983463916750884254897300427634485140111178515552523733380023644645677904418652619893584117022260008157038810269528605838294522726898959992567150670912500474570212081802081087659724310081948200939625191706761549052933577608920945020202706916207039861656507427793299654638734919806567847882636730083180963225655633652284029597611894059648892212938596531862800708794225181676341355522688985186079299835984039993804889859225480735544014148774185159887138858073036093426392585273593771545354789847585070282468534557866885232771708373669576793510460115230876903189173644942687011522467465967287129998350102824523643086511971915940008722262260087686016687329340515688299781575329083499066388314081733654677677705430565278647591587835399374040321686364977676438319770085413381739630368350491488704928273351589701083216977457392614546085801329005413642930177200511509564242768763023684037525714561707345661612447138265498943288076671866519644383126141579686824858767835693194869235629621913982081186536860811661218801706047836269809843956532834882839306177822722380901118143496489612797691711982471455678954295399789372734155715370746990844579412104796457888400800739279823789237848771419062500037699323948708804471602860834567968777189370614675102178092827760902487264145622530487056577786056835000786405376786275479190342086602645343707759938141164769984887231608109749371850599814789461828886966046976653665636554443494442128914267412126033890496089328002781839738542792337756571135957312604970420050858093780770984461914722151257516860840599619467608298392523183209908963339038227460980061228717460620221342517864713256398396229585733228068658769877376686280675194157557181020617596195467329666755744393417058706373025879709286130629462118395621982095940451309824410267814683942644440552099393996856285096781210844243660376502666387378444408604795222035319450375623211289458864414513075495474815197604896598055066845712293256806914890515929958317986440393988737557664035367319433735925417245329589152705217977586969172800202203983014649517896187894235600585513646462097894709342293039807719503197111472364746378172621129669703514264055646283109269620888714500886538706067868403810048468814248916582290198025612753381436922774694285473430814661252666509420610666798606991825974032833296258727379590440575287252215509191621469708459307359889530889646049991199352455280448194925274015370576189485862281469653543719234765319509652144035148640620136984996102396161164675748384617482429443802076807121628610050319706705737420043226898467441621625124424812667817967647793217852788736210365915014952661865165381030921514971991674275501122084904024920829015531364937872420495708855454112973770599743011619410279768392423302430807839269221243983982722290639923594529584423105936374974203607771452792185948302336230889071341926700011237888814218080212621807545995828228696217984223439512390844108182353318279328114399268558032249943910097823737267239150884633568197967362968137443061979495538740316826806948039635753080845313145849802096625463394420079850793309316936470394244228159517320558520167355082585600456935411972002988842673471289908735241224460485779303026765946649821252749012689849419586274415820746195289606552405180319918566113069296210676487421493026287061091229522944323019987499348483985445308075302688766969008448634526112146403006162550515580956158113952132663736289165221685397760451460650318376395220179613733223022398381826417654622116105386223086566588594794437889252613350716886043519005267475130828321725350803242794067018539306678298664338821423975344759360624567960506356673506489155605872206040622545188403861316471326553949365109993023556478226750972921609700035389917981121674381690969353755649389119368268309483071695490927600868179911840043405551913622941048135022389715495800257909502206264983141334400593313407125668982955709819298089372041644923895014806114339796502869778307634975962690614770305349332700114451667288980712073885797183335681706240613557892772170329342653389062099805946440275545848214319639942238066449883779948594555042046182356971805990723909888290327294740111880442328597230234422534170503735818916923965598650947036120652199816019979758506888427225850031668270155692445183602706282493229447181862820567468102253085770962995556577949591654456900169628843002842353363405195869592108361539577401485819637120286693015804179315723689977386105414043241149321682909050245091731113154116605200457694339461622796114225915818980020327697516075073098134303370254865757274723391901615165669003484588446685131484281598947209653149886709012149255944357354885359202425599644032707360985926735543041291506459125643014812535620955039270168331210722789524783618488613579571279526216733937845385063862933350528949470087728174510055123046726397032349649804573972227441397574558263157685681686082705179053183749847195102298661382462133277614523559209268466897139053541679257160343113182536695164452853251967272111506059399737829046222429856568728183983381906656307835038937879721606067110608794141946896118592231096821169408703738897971103292348534780115578228354786277100175982968976882246993040687363256107455364991862573699966253178715133257333133276264496145328399617326806107416016050688026137826814499198535481999566706812693275384721518963177116113693169997241634656433992426056082412348667605429089946289098434287950158892983636377647829174356411391592275744260649798933675187547638825218316546298441185464253536513654095595464294401959871972118442528876474977723352332148788303639784088188863443766131140852328578109923687877220316547406003702180918051771903072914817710817377595550464107900943130602387872842958784720114354848700950478031556090647244831303101128228519506570086939016427856707686877619013269663964087714863002935883352887286456384475239975705032012239478909974278236076975324557336794274764051862017315274778925764022200247821811796358011361565952751882056766107715351997094668363444590042552665527417062153167165751371288257588360498672695576057352657556328313214724030314737540630328141236364975893411402636928729463071199190327411052775163109250947386157928664991806626526784801965664366124928445865149369769392546198211613696744701282834768817052573997613203003993260099634305192338830946624479207546350806733201749106989942047512744902062319830958221071850700683863012042259832471792018871885051904188254295077987259832809393787492772109654394125775375885285898891967643597872558577639912916956380267982058484453332999682269182233970520249025433413580982678988577533574960573402199672505508376755581911682107484855319571603441144257451852961303406322110750035263720062478869206530425766755370048572589769183815347447282483699148545799116535974320485728467867178980614372272933287033280098389180816381612753421955202844428459756389310377270567437593937939771327936003612745320300273273981818696039736913884077494949605165173497684715999592428199168829696360914490434505184500153923965321909986432461543912139584491450864623903085573204317852717211826827188722851433175516604292944525283327847556091977196295540962723032816710195505292996441938716679868825487329462598132727601854038302602644321701317077346940094841739148545971526336068860394456853953652241280892240194954185268969297139284154040626139255753736362388452612565745312166891912916422554184323801987264965984083847176896010672628651859430064718854449719071908657392185121402698651279040939551414173027176572210157524966398737214244731360263352893684049008417535811121281820082804715734178034005153044779516332476616155239424749598044292051652159873445632454780962598548081409578584537969109404465099860180117642376245130089472170345058778278408096263115733801948352480642940620195322412386801072016753484592150327643156428553178651216423550473635949331976909067334509102875831073086696098142897177766729436870922619628138318603080109360183220451251804212060775411041792828761300643737185703487911901565409697910997820061282847455353956976808188352401174571935681863856599750318895659050627952281749792056408837287191052341357178088847002043207237522132679003379763147714763467010492974964745828148063689378961332222601649123073103954925377098109992424135346045117008373462902677813029334568634381281786558732805699106048727379890910286443582790507615204886930794582690420349720032111398024295590684303008742946496449298323919084912156820101066172854402735015862210230893618353808301085306003454176686729815161866935711670715450190143200808321159046173792364310819922974108564993436688685812289736432600951984572145633314048839674458329128554541570915231031101843878480970774186284764579250523013824309166103809376073564946315924452652373125608329599253964505223872098842689006548018750476447217949698434863930498172005253079000167191371150628160686711509499619082741697097441999333690943032085193705689259175338033728167519782990332658934744716313144195515015002711744361686334423847543680397598740141997606856111469131628988571067060673605531277379148096940490996537604722819782069511850246825518519895177702265901867683143620643379690346788433667504008330060699235203320762878638992792935595480690086269762797198463208348352603033799430248687744662740025318373957974538062188455453018909911349638200780504741871225755045550895666966939343452743124545108340992107048612663127339797239580360019322986539157632540508030610572326800511838663091002758416044864398276723759513430996616707796234168757327447549170438768797190397298067606173387704551036074554459440872912058643203439169315581929352220557402124259490868169052394672486194880444139822227137575657150478004641789562126678940432706069922440583330472477837709632264234109572833835646721710884720067107418292567803424047592709955998998793625253350527605192158605646470370589113011572348022018169032006174892302240583228761772725402275052844531118011958420471983218408768454114789404367483597839630601824748561549866335895905922748579172003204956897575181900300935383478529411762308265005686246107286130768742301086111378350150672301738774716629583674451485569807828673185168175712718054899548184789368405992421507916565771660770038274537283976332461780935066616629933249645030755134625050015395380356361558343436363032688582690259913276864189433067074688441288343631167125873987428315863667304552518109260463983543108165847149375198242913917324774076173380576502469919315561176359205315016948900072414202085795226324333961572996278917276679922576335650716001929860990651161834601596065783697921273241222181452870508916149435508340421857718622909199929088679255255941929754344984429331505039334909395394891720108457151326907864458950947858056367098954724793052050459332158003753320783532198459878487899609238829629826932891087928892959916574845263389072646599509430220204070516653101868070133437437714980528436336207291300095360999736255937281471436670822628404925398042221110154290308581402929801309656458493908312006600759759519194747149134510822437704094656404355545967932522618112555913126528028277274108879074222932152309176374460735684362033983812109889674316474350691409964200463784065179308225120227445613050175787900203425445308269399980536016748736303478555916708242749141184067053776757300483025416647693630935642020764568479963365548878674962994533181146928625242948965929225212836817476633243975059916703635775949086278336318486122516089877610560697278333403235298100498675479544384054415545343210291741729941861039635568484205447751479323456895425141971650140539752261500078306189908342168443415685289102041006088579213911862263466660380919754136883117685304568100687924049632188140862418715499686024462127225584929928901932654865714427849486603233946416149054006048818879131915240157485557234346204636405838352115936634724911601461562789644883040838836738603746607013959949681303703507169921307576308408727326575608470002287198283347209189465779772998305175309536701000624816326834175346965176314544400700839212247121191962336240693157318977346265976585892971775042696908134993356371491651867137824917959173601064260785779000840188554619436430377317872069320895084492026857061616460885092001900509980570268705577062001073184400791000634079438579735906973820145637731389263591130366479974509244767355678928307732279685664760605190634846141883313081291193442035106871165146645775800988300340479678472685252291136103571319464937822012100197051070903954041075340414761083088266514311419174177491342956617721555945916724926049193576826284859833818847978236311732198147687474783120586768042871912710377231082913670612122628404940081192257528153233978207225370302567630737131016619893662862655698607475021259408683333718040630254837027226319275449014205390115766570101282373234581764950683526965622836895600512946324615375291863073768716407667135359305508897171905792184519977816194612173478087743737315498806483596651872046947641386858324239122969641938245822457308601537930602231146930751673864972122193691191321540571314611985038708302647400664871670259223960159415963016661360859179893066775708082478033489084600313039394182350123651332681721316306783997090557262599823490426710598567054737723905115297721953380500840121438046569449900085839610332826675752673062928039347479056778933579403542599380536502898443939857285069861343494038373911791082107928817337012991870521203630957077581540149639191036300139358601568047020650911888178678642274418336804244618768556029180361597264575092516592784327100059420007424410029882699711962877744723311037358015369104805173189860550736161339912127129413455755512760383079738666162094283640744913464435651907452722394476108977567750471315657512616515274770081517646939267517754149887598272891658985365170242923652414548631083234810779903087184038990515592042533180721618026114460989873154866807038948726550150120771031435187935355414472531161700057394719316228688289610175277527200641912304786933954167152257337037743302746473080936594960610127204352391551031647745798347850332534053761335471789852367796682957805605934025775893527696135847078603080460652236019991789215277658116017376006006624960328307788329398823033908798766123128992109876789021664744108496656456309615602670110890111929283914069503348516543597118064196922666362280585136363987852124730148182831862861426978900588873214566214961617431406056144293306019948056967756356916953407948600089804489072113546288506485895827612506968546246231965850709454177296316357734453907712688342338273611049172659275799809460452618798871967349666146383026857496427941777553052800196817519140806379270314528827364117289644830094965262061646784523722003871865624166339219255029577970342139000501297863326836860863782866607322942526386181249697980470518858164372125457939540391136601597789889106449125059189741337927965789949459213763253570122101837087442137176040359575791787780121336153666274391892248872106520019131217947162845610578218554517197900026252217576974145563065660612614437719094022736469567292303475984398176211921936900021181119109614822083596368080858570820423262805755752915029443090357477556054482392536120582463869786707929725021809757322964544218498956128578990243896572058573345798678589094323812766165476441157792928603328234280127451213767280932918125936629315754203030858867456917199713021483571829431480423818814678322030884028145568961597411717245553282178061067133312466190352845273280833920128600810885136969229114676784544924356292728470798384109070988967693903114470883241842241663724670420347989821562378059816323527251436622830928592502096723058583341899507722741778809644427943617685557358256426001299242418080855178111001513851443762373247209710718208078975655939844975804052926853893216223491820151260302622113492861544774801342765345970494649279372129442218093815806562344597182056287455675955764751772887818233668277926774204014880241793427680638410380263194177704491360362810694200810025785228032543523472846563673951710080221662507695145029691287164907767205699764595578719931059944516672398955206731007008270526990504313654925099751610165784726014362942615194224097773326784525943968505912887065893782311105132547286707776412668489751608257158966639341481269772729887583085334375247845956444199878696460843180802187375648567595659450214843964149627924903306982954486540862260592145179161706236547981745079787426321600817982056873614565098799345788475157473097976496609591348736925500213605697674424718045279549036558719029802290798872678276210868176034123639787326412955526385895928777967522967993304961721552670919745728847488350423009340742145294401486658753738840837716909444665893534849332686512941644349146874548595528859521607201070188841526873572455306013885759107165166887774627000150392547440107023995994236214544683381697154642046811612569647139379788007134824064251153758329550547299762598429888984880917044991089876335437418872345725977328197845966883239146337078340480737738356479606539549988056844460295577409913078334430287261210633913745958362855428461306593361620811319696753077047393983638051473206721996059255040631737577799545397023352186847717702546747035186729656117048777829587840344743908568054990243165877906918296689785529212825601662979050948549668688438701744799114383758980039879891419858986509827822077697814961857363773802581209783980755439217894939724013771225492524574958455280038183063536477259900123324935281415665771718645088256963076514387737900193159543389797432235257521765292615940168425288587272275692540299059062080076572329057465525238789220970630382658803214763713787959454554105657156812408596844319340760913161289845482204981207837343437514661791001687436611429395254836091991976679099517099697679473278840225506104588937651626501037594554375256831233287529640535741084488459853666355421776501614019080848786120952266976258074955851953517979303158262240974871659311012167675571728303063962098443360914076166229873308536125456032252925263997051088722534358899306236352737377391371265394413991506881027637768661955632873897647975835965489166311924795664840154215558761454139030357074931120472401041815578663220051718554115986695287247881021739012600785659181130788723485052225628822641537800819634651649748448832318517516997567365703634756041876538555741739328637996766241958766798975462493003027179386900911806337188760548714180335998977376981411046458499828341328609984107876289320471463107798286556734089251158848844565733495988875426821510378435389588212811513430727747624039988090059028397458268631399972915173902611030288985575610446991947700281475513555862844932328754157744185993573549487898943553395785802657876814104620267675665188126248715169703469049629271953308329535074701951520082595822003311107207674366039108140282546871661861859166850281794807040990381619139940283792955649514600239064258980230395071931867211946136698948832640265494436033574770670540334635247925902203461372464402417727074924606925702740105732400785201078998903753425758388027975630959946758137668049762445845537282407091392887653134678111752726376827861262445303479402324180571650951598847653839932361572598758990703637190010707630850995881670845935199655048007168348288569883235454744682559585781706685385983889219912595550866375311772384982822370508579385346365952346018960564179434109402550195345537602834840344596654243290626316015999015036641069123439792691468439315056220015300086411814747264685969738806993559706368777487623151859479966436711947291884966974302735081495098984985587716000273124761220351940729388871778676807755311741637562278327708913994832813140863579134631193626108464055738589562205314883811615407188887761412988272373816738925228366090223368298147438662777928855105317405805077522420773979100044882898362139001448613764482451782668206448204596090125823356726801486489081596015123432718746419703292849223685854843144092339450274763275390476700036806785099406086316243851593493196148702268848489043275606688079213160990236253778598941055099271417405550457571275115864704423417869032121549768616765802898340598394517967083612557869698631360621619304840042832517645344959768495157357622402786388658074520981713599433183558772635884082079172411482752217168143563440808674168099897700349918567588348470830465211914331286087018512330154846689218564611012446512561532810042454129440488755011381675126176993360012897603849609027123610899626736199218156750462299160708645671388499929513691943196117429458574597833311696807947762540886750460567573551049105149897595296834265203443420184517824784604132135228033618191359181833051560668220413375127156292504114798628280221581674199082607005829526521314964584467955883986941548630980844751934692760141538593738317295775976777705173722711365956559010610045989495032677634549148110399712576039121648894662033262649163226865570368994871853008363788571108504077239525557347719252760517776050919898978589348577453733621613871081722724135278520204439146096660825783394847549424915503494202927770387835405866324476227136768761274303035863002048740065532281643809282771043697349244228443135934279611815585304904336176808824911621594650798973246625513258536570667311131627577965960139468836274391502130021616934704476589899331452550914634977225385377855827430613871566717086446107650505322744473031958473321545046325234102020050625578754991958965249798783511976683570240268392274212634130059331384499554286572658961570746866864303602285853974517982313185306254515790868788178973550147728519000888101940995972015594855435495023900253618234270711804421568418008146650017966418558457231149631767395972030665178659744142752374609748548231693933785371712660674790078431096754290228499487511704373808395607985330991244645304173335737360512006029076514792742612128932715274421966409590006412364413637573587838075031987282932522179586322641410479199671731022127360128730182275015242425641068506021038484918575038041699741075122442133798020814478858640229250048502848230077146925668620431658003118588584184040291148119412351036475907039303244656999901577952645663236178494263273795661118891577145221782625289540851817147182236706921873237252761555905970896812120225515951416300546300036976966000431216327562425721023830229474855489712362948841571502066831725930711018046164279925764617912291539592066007328196870259487188553812784532394846434122766192170803966902318428746606530245558915403919548639040636858382881857741943086596796176747563624598943032160626766894068922480404538729092261355163832491201392554353301836305046830997266628896994955341151335652616307542937527978822265787279053035387423515337288601685122575509450242890712631813147804494598544518077516393031065568053151887056447722155409902861855812709167218054545878117483270267876260253401829438487035993153913314896940357687018319187513535539179490452216079006402048270327969920248254475948201772901455114065361564197678475442820466327069638757237941922089042695132923139177568330609268938854028536449195343325734126211598549617945305677197206613628013678754893650504301416708086440135369022887996710113984239795684156196317629147764957468131030751992890618730328123271368674560924382544476929194762128660979600231766369047944492952797285617238348085814801599849691043261036215094281844355530963266378162283969574812011611330521635323736757479730402936073286631053712972258284701195861457014872106690406502275343335719181940131047752036383401906742090712715378196653354948536442526262381861804615206801202343643805015496269193726359155831209979589164201248455637592982651266328992476130374149198450010870158653211208193628229824650882527004791470764613895191748846147398011053292504305580507531479664756599843862103989758668928601565055840421392475796701437388895223212548133408152539215397452798088165653753448111439682929270425058043290811793235925388822449111393340210945370722767305298640892725160868818275135665375335275625409427704007039828454163747252660472686298651326141831970044553919023364739334464682330154569677910420704651355101042372392914659081894114260865726031464493742604351503210217421477598317534272589151024927497764921123557817982710945617594899112678975444906961510432414485546983149897029706080188825761419780826001829375736558271649038722416599678878480414104240302735335559166817641831344048972988559936823396613750707460093935116220987452718058634930968454318294027368770053697152780601923895176406467168937281271171249469304097967884036636272583758632145020028735631776311128400500512115850113665232872905040378625737113873117099932171776224708903543013918029185050397835640014387148605012677663150014933494601282084365880266008914071542816157982951829813120139612047724167267905102948956269738401778030847029670457400256885075350044092852354401331954413755638552174730568669303193861163558050808971600534977390805236888119451019984052631016632576266038599603791474487822153159582349236735672267050345266753916484531012547098505711848019550429349928151680992518374515018781620094212260127860756449182548177032238289628445612888058931566421956283493254313295814900213513694888493768577925085666456330937849693423010575666460639230979885652133642494190394428610101377818826252057830390876215967874686476571624007297912122121203413472916054410768561679186385152682667121701014661466698465560686902362796342238771991104293912390305534773705911686784663820025784964900047033880928033289717369791115464324187673015729715228032841869097691411130929809843936871379742383431782959030620863529945248939826669917414482782751287941075035671613772015171049009472933546786724366389137395297246628270264459736459744502293046930781656369330114259862905380456336956365401125141319509235121951790178182053124679353188133882135135895981031505302150037037894791687488043858439761127844145026689223609496811782025420978395429497486408789977759204635282629326242964492970940396144531434869673978888497933202014232944620330159373832143928790553836755940240531474525081470991446326778969691668945846818313651726830636569188465116619065630121493883129979775537301084301883294677145132853112738877592832751107335159137141392702853205617696035685646722792774876457022837823512890764786475497885564555034657545237022577434432179993355613947782729524454839259013314287870926123969155006002476987789340275219172481533169769343474776906809863879758169304399489733985703217138307187645240140372010239049154433677370198996887785984018589972804735266302409367024273429791712622407772042354289436764953814527824625375330702221471862459361999526118616485119620248561998050817198436542840982571800704311969810984703155145617679817767111831974822342120316796850375559825328915009316781045758209503739278776144446574280992840211101281876209383571592866405722526758208333825749560785310193982497833592884408339490293821309731015941036624549286095124525457773644895346268006186580297856355380366190191251342117612423117425055706347995318416031247801598809805804077712103631961077701720814839384839190643727791702615546460110973410940682009517141601355169252419091098818061000988005762405647434054172177101468682152987236272088974644538217283099489233717469367789619170734708410171915389616367976836177869688801359317833081497328365768304075183813088911556050976808415239117842358571164129186912915338618786742110269095040986569375007168038975937662968197152733482916198923351860405206239179332294104446109582558043701047299160422842011082453741473714212534733805663368383084276608826815317868883212845838026430965852265267290822125762863845663285522756403405726073045853346884071299940274031837116692620258969446906390859237776885004069598600674351060868658460662295508004302866697302797315622942134645286560908722523849849982955601415616274774099050125691210125177311881926930002242679677779944509263200675877727924056467344895055587490984735760103906643044687828370177675844980497749263949672596350781876132979261491092092429045107367329838548581213645533832372779171664961593186649936042138470288177204429297477682151924961452697943104176341268770383174202234063528136769649500874415367611957573636624498065687379568644025001805795577958624084793424572300260159866551524134612911445405431816389507707112627208789716750264637908283775641550044881324849901234942736658060303682481598984112401279373063062740021726539011648602552094129814371778797826535332487003401280199682336013422393446708666529612990068955311982122334711755549364344556745416270635953448624934673907055599147301431062753437850663730255352258978974562359251733217055021711839746318200960761233990995814341177655201095023944816017566418711191555183712222987367622776933251421672768333517254453281862664597466674623622329181521217015812705544846889467053724986144361162963121341573313455163973320516811415358693768978828737594655542518299129656538171043440188682072590600094038509059140534878575572656572521635889699079625286689134053752175702254146037485836820943791582639620561874065243224130002322039072639897298470111930032315478126757888303454825605948756406290480867625640874041399857702576938909643032390517201857814109279711414413423859600988734547471592329515074791514619996654175252441906678555440059928474944959935864982073818368873764930664609735665365452154739470605582158817497064256750630080187054116711905628484320840622676610499392362252443232208667136104203785821603293256973894490438862653946757670673924512173400268217147962924203334267967547748507255224864792754977954196251629919838702161265083882374838374650218572789800083695701023932198376620335892935901597516740048742209705806647453805660224240169302288096502459418483176510289214348605871344503050625491992561584648571280874487452679839787123587650126754151669618727366643650741743769257622122983573762296242613160916953406529031962366097716724356446000350717954301657675746978599702808820421576073462877792072426331290877114906350350481168968495717646795717999260624715942319375304902591318246029089365512438380414074491499925344243602650625444672713897187926882671548850064859399955481005476893172010877761395871928540509667336735095820629341994720631159754221001661171529847997886878202371235849705759377436993729093000111236051205283637650879380022189790632240917244871347234254649178678295343020951316613844219461652422334255555427457541859726947075149711523568905831796794442026494350236937511984599288449625059670623056188358956223967426903830496102930861485780679988606067538004958025079176435725698685909466703689544573888151937268084621101844453474638760533461519601337825541235325285013124549660646516565155966647888000565555543791568958028827895901865100009927207867335884853946440931022055053878651480651596529057082161985585820777709463954495548448091180053776773034036230878072512868499400455806383944212589947429136188917893929954630001640705786998741875434027711511206678542145933051434412709741375475552343367124889667889760705858954072729229835266105821405505253328612687369544416276213388246962129404814079828210914262592661283918857644980158162504472640362225630169866507097452046702101173238237117931410941783231499094137078204906486568624273513175535707014853588390697728103354766867767098664057784872037058325008807587019427231217156197881236831923000793118718624077291963281800301011129251371092908159012776359989695280381928937838854449785890577779651793266046730692711588457153483530170997225591244357554085285360351563371970853866508028799871967360356425837407503809195956972305278092154418238521088534060590237208693981901902542832611959870446865947617645021536014003470149467884370372833099858662510878550012490634530258524732622713110316889582570387888541017709012665167843941347959010256795985227998810685040007677702462579143487154332881405687486470365540214664071304350379002337705842273276898721559872047032430647617315332461159221782734819554435446620397757741076232302564339554631764203137287506303308963842122241474418623536538472913181256480057933214461413065373642248908480257938618102420983837757034344773040567180093111945553308753683359289715614544626576179179984131470381180131986478217734299222524836701520469660733547548379261209241215823060804582326878248001720751257693460742002981179931613075886281086234244601743029167022406119285823061877449134963763527077751668307770030993231476531648985042435486490095403356465717300202360934708725053572693072340274341800748143947155358363978519462933405610832979723306293770194639068685790438919985696001884995609189608963051765098256276845276531715677101634270940747017367983291998199295517438583547432901413644446304824917613918945951286725770099473297837375149378219245922048225995759694184798982132396883590667363471502350033912976349814160196786104895878794748600750597886399731403688124519719439686872189058317352280917976490960826225148701223955604051959920427804102142112287151085989178677067963097196601444840007369276512680342924675636205762863442362173512240902349791716055693393295369110313078155702516277755315637213793615070999660192772454565022490888178672796876386016139585461424737596375307576136144470848044683039828497057188196230750753363988904151370747939585322498073690127111195213703693870810948952752219292320040366130930584430014171949377146497660035804499746663551250024619708908606071883823146033524259633567423981529377612964692526019923183521972717692599058279087946035862117377764516287436407078779986965135110878046023613446411608436488883527427109338139397706365153776645094175820372350748432935788303840913054247119657373449365626641197171235794086999192338565169696392844914536088991720977471822584934630244303288058993452200897139983413071780914806329993044246716835203351815486364058642441670478717759173580556577335686094435680009064142281478088127773020858533272424129958862934566902547003571783131190750505379730895963547775844051522252132671408688363547793187286670808187017057679778663230079062683588301267784896161474177848001888208012256582320916506358818443046274135620567722081855307450197720880654908859979590720356596553376901246360504116912037544640742078439562369531443948990041260871231924924069238647541209216158924087404750300497167244949836428664729029987171512592346495631391232857353652879794742548663114763182720221248621925710607968601119232592442601155573738101199188937079524066596818242519517917550584347750659819391501019771198679803161928262033309501413382164984010682523816603384429105106667194608199463401566222122356366462933082355092353175112410988076898147793484005318471750737570256417905997685071746985460212264446836354392583980336709111103465077271041426441452434546869421323514053275591167458429173001283282139727224181301858155308216882449099931263070814523264094837501225455995677861609273553101373265628378794682074427251323262765503512565361621586298535482827178168326588110985928612331433989710087783630599045217821565764732632427395359052754661293265422284410033724026315750154483578564438304446771751155318143943626881136194955202999690799814919101704971546816687214575757102554544268523478386917022867382591566832056876348991072367328034018498259327811588227454025390792919734806547207175516575522603564448471614711715207496703966880944908676469414868335489581368053754767122858997713478154319555956429435410793908917401078919609908883618355052886875884850005892807043621277555354614438592558553210835353229226636390538608331302224317119922721692546110210040778712580016035109350121015801313140740589591510791886880022137731135109722266901126388278582437886574993207057462964071600534285593712728090998016545535299652533710572635094112667905929952274757646652317551213780030018375907040338326610727803439257651805281338785315108979952543088900315261951386365414516687014152309523277075473809178062966393933636604230067849964555977996855830453184584406074183046092433664497606901655645926013562184588133828064856511356434401116012241287558661978625028193884212575427759760551921008993445890576240000058818155601504561497138784800860714152670868987529951272510234987231386155508211527360150349560156644690034209344779782876673578066900444584732402716391750309867834567241953089663620624141976942983235551072199807672319644635397479598695501863880208663379122726878647430546932660016970652192490282299071199322540192902792271374821471964630298000544751884403844213929756682757600554401763543807961075690801659455654363309639842355089785470295045102909339477191763167003059685336271150731915585193872088185552273826754496624882105409868162383395822346975428072544023210291058647581996567825662625086626484516351618681692821117421942076347151478801410581936071868967348883823779184455821072873413216355566634196786867597765009646755909118198831794751304298849077529589227371556338159807252027518294372302091649759034776401271495729516240264018635014909782222970612550794336521849198885272392427916163528982845938718671221810675866278104702134693942020096805616359783007145208294584763371677168632222901501818600745293238223084641394730940952849596897621881656078095633365532536194591627763067457648559078517405527099017280054541624496151492680080777884102407127563613916208122033776354296713982307370073128327233033298947905955467463596482900765744570191644827967867376535241027184170622995545554589503982929901944661084453064032396264829949028062886984636678824645415918094494775926660001176740767975738323458252156352887310730875393174759630255405117233966696804452187332385767231642461746654846499661533103372839322351584470663011450581634924029365696393926667505622323450983561514791979359168662630731140948531287810121810809050931219583478463732270915058347588696970310783394933631223113479598189111775108393972618440428360241318660369951690879073891401338415229024867346022967321100705581721839530574647402797440311697477266317729902912073851041485368763609682606951651491188730750816786885084396043518150152603242751720699461141140783943778895492212616405384981101542588892566810871039552167640063127446249990049397520572506933449124400082582457055510011356824552552925745697899199122268702744876020648078211465033474137019888027739940264186382756226959920083036769389536721308515107499962456811416067744591953471463675431228198796845152531285474504110714708779910557751329331074399794257456919364083444855013323984294399390884563220794592726290596373077065145127254097566451826016413844129735534978209624210313161292309499333253045791549873893593111366229780147143915912884242608815780975353386821761766446324760561142193386970323567912050113943673311521221509132693456410020975529865385781272269959014348353833712877854373522149450327048197926137063434128428448213170208611242880711152183020693451588557852040814412434529580446035760085755420218780755323700606719786630675328678532917628185543769853752678712062759812347728104401780913606147167467894792580680294795951257726819408964378279259016275744252157951444952911042943310252087401217262866671288365734681649914827010736823789666973382102739483417512141063375604133409161715194504877998924893158366729350291771369949205392866905597087822832574695443556543772409598051590601755493545250218332387230348023718531280218469518583356616373550073502622999339958016599573114364844277517391764695371552949495114567310304158663389081751988553209735231162289188522463571515434851597216254389683889717290069336365444701806520425846299914333926256618021158678673815046161877212985778392422695141274828983650885960541752835378803174420025625347584178674672823851314925260667781152800669776389003038174389988247915256887853921166616937071403138780379138810387316247129463444243075099769770875489487997864459966287993835143987512985913351306632827028120224936779481033868980651430054741908225093051114257460835716466169139851613341245106588386311760454409502712143140825832825367373733529236858853161369257536353223806886351959142391515572913763130972472774095228538347108056178109811194645880771349571320515808089529156648323627702574008891309190855001550472332174770809720159903838045943529043989283063959132853907332330779886184509546176765026483683075974901117020607433392768872374844045811482043155260698577708757129146137199381833098974683349335590727863206641046036062015646891723720089861544699463085858426806059254135555928843614632739338942385946430627739321036986881663252231198297768568178257107115114496068662006022738413115188985250138205458022041413397354215535892826153093351347523496546373614127617430385384522950103396124088601966325727589454775161888147386992780554982600834541492228050765222614226735558433566697590435067518064914005970314353991808970770547532004230120115876367207884662436765353296213429909429743302183506141530251884053809813517503770014277378158236181356632683289930460033226418124706443767393695211805901724827947736475315952823293966261733360384486008289963713842441566923414913780434864844052496233817418544422410248488053756772672290662522656113255430336480134303654532801855085343173380108885205995714463238467567296017376749206695547265222895272873194403856003909806042285301889012074733538991783639757854152541674521862466487953568608895535938018583515364561571374799040981304043914541625205505958177509013326743779963537952609918266626834880445153673913587097976344952897692763514230639130088830017766407630438574825261422299020312931374805831732312814424171901197889000577070621368144229833553244564066123535828213356655569098704896707110480520343622225014681846800523978353092868579028518725289140667011493560941333763875567348121707833737528520349985480862194671465197839934327558219887149937970028763086086647417227394712680531412382101771364786489285417729337257904490224934103414813948671227256534279649515177504850295731548691154116429009181981867073193196306193683232201775007163844817021419725540998042938980111321289176234141021582390454723880966645034004009363709962623130091201460811898504703633180116313751884397592181896745170451883118860335522049952187839770614932798931858392743997914235402301999581560362170910280961684220987214587024081214886710672237703353906067552284752355400773140535141570841642365258389508465269424857368834703346484741915204962239578004166256312967587854323491081422737551669553305063157208652705297680109956159651915094762593774290100758315525343957252515404464440640339924718784301329826743891608498106425949519342277390439168341251802863995056817693632613831938416614084118358913206796638980074708230626762309495621989727776626965053313309960296405772005124526019135834961613037451004217867118195412598581032854008885182931466921750783492456320039086855729261688806014784834586331728752989390588576020785948944968055030845259723474314488199356363896334569634515042143164677134889257605919530371749926106373545569389891732020198411095980088715860521484781093691599784737191994051899217712594148180975186061935394394901257522445020126492487743948158341928621458857732616553480812836258660869692998880042279129783446113116711522023118943320767367494808336636610787688608310698812881421822833066349444303895673636488841479055006473604077954973071493273214908764308264730700428357213815435912075844209221448863325213417288422651121037268287820900203443001556595998821139292098112116688733155101790029507582548531671502759387558340503362272334608152193284233558449619736580001000988835398286618607979835482271842512965237778512351689960814606749424109540115403390076255289670375957898178574765076697044202543707118330413076160251504225997327547187971646886239883539819009192043037350085091791829001013197530784040952679679084062593153926402861494682750010515012711782239958329478070380609039036044228264508991442450949146648953103213418507830691291989846789862325357859947572086462021698652469338306600207336919340042006334355560376818826591222245221575552627678643937413696912293239080818768503766974544627939558546122761804905536197602560721492212559942536740090620484293748941014712348843002875622598135562354632750834001470338709711249572499913079060651682900607548407063483453386357816753250498523529592103482000203038685317192720724769019784350423481372105687164932220598159633833155957093272486539340462553839146420460238857905099205356461398703555964188829025369268727096800140780831187162893003271080304459734366023526647467026266315738876566123079043083309960284027479185685584250169915223003454133084321264360798607386826992889270275845345050070974582073201393488543124004768270035582982967838446085490720954297221352553054253026516359520752318553709675348644376543664451088019114901029826911079203128251826148784359398256476307988337542915215512164927967159619291111024638769120869396979335798895837850373911056442306116832459442161043768216171615083445315279370052448311443511105033302270273183132882729968715199623285959445725009309534264937740986864650862087212049948988107510545565573941209968049021691473649549965652482545287042679466257810382512292507405622008810624568260952073980786437569848741927489256792081699187657966135374053032186996942208860859767609853893849806702453998118719384956755183157154367421059411535978347721120247722407701322902156576332319487187598037431728572185342530823638210042841352709279238431571554959728178954683283843832053421314502367114920207703581065787004092911729840696307403401805590879810765869114259126364899659649265041470754948169373736354632101962662308796388140628378912253442794324382793226426828033742075385712346802480289537180625156681386793098412517520697253938784761653625646973897029312123739121617703183504482466698436561683807432563655032005353977586520810912563338688324849279907964115737636366236559703871558796388635907724298099213910780326404300555779893112949551856029119183231277947973752629770304384598465378133665565887501747428087368285867095618068393485203608136208205481943988338792745905282315612677197836844661830852360166994605729895034140692728550260646227771550301837790913149797697925113754730211122501423268444909975559680371568165508109605101242512122217248645132424125075896480428213251719827217710025178002317121437946491589857787289631955158627442149038792828654253257421680693187979068562811390609014799631622196232699345437492449208466981694517857203086990628302181145307341549084029874329075706519529428484401053365407077612584547301536224149437888225015617587670473326769938007178185199708249306035307616143417815640543501411596769641642279420471334695789825375427863630711027584387522222235361862720976299775096692876196877550706850103110476253004261758842600141684154595928182581133295949638051768217197613560929390881758695896923360339534670639260458315266189210658546159466843771316680107929929819268820974719493771219418235997655764757828109917941961804108127299426124484984652242403195473046113007492889216042187385734709597188928334570268105454520480390850059252956162494102907346969950697676477629770143106939515866493528449243565550520221109713481246194260446620538084817029877252191818719429206537645919888202240593453527576894045319088037172361562376054944810137163742768906105313550388212115926221431993684649015053084748209516764139084781271786035700178662266191534315141308102498983026987498107829010708193633160917891975413499710785086694595651798856846429294010788099175565113689413035447245351772067941042495259015657072457565807669521608219646834394961519646240612385498944394061622414714767408375421340389527054328039180153253751761618117954597037871036905987873685259264769718205681531198622945774773262400697780026244932798777101486387481869981659416830331465088908126552001387019215929856489734156400227563326149458941855055205380705282024902077910064797806529731424572883129081727348410369995042039852276318984915945852809436593870645420767245909195603387365302906074225016159651056682261818961910584599067192360901533979249295591082087387237211902264934334510312636483181165538180413251236275744865401600729552808058080354469430498037299561060288154854748865586300841511581097447556325404836394635592011040356992721208579472401050702683515501655213784146234016052249615720574675048157987370379891962535524994818166411168029752869912762342758396078104496866245822265230069637792313930754906299699100138671299794864425482758159689216773959475199754175767247368208257613870913130994644441173163929666848998026796953791252053694298501526999797019106766200106318598371316104872329550397322504256320306550493217147094419589625762525540841932603847947587984710009715291746107798303564987308362148681812429893956242049285583785239649581516362611893088813288650921824427832782965410852271632366725354201198974636270693767740418333093995288914319323681069001194048965165358816538875431999427815921003230556155115385624165700894427173849330704208832062640255648340537243734491451523472661235703412239191506916673507114787471061324765778038012347863701166897566221374782305126925120718106566879628115891997836470382326955570360305229241486761398953034257238678265532252899354422980032336731619941509348769302080356852370406426677343941802075761820592275169854262628096083214817857614313935914756337439587251991044488583476100072589299154950300365231605841707796814157302939188679069096461484793439822499034656460955591307183942099408636820217610271347956874228344549467059442352149767881085485835440311336434107941929454531534086974849114967163709313328963021570619372375257776524934489717110762210584492650103113507986358269729074620771619694357708593212050540913260133768507944084071334963385287093922438065070859700852616705279107572837805429984220635948681959231652139233321666389756389488897758724648309567521577725819633667055266512674831599647236686755006507927384061943813501959884431745384058782308540852061971238717744485877979083382833550543743421079232849534730116652442623249310423896534145605344518847051815594473870600562004520239133047292245299900440359249268798269256770653122537821158897213477778593614439617650058039924607518997265321146832741331159538025584445665463256915302849532371543064979022304222296205976938404414765450983949684358193941306735383337679705001413521784172977048492625749915570439498328689375079305504632957095111621939395676465733329113190775643356815832536189961966528757138979080939354570406130341801401406731177712629657079557169711323024341970211085720129514693496988542234457260526054387735699676403793507847997991134245713131844854145078444545292757388257787186530383330745908544284388187525982851258199579674292155612489261051762877992492856149218622837567527354261901416168835374413814519594461769705621905322536486484609871758001332284907988076888276802126027034276601060804014676290858298464099805073642918950382027275786931217327028458825623269669002434383532934215969736649754944896495995897695837120627438878454666070974201778670478807935182541639734716808588739183183337428503472043356365895296993956247380627081083617244353541688570376460202169258703877405015134703686042203681871739546755142591687836748570534182624319234899582012934181493237963618421224423854208813071402276573753296705361624860933461888238105300853149392695300463227863081575101552666162737508087389698191305310076876814699115002344652257736400087396004914156789577100403306911704974283984698832167274230377407111577089161051355080171784504111574370656850117328113395260494441332729090464042719784313323308666587469672080404615316150685630755214061190535818009806723803904408235723912307818330920243310532514814805878943023508527166171702514318027675198515442061678611287719330234297049675925436279046749508012571855839650889063116121600123199076422539698642445846713819056654539595141912825241548843961680450843654553105619259507623793613279610849563337936565139209587301291117367261634521539967048545659194754705202990360889927709831029102971072654748661156334484322337695964207460039271140678488632717552280858692419632846963799691761405546950724721639840810236845699060068758777589798142535750048952229193097631621480637712136256798838040405193813370777919301341112867234568038807224333905126410142772808430187742080729714208398538595582655269266859450430166254284703213082440120284921486124467642769474803839807575556983455590022201568947545934274221635120845558292087506208683452288821469691640340669612421401462950609890229813537045890031446220448108144332429773954076588085016930210760970805210547566417987227496371185962203035332309545619469180434178397664414895750956889368412137888343447138004467310700572263272482608617905392635764301436922117952859823101952227017224268338301866829070670307143732847913542512912919632133010316594519270368872854860646685171333394657929624759487966733257218521664091076248832138708001572894010421542791904246601941503978089166402675035674448511981141497061407557550192113623270483835302253269920171834660539858993153733219091361548087881057373474688658867842632884243493188625071896921768643879497865349861976691774620656274703079573604491534503134718238590739686178435968317831725271421179589337190043581610489762497983280106275030405012454964887068870675913496621865992566823251639033978661661576719864167244799970568950300241253964862271372275330795125264453169994821881279316811968841642347121222801948745556336562846716112126257419126925159559294911735786263077626867702771622711697749698255327062182694421639079208260350345672410302470295043531454453641775720197912533454610450923780497293418177842873897013683063482967749582408453569564989891750566931720481501915880557485656677542634900662515332274129045407630865922821462067607919613263452240417813672748726407290152137170762030818604810744008775439487111617341010507055752414939732667661594151896826730798062290210943617958690733627018891486926538323162105643623060287542861004598561464821931016142356986903047129890755731199992372657911063583414199431763564648065465231071817759024222487159110534709667916856930699071092384552744454252189472570082329055438143229965097607244424763515564251090578368355284725301311261280721124784630441785927306951682735494747605114422500500980408983492038355816118155473580024717180895810116296247751194887453428073926268966446314735649605595535071425787634784205488726061270453521959661540913692643348082930961376261300665613377375863732950238152633384804099882706951034823007342219227595597953600889359579483041535270148669046865163296000621276285774447397404874384615601537600793975718912537521648005617795238739935426131079991670565475214170213939018255063091361960505823820768676046328456274514985509107581791904225726248067141414199615210306633015106469262409276882056098308863418793909053930138189656901827671629684491107012598666949003087507748259599163126359196204994099833648615818964466432178009508025581825460325343682730636188933301033963386996214190509117796688921297293753760568708460544853338614005455286806529780651913443002461099220691870997262856508707671603177990080756114708959621950432650005315365363995339406481389506911999386864772725363896636978286711072429719481380884427632521991582890194426121159880549228212058467647599405278938662018695293786611659346602140712786550887819025268826021414258484060244339649766935404555610291599444126618603927125800017524536739131260821780595988207655326571175631952690332382350461193902171021487944768293724238655200241822516990113362447445884037817791106698414164603635739309025847078116656291340019065786791747040046911736978053822409992288286420104477911924437711009454636034246804808718089487362459651047096973960167719888474628872444300749122031651853749279030325175588273624366321791626470914243733547808411446546288114215956508956368001039113120300309888725607215522425243598166830973200930065480041624991726224123949883342191852067258022389183101389366674837221036830048910881805958855832315154768286974102541321565690267318482620192697422903833526378459870677983071818470189052095654782453778318798323218328028825659787378132129037366664775506790061692552665109452985775853427671033005684755275506687181388092313511593502712003700019870893551517293263062502912686967101494099508544151097476371531817840058221116631507278005603380919163618895148001743606620518119707433422563136599268410793288390839097731151281807816142879227157265778389830732362700412146887147546454284215787777699600688379671301536975007765299141068483093457595828305981481004269608749098575173553308075647591027621976803835024099354022659338239910298147095187578552083951891358958186446609687227754575542717220192233075771075474518208879099251188202722428844187748670695444210028084215110530233371734075788453161054530198989046532985879138002722967181747534479210224908517305094161207594622475280940836450948156012487768241788148877197141839558529273253759111174858689106790991958760140421938536883550067033800943619084673083300912067964133393434014072084220610612482642947945222221283866568924406900868594959072437484136062365745555181919649335013134170075336329118189756890423583472303082369915126411158903440271640285613973645451302103262032068327768481649739331771018456394936675237374628026733877893352388467481056874075842649888478301797522428706208165024939181069466400691133049167799074539238744082819067758613454081459925147789717713406383883902106882122782441097666511741731746107719726955273347092447040370634901608273658042449193521060234812799434074741433851890188285428262552127509759001768391573262859759629775840790803399718762263658298325358082979431639762439259313264678503190381622535865296520339626550841429175394748854729580625351121828211140171923011385399555009130394415823341283732527489086309167989022409437143339870545885643143729296815566517391499996368051561700516252877894789555550282490153117436884380074977873607642418451550554665786641906908884495614434063171340526818982752152877132063441603014248559212588558853246786202627122032282006095933569038574723612627673217209664129983108884569194284632159479313685840478341435870889672209283153869907046753981956200574547286871746925506907257460199451012901536765783623833015754592607856450758380286151538184642313632357401666507134703548659457770822995523105066099180035954610644410855078622781124762576507319008051450948313693757395893394098477602865109815217067502750604658843199580181661137083472733931804126552055185244796520930940570424221551843641970334954262443699397931775883333272735381749571026785090219301877764737652889685992696899394126448937203801946851261991310333091884828759113450481088919962259291202159176957537280191095017635468345288118599422699723920106431966735723337423985163057566493769342184920236808271703879328261215349990316964656111275989496583947876110981214542675305915874549320335711375070292491097499288000685308488805560487119156770879227625670631871377430573837407995131740605875717554999833545466309537456701759480604409418305508451663358466833060138607581259839741257384930872511184247906665755844796765796269406841496367833781371866014779952216510849978058917306037135575640878395634982033513442089024615925262186606499470142202998579924396496173763877859928386865872602825341713467355116145880194265096020658667212603816241063411224834056402141143173324357303089641783875146465158056597367013716457336875790524137497326897441869936464840090343740983534275120489549626612586854958269614936796685301828224245539916948181613801033309026465552828218667811543663713835116480163797960667787488725497963254574421823564344183356889281615576177338973059742247940993292713286042680391100858124381117309405613140813136406791275800890042316057419708102103479597994700690928026487116270987219997047873424788555974829889787386006081447907397514022553601130954540438625120600576291006883436471321073994472654684938442391085881758828890770763059614530451034357271310318279746692541627147567149350980699950732495120449641988620199175235225773889119453259227604599416268061611592062025483562713203790820811552864757507024261921898063650465155424874850043657815606187057525061007476638970670692172961824733653062898577177916685442912482357409193705345827929681373350542819782341284279627205814096203044586695858855837054457824828785922053715608986545622592516099721668564799782196355510769544721746597738166239008756294259742037968251218003087001588003673148597310482463876398957958919227003152459473287439715576975491699702320978875243252577443563151154845301862989770989032884983906128661155237198426820350887295287491894671768636232214598107775948133298178915450571696291375018057043619821658728916883524263689884072280559466277884670157317928807877143513583729246998605795793210726092828792181553619070523847277031979204228466701701820726849810292810238909156517384412155933444322095496678289214368353357603793128411791920141634591446548642930477289575697183283569491374227895908594989414923371786521630680711122444015628765389986258392293998126090449103377239883772776367334565834717216702432135112243809113287671043382401168169717120082588076311914820917483021508380117318921603572916533407490878979306132096163623268724027155393683566504145698000293137955281443594794348000256341622336845127937090043633777806855565792733481152836455120291259655575583429526295158205820868523865991229607755762121484741591179788982001660638269349462215555335102463856014887261722594988636321120948045608989861563436107229290300703582900168106457379449895335462074623115151627371513260838305524503553702113140290815844906279642502116645906574993921740628778640277479878882268748411230472906053696625735211299608383204450237871693603246429940929951172191171390812117682560832749796263742994145039307188944945369759553635778275936005459494420342669808789648509832503317020404170300144461490219624442257805878078008691198198317454894712037750121858715491795535649526624545886364537462152041735522554832920249647738340653070386765503859197959409384929603274153708242764288987541609775560040623745050318661681736392083000675589010634984518265829822723805521548884678291299996559219553089754438193396630305924640829968912239713435869147501061252517443817871150170424176313103231828908724067794635740967763604879788033423378759831971401612157477682349509366974023809766633463478619279947255809555910946934558824489118425899029000861929797533953378318896058675095425122647125680329627041649181177214829825449467818682751483805417581253462579523277377594145546986029707653411557701071276286857139406593816094474114510888314458000567737475797635505035291909481222792771358998702057961714465249159985520626238582237365274328492883795984249919966496629304761680183212589923338605895177476023257956511100815488520503855456674315513020538442488676762804620311556492301791352035292501515387846265079761530794606515239114260152413985442263188072248607600702357848100369567363476900454986545096462232755433347768031282234833633952155937372205967223140971017518005494617087277045006207130064060559130837885740416411328262549259748849075614925260099044484211937375094913910096187802049850539077977990591017538089134665252463519195934190333713985394804353889940633857968701945404594960897538614876834954001508572552644670485659185301052911712909985404777166585606393963470462543610689897145842703466226884255755193648827364483527302577727768392637941269686039566042924231363316627765652446605698409915165082949197820492442536009760694480324111407379185634963461643411692472313753255205803493584280106665083680928441327617581888883263018082301299451927650996961071230292178714939444687151278427757386267627672732203697087834346243902164049146388809567466955299390393927259155478775192653927936592489366719350844768794209059696629217180200910171748653794747939914924021448211164976726145832409150169523819257654294610036878879912139955133736428647226308942935090272794713949365025138341778898787625979085969116323040587644191978336387863182163423293737095583438692092372683482173747189550462054911118247911683641741914556378503433257537375966412913046974567843968841516180955188112774658889219689438567891607030173297106637665439636696412842695749980335904021001917471555858219133814952106158500220710698730648594321802215203379136284688790716787183620678351149839316172987198819466671778592324971445538117004293677948177030120462798598842576157734235200337347605409340050814037753521315281601738022153438077936308954922890204964211148620482926442600684059507464424554474234738529384102234958323574922850449152598041164375886605443428261219641472405003033232798944201352549804048828175236967146417192232572019852300415346873179382712870920844390055950652100756960424510100629556191205621300904905467837544074659233141348782906974627227040353916374741277916764199345864339647005642707293369242627617831925467403738970982718915149097146490225901644986116565373681274005666033174157693137391613693598507817088615263511456047855153650783173253845660575232773215514206590739210222374493104865094082447942892904995932009652641375475449332072343556065792258356787271693205928718524861257890179601272501465645946027959098951437993213186310262169719288199190441177583820913858698365465910066125533448036879372854462170266937203451426294321715080966779162752844728484969523834075099359203468912866021837564933961237718012963982381307900764381322015919992581264233476502307222666525860628138363024244438988559983842156868124914420769501857827932147823154364937086899333120651207773484022762080465095683423613566749159841544504971594086136410047889635703272391140611705878822554700462702004276533296435721409476871848809492797071630919652083224020130237545726479982874843910826649366414545539902229049942960804090831914042125126485929517549096455719405411051061822800727888644302919284779036637688954581539801133693629139999193979328446056913647595084633617510933166669246931775797797794575928257128529175862081424902637919424248251334071819674513426599841344902852246184391366151184515592880541840332734550863916589831015104077305881854693896869869939180425705987779513891160911649491700257155047907541559270580057917011756647590144155243546468072382929528365952505836383806723115842736354921153213120963520941904343221382836207469477966501180312651059855492297462485910832976278856711870454281445945641638090941783045237053840736983472676104427722295566616673029815066983116981785776725708803515633829557304068749299178296554119764790521398573715628432021423181575041468653572840459583571613662714205246262732994820645808883528805212688788481035019657534020289643254052152598235674062899814072615150147583726931873722318104209554461487769006088064147187729392234975427060985137205315399385912136930297434214147435504944813421320071860481518809178328358034012454440690392293621475430616360103663133046099061457055527474987869606626479272636157413006011468706665810866276047657459393531876515951642802507454699381320482012532603052197662476394959260925008787353188269759639257834904316360909746040994466367148522968861986858365375373870728117021389070040140358615691079847486236214202009622610993860490525622346790827407275501066753014745228497537265529242887856084458168766424243188724703146384132936415099697961522588285789368215534757688748295386387055023487759571485940638886938434392040791140140372431615635549458322993912720029198552665451753459765914732499892458524357454679789798264861906999994650574489626404803831052195193618063483570892627308322587975503883582814372160518015205951441384475262315431884169061233145935595579615660216417026038853015406851044401827150173101519485428654855508384857648062275507596211375261934297845541877501107974765529739958510024720763312364759522779727735874421604586433858863233899398099610536354935052950214121970602505629488753508203431104004154753240802962960333939416601147067582771478263312695671769866012563005699763453347979961490604013752748809359886838596554423643260275777058475253599375389385305903073434680217267824632295420478459013402148242212375559175958248376770955760610441763090920528756116629361012104441121061885524980818580800077213433930009821199928353379850238657323714636707698424729562141870742632319967323280561112438400003118022516367553890616656878666431978914727726999388801639756856421903334373237029375468897463084444562679377273253716846450870523973654186804915799799596376080275895530642725009313999693414486158829851767727599662593493885631969858399814929504134199495297153334367805345785741395513671132425792890481554950675402496741295503365340704442093275465572221618059728623684225565461360381473226710693765250980954435740685616658576205582373908933698501251478437119585000886152143582049653225716157278336976046575008628588551721651708956171894020810939682400365993049008661712625802111624855153404805330267987536333249835016218878096920840076724457111466358466246554689991328472321949681526070429283314407979912948207660120723847259621804137077217195418211571950382575810026896170168398365792833258290206546555984141932783175738853762492935256466521689529239420492364345150483434687946720382596394936596009666088715926555390454847974832889371151562934675964448137614247581438331065670012164197070587376115505793937067956179983979462352791097457829235125013072268696919574305552052043699558724070449591039574073050957961997933712446226905095778858356672931873136434427692927381871037460822816286756215218052291763615528313643223742914249500343503097929729533800159448802898875257545733490956050899491658697616581450596095385894780806135620698165871332485853138077618851455413865329858308614475817695134039864976056004142478648829230154411583506092334469163058038127033810918262895444688387419844954980723725624911285021892182449513156088422690237665260219543296468676819647123102587961498423190115629417633052938059670341924090838115639488365892539923462448170130608954048864663745571959545250919178777149526068751274150892418863902628401298372202406200393233751770497900537786294561813192467063317936046699458796873738574307109226990849782158557694735960401355154133567565806286914200061706589345902854042141980820100081200645519416930085428979572264515724506722318967692180762082567310619880777859727550628893801037960097569047974574148699588142294737572638686941803429304968435967800344842552847353958449713259023612142130744791451239046793803877720921512709719389123754025378200138845836106947385700722332644012574153643839245926721112587160387256114091670706669148104584090838738388248180752725849661992780414055987206901449390830790513426985133301570922538752002574582076760005653190269238391535960495623874986588166955981714790907712285248071259157073085856640955531453333822779907984838132457993654506825302662217657480731902975747918941793433935695161100329736978952825026874046196383609654438714430032234383671911302493769354507803619893364990307986269046123218468056566793894518788146539344370536608564414159915925431870325145516978753316014559735657040209810690729829074034365275127341927576855332670650115640702212830595176711107641937269949337105975082458607010585780670653183566077848381680513470301998214795169886466177825678430177324355720709150111461338019765888125419625182560774431134064312597792259323978008197786800431738826226855347817668334155946591937404525217550677587935114578859247537678658241871153891223672298569258545526684766528674578845936617003687845883610665156636262409370953457776634454592298216930155467526427685443437275980449018896111950254102811183649728306153956827602915005665318136649455917192078863077991737191854256834571508662432351950382693300811371528507854155131424070375544823969024766208620686698012959012289271898986407334134156368354259721624492583145078186464757500628663087206999834832914486420202782955234068715716935082397601205878653918994569375642022047350451535914269127829451686553541850259683284290505934470920856006235758870039711578700432470287419329304890502691119202456213445541599869883380739108628356467751077681695443323933292330528468067549419901646149877580096673960453058188177743756452982811094418701392962396133041244087776282767404119220048536453072337572057522883567818803564032697259813521242983871419259012964480665475235629262883031563175827741107348176014094315660935669952726999082863696557845133001243448702310938541350245773452214973360434319435932969449026145269970704197515527553511413753983785238325964344401538399925440031776102002803456309481383416522245079193380390922867039921039140351953197258826945899879350637727032185084058629893238571745041071908459915042785747154751249766348644185068634609146356059919965151724293712300308106937190588867543870673747325723567843079625216481259093198881140087932402353261284758479346972558047297561336284597268566512316390580813682446210039459725285747585360520431787843587113053831162825313899382049299657169137264410014367410508460839674050590092025511214129756798020810251571786332539041987126670209354476523918053067166369328006930088227825691206227918241092474334467630966769155810434962140213651693657610937382081128759834438578705373537397652603049243092675186460341681339000275914568533569450661182235154855992798098809631562702159785012976299406976091695987995037489832216181876454647360522543821420993288493881807413546221371081752475091211835170226858809094562650493230860321736107597754983061661101522986854592733093643545360662851870165281019212714260433697502156849738902332521434163168070981818105218993897577700992906620447167334560880419461176800549958155319812934170528082016550562380790869649932112373899624780666813283653193269997649497343393559037466137457685120950134898005529615822815953087802945267308309739604522934410992780759820719460048376852935903409104607668104135884779146562892016474961916948753984699571074564271848961822421266651406209123230016623023397291143647652326469031714644654215317471937118544876488399486001752920603540136993229223908501435530532872015529323558886927443441239981366060711622624136460193525307936561287091607422426659983917228426941248300744652357118167320709087503339606995382585796073094412001109906056938601928096984304027156258559120535503342378475069068904923703026567970775710632405265849288323611021167060037119716361270099177319834779886726063963149485541523653326101070261826581508372228090908266632037352360687345165625049569091323248210345315073995898649658830489220611449599306947579220841518266335602986034118715545088836079516277777892308739219193294251451468772088241150934170379613474505005688540846342204280940326987401665905039233731038765892385914260878214598529038055018455903471451296112705218416609465861455301116539915910430214995473875432989883404933996487894061496659872254651152010761121155148568181006372442603974399268601575213670768069243470168757337777169442553093836649307432532731564979393201814850308950770425176123035377714453705339473316781394176218429731234251384185714113258845389874516868781610202276351631704547948935450206970411428986481645841350924385386183082980293765454915003549682008292892305405930323920880204835702453356258015247290854150901828999591669842237882555652640369738170422606041765576947171801350437509810230722794470781866603765054963239161189764270017613057436127502040215045475333378284817468179324482355877262999446722770907133087087102698198700147733234038192145605846676049545685742440155788361310845459701877806763374125935937883967319192935115533901049081293885444069180897692927940226896310220678606355974757672602711445127569177526569195508638587696870250920596680883621932539295675112755745593792448243830848358207727298709072931133850988921356180995757935356795910866260528075787907312259572581609080974264054474521126243529756228670365997653193957742492387483623862260354866597457778767716170804260761210146017915069865214796562674864930540929779236467676002982168180697341076616564542225277954853926435835757520477566978714860527493124769725946091455307768957178554234815045548429066800914254066630735945747936965662508061473302250003278788711459858873057787536705123472281114037164091184528104372998889947038511880841418724698803490200362881988812969754864507692099938254800340937773592164494175124161074613074682962410680308367932529167877528905620447569229520159435577352178230969852615703900994531782901497060067416348374775472918048525157099494262003792955314202595978362185914225846112326941922799664855839267378951501489036555814616643095019905044720313192715041451269283100009326499801346413959576412130680073258021015939979558186682092510853878333546849883110079282548069393089552635673412047896405241094898663810462108405258835792381594368113490231664966353919604928694454860080085997805265261076434476235328890392122829736622268037571525352628095910019799245776813918226579750287887049969878474945871338760849788127449666670036383655991685645253622579400110972764383893170721172210749136950059803229431525608201223505788549902485422984185022280976390523458585771985122310717924207455569519660251464378466057507690626367743009548371447921754005547877588180731673253107039847383790096185545808343026894447338178190643098118372522686691122890451121858022437403808946876434426578203237381837452683017842347660304569570603283216886988446317057733401644927310874157683254548439086594502944853796843497688877063756906752651079024623446753102049540639578514305484150187609296419244943917355213875360932566028991448848865721946324151176504820732872743969583652158806214187100873414824346364664676082006525277651501975424183603279599480401364832848472769454787083765573718905226661148621625296285813366561535725792991981365170313668032193904687129481648786110231406035700138556958860046857370544089191577461192933067447572026771986813150278032924597251638846003596390747103453555009249744274521595158122194335760624324412098113618921903335841309702428508930403907654179823949436930279383978607243423849223514267325915224287140693012916200178899409939593755315806637819144969133750453968839255203093619027235593011135847882111146676035665629382500886608148195676273058080860874105925065177155159463875745317882575413702180890215055955733430660536376176100718550577224980212113633287049529874263353770965359841228898788829370951077015118134374723198908688467124275272633731699250884094054677597223095969553518665671569063140344914727650114494898343059689691656842632281897567870289614933036521533098595248080634409549484592721007076827560212922282325088542731240590335069179707847974292711014612833049544225077724972739930423683356909629914149342291596888592466147266998557180129406686648429937793820346351220410006857191541755632689103672804419730664275979290095522259293645390231425446777051856144665338639202130210433184832817322438388360993309020900115942057417295393401358223072328655067211868766881786537497434841109017231741477937347061250393483793594521515200893169080107087295323586487226754905222985820781369453990155212194174126943589112069830471211469660449083272097507799726823135152433299338737449783416482013364400888792441510481693723840342614986287459247163247335082104455736140844208523343880113899056282346886689175316126713346863427546405902344831227641499082874901286516423109125854973352065355075819554255810529003048507374293876903528688773097596487424884259833009267349129964274393246943087010016259097318265019484128562059394144567796035518367709276159862345625587186727435272745054011398835681726618867412918239505122175221186126270873415252339362565615702756418044717631251595754017798991774300119332630026988337152385838233560781389024780399465179100615254192391122171644286726830493075236876572496528631330834429862991334902740565034029773539789813439275708645656492254271876330482700239673605390073863183504062720961117591934015090707546398934846887254279742493824487732168124822635319703421782848454791068012681718357894811638970169551921598003113346220343943644659901588480461079002525349352929136649998721003703616377963280268887915111365367737263988367893121144901730968640269675951041935190890701532200173701076818955499333125604500139958197157464578522787463707820136076001475109452367602571266300079756859858636726157752050202455850585744818857022287082087354962507578057202009410586580866573221065629428325411870714812197724875619316463763228154036673066016411900661820994459573643305822414477360606005083145414524190839434924180980523043482629965507608482882444587553370969680153276220296177078247388796500319028872860462500535440487904615996607764941288874951742239499115450379526276183873859210487886318710867568674755524832718789179138689490261972336683623609681057044839963341612524833112650727258425835491625883402525105081077864029977204910610940928564696619564317348054767044714979317213620977354041243586339429083498946705686937538441878907021691219671530688472471674828613756440724861934960117716773182139457043017070351985178494290138427533879039110200126690637677791726022284085899839329551414940356104645057736068455721294201321239038338765958841842368446136626855666616902598783009053938991773986275287428496622520703707661570378889186574650265522814677269401978598042193212207428889778903611592100928679721472775369970144598627258413070545510145312822977009500881220295558507759039508917530676261510603592890331468869917813699139715322989592646623458525593826049215605552601276820584476731053664519771129021855995819446434467437871424339928539508553409686603207309595751221307813478783592704071137959518505938471293699403778147259934023074182017257914669294033206731909274235078346881592439020160083311630625864280143240622183851141685863186880130063832173407932486005790871325148533487351426229906428296988790689236967112602695699637205229552923566307274041757883684163953461791173928440693546448844242495252264144467900419243679281177729384571113619589411341112841780511588916082621413739458699603042216561520635282634673169058448782107964592161243712938342645608454078217952610709709049010201729968400207490572020576129678684580298457493364337915705760478446683876337289949524990012447330293944478723670458261042309899916834572429573430978451483174612550449712827331863619994782334406058899941132181493153091766342280861785838959355042832342164245635784900055502439481710758251029859824781671072842698689419543853702115409278624815911771699058514162561407671965827288045369907508940416067912285931104292253049753129277709426285496400808907600018929292730636691224849989707551972978389502141550248586887243001076758730672084422357690124881688894671893784277168190059961095406422016351149537078504361302069829607967142450204861696302562167569571900846087232803337700386281982807529070531463690552435921609311455490617062741849380134480681011736384854226045862156569351976252622578884137995902656948127858783745182253140056294606575348099184713247913959050878124241936859229956121380258454925594950509598980444268261095447693947912528860617477798128660771021972879617716702106008816551145283772930919830567614344469926187392398672597274850890300975678930981334108494134945773848503055288668813901713023485404221056654658433991086549173384401798814391640596020143263793760843319228352078295830340255609912340629832692197595034740350899295698710195317144249614277920464556870301935572102335880201069894712272105514739591134188287752423003914325542728751307369423617792781115982359997192847043982833172645481672255525988675486186355180894861172171286135022891385729155890621241559727192859022153283819361390614892114540892921487151453461619476580512363749434407263730768007561445879505150284273030905605836030400083528317737472285853498375685282000145964753571998988440117539876168107057858297814931356189374572573269858678020009068284872962486946504631867970660298387617218128697366603986820175968473179126908390944767085753089173173787139682866448897347796945503046063623045010572784509374515066643507411177378482589581712007762662431991673715645086514520381755073356932427408956457438652823366109867591495934392293660056046888254842290181763253821047065394898088668601986668010401404167769671837342713839685233664456876614642442234246072348292119010353619606018683731595839897622798254165485869124067214508211047840689316483624007264109455796204960265197604514665040333575690844280607947719363226762908864848753929634779649846366071927104723071574183578176893470109280139193848196448651426816362930004160225920347830013203933034221367336186689938201414469413062845536143716733232835738950204897032558057146902017342366431370674174617928551659731287489634726384085554771888297065528146110616724150824721064609506379287618389218738888684030844081149163605882394697161964441462800966613460076811449488400190295720969124582781485919013782402705593079126816634239325218561248595705141719298923844041708536527163966675165774388381777314209482845002602915918107920807770249731650301977932721569378783452307190714045729740280370749780837853003225781292227193434273705865959919034654031734307317818150674450700072290882853625876502481196593558346381253785620989754771969592787603059547621138933896108375790616629057170753087385225449229447148973575988846523906802964488908745297175177448597214695989542202375509511993888920358352637144133827063539657779101147808177294885015971992731343203858605618617617483403447103335394899798924034228988622230028454334827455140288392093692095787319152789000528474657268453116378464447416148359268128013174654435896573700314585794336026194027560278096803646984739708694106247187632570952299919712156467124378097752794470825308054395642091945356439196237091855834969592489019442743010369758664539208283816979771273006141783805251478437201757987482785654103646409137890362665303884777501695328664089565753856468482179109234174553189666644392140529700220036961772161001964855710306049754714472026267659767233747181633395120816281097895164239849474109763922238658388553938734103083202731134045152919349603049323012497976236362050636525180555019333375315564498537896222681078442581036092271635851916837811607332038017957758386502021807839138542317414987063079861127534829060950301203069598355956560145270285613314958433235796345543842711488992526536519279910591890326772738425160769691846190124427642588912391865378433262751547646957974554532740173918510436222249158766762745841569310034713210818473133956503449201030951407661085408768374204044818887725559675379002192709094321419535100170438165309331558224430704760218514914225702802891214810908466070711661817505100792496027267258323869877994384621483582952324025863510119555989134085057942483090234536880131655694303447970913635545829339994439032662892007801127731413454182920079445178220093365829296532795880376378891321399387169814452253885977507098354446381829888175551839051077197912736851556001134833373191071365837214853617734391592679405162486129255646155403655913077328442159961581514115820239206889072186481534778232105795073638371735580786454404960121460218117172362997880284368958188246528436750276772447343525430539594392785427099125146301135029783936491998305618128956887603225973920959147113112270521897870149402845370771880234750464930553910679667615022672769554725518716081153639251154086247410394618738696799604002294992394479029846357206062697724314219247462805933089920899323363364070263299126838479294934083469490642957360169489419845361167861928029065636268610935290081697059592394278366842162349487204817866882523307225619426775339278210449283510392725448268475802353835871049539739927355558674974177183325315039727537504128961423476591897995228971041112037703845226103333769894163721178440657662108934191567562604292123918882697707212508069272879368803637661437336025983204735560924182632619083708885315370762236819823195528924440909730642997410381604128926789472257931331227036620283174779366168739468463214717540023925288039317458733836839010466469828273507795109528625498576595766145723850258566280458685091214678598783611519825656340103197088284841364607515528481838099994428764582959073295574163683857455651556081691300835591508046593618555376965384909661895000809728604841443970495437309979356361793006458839639949941158968953407977915347766832257931483927350941306973522362058080417165654145800039248474406874913603521418745300449899834317182955148747087230222091385966869166771614202221549390298015903951791791160055799665029920675625806478756187887837786719928669437509325940834841834619724760813552386656974953707083629520297608811078196077063822094688825784304981411843620894525866764082638508325054178487540729033673426012952855859357830708577220400882992090266727112603176411869580963526110854185198495395994824612542226739814045653453334599406694474484268490666651428372761000155164457124564967277121161102118210877654667721486963578447025231129689702904515083690353962042995110408957969666877024034305985848671815862383014816221119697424227545882599841941246159365024306607029142743352720170032169906775876834880576255325019600655158710173645397242412665581123344851450454628780506504067531543500169466737211895731684660449416525392134617385189692553811697578824558883840886037881774790679562302556472405700552384171751033914247695497896490897758101771925396918780487336517061589507946683574403088359075795286177814331823962199918224950800278969530955231059244530473612061411265484668336066863353260536081016629622729472086227725879378576741527586268562964522224521791740706565698864700986752920150768489337321020265310772740090075510866515001022566756623870895769804429197110376353103572614770611052759498467181850093663910670032682080315750567416029912344260794909787871939839030914820363266775461109018616939182564264858154603296165970429276070164985540138137351286343270356286031092542478444827160441907041440903160606751068681163159315350294474006715978138166568885018692548891897998803944204874381921411497664339914198440555235714936639870471635965168048732694208777881097769703203999576114790561116912385207460278903440970352079744609532411418360992892045028404552676461997893133676328796858290700968739563884025884282599574487696172012710190139166988521577593979244135553845988100277678510060335286648594160039603004166161722646797263488220276827310677107845432742577360958777047266159278660577376675389658794631216462599023654484214484797035571508408376240124826456224571208395751902014856802934788163624871042378396417943131990591912511649032072941406090779814741419748392992567907987940846659400284805251240486191833538592772349260290756018737201807545815780646456765778382805377274434772408184415456069861446547184204097565268142471272208927100851083598216863214072663951586025154910748953860402570264262686553577312980871411494673551359189141043899118078782882784899108677840388046380562070863195338560056454262966547698843065951588767328108374411293547108028334892970286704235146129447673141647795969409523299241767379234099034439072255002830061977995125780887775331532217515752344904815944248502454952404609898466532425862675597220901253202504212486962225262617985753410845482782504491546291845703076787826407437550803427050392414366512939974023787266863052892528704112722692388251558915402168327504956189035714127849277142987826450329060380521666208364844617256630229963465464171364521789063453591583571763087000193774474290225729227446481328399720851405215555882340642715442906147906242556265888773021076950624917369948543034506894313032842429272378062364920840461096524248134343314341273967005349125436072080001836971355953273657035632997779749425350767179103254929274866496878978535965006448134758789824309867092703058472659387423578693660671943143105352452428079906943326156907660920147004888960074397447625844570811076453094805293982983266589799337915410543488752256350495117324987020425291414631461031045725698155517132020762619026319964980713336187263517115292646325368994715116271149419780926957207101585167079100729916519188940170721499014090108701097723992412978773284263799971681330076799091575272392156640266065537281665940779952103301401530929318919310864897881068518919813037561982158622256445190365490065135727543083516548649126974150471308366955357989356879598239574391312790939935222974742677520257387257146910413359566337822616182401730971667950142955118734166955355951574159997923072062452162910569879008443215012917256915366048127092870300829309178743052991376403643509026608537728063467600357797409105299815115039628780460748719000984767471198812040523865926369410122120513709754862249562081123987732050288499867492198820161302665811178140190060576687916173668606232951768918586728701386613414354443867272550440143051577939264714512858753996923442613991603474649828153333814009066759625082143588208854668864846951395752928744123069498513609377403326805240650176104794114202719261513031236071560965579280071389395946574012029906520346499942992074130211051431285323595134365954183866604897880934107075894957539117773683201940409504337031312979081216077754866980763815380479884020326803764161715591318441448556222961560963835101816390258658966320294926888415510451351304621872357333682194880748924852513041296936694697435394293049662577380776326505459635751084715714622254734035192979620477951613184234286117555573373124594287550337848724165108712609019799562559777074263794006632899109957920892254175164714621919935801351530311330293129312896186140006190164974448043702402896678555408184172792101164056889975585965875961271015854523759102490659561911641311151991471933669855411582148844868308491590768371510408769375511863124903580735748473697001682343334726330987014110168265400623679002044753326925269257760807594964024660307771965270509187253645740179456575365903902355796227250004544559284959863313424218994649031108296906648696254643246724957747609386273647970840267590577536147697961120056868442919830593736216239171265206523122747861304466641838258776284144804620455870514978830261324443535727353369267881363969625988843461449977888531617746236252252141575144497322923263481574033955940561822337297722630497747361271715253441836275015856904678401685011887465169950428650494754036073249920002638904187834781332807133266411096360110950348926792264651298117468988213718650726359115597129330647719794911911486702702494362469673007135800535802261942349264955741464588855067172993945084752519142062328779994089046201756820008962780388346825578279692692855392820886439888017555808736065339356426947542093744902726760867495848813952268378907576190138973263616085307505483988307177500935768049695948235412095119961391192373420699473795945755173938008184446785671631233613094537961582141870194515218628847853474534789443578774073855177249586604662387128584705123031236974538938307325204212675160873247738867874320848294879782582069204226311469931234421882235827265944248013705917534727131565711736101105072705148395650276522036606441411423682067238538101027794807145049148161745882233956957200886168698181592030452390627362745646833736297272330497914062913469246277776632833997137973347858790895564723153928553005609088136896437827660914433601011460627229901192576068625189645440523122433770626933077597007864253623629378535690946129837582527464631458195992891505194811978347307296817249854223417025548012401373068570981302697439013767073787355633009926249703277195848794648599520294252561145448426159932377269913111258101601362281576693359215553095983030676927712291585577640011529548712224192899427278681523539571751657675588384189778990471276188206473297720752617624439084009041713144641013984023621456513270656196659162125706010128907394452690954634084668683394391467534378826037524419191941195272925160795193592179572144725725528788341874642616009599012322419913089678542779171679168829017522889835578018048933943819760212753512294595878599876275890204736780962978038978886327070238176887025731385016737813967464712582719107179604721002118113934834208684655831160358680024848328277291202778607123705072743124627337867431496733215530421567477338194049712842232753998054306120044552594273456719471405513285711113565156065337016767432181635667668827368115096626004201911278206476924477855847401710575541588647174963222503904142964239169266390687410491570395832219391101779245862284435711216466848927632372726960278597735120120186459202332850477495716202821944371227165086336188727455321787044915905386410494834613594736363292950215898984651442346667550563277040862853808063559788330159003767382784258505936274838875526100432370931244604755268772610367042147922846044772321059135485110543260485087524577141648208839138683515444144291175824886027840786829094385393555129858964231303888798920001701213429345735150588846886679289356743824285316651257459064733618313585586278279604157825151310190725364813049291991898768193828814752384001894686776617474722153035903705575142263738330518814177669339582123487159043702212621626291610606065504964931456622558452754835140746196162644236216688284082770448970746434787304261743034370713748563374711332985933312781853303734157097695603800954894088755993319168543027332954773918662259836427990622590865072568851638848050091359487601430445812284892208890157146028291206482745891960532810394745952293825463230750753891246267121826096698360129619326755417287346638540901125507681931810689410817340693576808842489923529245653666895270364021853782589665735326931785147906993807943980816114473725547189162290776162699010862302894349089197940815968753411196449302139412769324761297596101006893103072559978708030294737221513571086874412573666537931214825463363923909621068036767610861288124653261971438256721145957365875414921264036585360690540525199527763578145721718577731108836837459495371127481656905934342453441307761223345538940172237229382729273263443439209700066778941446710317268137576381255819329894455415412947373107265464039703218843921090485692117114389600401361277063300317128458278968979771327787881298573920980652338264098293536003358183497844230653955997368194651673349525189185734217500127095758010254394107451608618430343753182733063972670867790562532615417462876060478847870158048930707556264985482265957742997754972047006065912460179943686936866426983461704652727927196394610304553942259956815212362438119560533331300288223128857964726873444317379205183300104327507113531497206917945021233055198162696428996890315545818677785595308390277899085372333787120008669360378991979255962351659660255263275666281690014286147040866178188562127304655448580967142536198858376327582571613933923768141739272953718483693155399524077466414603146011917765799550139454647581636482218372166008787675039720378701273704725739568909429858311904352031391461205012243756283095552683448249134409026650192350061651759502924751946413794369783527578367665231327687695053051717693055112235888551824232243108781645025051772575484018251697791756583656365182441573027953163502019069448579512180926601971833784637642411027499269693440869094404541731181918514937348416862211603701294307530600034890616198503683260014441244158773486236275958424392017927985084369420566243821011883587311703487147730702031496968021936786758084424506284314142390772687421746744751245738685230333233573731484456991788333332256206063172573250290887402162156320829722700976512657601288805036256153325419771397900907795341163396910639078117857175166452277103212586292456220672391695498709601483676063125320369603081237117431948284707055671015586541309068903958856436028182300219880495290040011896152019799695731556936116366961133749601967626967252980046029600403166751770187044625476389001121421124739930345579429577664939261601037732377307111246374557915887145925752292892549403847019721046347072115035417837072441391211602659600458179859260720310261757138264483687932945891340130180248837909251490675532324253941380201397342833685783936152823330732994866583991778106928939541221156298516364229220855548325123549712438399670909729504667485767132433784943819219473685428351880236771483986319777974033559682383895160802698185750694129136019843576718032046901516826412376226544330261757372133787226971649612761073322399748170971391484713743263488839351016297787048015569038795399615069955791225447605831645478207399243016114539281315285412578730437575266568573023271030157853306036169955696332234980929527040455027485407385418615902264227369167795429216177396665229310988796610148709008048289839388175469610568146823478319809627110396049136966326480178667413830914500405393394081833499319445012686146900059096552886759298298737145839427017676035910113140837468759809974115165140208132362668158772887486598860236598647758683972217552947722823412123180821700920276792140303477138597164473847456561134952269819649532492234060204894989226117426354644888828674095293164939475128679889808036528416370172880945672445030358242205967737819034709729495252921681753896234157781136829233194227983384483934311029203647695179001580497692890651944502884248981562071790058078876621950764676142412035313002113565482086410760483604510654498898885741583086666146632547819405314202138751300745930432797416428526627325163105190325538374596026727027793563835800910334424834313985636435564816281067586943816520748281438457945568040290452755971907865921625237076841052730955266178197894510252991143354997328780055087527714312127196626864176201761910311760328849859877746520594244589992950475661111921576678895215749475684629671700013034302540190978844519841788662346256048916180490491522200608919326473528025763450410502688631954812771848077096791784582710627695154883298439316381641041426144755521869900497345508708403412245137951039038578347517095109217665303834737833544481176394201333439255981759227349761304117857962274851375413519738511923743353599970072757262790997961828242073671135760342533954098876761041048885903524926498048048675653256903792863580934724017855704154094729743636541807995319368369737634680895394747310731446184352008546574971279806078987788450401711509653093752813155869798469705939246538667755355359464841487570769218543760037307701152977502522136248065097878961890380579801032177711090367776717236451273722818305073612585307858666705159679765872088712180866840888379034844985718034368044000359666216845134313171082789085785648956997214280119805777382666504892750200216212490446420810553341724429877339487921619794004173936452186580567617909268169537491054781018838405357158089400734827383432948663446159507448938730156041728224301893231173289010165710990047016298325066839836981575677476729091490845924774195569619021928000709704282284151399065943846839348464295447194964377853900988328075727173974613751956261572699762327321738594868183160176508357058128953052989716401621675412248980620575683511434861608839851902598933175034905265945417502772414549074262377817680139271503734850135449198179055939555677185941672453705235664984841657899001061516930380841283936392550995783152966279770054897591868515989092738829416551593811039761658200640843693352285642894486611221652053335396031004772233086653884039474969718438340244710832517883962763368873508232579661026697155013817357144064814637539203637562763376998002451144865670652703078820155502399150499709205304184555923422094327931356564572368174278495242042059497375216390673041062117140561322252325954251214559050398959609540971626415516304755365033896107888849587431862731115017272229582747672904420521605549434215787025802592461012967039307638048421760791742527028610753603605800614630013206230430549959044518301693784098165793887668172917124652678861808272671332540459956843291711672578776326205538049375922965394313973993763790560705909336916798558193151976614091141672541442401163389186408201712290745682411381444835504045248400450626798381978780140111579159844115604539971035736072382279993580991061342569307999950250909092867424118127404421913565029407884468624998962017819701994140985161289993667956902619910099508868044348859275627333121117841314252626417772136456985408769071741001625219429351258903985431338795373982660679038901497698094168516403076270855709523219777850655404453869508665385145570478712954578477827026855013269157257050083420519365427765765364584196116499257563297764630922168400797403955364311929787091093899655238724787955899510851409336114393046187239751325016969065006404098184756583725454495260934456841010232062908957645959204394887967874934434720756055677503413271981024440602990258999102635097746900391681558257816647430469623960980074568004476313234905692442440496843982355321864702861739264761907191184440215746200577592322166195696661815353261550372264688426662158972040589727319039582464909753316909584406204919801451049040841436925953446300000984496541230318089573506496258495250031260083747350462864469879626951289520290094681041146368176858386487842718535220189487393375884874883884553215878403739693333360346328440872844345777447613691858450307938951094928595893796616319635403657810798026362048360128460311482226480842936360354300252525835011263216404891834367363490222380880685958866596857648870788343697088887531994085473755718766576614326979012926199010007685028231206965903915371400866368619852372745811835391212950452817732794314023477396556361063462740240110049774860997436800253450096610941587206241724529010640725998110251614790633009267436680742905917095641953258552894885644589941255319789373383404683909421607094509004731603070614952268452522418940514450147004974823202738501765509699787774695234965986305156643381106500570735441148056518076992420835726858173768132230753254651295620225623455526889329894524698089009806468992275055088608464782727944863592247137352595752251143946863491092658425786787247561529495570562524202382132828358172913763261206491618178489577921821468579264458664845680934461407242620007774602821931594155348063028743816313800147337874500012451101770527823127785808159030334053131728624012901064557896865642574573895450356748165532751530587626616633559163923684282164931776236232391568595799521997679772080739504956955544101561638758860064344872843654075111417007518011479171571946048143770435869907083087670508201053516655215082796031511129970435047735435952365111207075551826432448390669545093874360171663623041066345111102458219689733400280105921911248682575438763547206694992399671402329104988750527125802924556707498881069642177252204683529259996395199745216494708974120937110284304272042214599901702761135892908660890696301316941398034264253899112097796101968780575198251233416624274862384291645454250908062280504606151056794217471066039722191887093613886086580771738748294168968824920241741001456655271583178754150942899565502784695171256327238542903725870256158962080632607329712119259856195220939027546435718975230390141574466605973268117300109738622647487067024054957540640716195454108872676914417251200184273857654015423024569530500904119085321862905614302622838547008945560697796215711230773078068997513381473856602887439813542654311489383716312085242565357864703409706871714958503173461231441697307957495194082989358216583846611961884857490214021393144868785902011215249864130034206211872300084206941647485706080797080155864266446180703610009958924845084156408157458284582885886700415962374563545151762681670693565288634540700532475325186744351537660651348963070769803206589336134728796987332643071084737210340344902154727029611668525317216652649509510284840571113807440748043241654862003887411238036602499662804342150212840211639029514166336011915144661876035422501737693134625516081640651022744843795711213841586755127397839889422088694108051625476366671871794298112270568390263675818046734817188266049633654044415416304403348008866365247637906042014231655600291687049899517068169095551880380588902033820654065631354553546303982592304346227197001726342422904816030829755086814607768574969835308334104286448716344889129383562973294033179177306637813621447536248915957514984486365000720353790151385772361547114352468842263562059143122622802337054452807373982835556999995482599279731949508266734699741629848607344179050303864948730809819198815196758162513776956162332726948595716602770423062339180759528272156749653077428853760873569031422566083247762171042889889816995387457572597112630236732614267803816139858430854787018185599589644867090647516436869940531077944477344720947235456967534050517929445325562993402220495128923671814801766626923695195033291176597761297836534318902283320697424599216363244043337543583912084317978251474031830468554484701486003599035686626162981408263008682132967740592033836687276795802763137546475976581915383024797152120734571754231960762943322202513805707432570605242211757963103485700673634425320768272542094028301869816755916175982187071437502467531632147788584892636551607173252824732639481954654309262570700103199534986874665709494585569622911321567913723596814589560969805467442576170915404921664649144566389433915002298441609069698713969550032136200924016641059628861911010112712613386149919924542397998141653717231780576193800437116279954918450420667308297896436416253541964870339943448813564083518092468820905123706423949847151884629736776666068492764129705526948401101257896973367398204552577661870136080340367364309248276784367534895108070792460117940610561373280270977778245775902182805485315013224821445464304331121506602180134252992246284289113734929647020756333121924891394130213041782964369854045412904058767334195223532406868152055057542238314471341853469821013313457197680957459016855253498999636957635918949568591211591056564169264008793871592718006123973968867227435481897241854679037241169256020472545476177734824547922487959761194901476100685965405947272585494738299013041719170102019089043422053649622919316115948997765079090573452515407796088306127617825988678039819125306705818923257657718656668313224705242162036705171303398801285947643722191648393675954507682914965890333348837242229479268400734676549247155911864380648734984305561038291837073642268332635283241699100993852598414689230980340966336449623018625011686129106191787640962231738274918884961502342775454679399320674234784914603608762148179781358350914271096470215694482541710061738542980007090973463198190292977444650025449737218380394309737749337254430869845031386945543279725716559439573222944667070262980634845662396997542229403785926524701264858389520886334660024717579074379097560396614747877580086780387150255703687735380959262542581451262935137885421335494578700731055203535356738690247850843753734379017014816797657063517189936832021826728082644710735042619402092091568461389586290944050507536908348131442670724735397823472699761539527847251695966374344032364887588387391033895670943117922460408448826692386435761393388584863921049007749971435233718150516034657960999162333808869952987295364204409790044635497282721168565641548953525008389267911326568053880295434011002152224618948842976604739956141131365121252861914441313737348424028776389499221063969902140199222681437982364519227174042285931661451114718787875963741650228745146604327234842352899653909478860283659141765220012011186869652318818847676188637782205733503544438784114441102087922742314459711965165533262484355582133659012933477160721343861633553675802806847057661739569914632867259945583484613008792404474394458806968944948417760160204323470375085213531080523348545343044588996656025542845254331895307904680221299766343668609875115145241433472372394277352746961320442975293132440076666244789863698114487999032168672252737892058087677508789437118185160580632048601533182814490825072311414066605763198754298678875564373110950309249633200615547767830273493819225060758954324289978028657758486410299930714883403876748783038702799608739107875784328940268552667068363040887081783941940028230383119303961671111443146061944067482935301653708146340488637912316880975757726578372939595941756769708025649906821458946922261372481103130377536957393163148953622281364769513440112537818178927745104684019098810357782825198464636759846108240802621089336519605416064325176964523538772485587009615754821239552370535845286922757121778226639383631561298497374058808586859624845038968165434550342353533939075350808551691928169352489042879283071353417966858069221765052431852811844837656922241185098207254063428513201000829370339233492529254113847470976446947521175924366974329161217747782798753852724250368947844238485000735860376603552915795911306569933864829569342996023362294457794840785233934521826479408367279846553267885270864266598934329193713723065288827020342690641097318191635336782891014957828657342032132227311474198595944133425988215379765532131154667507686807185358860719026584994527239813595563275075713911741726955929448902906136472681709382978092813635927536389745724402324750530237268438361268371749314234080143165902612326850220046608902755442045006784687054846731782500966673158022392777769393014459849229420766097007173670382027106400659028391563395262192359415252930812998194650997329218119533714936657687079563538369646341599683306476383948604206783235461020214248422174389913537505655067862966505681609006736277138177625816185134985174711914605481422139577096162040729798657177228741729423009414378638095701327881615186499349498249209741829185357240371454175839546388970142515421808435397896177565231235078906363067361133944105701130578410917510634956806484106206232854528430995070669246177555073393496204144769002281038368918300586967135828075187106459559261340840934178668231359644196312606231657483787868985348871048818922990870528666113086966452896532309595659968969167242172365016851924702795062317438011517320825706675404212904928340129622768504371735066450451889011240698879051552622157382433824758003687173982892784627121404266418175279685352306592514692358551683836893525774028452222783223037243616191085221658233784040188491647182517682140275233742882628687268071976593119615080948590781319121885459878356201688979954913953577457929624865736480329809338010675458819665640946127206858716037792930914302644901001723366066728616907883442883277241331921887729543179049376500249314935571679763296436850723041467141440738815916325611220578577063884370065670074112510359648997216986652655796778480575451650751283540500387442367030229329002894758080690894022730440214701131270439273088436263517805123148411443821754021283457704887803554671218751068401379799510739309366127253880531193299143580784840512012987186211555406563517663303765463998794912833000440782145630780329113320962838930441592718819771983000352074007730105806125262493497699850914096492550947532002237026982020002856472254857020025297796116447986939560497845858870428268309010664722775032135330512725822216866265542084659776893841325781491415869561547145920667269845270467339182451049097068371735212614968650211860870755754190340306420145206825371037399484268233840022123860144238450239228363615782822439567693846734922149649865574581936308172423886526898155490616262664706082276967416166541931257308202594315993032581910883561547431119391617982524579200879292486236477548407640524915810324939362373311647170891564836437742684269712891440430057263160376193946287414529752548210131159347670718371932054764762477671095922024070635962909362040874528174942657594129847625925926842115661164713499121885630807246160815898572084189579541270100868276119065872106645719834253987429796137971744556869487857319056080394392906624988423533984790356973740806416918447513953499834328226789759087617651453307002134852101067645481372917519828001743296114713119667264430996117886320441148642438866579266623455193451201124049469547893670440759915825299085553812219869259734633777330699940532313073972720226061613390823071515088235388301135373614784810797079440904420593448924832416567352659176192690981952591798447755025263336692004290596253760015593352215891999607215175260790943626637639753863883406993760430938777753514634862064134195435650682310453332800452997969841232109695386012894494624644030967808722730835488062769689398586650412984991970516069525522551615683203912963390080938273726031207572881015576062239157672140845705752013774441758955306322606942703172613253869510860668274276951746735386681894818538884746727428880030446050214310792490180606577442595265994936092219948363042351887123248477901184117968076973728217086647304005255656588682969878444673533344612175538962285732104006447829720421529733099754999689451919084169284347686957753053016272422033851489111006586953468058135202933566469658149575156618417603371848758492246316586348390622090918837515129939533635282082605538348635649390253258389870432224754690215558607645651272038268784638700250636949490322964916523263992597440584480330254052495634168777908713911615538341201991111452455679612000015715352953328453885295544432314324372067224943225887562668490048553133654240557766123200515169282513652092279938854350759439885128842380662252192484139936515834191272723494851216760210675363773710649357719871590463317101799573675280198501385947074024283285845030251228493162555182473336972380556150185593120519893370970438215478458898254902297193583877890275168357341414592709846581438620789457974904926622879650408653560258038526555410188511431282812545792981647230837170225806513211139554540395686134095168729122179389992355979516426541183225452495274734679667599490061144416248247883348624646779322005413724382314081008595488676461277226750821083043426642881881885404894197126536202269556395227341393546711557963915807244446980509539096719144677851298286372129599894757386943132245866120395929681792203338345855679825928849386360489760402851864468969092615711803953042293067126587840346928599605038462937557305007200467153973204569389958204094273658445178718871089206627469793558775982404609794601299312675857777105037121908465853276158843864849370569598960657852127341253586474565975355984087735887413063518528895505138719082404862472134897776934972325877913536385190498031523895089029319346712735804828342479509736920385096467230858980007548764931778133669196521754393141626549683862237209406899634744074403632617533820753348732625437834133262197245520940177464313422945132474217963605988563585236514813372949271799482469469418345844874722201949380791715806257020842659549078524004636618787326372453441310350103597716713898297331004079960048696902948653846981789799689085137397668713388409417957661533179475159600467395070571120828079733936159000537358149054180972828050841291703630633235450736521401831480437187294257834219305010060986160145998850574185456176001372577372237071310630417853593364565895883832140031497642812760055579035510181145635683695276515305754780984778254963289786311124874403970417042500414825912539809016572257951655716471132532277366983480436950543660093683162227381207770730372306564266147731337098092775249549992188909677363858703381774528252530242870660325816144305284348126850326676569441989159329961063099762635662262376153984611385891176546576447268905556050431863101157573496986001691628824292662105649684252930800781137699171419660106918408090845149068982126494544631968530044040789932632306978753508081968539460480767224725151703914073836072998266616877116873229785057321826508272664190024470971129307057883346849151467211432391553633353023501044395818332406075857825448568872397453461521148208944670350779550305154365530202758394120230697334250009187491344631683697060486325387524203818101875324969678737906072904133293084417283949173211289089286618588304108286069077172717257546104727601637601956916353598896919862036299490572153311199617372409358577512522175872232543480990852304364575646981619087051466768246846940906951290404886610540734861576268116288857019635191711915606002104559879372337275270533102266471160026840480204870693556840511596544342245751987664038199365306398840321803331443432636539316885563044048397460718813948693025148218569978043143470454790013068455493549600827066755518086274622267003123425397872908801249785400773416831966566311234401891242998116773277162863525755574191729491980321241783820058562769641267349330997288823063361679681881418735233420852414692980686384556178075051441876374359101697976545534672187812317448456351191578565553539749324624621388243385212417243727997792258722285402242533587090826508467586997599399069012970070534179769928540876319715526855809920913418156117794227508697230926853096437930895961063822320925730615616304371194530530067531650038322342883596338525894617710266297475060276216281279240546667253473412027041470610856810898099649076396986652494189805553321406162263072462611532356829038845678298513554522198209480886249116785973073824305574025875769692853270699752248046316869826229658847467884454192735319173205139297059308249595665750437815194839145404354093068961794283104653024430975244005066315267562365124304452335348246026997606515181667107500315302409045834497749725622433414466212374004338358845587386359908240805246623515729972908756166342566976350311641037715594774121809172985689776498298527972313544055272126370964778459289468557066623663404092187581735973759493787003141757203015625269358611975350666915507000674121093741258669295777660281639893738046172044452832192607848779093348459558269679897577123072211706067276179549820536295206936242301192827983373815531867908974517732110842969988465416429043662089201132268805740829308642164107877124826119914784196030536380410095222266131819783875052747567367785487468642568313324641526103622257205038702894016728727091053848633093346337487102610286518394821733547194597975039143891323643097671532715161067701805697616119938678901172901512161918722253874325283598351429563542389196818494138914567424491259895102093838619157891280981627823619617272588418510659194769725846068460856125328571398255080422675057614824950671484676537783058504299594182873340650108387123129634364623875321146151303895041572895529204661425290708717494139816192838668790174516980787243996585586615041709073187827957311310730486889948090186526133580298313358743896620822899441489788520858385810784895997824905492092894277778756179049772926212922074081468436198370494106029641565683330185171619690396757266054795946622106243284627495837011160178907946278784308543515046003524368054010276611372935077998902217606524615915476676065889687723383987960811945516053236773183124914202464642681535337462025072861837158530165616064074929409821969202053629630656188319696793335740062437233270421056425873563925201640860202504911337603879226999758520314869561334636368712102925344261985683192325834737268561072266248273040345463248766147643321343146837058283066235144166651852953318687521715531380558951131258279793737874678257713683398078784186312394305591212038265751744522697299189231869352043691674754064233137642891109739362582432289040354342262867104291654800437939542633256565851136474660817632496916116318566378860755845352604658637345667444705857497543417288399940665721636990806907153506856118391563876845147526503730959882735888076175174638197800868579685722056526391036473924267339138591689473657838477179175137579387847886595914609233398648445643566950843799740541419320015737000508235250805751366344027821281252514465579188073841990796881312951671093810839728042857482210025904941430035694604003263572197966588191351180753909749411679671779033813661311293310101617598712503234290440088011353780603395098304307800387141385493276696366150740156178878928599992733655491517045403484173338418429653518936819793786417466168189176690405716745713685022259027928403312214443177143181932874021913896457842838218165942219621182151497958713726101689800996205944371099037949234077825407743825188007379088473122607187914596821278313458356286867960193828424887034929849533609704729131429063164774100801724258537969715187631677827044968277768190133931899649721172274716440590751183134461881264286992849636376649518980305069847218067493008153244001398826444580691446921537510562618415738442670295512207712232666243849760919713031792954482413000047716783222696416132666575085358349869728413287554914593139933114860911356531585131731377822322365606167290426040096441066750777472118333279759674787041585161931897894879453588159094112745313808226349155777917349743837781932496727521917578316770353609752629826457038677910691646737017967065060922205126464538472971901392371212601580819787839556561296098506435110105084873630437055502616507607636597811472667028052312240308011596508946756924129794662199006457811332910070244630094422730992848274477182005652453690074766270826414478442701745233620929217789594513754765957561451205854744925352637888695532638287522270919746384280794808629392338140710313217490240677139882058794754123292268834102455897653312247067644530638626917914002958431880213412194816384609892625410252518057590928700032378607035636180482586216265658353964879577600540715151585341844982134484113962284058455373484762893759967485605917099410656016776079572536271543157510664907202093540791671386459758280197196979895900881995591909544966326009787843842836822904100530683386891328480166009870301202477104217077173187300810072051161589684041231848722518693912347601678032022906810030106758838295841723925621009841215344192953475223017573884712709541125263787554462877680718961623198890458874717912736105822349632643090669271517068427702473502184470780658283844283869953579708042490852944940206665431176876833888661070471691710212019448331500636011590117218036583786310609275014620725825734199603866310024898751614333436101720383018402185661042368933514678386453912304045912888894867035917109574395826268810804984263914425151985057448080331809543078050003116298483327558891159171170045755960141577411802527373117780183361367374391821715896034375021315888920101572228972920671363142240254581307441289658693282272276053905485724714476186490594171847014828809382042626359460571286483020892486248337797204792874941875040929607787291425323094818575266180268301449855270757377810126180274279327888861127298705904785879733802084307945520397779239740663137816856149789055804439676044864690430636081441887095577239529409721757321398435474526559941136749993779904372427953024589358842692291857115785193619933981965831259188565944091252796886302567484997880012924492361576582579748374388029504647115711372395064024124320564620472840377543094840052032242973823843879082456326322242797814452725625780393212043727385952265313397740984725934445186868968527730332749273727751942184843333658116634556856306045195249545241573082683741432072064403834540366391676092149778168244560211862791734965939234654703937571163705018604505941231650965136387967928547924055064187721231289465416623063737861766795034264044140697077723771752758827699263282717777772949908379966965076369345386658868916453541784071884185301482244606205847989920237801543130987667819365495227742427734816979164388508378966064670187398030750865172807628300950237649529261676970018262751183865093280180761740260841477208962104523150764533606069444744639781014635624635372229243376072835696390364563193287558998285929672369799288045097333865521528293229112579171550439577623366739816152445904760551960922550694525846771916268308096194995849515226134737780001640321216048095652265126707064545299917049384443703968766773938632948791221850226203680003442077857940210571866816107385586647470682109450066639934580568468684535021500139993619759392917967638570950440436529112693421786694828349514312987873048599380851469457153807042988243455699195413636067977365603024687744231300082184975906314587610251844762533392328394311235059776654019422718358782319990398159632554523774305974309229854945339499375324121262187878835555991224293384032319341896100001181708934779303470343589407375874652314558894854594786935369517567515415981338835421612993861404403689273446141952252963186620554980456116994921626137501876029100532073429098523243377199259346259959672042874821948862697268939047926665171696140426959922764287139683833132464057098015624118054746957376871279346331986188398061356511592126103578645425350368266481992920500138459624518495884087077842790656321003285192560720933683061222602601793466463233665796093043897254698337773600562703942691620034303822758553749576244795837335884532852915595316653618785558058305622279648747266720531727811757100058734419098854649067323835823019114958730652308731443394671797360840026451589312058207268155559304574341679243969825094796497445181992737709609187909683410499575059019609016789986322275134427869729432767883734716384214944916455506498632856838063684614362217041302014022258051456195312657804959536783622390968099164471282117707978391182452120224655026983162935130504878330113830523954087655765107398015218004187666811874526181016729178876771224545563530582046406754088882983154657912409460224373906398854420809632955424339303322123023596973316912196617515281857413611245045916817054978054241689468407471355423781689270436153582177889655657614816026521660010138632988785176089108376847444657783029773322738506675709801366607202376023824762353021976840485258905128111285594463535742279664734686802085653723754299767993301193024545194879443034395537659877530248086462785143849688697506652062068002311379414055572059557001656699706971168831226403482427396507436671718373333639825211219630944754537195635979691537303256747072363294273490915287548097290465384615472604813296755890464354245621149437861517746925566262507947383205435202763217711587594784687735816907689165122502274555459920160121194906795527460471253225107064379197331976790091585571049650060538782942760972773320022812021952947493346670877148393044301198426381477622563392669328929702413301920964623537864249041298614709194020538433628201776396943566372671412261134824800871060796461694215425183482710648195322053986014574764067864457990007682669421402308100682540544113565171449594894791221614550309794507600185435317564456884507462670067434104904578641782102873298697195798976333159004344430543907712974608567144087780543595238140243606150303140143665163931572545004514982555755476703296354815139091889814223027918114819524238619118766606278078802295912699730328372193557607117544377922442346537957419777193591294048872567020468312197461805255508067510230625265101361398733297438354965453046334926896745466289965949061708640383519678388241052010033719857859993543396152213962427172745572298159227341704342831544867895292615162059511903247567108096462596299997825750750585832180491302466370769250698272952706954472250543420464900077843570013106986013192735778888725123374826958455694467072983727765462243710832437357242625188594661858717736297183601390411230059834727300924934936905920264041468814522516612838625497346823855138731668099331017704574449227734901940054215391703628576451496249216561776907156485832887089670256019246246953204028777333778266940231753934066413427137570780386054068734275076563073978399414813176164633331620213467364791831568245525111796575319039734165198043143015845106453681130466639382282665087361782926539535173473782805377833026628635369688869327254057635438037726390061449669556156146081813867726588015105609983689683294764843178370305173196676916584158992328124212811385375153136097580621634679088043982880731527525811329829589024037620413807266713658327620616046658790667607549392221739634219553031138877997108414172030963789449224749680742993980178035213390891629106734654939019696525126728236223740152717021991613147935664201479655891297259758706027858374926514834908853458443857926744444261072662661045914073111144608416001123680386680687455738367852858967291799739535034513575552269132748946413595860805609983060586008164051079141990991024767973109638402273500285654625104187403517669537269320598292466796983166506012103445618656943068797144646751513445953986048427464490913211984597971086477092940246669886778771186251255241401717532047195096309285995655166216501928768449682387478424011879261338111117057653983186244882596719453172296792776975882780700320806097397686642259815234036824000150855106337371564793867276268037406825756320324872946697282399388245727467155147070974148387698233930397754165170441183630107831668882535819239986512148706943289956860932508934631785719837182081376481962493262702061455957938879081878919072440857747339193978027520344407941274856700945091629943141186778723557044080151497514398494969970655016292499626960647594210343010593577610037075034397800806406969899146151731664681770880107046453582022590832323372547250994368671350570445272296469600090558877288001646058661131118683854231292913641530449017126934306703115091746416929819989520918491544597090514231693196431435290798177133728943001090453793077068811474788757850622851759720704578880410862754731890121906303044129251295156944177426880017793291922428155776598724316145451124728071947606863583667496077150554328132028270755014791753511998245629141775906321668620464365098852218156165721184350656456419454206350390082820298935759892511214029939038825091848054513041605114331164401674593579236168427588678659111751361937044731125333888046260517911016245107727793238405873504983544268348260845460718980435985431449893950982437200029953768270473966697375281723243483248323261082065176028672420328422589437815335570653739894249251924310275090967205826479696619017832525500467576045012588139614945460439970691440671487729388855264253738356007876178551557685679974233491990412933834134935399988525001394724101134783560652258760312380374935144984265098383110378289175800233803397126814163940468327168892268792301856405253997435787417654410716039499787646299262808824363376186825834288286605155440388604371805877635158524771125801554105506176181449568772447790637101990091585659840596100207872681300541509821101962201914157616111219145215803323619860417072279300443111635903036989953150877265776031929004895086584523732908978726030505332676544133577765679314670024846285726974585064146413942409188209684517632159572202582061457542181336278057043439676834348004330679941993662813773545738604686287698105264438941361419617643551069190292531739643508238354553786316185399379628074872595039187790426798946031278376920580425066521799294962375835746115237576016409693910305903139331600851243898875417718494840410198624279552838974391943169629270333096059608873653406244827199354410033161687588724251080076549936885414685278190369685579722151497459528593026039724470499128378617002407529640102944220442265672907427697509025118831230422229675556388077291050392763868610871143675267876821538144799045622145980427791508557188383792868808179369481271767523248946134221073878463094584863942040253441386394951762236225150302290660495300019522732136105208765984513635897187995796317068990513655480156988817372283240943804493699272876204747184768148757155338119117663973188097982790680717850334764385443725284601507818888687246017639196618498503318719030981105696333145828072755986628667231133308562340736779738136524422576124033672641614098173081264512924379321318161863874586581120813918471041098568067065659857818892749626499784651219441999270469678556327818956454490344130068230422923983585557216271357629660701248352866127559930215188777964155118007750405491455481478327139728186437909258871735472765604019332315661326038312209383187938099393129866179685429674204675020823750225911003308033911448764889137647507274618563546035545161837344464196535570219324568826588489958464014486496277467215422501635304744009996256229015871408543880571424498799783664815380315494010738137713172247363197070674698887291781893148633726713696718953260711884513147824638943183541556876179349873899939676611418640766186756596054446256753092214679284987321732747293105336928451958900609371406151999842736053125986804238629420337945115224648037124583387302498419859150193148724313270016797182437109629014893617383712746375476706308931047139018491478072864159046111598163764255717852236598321329132124899984789115714933041036140807321012607241636548435056750635348611065922641968711246757039805212122889377464634720213871174679864296058096286645053445359974904304247907214426209094206389177821835799817809752664919602052045490966614199095688735350362924941149977905597525444074307151952561969191095712293175056921238832325583421074868634545622818958418806652393402289477343684984994249412002155025723100235156941889012839621201501243553564470763655205511479834199781029155756781673855203977085722052757643859629864366571167516357466891874442163672747910462798451517666168581286447981240277039915570327316130904307859159348579478304193815292878258152609032471038503114748802893745967691106020460393720354326415114143610563214142482882347066681079208653446305793783687319500927630966945366832985287026514617780655027842014682231047858412260142722745218677198773957305406288562366771314750001922165092510618626771839007524782590604793074756434003918053745990615503946327285103692609615303366216907986733822092674171832277147613993808413964452882167596028593718269564898427707192799455719414801778798655860476032605866085398836297870556024813906337412211196177166531459989744454182929537427549731388866453038959885879120841325325713078778519900258975877300961225661694484579678730329325416661710933421226461637400086706776108540066913020701670274657132917830284029441190894314831544542532744582932951316521407586975066012084776040267457651946551459544036655696181333278998012214235763730282238193717647871858333531229455472234600694015473622613707309025901031646726517868088138432064410154680297198140998485223227756197738802811461879933496026765903337308549597407562455905437578055622786222299983662420194751914121661961834055325074994105976465907914891206224121210009912943257837132272944867714369516621298803612918315467444583295372614686028577897466750871367506769283443283127313211711655757740482866466512895995114086526297030388044483332013582596740975955138032013755287339147767837492722236258627515813569802444795658184479095002092031042905853724806426424567487029787090650322011859360582357752324673779001751904894600389283029208658575137404896915978284320292798266774795492706907210666936891779720764504526757015720184689758803083391485024624610588771018553504643085971461576498272141634444269429758823718710717192769788102579334405259478608511753151599605143858835258705633869831493050774882747992438719050546900418127282930098200233395766371892677783772924874613422326159220509613962931011441898479974441334790814897033484460352195153052478356542547084960217150863598826930178323472703341931068449617458879073855736101162921213188894643866532827133164570163432646335969107206227549224908505975376126667094283370809798562832118495199642067182537499093867490836890900837728597188322378650374690277647234670918770210531808275504698369639671009686898355471804881432245107125599458692215058179895357706388598808900689092367224698681172360877211317691161193928627580528933049229379532983264931949472327807956256670622789031475880258687962496252086117805164560692301352513147738272131929207769166567401263465917204985834083838382865115135898315944239698041830607405993932318115885797718582788523495288454771439809913712331942991123878449738277924297842847085534041359116497037177607387021197411460198762772864524830179804081054323864029526652289774632905766009275068700081236191389318671181215049906967505320309209708926494285491221698542739421306198715049814196211350077487120736821885877049496587970310056499486206586317616073581688243963663372567759715896216661335655596517839519585940747844788674664420810930211161634544489718028208790448036659792805503069258063750493245688880696967939156751445309025808772815591059208119988864490562844806278413440627391554012961567005269929843878627981751029941189261256412236092427321278175239039724137952647808321139596357769998143582819166162329945635295895506645844538148678346315007621025368893241180175996869966233539292186387248401436838565626743171245977815316597816688700556638220129500055868421657024535636050996528385651438366374753206018019019668046273264968996265708977914872654731436420805278072133851606669876925647722783725500321751771178407285268628602800716716008825389448841372460683987558822455203184239802333243381281211767914670918242363588503632917453835559146362330293761209647722572503831892829672266577613755467020426513912873561063801241726623489118600319122818496840078352536095660160923045689819695752694132000719392755448016748584198222552201315208144773347613633252703332394587802890521173076564061049363275674403597860595191882832115188646227964560186189700537222956355558298604509784655675735801750890571005254133198879572532447921597283975189886156959973215250246774094963114930253647640875027649088658156366292550596298241662669510623341646691469055046324875136709079827301761707567677732005743829291385406285784395900185213622884785285844733486253916358403850341907453557848352106712364344513678846890439394130089045654543932836528492631665914286794711213429627466118496445194728263362473474574277501071014821814208992670411256199791704262166731392413891321116423118281812860508189510445837893614432093566571911742998837567310645882904109775600336049096420155625233048221023159245422676353823141945653789232652763401020590917700081332723238028332484685592533353527639453542006866170006605515267064469757566749754804392679095332367549129857473552417954940620647888061917267263757951543184976155127094990484653596223328610791904596162666336513000052660742459538292377130995041904025928418231007110014466508141314447619003432171476251381922770456565266122163920522871643861481774198920185089689937355205955977684631151691580955356874155981874344633627221999221062784253322022032062461940966539585234394471108559226779129790299385981067482272394061165389970214569203089467129872928770596681886637218832038424200649101423810103641914864439067859776779511377976912475849846862098992849143765349474622884586267571164436535722950081478997808098155374486452144505635203808887110965993184677889584283098487168999505620895315806680670959820801412606240800596763201531764211555871255071369459744053736517255793717520708761175837088531505250344321041023844496159941049741001854516223010029171851299184978911990918804081159756119119510631007284777775032286576881487223876189857778091057094596258811146511577292921417623658321370124422541098919072748292375592979474963317140539980276914434743717701152229055506112467541196684820321949849809805141474859902173510223739524112991077765728177646633118497026657341981849326868505640062183641650271206293994641954028432204227702710183494697482864915386123807489374997062836838480522465699531898802772167812141682661774299291222466261369570280009848480651800457483700817180553955789843720661843827298177386840841915448005161273567400298489856016191743295683353577897135353678375961988984317546901663047360854287340161921385542841197196822666269945224668012077781796945965133860789087127663928547422790357445073967770821651892948647955711229956069809328612134135613862251990161440053464992187452779439740299900321148435135494211893074157163922954699657939233733077953612279030829085152183749066473287889128178641070266236172777321059557515274471137879386917940160835888400760619357786482759916041163096167851052768078313108833176427242111926911068016156067318261625614245694061247001081927131735673981586904442941551924849064421513006286139793172836217857556409968738589171395453225314163266645105211021466442042007289279702313276285293712887722907950526071067959189203547468359622494680005156279282209027542137510205958505185560589077181725929903812746366835855342268301703396216847490095486131050000083162562398040334682752652698474540979393849391435448750834443575148736863965992389072529174766251313776237951626761429652380175622319304228123690491086198323956966318049475267677309639008367975570759544370039438257892134247784152773111968659503756942614950817229081111341860084422337740643541041954088109241989172193798782387445632268157084708653807568474550850939769401596236327613388300834290908425229372912549953536519548398125743710648334710005556324080509241015592769568148778654111353257321214746620645853213125620941475703286153882188315674361350341676671746312094822365974526663125525986797490814935647674212300125051359372545250154873015505408279174515105685017386910458755117018001015285445789581214270141311839168741645665235429058962077593204516455542156078805595269814087562664953038673236184418084600804473619012294438195114221190114931106912979349678159239478111636577209954423219355580380053060354831049265617274164603954409101924632148888537894427558301386811849381866099422101674425308661965360341491363885184103387104531646355379927174364850262513765519227776628415413881365868316235747643072647249505546597088021328940589427697745686227985912216457199828189890561442945043756076905271086529854614245947982414934854461314808833287560369652638366614533658361227718608704183289931091953449266881032944477513758684370685012257586614663587689573573153433246475782495653372711332719063581891762956802605073702773707411133684974980631129553380425535057027640740017920907988773424808597528436706485129339984100791692236842155932113520156336052391317818476840410664624578810946521318991868529839126388689504372128804641116915000360660385135791542326770028242290840780822289805818602861853429762635540720938318859107308328684342193454220076707644741813535539919366070832850697491862688772151452345322477557534644892220354119718626940308450926947830051561205855752368497633619319543455651016097366238561125943737200399427610254943712554381810007481474809913918669684006042189950937982969054152281894993225897807206220284171829131483121168819760391506184213115917655842543609192180959025777911923880309400217619050812803857147688773714104178958920121935838145476172595073097584709946264492649204083929843938934581088465750945035242646552189740334098168520631021117520605558809892919801236625434604439236009582565437295055250894067205431005875882506444291515564777528150461139999430210063257182499409526027841292885638569365984388811443601101902337918827110964862182306643868518958225004456861455779463779770921551340166112400676174098621328155443070148739424399816178385087173075956776944001620390934147515674504006508547527976155421404397096188236855484526637024155798985035319136416728750039244747201126798619756725835131901258507461354479632088474384561690004849890913461697319804701683643988521272127836683857151966687524291266966856940807650963509591715977356669765014541909682589728843090315003007536842898484079750443225608328586707783441119767998953450072357028271603426096757329659601807234952281620242871123500866166361972404105766507879585246224022614280751867129954071569626700817790017779105915937135115512155093212683521361628227354960931151301328162458719032910662671530287979369126016251617791041643171225801982458191118106605349727147666788084818179324112835500378659472959679679683453848353923758493473851241575603078265373644441975998534782142784712079368354708507439170412034828950782351198812261624329196411853107008968684977024823825300038283336807667645925615044682338796219823610995863476173189373866180324701880266820881898442394467812555518883792680418966168442800131942597539706586670991385407880145757871981566299550825686100393616336898491290713141451516930856742734369616614776860178227032542527060227573469043076236348178598051490553630492871500173148612287985874094243350935859543616707222031263508916307881499110262270009350807241185602962448250067613249208481129481829333002693584829249911108441473033986714562884711368375881373379921880785428850887674194165435289980930004011711334154545808066411241991121155066591123080329363240204118923895092926746466059097828375911826180658350734167462684200547328071534318936216884354058468211344001894220390200722770786928960980295571585373627869303552916512380968479051600858618330760018152864713523436987596817805926151782710282845332712267040637587158859562387213407591509967346188048023759241373069478822435161096410203743286178976502882635258531252489739110335536494019140371507376981657152085893638102181872799598332567167555743871743002693850977255420382757567062289625476735547630801346635856960683769645621301163821399843384178365856410227863996408520308017114386093275023874757394740200145381503945791243661586000147522797500866754485537882135736125376992829463584850963578962973380976579009062966852955487318705440114099022994854662416784573386405594332619621682573989227299743433090885951504172399309262377014675526385151769787180204736349305974041492487463770165879429498609505334018604778796016693388707791731294575138819044451768210043272043406751451827785188014454170198880506089255163999975054737721162864057044193686629888300976866347077006520515193461670318073249383241861373705422173667959556522215117423533721717670752538621784446067380075124264323647783482134755947302356238007294376959832879891136530126356749949794545145646160323526481731433106216580194748184503589763283847836206281708638333046365243074876554917800012576437341813080770002860481488952876318918162080750962601306737342573744489693157135680052348949944449798497379805471973324405581945120148793925773084418951490026775593536107397654093868641760922750864806660769312459115589500611420482406864348713604358061887574298453609784385833085303272266022574481229300022426884122642673965845535883449871104024375742945583063394569700063717569075911750452018259514308470482654597597120280978246219689962147766513661055452860672311624531928508711766983833900015961605661315719261224039315610466700102511873563258480398657743704289623732625526466139430835786676096393112597144755752984248312198128418330689601503563960720861629482985252616625172414481920146387919127392875571047256465509271095927990584100536885135868865246516995722354874331940671351888783877389387851061956226586929398434919923891921686091819452620380990489313118384938543930079810685054673548533969781471969475929892584837531344726256391634631849228310136611878130725728725369775391670727628231638651868342110775329352047307023674863134024712098159265715794008353405413700205850100621888792576333581511084532116539427288377817791049521302458321188129476746401070698468719233650377961013470511994475650528343349557386654185806029629060845798010267588523677836068241210909433858129014428341260384794484488331956199235948258308700666551307224853262525121551942278958764089264620426605903151441002490152953859730130936042067576983082022006944703902161425189234485820900589485123473991733919067960832859552474848676650980930580213539702725949382237854754950867277442426008101982328556085152926404190576630877921859326751966916731406292370990850754738287065001633660582830035660671635911451441435661239251630520864335103678400802792040237536499814568502417159263239363112193439958571426145360055486507218104838189980662003009492215921944481116153899200587301347442301197070874768074377455359198479626558038027480435177834544911072536317379354808009917436411448134082051063985726278854508503332190538308086132065097508179058283391430436791560240405918818420966327474323374917218432747859048099678179123614561263953320516309290312079844655134293980295330117578522055131942953286801954449222036951727549597102651426291292887878901660833164634534830168497669675507914907062442793378024249444610199792394745710166733590136948375872501447405697894865595479249063629495156899396807424218851640912374120067446870527671828562798714204364028256691039322284146045248274396934101822634440773836074393503778293768629037899942382622710469797312020270727403299179782862509440201207775539191118953626669441684456260691152120230551926474804553556760033956012498743502350779880536737942817832055822309423559496843357695119010208344401288767714954785896048271927322793118564011058262514205145486120037605269858026936715327902543571689619419061305152198266057684618894524237902855047834830898543535834303059407554901149511206461851122753910341937801013269871193906022758340962642599563247048189844600608363126640675814148580825941729705155831629613107904540896227031888554100159890932019615409444879362844348253802256332081522890833660470262982481750378189707375061691361891418377744446815249183449776977968540880976056554691083950069108805221554729090773809672285057504247191030102486332136137233355457745281243145740130350967744710697397805395305599114798738866580541355261844926858846318716123583719535922633474201944436876746702989236997752916816548541598419803553291917287073536181202304577992903740043931114213159016082411266520562040964360671323968669244669357790908020598066708688825922124894873307559189227535886071988945566817644333359804062231756216550528701779372451518826200920233379206369715508385117018925898471910246747475343785118439076942575432605138549211547472837289460930640431299311989019591348483792022909801582346759104480190542619370456942800893497941250916464448532494948600341799375171111490201800327284804147999650787075308355544841017188472310018925197402310739081377153198170508853016458531909748269214115407220018861523662913939854150026978742935607518801974403297389110003386315201664779369278595694278049211774020391703329705366588713155781301435529098323201898218942448834255649959611534531658169451682925218219810367992863666078522956812251542822517666722604524123089691581254893125791479665418545354551956944368388186730329834755084718274773186390050758418852109094869242383862470717085214970606185152851322635039665059024650279031861970631798650829506837279707835699224798121324393076507486609882759539685774953545107824269801411356575663732349896003558955236124331998233590058658695122322049259500138045240684862125218095738252511951259669390464153389887680824169539323670431602585022703106453345533641984852860897731127444448362625676525350209194184294850267157544278983042239563782883966798071697630474456072260439459723921305872878743164894813608104912569344356986681456214139590844811311430677389186448427472981383276691982100963305184332330550445295091714002690845821423996924051558201668859516106383955398148023444532535489003208727868499895478568395496180834252616380626229870099208321739146547771765481024049769263609771105027081106673328987767203256932871720794291066123832726964891171465228152212777034947861701876042075304847480516694602509216440148462897220726962396219589012151353551575211644664018344687604200587701345802308184277908662305836428353780426772672343063837349607577394406243335073044704688242473246622283235959908709217896351585054200212800616462819712443397080445620313081797817673882563764795585041049528291539344255005282365211083599985698026339338850647417041073323568362226985094881071436371767269030906488734660974280161703382490665830735616565149791271130081429192547413277354791805315448266424517330211708208253519451276630023687944957010173203181402437328087195749999917487142167159046772753461270060689268680086824378511565908902222864571997736093665233196970545349847529427677822658391358936169512649846960850478389857196001681835951248472244993602411225562408061580065472937124932472098755813775420500028762995415956595819178707848531990941631725025505951795238761873193060985986361591692308723239181293365426527606795252245074664423907081403054758143402387284553872576859300871832366263721703909301993019911703771707149585966501591513078643636706927888021562459242271107255445839599382677058753595837277124324779731094016227586492029076273582340133217620593378423140052365692349920872332526409373451705915054067637280455034472037790675613058370506093530423025110995330433101204677626279714597091154918353399488508685064479462458740781944173624141311409737360112853475502843471024470955733482061884670127218295369985945461573621574769324606153793637719984502144723134710896688410809418071476932802892970263481527453948512485984777600480049127430378952245908352016032222380928730333951692582244909204602381095700309229624638707635414585630026032291286086819938494065602665837226939423808588370337766151667689483600502683257567986965415402086465173592430926916441457385970846220782449281739467733501907384613180368113795415657128625483638389746869739367960188360410608049587173891795993027941242446072018772818303093952969535814076855928717579658236742080886721265093189280125110039647101976691709856901555965581349106945660509778042704343691132779173405494403323409197471586772229627224748043017778756839152209015367538782939249429827939379234098463580408657281423924234204149031692486657875195735162240910275154982604171053042704428305033125746306116372545273572064923265089431849472672030173718258606252447996543598659426316670878171559639468041609440410451736932093249174203120382465490212685729682088245125450303606802030450208901627077766460102606101694880159733054503011039070285920128104047080589435296338389045526846686764031991105912386332436526015944250326735214293549861213185491622693978975453015981087810230494122981764931705507657553411747832682154761751742441642070168715044178649679428748397977096124195511779334583033435593818242791535764150508137146313183889558527902829952365133916537962243616071189346601452980447392809842065743331148557960578027114151831176180125924618137357099855881816791302126497377775302348501079250506297610660332508894931366160675699347413345944236777005359577916082759531449726378327272065686954779863651277796638557856773477970763430168636861747346484205920104790510430280383666418654005466719754210806829810233472193317310466682030218551456365260660779694060491554832559519519576656145432361654622054100308953183458429507306164565880530483369823447822754214748715521256444906683997056017812871220541742171137432739115167754033434306522541321365932433328624894146998592678675971351047916583848993992165887853234347136373738934995583064972089513457345117598728394461663922719288902156214371669914729509105872919958673253396979252402146021111958510996810547612806686134241303121359601505799325096241381435913580405023621121239200731053705883545002473031118680707797059205349217418106387610777171729037544370975323056818906707017302691065847126429051548366871558015858880996751332307580740325977809610816022846031630393278674640074255995992576449658333259414028306222889558051074207355898822591395783409850620772695703642077998600902600596512601566680835764133949582277999803076830111310914559085271412106634340899411616291488893403235037519767272517746775848473831498837401238340666254533014141600239101107846603734205607909243215073359953441379392838848879395221335838993603264035202478338571556004469356596850763407539253937215221464560169589358636264663223969995641437728826156989803441460724280982630207336761293006238433937246705736919092933102404702163066697033917058893654109791217101715982433951402388253288258142517015392336733429953410148972745750463499698246722149473193885531632432556797751167455520625087411964887635197275827649671333136011275438301287012096974568733851146447960672897694750205385289745226456587742139752312775037400144998805689290370589258002595426814465964115802813152472262232027932466640985938367065951447340490512467335929493876208443629159060183755144365738694212809007591168171152863823952446420651373735296518656260823836182171175941492704964103946377069117962081626935378659341416593343489393480411851995335562839727420758874235551304536524453397564993757938810916710296541389060721889020212607659288447069438112888075601730704360391687224678670676824782169833218242235018944857886889992146156754380390920671835519564885272931725408134323793159237984525120963959841109252670181166346002705673913311689335462697635269109177171741174201941548950832380819561296427103510570913063346701210131096558584527694042388504323272155388215135063154979760231267761386570351513809400480307512787950642509123212764598698783538271773451522265380083636459062721981285868783846086663362955713416209454137384751706531338539954819894729196554161385989330419107598448060803202647330261928830235887306013661962228574189393382183828924240482779308784712723302467119932735083117198689925562088985981476087747247456738862488879858090175092790338805358302321595007592814250440533099613880582800248567672686496121819357294280914751459168671692905806443943542792950224304904404420450075905085996764968719419412073462428815868630992820414675907963038216611529553175235331841744718536084949400214274922614472145752454636580561249401408319804064876876161417469028937290204130365410750215913442914428358158511188955104129729699139503751382103458068261084626112227889754200718608951038126731410567196746145125877062640845582022623505845453296358740148712950408028719435589578131712482071403425918292192349814224080308960388220383557587755363164815227584950328738201073326600028564013302611708771073293033191010397304731712414130666691939486238390194930858360829672097169634115340520523035527473290199629197860384420457186699482118601158700736762574796347333936383030364854555177948248428860082359856941930810752776609735652100443776985855178045175190069896025809874389538962720371267103960865475534718124839621060277196972531871669439952841133513816784453990855705594412362856464537404381568898206118364696935756493271463608521948332746368189577270782366253526188843386032894624436266031930818079159610559197923323520989246252868732883876481272788424369590489732146342003320935284401697276330187914545435427687042078807732514679307253796554504490333535630240873164656558545282948034768389853845260877019339963805972510988201053405325889498126420467294212646760107907103507568944284262059252583791248176055029451724990528479697283651070609537491175349542231509265995998779117923224720736980994303710632434472280654155716070230680375051968548176552362505816868418874033606938876510650095129721155597660155676684030459985534859251502989431099341985422016221233590307803680682495821980460329646673668857026046185469010950590282125255059332114298832258398793860722362929255372158454463867551168878348256723496704396338733627390216471529547500199849660104458447432299483297342228413828849225300611769199634075613398097574848638447622543325696915737570936746543427250305227972438969848914283076543790697898637536565314324405538001551517037550856680262347984684391256225204581313754048357404709917194913372916358565549200776083442882607404480396315307700670883660357443424723662150022176564871039208199442783867681371100838087273659855134117246505959084021022641045009073747102021816036316564192062336602302106210007648507237221014476070455135566041842399205771581179364195146730452462828609159850813349314215392592786394490774555362967839604517779217415252693144812165120864521150559179183482278803087041471720445813855232812885534536841166968152432098412890669417777538876640957232118864731245881062750285940021698384540328623911772328247833838531522932965588293575197268423520801688735826726735740579283450428816019144326919596447495935907451120492674808678694589407720348718534737738637115100943025063637335261566208625208974984960109056224349337869238999937620049543992337923960256894845966070160044306266673830813057791837215196838943212653957274154584911665918353585103287980600074501048489692422403853558426326920723563351075397873150427221487455167105929938717615286478416835089017646191351564305029991422383036087981056826884180825355862814345245027516353197484978992026740332767067615138911521260430921784059017409376396755133982837446275185634156292991391576733145027481927562739295904169610722721843608524977203967944449103380153629946818016859465536976525129055786875102009787883715583042183955713309704148413587489282548248778707537202374012092260871425196778918803595194644671713391031824545879290078703305624781318679939904303921373449711633697571093444987689403814935360292371324247621699250345294379549159736062545963283652057134137928380485044881651781991278387795334420803237504664641868795426103793782028638153561472825041585706020775117594268716682054436320863065594503548392867873183785776302789019516075727541565779941536177239365694564413250862872308400406391874672803688328141042458112786925864308930191537755176785206845350421334155519134927601466502481372441607805199259650157627524543426990305790220272781163316332724850551698463839579149794810306194397243752142679939357017282527911276567788697183211150335816488621455810290637858970845481747853828536595437452635453606117779067801167579898775923991172248427419620051121097537091535055904092348224106363814026991554028572823062082725022799797208872656594429649176528310975052191572963768048366920998372667110375471293646615853689582556057953046074700921153784374659207367723875065564078910478044549512849084342063136966622272383699477859198802362205062205294660911627405501133355009616840923569527732436136827917691998389686028930225385464247448869674094433627455039442218043165649352082649424078462679904602018526036403180611656100662313124493472510376864966682359948072306005474165949628839361207984661598178178720170968716205022034755099250335704702931882368824963300120263266092375449786771267092773149300352793814371496766580645052618186387307792394195794095051630113970964636213370125155651007187198833490569921043078620707714327316673232925709376227970738854798653439221113794143255592681992984951201073968729717897181744982446162692366727537704173238099988261356777570773440926087833009169400405064307638555232880322803160253387749708999834086189256842266303809754526094818448487862951938102655218828597865609747237084387429393374989807929329821226555397836649261068194791843983582765398903537984103826656786627089262490693582854832042202633222076579908339167281020083987758872230444246829899452461096483376108680199757417703852369313562044441881910524118737398437184764395342704769011629977359652968571737688493000904989244437903493190190998715324440089560120973610939488313863237898803781437129601741665107168187750652406814669512262051526816040254320145088301337517114509096023353255738686673487154085207237115328826111693944596827930382184150013509326516766158032302429860084169092527536727919548238242709915831596939774945612646081864799737340287339059096684485322101604618326247241396917012015250592656861922427234952089695423090841522786292220846516943821905356079341562056341629030015903504042065442355885046089797577545825906275212288401984149832397077901754785160276823929808703844162155672457792491348640170988199978466371738811545120978293776909554965783479895283592927117521849671991100395644116486687847116649248987885365552183888043825707091322479387610360532253676290062473717299474366166602311579016118453149058508281079793013138591765558691581120046767876947268574719459921458745203961668594432056999333785595078367193852087574959424134664755169465030348086865617742429556841342229238908436783136659156767893897474800690462801776840161623149233898620984304873771435036989845099498132649438288373305683664658325671154239093112341879742270244822629337332703116190938593585448065306197235823375107005695716731539066223614454218248582352180746042971122222488108409345121020248641779806316219075116469587221852307724463945475971146737314708022530831453245325394305546631942874662299077982672701363646184870103373237329054693418205913437484307875604592180465113997004962818375133692637016933749665376749549882583531605312671176564167720239757781697564377799195476255133204860616280723931763130542216868104408657174557053628928960746579851503458791159522708375841034838830085770022809233513688909474761246110837388982765907112194733804109974575294097450369157988057463695352225464350658593234400946621230821880945211318409612654661625564325639094178999826546593447291864636034620508133611059368410046866410281130839494924868812138521621924267742739748901177919145122028223564740314203201531359907553746438272224388550744350202091341386362290473311707749201193715350242073725822032632485625430417528340545724816830129933651797375249084923872328394631793086177626004252167421555197784621100368884031409061894388754654248310098180354263222092956420790368194735898139233809827832460912258013223040747584324517058988305078973730103355251613264639769658931324326228470352610796384666977313677574050397062948120313932392141815332959860717343328188324732165007195386059341261734985098437980323509098722931734270791619110940760391285815854866646225910177915253514757436912735819897337691664870740669811832872601115357852812262971560417465780020099143527572620950535046571545627419298556981942020849869427924569119206603682964318149026927341928311096405673070694833102234033676785447314365981710332259904376638944733979702359476643929003652770174367384488973599954795043153019799917348077363276766351045564998206631118693809623052740016398444684059863766116200346747615667225276941093187028967360171561671104624301099027196202826696841189694931485639545849621664717755909079382143044842935196382493888507737837172032949020173611883055910353858203900707989718130562942310815203960975557415720165060950557355087702372924678064090982038551979086197204418877108899451311595386999383046123756259047018117081395945658121253014614436408088310391144919278127353826562263025948545374108105018926733115745978597605586458684666155597611642750541321156705254706482814454389369250915230272831091477588188677349110067326495355882373351356025817253639019158144165806385586930808323229359484000065293106030169884541481025368742782060397213847608399850760171676851938407910422509257920597192450984848342026353989058397629363964120345028422369957303892366263980889761088249508223698261598748706599272115775954505611810944024590406246119001770623438601696976195388300378176401250715171706011943109335140230401736321024503139982663776265161698380895504840347929068843119399850824303647090004359270211763629833967117084259563280492219739840982000828264856814002506579065835386408672991247261314332410809639497308192393650071808399695680434155524766409289897193712776027237885909796462167445846637135842609482034221925082600870069116516494463852448317996910219363274983674720742960568660324619838191523731720763294867518092106568181090177279283700371981650837997784466550474237039045169275987380503158979844256170056905440491806225844172705908399417157287777709207323148283782796564520931624054150859391009227823743454272339281212915453924044786202230204238444275823554316313736673144659068529166838382774963966678713249833555775850418934601866739399057909118976644325039050016109551802773934284664837358896405988779585186546648517093394388013411046852632844229042794237255821869285677019747757352642205178256043849261335639613216464026380014487309006659375798410520732408147864212050328725593653407651350487310043484643577446735761855185374909153113355834329849545461137988488679282782577101130871367351343526329109123813421392245768201369641815850409576131198739238245472721482133540058580186606053785528926461648914582417555533480718947880016981170947337471593640844469843976929731563890485173094243734712246534291755798350843745976759735357117539947471887910968615718009708575828745791554558379669964025048693892818887584768205794585938701125872237487489083502375097424618711722820634168179302526073305659663055999616877380069351573208602550303421087414691785681655207925225297203635526767203611208675263500819369929782687716371646754591372403400993911311455265746509043480751778397262679016510729478102507287323556595611600886102887864168814713121137022651336681599540521195424125797402052785324897975137808045130938494797186038402404453926085767047364142177581307175096557978155301716992891007289018162919836085793844118388026768492104991605578923603011555172474180677473408676923861226693586047681394754881913752279369003146319980402438965460480415579812111654609216260179215247782884622996878212847030656520284531848773669143655056951909894359968592189361835091357716373798922772478943109686777746598725989932098786084666034952606382047953364542546556633241230171629498484905728875444882746513269358069646924743830761301248865613186651619916962838449834547721707668415629081870601576211799505402701294024685218605073902421631053439875815584621616008787923352707374708421454231665355700206597366101794034608583276970393962214717243696377300023757421101631129660998675809541155027332165027195947379443865376708714239413054582422223522172595495132714160727074187712437462004733085133119634169370118191121684862264135529133688622853210980294450824424103901664137316125245783518497004749303639990861047386045153369487706376650785168836828166590671700345782203492232256941732537145915346467957702364148236442883654135242537606900144070740585154824530489423013839733546367526421886469078890774895084150229157523840161120175438598330201609971689829839743485889203806566002877722238329964253805991868141139482540407382930089943686708985672569960933146493770975973045749679182637319498009926701979226694460843429993839236357633356294184219206114578268524290203202575511882658717182282570726865799393628281546565521805635660697247995680499637058962750721685202175496223597833969912103124571062645854228430206906615442331871153573318661079905446107387103988143058395114059224291162675572640189710770911189716503276514458865985873574472892725660666400966536881638710081743327429032683288733151863715263803344967316839124034966487507686322761365535751147691827997435140607130683773526490389180452479867670659960505313050139278949915631581472857443730648294397793236568824189202844189186319552704020222960887014072820536282587877493998118621981757549743087859363322179171171507727242091004004826620128848743737224541551760078644828990297552439282091643135955053720672664857091328942048960416082188852294610619557861959169782151348738935973559240441662430627494032416840608832183283302959764415516363135605151911846417291068552719937854675744068118027998433933814925084897239826648881144872340951785901984917751657803462843077084188584758728509897600610517205547964996555348399384803783441514169028871272149176955915259342265829662067954672625572883471748545736179404820918165613481984029225099209662194061006694558412579394294944171464219258906977304202699330751294209395753853267345827863609190902768481832553199665546431266941380973284935947234505899100764469071623268491528635235017869649939701092329946806143373117439238301375398120385288572501029577763731433987683757066482139021008615574692806937374618159869103453995102429090325491132661100274967492193023687659721891317828717142451632024211809267258856293915248955136491870171448993239827210552215024076251085372088144059620783052941227556347270258913219450692904614776350918626458074202920155683693634204411963323901584017911013685696937209939202330961881616247955665279579295175865039739554841510751244659493520622193482369576329108619243219153845122699037813080039416686031445160302445463510843481863169783828580568157361059600730028038001681515512512599662167457830348923204159910672979080027717545295643147846045337450333274175487085750406836101079716022261840705545751856121931666837969209820177027024825676634519873219491963941057652266112939535485729200851003418646763857718659080905665870872993392279928402521608922096880984301627438109220225408857053478698630499156395599066709761987186366803849482900507890963323206102572419808952314896619628940455392009406515912395193312066179386253432875649087719319044114170175770819553461805766976698684283541746518222590848481315715403707805528546082650499737821810245005125392736214095177985030062894204081601647872914305195162729441789565341901426946677657190743717698993744269276436749156377414610269090939091812389474573880257393896091746401579685348907148816436452562042700898825066479474618067440065533228830395907780171328042392939870907995863490545212848634949548596304784894509732131235403306558447436760794064955184723725148693574011893861570571924206847396157286119315656405940961662641618354820902451354152466975741468233796051469662839654589406831292905885206701150699277448116255556177474988896917081637524924701910432879499242436001942581440391232657264688810306522924188933450319880691392495994471113302053084916036415250974276303004505944536515273770098881285840412906420610848542680637999911114976750408417608356024093680994213900327253769632011622883999582841689801195564987297596337845571310765604512831660579328983335161424753901152331867250744117404926047585567288294027183281146410671398510625424397883922353563262835996054493921739192591858035534313553195207314560754940385287043620404204055758040302291917392991164994953565694900671344859862259685721298424064445643019582766887244532589000743369256709619568200629003555921739771972625333198482024314682595557948550965417494192017259122273726774585210026906104538239832518375207650966445062949887067431075243118861069044192336320992911434760284964975347877055338613827370025840480149457200604540024508830808856390310009994970629265367381399667112582136618319829654632734288867332408571747294194302766486502172491556980417313292207771669301359568331025352393213729268568010504096557111945061708103594760478276084570885503191628190421004354672007354459563511149079673616064874733560407612768771229547917958134299740153318586405694267861079671946653399620419621731170946985620778418725763885464686541849584974794672050871804065998220963607232669201029324569333573344650328160710952056246432394268601647992670866090399556355181203875714601077578191772290665953184656675509802080617971546832196319110576529513755377078936407339665388227922629055619471280727847785851670007104784752373612679455346153584482800017496369774797258838295268611565617727673649025592556308507790445553084947304229712889203154977956034914592223974556733208268772787297374615499024563798900006322636269337836099663763964179891976677101564172392976317170105636936410659925165126725635524468344401144448806746573307955896648957822901824207808191545289343117022903333519228634522884000626928673763472338649204210766386708761171604890591619392023880434820239293657136817547382546287479976183529679629930126450183358157173161365625822735132439133962270388452616293094107785267653652101746299779184780723094783953168681668975680651625071498195427979397905263659764205717191775794333528989645144667381727744591608400656029022127981176163768973790210354471452181590171108914079852681873526954193708489015167595342883581740176883874632792131258674239026688298160077275210229345418518119932813532192286079182399504228197772905789394344986577086409805615267488394658182480075308313477313230692557525674505559950480556088003314487573045847707026378676450842734709218657644952196098395586706728481637904217145937360487074067946148616286318908381442314418911918685601923141449929703822378753831516751541475806136504232915387193267293866065316452038668001471420863068413946409612990369844954655917487022069013126662941449191870401664651190883120943197044297956953697164723687481829170958470751943133792678025587652502755322439258291285903619072890252029501854157484405687174894201360552730241471605230811276609802064933043740012640504483096087547318421108364975846927244935971821912943918710636344052728848653645052368879986041918386045224409172526231984086073867308388485839668555932727257485406113416160612556616022473887118309717206315874580749931612404250475638518325712992212129953363085594364127943273112812551538147359577385237567719123226680851440996536085399851004564515805385962119388789057371932255631440484983165110275260121803983349893348688148897034477624389614719822777027215240255776967012932247947115831333877289543494397714329051078723089034825812837455741828066455237010625345055215746775522820917912546620981287239410278180261828378021415719965471087168769479912066185267353433483747913169599208447997588043645620033296047809124500077849114786954372637071452091512236575670843633421104282481568365470176473399770813199008832584668874480249736977507942075258485877503197702695758439752759134982442490957604995648419217410086433259910071296316773604080383193127568611369390844832025849189732861083687489727297165388840871362280567429480887442215721322780321795764065080757488437878182364058581589946339998479333991465974821726640505573733404987125505827972380875587043326400636890121543819275574246184654848222840395135925797962291825564990162188973411379056164096854917036205999239320241516436181749833915969704362934125347506316495897902449979025711416142729655305008453914973565487918536669264893012632602193401782421923328805913422770627130868083712863062645516864413274557745465884173960234595753664005438583891671873510578307717633787951731369301802467422675909146445194671378811492496315267607309402741525282329249241602023673793199717268902438180413770652363112382745538625825087229152110247647616811399527350845314761960767365198674160457830294457838359880884327689430567096365262766490638656264229597190232008925308787183250420503102634749021634820505370223891716542637040786432822585281096858371653369290697773314295157110070111546959213175593411296048327823462471574697687018128779318484734330147381474942119088625784425433076019200815582545686602612111770441231581639846080154707506970533072530897498019290888770882580133441937803464541746222538850102578770714464611198292078097781071798902530117946428554543908796019179555369364684366418403754890792146900673210190556516839508694535654863200156072741739218338423152794665837985556611241189593242479859981302938735138544666085975998875396869743226937724514367999377374825661544741828416594643559874683221433367749033787769995451205221368257564530664207246802557259980188868707478589832626019159816448216787899636575526597417820616531575586349730358608933783984190928176219127575289725775152759338528555402204235732486160869974426075511569135055098922330657651129655914395917105187581378482045193645950186012631666690266464337691041587703925517390031914986431858997040523422353849275442441377713466937500204010429617698935916746105656268512765417383137849883873034115067489373798274494097648644285916499423584802550957368582946655599294409644698644106300347439784746588146842954867388796167864049389528248853853663842489304244303919318799153606485519658638088200072208341201433534016645750036794035585775511713031572995892070212978175462314265706494403666959155337346041736572725737832770766789881712617768113493926615818409516648039472551924651267123259002683118607169241700293347562169541691749754234074865676862913950641563937711854466684174419476055253463380342097343756920676387399499064758801511739937811841917920656957973823478334270215533676930504376605942822913113131572481277578671309414456159487335007811688117497711676479848644598164411885048378247570646406333734820605746294351183891731111643184280356962696156731530648571879490943413069287532033314113603593404761650539647313269421740294810794019187786648601433073672727768914632389697070613935185092176191339699090941054563951516477117671278644469974377090795355468615815864971742817646857168162938470893158131634691068363360951724583721064647840200237861636958962982354545497655828129484324983181766908757732900208418759795237145146910069189424774257603552410287653025055438067286893197560469559499451247837048229010750872696120254003662262098050926997383838372090021771551574171601324218199347499096595904802483154442370349968217025703274170509381042310395633124160906193022998895835364889519153211359940351237165223157718592943591821130435083337766890785591655570430603245482218842700031206753342017671471238011164146380874225538764132560332812366255303362271462317890335443062672779016293889648658323094438208115745986256273855265052330339367465785816644072177685452875737491960976972546697091665002267611074453936474524893895417629009150112972734614679106568665807544946199443355333721562632607179108695362776212077229312857313987831656209030195485494093776500209815034866735832500340666362421818295535983805753424912765342207831221921693280315071044293338904980494360018919770206427481579866785622654910347577198863738685339650896404567728821745888184622455004493774346662421354450374444023598670143433364818365033278605533669028494125914806022346924002318879871987791496256667046053840320872495558439198333604558727332624697562300187942885872327092162861602681568777366398279052178944011573177782503549163122972430560207379123809714336803972808972455741452352149828622306571939092462478262638713494147519304338964631357075790531250077329536457780123278288441275602139847543561528958588991241654448144814757884337065260884950226137198000741352788693054137403173192922694223469891705924703269707531309652485908278026707534041078315920675398574667110341581468096463002148947056840380331648947458311381435774035613709082401958514482241361229429890298056550060834794122545214108685802487041347972225134373570614237347755874498168808460434513534141434654630787024958542241403584530320688792600701556238413157069492350941583930770720927905122461332154357404410840263852280419296979036561940684661765977138410762612427544115066345305847817375017027118023479667733049307861356614066998256058451859121334615930290973113369504483617766285728759476522348919983883721118156552745355910801963858583076057912210726892323265300210837635096402296096843373060537741257673157297561585340070441401522313493768904622338404940950334939135108957275431490664561023228275694942019118699797283951152896164352901197986165615442121114649932362593157170924220058286157931810571361365833279080174385801455967963635094703058358581899040220806227634538597364572401205999869235678098859588763636326689151081429651747494139237615091443085531767751281759529833096808501039390407068416165340464042234952220316802876069431271236777804258729830220690131379239586040746842410110787067825956709418368449948491338073591906809450274436578054814233295895387173169490354268554195980403356051351474193625913943450940186124083688646772524062470522846061212316758990351235541465729975052802173304423839453818672498089846516089855747078959130081839314535262461241463779775788612551036366525714326907259463471419310230604205075019783882953846041009694668804144337096905157156080133869411201054005943308362052240808108109762756378627647888936138613070390600899635465067756973579830570772875393200743879513615833985292617783166582811294495456841696310731098047825621688960464515913505064093573524106056779134163963625777285303110861275898970625120738495902179926454896176349020215045738693064249563968007521563229465370155105645908695115583683567880375989869528948335309799562805618755362175774931950955523926643896090835933204868900670002132094841581322194399451695514850277075343391465590905350483104025119503948056906529393599530184691795464720515689777462925029624319094726513432411715451727872266145594409055419448432723180141501220403782500233382306306383464096703325620179301042239582892344090904369077376192692737377159341736812276587732009607535960107436990847975214078820865870552425561080186685920566403531534699887595564376233549193181923389164812352997057892156453219509414313402070895866668216040348367149527478352405116709223701030989245467462260697573539200026386633496678808619615332272765162447539384936547854413258416760822174460541811454519092051458168097059493857544923490897619739240089143399684273203040363096051538044157235837730412555946835587470579508946057234086406266816976572108290911593103106263566046402297472124817053841083133049224689665869208083238681518063216179494348230479153095579108790806785212288903633815899321124865860454567897208508289793633357914812846284950204208663274028806453004375039735101722852446454829638086788641811393564169683185602884332799973659140058074443934581087476212611310214489162772255093503927676263310913995199319461658583811200506632999554721436678360293826114794982387774085452072205100000422582373664488837748782634005160012295333934705443149116002288801665774513612888638965623409210568887652640231491537599681852283552320680772163745439529833051599296443756267711911047668600197918619228651061758590174187701678170650012572170649918098033238463785243439879688989621728675041998637944125794157959549680634765735106120720985111725013033324728845888340005904062484589522152773245651185260050651004262775077964621871106575230158254021704768853651317753910281345254637553845380038722855670480428647644111763507916305543826982700173828973401130727085203943659418539495791128407059593821485339199983040795156322833553211954960614822350999405327743065061944841962527716842753522144483505405963848269259079199333973281680997440221566631707960882470256302271755136971106057187547781258253342051860315993201631498626471785039411224853540433774325785297668659880116628492741899425398884841131209434534599711132185725409201257509119390998967442151202739641490420176650781486173449982716276553105572959501894224306339540624736087537138099607228959972698541049465042673880904620993156130347992728626385914377923314754610206819917443949305474020375529483038957615115337352128062001715178056346364141458882675357510734059192952366082393863062344401224509189248020501024612570717145682799197276872070477773853393857211973005767430133487170597101357464121247905326960403038400222610557282469899899900531308341982277277721729175367147749636839738277053409154983278967460246815122447195221087469939534811713854896658242853032753637203915384326962404865449077791187748264216907192457504870169786935272710906144348462266486708359438188946925493839193521288712236975438245275606948225604558813692291916054426459531755469326189833517034640699425432944898459780015526068191481979664806694405579023622392755392313043406343688291539126236866632853420764774326090956715274793293987291939953084182335102999456922993781027104875228396126701830845460862392066053007684027005050574165147484652894217348678933138769067402442458802451219110987092534751146975796630371501533971748051165384273069236045634998144065706269866890758974904612439076002967094961484413680837708457649264136498454404901522858633631173963357023919464413624270470244674256086349145728129244781538062340080007817588617230584893301319326755428440045631368636305552404155635649275182857491044084163284856478177577253980577451206987730532278986839773016237507128352889202821302428173394046201313055940399527160758761872263158711471521772862230589655489123233865783748245506157741128850594979150429692021574723817662614857542454353881608020506103208264071771033640153891401913415925582989024431114882825145814259863824930692339717270600480743911229672013214172969828071753225812273139517406460779052956118546184668638579034574503424782920498335644114594636615825950851748908981144665245691851600814161081463678897503193105788280489144617807842894630589493880002936615225427772172959742102693092372178785235069151504461155135398842563281797082690141537171273683437183717251236856699740299970976098338910379342585618941870039209832769807547557007689995584760964569357058421500278331109068953563410877449117044655031189709989213276849861435263846180392527391192791880432385323602443474800601102396114877864049553892854137045561214904881501846843226233657280746645608661609202004850572227982531460132938124680240974846164035543293473978780313396530551310992481648187518990905591122444403349180552170291470176432349499477638322309449867292819161121855961252434180026178885048817176597974274518482467455638291673102186287351195687256271680509757410650964652064609094843938222462838652055291358645327426222549716107983239868649609415342249931927666180143741729822597032297080811822510103893205441345168415328339207248174082315027105399509927425067066882132395367921674063389322721997327007935145190719735297357672813860808686125003353391042222483368562151412469665616389690965238108888317278116318482857410552045252051413527233704569488642372696920686873150657168384201820062987799116240940794293900634407304505253590535915010313432874002522608400832731807156035251340025753606159852472046523239201993395111864637614742800081498566209434387229175089602601518627382705098684300698641887246516652796475200093867831569727106210130653809729619526952298901189565291598645726586452595143819569658005987237551815896332144313991520354678005384877911701764953886874965061235738136744283805054609188749465778534285377670444539955401324804931300474299153805715770390859949080726279194833439661760334621583315639450443194634382183772964710034422310021214862522061111765599481549621019584320078843252391397179281227546251069488318061303292379200425095152570272574565194586462401568612021243379101279523846146106909127883459609975139346177877335619019805419042305174557536714556987275357271165692304225746899675614392012503778471513329058243127142620920719655294382754395250829443714750955289228516661873113324845684751354085279557800291102365371200841226995129162838013992889284266129748896343502252847204464928146806074095388740324498943479345780681503772730738189312911504674692375257952399879400685339727882682947328801086384738056772629495748722541504962683432620173249035094833520766082392796434357276270561719770294106917440734991817821040057100889643151654703238116209182229541566488468426590799990914066577003421864773643264546231613128680545373594956923203702694911394517595413770742547711004579648611285659941500343108508310270772976645289967120496092447014108025613819569903083446252096268210641754575036748788978328178674601811841951412796038954444581054775955247173129177969501625632846669052578398052885142799990397290358775932061063642639713374977244690880741565720008222772098888117966051333843707966671855210034681687034725089570097054662759373299184650668521402379771651128384267084017754634721345773159743350243332361008433427501130539677755581725907296870732538340544478024769326633094822697535898280224051837397051099325242531435980522151369868958957621155218477915266998561849623978529735669994638432441408962187030185299054641299767235907809363223945708412194362158577477044741498810340342249951265747937401280749784828434113323202532660015799414676139425851438953423701291249501923638516414643932206035834661500341406895048299047686127900110449341880708778991252405161031330907079814304141485401968293009874094429518792429977856070766168441325442049013866266941677845124753125848242312303729517665483012331706766823359237183088118389972053568737594640323460232753461499996025753383337952279403950402523769461804722726362521912791016495446292310860134272521682979492961025640136650392026728905809699073832011003091884810525218638259274420110791464047582915822014244834955386423836654168979571661918871611189378396402260396749603443096669455454461457486941204565682054340020267718111408711270295333450146864531272703179333800604489650367138650571999258538651582020766893224863047519165574114269277370062136544556217229182695260426678705307348220877752504263161299970925808497217534869827702706233494568879339880060581409205196430734931282507634577781508463138204598620254942795061717204346833749524827939651930443929263802241797361165009104903350412055910411981435380775162509597138427433231433825915647142526196837076946561941855606976201192258510482320488027579332073922792033016045532382980054799749186393284077737344989603469083859675755418392074193745138438164210820921503360185059835676996712670537483307744424459440388417859085815345648984649047551918967079485073888200069586900099027351682964003166249595521250627041452764808224812336054459073166758930714223073339939241908135443752430175692223693291021968738096419271784252035549889096894947492190836859427594635479865116795913270760041427561987464487915552480199750764029732437961783121466165799135011064534380356454251390708720951882040361999168175689282897971461691436276028737148468388285041634290373126461105312169231697949293645422435991061746513898407505044591926913484333439116963229733152953029281318581585833294565337868643124934476345501871457029119982852665285140520768330635147343189126409959341636754902608561774817365833557613478516950940031613981061243819850793727609648230574577726199932700364616911373126729239771392561182726290301382635088057660973302489673645366598299381706275525357476715329274084290980692590726695263151690472113647825927561942477627058365570000211709595664170927226147569125936695539649598522316558421447337316423105014115390516198812022413336519415275688554948624470358452045144974942348168415177882794029079921910308233209491551696304195364452345527501542954111573005695954645633454695700860806230916321777967629143237882287647643895800446461098965243842380909169716414241899351982980452047124260996089924962897632670881674604961792323998972557866542958307384440778171682218008474360584050983325000131301290363566397993582871402847806570299780422029249829202566054661020195215166000324200301314532473195708200431352989954609438442025690536535483792287869334053132432310949601868204906976072705042526651613868131418649944431660351697823141236732256185251007395710167337235635920022634944752949485357630508344835007441643644262782863134188496830149758682391630615069563803666435048564939171299532272762097325971651998149458726271606789906874930797883238989774135766200963623349777508456536163257766357123254855183880871518036146148906922646338261630849926356347985071970494667478643927612010274803050023657020841529312566584107022342048743895668667826319877568295555897744273422426496565616734741103015126199943735675820546996525791736364634657161960203581339034377858409680726113792985805457229230793108763113045921066140968075842123812986097095029752386994209103387171326821909865576298449817289618050180721729312772959983851390455434217115706764879974092062284720708798119483936428995913889382162947546398651972130879520069706250360561503488338328977102231931862311022031699254144304971419116951389441442097477091785494612157586764275759621233039613131079409358572627877730557922806653210539711155656179229390690961011120169121679457730607250746647217845450617392802907144995495752596530712793498179233942164901351041989066640010219320315739776040732342127000146535422994600908485441679652499367596566905990563952879321092411224698435880560166466733783832721452615946077129339552110518503269315470908245284868772677504270166724186001252135763922407273487215260958933844732330911417756157079959532797404604641820232604780907854152024010658391277517543653027016687226609507651189835054556986271096012397938168034637421642905949337296211183127641573182492657861385598546832581509782012725106023211660944142556936530685349278865570206411866514390399475862319292407467253178916004467766973313880730732527531401420708059256866108949443369041040000760770278443876981686040520698395854445771599202116541762745735047437765083682666087062887197448143402653544684824690428072893129064151936770851518209993474863513533507023800572777916146710762226903811080917029533769473606260097079826877693381577821285077762048476496684637718794871472135289981122201404378995488526598677964231127756552894925980442678020087131121584004334409886846262089755479372552105189048788162720595454006733315583591403800336852687798475542531016062377493140081650683586936104583387261982942602373499392589846081063498021470837057263706389568191776451172278744715262022530308601014662663946362561302846708461419600805118475980333374710039496828373577631483639608024377013156732851555431500472845982676764141506870393571162938917313002249583471211625480947067812632125536265952277476692025157318186521511659206997423801978517048898682612620831563102486722551394245536110556136791267524306300934437999514884811213021465280506934170699210490865935778281650739600970909899618065123558929360314159093795767848228997295942544649900212712206409734360793790619291123669349268018569932720185908465474639014963664595372559906134533323726005933887181955448619950097037908748492420787443362283192552636493493060775351744494041839455453666303551906701719992337307321789253661311464079091948008295858136079246584503017642527327128154107191459901563082444781087152330748001070522121031310427722736958549296337012977747603634167520869267600847407741756183340454330663993327333824024543201351657995950764893884981602781046745126680996272608168668550015542765317747752299001117978994295055490026471202313214137339011181832431615353667330091823532793329042371885783694718682798519198958143718183793528255275098380251887057878672001431072829838803577016912822739772756248945329267804383566385104064203891257249855438792680132053094273749124126878460402831455381369181266713616437217138978896608723966203910139235863413496736667345125336007739061805677129742125577283749653267253931442957128183351598708106400478768870580806615309633561593550112069275256892791780506698409878708031412740240563482519507278777407359482557733710051105744198080928608768088225649245872490520437754730628645599253764615613309381487983563808383379709175999126584122260551180092174762950891223159804423045726593383545877935017861331803557322597522231771555717847798401774433973888585496092722106175192346161138485935720423212539440053368289113420090698175072951651613728856173826097342785118367327473873435051426858308057256437706136023260805460562999262144984968039085081451642783501827800020485258382413852177642542454869193104822446303705242552499736455718805877573634822168374262817147239070526931061052752367483824190145496248618454508629387603701765621642650655426742376751107903430047828589917157676422819584797665583345961639026437718642482333095370398572050903617701422290357179614855867418271017706483309940474466410473424580312284473061312647693262369031467514280090592938313360518810120756290011277108603273055688871997893612538962976069323602409222227007947689243646347045373059940840894077711624196331403120272878103889600525698134594255917601276925220281608553572618423135192422205338662768340540331561680669389604299853877724669775152624310576755299325311910891086280478729706976487120116930465553904843442312794678658456119912429999116695902671216582395270083821127133087053832460911970826065533932739764631717053412233469673349178988823470946076707563857559588171863393200434569133082941315024061835408379859970134547423931170333158510400533270750139191236717069255627763149811767828756386025813306277482427672808722343286106191633224198959517307645669314476345481975506231308658895616420974776879034591088617548582060025436879484229813065819988925229500858707057124014506444975340944963250818691243878350456847042093679870533481720005293519069656995289336710298370319618528706235994093665774865259574958275260041659101898387916731107650380497769935484456404825297967535667360979754860310916914635644956567363719810346812183865786132992820260108661778148220187902800927733607266878850757281524060778978548407797593852587766103602551923411953160398128478576263005716329510048838680910729193499248292799756779661005086797071458255237574114338630612198284215945076611977498290084697789594112588797046214624987495786781995195037993783431555385340944834373512426801499671294206267100340464306349441743920714118165868172861346081063932226575753506079312906278834152006785910258779324754469033669189987938362670723319680372793148069841871241510320752659873136984221902091022572369639711576482746503595837163489745793621527223464292415094605710913268246354958081768719534204244567847796414264883835786240702630536185814606230566019261777604991387944284855327051487909437660646500265073352612439590965227141294122638415634568246906037369148266953411140998106450218644728223477508034620618780945836823365410371605371428655893129040095192384301952828221843778872260635712382576258739241762684860711970495270926268312049077019491759779739975236126445036269905486999890395413329644117883245064378048128473236028308270327237931766754982807098423682225620727681909990070356948043046802078925980183475168071311573787779630613524851295224082120718831734498502453051848206875319564706699647588226438182450147693105984001333598887954318924883792539389204580815127309590170421746663530545574335433793099270663474813099816260372862378670872224534508119757680806920379465194108329309564928560554317222615883735849871693569170215471085847213277022396528223392625522524821984179432008781705175999517830089652832401048384445992050439904409406226663953196049214401697035974374576796087523373106950956401408360081613645611721469048402809241940915911101579321038677478514894584177364804583644811343953615051165415782571737571984466284710632080277235542190116006469574367031207034217646575049236650616350804018555563263053482393026296622630218806409258698047667282992124851202424554434966840497420904901748335159531627504912598792155431841421295684178408915397411411722371402283658017927613147372769584220348429910906699709242801093569000727485591714149412192245670926820756846813293086753792160256459279829109710557037460515969559081038093740076709447321995464851799631657083864706521824728666415185469074199377778150378677684377553254238607621718184534459077128555948458927946834344771108868301861360154495957640747762391574450921970329923309115771709804735050884274220049551782657720004912626240866076814676404648829890466279600439691669857956388404519031470055801188190949294347340360729454725078077739507949536740071220722757029468644155007262704369119470701426374899526221863209058535613330712906992948531291563905117436385636365105984471901123154527048822548471211531015423027735483129213284379013759814359212181084401979892483434759326265118054946413276450494176440171118087996685938429166399247754176158602201592588677974724035604946308333797539557911885822300658578229994704303726980221746493962990856336315705278185491886858946288987285104472636212109419011282300621168051631886554553458434626046937179412060046443770834932462810761168897222782978973489450937663341658183951228465493071406649665419292619401357039426345419048267811325692739394557644699519628953053948650381393265081522596598801419272865999854322162751403187035461226230379750260970423508737835214932045311645488250372941154953732237331486615622033413325618159652634226195345054518468654483651075733258630180335216119899599806256648373087264794371174263556716334076956125734571660600769031432311739151377846914544471622472471159076509023646213453394572775345385339039487365526010677466803263723676604776463208090242947436002743359145985994189502138438204163262629746766266331887445369482646905951118309345233060560380009906062897371024922114213085556721853553007398464090345976002383670571034788114741478273947402075962258210857840376486518531242231771822960636268232457205324208990174836952660051325787475743178331892676990656668642114603573296795262793862287039278015321196936018132687654749863807627763032403016614790635112782778225989293991650775827149269058785808888789541646922756136916629087996955271635551439744858737527432906119154101843302580214904246756028712918242956012423280146220472067012201859042131127598269297607527433405087773432622848264599285355182327260711232739268976731132986482768473721448208773275320576358741796305904520316141694562319023412564894149430953317523190283281188442726849107816834572304141635682789596511770725859457122757215962865234774692013850662162929558666341272866183842151188335590579203064546313418557166953664876897252840808903354924296445572774294517354718031215471508090167837343080373896934804063714627903414686134617831898052213062444517724397418899878728732149674037614491160825983077327289167853191651621703609523436549387803209217572781520772977535550679765688612725398526996983623867345341988376594095234263806121662276452743628073393665272833513017966181199981840559094485162711482980996844714809994270997568733138070658709826262213039151745821942821635869000547868886346191954602383772437334853157176203037213687830015968448069944331578742284556591187129123209382458701416106004518684962109139483360792311621853770340590002093486215153256581597964975272179037960362473402405553951497665379141104388029372436243833234301889780831968891507039323624647732255553542281476391706478461557818649651944094413441495646306073450301690200118089490557375710609940640311722405568783049939479852313718677235367203429081691213063614180956157046357547258957300146436601055487404632862316572641503938855514959104852283125310898944426244328610609630847274785268723538007155954992249052714089853048346551247056484187482826625018621728461369873771486036035261423048723242104779659367717498387785480894809044189831197973715089945067187834480042337702261325193905877961623561220341856448008254733023894411996974900068379155853644231068492455273416094382289094637785025588047801195164727916102201943365616759483647985077509870629079045502795625717883791462268926051026881273242221109826413393569142535606932977421270443876377752144554552111379510356813342407224621045881351172084587160130218351599991047730589319917622628545529612094232561082238710091215380058450574165096555431980753294566225304974098968160675025386959496421031172768605707328896351433381523959881145908357445537698038112437537528351171820660104953960085605688348632317665889673558274539596015817277559765566650711491666290726211236018114710718455346234468451927871559653247245372518407641998420257309898079655758684981015294696508399712612839483643917187357510489774008088658396215134821999844989748407103685915775969699467425164496104149843974018291881997316203417027851150234453930199095519413501549122261459338669609977712658590887805064842429412334215797109896586082944623996721563555502405311921780817976129542671240270440511256726591303771446775623362068169084986218750378552184458829826252121977890089717649407936656375066379895139887049119990960871413592724009166970277256185520684874999309324888484825308559692054667152076880010259966284155190135725788872122434449335986399590385946891312751872798452821669485365791520849624090137485145421178913993111041864319706963948079291458802095929538494745532074527752425111625778246313451251059032409467045262536688628624111265478167304356644849045960497679208031859735152162245996679497593532765530730632243402206436051251805624385261782155328391987134872366719307321240750587815603473945760256203747668141838995810631713627634873046433240164252010799936725013430451308357879462744493980663731112130804909397310803337981804470562659988170671861240593121813215002059159603510375413138164224731128506357615280351584355694591663602958351165530209206781257269199284641926776548799066807504465539461230884324995738973582586774883994367138918217610921792410846940490636589747136390758079475075163422573167632899886907266780370601442216370930105995514683759840599426751029395702853262816007148271746745461680684873557108783443956484918313802762841743150629672297825020891471569043653891837738926177611939306077243077132815661011851624850518981677591468324609972598211406560260573230258593605954061993064736156354526981914586680605702993553319851764369660460028269210383393661672006004426221097010639222203364037625339334348948952214193812792390153362598447615358106917668323576254528622154071270240989605026037650214901600387144287087352263504855854352781732616870669523708504086533084985445291390589503963592706021214526778575795755409578371981843303171430382589866670608605987731916676747766300301044673566691789598491708822232393323323696586332215751857572152583782327716090258718492645175115872776736187691711027890619396236121202020746728567672400366185130429254923306561007556774907721322908866558193981647174219510508368715289466555929930412356231553558813546216781751653449988550642514307535280391144197647765540497159865547167491020047734609057217265341596119005030553622148893839372586522733729143199609611851872752021550649686034426960288690021433598497265698805152154981558001860142483768900993324957885178520592979453223156307743711630767176932462980765037443614305124236044646053304173612098706322139624640123256188121012191359997516536575882891853306951608943791093269069093847849359267222986933052228687133791015337075051041059976204431594058459378514731471178578186661653413931840234846703392776903345879129554910196659836087524573332230049509045853306916407161692267383906400944468372414961919978395626713764808704381008976746835288596107872339868929776217763333999291215056269455768854730472842435060929989640228257571212859404216851231253660083940459272386583821394273634531778856333482580235923192209756598788773857223649867422550687684677898566498376187900994099597355766101424089848585502990311375829800911978814515077393343577810963405530635041346234289742955971205648045255944424927643616134089456312016875850260643110895077808640265436723679718178307825147272271554584340474012260105492231689483319436072141415247638529583645114083304463892766577375671551382527830122341174812157347224595400369223890106158740595305694014293372881930005114922562771905731099478025693837748926752614894016365597823232373019580967844546772033781012043112660330047753950012728520105833127894058756194353283603320130870015970230615181231998577350571126869505806251561580808180399937639594474166954107714141598130444612766625358420294067820779830392861488673934579468589284492953281784551119367448132776951519289989926104113494614963525287693575006208086514759874279265371259020545559938532539707233577922395973783879599022995510246424657945901567640920873568686032181130415755717703392542867990555181864536551421724282720138622651664840080033161519048355147672455591710836575401669582383916506316788053989685681413794555563475898006321870599513945990806094027790830689227389408265085209344922085520001163730111817108673448895190752488560107909856067548026425338192458114166248427414449733360742074624270586735204629509482439916374253508929742233658190787904267803510760879866826481904235072970713643002419940657665709820068294333078896983893048447203108351967277585355343356477559636729501482823593033495024793032834071638742019665512690007054277741885724404922281431125208936260980085796932354177412128219145917683634143045952694972287960064483837504451135428609582023473189833610797935932615000381715335597369423743495373756498667981926514667325372872495612785879721959835924338225222254553555357505735651323951585757727048461636881687923867758323407746327339712487446197255077259301056270341339005392670946423611491146056718563235368088050148682957392688389638180434020483825983601391779632088586354778645487966068529606261612747709324435404240895473075514480733615731589467591833365702575409476129525073888356453679323478969471829439330228466228801040551642772535381076376108188240700183256337588736490105898891086275777616092297168818643927392020186433493110330475773008351188621333837146720450341729643864849924133284287511169040020986978497425664389202956481276423437751939769969509037846848610127627120931166540564564534452208325837086832306835452930217103679115194914528847416115999210735354286824310421462319421599119553558157648061629972313007683468480406930545036214237282439223816693890009616573463429646136746641931428883725475217816906801060004672405030210895851910229136565894610566078009621794564498942941269470760285136335391283387076335727083563019633373539385715201160426566968641434757607772349253493065414337098486928674882046548261412351958773972697412009783278341789256049495277411937924382545769036834527934361121322747779722524981490060667526304524167618716402532523885148637037158914895044706839667092816453087019685366294649902581797478468070992152860405642379415520127504335757259086714956050525808058720001957402403699819949945195987595349277072723176817660449177351414091244463698904269012131370764618296301805355704693621648947091004767563168210433485080246237846737220026846005744566412540220692609202396672359237684497037560718871611346635115640712948194671016953679562656344316524753178393835696183046261874141284394127537892037163406499504209174674098766200691066509869012355041069093251045207509166413216792338167890938472857774799752202679973200914109413978954096721022599461512197113731973520059727433810801643808656290971318082947615138159389750646039292686529311994417767372582073145382169639442525132738865086890319831964113266715505333822562197958606817236748959435751442803566106137531729337437072142235169143955353708350549745869901470544191049709221531127797441261126684590184647013850113870005560177068426018856810340694207167219842827306491464398180808783454913369035384320146605593026587935581020344682433875704967767363404765212401168118985582686464509914101305953460231868701794152477129681414128989686540180796144677631267942724462088230787775911292748712751447489219134285057212565888125671555678022830002136254197685823306234652554558473722861169574379780998372025285619898943215270057608428832298444953425121596515854719345007377677106489220957611847328861814893246338778857935158113731944213756796740260801842838812308229668766240856894439105233376862692601783032628000218175382457899607387120013234396060999994159452613745066688615198480662792877245442719972968561059077108695400753497876319068412630454456343731281408714803503775784763086185731009569560786773807158689431129044698104451021712916064512611879890950279913755612266882034193257812406559150591772933602503338951117796957343156210863893824180178622474718016593086972098526341921465460280056668842701790066945606171368788111608679675748532721063338235961016244345574455262432085311893588241642601328473899560604967683899743859036362630706677656098022059136203912308716780227845490686865223753839858190383922587529939946390981357740614124404438583706292471099628667844421212442846694479372872787991806914688558919633188074877467088054215359270091029857898960627848205816148182439857270996574531364564297637109100808793045272044758406088956383975279078860214344492025793340166646420044481562244554327119279158370203563378241079058851326054131976348279361673335898431468704330535568220449841985402406778844996403471342901571224306588609884533020240685912109229602355523839750225781096196459351527516770932015480930383756281817407571286541911576160400432451396194142008348626997595077603336390009902131366075051912685022558020437191784414494653211502094429793049807000578223857485805279340330473102985616851500060109787506006773028748813750846469040873267429496388235338552175888522748881911361820831302205363233742364553072728281833448521593153057848041730805647698145342302389950958660883739122923252132966480863922463563302848482436515932344919212816170871442039135172925505803739937603815298644449961754509709069202911939087963410192809684187292946060740712923983584135730178736831090065814501810565445183241026347749415308923471076389940030329372477902239460866544647886304774835331278027054700880080433790468654728666645053650486236069599776407911832431058241193954971074087013809084974709167668929124024764505085652598713173289815223941246159205062324736007425712596292874945321604241464589323101291313812890209496869361713386624632843311786691739160439055177893349163165374469149384943554653724114638430294826358873570551745928138784637427171759351789168731912893874329772611990246652167655560091088359263651631345586505358569292034932604972524678521153829167471013598552151428049646882487321520782444605144539210277156654768617043853090370858359789218530516802339904049100406101028612725988640670917917718467420444934010776128894209551137397733357909947740546882400968911717050052301003850291325049131971780887117691140851780110550131337595745908428772629955085002268716260718615666438897455744381186287068051717921042650678176839333024094876844410676038681568847651183336312821981046108154103201914332933390615940405659800081798013436056302718589486385009017498509027698438225520432312329199022955168546373753400109078762186640935479197769918295991399099825265273253944364725784704334966523079710355835513518961443943551055074951351122335605820564809663848697712639781561357051611979504387948676012013503695334644893453188023961108157095616590910689982367417827303158908591025199138642268700633091524611996699896643682951616255050056988444009198006849849955930340454644904758635246016607935438389684858880658633185277293726321429599588900441804875214775632114432352484337986757981484387764878538872281544810347403740982148320969825528167256047529755888312603232024798676712722410588937077456762876281048844586997518045017171533383639140832825960309520171308825308309130323509171756779232851276191998534282333596187714407373884056265991507943344543229876245761427630442141440834495056933926460747163583113152123033862313019266448685748050939719962669676094344512345840585887650675956916463810497414684923233291672210127552102290933478367773441109463062064929557959309689293370879543145826147204068387441841277712349358189984428727199454856324138050732027776008921054424873330713476882629102403749906345454329032918946268095957201009657795502236232979809585453787809835539708418768577536579335831362322776779062160957987959280610424264909833343287489966620187266531288206452132691190857150497409245519472885905043602568228146904643626983722056862559903550023901007983563966967586187106530874142188849563259336164400498726754567519212999415375154303164277761484446727984811896851548897229171347164602645154719224658698837877823099496864014105863237728877578947760459171113410602549815438403298882305801075768718032913122704656379767711580605745522695459487749219885782269330206769947666100963654529544996363325973808326813501205800603952015172842294354788079573539128076155908652895853344818250529981977115297807732400371598567689048427936187722443548351188752702229272294848859054623445107197447933814345658127520400127853081723929802589783105112760003106531616378022516186031083389974100401857681091350596752513388679804936545103911195817098540602771483891216052968650280122678284957309949643108481788079219521507240463881607628083357898315705199560075088544858477058041335424181742024068573530156100526028117266880707186823407069343364261657829960353104681113180094884747499758253549524104330634896477283036045616781773339385100820487036085483304455627747074324741459452897048918245789309096509230112773755760605293068084751760571753364990546032773702338026245101832335801646854564448261454576114093705692827871798317307821191254824263099530968158405721459036806728383188394514074367907062994707104105825166826519327516647156918224390781954696292160220184006103618022068083419285052667216409859349360371194168450528040843965214990916942640493203418084656606343346346229841076374237233866534444242264250601182493141432191886136440699113377315332970358717525923833479621682776835773657128695766817261105144366750968138190690248232963293009060414607333485190334023280136762207587993959325900418608864657778594077348217701224747987703923152841021397626467324092451126462529852810856546106811187263547872531760301031681394033101812948743819794760100760839843249071863595493069162134129671539598302468645485515720339950913875126412893919869181481585076709141834080099903291202602807726985272942722121536557733190002469819914255214191199429800291572403612507579165545672027370032126328444855196970611942038090413623098147638146474756976100312787925430693018858143947245700944215847584213275295301683598906863122562547016471380390661422418435450472018075915776841704855512162842922848106373167132785366627897990837082568470160185670399089293665524823059992609393862470789250299828122802558493356347033594600552691272051851700930228397635752508303812990407474166607005166873255418295727098472805373929782469891781068864389996895687405388181886366866941641087043104339252147511108539395732378969434177129739528264528148499465108367481806455925996172922080406617197547266734189891476799109856380361547957310566504204339909017357155179100993643796785498746107681279101604944417506942701141562174300221159321276732589211094085181979406300249276255082231318889667568048536513570316910660245970546244803026029189003452100166920990165016265362357272203854061642466815899632470365466224983057743385192659515327871397905511255677995231394254039879768926640130002357602924775116555013557792182619552145424317847156817703459118513478187028997930695609470505930224499686286963059263823393030878186514550365692443263064106423659828440123689046294420289638564820323584380187025318129061809242537965280146760338417000907273325892848146466986424273635250838549811181078159917721121040407390885168466002401407482061533148638493171765347238771371679504357686900463829369781615759782592764994707609909398432837190740897798048143370806639822101353099711303638944297344670194089118125573797301146578596851401157644940812000766670510817786230223902247978621404969198015565145498569094874465374654412867545682323371929724357462909236681730169376605730666138385309771853759522267346005550049186441930420200557616215134020874494139325911193220407999346173371705248431505332586638717764917231470506727465848683871928785120218935156892806940462165356958552877442232466954552663220527788208163398210482706426990661554518570048919000465769564212618946489246418204325532513244159520964230276222957452245123067119116746761711643579769183881997309014684571891119573576412498652265936122883866760414052904190480159394737233682466550233990820550198368939015109175803285207086233382941352524985919403461520019297895127442749155347890806468828530481405962323976965249948953159663588849286554309489218361094839557316253205425147200977555762103129485532214085687705636430885275155690622490058314508576826449509249651264170984389972657473340641072508406910819116699557227556883790690842669848351163256528708936174482728870589829613183506902441863311805529650072291463183442718811883581749385205640371412953594625374396144225821391100469013579649297518970083141930695674124716430164306401598461219463610470227486910073740849412071618684655043233259464471399731694427938621888026090646614960100264339916384093030051502687846329343022415026742504423606598266293130332014082064810839633768516873072990430035073219309330461022358460892854104561407045072224984146888532306129124445134361665742039005216680062649334129537535492785265687477611312354127235034852321349474209713483277406705753748467780930834605071604806768053422151176065015886493112440921873996355804994376387653620301623503829643430965855703184583411223511981064124880061475852385966890056446959824039137814430105548887713796760549350001552630990096619531325250371646486633045372886372415948588693092812642233234071522879509660875358155470120393367983135752953644053748357795104180898564982348742205537441967891696756164458429690212525916661124558090342718685537570818593705508947574452817014076965323769764780969857451298732258155000825131810263755940267538424728016458663781874367041283947605777717989870466828342472568054534784049506510897435021841234148702703178695387076010810843746235824062399547730859245915848193807463754900866087100002642286718138365226399120256134509814652952936101177604350717022920729127465315926777728000004830081470310102875932276887749625986215080695295440744064390191007434376626758069801019583499610546935499578140873364001407187963912424228332808365866507022866203662475277100365360074561148687496095212026816192586848211834702392413251184465361747032625087944198700729840328020927508669130778903895405380707794402215659884148339947445819883946834019553932512257251232002515119718145833359295561444412791068340175570110157971124646415191103265477654892858488284613073877314721068538768845387678183822694648459169688053301637547257404452677502992718549394780103634194425035965564037006951185198754442225637517854426165050209859425798606774133027407628553703943868873571148817391672521619986678072613821942037642212999136071827050439214161276840060429945669799466616644360033275920565426314085932308377862901757974189109062567940954726783474654934796599544034257138750417489105354602233533968774889794354459445529197004561098677484749759454846567624670893904840382182803869638294751181246623811281394779432312617391783316825382523098304186912824050239913691006563689941901982022608353813364434912682623517772037020176543353701030628860750047160960135364694228824410670880516138091437266585033356422451413382727706289484944567723525503265777107238982414143047212555556494661206204186384437406362417399872004515561695637868159857281295902689918114167178048622863648442503300829716518324049453373406660067087222496180549990470242666935673474220150945854624869305882230148034212631475240800261567344262523779984266878584733710104090047775397519220981360760928186019273731738874319348098331642692089668298255069309977764994543744847350434245142499767574236088330590022593797500817881679421131380458803013032132431973687855715909401306626803941991402135570453607808440833542692055095289300538990380230537989408312872413101649427388632545917797575095966693421897450071494852629948280631641559213245551230685482908821921588494144392841685476872106234517622841497199965938576938565375160288784559654801958001747734883781774192202976479119680498615335268656229425298116963983098160084017660002348889716504508517725785201038590314067921243201436856080386492143730997492153433021264443575970077667254680737369841363482326926652400501991944656742864031309174140867021684892374235370089449422323556976061816251260460892669002093591150591936446904244762510457711598723260569202211942287500276792518838076646320207075725280361962581087923264616542112153099699651605055329546557624516856490469840831602120515992988163945949576731695264663554549816632935735522149908575475092050509749618114673128962336410174517754682039461483969771117162452619151544272290590457749107452212770890374274315546842982534175289762979051679085796368557232253211684889903932525513742163325532311280133082098154384724346159555866598396802820375011035440990208219107379641993832651448052193461876480661302686066065136813599373012654791771655771338710359771296330996392037367368885224019952221503671729180485150847591267554906830465622256178759819137306525996203652433977762451528884979353959894914698139835170253660389749183542685399714097409572215366667235285387775803741928037038109505737492690154340893103691756460331557454419512766737249268897481162517793250274794217324118593050398756158453573164490577001487962993151904655403501589766549082432992191226858874889506984918251301149592027995887991957476588282043541696970841590220847466598731896230914600010839713873324476462534291690863933095472279183243881323451098118428769459082365526640514571971763095854126646681890072409787166354600023859766665679728520129323145436410043781717181026887551921598412158636151200913512818665810181715879545524126783154570623877255840789034725447000652888076561753695595935244793517674310895606893051418044842146181685518469986417538820675835465944034735921948855730165623057408861209511623780148666720719954077611695452282975011699169351885314102822534710857355888303011504570914302867156638088535528989187169318276712397270588328884726382813658782395062657250827862798832982855275486873785089473581590710776563487914643240641260522884729836430497709849144607091256619624094397283163341150154877428178187858437430496819660177054239734598535386268077825874287646314951523108903780720737261858275249156958838155399859654153247829064896236369769850820397258521721509021971330005879730263732075193693492297835934643916127086683316755872582143251794557415990750600665665183391365811674425153990017402942223796248445896396505368510245159257849151936185519638332876241178272477623723305656239143115963669687705138864505539141239879395068001102598775702004142956765349382741901415843840620389000163100453727479101896992843733166936504122346302838423840723122854877157681552564291761088698108060272381145013480674705893324663895334575396668578151304362296818703440935425848230737597720153723032766458495246470369179149139182910224973410071197781435807131952083951413427844080820959392220340906921748008209883961286965690375551691970334252696052352911829639360237240764664151658147563969814397466759142405996405733640521277321071063658539897170313271156469953747924014035412573876280567198220928021803584294172746239158357148932058501991677686824393256462738252320303745962055873019012742671905907053445682763413338130321612862774880959310699877378279023543008401127481477633684765437879886455817032695489907386504295068860610260198984275202063384244945105055371178032182193339899632440521377088053794888606826340908500380121236027452521257491149465951496373204867948431262458337720013357071620770719415463205734172455424296397234035052469430219564924103467833260298704828574709634724497162201841033255093841557492204035650456050727863621695839941956000756208487643445925670653707222426615937767513423269923232008737380641390705257691013459743152008368584387842676416608885005205515535337809175457186962680225094731389618455197077610733424809491729245505666075325784945341290624937017774999405973697137224309544956312871333951505310892345371608550048103727907038385682894785333315006845738007518322324201808357315952198778794459517116207583786969131104268875323526215830981665915199917395240267405483717695682448524928583574608179996249651920064508618622595220340434760082799803346309850880692897506441139125462299548998736991168375837782350678882755558990544026085149893742322122347046434208768824485477627625561586949442361956021240860142816971737921225574985980552508901335304538443430731269065490802248704987652011152406440591245467892015418096230825697199367599073188229743098906114274480899961251474332697726081452509812993252468238568051444741208590798439622975578893064647729266354447374368771895652720291153833773713739776877153247502185413255915020612552700271166822890542119134425637593201189935212897741250415047159649911253306305729405836416589235983406011392982342090466687771905809605814311674198511640061305700367768178628643696980624355643990705067307417565173830884527187138636974758618011933445833963096464402479339620674043069118104750092900907601223747253120652502612577946633588947074642285877954801788524075274451889777728612623777109297912502120815466065159183518058408147353882282232555563271153697878246213491259026730328981502424337429100786436723290156048668275116860764889633958546877402497045200962379799789545299734076917916089186753753975235448631362273390067317784826007865873977168194486414849021480788579382450703916073426271590211900598447397122086324759828030020513230816660031468239654370433557431847902725774173107140160727836937280194910700910898147665563449966321081516376740680906907809393596290110094189564799936059060392380361225351561608617498548375644747371887767605195892213780814926087064634935438791230579187648022970276368358751786520307231078002585406834823067057444035293688920298089140982335318855854638994202684619191226222744273910376400603360433487140292682667212969415120742898141263991386275903764713042177392257621202595515658132231605606082181283622846803725042279589427581697764983525110038678854053612188792958956111179183143201519104466359362914098856226110246535124226126265566987237921323478266458157005930457658786568798139039589318948588708674493871721476568257805347055284858325053496157190440200760549350236324014710094765350792742503887082786687071550459480310199383745120693369034832764661003205911028680681286736786475848405738040260737987581460648642106752637499416896833821325246156240759825312093991465501614915770724665889803848867535770619357265558293621866012048634592334227317817773717322548207047136366181692299825610883170310357532244671409739819928890603315171500870683395813053299109210452556892738582146496958223097016306436452819155371014295264668436574496346500070314008030263354193403487177241676663099364054724582036797103311352579186868673622306243159337327836373749350984130281756494100680455721933239235476704760540018594804785828480457496030759167362087847389834089920172957125958779346656248085231726719763119656115037877982697957039464128836595421695786012376572944197100571702141309305817864807479020988283995660194731455424538566130777911367362068115612113490514111748174199695740487524742655804960671432040059351613912622544862080418042082017970927712207492006486426460859853804697727533372587152251364657015805202310134730499940652538406360803996839247878973001124129663540815268911116120136334331394470364794099889556348694253977406206639786628662758374274171702586485878707894796786758216597164031321085782547553443197284909184543088590008833782270016205733756875605826473968075118930638443872892433226315842480461242330274569716608961231076717478142824276743935206013868052816844444145128070964083605363144224325075142811527640211456097505237150273842133908820279369255062992597634552858625584632063470004939234325219960755627261702435155855679996328763545651684399217072886419410513523956918416029126931776407876929173674876039903363403665992305832028418049971216089019859981123728473276868266937840070511823478558004316614550851293821549083613709665823572137068658132154908282970454766630875413205048744581336574702723393404957724582453545870233023290313315830573671409266374104056596453932239748558411564888924417345525525921545851747410667380718872708295018494862495434024909751945327741831101551880140594178649867862113170786727564288306090333892212858748244135715923888892125004772201132647037654844702737606096338817845139439049154578538656252997024544723647024548151823256789172622231954614551102513016930719659508304434929571497679698757969715917943460201321065094190595250813938266039865402358394945594616381301932486758209222095837759767106663715348827729931198963137302546588328716662309809150384315120313380112951829224488026659473795119902601247310907423645060061456943920658677475118948073954558416294470569745687949186365594568859511357489129558500722063062189937036997432796752854995795673360080613394056870551895337767420712940309188900192694964828943478787784557681497632779932248672123755210538165079334396441455622267702841706057099597559530497636088486593223231442281974118710270146154801560049108127613061857709903662656588500437628832116935126028357860615352341745172016327238846194424785575216781869793715458662958691054228157832758342779636825769518993074704681937852240294375141976815515240714408546663571946792888510737892675201933394495876540937709514803020013796065445174401328817268111621344425125404594633070520814419418943622450355637631368369580511736534393457435408521955754904165572165014159790210256143663371040100281664419359292878811567856354814212923065268329159470809471546199373081009655558077689584440691600256841317548662156911491426949921647655574035484466544020128527849331209391363574334972089250056522940202174092730185313001995429131815304815133477592225484149625753116724852068094330921693900871856095384745366822679875849989346314608741370304388232516716176937336820144641643423819592480271147345813664992159361989826483682822885748266859148853069437333086055673544097020523041717148814534596639950927775384443445567869076714443126504373461440518362320257951858669055190455786221775761943793939084114141764230816523975499764817793856055642642395868179651109964819552078708574007524859498668133837632501357452844794509955172534061682201101226985509729238151636003201882686565191467704209201252602462549058467354010665176910045474291863178486458980704574333961709136751129010299426242954975364422106722840451807382128075320451544587268814382427923837599846775810712905097635423830321309135363701794906908755408736164487595677657662714801786918106753755383195381743420025581100243610928983655277375332162731319502125791189709349990604818687705251926075783858060829529008182371548145665894892918028860077422367137532355191217325313799568935526186518433163428808292975613388632780915736750489814954367686430423104885644903361219020666444847722136403223143487097298653446877643776142824286833497482783384310392730877302842217288842757489943186598645159454713163820991204943339479186762346982366492828215244731071530206305062899391754327237832851598917474486999730547971782539201088059917423283209914564463691412882381489223891164116677678079392785632561545731744661427566870850264093518762865619994716520467530763662515814579335208132805924298898718195603695167169270174230671766033350665696961821019220131510297196963627486629939990644838841956353687132280423746110544862755329698321031312381027348898296654590345815985009591993150163108465132377881691802985255307074110477267867981864932698274459982827282314793234292937989205285803933445245463883084404377226206970236879427166282893387697470797913565003925426506805928097028348119764443122866473524621993526919619129543285333687343939430113609230139776996567143519263668394105996153067633905871475304281340149783383159011078620561744360362871699441936083955731274947381980163512492772848461284282165896256838234060766800674478627443392387388136580290834237316205887107312765747746043690979879073152102087606919681942766084086154399422253108324341355499530103852883385480904310068007531993002394106103556551329055765511757834071940068119977307732372692025773656237153818919214599520099898288282039997754509230241878488782898650473994449203707713159386122256920394242014515724659414872717062453735391761049508603178468152694975176612443371426257309492133298300087515330511094768956113476856324357155626162926616366261307453661581406750129781810037315253579458507288091099043867328473278098083906440657842521568465128274543634778458756896974366468760403676858576223888509032952990817358806179248213752344163455351411460146068684814332901097829646891306220428615965665046016815720020180051628908078980770826002199868499482459533561006318942290303765082867741543038043950800104283250487690159953115340065389992946787883580697479103755961687034139387502129605983941478937983814520730720339640458149198822090742368656318275230762883687996118770551054313236092111902616974389462644286559498488035768482219713254307772751090954742762675015459499343564954016159074341928110809186548849373079347206155567375960701851598849579903959183912187371592753624370297569006206225768401519251326790003328083401897331133951745597080284291254197029122375753282542604902132961788725188263774884953315550951748886615489462128607551650762263594359748394268591747916560266803714152303488560448291815470978433986338465746717089597100339721567554328893277697553377044597949644542433126771281168476641561237927320276846916567944233622507164875268280510164351042544381006038795262887901561032739314479750959153362291951199545928633060042516049139710360775959752720037247211342856939481234325953433405875222701829523356393203100221955298440601754424313349494018856635419086388747286789832750801594878561101662601395718747983198077029453785414431830513174523935183962871647183752997731029581744331816371466983584712432822944369904013201237877869920284793345626831551315656525049502395112950206949663890247039316867209498396567911799753356057343011633010758249979758164591840916108008077691167713981106597445881657891222713177783396037736719359336361753035859428261495651490193499186528614037303713552331151654040500512626248454241108725771854152686290612748305092746171559913473685595891421649618155129284571816968825562544850249310214779509522138568663776479621463670790469217979096936771411075813559493125848537158151336542815914509232618312376548095704470331557095873040046338526557173086121364041838866498094436692451552042455428225503862339874338037134993265710061588931572538414459204365709345829612853721586995667343917112137933374280965755604920633750603267093113530608433915934261779471785557175398423925803724247759880431081618091129320761082225797476349086092721573101506893322328199837802906256447962094437883101554731189977146404770286742125764371347897883267949964290552746277666806060701022028800453701382380759047411747048806001903756231462503642356340556201158284204155064166087223058021630500215640574870169408282909254834741283431886945282727160546903423721215539611873560835329218340576288914808930716088824478177189992936168655889863725197845174510416880201606826280133533369310310531752191590033853544911319760985972654721980238898821880954914298809486472249094339838158110792927954152144823541886758290558430122677134715735846122941831910837925251856200926238398889021670636039314593560016204251420785150318872580631866859089521372690132539231673864297592902749695525604620026566427868388737547933339838254730936095231073021785049066592050670450591820148146151584732248334021787678834692625328251088109081871155628116205992422397991449676952161919969835375632961703263714818341189829404083212248644775361170691169467948727500965709482873705130397011156211952417389912801064353623333511462877819371987450207350449535210154030270879619411671454788495126739601109341764893904632619628696082046820985897275875109943906079968827633366474443606432812678534898447181799113102261859093252670441507296003006903765552620149356120522336471682198144442007201303901062891084048455772044792713044541027314097225334253677060774639991770252702652641495224036639087344556371249385306157454754412608180315295541914398511208994205134700915548511308763424852073574065006137103132210434600134835426589355782400187929696659986937999419756457401591307999392491059420217149254048514357714241046917530143389297479468695105245007149656197294164668359309717311072866283323117475946851646181918984207666046166558571496603254847707705611226060025674136011283159113072216140249417853483418954532892705047820514651478120029419380587934027928910926507642455168216639499234324275160305242444546729975556507160060987206267688661982043827407272611852330281804000735893892642078034289568370991938219827236250476170515403511254554872605447952411432646090134105518981964290812299585398494955140469686633327418343749908662687118315073069300030517068986880721834277123117942643824716455525978110108162609617006615113268284416840446530634894584797159779805346092659633693230808633667230162888179799198804272138399106407338088572244038798740750080950896754994823613575394627309247157201475140087693065395299675726585557955917201373255726616829053660324012407388337719331945462679794371841574206074149571915192028128961214172278877027538738196186506284622214981057772837843675769503060853392766157986306415307715782295701743975563344089390428305400402979714945911581856399129876909326439407694076378734020269345058043104932372947757542404066829156956763689310640053893688391410921787402209737841550668626865286758940981583356450669373198115839402884855294827901034682831344457345769853648082756943119689650300719600804397177492254311140758169895957121372355001874691857709856516035731833783581509731995043244348683416186652556797605050901874986687408620501911490565702458628827632584163973995680336296698920691183093501243547754256715009053590469147256602972597721414967566266131153743710598934451770830665922525425490604233278536738024844796317487072243777771478836084549117215062500905350390304683301692742210246774589654640742317590838642423517750856390714630066596660824845230893285451722260100880855428596165897037836578988099093949359133395918076413864224884619232667379338200707570770794240473196359488941404559987553711370058936956807033915683547917064198442113922179076259643759997972684616576995965406833373657461882931347162433767766904540692108208458856683986463251432988446597262685801391332020291751837783363907590243375322415817705382758743082774839555904063743986135704216190607670817171961043351467199896204451165300685716651460027749414802449811650694155356949028067331942769321754271500189022054875580970164622164091826833150062371288595853887712500488604653027734605627614210651143652855524990495731306545451658344647909491045776608149878301620530065056864317001903988085959823204152308991327834704678982311881865155229628063327564157535659785524132764587584876607780952103731716680978690146213411848223580273407836464873330395222969800226680721423845256841964125852963687135396032087494392188536368651428288481565509574067167405837891173982920699827378447201695649657060771576676824652896892070326612259963571110788273435875738722356271894405177232690817907074827480466655145950063437119640851644019123620615686893083248154542687237677051670214274382572753291075439533905878647852414068246523448938796121878089731063886484834043851391276879826114704676941743377121913747042449356591553945735044888405023879438127869243112055779471582667871265930856021541520475765863514875221526271852425356587541854961638625903220323531148030637036315364511951350008459108402677154718530102826093688383760442367471641982675609618975366342425113862527307663215334886432558238713650509273255984975359139923165748075367633857750239643972000230783867809082250654075284418310122706050916447418845729366010842230645804956171238370945126633162581801275174426705697356433577056900313486800259435312486492061308828008657948913270625609008350927165128993065360803551004842306385600982098957042881258837146792856840189042762206183242675248903095971705492930770223509072056196500189797942724418700008082519248780993460524072568401570899725425559542219356851629003442563089601292786521025142472591442434779685690641005788483517003802869064519017514131964770648086070522951918125140101548969937840644910011310667308616506342383456037569687486785601001536002878977290101321457209500543791462247065163297980549400805262033462494360399516556187991676199895096606026588733832044061061753016592855514519420475938043129496308615441064888126894419381048754867127072976637536029882276644033288077148937452013204267080573132006465532417106982264354231987838822772618180034864892822644509429610679224604571120157335655757655523197037773008382329037257921335856380238892754246146260772851907293509985012294346155653339703624007028028280906099728172409704968469896789332762493622038101230003758802623784326538753668380930420886219980073718922053792372720176717782825982481979783032180482919997393057903893627629464431188884613348874238414865379816587239496468621103021084516331594198922614664985546763700994862728302631884377981317140504891834748940220133665702791804650443790966815828152802515169638749171138585815046701003717477858846584384753482108150051660858733959227321268982309733473552200740632598839163752006189929564184566039261585507729114335087600068399048971061691699903976584893344026659513657397298795388028997339885888375899010114979254063157566336563829371687866209871074532888812017279242831170438221092516451215010039214763830250472649541368834877425216038680875010898753221612979183134756037471290912556309645514135033167803815090905868975898073135316809080255029489085793105813224925958160422250282328584101982776931455795839934441750078375861897660663635637914294064114264924664212204769752621703263531510334136514551500677222953462079263838992622607949934290924235514177467750175004756777551808198755493299222895591415072362863787536773128730698344172628660540037389717591672068618642179884457652265336070340014769834264545682078095780217897691745440541285223646430090053184083280664524816228830694842896488936609541343489356284710730182045235368921025070307292211660467544585523131803111670231825048807779532554761455337730725186528278308043994660640794723948235617700147987484227686623109355137774079454061246825533157837448142409204304797057440097399273893332694835610523452867431024517701457705137237598194432900614580835063660944229997905647409544606584398137591748681049417483871427499052721077611705766412628504604263403760988385368750505698795157637516699424972185851419475513468856142827235564652397828364869083687627468502321325513658922226811972959131441804702296899188312789188852299887924486391135670589134226398931459814053811625512512428900762622284823632864065427846237245852221375817712981880174343965689428847596790572057430650846447693556957633372944433445614762216183368527821087110362027098291383394435622709562667964588996195968779317360204464854324997753800449905107668400463897506724235804370314290890165661110089078023405209049421437971017546736761040714251786749815917799190649239351739971008817876493382361842940099365834513073435818812427274527993384514520290562250722215597034143603748196387583862105873759891833972427997246314423515688553182787899146338980069113533533044446668984659272517660939916968976896939497428410985702809609260416433849557066645233799774475544051707203738031644790427303853314140470718227069647806156068650267053126526223404630496497097449149418518672863721224557621273435653276613012469441033923138333589193362105194622164606257766432735065978125654728867652372002789541451805518979924914997228125292361976850765254545274140777000170503564742153987457448628720512058945845720746032416334493749669211928432615586084329116491184556157490969892197307279175259067399442791134401926271958837804528342259775335490975209018803747256993081685313998126051954005896258772300261564077698933027469026153385569846151545599905357233476035657536546546543599968262452280209471930851862249747930140476155232455592834222297090293645709832830414980752582426350756697453279673598890362930486606249726272013172438665665773679236219166735666556731213831306245498762785900813079873423649227355675883369886792833386019529084817519065098645447327177327136793138620969308638295952198363782856730439650858071050569019990877324306948570545653805807234849996392230510282797646518841809835648449881018833572976821461704607491744515996903125912680689026552152690826178834228489316799381249012739293119046358493324762459873652709096572174512108425073442731683363995756486959195193106288061715318339296355410760390704665249261673424852507096282287322521513684185714798422056426557876534172188993318167508757344228362848296980061262537601068686983554163378094071727839628752747885678086423012081594513265488186296809159414808591130201761256651191616443656786558992798097535025934996840275881753114412093627239877844309535671951983427863023832823895281490762920830270101023624905800407806636845901953202522099059022189273519269475328058465666730670493314406947736031459995204958745623253432550570520512175189363856984494709358513206823685367030917018263745592702240586453559673462146295227091469179479310373936855289650433778942744854775567991049172890167550032671140658412358938450649159565519032581421087766050016414900831504468545957237228929430905326639354401998234063815474714584082749216927377315125117703819786319275036624328430663783687213294518311246063217547745764600383594363775612134774664202710019257039599368651969727881892263901667082919541042384444276943252054467685132639413238504312498467283798077298069694816236297416845888007151011381862188307477688874907482477456372193853089022984224041727501719151094710417222061580076977373684214610679553135840882127054760361620429561156883794031724983653644470233506050505997987267384478781650007480554806855410596306455994021148965040948998091705308227477836583197999804550422457783689990468606242469031568962718350153310102362982441484449685530907271090090041625785672641813993877927763453421594271380527286150249956395787374660570485522253094277141107128477285976366208002715711162937305901394786754118792465087084128576411346431577935879698268907220818099756091344981458773365899393744512834642932574853504663621498476732197967939989810569732040871558497288953517275408528943721054662757673692822638858770963382294042732086821941446255596075094532014854190005018940011371950749615680479573806685337193472001460411560135236177115727347442140674299892990776308669568235583820572132595651747897496300937582502872274798879808584459500186843699798994233557111138224836757942505244270843419468525903844834481879176610738143584335902245629446396843286954659394740817842900209637626423848286611832404183775055669857185290183758349605975902132666410493057382476642619833316783587165418440865856784339774517605463002452414751003372999207522252435773969744050656047219192389943439291895249888758295897612013824381153325192958717697476959846418771353729058584972547925430441830235894276764667319930435676254107469567858120816288764288602269950836348177112858228665236061730720119178448557233551924228792299242805957347042184773583462688100771563968811906539899545838599430952452064291140730388889548245340704172540461048334615867353005207275101781641592324256715355492912702003494802526327451163065541918708574609340109441731604570393724445795672101993989907490167283599405838198966634066538347634147073800727911493689220612352466676192874325690487181901117113666552182957221152038022910556507868572745971925451395370978832322456171786369252698803697549084647122883133573317868402719681399011125737863161627216531648365598719473647721036134492692189330226817302832133301481340164149712160818256019135108743291313986529952038359663463736552913954292422148967123087605369111486672515827332875981313196512240238622436074279687423626246231000086081050787109967379511573512298204360558987711557448279231702426742002221736057032564724150103357450229265075370479315787331606376157547140082418662870602491352413419692406356488955020491868519929784256435198272944723536765855662067218368704090720221330629827175711785696296830562606154402013873168479162017848188069134216673731503812029198300072927655042159072627853924879011764579123254550668206302747189833549592663463857168691734637137551309010586380060990357436842597984790121249391546462043126282976808725308563938875964279862251900415479344079217140288254935728379800451637170896988562805158891988559069406556760850876226963807110528690985386802644842926293671135361797944409798508917274877098809414949082974478851546200611919678795738575947529467806102648387160980690245999317051076767809559874570150695336806975966489858100775402119545943302307229833166197553721666718896351961109198871425230167216566953766235453494120276407209756290714329099829885980791664212932962616993613493682284822815202007193364297401069364610011722469325043209502599937426245406931804852315716418993618352067623626571870421661951654195587903516192123576171990682950400452881241374964837789053521788700289920531310108517519760774031236635091074182019180234096503396994388154447113203857165542394585659134997324289079741224770073095163899386153869821556661047687086313371685762338774441321719409839619333717189586518597538905113344331414066455592348031614732517170873812203055157452837293607767870505788505597084004263031346012556751361820086903191777134851506375810087230640367492655455562562868934811326062974378126351002375806414491159288190323939159502065076277389431514162127094359142318125844077965466086923213833103817299327318133920239892081855650804187444985916118303872580859206666238174143334292036991917878267260266894138515820687931797696035142321772180192301717461393549710652094899387414207633380123057408482025064045964938964029493077833682768447496073233142443372049677022435181060599286843603738824769832263760122299326035422720579245057510743564432497225979494082087888114600045524006761821716114379050432486047373763908265425739787503513974055642725766584177285762801676821068454939739217568127705859336584442662734588062209175673320661569104994889140537852268990515156676182434591173920703462351570399738631021552264089326528895019447590527422063093666011626941082000867294105338020767737906159130056275650490341177658465513682616031802447179406442931682169172019006281498859998510366304608305810808291560156478616866375830514738001310371968632647863324018999303547905665637991228201912774332510823525931312498185660890644961457765436831158204757152649508128734630567417498154546248466546602072162565646059186885690628083570432586763311345505317105165840166630332349348483125862834647447372713454244607937026518490790034716699355096179353646445389019403547477122437538561982049803416848989769714961291916155112257686386664945405811397488317291344984791130236369135432360422729312586846364187842524408119431751595270058539014347624854942634039218636442028622476963158873354719662785100403780699165340872052996837228053350197886320583072247773758043267997973808077154116523551567829259717203923328216180917208343505419875558233784483443213427891333000384463468383105218857830367418196211984863367236770588933176667675737014794321582512703966760966380640064263088376787372947791290228778107492566688852114196182115962780049719084207621685888777546318578086675453833063872008011846051435214573321380249002513736510761630085467461568132251829424675536335990240951891582772526678293283252834774988487637236377444470238867285698792561903625617551207633213443560885007243319111776346603103312649016384377750326823917596482405918446225567368712700003439889213457186405511131713145362277632196083143334201691581701313586446503958658024874742290459704149874502564736287906665659835392547236750700462341779242320486758286629841027149710187076844228062052948703161561403009006578470752110307701274247444858868115381552159976771946143601627279002395864786907164659921519664035898991222890650257425805091268681813550812573968705091225101068786862335380490685741431449744301861052384073999501973804397578452294393612645048188087520180080584650412767247462220487396435542646057351400689246114393573754003823707876065870112444091069363778802465276287815970154970297640213766493201452197520802385549702789566114402421375216297419642808944386970065723585343857159726766310337307214297022729216287935014834270971751989793475318413823768360837318160447458549807437202179191039441986364113497532611075757204400406408451110821749161487002782541940083397297157620559626270308758394432384764544493591475241869718848929455976906739840163477251149147457416188894930783815879545769815012156067347483551747189968774150746890784314162152889836382042858095080176392537195333722431694861513479294237562796913346165487528256110287821814114492386042145455188454875492180038621827472335706872393756991013811796117024902576900849601028356817729152929650390809061379103040415274625914162208756563706371522609775880585550059571112425403403714124599386585781248597664907267088896622908373853360265194283421708168570217619871761052261113810837197267110754306403469712995102835195980141515360984156405182769356741018839919225028700773099474015222548613219128353383357128041215798843451344293855387384220197503773290192390691435989295042805953602814936970449432854939456984019598575833098648887141339653313216098090564617985382370787284936125300962611985191183518638474334084677005983168359782838534227922416469869510113620077026875848977748496942155111582305233211712422239964801932493517231342016256959898702977654305653389739350279392282739575635727184835986095291892772513740660333245801216262437375676089842811530609757282855780084769967551674120163900073338163100404667342543616203571241899224089194964139750947150379473723130634258745815437214491595907784275957577006577291855121227853949248834871626804802857597522625784454480953946160014002410609454777201153433384371450631347700518948402441125217036159111520154613041130745089748589721602836047359379144629094355695756813890158980176757289427446803291467907366043978502097007043586697604681307652463701858414096226104338682668028702342911062103330061144041937563707064227052174758182537410170896798280723179185121838038099662802256507941743593003340375379070564462034369289541123350770065473136367281275893145181915170448381346037222241978650989498137452030209807825069316253756533654221785400553484191718869162413761117021724693958087846055608681998561538632245404337754616089743604257470529895454238905340109373984436619061003514083726243475652234706695953816098805445684708996222636397678950772703741643207357782913459084044658661201077339821993410283090058255421085427577196628381967095512242585182910939689653303358807939826076970579633385915160826164931338485552334602780292410497788160548965429956836699609947964633538752734350894732986480399566845873899071925397582095622560939464517818286775891439540239039362140546259952709225118668809110100262790436617265493687631445530005029960674123635315623434133523080369815815000692775371908952354984427617644559814291342865516522962866624836275899242839074344340510534792062045023582893615439679087367479803028940040534075188696477948991950415702553630982695448248276405971212841346603670181072323657887088374082787307927101917009580558656816310917984489133273689196853673340048806608063139635056550627850718800597348969227380774958787102940191313535487343317611562575464066651592849617446227122555423621651714555381524219695290299373227343741263096000946919296388060744357146175633019216311406003034617227052370136102304192659131616272359651795029101450043465516902850024099517126259979303959489959517824851410638633775679910242630341731711665499367777030725806723661461197668215664631573446144835658725407641392482360517220603366701063965616334047074717798389908629188084984316244571488247656575204896338411970537642291723333087551749260649928712126704917528251686880655534326338069368721479631015119402647782771373480965079681280154725788108244717505880744841904718222944603113696768190157641191522000773782276878429309138294074980736204469604247837579662439081230953887705070986421033725394025967586704134838201886951966516314158769936470014178200338052209821363876642793255819263584035360480259222025943925433465006073703007185559009792560951913147566239200561355689291920255285907021546253035259192754508601893405516720701552726105477091656525103266233612632819193166912711155124584551247236749855761119266660238539685480897739264014457186247360695508737100153975794797235209844703471153231219050780193850859511754480612756379110819636371141890988178729078133177465384946948887859167907630144329469071903300940155643313114626302375042801704173504552627055470967328182959097051467989409229440747318862962299056536990544414454574542566473863600633405548121083660996461481644740264242417886041287048187127358665984195729071546666327563619042405701345317098368290507243500349844551871518751373620512239092495223118540948864863528056459500467413368082353321865859428537310259275039134126533256281803924769522044529445207022636805736779435987507375899913992685783134814389415551158325504163108746992518024597491024197595068417635639917830385246253631610118446386946575599363985837203195636844034725321960365579712692324922432471878307467528402686885738434384036485163275331688295986011138854648158394515967610512255719517974557997001607728559878382032913135517831441538990179803891331294029803814049145614488005100020374612980816331714489197589284244046980102865756018686454681250127757298891823763949431173039038191870167507528458832208570992978082515925361911908943193802099480715736123588150375943206209911880172673670406341433218661835961944147936608424567069194863886472198045631115963064380352715866189073517178081322185419882502296531946284226617573338260967129576100614493449406810246874164416475078024671417070832125464913993013725296514032282532436231991337602845580477660270856095027321587861662743326247538764177442537558921614307844330975732384224963690174445571435578072572478697496124269772713210092387212547791912050829988124955741023695910441530282022394247024887373695820564687794400597440537607662189591814674874406282733376599744598987041606164641516784846488282779196782865956580528274105071811027192728063026116695588132752252134734825694069705096493856165423837073177026482867084939145855497237884381714198123357510852252835431125820737393612805247032950423975295552342076048424606470270351589149608407328498782356779078702000629161664174913060126495484357294732083983836281210025782900148333898388404794835943936619453140493644964784590950282531050641832016034035737015127579125451915455387254146625694268239841168499979561383465167815690693171570092820507267259467959649836799006471919729923596335415112034233804227603151349570876039033429309432277963497173613763167267253814980055693969382060625604277382225632743512795669376253104230750514020235519904049726118361697420131614077337900766013380014650807902480635188545244601635155192381801357170198975563224332859035800760673384971942605213549960816906843200955250231184756484686440189499964841119947717525083457910962437979139676878238134105136869294014074214945629453858138406264768924568689033870098760166438266590907552758266319697803137105425841532942384285126757145987879997831927688534373007256900512290398831778891040475215077275758733895070395129687296660236341096785398288736440370899430743521257905825455651656126301952397185868297073237068900543794958105387450621943868327666998334998619967211703248786523740866163879318773052953741358054841884335137835471490377391491725037691097299605164165940858377235788744191810948844861806825428966249439766679691882540623297332021584058398816282851089144802799720895826054422091834383595983868073179927350040062773733758389973803993929154905805032441962956607308831837811657315508099425391261518834671591564704575708565907972047666574897663472237173019230433734916655907781458115768170355913955948448337253423995583286943930847921921104515442809732756265804615461604345863871190997143333285017843890551267504034429935628538774166523215800288733695775106231371837061015677018760859013239712287727209301749381012367396943258029870610430315711088669535227920051672051579288678776102992742069621334118688509731469751945271752212043537500740195813041599496622117593420688518568320932639914917487368862966708316107557151540647471831389204178085964189002722999327732057405854530491228865463614192971363280906951634585998876958095908423830128895782666580413762159180200963266880483751923570345763322139299024754548167267090090431791461553162298380838155811355015476233963843088975232791736238821254760656438261956696197280203470041060670054510169709681999793101602932427439222869593839556983583089670295817471387785725677896439227316453354767925629649932789381885253285561178959451634348732100447937841597047075208978759662846706963025666803017387628190802714374187539414537905384452418057857142428570571178012674137096316594711358524391967827827232428650768671745764323358959254144380643484323675153789774385305089715275087476324733539902989026716173647432122075674553435882487194072186762329014955801892054060710353198772497821916670374404647095483579115618270413275309423235505742795970643556174417974338165699205135083232473568842959066314332745969657250411326440542598374078162481895197987403328897126690733903317311968793281622213545959232781773498260564037632034819380410585827475283284637164711648515102089321085047309017538318939593192013186234994317805480044382991576284407959994978100725443980236542391869534774678859083237050013127342861773847280500210170084721205728253533913628587925765820735500748832554050282532993137685601455349110470733605460469414928738884787389480726070716882670584414416648845756420653553757607883794718129498108082089834521742114764444281909964276236734945375480332208630035312536898234052244938813507557360503031918354195710961833970292500236181868788830961227738206947109241922545851911958514116016722977105266852794592862027650610046678016946327950225357995922902554394813545124853607318302284991020072153487203604782117670142163100704471114266507771210912222271245367065874610016850685036390175681496434763243156349207741356184101311310852062322767009210460604798423755502117859737469730478182825658398953827127405175146732433138829148177798883707028440784095609914764385589918135183706916086445318669725778842363802388090111814500382492028708936355650901315998311809819963025996637697949539228379655854455532385446657499267090447408872457626036562041351053198459481465850851858996473597446821861559227390552858378532419621238641042973695044828355839909836748504672683935408520537691693280025370523559027145236777646466859096296414118352222278817078668596764279534910865489327935206735998447869323124570121147543351171830760954728456387891885248957130299475648408563469834465129583198033749641846608128856259435309085169987547898195934502582589465892301350508975951047203349852596837906624271140974120507557548826629202730113648350429517812662775447119388217864046546979557966825098649590748063031253446657622269783783470542364867502661718236868121482347690103499293280150261905848271160508202353356166061110584576620433327409959402439090160140756163496382879116264919185299365984144863582610534066013479831157038260407158268403010451487730392342768206269301027817269266144538692632062850320118193439296663895044559336563295667275835959482179108316436391944462411971394209308361606102263746261497238261030714724681789002895147219567271542192049572665598805963600834588943300700345103451408699577165548851282790082027868784487696674476132763856135045485834136290372188210440283183008963960662756522073482860492521997656151711107891732954920320350944619638814870082859648017815202023006312398692853236850894566548517715136943876364778153233040305988806283489815858410555707376471637578789933990866310689675541426179924903725959300162628136482580264210715569260082856846824290383563287210148793269880443957687366095409768803858290191095331195761656266801113481349528419989649170515255455708392379901089887788352604995774998140144554600792700699883328845132280567413110114028935707542964504339198543111513508406746674150520858723830884163311972486939243845841508444574020368445401354363519218199637710444950482980610029937654968415824559296558390154075956758789758807168515159131248217426634448156782936904963453645145141340549205501168208242717791403214558451209692045093965193143331443576462712393383558396649989872893914418423392783351854881823149505700014468667243835996192425300683424095612225353772269065084501920557057320933983200289508801645374911936693944721718449604156891334303938725558671482386933463438212313901454387968599027121326614786598593550249326370844069942827839201302024643289766760397981196476667419309594235410817055251631386387641397777750715449116169613857303110763865461679230572644198469382004713028336010563192626561598205115865935586134694809475256792259962024623971537636003212519791480760433151247777042479921141043944590661341041610732842774853487474174621832602046705458783757745470203160918166993126025235181530389047831171838942002767631976460871411715309183968897209224464666736677548206874123643182164523358534257218602741880097857653411772609108306323981242378820555623747409482095583530219429977439039348698249760647499275768871191837730399356896483869013568398729143950730882913838438111984112569948202229492542158207851671170340715653300164243109618965751515497506174404657985583603887708240491414078029535741661999299238318700144171096059392088659088349376568310680184773996459397601616255190012787274373979439515890978203615891423143305267166694527110789443209383449066977046256085885881451878783881507915007384424142712629319716622190147761405179176428173971520217343058979880895382597399260229040362984428710096481596606210451861747311035292311832620196581791967919551005512515807922105410838003223367740554279957471978114162212325096651262096973772480138566501795614898193795139664942973454424893751083748154984916540467813165849029297919715018865039910475513257534616344324544834238424972092544134174146091291332325053528941213127499440727161672674320569211838467039285426507549014222165021348296222687945564967945806586335268824301362898173060668745064393507975452384927633955382855116218034252820333542046646526957259750824039465561645980243091163068180153601459035028040312226131386621994719241697335359857547675092696561929192278769236252175383021852292339774464841404321260019290081236935540091973162692023353404997016976500847059859557820770838580996500080544337118773875404152194154229917145074219920364918233320187804071268766109721858646977176227534141892422622396508964970758521499188189027670690369266873367974834421564323911451032693904647253973115894423759258512477464384553330184258963618777879010494782287134633572346146862458591964709058987087618997664849683027954952662606897339592050176983172800549847505035976486668740862859944103503818261436887256821487674653392206416882652415288963731032777228913803814516632633387212306081962729267739444146585881808687068775038823790427482516060234937112181208091711408178467909950374805992350934645182903646287331051121366562621156953876776718993565222791974639145140444428565498471102351778368663279698480899398074591521992873442551813772228355496537561663539366698509311670932249563167911417181189277764639250666269192912127447435657214074394096522217907161342605975506223533672825784638195283610689071246938145283976789449595635275701625327446514412149636920453027924184192787647472688899639617738376255612578364062096472660129977395139424937169766159867663911491411615072881802548681388160687305411283745386428749881836325531784661598001799433709144035026913915440102471171423099555126827766892796642357543198930327017628538025825137719513789563775638137578432143528194424247377208628706239254624615014926324699761173353250439167176235382893090184674980667715854854074629089686516973050811006882204291059034021689248009030511924925733566892340173110630919551414125369401581352632059231617400049744358206413017311702387257070176360242449251276917618406858471529664722995271754836986290070719608058411017418116206277964443389568593828439535294505778928953939919412168571028923520650470986613815721014199421078430278403392398939774146351123427311547548336852815950718713984566707841782049486428262955658568972431666824734460231130086719915398689275866822957816627908336631759843340183629291415894800605019325845880978092589289742379914303515685606292251718771749782676339172563869525540831250657270753075554902451632397063551960026761984496932325418359680574971744629694305287538346225410907875644449136862753655988568735961140347230572759387027417602712461520733656571956228496138071484722930481818296052271730312251010163238204950541401413563834670578487518777465289567779783287243344674328149413597752354463278092588351331023197432068856415595887608267851561358935781467606396871246445538052961854753629277270878699606547889199400429167544085544435151283913620376659921467931952833549615162891121300681570147532014849493022769721802846121533703849100615229675315107445065418957780811209406740324401440412385313025014307731343213267629141535065781565998083008174662021413445346547801965895738756299432234917049167727649228709626052958166871115690354051846907990165396261939783431641799627301534973315918636304049524157319160540716606352811326872909402187316654332376907661916643826629058788074150323605599771067009221151843881253808194776007494981932799387113178905033744461145271776675372990330275147440474836224331015852123361545998868515880273550853802035806778242736457865191847985268255988639930156708430387221671887730769240705771836718241111782997970111539551713625033434410051885552572848467419571295642141764319232701531905708460358508255050353840974402661919142011879912028326098591411847171537955917869970127905135606295755877691288171582498806248276365828754561851006117762762406670039991548433824654561295176421923661580172645795860945773957944884855515477776947392371498079722640911176601013957013339410273897613775763265646359108135744256530405530438042946498713737258462466188374453884247920937250433042928644052750108713916130120628177506239718683205145055471190759641208331364232035614861915370393908903711430133313699295772733209749225783591036845164341600494743101153288159404901113982694680403804462666541293001361801598237026614541442077575102314570293185086119037895232433644178611506863109929731184572772756710964347610250732323775185010740801808677068415616836394915113768111570914041939340684195633716528798406963870605163009493959266819921451762949969852201644337147852257421395302210687206829690041956081870309241745927547105140973867572392546628264844364818422073671987558197901695814917715151163293658089140262930562158688537903422775109429372710893219599746392945803112077731123020105980961552649591543321461573637027571459919080652475896182257275299399710005615727049768828480882334383435382685094323301347495470588514847779058254533366740682164041967032134265877030800103695330773153519876546749539510490068091666015973845445789983100491106490775737718919070949534720428757877187564735376157093013080449216065000360516465265711633087053916578001770368950010245253103998123941617413157678356831486275291124851987748249403642347973367713887493322482557208483050554252166682582030099590493571796169206421345278891831766867987652186362882894171849641909406850847208910135499334528892993029846645285432810317514108590826299150043896127445581714407712536859918145642082245522829519310405287961810965492602556382131897226682274668416207088019940636312930150345501208561527485655927166640623532182273526480568873269942781430506993399148817359277402407946554775252060625754953678154157806554264846053529078522596190915990978869615328607949332903784443370020635482666354198165334123557408454020419896025934425449648987397047511340399678794198004271256100239536729071050699031830112505625991519152340330558427103794257818461362396335539977604743621744035738071336250222831068159495232201423265734836618934536233576260293558496916051154034107410383407214211238654771719686233717990897277660238129527546104816324222379245041467281746545021549034265892808613174650924455319674409222589087372287410813855924684427478158045016588654710263864237147864385849387394636123438397019626210105696984295228496549189076052441641580069602055365160793572320195832984877680218325667304017578287950135719147962221729480325657646639489628733668634522701825421275372602113229214740290954766280499010460350168060852406186843479407360722998401239336591685033454569116414052567356803335569566574996732404667756712046768323110392215869430778275332578946921018613782845876021147514793465969771938723417686339946506320968172871466973784646475377296678421627067618298074256468394333967025790585480957348656462802043402358155145657932030318631649861860570415682073448208909004131129855547079702124528886534731509488813648051295661576499946403973619587073987781003286609308721071706587796810555429065153364742422308043123691588528298902672561513623341475688391583039363470144568820956847555694514344344365903323225459419028425292157551535612585409574198704336863308219160056223468601750116061962908424104256562384189018059325402370050088578458463954371862690510260607635524459825231644477785929909264458990175661774667265062354183418683641465012047345247138138637801716978258642618617175854145042811360159206452831401935841295321171109778601582209313182464974415059624055963088575806654475108046768515639639953637555011240752728842877852633819979293129209832592992737030679386449313197531828918948944449394545115146967372394765279333808411742529089703164472288494002431763430648560494901457031992094273095266482582593063909460421728124110124675179180965149380093994050965188739313824355628723423111775111103585097829216743570041267258902205416859475004933976142843164989147693587394509123163824166663261525903336302591450314109832252848981789184677963138884484258846205641652804628493558985479895415219398503666675449094537429960641564981953480372081740952185479059065403559010675509427216409858380845660807105873047895239406279315423630305131430081806908020461358321243316347748973680021751676070263757517644828624303935272913559870907173121154512804994036023041802235165596993885513103126902138642306941148241158244462988740548169226907833137358938761104232758881151229238778450692743310739681776176560887570070266559767091729094774441972899004117781038437531356083966396491486883201490721889794819324664509278470757104857979232900189966764544052467849009976664951602215436558232934723815084832417682811811268205289248121480027310436493051146374348988501852431698228835716549051826648816221249000718569344480071599012650610353651113975621490147766412928668056298421551681686928208313153688747390872368808927654577514711523403128931176847502753719209324176283965135896126731520411280809800192191649183166588961523112875860697868610711032744856789350182389419874370204492509207767805905944489236156397952864160466455866342847488576002004486529160789408448527266085245286968155694556446921392038718807731710425745780686624962832522103417298725554685460185767873520730745133109473668265631139535706015747450263323213567454024271695561215804667163804328740283804623211012257669700613363919933885561487313148815743099340540510322615999688185456155627547562246336468186702700809531596829912202715597921550662096526267064546969938620659208238337063807077634078417805054177799208748667413241188030574703524768161845675649471472066003854665072837627076668505513038551839040122706957851940808804705001122812872394642381107473580398404892410819987312089982880026638464834041461605060274124142126201745805166746143448584548518357201104083209511545133969771653402185606808206236762364568066774088197158270324380166275036264481506219749164285943445419642625580232343275015763733348377250719808261051291453889992556987742678529204561659796445456136510573352479232209452507571078140512767254188191954005767565999608407688320205184698535561553715210894383611868812030574537226170231206621629671321627288847905795883581580614196434290557951987980426738860062841246748504897280257922963178542777634511367439520678370729162139694293637639698084177828567209087384263621353162761313666451534849655084007358316107093259079621901475429663919147198335553861112022275364156635731652190340894840000181425523767876882531217794635572732045907946227832891728748492305324995927326400586995110979667648726194844392281346433780531661765782209761785808453268450852213926624193305297401230707594906564287671478974817752191960910545859629995641316699258862495558167550447449545603696441616870363751961086781099713386670808374277393640425962745739340838012750955870930257534607085615743834648059010257439474348965519090615484181382230532612444163968623894286718969915941391936864397457895217828825840762719183762266478863696647920867674228544789559917588769565661243879411259359570035281153706132221189567892799162260524558615753207427982516356238012641591315256106480297896038444199254171744668364948895378405846254354999681595964935783575376526642583317882126861352564648601730633410632579437322864286045515105333344206090128442227692967433622597794379839086986439179091402803080074100132911903969473868863166282091325623581563489325993248168050558425528825287093410243993923412819116535372704618482759902053537240268487749647431779803753118668804434410040840031424824738032446273464625290297932501448492034150600254187096175214257676507411333405526093721738553881993574511218320924382719105386153958117918673202522234069023195383402701905951295875309443153480085574895995557673964274549320749477373330566267269422036707983449879873121155547319403648552173846176194810612404960612752715658824833641749333223246006381811481938010857101262552410516056931956830322192042692594034438998146829389280741298209624802867461916275011990713038396962142306639790268836205677897224686004094802661391632353530706598958742359760657936480636789228510262284508195095723526719975018829748996593587594906516182142157352280038784569903959714576826380901569968201589631581255812799670943365629139446578661316880671557764172167718742094578187351602396939456245721402404474804548776980324046904222453702223594306189163412192934408375732381467991107679681388381309258629386253315914269355565398422356271696926799274304671107255635424904387844841364497194547041589859441572113696667889599997111710778942635423627889792355296517592826453994823066599996806000318204628766974969844699787536163274075027283247186461381574993655241010253129027239282547224476886749435479539156718514235693424764511975985442472638466685415008356145207454938491660535817590945739309705225802638285529938319201657615405177068019687226462340098716131948964419933175601846068145810954436798859679683729619567235313056784043483513536791905272812370643894608114077871851008059395197640953661523005688158832532757684955424869299829409736432807807149491973448990503060076415597640284149548328313381325593981265941579259994052846328534143252352799889320657989686552888258606111834748029105119321897511038536238862995100447995108810677830151739197106838105446547857597241305779239675377339703638785913628188222195487348822495096600162669802441018934349160400580454087814240505558871824152605235070581275898872181884080927674009443423972054765332278112204036655323317446498673014961833319575251449418241251962101066350122831379203016907682340221234197572733804591840477285641684884878967845785169636905991178220290656159365838633091858743783520709065838708023147546490696337686131492434324146659647796351791600006103584106060469030885562463827542689539755510404197479695784989745247210178477240186762196832355083550904666485699066206890373956107105752766838465488077851769578553924698157752862988344890674946992249822894345948106887634015225285412989878886895285732082279965336652194525306130896489932222579149518063130440497421286360770000048266093715965694954240416798317952235812762702222806938413472700744075333647149045963808231235445194855549555600386464153852792520361415920477369383040949304615027295518310866955422405093336361534643509835709429227772153566027210842330486687493853607141005689872039553488950032190079466060700151435558218682723243908528061038407792345151783855371702625873674486127509017084465611670392465962688693786790188651078068722131817682021698507371132984970176902966268395630608380710467337359102488271673796359855584782023843012231268523825910839645732030248103080701708933245091019050841674826516879180081611463702141538520022350855363058388743999800586508630066374254299448536241212714053533407474769135760093449025631427984178078944686754362448002536363508368018815978896807246902468756766052486981795681070537011634867225612360772864741684341350411405687527268189643547990492159381064220570689399856680353482085415777511603502014270141874804335724285027913754003750885011362433112801056726567618183938253451668786068719428766434928828363824353638486665525412581851836833635402262101254031171418060961853459126704553829456153308020607754450230622113443209140327081119394665966467250338413460218746881798063068493092825679852107143470261785524279098221970406654615807737244825496340055530213481479634303664717588009500375539211577774119845821430727765383166122927507539252480785398543783526744371715356325430039248699026714372506955956477214253744567598916014230706445058979938585381340843665572310059002122924757950708482765037582261323829975138298168140480457648816433636814908442527508493944107137633877893993218336168454343634099386746888458640455749030489625245301463297337838336508413576718960648083254130118701835049385537801292077608456063853457150163096272808969212224739062113821062109158756201803161634308722781148124628236949323086707917440156885905088054735458502892129901583935700996066391451452664143309240734988136241382437906760464071824480822243927338214327410332623216874234353302915435488590861378950335340050129776595846631682533268128486958743499814010980113595167694836828225213838023019380694671485481197296275841439758489991921223632582823214570517535865030289269740919295314206036765754047779325740325072438706798846627817782188076079242007265371915604183007673722849522280869330167102208400054701581124673077343988580486001912848769861232278853977118034164571795349942319665415783623143782211332750105801806421378408821667373114553473379544110496905629676162049197152711934583319866062904643156244739969800300535691095406005606727713036819797555773449299863859200011816471804011453619969588714890053058290149354951788855581179202864373202886268759643321986309829490876964918132328225056784904205430645056713872763796377239880862352128521234586484651335323779697494479963983378512019860241430545988244827226244086942271115051729572189966325559081825431591385223386606479201104857709638379304174727976703101411082589173662294947273268209812635314668239184155750835043024985174765355341267905671635988220145316479757840290420154579419685542779845096849284410462891859073739806939391726923459838243361437819385832692543605834825542527618004195158065598555285971374383427619049175172962923979312453698190761375630411600405912769966830962690347047159403517751785445025482657872901330442175225964388248020648202685031618935258680914355071733012706417616220902738437865926366141804236756871535303186153689406129534286701734342762269118157228054713319011325786316880519225782161112458282443118199814128658137453628322598036740975500389170808858814471660057034585270110510538290674021002871119170225963023830942528486319596869984381589628575025579435948662685312477344535846156454510881128627554136155523950161163845167350752790874878910052424973118381796727540714142070007162448971582531561888631437887902794865266672501052441871886293189418153238658416468610672781781228598586340697750469907034534034043861275083981746100488252240719090547393194725205373509600567674014465319479478319866486329849492756381353297202032845809283189888127651087726607198344677863317477413088829895441729410723650864780313063373947484104719541010082614054635498742783019648316614599920717054874625526923031490071044708757370159743979291104637701156633846891458134566840031475122354070286286977464360766978932219328706682735879327169211031165347784965719127668715289710311686397853157230583969677641236741001792623025285653596272561536308876771006460693835351711976358612414792094195239539063510925314805684491234559540140181262091577707779387808704120718774361678566895361488102585604822213745018918404963105223494237920784946627146701216538979761040510278617572467671093650756341551686369879637550554385000880863424814089338631328952274517662852394583304212022444599934980663649694694209441931981681519943463944959138244485563337580275796244797000250128033477671461310599219182668723001826851195749327133123795391647622036615435345159329243403650228294383609463287063520088476217607092136025373702267311759317474094794273952075804050989675526633519061228331289593335667273821614169528969352160198572554903712923215077933146412417935922788160840086625102428028343304057017947146035316421253396058651692183401883062085368742438145983841239805773951197706623514016119811172185305901385047532804346279757909111061279718094889957424397757657116424424251278165545761984857378773366503307260127208255564999577132297968622319699946406206550063911731423247284431693864766307546498676626557126941323458917543134754380332481029108582207905334304244969496578608506091382521586899228466934119603451316980556615450921665404537240544597337772124522134542832705024041822820762963772137386660076652012430398374165084750066294998269562358778761524570358420330779188697237439463977629161139029610878153147819044380135374197407154218762259754222941440397124424731510460275546350160083857696219802659638936184152380228243501612583048526246761749749456013748667703908507931559411613752423180524060822000571652771345836359864626648315460324748492780676629517872796094562427769891816100211369296617710120555111296192620523594508243728802518494662841473794171297824464771802377681183329157975536107320525140748695644427420778452808398402172591520581999833511009526344467693339310653587727804012688144465328728367126774052947812594787444854420703470852048508419791854371731351502042485018752223708127862683988713108582535139159263234636662193053406020480862543344500785055244454860823178725910523211426534754515009483653738520033842044631300661079261003951015659884220694022586625911193300341515148837023053475661468582032145474418126330646463640863462669934028911973123151619255701109572749799189442773460097238858603420820395436123227424011617006143755221720503128705642838122979478378095894196141975148969898959540739766158330790094604641821806239434255210525710101003398451541388422366646205744757232446895493645452063875985959793316477170896529962781060471377410618568551153687884465346910334786402290112060716318463860799946037030096734266173775049741988148203835561608194919665676575941431913963313439938374891461043704718221973072262621032100010437250796654282831548440362151030565715163953035200834214472140523875424357996545330392051824863462162722147820113915761819565301782732703355414128320024122505936348852382039116467952552771621123614530244758531471956193835205405272410969898268417733746523069853188301970551890445160312298443091693662188938456483558327020766440876090862819732458702522493686464202066613022592088664739359272182357289474558399950035936410950900899182534117719131307349505329581398743479723910394077483382513874019644726606033330767593823987892180959696316809350112075522537338599423757429416251068781769829158339219871147470559369080111432087365981552606963464365715037178433139787774034615130690753901838032536937175692918395242304550062669996653109548004093741567806406908114028141432627181167558953473030560074079101092695521440600688888097024508188297304238399279746177741531262246481065829384454492289691308026858441898650439171203965430742917869024451588088584309215823348167902440736753893783185954728500637116242460147861173452649289298460052119654378348591182317267513170954651135736182320329277056227577831977026628946617215061795992591701251897247791434934681242893180094942260658415378422811605247915127632407891076667059888132014557177082252091205516404474907179449662938162407995974053206451001886610075395545597370741451783750595868593679318749324676555633795364775565204773771017016015605177659859432974475009069048452335265423973155191044338817429286949388891729439470208325846465339492539226516960598233447344889713079555455179229829874338230564318433212697755047139890759234204586496632583107279609403642227186625492718389809715031771159633530424656791952163654891311783871592910873449652650534954818512180837330832403394428890457134437688680580914035423136113043190649313173663235228958425022711374231517613161042435060872137954623913035581202785864812135411292454492670662894553951395636862330317410841670239311205509543228057335852807838240245411584906697732983390941090708162029210527260862515066672848289530564702245186268887447575999239774360372683418153810843515114151728413785063236836475712278571923600206544806635581796879550910654695382641397340782423554352181429283111147739742971318451155446550208831649872590751216597590733401272704041887154036117930469389155379606383752000543433842935417020948339739313630427360772262960868088119635346176780279085855788972117320264155290958082288343436304276297112185343241615767112262329910091591321947265062939859635450840478374834167372991013023442194642650336988018557211406458069340876420072818206014096658719040607476810859109249927641134756832314901407449382054095842803921702239810212116444638307908151332126662411863702243891381250462205254136538906258106998492339135846816285632416735568712797185037256305509865258333427739868442111173891645874874546950069665077218281229667925851134949939263823283461566965293194590949392999850451229575251852516998011226048369700161389705652549273693196875119871266961325017994337719886588226382542114625387461376947403400928326933693176992789217248108314477655289279459256925560366124636094603898463053048993543372434101684517889189584953552592487579772750339365037026905748678685561387070536111563676684801297281051667326208001027344649304014151173649920268947407847334701329733292506973699115702153178748776843341922917628276909315307553831204799333541407657651451580668124253247193786079492829821368046104793799594154688185569421615288677069070796506373088472292594068451357974997135893148080681254799437359470505455465021381546031057180077521204996677429678786516619612805277675476452501852631844280493615289514162205888010070814478018523567782749097500061926617237752528541709780159747108260199731811429191710890296695392157939624667528588175766067516227164301116074951353729620372299031137694038452951263785423386032946107864218087677713512937301627037826075031369752377072970862979859520272997988951136240884769522300235390792222778579159987798227175419421834345640697259405102290043129057095672145674895021449989991815567284229035238022240195473492246759844213400438174685856750075760046009205400137702082650586750871248023544266421282586672036189891727044179835978210634760962289406325998689533425897252234981231448826829973059307085372508032700246702465516229600845692915288450802973727856459222846512405704317457690156354166476980244989979303610417848417488681902614167724101026886101993187984210380345104581689854077089888180330518785514352220573641213747650146407856439228534709044094695657412674450435858096387955927210945987248844094225979652272713450687637898832901406910457977478177662613498793473772297846540816306470522461946753296272674785243207205822107173520921331718676773077865655191814871205798614518524619778130386343767166074412909815463766178907414290501383704479396695222711036654355608346913233553348877079318823392693988483807113647496665363862433556615111782725666991181807564670136777363587224512364757305855273897324149860496416027310234909424564312638515838130679496305060304755485591933500345751635372281473803735771528544821545272081736286234236290337212522656395212936805167738994621383528144221166923926418048800756245883999435683273847427859265494555479250224814522640546374740725562888485058404622853098515702030119403321872096036266526489313057418437863646628488446597694664052150705638564975233753203158822868919421057055310284829976002289760454226190926822368861425544542795918438604061592978096475210882753700646878456146161940714782726082057594959016044826008536314361207155260713946045254358331431148652234592772870111098420773111475400881962834187880410636050783718256097669915493263775021319222468360205275106122780581347608884767922903948416084119174900716243003460570442777621573552297553283984691350218244705209277908765802633604378722694712768229021383705713245424189809290062412403838881102659550750104679952175026780416716015065194706943833330436894427797009240339191006106987628966061661206925701892080992946968720997741151657984839883812895053884159298885482800038468583329458585049980042398634622831992794415532865495972996377181893127791406379645866116738663413669087280648132090407906412373463109617237757177315699620842284526728032402333164420968576855451947532051544524222874927103320577087477033576404736251196538532093407236193307119365815407955420005761856929490436321087024572717049429990248336536028354252307113941635067670367918523432679982299624514267024776536138577352103521176082641087740619958704101437250943278718942411239375141602509150042698348173469594424629133440348830766429683431268251323322543783476050980774783656422459575015934935511032640456613425654256450795783484619215552509700561702707328722637826670607817211082627138603712400425059023500268578533330438691165115133776144687194026525073883749890182693454026325032829054789324876044505815218759868897998439824358297860913213373322269948622739290683768511401331412519219698231153331327029855990546499852099956203214773569997813530462650663793358527111972472357772902173822502801984925119804291644856215219947308267280807993808120224731740745563630819952324408700715821983262853278053491647496548682912259917955649013757096113621128036769353384110044580205311477853555540354299801206521107199342279464473645720096694275898524678783374882355960360037601657991549708739059507508104278567439266918524822836765164201048517952738021567224130353228577343239754069596273286881539671559041479023912351923521992864292006999129033878010404754948960894854341664906805263888022141561795625097912763462915244231430787597568273549966917760106175622323382705722203944729587186428502777146088292998752837129694864961779402606689652720088341590570695743577104833123684120578882053315696592852882232851129718690562456754704413147387733008922628580359276708677435798015025231439878945214656522003941088522293549402668943293881988098682310189029075421894635418229721357171776043133798946948786171944392056915118333020225608034817694129824955813005562822772814582634531432239204796600961631388319930519718947767710789956773033774607948396341942359608375391042363497633902058792792176809045719180001795341141559313476342706262181141439658215932808815573754435188462461653523791799182291468691773950677448030729357398876598695028653933324740198082612489052325821813292121052484172871439714618755012558702431121863683413309577396079837690822088824684883998779278531995342449688974668281527704801219466446990782823178630614785875322235113184719186318803889508004986484074578748065600185591832347841543615031783268426821880580035806891158605741643052827112572223780956670220329120299278753879746460597752918560664143724272461457513425960296243489395949703778155619499028428723325184169135721054558154069383032148958116422237746515034678190234945961790420345407110121959746747372787729996408969564405528975671567659830872093289778935737636239778905008827520318681148070814400873636211278640625302772251551719306991178925570265580800382623362328696215036066577236051450354934566754584893606721227778489361322875575841554279860763037422852848642390550247081035125505083105714890360626441897608659604585558840818600755148391923254056704060928900102827389882089711836921217730067032145947272156840290271405574266740959820574527122055383239152963237885604310200574989341720828487887303978262086995010007623600986834549730674255584764486192279241517105246503326643198112217980207910441418289259839604577420142659926461959698177344530817836855281929147928003809642388842263463483598931399861612030170904688480226573878750840944893822329247241191137560154243355856076864628347826034592318763866764171111024972245992274698641535628339317386805582466378728341449470069031663479827295725842418471227043580935295550287424012421459982228845436123176673861075247339732840269386311030719391246720672439124449651930000572576565369879621072553457117132031161317140109856254043828796610811187265888465714528584793338121251683835609876793266401752821883225205289699362635848906164947696223914882302380581231797632505375329605175059629082945358364473517778070712924553943620253406007716638830386397511170205801779696416889672941026118732309909314564182160080328726891382197675618226430036298463191513087481258196844673533254162272182304362785100247810029350801898804000736657638857791845436230483605956349594172484545338300302187201985015075474412362242078049978899983549440979382375586667328223872958482527153648240184021289583914443709955658643664088215344173196776124001681787062970624593372792318864568836572815972178652375012217405261573497802152804747559153908435382806644521756879114630234805312254845894741841483188320988016354877448476925046656271590174128609840848315741734268548703731112540301608678966178456657780005843125754088971476069693986612265237078582003240861278631303670506967776731486445697164919612268233077271833349619541185046348398518001917566274310459983540503409792929277603779598040574612260261415691611234122032248955030663538719122135034968362263964421240980034704124566397795995933238437822407323393221364105544304813004745454878591202638052100279577363160906736008267626612219900087998626814535434358532696116809025263428454320816384222243363715993122551783574585939945251032818957028171763630231528611584588353394272895671326987732921976714318924549655702469726738425494140042138327956424953104911503043017832794765376273872746772052150286683869240777554080228510581830774511215836963092903345173070956012931188992977577698403041115001209177229998670105767251497598252288898306687250478196431779375341984145016128621058928618493919190597600745422013404006585121421594301706537361267316982781130504942285624633303504397194965691815188504373775465533687373114815729271986034411480132477126612708453443447783623204870131467735895933848770859398717727590847409445194007541655209837573989058654056047344711321058756774327412896961459000579983287822212320459470370536393754133666827688717711689255066782604134209216447106019137849738472945880549111997339616801720226952244687122120041550547145126432904475288904785435090310657332850821078805450178824531962329954945560308020719232912164310207620000341512672128748643277957764213429207782977371534285333282937974367806088397527325621428184917892968594368613279376122897460031700202973358224698830829477403159687929178178585708760543171742359419275875941228147282483643018507340871965824660572423435966004880426894272204539357763560107505272845955721295389195832506218685450948291828467832395413529187648512503487402317128762842657516091708800628857951319886678118659937228593487961526652839126860012547610098153148266788505658006999291122898024815897202721181385679154811448330113869325837296828001787189005968939519060020255471840636537217468253728500379816467585493582794054418386957359318021095955959845274031241845885790752769684582031655455168914500834855797844765893637593515756729091965953223964189140375015962556623392324652339252207841568953161802899282829578937887429345362467089304053599388916787485240524718278486984526146465956057956469646306967521997516244134791753101592283682836900609891110818227297971376281159919522437495878981945544841045350373088328712717133154666803185633097102286414591154172625472658681962468575353849705833893451787473553023710569574546779290670737136936228569078510755688184919458750813450277269737461822624778545925231537586146219423777685123570192822236444780014925929669051944399832587133706509069630441725544580063723848918853236148020889697784707001540804102033994127485181938792779820072370597466283976468073107193360666398339408849354446734688277135349322329717145604603641246186040458662248100751149594313095052619855159061347627227531544289309856015596427818088252520986131399990576660008849173786176651638742249596755013538997243544369311053573778300082257636867108125548174640256615880086175665735410790095402663538897816370201554383365595533394415106248944352782698497052220630166796245575809222685490409980679270144490410840382146793590566757723334042925285328500664062862281460922382716724627809163090807095392149805785156314147008276000570041035463067467676311881575277541805630436221362794288014848955417727173873349248339127999654915708402377342281841498015337494348157773025537610487345649629480179334109341639326508743342171354605886487427230129097058839541805005390955524001646176358280831079694649010878902031587140844643224233294443613538453161880196923970600092970739626447541532236892692612107301863229948751257969923291640014568049483566745295635681361810455671371639011401451902614457406873780877918694507050183412162459663525544452744465615996748791814938535065231707456985376209254736437184691415818676107647502434656728313482875978307075370163232000685454211541806127500878382931467167819302749702729014279571179005041333731530978063148677641536501801404074655783111317491265210287424217253114720132007193582246107611091682615412899332485035468685257952295879645754817607940564770739583463652409161537366085889006347045052762775798054775936983472359391690773390435849433520854265122563385708126741185185341137664158107948259232562646913643233180939862998378784906830406743121560157866741133733007714054068634724082448415975372383512293137093000819792989498330493765196715255410718119353513313316846287469978531098311277470296029587659727834094176006026460370624637239157862334182429264640113293808929674360397481134251294767391725367993240850272453992102039762252723026119092368630402435836140876005882316207633004777378308966998771326410288826429527537310984510205209181731197449084212955329758623546745994012999945550321856224659052888364677433008898687122926487026730235364349512079145872694987121368149919649973063409591642975238688209910831213557580844004977776139618307420872215792949450453974091512448944517211722676559975462763343663696173056888005946590482103406572589246833345181919368267655495716458505432976374214887703254254267983439317436458964892236588867299075299828252242298905407412812781200656397634812669639468217631548422133075538232384936840139363346873089998555442119106019026841709138393749411810324107805173574115980391351930997518108204591348380241051086105795557467453457665228379146456189557138892685821678604937542846654393309273572463793528644077253223873318922173096821478121145744501467026936962479945144064222163231757006632261468658657688859745669739923537946556050375601684881696828447081715142137240566021976983117411330553107821158078566639515816319159878129658397172136973061138085582095258905565429246412301233733282264204658429828390423978121202643995694702969743594455546882599929961433375018037910021334400545699240294932386215060313586455185611164613593075482351532221937436106865851823467631889380410325562015477861288969938361055311846009521950443296458928685930025511635533806419662409279682628116653932677591904233306511992443928350752480986740347796785610894320890182307171799337177970853807819504374214468998213575757762287081009430894797392741533757037808090999560772656714414176418703670852754114103258536424983984948805814240753899059996729374919786234019926917902694959898723886168970703722215480712475327368604752932704204888814167571159976967141153983935274042005339328386817048819456747057656488125841301215532867777780142526806543468615647943202041952569127911707146558863227809058353403457479308576584087469689222823748304451872278813693479547142390174988072315100461732629095409536090957400956102108240150915582734661493630117326475251100851167878934880628724958060197003404347933644363851921325947280676416935615772839265843167242002233190836674874236822958428433087724549225587814816854226418545872429754787185211301759337001466521431192237938030085692769059538044576209638977479511490159088148481324146053267257860253580826486391862487022373816707837038003691455996826603745824165366659330520565730510582108171962380821916037856719395884044176725944469996221032260465617047906074780579857195038336591221860529006676984851240986282439807855363112552669617184241157595547943350211196685563513653487697415717936671444361736145204292546719908228268189390847327850132268284030281074033754382935256016166086448062369314446748300344982014025879592543288832710998971110332882857681304081018876676607789437834687354331941154880746250111831052817842622708721346624564959371312729789256053527602322487790621047669060989814098294031358063036861652737441917620288104334775799783696082415927787184965040536932211314887726358218118929899711398755575753331530493720123159661382989933909141419342601845934858982791163176068275804175799694650650641575978920138338135722584812843103507988861601113541314376612291377637719795749873843312523699061112147262705775640641953143606917828869165213031124227216552929912246109368506981137169228839280230721317258621986976970728381265045112828955610559922458246298531265283702653736638120830661449967681120563181225903595761482785779757199539103484268517003222087623632792856275857758360082306879278318461428125701908065605940421471780442755555458357455889627572235101411023787429651670083664091728852045640409635897045659733783152006037785572217350521253302429378367105706539450667488659433693371905126265290448597149712678764020448893419585440091097876934900748403190074550562903615246791199262335831115007622396240243368601292153370045599112755185817974088934252247863623175528606966879185120245288588074624606173369994471241018037984417312250687601172017118807022610961931374963172800474172885361358974598519446339911656821204421555513934940827502151829310806218543426974940292385222840972203302347837230700873143719146020159983427856551949775232679426320089589509259636780489314874874158476755054402155255181730378352892527760653985664322445241491679449800570035199744728790836660300048461324012106931532533352963217402237576965864127992216491047215765266052539669602249256420786265605244299721585695367873052341504792657896906128820412426205975160724389362237507629907177774636960668124115083783972348805641152600072706024359997984183811729658301171893194713328101947347450709767207697219949891748675482126949103018028956922539272477563862262416733296357112111830638586966634594091534921139170347180099542190600370764136992067255655380566216179084241374745418499457004896047151300675995529538136819594393828485919750539680290584855484975874570787595890825089844850492108296927503544717742057122361471526853332469671581197173127214161368592981944480895768537538742159930866503379759164381976841465138709693906905089881459155986793964784840921056222029888694027103578034626217672575623219743169745314593600634229495958635065402542084022488684595575221585114549180716063480261805689501518758281079098467888635928793145408929739700969615518934993191717610230126359350571844934971234405634293193047557537094437416386453004282432024031463887268390192798403369767116973373419246940033247066035313162687189589575957705290673967657744862719358153513387405692858770484229238810566035671244886416933663768374506082641655081344281914232231616739296836061980319019208228617960664264474478192248826350724187495149559399772975058145690758554435210495014184128042626724900875901241372263601862358544283891821376302013031317521591375787556580924134715356043381411958067260701712142740644815330232508035909025410906102257204529248829392129915193970471518756524763531062473249244907167889090060198364252169287804400407215487409856483326017894607972266342065868272066245803489317095733238074599408417417931806347042612431049300208729412561392756735477336557055771402487217563361023499629582408443700077952315417319071368338876361489057619913964570102190482545848350660904790963505571045921842646242037156917442380621769123290631599358235520049267883048418359431619529425546883771927914308144049110061106542791254731793248216925021658648440518137738829916822783011101089072489950919896723659036583946051777184071045614011038798112323074547900133302891988239803007710947124539677008629339841880568929117997509695212557546021863120264844443304271492315087910598817155872353625616087382918211651496773611522338405436390000107445089351423361929602669298798679851032980326920920901069923264164617238003508143532108620397956769493669202718851058935257896180784329478763119826733313698108848491990535060996826226937419201036521650203383138885114243310185709155684498103104773704517817194959964114693988295599808092785393555063209927326848584932305618202206441746231456049082306045946750291780771197785404082864658315557569359898970052377189414968847141685796723103235061203396030381191243820894436502059073725072650391719725159434672844533128901967015945277756497968450383528939343479318433127730272550231617734421907428432126703699658099688466721108965097503572125223521185249161364204231229583309265001059614852428988319080594619199409601567228451303446895532332176338739346794070798945174212609466594598016933034921580318119209120588086818536129252773987193667750986293317306794784431886478561091975192891104039722913323291477541349274619503778074934037932828949254400858818492403620698813574689225522452958855794080896805527923628398113574570883216472538868364519405274177091121561719278693016281231050224055335375240612231066691505432484337824218960332847485981454441156569943220177722740112789135229307536406724408248680281232460681003367340280321081545803847945885630564457196855358642691577194681252714649295123760899561803306888937055656487622302112267042789404474758387039503370721654062514319598796008898228307845274325514474852581614666430737798470318591360375050656358224779172512749663562226973337076765488280677702274931120295643932912275369663260781349037287131474880280199517727182430728140501867384151091958961679752608702109078907591359469775814384548922396304466730227586339478218489789502744027818230596523476178643241717515993774559161795441360825933304768391311289838735211019202323050720152032205383392595905796559749965288783616762360232466641441230013249242020449130917648341046802838640725065256594551775850093466894119504721038839424365819781649725731159705487113465464618477906485131903597623658946403640491888486505469290395267810028689526987925892018118563687669565602642069381796458509401301710570548020847226781894676143208791547957204536254531676462758124350879439207113112667422906542673331009564457458904879552636073568782767047782820696890410355189132619647879850466115192992181739360099824220008947876859733326976080745992173974549819738622561393070136009019028950382589088519544738211057053687720790771986517907189945586677122732751281532801200171853268594778860965269489432305885376042281240162363042271288230982123415389158325175043810537830494854529850138985898761874138742254492832944132256906906543949950410441304375104387631981362339076758100385441249973109420577227149593607322376962745256753195263007967465725084642376027316423611538972201391534916980892634206348589647124914754619538541976781300425973439341400977243838772364419315906716481653453399343884171131622277445423082314292854047888122040345822884878659101136837260425706109577957564852283738638904113563188122407381626769355125502749883729084292029604420346050161948915249684458919900808050328192588445606347267077271267960513007159536837784598817900335496105137185154542835723610532296757402252411041392965820947054225407248465357874282105644275832340989278244876852532880482454715089603733655527026847327231825589794028035169890594066386418685350763487298397346377239656295271053303681414751859572823645013755326986203465183266563208773033955347032865435600303952940232055059268504009311354709850309239579822393571487331040705885403031059448453698896358319056751144531516116137802666084899302198248652091873221686656135280099090363072265779687033914936186309282128619055290539550476236331141714398712772309651242020586126519866871298208035810927244192713049410648643024455873716739472494114132316139297010080357115865645654673085186353573326715980007393771050912713475159321755119128387921806154559087809117695151739177244028549884527501534285029318499828291417248519957169907859279193406111132079697676761360205964832196299258129930718089269573177248312639710922804168122041491113247420767236117502390511735100860994012547776169173597571664284348573213694740019327919622716854948428232800250938241805602789602900161163774021778396661951402999544469983816964263251060311840698380394399742350567990062644676265888775150917729018428128705193416485238119997795348783453368173923016171556023586364937414688830692144505564657293290573899262861146465491771645984813295413845070050333439598612138167686793192976405939476091860999503864443776239477794252901816931237085206962787911596483324525422651639543218600420844657725174061062687487256310713085851171885160674945585317723289565270852211259720507407252698799180780848386031903868612184589295644084786110848868737171221156126433942664015512144465194059984086138386398785183815828509453164343914971829138338908743575337024424226512244968349032777838582672472212077410717599519414335800668033951812684374919805691164995377150012898674240089240260590899732678200527120667184440555920468171062420468480505932391123397867739614505989130618008542981572634455628706265288857054230250040912725070341125509961199668527032451225688826149258279667795892496250408325326783552496688261238388988217454516339777100031349706516441983881137384910520003503671466002812503990443465562157678573131819969527160247922872492129630548488268898982097290639058588283571770921139045326546891191353881563307217457794657338836521068730173671673264088512275921710140474736846679361250719085733651777537908216752347339113201289132838796322904836131038239098791265995501159990741365202892751597333654824906101733457271631407304984725739565663261647153943485589256178746787025927679121590877761222992681371213288586377852039466836964763866004258048096895275214421667322052777942774825128225089762499949055743367516859925828009288162260696038177785223877912094791453531538053015895887633625862535578232155714963440127058027509990604339532777613100134230844492783829755203390281495183449174559387607225232510187459053080247358702434944782536774138929615060435325612399075511776547550072709110837961720268306047429804343648312419700259041345450524375573677395892562881291608083174636219898667018287274198900154919050784186108708872184963238535332123169067885190550488917556981992732853871785981306889535997150155689091309153812661915744674100685984163183684887133391192292999656436645223198891139825288477194855401393230127443859646764498139179977319055326593886412466924762364838587500931246133183722796019923439150749872547179106155155516689968079835487818468424227377444114047557401326087842694325715994110042894331416297196455127920770903489249798540300654259970913396554263811446414312323187903209750653792488974782815921803505721410030639552285845415810696174556017139108676507050275664935416652691254641656471326790091494518385534308526837804868413672023886309297144074981141981929765318668038026995311727702811814293688540202384727705658638480383305806546635077454904976346872777836724780008860334040193770404851707188541424784171299364255734961028136935550144080961622039197834900822293530666635802894044945409328529505425940021604281582255112443444062500289281850287839938045992190086668795360229652096309424689614675275440326661374204901113258673515605589829674099842119492201243670052269373205652843052927116308870510120472551083789994104458424953920162873605664174879601477851526845378182389796376980975019429690209558507062309854978427660605716530276411082754572502809309720459473515571324267588452200331439880053668014045725369811531118295930627539449247813874375090035727271641336403670532327972424845683117222342401188784384452781974439000593799715306190205647111818134903794154068217088818297647192908778553757904556879680497995648510723490165295560766204118113808487320636059447551214140663942541247390013878934139562672962358486241474888555337648588647028832486203908754118281304541975732695144834983301184453434806160623220380921741622746487807067104125469197185428092068832232786089467873594841512855920225715851262000329276860152767197045973740624758713364359525903654086598825809222026976872247617468281194507606242339388298656634422159398455457924950959438713016339000602495574131410639543076514483169165101423654734465926705430368718670161036883154417816728294136276750799958082466634108722283810714003146669256758481998190646871250575314134063340073992777889510925541033724313933842902086101706703443470249890732972526270300473114581476977188115148966890908227652398626811299556346161540234397572583184461883318883317641527863137867984074644499014901039271980462107499943492005730770637949974947023425796682221627192560943561252247250597599948708682754566048979081616971363832483077554064109226468350098189057125870636365006061122987282961757755035453349582485022446267537923872925203204025428528494892764244408953878172621676269248134635360450821138074208062993197081052838650262946531707022436859713738346883501202166598675994378904861609092960578235894526769582527924506344441801965266391499642660215130271488729807710878958714127152637029496027406854336787268268616495511131649343795895388736122073068176744172488335471266048025205483013217594238709687450568952551298598321620237523272271830466131359830929454531616062738749957645035065074639517010896683306005856000622749843422581803622992502839085840017235786304881741429506146606839260831957021689681098858175158220399993440238268009726972306153669214028093937706697578106011000230114371309012643392026596961777590135268207391770032306010719986396290945008239789372391051901788877547023598087677639320047386231113248128764021550657688573006429353783849145347442621439859911881215487152122867294523067417628550762087153497303676425039666107603036949984889718189058868659645653874872562142695898243692530863305331397669300902239057418648964936091650799052134355222224040720158970270823863425694456430270900807069007844880188548459127618519624092385262483432524456134981838132175136038637563015197816811157219379346663733266696277833644204620240012309465291883526889810248873507065581051709537663236012315969663913553943884333685330209541391091929757367636908400146009927787561293760154157095845537896268272096529549397830468910656720217005168102042463357365662952105995742478034519095791005581836758808458343792386160013847576037136447939067000012949937951818435106506796130874904378286074985905189863505087953374367017476717976617448238163035193576691710430332579088003966267247489951817041604729995646273807508553958691256003812029248695374032632161220439465681027670268260280655491883041370144355949867639196833411429997171861646593620502115705496894793973289844725989309800492874322831011063528048354680974851112711950982909634359603835966182761040392932419075243808255992094658059496956511947177678592052207915642618716819952893184004704314289334088169550519454008080659607621016544670440570745859207215099387375782596716938510903477795275378188129145485370143844033629614747959974612205121658738351951854970685678721689742796258383308832674886828664034864615602905262055583573191220878994931917072250496446671599894312693936945917450006225325457483263772761240403383044478522489994811784550142066607930545795246018560875803464841721423423932309404211554271774632688473123283333543931049236028307700179729102855274244332580729893391468598053843369660634086981566020030444995117140428068309871272400816450310397280971823607175559986811710910701139904064732958817219799370249133753080181320578809590643526047773400971980005115644918971190571790646464653006456192158595488659477744093546740719976121371263549379422396057517778892421488214445606526047843683125509337053113303799844893682621029891947246700622947030659290681801309507900353021702267458415704066703677812478859079663840184503041515643034732160472897769009892689175685964387353096712607628137484401267530883736727711020823816977380305107602469740307485713758888227626659918242476340753238623460457654715387020385861998250261983517507254932628326087087405125671784741901693204819710452371590567321869018871045550736619878036506952434904391302356793745484101863104891546069681098657677411645373097977485359807334184233385364875504613124752570877081440405149163356973785736978737683474890810028581205452951248738830904821041634050678724856805007156329687860463940843770356000647668788439103970601108400057019892817375841057393415913447609582184206573215187054547929022348741218553950404380150551952305151019023996187655389308645474948108254653783476883697174167423539420112877661018248113455596289198225496054903892566505594429936586875352104590594038589983276581293092119716351840685851824675306551952461851302782410106861295712510810106193645843985386941783156568081781838461136054836539696337885522333593222605505022608582552177447637282551531142344994502379600044457503303090006804697197513958179011399419161110020429026367336268285394552683772137488702271687452550012816136328675692747718680834935787494567005782176053437195231813790353336790489857058773175730384231010316048969815777070490608052912966966133631786275862722930463966270076478671037208827953394111315525779390312691779515362018075625124719207560585507622946569274761977183762815425672253283672453933231585327788558842159848786080559901133747861124948419915811550588568561348200574420900627271026460140835773638443660652293197900531037000154807799821628340475059030794374581527941453938488364221461246793295706825810610526620260865692926812858583676213374650763959680100642723493383261512011626715408834088359602927637372033737779969481839691429312229587108946992828473404820133178605990410242385603507317322959671589305326251537838746017108124688178049068256536921238482785923032146047279842838686207325179274042388464782535548773397930686202279733907793131868867879904406412754721040527901499235596732127074047068572117035846393315171582409291863507244751020592143703560924804983636600293711061607635322197439382164265847522518305611995993550354473329879419542970800928025624013178399578100181265140224093182650552497728495779067389668043632307236035086005757897814298001719049653037712629905292112456259734807057358079793709034239632101760525916403596616120067590520530326035911096529775220659459810716346040048626832833168756148363915600192479312466499403512189971161774293916183866504518815988028215879897990890098024781467578555094936576996560453400688647375123493874155885716633299686012518912606710310638748445639986733134189194937560790224307708847099788985509385194949562417080066122411527016144858154998288291776852245424687957583225391810722497760980024210044620956162373531107462520642964419168139754989131492808596507761530796699849241102915901630789654699033981463100738295099495383544842730016250734175479808904236549185259387880327199008724085774615444924138516341286192461357054197661154216728373379445805239563166169876861089496109346074827458080890784502000072698217831126718715455145787875928573264888746792003688979883423304538126654741571138480174910677546199873600796908587260064914142781708101031450488220319130459504736486105616724073284661388552199355250908703741857860825747453134268514708674053063169096729958911573517856265546762758796704024833226986188349468172544431154875575839681879078187852677845239602020866700868933751762660886702063153980650255353156728481033895405020721259468075129480755550309040863413031863567449309216126137832003265001103057565160308933046024565302178301921304788376325059697228587962180358111548105172833568402376633893153982545279271115134950030662589906698876261950117060621756409380844021385462175133295962290986289193062082878780607983428911502814490537481026845800752829891109858033672474882822846867284942400343296400561582321277698001827876817139630436885689356915650762676482228165330934814698076856520377377144874038398736826757709380376097714567268777758720365052958641153383898324917599165702745912057974693071438339184271144451101268588416722769518124204237415466816473213761245045241770025089956440580259091271380453881645675733657919029730767042994490335860499647829590346837471004845386427718316907266007472869158211696412175247948882914131192216060667099915769079494884012651641583120598443046299191031191495885472648176115603164762569983316898353962279513407493108443202237604146186071352148431430921256545106343915837281341747927599095506415648881532831880065313874673264770035072926045441705138132433595799521050467019844972025376649476341732646314517188752553876569843590688685778778707477080666114122806333729201329540523066458767686609692115644834983615768878602770873585553212271415437103086318765615878476208135782096749871759083917070280800664358272121046619287324667446226694364753297644505122750997555109773511700261995655932162962488522729463154101606905675852365325577862802208936552198055519837778242086886374919910919621622537777738192317550881852356762860296951598115063258640339605186824225324458804249608812823772652565167206634383054582034145957431764889411039518126742843229645364452276924216191000286903206809555487382418072655570531471968366410240193318293341246389333974958267160555430009041973559800561765272054822776753728997538327420863125362824522076352069610983280193609366566676464582907863579696399643668837995024130066649099257803592698937798434330653068983514203409799292450682234512401123630454428878428686557817893857280245205087424200718782861842233235669813329472912256122878321240270563282644245921838902618880670389030112251471690443985582264309520803385987093681291917041355478052120157024176928307894267171182581978986708929621327851102198776888338518321920964725959565068343205030444701870315103723091519416314571520133997290118465046366428284538476192321643275315362038195195629724365449803603595634475553879330375521464766232534261615551980882601222266944985740942590458574181596987993032130160502895063803526920735474508878378808286121007604150962651391677620183378300160844800327064564368560653569358398995603051431176858591826797094840694387528321257377313752562181561039944046082060647671394982640765540063149057082665324823484679557443404253138179498160170982931806997133986224827866305068230455156759034023732447010463158722168921426879646227085240353326980154387518943537577933633477286982840762931533380158902757508040929268924910140111499357596376818639631274576081223692441182191612805436640701240024037030882053193424291018922650833679930689103641972093559390304975547522415123573279909469853790094464192714648162576714412007448961508502778915893337792770395243759349796542322254148302249048916998202920476570150318695757748348274514011180014599976569940885866995901716420754965794689393623018424195628673199416112418151990563123439321733217784272828074756763707453277514517238602596278715463249438441524502751651870250376383488636208431397608792065160287846806583401611355865139479489085024045755030888060936021000465030215386938437860373578023569748345564922472682909628046060968975503370281692940854054295639525928879392751235697432562781155158428625354268484420687612308358338217350516465012739983848043404663376466555014478774897037416305645282279837825049168851429067262548413799993293482554932372906599861459425995563840114198064220276735071356970330366854682050168328451163405514054465875312246813963095256284923678083799582400422402093733997714574922072905894898452289190422285197032581867233383873567213655418227829730416309367908922307554891192576261423887929430363249119315760756605689888602361845088300434088600112806368772089851003076882149031408455631337107602679820953875098859753295278246176422377105574286936715317128305051476072779195164315517380246132004895546192799707157810568309598379729643226613776758979709348295846370162187947214766287318745306655725502139776438612099759349846811054730720894340046261812457145175980093410016803056730557388482652445956115019184308343939226928788334383595915603293856492105452261678005354198475042054992265655120900411404175202790320681095658433127713783021422335608296118202667148909953079854510550084441602139012398264848088469070601847682403979086082023830037955223207261681538982748652786406673473156985362233871883083663048399642358097275532530661288418281763843724595892220696471286374055852233042603324724510399712423814200489368724694515655777226106339627243897382397273288775437872429115318125909368268270091653068768385221143179461716005201234462697426327252929969710395296097764783276134456511526851189210844775272483213307902433133552422214393754283947947442930169564072533820824663511686302007535385319703781687702880775954091770422372959205943647072217579236885912173996987844573824314183641318708934609088307398006154946370959346513904301476047635983741294749229449358244427076745576554136035342128729734553414970615459798923935838873974198491789449156773299372367979919868290370172733614666858489092834911729301395631695496990295567261321150965227775083579954674207928345961683875864931792783568990255790890555453861477119184052489240724775303591719491095842345799392717082740844910802927149583267449668529886458801102873671067543813962266526064411228445917869315274890868369782409399795015274972700672375674345402172778698609946042032382198818061887231386634918669677967931953355036261588681104275381763232209204764769166607482737022953374271704103989775132210750265829908724665085650734040920497086255202366907777784221492634733242120895455852429299326214467094264525584999174648019948400555705366029918259667278728745723816392380585693071685643975259825153699802368924747909681462410723200223109090414769339497292571262597491910457728143549678278979921272985010571692065858844439444754691009665125677706900092354413124603168433186232726297126247423451375983731360719522577982769244579263727380420860580520882454155284825261308386878521671264255460591352138580097245548048873099391318561875629666765523428066034985625486414651115518080343708563712910796049652553116955356258131287214256630470974301385818168557492387321535917750353358686333583092004447921586666865198941292205279113723542815963989351931581501176078715395081805835006926698520101278849582337761895675780571934952673416783920380078501814382323579087354425048526235831449883589126908684648711126065383632555257667246692117826395694688032498203670437808475637756187515719901693695370749327525411693442172254764418716555522474110906229610993033356305640692168577413741306999902565804592598243503501451767934550208320013186046551297569692794867019802493489107741501280740862685747496941700689172895325691459260426619785328210337825687688267351245121965670917640071431206811209886654994381492327362780609758948793546795569030913181179526356916747345877913231113697678873327059232010891217735123111949711910614568241469300992299679398407013134144020976559706688164281604353572583432097213446278482760026707667155895191914072539641157916468712988101299934720067177829365959122091215050524478560254026684865634706457596235508923012118439466431179331576388952225151542346009527370562681242670760630314725602349336554959870129975972473027232384920785743453971052137696153092317761687063334601033741380281869395933135150098968128944232126166588143660743407349583180918217664856384003039334030045636709466744093916045453326792861169786073045568514066529160878066439964014572218723157506970547414929989725504310353608037827265963757277041217172429146440518172773569827633023723105533782715434211035426692583702352698416699614105347317147633366950938813346837827079635100767603993658171809581493515327074643865979346274569909950440245846690988328126509921384828696462836730956382319743238380786623782388167945793226854859587700858265657779053330586257878174009360581351477375875053499563938674765608765175041670998420522828896724134380742006836248614307318640889589139001233069600819355220962364933704277076802230063972376292679236922999739568487544579382048250092672321878435719578320527869249370554434207063218418320382719339724615829674167834275069025504948403260791606290033821711039486367829901777447991634389787237077494062512765600411207538396822326360465945781784136523339918848007869716175417011832692851118743025483271296885684696905025974149852021527258063566454555452982925874248763705212016835008168396822016295131557475851173069484238774798544699914432617724402344891964798775004210496663252898508579781014617983682212448883568169790030484797304244673478131628104070123069345430137077016599440393864653809370632916521886157730728827963921938006095721417954549255913020420793203593590585833299010150103262752118257231618253808522490081245051046315364355622939651217753798274059551331426073617453526746631946562545610257571141624660141963627600206818281272817043091596018603641266450744471809457718799076029054757301809255861830559770747327576257943055181719855058112139803788154176174390319131081252976268433049003457959504476987409947806085701499502121840201769876178561690580058960876201856141474471325206583839441472618766883778181270659422277502739281351316693238889684135869448663258137337293256324624493536609344231930209811895121545956374939119009320346844709974766141613277637942022577013829549644455140968550497807702857371211950833568677218685621643468431374437957260874688569890087032825084116457717115211319882714299192609760208430457875654407290588952229528919293946601105401856320876455885953807786914085836551976057195151110066940565386959552101493764327430669301498227260641699374008748697204656353218702628172897991174532965668311888045454359427200479011176232786351695171536770858872963419606060915753130994370794256389774655154920967043287674287665517403034069427376434227537027389138277132602482671284288038021116831656065576042325042987023783001511317413137971531816818419859158267139070951536276085923972480583070969042749102230955543999755512001370711225340629762747564904982724678947163525304255008665193937045344306085983979045623511460292522213714983479173101939042690267649679836413718762272145793462486048026035746682671612462868698835496349377182900620852075131111875344239982487844092580486613242984310231110219151478934549895386003565670412250474323819381653113984360291910840564195383959701535691905040633197725132138447546442546799910862916866639516439784575459840221275795063298690663527563447669192894518654133340067536033426766372355925686937723588170010770635116935881223840721747667069702013335407765759917991787535672661772498809927274809082713163563826261675116904642597728159406262959497344383423764617800939289429529142112238650830666707901813971318715776752129846647055608906687784998266253503430737953870884173458606211582737792473275800208347618672330521640530318955517254074068272655786109861926846822618387686556246381434473787823855353086653875558760573796145614725354218008947405023467897977173282563667180679855445755500212162365833720274064881697276006487773578592620925261035625398413927485313220280749735485278671097494428250030858169607502108765026682445588842870896003207810284579764966903359685623426236632848380306844585783876882451115028782165065264358303438091504260336919660920707918910334102174041533435576673123741559005975509014265251286570057141962768863759661967769164473787099695886902075477101813973365511350582274854055998517423745828557372190432563929464249502942466740410960119737562900644538505352269637463050328118686490824721207575884961827063388902016807616356338375573614181568924359636634128397848642681432662078117602283712449882668011546970481333310147852862785594048848476057458184270462580632937582028638874492960909345337770707105740807889967252382977710809251233731604087508895442998096529892810554986924506263908512335311959897721456222990072366728276219319446177029846555300064329711813050318455096443254561647329771715394772872061174989747140569488415616335183476780426028153037697566205613820270763016659920167655549213503656263377652446291912705704785798149887047666115507752459791356775351026227395031329131795592439565384362715152305173250886343655239412038680408626371698712235349826827411024387171411942890267138982651191400029401672340946760747705632805222540875714960177973015595480170328537605355398739648973992413276400815896553224994569152526108545567305678788696374547016529265753038883689494191037277765908830359501714835138836031876286850319454319487294286658402796856266079314792546088890594930267503100048925864498446890593537109565484173404964764454185567655917888275321630182434903753589116950133405839341366876731735413291398153452418728374131858669471537939305407419663049091506311878725470852823760611753387323563342622870110281783042848678059527463479799957738046379248118280951711229544563870923905882562086584620664840117602866368818896062117280094702521767727148174166150929291645824081475542927064489440894759811856706344584110932098764512529725170411908576137419862177369315199851666635683919953059062109945399439055738801795005415243585541216397767446198130853944875710182090741559330759839521886650772106758759650008999684627598468654194079665373771323894742574798413386856495824079684042807881321377980440867921741559610253005165364314813428922273449076055744302419430235514808001256392307591918982544723019563608193308156578703933650836538889038865109660268656082312407754590049342204092243280046300512017115494249559080687313151577464837508811675423555080952382642114061999943883711091627451080722097283318923545387667855354446749216257783072557889782385650410935674327406615294851878142919966574099862120021114081907750573741075908032864456750276508849457866466832149035085722711353860710451814733085505789223380773460765953121016600369021826804888340902529624717985106260977258252377734717775858734340043981507336635827001984707404660315615019064202605095438301433911358594913129304536007402995459643867085259727604312100894767310697975816339207855071122629887249947019621060300900505436658007963613085649104150764333034159298519440203020641217996382562658751177012285032312685358607112458530337373098119539696709543062437348926843573444126839258325070991119648927744111103391195570840390732034252792567470416687044100129283634727733618814952440012138733560599046363468824366773491971350229452043609928840845950077664410208264769126506601728592436283091583625403435190249684241507682895870661223177398540156309097385890416189517905893799791170770025939414791384928554647028587526537558699171064090721312824778825374955060934027518236831055905454154036492804710085017429438130911376091756821409644015504813514956497825033337492461939966105916200914635085126468204785370642504509843284195709750558329326765939845583263004827780058268894852963496107910395860224807015691421957216846716929560545040779630789578652388034630715378458405631384831330042392319236111918554359127547108404493022993435484685500564302429016073382705036770569845418256710881612211973808052300299435957945277344727221382789251168386820767306924433207828669284570716644054758030981307128137702335304684951408100485040147731530078588439799942138525146910954248942628262311737377510383504437388811419709915941894529490021603125243897736429568424938312515284682546562679926984295783121537779510672905208022296995263491128062410329932833659476338646880901953426803517040040043523518441299933218016528145695268283936856405819503235377322915006967280428505560672230645428806525812105325184015210625046632807515200119629716031640257687008372718960384195749885559978011601159599602938836366447292081524036436220328576962569215719124463981445227836313055447690890063305253067089199372685939744584703975825723686171294528008450973061179387408096909566796591840811704195733477744554288539431156112339162641221143525027820427253911647752692719206569035114571608773951693720165082063275223875176807141260889893055923044074977343898705952350152519850135896877848545932514080110306445139376428976747555651095905191592894293645616717925164606881885627531398755403957911612890935839269876744173638675298304700302001782974202786963251291748983025552672655236073841359895683791709089414190793989758179668808027757299400904720117400546523373304619933922558100926609103630942526999498650558660002546203499843178329129431782560607885272231209585256892228176586128804187283867099044405231667519815295510037903681996398148957518068181102269859114067243584920927516226208949673107668596097899799278369304072664477009633422866540317218496509345399775537646057660886962509779113006456775819026808697038437484158607473936538652604577369738521649789689733521294420503249620158466037315060835931100621047704562431818619429763778043651872019400107375575197564390495480494350606405293410748679627916620724098859729655013768303326637509221185539897820114676794156361793302919328025845043017912465901707760956559272378768596001897743478348869977786412919658237089594455423685023379033604020053703094368916125728578563586438731842357737249860673948214477347836209986103492301336695220292648089035267155550400110657472771488134085542530205590581012882264864283311258404888977815145939572502760218597615285271429234659202358909033249439713191479929410048228445794576074301605566928920366911055943654393985745865625052292458980803680098300392409014847831107782811312042336736694113401088531248064579188235870708806394913676976010112813622995180582231159851982708567021227189643279005415511474026080778849561405554281649231338513151721000706601477795017689299156377088398128272380748864779212025514069841856299011811850107542030109719019867664175015017390326833433154344618991566537204374384001423449404917358707553617073642524202642325625924080654129258531947066929174283273248566348947741534926489130221707401898921125051167547926064089653855000325916937099112589448538993606252752965876611064186549642374735249165943658700558775720307026471231342344813181682314379131325389855356182635953334061019063691611844019194847456101142557859008423089187164526439346375728028086654641050660064275602778766633160600400155804013006407715535026581713408706317197639817328274240591095548304609943594491490739338125788586080945239173435707031705846820762438240991332036119394823728419302113620904066509311097098184547450504125965400052532101856639590080742152835874861516261522749301058949981313003000131952548288457533165211003276804504189517610263803117178939829388901388034131959605742696346429269156525377781368556581795409930414607256624946076616688704571255260693522158316378457767527429919244184331022362465256016665046638458695366069363658274686986078826457520257175825851816338858994697223278642842368984110565984436214450586942849794468783148904077827182649863236771229755592073889848114933579735551444486966070008468208722364073030317228021721861031164177508081306907194310827521686837365583360611325303853915602349437236813032102522650497286018256364359307170638661957029941567409005069667717046951266536478448626630833839029373820824308341766472912502443298052442856655900519707776328555824298830362950604475789784906794981079971322012502424970008798900355855858629034376305295971108320048711005074606490670912711256639868131655834308010353328223687342856884955395427605091438762558931869627238540867403681834817823110156959986406099980761780283504618452279590182387848037341572123288579960179309770828363215509261425717832298525356498782722078751813476540360964949867436839798259721860087024695298986899118434829222417496823852750351616032671865075197500983763879785368213032297688884126644314856523525615278746601295543605408690752066399979018370006739895316694263300209183672523194737766803502241498106632488163741627811370565983128251754525342511241898277451896062828427996518534286094248142150380004750923123139821799429181415336486819296751823567474818360443954689182364431363730676946989538465449210015092587021793149060814806756972303922879418538033479874552929304759231708765893137537514970962812040059191230502727964242859592991296282938911611804578818829040488791463267723556369219702843155313000303219536888199034340539211008849172679250036274785180321465073875449659862595433985057862841742937542556250177101391916221637647555854418635619883831537262428917679454914888910466070904685370301864370934817758454093730784947919021549051614548523685203330178721582575637438399523368917333091379540728064810796494661235557524302138787571085536955854675628866674735518338005570995148686753374558253161704867715359732028026339540927889094261862825209232966372314248335289469013793851548726996861160924611331795268046076799423314554078927458911496418380710690287941843542420999939746552925701098514231509349396896869377915325795839687096156218311604218783606971346916432631416976173199903367005806435326848793286448586444563631748268787949699782286467678862339289133741719840417123404698158130425635658798273679600198489756582518024290959226521542418562307501952954151118391495800137174552439422387854495000206955420170821936674325733019109592928632665994346438898541125930701039138215623061554248025843266741366140158677392286296014582909815233034236111111039923299707281224983405555698558878845164158736247430881659119934727417041500601395183024887507756373859937835893226148758863059975434773881942217158494833736618408388296136399990340919399820832271721925994882750061798545231047195861101746091157019920397413685108546960028770110000448712765754096157720784229665005857505984525878649050015352156371401224504082566930100640305602865544095522713970486690200653317688582582956750233575989607401888991759292285356409271736700017589569173820770246110507122112192311203261489585225124410949000319664957091011509426177818123188579894973833801060098452088391875226859172340867722669431673727084404581796840574765249190189954514328956111082240865644825939614734294316222438743098576351446512374591889214856158967380942620787498362537525094920426657487171717514016364888680743962126586132056140089007384492150987999328043338438971664670906588692739287139711698009032217921363078723792836838457961043252043653473417004449078309670980642678101545941180557519346196416744502412287972072850525559446338674730771599611400081921556994785702323497783114661684022411045783637287026780963940557468143364362811692572595761181595520258495017990317830324423386482349075460261165627641971585842691659437330002781394087075310371066218644109373902024927417793134789694051394703921053486573811453301202373371457467221722426792603412860461540962854960706746161236168560656270005520019029331988837318239426926224057407920226556382024399612046900446860603503630682901149470067335889015342692735360456397249316769621684987400013979837795208432978604835619188116496670452951607486624468015994303432485027625049745432203158368692117267924721485093167160496612101064722852357852825020918656962013543175008133230991576369355305396926119532855861712421476571828627679789444907363686577897675543346704735024921016292191735965522794818557819411518015568619593573039154016722470756852355886115137725734270301225612321021790936433453367642006153970195728841936725534361398698893610277510870702830250284775653501088669912256190491165124522788101437183563552420967538181222065026882895302004102300771272175436618624750263912398895126068811837389374050031006334416530880390693807994693914669521628087428960286678983742780284008650227035209888676971412434004453857485117539388015933594373591956253360042372756625857619651429852619517897920777950092950479072891977076853190270836923400886956029397029780520193415299127520772850326972502913076117545762952381590121483484506110012338248731787273757244142667645126928521824078444629361914328463148934858212558976927043311260564368802557359312788396313450837235661641809207031509678735975658470103168997387530907567908983057633520333454680112468417703833424257456776565516838340413095573366057584719598663323917411384617089064255712436755377463736358659652489042370585510505406533492376470168306363290302320987763947876670394912696460764247729030927010541522883590026162501998685948882101511151778012792007691697382897754422952608435748073407754696408358028565576721456948659548218580066027060715465097943222573004847700582905556266578229206781622478749083099905661594642387026191348657202082825592148179631974376424817715819044372758854591665678138823839778695239216436881936535042387289965764942221434316210420014541405230963119973151195157274938077028549849504209364595283536807458581634203639910433383746856015139724884168619947386798101477747972487926175084297437786883343617262196689370355982730829917726465790364987515991029607558754668682170700150488122980875556015898743784355123943521382055685119065219829822661306678133330800871230921935038440443243737146671988693830086133672692988820211613761245067818103184356711320599229762156148033373186117575972525869803606953652380880152655300382430911774592676373078589489284704346466819525274122306020319023745089710278320742498840299109354012047409415247494948600925179682927547163106995584632109130830591006124074887736665868806691016255336336002797910371898134395534437824642055641549944913411092222598027787336394277688098073207237995598357387243976408699745633438023385857010404133535069860337982586724886273025199366123279456968721978401738996367050469109371811166378410656123520746261149553341975263085034345941962776566750064155567386568823552397014271713668869653337060778725202314961643773579524694057351370600991975777673524814435216743668108437203917010860843147147970256433249895479828271201517076028392105671246091484132473575480282439601989152845335365692365042416013284613020219397273326147963344315422883325343407397328002321025503050853247023132178690273339459130891132715856963369531513513759729722187854106373038344362174785394445459715832109124743997877947920111992059980462095355225892282834062207062263500053384791985020532794049715168337326648258022831079265514772776246756027975889878880742692635968638555423260826583565671820447269394025218323867994041079377253255414048523310197741190476058846187687464305795987679990964698656372191828589041330949805957394627859019944183493007074149438142678728541130316264878737470527096105477599107857591163603404321010343749277359249325002011996821326015685301133280872407563347993844718978798077216286420768401238695358264618623796423873944981208615275422008143434028146722471895382769260705312171705778448391779051986136258333613786214997030046837331660406236487173233313676516601164153064681551096005035065160402357578855364822115103999233954556949229902372856092393215543793103136619141306416258924083567105588779754055579621714934977595366747667926543185380003289188101691598162122657087870986967510173297135665993176200793284743886607819011848651353322000570053105213367624399190483892996585303481066489360201888703541879174618691871535220505823347953459952677283900094440549470275748674389991449788426627398102655999185276344927788686652760477299774373250470368560015984958188301871008343132176666361678650319848109847509694616425128708229394420029962041356824302789004321157834062284153273475882292835984308282299959130543670340983876201563874769216913610873915265967259327734265826268005485968727990055135783678091112349605117488947360699291904111124114102735496151128426376443084430842294433271278412416344228247734421405358762462588568754003665336466139610525634750341610803813548930859047675008419264721693776397134306181148296828057886140458523035395261156438237980801157425164600615190015393053097269042210793852471847798112201325628972722957781081135468328111689269384143840858513139271776773888968819301630254591521552065317359133440932019546689394347600921841489577780133299781218391257162185729803892144568025089994787471878649751454974692591100786093719666243377745937846815921573647255445583376965970185305583981728651893778017207815984642025193614636352198447143368429756976876281507528541571686779544994112855404228506607184114067146398880152871282140263125157046420559630033965736838892125156987622347076475293795387003016391941332773471763551764452223614210728675739560624652944511349467589550333765892006872550067128497986383532093752063992942920868108960112301083758392236960867502970966860479020762073175643140592148952304313217329841545217571142432401471957555522642927007112747245478441325084774813232718381282414199955382661255041860328062566082928333508046061037871801467640745463507042758276476980824910063383424838799431747102492694229679274098469632645765392980268141568936595070034893726025659446048108622070691504453503739894720138959894002042175676171055545615321422491129478972032321413802114915862574504953610448669278035675097038951267862494221475329005031174162452903300363117843918636637259331249335596861424406032087193824341660567092088279055172312137413341619485856694106252828040655951090308069729453178100636485095086271220273098987328803817936003181238985071752149225059845405479630730814457921579273445224617356007429843145694377997222156116223757460428467527022989412274864429461526856197660521800953517884592106259210602151507036239056287567652513926832572509803887914234747354313466625725110405025277480583427472543426633984343340450856936952230549576642308766315196374370489619910001174408413387963377678916696714316383026879215398549618206543072862472044752591153683114227350287187904554015662201248166156307786215439249850083726029310784426784326206607399604376425941219274814419993754901827169139252108843119331020476220234630870061500285607765345002668688743029755318963920013534579844845471219826832675866940131765408494174300411200518821100042863781098031696782098582247351245180186972490872311918557710406102748495900188622560225483284486603767060591120963005643483772697063834141335830846297988785613498856499512650149876224964917616246663104559634831441032323743852863644112166665499505532973509571418484659106230857635721333068776826023561468284518463415772342426840558436305007880887447401077429096448865239352133817553448973513863490101338361734239443974861137196003266473112879720826329302241707011840337978352250177763797629937490679724154309257449274999257981524958914092102740503863264908644858573485671936179181568011281310668011370333627071750241030642392121419816974023139220707766326479311026031761840243795651047468760181982647304579553694024412179305826716637163229471328660697441469945274548731971366016184685683211456110484270925267018169817210550913658855892226758574771805913285513747485653624121519025054902026614514985976011580274272689714691993737725509653361877437592030206106257699518090787146416791843175443822599741284943800337868448123472507471779130279906496316751563573315312296956175624332870589863309646900739220830824899695006475909926198966138140755177832856868021971404860515253049208189686642226967661174597884804320282356110568911846248004966706302976330736845276643286589761644146901579316341630288173951721295571279220116411005314927530292663440213627588606817444740722618552658260539996075756104242645593215800785676772848638200527200671898452024398259083068045586635723724866264834883846195565664851591016605436805770293808282548851849483396246242290996659443502471146872450358746818353708642725597401627313984627754258530222971680120416281006957952008693798164376634795340767682601071769262847878809510736932939717554843880324310162449192566595389036375114013957668788718876941973064328941495315555155760863950708743044109985034833750481369432016513384008257345856652210125678900849248894812685885599530873985917986948020721197574601273395858042397936994795543197058162393621054794679943545457973985740169109601828089889148736454248614822457279399622601849550146458619207186298616891285363395098923627402138239443897238525509158885826793776337000022014068685330099249627130191157082681705197116786051373358749227553399907837017695691739989579202232174814329264932282472591952966920089028414918262646645702256274742251272334038649049892571993129890873296707825084288616424483131375603305048714313094999554213539032257893083075023146012272558656120836471639996468965694533822184245927986323517544570375660036175604537167320934076009585030927998998930558097539546162834865824153195285009298590660095668431287236201619772316737839165706293163534398076238991381455545374861329231341408674892793106655625471203248393687713097912615185525796082935205996153631658443993602320815811528788853382845995733481035415783158262731918391791488377085840271402222467960807133090459878359606648935088749418574886390344810009817203676949741461092336076741142759572397228028712712670965235830313896091930442649895494152172351899200098746971086884970586883607300279431080729396032283459217181466203816964224459978995013375566821528888509898404070177080804116074817724293374995559370997061352843223951540620935385860719327765125888044328282714348582291935133941939385893919199924685493482822015521794019167909204166765546194407452693860516572078263896795297800375009763078650533596700736898660268970001291173094238192803212817573383664145461025020246682175351249017218933045013937683271024876796347774120675351022500211994671007211026910168401223454969448026435386619421709687849929641453717177495866067261500583094524886782232292003324453864213112801028313269633009318616008754098481129290977840091432286043168201177759777164363523250623567495080619130047809304115115451819258244572866279195083902024737031617501564544226824893693579466034397383823239538073244296374342831536269034508024323005132582388837841477770212234773628908960354746051924470345773229999026667402507222435515721528884454212849406121962890871607330285550204353005124851574241491910649602307370884487082600840201543191758364236563389833042243317306677641300842355918398834137649324981074528978880294669406569084920115778966162083804327524895003823886980040330417232552980976255756987830360167274516915178423096637012696394584957975223420492025806718700838163240550849514089014133055819832409067100712076177906018459827661371784093681584944637753732468728409182720739601814026684909986357141635675961298551671720502749260409426571018235436186174979660014276117301026685223176087737420788135740940249020493543964942355266587618562076860725206034900077744408054600826344398675470930499224642088742635631822353686927199896227570003665005024008383377455904476027933115932327582789722439817810669649331989523140902243501874038543943784259668625810486868313123316916010990763118790372505870655245216940875021234166253090440139166636994182689815484216191608582935734388514959235651660432476217680320884945090746862384188041901747625376474692685105586889740869163140657134946760009857993867922474898631472596206338930967314054897900712523336522272436830516629842506033842442749110982801400743323921310320190160282594975262737033329557923816836600184494410404881621413153171574155363732337273367490699055901378666120350872832805260870979567746160933738802485412357989793203792492589082760243651743393976881254194346661825322062666447046129022014442425475600157884015011018962732603481420767997736360894645470454926374340041208737175288982825654447033516426886635455052171835041506089989750183064072840144836163101435743282945203117793660690506000011198720854390364263725244922459336895518740739477652025843941022242945048462696377598806721057342186265337055723466205746989600278128367461898350290241196438182967709833403631752950675679087691860395243408293884539068283368977324542903336245633131316637748454912753772481980997550306147033971743349658547163284432730525997901604459190877492421124524844561968844945768304527435938717103643112087306884149129486831792366909410300281776629683530197868836793010009457750159500866802503034214658088110986410153676779433648605397566086060874587462041369265728804397735330278581253120131154321367260394484234950744554310303110008245339813845841746986517015272928523415152487544196289038822936757056850266619894343475835501034898060596904371943569976577263274413775693224978317836527100778086688644131448821453696563237660269156852089145119689589598362453338501374888236527494977974486475332363207706902566732422058714225563473224492008790662580688511814768219757795122763973737988538253995855728750590199034055411249252623085597681056767549989914916682191860125994386591456628813118306554565177476289659276753943472736106473388880056269996738777754916376565584026642642736245258849440146778639772232612639284678503326213428119566213572513789828541009542104899165499171198054401841163077266870539821023821643680356881442016347948597041334528715268523094552676213521860958881169149144335902193526783058280424942693744911411032436085290213042120804887094713332785344609968401321535251896838054178007852898951667023465310871795171572622248524468443597367478785514877978092764976552173691453568333124123638920659349382298446617723202335496155188669918510062753489344233013354531460255513467204346212120301388826283532539600027189686193071532655477013741060692352172774305648849320130037139049002663376981360333450348947735334931951790376840066911286356745044469751128996752566848009446767046329552268455147900601105959163801632040936718546113995142598516633701369219125100189299347888201294231418814036602949707248440987495500741830752308331463342983591348413943803515848894039041049562288611245390789375080359535719066815190755217378534545227354496781410535925969053350405049548855227292853448206021533040275711112050118823268187146052584264069032816049160326191588626192200559102458457319928547505131672172827300939191547809626723330955042265096710389336085009779821156990432423653449984789492349832607333384385266782648315473633171451483156822005835055747812548012422278090048043276124356769118945640637934091763743588705354243823986856625212796781668736574251928064839699614308370253929211114923668147228633221093579359833147018278604555280320776692755232982259729674564736291710952746836727138825886891837110896990102416015727614049954892233813912452956613529489063645110142042602879371009780259624966471882455266141271726416573839072822105918881797969797791755490783009825903913359041488031998255501152424934636575908680502430084764994689365765338879052531728656037398518285981804558779016607769752956788742572599804473329708964235678676831487661363515611805934729094542811428352383674979341185272991900035763412394874902483414429839641139529926439672162515845121858814642604346996732295020423414427747311323675333502313318968733099942507733589849683126768317300291158607696596414424462917508342035399649723273856960649993896031939138167834783629536714331223973517233644726200372095252381220618958839736715388776935753085513321413020304821989133828716337570156297521603419604413251855984370553174139364092866945123070585002683910827371338316971181604073533031276011299129814386868719532947706623830027426816403956585231705632723333729040536671336365670000696682472769898860850743763254880752906113035886432569755944250288681095162520677328949813528206253734716251290450287195131962018014178000422643802801886325998889821048421530337129056111846867783711110683554290770574651268999166372493908382306489004348505980171952506823372523775810531900691620063938244858016179837064023510434263657693025217310363913395856666652035887431481419938001407865737565649970433425761263983200400801174297948095817822134717775366491190237380927727048414982470142382198060651932643504684882964034202980272920998748564199496818446852712805438635527655825265425087449336761541778697720907803925647970998002633808101344198192607919602395811718321304907920293515418194048092609892392973681854259810379414665754505536388498815380006300450154952344524818042668056562765817557517192799324569596154581478287908084838583287853516249601505986503873961342567463438251903242158044561822097367858682124353806000522748817943001969642762397665622461495218522939648176248524570426723458221745000525645537341807180372897566940255556364375612220253382400117597180817414932837877304991677424772560417916828961886733819820159068037056728479961836204569418502688134137383726916844799867258920428006214200228863985026387773135376027068884877364796741683300341762248071391222461330971700868869752159538660002510521961933426836124339527344255614711973785221714292146014421151325681075435894893436606342900121453639680024932312995763189368794055692307228529588940984352282124025133767774336477759606980255361874971076640969128301369536379974097554266827439161054101520497333214487781073262620676349563257199025323086943068289528475021091755254120214778202171413801366373734322393253934455213677961447713605405053452499614911391462520066682157057385269484482427761366767131366653802268385525941977018740448538877291422616688759115123001643366164562051477029973081652601834196499326076579810725188087962677712517213422363827331826455837731342724810716526999855772128008972027550869305181854316659678433703219752049070979050696021287666089953427657985536287732322719507132972701099137434879136241194703012786908836468032087884213969579392010964314980919913873025755293706542058070978396749923543943428476764361686934462438726778010428448153188827041254579672575219139200256716380859318005892913769828084806288686637890821701820246254668952356788814950865321890360207090823554461645468909994766275990321424533036630335857304234968613956431901164650139934459667328383990787760406127620660996207760570280627069441209288224473594888947144771300126189698254951975744386131531228157210374581917487654813065718905503990336507061558413970869815166157409476795317551071980455738473883914140770014598262881976473478137625679053653479757156714845268427493353280487880698477302482681651590277077948387890223342073821209347713115868228135939772714027382694018767108705254959517843144719638285125144179512568974263459078928701227727995839050696822641372170805204755860367365905292556987041519767022488292943582402251938050673686858267497650017363762554508182812581524008378400819548460505861293771319020926193571719590826961602747660083310682666998734420840194020779913625695043686154946946435893142254275860370384121001866433276051358812552986051960734616434500894028475066254835608150225944951378825013344679915965001424985747740419179936384307095300174630118625263083373166437680291645713071133794186207178960681181260274920139707633071646753711229914839841103214819572890542966505099564683629244303552442577003609383137723718655875561305246112322712120828935910039399782638265600833054629762715046330632845424250648504175042048812518691130818573082196161497171011089971132236753503946962762788260946414979930818313427215942726742230469757639068544256635387552980440611141553652086796668621596690266770462446896054591369887233826159738434731765610729891306706610955848960863005289383093081585839307177430051557072809234158816001899507451744899127098568775400135124211462411369316212095111280838033860161860825021256982032989986538629714457335951539175818102443097216846638143859104673833583458331557046542944344373487607839217909754876633258080497552480305971521384445396823437549700303052541606997239610411025454754307825257491653320755685625867758705109014730485339596728690685269229664101972831270150396656113167495322091163812125415909376671246381595051702867581142536935654354009238605249912657215581576259155628361791560387653322071818860299893977500954055493083437344475518599338914947010101007818793601095379558899023858748916456718954789050904564998737550934831543212195876669553134036270677645093822449509801423337214427560129042041320284223677366426766352157337888948142460662005180814785349415317478564967105345244144629017894236925747032928453889805292216610418285256591818662118141172883561571779164362343083493506880001955817766362436353098466559331931890546146199325292380368370106142293494049632713091094353579600846299455921303479632948603340755567914190432776090022969043488450212899644298679642709859705856417027766532992759468683199530263720579548115074185030303613915485321185091873968551829234912495909481971506517300015399583593945954715667053622583624344666206352526285882167595472526213222912213090699218270198791904029424591268307716736611006254995737702926708407121477926122781765500351220694849548827440654406600055048214387608465888885812185366205800671844357249456085189824017756006942075969495280163089672944356541520257930019889165091575733519940688450299372767964965461923621120470917890125065845573855607036080219347831028106524585704977702874946509846450142103754484373434739958552259917075152031185543142447488415806478834637147862168247478595012372913493537799122301961528345644799390711179585959056208809519530485281191450262180946767324815861240033473439165098332498764117832005992719641704802095993624185698329079332404316808614009421417610774555809572936099037410026999951984658594520255267651539103989882724105082391634755392004063679421672201172587974873135176340172927952091945380234750474060031754990851034434267068682997995138669350536576782230788100069241587183866365931712191907552028589496219896563300161862565488509377358958888956830608513501508734646773016341952245718285973814319564507399985466802199356571655760056959247758287088063099127513390035217259184835376140335259486419098892848655490438917904941580564426878505376965075016317679352157536381795150232129440587108943744930562887696901126930157967129989369023173910845438117836631831891559673085511261297929629896125443521201576467362074421085984458162238033729722872002182070389685153220690600139358287884667095032068325289566051857183124343068604113769458264977283779325944216916388493990167158592166550451862912764315312234780436047470517336586380999783983383124939789912710317066262682266269719631845140875448145523248793239017734029438885826152722025886763425810007305912561298406101224285966147599251342786980072403451437306484368099347482278807992846826051360711597222312111100928584838087183450272273270763314340048215217995864638626688534147535961515464772170388119563724016891664163354027350645081535811198545270878615535396413478940218402223141544518568557172818478888524219273304424517686202238301764875160458712085860946403084319569569518461750608754945032582731265505771520707052625974156512961513718427379914949987768903559625045849520334741645738037573038012495783720926727197980395745972511874652675774432783819517061909338882088951943506929769785918356544712350475928154912290604541830755479846391274541387271074424214119488968943439237644280600883611605900057488651602897196947962272940725368703212153303707788442598029008822533330719865442091401567635149989690770355593707599859883532538911654870542244988312680145104299124537383232674644877621394017063033379371157791685918361437149923001327167033253793084705624067455159701139329098479100508376344035258875215094011420121914020075117409656666530358153719466897067988271039179279960621784964361198035719112912291735673468102488803350309111428023964026343638657638831694910308417875677718880452964290363323119712847112772652215233153175843984074552163899240398284918451341948037879466337569257912078846021685712795305154448974298444738304554443186147419249920040981158518634721160131342337659492424033600756910865199317709088029263024413896307330088230800968594114077965794841932291878928731743720308188633736499019362687314805511050370388308113476453014181688130571486397186478938795425345292072134554550788650620503551339510601282888882608533175266531550649813161924309311281805841682547660951886318663542349675058379303520471613777838934603381677482166098914689917154662537505236072116470026101267015485847745570830337556966097289395701368079122473803394798015928270961418216408752080606904567365306917271918237715083659484612195121807092524294753505606008947286348046979228266648511825521750204357988718370203711550556995916774871795138908235360068179595722551919113913364995041952950292686240401944878100792515134927058077584204821361817077759158189475063245134697867899169091047220376404920744571357396713608395458801633635954602528644634944996155057450997439530535396346925035451638367360039031211501407209478731977131057878283557469883520680245664078046872060213263813124911226897828706247434572252705089510135378065985365993664970078093873833792927619429948316470819095518636525486676782894370376463818672980054665489982458891693925830988107813851696964671406130109349023082803065143579687063528308420727268609689692560020335967331048643337767774473312367626372387487152433120967505854818631607916752978335111046948781912328785750693511937242738055371562606760102690246666675618854866222645046788914155303866389133294460661503955570959874719226081543262641736979465866794983858647238892707629743317152617618924682573712854427796115558100493891991270291053913810281191440822247087314144107545291571141259414391261472004952237482254055654324465254064906057267756300869564253497563276402619634156950479348934894174458652219862632043398786724145902298014817694752743606302685597883054786348739410193342758606304492182708449269111223731606696758624849408517892106645071466171273023615525067427789024759310319443164380142706180010146023041926637112469148395467496201591222430000396278328663304927799612489223953527129228108014505636858238049318630531507377226649789653325493925307803364455619225748384694545619670886010892625881457792011290487185624515350591112431959332925797071200328168274528782082235482557927994347150059421378298139269060400733047309763295610971275394591085255781263355706870124694785010825614877824700927502203505659496792593622302316722377592231404777407165618558636182003388606538441803810313692810271731875762813441128338857321916187383291496552927397632697880432080283292501583356046137707441729718466294089545770030491512552199167280997960412311583637727137760997960025189800586537717482501225708582640581097037232032570205194834510590464936922834730893816793911274001050002557006424592058821629979545496982347007885206716882079746492246155813964122822592687625958039538959434968687559508458597422029269557895999059140675967616637042287333798019870503183309055941102503688721339411116259973913336571932974925325050485285074744766389257777883044056611023743670230629817712689765719556760095487792879940935078708216830162735705967946236102811123292881934117087938351648483241325224757269666638793017657729364413768421333853937645664575771143027242711525551122546654418445184693243016395894580712007340576518349682596248013095193184127424537917144716105964765671567119445222070760930711008099638261102290764876007328220988996308964082076769714167870985124150091910166040711080324768701131676384159707885875604877565762018193738897747797830577199236482449053722606446413411584165159234703761340583976089310780270455686513698428720864072154594016147252299207963250942187244960620224628923244661416386965026609099509441591854143491698138423192096022664695280875926980859782910382841993719783920498741531651496567774209664553609836823585107728573693280112624286641657348279955743757612159349290423782002410449107059181225464674495202666852984838093459813903814157616898795719900095352349362453722661605865183233169040426845100043909835404696159575182735696326143369873845634568531735717213991547277978509326928984815713064669855410469857371139216325614338997302372023524881051629892086956857738059656973392650609123053979369707372263710228126117044407722256372097545939122465324219188342855082868531020489353526058623670979828648754998424778498151165878181131166081076856762311666731984781623879085180405227774269870324689028597830849936207711551235052848632888225904502032287654877246807254604724313291664361870553698401037203465733189074504071345763116363103500076973457330053131213998703440539890232922082933792361177570924395292131777030105702967255597177102749201239738764692217232651564104572731097716338328834963390529296048064345700369885295047770283598967217116843286427946352329534885309318149804439245434000729200376223571312829717120417927884990587287585276525033440020050952607843313430673506570490051464951643009088831096776427626219416695853447124400103582384239908567347305170989004108457288579946347449782559843463786257467959701644347262329417087770293548897659793647885284870381032295329348766518470096231485016333658872774043437070942449901874988692426466356946417665861829280161553322204443504419266631975775304994500922392812678042976314837285118066706010637763303213865601350825287736980206845495437419975410304084771691599951093171024877742856997376174482953890018666823684205324068761583028454951071675652194241815539502229147133104940145705195475630361604828923541802741099589513137268255042868699462568686013845668987665532911591373744638782176816483908508501498232898178399795956640679246849064220064996168970880845422901928952958668788656383396954484389113152614373859121492689809305403975515757512802967191020907073406224540715836956337562105503627714282895896551328911472822877264328064402290013671933755609214173159233888600344985930123385875740103216027922344338901819771290966406449505555577379361261569784699098786689049234851216206951871922577723346253592612310923807654675148661676887263405833671564145415448621891230360042209968969130555338582255532729952733254820831278017242925232694831518577970555177012009663182639652453024949413327857387534068789834903292059816010306996276546545826395170353197571467878499590463349092130331551915200762224593114302338712966583591215695638934282734722717119803412350165933288003443839598383945878272717899816030203330036534032755435231073375677733583459297623531162789368593540177647593001667095174801187760883475215777410860075159594591829682195274482571205448692073618637380652082112100052434328258486738200001295395086746965999024448695123356219067469120040155968934594504164728587260253660729149456235160029127300906023800155439091963985925140949948141606646244985205092331242574959478015905992326479256026041010384131193812659277090594595082537276533962501468072675503643899338321631095046837431439202249078598686224453943572348115563666581516112032298757672215171489278955800005028310180373449435381583408609441437788819944812307527923175394740117639311163019878227277520167405767388734208244268320880748512255659869879814335909044392246138088871468750510384016842057031198042714483644297391879457688154321627562369058109444695002618041630733756353121007720599228712511897830734565321313160906031503286743250338957094775675588325264770174324409259613320281921624071501360655273658488221780914782962352450718406008659410666590871620323012310047431351371439339680550323974526518374819473930384437571447752234736833082862078117749018021652257272644359172528175594869115037613222710286704845526664471037891349987872003131075604730085554246422843411873142628190111432658915721920609012397258770356797539314079227462590780270587089683105537043564355474149105637098856111296285761321610407121299713934479128371224039183279621820233581868021588428569146702693239897693858785342042091222554824868282745189185175924227635101045665551719748323610671006550135815403894682735382695843563796547573479071088628692341388156686180498497493064627591523305262036847849912342332466419881222760510109786417585191699260160192366666263716195085594670888409412458753026963856776753228146568560535597449427656867368656112809865154670541433560114630063524631212133454804070094645354284232297931185167741055651521507988069054750712879485714882467048244964551904247663170144586570720679620259600499637184334251171204154644016035866024561285641106204541306856498926012720960983608879204809713085657885677363019988726521910317785478301459491295383765693236712222698966566974467096658942195981202918922486429474631382554459718402571796750675415209829910296679920668198940799334970963100828521755300099976622433268518477335923750112917232762552856213075746339196234938092353558167822830165812611502912093250645836623653526037386201813328239809927584137097162555629999967109495854992025390364485983846464696782296432292498624747783604611252045536152407873381079320003908471772724202772307666933743492866172241128550487053764897629947416326706315515680158824090505504439965157129017549501122242177237753954342883189170907124225618782389167869527951194518061241567440375546865532396770880305608880890223341625120020925753277416473245975397659310338926168456157447418068478608481725948165250999132690910585081598459045310656934642810641144868650990697264330716686452657444088601019482964036381521833972771953153241729921200116376590640748866780247783658711026003652893256047036807684230967639048584290833354943699408048659815410901273153547829585421295937382701793392850068470040236988072087180071179295837756305256261173138794435047343632422234212200805892811185610409078525527521836630840973142872344889337218966952239059543770212071882270229512926487670923718376372001901099590525118919405963595442308379156803914597300906056869137897914141060120480938810094899789453240717402008080600664185047519747646909731929451632000464011754149277941133897713563250887005428605677784549286830219917000214827686161870730778756917379403109278315745997246388319897951120717876467261645007782798104198026101982389987052960509183488719328128677904667704557143298982091149781363337988295175219026734676906314588538980903172789606071686206178379730487703140395408137833068086545024321149206990080765942410960699015667103330649061066982820620781409959259007492165317747485467898885772277199309265706925583109178536897767341274402751289267036212851479482217781696649664460738727001695934667043442086973020036769896593905457698343146895320848449303813270571074137850366702583206040734581277178247987119094252732425802397943166592457808486899762481893334225431081698206378446485287231538865136244205214286375677311133319278346467089276712029907960220165103939693323200516154752481283528151036147063752789797949579052193950954852112800243482471117898962372352228323471901044941045292371295179726994406967940841016695289933060854678835808045863461224889265393560334302752328737086483955902970087436999361651403962710773808464636272360701208797186403314669058482309117236703159371392840079885607632079471158886055313599157668554101877184454705188765543042616840088516647553983768216355063759799408278697608494206953603110351827039650951194216061557292505762832855507587741648081683213584662389186862293001729003015165885069684732497517844686084372763905576370657063608431877657297057809855657417565550934718839852279109567800513261282249370186954352124083190040129504515443964021990359122060902058411750745980252790688057812777341015782639880256804168091617130799406323363946046405613040256545857533661354099803891938346463745374526425562759691260751408062931165994303973285440750194754399397671543415557709408731585337771756272989090575212649059700958400841480117171726803512312992124481618995839117738153014024290201047652810984450251218274549563478102430578525803764278245500357958680946409314166080277487229017051162858807895647120459492073707503269532971198482245795288494222319368852858697819399401775782782494656223689006619273781908247418893653681376737721638601392719234583519506434397527592795026276581427924552724394258598063098065648581311443397879763018066148621830072366289630009018931679756030566646976506355818574776955817400345759522843086646016666932885032546303080618883272942010092893028674110086620806912962186206622938181284624244670755961407706224842295254716408309433246231626927020448227018773450653363597883964147856132502690465414907814312590013358283378170199456229436351835433461397601063120428875183657095316865178868157855938845003375056878548276078919152855578389913648492335646184833184022082811406242385213529973835241801108457317723593864611854824490853080722474308369015862889243269300190031983323397133947467233475649932620630168594054413692092816182055618813355248331629454297516397562983764648277043563904392454655606720512803662998355717631916024467928787972462677866662764214394693620694364672658454725031214328742244402259177489601854830555777941831166388057702438224059369008533703138637990688249630854612868692047455195140532089455498389671407694576183475118789656820467455675798480994126418004110727324105285319213623497223242818539134663003731889546676977130073580120732881157274298357908895043896685220414045467916267919045475097184463364328827067978172230617551033739410514617842124544215958852037062822461115510784155428893995481886394651450440629491368832915594996410456353001156808677510443803568389183371562342037944630064996788343351295309906755957123072072079699371265641763931165034469132732808778179316513111101653090721121488588958867488573361112435271275850425739935073578525717144535380927812795226924913488173221367701311578689415132255334261163140823838979525954444672686836612867434768354191885739579723434603376796982770879783880222158255820896471844115579971454040099507620625064418028182105669492626930114543811010661214842146429357368914615118060853158871322272583200356619130912357569499043526964229239467715849463401271569309562504015091989135363778197180135255044129004431485779252638546815493038933592156796051715082918974893819374601038184985983403093290244254179424727104721908566923920987916581071504560238639170845876611354073285014298270833847594223974169341579643976239386837393188863282896428254785241035804064830036479490936626721314105956717573074371287765969398463861749376811843879522686111207109391631208950277796193018702858252317883971377546670083139118757973934613735941127514754226276432953906374904729748968179285652585569461863842608960057339272148685801546419645337251660099342414471351032745189848411400185870261804443540011408087273674974761319316994438852331591078932431612828074971387552942482724276017777415912064405272917778796084262909271608305294144981265894777316391504959715042448248037901702691019914261716681484859271894875894889574001995550634681090271628788515585560178359792826335318245866269022516277588690657230282685495199228512748962830499123119246658656605532393885411173344605349103096328849891416290375515496055108792926157805518889907283289210322768710321722338487504233226382762678642924609886599255785112193756738336509948793859380660870483557185320064485286443434918444037780143391744742737429056242570982627592878331733075672058757666741083008555956158691121117313188989165861618296222514339085809296951038852138658846045625884319885708018678802295561067263733707314826844369035781843133737290225129303488591547040973297083717149189530896250017144982989133798915836953089246201595433633477954110938625400987275672554960285263029030294290046447879732240653994417483164031189108204534162142740400938889768950537520973255722432524174190264741988273565016526786893573886446284888993973659466816314756170624052825973790032306144485917976894935815415139705222565512332128746867743810022754089953609929418416994829917838937431616650628522167250654478122562627308651985505499034776625164515575692757637876542258215722700040283274448011012288318871724262313575489747099668405033088810764909932248114606159813085876460987611925568115972507849546482979691385714752298065501819606090153167792246062474211613612136656473439811798314406122152454030696580257315776899657404663371952388919450634397623356425757196082989485492406911471025894148762128017698932091827234783088963512975550521982672689032187174444224524358975985311703832357492085619968730027885306612274300642435850330230751998102312610057250745932221449244943697608071316854709411138058352303428848451033840726636758746899818677971352718858100327652832733166661803656061250380836810628637830483948707602408081704227481876807721219466921249041995089672192498474948140575456857239580170476763222806939242010893205342387664901929651309077137513341889874056518348870319693502857485848233877325079501387473121876894583078767836320981287728869251568726965806333850890952363559526041501341270520062942493798381085407034429479504063446392526732555598242486741073403550374105456357149466375225804940285704878401785887930821869782746855117653149534388417852986763391777367359744043959729163510613225930939208165767341593893891303494313533344991838784242719114563637300079324258099845728467749599902443023694162263761744696129399191511709769971773776501537822083204723759361576523993070169804022484034391146464734927717857000005702382787563696885860188384631496654280418573704936984617259449911968572518535344128111187883680282948304674004408810055625286280643970478524600228007077434918369074722418442943446869201969906016227231267940171214942555386028859121575457767101707242210826823804602085099364447020038163270483012592518232953564261331827357999110770984232538960408246191683288965887384727679416669824088430525530303165454086847888114720845252030274384534261456294595725320121370633784917410511019990643684942735342658509526978118956589152204037527564900744912262624316725407020767203823512892436157626540242003888886254971716521566482359433315769097798265790318723186573702736087772405280030471320079265077911494161255738444903972842115147446256832084581711823216036348350208434143886468962284928917079960039738338825728743089580062849974550733075780142630548641487745561061971501705223532459309635131764729998412453043884189252875399271744705110180726553573959468675376553717714190396197103759662303098131101099694681011969220503358405342292252195170411643271992576023167244490182370908011147508367582096745802086196150160173638113676114187713172754634253201934635191420628997221039140974092760707180053094786392584702768176614465836483997910648713244809085135927441899934144711010189023087023115808193840931692203356262042134046268225947213685973012507805540066710338523545497334386448828639496269122072521903451401205115672649337540224453373586944828826624414517794011032447841056650358640900830855560348327035991762956257280911895092057458044094556590620110234409252229962802015209084128346043060887885752163964934760540285378144118480097274407274316169831679953812985218258971960962258899789001798506873540519592718935658780946947344582954273287707439821265352393526428465271578093491074482974055402214166007782109983226012057426997808666476001552015193439912212465657803107835856836359857745703476167625270055234470175632956641441571553938340311074973932204377807571428006597539477506990806984577241076416559864830227254673617474692064400180575248604662637111482441126505113308295964240278356962552707401608165002102066095917607166416465165820386882088906717570268590959744167081138702670861898822744522624433815305977641076939487615942227257177035823403995655970608678202451925520203536564858939003968118041443107519986942704501206999984211464553218600093917270340277893578212705961992486009249526572735271818445617421831566030340767831443767555026877923796444238613526895023462549204713207101289567841051115476802000490483218683941356941565194534908030339288757891470222854839147106355770100566309342905474944184672205869827015327728156941605149120951854802350897047291447033154409701839164593333876222504845842756683064621554256238429682047574748926771592873994852440423340439666385966058773534153634880573912826385540877343083449128318500083527726323851048479347884300838285904282363565170514408457092597442116756356229019051616247775647989487012351669583645246440126013242975725950758655041141546806573348115616260356052374752295148204278704575974079987207109085803592511451973300765770655518835093868897922603224924304537457452233995562899601979874195078999038912974196987747281144621529838609706529308242581460679569296894784290786912891258182794369251705765347916351719359384597223229580276199242375023090059268933851825721372767546769180378981761816348775500100666267466422996572275160985225773207103708636506068596495346858313494788295636893800270359817414876149443924352592277422299955544710067998236960871297286986762873006003027255290564956808407621713731252174463284158727820947313317580272720775631860009353123305145555419730738534093518563514699023040705924567570002229239185089220635810423470986466226828366011699841844543087342205140958508391544943866575058575280274140289812583592639550538263281037873470066688850843853844739940557925156328385270694288287505064031249098612121496063287228667558616808501477005620593098048668644726558491685832252271370268845481362939698752727458363839414247183886430887141051123335395346545833600819997348223174207150027390553939455894470879918197469279532454957414414184667779583983956801103795126048374999348369622895933608733281292832862082841528589180044372768688783740249392379449671288203740544751323307394125966863106984320969984244253831396523094470598890274585475283639785210010734302760855296193045262089778493511195178555323697648865720399800100104567822638801216905041488407203046608648742797376406867938034322530404187282824330764956382787578360347380981583156785072724786169635086105873689536637731778344325940819437293375738812914097715974403032474881579447738933375466152407307481983232186856303438513776798830287993467706977363279054696009763802271493996634277132500947703903141406445969851676187915827290607739325941682803142116833613306219755547897910575864541655413624077118480451602191464113143087197617097493340839187209524565015162460161852659693744362393632918215622828447209958050872751726715442371834483854465568193605370879602331858835469634708396021394583898090923194094251717454929811163234024165797607665772930636575031550681970865890140063853398567330293826328040086261837496950523360854169592167921592395323576398274683590313460140924536998279877013624850391498936994354297750651662630218062945727306614765585507762882181858810444762736112577338996880030501468339933918558486557790157638404825283820160037439793075974678481172534560797163627423682245045048911599181318141631361943149625692794851515669147036787323930693251297335905321866980686537417459827343644626126632547329997392935743419383113841794587954121937071828468801156625483571962512832244524766987769170923948401014933837049750900384464952981552288303376745127557503500257936542861188249425951099476543998250429514165287033961951751441978615150853426953283795556854175700818720946955557241233715974396542220996526737173798220664744204770763530585187096062041415280146749120422651584974897377869723598856300601187372828595038354356088464342311694053883727737231904267756952662430491971257504891226644130121236080937975505848401996808499734402635861885214192434158443020313073719810636366976071248307244632135808985490986803366084839325283422770655315579584161590154707880735719751095257248321850937832969749742246604480265552130647631579443721072012605799100221834147770018176546595998481890729695680846138125936722382352002549564901332372783344765071867128788781021084467658015041373237751809951719987537795264528263238414720090614270045308792695015814326198004632663106094958736529366078065246453304125347112564505342006838356133635467162063605174585281280329709684910416394232701648085358286527542322330708833505131235434161285683876494013211074310040340063703896090849091676670990138740581139442513273355404856763996254425641934264277663368318894407825876067850868522066794665590007488491269572066325518360494743370759556400373643114490068722643397005391800280111540445553626398850236559674355149595584429053856215700845343099896052641896603263308455774602738412395197136911853780232568679217839804809630509096613323831346771797970141602045870898471015380315752975367851109498896542368761700803109318425894737943312458726757074335352102063919361245638028306286809390439650807599541355450247096531679126669043766057363183376501459526265578555784894220907537472615216088628734671539478192557957665560328616106309601401781561532541215510132030039884909706786538398094229969079969965358111122566888081419937523294557047314727000512920141233296720281314180149026389447086944968972340844960776489525489152718628778008777051686359315801229714853172879342890567539637359893765289118597457369905275204298546803198625854633667020141441127410052475826693234219270307786492532011072148262996487952242738415060520887184421657304877903607062229835761196779373100517148943666698622233974681613968787203830079746778014596391837995340138090435882771623605510044614448120850658985472722493670868725621583427475628172424210151942113143208471170197600053364769209197940082222374810841928452417220098422200758179611449022326714858050840571954006450424285519211753082295804473186192652792161885275212084784083231202616088579991287380185777182126850625564642334075142778285871250516453525478315999944378243806346408665467829611960933859286472037404141324102222508459932509420422194822872174645407374215988781101750625022776232664814258213207073585547948855410887530216535365964296163680641491642934136359397161613377120910215922071954757574403928414357355493082687712569003571204409453485804964537822638057784764426570510061355409490889316089560865849083453946495820978179401337505346069342967590208906932331437166297809912616749951801310329015824395076228394841294612857790058726840884099203612618143725768970063850629143626754942567466146638936638827378829645321538983249444905790180789069012482700328238814177681276053231995723289681174881139731606459593356971597613736682374915938384819327446372394537033428980948594896582964597889106459529112584399976676100902879641277922638880385612622464864819761689981293064084390388033626996460947493686986269364028795665511152101504369540154641514229721875430773188397035511489337599275348634313245063318694638089744882716103591410111726292587873552499073136905574236587814377828950453272854791644419464023118970404959257940294831688278961854081497023228608112975789237409097613119921984193732776935761786361653806405483971790444684766365505256899718607809022681030865076283449929119004492984573640665641714332993579576740306552164588920702604931809820630800584409976366527331226089389048863487047839698577213153013274755109138084787350024010288158553986924331084327303560245171590415585719740878658829904164148609613507064331399132288869858973908841046504566308567131381673784367847101145717198358929701040040365494473833032584355616947534865302747210043125127254251396907681896604604281150895644606751267847576879131802999723005890373400142711137959908223674327839024807881053905339303643412149426365002813555603055213506433134837746634063292013584870672773675482974393371479994363983145074194496227794602541292208933548726067550192412223769052143067409418981632328176341755389344175842683396904137403370807808620425009639118266804215010945052860653915291974569088425125653240426395266544150993737868691554424546027138320990128669392376033579221138309138092504528993644873521768638232698873334740925571216955343208509518392630022934664455187665566273231526532735467478158903499668528214715009825110049897276016699582196082274290746348257233910905187541177053300367237483459884490336164154213266002829622148045012988974046493496839698047010200841313465539702636709940926304933887002580303955613908678040838791650261453821016509889477928739270294323437503267041004723084372549130126027263127263913267384702352817336521195526871628094760935762445532721207039293930036024099573124484019702640668178261596323194949960787153760135315851104689602170258762143419289827898776907160252677805598848882568073531106062045025827179800280348621097787683476521019628443234300291814018107003352584346395524025101939830200033058025345410905688561364452690664504082690740945521041738757065024700646587598357819684050460249404317865295013959597252058839642810629852294050287726414933932312263317864146719078746197408860612811111620091482027226787057055576480606695102304196310293210218320687604954282798097668290389633371778452037854391467383136773817057964236334230428231391627097164678309001335313184704866125429658200072704555732571168977352714767418903879897919700563142954385522490838020153815731730985205596443817754590088659098805488213001761226015865613387309414486965694597393787354193444119278618550584441023370655311294092611045073289443887791140232266165977255599094103988123108365502889925521620528928933774409120075269962382405235645188488442145090135633590631652275369282684129134790558055045169170890808369377218381712302989600581171230244740748116695169439085140138020046640987645797118361525965494027334627192009886244378800982298921365647168489721354884907613546284536946613213181725842704526686595536611881698790907567804871086309186132409301637767270233037839189878551971013167395601598973564069237526359107566533618385102083365352780561091821539068396578399492383627784161063329977358762648724198968126948983067054011896279331705705006004497798211473359914694240109298229185652992560745823459754015286854905085017788690398244770741163114269976871648799313103390902980324152934124519332316588863952810923688641564350826970698784246105986617351872783265207369047790778528216188324283513036013877673434097562856405936639636559505572606200355365255195602166984804275930123738115101504454712312218228468897565032961025182815286054148425218225462908131768572171722437952220499299089399469425236590125400452608793325585797706399070038917692583170852171398008361030628557917487725553831286183541363502803861174348379158975476562879514574897568388097846145558798057793317336460141267926273963419174337103476911657073716989757719401182268121321065937129091240738218447795241670071181019431334878274654874852590248121083535316816061721479814681204937597662590036327965828147707316215771564128441325535286932928146103601927520972751679340955895064212734917360313580543752111003978516176209401477769131024239992682054255713238437005722584820357765903412906168994856132844843513445037177919681865777655035180821430392837827541635275710589964674586684436704792836738686627168833758126078618633063621728979672017426814700838614125009468601632843270918423782169147132642536811617400591390100218884541786933272045938260619738750671751949507007941889156869006811941034402223101932001963676137029815499470631863895211562574886960518312327064866320600976244265456830639937643420498764393213271107819732304226144717592723607209419302703725213956085526779332342900115796883378122797175327312736951446893356178755582784167277975479331817095267173054124695972615695509552821937570362009703872684239250578062178930404688323236682650913461947160669203773323111206472903976011716429416934479212405164359215297142465474950168217464069638169346147354776899222449551562661946359318409434239756868415746268990277445897483606775681501421916569318745221041824238152202311072603057103412835646097611267436390238605571517109870063933168759154606908224173231158629453367084084017386765630440993211375800014822219537516797317988074670438015321692738824291708760537315894026565184420674208532036992823944415735948550337945113309898592206908452626658758234060320589144557434526299726039670892371477559443844383603525081646875746657180090951603409241086513622336470148520964794056715399661176671117782721372479492017619604227443307624005138473867961129913583970327659368814693363594580889194723372287400887891274436585566903256027596328984304265648643549155511128239100273863224711348343571320714554801599828444292879930997206211032196783742086036534722952148571810703402171819059844426553268362789955238131110201330736356150956719349013425136505158045144584050011035899571610625754751233149040949131722239920344067099342007748451269165089686234096343727546690064013877625367991913980745945578690304021498657036560836988885093578624725158294854936542156707144692106172380004064586385060967777062972011394246259920438641420691993418125406661912038933537338551122855700843217289229406684893641202853901088106603092908636303480100478177076781974285314182835833778539064706125500988197747437691940103125011977401475354262778035759333515215050261097328644349759888007773948446325459937441491320738123920413926370082647432840816878888726877660912200542485007894397770135166618413754548796356984986321052270196180240507979213775705171215194342996265905629469250879649846264815089602057515961858096847361043212198843510276205082587469464208375147643645836082302785994272178848906510601865911472409035383910233625716264389250102371449155262207393670701098987659196887854117154064530724995039795598519993209571096098188524843106854134123275044818654513134072012875931394083525964665430622433199224544924909370295528472224140233158209707001059941954285778232580717253703592807349937476028419002389764721907766729647440691520815512722710218724381473958474705803142931039768917664566276001460876328162417978645406243842923109697452699946823399472764471677834220260230717146039493967497943618312356962000202987927269324818729027749834900834181098760260911457310237390750343633546078263501411385127400784004656007624434618105639971652231756074094637941876916762057606629975633077646764953663596167954999727516827378618008677063044231884986212871535459749885154723287312569029310432465410900678349646071473355052465872115314329049078551237047966202524141772253825551034531122294179645595799945918802367578525082421743453798656793912675235468289247964485715310940556650750613911435739289424315802480163500624255084657878451601605617292281649194207134443537341347777351950230415845392992686442185385064428360559979269245639301911159188675219602902757782992143966501842104768154837889179996727716640237948962077221608824906306101809285335032062809205783125844996960216523481663195384454585835716960760517558026181327350878163878821213145343145825783398776636902932997538454368112185559550650729981491477147379503070772283022561090613478859440228426842774260537187024298345206376335416388148110231385589038198742487707105398425652441704842057825862860008091156930052903363258021255551287356336924494021809374277863598966418455543745999841599189113661530853175551129019803499445071228087110347452026548320354481054752030806196923909517842796022266522651086147878112499098743439428430121584959988591555603353703013400339293078993647198072921563681768839927111920850283332740265462703168934444241940631107581062887121061990272626687546863569940746520685287886553973349196322847258160972254751366706262761394013538982730279582874713677155934336416392120682631842259327062706091514533206074822980040069348286486473665194773403437159355035147050148370230892405947776866807454265435801386608759948521536047022711728855290760501872349399439800072648650305071559643386558203351011513329083462634632094415196629711576757581802735001159700712799863279123310230336811146146009747821492764656819996830413581444194889916910866498914790592159425148495141982828212685218237750050125132461906906582536185991343030160597199719342070313546644225138079240687280280444386888879530103720522489176624236672692631663078454351601199661305754694397686643216756740370831690495324245744842607761360252895502673811984807886586676337968384993151211215771740648877318957460812684554304870726170032961932118650482314070778938118115119333672743940948767699881531517502548680040737952614332227190398292444948959784117205001825349439972093496759010815967927126235515517170568716524073500758631937968361885010265504619094146138016463190828556166596556252027878129223253420832249222209944504807123230466844100772135685614672442652951035742352027686161713233532914290337611045987829629103783236057057195564355945679889953882163464136171491663625585945157081617851031444121665283866314033142178507857913832922679616934755585387030328098471530401960811429880935863975059981620219196394344390123191669623321212508650655990554471101589071371617951051923948403440619406960737323090355752466532343088019049161342737149940781563169618525342562490701959615495578202914497232607948031916397602074794480445825421456461862055515855501636350840344193299628614382301945330373258765264046563369816948316420990945500732201461696695992996837587707575781748770257326789242277580698404486892287269173198670185929562977118999548395464754655201304017173202279216030170621958490898420179705868151898323915200128405611562409362195402188889347695818867341112525199938117869839543713036059222625977093452868099640125527779703759992975178668490306368402971834794944193127461008956605473009556307777821558243974204243581057443351829466717887887161292922310695724040691498611526505488547582301896568323119927955502270698875798652041517007195886919863226219905216765263790036873072328720275504511372011781944048882371777276996202682976362329937929437613508095176246635487474905452494594735995701278279799789586699396960897730576701726674922068244723292760808395517094088590449359263536230473493562963238489745110214831726351937364692775822769000794617620444254311924666508237560108346297108430928606041095574933688237162516972202235450754887680220393352924796047416910795973042608133494694380683257732110134106324751767403793196852820766624392462848551316059543064523122108545809867850549801396896920812075560265145514413644587640772532079186519177188796464760991354400913121932771462790072559482820279905598419548036003080649565152427920943501064037043637608879910878122490009424575699390016269833587523114061638466479398685085575302952889556276436070595569723719274452586227665232218127699699472907474882345565567365993298262806068197035307832387241326380273820666682273071004401562128165760170084965127858719053383530011787830377597497933510553084015002482458827712364927131640893972271086087028306053902198569057007846401966144816060352489524098897245258831298441980507718685842583923031351018497605037532275107649848936024903365222798480227870340074595492762894562722659405611646191161824259321593083166987855517795905698470151657716040266880313448467200070856895715914334870213400326366947093585444045195758870023377205301864756000250727903048412376944467796497150499846944339490775030849351649692873686893619646070494058753659777677681877368054262365764109720738826744125375050927034633737618589097005353194971536339424914186228783319420855941116074058683183452254701392831409855797367509102215196449117128614580407936995840696148666710877089769950005678062482247234449063703061837295349579363795446905166334279187467768850467605230511951669128303807144727550714710697508814868129650601125246714475351793711968928455496811014330725691393101650980054094222832846708835102094073037893537434883127895632813698708027454347750836249929875863025532900571558640728696242965915120317122847065196623869119816847301667304165241288553900108850804805309120678222880133963105219857473603456102000209219483205351418619237528136146163155839637728110468129553093819432966366858984282025474753981160116426929825414639779290186259261974405406271742847810820966111056876264920384704047071318673086302786507908686390166747160032948912214081842695199380964501954841014281301018833629244589964466804221052136254162193546555592954892427345050634278778432121492458719708622389495210769135598787909293921217900306864582393303322644901679207060863299287871149220738842620310281560961109587717522451585602292389240874133994599799348570463845535569302306114798106142894365230980501927546692230392935218538550823393282682371664033238013411284708095346324828478479519488852917879976286468915695585104178344379238487426363177728281796597747853737640812001314553670161601442875386736524976009983679817860084965163234372146638685209070071341528165078350708668552381444877720839389911099731299007852733883809162355480452228206203440523138506613744216684125032026481803390374672179399913894708502508193919639189670822007552583037719827212984901609267595901994552163182543156752354807781943550321903830665036264895475865580224717573276740971692268268974262024913457452206643950430875158408183355832241196747118024831436631165001774084870358268518041682996546737881337281752752193480892612413657190496046245597540244350279106438186896330592292652936068879475359822901419696899589344054834050279090322045667527312723298482922992630208033984699036284839776348639622581638764075758151088225949345583309314043304523546131310711239401659463494920789803731231097284328642058996085737347957168312833562835228722132928640539342825217663159197392867235486451083444466649612990699028814718582523885297989755412671417192613808221555467050095014738815692764403328296789268774340436416366769871431831137325072567936938572906629459358515534579176885470520624121742967045375010468298888609915786780895680509481428686906469833232385150694732821898576653585179409452828720227577405092948679902851184633753686561750551093233887541186980206925508390321072821702069696376491434448520942540910611869050925638743246165274235650504626880809015407414528891999623729923147169146312075225560845859485872912230540005557919193811807456038546631551622405056026739395123891226780209443096322697846762648867744916867626346613235233115479070679047359545287460758425594202020731930060387801003558371597184622685698707301149454221475218641007710707769039075004047542762549095232504567491771653232451860725150136284971986453709596484143816082373848101891936797692262235309481089175903488719267829808881135354041144350867484589790757678564908882607595118854709077452676672008571195942693563658754283651109674154963562199738033109661258537849939869790212153760524963393943320440289049272239680108416322112148194087857034213303955379136962727127007955387337335791999199062392794777405099083779846704460885601518488182793545047321729538578619174355392915234670155504306547816379298855964268563306785368869329519534984636555881808330028970829736508733204254097400215211910142044091918682906182921190499670926432567060790269269970864492274801910888218711914445975045229659980265491920100907254375638414288891758846901832677608785368920070589645180893907114493299356817680996255095219065660676509126171167213706256615185459879147036235360327532145862926626044229221888913570297984783879293627365380362244438896913989636663426447370172571745283330381615075739917592701354084157585183485364853224584769613372291838046057894087453296953076615807177138170251849006813882294419007913923441613544922679028547981550886374430079697008353013222372808836706066662349393869631974743475180546464063165905655314300923109825865458465820824151121078723147381628234378536343857184243020664963780798287839178920265346382469758551247709671433429149361768156414118445734294798095067955112723698089942827346810892189167989008086032672383247360756523664773417115201497114769471591699414905854653869007386022244156823945010467067953245457118063369554968222396812043179113378661839877265444786625817475795429278173173840153754250645416917369716892710448767784113097787890321621904761162928426491846022625630718517625062537967260509638986903658987026588315797015183670655061925657546172167463632875946993276735171967202355943174163169117999882428039006001109107911663313840820768311893586456427556806081025887803498407695304890671194981544564022907271115090858672941861921173282426954439819558396270964953904547532081429240206771869760234178484647768366377758962622031203119091714299687172931686686565726782476625195358409387480327621457495567079519338123689328348127255760603878380020049561616337247071174497516143254231235511143218753380353144359586002990481340219904569596285234211604061586811742312403003151765228481442235607853341025962587416889200775716450952500229204987353318236946715012319545795573438681675857629107146738611691144525516507819239389228511721138412972061899472530732903668369078221588169940935838438349148073853732069590713395514069656012306379836277685872500920450064130082259985415761849441030072118368493171434791617661406915695915419617033446510192172003358858876603158013802344268476162985258067610771533899020384894551998509209166695418477392779622086438378661231726639923253872801420229713067327785067402514612234985706111460274026600495449254395858335954615843614628337564529323538354787703639901973568856367963843843214862602803384513778085218915596669369980901798497719774641728416589942123007690886599078556302944108884078526849721794726414719127216812855524012400866049212165044965668036535592911986144272130555537063843481055395714252997246069791634056233092409458146336357816508436486165889025810957874323873636649174284400968018042421241188016510130409514886243251076028375379448440606945423196761698330906381822243889795728247426999463349838191903291824282741093907823950786716832631636794326807485005679974215835032905563630788497595947454911757821314968356680149253307050546455883304281272863702579641865705157281445869104411405666399750916093914238241917145846416898117287490142200630305039474942996925115694838682120567741299207354290661551634332533217535099351495272743405167957565892690324175034209675314001240737537057019770318280048302037252286733620189259990822852755516781733703454909855690465457553563959015738152981016525236077869843739185392657828599749867386625960308856516195524006545344389145449051762014071973438970626961907368582747252697889340074623096828422179876676780616790984716066674498172695648680705618053604442742702115788050379666791656877518022732980103352947337251259500314066248671946751363342569727501911896376986767297935414072748546012128940782370920150056276697893334530500841495104283680910440837367860697112345957758589117816284137491693821383411892585467034685000611594169434747023508285106971379096327623091085836236002409160275078811736158913847993892577816245500997620868068525268695438107445418536067977228427547048842867416665854834745193843027850735658455976981753388897447283249235980797907958986074736642557871304832282229214049120687348914817518536103180283930820276490074787186904916430882872285686639477498766652361384478232154525875254056913010350074120422850223691062320815353932067859862162634454009929906877969695440796048149563467559869748599970508442453361372045520191025994921880430021865527241950947886236244779213667688022100790971212491531735548768689726037200409148869775934382810793740130156076307669087124832462933843494666754273129445091246513088237441293274001682045663465122208049475457275029597115908729842381117986904841747072390491585842987440487310568941112225195978813150972295317723258380580236148443544646915114757728996921707789738763001364024219794175922554939224182480531414569975468295695257979401557662475203647168298220001835255185038029969076419476592839527366435475221161406761377603621841740934402343546349651906182180491884253912037912844070558297613184219342600211543308675706944616310608035059934719416221972892256480872818751357545448973065934639548884557718053371981694099528151941204446609101233295366760318667789184889341454527348766704742741758103376828189600642603272365348122998678606262542834420473847321108198493935312715818479442975317219741904887265547489832761959028604038366467013225480239967367194571772591868047661485571765884303307729326473729292449462940747935890796574311272618835816331721822035547666969651217080919925101382134869274822283287758909202769540332388653042069297887605654669269373906799137802097274480223246034129659714563234818937533236785300525230289193109309541512006601326406900591133010673880779305638013145081682354561700057601385437601389315584571174019455079910645263670434007554887701204718463346333063908990789194389780263494050187401651419299091473695550659155988559771904597677781403433973906821357307514022005047864149228446235197787810854744847280383022667615643012270133229796284645784890952997396967372770092476480992262023842383253602830951215009615894820531588579343513307594166539251135590063362318774704790233760162046322149787729204172725869503818158055113614536237428068710339526112854041991846454035666022648223230842672619989649327138547483421705010585828880681666143182256539551377636921659027209153167245828798842182181745584657136804271024983745044396528335904328436553944110848350994691363904288325707866554220521850253388136317504887082194628002454056617514722918222305594960951930979586716200964042016577213362829104691107130878186086188306268076312080943139047023037313870807382544001802773941029268908448794168091925645139797483154419247453731262086949475384133028492153151210445492522855661131762349720055719299451011967937892983423912678615108238694841444576189365481924093796919903280810239949441974166850065665302110207084805505644898150815000430372381498719099613608854675376856088902277445914442712961283408847425190131699641183076099812952088809233960768481958160349384496600402806509749768740005002564350031105772945908696401223686133464612731916508494351108116657110704477497030106556567623182878943949492411783617589515803002619909288930850581078113033366269155729197802253898384762761203459184544115992557454161052276706511437140792997760016657812313564834791478057548854827200710474404313236380960304417750892885072255358213925729442869270246589352335892294690188547718912952038536192585577834025996798794654934571811126990066332209340347567972067551327664808150529281802480444860101098179006492993317065648631407021253906592428831411633990494920282026817365163901139906972938969463564001492670973019479926182239934047880790624045630693051342387745045491009178991464018844814855531458923761070232929434180025460059890190564902029598692354193362408472057858215595151456123611774769400839141707754161707266211135134689431360736388366771805316541000096127007870961897707274861722007234035535513735396780911132302228410922001666392514457351846152609310884896400804009571144370786923238365908864752843430772810356455909264884834304466587592821291682020732670657649158562069990430728287140222276320789617341110208808503400571048039166114259676593366800115552277190045960039029808945770320878814755659080192110166859365206497140736732493666351561174621967112530959972414614152584094805280360434871195714634793107746024355101562642994427954824135023487888882875897195970216010618789278945758855298484399006567437735994642553348922791381870119837992233731390867290954067093097161845337318203636143354116345829632469602986773059916672836146287688813204595536818874345362996809037721289713784411809386341936747489179339186950561772988474550998099714618379650017308145022540176980177725854361055430813345244899861865758276784777761174532170751170214794336618715907954664461673301697681433946947534372239546964997730173920226374111007161820600650322484415529506487813990951487064198570609937370600064277480887883801097854283263241991968839247789108800405793415970656920441763929884135701910384821700123294514355999221279120454675409733623448119597412706388632002372733305368012553764313280069998721346423332561901443167638581074816008548206170630453724073241911541287708151921782142401828243256705487747033139041436693477024836264091039385304345781717627482876592473658778199387109598915769445802603226840994950874613448897962097238496061941745770519384365649829437396734421241693660095530791979217065829750213489888234889382336505659653905277328383932030724692318608312013174669171250560756981758012255782188741301567752832993218406070313523837277984516199650907094983086537755628556612694440311186771583275499827646472042658983973834023833673417321310758740856859245683782299922461434529783401303942565226209133771038696326295019621000912042042094221890668739260037843977274893891240024578774924114654840832285531247838179765504961508016335311624858616161044813674911757806524219050059032442719808408267658774234970456243430926085291404660863455037024684981581390728788036765964846428850460051263090303165180383795877627474930253696661533773586654454066934848790130434314461986464434321002830566538197957730970434756074282941201624709426946747197095303796438761926018017756129855261141873957993751026018555247541286549451303258918871385919959648891031366405989674937154875635212185102228008995650235800955801947244169649393586727690313958907758086267307850956784986166347102581420972702045406321850010057968001990214229632088142590993950161248741943688652392164030876975104169860888518141710817351457345767729636274706511919470599628952026613205582965156150120601234487481913115656614080284214815134909410135780646372748089297756252342353102196392262219978948097307373421895237028969268643481610575954970337525556700627394318469510499971809953892337371995661888407413031262939592379807009173821623113784199896885384602931424355186841433834737828630530121706803011974718891437831388372034452944081014658865132459770209393925006607983122283466198943006640467396119312258958578344426669134077285403942166392326392336160679326900309347920258832095806748887946189808423936565459209211214638455055425634204023161134818155308491709113215830726167999524441415443656127095663998151154120736507707107495262090235261602880462467410347388405178255774457789790517989931597581260233965661200737770804934819881241227511165229011205528864781527270478660753963004102203849703631084294960340849012096396400915314137047937183220389967706471598283527641777446905073859274217948992987429417461478440673966007258694209509811566636429585179572695579409419906258082539499373562528853056283077382272989734652536169582734718650896357826484453211114853773514993022943465235151779114827135065930573209860884507270605143566811949151437422364224697371304155553879737143877388427792663193504832915195052343592911548322622444709591116639698466837565373745072462191273561826231497189079313652602641787322034988992462012390228643780243422731870722016830075003546835646965055312107213781177442204319228364695290111693598309079626796076926669010067932242121303178448570815052231904444389048946854569243817008939055857432643227505247436052995825065891850652347678585043540327824287887617928106823052843179135253158559533153056430319996876798588760947951885976840947975539552720214104123899591314943642578731482556447344670870421087311190170027886774183756794327703794124622717271922405103534839831055382059654696050501562916165933299917409099735156812172834233016408856082632297330579418035047718397532391364904106314952699756736814159004545082898001996900111413510119793694299858695501361494711676308928870821389349594115022430350522349374023365252414252182960506933447902193480539440239608077950571877839753376992169841788981496296695825669578404016721827190493646794078808225620130819405815588858001420213854672496418137788391211229086016340072021289656157546026517151433056309017502731356492857618478922236486367883549197242120478148320648209626937062315174439057416745850908267053987201785263954658468765799797903272572907257307796758935964119487189657183703341925846693192679303228181609271688708977654126396972046993838463269128324289730559667008123446112582770012862169240382298065079321841787068341255065351645447158262243437108962408143989026722528640169362923020126859158598880001007696546401316141818093586850167356715485684772482194506244821921168116906563992652713549203177385236391006218689301756179099380265066233524432033228615551005586393906426057276307671893598036824033320378845747296438090387997059843313328890719715707039341219009041967343619982108008009886525778249163582924856937842131440760102903403057492503842599345301382372672246982027854290155560382234574118588085259850920830312200321269168205779563607167617480847095347852235561867271977113807611018271058874625535048984052615528234456391263792506351979130743790231672248475098681506861364444150979053419328649207631565175712467859623448012941696873787258262813852899449045277979127164044077542359538435150565165645096972548810287828289257805088178511999077842436448248550542021200895630018312323117783170416617114542960735618746065064702441741635776084806658256434389889737309370866712744378312318873040536730960818748055950531993465327958692606703417859729623831801046389827158840813019439205103703862877007804660414198114435932429668024558256909190616785357958462975257276209364990721651112665294402818195673751922126298173369250784027694722503964910356023985663329408307688887512998531473079913462570495509514489169360385163256833113337183852266412080256706745583597757615889770370363923797945721759938560668931879716790024550008040742805795314692027621273807709321087910880750702196856700272306592695084479790543678887555909697925292854259170561633636626205283149466760827023155564627920142354136746766069758735797944649902875605047803810924907395554865536646426706900249118078566642134958751192837281907237425241533837028271894237405940030017892201867014552552758602006644216698850387830576205613304870515063338644404816359875596807911712132735943835914927716484654461772251748485474958257140203626524016766119570119000703575397268958471310693242466300418472554990154588563796728321198977961035179590150947302891045622866098508988639508059588349583021701924065529914524650573490623513611856836637405326552671518676821208139494308433039172300767848934557462238835730503141500860668227730691468671191453901071258033655667037207228072888632197639431229459570131025290950051196464207843170530542404156071795399630317864746389657878953508473637793898556099168749811704733617397217219172535397621558382496749005575650769314966343375751003622687756614501856041873140115950637788894163133596711129700719124867925088658947876437151357253540016387335208270985958136113565203491260819196218041892994339470027328013615432934990580539328822817477052683956758254743677810784615852233911841205452446402729382099599552701910319009713172183046331962959779951787589613990848850553479318560040667888422578085983753019373666837195054147843893186011838256604792654203825901853673572624551581446002465589416218240326984066224279191927572685301072994342466294279913881753939792876198450254174579618924917185825721893462246516716506657163702024049119562564414063779794302121890832278551507654252430248396734510855641736434482747250571265816569435671105955477719965407052669673086018563178419295800490347858789017320358944464485243420197284472755640406719945482017742529800114147063686118716608151814204471651613267320188654973811351229191031940680678194462222574568300283259941011458751136686348865084596360962191932888472810038654761788292996712252967261278757199119724300955393453951284997386342669228080784105683199979513438749303953323272022852964622172823218581489027676861086684845357290352765478890803810646697019755621393767023473645867544918840067654477701916919435074034064832656733237374933589794034985147308490513997444791366565612977210443990771179292039404129804222516777707135246666150016988063355942291616101773958231678715479262651116320562841306463077551632351337985339869740935283709813484854564995448754967082365121539451069324635623379691523344129547842166069623243792458538367256916773154036143719496215907516529413946806561196148978842721228300636365729147255855527441242348519044794842614353982050275810810320154922468207747194475686879611442048950363555231900316967836922315472899649117380555117000674991516450345377249364698150962128457685767283201658853835119032107084645917255575245522231758156566456597775925306323870576650262702546012625964819731105788155547434168254049457368221158654260059312727502674647165744073656463318152834710074420143984210327535567329722357996684087939128231964335552925274981512445480748881805827792972491147048104154844167824059981329985113615441820145414496125610356823586910840720225114458708058609155518279988772358969886797697710243881260273876474941210884893333019255298057604168562822542471519537244719974990550068622660685683971896512420578996770381786792740298079747320240939632454011230293711414439429129558991022796101778960117322843403454227004465498217711377960395638811846991020509541178671735179903670477387720852623762223797948386225121013537495446732559947470383403603416369490575567047579062144135916188799743196805332673348611419710765349456569623096083434023812051403108895486115117022933281197728881636429947568448966021001171860373992327791116766322316528952908177188820999133039471702106665836696469433412534866354759359020547446662517639149631317624575520020158362086716978214232479741873020271072904244929605625936497015467348485458185373551249126568916961803516613471827466473303602145231803370948031649025599476417377334238848289989100771196044106646874120202314644459674147177847451392158690019736260801551335466966205727176863877122138026036318537732532875620846412637598743405830893895966325177749639156769340732760149597826853560771356324643899357665153071773266220583386843490650427937393064127666443317794055741628194718007870854243152879717052994108501832032653313670622662745864211028739517696078634191687930833885455538108380262214022998138370257649006106432542112556605133149521588723578108165783270919512453419859702566490465878006415729264924595660296538219912262475674771069044824370089751223453249683962298328367920420985149027601276741187851088438783395273182530343634744453629638525338378624547844011421194144753582145456170119556958282390215990472271321593394495029753355637864168623641149661981857745530074335805441750661660758191908630885935485299587314924009920655020712923931654482452413046369506399923323380727079152318943641954709018012895428192819481296935903982357548422945265499724491484258285825946288721779902920706813632529092920198468161433359890774342500810228501873063601527702732074248463436011367088725978445951559201152791980477504278757343715544374063655283808294710008505851958605835259404428124798589044448389242146398304539463315734992612668595559492258364167289233267766242756683273967542864990695729954921225879142347731236571692388170032835339959973187288221415626849163448274160416052167508803854450583804208794477889151924879973910845098312117630317054752164826748924105567810408822411819654215112052272602041766503897376825086803309469562469158098764732074732694217369762340802359272540839429032218173162726585152998039071718512329236612379743086539148082637677039835853835693386059404595266510612552986322122062944946895034881825974065470149830952465166859933160426061188738984954619363127236814851174848905048971993708808897507535909261260678107021454388446776156772270663294978832492242995880757521225132747870284846642079913933333837943917081570401686123747538817025064291913902398559124843018343273218622687455429356722874594108555799460769964356639797321680250009207531964058656801372908839027633727154209453893761494251064262598643499080236222696546596926088094463025697949810716686550905253543281621414906908066063282242792036148092042802023513753168004979325193024235343049441904475474705834166509535943459804134612477438733113552821919038879391589630648562255005535820685329821199237327925671744838388030502422988546848374525706114695759139742575774791923298756833691527249101157096382747777972000489155883090684239246935252250557279313984217359511202736209547464711537535730961057561346023697042455731996398612836716878168625989038533776440144806693232767684172340049826002955225162082847458284929257023990345961965145426319942671104602956542251419823805075327448065248154887922267709106965033324604127424330596538552936860827972309419848609709080485239225206890583780809036554664923345018387732825151511313705109955109929542211582828608979344904727397732941080637216793272348323854756396054480774943185811808510357508219945774471228409583102749804218339857693919870679836483964603521829248222361969663390886939695347498798576166045379702115728036687451260886613918910891260441585231397176258418816122406496654267878795698879369308689575704660021120107993951988568556683677680266484943250782868539723987200045449092518659230632585012587408242718629235020049955301822446083461229770796708495456252050722502224213056505120409909893938412066335994567503997729848934495293155193694742295731447634599719172476880345385318832325823438660336560906951823492609383674534611895107619422969840048203345003571237982440566311247930048011109185382232575588491823395437921061488683271331329205693646094348576458120860528177527583918898834761700728404142359565773588900800415345841140621298344147762866679879550950980334836810305820918176168118783318343841210954004099411090735830483180411585665969843014869839929863405462456244886526469383903195426278349315350604050933847239564185023068837623408876901582239129373908370232844744056081963821736077862954888507417162531727229505513671323751915332313166470788337368526716715598314712459630150113040873629435763478906601033534120877291584442160311227583224618493143019543526995945326629511719385703536925918898638761580189119306001647313978892877233795733923364646442714490681620410401556084473839434740101580069013881229302247550535957042210138245059743483445852723161301089597058383469719911885505453913062342728896862924377470145247180535311192960558066342288478627585466935008638433042638920582682518413733957118078096874193000193208778027156775572349611847083486885400408165056550598551129271540464772309198795224253515783159015409942138031907983275241328979211706112075392333256152411792720249966754168224928891002397994864571364565360420446162279264399563368946663721380570806538133826314337365969824231195751308869483833247224399562706968411677623623005734428174633024226112631485208810903039349008227387922500006034165903927101917633793140192000734833882050164495800426800922232947561142496613491744592081167801438306417816670377828568222081098241550968533939032177532378473596999274059836767800199014563960656089813788289042215620405916214206083638982402391906382693004424212201903605130679176891912369789020477693214006550299136125530187907028659149155139153185363830067946741091840825882755040817936839639725945515588978592693841380963591338407091556397204517617693942990885751882266009633888319455124115210772433577399487613252809206185614979048019525240564973871118841159184487653524218482322006671019421454480287673408994866541095710290816204931249625570471111477422655899963225941929211045855347349618044320463049198782702651120335268860082396279525155988739800540893633818752089617939510813892199992670933593054369849543751228632297391796515000685287451640910774255509423397536017761186010408944779892082771705442443873883515831368987432415059043071086622174771659520333622374485789436679360890113414950641439152698762904721042876263699741999713251760648278703814925478535372331834359472344654238313597491152040282625569973920354970183251402517431524214554616128520532121340941548550975488059070336012191246463359468718662696800294434410684313874834236248203400872063741655120039843727358034581697215584493578728831253956025344833278163830852348774177965499492494271613500102242753201165073623409193035657454581904993526327865656528350038163172052116544836263830643323091363346858094526973772315905369130432271793597976214556930519961845712910953344724366063058100018064292616117643167375044811306683765660853414566101376392430113172457070705598723064429908010211652657634419851324828046914275502829618731408060015129576609864691865389298938848831095722878294003951760432724747078602451493067045574041990853919576295642922820855538059081591886212725758412555486129172368415831648839689177849570985811451006077368714736322815296487988294537463627957109483759948115280315323949947275180216008198284992353625905379126974160988495574403445656277820881303747315761835110044619913907742855029662759358727106753278961423474413389498461417696867332618503386546522718304783825839435134886515439515807541562407766524084509819034010498405730038732818168493895800883052306186110202860475528136511808387302404104289260874194132346940163568035826136452918444284339100721936378973290181017320613902508840721299141938771489593841057789720159308004897679339042473186003214549382142962965203498259731730406142084238524203463693208912142146591847305517432416183202986513108938700149608172528284824657246525312764848729115941067661756445986301586995783594819117165046436654597222240109991273371469957209631355463969029438736154367988620918066535850973807578253418470991004322965912178004835671373279701624316063167910064192265837735893094521489120762529418889743395373894528337016341415981485587448627954467718919622102403521791457529111101196845795476708391738840693041434729383947779525384452195678455904926783709468627433875302258712942598068955206673298545761969006152982410657581419847648553199650449460939702348576386224446736979419462750073444379882565364463615052659418268586231328655342010088467421970831178304809122791927745368052010776796670484164604472567374320179814819457237033911584469907219873184549155289523318212229971172906275237942659276829856179166790813739285531764358335911345199235277569011706202554275721039614433439810309840500718446409734996629650841434929536530427481137892411992545253960716218393405611951504491502674386113898271363737978238022687851709316985953681076921863244119708687083722733618552912663858838945913588633544062950737236437765588155255778930077056403021656501038439232388817077795822880457321261346425417764296309573530845763244428788979789182701927473536838484396686565861010882511755632793282955199746752624308021759293899672089934565330414218936079366740542018220740894258087512773194579394265765149445627555309468493029063628181610973979505184971446657980432501167388644464328202002639480409900027104571690180427184567145169996753394566653983098030102606438495654846009964859390610081057736907557933030803262076081116616869538187302783755183520506140431880578814769080126992043824269992434919336968379772921629921929710156990249703589169110516466391598886338908204020885327311127143841157328679809270868160253391308627678375143861682175206826338827605222422107433367318612209910622076078810309711774856720338234893417343774989636883585775711504208325713297156605830896407150990360166780036971901401758443759166730127129223079153741889700849730366824823670252443558354585026358905336480109915648412224949392014336364915726497934919120644137445255956789975887667502168036304955250862432563000776127081666119216393110997408330390353978988352432235593726797172035779849593144241521818285738641521382754529039225505050250264349854865818360084045271028865813010632673030068560601428072561797270005938817677504327443939230775796760314308098623627377098272880159233750908575581925899395750725429494749436216265172386983110667833631593759436134699613228045815249770539220299349147080769900348152079622330320430251957413642546030005660300103907988057222060237674366508541467173448566162889706184614788099528730019219337120335973155047031041301226738636630454853422791551062587728803772179428749218519071890430937606441992789433221374482495105732922224959627809379112156587230717444695299632788767018002995899210975417814065574108182729093642325968670288319161497097612597069153822285391278115922684711709653464955889975073837727190822100652983858926013346131596103386910558419970901164200588869589764665553212512636161875232593500447658619317122416174318665986911769347350784735944810751358923447732642044065168371192918323211202085387315699505801316885642538053832925164714903501648403458976888732386754651421447112152021101260953629852112868149199917480862530501257303082626898192028715748265214632367044340344557244058498714036623879164786355209679180951700375375574362574693373200515162568034419992182068828860713801780477117737902921824276289004644033719893593274849759134082592656629358735193702722314815228955117989609745065730169356015633451407207597232586411536127074787296433815640533454795326380768143255289512212253754619965818660375172148184893583253930211982808396058673601371744272201009152642955049238786552819602820766706473522581129883532493939101240640727999063458344576718149247230467345328354373877179815338080336430944956173177644776006119378871546496776253159982205365224079365194856579883690340905700908055880377877042242540821147638202301897038496047015534014683059031062647137517478206528281475401449818768769134096259804536174080959704451586027435091252521404851533855611203455356066402939467825187553463518388188977437813350381782419399031629723900213687667540587208889701414087604939195578376031344635665412264712910315805652123257397614594176072319146029730746306917066073773544665946371729311671166664719692262771577304849648274539924549563515704490266299908929424794340391865883280541174604564009349375150493163475357404501759628153337858254525777871223805264785928604605955424509311514164397374029732835581568001551829627393653317799815834884525007408275003990338115240541788515078743164090830989408977663984829703193942530500042476289415576701923402682636434355395632574476475388354398472242777161519691130316999091062670846386509885133219761410470672625868842649546146848145279235683925536754849432680157404816677229021010777537210387764025946521223911143557297394306216583266430411708726771171567536322829932566307775964503637096759979273642793808184291283795196174454242943737344162169629189648880872211314223871290587151710171911695311260684355297590926002614831150443584649575305669005655498569037439420803481176700118729801366853503698087203993328279250248582028208554643577483005982962509611614244382326149914750310172442005022660731651191650918016494721429550105532653216515214994941417250946232274085974048294632777896627792015913544450773720432211162391912406707702215571487631365429992084170610112232019943034941408647182884213438832081077432206342960889790081752092928793591154687947012163275045440310720777004145077588659665983591473874487654457487404265145526686658726830748347278147595788199445117160785499738729057477825875578583508237461481417412338307208868492824013679183340997622998499659977822220345868761112965212862608235952616570779188572295911726362834302882486870015634909884842259342765408461921415492763881087003453365775159319097589801247258437267787172346496319529515083690672293130199665551198184993339249677483530984826056423473517114275846966294521339628291727142278673954547875695024240043552397899116227038512704936736732858063645731522223496492978340948605647332279131452133351629083081975585733619430368226737582930281748633493689224311970469221205764286414525052543120546625677070322428966024022902972898156960894387904803309076433035676095644928811133336983630890121520210867584665440515540626535450856008640338485469721558682366433477795543973279196541122534279129658181367464112247328395341403220911561434052035130481845249729723776363926691620902955111238713185931759501515906674057687247940629803389562183295975333437707694490936981749338391427743611902851610676758973219012199442485736429758876244577252995976583566026520663539299577129740628607213191170703522234430029680716473944088383608818782902489892190040597066808857014077448509548091496613681983953060516280029043259243290653186996046767692178199853815976919235043382686887627270497854708282063581416333986266552984871858224409296766430965322603011751322870757313291611568292921784908312623695941957479710455926526830193842944468725923638883306248111699854650053934542251489246498939879605270060019385573928057085664864372692638172036912192110776947895951336481681963702070866084846054949245162439859460252412538042148495714594859496151262850462609072438085355072151388975121934889389781126912848792180330290400895398726916809671369683728041695602919599229726227720026911361766408960836230094247115951607370987220539637778045465299205573934933246857053245162079048378723231285843230844399524497807767605035441739253169345119361208028156709385561317920159025006314772657840011515044382502505533403064346670172177251507616381302335261906968291836083970045527475950048935043341122898336746745574263489399444003277537750908816352149207326139563979961427580392199878290332047155045098300683883415885948890717897048496802817947618982512105083755762597154852606591594071066766063118769602774816928305780262115272608578882854980031683099398373857949414311743999685487865893628701889860554160135007337095943523449691749412324437113202932333146378433233699971514105273108943974020951815126414092833550451131043472751208676749313002420182004210026553102809418708013169637845537287026572615049141446772363068237977576802154745909880989106760831777717710612038560744420184393119590733789515524006522616787347469296763697028131965918817149118450996306591758347290728770845890172742243122295543647233534416752142260018642386287058543804525551740010016449068644449353806575190673852843452079959594612250034036033564797406814180647055425199139539862664368627361784910060828769321457407791021963589931971242625706731976874894405052257934681309233621245612640950455079068978415317280813835206666011900059888135292757757386297609107752441666891114754836744379473676036176610223205806122877390146857699771567507224356137582637277113020365391141053299454334502879516036654539348147288686860341347386112827432315792379102626838711312728061825995133371172034177667512587769943564108995338511979995885453262850691448442592103608821743419748916758117441550075774189840254257532863188940217009535285170684334036477317320408677760322410868650782764857003466102367656203801216173976215093439823186978120477420565423022930324221977973423235180917334411613339543992859750189314139939428089446028310630385132596309651791419234832807045490042620525153266205394414649161139672541249292491704841452928344688753115314140602093989494734485544714354667066492996058066428147664612793315419043836484947299271089296163778792063702906544611070913066020726159741120804626736241556807349737589082329962500088377555433048744058504575130991282554749070538897715309255131411897645349704843958840100936151572710719669019794928452763889044571970081626574745546937830934972303204086628465722437940498672005765377221012734294116108753639207913424099454399925773035733100306690190788889799520347403765232186333726968070465304794340394562566589718686755989905562557258748605587347385079135190316701612435542980478880575481684224913218736547933129350547215658965658649577263992603227473582257500915194612813035236526982852310102383646719501106401051129925068572058068534948219444421511954368464242103761533598678691604058806087788388121176878784800916506736468513828258464782294789123326027238347531056678965582212653972894970038983882825177415196043558695521969362833771191626916718711191654010359286862162851375274509185246084609840248832969765224571494593279574435270482212846442745940950901914295409466055147843072471660005456871358241321208789242718024778329129461941013356541517821577415678106573992845705004903830366370465679070678036741747989827329736313430060893198168102140109188809576944329066993235690753216181446719186399715536407488898245638003892708138881741119657813608280122557556978513924372966331061181329494930366967424678354879314797162991607341825271352977098906219832463564784183247495149963897082012516856581418610560849406215132950709147915158173574147176845133457432016442533102733453062048355000325396982050233640685869716523807753266933096727818583411912817536965086480613822315077313506807635293784259864809993076417702595725412888064874551834331963434588027113029666422009705213437840952405533471406791313047544564949805812662669410597855499379067327217576744865221342591091183862429662216883319670808836645617314585002659386179654496382537658802797380116806525770820143583940943657121421358859387359745862912578493305605823717147371246025447574387700373218530089198515037202773979738267687506565924617310150672933609208101089647748884522018273006023414378384023899927066454020523283710119412007704201196133043328653279749262256426727995920180853535287091054915288169884994072331366167420716833293229616473823790636865451627699995481641172920084303418089410706365259697745587795559590708580681245899113989442881630447560724118743521622613252989766599633969210209103142576029294418645006583814208421187409433649371162222138391672014256701493095847723379473570905415540353698881820599565687313107691217918740243660281714751032962275437399828252618935132097503873589406787312430217585459304209027294253242461185229496117523085433264619005051798517246489912464813211102409107494650545523673731649115547458067020480020829797469796957901186047366090706806119011289467571373358144295552080527539036846564124475004673127453203124937025377656481699466354535091774987946583078656355471353139920959915967740889745831833154194801874905270732828879491233516584622018468580753112622696930192666884434544083476408102012575379047150907884940170434470181131909110921418461411943222471993543128039047695530164757933803209066223757323498631644972283916142416616787927874944194029861557961358816726781396428385364705886569169052590348265472185224960561361732291303088273160636319671639222222697947607660175127392233187705961283911031983582568511166369131515945388461118461297708478316916669987063227807852852892142168454185632132492647475743708351169757339449295727606413035006472656960871499161726064942442038154502305849363171137284521797927521679975977260737666403587093810330271662548932192023713166831403311466547792459034954807483656966601174239915494751535640256403166233959769168197373051923039783043049176983533461778667259534360146129638151500736709895808039884457864623622810015923957595520824932413682841287280211890680972503897297655048969063348688589842082155151449664761848528531886100875331736981191400960890085448288252959700206049443363841874509728108848288565057563473478022369872320160172857878468170534370397958095348795261464676422635475826729687209702532774785970354377356959138530809723769688946838600748099465954324857338954774552927425879804660314426591743584978619401683131955779115456664962147808927410813118809226530681222896868539244758959826018635383029481921220406073873565642743021360789456303732300618107369826616481270933646940197196625703364905880055112305331071011362048827483304273289271327430758047661301711599025883651849760963592598060975107153488259706899093721755013911893213318769850743281240870638860213152451572505351124460703511973492548016422900574174128075836409097698587085902429236707905089270816561964645840637811219729688730392458966354970314456130958898582867744829258695573933246093931176940971276212090090481591990256548138008860891149491071811193038534221501595321134827763252818385868167783557643045895284976443361292277450073035410052393375402546912905853358565757794208832893467878387468036254629009807385058304078925148935880455256814616450029944023307747133594875675792863266413631967200477644262756306946622309387511527253387104431091481279882134878181912908823068540158541377639378071857082866552789979226006376531583047967128552840581292195791519198602170679793064461372899980844688285989143737665248680755633319560487739370098522363587901428508118508419574291435028128594443132057316805756455224278703755819228566273032854678302599751011737288980856252095161368468430723269796426074723448188034680567017726903542841234333753159670390903593911844744624644822066360940813998374449128431906148641866875381383542839732264918917675278774970481665151076258189324594514381024080176196577102078549498189835654978692828119688265261103646156545213320691181497618646268642465359228327263104875139087842520827724334145355720262080012583269965003219397200500254456575151332848882481500402913189275508882357058258206358395410021219121783362070495941687458251452306251709481498934790098978440354494578353769117214995027419807566095805921452289069242307625976827549550468372480739993834312497771980627159323727371699324458299031714183292522069258571500668129071829726190770514018049457222516101343949053581723333172330357182341615093514052801084553133797518589858059357395562354635876768799600976669682923429974113334301109385780645168384562882850269666852631587071905517355585247105964157588720670771082033927595740381382471634854128257445745711650183573996402927397256897006061188820134441478639447888415495008900517015084808249962840672537295437231100303353320358017794616305490440003625608371444307581915013594931652862701288314337418300688507616338853525432899636586898710627863235228301698676289545461318299082004561386641557941990762188529934652470423297633891205873994509679786032709758397835440899844270196357301984095502567420323560852455797261465985411761491531391219154067746356492607306794831277485578700428922753893029285055428585430444563631330048748631406908694166603333476798197869444626981586634586073023694283733319253218491027504865150349993095405851822040384859767991287402481745158956866616335846933800370915248937417980618691894911317836500952910888361643134693110842847940468517525428797928243064221255351174162660696270113384039660867076972512550306602913621839384575088874622501814956579229624949388510916983118688790317937792470585199787165455538438700861605554553494327048993317123520073481984042832705089111617660447689704159093922025699814472268338169375500019996997165143988636248502891353237690578766136785441591029952457210248638307549032682448574184749226480797892746068441645631274011368208607654946696853368475512604104260955882194711534620489613227649364468136565827196374776824410425298408957787253112777687495402028152231713633834132935471277367990820330747360864648717511398677962081029774296299474653408268328501605127004923743350864449448529785928957883907222321721007899850475943737175091036230228291530488108109176405883983928368070142659252199310209387422937623164223393800330483383896891628370059580403451892656905990395190567632053802951760708226942750230567790399172782313486166367854141686122578598954926244187170514445777403599428891963897760885287519155301825211970509365330940176553885911566874386361311539702664168376394408319085220295880910919121602204060666193515441563524571121702496331406638266775930412896776026659613336932096771002450122619997515524662488570659493087471388423535532317518026713304470441574785207236174986004681517801422402022411734705464760132191571539555811204823284625744713609518682018852357679836336054825714737538236999019674666161846145510040665948412821077261674153663887350217519998545481089485474803649691130634181216187167883474219739261619269184230764637112646580802396570630339984777714965540566211561758374300652548071146506746638399415086646443212131927658267788082268960266246907487477188533175473598422677910073888546742966947148507191707297018533742893519910415775591039853977102004201444044543044667773458328004813263108611175024961991171810958936507437370824392228777361429916374483316012125456843598076286575557601969353351323030723371299283333144596968860810809965402557817925422557944979857650737612626119484836411765684006177963900490351501499564535017820589151855803168825854908786714415842513245231321672033277899354871056763811936316319380960141007600997830571770541707281716136058468580193093865441532312999836550205686458075188029811716689377360979435443668709113578436817800113212733529434149126504438489790999208140258125700025118837004749019772090711724279738071053343639820726937072409851484390917284091298040516821328813515879884381136626402979540102576166350330599154532267283187839103133866709227068986076949784588766184475884155850247966026525322753002051329667052764976873907938024821693565048377770419611093196961536424165082389234290358879871732542581552835085716203032411551043731299670108142402544351881535354360220519040367595201098475585667658319177587040615232979964742771743327497988388214427170490918928240991906032398967952996065200406122011125356461775713688025023611151804519499685189598949466197930911114172997212951301209570020682184561771945692076799508160380038264037578586731157070484794560509202530978043307546060839674556811870225496170211663986894650335490482649536066133502495183423123318154005899304587358682267948249872715802546072598534858567319060966204876490092707359018745024682629951406691444597557917239347560507482872604223199042532331809597288715680442884538494846162393267770593777717446848159293790492381240696149017330116351667987297115641167704321549224938920972439290319929433301798392620408108296709770429331161992634295561183352820684752755347471249336993377026720727640094058855398027221492024981582335497101939841965245977245202513631143193314479220303243974298996648558176723867991018695492310977284716190241519973245565281059856112322725417076232866125572958663399528852688601386912616899062574126034060513843572155457842011969394204747279534634388977309758684067804306106549462395187451816582126511714866067042136641667956569815578261187689592978074944080447895238038917737467561168049763258435586533661032349797482746195365471481461067368090217865658220930194258611466552192779623452463599510667059859034159889333703146359037338537761913129103001333843627408770132802344780873693617269351353833986924409335792528590720521068957455563022167692726159853544496352988803079900867815673627291215371541344615005839528517113751240985595985582368700327026052237223908455194902560087618068607186220353605830924069309185203164413960150032404581057872786436226377922843822716298482034782602081601526894542683005320754056686306577079390971543895787587602943197866572788869763135845067012497118004823667846650023194542989698309126384941759275274866000704518587237946895149967919039564464548362748482069517321745409422552036966129895466254786716085751028454872087356926257058192959823924203567595640279760522783209482418903467346477951983291353896882380628502931354961625141802419000780348340121402412053533604992058875861339382010684411527602617625724737054038942790789939535608471258621522214475040164059698118468347698400198892217081590896531042259066130109993406404946486413805262918995808701039867903204328032459972373889741192845602375493704662539824273493191849742452027937460793219873700593759506449674206801325695794303108259998896312827826328971003086475162943140200568364300479731947557900558055579711009538974000406484919176141108014976572147950239547545545434186954701754184774380974295271128015499038196430613203066527302856227029091566791172117675874824473168447757818945288864471920417350528741393847023732991836380958155882873684227836918849828402365753086914549312749964703427953730784539694732622728100582905932863595238285118720152955496324494529351840727956652716337334096966279321178291638074284612671058921345797883624634484533504632665665601663151752852574062282539404464538078744040472396167468574538240920642352011764308589940474863144978837964348451537561705366623489395412356117859105166993013670202232299012846852092240077391559189995438665767736906065603070004436876772936977670610568192994731519081008122379122395739160988162098113601858132612681030262146214167499794229271534606356276295062801594927160301734198568047216230624813911829731957171257837052398599048361394496448875839096827903348378853193705779229400560169425707335541120359577338001436193683863965901953027352559125813288589838055084024638940401604327554896458060047002282326881971840391621738697939254004966925990955081019796484155216419573431639079378504303444103538776837186390191586179446379116022485219544180888973488620299925747538719652582024647763733120723581630543402737106713036290283148775229009406246802624545102417361914684733335447462175658631862178033822795815588662385396571871618835065785514000320807141809578615443529936195042763242565158806074806060790642669440791426015337400672464831328242844559913808972216781295035925213080078725132580911734896078013244770966590835375590553229419535784994183157888081027001808581489499927831463666615193070941466748763517837153471440765992794800047793744296980208829237741305450254470803279812872294433862784752738081136288869505224387910598051164626357506509561580152555937337808626528113866280552732157514644854781853648470448611453288468677836074568370215869428798860140527878748083058165554876201004760722829288645501007375993161226593694951797933830587233581719829672115398382752217914587316896396671878840271225949478225551044391508158859294276574351343594715925110566241552462244898274726267123241159339423402299108630971638334765216004727657640274580973726086402931974168344839242683053600421166753407650581488778192945042078081990154044369447119657674236852045148866422890149444957982458447283215673068883618573867899827897539609632751757254731758476254162378214353013753603626535745943096547238589743653767143122513108286467943475238302373181184826962748133836227892974110903496063941900271484898220747094804493921324269857294692779246815097732005650513271426532724598610171179811493192270137305340481247421070691742447754280206242386149070348149996162870946296803838915313632807779849075547042220686650592473758035757517804337421563372024092846445665167448553764088840539041927473194815556247254957786383775508889850704747258011946333337365827243148174432498168916792747934281445757164017874906054552710939444624595305924506841445424499131668413255110189016091928779721985888614474266388457883864050799618402673872162558446953441921007083775286192656576932149365737747583874024745580640428902634201863512618869619860041980028563834825496733162405843619499505439998776500068531102511878551598612257749406361091849007628116240538998688793655497998961411270679241851843248664887182826409500052415610033092128348855751046304626981313852925928089820326872339102205410563698726151497710540925879201723638724731709635621538531018531416735502198038471011706119241159731123044718639604466523969973108847332991779194093481698426695286580875075631681811044260860299885699210644128526073916160200037632109332822985118026008463104418035542773338269177766420693763268088724841881886917956832158981922323489911257211980386422753302929551740784252488914764686732216127748576130331831233860752841369959959514634027744723004198691295382974214385371607285963133961640392521837129665770176221236725724912279119237281186916182419220991410324578534308232667514348857447639285922277208413462416057417823293613716867340346120559133507445249196389103851505713674061175504014834814207153130179640823340814501315484952642133061328047942692184099258231115209790912990484396491306051399944987360824733143771883327534932681229960310991302898809614754137899304908383509574604874072982947869926670078778009449619653711185329132715579177682024144588872724193074359576662932355318456838020433382256146414838234897318171497461254406550233137504749632994145921034723736272735490940970556903345976542959864049520733603029386030731239642874486913692201958314411911045195039464746295854058824725586858181280233376742949082152431162684296966582442546364719588605164239786975489541013876287671568518396136768465805376597572231622802417187822077960189525036914833441085301041417607547257130104053909753119545325062391028628607775193330289138823849500915238509621037645141487128608767413251144959217963259849237434217532135929033193789354610723290840571315648682860026091632914797247624312228651699081915477328280770843811754763203612395330756361128029708551438381720834132720735355793639759628478332022007346360492799981233453659712460368430795187883456102352663186869856498014271539253312014033249320136119332920305393292794775390390033371098334512258448412805068875481042908422461394878281419446381907710794246344316251939828254064449509709315026815929974082820312003698519113165372722281337389713690121455612234961210012671600809600973809594398870355853123992213676780564510287569159628689550391949812586643520019938796001156878596399517452264077354127522208170643127578534868277587888808137764928303519211438459466576921431104471847393755608324345169781277205375645568668177444271834255484951519068166928049624723001573318986901093258323128041090821438061112212141353159455978418219195935054054196638582732974378512121518330978282693807709248518318327610889114293110732595825548029277838667412547423447821846041650638039755413244157755150117683627992341178957964771192458236894884378243996175067934360732239647766375858611634620701219766515272021597924170351290701361644467720694879213091581721863376543513851051794591454398546810092116888614964951993088388399469363107242578364168555112811463605206754062163950647754800350610064786906723504583864294352396073668391396979653765925137215999826088816480225279508149527694477336427644395500310453746153852362582030544617850740480138584802437306366097574666549528198529780392428846795205141261172935484825014426210253896100036739908406396227623387427380026320702902007455323030496609930762537096321016965272276971257419452547854715820848726610370329775328398903631507947925815561342819456159631648988402821072834266459281085919648718257085732489506302301649145753662128224475258738386238524994803125794283277612524038881752872841164320054735791181037477307723420575789336579138033032926574596473929084565341267001455823735970521714943768487261154310554061245044049320799844012256766960497727386578918719345817684265373421172618865465274788917148961821454406685162298567622685125049685730287608840742315850230323882428936222730941522953887852255777819107079041368578465621081527774036021118763220619344699668237149616496040256175166093225861629163939724454373524763571977747957754561761248189397216619434865236108082313573056076312770504146837338735584686377423345499767857546750751838544199472465207090505978167198005986429112662826886058579976818738383509138248456929939756453027186484961452805847379149959915907257870152958049636980941221790039494662396052522754841438650993294068867485412615859994047526517615154897623048392513316062591613845416081248966015687928853417215110597178216240997102030332781934935194241078028579298490455482435261469346195696945664651371019497759220754932187507048932901814745754040721915033914478173348428868437157849270576856795985382988614184025261426396368525175868603301838883627828031799522286107777109606813867469820954045074462747422772856435408471850710316828678103988064269690057015002579313231247564218538137663835036608690419548490364186349843198542341536851451090447919491324805237438410914913893209773799463020479310944767558380791674581790219077915968710252056342113723002994222497630124939780753230041794975348133608890549101384901501311905627430743514595947148795767149994544122591646928462681064296504858223698102378887341548054338023802875905255600891050347926155336814309259577783345130225073830292883677320180010967029508081445225108874721918753329845447995500404595563747993240677594452436419429006840510266414019671906157571685949411714651363020859061817163696027034614922956550345166786164789201586802208997553199926984549963598673162216946041572783204789657947837584311457487939804158109745161784292720287385299321682990545096057792691844287628924906766072850919282435604475291270996425583067314017803221104623547677579947520469135274960805352846823116448207473552355649456212495613737569030790030504639140798648291861239762394201132181473140971914953051811008055734350985105205359245312800929791337946819638355954526370697733473245370157059916849724709109850203864026107686371208647428663451545213842077835405724318366147068330806401679903612870889530146011317096949313079234665928768986700527449079193424397481294741048627913003815916878166626818765384960253389313977253964245647688204883358409106086002963707079272609485037498744473766842832592758292586672725303936229667579128034096984337855069247344284879874978989556739939223148684815587648443596287207929812371205974183871018679881507649346138933926642252505263747939338510057230565935844197208930059042754921346971995700996452563211633409723773033274809557864983583654680414517204263918356970674813673913841459746781712664507498712198048857919168028007077129211846118760380860895635353887570922333546528977240501175950019529225401459515318604975617087271208546637758047751321590271027200618745715455851388465816371312890694299783934687326506644633259277419285358299123123323104385869761638252696401697363951529510936594498984754030807894740709828888435554016002281274293242201845157090226553366627690948103479833049085087362714619510566411247442555697491314916733536448058945917259081402287602251453125023919589099919321011053411467323490891689049946776454275745143577887687592410620764100653378550787100599881554847705151235596729838848462300569633981941729920163249344429059421780442046355784740595548074915295867665292999065702650523245034467058333804146820415916939240953519948298430329081130817155816094084497757436996213966991522916990191430376666749125218839227534893287722311679657573355348356644396939790198736011919429436524177981880363232965452567964431117632251359976492036204889835108962430971232480429424891102443276062310662113675448190176313198068673382731191793448046850936424606229486510720463002826702643721206308637417910581764320074189587688041757598646107668480014651084277117579532282688990574726598490770642617169171121773059546641294292123873499291184635398455505568953003348636429212389685908448461335497431055489453330092171653972191477599124295709414347213590216122980098013387861045165545828970931115825857174564219758262247896934739151348295057445894475683174804339438819593729572927901317610180520816826914472282768425891383854107533496971630699251214926971381606918922975391884635541677423392137567943334130196356479122811344369336002574418211473930875998552759549811059843893913833463212965741773644634083745035446080920873658711370313518210663980923454812234457851731350069752993218205417687474435074729690683797084020127721456974621183921763823901615990542565568153471683041567216035804341913111840169297965417498189368183698291282131250876865659449910032510055182533122791465204788205463876977188891808067121796575204052487820567401286406085735984815906698334751075811717535843215186640844563580795503650422032532064566123089860117778375704180401053783928664437080621693036429891114988399160293805170313517731700998046927912299961502632302626675333621648200932902296593065802618201738696816639471191286958869971818240672473580301676006685847519108163533331691012912003925427479578352824105750718552132050232409530624829016832734469518506947373515426510276208549250709876058493851347451031309311849690138197091611146006938391933941971245672724202778164125810885121619832781098741761588703268537036291077561148007930084647644258206294894205767146213104755601360016688823822041737676216750558488849916226136219420997633551034163244798229479885418239844861766584513795768764697476644424601397763929571247946810406413499160097140492756686073190229891244179597937412592226930900685570309845795806981877400230488627719516439156962881512752259219929288037495608618991216048648592975356293708118773173632177395123870759455095858686330763730390982227239793113123350554684904008912509779638222357743345504920654892504801251560527053820261415479532625283426121460537297516062436443781645794349813406821767285206948064513311400221531622002511072094875351081351497100580626926259407166386126253099800841742451217818436540968911888529766425346806509690783968299898642128334943477794694296155664456499850831248798766809436444431825334835109429268308611810563235071412678301025867556608644012830908507250131068743155426876897032518811915012533870504581995089852504937217603520683124792884015768275067840080510343863571355284202560668693051564281608668392190754771720328239314384426992696404621939540993248471960202153426797999531005785342894010680723614465472820827212548884617657511055149334011315954694473588296692808370687163671307164987477630072443325867460119746384806198252524108991924360564565176491781393637400483999794434668959380023237256277906333985593349351421354173173235207367134748763063493836824336147467747002544408992314276614229816032998198834903067504386090517809175962051192141806465586777718000832371758686488839107990776387749451241807927282778419297421799484588427842185453254792797309982790491468295336326026215883773782373929740224831667881051704052416905805499598989430890601866483552028110704236939283989739845353907539829031500973506706016245479028107551518408258002156207690464030665551626597049147937707985952163438129501353043635763484359503611308209868680066509530422360969872706731888982551417987424580736909797129261632018230164591109451303648829762377051282617459347393273081365225242420468618996831891456359502765184790955210796299586076510368817813805475934952023311967312444411996715193710000375195542604190925860976139670247933445424184923922113395396503206779272401229429316413697017441170659120929122716893531102649431986981283709449288507040381028305371829010827865837280825511764789112747809076631622224698789352901167844069887880721681440730420241129435310271271289917373141591632816180409210979700959314523273649339683796202808546881571309962687031905061695960526476725761346952608787989173118614572303026668817246808592518207665649780441251064913384507119435801479915272569680533384611966358727202440370832947111633461882865931145585349755005998697764344831865389871402329510511418383237504544939223019876044698516688017715937547027148676514722543337248883222231816890525758874535745921523169057420211014630771925634339286502855921415200456965814446719495215834842969538492820172844117285501498192991605341723471876430207266640552039711016565372937996026754385440101468706909436050660427551909162012230386854723285080558429015520300053227709143637111940013203909374315450002094789100416968810561349831431992327244077998368779406112599554631039219947782149089993417964576671801227286620260846735842514548316132708720951043178662046970384540636491080646768387032223065358264792410236232767991454958041358420824028464923540241699841255901541836779655051019580756885950250444237059100982047186388806280059700889848804405225516533401835824970048873135134396687841912595506669551694476197387865323517954755598647323768842957403035708402908052783113689137851811665907642929028066538460965663870155682194944296093862336886210715777925057164892154386550515403808438730726641495777442052259532357771683831510705941900350728460581979858075415698467337677004827605302996691913600328492016326335332303349661897700664711633003481555758147405102954642072956522048660716486879075449810799751244213888082781421404305051145738925488399714213159183395464868040662086368368615426746759342199916281758462330243862164961553893857313912012485243107123599389734846771122031527665696238494922509898992062390022420452733748380108333978047574062424357842408624751523642205982622868572693971742881359990027004139143649289557453250254174737146082559970705301357001971505981386524818241917676764734133476368690584149450173144915933725867372780457008943979606208309947612469937872748580411802998211200392644387170279392061665718118278602594468158304934124136467446784072793380391147564455181897612729943210642663126170949664916626249135037018512929447147739257217754801819724309344031506418045479688524759053014280936457912203375885056514196065218434397820901138144984672364870244130250513159052445516449089751903606751623208983470522028382442166841978507825269112761686796564672209471046666882585551286586642994503713151894457804372213682633309940847893936123235167262984699896285307546871194391733429429999576322490377460776516578423645637182929460471790151889365875435234225514902123421529734150578838704780427724839156952103498009412565531845613828185466481922879487006476420169486729963368219347656067712161675426847520103743809324567676463818250463929768633501280292925465952885637890909410493721538676796021974498912500321905931757281212983564626752857363085512071985705248212903483101223228666318545467229467265969534182050203653797600521146313117802367025808256646594704741171807450628055680013829717583533423149850332564979297403289178957500519256613769028059301341567261607035897027653538585521231905014212397010216184364832116222720871638464980144937367776671551471964792928895705714944123208108306455651909392958419864506525281076976169280797612496186391970918030906266593020502508549820812800001963465437296418206413383170799065895977343359027165253560060932957508588742869299816081801646860500348233031784449251478613207228682584467106855331407027010342284150522570389555946358256564430805118995405456396120349804287463345884997670879862518514707851281489570287015785870664673669500013407024643855202525692629975517928979208075684475457935320043037875879803494350496670132418568462823216073523453098383926277890953911002158756040219230850344497673924078333907531798637775993612938841320498010223848979820118554369909418791355232604210978447682690223094357525227066975437465662777369215645813708219451497720616400294759480169128309263856635896581006919526017958101451019833709922092976986256159840994854537529543871891412572738784255870735004549457768213649843524154231446511244745254109505298096492685105742810244469266526316730679964176606145484522094263036464377681810246730411522024494090951370348923574828814622566565266888518683752968354059601919642674719572531901588974968018032181363763616382231715197700745849129892292706832067581374636091467912762421007927186412570572207687140979093200824280020148527996829790883439670078031945914253828478633711416721735337203445300748536929994303608778374942251514640600119806639775465421898022191133725448390980601259248105599920399359572507345382599524041091901921256942278252462864707528134407063524228921837275705114212489388812244179977440402887321707908884317469327838406283751938137246748832317915090469813961274274446507428667610754069641098417199104423927848708025920369377921846905779531408458960025367019096790074528082496387919506488818502074712777882676499480665815136589832504494595796685666656625023207595733735151654673256529968145520344273190489571125681901035403434077118713032239382144763349823855001873458893503008736323969931498758638700970299614281047773595076730342941376714953912877243860267611719068929850122601674070114082179194478837303612069814228811688958378989581066557179685912392959424702215014368264171423756878863888349191122423968556453133243217752075964955395260257508290626069728659173312995696532546073737446169472422752052821378662009428157887771757944623941151291147188569068705290090414113581679126280907728284303392145865764106145605024705001528097728626613004340846476130932266409349921162238037597356506932867814562052587484694460945314149314513910300393610452769601630824371653440393212962469989290486210745760329915837893633299522290262629856572737068047976673601145166477643680872718855316313517576866316539112454409747863304292736705213316244604248683559277138881441736025782221299477317168023202773520221728514985481775788473070605253460400111168268840547571030555806209202088394353641052171565885921316496044989638013973824228170676132553778930901899068360950040474515264053397476190627644552377855669566818100495684263015239883761223931063236153011833048556326204260459583764661547799583953662247417142176901348006437064362261449833914076982252094702297231768677693359118855915080891540563889768046245056253594071105586149353838374964400813466527839589901620433821508340044336376940991504672276714453228826218394497384833653064312801650984745486095002735220869481565996379870766196332327565927913832013649213138222045678228049143728027918847305760565649411184018178321311256596440750396028012508120311936080006842980238758761723414945247462532874368148252036561978570490843690167792007467437853373061831976329465874444699049028143687027921332010375461018366586168717964085773994402094841244498047057861124557769611835540087309831240933570136115483237916527078852603324775307893541602241494826646704830593263942614085859637250257743616075922761044576240333877735321640043929881237973880209269064887753476017115589593114024704353029599295140783702335128768137450833181877085266066522727541760849990044090443122890790461941641864052256269168296291668017799635634767938140028310852455367947905562722676424753533589067120940002483731214153688107308618393233096103723301384177156946357705065307702841957686346280356017189365550149020639698755799394573564839026013168419133324443011174179706872214681643658633521705433705405578391237307274616656631502010232085936973079839033981114264578104020248982205288233234251968179400553058542839783652715580691360011324899096262991729302357710795893160673757757082521384946073771829103936654822476778458720949774893342907811820677910362091550938167877510707235435435457555358692408778504031352944961746885315139173499039848153641873474415477474591796387506361708628877387532245754324768338536988118851753029704355647416465712707574745967505801394824272846558563969994263935884099513362016875662892568284789287948223673383306401599864951566122595245567215576054332226207963891205446061891590650608477836058964179674857575859358663757473270675922118062734754924627198641416098021509103756428625833749772795963042986616456861530741222311734289432716930556665556210834858206915847907351887925511303344083591466081039354322129351746658473679290028035552201986152525822632302638142564989324644549251419820442020517557579777333883454418912415980496964490260110398850918737313274790153258759915924087142091266028226860089195126944859939496294293662473405103297222361912575803551290656509068964928577796154904774711376392272872121034441850838706278835058294441810400826101168078828598867171811069635242911347952431423816769203644830682140652695409056513933880358951727976202040159613608151172762089604293242737419655030377293751569531985646262465318273161442615369049654464740205853731201248531746984947300601031566628423202651985402778624787822867159160154132187805356261245427887513964461634159253324892541417230356152347849983702557472527718203421939062577499790786930281894468277878025523664046393750277026744357791827474043059656510011969412072410149618778919185897456398443856099197818269351006637027453791066325644448399370663629321987509460227540045170526667476162658219695885024677196570089352900828856292983136242100317121640473230135674919140113497719208233218337341542234216855605831853166636784874117140690139155829599937094606543986774229423283161961782623012377521851751466102507078783494431613714175107202248412336043537187326973176318927424322098135435665490836668340833123254147594863480263615886081759602140256185563231287056293917623220545514780399176852646402455399832258461829168748649416857003594255391885120104032525824122655851771997170383685572294893486008675518696492716238466497372080084434029746305306167661655012712427821431687941572854575550871004565614916101930501957502537006249397989909770025644316789806970811262910321053815215926265262234913430438963280873890150754659109401372699565736195621013866021720685565237874675845206103967768623735269810626664766540620705024392857705814918854531519539327981005072656963626020810499987202016589309240035825959439792817817506453695941098843996671747368245796314937880083374949741031406517963624440011361076591709322346110629959183499537930079768844487196679726661742071656682576359939203854276618284977755542179162678350653675407539087709523714494641672640218012084095520769318137191129000358529559713172986361796411655606417437485018097388191955108585677948161628766202051591292565280692646985951576636796484238020366517692715201347593902510919179672374829592232494337459190454317828584028987200944197686094884199311161806999619859251101366617057955910299084416718882487510462960428730781356211893226960636570929292501905455799793005787059379400761546800495253190745393581763799879912638073754602857495838681236812510866808742623786427353349146577521376116249905902330198388596595167753059662619647991353802431451985926754529650957942577809057768735547804330687170982160608818036257551227153170382807500423965173167078657634540065209671980956318401372986043730411679805550209948060438355717970930558275068320888179495511724203601201288025293858262783571940548719292579495261971551984795229535360563902329629540477514451502242602852934367454663429985591540266704219169026028837104692939052584621318084578693723937200642514580797317452898506250521705516466411411574691789309392096665256758378358486076809832438441876971047974254179769620875556009330649004186867178857890898712611591352490207230887777219140542986655301649681345437126601562152726151562324989535010254542748447471117382442843564701757099295149400219849279214415250186516652588919406719735227912908026522036239600534933922787881628273654304730662802648336744912075112960580670817526326119644810639224814955365828397653045271487461296127898368017595843938396709591638525098960965233362111080101275371141968075327597176656378798439959496707788067532178020910818202157409018423007272480529666041372211942695782653002401110987671906306186927722373583340962643608022633524657443532262152776414498592538110283513149963084746616239010170655327724376229075783535551663799049201620734556574460364607152177400423900222527775538237204137035667566806314071114654320233113189389517696773721261146791958669090514724679981854620906739361735076596874906355846359376023439335312311989894140679791390143801920167910497429463629549159761280548110281838073210424029176213284081758481544803716979916405376700721526079965136281569042388071141046439735115351728091150884391184677573794929482980644558080334311215672074391389115832531079762982700753255318154050817991976432125935334502893143098534482006571222370683585617462719872457710462706873184931442567730480007752254826824228366831974927377931892810208219246875596345949679649429719082017804961939780894653944399825981929361874901554393048068199916211480684260568673909124930119748639031345599027078087611077005659815213114881852838900229801712291642805139784448982070595305168200290132649139730655314588538029391853111394986450578584716626135151330754572428259714791333477335720710846812213893469439912892571627201426786667780728739385755686752393253726919133120772362855816524493144937340839722282146971294983360949999575018749597572578739924634006819692398970998541367413274370288387941339833425080658312550796837156384401040341456924369480185109241924085214528428718420923703851196882749779643325362435613362276905451049191863940873084569501200535634604664336794478757446203808682044172866559898095702782006906012927506941439365796314191534439482946959763682972576151342948087574200483384398085528473015820423444865485651093691662626053254424284208322038534188127563967120180254843426512773260937412935254755330577676635367904600875505676940546024576916782570217434198061107543715536970542400484991487667053339435109978561958672469586713877809997188426802368638852428920137948182154360719373557354360609050621408902980824504631788073341177643622002791882857033580673015330394970757941003478215426759719608150675724416824082547781951479873331130165771121701330968364218330374490282014094282928774115972167172418098231313072960634088820924500939889722996161078433627944547403131898690864057217855861808403405995600522028232505600047658801224783383908231284030168991024717264688201217231923920885978201491528357993390208965494481448768634084990791789944780034004673485573731583147422720633963789346594784465082533191787403456751402577608759290243317585039799649370104932017667505190483164769821213688952019154814236609677897904854198188223610790716972512307477341177639692149930428844261808667614532758433335239185572087647613629389869921498581563583264227653406705387180632103223197458239234349457491585142866164962800291089532952501652071776954113428536590321637228646727058533114372805428413608900842893537386585668081318560425576343683587772252639128312898025418326254262813796655682667183785049030243477506670701639374742107879938825796636168208332720512044505040507411811309302735140322402396203331974333450626932456070821059152349387135059652826682607487882083705868336531878367418379728594187305694062087216119099381158121155484857107037881596516765282867891081737029395042222289178680004736956415445686870876617735952858090695572150480829106562501978627050299151794260246974291340544559345527093410158771957491640080682394051479581747166201013468365012583224545750473429360265633962162642724989491612145046379786028155904031501636087418274840524286274739879182262549733697475445050512349142920581259519516585056002757662141388959211659082671048244464834639409856123532508944249102340339797316824269036120335631164302120971024983661410358270289700516176233339060502552927820683601692358660092287526126875229225557367420269099465690392811776213208128001980417747726857701519244987494947071067592708048391025658642236313779598673065285880042099366744202976042131690477114319063301878876149308588065593970952472368682109268001298460870739270010466401170720112566706769295128143975446687270891886939150640242075917182120209283294286449277539724037064479893787404092102558271810236808063574218493807278187923458211689393349241516454961622515041257180616399779461857676624861729401822781346713583986097556128086385270053296890489297381989602351840484171296138882071056446383732397260549776043811900248636798022867845027427908115260080053931808135565407076393640165223077902043124393019630376605813336461764115173232931782093690753904802541222358767923172196264513260450621190681677662426774750662853819639303279443893178099760273654631144636940591859283727557221093161345011349685944582057288802539008458820250308721121699321330031598965233335942942225293862048835392396353812716290525411861757048892423910552450228938266929868443649344815385063054712942593730910200650431040245766185666920543822365269487919197970917281841290497090608048879305317501277644151094909348891605080313207131171544059324212418163741126424023081717646248546700001584642984467012634411759638027088394758874734477335977874140977102283618951638742300072631348502601863278861211576438724840874377695797250058586463817722759505973306161209589863427965239072417950836156156992303779548942414665594961468943526128273461081431796788741693142692243098517957137915447357785519349225042526536964465796178142866255074080124999334820215228775698322180919001987602534839024407097772688969328824856267887922647483997243383804420467527946972705232414697072244676162210156999214378896917747951109616307571207572009048786116323069909619269575967556462431986600537992737078656132846306825063857084993215780321490515379989793247287690379378168097291811989065679658934323087839463250640351901093687380400054399057033527911261273927374997208843349555656387848274324361421437779661463591126429976200696326839778280810586882676666170631817664091770894742908731813594146651400734359909482009632980618883583682578276465968058933831693309017153760226213367931199146774644240435720912620974866976186472308847477676746276412012356324293678739633549362267330306798644132911874442064942573883756758206486643776385513683943276980076173161803297427465795193709836775511965170035459316263650260699587884712030483172838057092964112740589378015479218466994286276098423695065148316559237754498918263611824084139894510931749112821408233329641220467321930173217336209771065229667971197160777555244247185376137964233557076215473797570891604122914835432603485193712310948253037245453574962136506408342051749532977534937480029575051354851641535886722144578609209381230281327535930221367662044883912652072914405016237734142289526608299261642660626595867570311089248918790297509293848340309674944939269968112565771824280451342867289540696087065720063710767178822914304045375749519758022972598491326630516392668197308179144822720512454770941451571007357638008500994797257804332373755256991100338340791411086841326328120672967729194091367238439800414093581018530449621504289355870253244406063168460195036426933938882173285445424665246087473723478581319758774029457508389554711363877892493102279942895597313999249154189752379412836872235690620414802740185627215725334777778814042916415616537191276731082063984687460395239882244234980811550840833253466604403375629405446195121601971893218618266042188780314038362809211010491937501681245492552887178772061884124045381345764102572798064286609318975067786684907886697230023332001641149636958367884846842666444523137355281832454229375309830790089671782137514046122520111604481751673591606787984904079462386360236532942979608314122466777029263590865997446800382827955664838082740755265321874711682318368521740792504916683121243118406682061760749614806183520421220842452500637508097426104511073600279509406797705617854296419122931086584297253776366462415362923819006574476205631843655888022509732857015709029816452635505744726091906929636074707034654473740848004661044590688919354732975014117155831407804475032672456103089223874528526024628133245295215876636196344522848311789522818803119548128564854872311052136948353055599826300404666840213837715367849661567259768427291094576352941254459110424602428383635771299684512371930866307254512970697415614714150085600635270436168740246119852135600910487152631843687891212291455609280382300146864939521318884142307298027455720405746557315937869734218320780926052384502471087995881301873321766192207079579817304979233390193399024171990685626473854956033469393342581187695024700308481257283035215802537042031339217444848013549536195325966580088160571717915697412936011154188494767707694490677278413071841689938068193486272437237895180512859761069596455269058322319858211845120975962494394110747522495156318949671322575980688685465766593481554211587611972452151627475844661590919338198466111400009788925657119569843783106884364089481886862867314388845117691437453011149202570061446516605134080128926225769923017610072210711151624755160059763724731988060072194359440557821412163987479137530396676863466704851248544607679207331327183919103178470026397714278103044744079311225094048856935072643965270796179788322143613069249039473198269561727545214869301397508514679615294759227872181259159547794800824505414898129247325465159665679146716443574438675805561617308028797451389817299443665695468591513908080481210298847410184649042273171779393413999578428442484112044489127835115270794177624924053183941691123375324289558796092778471939902131832368875850197123095624127372622251281695712490483290957901586497742266898153885275043942276047786738984937581908917193038554149942565545859580232529537530230502628862849201621387090844169513961724532250536783876063762894496828350161060541817669430381010569351626206303082670836372313404835697289350767654045175905834397991166990295763892639245199519461347381619932629930962480652559656302603578954068200348888370633934571150119026031051319748115801894793961154347806657788567042752117867588038597491106742184740068849456372930835644222114490875061305660127023350294277689219659903921237820360142633569376194368682923677511862337555812716994442699562844105769997503022232493895109532857466976875519778739544906108115967631309331851353972477384990515189172901397465177621515493758233321613369836008915950962945295443954712405156849626929398954609470168123054395577381559901901523722446366775595389864052689794158023330158030611169826406313763093628918799346113567389126034974399264737725251358473377523732870386258158745724001782636557577471945229921096589173618278829478037208045776990607539541369247022578516938025175394544893053633768826467874363032339736620280428955955563426718888029661150777643983223196588722815247418599703065467984510041983572983870600664165794573957615345445498989589985957392065323033928698270596774073844452004532084037652337379554900954400884553066122494387369415476883857429348722601591474440552261686109706396359605601779365910812027797887505650951166534286306305546850606310166850533642400616838317920167951644221067073187119707265719025267173012354538323706057204887510169536782700979901728426367179645717698034752066914883288628801829425711818829725910863182149607141293738513851252590737148397413443357567599562479127911718424957195269013174142531820575914340181722768279348568593461780503339474206280445661871447734213307537881065651411832359503854590679135656456759233290807133505101286473223680588560316288325349933988665358643693317629689223158959041152746539357293030841345756336518004677294161433751708328782737484928330107792732304967626709301339176858868093161590399332171926404662302545973454671285259791394835119366318797153888575563782538106409164372314195674099929266711225386890575230163898307276601171567018101307048659701866951819987259880285853912775437433016014213872588569372219331321888455683868419341392075164854859474250128055257055545574030227720872805428508973370681479420441569190821786577579426686481027988216040652276599969613133736966404395071349716809357400258548632323733844709270588491999070498978514734355717500587658261852784305427226073506405507459689679187467536704120050018140088424645833295323585999292314999689611630571446074022025336962670513788517945036658982652613151256901125602037997577855918479100790702080311114435428276561161021990333174718475821033534208821164365121577618389839476847259874014536445846674918137409971187795711557811922435704190725866362295496935042513464612102241143499656451080027006892320401123406572835493256353002286165011064125726630216949596447634029068923400226064740634394327220990734820343981595551945404722845083856632915755161959995398152336649435011048977238283396196339935858848285836266611196403873059309703583431442761912409414889744874556422641159480278831904750383426263469367071402741882945707460222527257225323982501757006169500700018469500452005590360890391079399996769262446033916306666586326173240278743627778750210060301737648342478448471569536836553121862501577800036286531276786504982778001725272931536102028564702665113315144145725046122223547354065053031455762002959235292280720273832877322789734632450670451566225388633046054970545197193832104117343450355068488676771235159408061582479075975632298415466247765233820918259209464087651160383895978734395970144530497434382707123694510571420670000751938812873532867634208758480271609824413705310803790668127012195281760380779279930581838169671416781751607775772448829785250581230979737230086986636343482190861902843753732032904408524332071506127640302755585178237657695746791507997609288716403201770658247646215575660997858667897567559242960522090343733594036489089246989521958362133938286148538930172630760731109784409930521746809470239292220585402009458106166325288212976370540294664362860077635311406827263793739697049923829505617826045596438812384118468288569566825421501910705995016170711024242131904254462555164005897821682109548229200190280279483498278251331441976989890758439529965531706987602372984216263459457895474507143234805863671559997137220720192634115899969991466315554026032474530847365249463950949388209965484570246631396003000249748658365315754460829673776295052536960938183890361487779339547700963527148993854529192251580439621568675168156791180703559458818939024364815490205987025533275041428099361382510120628520976509116465591013194781685669356606834021767738617938686611947551264902170400929486394495827467662500586921075488696482607793122998035959261994106134190740857700223572213799844104297477152211703644413303717705836452823406275231197535573711483718382067056283711649327326407410664922915326775200557829644411497169825501423500635118940746472124362486854513551427093085849896598096237605752643348769369243207569725333825031975147686923807809440408915449433535577699841622617801703663130997717144250171053063665341450244264895696098706640968576928447183429442381254928142431514968717467856076986395977067599256181856371794252415881719277558734041183832021034902352119797640102327189473323901523582158787683820458207475177971018623929895346309220528067577940495668224051734149788731797516889267192877007952245985145097432354344557005529226044860134039386695060321939833167320023933954115515219661755856616440226199317405562212487305197549744511453237507238643229998189543897141195706333563894586826074481510881192590922774118746741093574781060388801268201270571494835454532083605146277541865460818987755432219589374530265286053238576285901484900146895232670938670052768011288286411524123361366349056176732580582021475104414620525023311954046889485998159598733068919412415816595691096600982277971354302616586802955011551467924833838260507590196545654861260963849528657854128861178624379296858635351553850981124764806929531062050230520741398777331620707910196212148850141633687782032003497636868918866733526445830734680373121828476434039110314416569327390409609685975381043327688996564100410032972927893328202084663220258445650160212496942737880973576817713376913615297873006846396929210062666644640157386545689906572727721153272821551789069711026364028411016013830214242481757483021626204785942527442041002748593296939995748910762607171071202132753748735824760218706190071317140416343865655406218963632995682653690053977290706924571610244602087324078888104230119851319386834735121804364957801076557743305267130713868416759040619683185556877618254229347374888585242609277376878211265314565525574396584870714295783788483009704561540825236238486544761507380344291167961396804443016232056148383372921705954624691002830704938649209350219061616084218458935380693085983349088850296914686081686800824501910028162635401292298867888139475550261359543511262743279192435755213229848856858297377040939702337976178857357545599719303493325643405709075402384730214027185182106020289415592218938872774281493270721313206540624273199617820042920123691051083097959481595670212970316973632867222116903739539288325818572505183421857807668348508585153423971406624101428136755135202442795324536496059029440043303029483336559182256927590017813077800482257139968906686245176772003513233517383666033635669149979100475775237874996473836182500420842930786452158171441199377281497478335314318990414134051999291711009399694098529238140519143438917569121269494149982155549493636817926514011393971074002346161053989542923829902495895859188114698803186147419029410554199232580229412298493334205354168769517980277765319413142648186697386343289290744882646887726342259628302223457181558932090656020545920601390290071681868170390707903835581473036361497727104520543372187558018540415956075618157329416870814489682955487134210831260649571875203873824906128101267137999495091581960503668894259253439572159701470118934632308269545215113636908083980954104856577357887731789798926350083285329275143955048188086896864513961319741890722093299995364213220232110043402344735527839233383557274465317655010706120804035303522050931015172760767396046935199058824617684268936746748669796790451253887839576237874242491795957443657644993847039293715225629761616907800167764514674403891336252191611513010986144443136593000828399643341597805269408850756229911538222622844685851113605604474215522523181481106247327826273785855592410986260910421825215073947966559942557541945186723968865301926049409237552776642202551024289792174654148325224785230244899870963777559573653961351918087647643465623457497061799916136753106034120510774909021975933689956075890100425250516527887595228880284215380575754697529355166160858614561671189547419471683207004428805107505162550412308419012747094637242509831125512494763759689898810485434565099796607165562676228087649192668430123557671027080747811234674025118019254652187728523641584864307983485773736466461883326342624270965776950068296023872092337063501389060766970558354931550384544455725385713810493438644185678520189307364911901389582428824580596199085237186662014309794075293588840900237356873364977021553757740425715233171870859480979206206280378954856916915494063204263378757729986288383326508957510966295810171266233961057899442641727871793602510763919360718904401611196860182235184309620823188776538970512452253154927032604199743805384617101936416375598391258381299397031153379584038549514799790621761958369502897933145812646550523243313219056032109785348056633725368163963026425362047427632181964902299114373401676699281172992674659552257022267549162638175831677826322012653892295136316599904121324130777663210097964050137390354413100044569407572632505901071834172898358727561468436409577059697629606070296838326689929682764898850533505783429514219719156404918143090244144086500934249467020030543950727348377173811009601340079146429610075811703815331756435200005024584530357489558914651644186849717761275747759255337113792834229801077867392349775353382619945804391803657576311275357077765731979513862182385291892423798132928503091679731453486809848046535276804075438705583426634865519482594944075732345939903737554804086097300563746858213853857462041112722410638563726744520585344246974719269202785970209859730955351312772782740616962228640165008924483351087199715375467989898221872492767636959798678007983615785382438527604153169561920785542558605920542579333296075327181521973885018096616776682471735687940968999725140936289610535565538351667673876410950436375374471452518471298826385679696421944642563756587159161289075419103886598337955658823376181295883510939053490602167790207460045606286137035630029949812980481614018309102203849641474155235741818809516924128350457964284209899632246973774199216953731096309826077387977856663867192419080358146904285750884280164748868234956085126058572888846526529972966055080459027901103066325479573914487065928878357890594480243459928056018174718482755239525926554263474475198642464631607690503103933552032969531397781900031293100879878420628442024422423853593169953272931946256082041634622811493394509984080966585320089020591836227019719527052679462593046009696050268671141861698848964696368049967421395672524604968231184196161187573612858824631046889217853007374764983155402212805740217310495022757635110039536822635649819143873630795031402432194259122227725587786029655043216568296790257289183313065351986239360965339105253456714682222683085238064067406943417161174947833562056690476933993069071841924967342482240485022822566136541648466430309117553276968284835613549934130514522143084725216779166890358969051023751643981110259107940718031288176583372925711893583412259873482098666301134741125988509520245954350840976858879996828697312662894193000079896579143217890356492507399166461061397309887992834995590372975668672540877942378241592339948005290289396151895457848155377750732093563771928233880770844062726658996622813882771492863824983227599002185268038289817350745874935463351505415631096574840936696254071643280243131021576614368292166254010753278200663806913761380055997206931178829624047567589176307344110630328986405752134199993169907398986621620294428572785448164359121058901148895496951472216438416562532365003640620968891236949983798703678987769469715299923635302245839439004325449024827470805490426602291069635261052916718667143991991415584294317214495402842802778958138516501387533963651410039844578527081500403996705108788758901808022638852917078488608514928552598600272273208807003720857671101093939249312651545460354097644111199443383574417830627674695628169361480048235371696849881942544576212844618462250357784330403735845047873027663538925287711089186121437126941015474535116608347373681436066730425966449236413931547567782107416241127480148417117423444961505883125543681143500406834970239599717411574727637282150423604846644367986681870970753261006628734345338394049525987661185513230025870539790907034926986334359797149772951095870220997910085092901937081922567288115185888809808589188366679104414973560119454850460192569685005747576044587052200880553425231880319989302255334618545347973058164060338556193952069117101776291430966259138003148847849058605779900338322638039324831592457232391884118990654509239218356361853740857916686732130990233311591736310453277937486162630514702368174962978458245685274816821857042204444761661657543905788747600101684149866585787674912404216360298699166997120708607923927186330152562868813826921421320757183194322832960562981581320308200295565551707177170566862240935528512531707610325084437194262772514124114058475051842869436690961574136713586653397719903151527110391813085545332470266153398349337627693205414307032322319323059174249118816617181249478517682319328717685431317162623394356893734569550283258977312899219719326889173851040843729219038696699890050372303283231137412652595955656043802241975261656241585358567137438651831426758688519998586629237004856247261001201267675189871146789786363433791531903421785190315303651896119434395649716888795683836604152262432020200532027084815988464557523655675816403006037869836020349272506055887915206522018645358244516874521401516473518926265586032820216776635213536898879907711753661257199377681736655874564192357088923717347924770881618778340943729793416644148478234855485299389816372450981899539721810111845912192561233100487841017745266566183529789594869222695813287347912672368662554801240091664632299534189005555859649971105799448595274986538775191403003637053757131859283205080883948420035457852413494994576051818717462740637842306991837179440469510758834099415640099776827947324741148541139911374910887692549106119471757262795032193470815482880980709057227397616251196078316758979748898982063569605208356582376302119946306171464135657274339437049342882915184090084891040341869993621396124729513605055148210348557200833747859720804132026866191762399158015199807919465708816259366901172116311647109806452095523414010943557289388092567012233149596597477925802083931999061449127981008148669569221404177015909643549823485322081057131323542286729009083479976282586553934508825987263692639480057517662117003020714150051776521363597428560744833134609214210017742739805855566588969306547103748838748497593133459895200568813875006084049788471024716143391527579916140981000801763048359410213348116592848228447764063655285601843763507934793786872672374296028948999980225554468664683330788714470810369976663413509846838393070249568948847647020487303060355351493084087327726139142729032036971503126217908816135592207845402447568094582070958220929309695687121293820267585485885802248454286586583274014315525995886300083695123796775079540709629132242344821404933002322010660540077718468818729157393758958220237576918073965872081531317810464094922740669975767707538198259007755583518149120284621373323538205179114592506891729203925123638558919868577100740280032650674266426369824527189576597064986242801014618343363301406103330097136749642305297271330412750743508360956391213789332131635529884131329748697038173207141291912253467419864683399867245396039569435462900049618412172950106224623406990433027490025109598635672231499047082115652035512505056251195959650953154813492539259952679497578208440923193968752287644672922765180288144418340788248903210485378877667760809659324034868845723505781775783147299012775970358640819158624253502095659651190607170241245775147594885116487651316234975699160642405463460756320817129669099108177717281533748472254201073090030024391130180623051951564503677376345940918311125313840519784867700805523391949170149526211127273382838326788405055089997932090456337789401044648418294497678584799704381241156066640980656930432300012296018652427195950787954297239973646265725412367313069390473146344493198607753994713312889305572093512303590066582019182809430266520626120888313507111585714425325236944490183007518980412447833244375985798605823205529771266398009369984883526018187184394005257378707269632106134490169314768211679023469091071068354029373128360846350040912653047137567028799483410356206699460318465230888098533277532363664133980643050776985837389162659695534759286015285506425421836102180581627049935639826573597017150730514560544465972546167427014680111177183511269586553702846773739237623551418099573506985151107944809282340509127899669553642124897282371275032440594573062211787075270581908102195256994314216198597830513610161707239284027582808971715104337173763531368659229285566494059734415647047063423154033799124307243469518567993621182287420019085488265083546755945459325761725178684772088910383974829564280571540585450282107797743115873504578063678435265598690496880742942067873145354978190351885167068117875064542985283537817972857702731327750254114674716493215365354917902781431806413762409817216572176617880776347274327135638074933157132223741191028765296224179620698360830489887560056639628813246326395641828931969448283596143905342907063205917757143528793592833252441306512495820103210376101435405876392467142166287017439971350176796062643599118198394074258434422518123191936819864925520740581674012159960956123862789064055342556122757110990301219896034637499824332217757547210499996320103339379163825000924754332516859826054483979874998584575412193323092843589950224082532164734847484180242814953941069138810398200005222262941133941421502267841950859062124727106849432945470920573114267584541824158385007709154229590692315281865679568754832103361980225322486444095133933960827639306855004298205208101427124534455763447370144503495177723065005469372184587852496027412605344976005217543443827958225940116471544165712439104094343620448344606584960081196087677175200704494599870039345184004605277219969653785712459626582786789914954088531426334540994032061909645089575110526139421843006089164756717117266487312026419461506572399960243169826665759336918563479258899937769032633171846676151007370183285766106996815057904796831729035108519751723505722747198119778956361055519486460373708524356626536844014763501273567843005778338296083996424492220073447933908372923425540463969177224431975475651282577339454283502655713626712915392070967658482895002111133912060969358477002606166167302662729245887054836549819821369609976172215567119461436633026950592721710113381396177145457514800320436963704914444778571666691851859519085886208338619848257518046407240683784664213543256999163384546813074563576462843273268327905537021198763568318645706081936617876144161806616021040297422803334443519583335513887488901540334989555557517590300732030880179458104821160101922103607297104453284981042244563437746097131394372103926399766651233310118842121449386685260149137574756942377088621394072084792966510825609741818275181848838550021284335574409566874197608139960851637189710062079902102998001552818532887705471899400295183704833344579035646879873600953799455927277731186559203677283745699479277740453909425995217049847702924925649414312755564422937170164484197325764646867082128992715938833566803516500024535740775468094064355635078025442786195342115476440300982590052785866625575585700987576206024782040917956134912451897175199307271026487655957607031905084091390085043888852410181193879041416833265826968239696567643643316424049395107915623555931077013327879812236845971761235274765276657559557484278438219175289867968696225159940063241366594433015429976915929148681058854302710195163583168920756306083267763955392047219524556614912578283269891560825124280955081101461291741311500612010785922469179393116856297940070153899729171154172606167856980587970258614212456216400294242683628528443917267915574354250302982701839761437340567103785892709511882286246393886026348199434738925452071804789474643381091726769273434388941315964338666708247291020960826007199046585689528755604679645815831800014235554065932650806829451370950132808851308139920642395119036942953272774838038789134729146129274489642219506235853776177418697542612013151856160631523830411929655304585345893127370625496638872378003739241141916808200340329602025809371217164123655129364763354968364559125704840318313021268329487944145472903124097934549589916232980675933614341212617537928974946750106008450095534569556151149938191049776276858061572924491321043989747190741433938231931455197873423092033699738902996337910994472027389519861959301666168610266006123065727146567944702123223237999698137087125802501387653241096580546079284473888159560374832394693690476698264901039208597386419284724923806241290693861826039083103861683292426220222938446143727899965708412694762812630892604748162646191996186764920377856354851062278680024003459863601736094976568531901033923392070434018920833795040202197392216388787498873166845194556794173808501488298546721806182064127017478785421335489540333738476965961373653591621234794236396983798266337808656396156069414889173542027454616101905717632907881554499356500840360286583731406138701084253487474178538102033428012451894388853893216546683455720556025186582122796486468299382123407275115536797505190394757324183276317785903473572047391421418177773427693515283475874969854119305340944226979127961740051566950757330727719764576892216396842859577537747726754921856131850016778618827536646639875508889996816072790289448478647599236962347020553671871001620604140085855570034696847672530956463862550015233326862282902383166499115433797232097450547017620669245564032823218565644536289634139693598046845683707696841106501928344474413317602090947396042349429092471444960691640810914351060724342804910752935914134376687818265876161007339680953892092832726975077891996086633968944835521706797116469281158192054432695107606827362201078505301621096092188945541194468894194710912178679247529000877227980336572707480144055965946120855334690339866442900169033408300435078295763430521880921462123656448604089439702667612466899516900427197166766303302318929287960393172259021682561849333751168326267240507097061697259379201663888469305254055772647930458179054591860903981961413765558666646532059049405246003266499418454003482979388333107666555185073652943928851304111031995593551541832437657099512204625909819079528081710888148885479896089421531800597811302703928549248432477672749451788516822100782435916331704155998735512576825606828909258180526717963756311454075996154876074947914548987417050894497195023331744507716327778603329519343517139610327592925469552033195921876075587996418589355358517629144895117959491611785674073623236000697312089892777570560344297650211095098674425933633268626492721718562581233339709316201358025407640457419179898707083494203267181735180396670149027401643741251790853392626804237656451787101560292651702464751394823446111863048755901400448550653830177266517050983991813635569844289181379168817513819792574292833241275681938951652354374434631250588285573459587068786885854036802634147547330384568286429684784878272442265319113242415213668873592710055453699082076940702260634425459549006593931712482733480299422252466291015634096958463583855364627711333066634199948986620247803592980191897371088979648955088778282833386604797634681448651824895467731456854954821190667644882115713465501258774470310095899309739296811137938599302530758196201802605171337877119828614619308965804294932833674170762624819993268013492367975881866393039228294675096927780061577822912134768791008317448158551760746596521591134045308703611029660327691200416630552787601004534404805255251787264310996135536215915400658245958505098553626764551446027069945628700962733919946133092912573055777643516336379567586318113956950210028708677168185539522036368021193931847934081686720847300366923155443703736498535408217439780698948262145224738048497392737915043894618530935157680859190968163638147847175898501290694963838772264840854235262982199797086627267023409562953813401071004012389819556766059775180340481101532638929373264094459841498509339941464759728371239960847419989623948535690543830783164606299256961470977927669776538456897413737817125911805577088925751841939661689088268719473085877834553340905805130613766207309315089098971228838756237368211172473784216469522274460392059037318887104722473320077355669200689393807604482897395689886690900141054295429584845442507334705468367138230948724727260898014471098857724950614867246051008274112434122025751424747789165376997414501742792787475268156548617533796507916156320632750346777034029983410311860224311048463213547220587922377316008107250913632436338588112380354478871312565685499971709296530253080213504245020320853833634939965735450984981544265198024268701747107284121528868865515129790220498547408776659528022234402548462074266550437756827122030103811324691002031711716195150989614772188269202111236139866697774501727741629935855181269784910733413885315243991948667206908082912132888733938697080155352156380796531189015786865911852850497795972570580786363177515766555977093641363517642067869953051058273552771737549470722248322143714425142150880480137808398205655923096102867600285858625493584622129798184567120832544129970154075357652706616815302299106357944619668276015840176511861785222412388249304432379292176194003265005438231260223357670509993310414883022690449898229275102081332522131450330745249555282886325367017735838385124056843162863438255700456650511492135286795541831184262195751962328099160817551723463372942449686553121516129198914082469188372739322265239064136667104874525682314542769670916688389293256907287080836639793146588797030215750156619790456406489794105858804961463141422654872345930026028781679854211353015941537808043433509143901845254498230640178148764253621262714338076863485695841913956459653533572249299045464652164978811409426690160337698995888367859112683320984348377625911823323394132048417313881649112334381719067674204482244285171369706666150189401859184289719176973362233974540831428035857815613286811001991665528846397132674812896095379439533574313127826194013312053652130895030618213002700166482446238805673564555677327057188286089319815280550023203344826681925987072875453970130790875125398329250222592340064823449432957468299034516980390617092949611019219787468167262164217709761771118626874664733319302398666602786217023115674919987458119482188032920510751106720008953413448079025951349347755970764359676301078818405950492019948535177817514688621678720468513205472271668310700903648327630894841840458437023399337095023255716334896879079021417840797467457550677868724930874612342795021707739325517598190219950691123853731512307489343052855336966236205990802138233833870315005741381642262460429753160933735211484722809364852478736898891252309746868582194817544605359156381996412607948879569855014491034593013042633984714454474494815004036057856653174064316854937878195004995322906598483097104969351196781691210891585160408672032926359747167353106342394313223671588997695130499437090974589630428389628856429969709463449746775466521886370420982998810353225661154480012253140658776120078474869480467374985002345709855876157028892535582735164174094359940146937183547040595312195669518918093875151622889718586151792019677038920360822125699006908958589997168255506100805642692585237219419855879803126691303453003655640950583098459582646539938735899875981320033079003518987071189791175394499690559322212795686928093911639127579644005804772593254983141226056029900226541809389274312689449839545885912371910638877550223657427489586812676997970489674813884767925174363679830123711053567844009961571132754522507789383909653262882468467101957658532890191839429352524513170706693308357735941251724410690121248388906242367778132678485777411761569971661462946464151059301227757986187166933507823066195057497958586395107580432625610820185336411472018531071616736712198923637815198185736986658423412353342718112384505214044714640866385907948688573075458156008886586054314946662552146230753467880930314832192656186745468589832537363328619518603856958987487599001160365969690141730486990273821156172612978998207815789832233280730311970722766211569333294120008114839842389656706426818960479433753846197629480473814634808362140781569467315887773316951956975000747873205868674478974624274879682117375951062775702593284078909719843600420492990359783073803368396015359720768055554744683770451527340484243859347524752557372066855469545771938232749752276662411912465982937711001433158002383018886573030743768704357158224476293077427193192630893778286570241213035863317576737924066657653539305743293916495970545277833589591860525908260938329847605278209128099999608535173388448857991088861044786127221076833247559190863184690686166466184923675622501388509739962746835635408630793487675287578763567483110014204486736769561194202729052321843488848089528994728869732610421419857007557868194342227635178588032038934529655982059869929123229569734718756859211256194325976899293414597587645992345046755803742930996757487829531176127194664474057540098500187807717573292336266054669505323942589946254885755700150321701218028627762370650327699853351606051320432118786353352478291588560333491705355465313645184061325062432025210483150310850939709256930288818553654251214590589531579193562292694780086182523789239491684973799326637100665421123415270155576825340988449747884023945439559461101640397451261200973129976668956420851127399090249612749701836203457386288647333974670561705171332962429188542086801450350495891570557499662259073390304991681794917236681566692850212958894429719448122809372520637911055959858710777412693089230865751121774170947452325106339226596641380952989686331926773917881158658130497740901670432974924941821505592318938673949704568897017926703942285169905196428684975697237837961896228427429167365825454682520249580110648516870214136826335549942899951702095811594130394524672034455750781227459401761893845280339436007929027202783026151392001493196666966345898078022887533875579980922992683367958022471337650109735550662277905214533747606787092544413378540115052435167115127558916113133365600703329156962493224044713157044399783239464227417228653531614812696768403187418539042890846467781890981411735362258977421110294438808858729654140136751052580322461115954869895269846557343451655257246862047963511926644093639370789573531116276692498502455944190344593893163488495343658493236531819410947817651466553074062940092096339622637512414371419822516265683624605835622884518672892499787776209222089398495579646083130631266715790450981565283638821682756588489203027440900019061828479477536832385851496159900442484620253047042675856189075465754513235556574794077974828939957290578167021509583970032817036383740316052810198550468905041782148961963561955241623923867324964031682280130375737809286434853711571830990425795992765161128421717634251010511077601821986673268580292190741324708653062224060876393758148166544629359051826929209081551545507725979481791794774690230685955827780027118943592710666338246342488257757801300082474113892313044982681716268701835794384539728415596253245028766155802848959548718056134995538901620347954863195681467297345331179337834272925158932426890196953259896106410431575153478911458487408829974418702550595452168303633631840031585414395060285585828549839065623023071262991974231293021823497079410555600719676402419143630493531717593853945136339628755346326811009644219801574767689272353972251553567552800755608588735025952456929369841370298241254532378478131585115452132962599635714594657685916496355068846043604529374907947227189726180616165437117706330269326765840977983205499681381532032170816444185932055685197199226232633882066589925002951270599186504936227720258140640131245325758733264036038972856451816053378523990992421616075255882051363337531331667990274133945003421535503328715463743686811836921745880505658139746699195832008519439963264186469853917358386375089417215915378308656318149619611407973590423010532336259055520564978467053122776771884727269026711398010093341250597998679676336743798118034387848299239053589439331161249602768951630785552605044382290252500988928591833708149041873152233227544842074798315925459223173633641011163415097069749946465175552405427095699018942940287783445066579533527907814655946910903315200978220940217330635153401049892845853411078366361242499769773371465987865907912747631903271415137349553933503057283386504889258204697039104882920579560420358331721698933014820860931674605809445643913245922632415356080332304103025860023495822496804653254919374252721585667885601308800788667148017630637986827552096045471483414969307423868445898439670087338956719652887474112653597978561165263123811503996747505554142504226192901541250192594559993084544270737678819564517619450730650198253069823881500470237234234338493665293647346646172892512593567823610891967033951621598105658193303627198348890007949199843257851890079499831514107395790876504926270684669526356453817776903376163661043872610352177114193746966989090510665752487433626399655169118408570303342268360554646446422266058266124782210999163125910942111520010530978062020353354011709015898120074797984889710078417085285314802592366196251658750984360228891904140451637573016808759779300962678897133218994889930971948839201351020328027332847889541612373938919308222414179355771562069867835221383573473132242659866756271783997063803472840771836173677633924717514137466671223386557365502538859023651676942617574381149668727920115031533231493741239413380658650766600744496452064040240393672607492973047829800049706545386692863840337826477574874837854734843510452427626908841352159586619064167401914176667144778749859457717403400618716733375678928846523429073688811814441341604738420144866677828283900268294075665892533589223550770561856960865564644721185848287017355170149147456255476123630980681194037237973450905837618034286318556791063014910009402523269138409335498985269054353086729429200871716365586349933344512297184419963993488031269978094484709084825157396192282279487040601219107324452882699083671249344448701900015667106686489576899612621434881095746745428204505809040267705066523605269721610091850575951222109511409911083178036751988078512360236531826045327363904816172778605671676939549229965204015100653511604206523561139219116309665937670848251184808485076507510586034512843783438924206671501595844869558061342081809693671276608927145701363825489268063066997551524869627873859462819775133177560941560151053750445442941809222469713000495780401747476726132169519182795576189629596853685752029695636304934990329715228024431697128689174026903726228460034181309255103164413438395779392810005206096469141708843481346662493332951486171527777678079739625231198160880507967201777486689813843372410760733458548884510461308779105768295262614009089360875062322819287490057164612909977554877977981427811988935718914276867281847372528956623916711675988094824418922440354631218865400403785161800335396401435913311250422695316205203717811669851650620946191719941022046460893452055413422762352038444342360929689312275831690284687846652207659293000291025044334888348972599267026463417991495584801188361291553147893098894595020177782239760822867047455750421569295547775308486253998707312638929908581875196456721210351370331015804389441191869592947022989949132718672325766208325592490299973087074488077208497486738262452115352412657253302661575289479321415448397865520580421726852770826258606761842554162888978461274220868569793939942822767592588364534313355885800460995969371947514852086832382013903906902340815980538584862440752071419926375045396176139958084462554293350770328672729120942535451842903959398809495226220402659282273400681342717351892704193771176029803486996741486960126688410109913902716119337109419160500106233136809970603582866518642436778537416817609539605860144076516661579575648183671813822967821844332560053628713949844307741556151390721642800475370796683465031636255159557242650871700528753297555477444118994935094359126307937122556306852455810125593197661906724911982163710524512797408289170666129510244959450951602193821024789681386506793862100498249598698312472456212189396513840272094858477981178243361399858299563381929350002565788644055086040111502718581082522476479030338621451123117128265579043286348078855162436814538419160204562303179827734559439535606884204577273911105628455472987249427597625956642509403750627919916017852948809297173778350251561194882831471936111191677191585092177794466529363582751841805277477176088579993554576082394740086990754226147409241557799243698625434397434462535323994651506946192420463938627656628335966736140440980329944916844431921307130551667202546691419785447573351562439887273420001915948581569475657140845381659994589223196030523533642867192132285085639795873669666223471451569155680516506044642967355706055921596818637390833424635852568158580372675123496389258646728388557325316303287410099982066769896276364236815290746893721805962672265503410357804466341190229207033517186772551253191675330591575213401259612053661407547000458943640825062837915937438757486676474708947873508720409171627879492798378122578602499262296104646364807445515637475087769181190184241722763423936858001192419557067588525167172412848635481931644805771303638080709615711144127019629588777579306726449719558050528703309305989395946226457871945055386872988950375322068811296704013408927965375607877520948581888308983806364048401696122991860505017330375504290908171310215852399224923210117449025732631645013046776746184829650891877127319963310332032766240816653711035744889128796241398052566390375944258666250549323326810526188678796153427200611015146697743442866611505602727782240289777300196344048957713795748546257976600131248319904154444453653430478678192899560271834291624833299868084430890733332186401161186712340569619277426708567584826335129030963739662814965727814052139386062251985514714752552545167111638859199375085090268214068154123457374923187542809318028075895140664886041976994582141281095992931277410355238264927884316562817456277463010309178119325157771519737394466927438462868018721547016451913918157415991457713476109969652314467791038657098616678439787933416214376877754165726902641301059080966680010391147886548821160448400370604369848849647688182853789725327106488665450792304367460206990634238389164656486387180490501096349711487398515422797485091725162872367444436455613244570751176526463913622754802622012467923988932292947071055762524683515396479773649462315598429487330756630201574347659265394135116257737527399885334372601261142881953615196723773451170355679256486329982580536605287254156858296721597290381406475832557677061020473605036369652955487244388394916705413863921116259121937806205978256622305493735725911019157943032765799605475225361220804026932822112637461183097154126115654344391026570616039217740685921412483435653783742945268574047847037242141711244024985243175703732336698058472174971138674319222875847656080403998828864999588139356764447529675887701926496441085615312420533733307864713255770129684473617401895918341263131239411362701461252452208405507718693912282448924862063059046618451807947436640958162862104483851646040497836324052652738092810876681036103594407293412155906334624173717258633612598651012465467509427534269762083588475705112180058919804903429080696678072127751969379010176987122876328073248393449660520460570800745748759371750698660535195903639497349534785340432367625234030449198529385339640382782102324962588988429953106275448577879003453155716107966921697822006080705688270685421709620242927966072608737217010304606371009015569254702562558038141425364065454826547980656755311068237454032117544150367541027882526506045535130765169462178594320456086051669228309249402127243785900363126287317738127583816106601088914126788825104631305369741794879449735382874842814644537138805657568377359390238849619019275560786153400836019196641875903921483425360022245784903850332111669759713945055848595433850952317515579639634884550702455952550225895192299542292634982819055705347363433090579168101342777501943721447593898095558166424254710838089819592470148002407558785475293869381552944955501112687213981775808344377720286709238895458425606315693798485634743164425803362307818731805082886534723981182146780525358848478198808385077690822820158664132168246583850429663480524172798142282668061213267368240291484077917543533223191173458761551562843900539166664871904893327569880353753248590493679373968612250730058215544110759521231446858358236802588625553333748206047955296109380579453488154246692015811196210058370897509477564090849739654685672357618098701754628207437534546976170839896773677664289575166766313392419052628412928954725817140601845580584477925585064215772343554813450779652559566934839001368922096835430622210995074961830221309358042202472524107896614770490594807123906999823641515078267366302982530197218631610506317272693541578732777031628435191724557451635908722857304399814222736038875961425011336508976226158371903115084379343848692899854669333743618657020340704549072391754042060107963533735957176428974986797876405429233067731997481867221674362196970101200281038418852969715486784383596765909640279594839518173043864981086764769248429002620953951967898221847678055518753823789636515309644941266365021507377111219905794094958876661738398283402106712505406423492183598936870087088791979231497046073583298678769575250185701440512397793181208465401943612978221947937938932425792099798759916923129741441416867089560049835706092939608149841914407950468331437592668353050874978105487946081936703181351193181339358415265679959971448373778867874987829536327737803124565598971206876570131759180404419490857158387973433870899102034945759394123972643783625586088331649839835742799854175745594150125376897755302910750373337964824179639288448042993783149458560710013797316626366183474508469229185367200663124029097814311531454313951358272754755949002721521774439898209295092303267264349011822731536384416458345671251646331863469791656645532838181510022815689023830899108693122122608594093076871736058063226384591814356304630036571335377576276382935000169939375703595620800656809386436951482392133355650775246958921018769137573996806120856144562535025424431105991370352822683970227296962891004342271822512211599987064411510746952579662744002528764095084827540765591515934537679226798337464463943287668321048032219123228390077287799233050687294003501759687435602710643383640252006415721375733844728039835156636822124832558226626809328748425379603963854030090134172242738689137244550671909220894052048626255336981423522812905385717821894153287539753889405961326109242232422293134033539954781314513839332165333008892544117558341953090136839299229320719781729526613012960468282823095586118814507671244150765117048863589301609082472754422995330420168957143596383330044580942332662584505938291996829627049603115379917606204842494563163848500921876014374647345345794963465845483448401042894100325536884947364002583086467539411492756984242292937110962054077503854015993040303595484355713032472731353109412833418403639735338777566439530361948437315892795971348562435144965332412833653661549262281390460681070725980409959356932322082079977540993587407826582571254242852950005827810364724586964206479810190118755899845269751006921318165204409128408865127658945056256856029975839777669582783091953700887648437135951976632110635046445466179972964497510891780557016021447185267568931385208866261849935958819698546808063921012243447487489601939221515525935514618709799157565658732631635612627260919901381731801572580030236977210760363016272212418170747742958193785553804171822574742316107734725931289357725273791608819505343129083884880258221462752802064473010721395953095786026094099346928591450894748850322768700705970677643311822890560595844554299767289854196394994853468158170034787199066137900641195469916305549141035788452692304758363467153720780149419933308436884287172423929555639535942402926678304015456714533475420038185568179721218071675934070446636568151031808428374330296906692142899199151661355540545722135799729361856253599305279249918767467758910275286920247116179321717445622070970819514437618391052372100558357179285182516614795188650623514550199425638915652869774929428253400379881988273013847538624923241088932895066533399881236272901117087469056085424670819218051671415179717557632522973091459761584488863729970029338379814748752403587986936578283480740297571454083072779501194386858316482048712134944940579842086512426135919167604215624644760506459788606533731347387946254216054337955499239141961938076383316701294286219050517637897490392263609794226593545729927287829998292051428279265245755166422667861149415652604072457320931122400981619370064999429039086000953213655563024857336672271032291063075981626675225922990183411316546030919684367087937734826213415723598807031189932169971186101117612120957843500482142354300593264367415916397470429142388871375520451664928610709632419009538231901243828797983078725477545311260626402474349872627677359920638181786883082292819681259833888099514472653893445710066471577693530550036061174136343802376426083834158691225748945234257001181505584150689875753284596413240139418266438251148491154614110268603389680996169400585035425045306160670699363630353482633803353427219538039255478722041432954112870963783186580951571723887009474238331205858789870494712196607140013081173338608396984390827289795548201516276454986938632159247468727484967084054691827848662745467472703907791209162383656370113127050858649996395654194453057316899957343181971835882992301210060025219571279818101380740187133865123687900225183363045733020430382939839650872981853176917462799812690050410871032668576858785434720402840693093242059129898954119316626550391531136795456646118316026308518297395068306267572695996409585329263391870061366172275386404494588587271288127048947202920389721189621716725387743048948672733165435487797964360322752873231522909776511108858250281720140527365637858472996361284623549196089568792133019516294086180366671198093682421556729499738919539165045019081059797010166685807398225324032134020224695111735296699677914797354502382592198055876883493939491223726908028890573363374010442172786131493613530687486990823579926135503895423608413002877227877009521350833749006211910973301946820581584740704566641416156691700300374499329297212844460690389538824909716126158827332245915619061085989332823099457744383183845823937680427823831650278492219481448220987460579544754502932849704899139429132813027569632721428934432168534710021352166975239808363807977902667712133380710770489744228528246879431002685177036533102510658220188749143169238280831896238498827484306959694081630932582232770475897531772909353898476138274557006369209208999897475875720981470061533336977857326305802508169587571176291438411145626838997454243462618711565715845636676227417163333496000911385040360204582760645929673873680476231728315582760403811404834003608668162385366077900015224719125287158074431710809404511371476410910163240779397128683596778582754105374961417235312399225744277574015561307998550910523474595791815218891423386312741733561463230105055624861866114196473729273648043077925750488187247757900986421351322780356132737262452293068903322552240435985943873557632410611792537612192214878346506660517990514237825854967024048000806819663255069969991903902889713629372784701108695324933929356880813472688728919784331009232058670166733680099272684158261963670271450147916115715349447508473863708980538973196434668628151098427827537362466968269468923974631597459227852899124659448347512837288001734988129118467494755218933020929278764076259205136244179025996171903771680150340204505411734853979728993744757609123259244682835460112692077927438139410743179321509769194700906806291980009119698380054164861138312007073802474696876847314540150580524832316619912237648700636737741151359088982863368764233819121038726331326317525905995134178059363559677610131952227800022693464377898580869214311127545995026748007052818923586402370420632798850521981069341475052585152834618775689428312507923897620518132463088685896978613942472336931444814645988161697016073070015417353749543775215346987410376145781449298407144014483039775772916724846042560573892654739685245355301948051028940363728999358272479464952480913076716738753782614279465630770158386367300067485876880447298682016045602717087135890156297388403174807866042558282603345534409350858611973641504936311767261925960426582910785037066610787416775638483768070909021088020128331425140960249542735986609929530255368501199823359522893911770159592153522782614915635356676783094839797283361562135541231389257175439253527449710537185564458469980164546252681213740145723374394336888351272528423914419509787237194205688147970799512251645748668800528226930495406569785473059444316392388733022754031629054991290860323802605169219132614389543704208107048620282009547500056263268811700264672357650968312181656405615915579302811883110071149754191436712856629486544628629456285773508521681904929656294843571822454667564282839698071492905876762255581542094003539176422944268952217803317668419087154995935351115571506307099491832875345658042665405481998913026916415767941444694248214650958901488653545138247800794585702466022394180836282290933247016812787048946967287040895593102497839619646714406434066683755706429837048668379726111423241604401043350997194134933158444814569058014401687386288078113199590809072332006953911785388066160132809344922658953731265918502594920197813872316402714024766211056674991128275988388899216777330314578307112229260393247928161282533328108230429913838854645127598459107128369991493153844019777367263311922734983651828104591212170987080328712217590655112505220639408834489237140294815320052284393888646880245653933211273571729760408886917538135058007889893247021436316250006761513645075473389222889133812776938912324236922285976692413208178898562242434258371311376911169413617748103964008629195455658753864670162661721455749024007430777510131140081725515992416514146595467104902357186160745677242892570168354926996403126199268212097007173970453277658690416547974269669599134212201055890994840218400601602247131334347303844031589968178603135590093848715077207697213055299031269816267195327185885783228193143721753518257474239768988752903904442493510426999557419557343719577951670669485142951449590313351923817326579643782918891431740984538024020485935882950383587549736256984385380154717242688984483359214770488222519597922173418467470448841142159484917632109360817334571284218749919946350540968686719131868190297893930443937133334542691065092717405232476520090911564582147147221281202649437546603269990157869516445744191296200949894771408032976765578362863836030635160285302159768981219944858449565895863587271547723261558702688109070041463533213750587602250478587228091679425623078433146597766478099370406580437816230531953625521922313745014125781755802182214796761031449162208598547915376817286804393024328578900563517846451514436260406637920014715590614050793328291714176779785940676784605306171116528174036218931883493037346093209925243193499411308094259884027426536353837072237331275973139069683679849887959804147166644954101966649984387489318103731527251675395062200529015668110375241467962720729734010042340716060559098571678985469299790308922042283415201700070999748500377536742691008510151242146120557874324718285827837290063630940687340715660149125300906425395669064300785129610165411299662676987934933801654075572959113988767886953706550299241123921380560545493896341102690513546749629955228151425217010097937107709281558457995585718135259198115960209900849403814952552805795799428561454054758526354716503046676652477400546101734828428897815254389971785701111456582873313778166090208492493230212323336229388078271548567051515825252279397032123897801049374899446006870870422021780236697219640923665299131659479559208873028520239695886958626365479235001684394594012969371798082534877864266874527321251951931555131303533958135881775959688800651225968336487993931543773623316380683585049377184029611162664382915358501875305128613751469271958165822684414130591845098303018715398639680618500994312649613615483543105235819000379869945819568612419262186919419616188767146064780875539590034690863241690300997784010627966717298121665547403458705774665376829073992960879600341738632704612286037984778966594937265435006862246681764458358093695101002001542381938036369505903422262651698730006899869390480589374594688272175263306200522044462501950223765774295775820008345464135386145736087693348187022292184364266894233029525673564400300443518831123479405208434546902027674464312521090199119122228144273418277996943576073432362089606012985664080346314464392126496982329218612332809646127110017270518828267533509187322598450347651804520474081547026559332650733698800999935788110199210872180766315500439177314087823510618506626002585553509999884663850933293612234802116749089162913156742995328937752225748730439978557655519575569051753994949875610429142543816544074390644094786065516566375974938045181311314264094276309108555272058890973170295194380898601228359299407472329936617630741516417641511753603250645268257835617504538484811351432401699671608527925672037185833736415973779702985580021313985790737312074728153156935688204479358894755300344880394652090475332130485782457851597354317416412786804117005210951202026229868197744672428067092272927634708401948980504860495782258010550831600908866212610408453611351340220974237752427251539070749402899819956650248451498141247937801895390229776738960607231623891052458382209200799489245151692336210088459905735427184548349852955646733158054348406629931280628976468233057313445643427855853824961085421765557567200077218179895857628685218713823644552251339629877580614267326695195095562517643657398339863506876690373403530654403218025743791095676591413740697027471125238326442497289184033593982920586268505231005832738778604481829525823280769160486344746618684355681054757023077409700663852781061227905569786064585910066224819442860706976162058106770948638160290301191182448403389248141292691477874482873970465792921257713243301873309962557960920373449652795800727109466079081757854803239703414120377658803033526038596453813565570485331615442886855079537334764503506960820095918125289197362201717301528375670384895347538344360866815768736302857837709986281995873530602931282638926337980761498985103283606478069346765080117700813870800640973238446372445703817775664106202019878166979531667362960192850553566528347190066220096020680080162524275888015294233645489719441791155818080006785124506022685028154961058278073258214240745618907476727045746433090691908924398767376793850184285752959701279724944750217177005253489392208748666338652170183146776607215074171280061727728794037963864156720050889331799917444160732823062970913977677116599413126512696187599482654859284179981627135823609237091235677175314427107856693454807460618569866286380826222400147449416246830383033271810993916563742549509971627685465071100506609120340773370626857306862541284752858944714826013250407888564844724413976362458352514853703218783855669095190550077472440489452566781004713071217005085095201802886388334596475321675117855771139068606192203409684084037229468209288240680681717363128682042978712829183468581002880620903021145344567995935408748373980893190663537231536597526308075610600687910394667304748537412047855718174859890984385692639539066957044764639619154293255091768850685140783833942692696682826696954402747418024634461374810217698555856116567434603131481024151602226659483029139707874698420128804985889499584022512283251615681674620115439039480484983941563242683312471220094799878533046080789733718216752774437882755130313180107211692162632439148093256382572113846154581821608146110813431976024105887429776737762189870904343200696062263963704577058613869512261667821755652553086568590721658067377339546083878793327056529170987178175073462645243051798973505321410293404710684249682909870803018736405232919428224550203745330103488499835071384180407823893105545037772497757766493136570389801365688644873016721844113289086083120643256772330792071640675820915192689408363810408074595683050680524944053187638291144531348801771161479032572897135783136391267268135291715214459571695628144871809532786354707529950435087582462002575684511946048767159369025117339854975686778316646784027975314871986277741929516167946437260064756711849404429354516013350796694508348483568249721173295206170808933029555808605142407560567953105809019287059405520612890652880839057271515489139499324286649170137358373520519711800154973960946090262898833935943011827838149215943760580437775889473305231217262844382423418083400859142698754291450142523188709690664143053678023540307303436104889629202407657850529067413812867666235401303795316429210535120080797394423879316680778571398107426498683109008172792643559489746924049152979390276574173385860231221348472965716119360502204491198944724864474404179214457834379747092865829527539431366670555614359153351283466603118214331840269298155311962957743093849091618544486435942064523523949871995421618573960706284262958883642284967338580312133683411114721921489760985246863466367917716047183724320654645240835101403770068651476635876872725113864486905979248737141952314944025252032507639050493998692696082272285048357900241715389419971893865195784534485608425704696477045893811477622994323718247619871408723907566679441124577794439552987141922285587837218126494472834503900863181398470654487084206268312778978893440436293526646355755288243689706647934276890807665591602821000413233982479537303597389258654645518279168455746042248305376065766224674402631592684873694042669264329480670726366627297090774234875102094354943200807252941814200235053341109890512235145271873638405315714096093375165962769362824380379519947031375292295062448946269067219386003134952035045960126646639210675205007554809442673276955154055089984369187696861028694327262900163292538084541343666172656088795548848484994035120861099384533986242493776849335075659585236729103784949227991516164072794238867352403583901247043976484126352235232132687699305849938799604658172902735543412322372279778651585016034967343581422205644128824480123951965222243674443410192824224610259457437824898906241276355619627060378646996869743298355092934020774736684517711716882101094172137061589838800495989072417113579307696883864593720241355806946075224889324296708142745206031581658180214182844101108376027885814993666153870954293302745484886722423569502964516094619160264005751463169590500974197776946068146320881779403138674688748413192149399214241548036291071445584549836844217243847785962109375910594340091242793181578007680242053529146912572235211013343995669648451923003710010116237298735914839717476518462152664860686587886239702635181825383103112624788017700447251899372719800704786708181908043027174237758696144408785575017441658216127726304169539656623390706558753901413640851928512870610553174406028324041929087113285510886031838568840407613399616568405139898215737696131561282072366604056036644822471683658813142575756639217091424511825274237909979246781276123196272779040363227853992264746636572700727070331541939298847387444766374426195153173546443467155754150836408005719792787008206299153707343911687112291992917403209556403327184552380347848936398027488694265784414908519167453345483809640110694876462929349026406741429106019246253716311608006891416714891444658632983943899915157647910306972231950730175851953396998650665404268769685100109877870088522931779145834633745941111672535323366957246357053868404190113979642245788686524261754115953668862046747823514347282382721121979255853061436702862073793627342773355943712254681680331254573688256191198108168863100147773489931516081652481644483229883682607486674631084921581852848727780282965036645668903050294246585814180781644977738285927875271408739485940453593156048874960699509396680450864096478538804882848037351276382798439999997801425077475785733532177364985490291210513145265164909599664026446505145820848781491821045603751730014418910415251620020030030268571063093625718041299035891193279528118415651520306426418622948901831709525296581391236547283627853836472806138223901800139733724914685288199526946316925389734183303411433024175047198871473820000051843183234877192949798975335392522842971853201547284711365285719653618777437051986748870828133842970591485376696448899807900334777754777211420325737322012605424676768797387830842268068654405028051996750661117305496837044221497536201396595717894680562531968591359185088258815094136522181992030364897991746687814930426966427819285792152431482444949747790074943060293113517419263535308424332968621381029409968435379402340799128070929873911849840708037097944744070631661621413941478179201576958587880071250629341918254273375451096035424454531144021481350284904021220435541442563983896621250170231479670241958276557735249017950060430623967232289886686845215345442626458073008988506773384691183839695412061990019505108056826307044463732413231726841134929908221513010019534842809432325384695340876248996595259417513265588746679668207404244074375589481281967123208942950974339575202539690176850128976927404987928625835385647364139540189120579345647986312366630646713519017774074806337652885873746920306064117768413374505165323272824824737844628841873943729242047408776812197050775667691786062092845417037146748168051648257510814619424539646069764517453603716542188158550291990839139448432646025306245964328934847402339710199416453705270458052744750054822225862579513820832385201396728961635641653882540409856270445921872227361484230523222340416704018259251059183417325968457071355052530924754839383718671028164554642937737780012881009961572062907106927106355903498331561089318757479884791783011777517334987710990600043980015429426431137669650349784504325533779420905745064206168194867111768275625018582543532124757578759844481723729994320446256788906858372933783704536359035317640528345289820470597122772104569636190735596586170159626934858108527342298638362706438165992413701311178716716134417918338741874636849606377282538178698166915742577605637604145001618068600561634928853916569719352573034213586016955135633333388065346516021977463924234398247993105224335282435901968012809740729026192935625927034333421302541637175101659090918922748303555685118412408755482747098473120556369388063763695117399844837938312366194291093068814409153214581713933133111216565304589614040932800188031438757838533557436041494440124997354322013810406814369251849971430193758625994305201375346884073911315722982000566546993202366017205722354776285716215656931065108534693983638969390416803739865511892982858702119984845521877496323230463742591557726579200477766662362764190055260865254547479769825705186817283984445454136729274961468838158370331664417259969149330822913262587474780110219355430616315660070510009521780017106704887688994533500413948444729365629394412320482028850146939286921152842246805072796766801940894476201760716881220125516171713744345604553080945856423347900292956693852135279386908195088641804883952806734229122586351163595478409123583281059622805085992461776284959935971779195338199821390072139918356024102602743555436902479751827544548623616856197513854878422189962797110260147238656110108520458364871971618200606099609605377302969549055068552029053736877122944444876359934774930142779707131466102909675089326054303623802371122819851086343432296483087862308358853024488849340335507041253708203320228315097641314513203969887875161785327320917043155001728283802125025705217094368374666044332689526390682650200487138218695737019380955706046954609716452209899908320332608577628197623952356563349396757697794718794753625310068677211992653270560607566570713741402326320870891277730022337540523674025556612632320234514786191995448587389976367459563336933265066174558572683494422862056627489612975717899015614552191046778036049275985780419414945361897217139181460426540222500612172905600449412740081182139372621491819178607081892462487445329260056283787843240813794938119516616669767243459350913616419851990017456492903957645569807444956659884095904987278952165120023975782040673382557695253329484502499276441341500913344205715653477848027604151845956826370062374919802036668347942485736439225780199002347899060031962773767183209047173813698283052886462104968447119022729767434648215258756148536295663353761603761143518022007278143655228346443589312420766226344035544788081255202239592597548805612866038843416614290347846714496204152159075113389632602607441674933653238706180844679543774641267021284902648167455739178753878296572465495911518167037295774856293225917133513068110836300332345335259479079999392222489707223851725714870378001843402840752130668541734701358209787914542341257000153839604697031791734632623097506083205697685441945762300750643879758717706669224871758374776063623972357735930018049059178218049449765985558737144149011173051157439960829596424280439376194840372718667901480999485064922744712932645959552939219604368910668556680307849956137022795374992013631503635157151376264664445931852004996032652029683331631855452971106819908396385042367717915855568178759206320537906546225374120126306895995853794612161457790357131304705913536933718262869899505613773386390378306601623833885324825946279540376298236605233627654033612171998306711552624728527629825153588074428203234542795312956465050959753217110767792331128992685849850089470115090202398132578754407675640459832249268520762949174291547829678104845093713989286043524550575845400480724536092945738235467767604990167902446425192526552869868717530245366689945488140867499208720646657864663930819137502028459175961567995417817738670899335400701680941900394078523270271832475982374073139864466202828103749917688527686045385104882716060038546177604466175337462383601002229298591997597151115275046130755326904107554210556533834367101584293409620760473706692137100321214614579043434285429142741836166977641402519386327145447915936367422046524290638680408489073952538417547808500860793881648818702429235055669281207104491065616625475797681113097676935145093510186085752121682857206954941242885471414392599916699957677114800275975025560719950705259768288394665245789077916840954455403268709688502415173498071928567088478917229391036439454079734937843060007076241644391524969425842680146342223640372337923813145781966665019918659927658045986904911918911281137850346388775538618180030729884357069255069870682351907212147462888841455573352033182157035312778510162464695861287426739375674313223959676564090862514276978106859218519281491343789455934266512907473435591730394989102133927046936129078061251031109417575929260093666176959210372931448515317336414137193401733391795336832663396809060616424442367716143273425553183709683454660508543742521827417937814657694455266713713025377982631114547042514130650003563399596878312531229037750774618167534422796898166511003202272332431020212606235309236330798227860598363820724058911490125695890745491927714281556285717491476137009134074534198793347302900417239648171065512317230726336886694402907966421386383279100974609592714225102658687676240722634265586133172088188584423108593383124681686353623573033714562272212744197229532518680438446376595009081101809795286149441800833043625108511448081971395170430946943978856772733526418698743098872659235730369715669351521618030750325502492548379079939276156218243976067926843379569921075185289767282767772084598430017471615511612950399030249404499529311028500768094249939550914847194830140457678017102700984541282856612545872724942905072215078574538447319001911182601242676670236100137312967384868868228097743458674269860784697298008360897031708920498509692421298565056142565593893395954265732124494714549413141145334649886825520772192029013028321526548009048450556251546337637030386742353254778470404981236468747833853265388617949923400556781319899918449427011547751502637441540707068288517651890451437225371182793334743031105596340816513603167211596521058128988982373973321335975782230096481179669925056859535363966291010128766923653513873208060276925902568824929918967043964815776937903430874274031160611598446791347297785677483204522810748326277405955495072695095534739703019233699458253550060954371104832638414223798308295914586258033294769557013128230643963746332645431809083125759169881230215844127099032947912986860869741369363481413924805250197821818007966132262563624832433505755295002726489081309630015351437485837831941197796182382820256685845557723295019009158961826659486658866254220224033340385659092655185920721054730396605864230542651233796234516350559897048464036571385621361026457360370359146675637477624436220059065471401299719164574802993592556970052812508453010904979775859893985053564229257543359453480005903047047264964750415292582029048731388025711488399406813456382306181456903533736050082211938363817436926401264676454316067667230813923547809507041674962270708410103226690148464120801390710846914357240475792549413428317672417028099306205110648224595233471171623319753795155490297748428141576827937233506356465503081588826508679750738482482752299018197956685729543296355780637849216956101633592345992603702799468273586484797919399143520304953875653058764056645550919944604958971124847237992513554316906167269787506355442117783553002513198860699544624082851630968119129709137552007925605195801407753807972708555674491456531842375418032380600290501408999765012153790619148578357565834148749442680175516927338697273387513790621559131097117383407563607688390168848507135436409290796278101527103107821075302407864746983993447700590950182029487804990337657998166381608249883535861298825373805651412918795996024771200514167926041582041941511284502179787703559097073924089642704201379890457098053512010418561085494518138762753414594269995770608508064111250413278814448842709429210217943962764778983227790907390607324524019952589854439567148874357095625811121454055077191708382091945751092588418808523455707214679159960959963888329624747549901992107918685686782862762410534331407646187914935836604009101108127508474904999071374976466238229014573156755408424641698528281601326241797359166884223205067358090182457910279631276043112005482565306435849288102064615810610517465350575630298041164774252571225446636394243636668984846790744916692628707119359215864413145531082358096839164243737289304747767744995339661485283910408999275235556908116379021602657210541500130165916292449092235245545427926262026249865848501233913424834663742904595783006560930367983138554652312349636012784479848048288662888239764789982395799110251170957385979836172049006351243977346056511543408306349223843667892447204179155617130156697042874980119926110030085373224552116082136484274267835905497592614807084817450713554661130270566713201270299333550800474879003905954099954269346419032777985876542502269957123838329239657032349145879259018459260630160326100679980550768927747257194142956663954764472772927765776189596778125894925659383357856010250653926396676606148707432417893445194656025464700288255664593983173736152457122837992531845373421504550266023639296597062383255645744900413146458548912679985221099501630886833646523687339325535664628406460045109235284078502763806743691412007428037241981245786178039770865808215020809176153899118350391529642792437564086314060162989281357554267220714933901530197244009683546478876986661042350611492914585225588349939174293860646235546208274245408930837329345671924655021695887037483571548861593370634804433838519362720937373725291364850444474376545502775006062135354699744176749193239116498187826535436076095402903310164473549760688617451308830781295383065623422433649329022171394852198829772419811386022155511621407751074002858821327967179682300872917569444377236255116946898513957728343484278402756469668422307593442525072891666071061816062294463156146417369057883609392092885359654389124879535870816291112841626221350376864833208883073632460860823326441689232794595825783643402723781407892557244193762575450171390119251152019764210036412791273686458673550797033870516761134362818374717338857790792238683508878490828691814767305947210007439489806953541404446190345799286009724468619068669924537787594533376335816889247694627449424613368110238324384790640700099178461300047621339646330834248407536320015052392044927098465197347645976484504510858496344193746663058546163209983426130341093521453983854243996733722966795480911339493154377198554300407794747723928331463926899014169283285924011541992594810083216153689972025299925342690918344949091376922772878452098638526165563237295673757832748013435463172263654721771822295689166263954373532733754806420246415155231088206621794903990164137110849402544564100317286804537796540379984750285171357557293376055740162138565850698758606714144950948142930003030572282986671035908497596421374661330865046189568570211984768312046243492406090846499252033523851936120762789077269656653861813061020322303775275082253379192334091934324361082349955883902167106985673890071637432125137981034360750886204030745103289908149438612953256785936531317328103654338909037942356082682011409601294337830744549452307459344235412942476595184257277580213019841218716938116325790341282840569606355445143712700530424577217698532544680947692827290487457914622141109416024616631839149984946038773654060027428938995609761639815631146750707721436536051177675069019323899061986997654200483005735918233038358479067999290595927695574292825952193447555473195553408139508892853819776727795775911064739829494894764961122894173466088260494251848676742441329900903469028200735596534998493814987968190936933747614480867659581364406123408600970400912128223070278067165184139905780678926127500122761034878173575858946300955002823998533081335894682803117088395096094171891225526637760666306592122534368892681946051789970770012464327685706976507066546505799234376285259265460584273191306006244276479810420267664611772777854872035930311749962734212493998872965459237694998964093710848677581101446369937415438034439255968297941594499156515337419151639303752524846487387464024457451891954618668590950640705997317164424774565240614779299535625497078368981738394274811055171565563938799721922994233491715139848507166133791107309784806003112705430534428023666185726827051086685877458542690875717918375651534754366046086362558860233092117641046989611884212995462733099174375314584755241088769761671993946412512912254950318667327548060553257244237713476744578373613218305833634882094569893393919066363123963888622111717626172567008897536211494024961689144755235596844476318047594685214135599073379068639447406188594678410657002314835214059696854646846336996617658045888640880523058721211236517323983540189800390138121575685869105284330844630904679404756168742420241951362068972555057810581745386209905160010643051938711631131381863834503844796703544146922818374767639893152173695113025955732730879731987391473617942424044594281929996245794060837410878946202032058532955839220189631398301192821223782012406229407098364089836593124913961063529284376618339901755451377315989037106508422349680958242455616921830347482498039456711400249459111990879161766840758631167425681043384586862404005941232443624055198112261454910572727812187746566070362063160245618324787080738558651760478815791458153344160599406410701346446889186376843317531049242494352748756321933237278091758911185245036043593874051020174237577039694878285427255512579415914508647094238021643828013180040561512528855375473311930647111511100294704446009781260267810871315327818480328185940446330350773688194249719420567998838162809059073602405889933882209851353002140827774214987511863085522635230196335022870661403372812281188775919222565907236965894895538089601036241382541249454295784164943488914277034062837912768545426106021073830879809945930236585223771630458168416215636583238499025511971107494640233695398941025613453836351004514560912911579917682292174198204625532535683472138715821708084151810433254128659501035950863317526640820739194830630522459206965110684321548898278959156836347832107066590207639698352912034965837985246342128252666300964969368942878898668181520959134310675980143858184330080483576235146726930837059129391583724743565575873161741386624322140942057942767287900534767252706109104121341109710824706918118544623171181324600772580372315310689367627848054568977800705402498916053004084010006923372090078758728389326264343575829634238511973931802371642839337235012270405145319803321920209051534648047271791116642283126584649785909982463273787257348736861651920219630945635875120907312131397156334266856865337465828871631131937064501649116918164485284202649324115300767584253713249307080550460240036025358577944299692263395723269548359917268474542527972016373316556138201108397537119623039934811387702516341999906866766144438413641460005922463480120842681533980417737875468121469099599988335429404904833478614189706311939540659436127652478709991056306363283439587412928034884327403855495054043555596103221203317935874146154446244481651240369118514788340445163086271964800324747359981047399745274670246271245646611015242987967204749829507706766230221797408884707625965119885543979990507685624083230143631191887234341039685031661171745702130500202467492422489896001174838767536206780932181259461605124483066637962206035201296728541465293865954741154364976435347086382157436462717101690295811638482208174122606544344195458087612311935317729899998328746559654066082134677799965111087411834775343024796375560093203255685590977008495743554885027522301942897833825327536003428426464474682702628701888158260252648182086363939005830329459194355229776065867866418166305812182202455723706635741758148792687727600063307426349632389346198995902861221527005084570201312312848088764047193902415091129020192417238456794972136392739180275220431151836968688489750763223476641709853991046454610675638139010940446659923873974523205898785757466225949973905838078906995821820994504609146864422498425668257826369080220229294198092441906505987706501221038699889180098600383809875660100142263872252242994902652559770640352509346698349320146521205281593398084000824724898670684371062188779752986114431892053758511960648766819176523171587718124293926374469693491237809307201606166000194457742464964934463469230617736943080612041199462527456434625564994016540083313686611797236178652934573495548825214394041503709446162559814852307635624652378341150414033990391782151251641576452351571866009139512804428044122739347416550227906908672287500339750497812029571532194851676643056962494885942844550321217265708042821140217501329712762291882028723437127039838075523879299948168686008137018772350320456467994471735442910740719027872765425115925430195857267913261919226277045919141169725512224104841997125523654266442124840349309916020184940950601862045863212806065539394087381370576977070614108435483972488350013710074722530831707084777882548898205588396098231790800998726209895842748735628871944014640031640769966982133579710625673072321082564847624307401637095473350274136613501396781651214373234322264656559969482693542472255725041827472809113268404196186194619507792337258462651103267427923415147059195119333281677972115875386895125461141534724610216419387868416017802181160000243266718260398301880338983926960859979185412349226565093908103531162081065190990396391083976889553479125952056378082590281742554047219030603681489836777876317760444768961573837730641609042126778903058703403420715382184140151002918672520892007795574814366727488864766508847084931390374657887631451623095699873424543362532712652376061883829835381614379464063072836999156634509956485739756526770828348494836245452554892927134174312371492459819190773165210266244987762896276264827252384503549126800041442668806203632287950740411122229897315579534698834198048495620855681672133863771159102333792665084985027914281666003549600130984575370540413303515811382538888354352291714209779795472599106638543435852231266378747733695492797052796502011589223943059516130127195351490250401640053679174295691611767793491447174971853461031927157761605138855425351061880878103779193306172012926203900900046015697706737787029455698931111845024460508577350758123334482924647934874470659015352667669876945042773691800497694565145978948750312906108977412627973198455932578817755962570945942571735824760973057728141274071272502864054412159188751530721404117042022476381764021979983326726389239997627514274125306648491982768662152007932729951375001015061567696566407252859592593906925170321846166974236770883398692580945166455999007411248147796580362676963178363452297248092956398600142842059117215310918301815165235276865877676600202729304251394195742897932248293176857445529146285932081095275159244070681485147235626705819109222404093796090759544137753075493024878933474305724803568285691608127772515120063076458977054915409081082521468962453855137003354963519101137295909169745779161209525531265584357141497690331958766330709596704331390785438559735294858081321957797904956457673985162301529051984227888814319917861515584465342147059241870239995488329858943408749813267322591511621998996070551839063594007743558846145792198869979977587200764063137915391742298330303733714735038664606518060489446828683576452915794056514431765969304642434535360226612060994055331637647842197613121115256308768509672845505451746056678436712896427395923954729106514756669005759673062482402556497331030953991775233487646025665773723601122600498412292645428950099312914516102874411680802352952586703622452613402727808908687471824813741088147408923020314708957551600261217036744118413165439417482817558307959467699907422211220506699130335884796490799684807998325103806948260631504601700469729087325077874013611485788932821733466717919298984610452378973328880827789329342967483903584513642719879837014981923454922335978847551918112455146595104145164377898924874216140530866267040181066789972692714956299140917006139732850508058390009301540388956061601895285258037372032897961297615346998791399604140774903240399832397186801696258076087592863659152546003966234451119308159441630950070132798200102351387941451749074058572087733497073198317905316954185164498050178643099190217622834402973237049041276717785222330620208201268526167385078257269617359681915252618639909831154497702292697842516805721163743550088065454841611075088392705563266604556085125751795292545635980617606286633880937307074085515352008988643523968074654213467893380474517275319959442103548068962291757937186946523187085860765830302091882414030024919410339145331411285272873786682062855712474900058472648049146914602911671252714875752643814372800947935299534875361628753875190319012906078952871782076321524544548702234877144973796681642958885302468606764233057505022593804810159363145494565205813016167718447836501688808352490144194151910257734391060467511148241375462724971459060758141211260422600772345866970550988290543316120808063014291686170899366098433279503459196985879408734017723431058884494154213998802037741551756673343821219029651251070544553245117906966403223766054628638798570650361007173842470543742728990061492591233504052605836581147002725388580303330221941723805242722602534347696096571951704172181733200975904999334705107701966248180182661928695028659076229892520173873258354258602151578456627430097814773652356948904243021922245720022527058042563468589170255584888233726054236306313836729556903383019648356727830279275443295098983079673250942248283395601469692474385520984633303418440266135649482766287212167081004552746923518435059739480746902057004961684125847125063690919720103781236008655168688871082327222001788250565843262149002451109653000231720595434160845385323453485002553991280160892947455095328819045344440849433910411777305792653994923041528768537474894030028555691753057664841821504912241524920936693849496841029972731814453647488001881818781973076318965341392422118009401648568740531820905739283221919104396605292482301437511846069765131653154035671698938390547694888762297234736982847898720329674907859222425781304409271402378909580314687248162158112037253629698609295390698469622358240492390597583582895022832133020180351699615115707234443808531813893022479935392241888347368001613780392605572687211774650287735279383059074596464277376312893070141260275635290295991097687570534445816900470798449217887185826875213638806438733876581132781168110845445781908854427309575753095850572823389252476545321368814070841367739928320554954045172612410574375939709077071203736716222499863612393858130923835056104779662985775171084638887293343585028260604400219083095061327151803211769277294400606239093106950190566904008204622387527497769195038867467150777590880528422423410440710185158643038812577230771159694658119890942294269519438860520407160538520046765975107641194164502893307767124508756924003949171891488742548222347697376330497015235328608324119783183874666963063462742617276939562302091903053625088417794221938478283689312748554421107978540542605848724656505266142137592261930175093912882103241727624345670913442481142684937399417091581077192166228943057630531800657790283091650462102407291265837853075734140560528829247539040843948361593374952393165731144190078280462482936517700338112569235015474943326191762714219868260955170945331653617987761649451208539212526381027319270746299117739172380240934733101752620750560167303002665276528308649392091149481985901211942241052784873410502482659996885076226850243898864940150083789958065842184235986306895034269388600833414533143467438576916828414859000386298236912677869058068717434702631111726934971347873618504920800721738841483740445524426466526558074470552363758568023599347873502837400516851815066851561920091667493179025986757325946539120764950867378175440476191305752451210944617996503669773294518331587069162752650171451763307393147008173587975461585765725893100739619572621070398917301872909156296620842049174391986614436184859107516744970931258814054150945904312194821416479022986341063837025988063506819949611140097750412098803636377312254250055129313564362088068314900820927084922087575397600935169890202660796288276119821428167292766011574813291119976622367321004451310788057231205972166386078809382057320542023115071888270750164518549778953406530921573367935194254729550181353785965536288585199360496823666290372177943292620882678323224441909290161781356162522689457225899668940522827061602882307977929097884598713221175863735984966846108750872177908597574390541792497662694285306796466705562946893886260786265178465044938612253522478034386860441790144581978128388411686009374382668126415501444055164683685378792536339520442677884834853252975286782691880854981345811516668981775671682367123335861369933306104301248047546292912919177127922739046962627839816761766846672739860400640698608850973947363570104174042912778670496824008321155978924455220187760559287221691574415932013401928679014384430836525999037697310834064324150167951956444031253125367187389430613411643946234946831689082064873378449962980192466294764368051621709078591074799117112964921502748723594183607130207881645713432059070077471424957874988016938867065163699644588363795628110477142359140781032878555960436666137129356011853750247270056002852177997239639214120009322160878529573702345441140718055170249599274322819711885090322270850162294880176137342155023907921917481070975667913317836882736640124956535641566914455435801023793075405244177626285948969976353353573608116645262547301035199084327000375586749764283099717770058760005726651401956079179200622726516482033855548170563056314061347674138517739871593261193674233791481561113280128404614926310917220288759067567027975259240427994646081334025542080642972533904508678521646081922723644511779040251302762927353143729027227226106821352686013231182614316676100015632458348557031151495564642651729463308998027203785552986712127529398294636051352900776150409343402340400820489460997387957455828086035412755512292513491897825282199205591348210470007178145833054313597908793772119987264848571197813157792644450563506045065885916733348283935752925605141047153411942906213002541937212635285206213813256389373789312592907574618438294787234237018145108868965006480487812453633878080530171725947812529981267443801906253241754768896470908173832054722139628980944639165727757502204796568570575842337143372742110938008706098895336653622973579004629085060032484718324036487769800606888846238302133129209175300259449212770729314361829886582159791510220382130795698219602885986669609606934277933161112419844674139229831037644853687507227678391386308282079935285667522330917801876272330098428554738260158137194100837957369343684100398514145833328346593647624362249542137954158498316096668184139435044078545252814116695130624759998836216234177591801993292421468016993604381201027395330937000176688453784526939600358211609353513301910042861561768331496822193157857158839157419327543583438518237193712209837792363876199676335897561034792599693606873093827853866261652919579080990481193296082655257289840397935592382411987917968530144321483136904460683074326053586324986239614153870280692524907545075520014786474426504945186158385638592853755476853851410282145290219330159572106714725321089182907547626241292869662852523462922004140836318229551983328420012765672591475923537366621616733904774266467990407273266540551144087912587398375256828775555533793812131503581644597136075085396915357444919767803643968817361707082848698252830681351405259962679420327174836746940838867370555653143925339956196894016321737949399885062960202586270259639298855187361375706605062039163940367843454613829258892272264977962002543092937358622930980258679598037824613184002745772646892962038204087786942706566865790784862703081648618335120335364769683124152028886341231602852740771432726934972266318119643684518154015023510775005818580066508012303207759417089929579403524609837512487961477878258630608759190289653399196239042007468267588268530222043531888056924081792827105326963515892686583720516260409682678747529724542041134003246830590104367312851589612319320905990209297492349282694472726527106078853661049449462282358453938532813794909252621762174345606617417926074138916123019491947700406532204199324023783226609241266346454948997682602500465596877867858506925531766469758695947671353639185444693886390168100936229497517868071594976922446531611604282929812899547099034416387743602349063326619408071891535378581332593686597043360508892298398631762538299001367264640736615147623604740011302887026090386299005714984148349216039036807747733749646519485757839747596855469547920639244492340810394983584329847418651936454297926010591316679253092860490778298014600182294935206241045681924714202533552667111569900161803516130960987704512669304913320395888086222460395485220784706598053933505240296257604791633207974501252161109464927883803568899455610077494279534950554796565450629787116438879909874152386211677084278919348754287245590435010002531448442709563255316109035520504593337230825430522115134706902896632021676956165764959073809557507998627583535149978694378845443769802841050723599013999462054587854143926984677854155719370599192092465277771636479216091164505929765986933317743738981836002489632913817218602808913685773657027493344180177086088666276925309990037974932082613769848661671965557868342179021141298007927591337213626504035639160406172216311974067393080427684177370483818482534314821267098287928074488830767949411756681423524165412599655918412013535896361733633468533772894571577584825260969867514079406183969774495883685593546985165236783597700677471406754668581482856683410488833874684372585798363804687216406540151819896416318814977972243737560893693923246153321839917157211061712727634242337642635838983808808769967343936894438085467822954351572919945368373143521086549783647869944193104270726398782649099311336709509172631000798596023662063702368826870986098665745842287045278069088510452308471913507915196829326462972176589130887880982376360485632049733119809515822770296398020641329196556680823678646577151294493646444800623741867814324452711664392853965223784555812291998299059535955063430253601496786109934995802282648916111691620000917665828540992575066777809375475765398852135240790391719408400525314998531882848332347296431545046354079015042458039311893579212477101903548094646763467348563093177185725666444923467647261472631550786657929000746888913379172387434297503268877591724592874563928144614186931683401963478616863199265024384129875599681439135953836250366559017912100172114333796031403305652471489978703660040922332022090084616111792552448767228213800907030338769258170659833050469012982558725351350970788789397912862483382236308445321800638600141293519778392913897006901485602282273073047868384533512003050539320000865112391592116511071191679649171058871297854801656795184026924387015119120569060317878778212595475799275084863900320816352320341466054466501986709696934431554339922085948729235968609713906536899378276619445358518159593981198894387001758735138131983094338085042596644696959660535770511776708491550179486089061020436935601659688459332464709234965821945467754061871460482350277999885530527702147457702138036566669694995687032014810834152342121213106756562581982671401850782960654215739503921563003989284042141328529886050211781661204208675687115339920480844186203599193114025623659081701817228388351447581922896043350856701673268540169144205112990746741015039061726909963161867178499415812465778937169091031792198860477556464600171514209638309963878734103549720184367324209395437614234696227321086116233560813563719536782408619298878278656962345829255738742070657138871968586411171407095302355596250603304475001169082249971148726169337076971663036266050649006746315179433931818573675509462564393096302462956076221982495934622464294759477321363155131620316745012928501660968001303568766610070431013652386094218727221231144090591907906219476530407590814503073825243438675012610408940688561333865225362866224507173858688559427426571118149034859944254329156866677006349547870405689436125379638257780709916036121074405552276988880700021386977908111311809004678398550002966189354326848925718250385138709410438968855376089789961052525589048613739198941391643337364758141360192709589433706623824726563182287441074603840628180440890122064787100061816140759343972682175060548049106412749626001785002406130187121704120764461014699582694122202799544269722817412650318970670556152997322915743516172431390697374504411347145286736487777236846815832760523193423608410857755222203160239409411015721473843116903934577024059891031070950607593361637335283656311739200529580567295509837115826660382464782977269694953776515766439025607336784446725908555614242633820924550427659133481975177134742232065669913937426541282072757499914411952081202370337210506161052256516644581080377286708003765343292984787710119999533971240015471903061053165409775473948538631568654854469327916089102823978082864754225329001753674886347610652664890924634691328089666318489866686502630186616031434735974773601564323733109319935545621632149739181519315719935058363943707398097119536636437198998656645616223342334842099878659035402836910390967931249448465808406274618351413306938513032483947105704526164423096052973879512481632104755973003841433060718080176831662463434306191834411047260265906474618488187474329835483040403741076635833095889252749516569412230545684020698125328339956651607367920407560089772514406414391043579569206498618116237397495863299627290943659306452953211972219038336513215088605754656509506310915101000504438617482854085168549735177493628838425422744719245098625781592799469006029437548728604981482047791801319332741798520199247959261805458569366947916496165042420853537086364033965614863944955919175127985507647744922084467082032111054669747178520339207012768982108482011547950899350726916489744865557149548994609542703040365022008385141392618948274830451606309951456918634505143128712367249542908679806966098217464751102623106115608173198277308999533172916581238336205135430008159929869660743379621442409840878055825791986972592737055087845799765839222489144601305881427444589019064264892284359234277632408195868851952767525546832157482927461555910952386540265715217945404732116459364631991410713955069378070619561577167038376131444259267464024896673381847480693041723693754006423530329730093778082544455425531828455499828163566134897668396944988350580774395193728788001507811424113834418907970120809792949253305208746186304362604302355883523018930606092490411169917550903135967966547328810194834107155563651766480956000173827587422783201103807540222249112497246762976945248324815364791856070901535963155787552833460600371974471342117425313976462691171821690809221407262820838321571868059434742669602903965630836908178919315600297974227118648996301257343496255224307003685168973345981988269437540366504336910827052104419280861201963749579081302085683602422801012876257856481361671183785900422103950514045235346397087790710000864541849023714227885393405214224424402342136229320867237436649585467932591755366160605848760690994231135286309529626762353940407050196064785054930212800966052063458278732939869168032199832398917728248874437752195874687504889124899764286393340673096422842203765698466109763746782452182689011737012714702911159910132453222504637593476426887053500446337725530949521164679424870365590162904210216354048524468727745613415087245797975035402118851965009698829266829241290630065273818509282947945328539210302181419485874391547249103500650227720831356169613897960971402091829832014949002211315344585580612688262680498057241144053754701883460167618809346462190629670365498128697506055917743264629992825506685594809909999382842570976710272897003971359388200298369804166124348048442534740532261476462247392556319778802021872209393066213141391533791808158254828248828227525030430559386584729837533446256970852587933126558447863764230348112835151662658642935535679415999646017481242709215779715637086510021011534109078438693224431061893843456786865843015012512511376533864509814622359599476909387348653483243721073055110764662259679686724730791032033070197612872260036692671166001242667193742611045026104743642980139531262369759315044669408741051944092682769918761399715862405091687020932892597513717121183800605521388255225019165365994637131763108853885915441805189739089239507116310197806018352084012834519488294350294916157430618843522343853433342246334262112505455588025007397182998982931227576179510877876583533883340503637911931536978243268038979619520684566956744259826308127529895169370901412282912861069161066697907149127538586666383409119642656851818086522905125364182908227470198556924640895377914966680097603730229253198544968526486822872814668910662304918406570072923242258962249471456210544717104441850413853365119307145829117727274742385384867818079142336452180467447234485231812591073375945121215722368969251672222394810295992293774096395978222886902108768274571985143034212976654542179091510587009245629728210895274170049675759304559232602750957087383065948128686124156790524304355288054671244674124010750790039970616919145945459254630733226865598060597273201462245869574058737338940173805547539396309133336420344316856095399141000116035354106497697915111270659349890104621301062847530836389556293349130588691939577335678451738153269007759083961970851061044605159506704202617569020544526243875750991449100174250285605446837378279952377203365166215162179141898468124979019418440332434224183038621189433684003520331910485322888423487116210733445889515094784614543089775755262096954262717811976601334598158514501268935902296854372119031619162812834128074915449731610729221543082315485286420106363517449986288907992745169933016145523699692922739329479980712503131395525487722441700156682610109703688746778778333584021594570129580450544110768615825856416133303060044921236956961533458047845473193670628177453137882113319528376092254244013831509988827716865265470216334794359376336055131619733381618682556000840195343105234553158104956038547535942922834750958782396113703713647080800457806329589942942457054367704024948119661432056625919375246125876500807748571054138529551125796108693810155251488656983362959467754421244522732212330349377356461383543334230468914538715117818720558622693823098156628557215713287325315390935136010015699453531903773334927034810843873234857337035497161921940804407658722880652944893371577985459096371535992407560886849599829907137312408455069121001427200532466808405547920573486238688427173152892444780986955212897449941792270044011826405954926926895547209881523720698310645881208648262662150951821180060340565835176929558017423799570673441650214045554524082812200006849479816998193361292292879582565684647577505421912823474765184763420448842658801853272678871833864269932892420327928894851556979488040264796444908957374229532663439855649020778884820354160469943321874713100859113298761261750001808948719422884267794795145994012833944043459940083362604773304189240089784753207018043013006500519910155548417946211781354797862263646708133357243638841747663019596457331131584026430979676598655190284730229607076812449866836425691538940405158178864783878583108795051703580740921042957022249179477512503616268167863465212519248790433552761547662945346371976738400737252261298650418353134804927624540023758242706760309846166486479553384438796306315346375293233747421932348632707524083311942761050020370290895350604136343444339576272699613364648062642093400347687491956318177864639688682943816049973843381089045036119058570258189230713187676275858253296183184621940608535739341265551883699471774338585885348284716180139698673593413600841213144284869751455131794773757127968947074403119467657139259277432801999811501646492657126151091345318529081406439093337598603389435564345764605107676047608041154495472308420463573477777014890161077681698521594395565551824975152688353551388237647911072665112001116194426404010288581426870962699103209753781450650214810599370207283756128193867365985211897950428131709159706838494063274422211620619691760827768365011503141145743846213896091212992282395603096539784539416076175772879292380516206207971596959070349890965024896610392948695494589824307817645053296753461110534011013923405377147159977507798596333589344973820579378004438024107213618195996020372796961123004638171619306575711862225346539566460176818448289791076412766187824718842310690781827537007907465943630888321294022935506187864648578455407713330725714176656011888632981604123722897952757210174776638791908155553793513768665078562500872603767983157594823181330268531095683090370361165429872278572155516008768136059819978507173251980435084281920793371089790426440788801560826185880147386328645625214060797481038885249155106480448909350098970012367738293916030675447374500663555682539103551912180562754307839669732308857202287197450311117907494110949736184646576444219998832519422706228446208931693131022781171762158215256518169535831600680371296955428830695216253866905243404043726432417917360127694941923437086493370633831316571161361352314316395438509783469164922498934213986725188161581564446811072314279828825448862385345731124614268275978525230313154101115309644940558057102513557138776359759028764213147349831312296436311564191450050130570150792370940696947201256618643319859184823978816175852272615390518547376320529976759529268993199005266968441500971545461157756522854604757887629608267374689025616317350105934674998112542627854265704119614626114834272399028946438857050491252872527018332310950238567086515338798479259274086607096143848498116624789372377086472715232549321242990738248157858118557964818006436907649667665667025937566059391044589016246829886610812680385645971049374077305218325890827058076070734342191114465079848546070178197563295225839031318494492099035669978895214986999979776124271904494719413285215509490827944822634486562730695598021096598969682567369825427054619179672852132222673833717587109602015324381724354825913267001381741808449591527704176349296816024327292750646102366789638539797841091603871086332893263625253857235509968894377854822419988222187691253911035471200719173408711954337499963600525735214590801918447995481718221467803103203319727001885460201857896833198320820541706703161586379599460487615356677089135272609922785548521789346576648303288670546977476389823192450127628604664751501853112989024365357931520198432944549185139620654153209857683413629858097016213091807438294822522875085317838873076109810343390806890720817343996589061549383875096680262933337016469892408552544848362682456740289528351898264736926389766713368409114160572622841986180179020392682708175679450920612510173858633438918550281674571900199359045136779937535723217980060678115333120667789825877277569050102657511710512895345988688708297308323049986384203542457422300865741553271299365633674977799526889502413456876520809737710790908380250466951939971666914755997880664875527151269937981122153410452831087425188124157764441165606845432662663244197508121549301876226931297756539533989932010825771556170704987499295895850156154457629002411807291607563182502305494970932269586430841528229278057125905313169560774661501464746839153815666215312513787977315441430701278868363828276321237613303144077017668860141099030164907770949460687831594987670902375066331531095195021382355007081030007294750120924760253555742645754858832897862967548750328157372633561670904382625076089538321841927029443633718514065876319727655518184697570619880958423066353899178159256044178881625453444728849349138795692278985789606506722892640481405787873828375759323561617291022996375299503251187382247888150937647286069934610628051114913791803492249891396419660772671993139721375388693044698583138107561172924873917568229818536213788294842792517356702775871644928680645820949083666605043623439368262110479545141032599555705078875991477378409055574303581834540811707450155110637804792233823308397545235053898744355009786192113873096635396024870752582291493674903391484769302023017091697958941473624893374463999035140305477839344334026075191809492327549164022288812599437015900026779245628842987198326659355776668195626234306111215824606285666475618542238173101592767752129500511867442145802545685284955056927308272149582066000988771488026156701137794722086881657449180381311060423492558977329078758798307915302191966984216552418805753260424000267522282875150971816025128823715729316367827006375044370932205153340237988816250437640292955796865173006980043040230819801159747028750296803749745477325761812309743374788037846436843200705017737034424330812247654571990617785895444284488605991168192076006932688189403621711715449369554084258244694432413405507114970157198525332617540676001886768603052299062059929436345309788906610209542511996376934329133452570975027758656529872352541502080840651786101171030725503207323677628182659044876318456115672545123038638497332947556093620673717387986133028281900661209822471558583786651620315417897130357698204315566847320248028243363768332124975120032568342934405576318678094604793526486452937645592828260279201215814641693348333584033037036105879379941611427646595979244557396665487531715203027194323990129690596771735352669082177694575698105741393542653995970432505051998726170911725573138776326836268918740959475431419652665494515398410196046511452910322755380204008562609575430150435240005458019865414793805609813762239541825503176742343973579425030173616854025745111376939111707094366489068245370103433546194480503312939714963438399854830304521715689534054161016137680107825412066858470461633108714199765460009470532763426306771947381992332439295222455767835036484418911964631939072057083535943144909954780800329899871129572914163518894125900326163747045778463388333747959649966093669247450384393085182442916075052103437563601401077910616615267165118128499590396267397646079266750119891104149670948351459575418142322923008212741615704799588213788602232389708016604567107685763749556968356523128863176233445736717570991036452718733339408994176328446427742201343357550480155547371530845282854690936337296319024899006442394428816951005955994673916866644485372697173335510990190636189002230800189665937121329473049644493131449146183652433029306931235552094275855510893335421360947225199692039398554954395093259718655438936498940486884105656885482644262488065423774481548946534944137918587308488065059940608640563194356939773043577311265082966755052218474321595880463029089511035968833272275444854830974773792607721172639411224358318179229288284950516609345627564260436941599950145896812448793346988898968719997832473228650308562695117267031887649729845395806226056075343311709017320643901805043270136614842480051980573135804065238626707695836078493085702808240552609559277774184823593938519980594702326028742414815058607002352478274945328456078703468243036337800155622951005456877801055406718391726380805806522063834755794401438921883766716174424086237261730646391146726810002965485110599905126719345586681049363285265395791796739414371639909752057504578366775752692153567066564691627022914321231946395065077048904667201556116329283053200754517275616953696505566533499085074383222932564488064973024549860461914065081956834779462254470126631302497710265546144237885071071206809195563556819469007211636996314716444649172098934060883591967642850645422775561481861281989661739875139339754036821924636756580709563418974309679162133695986185438040665471339335786367835180409788383660597813226487019214886046658538623226919860522369203648687895924205420120691103204331743090483098545647347263568278971937200937805689947555534011968489339216487031179329914833808942818160855404001582751743212072541243142163029598016757238914430125496997855541045114140642854998226750119954104471099673518201971055375330156817681629456708664447364122050934089731828285783083206581621904723448410519507007572833213255043215390314344812335162990275299245452794396098172469614743175543655170099995486258531332707468544764162884215673502631797006478351215987484417411639228255154765628969916501910583851853068899985181861043994426946975136423062958946019532774063674368059718328704518616773540943069990212169974912579203626013378916595854315599923689509622962975335239215063450056239294225443259018243652626668995461519000544306846792719346539107100654520496229143433643307851362261692164754096007332495055751669361054607532763953979873214084292766968759909354725551511495584793380390680779271123002786122008389994243642719307272028863644588058791109892769017729273021930082207118269293950998816034967975188063418511831101890849308719246581306106388904568304355305715705649799270784050056788212349257659503006530007801777708876610664152749975115202762777792108998196646812979808939082532940385719033976792604014290596856046910247740825503425043789065291353799083817162234787139931849949010008160300387493183729179239273530639433855411633906601089965665556989636429575894867404249162936416052441176603914882625229589097323184651197370983132939101966312759437930058571435562673036141143459868878234791226294193974358079586660855745007439678317964960609983704828406848321188816443465584430714890695596620856801536922630985953233222376625415796193961951094102377104751390642052504238846504647030593973718913044050872990816601017061917197815765990948171957920250038463972197872207586720844653521639518310640935672951828491743640272425964151406327476036167371703274011852099959068395059363193282804365018715886530438803773788757603052042287687225595084450431254742193598509899318665613452352668784974567179484166435779789719650438799955549185851319307017601583450155172875580428584611803160262092321776991095095720883447794008137851218284605235473307834828239827750380955710424385876422978703941766261756075879157213472329377102282723116647360169081132869913520747922541413606880929651392474550302373462374894386560853794081458893993416252737678188403541238845194693933972005752762562934398991673819456399799364149511166424456938271677984487525795542599998670933693757088409901042443772364919790684253797724573712459167737600598688850958154504644883145060792531717784582982144439193924569349101275769637967361943757647646337458067665148195438570291594876643190049066111790682513924965652328464834243648519975780560379052812107796657182859349998896473225721458622058434066987293957631691943398953296808320898915887616776585713142423527649395930376385762888936995585357070771227193191640928404366073744787829938709149160102761306479155215376087795629003386139122970630209275404187543649961462858400792378458685519721700937999118034876757693166039399651591436165989058101917970048167183362695748637568448171877179247362103005641106823750759258970810555540817250891590397172422256300770480150550383372974245982775465607952595763658255827384660653621242019690733420181964388100988729681476747813430292151019295806249359346678242097585954843084001694555095432361577091377261276205404553616183418635930093315303254422828470170427120095031488080388052738836383483780457916791242346601227481528145717805949564409809896916836086940849861461699124797076428007668275277075845578801826095965713744113119136946831166204816369686642723180622741842098398545948204330336764889141873920191057333172820818820733402096860036264288422622574355652779570214078250075978545818550782815653640262449996122631713356892327149969399034956523375315811213142040106459622010082044017523614887030920653327102355347476178781722413875516235635041625638124512227505976228107439553755931386082520682324145762034892337956182267409150269756350889880746775205143217540097898158487219193819473114977870597048042429680431668023481143416039800770836872044962922728577762366084118887567984011499563176156292574929954187548845312057834040911248298765744723848332202618976069437377082670941889342288221176718979422486058295651142868366468291335934063767193104597308078219962486594427689013589608183069077889110471717326030006920640589904109098697674633265259463347098918415018838807452591253685971416775554909436589961002592010440730645843338747573294331587940765977944140301404440194054785839064382002099134553591457476517132727556807438146119325445072061300543099901786827477421611725637234310432194973801809892403608034105085950733123649817909210314977566679421343166556762737341982861306826077311244281077514964002840680023060009732691222462691693385629126328273831931716889455665175074118766931994881027070840961924396452203413713194776814928351115912605495166442764824683597616179877724581990988250836365292486365371940858086746221127775064304171885851012977141450744008031556788855270676605838233036538934627937849693558636117810629322085451058597478124784486451861470783421932990600387563631152771707258155579839129985373766767956470791594081130025350154610264909691263839175121722974784357822128130015252839471711106726995498810224778301557027623886641749012773231659344807268696956418778623139641868696799843905947535553278981409287207651409258053087202520450715057522428603095972883468946182966826192771390062011946041920593316792292841133276846801453913324166614562726268016253798107656173133420829398587178229601509927381548666213807870837907398945701269271033623833677730660311923075401129489726095213783119742288638040549607885814114114818846513932189909944968622811007354957363887758942011383056813188933490704837371496690507954278567168614283033640008880137759225833987728423517376062026354687692672699779736839632103631298656482020098533948201540200225400196904524624075297015980806847477200167885719109388819467185965723793560786488605496074366281456208730777482392723173289763304486863948952519184606351208967304245197712522727523759539644007862841254005118674118463570294079030640683397732339457239713323733621225008045651184850767023100195929732940226173631913785398759525124588049109023771524902429453254349935721266107828686684274350276797840967552853245140802441890414241367251766608202796445330108141163750490637069902382564757801542070720231812443616854119448902624808732674559885912073694227315171857887689504959097587830033576383526918108748488575152268517139180898846161532804664494595806874288664152796046185679446666802618520254170364005000172623072329615513764522628667495596649196995869587473481185304764444294820479764058674300170708019588592929020296865191356480144272542987501609105232416328445145362097574127709135899308023664687592385532393110554004484888346681510691315857777168410302954805512810446274255986820734303164903453767108114712208120984903095272009188156225550548474069815961669365170929998409134531295149094868109230573912413078637680984488670050722560204842085955454957939085147248044960632994992816553319013540980473337302966951264363629385113267879852850690356542211977870545242717889510558097787255176867834211728873923663358871440276090427475079853646332291189619856880805850881083861888961578235495123748690860746624881859435578431838184107406448785252879278789735246706699302644987757588007025101468331231502829301184791040916998301289911688294709234001592173363367917681503748230416613263683187241104965416731607245373202426391770771350754973452901856170534957756706582382768682188373960097547207799834623075424434337920103564022773959123701412470148821780533240367701476371665343478799809736095251223247936040399374991600286889291516049008921381017796409795774277794706399652207999466244093882238205930412397042633334225538436456856416907174044835519933710600346836434514522213492403184566081321266524077428521795559895348429346458566070955879731589578373980325087461564917136958511543950375168842762437518208017594679985695250817245942874059750285530657449932614472701135609148938565948711616775449043618554412155982762058253934611019563941896983807007124084306912935699150274824712265235378552866042921577927690053776473601109849463293416193714821871305273818876206130274555705847685328588049660934129282707865780524019262581903249805327350992996441548113874157468839973966956453803059986289330291201786446288947929485708733348086460478263442457929055986020836785620398378706453880616112402822995888752900326363932408044881334970327412796427931298861641928950568541399789275519047027998930796711325688713866555410514200827918267854649598039145657736649560440642183837973650924614108542454491420791562021838284127074026358676274839671497623971459571060640273697946818595567358900151469644594952650661939894185156302735151846267718994580413097638739505937846660908724809708259051011343016917844626933273312253365254651135130033803261261879523529485664996002563953723609862556763459751216025546540919738229667188545888332075502248143378924164507197136770759303674984770683864383654305800625847672442841970636797406423529348457396247025608368166980509547344630596234825379230962713540082357705753452988658515460859831074752899752573434424789166904866400073667695167014387808458602516106034165936657368020293927115533798716626593795765643948258154986494003180147835492360278878052032118353048931062283696713505896132500139441738986166690178576657475898536518670374677578313541703630868937206677735101381247660990982230582198592550780223817054344183135482788761529141334236839237828041421077306705728471442176233552282098451507911903011795127981992786005420699153414615285407046992434168551861822553563168257937202880958622968625048210905811432339857668135774599326264033098722779635827819428185219703285792641210428578112936779984242757312092010950508910899829522688296581993915706716569695930057639694304904561512647181440292992713646284090607230870581514729908621232049312197956220087723145792779355104744468283349329581423660431169546137561740898959525363652434726079838429389071076597426604934248892991457256987494209059391367596414106890562398573105303076934527588565686109508108911951597389780164041715667973125688862278525171062043340622427461286178072238697463983428035845526872308687512902622703660354190293852837739983756497630948501408934175876927756173608115609628584345310584076637988072796438279517596373120425490392352012251358955300554973121923941412225418114224105450960836251459989884869845702762475754630767381722107884974190480568317878107637007971859962632376752748689125112236088258351400045960949816211281847590565626276039391924303360674882444838795965511795309974524573171607515407062747037515509317119259411783099292978750958954164222448228426391643348266389384396355631130747643399568989691142982077071902554361727093524226450849297877916746729329845766075842949293900295914175960587695931199391500567655396509698938630994125849727385037577074292748198901789262215260712393800074564748417119462220841521220571883177609035837648962116013476156148295361242990428372519490432883618700591242936307184867351916559135111040082655703910264022756050378792714365662952155860162245956486623259079223054699306796140506167949808367629170373532667757420795540809562893771441775327238055091964517550045241545753187149272667657687779467651182722356941918822323316923212429280433274296363051218546413581739005650910821755526106154112287084986110752081951595491069770376947767564698274472698526862640041114870407122002611923584621167215956733619428473570314827236433732309020319323475001981694222337785554875153092620995062329752456961531122286010598062950227628447768313426968588072366516960417184472056078833648055446471366802118897697976582480898760616213817433962307095154790805896153592277311582148607332704629821204210128182742124415789598445113393746399933483905718375134970741352795309335896662907299395325264207545443465031840077859516439540349463096771105626548280485858148260121989228823866184816570116174469038642298068913664483870722344758913002468453675464286184406173103714448230478983495853089980665840856387426444352249061261976172709530010010827032520132882200486499574447195215608683416784881357419576452308420358811061009195618591582821573929663016078863861763710395096763994687814254407044611961523265913670118907618396540131439708573346557847356777587652453892254825608830171482045216679096192833711599588567049444654186673228491785265247579607662351820068384453489196597165387839165139282738356646218691007511240767412993741688680241516638159566100733767212116505463582320622786685900126087030257175754643482603307428789949239437908721154390974936991768901819283973357222376406726252222845062477113600779094680130951140156169957982635298358567833045996317752189430872309935773904367552562087990843283197310378301966735966296124261476774163910396805792134175709941858826066102063037858519249929482851211843257878695856529431126549314629699665813462986972965487318112324307315123443033950457749529669515860096578386297721101994169778316604575461496255854389553240937720651014845324800823234865047675667395984077432718042653206655981464178651685439726072131699051783748023844603275506626012405290708333339108060654515736335740988623674517512653287590188233122018499796016383135814770139050769172707126170882699630875372149096376866969177767147262782815611354395285453691434881573214812132860527835291013072401892709376283416774849052632818266194687281919016936901641776093492338134644391526306022867430381627648555727712454544438969284959650617842734951853211505256127432859376104316117476015585444954652148764857626471983213141445545455229636642042107496564889342756203250795950374658104738395995632119318911819265111332903553723925097257946016639615790293772803530950821994949204005643468033511124533846649457418410795189254159583942475881037557331506821938836833366828583041044657147564647381850612305717786923949099958286331823384748472740021940853881452836644009793648407553982184008404873065598685637619302643325496127344253873185385423886525056663966768342851078426198471888102348478266610717963887097609856971845759043975535889169679172828465938578859890168757237017783772988088351616694818651218313286306332503569500926356704148182074087167041697031695283548015280750103698762228636557073403302675253891124182136703195339033150307605560807276562078469195150229283976385820293188402473210690948544370446943128274113095161630673714068330983393911527195597993378183414396239253049670197828442972649299069407656776301456908170135093999204953509823590602533785540076507208328442132458156607031863666936939922596352181014727672485112226155865326003487121652404822681547847143501500645079191906425287274517406155618916540255894351734324465962001815677900875700413878297579839155113558111744246736768467646663649656016405218892014296542138601587372903827561988916570139245905253983394735139613343393133822169410958342074676819425890203733060594859889639198417194919561482621714165300014761619271043028648681697311992159423630843540707744258906004819895381589095732420644170647401699633580273297699925173048696220906093189925526850690477898563278238999240431978276520865482282762325986869187294618758008967809589736829071195176033196390675866956107895945488495361177608433181549900120997877955491645266667511409683461309476430154055825154267612047860105643693749790795046338352996943610245669326259724588488849001501935952719743522358605512533876876696002230499825287012429696810717139672692054716316683127583391496761067646865572740537946740506134833146268285625512605102598563390244741594266981273959660874585110759099876000226008488861976069758752729993512820088405545681303413107227056595941998378547601738416685275785774320313360081298464658889691230763574284156163125864079010260430699034198951828107831134147418207988950478330289144265836752445297351345735534007211887086911818679664344165439043455762824534036571142908599525815893476616252628233189953073878355850980566098250003321030366258950927202368005884622422364087058059649479610233107004298388444913144085071714619690434456214087918371990238338785546240373425568535250885092883369014618087200710221710528324646928254190400972736416509723718374286101494839832313431631213448018413163082741735882408857433253012370723852362355928128210976418868035343949665552616026171929971738430172020215579976228555398643722924497948861385923036719094141989736815818402170398419620687162944142358168649118242851262746753519844911526206360972519452861014486496972046740174769365737876459155490042324238118787255043085046002196165144871297257298222183117638421446085543615294826259368683094737960076120520678941353627703119689885642270255787664772192449077254101960478727293142277622697302617431173329421391099068704588720582904495331889689913023410793124192361003837350214771668056546326538050191531435643753603968909524609449980277451710784423089174114099494837227856245802233831760061547565045736894476440857319206438491281393066199672089966087217947685424542424734913042578495167969865688159136662027160090384055400203877257191149583668957939167698121030333750950163844122577762279199731417850986019679645364265547340061998423789028929196701811471899036243308554963855248819801497736700189307718944756700863202804655577890612144693112711807537083582384678144100021873374794574442967962521614830102107433845355119526976891886525870233169105520102786124151209883946311449739415814977867274355604443548389963177785923667367312306787031481990696675568824617975789934988338990804552734596549952035369419844726393568651642504952258862120586548391283400913177755968036492430183624948625822470707009191144538313292454939431537099558912948669809851619295786141722287044681047143951342305436662784550796408040727091119080071984516258194625184767627558080778366615507923710122942660795009341211859142183338416689212249344347641473079359685275415501301074232656098523828797749226946747432877278274288388472172498593874232374138918775010780219142570834726476316427664000964041688120719071184939558390060434853716933124662321878065744487274269869626693773428608907006967015845167901334834220162059193678967618878744844473915510292998258020267880509906681132756132294055869781486079698154126368350118945416430104589529358155466583198439452243072293059115184376091616172502734259678679949421206142770579558950706077561094146863540893239699465317176858543245769203526673710210598548208230232942538723182279893128518254339201254394256907702965151962311586050890550839561966577301003074882748422187202578433114017852322369261740378173531016167488473434910597405633758467294800035955899897167044901540253515461558529279367396999873400206282041126264075204510833220287670306803523109677886426335100443726000958373767517746465193117098344174441971833650177786171582728642255122220269711548862449979832196673871209056529861552588645125998334356208776362354773879509473560561661011895942438857017809994833545826302773372856614403620782197349835512641447528085083762737326175781745188001790354498389502282051035713056311677687490485835856201427598718487637683257787951260633737806909958785487659676973453195179082623035180707082611894101981724780582857311831718389703577963536342856176378090676016168899489815019273886645806763588789845203285298505236169280176929917645616257538331492805587944976742795791995991134136680566996342276952189213760306720370573309758934275744700471581578696632200183872887112973055883459878217649024966591741712311916116816708322944275962373139625949075564422013210716814634454204133071249892183096292072487095962942663856700793463357015076793869647276392410183579554654594694190512475798292439777721388345571539060012208695895983410565394958999926845245617065597772239993605919524496908377016475490631038502710808610629361488300603467970797032755778713850454404121114605121543662716878647820049052719117652659582454789239228647674597477284651625148796574016434090704091445419071841920143165053808390615704537061518174901842441777390302296758882791676216445013640665030503760476631410695424244490445926429793845883079157159606656920228033191212897027491621090382519038992986437357165386841598831590964321261398951858629643446500524799524819402276195601203021070523430478064852705343616321071413339913289682061381126515069872271539878566576562474402779760896373652772605416590356911309140489970435882082845053530770759939064810866335416850095811447057523554879944111196980545587759905277523071128234106928360808927178764815218008384424082817647608266119799929193446290079700143372549265240535147163830188131247691910732661527067745868283669504114112537562640854142936144073398529826455469138441943546638884574023155743551098082441540844541454259854255431109738050939230429020949266821426015146957872792689472235356060354354554480547834343074825751531211471261952739442647808348091560679182492786289908932529743959156144901419361132655441115666507060377040495530891671223161890125937712665224427037467371677626211358948185331109997640514326748843187120590879124347508645412291918312933891386119912735226449476835084819585847090312973871690769620253248301218702548059817261343802152626829015256655516121793303636194453388999868032176707576021257365336634066703178269687011819023110419207702103825359205248551176315548790393816664144561812577565161985720456012304212828832069338567060991290756902186741102250163957103503117239934791075445398659348873546445246736445745404517316554881340901999440615617452369865327170303515538990981097250094325856658225333796522517393158586042701767841511514038498895522878459198975664394625769198549239840404557792387739657689257765671171963909121098902958442186218127795085824582489338234091827104294402810917402731655344241441503094388671961413539536386563432764982830896917155869352255607467381414332108241824647310791433636100195010538413503856705332241706504560304099615605403101462383157070608896875192961484798534864212649290300781922935479869810622297810126592714198702616033685941190565824263815608459465430433902799637472430864606930900736927887419976339871287371177420847903885588714628481461604118117713453580822960410608431324721535048222456064264381570519485363546093830600552980131220423991869421694811675849022498876936551501076648242074250493344317475575280704778552978871946665908732492909571322435913210943719819369671516526282399169446335436056593944710566188532297971332838976902881504404894170779620382645857902855292694022214925996247312586108607973389790856652951812125960371652004973668464012657165161252250002815719836684012348877269731770084596126589022765836439428709545827826396408208135924009031300900808085319289160595497733580267629160603095888125724311828230566659688749281754412788082410988848952343208064415770248338254765757905216374149936722593702409722852808596556013578279640779293053800071464868908101475440182641518829618370258502187151404327178042501677750114952090634158372828409125370829575858284298743440698514196157193650574245420948365130592925025607952460711607966275517376010658648447034495201566244127523497183785009129182246428855121644117162707803273757307606590283007981622357331135665716800811503949739229325767851288072953638866947549569569612936059011207771694222838045756124032006185710400378088980537712209210817466065133323728939779612585090062158735988680689708041839280936684084627629040255733827007563281917847945435866081214810504603725036024477806805221638808649081150630228534967559205167528016179896372963474530963694941371591261478837103860378423882135108549273018720559617693352493366450637332248536940889841252862414186189526380502697124297289955304779585351366328143806005205989091027391857566077304806845328659323127308227546832845727776828725841563695259178000537557313146635112176108574949980293261938868259015323600831592990399042781918666541543053406596008205384282929193044134878256919516384858635081235792806211325180234964644921857590337111164969363818317987106058554742297199074619397269727085310245015319540595530679602722686162638714383083310377841582886619269841417557767989737089527853119723493033310239479524196970241167843844520162710025087076704929020989964246645492522805320815245966155884728372474599780726510089890546441395630175516196350299424773476685035268667584745513183139012473633092544772796734782512769089853862429273060850294158986127905162475750746296916795281658841644760699509107157673303577717086523755563267891156733596939454465721661005133348891959792713324525840568256792826174831048530955961829896194069700988537939472175478727289717683003014550429900372076531565735492042854114138660411039335395512398442223089035318554133395867364874483385016374128455119390502581383938557513234140534105554623085174819992132848536904722186678650395306127858463185188186514874607698037115504363889941505474570445143470128026757436282365595523333152434375487357923862324558768610636246331880865482069690404181826722075710863609604020349861134706218679385610307034557386599503964199661552557075502001739842053755309716122529780729444293844186957795157708548663223145606136519992309785412705829614418325048734241319130029805470901474640621380049605855433611844592028610817483264075272016999627250079492344497172677378690463794493182439089559812144744205638388788748740903547049664948352925971074491062529703411378232080207238672183901700072352490431576787818912313353264070422385697133698202350446314569461082621141642292362664935702145556514712106012842248550619184950082692726804598811374168044351501976543843914601154300109916888424393714090659288199951487691019322926268537039269354564915792643690787004088539668838522642661828034350294540530343283417115596538290426955925314078851128313947583179370534650377542834364696905132189001084939645663385266356741274123594264972886799455555184130775255488804935550742283157635393152394477647339508962084548751856719960390917778185735285484553837148453213730711916612624694309263872458418007129723791937202687245365174408180214675479268254028920345867474639959246641606884684442117032194284228291988137099225529294712408673812443548465909388676717161353162013828686428814372144268129272371263589989374181182381463083290489941936668726799381920037065425443409210467137448743443134347785728393479602103896693630729220777970870643786587312909681299131615858581621213941280058261141834950753443571223792779823801425160769916861905571647523741483674191653624075555677366122649929754382789680716436204637345041821649476949226177460225930637183852537209198275394722190655889570150092601744929363123599958145119604524468467954742342602469200456386342047812067405136747421382778365817209097884377581373150677990868154702099397178743488982095481175920425166935102956500108516127289628997969392962219850386585927520282703028562561298058210123326603654852228782074545804667905203895018970027394025310072498252374809872913286935675453450709895519118935404764129241690317896714953813419885320302300283331392985224868035228489560582068311401456590313573304296300820426218718075129249343913945374034492893195699318283826793548519052159905684372896899418996902382751012775076023344184613626959013090900726423831659588795586146203792909053716793715115960684100015092498394562423551103950520754205970761606855212415108965259817864118610576503135417964772640684188373753963459906143363031820130584010692189948710034732713438464525731822077074980701795482931492157823679037558627415428329269214371639299784607463274311919287864178695628472237979577199125641545494362570850753002150725782648170028826900500344354684812826300802606960268927954175098889604882618643712588226287459357596013095181684315165820573477035043481576206643141687743899939898541189538853226825648595918434514920470792019208155813115404470167813470461503742533089823155607153777172211267692298048409062385246696917641127391398709488312525519178807698492827565723996925431077476439641430151039830137929990020375857356851209690590099182296022719947495344464644133277404283152369678595410023447389019791877160820436148791225750936469866192363664530786136055885294531408795819528960092387578693381830036265105568067931310291831538428879606507987088382820204210301191414931473701360454314178620739010372088739989655767196203227781394515933087309815551152158195951679196838962761323957467654089049869078992314913118514485792021142553904352861484929508240611948783748494036580913659371031763403485493209359881905215630384834211903127247222631207131382106146808221295900669739785823756205827648942283716660888602954206158229668988135067471908358950009058358599133097405111234362967851174084015616509813071703389832024301850885445337981746844713268054579590627143527321767709062609075451277772523996841545999221227347555682945472384141278687183374111267939993259219470913423157477552005387266010922651615173814081337399314063109263444393046014299815090637464991453188362975960046606498652533919706032986796636067068932566878960013329810800925379402675108284347815671378400506526072848122635796945963192251182299858653725577227211828910041102606258525607956305807942177626514884303442159850517938606576443117550540687200177727198230273263880368215852523126125387456790916276468059140208848518767111718686385822896703355361544358895969138908828836045297520168840139078328924122812125920949616756588908279604274085586523076923098302195246252687551433919101741548136750690371523426710159873528840777096813584341056015083219584474338038023292434821438943557784296273575507052684887458723616399677599790352574681651514683795484187162364940526129539481484661403584439385455350627263922689957238500438762084297546731750398966873944065806374987003472757800730869572571991148106482649205999278288988413393908721820829706747372848867128463640252124827127312634531237550653073228644586122220484163004146830597490040287440407000067091454940705769150866412321229462428173533004543043760876384769989547869722897731043141984347751482983541005252562538111832606124562593317992869324084101588587188334427419392298262137761982606089238799842387388596316795597172832720661493600352962825286732626977422866964967875802323937600638200619339097892277622446808708438521078369978684384350130600944424264985192901592816580346745526072786652915979977386391489553943355697837586538829386202990226815613096768101527936544730616131077522625184309219001563765635267004487950023434483260128196872328309643307221457815039381449076060142404258049841022681607735402010542151543016637949575147793362606276961833033825558783556949116585915175015067174421949086908280181871848165217853466208666861470028130800790490288411587220837499697940406734895502794968915813859817065317411477772031527411057262433849965352735049334667443487901895510330534823631055738298350025774178504438920756559844280391884168651046469925322323402577092521847978352969975488625062480161329552752584218465517884609494893884109857451956285930411888180197187363108831618445637219035807816550297217335287716397380591573705510263571215480857709393336360430844420513920609587238351564856538165948298555212340946071510874374595072378405586274130703610580758344657517068874447854834754075669157880847085457505368647148575668584210804060609054940179304042144957648316708095769071764993325876276278778835976220068971082893592272627353951392633593568727595792519197298239286821518660530883380736172877049768079812244509356717385777128165320760111890409778024503231143395429256336105958315952864257155399081885676969681478824823007769195353291970827993313350542347383091600208042530338383097058133463593656891170737708413422288378502076167360268010473156564344028739781832167702748809871008014264002013174842425586092804041423777890391497824968684111580208772475314595106868776530231317234393971017891625898493208929654836918755279636960091751596588062751998931815157851792135746815274078214650813575555874865991149913582454277865847154935590025683460417537896452941796667991402602516024595845875384749075909357821602860465081397451294434029603971891213447293042339370050290090264428407396449889235236470850533344768765162474564525749475779517421987864951744669404641699790934746698119314020144010915238255515780677194540194536307287567314682767269057908005062093729875583332276611128638461383076747816506091143896380238790090526729655729945734491664085933517739647634880147118337735111792687583923885594169411316700927918569673675446859633768609343096472355678599660574608010615652052707149331697977485931961020389937578107575702315429790234406867081288031035219500792709997560594290972695976620543457549908731163320020332824180754616191296129473085653593390792768060826426779458472366389824531546101404234686503782382454370833792273465426620442506691114479657265740172388155397309542544309011057074953887531966996706333567028728846739366224447859858321518689313416871845526962902094551161046976821225593856691136088481862155305325706960502052386973614708814207433333071932249476201110791277955672138632318569993467265343961275266969997729204658456925799174830451404492023068722466020386350413775557717862542397706354500163719984437572720486071456573909155602910922987572181677735268573504288076945331531030806388417094391227416588916345187042406106215753949105107838018021822812392084713128838238129467512497325667700390157373207268469914311421997361546696006588265263950623607268538371506752475034238321121951385380736592962448463236748989817550024695708810982459846206699003288334317512479629185268048940615284246196218383469818564700450453139928807259932249494613845359917272011993681119795025301794821424196011151194821069197989720784914172412687041623481449541845766458478190427388398058739106032245617574935827067469664220387930689610923080233807630906813718092922842950508933843642639534246833957245370727701051386231676686637268982995257091039486728286967526160273659135775129907283345060044329766256443031517211190394539385071163807358282285144215621945714724174886869893472901535263080548397904974786680780643226078539784011159084234764455555032184030440802527399284940198026078263442865044517721514988451362057414376167713258569782930463765535701090272976028155292457577115752562087232750854441908330487913809004551544198579088096794636064089759243382168137683996064610266398318190402078140219541446407343573485413408064668209043009563622194249872484275938310320269611267246176850181775155133185620053871887051666969681240203784150514531960196237299641672464653900450696975847427502942066716439379938687887075724373105220182378430435934545254549474174183396898194928407800982247496096568049194188739538000094473962407630621417285425750640125763516023355847875351183138309181329006038648510344567158672131369301944337615991699256349983475848325329596678588527001875162504376663547329188103640312552123171388817171728445059832830595774909568518222923880869186014467253223612306102148029781724158498569234841170031039867537019210689637660808287566209392626577044948486612198906954575886534444414984502699407846063529830877012001946935194841504469150560257618873644639044334845226939597705001055305221339266363144176472375354442350609668143375686759307090590316063654830193186649173708056787961735395625620933484204194979637315647012903005726816035931739765050310185760889471572232809125964651030500214978094065316732379252209023633231482470838366378982410472952938371181734246114669885933663046404325119264455637910299741291538008225795822722726535745008693914464197982506779820488222238494447131587495861617339775109821324224800193953698340471851391209036714174393224416385285641050721597973349327653829921114675184266086926624674581230397142357254921167886888740191180347985778901834864819160592557548732239630364929029229876635892695605248489582044589865049452529512654596978218407594564328392926724851922638803550184793770835833125078705176933259694258685872977204903290887078301739265641638927387592346286792199728397539006850942508493104337313478233815852428352220042797786550205809266631373241406603988939239896985297806217373984698515007624207013768206098255183922667378007012556274043811493466359751054302750620178324738075044877420166785257920966852249272321239298568706524891127086392405502283608448734925169086071971406376787892084434463812172438908552752763071089123061707972300167772087366161017649604496130307727909789584347217145584834373480018531499980983309218678039688747206515973837040186774055118851038045332955313941799408233748730773050894106614190587426907633845863338650436061688903544314441226641171132837705563651477945470829148829009899637307000268296634329768565962504683487655967719427524975704910319031878636806753882391909191387252006793566257141724948946455398273771955034617675685965340024462414565056651043492961859028100199322082592283986890605400557573359849285645224254128800898480106812897700850464446232265999642858658659718197918128542348829733047365216010161505884068338628995090809361414883141430666195269544364148380407082930210672695028067330342203176829490602109047351095312505089272210830096085086861182996866408086538664799814377746617362867403038400117230356872101235500614396027125513602201509354154706476716420915627764941536596397133449302240164920072319229556201004793310992835885792664103284809738323192633220501947727468041768288382814506625942517740716158084045874206889864234472148164134534195666680115458203020698521391102347833726969762529211402264049396232221900524404595265529354394029622025706665566888152131238416444329754063342841675711436439889697355065399781881486269663080623085467004063458170668757991127646804360568478447451132118913684705085539786749916008636395498478614484273396930877525760275680340312029566934132861030187870527986036780721923972794590606596064060889325296130492204921926364187013673891352107122555713284506910414615380337601561203439193070245230756341025596967616559012246821541673218720548257877067344117010530884913142779302156738064401995766794987406665224766191076969364745128029666444852264855981587009476888199037379986954465647685466849308945768268430571571739403993278380001657178391115538829130455805341797772830540045640034290403114163250609850372624783456147834786374721221076201568019658263782132562331241839232116868705841740073343674186119331756806648968814298839187204385773340926727553320066323126149572085793265814270807494422013048722955730943170658084033903910449448642841119024389459992252679919779917266108558488116785984931598519077474356484923706573538970193472004149128608140267335866365137130709504931147763929251676666854564095910937842019359134326153950079955136188489762615763603216073236567439921199393693968143543361295715148231239778332840357670192313454318617256761119566565655869622147729329770534539709242801181398088093282331564886375085475194329478559768269789462574598499488403232346662678082691736898714565735261695330705548220069287006108738598685110845154721865233041600134381944236364225102655149745564083520186274167239520219324157673732326500437806553198755514738971076216365668454605754816648110803657275769213556454692258859050016831034809990199509570776914764174333862999917513072586403453652533019370488887585238501497436072291511521944825732451071414548813147245877294522490826684804551472174299384469367019198596002174864667802806176899693934150630089877337855600686882896868405434784267239165692773410160605977514071840567918966376366627101072079629341070873600111831880503970128242673816774370102930257649361127306569328202439145339137388912654828965536781131028606625217602845490325824889305290025195791219143837171267662610094594601424297874050376210764456752939491137282529423379056614915952348004758786515998604938953742307977035667157306564804835213534551270652375342065418154341065177274598472031439926898260100616447757219198182407568769153882265247656660164346893271680456548767202899899109438653308471688636397980164056446688380810641819618028216458064586778013451898772000069178527895156113840201199339576477492934526199911032182353403350433611372355420579453289828111691590637161978445905986373100538399501007087017619793528615765769422433836199704155083448020710550288740995886835863195207816430953600889960995128086887699789490686382535703933546273292727768934055033233707520241452099376709847721607549586072972731350061797016123096750998053616374558931193232632128776346951726423213624896116451263212094880721194499457883349469825828397822564336259114382964439045919068484907140074066414655587847640887005045598292278813412902614843546549676132095129279039432859167790796606994209588065530377633108298841169630641362951807424754289614343137409805066573440568491297365939176114494066016179446345958750017496281706200982704547710938639254353829991068040162656755338901662575222003245717629801140847011031367696740129310643085776421804301074776825365446235605393909533580426992952739373340563936041262975345375963665534842077320058014293348854832535610847908228632622696040738346320128742931106982987698297344336218985858129436014724228037896472001076854586923880861636806831365861387111650798634435283144715274710628716421635560151932712666506031353616609700332527267718023109857146813250771539604034479670506153293409164263838201777110411664846467343815695025062306415689269676106020037223948073996152604540692629269867431434314787429555316742227490206548409529177094093442032940398427153314809654065322014935499110789922780855364511061063851122960944501021679622846605568010019678407331172191694517965479122995705608827039039600032567200364327228138079086376020765295963081142567955098579831828662930603757389616025760654554832629592024734987658618857791619184531259391711434412291145009988464535349072687635984620681927772959219214741515811408685106522564140324262141207473243316039189478849175726247804081882345959388978584865369219946077250087945240634065047897247895682941754712378326104578571666859008624951072946685340135830294484733483434623044301467400393358201169584988517830213545827991694918790874744195666416801030068505896775897743648850792462688442357520628990485592120102580740090239475219109282562570552122491612944243218141843081430356524818294728357812048613989995457147507346413095320632771335930536247898436108453493449227140456111192686633629533457311113437437386091770805786894500676499904377316655616273602018341938385562453463959384988302768793540318058400048554177860674562167576474626882523136677396899876670919123336423176944925744913028376083050750625875425944902800173539700395486072728153467935557363786212386888197845932655224610627942070698731584276601745845513570906307861458976771695288619368041814701166317025374480689357083393551139305970173213481793279649427632682271795596475416783992038368122810257235639642594309161503107051076635492172708882762833652374348230017530354325549646711782826045164588978575436524724551675557380400792219672062973684813053371845995465418822508608415481734037895405749628645136460231381752580662181323911897666815948707413139864629042867393286613621683597384784767167330835069606518292972288446182504647289395315257232819681912703015756767026012061064267891384976894339062343291938251700632995307262454306757012270048332991791720097531037288327578929915716471585405140413559050511109689561637861988515621500121983646451305641867558736100248887717513654167691095128867114187401915911896079378402856398700263704744035861604067777832086056427584351664333921485495814941579016038898133856627090968851142272879171710955945590673613879202020158300136413237699114191242124507459569212663375606258172584204736027967814433480251185468179840152146093989745949370209863611326536416876890637058310877177570297291036477305626438313261511102356283358958233380521058014678729229797780258521046448553426463909844060363797124397148878820249985173715968760288454683327210807794069167930971988245227276775316404341337238004489435328245182053101827844018974990976864888791017732722699097101337134450006133128372537848190831607944711835899634846042453471440052301266977992718494789949916972698622614975176533845032548184210836552129630791779811889081364572802305502705988018395805878596868697228023901955524538794877342883094843021347138157571826249227881405522826487342733184803850968576890481226712747306861279635298411681357634711477246437125549192548767438371167815412544837863048423595963211855735087212982557180669015731005032925107403289118207272389571943743901012601949889885739331052567779971933445565979071338336444432799811314804639140194610487004634450082390764293049495750187225079976471521750338079662206824604508968138915509408553604060842054499410283801079717443484737739821873916544018449060748775736902923336306732886160120063609155619192541602983549855763867037539360038677609803418700545449493678668429099981240370136220777292475289807536332814080310348628728494642829273403148233337802161321424917258965931986581108064199223907231551336948525413880481013519443566749732730054040372024668185911097254540177170363606041573248975557056731539606404350549265138229825795825619051838002317161300857100462000745958549638451523332294801231464304879164600250769257104935479978162790416364198129734140609304680870339823707173838858584511312083009407099780185002169302778038086146251503251875939756555135662506259981181791805958818165705250027103996023753175620646510160476953249566285225562826825631228324650906483761382103125066602054922627008019677436299317817568379004091666104562183066155250339487276432669089901275877859018817735728181299814272803308273192634256875783992926264220373288860161235844273161741957565153131324024410670658363051105986709136944741613363323733124936554327690972941833200362308606135102987784399093815924103058502248700869857432733030943800881354314569959058956372681387368528849269297533071670173584399258557676969843235689136689853342578049620316114477393023154281402028842246329079721705198272778164062767533443762894339334903834643417236435047683152987572264772002435413936631220792610775637175433583676838345371208810389436471823190174707935877666771787568396629586699571117232818012709333352874531164139061895129299838550474003197612865554802922002410872431383064058629381763759555614253283164871365346727566985340120842285071297386563508307236643076016389220759886841011856101716490292811513219889924299882341153537403084060017539159711465299610433300494412024455928357415270435376365396155991768082231304977984375711772169210936452768393457766475602308335503367244043867021378697793522213084336712787884016703490355981817503427071742537505489902675954820550763612456866956068935251940513271392106223072193547955338537511200688400108999159368404785255963612300327072446870014562009241714284088882075812314963135086646417853490164821420471995352588370116622953080353293018435331257306808212075732919088226196683339029134988685887467370263106376208052416414178852311400376006129061566764753833059962130215748737842262336418373672552543613034083197779564707534986372795631471375932815924456680389627503714763801192700503839013195653759730353875216482378618653492370749948839765243867591952516685906532938790406265944381923652837033406049186855495916603083992663483539560555598784598025435417190691731613624490301705418313019470125213173443054158409892800595518091892605376055286880381950574270227726410203126719663703015587663509743697613690089744201196346948935511750309094130868816769122056418256172650863297094246155852297390697335375558369817922244970416130885158424045196387747750673285044032870862182592257533777155126344341239442369722820203930512086853459479971517204719195734558160356549109002223861718368114825757506074442901958133983241312236664323197577674769953850441840660811526274325126228687058149292688015184430108417650720028882906298794952006645859233206143383790083612008511966258153967790644152372100558486731541984947348128150093520675843052548567254410533089690933098657907513468232935188703598041691176011162880410596441772711475272915770342241816166109533771543774891399075105987180474770948856501150092364571661078957351390315440426493556381710086661577931339614395356531116905354741461896036753413264924386822468586056306012625308282028927805791319090577453121992124672052961812047016115047559642455679669300243375550798963144960636135899047467949739613458593667429194609579306944159546983135013909461823261109202937965977379004028620521939850480272496065077020336096444345304720583651315451746229240384201285635552219351413719987940506548047280453142418484599880168828369206653070002507872249331567026840969999529254577033095469689985618616331649347453747894778069180160806132842247686988283428268561800888757305024023319365271074929835792504238395890139665625037374819702080180795547536737166589683882132404887172751850972066308253781974709246211095127519647113514396295403427433934504766818807610722735246166900349981507097728401886818410888632054440769617360225500493641692219321918681034069455542899675357593797806247873559713120662930511143754110717992583092193975736021453122048141874053941308684232849750338573842502415840763242829014932904503805495705286829385397033914809067239330070752907259051209603183516073070618179987879681619722074358354850603557410197296777637558780309028047524234250207447165621115531231209514629159667173378070939102308402806152737270640899085695963683604433969555830460321236448393909075205661037118246047918215766186438563544110678267133895541426141229966134175167201067229122373027885488803278118576880542157490634946996359727176552920200400012524493210385149035656208777007528198756058335653906381755591626894276160981390913402087392519886030804934660057369907746614059749224373371201742003412005557170547624311549032559702154234361708685594329704727953340799045779263215367979084806038480468237909186281674857169044674134194566370970752172946383355484999659960792537701161808314852717793869880955270254581577938118088776366994740926273161084531878788026997182730037020370180809545967859470564999025604180654679758864028236877538809500431641911080567429987463485133076057855683231714030619788061116668012528243861104661439306292229278839443210674466112334903883830359434591395690565784072358545753696475518338941393316277442761107537297430498983023463122532264857387474862275361071130828964395962827813450446202400296115413155464265180316030343440479114150504209012033826626464624191230905879008451910537216197679112284088989235560425128929098872405572981890899028854809528565231670959956463620317694767872406985310998597147724895666478679877761137149952792779648063015764195576236039468571077729345352023225904964993044475922563548152948209093336121554281072504111196999012260051178310957746576190998334638585758472275408551967060738308651441227411037161762796517497915013734068901904879343188896531703586928864093112320281053841701964058086908550551373557977810091250664728710429504399569687563165903777751068662947511094784145730174550708336005162940050483508683847888333511016193337173003652133314174282703014902654953808903107175966654933288975130075443605894670481977807497819415723184194591609888560158422967272987427186964380862886605448675232995046144126346305343506943130727616628415005728599663502534338761269378315039715148086578778849174876199939308023452990446100439478327038296703036491868533452235947489322824265124325727949984734171845988788654717629379095522775815500857935599907044236477178355464576742332808874882014842539294013231725313846372852703372508129147128674158311701193806214777528842639722239239407943718333398281488031673987969446012519688525948791001105291970802427995185598379102942568746454040563187786789046118413214308567543614206082483177024538450029382813895312672314730613992585111880798046341700896920953763910206043842215725176720876357114410845336109783132945412441729698433121452595592516989848078592350551234403824472445030861764222375655891023666869239444519991435031387166631097142520089267776742286439878169907416688409033554500688326218121816215811067751182833541452171944993515572098877786799800588976048136228313734027930421926629721911592593971809438340159835982885558902013565331849188728352421822628979953305128678867427381775113305945858545950837303929026994108211667837179611961947742914339565411989075633750218565922126589463101500972164342942596174774825559310554666798819565402361598021678925988850332073934568654190563693258338461643066234294623016042914551296353369230025738096946035681933069895920950112893223883632243908679747677606020480603595803244188595730911770979986912360270026525988075705432054815598414860227880969320465025676527026497534989439841939348943874681180975396835691025422038543698942550502087033772644055151839878703257717419868965909058594025134482384537834605981089838092544189103363111487639389705049244336540857546533126695909783274408934528641523038543748855477691794944064734166919497706899433288210843610254796228457050840920004215705483423789793269562763296686470774021340710904633180015309301778477323533719388137807665439990204271505073917192387646558700313281782876500259115059851646566251249677305349942585158833261562145464907203816581129625725964416693248040313737487545808327827872757512568472564414549959601899133388552605528108011605477983617980212575867669356703770248397567329520639647647368942646843917024013418892896363789974612647560333297699559188390051360852599780153119323845008344946261926024482748283396446549139457334316461507032707496567801182715958345917383325935151055282038568716979810807120354940673407006367562174105071996749472767994924492579123444437567951146465203257725286164350564641607883053400291067257388310285534394517370042984742658483479825292949824106208771976267915376141963453745976971469263032906513499967379136888535463065230206705302424336193821995105465137764069716669726257077834261107505774638611983227014269918035981002083870118650295823083244981253883528421780110555239971766627020064163658952674450158159346519281196250780839339988089584083926651554501346698351935689701644327764391050674061448853477299210160479930172391079278539463109478319059586291315687661147866889505546296181259505748863233707136547764316662138117495914252809755216449025826864479654433813455907254981888194768887820464045217704923940563394269580170015997514958824790278071121448705020829451152968378787956550648117312096299880075599753316104578363275221555125684414203781487034766706055286969101167866610491081677343883192192747756055728521756920358473132192282362425463983536414412909983646642525376249878897723986384861657550136855434695674680167430957508697461336880906472689116277944748857369373524958124856275170501955397545403765598496416735323436547621057978700253451163979366232716084693444746857381810885936367732975124415660243212873240368529870390132196725897266646837730595279622933705388120328277576121001329321486932002035876602473061402303668013506870944950057273286359339042302555539511062672916712462282439195594423776461560362956812997728694973700965903305046224336046970692033092042931252509852999423360539997972499434773404937127800286324897899057310223156749067061402280615744861529046197280874146800392658995929390460484308307402227542176182554082156656426541451333066025044932701288722307284024238984616104355974104270841222191877736216016238125402662730250355596110658364685383882643296292643409915675982390555143829883106493599700942994930007849821965844218436221877309852694169990418274990154365930259996507241017733560474461126058702064721626630983523331739472997341817389397091031380746439441609983668676985610841517069745541765026781444419730542385772039796770705882369469806845440152715221849664998702201331591693449571514067178199017666147099725264009337080239383096505567903593018466914187403336121122987644039123703866853385943764067012915442943793180301329796930362676262992636320594950489008787665650422513107500481920580170574680896152604627018343683623574372850855065698213922492760819809961402053471650120178498446728334249874448509152673441735807551553384443903452177563739532880560383028453661840459409249171000804174771686150962911562441584582885139193327475476308406173511288910955822219760985264116321094459083311687105761341172685798692419781764199259059389321427734757339811561697573432331201166026488660108655039488844720198211257153102650371439322442604462768970511431611323708485265951489466254325835535594146751105627053379074487100425468408047773883631652507879337150430173304963277710812432715132143729898790937982678240689345640185131477021634154801106540334650720693014250537447542540599448332368544535681221075077727262457814202465457729331671139321060237168185901392368637852456631568495424319583029276121823502289497058579011370151649364117702878775773636637970206610804588131449233300773940388614696764813952320964375630988611517614103455847243496408768451751030001162078264873986936046752422364609414126074952590558683750320604501423699490143447991487128943918220842162085914833364651901332637417207921935879166096725455567977802573757609230687313940571465708507987491245931414156283938118682117432617037608747638526712003767804217015625062852646741853541995038975443985046575529845166497658976748909117997138749981509379069952577678748390968044749623508477676350085811473968033651643309861609542455518450477788428540769449664862680317759734373049958561254894339161919959665562583220653462717037043135149585287591632429644586409334235679878656154826813975897869135065158304351729127294487693543547928579277066346170244459072662699137258031071529352125931299539616651730111682335276207912397171065508763576713086555268721202427556200890557147840413045334252329444237527048049537056219060107567132247598160091099519509776701499744636417182926086694739081268333104661768011192854839691970771393905901418120676652632499750192605610994222074157242977576326170244934030325682163971332828390847557192238920791708800764187417258631931035904944764924161080119914124049653694234707409681259968763100978544172707013344629183875760597511031908048788249301585985542003868786056234435608542955773122899042512109871384330471817019791406484096549412341396160019125969071789510471103513470705595293272398646973245318776020805294310053295003838721776416814785383755051476228803308045917991309769757343475154300237066453492554189678337345416185744197961893868435721296445204700461019549931891635988603624161127004516523309249638942300831473125521239577674815091438020064575015235297143780851642183847478169493221471529282484720253982283782731155461380649095635808125456258761771345035584583715359423485615144937888010633780324664085995547518928924677859933153061931258500112337778291339525433159941901947324994036616247459450264789887922522286476777909987561486525762322704498423890766710598953500811534904833298593824000051302511502949452966032022396538347760404968629845765199137817827257508463301901740563958210630260238148737622026712240053354996781278404393760216044239427523667960464704449982128219095703047781663764010964993082397932135119175410520031104202367187861867262472208738543855085596939295658604471022332894161636481466173515521984146089010945512302913612452615958071588818526820910876847257150188613828155878379484071852700312841756413876518673775803228453315195207231410553036968536263161824213922505893362729420456568206398684898298100904074572007214701350131953604988817562006279931023975674328349701509412711792652403600890854861613928021909634061474328297525367467089195838034256916947263257843563364503123501793524796226399267856791882866550941148298787441572218241400720590973526498314912452341460252664308577225102524714424804566825562801627222710085480247306486760044066819367939111864673411661603502766228171455759698565815154934934119631644721158277815369285518307401745725664395398051282659384026438072554593345255257710664991510678744488932331166694598818046896836831015424084212924858912732775141669273259643907777733466126376684558214029560194222632798971598492914862878460408972557828171808027547549224786026597134661502079146894277917054793327872770047822570622850840145240404500839524026799148456593773134656419585044987334573235807014570784922077106676956588716132945865986993603856699308950555138477549585806326369162554576601329334838062478165230760284862239288813065938756526519157386867951636995726043012422895350433771387897573370015855967015080536286388904870556201574345329484427629816690109663702315419402344428209691220231711436128470911751881473523110284344925412934398630229727068473288214212122817137462287282047176432583128878006164596314525357661176277427834233276871940766152545004675084855654799997649521643358349619267611376568559687569873435014577816290898383720266885654820317663207576283319584464551037481048558008793928210016958788625815213926748963035419943930407088401612928439753212354256319374718253729860139072484497720370386931769206632030832560951367175952825588823597439352547766402332543899638652074512419182884345578500599016082233925585944131668000521817156429680113338671059371921673706055997145192575711241630202455382881496164384551273497548279011618179444810682036809385761159015305322030915290008862414268786729963714945608298905508902065371966343354684596498162285024501763579338259346120442330218284474392821877923234290325952864335347825610101672238218314676929403389455113553025160902619869631495744710642825642337672589248724867072635669958008259227582538019475011675543429653687101335295447595559624508498136947642678213194735867360043896430964167058334512409717316481804190515007088492237284381996022574604992760700420966783153269020003856053635684821057395992157147998469883879032506561696838570583228145084643020499734578863768178375492574622624178470427829412710924404433970399956106775369011829014020774234110494068004003450013820697176476035774902758244223225961415907433221081111601070272094198289770574374576962732491884353145217747102488269112622512465049408325421118734386285740986857036173761696949623088826958663084892985363949287071286792425317558590079339441123644933902242610929581949734416542261468362497154417813279661137001570476350063568528889901114608194971568029914687088442786794602112918324266148888445719446101078274538004001603315675589312573658672323660982381420586854256940296071607368746912022603392347690946625481903983969383145318596214899035781407290686367382279887035699592580359011295805083738052614859906955187120960844567776782510143787085008284162938598497564648784485111144375681593023586704069994283798795355050280687367707010315014927964904196872272724030548893073593968283791921095374370081009669910790011243936637801601338032272342791079797358616617072550793247573892040009804434537240853413504159485968787219880503111165204519049412414848559076978213383523488680505185466662807318519220156967010889320232070089270403624498146125406749500014843876393807007549925355993677749234436513046169752441199136429204688506039054760333556822020224560458896594741972563057587885664532894929697589772931364863501975700705399402046834882957204183213461222331933177886217344217039197421595070065500363918686735123196967016585368979360027018235222343625186236065106955361776339016302805773557096406922288811621164550311504199113688834053481749769466054826535193906838494643855873084767668472771033237599242003180293440546067717315016726233526200585749403881279175503415502417727970598749394182579805105897990914649531051582503674375998038888444213734069241224677864684339546638771959581301620864931525812118330139098589915234801686950587629038946604768084226843472392049536121294215077044687738567034319028250433017237071028092216437371341621403603301877935239820864074372551327701297030398145719390505906092416944478983907061371426405456729752049999875422514863970134796307461238282003260031958253363787888775775000809000772700247443841335293752461073887696089987646464159335505860468788347007611511493040010461836939229512143554143322030260670642633433517770879175971121578633795437935285829887227061463953660898087036533640859418334621988881181001842782836590733746465118184180496902308435040364966860132902949945714878934509964115775824511134739203368700094070620640239106126883073895378510524775868783709280864238645817738388633032153406084147068229301988900341979073902763402706193685011596920350828603108668835470007906645591483430942661169774633092033403599182205798089230773191773055687429918547130423613036756456447650124253351148515760796192118521974456508469268887195210875946582704731727237871365544454063301320968584911186565320174345914646883899430148895680898648666869256408908775401440894713077085882855874436502870705387268840535936334895742738992936796320703215715040285146706966235485420328128287651455936052977106437410616700352535197906005364017610231837117018863950292215755431937541313372857477640899476630665161250828291202273681120861747790582329858183986894440616029303685268298684722295009577919002377156926712724115182274789874682315346758654282310095939352137785545181076035469939242329941517668650499537951948596443044174777617264782597485093489060529454576681591833083025694020250805818127928091949698737476789389522458845782635404919788186258149972591008306767310945445321278774651950046020420851583708545756908481851860517498943513086501853713871173558901020020905616705559346938109396923221947284155084554482590241174100088166385466090562061545525636265242011544203586966670799064530806883269994615586738948480322291813240431365440730025693647921185249211741308801161681289869643533456104529020245778999721883697501955107141806781014387949227599670326776162378459629415233365062179731554499501883523544419644961174151848596221008346713671915370411097526366547723644522903033514553815279303697416585504570328995718001588096997846064535665199415312862117387807876876951320794756778386796121262582264940769803646002229286812440882953151484285640538629922288021645868310230907162423333669774345529506785973930774717596153332639438900655150499020208914754628991450641573516864106692775575599775281506634124982577062867018037350045252466659364969173204155940133142284528455659364452744358444800124769799294245683687709659762297547204780410879095177807996101491176962007076509940510930454256009751389361826496899042366142847075085955924200350267740127816078480692173767365112451140380016596383908198116625933533286804875265389204439402261942400913331931839300288786456435967350029397006527503325084226656325477111418748202954971491215102032311235009217051945914287350002961131819243342442799265887468797266988306570290957958192304502576169142276111301859321807948371016468823962925656460835997504904291295469149101933044973175893826342796127019195768864156827418084542001699559596141949802175453809422897181806809092586723347627185756344705462713252343449126398235082441647662323680358004605683448384722290821257520505939580023052606814814301359581797975099655464253648777671583830394699156183098599238250129608175766333843097645925417250262817702924534992174111616582565211623282886364789743423376808037484008216591549697916433117169499534323362802455863484393764410968820198425763076363367824192276737805724365969778241422608331850144723436942487730655192052030355297426302939198631389904918026679698196824655166389487675500759314335441176636402482228685019780433342044338898725404773100901584422309100719077938956680214791050924035432679165980122310974062079118003806588875929796424328217648404918284366248291102214840615763076120832170776125304607735484634016497731874160908196550533187103898721499854750211407768518152603874267175252440657217950108164353058837654654234306895301746362244009718450203211988042431355158044551574702719405275100376496691956428199016850434447656499832627088772974759172438927979278753685810559349128127410032856001107739431154936567565014279084978972578010314382862047863672022945407189546776634560846937740271908149050319342204515298705566877536048042843557759417461376234232762760950589013448106702592498381042291731285927140353650694865138488871546946708265872317995977591283213907694405733444960062844473211253790248720849655665675692089571649910604846788034383855825589803774224354571329801670697503484983662588089639174344509847985046913852489479109134880558331871360296342070845208287073526956837278981257933722143964713373104858121178560625276768401392370303091972729840280188270933613008126503390655670287181499387544710769952160594256697832968822026668175510846286806599748571891585445582100979329854975100996053232097504357377815992585589428606841378978401935281615033548660165736667954800235830007847214033477670822987770969631726530546003260428393437236441377103610879045711080250280408406292730205948758014006630076613956694659650269836857560214924450285375266544983177097888209588929222160188940693474439631019098906791568575868699812921832494764376990426919648637462409342459511854206814482655290968056016820281921262203577339851027356567570240956033055442630448851047000072272800916496293076251642435636236964688429551902274833909863191427832784777894810799356315311369909896508715007078324277508233235322920302158452851075775666410995611197854358659422574729502110672451677572841614849584858368782437210121576468925273374857266262420937191604113038750720719354156955355779148623635185798546530982472333623213289244617152814847842233702456352137374665493604487702135221577048133527607578096194750831635906408552671777756871605115716090500858335337149647885471537057839004642264779432350796206559213094303003352339833850149263338647713653760084734409452448950479458032908042791241872476595300945797011757561000751887827871916942239822038195550260109575148479047687629408109531647100870650491419794406976434473181304273916974591420716883626502341922611693880324874039521577905289198656465859903515739382267577401748731459579405374237107612429674139698436222719652795981406887433460906520870930143672603717488249707984053295380642552555889419137861721241296182047087694481124518764269407626312478246180771683782743106563719478212434066979258617659549399930503750540923131328767493027046298759401610715811307655525764455310206827173909125780178690093320130907915362701596744934905855785249006528672993971682795764550452756746478684134616668382500847582183348452435006057631822601427805172465315605289218831779333815001055687104116094312516944524473000300490866095446810044730862929588701418158627054023790518718369875138244439754563446570185265570647112971691043396123279103987437093704062010150041214827947571557984306826153343901958677514141877775439606444909324209230303342553202577993838032170790273297381994220245479375145954684147019496035674316428434398739563052576757142416365491396620045675489257509940080490795040228232415232564825972316859972922646051839852438323590032437346188754270325559703957973484067415990952636922816821876463380471461437608567721856854291274872471731502550245134646862783586298425184945082558548080127297613259636458772707292952643524432955765884686496006313741824473135169371067295966623891533367720179338454394403232322848996578953671271227407190609202401796264156806317091792085636772994521264341656546402206815205188750460996353448161462969052975123085377254091483953034800133734283280312520864361426771029134228176025379853834186514573918726189318087005073882329169093902900382761939752222236447724378158144086329192746538857485510266533926942473762847828430783377785199274786754874278543092194593348020494388374869069860112262524193440779665813192403254922142085246679061278569028128578728411420091463342126482089740089366620301594544125893269816305277476224721868999265258844953801976603411021756131954532331887485517500835582545956643423097558086273245751678560423676077004289121493494089395782517485792503015417618891243343381723072317918411170484309446862527064038766851279305044311542920216496453546091127167114734635182844084587167277667678995245487509175400320363924432771342486792907134556995928587821486979637038678603171305426138343462506413012506716731087585690269234540949987708754723902001189707838254811071393799357579841960720567740250932429362658359526077692110878635536376726735582141435057753904054558306650939514614331256151677777880713447736711616396438076159013797616478321964138671469722558984986450558801125200827562472027083187158079666403974269998681532458294128304774402610295619935416272394729219942861103250562224350375738257652210666436242649895113558919008815951789850854940899203895168217361514749783409072458427677989366974998087753983297963814255240820308923238231050960301248481434978191455493782419931941421528555029843474308795128969188332113344759625662674407565839362815050769726077409461266309735298203357054722606740000272103573688814774439369580347676029996772801849496277772855287315930334480676489971546605020366849233561146189655172096820955368233417511487817406569798746212315104687749946763841128814683926690482109940019162679946778230882228310156203097894479422446221449975981827359903485539105714951736922474671799492372583207302535760244181675508985383014585370069159297766388027636703195664732737226035862359867301108364000940184240101952749346134940514443161002134718568396834916863402884132691707132029719504988397227429021209402345291991801971814497975552689645494261421090420600572714098766599823635399171874308847300285895614849127456369359287653180730366040696441454932694606381242495015102201214944829088931479950042774156832945860770165301492417928870108550303593521871363874521331022532406334335136599010106045189527470174987622096263803153279550464303268858822089131465362762535272603657555953438278717216702942579606504250071016707902370891329456026626005053139918902818096508344234246718399807612180623989832112765529230133135719820779146060297311443125977937569384599856940634376166156279723193806422895058439519582317071199271508904700792436211291878229361318440558794038471934352120998970122369592201305867606845250985321871067503231477381532065014302915068248933438482571068263552446437139812180428188941806147281207632213398940568083375739620796965061584592136193842299434777585568641221809130128574816465606584896539291839283009823951418006042876945583303545174080929209466565159734455167846663187648283952859575098187774572870317088994217723689874687578437315020237782753033794176640768490562936073894146350297497414759360638258156808637983231465564403648032933115918785488018721726773072108135981759179121011674889347888915487426704156902323326793439700446572095698681510597340792089884623534839161512044140932096366346292993827868492072947467996126033883743307593043286597264341119108854024668053730594698327548655976917009715286833723995000559010558253426438781731255372601276512647170514843414404670561389627179982376889353477748478870469121327286986910499522494250667488975691400996390707847040075961545052700447939146816910866338864689172650792351172692731652580155530584789149710250537436520568524989695606324318316250015212695199452340430596636584796816815443076907126751476692797523780619576320261062645912635540943833998372186627255520965372215936190455077210503827541381908954875751492167828094407696690851943809712716869179282955401485088824164036002747987798806426889502413368879968926636892667000427554582784377835897423422421538841028933282439386495458347170866275608923461829372063945491128983740117255092987682089446313066311338982928101791351086147930687817749903242045488876938526569326967417478179308034650612508671155340737964796147805944198699573999204459430798484375515932609056339788507596546702658856508058515837035143413032617977538592286636863259786819688978736032285229323065382672163851175260312732512961283701879482805295178640927656143978324236642110484022149159461692934602512177603358734686327361869234965861710981436004827944942136746457872332483501536001329963041796950296542430539065604591862747813706967358828353410474967118255421632112080257639347505175392642594929309508789945008913638738106797242893118025184541327118299968566926700782372292131342233258680148133880506533188807960868623225752954700501223614820191264491869449753204232063911416596547277431102829941134064038989676710116907248346413299747402723251424738737134013327662389956006503569612688990443915363363812785508837184960281070677902053582241264629449011207526590372176914307761101952689653986484781364022879373095985575744551235281780815711061995127530451273991718946642361262345546991697766739335766612247660639177761192239600077930830779380924900782011307799428825616055684894705196475438819076531469372366242627472542708086755150462104355671523528765437667804213988801731489591798310253119255615439088873579985959141306142019226092992813345577599805329808751890836537736185367093027186723305457691216423993378966225513261391253217127173152636644640549272274776295610832737132068857331022023707678039900640656320164841505802370120737674860995848337646880467149250553010536932749049012421268700827863749747861493378012092970819604993271851862320241700043073462863529030412854805548466935830858008957702509415350964582097570323702789627486749954622698080926698575893010493818999592326009888200608221391076534249766936897192010534129632777144211732146255263263690101957325855674127653133895360484305924041050859568592105855117764933167000975428971883635956216332693629771873878158364163772732793030722657866771618052851765815860259048545223691043481432101021872518112205523573014248776755640717095512120765470397293255716388551246123163982277226769077764701709095506884873067229830626423849923156941400422715593847132979476625214911872589474818581542917783778503302097533509228550195753476678384188389143601337539537465920440298600221639185597754780898374030039195230223633248970043396889091451605370120468999144254646821812770167252105550149500304551268856121967033663517930408764210517954814030255701005471342116445411860474412671989452075722212179046019790635167161961257764206952617990044599163156531482298584566558133385952449843022329573093365332395917468999064199797763585849026085415663115617701014227100354054384693317127558844459495688357424238195206745781005010036857779125657341912764116745179167822806486163447694126718214135547042302607815605582322548015917165877179142385960310705743021173520802965271246654783531283961121730778451545712789548779939125738113850071031376483161459501166407986049016208973764615855811762410815636793993073131890750386875168216681171121772385357056815637937916950756813584355033897460478471771505081269454598312840248763948069897611932588538591215511405187525631036952267291248503597713306336974416239403906758106944909298582333951363788516990057042880268778892249137342588959972286836398435413020921045184912774237323857010299707822216236396855461648164003265434768401582510471427485314014804139717314825181039350820915490324905391254381427088896257128478134386120115013175544034288424136796429917363300611900557459165612818047196554339262153573017683068377472375503645022063994050725451589962137460094569890096768558439008044107291666572714598062472185066836578083916246480200685592607911812820922465495667905670736240412354131936893177989585605005698567998942169784276954520239230018948316149644329709715526073362633931125510610079114887863001551381791038098480661194482984558187781791266420053960360786192053535181224910013925050070858850672576173321160039175561812497113255014350780574360671671985725607439321152277311421213666318430734754076452869585464231628494411023544367005739639225581295494098704782697374224948299963169255319726833716794059426941059519455679475534603442982685774932512004087431652089004494576623204489382054772559268583598585104902994888639674226532669017473600608543233010580185161830423229815428831374430274490940631951893047620342615799456683620619397232872798353784538313481706525752242484433991928827050648921441535469877972847588473790295659399246067749554684972114536576338412561968139559748307014210633393534844733925004436105695522019930397333086240058310122197929728375008944825733208482612643834424291697416715078068732140355745143108388323548901989735669082641513843583942957976140621465676854696905968669635411792167307909609810495038151514881072604404534904573927723706729498998401814110739029588183760306228061077669029315912056669433364481451113771066498121914225748548541472216024319431256428558823821969457949453527229505692562855364733450435004899193164409026332242173622737478944679468111027839398849096202792191047894425375331162990730288890789648754979934538979076611837799624368857976320985098779728809444892443422605042847968292460228112244890144799810613490009756141659056321127356842688806272462658085549623357709753821150639524019572723942875335528977725328343381479919209145826430113182332115450601773287535489462070401023503262701854406823713022643081254934604893225402572567024894556589434458469015556684030742793031627231261309360543827936888800807109232191345739536248071162394838633760921540939009806436060777508133973903538104634793884939530196310230376109917542959395308850168451462073049129800178075457788877013855651818728084074908771670966384867138718574182944660575123707698632084421775243401272177751021467027072124845743075767570885787116362453512803029937514434338110865389551250736650742240054926506839558867809321803572564866243300174524391818981472939107520177178520374202780125699695269506936660323659962040990724775919630196495816260079543975746720843224433397891067170785397347496482204162171131795417543726451551483496621875206504213015783139275599007882171508726221894887532048176812891660589589735391643719294310843982122386047185468778066323999872643941010123472996224259565243895033781545567037645845936102264356385963346913717402844302653876617161302041456360337056392993173332928318328700937954518881415917552176949992058194790877623023009230403396042224897722330376817273562376508097152165619881665624478334414673995611620335412436115254021391643700369913231241154922444227399800877074944187373612229905751619330973234911611876618231002395747891694726072903076927036141713324251827155848937511181786468326383060730578119460366876942752424724226183393189668289164312820824123539545359727066444830844473576809526330330509782953820339164370302251099704335891246045424552010588271104781752066721092110412101403234142660656753772472080333577991947725506435355387384814852058477543677772423942707723783081494098774527342035999576056550224056936480366880581924976415685846887020214787921111677714368089450137953260705564171758934689402280636237103897453000591376856211231164051412317661972809867123294237555417944840462105090775476816373406092010820289320424497859716309967254274050569912999502900215825803627649316707013063861425165516541340484153309819023200643647454307405560406531914501894584707951165063755969623749502140098475646532058065091889153251450307862952993483686936582868793475144853893833000199731808908335278116014652903040537801830441522198422798642548450314609361903946344699438701624849156207302608143427797526850413921179515987392039514999557960561266050753367144501392138933526326808600868351808190620728532772997385124554228777280748569906847735358814451511307879878632135669832346199742427855529577190454142828569265353328217779448546151737702374691414151314125291397879243177321817237893116233173448303621702127800521913709980976040869700044604735001369136654454750818584599158415898363073386359433134496100973602287549540335346429837177762915406959408290954866081023161414967925858873625842024177581642772355085067534553747174909647328183031243298954185018204276082145053310355495550272010178374103731846473853405175203035250723192253367004615649611982387673999988438668237136985314765128423581140406865072459975368154661023355097972785378403259679511884540287779468501733297563690059921446223247576817686259932103958320545189088411449113792071102531869210615255605824315932559161471249916646832401286180794517325946341963978056302424993131020603169864310429013469711497802914824834371518956033808019508012726811830772651192530653581949686369046771197313965939684068699947822044973543754922703205471082645408644099713904358076138447869777609817740972046383140760623857072172081447309810652488934464095865446078236155288317422896614940750732423835204944891092969636637845123387825388380781167492261947720819285162624239346059256609928069411461571680418595487907866387882863611986077293188674642367588065881651475787427120239841916927957214282251089101854005233054581915382351651315127786359535694336180366578396923625641562277083200312290314643156825934639791447863526422592842163467075945921998540028763905894055781355300450318258141251823124866456893058625584987297253915728058625318480501524305060778800285852830178463358400246081414953902179803893236810254740759334570595339329585821905354428128293813309440671228640188127089713877258417837478786088411546107152022044486338433277900957715333564672600181848568896805079697587348352461699322183754352725024411856366974694436683130938800423321200010643088813698066829399599432887803146084009671619741424376473551976489593610270328010599269021825072244948606287771931887237753772047135903579129265261764954476624062105366980707614382003136442981496597219381083452424678026743244523111898931097818926652756842759134037683131543666956659470223289647251431814462186455956783195510998602453956650548832325031589322830113839149081904580531001347537052302520947957448730947069924325629610219389446246627052116354359378795438245839298813456765620784456104256675959768719092364882403973326814217438291618652254910710936768546049439254067184524392202448958367891606107725605380247931449705512116592615263643622225778662094512808315399749871685839801884573277566220901944475178299224176251296140337343483225447426022148819118358923537605251402166768592532535231362705588528594494765584556150701886308726268484069605085358764614055433915816358994418612578436408659027610189916953327459389044569763155103844919858583494799775999995292411171884730087883174695418350543605951602611982957609609607055966675775558708097923433841802903122605745962728400011529593930791946210266295868925885691576789469804069747639260549618960840396624485660675760399812449319670661510570176779670429829145596516554159040566247925583922988838626142902127971478507283433993563923680269258052115946435142856856137843988191435830080369432256612870803105085252819019708346248923229399001585017723314359707488281024679643942410236915902269509243387092120484240874526698170179334926077729352768512365213004913261936773386491750303453120763162290872572343432358538697688991193702005913425030051731786305042760176771153162961789044142815928136133489055076676104882694499512162237357040487533448098895962254571656726080182440385915661643148578056699170520886827891985685780699286110118866198123735822377655329971655581266398660818183068436915320724517716814802937379647809814178754246876442402052437007350755610984805702645532601666099750539895660922493213944720378685103258230872386804770770212814906522537862224535816066634115401227121992366788812913528595050195983922415352745056601850821253796682544755382452647045224239433501329491226688355130331748197897595023218306827914808401215972238234112724166620256856014642927965012110345794576096006294024049655172074264320396470830960990512261963621867048999601342466787676288530003956372977023765978153608415593873845958882298698996703554437773894474526432218033408960373156200544392335450938989243833988581050892576070589992114344468077657806025554992573049086085933981777921292440388163633791857256086594514203658357068761297234539223996690316434326066697412462902442399597348150318014651514300289641410781183230811896659700272047538838635729861744234250303418649010092679664896419848910752028789554735937996653154854599421474847850505940575231126755509059729439357508070139741651538585426176171111329924559233850376295600629949039888537382434261229787665911215720694804347597864826676591281548654582390526298760110968114129906364768727982235447380577370270880456904281629135982121407763394754795357713049206765338164143545446008111658823861102886140452437584045643153134921798524320946692262056752336699675006826924610179338319835643348652757346921475029451874766052744795176988930636057135814232289120252107293309235300773112559075429901437793739022936795547706224806040278782534718114140034789375701363109841219088815014962847340737615556023914403290549188691050360379559083467338662469730152393699738663159139172434230458808839229692610471063947980285477808488632801295878350037809214453355258210846338986970108386556916089254196528718156210170307586232971034924873955681566064290867784884251436202164535959369203185808320067138286363274101390301519514177892166266913251043605566171171844446364294152925755170764494098385474590706098543282355783910692161226882746921919270114265505710704097356848937094575944065002921071932080047143291745389774835506066989788673838210516286527859421345004557144445330994483068307184371337992876896302319786632757254693511454263306069943375960441978617520348259992207807278662557373754449195491422136546566841959176671216597995588884866357791155516042087289280879792268973928830079346249306110605423329207304266569916574636341099728079805228146818449708576427495440022804381817423538838092357325031766824868311174755510853208189259063700637850598767053157467625926830584372161615285437768165241972333040152154993735475451860747790822498408634689734795308276154091588302869501552506383290269356549473969729948287610013785716011390801424261825221325611330810477716112293589902503553773249852554962695209794313260599411083923379229483267459853967972026723797543890902157588275638395838722599179972866283669959088547700276214706196831966626074854141426450530743524491881370550070090526583096933662466803911012430429121591072900115882221693124265428795689831877166338640246839018693209976567729493714945891447341732421250239042747921828467291178632258864487842328925945166710251079607133651488194630815809039031915490529817274261695143197541759166341354038056028028806969307412450622986384738419415563560622020797420418156186561050974074198628233043164616733837328743047530781720607367605758664952047160123645659735056181990787896967026459474122118215470270050666979947763285455562358089840203123675035162693069277045732073287488223026283114620273647179049508258788438577627378362916690500709748053493262437913781994191462126715418242381620508066843730599490604112491851259858419287394081778534495760937103356973060918167110830011028358114400198767094188919456471108701082832578536014616486964920824018329790984788641998478873689330704775718346034615495674547700294810741786545837119287977789574397808058953523535414773637228490362973905191954959074265015666436759538191187222173963183851197212526309633814927564005736356713861217803398354323385700473444184919543449369571286053041931867543457228139949512881043288560663036418933131754346123953991185347206787324267346070021722189222214860573094738289506194595719724847250518094838728734358074156380938380779729316293063728999883670045478154819608698355240615659377173972865196495909223288866327136277147628186741244475021261750066877906639171564058290123725458318028244057449612335605878035407958792002902000235682976961322853506396536830562032795349910584452218225286350957069263786566859803101754480172798806715280874697809992937662351165639739342977320480219611950987541830290722380898109731422974508574715855498532406978057807373967862844778598437710775978756971193228137061605837473792756200546819035536562539067148618841708270980826579670556464071977881399742368560215093071425541423695844345744829552808750804836570237021854007277814421182448947010376660099663397971176277860677774288621329073187900786133238491701936681587962794481893464035576109406321534811382979175695490446807026731585562680637845935976646540539654364666388201251534544967951291181690553956235705862190228914890365530441574154557244525676680813931003699836479229461771970782687552051487542058878981036205526803391126158192528288919643570508629620442117753496899796603990396853008717597396011163055996587994329781598660222867698655880441796068361761128244156410840242418805211374769867913817067212725925093085369844678179990511594532193883010404825949472754437654083715904934767809571646753134110794268911610445726114092164749271956605731063972053256865534666778872465432315161699705531825101071627633068182914167255728438851657825762373013726217510034298111960318948714007245541020832703950589991471616391951926956252599861380827176204349051752532911416922731228288544027334292083268239405912359573433701989403978375847526050390585246177107427960420863700997688194596726109549242901930289223280345152842237494740003974586367473634660985530624861325047358656640900826072266123036273938257648682158910104511775717029509336540558337473732053285025486156270839812864041311686755486987734795992311898110664390904139531786366598977020216195838721409251245033177957978180458310196892120758875695059157026347222453530572854291187165279544386800291424931233976783948538123702667479420227137648977697103898028831007679948250839512452994941489562536337650071694822982284461927509613082858559831069704306805829223924030738821422370335480539445716384683209906721999074562805152233978524855866901153683936046111698983675961649315455137142272254364169305627514304234268848074985151641561272491609890164815572629374868294424094396277099281639076644057128402795340072219898210189454991083828572397474960228724755377554842516093305516106029474817344943934777525788315240985092841704955487016242876051945843298282462772551035776544204065368670325139439245133211998869244968643951785395889092068573344881270392233446600488169970007665864664989582576523866598800078606871849596155226461674762743990901090185268275121235771466577992523274895488982276564032510831567344767863816359435879201095376588715270272777008125318995353697607227034645395349852391444210271959792318194479367906934442381055114298218069229107361921850901075731544870504636628708623579480032410875201691654695028587845608528838606170837190230555408419799044538257564953264544296237429765205311893578996104110300112331066636650987123748575607016415683396579623959231145229531689260887295756211665654618905716062290131335459036666344738888939358662295774743573284963688694192752422144838611751515744837444193310919254598830028251378433752300299854672492633465723042026675804222153412663991993544304495367158456105140306419269005290334226707967861466774647022495682295446818475325421016662165784686718265076890737461494072490531549486239844070399526234949968060229213055489319739301024654971660563793382117052783904384073846353947303808346141090909552383241750149067402236695136258530914092679314936557444160672001499484838210929623790130914137907621206015464676535922886301429878827576014137673073342069367575459723429053149123297633392231942720208922965616972977556110471046862850854374928084118109469944817631728734989759758149367862323887852357522450005752041575884795374162792435501520470833152778727609780245634908950456204625703995326135877749419508984925381674458232666732076242120208972799672495580137059517284077406909404857008309843634702802405598308737340394950181327345000983163231829126592134550785086376507860563592927330616565917819676884993002011899197197307594468413491935860951474581781370681400490872755408843774765899602534228583628734853259156452031783687821070178783972220233875579019638391115348717101321434709979648565711152869897711913260746220858426398116821608845687128126312006597899240676782017227333236022173629326694459633954250692189892957708672037668127467808458702952679179418530793357587727490704283346183188825926530642778664281216877231864010453228459790432052839111892815845086885331730916654662228186656146850601459610138413860963781879086065522784420569662902494709124501372709314602664564404504971301934442294049386235745531571561046011619893448508274432283901975937000123425099794290291577250792778124872916080799288427923063117161283701712460058544767718529922916979374880503339728060996388497912386269350246075166188330733571124792981396678750631555857584225519841124674412339206316791816893120339900905364679335435365159681514182419113157333030173236304550448202602847626715802102399015037099503059226439293251711952733331417537418207821727302436608732511055200001173463958861119691428654069266254408544485288857080855295066685554540647288743343599879815954509373287766989885124112006153160170048563618139419902996426139869999471148215975843420536643372228906112332198316215244408150646281282088849441580471028045604012781769377110795383829362602134975190562294077132200991410650188180604134990806698942968551248815281019663638073845349971252425795018367726969865747663963111743181542152932550922575834411393763607228736564038715180836861549549462909968475039155427716365769597503807564451994202206224103727618393228943319533134667859742875174754609679813643660661001832820875247628094265683856605913616935968569895221933399859003701811169738523843629493661044538153847968603485337977137564384996971453015493267649851013369458806269603856596427062916227047449747905063053068578304598285438057164843156386287458905317918771762540755058505582860117126314959531733398513945286576392477290881952962283556121422060713199631134301376568251394701332176875790679130830992654831836065204419205159314594803328249543918753332358475047639767864278986535578381132149531744842109323058271035864157626181303611331039826252788137829826737620360826197987448511730250296285980674005163610359326589468622133492597316117480177848279823945723512839594342659725576668459867550969040884305228730928847405342134869532556244066055255898900703686636727796540636103484796094888190242581668471254349603975723123513581481555594772420669166328444029890884898912263957151844223557643738765944771963233957727511074978122002129865641198972098983479739530662051587436280724266398212476212562389702545625541117717931452772520944175516572249922231454461621516581961343654060517988131160829324951183779224166366123523089105168209628082243252375245349978638718032681515461721841804452180604776891652192493301580831699435292574764529422399188395827014529115300916579435573848546849821476559572885369214908550538185086202014406230416090723389809389473319218215379253677159919015846823473060461868474912563732137433259666400746775143207126351191660397343526543505603867491277856037684655254774274090552659733465461624380026088668328944878201291049529589099897672662075782586138042683849799546611744054668459273027843389972386833925989678244096519879523027195781213408351975940373600671409231864726079703838487417375448135208503449776402695060709667963765817066682634606314405987516989773905061364619054982706091569618940899433374454391962700826535829778216748164563437031234667645788275156540906163713822977216043100935394723308427277476647950792910820965850758211810113933135370035244654763915258842088744218220499411359829588151416743081187091721618185603601229582441124574959993931314214904553724400977493061479578420211045922698281453474151831770331709621134142393268746267693692331887121778084858123778117147597157643071780249075692959464406833351245346014228732615235652554676658679818617614273747096875933119066641033562269022047082686902225751168431786759398921127484653984581470598148442715584370242242021898263799279705010262279523195268153420869782697642814237906771952189080631893287723605926940585886296853898981639534608215169142837084493256941381306676753793435607893277650388987223135197531168644060619184950822892684010193636152690944878283579974707308318281277200275445133740095028230232408227625168284447088507862169142117505877601020806137020027234892240489109701600360316944297743675806693391409789859367963385443261272028660127650030495829919412189746371842660438275100303186717359089174100338949806257714217146063791098726754053609710621295442454584741993616543517999033426833364525805625611167234419745812230834706356103936917808782889344090246588024435926743392527668233356552469925909429928562209656318063942928728898145069830153649643559676979505723814931868098020550720799847153069806419349248750043863354960501518490516370578279732636746592802808060284974859910940974151387038377794501335201782184160594279943215207508061697361638412300846028484347973714313554918558984326529341305133057839137781419344287651298095985285191286798526809008225282526131211537750512466226443138072337072404412565628659197563416680463986456643549659181885834922536621931706190654040237317055821084790531282266912314675793567419707748286196877441289549192076230790050153586201820172519821973365741461972495619778403312119441028732206235689673789096081790488797598669109646792559912672647605480295639973395808448207942798162140060088883626909211789622794394364929527043674665133994262841082841602312268991839080766105800018582351102893943732690165304842132905887563868465341170648666285206620827283097740910442548973414349053463294911234333429707959344530551487955175826241228951574120189487107174692221530964816752070170081473917392329287576073554412408082529742707857429416018078915918747848987998796495604951587646377712851298212444770311134517060634706443450030993780399858308387593347988441143205361475463900045578668149481606214411597454626957842197116462528613982093758031102772616109362749901664501108420647120687067126756270254906169798311175604590289778159951854515190549804406540548057690444136655873738398878460195733300438271221846444356107951144590516663214240362896423099906223396987505553625763013888120736641548822522381996892008564636805550359541228320011070252507753890182260579820095275780699111382734596376494167629181145799572565196941467214584153606453567118844175763393548741009805835173045031562370734319591445467219968313107874679139067325392564238830959811269634186558850721253112069328418661497775777995607798121798816514816410405961045458998856724098855024250906029968993673933903894339329705974069176731489137627752583664895479883483639039402015655072085940328325312544761633359578609420564764837743599052787358822156199419497775129863732803674882661130796613516146163795727517339776302533691074599089895010945855916725341590756700466065582182780309075205399118177846920037787610321180151982916955180041658066786270455619870798157119727671714104323232918668547105541156319376070746097667428499623322302624923343516950024741470520407537273095011412868636783986475990279483121113904042973363019629564661926513985979774302724552597949347938756602880072738350370766397412148621064122015062281080484059438811218673907467730577802771776655640358653205995717101898290420198327950082730429171380559755034811557708600839562944971724132176514622028618808236448382095725518981172157661288047822434491027646913953810544981719621097906501793408249163596315808748440204040634722775242422346665827022360042128722431827475331682933456608829352955425138422317624953019293568744815436082241219977839063946098597355978291512438956672343263110668903237829327263908272472234762295550884781137892474795930283330729364419878408313116542771391292790791454243942532856857614288078782618271386947152575363323890258745804421510717692978836401636765131708525510265095818663397285686114112278255098544715066118409028146976238402973016605607017139685722412651530599146575579053955985455543058725683014457321522046935561078488085171209084961307019841369803613856485945789614332399278886641111377836253691982310196350955506056274529616546906913751181886900290980960958931741919867871395522469032519448701949608547245202820983168918606221548309755097581439138351762302065909283738749459101525799014023228410191398138340025674161859766954323577075906079633712406807045567764905942407596565965590697461814561105185647855403833472569273537980557867587469213764802467751232529001224118368034503099023048668381875177274279355530271592520557285981923720610728726930504147042850662318663002435748229467517220878747420857872490199265330987603977350378294905965919244327569536557931604781831067354287561605598723182300004646478720486386510397380808595311506948901795395180470005427424769726029556791632594182122851337256503487084169323434901133430139698073703741276423131392745176829285060967129320659223560203437203275269116996265814640184243179885584228781693610237711202805906683674787645184629322213160323306665875190365096805267245821580206053787303854382437118673178112403058552609670780618645635600409687480886155800616779110749848072392956957193765319699924380743996824757906197787661531279919206152840101898068791922996230203925098004293460947935687944833108365536706420655952103117990050934881204085021474870460535748925765806105141837648751541411008748203420905105130501349844542722647024255045025246293763172968968870195923451035507253539991804224714093574331042986115241365053860667487709668298633662628667664651486422259130158196776691415260832688434602573172350443803502124258659053377000449672136330759496883003387389987985835039155886109230036640225858868711331543389236685888960106072370622813081757265195460020533658502655455413483967976175585867203975126628740104670770669891588815680468944871364322717324846636477507807119606961374988479758195412835773797071041498165905004378946313512041761019205038856001850871896413812649823320585774039059060826035077479734886922349464846992518152072073785492616051488283587108109457435992189201021490872120394353336480224164743079052804387846132996892103182837731850082185042099757652629175075845546292444848678230249421113447825832137518177824782484988120059071958347690815653036357084364290629950929993288280915556367813639822885242194112258216189723191938183009131573993009180995655567372160192607345287469227202057015262389112447992457759823144150064852560259407213992764556855264341274454285510129216720993346457840293374391609276035758774176728733874736186453869700052244193214526639595274322323821532418660318998647193359267349325074197586805935043424899927956476601606835660617117114802915995158742067780213195876478604507027882928568994510753984383617568589765199847292085376632157586189446462941117555551946273926698917449267445047600199828654350507658305230057370117961833421576555453642993870369102651651788299053868041459740369630127203717641497852599384590975718091853261757170658563075900230866893232600608102677202853687728104989497469498028333437369800335960170575403194501817667476234249498828255842646035105089788158337700489505530043112891088815503848381648262272798442176953014542458385902738485223447556565778979887995998562719844937581728641210314118270733589096305388631490955991380072751264033005815020974654831258074862359829607594040632529900469646087974775752235181691001497633230631731999647450091284513237918782820439156721807245426214368144035209199007340099472757643484089467664177396953237456260468748592454551543793187921260952823486918119094533347165454271188374043509090637182721398920183994137456263607613058869037808991179582470627408785978349416734137291299595404783891095322113095432391604438963015696134649877895857447822455844004441831031552411698274029341714914536452045126469248064199242466891398473538531841621727747644107418022167744939756908301581562167466615601237997443135400008928276899945538534534714235069950101095177397235027151832818728903338654959966289549384626955772316020232563241173352927656878170525967434367126941925752940565850478770880033313209624709515071450138568202621693956278806036957724646228866545735370489546860134091422691387249018432043627233914737693772858286441327728950088484782038607142178585407022119083282705205541010833370860170271076852286010493506312649904805028609801926685427432315565670993552408959514145398549852253835184399228388704869577612145774519468418411072441396621678449161285635967871182461584063008837916494305913368764654914731296801194928822587754482148018099153733186700387216182006118538998692581370932978008776782684469204599704951376224959166489147023168742698317550089787629808617174584586664419351018446465643356112612890948226010878450913185167037623043260962336677203817613902427850684070706897562840503148769847353936790375514020127268445555769642299045058067029176052521590179758070392708461085386041859386965279112814305181406095531353137195527546655500204961368642852373887950314867822216869834378964118584115099946138274068053661165866760838222500966529364811644959381547931850756959310112422237299538560214875585670765027817901487824911293268162582432708460556988137392467692617436783126847049280183761337995768957738192625572223341534470392148071561451432597144875492130082819001943036248962320017412911518670995427093322838943640452476143171318385770354248077053978107018723906219264634854346410536942470249045005554302075622728193035219421525901780090541617372892606923702365331436088922177674127642893187917184740119985848099681324841081058308696807737752676200806649860767003331838600938341922938068925770146568278861142489054326052072646708913982447074671939520756930402806906097238006786821935404136681129108544187298546801454505666538403357732753915689999583104936593497065097644807453086924064684222630897388270027677638317777292570896110987400765077752741666987121783268052068045291795149797835742606325623482331230266869258346050475705263129701146820398903515736686456508408815428920199242902487375974808725777074224201360214526807242597557963047440940735372931345865834778628460265038987093960226617159121400230558607639633318142912951569348271449809832587734585905387920206947609120841261699103627231352605648323936079624972468038756669381491821366045561130945348591004698306594696096683816268082647406581731562924281399182685115851184739241731288388346791808823404361293213081800070954093429442256394579023080184264706337195622194996003955219879391633519655243177405685457674767345280668421313807153864774294825958180951286699667047850783929566747881646404213519205820837635813339005068847322546001174893606894860529986965319586218297875398535634057035966885444006013102342036000633427248034852919743123648739022433751701578212761119669007620598804478029354563832417392464749141891990465810898799150538664043220408654495939813511688427466660849247111955864685261944990939350916598725734389926045307747509501935493102845011281678426366772637892250195555903915754295962813157201334140060503231982462519475586482642763258287395447963361684607936927106684512016200313054629127329189796348897999988216815025705485402620036808803516564033315977542440817060517098172190153250465677138637085284702168305996872338241069940729900857579285471877603257116315865011088911931537927667641419234680180555010631922460781087101729645870136725861322876302370273993269102445188561004499554177890119631230733617620659199902682168993109090550981563167804718783700397976341310994698070268227081635153223377849961559346846681685237319713892619232574556178698976451143659581072933575387744018603606859284779575551553121950830481753272467411081195972123929562205743876249310447662316427526701937297756784664239384533445908112770973451652657046734658180826562009478697915470128060882884912048476199830786829870053423593282427747345900958300479814879718619734183157773875636309898504509523933865420562085456758915917034074205834283021102852457601997814814986230193662451946450539278482102336503668960107019427073265440746052088979997715443464035251322110063624559271380144597813766367280612586910273795012008332775014845618227764424835050119047416997978589455994037762050780289039738137064268220096661293687422909888238888001696421754936852444304735981769625598619179505714140335172292777872572409389338492038598929763555692653751543939834694058352414705038199822916186950323697573898562238783659283873660727904780321062789809702663801375531438631114942061685202823271030651347823340250793917874458854018988393691081286113470135244115275474091308511875925051575084664152426795679395408028207230003790660103136849244566790271441251877867314718944872001597492141780855989856931174692103049496529505518148232034994730936470142343413587417119798777786375064796100399110882555749936986015000135611003643205913823120516279618897189344962505577257394590063089452765999168352379400500945475655027978263068521733442948114727093894542161685291583993069327490478005672650842824626746544447849971307750600415036123611602385518725464643036954990784315227427473486715655429311424742631889556131990947253894385397484860692090090621090787061007801495487545439980181295604724610355990535882890663525514080044062606104423170096413795389564206893926265640500013384719679330216471248118678546344141666330530651759323579127114414632122880364956618386785747511564486040238603617330545195696965713968697941428761321781274877693348834164270933423056609664906349811508302061349111873667892221047182034130726826884695775150068815322236439247480611049422686836560016047359373131186971791462310168282517557808715679851388227171175269868826442260077713405780051325599814390114654680624218488914214864466840125362954481946305591103037684497953405958499984972148949254968209545656805503243138052599353070356003550202975736047924710572410292578540384661556139330953737603379961726544051356971645115263721808558036943170514050521640652810108675579393880297464231200521959182791577707226124356574409021235662999012345633503130317882269108629853046742742222816615125217623686928720176664295579738394576108354496262005169569594947147967755227959608414022345389356453004365440445718408225995706798904379876931785518341340719944496423709850168180898638234942209590190021799462111074649910879223800739603243401331232838489592655512181913898526122891707499400781567070701615452657838029281008648224637420345875541552019881019071403652208743612470513806676251053983919148978254540796996189000102615550647192433656873474069569205855699163205756350031903709623791500880916332885211513923175585736930295129712010395538635374031007196240891006714932431162038612613195486631029752202387477538038897602018426179108840353141727685013602825514037111066218609321900932114118227180198882344152818770886122526601476988529727090209984475889369471682354227322058207867546652975168746249291649875244837700232296083132390139945375553304898865236757959367463412013396076037500464052290473859679892037628303604580946891488230523650012918164810825623368172716738737243605921497458946877322553530782700035450317727882148745192504338393814576825301888040911403640432082973033675796575173597956501553830942807244661107888116072511180655093109441271574288581639031756982144757611476337532383668093689636900354433073050057313187234707887851756460790592124407998974694214987527444252248278332275645388768769253669471100717608119961458759222011548497055086218302440225958743872704485566639012945809297424268212236212002117021838980265490365192431899950630209320464271794609621258506381122716973144226506084077425983058024383693890216367478551948681719304610856985401535287704899938865255028889357016991428060321799293647996162371273477723718049098580692593214786608827701379462234594571537970507200440629807973174457499768828174015896246413237518308900925819446008219137228471259631265056991698360590887825591278697833595875539805120271462378789833312998379600003927421699968300989269564992097457156671667833119859737625223940586912669565738054523819752795540787521469361528129122238032152671067221421188666848339587466271907325727572941744710172295108584174255723769117692368764696648367347577042924381135368366891640603232271906485649178247993071628593396655071972573932105832649145171084870523659257710255517940221872135690546470856963989935428690836535424418144383768657466776775891283598508230989031698483863608088978120598135606823085602889747391861716816659115400321116958739745557676875963778452171328392680367781007016187888516055850070459850006175398188780749701987736532254863822435302935366142698141990246314719496105580446883283714812067928311983925203245194052597634540135017709349734169692953240420445696964537211185849797354348376657464266080873432243330486389476260735578940581704667211100926564371324158501462891134864341779259510417722934864266268270567101783343840063771841640430089255077340335254312749481883635056338056701970472220937683678807865994167737868279133336909523902551937004693831380926756212791966404878320194899604505988733922798336888029977931541277826213577513282349301068933834020104500362323112276173713244665170606842606858267244458750056855406942156217895707840898669685423648049803389430200381254319087064964223979377826304311822369473809066569751910980348930031844531825434882409727783298658065404479345202319343488760034670986694718677744047451504717934865677045706177970764851889252119030495221689754806969210705252564592997873008713110164762339733461277760303353097411120327112577386262550456341838771390893269529764009880581755823883352171440678504459942174867468232434009948749157534228410124189090882353754285432497823609352163541138786842516898884920933011893231116471917030567201771629689840724382144441435785945115189416166606679986398010220626291998364258513856686842233137153429750076760563498972293662452308116319796568762967095749659694900464868733792770679534840489169604905492191837277393218416757548999455336206742081070817692733696661783378110974037612705137094421664264895462553777135913765593724328812683976194229232015147290117416644315580978410182764748342081796509524786232798207648022316546379671900811411164145629216358029963842409953107613235883229546793483881365348450051721282939964420635277229963916821851937385031662643197011131268308353413030870948868784771981607913859343339848905968000177447764298369737446681959680652153038859106388995604741944023756700610367556494676284229997938350217606481277754420679822578057507149085873895531865828473085660023412181235681713436177614073519310995682198130369987432201506746802116086630158750205323595316553067622680579785034540575769656664035770658933792623550811045372408951531963126321443964631028932088130605755739768778114334847635511543756806641025646664669247892892999806368280496554710961802224512751876119745454481363080337310707208861894760380132062189472557675445655525802162650809656348493348276463815413338142589575762982350072614586395245421552371092755114742180573437585319760533072636535894939754330903469093136486830515084856848879259595992280207304705109344167503161423244605189125566565966871717724578084099026914118025376435043858720854346617995638064146558992205312401289352959199412639715088725522085809324619020488976859376506546149442317339085934361347737607538565497807450569345572939654883711619131970942637222066292462916027431275885514550165626045495321445458732448298743517870755199328777247326026817237356788350199628032878818128154774064446728503657949173871894584865268667908404134642955983499926947128294394126318136486331348797182123862402536264030540749601504901249645695395182079190208972031637353608019546201776972494520085079144531717495236320746707415426321660089633740353601986921142375911688130708428932235815507280659229437861450879429162714534295064493645799345015548180711314025327466980165420389332143583429224904061478993741593782238723931098134763746321057786407829764846121092024230089929300497488288975164069581855187557799837107623765007418692876960557277563159217560630651726905953045414005521822426248941448873712671363003161611780285083581372434034450181798650468521160628901504672351766874686673865411715432541680569856133762479548948204666506933597394885763268347697411341302869227961695941252804305725688953148672601533048060657673226625714705423335497266512194136798234694808551784871480199536718265357928786780805714360806436692325073664555479189113674005214054963114298711496451903777902482738658351306463850693232763004047649838447568875221058719768646704204548010458271507775048147961626266151530224341882274919566362017965503658670951932284417982537827693446823103240197788685765571718032546178237907036602531698533919444666094279225032959939420744926556836592536867947552687645018578721660874540499269919076352039303774994619941345245198733796067833986170717799330039992852566841936673826787675653700532129710073405608662338989436064818242444558578845777269467150552122671844236426134807426267289510737791959774232823985468367252936178913833720008603096932090927772574832911185207046572975777784989150997239440472894715330880608864120497940782888003466627001697711903520092319131762073880610220395175150484100564890219908217128839237284015175647498955975714741149534478344440924524577174344597563266315703555505426833133347710721575092053409084513342294758575278062781574753299915972095153864128899975796925917792838420872506152800133522802036330839484126651973702811718906996118145564097221171739568161710852138076195811315953030951221951512560565258888024525220515516562164089384928045340355267753117982122325498947438600782548799854915863282810104270143286691355739721956452646553201779294065214317452547723334720221965234311289727355592024329559142103088394620450415325875973844219564684077517920270883525453071387074609703067531743997876432301313064014601575469467670392789068899057031681404660196081815312420542885086535039611120816931642019561835341870822336994589096091951597578064046981464747050223011729460118570054523974247016076877541350261349602332064413677193802705519369624345998084454157114741900347503298662046567998611470592460809087048830874927149157121782610232025455332163608984512392607686233592422041931065256161612349957469221001585339435075248603002025687621440531184084827110439893656479480751042245760007127576635715710005381884222087954440019219076405878841871460156874267397132382317254178434719025618976478826387246640815004931019885775086229320201436662859616157782662187733892021543723959775496072583224899191731825071882042391622399563864614775049090895711765684441513140524634993711010358266223779460416314628388753823320406915648609265425927439136766332990430977575964614238035696894285227156258272987413631866947062966499607416137621330114518270787459599516834430583825621710422007438262283060206228242152107371191039547568374336819381328159168092355408626577091889760707193105460838423370535123203758330126020937331937614967642810372303450780462506968337955189721810177218818700100839597843251894319024137607165705264082859567532068718095788242939964735447692027462616742952290022163423800252817032014778077807323327312319350840880536131016932267332800386075517851586520020420667490623921306519023228936943637297397989522819706050147352401700905307310881457848473969612878429236686174618968420240745628234832175812681003951606992837921418723930575444779119294484563050944596514893530100445793765709639572348532885009331001449145079593293975271426307637149953525499027364982053792099051119832921749714135547032828612435388591090391788950489533721644579984123023010731330273267778665357119081024607801113452314100307899641727651561165465919376072117650163961771167119423153362070515168578310879020612876892379806590242608239317056100984358672027486635543750253460223728679682200646781995675886837482494688247145816622425633092990936105828345044069620295381661460559021118790023746076749635851618237491838244976013343959048612949834930186921113359829544088532019676744861633588723740565828751530845677531681291598288928143294514950711385953393092469902200573645285429536313327636878899852906301408980820983973397239181231621173363599310866427422642938377012227336649567795504771017304216739835271647140874147830885537481148094975382266298200838904054979680250030353207541623476090297190293851723174824722252821844587148836352858647614917425318726481934353416208415234282968716207194095278141843375918210477206958105934057112361875038505818523309012253041418210239809785662898624104961664747216681632104151668814708873750661096878609485706701552868718350460810187526474468014451033620197404826224031292814160439887989483486999676125565551851702421019895340793450114457868564352413336866607592520910856506916948122841925103849118216258662571880398913892655396681712503520859622007745360145644438300448185995954754235942122523397724391321098434763207502358574316494158483457950909175869713260319210203969478963930075404238525538652888540617825480732780657429077492583297427706128622420300470559704135724408607379404668734380795508210691852165013044376819787885856069613807151039806460088166454697661592346157887437916407615262497879006372359398638967711414347758054868379287882912931889513729839661478377106104741019762924761023529654654372283590797641776254554995533098783526339867012130582568595245912054200331725008494965200415375853697142142267822874716362735119151103231907369639470511987484100987861715841179782783733414046936267041166888431191538674898524154018052442067644273489661114969698314057816832438397336775481830742489608029315106551545956746834996510494539443950807840157847517024661286013153733729585346787415839326238055233732338419938612383236529329014950599576309559323597539810724508660140604216395432561927958221694570583172597091905191441857135787002985483746542211189696125833188859069618442116056137287519190409361748069634617146304398035937767810457388211365483201216157086293653725024632945995725274069948610689826270287862466874950753307960909292118573007553427333364118857790650308065212706101049566271731586851729957477066189070941187479086214575588618642008867782841799825844951581597082789594882932159859048116059323956328106755352386122464791171635031435715989922002893290932789444588062126299779314929981192922442899204648809817051151819498775466087177619373757605389527867867420144061538927553126009846387859160780187261867275857666529243515534437638797718115597718737372527200148036522224971723919627466368997326832102616358571070065676704493397578051599722170824407838182068814176712520227567591220257434947715276734431490203698168198698032632368822084814174879035491569028694325554895990379513872763224762045459209027204096270563465758999531117047417263799803277861048380904385688211826379119902969128679556225558046134290023424788773020873372372797937049057598920552097681595750732124379268439905624259739602268039790567852972712805740783256531393003946218345877289211440376209301205790946271122981641102135572066858939873922794934222584411235210922430176886463270374969107062820736175501494205547838655608497281712796365637074523808341273333027608406321621146044613649055005678537805547691596763151232284009848498111717413982223242247273161904304894559702486902972698990566057478824542680480329445121998649682398301258428272023039017464708976428161196338904706029771416777056206718948492570006277130462842327731232914611024526040403111170983476236205685350380918712192928101911396638590827279042008236677786599743343222547299423390486565639768565846686410140686109367624943889435759896927486721050093882907709182233732912947288577896048479066285400481178340701858792988065774472477525706678667793295951066789489058256916310476852170541502441718974661026204062305093365792316949197699651874361474449612775102921383779477092189270552896664488339038412693086117861642645235412792415288773575206097475205933244944214194101563631220374766890719513143569485675870394872577340235342001200663507003873980169756576071949389890582431562723313827305690334494464831330709962708821920551330745932511754514195242217943351965223949660306208155418997096384525189983656400650864012034732297386331580755902006676788573816749176961485234942558426067705994998882453805570391587960453298216283233772187762112128504484619936632460337721971793257541069279463295270211618481997724649595396885845398000546249425959454536253784871957835002244124838845398090190948067620600573107656597569965136322765174820802991776896537115966916016808847609973689675654843509999273396553596167394943264200206398967309609150183168512278180160427696241771756702748682088006267490464000750644757833019255207576190721550576534109038850507061891935508863792510886819175575966392520052314193243860507577512226823072436174482178303241214688860436803399385121750158812143609686909551074438198693859202718110140209316207949034945762717215798518503272455408250757497038334974155254952622469541306732544409733722393987998912309975104282634659446422780616035893420056848760063653674415290219612975023282181019822275020676364992643063642214348538618552401666773191027218388088779837514829255326387479210429288309254479250313830326420919135973767021755960053616039664957675414192569252111754577127168961008078737200178089044235784570885772205143618760580884098344091590632711363368874305788227080040910668380164227592140020338314657677493713137749818333178558201470640859656087496720744115198521259315999426056012173674803296586289236038705602535265715210334853339165925738543326172097310875781412091505362945611809935426843098388933170761454414012199880385798357520678470050944848035451033665142375028446039773838511349457588140077881636350261357595944969245577104850416314853139564699225316949489556126275158273693105221061934655080675244413045458629849713365411742515164557346925166963779474666727479676346072156536943792642108188261027435493546533217384412370527456648545824173322468301031252498594566613420327791373898283110392396008559906720185402783078154919652798191739975469818121269090972869148518580868857743327377214712811527831523538305651382845368606941485319945934436999779048986092466696122194942614279289800354366666875679901925331489489927714740083978636532130575089538690571167401585248675274802755765184477859282316872042603889913119117187084813727865192538828505293149016364742742766501186472216141854491925620617524258051422619023976936921205965781858032147548748524798847648171755761078011447203728966287150142931231745011831425738576125029380553812327687843791392611767609353453120569800122634443503626198810132060399498581460426243236538825008305942319659449672295313233183913713902847662906477427264691235951975943177704954954627899634720040068371121175247046735964064266901068245697206160835605286864586727432215330080196950913262070750246076686072900525216300975030070942051605460489947703903501355890063707151954779844643345604734863841088985441631008216463633451737560308287419983391192902254552357027622822358565254876051649257176586219362602994123207102906582706302007566756124483806492851875996341811573275962527768753408333417611534459270248553864234690979487071492496091464571187818536219116135290765091853103438867031256030634895078333756003514588758677832301151547849428168852666239389638901597217577989991314423000469519161389385083484009944479930475298932734685703032526477463880661988992937267377815901455197123278916646039550082284019862819901975099777362554922201808233859041428123750439086879112140051949974843367698458939916545209064574175286837813255966856480772705924950971626498947357088109325533556991491440188989985859143036451220264346092957291648275895816707521369907772283051162582321567029809146689906243881768966929523595582406968726488162465115591353214166079673340473791645230726388630091774967121417097748982118588864835564602727156314178402495618684383848636249646740132428682107813637771238506454858608694016849817092051975745799289573734191522055732354561683020226389413469937895669759955840695509797169638523112830576878518228709655780569502700364359600478967911808801269727593373972357961512513903317532207057180177572902442189114008875924367294058337244690799022775109867222772598739570551257461839311176484920548361545655063543928689738540009533901744878471369805349593342599005668537763622062405853399424909350531150592382055158970431359604371235857653584726228367191093549479323702771857416594219910090827273050043195522188041430804578549106462562136790991975061824588189169675521351879638080407688549338248934905952399437127422480476868545769753394491631298146974977985851399788067214166062048979415639167674240195995633403849808791444683274549034315786219771318036181505935077332644115013871024136814058697616686298761120362956492365237007511151474335849775373735989613624489256981002613968527380037727388638416156886362360616573639392894885637892626126807503087917443502877635215241398407610561033145730315408785368285608537526141205607963560327022551629638062234220240965331870132356546430137691904717635596842474622983828344134565429922919806975198727626530581885641541770971142573404859637532343105623931203293941683004473164519211602204287378576873426163637623532329716155064060914479508045188546086504316343213847948333541645191179649615948488147613048956036169638272307346332451138165534587494147503114185848971219104948343271693978892115162404837040670464810181803471859203672249694681052679317921154883517761967506295826513755957372863037317887843075349943396701172195543114084536494266127407899616816246364153749617192328500861176625415298498094289739316884242838373202722588843332674993811186733200476164923022600386320138907783532122981994256006390420535778521676129598777772230861064796481569986893868644362771666459781231267935492062127682830193320566439463674048291507653814776731008264840689224435969019096458675798904704699465898974416787108146373388379492250145730221203940852968934384529230809391549612904008625913389011235929141426629929564551192086654302139257145429181624840784131006934164539382799135917983772800998959163707921537148975942587912579138994079664402236175720288134325791815221866512688126519489101205964757594028321217170818524885443246854379670629618659119538646315237693608557482192371929145818691353769407824960324939283017638535705312828840348558824442288355449898090629471781325517296121701335951832429701306961869314485388852987098259166454306482863841681313244699736750740602807454138917723186863475089727334387148785660999374534664070253789592262969569016788542008603603088661368947952518090556693668276054469463823105322446085575927171437165407277123223864516768996332330390553732007830462260022930661808439880964316170388898282809274645148037864873622422139544229692225908044014124586372739717618423947572174690902071952335383871798495040753577397860158613291071964129132429915777694139718954882104837761401733312887232819509230816308554903175909476679896195269200993460918799904632746883196132938957987607726652314805480694747864781121281776803502258609073518634474635519562032450787041935003936693388655242556014062054981950092347989568462427666080693892694068779874349745511172068795831538062994092791665090637192033761484526230991939431260299588641271543953787091440296985105354965687185221094447415443308582082000798139627521722468175242698758349584876766993792155174044302851307464467785045546749607997492720956462057809402172912960075883812117303409272197328735404879508165964964374398589951320965508585021167207359658004429611834638787318762459281942510371915819618589692824941329803944685482400155218220559506291599800587795267257592776593033256867200299221671875002581627400736727515461092003590031456997086761123377433878278985949868442869485261610166829206848902756757597435465208908856530409342058221404080601874127454335186873240953375524668577434267657097455334368182346125409604186993086151982876105046633561317858876346637836479515161259269388597781674880780248181118619471940800958077832646373521709434031416335045413040824321824418096512479675626868555802706497371049105605964795735086957859816672592800935852084826718696656849648025604341699444603574075448421706637488434378205330289771599573539327183268297827048269557646702868807671295929018394613663610952648821579521418167461495035184702728800133659670429996602587130629096282101437100592079717090600313617665079005761375771190842760295760225561274239901143468501455858773837640030714345592731784190610083236790490707164488153902821107045462098635159547997065704095213245650218850215428935808517030449635086861982074924784165253022561361193424509957023521410626986098821681138112817588291505908667551359673513192180984612695085025119961651085908098488725840628280146872022174696794398726412033084281688990821739694981609058904042910390561351127246451833437323508068572543139690490790526288399599949216965737995963189835438669458323447943737063295193596194734853009645623286921871934050175318887036181068405369082740402750821542683621589041909979880231832629254821083773033756526178462784505718289780841881963301770062027932036091401268899960672702554545104746052257803826712347679500214723845536628002778126267859331206688626764887853880629806509331322373191020698670525067492966699778334387278753080269932359625591528839002511602934009442015074089528913777019279485981122595419616219640499891073146831113599476468017469148465585026409580601180144006470048797038389141874923045912979192157854006516462494477618227436869310962636784348843180149945256964265605313541468333514576033955053962842590793067434173093687525978143063011438979114008548122791605410380401612008917354571831708702981073223374194654071836072713637087584949956183884529752024303256280834082208462263507851549967011368698654565937766802721001889744543458873183517165128748393468665220063407331948855958385159430967089479861264094980461538209652550955179359696774569328964140333511240891486765257700611775938484179080074550234498491651967522107108704098922812503688963753878134773700216997283718116008557249986465698903540490261424084530468537671579205325622313854177346848013683069800717852033615211192601910070343762176671479461964277062643306353208820956433962593257331621647812926243907717820741253183642117238628865581123834110529684035206386148187178569721819679418708821179313844300062770452611691936868871672259640748182073340572726011216316525779594793760484870077015512986315521020203664975112450928463903255323358086175606301766950185970362276024719850141042303776032265405720110122827645048351423518813903804397732654796448397871530854006742571940375694193787225702024027839096778848913629076427021629971577509727312686728628311337122659139752116943068877356134323980237299395197597281107023933690822203892955583509987205544259041200846310296825992192191135836460904492599379777491277241181523199131904862126301003518006638788198298709977578093093559084868295878175946612609666333881758158267289257460931345095097018462722045810038748848871034074005284469949974655403223212904483852223481993104775609768068325505211788491209393690304531455819539314490739531665703516993602030589357277493398486003851475202801788871259253768697733296117118093623221650927851359458424610772921849233387343682445606848356482134193813193277738686612476578236302870969237917912580113984036515090401747920779585060824529557372764667398937749427063480526566746516532273856707456257716442877409487047308657764752847104481051701925523741101418108315641255086711753668688082422616734387324007298064147440911928081548420096897039645822213842668134962353452347369532563200731616126061650157692161183465731845174224583476489042351744752743158192083568787117298807364158754147409458535781325372688827335124132263129320472530528711217858024855969880391084936221866548878819563484106589651576486527112289356070146326105826544572934514504891957191003794069224653341413098408906338475620280127009621089229810738759967018734101170730937658474499358996015326053461513888667370418691307248612941115324445058468667665581473597824535416881910861926123257721714169424977103050998002276671402597260348443651571110606010282546487160856212377938932070899418088222347613524995684320401346101515664445985220236105626184792602441708613627456823784514708784031459919514501932934544413280560066483708353766400726675549152809153605142295458445434119886883556225466746803332804253798511215078025723563444047332460352001441333646110619478390154419253118890094988156894611063346164641914830232709294537717403839249784116856636863352405551436060205419986637094167106469942318561225035677015313169249146763013461937683284937132235688658994560905475390493285893974714745687519736404175607519915068787536861590566298253815053051787179355781008861865076036570863721580567822906917542846000336242980613426819168460725073517065718080841962524173372634082805506708719218080706932632517601434977140768916447855616296922554963023781407097717178649165906141465730496555884265615778832124181569278226819961234832416138105011613353908376704184433449789014352804114069347818537570170175780987392340608251904572322015108326528318418818167070327295790766079859039593583175540091869452367627203150160404784566423214146395784865578684115655065728534249309751729339615529297440141441127245553378235456322025389489406172557789204959118437466566837142280905819046813863618158260060463547665139838820724157117955488266986910872426506879327059160904922978201652426238772650215589871163743383169451137670877972654596433408481168844374371093803825987498624183749328955662536075562324546319921564694825084835537651058260791794612092155151260823170061788764095353796575742723238362986307961295595378643091032046474815054899508307739775027995321420328445195120985426786118102037636940463307321881074686031835887636479884146490607074110977376966902407859850702976672690711956815260766463625548271010798819533539324139579476621374412441828890125125439768780140131620290936939028163536049814953448549089560561590490789170310503456528499709720681183773008165268268789434826375996635158712491230909997328576054981084160424881567914774499990622691285374435840077359812153013065725683576751799544849481570874383031201766445752442598563689360417772715173494487635828774343644791675065883432614655600890198080329455468289260773494361489814521884635239388542858717882175685504122506472620008181417533716094880942367679500421905975831791366873910956018418999868350113100551696798127328639747587913444116132402591770794661494856230661537936932717891866709786654740874175956463903023395058076411127285856308052827172722950003321699977159440079041708326190784834060801062831309485165627207588371539271912745229596746083185415486674782769087149188160019397159102737586927246970093422984314987152119333967827989477471943110072011545422718253196927002010751355819206034003799939065650741168782574176089333581739972119767990127133939251405122927312240755155327082395824722779459848110813962516406093701440327867622819426481309301806961051189605287140398953599663186455863745346165984292626810501767284093895513035338402822480122450944006736121117732863933640935364367614109622238380667390046348666441200869595647856299522524002583371919782623997266948334808617821144305123320552098900587312938966383716104090373765351062837109209131553242404373928546239657432528746790002630102082272976833991699305743675997046999188581859498201941311922356753739544244055764061598085122576525156135281112382942091185564719877502729100420574039181476239667778994568366363531520276122822287790831561809843569475631585347780048966880527494712905144559013481452930261043846156435190719996247554120719629680479024035376527399277052997507937058820650680620081946359781201083206740847584046578976683526334831557577910006985287903598675299064966103913001523539379484062419513320084849313331363687642401618840680387884832959254703164808204574510975664783741542776411883572712497611928938501070798429810037568067141570317557264806937108395444242558752278345804884795040350531387213049284072248972781341672829753758328717531250886946745194682847674019766187018152429882671564319885378827637228886531204941726888856312596507442572593824604242173257398264271058644062327110384304041325320661512012212011177775268700317469240451496404827135955457710581082558196110247048290432850036760164646762305663189314720285694699966216330148476456814735739169304312607546773928564443114639766581236379732427573658149262340831966486323294654387748904824265604852125315681347295407712024401086831065933823084720981923186530423926152663304986235330771708455116703154064079571932694289944476404925115398809417931844629093493340125670900741353324830332115018762896371992983695676283290736941849971499559757354114327143862753809477911030246500527713265440654715333284489914557010533397722877062437822235427132469355067259301107203107530817171187987727084195014280724451019970412222099192730240799468467762483156574569330635759018042078932721448856906990054254873056105416852136948088802337992161485683672101415893527600037058010129390027447964136907671185528746141478737161408577859683021490271363457796674413038826548007030048832419421044904155759304104953897855341743918476237818886977629073775605881558139051397995904285494504718137613736575311463860145244755416400217743243743370255390531362730231386435758482580437254573368051360590614885980561837002329496064380247075486407230836423835340537172174939869931027505528574282199153239386141605079845833289743747314769193655405962173464367962509777088775625277963679631426254514257623370394404191395896076518077700919629210504281954580301086949899504161170069474540748717041841555388324428409811078896881894532293415795359201544493472147507416597866962485667155666783022425524343827727135663844059990045337520833583932252835392065903400892821378489901030777112149025489409698983633939565650935697186426705913872133283012021813757609666277644728104940863425759928285262082821470462113003317033095037395583348279811780507325045795305010083340195232971512434738897823290021315749409394657645196003536590723089983349663364410803292014583773489657537374842589882745913479186921342799640922243499359363068134242370858847113667657415992290600623901048099109575701060474531400698685725230080905710716465709973174172076404905439495823754507061818959833171734565750766518522072663880183067734294036100953668571274779370936141973839202263624458287614556007479490215374570438643894285155714983927188889400651671744928015312744557008858079494774393209567380877000499994413622064439831301092362017413137452397723396330784683919814319215370003366369711064557812655776940406331998632377775601702230755071889302578994761712499869063876500900023483658025220138645687146981318756784365704998012363330146606876482489535948378591914268976287225706418267291951684170886033790445180962503316136426008924915598024350769474147060186851159171128106885972973561015903419288370540070810815122654908249492180629320657579408570303973074627740513157916284192146619590424508462845391082288103822763450136872874013724902395266099913139032969407767458797778210067357709889895380437109313981194812674958627291612394395475180742040537870185025614057521562707152807869890007124936869930066176161641926195258389109885817015432635761186147564722775542409860317657524978710424934904645396998770210929847560342381792021518852251917654111066308645057501481376694338858696328399873235817898645113647038065264362121453675920768564933866650579624130666311024905740527367343558735763948107529573798251761457070243947130216310960817524779555814880460023113423175199119399465795875761027170370602041571025183963514410151371143930232134069015423892019547745557336596388918686854988271371514665579056551055499960946557802342249172622724603025448005208081260565536004728177125706945046518364772390223530751335416122726758023826467719643528296690651904934561845378356860208330559466664597042080058063198153925265461005959515343761738282398858009414556932035901112503441705917794884618987368895770064460914380302865668844953652219513874493992535901191249337893535781455113797335385269771572817480729379044654653655080992483552829910768443871269227177992828021552230624484138408497047316516400976668932955200795771833850544448206624205447298067234819483579648454631250686308463008744244636604557339737646745112047633467910564542835587950082857399544070498253871296570525187259306075024983475706792924406856716503919658415460343164968948427453095954816105743644772856778609552025665735086762973123359639030245527430015725198549911940997918562222435308300223757667683489887999573661272144068207826052489933637807401402821570650374727379919170379919658166722224580659543974626529799912387526338479425622356743456141181233194753576321032950380840188332971635219543742179067774464298263871431738814640623642778497889987763532408847925148177130605136782810465198705140985527009739538499550831559709192435223937777262914077703926151470967104139534955163717509481665017053321357066945849800538675168593466763390214359893721753958008615877935790335344209473123865626839922503638876760995897929508292620671562354928772741443086834652752515978994984796379007709955112263636801951508462878054351737849755701628411540216832721291659073596394606388358543068232398667605592601021097148256834488742229281974451016437295625362877258329073127913980321294245164195614675095971087128197582581270402689692715568326421515656572793141477012730189970229253245520313235753992512274268792604598881386997828718578403576107028361525603343765390956110235615656773379495257607563680503956249614015660730893623626935215268493915799611726813750124994323594147041119062137500459418373216457763230949139232268332198388684200366804446777586171532895041435026559230555439726718267082832363522089443706946426906981125923150179743126396749149952984804027507519589802113788041061866191318474672783973819207767982405148441522478966215465431469262537387478335331261508937202121849743926358389315879897206552470951021482065151698837491107546290432713473850070069320014289463795908150298856400715526369066208238951877003924660793190128788601910031711756013866418176280417379692424835783072487491994140212249483852947880398918422892484029025661499499059485074389873132128019981228521452350327056347541500784272321136578889403318630966814807159575970987548644079846995688246146685151027973247081081428972179634644565256678417244784054692161061895971077959883756468365497653832945319245931845464820066803795602400703105054343517403667680389869698750060143633011351774840741096557950773701649873504298719900624350733836857664701144315411716169369616254727606034350158542018660642333484182193132478852875360571872876292274644224396320263389371009302690999758687982274853283318289869049975363884610122608050865856228980423441051509194317345955350353118649242745786894783645390304806283085153549018550818477015098960969779408177428682285060881005346867829187297580814786026747265053809512779167340620027517486442558480288704650788417419142854816494870544276114783178240459253852371123871152793486965733603501438285716777436580636737920417845428135839386360551488498373865568635959442051177368191252424221539093013118390668204693451782159740565420151469971711746489799297223157835602636727547104335839172434939694908014748448925154120148803186766660491458900340586921213292236417181139214841285359941807140240452364095851446452448942692887125733976578006458253052675951396013284897495870140521288910791044807129939088847650894332202123694479454158681033725295612375348314829638651010464657253717382150001723893120225252384463001049709399254380524093025959284873593865381811908824762684810501758711125489491288080607760878508668742772291399684663510183687067935173348577103107028923593647890218886125190362385429486711574339133275945197954391732353633881092289060808022008094355235675273584131566467350518170431670379216608618923453916941935176584124873128663656951328443309272093806899441846970000250271079373168291465029222699821013173411453927525103299070802165175380998198004832809810886777192685902864377363674046161171552374147968952562571301647749168382006208761348909420791002208310051539306659787725203631372973282023208691693529649829801340306038939830469231557201011070773434240925995916442183969944809475568975008429018022821211130195403192431607269462212297505915632288990839225617331278306115284665568410283409482564270676031417679637324505217036553342524420536330753211237231339311661437133746828458409769298256346750599852648667095144984573205964144297312393122134410925044900188524627457994030550442704161011050971845826216358466523571211612156953377296855723733661862822372352568693828112128000991944516482051456886954787340230543048391218276449574320695925818333232197594351063595814168472923957029081391467333809093402702815925503092372409825082508319112872124114384589438943902415958837803143438292507532536742604937729418730624546354303232831980834430105285983742141788537612585928678813988886344510864620558551596464574465441703709718311341840978787642064411587884455896211858650766758096858785516471399033065988557962806208342744806108353080345975133733360458910059466714090863842130452243611978596843776659310616284791268946769622088164437162672633172602693810584975055895033022030247883330031382436099911063904538915316391272741477627950948815430939178175175139565681563729381408747587486836278519675607425969601565890434572372138290411880178013396525060269603981461220931740170865435766519895096488765549115227973761388979270864905332472538269184552345646902504207666851692370599134314485385982409913681791623809766420109660407575700025073438042222065405940744288134885595584517812375007549640305334269987556570628830847208490857448531626309408628685731912973872367974200863536510592593234421966886427608236572618030444192891637034172094707509734656598945532243828658290898081075751713934385865381883804176144857696551844526862754620399958881302328563767380731572118312684605147340422961043375250998232694945120914009221443524429886361454606859376530223983132217242089720340570605732795855370380860391652416256671408450274943213135072816500752827343560922880688703061284814606924551951130456291930417253145156361761345136666998316902161681319731430259953114325348356814263719919896681504954206248629922288932254843922035843443906424697923766011979369364985813591200896808442446747344781375829232895917779920917861351747498843773728552822564042132193322337282982140764667105684937595265265116195117800342766573676503796700681945348920157700599094938809434916362760222141516175895834698963793220524480298601267034960568508383289306201351579451716109941505152565269312672667906954018526683501727129338965677289861870789035228370268302707510995684031708755712484837029749890410081579068800169792610150132665757411180581490011310458307011082956854402925445056621863312942095257647170422079564563781608701926809656350453567868802160298243144898790831023055808799952210281778512252756309703150721135748532236819709977886514196452760646604017336615523740659715715331452510547049331580841860216212813972628658865044010862093657665879813164169941769532861204346267567141141751796929789740448005852550404311160466455393307787867792303971194758095154507030826291936370690742880559548201671057046082354548882670523330077862642770436175850622980762670880898774897071398328462945287598851935873040813193116084546372722620655644653649792714019423347383723805045489088243528062982479141692366618288930429771220703794744050868783093763091374242882656738054083896226220623278758511926424585322465323724403633985184219767988144341750560033730290898118638197234503090775623265617937302222240827756287435755377942775134485590289671769947353249506890694618560106507196388919441998370192699934675550257358989121996986357496018317448854976978822596696894760325484291205398010075842177826297766548563504290722771458372741130478228123487574524967230652698692046565403479784656030009214065832832104120141341486811273762658417511816323771295457566229123382079284369964717878148070024505160705110862939462315495173294871217796070447134727210350076541993874701796781203127506336646543339458646413508253027638937762444475424589142569076142665114966558225510431721191265604469430040645367826103094443711505845069287691584709564906746809183337696722626278466700301461405281570784416800885115516353584221540392528326620025766538184920993697240218329680279519888611219088443319207258135588858613176337303617022710651269311350321354317009563225200355607650810614603073319029619821553308661029647115045710447912566810329131079085485560843101116783491925190451359190865314070610634534163212836265851561089804487858239416970967474179709794994702367516996594458437627611745930582450062806235183085806671420681674552856409449599585783933984614890777197271172687476763161898730959090198856985722013232712382184895607662091164404350110221221436029276265254793708831636347072731830972774685172862835008733774701279161799954258613494594153455197282981545974801136966074236553351797256886460455004999221459723509150231843391777146993763306733553233679435921198916618229794123568611875354620066579359508111517913622046233057301008634137455121560592371743112688304031599593301153994629179034567072089666277937773376425227880208528827661083538343923920932438254133578349956613945095623030773210164796322616586600825508966270455642373799175255458840840518228636222678936645681872094606843600979772742563122230935803484978511829361870748498826683710659339749598290396007922642041754684858236494363647653179471184222304699054174684749207898856273131406837883997882665349631724172058417367264036758274772065938152666668950432326418003963785272460852188111923383512202645164140685033550204302164168560554495412124850508793484727335969123958897800068562065387037034475383212846495728304459852330926374717080773192905340658385045239811311742419478455070008678487987516453758359080679852330693074389560907801847691810237796786828008445332955420498538384972806863873116349049017090838668235987786941337261244600322560869812682912023225490984752074242908409557749667733281969965208316752619354694151977462708705006966184091766021201055699482663601770817808482681708289069950837633577031989559481877951174164382187780679546124204440777825749792654520629066990964317997266822813956753744609493566424570593436148198772484117763503830611671195147115418557595881470153961244200361397134136409295940141504945806522888406299255591810461641357899426170745087464906332829078753882300279700152697205661813712386792216439601928868958223432001104626409056837345800341840203807373444069826473944534828232333439487047609943527106258470450775050447057612960256343409559218039721593913122720743488884214916627199313962320380632998401952810092045770058481143367430006913387713315294039911151744989408634173868807728878931440265158308315496961106499783390879685905559291210497174739546709184394199967281090412535337528464963425259662636572663656291165231971937330092689301967775811220594143043507511451866881421288850222699088048290677532101473701341490629166728173803211846421110406021151800906456307564329200547203754647141914252188318338103591847852485070783599762299320531512205214972646662626232507919232689453181936868145963396767227111681204645676811241892345902630033509252084353662158098713651774401903045894911015910812524981814802688610115243450292088995683349040611551000994819931903093014965157306732326895887637515423902269673846460048998707237299970030523887427968976429499482051837822131011425539107168365227772497635721341951595463693696643643218887605959703575598505570738999431895798591082697849592183127410317428818811338885063454498274356261824932412411713378343431505247783672021157282117177007349709680871696314726017565519609170125108253427279476214811121799041808883891284300370821587466016425041006769962260812673360724542315771193977855426820700370711422247483008685276953322767646444745865398528038819348624697732629336709666007704078675960891088095983341796024754044178298491151192671309092105434785466564520914139507862270912896131293837449696724015413002422947862685039272737958581841756010465182381872407855056184210748579851272977795986335738892746365630804665010354082899992790717299682616744895342972299250310891301606022059844206735097760651860606322413074376979474597371514162503076927047220216966203173038233772872252657149154924548143659748010675849584168295479203004777192441959954895509898871992822873376685950868825356092503943182421500134745124474039801293633273049048861441058063545919192630355255123382636704208588977126848489587417339003485468848618068360260351773999791142737317831568968038566982485721073202901849747823821969480122109716858977086099448031750134790812530197148304937722757884675066455660225339095520831924415833863679265157692599977957717887970316761442552896350137418370327655544643925580828111478880931303877710441855744740717751321065571861488215449743693479871400946377786506050895101434702328409846541283257339565493983426265817272670805594689634502496861123770858300555503485344957709554836021774585378454209833386148302304109261094668938757379773205312628850245968645452455684283087946683285371050865473440832595644473242264319422865905090866287013020641119626206906800577438684614210736302284160139288719252953235373964408046041117433565538968911135714717245448591764481155747326844051941863235378310755580560546541799175582469939953356275724401303615566008770940406498007883024932585282613473527970524070617776394539700290527010217643577658992940656011660517012446608447588733368141668950393490657767402161812893341065199261026120635821387503611820625991540201903128488509780799608148152141189886956223365106384823406040801679884353248547802106368819034632169735508022442242600835887406243122488709694309134067976388592020912751055061065220543824896094289136209604047026671266951335628453421880585364759344631587598639274025157777776183131566372372944965218645815209108961107863686554116926171069205423753656580862321717801629809027561145418247491386537623301198648102760896974187106501956516957079016714189097989980272533748437974362869752801443158738505544510969280807733313626805017705515137709534451393995209578270112519904758087592906874615483192000352702275008670110424291128187125912301336794760770487094769456410507526467485505384344450911780574104190209200300230375822711516668702668706646094871497090949911776712296481205441652681870122210010147028734068550137188702354535915016852056201441983075445261516673854753372866330155637091580536984382746822928542286932875101685747739402312675735208289717552250187336191356596175561468420266156912268927357459952691585938858054470348948016882373574705176669158237668304882734374593348559978009802186098039645623237956300990171284849363125879420688565350268811730779184955730168885947358503111190295713603887493333796111292184749422644002342562447950445471071009763077340629684675781204956523746574232748063582379967812334495931264269448480873255325161700200949413630474234335618203024884265827128434120837613864373350628969000081088782687144672988813346967585455585055344254119233111367956709190856093429473918692982672365862177831458134954529378372224401840952874385897386494462715330791694395993674909735185288563663370315082454767064814495113849524336527994229242168344956400888547974785926082035510104472119847338035409598967437815920236139677933289166257541465207678834068245918845646251117379668549926808976100266754790812578796452043490255494362675940122394240764200074734681041457621400855677815702316035651338933006476266527921118694439216843546389882275830947807919384245844563494662064706300765953464140071406695138884833608502799418406260207775278616746356209915801442866679687646887614611135815318690075194882912045264212292241162834770641241006225300822115060551591346440672638594136217935613125109921182373499483145995155051108520742101385283672331527884216262319597458852871953269048875929455011524509903558955804387785198612841217483053814737310436637793641829735898755579269239485877210362011559938216197986523286111013908017606550055667768634127290285404154587522111190824004059525054784444915548259286349383643321238053466360046294458022528410660256827291292730012921630119834954094994083081544035418825922501590519896219964845484580527887479956512326549176336345281636617722272748951759578257731217966900640220715239685886812813316137790507234490465701884599170461077927389681138732639762983568433390732090991487230815785186476764084251498522141488216138999698677831452647630196843753949579476185011329804968579716096483934716398573858077843405146532833818294004594743655787976823426521117868033276930471033620124176548674559765675865924989456164301163296590472378387296762125411619558183063137164840569152316046825502478826516997931389010108002295608934789116804867816513237952574637455472985635562709560129943704055760111676954180663619922373577390767403799603892648336109438086648474353053570609281054933220556620744204340898228822253626031665875306685805284155474237609306267279092613189913688443219580880866213931472138482322729550581925889786014274557567885138819746866689712025029999629254049981227185832643123436359205058929086344006546799014981675664883288274082968576928252269171803197864825368242150994680818355254651740505425967908589232706836015184944966757982189171021608647465594064503445757669407686549289558290582032771060852499558305570747602200684102853899606402091728498548000211160846012574190902197263047672075790035523185410172684234182152864846966215741082230366383838728794473370542949933713392973490988222197367906494561941250761021123584734934547087911667115442958619431097259733436418893434600066377127327161218146176299973375851889018628487923584047754237750341864427291290645371818560106719193310264412479404823626728398066117105913030586055392302260875013956736604484445412327133690884712513964504013596335998342351538765419373411981086967830031298656826116644602410150218422371040415586591828514343356260519428683327826333146493640623543025087182278611516097870118960129772043608126167792967383401784924990676108229499516114309240641203156070551986505964493579169507433698498024586898907129613608405140918422107349618522092715112030769822639606037754207090097826120118402303118142617657275949290203007073737461487550548042272657099239516668090067892832174672690336036002004064792540345608799837405324612024741688946301510206981382201126812375038395421197701044866697892096089826451679744488968274530619544155765479401878925377380193093650879822967951226521392351199775202586163397843396444350180378444168678643680940216266115017031520129900066783851225556069473732410917351149399877560440001928073332441198961200302331369060946610868673232186321630524342280795607833022496842689432541998012913661898747568672730120875517012712271012286645182671616769083604354481179676076576069896750805261208189653342048535020508524553570262906892248777761421794421813189206100609012813492428860693202776004361527999185864695965194967258095275517107895707603384363447650794091797650918314678962188503033047290917924490471036021073187676901799340920968502494629316715486835592257968130782261428757682390441550547221493110484574688353596370424582506052165319127546376055686528873670597571365953262729066948098362022361494551456237966489380658621252388672096526547893806341915715618873247984316907967909280982940254770903247014297303230592579272553517701948920012716783558476386173385498292500475360114130107259923179533621152494710602350935229599669559575904131294948605726684890910784156288743696850401720720011023011580087076012516601054473885252097760310389810117739210936255123442141673196555531265006590270876446866728425693820896024278058210243383300955121874476617609906557708539504135889647149965307540698132052101973757761960318414436276838656740224074020456150814548390039182371250340798952460886866173110894239147098070528246755023318482858999351147191264501774009339531337334273373730067504215785956408367155061809852447513673912420094168309787522737100227847859074802935573669589988259841767005040090561569407417384710109836479778999162979471235852849050569067984295406577074267339189407618846280493954383672316509604426699857511360704420174885301469843400842465847279192985354655298918845348455885199299187221987217235799813101895262862804007952489064212698945551460313186664013952565534438047698554718310199410515697547646507077504640984451608460990922957458581132640995952832478963426231689875693544869080902003694980192540320083425746646749562428196435345990823770714972873346842678620562189645668024318136216618845843819271235818846556006609253788491254723854939420240947312704571627415847212966721400940516484770351852586353176917953242952108840905936916750281723830532436291877016391321099940623211082851678978224564434015994479429959380343546886469204007955639821098678212269316982757554099156134996856254385366067932160740326163699706429181114277788366420000362668397754016220033990961188129980529395979447025311495739858701947876671900070433859284284884785105139486799448940798948428744865437872887464950461572468510419748820680744778832392761924535773397936319018064903365205974123950249251221154115995234678285423691283796700418704632317910746744843282344821869519684606196656492551356794651220477214411190046104712724007110768754569331609263293594359970915263213700684097341580321640841414516205196156743601930991378451802082503849696067225592479119025837181383931128290241196151002109579275883182482244319004393013853095077989612841201789002708772404906687694277072527611850357787663378943111545019379605294384871545892740852967776300716210918205473506233458346898035705466214108164086626985172120152019854910085213947930216896253524630143001229225508262176043849199891665814213986495080517032857902277341295414941607469538652634522098771988929831759363958054826127124619249576450830728001841962653617728582205120787314703581369688640732073022876441741210350191436967332262312050955350069966078400636982281074713653745970551563600668463294949769159661315024385865057265603408524137800697593418233128370104721208329998932473297817062780649698464928947968391665309700439416045606586171706926782719993514827633826877259169984033574857039077804389854896724669705633224285162945274843716154511634206443355392123237906440226690983092620408387683899706121297268056489990025167877612662672312046852671090077113421557941025784837708135710065396477075303726845950725138052323856655257442628216690865921708022176433243157002455362024776014950896317104636437708343169510883379369216744808976551846191924931861690251189356968227991288035148679688174450056637013624418062745827379407985944068302490618735003527183254493398590064730509170857045278283032019540567471976811597423340238933000467531102925227162671020594576118082480832221184635014421041298167715980424198895119261598448089669474425286958206297302059274602631063767980039441199453648803942029432799600884718553449279907276158206798798624606748079410149280965671371689854760888006062689236858476181671326508443902551380808615159386498395241228694602560407490184386437164489265886159776234776416464052640506430442773099109843318530458602776204403372721826597922271279203052401919148655786149310777305182502931878647596688390784005540076502550662747292160953807395465042992915660650466750636318530268288373847882899307627543383116142195638401468597245088472659433087787338319308857672840617425058401873423835643465997606952748329820695122571614746619050956776992788863056732398817528819195958059721059825899531448036866541590277973371374328481306485974497142467689746906513324799282186795013499497459733933505498311826452222474038227186004339046524623143257252062215477121071925247615078422324277979194787300755537029595634604435196623203280144311786287453030207866980385689111589075492205502013829220427105543104316098204607433727053481787163421243673201260062280107750220440543242039369811107314627794225436224142244357928578559025200647917414702383874666339819502621338813663016261057295514595995438075391617574893506835306368564791983571143277449451442081928200416131071986875415008623922575417796517472445690805797894034839557609699296376273576196829409983093126664948992937561703341326608907013302970251776355906067165341174368993423910868870996428404105368059587983462117114011461277623169802006669151085406330542495359829492608152269198740068350738551751918880443815220277877141301618871456938295857388391811332801536371380273699132005836919961660322004472142556913764248168870252207545434138996445431847506140850972954011149821442509166959390216823715767811203355169042890774529690511737723699940874252787160133552451785069953005974031860731354608110317319211116911980898521513587178391647808142495434734271929924526808997368735625194133113760563381807190795301082204388058830830894925291827165673927622690695199613166865327234347450702125624705520926309194905195612260207099990024423518326105082370303109762377571295365732544535331238209320072794376890332996687166454131973619539818244999570148191686871373136499197089955438169004034941285486700401824017374678807145903661334893528799781376644616068527468403074727758679000328506979868905107241529842566092013070881795341303167501180818714148891763952977492476485504083917898396774160832405518333879097365594810390982585213875911024249123441245682848269387204477385060438092579103048345619698727832990187269699803960345752556232156131581450441140578553055587149697280030198795796622545556780213688591121505718907501945815624982338474450514602643067494010083028251762777918424340646952183603851441123263862537440235250157709177945981433435628554728643855250606966519418486999169244468986471506067157076840542386633847466738401373085945265399818718900735931537178701719438242965113495753883946383803627686063804016834655759466080744682920925673883904917374285203506277032382244290230032834957254026491592263538180989382967409230102829379107857625197768713728354325106203793999253596163025336789543226142341975116196877882830930343998900252707894028879359653049542721864666169744708227412609354834220505886202813482957395958799999771242223233736154326480541366577271941969440200967017777736448433093364676380274770833478556986986926573231325650957269444677772086231693612126879208071837699503373186532842613428532932297613403645484628489601309602400092093366449071044020890354433720639277566283637872384070379275711447978606523315732960806739044609297754649986553075259846277366263328809639034973215419852321468144063687184952058635013283913114125520432325126340690094964842584363936255788279839312580378002067336364649358113272528881246915681756182604821129685370366846856137529155063567377625459531004820698033128782050304703204535293857655514274007912939147479481135265566541334256926469851185754412094699518762439720476241863874885210430728640560856028274603752803382055731679256027138693218498037881501093782065732482803158877112831670098738641405687325467187711283250012359546625545354587875363655797593763845529522846358592941767381805428881393367449119500833680537559149007244616096594713171712988456402804451689938917490624345429799897413746182732700988773826667014962523212566954313379022685161334273633139274948308555952531318612189748703625610972112949666419052656141056630659542732224367648048148048801140699733709304023991329073935534158370718923914855690925518030638116904744819749638931968725385719057128454113929421139714655825867379726977257548111108881850235322440123418765714827096638935390604115877452880788165317237116829994312939572972728280747761323880576838220332936542062836903540251339106492205669175561507513398237262664156475755702546893229768250836952132013733768218086391357805797329095930745808116171629734418435872143477410992154841105552856234062495113386907368983947658886763993278392825286437772750183977519615430349797469544129941980166891537055925515185033469210912039315802812279130768319410307040279534299026174736401984124313923810506789621926384393150181077796253353994952285496611248693936661298407349947657317540888724966750158821192109016664449035558556614752815595241178610341355672496292925088303270289606633897202156698361434655866263207544805424482491914164566524233648823054167683563649105039095468634067514215760168591078840922735761710295728266518105803621765002866348453449541685278667423308608812558767818850897516658628810116998960732546175553294102827168565449721735818936159318645285563751792957690382755586252797209221910587262108776507675604640774760350307030129892260416663647917241713492659198873361900066692884420356150455777767920306223813475093742988919722181876850835658691966505114421814173887130286252900029462604884889829649913806138170481673855467861022343781043241147645757823567836826844075948928325616156301905962325032017158815298038932429364566046457576401402987329443328541882941061134491445320514986430601595919867633446480900118252573713248545004517431366876922070742616134819564401156352773413692672549950152781058619274708840633640100021960235662928727347848016641909213105235142897238271223881459569134579763866530310192207721118534997438917268043474383679372338170103026347889836586676549611570122337217932292666805117189596167959654573146462169613871753458441752262139095363745216524888188661358767179318708376784977732746516320173127866217413448272398558132922216983114057656651510684965189276434685160175271446058255098941362554142826120424859022599698976264343223393336639218543519406113063557843159302512026955326258017988088407857334411668486523095703538230879057998033675941662455913222180533325299511121511387978809006358444361096680187393608353969975484909224272199081692521841553294487149123611851915989878326012356604382693144552347061387677698373203923362435664926013799883354605611092511294107031784212833846298075145694234944033691649110277682384631186118243270670086693707360253856861859890128839953373675317512831379538148524448388015536115001204614063754496868008680681056813103949133580363509310216622006398903948920516829596384620870156387229787331999456864448341520926523533480435515786577351239505195829921993847953753808341778102643185762087040281403346121370461866558593825819503719805656345205003545573088903943502284752577068409976287733982566443767730690044145365588292398244593170900770088379346330161674650927576390660288041446714956861403359540142725006479133492529030211261402523617303486199129650286242762487900384807942345141195608673936564904569361470455789534565921974853634720115002905374204270752810069410119970759338332341451214090184337484811346050664250543080929780230969432139619548873235438490233842648410105463467139421223580374971803389793579059732384092926426842012016224265317854543720162285378226444883480562792036113234521952931645232898408369677089385321056347021320535784982862571835177850268285750201088753198812712783716826357480970026835886745744489632468003089057053256261514715930737467216702024911820544327761055562792092911078774325829984631874150559349205112654084960477157346613202965569097779731467332448449503580982739861842517000702690651575881659890171462708866952940600066051839271732797375230195550790317032846456604007600237895578653276351735571973667095532147904077389233659897996105692525890662889791458518961843067003143020366400981679904813681157271987010133972185300652887499531514628713920917076509702589086457634821549076005345377278906833721835597739340349671069817460391731706529993875688011779886091502688474087897520241455123315031674339064554189396562696924167961293191656420979222336301078542164923958051413587424034319433636009700097616600370660724202217441162337165052613469415311489635336727365133415165566756660981817790659365180180870920009803552219997251580917830845150057882273638024282346005150382953312702238791344386613065976640291731682882288016611150989529749776488713118239318054963921324747111997260215282365164868216292589773768915108964000418724276530519168421284601423355442828338609036146595856120633042486615212969892053477977055240507888804575251168167323370069813545018297612753169440923179725477653787258972673157958092174675054499127263443913260238250555025789289329386633913811542578384760175432571773154686763935731604153041303196857471100777573351358602749631603916776771721796553837691623431539351824076363596493365775859062222498757029100052145752086100090150533704647443501910157081340163824216227050568930124413383546122338987437036794229933343527198283105392276621461257277947488778020730019686224369288393718082372753840371401835162287779991918938108165466245378398303777013931964509736545778037297872204241467768340254901443358294601611055873297964582954948808603125897209391093030241247990834276709415307200517378899512886110187321364161957347118214981110577975724399862974868152928927294966333616912834377549999165567664465376714736485397331537123145593141712477034613634726970997494074085570122233064402297003020379909876378652881818043679416574874670807497266899193807076069606608263526874204535469078058695942973598963948926159625865753618418556432229277004167675508699987474522297882002387604924783907574486761079105995558814159366367193829430976557965899323904997120653801827996131002323358891392768585228054961296596241294335211589196905492425969707443816502026701341924328586045576387818318800654764864857701854639983425141833387828790360492481000838105851958546790073235288062513978482110770967882325132022523555054974123192671188280081901594572155613776611994885308753158411075262345118334153635454434438880543555681315069521823782502201072025183013176879532037343390619099994438759445172569349520738278420379037251275687937578551020147793678562983070020364711130548688092351466484670273703562732400081509927932384173187823175794940750905828716278355844439676777472512058263893999828337695933257991054845675178305789314290578628547609855643108761568194442126213443401981605765583553228867843381339830836912469743730049136596134170156453346376589178887714715031412476605925084693363372643920638164768080225030088372737159284606972815136562678089099523103163887436401496186004198084374925633823424890307528894900666893512101288692804759172066723782951265982231539360829206161209712841974738648614539766584337056091225442845456985622313859848130143326538504413115606690780370505327293316609057737442981111550950409966941272853528692462684465606188688789702708444076818742603936901616511813555231921366285202109773771819847080939930857693209125652572510268459251994383367363571793136262628779412253566135610703719605000657980863133614608259000516724162132880582773947815900361060789731330162478507177618858321431454310142201754301107439545211965093240972556266933471197445728231028658035210462053640346575779442912343968707593048120161780318140965636986395575589017669605556483383410658507894644224400411182137994679456330775825879968136881672747038191897470895823651905495814843237499955447572602443557625972184283067125451880995344402910020995125408936716517420613725868290770394286038849967422156332187166394566378861108262624094559959693942514169425730643472877945722490611798071484446885889119199278812713544132431567513335599448462587385701728577432023624200228356083357417807282173394630036629672667859736243830788706404888290804348358565116684747575551145121107014634830100905881159442585599780065992369965430831190600103246928870608413274069329203226769435579385119925484838455343227092067622173295008192989387571868367109129416280365218557280145204573862944774469213089176441379807091841157161038463714077069116950996371546726217751680196097166547435288432306456652641879509502642371894551015223476861103364539113383269319468108547312544124834459024420171183800867191437960658808953703204780235575249654433487683967472837676272197911135370409483858456626604296564110265964866437609315795284021675872295831798064043245326289825973762115736106097946090090320405170499905995549334320700962734429746319000775580481264885631544456085777196535704920904475505865567141238123642693208613801000666023469958880993212860690554613298226295585182137609227795491582651443021299750568666082602367427451845258961051561825577611357366065597827128685595272443193146631282419514418631590661594830805054717543343803868625814682086283947913756722717410313173653933866491342012782324315827776282364682939019923588926950548215956246785209430843032041288123749251144059710267343493431705771786337796437662828281411090091328366947060851712506140836675621980803614090703528165922532886880072845303295217998902837237028461457593532132708191863898598496740866298855004100664851302100348372870241964570110923077427167569995189345597816392676004140428955837120905112717431135789405812282328587192384179207701677603421714178769544127175291630227093676821418224460637324577652657942596742281425204537063317416276206719632104914800046042402398284398810073277702319235108295146127518707915307583373475281326189637128591220971417036352525018150692892117186735505724246986399080532721774937474641212762586389337477839065069902605697715962223861232916167468140653905400530684586820822013414556006662531701474543157963301857792277647153763212714967255843341680462299516469056650396213649531741187216536719481574218578864175781475933217599113214881359677619480973871331353425488429680273580382515895024110590688691218102919842427192301833605062081963736580041151064162807948175932479631414120324186714104857425067208183032891393825804012052903003135445637362627195648278004130941738205945852216358975485425191169166565718838587240587947349187214454479244304153061071537018036142860493808084021930046148462723373756777324960399474372225421249603195351504621409707045314336585104978525355955496210659414152736997622778760695506289150235599725540244357982890856790185073032302755855653854233404174442902041510257283322580346505061767690365706171924664910579785834644806019868949021370327745575166806049314519613931912574047568793143376091170206647816529885067032123535463361479231316622889925279258678684456499950062528413761919930646881391173616828405732007307541303798797582523003558445442991586690291798664769327082025396548790718887310965288239332139512297196456094862208285905801598781553512254903977716639077592376391122196148317457880032542186048186221361563290158551657335717287567748721334297842537217183455283563366317982033927763854822471894192868641735831231955230548056299993480361552080768795375386890886477508965318304127971797539651377973314758752688226433909885469584567663755478102593807742120662742105918934432713598377012214604903467573810562583247294800397032742537184749395208446366978147424656004830927925869421641681982196409966536061506191863823173297039523623441259818034807522213071691593317120448827509221846477815580615233248732735878416815683660207553953373357543617984115021493373116508792274044702967252818869709826559295573874479852497048673156667744828620259497130584583677727968048992022886621761044810631418131392724525119668749997160775450233319897033417791337812276812921306549718774043665126949478563152647597311845763525650421900012098441017464673025543297817220500638227341809390779491382442644269098077224371372044362492805876931029946116429823862038738577148023869339350866608845994980602755429285868057893797470869643278375959260919061149392250877638168131726454120044118440656760376093237973193762353668783145124155465305348901295397941120250445838001474451665565730025662479698267186685107871749485313052835022396762256277061052565791924106571548864807692800179300782868425216882372630023509612585083143745842781805677873363875142423660644998682356625278894754667165036077159748935044317556005584829827899649848285162328188625964905857242559101578057358096693338221668562157193442172667313758609639191267192456009173164422616448383527048310860839709172968425644566269981168879039832323484160400332794200234281048135508385622306923369459139527046222239801356138892037422320834777197019756949600964214316928782388515748267863515749292167552977514711081943494125731832208248597994787204781911033760979137086249612273389610017291372271862336274269465880695117453077667720775590028405269378375320810977229477643192094315209542307349468643909971504094359260568316965789595621134736908613360804795449490958744270807479525627021926537406499326397599547980222176580946339651291715294868640093072086490350366094162351414705151085974306316082236881466152777671365507364218885729625992970499276622232871629255004673487740889842179480654354278087562659615344342635724752304834636121730782834842021069102017968746252216375501445074733640287469856726722761476007599613517061620112031383408595911279578889098845968127528945050295430253948651983715171523367336142642761410307077015678631628667914447439734117653614340576884200318446739907146542925378228648506450406169748928549113187041933583050933128005098739698419159598890842131945210101445325371524995763432297554761138543849837005672509488217887397047432069499250843036080763555757649223681529544488126829639564475804897699147198089600561856672187543115193392160045543760552611940710030234855398418877206399738044692902407670352184736400016987881475797589719609887028829074935994688836803692813161063634563587236973818758540571255058309065066280348635882185295648880214833089100271965668924863580899543561016551356444064033242910624386974221106985066631160870616046846106846591289087154587522671182534171350655259775643719521404727224080982791612840938012635583671085504999793581238476292882220828825427918432018422101247467936747360457060190662490564306875058684044093253616936063739210263566415964287373213301941424606642382807291185305601136092795108083901175742193953327198966907362699466022468314754753581061425169819080620631793091070848863397750214849827739499727882263080236868249681617569256701279857202776983593572476402320168613246778895308846932637749262874620279868942419344344205489727196665856021514267113766003519809710481235341292481743576458151033678099327981376873341677633037820561323428774305091638094913502146153126645422806385834807409822285696500712120407417055198930846711492171850214649743230314616987479538946471106766296783411278374594533866555498910159381470670107389144169549640630196873092810673768718793669451476710742969797540839355570695762008332215442770960221964669517576850284512440571696027463163733139675737411153760196342800483021996433410725326987269126718743602681715405995661956958944064572930588545288058715426976068665115746556343842529958442790780400834810599006003523025658602433592756172040686063050808192553530923269206219825809988972400704884550297327404549272594238414399982195299549936961711665044616494268224733955861267674431703406560481458941022163815685389115936220677213877661726700950642839231636309255977038827087420151056705761713797586208218490043992842826888105485177552824047029146138686494305865632829192906635527785913544835581226951359305210029547916446004580956522331431743543833166967878301521505363767106272930658829726569062792208739313046412432692807178968568776803389008033815030048742952053805499873969507181534531385016753212911328115129754597536138590833165023834091020907054729174443494051627558674678499679736286967720684334779134558516628639780611426974821110095943322403582709050105463600784197942281506135329790697286366038038586791463534394094995720192539826714910341291902163372593246172003101734393080144149180860979297936625129036405120813951985141329567505915142000378803529675688406186798562497299138854106094314620768772804558656333647265145300938595548324548009387728328051569388239475641649855952800310494160055729696983256240945113632704972190404112352495188671845434476068939732316195961691823518927080046020974652050626907268216925671846772004684221318509761907822323503243029451093414319882326928873202693654906042632277232394735823739383323054967982426868225989131340142102536191189907401218126710021394301064631722162295290186776023054042620264388539189291057998916316576453292129752618505260129009619086192667942163817032368388504960314226249803159531043474054100021219928215978605738101601219725580068351997145747171058205796435559086852542248450040517431957493854953290814401931378476035795085257851376654569629951794533129534698360499960805926324010371786102479826696160266098393317915380816599317324635330517315191418146400842511308503594764048287938725149623009697797085587268888979987251840514269413326724463352559602658507024247686032947352097099866537451356612970861842893402439709073231004825187618480453310073038626381909791082872144807135214035502995365277378538692017073034377609693394288344297595430402680850615501507653985712407644810873189646512804202559146924845267631792141458181033335684555327970620609702832507948751971439969082495085321488695519454767423305594747541999872334329455124193839574861161623115200488894811757039130164394293301994688069452804177086342571329015353850574366494823219375136514582007647241960115352212201062038810648625478058222206966896699135113783080277500930000770382759063756622492284748502841319453827269106883748736939024532698408798697890016216603880263832731311357969179776583936668237808278260433167787894080334654704437129507193258341166408339895257449912543698204082027608013551554452158241608556689945444816270131567194252902129059930459986318877121928112972890481224900118670471829691523615661765506724546920174496017623187069635107798559023251787059334459904310597876904237768373562450405187096022597937648125143341591102601729104885663789578208738762644789539441341174676502150591660675684626419877472713068190137351258843491534583670821210214008724900310117400957593991768881251096662430071838532088039315973843096886788038259350352910727711725090013444828783659698153554003381903214700091349483455442509910991686391678614579243543870016451558818985587444928496877033203432598053281713730471015354685274231162369353827671489252730166827286795162606956881529293541516533003355157245701058852556799718821586273105190435061007479673757143473009233606324476672726098376511770068733318438926383787589267476015563099373041889475705482587772982117946525790552291374768373999455074773619511214696442239906328080680008290865867390350919125332141980797921159857377845851682329025399643275585120027798942548261819193760980757047642619915403396684613054493159626625160311032466154880496466962478024882324650929908235608953135683915714641060535868612877037384445254533352266877603984825291653867933806850467172999314023187806029699212459966129285588356679103735181775627996050920781981685995285322004241170405331712675288106556176379878046199425543422390395541323530769472165415307233921059416708636799944299491203598312644657161024784951264528553855288116614091704237532444307063032118056758613716859699204468121491923368220380804273269122885343489037380736776959712406434988641560206489119392759942264214190716971468956947966688310704605694473277826083318661914041344433468886432102527687171331806484463773691108412147939194070462623244809477523876479168083773827468999093162276640230312844866571818089015645305492109743243956401100389929663835453527977681854949964859246401837431868978731443336974938257232587443636154648525898563748005479053834228402566818590404108915976731160642821814134259616240848462649508295427821250655832015670659321319693340887678569213987042960630547957110687591582805462592678504367600742637160513077840643066049621964756723908146954634863984702345588531139653363874678775771086497010228790267359299316943817339290618878423242132416449128071009328612645070332486794933391887851190705628231765245856779660357068427201475919350865965544665451645770738210454281051821813110599347354472844303596629058308406855208800814036386956014626410557215527612650087829935370193658565417839297840282323514395229325151536796994140874927879569148022459191223897083787693667834347015926665627481741997732096720371282514839607570327506254983771562197930625109082315187797889526758749910326088543605377682712179658783926320728133189530358788632170902864146469801122200682353916773057202282409922561668873999051621135206223174712308335354883815162106507692371494528368324850786117213251588340489131721076635517289194303573454658912151918968278614828928466675467576714422153250885055694630320944933401012385274645612902415066177138324627402769391168744489223722906015149337743068216333377539448131255952773096112439610439246992794288732751146684444211413049632512345468386984724647820545177351460163331920816407690103512403489395903898636913778210947314642229606966657890190737740416999755999765882905993479978611781258567944168699484446467097567291688613657703389133182518405822261412803624014265962013812112231637938569200865857599848571244921308906001535278166284409840195045105578459725792166209981882079075476836439169125417465272444082758540546369574244801203368294616228192748697571735413456511983287494150215393491026402262775407613184259094528112864833054712873717845619767249370351337803553726705214560108335936796981290775689089108898388547933826369090042207405351665697962645678223445599276854122338557161951552251634024681803249444786141110188858525568082928410998670211251250731312889009920768170258867763238911429117936456424058687086132812363164503834516514419526826177179638885851940071025393544156624597481846385806633708329668293235930523455882807184850878550168950800642461523746830626280520204859957105720126390803650709299369858358456277059572804970549370115462700315895849237919248944560555771856625983398577212496246200750808593629815731716211672995776006585691956502731341024967003826869242629105326584331552783053456291774727351652614413761924188252694404543345397407914019981141140761110424898911339531347838218610693465831709880971770316442262809866510539107920131354159989975672891856148213027579833464353159151890914853325506924455822847603682180218005198880004595425599201879029123282430231533540792560987040403802888860520382036702851594174847601515535017716568464096944486311232291104390764894481865447932521416804445192237161163645188755389266999362457257272877738737257994532023593421134846083171269435114457257381765409780041141587625993659788070513792668341829917942617243976452659651608515115472761986861813658272474039593640738779559272366965434715812477344397602411825210511905818033880661499414875213274068858464752988571985732888585014540073480323615645807973357496272662519488453774835761809279958284246421780615158239215431801982300783215243034955183407644654636228147809397246754498385175850285171661590713644999238521423700570214583503589422802037656490441902442634564804831455699443624928693711787734760633321852405666925950054764840759134559975090606550589186424829362841969332262650614334556038378790170574352033101949559939209225202517685322405335412595213267596338305830735012546667353270585353050359617670791061850129817771801246641677846483737857816520579571736050742682977544382195922204571635520635498904667172672254550148240545196047250246252472501168139469698277932299393919458062263302419174403846895640754103241132756980280110893030324380081993548621525419510256386362022027709267595955182087213970905094582741280153735036266421179214780778120886703890112560461739337608674637478836098630894378860230653195032088548844878627002317559534226918771956165655923532087999396323749947199222128883235462816290671250714650364703592805323120097416410669609985097868148699230438259102345291589467993756625434250614653675622267375367285708744503335310099714448574730781667908704634060391979967347726038774953149647507487456713261524723149434488605726296822665714509289645497440475072447612709506407597536601309783455006890044340288272671105699336303035543742061912731747654472665151742541631581242760026201839588401179880341693807529771673402784023436824546795405321801534575552125359448234454328074933266177201312670345659907777635438887926613334859358566109928831931092265692129805472583274325716573189605784081806017852783823421012868916544826499743757537043342347650801836861329676665915845928850932539585375146627090722558931883328696320443195283030830520578070973543042838532268807672825589918766170237000948863904305387710337196930217779590746776522123767519082309469092864358083237062745173383369128801865317076179765085547355232266697779521121911383273786648812682262418298618232354106931959089581608479831496172241510443345136128671870732866418597475452443921343187561664597512305063818778356503671005692019553289769612597503358860280675416487659853512107138815333961220541523185859014644541478385312013232241389833979817649065410232817565839795456927431479682969022135582650490500280459650598579246387272784776242144074701514503501378705212920226599827902789872433208475672298612594753527704858824810541374426364352420505790626562766493835624357634252144933735061345263218996218552519156626119806076090399361523519926962823242675677884866663121481744580469086357563969644875502838751266057336932452641757930307792428452646257783289456531926022318657714683878259054085086713889515974294601393909936296730312646823365758045143855315171953728147939131585962254529175114611786584546590546240035145154732290015463957212638826165013141058833983000083724035790942416769826997147056333245450598062426132906174356904944022167949740233054590351567804537706607841667247627038845018684273188608989368438115638528474482453074183952526824949289374017593004494504690092725761346427179704220456630643520461396365181037576248617622697750461161645985762988401322790873047829740185557963976051917487389530061175956296833140797236773566322033574141978686968072665976159873708036744378580892405339710571433792316255542593406148813389077432988422977113845506409694586782836379457570589222650734513688247493653672448487471740551981771506251423501975055495666248324413126926825058541757021453745436866758366895672949989123508927877494421482789313029353385250389488412639791319859852042636347298897448180254383991024750138826336422607304644613470870477034577338242170643277678783829475644395631010017364496538328511257280839194913060461542609252018555260773458173676956134029438472132671040370253213918434316982964119803360803988631008678824810645465921371715242865097796944500982117754050297481239397227859966041061153416246221115674517005958766874016845840435050745002769810651247404647835161349320740243195044698396914748692648921070145949258819291999356325119782422472420049811767098675899231288206303045839819052482556968813951958318665779571103744880041452258769946142623048212351054897243492627067320797756614908300533246690986675362015109037792242836485916654878858767692271380495057359493396382274319382151987829749285880215144195864973375619382527315531310445794620764556693717857587666028215016201051699867691248482210532793060590174910957876091547709816566618527960273376438842966067794790763182011631516167045922731607194506136099627833507724199947133661667533463647935396191089054544703258249784504129445890758020349866802779139845513619743939343739992156993790489356537643092214383673429728414978281180213667843225046192520998457257012938686244059869683654174190730118938270998725391919154808620153481514227080181111915157879775801291101760318844981486922046580666950472668728538180099973522982968661621904147989635942780509887963707421638128500118599996906910311218449690670512112695693008910780392118993572370870563631007296203013303419456087632297915776135916840375051092391607180139945911614624144607010603092084343794045251018053827527029862125352268287009829511905826992697184916648527987151620410745318451072614015380557378653450449212029436823473905290521457769330192686288601796248571646425011357726791044888456720958513630246781161547683308115575495335486741999700022143416769448908094557470604831952478795116316250463810573593301467795081785094926762328959169822314443845092191123578296809937843735196348937692314151263243906666069004153479763608504635505853760363302992792259565885332616215354519978321858881565630276174975979777931880832720588207725452334172604817464960286044969271980878562035576190096010452342080353148329044612952503929198458818120303191778175762631568748945021313189969739555495896484882903024678165463500074769640465955521878702366786989403424780005812551042240341757746875142050383957427092082359461883456272402760297150640134882886848499135373339290210817724856349690771034452638030604482919448315093223787791703191038150343534791123444080881480880235885688639410179485559122444332652231399654302311511390410190658391546544012229574518480679647439775168530847852584995247574009292586782658441727940199408223673731090920167378009868760523636664800832031476502164653120906780917887793436545259661630966899367375660650579291045329664723266071805099913576438851145929877742825034283843273294039501985206848733899331612762549367072407836994177030126557421656548961056292718970597969170674239018217343012659939040884973404730107644786955299789704943012961445286731608942463570549572570356047930946787315631610854333924474382327860572415827706703011107126652941482070833364069419949178652659380797995083458916035379733126719287699494964942684005544396376156556466955424203382117570336902733822695456648107001402104064263831842089491203116872736595423299908773579743158195853703186574616228799290855820181026135310393705426256746085280237025801751235572511369088504026840997944027040373765502037547047470573875504118273368805516675164446885662371326956921319424989037644885311305634874412029360364748232247273819095178965329379965345694913784606058133584523634684471643820991768810382548431200871828285847391080670857934241286793396900235094046168157799360473597896545588870601561090147958746540863061825113418810095496702260860203619258801548941376532631623289534177137401516527116195851416618571275573794546742332104016217903583407296947750232439323993756114462885778062816234197570234154998971821864722839068241479441568883476765885220631081334478901577173329675536969157159654275264255716384012327035638482919304287495445748602341143536601724890969001676464189262519455279238448275959798877886329643714581418172924810342757752793446338852934073628329678328720788803019146613026188936026660240100503851607503465698183041605606700350799136955904144819681945484752098696570617866967482465630294912600311993416525938473690396858642670515784583931993233570670199414418376536187924875064735529445558690555045615860145730140312547927655187407404300540547154478301461160778368096672126791756322216779019903758126545000691150589875090789632736197731246294544828252127450838670964248317699034842370818259935546390749676703676366673793384052837175381880876057091299833247037411236383050204295146438620526297089506618945553599563237878728238928508692441433059737145383103255130569917479314786007642388509989048146320872652903254223814058715370198699056828966252952429888942191379105120922981751500020198515745434391739192763613070114355830859369907681133287961716540771406945061859523857595870950424963789772581036011126381485667601950267181929780498977756554955982320393453688121059970866083387636085806134583325392817580920761348620125691286361482414729866160422660216630474615421060628313940876492250757975301544357081483697469864821826480210412930731926299799867851572155820881456408113211670683996254504847996142923260896844691816237235325681518037293918715237949834234304209056553368349543342992105044254339691540846454150456139579980814611277762653557316647867123070573930601797874275718770452869990855155026386623096405241175477774519371735384995324391776343996121402437936550523076443939522852930045400949691781409432917849539393866036635346568558105740042791372977258670474917965789909029681317108239891176532922102388963491511496896305227177700273987035328409982923913705541409756476710212803304474859264544177818000058879791613912770201592413846809698221620613309234811958926783855023158233973486598178271825173477426027454450267518575471157122314676794614000862704299743123952481502925056625584697662972828766261002295598692386277154727288037437107104381862454411866168019508919283633756184923835501725607226091396072048976813276679108548738710228014308438617272159398050789625224511861813074459520799848340766359226468213552345297709879108364646505297966897691033498366882882763069251914621718526564335261017023763470853066503764836899796090937430540232191584245386294780726174259488426032725183123257127102476266239943985264022472077651774587871068742617091064414878114078758215015523045409141376429219785565892154757723364177138343026599372267245003074772729517589320658103282803884164262751470461128334311294299598480426644122249196896920228533349569719685589074418419638836207838530983144443922284814478706899146166529672105690543447117820198220679699555452592651631827219664541973896915085851868237455376610309702792493273086245059750048192958389664209463777942948793864887836321832594704498327507167692850448082906231619081832958165196076469272320053762697425340412406083155629922971150547064608342311281576807685128806817894274172021368182171540042603671231796539589394140686007353746609033496382859463335788801166352185042533079769700270444350552902111637327200537954970479199590224440677212229365258977180180835880028058543103919773941104436856328949893994197021299509647063318701113652965281936964730736273250185120686328591844755674204155891508220124782973950063959978662667029993544173722244542135103068083489234067179557564574991711966472017335069984842981575649628822586616187049692033420542219067353348899765662155069842891095320213715547592289121843989364381953567187912514682506373669498111792095947736248974899657178267054517105294491284946904131244782872399762447097517006822038336479565058126010598287530006009558156008564341879984276647161855989963297441200317057090333689961672938445086737217804524888694607671713765054431702831935941899046438302443430185732513855559266413929795576103987625263485315513039796927130473577835245955567547777019158095195494264591724067785433714615213915977059392378188004325631541537927459760360405752782547735284251224015406835053671762917831785405913036042682066844930675707528291699030009595801426188791432838150452192560563414188933449351899425306113325495955452209050649895854948043610621528509637086839587906567148963765735932285542741086530384483949437460849855833108357974085138258045773371832634633576498698708861449732074323362113433827123376290769367396644111283457006692699184113296696129231365717060549269041700997397971647276656267395705679096798181987165132927525907936368222798723692594416798493192369838635516423009125440378547918708613289550010847419386750257178924558899685063454485968191622294183882896329708979443140867288603823897290892061311813158010631246429093956309874368269714333435132690476638025015265214683893088088771666746898816811502620048730802932050682766393866540929022595139059735393765901906531169148841332211396557359296260553832253199383773194547981864687975420698412793458451711810211721652288392652928563751896173233657514759246920106184681537576612027449393821627621972868522122415006647456680939956694646906018303537553539229416494052122057462132608995392614736941093800705641300731516960148032903103841867203861209483430923954444985237839064918662439650684138352100714743271943979550542742836960059664480756384080679118374902629080704281171121831723708590529694117076488901125702300844837355650544368041001073843073138813666042505566165736303138638497627705625727133140953205130556451059347926966014547469837007251500202505402393902639011442623577746025891763642350993913371352725061812386867226671748373780827583410998693851461329182278905086762812329169524474619967377045207863922584905373774914855418364034143173614156184736693247860354804845003273976876249837310076994108476610847849660550905186207199963688731356802455997376884638109525888695654776010293077473667218420227371206605457611490997977593275581929414560718085831247184440331768325192717672953172920258205707556267774478004176715210909067100120866170859540139338304247962934337299274076085135563348953163478633293677218456206108621789118693137889606795572235992787799420059264497551111230579571856724969870849099304682574115198062714711361114592062127195851524883536672580882131913107247135154904792998393125264883640319546694826708703125631710030209164706601173148701935084655519016973387372409875017911553046061028123279585514528776999499637349881088270118000909422188153048330510833174250951825283201020634093806588666553771504601837636829760038250411953939246858318944169416335415251282359378675447603238774380428235505832885885350871655761929925610764500195837055557490895039784891556686442052728065808560142212282101538643661452245922362487928536668373686546530175852093070702618503174139906056293097710532375878971839013700254380796599917917008760415164369799389643856239208002092745780215747114815950477911719998994928015218655026256217887256960981968961217604195907418016334997439893238984585350340519305689372529224690145302479816457704484094834564457810459121879626814054604698022887518657904635269475954817977994807678223147081502734015610498799879407639103792061607361216728596690765526419137734235080041139673861176666627585796251313183262617410829313011000857869989706701162571625635610080914162399773044993129107628371824311886146876982710656574643081390570956261640284283786858050309028573140668824886747180043479375626499887834035628271446992304667726107509966822247909828693039430691989422618844447395173881760270443878667401939126256274849893524722273537294521970820145898911490998105446212608493373360340759625994574281247763774646870295765907266370996486462863245948757831646743336205655595148750577891983505814030988651604458029977924044474368392000811030554164160471240798764768844578160515673750550245329176561382314678325047357956839849195930832668341818289152650262803920395620913363570573411631028540584157036645395873463019701843461677452130268931687945464218785427721561892018894451191339031126167047249560306626262809024080001184997984694609627759404872648191759927876491526032845419769649149252600618324004920164338686453848449004487069860741532599947826717067255741931123944855234116865256082593198421295637728895134242743962616254148888826348796477533380678780932924380897582953792894014901947219746276253246865046147439774400869476133593827762674120236200974341084584211696193621347897285679784089225859184827944338374797861860875675757205242976454866877700458484871546287812315539805579617059194849086298103042837834199350822079016953534787777760341165768204022801530191288519561352048846641157205720415661058780921748405065343574833225232671346752082404551216566006501533020900740328963161083011121628079400691588627296869268681923668157971916743767691566265100618799377542907457089290641952025441310438117800754065983200856037980286355477812851735497804975508934334260615843373530710965013552756626594964717367160708347473097473148363486206541160488335059314191484847966054196935129715914866124455447634050013853944070605127433160337420516441935977707253254397281409685908504845164143276299097721723980235758690595611585142730560709020414386346212544096190421604749579797539947111423038320397042065157309346565523512104035400274013013832384944193189223932366530121552515990536613608306367185014150785406703670366718456728682433286473367349004813769194784530085272285236282537587590115817846950736722592692485747206596042761126793278655474951649400450663189927387609813400425129319049517013719990428646354698687416007735872938535417122233939312393320541745258763047409436358229684706045747201602530374149842861384401232550656336152138410411683772652513637209240804246966405964460971127099839804116300525412785070094404664407975131760224031068203131286717741252994070948678293866937978300139795530672255301687370472910578890551722312801506648106145404897037338550092106874226551569344607072889869816656510447789177772907164595012605303469522172729944305600324554853284068237601068127668640878536456175722497993141379545559125812955426072338424606190495914561460261400369710850862512648018528999697494893778880111200647538653434156693464476141692310777355767170069720875783138401364249529976154441468139226224764849097406960536484455515170996098593044773080842880854266893163760520508825846189725243687481273511706927911156606435496817077622716191213399321684936255746487154264618201299396867076926224728591646995587481587725562299028770310926503245247774621651354056536048582433693863592114244966829973199034760777045661294682069078160184756338000550828223058999464684816847960078763597268149210718933575153171976705048245324486938720762234901555719280769793866482965540704496679327673305829095076686288856923604319657863635826700650201238262216232276207469717918702153733926424260239808330435153126686373502052931543383519983278726612793615041621848524447018933848028741527274402504053730192080703309802122453536238799275045946868630383288874573621748978874015886704024007325124754412064920785205634440850958325234525659282604518602062738531104344032140129532297736795810925186136078782578171998086803187505748614629244449027827190751183536646640035758930119484686549942256361198808935821304112496122869660842442709329381159723903509798251397684505486363451328272998882245212665303948742542654639299876514358666454210095386632794289327382490823782166317650859543357563716696201386019637769465512081232161831008365859441997082607251022847526682359241773853344733290546650193557293734511697612323370316985154860511780428788979961983591876052511694731093215458213333891336366604846294456152217116306107517964764535471991032174839982848846103947145516580594814084620399017010621393766365166548097351972467438222712374129335324503860717131379033093297155378064757931081180991272140714261433011302598868675976145167686470395668826906128857096779850492820285333199958223525313177413058178762303782768362041462807687592329902959745739934308313287341794755710953517651848953647903423367803137634239919725273961641850036917904234233010854941214628704114946167727733076911815941118726179430411879026666713006869502193254852625077180512666574317687988863726231146315228212764752504113934782174775705940009966306380346813857324801757854650374559940601576753475570359984466133203460251773770882649868199713105676326086562784870624745529717082493188255112679180812055968600694308733237008029163673297147675145612856068740110929389405088397056351799444377929699460581984154412411246685384344496168701805440831466194167937642173711781529572667641235114578824113401095790284136643094368966731451765150618972704606589008210645126581654208239521084249989855072712529753926463506069453663524047796155646341589519321576486770922275771833466936367551293452911591714483746274394577361771127051568127105473049197974716869100168005466680151217990519566721819648600951868879658411024370772388934163485030367261616389538729899199277928824868609288786590801450778776642153982767292713488132371986142808706924879005691163701650493658808661253299457490524688359292555857450621615730540292976105586784188464709682948088985620643781314555791108637991983884291158057356271268079193331565453508854704636349930640635119794778120989370349660247137184260606572595663790542916097021957982492398837069690073312163806734745975473881885488404726209814044436327135939252747047886551126337896953533075972526446535092331623620212978123924170146536848536914210177226898793959243663813044321725741554965155202586129436928184494035398106955982745876677777216271566591649651553559206140358959531864909922435201292017709156020087636481564666979478995638111477001129692084148487339586835566387355795426105199281404872007496456605010735783505448759229906942899881409384917738121567993908077064221096529642104683677382894957405189820896771402771166808058125846965627408625611009243581633376755877773536518504659446597760107026517188828911102885199403042248445932642653372187627493348686154841432013219963715214105954320767434858953066241424744808377916434328343544550123160513148759580240106730585200171164095739866244150520608428288341027895318869581182509043414573815522753115390288102868953238361161784619468464771905912555030397676546271945562288794357424435303663190215897551286489213010473762937036615934646713695948198683926801729473109821281289249172372372266298877893316254461554880797480695152497625938343175506579473886900371397091046022814411801772017531042553473439552668422613384520191481518568786515917541305315919198847262686159128823414161578209810903638164082874370218152705129547282702446229672567004595294869331431706899490854432359004999843533999676150114824305675319464680123610394832661770536995030308452379555919785788931389787026274410797853039136386708569704072392693882443287157822959571267185960205905206160563280145028548103221635576477853730562455749294709773271551072339895951806713868822997821290866701964957481427201325424845972337798015380455330547756962184548518520648778052898954377656602154801844713603665539364199305493974892934044215619530722735903928149998258716361193665750664760539782488331480874144595716358576716078942259926581515193218059023491363524064134138624120712585881720806294474207865456209349409391678258289298779852419724329801149194843114835788899500846134975220104722259563139304589996090036252916208158087450877541046432511521796550391642589366835075887094391933930360113633099709689401086075331487404301313937836994247710756329257256166064561104965664967743131342432156365994034213186380121951475446088802006738709294937098526985167734888085248915369702671840459648111590472718906921472426347343070804735370763048124278398666876302034758331205395579899356359578687050142792605863698632830600340311930570523629969977855672712477506968714981422934719703813428460651287756071997532394897779510192796221911614673317062457117251584949822345409164873430769988946568541959809169965559118397204983531350819755628861009799122625553931552495621763088141746330516066441898886483493610255335428851681522351676535166672186106869607177316642987778495572875348240668463395235077560020560470670756379643550389782703264261495896563449067243165859645961995253776911888832339987098195460368500295833710334966841890693988417313122069932312407454450414512554272490787568509359842731436205249536908815534862406604136612290374760568086504569450419113660517396726361193408938143975426352872197559633723127642371366506648742613384227864951310424997399630477479523618557495036806210782935153504803693422564094412224506819580614274039422741210001625761103467277127705971273693797566407866743757296566611398771501543410630731646478542578270474172231781735195026210722816021656006061960608826605812165942408859332416720705135377466027893209306104386342012634618842238799094517937779441506075063529428962268327474545989687780658063854412107410342066735540821624347365296754231358786264321176103136284343440779339839252196238775487141414195614109094388583382880903505178395051634898126603371552441068000549462370495438929361262925072616748052758771411978724661449872175244184418851307415838721702576769291980221460746523084389764295089915253584394531397840874161069182880715738024491165773181171053271158569616236001951330610637590036614114332159931184111519647821691132763878926346664772687538209246416595117870949213825911429947653357915260681607877512389748790281980957008598096434192821635427836866262807902531269956953318182618059938182166283919706227693706457710076111936620098209499684511824566292958356166270563717935284748238303007612240750295312159425679032609246814669376734973359772359567050938931545748836688580474441911966941875915689775459119357671539187229796829403678258711673541750206976684593515841024065507165747302915947672544284044056248090633769350730998264558214310704412206899003869592442000740923060134205221392910278945780166468575167261376484281935418782976858005129978206744150543120333456190899617415378393779117883092580097718118765577130648263501347814033955823418162004021387975801766474241096787227191795815000150445879564128430473986842679113144263390660010713225866129510758345827874993089857158307392071109108564828787745467389723527365985677315877956434026593710318272464779981115587128194089590739461023838671197304954233880122667981240174320678565229137887390102381136172451368397808897824247704490123037897013513596733101105269400223752422384464391263354665653617477622132977887467411185285017261408811902811664973846439939662413163103471797006304153169263138782947606565698731398422559573727629000995649477181671916846037005723083979463638123721334821101241191414970441217019396019010086546140578316605434646044050097106645721951260920237972014322373328286377838932850107769258674898914660063850637047011105483922060883905868057236045362201657117876466360522918313464493034351693641304169491301743474054209392162428297100146432901245745206272041652931683700883511970776612143685146744043383766409965502800292791756971301952845451682170369598068318159677774184632601266995979704406811007480232083776008175346222837140135631639748532510051481868251903560919655474238218935403413669232312254584473301381897496651096314802333993269262596177943215946940880586121901716189597996868688654317144701615803446877825625040506755997908624933632174739591970159185500820538299406340427667282044351055596128440200353394459193580332630415486978927962966390707079332809840119596468084113021034220202209375835749510621974235940005319893260310233230921628103357119119453586193394669256071248054839184257603746128103137210005084348849042975584017750433451655196200541317507862865007599434626144508206102344785316963227309516594249170744489692081749950699701262447647593902357628173109454188756504747809444583605326085134681503535690358023054505468434556082697032123374705726204085792404371537100639981420972383810857984850132698551837096600989293049659493919246792367024277311889444347305109986989381185423296475159304688226293488247263441355277665127374268424991339979203372612496971362447133845025659280107316455239657875846248050136105578470261709522100083766789339158121207478307022955172452676833947423873403222339567368809795536884651204793887718588508533262202345729134738095159829780444077641110308660397042812238931080053722656563483851466914305560207263674160300455723525812401876271721888530340750284916575545089847020305773031589569655372539367493738783068970987340580615816679181041109955050347714392356964219462382206179067542364374895676010767634524813664528503792772027072631120851958254439871101563966363121534761046818705439735535099956235554341751066803115948138779699677560576605394000175891999226718076171981632894294398883136156445720691338772910492921019931091466905974474723649876005819684962440031267402090074408909349018464090820942726220025053715284837692645625416514542429171117341898282119217097027969934881137817449344715710207620594574012734840316322489308971174060854752680481692246673464696082818401438385182935058361292561240914109369578563791671070253241726053754837297748518825614469063320851925085109064662258529925780641917263157980745580365723786911523798721322680681775638276915768427526179740786150203560158869103602774332386176380423269363273435342517466885592081660775545100235881255368546056536764203999015961727291544605431313956052319534020480419113748065147108874820397586293187996172743650176899480776293670733291753549301323939886574968017916590284104067296293409431230017350876755280129621559567914806307503909637271180625511959585641654173092711150267363820898323622250613157447895630806675791667373414449302020087575744545561041243247892668574406163954710213384033979244204590666386722887400334893495779355239843380746406142850866057147813118271051372798549586413558721624488910201639510042244297466339434278717396272621865065585087606435582942431325345301831952003634092061277553030711977965494598589561564746491203562426283784598144933898220668383994992448632438609831034126965817408051917684700375998201778923109881119883972249810230090444007004910300838876636743454771152779130470278160573442851835676264510913292985097684557349721143705735728017763264647149438400116430624755728200236346440347002473695704390202186952425087820480580698006794410148104769068566686537021893047000976706246886080838322574811457664936408046888446555120635433738415899270078568609805080498890604360587467971269126979213824291456807767381366305976097134041261182530655643788960005633180331605478916517873163934041493559673970983153305512640022647074703579988658655803246106989926453691080170635467102885504143818984408137598482911907567585081818717912121720146221208518579044993051086552595372356574520322216397102639527612849398966041528759299698577791506984929620930085507900523473800294451177349432467462818163867814957971798958240279598784738792938276084188427208735360731000324691710235853501073049414789819357679128526877553104763677654194126253674423769553511096371345117905739210972370650818359258452445080325983818235365751996062536889300111018676062422271419705320495655378148599537643234788977966409902366082300286912568472888756141232184953144222296514949633953178751808399673473842363488348505802241546984214466513755338678632940303203255846110669821120728220438897896488926472449067787739032806660833778555182160849302559576263759222827081329355836277904841630461978310118847222849281665172311852845587598042725941356289009431424121778780047675373589466651749078888518716039756794625090998293661400544853029121209240633521735360601097903257186487591710689957411070608922898113885388213681184331830066873533165877206518755572475065603467185147934191142884896627220439431882756795237231728151901242441636147308404714397316744579846771475887192213587549411629389284929091912582981917483047574751146385346310226307359302665629288848222033234519741737277706038449339442806992836432121342725037235746124029036526217604139895190053647341724094723485645537385625013778596854892165132868843831241933313718020763502700674745497211312441398597143111447854795777279053770777675223083539311537159673296294352321764033669673410896969895812911229847018089673711290102357123975656880540891561351146916252509701369974424343944962051487958983401835771558181422995169235519934520255342183583138658501593153049359851197570478835103884956820005335384477863886344620869886144257949195997872736886345142644525267202579843104720790011202951408801549853922389961364613637630080368375724255895213408381112134935322868817604152053049735549391784947220769978294472032611807257247436814679003560376105102189270193542992537184839380127283393251893524343451987647938755203810872230270546641574615362065215541969154017967741462946527463668697652010400096911983727141174069421160793938345044253398573757013138850701305696654135240369503656970745622511075054700525298579613172586109644436467192253452893953628155530856557429561874845183212464601917514873743327665262802964323846811383724167661261940962224870194469628518476991362106315679650506717230057508136328537359645986513447085484102286719985784989828276727190638233969760791117375354281208003109900086234949440673542086490085879028635722315868788776646719499271062680581458507544393481412360034143755986640596509014142465885764434723195682739274451100826446845127266842853305805763506334371546106395031606167383322301753892946330166737100328705097254474157458397818987696496522619937164381191974236605124801342410358168124708762830902835688408907866297915525885510142650598901753458686381923504241085680457620177854196489580969140472724428611786660780335632218044689337309269136512405489517764637753633735005872842961781680264117853926089873753693911360788730992439811101841586195148961413676889603783151408565441124757673168120597431122198479753462262470720234156004212729281017665230627711400668992106731909538462677974071441719264549410577222882468650654625536194481730899402871252301552473099429632075902958933063086925405232631831536683906918843594275125595874370231412642862270094353756212606901891058986081608347984908449660919010381048029571100041497328215939176731900913094482862287103430906495954720717019156704268326214357961568619685226026542802975992926955202017080593233713457444876402171965409872013038971458903580331493543429550991132403183697173729378050435732728634359052577478809916738478602394354653752007138573442011827186730297317828359997319331225799377393085949215196965299680810756106820014187435315892742046813435950564937184788495725967736296954308860456936868774481154656943853274230468605467846211465529873661617544094371312109895631386130296300435106466369612438793503572179559624019350045237032372449170377451463714986416071755172819304961693605453723510385709957323647658136083589151824430784082616086344830463932789670241723582766224894502295422591965388611511920547503547119689784357108105903522083350495519720716853437558021806829115397878699581216596508629945226778467943033180234381606938628403532041148168847690606658580959824287886286337412333088062604787640827046415742826596421512539889801786232683361798261531805239131707685918757509628078449914731808274608461575957565334556369857366958083417310084461186302828130771379290605859612095285795053758258731387934787306957152084642159894677609754395501751362076342754865669810589434363729705769038506036749991048834393291109066368599869512945244720680672790781917240317775413513708713506632559537914253856981302174168183941243328105216334546646119627910450604856342744364981535452638471357165246338536125830882463539263262098787812163467430369384414105500185939079437034025732232060561178909349536514743493303070620139974652381707210438036314597321833609527763611451284150755155743664482007472608670067043684990043876648909379741202567855377002602488189591281698605935121049721403982620017089186287002739666134890597495136616480788718810215848369162190375463343453510173817493045580952595981090490467381035734094479282825524530104116159065999057552503501344177183704796348133533690508759459391488437089209540105459830457187823571401718383659870225679195033089829898313962832501203034882200893488117819199383958944545170368529565884412000291352704350406911028008540835922296146980188102837452177832217978906837281878251467723497645557813768079223136128094579027361367123115012289106235964669361352262571472297854290876977097608782735262955991061701705243388956312429296796788396986245670709349750306427455972715102242996338856968223439044293341853897925737071269545540078989638310243422286386113803956060723576470433484079811999387930526496266892055614811283409788596087471295425269989076851761549749649936181668200885083741236521549323893671120506298292316107627624524211468338037555480126893052747245567297264111251264785450407395461382873803487275424593948208219532524461200953873219681247276073383703547119393686974206897363003926903728748014209355173916502087551452525180794207548048024590748491388825296317725237199828278988545718769395940044691788095424334884136458209967469577196401669073724539056661800221702014765944656953010304615836050085658482438801494800997935472900684557478180613634740783902916513367560636807064907387518276325131197750133773557794957129944943415689531711201900720291654255201918048823066806122670994206589506361921075065785629968286464451063489439848650864946388894355275915252918201768763157832952974991965075842471893736883438546100361364674638903756564594456661693664158833431069547454984606094599079716991866961530305035358834047998498379217044672265173774376892767013398793873757125977361277807304388720741012428344713641962205655222986788210856204264948603375623499537031330544879570621771542819520530251350397289905141396043756995935137909686589247116490031633134228894259430699266353224664471517152913465682471754266180577168416882206948698886302094030082904313326092525032992018625670647409449482933944555360724951567156794155596430927638604802255829849983104103121798364796065187887480768344673827133882518801279398399774728515711839507412884809105331904474445973036111545372593675807624933476350796660639585639862137663732651064099710818672927866450141138688197134051974691803455707100134323816501507946875388161798935823671808796250143837059367554169527373429485536699778817717157687749713399595627801621140865565751672831956964248187747674710724488066279457076083381351113665133829554575286102817379157672714910522016626302289012381353041018763055893207237934535601954930813378488459504871415613106867404621146856198888822550311459722474270699579301807070122055738753656756764849122934426954381450303951225475989428920907752732367557434399210317155917747019159422723908540349582603563586967229194052571802064392639186988061421428367159301656963205405650112090053144098387132354278735626759833088238096575734761065757752929908953530264561195766580410510343063058743775349001435131656097498885901737655173297164477161407261243179259975946827731921108152952268211291146723212789063105916697963728791689383418142271442956396887109883773668938752137222678060916854546041243230397031800471791158122984564428271962951791488639735360918819748571028121699047459225533551001859379315432258973774312233325241499216311873884605777394429258547696453431894648679368382834566984329375221582285958322578458881548444829437120195838167061174833804142718295759051984059316898242397608539217171910406042631998204966366546834665590665283559919226506261126040222448931362852903777759622047526187016757383633707494915489630282810173695226348510387867190800632552952002247824656525268213570095180896519500890647787151258492290778961720442798410560166012305229950958197971063545781627982216286797391642973946488131399635872428233621837165285511566455527024301121703975458829001934535399134186667361217932640141097824050961805262909380073491001410731722009960920721301697965216606895854223723408842335243704347376093213814689820457729950283966795876969332718956843341289990815715953642931477228578435145512546478497687929398465895298755804293226825620093099534180997011348494475457591786246046690333975848038282288580648440088435493209695186131293429670023368067898931649416582764619723114786582420027231722538143833780215327397074816607225675382632401942770993660062623365107774008027138008975390707568344839773115384652058935619913224421790305661096057459270270175768986509918059472142614613967747604697745986687399571731969330445959851955069163077410564780840679164513473329804628183307799249709534256315615910557730813762205690573718524025865510022434102705183795978850977805126071877331383070187482581372074185219320047659537448991508668513512602207264739223316266186971927074849784925743447053656876455967607025019567572246131422813863242739856556385447597327704686323622281736981909141163271330398853774002305508807779444164883696179935431544566416747432511681006916495841347589951819063608716346394546623528893343987320003256113456460615975942530470018698129334120281831213067388013340667616702741063330811491554356721625808079250114226576254532592295300458335302085678434680759647571077665869589103346842374226416141694616300922165422465293356447784611130672192288301020759134990418186206942924996314704677372490917193481552343108666103585216055742814326585089306826304757788977359879220158446264189534019684071172964173112891643305560914948502124353250689687809490587064639951376009912670281634552063818085737008357062379910527232777117837162629150396895186808176048927950397283664022160013210745810951824661424177982281928866617153999968461465601017789984247644887863812009031201589198613965509537942798503491899700360456395570786733190635478913886067625102669996732215744383319272969008496937586523372406748773042535651590654346114138487907405183185673336503148561088970927197509425878418238076432525550989641731404547240400290596087172669996668224069510392235457491149321144190788771484634536188108969101165962934826108935035315696040098330813264430575596715298005322644447570660025627966152988524164069449093618564542667212830245144477963251648412108853705747884158645152527931238499358738554317858732115492765779786761586631480531022324455931019240871171736132648447494845934719861301052206208634703154216041260091347443442010350952420060848339783992310535808682355668982842791988893583896118678828851320477619956432124848582159686540009183464768270158860595248249740273572357470951265156367685958637829670824348257996199244495746009162708919282452391729746677537348324643758703345441548734600790765477461202216352006776140991310746525298434113652781579982792272703454279663109962811161136371521596165451058586509663439010330462438313343645693530649163994610793306721093082740834363746122807771185004201375913050065659946843489064998437384133979010296408504661818198953817205527326340411530585283029780760005872149806342865492965935999952447680421906952213572681247754178060875009566917383014239229805812054634538870089631533301034149019099606363295931248555486197609763296174820277527967560568625625355341944625924600117464594680224375434255714657546361575345477924003873117655761417560519015726684014665694386877449801780598656088205664666303727082554318819806492054821510567268035907379970163160582277549334987887431862687790981022779522785470200013210014596646111728823094868345251313447090736549525072916377892979791125474993908788513219539915448748516674247039390285629767444066812047919789741821028390716736098132620927838694085839373017579357998061705874710532684716661661614387773252325277300532736042988932696975977298354927389749047295143078025882397398171311313960143477897900709150555364633287795237025365350087285353065988846513273773809608866784197273302197651310259663378992979187254189725584538132423047244410527619369598096861939472994512057690811911223255602165114462684890992068996584581120095197152623077558460697014626943111974919923817710570906808787627563046359197727806499461454629272154407668151970913155584329609419963104734200820552023529121599183063143576662608777805621772579371763034260207575511723720777252573852796029407490738815637949602427453626581370731802163905654313787884305416259288414129153213288519377991143058771913318623144973662157543891998582535760815772345209613058009441079179248295188645172652672250333935602348952740105094863155277549599482630340820754366953732653807673480363456799962611209795138331826902353384866733162490807883840090638054033446513609088766200480068710127396260923542312236822016732092339973593444712064949697056339542525448388450963417273454266710660940000494220928633326708444355103176750859064472584627578813342641313812975256595557378812534430555953953001319710793013969186580749411845341589804196238528535029520133584604690054442406593205142925102076618940256277674911792176407489020949891661681910925083816570214058059031091189272058992338602432032701507976128329669348839146846186441226233927989815950843358772316099913968595252339787760016194615773741345471074402670302189030454850721841512300960682371714406143412779947433530515859776656885578107433341179893693253772102305558241989852085441403528476685768120328008311996969490575441445938201465807226050079035464975749406023072077377537844717029338125102886191593182201441714210768185432977776618439709924196781444903389301594269847157028716861357616084520516577779134519297229823171997991709795267663011075534289942572058156023199855483806810668214459076527403095462813616618771221717499049198717805264701815358691777084632669759847924673121911836835106119082680921443966142847500941472363729661584520378840134868751321079626329134793782719120877588575587625422821468457696565646537794993517883499760918314999068471067428035619299836148790070053973225835816273707492701231808330859137537100560590020121743578176675041854499023415596013657557762460318191334630823748171227142254677952813593799532177105891727105912279506374043295652737560115147197692324978212307626514688698131930869952651035161219569556163615021989426097521790416903870900621805135734745646688786607864719127104741771669218588433769197295893563866853524871719129017761415099976768361082816552107972258662625831710406770633114861234466348447596119528787891820730201810605197831627707379549030771156046246911818655724994244185402087018283457150703061334099237984725945816894130856084283939885603828714983701412266094811627024380523163229971955878024725991859490111023254954836196773900798570248647134542493351715016811028597995242202268547368793993120770628486713500566902111089529941183999822826274532905007035475291666498027316056165886394046392346582979138407276971814176185293925742367414875033055001976243040120671758380704860339908559978341227646181161490823884745866868304198423463471294889824541148093025325336960758692738732509259164542515172076307583677596013080533774435918249167643928899149640829255540652278394992213052281777100123540840585603451992148640860006686321065545343913677909385568570120562269185361163392846170971589794530051644333053429272700910990036079326888942746938801211990862433525258967467747162719404913793017766392106376120745109501907386012097692922069762854411830082524452372617483266971692711670602506186171694377809839154680237798662540689941637164111589369323556198160113808227813114233023981537619506293214968638044228616801289245678369530557707207713220227227480799590756901783705943770649201053179740254414680625951244056938232186748986224418878417571000797705574715404973458574917498393036827132169273342674894432796117769907432171607361552170474973876897000914605277812921834519466632039409916801002060305143058861179418646888664690557984589236778754580792351244294641587599403672109188074841995466763624617032490781525667954128620668906321545328171572797623807983316495364092383497261661630758551810786188455395099193152526041360005364203649266431069036956148337751318538579291305891957199836224043080556852788886604694504284248361489961118786512580298323154282266491846107485773968947568707236165886644299053194458687981680188542331551381285489600813157914562147154454546623018360470710223635773197175236379148212975838126154072540646478331688009293281964444577192205753966063743958898055811218229922872652984050398342597647706995482135216089152655070095536487551406724216298846054040565421124273771173957673125763016235949168458469886115476940578526095910401326911089755060288885663498578457839820089503151274030455197391657269855595816849799789485714025457460217991385294304543047195989501278254682826236730943123697270739012468212103272398596603868629858930772082502127997674465737237466412980733600449167992467526156281766918974352459979027145447653140564594254727809440646129253167886832951525446025779830745591664760478351004391029000064992482874195582626112344722331167443947525964812242375790600366036692619680842597346549366446553587647098879822268309351746765027536060379086949624352291673995502363585058045019640327025077950242779642627665675886707574988363993991592400472174143917928521795700906876016961356267923502825701978380297260864576138721907744170165929210902762562629187134980633521983152499854217444158684582044826090865026260874502732043889022999432596567620170629034004957265724320019483808151152550470990824548591031582130528688267254923015111797975884747668618140875602978468985244338733270478791708637034336735575796384723280621967323281329089631077751945252969829873268188030537897066103788183705212854863506925775948808766452728946123108522410969197486430383345727626018512842995021145114596880562317263588740521763717924216905212577787793719159559700506646716734582182374364122404260356705833597561550056840407520846428235968790998644799111936256393682272751263870131754398133329325128145991662969846468534262488616573536734816211698469360540840946757947181740638002146868212650948156784699562204074221733125687961109721400188711882899506062548362747007452567155603650873348144388205305819813533281321407309985238016476493843122840997236188956070430614305041098427117131603405468486829950229290443366140067186146341519763661549960189807730778565773302763793466820196514877169118375475203069586047235727727099742588605691843215235627591260144696711809725515057421789625333435434774375723201791559178378343997300932365349260595331936595376958348818292512936113932973359427256512925730474977468549719584989382466214752750185485931150319853215208696146494103407590584024515977119524669648617826926065179212352903307724027448496269173267658573460075787768450427182329819339386969696100111177570180807066014006042209195823208080395478094092779270973458271021618096345023303549293845010068984161419730507335850552051316633111490820442937859323481508817637119492740467021627600890452192233562872257183915537740882358612061165473448911099374634423458115864088424443235389074696574843940443584259488478349060216548635708889237033253433791564265606480994511233418974125338328325105031404450057891272769950036144524782986471823999510916748926241997983836473644188780154168992799752248141780825655141272066612835432326072404045429793125529969538604583091553187550214284093714516844971318263292743976836810378001602814668008199713801335726813864225075852161775765910044155961880259767112590410135791672022773509990425016871777447819152400694817252109061259212897301347350085287888667235766936499562407597411431258592351667423691788480246270116673663742918323994482919965750809428610987744960483831850947125880555593396129807624042622766412884392227153095522628901841522221737938829844725855221707153123007006068459841780460213705695412271558653694104338918912550932770718468938016570370524377641214622392374101779446521153338905498030194314355697386797431037711811248718083498411162392257708740566915218537038783277061071753203332883205684567328024354690896043743027447097767087188189320426563005083546642543299701012761943813330470197684370738750165176014171144816527674603750559451109101139534111708401199056833926553748681065788819873219491735153500351428764499763025055810629824319309678649353478811451794955611072566443472937658352635514361423050374236662254565796030310919674012355028319472605171362694897047339861710864166040614046183361118713147260389451099623557168837317879780096879830053012637921221037421654698572166281374214658632979741882361033100134361246759795331412708551975259956709576937494706748569477183464315133621865111674550675704448882519252125177754738556164459660414241935165097926506562651659356227029992698039884279911988313122323438685692428922384161233644273799189247966379073165084524823296528564442048930655681828475509177323364378358994253717458371402229234205359946881381266426688351959476884263558558592274630444698410274624877886280558741948252535499263614454717312642255378820324526311994980007133330276440643988021733200999840809311254196501245100881895964744631638902072341478647220228443638185861997234672480181508248646861481833579496369837628335908064631490706639602691277879018274944615738919890444017623832824856182100057158327004395114142472321841105907673755894273048879521151915300558844833963633117547473719807557955845683161706751872610050308818939673567713743231850936325239228297166873969673297140397606364588853322913617875876314521405780156135797716325892197171554947225315507208516763918581978320921665382186971203088663929529530979531588828057375952543655769083977715669563699663311032393993678402793637712220514576441376385976352777837340150449032937109028443090975512482199111881865188497697011285953714765893302663771760358949003381909223293911600997672851856821945858137906736914603631222942516370995876424655201558236526762396590565999371097073922796211354041267303337793321453526195362900305539756269724311505474392634825404145730617414223048979248882115615531830469007231466959089187380805890332010090185809199869595319693274599951417603552668514379430466318705455813512361551280959878789990661687204315518726191246103708660094543538380500552886412573760346873586958972769836511246639240415479011759221621079531584044132232361261511198639124195309041100164441938632477428043800766978214451674087730916208464879697425021256236652805790463828688113650778787768360412597803003734555603193642541814956887625563746186020609524385130198386739398629076767671618547648734674215433198021297470957711664387043599696102773939357489050751905354019291362489028261040463583500194962884157836001220151854057620827325574081196826946732407521359318681768077432537730086468269447671302130652522164931656353190404419340063095420796310955700442210512152603860328017143648108463550689200692204971753508526234759261458895219944662725424100480233295711952000177090406573796038687721996137188315116128363107827617789492004327917680358520781922341221018355240621803205111136065518007382308556134901716615523528418723988537129718426809199593714126820497853100571100510553059134780990701998338789672506836178041859400918632170664296958419815212578974476539758926889359991683346679261766627419110594750192612494036517660014462179706875042432771301908111612589792337022893168000798694518654421395238533373737798438601085611938486305267246702218240930025773457709597448491768365728084167943579991256111619539544462117051397616240947602088965276803657153905532625574621205376778872370634932654312775514043662776716195174904259986508498782735483425221101626193985352848362381123625762662817758521424047913126609943024507674192224832014109393791420033028373591196771725023076568214417768129010403136187989091068084022884981431548537373173463605825726178726685882253553912482727659237867076887458273185500146248864174295209020689875477877676915019145192714168698299008223805635888961149155412915654761816688948720263664700027819955303139293547319896085872699512194943249775630155099161097425056775995582521149253783388305127397563487026227627464446273737932024691833732262712723582815373098461948461081501852121830149534288076906906888423442417120157282291114197742601924743384719467861849835816508052374698147776284194423098887282424712948499532841172209310920677565695913315443249488003752388314197580348840739218344376106480473725317553222195603851108316855716818364286130805725104087159222026804882012909051717623594563344506926854619294470528697137060725183060337065643461698662552649399447071081065685915763802575940408657795019535657800659344827471931495350545458461932458126362418365479390786626098829696796485171802440942879129398683939358196704465061924108671597899661216331476162387868054538591353458961841591367690573101559492345234973284936127438333845499323809158578159663377238181945989298524844145038397742845684281226970471562702434715348618521776584962356969898122143057490077737911582750956039356510766100457159891781557022002446337547890801935824779918051518692969484936226055185753437454019750911492598955504449120852936977526411031841133523509246665910254167883176636085620142332759960091312254517348830358919527842539903134023764501743101761516384509255712586647275423891410168407833300029991617008427574993415570669436827695712763599238022792153867788158288058438970846254053181096879615849117473004824685583077859690968502010921654730286361638506837500167585254711084128245744092499695017362490418711734892685423682499051686104491192083696107451907325573327541344232703827468419105475473656516473598019885837201881304202601093078323538657214204845688329639855081434856113592858419545302004241151783391262339663268678960376672182167000466451349348002488329011725237593142006478105243857937619847738213747070684841899727360819264064553904334941961200518387149321834934604334649471601065986676983178314286588904977559512641147493384747859245051585416562497915515781764110510693438026521326145643123027210573412491209900269124717160912409090273291131770756386193951561036961544210297022903573643459402174121051245858263805404248624040522765005935612045159664404843428719356203969124550591181374338635168708779329010486583137811660169854083752291205818762513217405072409838607811384405971321774242842124562563274520013219368686979104844692524289941631766813476540887040878053859994636554461507412998587262683074818628803679905567245208075925139599987833917227230925837889197535035626192113457749950697035002702517729816072095979800923286873678778897437329529421173839186414115029937956557246039688182313039587503369988856197213594819900084314996850533139322894400746429392602786283501217705335438592705585448986212218080051591727949390845858931165285455598235958987794141323757682886393772754438817778892743467433980005177574954981172210735319686509595139492691495665462422657759239455369337627105485533663116344042127884880014658400267875972326662764815383622376011264441989686650260387905737562360231664377279387798653440817111562042475505203075732530010674243310520209766142412926316838598428300139193701746017496410035282084694913389795506725259247981064888904305877878843241040055091985913221484653834955146517876137407349041530445859594360492858263753332224069944974857456573681770005104715410361428006822361168246120693974371530231596515972439511225274607431465514484147184355576870273749282224874448963999918598674783859097900122628785523598294591513333045114389675406997618388537959123038991334212959317087625610078838828901074551588343106797418255795972843829275231414992072713368738191222065214219818881270540469599929362134656493214429591169366689646761898581234864460943479733924890032806254694528336401327045463373655849115301964303762719660925762494838610807605505469558159374938711003781294529599074061527034624378878099956294921374365973625772539237173551907443830585908654338982565622456810969935205823298933911929587074777853214481821810562319526022252518456680364006866421617748945333665679390142790404166784030470522542366903003757621734012901132692032068162737016928916767521286358220599982333656091324561798711263694560372480712614155225749894511753914839881243446985655745981383291481829969927217268651137363641357191878164370844576758976704189323776913957244914729740456380056403748406781429534986976720318418792911748363523259264540107135844605793789661745885075402180111392905061228120012504732376137839906886608301755893035124135218362363614530307284323855228182838032157360138828638840113517038240271545681044724950214467097183389170354625237854122322784611698775162196892882501766153850305701518510481312320007078696970689043509316266554843398982332391636671508337343475197905261836614704494766077413154149002695472979063293979383266599390532325014874407617765569791830668487232282703247187562886740318980598268672089812393027702990261998177127936622573363498816081528957482912510901027174177845475554352031480207662964686438685623720253650668606733543557563188715528146168465311559886216310279126098786056680945050035246072351080265154039295899786366629853183298540484230182293016776550388288851893920382207452353104197192271411819008609212983674077539295430060924657993146336745125172893103579920657377159774304375634095262225476086004530810076104630126161266438576033943245696656131093946131020545716563821583371519489152409241760166679314111530559517700183558747294959305959350993528784748517997429291396631833982659231402260897952923694866552394665523087621885130768045110174406030583558275254000889493170893997793558492906843853011862885756204561078079723842703510322492765501621022023577635121046882050589679875262553969115088569583011216324782360494741871474098416548310517228404893421317898472095002672479925330826033001110435841273179812844946647372335954733977093830068758391138196324831022448879402878100256943872554317284946144187644072256641336134911445977003531192810773219228950616910053162770738419727155595550728026639128711568753275585643500892825081838442270638041914667257243413778547044452188172354761111147128237419157960167278995762450077730482627671335498297520875535973036403321061900667977220238124479907615842529115364522749765629320026456083979807633704814300072323366510166770539469718847547456247314166372262971102625661267649420429361303930217711779103303911605966368004369860747371169301808165778847421093549295605855686320980730697544453957978112753693507718584261715041199323232806360792499457850747544661471895530240316953810597292954886917825136623621653474866101070763166584263864140962581353257001482697717197135313304277901739151436846018155825969407573943161484185956429555440055841429100612609926688108437039953464045890346286281571558437959555320350401721698779373493641199055081419686987385494941099303096715427272640361358897069473406850858679485078625423762535473089415350292832827898725778820601972982136934620184488481290602424796522645601114173200536460323550845594132903097600838002742347025951245172058852914183078744684049813860717328791205536045074879010689982822549166467025799284068991830654588710482380730176187524287036937683933216682826445323550011805170916347244398215433815077457713449082345633306212111056561995351206970959862354975014891314482882465836930654388550556636313849938895488747695338786538339381714945940131743220316892686521475948597906971964924775903731334908782502573201379626749963235294967496951724208053556214297995955465079672466655978329570643801686275976935761953296322378506450076339713056336308079364501789784936944266720526930833463732806059076151451470619600214847419404488071081345879732745071266817619135390873644702334641327022839699929072592899819564755898751275306898705054445380216876205195052973859502597764647628001918191677038773670479408317439249739856303789222589034511502302645210148673957844134419445738827554141241533480593185606705887552834688837976137912790876535528672441481940842546688125081153780981350995691657416063251064367821497453256399142858987654548632988367528434894053936997865191618623056410960028611129484581144214892758806417141954391074379831989002490985005701650079406880406651892849591310041291526325382643169575413438721566832944298638448730017119320162843259402167171724792542759876318262134566779398852881864263092462932754732490379807327573921727591289115178715195215519894795569770176152026021141045257243031670482342072353818467480990719992867473256671119784310156134763550150117239304384596014518883527224382527374251099999154718479560106499110784712238963250214743443149203069341399392038924540492742490775640544585998315840729142227909374537897375547634908770318941770304378931116525808170014106395766972056866920070428752394278442941990848756342917345766055689561669286296069309096469811710327567960758427473289868480961063925300782506327807601411453961443102632544749037620307646919107819985852077456486898939069986979012213689903208010554919036095159601196431055806831426744067048281136718420688111539067156166306345421731903058655950331757301476221030108316363487068255512551149585856784282632555801167762206564663489204254736298396362826474476986017678608823447503381352956213967939803845152698390750325350314506744321570415578720849327996762188923387582829761783518543123024007965278330525602323002802251921040671177158283089652112696618750140727177298421768120271283213581708254445447288025475720856893311737298730633550750595270836002671699226752904937696669164085138114986858021238504209498075292663432102820388332277778351454526411362810526500402471403874743572406187942842715691904204575805919624378288586261347841388286755437902335096357189923352047686925359813561201683054414845071170790539623472185113728373817937568985496525056744803259628185944139488614011139942228050060532739683876361905619721661737933011591963146042727998628957421319486482330225573202956592876161624247751754747923215013399075795905603103543006000477908742299579393222691072798829917375369520755659622440602213632833746072078274571107991226360485311479012410052580295041744753167268780709284473884234309399391926301824387933613154715172005499779267634545869081175188946772603152210227388299174068726085642379128094473868128209178563984885926701573848620274485088058138391072277216055596343055964671680048444613714839459586595528872081804078791073733945223564662596255441400958505197937064797969103552227357029880153801095195793097873688227967179579378332658621803313981895948335722040560922712797430116275419878258705929311789901139872710922100640764950702636913365124889998980929093167614838537219847101420127485847097148013191878563288675837512537303501996554833479221247958891409622669092853079590718927299200219492448400446507090315371175258864839543927008648545891704121716285742855685492920501991429735938556281382455164180679933202452376433746400776073797470655593740556947242657170139634552269723207120935447083141057841406419202111550177539912327008219565095512467314420109360322415262487872591108676166140814165629334352763329140837541673874429918420716938601982628064483094108300854787835124814700777824785246935150632649650797269933459127164543658676173551774852355222271348646832777147159370529357452245112084901583300277221364547380006941907690829358448494059839248435221718682929497078275062465735988148713773276436294860581712412676859395126828713932698946233574257660466552896842874255539561678334181999459324794051109199774179968113324040439640832240740367885619046252215980264229050254827915371042583641609037222764735339801675550259325842132747405804595536861884577051400657022244094907417529985459491354333175022855255394064025469431762364735967052210538342243100417372656151198804843488501316956465027322010981256037839764177947315001062599312930534712868696946776932186602700531833197929654520817073908591382391338494571224556222972487330467542793713320571412312429600422147949376164687929378508670063140870074972100409281700726229858757105719252996105023418499163785982382347996251904216664898671990466487356270940498242542376878188598392401198343393270260258955010776793576473069979180345447192241513787374730731582890839298325384658452257331030089571412740613314640218838576740231503151332202685360447118121994604478650098848827027987280422300650583282481228872976098989642462404577785909246816462840725487261306777571434650686638909496639260928818598292211812376040275615778151203207182386417162829609997909478829463508875988991581550406210532319846151580424727396930190056016523557421767070684593416182389762215311376454252482077693986098563124186306122075280201758462521579864026702936712734373721424411118942854199632242121093034044416224921785204791364164982634093841743178954097141329099388906145703565310009745501767073645947875561411569302629577719185411082703092202234110180743045028294845360715878100656432679372551597447990434608786375097574184489414885129656973231451086060962855314981070011577724887325430679670219890812076250297472575206883183895953332257323678582972603908321720240676091226711594761631131961101198615949027943799627272413674513835998882635074992974061105233461049103581424090107306353089497806767790577480135200336456975302047444447354777604219014860458879039075394108785083497261927369574125901311146153475682059953251659123369500149834248147327180801256828269206235763893153989921555588843248521105792765712598883070670524599525101693925060016020617294006302131586444160206063741431421160072262332336124777964429428836309518329872189543131814226670289732873886206785179356159725773764293094566895292825260047993853916492696652374286863359948346033461782034159513934207794192463182285113323980008406513454947605090641335856007131811840540030564792022601212968416139858852727197827976582062226230850733204882638374634439858942091511564290742623608727285540801378577686162463736726086875089877002273992949796634362349224034116152411434153254033780038792636884091108357278357107377616267562841093515429585071434124668949515552358497614242029326417873075456729781899995208091781523293036854748424295962716483245562501653435676805552694458840186548771341814598146217816450032991306787124080742164882363732446341974612717131407252884840591168187399976598672916349549578748195284952634269165410773336572293681764175604686830239574328266958599957733187320584384704191354660709982474779293576679767336552878911478818638619899965151335523948606431433672203416652905348371074463573202343272280919055962065261884459102935774838720179452809401744929767609249306721439439494088748085204704088404960136164441370322307363284737633071611734081803156736367626087718025651446561451772538209971389241546710145652151237555589546029285017310172536457378236897564028029842629387712284885330980213314334202029212461748881457819525219006302076294492173247787192478949821449141290398460593445754658818032655728446683259216613858296665098459162979541010161918168887459183054828854815401987930259447464211150395737152276613947966805446640248496918733546169385511329141526683494836239292157112564191618617066549734198044779495736522342636216880781969541766005494147866876389240036623730494710652093016147629894288363618269937059380033984904720179579390690215822111840715660648389256986076642811196689159092872015969361233004099731194126132458452615062010272743740797550209877050984788125794366780305353172514969468371273526481725008362763012878165395194310561175320980947748517146108185087383520685757291794812004484578243189947351850895628092014743889750986192582699876448923819079553432372808989364307949887145157379303650211104572262140690851621923934594336239309759541215518845101913312684917405775007619999450676637329504252572784938429304826842526636497820675541325794904729470513289411618684817878990683408252590487033936471636653847542065343033623755665683389328226274833265140904512380907535514708231998185325253287805982567924553021874511398681140532961945222062921220394725602891447636513009456869971820157339776161624986477540716626949842784998991783322671785803227582178050831211241485261496853462836172018441935471656930475192557874357902219034259500969967540783691746738322409946262798242290610035590937339830379464460197436610504633284839703160071062684331050390734185143510717968725657354444912413697525075505845895879424919830630117398886312026366320139775055752302956116808694042991654106217367975843548936598008445113967773581294372508583593235406962986941822576754372852570928592514400363533400035411482720566937505192167761690358255870428923856308062989496966943098472191653984778239259059233843018870806333902274912561613786173151842561678515133994629026440260398836444060716618085054005730354213372788612447181729187944476260574528388250123225172260489156980976257306211180287919421574712484234002314448959057625363949539546022104712872357343898546556406506054694877588815514421413911395482508970697774225457562134411971307932428518359255167693847513188407726433350698936822842290993366569705733164498059364404165137700903136268753408849332264877646725695659016014634969718252384269780726030052772242378457179020743411406564388393701459654766133980788422404455484006029104585744039882276751677069866894713497375925981819259244956806159289698239728771886734288249542268230839486384651099633658791353191115164711428959161343831054710062976548362158699205969155996411348051965140799628345292481661371858051279333371578498643193049248326515113614803045807695579756673184755262067747257568427006435766200861668065018697951622267824294051722078335212124360303272925429121656973970589864187216208039401834227019588131591608343951747165827619880552150450129690041415744071597518480670276993387881303309387860577689537990010788398057003100256090630577243245376043377128298204114303930405097339112676348784132355259543535946474341929588056727190560174934248036334771090276045629985234462472193226640480442304739899942768937305963666152009549014459231477815226936970741053013351734939009264927739315628452578515599632305102743856050202618533452839845010236097954523329707256055707678456886030628372588838650561290596158483154150946668383209620823195949640171789538206922138458442792159973692475455267999908042905919946078393134401441726667485915572103271689411602262931397397370249775475796425539324921047842776459671131190083184147267988890097050852194062226092617514643945086690360526763249715084350675063343789016441803038094235400358630693573337759162360225426173839464951985431346009818026932663677193271165319940977552267604861916683064548086766790711913639562590501556056235790948848519610742201485585297923624551776742892791545933620613316700073691043470740198678031556978948199175137329151164934629116399029518280011210937192748610403816392577795268562602562850847851050332138022791206247427052812574425881904426299221488417708385041729947023315455452701232266556506709338181662696355228273565870255499129800449085415815485713489763401880848354818684790438858585205380817245973149928709235730059848781998075366379262612186442492043523437729168109736943433195325688840877068438004940943091275989236651708128533827754532124210938783606112535974871902129808438587586180671855977484083374718895617627941063297953652089399909496158607043382017687230969471595125030397537825813854992599366298812473829463809433354525236160331980317169379498839369276231045468947068437607599433957311633626083182836011560309358553086586598474144115741974066385055471718772292645664345284302820516335696767376575655717446340968332082568845264224113025936013003225630590733148455137909065410372590660203479506242382664795519751613863026335537703366876784853380370122297765951304090286227804182765099801158756213069325762213336218898090953149618610205962365104986881939494384029312412758212700012998149767780076567517699488244786740975629864176702558377073472936565379492352155127095637032149387533824940993262808863975051633008571559915019740990099297898891182068917336612915893797326880449485055672231345358938544150243932651140715797195353820437555731828050776734606958385664784599457345059252315515950643249116916669531456994450365459425399880801583698352730465688655265656158533287158149669359533633981904957475403194243613277798293218685331634373492357037243550679187570566442140158820480810351465582789313166336935504979781354645714010148891377161015475584611834545798435372523012879179816235269222139914920478517547562921582017876840423109495666692967821819946604205722845616489621951510242778019930952120384231247878355963076481758979017112473083550666509199703086577032469581859591870651703772339743666079204233379657110767994321914941114745942200432928634469748766425719413818606851189536995716030231150004982065272605900094690618421252059625550986885616560258247057901578773435708206718817528207212695751850698592916949726909306542555945346117749891271687211715773440118007415663838936056369799226250928628131280962023393067245500616757337947739449422360754476474163709621297437482238642938724870063060641855381156071921429825728704061666787983834471545306563495495330509378225177253982390513410045137929887513512505880155588151905218026844611870712866594544059180791617101548992784994686108522801702232658504145223340456835867204705146434537074707048936391634374237688605634963793930080643934233496184529021521434714116403250398349986826020979503336534131011199403700130171101217080780978865562962614456322613345015537926818552128110374695252720633582835940359440864562934839726808265113611367734515164525182039784318403283821469543306930738483968462030691833790229412332313877460011500977371573035072713185314987850154617594513439910971824425013743241619000602236672639374566706384693038014450558470190500072182773370447603838034117180407973444596049161567731340888265262350536386641793975689435015718334665331677309309677750734736601690416397938773428560827411488963657505091882015381791121635314332983897996915364826360252260034831263711172148730248449054013065627295354091851704272436197812058829549556299241562580825086326809715250182702092579845217668845100732826473491053233761042830935345878208179825410643134299709279548562492179632899226221391620743336605563482472475040207769300689518990294203948361951967324230102457572796028855713217740793841743263395862916059402686440777875401189989915430604904028754749357137509378332488804055792001191199937095521185077053938239008418485386231237789394426551600336409228763793114581700834442163807337286507014282839928218579454715118453727066497066128208703168491121993952872357702382757602865468735638426994104798770381834300642092416414227619286969572494062646998240943227787324706690325734284122026886865001228931235772519777539224900892747098409405644239057672788926003276486786635491905049152973243290300533976940654100522355746070991835981597925655836286826288636018121487038979063598466970245144974369677712150713973769624052445846842260851760023687452475237651761273684887770615541635644572365405240520652468581647330677005773563499788948971518051866982806274105296518999840115596594733448654675645428783786473750055563571572806185001507076716555039585616064188619582615626910429662996214024546903848204206125064307369896320927706184979908694958350688649029081505585791910927652556672401497557389325440719776956011176962698538320759056079225703465886156152050243258286069084447859838897934776162893117914964686983498000839495199387426878222015272749257786983768711340563503000460279454072898175397689134775226382678753059664057848168169548103384331424352916661054635328259190259891556631341618725949477555694079272714901110293449884535415911986753865887760808085284325479877855616697034260253725978445352292737110793057926000830969409896116376150811823705641768992903149481118499193399070420190016447811400250736463159965874117522843451909708819318188926012959319756526780684414170152002142450967504577023675832416301442131274509940210333828859149620449122366280040922147573910342998136132262741776627605262428860871289083626702344537334514980249317643423630114511011713082157769541534813665274937773321741065397821107621892270895621203940483209362998780229267123213204779148830115624446715229558422908686855663983409921815217741073053920307099717620870632480110581130188097906742016316680063863335287224853626553914158318601269822104669598445359421761489181485792664745340527958288433024045619968387674199371006242281747934291950222287904943730664407140419352048750159656849916155283567752732542122498435369326855248496793960796172602114562197138935106312553244995630147311126043836320178656676799050615674304934566728914021791497652236490418628630264716309638564933882895684772391913071815777597640087716494399036126575853201405562203669550859541947688414616531387771077376573154630661065754610863067696811518915452575874516969497156424258588159211668999390731519620332467132275439184706136357800122167404991108093728122825184042828613393151888636243720375914696024712241210114125133155990061812017815111077682025760398922433840293567240716600996095562987553578378327259524774881948022910568034877749289265578041358270896423180150518152955749042954319695613493430183107707309474713135960121694035231525131810026940888801556425909152173825702192312624711884030861118927127513877931211560757282978006283633064521452237998711506331385479249614614851021819529527035280512068034741672414772875584560704305184300339144656014549085786852380276556374593907231567309687517235860540335111898283862569994478310862648087605566620327763989544907606655198910491079312631817592108954735342887052776735639182852360552530945628936143707518013732229172294159438046208647270378358127644537336459437236036200082826976106246606906523115575313908764168408673736531677549354252485877740825929043296130258991567853885418757204882717255740815894280552283999192849940669163712679378012146314946848765169250584048200362596027501297976568805812854650441648485087178294589811941461745051173866892752560037779511695692111451753466850546221734026543408676818864601808748254672531547756017653077756824398733050251819342964645561267665811717530630255300491421605914262215584089276656506441779645402091618659377228544234603654964601296264995209312402266403346959254998050917967324870567481228699603165058557769565035959681118962896184606965076564927512983345355927368531320803269414699639589672866726105298123840100695972563743640901292564103341884333136682792674828536029807625840463530043736363439198800214421374501463335337545639946463057215513445393298022582821728093301899969249168149209210578995418215136019705453675860397279858568980309309775910129037426716879735677130438194933986042631011453048524777899484930491553102006481129636190508614618498306828549801621497511598344620935513868387788692443877965467940767896250801726748035972087114454124786309808541810970892479612096562646298638706570152854508985047716294235583051118143095847109950044664366415110344098068726430596340234114306900726992048772700642011205444086600491697986947625823712827293784615123027040111246178724783793825982782993149099817032157312370363167434381387114795540141186531126232719649375243908412740437410557542391477731418816266513382052664267607374522892480237395393819531625793277080244930061283264723176828743485258292853566347056760642142818224753397588946868094416032259850197464036353794263702262263452036344309102225168920039967192600926401951668445870437426847972333230258238572930915101512960959510911471971226911411420753013151012667293280891441415748758873819854784505460957351540128231018819371168602405193122884249395247138481121986097035819640311055170905596808051025034520499119466422371617325189318620193212967487370215816092490662799667265742855361371834015197800545609409326830252863670462458508061138798697144731160266112398728903876298540397547185656588495043561768291437680977968617133895902855286406696462615028605773991948791495740102013708303983529797744298424835734783989350159635596486005637127220490988213207565460481582699388924020239307255886723245189223518401738705129706265273109085754482080847004088108644091202630017107305209303972789659721280691324789947673908628762624176804612467920060150394759113680717016802145962261906207165526056988161083026762735319424486765039278920433135005184822529226060536561352742039600079323605492380607347414025283386949423803736223651681146559672117793429146934446606218654231230904537745161081561046918734383862197239703198252079815601476055436562620599882666447884120269933163828286550022443980732910164108926597250500728469897189756017940318650946564057644585005488578528081703578950422276310514135558008424071993840924829922092273293927218360068593727463196322561578003687581576342685333813193694120091288817049319960521022252086811134799815268678286865717425643210830202007864492698299035555650467259884627756447478773467362632629341093006030606467610970798483090807658557151564671680336159568808104618697268971578928120939388782489947448378679016433038360364307061408304607935482302653552356443984020725968315592470437574436937512759166761914995774942741017156558423025948029015121919924974957068486244977143775144597168784572993215247404643371941758471845493130316462299662736880738559855425606030802992552362688195444187717485444063233559362973076506453867962424507138469977231204239709674536645164960724781569366579985481375618099255693611170596457041006506268268107929933128338179611419867121258636741260825176426500856274625294168472947408730389488878195305013331760917331010809820370934561765452343632984774790466587584897388727260505710201546689313531836722788933715276885320470673295021984226802148937261476028586074820373316468274117249766250765371343732993006578400336393292194278344112667904175964433401033508810604538909467541600514282312505820725243668959235096570957144423971296403207269937789398444419004548951336397726706640771787745546063506217407957212031473827310644114886505633331074901060697004128133734802522994607162258650567917423039632024367054732604782485116743264617364295703847562292523074250955051919591981520482788829492543852772134384912833290214308505182339407406356350622299690654528493406898156658376745224452907145975720055416205534754902407072770657257737256045111226860444159011036612465914295874009174710516530636233217177802271532927169904726180640852898804994238851103068276938762596635776781800852714489770939715578580193084851658425908659273318763016801228604160559347211596165492496146156652091470462142384246994128150849528449952875775632376767635857387254530557669154498332441906843766298860607847069115648804788460764912209060643556543165678821847603399955760074540168958512643343374901358544464628753206536174648008627684552345461412043537558952317800919206529114308679179640743571958192698965992765440367307640444880935880196088336488830187698389691593632298610274359553125251006960026581310241702276055535233243851854264613521627320570727372739017676990659437019629107454974710842707054948573995720725266462294577352637871893948875162969018208865501042636338249860402176046826069413502149847094411974569001107285327297832118913382947234668592242836405841588112927369901151801157055671184161389214139858046763264097591372521031343871397697990506284260816946534900660966689426160750418475892100162031905744547285788853599334079715667260892545328658930933190354341214821335477254606994005013536936105114988169760142243695514760074104581084827107428368426677241246448159150787262309110458689547871813125943812113510489492362260074606459275005969399081765885940718832935360455505411329920744062398309424059217601226236265007982214091378289437658610997391207144597115185672900200883037291618096123316418052883603125824381106390887558592137312203574552649951796885847970455532132108968759099303338168214393696233453775718762878321719155721273609965809190745574867541126218299523470724035572409270267897417599326821631150778231738253663614487562345146668101727974239874663771596818785638381453729439085948323070348273339719003705380078065402739811663563751001470937759172755778344883318984648111469582503524678396133442832908087536723324226511707429833543301989576602016430076258836693099744286974307454477242253069044249909795437638108071187525050533228333606732949401746245544349563363460084595289806565958989996628091422130436759692460706853682562418347588727731984913293548139080623346039065205426750726854895913472013162947679839838732479356790696080201757458847869134949127272921355741426067270017893492820112679959296074153114146874178491669878284541317498522266027080110885479555345153617716386859766237191600333119675657941474819351596329778979537988116409200140291295923029801933031312556811945776239794682130496549063051869931980903054998824368827958027246378365275135678634280897882666115029084586563984574330196368120683595989655155056633946280526428616897042932973413124833845732165003605973090509955176596081183156655979132212034503135706937455413576957969901887939158569891078968168992265066913010628782834474941613840486118964027333165592496157854694111532580462101998498623129404055637606201235477130488232909944271246502712609912356984828258924023149069781162753368298987539682030124711855194658985856861866299098341041804080364557093549208559250036886827300589492347278221814995277738830272894321965917423027370656793667040169637882806980903189824907722829441402866958283057699937176207164867603738470039878158858976505003450266972130384373937510886952004906896623776453729550351932278497594147329371446943544511018921724703909447241693297122872261148377031026237555136206315402870121638247689645340614601237506879016409334590189654751747555538681612428666438111771969013433064810200709559549705100061893137509600969185150229353899906743130434075034399797034382680153537063430525487234402911351118323579340420585902598381441593742084498104244014913830304307511420220618756769260226941017096347718394121075737391117999891546720044845133497058039074208265783293741413906980865256969009432512173849499685248133338333904324260067108378859313614863560817018121974699295841197554024294378676961239459951463496181265595910412336135045068531146805963769304310013156391806874407219054110421719704115161710215552148274146081035957537318610059162545398058235858481720859932804844640914014920609501712882702674583851225200144377405915143355572152894248524383121682535977218612819738044823652443217965060126292151741259036056706414802036325244545178642572369510502475377641961825147135914540522605041187702975373764538933208424089889495514309637726763345246802551021670247476959190212487802341463877215755899058843598060726923502026406691198012816891671825550249018661957301864467005037753020857621657868438711278794428937896724538345022236140853337001758970300876131950183669675920039855168715837833748954796761616237501868164592245669793992613747378108459538950206372712336041900405143882102649314986141104220718886300363291748501113608733139389413925365020558308846863854558501476758331632645171243326820429590180022626771393732242896618421225767728868902732421188963509416182533307510956099953008397996585421643891422555159371598715312720146067404401783186968238550293464811256689960105485231283060899734540159732026666643400356699058090491274406849104269971334604753287870827507714116729625752811495026835767700620445225892233684279359084850916443005816398378989153981652452976743652235902326842599282355524571513571652417814138797304381251499399785568091913831170887793809325023315334759153530472236372800260052502834617283241893730277252376670344194384729811847426024296674932864356760460856446248588991391913171582324385378293912282814426145199617831807662526485644298806677411016075698381475670381299722484396552733610579613939660041878314110369311820819414730881897727124007230851475407125736095485005790612122711412309309798898681934292279769519986975070510251383843803536918592449727449780342005767196813184115791043216536699743748832597632206491288639109323483505472528860658746545656052463799322409898358308344818904088208636846814736231732405502238980593829361753871817562228247537954421020802431698151370246810854869283138456275411812433459339791452521648557122006092665801217472651783912629303928568394091240429709912632247535724141935990159287446598344266122385269520901948179119618821671051203764921234434551209403296810934816802816675485575122674814781303414286610322654699758457891388760300171161777859171504480009728691640252131166931872708394331390617287788067105495905857045778132896850554424379851950166974947192263376577291470772440714713611176496209658643296926504609998857035771409581005427532592438555822108339653134444855191651090385949314106596835035429659014646062967658234004693653417150114510078978291890256218261396969259695387119352364420379399281386258116175885176956741647624793763588110454085249863229616228120748500070769167631109138016041405814175149338502843294926946812838154090484279840695632199351922282543625956488723787377708061798163291792583864503162159107596596354147316148776510186308116579696834446292426025379230581273459596107355121180273018667007562402648157215471267056766853499435609832387727780438131761180735945683095532073341179582882928551636142373628019841299702107392109646564599657100602414781023408443287744800801336657629634108159222835012170230597479834676108065953711933756741440868950223620114816770187100162172052418300174466548085105282288216046785764636959718859330411648539439795825194475096900355760150058780980865857909179616005219903673401884854402489264757361643148035086678279583199372637888692301612723866180922519723801329852454657288957257274789611262899990641650870928528206384216291765103894625032163922465086950470967624083162986674131868110855237868245744832727004799608563742419373181677641483524727043126385123776073246390292562025188327012207355603967186704260005211994718179358488896136329732862876820261698891120301642416265428179557473414758361568294244152715090841454573362707268225068869240555579522395770205592163271798175593465581160959299177059841729594878232512475363431521877266489518518005754387069350332233986863122381358911072147570393781269632895553479179429294581334441946828688603369565217692164869561711064621262599045328544301947207253824754447978674326674455671418338598186568751483520134630962250825883383030294825333504934805577160819960676067810362380495729483352646383528946295602772658960592094241704760540163909992528756520435110431677457964399349623788939375000401486706189739419728376230107286751799621808255619047560258241876035166874961461651792338040512169023510594343276649280403421856820590559418742749089053820708595459978609138851772236441188638407994906762168849993635241795440305187279089923099295099455497040252265497012515770740714038552578702016106130563669011823496844938522538730302393326748524388116769012639564339568070756593673762584265225774691145550101003677526192757927281937266395296508239930871637561934549112687872013084413547394055182122274086320750879823184011410393365160172994585146530244752638818629078847728879291508907322962538400144656995548990386801790495389583453526229092106508811960967753642075125375091330811935124818089605068156383278589267334034097413898486853738334076399659204931382818142954342571771428662149688708523647262261356665857448516406202080675462439152635744671459044325046508651426192356668626363325879198243039271772704741607102986570075564450845065690926648854632289152956062856934688426737605596874932562955461347257190913620325320745111613922873323071465047963173599037321918714091602359527050914062976719366158202806263323121749128630532357783141958917716055037036135910430121512335706495983263857755993914841574464664553686013965796344324139331188880950004556331132154209366039936505542288841816110369938981059104124642157106608810391210063959079714400873792311905266523360400452275962820460688594175902559551790835475618878302279121118556788815424615643963110144235869286662060349680195569079806201899186225290363089398315242257468824413125918659382033810274918548560746305320898477891548864324961271190953280126468579146506782137205868593360570035683300079156852465742065822908159565259871736748865713516981578794586927218183445670775081001805234299606139039594243090293603741829247749084802518608664714040017084265693443842708961521059735501441218848162751633488762626678639931707104272265489285109601380606054088639968981170421978772516969927555161253290560270741822111755078250741295027952732430313847812462549166361492607381808585109271518662394055273489196650803974457373517817884497940258605027998731376433509223021631111289013039581820416557601288361987094208571433513633289966229908106661747665864301737670787477597898458740653323893734692218075760450276453676381600883739966179833706271968191218185206153554510180996344317602288950305765815082886314747581993940112874967006518581235112908131131283111337042053771150578244028111616022703864925995103677190403477739772831077727017974338477731946818012603473071249841531341554975750259093410990903191318766211671078003293472648181358793409022212073818418999036834883952677949836976518097431875940301485372630629424121148554918122974199552640101709890359435285311082796905349578627028116166874195619024151032363034560211487551867879321738444640775019236950610679594841929961953475778796895372521969055492780497434640509796676640276983618135075755242532120829532824949240793379454168747704054090229748649191039853418536478488182653444658488861306134201000977945605572719673110729485893132107827565164135951353976679287916104934953736656262882987243108080884860733367782770771968346845701272534794044770838898376661066437511408161752613606885421977371114026923386987179622165041835991210101837958021048338014874991450755063948747194112850472437788278862224319031606087187812147352499550528758027570392519277083025831192595598523317438459168673647938159360668692460318168384761867411576667768176448903563165613174654029564532178693234749849064716498856733442527174445202861562192181978404172158957604309808434990980901540795072684898829811080377457364433096425764256072603466587052254330379113081603330699698227220386664007665235526422432414316303900971341346714265551664391184027828238801005074136616097147862771413464186809936150989041948324361778502321753170170140146565156959728806557941185020023497721468287804225449613219230339347492952914099351755574053729180412843258982270201698948470596959446291059821426703402204622343461115054919358129290487657644202172114439693381460560908940012334469464445469962982638073917926733410847642162016876046791606032009733931994505313421252276877394606999397171848715137705633067978988949436743298591928848762951769402084483101002815088988592347588594368688702013860789231875354212944818880788982021206078840655790662786399861360608797911500224944330445953276050727973548186517530817828131377585162656781906297345343259887137985123793398522833804986252204241449842366604297490943489601790015204484911662655425137376963640889632703523281245862646518258047165622653447334721383583476475730139270816301395818938090776900672551253761162696762117986211163099521964707971958658782171391126977048865509512823179992480698415928896030823715410116387805703207279882218914721012395725737412056273421807672777602403686864756057152373180106448125733019327811860233504522524459634744367869669153244745439310731723486937868385233110305194851643807252016895679351396571772079825412030559240295055586987968361687944406985119580115683712995721168683743571657821599742463155752046316114420915463441184533632917507865813484476649933700421185880999066925818616671117585799516565575228672941245204984166393966921221888413224394345118841494269790533588092718913271256989625369746093448757410123740926546228018553752755243496092970324092305174324190934072571193814586478118098190748404418114278221521262080179418706325372357216205842700338169464846957148964676498238064223299035981587468834055600493198296018598879790291731614048235824916972211087969886106332807132938995950125508024457955138476461530326356686670353605539338962378290074546902337022009347554070165355376891461775674428905135872184783533479672672795580824377355393426878335388690018133759944225646287914622851663262101674034232026630391390029184057073694662285257269180868394508891228987719974936991057639037027255943544217312512076905832372961638443320933090364601832702974969768229655425587994707028656226758134546995082650725886692948224990398419399973939954561550806852374344485980741684455367766633140322526964990122535598333163620689273155306099423848810779272869053022322928413787558153150589719715575223867153948614972081253815662802501610031196030384402011191938982932346607397011032265667824225305406541461532158340565810552880846684883596439022561596828904638322389750870690955693452243684187586594624438952823326156287022173726604830180173362981272688187394931712345443573453093591456336385373252107875300824425361069119087123736555377389853043773827624614296800316535268514604793025412341689637247318430448260879417741160871086448560686370093924055229306730538014174449050169421625264889204156663619025043451701705305744326337730670262157458594397243277302468707956023877717867533350753995569998593051365555800640448173879408831134595835521440000905540197965564604596568415125806195427438737118797667850757956811141836293221030349026078966258012968601679075988753332984603481532541510955511979076716592142074831705220922406120632006130885654136420959282166083277017832474040187039281090390949017146371410024667431918696849330517958290976437325274873670944010894886513180198588836039372375396785493098477739423920840985404133494332639264560730698324640823569310351444589525112774988550659295995021636900135637947252009809655532317008187393016343597030349654079934638681103184665780846299103191253772738916266079688607340377008971413080976342275103223410429061238545790579650092356279294849837247387013321431700361396443034764126960866339383757348279142068217342303393945076390520655628310768104357200943398642874647413410009209287565380445802921013410826048535833982510089248453428105161732848317428087847734728790957463768093270208491053617801294051261413895925471360802840857415144973749452676842665216807551818091237008342870469897619909860771019611410912907145303187902906324772550990341430836189300542179033887695375318090998214517509162781960992885771362122859177903221806610953914187248194937783596108673699427128679745269852360208356315788969837066275927066031042349349977506457076417577911344276361079307895425848189293157567102933954419712269529271705738752243527923498495542932402441038905208568954743139416990391511637042161642134466980361866306982363286561874673654016099689967104612100696775474731880465367873734176029786034488941497177398711349786342418151061592734723055123810822379506324763482052907250239118690779241657626952691021219180307067316965956107836167021534257054659524915485585055508506643543194796828255260375524845850129913106452885725567661698163168174064701410004355267118408443365548719945627356903801846440867234162939835211821396983240406091850321330753749941284647451393570694391635343189470281320122798911379701652456345819807637053994582916271250027990755683613303343310807203943357706485784003418672132322374551544301278075985249519355508279307532708338375924522783110729435385914895625601058232752461756176339146713598453443360463455757405211471203857799359373732501039515981672343647408542030042771770526992756850546201176659319643678355542323090080500071568237583885932492058999833811489542353359818370485994351322115971152093974225400922375651924881817403134014234030173336080651281113218899913669280650388086853841187849750644380750030576589153414651912917209360377879170566051395422712485890277737572047915148319475253285072946236864618076092108821423331293154806358593492911957578565202583640846008841518985561590031147352672747664797455932113854220411428339779270640299848291649179572713806404990462101561725830120806297631489445302144146749290871457837089352719541559063581643006375764524704403304025663680663568413679545074875250597316112131624616262485002613968193949476373654799949481699996657313683642863915938147969239341955924480708964264902099428043987617549719382128106291993973007265696633873194241108316231619723229716385575664321701480149146627018872684954251195673839861568031383817260135492260693383719528359231088985637848181421229573637203499510598673501793612960356853102529762254899166936219751966845575346849042254950925252103659942039285523306413851792920519867490397721418620025231920845572794245991729174393252815646583210267664727492941482831273789557244785162533078567282114206275491925798844458050002398032859986954413516684604992526107631541375148447138630104848681203735449190333943831263427140134424557690633451377898446898568675204355740065785643920039384102797364946123972917486215123600666271277648192332971905796654607424463770380594277048510925963513300062791914240479793173288557353696976102571953440287076060687644834886697396925081440400566586713652113004626954769625954120519649928982000754692703648347094488288094210873578853798355753677562904505827132564822437055543867494051617563870593799787289628337552566388255031856232205749671070213078751991321226297944884811882514106137367521594345283889741980275210483595464128636044523103374776564528107333563679666546618202746438126185354516801821364032151565961183640006601928561392628471624330451069186369811521330138090814690684229932548676034199395648047594464443474033114149703532372000567882350283227699464993223037323027291358064000222489358864527538740070897887374913533495999274142442678660629187193270806009025149462316147223549498393483260938261614424249056431388294926189315792808280075726839535187713755076215564985750372935964044498286727663866067382946988414224749512820175804651853716408400982802363166543935968591743680375122329819959320285923904604402691941885921795537410059311579804286296720593295111373545961758661031168216675031782561473326875809504387017056507991339715905884473253901758322834512076636500377337450278935822695451601465219343262643307984944748620672713637911185323133011153141995396942636085094153835059387780271311134398799549046068013066042421814161182336692977561686469596331059624685191667285708483327122985394461335942389464096607541715882587351851577858105481370071092529127030439228253352423518941116387271275313854081417443952213089388184422191428637292213576527185849258195178340198413496896761771645486315436686779640927059909834357444412508796540612380553100656523603424654815028965219771223580016916121992734297602606640460535469630662025527887446797907417492351439482757111804736748416010163570235302381853647095718229030383324094228718396937072768578193462479033789149003849058795318231396266110729378379168362406762812464350095660222834388489922344965982673723808177128656384418860456450339422811630007597456048450280973231239623117013309969170124598978396786833884063416513115982107015167470682157105452007716086627746034921298933258762929114511289438797892360724850176193299223411061296616947534713296282736644526424457106904759892347719024087951138269252480926584489567521042875880251932738214159848316670575278232622138761714084831898245623195957684634414248621371832549858255426191339775252868791533849523357076058752586759344443358947764271519783885682373768772232737536399723755364007274026536712620562864137005816412415682844216829564192910967107985138751465540245085045661416502570249616522112694422138461053634998485538007016459705539056269254069114705344596659651160072582654384209588952002716357805072004338804509874971473029920456736587482162842302054095571590862470944167543439897708043591702946065000973961747640901975837654576075742096870059447842859809028177582232576231406577445692470066065195235986756165250767106909049978194792288712313089582757893505569842766882733101731117310381802174139911027885125481026721497346064695421233296360391235804392788527012539398547706589287979755759994128682186538995245039213381393612454659150484543449825429424351749291576929138221992590340938543456535862988565703238859367386618416248085685042064825162296130773857004837629812708009421623211066294681875796338829647266840798532914000189586811108863064152397010069368670793209930288357283310895615722414702388696855607269728693528318622237301984182830329257412218518232840443946935768006140222638293251763643868126608518974233513590479190814693098240772664885790283236593807564564773134889694533504596751660316416271322664549360198280945405758039651428913732926377465968106671261248032866390969943639432481359280918969733372074167884175084692527413554629674102181394583950504564173070832852070921623468920577951402081482765680247089095902886725377942720549455127431620139577813276361746251623549016258832072346274172714859600586882787784067077686374057070720532165928467817325485797897491512274693088634705921310039861861066249728543203145085390862062325400878327463612914971324151737741696787101997875101564269647126900217554548621081650125540416685418232103069554108010119706751697714948995689472225767362488523580537379351766125903457677870495747489891587953874034951179561357438122482363887447642579837906225313150437548950000036894221377423220966696638171765228931447966329921740343265832557292525212432094702952176271156670803163810383324909558828215316439863444156345951965288789309801331463690098081581073323232140563061273187057823141524355625684841213394869172407950386220362503020793613638279360334771292137806959268014549023054637902598136057074810888245882550881501832716198362959909703676307774061358806760311088968332942376629489125047948891896446893753802534658168328966350679735062822408900766936974403028964193340557777256315252370434609010768995021445049223453937835271371374260812136947244356354821049783804473771364466068339413943860324525681259723509713952457804834688761945757670229418320451619578184631972249677957248959788378295943621177491771901476882209204308006918012967108049860734099732467317518601688062809716518133635236434183623946366802642794315308301905554128013780329264874340655031792155800276182620127233505918171698453200780813649493232010477114981252460657668037039274144264124175738422357695749272449355787571200730241735543621391614978317681570104941120362957407062579122931386682660874664229539199622752926309528888790524326510059277280358537184636770128510755117627368291994052545965895216005895665487041022546864279838617779384733164598196055052170677876990171520192664360471945788752607537974535260430572093259005451011071663796373176651490560236256982299540443662924521180481641744150301304231625236939801411589168077013042442667545315227019509006268840543292599585395120122102314095810044220583548609348345518489155771055651877188245935615355937206752562240750552904035490768188803551540036569163799553699779549265371311091741658670341449730154515362777825261447939085761549764838805743083873435277752668090228641965275407822355921545120853236502873394727740955538609528803155673769671107482484087143262464608024389816878655629399211600573700579711474094496124314425718703576251248182183059449285922611703793390304677792994363701608478177555334303458526588534783358663588032442570781985136912864456303459958217023687946881717789519004001680994767843297905134201237684039616425525908633995450934777820573475046114504844592549545666646364313085118998560241842721759652183783662459620828107626766914792012694763912237161454299437128498734051020076918817072127081444483664710511433555875481204380592012301676653735705207146061569420800919350366449795196698786862707751935774845007172929345837237655023279010786362376479448836395032462815135462259433218020091164826878104969019277640087320808351191862909582768880527927801862813898250035863273410183870849202226777279719506801682518018972831646659966434882291658472852122529659526230514434482945785402731924033520661323052392445536008647856225531666974262161372376635923450917856509961523867680179266940875984841009798991971433024836661978538159974880864702408018213107070968127040866906221676686547404021006315450739334358715608555429035503889030482729680503851764012488927685227389783330163346942114307275521078916196749197380245951495727722555495547243104581614040625836261225627983292021087464300014567895171351963205761858664398405748471550647282366181940579384608807029134671487786093053223785373078530203823330767636526180026559225468993550115937182007059837712860134773171017914235121681763305736549358959684446203559825234347372790169069488699486236186626340642467655022668530927115685326775263939092538895274051792951087907873745136378181995038704229137910607885276684554749896634199193410457612580541373529937973184594535988262007900898123794395827267261564373512233992129108348118538162152129305699583207766056137842837087168171568348141862376146901890842013714626772882412245295763383218225985155997918216705273460284052956087517736101063349936084475356716536820896762858071640417855106459184731996763621322429315391580381440282446149973808882364507593216221504806134415831699339072605949571382388823500326353596116309773608031727069233987984087825898797315094544939755481395801945719225712293249013219390053219878987678907911302805293966051913786248100102364635641332719843214286425380659162749055760417091104812120695666074432825161086193212391555135111004984615685092419456896666715625925065620813235199622058016173963554001810106648334579155049026612515771837311036802288172013385760929160958262351806634660788605020808261295973240091131335824748449966766661347683911170860073650581091654760548317494510524150993620567707368466741733262541114905812199345250147309473979347407868282803579119788138971261078678673246674392544046706432132935784906470020304934580997442580266534772172984350766810152159430987496907816345966138441005730708493879423270538126669512122248550370521009577025981358180001137647202513231319331078977113292477253865543154943721107495286781689578176837266360297262175782932799679757149576227600652140288315654272808143535838361299476047116518930720304946441674742608771833949402554570678856017574222999335723037642806002036177537868829051792010153631306107277023238790671466583044603996591949205032811393771535718962737779738068019489262936535861708571575085666336713011509218706379005436271849113394938953076994641079927428408490517072100992306304068039529586871375930301600100460107780916516874739689500920471242907914263411942061184730146626649068593497419417299328230699164658102118385616886499657783651767259127287430450651940806274640227324131839463002913924354545520051199725736395967325726554797359002693840546099421859474605358380641971026144503508588629334571930763336561269396005292112051885259441921509673462677507962279775391238365858188382003445543189994396863361795915901093641996182571677036615420069929008430650005010243091472466327288234026134822637726481527733388706735566780970443122983850876215435850288311087279927243161300262309872511249881157291014155511383330940734188378689336266339189145303396255395184171532792409187627467027440864820178864265790574878578615908384224069379818658894047472080737661051347853739102877690918690881710690755564052607026310360203048534840643670640338741231376494492708637309342279584167588966915026157413114875617604134261124029065995548816133588911799921828871701728992539147796779409564880524599483504228619620181265963176236243595476870179221292231374950955023267643246769180623600440018073243850564425552639458155961587070478985535059680422844704354385022114133977830412822134494413874123510324295518379089580970050380884184613023478959713936342152139862085038881313881374555587573880159438988473513844772063269156885651072353730504415823423405564371761420550691780028535709476646049174238794878824560008054228968236568117859594106509426120089393376768761891856691792652387257681357626971234607621615166211872223365002554823652183239958232696863480037213968634834314705220924639163724021507328271111295509025443247815144358269085051594347916346461771267111513591140267573290761071990360677475204880972904318739965303376687263202269779760676302322399547093613830243497606919827372945068010447270968274899585615083124625283469461246084104343322960633194777346092065698330547317051018535579565427643569321582615890034625678553494689518659191942212818364024879776316148473394599829988475991963554497915755675012919376180335741236160986087848085823447915479943531842650133286746545825643946467907292277333985760328995276818005104541590415395405698834123797477903530728468606843536445638135972051516581399121920680783007434974928373290976298121461563526059209742380689645371186623164591541637650278034459148949264883722091825787313260896975082384045695080176030285104019716417091363883586251318710792274067049958887789874810723806091992303877378807098435805948303555290345236889794294381659846375268884967485825337489320003710481148828305107034187307078908611256722079089095550324375702847566793142025604260560347112782741298511441875449549341635880273095105206959781868236958892282769979633864369846100577764407992584723432258759726110468574741861909153322202119441349280597570354668329291607561724324739739305838520503364311256298822929729181437264304759442243805282277387735113157776352948251637123081920875035071332964186192965199907233605585972877687655216505073516563955588313318683024523003244359552724254113349555277014132738663083812396552725578699159538653901891732401644511414581690702582945127720829808041360451827835682270129642778592287956581292003621160065346078312848072638574348615905360407007200602840907400726670737110592962840246035686434084778454307796506429317972968693334492685860054764644477538962921898419332348920691047548869918267258757141198384347402601456594631698815349376009533690023004636832795081011313734474213284535494808684446488474763192266266221695365678181198572444219044559066274064499142314491659236947263179657706552877724835886912813738522352920742039758949212831306376949708972428246966044416059522255135804547908250536482616410750844440471355608470260630750735963183587568172832128798718283355831522744632549995817149332298243229307601511178642114860013341846801752387013403080897691033090479771113043806687905599408474743824016972542735691318836030647691630508371725161558313888322984650478649346637123966225601829798878923172598613302471945595168987853630468453815746130323289102269621647525145487137141499064268034076632504571075208520820424765847328342985396558092451211020067438062760506058098372764722615086555192523957705394703825900911967603515799134268251150207570651780048412924126472356734400420766752785485441869401326669080445130540920072504169325247445133044187098651314084826167411835495227703633124389043886234204028323934476836545295202685937557309345386830895514979823851092834136386202951049085333517862746493591845502249932045722411678926330782587289267886553404544738740858125902423163822037725371672654057921202790433011553620939620560489682536690067908526544640323314495121774239944214074264339719647236704666574404563768085866054946516626013657161205270336673620505021121187426146602396129842852212653345984762712346024176643357189814975662073854583399087563220601537092119573601370813471972303002894503543360949188933964120303692457126934698846619040119007009727154372722580174511927297535480938651922117449491767388675849427122830824488850268381551568317125314449246844439492094045000846058826516342282402089492979701857665461554584528333757349505413320970592698237339926001215089849417153007876609098276386448199772349247901102287000675303465242441556083994493850966021675302154438940662537190444849482083510131557836577242969065154184371625391879907079828697812181691481286152847568158058949375249929392150551545841433291769654237574054491305728649945820039997079577228140182200007059571848943715302310371280103214753024447731117599070586123382460072327608172299417083720011145311805159987411980100535815462983073757803153372236278237539017088317243986388902705086906798297185360766124034601971656138957812488444256797289506772132927241935008669054253760626409549930434386209328568698123116444790879508035183417969710265647085392628334730191037172041719229253470425265867945176910733286176643370186028017472968968199958215030236263664385741109850032648935914090723138556326662119363783575271308357494250276166761166916397001350777049010352160964524284034975661502230162398197896626167468273324588709180034346875671456843381540883771133108894749741391794760982008107615580563210454981991993068866671659048570844599674794098530581403460332314772296839551849622776257092197173911302344043077692164523602379350686718598844122499701743633748981516427752903760347823125853554225025126614644569234259503533270407323286817763405029967123587108365093201461993271869850063790485155497754181176360028913658849749604196403248141930383043105419645769787527470572953100541312293999445531695653062110960780779953117703396598320330666773455588809556817954591014159757980192041642436206249470678042882395846221776712377999622101846626801281964959698843828750441247736345275978769705464847359681061320749875878500031330905466502330595243880261168452687319325831105198013949498051145975294576782434693018103207178153058767020763370330176737587284852947566073383547647743594048756064310750859464226596065121671475786113601969110256306205490258653224175524961559059034754998108930271412855775611524928430053000194492899023939357014897674402414695598706155225039284447694987019241611108671778231942571649773115939954837567861086234110295809603915190119189121718773105798050137571520670379660817196541346686385517715929648005182625776602008938163258091928197170767010167794393032389995858796738304076980593580282934465067827876926802599517501046155032883987584711923985175327001452404911002454555218192224357590622400509427528889751062356893841537797021487195560510784451958349189775947560849005797128792585683714123899232760692507905359971018908866919186088987225326588607772371960641560430467298691826241746743417066600964707827530684534129749272553164422263112862049821211077414253336739407941556093801706408832678862361132314327062300196995833525556628659231559298320591531185426922185489366026539590084968637502894105955919462439520751596405777541697036455132209286057099380806873557324024882627099875246771952767364004313108728261070249071087498885839911422709382332770456112661179059398080729781053551390938219978015673664800377681536559692565812535164265615926338569173362336734769721591025322348021232220837242877979913180711401050294398940826902171917856526476041654623262244958193918444816325463048125126427421561607692457863108666207241376489483013195009740815940913554843470751070009346137231904165645431215028744110046425927687338883927139434254555662734581765531516949414457715968752846947837111787329277566005947546767502966058586935745301625425633682144382656900339851794272153211616501545186492034342840707881870189837166394420637055973109728025502991836540312312438441502185210084135823736942479495576778333691408099023911616994903704631085083499330607718136394320696591113654989377399199353301315998746055222802216487085869916363290238502399262526800051933637920639117558802906130332316958046654438846484083305026688278466299776746444112627854648166373006690946675523359576279105184836924401442682922226551966235818669698801081783629714235362117206974365746023918750415369313939663849759382774758716001937435433185821483810474809351368471338039532877445393001047624633140004467479166684092680403768594528584204350290989021776506783147522969012796549595286325190581615428799151597140165277333379833063076361001574438797255300170018310013139421579904695732998107185145958059988781454327348104257884062706955677222228852243692022281614942255002786492595575419958098313731954950308488471058876476363121315407581095361999314891788607613646691185814261046066623696961025758318230586647403865795065849886575771996399942634384742148213506897142082963165605714442726696260134570075334367665188448025274027921495030037689613017456386585643051105246129232471342523357627326574844162695410576213871649860668303000389362281199216679740106928937384151130206021212563012416221020286181376577556645994868931358546209137656608291707225998727378721821823167397104156508473167546542557662440592160931971516628745595097747535802458626861946673499091515994857637295220521086097907572990784215322245849722091622798065624096444639356316424815774834074584476154695769454003026507554748179147955123461433691491438814865418735197959304439499744190909527918528156002747560827550187285975227078909713636482182444395637101706980568694408884678621002273791144742611786137648694518404932510653579743965463862696151918327107457881917331803604144387791379306523886855326480356166445881004914583720667709623684948902086044472231035689611528333772114121529764415701974103664537366795130043315791312792998897632357973263370856207578514959964809342185336271277582361738789546229290609248333179407643219410564130863922819407423366737202316496752145942517120087076633699522385043204152217915961464326693012592868551685488998743263897221504626227539994847488140096835383405802530952029764340187645334509981033475990769165111672451299044057007928065343444787127983253844185681375147355958776701242579461372344729606856238923591568203295543258901466092897814843980879936434281269778937518934535750789680709823826870102775166318352705013868562917821855252192036524662373233719691420589780376806737838743572671534092167439084354049424435109306207445517376124145846066687109909834761773738670457635196081975708412419572232310315121055431763089791105383406969335997520962909165459004810542537104193013060889024018157450810273986295714758474858037707979360056652524464916754091067857230892458780195068311064308222102487818584772383085184879499386565759178346361808296014226059577861401984757587888529364050866234809059736947167493658726813615567169849812968402627182861299849997972200477021776534306694754123228094272663636243000687754683211841249892395118519242659933897775742042902627854857863335722173475055940167139990082117157001956988618704193277933197930602659271621819299085030973821701837327394624242687251285141463584385389023487063380401460899674727166748621518538971062389129634022003077046958185293060716317810271127040587809874333763552198242497580093657572242034727477971546653306139974911570772143700581517330586822450417717505864406703268526695093008350809734853711737435450544600017380284678620514438998316941264626622012422838840967719403855584166579703272747533665872358476065505994605307926305943938419479015695013493918713805094599399876148963957773363948286582042784235225330486169511833347151667221387144749136018054519292603754492085993394513790580230759731378618948862118407328608007648791041371634945912261301628391085472591526946432119739690691313606962590595160180754635012151767281024909716708605488329909013012518952775678946534275960792476813198396408008158308066513345171010277257571105416301241337974122304629008852374616019361070873004810783200857942236034182261134611700901722828181856145060669693080881211252247455307386338301110806614968708881435268110119714068735929647782996126903062724382137492045133126328574642265036453283887313985811945804762290288024626713259153044978090578001566105148517047931320902374453472979137043437808715388880921931344073792796877651093462788812946964797897617433708249291495308055105746518260444724870591142316502545862581672215201761305253950466301892859525486092722576792807798741777618464663277131726427288012377119015535800159643367087126587320863947853236634198706127341753408587974646369679851271005751723922630183013918644034563404207898249695717934942013043255111055973285916646962416574881009733778620868126481748469463355523861109122012176245093505873427180486970991229571180732969230700684885844895746783900083979178823464394159586866776285239796810634032218326746765627115400347948608370749463886418792063846604910387504887344414869649452432005503366353169659906421655998589917679032652988473389398045996397220827051367432607431226280697643977126879635038400147026323121884185761166681511232773311001857167034906609801020639861703205969735579718692625799299307734698592092296146433978366053780462754743720918068620778446362196470338058764171994497583537164262366606384289223850101905931277191014921372786849499465299393468163541804922058061073562917510919132406438374166202678878778504280815229533712195543707542391870911534897661990060479303719745149455925676828925395065107767677069009136483551376273558260062447012414539977295012183949495715588106583389146506329381564005975751133797197802279358125759816290192457910513659840837180146930621911585394003576687933604153963921702480343255221923889690592204675641910763456534597982047986875819816853875945349663644875137195327639910528045540441784820351095684982742303175541013957697440043691577693294628908659961814826275110573498232478809616280488916777774167980357957108823920210833949370450605704093215992540054620644183346047265796791160869895305645284248672619687386259378242489821232918959499959174410408204688814092717921220606911285226341155241557101300081638011326137931770311595767182464208360794960744050361735470858613185435850013819720756633943187102759212765254806093642824113090985877934798836175996682529811697098521416014337999656549013975158074827181580510714090554972990120519943117346161221757758905325557583566889462259577591775980962761955592878375020791472943838295763876372928488099655355821146215474698718984569478955715702483395625614708684854640904628728131664775065877869149144087420640444059026118967158073388070542247138012342349473653235441875563512608554435757927862047616224512520279885317152075867775033672327713860254670193770607100358768493385715788568484719223026442423921672766968038594280522720629400249918812757944340608429292340925661131218118409796668483146657269235602183336666834580687205313965248574732654746698554229832163938410327859522471197864687401490815528473347507323863672250610415468231831332612465325849420020686863069532449404774148827626319487446705465049235927948628011554810480419221982841439707200502314860497347009814403434641385125516177695459869198878051312905524633028152099310013412257993535699854217158491244478972742906625074832356376733759787351787334046932520503810983966408148624257466402178165700887312620397317917806822063632928152612719894100321571759755335622179371612338791538202183695743816372562094940276305909512851833388690986439455721302761960926563412896787087900427941313568164507553007922497213080086331074254047671123854445838680870747039280777038080276619206820964512561297782898269713599903166785805239019238288400906118171769120528758383417345437767916428851196539230195895898597613351746488359164634093455515414468840885180795613175288020423609647127795749928327529657848933752602068024202230669841462090983882123991017945922781048363496839194158211861008567015057493675825750014526216107993234608275592110414654132033525143789263627675119751673751098980615483890004547385144007900339444348186462942921510716919235860666921695076126836110954302187536266629516352785867526144638168725210340586488036317426141843503721535783473691143309653549956149840918876243459897731699739999962071639318164562909107462521239374594915545751609622269907547055219383023216040438062743957290452158681388786341675238161656603090287207959421927449681802339080699946834138507990132162162879547422507097068440631501078864690572148853691303572517449919151510551992207642545840044482875104819706896833685119840414835557295279615586176548581781292276608578505242932878444951967632330078075553360202623267687429104848624849295077190838846957869898280024051169177313948268739920849875980905266301837642495989558137546834249890583747666189445061029494939444982306184266699627114613035780567974431175448662709962422750104097395690043606925556939475362315416507822519755965657859419092342079481631885814508449472156037489618745319985736358733637498758991841919148890190637180699906546299583850051216079588548733978095325838495210351718053953524837629402800919642214364226467966087629981575055597245576592954903388100407810042733166225331993671792569316601932716754023608784821958300461739142064248934908227580293983938309314748850454555599655101459271102786013574254846126714221109705021841516990515162953991541343571830148424217355297459047547201706083954562515225401543119469727665139318711497577246476680222839768436505726451930201611193857576507749560250147198172846137614340250711208545540211343391142550398557659287664748800509321375677756864790089846090506028325040975121420814182423273716159735655688724406922561469504360081234851876847870250822365065254313072832483466634851689507111311240957128339574379984388972921401314965291024269739467533902712106558642996262489036794566360048607908179431702388733613184953608786768152907663579944879985499440818729493626133466028907987234285899683726223192197655191749528950114999267634717523120440791818848650425068249960909706123845940153610182925958313960344753673105414107275627257930449634761827674362251628184764137172525586300699960561266690936619984430612802401319421054245671214724174740987353911394765947473488588468791724209891686961414622840059716851088002628691502295874171375215551484555324511374405933069448562750918840879215292621726908254336062953959416240425138918833694829688630869287979525108666223044921592743334212404424214260383139009589428431421780464505000889437302733886176537339774634794906294068789560829849921407595354612142490611418046952087173130050462826923887636556660999009669573565108618644934016103116693427477763839464231824100576875483147353950057124986475775796161348338722284279995585562148638422333925810567947590922778706689386043805136457830508178558747145487084091970081158702152927696133942419495525828542212618775157666454864046690814659149754429071375919261883250042092249966831384850532093843445776911458903543617731326496791816798687569119006188726261118225181744690308067737637651646311176851476190403894430440711823693238778529710085779795224419481500038733717523476647962366049301599180654181954074973003114047796280993164044021153408460255746490962845015270325104789977670383511162697913533663784464966386105002372687315096699100959151564848928499533893137764057576236835271220906805934758423925541477239921073111637183643808815203154461456417663778523432278108237324486022081425196204950368095581350409688137114185587100613553848677140667946771195135382367910778199417374470716200673925108594476503198174137600674088800616246689352057895227242401969913004625752504847844565349678449022527508724600633449482075481861551822286304621849027855566464912858100406772813547892621605712542422776077168840387910181018983048935133264981497192670163995786180559100426305856093821486318509899784127991956722098224004121288802679691369066189127883362353455052202476945115172881533162964527067593748199334900313967848901411794206844522371262768567722105699870922304395483461824069041095198058412308824084562619093536090464669271015733427658514713561806649590425518941507375334169396203429207576156656550701991096231781214880481494526478088999246128119971041141678267790469952590306871639773960334327906117099985237738786082136606854911416001984341957187418813692678358352437923960993790719255962242296705584900929840061050312871659929193570231207252007968785340758646618064223866559724108928002950179882799492029844048894517664890802180258565297788156569399702072539619151634769784801652247458458663248792628264658147216633249502450085857644734336302740657869916510369102519376750045486725013943968940992765828697519668474786532967995008128373791548233673697448360840801290907498306567553454249130491330303657838523185324340928101044449448637486345159215643150205863216738082326157472714482484186313659362956643535435306845110718467898483927370762664648753503684622418669703826290559512070437104758125188522120189337433501210652428328508653899408112783192866775384771680080360537567787949847151431704162603350783691702167842029233656488924830697377216699580867738569974153103716120932463935929645294351136195771209256765704110916149726096373255283840990600673812934066799029640001919948069516339537378494326304951758407510974898272139260524786215748910774804923605447915970123681176129209487313258981476060041912283017468923118968260771923825538499527172638065652250014942269708681730133126691654197048812205028668413569729393608929145646611749376435083260337300632310630627043337878140809534003453777661067167751303791065521979223602081830739277192608360899700436559971562337854761717545183445265788563534569658085882702752175032368914050224921148859352865868302661905718657442114490082739931444476214925701869594864305773163344569997589663994114654092957524447950606840567079835494672092283028590093439608063629443483081885953789066051277698117076313929468555270461141088248702625541744094280263406800694520893970397761469496742682335319802069388438612493069384191708867215406930336436380897226854331039886766554343268394882827934711273489021571962467444771813250721640088544739049119945389542510070965782790940525883064748748909415969101992199884791181610695583043055877232084826926379209057792730813449622931152122390991107871743137867948870685375307309405816896561817273651685093071419651971135443750577725716999387977907078463243889707536071943142574116170307928040036261925652037917038478548120455043699871491868376766707615578563905869182771414519738684250004503966307949684798515870687044808138563384602271110514921084718785019373619636065165567859422782293389567680773008410821897848728883825233908903876432004108101255080053931200011735564585489364347461410880328405549353392200407787307608528403163799597586012093302903244812640267344544643778708315380451718977686941376916275545492647442982700636906633320606248095244095766834154075824148282230535910065731841123230879435978160244972099969207968480551706441312339445138002177268418830535775762546757016762929775050580002888193690841889195142909158515431047722907348102756919312670628616244459559901514035624228435471996146073603102913143398951352145880556809104195250384202027965511417712295185707307625856866862313568027323019154366975138300454517998424314904941314924520697983298227935150038108061582922792099463646197823966174579427948878586072121086498758893096065386136400436388404450329588467534237095269124992960993032679427724058614727815941536603098446796948586639310313248368186868862003166522435510736428187183373167717992483522444697551263648104819490227732887931296090999299843068149292530051850040488632014110965940740658181285090978343299438329627720115969987720855160742353231618757184852077609756146941741474607421269375992371145128767164668459871004632195362193039308875577289274655542030301160808137079158569534795380366600221822868443683476371000677479809900626373941203497830655041695269734143585295684105596755558008942080213224940100348827755950642435738404176722646862045686325491451259685025709918610313942994668132279160195021290032819047158499093246287921964486752746948867001636876116006790663025988694538242565628604208856076544614641697709535200036865865184059150704298592850574769723119322787956890351437922768571246767821896877202905235270937356834617866484963032954216199547378564679341413222855880253121352154267929500416094324248656336954373594651137611356976564658443906317244237159367876191084597339777774485361679118316766353904819683852309443550349216440943861888259493415398157513528864040001488075867239630466337975049198409259703126703982442499421928865256256824320443791152440836815825179455469349650526577842675800182950992438867263978542324043956574893833341596208338489856010674792340406760653096163172171476831853162730263826136163046047738177437557096194300732428582174193610524103562402988556958258369538060225532122637912197243474204611223325883715763486398018741605578456708568923516700428283603507956078485411189269338294899542139396359729095747014448235452874773867352333211473232507298684578734177416159224518602234395368758623965648057440621854053198652948520398253178329903540252867900238277519952234568207631346636378490635038590407223767948057973196617414284438008992187431474938444519350803924402385655595707080696608042249361180925940824485077336054000090090853148015989624325284371854184806125945865167933676274695550720098421699795294797558747029839641979992449254110881063636890713441304805143793033419315356786709383782469413191198799896011402099743157151067379308187857576832811516580051049677070532119232687572956517010562365286262629926154763267370317005761481117520591467636874889741097973630869472715416929808785334719585594275311251551689766954746893832217026179584247095879985013948371837249956361647904161209653973891406157099078962269733863882787046096548098644319272070596412858688838160738759585637448105434042147725708827253704075663614947715844867327926815517056391960189954108002289725718978108966242711261242703276853680883566921062547875748061157103653635147944369186307371718464913195771567548075941238910176925622485795928096475999276497133141874246455864565030257529339069643329395262868871089198090212706193799816669778248955310457687198217894950031163031718593397507322224311313133212861944999684848870696743609601655179966922290111987223515718342874222439747267106415063794628354634395857016115574937297031056077484204175519719472841127576207916069661447974306162759136051751596056391300643351440275434947228502321987058528176319118263400047331037964556602006582401662389912278865006080414155879186168758484405565096301409550180057517762097812301805685700179783473133163460639439422120572457627504339643422918213492269531781714668865669132996953022273012509055364655504491331888358616352821436349180324366723547503460973440524496894252398904800354532544537662919410515059927055931038603793940444665304163578614034797993229030523677131492370302820777791990370446634921875370566753369436425460224517422223093818413774427074831361905799316053899639524112283194892554289345306633845930149901340009718298198860408717770220618538910705826745494238808946073128308510571860433727106399967192336732576579744074920148544141022388988230868878862593128409080592172903390265614413037510375291459148275220474359127882153828479563222416918643158465506375154642146984192823893551865315041749686429309666568318917499640581944554204494745274834576086101983535853133212489902121313774525971519277143690939709499004293819404086008124086272680756306313609144191346148689793358440260643107525984767929775485962485070772468517502347350360210236460227379823545878273289283660307669495113169810185015335425636683541750937622086162768903840721093114002105099901320498122716764968212438741372695527430733412487710986164227841189824108068958242805565525482386046180039966681578854596355666837581291283884468974959066078203829391891210909986892065402041344322023823640493967260444169260503242272013909344490654168393371025256697179773617373607769939703748286382156579700629732494228726157490059228567060677760454208792766256632833044252962498575689032197988730863542019402844313906284133050402814133517357213230803586405430123103572386179003862446070047976379552941236464480892297849899580520636189929172070556078518623114327421602074692728758793968688722627485174034688398090910129155986148084940928376315210816333442303175152470266533783660958213824170779758510631633322099562836032650237676601648183596205655465144730352683070347482888566265610269475775274756635784740633683942666192056735665684559113902978503901100595678505046990905148194931956416923296250319026699150708067210796921941835572684158394599560594819948459909651939795816594619786951387243904409307459712803599964394394907220785651505476543271531496698254754842639951237607183888052511492421793732083919694760738125884090490506714466290082373468857855618842685481714747590108597046789383063584511938100159631770180419054031506305787478974349681879209096832298528380354847655628862238829253905385722678352186819747501581354331824017412293870000608140206298398636627463063790192594475337102914308804786372602184935137369563024475192600908474779812595795590844119452532333614543425757889788432756186812052861609737111498827246107717568310905187246856909792608650181137999680129418867196432444325377212642377794595662500772576478432575915161633463956467648663910269160915266555434257690949810757635895411098922602915813100826166505352387379693995124805889606533563913092315496977915425815168880310522796714604756306174984788311809395671135942427481575641065000093869214019100397031657618698845902599863030711988104408621302549582982941101285496650896666402695754421480560887692422636874282180876104719590884632168429065862016524804055383409532176600197303598472598297047489400628235638110258792870529576368369992488454085701154277482091103981133128362524116007225097994865947570726557363170576743743051918762306304817579704019799131571546218837994937666477257100110603101658148301153928958200898287459802776889015228157462826711783067840843838177245198989941205928551879785308685184127801182598075725464174592240410952779953964127154127221961720789210668952768556966047073529637895483100694534170735403741366684020716439739190723970202201994679197299779284012508014975449073803585925437489493078108345208393569534762269731117521561929169553372867404376163080719106912386018104793662649389383197211363486653493416845338406095808780852554663071963051577336648405765349230759067435131283044363386644877944937173674517622148411590737788051298822110372783755650588246563868165749476128492558327282909035206591951829994148350528007577462003948190924928295166937265118379634118429666047138739136884315364793727061168749584739288129423297056529319656524471575345973699599073451191891771832675530598853715137981772492822659735432959599775427175972587275888922831842222603593296688936268358245447549969634677080397906691767505359967641734789123659222870734838210942662610103966283121248018551905853115674467010866487252722130696328659443319347296866313589527383859683630965551742587732657954457978273303045533338452134121302670428212243189451810330916538932548654063118544131093387010550071973835852063283388069951552987631946908373213410063630794580283894392463697660682816264582543002099906900027344845416974035077717431286149638867583876185804693405015465892835468945515436591436331390021646678931408463174007956813491089685094154606913056028883296045538387125126427516620741402261182755388991430579442437443757203601173828292638168883659946689434702500213149030907955257583334635660228598353205573092915074168222211458822604217050772929220801613310992440131895886481538288432860932122413320073637736772121668552379047855773524152231263618450726265225726573777737699876353775215041836492650533048546501269622001747780942929363473284711730598120432078520095530746080005154338368504336342004863524898532005041472693788461091801246069123886909488600604219240967903085930749895527577729103369114667220443682430189412781666592271924886729844601726788403830926995874455058991285557157311261467936246154993515702974537468590541131417127376957739263584279408895822308965350055135682122711110417569719462233825315161938715324576793221836167623060165773105403123862723346265363804700838005046221674899335224101156053742363501850113319612897995563235018431394754812300703686051235344437522171223455497028043340250972103655619009100040061436373568206293179304425716718426047907839289094679795165718784453546896330917601674404698484171181118261247517957114766934247046108383574449959839319917751969827029430286077888506066381295815703133202507790111802571450733658449601651039221717279239334536869211233236253402647600593347517861238240368959835606549796107849495854261115972965243683651568528795462476090850726491482298468641543608412066220430594893805200976405628409970212220789586379014768750079172553237768198157462018632133919899367600362756102888045355319752783152690346384222129764887728411438571081400269725138317872271546774498154918406428202630299600617489939950420813803585520345689415912631853030146021446581618884287388777881665075558319813738719051064005476983565277900048657664651172395241785976659027023735883245312346423263517283590389840763489832332975162521888896541556638015864522599357434317489332491199071043630222673093350135195288540045374692697744801907739638624321697810914597039098228189894343621192174661391088545141467446276581742124994530026815937404921497284316759883408800636393973935931472213161986503058310550417314143010684732695455325927789471966347111039967466335600509935126091659679484535941725999796214401713198314402870675035306523659840395501891009512618704260843077007096781290033069267446041529821806264840086185837293797970900756760536199937867607988145611182152234252159550837350331577190488178757881250562011935991787456256661354121228944298241194473988297914703638758988836413962703721959012797006163635620509494762602851830273755327139273583423001373594868069453852894290332790328585363615466577691896930235117514469658978349550394901263213592903482056064432724369417055119797629344353336610989120528518070684884865831467388841943579962007095465730321367983045835529518228890200804005663299291834607401549447118059433267386454040149078635757237621851515972259092087983296541543650801875132242385533580626819674938279062330179852002625834547033795555807382599358999476559080932720502588844948235289564070586356476946913348537971834691121792279127824681775658259767100730418057509209884595466456433736590537634464382410511276015766604397685388486456289109496038595274849130690648859965145277470585411048481274546779474043798351521737385679379343879942710878272704713117464702014432705005853628878836646542316102664033719297190971028038911283461375703990914387693052951909958672497145912963685033336039669023003567485460866449102598018934216862840728976385341839873306887996275478138046553735247549362566878676863876786410482081348967545140000643635991723142293558809202103865993010154026517714377193969583368711053711369540302206526855150067441735857174038593673211601082837075816088841410183181756536564855591514707691299022092384576565376142342798378259038825499991233085013894401961948134863989968434918700148200984823524590020077419119816014223217329231211185446194480701902784995166597598626586311443355160542602346666906435565975815515372210335622133483250166627761046319747538384295409423967521862669101882352723498326264170629962989667316961241655425594612909076933318914146761622369687658768763077388313629992741165541471734027277416310063656765029869001465801783987806302317491315877058295780608712143424658254117322290362353299159021233966854012387421527622259256444689422445649502123048131264987013636438861146904766228398100353879284973058252270948721312502493667694087137657159547687942260386765727650297344905410623671665540535866528075973433216612268472151889569173712546794785496309138013863995819634495060868027354495566791763050165536901280337734422042568528815063447486439059449695246109244195906043198317705531670121681081585658843061944426522831747918867774995744925818615761885236064067396496657807491002644160318632223315617821962317856442118594693571371417407258182316072280093229560918055612501947448560017540446124009552021572574818594749491932856794173021514062865972645589645765976591190795981378896796385463397815374741134289699210351696989959895567248122007911034920347233771804327223521521378498058104943045017590999618849457798499728592307245971353790956535282503850681404219729481700812845383139837345296918707786295351288080080595201426114280182041679602370780770261496587102451801554758950992965190653061907437097112631618514834807925529467737024130923676952268509920384293355472352953385094480794461410540005862961708342842546198356427980879952679852180282836023450060665283135064474055477681488085485702220686278864710038260413882109835692524974081174651137095105016478833784183353912443130670402766594168401679782608495164855990455317109191257854413479716835718835443434012549266938842458600896371311218222610056470409111663630840692585785181081371865120102887018636335271455844418318756520055106785778452056713250974884546974435779583343401064716042868159473845544456745382473375382377781153784762725836865392008579494163574742346196317087024145048832626761288021899763995967757448074126486719547161787191802515657095333781911565426960818234492594703992520382794611201414505191075552887626259192658763046533654446979773673496822619714696119363477421262967532847732936159245568004670367278878869633541969676151735856877714733551100018669664055978332858920247442452939384312546310330360014435892717419762861747115120278336828259176497751191946812287648201512335982056969683001513569891075796089989978948433505594019073248737473576377387591610728107441429294799128303877250743099809426593035970465810216617795565873820986951240264080602447381386781153519766293664912275124714083220024942516226565334030475996178932138552288290865295537854772272671971302392239319589036609227043982790744113934442174390784191432838365038484863405505234103593860053805446004038336991467528226176033065960843801306494659065612207308314005065732597579107752341103706635175715477182525639129503742803139487657959455518112757820841127949666629355709364023883572793072069480067347529273772628423756523492352721168690730899816163181105224687823714603382255504457061233303754983022461133236256526461257131067555881277223220638953678668801668148081856568907774325891051480023205767820390574786077843389652267193267873315688851918251641991045240856351865861093657050100583991951255897415191973931930422896586535633287752041254123630110557652388882450863905253199647069404175272533251405292349246075974044687841437047128859062506096409343711765379618593298588816132641331567455577235594495903816213606906693538476862344197184477844150340906519578536868903306640440565298463993692659335967169962017694914385064661908897339884088934447888967466255106408827546598782205694662428600406340818906003268492971190423551707439336368444492893728861500347786354807965888044184933969427434087603526446667536184170705451557111114310066920125740950575964371237315124203781039700857493264709718364599064442767762775912969674709436563640678178814696181511270568289492037334731393343267739265873848451075429678676093994539543773491450811178725106848692816683319071081804116245638084184137918620784864776793745680930132988251225789380873264337059335343194685228045542717918088930402546213766522226054236240550070019302656370953796478179830118672971042427068194640343358289505130305629498081155721931052479582802789573505329585493155859516505753382541154170771842541456733507439632188956275515394517942480930021674246894674179654149120244844921894136019999273773050780778159345083455270149490936690836265272894707521740187172848318565120251049306495654969086174194732649911926434897179156285329732236805712884666473338518988141617846030077143483206909754210632539079950820421271310604996032104493861942632137293272995255130844419179551142343087773213742227743083527732338625782011422265647745960623458116903514167051095077914838965696069517257059366048576517508901491783444972518224398439884207426689514717943737184822219449895250357143272007502648422122566717389210224571227005334881312379503699896916046840855272062122358587454250154286123158614990113273498887057150283741661951166020357716921546624839083549284416651502420263416821591288338612647250273231666363811118286418018792749758825077273871128901607988818962729306015520272097518705694240918910248002400834994578522337977914229252174569892282378004240378576072701488119374669186655531146203749439855605883029179536010007497600306739493725623603144561789863917520065014337888908940300031871517539025893436760191759592210333554974671707820557567766683973217915858795983080505239898456912468740817512155188263888076629040153432697367596228988359171228777889242692520783249374669913573714712400949386191688864886463079450415007718051248460615200125876396315282477241778604032956827878337974729435659436791432015149153647223109541043547590541796712848396516560058081960267227925879456219423957697572330419417246293503458976641895499903263758257775687985867948027353941178786712700609267443678466477340579304260343780959563636757148480563470486472484247529307875761226036593611230780873952163461369676119543531175483308306569523731731730944468679773535479589169333113449307432884895628600457829600452109336023714582097716656675267584653667926736494199340530672896667059139199546707251362030842765425861743165085190203332887097523112967323217467248230461122097526200113669446781502958559184649677504887680222272953480813782035906701596291398279414546162145665870695997075793788529176801567304780778489119707888711016169207244819454099256844182868496646656054797337786486264803936031167842862649369427468680901751243989518021923222983195508374873035286899705519088119287271321160636170318030127047062117968235477355139578074024128366275294048492818044148050065922308749186709051864697470029674679562301126324750801123572140171453100361494545237777992758905453952730295810468945612794865052902852351952258657753630989541889905356103703125687305677056816369259487980747208916505092211078389299287785926150517723514489277513580545057752797102837552152740519110887821130902324618818092548378877133503352534120907469785450599476767316595058245245946108047219846825754597334031115561812845891868219706488407613995725269245634065737838690389899217917283105744100535519669885783788949454940355499979868237097407540526859190344102525960387165500167125039617892732077657791779106516486031787450364110612188052971179515387736960099428390585165879678184607896605546767682227188422737705076589267009885283726557859368724920192212217320366507754788073635268305689880323161718946380441124461261470124780015548992884265806991275456062547968239244063155446299338205829284098739954735006764845516731346318227181278552829278545414890928414752051633870418377669600239312200171469972061029925162579671269746114143324952906789392991233558237129277371841517037733363440092546748283248674166097478951322426174119611790616219363561108333589784891659305089605483187516997213014529344546525668516366567225528771042691887585967324226840299896219442192010000330652384736426555577819477195582752488787464277012855321196588117311561458199630993451724699842093430022485976326321660901444140456790915031499162533497861639234840685535824834762521194213458368497228040016878944998197566286820812076638967467641858947447705128961630997549538333833870104629725219350987979600583845791408157216655792366990030088693291758125733029207643423292307982860787619933482217491978159337123282785049142883672913951719929716560946071088053060049118908862418429596558447457447558360281392533321606923156771842171166188585990246180663417652781935467797730205530348937463896275111411447689281069953339792103650362804301882954578331824279050089926441549974355727027352254931576939173404712852448494593602510075822710258231545898611001674157368934724866356647421188570308123813713701465538920453889640266617106475875241864702039235589310328916806421480161658372760850286541020948136383777326215383462341718390516671132083754225476859353548677842296457324785501313847416731004953127948468833506173580120355822906546147157786398695274885548855741567941276861512006338590488507033353478430940050468183221897121653671671080310362998754579882006501266468966908747969216351209428292769211856638670661845996623507863837021559513263479024933562976733200069291109894301866488296426876078831872579594260650829093817785999989561467135130221779937057784239061402600171578074137385761136385788122395733454149316427834535629716225408152110550829637238206834948297451870325424752531398733830858869506776467611263568797295542209607288050737435625283716529781536221040724782659804574213493058214924614078583009555962115477232623711428462114138614077876513919095559714006460954636571705060392587892543574330574894501035958403711365150196821802766097402759326031107689466931086803996981889349182529804989760694359398167056318521764657351881266403487764197210285294855062788211166520743019049657181679752322277362517906529060571708150972652146172802915669278934290941320724786409061062647368505507353845494054081058201560499815519084294206330303651542779214294427747804548290900495583734820305704932428013524525431239438651899218608664838462536406963306997107871336937905502035076060891940116016483635823251135091187749769972271693538628961462575479859834539436332525849063080700970885130389400717183027098512622069821352439313328609338304313436236434991193869307192170157478500035880039613730863965752423592425987055438588270649783160303503170239549155654404345549521864817593346725279997713000830157311141478569782787282499596455036327034259241048420007196423857549170066036554598362828243045260871741424091500065745626186612856223690158810231768031104753268586501456935978179785754259408025906800819989112863430889580773829199466392738068164714828114810022417223169400234526709755726022922880347126520166232660051478561409610931037983262037217194708164908519313760965625238466268841346134769505692229682837693782012067737839582546906463710264919719240954098248392110260896224745973812734329628908147881902696356846419078554561488334875169237163142635696537166094184036522568954375290835128115815073715399122380519938688377935465055928984262235540905961417659051096273060723168618174693434535424289693702997923551781862785557912548159816910115030819951825414182726177843868441074581508458941150370810072774958886477444993360096739400703389045098217147711962207017451442078382437364162517094360529411362960527125695551631523352868145559572491419427466828367640647431745490294116477974812607798879178949605879005956128471656116219210205277143743126245566220311232835095645408319787958398435522263853093023790568420583746311628390404565210945800526138201708194511062030921633258032150423518332173655543151820812954022774315124090070987176379067880061279959455701782613273706510425980675039158489878890960653629588444395545718009502157232148751185569691505638084762133954410532552797633861997647534732987237060964299602720284246865281899847613364165593222895264212927455395512663875967477324049174517096841278363554949987555273304031611213136079850131107094809141555222586335083191754885249832734531380243125664515257041650142801426030075569477214863532354493078880110443086062611736702076007567473289977738448418032064804502150271459547053168299289899913513720277006997523857689561715934814085876866357147892296227271775065528601713438360460329986737106558583179723355151749908890632390464800628834069704587611868324946401775816972177057629511983660590932376949898116531540275127590835548516188848571335764945434617885224472830225576711302726761719975392691213607767504236568919899853214826502638166674818784507211140355286434577631449543037771573594813542301207443137375691639106091185728050133395262537952154340639644085805371300461949709480224922468204332794744440553453489762536809662921097519043071982618509494922461149524383240685065593898062715429497979198981355704072662908362499617738574307193002871192502723369364256827844691975047004293964812969318557904520879431074092157681042130239767615564080859607968901333529065595424573774864788093150330972207534782422508366024297003316692190464296759788674102955583990388489753046419640679914471766191851535588656714855396326597232779243709613283732700149536308723037002421002212556058675430069000353579437415052086652451332095080639968325380526100001644073443175287851479472564153127600567358825263332872611358637797916840035340847791334273995968888573476713323421365340440874145946596045981406495557540765662860319817274526113095115816823340004059801245579533844679076626205492021707280751467942367492404022906838873625011011760950371235803919266321542998731674798851065564447170514269297609590072858355531191901782095842372040752184635249419176824917542487673908782470055438976452846336185745404482918086387753256863925555851591234208084265947802177492925888687736877661770382812924919793025878146056018273569258166642962745461962707675004382229700526043224584921457420410473467864012334061516126760938044433002665092091586315044170503778899075312277873340503911870054700002153338917383274177003774432209208576974782355045739384465427235379257205033117967910695243042858304022647299675175980822004994143751588633590749462088928287544334163526461654827936177609476386744076905106450170454641073328197145870366510400404165118383083537215142075029862834584224495473819042428302966878203477956894902567940369090105207477166739261304607905781555886397725900395932077840724414396981224363712243209762858474738886191705502024583083029438285265373468811447878973972809894610772699109888212021544255133101139089706585063817051686062441972411626011023510255003067793807780164255668067146685743841195255548973748099526966359613796717834781090330621254410539639890365632091507205974126258338834714187773554930863710677591615270146889779368670864167742928171964569385889767588779762730602797335203206402387216422979646628363899138149813318848307317183519457916712648073913847678581491374720078991271542946259409995706132396824407613277355892039005753388929858787486534446749050959917475919519031472601846500074938818566573298560675822576777281085572342550344785420790987609223621537859934710567488951128092999862039602200698005250168293100108159004005877866407253503656994249985537323628145667265694675444647319702521281855055467751027006953025153681916482129410768400588355738173263261161619634857584715591865795974507182189270398963291221898948881577190641912145316430247722183159923002701941134608951292059999738294742351042550961485818242692506355900471585190467960330939600101427958741818140644249259518901526527663623706550808999205360526880449443463045967592622434327875390364158394097343836048345972873650423549990552903877222450918147773235706834717956381685682376546044016651766424406856648847159193326260250354763815309126275776898723927486047372894955450487926491643971727379562608941055119158780284066465832430311043241068913588733183587432056130278869364758178150717925368066841456330456740561479392206060066004014207608592557790904159935257827619877090622922087505795796569661326999766033850547761397046035096327485742958957698507462785596486377749176323967206945017482688615175711796511241856784860878638169533875451516604454614430991800405387772376120194838865473625409747318138240079171186918227397157775626283278789158506546778686498986555847937465675440003285857871075344374135354532184636176820136042968974764819398551905832748517722947363927109601088927857527501117993736714570998845050166315898478207900878339357612801139395202803538429872799951576107395868890443198563726897196574257458529319948970667568200129077006232612312862157668507030425170863399504970882471020310561608214695909166510607569817939156001654559195277887037778230534426386353301199548117661886206672193008356634368536072069283940459242773647234868202742141549748281876242087892231776856032071633970037269557477291060265541793651092373552809713927711300053247159670467803491269482337138864351984180882127323283492383509328240196836090109151980837508575748044499336177987345936256518444813650757172156285596640454090227876636917146038020432022341920578723624736114375254268964541205640164182945250168840961936149869391982383103579769097219042876578164821091024511339226842181624407707743090534102357748673327539001364572526057020515261243909877435457576711979146949442101246062268162046177553270610616926549723926915935528866516910805268074849484382717271454212738244141035632189278498000128979203083048966620422980187503018378045217052409886159201841997339900673682499184234396880115533609986913503171386723517579395085342113776418472854610919621821363259192908134636757929471005233885853033527153323795830282579300963716194776905549577787520099830366076911300076437211006515961850201817478282708539459375174326848324154335181073266614857376412757306705689608927447810466418736584738126789363134066629185559568102067941156136713167942665799063915228063788329635376594685899504176964584602752363919219657871731096084241763801551199790367685124127408486179450923890225206914421613840719961455374869627418802993424440313527431559310100048912742063333036849001931125567112281306158361812233931276345895474724011122983601137145784224999425882039070066488219241212862712752686736787707106125718331339086359399860523953528536350380723489015531083680802195440973954602938199158495744258434245517668207631827880944701705367274518038852766262001012402188390460786568129637686904796930676509785209659613322828944423999322291146592958579179289311216084532884147313718774864600642266373079836418034080525631311342787246327770399380004486001700712294603532813452406906163053007772549790360417370889280693119533516647469300416153403060676828389623257810384280677893788014364626997539440356297943983445978216802061805104590235816909473327711064481870744277885062207719015194895164608930584002350453245957657076713448388177091245328906478463618515462439662069149256881992080503076708643012449236656390009731629258435921753534250069971888360148070120237978975797606706706504852777874770062944913174118015846587475658630513861225062923207279506115176655807639951849894746613624723950978110252283818909803673503677274154731322032005919318974464083413700784325531820784579483777327230842905082283752947974909903467874271407516166109156815496671076768969125174038334630304149695388837996553693036671208607634710724052110968860976912461828512598377585318209744347785663408100668407423508923087538713464714111653961609494618613783841099618805088573054422422615500197579607829588255977824875285133346474432065790954837728554402013036210221358165603167961916170679025129251354711005689143350864037319080357936282054039818203224261891431031485640226315311494910032976303267874000566155175268571303700694373170720000189288872471465117997883803196503469820507188998321627619000979418712825278458073810167037661866152062098596889010687334772071707980448759017994062817223244817800708907740220196055389391454454790101972235702447879876327961776525070240825864393143582643897085082693320123412583396562765964346631094329670535278511289142213514065417594076314028788684611681833813303116534675141473922655722483597783014638813170885729182760335046199932322663593649206147539338774196329459589348987744578550019514708525878042418827877979501855462659999034889115410263261145464482685133781275973660556669247381643631059218677759084408341253020750220384329413749839933403648436518494070686215670141079516912465375099090392651655085795102291060992948513212084799300197183317722638920328017565420344060315790456820389398892859715126213175859735479273860320367485462409225874189990652946221469546531450876748490736560063348209783268912331087004702636944032675831749556117711231675100072840556954387286024260765791725808856576093093972800510421144485948860938528047738935380791270872294980514118306867061368827668383709434992619029947120860906200528838874317634489126321731299155171686623740730512654800635974883929043187393498055660921112890586691624533830944771989744187825573953129428175579376744065873210892048580035459006781715991615969523033294135339084366436345385201945611647177407906644892469987146342908405758709351466639331423945202239380038978500402112624983834658353575049490509849838595320801922602544723849669027456792774941029296465323022724189471246715146969552989229311630447756591178314648288399655955506024613112995590480078069832953777443426761521447185127433014825894671998793700338000353854804611496727389848034224709530197984548595378015351151593251683518276647236389656988680951458076687186088803162625498074900698183964155502772476397741498824447935773314941570079388049510258216608444187793609391460293723007891209371365095123684157582247939665891818968972662205820162684344272277992798010572218893173400309993374200574935514148037678585840857388190550427032232366478763363905784524148280029233292715722782128404660563197675106840713480462054907195306269552443337335053166574217589319160664683323103300210458839752499861579971909947893406769356880959033440477317120264915237578612902456317025590049203895649762809778160102324835728929472979185463923620951175945657864829037943078581205593749964191254756111760436930452975151025204755590774208789445141603593869653449185909961059061973748315587275205423048509939553211146152734384359012064019094320990970144337812514510938971909353828144913951271263641319878080177131260858845485622989386689503303858962137722110116838572133666942134193085132397631275286229602180118187211187993790140059199763540996146865816215364783306774980514433966608954586076040871196328624523088008416586594623394354333181262300946225110344730239110894771086148542718210029087682128749798721455273796010045400071689665120587786489648124126307904013236743699358337385321894353563515957911319020722045955980905680696281136862390648076625153373941473893628433646335931825198170397966121172198132066209383277543725799377285117657164686726244601197592195410402008252527257206586947413088697989299616439115301105112229656317728634302132215139259878299621380733218429038669541092160679951244697512809357530979024535994054045259517579520913787102822689203142782621656505828668521560884143346715162615461907776328490894674332213129938079703988049135054832516217351844599772756773694650484446714484710543483549475389805289417426081036241298910208432700653102507514101220259311346347257845347503114156240992381881363909752784938604960375277168818446971641846139242521066444750442610609977901427519872909132164122679564958985114880083007071929403714455684637332607394409838245629721705593431128023084414732384387572235598688440294202990220001750958684501540131900293781140737935448105740581776209178093301563677248668408964298735090119753071448795029993529871041667201632752934203156694452731955622167606235760244949645314878275110292917467483339897313037475153859722301305090707143790626033435195979706802960128815161008085139872585083522218709609144054561333766904912420274736232052053884413980383035147578229638781817472221819929829701434638818531529106570522827900094559941155228309569212026124642279383573610441808889569485785235583694588603143552920989776686052210973786749758017081927268823481344400462989515765350175698262251910506984143259503220474807235787368094148946584781324907722268368237298292201489908559577060209518881928354595515061882458940933311648717119086511799498246800020355841520242544574664109390485295376586443276641977560119702008734841509077084084084436088520749873848162682853798493864730772942971407494211954284015640558695088166203074160656511481524012616022343285455920756330390119344516223641586328965658884005386348824989648440516078536139882955409525478811120932020244588357697005110518376378002090641383702608228247566420040224935348514822780963081470866224408117339919392219635914733003051981637302584308829080025736792389754991093974227395892870984741963835741686316471773528333065092360021408864163406631498547343965967035609449493449859956507169121113929345835227983276928512989947068451312941939110685839923634295634543193647287463139318107382515083516626793732472923282361386856578348349246233032127960954775458861499928482940083615760383982247053911640278588789674826554666954144686826032637513713060146461395874263732771568133585295673719691744477918264205764044382874266128378479529046417956601672457696151265450888455141290408523754363651810953043202369870388439436989146594393735856137873661615917911325628410033956191488320652980207846163341364226566375086176436992846245467164916876109106660004352324234105305204218608389001268645923076616776084645065631415087355245439529187635322649169903682546010140968092170208390815415644601396616607283495000449519889918967194587954718005496137927423908831359473195275743287726166789567464411526353500274792126569363756055162462163111065013008558908223795387163193631778501041968975479324097714305937817145288878353436416692896496972245923300366870139487495585759376776441740261732941506500275480380434310082453449518349197853373741952272945499150273902041893452436082209016188970260663550264428569847893338860932706572749260995935132504749067674508028499656331862030177296797783606962951716646236042940332245201826735984284521885627186024328287489459041303844958503538518707379117609333046128807393162350677471138858347897357907148749433377346925450614715442475278054133170857329513416225122790093505810859195920478273142712266557316115065373667359861215605734691379920256581644755068297704730303013170228484050465150002508141387130555656928588605806261531285621960771452702338877189353857416384151586263961746845029185233169163182659828267092225969067697881340008333121026300566991090353984094653441364719923496919929092732068755237327728756850118251059110625169948617560432645849521244437999860950076799337124318135537958354417073609403247875344474478228792657728433989276193160328343426996800261183073329278320484256098333177873041146051298608450051577871509667383809635356641303056473946690628105752235497549495518920068047112755734259223591871614743936523485234443448032704841668795680036712651537464378151404748164485369504314084085765719910114568635731360545102775893526601857544804208541434188519226556330554798942002308170786752390332934120139454564290160076027254274310222984352525777438302620578342942656571435158203413141937336053796403855605614568658013124122231628903639521568553092995869417240219363224985078659877779156157059454482310853400701027220099038696056366414248030162944356288894623540481777348315997361971888320248264319874620421704670037171133185370806859926360371933630308470876650570676444853283137291711407644811292177766825483223858853969210988026109084328186128654422008672116257209513778740190248426469700997029903218479595662410263042522917207008257430017513596005299457771566930539538533890011432426270451933127385070315172381246909155653488068705079083137280470878087546126617683343456704631409666974116147484864520781712000922891360256329091439403452575140947054113823113690806043215132667956394902363386404964912192562375368669341267882854831065116856474965479527406831922836278648061286830945664628798333958737709224029174701143031049560471828531007350875642828811155789106510579504129062606353721765644698474700003752295962375945468946602597186292977277978061746060573915423981978616312291794268437546772711129497718882096466531225283846782172524412521094979698807150951188790469078809284853768035937602652557061086669506168497127586277524300169473030722154002193158703265676189851645968840528789250188488964172602659578480604869586036304588021109504720322919592225053163606302680419303762085195089202283702195578576113351151125459572688707382025089607426630269441964161786905541249775085937586014659042316629993659891510340465568909062987245687073551551324536078342735341197522294164842214646203965332544049111726915532513614483452794908391005072639453642033792627906453653376735090386579159200403706617142598762709606625472284451655882974166827153971467080464873884571112506872918965146209707962997226291366901607743511581480067147541862678999089903906803733355973819427220032914648200690348465196138712178147772462241621966267934930893129123800921292585987249541101860341196920386658743881355106815658531483693197209213012682995976115327190381809898347386408066897169833974329748669106702666654423027034201245166393260609334418504006718943926225917697264410131175541317218829620462450893450198235342201991199367497775312747525299221043871635106659723162886779139757123483864765360173855878240319578849101273674156835766929046141863736247336023210402224956728007230787197900208259332963354723965844163501598904937440020207378990675200868288389419581633932986337774913677202273147172562438128975759006358668371892090301696222082040431041933249484818481979276784352491428661129677450316929258142461408937426178708181933326604392976519607766615066223993188112205063142977177883705027118075345302154132244077167821399348900990360481897593367715068611066944734438145120361913689709507589812866373689588705007008748946254326158074282197764023981196017783675070681544696918985341005981587018024749270660591963506628316496220016814924592831078901874070488864037751205014456100616645952200574951731665797606902814155657566971167292017345675936444132871234676762949201900285296462915482899126999094137316735813666189177831617765825400480797082793470270413021573449255097707348063154670161116800725776710054159671492177354789504690209393666791789603063963945512890253459690339183999566585964830037519890659255250370846396620227454791527340057157188525409916678548717932974648920365107252344072644092621637126685266998596514233936063256250257693798761566697823547574789243211153788156360484852646794995377084811884479887476394247854236588865169474936143858850760954463511339795545157806518878782180730612618344180670930013689203756448784821945248693853391226164882578095667542254977540431867565569118414846508948552593579246786708245071988094916956225066912447634737375950348937216271921153870773901961630566171094976092170179271678270367176215090604459514035375942717777922269002726144083786909734038582205160244453986882912935150214168388382603897437416200096837736382774917338049897590832689601532659960101648102213366551832855714972382745410559818310568024959968303389194709401043442248781486254345482472357897166773661062988332106799203084975203330753355908086257209202588177777182695198639997676773202450831029566685989636543452117266224074704571140771011300619259557959415871171027719853883286438917742109352806368565005487254837715572227088834942736781939928353799502103842292299534094001802536154409041444160220701565965241270218658345127377497812533968411022524707362362988959869615990855713967495211432138532403257210881108341547220704946080854395558353908636104582887435638754309777126340217061169623882906285760991084440607750830132557273841578149587996607653393981781910188862183283992780533284960705499646611958150824458505312710965218610817953034266991291528434893352172827301073982380228914908921653702956079965455950318142230134467219887276848642430344559333265853246042896494219306455476430747752812350770832426531961999308774438803804479489085838059770477749498766737053421558455175438513842199382471762319004896857353768408879898827462309629680267113220652043704139234071851924408562100026735401128604684848585485720465489630929640574476864323643753548590983324408226644159523010355997855931194985026096040546444980529897841678480500047892220574214621035404881477485036493865747791205217029771308234716127836741961933299743282315105861520369091696863919572176747277939795626293365036948024169626532915667909828675132696698489524380011803940029619556392640913822737958263383161513927234057861141418526004826654208529788966925893604555870832235190750879790306182404093683158037481730881564533812371146350357132455775842262259279478335080414027596814481755554704939639777354080036635211366975611678475947737510684437585349298849912805972292006465011935774140602707073373758827486771681195812221751997734261266728570457815175358806459210585274101766520298317790522448400639285249856850261983578432004223555097241537655586408415603022681435665009773500893800944126303952530040115359301206142281459412757023514316625539239584312967909461827835744923543745224870742914976804196440301791554971740944508441651093282697271401470291117424457724474822348845863176656742845846954698673939017057751769796200429273379118534160615609230087005959131898703227735085432456621532566432823062689580393813173665210159550192850669562526670369020134845719324613521968213949086609687736159682741350133871929237602920299804588694713881007360524734794013314058613207150129721444638614512927825336870031140383959559376092583189719826678098618583874819847839094681605403062865943411761026236166991639191797162644135671104234070359029528111291461499026678317132600973051308978227373619435694434323461720713034649608216228424731350051429422760350628645161837687129423142730296965526909297719405786221786993682563945912090601735325197577692293445479254247648092238552131795294017818627117748711197878291551448498444530215495693047021241503123828247754965151582065886287399076073253849966291172086390192790659856984240155959214500602209142834046661840890974610718366607900703736543456993092435144305601307407014752542429599152548708105390629399202013399190314299528096629610210169417424205045094069807864479426067970676377292095562848276310160598351741524585086555892726254301990131724314288407572656191157395204956073068151735143542948427374497009427452721550164811167433346897184925897429241296152219183835672538822544414126997017953168135072966670860483641000912651026953702169521736974989989114781109296532883584154753247731378799725633169472511648223963678733698533971110034131283853943740965119896335722547782246559039983489327990387297823158284519404939297881103845074589262046169480891772778496433493436609011454614184751138157159459128059382283553054914316003813866355873432941188937742864260000399469591343672783115752091624242395226990676507109128510726004995451782284457841603295385329031187117083479528501617851315349516638824001409609488118985087014144647725333950839772223779204080771935174403223303862975614290580470979537158959814133791751133758373790381957356952693776633284052387014043686269557049987325667678445179430533241608723256336537592145775641367554107638165788829478462685051131325360028694150614097610663129761822783994760424609547560759095171660366471964310004592949284130284805733535875884361074677874750776808459485970218350602905481339504868854326700371252944941552228220843333280480277673605634802375276317120047890334450769150042383068444752876901153821217684458545544371474190864700581041286434939861071070877895344633199604566500608795604483457869068268369165307962095076361993321103062626254934054482732956385012476476253574292152199384765056945567254180479388099013382125998694715339436322143423711612379884965350562553110061914316063766720614431941580150872141377646375325810589943788591392247025066600461781809425248619917202308472389906209568964571940592220927726070883714111729876095889339447808339595613161888942989028474332813357348171555689406052504188318878389839945906259485471589694539801919829125895047849354133550444732263245038735585119569713297366655791335308101272969503834248948155526197528947337942511042776998367542248321953768777173531130973839368508001115814277795493333998347520016533333535527640385988348694054946844532089449725328012633773975054054748406979325547263932540222658981050266511164110498597266505200887873401439683178478702293765099558173740959917365917915786615773653948523842043914943593300193317988126819553900032793323144570459098600543348708680636341160859187946289848759276963924133361369774222199580326342098703890734032076854519497085784925188449359868648066301374899887690868830864866564624728848341599295597892773752263399057701187076132965196485897422365675488697196260344562965304983707148785407096651789180486200763057163535964043791635921163423273110130685021058027058648192481155687398826856292742336535753851411650457399595130541873204610637452784827418901449738807516713622692680687943975110062436216454940888445353279428951582980739188847728458074602244231535025871898093975304113813344597425685436147367784992377063590796413494309244283757394443560434747720308703975161848188384590896447547312531059890959720337801655923709291042393335019270520839021449792477031673040973567881128392845236347242459024696890335076690827378817262069594123318085501226735113356961724760865444429087284363861116224856238851324578339807628090060205222588505514252979233280967058671536554751807946149396888600580875307510842625005265226274596108323818663775464696082576947705912835455681297362092413486739967326997293829175086955890028345698643931230455114370468437985129788460350462907119614689999189138650883098962325009192092994080321089486953591484297739162175925391225909319644491469877075786574212389395823499453187574608434329404926661032390796449389830949571243739277239484402821195009979203301813441570910535986385207641323759186941224745972558068261503851524062248110791170254606090493264274189633126212628074830487493743649491296203703613310374943421271755612646818758016253905300043771164571547625292688336265928940533381004056885229534826794248507571357945234869657730469412791830350079180257511906142291443348230724397262982607268956107432524557055377611195027074967645447970725919782448052217408631596744051395664888961361900704160844953951777929490497170137398461787010655440780668645091135157155238962150609587928206550231374486495051686472710647342154911679931531175457750385176437402847914241439090213404145374731107682900149713859249181864915345796807898769808571142548869979070711011528050181063650707840896783622285418520495443331250727858607849441144575887477296785471530972161696582810238887319988700560389857870475002229325317181557266485552338044995818804871079672974001174366715355488884263978389630111952605058498244491340782611212479095627230655112640071849903240629326139792333066598641367685156774692492197262662425576200753488162087514270204928935384743454502543714637794201556347936900342239430498870779180736782501431106323442370331776511043553178358618981615691562230723696267606223594505792947157245837923920688965182801930606356762243326202913558570575531571191678607408633150590569075090492289418429130529582613739639359268348301894964124369636427351883934018108647754858445608200319124422635750122951716285631688716894761891280617406435786366148853690390358661100923850269001337187793392799252880037762190646959451974638511491282339905619795113654134777828541547033787272860571248386927389021461179968728668955448562506018316237532963048121265759849132305997060763743166223664414655161289211338233672049037028482526708209655150530163873283024566831371694748578621176540556583764864028272863610669740926573707318064578159785476764576467306704986947848253160355578382995474861355848481187759329471274133765128604884310599830133366817388877547880582203044656717138544905619931972164883814463705027212712160273112760881025004200612970287912454008128811987969290986333574825058849689914376883046818217050167343851016356423222815139741537547631706971986449620074989780964424183979868243734075755543009341236605636979192462093895598125247841247312914213978252760918283701355019669854747022437815647348853812793451154607144966551394753568201587472273529640001829609516372458489217580525540883584117421169710072098185614956227778799077178928763976075749758942404094671063408346346856766264590460466164754399762779673111454430352562423180669789837219780639656347984580337075022936115491349358275559884110125671208259794392528159561194231726240011978990608975549098571225940733502877477478793426379611589587619821285976002783846829673838766842472085077663553156073437263760784504030202498184649959726517445428900467006596128276853578630859722516368432233577507744073439412607954374958929352766211824455612728032753949631928879426623964675825779148164710531550312611299316624491653667337381865091125688625286113271575021750687436078287118211219984974695454806984447055603893011640146484396171030911673514029317744420108300640882488858377693814210631377520420518606127614861217042135122216211512273649179084199567943607597146078929899040131586391021035698194793931824646646561409921400238402685452182034486770234344523954268243686798075260661162845262934847766021283094820718703982377596659185189337673331565218252148680907011178174227988519958501347563153334007816248093717416704276724449565631474095046649492382974037239757731002686512098504862789203061542586845973003460470731836674494182688826458457103712047003505518588912679247581339352710406954259219059166961910376463804963202460013446363183577334373680021132342039397914747592658811699058572304447055410612256265231565913043435736242314584299752347115166672276576914408607917160401492565657374885623521383296765747103342040719551036479882535085723639030595807594351132217774763009111478433816596501576456322602086045311032023296928537251882750045920378318931873731644720790870106546431122193480420147099099398667472196819095195921699235163617002615143558172984309873430801827573913189097490959873960638795128801400691001670661935631433674664019908669181038349213730446937951346170996355797746722602422663366067536111699132285485233248387380326223101084873566930276894592839164982418800397938845729462402721840417457038038772840375712191029203376078876758627667874552843526325481582279988307061501345319754706014126184485502977162424201018291904872564030819274866842023526293719310139540916624787403137482537698413083704551486144170955865495937678602477921428996386650843164671344190979381802745942990392880163274086986752732920418703281917461332288072378159395158946710418258753353054666021023434854443469380019969059133388586811353063654420507962433033848721054878116562973113206548508108911515139321574688579183586628506500572909106529573929432225578570104145096665212753605113419523036661482671543302731970779663158255916876205474986692640513126232739087658905037691915190839200335195760156516494074765436980479316820295368750551505383110518951053765371509321154190424937659263938308576992385645205041877566848778297000098548070940615058119884984150509045537514331201558742683528607089715898623133956292051980913516958358770537205270232814774809538995958790260250507922056262527206459696651782137097858579864595911027525603409648230932789623656022250832040273254395001989855209904436105227388784828649179044449353955954311565799987202934742489148885401697064084601891545874220965080961696669802554866507381045094172386641172506214555320763129762952870010938714607219905004553737348248159677060239160252834806209979416262129458016179486542166688419403001523079051786077948786418999634164966960688401716591501668514504799432171851381813818954437788060683058943490271529784800263112320622565409859404908905221907202322229168435347423840700838259328794719864628756243340335927349837882133887178847921813256014210468833922992288317770617033889568368414493243359500525719728817837152194533489223850106741670518996470441613347654088054387422520832424074751534093896266839457622332126312650520613391879106258832856811370880977770202467506353927125144907313262661473206892391928119828580844210014486425361758870948109513267332561373641593876129849926571172608697005840017796377541768519489505090900196854001526150778011789651689658326301039754757688309268386455497927496988859594668492420091391647640353458669433907795919792242715050156583228212224960837516261281765102023739872353401656040483827077328982430397306862543380449578215318018885797628701331761586695669412517642578993470807278462057778598872014978855265873669749883638857834120092505909027807756174816409699520753428735493622475983180227222816098250117653918882637054387562384886838093877592080785387168655103943845782020000731930601895577315667469829544997904441568253442289443332506160725081488345238145687318364595574733414623965219071810068406111923086732794326675627927642942290755129216859641119200247412041701570659867256782713297165841364160014295410410232960948044364194847615549081966080024579135391216428464975269273402629961399771874509294311713695366827533958461525091084352368804132386179563593577709962351630782627005247720545405827141948461561226146334418364864256624150649718640317299759503344567668780780641315904772730064155515783673927192130300001859560163588934226014055523432190955632572111892348375898825140327988358329689180365132572079106773589488744109316555407575519356854692208924403776555229649744128564169583351629735737349599145896158108205797521921054081876310850232878973054666700988323402719739893019946829234401939152740435163431380804747045947082320656592419240921369081317404242202839385065076280357883245809194255311955494522680878406387531424424542038260165244453624152534222126214823726714210719923268850810261813395534965539206046070301111311971908550027786415852832326491887515229976914898286517964536140800297696487123214027465754610487810640801906763342364976545771471414674257038654096018552272180702184613912294786102536795683202264286347532069013735828024751180273196109122086984407500715735526335815642137446018389937553398136056459059623272448716186575410340691694510254890426440495508869267424748033881114874006380169773261554876465296700286873304759873822676969431711932785946791826979782683685430683124484101626010102429850375485138010283041504385327159449890698233908606028783038871430167675224655400636152797211810907912191189955000121910994485820211158915323078592291766398635946196684300445003186309698858121865279057882611566103420668081266757505724542185206146725809256741705538414664172713977631548450076396125441356891286820132916058841777606093815173960496383437256408718151462216741398562203880112986265778265885814225269835893460903754980551195573986390294943876940910168604267007867718889449552416103502393401519835225919412615372375622078727867547419663201094353211796118476298174438897718740254322145277469024134795254649653934495847880789473351187823862566738182911192727899605378442132090794568419354112401714470773195062619551064775306808812280667871833393990591206771798425958267878367918089654300893414420944867166862574380107359964270026013101729787743394986831107761794764229405018600958229399178680630577453731948304287663904550371992250631655041396208655223993075085971692941623939039894739053611543492877301514630422722549880863586027767434565513560409940484771240470320920649603684884901499634072481299485213928061982154858354957860869742540406787292888764131135730947905004278870658466576405338770646319395429758646964243228860205511372204267388744909440978833822388657934780990570704002658396625220787814945746892580713677081168645092609760556808830160067365074719674857493646058804643823690058107080730209181832024956265795140213071952438284010985536145510602573348995227022540701772185866906516365113386705315452304923055575199605970028823198278128994135345291995811778618580190247863459669844101873257566479341370720221241808347760328300735569051182868872269200072858814884267594090984906198757830584257520166554664470831320489815707625841917003801908335105308605389800763729316560605293892364084957173522863571469715997750275727210339266504326911159212183154590294037389063285632022354838486625189692444190323066053891756133094211854767535338879975361798783604271022518952726846839613776436968054785907087824990276299507670458260913106906472419816309652416147571041537556724816014335892441411795599073900184707313977077574815122009730471442694441061951266927409183438797459212004494525906290970916495853994185449389989335118771630922266827196348087728627254474478346412157544654314411241673764298487491388356273632716200694712243593315499178539508169176107629250222832932032463242577886088889372850588003682854017990211682986561413911766227928046135097790862456107661199576397296794483428308655174841986671903561146317673786785058222383358031335123392632929113625271043455445576530278278524527322469038641688860736616888896743105841491877351927407293939463346103817782351559857054638480715061467396437940041649496005187103953694328149959968612114161385436471387290561086830824351816448300912882185696930570750226621858903888456968907174375428670780659994891940091283421421882030390520822312152817472428514892137905942871119959295602818828470946843396331067146751580262014783008932616642057245605449590020148952647155069529907266106502168515001025614832855314208509974699181654459787725055932445351488356717105797023780541166216025202066229873008072532451638286874465633184169601656167648332678727661548911518949565672438636530212573339479360819294704774459018976189882699385100105787928952741454847585616317155094346784176708135671385267592513483841112396576181489301698016061749185411433806832775255809669466184294823299812335505348633374647297782961018769034417044092636073875328142632057952979430795037396136297660136502667293884753964091917648087641394028902409304100871078035490482120950340517175437922150595203121982024382804460083425292590334214514731701697116255757285017957425075102938758956333458865167184359958533058661531795644413057455672148578491280575588792442596708845765443612128064584530809775547178186656172484513076122033046822777733954323877200134910457498361293322464156204919913999617767310952744602312472336683423732702872325530953395268325721186627069816994521441224566374137490875896723866274713458586884067559090937916400188527009284180310336640129732680544292807070008981622452682770994930942665834992720256755578524773091096131928942176728064047323304606875571972887279437031720522136303255976348820647907001870409324138769312365117805791751824706733788457350576979730095272816654060740728484576723450279727100123874232659281230480747781638704924460318215650842768559452861696586019741279059774361791817507809315001883720547876114236344261302350606204878760311910969515897524727035081703179958594861681487119416724275202555786208547253441720269792818892462361823633086312377016140146176564086382063543793247851566165494323412649739362892495436072156530019157027509651759333286479353776393164667223059622631568209761293646536004225889541898012256061574197136869267435867202530247729835384363764823364919919989317544674354211838747776753741350258445474666430354430034058059084813489669002121630119613974420137406103690251674528221083252164863606903556393505885370819896674234447164014655318715880345783734908440678659100132099496610895657984300484476289442159483615102943778115873028156112673258289651631572329410481444485755670496704003282066127580275448473488273337179709067612714789016761535056696913496152512453894955437235420328650928283047790141541550324590243598378031449722523366274390176854137102205396518793048627780630660300869461117756269490645518044293499210852485273011053078685505949846117110014361525409392779891831638166613440644126896320572785902874256205068380228103504053595817342398945349636212235990484705615503993577942601446978080581738127604035215739727554356834728126810986787338866315016411397967107283983737562125926784135979161926976062752525560062920340166832464882704405235196003389134208354275516048268215308439693799312443214717195963900870069832014792895123242431555654936065816948214214677012101640990144896094671722278589537504874911661598733970025398525218315919480293230585610785910229443066220947296445434210472649698214971769556685439540359575848196086324757783988178060935602373095052466032236684846141673760192105782607802746655061441036611201305245776882307826602056110443508153075304532664426219573097120116902812380769401037834362045015594108349549829971337622816376475276695854430060860437108397770709101812186090616490896584857531754616759563172917635693584985693907774306345125423063738597258230608933695041077860022292992741494135590152032659227826628175205303104902855937003353043661149279526795689155198201516286385661864821694738503687263122267892857422333713196103476655719438556029306032187629558656181478083840431222115760360231260336511987804955542808861578278639212769844727640629447013059533452633950929586997055124509174836386291109465309901335439432094309996135996409666784356964173820642183451900888533619456452223691451646477173585687251453723517030044228418659676158639971525406890736122997077696529540635748692350192597029832818532539661130355824483689754021020467156327013763737748457855047991174036428693037354141751740458281981241808365301178433969641575791186149408019666342332532591196621733518846262540722228712678441149407645621530675699593676450753678920637327539144036544067644374231122548962000820935048911505538572458429670759002945712654156787748906321102939343189754131419317348624921378595543094577749710231172895926278342288203970774648896207257199047493408477160014332204785018201288888839191916490159500923453155875171559843494605260544190988298679021345385274787378141756233316225489745846180684326472406789826781287335820475602673296470511171024887598984020522532250781883074239067810398740112174926164521182019491262030835807633808592256869422816524509540563914475492087232179494628915457969247404895362081168020043462664007285063251531958032948290720059474900226171330999264600543057430431637281295097556792837033027933412100390398645022470885249851359032307502310503828885736411857686087965823879023374977756238350818708774399486438345925488724933391608588476077496881348075618414703156665729183104375377421132583123821927806068305674201568265709576226050653758200481694797151418980857162398615365228644773590395422844226252128160649364880224259629369893669773710396109042324684385899428777561961539276821437529114701046282319492008184841916635783175626727055537403532320524814701229908939162163825106266036485861935221683643163222785237122598971836743678527904342219501710044360896680793808573776775065608961022025539072808750578852998037249963313435492550355208909326545621784485459027925520742059343162662939934610571039922758535167893572275909715341684781434880040081974563684216491260770719186687876414309865456618879225549965874682694233843963271873729278388791953680432959781456149682815969100821131530264023942350952542541385561978460842047288515510659152318393244649214770650754389184688718247655010754572558466317244606816037386500352629797251672977211002216099838573175544776064930656757912302244548058932138106812711312126786939715499494673906636875295292984240842268009002388091349995245642172223645929224024724548079262629068657873830427506206676963851422894945332700636925836463839896837133006001389595827832376059454262039115497791806420738558416765752307560877817746980521901794576806460183474287557788674808137078287202238262144289705653406703793743301892326198641435436320365341749448014119235895900986990728095907734086611099145726575125574023358848753058389426407513772928715288240089648777625758929062924778595432489442332069908727547975955811163927907614929618527759471492364586086103573146333895413752045741930239577318309914862257690624575859451266815884925206326302065740789170328122371238161142081171880584164897881265440971475786904241272218426492981122867824212207722495003217727353844692450424330621413510656904649480972498579559218785810759422827695753173550265791289665695153288524653144012779420025615312818903578399670945897346643850860295723581107142431870181487948935853983260994786268293363642294680361107094944345477236713436045357107627729334986751997638578291128369434694052215094271989522360396345250373478217810088714227925870650312439798115651403552341361219895649864868867287576347039335487359055769983661884371353324609975324962494704293063938486368099005474417421032617845187786684254384687673493871894729115549477344782008813223797936786775779022941789034988762414787804081464379921885440034185753385089247849498014176851404932741608035566375685248615222626669779247155879052522876953969474618045195177652680960627923051425994897178757389372737689286992110538725163331847542214971908924180912433114440964915777223629327802688376922864306968652088674640898144999962903215765306919453639777555896635360886007325749711263738719565319813291503385036103910045974157928756224814585301847389316227492619020843646688037464139455601840923733789226582564029138998041852334708447334990152510443545949861426348431739235401791772830032927167190716431157530392983443566687849837554035922169888381652207126621583363011658514083108946433623053151530888696041159276328476454496020848452944746667788200582437816254372874500720749753063074929654382121933914763834679240671223482023854911866474258794195753156505526263011442847161072723645285017583580927444678029111162170262693919337201838861756247585498621144548068876495764798619472029829248024001653323135602743805283921729635278694200344198471669540274261951891343346629945940867615407071859873683005707580321157118803540019566172363955920443012232363476368129668294301317380456896440937592408686132896912147044819615556527647097820030018214878235961614939473837790993195053496681563111522547561319057474293118961748260649364600191838033184591024679122793759685591443179105540261247074320655161411933684293265977280130486166973585751178846937150489790541707935509207169083743556555568405101291882877041220765542715236304655255099615143383773666846269632469375736587369000792853109647676183932767693822594589778655433267358409444699774642652743879572816207574185008891193828945881560003619438462101957790648207878225424564640605024556732482430690680031941943470681160668758574736551299564315985836223066716563913133153010336998964410005928822999349492887038904975533187242494759858771880186387068928385774654638913157395036047157585814835781479853228893556829190194540264084507323537219146257896286415329773402790181105121611313273239894202568373055113341357970306329222591283669447455058093527063943860574145042145716003490903827532725377257623306710702247665128770066169489922654363589269497518865525037135271553144204315125619365684338414666931722966754088161889446352464113571332431022677887039328228550047676963091421913970799414867649687138942526374977210898576306065325408984552515726002317113142891986194341699813384881021406968282970783627353592884551967619087082117947344884320284464496918339263757318158076507145380217784092796231240513929934968402730431983650630119782033537164012032652902772783973400885557756385778301124575269672425574454157018983018896195425115938500049512903693490150493296912039781787123115681831393709851876647456891013898899564237230249183288904981541960277505045161248174191497966682340537020264245173657500208710586692349642201505802286272857299461586544734079734707664924036898898160026801403430187668058929305143266141340216778633378945052134488534775391666591686280181937038792806947443902125266308773825201300081241616048909454106791384127531254225484902409975400518731097386282646761289888254780738112961735730570840459663408071887963499563328038230551787107637412187855939395536386333614024573492129965984545504400835285931214837401559411199160411457254038479633400262283348708470589403852383245995627193289872986565215146506390197972023667888487000515910794591468992268964164772857632294346910882333701810877299514055901642618699111868039736963083072375309707261511963742002528484746233256443672963138132888173341760692681611083030666817672234311938766898312635397669162033677541566620717450201789942155401456812643999496839393549156103435271383293727626682206737706359534828412360026903070218914853229471771784414840891070877454331408906448882655002358505644513237034647480516481053550598228551856512548190823624977481095895212385256779186842098437523375655180630073781576303495874776111833371562069774181690471529099414525698907378905166213538255348658695503130897380107205756697464099726154092577913729898021784696069358914426382509430038957120203113094631686023180324690363121729319000020771974111844732651357304174684392908067477476922642638999600869729296461254765673853679070651777992280524982428322054140256457533364683224761755246578709111540225181480434380892729477825101259498059121893675029173417962333603771755558037288695933860068868216562937301939510238323543897726232966670581729596701957741792203728501509243130451256632734027446017131394582690574444057049376246636839342770478987579171279186951091715747898701669803466352702185639076181845643288730751708045473349309718021025682661557639386706479228417509069615936521098401075151021150153800038487941379003165993097392726337995454257130165194139297770104110111920559231476957242756217780722983410601008425760829777912378373322185953935905137999486518690073170668036447453944262274449382719913704177877673724820786330834136786980515018863265447871204750692759115973545397102608984486441121094522259061436736710893304507701164727766688182721091892754503482966085098215384642691007153667473473291824337549323936558130151698904502955177908592666658379500245331505457460377175340560205867182724439481535545414217398748217534733355195395272069035101447793218731691299921236982703098929202873878004391139987766579146360890199925830883179201797097920088794011447422284215346893431761679208598564461839849962736818108184399561863481025647605388408673133395755610947648185335013358084122007555154649634303589204159038218581208044898585266838921668328681700454081827073368270014413018933426070185702778357573496543386841261520871964990290497065903713695671191440164366499138440581189509679675994867600421223264464856652398650299779158460662761827121003261169573784997463619216365091115466797168159398623982662324791694656815292424437689366860394329691005140024149874004276288545608588894053436932405095818444583850295845783640653474048113081505755790044460616406608020866911935290448591322424490224096232578058270577757392680631161890807009413278596110448910216155000515517594073558748256121908063058058486765694449459626775335993802176526211196170779036931235212812361773832787897966362268185660782620717455723269176102788011052275219780605363775109391401249404802140998475194930370960630039759518449979812997556783843803040927254284034300449494621718113065569307028601915866816727275854899379294787051492163012180264964677853242638958620908606718643031487724355457618278019402262080793896477386915150418411215348795346524092078911240295865288150955006577116473361921663502529205658688419934806536787714411854695354524187694408324179221015990724675282013311579738821516552241135478659597074025732743676180559525873109962789182513906490965442376872859236912029950034587064956300657045795539223381661044666061540073998008923450697335785502963340603335591230138621701482899553557388832405509125792972409299993627469495091347648781211288502213218232199826104334640400574055832432867837211457694523148057419631695558308693003851198437578607838990397395518473728449412727258481481897250264642770085697502284058924056365635867491912895363989626179637597766384727454451506239498953741837041653190918484703947704324192121428646972431890682076225721316104777087702713868071380092906433317380742519404478072519482954419474428145410446358481848047176941474307925411595267014738656970365244368186153169858653743043948217448918942763252704814209241499313173927149602534844483671874160622958016858737797152461470790898711388965632836372896516498972111198886469361726255147474279196868050876931925955010787084526629609529208694889521836337781396650169785024483448017558381764511799797093176302021500830272013023495059736972001454819756406913006038339525370907317393709403833812873713534164599107413083613361784968138479529953953763711263092617917070981926528320478261554685675598487217124702961296689014545005040612939723644773877689083172925268018969499493149591761278437237813516924211630008068662712598720578454004901483453001593019296954601911308579596499569426582573679077744913693097310006451953560605664236871979691898216858842680622935814218895159746594658140995514297717882843148302990363969523573686959597527282510802276860085325323272344749787937401758550481549008718375884346115067658971428666871222299097522455166735548431041326101657166307125689363501678975044059713380856966243226566729521918579948454427303081691350125363016800653724921985404174487505850536454191895464077775171730844735348087112725885985811559213683881774835365473320589484866707280393687780572401436514069664494673689557006294717470487091199954808529421810971637463493512486744984456193940920681035248734411289740278092492991693478808206508785767746057195053268335383059917412944281979861194971034944480898724584855694971626008108174311133975066746703308263908134726354902122269006407206744769879783907958089041709821190190481335789941316783177677531326851385438461971741765387747999318986073244969969826362346347258308687441238008099070083675563431346096223541880786068984118849893832443237819789723476674819086567153402393476180980523262221241097231096735631520719920765731469841394894727786349901223157351972465620087154095724824444223598299211228365701946629770338650774517401072737993283036090469981383230943296196777108225974450732292935682363835233599773303463440399924552417838957961383411189215866732532524212839388429748245906913884881503841779547670979220154240125337652118864321081283825023223628041708611842405888636597986779519718889099241250048111455588755321702620016198724749813241169050311938923401447355249860267221169083491415726172230707706161490091117013463952128867244127045689980296689945246462056478776496367906426459426505063597342069907156085522948668299583254880311794474983487678239276584558722226724490090087964133929824799305436099688656864324132802142143064587100330287122377641143397836601567192236414395337154696809544633836911143750232732296635163032577109691003847175374879456048183408517562977846717838356794561013236989710754295133531874949722406625579851124554202118509735465555524262544841230885606222807949803327001271784832852844807777488586947040962449070081201017954569610594503270828117276247636254083681640119384813276045748620717529005913254064714045600881087023070525719874746279558562623044002830683186558625626469694468595468538017519415944804220525220083604773136065596730117584535800470578140891842532321193852490405847221543467156312230413285700044034491248885146026768290312959975858128081189390080052387604830762362279172414025501393883600323781480608785725827814347456799042335033758180674109809178543248861058139031615450517783468655050150715570463920112650295796506603649655181184611570523063344875393671806917087579283075986212172173565009407425030201692817023151742071561540412599713361323536873851899753214483210490956379228442529949788416282672075383359520156869217098926973871710695608660587604588354416353677807201909138126413449084199967516643842621104288960176412347882626253149975167253497235278378286195134470936609952601987214367988041655820465387963757104445517618292395940855910198339075727815813812939818882285153845038369622659491838200615139264424497088000323558241948065850183099758897840288200796904698542514313347647273342675915622385451256391674907701667650848086149529134227277522196746446726309027841668691437411289525604311968549060304463089308035114767872502818144391590763940662208448914033995017135167073491138526325432471768736473643565783471004981438427283694054431506312093477748826890699609880946438458524120069943293053195847103707164807446263192702394797821545875618851941578226273022399775308643551214755081339729664093514114419118388129053489550040285156041513269069662734438635829479958507219603789910888976463012201852604806177467327249843621156204892047383526252588595607610329338933713024784950351598908526736716552388250260228287886164677693389939219636144699393267002587447098389500554152813371671526898519815840134978093148146694111649919819625945144271145339592711547039171959680616589185842896581581572045820867043927151679194933086742959902817647193831935403003293351180198273816056169745781184587401745510968331397523801172124412515166658776990285254817850373121105797080073878920507632235449690570497795791930832516241417573736769941649716755905938069650987406115466393160949267557453441218204470377701284177294182509174989339768498108529168262672581404889080945811585182119088271735616052633082449230270812458071277311749084712931657799002486762728643281013493477114881554272997774397525706339220801476270913539593559473923149552785643446059858685168593000698926227477278952564073742495070666177142057909820122046774086421554507903333063523898920861706108222296048602335965670956632406147866533238240886895108954088841707124874550017467902528335074198629339738731267868140248556661555157027650132706307695450537824666438923657638490663220552919784485534173176994533780124331370528379336218569158665391075986155262433523437507626568424371393518948104277258454286837916980802341889051932521160415924758596327915655641201241699121425036109366167714835752051503677398454814371954208969201430013602188327749793404671767062492828886764438320661328212960679887745202924962824082530697052734797739315132735149323542151766537986354769752643608951420464015859358219664240305475011767234667178574547460331452388818942912757878647813271309345339470013224999564989085087723264124148055163287248789606440759581469417958537514114966235371962261780330495204041888218258045160218382428877175647032732059908294089098040350574806290592147096381825314339006802567526903725641660798526086103163573043977396372104990265612250175483676794554485385624283621382735894190078447233729029262361938497729038052637954729902192615617421329248806281485015478478348909446561775326276944375512784496656823286512082213605834011915712203049759299637118344075677165870425890760621049804304264798710793853213431161650934864777403116039434846121939483282784112660489554288324841547284338858442846564199141898569875282476295092924666892015116338366299852456437291488424123849030327241668520765094553835363938961915962698667597636854259518301669134297148457960990409457267666355229570802451623420369893458973759936493439611924883917737726509626495636017454226159582204076087129851460686812122802450290208810681828335829208101021357742974430114629309793429260659482269020202146039910588423526903574800787169978796915354551068241479554918480875077620880513557333736921606024454910188675702507609297181253823265252252453741933613038219316703747433715986475467583475033748208118826519418884230624928055241459145507524354552895674031785952920546529042156057848492807032269215638409019544177342180177434768887437958040776831044004286064341114607982443663768451383349831821319821262558831082977368746675443793878904431407337617778960574096025000259374847018407631969825758099451241562893836401274626123628556559993780888198455667162986669108968714901384359181750903310836978769672851127337867217177239217143890679258685272552559186665599212300930317191437287475630799479023685024540113608879693320010340461305774772872777834206913413745669126182891550798950262023245811777826885373758024335421313307619391986936093676211639142176290891243887737363549592014694476510642479890807886769292935197639352855505065956038784755517117959863746190279815098708374376778145808024376220372660535405758269996826141881398688576004404065316059236902436587005860024660484333574605280538676515566488487971048856364564848878169944396515615083850614170273407755159044347890054851723376636494524513783255025646837126171113448976574594831524010397630483707380466258331816613255603458853193889772809240769722826751078850312706822936250399946770802950944032909813665663785062727521734015812999358059634110056765002183522183882196397947493604826339287340326292484587054120810996757742747850022886938301180755335722443591390428423647537892639796789861001136678455918443701796501510081544193799734482819699517107897519372140103526374333646181596683673747338807178272672277163524391207218065837468222676905788205472733463685721999937917811637951241834967122495084583672357651391922125967603050390080000041460728102631155686330576893796224143071324915881674025115309699110074055804511323178271323578191679145728247420154310767556676911994924406265573427399715741823439507424364176941966564411819068421553933824227891703412052138659852817283979485181678966937810093918476141325713990532043858366217810957460057558564412318188661011964179071309056347449167395284033961727446401340835448432843737776321189297132745068653902830734044127116931134056045654671123605239313064847891926814625065397908544063312236675312774631391972833266296018200320012801879793195610022859438073743832333192823147651981261396522273815880523367157254808780553606397653693450441643665170396787270032423948459643507094730296831359114042340867000699216598055105248070339637493627313017233212727991709322110648855785413544035366258377956312856065715089367694254810622886974112584853500861681491303532541159632419813410723294929059289273652996643142404347333503506382599020071610752996805073853124100007354894856814024383292313684510434228728832934209150143087836001379728125952439887718079608250739535123242778350994186438295649030777371517526469513685138685441739103897106667309881034582820501402337138979383590283109254967126984243488590024069116946178101803146591476640564058868369446100863234442930512528463110612517942309164539958654023073388624941313743988310705681963227626035657145624950026603359143695361021009779395865037120116457951048561586804708079724183814973490108662058209688274421082274200497537004380439919981980673442427984749643167432635128858523268356351259403673820604761616785907440417116975991675731802784011709967540365733692989818194013811826809613464273974853304571991057661897353855381110701188757971240811282031210523507527871629960509727895067246809127073900246196657608576820352904577579507256825382750835728189300317015733429297322435413138703638926391750337178737600784451170387014793363361107942288774579566095658623120072972469001587630509695975848801310511385162893885861266520937139420633590470078462342370278541228315908688251326421660379106890171154078448434284240025210488465000620580076664143742542242716246926119237447544860064369335250395349576265022266182132376588413636410106656808956396588940137720362040056862788057566434858129878569694279229495942224874858937917717966868773573716775524153484661552752619889903418879498713770285853392137413284023054781897958222916210150840032016729083901432337928753867754251436023349920561452533721532428448313307601774733212567554562406462706760346708915336104964572416282986407447766568922344257363458606527824494216898145616052179722454398035063662913240845933291957529073923436358737014871471492350910376002241451196618372180664853208460858708761622297293974799626891110729151700498893074317914458939101493026477500456800056842118018857241173444676651391468568317572467606818135998036182431486525061649729665822208106003520210100418430551427253222135228243353409421579003370954437445368629606869948363586608553266224431249921536591896942713464827253543228220161246805393970703716522299661245712783331198394991074865626411260544970670277288003920469898793182901379458992804974750281214920022435088541625792768494425293778377785386093155856389797480088732884542840559371258700692514873884979090899172375220055518317313553644876731342120507052015909727034835057597910613985498969026759361082152503415632137409043460883576942460574635613043790437534063933145165747732628263450794957697266145687385546915498921240371747004906626459684418210523367127566933504965961444822961389837484836775230241390378989654728814869734823592979906739862595932550303107900139890423109193515555186637719616845148049883880563355619401233816940824914991854941244774342717082754952354918574673124681274414434808819079313492150662986088330798411783538919104210138100794311850003177314938749992067822282887475980108064557426940351511831662718022155554117998373968657487827401550389279204098240433660374940180065675535887715027203321636626004376469108245161657389107234287700976722122057826936186952715021446592904768678274838639360369622510970441178731870646306209418637011536043380432176099838259028184274292857858416584356573297592364914167746028678371976630046072438442305735468743908273576777565995238239695999350352410983873448131535021915532257555062364577250669811405899718837609507045774798415815898054186215669214020867446339623967977213989931443593436615041899537797421146264285725930535203280617038709474122543194797949509804040390724733143558697937655963991429654654302976772035635323319618804110529105642326150518475812517741064551398344524751883083834915250044290862766609499013326757953069763676415540381950797991350539938995104019424811164891188551347988036672724815002542100301997895919164487687359434187489527224777798179732935138575312232370426529505172083470488621227627341822145901396081768503137109507815200489368776954195786230153791869732632552228201296527601573957978102102892473144027296108123048433423471034279473690953964365287171043618628461622765839431986535091636657600582657507306392148212140587884282637980052264308826696141686989767317347874889732118274391313281128071488999918084671578377433871390295837417713315361666390867260356851782937434487930169988641160462419700039665639521058188549909361166714551662189509182744321305333819634992462179859202777096982028686628439809983168680852805740121518106763696263121906900580944639440258471284167136243184926529300026477692258008106813607439690096315454210333426498275225661979676406161311396172424072982503598702714807257416596086573651114015202774379219211156372585850851942225436110007157838700695491149940211315228825235332910366787581176045680380184657925216777020750611212962461038134611000475124112042805317118252580318385054499739561658339019110349768156121607222770459413739339369729951554345661092323294719685080255169028813820220394840259568703206428142699150233617010412721816786079045575333151613177915747129083579391757322730698094987201137507056446179843827723616399116511278253735963600093141232212897208283545240915795670289484756712520765398252265568267697594027235348907854520693980873221302123075132690959376403883010135477196674695311411410020689060517591653443710206123579177222838367280721712215526338927243951026802009350160550928072160162183870824848116426937283309812725823492446418722971143725586683238818282878855330581735101892942634896029756920712533875501276994759326686437598655632838243203576967847361489414390441422440501322488613146154661397939978096588929931103721520580671141974115178312029818198039409687684706734274889082847949686760484659152247903743451324816067445344962667026828282704918984327250778158499572307342415157711713162948633120662384872526291452648314769687684588982742724298668659737578816602989365500811733424477818211959376352789753117749080016448588047344907220380189439441735331423597224816722590547382796458363018789576653689669557813588528889847631695782140795837507968295612091343921215613215055165486554149172540910213549908538871990208003912877787340898408724242444445995115226004004792170538700244011641639892031077675545919665442047864307485893555746177355284577159404421161522985680214396422663932065775167391124813146156188538289018639208807860940430474184824560496915585432364797531781759749092451228914237598584996582784925419616684850942900680169208511435482457073870925978085087188466116907334954418665465196395306767003055291568286397251788849503819479752406218733931843466318968258986228296875333742463461003247403765558620356922726998061106881054106796185705394594793309558135356172440367608493073325173013210476292398180645185473095089682716640582609501664273975343447127998648468072758870147984049730557612595148671649363631759157923094285820540724669311412588108602637762313769840073466775343438442707657219205567333969765044478153663117308334193112048766017194468298039134890108613715772598380852275484721588309286149342318077704776115695126761752493537990692096275890256929460760706902859893558412327408099526684186530818698311275183413755774427059378932875045765260691881009362533872891453291007353042474499809370637361056204637313310353438341981907629690813515273576856987326937245765830843530609871513603264891543575498279769422341211713069514205933637140914228472507090587152835668576207336512983335804989797638314342067603765627918054988605546493788191426402295706754730742358701086129512428225589024743129484065370941942545728831744275169481390462050960282916569767700687083193470180906803164159335975894478269537097976184270086193513136132327297346712569495154955776630738435737169397169807337948148270884747795725663089188775728791985935741960331475363294251487485807419858871737510609646137587271288250880613817318333868788702273563600689569079231134692154494167375276158068112712083862918542928807486617611213669411451015488795317692348171661975978355547284023955272689095106925577344117274259395401912541670999406894121122481853237094928208633594720245488599774028089094736296515185803002791080840173516617201811052754531622816541525958318117602251142366564093624321045071771442423504612252075002508190501611177988787210051321649988506221958083874174139794155358426221629302799467009304830084605620154515024509029680546203240474949824227907128603988011648734833580324786182281386525547019860926617794810148166983701886536694015507518700654564215778469348358295753097988472191657413958766143843526009891377596031578183026570068673153869999951890007268454977279348410804459345053672306749951468068827815591787851933337479563504812515669423240561918723646655069626852213903054921895459956582511842255217790746020289125136748668800478351477970652500646610646430039869608774424492100381779596922318482199848835420899267051124396248285779171215164387918164636182825654629864948167567308194797003848553142774242600897253071112009066591481581702519267251965302875360648702647217956853230049479268534417748236160446288844097903871911749951361082345236925934718263195048962090120152089962434774970422682477172317558635646898387143640232032395049978872726143331854493416512115106418203773173462997882698071095833700968338475457135981372993545057244083014668370515065404669079795375003315188040574510551502689984138382083220484992107428334836385938366847565478163163068194328273721459653789015337296485519824309568989747527295511026440429614472539729570835638077324048552857433618390342355758783431916955027491721058431689175169382511491663652838354119206243300943114147256901556708794235646619832100559553646099116758664000074081954059808579619341027548372042947318542404490545681953454867520224777340462453462585387200422255019536022604481741483530661690903335620986908638863331026048877914779075743236352708759778730543077984042253474596502361072707159213562391787495166075875741873303394128975644389901050489192384969635304637232862024632331066617246725818948451880498456633703321829594735254517648997821219966674095006175357996919970486494973241823643697723848045894067887395115404886682866883117578355388349671400548627801227936546153158693395286465727349496077541525461229526166062976240051341386501760074157673488981092207516735507931888340417098271947049773329986330007206115068779804716952391588848675854356038304192281842330812655280750968353516479334790792217777746054048159775775437249780073712917721813175009388317378778401766181682198632659720718040793706319716795144270826634921692819363091561805972048478011531506148430696640503330064375659362519399648982611387183965160168360951125735826112047463920184333422393366027549655033545539042080968414137439419141605000995077616634676972843081742115736862992472117543322500107672460130647643305232688012192456026625315965165455192433189892520270532878722919568150489583211407206418886396859956801393258436769145654484095724206330892890881334898842913011083860932082603881252852499404819059038172472252255849840998867985476150104300643202953459474435372883486511052874503884137575866592599824601070521981882861286733720174328699733585253187063702838787626586937905896247250684506121039724192211196770737170369604409817646344831584791961526830084231306226652609331263502563874160465833283051413510267379184699792925369962724687902447710849034635365911673364205411583663353599202384083249168997506591538924881919166418041841515984869748701052078516049017935466854958133262886749151733664807323228167849217393469694910861678180693545916077292091453745398855595206944838860747313885514719245033008026540271391545143081105134168506116394871784566237820696825589684809848118370079406345386481395325554491153183752249867764051751010867286197022215036706649843884977927066028400634010288385301463533102461508094786393652667962360385661043058879968967846684312499448334881106708819847146844113369815751359497344370183512669905908685725129426498105847853169081748027304288992546371648360580153697697171996509988330552939105530066441434553406083142646921328565065512105426401012796553597431200923112468585016388073274560316822096955966144228630820639464949707045064289783179254318925886042243757452771324939644448654822733405279226644703135120605658303041418972259826761914697774885780985869060347259842777328776087493100143706601118539427639629510740599324577533545008782340562378467883851025251322016144254008082412877453977307786182022406231961720926263645041575478740620763353498599213345183301916192310949791739239481269211191985826991282884446312012851875935053871449404667949370240314853192325162877775107200865596178737017747970791791292380264279748653212611594331257071278344277439170493806645388646305130400423380244394351424731449283620918834978600075628566884594009760481808433851095868504482857708632175536313652881954054670276331529574435670662558679037804706603290212369432329376334294536244818642877483165879801703762520547115516657115227347406511169322761460998593753297841559089024056105835546609847882907109744183302406737193186678405967367339599838219050663971241537398682626528540424651036733918773880961240914544224975060122270094866880610057204057323139538614422934655758602424980493997722807790223450399137487211397840524199795658789549057769067328629600631318722986065153321078344570138202449952081956911115480253619383301400312440677459870986702132306085458318766529393830208582010061773050964727127655046074764534012955191395387930328238451714387991760306722492981790503835956068707836407558082034212549466224091959631653908274448963005957847220883165729422107627603389138320987687256627519116429785256735453829155225935963654324805185528066471653405927338291727428681775652175530798452535242943577340022963173391482196036607428194424472435205120585132382203188404327548509805174289785646992733714126194018873902922166402319087563834043463295751032657712782802054351510744415249088928932688444169061443837732742473364168495797953163617206064790826253396067594833980720046902272811311956459783429865615508258782823241112311034197808123431242443471595800073848508220561116159553241004939825169124394092089947447776536808507506266249198270316716409778737327328614846808510694734325874636339500572397591040904055503339215016853707594359332530665065173642783357048200163106301495424493942284076900889622882751984891344562620306479499181443248617507231335110103760514214857238499879916628890569869025109947268162704187474592691479953604316164803436979930438873437056002104080082540969121216868987823131887794910282302596404391693524552637538987367875085876034045065877663422745259886538303519254481445956445722978707493116495822268963699638289612322073828580073696267533176335802495265839140811262528267016178702468695919755732921601548570679283830500976604851619122795452349595934693118133563170958829747810691381754538775702161884903353605723344411116366178278670543824721362541067512268928734127794549033070437811642989179634638419880805999491978792148397169418025904095234161832346057168782426888577213668345212246224867358385934573969072942224953714895295426812404576977719547225791119198207925820302544124869533225039204167051215660663994753809459956651544229007698962176723545462202801666877738416712743388972363780563493044290651018556508863688441505390937220581027916483967177424450382771180768159603072593417293862990049191381194970175381119472261693435057931027614526981112782683533302386571267051456806187051835215179806200653009587735217246639482061366466975103230164522177702908915379648257879723674430616371073678336463650430726932960633470723590636236039930839422037854776128445824620031082515925466941966302749326561866161074065005438953701953205737229795730578763169258583645596934748868833938369366515439616596332430757080277886291153394139710916486076660181557075090078322286529451744602515256230163899512098554066764024635097469433559222517048116668648062274411220177161453841694376757765161500224689912019592187460730583403315225144048297131981281832270825658875056328912234436568297603515571078428731442146081861881025661038834620582225740130906546851567334344478644862844164505074619635994451114250217897709254824260691592247404814206193006188853348860118315117608350947320210980134029847077135744456647477517686765342088032250606696134991166838691422182640502778074514235369928221015280058012093960729673861160012103081956752106528324373260089202192056364231619155288279105571942489072976507701017828834026519701623704887750829268466915146640895871925718136417442538329061205882772925312261134727158546395459596115513331439892995621466867904958143936708244820201373474994954965791253963235519115731267566374906170448911683691325591125069080379127343616623685977281094044044463317262255697495449870409136987544072879744478454773995691538460624743317839859956529493975441072735585960246429030656597043552129918833152195696086485074142315867943676654281084554052495243763693506356972498979084787744713857847778713322996547229922392765634148964434321172856784594051634824576958823718978599321639750050731159609820090247184791880744891556659978536981381588131037153218855680242732320018733553688324334221145869581117011517780512317643104223909332605789705276464248906248604249847639470011444217918599201606101274735669211527518045245208444008899501413443491706691059487369123819997283834924310905592841209543497959862936907149158212897372205997818926715610491374768477205125580493749298132260594215761393537080690799627854494478930793899842095353084030152042646205104394662758990061144808604824713859132294967400725295295029505458617796994364073594906936705092612064172749957674370537437145672688061251117359745917180207215173749438870796040058583385435020128004429660118176000952737578176269496226638807114953405452679574699210326835624102965804279237518012302061208447130462676472045318546151028104942474331985878015929576113638174329031079923610719523253824586130906059461069506264584842321596147128260067433076840366628493423661680983653115446726041103370882235116316517634202652270961238039772299418270257299012731866459084854927215852566339573222387453252882852875681454779443061027825349155324298922679182217462265580907858617114872004816813192918339534438364364924892417455425157839794327190698025031615544067846971385989066933233745518926568041635590667859200540483220461830065844383509358452586812197680609415238156852435906762521967944216141580722035841887461985861978375187516215966059940642805567824670464517932942277206143548307868868104117135838796523278586362157980851651832492227135255945238592918245144309404377748334877112226805933735012200676640029515336285755541554849866939963101711002781987625418454921159395023178781969597987694740108041861319303663503074261246009419584034636883077376300953347642361035299971471807409574364048262853099141013374633249116215983852254303893403461455272672326653276494294034228994914051325744316878740883841916760668624473645477901622316023200247707270103776341817076269614982592929404918538233823059352360931419026120914009856888099111353022849616742402719311219362404807626366369124528729009915460896819431491249904968237776719932134725269047515644826802392592422911245387710473495034663974910442338963145202943907236926822137641220243065152758739300414471430617787356144771497877358966572965335539392863323705462277411027786037332732845023970164466616238307301726649317364403577690476350093834287000695037765055171004123552536080500374417209751189045594576162796917497638798865482517560883002394904474648427685368264769720022412034593876947960697978569546467328870482896285112030602998826076189034051951891179777643424855583512959296795703005870559785760137267089063814335386513199429918708569463378507043109250391649935085039099538113487688177976483864618236923877636790080397635058315527412524902417656610912530396578430509042049744950127305675381486633888035487357496959655897914994006429817777196057418271560846728490994541758296206545885025243668716399160420607471127319083249555005083442132329713234476729533432200685451838001786090605424043775767344467439491549069013929501469544272068740626094504858071012636557687357607171016284397214544522186907070801413506770238902954775818109507272117564683855446828646106030831538330595085635729244626818467643867794103958624898063709071516494610685041445532160346961181460926607562372550917154333101440251339388856320081154342796837419196868313074786457856767668967088000472286827923838013100994932925915176321398995010845925385500743906833447623802208041760219553755423980880624827008711783957850154167416163951853552256186259264401010827661306745471286366246897326192606011139477166016077734081779363384177853524902708427090453331455097741876596671021166312032621352014241457642436482094234951215429023237003616235719136602234519814015326812389832981831359553674139659425998245509559334724127156120420342038156890442529745745579315746433886776313043042391482989693341065622308592652266244128041282804107190560198428848696601501852680061044694999753311377822228167405692894519309289023080543161830221810278399968265888474675866925577159701373613699824908777563856167090793589739867287789134691200268738058032309754992982877507288360474686345794261098067982341826576867518342584794096828993399930617593795861165643278685003980817988718120618205010799542688674365760169215824308958424114418341341177460874658959877364834186577946568608655310808309928023894014148744529648314630154747499454929939721207128224309623441916083835403207906007649276139464049512867188285008447866088509849111601062620889873818584611116989312569474662925176392198332891276987461811245643482905423041096613237661848236717289395747544468867688664684042520302580353886711313726688188937507453763158664536811545062445806975015992453845575759484332845903762736699359972301978249006111922446538204391122728402711672976421063292788605796464648264061605134765515872920391575407396748613381572323962274499324435523892826154302334612906295414939286321316592334721626725335504002326708719694326799661703038715768423379593349869446527905076271632149816206060983217193440195413662571841008931613410826718271755154284241983844592762767009625728984301751858087256842384782398387073747917216401558422392540505063183708085285811355115082456291620209569828356088694857309780575809021785678810027844740692630485667401227252959883718984475681838122397951113188085495634817527269618833771218247921098935073190206772314879867497351009063959362819357361394738118408336623520485826742040055116522473300091851256256461748573012548480228956702202410403486869552040546854638945921955476683548228190563665070445014254825353151461298603769676301509093069756033656952731349960882675336256208154657813702749940299109550670022662486578220691726368049909821441055612302551323682074327777527755914935634618718715048731478066414766535589357423751581292516876402282840542917736707776407089592471992414180170393336432298730509478709277674920181174019493442591794390472971341588381961035063697024845970837401896653880403218351070267187142621737641245206322148286578396160282064588903821654227409270616223648789871372991756797189308038861994937667476069026028717002470571114626804130479198930948248426895750589728860748393873554233033006779596213356498644298725957276628661487073754387884752311061221321010612192827481600745664525561672235179467901735232247996153578663915331607045561646191155235953360540925706897996325756054922880228741209917496139899489575516080934018631634409961397635272454868689555344604294445340919268853649055081581519211328944870109270149919277648418447760392092622958332811843051588312011459301322953831710388288207288798429769289838613896949410991868172394894362644440118748517312882839962133612815698839333203591956019462256626293971114254907081487016369643085351364550713270307016580234175098824255019352194203334859358936463449719793828405551614176610487570841273900432185579901214894453084644293873412329742677942277724452636826685273170531863691545560634274356426620758548361139407747884353331993292524612373908023570795110885976315995612691045841970780701690679668270744898144108909403030839801846136424709595069731989359873962425222626814776441293459339704550247700981227743778665135309627996027729847637814903156418139714356552958704498432370236012111004366861895421658888388107696807978112860515322904780938060402200454510725884335677336964986254658730737356976903623353449883170727581763799846242278912380243193148798129341746275063056437550087318168266819456850111662733840557066494830467455208075602124328713372413210023875235795662737946964182484711378167383947506614817066984846765029751896598044633383314436679625625505973771311917034094437901093617739057896529927843956338518551720736480372415681322416338604333142557273759496390921369889738461780703819343373062645497928986220734579067176410239906116894959516156553367004785217382591849046663802617830561849765153674348233362346644378517871169759414724692270095702654373871958423763958585975333387428043410256461540535420898835761269066922209610937802204015454898087915582509428574124067882252866758745159267594528050573150088540270436087377223118902454218249067499624756339961769757203873467522137729763646546152148173518704853135383641600210158410964200340485497508507948371964990564632578314026261880118352398895113150257752447612936283696881207354498354276080709937433114224895441324439395388891223088773893853011687607279075836619929227580155551191366752173211775444933576258703988795277524082696798542294129292370966896091566745945811993027639493145160568101271133786484401104966704750029706752030916733913321728669366606538187688561370113962793951053515209692052135803891175903831385706167347535645646125156248612691737578479003020641248889610797867693163505112897149289978131593056728575392073152189085607020636857598212134063284641133956486887950318631610179280893253106649939473005902475134332559442276980833989012127781177454822953356902610500271054575202717919154234879070850378612946620472034259855178251475043500915863682220784524074265987633051732323768070662771533394541017643345347407121351774694353032300826320157607757375949058073630530256921255567296574329083072023181077819507361208779435056507650347477780491580724986999120090056684937734815657451989010419188804089290174880648131101432505090367939198088402050002136439347739068252967066489615192269935390390300276369146421101150822356836289138022156722723367376432272054384145470073920498041995250132270932122248790860926398181525627985185051198502162036819361783914497526589782679739708958587766169232379066268610643498903532628515171930721779307013579410689394697736940990491196785127602887163408981833779469824290680338247420894901495522240726127765802403139539679040081649947164210798932080533037012922958865995740887722539184904271929007838559759958378877484913301035934656625333313880672950967587469758767636915054230673676630342876061606935864572081743191580703080040430236335277570140530079901370501301702103991283492173460109743253229377479359008583093619472470815983804562926126728005859175675597585309784876989438482181200901653546262458215270936625821459871374339778621329434968545473245956772278388245657567174965296298172439810510021572631260101938821995856568635273839272164668435641517407705377875396334415300358984889560582324710840667143647845270882740262124892496507076046172063345105172937366776148131629505838497202544112517701141585494824600820506203517192921084920452161419432087095161082110374349043610087402911043036057539813357250326020538267790268555478936706484468191325332369940732580626753372129857668505750623377066532276260711908550368516890136332696458857200920889908688570317805644793625580890415118390154425316686551327469252541073917082679465534574552358406930478953942978593376759982860625478329423311512094947602176895414948387174359608654695101002186112124809491122774760279903882774473577633704074821294185853042709675574168282353687406261731547037062688254366034985389917588451180767967754196844996016828055258013313077908945454667310871175904128745658143186958225692832937807856714702543930207510940101403770543742315192675269943872241056040269914560679566312624288680091760857500263682355625056312561208858929535059410998706592717905494010486699358894327861404094618985840535289996301642308004670797671675160148912970047141132665719739622571422157871354722818344828946895884787803191612499519497948612279481806726972844827283205353049013312125095361417114873885582859791038397967242850977300208867407241092393541183282165577951609046643565492959552543932061424848696219312857886426161835088858494190598602811527911722082328115536388508162453109314572087616670641312190084541987772128475900081443371187934516139009616144583884661713619724364674132399084414998305459028938460300742797781041831441612728680541976298307231283890278756558557436129738341926772379426612089406766654848998130131919611402819410261224885530868722930222014989917648937056833316185076108036145982936087642061596110146253249819019554243214727171457434457576499405969045173548648515215456862424715098577584606198250806652683009353261305481399722620171230906930508611641447555495420762046147944023227472360231465197685960690207565685375168318107167753880865503035194858116719318073185076306821406438876384425551440820417073844389102036476054982477187733140191015417478223062568759564779935021812530008976443304011402205600601659775755203152509696332062862639412403586582266870651019273928052954027101456387737958475084138681499972621409571384129472543530492779572658929533378585710312925637806162177582615382955385661259727294013753606492807041680797550107166768498748540402091086012201962182314731880687964634060029056853409916236332540123617106075940081392139343004969314831919851163478211543266606271943860396096181277761561180394104722675425930258226572419347760403192837422476211058439244172407820505875423583881701456657162704108871186754749952132065738448821190835417684294040343992074857140221143701107262119644828702365630419772904878471074916169581959604257954565053832544579650108999463453400120284742517409671174699462188406623775302056981794596551715033373812267769966274410229481289120264130811029950606078888802354191449995215951279040338269465155389969444835764952653846766574545034619923786718526538157546368442965594223893812827883108631564698705427158995581446255200856896031866662467215453429367423231898195354876559945566436161667578404278472391934618871906108445917554504262781124262637785877099898012197040207367391215235533849780531328397930766760954192520134664955129738051604721263294899975326082387607955101772830214261513904972790040715091199211304850960540414555104562742173611617258363341219165644401072234767878921744401178884722303375701691646670897859043088150592385113576556042248746017232957196805280928480295585904585405987172463552620248922666897519544931780403963502428551266423440570134322316204871661587181827025057883449400846180822378850972945539831637413742656986329288371773341474995916442198786521482557626709451695264831062539367702034587977571568861997157682729417592850943717987405709323392335986567901801852122738791259276441011187969877482262954469065790437940598436635827725159604206881412155433149349849887382941162560112434372121901015452977657519674359103144866747021288293152247260844582562446454685141605185853763138438713079574694114367531890362360687132915551428250020691899157214542438806449068325636740685950961074594266304213058127662867412280912822077928383796831859165373841083076671260729085486396092227064358371111169417302564979090558514555836677566778872645696857601788356594872362488799335678928576585083231551189093399864236514301268881345499386154379974393642884185704471405307185961606168103626072025531764371060547977752461845915148932177831000206987283119122299192761846657547542715011566917297551366658103212440048920238986366583904090195195337312128571172645125439399325946804496254794039879618689527192543768004658804626421870785774136667121995211388544828239382638967344965612517864663556705811971445707368211195773277638153831982540105999364458028476304665341636091107897060180117658672197161181748351198740787734980174914403513431812482959482367103033123177256840667445649292332721951737257533433595300619089341557823189215578387631453851057084037660799274786677445770936475623527313842155766736785452528747539513527992729550207722802183159225095447060650969915864009118236549129658982408191972564697822604226362869936319188340984663795532532299581791795590400404628188715142931847244654484540290255843732417347701632567565577758825314362022350432773837564596718019999256181169027639957773242429128698020109714478801860625394737121206833323793391288192600630225940226993771681685346673740935663029093622668351202241930029602326332073478593505037453679582334102819014064939271213035931089068747972282033337606224139195574282649544700185043301572640598018251105421128797538578158799557486392490965279378222687840944584476093974780233411531343069054281191111588691895107651998294573686237147595519861089061882432282698555182168253159554550635633511179045624064691342132761290964133951741675543253612921708811726592331764271093640512643041217217578813363268901676043411759972238645093996084500770578233024674533083652981934124470484661653517223960046867081092495341355929976539543121676678949552402376733095591049756476302848588036517181556173405453613695690988221183324865513608834723200033347491267967691032873853289364820369723997748628765030001934562384701579618681769522281414656420751060735092114078911081455141436559583112602085863123610765145716197827580253400732138338965702345100550902332342218344782008895815789213270521524231943543191423670351606857861508328213191517080577966189140133377878019463965910430826716420383499052129484877383953038984021994658539635643619491033820990851311676819927133008108466698941847428263482930030214786026133405545752614957280048228306311154071123304895841882426077029608523328437898884685684270617108054427138731201957205846868955677640813798087872452213959971961302948944184194638640033316914953591734252360435682632362574721525820454928795879394462090585778608950967534006315103600924973781380194716220423576344042364734036682874380794860227543514676712617377489140258014559547320732494143116874206592666140690546811171094324272452482834640042144342176859239134760838509845679555093143450417860536849801780543335950690472173298511547868134079788471282438165013227647264819966793946435670564051036564027177550717013900460149408386622903998118226199770217262053446486638340226527247956787042603654857588413134346631656989120604093582439240447065673521867488921838016100320353880666224999429258470507345826463544634335211025385958200064053106648555840112105571034138916715325251596582599349078577284388298577401564362718395307043218328521704672542573058307854326416824161830240102952849430637321768295363615795935093250152846028810700175533415727997587306235660266826161638048022797122680786858432449497138193381523446180793873472794033946703890360652824447506778498939614628646936851575281992433634052238030298897429329383907227767863759580653769784559007087823696665876703717303509700207299205785919221142275976266367621046960689087129841665286383663518969908550036297335264929046858393331687357169762015045012243969171316541001995960506297402210630541916708102533144483114026874098162202195220894082705507105215866378016513440033842920088189468690170407255154199546629978406420096804616889071420610378565774075667529981603762882500728170163053048424422014022356078514692384817932616284436976684884221207353969038082781847148307007013070671123290183637964007045437339192115363155583583886239974200758123213961415887332880756422806989556516408208721307457274451665059037819322277369087055817912534772546301856489737163266014047079510003393295882379026184950882953907555722709854535015278543107839970610941281647687876954011074261353162852802426446997488863971491431898615599731642212846584848840707918113843732220642460722253255781893062222761059563253836036289746781250739466244347706742430531834388882574987039339925109203633666104173396449456783128537809083818816342594988782281011052396001014625071010556312262710540397242297173465055548761481402413152912189555384086348945340311686432096017037382508528857053154748896272402241810803371114656063686901565951259343654418755677173803654569317238053634334845476870572168196729440540816656912716029444336683522851818391864276080982265998489070108440293160768233463004034790992025424705342295065496089826304800343250551368174109795210052184833305494027576954900126061188497177290513229206538466530064988025302330342819404298090949406256635306936955841827079586108705242854089917081286570147492055022251717797521143314899908319058641353938171156237050012017135200563405744427906085418854852887588324027944844203617641047915765211467098802415950253318730481680717098182224329222011076813925360579057651016449805635137834521884430982187400740649441716712832053469762721521740476577255346280251961574264460417301958202103244903411808247387410143329975627752005547646173701280279093543365508900447536030766532549252739759725486194476637509031334206778572353748611468704306166282712297794030255180245060795949837705644452310939382852959917827219363625978374607514813502627334953694611590512972692383218089384688158986840647342618134180238523005686644464881539684721323692084728185954043575711689106549698270100148303073433270364754038254979588448094008729384323014626952027060441157242143246156388714512101123297908548793932952185591341668146638684663649752254053517364949809413972827877688421505613224130992220290085335222499700186505739919336373180717148451496180964211224008202940395769037188488967617254117740679048416538593183165883812736097458068523910935105963043443733295476885193306658101451555607225175669671866928487729067063016973554518305963131037364154733371713252237944464469940411615617355604542501579780518017413830487121774520469104780130500586490765103993639508401104262984096291873584072330765667617245039149625967568978442678600112773699643579119688170752942723641482307592548820737582740782108708696251464681898421838398994606856808999371151248849959831905451297263943351594943081493544308233773766139140281152663275895473376517969659240277595624590045283092880684156882776090539543546929769288965076562401587335424949277298039253413526070541053799426076538069250402379975097053249501076619306319266120770874061808443503441010232626161771147231527330134906612001733652410146781242880093577161880471524131268260915750721520325058609038355781582891362014305742967628777561443429619881362124017711815084025927701520027360662800824637218643934381111716903326000631543719318420649860026399624465590935766952491396429895453838029168581679355743814577024046633595952947647139128090383799394714143151739491205688649724584819339582473026692794914303665683716482420292037909278044562809802846710321618802401966874892530703759219449402846739564620117921077636798698573964342561126213903776962921213973928655350431707712060677539202395041600629952551268962753440547863702718266227760197319949609203199592530421776126734647254864704008333255371473798996813011418110137416934352419427375566356992116515358118683669718901724694940235350194727756875247601795312737982173654632967626706774488111819121613519005852746352451390178350775208419216594395481501979371115653738754092859092163468620005344425859058485533327244416665082800352713718681272819270843380609462289529888547939642649105851713988697270071322214131160737657834874838521390457662678052418352146128016454040738301544195957883709012715306830016647194945562848552665167703199323565064812800594350083743779396616063567849175461485329395692977900326300545264638461160230995065414595538670751056165200395396592672218527336057659069825702918858717130400323320130294691294738839353674204673368178020406809036936944640109179763814360161708315056619759844360836499514607770377792119651230579750549599671478516866515884358578456363553523731888800817477472749244864736998244875793432759857109831416672294414565162571588892255658726680423338029519169561394359939930318745735988418046982883543271861164122701868577513346842541520950427433478632454349140682393939658837856602942678373496387927965138680578593353830869235523340121491368281657124131166118083982601047573031257343588845571431914559054278902856489750597657077646384952877674523087725393794810790432246801481572574028571867995635301120934687116466250270865751014754556989953525005510754726585501335876506153218318947735426008802639605022482652268842532131078087655925748232373140246444312669858269879655502343363327796604277524620973203294387319390768196407584429981777340809390711507146524999743588129327467182795887692294291007075722829734799920922867142764083873206272603175115844484060055644381937433139193805603808388521147311809744716349117625925294197098497288456556379194189764584647994318893839337888276517126844784809032883449147801823304716819784458582439803854422213339635671668922986537017746193371584838430261918427763031669744209775095772446934629661124841167014030016218382594030288627434084997209279699371558914127110568265486249335331117110909604499474506683705731696515187601660731869441613276569276838700061273609137168423340146817597439786699965713821787347998119192466112778703430657130421335964024984678093019036685298894700675448910954344471169477455902818905485478662080360543954308756833338005811879143586565742564435298510756586872412532313671886258115484079552316656734512310118205387363964364490529556217980423837640622657937585842803767729896015251993240362941309543493112139537518105008017143320410573428200074901009489507513521366783481426343005930379703528886290801716555186188688096376987948546306666800055409933383012571321188777627511206592372204256497669776670023213006886222686397185132934745885420953121639379756714007488257146583606651577192275698022689075061207082280545425171133749343969439487851883007938426151692843518040004616730581345760462789169333957487280928881823936297936346618986296340854846386535918475280587896651628870705415938371737977439034614365871759905790538744495847126187127857335624060732478848884168039760288771016695213423529177329246717523860880914317966066214740107282097329471770956691755188410302112380966376019925832256420035096574988037436544699481575779229415862675486250022209724287182652129320272863807205396616126643167673932551128609898233948812195793803268848106345748629453795676985855418807897676847466967937652677621231463377307231026982931523213537685232263783266316233750422880703500108729061161654588228585801271726854173083538774712918384061574164994974000115136646618373669729016834378027104471216862755285966352219983092335860856488717457624874709440777377441809708542304196372842048452437455983183534162701740308546136833408058021398179653575896413993550401341682298023821266825673939613864417289121366674850197180463625459820966582368265941866331956881691735951271128968541488878942199791944037016842298954599999378688303156968998708994320069582680740628299570863328018884342476240912200257355358388665944953007048942285705472687199150762030747439462026851180779543488852090549844569257335647204557680426405357340983662342155462331321436063551500920588213131417274996319804093195092195900165093914937927720865587361883055750957210394240232577253113763370319942935810838505972916361653097775830017081537320272948574058644424185389742740855319522750110232809018791586281641091961663409559718940820344844921672758477652553453331303065904008356951732426585317733563236403667063408822802466214364811533878921461629249603293134906640134274328445363896978164344105826247698795991833590406693189917368836946671503246379383191038616304201317575699041129004895433384874565006150401366609369524352923229415825606816425587396011363515975419393636514587302491107920622387508701535074433766501140514766529405278451039774865834502502019575362290498119514417685753272485408837562935421436821016446642794651177294901666513105080424152604206127129628543983350826553248243270504328137434603482040622963423479346403102369054925169018632824474531482894089725825887018517459686226313108216867185865690064874571699255900426443857588384017189694946992776352449910551407550934422464615356169388679003019616868264591538824875396046812040832687605548884256044561851113512698727615022220747588175506392887895988102768760635779265299328692906259524072068602958106534562152318120157498435984132366698835913968639099029933466449626323519246202013910776160765560579890998578248053149206101740509891995256661313447208725567251623075759956825043012888894831239789260532590571504154052628973368423944930846052595052168505656076867764417240352097697299022593566249208298542543093115296860741203496006558102107312820919784052244212612842827880720245844004739834380563681081752504388295220916247478613742769736292699758107027859744707874002618924130913656301204566162601298840843950543572385821408485544782289059356112636255428560685082828321809415131687971084714681962792088012450009200330076285059815010176552243675468575932515745160269389803924182963625211120479885624059571938941480262254971797659569408682537911632607457303944768624327050979238317971575616013439178421609722313705128995404434880366923561413054067122236054536780297999013883331198003583193452570000551361191631691091252958652551009271104671585501334671343261938070075221735442760978091660866277305596179918251466792834643805709996703722447754526597109235585140909585570244190712090724844861240582282870245549528889083452982739156147565950811787991534195679047962858253041234372902211644686051628886982134418542468177519228297329304624291167145720215834111827357876312092076577835789986709425100474784232400074236387070535473857722063088066668004239858215937436075797544934933383617546829586250976677651950135793395870738483840503105985068534421861290109061647304828142294526537048042269979525971671646503797042705849303465497993054088449121273645335360731630071635906318147437351630042852777140559224386702813358961622113592795128154898939040116416408702274218449177640109744202470296794475998185619387324664229573603636978267703031535987972299101913700628252604857584926262461047016995502493428621017257489806494920161155566316878941183120386367471198440211242501953436612650407954223160989220280050355840239212238330903786245282581969510736552858395755022156452639999844401482907925040070855263024286364684499542698116342134395786992958813637174134528525933889461219588577369669243038991697853250758767335701194725644131259575401592202923591445364480254336225868687206721727276856459981841115027349251152831557159042674269749978724700592582486118554087094305115861488189115148364259047945550596449166008862691413177720633348078330686622951492431658966754103661049724166505346751881931001276885270098207415410200063618485218681827337478080683729041335695067928807480696560076082266646955347075758425473771996470211409993720813066022362281625892881006979283890902322787257355873336225648232660904216635867727636497699026478614053431920519155305805974821883393708789349994662988519274232925564006129132129427789314638530939402171027673604231294619425869672109626680898345226589595751648342032722058496365127308574517704023392689144058774181738099369188219687992909827779886761045466138141997090169255024862454812732396699410880668537405375990269057487263576556991476761642279233099937406021899925326783443852764979158067460360508927731160126077576709416006212342557497660127608031329704502585306513714034842017960812269615246525871974012691251323972768860429257936048306729389982405851008775357891117310816957372415183481613974332570267157839708027322094492848964351974569330772704783337884438576070101398167846964499852251743265810428317775909937142138202369347714702164521685121155120453646901097223500228017002746838031281538090930666919927338468499008266164477653553141212467470663007238802998314486752568467869698050658267171983352664460580242769915134254726352752760808377087985700163696865319736113532374428941519010907145494941998105121202581852501926785778643539374516850664590470910477753205191846166404186687889523665491058518940547862999516043817970446855994926727494674539122337478347467305732258698529912072318610162318867262737425327162543731702296725345949048897734405910763012852278838959939948873071696134059884165244178268574937010699782737699871581775725313954738302424474404399673205323719582161704002614358357777666155913568182540408251886480449361162586542635895953822105455864280735971051434425211550885999614539856886594151097395323039588663083156858891497835896111499830224661290680819926181457076557757554155376957169503684787961764909201154984357839974942210906134603889406860687462313832615425801193462560432929358015481477331322906479495641351708425511962158540735008485864537000373122693512379796349182847955965637309010577413975026878479331840198751581137196076892806183517551779201643356070993498448087243134458833030631865220557863034849374194494236972635232188507317699864847701757470547429334075802994259601532243812466187820496204182659050155394300648040842012940366645816556230167469190125630489627534242079848036573236370509392134735603242043024549272031782951839858192600682691638635605948077680424766342565649866503427379166035122503512519073079623446887699143409578602106868383570994000487642064469276039634220190437001127647150219525331384856869114337553480430487492820856831808958949883901574826963815198642373625587847461234300543133361791149725207277908054539619941652175188389901830121415056625881989420038834708152646193881028251132845354365594749700962829078401166324440920734895316294314296990794466536395590678667635410361859691965692715018308035983046867672687593849987763040936108700019189650596417258199957254145865308185515886294205031461329643913767706960811247430397282739950074886734572450657605919393295786642693443610917585357161356643200755631842554959494636670769907760352278933701807158093618397529763393825161758550516005972618811765651587249469375439310437972222242746445183701261926553898632102609663869021507818571519843362357888377946790753546877791361804009692232099107643246628020784088602400290576412291809636112955177704442570984885372781049757231911118499476475861993627072234988083750628547503994903553530595571053419334478460748726942960336042852875217888632093927274716514027004669896824961466587060916498951161189494458480106636722356939006188048349146271823376607107007270984050005121197808674461419798962387966742446920532107269885420654507249375850490306958879736980589818301524678764581984440356842829748710859427429162932015679363339291255169592892336051859566027533003623668304806154534916223147627887850423441526278349913153738064023895468832921184405596154517159856906015566852682306207044735923080180778822560500302158328046135302067389498470254482486001605992153099362426340704665010958733117747524525914120238205784730270896590250445233314794592836061179966030019396017796957164689734028285235304267076188126275330044770349675992151715437189734343270346345515853116088960324923260780670165224737584528029341133664960983843700781474940784275752583360769997466086653736872684448992415598458800012575381352913443871241979147607394174378784900908209907867146291946808544221329256830332370363021742184166067081648191801856908215471704490458158428441477749032610137898204195038470713383902371214772936246882060694714951912334793720297659650410302093203843368756159329917416251050820281544543084390277185659981505676921472873411322649205905964694408826097807154088877677652048009275942009113231761272208413237821546579573638685568329235603349879999988562696452571582075274029249603012425013390979423527181244956713373480823855159390135625166318127119055505924590429613553478432900580678859643438131313485205205263558667592681124590180354585897106514756306881590488989723047116728681800788953346305636901043969957831506262571307784190519851735104317988518770847256054129417457463521616388707482175004584794340344255626625500202505161495002392977378349958434335554688231656704120564357718061575459743920584244918039177357106423200256462512034104788475766770030491861741906163195683041133523096166933810957124286288499961890721881530718014189223689595793439057890015875761990527071807874601777651303104138612008584515079775955143610355685826471957846150256431119339805026062745397065865069673275964283923349917629925708694567844602724621211768314020817525832533380350084740544862560212077193965950857926587193799243110522636898268131914661204577197877763256942089816677394843364982445294120953792717700585344876121415126060651991804284912887682336916462756910705165259189301850708914644400067105865682965949594144920101462467767465755911831780381825847182500029262583194845313495518042929749825515922275755436769418395927190649309521969842761071860724686499437192599372147391148860912886871223657366103065023606899954192555528627733644448662282388081754197010946024956086099238084207523352685989415536500692997028257549364901695828284861816914408771048742172517934232371179844162673395217464518993576547694120787288695828819049184126780947340851725244241311288492939432366432276772050602902948911125143256496493798153999277190359847617515363244260206906455830171415270870834850678443482204365272239001110939399555284054825775453753037698107668462026236541885650580268583570233080541982682189948202403334968136920903617247486315162366805005448695030928402298918282276600735335972818911620633258977636221218312279007388535822028325771301969624070629647203654594581187774771579251713061547672182189220236456498919683454236098996836534013681958831059316570434344075049970484242282734483767057580239428340260328303508993783969777051243161668653906641857360057279269009480304398394041314399315152018828213126478185402734149604639962696538738502036727315064233833264246230946655150653388201594042588376856807993490473657781363600874528252241803414446359975991730155584482688671176700057277291488338789495842908278867456100488347911974129747344428058203958805111049334079720261178419339405171462156139588223316126858450044008162278603952382067600584682673425119325218543763639044811471315643612214962984279572993094917163588968421629560406715706900935492582323236765722835136756996069788311948294310608264484380343000873491681072851951770115769457291352520354182622351968313377857849398341965654472369366935680841064874548483018521975498752949544611845412095939909470690923892336693270022156005076498004239450954083898452271081983178008985914772871021814912172434245053254786723709009250288713389076900395037344289965510402532231951190578739394371911390055849131687335372769977478527860261764217662967031257526698389844630900751282402012715118755857025576035636509235214643571226763436962398808534646002682498601733891932820731840253067499941045622881873236205917466426865454867910085525593634811489588330772994555459922198370617846024182194288806542611723172428922174409557527538868591346320764911926716222376022695220137445366999960575023362290701634304396694851735043187911639120572978429175622600474875877730970556629934796570925099729244068193164929305391889891846269776991377603387855588353832885916197868725921132086626197851997036775213805749834667854468462137538862819012609076973942443450291362494462985235950096702944495008818270800756579585759634035637231218320817973971600184336099349478145064885635027800003891651578644888009154700284325995380171422003249384808457195203438404629954038468992684985577676930231078858119288738361436136856881525753070803117965919853046467808705072007922101722152149181280849759091553356119468706708016364878403270822488254674240777627258736053107233550492335902827997090882729501619609975360335482840247788642265008550925730304435299587664049571451937631940743372175103187219576158064217802073702531281149253745204006618145650662311135137819556709108452590746895348719857403849780303497492691112937067190375124828694795209873101016434665313415279247661740214916103715731272881898430014309007718704139035894094940072521663283102629947120622037665131983980115442540707498266255125649616834676668759885338235908969394673730953396231959129355508772025230250628586674295854045685073609083007038364482827661539767460954732052963847292024528611730013178535903463956259720044475231353567584766175881718493691110854231679000396919402998255040295057494228867174095931818270969472665205213041695767020093178635057381644147702467581066583230674592480978745348530557959244783857745522029715265782724214231536050875981714075628382053540044957725193686305602074158965359414516508722257529225296351962555071504326103429966077236796254252314920573818223469808086681602183415938264781426380506185069973614766214876965911571938702426182763496486365913084441334714077532238759603651187401286432179438257604582789246361771326759538490041907300010412241374498295780706562433217137394251144950132707021508148583996600856750901973385833507206628542073267196131890883083613777279817853736215448653947575308855286704414293709888825571052799662118924212753189337259315508624737759466186185100542453491759759102458428347412574654341205198058455873683734673441351693372375302247741020025831525390900764401229540385875787163886175327509343908525515368883057144756932585274874438857668142483641691637805381976955201267343461787260168501443817210863701472575853180372568570491120863456730365954055277690203691771894274938881316120892689131941285733007203718538017512144811697751091956758973985828405926534232956398954995634551068603150168175814061918696096354473068244622399541133362722560617390796461919960166574897310824853629815868123561860167019502388867686755762014847930917712218853741542401871893024800951680363985437355000884754857623585381268812679565826793936499078599750335816546048750302684320853362598468118408023556821100955206684374888055092912542266749038791452972476895275668139808592111913257052779388304646032095112621797993894134953420923531931260579065880723910953657824758452940621484886646353396955599598355916108170738476785068100959327678339149211215134966558945584586618126090511657739103994459694410012097715734406645302628874495891233807187296075404690145495586472658684388265545299413697849360687450001547900146474555250844291610371587530712332525424528921512492477779697913748546043964515623535861664117747292344203193770278528737520583454582616533535855718100108789262711398561914513663167004566648666393638104474934297098665738568046633181945604955740388293773106623774631284492568189984319968104832018640529417243750355080731106145625523762893585032362330233135756630277221763614983710659861831851397726232842457057350735203261218296194486238384682034293186487168212501698224138218406497226248511273630217440575483140997990933544486655859948278139415161994749865208375790374064398433579469876808867685877176441527843565387181593894992147733061014597877774035167235381463137893946948602896778501231904868787240766002632235023159906335002965515259052358153089104756522058071097330977621250923149436371544504791384047440969105883279969554613748303385002584128665449699675677147282932997686007690502093269753999660130069900931813671312229628078775843357245090381751192390260889606698074647257474732889179659966743646669526933642832899358999377771212427769525178488765543620895780276955494650317320261722822390337641680110794697079023331779054145222925679300450757491055333329112664978793348341622093777497898849852888885196587520992771381891305241472530957902649414256210311316956611129577812218260019927473728757997063849815184630692062949121899520974955839922993009889562111079763151927343998309678499202390282120733080311551072351959284134329078047773198200266647609671974819460352663749007168063441615656669910745277327162062232002865774088675971643454895536728899696308817765956558416825619964942219688579177206803496679137382240959382293286740820254203205962550661071955435150149468229477648817581345543665037677585276517343538621671890585242345683693903882767414056898840857424928991129461074180334560898110000856734358209775017412134150371488140249126707721627639186592318190370278454239150661999833727730543006880863347791493274614401061243770662527384923727657986769687059971678781871521732836816073849226400745683731874334301901299699161496089331580216420243138453935848325423845167471514559200987994762021947549134135567403147161017455849289456680057830155319246943846813631820663286070999232245668099603893365732055010298125177185808537656443976706149409094746828985126228993693453685974548574432484201381827442073230210514198884026727051722293839660511158803338041394249207992604520265688906710713928557306493450066647339434210726733493755381133752217183751298493839165623106009928516287593618453868564198838877648771334642629735920816985812872817980019878716512756245602939954883133724400396887085476657240559864081035579653640290288969993382661943900915496494349774662036153002337174328410957327376678124023144930201871813183829292917270018172265614369283559941445538348001612340445961258601853038714877337741287731542183434708835251422536060594400241300656356502265771270650564561866534567463954687784587237115296378424979675296979718168975491430849298634669717057765105969332261792156227627342226298911609583472456351938409459963080110922126733967178486342296003379621551040782334173149085131990764269832819443994248897915304763269456231799364478566650641902685338868754077649502088396678366260935217569055148850791466904620316307000909339387955178738996116916659057662876385548564725361411965328171481652614855039343288583903466582269142498614757479473129369797857676610891542131678004185287274588851497545701214271528853215786550486305775993669828532932786541413120975933406336218959682031864610504004637812282055556561571468303130318250426665470560010097362150972902947160739453286736330594159800451167951364558902990327794705393179406937889510834902340246808607632831260897334212250632412882624909280050075801927764266213714802496627412828486464516742371823987227771092743155608469335805259273228308289076160488512696413886455110192148889013729512146229545231614441192488020027582897711733362030597835149868704264239516353005515066786994671601305652191614057642435909682167099958435160682085342596344350808552016088934230533476746415173288443407170923538774793833305641632356621644977811897918013043991581565832786632895714030861284918659192702218024282645639036528926776775816878521823645166790731674582614229248208630925584205829835738376121184123725528495035932685353644891832595091373740470220084484984502918973715975450360283017801060951955885056907124901668823567552527332329750158384446879007437969719016383803394556127337459121488643405347208975960095911272718581879333851765747851647682038119477782511764349356490442171606056411194310253612016203636632618440521265738595414957932353096976157944740544585004643914226264338835600368508306959713588728674389975897712339605413960802088977528274892700596816112494641431407471018331074369060423890667189969029639855633396914864450572202458664255045398872945776540756461156705959443498043297221578519434985016290960011266404125865121924169868297431008164304419703393174308542722896450427254735329786631648022451869805227223783013578355088379722533399023674737394576833204023178891574959071956141756908793944738754724049157516470842962033352554783022555934506688044212226808179172880684641900499225591552368292016539928083028074558326556355969461232226615921328146563195399365905021361301911380665229536745067012125879271824004678155949956365151231229390603091429993071911784602694150046750116471144658421675342264715105304609557049650881985116055210347374931114115978155189081543699816679927677152518084004984699345647560993757319357523985364948966332268229237487385086473242395482018614789577534532717365652871319790640963853828091319859659723367434356771644878459944131285843415653943557520010985904864931719956085403995322720618003109307120909437033787505550281260168644411345209094667882067452746334074649702807630628271018704228106010980294139214581757816933615828706114587947167365944906522302673759425445736085022396028391642841307698701936484506305692917701916395133206759743480444922834483581509478533659519490269909472970979507237029935661401287874696011630801961245547940591619275446527441601690292156796566043151674685339765634678687816234019771746954848337072132304869662301691162377221512161800027122907136328078702869470383287609699485631322386863059732323608615449850414836951143535716453478256077364254934958081153497248859475015319814256971872020360040113383891069537500877784439852277998138145952728098176119608180886479279164499261573184844694742804514232220506984812894264614720404876022370459904633964831677448647621907284549165240097473498153793584107020749336448572165391549165794847783800406872626712908657832089666040130618278073274340043863368827216288733136707374216586690305222981752400250796824463763352242899398879735713715821377989563909672720859123309330239079579882639235740761636393768523731400747310967645272899835547739560717855083052074406362198648552846866044631592987146553718873072036097771028438380782633717052568928709657175802466859721493539913310322355727934685027945249349328702016333658980489257923245152001506950030055020643444620824835986577005832542329784607919875071043719674952890864307558701830639832642384533119088611604811678681487641962354683596804348671819439997467157330514637604023645453168154099717677867360962740865389273586409099696800986519541048855660411366139905610679646379641061173624362170032009661401694401094498918493392245355961347727315639023712372801450226232284240282226523793145731616043664207503384767627151828678253096383776042590049200394851645953117610146580483061373692732446307637511417847852244108915642934552848569959913746296878460222347156869612002783028221310087332295724627688729642160809319938382698318417599952753559613631945797046641955526467033405806012839325923888558966458093169798653598292977663030422497413028184706784283376773103603094198474109797973435180943740922631140699487391507875956810751439478102725706864721925197619078653429502191701663591489845003172342500732107372912770132724521764893208348403296187920866136846241562976906084171764434303881467810832671984604045031877340675919674694641011552257026501882507526264587286957124207038326147231817932467393084605560794588305873172321188128469821628104726607165792052506574103451925581795813185641845980333060312905579736250855314429913315254818785409219989107377796097930526971777583388248783346246968557369298121684231091022207749447093128491152262428827262615942577316980528709282736100349877022974183023554194824598553870116271152623802229654831662144930623260482426284615767286280989062925135717940528966747480128295957193023987110042627347485823060267255745812645832612749965792812310608894409393509041948649341575319733600718120878920631822360668105277803473364846788497012157173120111788177039551818640492276189786820943232484890442921885686681954968917273744780261044546518452938188757174228472281338459267031756523052583789165196757135728868670245099989279309490042433732059057296413523535798800758575675892041392715981547308666779637022522077812890717022833040786376914176629851290476406441142856948890430615579512652253204117877069340677917248967829900865119799610913580424749257737299608735238194885262278516597368143733750130032553515929704415522409056944436134374171383051590689300804604613230753128522924836367206551240495019999416236043419626216936404949341111208873411916380379240432034370200956280302149510415059689312138288279181332701740558269699612732830612000186258144998351133882653786166830189460618255247705754737656550162892962243181394585673471172129091437328719639385017720574272121250330681353397075709746520595070477558826470119728343345314098508711542298050524135939910290234324046982318963236443427911602391276893635655091739679249733139044291229496810154176103715072731527411554458621940907520158471267310734459648289596716907352695681297566226160386078809300882038839326555423149765549369241389925785305007953109576375462738428211287248880718755057434818884352048026172851439930374732607686211310991158352648655269541734513283304508752465958554880108860509970766241226443684980163192847541642321650230820539338768031937873733647855191582814586048384152613358109705379425257985247290885460331786101899404978626261188762500023989550026526403470318992883943141341503771472745493449470275391995687548237950191641641026884145424418649571260100695386708876788592416943070925443164845652904325877908859624781886634138209845983618603194037026985635358569933984981745377708846372770533590207780611324672100763424792101012965542189659182968075344706181239305500178548199603254946751158063360821961669504098541460745420614739073464261430894937799585953187378210360471616968566566169130494887170237363079825122685465255586067849615042494785645313659191043377226271980711318870271827986852549924544823927767428519612950338346904785777403066867948589572397766441657018324549538615501709928010147501558016314024000419669039530381343286650037688298404298234683884057529447056151663695106325748346467598626337454543487406690602848429216373589962387834911929240825493904066465455205546237243803665536693754077386361822895893070658744053574083259246046467726846744339685938937220426826412412708446958431788709926034405508650938222190798129682051946690287945419670126464075139897954325528983974246691490762028270029306980224362614736771298127539310498219787011198055288306457969778989798298022329287846755651090544565772664605252243367079283799844890547600439052140362073047425794859181427046516660885639441238190590244389887438493012813624310058477126050279624973170371318921526861391325234060229977346119059187682668751628021176805029204550116118621905168446157875264757113551737188485079719516431224035509181569704390595706538286949818414463804409982467827754728668869927212840783838172597935299769584519262487787509415764972871222477844275181672262007266547923379956782149221208167375295297702782645007686234093935371126389625656739618219626949229376110342532576883566818569044410526695425010228456378549145487371307504438363926676648844401602194077718757686701190507291099094606357984626185814398674344899520786448786541686259484245922817143219141989071253953428650181569647030364622476076055967297434723023527803877178295703396734416187635528913802477206323238569398952279955245924005699676383024336639924639025893361325348560457321596127763019006166333936652357046919412235324515300931562865492540931673779826591626968891589920147946045768537099284801311901914937289754408834910551446463013473775604280632325884243480258325794569275523219029637468597250775722681486658146392165097755362306558673515522293109268864589356810798044338795649160898640408598024049485282942195050720308195546835076734227192154979350179208084806057700101679584058320659259613964811828134057782828020358954672075181355074397218931967583458335509316898823647713968500403577974954074237678380406479906301488612004903439584595461975085183665082799239397343429117894111228300815052434223097671021940443347143208675994325668017042752892618859414935380066087005607082320601496781823319971402364863212752200932047543688324116259148293364943287022662991647600171379832165988359977418997443031019532627145122957014547922777254362654317249783176248826237876124840970849953437917653349367623592042202682578606913730076847342791100660553608101314224499041939070728540282335307340741850316907751097919920326991637325125975047495752653095471750378702338467448802520060305898665600974285917165091999847669778377509420693990051669116217221356771191499040803276461038358458091298633252713061680321335907258553448161132561371762033653318141972940086988483207575742511314920442132815188594249279646783527718443157267713831256191278107298959609945677796150346152613166386394473518453485732689149855036388498651013496184021115736176691891471877792153340974004852837702102168336557058053521595274980412060823818021211817505156353947470970473289035576014715452782871451608497293810276274213937684403115935002928257909231016258830515119811081037062924696791675763247046730502137577120420563988516641442299688053093283375478162991230256314323067502746352311198636768851121332796979496243758096989127652595690987680074457166867001491109899158298801991500598588166583068969617617747831008516979536752502102954450752736510026473959943453777372170944649206894897290036107139235240747373021591757516513159230181304340971110696704836949392805934501859163449191392594051132846307063846569788827162852669723846432891094182747927550911393355559017973116071461754745641880647605794121002379665282871202359261686517836799068850975130427961946177511386841258182589930002955765468072623895284220654311634045280967006974677710311798875123038813050892862771750474503013735945591357569361667995889584273384455274261112629005042591529310795750060994167302362282275078274684866119524917705533822757651902884366282526372336564627699871401350566407896507364256360865637866672573101049055522781897204711865231327559796411665537521887551974291320681139113981384102430869991361072506956495020718128747439645244211440205561337873703351836781528483722768438428646193096442000123725192416918905208811894457698536756959173757412710709460380288193747832782794264927063697460511232598139048584546693498832321128602600706992360330987365224746673656711854451784092516920313438593548771133959937419360553848455964075472174850220074161917964793471207524931274672577269406607175400930225765021403990903247402634239359509384494885210810814626887788802199898911071842084302154154267351388803284301026088792891907119095368311501328129892105759403599819679231234511184930405945586134777809302473060562959591482965857548280800546686220848919936139054413056206513085257364356791411445364881968254362340466520392740843316663841225433831594664342770064024880743491193320192672141879611942139037816662976457392591375990671499190882515617880217849740625806676373814400773924399333276472183616451230137318455507194876264050867701165302294574979765404137410807829794952092815903226677080106425636807810879189985086032645977220556830899729070780620260638171031457337485626756100698284083810853642985779601328635716679021248520321175081436440601260430643360631592442562852730771112504466246169450474720289571253942759551281337385265264168581804408811898512942176415676121407685818631126471170409077042373437863627482899289476839711434012380271033343436563765179666013291484763646905363650478993334506662980153954917564101148234871774677155324977202472394591624015612639989705289106139247308007684159333001990653860377037024056563133937535918152894981642555021894727967880752640814561694336524043681927887221533220067102353251119188199259326978113230217020916915573745914998352591235252951870838229788281576848764145826912143781487162885347403048922048242856313094052095995986400128126911447077087152109171344646340864180532555696380617326289517416736011064727019981654785049228999282216758302518865762951440133146431454811027804870944865737094052734424012585294691495837663732693093795559110294246540125444894193060570247810886745534475041873340989439838228871403940760505119773064520633313582767797824269421811249798284416847341519399899184404141140605182337559470570415317470146480281731870456709931689938126044255725424196993081466839440927526282457246561173004362594491119225861023045405441056426647518348600182543981581725852745915694160927453388155457422706021081732655494902633008356355485743959726624260255832850432713816549234343985217400050718482009812117817954621196569162958375700947819387769331462190725028367786194732441568346407983553573005047092084071892930707342209803837380860356821241721240169961431139582379015989694810253869565665441593270871733987453263060784264117187556351296535947271868814899068387936297124940855035832761307380416192631029475232883535866321774782886001743001416912735446365764661806492415552740392503858397014955740209676591195183504423506247698913410192857442762439182626718716273859068928070452082286238897391399596364685230639881985837503916450312047286660027208317803281554056641066229964679784390762118337262197091146202451028547975228065138266646711798616446321245189096642760203361712387620302240716525335930238000541628202392466117820175773816218477197326581377523366204873250334202791853095993421473313598844182185819840356366402360671928876069356255704129379687059483267267282656731835414855548756493134314142431505087296768777518573681835636548364203794295495099652188455991222290466069079636766245306186682421526382814058980676126238253217363942963509097939680302251836289759741986647000817946149178945574898296840799776147296464282731305354770517102910856516714059370677893366637581646052816785339131786645487521303006994630707637543119283021102765562888909380388779596314188724303775847877541283365363276205355669914858057537492547809646999471666952017974181925320200665818466381332408119771652599154529882115889665892430766780400377845641801243774899651541900377144151356876630316990461081839309460390248196598218315201178408864771293443122690477308226411911564078967460600972670989948314791937152519244080742220234031495685068822198700131597866994181375198623011414345886623891143316018458707121457400470255147624176552311391128444268584381373572591661402471999886306057006339573755736223560491364772401304656613065416756484866938494322218564073883004315374752991492789202042896889189237219023937100500083536015098716711399319928239197584976366490589640262682640456669078530013165002689341774687225599083403106968439280087094833114221858259974514629855105021422893370579248399249276988525024444767430410100246829773453831104931198316449324868179538766912332141365805849215924901894188760433903965721399326763596931714304345026518058330310869494047128968535447113687521341914391447352473216307853995356699977314771995745140776870674171879952248665417306224124543415381630496204649967163009966055805519209874071679895567577517492342628191266152940001902103124553222821886796427317594112964426586537872693577177078698385740261387626088322862108162767662943275518645997282096371724217520716973929778404027826537500806773598798892728176968287045180473212390899914517301125071966374199296038894592788870943553948609739084240861349939321032139118334085948829166986524061882131782422904181341929092312190781577360308862867798856797949643981504746091921999007805046511717307909860887802065985949889802224540850596374480155059824438387965797809736582045011948523087727576975631683903285346707029357950017558701282444267157882497070881482992798647187807879261534353460957860685162660100229321723450265635911914877991986483871571762920260219774922075932948077570762967935814477313823162461855024170920472973622367448618064823060289227837190987611811899343284791448690954151203346583676655116095999472275673290547759741955965544519053998368160476769552040759678455749525005765634475056608757865883770854364166345336125890705746661185759111084288238959866789731654518274759625863581219170251133261793382546901500505553638656095099706564133015417331959659224750036154363702572120958159411737421629716046342416816309560182414095218384529776515214017578546435503628189989151250777885013685204878893383006846623989931725521048786043229656704989416945633146717404073200982361197016358007316846987277202943172386244250111696079166861716128658331546796504141970426415712264014333537948658056098042647400686585842001410373598191844780746175321935910363121062849560698588083218569325888511363356558790070060390390516885328608011347620815556757754030570070565239541225292800505807576370525169930877641951268916429513372602840653826946791923224247427370870024509556024198863156714717492906211105742625799905210815258972844908008987288530067300942601236943710816728845807238441426243495178201905224740394617152261130724796816035828520883062659888408820467162591836125163523646947379651177564655550477054064361454089454747889759445133818275661136064269219036399735464992936461826123373965238968225894416021130529268658655206812286213588342346880774606521756756935826604860811800108655885499761305742674166343970769495614038710124893753608951464228593719167775857046987579499154611433613201706132574922456121833300471026151211301924892184203451897371551323039707533465910938921925715387547603999596081997717812043653554059484533879758469830350563217842701797161510656116075706291353489509101229765948646209275964049920768601477102952267081555499472018765263317346280867967254316023438151277176160022648039321828624863030328653092319421466383141340050246467894134638736189512706811308084004443017266196308482608208535860296408176070795891203698028638321264745115358243284934507264184115905222046182686052502364865447633246573560610551109957830711337002776408814471524275901183764355473232983380018920477043227854300669802258009711132254167647854484004583714716647554808593926399742991736007464011545602068368968917119077298243960421324786915857810426076873436881017837430773413634157933051756451286992343724603121591299876013829030048370506089320349215274331334611967728430955518455156293306732900194482148666948442882839229364768150727018122499630590945496414140967601549450507777750989754930853128454167288692493775261173110157577661343104713616688459664727393786944627404924283226016944875288742246983035324128177388989835142543907323259507687513994381153949368411222602437106287725855623835412701853671443706034688698645447049849136454913084365704006205246103234775136811459478262570072404534980191136354767929583927624202315667865319036275758170295015790507559505980194837057411235618662471800170062797273675020651055952687308713642047725353950613868212199826163033264721270238290537261302048478994067369780521118349866891073468041051413513071202592648517317396330251776418751039285941082519819584975180587728706646047388375390554180981124356671488376621704017524622182236050976651955323029811104207827605670487061062960724388905329123195160315766821984899110335457024160577451904732813304133291390736023821824965004135102088992977179603922327685740664006512209216785180368449851652793680956676038474872026750810172499386967335349911366014663569608366874454847276529047587978227081107292648567295666505874365902741574419498481809040216495507395815684639716041763739449725735621039351739227663631168936590672880215277403239670400832183719143392305212717230287529985007914226103785027487357388005870620989586482075054102276094036757160385053491559027840628696067975541618171439312795257113348704279072568107622715826226501794024850920173527858297264504946727294527110045533085033889655156826762729414173307597473547830983995838039486767602939256486486670997019420423255839276742912314111533124240944120992238593522861585183296521220885662005049046072775321393708357259712797763550320601539232094538633315885544025778927620346700636404344011070346529410241844686144338294116840354646105939059270567464653172727713271904689245650196769438272311057079824069572304568729840032147103761946065602091403782822606014332545008511209316854854489858397268905488589907703717150149595952992549283208514430645459597706009613355829257963229075403359486646964178583397548074590313223632832654868931305796979404006814944590456549266011088019151083949410361456375708345234981437448299589697288288982082943624710010361518097342292059306399931625253603839720343979720528566005333727382037682252471202098759588367903520616484261692197603004949232948808041333140664329916717216124642993574324807471747137233448889481598401519963544700623243629769720017865913205787122634908554472044867889698948016013617448852347816221493809161657011047811474831196050990936770515198265762714223544133876302018026328379890140844410656457467286311272088065915158867949983872271769222671659273825939255174942548895830659485153683897694522263600258563432835463793105896489431384123578555598059021348067686921207361502760943581432170846954051716446535916127686446462518946207511884435293277840354817277905954004376591895371236962591750090332368843068487321591382796633357592676668615763239542967021039877128299838303992057111790661380969335497267396116048446868271945623408241081024817476944027836962934162854432664479930997029219568013805916897120535613166167493040077000953614999437081852491269166008675275451806577734913199909912036823654291909524450285452236884561773079221838164906919829917156355808386298739778687843224795021697201730887072082595010480342223803731419616380169268560027369426352788393036176665490885287104487305726650952863696876102611544016183339732191042373491861813164245871202075389190359182183828828820035016362717783779926244281489772853755573921083542977086930762447115751886220208681080614689580256508790190373990301842339406609261763214767415598156558490313699265876293634325765225503841143059299254696338210733406746690345721152263031568938864658478929084096270299803608187518377632434404634703741048983430195826508149454958291577742898197266813725947001248780240509374763046012605970421921328663578322851097707774951974833690517967305698093920645750872753702951666447977443276778446275444245920999082047212741497112759403653886639985025578615272620814312362201616435794486295724351382748549061018839045079490379190391137087616187890893250096039999406262119434277312939423807621364342504289419398396547415301861315858262948908757359046789724005063107820164377215130812177343644913702954332178210997052086982576058372243435479660011507982563037587514986988187959456544091862130577204976171716462396266264097028825206583237827089332015656454160007229929333397453883944955894143585064643877010067140686916927154485956562503261789455818535727211414718629707579448411468917880230370028685702555776207379642042548064268789994717031860480178698780215030876094355998284087043684687845302209330083930960913720729579316569197885245346737290375135298973945976985786998942127420668033222930888702100007025007060329097176303180571917837653288080759681535330013075140876048339242536468248429084584533244872480562476798891527963229983518773531536902005866617586225207749272761807494421389786781272566068466948744507680342367989639585158616167897098018380254826223529577641821275741623705339335047496107660534611026202003202185365143863553880788506120528313254286008265994215631146119352331989086387562708416985956678180250889253796215988084457113527598773717373132900998270334625164465018869474714402084024312497671344812466398589619200499913257439100308177695747749826297863041983534164274140214989459807138420092692254174665582107017687511637703995272826056473702285667349316206377429320042657849828245954426857146275416795592887049561037835243111485402441721381293180308172010902909477382235144345418241183638438493417576189968503370061227666377962902897255957251388787299549014513679297345423338243116434016980740489161658299336303905117299026657331299123527781663914752088577409938701100448396277913744642508549609169833828852573332313288704069799145293995527829756234254445043992839477098761796912752794133207417499740604144978772793673575483730771846033596815246593112934476156836823488909347385131292090485792327618128378157305843494262136580591026255972439544098370607702367696460583517072202628269806056840069976646715506144537104854173286546697971551976114450542838201320657995114794854001824929847197196139997263103474805645797724733743232749613048587049031114462858489687219761363067068420843953143738589809754736931048031013344887287796396139635607135927389631231864159429760752025918178495432994722451637944792758631360025133336073218513420787619860797203043147809984724623671260567714290967238316227476756654176700798790903695304286514819324445572171873927831389554970317266994420458775048323387402666828102211077502628205515017656403154057156309181404017685559597917388639186078636786611254395297646574882257096477141390766000645401065233151325367653222097053469671463706151434063330141309775769278488478461946936237130405447849454282942763298178123518925655855263657867535963234744031927081391713929708709423029764224625977271482849882349395703724923831863374025624758676811616169526267523294578731666812415591337293324365539586563171893069422922499566487201636403196739342720925597359540428517716037254877059405970943125741305346902809185089467748086728714483905908326298616763201130334205564410021372398827986310347782440835913908803476422555682534967137835295010829264623439236437872785512509918466756160720964645613747184418969717523545994006843371699943797095074013947949792554426594004076245762794410146998647579341308111715509719374721839300919718279952730449406308401613498220970608384982656979156035189413537196167898009936746796700819628247114465283909630979898578295426460158906188203409101501170037261081323990785480598739986664982153990351190557452225456286251697721638336999388708928807081505755914309664594614084337754828039021493150319923995561939031988607854259193168723869150623901645740498343328914075373547137215922892412562899273947094112551252152568790597581587839428768780398944426380202268882394681885334473171194674747740745992136080413202791884299392130376612530876288455063331275770932265697912291214751093748111250475350384278270747903987529027104283176844971014261982045201941348228401254376641766046437351109559911901592561065697427474703506595825233791799431565979071445618157548320817072680665338661988414942856002845382974943347911611146537349985785276891443662574591560081330298878139152972107684049944598987639404628649876702858398150274598534923055642333590150556586203453369930429736531342244802124171176807174615305165515712419910256256583647873138242472167627299997431378168763461987552168326077165972729041889216329991672768303208396009991265713497516015979155658709675727762159990625423455906330797194111641628626973036690663398967439151325789942466265686437834041369523750497124862887447248437231751150577688451236389270166049642000154223636310622971250037041130998816180239750225945605830356957424221554544353488949965680550556945158956889023391805368769363344131273806345647593962642422562749270796008440071560905108017256512022096584464197650533461061390074122128542139665109439155389510078890942302827495538258948287824392120552820970263093490786934882378742912842197276196781791126322238868012357891016136548272973045090237278542954889628542251242830023187515969186395727088628238409884457542049628874365837475087039807326550038697934487982464001033538288522435924980447185092719068367716286654893999580888906979864756251348274771166453685315057817421958771958915598594605472450948567884011161813299626567883757719109493728801549674958614461359509568541951028556891572395977719467126614643511555793760648693839706344667361640311490529707413137062111456007956854310779662585030361150331397385247773888791502199674992720568712402251755115234469736762728572895989503529712765589852745272363392882519373932052146245602580748937239378479024125053964255407614484512810601410834396915237126653165287431317032848456405378413090573038951212767136798232023037913326574531653532440654030517223653079171831751985640592983876549689192857572922904894950243279904443978525369760820057535396649213032434836971098222803463779516766231934820200163198489859564338614282460762727583537909901180313521727338179892281027446252864635346386104491491495087987464880243452425755982035055760263014418815531692242733317400167091946972502656325855876557225675226261392491267594854893484115184158779064641558197860727759877671898676082104133464087001029200715123873170608076571367874883308124281631891448421179018208299677573117836692339794771605340275641893897887500633399015784574251970049320765548378868203572680766827088520514494471770089418949333331762681760654707653124575563844936260069126426482508783824792134079640773743055235334680940263675838780452754247916366567935117326930131870876016925058540666994724217920908605494874472023537015410904296762344000721385145011812361967943671091269087059823805866426464904179900189011075057889835658928874141367980422903539377537508149996128279976265027429005874428090307173417695401150480441239838804293057018686255805459211108644565420174111062580506418263310517212483166208171210843383738724890432029185776795094972722366501234512664743681206654229700356558193389667465919095716794200240379790032088169555923784770901210667753686511067976614555235866948799776861727260002138760582942308798395194466972466756625640167202787724231419834422085480745307786020997356306096442232641436217155485270844732800105259043924618846400287320991015013905657801080243807399302672927235041651084267220543260439148028807678458213901145917033150252371448887939536241696935365407111510135044416123425432942331481721010434194358802850784102001005250991372120991226030085030627568518683295369775801063496414202289656218614693422009623429154494556832183535636198196004014083372974801525609748795690094544617095913841210272164013010621237582204038632455644582490399996383495520152749469524801875252302625546406424355518525270135445095036340609968709257936562695158227808598411492701587521973604158887254240994957867529438062568564788087380040104391640814297267327103408989186552082569190808651438474825592807835309883680072884428510060673306960388877432026777680227849495677886389154760664635535784460255078270698663219200032588066096634746803575964970311228939250522925749757266732876342105421068887003516345977304807255997619081513858606863800550331534125529071216370313802288687606423439218946456415162570287901245361424161362529796111877037497068697405546894171024488760793614438158650455474014798784780014299564881058158674387152323284245135422549634304214327997219345992745802827148535579151536579547242129711657534677429194061784306575957769795997316365775727670162140941255257938170342675206929243737314725880856371769958591832633923901221493898067187853486092081335850351055733621660047894115978823535169900934891835241271120421470131251084019762964615990590170830709868090290997286179985168349914260911339568367827257047138177715686818852216385316691903316670451388248595149127152092389987682245515052822997075325919532122319036642641717135303777743982201123846411902255553376733734972259030656107116377230763263487153378275597939261910826954630881829582393746650084156438738574071414798423627563231666171125137283221283037766744961175214143314253449175111065213397602613124345818638970489209884206207713387760685814221699581853005114607262589498096003912871914723442185464830151903933268466498533300455426147392962648789180085191476687384420724741612386874022796977858857920456383092322878244223722236406030682319093161759390283809951358740156462341191574655573291579749125314933374557482090777682451293151726463337910636735874303829956617156821503174455947090335299720513267127655747264783490894765996161396713414001875095343089957844709403824454039748913236764680617773617152513676242082418374145136450810096688812610943937613110364512528827163847385490816783360298431797436328446561824381545730128200676717492800433846452530675397469267955029752506942074476151850520347598795695865662841391051021506120627113499579100754661598601689758061240017149699196942077045189270461389523319938355804499495967403622018663215128296295082594997211260532502775237019850285664078870733118717420174034487296051852126317292966307519903247645694961033483646243211578240877861281684966625188442071828029070296239195965169994823798306320606432016035443009374171191186377321631452371915025603826018860115192428987639876940007235026798900856862535137761241920296492152728424934700489963765670940276533516074052393885969791589538182723919798876082639663988728518493004778763858724453679100330904474819551815408245090663162366321617367276407967116029366941388243227184148709438704449249753487613464634752848369713870752388993412387545941004679314409017454602871226839344342363344998629515281559573863247575435408801331201059008613022621942011805669259492688215754360536161291525308564126177373300792564928874899849643779005816324488413979588658504648608599027846987141317958321468098536974164386016817964315074051466237348512716912321343430774118005766240766893636302100970274559652049117818638910141776394183412762669105881063173823104958396387162929911034432083489197722435555375161328998924324644084226626770447531180842750367570949686010940320328409074170130793427323143089529484083634905945788675396360467533240856449149399242626117257316579494071644346259166629994265066989727854809267052850904860920865231944946988290890483724369036548875155205154203040980566933031607434337748463839135106441500583882127657329925735478157758208365110710974189066944484880620166940220309073353918325693411853400983763547071001223481196772807258865632691802232551804561183287436939095140344478538373453979135532770519108396536650705736848099012485191470596591808650398763074051789435265602387386979342559656814841964688648938261360689784132080556931505270119023200320381374476856475637006268058170564504159728008658689912438986211833441319847734658003656038533581062664279859606814610845774315888955108416493197125825545114178407153904850086382718977698820580931195428186856807615180541170773331812488857718900347829891353552016815091558695799305393187909342959888556916217197172556473388653646038940420799059221633188634922127883008857487919928672886097603462582282658871068680335686592701918275810333955571411157442566768966173661776571458605708570016855711708411146543758234337339920446220441567207810711221715814387467083906359234523752378069153928244933510620563718323721360661249204275496447173959266176811268185967854983173900991048991840216933917828748704558240884953807044363582143218577801640565989414748738882454588308111026256000102304472755412304272431893896202364255173633642983259184861846407850640445362087828282630278985145409493350574683763032288230606184281272825659355470863852686184191087062289519200962264820589890385224571519689398405428614236606252070017410153048177396767910836808953530342926882693907031019624154501304586671802238926084717591949426646797205402760055792463845313748690941031964512681909957555004756372319060528139260232422834863581024659595386642620247284720253119635272740644406236721750547102440202642597790334368629821332587999550279965180509397061721576291525471133233051628591911702100871211380377842837127321584954318043234598688038953815950145697545279520891537549328241818829257113928924221693852927572350344177636302789045847468727686397280837058841118779687811003054107936543971524292012463925146051651152822727901277475201423156089773982191304470514783362665772737087311321667894763109140632862124382572829627269866689016208180061988721343841319067209402362369820300399822720949699521561923360286342654450311543114223413827067459889585182203537606909797099427610064398732936592029389083707700699107311447130530562486865645354649188345183909963263659023953113221038239465995487602722389640478902289938495012755920874621744930619879689894175414269157728001934869885536782444396858033497916879269389630370317069888518295071892775786665578188133625228914117910952374383354264495755689975671780730051756985270366770508800291870620085441037864325742015826893511425642745708147778220943462476406599428291968154835821464288865624505552122296469548404303207292120151054918891639223616392378821718989991488672145958021348535545516638308011237615346207218710471032586684728628868422220546165233691755189333347994714395756985361939863245730027125645615799574324954113772639230940354363530515594552137614312405021210303608991559947150063239453670828724910893713990354210083091010874052163515934458178677879163249076725960752195238632506391737371496006670615211707269834546991218338845775459905428692034627272765229457951961371931478842685620484427593018386590647577920467395267009743619327693579063088463163184384373674839940643930969600098469479656181894431708712991541823138824647104557552948205604660413583568545492124615165890199418372617438619028044121791657597873714479010357757876726468357534522773767588071921702276407324470387977703925666334157513258986343863470738708933874099159863029868097936041308092432611069530898467553754016409723271780549950952948846935562330714086124433622059933809608133975746815566891217009298326054401524059240296757415181254506808583460506667638968716554505164828867226998856446594827188494236135057483501494708289851425745428622259744713519917347928326074804996180480674075866046692443143433471486612529611623697620505964708750133204961655818506580045784770610604696769127795242325568635746386521941358716080509809390844071754007976217061814899819040925215791621406165830013351065210122337608783945175375776673289777511375856376549666107431365791763669175284241456151532549202395146270047192666519742973377269180816225329792616051510490458336095289839848860776847060368103387724561534174218728381107290295276157813029708142214306923898148642521860752508767550995066673948172739657534573624521804270110540905775885630497492034501907089081583845391057411800099566525594188596099900974714229568479314357121949516408109304159563674168103783438422011980680874994812629860285069202959228404395537182963669597681324274882947314266318990841348656293776483046890887429563699439431966437352858802340637660810703680900959806451538061235921053549594937560893818366732936011232612077417601198307605925728951314289407251587164354779610820517507973124097132590103203653162064454692718627162718521353446386914847837523290342336980467944371819734819926232831695321526036883225130704776353492607758613020323078212713542040711829286635341837600937902632204494846458734041867072155692840970265499728098156424450523397555792615477857542512978851896980639684427124733182145163179847868074800724728931412279831486901383979847532499573097179679151799278849799027325313262510132937332000801879248433716286163832023230146898011274232238980518318443605903868916756759730360206721023142627533079744452634874753272867379479207625550588625803417627964899829299695544829182147887828374841227949489371097500261491334468048489845524607554811324243130143448002056150123545381285806626110101601163223798577968632969763243071560853716992881871645363248852759450219519380982510061622556662356269808623291120613553699760816137799437317970874177610936801434296673167169984226558418946880953481704412785691044210679201222903887097670176329666871523364437093335557887362102118476348473040698636529756554804577562118150199139922441076402094228259816522737504509011567463250536604919423635315513050098027964880476651042190751624773916456854139965527892314329290414128952366702602318602139927535290827554879605310586032102661998956599825979010392571063083455312414465937323754864737587837165198781164821226621951897609585868636865476001597869804538691646371527894018368856328667117281944792382584732186146662944323362438230050170244538716071963794872058699315878102416580420591190252745201086956471510220475218714888601894890395145039445133936817277864049536759446844248010974453028315071510174397212238849708020346694955145167840655153116371862520491462090758096994793059955261778874767752673052505557761614247543594539277988615828814893991549526145575245208487863380799136264247824324923687541141584438736211495104334323722644313109104616229025823634998185307499400803081146303203138936556517452810396879743829844054071528699103860283801107786582449049318860007646542164863846918277696602920877738003357604018351752423089490708454766450456428184052081916655397649793759199999021843843796848386209243103552130333464123561266205460250209942542212580555825522946319434709173282868044504023924657146100415060317247097656529546335924129200702743894161566538291246521698484207587749673320353938478360631889771569488063336901669030754897876238165674139868727132860949797494165886255579399375873853567004051854892439369777602811390274711569051175864531725963959041095177010088775007646765397660393162282682374196080877796320702527724068675372494553899742277785022255499792359906166583763553476614709884079414986279924947406694638151239947937103384344301511560304367607208002373645004526758371009611097998375069368358858831882127776601629931359760379817245652198082550215001278112843126567398964425907444075603029387803287665990672587773560595055931179605748226382540387996189079948833055406241112680999191720773005858572953471468861041564946497658798663109999651354864278567455103478483680808015326452676522977459396604781093490877409535623591845502517904234192788967789610467278641570571311572322977475740501720635917498518635416033757928698916661905664277858600474527064196874716115828726654319056647843249512993572829799981481064117533423972715578862984245516047667064264844828976325635573107421122074928775364438514029351655989135935658259066611836305226344249157011451741804408204494734616328491447340596248843020196132344717993281172960814458407790265944044542791356311026523656764519167341462268535648445872299570086780366209205115175818566529595452441297996638621400598615050338421698897534340253073193811867263577300063494392699360223816828350964373360303803210877599088937096132703088690001951068268648844092259053911438342749674369429968709062964486968473822813988183773489353920693948845196369217119271067958609284838563605094616481916978567941521725686207595257069492392650397332656205164800840850218933108713943181849632291772139442984119043912711194281364929015708582231497250572027352922874197733560081637694309184882398630243166616516723802506420000721321675520356917067396439263268364771313973508179564984393186240101746903644826475885309552170436431372244033744657487966791190554267838970754317365361700841583156802372740583709085900666225410180546314249067872379249139833509745711122374641314292891361268641115145090796003800042250827505513885558511682226870946180275320321226647933080074449139243382479891199321120258980085213054285407019866643712222912206344797127673716160652773801278240747824994405012945847527118335825703238708289669895155843021856274464882750810577427956216479900616763060202016026276354579467053479141462242282505306297379193935557530021341674901267394795821069884449289376986395512658671897606184877424321328840720095786548534988918933115752369462646800256357638192614111279949833744852516213150798186284511537807974725288171069586215690889922243395966556879057429534915528614469043335347438892711028976102026845031125889640342988305012621730738016251068038578984238229491134342129315110355912746229881106400745266366124996037222441607576528836858539128218099125566839454678708724604748621364390740267777068265795476427958427131203945144736573858370627682106110829430564408256492434146804485750874247187115850459726895523820127299705708536204137268813735561313712516130723224510828795440283667414764579124934571622983119549988186459682608089217670644825834624219643017421257135688066717998696149908385584535836593343276382343875996901132340078767236662088627451128277195775069471010181610299260238726242666147877334270433923791106753240906202393118584305026530329653167374704135805052428853411303274417538764422140035314570049780897852321056375115357852413615398385710997598115580458851193985044106664646081418916826289683352388011474065674989774692261630446862003985413030868750553030879338221300539773324664765062780762489400491208644031065554262348553330850512425631060983262179519603393309229393147549267429643796163814679039070973706969737391647924664358140744159297975184212395149723746639561511656312015940398098799578035546121704504020642966929324273222832809503787277458099917936238824903407547564761130631799151851577628640243752270058138993948708634079635345335926662747349175076996631939062044059528941683369529898647661538956450925426408681645343381118516636406668242805156132574125466973290845854456769250508890964724419230757774218135557050283439635995028558423262331911209488140903908822727252619126419575151750969470353995090781523940468569192943763197579635807958433457719203972445881310054353322289912010461568444542594576767199914216768554289532875958096939821923899377781606752429489571912500459863202646174318157993999620604775992408872649827868956919761529942760215201689300506851285172024962715790052779835394506983277863524387410158322608479007646559984993894571775937497518374514030771803786431078575256507137807168914467852628060672512144330338274663147354826351160376718930470274876134548466270086381667746223838349401766698258417843819006846371483166963671610030436098614833333101371762262907193881362124606227728598422761847987235528781180911042838584112226000320468525153395381132831047861501760550247943375955401818475596780857306159932863012247098319907444725053982308367043839104705816611275489773399316273577960493772274478159732335104934425710078728141072607401053957906440900022868591153725077953227489579796160036807042965932306392289486079082057498392345772520371359609376656658009614761678198303049302369373940865437111840056755227022909647646966151173756289649758789609746145245369610888773836487116348833496575454561039599513888479894617369842122532171498976842735943071955914059231738483783099026615476539377823758324061301667423377254146000018789888993741835317072085333846694327842936631670870770711319527051553722748108968683460551678156049754431657070836818266758059703136609648445787512528451744554262707189874386881672109914909939078874353835464803715411589137310201643876636502188454893551495689505275395136089896055159266690267256465613356449660049275987229228110872633533610999003995733131169100735876297450689553041349952918787213639948161242486677791490348818189216566703457941205361497271744260007675957490545970093322545479293114689000339804238237395550079825191149626212812194433187804671387216688398473766542557745206355001393413868351408757519058263733552425805519747923103442836146181690626043375340135636407838852451697165644970856326899179503439208656676579848743071855300860301749203961753164048116800649807310442439938476618316865741518594155344212101665143641901091041716057167050864155650230987595115456832095202408288759328064391578999731496285328791134741570041708573072086858111778798642939789849450678124867069008298858466480998447160936863623118741082342405830087314675456101663739685818875991355657810604099569197718141026022395461785000468995716605507422591341566886347331279892685719484255720567061894359659108326554159995294981512682346407674612186457166234766980509781460684096242989025908476305623337985902726140933201653625187088487476920308797071811825489786426067839461201760956916062212732260928166795691660344944637027105156012509732426691419530243029143340709043626572492128265320324105719828274024405551179561192918723583281682402816396014697189464572013888979203199139038292165596761630044098450209800447634254650861847129833441976478915254995907003418135255294443813705032332340376616116730564805714597568846924801470893916060318294478734422668003821153582548898090393341468688278626560304938701369401600646596819885490506601734647257051714997094616579486044325414110176946333841793848769542296451547037795632434886635892613246015454177714178383010708221609266028321623999995696507038305684453002501211159765794331429827488039776192416653020797988213028450082271988276147684468328677930295378714960845891829787808188395774422790295060067629068206570060346631042003872000407852147788364262789568606489546406346841627909975408869192286833448406182129972831270655534836539087214903136587212443231151754947808397885473445319418336813438067751199039535752686062883083401657221335492260581832240690123624159410208068560931845914957601336033298907901158478353359586560168173878453473275209817301784198130837251911523764277670553730827896282458222024680029399551544673843007695192657252536130314784440694944259732710196407130132973133421121513732850968403952830618469791184237889517772070771137608062359981799271951984780324205695922462020746296388286180941095872482621083397546291549065914207944308247529994201450337268545804647993532490867985767332339096346820302889406188708132714336145810316299086523654383075386356756886715253244911209113650858027526004786541420131425199676748089523970668629005255867977214246312681719099812684414962018049372454666982430720867836794033282790406985172520730689877132453167398726957489970371122256117331080661577642824857778853994389824149342342057429154442298913685571985510340410670713544450776445305450385811940712951013285604929938811303977419286776952584424932853999392205207479565672979105143186598577033891640045651849347384874311440117314132864705583537608884648785895685733357197277512057970487389052194877188664353696118727782735485001318625715221471487211283030104212103302707876853966164707911743611136198058766508550159085073881387694298500876872841290285995923282535388393435776622763736238739987796111591984843322981359523271196317717500716839275050085008863782463044099935312713990530024110235958212214281938753294450937872105203791286646832620744187692356152328955913796690448670836695677932123358064228451892926579007710788438460664375987324687719932598390408751286833910178393512604969152909198877068259017013220407288203548718408866573636976079705017070755418102312260110189988444779697236444368716156065508730509882399814798064774157933941647110751886088595779157127416881825773953242848126481489760862167270363143445930728618096172125592114376664280594190820138717577385536479367439829643476943735340751279615047435769800740141763806603468609802535980469449429387661997641408140610964617057421648487064512126815129527476702209704745813409859537387170066702600715106042292395669880641356879016485254063758575678861599588345672842060449334474611365356082122900502652873363665142367548051197478569319068513139285954481192697007823146773023833442280767359544591239212630391909541548858357566980689086562743879168049218710269875992890530380635238847172622990280170502882417795138065944043949507837343026862056173260313348424415663621784399479880710121616166091692890120413562213697948537095690296298091096286604603781983161656744971136348212125163068692421707277127822236362581413750359860405263045950388261799939966304161470597700339874328256027931625599697469229472592884752873024089396009035339643840995073311814506078571753512352794225026601885761411698944818433822884642274627850608699636949447997751573825617670951404164036637975263424863084076259243622344920294862647849072336196755863705209151981469489143068455341321903967713914026171629915958917597004295884671852209617461658876515245683840329757109541265614967672046491249586947912231736300017839666767143204682023454172018793643875201813039737056235076868080155757634366814801308323258767315447076756171497911450652414822118022814188311585562679715231243476447651062625167353738304851326428260559133297525829471409977451026916070224130766948287277229956814758778377359581841859413819225621801825770445796540327890080499514455956924005988922163636875222607253371115662629779229859373028231063728008507415210598658472715800478339726234716640422130213946926876125304083724004587094691491218267754051901635237868898872488226191297419444490853823539149745745854244963442747711480668554387981251900046103628766742165947229240918718731060459215997161148640178381906380007296082028856540677747735659624831675960273171069945758343401306429531367643356736089513842828836181099425891223296894193725902535703879425421040642808677634139418467642591965450402442151813532468210194364644654700824757766453270340066283834753252454518469453252941426725653834412670820678710402279716058565742771030481089585101095895355084658119791062117293881016213313110112558946703525687741363459480706041914393027364781964940125721095227174180452434957754920755458913117390022860443862464060930422866415032637479049529592817945822714202800052147991450378604573023998130293172309903457611563774179410099602806803223192707089753740961413011750312335376392411838871030740331488044158892103692171143387877955311717948842172876112871632312910243222103033582963887735524012204713349288283756606540437586430469988734372378790872599346846003053112363347887151548825778289290325679808739707030677104868004989976266995490506741992319425918402903675469220061997619862355898852889819688463410059752485357662234546655375952471014555378328484532398321809554443770041461101030124219890773450779621692576848209184289110250537535435216797119291622367058717732404554694748314604195629471535405875907286010056447872482400152289976084628930246274515844351125244775554942896306141074796725856074617046374284134621731404100039276977203415234102066045103634849099431563332248377073144969915176823731324144218545693641076168946509075358730948193738773754557935638295286113790542306040399181989614429636188757348510761186699687227537215740108292007256805733038749970411106466137058954553286949744490095310009459728859449586755162431973561916592641431711853538211383736803848878926949819768528316778964987351031863062594914112282172278025826477343477740260733009950348955499677376786028804987681777280614845448705114000624783490141004747389995750524002904983802077230096527883718337476758994813201414301002927820960108090145547695756269873786025320786471612816097840929937859318539832542160686210264291070304002043840836790423408587265582068268275865928523765708126210978208787307867043590002382644365739282515074978481823120464680654156706205575913912716297773763128049171555750420453072225651063384101669563763332994785066456626360721308504779728328003157624729033281363707128957500121095753594498449453792954439889890071422335775897570811270094035825519079515168426840545287791846477546569525746591204667360524790414289763619156121120955055456614919887997584200346403525362445775096762129040658050575301751663330339351415086572155807655876373505672065441499028394400029149097320756193465359415409269763916925848977398314411045815678906749695971771398882838255030983477519181796715113721452975343929871226015092589526434589207503314770759627259275225854978861010781367779683126163081795230171506103861909454822866428647625327137972716656120464566200040017495132810565542491505661020390836795337685049218235576755175001728400112480655262385956054152798214112358933138862051502424662787628346204253353211357539303283672119584397998894086611511028431367934452304175075105754494430103280392977933902121050237324339852050363425650664203719110078496546245542952378982324085402757177157433779600122410497149117818308279098876850085651245265722044038421770833661213132443200902784361618226962269733923590370484905309117942340782771137935715344934205406079012216345778193851066979227547234807706496321442928531930184746920939762223051182181318378993332597668541197752297706207215526814270364761545091180490469796345695758784161908252072037215723944640129429124874171757624535245050332375537690733047633015640048958439411600549964726691831711142040140793539131968645126267184234006118158338200914028859699165910655642572347582060086514233990728418529277336549994932219470709622533933518799378437923455906118184811720719172864822188673299345366219579896135320854881768267909812678609240770823896179298459045049016261240450740141542524626476539570218204993905823145017428872509277474107676451134903127456526620796133675896558554380174624185266678016036820832602945589360194937371782772082364723900218008667211156757351735941271708098841904271941004182856785081976610528099353816200353014957683522148098984542341643077125439097734483717051918519610661662446688422686678498750870828553895061825167811393877384203622220428898894659702897215896850530016663742714720288307669886049364743702558851905402885759143745814460438635155142105747633845745255813309332527840989529271318938110452193789970059228251870619970115269529070270672951669150875866932216632132759780315855395291056670115850959083634913132610740917944961486968475378134450528408766550076138378086932069912814775485277925054157761990783322542140568883742777022781663527489460105719056335293941001557752826585187738854599517917114154945300008999720113268778874413021234408995885922107602246401004558625136271892321498756011330308048517092881719950664326630709733455360959790684654689730471358251191928333309957362580471053224524444852583603273618931586552480372369824254258868371496897620837968640706662166592433712105115222146094022305231600749535075788009740226324792827748718603284664321018498737933546128900797020398274105565536061085476444349800366474422222942263009392050746909807614698707336456497534809119010149873908986364225050917678056104068223367775381585264846221537076689473452892632193895157288263973166421312046764795389744727851333431225878845795759689171213370621670044070623088192975941451478190693450556479181403475422638103677999633685103698037113673253393311921321157972556585108509673430633306158280287969339273742093395108566622359814965965236714613692245969176952165929943719253813162750128018247119521087216382590446680883012879882495874645717720345242240309083002516207658500619553383062414546161566222652019071292256951444174538290442386291822963581376407598444021764610179842790429133019144888652846102671238302412389595600772076158543483153028281458959130737423701443646165891585679124308057622653102812283256309403299066635312319054189779650794157851317243673036428654431505301097549850175174295656547649246465805763046488292759790048892077258051250584144051974598641131831959881409078666073870818291406801496846204885184527348947396520292933141879643777675294574863592612639272037748109148232820413544798576024908771626434821454870873514522336719743971030536627311270702562530376389113825660834982472565196441441446030372654300732802230476519908632343469659451202906673809302117106928622390524590927529223679093560768366457011142383061389465560173506730021744728527299133789405111723943304153103481829304657900329469293933860516610694611243498767675693906412721605192512664129112092294917593544508827326763429657229019959464655723730962187483336360103121095909205419346564551716153195712922366231958454706177099798910476142106251667590463942802033690170498709399642262000615504522336912132352996750884639117559855240660776373856208417436961712684680737814458695751526804410063806712997724975386093023119846136636135329002272840248127139907102862813661968985049441010062464092072231513489919924110717213076315574626888644835587639382666317592265847377752320043470915507706134331599998207866958788340686769881912186933429443514498015133635068944869120341473053812126187658840948002447621145494399618581143232100413692343276709462064629774796419609124606223688961997854891435637048535443800858220100376803665589433924414659383204756085115396813756868545140626237070430103320337851231914092187283748545276318186811223511658617684170435983181818441928459259381339138416909702104744530906115077723225307552545303017293622070085421901096472035924783065104878972369692822813259181764054760434117846439068154725819370496492317904147977641389792040333175545102872930178246686241432888304462256643607130054266623506612909935346920335335390471336474173979616724893186112198260151647418103978694913790354378788860967340465065575630889475574345888123541892362314548898371357034389289670536092481086754183281185046389783101060403021956399494904542641698844590345793860542864960101146736643721201436286877003975515611155735094697581597205570917424029630257910085999502550432547230482230931019847282234168882105418296353930363933088574543690960567255441528996475457962529502590696068213852491996110117209785757156612647317340777544971337496898550533864309707646583147481790064446982355010871933925039002387957971279986072031504347816085011740839878789507222945579878244488174271111001993801528429186038044910601464377839388306297894352941443380147914318310090243672739517140086974475265759248098909984323606598059217469440742197597478378565239352114407351961679693691397694537189406451252916516378818194545144024682546057034277448600293839526390710216668904972063454397290588485871932072841676487903486282932290627788119140579811497233504509364959644202815130707909014577321573012524412062966458144336417669452187198649143486914612847194395158195914901083641781280581457438785660809711466761347522543875052680492499274030427048612809317082026068288591783719181999305045788476002655623454110008538937673877891826183113054027338986694852537547711445376776732152088262244574684073099459828192586838418472189813932498801509527901285116436253681633449562170279395626748051866124390931330604014129189888445525132027428559137191002830221626344168901131746277878014170022459693825101720490049066553051821971427851853870972428716409590966023976673948416692970849380297933940213226871472834348525665190566189809932007060926777997975553079363391267608365767923188072697082714191315686935497648330213507471685594452187065595794684493465976126232184617089477601462898725650191302218035401850167557339251490184809274146202118659902002447324030803938939783956428296588243222839226961448594101269761158718793726529569836956440703473140078203387034929622141370890071702488458418529199066869089025305032709881907360736550400546341839244757569660474352799924253450987179106253119770168350545233502549652091828528531916992265062921287235572510695546926762066141295809618211907254739675753445706098260204656804707362099101609136022867490889909507866031661110381023744147393340593453859257222582914861614971922969753593890381334906480534400552891938584927587722658696242576616663021242256009364907089654678482709787837069599169937825402953870236759393108970605386284781133554630722169030794876124729493703568555650224141145981209121808009707682542389433954161192003516346005123116713992204791277437644764081467415273640519052366707961478252067169900657453808691592678577690813528910919517534891478290913546661942478384577079403049487124642711738762170794091107823191649642366212772950874651739194118465729470351274500323212405342738835984530245562209295309127400205466921550323571876483405463510806665039885077735410351654518705121791093767287556332440642973232596202704173570448744676021786151085756624059107860906292058589943936019182014724035494978834290175545392734392568520935351773040866233060258011363372048058166690164820915901734417650250535794011855936110917570106811841479283188843749117470604345278598985990019195497714788921969232090764905603590521973642277229472700290458999757656582923476849874456867273360776844293638766357120322128116550348678366570091217878825435673680006742155661288349046018832977316085818854387737701161464888321250133118973892584288915019743994021266893560922955141543850833825289138683138594563746613453501896156944455078733701691650525971344561828120705356905897878039717467133329085239861625574904464323785879801085599712081242407388866655477264744931935460008661860676212664055351493093184361228726811578432913560799093390349486167007168489623717745918961606372503823635336866419943167806673797276734190980250545631266677047052124573420976795168663818126173793637256289076334431277194395894226302866870506758600476008255085014504003002184298108379612837093442512537949861909662139518990246464924874444808193617709991659521614281419279299936539691684272666515051359497925800396500060910751096938580152308565460610592163227734883400477650455373422688185633448708519833706069041508871418520357402489423716300141210318652761726057189292363182312461782506955525422103073870984680417595417737531993719925885139293527265990622130293137483180100829978065660779058433671776962182871238789330091545815580957634081820130850839832070504414505691096854076499985176011650167174530809236281569602467892381868728396220733417909327328347780943921920078817162514718527102380915070847545955176480597721879125860789088216911275064908229426540138241172100362992479923990714679678693232821563829263106047389765594940977971568071271554885341256121926080990166853337557148207269792461878800600197847385192956645430957051006836801826161128051056523682234132829259306673198201308236027169507711805396503194039271099648754530473256040251881709048921069136758608379897446753489429428197954176289323931829701475844202616322901803845809870134025426669512975506068251316024555768641568379950511138220245399511087209221215966727366467556268576775777220914940788494510910165701586721992625175072682464036827068170492114440376275091454925222997249447962006853324217210210915187225531838704574083973337531169621295858914364524278824719765527942099272956147135156913043571549459337424241609153876585139012859196803671208486858147547279942676805466870295888358018862459194733748571115894716917491133702885594991559462258598995771483964482568339911428089034520405026803424268882614380748243290752901151045396999034993583187494762129744730820192213815418121584616685955698900008153162196976856846134196311629681711021178438721001186812300779662311838889607298025019632923873651016439128164950723093649290035536389748908004976816295014882699278564736828806034931446267712626845087902008565119945534360783488139743644907320453220155784297605042080746553431267596325969806417026457383488511187258649537389513465715517416838680935284649006702290436714296170713601216124508573157308738358032099834154325491908294862810953888130523806377982576449490758538880385370010371999866722630133621036746295357470100032694512847505240274549136279983396590171781589262411646586940766745830625943987069785056362692208344997658896292485727898047415291550744123315804662177698986449635492152705179776059273833325524183171196081580111864102586486882265896858293861804543609307084055613706171225703650407380353487430121378274248940227633668977957318568592376691015303160779392532963555846357074153231073363914477210369593927133646887816418105485441347408945024376824418063046978928524547747400315269953326339509386108408558624927024203695383392317175805239305329406005735880603788182421463220511586432671982303101967414884569424785552495581449690354345131614825468164925448423741364160563485367350202500447915027283633149004413846580007092048574187607721553741820851875963706332436350365347522132624639326861090258872178617999794515882997547756825409063306972442266234006169509800557577679119298164573997533301527997807411309208193155469165695633153330387129517403189587997784680702706875241858619388896209937360738036448153295358047879353462888584451106604769194363967461017805540168272234629681302153940804064938127740515104236982559433327336400953939378539030926852944300298476274908133189184617315725449006433777098768478403722331962609000034168362261174284894180753572602026546426794541775012938370676207935298798233328867300495458894207084508142701261097990680225840825246149753597683071784629086622939805011179425906932656205981829992373240229996018886799990043856737358703705653098129655866179905034682784892625119203365448578770443415828485902857382698500394297313431481675524941203651635717872540847773027631229276530160643739591888501634744843788474495634835130060884591477212091130091349043035605933753318162951904431176311235506422723785125815244257287307398939753763715889121219739303740919105640120139816865853250724284234023234690403818451612712650559602885828105721809388606788990785238732962499018421693379479655305176551956325688343934905677476319024639410991619321748190452569643387714199903317202183807111231488386919577429973688431023583909102625560823933668262125960695699041130286240293418070192174276080649682895898713542564436759315425151712540791652586906992520633277644613405960664299225582443025430609769858719850778349487128655582722417621866836331318261120814735507488531196154425112858999551897278479974218170935212169803536568309489772677056761658604362800017020032308765236648023975975709657495884123712790381350680044643435503489524546614449758035699735304650006793871495541250724207284669207613978877466437336433468087220947387462534701059536525989018614963008713308219461469391751246680339553296515851120547744794918987058743959637913310152339207663875254105569148297444723633496671694028358734869036926847045719061186960848538872211298832771321200681930792930328939757061000056009251646670350240006023461764392912625649313916036186382437606945626644660601763796801979291790052035897010185380219193738892705531408342362301505153252353029384886299777712031734894920762895840861822212598490628793506864960982180286706833565940560995840979977654133863781487922695785224450934504716755240468120582067509503454626169414496173511015994074516923358892794587474830546101460046200807380421598263068212721266462832492912969304037213371196960019242307107354920459522707890991309648909182328989219446077044330374228600097261497634096085192270969941446882759990804828452985310678221286428254851856893256769871295777759887647187417309062985006770945020575628874187494333460577090897852581353062776568042152591794716139574645658277746948053762398536095258924958187550831863443444724935452299148636723448851624035536692270644448241460688354241939833113104229950728182699530747952827202428490270507840746362684436174289730519369449639639068472749982448421083386030885023720878837453743323706454456616658902195333136872018679450993519715077746672788033382572923228671933618714711594845918397079883036394130467351681908424196097422751688555885933600101823899334103710051730758188733817276220684579629954276845049081284826573824324473254567574907161072212506023972971051652795570293368108015173652999829953470553237503336617354521737367625555858092518695087432467845494193252311010821743534271458414867946104993194250451198082640893987351366142478911340194450415349326684121771813485057626661547762875933803500024251419949217141238804039632711174291472335145244795512976409658698275121216370156247372750293998340160353489135871580748574875246814908500092179507749464923899697253728265464551233391378421597090037725487350225576193998251594854936630118860157063400505497509511629845322636023481644438235907617117320408903561173808899802558965699703856104297371766304555062440430996022219819166924467755048160481643852045708119940788270983496829362644414329305963742648931125336794878406136573245809025824724189461345358763856565304251145339206574742695662011525362363078904101585559845801322832818340235716291309943210698045744462824191076277499188830333201150269494969969596890292112604978378216265741161198901034871593163636355626519803250553919977956161055372441121572963816019420838532460849604622957128708448566464481312903834945434153287131633575553354617155360394156964371254934446499003752168112728032119983775829533607177382404548046162277990202528363218162203305466546592894220939930354028202160735214781791969833123225118235427968177611261606028728018616156716494208288199035399489738512679142473298295966922432211370141612358211844107403477307828892212474411247453614232017815889238143652109140601547685763824830478026196168447051379195733935712933491112478727882338319838133584944935145026475933023543269918882234695734830587459491108869025475451406461856615925228910132262726955600320298658354019709260853505156081782781445486475982361361981636152501283342818599923539337496353602572992764429991375954043054370530667760831565724585138053983980470311390174792146158036415344773156000196957740126712703672790284021421412546414433505929476959020012765953038465789392897777748984513449343870265751794389768919752382889427858073532348238139154665838232247575720996721452577698964240298855170953612494172128002446767936531899167305105275084695711000109810508133355984740140141618634283664784961035235542279108211303463966746549495462009098383837289339327572490244996029985140766287300199735550419567295604229282322087547272319022176807185909277822997298945670354504298110527473916272669796248831613683318599150863737071804653437882017675152871083116976906654553444764189702936420874645699222928589402987235938466438030226172610929737869242369016267559427492101320345549667583606718462918486499309291663941313905749278735840369345606972748203981163850982113406245772280671209956185519163240062006974804292080171648662292727623214572202954172217586308297667572427970701686985893102593854595822745163712874704027688875042102298803377855685229205845191434051954677243223577068048486100959374994115697055066385196161991154092076150029776513737563891779073397184677151682507894320030649666527147864360883854866386172858844083200529222728447893655445050298446124951714350944221125799146921351259393599773782502205830007061274766271312542696852405096209763048890334465740805993436645072704217592549935572303193234241798404014592426699208371179609270880482883277681234302203759326457935474682584798051977174277597546375436379528670477799342418460520787049748601576010826705835953244886508999817467488880820494089533039430346643739594964752707535678694755041995548669081354583991500927206395443720424665375670797664074099301193714437521954448522383536856127702426449386688490324062759188783367401522485476338701755289864246950300562124045095229415048182110615496322747754220082725057195623175971350014164499672718708892792848707752521292582029481254200355611071968174991302478993389615097717296702250674003778961160938607038959769898609316902952715277722851371064141543344495979099798285477908062927214059744529935175623474219646536410703886767535167851273164356890314195259259184154736831112309607968628674837289121863767519435041485329853551569016660436408246259722108404143730405870384107189866428858827646548010804318109358803406684402804531081720167965266671406300967622067045079436754844293899041734067707635269895424338515534058357005948961804388127911808739308042285736941064548621283674586047233277616401071942130247559499647530229403123635370234348700862593614575047474537453052091477365372509862444822415299729789876361361642032215286344050150886270967439605307862841041462208157940275196807835889225805339758152832403600722952899884354484442676623100444440372518179834927259629412027848251594644904410301005483050366226080077415230325462786361045210181769059476883087050204217443999170859151964329163693846856567220208658897328891799292264317506264129663657836954368695367223209017351585410595073170428975690108942287011091307946675355089301719227882455165633516792642031039723131208496995018989011110686247344750422892044385464452679397144791397294111454189508793666395747241410783419575494215466147837291328575670177573299256305362792155700768369048511681979136871075963474592589652917458688048351456015445039972446650157027751543335450026106896734320922021405411705231144855205006768598746689381994576568279401248546790354912207534648193548215921323396602094607321655429321477197221897994605729623845447702264212608813204497941065226478150110119487832700290497466065243940527116571672514095441892928805436657217281235710385956158011281945433864034562506100649032634520861077623301006836282810877486336159311533981077101451512111253352895331326601938133698807819727330001204023653509808008327539265466598910425814777601976033689859362744899604815954696681727289296592075658347911778925794148284421313106837538776819516903147550282914953887308187079484943411095234890575617365641393017043865486276494820456285447038922741689190042308590057560305510500393548400027952558615293256948897785789010412572870183794689531123334372193826802736191467897233644894827396782598893965771129982564671814841146167129282567051503006094639148720733429476290367555571232815902567082260683688572904426899141125032847992161299181827824410418637295140030046639477061615047577314571008252700868621442533516410281385933393068606539306480940998926789311251113966677059757697902600309860424472151668747897779039621388898367388894604223608786338494874010527216718806558339647737998078892327102047960609858777016998872723593606489505817910021075425305768177455525552258672346431675123164800211536999870661160844399444915300677566173688054248096286708466976920095430472648536263181432109688341161790617723575481798482112443235810925668719959770634334842893991126686521235530498861144336892393748961377019624365404011684264820663821578061460926719269946644951536914054290359193449884487404097479814428337300208863460024719183310254635153490651348816712533022874528493963279395100747483651888162769542219681440886814924368638368648896454005911189745754475553467871297234760515672312879171880875155270660725645417701524954473381162767914106410078641710506382765588167394131488434312012067456790049586190813785442831052074570901503951873511879883631953136810011483125527402019205296652961893535479122907696705015789478329530514361681501631131340002286446541870269408700351817761953836491380129728398074572850329765926808868689069561090549759308926817074008110170178988562364979410270439433563829508098743338118634659974522660860412911079807255301740932069260075748299391012682459125909769911283213942394946813570571320369157461124343272483706730510883159453751804182498677338969572912836666940601702334479070109670923745303827983751204801033454370377302691431249933988532765751345651084701709430716789258215548168227087995078014330355905356913888324111739281520886578587897043634031543444717803641405554860923701377621924548340624148293591240291390654718186756662927837688539602002888986658323822245920188197669228247716769096201036586882396842798330751188704380082356147153803118037692928192337029184797551537739612532713937511222443654271561496493328760592175956901276793105474069988650392785271659661835871486943214675600357582544159160691300922471554432005688799901067853111202186986647043380524468314042025446946470032192138671746441848455196321678280172304376711999553847554129015102490741017026997582802044923487744209040758099751266803598573814947701026428233071943041038687446332599225401601727457424782779011923015894814502982604567304615068554748866064490022796210602321158088516532135687554744116105132450813031261868578399584488891258414795581854531654817918879893501507973732803367942194078654299784688054027181536094762097470902167903247735718108320592389728236674575005516396298588241678570658743973246214711566423426083149800503566319117282555819762013781265161193640315146324659333780162058276072993376489593031598377587245892635564643364825593645134707232743504359059992469607578130442541825257789139190696406076360990096412706091345526515767354265115150658166648420828345132020497648679994436901934615641834902710743832472016639136239058148922083540730295675175834694678910914191083956374094521449798862912392086336720198766831233485920263013216713015489429911585713148281293972134684504572127038238787671513983151003668060508086931091595159490407973014796060888815600680132921169056288459015069651008674856098155599009667107212701206405349249433432759331185508430981308323250314354963404754595305783758512673857978734121161463178341041021969343201505342921983274383382161446840344810779765619097274297586565437254723205043301071136598772717042534209311958650556480861771606874872303399659340535981146578315565145068703908358994706038934577126140353907834081341640073819984483000326708201102189133775593591722926286206135155664687889963077007344710031680028815042092860297117816834558540373291410774238361327691636524071959154805086288719006674141221964929835781069393635824213277835820901299261857413298357298433979837064470662182642973690786670463825735410028469416457145289600308579362871653286590280316378929141709928960713326155594439806074577057804398027720947665954745735793903668175413360486357241010103130288116762693633103453403694736195290599932207006391387420172411074071106515686298311157230243074188822382857050564684404818856652341263053201437746184142767068002616505511110670492978368618035051508613023662014503121616917282416625880663559570464107454421961509466183118690003313935580039287217132251873008655708954759276885651116987370374364121332874048101016504886018826504343193803228712980736651600330428453977483569629981645776545181872507673865968954292149524533960080056480126935078055930973190561997830057804638027785913925731013796006025498838879825783245571781672045093616794541894182232222751212397091475130720192072281817604540187642172817101685129910969766447872135528795925072111493729781710391039163905586270389895225463909373660026517361550495459785106846021630471038772970639980991218962717232736077347304996009567685321950195657630097886695714154246990947778967719661307584264755014908759112473846657387085525263824157073416630001913258214375512461161932314954854020274153260610957807993355741765728754324620442327345788662253276266319416683836264638606549374435801053985252877425200976090922485468508063098887974376743413103170454286202983250131933616807685901588475132748525563455197559844307326622437799410793820490457096562783784471928791759487950298654858997550007636569532533944898979362680634749917212538990686104964750188426478746129864259533747546487010811263096107566980798548794622343763859993468284328020100816047556227354688182445230733006507932548561671653051287160586857332536724205309534959012260681300818447108336007649868544068831027777957514138080904731502910347176982528350803417788408795299333828643968072831089594756926172618795785543739219600835230004055340376782257548381942495788973653676660133704225563258218996467488605317538902653329518286630528432590883095021557693403297928914136058195056336991174147618842926075560479501090514712668082557797571968804287619421873423750924297154286947400303099788786334799962395656700092492685433081819643001771837955679479935018398081115931011270245329126492589661740977204403319297977703671801738741103813948808278718593175812528682785566871119612188437257978247395255558338338300927214836184869997577187802841239287703102320537440677330646803549377175792452604794792407983646213972288977506350592387203154753920057698615083273284160670793675294286087855975160401857233367451582119928468398856352756138517324498161825162396280096526514570243972171632863096455090456204653518021003987356301311186463634450260731654721746042173986627830575411977809977648594204713247972921758143338741679446862486707591312450967853169220096359470154553033379596238004409225661386841978164768046015042468328779365400650945998002689233590457617961678638719811437379516250785184976268058627568844662126510357316062023979235109055983753156451705319629898111398055573586607776733087077477905495723304800308520738160140977219578394009036765087460531692409554591909232794018128967329261643714762853575688396300088285020497116368282468794854973130405178834375486591217383205437780573184131330981516414300101424028715052520728535451035257395202333827927521885895891292658588069237156286185866580831004122984321750762949691027498764388306970194032740704525313570956835909814140509547401402082834609639522112240164656474842645981035760067717169878670569266843883431347565330688213299013853669675206811100609039972036086199155866705753415225291850303902200882725919989594851957721920685327475814410907334504137082621367534460165812614622722615092829453307860305006517851592985660576859287504100131261503892789910973650597245718252257532216273040318150914632430575272990184386573724645958043049809320372255071891499207061491675666991099997997834358261572396264069274200449982023471485365894641931107068626462403187503209871753472156776571007007921928007489886203689216974536671191085585510285646828063806899378502146660425920659241123045786883273158558844343165077136943278922086885639011430934667246988951203115698361528320606680327402564266185430709233326135084598240374592035878022247198077469136290462016597006160259332900919829749523019266115840698563267542772807264819414465240160265668223210409476062213496539204677040231728418609347626441010938778260634581592593830911115409444407719529365630056529054194664776951828422508615309230751634756394609347880722262843323255331686498569659461965889202311371579296738718677883349368436376280890880976541316300825893761039776126066491385691419076908328581126756821122971843042259708010590731167927321951895481138344955547072932822056921063240868396617605632417764966974131066526041102597305979840358972548826021482660762058321564146871110330687403986477336683618446145295000916364514920612233404621257926797182159290257783717921881202262175499936578941422875360896940987695554795786616215836114416577744553146322658135944530291263577539734042122984364123051090266699032508018625158783977149309313746399064879956456380550654993066607140359120180383659752001766868869379120522491265215596322202997883196132492723164409333470759971648197427628072995376971731981362025852885136904039400491805235271544704831671464674966365444954375266964421475636608892203250851740596386865441826584349693759001588891396332826774202136573885123385528289063316639252751441610086444475616836567840268522313989655246845837299256662149081348377254305563351242200826792953326129732327998320027445423568753683535659007961153314072462351277387792641688990480022031926068338607975054412516011795333527489069959840360028731619385291944718461462631433407751865403381973721249383124388173449049730910259444594376224930954324359276511961997095680059452812953366487484128587695087525161903417661693868241304838951471785152963522680335171347261303563701447539000316869007185980584061941422489545582050119407471625485560331433339163457060123769641117076356811560425047744292714473805307956447607885879159779634912233034814813227747977593956574447315386951268295840544590251656712262606329115830480330230919380394353626808017590977935117811055871618876166136168805791836952243500876981341768051884993693648777722447281922030577181639782989986623970716030280678785210521110781000114912678091319105026429949189075295783360222156689248832556034834842312645015545990277607022659972858177140469579588322351361794484001589010814492227069689356307833345091872558630086933038851218733859742563715053622761314468898584387238575805504569506586642599245906603359786752413930041202136111327334311672962492233858897692850919671749043026676052919028051368026823058093170161119609702784986328653551095698885509918794858541483614607006097520519158817943353922062362156453743350822061206332938299033533617764488295437922691048011853737521360650002567007330348611626364747556557991296447843006947376354641097602547398491941517937241743087329018709700831686849150645533097256747097166152298323222985058048741694230520016822619524284368467252346161228064848182474077548321690256038881384037597832954974447326485174238958310844176159229595215565039483932166848647364195484913198105372738979774943528900208929361217999282689006893457015964789721531810018854989520591590287963087345697644293529977197721674990024396087040021192311919371161933807133753099746721240679191408245597221975792084975931882047698546368957999107445649300189337972428800668041461862977415374221319095181151875679540915053431681429736569682641458416095073436254697066389465322059388591707523859607534977983145769156074019471287449005175412189596244177738449834459287300636039908565092238904425602293415968747522647121387677238776928412124864025169276283645100060376128490899806175338906179078431308287715612210113589719164711119797453364188786151343274780414187875160457769737042303724178053142157252479912300355258553508699044228867599092847680160494698785000265141955615998722771025677387382582720297271055085527195451045816658123814831068018807645694779240974720803643472155049990525611464544040470217134309094849386494443655013968819867314260388242300586815327191398591142006295228591477760439821949371051187223193303871500772857276806449185613093185751000625387636689867223703809144095605581957565309081353562199574928702209930662622519283853267458858474866939305968005100532591215705912924954126771442898046681673378507982312864781293147375981315845109548012974105498027749334841188256700548009580064092723075491350261552052385774336313318879052516437696616164075983882470686414359758900223774945788335636947082046294813603023763138568415859451538017857867410298252251394707326772183001189944557634329234992092106768683933171297277920784837028220973127785993910153203986088680930483436353303880331111025829683705190645534559608962039594986813738404442335669926493824272645289805650785984707856438440719073298142502074977656374373426659026681198987430673502975318690492370449633042165780399080012613209349374745218423832449139201030792533683497427603810454252949875642447693363300944525220763329928699306487476653847580192616836738602508852797163108813069882697831412938228279731684681931544348851778174915404377133512879705733111465567721551794130528840483526417167030745177433277737742786348512994965961119046007720792204231878820868861353149380237946782646181754664539736992299086664075162948820019950601305965333713234941038373742735780965842803317129232071624426605170176666006415277078062745709688301608322681218535040369594889444811645217673571957724966292960398909790796619118779759542689527493935408916398871932215090276457977274354776859207432922598715032672349118034007815266767803743358344815906330822835063461097430924069508767675747897797299358708006033186771936901192107704801750626419772088834558538541179301949283296267788234617195606614242554144691890978893634948747770169608786134891242076960238968276789146484334641965941579470184923272384694722976186140489382497178700659709852939486624202999049996720349387052279220254026687937575192562889383100619488398129541941425704319372532182679399990905985791387261462681858982651213480025633785642189618917963454291887044920701457177133797051870239952993800205717846041530368723542991051654244573257344092992674752074750395042308997405240225417487872822676427752675120918542572829121293470580094780452050448703579760137452977017647653859838061491562816561502915915736546239381477285613330118926532737632065790656585053310098393896064010875653412117884788395930442989136225464345243678141770146373385922179390051846302711616161902119975193965206939908830915823358042497160708704721737412601937308388951153289424474889346600787435284895188784735019011275784128107990226648151290476252076066050134541660911648817488955026573153076086720604883084334535768490268968948020178496483020444140801172641300494407989021529936879182285453813732277470680133599303045862428875701279008051542680168524032205992151447349704601182860563543623765053163008843730262652836860043638742261471682357380781052038554318561281099962405425453877693559013307641827438206693071126321450358749065801649774702108784803077069360010648808574246048039219151545471575315702374363776731470432965704049029566789512653064692500196645906503810510016245239105779328321491067147192421568378433212186508115119041402576730268945795215616527134410534906882489213225153943168889262479877184480963102896906807085286744030066454102451413132996663904361428944497581656435879030979401528070854744918653355955929796816627614095105291324236857760868509964960796891505311757798636145446775472161344110101042224718732459864516528083158858538920357751507828715011560374363511650914923740766568403524758940849463112104328215798885166927711790841279515310573716920248444100333096674236038302659432188222950517818603007941738868873761854453330157793789697226727488147147380892962906975448062235902610395514850971018719983431176260583540310992748837228823238161655882780789610379127724072658360278380360488080533937054656876317524371217938243125777061338369818546451305628248598353061018008411822417741129439163104150602578789865715934757935265188043564768672808834069823723745980748662054889385337548796391271178186213468145047676551569683499514503501935687623000452672851787901847636693169765353388105721644142487274456559409308697420080334056794777246192988437512095980979475064848637137705982592424129961553895280733132834398869070394873515949703411994510469613881011320138787904167169606490835060306556984004841831747226482656390161475592380777023093280607843000912582647219346739244000221689972540657210126061245595417203281684329602627013177596796649181066762409558301966114548264518478956173583907437771587897077951114330449441628649919458953688905315294076147714788149607222466410146915600912997460875759006023861984186591221430134354411774377737003248189570457500413417166141158859074199264037041596302789910260161233637393440606242809641703772919807846016969345271708065234819983769989467986104260057280895643404113592191638105059824564135097159730046415633221887951180224219909311244964246566472804697316670428441573438717567882938448299510905643937107362286931036081267138223542826745448453561528181019128236232789173208025645229822362202067440429153158173547982051475118093087147699275435221658719959760642630902997376166546881537803831783804774291261850172922097194903118864271641359201014214998245609379987705411618824261721146878983224517822604208370608912637846950504612231598626526620532009339562693367060712788650437818634703790391180492625224626464265141750300388183472792441597078780755658588750056752194896666781120503573878013897169022311986654011970839846350676198010027564379570570271075482004309020761907519249931678470194625254173039774517156080832593665833285042505501750748127806704137549691711330594738170694439877210038670497419861346427571831646865284025681655907637891434138574217849846567716818960269918316810044114656300044605382025307354491564744084338482068752268357249766016917081348580127032709480163809151379211148467805441935271480586460521130719257088146689418102579182857546728649252883861340997122117829449919027952454777512113497915049385085451431821376442984073229809007825574710542745102610697491302047415215600814162310140544691193335639003764578205050743443931058152746963630892371665447475441928699041762361149587093022272113296592622108221901319416874000770169776242822600635892835250078602734033592483620610779892750636327198991608723149533869267034496788187152062753620711206351413184320678678197377923800617176851709142868687563164759037855674594480807390110170876387621351807525468421903594835362958850937778077007638808676496982402220961352378225635288902749562115189938692826274962264715214946139764197732075125567737498685243015547870457266741189839825581109049224352857060765299668972248733552352136493503137873968825158010432751334076272412434827146760229402078322766552940585707669277993376907931372002740024580462453466899674453494917238549468902289285988164019535040708083358491175005639322833654649218412983621676230073643055305686104069826562050143672220870595890566874081025274854153162579210483544785815286672890736720144923310151877796521290812666790505624081755116481716895823465967173206523772539281704314789294490956160761858627879811990418241802864282664313857366405698278471220187182726424274914056917389258638941215064268384524287713420558263719595931307390069575013442359266685710144387165239698568631283162874504686812128538925829787036029789456997679655396915957053031216228180360189889971414317878241016508223089364523144781732098558559918630759392774013649022171318349876105871167034846591360863873573141544184772994923020263744589714470067644619638513023587131727553415245504630836635804015664332135903929680328470252061420496494572401534213904189014346517700492637711319055979785753135138403278339161776934203349817725701061333394146314843819824361886930167794985501767295422840971361444210053431681388894360243696496120703644347150526593413475525159818384766752192337097307234197897918704942102550246276992899123582665292326716705109298829024739456052579004355941357802884609156961890061070976332199873642923454938921331329006395850115582467207808118018487248031477565660626048289542150266820308022676832446537570754956693156379930290577752032755660683559405889629871015928660614123520532962345482943016230345739372514858608827081121088723306630178489330025696055528082568769440269718564963037843800613647388993419138108908410786093577422945086293790215210773148642180142009722791137226104138960741683759834707482458145444691658181710585017136692204516393734547474412696181483645149836840219281874092350535993750372027643911826046081403624449655985131953443217322652416971493460227364693171376921438081669677565462009625083810572273821212393756249252160822010151920279602901318038893278329818641692768848599754504480082866502045665955695432113386397546375609296908299590433373142247732168946033164627644144552068127013119447607777967235259059012522417156311137552700488653883626137536413915790052614116601540803390678828056527588008202605678105822016240096517817575229626651382162224099716944832029757014006702317866784308112157552775954706363719957123100201240864618543457039680964869519291858281304444153419543109220406801442297573610548742841817122650961733751725423553387993328176598333488303859065686557564042787889109316371078359421029088462912894785328649910548377895304026193117593734431321932082921057191575122168940190753641864312075074106384896253753257052048827394806505318493114128702374930229742459905847094055385976479899367959955109741365106189567880959752652402404798498191573490259292997688875656898815800638221803065157220090432872740957119064556219031158835019325238754739581962086677533977555765137683681381067714411244899512193610818763791262923610552434137677770755130413127602588209323118859165245929695187987686959373805573543083143459937056734171636299527237943990489340249725040612825887461317843120822234082092588919290761212457348652234398107701859450699277187827197267915594508966809074713733998071923197159108771070695881063313342684451943593348566519530491792740148805506013807836820472775917107429467044987716256057172614515386527030498151420561594409615012818948817142145459003398931033466184343026286550364715175735747293034991968634985346268167707851613582569602780246819572393064755850188814114694208139208320885979253721356732666208973800881355347358268037554149075311482410649555890732574015494418136387375904390843473643243124088733156667088919581340966674670902275595653852734299978259596299726653443674797035570816085165046764327998612998475917336683391171765937882826879488439656198969167490007533619915835248936166285115198230250265104077970960083386779826717611699852240671395089369867831062910502673160346616698603502818679435895237316689342891772151400613245083330194990498823257897550206993114817562557000649567579479967226465424426330724708328132381490558013326976759533411229029044020044246760076284890238114939503588048827576086550948246807670291471837941360518617000901913876370625821143428809010012563732894505647581142938882931773446871779771842621631889354135215992398820502492500101936473839125838918345004160655799123038949828034811527904657298422527654871869555813182659984159231145965883579834052876957857564974431563055608902708723839982066937826987071229536474788436251343085358162435848719809585225446466577595788156321976586801441356399258907278011331721118671230657227918020712702340726470748510139046298766199164536838499168030854202169521527290690668563684474743415063631841130097999982541573340276514294232286475678624369637648859399509540446123874193892945095642532044710382979026323484261170674738269556988565724687812547853317293769303332876242756483727872153598958411906389109559200049428765140324418848854611714671237950995284657987004712822292199854621674917321899186318075422838489655870332190213870350769369632363951707719457348998432915173549230805924879681602878366741393531174240678283184285048602247899062812440604780476668285385589923349017260767370756678945132239149123307867649970907234802531788503224878331706462793972103478311710777043992977216333628420566454656595527830890860091806730150236662616243719640992720963211490227344780254213550480090171416072488872700181309117545642937729132613792288443644319223226652945342053778049930249196144610265809473002585442567938833994862510749556477591988678846794371312330571207915660388454168758480971615563544424391960388778480795456655608095210219641789155800958096321731536350910151395560563495284425197412048494188446654070733383130899681329915128777333139522828626774302640225084215497297423226856197775869592115412842094208124650253578246586315495937151560247129377529518055746537511972632368164546969279313485787412951437892393000467078640822194155610275306841742580515213758846080226069041135583198351260427708305192657365954696885550304397642097111309223463941388981208067462650334385977985513091694468977205851305279178544534214965694908542782995550973705764453814066486905325928523515008435573212670980494501362715549076038448402113534363662688831472336474532361850580696244728765907782032432753562019864078668193676943527597025553954646729074799450471591110801672793691700978962854023494892115147813839474490891975516608445011899304043026524581069943193980412387494731723897793316246296913725774849716833357333027218238730216699530938000590445911976437158259555751244562909246648341923178145166043908521666917859443825417479918322143920322796389651526472269366744111239975808799143025329610750425575671418494503338270055852174949734000761068071050580200037109657205982036407829553466545947530866051447246673757146784869690075097884457055586976271340814518315006110011998472597848076664730675569518265179863876054497712325281135408878451377681841714622967747287837397912386932621465254131876730748132073746302132685511528096429209865513011702433407921672688262531981994279668213132770682015896746564449248700998429953396299786602811921658018559034709431821933458733227037097057015076745946727984555695721581690495531135937409622987021131069090193459447743600749044477321481645454258708554112224207463014429972975370640174300074196275490091382572862484670103271006398915174427904810683972187022511177241556351378994301077721820253076738680392148735923661007381881856304841008023597253933990843362215671961574452615984113316924656015897141579971671718937592190109348745912497742226105779320120678186359201056032671234654856912079213287100965578976289088649745923023010397585046914795589226763458653564547851800529506849922788139649050033633885031460240479160807226134126068000271491414472764217282174235189629845057203254554373747198345957047604475016917123350662495872651064491049606815691675546691412598946683540714296443342802834860973130465698843523070294679540309113234226518170530908987625000377854009312093819609778874158583807141252246071875884114415590220207125644444985640113905724051548210848655843632094565166685559889412472923361534344474756887055180457575106281285332338870332651577413299995388180312244039178692484383026887188111491218661347403319995421496799891350515303871985422700921324819070292842244373960919314455884852361496585932018260531464715710615419347113554230305140679422054702820939745569670415930938405492559885530827558128996503330212315681416348210349059045630608932038786428898763437702834220573968920735612928061388442999486216500580152536819105365685292918380765295666990347309947195975552332932552356676884413408306840720564977266947143526558792796257483547883106264311667925839317176199489455765082445721209088724598791514719912031109093612297335080460561993510360921885390414232821254538675365912064155914607133827196847244990437629347330843242273960337301527705475052033770512958281646791481273984811465316357466278003397869144222302535932328373341846300279773087127498337155534106627211955538486522502056481303306056294909512443636092924298658440200290231067970683807614058506450969716372220141369536594582460769517496428823869482927641474583649674205382093581029216926832897954673132499552984037815618356101288353764217515790832708133000225450747310792193451801765685098702562516526493514836999687073283140160836241392937846684370109222711150160231223954233353660580971698171031101975413448721394765642437094138261173272391478509656506602038347894436554653183253828887815370088560464675910386430148480164901989382622927667486180245577182624746731741366004389879187201740961998613806093240165407524741430225680156893344125153881586662617867653587365734245349825932361559536983000141447601099107907758401078372555594650655037458252730847253229280074022751891787595052688162696242477207551850631669378934083861853318358095043607160491812417794925148928681576671867767188813932275563115565519706841377466892263817137092064205144415143262131661276021941434659471098638071910057281744051625643854064772089742648555658860628337925499640083001230241706550094202111609086500105103845058989056096239431758988786880960822134517979759266027177030817043113249397214955633688793967210387779931095493777622721094869746805675529625673337790028980424642279167513422443937672796909962985572763144414386279874419962985307248687538275209791562547268691619141874262736058701718288845154337385379616255626441237081809705428549651649097738115361014710744915115110525001256636403277838087512118329127514235101501297695111437053044823540148071923013610984218483301151786051605979831623098235233349732545072580596431652959814692220419080245566754447550632838464124872348855849108879870181904529933833625775507116804818065327169885263308261441696790337983946690858254076944896194314746617824089631888547596976235351588979400986019897357992449631031124970816956048598236656021511444725940660386263223975379160907173441255137064778791251423133068165314066715442556990168672913106905548714891507494718262144123959151837287771096687971622833500383717829410309225209692399724307200692764417001137117220415885750950139258456977604761736063420913998757051452104211659348646158385595835357856002508357175656043935151707993381208163566950279675913100899413720736563062453344636812442496756928669763974412345230540225220735899855961080291121024482221071074888055783651562640379921437302094654817761420879023259135509932262313044003786931809753286480832470613707714222298078813202162585860310855099206959471066315429371939524385756253840333021187381573766274957639021806250703188968283247137659135617869458503223172500760382786235305905277399232839449491827177516477928240529551441666951420544379335550162206869528004042581920451489752742985085960871250191775472885341255690403468926023586947243662751460597217207412378975829665673480551657544925150162328273155323714930717026400694092232887648630930472551998602509256836654030778539392484436526473862067689060078544081447929268575106072474646800732196034409181627365174110833588851245521649490402033779430455227885310075363476683933228325634041005097701549215066251336923764898347502446440547381764705846806770335433614402874132794935959148910864748309932049331609368257673662288817054442353158455410794156305613361884488363817255687335048168941363174942397640627336844978085764232958365576982237852749051108916479692284216366127448841430275281159417071417690994298574881904765352146416093025437298728905256152844225346484012801494066179636769823418971335078605770418592276433889978757679285367012349401269773650766490787997820193852956743559824490276531582257843461118327020115044336232774892794415751071060889670547489947219689629967774792103475327264473967831576563762912237386509306588016231390691601832259487762647919977371853956789165704049399922634253741590252648787495644479215728306148779793590575250950590933252004013353103747523868442335130027971870973729375782769576699974121515946999890281014793605461568200811306562172086282974129690319262605500400650645504060030822776566477364888537719746115931684072041733516330633853965227466590498852871192942740472413534519465081487785953053037052378741410407484587375286429674809163124207486648008643704013677005867612569686697703993201012776250598640898042607191463225319024540220507163256974485131499093376518169960910941947117602799529224128090151861455618862567430498848246606303635008910813802919148511307063387402094242182520340063482350661975743727105649755216524738550526735351004355887518841358964372415128909366320143621838696566883754083979278163602046372181873929941753444881081252616550516662012335948875050761467039244991636506549334078779678846551887357176147488555107798910206092471875383036895032568646054607039455134849782975240330055474185549304931960092397751537428438091983924334883756027693976751268912802855149393912080262200064863719023052990517960586950721050260673994310406039464708050017927854341290031049312105023405066364981434895203850243472696955988290372469155783998114651272653996197536241237954244642306895850427577841623050965706020045307410402012397164010230258103274587179158932737466898871415225168669011853356229266768649144573681737213640563494006967200350495310021494180224858338656455261109544506754150251752033429270713600475624630894796247452572110588393466786871244346712511275022965969583167587503895945122446264569450965827419417144528105459814412102577025241991038679755018508187362007252130095988667823118539182331810652012662184986638175456984201539896871219184456636831195651470292387812305045933204915960649176878227619560730318996192515818492922990435213325634615022722541300075206062449744213822647834971353411850191191027283739215472449064267996028242678016863467129116525125806365981084370694199275419652326121832842045335602732177855471633777939592786184066389751307799984890747016139648965727556975983014831356702189722635955179954534049487441683700916134689366067008638768582931169661397250004514251284535180728813476985272759482123219571831356692125528879596777388308911160380553781432352097508380798303266565169692543300548974213166928637580382436536586053514745302058163386349977582126745610749137684433713840467486017347846879874575147440893484353179908876618648084564024569280001079126399741628977170100686033517075485102139033119035740137237370834169192608261775875273512490557193479815309599100123760333252513587436095533645771310090969600284230000862579908222670661824849874625203703984094885376312752783413650326502590253155710852544056182927105719621374594385436373177264371599803297990863891604366814766168063283208943368238125547318951136863327004474515215177892382426964613132384232699193540666647984960475456288513143562655739637965784894568368717282403196437130994558593061865257560469463284851336477200141265178226176754874654170939209336165100300354613854479702232795619031983948579988885940955273195911079116521855231408379635969391446771487686540694987908229500561164258343072936025220425284177202138361626053829687526509142645654652297184239769362922287389827341566647097150470437042190974789555539563867422765669108056187092981497054766302110342190864626283841737791611579717961713850657261857516426136482835654695702747067607544985279922048790061321452097012716967255053203509793766366596318228941409906739587806036373250043498327331604825463499774744724865813982618616161714712974407036737432322762367109079955234060796303741770516347874608068642947458775586509318369231375484610526574972368282816187197239602873081241442679702708054384183914098945786656414881128924405565308120807251194150361990087635103648571257669589568423382251772776061903873792107515243659950987046457246260373882255909175374757010947185417483282716420837166455593358310814568763009964526503471618973345037049370886801362525074075212673678043949426325137243968382847268335067407913087101602230368359951779983069605461487310362457540105964945253542745469860782491724933455582997498670343260587049662262375071613596348299600679717974866153732346048464899573276187819662774141902522967613830409751712596820719079601968828943752603701882904601234114344962284889422453530553565048480513677694985146309098865037544235460175592832651803544574797170111397466861353392644840713039148390486824252022788300232663059929253501020707554750348859903092452971667529448258829541399902592418901636355609086816880651395932622170147955412720996583370116694994080340593911528043511841885733120939202915514041492277415844459473160195192844871399207229943177151534716249586270055780593345838550782812116397099798902517908262291535766353726877322795316060407862983991173518494240578074250049999369404371936553783067114393337958006749119389935461264639204628105750184542745039674168753710800463458082912755338026228983073194885525951453262670365884347775812363431099290865772162952874527987411822634361551442698029360804896731283742758932181376865330158709990166644400062175544037509153964743013561750400695981872359908890423160113131392377669206913249092123716056636634758132846985943477570082951549332965689074965823074389705354456013812750785171606183176179119714785555350327197609191250440147608738898814370091686150828445276627048032190934361815449414935079131413537997729582747613407103834976614370454439623279978351053715698214224908153313626844285977137425675314783948827548323599817840140867752036021896813904882241888349251013342871739622280928820680073374568456808226525205859466665543014273836492387032769009288335822237748116313304088254056242771868070015281716337307818066540069168991866703978422891190134428000713302362548699543977594508758419191660238424135060764477633162144582245920205862397002763928597871656187783552030242636114158303218214262360661015103508830315617709160700376903029224278707994123097591218069420736292245148022347007915603750439191554801546963764131859112341950290292327349496762490380628299815021463997715499767106065643404174573720026270700214850986333786751587313231863876247461745669660137118126293259487335531420505903442453322351717080114945103624689531125061517987375791819702403531767389631263426049218428512478727556002950982666912734924634122894486304623699035994649693431035146336305511258304720018116783620641709701038015659867947551128404839083286396855553532158590706369234596453974977903949357822038169305733514678697844531584044638895030001267896892203870282871771386891932774449600218877729496190963646316879396841617561360539072158401118270824011607026350417557643409347918050965282126130045227938260695940774100062096752369098726019301789332033640914086780377533365018884905169194282782545358670930809383322090435724829995949086319809240088678050523308762922099936783892132947084410323484375020805674517337082282598825593409128719375556449644800752395631437647750161025672036872887390310727409086558742240748360149289346708949620812843612877703992020351782264494004425061193433687649887508409257841488319203255502204467223176252127458690794043138349506928336923774285106540844923551285262990166144144200521896491201404010750884348608154836175079861173661453969808361905155638450493905216960337299195505884702190622679165931219293186088921964711957710362221604840685425851997066607383340159041410390062834172525119223484306633918450015127192840239107370517862700944986324421541906561867830015140007847328477608698245412222603155382864261237205158273292649716634585351462456682428055458608618898197613518226712731971457466576722657757013168795669984334742209067779533693052112423155232894425745968135104673698805507010269179270525215553726371392431410873175926746262659755037113604093066604483933614320053162817026240741712670750402145672658244917308411278598163723712330175254033587603699214272586366942741432800894496745718858428541118593378136959411612421532547742343339230867067733477200435613591367841134588024196696297402430433278913120853530376755620354135625721463389907847083507208273500678396347247759023134817755190937097617050713524836925035395353677580123160054204290582311730896409224981779169542512309232100337828196669309404559409698413015199959882422654406284006160790173087922580746582577330384536452904083168125620892546171179089838769035505276488611359237262042200456757203482862279289055909432386308415346396202970798259227550463035841182732932408281638775340224009058736571006158362523790198993551951467834466298173207967004043092484112425081402327356420881317884673157907657716154086422906558595765688708031563831072173460465049382030784247376983422874676551838497532888646646148583757193339829250540820140420257457499904729365330047970051306205167546918969490474055390778395933526445022865586212299436708473184104292584904147126367396650220009642317568467037071358973803789940589316863219887945703513735506073367964943486040574558527269170981282945189499199484750526400632429679524865092101990416292320631922271578464480870685120414540808921443281876679748421326440496997434658128851918143650030459338137959282984148443830938035880607426426507211711268452929515147233556953569452945711884687178410925747286786847917851996715565594185435315325045818089162897460796675631464028344925665864413749069889535812038111743137192263133219995894917733455394060755955715688837011870325892710963645250128840278627986422687140725816044636340811976656977564138983485988062251970197580676933033640242548439854135362397749242335167180839560741162381643267713977712740343929464357474406970138553038610523693780351723786361232376267773545254167692664866399827757639351244387919281728624569298503698739146074753453185866770068702838395050410224972676718696258038272252660555941693991629975576161080411465063371400746105381828793527024989327464925687871895003990782411147561691547065451075768627835962552255168166510498794738208088486147336094828630913974450002622314959907728348603308119860141922613504009141621942936016621603953751638474385535005390024704092544520982437511207595628894984511647001115548125316273707847937857266024059792264107353585930610923275363651924254634603529356995492142405100821939673449883423340275962735532306359319988723686544383590665509612246505165857484338392850704893169506815719429349115301247811028682949440822509511011715063366851617206188082782746765444350694855248924064021752335651496032531943181232480053753868315344821117089592048011281356186089151113106419348472708567196908414070952703367911108004375919965998681373717334495096264587236918328962037692352983124050259467985744987554528283088987051451624315729170058357956946757644932201057211124167549919487333662006201793018496967843417339882312468816525904684168036058071827319040195652899996436598018131404653827047086893984961808439797370129467140723445715943129755242839216769091921515411933233732017984482615953338730411868847530470343880349070793648849416725897911547021574748547853929607596292020291589704124336712425746459917127774838123935898286866710150249668642332037328937359105921321963936053343829063447256251482889648425373388131004313708571223658539247385297419078557137832102180383515258934514853898275296613868054509229146474863724963826351928296414669259131933082364549506023683659405734078654287014135784438027056803912809929450659486670690662976605130992352157599726661570926100993614082390389111628648307797387691012972897895034132059813224833482012442719611953248592878848166366774834066857900889077605338356926816344624799818977326324825321414669150507278753987539892588044250861486347595503208353535773719764023617301704062541417063153127486091152568466615206037739934350411356866784537007641732287180498759417539557975887245949646242196956853181659900382014856344745684631992196589551689871095912164684814773361983583746153311379907466703340826989611330811801181360970595999198756856677866310275919222868227804893995083830729016132454697121186465487863075396928926867684316816241305205420536316857141522701606020495525300276983251551978755319853356730031803643904586282675419501271803476999917544958155987198861873049660192833333926534675073668337371156492166848665053889494883467393663405044969416624249185431522058231006842720833484059405216067342481418995594089486613267109843488004386649782678182638782593092680979234209496274321580805034459975416425270079930985875228106606758042312090331563090728336233616004300842887416668607385016810576668366611757808257354343209560545617114555303258922086498875190511862846919718005658882731695401292263612433567443864617388244213555843414377091742473808336322213646195726538807796231255924022027633106336408256445977043947966778553481053458530614786244461420660501231115410609950202355940828327803198369272870802440603961777417394580365780851663335374339264810104558308775883138691791850416893783574760124009248182271825738519022548127495498263097211295428698888355406684737876182449323962164001523991161550131741313508438704142170273082522378490660861887703062007873784744935627856886823125391191409831397631540909978917864344132861726936063385322975365257611961779023843634689444290425141035866062259158231125096227597286905456791298632182166937971262235076135131071627386565275298580914007029960203817973273469859707182044619688508701653295568746196465707852160369872802655452701877312538261679158964240785203724668850281032902746566584014547896405383348108140562946376624106051665930530542765075331994552073741139124579451213907567537953686883586727257958418242378113499616754710916143630917098502880351983096678707047378789348513810228636655348418721812037049361897541233136351054940679227691673856494454621518435005654315038439809407564116485068632619177083245808820951244304881488238020692622773410968325610892462134275555888026937916665414090468446490773382536171976830140941298738492187785639363385101260330659477760267985932275529963956311419745874590256164770803969433407011738082725361755819392665577948304397989799551246428177606690556846039260605134333954834566839614681160300279108430203115794900282880363779568758377929946341260560387804996937537684048022757475323381272349719243166967564319079629126352640522566349402305314836385090255035830140720029009282811733834235687917871326223749490180660757101429392371894150664521823723873288836174269751111256549247797652020224879027692775183551191435183270154137466439046803714237816740470622509386005322134102711768840740869030002286948649577296080211384299834956837033638704847887931572437535256690805060075240773451890428654329444040080532628512920019749256165142689147275007131196640492456608889932154128758876565221091503579246519680570934373295306739981140714469642297898678915444482664986410786016358782019212884136716819299220743492940739086608417576203097584271331058756752674007345519805138982097614581589018004136424781356935620651762765342240184432538784550759404122664040728939784264779012227091984406051553476555725720223529006321773841407760882140485450241478951904798373627346646032464700451132903587607784249549266579756081462215327271759784878265201365836783439337470626075358472628405987967747298274764858764340253240561509295649044701999854747954707620898123888723079623486251248788253913841342596622923768557284637072852511244711242339743310494797943694282300714302002795653066760390701990637607359557783616119867714085106125697478754332004939067500206892926531856493742932887237216507164950382817975087841651003827681994962594797943720261553920199574253839564564490139160754770950480894329734606958164195321163505072006500428651364040964574801277235940500541986314989878521725192522592186267466703918980880595229223876488710489059131614535184831139858002541504534156668421126478317801796178478196870848475995618351973026450200998682151152333295719716554709426010964731231832459807214114813542912128758751093458933335771871077649574800159683471492144179847474462616727645632222377433113460367900805768617522031410340221825591659574049107684561710385103928488288167845474447174840168769168720764188476913898752778716457034891210154288369667099758827125697029524234370761767223436148115930338295302507403903202148378185805341391611170975296740952667597136832990536209043171066213220657293037390792174241821539075403875307564210840489438252506056588117094185425323154299743670896582244034600985933118144734895559219793732320766370504689247064652860954507509745500444287536531254352681120567567422631246283601794443392900936567885682728798384750818404992973723122455697454325714724337030309122800662060849940880375085413689029114526928654040258112273537641663374358351677441393988482551531380846415920125815006329768494718232213729378244189532593860646843266251585599985590323525097967314614938374113723431183242277362205721524623064344461510469465908295819853174252933639904836769030991241906254126225407309002526169879250663203130087776612201099949454676648221739881031132117933965877472968558407136917423980597554045660741784083442516108154321121079886767763664793204835730737497361540107137806310038411382978541216599435194777339410101822943118877621560851910243814154865092803546798029720137397731568511610288902112173472384306781889324304363556029387788859653941220720591519708396166254534487809028917293925723479811187317318535186645632191476094213658247939948487822598734445105785790513835358236331042149710442333050619061685214664830051204390216902277193369212390792785236116118186996554713869844396101282037801976695608932367225396845414860909679037222449895315188663522581749677632094646903707321348856646094748622881285302912557577982900192647100326656215475909709489542673822934855308754889072599152507162201819531749061560322623891684244823558819650110890977756050093576553139769724732810101251395715315782673160658131973662106092376224513637072069449419657825522695344132418640679149472494717965069643125592080541714549954682088763847120461963260052977240928887017516577733495764860033478696271421096531250697106349516214803975950761056563743722532535788589812719341489929521857596851963868799382451769329923929977814420990261382958941740583554158318590216392873417601847478988742123841741500674792817204942220536653692133983067238025914259806198541083510214896574267793942350732576968614708212056567078376564681344152597656972169882758292265790608215838511372258207051031233780693725356098380192847245168996163416614160823640271680361885490866065705445743711589343117057193434997667436722796965809613745968785897037350762389953024230585485935310466046439297414113945670858731438273370293342738941875303558861606682581310490116416715233408831762106613420584804292881326418995355996656801247541739066809810805563737226428475624308879216294098341776809458666651417535007184135959110100101987225820275861036148004353398114675706323966003484174622400273675842157370577618948490671449996559759590179268993476143026702804089917686156561197640376571901676861924671155931121258541404878486414749625688461082508355808045346027917077272039101962034417519542551237247034848221073043906498166262580695388946299955601268474334416817717051309291643625620341810143246453568586511718351306160329295550404191307478092088169029352674601049173584251342172900463188108020085379698141631089310335692774352900190025203631346968486540708898706154490744936485911930564525320652763949144161376893648378457199031330636293965335094836648842687817468047479059586592728547365363650876046747812095185438858618578119744882438653229278478734039827028641911574069882488245960219365250484301347176656355590521405337000242175146240211259452090961149148991677152488267200266546628330872621686851063712034326829525812982250473763004225580823970763337546415939319818563943218232769827544921276971514486509161764658673160719996983399947892105148120676623484352390677869150011191760983158058636679757872989427200880734372808665260748595695645873065273189728589264472807559185145550501168570732192428903588476229252406088765878736677396189980534937154544076009134886097181098142629207297059222021245870526389889895996234399043459629914207711433018512108552648791775764635267827624426395111432452380077882542155517261190602043165577331010167515699239448869682643584531046479196600252724730347466326082115471293857029104826385524237616348732671414408427251585591708465938282729354712468253650893828778304664900714030449632182405580277888854863295877786910634085845799360636254320294076574353091928692853252702074059925985348514323494129606720923156132110770313805904155830788706304844440556863433039787010951107490729762953525684847181484794320070333230396034234566637929057565916995316415925935204878337747152715568184272450469154089468163081375594661279561223930481356745942691708936209572290160612326633322176224681355464614689158216904272143566865501707760316622047247074898511786949341654885348087713703637269968959732734088373553725285321010336858778024876004972194199671068909414683922973792269201759472107706452720121542662883243859758378590709808285321082359582922760829826642867495165801314638510560866615201202655582248148217923702317300929808207683660131449408273333060050035831232075957828320526824442811938973857047365342908227456873958695268235215927132647673050253711373047435230795542393393112184097965734635975841032234866681248093996873412807043275772008931742847016957788356439944871689956659171178080917862538642109643278137466946774416898715791026956852894161454557903911543464076943682152899028902570287994416129592727866142354606625133449689194272601198985769859073205220061624024343017101627613935388682240585400959889661515860761827913568187767379229232439117018010269082085165165500463678822001496277984820426287814119219145575515032965833773551404675275967501957089977879863972615632232133038687603761328992063599151704160083192603971662203718487586261231964347562289488463590593646041127034430694121656962950462390516380198302849662389194169558140131160292199790658827568867642457929690625768001433470678831844948595995121233486818785946589808315511144803186929271982520764274506899051407705647157744760828562111560458588259008557153927390631881949825518876283099412071258699964217019503057059537372616115002799390791734889058606755420572533886345099115303424812083397327278547666500025197416017276658476592843167769644227508529628645185083817687023201595872601232296725196229541056733320222124075796258723382420453586524106429426930044386941382022685165417814355775699238992243920396255096395500606980109727926569705745311008251261256838689152583452829865217245593749405741053222703627621897636631368843123402938030526603063086416805058357651966440838928548193124138048037694367626482792537433124986815201812625893592202899940265739484867542125253794511406849178204502236887927598088842644577214528710445962759113755003114245895492954640018208108440384569016038601040919523168333279751910757273742170967201867947423462426746755326748926425676679100615890776871154376232107172998941052426183553432452057493712619886982701992477291346179643614848163979922103880425506106086330884511466269533354191217636931140895148792451061665204568562446805123965150673953222660299544249938507959857063482200915808576637298307189274503290185451918161368685441864505460240542762479546444572245389400008061535158736949642778587913830163707060274383569056257689590210628006299209831715711417789973362626494075667118367975533683561298437808791196035340167880850030904230663857628225829044157624831605326598880813699479818566004299897718071700775609087582465868004325513868232949989118461043654633387067668486581186824830448870431809950974291175513207452875496912873127294371317030522117813339025387819610730613973020857516407598417406494270115993418705884190246846412718163180440189026055308692995458706005420538119675399110084292388793801305028297228637512450200911006231119213028261264870987979179641159587693829668105076074685926816559458137711506230323391000911640602320342182067512293177970465499112902904271179174396059023627477946507292909381894500541800406498494822361195026700607672330270452388378337046840458229650189785709551497662247022475532868439443672460283406224775850121475294718065015586049464800831141677498243615494531124287189903829755279035144081515348771282503542324620996303379218330271843081562024345962650196217817719366746254794794896667981643660704802322194287144129014338965232539480167238680853400956838329107584794960108995251144543949511322157637105816277801032487182254478202464200733035154367901813982503198910367173957122276502436901244068285068922256174223143697424411439982876318481657526396117792508276695309307694145652034625384744327780928322701765267935171714256510386195280938735220097263473256075554291387095423410257527100032823283820783879941017232447840425565608274646198902129229728623346663758952276619855147702185481500252335764088390444767415523961896976632920767429116086823178285984394182223260441067594156206277519592647827760219210618280633224146266392819331717890873650857319335475684802251423663091998441499022482967743555950067071655629581495938308266099308471840723246157945179964875459848659720928789518034104749414505069402652646096943673558202285460193429762399509557606861100851268819871658110805927408839340654381362026744729697771695190982976313373793350892740467278184848075546083800873955773145373810207660478381958433290868676492438228164434108226196139341253254412264119607637388253748608210695891714925895653809343482748759947431432686096047923424100530433358208844101544219716970881705418958831667312108991682746901712157371704087233793477194458064510733246199392093874624300508265948256035691664004542092695780869256867745630715036595116543587241294143061690754282461541457438524578463909462338469592575221376493793924956087183769740301679493579503803276676542392574189280751826203891314977839594500392375304696109320902630447431840466137014356098020208342396376291929509383316714875804584060192820412877423607684923728144405403650734870455666148677770510861667018701397216500644184793898458869070166994807658413852281920967354101008909417545170271431490598418636796955713155280327234787692154354524019096757741326525450857984299411279143227817629757058224533706008555420901184704408210314383848266706162714297254927046338849779728627359030175274775251995250460352636122550651818231125913104302252351238465881553526144215852088577965977783922185876997930502660870028136903085112632791139188579764215623417741009775157616686791938941542089850137691523238189847996970628072472314580292063646934021475497014684388026756119682439239721495359976272780112823310864655231318748678429336944688126514849598429374115314998727466242221674611763078160766458408337584204967689744709032473060667827100307577355856504874288144440571914555045364015296210574896530775856966399076455399993892433612991938035950477883727038397088657875001505255161320621005736517654356526674709994717006104768599284124104904424832829233181182494776649409134328447647202081583707641208336358797657909975871293211708358671607495009406341292254811563421723157136971384076471262757846101585224084238234525830579672920799160515265582335894471075235806132782615750782474938725459242186348883711094499100962349927707527808808670817868741036392491372431631058244635668855668756058050353985373652788426136268421887060414981463624168609370167205404203239569540760459449826339273331298980429077727982774948892745452045436912587400333944124610345734483863949905251019132997826667484893451375095571832028020414661316400813708907194816534803085467818191478723148867456163229642789159036853029387016572346472655791929696917376533237386658503636602613878049123676354467618673739112210117807290938829819547734779017248553474767227435606387419706803105499665157271744085541078918890175475688225452093928569249812863362101110573750138794226127410755896558037443835351447861839855937710911926519052638055769970669336465362180763579668412366477189612700495467543547371552765650237808118163167342879566554779768474019454856110870684397460941013391288536290611611646164964344046959220394509827628906501415766825201089936637963450618552288618629257331884288420064528955685575321690026786996392483137177077874253290317155189326177871977368451045264470870994818101967323926598471051109946958838738347786045742544542129640810134364496266832320578289654098292780875738384571416338162990985411836044518082629085272682268243274653499691408314902671886685996748902415595680347801981104458901323737945567408144506657997333605234743645680805058148839865882750622125882547898232925183241017733247821574875088779468926067490743969594979858802298943135555577213509452689113873552445865807243384736742002574909888000059687219278088222165041311534453946379612052898888009809249263435042729205325003357213523246045000023738475631004098283500040484436194731794913933169519294404876030803883800086635443063480596784511197778976840716599577730507702317383330322938336485714072876205402360553154855482650790934541527225197411112768204197802284568502478076418990371443045768221115097346364849940757525682455773071782765076573247264723684843243967483993737548780593240429619651841426388384590484224287399432621299130288905992661877005682188241610470837511947593374779981660834160712817992039332966148172243928912273116493976483637879754161687505176767316401035871693231569205385667940529725612860902541153478190103894934412398381785521833879259455655807638169634350312998123681524733988048529986164275688115343883831991029877311542365075127956276001762304112083683677763820104220059128599407648765575049360691718362738939934527789207251533637748384840479144707605917299764733606768489294361323436801242449171579476386631524593108229971735223102013588052598253863924977677765240129128979117880245891498107754635322517091685428708172069245161636358700546136873042435953517018502945322388508037354964779598904522775478891458175941601435596409065348267320794222826891461013613676709886292547640373644316818714212307645055905253151699728975140451742070174186511558078304699159043313023662068173329076112407998267555132992101132975773848146570752638540541422299857433785626733703662021785585339636644763242862047385914012997743871359162033491882336740154231251938386561616034350268842145192933071404337774583260377815177041949179267721372386065976503730492373351459996944608285972926421241433637248469113801126673234455594886025306695712073609240000660579051941770830374581251335997490308441440046031059258787612046214261704481353841518274774498178907322858508227341155028281607228829757653723095737559692198908255645059327289407411002215671311014867731084471973370398307589077900388251606730821158811091830625965334394934114787609037407020252433002689584093162429488617625985991483367280003246294760017646285316197416621500727514961744787136062490987563801487929150480130347344577178975708229729728125711507893321876157489821132036480431131482657531001935703483743790063426858928347792500217279766835727380076239524225566399539408364460198973894040961065492271559218694153183944671147467741822853944334038512488816537321279911177794658168292670788011702450872155539612094788786737094681579381685937894361412690770950109527774953061806264475958881880410132353206890515911709473568869647560942290591748906353596705342465104527182652810038134811384642555539352377828688433881292576606323403260673794147069621177477921748445359044663187361110676963812261501307622879084687933233422886377341533954436983372187925523657729083556243665639900035135448780659071214929322207067688946040374909915475425515481138174833421130340532569888264935836229170107993550938511269698743234039989078908660485895675638789073649656332391281672411994469655171473759152839913518204030964609093978632438851956847377043592525646235434706422779362716637022345906631064650688095827161683188212763805199609296946290325208558190358690018885421789073272813350800956478566775169252378764014126666246855684093073845450387619922077917266478022184131424486496125170931366969579684669323437243811668758341695152973394129025813915902197083486972045469360619470386962608568888057880279865581838571086059739260720765657445853914657431143614756287584194440269724546429788410189952251848384383980879845376574068783438818443956670054196919010391280266867065880700424875670745901961346894835625843375989166866717597591510525973195970746335106312429759013995860026093232550382007350143188972599210769694826503369672021527007266732371680053411312263894863565401497531894909289492935476375774424715102101651151435403939407907132412083293299405170479847090657009780227542346929678917596421398363913193230164326521084972600547626293681777807502572797380601626378945327120163477581651589602446825018751185172300956680386227221085804538035829037891455123444630959293474066793454359834130343760018378924422536910433971892404046922399852609070747316556715519364444111990941589795447403418035288082185944370682714704394628839993097278337910104900779302281733094482398665520427502102137992694222234228811866713269637047593558449853189312186811293321357449947542175813464629764424479202363372075515354229763536670244579620042616587996777750989352836090453987049265428731528312204393245482363456029440954089695969037416116681823989306241567988250174117463753776759165171444089627071060738671795340229803677255054109380462548895130187475713113067900343995273765520429217448080088268679525516255182662095918690870854382192767109276113091716793734616352242551117808442453641259810586510650614551597832237852866941470638316576736685908100577251723805437263321057773659385778809597482097872294625127349003425410025889941422840171804146061455942156793659780377504629130398169212276121582175088347128995643263522362320893073502752183173577552836877039952823849767598430734452138585245481676093074284138881142282533574542347931311254499099936012525083182240115382098841216464661015589818492217131716066207620333203869132099464325813935171498050954156878171486855172825715171986182461159278697204519502219821613996194920170453126074156309129858394884413860433264188166325112518815507736410806283805600834102266636096062518964393265832647710810400630034257918096553513749074358016545590895285346053348502609275179608944757070877402522234867043758531633916272865250681434763078944292913174986358087384820626631664558996641103945768632245954973544816427214763906623485510269345407308017005291048403652281741105191158558872211337083411864336543702795963273063803633928034319994544848316832902334239737543190365568876355169345409339136178504769097999961510394646973928486176794453429654532324325528128220941478560272832547354067946986323246600670410588645743886618688325720343292257620083814031975891273752746390524372109105777943408098841420222236107375676602564461326837399927629638424754908795130704756094717413375504292100571916042004711343281263913998004352734345839633166084824953901902238333168387100637733811718895830996231971851179500715123846631244045189480415715949130770904076970230168033811713695153096756233275117991253557645365414573005410171534716843525190659242740751320331501865414648548445197940381462417907453018079085235811127721214681793335559181614674014093437201709309889874942945758454143330990536552502989621512475790011438359223243650359840283792539523332881858114035068729057918549327985552167692727911018379442292247180084550923945637587320086308546444619514417746851482826529858152105850050132244020688927011580473873800040506601906386962974771581636687740539718286113216545370092020913830865389265402346342433190694673767535831460620380962910205938874824123782867816851025153242401039781843395692137827169592634142986694289773718563499821603060930771504272049992364858042337690342724044142752987937027873666810111215756458387654129326746219921931623551224853457414884191148074407320519139805620739195384410649466963987749515584061242012586043657035538766513438730531169944592846722312490374461096145825000470622510714026660759845980084444013336516657525757479151229556284638072261922407772591641009612064854600655927988248156988560736894446601675307630423145836146739829114039103735730219015677140733249242023323785928706575504923397996202135674100910550902689063831130446300230002039145015393636447881707884011861219468366210453691269330349067296622143377125851743892749451023529901596141408713350589484677200592221218691997250731811108994092250189326364351237247884583591728600328274846188618135629565832512487693012786299504614860223608339364636493246453697660341737762487575442975210463011333988874735474552965109944324978013083808884431359673429427823950753087325989929744916791709086767058728699260897338175014695076314110349147636789442288238504187365219356346000876010012666675210650737332317247367951674149110830975278279966726137000432667280967787240010989527653373502216831778478666906603886952927366530050584752699652348184519060076423326553169287068198755438796571878010083746286653035751217762107611120601236777400247159046051129500178034021924796340962117653922132407083392159924097640603341967136625159291543492974119764362807213012194307614072703775232701456999109839126074118944333952170914026099031386839261527737285316646969791166297552803917964497929054530053006370736074113596346517171417581869674487319510534872252766851424910250769549286210049701575576827898940845857742627812265988912208038614014647493672962267365965729528673028069865962435989536428538490974432521605323934099741344557135825510226414927968845424989649899601570997624394845798642272259611488946620319571345051769648386833343801913191571493394110681539012609892865989472005327659800986742212283081975030012350853553216735619106560251382038233737003638306292034862540573703707794576375376457221431098650254433393652161058370438819091848036395726254325067855160163748425548228699138516266199723999394414129068493314381520748960248893891375073369729458039931295283969054865218999999883395460550227831061174577642776649284460834564540431029034225147796917710209237195220465499008890728498607686435818539536234073983345997054844670464379312236834142170039745606772878872972798945978133664870604518634893960967949674141703889886888799886829659517395352418979334766051607473083604959353545158901066111139369097439138533382063224873329645521768032877090065978873561161434880173995512340714898665236921932675184904807591135763118223393572345623017914442745161841672381237820350060671417584618492000181677147670130833444382714070488648048969500412899478863842353109467143583276191859735040113800290274614506313524196745790778045140494607010713241545129767429131502489195229278503559684455885116517653875719518630852002605173740641360696299823990582601296350112052044104171117953715982617122944680340987490602053196656512649513163339558385969653316176967232885318945294009884567835346054780424388495437582712547044445459046793177225184414591657255078752719929525400118289963108795785879935329539465551799663288782175285311716760091027661701749316961512056626064820737595396663065753488164291547986710509145690398373293760211886442681852606377753776087920303033885807417612437926936421636098281700146825902113808566963343345674758250995205989792329735351465241939723115445601738392375073080131728123698858591643673593053822373117059293090259556330667591167447367630842828237366159762995348698052716607754553930571210112780593014537132682638370931619748404055424065386017645125265273095589527299374141257610712220869099445332377801834208141158773712022774482425869173291875193249034253630501023592118543967211361389472830305004410679974672763496866123447862635681684447245439109361853677882782227676462008668037435746639531494441335288736655977965914500751369851012611950165349416578606377299024967509764720925940840986747936279223915127476856267016067020134848531613083161232466012254266687805611242436779514300902708832737437371107190622455986843199896395566029471644799618099459093546201979004145934239603489077699622698808725350762563310199977004194963131785785178021958176062313067789416677885625568516501848290474452514711252490610847117029456333325077879936751742043307545079779982034773453571359810924603137340527603736828708183953085842788832397743858887109498174607704830769359578507945848478053453883810432494892850716899027172453220736006130530835948567459905069135947100300940452969640297516288605671763334210048039490098423460436833423885072849185404176631768571503172077354862639666378679428869750142554875728188387698465923949177159988585500726685272255103535223815645166042862561665238339300514954050618122422902832039756640794474528920972361163108428370097051568171312006756395997286249617415933770400815401142750273943962604704324168138972511576762093776959891316408777494061028135370770803173002586093794047071435891803030855108405392843940989854319969404749896018453418537417263384412064903124754609191405722991437489325620589233773251605225587579517610351926206657069978084084190291360768520116522796044240810533658800209608733333783801276975427648146886691801300358735985062290785593292471664045377372899161941617765117213678665002294591842099339423495788826262942399670913092877071880597483624492194493479667457494021032118563560439451535747296335655189786393728652797164613656021549953930141904093613909159172322366725114247849596575303363030847288864001295991540880590695745854481771521225620195168513461329174138280319003984539304626418752228895522164136281768408496140061846878001033759510039633617651971360088414877246176996851323479688228553997317422438676838363024678626224377360929452357579868644445644297607572429826476944845492629546683660339696197818785961940015952322475801669699469748410440133685949158935395719139694721249859364578224986854050753812385773426709761453103821214254627836110928073638290681782330277055821311797517617099992605570321032810137414102261499817846672408734882052274075924684878502878106321112729782487074570143484177860490343652283942699013058035020594395728694796010174899538550146241915752681087519068584934936697718093525676489355811993067643693393415885946466931818503523414133849125637289285170705748505304495272333253232921308385645968918729589580153536302689432595203554800904793845579943451948222114190143859884910550967616508834364162025327252260938691345121147980967032227220573479714447437554277411933136608066885790387456505313267135392519199183726815881239342523251193728882062531212281556363918967642184413371266969280562541810988207137451904960764099177050653722678919822942872836145237313913754421516648320052805456453101791051689597545224729187870735227278205392714064091944323451386149575130409018255188626143704322451672550364183640562148271338369310288185738164265281858031157972800803373706262796561267431627828453517419780472892894592288833375206721390556787580046355341682757263668108088761713967666310620639809586391698362380286878233122083135027956057873457814710788245818711385566682231566124585219900390163154970579477582833631828100020665230788876697863610572270414955131097536912015809542381500210135082902863649734531500635771575642940521690988952835438135066326668616225814313308063193556313055529096135469304799306968043812784386674433081850741142503156938585464028415113355330663501335685755134466278896650806401811148911725763529722579894057084085911128709071368932930456684000137211025851522504796284232444604608901739028702989208993938218590548966297378509030027330297615243231306923936493701593621790998811125535211702349191162228730681523844642461032533624242094398519333197654027744540726830057183118130250041373965469278772212150125705222564237160953172801752888625399623729557534172672955096117054602540288197680748454677156708046917508929544052412313738316990251772807887494254509193810274935283235927387073900543236868224180196081018992604708768047887999085699888928450485820824328309007686774400654293092813224757511572224587462024673787821075628717624368659123038492299839334999634322859340228298907906203943330540689711572039750576438460030635227460914639700332429639219353324514469237256428786096405593656169401460253258225104073823142293488396123667123292479230506991148768908408513761900947361432032528738328458088207359606443641382619768731703906014931970974093435848544479460331068464511309466464284436949217266942478231903656566849581627655210965348337806928024153360755659793099967793188528799460860749008705860026605087066448217539104762169948927204200081786359938504380590595732283079029022141823051803547274678911883894862100519636470072810933455808979622009435495452975299713513769341266543214899197306727211787560054667389990629473789685584542483203412540149796585549955331892096890516745192846875992174830124406437332087628397068928823562148906064402285917639223445833406935023178426505829250464533809331084694944694481774348043594049147609151801857380966127669637025684504473528764439975733415592375276818331658923347340970085572720932385595491940921763983047630211232946127321092036487406251617717631182245265844245007391021116258340558479372883339251319936560410954251047960804183987732693289263625598049744216369762341822586908262370466216399348473172184822327201646639880444156669643673815745859708781380212652897375377839296577179814130661038277435063799247791554186492979665388615847826742644725675070979002806120281519875257497959941838857907503903242946396995360484378382231410942741814584153306271493623675921095229121747699030298226862837650331502245388075009322094061789015412510895672861813558684327216067053796371043934360474613138517867732477642507807086704770231264971707151093657499217171101963863628722200833740887437917302591658471021121569873557215814025884507861484345677314535820501944688367367061218796678411808659225602498553542440005887104045165442929472219687223621422608389597078001531629240234864020218111134332310866516871492821913335997204776103510629186413143570577916574270134755965632905752740474337887221536601564221844944970007514073403406743870213565468166829827294005630352314363682098425997677630353269869937923828358965776849217423260031628911340475732211021061993653167007666183200329104456327083170630970297957944712881901438851012995211226141369905872501230277959603350526245468299801089310941354913232233059358866727935814913590651100822776811150875727071798876691539045661254278741518837356036296173736242808713719987789614156533027975515150327779519629860356193666931797155034756001454633763657135261802318585230671828288488046483065318894544430679831702351571162034435086108453698068172185072678528182488438084512203838142621268353684521686283651763877827359916841866276900392344958851754535539916831353141614848446284971596339794985778863617393309727695330446121994382168397805899740239605930014862541869675026582138435764982176878050475337672515937527912848385095697791065294834348163068344641617223254391197868595731957233447148661055913549782499498214504064588521299753499234913767358236806486119126363409336689483068592887851844987357892261219761891133886385057493157349466783359987318650349199087972669434340091878767651353778747585881343646304455469615083192763167721906835027500194965208087746368355528585560717073164596466261451266412085654210462412119900334485737700384376145007559674644181264790838459804513224517374159079007183283350947754436614453343560117209428848275453434270891439720579503200475850462220322122319662954670883374672004733943325557786367828192275925156771026344789225404045897501948321790918820019953761620210872860734713049891656799425560725362281062747846518075425363425195238435469917641080259054768469582746742998788673519543185869499341097006361915256508704603306829160603513400402376458512850571115668604091927960657707257077014193989714581953763330834645583159948512794963362601103272909044243719746087995738498612326587927439687531775172707456071404450916246431585030246872335576973104261346870861113645042535891837392564737916680544548303700841483215811678983257194996259808335040915511974515890955715303041176563853249240711222804250135777961390076704167865887402440582272812503848594669703214278097864869656048876305996532293532195864745370838635840516155838929310148771195085737465539381890263483610901781962567719697377946179797158105368188508858253170490384114546221432510038018249236038204035588781643528662018730732613841293044153536928583192269011760083991685173313316143193238776857836637625362301495451966794504775163737470342992671608283719597754463536246825443336247380600956601853333175800693604062212252452619992610969546920370949576502984148413849558284309547907385166332629058387865694464603853832555215347697652807889759592947504779423843723992464685409670027514793190316302736826001679585827701866692660676797902817953764491403148959002215501926479991249099607839830757404192801388629655529438043948430607026011605904869670183872618220958556663877423934643391322823923165099195618337389116106010052662707159113532496028115136605144538343786905762984443024752558606020623326494906571330931723582344632620288996969410448271607460984417339907355945425093998591684030588628119397596225800360689574921047448996818139446431496979953843520155189171729905334800087670597562003644876516110036108116398758835879196904165626947871990663120871004985288392261962775524851261041861059514435196523097186653374868137786677842313704908163055240208907247433727776310523516342885682675510911629476357373408334549007441551561484846080978048266566641979620967257567477889391130800360432224419502899936579639892131072912101209935328355000199278724991537524777691782772906686848025199651117328005531545234070304333274286676006424268383925293952633886710476379231255923123856222227277267136985478620664242071511652195756202632463843289473910847508193366806130064667774478069041882972686785634836178784635871923164813186954488796514962567798846661886548318289205314026501227442152985988529361638559461149089869240545324649248600789435565071913992370758800136406663790130659029180542265341651232793609934658835994909751792789732275052536006678958913189082102053440746994396707866275823204427378738065731658868580027004292606931492531533925165343520006390686280525808454775096756119681046414817570491173757961690908341681622872766257148681676059698582329869879618216980099908606382932304198427888827641992492039357003959686818783263413056323533939807554796713411679349346570279449939540931899852946953367167182340484315495901767945879069802604469796564987458110545168272297939986095311839405818919350425461256085481592654074223185059007943126815779454483049253767701798314731306243080199069052924300991059979548105155871494928551035973176493180590060143693303700980196345767324982183037109743843169671085435813009380321117046925180224997131062616319216379866409315460564264892224793965945142383045761487915439660387752320308559690563166179832914342672539259599481121000328762657848934919753311579809818929702349922475190290690567783635142747951839069143164817233286802837795059423281494633566879022006435321477252295915567793188161044729028126570982791535535946354118307372783405227192761213501820305951860877653212526560981186548393958500658706228102850517739915696637554407669644886379970273772854566451949520223022987881389457833543558624547603866873164792188951741858452463821673669661823954195123640088650333699915977405483325068839561318093300827569636153403869460581399170593252085485165445994601312540202872589858049281825929668446381879465697038955546654833622634328521883906946562476910132626283454778274943080349389657515366319280742448953402773443718064673962192514706006529719687121598245226670639535908921456394260152698765711289394138653284406733717151033094892865097100256893025058018709240440257872071274853707324262884529046478938175720971348558392864184749492236609678975133776172157013091156934899197726072453762248375114883550366786995562353701821980702278335862125913039585034765425590654352887429768359357237336535924631105139335695232140727360371406784630991801195588328464990944180369019524837837054039619167557564510126028819818238122874656457933177036800495313987291628145476053602399648043085862290691800133189189244622683213801392076435857968058294939992215422068652874684502407633361408386706686271471739279812640205651586823840231286107425137758594037678541289079684813542932822633683155944353364044833510967234366920569771545017417234978124019426368086469596083271598638444249283714673936965484988763969401339911759108959195079099838502675124795662811915444694771019818979277248277542698593025064966198308139389224687856403514095537109442019743219779931358260467872593543439607497799572072487242602715809754324699394983489216377975867244177545677414962351643189003274693174202749165692347245608928223863135038995884330896275758744349119587793906184169246364196441672976636346972730280597409253801748486950489456577162658721076286211705467650975337960021308606946549360873602239127876051284956308609635329814483759576087132798305299158663629634663820386753227723637719685657758042258029909041256844132388515702338755496384521816846216794560750720296306918436791230486095614556452888136826606524428561620732657906566757180301252912952556249113331310432207613735811970607802657672053712179562495521848321397626539028076436075782065133847601316626268096659582371934880851283136877870335374174238291526804033897043318366019621854617694360792126441086502121425974961126032770009732037966654292135610381906939643580363805358234636256768167304244059487617419942167224646269602289701133130362221351319435575667091305516914406143586745519914041773160462142438735828857420348310433589316961493351827035591741691157412267519732404093010261161976509757495170120208034715406541095557569568645327210681320521340979330400478477139717107629039006348188371228636008883406830357233581330253957827044129869009797849275246577229257640797676412760399229644900545648769864343483858814774561896166679311221779293703374373230433311638395488268776797802850464190837909611949890204516487671943822005419756065719436746776837022751415700883005675355415641980182008184960459080170029330468593568222273760134484067323411923253936225849580319783120723461540348388247325239110795032061870458585569937959177001498867312314743094899252364125322604495697375185557009079598158587508174063309214715220056113001283072910688361686748584902346901754597224598455528713216501391482394242489714441116415296914263625490290812673569222069933691741463543856746470150465145391078042029401956711210441169078141988027692278407104593565548897477681523463362384029839404433826812323128287731247776012060942318038721958875541683648568104973783698023983026237512634173159714441751845812138864498959205921971024502827436094744299561356267089387865959769484648923493231684071219073368367406025310251317756211513103996969344388583682894216935637232030900311205097572723451933875822252478870833742506863747509086249007449932168947820296709601566082363748639729114328646608122825483448628422510533063385321835189492335573156626493326385791768671332929976181854263387365070292743212843195220792998054912710077461249824424445037602284460391164940411770327076294823959240224603872161305768499043930417117954900987631815947388246323757980090887308783733652238910147687508714585889106421537082840307600796574851763267620729257578244475985252799965769117374380939751234039481353979780977748451432525688204830437543389574423285292401822569341312587395575067203629618523363616714564528577623656189527067150244005415719441167703321457728521398881539675632293878716611975404509782545272202010289720290247465023496562739483759476909602281104411182167712234888125385360064808734258643202899486388473011639199216165584333809813999503099236568171795301078006430475517693223648732160387252628609455989822586687833305151796596818702829498038186187369250945158384865232041178580923456065790373719547663994843904003913401579738881194951066673052492886220366078228111606505585028864357356519762400060990311817154708000844013543910231741502904746432593460418370757130187108699596425257217711240199234201529414519988319369800333503123792923055152883132246502246975753663188778609295727151878877116444681762975750972875690273521737933488294839907752683725176373496845121434212542295394512057667070870263618395975538554268420956240108499952607037235692999584689234466504950476882158588648942098309045972676909130415231903783999221502524299086410658141741580572513868449108542038628294787286255229037540447484751885838188216459562285849481692550260396616243226652434737907656990113585228860246483225327176210909891653692475521864349010421125374985767106079916868450659166867012262829513760823075946239312493533038780952997215886943446601251661691060444461044087031100435009248935093783071783343168398311491960287099082825362171300621487598247183942614863065844571986562930429439487207273918203508149019656433455802122415567071680455988915585493222425536736478448048615747672676810427041847476233522449286241733145815480349012722162506268843495622766312939529058921939607829337654672957167737230956845472914516481010350889187239035435829411968879363298589450433776572219206129302190154310327559916146228645995761426075320422777037325955919111650464244194280435957422871270984797792231590325422272126742740463604554049130544095560067328548165736253167406423387621753387690064851331813801064957434128167499451350797421993754977553298775265466940194260496991980459862107802644515761709981656066239392083838350084712258863127524606304279452833704498884433225802036028832855395387161740444653941935962892314871216307180209160161024717665187158275704550339556325796419433817930560224996066920437806493087770160277333344855764433043928934596990495502879990678208420103433849249582080420538554955992066626669535594987611004056943566285147746430955213586723144292565918130331106316006235028048037142190453243670981565041442191729650431606877782058418608061051581893504010652504700805012927904373048881398447334924054382334329168960386206779627932098363391721003908927887269346925773870942144191917467191216555317939133949506978830031624162436147780050040560502605847487599966289079490001492123224244507233423104297701801352799188031131411577857413978777050594039953081140466509572899554190755938448684514918387127119287272954640722551570023285529226977595825429347259690169200491862497997547369794523128649908489216807643199920763545868125020829333748054757367500550966641192536286313453215639476469855786136604169828324775398670234291881345073284151838687870960001312719002539299568241972585639858485125663349703792113720066722337027921486637371900144565308194380335177997131083655668328406091709792310954280898639536853455189281489871626222850351991208697262216619577331611934962656996199978555987182580332509067251454678529437131284274760968793162549620059236477264918051934689743553703263926044743559250757139767544140890876559802346339405267192242996665025707365120940520667040604482175207427577126374550037133300213401388052941628526994339547666607015803627766694905493641651686399244179206001146992259281237690404195123755560597098404491592045734104925685076181491432032342913027925010600275554610399842971578378122292373448322714095426775816344681726141733124570159414465244366686613279226788371672366108294745956911101975487859940285947513078308436981372528056824309882290758451938746919190071590196974065026280275025413518557705420886981143324034800137629595457273907655544716891439491662904257111966571711067303499596938997758281076447091711597920583145035553282831366629868371675930666252472677640293056281691589570475798733736949166743946696710982604758948427850273284324127536826254618881805123106308339838382466511647035984580829543546659247626989160521035351976153114754659348973707137812816649655357003033551527715760348295549253655487044343153397363331493905431017705677704282403231713042307378106568284494426245291598562526156995912045036358383581203212051678928010689489786899324795808439702617728914448842854826538948742999822132341711877049182159072619994894694149611741036706789629290679651869501105861455740197004777411696958124248497050077171084353839409429500856734251941877386489560770918083135910061796453128376751031931644735236949952674135595686441519113628726195156112860344483957434789689385870067117379560776075145892405565628245253278766412365032849755082821059151292475983443211441627552455969534920068547718216999380160540605578208178516146504064848500175990591628290826303155600870381085776264826459726299366773562600405813303831174617065723761484838560583413319588208428146381560209247913923507251907165813057861054979910252620385030832859929282446355118767074361165696863864503995651849510122263868843944156939284536952217017629924880190916821984259267057059585508017520954254472226344104066500483866076423816276945362959407675299811726151094443334252435760503148320992862172930994185590206751372596478684412143029091169389658056074068931929526178380763702122943920006150586791900000938689470621976114297748312553328624413579613985502456135294432575175911634670064715065478587234230380636648847702286778686828989643798248641208495699408085095428184912170682267591793938579519756839457456814063398481178441154322321326434324424521392670347340665518063719519144377477400639246238170373616729349008880279321265944359261718683956732647221604874797630055048944232170827540384187422148570416962452971428704092055539010164133511088809837672939582549621365023203819670658782911016494646018291892434425954447635814593409282224444845258427036278379371833131944166508500200294878756271170031166517349513265166315494909632592198170781291723746495798804651077136435107190074422688597729629183790468264582459866738039197055403326612849093728418905479225120070280143814224760172381962560518476053236650893805657399649789972824463116024199110416359525759657956882671687322934360157587988323283887715859939742896807273546586486703285890689699052305001904769352047347934211520118670760368551837044171910039065259561611412886116073494999616763654181416126788345349823731412056227030187439618518365465697562933020276720144964644708918117110896187430528875530276684638720792015793037427206336694747163387083575433299984600934522394195743037730012425601710395731993429550132485725430497511967535269020315175888493711717978218930994035109903191919015289324266019414187819215002178023674597542857308693446805289565602664334802234718762909553257869081917954223289675538662107456284384181473650097964140411561442877744348735200363406224177848572475364741975298873249760665241980934915777178383084733134968630190329675453076772733575765771621383317650560768101987477757376729250146962851908191935643320429103219978081590297885792042929652409408049389399886269746348815004393755646210153381511972499907297973821448412364607523994537984314723457651593313620277206928430522334394413935889723738201698474507337060791050400224228964609841842331628313259465122390551855867185845648746281117527109843898843890792401161596001039372992496585427627211139384764565625942169527317733475911799518065946987274651634796508115947862720044560195772995330130612179373454392143875130606971000580957117725754650412104792388691691641521889139435364442739256927039562836649377227619754384479594159833575384626405502225537464304475892469222897204116310878790422470286426808758161086470981974412381648312149083566872422678553644706740202396423533394110612585303770407857398079762763658137803227045009474246063544375107769908457257162723283942023874078378991165690681194206771165933582389994469597947689284411685388908455722807855458695165565426056663774445426086538895954181478057216460723930991849469872042562051339311873961332958761491748911114665282833538897511147089013571223375120038763164286593381692313149752852254379716670557304821456106377414282981861877400973306602612682929147409008605373328260387373429583986552902973987465284241701281239713906885551517409571847376806264350815189453820642259127399419574657657867468828520739768379190650117743779344166312491202877900905191149797099754480932989977931014713327054852183643096562013168317301797741374756529673402137754963225912231134479316982885733127194848765771948759171576974260260125387493768921667581749041631789385295065092050248601136475959501998068138770972517507923832491454720328239640396629603474131216193018336735025475576770269734740803317541673157964088093763116051541038864054462890669693976631958175383933295988187264483751914152354249312701887432306194077577294180523565905757390875987202303407932209164530214161481260550209113199113500415861276628961330636429228493858643612508738881683012120310548227097004940441845754865977302863126844015642591691239834519787671773339587515270525560239786829636511798760081316514648881668425493144733771699180736692375295305782327144255898657003760206024915424654195515213717426130969117761627803004403833498354665985280333358783616888692808807296701266625647116255050684297089640117520465348455857195833486620641138621715176226158089933645782831757367820737415047719701544908177769827807912298245994840602127943103726725351699287152367800383994487651538954531773600064733218007643701806122452939291639547530728115819380522576188750892225701951821652056706258055728781032381221817161105960749380622591861655231696212743885975408333397246813111409853280206815760343824066087147050601364510650441529674298190613047863101097220250626246494414967810441036004809388957400391237245272725602237325963064318108605549272648605698498382703514677745062061225908478163743951040273182645310433475044744882802473540364203524454752759460455818057453216466245622366213404385552065042023750424774460892414066910628857178689503129564079812486984784691812603485970435587927001323965081755615081203185402073720173720854306117358734932853636082625379792605836362587238873428771859574643212685605792339047912802737360183861500420458237871504866427832294871264622783989230197109236449868826016659911499695293177377190064278645385598422505702968353592273384904308869933793634970105567239641302779004562611918623272451382925163396594190925115414420610475911382483288529252607908400702735662683796964398751816476282153142660335378862707912815400297158806020767018472074708851632589670591507438645385405240443041710931631398441222006748924611892669040877466259101267164275666011279420828104906573604471487360546509512721758767392874366244780361676234150226742288090272403357369188698199262296188397414167911281227707752319885548053018926050638624209658519441391202022403948677407851448121223002488994589516996783424292860729726507953640183567896811962923960048325099606677562206733944634004278122657307600017791033142551647592551621740207278811171083450815699672253899675979523898763755077546468281240141956131889593438597738104664230406126793321894400590450789337055285158244074720197744024006209448115844555654852377000278679851795306248915411540478443267192372002731439680121158177270423093201799087558864636944235451322951268939155537091904929713943725046106705892786887554208548974192891504021805756055173998075529522057192325477046249108101374156050237699055201408435338352577405276869835041428735993537282826003506902460716987336192347907361299671869360384623813526752314414312190065907777744562901391230445943628680519771283685198935761950770453832425674914732982742516419740552391609973372166788087918748989968601044447471138405298070439308372177708344295463487556431002995217245879281566092477993906508466019945710469498674361659034959176773079926158574581137096733949875290857114248277544875606087238324744461982236310281084540642516032702348098684138825547987474334745990354682366243000951120643325331529553664012755920724840684172766912773357900564858180310943545528895183023493696201532210790234509538376595161473115478175995104878495708006913873955621392070125273589885719452934934560700041664742683305065074042122391135389581333384798992400434427320501111378732886442386658281631888624736124063761541042641235403771606217909340658197325653011538763754282627083568469390992787996908070946456352776088398247582322323096058100695415220006846845878961482378254490588694201200360431425747706440950011627591137052052763942698983707030412745892684533671117403383635317847005984596060980976168427020828830320779365029526307236707392590438074149425465263788705995665868207455860504316138054170672940228307895394510969476474159360861544534184149081063380353070466439937885474271505028143239595651042091526151508379019510107121156056716367705272469614636138243623777158713371090815035776277461471909377747067261122872916930051155507690800535945501795892861996294280415665076776225795732620346820469605906071360326144676549929904990177871823072142296402759989605466161924526203501776763614067840877599291586228583187887232099153484958153508266363679754242861166028852595637242938370645641922180202313406189437832390745694807758747223964315629637510059015165031591258655716006009750600370877110624697914230153373962293022952210062167336328472377707725337897800597861792469932716786706792181970875703228825794870338653498344670416243257712667187086602690981788708965002974510270601845919725605522572329943430916923322249983043172633974672339701442582644708457703003684102546433012092905915745328708037828036196344426815599266694874924372172330659606720006238650559238558380226697198256776996708337458389382919761576201514607764645947474617584227754643622535066827592378562049482447409786023753769318451544728615984629378904121358922378361982856098334315180441618494402613678739080587828450403678389644983602798730246499191883188684408805335408621068959435328763310816651751672963758764951597016474998926040125328696619470513492457488468872894020374485737228245863034152413849459560529764382396491321675238315154119272548108659472931423247032867417317483160836763383118314757805514063302586121212527803733900208430529953765752162258808802294027706669052812488094165715673984780996751303209951437700490616036511627056540905399002207080003239396333663468196395126245806658416330982930401816185862534388041566119945709957117493167774142012537458343457410376046258404862228080682319701401474330278682331266383144087635188057114101266412534264228997121859172853350766620007041366742953914881768327476728422615581827212498573977327474000589492897031118671862742641107107114565235979541973680230445479066847844587631636842910710416016007406913802048106101606024894895454849267693470859518842919467658141961919151875916783294289146547275120772513880033552579977295694650664181710411941812480427801804617082764087476663031295980892092491048648029847723988228152966554067683166626303320446703208115981600103286706287237340686496449198363404869767635419515932435111007824453391077791124616866221128665357918953081164469342758472460728015674771088984938311892730265050165813269790187258407604751236324434747580424933822621073030829703847569412700094975724518021479402182700215081736275195926280708104668810864228621803193702871435804544278071250325856078535218400990321185897878256041578632611001064771158370359710049590590838005702459058421720219799432587200029422347947499500208585264021353774285588990101238458641039655891230431336008526692537555268620180621383703250023658507112673764013909378745908902286742617523891719431324613694151943039439805793421765579303584213155370232800468783115015253601826345457620102724290382185076739993119905784582460295188516140455187244990222052558067034693161517713399683497932456594178792877937662058363494478104985098229166708594496757751440029769110351204160368481243874125765794062790767429327665217659275688045405577168594862999621978072321937229760937908891975534244044962878445241811693030659082737450886178451862534507333087889540629484631074616667518339467276934303271234166989939675953894457243294344845379858935336274819187601950350818187285641016316420955839270526661081836632278448739272498244538395423173970426775429625006618630259953353655419263248600786117805401569101594531671809109843535323471572500627694036756542040301211949065260839615065483446886414006393350498465180888807652288814822285601996976538135790132163278880052529021801207778827872549916514433464256411925543638257865432349171492156320849796642807983364774471640973331121457547371184714974029496209823366303480601788186174432630881197841872186530462426622796294364684192503993936768678865180688383124852459309776976648602059279374259614510881820226535410786833292435402812404067102519470489600209985135853014610050223912539214772824638712190148687269994867866956260191261246281119949945433813794610309301228568723248020536408936923775933153740953537125997999217454396014429602391024185499086999377170724254607301247715590350304286323418501500560234779669147807428014455879457664431446121605839764399269772947700107560680450985841283533174981229612353409068052514981451958495230590387656588962929224912478734266861417969939368687072550786455434984861881195402936540785169624925657357463293192430722360790629287643919200718660371122032185955542883068933082726136440869569228371482573135599126401680857192935013655042370929957429501694790716679900304203579630575768987425656720055842791622459330643319098495609647830515044511214367808796882613389488998992925963875635040515698065402227370954951495250610180688152527853268703363817106445710980937009249106623669875844694234026813688077683949441767939134333146930932269731159036086685955513173568761262703559001931984088115755832414264416206418928765732979497429655802194978368800810973705364628574014153461716923213324643431385886298224463542661841583537618021772308056033306249780162370798897929031693594145171012815281891867531200457988513661692948014918373232407511486831288357129391951202036291432297520303395873278605526973122643717753750677091674453646641329393709411847953663509423066462333818812523740245224191889261511050638197191807622242981594052636641976004653396085532024490982153847675697523730953274071445780491524087138507640277079391650592648625164345232610413037331096277612497665775875662190626221573367739020663685607192150024966319671247395774964578209332080468964169270392158754888177921123953465848088867105561409515432669604501422815080942644017503014397581130011360721460906433057376557494769909962564535085008135131001652856669360917398686517005648394333732994695400894347554335428826272822968500917272194942924782639281860233454163644276919729937083925469400634708210059730585950603001098548779298661047901575784821828980366405505070702641971887378783436226494556883184796487262509914973486100310232591030523561314223616561352160437147033179426067811392479740994684846718144582541302644981405627864514279245434440748344467783262025531347413204915766179376827651081148853304440163606234130558839401732235316668545672957018218120953084784206706287296757750000741958443578569695770208196064213480767470869272489380287033137587930170222996688630990208568445388721324948421489660374218700257335849717957081718260985395402996643094509811075480456394050111397964133882504197715281678862780333577919850898298626607103894523218767775688968200772492293776277941982771867882181006281047115869749343454022010694429731348740365221688708508223364132963751732523707474045684754723142727311093037599988723771544410354335878042945961321288386125560464823889439034509981179947108030976866565745906633433932188504283872411608620747010824745177869175254252411728775213923682630913053623704017010806997460448049346420974642522616991024916320734049235808993637926841955983904559317772134453133058480763660441138012192026457867485595608743888204349161712097358449914260287947560515374038871869628840864905501387682157098034464252192524856263644320552536028190949465263821923790910000779336793210277543197362558952807467724736576319079450446127519335011380795898337739212922046808005774763147276631271699630613831102914538020538563266654123398501722193975129095573135581886481817446493994506481033023958266434520036828293559565352129854314860237017343464874363995538670260247972664801636290957465543429415558569022449629081080489101158275884212849283053513296731469405315936105659434428797929379319845517530390388018783474442463120695991512618148175755779225489094241871309439975592713324797626148734031132857094730826732130782862611067411434829287566312567838921380860550161750393367555704780638802398511048755613894828496446882053839809700476994103357985990222279879325486557793914431427462198600132819532749878827964140816104306994823967209450389079555865414418090166465764398437128998973401785146857143173098234560555859225098262325876743851316483130474028082540338745841112018864731157681650763017303914036136224803087558721935579240887226575595123146724425056172336063875646716597280111211196604565690035164175122876346518693525049866447082033855115881216164069127295937144601708241510979129442933477399935434701912408003684843677912766642809101367792870364918304816961625830638048213337851037583639328005725393455492133541638166244275046749024134059762120779893564786199795467269227463745680240631482710981918375547493238617700891617537268528738101992618584542131773484494596266803271225289806635845026876469120090199330168276990061945093167363606720189981179566241670566712693976501386711174310094362056606783560928434530722094109385223492439881108303723318090000024995870183221819534289700339004674217416730569680043092845666139840957839886799696301367395378861432346401492255264775325014059816834634482078190707332928570354713783255652675846570700206200399878644792226765700284262644875494644143548735627644623491444506509886274130160323476935954510008076519318481098697995067803132447284001703300735390945533012179040624342144904897897946921190553123467284226916736874478763881839517194061675354529982195088772111141817582046849596735003109041247939521425636397666348024334623024271529826609015071807380684711771996287729842727265019803953362970393180999681462446047351203321242567695431200051587447854405870298943125787722678900321806287298649342420676115349935810076227833473178977015573892178099641962565040291567275445297029862738929713454633581765022403839850599092647908344107986969014892446985349054972664254630577731682122765813879095937900933593664030868868817987674478850391217782147777692982668039330966116695691306429076978360177112592320005114573929564243273724935730172612794542275222123781507273699061858648382568621781255959976701979448733273616568145175474724774745525540024156318522572863430355568747051506443208633828867851998899803924716845610637639558828896523450748748034046685426190745176880288423678487621860929392577970751717875058188972969296606412462343941615292333337163795006228337616392923374012206175342502122030219654738744583485692040400786938345245932839416657888603991393839370705573942885679688017785794669971368450773423881145660260198745943404560265762516118908381854867312268768480591422832559623734906089537763107550879944779087490952227141266719297659039663556703053323310903499610839319344762724246597254966863641776077767162546004805624830960136842414556574220680319704341510453836082200847839489988759057257938686925040572060466245592373573702704131725032205636713567806899058868269127197559338474843169141511738939649484803753499877294677289660730522597856975826563284324073173331854751598868692473600812351723324488765475068065432790255959309679582991373925363413331698926736616011135360070587078055036197010230889014008665667855897155205901377861465913375836345776216086457580200244098163899959117280044258636353329635702714427291001537699837352369672334049284345224712515186916371422680886848406361055752507705166178391353874052004583235629423982142825193774121920572014423989925679311535694233574997924045296750708774300644059868258907752716706838795725494282792373441092326981373331209259785592903400952064945650875925389824049185070723715396549259841817173287249720088942508069350395352939968508968993744409376957842196119921121842368320153888315497532175293719675589841151380847896673033037506565671695817817244008845940398582493535032317867232015366007918804328060878816413068145668363672834953646829842949312317706564392115686565968049029086792644679684358625379334618337560064965985893225901102585411692921819409501990343986757923261390815003529848902313595764533271784716753393031238750112183521237293288877917275143629328561271024517886218043261057366735713227866980689536049158979250658110574508779156089300561300718806385012249599797086106259296878763567159389389185627678707771510170418771765604092006517764211378249006589915052242633005071246810100771657144457464344816666978028337263975014298829689754835014662063932051497916465770814476068666744104746051995737156732771571645452155081718387819353321532599275669831573283635045450973897619515789809429776378573314435668147800191846352404359004936345009323828247283663309731993946813052375316736453646651296297479090315557907868923514353085772920235955544870319470526437398060754839009057604574872550816504773915419704182106057230640359143920245921304423208283102051847748812073830944245889867673269646643704447250062335899190939041930258399854273117286771093538859998317170540696643502096613937723408725647670516364763003296653713911847025116543779577437084423479548790080646508484719879556613788859250939868656010349477741858565932191609178472384356990527604380365924685784024706010129509703563520446618681889448188171810748294174930808084880740662553823648106973689268562826595673388124454616897015317915798870594819516295657682608723515663511400884533555410390591114865776655673047696817021793389507485250849937799310710986882852607857354985063590628489902576660820803972362684832548661800726262161910826207687197111636894024072719555242119226769562871875950563612395426304655843602704748792733966008035583091475082007883307228447002148018520870924938100709004670584123851575540502666651996913073906406945644872537659034339365695100487075995997909294198028400663196118163119265368623728140578769864190415275457134977395021893627502076201987963433364304464213306842967769554442471168638282788768912369081935743007632604907921112384841846372220331386993417340541587262775002475941577362017843879430910849423902885656220423017861315086349642462325370753525075038642339950799941536395966945971315713396239857139813626734986721893114901901103080720143493801211118281839210797811656520802367359722110767448370952127993679889156561750792203370158702858088700636672941974673266552642782454479813132748597357198309292552826932708135629893796727674640630096904626251144907718463776930878274587861080941584003392130767720184435133786681413407602584425136585562761454559669853969485594097172296449571395526800126782656924484214226104454444700259019179547104543094894267588304402634669186897557726125328403842307210651105945746054511898454879650755807135743894437232995666483625027349867860585660176190590438230154495284570474907595079874218627123483385485162272281502164014535287998371919865249710608325004566783230347736650259875368412481612994731869211612327035643822027713594175693273461714635270426746160481370545557981629639142232557883945454364476189416473707154750346313038944053251737553906069292883053556547701534524063385894977245137435382329337469284558603968290717654589995314450225084976204723459986479989149217682262291441276296538768381990212772058256485312094894487961978082902437600212157168215399578899796862645060154307573113924659820525596224785134624769034239904018288532771624093040726707434222791772399887827144908823720420936080834614893396917443568792790064806240365823792186461225351732940579248117406794720835619473953571984733913581991317476419672234565790431475275186114715131967413909153104135937696124574140057923625682893033476735235125041243107645480408437201958498060124058439772136043834492075882633284353833673083299295980148677250603529746640937798240390405865627703523906991935057541744254646682440155622780307091064459296277496219209188643002442983998282818681120909032004949428623431563132291404391931765380441221642538268456767752638288410067073658774465043193314797092933584344236785332794952042007278513243163305833425565001160739144006875784369810633513963263747641375960706561912447985315816594248716938980951475169352677595617689363129623883316057280527175381949908769116330272789660917188996713610509316086326317373599976715713780506291445857424582898061320367166489105322212270142044823889480020285162063401362487230469697460859610708687403907063259136571478719848197275743402964416901104883673918413457640977295487112025520415263188404763898234370676135703666438088819433653069395627369743837271166946939826100274444895891486406825678353195093565998692713596334392608350332705457591737921317749905773586749642133856270216422434413647908281675229641346059063798107661646357711185070935302324264394823049870892763714845288678731917150403758098875330310200658461247889726860752212686436220252808006685747649205382997698826728897672130426990154405665064588830924423040882155288688990172657519781849977034409741682897941180071610237556631341901912960693345137197428648838184095776814208947522350182377866181497627932242812831397972821673930130511065093497064737630579747599730593150302613229618828481915410558364278756605181745359714718451801308877625917678252545305535094684166386874951219525790431241711797886632262262644995626882685117307622928066533388198311556173182610078473319557568557632394839877141902914664100727953324048168363485269635531496039082717587376811560414828536907218873142431501366200285643276889392146819701219270183618107127905364176088249940892464745372132539315731322853419755615581056029887156124445443529597493466678238344042877432266491169116853639546656240628449182035257513268553134366213664185382975224426810571777498447945588044256147004208313912251050377204342209952926444653278217597751740517060547405075208404240588920289425795012717425646827331937033623646740518364597629669567016984640056966949484030609907003724257024457024813580209509069903915065158087722959433109334469064356201706459100477420478002715282380523648981661259765295344371374941877356976060121374567992697511251846367506049464829593419218646801676220700304025774151739476819527079502674111417705643101925098321729380281128543034014079159837034504926330531260205691450251683439894379011723113515272196147645093461018211936355798447334062871892778192704848624369862106206720522773748856291972443479326554401862292688455157279991246865735380137021546944505672825177828522171112985642208251379093247183995819543654341735886444867991392605825221837914202126448907411858751712595767622550158315466389108080765219198437805154493893476391020641824853037717599170658481302349856275751586187183595054406522611730722923139027056296223127892318823257549816229832307011311311199070292602354260419880148630200986741135628386793214339488227159289264786562521810784550190804705170392651070913924500499231796970043507960849887569447377670448167298869411611211955143328936165158841625505265285069601198396470274928550861149178553103673541679995075145084904237737398224053350661647462802239582680527093794625126438155610048217482989566386988847614908831966713936008715810452554601902014549674546764018079688373443556978897028576957057788164812152422007857000277499378737393843185349806086404468949381775434583038648295462812064690197444832782173350413647726420682594238148384716768301604596194831818997614658702719645519542520779953510695209432705968537692755459495702723335846102896082693482323537202527977324636481933930709020885562759233363109689283621641989433117343819954104663836619045349775275765025072951845256805084571136533041142321434779730402506695089139613233897245846828648356153105989427823242888823350703680095356179559934561702180663152602360262846334897215414604232393496413015035321762889287415913494543832244772140554884822804038392738292729829023434138256872162985797808290193932583524984987283258847956176015895834531812492580645206259099161277946477910568328094694062293659017549668995849464979408941550034685817085280196464983220868566262567886371603892288784124587714407080484681304651398726416036395522245350912830743794362303728007175978015620165464809957608937086247571804775352292360055067716974765501395628598437401196629106957748548354724719372757468657513174074781970600047961754669880694260409100611763225392156093302585386490871078871439823349632004707995484424999039989377501664558288511213822048073788030257329465907374120000756770628140199911439829922012313243596447125060012034254338966871495195583146189874456422892299570157917858902063732282336596898314216686094063153480245047079349441830485203330643070174416466236687223371126453255447084904967658465200879773019906748041305479952830672418836693941108460416388492399264614902957730953305374196335053062744161880735063416069927732976427086207128619419349453475734768138225734729305702733012727998020422016252114784405501126872272806594082645220526046943676644832167778754383856693642458751902235156327417984751660731805375462358703466048035055985491239843645923791571907706683045626983846259742252369993431944460909790073112570216958293717218938201087915704417276533741700805240742943087701658709294280740893845528081563346210979167668998520054076397014751620185849407851812174925542364320525209719393898641010901261198627425355593970558816144417360787309568674347688950286829521390353188241930319089944155792219468502625303699611296646506615034567855283690327681779873254011710232974444291516915287540290628879784522735794961469118596198558241634341375092714331737984875796555636228944311947513777640303601370502083261963109091754473801421380767092014941236567040078581324255286755368721651348611674396419465878529725562009832348837984084836865204284224590672087285626144922502425546564577622685327665047217912857129771924045975407149307055324346465236101024444428198047569154661332579968240947408880825376813684635608418070628890076694259610195797899552198885966888018890717383570419941562781506193939798869720566052779326878200893239532215119183721971947339606487614355518722698813064892608747250820974685434765488030680739375424567763467359090392369096972074401126015035820271695138173271404851731388085371639377849020682748802313083244538300904077407189133837913674627047375892421181765854992040854470153673417816594652168639739789805979567640876166307177677257421874416334963382203694635038899423229118641536683248805006532737559541904902838354364485710401962659473553909541643987904688326239487115169802321331652837747116359519381534525131682250006049718385565655090517009257274617887195210356678300957947049231695097206079796396739420211050908824188634128426989971711262766657073106086466071187322712600323995333723270171056116693248955456525125690058492436696974754064479044418129497523556571980275455635358420686441473777436259995119594481248867373506766271129371960526575566544562896962477557092352866239592556956346937481841172563548767928870380756007512894240311907686680569118915112070115256184464700162626033956189466137450034810604182776201753585653223645088421272795750816143464578001312026979334746361945827860362401690792934410788321070061220366344543767632433883894662688880595223815465979312424653048783060727659498784952963023803579277273371972603704374026347653196248456911736572501309481030185930464532807829912778268868081887286424327600385265579290613092064297130081750290273054939139149271724439182325411035712803868662173481775227899559902023628786340536828506186099625419624940941179555738933835147633568178935551463535104382877636739028084543913523663113690241732552397347290385353969942806662166310470909923887705904556315383156841469963768931704866261505826505863031828184482024771753268922595468228311903137368422519865990291779993171200154230618158746682690156036148859394474373677516328276311355832226409023388555702677480993456125005621313929334466622732131546484224150632029792247425758414938978101122690831024757606568668492238919207362950554887310458518723624439923589762188762227946058014551141136547183817367803124238538313250874510920227232190918163877309703732055360766279406828773814365452772494056026979507325397075484833987434502342353971353319825989366281972640358617585109430182444175110774419970018391821853220157845433387204242127862380429775943541584593446776653153605190304443658928043798283616387446584524244339660268227063874082639668129861487065571567328561985296707611147186864186454140024083410589226243707266824669276682485743930843073530395974538849294342141104454718462034998611298200312507092418735666769024909759327755665078591884913898129507321620632093870164259241490081037874193170611466006309940614561397538788930725680498254359913887274613045067415632404333713389787214133776870711043795734186283836486086334480497979660563661907181295117149777317766212794160326955525406372897954728256868369629530927900600097850050168683594001242065731368654757182942584576335254965126909312448142564544694258682905846529504334198382536923615427949590662240718854710821645688447879669419691719138953519962319017034952803993516016817063217130564512453610083405708798489509066649964789132484145662287453212261936911429772926961544530804757529860195445667331649370362728365547084729452079742972149950479574930555878927261147450437577085002923160703815178504176180972907685586936663150400111955579517896798245694815119306523612228401789207358866070570179304553054834489242782852397871430047660234833076068831963678056628131825367842442913227216887778544697751340891382014285061442082126065115671225921057843298911075329719622801920823393055029508861764179222096645975134469061951211067550800574682630577567446997679181972996175095372859228657854771038282100399955992985963193456301679099655625463692248875786139609226120296175455536057880966051208182131254563076195480504114708070173681905562590134984217983493783543267328096490189941677701577111401340668081023037827238752769286051017561635384097737635312974206538783330378652711855214151950632501893566120848960029768327804999401952141457502225481769351048292837761203986866987396419687961857813438319508314332349406998806591675324872478320098076334365518655885499087996377134907662520845493833963558030005165222857752775692834079981555106643656793126934449561973705177269314523057592595311554983377560077110834758829639476652533409015395095575602024650068535514629722743754288207239785173000900521856762615669018715156125815357364429508978158365951651171071856171725639933322753006835029772572299705705835276919276294968882442982591123755713892874704464916366508530440851356112221335897648457289577680575845975101214054350006379427488295283316781901946520007899090889053335436061469540425060229615264566452633555056880128269184921080579223149764919066878462445603135409372478675825683408334111791267166103709721667519688571994356714041667185537404864382114355834151681943861781430318523151257871796160770752500370942538880717752473169846685986655373077707588500726878389063838109262100269977203950525894301101867298526436785428571581384798147267229261166298275667607953773517538498852147626736835485770307599429030370794740672930902317190548546499781491399790466896381254584441056497969182512916300468317915742608793096307130091772150841223935377488601013742247888503711247544665319296198922814741151254821561526543411167622019584718682852537828457806959648475101089009244875593012419777930765678116947037071265874502271524731615825131793964936472537555690636317989899063876957148167483968963362240111017699683355764438508091045829232420750365491093301573654055879501214500483669193717255100260490281201783247927697568425016623689459577158273234667896614332172556045369530813158284004159341233841913304534888352911755942239024337221812560471581951570761988197491202839484666769636346164373284524344828141868249135827082153486749062255593712661902945688577941341242750861543214006501314962477866110408334617930674077658738776344943604836265737450888110335871665266291565819539745876752449178035099273519783210726630346728797796732801172059758667551021693495670192215119327162689725008500892562302425187637526190221467372171909509347511936644019971004545093113153969080834150758257523211137126423339613820322262196037116549745267874829835707099382391690090982292847744979321725293568915291151131231651033204069886770483145312237694074234887540427058272546057572314915697161040628170092427369044618126831692611788184430819399234020403572430872755620587659236993761628739961923847708719994362973297335238178043441389056901892565955651640910329678782230606456985914913353585045354741843603721556778003126918873528281178733007221625752561436848724081013207128898355331073226610286577699493647766226267640909159933686863907991106183917181310691805089714454807742460407264693399580873620265387995144055220654910196885961021770434444844450963664453425560003583319791214636921147566654786683721009617838240202028587606662198756491483607915869654616386785768024827485568497243560753750229402483869152259267352153182829496364968208738916172791986137402485654352005123507631824203107071774999663235776743501225699063474459289067039456893831138314484068704668160536531270860136658939941621069186568124804493470951360992792272620745500271821968103290879241186839882208690646696130658538085293837309910014917775672652268861396404350638676856057917756531364676977478654983391642013707650393502428670710782023703306307764270456408600268443237705454653351136512421202499048492066240924880385048173813229475698391727106810440255794136444703363208538968280866642116955420470711715159452631757500267545604299765938883943227649711363084726312726819486125694028142516794146982704235819875853436577548260731055873638309310446937048845556777875047238657816378506416177146208109985682542642912664855407281223138875696493727188177423426245144835133620136669919491255454206423984069857403376892921033454311913746323446185096287879793733882688347669831373201295474169443059855955649497726647302497395134068102213963178322339327491214502272202648093037417546721541629149704271306597503315197476839499816584079790656338506308915004136652070862513948023423545868497029335119865815808469061153083589489697084323791297675887572492906116976051162501111137673548446034588950312376905430294649616410745540404799650844391530562119563156695153996257570203165001040470907359652257659659549087518727192841253892105535280010561388208489485862693119541018272568391246772054560582492692905439650808305160441020657741100929925039767334592148963906591405120262186769917552817685786011883104565830224271422141444592498163480622299239475956313364365328040925247901124327347273431683944254505990517565908289334734651707025598063760107475770110810320512791960895554651803208589081480973058494539934285311099186726813460220520403840002728396043742063281450162068567098525413591549842760811643884159524439881056777820915661137674450059708250673281199272548233251938702276009654480065732866101172409782784875462015456659301893274538367451247287943148631674965250247817312073597358497070151915198560323468063020836598756579760678338719465236134971156125485661815905572134070556495482882833801556445582813492287459088808678066765834671952984877324642732814805077787081466590491664209011213672116794264129533542908640386553759153863801962267459947493297153960340747975894688394729726229927950175841434778269050593966505710600628099333543495368298737359033366291501347907502944009368715010759417406890368193959243041882594584477754304519894486912947782518415652116965060637969412053421505465685769505470062295350230639782992700083261937590156409945927095458350759207654694251474188772983452395846399704971427284836290580464816033738890983990140155197463029675113695238166545197720018636634454654071015191438505894851141762028481513924934908610517674935057255533273023495780439681460810950687302927788399384037852129817454421214455071142700140979548953383381067146571352872587935456943332908950741364532652517907454207060399683022156375008209139824666979860017630760338019721191007969338065596900515224605740864226810811420452468478404838988642018013799335470439207629639808894619492830174653377881663653897260554293939455339474870847297118331834645583357180821834494317794760262818336071950847393624304641612958916067056797579279326349421464431049311164262882521389430146698794076609697531811397296662667057087836374838118911584022700808891664058375258298795802968247034818016187019444729800971713345071462909562275959036675499370188503461221513133917194760247373180710896484996858908922657332841732027845240183986977768819852165515282631265306149943953122985449288452099583736076288017526731263161003077621105175936328930306538656381656151180525492958114512241668875510595167183355361662363455013547990580476305635751789366336863164404432648912612825922774690059920268945992705887192469374594611973078964104843757842458917201066488609998509494111590110840953433117106905659703564851934633863336770519859588871617972241604583319007421136853302189868133313278362733745917053094341782077288751482106277819750916104357057153553409822234168071459535029359543367390890477838126616330563312428326932790476372841582374074765975869565724354381199068057985675024913476055424646422378188800540688869651069224341964336220248373564169616004810284024424473679208447075629037008931453402158219351299025647906289359080551541175579484856646295323880146292558450218596658251787506883420663655283827084044991517921627177915690100711135912198504605908282855530758586495992266211031761039278983372925330764653783424886077640062697627155809691529427319265514092070365467265567872970157629974558777025893424141822169688844909127820497858420512605543822273344132466607938567413840180328405499359328986627156132469545697216677732509384702006568576442457794844100462998898422366772342661771766191516654879265347113084036767975645491010639266875763753570241453904800810902684464971111280934978685535730347842406643056646530899015704644449068874352258798753373766877289127985763123329854856970420997810885709116167904139077702720643542335213998818230443551284614962972444832825016433459303891717404872406144823754704061428073540615949470761657846974945245536740759330238615345947798612473911603293704623505505424879363536768348876825925889362380725329298117982103714113956842490823201906721237019040836381993941343408420194423473922946792317504818213090345896058894795251653321935964044246193388148523244379497148368261744900460037315373397543335117631937243429058731944112723248485177837710622149900091986978972910056394609923995654295081623798173341977683464760595607000071808560080995106157908870791543011841228719668320084252981051597668126597054565284027977305515654476761947166206108071773995576687301109701346837690020397649969926234473975303323221471607268786962881296321339901988140761406386795979606102288074026063342127871358812579344316335198403665052154255500276320232933485145074192394869659463600784665647500530204601434229751531481729245113195681766589954481248253199199518550167362402288990535680917345713705563340814256607225165394683987899522643341245745944023499012227171576463718445777479859010145175343944432421340420598935291848096684672145844392670173472182948432349023958307929132591595584674330833600990899376467248873597361636824294452993368414225808241857021385717329203791747010248228841936396576315953915129881850443951820885363206091676607317383030192458599530622340576478027498567583760934587450591056192547039154830607929496002823517511476205625150302937874864639172086207526244021896595615567064368612519432998955705983851808928346651229252329313043880799106155797432172576017582925537847342713019087969985995571087225902071065140140270707732541895627848700475737625555886313144720733820519416033467049140337296929735418975705416067144979737893321759480646408716002528335663970719119495026854351194445579409217275166395371393583830814661082700772886658925491347940716273527754171682928151961450401553884616110667349584267981886103753134676101974871550687352548823989062721410736166680637660688958978340967663570031484712095516888089429977261497997715360073190817603986510944578263102853526867579692387604095925053232518736827011315724129458723102569897412669512754688761311452982363668309400639849371683895701517065352304686523224578966911351903145075879293249380930462738378222138426162912778697964641944122692791737236324204563032464884324610999979446220327551753388314238691465141429898601922046148300204681562629579770301311303115439743502671642091409699659889217742558999120886415977302469365829409005797080415306958481120395992488234076128947133885718186479984716175870963783918430992773287501705495130579159686828975008497585239398381532839683114932196864030262796838538447637357577062540855411908966307077891411822974242719690803473421864392126295200960814428784365053020462617223602661131841635634048527791346025611243043395572185946804963764654256116130842284125316784104973724333893741045986401826369177152066174086004995800476172579105611262761502082184284865574825080139707098804718196723776326877220011984580944009900036994731900183970721021088060554845000313974040312325494897937484583414417796706854026560508078136883016900336271985714461334873703786378278632045247236569441463630532522692782019245838705309415208898474463136184429155060178146708603446566004503437442272271207779747590119026086940934153765072156927860427540843347595329866494932126443352123821016275113812962129592234787499997370679459497587691087948314807386860242009483929835835916635934744465877993800265606144457358620486605795502329664126110769587450273783798407595805453159861519037129484038038785949759787203508218187121953886696560000762275932637534364952850636123247867142108458837486568174282144505298546072765549423518245985092244721711722284866292680655082470412591242395586958089256901657064758397255100965432275809391774206980746857870726819763898705567121941927353183979647067432433251497764917032776609407428552848849538387018912259002901574997413744680693659334319230008186119269189487782620095243789890038745765073335841606807518317287315254278529409481545045141416507289889787159960680441481951596687203222356026205022417721682348096452427332987302126262410646783702279468623194024511155728129455073885823482981730262188987240505611619307753345155635756278409513533417484204964927136203396036238764818843580283400004838137680468067433445504502341970581436224199846561922754392034397390726123975844809870120145050104640813188607745742579090495128161892831694316915969538466344428564772105448447302787141084700822927464386122257898075290923310089101528702115361350618437189434102059610220819254825024653922813634200850673172311469402113156508089367388066085068043267723925923363429921943367410618095791633013060368898235399221789324272179176724506282647163778403259529621097027934971146823359636026040378876512316353441540503364979050227564516603713360091541940650053175820499704494564240746480725833115584843286327268926268487332543191308508289952714266120006359589823047846646394438413498102237066959449066358226820221086031909106644079879260033486459343735787623734431077669435607409252775377134343114073837981124203785011714686446394896600817773629886089344349306824127319116730173507760852912476321812365926745507256142898389692856566618832702931352000881283985850028625450790411868359434872400261879412514668782600719904570851623804054446052277081356941105355909064424305214899750606628604517151542229788814916445278929542903577834677634862523402133329373148799327624674564519389713785084152456604030218700507602253327017008243773311773988284700632097832027065588499656124457876301822664129243060287442089351248224644764633134481728465988517554473569469549871501233992386098662075607852418083322044657588531584069944416762947495386763339619466114700377657274396541224023178977568614803852795250860978542216413538337244651431877230059575233540680863469581324860686399083201735739647398212035684442370165479585086180475072996783552985769613449273959547009128270377686603566428633950016416180133057019831425300122301822360091926569046723994598432246746459441549337260386181462573253030615900378262424492228301172223386445730571998248339684901804604651934110647497084238618977285301505331553473008352336877223683514762934937516736474846196912217186781659254004713232486956452956147983276576852715409938629589954035847618294601748758263239321387331930420231580646534911585444686633205371565112151720594398182323045557370367542638629449776008847821768405264791257582971431430020291481678385280162797090801319102885613324076992743568139421776571786352838278397582833648409701654395004191382467765708815416542676294531461637767199113463347914315671007118180380238824666869054810470402594036827793367825517962156816235680876922437589983065963685681045205844088856322067796875994767217637174031199113883538767370513617225874423062383975636886092127264082886483401982490593937050748308262778627916637509150784460640486739533482715248000115057211174652879818293318590718217372438141803636888444977028617819575001398658101935270838100662668464748294229931117327440249593581040473781396226210843304394819188555571154584000721313543289325646525918325006961734118679302388145124532046170832684714522065022145290430394287716398028330549276378242450960591028316930582292618251825958584549924846001647613404585255651256199708531821352309369396215778230666495976605329466927270440398978282387213511648069322829708676820196610054374541301450598438125591097392049098373662593031030267658429744323581420988854475181312562464739473087705321547732414065089706742890378192089851085833032702241054243594205852979858253182920755363501663209908262793980824352719865889388098437308506307536306149814877508564268797561015933582620109716578584411458903250751112085077793743698146877865996434937317170508466548642876860220421536362714799208794633471204810261572935877328190776206843217647639976304861691961287510761467697591336593898874640696854449395614927800657244337184609177908851338792860732323049869342829065454657324094740681431252214947753566680100378921540863608193883235147327794773053246210472232779899189534931269710475995696403371618092322843750714738502760507165447483814428271383556943429285463769975751438331839706561993893936995084924285191548144531041551755275440635784687463566516485767583113451972240435677076531169855563896885032025648217427931265278019035400704659424273192477181042893371896336115329999992074191683522690144310167351739651952491584927015191791798343730040473579369580101589008324155942424086855300595171958378092334953061073772602135371590641530112888815794361658021762527677805339113218980911153069479379237432838503151049557708485356573696487868822498862225202781397060278677134850030322262077545161062196806634551353280202765859421155923353229665545232918768768727906241415349317621447180964614854338458651537387999148399590225180163860987357542316008029744739988606011797611472321242384300495860419138292541149156422794123196772236088231974105860596715202662091171739078559555762026592122949425825579982624272918649436805910880018483024440632709821855541868489964217288167543932620061358244970529669671885854091012105437292654097494228444997911684625436094361718615371165639488017770161396739806406287790830593859737078066068579964980122160938791168024335417490853711200976449173408633434755408649358483531551664599994351177582596986458428819904088057653836959819120437283425260471987882935304098897960597907580323828509358003884472463040817965406514337864216660111017562923354122561240770729099510413464855819747172371898429694793069299936353659129226167494658820025100551009420950123585231174035175783246775371031234180311449316715723843236998006552545608424846405269531762958087181850151475006467023103308744834522987554949693117666693190070952297048325021460254793243222714389193865064481139684773761416074589605654245619168480449682651625096916404677415704637325239457543081677813791461894108973660367419072142619082160988379110378418479746028011958363585637779347884312737543937018623118208807903320208914362601267776935292000738909901057128610921367774210260329394904199411118370424968742320280353134285256722724883869192018839438529567351853136086768617954092798233011654644793678990122416154004292850057800044160934266101534137676234886452744525556669588378388508610657530148127492152987899494209414632519294967067837955866263539649618619874330344977458237270534421231029689152535375017981811639524128625088622818097086435014866377318721979560332750943923100152095794105262425251876658910158963443173530020903956234652385971363987718687851554453231336079091962781172879352652159183126326600730673274781400782274576865240140056171869507282055073956529482752199897929281028881615546023267145076549601085788385206116302773542367578055054509271385520431370257032649507586246762407783856224429546620845559406406498073928933205415797747840048890393083711372549864366944886869957700714682726343596877046595691613586019181613593818034943394269857060437663243634279450119507515390114098027122474594823788345632292539571689016220077238376362766249435351168995871541220591133541906733751919590136634736223587822005544956396561026682447490690044612574000543385777196588510173823348498649396187017196988512627273427658283168867382860286012198554530296450964134707760369973108118873787339172870875216225287485985486918347161828437786932714635073527946417123755867249485414664421023085088475647734107888627294497631033451676329331894839159498634757838298396997458782122195246519816498046098502984668190877992788533475414304172341914114574071885156094326711504489074366380163001913357541801862884739221667098334780803506233698065615420593845312214275261655742868795527417502898910502763539733930015453985185892938672405552579108559352060202966326248950405459559973047671177130905544821789506780902960108155500828312088010762309177858354758164163946832541414194184373126341588284599578170523145813889388505865081697077273235526814217300035656068523776244749493216915419912161376282999441172863014788010146868328126510257306235621646117248543409702498666829386325846813386796760630286670208213843042371267962767712557770698839926836742631159713282006172093898687757923961943293411185502495862753362400930596375851277472632098586230300620178601011861847845300554543898303312683725621169148649308659366990253604610545796121299400846755358133263430226534854443210239907818840919467304167670719271262741458458523985600845901636353254998672164536168538131376993331288776071398796033965758468227539068013999444765315573364315695813450338809198692763339684945663455273856658866519113017500609951387930647699757336498172718295067383574638266792620244126373249802311176955963828498698325350119362631841077720278522659030455082093748624895127420861292152098793189347620671651458174557151725239732524740726460047207220699420957233159148954841320208112421507993259525043849975422445686799638228847166041813624846975166607652897368549150984093432716715356737315235985926885766038487302564995081524978038477493760786139126579448868448503777555511475836544048809578183059491711493043411646751105729016561871548575796780160163925051535155329086762853083303786426906896287144302635865840061823355012094519012724727470260663887207231637628875710588736601589513903920516987929503983946375415091346714835681868112133885181394741969948472079504474454104620430754826952445020387714198236977082280726331331222723118082614718249158613695293530099216757820358791304910438505416669129959811394425181625511811351881537137871331775046789998365579460635213676888840225782471878950510805475199410235014646782385981562030513596588114254210987316228749244233938492205284597305675571890771013917342563493464935374974344097265181317969924432848966479739500233339461290392798402069499413066389904588120496384226685834753768716806506193123595881957843146423136996391832830044934670000214559064175806658720459107690807158447851508820718895908032843899823519898527890548025323896141276675665403973962894205560674910525410313399915132955103716826033833296790535600166195450733720220896182629120050220222230006317747803525855908595228452187249023809509815148900209404015591780027150335125354542198042668890578104843646807826096537456118040609432833264829368092164351412859592917184456991535921444367360820144954531389493512595708426783456544002228220945721873384364053913982535928752846878467404793061611265667425883476806562494469040139260841059703310434254094793702891930061846806337582669933472141315014341207055907680535459479690502076313263732027024281360411986442936755467336039896485156248119282684176303468740138834686198216156286310850045857874141306109703407223333930739595236425221695445639204229839266153047044742197495473281460898331775040873082672343719443530694514893475876614780853807027381349594358253724414123474144809950063396568654369914849979230982950828790103177147553723789793046597857317896968442673934611582965817485069451908917543877409285853368465823546043636037854177694067580617533500291644401347197903665012684613745764730623862726848929015435928537154958678688167098781013956419465494840329088148468262308044087372483462291711399657119084374946989809580835830601129327155922081013151870056570251363339296841849525893286781704909248708578484797542520929261891684121943549361691332831768453824333681708232828176061175908828084625019164336922609069589150041365398644551485449670167804005170869854060142391644810838730778505077125327777509855297874751855301376462739418349623271277123130065340223281988959515394746865526038222410187256539157416855033412840223125447518531824877475336701454293343965484805311547064024937895477346833692356273474186985579658577783115290910891173560370491655310499483566243077227948427745764500472903173967214681953454125740368084087458466917325457925817552656085613831723739483583149064806150218533750583526601669685570650157507663079473932501644455481007388825430200953047106404030643603867815063136233452230049168021705386041253918118043470127501562119253532462573825796425043764385745941822543861701345763901347912829724834458433753546595473102052726707850602016661283800055157853659259048781662996512662019422581987903691140114845935222259314492718935459385783469018763401555345105588958154182929478761932040535116701483138310565119777028107463447313053100037994076035567148207680160441491264729971591161279746358965238876368770508029616486211406307007553613548915841070080312265403187469050440498628668088301629263866107607994048754695560180565987248401040821585470043902956582940751400320683245133159833284364012284619121856378173925595415292692890982387883951566283261758630770844584034984373464743915938224468512482512506451867828147889444497152389291023183573973817122246538776247185016055287742993648821310722755517370309008214710243019956816294315707850344949465046051876864541533845078579620831812271804531482424151267009341056398327676306080885665122954308015489609247465136431708541358181997105407220164706953208215926173773807858799117853292739608401628870822209536086098811599891632429252633543860045981949810194450721728749033050518620628548415880722676761893052792958765662104169354700914491661801741651902018502711612424618417368387410848741996580375641320618159436973967611927140641611302163354156624440607246817861780224735901284567204985800266117628254780851283265060113978474408381607750654104632994578225455177518306602366553726104059281413338019554795451165884701382237583105805386207349403878681704249841643552522543092056441823882588027261023218387244965783144469169150811155982083533480447545070876731202949182265705596577645978520464269389588261952936771732383489358537004736009261797697724141217729420445692490548346202306423344745756721107883035360143824715273191379491827604442298549192515440100069223892176870241247354229678360739270169069415309213902878301283907603476650855112196829507179400328985011683621539120443818146871259638569275326052907507995858664632936493060049963690973915135596787358895159405452226966282106524521917168590562218327447018718506680946197742205483697212628496004993470590829950444008815348934780467214873398759131236584651738287103220649433292730387310469224019260026644584602116196234292721636496396442061682423988528177816076275774556608383896338413220508780064326981569616453390238698366291455871517777271412192551952717592232894290337234038026601968354303818272145574188271109378856310679745524147992964049101287529937753774936420572062511059115518408133995661237439214130097452293539380757710058784447582665755770018437590859823934070954036306232199478763736623155044011794176721718917829645456114315132557611983903639789164810534111973916249948009069529926995490086975415769765092457024052746403266084912906708237343379242822583152693724518373927903851141595337140201489955922179363564065847954471336521776708442574651950352260401337482954198963833809395932616997702530372058556442522714507360024343344616353163802964831642149858942500560570365458405759178850935534874793543027306777234360532611783603586858250183899880474107409100174004923009496453114433837762926519249372367351851698178983057044483092800967543488484015358429944989404649375379682370596693847272321047807502031690870390662456034304098687705736802688325208265716600663350665122839440576873240582059831617301465421738343286958466947251393859836199948082972623259094321465645503614393518074622516438216927384423246302619559784308691475705435772202947262007836650520407175309609036057822694772764753629113284693310798725353587936112305573419490504535221821451325102267188004456208646638279826285220276418801344746226367392437929152310026302676869331580878242079294486909670685866255208183726286524744719760320790070607969063761587064467876146973570250891334531514025663030709906445938127778257093599498513666868948762470051582855513728412301142225588586370443800535284788153792594146454887978580768358710840687118657549743886624565012425696553001414220376821667778672354403547362040403943623731225225420707041050130067155159497739338363902774020560024483168888302947531829430052634435894067619563254366330575317092131838081844870685397416465536088758440175271571463614511819737202965504762088338926803704781054274730945090146309679596144138880469665398748911120249979634580196634466591085400799861840706491049816238828114706761581914977961166631796167128088825796132943508685719918532605827736428307979126412402322084438893857319937540215350317629009764602254214205038286236567782922314202975045096301827714114541452337554531124453324927227427794997112094079288600847634309738424814018746951792529546006318695762680313754843705521053830423411398659941025257721716820010891733386099289718756485350157223365291499219248134746487378718708951820533080023804825708814848741012228241989396252152810097201317682809913876712919036183276348225572266175405702775306512215590639002257983830432701734962658609014127663972034691033852862010577299062439487253084068503184794403500048311273311049361996418674652628238712986822874521489965026451741851416674208888237238929407969673687504738121228878035995165283350125331249623106776081896562290091271560386870052799016084213978664368212615006880290598089794791487291731531591481634368034440181509784400476649906007290572986146231508075670762542353342488292967452799853274825061014050277515806644251467834003691040665033356060663846035050362958579555430861380155171745219855494304110279014944191327665583009380130203315978800131956653029900048068642204509236229260054727705257169579390401146958574721990780858515411691221210594951855005307840063679768308080171273850833511744837178295905048403356006697703154099667808363034684023602930580749201807639993493793009565585598227799654574660164017614775401000543624988660187260115823178687083910909767584200190808233820905815768788929350569028392636391835654462387828448626057264854513572856215609521479820064136899502941818166459570546780906544706351388637470234151748025712917222819045731354682350982790473547102145063667365464715570256103722366950448459723601827167014852842808082107349517906662669744529791691199249376764904932767129139240859362934944928743016760484329228291001000333766701461152421201868816480445153134233758744356861274287653871139788301254592624903745024954828497842333261849161309856689151335075487199056865708085956293742268200168695406729466139308390912068991251548631933566715476580967650429044706730700021220156358020770830753261084949358049319701262364830557643073182398749609524180056294639952288963365312051580557874204458071970882850792758587340396490825178501316103575634026529682628673436829091322135757438000859115788817045850652228395446392371496839974608462298489272380334803722396842424176768344434096910295072483487702635880677090313441403998406421707963014428148312163699634654128408660737635521210264969713012780229594879750129604170867331393116721639504363300583959408154126646695317771472100996307773407999578818542735433109620175425009289078078557296620924344537394936897073717296384263751830637829458993763510060305614317035452719654746713898370696846853588852738771688517563049043340529417491391257813988684270434212209994995054578034616591779054738028019181474870162699344969663402631684687687157101889734618093584032099342277385766613923137223246068745600199104684078466492533100840751380555868900786365737727582273493215435974514811628944694883513056775789876059080631156342074650310156778226378883424202855041085239644504011304373887688240650450185967666283001317602388594240438862161517355955807723112894690219838149014331392774400660897330801357534875016718824309730447959773090225401201469511150884948865021329977373242814272355682555008341395386968817391604508589302380799868751404297072422880108271265452008704550635560066847258044159141982532309512403393923398135404321921402661902986008410149578102103169889917827650909711559538204775313705565028018255104283153145042045479151615671776867668857547478984342101080781483358482011765103299951830936168932454860632604273226839206625101825456853895834130927937057878420497189105218178175170312264985712746040156559501980150959572315181501066887274581096536967278510855539581305796523745252657890850566947380738835819083583786533145671357608181405361163387010770271837505575961863386529579583555982598746105728519274353213806330436302756256677786077788674375622446879863514648386793930609245981798331495580838217944548569175215039472858683709971781200159853416840138031449538926928123093399443886011326912160576760296797134055436807179074594830745158031368221756397091258198632449516902328705848606534210848646483589233586966186454941053963924656790254145285929403956086888987336894107908622678879626047075521167904298878529827443969222965461995320641669595248306628961680128547127527946666541346588843519137777541116201287588072322228111525315562918549775437012801117623322182836642824264916230753611449903425921255155220831784061609243347553208472106001024038725794378533737379755779050054153252008955720703151748995134173059316076561401552817501697978282891096307493221183822963502282061390822076040406706586437653557634110695504913927072926763866101102100542930634993944254586332849263470417860876154033121760090191893997552188523796376748654006838574911657307088882193968802650435807553173367689844059327965989021909560606808656418328211861078043692074511819198238724298148478679530939510049035957239834196026835349131306746412331744172316792013200380235089469446832842240202494201346382411735156639110173690640140884204135124554976969259330679857751196005953041622018138807734721274519951199967123554749296398385012482385225940053091696413603232560052750448443237835618034505503914833108664188663261142346298050132022749855659424042219190071443139205253224045612885999454496281051968591209450957307757199937662264966150028627261000605473233753482154603942151918346757359487321792806004014870027749424831517711485243765875933004106446318433718799440553998797124699829160512816833692129387028976903531873757659511634984148015314484748619052532391379913675388512035673504631408576669837379348908302906689816227054517311071733318700096635094356465026463058246105120771517955127357516410798788460355641244285896079560652816721134711838666626174345791196815083560523000488897639866886990161882827117254331612441804218281202472556299647834286827971273600426750910994972203845070671622456781794330031149164465378983096669273296143698973663527162412383044085348094558755551569813369825995932948283338731705645034200385090684142920714839632649025760693002749012633552482324650745041338715216463402732890112357844658336173596334617662325483095317996006115057132119501083031932175454915279546668121802709452424392617753299082854132650632128412125837723928711947042543815513761183598737115777188306313100370484396159498605441456038265001855687552646110815858838004095708439464245505045039243793286731115744640389789742859519194168553759640834765112081023774835789514281403919396476928836478185046846775781196184227745790788765530393093578015798627232902362862702107414252084944074573756542843969565962710554715633610848115641170224281942303287690607945686329146585957615209523781399964503910780257609520388222730877449820927294029981869429498981574811510902496137854897093556659730068960559662173743124570687088027029962940150284771330478352629936952850726707551958938076409692507895477294969661596925877688238290494766000964626938469211812823847279235880824282337218962930185154811969780324997918204037860176754707508199536647654045332687057190073076809534332553601342511464180575300370439729777534679771036894721493002661156768170832985197296232669901977796017193056119904622113893148144614770854678458592901330509154509463310566324126923121203841590030977781907576041568236922496418465979313034608684831966526597869184355735613340314227954856213726751456451999173789301706462106082809927224107825594594633927961525168076191835397414069158796019395608926199633330877454502879703486037355051632479113269162674353518681860107910972424945306574011413639779836117619166838171205420626641500588798277986203781242134421428133171020914516940015011142636816782853762623233990914005746093101909287422599699022353861801644239587589915654902899816982853042628607398686488600333869617924529008797492605994330787018689811698527641730911229952102416774597581181427235306584550409913871099826405620248553200651668690568354676120271049533044287220763821298986195936865179703762366016075114483293349395970960867938894522357181435771622583181739923928789109390321760003437807975298707497712363903979825680637875577585112091489294967907817941924001648000159992652517271329562107886013233993296318826786127950479244006437274002266094034098693579128025455415761418361619889147135423254245938789874824012490911663829545067943093593491388950731592157524002683394050126563924635667527973458989399919718350903905009698238732299819532073266965446278246852358009800677301228900175574790184577902443622274365919038591532131680130517702572720812122604951140980953245138765480436362701119386540454046815026855122771315790753491728066325447946546358978668817944477959876857995248299777775223489937531876520993773446159416365717813579909190434352410580050137466094897805090784913310198384147372667432353266321352430418672536905797896830233181644751241046700258717383647153364250286728478771680459717273131134214264704970567441894435519318395363708384820494851509526414758315796233557567578264144368322802665805864923426546235794791943581477805244941441890191404445279741091117694237278023763210980494023083211686769587696614039406563075960909050827348212791333851426117818735360099055112006681262523597996132721030437931456795158773316259615691672768296911977500611060355542006664393282671968685535634101681315621023067769565963304618724489762203605243822070610801764009886019618123426970667285380357510997703383053245579133783319611245401451083077059487838530145007187654733832254527223314358298710050006452069845909883211711826778815209201758702492495188220795719780206146615511761055739097734913058190195871090757357312506972027090140998548176578668170367025782557333491941643535589157878831843243917191429028201124895958664410038145831940354221499972616051151107734569671972982087737802656272914122668712376224306086129297036762300234604636663071833688608691805772540044297076871965470675358982533494161218867338418211931620323354102586839420072860721328857982593311672383468418711326403777273142493954437822952581091920681909438256967599825724633585325145623566323599051057353932971273061307337086261676914585026954708050140078998130478798896977246082922182553183615829687672476112796105928808611323827886846974221963594540911371599313484984677298480687810388759296435382451489672284661313534416241715822400070203091672087131959880452329939782997529752825913601245810786636813475344574808619334254187782899905950820281810931866609427891055467954096865001203885855927062662871960241680313924288368255503932927709696312824237328343915868154143973062211206528376457398875741430549424531859577686920239483831234791590243510996606362228115712312411121660302770400157403109091536756198593207962310029728036096879737161204592758587019268713470375248536665404087236452506853026528588522825065125589525647832111712377240312836362966131030254609343337724382317215016906855033185646672864373852538329037935802877175932170642635003856733573408922250667053865749994269782985772430441702931923194295632257559092293454821699294815947088987370972263116201237802619287907716439071676963173264966274018505498191430408664707702952476035802909811192214848638038037884465031621540364987645658769320452670942354547299826159295544161707485689023073630606706506145426157520609262322398512974732101180716513505420046229595009124510246503079685538717113520585305252328182540248125432018657862143376830932662252882215086239172155668497736615320764027678647273207923274648551238512907268229365633562646746582538470211979328479722643245445284160815228057901970529552241792707642912124853982191373346847307446054042323911012071213597354631767141807292293648749998803496819291031334456650519555867942742758988277267152634128680241705308802596461740775086194991694767300481971059257978539798642565033782834786775122951143731185443455000548541068497006409626252532582534317795243199018632099501006683652021038162271519259009819539949680597499764082554235595690135391054295660529924172678116964053706912513933163322274195253486910705878536997577480550506841163467634365439940025526821551408210356033510751361299048032272198758999670938999260954876491753380696376782149782433181778174685576909601334811440251529642555676132256980872966911555825010237543853007638506466216402375978268258038166708871533263030557211620373231280950101197497560218580991051966402299856425687075443871177021457442283388739810801054691402428032337135297618407564889408247237300249398121204187064680140517432788346422329080545790563500670076748407889436673274518832317960370956355800525230006969128212445379128910754097204760103539442531530772144785580356413483173516857430077858887204543143089338032997823026852520976605111498587805975810200234729799970680070083520965608261362205570855654322856351011266076255038958049130607697668691680828399263096917882235625439226730324797974531903609050757900327504472186305300108750044292585366879436481480684456653355650863612807990434525472071061438212873284633141253045788754932088199455560209436352264771109015079797527133076771648101807468494951011236888514661445547988304582368556235894705148136002571160413579029835097507176719896573729655672712885841829593522509378400012856157320680186561580518469483416062411534176435864682666586148332846801104645325077201678241193321529026433837881920970064633708513468988165252867980591543483215256128949218637227176692372093812247792112892056939468905358455181501920910693751817142671103463850576953839429581716760856079971145948394177423517179302090746701893237107453712751554865901906049819343904986071279670734880801065906893466602306094113742085279678593465347009707295029616864706946523791761077324841449382656993871645358305646658793029820986244858724938943217673747954140398684636843630945019997635187898285878406072747708310902234808390282375353209280112952712776699178914913536908440158681280564995055019475339493072070195439128217513502367052583818406897835227058092654450911266758980298353120677510325925975992699000824637712660284059106133086936627613983624775028636982447321378570028483930542468890151139911767470141092176281820204125144445868605109331791608287029464914267045459254430299737235918775071087629370293276401971464999896953161967583230518017519636786014215752859647561398878636534120774361074239306204258636053428931701691127505775421777013483975984362269181163302049765384452975483832315472322675564236670737985058769762153544820591972952435927029334549368366360125851383515915141145104371075668126669102159338122070516686773649687959702313186603063139911359247489488835683840717002413151226510767533607721436649645494662573469367378310374100678786321417809810631795772631814552828557698895103952389566969966214133818872165124584750809256677678694652130454000582395174846665630474609606355776465558143241985119747150096349635261806518579024797688791854984248210615865226806317967340911812203233173997928935408714849247819555346613647779899038562462389150562116229980776784030244337674459073563494074839677439210452656027488446785309538748246478491259083045169252054394533123278520724757571309163696833299041307362142839749839245512134439176858585026187959882494862623626060909790708751505186824996990495793456014911025565844661291629465452572055197590614615832678792436058347582780238211881055924519146584287166249651313417785433745062050462269283274452933766153711579804874141483639940914356642724312433624531645360961800329760232560127445697473064388906611591200000366253680680496769566471467965115041841806214341637950628570087566965502009100143281569716874892821202987568111118228118893675738319165115582746099635737957460300524882993546957345369158744045263157695604943320888198683936006513900551038103524642763554274058066145914754269639213480876725574953209827026969387294197914347646618810372763086065118456972732072229131224499796432778633518718482402635551575027427244852480895271234487594408725504709487711819546414082157774806134595010556019693418485814629741545512407994035583186350767250754310595710485193400335194791002919696303448713122917643923454640075799781237104826177021261483805698845044721537669240573859239079696249982427392605265179555241577264671625335649092719762502748471533364462304357177030629183750490657414375550903783029129083875171152405022362211526023131666193897071836776991408603388246799709947787011795730108688305606717126838156995761811544213091735798324186081736006155137955305205925291350995867201059237322063063970742722818065334073650088330061161275719775078360161640691633982721015904377774493097194131214782802239250082858263173427503483644061473247892223121125443486869174366236702918009248974011087185943428219119418635993425190367730689983163890148874738617649454024373222672406254596740343417106135906742033017511196579418831931978846303137825953277097926908846231795653351874313242356541277412017011770899089571562376069430351679747466549114331867801134268183906190862621138631229283300102699165304795363712920681202784783642668775016424524891872835664649271206350989657135504193823671560623625626305299056759032669983247594242675615603752943021931834316851480819734239373713995185182696783943620909943439766487068465978049832735121142728005976589798303212498881060581398891366634056046507322739739915246769641295583986736865611345882850413182269537105911959012096407823547473656329474887127477136074411444823454515928799605934911766704082578490224903327118445992690644649714022685221774857247441807846892465427090044417089636082435082561396129162938581810672127713622211791251645618756064185134611894807485573366352016256770015048011880336810956822210441690075183532537864680816741914528800173821502857900818107174149506763720048294743036733312439412465035628332351590262068421066283438374073335923194432701762397055588853149541691704310046406200781002916755727623703183737667451775320139312906563750598694774271562976042277438169848045062736202976741270934938372714706097422327169268734926921086332978402256011902919597662057456209391534351460721175593113714762252736001029789951548344761493769869989561265325269342439089487738209209577137050337238603413289488004370357670093538619107220074729844563739436971331391929485701967020430641569968363275311134458827022134064081957231353860752269121062290103670100120391615694146302996293040216238330884138534878038804283811659292918337012886741477478772883252906972407904199923369395741189455765392122478072038405074581977603652866372716342955037028734713253668459549872729392346374470926700510908292437543422948381262599221434664635039687291151023365950192588599776808436548492126224904786938408836455464358990394212540599163570694445612971536504481959881867236758112391361879268992956776526796674487610588795102960961890714299244614322401956438818224382180305814612205587182950270645689633950004874356958095140776063645015031612848985982315158311019916056836491137368359252830048156404764766639542102735838141838167041586986139392422742476861037763601745453132174681689764277177454999274827309536378710008221345959599798841597802005437641962036871014627790757281111329952971680032252378462259304614165460476393514363570420898049137693663766032510400030129148306776368225428265431927664188445384647793398593281805009498427442706231189688215526696319879761608635901039341390439996319314110851723579353094683640985800512442099802420632024612863167413305109586920732070424771551295070166043435925069367167717065436500094120862258855654214026246562662685356568345187073373038396828523377268447262153469239420689649344091057649503908680293193645693719635725507875839005819878795020496233238435634758311976938731117765423330492630958675375017157265551740666165842834930011885299664923402204607288614617346391510460166449008865845805785921407039756405673826382289769391812759906031900955888024166561083562145469916763054867096318002071590876821296402290541200882414800199976541220742815417078825257694127122563174334039301275704596755768723042528240649016994408034751273635894516528406430280284110716808020371409494561398970488371501907651210493638969865232849714235798687044645972001016883086977358845679174884837222768838341586406868977634782870774970597441280261981143306650796020910765795083448955413848515827860534948627476592586358644603048354349067752916597623186063689128847787970529469154174850304996275407809275709163890573248461091453367461377742536393754983130953810923319744190969505421672802044961316586276859591602882244188977716899783513953470417510234139351335086964131849380277600706813126757326501361313813298112797413347466445562348847022006405299596867628717812291876066424530684586049722091519221034900557201206949740381017284898341954488625712380404440309817648098891081239756605234990986698835591215750968673884235659448957647237122587286303770321244832660374186791362739245368065239927217230136561038046580184515891961671112099773514642445807453919862764159676734224845435716049498771969242493575982346536883080288974097706475750972896498601238679850253496097130903260262437021458866620173251560287964435295956641060834269195768586777189806498501316713007407999995999462492941138765940297371811313509540742506424496578562822412714945589792674579757981603773434558220199742858634546871192334212876743066793167131189772846892445624786040268421624428240370437980065663767566963250804428188223477108130230669518212126623643396839183124175836200983258774386692714779169557805203101321044896003274405313705354266404902309371356103027930739739778936874213706106163222065946913404264592514301071961443548378828641492244361127121828120564523301167296191999845575881307588021748848268050440234209221680113759089472991385515717839448288472956771521613112495677153555980571651334880604570992705910379931911710886216372366480951505770266612043494460619328986494173762653271919186589576343195087823007676351997468907186505485821661798747550005924655069655773479818797599127583765322262811178670442900555192184502357515199920927272804866882801155549856120261101295925634723195332376065167618662490329148983241349742957103722488263887470322756751725283101808005641564361302757909061523235748978252422215781835365572434923932642806815020606226780797363705136144066705836468962376250888157467697426034491091105087656771998487313202128285358258162925428987630153356613899138113426191237026908602529741383853230438923527011121280753813323902504264343991062684227296554333727546529830280450082861928372534249990665713615450868322802479577855111721824320901308380568933719951045761655155668128703005492081890813705132670579509554133465904518660961777059836986266512616370091789141375043357250603333453585686697819239619178437198468779951391264723560122509855619267194095855502142633661517648351845570438829742342986173105644163296680459726106706389982037845602327729942764175054985025107124533397543541374919859744750597797322763315244693228685883842276094211869905523631820416783769345500031359195382261627542995957698194952944630430409859846115391130734329417350964644248010443968999738730497447256248403061752670825690543089621954772559075578095592805478080270971653831557607182484949933516044760079125869874580294582222912733419232181690281895673068038736466524309664855084081555660399515036848070510275835781678969037385411179917928963195605457825950214610488820072371257930593991256476874551626782443395452758440234302747950658682192429509451167696008550679951068597710365176418362806373716280923413839879882632786956516759456931668969896056241153634991265918086528075001640786867825278144480680035078106099328693720722267445584612422396916949728408819206292185947718960671039130681858772443617946535582421416916220851313121521701661234203814996002094443195017800947146532059613778803496582325535413623805968285175941632695032417775191234173873794094123880271185897599737245476416390352938477228853562676181009762345865889197892230465189969653671511522104923538405230901513977088641291989461879648567835402487804908829618542065831174420372130123507518145614270840271904118084791292979403234084844284230073852475312708053856859728262976597668423563902127501107226498578867653433659193202343120599548529311175916069173374177443752670396360687651222005213152482444776891833938549346369526896779983767636618344628833709884910486110017038428031525808827391570731611953981855235946220736419798079544091925042171928823854546928448365917710148578677284464251054018286761836806916104921672748504540719004064258292845239345541165394792877069057348395125230982490741661003856906393258679415598020215558689102373848263526457644502748099513200102074727672753262947059554471141147580486334810405163425647349689514201890303771587102161066717899742071559901246895502440881473557444692048960983634923936940945539384628537724527666337449501964584005063507553467369124104798383982075080272185026414945829060127153079436129827841825633781486197918678759654299002187237138300011058846289187113091224824031157068406912469096837280538763200527627057197624527530861867529043436050027856540550479719581780449923659434780500424808814007490949878596501222222874136101146548185112512859209851378970150535934472897615692759404063728955130869670951934241821414422501823473492638849748542424285874343525689672859833317765840265761457565395966685476782808050131766657448291251051113344104617244986399521874841290522785523114390051674540910575027383674057542833997664638511698528810630766778267653605976910858914943387377805193133805585380077075477021379551065844380505421374723495527625214144053224380464518659238184404766259679268700949993921963342315010680142665902061614570110818095680479275209116911693458707759683445804860778079756484908249727867406370518311475938845031512371128529552542293031498969365136577335267793601865909572730204385329085179898777853994965979302657054364289306549609256491743648569761031512233935707629596503902734936256784691710567677833822228907469730093731004782037232342228824533655740437709069026446247589519611909696922989096053536815437177055288583683207065731530647707344802718623228606545892135078371856347046951453515294987829687365776869180879948244009920431392175487892271141682039958270606224489575354650259719033037634175879677995075807458953635697129504998280185561647138933970646841237167037521914743991624853408098937834119036799872192209598097532764639249252618815166537508487822493665433514999219334148534943602543814820072073213113489018873466833716509974311866006462361896658593387149602621307665177446927261560789293904566629246542585936915877854832779786480259111704685509767298529469337817563451420879219769862666139301805028716717279037846493913782421881200541631209666602119931328386068301195953033036118623107905323984078894542188970784888367857529351636481857406090724233592517697098500056371322392085990546196127422787203541956195075894771880447668626527699768194214197520630193130657086808602814573326383739151012745317516451186643697838017153654291051755642211523584766885227165583539967160361772583903952264466032229513511278722266900605213471859035413525039636507263773992529623782770389354420496749744230121794750273333548825977953053183606619003388090822245203792465904574987127761011636377755931988363280623722151273865527925802083363326475606118072987610408954238663375752387988092752128545517098281211934960558332590396695500882792817625945056075361517535472997395087425642536332274723083606305131190335114038447871834784786832087218140495386362632200560848925731889608665400598770410717402924784964935365215410683588358118545327452695816658330005640167647233141203419239843957440838375250776713838296567134678617602360854726812497075897461527684766972862994425091475454124330539446981802066333652137482420822118268621957173968886854782004728387930741412129986501282136561227597057311080860706422914060961971594963718184575719589935804239785611332620059917028167567282064452173141587017161211640584357645467868322719948124548746553680420324191569145237078429144320401346320016737147622069871372743948389725367993977159344226527285125711209668133960071987046368485851439606538231897673062562672922540970740043700179936247077556933754752697403676728723793686343796122675954041467340087797535548777621070097370595906596607070714746891992645584505395002798024917050778745159335234315640042774149809290062521232162186576894898765540017225167320467870227779406919962993850894055912265877257990078034533469786929233321694270180852658201538636156772524642642970583062416022582789559544928254858499538470907339382682493486155997033968764847433548170671422480286638585158357182600331771662714908313761276403074693110304124810881524914287842459740813245179102419281221451975405091492196205632654815656456562554804000505198464735419353890925866295559384279431116410919810445917476967213136191418942664977024137879704035749908466723760968981577911984188949366378945687816890441139059938799637607364466143644282995961847452325758962662079306951991341097653879859406414413169030839421817737881199014414036109116286953987858797094371235242651429461019115256797104167944517744427025121043127938108252825928310576401844078899819225514189177570441677033787290933007809376189482970478879853523061025625718920478743516501801618518665947348500509847652634622645097361237826254550213691053379073634467521335640737973588222966678382242299070687473898699449968762742486555639972383117333362989916316906450859844283520594332648797655075037125845125513801975783534025980707196926460809551585976347801647108636721371362746789025948448060915209429372365012333397998772432595700324568928263424811952969284556930961114466904138888083276499775036813464717173225413955520073411951671697720920420238351716427436904236512788867698812044939077330576104976147509745716912078594288052582555457888193609985262210169450497478968128415096071189914271395092865756827597822741760697756392329820202249131697955707511337813618933934454734469277949625700778286020052252765504864350104685016462802182855004324833288481633435327459837514750019554609226636875509357658092291301817655933138706647633122467300299185846624620978822309528962145872242662287784363062129634770871000316373397481877417081557257879078133641866792361840815217825548918220964528535824806606920246743962862130668411609887702733461447457246015342661282705394491181736669683404834281865360078976159216369940436028061410745477587748697122758785673621518969282475384552786564092516207350521133711329142230745159327701599593032782288372457343151009018605107712868417931671012511291757844758981771933226720547010441009601042454876386138449783843252559228820912457346398101136880946814725783960260538432319904979007627567744067272517220997251386155929594116603390738421397640023209176978234545492825740448612869123407192927532123347646388999892674063248334524464186679223662875211433308281777144694186970353049881711713154276320213558864927104196179335574221695881257119433037315737860348396450566453836891065031706893408368968318724531563959706575855278960463770717582197305258980790428088236200570844536508707287707584851634446419034329572467790827357837602205774178090792605227318541160666245704351005818568789001098757439245391277703785215265654195621303318372361040104694870618092029020052470384254480544115253752153378464940108639126305445947436972801414570930765519113764655514092596216882231059213568825993464114695852793777335159955197820854762698202235310265860618348672382930815359066978489286433241467309870233453396857975181127657798521623760854376704401910151261314569728065316398676939694620550922782947147362166188840879304973044394685246446339429678488327310524420523107181522355238392093675617742862932861653278090928134085683299162184227250643100374777990138562383374962841413342015084896817047912882435806140337085942585285378462507561292645711488500404523156203160132812575502837556589352313908089817829596608065657883355758818360923922940744052633128795558424422871103849877612236669854718145734860172517532316300134668289863138451667328254595681515919049617453731095030804338699251481580035375852777884107710540092919302212331163346125648202543091125744400016385513882996618743787366577493369833452431111452529058973360051453152649960695176056498928986177891928051755127303224136822877489533789545888693730062508703076703829596781437380003318148020527807566749250088480067171952533375429696826121234983739540591090826423287160284299497140563051262593099928032809571096379641067133011130787965540102172273125908312524711322037035857987818848202034462856850860358866630084103344454393743399979100287264755251459699162949068732689593935217820041071078680250842463374774854744222148063999967234278197309339578539975062986113343727720944003162023170865090979116449922476875564728928529092595973140099057657450516052065566459249729860927816186088435098655371015281935115877931472213154563902878671334674575397341611891653266112419571494058640848596485044671885042388007324990699745564860456683877780803824117604922213807311088186906150316376893112716112797706861018130205401308019955782215439517837413210499937520056142150119072110361979137270895900506140027893249808635669723689762063254346772306685856806014434370656462884886903281564526201620789987798996791379273479952027082249767777504763715066980435410440484179619286192021676139726588622704041258848977612930826691808906096378690805804835516720206706593930050618349807648709001529953504456868976909839081742698997960247745525972902740464737669869224382872473810583534289873744781395504317140257457215307312813157109822466153137786430686648033681817349587135299393207106874869150580214553710377584423926458587162659438395635642465450596426566982919956110417618533271666725206001745486877186369118275238879284363345560773829904504695322481880612079750249965758722487060504386313819661567047715097577076033152104075325622238916371380343987651859552458729086472859863169765964937401058665281190543732481573012959892315511349210437821716349048673259449585341512407700512357292719913483954175711920960192078361376969674760223881308401212353807735622765041949898043291941704135974044910977406476078163269587336947393166755928078833599160086709574643139149408498530443224861980044675031170720995125640116673650190695432158771634007991133281055272180917000264876227328164401473411661187652224567995183647068732203657509223118688104793147760804586506963794219662909620723934125148079960344143775330411097855347795775740251399149342103506557300771740030657668695204289136372875378950631572365325578292209542609228568862741447806337407102954825258334063339302721175363961424564987459191321461078471291220075317889492822891931852702116817687236337058586288900661316321876345186896381452101370833106706787822433798559158143756712441810994666820833781901636318018946866472157113857530955228605129047504447960297163150108811078593060803228292305161870820859275427769910921693001132944342781134519027686522369079412463769868014427417661766517651353039854975658300484394975903247242887333452539058633068033879576123240293505682282689968159086774957429087031354298400035459049318290570970464328841175671582066444315302495926820703517744459507529198947833089690473377896452502158459660580875087258673476509243050186409736149014825982986684914763700857929700270935809015283860521764204993640795177841228329349347687865173409723177939306626001643725471663339047524037661384154681816499566950234665270003549203715078224209816155861786432975727903260397601107237596114170700030387560709379228129999591034456444642198306054544520224284544877961545352837206421136372051360256228215901627888130201345002615213963125848619485371522190472882247059718160009703569504125374850643775871200772786715812155744129860718223862468039385047322914579744332047492417416104441872282372216442882724461606441079663535092607412061986065070685376129460344101340324931997189942286313256345107087572573008662903334378551279579065166000046256726314804429636025657783459883008894260356092226616516080109539787068305664966100349663968027659542880161097084961863640978313841301920351774066545634254235484814768601264530496023908781637147305461396078146748086601504856830623042489184193128128466300578148033867784296587639081911735221123467618543769905892267758589125133095436928364873558206398575519630569435447461550591618122416201901734776929759480304836703188653420586165590084749491375042798981164970532108747584254167363249732252053296904789702229730056630043342530044277104347932320947796477539079122066567126887870813101888963409582251029335153697530926138246595155293059743133114977825947609014545737142765632598023783246979753388653704844151490412248605160367988879810828249585866616630878102766487060049816821551286264498717910211639280781488415168880506181347991681571147849289938286269321879325589427874905754448265155682173907769813859400245602249589491383284679981579868155656092946947787345785644545989130885339339444506722885458268567604941776980105988675618080628247219303969214038649722011689708636752056668554332680299298869797674794091051103813915912079991762547545889083487332726411760054332614567159535056725559484474009449910050426369562060960255689194900809007562264087999730542586023222120126278668746946590966442314625775668245029578807021855800575384153636086798853455851763589645092421391384840642227493538973763438784642782419585294365786661384970927773420791146856863019990963991318188792828480424460764150087418160825395065682936390309293321371570152888305914054014761801203614442486625104319359478209816305405139981629901136019196129563539390005944062186100582258085476421376736297079447694377230551707115044426960783434649408710582821963379834892100714808387997163506774326654058371694922357226735695220645501813826736477565228126619047855672488557415456683695924750890404428156214665635028320745512463203190074593505400208368874533435726419101265417176188557675117190511215280651347734886594666145392018164614220815743573648641249580108429753492902754745106309717670286277085983870319108937569044958618347132879922844194956206238092351102585487194322289096960901295828565085999094843304940102904652063444836452150619553971729792845992187149341253217447461062846523375674633048158588797701519407196431086507807361345608376460192576359780060418312676114055535204403114970402430820198484616714336583766786444773212069753652225243158799862221760257813113501278349465706740261613576178291168148365663997257584211262632760253368183329656295044834212973448365848467626899915548583075084039947504234879196636828248302289134637708926598568714834734051098086989980773292890699888074039659870271159809883910560210210663597078972971041271555691648402814058791501087018447626591455342293886752482196071776215475949316417270068812790261882137799283719522747137083273519273739343045598878891716419356874984765136613437154007823674915317606457137211417765805701507597612655822315280378866539974531571866587761859753824538098712710436136351308911575013197112504922354759434009192097310046828276798970442396615054607841493288773190525641508402215945124339840869283374237195223651715737352239670985753575948688345063064610345095737087796161539216413845393430418959693532327684654352944911115996447014911721434753998817040649794782821366670543018912677842724470034184057634400448641117472245686096536934191427604460976096012429581889692352952452793303791021979106305532395028349139602991671120925864223864114434637024325097618524465419840416684402776671137513915267528651277991985809977943773553752938094044326138902126072865561453603024080426196617605368461140392830585246838413047810981067320034325774808533067684423181784799674669957173758299223797836434543883935604371055284841989562536045899637348943564366254165827145282985828785109811062315382550418855413366577277374201787412304149935295780911508507648089180630233915168721529885127996960958594112924157685169659638425753431943388933052696192403652960935090011856902118689679091654125641095413204358036179152548093476344698248116652227721174381856486599790091108288155781782856785043484847019566581570961921354749334271205053735366347443046447547394387952047461655399694476209859822186321197651040208078367537261971880973847750265452143776054719571043467689121200017566512892310747734443639331410951395754228009943292454778857262531398635088223111711077076945790824720996262033026498706094444458473087662903752915143186051999748068125630138744333423953243516936687796026645606595938590955143118598919536957062196449647266522141498882125104940795238458826428953831131897233733673418255566963516430865131316951904070757026274235327212747312284215692206476742373445186358607583103389070556317652682049566923370146640116106031236767753205199194715760491912984535116762557990599672695501186089772905512456066267393003755119722697498233251504221322307498713643576786854595177679246757162322701255065946026876074398824497187122259609929928969375002290770200648092839955598097235967203798260419868316871727497743948132151570240627903029967084447206491281048665149605546734712850615444731762310416378594331050460645555962915407318181647452056086352526907084356608120832112900692830975211770914530070706955121343331419747449115405433590695145225063831917830492849583915818971630813398556812677464126630850252229761567442284622234894846150348259765861529965783269453155453564116583003611270392736463136148135857629992073288909502977613090764961752452135572492513982388559322442869412028514532411880396302645775107267795358171119309339364660637956995017026795806221244605726937491159833280888516488208381029753187451944345310452882191923891299247465147073535372997592973075871633685996113311229279994088059820003482008228447119125335108883151290205765446616192318887214652539756764435531996396904670091515109020491587244390690041255592287205719059688297970515386754782407407853740558227684918365735907512195221268907068239001637005184773725393291734400093306119972037729674301400438284541914044158025348750328137837331914568683993970957876335700383295408138711599226722281894583353334427522429841761240723019016916984693507693239308481212740932901546172372004142017337188397191146647859095395990812053262149552985030056956230161968118911449574781555203962385285175056313057813111303833238272593892977628065221493885165224021092199452323878972588106064793472903563208941270299108358785661937801354893464765005931431764552058983067090186346399461631572572612345563847908579815002147528736832430258251925499320300657416555025505316649691104547821192944438581337558324208365507868149971483737082856707945390298194582503030440565014091944242333634565849805045174406124322705120104139934930032936184794978290421243645203075474692644637444006653767866395358736056207626581455605624443246189005964315257392873230267067504791955484725909144720325574162826079706113923987580348779097869261233981423718858025668391528762375556206550812524533383184355410171340729844575243399010931535024321986402261015445073721256640836284749165836546141215797564267830654610010921115815572091854162158757279352916390968967703651960236877083238537431568826712771469940054375037597315757883568181601299628838748380415001715358657719346056455973937412766942880922668905467295014806434154926991851795509774135216444567902904092667751155761607846575596275544711333358130572962627772775318155326825384066912916300682330931492813023000721018599690135543969467195516264635243370870440235088160914343460935278166563041552038229384581359376642204968336953503359700053120599364557056503905151225574213531456002407630302616215991116342411715798452890406880099895521731756599086623491009901029720374776928188662009374626387878381001191812365898545043095906887091462159573319294315691527382484948079590072373846807842594894252012961526832809385704988755435265968751765894473098087523318907627136026098174505840733983402915376957118988840211214662275955595053494801200471521027273725625827944615988313341910448193242356057337906557550247085921541507390377506724362291672610757819316243825478760479011195726192604639360685279620502327943986106105805121626946044883630933647474496089572738908976769181772864473075289870206062299236314075395122820956786819944210406931758210400248829915708209681056964419693958232015492296441402993799076359499117680810004403851498966923499913260221005034963256361034944241479637215936323591659899053842385599245742719612491975092154416312189588943940513762138627115769526868895026615037321701437840626399423873183478086035895034169034824172560386855004700512837041240128366700743962473764915476341484576344039993479401381350467916273525423135331562095835003120978276287802951691179328208317087607597455969708052533260230410281060151013401485408044659911957440910807408942736918256641673737634702742573697915103947845832269203452559175317280955001272205921382943194434284846864729029614433280776024433954373270209702396180919042706713848932716606656799783335774215461212463795405850847723158470850104900584134452183980835473937505948624780850099386805674882651685437415188097905042433913778226675637283477470747262197112206878603683043099419975647154842955134258054923621612790162775538843504532503534799393574071078590598495722996186801941926639806172466430301125895874864857089782811914511147359389305275373178533944123601190490823974086863280168248832012165466438724733424655434932848385320412959285742734619068527277314041687812071556533547578160914876444384504006821020375818347293401830260198736459936701028824121272525733911173974219573940464297153453296751218786781229318869469380394496343667177864678009979248771336300440924829401686024666087421528055905116634261691896801202257629868300027613439817084013458286632826223406659898160176328070830638727104491425720568074025481411608689336920932977092594225483758756235615301783225079234245923597397284915933863929828959006893444211153188758920749944037375440527142490945877377646904822269115560865785890912847848275538466298545845011418487671745199344735801092888068693127412992318802671040090128147375830603845501942564067001299908446741804636103731833871900343976710495080531591257281865436356389693158815904222743317443372013490789510045281610879601642178574043184813379808916343094167742226265272752937496219399180078591597369745367028316826692856868698190702317465282926070449400691308994523138522123938026935940752468568837279288803041023072964917860650222254525365975973424386855736925118618865299332154514400147944884681015150585864202412710206636574573722594190797994535867860082152245237730564760702067657042151683527280013101631713731431573111940423103569785831989263640182291805593510001094353614553724820630921703006330072339099112559900082312021312504829750778291188518249584266343618832173819103703130452292817385954587882189900261421730253162964837195911558425933008238545247774835526331078747888739888188139511008903544054800898821065857047094492967513568722455938063546689805138702172542030225817305694574893938161571762244984156733137808657268008566435860861997766179456956242211765519448387488883385231341321372767974756800412198993104767516146093273292484768293101708939535240992024648323919388106870757553738487226683822865601487513822657079635643707301376584889030624652286731985765907095949604897516314959582544977658239559970345114553252629558049746934770916307287522714034165642421076517897532811863855937975750863195292973083145508985525531982776043852592176486352549030219189390423703725382875551744850628146156422955993969086240678769500495087958830415222162354624932297581623324918982110366321797667107911891366840809469101156543724663181850636812088360267223077263561280935322156537342131393913000865387242245286002745729909688202956983830563930964805851638832203921535429485879439221131702286038599116169385532298771311056274173816646418099886616418537394822984140197719844171555265619967427263055958175293972196037142616897711038769941322475735347014794103074178709592359179503698847782458827137235631589415916386669886938597511479704911458628917389987904039468890305077907574164346202668069678039977168889273890503100380966411888415800353741245971098723232891526273392691680339826523107254301750242827793624343507662940058681702307310140752090373897502556188823721354478982887860507786259180011791185955860286816930818014446921060141026799597494331737894483806075158907459780794845522170886470238766426735886160870955714004060502036161118402584543428534459520053782793857803552974540859988457417500407271664430930292301272078445626929838198542290639718267176298336937347956423809647170256782835353019535556826753226364455954572453402853255803879335907986801153678539894331243897965442856392249349583914386654220059604673439232022867205222180999838108293880685828992464167879051506729832013747246349260027339462141798993627937305573605441474464501951313261284692607056880302557971540435857219418604998126635246747353992344233296617855911949456682281668506775296125203584276809343802669571878996207303531292747546266914373784797954279539482129498298505379318592910788179540514813472074123651565667475584251182331921209721639136188055273694753638867869829912664003702592064029838934443417261341771528381001559145751015528987179541820374299652371968271455204965085934996233686184562813265208555377591512175232347385319055409306249120782093405719531726157233319975104656038389662878171776679651492608808695276160430909674407783589015299174789966881338606704525455895360249199904979933746884468921754823088556892090337029868504965437171423871685550801439904077739695292018032139488649961799289952140684622860390583208357682228687098135197770513977350516721935782677441178409227393383862298665053807435210196831422760525495246028485382295323078513062751729185626087131618401059056401273599580351121413104585531006988668362406226304832429432290400101160606461058962216495774183079371653167359102207871236176234484179492627342982451876540444851393533102186440406004018838384705756124168067684006231538263285691004112522219090228662270261170298972555578196794417617709885688420303180994067703279662146400670965219772262453368456510689437314911681473733392255553126674074614252094201095786396583117698748569324604432976584142767457712267206940074842504324234330944875249336648066972961891487293829387615293901973303936835777047789463992565651209339515935932147167628217099982941363753872864566773096176838179502072328271816805559903862234402371152275462995430383483615146175401260102076557282376347415687224029744650317414428764410353986128950567381174794841822181410119031555608901712426603900908937323612998769403159200616237107518155557117232870672930589154137922443461696080618636758223774061300963990934709222984988113546890428432722799016746498483731388200305178184525429693761420014017315545901941575504308416842673956127453077298252728922128078133070090427599687515642622924933722584753137760857566912323475222426728104774088159976438655194898085040467391977277632106476971908460605378189056801819490011900680235993789425021710467487578930997413865332442020640491965109854282543698770190601740478740624233074280327769726136372062463783664718278267896082022128558848542707563208861352127314283550606493230319116671572569732117081223229120641729150909552530008758053209205446758038229549960053520381182303636253205068036551666938954507720770484681136746593690748737906330739949817666083565098072606803678417675107009916954156526218218025857689346181893732564812181926174342167702001214748721760037186549333873753727641973304366774861764982982354605668456278946666230902635733917431311611395238122740282414897804752026759242271291207680113476853281773107012073746478227824043734741424920339737255885845814756100774585074505048059629435349406734040030921403181934232364275393026079472621851030441810745711573539222678367756589670612633905943750736662940808409280514126626737981210923015797917214545755023874114929344987663342674141635098647867796672325720357617963277868697087359009214509008302305447125210212316451075730110696502081392562993675947979879929378914894785210418532921625820009454648906660256756500537456940739886032977173348851405065804341062122729140667905227843135226752752241984589701040019778300573064763172482719209975125004967813824652343662552581390098851684889923154944613543732617903353599110204593179343098974951397689457831271327834335992613583712917939721466668783026487701799633907209541659755411148289074763163569924994416071446659169170236524830691291546722256331090310046358634320172935809487683213420721416227994780382464001829198143538114157583183640368970229775387067189954714174807893994620503773603690326762425103506744955289259622568166610826794987609585144713408796679202317028796610831978833962110740548191495968499973142742034592445280076841020605978812303148158559445557548149277344858791116998778173247429896888798285057210606223523555824853150563312018455743054532325010849352514005012534372484130718403627070130645810929997840497891322980563684929353574157248913623248923729529527605845790453453301912301321252194018864517410878826017180267580795962556271722886923742777019356204831206141550800777168108327481615920539550754225641126116276416600283238602211944343940808016926419829943506331730114953933938722967077335913361483380110915034579975637735416070338588347414523025974645521747910742560040745167419086630888975609183526843367496008853172883276353153779185089248671128668298103146891626705914808530104960705069641838663060219854579144583444189917604191052382907639092597064306639953818357806144850711140763038723889790069945866059763642957263122118998489132650837947264006967930402542743377781890940550068699541595297487769908858025216702818078069103493904680692265324785357241274609917471114199753366935608096767027338472957219154819934456833149337581626181034121276606601687291041756480144228576584778082704266579339926642036170158557383530185881761078580674452006609560992749732830745075960032238223878767760999366571799795419856771277360527308593448427454387626169595505855995480079267797531711780859898568811385639536951828155856796672050727207182045105539644405504928102023333407327851614481367061677264789393841754832287826262405921254250975423710332340602491607146072085003071006419698214343458868892116458371494786190959389636584806314680283470550149739981866845063231576061829654855360237661983560719757095083071371382597859865567437391744121486196476718836148498556667300890772702120840766652411892686209548161165350313070531680001058048501147576176841723479011969731041586586790577660610196161082432135278421595034451145224665883242761326085111464480147963510384509223502740209797795763532203091502855555289609901508476480211055377624919101273201633749807270750389199035482640464540328331144846533608976429952850394057100764166465224178832471650633723566891490673145447457421242894743657907555420323946204509845257765936715262352402828172527458913589585879394161152207643146208646405099360291508102447791357787604655364834179269461319075585978475871581368489218562712307265371806605507823279367025967852716371301117635770034642956393950644602670910301855510561234622305488522479300765721127926338825870944998976076282933081956180035614890050168652163786422065978746506991975550998773559841332368129355238278416061683162148277933784645368406973266597792973345112299344657864507119220754130951418585955764187552206678860169507590300472157007646842399537003211537747462477154475219299607901502286645104304596308202947392260729394493321627798085364706244372201393973315440307409056123220875906064609633473358532657413125525176666684181843594512391170041232117639504761195571361504184674779923817425272463742340640156508992679766901453491176346587278073298955062456116438161205833355322940809479325273760445066326016443026711359007873303143085338335569756075109847969769741155456429289450877125420839419263327413503158436807108054978169696981723860524296776352184379492350758145224201104879389577294763604471433844344601429377707245917505806117564924095528634233305173148039901839359083426162026564261120592530073822261416794745508159897589377714886409929827846097750205205931513570335078124525371207308670568637645889440326903387363002697967164188780358076810184129136887613017947720217291236460707058984198702247184041655574473237701221227182360656575438454821252228651421125030035641514977507409598703356526926562595891525776462400232497023990576155230906757197532428087995268569878638337357670280224735158542490083517954912773169513946277550011156379541832499095171061717448283706642272288526590629897352563934353514147108954529732675463818197411592533752618631793180660774429113868818098456059353505250755677485677032584322527647217603447356784124929592955062097172271298141325021757963344360143629596331725717341144180465845852773462433978812842911474365992312252905779519053291134386182664401500246963973900987764134953373817569720600338654815999905495783254239972890078354874858535799903079378912450208843688398917498021053159683351486649969772242285409075126275756150621863199759494831452590683552805219384522785079718154796894121643183692501820255064838116134715164123790592589696567542885503967290634268415314186678679667666715526290417519775076340723755531214058388942187268288257013911846054650003596043485474726697025759370743667012499073229323875046701244812092637214677584533397679737488425165065985772990998721039352927181899069625708069052584439852915236390873410371568021965900266378594408411067066290360345905014645447644681479299596987034791462710848536093916856764465172604901604106390468482106669806807743601721864048233833842663853227664788725783847701270096846085684510107099549377082740615601745487126946054899435243598006368714521380699941614937678531429717146865211480178082612851902499847693552394466788361903958566886981529218171433301966582206486027720748914193628364763128933267314411280100956123163531592336866234896819625909320363994780737425705852502212724682995107816682347659271467174993091773177364048177216418627336664661832508422518537252578765862587404166703657657749873890518884473521817521353918005523266543375911992847130005224704240572809071740370143689695035917605212089310694912451320840807367659594363528965443551235153806661308269558718935392125858504848100204284463624842421946989986048819423899678305246205556382810519940330533990596716824260270320619087779116137644352011527263813749613068518732175427439746390798263402314471050436608258193359847068963262151140029655554319482512039947801423810779331845339367947633554330114971747934966504934664003302861349824974905183451916748199926090558154869332356923593552941782244473699934920440328903050158342486434863087228784023013006557170282473600955848248622063938125583371527835661481902011794887994461289384740425833727716115163040061049078116563070186927722889622919525535645527173041524133507915251587170123984813564760058107902228633267920307106972008888719895309190963291263281098184732999195646447265965977661993925990987024299132407225840580351872490661493923588265646399872625302627322815947049955430841248058956923892631586307569342054085803644960500205964136983926514501080592036390090465548608698688271272690594913476823263381272826381249053788861179588519491160406958698438561192484623068223294297618096596949413321027042448510823975230122488233154433951264691361965933269953950729958900399217451260408277438463716899800365734020587276448919350979115750981483742468174243711369824990355135587698593553279133959455019186620640952277331546862386265252270377956417935262848593169221701091409424589622743471199056103295399041129137303587451262891204176029144903188666444006020812352620203230413350618552652610195018383517510484249693203378830790855919962847377260329731014899422693972854114461950606484859366807900667091697013401866939183458150849071260853622927800191354754001306711767626966594455581125556183692853429095511499428633828340979564167567745123198599462386989806499580327635106758884414722357131362628882826045664709904022649341452952614572635864421854941646430702115265601948628709601316820372731325683409590625398959440910442781679028015522407706399493207318881235263522284081482689749382280746608449201019590245212656291781141739755863563557536352094160092488845234780399254968080867459365015795163680222209108326741240024041257373901931570052351505225693697654930211038060456051785174458622390355146314171466625690324187809694334634580830064683047890408267372927922438299457597733366024754034877873237722020068206679443529565724222301652838381073786298860743343977298419991910199237892043266210618863976187181023773751840978117125489395983706835013724345264434226948346845235306834398937181615237995811086549499000082803208609113122657701147875998941122259124189936820064658093013183636716415202806999946537515075451245055173560401969445989492044971187313859182849286968654947368513068714770427783377318212403934217469555677047957568880255977193295593842979238720937291221317861190932666892317778991576047313131512530887267899050531637260925525930957785920622646610506942730430751580850525575081715693090788534886428100664307211070924549588310928306556999490554522680505366327226700458911403581900794531298506274178954889239186413811037742159219307042972996643498912679712889299323385160878755689580978963539147608994517902627831896965332035557250246986408583422523721443537316082297158459721077068554733748817432167392373304186533157565241699511146359903974189507806275746654408129788463535229864695256117002482367952078422525239009708946781821845173363369396018124087492369049409268417963944241483299507137399804713481700020187972261589390814399520699269872208267190275378994547539382211402562563744772964388156456437233936200289637581311152415534518378323588260582901519816082667482878524569734620895406997507990233114766521239717988492186503310692331393619807550048696807512290635002616601883618329183589999163982899142150495293788095705296713807478003975276844291263753751436056765188188324495674349462982133167193725392537627538105672747358649224886832704935546606634925019596093370094557579963452788069407500536611230072798515776480088655394564566111789258355785548472663627301943121562284481365048537642221991270165773786017371775983093708195315813701869194845511836966920576308003086235492397765458171057078408448707911074274684205382194916588572738017266405624603173579334427015293417031172754963911979882828298727777958468844943220978707919307392729071807874767420400617024730946085955776072866209915725847753853655082023491982297777178251429137429718476971508637958737076349266561344762920379754199014656678744744220765992743290854271648058968749579905981930947572976836509662161707916945636910167871599908185827769347855985695728092134453769771077673208626604465755031228350938436589246392825889826219209611339678401737189168610171937936088457759922612676791873336289513655068294363795649034912683024291214230459284733878231961744561194857602627470774946340003528505562639024379514188761246958570133781066222774692626690620955571864385917513172146149599962062807001694608805072525924732465411748279330278054645025002422376007293627266473682445460532138384477247239104732534951599091985145518970432043847104819810209895582014060257779187786415553980196476896923751477972128482908087518235367940003344017343085116425017621082268809715927895419463818197766562100012755116200848328729607282584930914696818765196030884786532854808272271075312946855166812238364638380859755265831769075013366102196235712551058131565888296168918695288972972654242327411937411096116382627376664452753220680229369784148315187060581344325150073156932606847161567972200554770092294532376619154496075312516521052639384838762344557336242859902424792529862108079278511695001290872129950491497983238454761746243201176315473106363602113197563959180727695382069202728910236475558223344283786637312563320901681099462593339525251300715385476492293063376209268849240310286709575293507206343121812229120823625572421359051843661086588405925712914376080826139929503564043484184870376998864921987081850197246687316985365771380956175687345910624479851599108558055721834400643082466422333664681113928638460435029302139791535849191711244995652369205675966855963486607924163185228097254100991053443819666613229798761757164444584624584834960877397049852697734463557087156874071877060402733262421755229870010202468880383146301461303312765999721363198638011436725333013497930727047812398840310059997486134808566927488684180929030454906708619678275280600261967157307873662540635512309150368257682427621031555030098641181006237563761541684254004052196896815198108858475737989112245126463913725903833427091385032416727991583158343414579313484254831040549603604039408149675589849137141551139589547769135242512631588954648083184491708827227166714786372063006521746549691308998125312506980881898968390813578092067889475115814775919813445061223837199005113205862552265456905128518075320527178507550954376572349971639334795694516805857247183715612669116681932371449430139096548817766395931380036697018755028076683458752207163667539698226683859371098189167827920423863667020170341059467850485649444637009838173662767938665651158486214946139489655343274646732912679051214120152332140404106601212785783228592167669562893073841177286250309325582012053445133873092725805052637243781963599346902527296468291567038212189886801778293964479234970747498005017120043581626944900566884205889827044583571152440158814441509877092212698608200614753391145813114866221242970846679409397548096070786820568419778904674414254026943027287830427203841466048289413331167029333239383512662921028416158702700681880705996116118653682236281311698920173834965962460349589447773410501976355059923002996893812709361279293341501918890576987101157017284534930318941681602948254980395921416514820934558264212235217324355762290708097450637269396028886427039061345860171101552022131864461688278771120481144082218389318154511190005890152619165955655236680168945277426123564686621407022478804608618371496546662428776751959414738193763021325563012048406340022362744800058310525952261692175414195759168007477465899718935476825511316193493453936760764342505196210598326617207498860316261924207689028316696431604440437149126224609354706996450244268868086311368556347862545806012811375790234234236626061655506751752034013690236730319932313258121673121900381601915253330169256682304208490225660420842979464174795348251985347022340315861295801059535321007569854058671473236257095412591398683234074755410963097460829793461828883735447814300197374832111703588844744358096312493233145747207995816815129120709640366198355823322844266997382658913344276109520916745942440357057728799718056869485824355437697131601678541898886145528817288632537341592733551517154939308991080119849760007193002903125952814534480428836751629648377364270499546265458258392215226771904461886877796936634981471076930651315673541891205957168658015061276379380700628897291382417882727319026036422213668792082264449134966285932531380058212529549856560960395368973348433606014360237472120652160203336884268934420932210571716234155384361956834653042438565240512423644902488735256551161990938434240958873944472889191566206376006559272310293280697358284638625924770265781759608775400958602127653573205137098625540149564049230028016107352620491368748290972257424634988847805597819539556043387845052618123809747758017910883924992876863073348987126038490779889746939902756028763296787439909907001729819136805462495128745403003799290252213177768794348469029351542882836608941610663095469356681911406366043074604312113656253685142162597604661366986003021045471465594476927094780770788751431828773846642121420587120145591787675002228059824938837592236743360059730496249683749047160113311051238667904464712479310872857028560447842100884759735776453037687261554443084551059334951505959626968270919700793932780256109472798110372902622646959803506763001063063031372736125157949658439593430139139274966399508827448544920664998948095373733127965276751618753496324263120433761458195400252646741098642152404297334731012836676667230329917394784945367036910322995590470506659006511788713893535914706122138862557157068650369550525476237034842583885428466248890357818195584128198373611119929937742857170841198670331325461623997839202122796914860316864191185218957846165931739162520178898688417652085863610690490892971165391895363356557631220200999873489339901759497165550702940353537646788542186109191831071494928771863314790375991786112471782259090299483597363063677611726657865974648907874569364389485713638390386683769144817003029521769933688120019766470704958734115525745305737179682139313696693940106722349914585235595605756594683220574899561106310804716126401139365131475410149564420288773034605616134396975090829729550189781520260379126767101620696376508476438895578635550481984045324855858594037897858801902636786782695181422203026695593619224128455294021574891802608555856310047612357506710662640123415708367259525554293451608008318392989278190817881750885503532232740117883106049972438904124380995503189855236680892391630603037954368675707351109462405442281991987572214080799864070062795331203857792210659621266744972707808918911130104526987596632364827589530896983643346717832636492437221527742183433797723023112138551300429840142134308740087975087407232057806291989725495333252977292287794200494303995985183389874978577294380266421745959540249289169371151215886393981121795371897989565940748833046566405268266121802332191703738343407025970248800697023905582651966418041065323180360445031832340789858785603691617928165720344474479060773753408322883622087670594643268766632631621039980222115508749775522345420360930823414603195834911086115332745165777059511920038084681116237930931429940726808016231615981656486046255463243051502189038342498208194124304353323952864505142586466348020704742041003196999594754095894729056390851952407089313632394309440517998441589274150896129054963121288000209581346915006353209173258105471607452412066056433220253312871148897925506502249027355046285177834136139313246436928485934889139043636468809634277415916067600429579398399390160029871737343884246922180256585452808626387462701375371447116632419387011738017752427496132971260703424524402993289647351846578669117007306326623717206053835694387806108294023261156680030445475860151876555268207276832385998773083347588241150242383569567024318678737212709013014852013064172082728762129195891187624433604650821246461775464476712593500213742585557385769791092816727290155330357790230831058391046009171237903998122233945064155302335559023609825239087232487549872306427004677552973170596024781576889501793294808792126413065195286631573854593977481251572080186168274806165048237376378956536335481680531818493827083544096874632210337667007131830122624524281220221060044323671329818719401845617875114456168817267929695292009502271229337700626620363460950397244062170943696693549472310710408390299994930543298959631758925359799540836468947919859205176357352129158798331919820926467655916057844786968272549363010488764190164964221743229308479285810109897819655837094655878838312299720197603845627768968112157449747845953295506507783500334997235654263369473985988766994258612152460723245712626342917531934311117349588108637126285990700652455873134168961422451848088940927405744641156061203727858624274465271722191539146803346704703465519559662024584301758205517457171869527367145727230581296328697808442020135531490483017501995927841473186433892494192289117820531572850773229948554386158516153969255935823293981847227591382993185061291981176423944695503805977938465340240627897710581816374487033213569513911653678724996588250257178262637346566871992310511197247522503581133271645571331979419713591641037301292600638578269511102446494743307404954787389013746238106126266326611347516646349995103972713488680344097892919509763720574806318274830760033911389977712566456013635968470706004559387195386091546019733413720709101451903001734704041430266984278911116138675241652276422857644063439630326583092161917562570749132521620539104913139073860988684062843286852970471397971583076417881733519138157945052072953187786894159884208987680327998264308498969476979970176938382557951950916509948052500830576532658344998692617870823299210934117911024630979036163946022240181780597535634743661680662609112654708061871207004274531818802851421309450446087845534358488041344970097822210401464142035822022881009015523689016373764007658582452617933091050599030021237003935825733542512619352530291879863035856632745107948845732426175535699309123634594106056828125574404001260132337849626446910791548189657454316077277476415556253261322615979119875073171491682706306129262806713080963010563377314876108661240116101426696995768920580759224338495384736582599728891969734706364418043069758945490530378570177293664415443600234410890885688709354218287344442366450414997006203510819593543173166766118836979082756648219683129574939245714588673810193372837936056563449151746718878630616476371407128952915793118379385629807835909546482436261864027171519756786767289714548535542991029618785510169193745644972161989726959985286799037287306280786235516088307211278043333693098764873579966088182449839769090416171205844970497030483121886255863494723057495081071203671067665249992157077437889750825185592719178641363410548628975754105909099247411580116075759530247685499762918056813902196670818800223490066627019997968037843933415945261197736877072405630485187280959516796204288169142664585023288275358095183790730638023208319013761314990033463509016264889075432008509860311892790702923274446395706275877437760691222288695614777996725427225468950447255092337338993998579387742990718162867554720921539472238665854234525463596643922098713888098682809396820600074039667291019420898258302613061765017643741824735295990150198857942887327175812453208086810562517181294372203889322141566629700360432167010710014466109447295950639375904606850525158269448876855718029933969223785291005679367699514811076054134672850469656018575614406442221500288551109831246313706767607549614092835263580110325464844717273423986429161568783383680021551976872796958130319065211619406266295410590103563648878942913874425468115708241351205060480330925245932215031640423068200445051078609982599630419621452385949498094587420131419020555700475312747454803331823596345033388970039702906795438670024214595933857222326650621905377345951294264739621201836584720715011277791357753818196015393996361723667957328378980851343904443522993992001921742203350043756143709678046069525587534356731055188914457620346597899964368719440081780414248152581704400986353365060951282758056516960153343226631282023292294466447090323187326840391060029052930562774078850517213829624049247499870593643074900236226463022006635473579211406579545469321633558380535146056543838673033448025649634376793614724413563290339266270541220613170342725248407272958981599290278418392802308634025406416479838359313928723190596255569844778150609093758211163156850093802695215131626006090233715658371589993230691175860253515747805228832570232674019979496922026088195221023672525677114520291475213380713233169274166855966752643750888708277469986137046593499864165118286204769667698969290577262026383793296093681847086142897753051613252206096393244163455350731479562680190751347517156177571566417574936452520230410811438399437924267292473932708182565535765666548957464002645397901037391698781171665925082329489808306411511885167008497999630992241868864926466802969000889637967013302441493585733087550420649959421559770052872658799100450547572562400262796644943629648717373314855139430135238984033511789749645212944964716356459379272253128771673992638194607509249923449953024386945522985332721219614207755186796760060257386751007508298425809288933388815751199198392148810641791464471033905620807018263228759774130809778660668696204854662342009785117318813101380532015040577985548852765715944300811637967796514639980495266823704474997041713202272762783559103356145444456431722717676386910303658525857660080636303629305535858394792457988317944331186852612268282214946386514648559592148473492904451655020470699160175912150245789976875790102938588931554042344143807631515697042872867551788889184466518504433153777852257007088311782461977313779332818881446619829218626018421920217323428823758012203687468632017386310048093612326376466505886678158670032024020282735782358837298196487300643605267810397011966909807982120263503513390570177396269849214278522248476010009400343444962580931552484861910087755981762470335667652411675607329985459758006727394788715521240932658670004748907062870675699973196494979567455101594804030560283286232265940355397427794057211209647158580762960694980138731527559067911017299063370043330704322258684812516701381323405264267377685640478040682759421754690180457453796206024783688766251411021133817990824748005736738951204360116866474567587205586620132531577381834160294156366703337832000276504456394932774238779499635947291571056951313458605819697306519311945190543175056104675356944460067048254010411688214602069272373203063324528349127292835406962211295761416416192099687442295651781385623325646519368694441427813871078747063327722077780609743787713714640599492723129088914705431180336254861129112917450038269185098951821836101856260739897746208658417470958232149434211322591376662658432540172001854906299984716540309612413736534412221299289175833584112173900399125353461128664348555862650283966879709697053980604857545103292882013454221802920759737849265403049325088955998363785190418624931912888307450064927437896430012004609279646912701538067804779825517570788822732160043343658379955953672205748026676176036366287837156884456238924406129134183115666506158874498071654168452071318335005444106299936097786544924070149545530284276006396904896495308026182630554334567961590168534477373904156040276174260013447800973466745040148275679051289381988225762903589987743737722868063963872991714847172430770424307059185472456528879607928608835793617160206571693429136814362658135117498854194444824340313654541919196695331522770159372545266893737379307965398019887830646799707053826870894542550807891184185843559526947327354630687711817492839510380174054031328432866143655483268199494900668956735709912426740295900759504086411273937167180097275250805796977667048788626772937289524382150110274118000882052026519633723772299752149728439698377990052201693392427767100595512806082634885453635558784583472522107954400548965328425018374069941316112458729986742469866913430014052273863288223930315159211468668848810584934872803915548422894227929889830191392174843515654078239840333151557159248214742681735345953660045991620195211076966431449019551501354014152307403620246753547104191840085961019822532794003904996662851603517993899356180262451081926523747866765550197148381423929295884182423650131638146781078755315066710335292594068339620904789929723019925835518715555026559801351315698110168297827484728530117259333455781925582782661756594506442638628967479465271628125298963277176656845618591001195691025922494586351511845234634715489430180177051668094512083511038688717712392042494432907885577272093871842509459176735603954265880616605442508753425883274635481960557916225721203503677774656902095381536832629510003523836972400760979079977928376998164891899256043419219754629172829838513505064169202981036208190733757033074412400175991587689191428080069201833466879812519851410749757729747166426319767863212181861151962667588952079475667720721911801912501900894701524572240623615023132481918191836246790121282105199024701357473009668517929967627510531054026114722665475039627825085719429721926548932572478586459003677779966593716863610515262968028309778040228392550301860560425928039737148393111149193672939698357952036725429672324187854490891398668917583912055154520257832548897359122165851852164435885928120253742068385366380527890747627225217892351647532869874857395851676119464582105343436903212211456515182909838723859841831079327904381216818562339965403177229341283833756704802417890691786449606902888116733032825147256650047433539511359422570759039750293901358542775888062866771272267398893829647832388755158926280799875505942485781096612014078724208736831840391943509497254724999723962958533150730266164434626487215816522626706166715707055677727112845187740507319532969912231167846634724210379703830704887578049191954728104565090104349102588640945511084150387909172386248688393865694649838981985262957103201530842804428804608810605316957814827780644016665270886398776750459661961842418936753742454194064950466683769559576421832951205659344599986516072520735797030455436857248778868467696088427697979675935902572403691257677859509799912041559499824917763016050176629012049910692254995497123560710681007160401330077302333143426499633317314218795160924867428028032143164253791241764774580927714554528837420774491272101048393703919111306184036926065742234585356588494226155518529542204980967209487457799003249376525534065449237126135035368235329419152519545817437820835714265966256310293497146911813987404258211687753600170388127310883622213033195022000857784579721903560178758123566480139453591992323128607863046171411430134745340240952078119542844170106212525189822769792994971975406905825465066972774610502837004693885508806134965382514506368589487993877105386800734167804060610143708447314702172145091479368621341694664018672524745603337819237439746340400218186041455595698483743331746106703399078235899869503771255234064198044998689585737444119908176216758557781341670693085272685921522006742442149833447544898527910192624520714981983220545607094579285273152801194224426959317600453196845821150843438435184756812339986385396152170542558820539767055603029166259969913432056541689991346318200610018208008129103878698880151906406524080593635923608433228733020435114601077801199777731845605482245013256491924777568120632077977391369289164416258994607406558137717077506396016712802582614766830977873033795801946928163093095338236682232217618308991384607573330375577561768360704882500608585436539459303922361075856883712289867209552215989118704749966687745467140791748584649273496455843151183573539699688444022656446326834929339215836535014326356046544096674969939285080242805557485363720364867776738443561956789779111441460162545127904889889502795669777966683118148231830336030612357358187126508902786135035957812212688072226996058248039412189487225376476081219624017296227199148350154820406631752448250227397671628100795335516792048678629530738912653892085999666549669538779216494816365096839602906641629191457224141550861922266988680852261626471556975304824372405316345397690650128750880117180227846413503857096261793790933100653959391846995561123049884346537428029987317864789864341650660922329530300626341853515688746509878708660778424858680939185825956344185059586818863378100741908375822995317982436894238878917632618937574056590197273140699815232938449600479802579158990151556540603609921796103485676054871424817691037278568033440502971892310959658640617701347325341883166047602047514089290649057457944217606350302986460222314836765878468348915494713424325347879775401696699793897227556990596515718383973680033266718966060828607107960045211333231879976791120787867103173471753475356442308609603867209303172885492578949312667016411928220305121078116677378577257626208273692400608171818111618755817466362682181638980674395352214219678453927856475012488657260967527686812286473186400754542016916959905733860863132454167365484016070352746462529853861265135152254698174463354203728839748781064087353239602329504656715525035706514984510442231686960800753477461411317386007505387150514238879039655825052751212041608431359976993658427662583712046631760021207531836051183343200310517616182867072727484021206963345518215957048904843322157413424422708850706648243015052157541131635539505893379857403422599444465039674443474227785068246307529907131507168451700246787090831827633286456856558019874701537141826621507591532118843820064860114920806357196100685525156361208221336721560368109941316450145760155791856929893784653160447705302141210526078335697850735501735890363548831286543763759472328243604221890050167663782531704815603402354662803541781067996555729170681891455224479973277676133590770881121555918913769849717900089759087751769046957187478451481288566651126148373429273109713250418030886814727515612468463279825353815665655687926477411350448052203887739318015963795826039741921338563753623973758862226713971250696675110241858248707264882175705608323072404200455570302237152271638093059381078972857852141815587676587886167554717511316341612976764425341503885226697561962213517661090380252738744371289690071576544124117497334729979747515010884198049184135556161428560754313152275106666266771231656619611478496141377940268642507594824054656006643008988257119357058932944364997428633213869927305507844432796799206480500484147702404614490207308923762286752656610832277583905015856387322648044431636509723793758497974779111409097971161876560177680306591516312055374782562476832793756128677418898862900193776497012614696827953914536640703242037527119445712211033658718052589615629028835135293248739991666268591609641140588676554353370051474629158456904110907422494079041599066986234488892477912353677524610956786803349283751151906196386494659733361174398605376441220982533889408808350263664397997479076267622008397157290557329940081777370217251348849317870373552628341776071969001743992580418417225433690167103609036291460082107035297302065898859822819084545823075436838195307148932515539200714115132096194959673230848311723282605984882785718657323068489482928464229848960634392579025998347895564700974927803232573310294905083821211869780007985799683277943413156439240561374803258318761150272947967427423747547820314447143456000791119850327748787483159759594609702140816638683346212522445375695709572934483882728306846626498469908637427333802031799503862690890614051976195356514174136643102644597923195759390439276860572588445270712499609929165439749815452634495971151225937978293185951416881333592554586831111533871294289643841235058076115964946250816241917850404744989391947293234370834678675943106565419579924045343253010779655623275844851343622386502104183591732953402919940996169102627073373659099185443414541049554758413499429004265433757665051628764085097149852640722672516263602675403948684641245494545231722161866820570642933836592907656218387769521941307701310662479972895235165677055125638091538685383668870941838416027573038780552977601260245773278781041115745240197032884795909673614266229871750972038955650502572534902659837659358098421699453120980119861525734142283758402891980686278748756873460618072809638261306846333471444257847601650397364868918611649376742974965494931440935782971490680133504300145010068628695990525069481336676816357571332567261097901257235772420897296081301449085717358627882058098950474387837463093048699910033679509611217912743898563187063854059968374420881624629450493580537954677666440958334404353845086033419051596709536007731660366449578914406392267906013068955902049564488433060284775721469547635673972074274750761207145909424325296173926576065618521799659323576012716721412224290185421881272793259441298341279411453276527982717488949064165107304619085092568456774401886678297547222828123592991172303587986409441594807832388291583922878067142654752982774260675648943893044657408700617128006499543180304577825208708593506257370096565599571758822212584806225123298832076614400600287604453437954367410623602171643813047238215007288831052646611115246147703571823883139072223839973187466867967898747080032778290064364906314879057003081292196055626171088534048943385754177074045177776749564827363769403912263081954157397451267558364244765972035562054346854108788201810715189668041228702014666306625307431188961282260947472226780162927209584282422027257718374976048235124335155233477965703511763419453849012023275127710715044165391608993691227881995329632836017179229365951325340867749463210264774736659419293141916225174691214322486096408690118826079354954554964108432628586495905130296948320605890311074381230238097206157629912289355038977559494436069073069546311658093868643098364674054022577332178612720361238941179441890834202002621855686196189025041250035150957159254154710537774561025125302201271268401301358862394128249813932654905658513933270938122375040709202548727910872813492509678973185563409920854261682465412947158165797620463078966735781993347884018809278177673859428357758243102255912496981619084807999179813436987096400911835846985628869815320632808008334039782641148181552905790706794483629828762561632839375856331751934817497957160811730788116777930124846694050354726709199752222960398840189423065559308181556961245612336345228557244734728868508380354670211587159164909961736569925839710436286309076073829428026023951819658542003414273515885847051986686595023128942202976270452530119757539190319753464332237633622251168881336008785218878786780053447046553941661701228055656472758371256621587784243485453551843743961155294763519194518941416163528609689616295493271654409230294770543989844929548289465191902322086846111535103622009597958986576257715629016813022173219809184135024635181740516154233733758197671595817930068506657974215724743775273940442828031672992705428779724479304214028582364769217750073839796599635321645580852687792882820742679764591748962871315574185819423282598719464561966133890755318884853846821540654751304374115287865762221079879201935780494668965710943936716737605364490161545254086451368958806655777711036987658212334219816144354983430199548951481931189360426098333495604345005979795675987404044787121391129440780702455883391691131226425997413724410262862685650210580252881759832365759688808205314834328205775361770822414940376612975248713119624467397019694364287523583911476737122670322511667493605020853674555350949590971227921178392577778194830312818333715956895957809856169598788758677675565133707356070701956777222243979413006931618639192517127394867258347035233437413918221698764975865292123675326794526057515941865349644493312748801513072424327289552972098714673951350215678165563288436257878625223248325387311732055498592452233378194779852564110511586761735503246214555875971472843605290313160646902420173205552476899565172239822606430403460188586786799030656753984551908319035701952852932453557148924780131508102593310377259713176066103648059737756245085777333733371299014251948540794820611925042003069298479700460877818688638405030633904635585733008740642307342240397728170940282397625746145284264440999781850469203647358513573249682037218616244103259609253077755186134182348454660450216258940826232247790586681351634402274435816799598745515488935662023926944811521101409404185448571900861041823889957356573398496873187380758029332730772751167731668437402836604725535406147038299446460102918132253577072842652759153870875641398426215023310379622394536899365046587659307192978325907840463087378704852752801454601051033576678398872190953576810611297038902682421859466087875646722216551683614678360796185023125725295868239887346053003573042474151177741182098302840269326962581345131696332307975718949004633449908168179234124638143138449445333994614897014571169171344799980806738508052575397154914229765040574525794671063814877471564520708005077512740527631066449263719216392322976122552790421613742557812259027254448268017990119797167888345249671110452045927163999352613146965466354262372350680450091825571500791818313310086523006423123498085006771487746357136018746207836407737268224414837421290819096265733831337926245075108021486053315271036121603704629315041532946161397660011421253305473939394267488993609873850043250652673986911750261267377572523511509839721479466742862392376090908582443857953586364621769888307795861516099847166502566423024367937000958886345730750131700458572766471404155795768784419395258745926416725094107282506893867959378742288622019149186320438898374043633176932257661806358995907984539656140977127076229091432969676907618838359187916909296103683080581601632264820046255243974545583630053720989896170746023944945922892983061196661288086954759081226642028410054288310410392206759569494053950405747745175704568611188942565503710465305449541788358250898859710210922966827497380554021151117311557805077217301560273781838395189589261483921173714718415581463963178995819479476888291011083453265867098181329968871328719770783163522055034863551902193849639064995908529305411933899038968607935442967625493323623931218959757036058065184837845444291049907696305078323279006591864812201259215422180998515222791673194354945732461439114497692806066879575869702306623959134332755485148672243464442928439492438401778716951940107889390109921796134311108318028741844860339771798705514673378317833926792895174915877076431593979978966708920198456105660500140535351182279403668652397147183337338780795753786466511166592612044399357764543846037840446389106651086987316501663259249432844124532910006649761124597136715994424291974610181547207791113455615618510688609866640967650141693176005415004355617436219322194999575362347339268916473367238548295178634353279250938607889718639273105061102003082660796215851618582177460396208379289726535971461841117170986028765456514829742331754050071954690211555253013482274647835240880791900646829710111235648209451259632985768828916297318108897597639773709364386327880549386545393003610597987438574390601272515612518127910898817879529790024828688396562415543186844856352982858637469318473714434057134651519949129894188360077566330492197584248372344035315127593749777368439406914571121092467213471942088533011674417971906942302908521517649967249688023847940689033621629604679264292544406073569890370022546955516428007856853536950110956965531888639559186776515680668072045898586619820376885653838080821677722419972722823619945136582462203760700735386612711641260586829738601267153582597693499920926828585618383284427092410807697063241714973209790487405776907284797943310174546989829025396452786286392173233780495287523269818706797683780047171520996082629466381409724444482325860214830794923181957145846075113174040139846386835541524729213453827577004229859091216789854264201486296766141292745815290400723251055147928574104647457961629602484724671645903357833138058291283366140895806517191036192538965659754902668806934842701636111333545420922483886184730798676212313239716353883823078490521603640125866707440210674653007699347797133230038929836755230280474853625751230883637680234694618411736201134566295729160025438766804645723135480706707720045163784318846950603885539926052609740050165804967517044895881048220557677067292815196218882639972331229288759454911910273343351839117178387071219875239144175988637386337491959827142055168244570589450518436443319330412492838457030706496477075577353289318337850883661519948578866750255086364961890235353247183828820754337018665906005338444639363747296086991832520876421684448625759228198625113389687552383806945355554673305690762409332027232187017786017911442839998760489485375427896552823452376590799219076016389707362593469492831430772410295198429563366630126517314329874315167516503062193315662484561395326553018815739320355343532082509184705142140566353348871656484567125331918391321507587299544969438387784469415413857219525440935335899343861316653983083044678314099240924315257860761469503088230429377098660411858610400231409890362787224747599991644611514658947339204780782252096966042454864752945740503146104189698243521313311918675331754806791770013970386360400222625021407266871309899417565802879283614076641063303308238096455097894263413674187082497083661267252907310240530462300457997883921117171648893646011169753491743261966625812676951552349379603059329946138933604395364243144078578156721716208469608297703881980376385461172787387438366726382938579092978593635753709328067677605630398953713829931742948383718412540187440240605999943668256276437082172526076697713621445749651425352010655272059734732549224028795623642758945615235682341569620033369395300776817056747526192816554449263244778906522305892070818617177629404175316918017446138528140608987943210165759189752399760153148612291074932467703204404562485799715463990893636411132090103797251153776760691728797060118349086604453135497725990186914772910887682820036604676030588594591425752043228768401328190236303735989221655876766980859158107294953453919833729473751298155876269837245052742719925625597776752370130830056926680177234088263200324587599632477304680910810644717867221296797850102387371568249462292999758012360598479856485115745263191108696747624210429593617552901524012679238031024733034827495760113375323884667774684751423302658328823909347205219747806831147562155634083899782263461894917807456284116199895137496938949374225778281884163502029585556383006323471388159225678372478101010548328291206751933905151791496151603373472540699446063932035898750013846474132149739078989362324343901453422777726328691041462104934573340709685429697085758743248926480693772730881541907154986369119946779396717004798554452515786615692873338862682445560973236633027073652073597697106463202847286297253310618109849951568178254032828140717981465030202476089913314304397464843076877848680511216880052748810982991801262210028474689155418095786651423505814242012327056857431838934101109222764944590876314869291841839598195760381729322911723725627966234066546006019102749840156055536268151737821950537301672781121005507773609604968478625500151654040594386451081907388211826389218994921781910657942467467361615383357211728994618412389255013797915548814252669639562626267957339113830230972005925234404166605226054035149757177862571514031314643364255094119310233517063729423250396280728526613946643479247190147751514489806744954908406408462172851238594293598889394645615797308659628277116478635983881419401311467173594200413471594266902550035898749897660960656872366896226873635645843950322053193265022338441931467649521306601179126441183736048135625724753849803059637985164972653487095136495297534097166486960969184663835672230431177150882726018569319727367185057334668094985329220015367287655657234708345932990492007276069880203198376736277241055775471920964016767033660214352689559369724113952971234373016695587194833650752922796022938889285521112774521955433498499007932106776244064215489190933804855082002935129612363650273331067671151422347979812310198459002505856315329227438961426586119957685577547738707352813382091474011965085162462610622389704481481034092191388260953369008450606031367805897461314969777657816202029653986901776044021169989445246267072325747711176362439692548168934315886229837118703632386352324579238317020642018475231121051697677796730032683719828217525740724768628123773851100518508096242328254498283439927353669255844305667620300833853510799020265737939949487105989789312493650066591628964025162088481669776326154431790520907164524467862859592466576964462452115897061753399748223619746587339803876803397553265969664211649368915885136403627042525675479822624519114955022884032755060150711185961847541946829774445752097633925610520158395842433596633458958694727316504363950413568082404178039386612205759628175230853306414114713864359560214740460578747376438175729322514579763758536440209315284478975819581444866689316991132177004696820524137716063147133367285985432886371000842454048793360851100085193409165039111586482716396875665472834198957485366221814488999254914376922775833084990006549694326481768045364178608861819819501494270279735498465696593704178592196303478299760641764511226393051267828703925564097553566405912378237888833165524599478392294197154117072794816490816367446045197305354118602155628952873761606774871229970315759999582564006611629420077639348723454689560487642284636993949793253337722489304785706857322122466274585938422868695639027865395290060772442490273429574277426807002398995079088643151305105052569819170984268775385753783859939660236027380220238245316248086389272390281921613317659877950313365815612467540961774296385988487111284691128429348568797607405057604985140713429613276403586102529774297485627258304994695417073429999266539112142382492355217527197297338896695649044845007446426995991390227297464045444120184981727251587646366114103798412515884191764815449303847890537177197785531882469183405248978174100458396862501061667553896349538780609524079018196891190082978851309574056754572803632039695136619697935145958285673777757023606875730366372726261652746044768454947049343271125402732818799362009967901203350663002711330914124466723861761852594961609613849892873509094477743674231685311613334728125649059545827483479539150748204596315707433141667108841070931989212698789253003519251050124986448896606396730479614888087252752035019947688342166556228600758291468128700269435099757044406960596329907436564774700315591912477938970289276189454536889508465068325624272408222292020483115121599378472865611719197820902915456329098443296272070569312389760892529731962202152109212537991195232795293628566130419406384507627858193895525289221774005092483198097555975493715527371570380279185735215350719816529908838844256197530877177293334585847700923147357103793846029099127482677000232876106994423314168458860566188780710788922738925534498852733127896818296171130850731144724384640193530831258956412122853548722033245039630890536488433580992251702216996044645896611182157116685301545935603312067956421458748088522327332992708945412685925921161406897382914396195311098969414586279168597806248030565174733150396715603621938605651378702762308254716051439920663529065649835224751662711281477185476348581570183923091038146653831034906306315202016136029975243435995972661765198326080326802054266575296683209287762465049904903372643383524410821249216829316207402047832785294634271864463178609378776130700798834118808117401224700847582214350582305006171983299553608333248562212729823286642071283103590039323467174571242509919826701216624528001200766239864187678166350111683377561014521911346365996800222482110251065702659569683715176495738402508507183416204234876748647032521577649135039550897256053241752911962967969309954215689511024923599478195727731155532479367010299341990624448626551744996611639068924234660857487773418663248172292534962486334178454424310433010523801922050602759888399537889834244489151749527088552674100280329923054363180825726668780042645499234635752453189908213781019450955563373596622774052453031497093518544805988372458271099248663281835272703880149079569245136062621375197935802957769422155498139816708598297186606818639195957186302107428030229507021334584527723108734752204890101375927540782553998533420049455104233297066830787997627344828447410505388524024493879793294703039409035739369464465831040263829587439502557663070308795172047543167921300431374780910588348749821852886438339625650520551567013267132146252212441739650385209996344628544949864825638016050194919763684598367529426075970546930258681604191129199643457185552686839208844769902758139004419591224706901380689345134993953429191052198737973285555014953102988768953864444940494957107722448400869259524884689908255545874781811201685806269315245465265855859255344537174970666762093625375387910574712833846695876894108236681482718569767089513443247531567678649666465186845786841860449209344881866516375023299576392718775240800688079354116919059567625419449946618376134055108070124646437639874031258471476062337793422860576151916175366321420831391499594482059040618923280017871448468535214520993947236521588230849835608950940717965572773268738779489089975103856131093002675767943198033909102109688569790031883447296252966155292057924346052582425579819915917557960165958829321384855343400358025699432951693955354744236327215815306724393071946237082842962158333492712227164595228232170547747919229881891681642088399998555076238416635090506066634156537411675425206733430275604467121821950222425992193216631410495742173006339481590771252191874128033024905126925436249190749592676778127463261797206508856731256459836254720206542689317138254041618662980244955082626393268218097217893114978481389490989311416778885225111346641839041068862578070546083135562232886517570416788102772568837522222389622836081039867508916015858508466407311961745355858341119915691039175444379842595180291255131046658293651423177752996857348292074904745428309212600996890839008018799707650336832101323022659604834072877306510174296391953046491069657157200946152189500542102939119665171344066760682819026319885440158676865486386376249184382253365220479652929789647190045551140172443743546840108880527109935667221693713472636647348545331718161888455990882974769901981166964823756934922488419945058680408693945242211159087494265702423728410759370036112935786642780851505010728661031538390111850377187518417409276255430176396611163035494918678830206434481611756573983216302073534503097423883604758281394964148091726349054433679827151760814037124887270921579896630971092773008739623716079552503473716745321342178961891466543070568678770557497809599650721760037163706559275655655422796857277043635006930803964685647289053092640378460355756229992260495906257465896141160510820568931644864254586478131729458370057936586530988984925012048439801843133845009787051906640592686816701461545069511783299511507092345823096316293281039998106248376165381210865756635956520157092445788970444162269637852991093176707996558561702807962617324882999564607973966953670353719501948196955342981597189035574667267774973109103501612437219272491482548830991029073643659959586170302654833998976711269382036454549566766494927824356459749003968543715683795338995842352933222252320150759295457047988067823205105028132275948674420960162579331216581130195327561850996174009405146852576910008954498502795915321848671138716643179579168663431992918439052022202662100446896795924515591581311216194435055287141389724173823101594893048897832641895033995893751378473042665262617497101967572831676443460048729655782400964865324535772355409835209819311331821745730025827586321575159836346766619100523692629111815749174493698725566398512307271186488822622418813986811706993606006523738924349808491484879974282307808974259071712425531056197831166125138451342143904140585576143907072473173745680565210116889940574470354574310405670680757586812329550849794777781102250850016408663525706481596229071943829216177373121059598479033248696839781998439290383412456819135017389915812665681600120119556862937890662016295218840046956435778381183387234244000476898810551860386718338785703904937275908490331252110195766176492462505404488542916742882841982961690966153518032494722080141782879229233473533061909099110615760133369778684859513824185559328292554063592137532482311040379121845019389225752081377039629998817131169782939321124913772496970447258440929132242028575202350001993780873097970053899703383997790543147591704361600349526306705778898661218427862241139745093215278283276309276067221095041801822154874932346733998402029943731083076385843583104116942389579769325748025361437120253862865229430232977560504680681267933579598163034215565378480128505310014191121603260858631313436733642540457996673837914651205722470027925058605088497192004893946752222112536996213269255064748620610084591814840706248240217878262422309025873028559821809099431263120985543065120452991870846643667536983757523637945214163922338740001796016509474069413574116347517096664504608192225682633614646018346283989490126584043072603265046406461658839152105264474188032215463502111407461736417630177730484176960866699497969962076745961962127250059979699378963661135653180436941429032384476909348410919409354140529069462619733854945247086334143105758737396100670392668298418408941235042292424304477427174978313434731831780034950935620287681285725844078692557567499791248874874060133351738236389922984969541795572079702102186762164085254931420744111780631123080355311703483821601134286815836342575422808680575853789615460717168839305698289058715825439053990200268888684786385219268100074143992783148707260505297303351836372321218215149066643976356530591015866568051001951692183977211741112373392242613045251155658470289237243493483974841707043105205971324369424751046359274687237862394468693912593982940294134715261882420779342817746435886607479759922562163526144551567492497979867191925249266796683345445421442764500699761766347332968240554511114909106822135242017290832237663934805456820730092350098623697786098923189106628744609472506908778355398521504003196585506463745568287217127099796996261034772673372292556816253273360363964152331763583219732289368407983386793249308644470008245822787427308356093540313297878669987341424250141497140600050991681947788052071719204406098263682799273791628936538504705828298144159567438479767933348583291259317224587130236485589833367737820318183136537662059109337856534283343492407851382666245225497006606893656638188417987884487261245675289799970988666898578731691879606413231588968003291853366118612586099653843709781213455437373176054612985031527558133693476496414209640742377597098316422218350062088468759273321535134059323904534057563769049077448033405229173437605441853075197916922225966824831309784855713902100210959557171175961076161294178598694292861830863712814384380897799713313564073631361039553845364453521174326863349862886273465078322699603767123937657073305355676094103867848497200519610297500629824850572706599831915838147785450549505187328361853149634246953387585869011744819861244989622832472315890871815080067383968247195101930612338690831101793387587825176876147148847672764464671642156947190909812315583078873800762091405659577492469158907102298355701551064314951329472720143861339190518138823454927399727390458449119857289412972887051702832522742298257567419833056518034513488116029159008887074038597668471201144511222608928332488114554328196480419596292490270500331057433352487056815868617713937317710587182432158260448343232904369903011270378145930575226584261552085513596851819885872134511905660695282868803266587197635560652516469119949973536618863367933290464788520598436549347187297366735159661464351499249865843298112208998356064769032665556158883001274428661081997123550171837031081072412385632673881201940311244039789609305673596973371905744547032273835183203765997823143452834022089585922237552550907682441181112515870036325824587344505790515847047628186312699979966478653014362722257892205031912715995490943577939820513188266348745883247070670795214317657254692824213807548018015124164257415232318104695666929901741108434032300604128352010150010204938295751826827980455275130647913937508287858732837615933858290464510851456826599875258362300178559379284240352327280481019851337301316192936937781944701396728194521259827561853659561801114077759029376122647583372368193434807647835439976220916646457159593640487385916727624776535905572824178232067895289459773647333443167871979522131118043578541774886051454441780956648520703380903700637431635168814322831295705996874110138690027071188948666507592350854707043255200288697864367189697682870397966098692381860238079875224659762527618403329234353823857852986830479403296747419549662813519390915903538007898893307298483518312242918511235899726497160129604457196990611074489163703523460722513327460130291050802285012070152254431565348942382476767617547088483003821756175234722742722782423764098076183068286936960221920899805719058844328801571031007336495160163493936737473469216701083156280990157224879080308232015173798571942251852550026173053963245878867870882303241250809841787251098091562401805503563447527036254171204627591745359014258562618397054981762427418370782787421898731041135943549641364026398540018356186484497921176505383265553743168442176952311665646356486284427005271578267966234556760870410094675492175835662386657185642062913212311438312164538191044336267033264282460246271608446233315398944444359064470674486262094559787749821314122827511921131773134916274344411310781067699302400778742364656652016171648028578691486280673130156925354725960630696919701107351301558115987189059069583639456740033443146889967147864542155474960525522637842804217658336454393866476972118184740249185534075547419561404997756802171190975458844897216248407412502703926593446286942594266097601793350923697759592917163399626844448737437562619992377923219173443864915968860219692343293744732484412631111299942139999308427912920135828564061108054287067372275576418177572592316114618018987486637928708352672161341853079465845151074156118462978666024409144046032337498408566556246803680203529716071239474215850016464525750845988981364231975611583322802787170099662238751824313544286072816232552411396220509378484699816573607988746337768500417004862753973679905800013487437847913972382256864003223908084989171605715437431117028986946636701041398638349276253572289761209160210985180549857357294166708314054193583928802764375011526412447444889511719050865266941358007488686128503029344501842290714107683377510930904236509032198081880849545058958783846313355864145043950263631274817802157433868388455984630845615338648020509183907631384842008795024280320782854539454060242979183045182732566349862212257603294890241498775624643920118742264090660448416127050517992941179861430457137517385629990435745729706747636165572750073447974105935341364159448528215006828657942397390309952018528200115568233477577184504248945235707683397974151677863339221018299347234282530263947228325681892303186655709005952718500924090971371118222145628913904778990130271743349732967356286022633896768168371036571592801041502747463082160865586041700019971058635169331385542659964181221189021557482770655466885324428945624476666854947174394704136584017179171927145666427307046912527643254368675910141372872865959024543376771693984673312073061868087622265253085571654075578064008544700363486878294406526535855086806142367476914176983974882245228587620415570584425158764603533165544705204413758515373640098424962256928873505782742990508443695040739056279379041103621769419919282788349099608481340332627737735248526835147611159694275967472939857014598681805853552941737361662733860079030508209638303524512163328568791484469571861363933788708535574451454859244572003439239789128978681773540592341971505043256294101535806517977034541272960315844648769314167602154173837116321272919788000190228239487010561799721260450163120930047596395409904813646895504232800102780742969654524696830676290059229689764854446073285690421071533083214367799684412790180704411807812401597675416081639022290133176702705274833962518896477079268796863775237337933449269444149383006575038422760738198748124050130250446257240429425065619516393402620105213173716388395283641455005804354991489147440266980850586548765270790705031344870367167486378185097941896881892171410441032850440946979028960158614404084912536323170987861714958134053351634088030231333946295075011050226863714625386510397320460219079631741679320293008860049355683351843176473647144327417303603246126461548952938715195427360625189910183383643852798627339290278695396916513803288871195370318439864439137655370908213825934098481100868227242904747331382367227698079397995447682292180573811489811114064637883829206088523031575920434586928619453087028649924478230246509175713669627636706876546180728538512280370938590962377907674650427630440438036808286157121740759962679674715658493070363014596799870978034183723332036533283641295298156835346110186286393021425732865064417506114593946754395127502848963082022421985793901191717911380304525311553571878724481082085817532110036710975267036679928624708503232421472981114154771987465407706786533992722494063080451868303091143841189370036768409005931950112843708940743547175022309993349072813599966784349630817795866949566187936916477571653579200568466295655301179096409774200148536094915580406285162397201672504642987143499159510161291109340717079982669399596998583354914112461385402747146595252070871704840887936483229753507700561431947827852372286870669150658604158334262476037864912778648360186150796383651890860479977206357813879586895122747933742518087137413174223682827996483335754816776614092773305698329206079200493898309388755917252833564637010460318718619282853550739644027657024508596934263613179561329789033737554269724311787329601629543373763356151398330415145057807581462297225245714232474052054617637886441250235961324161031580544633240016897662644676209297598994580717203592482967504877835010910696430334645172266537709658225115930611970100426471951224153506337163053201585356675413134125436103473048757345966476978348347703325302678132549405754830004459038271950356351793829519429830867985839700945698333878438265079508160647936058670357573156150300177398597111233163944383210074618069277711717667501750224637746299003102887014516886366670369197142430276988511096098284635707107599761717276363716714552075596005734047132818984169349629528435208052344880558821413690975313996062574073275557368355585472153477302011932483308389402041280884140027772132775596219807659986661886444810849635480667482421440871021796633744989858168815889932822530606944104457187167429810320963046533469385827042206345762815230528199127185650966324569345808790255417318242227679801137901215811312637872183830658788739433341173940159522246538888849814609224916348395272083947891039614538657755796414242290312426207830180693629102973659587223003835835516166845198330522258929455092513739802749579985734283330504385544318355886954726332571631108492982656386495765090150498746708825870687620992349987133398975059603637311133769735199080679407092859776676052933567690103473673267570510842740659831745385152663407625403591780818233770286541085689706853699354635690995361376512980030436410428746892131478756333700210929655154941508497971683954015541221084188672469017867452928850503271239456483775544723352612191866033825951258507191672689345993149252331370487622288611620783165408195701523945809952736545861021791167637641135102118443598319726861159340636118775088127456708572230487305982444624542037621270831917707298846205816935612084506532635989027661729778984634503100510146463873074028785938512347459121782731450445797231767023581452543441813591325483316588055060108064840072548060345729289707655471062197378452826822274113018394319405103128509220006895936330996380896432231327811759173293330889960560978896886749807699951245878873151290695115610553578505957913480670580280321940573739739590374281076987681954596465471020006803229332689467162439507727295138919645203079645435349460592006307579991846625095250932160494282836625068127919032039483829963638783819464385995267150233305116424220066420402018735181644323217393013213099088035842433209827208587490500489186227152280304222721121657010557828006114437076837147046883156779105910704301673670262000465225277356926138101177472825962262399013763542791803259281909133552040952984132167425320602222903409488758514587020834000548572536623061912369882071321624991807299265699147365994010832133389738565122772756652875182322414252800898413684338355177844596831158605785965664700691271071068188915967528309591362189081829287303183472704603220266546079532071603305478835338078916281141831017382800043536456102737255226077096799610627943699362043049601179354133864004538228063386607489666175479790760576387251946228513842431662323363784170424036732249898990788399728476659385960557809597317830760081372054575804445439622898798073642568392638801526480021142481102465208457909768802133459157024679681796617351832872589058176962844495717662376891423214636883294481594535878665591691579114447710017328726734554153814342290971804362108930857503816305311479904556336704408651724115447270731984343424349831876268823121891057132938624643631147866704367517330154658261233996451397609843674953996976480555994008700867207641178533881638431449172754761686702669727839874561445574906879899348883935459539764479933307434011937714638772235320739105512248214530045902083805865919004332628488711464311201585942185849085318780602955897399427193407882493970270109381159566126115349955473215115978663083240351122444090608559061768906995334063386244377294786804498536601042647616984662008631954425578899077029300839518026101402452480207804683270098958690683446945272675531725215227135818940248605027184944732512450366317395209410492772677105591003734449820815164642759522849260704624537611102137130386661106649117496333392089522821919700735749632789804784894378541039097610158585168781308929478830088082393101692863469326345068299315340920998462502742083580403478879145985127532987948496102775359694048007251794346301341915640153717026625381420039888750090478066990425142731430727145917943315070112742109626854599756204901440611289792623954447895410931495904261096903100842423187294030121285460700929897689726379007796514434757268359030894523338077862460879982153928183332420792904023318466442626734087687533659465179305496442143366557401698668453864466431490695242411844946031890266990983795914694656373454901233776470507797256708274571086963079977601971919650807158755853542557344575693712251650627356501357741500636941957787878154027056296769252718163434250827740583551686053953310407153227666814935578815023748647078422735448267023074000364870072806810421412007931598705203298583091164607442131964943497100057210031807220342077595487467490492640347605263818342235098279339514624001972816307266234214588317242290380502274515245643445187174206674210688096590097035416222283401621739175572710886691434214783695136470317619277075039166429843583215769995203607307270497806989463901238012828401136473266207188429438784583288160162790758417656949328769277009399846326418530930657998907993003002017339269015168521277230778507078492089727154600667622363110854190174623849344830857745861033281147251052193762382646364330495158602710887314299922746864488756936375274876440780875717449975720268571410794453938883365917348423594839541338460633215824368074080795446406489855529090380613066329756813509815356951784540410497653215008707457059324865896398465737181091830679869415907170156699767872616168335027250095496115502237660846425415265560342549059887284479045047236503842037646623567235778353335162503947607286640799117580902434459066672216830979132560015396621528067103769956201540699924361045514842275908206634456006125942925643370840918398583154927643788962804044072348831518769763864407227149128184494271173724732003046804299228147934721077699713476711835594045927142330795168802383921969336301698642045532466649551518448104395664891911103258147802847431301637829062496791908582779645504829792032242724385114422096430223075281419110711802464394464030983356262145750067129022518921286210706628105592255581362276852824011091240693531583058213950847572827319540641145119001857313301888223736434661524592101261070536057120762286197586472460157587827278083881125827112253009962943514311259880741135372793414700653273302552153174573589824140223589388916315858561843468634740596207879822741522015014674736117910215044595941301694375517235825133988307366284714252562691361348628554836142825799026053948261672936073620036149731622971822041137567817584909384078807647974980077429847846530959815573381155894640836698238263780183511865677689926282883957535338372379743327921016340691982091853612858500855293354069796090270341365857819623803476454882266374451519653694250697487977287106319152120054901028551213822022895426032653206333186117454059948566431987269253873561184311414763359728616671206166695864442399585118118877938400855795157800975364469775417811045504410573883804649816547276279343694893784973549685577609558195445837923311582997267683485417352678254457885043414532225385651755730297488858049342165163764994646788197035511238172784755779173419590225863766558292118019481214360417989307402167254563117708101721021821683436443261781423546382305972826799525250698003877362325531570221017480843365695002551584152300884268169870085712336083284173691905314417554612147600247540635743899126656539857976425745902795198580644206490000073871657948975066399048298913881932142818797366514236383081645654126745487967782383636229794189533037242118463264640547010260569636827842660557857955977644474061178507233989215024205263515527109960218740717885786295479456779323668908950133095558020499543629952408112716791261336632392554339888545811283046199468187060858792454060944516215029752534808035841103462862085669624284506893457088379876191566525337405251513269177809850808778075418753106393676744945177468016391807963981361993380440966798148999339060739975978195248595517132642422525688142614288091807579740180271134854474973390168369728354696392908265726336362911300144216355606120551897925599938474734000668242996632661983794060878051454188288449792762845328524990708855469805034492349971036752169383206746234438698014512474740256775495967883202331487034703724774877689172646246870769323918898235297091229761397881159312087874705487216731866964095780146101543139684580233673312603880289502471108311102992877909904571645168655666104302784577119226306210360479877665607868694863392042253751172125523788466330335271362634929551930320518411859295831843151682582430126561046973303420117018941924028105143957181072664435459906148664754672515119811798412703442285803243521516999331896119753028791347357007707436726451488339306567115210306125194278833006621575071564769143753910015035436410353063590679363567150888632959643301133769860218317394559746187442930991554020951276559971647922970857900135572170222074218309344412635689608377295122645540273235475773882056053693745858502467349984956497355764233944260397059393989197455628959970020850701349834881859237632342833863871545635671521787506624338454431207422882470317100271224269891288518536284128053605327458565870434809772156940464822178025347761318837745145993147449325402094282612718943387520646710711938300897492560978208679610164459114223387075261139144413609308723656623370069911073053936383689909666878156821891242304872714828771489002159222875698527761636885804116742703677913803984499087020714805420297869544415949533349959056819950234822039565202374857019186575483941619641537404514251949726589157770339575667078856345975940410719301015186422004851951684288750782505564691860885450550082737372493892307091903358268742124599944540580926602798589016419018280650706041423754331570907695085747494585295605633694213733945141918332843705398410327402425877341489801840549396095716363371634250874922190125546076737552063536338104221018871306598378040166291382584709559706710280062848701866088071904471299484259727152176741398937316442741534969762936448035011602650901105826134714819288333465606002525914844692054297930913910304992380707348673958294981423382794276859458395900694795194365645375115721609321587480832521103752796100398720535782382840616842366114531532357889467080359408434009494288576483490573910578780248165733032286407882685196037637912388092460672856786820282605490643138681843699063200964231693565951841343580346207981974412227918429342603930333471045594466763817650991637381849518833825756562699624940967729573798379322858605065314610691463152634045423437745486647790677342113464024226072729811609883289040282370169730001183635958050174207497162932215815164093738899308019293301404498668870325595661606579332796472248621213205573811406438547664480140590197932029786314750364977149489801479477353488677240678042905284735968416536387255866313544329934734341401851898169491114425923644775011042969725236983202064180631664202362023311099407842477554319996690943981894271414218645629926570616110517741014300825424532720420969108981159321273464646580323147584352386578725402887206243532690705550297839420653077279776635297457707430424186729291512810118278186626167079874241121713055775904133451252965837339419912620355349055851155711788767775289114741804045800731371013778479278422022235553605459630545257754157525913387630184450426137101463424065343864103736322796661221775036784774754040577029585596197518935521900392088187877067575391900251607399267831870202753475347917179843638978247789691046310501106454969205707531763930269192287008247842052862858659290456307720903136708308468844983183363321051716435665374196100322404733565404880980136988243812959827361197441551871314110377500647256243538557426374250103945496899457438899195922105860057427816572227349212784837915993448853468505669126024758709850567299375833142557307723115329701389553270192638045481781315622201831972081051147262085811611211462392446353874458886009743035231986460258553757751412565864997448892362730455508967088944657666148828081411286303038043187651644324341628311109140760763766125759516683215885295366078515809940924763204468272065182024882211130295721113433937174387961555977852189577217547860484862841328237288600580576753132237355474680623576063631867421440541567756263885067431808532923785289776869865901721711984590792437131820741195394885871108964783622543792493623349749427850577307419435628931770557902476011958761968585800644493229622557208028061304183084844230432603365302613633151240466572090272426321560427188425952851128742290158482759594341043570473808746031754437678906681052255621866452218914195062164286104847743028426417978583274059319208610933133285447364115022717071658353077297200225981095012441789923890509763739814533282869009581626507756815855261591696929874684504406916529478592530191509661635051252021362354604034890225374145647465264713255844615202898039287109470671897368318592927229625891801782517412280937189630740111742476757483361722440253560533288687395650250967970356129642609140603322250230996157408474102450969767190338178477388248457724514637600801078847912654291084817591616101188025552236666237094603256602243349478186473771778529567000107281653601097421072516343779808874019085707409187053262859637955141415713285216967204815776203238869031428822669711264519137905608264360747307709842156725667958332576019174585608875293172895231790392666650581289431098219333213201090758432407052414871187646012567236273654279637494926033207041577313320282740035208228076731113449723475579585270663798866090117595496657272408543419972775361825720022487227174385148029178563183543297369121852518690529705402200362161551791150651848510828209863708281513279196473253267570573429068687192864047315686794887478834143208396027061212601819763097669123218787975063941468739393603246492431754808158951282952733020194199952290794109962759259794818893516193778556977975348456842658049465806816204398516787475112533696773875414017020019172890991049858621314041105799580852041945354209952519916011482150002042318382866268111227835407556092257204905004336745824250937565339338011805844691248461184105066503621386109908114920428187954188891716178951935111623776723436064456788564378711661069122116353459447889993004623358648747989150455678788699930108664739533528015501412590990815207651750399062406221641975096608194423856095527400596390214588805827889348558606059540838475603516956922205776881103739907228163211180153153454132770425918343081367736030694386997419465064500527385961587355886318381602193753493655761389845113665856333958279343237605636094665521330677379680907682884693131500214355485739454684919027820640990862239605494333408291417568808079054858743363957732776386314207526857652145044454478172802453782313301068187223001264343075822186090070981097973199839836971436132502397348271875680621235907249346120346159068136431993714762934829758396209122536905571181155195868891020695911866120934853217233949147053463169539794525112352196896209633729438500459336938415969514864553106977560938948469487268318697653581889645223324279024416334709314440735656317833585436352796529204602589728373151074052928591743376929821655069025943822098856955707412944837275142613164060558253165874343421086906377662333537100107625257150080258601476059022677815849635862074212343382789554515781832357222465290088905035454402869391657256815737550576461617502915784240460653635306969836286353579259955977571901379203097018400831708717014341645240988532615523511658898627805018153237443302296251360595634270244238481947443121202915050004570199688283871520554191949826022561579402130542767379971218355224092813215295672156212346147714517753059620337994044335172095438853484325541373852679608547394431786348145308166673766378908698045169505122565578103306653964195905257361830725837730101141382288354342438679727138798328860611184570641761936956198615293056661257906742312670182755171524646507950968884722799486590703535604998319141482044178434278412723893551788141312363126155868556306186167172702446318411469767596611635722360783597320124272750007489457632839121577611013600209542690025302472214468890887863149919412251876002336902183644856881622308311622641300608751708717717406102284176033784820242602874132597898022397398497354464332193743054372936735413232097818156634560940002571760449375044609528201653060114277238093150510637414359414387112443495293816843107673598254178420821480792780544525884847122287450347985289736811301542604653682442229822171584170162437396198385790335685830598462932911975828155771384685328174724762469794729446816778625640042758114498914448797551484389663643001659304561164016627896804898238297382604093291172504279613472873721636542315762045687464142897242720209121491975539650941018490747919199662294672982103630801630853165055699960374784522213380450628555331480255002801523796161841677165386382543934624680394015135362332418828331135333134818061777827432911993217588169044795959726019832859354594947656571931311428651257591331370977431984121619971399846412705860674424743181520480439189460813233726887510085438078865181285486363854846902811748364076383158464363440596737266590412850915713666591544931242915791484118944955290741870194597105868331143402210210881840798898559620526524611359168817771428762975640048599491877973202322218759619590513712209855179440569014870085894906746539216415223944541508290628605398304834678006331601734972063843755291771189826467108811421999116320665865048418334762159386666881372870929774105207302536137041738056033458546819538803938241478455918162300987750223269948243010676231915185269476850698160939169045880759040403210531215651650085944639885177848408481310030553795611868699345967156364270754251925514734669950774493237555523721295828448346542871651734778400252693704367018051411566667782146688547010419075857369889687105750853199027748810622057486480308224402297882614330968817086939742689930407046755738923404214713299097074449594848331573210745645804355729731124001798031058886575500130914477035953123812994990044946915211887981401782694448620090005055531573781348262735922302430962480371686838295422251106251461977623023194278699768884638221197476385237587829428756368517130812094408779110332492281511920774295677176576456356848737819282122354591482242877009380538780852869623067548152030021808657548603279653064315904300915758091328268678618851796078434933192856356894010596729668593423166764112013656313846865772403689022276123354491534114176742404733014699652070077986861540824348153537322212010185742893292994990146786161858965910660139739563360272653548156142037343633471771078911265951400075955244505851580168813815116849362761946110984935605952683543690127327611827752152269029634973719914701720949669137389717415960819421085113027566513325047183027418446055180366629823543960822401382815558889793851329362550800362449435366844467621535387501785859516758131636103496529701215759177063658623331782209238867541036316861598605731737257482150837579164967772575954347266570665454231992789191703961833058647900730925062226916035187805405100595134784538945870872375426443543694276834955976294044238387285286904519057519731021832163448639223047546935180607340584255751878657259412049388454582962911300982384312897658223265963782242897184043493758881841996802649390662873300693766912160783827597182394229085189280156050320801804744013702921626047238021722676680946004032818445779150667733592264604927408938720081363819091038974781951572809476328716474174252029436081272502533688109099692828723327988829108990514236015344450461926188361702807594462446902309072838411663689372036260809644967397115451908434241716450878166144399921179506354024015647781858720507427246276393404130506947783669481784720954636925044181062393118802328706288029874800825224886573228932658204693723786399105258889863854471609633598498955044954483893668087299831319939457836070215042516804766186719751874475688227191839284385507363264738856928056873399877130352681925542960200132949844679267948614721567046970564365107789258474355411688998967997425925945526074902907765242139558663184316443860605628810977864536667157260757057861742103061081761628768755565591205764997076662929247662261104512226427837308328647407921366958341995614253220890289894374982410392953380945356048457423594869403048960469820067666301700592509552044810034698444943148933308313240741063386355126414370335968849757721300647334660295865576899729191139864719793932721769147515496919144188928234607778753882588084708725183482189695072946207168369443126568955064930839255893272546045363194207338384860434486343774175536912390395919811530325042900231685137199686483210567152895082117511978567857156591258843701644099882063882382715358185336242671714454770469738070169821321053207799152039843990798212506402395257206946621542125297879685220985876556676467009068242029443566039469516379992686017972872301282097961228830004105862614479592197442896113003254946326159768326385580589598823674428404232003113571846316478981759917384686214256766081179803315320309890702074317132912670841690116211776390514963866164194447605265782198362382736508240265351997204702818999101073951906793360112757847919623086603141885513524680610889488686369651029516199569094173306663799935776549159994851319740740766433472189090977005671926018213613386608354134178230215442856357090513713840522930547548820345968685514106423394294422743267926520068211279574991313140233115677318674169471354265069056055426248135625211671436071204010274814819237295424968602977995566128279298801881737367669171276473104521121425478548951383825228435332833751048778990374261304955740231253300557736619942807623606200078839476437610980053314173767072696101164378088778762957513130199084048452178579220257161041084020665924959630455883355050883947831170436196862540512846854912023662021686048207902511549145005757846969025268353313841181318501398531695225615302426556160764736364717444691005399914965468814905160113771278388032580206532323931334535327673198564507647370912742524731009722167855331042654112294295530750023933746046268817623420059195991508735875019183954663696631325406588118672098673926493840678847901577585349319313421184777754976001926907694044023238941250122525404498153681002588525318857218580285832455790611932227521637611368270831036769451003387172334827776736370333103213619248466187406190296657266997986787479993931921867297913386333157544815077962892008301045455260691399105745762214312594593405082610235219371892081944022132008976684650944724903399907568754623675950901069750206038602110753433442006910954394870988038275206437382819610965805076121573227707252747573141199493066914910435070297655123640753895516900343349986696845946223915896886355934668293910388735152821394261752250990886550106479727208288549934894141766392655096348073285255899088885804297826976243628977303490509836383356148115099946145430578984468932622166852302287540510110935088841243263306692949420579217847668478858457628385600955394877162141900722746585453910650359964800362172189240775595832818234609568547499048324458613198034892813706282057990008959889913100874551030436128683437184160400291265197642195089409473074511806733397082862696070489539697029841566012781612349780611228663125105999202418384021178789618205710550118197602665949874621039612377727778829761953223037499675913560281647641564394239438428344673949524042705846973026246456735350829725810231949143323465578553846939439821755816491230992300749045574398030445609197468053261919922705058251990667150888996753510006222973920436770871661879466579316554082347866087734771796888944869468933217804089638604844110804299926066918499372963101325646878120776262601765501869515744991708749481460451122759757086994259073176290400302050565633519623154816897610198743081525711880754442295238982388359292484364350897559990723607038403905529767422244646579138243842009267442599002594617066074211347226565996937515352608803293115350068666275265017372923067837559524705978533049928304094674610637744168045288977215309120454712413054957494212650585750263869727313703745621782112670496518696889513044687619143544596586990010584821482507003996929964546743680125699251869842685547508506753465350289659712741222049737082642915384249168890738107054579298354139827333933559742521666625125191729427897986128253470283094639536381553369943264249697694609208157991800224603094817795143402304340933787850532425309286534885528259246371496875195705650556069183629974350146654973015326579413020605763932147218369337142949276685331983853351445593815163086231541909291186027616548546374021395397924578859620678990774130107396947185148358416786482353449433095710009988413619738845154888345645461649149975002404630495989217369323915821419043058681665331648197351905453386638792585387883701657487184484535636286260242733946492045289898320882022755825733837768631879811638580532734213888130657673591942609465063035785845793142909947723342773264514309523172103665800168530803297894632661784605701982587631082258065335256919334977904132587026182814740435107922587447899937698536149205195070429486362950911699081239640435945322338554072203689026459056839186724275196934774232946578087380924707263116471196238195448991736891758741152099765068921381821749404091874431209624709764243667844686032004256825398740932711064500850945531164588833389234587731614167267333519221948951968040337023434553740492032257399939874813253739350687154677102668398076451548499716842872643748667866528787960022016520652674107818528344559561830942341896998666591734453686100519008167791967586440059425080161254008376306723257405316502963982171132408733398287483656138665841589266729272973280164265356823297862689525454977025712789084207783802103185800911471558049941253323395441856096670443633083515354669712027632783091468653247504909795682990475167607209860166713080487651866334395819738559739834124298326410660146346717518183654048797177030896650984184208461235687689161883268690384250960281248460804457440905245357093219318538919023486121457681125506357607824254343710353130820632525730237748446632757325570786308394873553957090845113517323347860545550606796764776391424703989543085627481437479459404413356253032056811794244791556462078277929754438227504216596417258847057470361821796847340806971597867372208668980754972549074635398050302541245345547308479823421550435820868278307591649097903283020552172017336148275091673082398882490428727770885726068683210778165883840966513783712621124001425655274276828261968489740558373535852306260131803785903953540285459862143491328959144062629564952398086401525205452483356586975001621522993538726932723777716067925949877266709998125817232557828881716277011184043352852377369857542959728458352092328754357812005027169844458098147615845549604053248236351109154824348262144390646066558162454422153670331866817059432521002560579445527220006512808695624570518560562900249501692586134382895004396318800199904412868734198902970322530424947573420208096993024841005712652843327668746676483788698233245325851219508325526648611287351888540616654842368874438175262304952097466785005309203759570636082791221955564700869195539444860362292766358374812915462229155093506417794688410333086508087700438245443384939467550971016511361544306182064593738457494317726540658769556876240060503516043855120421672769736015027083610935041682115834714689521529279850557780179760528914358745833500446847600836987697885935506158015446314427353497231227584862285090551408022052153311786748217629139510916615148466799080518220369294980008444199213514356635099388942507355515010367871094343606949975840496292064408315046098483735060940102913025404746116702045415862508855776064220286895358812441638233503815161326248351367777252883720636826062429209875733473599056577211824177002877431245642605361133569285808060367314939488800731689558132598095813707243486419861213784897139774453387902659393976440456988112763032678984837921011998223900371461861115938458802608369098690826685476808501977446170370698824150759479772020007004495446456874167137377447471277053335917772995743014091541824965692637300619164567625513315824630707452667136983154916604372356100263187962947704796263235159745729478962552589893599619831677511385746165797170052250177412737900845768296862785325285771597772081451757247022155475725987992871097982552072534394827282771038115618388215868920377823178590036135089751933821041538356570603787762306754147539713698325562607222620223641866764336137029070246924530937298958475191463576555779416258497324904356050714557720471255649814354949317988659850089048062405011063024935724006649759864016010802310199520669070872833431241071647810680003178890934934845838608975320368020373371768216380039129439149410374285139138848372595042588181779917406631474785667566960592635420419734152093205735484904240911859059462739221905786345747857080448108594570115571973428571755736486579220688998497441305216853824630986592984840707934329328719195272314950499127942964714066870494363907299353396415006482851741059790142872743385983671531325073805093739228577087159317847617088803684983241369131004900596718354498509849201161482685179242468764810618261130718175570366356787923965354566689703803548395780573506484864884331380206791680243582448621596727238705511610909213879312721159304478674477415638147962283919426110037138130410458601786261331660931327295598078799902522183019777298108010103700032054557391152553104630811505794759433015965892971836520381055738364688796610534692418988084239562929807325915872417134933880559051497053946200963816543464246294279231742735899000125424341575240584253052108920202773523437216199795661100352283305404247599676441830462014866666440563914476581300653968638303327996693796418969097128365400749489006666270437296884262947442422486521637504597666999305310992917435999175522216509869467300459667156001876225816208794198476503254115780750299248296192875040361088079870374306437933548645714889313428111152706045062091745684224552836098363622394782498031649455882634182284041110959219592742248100377456539158614446650099374501260224076115485883465677219970520127833407922861472524670395509599047601399752175102018734204408068897803429639123088017488312384075536725882130938042678083948105701697134106054551442362959892470569702054637355199053411111641620174700175038104962173190296156495982789481414204257194318841710104227408435091468212876706610935286153606530242865643761431472826070701801653839482575312793217882004647794732811700615962466410383118916779481358677837068001005661091301907236802650488132624116659552190456433240226385445294970581052521718711418725039162128308356555079436787753848433165437678473158770897399930363107487756095591774937465981621434321092199950370064584377833740121259178902171946133870826921423850329136722149989561997285718978783534522170209521586458392786239138119288122550229404553745720101748492212858722621064461869708392328586041807122688534345423243548740823192662908696808741297541178661847345936268661938094421183115287308411168041589817507986085618627484485393624856289320549771198496025353611263952044327269999299232978414100317663902510958785460397526639187402372461174722543325403146022830491069091317129099916184587188901566040597815801907017723151605082013281443734145781561498430692994358425092595317367149396560222173925055885063640658239675543870682503587934402901272594356577860726890668435658474892795309044330511954158398875851627571047085471442060409905525480723492112351467066232713689158942345049203577591448784588043901517076074554817420185824269901400038684937036113876296695041763133258579765770743321461769493734056515205446881660129066380668017851917733179145205024714788402937334320032345135321551294241264447931218295253664381472665166814852261535902923135774138382857661611676411042841370208398397690085211403935806439656847472897806040547884784495583228930659084387050775019345005784767472169709352765646604980654331646548040343833805905771866408855391935145039453192073002533545953714362471205294298945654040770920005656462874216963212314782442328976439820509008802883447379720929161491434581544305684878123871696867086413312121307642096061528943514369691909948738450654691668869680185949387008609758624372294276956024266157781708145882752898641110277409272044072496445857881702528247288682093340152479327759948484861550886711246868333348121648036558589893898243908437146600224506800306182425140168208086183825892191091858562584565074896115058140186406761139323831026577503431871923191700132516308198837709886403144014985779557285739647314287500965037197948760632630925905584183053666999726871275921840976892048273491846226753126165243976426418941665358724432355778623448541882339084575311730186956044785128210505891980937974041202757949718131672539492730916919174791789051436422931081310200819243133924734718403635761574774858907466632988489759461254444638480384524043231765548032172113928575314500735595931261019503596455064516280595131214244519004800966695807354303432085835304895569621047770940170393304017388146133818266167608338110445424056268555078881791860373669896452589201059126527346714547887353582085404795339380710319213159058542457960132024350726272348167435295261503092266535402394722127036162092947006960525610643971611102017363918312385031980339583546919104949741755013747336814092082097090189937666194728420746534127075080106982803212853377638602573350763073150698459664346221752683745309831548695710381184492440447161281289296889204991039914146350619299891316906769745561840025570464528724621976220015261620627158427162650898221670583789804199644554620183540626619182923224693715028632591290576301353858014673549822261182986281514005069564924545211855663058883979598304381935252555326905054066268561483024996309424263482612333182167014971612220074389020338126717715696221080568866710856918002593602933415288661775276467040552501035509179151401292830753574237906932411392527743865797616561123511105727022734117544902862894005554719024537045442865276134099043403965435476459398250457949890537775843401017463753836357038898645816429145840318265774023649828940460703180370180574783136480677405317135548300959618753981041714136822007130224067587213143116997782654466446483059140256430760746704645592333759679625555314643009476043272211234597723346484150386787864116884094292074818187425476768881289771247518468050896451310575141537623312002822481300201167954063766203901772603878201251154747853818014739176716827803065507707821403280412185166151108770959403677751603366777359778201980453051095287088977646509828524024279366786073422287468535817909525827970905900615060446390792770450467956434208561263250124065332592735029847546996336163349143950076118772927310100604283105225556200241866387716130613273834506813166799658167974750540785630633686590878035317625637632091534012558470052834370983235990033359448722752937549338733712459410475201670909511263121949897112827330307284174177990956561420033112157969250642069117379973864511696480494372736700631140448349998267513994620289337146023148471420456832591517127442068486751790320281964504647098138071794307822124165090864505343873670713386514512540956774220873735590332128137327269135675686506858666065241517403410498183331358150633234370310590358514744163748494790117027955524034841869493841766235245741118441587211065410891600839238725535576915783011909498481044626387509013828184767806830945659524158980525436584349337639809027473959093308841326164972201673260108108317617218894784309340077219376237720200494102769612241333967955843919871123185873704134805073154317437167223223269551365983844131399746186348571244245653546176176776068903257056256796560585178648525471525642554835536542133237245338074359525941907402189888667910336647470665853607506855559078694327162984253831950536272060608347854275923152905940980222696623861523077643276826371655670193373805996048333362121107834989078135954479667629285793912782782310630843514716640146135619354336111505377974179268957572992851979300592020129576435612978817784468211463112428215690720578034962944165158325595875684891099280652859811107271950764056994050159660085414446771265949742475370780399251758247501083204369398009732279506786703556012562786113229387994063491295393503447547011376087650253971484097601877439722178035278754171741646661531861762599600958885668219007426936119735387972251699256369844065906919477702778943823919915477243969341766787260576950214793511317842578295053082708607734463668040323460355886325353643035948376431158587606921358120647549780643469936375614032258776785568400988987499163467012546532114581978499157541316919696173077475809146239478325364468162376498055598131275981597184346731728838718378040483068559062897328447981268929681934639211341741336974434490504836012836610094901226769739624583598014065391394499463776872607955654556960311129233716404077711065874331278077449261118099911621799292143399614329699277889760719332546276797230044306971022182344036032606251922497099697208813014390993710321077629899014242418917727133007484716828233424150988940153164672088833873398405914901051648431624391807693778535719756800728098394588037744897583916982297273747130030379203740818299869526519815446334428961282726979889295422778894056615817266025445750796185088635818387272943077930216279823114935979377724400934800999148203659669128530096452167659713371397841182530130986316369161534389589228702004060371210462442255416347599768258293283600987511176908785079825715594385552455533813437466363077323625472076809922814002212715631867602412579992907080252036800564841718614204477428991217025003296313156324551818724209943265786385956330713455575602269886551948858818559530585507215041657961953998185692853978175752579770380144526475161248390821802139631372290165966662243792392489739819157057747931875018416125882272236449403550963558140645315409392374775610398863706946248069896140797773934309876800818449083102242102287847582333012538094232380685320650527945634096375495397970469437680658718863219646376623708445966673488604963186279486524217011229778035075919748988425968231226330991534026759153300972713549479191601322401654156630246299034008367071936130665241530600603844103468988397353168193976639857778581809584118622094461133012309830265738743395533368492041279024641004468123082473746180221303238563328144389410452863880427335778072768509678320768909906199143806807838015200111564354499830714678670610580116066257665786725699326683583026920543400347398724870565093157773577967406981823954359581842067458715992384196641425270542880605015395424679645714889667017766537958332168160433996874200667862033483067938841596327071636116479563363190156454628626087901300344953227297038833688279578171973110204216677359975526057518482223037959649598663460257708094162774612236773843310215372007369840423203120012419853027567146382643093269025179004222396950299916687640954296800852080021820908926649502595363278576860599627153091210530021411548273433875084022282346246454884242905380012952023448514069922167574893631519935204045061883011279640282296906227775631551843613572069744534335126169235883594432227792494929647142424070335416611677749465628542011414290211739194434008078944705464974126369571970583076544187321324577092980396444697285799279983684260722716983584548425793366524643900849426033503142456477623963600971088557061855485702124206777698404246336451420342258439505235846286379826144694218069301317734221949038831040798855050446077879784791967680803371984246244523659979588131499005637975743905960359061083189943987472991114971792465756892581760610727433012814423379692099855921583470966226465787482573864264465871656219145364057059172425059666300713407122266040245930936680665760878444679715198777163778215801926497794514247674756464149682869947047523282599042431584875161606636051035750181760998964193959943904315717159734154920765978208471125739807763724722774109884084474985024266876106347378333189996207529677538246133260634000026454677522165680813357574647527503793599618069282501148450098342763005063377930286691900308563748023139739887604370837210510965369416364302519903783434090257879860190427541686917925260664256010809720202227497765505829513646914380563965130138013505383802909739626878072648297492654787971649662505718354062702030125883956354113754475464989479187485580803295052750558893893946835922833623904902591885582311333912530161409884194451922008438877990880369797929045492577359174286579113108315500718518428585626411998457103343258169913051244983009801213614390033674318138061269028564558854726406743702215530588946875356974399367043204674830415130673706220100799946131654078286540917587483589237348949069483917726704192399217514672293010026482837730377943650598030193757369513841055603803564607461391642301104375592965417601125470991814405434601494354302888909954768869934272911673438598153298853682800710408943913224751403893550278905567289414357567433126634985906961752632418254819866535552222377767874827256672607563097696606709164656578032228137509242295608133081462654621160651639050277435075573458390916995037765793759251329419042151613887901665242393379090588597682678102492862924185471851065357844503005206439720783021280917289426502405825374622114531045094263892254814924404494047671819988287237837745975875299756375325470018523757498021877103947615011640415240636353997865242826510842558922467554820820491469352439190813730500365812818172268720464708607034220511081873955000287556709149967270613474896068959423652521013294763864030753102029624971849236741447492266956946634522972555350552714670887942631364153662707485702186781709795915765656777651190425852467216998124299718256208501185929667711545957732638378332279833860968432411687212638305384013342994784425508981332995751310315450886937169162778935899604328284158610866598407642060038033633605792490259513510426381976213149763827131969395343648726004053949470016967305960239970736723416416122415246130886539817303704621094795636604197115660347497021782959678059817895416439946678934067041406657108575589291935452194616741967096068315891253046296579375671504625360217893847865467253785681775084414869898129661388756006463213263843387579150270182291879249465805387977111346309218235143159037884378380894030916151741765695026465830055832022294105972867372413614826785923698900080896595422824052513304649884317372654207164187089872076291555277767805125594018698462695675445592412479700040120074195697241965790127832031495957750826962494850755671977504599456325901762140140736408113119028570309173250060414139376002916919106578720207112167378585401157055002727278534357534843829177046805274485410289488122866774150153252237070196435267080859883239744248290264225045561483863771081318852433312306614584346490208167595453871544240446017789344615885067810159362036614011950352139976156039391267353388608533941078121738068629064750121600346678973883777196156580773906342034258876599119488845954876667134472018606502117982294369295514964463708815752458353009850989239903806457934987323083829754570055959514555201807686211190589181592145002232870591594245113874029314009152612161701632579929672667410541771861342096266647593328448379166759649202099126972015467698571734009315108395734732340008776068907638461825491207050629978785953122673158442269048192955515584844978882353457820074556576443543379797883811662959469715703531479872922218848587740746167413988210640039316654560192937681057916840232501517213672643102567747349724869390550861834410720714506043058629135557842415411309399943382701760875147126576751395199610217556894711971372983232845813157295454317116955845645479575593612484052446042366559133343082768594082933789167741327642464837173473440358833446757473524657330895955204461837986257001076235897398328320539577905984127585812442268378159776459906956553667510555890747186505420178556519775129573361964802516846404464627501770971390896046688678427009934127719449718021051678771382757962149199806506175848827909088993751411484890718689614482226241575780995661839349242756366988633560597918796432041166949414411127839091934703033336393347367096462296386204645699144531137372209058499445678755115086951323090105288561425452474118937913250562582775500270796548846786959051178283494316986970138421725196695143720802835810755238413253235409473581599810494738946621932932161827395704987412943120041661505380125633346594041709074278560407159571644513290129251440030692935527428061700676624520714338485168559912941986560771096546235895958995470337209714935263623363266093981855417908241831654162142511811740200214710261907043245530067855649236782335062665085577643109532521484292355494272880499245046509350241676308369816484135273691639766672593897902149499505234768091814722932153201349109703404496511451980788656610595924189463826275981386047834157581610747310171410584829321444692221557253529548059273410474467484956907497223887505673104633980284650671036756897773998469286499801663904973222391380207235426951773400101680105892644757703959261921989610430016804266763584178385244365948849434684579607157811665041230883430108718045677108074176011957235356543758574847914759977816042796035325087705248867372275913172922616614421383699339079360236716966252107265338916025977037613319388169798543026173108889449417363613071279448463734998117146411384090066874273440415355961412545593317425255653809259225035992062717001878355148420109440516815539687872227324406420927059126794922729245683192798826417819802300212591178340484821539352750275554860868886476461261735192304377937567451443093387385972645842461574757083372285048374373297306882337736909945496487823795488585179259398264631418875482991673030322369460160325699932280427042909213567646936483021741293809166305764247230844105372069987637218387442705339135007649119110720316705870466917002304156635007988111855941649935886040680029729944294103686781531925248235726040363904962564087600066727109802375415900891292644641251012620318275053569886220830826303614451892584720166596801664941951058714851142947177172096910797188391757415311810689566378586184492992657315543366362798009339572200900534247865192623794094413759817839259512346376401595148439482906206363997668732689283409671049290264561636539605618454574651702788879857795802628857664755482763096449333916357908584508729652361550852544184979382308972616087017294142328436687373820144935498341763781669126550744412216738961565412863138591752869238591957393538410457165391356971381987194417526953827749633741367332489409375168542890848058188703476520079829326673511447244199412804820268485818212527378664918813358082449357556768224898844237537709935099949167980862340267871377313749957418788278838196946351062557281094010463813397952031158863495825088884786107299732833488934440241165768069775307285569576198747104187501351699908085708461007673119703182219017847855159478398484049227607602341677126911657789577748265207203572872328855334447664204794241128230038275057750430984405843494828077758178379303256656007841855806563740668245928758220556561354012205672474472675255881257566497801126422034306836805122957345309797847905553713846947505609867497334559765330134816672192271866662268066212929354596365009601859030374493801585246296704265690647832718167891416144480067284063935401351086817624970609352966201547014469881732436521782406684364510691864382207084574679672292994683217912372653458696359815925160717408436455356786883472371692278951798680216338178825916932451223135145458658353173467434517335168720928905360977113627255300190026039612344052701964175815449323239273802757970690535407526047071408940333848574537593480746401882813825747774975105087265616673536928078174862783828554706613688677776580238363836869208750861735530689001963123883567869315969411234213127872083358176915341630919312763534812394976244859957424536805437375130953873640705290863397423121257396288732366908720249894934293365870659690508222546725299620249112256283143373372278900482124242107646831702447446054025435020559818719035782836453913929734621285713922096426106423772456833854038978542974127921393556436649260764007388880406900211828841620559667974449351454577017049156797527163932190457681784128937408060572412016837621222380707041082286617834657566002311930955398528945678173123948440576548914758716332076375524381345552689056247691412747050544730324414199408166593406320360303445150538575757657320058603523788902852103173170881657708579350511725144046092833816014497721518158759924942110271153242244185915128177946151425901489833259172458081212060144584338889782361307522667632511777871065443188895719445349361477804454390180478956028392870969452938776342372748638613722132337254954113047474839741824292715742308074428013735996136452136900551702312041812803140685106550976279343891929729641580496866876339957340843457600679013587989568891209090430452747798384271273936617231462237235088956520093486019388771119483340258633057535634989887010598390111818846749386497327390781317711996693594790013027823901652256035192329625881981528939915839925968300265818869647262887079813810015984081650851912170239961439619935075371894946988001350087450005245776767952948603479381880762669248046587796118061415555295970477745252525029477032137842227658332269995408823724885020627499770119021661247673207326472568120822773535422227083004015370717177850493898318104043873525748524035968856108485801213149614876283806901668279832093409567806399938172087989779914456448692964206845143956113816299133615596492764216245277072382477595048867532588339683851134114820635904619596732342973677039898310590232161841549166470150243825164275744337716105547941040576234009481697103199610229272994319129062968325175457792038479497162456581615864210581938304235667213878415822371959468129440175686324366525219675377075443527940044575837059261053447183411164067371471911229893561156918427428116503971435606863922055049907991838608512761330626640575783834828533974918196019265708760507282058240976639881510262135169158166120664636986177094324433206523746034284783657115208211957612317512124820641041698506569308273900958313305252245635482049834394770979268737279288799723821971968775282657838184026009609340201674025722557808915412599956951397027562717387883064392055157077964024806117739217949136267925187421669760816188968475196210598137506792900129464199024582991914785749529165890355099837978796774230282871596438257057451746999309151784359807426947602510275208611508087209488618534522124572213606580761459316955489063452130007475637163440860787581183779281685348083951548628395942615389828798526016133559212607417876118947493289188127018065310903992726054621169195734003387015942800834225572833491000280349742086623446209439028671460118138983361714935452939813068676875304766937334686522379415890276187757649773492788649143515357123141481170039035516834706102801615089974840424859920198787636547122207135967645898122522257291778380425924717194571760099431480154037650119552462190583749889533045481017041446465269138106277175895024495932973191812152309428654162926415336695208096805032065327943539875158469880736326320924059597129641758364908821446457048140260617438870840985572104865436970359168878401521752697651932027744250339504135465144122967247822548692212130037795943937374724979099974760241486983458002412806498114663879150969243534023083987133732106585794131783251478941613995567073806403398132998429857047185951362334514206870209025611196066362876298522631644155266941430446491112913654456749611640910127641830296241865031129561190067762195615144341382622531296663777070842336570890740577769542390130495382577750398163190495242842000747194780414091501182994106502006758063399708084599613397713863606336482631363406589330777521780195362289190301704187412877081241497695851794345830992810703977923101971658319642587637046986246557007554777911512526235619243223620221792252674942651291243464804628626996007157299096222143852128396955943228565899468314506690930819740943958621702458741772688654134328726839007990965379877856073660070197988059269039252553159630235918470074713048829373931190111082280768239226093364913343251013359968417690761476078142935551159918358803617483406008143651460524517010819236476475568233183792484102989018030514591974090103021601468422253600777792866971212431413222157391561390600750828569130994576255910754805695515040789624525979609956395984251627269084411258186264188269887076919745431879742174521166723914532254871658054110808165321297201482842519789707340124443592070882948151937232342935407487621316126750202440794155339684741514021642278408041059123144880629215163833034030443929350305899969072103261199307589194891170364283179702911501988022933763445404466688524524148410490789364704987021189414450846684608049358969170239984632564171999597224521244567371419290974882275607860394271881551102050163737394014766680645854887909570784347846273525111570996286926410719829304548031523626932055361426786958193149506060957461523799611357329207777362221468992936414302895673625183868094533521753202586734042331030817665793821411016020653072441199963485138612198357877803077739480042847280533133374681516578633715132689813235461078297080095700145411614712326176038640489667803541102255979924809398198003020519671147925516120501029676142852808235491630861903780014709036571228596234553790262939535582245080264135354427766443915216185731646751134595534433705457802136375123587936937581651312090160467674924204451402878961598997538104454958240249152206756198079536423911096624007607899096779611415639849683664934347690447826748617588105703923866348859865222173612040728737948347308546088589058284830077739539079080755265791292600297059127288175888446049699229450677051329144351673675370910705473740708958153023902518165954565212028902999811024450784040404560019590948731101942836051088506941718095399003690665143325012201752426196960709810657527049896504448428298428860370470209976433580735127546967289357796210679535860590994651317293190278678047738399445176519028481302496591129587358236392355156374619265083231735813036622318386325007597165331082321095072975303687128132334688625368004857367927777777411761340376623393968232295869188548296842633475715441933451535205782931282856754003669033469305811191947203568233490161159179602916458339344991933863520686034128952903772151023057541310130365748753709760210984274595381549183588248107607236560711212526309321647260522141884925765980182411227483225009410411919948359763676283917825894928049747897496438637739371522095349029754470801222714797776778638201987032502077299278431676266940315158089243097873442517866812174353366947240549264058140055543124143209941346112736683128291907281245169124142590588877164577877709935283874036484837830919936884503203546994350879247514015016690882651675168627036371070709918968195699096672090948230446111640021333127900478683561018517629725856200217214604466682274235424873388768419060078977390006395880094675870909505138954497276566964644991179371117696765718545951119759646478080354712682540650258982897791837189825331301499656849336089122532845429862558219252504725949267701159527419575190402267753339671560857461918596657613310109130801915208577435927349087383037417617144193210915123710716879752057908346056615485807490870906741319128318093459083966585180752048195103825587469370308981807238831483641168690694463415409096492193485998659575668010436084805479399275628445441232227721346081502108503409633181008998466749388764616949052426385513868487336328085967113677535676649601645204150386521104427885947010417779505498588717895258749811235991551020638257341876693693365555990611104204769577448160311545495799218271031771956927795412459366059399062634075465831539885630045427662045876915654187966781304941827946688110055009263580349971149985448772672737168959924460098590450573480173308558654251527126010624882403492995962195249655399944550556454700345298608141669767062658925138804401993778789562002068811577018553250126982302357519418737420773402108614787652026463845671335056081017030016520690857675794578750680269581900739774629364335929279237150697714583573181079060767921235736908192610455088962603799612741202489470315360959922712852477923002108861482972819899646367474751159414147867032344912096258731009389073215034947145508533248795510442425917671427371004898384522496059704932475704173875694546513648593048754954402071256391323575742184976949940869702911271995046629838942057146083020788431678192369466802680719855203882451284498535020990375289128055265575514361472716937936582618437537867286349108423299527154697953286948060267749726083002682186026622882462849570521227259497835107182522462858558741880111313826048026631929002733407121149995239651169239725936416397484747895374688052096469419597916059211817483962099216130592394918946790307031929503867560992312550023218110476699639725208572332383293595896417101309560741385491131051259530971179874479717083899742238921973949336241579551383415226640384075391351764974653493874921538604847754635029493190887937608110255919350452655665018650086520878655042225968739845734131450635306464388198676712514031789572624287000742741813731045647145605561426130904760063685869533693710362241118222901069911947290828448097887457756879226908438443628235121096456495178029184652106978759582946581785036748503011132303559736895267090554972938310794940751247537887209683284126646386530296617424502241754758089990933842657452428142548026657722510280285546404270513338476438291277756424339088179748209881288494870458255028717722447463982345517376815665070499315433144383355429538762798772693000140268013503326121132320358982998848104234750424623442289309235302414981226346680637569522028934806578102531413917325504326863412527328159587113174594267485591128938330389955497619532742286211435814276782451471562384236326099014097058904781298584197482582883049598230076704405214418840028404522931850770865070112944532721548207610210114262863176905798382822659352641097923266296499551559215888371082506070680193910909056626353298716496460159508516207964937631220754516886166490944315549544919966965006448982820080794903624825530002896678323629703496615987656277446666764313772891750367082487069070349655522747892977556460868694925153736994292531723996926241128122846226649087026727872139223336868019332256118147206107462570118858042093437709227474974680095747817048747748966766514880805596827356410632150995133727973296448534117089382321580414919001790521751019622483168574562313591407891881089926508112756934551919954425095946391287445424751026478882125465142235221861635004359887019833694140570042372099863687775347359722201293600640531412506786787479917694983768310744911797082165264317791360683740789327571269968915879776636121850748548808015806026688219267831686712252963053962957926170242098196766658148567846647786313088023910913631720302742860065223305670317309701666564367860289977283714712339282772158603745355362372450415772452742889630726984901940412185071183038750102503627062514622229495276068498654453513044039050344677168077456074320438081530688106378728865166848889126156525444355739746547816614823852564130772623948098106605756188846238769380245443736670527536555721613228737062873590408491115266465290794451455848045470631244078375769145715087384361167641638133003098941011769198454223020222973323273364933310528447134426463679587133932439602324148176964742780132222252509295022715505122981326158266520790660312080825542398102229087227897684974487973135065521321478177785625960309685829479855914627586017497529389127199959695227357975357023783587423795897914189995326868293447059093244876531383273308224987483727349478129578627005832701096648783345566850424937425286205277769770441397614555201776493875866169798432006171442263506750471179174136039742210244871529766328259881729609048022371674981935546722287269791794282890193526209753417079249714366435995661658612122048638077350565739334113985943084645430042425690820292728274818037505402147613672491428099723160216713620667399378490764225004098056442680646068049959592056680993772133323972515182762493833556051982179662940768572505105964178618825362236840260955156567336238207923740284520260109748754586702328695253452298246938079376597767686657771450906749292728649321340233013062863461051585064711631593794294912746243951419833372976513471105465805072045319744934129907118173311860915726569050681758377617015251857019712445492763189579825607855778569961124664446678827638539542126539386588661510158416053924017321755016380411116079612797322704836468950328933842913296316733597276606219369814021584722485422653229688867298491926717476666099815207590584958802162863857693788510841168305468360670074460466859685997045492329232049016361658017561366250101190368026541816914491714234455340092125641191433981417555751101964531117532464667554305476668586404169507847542975578943035355135075165412173808532441998431791043310994309173785130203147091328602296612997910612317492547635935095405781382624517203254542363459092593452563452580001705321003314707604650634790591514181006206907352661602604406536513967246729637665803033533065520139650473137322444518343642492538186925786956018118603148764594598094761102838822182801137811464745887132723205618288785708565488770036015715353007282343994780298423075752141961169053893417873063506404922036872881874658453276101450619367574605627223779560752587048633715337254046803773820339032650309808608121890197264820263674021583439799314711977667563160187429672313875418879321255067304593085818840644025385950136580314426893115935634615100481588435944353297849454043920083840940969084437252402497026117156739498293560295982783211797320429710759796298970256182000639075142245464916260534437028244323699965531832121375261334094760899376032713766612782337979498787144104241472633281860273136778610239920824135514124793162762376402804185483105685551129653170144857833177478925435113177558469971133807701524143190789103642526625072451360696508048524685274780278265918239684860712920593806807186790732060597913035734936435894064548422045648675927340002578564429389664224780581720281521575311796520441747315716650576067299171140252815767311318139840625304365781979490508504369387421189835892320362450781388315824702373924083296159563795638419542820286644277148415326633102768579055175182362875990578106294684774197116884128467578733084670551908102376425479105260054272425088309079073727809327327313651539859553833850125228348298934637289957971477338007028058177323804077038037482450904287568989987031050045371626592666903826261674179771655141594517922054138228142492725390841623809195546120723201952212248707970227927118980605452672076600211288711950857779541178770751024750789012243980674734098134572523705490930848883714934333237541806269724318388434203922321487127266732076983533888884088997936976591768413355544595957420162662985840336166786326924291862325861058704859504860043429642588327654873572105236444385323553819630041146893666381795208228983618899119924518376395944689577388162188765567511584756254773423166657261239801522710180441326716258978245755807345369400538712332584853077632355662140174121249822526415925265387485377644429275734024269628020524816698755846277314723506759638502780398510611875164896412163156597655176329283355984927020767614081452071914688384858426088774363729125118403005156435306884233163517744780624909147580285982893093981792229689291845245067633530356167431445913196317248188775530584071190614693781717529199662230365175154230253261718616928231262238223821186207381250869120831999363779011465403422697277113082975143774031728367467457913384423544870806876584097872653763018510188210359774833097685579716969790138952997873029775045510459816454805802641550323074725120902447807537909683386022769706160212665344226454128628804887331336110082325378742074842819188989403887286010293441682401526253763241994841408973703802008086568512819580286536654198609028251367699142723741667145804290239505683099659091198538378759624893076683502458987999262988679280370845560035090847010107039081135480873468663912412165177399715786739377051107605557237996015394956236845176189215402088330764666722972873385111342710300439394721991122225534419640199792366980395470874792341171543052290505372622455357096109006734888720140452249878440893404344259338723104512614126638745873126089179016219089869287730781880025380146098091504610378620527770525045637341906587476616059631755566415331660138619417536109084850509012644617893081806104242122249661364240218396024040797242384458119949260321899184712642390871787497303233602628788991062815210354876737440920874298222596771545844701517168259613481958175815251757039939347686612279516056726347310962772424293779853089629608999254944441231652291452695264275985462397105166493991423072573610802298219480908563340655118400653995124527380171580425683240982149503405379753675540291070432616457897635396920189255685816096479417115117010675641283410084834062752201495372107787877420178659069330601626010502982819779358011819801233953035491502396434037744392885563396289754086739246439041648818411859244502505691468957804419236140110410703618489214863562858217539341447753362383987739866058234665160724485512970273287377305088833443500435851422630699338631937158461446766732057594665418212959126139695085179212395362449369891538642423695711722823749102756485129041392182769027278010494979064346814827275630885231076851104017824203637780217135736032589317799787066088514746296159599315264207126171211826384140470814386620684275572944590591004932831897991712877090550885179750186657132222052575454176302169590137596848699474569352678359434868153455632710196602199716859757167433975560629459693556316447884183343206016396201675910080048895747063434901814563426345879229303652153216622980272884583512932780610431270945655576900744236118808794203141889907880098046022152803606222696036818008242601400493932364984714918411368860888464162740662396328815701237279313459474075878927328560237497051559544839196151335432100094964747310739454826418312325051436021559102067373874938186755751527261917733019949661324132412135006751065191986255290312000166910929265884187177298973911356646000544019765045476867276342666847676648347563878159113121409730515672815010221007785836934745014347989854255129693732764751407284157957381022084275353288760196611465599469889863947567481879607156997073677231580845924562772155094352631386548263157249493571989900192656611007511873194733480015618764060828594263619969497627772707045826521429350189701190727711685980065659681143705824050039157285350008252595208507605620073319784809443883073083441318251524066689723845925527038627781200697275231432990651143983841812649693790360611326681190429084504500368210947078391290171383595021795631980292229140210151041722568220250652317621401885071410809882859128613451903583714003977290957665849321138830310969469542999038505191536974470640303037799773024568615629280661183766391406898084155397853156300626648242612248640007880522363698868452950954481808884371722056610728856773172321673582856928410066989264764519480681252707824532419816767078383917352670871468666343929047211855494691515699001310273717673048279755111670627281211404737301549743157215189607159088828870943794282067943954059512266415739134249163412357349849137480856719985873166315588136690496304742522628197120146619141246790699789745804022175123013614698216534199474557605021166216776618102118431168911199844505642246391791728510796925054976574830958329005313969765325565622444642811425608488722924912803128252168502380116443377603164339529536683553200515390178859858251750882164833800190203547908343753776548220015933762370574749271887285440448477569863827140954043206411990486533748993872169027905681963513735098042633177598739426057418006406220482532586301528880860805842660744268183763940903418098172425404619340239042911163626341021040700506889069674507030452767003947410395083726546638817016683865687391468847660203376421702715211307016068601386832985619404810093681868190514824098149503021190296291491311931779415925410661315004399897140395631517940661608808561524673616567277547109488769854255266448790118768009267826511889778072223705077481360805377913198840448496953890079086509009961148330592325593958071907388505317267441076806663248802366957770134998330827289830462412817258317604645470835399199214147360003615895728084442282718145685159585318588924291514932639187962668618806272608678305827846882921220178425665163639961384270982943556668646373678372477986771996576686017740627704345111048755179425657902928735839393039429606775190506124196527760456182242556566449122633854592485403733639760691141095444597467406772168002169901392023404015973804443106883526631823947823612494687892737784377863346071204583982775135928024400985942676008820317540950117964415903546456885279835732664691590392063732339342669754525897220054557199516192373509733888055725706155393362873723422947463846734754769213105175595015451978686363621358785299358443258064431833652831357650625574454879157659190360586522445825661312449369830355303359861600411193997356787694678632445036485560930925411713195077966288130344018972826168639395687226548309504922595491355523904617702401494030007988774391502925609477326210336360792213773434656895738136929057742474042790145042457840094724822861485748251536067631510731163070168928725338184328910016002123908020658616571032896449810387066499155363452926653282426104446758485511173532069874698673383708215438588979655789557259889888546229893401393569937835694362787851084270486227025536373409166717056667533941608697903193733831277393942047270140677038482251208980474806098747386281175184044377448346887140161324476632673216737048173487756670674371611875114444630441343540912861747286828912979190841649827351226066909207917218339349759421616715115389460384457239864303414740254105601618573657857495180556291983875920482463504651805185216776751342955830001527843133968255642204328114711102140803591284621786303127713814658678243057079676580882722852843947039025367827995714591130122462536081263626777193238109775715224356226069674899745733853525946798915084105899506137788956299945004219328656625402025924863121086724629451030317037353913917250690249441979408496707556661284729358210330599870512824758525278024809837250337146343095380177844411232328162533766813381720795751468668229365463740529702394031607722024379422012632232207557604621709971715743116316841302500416824501152216290250473822319094084318559811316920764537479101556233149602819448303529632748394521224870890714481606952170302742076816744799370744416965158502041234865288752456326627606054590648494888777330269510577777645102241338468418933572530420851536848283664462492667913379540076527214060021538677090868211353287811793430921493310639285539322142907465578154303741421833107328248821214466516307003753178449810727667176962137355594371496530084470062885360541766127063636596814699149989142263581673322364081662436516224494516485556464102034874867144557331408872744794701072662920716118701527854984167972521669949754571118991449011672802766941963657679371052693324833813207390863456500317799005347111936226326884681848044665849287336127187345384297262260410861703283865945637099609642439600316185733150294026513587777193792164607168753491305242720538534253231788265357873749144637816640276094572109309524079445006684231215962493478294416160387124537205665738093544907620680385597119878027187634235378770431877979810318085609385246640149840860138365709574387154846415780792761713582261385218530586199193231471281304251185040762131796927117991611983193173754996931891833162223806788328976924129909567349790019647825439101603285530371655664218723296400575335129104892979715261423547171943207731521748955500052208514818687820674838448458863185038887610183717231863345499028761112504396579753918468200358140670342725821598566964319334101359323475832393898867711420474938000458432272498946447268802745706720919724942533300214352414452085400064044578358705020012033019887653124667850396370312947834881747969230282766887802148089314525059982174760588685045715769911330888127812497192141572226530238113075861169107427638526258049794601662851329819596241152865269108351461208539866141578065155932189436946171128081474648279562039927769727219414374900394895947084749830070465902313408939842502149335016255156630971559582038037048085449094105844751086238373248441032078964015401165773994409420892797009990954235469404902180827127550356950326763688169759056368094172868500391475654049173483104785688956986373000539219734094693998714130836877941282258157496117281578868361609056003515807078157880749163168884914806025287082958263474303871986675133230641262626710403781968679384738025715571823593837067165013335584456913440242085443762512743256852487460692805229264000930335478971390147057634703532533566349189696402810752966342555451469314121893636233895789310087214749884913804609330994433688298248917615038099010206534286049649172727677634346517790746436349162161447118292788131171820258235175898737553556569258378976357125209385768755041638912775358641608293766115942289275771370946994784150985949470043707180567285435083392444868814698608095046379084363222596162325814959934409910602290378595441433188798548177199293105936315879576125500952782672436950706030335341251264245558720799463987619722233150878430446420832549161723466207317881112122974341258029990860767475313921624457225589813053429700555186748826821891583394701734257039391686561021714360605147720479919395940586666821934795262346121480052116752192937425382669035911966399542346611898623294656004698026749229006251061699862967841121765563466492688877480240849965590245561593388672956470752621522289702111693098330239206609522659779719636879988910014372030032407461015738616917097624628565713605199614841574266486598543428721605746689246441333214462270570285931206320639294839492077503181305930302082210931259914498227874497732854111761315146993053732405342763918654693316714277089307518869735519711452577491498828974346498175360887475757359506411861124751294078218786565477810621288099846483540041371135451506934969889564094537088756885910961236750461323511643170920961391227822982032937859866577760787115400113460780349045261383801416227109186473438802444315942983150117347828844994296236334918165094162691980423200985427069195173339610880581193711996153616675936752459843023211611777994787418599374750840546992154807628825876493091701092334082590972276368419049742855806188014637112511246135571975362357741009699225819075045974669647290417014684311469074991568038774499154821437717254575250935835637636929294829899028214022928586024151480170363426894428748941546332854676296322050595069049628718031706679425911980329969977561019018431440466439815722783228642420542195159071721551343676136485691865684222513011023486242381970836626083801323786100358773934301517443638220494852586727885403829226949237686553793963379118499059251502657623680933773466134177638376847678447275761254580938630281072561171341926262411614189441935900075143906426837317943049262555197405993130318378091797877639820621561509832285654753474249619685438435949791126356905985059155864136621122240486288498364075538900197511307277103157151030945042528090163532431577964984462598400359693663198066934417909435847191721627516872067460537136750104083652260413577548596858526290478831077516646242456116326016562105538089508712888940717800428698374090014838400828226196591285821041415618589235247843710220036989140886118037040133896560180597984298082386826638549898974573029972872829041158135149185511902334501215922611389848886503224744621899164293619338644578767744230384658420046532481469045995472998071711392385571361873912505259286048884945942443132899138534394255058874374656730241300811190057463427956782953383544735716837353118786954631348830479305178790199901415166940316565574601389201737695721043292909185504921421451123127433594195584581867195305707275517703468152797243997717982484954823124762378995891377046010654278115673808661034889946889480155919632318397206733898614085474975532128862777581916217367065322661635904557817902428291736652050626441435956675289974405013704436785098294330707199169029717810025410112179161200304311104036183453946553214317068810770121848623834809580873255274693006684092810969433424375907746524587687485170399357128106171858557242521460608922093387772328101581625875127329962483343118964449697901643108357669239702616803631471391213529781384914998152235012981841250391934553359987306140428146680323189873217294194368236434404932362867271250606894444892833965129710492708720970630691626815589314915975790248527752183239678463493372995664808103141691846133232423038726419642843924906242201795169809340655882745752569521065918483514705849068279762571544818866934822436447480729828458495544806051157311432039428731181665190289095757279407882233651932694513149013259962534063458667928612232669009142066306257180172738808532680779579411592102483295879627359614292819934604353554844687238185293420647574977472394311651757043893578941709101054128792003086028511832598664518928618018500648364966963471168747149541580589383462908443815548492053251150188271814386245564229334442912850487719565729719733264660426111515528131067758034783148055768119820449740740154538991088541392608931317570139947892496269707780399059912018580814348926398003111715473534949709291784220420086862084191815819639276504788654012598329816562740656130166306655415704424767915510406013602759655904075019918934186121914373818613939942254708238366076868765709165668857830657029652054384947449923416267570142673890920641604397993174549543136065823069256825233284745151378349865041370734049043867767621339647479382555276687823744576788833027572975918574490241597947334718772337611132198054667684010302752549359141985932899713280631578571117864899985596070426749037570364091717681231626290226184472027280236498889629386129515413600947108820680489237439017459629775306840500035436149931365994019896024080600269462943412039308935831671954030790244176938938306912259221132639711523486721009116257615732681065565249724910300477905719623010260625532570090606576684043548991766712581550333443370067378584846996611346659536929227492071935006961993754661725715814208807997835453882376313672715760566024795019707910526609269276377743789734662636750385010380285743865488940511538182938615541653393171740736919435695362432647608270199541941752074724770299006256571232246702866885581406018644314300685900156824541602533111621019921712102221377307940040425716983410215666334539877630921085820304440905460661454527082528588025556129285385575801986610297416297609411520632453291104852873402833159406288632521406715171899577177660385606545182588358221603092525683650148370625339296105534234822331784709434307621396688026032864081665571133788882590233095195311420072312913441687866961091241673942549106248060888978147656885394575983252775649159817985869547011872342060747859921160686594182636056660108400987700435597367524259719140961793850644121159916350150200635513635912590777807147339680237845278227083421505693728709750537032172568312217646483126273494053609535083489632453848204562891498634849710990729318584097129621361272480847993883762394137338806112367331385473470991635677986864866777203227504937419338662361193154625068411950277716210949317864399033830923328510229222294548808641025475282675932379312975404678238307734220562355574993636058641723319289182595106414472418197920687817055192731998982689505234504185383328107546278561204083441475730099469039802562132880377980318491193997759766619193777231766037189367581541568340964869634707356090867020581941311816129074178755698472105480610742742838750922258523209411974380184596799921163147135060398172170483272733962061791767243999156987557340171394460035533253815948001065296746401174963415436182331202902525269973277873092586820398524592358204564641640240527080614674383375399581420889625131032594010450767275101567020495172059156620713798090106102764636983652099250163259818756540884090295972630807579572593897538529620358296392731812918692992974931505878185489550882086596019482913281430357330915589346506281706093843698233931402589558920295081868461640472097392109446139899362172271174253029998091487326878322937755453581130806697952799356891190293013996040073795682973237973996336211357865644693941800117688260030365045671287703251690175711352412503365319492129748540610016870488589285586712270098475277829243516511924086414820203793218445206576060596494797670872703380739102843239290722236390313914894523923534604830618917345946346567286925936212673109314637737114498684859222828290268654392385676288305707901219827981895782055135508119404223937800322625308089711947131920216944071330745085045737906627911798370766380499654809824438253557459664295349395998386218586013548958463179190585491040882938053685793138913843252042194824131891183644459746972151592652263578699040470608142036918581165336485065898847333974115213179960518438543066429406764049414431276685026407399199306486800479704540028251748139508912622218181224286514713481870544392383786691717694119700150642507860130517685372529992359462702076996145216465293350977802452451725861326661393928871042438296448135168408594597920551230705998104619944039330724072277120166202606080010695758464564220491852547682911301000913603896743059982250146608261390035509731341309699981551178018333635817938551099747444919314611130599808260217780788443973304558026221141081076226213866426681900043806185288506875866101282811501378756851192371527871263377462493603898161436283461780563747970803495683443729765483770326448896172927383861219625319449531924589548559810083922492044098485672139705801743294512174816861961928388958196029406687775817007311679861677438570289655302283282536364753738491183543678137790063569377573879559081282537459834722994501999878622272730606158007559932535873400654454760447457167266024543637705130919330373168397886319117012589633045011454182284039453993146908759186270034409304815673924225816151414414325181177955503836768251675367101620636235569563879633942429603334294493258828775978089139036017927023843393025070087811533086123777737117103288732393015748982587155876093624246184113158676369118460964309627397870005417015010359201383307726421984438730686083361844995508868563223138487834985720098072209609083412347547342850737645446940283974876993977432729526011298910979219617821778956812402496475236064740238376147746077570972136302238056320502942361992573156645136350658961109393196550183496091096620384073819494068881902039613065441191369383874152567617470982645596593826345161579450067140605062117152198492728188219766569802007896658269429820230816420387147028844622113427573503132854252311135966690938183575303568804021316008113279725837787275645974531361049160830626031338093821692884979769880544543608872178157344111831194787790315124976919156905212244763926694659506557414208461858209080031454489606833223847806120670440296983203206448466874704093139337425825004129047142595373062636168446340582608367963843866831993433023717498581978272030533209399123532761723056817830434959149941215749383794440390016247913042587867679682868321269598851643455264306681423983649342458922205243675014938279600379722091773705584009722142706214523466021459528851106632714582900939313106376465359684381371544412064152883546508745149672284511847139747315446253514446820318427595137906728522155280522312006355458243577740337746875264835349635329378462616162179152859579580465182970054065915401403220780175035682411600313859621843578205234280952894042612313716093996310959663685947274760869410645430832231475375777823832295098109125413726799625294937952369262235101548306026318778033896974140231185830941516943580631287209654191708442785690057314391234550531932054250967769252913100737555674713067760624861417807968624083342857836840592049786763274017553996466305090402037835989169992700099764295814924876294357473933507210313912596149218205713597557389899555563169827224227888952185977293682477687009262053828579812012588739679675267452679498411736217992323901907026118868909745701982436618028059235975360356293708426963747559254505927985555545161200077249861009239407063275403519194236431852779425319458464371993854274782709348641263214510649154948605260141024704291426917682815756579792481986160525347066765625114776000476505239829321263745662892352453906377008506326192629365638672233852534197454231916199468205319059501435125211420029022419418048423009157228515173729988640649641261337916729132607590658835166448317832373420309738451070986650856643664168881788754060745718215098372936005183283708036379669285467138936844168964129361799324669107784562455175961412306995636512845637858152244951471369976666589421499744024113696902049915531767072767125225794719283421065152325572487665087804698454766958138928630192811982334884962534874991424032543322096274095374196541674255218597515133514196469038978449671573506617750657593548741162661556690199979818188402135274687405424188065028355368030038277291902578841279291006142537911068879886708697859859042849539768698912276556097058144826976476559083144146246720354524370789842359500268013475677909607659841719398477170345229217751176881462609408473950058302276640549974437010187914492622319464211801994487977222567819487064038009582509147849597597663770473618726229078296961435388650192921527903083847005354101910765421791209897840329316124010137362786424808244269813899729772324500533053994885328733229509175851957803370297149453883860923670427945744112626683528739708576279053259540517748070883518743890161969195710099398871848186347103941703381696595008310174256976248858579346778830708076892521176247206798929824679315258097270149690922616246819141136810454272203368110537189055835675952639412703041494775399582690522263058629081763997337656869831530065806578000840177761327246432666958453207434218438187819450378120907811543971748433771107638531804922553918178069490463783123643173183184819607960277435576767486268117703332075869168210585899338419638136358857942711061446514224376934716065663819969894583651305960948946212098691154407597708753551068624442129239765215116178946054148924577985725342620115691682510166141487933509144794047842138908831943536033858955720510869863419436791859332913597878618171021643203625767967556952203325856684876004006779103105834386531418482235447699993309638576784564143330575267332582115819441757703541734301504773715246376066025458631806328222783265509162290035595525843225651662723556030504334991394157363393443800993230937685033697987281999783662755096359045645850220899612040084637976669261322239227613624305381283294914734390834947546199267547945303883967781329815089270526298663717578121191728307757787586268138397721690185034561615758830335820813906263042645756227038365884996913703142642108978180946810072753166148757951731089576305979471370457245498149710501813068248842816558370837430652704128492116117094473996517094961394096314715555537258749725258690513341994417349480228338229528817542850889340248714609378525219836467557234764287827683277967427128131215630919303207593282911914565575465372566094543473240756102529396695769613899595298217789638147888451318380443191754936853023454900208601186376103134361256447207691823895629878109014800452056324538553372922692983165705962951770831844092807203894516081523060492405858269485826930086417147166335002839976300628308731479357668235290459361339856290345821815596433924640058065096485592165344945131508408584558204547814104217908633398245055672360257383220573523474639790995249366685367749538217851370978915176699478115757329628919447504310562591724734815797834252831885366643207850485618176407154680599322563079196584145440672393370379060457513151682900478230615080495047738419495279070482647191232254763178538294038258684106491346161112236065644912020438965688696866127058468059832978565279281169244563981206261691998080089857399821735754757512338924779166595997347786011389617688836403778272566583242704882572566010267377437546600152200049436291764215156420829904863669204265814740642351333088017939630548460634828983076252296305543544722026900814034539362637398069906520385531781063945600625860052208309821630282876161955464952937591959900398842562662628780130188866710457985962558105239099725379972886936343391579260119164006570192015094423305303519000630845012823733117233199442942777672743712658459541788746169959104389606912301792209144204378270008392642560668672375484651496498870661877596611250435640963606400986448987055985003503966325154747722464078811491884997857058724028796041426175635049404635184608208944658689573025024641666925193336688813004062997590861787002559677821680405192907019870242134442092840555033471411154203389135669838953472966989443332577181270724702808304184335775562822144350647436415414360241340155956682496269175996160915166002662874795788358879254256147637075383001670748168521800876122024111563062223995583224919027373618332643137305121924930066277429948626039718938379160545021463798229996953514602515290093729600010697720000157653767033712072483647017548513361251962583369722643413024395069116333954368751716467329209800618040123098583441519060503504355378859933975032714430752442730815775804729110797482224886326180126317550788471481562908608685894569852803710176228167103063659284968147071513768974231004842072692631001496996697507863713444490964619122842100663101964357276690981735804352189513197908054741704674485092017282615104992437101967308806854694697033032861988915922138089231148846897707070944726160858791091130040737539489394403481301873420559714410208421375037751063935426923050209574762996700131365464767730272453218038838957684944240626709426626109765754850384705135685513044144690988335542318235135452413945250890018368479006503786523098257203795576451766589994284718265138656038439867955184601514789628062161616110617963831780203499311702055881142304438389953921958998604181873188994991106913899297524719290055916023151854378007854795094142038804053625680686954319523677344336103065123568263445981577605914529490519737626817767371715288185365643506800308452907956535116084237341260485863246743472418515465987134101908541984253100962419480785753450461156342114259490498596745374022519803816753192418505802403796949679530522702398290220071714005691256477415302642079959061020660837449164475672530138319618366749931262064341852806678387838828278659942628841073162547520031953081640059599836406325239524977319031071236429395091807426924402360438798636137952074559010260191712281127093216009692066200134310994174482655919354555209170375172919067452958538857884416613835163676597203008349210415727320574108884039039559910123726677684995667909150763609697986455088499165092809776973755787546398357551135225477946792073753852716230375395282377975129861597051012959248512636545380295121519699121612414544663823363941010577469280642044639174953311585984334987339036700047195557327320202039813412943970342463744365278245584751088525392982026208611715639035479875381572326210294876631864878718233457956986340006474907471182153322364559923131924516239326592455025855767230800424618134216753499759407190013911143870697963021173936041549434911070028969492165585811899157068096218415045521702098838237061674728523007779052938103861012139920656127769397839008922893900720557043819341302034745610098851413594858645120435840854096203274561578243004303675808886957152999814790903434995664701087251703918027190080461321659904520073562627394544511137583376219735740643710010988727870949777048066366216191606944908903533198168628682965342192851955514637596471003798564641373331686402114611691132011639257329666069809278285762055152992744301913012196169652307829312955438079154950754651858636425128875070958897869976044553091378267572720727325874614764060702262400315664338662543672181512039352500298220030506645769211825165680702265415006985924435443601769924998425311805066597464413516366906824550737785807805641005042629164126719858585244709634502051410920527720533329205824575742515383608674325487643715195627774885378753711609450374426881707319711248306577626260831544811360872661612803346831288797486782649457400097396542023397889875555079810252301028909346322142786187560126813051838452756023398799421574759389133601491526693903199693317886262452152608304554633590713087880098781556903642501194854392246902053076382448993553125886836479239141716357039371152225173024254057505395022720423499104303460085810016082044709425570076012128743222080986800775105117431094760983154257485948984454252750012381475257651559508029193713178864157927593136447635076865511204330972053673589449434199740828920859195062649734737685532477861925481761769090081052120999806977848761004722427715376166636820074670790240312285492013161430826120138295721791067692735439360428760143927548563295279820762686754203932426873422770861559518508941618413693853025647087868019879023179223622388953788972565293642192639276102128105080133631724144625937766571813562475198547915778509341697060653401914024354219719666971947478820430347547548735760513728373640188665030595144703008405302106248034489782375945319912957616565337257990035301199202275447196898226890195281997823053101640228303918397074171285625528616535185505011555955677333852080551533714997703375226423110371776678985814303105789980356430612963016915925536405505925420590874675119639758906456123029074305713328042149102636280211879916008568528201326140034763319667451595970949405939348303109162511047828147972623861702328969350840986742106951548607241864767457563281888377768244317182319631383698124133742535586670286779855146367118215166342604403412478334010721287017341749017222839064950346752229532255516359806667821423702923895391812190049519596267142509944385345377344059612939550910387089823300008146587975834544592799147363435853971395477848388337066941953427792756415346368515615706620160320617424638931737207456842017409763616915244906924901113824674657115487375447712361576986322152459274011511533720488550033296533075808658827730728848137264265499399318598042758284171816814037315989448002527872874823562222144837656336121912919111859593055126062695342549425919339103126904260235016881943401770011787552859281638837515425514176774978387010018638184603521807067703580629186716056889491541025762548094676183219688770180244955152250707857572112464881066248059168258719443885232563902998752124245522266348543245275660788299679844211158285193449491054227269870627122451238575468624355277278096896480726521172576281025640158193845084761136715743058628412514524697649122111690899376153686275790984029436482543277677307415470278403743294720565441451537983965011642275546353616370781115905435143223863167831934602394690817164335121344280664180844016238533467665989634413461114162006300136557201965888045250962763993153877458839711938765691182648444522661706297110046035106271590573439250059892766977980509515713512524841272082655274406990787823236385176178602780842342082887719270064402906680795238126697641531171663483349300215187623873927241072912346649278542199374915049802714738402168535177359860512905724277155955347011128620329932974991088512295932381993669087117137205347420312355310202356934006602942475059273361740476310819521057530895775597510963855947335949905623940728954501602867466117629049507879374021807493960683962123353184267008754307212803791979641486463389487006761827811228653077401840512078523297749886279546117354151846220487547349632198832567246403318434857545173699750007637072177498017741251333776568001791672924360940536335613208161835070532458318425623071674682866261385775562683352599101448472513567929864057384498468998839735759124716429862927624917963814183524975373463296444377507599216840509083589339680297971551582424169361344748666483696911578503964568979148443791936465469381054437656852055457110333621163715225135232606599868771661696832252573483336572957359806027375348342199127120679726500977352109133422984601339003678247747629760233519740759832292288103720046637249654398671614462639762368647838676310571649632018562083179385039687746413805090629892336337963613752900004095293287677240785827025895826069633437770664524674348162865310307317604675647999020294562511636125817042939357748540293940071423996655946020441507859627648364371196479116141544528681439752221139152624369208127781420985351685839665351252312148765122156820475790326818673543246310684786933520337374253689568521426506185744326917591056983903177786787252929762291253190852851225429984063651188260533647020020273038833076543348292961257258326386409244620484694191163168871608793352061035741466013588410903925571791441561417385961411804071114586906121003156928112879991065918132685850351716815002634595035159215817384407279463826396962661215373682249199420903623728543016104818361892415420464931314451882938405680723072754110990759140323313261813182534202180095600071070580824777744215152259490556535223085243972643302874809052816256245868153203486733977076681643762787696254534104182816078766671139176714225885477512286584865395286513613035350643408325532711863553910980215549566533067228788968981152909991485362689113986851993357788424715653011268037210452863981597247207375597089331056231746416661596851505385527146473846053930147377568207243153633563060874103733637228636364642602421831611118012158770387401582076265496214131308266632150109215204955607168400800149159987021251795195480927922244271759144758143511843411259391669881775959117730766408518702728061562574807145359649109299872498544219865487947548436282576336756584120777040595187538397113084328976082228434237427674042262345467752227797855073373541332986333382400738897326993550779786019120668839904850599444987787899298134415986724408941388850721334668203615595159337580368497705817809423724747927061681147949017367919229414011842673828010241601150451149994364245631202973623116114161086215700625260793918000345441243522054196683535123575750393035462215433634184791623792598376254597792766867912791428912016935665825869562208309125608069415968220190755385229414448285208470448142536498350301218697377503368697567378786369501900463544782999342365140958180780869580622475612857713992448418756916136547120480967721358074682978400583224222608975504964535513399623179645524653292965652061390116912394537027305120817587686402449398899273013815521958717412751217359902356159401592443049618283062908561889218567654226346116806208964850100404834864861886442538236213383335929355810787982527732398185929793067554605862463065457169798867174883350604244525689946072123926199036189635266309940745947317021546804336774102802849508048211437655172128187297855637478420484147369932110801227952640458822410033306547666844550523117567412469118983350956753045784894223187430731862000122824231273569707495471208412204891301572045062881954820834222216515365702813627777545984188662799101752738704381164112553612848251406722896341948636617071543826007104734357798169772592593455487316931204287170716299863352755855003753782440756570515167105862608727738872092170971173853485810825750466090509891956659256351999292890560526062599908913429952019578203451065231521051336615989787557796685272667502419840954588557151256154670397704963397644447017439320707685691647655074506219442344536814629130714112797910283727373777781137249205010976601864507803027260876365976980057925716650093756286671990006628720707324152306992573390270387545886222027296320596489963250983911781244224704400390051108796743193781031440193599663051274641116324655715099484216422400794001410640862292508347974041868457772083658256087640535066937880785173673479356793505187352735519197060455073875165485774025451310414559817206288317367631273294981887086134646668523737174225716905216673098158115182288139686401541325788636955677764457829490565097403373257454050318726907149431935298143129400808654970650357091915475844414533317753904120346170033658225482200030471676788131646506249330167629336325156378605341184713325407470191866357229650236559116068828903738685167622833771709432002993426097173175075119764604431550962537495189102971932323478584161488283502094489717848142264525784253276924057999761905278271228360015484804436123722496444389861731247754797359430031703971955175273183576641195250125236379468137862974625618461457785072236971334420036692392045720765166619078866050926568517093576976138950313062820210978455076455797782399511490548403404545560180596620422870692646278034266660093128318723791928901923473227059190550442129027699506914881410125732262505199426651125715941390234136009379292105800822332576280136773807918465163314985384000944496090639982953641956885477627656348062152597966824667785931170432064474315017549459039302567355844561929539887171685505266256432844893688208505311299439318948486863488983462803097329756188407789757557481638516312208793604510717507002643047277424276296384104702255495913240104647387221098880419582762763046822989760107097129635946989942150153468741223327582840382126724130574183661571403381124767041934115323415408003043602743105663092228533763562589223120806217372494840477450301209131732388873094302958181287444372514787966063701458363713790572823811533854813374343069082858988057577339859158166108764850676980123668245889605515623060693997291621693368886354054697938987101899841779703375603122865221241763338416403303805831061333019365773669683039247809210634535652773296041831029211488511686623692553431501244214769916179128322573533490443442478992682983261061865079831152068687895534584032122284027260525599036534700494647436757334267858845526395664608483671318805621879968868932055192219475687317105679802796924215871733648955129208319577164001032698048832744135814986086694597458687672778875093852286101557311959249935523483994494216901942122086811070757307813237638033362879120599516466189069202754996113000813364814235802652008988139846143054174734222985639871396622374935470274994394778633638007278150352928168684341590459089535388672793038641296761474639020539280861317321841272286097283924665024825277574455758434468746713079857597402971391919155495556322719228227815037949096000559214977069376476662389936694027593566820985460435205087353927573608442347088116527016738171414992707172492984600914707143302321545652285808713247407408359964878148136813071960983668658292749905411097904981205492196832808238387094689931905596988434472489754421546150802016851070577512662731277126466607117049064164383522019942461786242924945013492168705297959031865986428369215996447676453667019610912293943753489573921473595344635976903869215283491177084486104522617664170436869810234288468692368360462544596802335542886694933692476059903255273007241510983408620311353794506567646730158105679586234598980181777526864392668962006419294372325899076825337276974893118544639103551719897231937439635654832064504038261668386812253801454798468043465857779748079204182146267882788447255687916714714123293100304406577660864183805056179877032790526879731365633916074355944997709786777172700918757085386663615729903239056675367017284599288195225199388220690620306603569830569772601715138595658325911890583634691440969897447898001767687138531328428238745444356580963031781196416144820032174317449245530062366142569513079948303298435708615112582704033952789573172737982775199719550595414617366786978167389622951122622427234023993481578429291216253464491895734067997093753028387450264490757087379371687199842047231935214406997296389018120569191769044722695723292831138859060344377302330728007897096056747819534367586810114908818189907177022610329146452267421889843230901182131846611882509752302541387424133165927894529324899527962589933010203542902701596965311024537041898007596013982145030673575219364847072642027262122055392334925360453763385366677873604595391281160694626795425444012658079674428737987327912868078314422765277330592626622936895285244677632224150505750824749231142624881520351762913392074155319234539505465079741164803880368838092699313274566950110584672402599281038029321911496883506652074310760656560877285338203121730018128649768312412256377718926104379320502682869264465055569724023984536573614480792146772396211552648728293568052431514705066261049030332576826934995271783129173331716853198440563578135919028726338890236166869733477983178040772162567635042867950341490124247721081356919033016242126101572765235124410513675340307356907669631351831028580279007135004891989261781765426425245835509616179404260597818118110468513209381137835487197323691354097797107754668276798167554848631808435095237082102534213634223697828909511668155667516447166589273603663432593585743042110670948910968784046577829902322544756922719196269076823271224761483589279728604449507740513412921661492623491669603236863188567767735776678339547735718587277123249597882940152575557330537910935838968404132934310945498924476656639409622352797464541124864548737095591522742598364847234891287186516678333931099972410052253226026455437726248764838311292302271036351257003997963708093327490120714908107761575642396434469804652275336661667635105909207109851863313284886540197059054313726645543248616597336708377983539213795394347301820379313118849605386755789961956217738254064181521052919946833497702406827688681953556715180882600090678698510949819062478415061014076818501505698431825791864604119218099084822659857190754574597197336506362584340797571879910024071265796124638750093181557264799996454464293831030714469292739306723352019140253827872127673107784226028296424389719771034814131359309033477102971384237478837139469804653708205016263910427990732782958424159559284524214719627622612068665992365150685247024063122672399383311299042941711849078262320975071919059533237892222629547296837382606119254878412543985414483297044432647562483580320719315764346609828657864164516972642237003235471384827421637110520684652493595908160062076447749085739895621650542343497578766527820613700919050495779512901987916739761621572578412032897130142373481341672023945276198262898786022432022145099624948735593423222460931801923998259751112877200802205251706322320435173310360449951866042015573774104903152204965409175790013766496070772166548239324645924389300208959770811737806514754992461263261869840303905175646052155163499968288254492653483582515258548454283204451423632477235850752975594284606365686630960728777140447860177230130508521636835823367912730632866290070315762573956493306191339917920991159256549555730927829642952788662121657246808888448453803632245169535857492710543495679856292547564117834020619737563782532899230256842771417087262857285382797683496723180644458451656721651684417379124160185644805665689970197877864389550075351574266855249206375806807186144708369282485503388039964896299273384080980351794794553898799504300072023228937322665572527659213277687794251466465589495638167640280494113992981725005387683886171030621702610635386348145255893047599523212677350950568141260943321002359166822024137196041064994952098528786981278351171386898419083057868678728217491773019196187485624988584791416471965326545176312507306817528634719184977086981168398109437660872977692238137409349556025519037516313831603414947236980566142549509855247145707778339308566854010327098647358286129051178755552112790311309658663708009352675395861154557424350288099329147924327946083876212694874630089366094114135247689520819797377573826596050367285199418371027942478583124339909672578322126564270001233203618835567222162430661658011637586559606286022333091113734023326882244109231482162267425401982730067088586101490103287793806494403562229515180816833094234558780076185516502036894756025923888883541630757245480369535659892176294526382764192988168977955077704788506996126010438170616564241470602549034226051079747271005815761501358771657872119890674858064023108141425554733439413537471541022873081529634940331656623728574107557724178880102696394190397947695143116852773303934036520780042177673048218604602008289688409668709148379458131470603649446759414064311972852241787551534189740671453306745752986810693439275542287903171703428446520809584242718395247566116151540388856638966858398449274569083511290370135043451872874139178294925962563119137170869823195968097613303452261963645048235695141084377683175399401507838671365149358948069889573392260510686982140044796160778881382418256877271778202744472467735059637187857056030926334391693216533212173458635168586654616839911234171195947577337331060916471309362648576947019627472097900510044370877565609960416633218591720357071523194297385163991456674102537390142966693127451811159592578019859319228971572784801289204378675577328635933086120263111640176119434134041404044488016986862518138125102412779160536504517650698682604728636288046069379399744316958859110283320466465008711499989025043911092446582640193224225800274873249778186851237900075952001340849290480477905993444277009351953929933198093652947308561432192580978916587714635736766467549101020945201051157039193061877928573825486419910157132355812322982020744200263446953975232813608101072896298354787221542158393402647176176210163975069840582508395000108111894140542659077489102519936249856613977472747996238119121086141417727572604015646094559425200277943340733016399455047946158809857775705997973026733349937913354483245023979794218553245048605310242529295624167260135788059826172516656110291665465690112231104157822355199753444089560608190216618030298480049068817176214719889885275615936173640811525868405470392695934184456042057653131569257754246500912523923283222263342274075215165357218740327060252349873327112127324379736281982147637819863961360821091496644371956451220988189502036368571740283225490687968844933769437471569046948235919682826611455477990926388653809532520549665040951427480761279903009451842499117890539315417227278158552558355656281874310128143354824624158268803734471400714693031446327580837374665408523981826286987556659294349634291993066859995854780999199775892548515712532062585675209823568764038715161517005919991558202378208372169961644423588875043611876751155669665105670418004501782283465114152869094751124185464544595817950770337332567506644039712377519357181639795535205196837864685017157097502362028825781325833679961961534660975684401000999383750877293402302129236926735054035359867545716643698367616105353109971559569515907844003027127426157230655640071315445427620243104617896011119161412691790815706844627263791129128942112580849014162714447877380145002306703298514896917666414440022674730414460468986399126508138636164194823396494217423227560865033292811740935554362800834716744552580140405524500113423461871703734583495615162638264386960624154339301465978111986037876175326893984218886347788933884092722261300870027533240277258423689854559272344751772477198867558212324461051911391426185959636493679097360912381020551878992771274819390427460934065324408860957925180383229573194585299082816255631776512543869149509721016554797323547499950902910536863588331425802390617540857569383088166279423683336545968139601614789983559692084555559466198453686084564992189983749947995880506812094395092103643694179124367327477671689240351474554990412194673531947208835853017753683594422325508653818840474055795728769305079202712635445518951829490783728570061532150214836420040384775734440647182888135464516636005581522382788548279785959624001597107578551199861289818454824199593628698200384376112904191370264988354037203746020732781238144218624463061368468078081491476285321958098866254523362325390118987663899372894113267314645920447829869028757808795393088163053608918332126939976224109065869617033860252797181836903435013491160812652515349567690373683106470465764389186503361990144869124790795602738090166084463777340717085263481272471846676856475709856163535031088894722661481154807998026666250216916265844976602051798333594171384791482974157864663425058796486591959477843279865449241017242563011760539210444280207549955877442981409811736876733959029096109568764503943668684134670619012607522062487115332602515285514530731104002851251617885487918364419909122911595011432601279594443782326096099595064449821995458557250427705041040704731977878910435901564248905642638732813378484942776274681070773750457135006187546544955184678365160053004338495680121475819477345869132756660468273173408878784060204841502157301621757608798561492923417281656068577646312401002384133310785467107462180039706796903452894012922784146240094795105584242447621552110715333206589071053824326960540479389635673437588156666751076931463944612631751851391486952999861045738121241686144350621993937624460450112641565868704031132265907537417015830567543156852274221276697178371723280108262602870913082091128133238108253591327946692227088929255069004838239599426879715067297789469533519632593591061487846669611563159288207902483330875171635449810283304095260410381960999348515275144392212252386574739945121058557259506868413161184095719120622250087956504466026351702340399434528894817688303697033592049769854224502732331080625601765001349106034214065606491006370971274695816039323018938242527308211904888456120162722438163421715580027808136657090487037518532020726298534493196091333015809159183159143798897663557944592801070857674834231934350917931311512330603022120767250723930895491788342851163470077772500013839610480969296786398507440675861036387446173008331440656482550134298690940316577794016563002405681168646894298158631420549865553969661261271527802054608614942842037327452573236368590967778503548527805708739411672010714543252532354360889994230202464665355827014432118608733425098141751789247820423746049507567998028527475956237120506768985242695193187484972784090234341296622682754279587785647601630272800224670673882766408550410330004997716974649341980178027492152570840237294969565744454859082211816716687569024779258042614398798699913880750069520491962980424686689077755914400827694645965119221618388653590180432369854962585442168590588623219672452145494663320131167575528487962593692278243153125166213227277590388886979866578033971415490221347478330447413107124075164948240614331930324508098124878354527606363366744642860602669924364267631738609165010851453267075145535955208519504879788533364374206602977444482512278359101819328399973532783369130651076802835242280120166140150953571879142707726698492549719030465813454416980463700841157904286254032985185557238987738008739409156240745532230600651480895328954467873352050979858241656059258460483923178295303651680642191802384835019011490661374003296542286691060641587720949209586909205565637588379527362282222401418340931397297712020723885948579113171823366632560753326202301081543375022256157149367854677066162038603263720354576233123676326750801278696272193864677094425188094167910966001676171015747288340143440233704440263199907913108255578199876166991434518845417908656987222976503629274736794181709249381161676781869837433649199268995122852816571134368445337201224037345896851370895911831155996901252933230669724582266682582207747178522959135418765743841493288063431081843042368174063007251406073431819599830653819371304600209044097308074743340176870861123820312225455382125315130335506447106110894024018276170417589973058155318408317438294815004600840547269389252378757776014071346838429754606928993731518268900948612865436314907618828012720031254519732426452029912048414050149171638620012146927820176735901186121552304700326452934198180288724889480160546618443635444074005244266751414997661567438019034354517711578752363569825359657086981951072523484656294607976777356229332261978476669595560217226005816527170040964576564939773243860380514201736532699493969188732189283810357536026349612136697970171185940987771312916060277801737231170454320918504488395623569457626934954028445484694246351197284866526577128177496627495790978309857247250990631452413744361247578960632287510214689256007232868579549104940146065966164525226735496371657438839207969887646261350549960781652468130221468267355817902595411101289336558854430779068383542928714989733662144117846714578035422466533305257742790130471368757384180300020397067666675902199691686070397865890254788943186399432551382843907496449730545812927566828204275856171125123819355152757609384655467511338581496014503335430551638760231982105804673275596989044754115418393474023634464105936243033848047546092177117537279285607472451067334531540343508661336755656482144395765988177298603849914270762302095711158635112256532168718691376385633098922784428395873789081070921714234926154873575107043960527747503169789935778872817317499965647721908704255861611835096796358371933131441967703450490440233026761056352304505298008718663304690147633102271488664121402227216977660488791450156491425481982811722613599479676834563311739892736336125089077264049246216708191079635314524051651115760318683793176911575851319703238482383507137294442384909877652875225107304054766598926744458008789925546757363878105736685031029469528837133213645849881378282186230987379189569421629642773856881857433823470804370145980215017131151116429175061568023093495028217076186641685649069010527394533589827391736167500463839344386054403718279444326103963454027639118773208417569053640487282177161314425827207282359752483845393955992248791198511115466417260978422455806455043780570372644618161254573948810479711960983724517777114754775327744144049070887700319535574722436426511398295624915894483903510042844691237265928147992592887515079409419821296346819946025350240728788334138392646478643344591048375469022702563405309856217500504427891732137979930197501532832186064258761226005404675327479619689374862961225798716392306063906722521951105339600434425610544491698800850589321776604997643350077781674261695546766641982769979505765243715403368756106492390008632218504937037172492095152267812417244211775518618581367868570547822745810313277745932294541092910326054473394492875031992365680397633525267720559986926853337675358049329550513218171054020071486139521474433743277146222806253703148506399105999555264371737694357864531554309319340849107780887653679997868092940304980133834573700862604249898566458571842545322104468369336700215119792555167754464371898680150375554971023702884029250195971304030615419255662792067772662512166967989509407881675762445718179092742874822333221614221498134873459843103746241484998750820454860177026859941687125174922554781977568927377958477932755335187264472560856400382896648390471706065998251317420644542530141297295456700663236804279665716211984767427978743609618968273548095524496848158047493021598361875663341816569937726280727023370124883742255954561802428331374290775765069152620471012670862839083864150990853703131007595949940907432136148231926578944181453323413335785136622554451584956212256896375905342220320283211860784836935268058132399770325738624574700949640438810807161193574230412522325124120270826342629952763356954616782779869791539953907241797416003372760446931093412163785527782392015222560938888336247560150785972925199927989813436221774319433727014222293593314224141724304552659722797896879419452926268236258006260975429868313515092944362710145242456947370144746325308387086196668351716685044466533313789166625333985353760163377935707471684584486565607147390797639614710314573123644052757553861522925976170487393338941319222387828266874261031562307183304367288477478000122244804928630223206631014878320136217890747772364681894361466505872480523178025022532423790505757797609089018011980504219876625038454144849897602725573227032668482449225803973744042603426080755339399802249687960554420389768558084779522310864489852265550862383441390756027012095016472826185112405157083581649644988296293461272537866636020229117563166699279404379122148178249942925652034801694138078025993806876411685303179738195827515371369245033149554452084329655421049178424179937766366706631406066132249364565329747748294038886280567858799893640409991414151588808138494582206577979177741245329751832526239490175861702986778180785067105519285883294284813309762552899512576152277811762556453894675013223896861122455401276508464553699280184874423013907047456077801284765976675224533820297363141575126550364163196880346085394664932599431202987480197606950060570004782695492690989247314251939763180954167583978141178682649617339255442451878913317647796460572041525217217854362627342350729029164197266242630688335045722329634548568621220170247707372786693782333898631108647785756877593601917734477563799363622353799528886478779755103085713658647642343065118676250742459507592532044366714917408541280803417006205094599051934230714443334159685717683882184651820802328370557742348898213227049995070029318973520277455851989382172856080527904832765604176604851831919673965661533354560536560060359494239003909080183205669824298812880213201027907320553578623382143462584990580641528645888492768236006418178957300375793853711053637081837477881910137174590839109422584888602104927090052498741811348430569458027158214922513559380254783499532162745404051783756737619273803786854519429704599715160229760154518253505356701084487067277626118627718965961591128384585801157548327047586688702840273634486921109000785103461823371371297362559049628142035683129877475639564528395978262947619628431212212362328015625678625366223654307561860718844856834985558782551784186874198345459873920095087703944225513256248805016278008850535910484918400524997677591678456608675646217446725950669307756397136454962353764300298884144560054442314634501391890238393877417037230348356130458957633891232203612205041410638915971867986974929029973019991832977954456163911981612672471847052118669588131838871292880354514777055742370927400797028626032375748480670752146457272477860118017902606331510209725500235850098513927596453401938972159699606492720018456886267060130478054068113015980085309169232458720103058731239935836210426136947523253165620421402170057762495278609033277548587622590027539996669263325507631800284469720849598073306266787170367428459847751391082835662038846118595030177997846894731977388762021377083924982432872184188700995780085068308859466954546613820203628181438727715145241505480673162996008854489946902163009991698095723869464617996145815779032504629730626193246008653892824099789832593882226102057833665840115229548922934015915572817553500780209985956291743852269418350359751371654185033291924510087027072944477520746487498460100115727261599030417796256046432661987249305556538504637218899944643305900073592092607474491430027094823493380825123217481583155606639684867890502287077773480639376284845788692936178265060905846345222775313471885411113201015214182125140475861029310113262315577172623541063497933964105950062920038134228833127380901986489842587082446473341684805548689332910064970638972034094829091685885417048863578216714854119979237802681483283354513619580534697231635677804947549544460653998109467715451994258399433280739141574643750026915805112770381826982409385325565796749621499208941878212525929013757996810128453495805097071418436644323999749082145400491669529931660880540013703110148115022211969970526923427441219353628196283958354038861162413542026256750954942724858016395391188244115714318303629092466629423344796306466139140375346776433871622780617830554745848920767430353117692675210167205201013874130099722881131407847033281916820333478264091219855920208621856671873919129307937427823971683897705439687600645646350043687643428716361808559162342757751753027765843932094633763870792554590465755530097900935747593122602936570271760650862081580198539250304013137348167858923370941021241811542592601973181476251117620302437270961248053960462895808047375469411811893834544588293951547059421175680334887758942801330381184838646582221883704569914090332115336348008441329065261892237903441976457866589489643342014651602114464819869328865947585934590534485321229950721021503482143282436097940606644830305449953332262122838564983698491061474456745590160298459323772490714519752897078120133305491321141414575548889570991593707491281815427477916463209370914593760198053710116771862592096183109679187014272188073046444694211239220842742972870941825429676860921812821544480261747283818595521536388380874157872594888655854554154674612633070308316411399410859758739348755174130321473153641348889044592146778877899730601539832469847394956520044999878260040191693129679270014461000305408002649617434680234136670994762535460788212071065040849355619674326763573594300101700701082647804052760076733861085095673058497452677801358541503856468356888493115711998787500252654384140929187764743107040565290001642812701927076543827953893197382952642732547816922776933196114529015869505101511317566619813747134746618427998128476300862132275665225586960355609710620902637475198681094700439390228478260388866705840715495724847960301411768997318095782394105622572443317937978595114510125373661437879051911626599265763817832361449917940059452867366871022213111021620508401455636372182015061528690084737623796083483837217633006360351153951836320873807814054492376151707909767733286124388352920267743721614961961608916649268962143959337684497908093901193081535234085580778122503856108888495823823313691984876581104725147727865698352526817244342642223471861201011194992578606353395844183578938741025017041446120119790192138090718629264815934537070428337515440212209052089270189732635901025265805474189216437302082370801689449845673938853886942337879776506154403255475184548528516303808627105425435329529613705055606780615579419320649034905777469215260078355130843726975232011657401229711079683356658657893545699624173071416216143489815140900278981512343500049789335129564914280231103713631276589794829770128818039644402020884438589312911159085982928382531600901640733986032277516486806108128891422821141874341798258017286733408834269986058341990398296641386442170714181632461182014766052890486475077563122063413405631230771188088993723021464574869816280857773469018478638702214555046319580621797218214160224662519803950894874766872240429565375726396930231523936997631662616984631577770846779744079952348320853109435664337038438616142685322987487835000710647027133867783706347286545394501591507202893786196946194678563908562883185134870747397762383474141271369916401353290136242731626151775758666448613686760748814452308327989512444515109228889273650870026412147513459923458635618075789368204852469326616616539374136978091682438875183700038962008396209498721263889972867969222296941939214808529648650451847743373619663635035864138582312143438819149171610560118125226556705884043836050474346915960526801046933858986474118264479418607831290802237715176498629353346969473656348932678433501991191215458940358406512118034334156393223893949312703095175113605019665590422666212050073523934859167061023120836665860154941854377792321244976014936619754798752212171831858794025096411826690160034253010413666596347373315490366660063735798309330670919185334775077157392117459100912463623673317165490649434178108498418299905115419162662486093361500753039332835746947398199476825364536605669874533272822122073566949913808671988421213782200551605814062972412181085423327842328143221581146617863960082533531382382621557760497614754582978801274942746406383407654265620280516015743878150450991102505733694524983486163644500570838009256357521533268505988060416150270451451474327222024907013747258080639150047824084334771303777664775206028575141115164825991095791977904346880746916822341711570871159387520616080369144716063577636320241300030933641263585005915578510122844942375690279752998916391643361486563070543639867917870232004793952542116713025461845194972219886944978196095687618107447019545424308253364493713667399124014758216679600106403263122884337707869839773496254478460280711191853915196884000397562362358084216888895827782873363278953001368419554291015730394821486345184817256566809376380580835799258960740374997611792236987203775807525148848615915104236660452455903035873323301371091005558284522805616295299596669922401584492883561853927422862456546395871000118250639927162146520212071162944707114116044719010158510020433617965807852084497208099743331561699016597046734177310267107298876834836802171205854846346663447698629149251673207372224637631453534488666478521538784220119622532563023981882564181771024608891017629505047625226129126658208703858693352866215402914418332175607948378605556427772352845370162813723636196573440460169175168811863019159371178111467561305897845541019439232858356353058935068625264349272359230632002507234438038734385233777031176238452275644231052503885940391931860445004840346028265239198000049035022937338094867004904469204245064811392923090136255831824504575829539099059901661224091516212701509928998903145112781648697943930897694488861547768220471867446678950695994578568869764885727264632601774268758922558170809600797311425150809468270962693646280725819816324106123110899844074380846940583592845722145595741538902148913836354449177631548318869286913361448977891810850682051857112909357390465064155933878536330759486261655508013027063460048967212720133137272879092060792388515811483684610811670274904743496183198787365781878005110075174192473758970070414711836551670596177906385312924002242834690624408277012343207514413823500922578161777505590214189276014374559578841257016660005081301412368272123266149017368266388224259967870326545204359563822775293563470572022576359665012164462826574796885085677774221858723269639618666506685904362719389757114361616575216472131656674715621015331942389351663476732583568664110270622564102546717350955541886365189156881632893307207154757505341633579527323993023233267238061215215549331763969410209608060963404954118958259457970540638667548156513153911173431116172115324659636301151219452152925259438293572617459719992318171716957205905444802191173169333217049038876423948155319770317709499700507596761464638604914513019212031963824140633849398985411574824580677550010081842979019168567133978331981503411573410655410369729770900304578270330846919103776113733127160761447479709526229101040469553612730201981877431522939936575559407235604511242867889233828270606078282254252593378497313130533927360873390500809838001441227016131884697115605227425791625908687899764022869268140588358265923533462813005872576409301970725237336501383389639521279098470081814313611967829051068504550832703964768646337817313784325613627006844612822332399862834992545234087320943198702601173559334453505311345341634124477794313041374331276555570105162226156645605639663310626527395191298344918588501894513337220127406547249841217408480680466796154390662529771632901046957354963617184395674062737836095579955747727521657685663940587502931264204655758214943672145708952876204812438146110507564482811314458292717344538565223160685963155087931632048684558246108820824202335132688916782863961949834355970785260937555608911684501069878924507784389510930564838332010551904351895309614367304724896792179203300327035019868369976660268204160020306956016986818086332349682001350536984001285876970335995030165017943918896875035882741498366198016558955999465165940506576666564564512950091701638908677116877642278133841588088277577909713326634046734145219341541894034342230434213460755700361803027874016424502728666117692507603276895408660801905903555250427137442647891032009296246650823591388369584407152452963937927113183302171901477431416435371897849077224375661398152773649567327223309304744115653847161282805130437775210715450290919304669258393405947798726499881081874834867559946609451749286717489571175739737512090567585216433630177933463277410564530719364253461810991018596780744662201698523942870389547248517297674978809938968343456598381513565528399447214795674154967713742003154966942408549168949342235606405157624590288288569216114502099841379598002311919182819367114940074398247633126295567286639879549839685933160641383419794183516984135635402070855994777118611056593115662594711005103784239767621626480792546251946282132059163872432116626146042463473846187651558864298892203170591079387597256526922028670579739193786000741991189136853069152127192898797679553520679528858719231555217792833811689240865125441573533874836375182190085647391258739979906925294531527561108220771919530444451910179270068359400535020077704568983367180255102306136449240317698413249762274468596841525906366046442302338870120292293456500786256499926887690202450972897511171847285374804189644183020906394114381373870245365572474778000259291825406116949276298473077918838830279350433761496238393443903345404892029028645962736489694629442178979962559239928921150185778567582218132209801183806014736244859170252484822341980753119937443475419145810697693311905122795178710567159277214636134913493124808212394042635438916661715327267822880629581993100704831808888267517176326456381387541147548939239492082931819024190319552955592892408402903604104207601021615355008031399512213134136425434315192441244419974042545839339580792155724040456822587464991672180133991358568972463454990086600883492499383215473436823809218810297674244248494831772288038548690568786670064723581144382942588321896035367071748160519811497355476599538447633183588731597871332639495400585675016605875148765448839800237940494905000754593624058827827952496578088749108648600281823395767384601217147510297688193414344950575044851751917742559946948843070031570852402294743161763676894124606051456231277742140312410118192979221310153645272397734505438667720586761916582082651742982521755222185046673205358411766758697737638174510173255526167881979250420192704939708849432886175897642848553462355416339693497202243484395666913771950240864939681266531912848471628305973061497583924630226359808716068841279216556852046239442212638617702032982102869257595735446481225924865423778348456950490306124565644932764071514028918589327671994510826164231075036939542058776504449220675751811932927760910491610588607950461872850686248581708332243550187429774464334451633744879229030511085248957339623313403742201021755610880126101713722119202381722056395045516043185413299882621130593553764817401132708779227868582395432472253243176228788308048543732061116304477423261533284452264237143294945924718180779981137546985715067067447603701292682121682700101615450676112143733457184071769078342927897901644727631383139836934154011067439658807918030938484378922931545795528946567617813293720638745077195837654111114146307550421400598878299890664973707914741635276505249085282551158999943318939461684951293087947764471864651586889680479128809189253646383613151961342383248850695967680645947169158156097122783728299597071540154929671245746172631510564416673057711627881888557720152036619461708091664453363282063353098334533729755454168285815220591994162062206492118521650967957632271873176023992279820742958588835853244770799899352008369047692705031774144931368217744848358127791936278064576419396314816083871795584315286743763025004076754581725272505648519139353475347883627668295850126044254892211504670509281712506951803896070459537073556363397179297798686270968561378671017278358313926980696265350537347130207421378922791493363742593050929896608851305570918427863376049067665109380525387126360873497425406381967114730883155667246306533442209569069205643125821699280720376399682265089007478094591768080227076229126702424292976007771867074124656763020611795564275436033103482670439002810255820703126102409256862063241599551292441318146344846558036400703391986212926683571689080482022769017379827849046606741281902493328034496610843748707848847586727492340988009882476735549964475049514306823882861676782519105082838807980695264518450301939601225576357746865084826667259389870026473322637892038508507229350206517591334938190871970380647250289039766062724814728169126592533147788726739969887405959764825909353419798885896193825322713595081121105302301446899671878284105423232327294118468810941671978257399797362262586051171313479406069339308297222516086193462746675593929314556396085803330271747701461043639686623225398205762927919427489581770335449611002277086888968312031047938708169100032010354952334343722305421392033838301393792582314995072455034689565503336444509392770802802911631681219629337105952025861753379757702805603116601114534871788799610621864996911918085709522230372664185831242888039050163563119287661024316314484407095996767376238232213861393079326243432972573868686958997880314700639222137990197845006549853793994347774109243160653114217421464538228139400501420629615114550967253218389946756824589170692011123447918863059093744129500931428720862693396756794543261437509706094672897175988632481622826514161590671493210133028770607116733507266405195295749763266781642404066035698524154505198084630462028643230692472212205950332052515379881547363396080714920857480479423728195421027173675457487948965110260358359673203834120684209581426884200947302634872545024916432005272135929149284840808218666660650101384582031221882010607485464357053101636853578799203715510095722201326678192462708788463957492951429122196568453513876278207786885089877149269638559701149893483289600927416824368391500639659309915271831059320391219623327277953097330840381390129611432544967605261213969993078642534635850049176258116580862024866334217791596671995934246834034121489211055233252853572126423603198937692008622710392571744441710027164217877953788684849192133209176825690649155044119680323866342826591203690160982236470320149008097164690655476479095121132088036224892562054024286190351088441587756261539857252493967891090324515813550738664790149833966169610664260597248118083076318131735893018098588372095154175397317486949774966104446853163958720435289393867082179415000375075123298366565591234208439781624709711027416070027704266362368859465897332305465828355667015931658494121079288424969799012137106892446451361211356355081425700074733084526232108954332948806902336317933589238617732710895937934140838131753337922844623885443185022899308476633749532747733247233894751811517020965237909070482606705041248382644000627436964993337908903198669918605402512538383773985914386712431691768232501235635764244436642390274219590566322153263933766362787463912277434820068410543681322226093227226930458771250019626306901446258511280929028028193947493246137485011844563301350465660389073578301838640804807130282696167160760583998170383326783863148608336378682351477041181276037016686378875111275260327070530135485974265346800192707162718589414466192036120699735630421094056937778164867269259603623663628056167691305237749267555456584773960858956055461670003932219998228830754386696834788731768446032475564726524477553826123600973798337966531701425799094338668882510344249564930549595920021629050710701157885493971559855935432327962881513886203532875155943240855333395543072718584203338164114216599904684939614002528597322461868781208027786106292749844292679102953933417231613742110779767609829561611293741546445524744850851674758124707994275169019622746700615321894239404564869940906171416618815895681931935832464371023411834603356822499707615681956298153070033048086060364972699698681073376166316457326906653187159084565995940974702765055279146037281300090483875590112045537321278389580853361628370784865205282292416582908438959435488929485309468530371883745008306174797048425569467902803886174644184460358172127397122733884199652034323217939869145297551150617047838587047157192983649181001524309191136472433759423601150443221182742280939778956834614539647598485097869239863990235450515610309684048270700979097081684660302949504457349072029293217061907666086281380039508522961601550995899627992009708299947004312684121266947435983095193242671267153868115581953794806386549157214514206440583909919875769880077603267242815138453470632922996575751126877706124654980162391889071408849673964860350081722103387811777530986567670840654712948093936051490251494192850234535601099898797683249364684321567067874899278866103751962496391263204988675028789773944958558172140085412853559978801753155539145836503587515772273138487867315138938783986516355862042926451642180166874665750966295958745645367616494351086500649358583112409769999389284452993051585074751314377988016982214002141223102785758435611816424903616272473192364661546159095961691940624377766926064801376995860466656532051839552359990843572956916193970273395244272408933047397503590584920144667340885727490981528586979579405223851175743533852154913011587171079539065860741850518332938852155340547268844032634550884074607015064561459302691197948708617847795050212916300855113667557196557279379057038173873194438427589342369994503798228974652154077935063394532177316949154756538204908829565454963747213513049146878105891247238247812691966861627302673594365236100020188659661342002974841656028013570302700923284377666599599614926920250651000501527200577542687746520218014488637412555559307221889792378824383685906297770923019989131020917692355307322997219231517108053583515301473443481355799714369198896707788733833297726711769597434723411970705611639473195956329389327720897649886025944267020924489248052123837892424486999372706460197357525042555166932198669285299843596332728300975852571452262103068384704965094774610222442766604929444852244671550665899376462058258021845447542402691416859454146134390992108979576340889989478466397474858406738065148809676050987766300965295310629519158777884142629612286691916242431923563728206051978552424055127648551468481713604480060449969708518670451324919950724381584047204245662662382068231335077937278825095598449403441397926797549181920926083800587737944217939754830419267330402204359813346417107346420381912250333497985113045005902954228934314627410462123590399798628389037451750138975279339243516203502521887780993503598778610652352455289671590937097464435309329736400885953571718807175381470674236253167253015480907409435044190502883375359835384857651260766683952177945876221050848064786920670010243694989822940062982294027710905784587961286985487497256578672189917952752779180221635570506241190137463676273431976180952278527022736960219456774455095789277354799998671904365615810045196900965090857326003810816773089937547783444118134515225619338253834967096716758073892521160220653089689907246562573207093297518370248652891909183641503888510896810535772847263483415506014390709083739035100144943747625168037323695930568931008247553059750524681242767615675315327653825554702602127686987373067217313022729177094670728238171718843333261710091270129594771227399519750502781773188087773414928162558693712224679116584695888617753870586259624363945682516502357199292847382156861255262869627062447886614177735678511643783634480356894798350542221919146102411213324586133060792376151154887098989538927580263572836172958821080581847920578139905141496360702651712865210607803146159507152327132887181156187803646445893010019557167711112933439361425774127903231095329380903075625794514140281506435185601265370486172223060090692720781077779573234196212155781079238300889255194521984841571687568592100488053556478349933735796175559663687377010576633898231184346981446314025793343309202245509799110861098645809749191374001124651312564444187444721320599151704994563901871950879199791670968803461166159948006200701164821128653982408322054860386592214308425673578075853016989705505230691773560517417081801466750662336486040604002020181590488606906586406627765045912274570896888083210333409441207355938141251438899875936650664802486581229970406793327589500848301595548090571515872874911345365891517630361278583094785236860720097487235187350642950678982396378756479653235963799313297732968584538050366814709892470466754378660078603997451755600248306887131993073936984825760930882880175628548833357056313505854528150487784355679391060296062867652738724318341903064043055500118618573185877495543120931313644138770400279679683813223084623610423103220901190130659635932384566131464748575888190289564591014722118782236159120962511352057177981940205569168580788723484300634003614296943771084502797569769388002246662604913032675380962567681900405282886260027140733187105184083699759568122966162842959950097243240137395243995051116488369471477860006955593074538714522243296548275649968441472949119639638991172206977534037270800302117774528474159830355906945720509046742609919496966099267668316262326270697817708634971105587081192110376656166816991134853281455627306926427096515063919355148750510318464238115154494982476282734981846451721220126390048761888831664322938013843713612158561269153783871078536704491898161320987079305411657080174266739593557428997388709357830991344159721897839135117833648243685200535750751892520569335882217714130325493781419375324331625923890787646803553652792541177848598116677536898525192276243922041905890284892496295818518260781449830676135431545883695892766729050664000902225308895877051633395100647594642502657613775606711883475244243163307327306543763053931797643209347570038069225179746506907088856432153260142400763440913725018377562859990800112478141000230147536131793604896055850625730623265514895977345676292963895940317171522777016190496465224455314348267987812525471678677306264581212268569528889983394039579763455624045723817677013756940998369846249347573035226245786542696356836479390503815405077591167450991569803642518969151434855499955577898303145549495107242749854094888993320461616793316119002897376142748628062910886979896838117982660026110762757865816867720246396325331653285381908445359654529896213884896752412034518203943086223879340598147469876030623912320270304017842039097473896267973582970919327425343762602622021971851169619861943135404796091052460175263735733976352687846030278630814266496288710439812012580499062685041539843393275478060185625947797016706325947248029485908497881919628025802514389872996366165948357351597748782776600910828468118385073887331041594200390841960874553520619141891352731944769550644651899426206118957944477780347087691943977440528843742923572814998961565161078737394953720093256802376619049729968906049575559557843711985140307585393334959704689272304101259294358599449191638860319843584836715111212651081475515681168386298716318173076466340251293503287194776816518526757970190493401921998136664003565904564386400266023584386254221636111531000406217252314426378759391062169593481781712133557612498850427544668022416666526135143636821538009259253437499230604171596536155205520621129993299878870222759445087811539551202989039051212129362643218790400196046726282040320992331291065377378803998958132140272320187166968977324946737978557662007023791418320182050575143758445130530681021549716180948627415415136389106258896593549474664967544733979968459145950351712251479856810195400079323794104086796742167541374903486468277304942865208624702039436056312334782413807278955644653343457745245484767371859811538229782447812991286154146199594310178769073795464861535011897481743448323639062034898393502642237590925009893770091302564679286581878177657610602204426878470856018486144249250569551952419911646256035585437266046293360198410409982127748181490616013065778270137212064529022887846955051224490108433692573119937807448325868196149601291917731705593848431765002205218810821353618837885709960122547570815842598719891718434612528908391042460515337131425172019923464613997178515200066105186759067457873973381935549781361080590052639959743109825112827367169864485055370618261896554034642148507909494747878405455411999230075688110789521107370151872547049864783476990534060043471010861324690395381877859947447120157898803335678936928584253380692508976973544102181801979390184465968684952705898143068609564782374731640709883626075195364833747884906590356692805105915176001834269685133903328896441241623796435102410325708633670680804782938684402052548715865406279772804513119571780178265473380924946354048765836800950153367446075763540952316706358073180719273708047679721168613971704082386569724924719225498276363614749421137424804282568383592395909528460293702386871335528773615014153811288303658624759050631401841275840865340141410083805981219198096529414739006816827520674057164486091855416590846108669921939812335524908513985753058649683565640982141574205815137456772336251241602813888786240179828050373069560342319414825405773394307095766919872697587963430698146591740702607029013570650238383931084413729713715058241807225210671333252533158454688420667866954039435144179080151284832553945881344038514120863611169385453585364309296680546148282107978679282861589949437433551610951912036114701490093098932517226782410248097519803848977305878944489059950490153064247903675622762280066074113370933239077302123223349124322634882010667756286382637433274750712635164230702065686871647042793922515721834964063980408825062174236239465398071623891604184625546388485076825859002958230079855075123833847488216599882095544623855674153726352570849646404372988871535864852045223479981040779492011229330859753366977771842449763641970575044951090952226251241158349870287752691947680463212810747750741616862009817587817572596664649356433692133662949693333265770162240413580874749453504455751970453096434665017738933653580120999747003689499534194170089447145391340917590843758222598359605540151486913442801749485257541757234160477993271777857547313910737575041260750604925099480054088425246899821062659084494983823278487034627943473368406025051790721882002352862783715075594577844776835883696309031253649599235560849665083012985384531425657700135326964794660188839947564152999773520655410311907276856149380959312250991796074683342999676094282679073818792816920528369573592118546264105707075485352640193212778478111249454787646366287110487981306403292323954632979968099167561392181538611471735630643563695235503065427733602168666066846086252773681067722470397045736659960962254857093344013346247061862954969393379429645194724331741425859102186226118597381844543452290559647660193601999243003356205048920962395053404328785912205344858123495286349930688940432153163319753418838919862703928223153933176077178681332323612407466713194798489733554777646664710877628418591646621467892319235938461326777492925153113006209883613975809632825105281716545895782554829949943172190344278456728648556712459523216439891051186317792334907340602726261605396015399631688899338123722704478261737984676382333959453968773590111726029447350925041173006551722641370336358278928020613734824589378712789284716837026526582827597974311360538658318194988374724132050596728823157087881822588397042388819175480455214224845800928484841784727101543666389336137374158194076204715342469079909731441323557304066032050048768637051861384838142284031228708124921309535902019009104949935693553908128823757221833670319189185941630118238243358113408828575713760428329480971245734630308610379239682238169160673337120477321077162115963482146134117525883253689664137499444343722147504249921225915151063002092867667710314432378234667089924213164005684804160856228616387025195916573422409020557786759614859726220654612712628718810258078695528791696899476174574454595952443730825506036937377513627768824675453408474172502117488807866006422504437928874732639626363300860095097786887361906622318681432657612678251352974337684447653781817317664776161688274073650879469337063186826360836254421119473801953884937712023410451418267485271709918774458814998603263980606729930899618113807528913130733314995358476261201530063730855559571829160640021366805172989881664208792703489195734247200431124679924040228482886589783234223799235454893351511284006632414631660018003056450127949870425576087135315216793590797432052880712094375106349612495510759702920570956989324008031940386250758538245765479573700699218877650172145853441327436189203303559567123319529896393159556859729754630634921966877023005560326556215443066318564480748268502119610173871332714081232364821384379065479552534642722286076172308643407202376142915941614534801310341686697596054289869308016560933689282661693232624634005098875385251743365634292477364407305692030569148766968328018580554037929372666378464417909245879150890125293745138288403166630049168574494992374672838039401870625502686431171580404253141751127476175507026861031693704969155213072504874391035319255705796239913971639795526627196712184395531798024837357094252098605064525699943380571444821831199256342828694225670172068492488826628160256675211757984646560172812461766979039377801471936716922241505815518855113411507702940957982310601212293752280040904292161657014758648622559351746351177896656836081040099578803145822397498370662788252562771258106859455625760331643231347114554899432847569956154517619369845813123652353142218145554423100418798729160524512071064090368872363898259829945066518014150395647314588290086399546539372740341781885157822163635479658877722607609651654597706681471038166099443652517735834735937392549144535080265828302735404468529019332859194138691276724991537200930436206259869990141338343462905990314928994704335114129113098369927555567312133489592984700473038488171884768066927053769235123265651204794160884710725539237352173081693940239756002728684995346887353758958536395250659720802788952935418142501508974251245161109914114897332141295951912355718713029931477271869038695689057128411266021233168710997956697033018062504197995425099762049685293345375981079221218518435173884838882657326004993566202067336548906925896961299876238000781946275350485020820001105106368711236205082310891896752644276381136331565830293613383539838476812854019078940588812339298511401114775490873688407028920920699412089617940311761792094698538823321687931672652806362820957767186933357266934964041691453176388458969753752653996345075951091834088862277238654794482188275430828712273294016381789763436458427893289193432835421605576833800105217898620289305647268403487008169696388427023203119675312563113524459022491751670406741788835465556107412673187916631626654161850117498919292797833997765822725728744866382091997780025327251313036674555115053238679625947552952607339487496587871706599263047749754312968064246822225680313707876379868312374340190670740721907127886455738674250084818738187094009374397068177538862640027029968704868842095989791412264426219489893314397796684260188076233545093500418132969266945304530836723780326389386940926781463991397234597603371245346655750311723005554051654076817989621879914703849094744647794912525393909664111857743019129598702271984105879108857538286635891231673017059436481008358422756141850956223247545650490970796186258559924296378077171568415163519303386901381527668186762024429683926487983501908781029756860428846917125481921006421774422990246544351661495732748184023286452425387656629127587472446933433936848209128601000212199455400730794521526705936595873253696472987015613441846196343227702279648520943766879785773734806535700094059681744275962773112985225403468827276309209758912403958002263886593984770309333647490623058640180403871855674450702743063357245073952516752358330309034596663694535554975673656240592205972431664312609246354790538641078293712341162980839190156430556518713189315198591558877385292569656427549129870258981354815039410245210119355423862239123134616009812316838742977851887347496568918566108061431746171432089436214683936140698713656730536586126217124517825635271449179107325555371325554123492674601811364273506032075424219078761158480777026787679265556720680570766782452253642333160874711219286763016629023528691974178586821225293318588640249425485913617486875864172397625877060041912903304136952031140132208516362831080397288441460610629104246398632492697336824794268824654821040809495960186649310652736463689889558268647571929007640446743115514310346631587442354753262487469990497963392896267827878919367267262552163880739870616981407653507649624378845447385179330074662587649704191682390084421877086697813818468237024830003511292495538145518228802589832809277604804330731715043592088333055384003754602127487897120078060165100987603676361069271585555712458987748001709806104508167667873622537789853008780218263401559057091561847123747066645240110046125260102583219071081661039978358389165730450299864140113635242551220304042915147638942104785944970094023490713487129385125581743963466898917548503764233397254938669701669234321052498261362423390458839007626638559896617108718811800940534160705221869071968437570238410357009953139682422388262682736393633015114143904583116128770907910719989470433329527065986245013741179884310711195900867491750629957286369111554258575165754156746770476797672775719558408531932099817925189220989820304241880577963349004712344099720864040457465290713973740630056233317110480288291247886735490523207562862663995635890701751353395187822747612425769296912809431619457779691730227136454565282835388867444496814344883129933745422379000108616487873216280483131432212084433363204788985303273114948100612409728425869956802741472999652515889089597021959422798497268868052205003690960809033865730985454657748503266436934484825304832254069113118725975506102273968508253274212457173693491336311358612344847825486179979289944584921108665210854488280658827187035684605777775002162330854394378907141443704254260305577925954575229325994441677113440414107300893769408225835828103503705245579168540665327560168429754090643153490719124445313591984779329200008502592147236891432193171480574970168343019624830723283096207967080236006307540809568561034476153070186641824885861440310313558353655917956590952920912336887268659318108314688569785230948833855194265992697261909461880730809583594394808525766104731102415619200871547005998021982341683464602130037254428161114831340661191103801497000740800928756500204311678493668378049057593641691231712721270503785079229127331378559957851164798133266934624785714720045909736392115157432962344991206193767065999740786725357189358427341232780298255053445725836776208626480987313227091537475333872941626604134589673574495305128156639485396956954427829786068178332929376184657245163927385833814017617838745832269195719746754314458251628017968325503677626055855740405284800760132706848881823754637832253623475547319747586989503043094133156338409393217569479678899433585709933767095556198628405657690580350827135526235917875709017115288756185655454617883658610826947004455536570619704245244536392687246206095631175272016750263410454603472545584283903557167816805332826645640979610539201988278768362895149687584043730534782349248777630425594070083361643352380911621159484329181648505300924807210544863266704020175394758437076557346587080806016447296983591641028100436973337174548600973141542251707122965192223604604191202214576526996985939199911885884780979302514993676700257088495022208830644800350785217300500707719046345745300909517084904426151375575300107590167490204054030178434898887717097761105078083111470531996804784986691546875391080646259537161970284223697492065264845026101882050501802284809957589277222580992673819372276620749288725283378832435814713943159040822374696738138053443231129093810162146653615028595519462326396382208444986268037927573525943773916299817210215310192424820230284723706200195279849837780348316096226684260204793045706093283519435731086000431580725168488719230230782569104442412814208684562937617235294883453085371409005613101158397139197775771535720192366198379011693523275581151137749988976100656482731601004306273309415428070733950758705060917406282085950301229878809448953924636573972600212504897190410366617289828360393481752004270123594454650768681399222206088977427906345435704721730977799475105834899261209556129586953080907333500029286256855706508882401208504101785227339372549408994560732603639836262068949071446885765192671925545217852204356503218970372230109192871562308848203127824301714797085741914412565809830900636796236790506566210677404366127162643473901805274460854635924256760805772081628372143536662344309550731175679326250847741245119020550510737029712944745100241842367107726238624741992515825720680521153629980960507442771061767686688996148565552607095344168723658391425848817308638893315276570119962507063176119282045420924476308260420303358530347707589151571028933948576719837079590253313196253899627726339866047897794357549984251366199655391778406481432031357242385892563930717141581166766939026038571007011569773148243635791099538440882830785779275743468708558685880422868394470008774579996770273145817745639503300912247830287911641723064100742830028798417618181903796672131579919958651967255221149050904025174672928871718618420535668358134562715953016209349107049881519201384295609397716343039296391109810814800387012710926531699981731050877823474237308050167393900604180450813004229764655881755160729018758477660015302400848824357254487055195459708835154734304637413443606496186453698820740414274237071195340855239554406407474872849119522746946770951954223745988146286301946773248954020217169541303562398985397445197929440782786365167175511062212334681420393537869966076443503830547167494452886869566865795716011876194151920507750872996779334024593242769404932361647066343565838707807541342872156698761446258659683428207756187799686719382175460489410301177744788764427559277036791593997308955986667506716701575772292021753511679847631784439970499269675554822689782585027739379947408909240566075241828616094397367062123560021880000936422569296382851884127758016680282780490334844029488942366091685673887681649131741551857859032376188005817323775527632547062697473454083109335394642378451381014024735192030422574751407747023992478063319702407909431705296232063612622693933308315777023221653941551055824860446896531383411972723249309018169833543060387560764105689826070645948665361739936589515127987945963186767275845684921176610047340669489709461074652039340537005071469400808710175566337430296261448746370742546650522880733655889158050020926021280446075728068893514277751494130676700385595715344241943470992178398133386988181318846006388209052032908781114465396794699058729781801306996656189711547521845633353810119308861170895340893270289829480131383702403393624782186823007434202764461486367344291007997864019050569273286910764198751304736304265662798740300291411968317650227157043515461688890122696387357473394720886013093195201131585981389376382794786554850791517200163292644534023185877774552914176293530522809894276092634079632024396105868657255309286824109598601637579119197459494766457772923549094426344199116906279853138302116095247841184003187576843322952696118705614924531410596076230668015712092577077816927356215479800222054525753108362889105150574679558763276245332149486407209214947186556737044090331824681663816907346279286452619523146471913137810060479144163974199290586365816314960702190590161969904537942431546299383745742685439766453059352589424376781395406172448696130312387454386307743577403338866415396561826718916838623421876547169078318562165534212992731458073935441645203536606662075175890683175571552851825839953894025679062249509462958871425034757525243900804974130537567437044346866929495397629394908149269215538611082995124342899971376465775832095747862860137373697824626304060332892664749605097963510212002724252682692719847976090880775297956043787061060517207552317206443656259579420521385049643066158843118372683914929355074290083750792665271573699832697453520170465688178432461624113923645923732529155860260924544458596867461639033425610288296608902855193693882285175621492324266438566058358547025610016441887270659072838639830345891939025149622541160455608446027725597386689298836381647210731653928024036112493168899774757748243354179865372595662881770772958048199802616638862010466051561245733924083532231755240312891325369125718571177161486481578439988035385149663925358166016381785153109230808863838598924470527624437950323359532398022374217448706051613598492613679325894485897231987816754242733041590947903684020749925498635711950938741014805811612199356087023584095234839632956707178559649024185091101772000835516528385210728764255152107902693740624814713843830692602631992499954043653670153600729183349353331229279565911278635889706812348873206706186003651544213492761070220191985017452076449648165130954423355494957649800412889090474456761098064552114431412571117711987252889717040002604987171909005203995016798185542661585000101108997393498464938449657810716192372317808521313260450705385424626415870563693706854346146706076184455340731959509547636899049366342322213630647222471719894467126040905373702103595448172779391633230673122707116526284036064020348704838578173690557223996982731181234344941496727718032681785578379107668223967292367678841592601257260120561255635444957850748033935133392390515095798704454226228719089421109276915410885474099988621900405033305670288830297784906270742931665182679194669629134056241635288648305458715449727849595899509807968084077943525725002067684487727199711764740433790545642276870062003945128621018954419845206031161535311016262572486039893331473997532678422300360484996146371490569443086943880596359412910480991474720949500970623403301194229491410785593382811874879938152730715866798073884137499873641825819146329816282612895943976374360539339211137523894666713303210449106878674946372311711121918066433753097371996689734024608074917569286697990131750973644957519886538135952843869795564791891972106140709812007828695147569849623873165778492536633718062138938410281572181349255732718735892338470766394263926612343928633294674600913749259945624343780795139417084742925779634975301883945644423278111551163001863804333906865089362128289934740154008536505424618233198913296546246738571793567425934798527054303408895939993261517466829509497706642436890610856974060202273171300930624713830750219768928783955990451300421328604884208528452121666879786557909022649932934132645826185258632039181303401049339379381081722726151217192807462096761231313964323643903947396016233797657113586784732478586411462561580611749584411994809649381695486046932491300427414567096094453567930694110700921525440864692284773441780935498688266607969959857381127885539446932446988768839632030055423337850055123447321092079780084872425345034280249247938943563274772973055081044310524765340699670343037659051595795254720953310945067218661931230953277801133570444983011901154557686498450652346970838806405057236399368917488230275739741408888196267062904442844539688186218408747157159816774411930210936863303801423998326719487786884915529495022300356908725542099201990403085286896843632941108633296549233769695520054862142153233450254035650919843022076948402368993330364036855078700942604225105431679932385147150849641427856544447648872150884048699570959318019625157207857540966050756544577838558163824793777863099758061548484781471523918883600019606953346987352853285317221129491742377101941710236604123212882627621113575546193887316962488511877703041084847424774832192460346115873631507735778572698758616346702703037259709312358889663704441226826472648161094598263278321319103752226307391253352764780133250860139360104607188615229356411146963106255577953157763183338021576565657633563441324968756824313395288618983706902684319170904284438214571275332767363403345841463661542642891307609096259219926343657466061097628672000541324751758770560583842435685958600707128977931981000755736397259206372509390192519796289852019692811301651922692194033117309562059905282457396664064356444564569872229543770727262245083195648045658210677998779302655363598382583955926518028568756936577268750694111227627178143560563291256271999120439381092954997481979972639808244251577365871035069632589768322481726900574277136036207695942662356388546949558169323223631599040804440681430989392435724817933790932834239492942056011850777357638487178183306268312681445256705537200261187296829951114698928351412192297451231863664173060598368815316151822247844872974011720800694780113127854704580401315835924855810796148935263602588754277329870654287334638551428564157102489417357151251737212174867130596064748070683594137178371646719242852277805305717632702322259276109756379888325217727287982841493525508637495063199324694406040323205965762015779772676426166700535788079352602529503595277212877477336494272335272439011268752074495290320048033318732932916488344797223220442875774275062559363220075317123224360170308499762679043972205637615474369557820410679855018114920362939641591199177858415592281212337621377981031714054227317632220648847501334695851247724111522824901981188983003295041038961550173734241855268775607924029699454226572147268566750561991402801301362918786086883974457494539815841954706851814594460003384453359082339805346416959720722740589368377596026857059663742829042320406864719141601754833853803194350665330238974456695682913513889590684224270471919343055718039926724494137449420628798101539517553053606848558636378855255625467338982211787545005854622203504186683363906368167069082097995552333719079336581026191271638361119713069572084898874214082042559305396951736140933384393528123176810171200734872600992692122520330461350231878537224132280028811749016258632440040805175916243856720731254423753288467895146883386851368409634339477397107984784427612948455925339511801756977275379922781239262691788183490208904416143164737549134098578148291357997889384054829400691252611216045212660487450058103334970428607098856719269167978774770511042226958415673444031423648387839294735885961111152872638608728406706910971693779902488928627510795740732007367575245176433086015673265958500845959329737820346054661036324970352240056451877148816729310590057986077602388680940089140580353390407809498030906880371913746870350845281152074639541853169871357859222754813595425082618142965951708100801484357041086453197415020184551849037086474798466806651244378920614945709026891993754489433333948020332592046938236324426463979479792299087391856393768807728329726168281235451263714182737232928488767565462549387239697046709523965975558322006195727379907773280134921705485421498927022105013599528923280012230292037005205356308302935250736563384262304012374132049346448374839726139018423391538223619809874563161960012858599467159308433093053397256149914906587216096082153589452513588609346299202754740224097448427363708856684455646705292919455391492700348619265203743828127778474122341021205746100543833392265862194687424629793421598276284479980802673211114077762408086929072936555330878329110177276000006377673522131577012658627652083779931198570947408876250242358826818474645295072704581681976964862229386696068788515751708334563762201840269237648952646998934363698988926806702109831775462023867377910469640567714193461638538106279994298492463932682535051250917992349309515176925313432064285366364940147030268930530697070672658774528311148526821095388608332650322703710430728853258062386467685267310627234074781102422163627931513375458327622732258572903989996835904451097931412354548876673809149320740834482199730510643726481946947362393488391412151917833521626946465719521623094996069001624974138122378226231363781888916308800568889383870454334619904694894044054020470264806076405789813416872290326800909087509888080835033278137655291328461392945267557937644019900062407097776847719723634640125538194814254865049977914897525949905873969210656001584600490432973174372885688478423187032712877949114419994275030064966383572730529147708290321355258555601924893854260122518147873264169980155597697600896919694073604104689529705979264622723916521118240872916102171721466579378945171523479760736645493249559161132867268908079758380069782016501779641793839472729246611677106152133917907888167040615207936594101807587663086760938339593862225967407680099721245241606711486618009487217423227949662804277754255543556498123605891628611632517687040844884352249251531906588623256984618463831354679402553070778888583288479483350923323746315127888228766750350778886541764388149763356004215621165735093034519953818651057797463329667113167787671260216170977212868419580551143064068570516445348243028812010386980055816196703221524079131361317043412996872160321870277666051623047050781144739289290108284218190848706694555476117408090197413694367323687554336243301642517360454892185723380473964186362629085189384646505792005920182997111625998736141225721490515202734350916447193397659130095377910583518121686246073704950465366583373915802610989492868241673282132746773558090471449555556676757341146863239949102664646221524813333144979776586653168552153078394262508898703562660151461432806129078700198849899113693125491718486682386599893116488980704391528646438120145239417562332110962502616712217925411674700572532058240111713252002378598123165938267516917179550684670664821658186422095664982158992108325025304188072340703824346548853345260829096573062388354922193555281062416230335085988461849974950551643294863870674722334337774407677839830750328467179814585425146907595574750678228522675092270096620491687678069685355818495148322240945506560908392383116155617693538938814125229257765370001914496167572364103746990874646231258042236273406910107837312491700078777810141214933407722585252667031333090974865398702156193129608986596733589687006684832720268796747928721774867768977555121793004346986365928613931905154285311977737799372331438952215363024456436853041024517918881716907622980241935321334643991929703559924736579182872858308904101356525521890528442698572000177287678264723361720741801076769135162360406943518698004864763272944522657425565790877257777387582521471087776926168837707660816347574316857088988250322555510408695383028905639393755020148290973036247980563287104657708205950632281951436018347841455804046209904224700595061200242692365803936949229034600419027998584305618224972210704924121739988480260707401298577487052504799838132675331698977632453363280522643300127976316480330690261027540575560148884401893263749107611621084898563141655918690012315191349673277857797988853807759632645239706840107477376829734507330731866425581859884824911648729356793234283249338172967439274798177541302584981724994223279395082805473597286246439334884098965142430000164509797962327459792652132623085448234735108268083408572824221442026352245552962562183088494453511680300688742415748269258231475418676914678693885949440571910199472623868886416060274949688557510021317828506906097538044232441409723663695015650606362280628072049976490541855787045850917963651894372005627943770572452136966149631861461660408715666966449745646239364069601791422286752321590397104790300193457841589644112021627932584740150800907222156487350214378525642009780610216379096331075078657919649500861634495680765165260180094408467796011156445666636217511471239753190121420350300940453431408380939142899485522902586382212803448428381617260507435666281212325623116770173896294178059993688115736376108167056889145305028783038966570171208097063312458619600975316860221766963252528847717548510767734466752375358537400710868157696492288190670067567078053557823694912215593895175994510883638296272893025556714443683532746502341985103872806451046272700849876301492526492852617907779428823908591564093338211201331624480787992046426126687852261847636978327716801734895871544539722453395137375291400669348818392696769045018205693145639212485584870647703400000879033392324912038100878388426511951104315941737992605779569016566342688925173144040322056259464721303789354307121468299567098188492967919500976266192195051324290354010246243550613365305577432886178389411432695600031792417776145620214851375758828911919417354968357100428988538256724100206611389984732227238167705317817133870214398087586136883511040733949713795524763045442348672252284746401484186437897726548522601644493078233271094731368019421914061534896519817577600912641518164171120754716214555063707885981213788928772621919943944002529165579098875866484733602253357820116988898141264871119592733004054876651193253312517376641070869615635655211823283550459396859115676340879321199854452027238974988829580199020931186836786226151055058049675993521918687737326968467245540985385251593561381396526684122424648977895859068172637463120588583777634321915287676507327163044708947956643218020621806681422901120871638224747462364424305229745895931066032677105676544704839158388014290287967840987797296433303391844464054484156975364864009702915833616625900219724895322723809189709908592673783747625486937844674304575265900318736259723858873769263260093651144324527014994160312139763328348664239009984197278556704926308912605971234244798788707149169088515447969815513369534502136948320853766493077248198915540179814314305720586573150782150117127676285053293794555501211767413046313169692622773440056192878503300219735036891080253903248488738417083341944794597232683932945208136004727072569726356272715581770969317320306545008174330545057194393247951517315888064332716395124913516173896768662922344834492085088197192715692676026745014491260624026377220184423026367595146334018072729744093123576541592146764138049426082772994137892018406412266259208246379091730125919718162501774425591214050617578526371507475604093774543452898319872925085385678542403013524526583224532465284778490628979132185294691691786486525106721207259866219546704800549675527182306413201348741663230655598339325477823595540795964715675902793580286295545449934940240985451924717420234111084746551650270407565151962954243258789756092564625450826862282112628070232236197884054455632112272509528986665295039383743450467223150535231636882752933074466702045386105013845182599199099164006463260597916597897751838670344433128231725851451326110914479513784248762094164327367366525346062151285934841011719077155086807452308720327749941805084514477685255801170470138262704830089349064228331752042936942275077600409658966859747086203347289259521355821175886994651009717276027432969201418684114917472881411186957729960196080028124694968467004303417795788633975834218565929895931894289890679780679982512189033605720965853886387109197337100909889786276620610249218643936286514074644759874273744023653466360053993662985105190915990833267591622917630674558349354653686280637094958218468762077281345294425042710483263117666171236490157628056366539626059455930304898831350930465609464961139051347624085056222087265206066869242454313480463175445489452268625455127124096846851832780405925218422918315126447412650468154512698230095513765186416552837744734902445144485239008020367739727297351292931414237796426987976506523084965351101496135093286466611615578994565627638037409615398020190556071287987263691978400002262115785716543418624477230268735603536354633518630993616105906386027042326081191131445419867335958081116303918178451151904236858875705340067847251793866693839827609089122583761760939641216292987683527740375161862370473486040326748695775170986077299320007037280096714989646759104064043946586757373444585204802752768305926638906335854417779185149896512520133604217053252262210955091904544523637858976805005177750912265956584884011744393547682343074230085770751629990258617310493279961307163296687962053650213248544045664572091558775136108465291633937767819925344965113534094276754549478825822462183038329159700746250442222710754431829438053614819021514783361591715259923818018178940895585160392726773092990300585826640978732596596271456672109532305740253244759748071233717812596619697832718688208734630936176704774346751817084762883373267266231176132216211124784972589646215524288816616834478233087646428564306074289911524053593167144433152257854149061267725464775375667621443446601322434950870889926959996990836788938768240167667708584216113993616560477509770744619421622424895508911464379658354731344018989989995747079922916374847496332785111857513318059466209963652909439563141210780549400878122777527027010992752486964536516024695762959971061176081160018033835640129797492149865456078041032533661101803704571464056014954938540985985421523679316579259595265251433115457605794652334905999761603052573145330492633167679873089097363236205705097568556792117724640629074601106955678000258141384530430193706823290232033276180198202445625406310507287877772321676260101118245656986824714757156988683336013076070377469742704594709299005999962459894919303075065138351488590294153803192669556255000317717641042695638649023626796216412514599323588944118718625435610535144006088047424754421949880357029475357700518322096115081564080002369554146704776238342417525401631192144858698141919132140552991634729951847523310564155934384625947980186409015490934063232715808467523318932266365304490512033627036393186825210595234696226466579089824045399659757156561702239658556144232764701377109971792199718889339068824053986232683673789964854874164794787677743256119841482528337858041419998519831574372481662291978409722395234007669310555238005810622281501197294174594986639923792708367018202093527622684723055943144166179517139302806747186881846953140365042913334344958455913609669324205042712959568734708451572284892461124669049078831432841354123177498522207420535688032850033096103637022716285464439912410134244363024071716328378986031247672213430083325296634021141921841714298503226069023072266755173488278215050758269652030696895337250983459769667059311966061037371715302248954279081334022441516986075003758078778953282762391855157164115701327204807145710648797533008058249263898950295854203097526364921800417365563586997466981471281229789328802673040153621879544008521995698163332189518448342463365115819298013921632731969841717666117582666963918454038007278344627154121183023650784978658825051713330248537085994124818281887500498787523995429800823726234334881687096996375678667392624041890633947220974507357198163497799066734742792080728612423135942019367567433321632628963936576180416351825302682046589995005858064513855014653544428032306825773448744609723701851766256990880354880021811868073296686280830989807260730792681256405307605443972768600765453045681798267615863371082653983297309561631595662618767529142686189968025339567106647627103566469506895522127497242224780293104229151375414319937317577937801065292500032802273707948512916804783280127684598325313141089073808396297680124902974477458439379186696652228648775157253632131639732369442795917251729335085156349761299508521799881930211916392913703031538066840264024819950089531592977855868920298691793137347899001143519210642517319460679447102331722306162331703909861857729791743603587513678699255569439466644358896618433986107719533893826851762458454503293258953235689369890917127760483810288767285349196126113795034826578878351030291757516178004265324263587440307547607240518906307630214719182283214485415883972479698005811233926166539190473736161244546376950579248333421257649102386442497054787739692454631900626067677686427508046885331198166801092567646150879458674257032502456416703301815101682474033353711021088958514255238079692967403239637320463041370675076331597767020819937207221013952881066234305402563633736523659655323561204544421741807819063952485942149422479151018230166580679372578591209539348009685350340331010495862116883831670929294156691729142976711361179373499221291993378216382093495779792692603105709673941907000183517467626349739764187032531411005221643744687381510096283814832095290113806227696035223972500133308618614358529914658802129056248602739651103027080381220518304103734124152925771857583877850598449134692070774211741761429378507999203390931917428560547263966093668238768854599287883713092749606430212190819305563283047437267032147520927015940305003845404305835548869573793692461535091391615563943795701280098726375960689150129639530843043628449260856724620498993567014144953363427619982719200952940479551185375085405109954203746995061158096437037912924837632009345892822551070000776031605974812555655415925521757731809775863675753979632958545993653576081393444412875495608163959256107286998180589218711099149519331150790224596304102043490236630567474731586455044076383229133105105367483183246624869125290172549090858400508257169658001883868827490618829736584135758756889238847348895066848125670947538141122947242952490932483511627709733016801490598220387464345718001791426779028040212817002804783989480092934921979659519794080652913045186561545921462164011767703640043597996279423204148078208496897774163598765962156838175682537982994714494577835725570058416649564895693743233452556928730217720648471709075731618507469510970475386440284493782708207889726599499616523685849276368208957474071263209723401265842180201744912407798490092879499713056959000024543118889335970850704298221172783599115745906375737251364553771407704741769188072070808255782498129858007117550546857337957187177848257609984671755958471944240868951388330045095320789140474634000749885047015178732487717817153381250643844263597927172493239513511115606433174005709563266387115459542062310568019250676636143117720811037758421399935087893391217154241820631646093358817236088137998899543694380395712899628766480231579495979648810247050296064964309073208072724541487577769615517137611564572870071149094838578529431493763479474682975411121583989489925452812166533196593601546542772417874877389025707031445319612194074408018731335939435883161040462709025105441411668641110548779858846699389687068752980171063944400145111776828160017142522818003043959483854908547464235514224863321084160835713805182196109322380850270592985452373854641104132794581623141631514119621783950094308935123982633378593981388362049368385267997493507287650330680377969682238732965321413470740764243212155735107698740965134145258399936805873209600981576939252190777039531711115244816962666479944658506507067950303224192386880605012185363233616083611600366653668430318344635268989673073476331136726172852346087561454816337938610607489299157029755290703837603828482219646171508301531195533178033153874862425097122243210880994407020531258669333578617805136353386673942175100061419696558810069239992061476806261872466516639534444351847396586166394711390601181040881903284455478668525747289697407549265723558344886451356363114601654634342742199757216738741567065769597745010975093226314893063439577867319734666562516814981626802390444014719251198664089630987479195783279279867013755651403605431373852778310370884976110632139924564039705480874347051170349832413563035834009382456641655624479374652997216855353550258453762149849786836434970094779463874493641518816748400875049891967324897064476671093019171477992838624908697162182897097641552082797545831241327535303859187878366584148388350513325952969152349478882636781243926192999836466436717336318534839662102984298443307322756375091326097441234671120134744027643924033389752157540459145100034412416106502716190413478059551549569182242191910612903090980986347499472579955214742270771470346089804012364239109625628833187923420110688194065580617379508871816670176890566142881557508854085975311653256284126606096585933975974477478208295338692493429442076096625618736937697276466432972606384680740935475463100097138156067107968787539137689049558342125336378696578952619285281701987128750409153033362796260367263428828291252128267204814428969728986058082253651089141377492882484652432511863385860894650403662074911284566501213822063794293537054060102564915436951577306530518500327828357844762871577423351976720102485435466863857889469689993722707061875115494398458356255146720631214887909774655020705941773783264157036385892112927503323186378307813666512246912288659906209506738744746686466700942885671968503751955183828700827315619064670226608886897751801597037568855551065394535370620605528104152954386535023912231344859942091368056709327561468919860083390601618797244146530881532472543609652523923295118759305727736288592381089840638884275631317622896000489786362456122769376276824930596170741276549606762991176545934588852958981284813363454248341873132430698834707587555129480014184690839041028772620326310288321948252758798554251074148909111193373993028162698513512635333642617179077186846783378524780384531558593996334024236530630398607788686204065652180399110066473170120968481571822923117258754334082399501727827308551156429665780465179684346213942764547961843665945686773162664881130100519916162383902281218412688298715224491330091276502563332425319324356810807329884107428736239473115627922372222993458900463199475789757807914734905290736270235099406715689566040747775640492620755811100283449349337837018854559617859630745741580783937142215139196295028672740276422742859626476080225417642371258554394702686042511268755139223484955374640926878245068370110945145004927859677715203358369951984980674729227229169689956230397829356291667017168172151807858070583922895346801340076291117491563050443343549410512236464816364951440983908309189700179285610208780426171926586936642879980246505581321085743313588575725029133060440355224028818628573311904191414174108994966420894239830779150210102131633734632212633528458771389490735155902043241419977493557442617500719565680826727733533294944659996358258410588496912110312782441243154533580855046208092619934581603485609485144904205421155037068639156052533961484422524670074534716376101940004557310636533831310870000572408500092136106693379576214440194994139463890987138604878204828351494342530671107194448493790287695801514729104221385646641985564720148144076836855946908916959966010597364294417717308369960861883771144588883084458981951387984915911727226161594162547700854939282528751641787032339301057102803352883044542128130177160468255584182104100826695092411122660894073047759704072583362047450599403636046045078671652309578481969539381154966654111504505016959255318272573752378707496153420627029660841964933999451080691128736701425497204518268483146041127338988491779403302066437152057781488131474329533780301878348109697817755181763139956122407206106998791105060018507221677248160400117244485633829150672045591802634851308461520822639551449434838025936924022010289747137487156160883935363490282791532367232329093141058005881678287630659672546680221375754697658810331220587003205667913297582169741893136649799339237719966972935921959063142990678041469098099235842654915876357200680544445959351323247498916528167109464888394266986636882726936592618004784328272104755127993798974763920649191379426868784433412078788156497132356902186701955627367584666082768005104778701757283012848844538677082821131884359474327905807964364222162584957153960528005368505686475897239640670048706798339110231301461511142523982753076447118932115516806878161206576972807228909235250800818450580336403510741569695738814493998701236839466229962129719640524552327903756466376348137224265463633844954846927946357423088883739254084223485238415249636648529677530511011666113441820176049568324824566666994486620008537824033397168131583554480177856249180755187071371856911461095773966703519731262888234121797634293653727793889316639374561910809968889531150101865437950806118299212331368635920419342209692659366526570703448966848135549633860782944175556537784724796465982961773859747952264337107033654535327008476962663720977650256245692968166128312339737098714373571053096548042908844526953189962404683251447702519494929776816650348984412546854326278709293267769062847272946923794504792984239645405057752144327260105438936911032130439103246421355916085504371331925711686913154477749791960393653783016274651445419950514113943694533603051882315056441799418274042944059137046288627530397976851990511136818802074906155930543367599050796031187666259954603247763408646981015843843577320257435623728185002209577054073331709729275666834079996670164146837433179544706600157645842644529968071657853846163212135052536447932235605667332809105936447062392742718252779091914641523339529171423437488049398909683250857903959136495313173094950805195003496163826982996169475927243846073667763199871871231817483016930503612444729173324160867589110906323263668534976986808972277492000287799038576364842321040298260384599836518951196414421993893940883020598959788736937466336442598336444595414127740712210684968572330334164812706126690103096110363940227035163376746530905179816238207565395853757020644415884086559494737494851580174904197630978576856312660903429395334728001548459809071347506353373202302528390750107251026257576211633585159423840121866741545245326205445998335100019191914035308000473392708533305704619983350200545734028263382568414743835023170893523702573863596740871616343898118166415783721131075851572362673553960560896611327970367014472101486133930856456815571459823184000474062551383554863133536266091908675866213792410633371562608269842247785216523587582147498232943849695179602813408301292731562378277609898966853537341870098334584679345259706107026278650062054986307972184195464724549310863802541782776820504310480199868008905325322929090688835566331571821614522501542346894247414480908042564990376038889322862971760806004597220154818431958019726507051043253062951749707967720116361212730457358541537234581015587485825900142968867587303209140700817601629892512325074572970867310060104781444329348084971664097993587029992894131082943404693188594002321124891658170697217363782561962372759685274329376431024706520245198561173828749438185089369397105163611906488890804335092745937620360839744705810977713190474754339099489134948789330289626201200598003979442222340358402345679608718012393931005873906362879815239319145938476707989391946372545086312688368312325025210622667405658467302781606660244722955290306123168413235808120435631264051438047961824311912768174290181583186564362999758959147436114894141584686965825381318311745100228416831449521396870259362340693505267698169965327467520635484911913621885131442065715221670758384283933823195308961082940325804308462876799993966982832897245510527023864427477202786945880828236016360040020413738563112473409270308080743241256165063684528957473711634100086146939724866570775280436490925515681117790650533523737411628060309502512544666803872588366215499151298118677849283574826412425403186238502283899866267481764508213997206865018251558934493662249488273485169230325842978447626017669714160967918939331607784157221152431702941897678828303583922691761517782547901791714046452302725987391655625392739757414363251778187287782373821995031220608555740994868758421576233837647534662643975588951752576648631592690252682451955651378102606625825681525285301318624449824872771617191129306718389956338845216424749658612639687129697850273999215260626494565156053780256990934304857982707905603492725593079989539443742885089161581853508915340350934582296293310768501718776677599197937393425075988398486742766830611801732113493816057145064081399473796080634134953964921120677913048015056421418793698784995688383924138494493502416644374235358759069363871042913448201244057015377799310138380822028684331652924426301900041038026382396071810296611616843480154427991401933390222675306440176272251663154068535132574640930586052472317697245711654104000043211064448742803099992006116049670848150622505925583433260182222377960973585494848333970320321725380739134467751254510572223420796135808213042967083894722328850378815554679703463982305325912136115902633580195656472166963375956374510909396311557468412467728172144937613567045462691185146743463271265442079306183464395766546669276487478121360501773407342461084341692938086209817233871920366680460826001612783757667823844819501112099963296057542762286934041792475953207698319713682227252130946457077036967510515485361514884847977745608375534093816263359207318277235804575343103605864861507125829143850891816261330385851964174066770462350380253778119871516823850787015973028333547069776187888542868491648534143295917383302935290901401775873781413105609462624546454428560773495506826088085572053543350490901322649646749410926224800738527136976060125513044150178827455659930295427743895385609829631728311557832786300733525395509672056491887419050878280484423790977622245828890887169283018294255462490261259623725831798465155528259043224482671465606498228927050259901718474065029716268657910735312858800557697699393265993296070893439411488913276141597643727890293698325917040879563891113173684626870835762050178501570513046205466049582739944604603756789912829568301584026769369372635486672165274149341505189304660878241185439909352261883266556529879599854233238955452085557516844695674204872977156501349978967785022531811594504985370932140361559940741870780960231930339307344280159032960057092269633103547981352815996862877490437907675500190296356735839486058433631482953851217159247064208920148172055276169982337159884618326070781678082422986630787509650617480456148093444171224322041319313011524153524307116075739094852338869815505907986276072453176655729660828317182201812252937583907259875486133330861525438577999431938597016673857414954293314957536177571812225292372013537359578629007934470437686590240210355587217574306699369205482110065885515496930471600062948608127182779015031802024708725457410960070795767532724872828871686473825863037304664814119388247159143084401466858558185265501678697215093516424781848518131525547029357536626014260460477183561036876295014592991685014404537016829539307530523368407843529290002161381319614084846938541423885208813943362269511874209082436841305993950973829772256221628368876689990009007106231260592544941103158834691321601964136487465729800856938838909499183534635558751125317554967224311381356997216582879800046697919524464302569519264604118602419117990819074995917132852223609100124953455582815838754433529198334174375459087492233386039716613190545252293762356798854750223803785680976926829897735123225566429813838841506648402060150301753577058298307259435757307274227257862237647464461682152813894947908565934168050018502697843450126389326145426546050263299556904141783837988795453428769305995467119363538796889617678868064849144216976239468557889398661532738271955512372059668174022147811133873815518859991921701500546743207947343532466218437193464836601748287441045146739449534854773463539978465628720969577062788284900080154351675488981621148453792262899856153366463193498489861620859421274278077415244730398733645165707492806768160413131372006849658938995013778769299202381759079069163174848213102895853142484836565603056357527870638613748089180160390218543957162132205367382374393036641993586906010951245568398241960760912441996112941794854655154782477321097019211866478791597215418546831827063211504628241135872639234618802547957739102370436930147110886606701104207432468574368596823459385555180440161439169917954643698894840571591801223989267635837570075801665287009238087580510305282843091790213360024468946272187883011859098317892007696781375528337041824055017189613720317621537381111941960186058263338159511797521244456871847414228831817546851495924351928559150856565982835294610112950383433266691868482447428308313017496391731845450309545865699874040789273131521836942336862479595729762173314532646942273036518912581679561314932021522039426117364443540443821112104506794636181416073615827296473549466275081783471403410880308445580917518762690146514710846746578745389724783432710125555091380545208118713572260741536782083758520686504309111131310230825508186968757823869717750645027029009516301642141425022038672085639089802542497439628522435121771329780466942144774828806491414234094123984546667606570204463928261130194085464559267379667154856946676003791843910189117593298674497379108815860706745451253042839910863338968949731847340759554941965116899683832406521478979070953179317748942488537475601425153729154740476753464101947973150835043401702892262868621120872329243083601667922966065450152548250023606152909674988185254960732823243928884226894358958208809635054540458633967026268224839477229620274282266234271213619352112811712553909002645085005395722240306262349283620584394206449477102280645107436751620223809949461780921571707817450612856167426430293322123860606864781735891476068769573629200802166560296127251840901917175448361554227921111822593041354874270378882211260510882044535187637266462594050466968534210254850051196657911348606665712432458234878581555478583763376890439868449971045656734418411027008250273044140919921362443362771618895831748622716956586429585480533051385423078750336075427432645925828517456834645738331450266266079618030411444700663649147372471680156215147656491191575932368824379243115392002419861388474538988073906526780242238819664298969461377940731489258555607523130095937845435241237195908148580053684890416549930694589882221260764017861242018042220689061612459372766298209114954392009764185733311194776697272071440988110083984648145778571032036452677141306050221729496623840869483284229063982664635455585909342434787156080343872709239942638067210012834753508678160311790253609663404899308574305735752975780058211749953089144093255098563051724470860644541865404619969831763868322186940934522581233369950027682323989196121572983769721765479710026177153674438419945112661561461570947810313570675200443772007608820686585220948273829194195464693267129066277023356927700111842182967774562040241682273581925838590065789483322482024454486749221610518673986827720428225272965573866410545046282599472415157926775224002917141159896200493284218729042609602132929317239275328473762319605909934789446102838053399994416697005290335023602704874641825310284601961764205364687320666233565072784686338670968368846522117208014032549056836795614351872678674599175622907124955372368552272713881025013585048270139959906872542421811442718531615992995053659567137334206549230508214007587182762485858864624441271677893577256807682307437330760645569923406216423221570218271003907261436144734835131855337955086781742460638860159423429442477849215169315727696881268364584562205618195687325671713921781043405563221532125214017489776186332238446391293923470434892660669450309179955367426993658316230908709050029487953277265562457885675863927330126279273973335838148262153804802829901310099035758252086840236740232077823006838875440128811344964431776768283007825985275336454790063894904747177276053075569493942914750503436929717369842528522725974330334753665935880414426433398180218601540108884861937904760710902474029207340527986748238258429099639386901530990309999917909617764115622077376597094362249263726521051637496888187124443639141917042829373592718520459088330117578778027787623381220231856240000166765019264870692648068074994997738198902366569831780531411842286158864432404248766915411039033561946122930402469054568947963877874049402416309280445683992372703288626454154671351903169668192558500080766760346391367514126548104092329728897658228268338162764463896373108085824133849438963121076794459913881448286084042591007420386302462680828232391761119831313288799755113367354849026779852911187155919928483665075019463796241922314202713212715177711412490096201960209764595464488424074710780742529396419474460611616318017699090842314950907789395751157001544813367587615767367864719363156556698194171178154186820189114441473926470425944460814972170966563337839645820386032846202652165690927549533405317042184475081208280164901708688117244664185862158433276748490251859501541106865703120684055781268679281254210868379931999163514884922538632724759626142386349640295780591705536685578542239992283025349131919005240776396176087477235930197401661593361270930325038784615153959564613678068826733174146301138335166238756190419963128917951608562072002908680142139304106711942623891960219062976976180131839163508858242197584716865636299507524028343965746811885373908049202048024954938723050350094997830782216709888484364416900919801164340158949614122958270406295094007826470417530112296779503312023893886529036588692310181550228248557107854306688167364748515015782578260523644334413729845733108098597962839643720557180893550475993410012787085904510463159269378065334841559588538480967587578796269105985526348500547086326518874580972415388800028656429949569816389672042792809867740015618931509525119349626627081918288681364149111286910971478290768464399062136024481923207406430261543046901305366356617768350516767857636097750044860424277748093655069791416792565910223461495644459965875895529194330503199945192775965317215439709016118572345277173840768037713153900103922108008436238813802115824658168580692826500688458751919873457524092053429170289205602837808457744647845003090330319866382150979752993182878015529104448999647460149638522606238989962801528360797477929393395044759667856741506643399718386714418517072224935752370668104495421161289479284091280873091008049623578875940079946298725838155655511720628062193747863537857478858591261469258375435059657253193113878694937037067687781523733968994248034075762924027027380523819448173850982846122804615890927801554419700938598413911685584820376125986800312079510271956259370202602992135625368635191967491055759628088101526827401166125612672066318498772810249755078361948842477823865035259206749925311335994054601775398988090176574638627323567303916161723002959454844009273824300895157331810597562949523626421957934452963911336686595661328431919986603682278170037122462711372196605403919887369255975017025401363754390706753464396674915568674579743936644518132985905761700118830732415103519458545249063905567356158863631596760387225101933030827056056688756513401837305418944872229867205217018047150069191161900494068024109473309999185687828308323875937588457314645828544504548992130318434777512635415924778495724798993294743116954978905091929545016014257984734684711843588478344228584217879852205151484226356084038487006087621900056738191331817317238621287508785583742555923738671811579383409983564747448422158216674166481969916462298155648446412579569966323031288890741758483152492802491466928343516509060835925870359060250550249798428520421873228671915727302005090147152671211789568958448481689636448243261289472834556161605522753605211751120147117415262317129753861575789450921853509698489770073890134881002741203584542429881401085335947295491940106890808927591952432706399189411849363523369674129633280386178794082509010369947619200304699019815564447805431379058222381864552469237493831221291556862766234626211943180877350471457142740955022930659009109813898984710353119820814261024748155663606423129811553782302419393988708340215451182463299128069608906000410671076811850725302402751834139287225609527069253751726055674295955466032033387203857046965782857399534796277320335823678190414901274961461176828948255259223989499203508456315442676463244687211529964491112981639025173753907885829828231915870144685195434628560622838876782531861925215923452599322210729050882029455143066412157192427746052600411896640856754768044674750123878918296996646277389383381904234256851609282376250706126181214955321623691609365010715217440319500837207088216886877913341922381694094996038412233577651236663487520719876229771943913799351189482484400531373125379823147647662407960256286363975637739206428815654512850108238039817396204450202936055337028665432994500042810165297355133878596617096917476004395596811018104090287200483613888222959419959199384567185913414405825005467980030383329501767262972225010499574614436988802465075088282504873112048414959762118380869884274136596840276339539525850887722023581545040382561516826746701168417545266226202114753286462621796937787395204003842039871461547820070200637161990800025877597877836613650451478246667948447233145917598461527559354677455751415892363847205823261366162331028837286888147348938097375801269007064054713644415423674155552654429095844196774752996734146324091762649074001191191517073733973215612223122514590035337819334057539397743831177365374784601360043651507947677038772850345641790760226725330887532682850244605617040002748574524652859964278498372512288422082572974623201323558201464547851617331986670352190950268623325120505911048613320045399554633222570067163121163028089421191239000892797450518481309097979039746189206088586717915213057053708438311976253480628609249480927884861186477321883727953350589439180123995805670536127024355585074816939980868087430604872871105375982936678565943714508942107217341782356897474229981950724093612593533355185802133985683755554487972117469726434326771212975354540466462820665050971773077324431716379819849110774885483422598370656810502823796524831826054098520216324830247560981793993753661104894777182794229016702538683144269635611432503354880400364952725260014175732632423394705677538879905586105346003631661679818208231236970549880710953602870103718364973667894141930408102337648313754082933392492745973156179560858233190038028963898671603370389368075380082581737861514833293423998452194358116392164739523671573632323558913834033711454012145114477250762623038032992030048827825655054817527465860122320795446544282979169294727961284079683176708798778010350981843394392421752988634477544731495718817299662164883095153635236338175106528447872798984485426630447867239619115085110823680106333527850715962457882242960280374294930518279402952441525616195583886466940046820475536677350489009722816557774844770346134568346227879764380026200516564412216915560415717403664445648592863291728627782639364235537545085623762945905439175867403204873178181731483958769268156873248939265955870219278808285799220136126145571562929596934163420085360499204160830392544128345363960335554381265457204340871984419575356306973156232316081256525079606015462829716570576991821679909949098379779834794885512521517111305077653753770094446079355955094969238820391414218750665933452241279371287831921684586033146735136079881400231460885814000306304150978592436490631667203043644843621154220510023583879323130295159581454291416705284050846965493889350607417094539460443645134626835103263249446597924761477949690541137885646134330906577404760934275003431398144995123825968466749889964626328900666459517878442618253941817768679070510353201792264489528557892037703734702291253159401589713800722109885471218681380555129740694832045535060443269093804328765508631936388637981360449247981520063435440633692588889950759775533519713056780896133400171032552797450615172421103322300221388955826429511937220436094019565141182383442315704242812376762592014901946440103532164097661713452949897647179512526538509426246989203436814060126361379339396422654911560700330659123463748620056014749492158686385453670345173658468970672624536874893894532718807247425677703744732761956550166323956721282282711713749829597949817023958815252100221280104072108663940732862513810746822806793409920094114521947906545109237456179447756045873778676791549034010802933953327333424553284353489457412090146754842091917538541840797591435573787443091317207837825833973196357702645505720118804222296377197395531760933827190526988897687260026378366368595293466633396470026817155960547236326597666929451739195785344051541126558496939814034685529172776148324348270110518067015457367018646801409443192611348240920397119853225205471677131800426416806493945840380625028998975523344106466740809925637257353598666188162618639198141673653242795430285042303246964349528281478066376126272630671867879726158692775858719504771677177215273239166640508350222352260311328452805965193966648560946127477752273238986381983602005901891916120703138055816335154390789233006343474674048203898068351962597444895374679952652859052000314761793321082619759236152826559180241898152574902406542171262097727980189090952301894624564772609871652526387360756019903306491481951027902702834441284837518632222944624464442480353273325878458169831338510302054233530114530450643360435819321684099993529952817591802646493512893391706218358833335672958923396633051354417825081425136122982042483643752945928620042300135095882879510678778026299966156898522011808148943484958042217194146916733276100687319871404801717902364361736498528674420178300042370509874066974739119272129768033624169445026815112228114724366332908521904919640194838845886830231513562885615933668575314570419471882500526375712138426400608286303624747969084798469060635778472476349455552931108759063808668873440983262666920920325276150266719522484853055501437582233629482385303443359624231435223663338943159938342179330151700878364166557378975029989321144232335675468951587017067641474272354012328236358794338188638328467155168963912026954333202109103231788412963182651387493318495241085091035611770897498675445016659593639209799659011600199525462394214672851690128278150714684727583148085062422018916820086703453071607303240635304935719383048095984244338618420334331604510286283602016231074804794091105652335143943615090551417772711410722690631465310595142278730248230260906811501288913409688166634939210648709577123389957041113802061494172126225481238725786504038399361612249651340606559115976121881890980774802334567718643700062460861011911805694180767986276997095193484683036163894950874942287870006762258050573562012593549796369806057810992307275335172278635696448593921241480962521330464919727640475461338526127871155121726604097570875577858456447280534289148693467725168664746994543545516802826079031850243425945725906406276854053760706007891269050262899220270789077710598948296163800535860556320579593468123450724449361718153253998956232261341043274979373596143063725803352105695842582471934627126487573921429160899174189705290803913442136988731262099213343892184277104088183330969831165645481814371501596584869737393535375291985116408138502185707249606683025680930755015828176185634282465461337679163660284575535517649706509382715131126011012687787338976463117212751966188121172214316758088324699400965358318116253613257971989773296282897287879560039005692575645152530980368946028488211100083798449932883906609726860690929651466898219702733135117161412063961665695719830244024554321602845306847897631130649346911523466054590380671852050575196190514998247432968756232730292511189984602235204337576092056455717048574536474303352640280691379488008724715927946814743500637868965481708052962997839417572473495843217573372175239241364971487247601213089198965624645178813925997626649030356315965801314990908762457699396321093026916646264648387131513815883588907298494621256495296262683098964346889663841211951801569777856014835704099907877755218829186057085894406293794582051166945196445723779536505626304602475124008963593673211288147657244177044512282852846231893081788082723750857453437904826363153434348202255184796817320298416274480494237200504479412496104711568409475816997626549180586338210357923189806152161012055627111387483694831556210980237790127666500184392337538564474233345133832434048897350184336508383845759226995719900466853697176230774105622088981631658031039488689724206109411676240184952896025793119816078114776258233343562059010871455255604174019348433270983456947767361548463370285009060186293311762739771726695740549747365134648043809006068480664584989723111241611245807544202281946871294116124996328305159691076955121613780448064538511584227276086191776565122229861959243525220500617131431388238654028469145377331650009856961321490762376809830036976234011424452443242475567023808048888257237476910178023014454084632377965020609545369191397293902578780895336596866127386867943794641623022885388792989843187348080424114487108188061388422286868336043102846538042311164149707565432876538030965904177171992477931714060781757235373233759547731585375206128260363605754794145823471992259931907463394710816383556622650760250130260740421952230796247362392775498689051737894629550825755445495772788686399632012997796261720504336426994731381754385459643061661777645437226021331504311564298242384350775166367433561434996664160183441868094854496114388016555808546156803338841855308116755154670281148786531717677602084747424703506930564675832780966124094107732217663305130919534017816381371993351976589697948418697543549282760378486608429575826895179990492585622087732930120723899453621472254433511158772406352826708738207636829909058484867681348307031970514026103881054221994459026037393625477502630351475171766782576103005287764402922294722963734917337970742672163461156554322897337898763656705877630961154288094235983640533890428628043083408514012540784778550341822821369279250016536669385828586871590769627493176924057616599242841681842619018050376376260696031152738698090395817808007769771696575810212949100232471258332288810397374998552066989989624796170484205983256837488523197198447601812914441141716431777881456185802278683830201030554416084830701809339311682092058088231374241304424403672427967312630451935286823117081131347744147295929304969799829131160964548350565437508515338098812789731194813161622824947343836489622253742146151056514028022948243901737656317084250170866038817702438613062449320175113201852238834265702902088183188905981851385220618090020590768490133939001866591448488532363337600461589135146783734451946164712331980881880116503230411815740225756383703080015508403931516831968925825909324124473691828303885453369610414203527265121572149404504263364248364655819760878319217991736584882988696090694465293968324364866763987761385524026254365376705979272024007570100587787570734653579826831865508152381460653691241573376665295965224070987742690290034234988499931879129387361870307651611858089225621264721271181558420056885045063208424823288413695309652014036086438851388811483175031966197978301920176498180533036973167573234076328139392392235200077879657351748442969202446520925197477314755957200625316004950059387456427564682597354686153763641272697971299708236694289938592259984664899636225224308829155702325004462297570865312286021674449901762021105127564510254365080493390264670092151533771767155198905321020958016767973868233590691090512598170563688260404615932543875235626420479752719478376799534293528340898293941935642086888812813274181682945298600957225501176399731752439427923360356217797360052277502040644784535177026579404466775416599685448519592434518627358516144519399726337620471436232555352680757101024963614384869523352678961549943431657659994523539984892428479614588723773565313576851454487378339919553843581864239772307922517375020115527796314646959242914187942191759905126597951585442480019235685119187237050454134591659058474727567905020121446369688458283543768737761282224108044356914738902510572015349724784699686803818544748964241200862521078780442202471890026067803382719547015520428529601240870287623407357194128451713316427417216818683589512533550871985483656046621752256616568289353758907403325182431196000990363851895289369979986168632208117763196990840622992290594790805234814691034042635615118705705835518441875491279916083185031251429681613000200977489507153994585480551325467384792970248564433611374556858471682361108106368217742763908422738357124939506002596383103082193713150758301660765803660988121866426974602949210746664784525506873041764660247149777487956969435761777002066380550447594093005674178950203555693668027222356560068146406217761175425541164088539437222263901775186225113613864801870463990285013093059947042554342654572830053979284531416314124633286656413608000707800021146216461522632776789139218880506302643084136177617199963602333687964597335222109283685786022828248532072292084385996057528337414530753777363335535659996815774382456115923744631869144267645806317539285726803011909747419951491804668195444279615995385467955795272786150956619757088135900946922572842353098694996734425599988882006799902894669578843251536577111120145743153239997137773139449906206908838882511867471253463406595703283677519790145822675014770410332396866702651183307927602258972457286109149238167880846472310305969401281326933335359495031325741814570719704405095723341183591773974081609752947129726131795172360926898408919669252139057168532230831647316846708955279186392155900135085439130759593196529470221558513760894270232055124471069118773471981558562180395294723191170365572271173671051656930561548186793724077362769540209400616721503578104809392519471387184088728180926298170761839389776310181971488230039354664237031882944433369580623665668057045920095983844184613211829969009816326326062667295735980415044081909975032220440362265448284432709337556166852176290849948582711900321806156415336984700765551062675202675543282299300907087011918558035533428604842361085071057975498281759047745188125414253257883695515287726645293396478397285075047892173093214353832085929217883365990365060541881491868949611231308966039689072513317998752405881603092115010810933655524123890841781999682713918897104116629803032889018204517173671254279680159932707709583880928285325428176475732575452166826273441080036917345460118678426894175193486198177898658180256251013157896574307196460988355893802875679122657109214359939634165146384059435243158575023822786252314817715673072671055402192485432524768045646475261085579924063268373096774929977438184400164167559939378080663844617436631165750253171603867507187656143122171048080415021107362350230515826703458113962026650838352137669210870178258413938917861034789384743947565584413943400010158073430339697135727183445709162004960439199777330615681671876737691448481731803689278865466654440420258541016648071871376306383970898087860176871219420269047321719680564019779952408401292042508720194943548339091266316486445743541054137992665881807009056241668413978991625383722566162595782914335949161156259584462087645613071842009503382402046002502811720546645964694811099770222317815371041116275457763836790326093645635601024889635013460892784437348113813496336904142643836897310842216632847716754267853663500316320770045103634987617354597350092233189419227104152286302152468902325125408506090476997186247049884015739478610881284639943747992021748128132346043605441059231219599325820136103201713290368069032880974939466325134171499146771637320837073196246428001487792994471376324859923308205315997078651748542406245124870876452189256791022510642719252439529162563104450045677586713712390845303379884351400538669195242573260344811267592653215928295839877522552234469801315791202634026716494601340116912852292141967107305360978337011605781740913930479743618908948535429686213050011347674642081717467608435483327716271166143488894358323320325346939599919054788740392771870067946676097565806440548531131958529372747531961137513885525488065859485300635008428285645490969605872880228976133807457871287994508707544017735597760335574827146124599117981733487625288964005365949809704085963967420331285442873815801152282777684731367019359778601883496790525029206559753138112375326909884235563655726236429071399508055635618211843850268308170560975650734102714075402067829312006325894994051266391819942086644999008091887065123936888007293342737109796640067834141814496233570386224987866653084515359153831701995339863857167062366878278247785349311097866499313575295194803399069916655862164199702441747469849750891055377836715438667885081572349058917411651212592586549449620678254720453961293003093304511845782868301081895750166721268665851106540831103370289192326332582965867936834913470942477959784544568785581880339251945617704907212454948827796604970234219036265959409341574447347617138189481808636381605097863913182723427646722692348374573854838281792811680313712449807093630781084693631026860242171854989835597092413721766642705084278628281648633778720687060868245455165987199952096098341612743799212660542906746095920421094842503133509561489429104715595037064580538840485141677982289463959226076893788086424166868294906243026379970045398477803139200763805376349655845601891335780672277835474106927959230491306079774979647682066622096643558271642867325249909533333780422304159851911338052718857885880527475796174629272822724497500986782681091723438338990236216137842264973401738376318269646642763952499127007816849778166869615506115203498436833758863734603600832740761127750773647368239009645275933944588566379845600554121376499803705181133839890974232909589961927337357140048239084135956769980903297044311422802206188981342254521880390097732255659789887579368622947052680782985763174057707164827776335541900395168222897100981444098116624638512619514121373846408063752470031501700611390082008352480043486165349774013438241795425086832820577653243620557705332153970261139216448804785783926511726037900035811616140487952848526415477562945292914455094547849777897291113474689372741698656710780090152134221023281735797182379835679574327620890310913953416045026081691875639087478858631188105620858693765484976072549599657049736663651125686779716590918569597948203163932435074907626321678884083397996804257423518218605749375272694291643545458737557998374637538824900091813458098992518261662050481222173153270939890447553263168324076925738325270470781409778433356121416512358703736262268642841817551724062594352835313678494323135118581209047336787294765172695593372517838121846203110478753762697427284679440028043172248221799754062693780094311113548696289963938745044106141004926763455142569612203126398842704761173694201349785936068300127003459359423316018134375373332671387990290969577494848999775171115056447002930101727543828264282853256482767952779170728064100280047594662355476208268020260122546863046185690422125025450534075554746519916671862310912259009920844234266179723494777269517411900885499429487581805921005349120995178744306871846588512579290257219021677843851234944613097184992464224288469475051886248981587982161769550697559326138482994139622396416230517748053109906305433425712661164970479442750077306171382734384531547434195771388989680428707146195412737366185850893895802489313364013374432872158479133168911186541432030558303427467170620701096744232511154103568496947911802115978154946510800600265449013068550024860619729141504218047658521577588790094591568196595544484546478371941033413476302392949716717967855572358999966831946515153985976723108170659910588644594771027205909658293327989149529219373283933582273187979443243493521865479830850272650336395121185269467737069296456412377025163889792126712599134886712639677992776827772097714989723667925821931358953768371142557809159902537161073612797677491993467827058111685646141771691560039195756921732250248860140580428389215256944981757913550615589821690503638500745531215009401936747278120463006521763230859844359028224931419230072311729074568171219105683891874844370225707330852888892425215661028327895852396484292686404074111668612956323794776716211551265293908427786000862472829635468535489992494069167535848193158415457999524801354569320440094172757873409083356794843170703432219342288000044205674621553615077654440621462041259717606577784289213758916047242677478539020512330025803613855663182312398474005046018057059631317117903626978166059530488352725115792357656135321289591996184826629989544302379354747515040559229952168521987139003143127674421572305916552433636854290870680096714499791412534711673897271181564329946228214997417027723713133749793034091483191402380882578538422306308083408099293064634826265285231264023263161944666668151873951255508442074818840730606519700908572488296774160348837187730369868852140361195552578549951899976313051710738152285767915748781841853424904771436157897252989369221777953492296995305421719593289022552784502018877386550760920883257312347872541273252568104438199931223163448212342652271621910625749427628389827334095608035896794881053389654924445507698365474834510053391557547678037701706456360115555980542393798543993172645187009748121063680103558388578507652390467717057997656907414210101512528169231467824326079596002378674981463440058636954376343725921516520032021226758686468827820548334768664378660921386828801619192669930830156910723787577878223154425803491040900308892160590832586449148319318536801579564627508568535169903929788184489784038124218068604285767407472261022481571249300428213696067089548585169175701752427917187963741468384627484811082427362168520981562084657597064854194605556825303311759703567692618021150668991553346437440632688858010215493446032273038929360879602200378155847094815859961191767740891383113972736136307003904235836742604172731062147349274663703475730837848729155631351041343755005134975960081231239034785889643824684550169411238355749681652637715934793986505575565587721817031634326109071291309582585520820757064227756766677696589838838577459227017350006767426363446403363590548750587075150173680705017949010016101493344295575017164255413111113344429582765045497839484693961286874381339430197570905082019998510620437788783276697347221523167460030939168939610461686341788414678048281515464156979508101472684400993547189109232933977905194809183375295003707138822284264595650862862697856740358803837773776162293142453272419433319140559374903453054059992093404342409427354373611804540615097056071964095126857415627799514842468946129562228432452947755280264412556629836692234928885226332052053830013397166376501941872390887947396535348079792386257794440639725243166096671469400281489989070570088405788306106274231373815510252462354382573335204500633929511550210946985312592606150838463496975618826659501664100411877001111183317636494829938920449273298895645937064213230886355741111997498986073212478971227830089359330904378490119169252962179459967827448432885707266083714658541717681032681109076366026979467136523252775831648734036440631823795197269253587133679277477481111417202682419334488684320898617388581497150269487183716967159882475499310679332916676103505936083571515084586211980455818284362728313876369512978397796770615632024071880974250368461093405222465349275337301362891904490903099369902818258063626150140199522323304283548604416341733351788180054127350126127184018049478861590935502949838381565317844722049344686228920857529036806964343034476671046627523237960768928189210494910497133208958715178122615815465795816918185294978547684512526464091437260077185282309584337155971285788592428355744687077717110635977762524989152025548435359455269906957132245274388117697339443156681307519361006834664344932621780565035558076002391727256323704703750036366500832190472329049386830013597977594096841991149483441880565712243611018815453864711392057422719199776670777563226999485349642590491813858746012671260589757432823888111794780279199190391322845327609574973555520687563897243112830656816851349000845950186022828875610282475855020991746883443435990614443778600303503863169651407647263566833716208982114608906927490511370476099081152574164062556441063844638449227610052263122611269675887682977868929407257675641141143474357780391459507616314250862080186246486046751966485118108272381909956329942851369738441743128776323772711888903352631876016291631458922973382176841222571389433578111996646125944043450273723954233496129307482829914186262367347509774218881585158941046430585555048627406753138839527117243395000369175417118243527098917084241156503057284587550912937955750854329169029671870784766855309701985777299476218953772014847475887919939867721860392936940580658554449961822281689886495703253016791629783525980076563092829913838102944450504970559947112781084291138053976104822571542810621676727211861130012426218534994813603355420380759157118220476971055942627764107890366195460059656657250260063534633079338587750711289266305244732233528693179981720139352231889656958607225446122693399926588571528468958994461289654412919312888163195770061446187369772977704376397771575756508551850582554885465447427849862047710662370092291970972488532505224468774131460207243899507564011235080166370002302387434272969731181869614895495262852616915725632397431553112183041395573920386889234844259936924980020828671797517403445321919540341079580110257002029313285074212278185892697405123184970792562022747008050391120208081094198774509221829989302953333225388550382278202852281579872629957012766026339873111398550082443036202934760883610406200912298512052730586957060367526955299103892067340325456809886735621899609775161209559029652731740879554381857426967047910510289022277241291883491694541016624666111912805259466812342871257374952380316308551848607885382163313677174444300939422588306894811120510301412207725758594484174730698064105478656985126142028969370913297960825000532864776304831035854583000058253775508607982439181202109426362499092880892715158905605655632574138080686682208095117273086412654377718937407378881283493442660178472452956332336083315960085372571106454443293191330454850054993540796916725421820706713229869897648048623153938530323798754190682684876995658621251387740301211582048431323914720783771892187929780860129955839700531007205019770772442152051292312003300721735404637942263017364104468857740569117087685278506676795255547280803794420751939462950662611034731512806473644423048850588801338521105537298752187911366710491631005599134424457272597975009507812163213963285956233803939066368227116842079972290860115040403705822996167456736921625997067089019219820309575711504072411341045337895043251081222838242177794080434728934838866527491774034385218994084839526328456723246389009846988759346528856126611364864018342422793136228329256958899100379507873502947465342372300413612170211853604674118096559718136456751127030458765293182067858843059821433490238912827196902432312974135774822055982164975536340586855524796571864952943364445294508206010056059241993202530141823291078359825584826078927415689812494860200853473723357438475721945635190403909420938741783042029018497333281110230620282267444279796301549383593048720993815710676631907754683588448152605085274451927325400987242148025189662739978424978826789513698955436894504317682609989803659651483220305264764610311121644354208645100587470662455812353049932105251130938166232735750680057069220938880438816243682837862927515050662885035706450873677246191901653674609383636956394018231993044586058540381237840133689052458801583970135731288943192529847855145306928763523210546282054087567756496546775103541743873907999995748747503014823487969386717214430384693080358091651570845677697795918299172106427748222944015695134838044021970598231534889331123598733944588084530639318448196271526972739093218395092071612759560735233325543563319478067022004799778134145256597497940829683879421804598456060067449809361813982813450473263135055803685193657542553208762804671036380293101278317308470410513121201462906876366202159263664966837332865588018182722106329082686471228701630047233174696884129964130475170272407942566516765177385468866731850386461402431272575679842404360477528778866898497620410423361021964412813706884052900965582654155849720414209557493718282731205566078483336266129114426439461006386179724049789712912477362656682097575014754799731024701306323770076462467256526538891694507063307425298515952539296688369203961910216938077430444855046190184782306963472653426536914901276939377709663478784382498398825084500093261747534901245022148747061086886196196219604080288998889214423999419195512486208080638587143161350035334074472887474178766371186913893645718555283916964497307114886676163012312455663506684083202104728399155811938853672706777071485927291588398227381501471519691641356027757506021900264056238932716479921806735929572863427441824001453820265049464389517798388965959416654057045674931835474033657337334248420209214852553487608813903444467012157063263407352988246653978791928057837173353891095614509107962293067739951506318594656159274509911878152221412043941148937555440672054599249550580618054754508543391406298501720217000612678397885039815145955144875931656152662233530601194119130281767982425531701358506912797868732817387697419548438439691866986922020576680962941442045050901727474856649286919688873915997422111234511464569887763796785727640497548499125650853435695867990804970751061920939942340509596541619756002189779670035105899934595709640542999228640679439145492532929422140653787408529399225527445124601102440083103554186141484024754838187311344511788783343481526942331313399311820963755285734864299576683329359989180144106686100711871988739049260189721957570986434204499312637300662060887410360344632899043173416872257364543230730007263564691757225032542026331163997371089548676510933635574644734724678682644239831035955973489287629926974532155830943547754836899458690717525516664491497921888779955892833206688044993233075281080943477106631471855574387478687126435744855314295806894412310189535754804222021877237124601346964881197567347663642327040670597305616659324120680060819678440995539891519750587553411374792785845843159175396553640423010905209523902719522311609654079389655313526351475523698670945351310929585098042164535760698103920697425096208823373861322557516507534591721654178099217133670367327501329075396908518746952713922604785896094552684436206203396045739060260170007576300220831054845699907213814058021738162099510196693730759435484083148511007240400752413130773624521720644641147146368933297006189643006697080714648073755407560772242294848231734247668594770007276663616386877452372615360791503837995547361382916207595156152315567720104058801042481956519718824401223710305450523898277768760294689549787028778549473975747603453127293594459868630839966792615690984301455027864768321740263810656100655502525103092657117495450565035037878519329883483122403617388330168379469672236293619055359619188027329969025679632088718122829478786204438751145671563179781026261582400843604041192199901480803084450628522821614702295004281922667594301527791647243832087341025752197339201390152941934364040846918456322496469696084410140866960191038547571250733019466561874213171228994931395591085007832078581184192574076950488366973527970333772193887501250469196500861377247211495306962097124744374624528315755450344076375930691538186247224219851909403583058278533692840298990430507296714176088153105182175899368628717026413691188348999144283805130909176403027744453192258053086644367063709229512431566302077117280464154667515540918457545387947055587289348074257185480179272729581014652177152683966001430519021119305165638749812560625769777991137283054029540532700312323015450039049564203744423820299631964971382874800674327122857797547428795192990416732474522554766080941734487592495670498927064822604972490923296745643044376667312469730069228380927147697944817083215291443926124488675611711027256193924416218447954151257455118996273377098000143581898424095170293450762243557088091566678470042437436269048976712830473338518308551609157045817500539766196440962587754197231855422517094958461556356943917231824582798791425973102947907234358414595794911420471170575026195010420549950383796196206664810839087213792565683141045028925368773001376468446052442950195853688984009796850878359594763079010058246289118802187181420298109100998236017372856621809254850859794187331444936752549011970759554061732352306235119548385700140069094178202813040305826422326725624333146165759411943058860771452538989536700787862431153302451591154477977833484442770021955104619886063127318077045147870352721987951499802176335312182084887068756722014028151510906987231716727175117678416505188107549023592755141956908153324719331405770881236467109194005693519447099017647733720249122366086314475546009455704459166573809523048244932740429007106857200187829907071422049337135797927825669000511350186821391813160315931329823497842985270518559117744236593344396118295814349869636988350734452522056134197782296257193204497866285675343090203089293460886502333646685229349101038810213537457730510155850059041766302224023136784230140511977562156101932443741262354547702037906505015748433037438379191631907121412766514627057111618605605351471453737786705110124288757165253263599323220030904704826521733625512285995124966921282367674501937813574534244437255675170190267040276513535928492767607085515185623107926377461280483577572007722187365920782029425116867603939597939222374693832478202040844284116903479538715833118504625516804786616960553635343632405056623877763868348975753029615182404317148055893461798223567846739856866347040611767972689471069621079157243977169198309593020536320653591779562804838589348283730802537556241702807922671685451436329895027045288173463881842993192096004434275486111071911476503682571180246728745316264626073482722784565750039191780446967456676325148519103149114925882714785703997852743136797907865645251859174467057403242789038256403847434106066744559333430367444193370734611132347866951672404242553807230801234712768548112582086763522162990465339131281753178108958610669926474385591522257035777821002995150783141510920077602019155203174903002827281943930686263872483000106601938994720061909457162271289157056452869649181140476227385330159828489393261696816237571541655426823989673998184701501782877820406336567973476141172359575021223343885554339243834981928880414109706579630212614261940060879014978500002237112069018877234141072637499789957132735486581264453211783307161436703799124397925119563465404866634953996655312113318674945041881910218705897737373932245729754617427808451870168235970605839952221888918766686726606280425953207917628179592051156050824557076887453920586292950214993787424652649227945197721120230355496053349026942895432707094134736356557023439351091084164720967714293165450345495094154161477596157027267348796782227603846178220962164179466188007552519812983434948014939586157560207700024412362132223502237102928416972650468338198875409378987444987757428608930955476693559687110003600718189498830681353886710180079621745785171598160748682453268144371680746044560388184061954749712282878124035388276642341361312699800209033151870900126178173566777515049991889829009856516995622278266244376834976638989834698810019938445020068409661131741010650194683225161356680794708611405375739488272576768821400180182547260340037670543605115322616172996828430469455447361847002407561074393631511349577629031417064238981165262859003594259195078761392054763017773055111750593472822775677159631897029348634392579328844351327670004932022313346496727598066065970202683718043196317649919969655061917704032525022006613564614694929825972796959026737132767714435599002626325766346497558600073555791026261323081086778206585112737741426285845549777502929569887759000939253433842565740054239576351698240589217066827721317688007188933432741951490809475864133470422832416607693297976739840462909810468803641405969096688934344881595476393887176039176893007920870423925803323820326063488959240288193295028406803055746293523818379629409255583620247820061579724863994027351468493004548426300215974710357595593122103842778129025383147681901101547564399229505009671446825273661157292425706734955042857124612904720740744335417979531923631173722578263944292218520806352203420225370522768773780852110851932633238875615362373107840795828148916523619216809079328694242998352104885229713089728887537740522468347563300331184565278283553165346180812801168123640137114219918223757995563104446649987861848552445975183979527253428899329868923143154690063677497680001059838944856022963025680788577252947751587768366991237702059998990227627160823553813090059831262459995471786766350855820697977983526580971785036169633875462186432409523858249555022220865731538015613644018168789004828783622172236309431811134906438655945704638101829161084667972544932410310344639127875475582757871518503333236214639013089793905784611114640246218602286860371006702551737910590162240380108914591656523371461524631540118762190744611962963112625313751499411540331820832947497844758430073968031936877221008743712888586703337824791120112588288565085511636077149877728757419767239911985172166174456380108500915460766994538882428229988441125718300910164804105509009109864087910406810360648139778001163027667839552153393222791451459662320837665451601452543955317204117406974770837733647773031346448841918165470701827957591998782546082470022571679023944887193582144198863919456432016057217520528040680621576171853540224476408215242523017513432995296213082776967512936262169852391219391471550374608139480808660125008991119378586513527380411146919429977411033033898781468061702676837545892818600823942590022178708012950790870491433411903504049563322990073404646568637466797070578565703249724699237901769294201066381734607191687179811527736979745987957429422195253585194116236308031642243056611176720159821913367059163294682476063676639998013104236508577438988340527915705326364697744380813641952392287525113301302681935412632500939202378395127767866337398771728877740787477105940995336192245578976564118283817307494325293018046299819113233517547862369037618207359908091916344372474832029919592512971736435499937836804985170828777696546581347929148230659928305218067089250460990798061392176058407978690347494686184236707777993839072080406153175576780331384165732041692864455906034984388841069869910063178038877097336280101698342510682041685696530694929978868858046544014440566774844320195451982755192172626950753504139224764148644209540109957384780857553187596592565142178817918237890215384139172142340318860457952155196456746800388336534060091012569003243972821167667530642298928086753557796124633552477134240507090411343358511676821844347443743923315258012382249901716216097810478167900762340562318359349284994958678577288954206490343610513904301452397252538062591555288437498585435288935910957210853690720814536306309911105336424090529138478056308593752370958542079032413262241267630012889959834199674951870761956192276425118361983901465431067381778026785619320991370347015047320168624862359455958084233423786498627556170299308434184187831264720339622645949738286473003833281738459425789880338275797361727655139881677843222551763425472191569207146327249708875103967962308979997430316663241077755142322356733870650289433254921461250556356030565680210098976174082971462714371203516347525849478885044041531003270255609400885622574703426408521909753623547697119560649273287226069126752188742734992113811344291865086192779727171399761723572813632182521308727351475479524958788082897302818722991268147435044001096931377969837771739178720135601464186796096513010688077653899499153036784015282259538439272769735429635842916203128261232807113044031863397331373219044643800499706296185371847632283090782444928037413165439315487381551735135156809250544419352370499486537847235424929242098707938273595886746219896152912864859932856254873872552941326458488431638669219335970956530456299489011611006501663448015499823400754336377496258037106476279959704645805058834289681240620874662193773517860345481851471376057513376568226176635183298198367097577311653056564290057949147566883985276597866489962378620223548639355515823285404362982600692761301614962513531951079846295775433749871632053740385685505897358239271166440837787593025510923623995378342124010678636571116576765810243803903377980438237113739537999873947253344302819481057329270269220538404024160587977174767202264176058105418213476888571968286446905308196981971805699203759883463866466139356963444600328284613778400380578499569632321781248889917453944636497299819215976828469104599128605852284523912839868607209867989599792127736719960914320359131568397274917309249842591483093505860205255232448477671962953197242062041849982645266813773061897648467246987147374820426295553065285034814678191869222510364539725544485897070028229484241398955053297569740238554150761676702682143371338659515275478038607289213578698206041357662038265449717081945317164738308952258699009252718257230205773332791484866549785565525035693369163681957533746953954463096842383111674538726040971013908268223236412317683899409870350825710751064651956602425138443868229776599412121956344161161498475520927190156761739199017379040347371852619816184937875826372350640304074864281358399623769480813394889462336338789794886432930319527821699040570702094471166167870158777725401264143724055119855260787883508778241385669171311685527612375849083726389770145688002255500352942850594561428000970629990831746302703633929501639086759105558301263108824637986733093875841850784528488099032314865680854362237967920313889028014170084552965293137494210574369785292437131699784048739917234310013702254157709582641469729043848177872112479085119538948160351675304233053171549204392449425974694175693438087671083817411600584781559310921825491205616097305203375614440872717641233582030316902774795524470864666833484228680459742720521904778718429054364289548336810176871990161777859744158726483375287878286939478825501138285082156235444081861829764290917570010393440899851140519468298276690013296760901025007027948807368885387632434842023550310013367353729553196582325028722011281942970133168568406129931020495651428338368132931840039285194312960834111613248599269479860956789527154760013633201878212996525507403374177807369609440370268007495568384832877261951515412222478367032790767002166479249316151522013764876970335131919979083869651497000873437898050630793244079310794524874514155422363315956034577895589527705171928042110614578609322152573879507013955364020221336652482779495728095188311995261853303700780807463247941381496921302102705054545459828625645463740949312399009128780153254257802401266809411973207612507989332753528751459838834892093391711741976940668127884609489742762754461991440006577103388884359668647725132751429031173246572647004256491549401132186711125940242244549897987837492765419923018101209816874106919253621636471184878509619426263420261514077708574783674491462236582389279039897961809923912471146916873892512858503459972577563807083112974083417936629275100971760517997406613027777954872878117503674539274196794994877384258504595138754378123845975779849794303661851395741536146138912670216145406200661693890717196753067892833427712857966173038516997955279462160338300943564840599753325195309073506562907715877736683084661732566709080260942939320271650153926492516809349090181876901210183129799012742066002593378762014401251585622066740457070273593078539949460020128730867506944806359885899439510580985329667058538442637185006292135409649681548598663716572037619745776540987172008371985383472457250996889225446186974107365757221590583791769235737332880061801198035258708069622902258207831320561150534712267407267759274352355170651905891564927385296237042798871383224148851691364340409978138478452264500271913500549085769351944478535545303669034556635506314426652434299383167021512477234147818612784831432561275183921126455681607299690829477342936545308364821020449487155442503592366966145711607676815575077125477358137656101824607256450477149818501332565239127356944581367663272589917093623145366182843950420471094961691897663313538117015829624336035680415934398355565640496354358938484551951131134707263533607624032153149560648182670182859067823367865612090831138811460890196258866259482439290215438021823572129942568294360241320062594831411421420389937873787490508831034243954897567295399978762925869668228357626074075564184359113394384802667434174845108494084029642319187795904004472806163297722693177699465475972753368222913448875757561841197871629844098106038268292693852899686199370270522333696259182680465829224894700894187746679786570942567954630704272904512708045123454197798934773082187526427040810580330995867377677786523159887938881548505746325958285088641866991562762939467106110039437891070276422924038329824351151566623804712296065490813206565010363018002740278300983250827349319770774861433391625119288050970179873246133418272418075911879247718895204745024641984820393077516228150918977657235236563011888427373111395094979613060614891630405785411394767965100569077301237996879882903263841467814290270946310480975469175457571887136649130966755593262929454241376723873764067955062087526304110812633067237610326027912648894651342170070648826555124210244846652205931604826152566221518126488435868543882132281935856581562178126112363441320040843195824687195133907723533345100858847400359804738765012481519000705621446809708744352495245688845224612183118610952925158417172491641783437059214608708980145169116510986950847770681622317213217711033130270320299324242752412696023251655402171497643490982426377634793464401732397864311766155817951889556075267522676559413518432712599124264163485591562565182970106955955978380758867309952425445572569391656182825633532190765134709187663000189883493385175267179844940812326169760162896114875183917346951910797910859881989806915358383436123706407566909279322958441034894582305140983610801759999326247237452408096084122904120214738854637105976336287969236860159355198972382647519670064885583595856603050762658249418608690570284374096837361898911427437847345290374678227784877286609784190976481384834834012623496759631097179871411253160941713029528575187289835569383461982578058279423897355254474142807916218056590552929502069356207793064011412348604361046738450291401435281058463959756639074640563597660686532479086478488071294830978778149797130750695413676009447509946193962082223499127069218015238904342364348055271368347178125429874867336971735667519820277776891426533731692519733209113666020195845095179184900362471156354912454191660232571676552701230276220149976284753598276560607210144305087439445524309136078734020297195177322897922950024471704110083197605590899049280883149100096859040007240268444495652714009432852530896120057585933014634250644504339898522426134276702014795592071604719782530189209110320656479439485960019484271147816703783708586108039618616104589460229352829034445196749384510979731605495355498567580931297901212018909220634883701098617421788338649582562887685798728611715562050423335444922798099944744319503424249945220467047271918614128844093848762810261312779756477388051309891879946749500091973421018043914982609063895591957039301717036214423579854568501022213637257837251345177838257602548503298234917790048124069225219986819582949038077941622632223095606268583178791465473947707429170225719874569508604087651984603534428436388810952349942422978948261953623436482507967814312876357817699259269961223944617868960822108124722445352889739232231465233002226545159869992823519958665477662102891568396812364056539627006748607125026282402305365033147902459044757088188003319735820872820547732963007338513489293362405294887157440076436289104435387914497289751814979027717721996604776683894588993756553192871861964314566685658372772224893466718102111594001561315235123403638516529722252769315551584971394246740655784467366788037633489689843636813252511199516477439479185282553826661809444976726212872876822067348041462948066855086116698607004517125844697224691917940796759603112946584184005560346135469049624656343202039996751529535406529987198240132600762274767280402927398912348963618211417560905598084341549925505245821495255199296794689379162767854556723650507888060974425664305230245894301066451200643333252359993742470446511637724940018560226649127130586013380330569754425748559778827934578221404981509854628825013997965930866169177046124015919221136341366765395597434247783644265443585585355577744711892040171685820285202130069246336717661008485563839706043485667499582189405677404896468956136503760416215362597416645435289717034025987644502629766917181744567560913305541071519697643431271469333085392719280601315967298952407202635380871118311588787727446063647002382549742797864127967848859521684192785310606176072749122342919266841479555573479777016047730934801423581288189416604325595870917074767706895681790805585277958571153422236073341591217003056564747156634274801673042440264835994951618932533413675489765621539223608939055747521517516168012060956329543457688635781558158824401753080501752179837007623403845894168125392506266736751459358656179933186161337601418204354630018523493228008688204474801801942667029114325644939340808438331600112246545556406342368184675426081603279842233821063748757375851191265102480060880499153389470988901390814147716440875265329222590776783085624650914267481394394969333247002176522510663396900190762887495747566480586033824675999582588391617836980929066169178058730752898919629255813052993548520431516915406646927185666029112045784742547389278192659951385544187095935992165249143278425757920507821397143478950707659789019881379686857397688277632030678906584037927348547106176403286558708097420702697857408235098216323884448082119374912928512192920745628748883599275084030057600444372962185488970181632803112678315930946129677245693959045560434504705050822447552073534716922565359551477072954750025034537180279830424734486293973691980066173157395320623005487265475108756246220778693273943069587647223089516325383670165018105270965431667410757008516529200621286514768739891919132524896610546683491680077913707044766575533348050746895499838591313444317043776637376129995824879781844307479239870181957749509959904815937472179353832505183185840512524722880373234657156405254602559443892032979368276242534534084387307685306260358489236713095831122080219710045030067883707371397686106766326622247074500847991729385233310984654332959283968016721400700338499068082483470360078171743712936365388998632991738278162151170682081749118532806466795737405724180747852573382023724196927212057807181363006524077032903520469483194537324883536016477649309255753634086482915003638977366930461885409942255695358922537862430234683592947176117446157192430725110276546842857771488188639532883965420232664429642363595497353564816117936650433231145996953130925405427362034639041492852817484082670948487879565159451488324876149954853370363459868764896746165816846985655756585428671485066016158298548442622135015108458496806099815571825040902779830413677999031177660869075800360282157450080168165423708559186091660165875097873116474549696533661456552891040283094959684264055772103156862886754892498741510714831224190428450235676185244426862686827121632539800415738334898623624168702598176574546026363096608125764630867118578959871682230558791920719889778377829681826484857692927583198949071955072724070450568923332483647641464609283957968407074264528810495617821381924090133983357324482267047132291453866348876708853406502190826881118468683338613977305082443014220357891059682432204771547125259787232012167569593939348729040314597246454692970646101419140682718940841961795721669868717900803817957677828447789792914516189537066162453643819576823052361672664727435067199543879650749172090920876046841992115650488870471168422417453743482716998063422117471022173190868467005451641486440220501636152491646421375216068376548126723732893028140241581354383114897063774247801871935000186990262348192740300734184684921931217931509951831165854610018734606681914002948561679500351941293679018055039402265802773319445934984045083074742386280231252878085582710816052981205755418092191150520552886218205322844152788836837578454192962543849453026228203702482939482006085696541304197688161766245734161675698746418605647669340582131941151565033472587736971683433110553229590604222468483717484413570031689442704819833776920139897558550313669666787456728480771043828198693530506162764716354578863779265666194959443228342731169476436151312128215028911376666288048123333903483808982655811543381139228220317669707347088577052664479255885885193835852257327731871686163563570115916138389909898511099022418310651778626331966050761691728898524839159334353748711075835268434954657778575666849871138523449544671365669495381854314305473934920235564345199343612547782065396575070825690212814703249213433769958921846337944568672525596184194491787395633933431352873124043943094066529036868249648656879232437271302972402423655659806080140572432062599525715533988616219584617567009264312707185280356796209471788560291579110798742143893214071173249998037464095398833620268546872059980223810944395638840893855593247974065960807238511932646754479114779052612147407842538312008166493620292858675110350756028737340971910649135809470525024792616650121045429871093572666065820037930931402829265987604690403323157416758241405924409143101906816892144387956123549471226731622438008780326956656622173584800106244963340272546975956655031393691514977638507204252092445036424392504668028898849348400952854769478055514137689081912144433578423198171976508692547502875888113834409769492502748686746716329166118304517272556952928445340572941405810041133940410231134203939749304574775690442410013777533170139283080336567695872391778104425009497944109204688544519985560651538189064056250693134310748759813954289627173957592645184883481427610366365908673891563602164700801350655497562211730875524937862212838071816021413702409812688928685064169243764134674225623420397255519626259545038075714238905546173944980606382588774425991833851813336650778766950999247452327454523030387309851371896294218214716615875364950325301697370944760194413542869513425523940289217519529178448856079220697765580994675182667997880989256217348439254002862794116118790257830369262907425284448580888047369187856938425794799540410847739566275355871844866632609956112717744890279514405425316046574192820812985652449214790895809683507212862826967236931492793456556052117266025748373933932806891259715642733325170010105911375498555341424443261089831763939523819707086396082642622246209428338050576752641271753728971043107557779292315486234181224324151186808000187009765936529276211223719212081417410905765864874239501132517038103923250230820804510109645800415366386482004232670848629039300386033550600160016556044703497946487090553667182216552792555877328504231675342368640459492842852902729799858470155293386889205728559011205938997756955476163902852581829474932795320817319371096061088889937724261613419243582030546892352920150787861211923548940045441683387197812870682125232151351317337325993073308713464704359769221330711513865749207874099941957305072610811487683007679913591480558332036868546831753181618253673990452955308960544757891626399352612988575961194287242603672288704403240602894091029695995473668338056133250631459959452391134977065395749554635014452417786636354422501586194368280642348232547053635481147184390814843955343207978732228674789266126489856059294290443702489868425258413563039109783444872764125658167141407663256170818624917765251130650704826025094677596476166952747321824937376568019187838779300935607376731021088141470123448973271683120117877277546594116106240013581438715462568908000995278682655603460176159859058497838379377732943115717022809663132982784425383615472918851409337968082376101689175994310169616449934327616899506464409832472884634211297640546998140373358357538149943189686769083934340952063953177611833459894883608990525519072090226647551915400453820665988527845067440779198163412733289313264683464325648262401865566235613515397288567629755182308177391757221658715192853101576770482856634987706437431825844824230349802516325282017945271183066084629294135774654322558298140260159070247706242250383873087381617070606899393855851792103198910099926647634363570340460932928511491451965195531737357628390099939316137926216396262558981814323435630610168104382514803976814879044154471191311517601011956619008354224565988584646019396428365877133575338353811031601925581249556345538574031908872031587240740011033823196194814730304515167925997820504575917735747241761108887607411789129604722385091810162568341701881043930655078751213121484320658012329349209550822680374769044631400184322310594915189571023432538636936820054078414292799272939433916663604887046214360189617122591139372503123839188901172364584661849095363139958679689768708831382423723360248666736756854220308133511995315640601263809910747191580545543568531572793389071886477198953352644021836184121771262512198074987734696031154855049553018191006093833987133043074429932272282627606164222846448109197339834866812928886901012596921949951591978800170810861869028344924009360004475921649355437857024204633046508568380844773124524009771178489419816890449937623815576777136964053698484862637668939290387680137782974040760054971495718752404044776007160947661198682636897266749751796701359836295021576354097210627311123439441973455833856051078428988235486519081212722078908648645962514890654416304086244591924140500728599304804497631108203679344373005816530520200344896699580495754766202954311706070709040988145891823103344598232742978493920751081677915906343062898145347537087747158873975950664984309200728271464668907249955649786411866051254947778634396445917952405225910068117183382488599979081546525045118435461954944880259212811968369272759735592374813493493423509217950229044610041340249387050065439255604506653117207263412658903321821857407473827250697436662548476133256248162610561770516554277016337727323338293173150265462161044800040181624177279814578194906799790234763806348403721255601596615384650504627593553168660374548672218388564005613403046610421577802101794601645296025794483896630192816287559924280615136918338754331327051993944035015894551170902464878447712398949740216878679792371356110061044144024170035604721094395017321962678536711089235660767233713270339429909778463511690624443705425989755489669303200203883815701250635230597095244085852574089465999050627925577816986501382267333487352137866750800193456801862230721689464808517813228361497090187642570108795562482735577011398088499510297901818778078190702134514700821162227444456669283001951817398977784931427125995178424736813711161939965324013736219587949161086212302851291072601888923897624147071464787732280189874106172249789802006541953324311561806256456099533332885425493497828021175087863730838389890836211152325111811232617285396943766800178043136598137801383582704491088678899901080004674718581488612145392004529641217468849402243643495020083671104993667545966583062217417268243881859649130738192626642471474639362708164001475585680395255495449910495584644976629045535529581869712383536264895543068767450599612556151970006086698788179283804550826444763787653070031876069245665666395107776138752796504300742808464956900367646580925107962434884016476081644621774322049716081718364798446652901789567623734047096565662223632040727376631383342004993575116186380447654520929505063751291650695502610458032626235480076940200376822943694036142013202701869991809331259039304465113204954255207974168874653762551380827706809020982618071742374252946303517591465014934024388860932678429841307417662452268322772127281497735499239734438562605506356436450368796318062480540345756575180348212284510078671012960815752856024318458627655556737159842794177783242631935221349300609343373634525641909534927992723666535718455458417967242326419107153859273279178034635434113702286846611322443436078767143575355980306067730526667033075913049608051064311297944435435377978301243219272750400595242435178098404417634771514303214943432379147448672859305582427484110504971817302188762122302215680472726569932961285068895149654399195287590255170217112093770834121344682500702813938113313988503234325544623707251932112352034252761197378816336381035052050668800043626754583714487459138975481322285855859279993212587153098498422638872233790223022992297238697534675961049851214661676139571862730902135302731735281154763026257236919587847663804793397294892797616323274683824909574188323745033898093085126878800434194144093673095414363932129802148107579786911991584379313536541121502389728827322750553327305464909147640543466138378231432308922967229691066729456152846814065227881373761037331539294313473727154243971161590262923571046180066704768485570747535721028163706754037514050562978080477567778295385249936369173163696236827273707776254943528383081401334502832890317300268320343997625163530703385104839524217846274552983765379957688463206225195155858563478507786966966709144011226679976976425697283840283255641081722537555997903226763156946027855193282489801377390575599030377409964183125111189097400169305796114592449305062576000073312386283029928520414983517999490310446714765937914989928039217051556487129517393915290033843507880199012851038843945472879195568573998377260116040425225397168993992156793773461662013921524720722889035251541355941505771673742615800279854673910867615449951085548728250391117551718340049220044839019100911042809470563865418966712270512032547689048561810601576978165413459558105134506021327398295479834692882622760321438604603152429611032180943600705337507256408346581555593530886204356482551972605255546303492270479254238205331469117590067390602914144677007132484179736348341486956506261680269186150452907400804900848899005421422554371353295243157994259492382046011047394728438236999139425533557235631826637552421657721063526239328276750792211203163816080987136297888367232727218895644348502095809348454976751349751624397643249161846366876254025736564405964336965139103957689418499828485048456376103638893417269078961315117604172943021534654309868805668914950543344222975423387863738402316783275671991313945532270580114378770250809702111152343779900867179754184024228564655211592094185530370053663748881084284686856495276553230142100009007728731574237506986621316157448626096331084198208649289825873734339652690513457681793776745813512830651422166487800133981109489175024794604553127042469352654585697843166096700153555840369916659335933891006657872512064986328606189414337883381508464459793066295857620294965908074824985472168960754942535818106429243096357108565400361590101422471242647453692763718049114657772202115724477841377371362315297380471298782655648422442607183326517209162457866592976135439362100993019003599012807243751489768962425741649677637315952318619110249348294221020319989826521427399060902427233666409366566810423909044919555273895824101151122242965233266782363004510495382365818880073339387260960364173487754032114149072440572853195067093277582866693789742844664470394948828746706839998949175671040462137350142207503539733171630252807794999386667937387286593133161657499125147133120767211759799092567263177491175418757883968397778257706060377794565854831411610591667862202665006368890671758192559874176422271680588764788343851051173977747495721039357045099818275370506326655628107701635681786743937372661847564589951285930080687215391455100367381031160656061032443876409495819460383649910201334507515223091269022235648651744452018367224334938313108366618161307760665404559037602715199846817301070183435601272061260029721686761357378779580325128859034380538354307134852033758342459230026405988014642951583943650639022198499330539215929088856610959680820884508143621499722619981344805770808955402287225024793926683067841987830245208580182311511818154658123090973615962808885710058341043666020114113987201436748307543142463590785640839341175295762799032879026528377513467125580569680685297789272240146915375287073179198183933451053544299960080879905662313583480332773617854879142179218277285955054666949998370890580053321556970630005340663541456255580608505703432769963070759293133865018441946149209046808722018544463670702191581205520151172831280084163365237546315802833753278519541744855571775595408968991533659320263938234779948157701516827109891130043785019148878738901859655325924207486205374626175734231929140243225896862509114556961346885230475435223782135178107702505319996448100774781421122337769299439054936943321574343310487917862666438029501526900233556884750431674967667073025532007924149660672420532625689342918882986783602428667259883705040324777502077052683174877264230030800265239637672138694002923321327741259543530068965365029545883677157622445792495869458970114519812307649414738657454826971741907154488895885197732973096029059094722390418392381806841285353825019146382374692258580006322463527718081989200912968235764281280447829358938843167151163520346829994814113342523720802649927932136366671743643666391368488376989818526159902432513336945011240110129993305464809964139530900016565266356958813172857589166376905614048456448166761627615914112173405331598951885669667973338709483304419284505762099468335994019567697804177911557589654003447582962760297311997434336937617531081107966521026405397922410037159954525600175762888180769392039140142158020584347220609343017212923073497514204851384938519685086272438118301761838705762243961472637615079823565410573627095076712251645854068109552582967284543196049553087763458100150447620423907901730281925669164858135632130252735652431643808581539479088956022031599365477064835925600088943994737409582542806392353239043234928233743822170181211729069479114592997285371664174138875940496589456354481991772183479335131560496463291439173797982803602788279568458749407842543468540771611188265868244142500628327658037172452363809481392150337628836094834563099502073624168447916063075522733012692348126450491735183552373340069675072489518658774385622319989453384419697796041180778894923856775568684749810930510169320329714071470033234812181356809850864381015313358831486142035748198102701777509464927165781070360568869867887145528254183461987472323530653347728647806391310148111940983816756513080658048912881091253290765806340740878155148777476829022182574607498887149133366357867961400022315243685740935882271548159430796575275897370820843006292804217918737233873015350320772571920884007174022003663702885136916965311270020004722511177687215727638766438842514371977574133523448251477794773015384466702746639639498436937442850229728494379895201540759001773666096349005299889948239519582978569829136873691323020944292773243063515230251131759194536144062342541179019487734161033137064381331888348044533639069823930338137522550748787226632459893121096136781069136443875972439909545903508939668424843420602113172162148058441156848506693552163020423695693878720392881053415394448464945807692495283417247708575376672236343987418074722574210887373721423084842477092143920278930859403775619238761409531328771778236081756474492044878587362447477240450533381996537781250456877447727372388335848122808835322153921759727913252062298156934187720590921044500585199821745464761921595420578342765652919089226997528223255458924762309786326059989303572652366897103021811929086112915160687511297877656112612634880030310691921519898440833703264950679667268653209744963607687270581399854073175505077686730385140748431133171097054683259562389897636160815916764117904273451436811013353038007075589621474405776845935947676823897725878476260184756260026287343453282124236201263257864484102853312120754562677525177918872235893117286662641301017474010052030077191913118567188785213820412658842792436750779866810963263156397554398933319136537161964300712048727916666261823800765797282368463316830672318301390612988787776512756682644050596106795035929036484564506339625499671674774356435944946858677265932724423308708392822347788774324957822999260587404010049926163292481548171027431325604851935789092373859898110032993809909181657591383617913782131199894330353501407039282713802758914881802105417376986138047695684852252140798002619464761648459711078419956491179773033241434534054677742386744286452362067091807372947118950818680725269976354252962698748694168738105218766605043137009117745135875975176553056846077820706952090545384157855760768487629931440544954544936477475777696035240105447747817761928232615937324119557130692936277836897544579075499782571889528216262988666207415675471189110466718113921645198468827596385702590818115987042949991541331252090254729926885008279317062176532686775523565355973795554724454676151887622535752981105574713892635534517096659087145998555703561322510357687189968484790983240126764484459669795850906900819741986434034137642639191077719566348930499873549906761516617766479799538616144939125902175640245142236823716463997454514724948353854645188332466410409055645863660713546213138500710185731846555186361314966752443024853052876105083238373728004446055723632109467150517387157420987066611754705583688572429767501967513684228102612914162973251415745799134327700488324213728701109772440495698599190930401874626611423871086230937901004668366968364231700052957224579227241178001308143646676982413741796800514481731488078834083903002280317812684884707682812526451920719250143311419810138892114442574732370051510545004164241644722762035361771754158758534642606850777243430519931535212717734023331912780210845248121107937895279214321341171050119905180601554469372279742492315381836713518534006448662327453527579583670399259825227452047562973028478617554945568438049105329083964891698870124842070430026394555138605707361393363435999126706568472984452511560354693355223967654621173099496330302313654369236150787637598737527828980489638586907095230684322818903752550303331396334655011551117960828456108573444243676886424429632895969114303400081532323233919624230397880439021319198146189907964083319056338714377780787361875639650490715229035961143974045412502110165463588314416091437628827232478597404776088273025224111443443392352260007248863083659131991439188690240255905268429232079737830187640592778184739042356188627493530428490102093045518013372761133636617910002409880817066410207528634277555973111210526339016654914922821859227694973863079463283040056146980375299328577498569660897969419491897590192661668904318495174661084922336113147316464544987198573807814735317985877234558190814899148485967870995815879617004835045458513366999997144231719506888505703648500979890077456122962447973773678817371089463196254259640706544773597632858971798400758639272968359664285986115393682585451330274487498319392069356571903602571810758571144975051105502715429216961489741173995385957612129443760303301718667513830415383782189460123989719305259478830504776279549596866455153419904722060402585173042269024721527349181623066892109475688229436004390764109525243855414390533079194189218277578123042067662167427971396459266897564221593813752857658263091163176206227013848296986032516158470272250947661844017064721194304605902787025513100424828977342952100854204205315963382334666716762327937721543390693110145276468707716241112341315180096297421771170265062838031912506737806407042618663960799472324743141855843540015207853854630734437829245016537113484070558473258854409693315208898775908661431108533303993123242231293185865939863478363878005565560167912282498068864176388517326188516616672907335925095775495907327714862789833032887748569102398972907020328446920314698575456919495152057264472748982082260780655102179313285680128434209739475912619010757602796397111690960101166723521462687766917762260327848580233721231541418590278441054658622822021063855567400666727593795652677326191240181936426934159599267948569903193218470017672198487997380960800658162442511324269269245786626905604072248343348285588160827954704294989074073252540556771668409246434777579918034527785904839552805153654560125585602737640375473743151211445866142861665884431549929602873338435559432295064163930784008819945272627601795983562486189189336104313536804473340142948519278554738141409106319062517861595373127487541389854609617407212575735806645914371675930534879742229708855240860984731195677544537186024511278792419995429412112405588148242508418949998169534197474657579772248436000604641878557184041485894511732967789183524083574563883865765845339091492793849019392452522785114260973918446384690744965923377577125615619725988989355437507372036783578983506752314167986335544895151001918498789294252174327118220429146982381069902901579255847557095391515060748445952825417541174240216716721748247404169954919990162496926820602941533767803173944303516943819412161613716093601171765854060715357921221500059196630182179928410028501622716145023171892583041945261901648997362796881156088557374908996435338454392212762124180065738661402694666534850160287982515551877211493585901648111046104474103215146561180380197233054633637128807863624665961234406598754393099339712524843486570209026290529854507986546829726162123569546609683052285023230637418073298882260258550353550944570143059312047264924587414172188096291614219153537421259541464734285641891384482463373577282154122394062683298308630620640897362738392983083627124360952878440728090554558062294066131294578995091600258338523028397740461843487699356997880982758671262062692597826453588039436184749277604779150131406508803529464716810321777252791850803430591567141469924568468075587526442387492798541265601041129731392600735401296190575966668192502601084429012501943601602514623109300869226783427438544351795776317453350881256861888436008299853588754153057289017284213669725849595475212534430755660943642282320017618994134574055045661390685105586266301197647379318243900411296667324193032450628953445229533579703621379235304114270421364529309476503175774848726191447684233987511701468993235418896541390321742932250937113445919081830481842427568098223083466089268111517980109416646182731668100321716565299592858619955951610144144270074920494486490528178799768831453807235793935240523180308647762906891099507850830678790625323212204290274390771464476452208139224000201023932084137898517098529072354531264131431476098760138832177731541364449682658661572370844151077487078402744841920233663483155743631524040127782224860182899614828671490111415990827766105991404565545141840530405418169756836315851563008149437962484832467934396766187239213814036721182752070025977870803231925087362560026217492137909408815808479908234521214150199737065965426901865814966225359177681321097483286930779314853289708795056649032211120601960203290070263905783022613412210234550939173348765995878981446459548433912576194612069972137417601359282162573065662332015798698038105664649942129639300515111437071804216107938465909631628206354516145903472461296052649033045655269601908405356761242002682901848366473995258026435926090467825113179731088879252800665684358005876339325237854028669060509155275302014693856446491588257405864115536481357893895017123037409439950814079340567301582723059033977935921796318671460882091899922908464647591151626459877108939367831929549992674275641881435729602395695350564699244055872036403680975458878032670699861191502229631950605793592968414908809854496680663321157599969284848965442850214746618649854277683557176035217895050206750967267455960393841234114650830237570845994577536320007532460138976344687526910735524444263139031952701064314895339852809649956164180778633559984774527445782154785336634745395301569880891917310476275468416307733797068611879392091645536319940778284964673655723403863624303642316435993668481869641250159873665232916441180710994114364872043778389165008864749492278601556161276086727053839230710345351048716364081767374413097533944405853688180748253529714010330382018598115807823397248873673156130402049358910732250317987421586293428435959155018460198902047113401834308880762714315026373069797710733007893653872715527289910484445251370281837879770740883425875990875858613312885353613441918276855162215001334112113837306829852195039653967712419121657989828907799673668107045456118663291724321133465968677778849390272518452026302374276005492979872196158804078568045383384160348848944479915948265301273299388316493531283491674384930732170997014033978901459901515950364414153129853010931286998680467349422297939645348487762037349599132314495585885987840504898168740995102905092257419181744948192752755016144067225406100049440844926377278189020980141753943915926946730125322078409452859800042794248686428705189153198098616349883634960199620489065626189637003222024554381714227876943421532697281529823059672335407124859754177069243304731687219310597479345338835965679421080165171925322072112890195034084491018911481373663834555532055802645730562681689485697490849703778159767852488641928026052901669070455642808230992305951106697955822670751008414981423201709461742795693937934516081870385521075064562791995673546375890533352173283321204762846822290584540664529594829264749176739951588287205024812665994380634245264432511848462048822306150524456967101088417155132144039720381980085942134757448219559279128522782179288011646416972189194828867293766735474883634811130155272304585224168838576952560416965045769277739002201022568165351236636202954841397224152084572480977689508816424623541410106554214019205778388796724522102544952757587330561093975698051399349184259665197781340651425574554456066024277301523821766066015779859855967201740187027659867485098444784632714866889093653806295512368924278365255716737916775100952382787941353650266048499760893024730017137860992141364148960266314177616090071022842284831881869300594223210990139028520477807038239603961563313504806406777910923132438510967245427864443764760485370550335344750682199593088464950108739628596264100089686181658981519357892490653538355523803949769331125667440903232839018726056677027163453221395107263947350140956000621833017592685209975773062975772607993903245100492476117349206421163424418071437206628787660380734092643424434190557945736398437806619878266959920062046518748266742370969391659465818074206758016954162906220156300686984763533646591673058652101740362898367027057779481110547705671760652044462241640498803213975820274478077641567712861831757552413169985092236758552907598647414298555455183004249518598866353856080028025029054508442262706605948214062179153049143670995849360237285923522522338413052657092617488197293702989843714370507749942243556065517720848651885775446817971398480890757735269639602634751455864716472927235143997329081785247915089186686069986031042154871875342382395509635429142658067428120222539258860376127560748810245635422401529454384263285449550248476715523821946722940726929963000989771663444312391653863486838189200675734201918944491665124628899981001779374423611401058009858247469175791324639256232649620398712101870509218576676094584850673856480271053954093207808771873911344888019562521363278528979781373034830785516065239393266243553428074121086392478577786095608215029127845968501289221121660484566483508479492767287720434255167357791982036697608471852282427316830241519626413897176976041520521637172625133624467452971000142247215319364188130252014697068824665505165746313653522085600961182340684630509594287043944839655310693482050068933537568938190157747951650582827369921273997159279870473139132185536223708928288057274410489052155321248069563625528554461562825440645814220799106520340246408067221690508455444376680032466191830875528455302194352246341736728736565446850253277593538574172206634460536066092461141755293393302879181944095518225013916909841495023838646861049848395991931310429042210584813486007753179841560136998588299733171486306741302747664773863453102967020789333827082626771080562644810786859401790113634602591803136546586553907870669646282150349679804648492267178812116603376091807353632655512982565574866134814027118716993474450885358387620526581621432685116514802407978326272723497386464930411772982985631779087050272075332937921293256105078267938295314802347136671904769701571955277109936358254558939835780408783354589699565956197170591901509173311195486867240289951435197800221444617009503603242304203424419178653964980984220624432419641966042003153384080591277120640284231242473475513297300902798423232600426855971592841832047692465285611612606391492653148037549077910968743395318985637836403781183736298810480643206894920271166686370891809101137074242355856957454548975858681844354126650787387436139113284132679031605850483408564046636502013253191390998460251770661465889634300022003339532346392602759908166459143782186535299895229450849276724959574108667366444396493646049713474782361948500436816346876041148981060216697454812067015609223560098803647907804509753371955354834880339269048051564581890526352177330065757785225770587345220777056929883965602026095164259824401627235522577390579272795491589592593920040587094431924296412728901635002136490964590399789411490778149928135977928751640058049601812713518777315550394487614848512852904843311708470533220651798379612769992887602340033716455317448875465224407691040835876885067112101345650391826020596445143747227714877364697347960211212805445321854939887638435886949796924707639976904935240694985378145153929729274870316825110854681076048644157466601467639220946720631332218632808957555476188982566489342166115129829780302004273483293871034567137458894661289785544385359720587244052839406555837879105612162599888586246802440317360613930062223793558566951448391240740985668147878287300084408104903501817466361119950438219805241122064612131617387799297950086797537749402129550736078657128960281137680240010459480532466652294016890519363229981168196865162842609031266808449256092284189391269307436870278115312479215123980334091651569609489280466928052452242179807901104615806094414543559919472367213293362744409320238160199676897240890562898700479447736820397112304517459960312624091799099716200983810544142885649739479236706802485359071204116644152549478474495727487122791256497172320205986012085716222031081145607337545258545582188672900362706641722731705991087787161005162588139732339376386238084826703898682933401074636970560484319424208963663870356961625101610309625738105483857753967670246672854722423242986742396953107152993822600982261483313386335799085592233270773065830250029448175919034525649103006085492914189493313446900532899912735915415274243805820427523300642730797517305226556517450503559854868673859257415632237933810458389822563644770906140364296203668446703062430554946604321911947002881194621805121857032988877852656003171194539231816050334952706726779093427883647633543808815273462810197213614753797396245004829388758680804712272056477232146609233211173784474266540924714268175333808099638514031890588661195349764291343503313423089035241805040193548707762536865452044749583788402034105260841197859208965491100879694692954502842182380797832072089360017657212563942652181990750465551067867483311758250350278899980537341235679812491651811897208390769343764220204410111913238648088877368178285410488723553869000574464827488294845694441025371312911611295584163741011718946193181331414724622409384397853833457396522160761821797295371855054629048860328254743149614210143672450619919528067577907166812753090058946944150019965809756900733375398781606197498084576418458297949003698068657903785825868134104954185993476998833442372286100357390140060390481735716224456324619885163431090360954009773275227869512939089661423290414811985359715689624976824965940641563339561796315808797362205121240593584664957264735730489531301857377663186120802507983968423977545740296186782253719789305297335008226560549626879779112758133637476458578428970057905288166215852942789327030338945429333361669269958894045163224450662103109792097184663791272557712918450285350758649816045945548336851387963596863594009571793895007718798507195885635346446260741463622979638211534563731496213010790441157889464363778710276833755129135422485464042102098448879601570923295923008709839711590562172746645163806082724600255525610966231372585279291410549141776397754857527817498623256738031460691835795602689497057943514261984960203183966088670605972194795612056205604584373706944150295038714429276054964136603616233840181745630716130996233860651382892369861804675254246342952831876254078597018679399113952405265905561457569948980165713671306165245346348823449046628996723105249836518150547902747355328481569309429371516347429926492187083094719133204201644652760696341247192151818849862749743854337695605167440855871284977280846290725256092628926703298365591769733748597166611120494412398370718045522487303497688522292851096497709863566786318991664807021360343947650068211974607921141798719249231677558064251363803407657034958841000242291991902690506105676082527358430662918361891613592231599824036433469849076870726202866616666481821526169083489605653030454343739561831743730625193129273479124243362776964121003903041626140369394085638397148943516384894792766580358826584680260900389221250624893437240806158470074555495503494026208429436708139781895531241253988357671077739499654532323030445833849284798930220122286719018235707206931247808389978726162056043975691957638378815328594322912471364072909038300128480334031365479974201734162747171421811309282770075838229874143065922752439939317336924338686568398650776863613240051146044330810380630868588015252311064333030606355071512797144800423948631330005421110867465081944252178616961361366065440832634904847145013740366214220859129332111253342719712886127187627674685419459488735693886918083277380934147833828344969072935177056765670236817607348544721310452636249233021107239238856964352393050665207992100866407961082302628209449985430600180331202708666807149372376399304308621495398907784376606998494900028734401805254592889398323861374778547154115469820075668689584959421732388132891048604914182519021570572003922664865731106536274319268843359829089792632858909971055677671077512427550127873732326478800856186626767678070922426239606541470678876639503039333739290465629407601704055595111864353798969874320263849830911266532362702730259453239559133025741819199735205920833106202549832350202216847082038865421062317281242929748630182262931962264786067563852163218139174276638380275134687030495199585188344705739428103629962928740545399248112162620506112299859431959439239438635825198357545667429955219188720095545598957836177011390594808118684214438154166392773299995266185797465208012876132020586797097032204580737155138252767648748840197717960632864886403042933551741764492620836089987900100560423402891866797534933516479145951847213038912235799757331534451601334403224553737730082003543701567884026922205264191093731169300437397353474180196252097320951739147837257535255687325534022179519593847434352726057060796853598338078206625351318440275818505477044865612493595156501258465527751673703834777505377540898909834086360824783989151192838143928263773259522229763821764805091650423454618368397812603099310503994964596492181664486637701321150306058004934434755947978186853584814392518276487674342088941102015869364800766706741702092201507032009143561616039510315415044320040593344699892103669865277374045342229428727885695413195748503273869924602010345947789013867928147964669143518843275301376142846575686614919851799040911016790027997064009881379854090496383476325343368354628038273073081574144852569220106496246880631927391783366106738028277650051390534296953541986154131870882775934815420806335965278295154670067739537219321067065207889808203410587129953086687930688205106490269051765089157961719833129253419519738387225521322261447690599255562428724796120038432807851155428142543235596326332594523225809843503135281832671724128061148193794153544897652803762185462566994141222534835787159311695424363485439932603602380479791234415975716295338914469225348006145109206680370471623907995409007742006296547872016787242370249283598639626946787380883535745827979961923232594205049152858079846796455552318224335565778564086138507592892846033225446264003783836661043540678140638671268664615989757733299267800712609206888561823577447824784443359272243129087980338572915913297648469429180291998868362734742849269455857644563096043054737013738095223421509043844472150429110706146691444196176943875225043394709600379639506155691708430163958511830359112804201610530408417584228994228961193736718319096077243236193729292524002261003032074177322535219266583113027742221695488842170952987875363094665010408425762572697605014238845665221072567075192447552958470953749131607781367241219069867407675340375784247176695760233882471822435317243231110418325961774518374433770653719735823909721081661624089807855854848629751501327886100351530213604780759747329235392820012384997085601711870371494395848143517464679767963570685151238311380820574000873514256336595915014832274104118242076740434013131602312326171239136306663624677264433885003764460203985249483372784892892092188413249998629284735120047772521639839181626565351178771957666740925109602827486596798566819789008463949712123175550064713724638481235070687398925249424706751848818230793477616675056201056258754303648535078309775352716000960682576739104422543666935253199101122513192950226314665586512748776958528956541815865796701327736789632789528151524693034927005022562723833471815000966828735171412814167590803773278431194937709101752443207331554969648812811701374588586759267036601971417044188683188986603393631909886175158166204648146512589841246039709736415950291605865811920581072328875419923316425399746479530331408955503949107194634588457811388033874301008186217480998876982355034554895105720546266130736217432531908384887988688430627122441092496644994367388327429413388925257834873164120195137668330295973618060488652465759199249360751473889396939131379891361585060518908976563969183099586106332735781443756595821390081494525961290381711829373711985261426689322452006506268959679699715759891215758416789708529982502276182204927798500619725087387859473926065227606862188533352300880033112572284247354062350621814674109567765430861363712047588957975137528608657249896796552699431051805769436009127830512391521720846589418417530913718959823797579448995325038963538771641301853540593493200936601309123545905771072042227740670895360838514429812633048581207899284705113052321803410796612831695918959843982564603648091159028765483345575174505981197181120242033492451385099588694751472306545882689942125172874322113334520796239484654355481689636106180800436845636409076724518313995154113973964521567556102733293101412462141535581608846568664790813621795685999028182522081941734412317921242771716642263834096875995548974795322643873177413826875716235626270312346253901831172823715556843701393418080177756881606892088006212493919694571503858984080120284097507297649848812300489134755339558583782077606513571647130372618980710190831593110195794269088912437692087013691064967427402201746906673523088391303412966310266100466127875150473185210440120426810616697222149480716266731052600490002123808700253029203317180481452969415541052614336652853907407537181943196183948010313246447292288808098989302166524184405533706375746910815444302306239782394975796263057266046140532210796254865432852681138310070145237273690171486575962675264227495746251274182740145955394803628975809891238196957551064374951748290150422934316198306104456059347636289204622663305571520362991599402509612358065152324081872857391312505198636698725870965157997386479667505409930175642146433345187324725960090857432204416159315071712081933056206298942619676543171626692812625379407820439466230600902403397815450761602495068312462890177940979595308217753308562771060215927939586036925432560800080847940130553487053938329707218795731488810359983281989971056611853433037293591323609681853385670884881626807940957883931983697275833000896774533571371777455446700163877293343741981581514511920802537770597261925834667310191766978243348993275716253752747157613406430346987358057542953527664064574035711851486713722621990241070666516997558475667538007087323096222285254550856282907433747514633297182238727661113499668099049876188879824766074270495842708888439842625448825867970127430974785333937864940246401145910482715977776467557261599708160826166154778735150377603570729533973545299302905436682033909626955022043476959409631612996831590207435849034883999726640383141377597003511362155978519987224276704828609542304879297887533946918706000978477552730659998674543363526844101831357584086703774796819071868337092522527634074652025667263847396421580745315903013637416272428162693118320255106964206217828422465594128130509642364391436765912481692746619939472309715356355783678247088771645212735848397120912351268624341777241451172524038151243589157475885631069779867013767174675269492898121611714732546001124539509213670410786165593613863547363318652431519666439266050833272284261832307132892236670416753514644668946287011808499473318096107047240914606851005921119777674988326898710365313623405450370896932453797593006669610927863903971422002800101607796791836879943771253732792100669185998312766016727515511826361989760746522322223496873941743418557983223732875608225217659208698660730593978202212687398148207299133796310281416876846664088418932331004940098118838596577974407417593181577435852385912029386444769760184967104043919958965714125990501896704353204894373090681199103398098180908192491821130231218109162092232612780229089951535054253119589838684783121351555342788651709228319441149664302398696576908275128032021770978829915185388934456825597606292232662586217232565345211576327843151259753362631458450732143160275588974463353814371259137793168179994908081193098514588340423469757510952167292615359765743999711839522318537772789916928504948814181713747849775003939373192408154024266626959390413369247652672114516115134491909327785460765376851399471719068324314189393812789784230240779795210728566347825542260310578271676079824783795386846105971439899896093894707340469799967224678908389263492451119150916788127695287856905232088681463977814315455952694126116364850494065559535790233699678188940793902678295617802918033664172945837423930826576168060261500553233175466008647745416108856630168727133428017318003630063620466552758510739201204544142321735401794611806368549533566076440051452445120863842471870284214006426169032839298824067314069429083363796081943569423092022675950281294865760156924125100464581711446091435415530428251832420527555888863678142593484948078613949599893654708139485424615411331061511632081279334056521392419447650289896693285725601288920264482678875743007177134198199276119237654109220899499834322041215468467151150639104740922948537410906859814801256184371619491891582126243963767872473758416336787813863577411208162030498263692051446894637183872951128675879937632049853508205430428902071441706281873320116283112717192052561326990662974181480374103787073023078709263452638606836701018950802832981591730034853933563164012078282225586323193410965945118126786656641841019089818033817158252597204559538779610980691740783195482324748104117501802884339850868966336360766925877135018696401601433304589581863061906254610650746911578325737961593108528471153413478325245814087482337757879410759332858459285561208462436736406420554066637887150235643341307091180731825211045354567750787446533531912008130467770031109879117292551083957718567244753393443125848140413747249982336592488389754136160868653542729045536847208921847335050144334473908019708242924646733615307970397253231408417191253966818280202933468128227072686132191122656794342190017702752121733734599863642697009278456373570313666435637778923873374593245840136464875699143523556533811476283038447600374203327376912049541616410504819952519817741364076181025110266426044932703744491357072135852192529697368368636231852138503157948618720728345531421888718875916673325061263333884527126995557968807363110305189510268067427638199888868133402648639969229367330371965552988594664351461469022845604072897635577863445845337696259586364745699463097469421488048493364977556347100923568022798738017361102898929464231618127301747592594853721661116816572091255822032320280886097860799024359022472530954743041434857493789577417232022883101003374291533748821127444695436585038714847137810465471410853062765002862616975857065841709082150183942456783259186014194312965064116621443469175262778800916102035119494187072698828478246800867735284120401144749565713697609734063405799907574640132225138501919246966221516495350246121552382751132930709604301046877558071593638984351001308121584331686585112270914227616400379859499293449543771773760428775886503109741863788042747193477381222858419189359142402238533060469228878648187160182238032429657966292845225365679260916142862401083585651949690814782055305717021131895641543319260684319327992335128565327386197091751597362661212572683081220115173454475056167703295130233268465613156318722855991787506268267954185920783316936858426467389384844285931567457219775298107420904295073029135623735479314133831025031949888223323547643172211052659816143132734811196009944983876333005940770212313946267708012453863639111990890644676075293283014974462539718285937262515097305671096169389786146353425510329589256362086930548939920588545126388272467451803870084770611422795408662902102890987735654910749704699773980467047052312930418766864288897388533224921727734213020598457643928014034955407416439341412057363557113646667319022261587789825755063471874990045957466625177331253413438198502246550227703510799792060266698238947331003467629587676786598453624567117906095032144515995091712188039312381013488791277681531638194529047185647537665647131572878160737902440087974488190755309514752232461798766261152764801523275036302044622182405387064679522035017497817559452338775562924224776480705675241201344994066276609493753507182965928640454261891689795617208308347304780594910550459964044564913262356101973403160950277588808373780875943111166092673681149383297326604080528921990877934879894929285109037939748273969686585707945435305081923742315580408798204696048431901947290091271884223185853806036296976247168057092536663356953393020872379881991430972600140692033795147791256185845464377524413543371494575552113384703607062931262896048958989457275305108237293592838868547495739893961542429334504715295897780907056764057097820838947650946381686542270830200826565519410097922782809219505819629980605305261456439255341517578326108941070215684081505944358227287970800208693026318610036648150138791760045246246682339812320183524193949886706223585940312661828978202001176155999951658108079523486528293957922617348414926077659103017361528779480030413497017106531914163829001929898112003344955859841152439852306371673150428708720651628829044050855402071099529685437005128013115829601991889409052392715867206875461000349664088012897462361017071791721200948183212891454561306184858058997326030633249171279514397868035404832194795185692989381179373248421518387673494622513330551160021270236986263269174452903010289890332899534893246464202740989698291400457986602461993628281032076259221689589873172523132761773760651800846759545471121650530019507871971945562478804837772966365762582858466591752867783514309965471705257279747108487059400138117388084037750187416205413111630924029171740745783339357220795697144727475107539718294633860121884864089226442244905848333827988323846009099377434052270238125181299662653801627473876426483414554870792068510093969498656950954694739196322862385626598498630926614611907937828993325526595133353918915731377161302453521006940378837503347915829694057276261267487879687840986397361475883019907165034587931057457093872528927224326398980062107006346459638321575449110976351291748700456937215010176471823899698791955768198991300764020025790384630785782850694996908828586757704868917968220762381477592198171811084483223383276170147529843130467504110208700569112408855444656261832248301330443644848468801829397057367168057361023030112744795835165793039968310556767363404519529965582164696567544246859853069466783923819733864829835625948503766830559514970376335879029585011242343394077158707256089796009624462869786196898944419190775292740444429166072434326325730212965433576376057702063568164453599163665230433609533184619384709118378080345173547646183710404506346069792579924796363054024861035916702358398645741112495831680855803056323006941662561901979453046841117891240421653090546001561879369731455972803151180840873027109917829678451082843307313438181079175183651157881499382791642008505929231961964983885186033760211063732844716761498536202177568255582994030960853930182308527839119669858929739703463494713869461736599981677482596614303740549145570197716580351923807752088173396298435416950765576840165439886476798168700958127307835123592912578244312527967141838928034688396698580147605950275056259155790589424421622135802966854889428733315308510464546166728274544440135024074793551404560353697035032215808338552758849075594644529697296210239640605263166522326658455206383898118660134795702663317320636366143566395522523734151199899142137261373999243792368133314083987354707481026046369660608120898434964632885747077628506358385416009502404708365800863989142494844242292910808302497688653553715162160663646972733933195258487336839031933694334599826919948586505055579574206732312170303343053981940970388278329521360688018232750052876390219187778857398986888650893805456184892427943672846628406234279514358260460150800884355300240947433305931976781658307167101222286650148540468716945478135748950727451605105556372491648174486576226452219465689805624552218195990077036979773616417423565137556712341045059704228852020652410836905110723638773449046423107890787776042737840556672215440572534977499487180107782711958110597428271257585089388100604262738449924655705489195181360367965118557068676200583768887528705177584608664453011037065726421867157983043211566205247081139174161140398939019632562209686707195594724569421305911211516656595611390589919747076174904575481569180814681584139527674749000411021518293154010280673679258127576132915403859925189905823114615487515071283560660883426243864507329416888922152825134199020890744853782122554747128421746362337835059670707539010537334259644713037355094440999896238043133267933949650699110133961218147007483866829987750070634937829471193398659295508622910208972885660398906116381988785638171368445732146077043682660434690218021400405535182876041641321082800500226094065645489852867123345764867987854862403702589394077330620399221492492922227190302288944833614589878135299732729652448766211905168704847321289096015560831222108122021563769037480379335915863208257558426530144507547516277819206346848891511024073699243516755434718472085763514655796471801727311956574009079893876942707597069405327507746219896044105966524681856049739512850144626134009393078481695394862120755036484685782059933656783621417417589408363260192465003387161815196700030542016235200067729269487426237293765557039975735795809565885165171482093594386866919919296456514212782609816361611793655337653571676394059607218902172301200452696655794150318047991185616897019301684026703341860306326308840964933593353914648209472677275147956325666604399351202394018343595394487015363051137780618678095499935029140512327664260109973225683791219813573104602747298598660816543117096851785656828711962192420445267430205650321330170331185130083493233800898758761867747263173854193365586022131403252976386225546762309936589075653345573340061785431348366551469636347120356989452122666760444261669364921539280759685990782507313661794376070271274967299987306654513297232316747065260790809277853152224710589977249125890846845631460846270041006021301968770892464394522593374582892673439038101677590674205282675254071302419295631523248450854574869314635710630390923420230091543091904800813885312158333428871397534081287533444477808984789652960184394671949709341040998906715463636904948577183807545602218480605300532216989321397180581145971704186486299249909488864635963125275595122310350101848960568117687972664105578314923385094656770913273282391182548409130212155821670395665034720425245015384418167535831402088536155117385425084360805147378329469142117124622322698234940733956796370499535581047556027209087251082226697460031648153528496668540876899967260773766890954954275822552032334170819419597980895335786266651090371291161070728496528323289719411613650018313479748784533119544642049719266641674406308984333820407729009273057828807881272282219875628768205563560744486933213717671094146167519925526736921129943048008006198168586326892244173244061271082209141695707399872518080836139765758269415060743921668105256218402865403613721359187039209502266407430229564825723787180488926887967888351151205575949325876354938823406961665312459358820662485826943026580010887236219718225962857409175651279333746251178380469843468638986902914251888188961197118576493717712604129133490898889854213837029235746592416268790524238908951859921091042668480991681691689313359956318485038747097636755031437886855344748687240268906674347439708211457429229004694096212892741811484226222395505571931121888661856676574317902695016748416480208171409025800515218776950096620665219469384481306934744243361222385077336973285419700523649137551628244444840648849752420793721740213574808402833040566410960109753760188578923930255440455142843550692912548813988597117948885889715892360130733531013805082201392691104502735010859728862235882150939774405395436105987807121005460204773569494104911531105415009410112056417033830753356634290657630074725033643133960339651771816284319472087498780376482717485364234109618344813781997389798458312376816990351756828622126093177908653616505354481173796683607735823980329591514386499898667934130549389254568733187045629347886745784705504558523069052745777842779607782305545072207395812100114444396387973482953684486206765325939767288210256980194248324477072095051144341600966254032972259257436512746477435077089071068975258966944946238149860113245561182368860566197966016714741564540096580811984273681614646404657610861751308126692979590991057511709469106967407321127617621694141433171971556619632638487874686245678303560135200546831075198928611489452764017290423510922758956432728568367866237022637373485859715210685005139741995681336493186037959701712441754138500721278679824422665833156343214698000205250316580420783899806122818006170469524866635194725494338818858938770828510091528433272367048187632328536407892154795677288421383002516269591441045150765882631703787942225466181154301514316559901635794753183749434429442040787864048255863354544911935164020683332984762976847300905903024456003666763603110872038039274051755966287015674099594402912473966083745923458587610371272545573192481009254793170724541984574254170884921294479054538885539441409879525729111097115631878399709608420687178642413666172825026763122395268491935933996264359632170049855107118908237993867769631290894910605945572993814020792128468069296151337491189526939663415653517839322641705694738135543133663412855572637068420294259724408858404898613709735952105615394625343600360584284490868727887933871175412466190311404974452581742692396327163889400795904659754617656932064619553616586702652175287774708841172839027649551581645291712845850593541751849452146520628488174723531769253774043354236309924665755747025846418775301918443144669161063324619034265774876900480485619388569603170023883152998271454434994138371497005970193124757774977220165554404132752101244311182132841980764251559832324809544206140431938478215429429405777714988698019299577662734332050407109561987810075200297955182257075437394624413345856696719538421427743556417786453385193476088125033371617226114854797865093028199450246715662182868333259790752848397789958213942501265156799561802304451584724103235350360005518433315551296933166946725003723267529197102546278698144864363354947235352755545130459819828866124956239888446891885587540335660322326302821838093940384163600888024648298648305174492685338301148840031253383285155666233413052047465406881712836983826999123923105697085035884805260232125173895593902928003378265696673340426151358163706194535329998727275816406082427519964294104556173019363318716912827239325443511949834700726136575569543369412383056043784154369502221574939866473055206672915632784565260556824967246026338955377889868864426778322601218779670230093126568252203354822356324006764353547219256663175656937012647547144270132839683858674569872834904968207555068844010333763762568556723465649551568357736164852170043220819743257862029213876940325604521272000760914368989444543269808804040222652197369319174320538548495938416703861973957257366494774110135528697359670458006308382819739797677806650685487150809872875854105983682546624753982608281738692733351842027978607610395881998032939128336931334510462159142729712585199917427739873657985609627690746626457157326891757859115832901504597784286955469919484320508902470764284707306226806737787341506066535709098540064928032137893570089152661747341369478987534939932712017508928077783047739630231844066704618172781864691000224998094232992482320047201846268241998477818236392055665251986688708127477736884643390712666153220430370907505546669535073371064533831961341631232519677199753020107895334433335284994735971187319172404511567557598160182406689709070783494466718812181103118824661087951621954002510248430947206758218778784880509194679575391927865534502985168188200452935805247086709086513287800175354477814100847836251378131586392205951029204836893608457824514228253677613915646579877455496720599201117095954328891800520160013387551662558810678618324923081288519923805503342453655537911167245464587609563698082425127479210982271751317286192522463347302214595033477317964549865712037913847895538025711101914366732577245753431951837872764340287880732799360816626752475259859966256413020054101216208541287087714229073681877751029843832978693802150088316703862949612847807331440494826929534196239244009331716837400028006165593676512218487725586211649467121660655245639152999255629600652069390334698063539418648639760884419886316849772681834340224391565337293380413350662433031373428771926898485658593127601064637574757973267576491649961323444810520591328190088240761132038447292950476929561801093656015559329418328544072665223867607153033347969109502134133993926253472634520866582879021945762081178944330633985715850010101046588414748548066501501599271195906394728780400566335318429744622295590137204859393824750681659156884592894599367073058372010221718602064515890157967637105022729033776573692436198426887043028769241745863878539752858459436139194401809304729110346685999320279284419253481353142994837414687011576392540653932288123361089616956219059186535162519410651010444120146370405477485275706036130472803190222551382994269094798509756723470855468398742785096757870199734657936226248910160635695860398839112590944594396514230092282940337499821416626145170352105532203777459410441174084229023944939004519596594300542732247194656372557408591532451527477277160118418415353087865054331930654948163533685991414285026199732324054524156916288943860178913022944646767142364077697208652593536566813953849608548744316492776518904185027345840402922376438168205961256221247501594416581155049855261950038743106282995264453067477839596934651745653756115752926884644938370146962200222368618307570468913151993401506998437381543303573846712186556192936429825915197225478336962912744913348243782929885342867500258211541336410916556451961852667122077887360803868914969000204085121139380325629708535919204253482003042034473209915121397728094995099738472843626233487306987992863737408598272942506183411282679935417261674265147540862045412495461027970971472732345484024449884387860325079522089482760841716052310004531668690705661268170388949136032434449819019479433930745141688691441680714432306104853311138828554922490431059901824614414662082003330114847477431736695698288804740300089536182686021424570360066299255201496229124498012379036324802514600251908853825821608800474373000664116330365296538550722895189613978010559706815802887313855206730291243311275576258564995255472380793244776802818678430380614468160336678962951251098851340961273711558325976802873042622652388456782330319067951275213939059194210624607731843743966057185530714797495309862228393920759766846558823713727610900827379451194035052127393821160460425846847924478670439942744206132503093519381680129903046655915881961221082125461565730093573949344322650434306851346491612392250214431540241387766691943284502168362947121454637949171416145437367245715161451280865290369317774425664525041836027798810651296885346192146916830925403983333701767267110385269535365544524564494336978574444992099721296644776154629239656148361246668583013972444941988321142763708015285275978394665341194743343124110302395031677234773739653843926249812448210451349125381993039909961868420940352997907914479033313416854979719314787523498062945761086304015602396192308051412846984621199957530734276667888532020128667280862814084206140925211917347663225740071074786095873770868487086465136791483306648405113970372495318411972729636022635931950395224223433734488271442786643401250548628014227615594798171416521960079813701293086979213938013110215165893341902040406051485367206098336422530167711342974871371937426820307347268553558277971480096215053914356512090738581062690274174482166150158032293129114718812815530800948724320696260784541364649979576033085055496460318345077462390150158309896715889208298286017951271228139859987866877938259643298953817455666216999656377570080256570448107824164060781525340520201684437562176473284933885932972192223865461014907293535300190562324388415715827078861842801449532900598661449318827643303178799187899410641127165705181377565997826649557154029759839582946140599089823097425025170414561167789015007178525039566363506286308883742128315854935223481001539550529668810712165894822494704231841017636826411345728026746155904424714050823529935514181861233466540213818695186594791424830743977879386964772864258866933661030813491251055179219510911022605938135143936553642442085244051890790831159184522829764645297067529646194139383699334692507082294499187308879359378384328290134942638671512296426386167818951372444720450937474547087975088818643506249603210469239648916708528593382372470357198726949031907624248126384820229364544988483858850315605553719523183326551317497985259434361169504173391603918476108888121246041326942108618295105339201268113458331785645032453269681882008608783376689909580868654834175403402469524572878369237006456300905246828720918198126463854894973976053045912054427319056203601330520567709074739516734215627172788239060106561614000312378854512111326863451440760496807990181693968281525206915053873690941131637252189621459485843493475131570701609311471636949324015105373132726711569757942354039201572794134714813021481100570895334385107552585610133476935716974469043438764998369109666196733840432706984852466004046853593939269596995681258077297834154241341956756499005262315755510293039164201966525715776117210749805695426240818531881399219784993250635415183117439427766218165888014553771484887612193665499812238111920624497579723169140276382723526987193337836298451256077708195406432103680960567006212817298244587017723810733807557030888391454938033427556630501885057446530269629198678356955323843279009115562305174401706430352041632926678424059986054022602393156724241995027317629906544198604349975257470512363627730624932039953451384296446137949487200053171877430799057733147132748913228519322207813618250722738501839439439267782089714127396433987792252178802263642957417472861051478307162089434082098416770145574606402651916679213970958633408325339032954603926859437774300523361266153989510476645073164375458817477805204351739663444100401685025140815906294074484882363941887752636596525526436308643220956566665685417741882357264673746155840648679881891015814205829090118356563550071735367177386753599875906503627424044034894905569125796732112313212833095546006149426175021084652367439070642818752831215758106224251215289581115452234735420614409433770268729613525436985170513323509166372805632919616319310408188710299293125245207241683929221999217640334667144998542336148248981092968213425481672074010966237812381919239308145220598324407670546502134924323803157353943634146282873329133318153244775008240672192139203222300211695360236443531086503525328288322871374732750838810567086012548842046537951506945924540203736916941844169979751692364257100962610228618639634602194559939090545218877649948729800130529006565931331849637545214086323352771889379839738868445710074962740546535683471557809137149003284428191756305310710156775395488882697682980131046478179740662767362724280519620020196995176946481481307882050971587264906166379923633101933739861903779252789565453886380291759113834174180076546742991421406281356792361236251489875508776555027978728193381101120135559559516758281844158342492216171821543547671085916043244253002538648330886937974164438005382496664783282057534359207643411866706158488841643637081759759629225551650623710037160396096143308206257589361618820288200560423522125618482085729365204620847131221576685958998684495235956979459746467949387512479877721087793653136851728931690525459467334820933278869009943092773108209265394744262392041024038796277795386897759294843025856996886983952882532994035021442175760076457315848528338111318751913188885494150126844469899952334656364421241152389791189789753003633901879976577400487126242392129868573133102177639214123086808805512006352131681189681190739522391671438538927911906524841032416119513117353405198423176688700000438273561988745354968538078332570011615236600578470596124698074764496114240948718439367566929786916643955875005756507601213930781403829499996509668249814832960781336804864197919283065236380871622898357153633510313906475642387469686758427171577034340522076501986908789422487559284371992646817877140981011198080211030439396410062050256167595985494515894905177605923877623269561122361773653182645154627245117916877158543186475638747415207288654188056793097420720670126338680579033017886698841906851148770330889843689454023180322404258735813322755983921034785144064626727258625857224386368383764447830299267700199986005988682101538805817609439834420390754861737545529722709297425935467643645499117255455580778194376802474655835923386516434480476138516163825461164060419492843052838581271558125059705947354663516974892648460800535021446293344746891744407059455113633963454657511804086570858629540300548678515404904771769022673143287665198743295144846687314408807779240359820337724656192735488366042821288480278647126082279387038075638839885051421903913560648199930986400728173302697313635318119843250270359029517531673221340209766461519268096152808731858717399666977227765520033320885794073553155062875722943265831747071914578998887881444338705087786480614537470879131449885902916397569018400279496223750374403530161444142305907084344640042478679954564366248860537134998186609263871718038868442772325196229583142622004611693143487928533450647295817345414538221227770142422418667694272277111633150482605338401268606056025394069029375081411845335824748032329797366927328098284093163444527508531888068222466496448308764345025535837959203286962914075101492630487172168699912849350423012886432109037688647063219684866089865135388170651979121148258752433328134918186369602798314854433723663879416560210225339922077436108248225266960232700067202005899659254711358687382235053391548910153563721273981116986850263903579500936041605967267580692509189905375065527564994786809386220487870298262107413101012952105627218048197107468204659728308221860815690824836762645029836020297350617920356625705897728826726156152394773898661273207824647208865553979679484931902806995467872352937107687521220751421872503961501303872727119621842326308759979147382065436720923768162871662150016142353230178495415799672005647004780694883678822375489435748951853015793252089012443735182631591382001689929152926981500800725194796459457869856556721501394926073371251045596019917190867187373789600542917061225963964731225105346984412970889930216021781611541968834731592061330799258424150688733285271112418574385851272633359032293491057006464734254610377661920948677236508835558351749417027988981973940486929159476016701425390091365190121744716141736319293164104524987727698001762857055662044731038023504350592293545931391228327708600330846568639275523770890932233201411618499093595610944341243888654698957694030870177073504958765834605690590117683699333206543820879012241444108257440893267242698641392754096176404913777288687377717752120641066518086648060704558205038803908640974965854376911853821231296093986988555392763417177255201138553237276145540940986106940786647911645382833635688134091301614304272185999855091448695465089365107442031656109620752371490458007275934815947007658150734540432207772967261092541984911096929233830476544713294703990621547177308962026515960732359097769079777376994252672685953498005872715000199244731263460781868291735166895384669326103265889873520497778728200263195028625918219714677648123179494117967163424960684751100189019945031258924837782361195383565722603402977141308582820075772370458204478068030048202863932413495351750543571113115611254543878010970658577659120211079236126565486911302089728506634879310936473496607409662426401518392762145891919895846398252534543226860317469861195090583068935615020169244076914022885883031447442194856330904898346096423682184003959978965724490610745405388681214114781047519617576576102397828797514366531919611385525296013987311698914260446714408822360880605318640064770425493780492007241109751811413301169192651399648407267896080884405290591349544886998215526641640572662817953579072424620513138069665565000246531398443877527313286306631447250494059567612055999220993166329449227532053519606049350745543625828226680584850627610623589310023211775265307765965980970129104463966464123515038080396990124931311594292202398158944763727533964160148177964999027017785085066332117555050584498339751389989815059697291682822014123587202089416797349977844368087905992391541097766127123639266412851215393566801419693238909985276799894386012616125707986363169200549065736916393127201754286765724191106804822130949288001938580911932188507400252677769100242912123865925034117527140276911568001173170430828966733421031248580495893395118479545085377041328378677801607116299840412726140126100875058422645216006898354828838766160755822283783081399184508614676267964704324988124007257964702191468240613747259868005152082123067265990157174316635454919701649333107676838403161768415894278591351923518747331906856021495851166420903952172113879853620103864399799838892165611170093484302495689426120682616885829997833188220898874470905201463800559286272983708648958544650156073767204733033170177366233998205491751811482172492456597393492027843850699710670804401979415117470050977432812266935861347005908138259652235082701371076169323109278202944797507163949740933394351732975257830535048793361150100617243682765661905094335434929345130641205367940178692314888811539757905762354927000750139240850590396128480483992061855586222585814764238769589324463523761942083726445069057492039775008409634509098538675256677725147222283591392244810399009311850059103261524639347028628279275805428070224897694358341885353987176127234601858875043217147314325094515885319884207939470880370370624824099942060538246637901972702535065065763168495412957346089682476070310175610019534693637029933439747423594809580390801405093413382666467411910804930401588639707014789824869017620501764783293472312509452525890284954914159827489952727751579617787490090308767393213670350781713091173333635560168571872555696737308093017869897920949188239228276997351613471071343263862319162599562888656484376733680402639750328670032954124929726646756171976542855296778544367426079554923388359943010317579903325962676634089576885910834418862327090602567166437709979731337184750569196726141375070482416094860329760950785169812201190226984841126566568173565167707294550902022922913567719053130179038161163449976637453817097812398409139792910052570996408486237740785630033262587006684733801689098928445389508579231158765214569569269498116424623129905564692704313994563705733364559323433170417300469582822786305499589644210083315614498969806810294432218090889491752248340348316105414569610814344969896895620279322510852684339387768739706308789803156176846252866011539850268981426947338560325363950962148305357764752104765615724631597792580810962627062580245690114068765418439312506506818833481139326915020847488370867487153476040941063234000816903139531216945216829700295822342585683983900487972084882014464545338508122671150292713565416081394143583074188480259334457440558152379269895753997272170475549268989028711745633281173054887671446705748186149073596901480928461720909798006052908918735388691719584780724821975657989643728878320616864364222079266397082640971675646576473813706247648475987553569186007610883244414739924960341853765487814228719991355282245611933672587655028768409587762463724218357525904318045456067346468332531256671204098682438668852804154270337702270102833035711797672267316382361281051628941856961570942433455248720481011734091263168368723094309709965790322763786555277109908804523729028655116104227544966143382186303413555125539821383895221358751946761023083568489890352260292667694182622760515694977376541318653114061708128372935420212974138791059569095643728895611506698653310427030332437186282997920761875338323218405901172398383282152252206585038030472675859358273717234084424569998815628599589530058690351951748152639300195104652401916598779192495655715189138538252584112995447476478180028265193556396681868255856148913176213856447185409215818746140408428384599245377998730999182192662434404639693673766353786623172219041861623368387750565457596595218157610019436918892229082606304715452282135448504194102247763905486850251974443372858935968899585957015407131473937854443458483147994060366823094856416270774413817182073371710608977486409909138807296197962793514060506444092175621504067746857695946477361256530965104150352852342047125792648869672057671146700884172376487417488933198636572512393080382931851572110497602367817572208554893919517163982670461333741929243786894870755968014072229865867755932967109975260804490513418761410205625942235568813180225513260151754652153807982213456600819620954918385785788430867645958705464441844870801048169051344680902976716131384092420707369396087212203691528763210895057498081163098111809137154314569086379163240455365219858111172900397036500374351850583635074876167653019780877343418199044322455754343007720024876614683737185388267712335905905711716827797698163593659507962439866076482258361545299931734612418397543298851614516227427100638726884620807541924609685918331885333110783932073961894074558628808348195561768827307625372465912926862182151915582997015359937777342691913055432023157287818141066034980565604244159069283987868422544592681826460829959413674872171114692565477981588233378036683773557940048225802391637446856227315701030604862271400588102819324159152578213695180237984733224199090320341211209912189178371065020768393961859971531327317704158935399422202198345176467664782945127151679788067861117361384711949802081060480590355367515116130809194040452713848180232780379387466942366351146561082905489401305191305537160755246918750325587359279042642482141996959116650629823476960999111919198328891046325655929726996596134335176036502918446387778874440285832495596218754223048180972669446816541942407469702336757212603649414201833014525427615123456771649175732923542961822964745258229101764908786482540883983769933418421340731339986839532558840162405385228815442794033033854787452453604408113450017032995071903392865734363978064869075332890250113080837653470215575136860030774941237711321343760464891733418713561409080739262239558508528457712210055101580197707705892357528855298256961459123525926787193976634031945089461009772066959613845276949582327121953078171801470195601237737584788459419144074986126668989002518201224660872181665582999220483862690694583172795075162490550665985765296665171969976185984304344630393159779100739911063732331249419674739212615818451207773336965088568155689880274845154691637347411411223116863789391442872830560527566963277833698024780314379064855452577367262571601372308199035215445954699531971355641626452328568542566421289400876218600404475496725817892647950496320333188437211567323966655328196392574008512084102533777988450752532220561856492231714237392388699474951576184189320502560092796189521669564409954730416397522045160307347059370769927661317885493452471675685332540638979987751575387248317636807382922181644077854892692957868904160061317988525840635077693348860128051046781495055925466405958457069408950314826425116467797422026489819476025140638706395472466937756310607001909467042810624563201269973091247986400148642968980340852695614894201657183909354346365860035522805856969543510294646786947526883744544068128049162914491527563592166730558925833191956289717266823662141013082718446115446041615308020717564232571074252657698247051240077099836290027493376873427477023506762771632507241029637802727551655239681436202351828392055076716442729319143482623860321867870952739185849745218793635437108458538297057905674290305354196040812406091890043583545796276151748531226529167504327750065460773251509089467546774102215007102061940679888057909100135027401569913143441500647597123375193791830499804385476109817489257497759022286195334809301743375378993827522227442629467199293419818447464318414158940527705448678939510411988270963227723100988096595715489709702278594655013062645107002197961714294629802103856102257822788655149881276621081506172970439683911524008182726838268001440125834306675569744491100256772674634946530254229377756249674416095511310351667303112877731207335969152887012225045977989188817872152649243829619372551444328820230703941881608564135135359682726518913439106840418916773328732620836427178105612954818633277260502322118089727244224426457954526593956691322124133744006612694258645546607464649209419802295911328938592470205077965084691509455776484896468231067824616287154590253405408397088817075109696749094018887756423158699832411631098896075783419649878894394761195510544968553021922176651034867703977014420026292084014764063052704798820442329023330542418749691279494587751691493257886131852168574608390616723813527898534291011233577228611333562553115241771888722252168658510565867368852054719820519081668570658301240208472432526404463602374489605862827975755159768666427479567138430198153190791571220697043692623070142897549703041421214189002929925285227707390752131163685251491081934413054562875689178801842200006769045975129108427285466519921552739438618293213783648798120448772858346511349467421163180207353692899462088803302022031521080777320437934044347863012355087439999497006169776676263014594035909105911041408668702803774963245254970832095041908619116381579316896486084240606116620134561432906765169447632670196878216570369681900853016131088079731473686442477498344878835257135159021874006368877492757998138766083795877502345638085188597357002309665633369992319959980511838776302452543736958405821883338758074885632085106957466960196373681517510591540520968265473811275049841429729871930500454478868183701124691192027511443622766378429516476102442792746725075789123526797125093415379942560685285397234534076257824655456145249225501367455699990231104934972172377863972255213025715145641375756730687596554305297834443176060590071019476410226370637081215627559857056222403762674953411711405431965284167818077289832241672268061513676789668455797367307728101761398467597643733328986214113184440943239733098617600170992067938276238023120313180252521427117395933722406203820199841191013810088325703637431323824996955070716356996856774510251854605843511541362201753692684467234535713174692855592102729636805631267930707508272953682054294485299633719892239787410080381251191443915179582398738625423874173564236647566127521405698941986736465134812550619610097976648478198298555593888288321409236856597904497769187083182689400844558275187148263595898721441502558568506363680016819711749188460623788171631197209510160698623923025326179229750083342659922318647727713772777245258263396075912592548072495417834180031119910608342962071204752716057957226800760844152157319529360860501765412729839791644663660019720865476107229331716808437987437433577283489280983389951899341099303074587807539184925310144437411834645688747220299957246750252500710813778163475739982606007329142212532518081915578259895898789712027648162949095874526538770990360442255960238348754294246055364901079126673531248503190639737866168244762666574860719458589753460694024588129277419693888797467735951261791170821003399271805054088942056974351317220060739716702239361059279279333717423889861315242117818130987678625475582189449269639257029074297878043584557708878092172560832166847466200145149488012482481787628400749271039452821807388522307171924978031404014602659400309622349407074124008515401548934304174630506420027746578637923965899014843099359756137577291016399427362494023356747336397164707784649883263724890959179796725457167409490820865411518937293735730679336835474397275357924483210917666854950736782214706048783648149959227965632596198146168378634216151239120982392773583154395149667335261666737330608689860698695015344407084919845584097991022722472004335676520199769159910241275614598464954174507357676462232543913303994714149557195941583830779378647389074149328318252957535705056749925724313191393915520330957724597856145402952280731356177508999905965642043532811889569631016450292006145348583100449368370123013369059414888128068405417467321826888552672102865678409374098325808785462694463964464471301828341767097347321370924687087561874050824455695827969498034119853865016210430268697089184680057299298155055497884234146920834471737194760467463542585670609441851261680260183802635782444140452009315942972123479653905655359747121906578878500307665602489176430790405871886482409761266793875814648235234914015844612588039140998596197346405123110442702114933985590792348230481511208888606187135087685574573603124913251452818512230194914453244132956025233095371297873509463873494487277607167298786338971128529421294610673830140330829757846442129626146164626249919382128842924833897399620050825151520295336968289886745875474538647856681651192310906671090426277064995278647620626579497321848282156535879364806558578047769925518494276455519137036542798769341979838881776024198367989506871797506488321399495899814456843874898584863040384567480286994547430766700587442522045378311160203008389205632790144654042792541595031042216238390815332914674134235170934764766264879947943348682083017032130184630013478584836080115726616092137609285080355461772573072753984469448422670671510280335456143876056200928578307196262821462114901025339721451015329530211418047816856449941088904202940501933255505104569539422677363214402327568115172254433747793902206190845402380463242138776912924503574036231081550678759398587688585113384766379247845819526758761467182942002418735830887160322319500146513195752728536219095623543745335160840611953305520632871452498842984548943865409656138566803690541675082037222972562922113905598630179064100954577177137354207505132225118989198536282344140756612067020216012248235202929442880533656673501639283227842630298238368902329673200292854388031516836630704933524819796210012411821289980903342344370912575371996641742966509491607808693456732237490927703298155886113171386285068048498508423627566978731154552757239174018847973236900206312255649091765015153443168799120659925595953446493532267221626600007565387385570930751147256790203545541447966243404245314052127083909965944195737795766033811578630053930856657069106482005100136206930312428887855613059231578189732730266612292541993731749767670126568793052325837793866660395824520082322123403087506825207555491492227901812217381403270053395243058750637308885594182504535007176562730627023245647338790010132343144645837839481116923890280401645969943554824959607363712204470288929325886532608542318879500751170624310667569812523794816378233707980571710126339194959232897721523026483355089356884221035499430923700069625714846880872068010620928890382636845314155598674248198803222609752924334039213577475105638781764175630614201665696146497378077685806880117815008856966856621730980433296637790462476550655573101627492495428897884387324294108392263961037826106609432490205424776553586872616484526416177990753542501648685604055255604779202319869688334033037881685818622905360242472641341680259384381789186516850700098866276170182258044225957700599846479417845432961747045377207702613315273084327336023962922681798073780656828895347705543103409115447612179674173188978076794615422842168357838936473233988313004511304868154896491001074315416137815616116496003772459729979858192336326883361573423716928388431567781369026320354637843223791590101430060198954256491888842874324324883371328511989550651172469291082899252368729950443540711440546748371966481625165782746428678543316762251337815605253391467734321593787670945085115815276153157552591620613879922615799384840837556759239579210542248460649703418934486967239559972179847174657102115840396549818205182591304422945163750573214714422063343568435932673464903571262760049511620988300507989913030338375339924648763855982835845809525026803256969052431920784835058185272997591201796713367989836834171838164883669675880758029205439139293975697022882107889098801749599090515606252513018650448041258700409969955236835937402257850436302721576457004213641688430968331933047836707581490882840201912445816283960340756470557044966762488090801928136327129698662376588371399544613594845289644340793212286837400413058545363753181258525503391958295449732975809532417984737267088462592459901666519274375999703427451960457449766359253554500846227720475558439378390353297100754055712249582415467180855933139353861948941855042108993664960103375248502385088872959256038216934769709125993248515452133159378733388385052365987095528441503674279019234162042308920089308011671093050541849289886572767673653211314073157156337095426060077800864511136796648909001805857626463082441552490683323709470090576270775444070804978979566126432685193608925426348968176322094015889245937108501268620653463848730204275930966045532761370997524358483415502010756922860556677986793835072406755681012530601527541546363679718068715664677928874691504374498479114021620731656059315283926082268192633162995605645218714800162225841879805470237282076482918173982076546972554282767909783922087437326976833241245834457021002944976173977130593485034831772295837964381086866871624518266243930679921983965587507190473651436001585032172658943075510808575568580810170624233692457519383774993127162559732562260504510150374349375387814336059739667928599327800981132012176505350660630761059683766475026889499308376508323985274347183157341888798235583461848036609609375285541719499378602601272363351611876291394350956642058155786835161780885371472871662711530164822093288179609756700892493766870226473337796142108504565944984634039193089270507118474926111886853757564849393518214482624747561632397022494820956841000571709799756624419523464569193452808106890907925454026608491326140423634833938591891109046060889075266861968062054766738783306024226289023665575515867221065698397677525390536838526152067272832670431786901108809701887848881192740548305554432448387154957596276311096014644950232297382526198417252402126548328025862534882497368193817140388092593624389486054236585991887657988256119910444911288455610992379557460635298384851232725249648618515435786063885447205991756469721396990457729654357548006714159403900947387737107821408546439079887549041381994118536631377186280810248396434962757378584357313175865834143141153079949503285421485008818168841467476618956423395653281210022934951155354277399092452175591208691776712625539093569900035955450198800072463541404361495071071540270560513431308169753821790836194013588016099029677938049540963929017088884078778440969088575883355537034808396557249618571598852794930665327238088133850054698101037366695986251154155996042668624089930586052251236981796819185598484309957402432002758037607235647573072839923469333768179350355015645712201397966136206316861589476016323014882006926107175400055057180695652592238119472980511959862673690906672045776214662941045138402808940748457316084789696219645647420962364512965534667649885533181354902033100240126243990244811245248557753880431682941209165826681184508352673787511832264293676039717267839909732201387239948312514219382963963655869373961190832394133547982815659360525563581055104195486790784717822322249620281370873889697091868240876542123699351759478673984575039765402555126763907507622146601367678261241155075237880296706256723604086806354460286890837306095964013639627600314895186300497254153343950375411459062278838961869276458328823569222746887423693275054566160730466467609648729013742143868600569440786201096721692437913500320278668028041679845273615698486087257096667335532047736971258698646326613825241829696475828039467030812070972301381251011019244360299970444510034621189423650473221080500701740490596879407943027699280349319606682138202085258214089510940921689064041015725578402398043791194738447106541183042589058228901443454669989749445646628081853835169296482460243995258124278656841238527628283638988698699689703134519778473322534322678744409816053466298625881499863491218325132415344551597401924207697661012749890461670733957973654350199350915758665480867325499003959906872839936810982320242021565184791514267669774701257588142227006345560793121424481001092019982486036395973850830098282710687044043972437125234206301742448364428215837555770329621265577409817739871507591213146694095247319830391768281200453563135262278823172408230920692126257721828652130428212263917835730210188096192618665132898459604865705384458522813427895017602271849474157337577302309395366279522220035098160391291945827368021893407201960630966702773605758192333104989644774442252125125171945876584889709881167458132343595846384492944550821607186181524298864725816486058225253627997935250927149170094683286040170207592731242787511997584179761669052145199249584965605868155716036801658627271712001926931494462691107926033244923151229099351485516008213588048836534893209127371788726812671935218043866773440039280847711320349187582057315471081533474774197219871796997616792102967508204732520744326310100980557697352247735320943869764625705956232962852169866815872853259974206667311919187363481644887222126512818242513394801128242432706446350169915582664165686436506035657923270043748587391861245902462950013036377829804692894379484056664639224744339620102310500972517641822443815946065732427956969315767818858210681683165450528763105069385255721516662374059281519281445039143781320468641726048335272407521685532586687897980502188983248892225077741725135606911037271044419241809310157891896426240529912912748273973220459828690900022581220960574653943274322586384241275683415751470905884004658587205323307613117295879473384930156798992138610829143250900420366624130022864275084498143609443104667200328906646882319805764456228438557168089878014933928126495294089638246981064001576890496520360445053489549626665045910828619859371482763391020775462548929520210632092240159999319324646195817806961972514252006357985326971560000604858510708282883146731415659698506384729888276387420698176051440635764373899944509092557477508613823325820762762365829911964078615637909264903458730599787287460273870951665528915491316874754764358207450088748302365083624866600710962070706947401061275651276063694758745220991970099255860968354870965355942543703938775202503182586653443531000787884057082769527715877634986988747349332291667897443889641361905314179837664439242582817198569574916040628703572050694738874871351700040838724289969458571300246897393314743806152520530345981536375471325972376126460200111891824152483890321701503847446402187921345527167871842289188242929825517350757245195500857947601918722372537749603265276756109803129320245162100653044385211325679441509223997082766392395195280823527797431536575616688512556577054019500623105565290984120550148226624465328967001608003546848375532350282105237544803104894049856376266712201553064015041749587781013077733615584025179179882398234601676167850218460749453081703740256842598646282548217270678249823700145146758551354727859914031873404870922332576857210108156277466109236975980738688405332720231575060647820090429470807640349151288770454092346556710211943850731512857173990382855527363397749267303574944219038069547879733331055844867136129665985915569541722126605919880109879464514322787737818814438590181246647068022877026793575969967797706361465876673748739887176312577382888095178040330033702403153532287095370846078858958672062260506593584124864524042106133365781956021308875637323749124967526750789132961598812495860786272811139304937690908978019221051886038761042115667257538130202814435116142623377053500591553131407573886121616581843897062436272250282073383071457256299781504089780570508016862684882850499516928180870565206701502218376514888489641760606865492582046196171108087261413148671856295601589897100747197400823611829256846547050238970437007773921039272053069898912044656747038844543483792430939834391296574688512129689531739077157198589374689792328026896362466976507023800431759724966746650474250664642195753768221098882476024671463889471376714977509444355257852426927434054611333521743901051410594771127147388811642658689046267120304158525843518626792108608817970434991241445444309638373327536975136952434049016606724321871439468362410211927565961253702516201485673659754551379807949518312308792056977928404493457230420936296310597190550064279197119681073423559839738313114991903287421371632777231654678385661822474781188653782081931765979574490224068507187160378452066357296215147530124101107349027730310633550241476370849905038338044044072781973343552823923199853234070331860416180438991446971253143460188562958361390354037135234923557287842870073390590091313792042295915782668177158005737521835854763448377755870908600468897843684391899449433236108633116211932767726209353244398549358636726025706774293652503927704004291858034722901230324057896138463002904497221955333631527639896299681183931395672241264617820055516271741351188704533229178734643338040139686677597899915606907163680518770396818291854200438686668310924118620985668670023744388667609654344955069489522151947805557657084197914460418889443856024707999202680871588577969040027976870948420057228521803687114854085170614981331874757285660928320056341325357736444342176892590480208080777486097076278205020211009888872006349387126304861398495833686392736438645588711802238832312666638986648476646561040265342188217064105596343318482240357468448227496332140308217317260463898309682213550908128861756380833720188609646819775359320036161254365211025993146570097114322955407509801350316860039292977482152130515805885909642244753958285583217889803601599372258755148692033362654119138919416265683568418315492763544637221519257649717511147132036778492447036022664597868598226699251093272363175121497007868467231571779567150682938683567873356980123825351058757118990133280060553583515941988309364936140769457290920673949925693304279063229913768725276919443317518438482130908502650589016897503067218414172032401163736338372914581106589188875578554145279251977947533574093166556839995003382607480693979545186420126523929471779538771126631595211279158637519189767750197119656961315642677880931524785730046021661683771395848941448460277433142423544427806046505893401223728824754002779231071489872641433887832307213090511331644569113392936423947880440448484363600472049914946408601407608617618328024172617455112527641241559456906268554009212302479693247561633652826050403460647827355058926614398355959790083964769961876442154739324242273408971900410957839862905436646837739823295018162759207269543125941913444094314545046201615578045356577742894281961345902561084307307208545969776834235940062738971207834072852218343736776240231163700099340600533186420241298482946595382293309661349742017633669169475282877512437650115326605845762906040349687575402050537677262714673196722776881885092359597083066259825217796632310154836211598448279018207786120634374238264945826219180220125813488555716310927408357532041483276305630563369480737050383244012708644663503127945860936761062490307331011579560602342977908120151030229186151709965155836439579407743417287415183509659786065304580991632355189088043273356696157181375590486984686325453483881651083184773727950964501092071033140980758827948658072044985766532262728892295649072177512760384729268165162131587817366575643314841979027075737794919360916588761466042687804736909660724435278502145182928308114448658841394069205331224995560400501171058895366158871631394013069426442933802641386600899602047432378584613146354175108997045158532974051513197430377860232002820394165274567870443017459194381597475415598852490367990825279732760049685428780173297191817960381405571796676870434808612954638523736763791125811621828100102294999701370437435089140004001593251519136639862991294209675995812830487514612926184804118133894265197371896384148246840850370379459524221788496399825870567259022723904660906058755207449204624347285139109829852792962511976850487201297280913710686758261057886764401360719852696971214466976854484954758517645122457111684673290280681330556263845985819308914745416578601703362173160341936159075250475908130590439597082539244378222764819599197938256566841139272518529047587029039615400996025270936625681574893554895127252273812396222399948008547125917907195807857125552831668782491293606207063049931679671736451902825435925519872163900753882588534209393633449579342239941253769900910199047243667172023503580965686125759269720886133975194724477403837450570840378961760563697994274985341811457949772355661199395053559060798761004282266268515741171587929822586092359383789455269999410467260374724414854637653168032658739893753622289622356270276960726028283785349777636111315688086801158840799962100183181270718322552419631896395963309960904073755886171003878724959647186961679833150154066785205429687791298937060898693027869037463678152572692246250620905787020954878140545777182294459880519726899391451509648619191002748992579039737287492825063390170303913589248180283915125888998831677794124998358800693482625136320797144792255805403708171295125769368188102944387282516991786243011952798536516769264297282881687526495123194697731283955317614816691301780899612258368156508538597842628404077681139106738596777717203905665026995201368911383773111885043733116918673139404802492844685836414671611282047430993724763331189215460335810243209177074708589796512427869648748494752131314666238429277903123109298031731096411369128798462840968182442528436364001990863330520068109126532702623027711932843739162063998158925969876467177291349677710474596705849936978181327413115629141347219265166311140795078166351620936884796887516293093144405892934027419377800172194382713013324105331724418860611007421745007792344252315390646383592248326177912226217248606386174737922164038086448354779863965486503230380041471840683866437767987123866953465629321828433563880017412941201756724419243853247116175952189492528959662167300706171194897444077625118598334934434552870904532632088497349465263022060423780928808417779581603745254858314330473706381881524414230510835494676586451470230876437678759120153718524211941158542393400863445244752290955581203883730293421166226988747835924177534951994712767658243200317697574082678511626659256536690995054306561704512107888154590434018843152661217126932716804704284404026608722724073584138146663706461985678375389385785974560758343672015148350738047420214993348292097734763760663021864245277296867353101571828429968638155259685047902750153882492178525593372952514688926498891070281217189802843964454837330684543645826174772987178769663352558200685107885143699095694172302602115083417880101535441357402438700709405986275364844291996771438804121143249494550043281744393442921236387831516277087270571342171874575799073237168872056217119033223910196450748052517768902276875551320428207596290401807796423968818331746640576454063622324590694923689305312724749170995136479533960451449532419121417903736391547309308445965466080530737668183895880146673085226439493076263969797693707442201954543958603221512466910380831919191344928189583398346896588667776350286120893799335005136762208234912304145624228850199164970263187517621240451879986027403617807582551359102987996607701936610806486678621504094278670760882881867742676243620930580736726276475540443671509853471931905743510164108454435783593578844169143446406975331209675031286308616400989508190890586390843497720405744664744230154711692902953817421580115588638670429734425692452418517694515988535342214304488278025951798303067670764584718990781908612500034179733028670905271928051492573346723545795654760920191105732415314762902908778609877618313312999043969771533141335889654887266516963559989488918549277519946030397581834769115752889872335919656971602953280782929853486997365182363156446581851647987081253218676242299543485792919177495945687840014249107803336887808701917596309996001688432425645915065811563912086025634043228506566616261814171843539657882586635695483177620929133051973157698532426916667190262295278777624483300271348478805883969065449264319369033297160193090270009685524969742355881904589103408323329425384686718074566001774582242686570265464166536499532766946438410531028873697604628688192191950681942494089009668868041651890875892943724913241409559127131271099512968007549549421004297259548068268309922067544182677559214030383234373432343131799304951441355679647269581417532303217249850485000726107506104125627855232633796674798185778837471255553833910744522578731302202843859825226439398962929230858013140208939266117737210931374298072041339030312906401205138735088901244800190966283052618320138719992628720823995413068212396061497624946842306194310491169211042352109629326301346690639677288094964100409485278382816723762676629045021692831537804233454319490128126372852898517185952373541106339416555614788130763280007207663854840163850235945258121798122859833530604018137202914939605626613535172871007217547005964478995424255275313710753520592322460486032431024944194627018535265193938821499336006260109302628614541324022060258300320183107357784184693022639156036380693641628426356435503078837540267520462844624650642206732813648957749534319623249304463470478478354732713682185363583962152034703446346518387311302604111260254421824192374656589290101637284760098296853214593828830385988910530469683901139919864639710048857688495659786700944979213768922313372695385534595213327971396143693173069519249830946267917550668463058453481561293464115774441312839864779998518650236052971668445984727699536378961596070483563562771173576748777778068364096351818605414186975352166974731054128884300176319235880613331580870826652960043586157867280438472550278059219807432821116506392317846496925627239482262568102663704507261603288135692646700852286695036556764352815599106363446986889919111821213366018428147566765612758584908468266618246837247508440847182444973891772793168460130042932702596003437021184113444095772333063174103982035619844885585141771763235959884828800090310253907354329734359435014425239241279067634043142931728414702567956487151230923568979637825761675161653512975890921333881934634770765195878038683069230458537552016013593824862551412106393983023246250347339888374842046385666371893414787354263764076829377187095626562447289096178700156077702105752125657282612883679100503318047275697160479001899826148664735144529934856170515995860432824863180273906252536884560299925008304765906839936621812602067366222009740838081855070990768917996789917798952131434761870228884620718504590333760750767218878314675786848585127786272014104163332875321667263006119948375173573242294169356366628214653012772926909618627263465593264146690508997622038068630426854468055329268305460768733997069335048368899428534338245212496365502704907820565872295945358236577404270224578536801774996400436351402508293803339450263719398603981118886636275936028433711282328248093479551163403146618304192068701408812542375193189720050865360930837083242592215528343908236496240717328685902747093342264035393438091047218159128878120986284813941369816489608744856980415407510328305831998634852490694611688201502791816001517729392463525079167128996072417812071205325190164570020573123654520330397087833481195179846183601367308905201089476221735321785484613179413750556727586752851727208140597568713046482379308962102736580482933963043301378967189719624217556460509546981744173360534367791176064521994284713793951960175882653256442605568396147786723471895504577365769764630719060227310365237145325166984364104233153789160323622955182278947843673885446035266986774942611476578461766400449515103693356070160748257247136842657689160769325216388718591500317759671329212324077457627392423225381216104427452567685288190129569138223738152384541232760524244751896262338817572526748189169732153308829695903600783822335724919393471753298350229164664677109887196556084577213452155827362927618652973513317572130200269784176354634187422699304472337549013377989881815486337763710106244422411863555136256335287289004008882075020150484271527387152652061239825827170240921050516227067804823774656054883951452551239743882322279443663963520002900443015156322045998846477676744019172253553752032675689618365285012800962827879206462611092124528894816777265484297015207245642823126837681417373460928396928518231783806423853177199426068316771968094559984939913090299347942771431527039200233415445060348169836013830287733744585461569909515670418218965914925878025185569691075104165847532651449334425257960843183619857482940231298077231758253964852362979479914486295425968265361736487646050158943492703108997059891103817758380280161816714941647419949312028139668612058666139504527250880600515948407199156024957916385752706729819933850058535565932449985401462136996973936840667408790770169708151026491697928124424129948484450096003626609468650326271204085483301016485421315905021756120944261834237762285492499822125963024474479499725804990306693629856332319790863675945630750256455683334953111297634911385057315650368157363340013147812842929522236004046041204950825452460140176980553710582450312866740782318373640291097531103289606612087713406520224253258122653324187995343655623201597159577363317276101852968117181696944710019391283070409270877241045828113280191862574876633518435558583508643199307844376486241790311588227188690773507925112620876266882253790048637607078072164431426556339448158085929529764654424700566808741587897337147163593048671231928091821070594602151773811969809651556775137620367105813693931919666724162232804221775454072281039767917266216978418739547447132730231149852271166863188063255082292769403639504233347063169943365479936857898561321229668146272786975457537342874535824047041025977832773822425086576749193070001285407106607037737809919572759098875314562510457132771717048550485012776777279756934710291718159739333346160677655236440498344254606863355005032498329130566144842250477827367708664965317622036693113116978803289800118907393323065422574442423852238320666138027965455480208207672824526118060371782830110210069930713882108454449984426404914804770322425055753780836812156541062119273523090920420398724172543432565679213707287163484242493719670124717599747221657151068150728821442860929758578736242840037037022756698681008420043644292209708347371540864925853633329999611967133161820455348995442081878474365280120241429004443959080066680168262921919063661118157790382094405530667246125849200519146491312894697998558837896640109891473537297454525556346852979884447326018597222179554907393199468524948684544213747848637853149325979789662444886464170349250134331947091301649786332733446291015913208011994746579128769870853493308054345849807511535181741075840639528210301578337879889728124447385081752467488464944734188545046551450948549243751024231226694506744986473448555689832864367596959178662683735023907232152949623108443888075120542926891441478983518357936280008979930783013193357515110647247213894301577821101418204777548596308852283342603707373097583870992574949759476601333482031618234698115928297475502553819270414561678275341169176424797803138504217358772159381440587122892747387009897447503444038018723157416091472957982845689480687587762014660883649036020173241571908693349596647385868870494357559651275338922166615795718513035315202974495584315489974691503728411095852152101167018831671588565968334507878417188014908895131971273208280060015232798885824802762160500858187057420777355413502417167261161272429373979935441732521694117657489266461053544787647422614563424336103753316638386407904357791906983661638267967960488090931178745828068179165680443027294993559253927484696380128553945900938575870949666528644665383916882234766351670081314631123025462424234877121212807824674992911927519857747703593727766608967451976329722682216446192947393937728360910131261893293999053367267151894738867313716312500980517460614406504763042629751819122195117183560350404717171661284315253258913636333582336625976919192643556343663553282350510415331353364720429737733443873445811209323830958987595661807807868859435945663945388294689564611126444970058071930330372778323890233261075436512145439236154487438646531633823101100804877018952963610343329303552592525033848474971311181226383789855779075119108445818366417307613976063111194798661897854805499846154980202320639597799205046127985614275948748592270713202765816905768373474082449514092135224054639574765868080139160747695105617181147242010491891606963652407252044385619765742116503968690705249760960424073743542158299694000746387771169321816734132002620214350330209311056635891030146333298990676402215916740397190057898666926575428702961278249674500592586616106572099727007712132418477945677779586186762900724656442256552507216969107568922341877332394454826945575703606776046478084920548731160453950649099761757391976063488916730350004232242051636376286761949529304331856966981889376821174885604847328501575447869488440151074217987036075825679999032189032393855098964962570946352296548769968561543158202412197812015258947866247526777378847897965762061389588083131725159430015804248539728067122908813995589724729559927294558721158084270500068503537101230597910325919942166384972720381823424530213454395708137372695611375750103673903186346090466291379434085103333421539934108458738820873933909455648549545363528539187254083011202830739726221868009785805421263931225259765176922891036680588448345774607617163020704586083575294914909743678475823303647694687402388542261003631252981951381286369525214548584347736143017130984348265912407391366996790546615539724604472648212664886217975770032635517570357823277269424245245084240565224750073506638253531214599414691905660408257699821261128223643767531136730631514895395778198285879872349986993886951350860149285850388029404770881798738376755067671155472369467759105505685400723358777461952325118451354822041376146725146595358061306732872094882331433137205790273430111096633470251637192816268477600039844580731008261072389598302608208950845762901297530896192971368720298142751520714604338793822503496827347521697949464342718049824944757592454521988182122349064465822291916734266120717048516229521352621829270896913516185496650571444384354885915630171970825728730654539891836859187923985423173462164901768970199708697773655331905205918862652357530772231090364759310580057779767399567403603746519762528761808389847556644814153462836617134881416922774704018343656869807819628164012324862997211900527632640827935119931655030623348454216183857215029510304020681715055171968837298836242544760105209597106738580861275112183295401676031080328372025121399340983409784781796736467537582274078225772400151726349308741060228713973874117630295681510386322170824366868102324668493774429504019217360249401084927493149493042294135407179443260281086645589486968342781950021157325613387896495863853607174866674416250890273790463773847738819183706661604957884393548002968014256097362889720736189288800068011813534879781786408635861882220498280009554882728625544356562659001835392611992372327617832837489315080013113937461230335797487996924379465096328095987196628697668610302738481321103062103788154203910389650661795462363131995186292546984723448669898551921011586026604393781299155988553221276458738118684603414966144033303342974918093541705283061892588632730165107069281155307606596695886854535302951231605982872409136847966382869955579433979804361661937841010716472253570772228219982653346635151438173508278635702956793661228930926140321295736362891697026299939906464413216410114288129195812006837521244140583256150552946952478072537346365209525348664415365584323358975765479244185462180766409505811368072933229645194607357746440861901908486168419446500587997330868868402039647872359065555557155856758194725836095531243237740743773992503224384468038792527640980825338286639446922720743077462198503621654721484511604285397654637683771959105690455923025277908823151606395101044749329316156242409255032052425444453352352066164150258587927915194276186535776167587901313253922837696805341291606441400885429723701536274167590282488417927307236780607302701061708870642757287968153770612716133314005806942515915177406399517443789831378043147672536821924664230284794185085240428836892447879056196247691041925390866378121324255020873273508640163655238874944543151406247869410885522345691376155350760385377702017059338417052542341055627906728600162426326002564571615649475395111725667087128603116495387159820319818778626828574433389157951299147277190971132658959358861533118748870221280421367859114873798123671013586441859582777559230861442208689389208919444963281723680421118647450771368691244467373627616825809799999196171335149488494728833872221660987533107636523737792726074770036645619606602577772127380399240311234818344995701486921980008731793276127881789460499137050015437555000064260320820815536932050253318110474379687260674148904383745971168497542901231011514634593733883223569189944355116185771806629282146761755568051272943671944817159724148932333466315463466112106362524510017358368391364187045497044988672842917191951893178571232629634589395895391069521351976307853504486450497302219062334250890451285054952113509881749004116253714291365003977189615462411206120853125390042510392136338647410924749816320085270363128179317329176304749756156881610765546240439573176924348920696071188199804663051929158123847447427143591654016573182779077582637289753526933345403625122515673794983667048517096594352503475572443542023168452433499362505381807167361697292444806486755263562859656873865526512087476158037462871745164104960152668399730722001064053843126816886994663006020428211863844527968063912800329474878360503528968457037260482559059306856566181448571407140491835848006382232156522578351754379275316732722400497179206910048704491311751289126649649725952129704622605989382020769055777255645984665531243106583455422635937053227906513987674829301529958708595779475038408589385301983659018803560475600030862302558355073228053047533231235515721699570324024400210301409449343279845095729979396237022853724354608570914818247364042447687924444125126386779437268727848020669864737119528957463258027671175116415816313698774797692867304055115538703183377727094163738401742821831192051174465719425154372260404136943717905110977481263807440926535256848257741797539432459562289081630615417042819246878585977216818617375599061564598721211310870637265774584009679221906524132182384454853956399986470059734730972072965924399134263492457743753408550947830124833466443994658765614820126825995411491186351845330155827088594964057515414218020787652351750264379007429781937210012396518368350336744418935819608182546899404009012331611713792141720013431932402468280534935518284912178132542416603441721124714354427352496913351424814994709214111062281425463289681020144728769175015759109795224889353580144601451735179950572840770522781694670789874226484957377158239547372372792209839891754103693580139924867612392117261624084900262786572992760250825494580233050617593022724712456463483902945397025608221273380316111447365307860528807236147451078789836101286824665509873141053518095455341882057422215226490381816744476232807735926220567469408453499017373140142343432607056042688045053148706313742661095431796120417566182829401718066255990004495296303281542900650347127544085409252554923679995906714907298977002750251181335433287731128215450438442530583636791461259565367837167796812261115819180090653950994013852711412987832827971415600039518767004208105663025830101154107371860057170308810829292113958573199496712467463326160623229763323929756677360113769611455839554157918459823302858756889172119922830733122278116045715523613359334458889045385651069311187039009710530256503646011064361671278963698980937693041489132771038569631101755171656766171746171695593307975011569771652420291789477857481070795938480381893200017356405244958493314823559137246953494650055024008410848872605512790331980779558014423502948046961331446100356535608866625173929813943890733548456458117568608556757078330060124423342779052709199950139721386674580234746633323761336901739551934554399075320078820056546017978787098841939173878501707500342282972953529308307874213393784846762232927149691490855449375119248198466229862675334389592613110774500648871715765203085378066771069154607469970904996610814780212654218593980586255041697483700775217363876062853045523006903921773295879695259187999055744171661691657954616029315506901066960027386749351384386931612791650269126458754974437739636541954186857694025615455322930248904104131307944990616649402884620461280646827688205227739757603784742578808501865472182534349905143825462736903183028279666127171509752787323369020073329740276159924579556255574434733262467808697586297281826624166048734472634403854345278264862201632585810636184004671750577927158074827655962669914787384083263836033927648492737155824341313444380244101959880618980304343019076235378107572975734359567557631177364944332882973978283423636096783067389272425194214303150646053299472739607663158968368016080488915102946815870370638773195562405270965184548846398042466276236295333663151322459001676348205695256064624958961994587503303070494391118928718179300006619298870534468084177222690763122834269350847938558638495159247909251513389416778081170940118554413271831188003534329414727501340182135389319469661422575034464324888818007288132283863836396994604171496659447635118755429850654140973189680902078500764058023237342789947369533849261922602252784323063213360153703431786364029475279369338397777228168482105767631005729243146545097616154053540742780059136776049087456989555000000396039424678615948632257081602010302296230094805547094099119860384829826100893790493211302838269591040847095350822722260718376073178224393714133606591433576580111062182163587982963630897927225000751601021612404497663659894472896981144992470554539597415423153215317565966549286097156400649834576489310580460115948142627696496689595839815503098959497210375835094857727268711463715522290093696087886169009583453035657140917330826637826347092891947870367746258449465942792029198330676083026286045110680538127931189611433463379370041353043912883840130743015850261048126217292344712444580681761340432325485106794002231732377678554547797523216714541246477051730612236101261723409100699269434659839365326086159846575874479781718519168394727880841965643872373963843974014627568163379751022684522232789123323185113165198158834802619316540281752320241132394124298526407058285396123857004208303749354932144704255618044563945889382906025971225343046270747358172833339507110368135172584088448123870326761513684714441937433358054472978248600467764311112890390585548624070525700887831225545099112128615959320139573160012641514354089462689631901888636445007027389176091876826011718472190910375909959368585962243369477145812862210749323537335140633941827725762522812817274340395544280699232241539352085327218881487064067025395237693881209180923843975534714712504193680464813252143014818761785747880677612686602240691969986939937775582801098426357403894817833508819345191647281060624302867592453311730041581050339909758940579843765899197015983920593588481248985313555000323970444306900364720803917843113824747196739386376767536564105811357242817893124833633891310192748287498571642813925803845175065679996662829100150186233761846736716200960668724135952790723588510675166002805365120061965364590712145387351083680574753579758725755054914020166661148483850480697582722410044873870901552650351629665066215847093463151439777462369600566334482318632889402555387753508777978480715214640664277596734554392920472089850992746671419866806769428215922473365558496209925513065437710068529734567770729235451037049591450759216865778083418714627945033025231178849479874641291068828897228870703063226928383015110236501775368829507540768087610416849805195499301302708328498049732042754285983622706624312215947278447189095036684149723748106348861174778724426712116453761864227140422832652615327948179202237259198259618927594128278889227158554708947070367593952849195711946063435025234319300932403295817267661183421706259389186405572931630446228041258760813732348846938366783232207691344646618813775734464199929799399543614550004137330696747640058738935100371061318939753692933680998058422459967540450184495354320568234312456590759790599689241545367406046421243690399509383253720126161899774141964509558910457271337390527122669417070106121469097598106054856537232651192293693720565986531911753130890994035255501646577501225257231054329823379547317660897626746349486506923196659925319124925516385261672342034410260825326513403934448984096067251681791163737342008885893805643588339520478834504568680197304471444670425179226810909317688679153045040571713044652188626460999998625948676929135674983534115665006779047366672744709945399113933073349538843196864482517058897928589266688907988363090116933567062224174478239241475326094163258968363932409290835997701878100264824474546385643316052139318929128554987508139547676168879291690647468465500616408467942192492651330153907635005494090132414466966850981223709482872962344230376954836795277205140242679809595588127244425553139947873159869359970595359615811484458011187467473248036962197250084074126373318098002841659231527304616653135727959380596670098405035669102383023702595598135293985463694562970165819108745455340651207420321376207801689920973893840951606783653634592761299283063273272048217625318455870635682967124992935738709773033279677686336853324480207976068117598961027371503917321013182081230162475231926640421933819568535814060662975029139449981909105675435829692584277103342226561433977590252673445996527408060508389428605415332986320440155876459615792155279347114349786809027481255495856797679115318774859568553124180315536532951740912212078416907909350121151137515925089440058974904831104214111657651131435981422890588519700948964375059020608649328417542740989045589705557418766835125961173241235184067766821862368943806234192139951667202712687566401370165601409266592934652171934274687944702038936689813010144791782868220963660019602513502921069424574570103757968496532032251278012477741684321649656985186403289726110666567140051452035243473311098163079317036526719785873699773850376946668965863558959109001032188033924230426577133650545204457573634163285436579726620771238991928296619753005041776962936699290485639243034559614894146228811865436732628019358642993362731367759801503774486498624035529830983837939120657597665029413547110464780080349239547393099336205578480570720692297913537378579230658110476334896825730008322596819817931017839601396900084505983819913107463641510245986707808936540733519145771937759353726702120362333112549637973270918030951127837885148559978932223099575939927548398513876114716862847173024590958185526477380281374330399855958106106912611135539591163331822211675906924405502861503724414944209617135748707545893155255118598500589472193330507287817695516091820929296018130211094009836171441307622450932894902854857172028129011446539136690224151942682190205437927679955767719416349254090476242113683940577123180522979233094125318863405558229048972431637573031279597030243529129693285426039280420288028745266743407180834908334054848210410760630551238915039764093536084973109820231679871203796991728340480138936606445485986128484754895452775676339177046085116071981077783130407353382097629391828315476016460344570821029189299108727128253897402719532039007215046974900473913910074998583419288008263513474986464829040828624811226973040468434947711817043601229869825701176215987055174254416271889945731745065111436124138617547934663586485736573679945102494908730101184923833143825556651073400315712726580441376770158010546505169202093843337177286107104648197535919929269200712752414377081220370957374649583652156054752439413263824402329548415721606933079972094938585282982173109812497928530171608347139503713528526147887346716441472858064965755570730802313115700216556587099226791596438229935577554092540266379072666388150763933898919662439997027720882533038652376355954738454182072681048278340008482391637178576894393302188638801554210563011700118376459502820125191848854780475086305919226529208939714915233454487096140698461350308519454880976593909884225209465704021765525727289640621970425808046078339849397014973537606924477884115567759701971516220406525794017144342120169116854242914633227086896364149759414698910090191077307095964438158169520688118626665536355391668602961243622004761232509101341371063470071290172188898935130145294046508286894589668233576825772841931162295724340539331751887908594222085638502827140789417878748866288227746432093463763114652684813488945193580942234518330628401299521458519031873702830731363292072830736152298695611174610322085062571709063354571710277713062271129886826408431301069527530309715295977788653756391897449771902817849429511092163897268572113640571581309049995406915509096790111288199539059228587324110627399754044321859376660930852285321937264292756064249520412573483284506823047008853557773466102070706000406177781579508300833999166913201116467625665302138482269762644444316098813559707937357402741173377164446183632183034867189332644401364190416905827377007750757089393015731258071650233952052714252236230247234352838342439750968461449223400206712000443621175168375557000090552627303059757623730869583173721518582920121237265673917248053814292229161718260042605703576346658211373003264107715714292653831455311274429253724057411144236646935777030001429509082817188293766067765971642271815539516161265825166688772954819841193288926463761199279193861530307769338036126792652167062209128805465920688316883712951958898801947487662802936328846594403508964561767818074902906541712746611304517210372033058321476547851565370004831510641808082714949448008207077036342639166896490115596950226417691133267968992565680137329403199989587770600184174344408395976022705643020660956912864902415288489721184429668900110363859078992176219844007974670989047607311971382749486426787107046948464992935459051471665337283664500743969790310533079249551575268688415125720370714969327926395530797343274603308072097877008854416559971347186828711053585366552718509766542891289594310686566701056028331419899112454420444658549788198434045585394737393512242523738790330307220152489812783976172002089910939336273713173473291286911308124116410174283810823869401440516127741557775358034588895649003637791019895047676179404749189587378598510399333030804413639463654788252663063509976954369925268977255581308386754609401698080310135381187107528464315101016045963843751907616838963318690360287741557558385669901167849045824867563243833557117926528469390870078444665780153428184489203409650651662471240549468806780054769320247393021656944217234942869749315786657309487388042479324878113701473629804627427151528517575561017026376151495205504789135915152405988334576512645883569773074191451954801271716679656080938746410928659111548599063589272912228805779575449285683354889808868323415628106382954865043430918583366293959755838812449733278404921883350488654461652775216835028994769077367513527336353932754548063652121610715849969019131162909169418981074038206395169878945383299938201835582708506884920359414580903552267347765177929250647402711189750510199639751367723634238415349296409294681197821367031413549449014850578243418070042677682388922975910065160922314539530326891603950620093009510570731742625558950464377070622737153711993884066274821104571644589608747763009339528145520867425208379982561304095743839739566731609101907522948003299942189607105934431161548719313360912097802527717586945766259704976572565196432344398146494110324356860643519680809230632895270073237043503268125085575792880886633724340345197704304753852389516126566918590692821477358757624657189563950768245768170396479553453736090223005851376874796925671909336974928306287035348168677522534381335782356298542140835696273569057806399563424475724867034830678796094996599485053013296060535420833952244884428048792372677616194451330379628452907861729613279866816318410629333894052664248380019859854170260715839712674607938267918637685608907450511750048214993504654470440862334459343046456792606281018277521555858489434368667451744724541011879643726218084426110107431590813226465370255044393430222127865433954414483704896395182053470982446553598267241569323670320928700690432385132636072556163471990884901063235022962374547841708075096368909760913341743225764042504079058148166882612745868601265126813848507755796432109279584216188243738434615300425437914791793754512757286868448786578330206396586059315093267777585026328547339508432939425726194596999869259224355925710711889749107536081586787032092912450800011871160824699115368403619623639457929300988872868617095760105158312238192455466531102464460808106908740878576846039918210142906519310013919562436863719357160326912279601930657660648812338749173074570135104980338097853479268042402033286551111478296784422832772332113130904777412143189172954476275966352210505791483539123796173082420540848241692530593505615522300714825850091515261462602761977271591563918252890977359563417941715451114797143156346680132806000588150807982255373435733639931554184213336202169351333381706655001827293756450598708264315169514432505606910788789705911338602109150418803986116415789629991788275741559550271105636831736244225168991432814997047500457087239946473920364779060123165832340806522673271215230817930899864336622643544196002187082059516342934936934083375467453842192677037693993239367762693211999094191121604075571132096587629783797013503309954806118312977931115805112134189542473051268082029514490600494402110002585603776408917561436228963773173872559220477544761250624330985809964529310377965488989059409517608414630075865395517504685213719979828404349999792707632879886001047820419354639778175058158124496305220769995942426918362634783276517314278878475531743843595412162071408379530092349347403223612974761453901915919923626208372561219698135486999850161922923258962964644267086469127745706385876921910304665891853568445962794406325627458924279843690535309798551138500407095859335367346273984844805725902183491743579968724991892716388259735818112986120780168101358887093096041269940208860002149561865774092764523578703745698915618766945191394086946426520485671459421262142503782368487978168538429603680107278031488951863531093682851418249338728172995308426280544869529975509878384685817636507308098938142700596617462612687016406891972899320026345587671118866410149956271954165778184814138880746709011105141405090530237605828592480833503256562617123064987989330901151352915189637992547404860890695317507873771708107004656349299131848474649116471624344404324628334472234352513802239956688672101098086134379819172990563269589401126764035185374750247140615457014161605340908088147549212852387003422863261599883142307958955077918372312822488398733411476392056074708391810187263305397826652598596764757942529888076255448313189735553942975976251807157472479745483659560070684418746007386109225256202121659857883911121975273206663678349591346933045186381777995856033699880426639832576911827655928661880209856948410433611736906524396064982656712213438737224415312693408761030394482607054918983262375240575726148082196176781748787119394670559419873102101098135709918711667203424261958050303086935157372626594860611906662621147216117442768459921765256583048270850701734964297241546831297817615893093979827642345289644716244165990415991760224849872842249284980665110237915579765268751781163269860416071414522283841457096787009387950342045588288436743131640389887157273004972965462332810123676177993616427045196712833324717386832390893252463424299367558795379630903493323582706742323587880088349977722926458136288949784570219618135969944275413296652727897845066275871195362120934641561571072868232511425355006969230025224873086415905907624206428367922777412246648197233413647825717751165071940240233050967619865210435354067781116151342617797310715713400641385432649206682554942416940325250269607003928969575949665152080252630853494355475170523139448943480436614214614085939927993358276704566899438434159293959466739178975144548000043617895415903200674750252539381716844589151870698519176073912890556548587479939291590296169641982559660203310572381459598675767108336838409715273916308707222842878827796393496384847874200109599628263474796744537913962421732706121769583296204865392331783011749790821595452089730095823979922367404038292553334161789006920438922415111787752152236172855130694987094795207363632763474205613819533709804729504761912298475101122433053800086642000905716776241541359780812457046402121478046569934787918822847680699194276808385912080016527978401218691068464435460090474769756229253034533479808145335446799831427306149669760896058082718780525209348403189369840782813467182507552196009960191684280313061255608142409363119256328835108956205938105520164782972135517035350766523772171569380290531248858209296846176066213827416201325351423821640954820209313415894352107602620647540364376926009213332723645448112169523242656343702272934764679821564848233922226346291175719764396630121282408561787314870949739765946532507787942615395541292372859823365562575621404851069933127026778262434256579780155716563863471328311806892560523288659255365111813559099646630078657375975248141370381397536069412824278501338551116504491682359114380371805292849920900024608430625417708124212802974184780594791850341912161751006226737767729512644508790354786165935386194562842752125558025895073849399368628447669882330296048431965618013380474225182660426679443771314310655210056450142715419200749163663409889788296674347778024216819415219320282819202743739309845867339198511325516077051458868995353822415693119052504665459572387718182471727965746414208221693341133667162007806161166013242560295358658662983566672499427167567173363280476383121694595473287063910074598544937329861781450183415990048637524714380410051399468180270944757129968061926249530486793031129453739826690414860518211398324427593184156104082532877583297407698011897469308965692691527506713106323408107469629386048454661719049170705170811227171982745329151593230883278523936954932313470687209899361469714408836733993274751491029581346363192456210156757612165113872209893254493312865647056514237101455305774617492344415640485511452595358089019818494964166508705707301813230529511824742364628228011057545007547272060165145093679498506598137363058446972730418053795708489101854421228386765244896464451130798680592274607049569344715717216730222608384812497801476904120420419448365916268624917027036977967735374810642993333384066350977560249446961303047641879260157925574608573390812299271321663759492361954127339172338916657229935108831022387495610125459402216436016728500708857825208157916747558614942202340086960232352199978447536339376417089930688690779843582151628715340155924281944100956181286931675108687323664549111304863178279248889703757240403772110146628649276541732652338681266891492732617898007448553392448353639337254926122800724722694033707798727206644651863041445898793016093730718768733640372531560842252880467751574746119992841888873551935638315368505187729608037417753318094772491785834658703843123516126565451733548254323370756535811735810129195998836779183483748264520477682362040589258748314951065241751684020844043973577919529916561279503557764378746865491972742885548950161255940806878362137529823926581529713516106483246284208053822016321820266777503189448186695866876696222105122726386980007213715666614962450726935523149083696390158315265738385858461917298504822993954277185028410176259727516016160367805501497976784056173000942412220774237465582110664947285166051055631988170701902909476717004495068217866172409859497969180476479411266828792616312451584434332493518464052181027020532379962645908977953091770507161081202552218134758985054136703215334257758958518747193853746286730336631729136183094212566772412309452706585209735852314253159445291973971931557165421897340467454532657830621025558035878419907320685759059894830757014797689780428781582164694314112291239627693459594681887686942372228042147382378190668977001779946809116463486737290122990771240803339399853513969288005429467393884795518337425716161028141304226177793465242203453816988939681196037392804052119825788241838035162568690061690039282594343983407047999900802313662051938451054002441580518445656381560608449364492945095493442616031440233627983465324982756349518032442563819038638241978448401775353912615366825885212679617786161204096377745483515394341947679966365870831069373870709184425288055072247302775181439326938545774708008417208253067972519639797903241410127302425791406077776141331960734470064170803415902126873553834939184045403872807255386499720882314444455837869775603381049771612324573618205354584362605399615934758304660145447202347458985661153151148047989726307199667426754228824452724204333118984007496334582679050213833615339727451445994409862978863117640299494649399644610023093892181869342157111512605106671035152376408166116394684110564909713814581957364240545312710489823099376999508909322057249606896616585994435395104488576662951596061322574002272382149761439871935833002194757477943493990061247641636992484210096961278541681536349572157106582862309687547227918562687320762860237105057240395518844121646707689262759859203084594507995122827932160412007812667393411852209135560719159876863536358005935433919747189832571135958925485369807961068956590279312977761132922382635101287917139759665020236410231973599195170373281041476860629849054577990434534043116720858447180786593887804761832059858721149259600099179150566894573333495519784306916735855868170107585409624244876984302505330509672409577470892832245473518163987418699179783595440743630394007269163576246814455559445074881245226624308318740631676653463143396567077119899508884866307392640607436704973233862473821099196651255977142626860598846799166355701766439758681717072926293503333642301887837984560613774334766427573805447772351857570121335762119856205358843740373558318571050270883821752367235046825999565442741498391390158367787539027636475797018599633724084224736743071090690012189224597818611548098536821548478285205380937918766443416935446208280548711299515952765198343183558967963083332605558144520017306633186682713889916237215836499220818393568698528217952377473024483424591941418972959388002929333697086032400304977494756862363103326169901933670947879090021066370958237453454126577709566640360855800803964847589692369094152194538474119279379720659072441640140142448072328073272690923223034765117165583663617431219990131894194104673944425150097082002742123466021543215402750869031996234329406027946524721892836137762267241075867274347458090760006990652123236861010174265506979388053182974302205677351446238160415350045977068037787620645251155677576627437653237311802323637095509307115756934760429647697628840107405698438773745345278428940841860489078446767376761758477236351771683819088445822640880663463813787036179929126874079470180322634038171250520114655666745900874458016087664897872330213194783618455452298822797126844845763065105916994806096236513596086344527116134531746900531894028628584799622524494887963584135732317832598739354699362491562912320044734609610008952236645553406796425301419348361318543975499809010615903889357207489714525476837651341612649952284398723547531668325168201762462770628351956085339553882138553192482134518657699510329620253176322657894299278707440050129775325612337036602042657810101496546001823529379581721147962759577867620984437939203047620393641352947960637169433401481516608460373881918111483263467868923412402519005029321840746935585617189312738622299610196314938573960750616822485852740445078983585674646028722256138816337604009338711010426865562816821570644521784050181933233106151539624878838951783498281084802313189441567823820419402176370783406499382206464566319360583458609646106889172439754052507582723867303803116662956598471913039422546374898500608597761387673699389258352942106501327391294001026191173943398824999066991313128195520128889174967461828789942454941956849376339325117167421409249970391690956967875437632935972041076466389121644381830442657463419712787741429694009269379702276402336691618544179902557978240817548843283118710857162800465297707407094505966819079211944223204591195354002662653696501973420154586021066887923477024134992506044575852592228230059123901527374541914104874440929391921192561643889736449596754339283380173352954660538044848507014016857466821142032121375789602156039988405830509171704901901906000046053416810368786092626334056499192441156077922466032520076482491433077619448790741829105471169211173379968945043368423873582010574220414050925972418273431206303859941075490119849137754516459569104406120670178995777876114754139699091879928083277220408295511392945992522950634695646252885939922190951027051659667178367158429404538345750019260779777334749897973546275277392101012491347025250854491842784250004686500274615440539321263748853991877099839786910695653742428965543949874243474358051876366171066966475729608397395553014529873808406614773027600431512009069440445719463586443719660423295214848765694240759565696113274249183149126285443506499405757089638198532835835766345797588316713236058166072669566095755912969460418133536282693217774786152835096388619548112689464447284895788507123415326405873355284516694587667743803514429683198420567235420623602683062068742551913617446608021946454782025335773461220272237349648679334389076830071780537260626861395995546431873987306970588169019279036080275551043236623788157939800186174819579303668280291327846425058138937285099254822349038117700337791179472093809082279671159157230878270370042842770396567222708815980906491912575614043856479785287467846939194556971719395553994756676460300769405084182614209059212726088109298175055728826608410650894412243337399444804118098486177377002665829697494380431802276443160129142221782825390050382598847048219275505109712801176252481251598174811774578713288619997254594252469856386125239572013383314177807415781053752653601598804695050703466251370652226530854858428659388968033486521917595617562092890230447534750703085761766691348986989674497443857856376202214071406161149525519565192791517631249162962778069544586524824350522316083266839653505884232749560935265128227252856416479168487125438525152374568779570212547896578581808966676923107695099122370724559869198658470661960897709476898657919957865286957716310775653044237695145873800066449258312812970733155679708349365891158773248583663402834940110581596739094487871855344816961039357711631067970156133500014343906150492973244872145003278508502764777340212174510395319092786800011439458298614910801382809882346588419734994045349990624613748425706233728663000438251592103796575586405736810812827358879414634076613626461548686542837971968478324182308583267338638089276783951640371411821430851207075807138173159369127206381575251395874644578546904980473508393767205326193681350667937920191788044286908798458532420481161859285278560590164716524388889625411698659429597113900059102708113224761059912569022052198026768382157113724701266071557839019978121864092373637248620025533450442156320130065895465784089161477800735784188476922885589181220894902260375751752885321083099184188778664045936040819065053318441917624729493518947505282365189572173359630666956751532336405262663582941258040019152099748614692490401897684415683793415583359550592198076798274501573870230549390501409352663409899212016961100705231409439946528421133879373040594654421895029353684955418096778074772088511362154650331164330580581739415052515778785920700887146579470744049711954050011385853978477365016645371849140951271557146121856234011068133646005461621858402652073848363023998529221410596897315107880340466533656561615761923284287708877620957540479329250266832182086410657552342944150858869198424094681455716411068542405552229804020464959748776913787704886891763112730289046584208922749515033455144070495825791082792815010177056339633245597141615002901938384210624454002214179597498657738417321019100629877215870605437184492454908820033825961215587643718834575100547558880012673384020757826288271933255584840057240027290361543305539623068044706466107864236937585505348961859595674435397842838896314133000813072200295694108099040177626290614150679404301094343445933494996373972373193247219065512336913425906970558986954634661244937270607754626637502850689060025090223930944683568349153133013857181921553128634760526001796496565202360198175266902720953307743909207426272532182806247969552376255013089994473223467961384722861834405477681326283228439960936923891460662201731666518117651503302220172181686716623413123153249151396145811058908338463389706125855201740217001849088592214064226408891707984305571993294565385140743182121043242159965921720176325753627451758208393087616075734325185400856480191241973772234497086695101675731821506519106269433703684586548133910373198658114156238587767058855466352604174344999151239157917646691804703226875224187612971881061048668721294659791316626742794784971872757444981958904946530487123710742959043670462627254358579070900852840354776600918121993962563731994118686834443366149333009258280961010027249644323388680436391588939244871297734170227834332797913113258471810115399061297823504544747198083707004378768415751493569078033151276677053849568627149808716710957922248451652676119043798700093556907152128016939018696810327513835979913363525771353452133055491939357945543092373084688984835043411879661267197992109475565149474751370765978196167889009375143975489956906818218447891798743177440067108476374144225179711422939167379276440420100619741279836454149226941599137166501899508065358022403001909785882339937376451684547790188337024466287651012487507721729280153942834532144611455073562513850729124044038300615692167061143872523805490400591873021874053250711060530693981885334788560793631013826775179096671543327824036844971111682716715835887710761391018022905684365998480895962251480696195766718245000721386200697172701382512511050018368541742548724946027756230269664799679795013917772731403240950056209143566076280711633795839254463039962423985553394258305628615799881104122710506519475948758377802162746792083304716893805743987377075590590223794281081629735079535736803283114207256703570389033836083520522024927138411705953219976557694134045846509248205717078226371577231009596947461694656816994566682776009754499291888213868349925202531655448767293470573568689306716442065191813864087420518611153951423304415572684844326100743516804850978331582624055754280080072198212643018457491528834406313168812272522090566718861364342789709749211564566607841277815113850377271747348187788433243251600544302843587855267602561618608933068781420124810877802237589138354696438638496625553666164108224620262411811023584952675504899797307192287061330729010786359349245891001732731085741647437256262407043307609295841355407523967406511824499301052012408257405946603210298874088025324188975648700074800072235807594100656771288051533552934938232777852422872969740686390042239871826832378076836664664547450470173820684909564661908128575021363618516904062126210161217217837488796496072804729793917487422515058400419627540393568013235489917255948311742329703265921704924696182119889213994730736145588501420846337561556104943057595551257366206192939998158891082487735970430556105719479774684162574356067946693847444695103865634536893578507863049712845177200559921817943379849755080163435816357985377377783244865498194273882376412186988287381172294461488209767735169774322728510014264890850204795727888762860536961208820340521175629991603701044391430126444313962595568906562370145819775517249175093803402677230193168861625904635580474800840523674760492390992694829690969921394566369682871399382362772700057413938610923530386728466342928333139463912676111721401986505547458829748380965221284707863147258935789537925002135741056856665599997059013001194298208401579567033379297133595091173347330978456410946390830258807113162807376629805061184370141228926767314981094120004319742443197417755796339576588852827491029625728182993867643632979735103052180918633601182798230032532121204849435142089750967945664427169808712036826827066035681247322217399381053655914677172605855437203982822058609612905406333649120398303915098130033305717708226902523987243722613306264037837986539683935015208171237955006372875135211536988404335564061565462764038376383199623536667771672741360823840299510959907371492234075335727452841875251167477715689626125157473998027613953896380045216375430804073936677059613004341651813824292668949032857735088217230765258761950901203375126978071900271335342820435169525168633498631378650389425751261331425152082199108068813194088529621964093795195706465201267037657750253945390123987079974500983268304203779254762194343088616624003331186492536638358979714624282345551807264302129734874772654441960331984459424317708307142462375222965233611218302939298222309772076518536591613856088819764106903709212263274037321366615554793689123026397562012023137784840716696050129237947939498144554973577515769931525907897693672565610685429918508220881932113657536396799234411081188765029926272366801850684185007725983345600230348300620030108562247281345671268510127389157077999804873285214327672463870514887771198412440855114533883214135233010358252618633293478350365767217398063390565489784134734719467979092113309149707399579703909144354583574862361746254748264827900885827385587961726564421536474718302177155595365737228304763352147016245108357523730553611312203528261731471960372274593538603416658946372464552369885109294931697365295560229322175936651110884117422896071162904681994007914427727128218657245938908255310392746472560281847666881779559673836409241250532838577116201859794223065233603004499331617734049190410192438711349225941525688209375612366238432639621229882065720559300093856151714851847916269655247672773907150802277168467524619434381044544201120901341580227863714907265878737347016395631307393170179147533866924791716186352694924876952026823342835673345316355880268621144216318619887942054022085762155138588723011859639624227836480664315929703910241471535344200371044148712305876155035402936239791237091682494005435107910081484432455185006695528546461710472993308417172543305991420050514707698945003325468309070549423967534962900874203679793974388469150561904927383502779014767568439243532272354064336643803026672679475050237542974142774718494032885296732496607024472176807327920341562087370698402263255925204054130679899140814524942592454957527882885721983225887108221779401921994458952782846329646125637008409818940319827353247323151723881728623607030079378155319959159980289158238206514525097008329975122385817792157942856067550755344526659435370799569931448849046279627202631930697622040626722868205552677184927944768745604159161726278401019799454016195140574151563702770560673640610235308390635919071708371485751487077082964999604149662603560506041708143370172191031766925487986177044851292187614226651049031179523722967242209838281308331256295688733839963456722191560443895099776292158197766623769135281682848160386222293656352544050501497216315881282137627251467458857390717703929259330023083661692829826243429862541052891736468712692223715218140039180824112178194099725960150668991204201695556295018316116977227267561579087441268902113489284251697548346024693348022645834913299036222749696568205077181888549626186931072392046050654479643859299778710972370656805387432916169404604014552550038609318933071139612484700826341005681005754255213301104208259372620579729160815163956131997742759268993421564644782738053631436996934775508642671873929351651691438550323459081532087624284497554909458307105869088431793982057483527920620055902531506185000457610364747718945973594157241073567867570165519031237379850644356586162762445569759033987109460848633467945715256841303927387484335839423899897170256589449240657230138448125028058879385191586035390266921692342273061237501828365933588474785096392388974804454473913305228648390581160686772379579488664674307622674056961514692499654548885705644362072530731870177333068330323373722929891439245834970286083255478055340718079698697973827319832176471797225459738705070654028084621896292248535212876218602361086609626387233471059433095497057880651024075857543931181837947761114737513180227651876025972750997571834424934673811678136907915464917459301694641702665306942985943433546793321314870671557909113986082751822880181379270516645881374444950809211855457686931031390065972898984060851925819862574296229570596776775870125751163279570443332618649904838643360929962878200370556740595196127674375689073012582838523840043439187568866210667732957932782315138847482738388781061446465241725877491151361851132739087201543682613379696214417416673202334013273112599414572515815904093375971165447884452057948769163599631620999856241436325945403442213963602117306630674893157594595316016612387841369432987464083723253047641992016888690985322301328667767926629310624232776903601616384680444725175248391048297045228624933137973458921026575084837828885585486688831043463781377847756367830056293463822695615522859822230102713260028315522610703581806536476727568639289400546545175900874783924380712188179723524833724249695212435875531455686947898554250364753097002040100783284581428999324483002507986004673181964913222163285990674861313964428288449126440612446492950994208944315103485265805301131242956442202396719211908350442436448922850989615925914021934228807160507618713079407826865469572773848486271113828829140803750772728590063385564723251939997368351877880057917240451971283066622183108086230037603729094909739971338634106294003129636835998323647239475284150622751604787363540633003320406093362292013610390785138007302229045691626222925934709406645854820916714005236002483180419406410914344559990897883228448750888436669056213793210895102190876723718808716177736019401033926428756616916559403596679264551853057789031556928831625077518992495694872590544452822052971365826230235767229913645179942003007085599668397059251683303595162160387183769618795248877338632346410934622921261798382409067366517481855413581870845138972223243678484516174528752562866644295179429937362124211971507630266365976539216288994021465925408581081289578409563283385710260314378871600961281459116789154661575371690853796905677473446694059945548708852460746111925983090567103916615626308209593445990709894398075145911588920332595475558070270208749957668047303893185821810521848885805668428618685637434894266645640081978095789019087779232468195962986587356867467951430386676629265798126999181568174794756335035098356364705860183130463510631728846329675050945334543420406266499597193401634515158478881070808601003019268624187221383448177106515390067810711362111908684940413017130416983894615172083865759401336371286986718914949560851969640008364231674709074892211797490000517516966640151209497388663805971653434228498351573138731471356025293934884177276440433877781983981756528202666408422231239680366652539045114733186863423925242553146481859498956632438606060691803970685823752593533833108036593684369988968973944141376801887815317734931960269928524110089682064784177934014972683962302165815987119250446817460409362794946930246266836304060602477922338189567569929397425572041820714559926558632761497339176627458199060316680598963968904754204642529574778902664742469294622100970611303518991074174952674590902393922422513893560990763782476822175214960530293616808806829982524199406286653674260546069765653519112891527287666577555324650817991804156635116614664012602910680188902506808130804170216039844631022616987954474871839218804179328589323578546232710745507754262249738871539297641817257860843053771896197245071090451984355902153414927229593564799148648193538178039286340334109447775403358174572650994368182498312331505873970687911875653466116720150973417987645343250870802797937732072007011029197723629077958205789600208292951717045837060743375194225331332070303247220848976361874206931562895211081582548114887464291729491634699441145752574463486355651397009326694736163018507389189039336827401205481227598961275449545110076515873803490909218810830609318075907542288406704392861420856669797592253498077629784635858692839611441273918642371599015250884945465897897750519331677442178867773728258832683062327939847060936202083435136650315732994516531953602764858383182092773981536235623535762090942069340253743124958256215611298042342973276127278198059344284929589066553156783136881624637679064043120588084266565856469962012213209885720249321911360170348240388778434169919635196075861190202652141524329135924829201060266646718724617996526495984743898844182519587340106034697404318518634860730089167512489382264292353609303580217027813355221846718553670062792214677517495578692317048852439491105221906338652332285452806409780714087276108728187391490842602247194080157802361652272038502535860391646277926470669382368857279964873284540325946776020202453694225679536784965565962923499574606327247251695430650018662763390845417474561329107763748811695458165151477903330305376625288721349042318282133128262875905271486729149160829032773263638222298277602921076664416294093517450843101545731831194828144412684811171088852525733006569185509562387470619557563470977257662306600616167908635565712854302600088182331046683689195636069712720941000570904378853216872412363706270333552349996322445447516501965464026892773468155734070896352025747033800753796032288002523858480393935756527745398821465385115569267697365727913496091850330671136187815106401847723230132741532063295316943185791113280998479854058021289958069413147957095121933816984070928279534371893066986988204753983079670661997819776340080001679729201748516252390722418151868931934244859118661775615443217258431933656428432949592422658953299374897509312199515588729940298214553754870621346697138919880748125074516814703895731290948939762302006586930450054616853097356190100231650594064172861686973942705011579940821183431381016530479225481375235208091416400043299008544941279269296490137656367881890929967403486894076130052671841093571596631529744483386587911653448781127018216311823128705698543585768300561073882497106291879061771479040377613168829721921333124928184499637680732328491960173308292755849754355352766254630067832035989349953379205789703820346362506642373631922055408292037192687009367251129311499227361286569493448316221844919129877416374456860523750697531689838383640500471624985297450505555082117008880225142498620757538689977356249984814334459575000589094800210976453129837314707865334863559193051575917224503339123568045450493969785779463202844552512803411665374063940932977558142233539952577974646749645994069098853728346908579932535622155892835319507881025818184140056765805166214566587514788353620994207629910112536050011602909241568847284985007028592843430657389429021348024330836383349830693052255790728131199463639213253366564540289893773553276420560487907114634302624922541070733645267189148377147224855177406945764447893548298870190773419554297752726700329595563654564876243402441686339472369230074190832339505962968933512424374088181875387863353909439029568187119600302681906180946274777346802805012051159999590357536663746671553234273642790585143586921727000252640697439234393673815562072509575796393650080488947495362060304785232414562521293531295262606352016038393340743504243089229641135236962966461420140816772582826731253438705281997347366618792489422377270195105700301110844747030949025212847183949859601706282685952192225989137620672195267096222542886307513762664561880466319218834305347975190023209098669368697925457628590997079955038077872182660025645234664716893798234684793575163312513252265385559944169648687034331795309190159674773101873946839582122939450972628251519133617242129029159512350865863212749726696973634916271048988689943296342893157606323135292685453220597722167145512756234093728356506623616481636701179956436854638440988247746734082158009837442950633521483853606598374271501772269993847449322560601381114186688335258456386258604411206492528050994289564130360448104570822223244635846417477328311406792028947824281392037874654326420953369176486581784809836794021537205320383256292078813016286516986538578370351084411252946259417759067878906006909633046196292634175583096663861732485027593706754628346185514164482368720206668917802741317602142579630740791590391284118275899281545319047952233169716469875775194203232229850982267042663815792471649803123479451902826860151752446371659610484332463002064388290702853375860420426671929734726459902898017556717161810886345224129805524176548772888836958702029285328674576274593766152171880069543040760973344306816821717186894787673396943478896230653299221555192677268647050491215532395925681883808634293188197225603279713475159861309904946525849329327233795801296067286623876877196213522751646458344646401885171003178446278472091710096206799137492634968472875176617049609696217633668651481796096918346549168957580929720255153441131217771205918188718975863119444989375978571469099809105865439692801810006996148560674793016772842853138449693996694721193345633142227602873074912464636698459383589493861496943970125302378884719813891346104581319252070157906959200369842922645851212224022910525296105618158450570369822212165509114047649667958171387836651369010007198057772764844801047052158046517038129535671436254944937968154052736845621926115413465580244696968178031637441100190417465689663232128714383403099998700004398602182875883208212478923035313328978359294800460082729904992404774083532538485883385955779995528403093588073732969229032926497013151842216703962953190096992567253081506878326862108246057972367183373729699333716954716847666887391010955115245021231402380398342440304019620447439900507598951962458671149920193523822703612242836442496984972780668188775820635316013822415230586312217234262870297586758155650715247104656738621451572209163451887701337962240949118798897933317154408199965094526263733824292786415496623840686202488019201921700033999137667690972531341051156725240933610430113741822878347744078640477936979502175809587712720744537947144800464631033419998383510587468486989455625376038911996508234738960140484295867623333126311430158762711422889232316571223930576469456828058694453284303874817801487044278373454143558266681638347056859398610184836122305430635321826422639864916088082591712642522652663874933570515598770527875531150898179177696174410290264580281756125703742147550836686982837918501525952295715455575285268345280610458459660667803451753011715124121390369664859525145831402501257967392301532326844083129312558310916188275281191285173440780432686621980775526097556353183556339701358160313022891277488852917659656790983249651066639985095043867717123826877863746895564732818265418861334418158279305281134598488908732786639498142299490124202732711314347715344029500505074489006171081078758647548663467028956170980490407563926639331330692833299343987387114199055429547393725874051616686949122136368956181463070712630098168086404905881543066192222616749551633963937128051310989590078284339758890478472570816129388799083861106511783400797033115122022366167437548748997796992185616344100751249258521359959632891969128430462002063551139837428127339319516076916154801372537215577072059297837123164763829639865523778575179586634898432244022440894655425003496899296956252680552597645729145356924937158075761717362756267582500797423709743939216610893199138909235285721239641842154013391802081823029664565122656855055329563813755325586311833773358524288021470179543154861605264674160653486361346532340824408140487633945728223310503929669709624771180665064634331741858377998061894306128695312823889113409382494849417471293063599225380033737756063752977681303918527027234865018798894282919089233293794156956810695527311562253031736485629668620660302241516677763313043057542847375507211831976841938457868767352051133515503801146291869748479466697690358881352846651251143482557551592450868432165934316116865962216437309868223606121487065940600161996868833462713218962460599420944528733688261120645480532712596510698479354836526593854353874404618015977365071633403561963186188785000286125788907384615445834919888026454332530811951591182376824371762620021057949532955762728624858386246750895402804445961610825237801673699869246369503533514093241797276062187809702818071839332823658384329842920781188067940651530280850880565315496068926622120272563956578575423619988219668286672880833454162631892398355173444969989246418541119366673835794855786301098606790632123808453093108955300019334417640509256669482355845653739056070834398385810773631021566803442909682394557171929814030499918181580810844574554831123310850491212903461424302121820720535234404530859007445268533907817072439488509905321112503338063750075151487373484543220901818936359003436379084413975118463026555110971714051903736109114836974668858713860544691277131225300162355699736657429688948217446740554761515895609401604840116464241148053870234175348062927930414907560441137815447083134482875759176991214672811348213950372374638395751977743828508166302925722075354880950909436403934938105526737436192020564700670350707142813228098558227974612489462171332675837984458172208567132313925048663545366515635873434995223871044267866764388717179020460875857563775163204983089533857330021416549385410308005557204018928570192552609302011035352992788624302298176296854918441110260472437279576825897324454216698153998123652130977239300246790675028883060438487308456392554917916544971476496987862216427663230090315662395352842968155892980908201503038640999633768401932394768105571080483091797179940869065538993975828660519309265509965325620880990972593537420145206855363042774941862418712108126503630055077787805063527084648511590349002128207492118063072484652745911216511010978388240805198646386238384715011433587909260442744245819814476953295483960268449175326984920222002037437180843560644943048491323757060295470792388805743958678439282684922171387222619383793310704021728320018178943903579523442143866244014109831768199920475592984893976050289987129583633614770408653891252332489921273073447314162961311656883821914979723062007553295163729333115123473202432464267495858658375298265262175870332405701969910533739756748153583114766910132542292480365496829637455223561432035915605258301732267292533886026696906362246292011256435436672843724889629784183844714778973261489532969896782884501166137152497470912475579630371775758789918827614631897860589654166517932779199734549533666089230460364900890623860833765383878760993178705437754022104151856440538064974798032738327569245609772144729759302107555502945984186545414983131934141911433121318150786856496543478166440086403422329207700279344051595457155051278199616750726971944186084041831498941289284291287203292481672193333999310066748921425042707478855040538158183165088438922822687735788345306533183284278140694093827740368019380574596020413698509736232443453560762869026686261736146266548741378491039406469467682981719604805167788217679245778277623846514415037440938745681705039410115794079386806375233364469237369506406220650479018101268978954652873749816862590961384370898351010121095910954424777762300786411079384962310354912888143677843046295612298844550677624866415252111678521299687665826756388023791329380474827434501916585081318919475526481952414327860352410102432060829262587569699492772825746426764638153468152563941964398258736404352731269658796025401220763576702648035832680150560679234813435089117038652276645843747683740963139701487798741164250674170022474500871349282162698722454715882363790359636758205677901256009611672460973496568710462215904347807203201180982642210238682468712804854889400237240122317256361555903417742274449376801002440489740544139376512461976615231620047593842093824049506188947931409626172967893440620539342212463041684516356211007245069421354553601359849411969439418929974833869986290964760070095620521112098268291998931775500095031673331193634389826957447915928545774937561941995998205461180232651174339752134299416904809342895872245848157296912156389316625803187751140807789607048485743989619949889133655670470840281270317919210399452642465351634566578006817698542563815543021858433991661621312390274231961344040189651209334423204457599179406088967025351934019343183166273154244458515683560808723279113338805839607052357063862892977415400369498548075639542920042456056734526538401960122094841506745670795424321960942183466718437326254410551974365456127277046825928434917072697556691759534846555531995407533138944743618595107972954534885661032314489539577788435221775915687636455974103558749323052616230053447363353476779847764813863512322918929334191528932874356796831634323044176390142316452613452410904232984835045269200299615778565590552597633943024497309631122589863476842622405862779034291592357754759177106405188051487247006385318581017197373208523640147903739991993304860139532714734776851721301759586620589863984282863535619230179195671327103990784439994023281514912496501600272716656630077956729610888672567388601330926472581603134558075551088631147888829219112511270165900641175433760523237657670236858071924735131858037842823669909410225030187221321095838096371246955539939546223067162168936499034764801752870280793168294619280820619471592494400785527223421648347896630911629491380346963960552519813843813978946141463595072971752189063049502868513051689073002525767012866960280980550072155858261260295572581337199495818982520760587477787833319526891804948683665645805735176030042625844222556640206472142112377965923081509877195368537184544955058723243215762545096325850376020339900368879041042173648185451342264406939160242184272434866063206251728131918989451691232813302222661100882715147876740367668902511468922305557575334425211405109830662669662137717510337608214090711489242894950658047245129795222857435228510429940140879910514276526829872331741958600764090210143405827897714684762178043775348581550273059997613516171830354972527900257845414942852476017927017828190880525328408224482506047841694057120817333807813485836418856634243083599871418920700231267973728249065219191047257224871697245276967181794835122805831307402637810955592390874219929192526016759221421909705528816300979733619295741432321732622713544108578304877307457300603863683870101186514294276007861798737402677173798380352643595980141623674036728721507457752478950660613429321167256904133497426567183668016972491559860551658642168646351356063845694587917906899877746601916564232459704852552215396219897538900598494719893594264740406906895149293106393909386369378422335864236344350612262641990468465398605178510984751030256797364022604765539122627977673051323953436355583042721097320060798604275816159658221801174477207337618306356544986218941630210976558728453096591672931442837989296518770096090529123578247928633400243955088438601548797884987639017908292781955983549139205442240893046695873381388265109663585717586737030027079930469282348825853544116482881919121632306893720890653530346998159492330261752640031169496755643087190964618092456266038200616431248956523345280209939206514154355239029561961650868769098792368852219067153505186792782333106125837026670991486823564516936492047817560997053432570952345228874829731044196822674269658476207661187033166777298972408193928059554487786005086863234804644803353826250333138412873358516640408561329428745119876441872159492058807539085092468761930490171733761421975723654046761402018208076102140990535412234470823573880131430460395298726720919091951124390330602619661942253449122478878239959001624844146661960837604667829088688352290963595484763891921966316946855900778688459617265444832023267721901747327780706252814611031789646914170546269166504795815906216494751126195107679921706158298614191929848670683161699988887763133743710564967440560367329461194540823034126739526693640403221144781815089720981229842563804338945152007715523486952553324006092766727914195277553477962568769143049692212988884140673878598114539365203333392034736156841192258871160562257994048147871943408718688350615751793404367003742958737656889664592188583200385565484757710619094550252376841918102755387897828481086028447025576398798066664337572129697191242485233542290666968736151413750648396434978326279562695251310976558881616884657388128221424570000346717344348965740765251225206281921067612623963575516908882173310286586853737348436255087702350686154036302191633901576185446445531903648720564539881995309265371311698885201210031133663314538176507630448620266079264917562399219436682705008158123425152241791931914538587562922271304102223716771610216006852211605691229680656998250011479937639020283106091424196770311620887574679975367591816521603914010600835525326682306870701251261089383430348655432774147803307529339845254666776050224591473948454934185572090481589203404624855582105432101663277127398666956598748109165898990916171908098180368661459103786890443730478252315251095849790740841147008697882003213704760860995688271572773819821264891117906166641567505428908010348851154017694226458125238295328961810036369413368658908822084592836764948999513142108944173827297923900552912824439188059183492452082308837571656104970982035627288779266713730578597912037072790690536868478547783185876928229696151042266253788027788258555827516888418805771520492361058097316807519227657830793805026616439710640692625333313145387232550659175521900993641110976578473901766386450046644729025311637337731198187816187598227006817277354591277601991857841409539168691715651133629098409442731693350804706240073258547477473258302505688853382373047160102028498622101618841014925443375753784895592568584792757767368861747664691862005890728138702824420792492104405019224234305332416513035843631493603573329299046613956064377659496814657740297468007084540360940797023709496912363243252123606839590954622030241093386583777944850556846394611907409977660687114315323422276214654155339843969320973456718160963099909162288972983064036606065593122608666282661173164541301023587110653320685271499644013443131998038549941934971766938688797818510587870682036874297324260293474966661543953611343757804590088266674570991957194511569238505142861367847628194723606881227154389423875487585096395138868056572853162260211080335501291045988475451187514403187910773402498098690886983912326416376910825604272614236619801543080586189179638802822230029456778807583146087003300090381487095578230390801210521674965585207115877183045809127650327387753737557953340469894276096333158019972142924893696138948971982067869126102171116489270851614426243353292178793562701398071587488505015886687235884117508253387977292796775429997065324740947287945614069425919064079579062116336150422709987506059170547533944703507939635847213647536746269213871306375587326682262344751796581024863667607056924085914375638367967035956756497075496425818987946213458711347101958240863593530693551713164450498406697549555814286594304075053986777213869241113634190211666289015398285292346907331626184054619817690217138086222169952304669722384062368298720414897989013558230122575254903475098800157523128342025956139364827934393745312250446732133649008983140306778909987620545246875584169314570760447733137593259410937788181635550878971515216033520750030056005351979821170150767910096982510486769902330785662686349660937446801025656189499019851149880771927138940466933985592620102754531112661347531503174157674642606881954166418538171735635724863870494448113337679248522584935807320075909520765002101693638659353987603263961565026353200707107706734872644117501065559446085616701553959424808709401590594071058974059419947700544623755938273451878898220019466588074372378781936406715277560844749423121622193678820001765150751467180364062719568272413032023143368159673483102909822722557568117589357601661915536998156199082163997880706955116404476813243859230499448264697990892073444104512318417532127978524437079131917632572776095052015412562327574089162514384856637487066663666102361957803249139275343950463894378814914764794221762107270426207673262001540599509159760301950722835091116757604009142887930113347578740426699760337898616244324802621649221727253513995291287080326861428426510030068242951172147030754736676006655563144469272263569405935309316802377683222873000032936384466222681303503333027555329121453355084445976546418857696477374432007791846799842763014674566656229931263212800747782785618819711098271340573370655829119539563188062690583397813641118189316873948369989560466967789375374902543355519685341006951527020358308763081805860143511913414160905184761867746460904847401734904677104220617298318264188558156072540349021422785456669756027284906697697301486786509507767725419161974864869574818175556657287182482723192371726930183976094108223583137041322983675119002463512379207775366043860020779354430974717842344011898451675093028976922588116028774484448786052934288927290546438236270205681154327936061625177187544291087560957482138599267187669445341412007376096225655272989688744555517575657211724828172393461696289302303655034964945552127575239564124189350991124137287092485937326636442687758638114789426934394470184549394201697457088799446910922288181661713889178050070725473294763355295242571894446302171315539796643994395768524452555348290062495242491845768176770955723051667846993712345711826253235493517451971993297564660112661492396780149868436292605748601820264606837441834652001766216932659783103298821772054469447679792426847213103156171088552482788669181978902317080934996142610469161088500918010809404406663145967108690254279288028147283565724086583185032993211728479686453977840692858580502913556893060513862306709620647251624365095909429775263862296881661987016779504288509293954052498639933050229562132152322532366044418654956377940460496840550322351772338780658835158466048261570216863884003616279090250390939872136676773906478613485494930933737035462318258552099165356811289825684798774192799518429017200591806591515564469003613336847204814328551204164628153367581309946632075230271217257429246471721638744227454234134444032905561326491354973881074880640836919339724252059596832805058429672077358230551947119497317945148331150816617170036965025745823001206339250522059335726195369789807190119423878689552662570781102968768945584471355481924528819818344175282558842281300176101168574287998217401358980678171284099681834227048805882156394891515987919247905921157105821722819210705281230283195115562703091016470312530112715287869524102320427262100343848546916734903621274812059010765915155669760064684099135661739328170308215266405301770055155687481645764520670808570455362372860676864664439844343767493193739910072353107702284096730453288614013258644280412814344406298899259109263105159519086151920162104460478342298037870314661869320800384825057183464652319200110314002466510047468459682549147671385481481590601471419477024594609664489883374774998984516917682105164641242693673883125836223873333933641974209467183146602463797196194113450885152764190879250858193154576595573201345274731595939835550627421372562933339320816870720019909272629379922106506595745239253809591961356363859051468937080228446670089266149486233196074049133044352785040234336261856904589972539945228730425140066267701408281980167392202238206099051362840115687609893797849226453825689983944181613426115139263824064189938541734512259615220622684218896923261997917695540773045527853187317453283933715529920328087127126327034429392286839311712754525868949696820675160087437951306345151362223990561672439354606471392929159106635279568002104669878155232861118147767604136926593868407283953793334775917625412767733291388117576467612691748433669111116767975130047245769717118927477392949324207363402968737031187320613765386599294431743786694263845884477401712526232525849256991721069136502581175940165815481920481255840926759956634048818688178221645924408606640042444620773353281404195996816323945238323069126818093227959806182022693572028792033097931460528719359280135114331081162629587544246089872493514913523235906814497832277386216714991169481301866912380300097282704219424628937224171569836807444833238377236634024272083432716265153459783613294470117343354588312539650706283319165933850501905269368087412556189233661624241867503377127103206498815050743733754791805801218929219659272060244405455255584741191510504883194663001769991317908856492546283789516912172214958041588178627363408775025708347078621079177762669145107420544009762641595130761977813855386598836458772739713500126374805228364955204696196963737877542814413037214355285037405515583864991547905957483851436149928895397060146595144543118994229416531032216771141732918818342404491855984300341601168156722903053945008864177141366059910125199829494953125319502224585350617907371305248273579706203734149463687430914121085349305357667717932535743951665471347999918594870183240938814870089842964407440803944674271603424713634628952980183184848761165855227684616185935804638717928673777377034847799774219827041012237768401048992930791221793673070579169090453319464289944928106572504036326317180599637413014812303370482987193064841203813788727202682908307980685990287697561743717202655380981859924778804913740919162541967843972498027016829036783745714436782173608306559870149272217437928454637404992042432101661295285770144259986930035872968774228625213533373333228496346563241868969132084711152094857636531631650271427160773690728915961475143110417579405913458250565614866388586300420782979400660582858669547732064173829122904500769124151584689426765434712821442296400039364632248594237203042651838479325750399675494408978555716611621377795115142953331965959360510362760464633389479537342504818206850100877637440302941436994179651485186695605261008635114017866222625984364840048517236919404680442373984180041293954923594130138626894394022794730772547013206235370111904020349397507102112673194111890553620863638202588993311816221835978090816370376768833950903615045503840651402764665698617481178997423732572986938446615041771076601799787684819412950745730723430601044257032599417293660916513338134577518524521282637824518103124393014163072392526175523308355252587862118807672090263152474432565376915589609588626577382919744674520546737440799070646080663192021186829866945276145161542472530387354424055279504745126382203069163128726741885658402099365483280435257033796391557977312025478947050839409702739555508384788811117547320986123252966863133180376883629002844621052872000053548612577214550082700868198933672955748980032612441171652357386363933695084285304571503087457798751730784486896717501499888175885586059697523244588751228222577192583535692747300094591591402544969223302221023052267443186914781440665948483073142016754050499418813037981114263438243773957043589691818066325557878350466232283983461707570712201343469902693850004145114616260272094007978720817641231751519053369526433704763077673939872920213648851240807455789009078407092617069389238375908156517914166013297283014354555778129651018915322764815996685377471935454118311132547286717005607417598064287772168748381716203672613886299442709737222350541554181992820497691789230300678681178390804825900421062330195069321784301526997740719944300234236329665791777055512733883059095783361723941317950668677166901291220016022752140342284209559893373913804235476439457199812934298011897717634675879127249779155010501230723119500006216656391638549385689373937204095502734986174468162727309328105006450551481689845964749138823844011882903992011679137780038298540616368377674124977683271724916070269301630622434322304093104807746431326835416714328322193955456991932207735547734227646467280441602032850447621024422174171717959817804368554331159565454189107154689280981633663648757254543882238827664820997469683596227480350666386772613035446637811736775660665278256278566442559261282617214479677244225923997979378932592944444820168553246323078202885710977823013541643248833610402931571264927867945496193858440316680826393585193545515797061641925993748792523250684707825333163203264166710135240605862666132593404706138808453141984599891839738117451961914033297759106575587433156999976738005114671881985985923185655886777783456539230201667677720430596677136679588871165436258061413559578074499431195461966421608431978604884785232198846892371871288231757150206822253781701846261402837553924689854292366267758317528685279797763356785618741091386584065732345499956553519075974911037511213217039103448241135417119815728009313514051638048425604610889982720521321955050891937584561436916581906360065638425130039772385872264246861948487558455152357828068001145563096613592003108656501987894801088902547955442462785844838593770901832537186656505637842024607499710353281700086722685364328099285332159898031317686522686849333917733699139721081133708059862252011042956621608068189611687875046279853764963857302977772962993135887984380583966839691248261189732236772137098993865419106859757845253594326731100024093327450867112977868423749476443154228166750191180780150985569434981911310400997335296659458007242474535060904799833902838317046675746981840905791720862996217846446247309422459348773741325155005519839956149016571145710147568865919653059492307653439790981143844928441658792421563310455584977493355403340424989438456960658211362735884364191150123507401277378902812505488685059946158768954417189148762978952578787357018274462645643403776041380174038579640786090710422103261503083230153119346297555063736033404518071474950154930678192187427667783971666762394870553695909897825128290959442020066817159549096607411925509794550627027055242658163939390688427043685704935678676036086039481329118870068315886967470439914182425903624338584917756553658278051575664476230475505305246162736946296127926119917670237338816400281116433991415254176180222492552971038643581354351818761901902208367400946794444662719210672226936522187073841449047761917092260121139735727497086891758054316671692289874343253734331638254513890582932502090772092653167064770249296921638779619236423966603814439968811376515047435134629099934422084977466120223856668888344657515743332276938728790759022918526578641485622155470800176507984977243164005376737181977871838518182982042688340492760816185663943795482013656645358274665240187309648797521766667404334500122614944608010155706967376549089631043181717642627456661018015955033805093596146375513438790848947566901795579291518751606283638928559714273698841657000973850761949451242810557534762523816667044845952723821595449360160131610787251149848437756386520698233048711558191339438597187863006555501803838730468439863294002577992638950436813823231461238972987683323770251274786646871879176998809121132517311104322839900826795142161790111729139483482053355693648855269121929608407699955856827637635780724573068294468101184004778155494645655976702472268122400758330486422493543712392307826328463364993322313976589608543410900233726930713250715420579373667473359082696221791981817340303455744832925984743242425607964169662869183733670084405379273254236315829180929748339605406890073045074986503493454617706538165257384748434488237441960749947793773873072984523434161824875127785635522995852278954306317350657362415520238444890282701453202457565464393891989416706856546291932493995630192717200839241938659903149692163484856412528221087486700205607881085173074319783149457164932056242893722795309320166076319753393769366838066955527364835644123625445912005368912272646670249982304015265702311076940090891413766837125631572446564600745717814161654722160013283583706843216003205391883973282625110327423508744817666113279295125137921863994973555523662084861459819813411786038786187552224257927685733961670197728641412605176286666884787850349619872439677879105763300749998387326026891034656545030847996922033895103710290742178854993281186805551108616613903388622254372496427858783941722978916700456203883302120087870449819140791986968216411082285362627780166313585614162549250669399683192063573735398041507925477193751055519457706531841598776755478790723664052929029330951373863167384459729492568204643160465291230541106592848831788958280402142302403575436039364362042228269639747930254046542994607158594536507690426291487598697697373039834600941050350869808396374700456653226301167585075945732371456871890598151284300482378302991925701435634490455508766037371495663439226359315722413418393194062763624743092044659314365804857894377328637199028708779957100808942152984192275983982658703580883216833583128820427860452405800332522343235987438654195877632231863112118939639873655678471789169218825772122724410034915918671572709059599220001909142659627063808335054296086483623951186077196697124658412304533278832181310042739102242115493139184256397367858145876810664618853386943446164565814713054819515375158106737712421301477262351390276985177662541246505938356756939532137597679393011101293270084041134229341440730845305674730686767093613611487613095214457206686955768507814218482728144591718043767974066799085759321114783202412656907580248992806115335669828152286262403358727800385804767026559597494902082135201813190805487463417158228174012429923473829870245577759791445370847456640949760704864153170124224157828369428497887909248312110725147446335507029884324392031879489185020466874414481033293901031200606145248491493771827676906846667492185340205154595785253787422123490271944126390951202623519832171531911744890268679027420883194658089367664373548475180657180741534918888984371831196257008646890548039322931103575376793372049658784968682113967224408038445169482995330236962729032102166073365672602081392238050208660074814416677806896547406633898015760484088776726177723548935929976637490120168473357004461393225754101631469337375698680039243191695674806429018684386863388763356217381825111373921452615987546992719082347814586116729049349925121345161816224153080701504441617932869370311478014587754113555437340730052464437581222696111285907472566686798645992608285717676004412224344152191539078491056105908078835827395155599660486450074994236407374827973217005258785221405941712949929891705252935664057453400441694964304499740845159739069478431392575734430738953286372572719142946584087255103046177611324929551506510445543454250417340653620344808969795101226638750704551430016308881042737976703787914804941385700072426112624059884556610801231346015863490788031819789532115723797437928598702397675089663459862578393652911118785906892556793767451017708343001298137103057433007307798836273874279517871969281289580438572321906062324531308073355050149388527611271598667891657109897394544618517458563536593279664042007517406874682539965700656192881949920615884445566291819655437893641042233334966658461992856877896593385515329140992517408023641175215249495734207777225479512160783359180768618702764059264927323691280761963793153453299544218861949123847100969397351646391738623883077944978985520247678859476248151507600313168747264429362064304412415403555567317042341452629425688382516711769992986841521845716943028257842373299916055038265679750587334956476030990757314115264723447549560935510885235526762017960952055808253331387021763714505837294478529197255399337726801543734016037356989046084545998310940142851771197167106179257606273014536980420382899241167769063898120911376313552139040045415950607480821349730953500012172902075524102238417576085098110043529096222972094219745240034711863312757488687381790267276334680628145993782566257527105150702417285147733104019300487639995816705024495415000419620610978327633609219768923417485848221715345919590636662746567911604192118373510635819035103151620047890462442886006062364622671799742978100267938559017196418106323704921768486934182447117284467630107550686187719184864535872884994992833451402137768697173734692231667641590027084001950185620548018643009694473281405527945872843306272895017405123910568933610519214400349865821529786577855903994554696708952791179418134029563731294701899133887276854178676359720415531510382535465553543936058971242094204817917024355500250960239973407159259100426413705412588533472023609066263585767304814505567607919359954196796238490807712997558522152969713661846028452615458676987360614165563699470369152259955319738213250920415217869313243371248696130310360907224929458219069694275340665667986049821376398830918868288708688446322775852762411723256315951012468707668113544368258253827620082713793238569349580448133836147256363952277561313150769361322871000912654708326833197685242594881076036540401913158657115833326327843582179231284524632016731243683067265955769471565307979541867430159105170687554358858407673895008636286917660874496297236745633800313762382210808988239855608849358146666063821240268253384673906740032158880959580345942053440201772282645444230348302668846424531388490780057123940460552147492887908779441657793647676689772579684161319054197733323601185458693030044140113381314162858194625166498443211002189483331147917034563792379999962256093402381692510345956071432544441907524530920227377458732620302453316625756042434017663303564777262326869793579422205246934370814745711677344169733956161230837686168112809528069150137048826289348067582157383206060260485767029877214780360904331965641637552711732579537859677894009014803182741073313855010270425197325491607608317673919134226763227505209413684589856219744750753930023083046754191317162464168892505270318909470303482468076553362823091269590354666087023890100712827554975942725836025343798918099421142263184192379188157902295456379736007573428753639700261282084483241146657246836434271858806522734315297787602732338425052433871214390374018174555709076608332825487433463683168862459446858710727607694364986943132593199511818985394732916348638121895967232131597387142998561167514260212862515949832472177528107638037899495972623648104275100754502987363282511409640418319691146795583901476922542357580824866977008779035139439244745618713008023039484918185343255834862184971490271207085644656705283208437109641636354587330234548022934198399049694011698072043617412105118927162733267901399914273462074774141366640876875860450473244868509088336023058331356831516670130602663624585141030820052946185453298068278088300259623900220076527288446358604654508222296755129034130123731735317272021954463475132928645133884843556630067557892026951753597654642536406977988298376948143147933883387381801009882933082643010581528240332202875066462141814874833218701100508533735171982102262653110843789577212946063603283202623048242843300080836580018783950493202463266370151759502577223933628292177157931881275479970321216657629819774798665719068718722935452358037732170834718709946955522290811896235234803570989878324586393060030767216490170253092440224652297299909608414812590370149748136538227402973021629881920192584671609707630779841275183546045633183503708819205868480369007495265920398865417822290063959469458510410667928535737748823915204539980502636093784259601655130964168798738249959469213209855211730100109433657657234693178750064914338129863402571297601953978868209658898092215887877712235131757715648895628087262508001337483023769906487780405371984322135693247478470160047236622490599411211592416625497316132433522056582338518985541341456679948868729877968825542451807908546027307553053255070477551057574551752118967672336334395612334667994915027748753106106278146740812958445487317895202179818141748482337652997184867118002516835800762696500303862278822864076129304839355727505787833278289367870983327698508738926703980684624189196446977454934098902453901616803615448219663730670685695019397021990219785455669581432569231433491047728634347494150813615608377933037138307782043498285401328156197016499871658850242262761878084239184327754781513100774633091526057068411700039625150064681884994164688593392369932635915605383823790573500192572333926663505331749070024234020081734140376401983180757910723195799356915850065083211812058917308319079740744814192723339522984158953739524669164343695787286326011665231762497963217744707205410647956071270148618639878413686585079209844426309631782918978944946256467628230171984639105503681831654186876898568247387210606686950905317631884637487372046049235208402853689530387412158516830357750675712799152308808469038448382745738508580532559646787652436513836576622443483705326851374294157213668994240513333393261193561841690791573461606327399388650062792073702158278788246863193375316818379753151168527270291958711572935517081337974803230840744450550835862680537583859529113115281906822345411671431113833976369362712765116156095838189308344509830811716885979839582266455308407629908767109371211306851795201833722899591312446130043003025851954188421916507840798287035484435665872575068120030354887823823090435202801793437795931129749232524099150152340693012081743648768258008714347842832009775271734155500106423843317657023694530973398156595370441307612345359806935093588832281818048480363313053113136541105917360233007449183473572412273602864382431449784697963294809737665527276694377406944117174648943696235392968081876754667104702466175872454047049623623849586617442162670879136586040947834791697485853443942308218916559741995275475561903552026022768710053655712752092890466170861581664411256625245588705187149775169263495807516497289967840012704004055972149070515107763252555311652221515804224462071127994665556108012258230414266112126409508590317436703375636375391924078456424095385476485713640522326926834709237077120642298793488453035721399838578969987779822259033057773067357305418727163629090868948645465183953279484791062543708238457365044023436540648875909351651569387022967603095781842636665779194403362278989781873071692237299240188985357890354599699921758917480457352404780633410345518134954281997567011171573278914870039866420496671604511324914966270261807496573981852686340472865728752121202027690327253709451146522791633783024164514861337043582964647034982698100986555957414827686724294007197237058135188515788721101973417777491161634151335277922378783037261697175632615466010124615327290916334577606785414339371701435666942604261014527688687000088593392308312505043963492189617994957540188203639781527993024704193134023007083203610987645321748775052715530736801938439218609750603779940441515319712177456774496545267752576382030186593384682191390509823114371923432574144256784224463077527607687784214409817521124011748945234165100565743397471029841963109593727011053832670669695827043466104721430857153125033215269096846419633937254091606195645430171100367811533654674140314809662398893801683734893631791145227794276629721223336055800498425927357358066984605831266470114240111669520065619264137170524422932555862682018910510117700061668214447870287167584027504607302803122499231369534377551290391364055213215774699388175680645301971256292172130738821343381359673097082667598478929231411483629748090038683039726014020237853522209100722426464851056740638496758615118036111761723246619628148696160821809844099602270270093480250142298915670530046635523301932233857669375271601697007069582530858479789039964652172780957250080697471960804379011962892186107076266075715342570725757157246434352625501068627225299489996585641558439482717685963528604663493926339123708822796906936413446704961728248396922699374261436035527904706295866062465532867194615982494613521145617027283188965584338312303064923680532509524233816941353642667574495294139192164292035987293077253714784918105401843226884213892690234446802252117024920561845683792507831811892023831004146601900335745370266834956569052241544514432119552303134353504432835209418490734255976796587686860533019046883794689788212305685769729479755742396151199211638587623102407930594998153593579381540627572166744617771229298345162466990874423041522489851291375355171209421024409076673246416562603432385394483984323371810621602275972940341529977737043817269235760388067204583219047628224626287983965774447589639514164095803055006632100144502281826991023514735975908469949354271055665663738498755544435363799844391471720533693620161826646298684770297763709463424803023540722843971878629739000617384601904388856818208420330598489908753483751714901433145201401125137644706041293941616159516753584251114424691407881114867624506384993626276318145797224581674434316959513960270952576519260492855156161236285175084329959478212552027520975741420804853689449710170788526142074075592681575753194940247806614875557675478610885822114740787796496876882162321289835286151788122292507336528904243776228696448440135028841452744287379927210503235990703897372758661128874234875632856607940356819085066832486423454433189469232348578138810382482225998266744238033410743860901068645740463839365010470324453025643360819923306892716667535171285761859757612190681226449804327799303823214103817365072047367180989262797215072960695804901933285143202320091803682370951377840100296313336220251550153575718253750325878897558608639697572988883513684490692362127514135951350405016731481770826491341277632099439183055559529952309959795636222044370693318324107269824153747185536899118629136798873214358122813260025693763924582546989904059750816308975408592478192240830657412552705140224555364716930226910405307138488386405367916432289649793750489056848008727634333050277234269811238645897305519012086365005981299386883604489439088564835473622449441896595968935737122782792204237764559197239751415477319299555604084710102536113261100836485456382362014348697451869722462799389473193594160293547094558746136057885380922084937628944709255158850911751165940540278594932122225668813985601348126401695425892701011166469637829161259248882680354855750289359241108329943479493375035458105822967872663571811605663055514401140170948364640900275133705980976298989629927234975260841288025848369674980347263194800157064433950726499075633871553931276922540111115990712245356238173023372453434881969244948119633410085526176520374440000476445693036129041892397902195416288837794275091448879134387600742123238463852413847248592826500487935308457636507171084514244344253144446234670254393880290667742911735698399395262426043398510058629064104771269690086332635198758505800017681236225721351591738190606852868226532982891193947986327419185830510240136129669062283193432554389077449957004913362397463211568979729146892005607387044892346802797724400307127155700332237062252331793032011465191752177436457481399440641651834109682450062096944519631583787555472885775021550714602092726657245075577961367018653306496416770976274875173466596220918285231168423383652939152640106388759984518069140519234062371472604271452131664464037812710998115998097128695811861717183530798117124573472226925218992990562307438976434386971826182684963826246859984315804071279730016478878662602726483286708153673435334755197429942629871932684121053546687337311175737733265711808400639682024306897879140708685198656741610383699277211698003500967478070193953144418172748887507633174483605632212923289228424019863857321519678347170603984497506947813351852005863551169676018746369780435276749803534117803761838475337038339842263064066105309479292298140735335407685230628422044908216186860122781463206324951891304687091647358694163147052086921909447390856972666249386296893867423555093351983555079288156782022792939890106906729702676111389827000424760979316892298934547044702405331786427398532019335610793391003359634508750289647107562151977604804513548119402075364321577260502516173609830369328991575377421177215570089714908253057454756924725167043925501546168131315521458975892007145560693028568709358364721075687791771038261939857396152169202511996587736333200814897874200844574120565564815625100574703128528900130320416874455630596222580594383653211816249190642116110958907537925795335677426774509144803323671091601830188632789984749018032074199780655705893178622573054920866028320245268296600978262347270742631062356546120900935578894782471977547480641956641390457820788031233033558601662180895448199546306752198335318640910791569344523627895623180904732742105683012165196594243739816974017074098997159562149491094011904361130998346306031103928468762993896955586385658856078258732112550216387592754032008279285720910624737870778507671252739227262475796800177175470817751099548204070282901402992111724056035190081846374965302708481563403479336734451743399965737930842492908870898490580317164410024327559593498627271235732282844141475246711920865732562452574553136562940084608937662272778338338364910412668560910540337326589643974545272641847825312766748080450279710120301115792992184720262723860540341758602993613630235224106048662952415756239495652180712645126812079688958651738774174475955104016883452918831997613992883158749939401502359540793543515171557835304165643193616701547856675594667431462663324837290418883676946519975843855142855739748688579921417938333635046862941696821675341133281243342924823902223407689244209455120899080687843078487395807531711504225590282672661593719410290726050774313804489187706422795409645518540107939726204480840590142586508083669866460047573513532773124513618143242313123743594125056308135953247318902139986007897540104088615281393897096624939645652279309391203463657057211406361659218569731166908404036779097402816261616282354106875899799886420834066756075042262056557362452997144959101137469963510772160907297420675377969907224478751492374739764965950484035709323647221229123293169695383502178505408521418098413221646110052462139248086594645724623368607119687704483520832301329922060905478831042338214229301570016550471167822907586115087079334556468226186973216489967742509913095326328416984870783350603199628305319889958776921371155116539362273122221373827123195179010774828515310483481265955500992099053652393445619100829681981440478660915766941986250101317844567117246965322308522118840817473008182734949213095662361639890300191777406177383033160865563618553675947251242418519679639839451996953970348131989497402790739324353479197003364468751628977486365400210408237862097710147547373545187135236054751084435798783259964832171301191230004936603596906022997716160003874943137322509892431432730933790971377584936918747080190966372940953361164199792530425009998023253607460832713567062138788269897020893146335303265700681485682298152472727259898253015039513590808141884042696145572536086792441323045374449318487395021949851396022390271217838024130963548037397872588285725699752992581828325970303420001924905113684876076511402196232908790211795283187976133357171066816170910576521944217048119732623421775253325536420792970526074082694987450834426087118207281267931890185864567664533256193322388615949597230796498209798637682229005555387112912893826140343879799179886611464057452669278646704793128094401037978544646569279265010111378185227090822190454663967866696987800605288596811245615516913442984057327411414557523592394146976426962999250376440039047592356641756688275834708842479832518067785402701390851981293650823245002545865988606533686484821457273859884786108073592205111217470942863633740220690609956892502979827007020108418338062088579954129522028947060194349718650366086013174483554479397633286802139269245218556377131869721491728101628990647849592838870462356895768971360116242485214416886338470516901495222862095903291240007730714791169453520795305355596526960417780258213433078406060953118218883983381695201216489341528831864110159209552984999169263138399693896210358927497671652977267515197941872023107826691414752473075579981558662339879265083151554415330017729378045350250180025237041383424883782874926459180647103216103479507385476494340552066236477363357228572975636761203692647425752976672882725271946000897947531803261087551237276235670693523148231267239417198587981554005372318142152254492899342439661204316917369964241781566582904777779718715294760871395169113028989547498988414377095128868819966094695349334957270159716517196299997419437220495073328492467571245743948715163864325623828560881058111891103206751946989719055810378136187337977294730227604955113629951022592066872622332240529612634300672385945057091733661529719489237273905810943272937101082437726117008844772845642872398796658556192925854689307006718070859798788775740817429369085376151508560576056828734921109518592424299726120796726345361202101062767680577902374481747095414631901148288180683260689713648016066464663194383516419343254487549317577461745215896245781057600319165232023283708098394344284686958234485420532422695844952311659070951707658352504036336997954214540350313260672810423579407777526098579002194889941601423735477951264161160937755737246466175342960694230450877128264357956086960317075974694765306495673880896634778224549278596841726919549615330040948592576545681464921372591026819801722746722459977944579392336642638172823747311818714465329383707304238001642012953881139719763675975948461895640148118909010213309569329471045237319168634614104988360616264646385197095767267364136538482157263487358272148468880265304463721325672259103934857696991076838304776653285728023659067997135763676935505591229860879808329707787508325910688938835936754050602878157169637679702062672994151506223254038442275252593248366116517592266287192887583514637212341162666439116154443204427621209367322508428228581751427700630066741342859399691587973781388359266224235821567763283506390292251876880839641899373938619427600833430329596233920234501160677383603422026554134211170553094277861181740661453674757237063127751518257440182585119902268800830377410741783474377468221326403304796916778036585258444704587864846104977015912881712921927133026135416849747534915875595154212141655636686151126916049526140232154544081658404182423544120073672647825375937008890408113252388631439398453436241826839758897205324054397017277440751139233304189439053850498842420486224598582081699776278343354987615280901826779422307893459155855107967848365853573730688740465567049611105875213302611598285206909252992292744726301405582618644085093070872090102889797630648811709514679535712020913689111140440466369627576041464116778991398703921454643525976674653552101673710425559451662283836883344190586765463327793809750158042856916844708660450123653127691814081763049532584667713885731437289213994558927172614129780875044352246200165871692623315272242357115128283632257367093794566491813887004184723752610783213872339211533706521056911096749676659779556800207854434477764845989689591926695071984802986812770469632156813776578118264426737798187736587056503143569118299019996399414072522242939881114549928440201726138879230125681618460021288110984495778731382828311349900557263452805611979664865823768435940893534715636430726833312585406416040181110726303669513225817010651311413467728750128300779336929606831636458893376837465712487800635032393592419590021463042122926510472225648953274517241260075854356730775396924831555370618897934893345030307862266227337659913506733615046829170423337743041239528679236533883110096152880181408909506990417688365339618119456517386221097278396520552819193407377538285086107331193448549759644129068500521154309910022443842321029109811422721082343599461711224023066326287247786604694720200722267615866793387190643902631055868788004328135973124774746684354552188361930232181692415671225527488939288259885996012243928552817061260806644758758016709137810340500455492712861511550234214270500036441778820798075167608158121822679099117628481847060158895009835206484967144038086067815392058297275616069759749159539776538780711552115281891178918166460642482761559868614444240914515234861576615474228756661652626395542484412412367211435961755615445783028405589480942051377651755701999107662256518784342993565149432856275186174998515464574808905862625136701563773630382515993158786969823797898541234596659762964699193527460990588719666328130982449750526401107991152013268119516854834652323277100665904845692324772149214500733745066307272096383615323658274695782168352561179107745657111520517387051062930919531355730554795468332828308519210634668091215339507959904339121966746549328289669337064765420599104722454620443147957398863860713820496633487755536885835722923965284914228920058369931982119379632240494293974677470041577192719871623416293370599100207173287519464004225593790133782389302163800311790079656488156898131539692307425031842581204568521927565493779207194202019913361540736838946734432764093555970914086757460870421270191760283313068819354301395764254140933952332644567284084364568061957236019891535922811264803854163924644499970339043277516006680097023727194150765146287775751478335344808186832206593121330854582385776694430638330837569656358308255750376406805823366443148909079584273009767111768762401637454093008617207781397678626520420543878939912334940568337056573027439134090877675740950547603560939202113174871255544905906934362151597736458517304074265837584771509411644788528443310384305596449571684388939278701287531682028014696081021318266976157857677832959547179604750211989643897572896526197594346281848206802790188799310598524379054842740928328456308558934618109214200241698078893495639842741916873190341708212289637612514228118403251742831364958348004661870183576466655440044351246524376964787352799272231915911497100748220695180594731981449829737038080916686426164315884072849022761915496419428877681210995558634505814567265478408781572024335729138318398890702476253949688823673127511445915171965076524640036993331294903823550752823464999692612625636216734010429088607857652588207758347165654975954087484170640807233445116131184718881940911246288979633002769850466411160861178436848489438904369363164923620457076039979858720602766303274856520994386545964246452197910825211693318960238419160652233506174425390143320857245014757778567639280109756288652427592726927963121517339994945234241880992447352322153386011853087539740025237672280524927838278043678116104008598758794616605628736850878309670703326898558125927103246598801643367634092481879422801174045123025127384207828518989310457171906114666791722805652847103848897842728224108780072037111180537039494038632564561330976971413108758069942997646871369783330616805524824554358421113309090780225549175778036252988981450027624113115461158401505133056005065346486640422424893545991150544848902313082949840385667497489447323943293438709719302116093016494505510632812665053003124968084266602510026281031333508841687235084143714663768908639344938506680979467736628953377109088998361864103004237910768203163746052150575544097620245264674547011730332103993348527324197760485173959100134292044373131046278793811888501876827392734647834258557075631877937063267052111332028786401507245559881439588819496603035819751590450744920068770798653002031029993526871299257764021586677898265940106772755470919702408259637051268659166291510424732023925793259028982126905712370923464106308027322089227124453614953716357123252639505720260668151000218362417474611350495966734612491151002383007400904269229461862576075674561044122784688627237199135942543367311967673855761776959140993795246506750448871084913850393156174314796253236724318405344410489323435493877035612279697635652097497052554011273869854974068257944470360033808166521979271392186233518092651831770774237718379463766908437256013625773619937944386834193133865027284644902691474334307509948600585985612393629585909657603026178435137939963888732263047648894765300657669775271798931543029221759731219805359997697208963975480945630436735231266537867614097032423797991795642680182650785844297304298140415852435120911006709961273862812795933051496708677959723009647461051796544877234788131902716464735330644632495666933517857538494887039492907833503211786265013830377157456959448196262795124190333781309013781953448241806827919001099291683411158463571209151015017035027204296711056790867083395979487935871213252591094608128395557680740342015456416747773862808297279936961776400908005830189458205153976066817275246196287163982012797498648886647970059542612116870303844391063537139237838735297763068300483978373729580498494689470566997379884039263133260631407713257072414122012006141139580294644879600305907331799427915284370142458715467613146750743398500343677566651526732586325606393778819228608864211462882647823810285103440310071883439741700446633410472465699434057902096651298719925579764349671789219284022490812795175323535584836640532851650372403173253714711321964084950227914414039222422972826303853972092300603790502004999826887772976709145262550737704567297611973095730007516200026486709374737552925615130679145252501775545267672424360623313402863709238619886801978582569638626394621639643623386999745244509590379903740614984060503136656097241757578481546642171880576417374587294529442888630515501129355453383418482623575174890019079288053627269550159138602577982205117425763457448381124675276516970807445294688497009032596904067262622100105044018316920177242326099138323147324621806924264961697731210807084148665877040625606304518989107158198009769614086929785805506336934084720061878957881354702148302966213729994599880160529753582374871359617202604229658794858505284798564482641353570560135857910044291754134181425101431582024678546371912061974065484478989293869323265838274403228245578007498966261133496779933718896747161802129037739074073943549112741822766573238541881042887187350736582614412767624077037304736360918390223296060693096050634615098943772407699258023513984164948196765599309706109445640969139719606687573755667577629467568097650123156920784672657125945418486838074685145565003772266976437124823945125823724866414699179895459573151149290236693491152883990123054901670315389175456655499180477212644885749144110056456798070718050724407731373844228086823043095046824696939923744824112929889116103445985831184638739580950699794257034155245018886821161469003362116264327815949793141714840709586392971811319842160814075958311712003369933263690650563445641380595549529078664653883091465758116817483055606621121361646219692058070654395454666131426204407141385979045534744320707387045467178113917040284557788769851240592872620065518659281125658542919999825587155888220956702703148201688612760696728846981392192948941447145800748904041861493395762305175845782323772361342300349293792402750800832272172442678595779639124422907139804951093598888923835057099394810435577910075723187233682449677745282964023968069665478396650641596437980261072733659410876256852855358589103371913867377701599181846908785495272672091339054651919114664913725303861022673386408667471288897762428916886786964324697338941420177020983619801745144453556839770269971152762600722394666389019724617407094621526506597466248991201524697127493483283731682849079093049592317942270402702501325932373422721368636600818938278365246363209869869957543993114436650262212735451466011722404213622418994822250561115504068527827039544447442452490877023550887258892284827449213409595124458091681481802657585947824661246380079212068197843849353615049935943917259991857832538065947077997304041069584123944926164325970366218881793670737864612426265097572014527426648408089980290812429349689356762345606506316507053336024659079119599711106082369325534159846118578326720000609922540054916452758519426337278060837687048693969786824688222741333801536258305501377133991325125016270916869830989986428281216568413693482745374642045674163279127387587272503568923455437984151245263861150235564414870895703673544454921665552278917134739328742660077207302571910592073719402316802150891479751964676336716037101629922812249590526380723247454393121694393752981012871238481661070979301435496904038824608488021990697055326345031135367781541512047653727844790095180214990228936795161631467996030146755207379836099339127610499577341802726230761079900944884040586109350249945752830972954554365047436948765274104449618446227547983516316139550691708984686275522817878478468843428651305929199958953639587563849521455967587589911101313766945225096943632130777165784788324336589136798884507544907422930400848252922265517143024726799360777945535405587710756430986551825276948910034728861767870953550304381300956756984806748696635474803406293980011753257707348399970084485329157277879294229825958952870553060368510060614080419891619755432445998512808124186279011369058975509722360618906106618036561254349317586437725220270955819532152022542318941758859885840014361917385823155264402040991936864787033628985956868206436559612166971514111345280710781384153801503426690646156608035541453117585859639159318823135204202283224170926676183049966133647483310749525758110842934288092438891447754694539608061968482763450328990144865501738128006302319334103688524076293415091425584128824499716669559852369362732910142209139859039674868178374066607686481472015775542573169592797731061803802128853067538205354510888804416946659031590723602591106556973301401814295307031136282379737888904367528874575907912327480209634403189714984977976260687362204434901086140644034355092201206828219542811405615275969147031604678026595443259397281944235546603544427329499569354430842346786780218175209327218931618141504458218144819370686063383941711438017429276689499653941482006529886947808579080914591766131923299693927125077006275320176160315573390067764000289865053057973303961047426993400254492313821537403392714837476582057965576754989904301138312999920291709970901367210729206039051804182627161883948138768608135932314013708005224515644605786185703358185254163546460271447825124828718085678389119062068247519706445497548120691583216728381827717739930310574358200874634237017977145789334668834583303580439742535943401233562208482101615789045611865661877929560443068351612350010010665633781685963993750303568654697998221862612775350212509324819920198036291318016995125992414704817151129720720498174774967943571438558571854213421226501091445836048605611235896294747374809380874475703022073794315845843237609586757158972141253984644224177632252617340708718723720963693972318652778095945457527361247404800706037119218779077599733382254200225570285944339931532026986436510485803136094438421850690277674345200043679127251831452241533365547639856710076148654983070440817624103647355474543388910739901650312095110297161932900563631331542606803578026909344072217529378646160420393436460721139579582272356781470209007675643847211827201930225146288601206771629392702039979961193578733279093452485092385788276125269635380376437078316339155578639253236850990429476284998784610024587927583052220642852049601754078298296436530656932285302381565340178490587528132903732323556960576803821720272808457182142725851719761919578803270381073602540431574384894539049975122572497106804772622515022571491422441764929826255810520540320107126174026275299905459349914028659943320425936181368159590348046084407649907840579177945941568851570863102445188823342721157361550355484747235929427715560885613091889240855202617971035866539372275293405055817575410350175166306754517222476479946287898817856589310136625196774273428067506990190263816114574403827122578139988687053355611398068677004154303003183747418421207916154650535558366233639091188118725893440668576020169511558508968312595910322848045107111256770732218522144970824707474080132276960574554240262625399979816556412093872394243713651254508834472445462488830672498802688335584232181045427480753889194397663125678283065578446946570331365209036780307723528055526214224240587323754582949755133353606317214663104947400781062965004748171982933347906965800761482595036953779970275339240412707237464680262193405475078087221882227842108416322758120648911581006253253004746196178766328813124511361491694053809186750843790686137780375470047754001091373312838416511829543223380168196140663303896370632069710230368559128859408809899702776087289632532549889996805210227174904258613235945501660982307719209084322641629717845684996479768308395503544947008879889337978643226078220987586356960418315808271009229022619847982365865502381933076324564902215444984445854566195515534935239952368204123615420342242927778259122338404396940966826334295659057245784742922093781322103845227038070321026301525475185309927162477729584244879611764004514986581230381848958282273046815774288367017902402034553915909192688170696384781498186120592125277487325873738461141593313198634125889675293008424751999789719507585649847713570010582663610109875244457320752009570018189338024143661944148775729344187786541945058093033426643168641848020238946056864744660996294419669751195988501127998244115681992255409302991876216857954660654681274892493281620439744740740737290548561167066646315678040851447054992175660534198327292222491505305465154962418628555342390416892396161007426174365500743855259095700452895518112425181624522514029941139550381278389992351528571120213639149403402952875653766642806736828448990022582538091676759019836701072254466167669451196195900674263777705226301031335554440014658918843260696518775094582403631743220460607605818853045773382391416722854079044294188676466607515021228364773604084791004727670409871773602689731370275718027891303543321790394853951203345262296965961834186098535108847208459679250950688437621399304853391637182572742948892749483226906029873981721166665974692524665398895760479905653724974803730987163814512753961526420301078896941576772844936302882150507584689390816923686454120638165205573452600449252270641755855841900759108964148625665765857552186782623708825274021109759142828981806778871574645039176620413109207988363957644065830081116043358966491936894826656053839327498251235542326219505342706905143757970517725673764107435352249110375740038651891407370300311030763511125601939628786875290553808551751298951847943021101927479473076877012966828185689360708819937399643537744752811420141498430353144159209052655551008769013293681445896184041454797239108360953751071610759354189782031967119212257128758608213373171593441542304781513763036588402478120790579796011540626731092695697750063359214867641459456248141632927286906608849625336183401802240768199782872885188291579484953708665944397765197892281167179977069161228261091277676506842168365022955587441617075775799838237053970303552146329634750799550341095556509744024165829850894746597175470147505911996360082165921101962902362818832720194926625676607426742268775735285597637080550036998755395358287883889746941127858632564479468779522452848196123653158678129900996829490075226837976214128686202411882089691586239968440754668262414250855702187651249538070195351712456476128149612846832520097867233773756167515864987325443658944612516549270310037013442157844520047894028145801284749636871860785714469808798488534746696934497796384903949466184938764139085657842416574093733921861014810840976385819070499014390676659278791446543887268039777014390016508289118508257604951790025082604111494852167487133384316732488785468944488771814041449425219725847743133276752992476875920881614445688260982590243015016124877547221280454164655954383226470992156385364182930553938986999075134255298493416447327955133607805874370433085472968058724965693566787006691843964628612152566495957940586297292208214880388378076516101436653474513339178786105020448735101772956351839458676391643392503453738985393662947239051927608468503707743034173097339023631864623277416971185077909349494019831197967323685372238534970689443135114537534476547499265898591972691677634317170478732681124426074193203727138520773354413448249859192592937017416946271773909767140939298508316016946384528157492855504336854680263149583565731414886508691944574735724195166814864348747200212276853470164128835610674895506841899315243736744113253278484095823888034169036052570494432700618322433685282675758918243962206452063517443248366412235072422885575093772850475364353520736016823049628674444312127734294388879376400801105134029504455845393119241285571618288376521960658713334385553403844720482454286002982368238660205362839447247211884243460928340106360252249308534143617425201910695761301844917485843639822831924056283072753920477792246689478223121911130224399943212275110972962315489800194131726209227833296727738112296340533070299551224544732065569614796705951739806783665540415094010959044452763797233538168928112336904989924099020743189104064138022913437308083500389460103565161322763917213925410493771112400279696967008437439813999933435984698142878910751485027352763519660555353220533964544012976061162511242624483744673865449897523446202399368831937842600691269687907565540568941835493365929432494628956227179007706607246197200726961377014185407662026057756036024414752681191325020334483883738769661178564311903787085279506600942032909795617153253048413311230659488768188672025830914525617636724768439159532025436935441722608165170179080511755651954363085371668003079868228188767901193645736265962092051250554734057402348009711980929747332671613567702982580781938094027833821056502331928498711284348333193463066016776655069284422041890509878448297582491198237593598023136504495901091293646245202226848211847070129189941673546003869781498383592045183378923846570281863224058760887180327794327164040838643151730392835935856281870814680465836899763181861536507523222920960395625110874966954089589174470375350996248373266533703603667245079672720651294352824927495345107490071473540433479134910288314853483003140767344714230986056182678804759456882363871292863619310703122767311502235348863503299307696224619888902531547875268253356677754246165645162667554107160127273975905143498042744249589184521409414004407414458975510456232475378845503885368071696893165372664934878378254434855457885666981441168055382985383550036582551073470965655680338431194661432476220720436323556163673257432044392395447690624025981264534882714877851550966531791518125301242047177588142286792569290054816596830155480945644410535386464126478602614424688363669353846910830444554904656326445927588128099051816394814951891771635069239585359342524247558035797396469112649899662075302669855245599119076369264604677266182801830412429403697882671373841541456154158143611429384134934849231202645470138959060441332904912560104641659481264168139100484803848917446771273031368004187046751362799303673873064150494162918859856536981238045089332053651269806272769402746533330599936666929515333341492673993491761437777177301386413757855141202458234396903511045711256646040800688210047518303498721889794605214796428586167016057527582443252981563457244085677739484808884320326536628848439505526738236768898872449959251458464177626012545794835586024268468131584152388722197952481896178693382579990971985406248973187886680428437062221216779575758503410340292039236733290047990614710530770752499139440805631259901824957170669274832745653726961567088809237600531823259841842729554068247201585721414117146690552086973847900905646407651568488828095770299419731774785556041494199873768135673651416675443811484183217630095682451696326981694289797126245343495488138123136519629027705492550689544492901765033984364189357724474591558260312692722978836466193972846061067563964169464041646005870949561307040287332146282129503026488122463835066843026417872802498951984974597205871313545764021242018312220078790024769723035572153745766973008674980602889389776145026059261286435618702305854623885389870905517535003560211742456065717885953331538200819945406459553345353108346792187362970219527636362885400728150414155746224021883446971178234051945643752068398277413127009645093477878507937343257120910213087855928481434859639362314478877652927554830035749828232541801176033309789096553428823923473912384651851162408921557727977348235751682067473977900591759075882203098598301364001246531489450565091731571001163691079582006744910119908919043979340727494358528975762462572605094686320374836115890181570282782494801633330382275795779735452680229143993129523749926110093756098175000809720095514057077194537824336426926744672614900630683197179092248661484959457179181217535573817527477075717481501831384586158395295560647656122585763618399722637452258757632538148934397757745546736722989361770947192420114368050443471750395166207601580821057910371356354908665829942689907781438213504316712490774969709956226608670557539912301990683824221483774050951162789915228399983904810056094661218683112033872767757227904921916358475522138235851596317714628862664102991374441223022860151367413411524164214799231727563033851207030357337996111019616187155328482627390053394221447733251611281219299121421176783850277494045484077557469334948098905814449218169659249096040648004979432725253742449500636373305403406477384951671889878568294938184784563827494721859550065881503147540577859889553333090334432632495772271622013817603892629622561940461178073726940527263675544511372707182918776574658746432533690054223706285366790518905719158097697748725854491889756295716881249008510224048757505491318981283470736597679700345389747015777765436911278514795155133863394109667522970341860577368581516015677287246855646339054083726000693938134117526456583777415138318406335057547695803674864405358589488199148526902045941034998776087269891553084568797931150308785080852698420663477491132865660889836081269157936367982026326846406910358207674122445721633262461080745280632314928326577598254511166892144285628753058132179739312064350293283213733252637388891225070080379117209038685180929664343991072392307049343610633961135818298181086732809242935176321450437501624110642450470490896280443213562745856206060896330193920255386871694697410911430780819015621678207863013260220153552979654016957334094501169824335440201646528241743055536728744517527879757912560904010197712302761929821484577825988369738161896384390892994421938699051794236783811433331698230475901830848453732867679093235766293639214570728722552455100327391297336246283888395838864061058921916061090032735536061697333381984946701208326640340905593955930216824411407361223277295185537991244205055086525663326097758762108704344318633902589487772300946773824720584579668769504703320680055326931511487233783300293355866814699293770107510964468359904151915510668600355027509995426299201513611671558438067887339363575565356953916844072912242378187548696424135798046550642299622847963787245006659563371458855716922847740607151172414213352108763005237253571398869300612501413095102058234679855424174686027704351603949628502477776845186598755746233428940625636920470027775964380902367377183554226343948180564032795353666059785231298266726516812134467064657559538556170632333153128906458535624860094179758562190364402279968927899769042185110498216752075828773978591443023306355049700938342425182701011135787096940644257713163880530815386549928587880557523818641920262066971428289376786255010716702391349666027201410777078347779962759586526310251981310976803504463478765608313571233645461281258357124459741952448576236472779755135839635089294879891882422244491627732604629350467741811958166249882853311832029093114359835124284983230503283129958654063182078385312645286110155986254317960090467126234247622469744201978655110967078136117131701163095393051758963816069252819661009865231003936513433058599929020936492471010102817079972901433488185522121384490477867971812665323786611182447453122257060787811083874676545613894738762482896563138207063716355783871036919746187848825165251620347107420753553811058404127908970442712939641089247603147738158932185685532365638197736088249228303781925408721057427241158244556785832758137261063597369430122664965706606840229266229512995514227938633323388617200610492985379984279685479632696279385125516736623634004797029240649647266307137208975292283990122081766211501528583729380961659764217102064241144173808890019728954497666694841375694733937902755280844570481440902699042854425567787550102498903017514017450675650028946761664868375901694814345883938441496576334463612623742255361087152730065509013751448621411937858815262823374473900845463393889606175497192679175735273887642627548046743524348492609337661742595671494990325908432408322372864954414181487234937301196383074502821801122333552735563153057057490863450122415957722986171188018613685235047015496078589849282906865470358489532796913881670329079301008070527536179762869764857371385101245485895114465381354345419137789514046770561654981971090001767581525671426204089926722363476919020496786457612745176644693777300138914457690654563749656558723005074025092123657655597103498650718641201764454191572599279687637087830934613487615795625896458372639719274474860593361965822536444244383114742643187872475336076374763132019738117759579884669935216400885322883431028467903577754659626282029542377446232910637968973560341822327497981409820718140310626856305406651211075774067099293826850726718459683094315966069688454112648100769052646840520964225325439572233662345991778550937634526828263695630654894979256350960412796809121533705942768247111899855866620078020663204499010171730490295359243876290098372333444026095054088821087636844846997117559303567231055033450233020553276684065661041159837258504562293847373002464763320870061907695279278872187379635741668619732560919422310076386076912343062916047835591307136806615424582892533982382792390058651345284315161118270579680680767763075682049185118782379457097902848082685323525619080120171736830085467370782561368264183762493889745546578108496815885474709152268367679693166676278452094607476367832505936967227451296372877210630833729312395793408751768992226080826017547324905318744261904616087831286853496833064419363129553056893015076241074350436228757366400381793425990474245146046058330417230443949226666064328963312129334212187348855858662775441141195953094530313054629519064597604753386276419341015249852362003627529216230835998559782161685310688093884368871461458056209939700627501381972061952631798495963243466742916418620351492992214079976544310913434830656720822921861861567031821952063059741472460702249425480925761902769059608194215642997406717482999595602702063090855379096179418723760584368040499213579802942369035726372510195715541709951009854803677969194575505727860907070909044629471591666446473711271024936808476912388480388019959022164769743396732669727919519003185547661102971316698427056004458959443494318029337879252989500158103186499719908061679445202841371511730500692123838543331746074436455122820652510955871635196388763170126159431939353884345604608313441875092387350559579442928980538423602964049118645721858444481653618934200791223577173816374830104148855650456291224518393885806941534144186995338527618983264707371194389350529946014331495274345842127725677454708111397758649658108375421557069763047951855895962280780836869234411968243635169481149114129705798349412594079173102342761828068719380461504452537913873718484354958428002560657873548374123153094825505272945886148304930965561468917406250081881663805316419176161225779462470940367405248178703753278434249749043169562261471343478033098975778799623223971834621659979610654263665365671869589145775440265388888741560108225765470496687532397113811508286281448301905947739783623472236656989022650890280267511143999819914801915324051632934338306136126932718514490771709034718090078165585726830838528687035855949772057861359728330179741982686731238556634492935174628374999698303670023154130584205476403365356645073527386112726984536308031931909664583494439637617378496918819284428869241371813028316940766185806495295285254500050502598460012105279954502605455109766553502634611814772705783238768278343336298091653633493520548221684210637777245164960708629553071347143251472050157990062737557794596337069893214573929623944856324496469441618881958970422315623620766393120997322182160585765118392678218230774363620422574596307883346716163187481207989642493223052231064932262404898692005758525632811469066379310900630555913134142492902081052138365094742651624157395748789956442567166000633464495913846025206081859485449153141679732137353309811986558792820328532884341199042668754789053589319376942409085812954212403276111817228223879510851462184740936070005282841070212905531306301258465285045441217901867730573782447742498999068862496284464233363838352455152884971308785751116712381197221390523734800466598140684493704106399483925189501292380260619425861602830912826199885771294764590640070077189362592913371610273146123354604325510444163519801464120183415283932468940493419914382500159555234681303277329883348043871568264186890051120717209499476572280722237336143174241169923658585829768429956587567104697736643245137173172621721218355373232855832028505919002273340616655415227843346865549884125692790258045154286827300181191798020227492201033821811240552195831639065013312369591627289799997357336243995720417771331229876787324314388292846198256288905201618043467070671503238387461108319416479454263048416310932299035264677460173033933656600006627644752316084840491777582719860206495472818595687127553378080961074142642923656094114541947378214834051638233829169544484940108424218764824006769457938404781360526550134898823010314084010594688677286052317142804783647306913361233639499183949133658611993929114555376197287526265012043250023849992198293496495020604419394330920570492448946702149589655888990727073913402848159453220882858760259959656036662460670382391649359402888115144869469559989291914864381278559209207235111715460130411040890946532982104653993936549716102436246166199667591478545744306469373440907352750951808897695767814544294149799120202333708903723529536061897033434538607372517242780274252833595634426431842041742753282562743646422230786689253881052089814770032062986312376530523893766621783114951096972185853740373940353190731921341076782554498179122501576019196619116360580646762082215287496847283100416114785792583580353866759654720576812307741491103834633567238848757846915656232625289058374678715471312444679152553602278005133510432993794693028413853107257609006894393588049654404925132750710194911602331698964371033976088991881296576864890968663162640287419461327176428662922299571743346400038701295044884630829341331038582683877648237281221236809190579561449490305287725437387932305820442660552800345052230435277367826833914783141551477520497221875332192904926521785114505016747999017705956314829208342359486350769545774657199964998739821030586467695273144171921339922193001814303983555895847443762417805445767724741673432293671259413283238342402442377652640693983751731709811110866242536132880755814619835030780608708440585559938259163523292729122615373357806876619820928081097802414113538432195954300041976829787705598106620149732089289925543581331181664147409139368753481605572864883712457826602596112939911099365315591271263476274590002941754083932758580911734507550188939173547734807935041168485478069065160128460708458903188509380887419592294972615175907341456390587442005853569541480019234163441571022378367535168982136606157583363539138303120126664428041747329942133267975450057923605627257276835555784936946079345840265051866370718081037124455966250152308417755998087845683863901445848676546533369796895778877298090889505933402910978360084725427229768444459223518024571229763981815011120522673628077175320151037418225088199523009235243870220056368018788543715427886438789959600407584552155536820985787458477049351417817574894000810983708833066707760312629244422972621600967162754983514326403476895363897904976765821836797683322121123158965402234478781659955119859612085281239315988881202270704483984960973260949273120413158041834710544141915865488667857514325983397758281387558181489145344870368125621813219583752307148458454970282531520940400610147330674746130677198606325759582346387419619171902497678634569046250397610817527024782954351042199780869874285356078624997466580912922259501771975305369965912370824612306744428092394288345397098157692296800460980524224820358455801235713124823130138611235326140036610894057639332365670499871733932350926546084917040805292856075378843200998309938767568538273496232978177626867679043789260421422163375312870081935748634618830906002075872240042641959294698551244442651095494873071545789809063731918012613563774049880158941113675248353366507244137759970240225942796025722107158135474549270687343225559104832831033474380973796436998203440534404039611868391754304505728903562811495481124140049471127069617787557975053077192637198482783121344573330393076230349326525637576854424992924589827956231982393694479833525722443167671752043779568040956328852410189236956461623055039941498616744554856929063122221154576834934973980764520790449026445565318991780994122087410759601462906545255317283389249477236872647534842170921663103364572041714446956858175731728473644294205216612639493146215484252008663331631123804018998326561638601235219490022543988053044739891283260120840371607272977291218555251638257927071617069483485759595750090285933889136732175040394425184403318509641789579431208155494532662544995618767485998375102950238621153216095748840607480594536588972064685614258190265527308627882755791964170182552879883951707573524443139035158944663646714481012335952539538598593864662850813642364401950934959967281570985654096843425415138430670477331397125480409557755297836111873974102219292427428773321348354109396734124062862989286783162906246986133189903385078448797737993467036688363723640231120404111080482129742666409328781614318429000219182399663579150545528539164997986912459715645686291608867016775790746152122493965047532172626583437582213258562479442260698916511172643871309001573033111513755522096404050626146805734450188055735494287757216569457982145557000397299333543245778013997721487329146430163636219573180936944422323860664940244011984840262745766610765861099964328522173888594729896746888798035597613528090581791917142162644620823724193987987252108994707532443554123262297716912996335885129785486181128207863861125608170414322530207910935192735240504995047661648259907092274784637577802724537942196597885400597181222745809232100492541115202677422832106076208204115207684216243288845102140468923493586454605787235995254532921635768993973694950458592203986769650700919562740491704828622990026412579821331110119564964433350385646982008506019628228448068745357766137893004937334258670350342272877907173309668648687873252703138497092424104474646979158322537237428770011816680431212937084789680943555332586798299812052514203917226941619705299341776458960512571789498891376552839091484458538841318266743193183519153598502667467925292546360292950041700932023842980330678910209609218823294521244532389897065092189574426112473373183906212260120886880079119935482461089166600035840486521374838381383213617498265141749691840128222629551680799445319266641103458372404169456478340298150446677082087683600907825663188986947186048334498327208289216239227503047156995817310942407835779719395658535025117315008194696831490484547098814996783606544485419383452953080684325785231801550057279225504090367282966338302925194466539016862909621330714326816093891892083413398217410901825217170878342502907851861103161940633786158374503235169075332485540669074109313479933086736462631169035179050202842487296049809596295428270021949415674194518778307375011646124193494547568820803962062209934545184942276962386764049447314179793221002362764437150076293142906060575337603729849347353398087251365427711898077854652740785307514546221428277251536680729134653557154359406810229468872653882879298121316316380191548008638261079902168566812177033321871503938998277223410914072906219727423018368386951702999145007534426433784742317568021771941134449305780396243101874093928564270338250793930057225449586583590277195173861079653048467055952950878202043073060586464671381438227200232371412695919331456140527610253162274785387434750650409954898096970004050977355264789324791780325398529859897771150239211390037913246638180585443197382640121881693546342854494554237557437991030571394185353826584541691881589175800044122700374972481846994617636272784558971292462845992956310343438078826129665736361603576942867903712207165207765518704828642923020780517844802505285096485408278151227229813381880507130355815157437519194164080849164440999696824705948863511934841352051016994918765858709768733820182537167051681049095105862997729483048562821216739300232534071557299836009431371969393305571271301179643270742940614838124823330729072328069338156182849457991358473031766752711305898675866047306277912596898261050643316672431735293322841459056236192171690338082195038745611056229694968017177030337232584359210170943672807308664870557733876873487751178198933571091034654585287457258978703818994324382799447426447922768371602798936746779853004728446754093186420844294460256711476757806190490852281139570427778394575608546782378094792524548584276214171488671498990795520544531511580455293975559994925880901814724852673859522030413764241538689991069175616825120539465309164438832528563777502595049622245903095992065169157008090718662360192319305617562528246277501203710847441592930937339893642568925835647717127007369266298655701928994250033507625695252577274028522955886126227879326106105859535074887453617176466580631842173779289438439437777441218527548747331817756376802941033880621100127056134107347927667597235963173617438768625731864033507364386986088997412846865710804247098918217879288275333254472739029582989495323337822772359249565823038389014911051077667503040472249173904337378631184770347623655739943253747153308830887769302152969058179471539166149134629161436378165864498073703214819583918007660649100191496453729447792276249500569632096770883863406222130990562503557754337431995734797790122085759478215671763952363938035101926455562788482929267620460470555599834764205227902998110227834491125218609166772144992037183709725689961973398204617607355349221813371336047151808896868706527167687061940854305935049424554755393665474571246678818372475015533516912590758796004384398938181591712966989633342438929414972881464797467693272420975258794554209144365769112149284854609856582588683088689089195131215546469518854352182548289794314793711390149817342305155627832400021223353483633643977269257979591921976720807896196499795092976230460075033618481638065801786030121570210351833949120729533187736815542110181786267619692126575203206162202394037878138941316654594625596523084485599738511641874307394272542586830143702057378620952576435506693403107800188985465252635021921653640429173464995375200817478882075154426431451917541721848362930265304534092039177172577461018421309082389698630525897373430686864762407221963800339787308192321870169846451675328479266607277681637994339542345719492000105449222674500990991414338700768168781465964774674776670397097388124347002485108430192171639181999911621603650748899872633033379591326084175878392825815705511339817757894987511788747658242960430100932136604357977832931001787735743102368153760428745599908819401176365433316606846786782265153715230579225762829749426803957068892013432804494521507048714126226934599638768779312436427455595034356137283015673793909884974905710351711958135021351976477785396551272927149648066973392739393140430443338720277429548035860543516477067631035205235456886568678567529802456722739285671593647785810671294467289385203298625987276483851523965097213267242610472760559140439625907215106247424950909396918963618136801273380333822956686011313950200820213429547349915765979601736788526357306225782670168292379292007063560559062452658113988501677797988098044075947222982177867765620627737999393175259733432673634011796978637315374914210156013071907869377536045234750894510962141378911543873807279618381196270690701455556810669189210851572528306029677381177010979359578817617154096308431503480008584160554524266646181666872542677285937045242940286277715776881922201418343773866419063622375905646540625128235721928353975587422112307052036391637020415794626925605680677819634081719927254772976439985068109063138848125328551085342680125755562724053967130038273778651601809127513763856175591016617278818376683822639669699473307916067860601221490955670098510025609905237071728886885744283880075142150276561279015835759011539705905644490318226800715254955860572352940951587739230101968064415930131995286067667301760808582203703492830890859398957375960373740762289382096657584888423632927351200697741112862012983743653415988695166228515810574552923506887589819611783245259017780388678153892339435829477028095045977534991733117361129520796946689803256623264152236988286710815166593363068652954923331329195386560808009284970944151341826017135199590728064399694087803821753082602272271877687116907119245710161700413111202650075316341096405585328628574935882829740578673413145163113893991466203700409745410755732317794967115548940275818583434980553437480046649330426746334351567866722666950285888267745290288977689580250729373610115515953115026629164727778336463323381683823332432842260072514571425975402122988238417468253882571614867251953357490297831819760979868714235883520934204821296941368659521918738825192162550177331958698174886633016129465429304095847675261595805474349721687656838078601726995923906485647696600160773003316327990424200387189866809494443360802905409948910627655721763389442512186591578613457923180963303758575758630964710260384415832526810850790010311641523524145750584976228241940784596281592803559094257706484139808064102517588750219886153750816428923380387264332205136389315526425402945416917944049033268203643578408874238798480667586004559244756943550200521948629924029342445964849711138634101751032955761023535497642877565104816376324612801084148093378239583151636329689214355205903445744699474609609236112199266660390154227615166432183129290407208989838776897374874942444037218431710198696086303013921836651636835374734525887925785959279162921349487031848170046744472111268248791768457896954445616812641491853089549436927005665773487227295220704240426866869692136461414763595464734351413414599163641062028235648382326145071663444997717798145559398622366654659776853912149284237054371244612859623538821295196728936757422014268609550844838012441828655018940644893350754528411635285319831173101837256331642761599040814240659115809549208377321786055303404310856318205809311603101166084500042702061046753845525375940975385824061082180555841394608678449829445538410791380870074767257003621724979388573786247037632252948991279252629272622177092229674566731686522791777028471904863828861599810399137946017105214990489713016111663121356824197984246026844800005567642265014335738586831588919513657220424524252989988238601381912382043036211917126785092453770408792262623425948947093853860314790315860215918589171830302693344446409904869559119311734259407119766940461411659879289204255352544408490923190793842956591480453310110510658925555731082939152766751978473150411029892735405458212883068692790486179022721745522897753234323774343007919960241801342265835621900443019942791438423745679284560299032864149467421576132135875370980557410429211815269221472805231702141883298142080201777707097952061269276631542996179255965817316675737502032297509907710814111911398961798969240950277391206328828836701966270491693307402277219613758622337209532046593177980950937149213941394570428160146608642973727532231401163219417130631500026965374755063667761513643507680565209759515662370059048266953642570582866771898093483834856234437521892375474922614710128183118201235989158857467328732794056837069580778522210948824490847158090465091946317535011645485270698669592662392899477078858626970973713854694773282967696724722179267851695509677657671602331280086450725645478700459181026577578566628542448215496265230696771488141173766345501763697820311290202693217872333940806872630568582727134407108013669130963448472863006575986172763336046912559741087644000619682062030361241988380849210324070044207332882175118683786195036034921239486378360596708441047096629027389171970269861162482252905969356832220479083904158267881917975810131103807439684227812808259375398377806648169388411740568016021615348142294370876855141489407217672386407358305399730266983876723409977068101091758250379337613973445133164027418095576362924493468573232278965744385991336189140693538955568037867583857378601653801565940819719449011434542940317580730775950538493377966272869742398900380837917414313214671594524857887724450003246391978498841324443331261505481281627461574455942020726203026060461140728411064494106305361204519520583077864451696759785878288370428108513534298375842506314940896597187346957082833299703074688896051293498318545612906384909505294634867310046874199529198815708382357090862355376256228550147540264891083346630272654005007670432300067605053080591359635259027222129179062500187121180070338308547136668491181679759347851343405044589009522500563348641813005094537495888158457754775037637495077117137302912561606588270753408643173371219062601070756022082928664757465701548014510623348404403054819186255848038694638731332568627531341680534176969607372973983805757732515230743005664147949919522029521644137884923140573783532987502196993417108199857972841261759320879525004661113809546584724690124970808878649110296486053453740636273415885655482612090277290528754739458022131275230418362590737871429333414275899365165315731465329483036101939926425206648581973553745125618962593603707771968740660755098192947498189618669314179130008894612106352131809543284528834359321557712898124740936289349283967817616598955330134107025391706286770400094375915680555514231662906777945972313982141486712835632195120759455818834476726618346761845835143903382257149371671097385972832614391119422839349875533760011899346241016043703468214423101380041233040317110838436818318159875328256707818686929754013660458605569907135601307045697018498502668190786408025715543916521738579699943881076957612196466483155490820531231111079045645922174390569409656293540464293597282263724587232782207164966410827914867783224166240989032568049203937681979121438134467237084897518517796596166538569594965848736650380693497625283300665584042718893328358184111277938069267282090005042528335836569911021080397131111658949731478510177140986302799992640692923162888205576702586221008796333291357580186045121287876762374966342170856574665635722451119709232339289623357029540026960476819253134182631073042699699734074672849463443842417759345877105849693801541768226417371651476983584785323889383618286943284811862423919773779772357094635913035672906465471717291908883061772396603186718436939753415844034020310274289842831092650289396724399339868799593788740890430579651062403186221886349256354235549744173494050589758620970580876922219931509982249938636530779856511120928655761784581729448638285039943814978729160298334457874975560933077142593193923429073946974258854273452394057971810240693522191988939232542809435443135651158363513746346751428304464605891939425868243633338162339499886602026425643675022555462681564800977242333163900720664328947174848945494670495185807523587751126670131579228817101140910146363010911273739977343784077978586445571687631378708075175617466614976438609188908208189340468359853173342109100094342218856590173566991283493769253085604300583726020445674151234620728088315940415035480997261168612266679985650800140539325247908816623979723380117645248406090347383989164951186871421480902143127279511294315974872770868726776098212726475652572393661059210210020599025906405545229213676614243426800081704225438401335622974121705021925263026790715631788142622316467566857728816741042553108160500380333172848621498807119898702942327814313318673508918401759432319089610000912727123807115789471585595557325846753870925238280761318499488031966889829863670547534108120482249254329528609048492318012385923249838313665045106346670141936028658984241892144261287690520975932077787351307498712095135610800620657232847544495240207159351656683280286164090417602585243944479525394972541797582805187339093099648606718047598933382126077668189942655143204644597712421940352195522147770026840651833412634811211557047944322819018901475352298797550964890729144982549635617025103222828243781580473462911108970979537364443839075462559231176908066893866758336164458206392556540331434506830701629640412745679282881839593333285870886743684440443659610655755831440693754764167314254821025977061713907348236891832100598589445742356746897444534115438368109539215297252810223913256795780095953336673751726866061818498945380523637853086290983962812848076522434914494826489500001145510906906488736452020296488807283494181388047388651962340775621510998899611875698196969422242028488394072390664121974688431019169088473185527691296668590235845641403355491541001041947149606896409204533434191663715010827869101775732054885559937595828975618767609426159080247123288666357673504383492747046128960560991999850149746609691259632691116933549416126205713514795895094326908201198883254112538434606506626153714101834242792831030416035811523101561773675524568916047050183891301391964652510361914786493307926570070099068738580756814789367570174748828823553497923605871942116091339314933279544141015021862219812162133910507470864485778365227940985751098374142212146654966513342625920834312169557944299981273756178098055825018184944555929031491486483371731058134059767487515631923925476440499977311407827102286114972173474423049109017612868354156246049200322502971235194988083000195765175765289599914263742836300331359371290648515496639408071253964318599486023055447907529813652590935077733969822186286751106576235047340718079826191412655902985201489266916119973821475077640253690033780347084773427314899065239487504788920534530009263023072215905595948474873640861132977890020881177732602143868203723722813463246308005996106775065557314817042855914932919998798193131125066613721614760846979038512732826405972929325856888382445186794309436595788491648134802759765243218999322270691199845980907822801619576352987893923511527919466851435522992086567521352858826456691717046277171645217413968888533590886194625896177895883255667608799790400355595564024695172142118753629382858972134456433854681639838079494260373438007099872348802882666271657681230791871775597947588848832162959310104737550776326205809907816121832270039936364174486896860545544456992341381005875903702898790747343668016981032039308066607246892757449187731309489235597183345641245135558514654695699782280081455054772093575391941543603018963497589904170003930335169005154934451995757637257687844894028230531759269179238573534579190209480370192467250212935534848677569566180586337186407435521867053612159194240047083082157414238108535693985655771893442041578021544260065321335064825959307699942901371388175803730776535155360337587882970213068159370406823508253923098216119725621831748764808014786493418503870476252485035247438256853152801628139638743157439437461343790127625006021170408613464255855766778032438776023285788138651927598387194669825807007039406071352127061391576697109590896023962783518298954809900453105037887504163731125707924387763865982804316476956691659783531851320678087314049329856190466203078970326148262142716383169144981102587294109570022563935301362820886537262076601213437831947267193068833102313281807911784459190345474515617684124564663055108528995240559192459369079989231975881344729380828420761152455046879117663899401606393417707255381006915435412521786666463830194400873986415804858631759429221364451891636001852477886790587223072958959860415241362041373874072579805557903260860075289110632603243312938091617499038325538704739627454643927823892019323135246160876016814203132938962906409225478119777397170405158354042737987131509134296148271319398644393645095965014256647809834305887186132231475205732091713607100963158465598598682856729820484140679007933966526584279066979472910843923120678422979325163135358907538082663686114559972028255594760744362710918532388789390401653010551549199200449294103189305697768919018407413333138737894240694397055526743189365485549376825251491899033993533014412470289384905361787728685802979941519814994995577776063689404963927618702077747810896528481050028828890645107053724782409688431990043062547852148104993420320049671707487838443571527939215701439246260146154834974187221226755977356461979660270404682124056396038091002770015666389370876267999805534250661381706553718066301648834366611195466219143620083632513245400097984248753841093774990488216300041092444171570900522224611939815122785290623600425460685468550081547989841969291857716637081092868696291661502823048645997739398707288445977407898448900458731374473754433286285016090356853630899092748439162334662158765089578260837331186246986773252650983799144113187830434622947359485780921779725305697510263193234252461179093759344558263878275944486943850082794940429341345587432000662813178086107298024467482366219846870689329042524603933008891054546841312754563040770152575838766880330315425901724642806022037936635588477777809041104147210459069523659915322480802563750544528930001195027125092379078117276588964962328013246994471063488775357989615450869035912869932935085650340986353225471024454649103201859343254344077003969078762477274595319966329650666741204275374544415201726443824116511734030356503053991766883144737165761690869967841404436477433984905899415434527550380357110415317654730066219586248542666718697286710308730213210081372429267596854600931407804054972989772734940596145350122007292337280884268761798537641932758492212301544102315736996182780036104411212330765144420408776369733617070925113780529770303756014963362242410645177625004773337393283663186191261141906739819757768943807673065477610359998456954757480811835266049678369311882804805303577577881672735689061610015286775867263093338277194978908524270768289684023078075938780808750459037858163224861533513691000085247078273592191575405406052027438043761489972587027059502666105531694585963003211861811671488895500160870876311633761998696988894095165769871544393675658963616084700797203085370176368863264586355309646665877431567106485478191534752283998399206237330693234269285844922833807798837076784397722776659319890937503897974914849281600678191370884818020045689867664774280122353466324514567222863170658445174655453180492205923953066731869685844342025015311247535571606679012182797912179180087808589017022035854510880184018598952443093148208082837756521996655312815595363883433407129631309408510038505695633812688940609606657210740139679512740218632372594284218415606280041880109422653782689508735665793005310292018322598641302338637244918722634883116692421518073604411019273193632465019832726829616968439576430193045956997002276565112147576762322972468129975072922113600696494071821255548063697276711459332254691431788075949798813187997466410442497884131147827169018913899800280317127248614859885567344999044174536931413126813550848767070783939578188193962069202717615561410903793404064371703062749757817482248782430460703732556993930702089537333932067732402026889783437256615760824945237711830408294081873140025395083430029809586375346558419119756857750480934571595382692154369192775342386376817296759169040584626744472475060645521330766617157070807612204769074326926039679931667523625455930792878491819255955218098924189182164758872829639691270578553062617980284015051454107821631725919548241936796355566328605276225611969639436065675607221016865632340878569029016870219903553644951471447146796669756894845152942512789060979274152693651710779946229675748341099159173393417191643251876693646003708433324177632833279978680457251180322145533398688712793909650486054309269855860148063597893351943547951878905292473124444566534808608531420367136083027567685512701960559970353664840531209554557205513889661945004594365205518915977084784708875430269083708131516587055053380799871173767329274214696446585160220442174551504299465209728124571258888063737742103988680333581108671644936002010362719725163284439620567768339411321993710082170388462765449210631349421338843469329662383010879241182103393293640480419970632633225622531146027727271079978525415435761526214287309922307416086622774044485269537944108101771545118002928767311335165071859118299760368824830075682306146011139982483172561348233564098846726871635089828111920061597686988364001893620211407456368512443650900551679854859664901840601941518505611977521035004544060156285676028834152165451141841479168723666317062929447176535405552552591384462737987968630762734237278062199568384638082568828055192645412365466294173384177117637798610047825639175390917429702106477336678642714948744884895216876837134584765766210294129200238667452511418858807425607326080648458157062618721287061164197233251304791584575130986989757027195322377735023190145238577386340493707229908172345885357938237210213137694165695658997127037994272133280805145578772328100594763596894769192125359178495851517563713886888497258989944908917243091463225287596292957705677366629077857004772704382893646141177307369500605209037940193155008114024775425336434041002196285218702380650229975467129719048434659747598598941415181514912072665124518064489628953934909571468379121225188233106975161584217962661420360342471373681744549552673593678284211955562657741360756672236995984678721135634256481514148960006463467225980748338573412410198385037326143365690041460750686233261049866551913452924276368234612971814952066003125714726370888266437911150485517717302289668949843529786918996803475761156402064730934334121897893671860395971074993005054730336350606011544392126194490667409451235257012563058363761379587363503885294989875393769633736632351519968330432549893201768623090455963058611582457442083729753358031879561841137042127708595654126325211722134811644501360590408536685323340414175091185743560915231700793278912643861447069688559634343993115121798938929060072501162076678002637299882601672815807638834084888676510792292632825602753393331662710656564171932156569251937512602410877059722817352243465220143675908292248637083721968159771760594607972965900148131518030877705508801458804367848909572403457822239538340120869514168171058676220904752241217760569805117385069101340221775769526487108550125058094967582368301127685121162744752140444183620389598990096035432175067954734807826523109989253800144916844122313324169514686062263580737834909719748137640355557246803464852129895317117203308356946138305370026301721236051310997692581978355589492928425559848531383847136044186573844204534066231755781102808794688629143045146016262192243780086779004789399329065331883120416902353848371197891967658134184741842244243819153988686835840503174810931323674076735813610646846592592678550942519694175209379743579882460216560494199974339412647167253528328688819741629599621565670829528479688394914245864220108819866604978481613526093263649510696049683776826359012995883304034992530997060211774277385445267365255649286189577463983190029070339928146459982384669359918472157864489776756012626588093300501199577957237548131427635862791011641666637255950924126294186691617848881642307649734935203942317897436979072664662010479586850691002793359804482559118646654128787014773691549753822854665333109798698430560294624394796125098651765367166738881316541859707014291249195660310901504088239583597566289652686243170832728156224487230115881508459537160140350429934219258113843674543154482729469359283613100867754158068317183387280022358016792748877496208762742030417021656380934204163623609691435358699133099251642081196909755639953730264356829497786589005905829224304979690770726136411473872266096176270534103880819063029869522833337870619293819388010472700565074646605296971385102304283731592282481907344562640285878543132349070631739767851296841062344741645808753841164135437353407674826020590292014990969878772280162467381207076351088679894539563816611313744691568207262711860857415790108676940906790827351617760064843419750507516923160236175886221356098176920088731904129825113982328293795115510369502755477231927422108985975191397681401489652332057277740990263784183363512777430136294724096754772974076543799316351580322512232837042259794225693065990674030094709805208860665490214292549730709258141113037001184511903033248406875190924249973001126215348148690910342179405442285458095811034967626327231299329925581686513222237090058151446838242127097960601942687363332826416161324917132460747421772639388631957260781908509571124534433169825766371390638440763624833426994680633453486304112349812302661761849289230722799579908188751419835108004568762167205124581058219904143264753183642928707665935445965004430661607885015909786290786369488749887990564848841973530304622657352124337314219691883420600949235438187079690744666446380650563935975577224421734755449825498221915865960724221574403475487973448386664694505616116072042935232023010321477748668022361548307755494279056741670840241613305599927811294301140030829382965161749800741424199107787990956259189435624213904463194953048493606270865133822033067673493179290570906531093410032297800822765306762917235328950914289221059888234236217172002096876944889224731992315873477945510722349813160771325763549564352001202369830335502098268249615129822469487320455979111553773050451068724508351970497932086755784326827626733278880662461269666280613758389148473550822339508281033526401960346001642126958317800745291392798802757265573112000147870415265614829716792642854903137708431629189380515403229484840929541788934283107908435637618020963529606195877005689748755120412671749370036067041487959855012050155505175508299651781392512145514146142205133962002959385027097327883629427112531335873709857518811074377053632746995271472875999546052419505148101280718326770984537815428895081568205853412575490627710336638252637906252198203505254714496331437021777923052740406150767675493816623686148668086665854854688894985035901389582590805642852576234519829656747529774929546609121140090709386775562915655171288403791108550150044179719162361665563449433252954536567380277747926265124462516040542840669256901952859859431515751422179630611404716549171217751698860375912228100198722598281879096920271667108045777382177663475330112982856470244816455439895354067374867158325468022411299081504716089869854678019698719328826938450341481596896189228559131982735080837759612849542236382672421182781235818966262247380521935343266858411095421343552361998347483295359788145193343713716529433096687117502905052428904021147923991634833383158242631494289779521572941924210615671535379376433010942530107040313318893919547923421443191704737931090002676043252278930773594556506508297443067413836059494470726144539068544334856367133978875965705698122210321385362155719516424484390867013361202326435386913884872868630237223752464394085841992558886170753435567515590317874410681552949730639476175688955413039652598373145072013799009185268583469462153215803933617405803455238927458048013074381790400991073285442422307547704975260598233695104740701349756402062463989164718584477979818257081035566647593265788099879011745804148815714415082144007821297857840555580093079770030844714488722105888203342652880150211311643244228426026658479550000443800877051383163742761105828356508900199538108362021167558730388690219697020495819572486288781816200199915588093733070916934843113073106663804134300943462633545328022269347350325370474595841342668442488867466540168516127209916493075751844557374498411381656287447275412362664101820757555392461241618408809846393732576935362948163140575884096314529102942103819037910169323178376926274009847800448785326871542469462008679892778826113848002642028853463526384352275967944621928468650924438967426533668091176769436279335876055798490252513939739976970711859256735292161188292700302783547479611257634136078643921392975251881247040297241225450471568321645457588961927614453791137702116047642111598451422176365518877970845443875668270890165287035095058383793133797305736999114370063144324807853253589903164159211621157026070577324199643219910516092857302166295986136763316590160100161805350411990729798636511113547408225560657933773718001641641051632319579672109872686956583215629336131328698221522785953530579849603499251370685668239473214829178766661194741934224674357492893661175231273584669638164049836423591409334714744938013431940605648598557885773507187609940139938148751745227797396227387537329380758144312179610255388860346401134381706854406584061250733411375502988022078690066597880300881374151729740451166359600327879174750067473223830399001329089929626158453314551013660167565099655261267630319576605239377884494264895185830898197199352431364184417598884454815667221121816631749643547476283202173707172588262586479582146735771937004503375772212192890792468331967209785059114246681909935545493360351666677142405061957819202768318424550201398626697748446837431033808753887709630076014452124048974110921008409224617194144976759773575291436626995793325723746525139208487696991630940554627100095616183013673040020898925014476163064791671263120185208062837674494879040550243913224928065475408569020553010717492797139070863477516002032721702298134265636869844812889670501218111140006029533531918316774698015591102354634780776139207272473092731836863023129230156214626754054349823354469619800541042040415244397177707013190356988266325773436118205329019820615177914324636840689017816961655954596495160439100071514657060404753271167607061502714325302102919884422890142664996620021105899298968877474452266515998113205615831569960835005567943116336780529915431157397635262464186882944492819541061408778065939112396104140062111253716812319536133700175392582344464623386113903918892438009880420022198858743365607092011337060680096567585140573023445592123797278317900529803022509839760702645398518996802755745090563620975404261360614392095790874408942435709031284066243792714026837035728465716618687198789339303175304196906756403911386691101214654994921606959272763242599154105132443548909946694032484943048733577912414490958475580267236383645380415140342127842157469999999954228236003568972187268463126524717060704151987208652365369709111425299042239228372421364114544489101172753293069488112229853046024554171247759920858370915076057135257309431325651261234721836656052211725766633894154995169114030940369364500655606382467491021162187912661845042953777155525879749233894823366877470271787759762629949612283907965476075745546548208627787171465108026589120739442571176470544426960904273566096405574305356683415008081142727601760836312874587200841601865618943209161197956412455200390173116392943324282752942260521655651468823178146217146538483110018130624517361884899927333251751238268442290345873834645147365742233328546487354944566011992997936132160318547111219971985186523830504807111407641442224791793438233829417544823512063695836644290312794885041178642707876848820246770132166790253697720510025645544081662808982614394887845984547425328248190147556031510822871571961554579783254667169416007577024748178657793769475760137911050843017438255664674904400804849697513239988972525092560208643445938372740949309492761971324667323133297390170132383831137283943703361805178484036056787344122848023920465966785719392518144871865579185640078920965089271961062425260404204493501414226369512860568949044660657229072906324938461331231823876076453637838429045547779001929079896503207586996123409815785760686144671490971757434450095806144972014410531441222431590776824917816681320760614044306511281946836580440974850614297148128505365972755716827740796328140858921602448470699297884119777888218347250194753116554119688725044668316470747923633579441510014585866036649047226089476205392459941965522819358007646389995471025924034415513761815579543942048288891277468199889791217107030369147416551645965817248543305397787537171418559575316634374211228843574414708914075247595349594231069438979952230526402234188755566764754166115485437934150525652616084315751763455715840105921664420543119466854941242830854959178275568741929774188785899948481787042474899353417173697590730168088317956550671953288572296910510845484390383362965335010886260804073351065143771786062237437357370971507285312073240941013420471038867430958254207628443188821643687113981361369382262070825006529446350064055057678772286379245765642001968326376346809885954378347362556835405699154475250507129566062481272894286860310770985396774311117215072075305141075473639552116468423654820742343217379146348121922842477521454935185556767827424308620490331220654978646128608886313321325849652522691517402390718160932369060819742427761734971220028273212245649398301204249721185826162668718735598151856819101274635422598525776091622577239755526777460014814861831459505701281260112171783831778991606636012027389353652029825443029604855192692348508635757288665351782045124122484758719577431847153181836856737155062269546350851331842594315119126421810348571954159349366671807037137048309945812566717958984638573290124957033515326998581100850505266202970951335765664468131422770101047084790252627816185799132665931833491227090661040796594212056854340030584617919958430586212941343119083141983768564232484717346608470935576044958233958925753164292249241125567124474378553366370366308680553533748333523498661487324095161615248563322639633012746507946559071737050443096032563196144735937538507898859554399077871007717863798157838903886630574190539903296690918146595771314545033193806971099410971437993618899777751605042711704871268464820091595788360065810337407272137107084333809693665276060445254292121727487054864960285153567794453421670741144116554552589397791368035689557714622265992670895747338812397849770031073191813811632617001865414574446246838914540470173895730751135745917404031929058837245418163542904819268329867002411513091362405071688058527034506182562367968911046892623393958274670537633243447745670468502519975685959157761505972824831568462321774416758749418282993853283887683888744252385276079888105562349942214735536221912597374683861746282105008779627656731927975001593640849688612665730031769583961296279433895011391664653254388080763912530290911235606547352057971408830796058166126983506891599048377763921742674226373999460883398323547764689813980339777212489415241944806043693044947624270034476859677881932703751684479379377130739523334423342949417386960366785551249006500683011200163597654347268350307429243151414678763985277180436632419121763973644295109370758327152885945978002278947363610702402318773271112560622643640127705012019773393953944921487970897040614973592716126675228355894758056830859365526546036761579821054738939850353737914077787468982722173215291020146608328059759434977553176456244911601419983195069192257224492375751891013694502332045172409258351573824134272176821932750028528295694889393205349739399331475666368011966799092876014222673433496686160669069510736275092933219785784796161735322262074830314373351631910492891158227434339029927461621472708729880530653290338713564827428900967290070196860013108092466253784405836257384830542697989938553849673957684616391396776639891386642306315109863671057850312619757672977859620616868263757963899019751262729068636701169081612936501485864862312756247131532410310320724871177420174144042356173317861080256238378953035970791454553450212825217746372074166354186735243919862886322073314117365491968679882026179820534186292735040593014037783758383473633177903906209359463211001810328733006667896425860723615528631731587627215056772624310509749268606649243599451189987034961755417253823974943257026868807677340249001314515590265737847184722475782126344175332446068339218083845283667001765790223291510781956417751965226211374563524279388702231300242071252363448267873103544315762210754315206290549012387903213174050381302156642032224646936352984427769140140122137811392292085601504089126102351272644822718890495115661124552062401731152043884847249932907789139925928906961543557255632028485673640672346152935406805568582495554424815494087056608099217680420203828298320173914394534713505897207866304482451604757182784519589290571923077613085112153991821009518380499524724657460817810725976228453265741912976480180795032413714935072599498146801606487876565148447339569826698982303856324853768905744483126545623492499644579466247045922262876778050842357835265653721509624822624542696763979976606458366346530408011257692662324120306912075860775997061788292231223749203698328448046195295278183159832872959307095008344420045184438707344345690100100746872423618792844600052424434333804777960820997929764475337508033920006953687762657394400740900601829837214118876743703987787875178060679596351956615875082962700128330056989547438233512379311333920096664113334435581757091750452733429426037672892123583098656977567995612963303177466160665764192957104689608263818559626986810925510644602567687116128542533805419014869790618998869255555273511382896034946502156982166440640230312855586522512516416581490499787299148620685609891532606822786946332120558244644020325780049493724517487167731019832776420602439537567952036001331646722570059625883805836986640404161530299295175044251541859918826683288564528886533029131614244890926885515849363149888362508866884243037284941729331160703435395918921818175010455667410590933338651176212751324538046971267195988685763085043286142781206786014286305624905644943868182143969426529930014939243761269610267015385305073877754953639244856886512158662464677907278414685592374958107682238442504689363720307962625678410947057173928937334490891724068409780822543530643224140447316803571474997984474901535174622008068168430774144936292390508566198035878742207412327602468719598346372764517015801220316565082383465138159904407866430168241699990889938875773101109044011392007118540296589767656854151316099059699444080298611185388380832226813001507349614838576219056967704445661879441343878784897225196291205477297964699883301593036320634796266704995795352898078464695396445276346570707398340438860501259125819084608161506481543056394977312472204481669568772998761798549607428144260122375371162799937569578988955035352717385408902716342404889671267251373449410403842207658683329360258783341846013468181386162498819949742514498806797655920327385434861657579208070753418417382365912714972290891594694923025698832013104589716828172944228755247447053624671505668915129253193782146857956062118867978241361087828624105709585666056743370448717479626376612329468498680482096496046180403440714307388752193155284668831471654127461184278185187228760976387396459525014091539307643071955764555595272152019255513733816687332038386608731023888379302985173027010486600521214362651838577900026791317417606449667448410410359279370780124759611746466057530543293221719633778713199303906741879397328892132150050386006575451465017030643868145067051773279603108364957337530623678209284652015555440352031216056740762033036187811838281070237460602564890359284865963479529515090882595766757867451404582934913984948015481783110342904677848818275110880601141655471945215778950459624533023205691317428794958621291614785623183027174310362675941143006794781022442698008009596274536098866729333224250910971110976432455023058012317542438339541039034887519627598734283341759136555093555634059603799052859918399333407858376309880716105404592153935700504552546722619842225398446918977045692430642355154797214603822834562853313056387742522884255468957929632202560823048376841338143375735164165177776319237039896840402620198556633299755828774737484416132048683918074918179648598633878284321725610075588274142152927594259079481536079670012753571973618536593387861062058757496571010188404976262752730204175958450412867561035395903591029964292894665289533161214312725226867142001366743156790206208410648639856781777534070659678926745248366916832628511167769514278823149072785544420077514702135110045330200702487809026390749640423782762687476318001436613118147211518799227910162349991478843558502429419804695981607652910452382218747763019335717759644711674331011716436801493421884202562700126035926683720995966154678347821376036188396628473542716550042368483738529198670107356890261275019123536401255441252297642655852724595005676237217208033763413018330596602373662910526215717482531701156573009278867070579032469272471650533115893571385328405840457154001798650847865922466594946787183946977781915292069656006994905888259808741987999638523657301734126585264934899298899833907827203315954633462463388416119476346858273529849400839622815109483215680970813907464267515380236465328048880158012063353970271917978428426003595965881419353204055890805016402283996467140817854507627632731302785552514494217336899587836699671329732745051868484487490099461325672734410800009053762339775048298227347470070952316651123140851826399956215920904197898577207432150346201108734291488395814493728608470777295760070079360123418010276177469196151448046930774981074549083364813875055740566198538645537150300686487302460164125014205168180326556868471011629901501833187650627791463213160672810653863060745100510845981647238926656613931546502641984117399100057667563225366269090241439428535698941480261519895492095072555113186632089779990147537338266729333819314810017170047054526449200746603881529700850018660222485466478001050133913299006919436454761870986483375924870887804539101406547463612151290620035367241867462607868300817965679387349133742811474301691676197795750402234691764557803394378154913088514919543915211497700455032785780171718406351001520948086689405680431880816481249839388718359222912575628517239296998269877552000744754923919643154550898302435757966648516982013067144130829717770198878285133897423375725534235366697189081338281905615190613772426447701917280596309801192688272244369322229042748907813764210421299305648979277541218034148974965041432474910653506245643388121034494687530435172896023966596225898800910511565350493658064220532729835013829987786076257886247091149560524850664573189774127994431664159686890954433530706466655781207850808661574263298131593244222701339666972027355875791134969851877526146722331571679933715218816941294514415309414634676796169049828741455525242577124006695976117654117655028158874299065667768590020186315960645377830340879451568692065601789810839075956911495295136696872148726120337948287263542800401643541518558419074823390683892986898250454238873906121026684485170066333322910344409305512739574065432116114743023589543055873108756020252307127124082984939135936672082794140081398692696493043998251767877738255818043229001241665378199621160308370448647298077905460837798657972871236198134060253685996375030797081206721762365057724712586804487877006717633967420931291437444411582492884153996494422614143701512450217683599366317737650457438619581564838761275166550932071710847042645507702202655453160001866353252398963582600431660415050501110020202006200693616047591237981973341305570216264761970736429056332600570694840207881164360262310308869704114145423643089705398263389202236819162253868380754012756385167000460065627412716830640895613261337323590476496947268910602007098874678781262411883235475937848575105415613176492798099311261417175102229957202619117221970692569721902362620782210832782590364810668397565850468316260647467155712021590250557322638765135900983033367171024067039841775905230075268296042063635240972419941965672040883073760528812750046312175340697141848822183179576714600541958956561995766787526455552686308650874075165407048839206486197697668827683367418559808824241848239210986395127484431953347956822440599426479879883400485868651737306098589375131718687962777705827205564765305195821116247645252336521372239272524763801285795541490704850600323216270973572945008625298200467406932874168503229436429004881469890808862490935370644276678765745658483261488309561031088947021094294487463491417025593446563255497263632906781117449217325787401198053359280704720869391898445089186998493502552362100435306078272817605245282662036468342143324189156373403164814125993825748082488211769849078139982518301161652953007569183396304968194741602943117648041810454119945481654575651176194656679240546985903422959530570479266867667810063133786094289964291021284423077962579538349297484930099975897521557706476273957705634577313049023825721365519257182860206567814987545199036069335105707256243636916061492609052490981492659420583668824340001369173568430843981311406147116158271957127262293337609022473442978451720506444877286703289884115080578630211843156303054235896375823326662922081523762813015393142385883217508974456085646323502568747320322734742934558952449569422982331902080896357928020437586060638203709831118192119882451928990759837765049735277747242559831241480707187027535225557083736454312482592915315249592232336224223564255509343797121154145064990025728575491591582400204533392753342374257322665839833141537569810021556050286201548508267031704621323159051410258833016616341483642865203613199455024576417711395055775658406455757756350037654086812263688694168237709957607820340000589227480570470557841927234881169867812990530035495389271160806997290512453506929177230542989080728656566891774075344988636319211504062199775634098870083452366960295923695755868586712856447308048681083094746165537596115566597273014416745707719719226464297733387096637160352382892678964006358055059910712350912776468949233932805014978736786499315968472009129557617473061252948261133870732706953379336756395274426793712054732801418304569053680654139107293232225818372902680062231805390688271608514918678585137546400153545416153302186287841046441846896650092259104431486371333309265727033089686699108075005874430830129332639263691390011208341467004757627561449153660994477612839851972450570901111692575420445366431080591331071704259859588923934979015266523632284803307524504813308739125215934572488466946924356432513679263563958472253536925325438496819125399309418664471481612517159418084730476115442478077412205748436263435305188722411164849266442736549191510230327734522692612371264843172030370894397448099024333927360855001974351610750167666710559909391037558520410394303551650691934005821892282618462665522537480870192224932935630081698677610513613174574440111411074942312624746885041241538372810012775936002580907100465953464671861402200012858713034320817045028663581178301664004522076611768693499231993044397540043783877298220988696018751688254856046295928215051398677986768808998236115466125556991553706533609446779089302574151833918175157867788063825322476843693640617822735488516780879195847165604382732854307030624185986059290373704962192136350036397046218263789241304120501027555811750631268807321122186869137424612316137474571896076341562125259908788310258672006759230596125463546369780266728565798474256115104104912133505096302113701668055592267576554639053311267484246036492380526296097765582492811905467861242234864658829180163337730179484808729696734571299154172476694066690536250834635077868805697620879070194726075149891995720766901458017752867357406402069353598028083706183379218317429656551800787447906281220838128648556718015152703454933863992805634246649284018169165621563517924660900063146340763419933878565016334617580210131124332889117548323714794222483505301812712793675750098770019197088957529982094294411826273912093564093384330643020573261227568017773579300718014812691982375063809257099073023107610257949621497560823056130333191612552351958145274164617261044880527363371746287461187444019487295533889326184399026194461605013708451701230030623554746846665995986955220549294681983323658775405257272863714784460740390583909571055778342333136536063009835594760169448254295588557252184415078539142201507797191119091443136405972600960572733567681102531566839932197337359180797570578137960678594582109738121826779514813454611372232839587264079204616730504816245426691050155878525601338935770939962691773591126675383217166302414836104904415135779118941746559491380625213619439430105934008304800817098127015250101429408745906955477660092200190923399304646659230974836611770002370456385800910133310338230945234182476879398314044670936933592610729565958009920922772255010896194842477121493181438886628177395907673083037675164143495750623464909423231307385253812613927840705402821497462891245324651997635172646272096748961849537653291290796006222463351918032012837140311466810756644033286777149418168587642810105453300494418954766781352975059221166106250931616682420886867208460103180504266380170696621321071835383517172091694329392512040530289879466680431220853334090598406522016729239181481181050741583836026511304992308520235448126041074423862637969565459184400451636553433378462977054914877033385296034371721522427983532003632442999482287900854438883103254462598000356982998891242293998960456717438288196607588130955458782513783353789194578589245658127269496265507007800699276066729782738875432569532775091251869141808510859688581518692501012482244317724742827681948808228690402033613346695491421257941420101152478195826576629272371836522568423873666102428649504901222088426598072614728000394381371565118264775490945991236634275361670725815093642913288548495449259729987041834195871151765689061119241638502898357701514388306884352379731049429166770499616729468639125022432264979948572373097824767332215752035698318627068073787174462511517047263077595081976573315707753260506986125120476726599986526324381147567566694433418388601658126230181303439313481378710440265077319436899871421403327664558609792503718594263036790861750376913483390928089836301980154375757375975034232625970957013489247851580502813454611669436349594517177020930889412862493698077370503527907895312443148262119509049387862480047049295491489916204655803207160361930571972624870485820094192321090662981521475119585428464831102388605263523903880627940295128137223127521600189673171975133929430103578916901311898019501312588389587043005016410931940543520266603441940374622305917606927110154265917654949095400237112146465904285723902447925077575366211269765576334412320109985039842847203017589395564028488107900305580680882176382219022845147416257614618296554430454415614219280981150873564976591767621878376274044913213728467379554996998010586546636832365435995335341962785590931206175582940459372223246293375035906828860772683975055724487841831981493167470154187786089812770706805630247134678868706376829543819653672022837814344264933691526829139275873770359254653809798588651515568595279644288040208066608121608712645622865543175206587291592266851697113528845876011371490208227520715079813278900302773701526231951036300239731496508713584766887418386589514700071109777337780263794933811730222631844079485746832370210938801588073101744207330863784213509044322088751898734412383990258770372742231763411690651709437177014222326049470037576881390012172225232725230604242442171238666217600550768263674026102215025997768267363723475223520698304764386685074467400589093194911011671752021471539678643818362354631712197935614059292252603069881438442749627686878926214210455665271881227940848949697496277735997367458129919200632754298288856130114068159365737531276321280965049294841602735305582414071484334820704084680399788062459141095845100492751311327135647626439774308942527342829398571883049161563169453507409702497533799207717022297039821682083747945200170245634038959560727291490585280699022325907146816452223467768936312348598948767015141837587437264334648238383039670431742877474135941000150404561902742273928757359651809349273387335713225385242059471231225467611275600589460595184174676262390855213674381068953370389033582027513342140446852157143678278327770083098774498585416112349497249451974919686533304684495919221100211800147356975179234871117119480870406547991923382961132327814757542190302876276604955621612422647847804325663523906794196662084385332137665660151700222663612675101206409193858171419699969161090836827002766390639368055506621524717699936915154986556760896038691609436563881120647549070658911036351374233185312826314177146626322175613136400992840586643642419027092654714026709834717208622571553971990439353407981403240157657699466056120821336259560158934136667621355694360995826322456039474485376388341818180288706365763405253592954162225692742924542652327542723142255491488803121530985975573173345909250941532063434743736242667347360457700586170102641219706109208739075059626693892120213045025829108591269100543008410736085617472634631575209819602647210203534163825558451018078651497306848830087108551511594917230063065337280708993843662062441478032504119441661067003619474458986440701751264375233404647871000048006710747639949506176442316441137374293107535822993498419206235721991081018887525709361468614741522329809117688833962966533170829406099177602963380205995422147468621250173256174959679845882892084259709904986783286675082941888419345397879478174504778028501314561808029981688040931797594769965484430620792406238390663196210361182626824034256922130251324528476413211896136279770576171024230210826227060113418885497197730654221321537196292862268495791556655685077777554004055456984972083915215646630608648233194776648862800905582652914913854315021455991728597010690879918514205943904845508069580764615128854166065031731721245611090490030229058390309758404809263713751521996014046294605079258771652528556787117799410812096987084622325875975151420788461655940835760882641494857541615280568649419843693302988884609358975923879844261090918289023435662256703627675715057130279950816634394926773008273600049761576078876337307501864279962545388278772542750397570941891104956880918224596262474459355013243284819197542705869165572052394250748613287966547942070087007560200663060268378428123235775943269927529837776353840155174196877655284885558278147870492169532029381667333898875031457806809151412644776530955186703532364739211462912397819831972956456340297388727170009891345879899187733964212150965303033958938805545166434424977314452732855059906850378597189777570724726617027929088892877635013531978022289435317377444747126889966987095332846995692354958390793875384318426028666201075112364009079246158739390057850388333338475241124943902003956612290322194656167435784570271624796515696387327504787468609669083772351992267723179220486207030288193776148125501461414963499263264992274299722953168033242328096828715786231159553267962519067176648307232271231601001026250153270560322012083844666547191882648624027009844313220366376238940449253701645350297250776057859762043333673390139740918021449395038478775170182766950859948624790983267939043676399496035477370543024815667635735910264440843403587800554529881729083333786441772696506781392211525683317524460032967754132819915528283297942078066300961274387199727793486075556346972138810553731529854616483202160574975841104662058034043184564319087150655861358219587582392227140821929739089216664556642611229579236083510221559777265860182825346635502939835997078067609027379696753543003522063656422050801107756779054006946137521719044511887365643142995429272610394541209098015510812594862043201064592465160021241897518603230344971777194208617368427198524110093101097499436061196961525501432953124108767458661228134919376840240783942306543252795717032299138277798937081978167864476179737960699385933967947423102700563995025141106092287103713134235243530073394157861195919651266314757896021966751996329834073835921847343491348892263241294523260214409034587523995809039782040365822843683921501515941197888348751554279399803521805908750523861220979507400486753660339754756345183270224376337624923221664517318247457054342640237371677999781990648909085407094295772388095023209115595668294588649630398738524725334268228194859290252488812506866215556562686142285052441489555098036485842634441282771368079415858608863365468853836965482737668098589324082224334071637136762695211265273733416071233874449741774031653775427110971838269052577124907562150832994565936349051134811064436721703686881361422569490209819138185864213022941541426084694403951500654402609121422113685516719441755758348684555231305517515349916655621083358156572982590687779684126456838302291339177849662148603748639729800309983366375035734177633295740391454888045214374254360596445425458824753402912867273413001046893590602073781355923672101665713032375480867155385249412030659543189217221674939017203817768337857886404868519445913270050553155159856981055691395506379099736398369162945452161693603742753067707778868202704504943406777873386142136485235590412300789855398084338816074790653828598577572284497186307536971587147497394643755554707114507317061861050877461675326780560920367183941126566179274937634092887803230329689514389489658614242343900659598998521178258740028120655145808499661712165467663851890989849982034802971047121681625809093084405002675469137907279027039858393946650704540393630001331683387639332744249038938635746575105232213933893571816381226550104949636239721974235329821427404480396408291843241476945581688399751234360279196039337960189559211893653828206004584134920148604606295335992882800681336310443621869664798005611468116239227097407438088147245505650680515701163924247535315827367217199315595216269869056776892691568267348631927556836958321890715506398774663085331865757367933877198849794145684592508975718523337343965240391764273278429663169787156811987222245813688114136025819038874711974840058679281488991517601507900235791400135922970851281143890892230943437967038225845906832479357034670209821489814673255501854076575776203494834185708991706896167188910084149019852685912730712272765772859315273189352996978918439786252788405685444351197605455564122145484778182460350571545349380680758344822108476578566259237084852331834450255324921840896142239318215476448933042447520243493764924327142647748357655369645413046807112349916442611080439583738081405980203180597179857540817039751609542502228453604592780379010866088225442789922560954178175030722031385216905939979805085689947946947794293081518711899970728192429116154480468450927474722259479550466031773244449618366930503554496729006678386537318985876396398005989443823137845310118789162495399106615545821783731810361270979521613228561615228471075553679047833093529664280467378922202576625793318854551165713396051616404742381925220478381611141073335159699845354906582056787686444147131511090176473712372419173166560471236870980143489138249783771775406233673454757654215806560772803145013501224532665888068404218185461296420135931804881517820315331663090449305691701760440295795140633290886849319023665730907158485042367553368735191511584557100618528653988849329616205863284493167407092329307431824190970270233316922644311987902934118035449409919719820964809038033936712043361697942234419755356765203467736652258731175428100936091922339965636155506104760262493820988242431470348333048942337969181999250123421096912151099770434068311666524660782831232987091067250941380813408780132630129024932179685416752624889522097345883961825700360116023198144041913841907040685426157289849680527861942364260947965509975612092055077793356772161875576703801033220607209181584269536962801491145936336956625117002251189048216451701827736094888740253849991315011425145645850462376350870610061123463920639183968638019993590527604505943705111649161042626558433200735049075088843226364474916814503966792678035794136493001899693845955382776892541889783319990366832801364081235741916140101548740446931230318025514147214635063867922543444505205445239829152138013465692610581537990570275320897070787921534706965899606874685796400751646261931061196585323290615682076965753147925069226626730331719924550027360399180864226703440242867525825659432329951877391724903227319470497810117686906224720739106804787567514264049083924392680824193431206762305852094661140481749802047947465483930317277264533507060657226033355155090185968441089984707532755042973371145446871680111211214544098528142547712952077140184103888257840452449796718926468193342428795828453533468099706639759381552930707013357358506435529659921902287648481086078248616384953588514269333331173425002355510434061459488188236103271783431748097380462008455416889524514355485526699301424268952707569734770568339887532253998522976559639794360502330849879033025370970887054224137155364160033711988252608506079495616689028633257370681539927815822986938566563710237951777917560366109078555717188584892782894482190577339589914818606941318074629559998743467155624271942362633933943315085779677115013116325915089111456539971911180366327161105105074017648418146255349637750095219481012339211627341228340313871105521055641388583504374106527620842591567096546389626024256883065347659176685893088047175294401640639299994657714909208383426029582409236747409016457895487920742714913882132820935546700316356335689274376918854292329548021375060703632266928607838795807089087395821516857052562413276435038009624002108730515186126248632455784309527083785964574758659338965267030542390851858350302784634013178931241944039320829659844252276948628645213677374284480219598472324809604202548401291723758436098687841652331892072736343115958946605878110599228496931729695402663741020886410034859357291468836803127517688590486443830363536360153857509326822323887736461868246069996393186839952289670807349987072676927041673116802660507750691212487978738871667905889138935404556624996322238805543192364149670537019981198777685401007864859194666584966249676349699690634445716810172457019012217326456125112503081488578056798181578461084581431342364445049401390202623591900293802968614962636819100207744776109624640205778467865529504486682577809634946125846657924907363930626251215095499128577928958789132213730824297995161268467766067003091921759630847735703193005170231360533108274129660245921390893628281329364270751387461542524407919452087172063458066296062402661851132783143809681219745601790639700295620478404673146236831269420785257490954577322107836009735190645915667694946415261568472140412267733297890783161762849368689911287614136950027117065291950513273919984150579126420275731104981362608384779871235442803916945911557516457511925646359564283063487796338253795404675511614408294872085970658522576082482397249759526918368346407996515925965838004958117689023083802664130345085032242081560168895094250971342045971438353012464529192467119117794494970425469037813772100374627012950992381608085299098883654604508205863791850535777119252945148641989733576521727456771936780828220816804733003884985243446722957402992772237492141576425475073463882053603622164150265773868326247327967859016415973743387317301877411905460615593576444088718810961240463646426877679191465525650736698527979620914461115885640456324485276457076524962927341131680412924216652605342493250147723438872327981778837776959447770617733349760090525928043827854988160702388635755757561839889133919207996086550880347737610573850311467880881857157373846139124216089167051662350825621116122490786317087720255932353998750941093241180749535703281510081641373619790047861467873964521034440035631499648854361962571075216885528448333799375720574419515675966707577725707286418016423883128730700461308170007434522879247916486926102730361466102908234941561531848775554181411790848315321770205266137121591645549429554182339584154350658223714134379595453733255127885793695559418494178330704215201222263207411829312128135050902820639664108996517500359634573249518666167992513265291399634196594391538797058971471104642149126635349797647265115036294520255803642296444138794397799835415371592806646783608452399232804337852921427478145903245724691166266564585219125881602766026197465894141271235894936550857145263103850771673983986250163326196657482440288709117918190299619225243149768670480185263845933314913251259902714785255763706738796448234964705106604268012097317734829325961949270117449630417757579221059222905437553170397336775058729810501381028200909395132442781545962537511740609130567211472058152575093651888023122660212630448512082567387521062643515546787093372301194964711553324474892657074797153966065620459790590088742067591662367454668788677110662928363715452363040520238584137626631624502391862544240003316866247679807063201909489884344554953385087661825831631795678257509159435623908943080838846113022638722879706440121129622417729519043693069490183295072794183580846503924570971332496254272943881131849629962693159287402120132079558577844258569630034852983941487886949186320427214286423773170304330998767394192131573131250499544108169268935154682626020110735305015992007156912484861947811174041385487888092935000543469458796722669613472181117213988960275410962159535048400185550842741230125966944196618781991969421875569065789601020803011380957286806841672847991433065794704839240395183267090089792919123699771133401918029413613081610947740382150467550407589980303248669403739090340154709139206931239209569466804663992927751787815517281280109637296234681200380553529590975305512653365085825424165960645382146423775771671875297700999892513578100053349549496545048398434271217011981606429463004460818224661182270310608736406297286105160940689802892412257447025836612876762736852134275002426087115538918294172579166190026655242502268155710192225358093495743852900956240874048121082915941927144220937492112060398436953672403137686709459634476268980238810460640213255623102511415108560750589917652732800004890587733146828464148367356111108343116339504315913815474828754437429400763807244067813356416336798890373357642934705542430918594036573280917137751372859176609457624630697501886190260381428665972854706976303227364102851543148255172403175615900312325984677767452591764846771786775382774887270870676803810181284454881893282846558280474815617025114803572717225812163125898687913239759959583913214568549960142289317155804062350713379819784806132508318951553007873031116234242679094231430993254848649879829962765688963354028440571081527660661853901050632794611754535534730779584488694922720222275589916398928275438673867108292492483454662724011145564332752838066027435813108144330903713957380829665859504910349079967901851135487300538917866728249194807393631205364883218006369142224804100667609637626475914914306578526047637452608519018409767811899880402700896285940551383902363867251237434684067683629226073120901135545031325992703202512186532478736822619437448616671858815823351422438874752911433566784109772942574121702913397873407378565066529255664579707765697440183211555520686838449096371950684281576705051349339630199562554145376302242670916423150446074489547306750611839396212087950978382098065329428865952113129163583149996315765612679616964684341016007706935160819712525957087291952968957305738715017857977004743691540821066948323761694669089430686277803314211785215911217528904480447754963668627143237127607972293017320023269031767027599725079999959154767386213114200348184797200019528900958474513641536223334317376649271015052816552854809950565948569094058101075948874495107748102459687213765210784785777573729897915077763751905272206457169828974849826675991736335084133311128957124130867923774651402976364439432739863845685481525384555397517323369192292729231891950793933354689165639814466064295272189877383601431124791261421612919484434172788464937460010767501087596999121699287605466513936212308278697310496647955260392772609110869254801906945902817258280652483804956764190563006900604197248234030965140543838823338104088429708941504136157453201590089421909676896216172845069040645233034630098670098215392195964336276829045489865749492127094517948159414774793142558611059051495786989909180535624621436963860481327353449422387931011498878504677876636065703719893179587158023781628098983164108654777318659860380061628734532386385017003077538866669854235003785711065303226653995650807142564697710596381270686719432169237381985187679831399427362980385337859715426792559994074472989936540924011229490527673637006255704856103715849795809936624714372913085441530147331245009319483823714359522794244004803133164338935116944077055933280574995963496742721772446228495700754503258384602192213086616957105793830029166996526578559569487725039837920200638605257662540444310196204515015135319661217629489888951993705813713742133004636889612725114087276150228450959557839618729001069013778582318961940939123616344592665617721879179211095141361513147709165405957245387078602013392904673467957346912722777895042760433366708702638948532623307414074824450509317559182033046047733430561262579639432581811760273549615265867507651822945263697262160381282025186256075079436146968140763691970260157627009872838219133099550062687699796589856936485249996349717946557886420797667796124319696894572640560819988070996637159442469075445964947725592201618322768337686580468845732052571577258170769125854950805590583212926186510134937407605173246500317910094532661308688399879440971285880455417627807220144579022980257088223660203850345213734525464351808493824207481668491108921160514258181260556902794060581808175093165626233277864981177602839019931791167370913649059890774405249335509293278268531302336655918180600799397292370396985337178155425245970306789365509558150861636214518199418648199501070596878094300817093832737555118197019457269914060024596706903018716953108175179089462700710915429622026419857163941948999266689759369501762379915364330554834863900262663090074919378074092598452516810300628302021848862554024272046125214074843294940643987870262120524753421194896782548299029600560847961939081843222893675233491503414555441695250485653940678064043366334992097810997305172880496405830139358388718727780475484789930829577937575864889766952021394885354716116162157849360620016199386731578325656881928694164375935665292999812820089282059602629606839728625639248594563794846335151935766038956773421917475299938412221724983067902224223607792262451598078331590550917867705026898874679894665634816133855191676423121405615494757442047461985902778346276233202650535629829422393165964499544810492239087705306744112718132977634085233736161159517159004181955118928624253936560176974364473519998052888523256005516983400610164568421791277978494022582486402028023789837150171609167409208330014627660526250673374800152442786063041842996973391963716941648721380338440637919527032848383126754416770532701009659097410690054192233514795426551751435431618210932446938921142621486579520608472136203373315998215525962606420436447540197166153853324954843258891185506231440094171294917006731479716652476262458550935707326476605364192070545947919747852365916288462649494227463791889512512286347622658331334346720708931560361015569316280400607735219896163489820936637709077313059333800576691223897167973546344668894443583628592592138312498731440397467515110767720904512657183879030621015944792958984434679605792340298662544910463523921035450940292306285530929880489149422764503787834110114821785302503748637854784403423710018902469143823873413252050589416011887960598002155903850896347973834597598341059920522065431935180251373918421075915665744249254583799762937369689973387389818484654365181395547549674391178911222432630627036185320495456958452468465483409020598670076054667961771158458926333831979779732684294348370982419458906396052406965679026144350843705501668869231045830491616618086434943683547086273491480798731360153520318420352176031836333402692315942596579686487990655371979039869595068353372242657984587429614747151811592437891650433043235852670696815187051953934027342032167649864666683125042394966798896484700466045149255030039637400451115313647422245311949544595369009934540589516007674509423422069051034459883463196951560816572637583205019700798812825361390586952730154265788369382763801290909374824446948312236723429907049090801955753248019113815340405633641341515453973605095486778927910426968194162073249064026751784774042566335067803158813203496108983338762392935000381795761714208378572568040444939544290909778370980938593251082140275978259392173280678905309383203217802779611929613562012935083212211365174305019429484666722675680227549192291899588992837300018866650477028861315264253688743677157685177864873088611983415903415256206944129754390379680401542238736193084473097000276190934311717752307192763332094499001661187837382180727797612515935797590640052778598743473731687262043013967913011321384409508513410214279271277249832313167326379994667173858762780087348128344428208016098520526641597559470794132292299518134294965223435312490266229668265718599974451839985788702724310041241800612716159515724639579827520979160500462365648199345670007991016026869265507161181539912239726456756948540950501065187602002905428613904439197258497250733061772824742248317944160509432282412041649519000891826577840745851285456487550824536393155506355016354484788227929361004727756606276430695134918243540303981707492421084466165055337853072724650880759641241844708709148965271497823041545520895114032694129315073400388503742403139957415253281864689840556981666126603206816589204309887039258833955145442440587228363783881793331303000193953852521094291582305615849558402231522566195494864404009977259634075217967885788815827789776283488149583357074138130907242485531405731154222847166451306763188335081222959285537736248245276404684224367796638926332787248741620217251567162138799036515883316087454378724507861207885687550464580699882484862833344960095648663423624192457856252376757863485389680378357686189696636374445274525913571111456522636383462412307703030073390219045405326625104160254469343859524104601037505202679369524232125622224494217647434450082104903482505464267030205637790449256890298417514743966326789348569861460860980135883180101798188097889086833315114568788087625679076719452622700952318908598242870411560691440455183395694110097718862272618112849704311889031480608067890528921859953668989740332687765364249473888806054864347836641984890762810377338592777657108214479332961459255227143351796380288246460559811301316791781300122134055053072892133459672396146028019594028636673780918432216021471775847444661441333172147189077280905373269348611003898860205361077478123922825776845877543673056560872255365377343084643956046949501229605050608020671222533559244844159448264703983423035615189909633714403341941792962498325652953760185390789239287483349123879846027490479330943700074145624195286315513063110500905889511508650184315039148852837532878537993390852216672757250009265263665455914288411565557821476042978334600428712554248332419237447833856171125759565253212797351266360912972910907868286866150972931112797493724991124710552515610186689571799331785534891956781375920896027473863597908477821985358996370828084632158725646546136007174158627227003800846268794224304811820013162901508455757545464264068343664516602153803497290803488206450928290619971944822492883085977024726037086970926806869098793671325573375933458011577585226120019585202046402295677039424686124431352197106659649892502663021304570300379511688759990638731699925585207707640696615575085706598570532602965885956860302438920455072304597234617203220217313269423643734256548380970045756225612623098658233446084203717981580749048642511340989247236707087723534583103007442790037135871006740370888642839277473866867394725546676309269563310372160843332076197279405166757471666929644266134796939295614461904865268172338563811442082600930241507967153446101849424595274326844163612663277184995042513141617698338625872338259403219032735954847596105859044848809545139364113570433366756903028466972908920226581122621036828702695948868136438779325379574701899718456729998567986348934791698842652206151780545433185586524694603291693558028543442634400330382997359051604965305136093772377925991904164123934607041172257803791874977524727937106944021444749288349876386063856661770810900287514905301821925592171513837599753850196462042184789514456087628179208064545090646513576425077360735726811454193131125470532258507155641196124545291918796731379269971419614420500704252324318339433609325977120032102463414705260504222805863253245459010612390604682439608588445122973246155040851525839168465147878258278787171240353289826033839459299414540871401232270766158847376914398688120361181118236297292323493987185584111553922889854634423356203574510093138076414054937138285480859032749428627710626133657252137826205330535137501629894929719236394004717938467510778362032739558048559788523854282483762985295076109152614351241928062915155862099886923169840749765553546175521014481073355223289840560353282047315364994915844181520450973150445871571038978513533973200411072983169833161215564019769503264022726784232744005857885589031050213145826233133665948579589321873216946988455251900124382678706224445704332443649361324769035330068247178298736328908698390052655274776043064961229516488727841960210907560089581662341515252395630095684075997993809538506937595005236233538535614075216899113203416610285235862093683747361642866136724769418632721060104178349612964678159089655957004560227732435845528436763188331388748599838427213110013803535925331258256692789277183187007339418860738826179859965410732062430653887357782533147981499960850367576741835942165995059545300633964721529594563410308038138105719974575011710059573165708223069854064076042641706793127896156468446447290720337482980818979131112607031966487195276181869504404552310487282791365625308304870780515773668949313548095722309351259668587302777238147482782058099023164809980475373564944538852127901649925465044771842860648091402273267527600377184173274250982614433742234353018209245771614703355942085742060153103302914771466411813847068379316811162100331505655823510721011363724478597891441066597406911277652949510652919129818949560381215128703639353996360398311918189542840631419835052147741476290057297481814087408329051782708343984131668453035139467071892938448793846236936235243606593290218331948052580573048502708891571794201406757999962497943787875818103874930184743891979787489126773739581406818496489219328620277772317111193051563245338372659286738026396420840575217139425292911918746614649976920863970876075008407695135535585853734131039030094875140187981930822533394258814460145018079585977042250033687083107850024486822156753633556644178426629128416325063597621158157408141207604049578301508129809974722204147569763615276229297934519129885974513651921846335372643556655908528675742244402935205036515922103074741812755729965281632225891638760786674961173905776490795283821473254965376434882542659840874645018479066943220461688480696791697747158405444510977474958588519123584294520754593757153675382830756235257338045767535496055414403156894835530278282510207009292909951187263491699816148350787145623022001768047067861721072885012088951315179361623346547921940926980536841978150312073109316752373613917190373668798209900029196166066894685441448417508415709623827307938532545465140918679716679353430569786921605100608186926101468787632498607767916801719184777850371747629730504265263613641261277891964889342333880099990810257435195250162010283918409682160764629040501884410687897595666927280292160592440449933333558590289480304937720018158332223748535157613404634091220926987777571193327839206985480581881193770732644281458990802784675971903667959033721409096628945414436661942324235132587787909528949702354218886444597304868469112616488055424160909734003104875605867068466504048018223064418733697276994041101343675831942510424943441302973211193504896817518147894078443974839860611860724070856327965769281553882367117800717776858289999393183468871914187979753351040356399370609197416494982762761584939000267791996446843532271211323837351775272107879203311738831442586486011781640369616979672869441666101744501907132044814175058017040445908995962286426518029881146331052283274360018435771076279855126289469621635749588864396342130178929797442969093299000938524954694159185405211679958169271446520176465191344020516473503515127771096392882426477007906281386933515898218585220283472555012211023324593313402379146278528637133221752634567807707677834458147737709804020164386143332313472470789804467243385942785805456586759063353582571550710705389733670652091074530487109494820903756304629459662133313171653084415054267451655673576669828880824801225908407049597304575882536763261763094129854260565469412250834201211554679621796355718522413059943144746379281723688968655000209235499940799544629235636893263656173552484759413922503600576134335547339415249202484451306636311629692253799269917498118851562034081905070199485639069050026294081711876866946007417986903783615948753407296529995510666082387333172248605995148202089883804189378654544146737591380267721776901433062477709057527245027179031141788711473087704098398665701511531379213117653706957812400337098452607637144322180429997724058048196068604757373216412512500814440178505848894333701498852630449124751292034019432663764472762462766229960906056608922037717398863686816713895704276176838500935640346064533918093465073085453876965234053616411073291432557202714491830008389234526967468441173650403640346011918706671868964768503015429966953019977730727779336590779880211151196210457528849391016200135336160773666025808564769469443572539289540415744207064759202338324146278421500631082529823887441464283407775892815953441112069433852940764465381458450364528383997713549957897374905397289579752783032288674407087675777345732186895745544504515657906528819862948475788950967303146222462819307850802770217066367539374749088840028501572996610292670871291147379712095846303130656092095669117909055226597930486868220208621373750689789003900030376496255018664498134082552958180607714437167423115390905889080041339767846919934314097745932599737476157157478947554344793157764236500652038497196027989229652688032783171375276318886880934014356098419986189395666652913985572296303113335010378687182531786529669266935357717319757695309684087456872302519644483037276822183741149376090326776201074819365156261206517089227008705651107479830359929058410584372489256134506565905247750260144807684320338875424615908506518228351902111840910482202626215246579138745602734405961235136254367886949430746719714167431577843875328272261211532104783451722919886689095524675089667662090203922693021841225487390603015128413968614951927496659406353506276956037332224668348019951276036452578624399830788735944682928261397725066080356820065914922216870740500409053288613941980845531534958637954965672029525314332025232461996184348898824907781198113465198448134575394495193466881432019250425831962395599540766933272314809922246995875805811122624336908898418981021394758090618260370985417345930566548468882870753594751555657411868933731835070230325314137121282219496874588452665448616102840406041271438933091745471043991391366854334254401830825542757308866481057037387563308223402215582274351891370274029453694955404204786517409061935622733571948378630555957890478133773236046768104502255957931326267331863419195026803809130331086440487980012976327895191803544521264684047076841713153638164446272036549597799304250008618114139114160013367292417455005399170704929807228309391020240167522919242084449784230112287120759602160158705845615508175365635882396008588553433089342919353658030700142897755934305534940211983579386228001352530012900453621013306555060215735595012363230462986559885225739678677763508637806921004378090475269122533342253330483656682892632396655647665090238332337944943717955127715063852181330422879427278525307502314670678626597506414136706040792235293089443403051075612106953778354213910422592451343438304959323259836339087031974803392986042032097726700380100737179003765832978623513348916543382937093535646998667035164438716826329870550616612387825484093591063578184540615925924230999098603900702743043293198140660507677937837747631610346173661450409597974462485954643867826349565822924195848109907673661867843072235698832855743200853967567327522943424513439448994637157152045819825756263742806344270573617339842689342372830431872251568100329005058049483825618455536528355577348342373762711752841896791025453769718001078022775414227413484860095801832296437637691360036816951829055032311012188966846221783425024803126734339536939811094331804099094867619486923065466211041360765854322228067411218492522266900099192547691701983301493798819511986510042836184680316517413125852094194927221224771912095551665179677002065664893734653093058249759446126468199956818911049873486752564495094243906159787559937471448671511848576214159995597163195946545869142457246024012039157337096710774908180153408655621496572290957261519223064451718248736061469971417123938323890927523956912291103691599331273095326572668800034386962260284332441910603453732950188409345151990377925722330359749402775352844096653377432365429008936570703257612677842028644925977911098994345059654877138908966065223216092858049298694490832304691280269332450608822754681414322204202963620334082454521577159819789659278229871144791731836989693512099678560079891102248760419515542723648265170184919574761246321935216759810389615752611732630590620078781445218534850029000797056970023717619957877459651260325275502507808854838600767454177795965389592913420266982130172278962063710861946383212271590171090556508709579899686304975953957969661711133308856815942329471031125654971887951588403154515892902202929525755205388336864481230658749095401690307707494201679833751001198130604292956431327202534908434557399996264739535671588902131808516622814422232977664415648439063256364494942532148925163128972649915144736434714224253849691306997710658672321115732511745422934756808780400294286686694310388544808837123890590827289123205426351503805219922857597263187470469571167291527371013573101362899629847873316312936510826557509422028013241661119351833585382531403760499874375421283881341230346482977876337488988718587192356194550769885680768336669463302460917951509264022777862419569000620180963022877131949218512685853278256384157112972923921581540628853459699065097492111253780632222903953237829860295695882782010438399389126126693262935022731382581003305784379947187196638416186638563898624761079340084104631761274867439830159859473586886071882830482301109301081692479559857322028853034630149731280991015259174224020515125497371233093766256889502163320321378319528094992631820456228830948141096592041208079601606595825242584278868019067142167586609012439719592438767232736515586526502653218218197839832600755564053754662030063739191459634517653207689646472824113666494577511394546953083460788760805741072932363783404639668062554569597796555275917542078824215585470878086544011750507573357413923727105563813998416616591439346030927589214364596544084868985393795723603409479272791895207476601808437354919098513756178247264813691441858625678333201477976781870470754231011159395554782482877674080677303181053384490690359076452435036572012841372643384783263631423412530980921899518106534150740421274217587814696520416610226743773928859092521409485564431709082414731362185901978309138373282721216434937975332042574371536981234795953170846188399735649995178683354869600780509390851209241399615158146316928166225925962306666137376506993045492855682076105167061737186762856398953331498430042162679981555397548813335281330783891980947161694265942630572488350140909805305034485841186985523982655235889823560799594395839518038241470337967904562833234991401002346947202445372526593664958604239366908363124493936809132846329426709398533795350804529478474948511833540159388058876185389437966149915475700647628893333695192017020763653484832513725495762634603568345273038532740928077407792769565598176765110327848714244631102199374482346595088616640386966965323069542354044953836061583266804086125985503756949770563631021744976203033065586291100289720695854739471506581204192851957805318516273940301701771610776063044836506169115648587407789794597669692787547393244458699280839843527079981326964801884571241543129710295413680130388859174288251125232373006274886171574466116464125379278788516891321155432058563533774870306080668705277787113784869882694323675004062645563824904048867001963460765222209143924445944217975114604403753431403153160210583912964231741499342259359051344352634920988482535643347099824000613881375077700570174834684635282330842167389662751870187913753051791092034213632227449116352792790231381023876802013399475270617172733594940727893650924264652806933340256179001490524607904922594571660695205390818090485286245870780393818968843877673403422466573226377929194265281384037404243784050214714089685643795098734170870873013020869633779703756275584060239188554838864174051091620944833656349916206770225018651153816653899011198253555407994871252679863808422601177180293805390470201797784864683896548609456486116408230603567585802638929761225020846543708569462334350570126834258312110392323726977207584433213527035688634435087251572162027024357697411886405210197682932089305740320506783623333160896426531766531205362132155164082748403482589171692426646021560194014114103634006254450068447333297752236305595326643763220346048640787823708877636182153820054421588254180993614240132436911771554122041050537618970544450213948111360099016263933115570249027355054354024847754163260267356543798291096060973362887420895034399053423374360609615854865775015466206018068766129545874353511216269626104260501710214351566475687161077708035924743710710699980888560770870117465930535378631902644867434566591003770642583169439973816481296754382364900009419870056981937780992255444081762007154344172792919159868862733528892498957756825758592500805355850524820624954177022586313671034872878275834326916313592516900501820878871612989459629532969427996658290073203995883056902370602888193928682138220274532264494376680217894990339276206856249948382330046230006910261032606922100216947960697036148272225402303415519882936248412401573699192934955693092446706102015352249770565307599990233485340555443945362543517528893896126560459616062660978908820659647090781059262461904864746668601845346371291413856443858250424717839817510494896791433945101820911250423700004688619704843687646601761743016127220143749356916290184983045975329104486098507963979247865603605334804062280039943767587460828654337314814294728421440438449184004792777898609815956852320880080544574140661855378699842853062776495617272955721095103227446699196148343490577445876060725054851682325310560327370477267270280687794755160837018973882361009298088459061844761818262330974091814587119068700085937022019561612046587785316603360178350389913668906218524666000295283408587167976008439570869209333835024077880602094291741762634422546582248510528084655262112476415362065175081016837337727224203107644101229861466025325526154366852559498339206042870105415346905214578146128983965857158388117195857958448557495952570278122364754111528516048012077217453395728585970885123039437985514516557249591267993361825302929420202906801840841476416496561614015387990122013872071151527917967946611410591880026563749520146653103853514216435881254678147364672328015027661540347270744930637088479603990237710891596587346920590463596812745270120862750790476460308604970804091239417358322449619679145090471495325637689346670260765214889508625904975772881091578612185878476741448376584939589426758422469573553277764210599653043450433061166462632922847517776161372403652691222650857184388359820744440860515810643787723908576979920064451946806596736492720150060020633457075497232650223377633180289750073683233591223237992645729987535711706913957937756812504251741293137842373623125162906268153895170127252095744944517633127500511150410180892048948108066106775177711759943801029833833250593383329875664740200172129636432655411980574652747153633415404349403201136566165931961637688662151739897186630999257025337080423465525537519131243763625505074306567817334034114813745053650926862704314306619473125992920268237042201532624911870625515435647793050728286481225545301490184822888433687050550748216890006184755425177693921512548754985527630334054029293562274746179679398225369449410238074463616623035943377727961314033818725215987370783328292641121495784552916659135857728545165007286852460901740656471099008981311990006467182982676274806774602536192144687196673888543060560073155324154649578140273639447386429603915856288488370351803899349644744217478515624311299603610114476234814007874847685100808452133896865862189625593494292859708222424535816500790704224819029499246288192922694232487098783812325845715808293978004026920032834388752124043941492667832696465149820589856909671253865863095578042908452535269544059592980087587001511125478334132914636439541482119625343862205446859113411629839537855487615437221926822785049635808172402689950664580566645388590076377743423758624535465055957421252516398732198314151279696770894214997643136259930158051956509892739850481076578931719571397809973235207596587106219939788987761017455914893824024053957996536648718795860238099176563140225390914840182583186012010336710213848848081178582502484302712000439469019910656529140650423672243745416852158290832721911383257171027210615338498593307099358062567005210772734655198435509454149452267528021170586856250010107332298493400922261410792825965895867034477148819905651796247838207082937448570660209841676165144871495328830725762347197277276018294786534471236081458107320713620398279119200936403990748729941361917631171103728382462901542313124780312127521215884851223341713718647370800558970772709043379292675547142891262970926172167080463709164340119079300235250943776498095154307190854574424713466169897017796789845212030030966632577217744880994933815692294009976822233851496712264622095111748212313376491031152209768597494176268452662807074891279003758300339936725860538233286108239864443881661026054177800463123426721166209236586764196149624363650855932146433214216138607545769016670695339810660820729764804571846289971315546434700536509750052652710562999832121290950330650548508101931248718845368468491269310309253146511360904242824023516761594087139667241223547296971707862123441565532849816412449361077010799241952656006369493077050763881711066960531998162387425732981981181032540635485322502833090686370333968814169254085618346641864440628305397349956698212005015150210634725184854807237831423190624427574142098069060621463550576850385931320701799634388324607904407620846251690583219513722492650866625577268319867751962943967268982057982711280835572707549529924549213221152571612943656453602186776897114521039844774477169686079250682196723420805325317156610805258652329192356618256914025040173666548753338402301873278346773876240889759459668657272509997644441439942340591266372712869941318036951843709313506568014651330041796022756892580063203449262984890611224932186874247194223739063605004186806705165339889051438583697325902794011371114753496885508978367194880076630910371515934729834407747341880315273317778743284507337991741773566217780324720769228933693133892088611464453321239251529039622467291264568444029651373442275625653374360238254599569475615173926630509777541746026181502917825511668352948283461868881457100519687516133696070386987109137744928508499539299700512260321217617800369401772700692052643744648147905826647186435656818047956730848945338574690350305858864985587049245188515401697422099548552920414858400931680658769493849512611090369235016572565976244713981923546980912280322709869101710223383001891851978638594695670667364077709222539070385352486698070258310874495199957188598393208819986033356895892382678674502872004905304274061787681172505596810254761682389916060242884437494579480527082277872755509037232985126843628087772979993274847079465484782499245344026670804995089887948091545515560858445985527906347317102514180346980958324126927721680574471926304696336687639449858973227322939924214740190019377818737543116101439534309815279799313859901196794770954282817578017413118197137316907320722720233806376813578313997696095131922638572285861978359166030911558455140673373004547187573334983015578419883351745586905088851568828275911450432150100834009029468281380253068090934870751188014558911492906734551848727734104635738939116281372247452134661592427832160053082049038538651863291769098363458475133834420350672824268950531800722288463761794539772634799402922057451878379189470669593879872748210784084666838937697992324874483249897704164348752976630448685690802289671255799167605245234927017467479200159588339307639770209875953105619036447949884078123077138506489310473782423342789593536227874179076798982102255191140114121856272526521028856247196084930662114178084935164096501053233672053791775246530782162204992126419488666333861955924463556719835815435805729113435684587922812953521715774660804151788264381868125960197936756647532791025552665874035182947073614612122754863635007446619794691142727918268133371439100813377008412864535639234047266288855542910102509433470292333652066034519255995926549798003013850659177648894293844118045193483435469489242070060893065463709411218247485501731907167100696994015057249890948178265028034134095798759828744756352482103306668882026208269213428870127891344135161422052967641656979293327738999564714709768941311049857013427510173813375554269524706065264678641053812123794136685855590169830315621810219520548755643815343534181128328576694095120335913725569471132073955465494228025089813485407830078397190730147082755037541108097157498874737486406451238149311162600990883179116784293750054640648491275595532379180123501351712241170422991975349234815304340585782719790102840939764177226042830829661025163566599303967702888693910602602066269426149123275729048059934011852698736381956360462223218003555218572345986244345098997080511550086455396026735434946365133234090771494010879714978665493361153809210488703828211124155836203731613339239473426725147084398389166344877921094599448238768210352850782612975576631074054300880351517501071198354235731867450628621316177530223654706053700562620242096854250400077277774458520282572193276846457323223381628378007490495111555387403832080410451132252437016344788341019834320940057628590715725616225504148220691822616649836582509018570619383476676799591917963683021681946299451287187675295193338814904813202932548656056696537142256736413595191297993924912986168044767403155523319591657634455001385750571681649371850012443738605765432398177036428157940750758346906926704359861312156034789830798405792895717614293544203692900046811863443365808682568583709269577447972445641634634089781863043508098789859195524652467071252374737876299674601963009649629671034483893328103961673102638053844674268107512635172941953244325990780874649769625332249359078454651526240961369052437146624607341664640477441190801787295232451343342028519803214041601720498515237114764101354381384723423148111406465327988830140468458499672187077756147620569133167172844380289354264085182595257508985602961505374889959264473307419092940515588727375894089302325723075909082016749425888171615374569239753822496622800087527014697457527535481804681050770874136996225160550955677992166127054303947223870698955583908033466307877805335109928956375052090296931750994359466207348140710151711793642160732457510962763228193188381589876416887738829041267026272777282723799369015703453692762347926457017204792916509399372426130893728456750446419014374568063255824604432184793461433179958056038359794427631724287236565475007179114560640351995954876397887480385402549515843927015882947183497578829942262410019350848144124433762190090080772851170333335715832654046704696567393630582601417192487479979066612267236330225794274330985211398655693518098567404368200464148477410456104865087789468620159528002948311280788747593134757924054962805122012100113534754015957624055720415527216608601183138906133530415875722555673205047096615195726990351199900581239748603335773195905156306068011640728839042673691367465343462266554010846160069095116444236914155539748047147908526085203051525201463505038736007240608731404723535206758630234530327217581732580330426904788000719613452968567575784207625875744520266240737132190572425066975627892188333836677986977633421385458588054415413570660102515297927501147822710279762882376234665930132274981288974127710453684705299238100340835344172079245519847141159741313240402786746450371189950141278315314244322507677059971490597500683054977003693706432578526274847407825920643017382940950087623980859795801138494964318964354133097574346657302181335309609661916870601556937343335687002040234165376815707586117608582739555972810463558905673325988158051433819390085139000697028274469106565196993944855771314662063890699674977167375452267188393875296789766896671691669478390996734009267033216820370199887134750954571719742775773262151858067179488880733917152846916565411702338435594513959560495041035761424554807555733784068105224665892030194526421305947708639034708715977714029179845371404312093443502429565437395843672550600887838143964162818839707043911569690485808944493840922209822878714228780491400654791463460728167828551868323136461640479478205772882415682334172505575114494849973285414607622154028241446461097297590714906704205467868247400565987369298672614264407698293583591360052179342717368609780446494319423738192477928628463088551461061263464357547525088237483806399860047697674427312504624027065056755869837980453288392666703506988204450234547563945818879389514554447174752463531563378113039418341823095959685329057948778368205858126591927835535988431764333035965720163618064876183456633247304828758045607828534595221904678874284807398363529775873749299112137560750731172098713920953261045384830881353145537488459069763532831306463533289240219610301740330490586002716968272756418889431690006170474887450430183593662727285565618094836552417228609415856724319580813646522468860340447680059094648519408322665006560877160877518743820172823035967137114725857344247453642925751373745795166905460683438634182596011852726383412192817419937907741892140010209221573184553384860326389249326266779658429724439022749640445505730469345039521095690247371945513039193022077919251702167211419566452624720311383820458876722769120126287408363931940504827147531323213500657670667598568895968777317702783602228663211739592379859078050525525007580568578537319636908929039158390455099972926555562982236159430541729883629086406995627330137064032744804811481332003985120356468592063790389944331474590637736946654653900051367315496223060344472127908902349487229621891977078362786765631254769863691340488017211784190201727747444816657563734741388504972723046508948122332182793267317374335556606957978616155946795471510855863363531373020224594862633344388927621666094558265317564985684253751697459205303103177287793170609311024202937931788112193856625361748772323121121491093869296128503385116092847303924050969499308335724980584648739161879931103977659514041211965216206362405170330299051413079454826835513668030909073925080218693286889870501156325745117359081921630823826598163001433992493282374272358805482957079779941075129936210081396716080051541314989785826820482114462220674812041947384014415232849904128400912336755326725314001881435743614810402710246276427852744068136526496671231374393046516459519031195132198960557606314584208132553687676247573693399970522797781513390199934795930577572886279558386075430984636639406670290578077430477793870608747613347584198493209050889467800843069335561120232233223933635272030709601106829764821949283789826954966480239386789831987940384480898814306710322719916244672826384172570947100252823386171651232016617348972332536089748407029507180909904168326805932881711005928470307077361560573336646338200668169927792745689254321336777309197200555442309788873140026976542491562723212578053921620989715466006218218007853175635464691132740520318203302068020733125318654319835968245278246786324705489480086979331851523268541309760661975976058923698324627852095966324223640171950652335462822492708384483171738314184767136675339473586389794766703602918495474531799000094897648026524958803996402326343326743592596199424298193145588060633402939830134047157206556277553016514977288179247009493376148797480402815559255564083453437482607961212445916719320130553678156612710400118905842544413599601116342902835631174173820740152405311083333735969016624227263034146054826679452919517275957757807390522461387531617939059082053407917862385565641347908914637315513189661918811942213253938480559501952094126313965737231661072100718388094958607880975766542634971683403966236505004236341566315474374474694591442116790272781181854165803265066938771464347601637206842894796269313294449092756771400680567464367597434028189701485260725143543929251249431006270555406943911287940795286430950239801253235798950441447904900475001664598853707201404467210963320492213789854258949225862294421069210681610420454793227897943762036582580623061298070012351041104691420473668862190104864932630731704243905309644794681386573803619793662354422483866538477457145826439806238168319519242449484475473790719980151711846873323760939894550420550753442560662138187720202454406318896599727825212769079304595112021729402741596305830551599752656426410090439284585511442796459624345645783109956075212341346268719235500592507848382711204012561933245104968831950414529970568243524233478153116525363037701471975009830200815746117110490931575653443810377510400696490830137706849659299201298185458978556732741969061023977479093995283062213382038384305266889705492854548213916322024487162961864663554875264418521119540230263497358694061836599231396006312899991485718001482352945135073319996085614398924356991724431662318656138627855688254456917263122622879376565807758001026179418967967312279227544563378096460793903046665618951434617210608281521155921777530151530423237458192413116031416828034972198874733915506697132514249605415672760962343265803399701699929614197679224979952124758979625981606024000038227171689839367427018072072224886395783862697716566697137281574249968550428735280699741512856525042942771995471939243144255354887308197499099559859191809289594799279107164797311903812437804553293291696942790422109620282499779195021306238343497441910775301498561875731104413677556779538060407077618675478224781794165283460477193584682367946686985450052515619339360111366997858667326829148931637034503587390025360569619304374556673775887901733103207778488276365860215082768287400609796697222220159784031720951863144415103137227786359872959436187847948505588628586957654430163469605947853752468153861203489728076334504992740728415292569101603964383864710373481013493955020707211642389472096446293980373463193411111939260161924416165527889708767973795281328566146966560950367638800250013032089398418810764962336190069573290962396337232203425853813144557859513359681904414690052446012509376230122401798574705356053509690607255217270849338615396734761136077952550126720623996516394293201114767601060520790934633868338644720395195326881390615774008337049014782732024432836134049091831513939950338128087076401994981338615786802480009095001359037363259826364640715012876039603151815249468813819546085293643669444694714107127834093236750288265887865413582985509446692523168042901788190803811985259189785497432503419504030278766042703579808941805388734694949681784653763145042922419892742418383412669757614031503763988598838872402830091841764912129467397633876649705174055359743111497787190639535679399303489676250072182099451496421890221083104448012130495331087382776399082384778914813498977204459583764322922845396071992479380988477837651368074056552990451279685823002448738727495370704674242192447322515482480082423459840997520526275817361550794842869399067127360813297780678364850308216503805881048054312077556237675641239207271368270394153694829851402360835594512381663141919250667078958331272918354783543389933092175865226040847351881629008784687455603485650706979074376222425551908718024283337923115073052692835915990079616973584073446232720174636955071555087596705548358075477967051803268743669095433477282969309197286210376302173025865881509947894690923119150955699858327089417462342970420061942823038289361041759043903451960017760961576594677511183280872086431364658872455394913467866738025289023358829751924116846659772318188256095502739338722203778156904185742804586806752492722776273331616812480055387851285047265052635598682916757387088762406590961299305856048188949435128521716233774987240008362840526579305936596015932291331403883184542464710485848355271457219843999327715807499989524304278078587293636077728589759443741684634140054311901038302638750291728159586738632056473482519677692128318099513660795714857768684561250069102316767284741538546363725515032121639907083372812979249772444542308366902328943182905324580300428858863331632417186925304200679143311118467586888540341777888621261315381507606274435413496060615508909357021357473394363083793634594195167094239287608851747682598217986029265770169174729995515294450963936984895837770305221155721113403999192846901105466552235111475332046599279316385558282544889957395665568637038103422416499826295657070807905687800824995969211751668379085042681239536539473309992962283609613995513696087059035795913319046932567703998140367723193692084325865786314039866567816690053960458257489449154103407506894823370735891451320870697818442915357661803847617451241823087035078012953865253819272798238922757383966458594752845495306064240275385011810295158035890827307810197171088176471085890268243353255283850549414077812507992869953533143095893532464742578973741122366442982304520074767865453991153678438213458221459534962837846726096577362297547745723357952473450115752628588258640699488418905586974899983856231901328347453573999902614439482299277853323282920462978555213577131400219697731388024042821617030821527536553005409322941806699715128920800002810875670505946419871270839460767009768966173635666778810800385852663111982624019622962027955398013134865670407666151984293047584609949390727168426410859472288669128497102676669981524784295626061988747009972342462393449047836840625028347809402169836964613005973591134376368112533691377759497559173271714735610855588792089337686726267721419910800509847853040612671582124594119786107764100655338529738124247813103134997098937592083288092090657046268997807337745778492089149102786810864858294266023506246842356985383440979638039462185914072710766331849022170145643263077729897361670243040952311340965209103763361126210509327281825688617914650557273399857196178673922231057355346670785547333452750847863069295964454470373510187267240194486199332017348804781340352431639421405261425035680480360259153786318722068146430026542673926642376097569985186134282706979801832149911570298813910042120770959413572960576460496394452428246192984917473513641492562747728399769448764510564623657153025048956445414595820268133612061490565176680534182027260705064522044606575164832465159230883205973631448360125458417182350333021782601630307564559658693106184722256763150697583993528328524176148343445886725149343929649832057473352714654954021026500346799017159729846531187573313430090141625054789023481367507564690627028828986976124392018703855043393319814825416287336450038496222869827024709092752666224700177933624465013904557370469658402170575597553336146013025248872564489588692824232068634303826416357571014027884579629740296185891851500043616178950663105921037451615269095225362293257262002325980881645149179181587156010432686878861847548154071574371451198974115261791574110257704751788990386988337465969234680473535587078712892413256451891014537436861235463195916274051737381616705663943595268636051276463181624676279759351940303253090235025071285875193530476145101627133620997362418175600676883914331497055726832548996527823075699649773769845608015329852220004484976549336145465802995587356262467598846736754835906648037236618635780466881805495361165421829331494946916694159104028529375186435636102981427559242628451673418247784136660412603233127085623480883957551801959284551717576729353799557570868134108766328922581594250077557367518083925126481431295567159389016466665063032489157173128558030243103746091462439371694863765574246000385691554316300416017131487596485429575905952319110440676123465961438714939509495794929627280229839482368346306656835320303352637204708278816302983707857707504010046019578028729555733906554248789814252882788224054785177682904510725419810320362306673072974186689478277608331517374853248082341231689416450898876692994721454406034611686901930434607046934596797855728927188454071677069302649233496056001229073470606081665832109788049625841976991879264640666624658972243687738936938308125603852261503585048225210268636372709153545627849060825509369823755209609548675585284874568276660423574873231020127131816975031120505984496009721263644345686483455427267439870337374664146492582842389919484919464400086863564628316675863514279864854263314109941008050994049760950969817565325281820782844177461025026582888535658710342726842355129632532197374387505891256270803849350522278572244241391994758520761716538221094557962655560669938350931089274806014598538336685715277493053484998387461962411553355648496177942776374929692238541662612595267682692668212959537586025730787228913148182728249521028731083108821816781492380857813267363332235978028750023169603189777840013330966143269593952050240316703268985022215163632795296709004376883468599928570715179149273025660167935430727786022847912003800798073594156257492611642156008163329071192336805453162874104033706497459882930590421788621274650470375045456137191063785906372638662723004150370023796740242824275896089498421930781567097621893459386183511526428320699301646265599893155930745134022461465083228242844368091779174144647140069112159752072617475815601884263989992082848716914695999690616515000032459171409066431681569661079926387951807392937616900619878291238698948447274861715061440441497472139660767976994063706844407347054986865834805976814913625145283002317577829697064528287229953809557371053333035378065764053389789975857570845385739222959130924066688385267577514418548695130477405669510498468401639495012109385067050478649417601009301835785115298302760209252504699939437096561710189917112128088886451980479291495248682441845355686759725903236543947482053807149655223729569442518879868849723684618483282089221049213091477873623362180765641559485467667078101533100828333754263081242578466178483184116540751337265406180413031018850385915583127185271614637898574308285528445259641090114496648824519851282531985809194574311958160007620471250214206620149871404653324796109960245223437041312811221823186703666419734097518064913410635029124105556361027985915174465589396339554652151574320141471177986747237085420048505134216647885403213077643266814820200834349318290951753265188654237430051025121848279915177634038081930851680711531303337009899367493941898792651594320160706673010445125374528183543155737924802259366936511752110979250655542718718097361671054740034384098258591375715762447632197137716384755690538334966985954867135389460174948941319962315516744164897168939134597084390520807140381520297222993369631451736382873963720771319796182162341850415194221267779656694442325790725251435057848441869058394325628705212551179360417268080506638512815351421141423962079310612803839744663552064874995197999953264192557453196870497863307683372457879354181880046887103210755837258624982495920756625035228633877751984714538143393767476952226159439901052235673876908576024768185257037975402411631971733835879138290505548009833236024934272716310333435035128354281171497926779805925319551839340070155873388623860876772053138346042079175265103775249994329200128695587628603728291562218887966642461026311952660043639843506260382130513402328076067663984458668029355587023108115490255210050148578346570705356459950703216051806403906559264669461549603263176347604338815828309547907151339747112744117062802233623286309869483362432819335811099774563434653382855503655403087830281162529047815263972595543666917645483204461077556241323383565659509648333331343628940431231869921113557481740382832410060916509213864576855993371338570366219491593875436855285988024600556856527233464558342330950730613282505418102142656172811283640968738887254372637816364305015247211202897475835607516963817542073417958441558256284155061285591034913725915858787141245004511666569850572255621035732462475109033898268479604196188634006698962410838676848359588353916622381792067259166278816941775170332894337551413902304493937489158980925876508598335451433921177610086125442301378180132031600326674406623798921154929998333188082600638825395077184795141765084235963399691202096117731896668777384640193140437603124185856038314445312123411908539080979407343198122983774505807454474335186721258515913856537124599325938730032793192970106593780727010578647329507641651523215568825999649719728611425665742631147457275654588637470790419089320407174854575913416997488063291386757507762371954104679521900097303520936173089900553277311522392085407095018633392066889265500902542562682227159527039208754588270584994686241544231721226236942587607636259014084555591867045369284406036758942700738924515096069730176970325193363426768327193001800184607030889875163770748302173491189260623493246059941942944817545909831969665432303546920456731960367366002155394649510368426754388060832268708848743044678518231184597737291970339159970379563177933595195476710644795257191503756438266883450846730300500424581614738077859790037750995079539512092234430276152444746101243410746775300259650387633533964538248999635391657152583506858268568424998192326771494821486775626447865306382402272270889934703741194851635555140684981306457080085631628590856955413787364791943994136075825866983103988850644285455617100622340721451948882660080528179715900470207489440050634443827984607331241036695368390270337011232869971403263777186916326537523696571949244932443927200360850348167221800046595495707638250574805930058586532613671399431997092807759248117683226804261337040987127148217134339954114081177642312542360188014978060746475280745730590470099122115161627049271921713237647529303853191913059203880551916505095902061080540784496138226590328055770159213003172040199902405822441214857363613126031300727159947541632242978842279669282051435745108767727104430234406078670585579211863406814049465853315485499668480449459112354668057428263646386009243901507659544381711099494935594333413471612862721878431635372133337407174849530267008575566460074314010996867980330728523118523122847722473019547175001287437924971278781637446380885781936839916272101527629648534966872341457158733342888056195151201734242603420906792433027866846352038965804374357524821264080790035018789669164489589234931647402519530988837185937746753663739817534079939997898462396131755853446849344838224342220670470505737083081535577232501205256597901580779971776537417802546810536829057704522706483154140589692613022787354774787546618673551451196046979929264149411680330446611914887049716838434447285536061582008489221875365373179902186253417271264900209552147104462170419530368874165481042489846983028652319261227305682150440823278840519085148574737180565892651599960972884255744059024979809178244817455945550673182600028751934797969441351899650766923199408428199582342630358969115869379235137409231936629786299486785725387175247173167647006975812910542882567938174327160399747178771882422893253023001222684666170385014507247976842668147874821298126445475841701660171678063215787200568375002055126978364572503966723532334401791481823410789223183077463581458507485038828502432832421212359461588465517922841266396064884341583860125503973533919059164888157802047549312943885709776437555269989715209208194960231612013809581420031262860174966777291867696252047453061432020344224112889250218652455278614219437752138211749762076215431173684196933345550963560666202140753587419450092185250945081635622479475707724736330005288268033863674430667923591470527747866765639185603157162175141199368537236274319503314539681562885142990867855510963343181578194669125627672724746790995389360802633746181761087081675280657423959558868054572626006290189105557028703911516649736449229532258809664768119935221161704011237502862056114664384041742098385762447338498062448104764164741894697217234395237280750729159097488167420093363184939671870749062201913410076669394622174415183949841870891496081767994397620194773561644945694251534326314483169768672662308132871818441893989669230992544124438508643450357834003977340501750052258031347699133678668390304443791060979171612323469601842841576137729557296410446508189804100553957735983348278277356142504668254384412496373796209133604056196922969107965313181314149728897608876441498641661378825766199011823195082654409933107682346465060354311003788298111995237503842886873468391005712373580916776842139286034685399140330674010268222676516478171899498699880060337111603943021199048424868830521232517679200065545939548703074649538892174057626577418126694515928417347938381368135583861541646590534166712211377795083875645990778454715875617417123578444426521215570032866581953039393887676663402058821597944812347561802368865657784676143734370710625138869638721901791167837060003564884758007990243017719723700143889096110382524265482598847309877331024009542101210326657332758474834375771239474370527299142472345130442878304042741368370058608153684447486722823263060309907855591675506079335586755458510061222645496211745678729387257136242283259485590961280848728434876597786782444420167511785316852697777414872101747452557662221269798643054213441209391335084101623142581152909916810311259825010757121129380553093046270486175592600005515616952753981394904424346620074113620697740728365305386083791318169772149456783206470657262352856363325019988320492231657449494813355655621902543753849060663431598088153494615307421396007033024674848874777032036029261213759437109912513401842658129429759889310656815494055053090010451075295832392269006041734131218906040011081352176474085442849909215349920224047996524695269300677288249022068601197477280577578514299475427629412555021188825776198848703390267506949947648312478392009183696290289348669134599860170054892859259017374672207561371326527377824621217053391299697526211056613903341715302425495469165813024481455512324632647479231163489157816940798944603906871444180610933649094014107002912934955458057896303763046925073251819106090762117703676800112582877482742958703460945854299936549209295225185493959607251628750444969489840117814835613997508438834948752711893941894132837458748322958969340428984916382710378561273340747457834145603243147539419888060094644509728969963257007759130300659510495772055497679338674755232031528129942411469060743142571419646419345848071998442868560773268824845431320443899224643555353934001362174318535069661210337885969982091028982552933522119026343939943376981929266269910050410469666685232877685886102994070417070406130491189193683369888573871345422209871050918028466956441133576335966025854292484335637787513492402573135899590942977113904863046615950822439265810816763038035708754130802741040816260965589636555591380742289940686801096315960930143978608075236775740174366691531113366508694609905030408419981323726870188813212910421071480227281790786752560945848739419224969351318725907485207223320955917969141053496855069479651314487684004991991830347915493189720635792173243437393153033121265053220004623840091019654304421906251768461650900196758791853094888984670462784824244575475492767414762892259336280143964361824009300312085037304368424881099440818901857880421127160450674529455198763338882249824248480670901016124758638844361497138995253304796082885056230099075428790971091546073669100827177327059857661667019495731564101420172024977597414483495417218500555186885529694898428111114574253649945890577810868602212774822800301440740131482071635451771422114194511121470075289446290976543467354173409832244568191112685557472758931927515492654492980411611621071452670982740084831146769814811239757480241920732038264554712345196043818313775125638976556612745123408128266552280733057047345357315389505987704231957426784366280330929489043110284516001883899555131911788238388955400425382607372302501016953215445294463148437087441071356973286358481370568303232082310695106967804537963106654407488278516141125693234418358207445186426516173107207873343454322116590824011591666727793232192478109603664354703670964969866633764211556403418995494280510195021559439570571012518464416064713416496387514484514427323498273979541654397926356635448833237765682247699454019092549661607167823509659449664665006995904077033198562778770025093562975772375025208206429721110263000501575537534855241944824674756445080365008252816195797089242967452674373679373250331594963844171984423937666455079164126815285582105881692661541747279344866868859256338626727810493537718299512797286410801228274822093225915601436414713569895458511429720679572964297174909100073740985005837266680571178310369731196169776774531728360116076470396328968186591688263551981494537578705043728750108255076279677240469608065303242404500102000127723568783210068488537942203623822120949586509623525421714826524995497482030425437593722943594076656545933088731305327291859818732947998448913147229860869091012965860701144606280209706551541444465583414573076161787909872906479602224485526713899181145813553015293214522050721498536479664808743706944925201377211382892303087250948753607009585581355078695316523806954479676792393513992931832251077261025510842675046885659294956922543396642408781368473008011347476629075661597187651777300135818185897773565156991272225633657476979170294739962020922167986591917788877218162532440487589239862483851049080914667568051776962400568375411556124853808040489982209060472798711130024511047971451518286016875984877444933335591352183016494118710163841400501006324857050326471730093838833588329878491734519478540216577764462181418898729984075543714376109597415625492942766994545448077812732267843738723357529917288367595164850419132854935426249596168169111444821804047939916362233555699335916885632671964915718445518152315591347430892399439697112700817217401253068042490077977542412347531893546656276545398608895750527535339523762872635167311868100171432295123999688939879419528884639936852178450091522748562712100780937637805889845933008467741323027816644870306787885662770890102699947219757600539357247792095110112886201642498186984246616143233320372185354006111814389826859484640996383650972627949174788260797775823466219505948818274623147584299805675157537737828085835912767770846480375976259049839473356206579881814930568176122055691861047765144843323946287530297148518795947461688667239431271464238503173705130019889755056997984744808242513309651795537920838517418552885395548232196407196580289225276758350328264801240690777880552080506965774565725689503559491443543682711755699425470684913953616463264737055605477985110260404095341916249960168791805986002496186069003951334360556232130730510390841201991495823318830782856505476940560956271969523185029574297436725940681971960901146644314417392579884367064220743067633443948753014992331249116399090957801374403785381174706169443737807527430360700848507394513230749340443669459243379812322948399558712695541378323081959620193534662979051956245333453559124761236722306850592715458784094172705925644111957774251414967962131706833570193322177522022789761479233410129486450368779345625470494991674888689610758881633353383845948211187132903070144367872903412171598287888116186842389430200807038429985938805327669735503298031122155570919563565523388743837044390013181546607299666993714292533931924051202380446774427334411325590927621884288475138004756267352492818535727224955933315252237913287350426694838874412083370110791447405905453148036108938877049686805056584252639760771578557895322589247454666261068662729774658247432832006299563095211769643308628372359763505070220885673696356794992357837716171674354799446444996579819800523048807110591470595634919718739257495714043394445534707093271323426564370632699522719668505009616059761583278014631258204259146752619632285054846802103535946838321323568171104690490936627518917814646003913701115406875775161781181742806426848662004422028404363497066334837973600194917222339935755602573723649278055016304075653524525182184114269529498944398115998175108564482568418870436036751796689820234582494848504930135082426930455677693303631615548048677798952234307075355834065060794854906039384966117149067101059032955184781697432385020962276923378295588900371750174441798763722510842149415065647923635466356804413338751659580235933175500611541951413090948615953337136907909152850756754687269674801705578041946776124221722935735977850614774390925902242584863309301662769349110482341640843781318676213850845566340674685296810664155821312865507645796471041899665842991371042162889257143585597265074139897563006674407849860518092903373791109470484240854745009824425300735303016099015548870964433680902357910523796368984252879996692804160002517134075711339592068085610234708675231042177756046185463303833653252210675355122577917466987400724922280659437816398971234779473540822349989916490122591792210144908132631081118280294217244800787890938041780698135451531939452243631041835309126951111613986251527934845630405350491835267051709589699570530914236009340620831664347868896127719879727650558314347560473928900919822746308560774717023719841831696602040521698240758860129724455365392536460679052621841464322252848512288178707802065861275755476446350903624504181209980004633242831240209518911696614317215597761256469210166646271584426539013003248154274884317972326581118774504746626661577392466461007897111967648600021385814914437726245954601425209196939307159983640274161964791380962811867702392261030659066844906770059729862751156535454135558522346772526924666547577643804685529565354377025820982248149565012564906200601882889357124612136105023574411093178299820501004419454670840969588876118679122186247628456499720986952994176459362893903120163671325002978203624772004097210813375629550959727527502164443539098333504386964605641928759681418155783891161406855627178416663285758534163257925868557196541460776848188312695869687983187535893245013285067960300454298427943396071138810644216747147376982014305826392139643216548385056808578558985993169201246583342111520568852540365084097745756561304661874067095517551096571120075985003725204342075487393872730511910413259477028160397632775516831558656517474612670355122672600720654786885055993704303946372230043289318485629249820039559941597368752787645918394852204111126184830320526283355559346285772053892187885043583246431731125668899024521299507125961019614123363692713897141686103484864851466082408930475454246342819132841999733896564085961849604568675145887334561271812128294400710528719174469278902475882463169339436191046725385659964360852032914411437107162169841165424480930858862770276709200697421571709312661617215648272531535951538009662584493032050045822634017517178066613701803093816934933779338181887953114831993826234146062435721756501090545558797730653115562486596833592990261867633014553737190105329680209277103315711427772473555185119283224812872547180776215516018076904086212874436048184731749317257074513282863685901987916000720026811130385042653742496725336351981161475166375098906631390803540633552703377694766434897798051153961850850286895729060678946990054809488654822203933203959364137983845403265803663448953923332445770899286565883019324720273029956640076388891695902142133523095613335308733833704607480453743671956304643694721466045951583173786149097109419044163996155600827869676250274921659851187376718498946590208681359125351885235399613352572919443527404761843475400791427732541515354572146899334864727280684694211979941272679729526541533276753697461098391657929440393853172797972800360484372255494129312628881463974531164859942204428397877921695811106003893924506692441611097565532604116521254462155627873855096254049656668272126649083454664317451188939424438808217792036127449327432985502802629019897759426553784069086634970023932147625470290279956578192817641249098323506916762895981194232080675356678613875897153490515332829416058245520149148769684798359292241402932462724469022619956947093688880028355017879556812897508474890344230910747693672359218121351030581605255945025143682509710318398607489848291699177002738048806503855223583633253421749970671138083022289422793679281235019318395312981839285430413480496518908875957345074882075199546319029093405853145121961003181015360195177979315896461134606085930643060301314215053515261163661739432184004265770880405727818156050811345454778767455405059958296470350813792216368616682511642950849222170104779067086407433668013364750554259538600817905908428019451142671003905006184935534128521125079712090559622254217816235526734866367413971248615963158514130973801803157654460584781373800140513348139277912169291004864258750431614636289544973179035593501987272676000789996369578581257263916900143489560194363384558637391848989406206989261451623205419138481804564411660025335963240155072987815060389313096113928710512016620735631259779553371528493056512924412695870744374328922375168229273866843049960886492791647838185714548876443762059924125019020541379086361020182168013548234892267871932279602920160867116327174101536651441898227407631861558857633632269746675440599146450842848935364360715184004365980886758669877095130250521664872603353762672124898795049284321490930342617673219866886477389468388633232248665156329579980264366785548719380863491465160885980757297947883615879159232142621405340573273085443266162401511537679101282417870516109090941525417154569644881947653602667474439584009788387954765889855717232718506812710374621069422628756362502630478512244221217994581004213268797899295262167529428784825453521806860376548682825581713348772517603945650099394962420536535916253708942575127315444499784201321372259682997787540596073573259073737354921321699637795154465427130782047182813065102967659916317998761780552192385201038470442680616670855329156852677943257445288541626403533088733012527977617790685055915201429460279804002830628043297422147256233538000751353243710082499311116514879520319717019069247761302310463882063351373213464531879497500534507548536914777449153513628467714860135348546925762836123558222827668676703697211959613462124898549179617624255401062782081327289906653316779968420069461230395446706670687784506361394816818680754461068478744613349920111385935379748479005502131530463469125824938522459953195557081099966531268866171141279629998953410913591188302296100623259910382628486284133607723135371948512241106716965128223583076301585801258294988846761406538888585394957686933393732994847206409443647875573671222820512704757432151227672122356439567596121151372769658364528842920578744565646571506072879427661567848405624732992403107275591794562976372002467004093557546300223423645298810323972470130901355499075887720516190620977973349300558185338258961858204961689552855869495162905789051786240300375321035036496979198110940004807884965502494565341320370553008039094886587905947194313962046877154273310792144046461805444338769791671779306462284441750487076168535751295774738341460454844603900927609901009938285846484844257250746476379017235455271306730484458447265219133811190386521643325164366771905514976130594160937369542401010439416467862460853687685197014879215260403524099957443079623325086441786722646114454616448368836760826268869019691819940063275733788373057715469763510579067067801347170509920867393011935505119538736508563770704196929471892926502080350554646523081884264894177445909649192975250131374746961785421352617419097411060103604484723795345307151105020431818234657202748576375408866219859778945995075784780740168612410171107769059205506646457696381841857927679734018944058434098380990974345846038447794408891381912347594577578759630404838326034811111822977466160378294182616115542501280262919925263678580855731000898930590239780881264913309156585106886242396847925341741222379236884543677957062684860973311627891358302614823576334876280054891474205760775379644461718347636974769087370628539395296978428766718146226450899966699850099570447609480294296854355797964866806419451665344999720613281873903383353785463298950749595523916926083737172323033347010164342550576229148739659639194947295712047095172858735121934518921515899726194903423060785129759391075861870053659597949626614861483061946979621075445228166131205205194171257838947325842795292283942728439180485468085084761477864492808389339116720460157808291289867039866996865966477136425652436461828588750791525833713349530112922992305542986727332418743010176737250042514226773527385498923434442029745995331063478098274782853337199641844671482903107868591989624485937084801694240865923604286658202957284032495351375608926867417369645612920288558226593096203624995386959554990960929671544117583156137558160040682877993503473159288863944126584780334880890552399128600115475960210385378080921162151235636777505913836945981651571759351774035073929005280775709271843243725854296441473683103208603913099813966014057861936857485983112590680093409698642421066120940872524292299636760474754372218695357747713534250697667977573472558406402008138360547025515231330393381746374788801294159026386585056974904078546001389997596423939162990888392870805537154487521297673235829358612884113602495039800691057856009634877709447155444582360683817142752006737045080383514695152248617712082245554255012764531998125710898939096218428035267560055797539837441060139454178967405557792223192203171090151384563311938769710646164300042372559131815699038631157836162563033418062942651748446885612696536957501267511534143744347201725135005007533911458458408229450857404888659477084354772478489873982371928502609321876971985590258292624605074502272556483936379400559229237296601678367083803003940449975310709265310059800588187244410780842319956382595604350022457215710857121338172294824286474429117611210904658156304258677593970706276980897960137891476778687837916476538922239094377031198851731694967477746146690549288682339612146992663220410768569453428889093198325424270588501149475187168798346022877952040742019279389109288594629656884078837950919088345175572766523340835856693543837022254047827565871781385964300523301461193852490327184885775846393632357807517882123049034488434430140574474281311442611955686443291928722255723323212663359153494974690209609647696384142839567020761572961062906371070370649891810347331422554674063658036486440056859100948537542884204733094336634104012954325490603079260754160523648765326012208597325962684862905865438996407695592021900452320723918076418404330984619532185882896901602721027769065847302880972790393482967293642860341279759502786597576355121877054796617742839877331532910344216649652352484375052597151885228252976443462638879631895508084492492748413516028857263921343814016212438303547517829937413211129237128885594233975188197342682367514600588568962785851217813990004907337659471282401493026081168465118045404274177689175549408692454848837790937802985176201933333744316662645325841655076387352360313164717917034326673914559373532156852482259885087044001575916255283622164616284645776557199333582560787197426548917200955755546048812794208802241340977855694025248479409488874508254605807899702380532814201534617797547234703366476675805659570062540956422690319286246700660386230028591673642940963769466174460989367405314578551954462722354040627662703831665502469413498534133985294639721379444220582479908837123997335559246368890017961773693825388828974968300809974257245271583250461968186140756768686175228175502678548679816863385927126768920616412469678059259029450047579870570370821564984075520540975948563693210616391818797034980107277564228053571851465582741475084441717937241610767052415248280622538849845384818651964859448877516902528258498966937898518628948138520498456179740403160950205478493533631437791869256651494695207422212189085596092146586948673062399114444179678046377802748636663694076078545194868367740015043282952115530322793083372030353826397562648811141800810884398040219909023227030849303639266971137078023668852395130558824577788822132463980880565247440895437467458184285403608693699164430077878923185772411030445974859327124316557150569959594345694155884124100951130519325665309126700803401049590592345122063103941793912413049455922832913577476679740742955541500733708446105508993907083931217919414299168413591322715344341242582132385609843185793076619268828686198372023869779423824612601243939537835198023454729072187507485789344226521254769636418689969292842843984953022574648108632255475915692830911621305253988102280458321064462371122244621741295774623192357714471303772529616621334035156515214546839595441094377806405258945010759686270198274612712417649144526175457661623054134206822757765654659472929604266065072606665184400178058029238057885964724771223456860812636282851575793709084179495820368771317769183150816623064070239901437684801091831215767331755248795844871439800174658942367332886877513263495931350497437631070175107761022321944417318184198189481072617131092710455789131517162410997303593519849798995826794771843571190339684156527142153180324883334174974596608045546723068945615405905787206656588503664391630775615637399092902043658240566338148803717807526340701037123529503962218822337840087780161641099903567995702288641647262997846984511440556904809890309419734222473266857849539242317356244693715981767701469712542337867368645108197141677694104149809739744205954796055024809692141714415446479890644027507066582548339455198051946739527943269528201895595837435463438711388094322326473368655547923982918888663431854009979602318052040000273804540499685459367962067951513255629131037760520241393830010348734752101788423421843000224965652573656960727908630288145795652654961694814664059419911943096064523342979923156266109880448345419497207181829104539962979815269292416729309657026551182499443950508902095973213661134693343605210418632998437853429992636535343894909855507760918055728074321949832239343461945862168843216479520239875506787897644885616443252012336884484734406945149051689455631349596342705090846662515100350045750498927912008233559398108997422092941404406765159521060408570033850082829597172810273569593858945024085830884819746318932571513595312922535542173221202015625748208584163320685251579968271256515917526488928159009277493053354175345355763764405256114204295080650642945552731735695923835128978409690439460278928978847298162832532567105695400408358264069781499429162225458733589839036399720276224310286736944861669614191502320656257155220262810826458400702570180480186397371754602605762139799070734048707654259348972898123024745163644070278923545654654457011446126687457736655541446574587249777687306823916737425336003988121033726482219786122245482627181479136775815652185160964149529679778021030985697496233417175680992145638512535050655597649917989165368570808272237043659569694325097189746031089496725981738710400155110885987759860023025164916965609719935995226220841807333644947967675444432760001977906253716196653928248982671169561575281763864604254946839909570443412316007713273919484469103409694398800649958629049276878586875596309469867532917899886882443769374609219869878785844975328142974449044535019318283002207100155445057839538130595469390632320912208243658517864019626706312641347294737187066693745831443356496352722526548758401887628068898612084306363220852668140709909356443344440007904962998888809544229862888024742834293901028532285330942662721109226602845570022923364900022937815855072442668947484238416461993663124947164775843316298323012123479974230624574592782709522506920476222074647896566358664717326357678237649635651274304949333833112686479801309942090238228565607213550138649011954036699703392262657968282749444362980221256650437774737378620029197083671319747782269084093951105805584829919435965214961244966456578648103592599102770513740877847985526228850543542032481422867372191629591265552504176435116146062444795876730116065014876789064577284532913247831557799607303767366575877015472734723587245687455283092845971004871165432693260781826606512337548448724260954471987338696509018307822291352409545723315388677573408756886777954165327187327756144675735729169847946786011890713084273439896592132731469712979883322346178329368182089494981210552855845990091105503642008862969336043973745322194296286651282182442992256204202233591058580625677147621629522428788213247365088110967304989795572170391670306576626927387069935447263528018530143699437295003393822486909037784233866551423193700085479444307725287678517298091940928777733343438035613946906145797225008964064343429538796411243698345097025008571299825917675606980150165648022188131520438436112589552323073819088373406579253350854516096504777675586003756497103883937163248121633251983840293990747226780050295295356281919590924435492384015913776362582835316462030477460518912522156776069970669645752816977727076343917281680577358524661528332759134941059328735347743099617421045612474549930200216947384166421593566278399745232873380009693666210707963129318105725355769694089104369269293813348316087736929446553923230031578423401080680785605889924203549801555653615131600936137795614300472376982767415045952387970614691508767815331039430114624420828774119914976326617370664042462614051936615333828931656801481684385556243127676333419537724253626055893763629600348934046936090288207085022977661545540932216783014572263517069233602912468048312789143435881787375721723618589276484426319786563487419139279552596579443042595223532018564643096296726384377742715245432918882718689847222621031921944577083386669652948114190396015682164891605634292377820708900908504318073207546635517036476927220060964215102989026508007863559951734315148260361639348371325873393638384428396312540625315897379574928710912267935485887861705497420479108107451940007891628455216106130668007573212708948081009237135530142794237886208742706965240666785935236758416768449505761457099164408627963567407242583270826615938173816464245162490326936078661971454313650959534169173548290720628261965421125602623858574295205590062124000977236654972063913239598081232100150806636639080383510796025452047230097493344665398526476850579278694466561087969389599567570425860163159965188694305545722301833846702927527474797287234275195438874452011923629686305381305800330603096987409981214936619752738119787549117637805154188743461931990158098534623395554772046667614459949095534746613682975373306113455164743691132095772820296874468522224737345114029480536289161580506621127030567794445477936796541745375161149456755286588959875937171877366891782112465575250806708387384587580980519161341287462940700984070011956972993474090169852238731847320354963026023793697627812213984700900519126760377429069733165190396690278372193077678587998928516658214707733861975144832945833605971486043768608456909091401094005087524996167582894683485862777060975283916590703091297353016635414730273182065085379076306337138859771657335843275830453663519141078684519216850052089380789197695899544077190099085432800470161592186779575881717388900836589934768955435433985498604099234051774936514196685860967497541997397455486806684009171197450448652332308981994733767200478134107577791164307503718589928117450645523632937875996739011745251993861222960235499467995289861915868849276169394727111665970626264766508119936825681697939625094551864822420432270850117476765539652795232592643386603395840206097416874778445148712625015201419600661386126007078546768482175009145317644654967741598661617723343266940757642231666506037498412857962051656330051496792160870000235517150748366305830163096739887816930912577442509143142828747970195099311243291704579644862244663291558579874999806026048153113207873508528597756931872828514210534267939878912069079445079100343417291172285584387820984118705950923272529006991768659692562303497020346262195207364913281347840187907758793286869329793733416856026953649581444360105301961659298899806158527343200985215608886254451110128192183666692266025292014225134240407186377533612289571431597782431574567959408724995965631612879991748720588493283297822862417859503691906069684633241021057618323548540309084100807523794860783721798986633008815447907438293365290177121439282153593369189808567214145503215740808168361877603630607896814077139708626419902261761829077818429456856848778929449930421564022848988276103629849685264619365594879382691761739664823526253175880303472559496964828073792073748785140889979665611127136652873126262185918988875603110143237122621505307615389750216715313470805976348413921560840492229978895442478787712480879745387037182577000470556746259770435771948640049620629811989681507866455083566785377425984194029810899444558417604366601789790966125645472121647729078453879360191938528129823885173766916765457195582832201695727093804392850640963462272919918032442832274892868936672233269177646778563387777196387235021371134368170779707445764387752994923634301801664502561339902972326882128807590271345579115569165666956896128910397889080402539792088528789967854901100287175593703823836358518090182096739001307436011457410986365400543219874858457876193843440019261976882434704475722591438644093255925894426442578766102871699262757624799491690153261412921024784776618330307572929853167881919150038945318907117331387314728068821218145927470921162571985207156192687958273935324529418529675323058011721267012986033898961958909754769447138174322340934489422336715910951815371585119210258174815779912700878104042089579952220415946462171995603874561885736121842200059033591277704335254503201238754238285078238856782637661755373255370511412937836613975138512797813764603057505835641395917370975969147530374802353663106331736179859902140076793748821605775375936625006126355696830636611223098236635657088260394239561710762859928399203900056306766003129553452274782581647909581581434306130002782666318843303045019567002029033076385122256751884832723797450611252368940768248209528500150835370120259869031166856727375505844216071610935873521702049823687668557807519689369529882873518872388883080086478479440740718175325506184427623439487003024888034130601536390293026447121641145987399723468265361696209246536408863669147468999442310238297673112291730633338152074712223545633705446513246929053187928027158995463369669175609494340606068603633221148526496858755002928336982234793605445681980221812001686991199091088617322871638181365683904726107056744480517799023890720900190992499131400870684669332008085719792161610382015645886693227052986386815289479243873745956644073956734343232846575881361869433995381600536086123686134704031774485565588627603969866813954221582341830847475161836630928151787569052423825258546574419731793555491327651093984424955086658806262481818669441254022547103164164299636982215456480149397452932430300662962026382533511483459566743367474195924063764541555925467260079253894229972897951265859311879505235452381190482009163332402588016525883908569309676992202301819433022021533100484794608397291339874478668225659963755769528069528442882539136664614968910695953216221082472284504600737943279977346796819784380465687555846660399470233002814313166056472527259413998302948918405942719724674997942779510272907380053760660540033811574433245420581936442251822939631586011942414404549647491644615629863643449029798893272865480845140298869633655302432919303275075631435116254171719585734045145954518364948628497644471444993400026704300814611851697530054468161410185802774383163971217386598151236933473896833197014469651474586337366744050881498428515214074150217647236838729184885765761564673318419168072726669782535631892202197812498168554868856919988208955158252543018119564328594523675432210384811569283383043751585507033634248407417708891570643262243003941111183185092555177455764671410197555279772646643353095012266142891443041567577927840743462859134978388574310721858436949741120473010186722427244497341990687709210430294121746663489654379971339477522096890187315231360490997291560278777148780557645522234667289763936438058799741677882322823070883359676501775517323209206536636212365209667676997093529797173958801936040425174185511024369971728183375224593494910718293196748031291207490259440839076006422439213229991074454458412866203846031117867681557184287753882125439300047081133016505193250011344429710966639194465543446725408595411845873339237069937261474609501597730965748717215284340170245199414331483036419768382423063999471237070480406115346432563495735884099736304150534220785415021805547441309588169860047124356483649689926450156333261446796445123286758770266572504388687305586282723736638123788996972408364312030167810232045607817803049006992732598355897030632142512865050976782104961080481914662560850391956326939599351238556528487571934961705772434768820488367661206872282970020741744345828746857739836973348207801587183157259779550624211943617823674189366992824473195737215350657139865215057151663244323916562473197434602136883131981372073623396838516355851225737178812760002804590673797313884211328170107922601121621974290449916246507866295537471713219260580099812088532570665314507970197426902875283283744122145611626320299700157929927344363355122018018599903602030364911777608232764529697430825255427940584193978613678066873335716665399001129720013929947859109743149129218416056645807706410136912490267469339146011596527938071422083924932813473584266504293257083044559190473086739618773602186541460640765341300802114133959678519093565926889271764486549316337571355063145609764931795414246756474665330596175839750920554195343653990055009110171502700955884921654299551241274938692002649930644482940135285606646447091592975558829391848821564017720833915678101425824592909434192801847818984590844864815536415408851176370380910944464371915798323928279931006938778127972492398851165846495153013133888691197258519137093015959207149529099030218411946577235825290728880324321584878014079881509607802963749230600837044642861087670988834394736151081896895920578725338316485938807612633584488764397688075194025358141700646119942555260750426225711584067676551673602817719239058639408918017826401761793417594529859311228284024927146883734320053634983124222136778165342546373975047000725540714515060708657447953589366193744793046956564311083820367333958912303518337940926592050013746155963050400978402866382015852808288787156511197034443151694157132115591769492705266640643382901897364213380936485560835395430646433416507249903686929825405984519169850101828438095711768535374209231832872704428942228691201535246990830882646923225948017110259629408032665639143901344123313593997323703748211123091719554575136526421417092431563132032089570909593139225736989834108483629668378947841252343002634155980184867475449281567586466724370774613620494253068739289712067007711560988299039661048305953668447254672807189195385898725896653259915618363684972297738155281085780051184831253250717781489155077744435252449085416945218788256724641336801031191297578151410034715692961625201233408216957028448184432530231016898451097460565010849863204983907487115839332303876485629377403857830730079037537615028647365956563452407757485540726516852227324583892907723871448101885121900433335663877817136332006551899863126094242423654273084357046720408059935510422266554468544453495708418762686220891709616916754529747393241151439408023027526356793102361970444885594144983094174395598946630111315279465867468759097035650006827700308894005145230032758748741025483138926475187836671678058726520613672318183785528190187546291000514553915874453917783228971414403637712152869455593526551734180768065970457517670874375883017591668525278421922753704250731852041625136274323368946965769150168869190158262741778701486275016131106542517413750787783142073465541636231374227176960996983377080037602234553635183944111526338955957986925489139774915463660128020656573272854580577800295972625636848694602247292137775379854043573986117344719251144834192787449697348692869898285008836885771604326209854994917237395340265402233813627075096934356225290209155407394552517154023008376215429932055327684330899156185518658082093634868421664765896870979678435237337496930745654066541743885344192908981188151168068012015458017982622299448952002384711270359759067563716785123769672558682850956734446349069198022133965320387611342286471651648966404753948428604575593153558367787351565433467001193785028686141025229711790492361013603261365986255838590013415103023471937681457334060134731843444796584353349180915259293644031639947088230162785310979352171023348919745442538023532538247817724525167272187573201918554784601126460089250827368368679927542902257144328197983755750576844478841871893912324927644086471466279572469189384039955817801222811523691073008877222221501946255441388562687047447335645972983098942108035001240083396208546399924978348606689962931763117274383285729308757361906456453833134214565237272562079118336608857822275170568661085615604594672974870663042625509587727564787038576276291709240704349118847516183920725552464959081915025539957259567465864929681292786974835992762728424889972015748752483253988838977755637825711649087310487890360645546281452219477719119273470736896787989916795557564853055174997191798827913305603202667834030409360848099910312271755778465211037839575237336245569239036808556937620765190524924410870967310331051597698365180592188027533692641568299953284841506511281748371014668516929242108169376939135150361900935742099506426753670384250941232287027047231589185882878878667869967592224873020825326455017464723009435278717654477490887090315565113872044766741530847059180605941221874582141330268676492899255682426685172750301956363748827459760071764773746529426852966270953723808838674039190167216310221101991909736863581524330614178877140771201197153882632138950246659948668351139477659292433825679255353642776621166285973513495054037545163713321263616797818753776133831904435193341712669036786618727526548580957901770873570211110801046647254545173083887039748943376648535551007459352358817239748167682771513687797003372236236607489650548491767445330697438839319351717297652391708060182558609239038446762853303964615479621270639549427062123148240824055271038558021600100578924914767774205384489867329217023424193459444722457703128463949925723225610220369580221727892215143812064888377390219321323127006816449109600239390214158829165722584410585513788674645794472207415337580023120766917917823600289974655588594635728073266626574526112906253342509509107830090065828895248773081343401296346700290625800491423743099047249230644607614331546070871466029158134134277639542053778523036428181565894853754998718355441623813470864861809517312132263630837035768121812880523122141459554869354057052309471006415554434466219882206318511228228994257278317523096622573222798920090326490654619911687999201871508751610919729216138952580563616573996037288020128551677402418445398371352249571206675457321085590127926932903186180871251650427695507574796310148942950516322777526858820769515507830607112803832648142362481150543512592235004012170565995427083755655435575938701111546389941767435931162365161313375875715015096525526607410236873534061660392804825101531950386901116920152929189584183866960613651798765572801645144679571461236789097338479452486028039476536233527803011947047847258993191084227945067034438113248620118535069465292803274470169468685558799392745032223705388251633661612130877295012533449093223624873027724880334831205445831808464665240926606569195682973874154615206956608453016937935187628142181835503763143966181034687148043007343725135518641653532770748371223623867023547208096441869343966535420439548134690881039172806711065506662161141000445364685558480145096289772902818367300899488434131472928424595014821278706867529021015089322469552806771547801958276494433808763890332237421537984712620628468135166174280026201432834597520194191812107755188707507686929604986080664885786561452937667210306908930952993776087945718631505111984102087803185155417436383485089945681265645764703518833830094648489009821827985798488995703598321511049322936132192634425411373624237777634183127262915343910280966039448957917341298129403745624906812482444094691319075897892682948452882292870986971965588129612139375539115093663500457506347775732768105450225777818386072299850824829554131647973786562784289420517410839652275696061656321579048932991162710907770915076556515783794026265718180268872301293564926233756488194101651042136700818721176721242395721175919236704979496934355921342209352339457325721960524564100397071800593042672051846916555450074936537023885723626192343209281019321691851021133489255513899888246934850030381074711268970730856237378145903904883188634112943394424735017254796442873950949133359674655614065410464060493792763239996980386279708158628609661222642762475632583070936749735482328657689901075811157331613688750574725831875120473150458964232450603651638105384419035713202002593552273856449454904483061395781072471731280150707308283540265353799168157993625312075263558546243301834033285289027843829281711690803764735748816355556014320191386821894188346843497724682399883753254310551238060046690319381658228177185461288074970240653617162014654438848706502476114420794363541931786557794595498856991390437458704641124920123373360551297079545529964914386022349592255511489904658873861947172310797337902447994788718693393510037900908867643926537868044761952716272272151903784186026321722209632287100241852021269346913061714143008917684352623782972146212998200085493441336336865734534419905306179898203191115436023668234874129365870248295431640021471186548074455198112327151593357426016612948415128905890329731447955371660824307334326063479613377216967401596581948606569635071883057802263423963613548521158255246877592140454967376599740898424792029394153600844297409828069100608932532232445831783870868070747829707650299610566580253859672235615739486925280413855149368567369251169858504598821050389715238638630726970051790801831856078139571989713030874409874448600969321619983371020551318640756881307079812184657802819838242719309188818526231202795608296213565994551054173735961367484585299454058050526750899210010059984849043360440476179213783999801998750642101181961150692779157851279556742528179133333333251089079832162923179225785474329663098989046715864880600324467012523339529372963940711203150248963987555766844562714040847035740824942302238494500537576600019672764636902542414890255820872186660510903968068002185372826381317961089153677200167116377516983489881615074237615797802499260830811324370693702276230079115917710106116122694698207680268319500080849974701601063965810700942645047602321231972806864797686423892976843391872440886717568868352912861124172877111817739320086971466868016996862084121219029122160417772544960895392368962478085119407357761965540737294285150343635301917208867911863954710006522126917481623936479222628844439824944653721880406460517290674934239348202064944364127691406140042316535527447824275909249737831736172486432056070708683766508715379357539939854603765866332067085633191272977158646897197529883949106819815447273246197370327816290071875499976963802517984811684984222393692279208564621108130492930780203046000953531419741246934549263899779823439330091524924519960719549197630033349584080740261576075794814540180277343625592241772957792533133208603082191686854196237139418552466039547090807294091859133375583311376893817327537824030428639051119174174198466744812245949580075619603559066822001114438927094605970651640687021069779113569251164060134758468734725509677785551718823697655272044260171415856939777412152379949971656356090301333302705159046362374278484295005301313888398863891053564389548449854452302517329090088552006175165171859240277074720441403027037169297506307994406971820901051916341820626552089613633923351269526108943891422246329009517970996201421674626941317481502134823696343162884527783195670980672438671205818740933969159043850349222404875498680587172631824545018773240893485754014787440840934051101919873720680221145430455846354429004987589575587354319926634307875079317295395132061789227333063194310606044345413858956321632666579925176112585609587851836467165534259688805906121053902032768206857886254224716366275776339335208683857852064589113869684950693024324216244366917887492781801890451666094516057385585652972657322052545889482300297298937494106611822925298581181882859885104764011825952979407650001846954292851039259246820390225584290125985523351362759651809754995065176364688637079561561213613970758389957312217593659662547999993066936965771933849841329581731168076962183839665143242175728808399961065465277401482648994501634063913343277161677293223009850572853206228536762826930860972808904018689581450520646300312137855101959814653008352547937969080696645208939795734721721060796804979298949903810315089311177564452839738145632215937189874805640631135626737562735331625139160215489059958425826592047504364942202019208367754062076519472704124952486473490891039842636007798327531916478248522887087331389386199131869557256321886109070889553576496663807641245918911990127963877260031617836351190197214674540380622784414920959088650470247903836060696555417530716537594366751718646223555783368189666754373922779847373219894655941680178867106944619829301841844106797928610695686505338908971772690477617664768018767959251640295708704583628100100686874092313967889622975601935017866659558896582124761811092698262890464103545812937275384434077207050720667160682120510129547245212467061113127298244535009385119665524112937941150638207520988914910201088371295976590575885776319494316703943208585296291315319247545540220224134304207726000840421685105057731560785688294531058289718091239839858798258297917915524421196556678860429254272475367183253267309632692891245710190136963215605780953656465844369608090147506931365249576992776673771129071979611469846567458944979544433470358814523017351527065734008282096512015400391364242929744578279472906920778731109091595092831234015013581588792234980701723614859255091619611851384315692372665925879941235597278720451401484530159787543216649167674211320529233544012330244339732218959126822421422136006580224165581007825032540631024538079335422928276073806674509846794695129419351249612061840649505604528778609739492702852193169062974860904261868729544813419036574331736989603379954455545086764228440018772322239647018919369722895397817961912341680459389944143284095467303256551111389297900152355807405292734743499782701305935384587514190591474076433511955376978067974873540588250323603703783292030427553926462829896457269693644418049624277238588970659344535068826300019147603361685544564450889840071033910895682822633399162398503852912076441145137870340422841506874571512351619743001618844131471596716460053373971225504779848479411029332130941531021983675458529099047901693939343985901179671657021650678103191725068382832727126433644882066646268649503899641991242075495060326276591259729209992136857650309280016551683263752356641891863661902657338116136479041183815827907943440372134998811175980720276558936726290275859815064245667617556607167204782767941859150460539340255132216786997360256886728795366772006140313044243618801147725048463113550790079176573109383918492867624520917923784976212350947451043713229323095424657453969859887129307711455733248822729574378094303368113528367791827743597708836482816027082353897544952118697527747483044349047143196003186023059617131544926512160022537417006362658368328444423216658035996295457008489272850348581962600873523041966856393993864129280190637108639987987810566607414466179825185388648257642005393031379207367270524824926561938529729689365090472695100208896169893599184408804743219883773123328441991843293937769765110240256671599830007424942619633283358846232152416592490199419616153658881457793432180917034472973628567831935957050629262442319000746399368930145162888447137050965445472372326607624188682326133603067368554835842678532591900350338185227931394082848877285000762413101802488218652804394134179892306341409389054537863635819701131078317596375383445506497188132785133167630887786904742424606595751271499689177016491973292447076174058121482596169014402120162391521892200347683266390286142575307913969787260150375153241955256112424921089687020591340240444804070764383559303095041354178406711739562946857473598692265199754992427381463503968840123944455137231425029398324162522873798353912986520365990941879027835609618910344513420094291595149571599666393762966733312438218445199859112196372125702005271212213718640110799894696924980742788154317004023823755724827354032914807321014051778475816400457840535988066683139760500590184112446083215710642890566497339281674715876778926680532271962759688179383889004987835623772791143628917489872094429026428805773250562037335073392221212801002505521234680375512691033488076119601137738307836500431232097903568713269774011598018075406651403985544858663523319485261147814994606786191240738999624527255512318256682987729884252808829041463865372555287293866935659622328140781238867266743532523356311183593242761386436456144515901519253059945737154349244475578129442293564001787568715795474636051664797528781090902429141672076676548513181933687432594684634629783702864907567665363282923067767577342368525795586168561209948335040444634730458731821819232255042980211041218086451883943663375419705679366032122019716314617244081902932264621096059663104585493855407053225346545544329897751317391737201592110763143021013835324090526497859061402684351972822020763854083814621705066510428147286615459092524616226896838786882836729496187472387190772617084801381570311899803387872246345033368881105705060612483924560165566430076204175283326727244688022581152999415155937482882341405686279292223479901687643907502863509263709881083434286057139811032068248939958138902787039029696668068474187158274776085159962674505356864023434090708047560390933093688031352422922497336110040651871576165464484871704163318765921046071456067857548296661260049364064612124161239093811638584621978190521739501777017379474926223795091738897956724249003957153989666777784598907617669163908073148982191916767964476271093249346303618335088452897764183385824291374399017646450019783456673467266139162966842069462081389919019055720114385312801617813652155752741395461816942774991057671239817012896866892410805534613941059682747225480477778313716679125294871361310717509012630949259166783672170793737610711598729301623817290334497343453449800327244233110834604645254832183566172486430666852605733593774035756198459745865150432857211218393949616621959121033944580083118483141096611480853879355798763984824238622507809598415250890748960620397175557441572540624262550888695197146549408219999976958486501139026242597860408477830391228821027403920872662062933485670875313741056923740592147172574032665194873722346972713579850472010661814856161014924568749218675920074738030744158852211548913991334613683493531711909296145114973582725506865361057969355264814228179818826196289785693303057163200776956590348459270950351253342446184603460615958417656902706993639807087622523267058210281813153244164599750575562649317720006729321624021425072120999634143647188181289458794208949735809476282662825739133574065745271984726903260622270912846320762878834136282426328308645984034054706544503462702366455583969192711046010554558923514447503788866075164609656567473518090913737732835086457393885245355203558527582056045013791319097177879022132116305612565527222619999707650109267336697736277518990307991209476752911080881636697028425708557513253001600145665279129445587957194269015963405025093620450007352647904976098270504636093680211186871093722854874633742790352024490252228282654057611850998784451615467690683795979068929224996361346556583863312841786785860841766641024884145291687127830098908257954655948890878617164976745575352008405149343520880096861326803293536759632755922171379263646471169191950999146869546443868887424097785304494036574590846737465926372556989944464473856558179726148540358725293225790287202915783620221272281751588789323770095198140775950927373832147541411123134070655775797645012976152738925650092880617743068006012788074657508164305537518665100237683865162169035791383826600333200527385123010153890583387594557651901846169923702030808819199717335836549566992269147004457122958546203524150051035492172191830589337823409181970049413646717491655876816733100976531850895527177838097376945988505256052402729591034137106699710692445046269499988486285521358352755449240201086339364348346396646133581484535354551775252434492340979736666213206199665523649820303765096973205160764632034597350432523429220670816691297098724404000929332372389407891003765037485718186877070132454623583364230939769423775025681338304533024551023447294872449429243951462931062767324989834851966437018283689403173087524599188916434564064818875478856621034685987688353803306597844180541283625242865582276704971437781359916771782103635460777483756215378784676348985067638200868969642911933631655500459795104512203412283913368265141300644910018457212652951028557162373137236340060782769997911388671766376744673890891417817656421079587951817789902780956447702041597166303942488722247596262489122165153944319208827134685745444453018921444693160510742481407844021205390532111854181837058387472822152462823639865533596925230979914005765659845490948767021976081550839907183468683448391117466469532519184331383197613195461211955591825767417902300953908154995741182435993622678057818879228984688433237135599004898210656376065830538878354382441977794260666516281099475574792822286679288166512051764488887587425478307433038569720009240714305873563806259007902024795501265167065494529387062643906883315509077556905833852664390840739365509792914038187670276968959261098380595537791963580245839750482305462328208166336712653863906735570096220372286485475133989634483348445275967513854110676646622693885921883245345543241518399999339616200490329071350927108290599362078023648136802187299557611754759537884191852353092833086250048213960418321815201273226092947583504991036582463068318611181959117562369950817822286243265413951580675194951396027091187833775476144563805545246048880439417561155510910730653281815326573301694846229642112741841266672257830487160962799453101896244365040045636629404142803712039847594048377731377701835747046229332492748590920328862245839105295072220785682422659949508370602785964057202828280637471826712088570271416943384023899799310532179581739969971539281372381766351264935805988499560858111776635691528358431197155326026916565961848217425308898200770777290293576427813288619927947345923041856516986656870697841176892647234182994593839550237754475511029850644263202157069482136634492746375544180402260868517851946312904535072548143920441949802735990065073821493749405441380396465311221857917136773326561427287708031284871076119298288482774610861169737670389262920208703715804314294624481066425582655557923110410599759753500151132256230138703008211376313154363585038877065297022365682838841952913820479775045077559790114629867057874050047065350267943315385171017738225119240158855428771599164704808063070722985125126446012817302071246425270135559863350169824517801875123663687958058534081709731214623601318906888198308756569200621348527515270051644126121507451256048398162402349965865436467475749141176682819375595497599999960379605181275948059265798185116073466657590849366716018105932520019884543074889593627322638038681475498085430340535633271644138889284756262228617324261800558727414638210488279742412996570585818904422627407004958519461995385437334657645678270321530327649911567423188934378101216783133336731966160158995404559526334268015648930403454474473493088404779624611432527491605892732869900738474985281147591237916371982980055199968291459234595580534044209486433631320663232250261052556687495770998028165914763540187986684051303682954172256158402271905504546626699532535112125926838892036598259118424064599448340935472927591433945340520075406487944910166164149714923828488600144175766917288952112775633391196763941952684503128804301828121431241059100351207500693218214311021170784723219348633969001963937213009495571411744026915555034533129637403576068021633729575255694772894508598930267978333656104328885518693777351661054743471829988466702386941855935527952508362257364279566826240142834552531032836837676388722434486395737926969862329524427080196457170523633947996324760627597305948386333736532260422923331623080937185222369984269949026486908365003263530968333030219767875226465111923015962408113954180975917966688134376795947439449904170467961699886001464035339280275435997894026671327361949728799514737335143104067571712016728697692167949938440390119657587418890324443011949622914260077710431402741806979790928028185785452893400039740957534294102795533028495544062302265441010966028686147256672603498280424861394638377171695700719712174390373642900292916820517654938784600918930096960326713473524790613360238586094464703229770111425107196985025818305565984683130135769144122538794522666579332166980731534528075431728598986320963051720448026705547441455294468317623571498024422299395005191244066187346132814497817744300078185431800209984062189012068022176822970244028397273129895828625278728806820115525624802338070390365818537752703356584386921341368055364277298938130486089223097984094028636506825980912230939313999853867213604259349224381455756094074166279872560810211939817683331484665022738661733181116416955088532464145382535672479943339467386382852399899118242187277604264709092492893821714980453926483196149518835001994123039511916064425783158101130912699775364686555438545824756331553950629839742089371167053083771492299956689147511558513999924510594134877298058012898019808868187235391618177458098966082353256584434874064495945391301291607692039351883185570000128138273432331833012032721674607500538891480947642687133045931679921860105877790981620624280931781838383939782739875084905617030083347035308700497016505303613411241528718724098419013111184259042819171045551752130638615362481199530561369331804184555904796700342410486869740105711384172863272629959310966924382036200729964841887529742087604207375272128592683169570276968589939708313547517584747357528486348483599417874899952920315118627087866838214896905463951667727886755908558100723722777747508061546612644749331655381430549653405976174043186364224239890815603792061109985382594071612674118328871837558296454190275894508009092941856677346092909456953100774101759875156529651966659309337765797213430963800728860760651723787460852361088677354186464830594496048292400926729800505921737683271199563040145559791156452852350725374772724124863814198339464411493787506774821620481187754550680175165781561312807115413406748127847367471844345172580180355085719910186421451225497382083912147246632517785093399063608810896712649701889764819435827279423934246709859913901853405846096961987414596806985147891733756980578557008918759479499543960531749170053118195110136081497366125634671884799923341745759578267115353403854812847947176810335958193183502811347258179237806689041813044420719919621713257359312229260288131010705962090216295282780932515438844389140768845071212551321415204630274156908296410058504144961633644960626281522045325585139433988320131836997538790476586600849501650695822165945093846017164569332724777003506035617005899268664650298663988438135636173720807467544542065489059351335291624380149497489474157449196905890766384809740558941810491137195216954451242469722263940334204231452933404464360621805722051363194790853699959012690708303656980982883572074314061480989324403285298035371606991832241679093672356742795629270844455156466756960517732184871599476277557116488046189374400745700205709254668990286601448833429662856827273540456589348031345952889880995644370744458203535671118966193428467086797703863901888051829690199734146410238015123103906465442641510366529508781374806573808681448304546374269847207383792409501291765485076841588306375092926231168777941346635760447702626007967800732486841943537873865257490598139327379740804170728100869858421438613345595300371776907208600733801348775186494998243937617287306359140892474215214817365799195143067116963224280332675440524754014769204212656013980173907039345385289510734079105062687393632395872018315442543861237742679916734453711793058067643057775650625750854946737109016154489017529398973706341036345268750989324667491960263559245398205915772632387279820714516737808184794767902675263668558133129369030769671800785814345103441422716313334413184081511545403868002479846592901655587098565456029498961654674942929920164669751198334668368971667111138382870866902310335898904311582670891143511997644687137807709721121574940791608479091022005848349797567925772904821947999103300777751196155212727169544325754022956672041436029893098952090083749829202076323007482140490423862570977317467129323302881348796655100109937467618212971938723859008714086137606770616450025712087921765590342016042853542462222080995029169022318237268995412516234838620762483605086071296810955624733212763260852329365293020130060446032004493764492386298027755183718238958863754290355507935239113540659254772774544394342435204290724448876190256645316440162017977255389273147565768765989972095525923594808921189213023474911686249013517757950225308090671786543088647526162653918831731804158569797973432895239966469450450631647259048429324437410967335773143033719542425553778042195885690118439769140573072725490177356140793952943787843232185199258353625563038948402300272081076913749666494682710685784018804668052358159866722836879282166426051222847106584481933532765205557698392127485282610081804782617756670224449329737622812458548780693614765517920512048752683782401438116523911165099434562813258682037364586051516889718563368354507337120368116172423246147445372232742464368701576849004957932148282583984140852646519839914710618952172234892095817450776572855958363356516295030847760916512498250995731279833765804416515351359867496996651706087611820919280333801939875193376493885053108004306275998284705746193121229194432061439857225844503667393749135012010381227631958697720526219092017279052309397554456884581670974528636218043573613016818498544091084127390216794819936200926200961264300533699655669308023319932172569677744055574983132565687725645357684565480553038830319730455688522812567702825109714177686789550509159254753406152481322372343041499372241290238561430052701787738722654380559293262753281479084192263324918322025879712033363411112726691401528737906805378449759270618902655541853396101308960507980882810292747459054982763315585318491725840320499677550020956653402732111744775009849258512924046434454920854498810530798015750308056809430919143512112391564720480392471096306226089056372214804242218468126361108951755122629848255995711268317208594179992304595053301902905450347465818918558952404723353347313327524294639190438037288538655880017413173336079463321611442944240370898069236673813948946532907556375829079135826697859051268336342079159403019192186832357120923636518839688910220190721329319968989078785445571183409762899748223757293929104637373019055063502904782666601473793695207364757057160708205623556713244228780090447074426104557784930683475643579697899107520669726800143281311246309662814781803808289268709458174799525095744876198388901905253182756478365609018362194055414007986153728391717972391240477394021489934778291852200152249021465586197200216896225421064312556058389429384637079211357142727878764371979771877671565879229902468852968415115507251520533108024649215866949306991961923785094789422058812606668182462954436117164406581945237454569159065707511119473197707903535937350345460493157395431740925042791559856323359814461529551805279772885331736613416663583796443197464027189405450493162979442339637354369762587050438620112238708355872970523065497619047657779028795647302766385187303898075173104083602500371872327157627390127252759011917481847409756196143973322148854549871942588845284061607024183122942422754585181567438056084777204258517712601244988939176776408235682511131319244865758254059333504759513215916436245035051243794065962530343117687386330106682983474880441335832596050368918313204424471483530563444668003039795763606108456604688530866518862341749951594932440263247336286639649102794827908216143371475398527462036796458254453409509264266350986052702500928530636816756376161038574799444311437921858860757282883495086227629533955443063162565383742529583831451780582905648108550290874010835521238778237375323131253870327358745982843741454436028502859334698567019988174996137891338530751731937221841895985794831533807598949747605330543108700553619259478601202306029521331531994390403413873376613731068996197464684278745246471661381480477841894271714085557001941570173342627454955633996072415560707192616067626675248094944455519719598712430658376834869678696666280502004567856107158041186143290426490981222024431951075642002828629372914626911723911396784939402218291573772036786942759088601546106297857718189076866488873770260853885976801048351555970436466502616673747724659418174482228366530076089956703489648157756192692736469627771599180299985995050548376109818522063321080746728558572520535851701383151562527791921691024978678010423723478825843164895922673431643418653036637480297066810809732561751580789125183603045705457012059161704066005878586555359860598918328759804981494943085084605506835469648817084113187328676324316511674088867099973107208047853326698068057082764651801279093025876490067326993453361010120717367307887993964464346511510760084690409419086795323847337755756372621091891974749514909027012195810999525279848491104377034185627413156355970455190860065622885194948429436736448334501821173118097120623026832947041177689714022970467831572155915136811974528274575364478901403926512905788059570841027868575413273377884788842125972562556937923547808105242524209791149987389519006581658180929123123759095005723345272513606453679698282862958465941323995215302876742646918348149733982838857814951858186900860357102785889694191835641214793604606671023720864590503508943977448255421902232739787590884757221182554373799749302061260448960365966172033881823610266771810441356289460174070659411288130439785660234734422591015418546797440742300417275517781829713828017013116805045554586385412179450716679159175586973396655321957267338738068869488656773776085052236882557188200901756486447070172199692349728544352642793784148423226786442104678070107163030840786668528858145064012231812206505152545496895185378234300305217080109690859440547345732418167772541957986639378372026114475201315944269820038571006189742882763840908724180170385268635170474922189750730270731678667290309589410708211333588795800132677648690299356480126832362211207872558872626951955459425507363784535667869469481342707309202182610541142547957408720611125184812432961724026980704663833054407359218984174161532393969106689955092858189745144495210473153486289456333513049199185236990830100114337334622970596192066803528197289536114106108541051447536394009774368670483140793940873031001950121409041914723482660061538440543228600309659765306452074441778856069775491796754571524598632405405111122122271156978553050172553518778435467994605361178065303148221540573183754012857194997296226741415999176328501518379322241529919249697765557960653581481128371959018796722059811133286870469245264360355448111932127378675671102533807478231833337653706608660598446954068698257446717072397655928118333395702972244568608863803457873887498950441310470587510479737464491674333678220607550346664750193310066263218112097232936216585319187590363824697802518545133659378812717424771156181095878106607274901325305498711756020462929748430379502748282513254639592697990643346801772200098701143707610415581202038804970061097551861973328858513269833205348415037848731578619208598503615723480416902106957398691719136203294740855562693235149200719800818829685634232393036417790858537571551222180925388951615274960550966079635180414820208423335224353682820479437359788307606894087429125222194786553045016942942549453445284066550062927170468546173071430314179125994954132842446881578783086864379859902983667777868492105310857232691459487299505845582456565119908641988019539955747118655615600076400461440183380121324347204846235550761926440044209553863746459254836906371561500550176920510535068691804558964521120303225423183485496242965090952697383576798612982026412971873952671641713897999715884537267164368872950139601709505998142108182710253883019059998009645536221696788805645514118323838674263118515031490759049049621761803623820148851732411813171339373425102394701495048849058921083765060728090124614964575698214908656461786053979998692762824900343764946838851602751628890660603748043455185395665492285556998503313384964528478245412046604189180416721706980579347337170208368121393704094423520832158680784873765525644579556159698360630671456966305357116245063485712261103184702705856278922125685300687429104654600511522792488047695066448607964053230504483024401202459613962583032881448581124481280626381855854696796454603828910534602481229070117173736655991025705623930465408741240901001240950539248802679543177368155180605249132449041311455346322941308558445298473434867737306061037374363831952834021027579573741416144909836050774851451764291256795765582500172548493175841701726474205761250850670037877375612838593903641239695763937157678158422603517329357875378361403988434778700426285477615309860173589173313530126015138227473881699584447245898287642181959061029622380820602291236142219744984256547809088102932578843810086104042113363643765652130348115398768873857163192308520208481573380387389716744332831196146626234045232026273409560280327080459887705668157458201978225026711514597214673671043877528147365256495610775474634939557142070127539708326201109861158685311828143337518934408126106680261924933031331545985631132154050647405192819149076438454258314786434693482381421525565497359698027780043946097816731573501123425273569996860419057151145393691099113046402606671150664499041367851304007205421605729672748809847751285829944774008730500418181994979028485737970261512750644424204440820167814672387184569063201405940548270879069852058880953495712871382221194360551586381683612847313689852796122063373126916995629325963444630368055789675205138106645093290424142246251340943467469442725042838476198176906387769005177496547809602227697382156203974657495619898242249623767454005905910066758645859092173090397854959258837377995143440727284646741177669011655111724809705305257325039895772683897441686573787716709001631284454009213097896182043244421977238278421373252752818073843896904043317825274025328202074836370596882064287329127040282561169993384677431266444569890234268014253266529904274895378427068402327139022930412415905630624291082020402035475559097309175384168910346638804182284987825425754070146745773738522082416782267262047600040019237721948510330109682780277255262833968771848275328403194262357654052602414185592799106141141278124107399828733113900920247666645019395773914242375041828583292529161097633128987553361520893522711145292821244618309468899610727905637957123415858918148677157003750170885188095231526312848909449756137915844492832212513185578762060546517783593596582149762550468157311811818976081086740752736462756742214844859392707590070996311235617032422404570259197968259205387681054069063743287574243048626557837052146220058630761872681579694136105477401374636380692103564551687543279560702243735298333149785011061199672511804519047471801298349931074192984349862583676228405161825786798540485747759245688625864367645586747517316926043758014687408764476704271426637343421086875558115282809536249795669897080397101095927272575445936895936735152702783789041284887924462912341634825034203513236427660841135560184796132540529288873558377827170640996953383838127250491401623053337613974004589344895174819429329551476766699553087430239710933837527065075849440730303536193046326137274177343382404635115212772704722883803328446197496051505460264523903452320588993917966817277531864473171617077219389627761002698640655862457638094973203642209927412316154398441722877214284711871276712739305648651688184233324665760038735723628315836273691095889198022329403538135032331516956816922201401658434786108174699556961468156966100926877955678787438201502206799721344569967980892376430284976874616352424364472479632593895891485359336548201915605720090880347269784919317217399711541236799672411095415690623226424147995935619032957733387271510886366867065117955174802072903853050888145071919813642348809718665563475689934117658802416225438260746152465442928555873987539353896551151443582515708158375292749336308304331790100902430001960879255090843972948259456153013458480335116477674953783991837945698116276106737814400325635385247723151581891266200767569115165731801582826823984026036616145391178094142087979675697682989203203264811933438462525809326903189983434630078073918986796943711629450956415713232560410937030962765573195592949083658523734077902746731475726665696455463367644518498838220614081913072557547722720184827365894632781203923620974757032758915798788728669373791932807075319643538137290902578056326790672589003927772054149707284519141516857623682002040185299372879122309223431687517196638649068310183783430539472013182873706591896173299210515506497455588985089411612866056536160272942898127915141740939794062482285739121972779049510564259822245693413431039330188716791552130709886503873864157884189578793197396382759287725984926165315190884606389811714374219344146693969105394531428450917520828293992602296713379174155719932812263693347702747182350183839431828076711642617267389763618039602725812442881965342464066771002345837428445614988434870189541458389400342351119217210744946801270951699940558916318409174567505481997022843497546246481869532461334738250477291493101852174785620504929537019725804913913010215937478346549726088848550888323864326707459613367680252798355510554853775392534034586094211751864812304004389506038784920763768314688714421894289196668311634597444072839059465870144284804940980752687661300743902965385088173374953898327771950067086944492699389665855662021012307990736731986999359305702998365668928227530558639078872086648580508510967111124229371969797039749298801638385995208389818714936999426079721999457071197758841885944032957751512502101102830635848669687308626390108418427585650008827985749630296772102827848818736342438834764776030723472277187676479111733454453798715037429160226736323171028349101150720652366763517619661609837160931285395099339651800721454780021981638935112141886087348454231684551750712882094243484563276241758832079953415390974899765340767843664513589736684543498145689113242181295330758758609768211129486521172157711686225966075919855666069521494549487221500570377743903931461101816370794687792524716051300912863031334165231124029756428177012192034907971197357730212105344662385370074429694523840892603737720280482842265874396252541546969406650741755971346374066338831207546593763564151921731018447819412868671140958107479327850187813339716352367550398024438776702967821323752669905065301205321400784526690873216089170616927502731168829014423591239123035276035093157643328501426838568588567195830606350621293119913496673968752925265462986532584845802521539467425113975660540514766610165380148021294608545859930656917381562841209816941688661215843962751968254135552149961554808203893000007161366533471092397971923557340660395816351735680279797103869787749995770673981063926823730511346267143019560462485637878299075539494594017825896237673581434703833675788734531859278038533164514943250163293116202618875295370399786395216283237697013507085401778873661865291318643728576154442496680813682345767434181815253119344306931551577467389086020382999000116311300278096294096962196616225034313801041647663911793680807301407124284560009088823108669766546519741815971135935604236553855460703993542723670498539011008039456103558698029555902736057057987497302409971866602842995710878916342836245698836716481478808715377447185444230069202362249360981724349620518992413495586268049343893057467408234774688454696792006791172571033647644018548137623817661186816067076868608878533174477214882417149849905556530639158265738662092551043324724375890351523637455369339553181459843722795647340018859101759565138276057813258262890806136652870151989538567970928544169427516558907424870950512479894922844841013807672289685618123756066954050580468340702168968005432588542145241766969896069686506360541853841045920648187782167494258279257987921754239415155805259308833128444060662998029962017521649663563892860763744239998448016349884310386771303355977823348631517180578094316996639236892469261921049841268884713013605098956439227049620523965631417631664301776923431738064187809639277559106014209255914756836704107253084353650288938463125471451578058397952829267244789288048577370797735615356202532240233376917597647783413805543663249215100090810694934831463554730522805900998458055440898318185727737917037796267963085635371682442729781750350572400292108071680804003190573112304367062415022960205115802853982148712002639797630802783950390611324493128457530063967869231696256036999881831404231048586051557815925871337968284777724717305024594448503775928888164052096032669555120080003130702595605796574220376953180426087209442698946627353281426521856876117873620927017181848921971716863870442406178275951957190253447776859277979916299786656471031799650360804229564082276787046509872095697034378444262408337197325378310252704271763664625115313583763706472872531657427307573914392864406275143137099543038017753655731980250290127174939352322268779086268013384952179428770912583223095163258965625471919203672363446193193932570029952326156062366981435714069863413690360730970982262583958033804947335186254293454067290771882977236736222599948057565358847668162033936093095779995003290947073885106768790293928486858614178371935673900070472435895362359662084499317891541822287452809796591150765108966741371850101043794670364282589575521886184190989244815801526138318550108179466074008966217198931828695111982687784668479811737234172952455993324501860790616278753083623736109828635389836128324147928764515385614947630247252189711057230061166442882608558460008469150178153946027106262219253916406247950863706542389681514263701556922966088868124705050772281578467587791037559491031156917608818986922424960042744594934923785068370918119927285623409527648244949344956107333029990400691174025485803364265186254371194548454787907267502075386427835080366245182154569554987931839962984308045179028074622481678621662603561501891589419387177034453931581260740670062424639188437977652572046837658761325049474991401063291123575070490808962961008680694311653371314689623119718502153837818702725235939593563080214520746692126518087175125859389838490445288372411827334405129869111725732663164967780720875600883097923971045032169992581563941251977596424966018382905665495983297854695219642692468383607406183211331294976016748050668930856416375559940549879815229082661455570978009754953242735638237827718608789654910109511587778548245689778226848422408171428358057938426136978466800600846771738631205713844160005512349505842823061595529732818414364360837954938792527965071247594754172077852658838874264170969237362397493386139262652681726784889914308341328442890590360427471994352968275416895842824545888067660379797308485401862003673592511683210640335577048678715000508520523889456636023059147509019845677537118802087108564436599161975557764050380377010137229653355687741804975306198389293959659650458907613059036700006889332623045230012877727196162259695067798129967905550860298939763592463900918201704504256180113516617454070820489765836480853483653154378220023781337340553086784764591887864483075272435906728331076018746978531722814611305492961135495354402137746101358490691560577018788905695609523699026297085314363660268556347857386412927605390523858665668682120993414309557607999035223729711780548411260680884500360216634249534363915305882313667339997522696986373603407075584723930543071838589854572124462765886183593589120813185332057484793539744753199542776493050497288936042589786386731738622183008945999003274228987812259983897050639763062685480282718253909658358679506724116468187498031751549750010899840250123622775205488264676100196158174400170629804429811414491240847846703064255488292772547559205355005507250428527282248953434071289215679589941451186335356937831944308474401694163541131938993130149288781970116090309011202107413307770818345613960759844406918489695725695002084144714808692412383030094745779530058581342914507133134543158929898074353907088674318107770366536068806299703807715605536423237557476073992819411542991028320300473387053076254902518232971682612173872088973093912151348082845591814032856771951081489882108662881565530052448137216417250582165405701767440515112442682021451286345316572552267157639166776511019090152688838769815533313827553678850526163083052321894745993289052791855612755637615478272038530109127447995778370088843700678442897065455028934059395579724759617062895201036581933508171040589147327273598561621158045871784236291918265010253108248224665139572111060961176472447398035451377647902945015948975515850604053742310604869837359409209147905218014178662948352623445319669885328011155721578913068041661858475315523273478603699395951202985674792851209579453284680646200385665105468930065597581054048013039497409277814475041583826431251605104052798294245528206738943636428635083439550597058135712647968647279451027203284602899225974212910513915124130033538551669217983101527733525311509657817557071131905114111417135503307176084097985754035215158051564184679833646031735491747396642841328050572912012934314876474898353929440534462223232236858334840647639740677197006543950169864811960764567884595986757834477730549037394940881356076807196853579223023128369020213303207291027414516221604483783886763503152151643066681477794565117504238739742469608358032864437190724186376697189847207884541013085793580642792480806502995468634707533033485271796114615903658720742415105117090905396085167659242830568470954719682212127676795042866030304982807543224634456319682608693639548504646535666622964390181614536444238069525071847625415707862572433369949304333515999537180452663201904034120615148003585765834638526042077454105096990632311212119072749731270862863152786697890400485105100217922563694614629072118386707590524742889199460270994184069361420909063118500352181962960262225024031313499442889996868426787471854084205083006667718677358069491736449675521244498322344257409469113538909768044894737070819692423500683597428678045694408506318591245867259809253357248793887377407607438888486262791017025531588351254462344586621287487578307654708575368149352751053122833112400068065330164792625905804102816380278896513069257939182836941670560651373459991144228657047512230598004404495317047289608262538750395214865483361826065215609075403877595804561922757022854926417982865592428554639946869521676203050274453802822894385503105124695624982412192445231992861073253924917184028764659877565884206839641963138307888733066098125511985727353849597728969528960958338609631024186819725056867219856567501682392088541162507397459629286724950480221395163864800696110599346428281076768327451018607172678789758365190591754462285237162938131803628064337179643013351140555134746157648546659340725424591059447690566108628676233819675739696959570921323316567987367215688557325391450028415397396314212220159101003008066359695132214780322525779361460489562293439273065516778873567349704927226745125961047697862537688041110919033596852668796416256540957292090028344310171003425758918861168761767190987636933661164807137199562569029378714859632187088961672621098946751515327421141522263082779883277478085572675854619289331419664488639390121286590649946159880143127664001976441634510232824470805139513239152171105173256015957909364938881100762287897370718218005067680783365034651815532554039967087122430317569062534133601653002164260082839362247675945686410169365069389248586764408597099446196471266566865023470497179056809271120197810664623587422889447272506137914545203576116652363217342628746380810038481619078494124820550838666786859769264728040877808136803607321702258041658271835370058929741376559210416294033576875490288831314239353279304374747591589769807707533645023017601023893764169742521822196817094238243516832391825971993664396006028606673209238625151415589712156992394178098091339576880669058158549186586996395527822219944941179383486684086211057640021377690082442218280492753502460539746261885534546275950686555591963962872004479535752664275099304955619816670187027843623644211235114258210249104588332904954195448394464940165297900885522341668751845846883807954290543205337861215501310509201012712332164154394921171944967013262727884311300516944044563774656989347826696952019209158133369905123455230515357729721059475029386431173399969696504232580471806703424195152671227752986222206044097834437046800451110934045357135888324155635370484731922757241167699985150813743003686671925105815478230351152925671208678577694916060825339458909616350292952582669701641630831022812976296545987656466833692340869966551350982095410092045982668958684177858227097379508275544339617751885394735276852636960430778226396057952066576858533084005945800673775125842106557295391322043288148696891669771812753291698452671720676525356981968485698340615970374859641417727097705565859629731260173701431887027984896353297101227629737673078791971764853779676639058791272438367038618445382993878105414473060386874621889728414939215483497925325804328053632564400766078362734250018018375342923165059116052381152163383087795539421616613121904418844532894176606655559549616090285281491477786421410499308518445034024969575839096310045090452257237885967447756286313596085020216498337258888000119389698097069201641917147557848153702033929197973088364521505924687922028094119823997868334264879989454113127185563134741859206821603107515332540906070940311454118262611468093965785920977876299242257950943056929194215086547045246470418648736320525194757935958596535294738973263452143087855373403677725796947596698595135138980641232794285637211499802040537948043076542477075131525378500471440056623184009258874748399592238222723576127450852999871980423313585506640225153652405666416090096058944065566625947020084528925217308673953052230711102664048786510452221610673478494607549481489324270109579641323996714644600499479632539897238076368517109349960723816048880794198911489859259291676638322749913342816163364993142761956748194375927175601547169189316396441760910374103469490219906305334029123508655932207443413858507816954544474357020492081438183323959178199249615751035858080343513432344650267644822884017674018782200703484146763795658962536173665300382137958322352043150631681478789932893598698401036032553900168492354097503729965862594735182396892960804016802677669813145554735057050459910437320253584222247209393820664106239614365540299041933169247413223355241433003390067940402634336598078244348068142754621689879824008356270210731751547799049282709033102174542478755499712737842497726053923739082919168186825351528110240044155927083027601338239899140137377184605647296373155129429757190914601107818658013297938284113973123069095829950895606112679743925701336098346520191603405558118016211750140670647646546951604935724601187050288721926590054912499005574297097483153905813776573063691841662462761307551437807420429393821071022550038252737844723024661410314547452367422291256531099090121880132899341852778138721613352796613527151220458543363634073741274806824971885233382404660072617939099589286792813583733444593721712169547482496884134570346789962004055962228285207296090733235087819822619672317845766374398892943140869683585132424803721085698653062130803898215540827111818643968805297674665153266719547683286547895193466313961673830549919521487046081718357335297728918053741393210391281961475378092102870343091963072426381659683811584492676518255852332340144698548564223916692525339920218249654488199673768923306678974009670141462501690289087081601351963761584018911637817760691812858334493248258230261564016228649937246295337316433034191399757362747941910844074928770565175881819120191909787166458127426118174637172949535975742653207222559197760117716502154015643106024725528666484767799678205338483459757303412046327848883392648679249791431739204445821454707771576656188148561840765695389727844870792155354461187649099330634169947862128692582013903241328374428707454730098658140877332613592004198586370634740319793559717363849460546396137074771757624207214912004953788320099848457107100475327621644361016115581391877079694890232591435260263240828294122467527139699204275126014377201674679164504922613714767006943012418749733480434820412279444086382452187987913616001394996097448782993901367585548294347865628156564477199095451887944143065845424757583011220447589654222232358074579999662559883649703026439111693428598940831058603173219769184733704385755771050758880154600261679127558151533811083644731752900506667662639697139980182585994990618760050557745329483043622521682674473950569020210451122104601999231440120153619051732006762067307643490105037274143542101979549891714466935020636424216788622966201708583357231820983534431378584676782023641973164593507814339101171892829100088638188504673701008982759459344954423610544812758843831065744663276152966881510494404719451090502152920870757654062891746416709661557808886996311166028786236797905150377220871346848668281680044419514299347990897370431461913843874079418808651839432829318266560561967124447073217655215511505459448523958526869053960443167486007043839199598698095907573860679868288687941866649127113720451093646222665170888991432488071879507807145625489385864824615534704647975267817453044830449557869514135352369402718765672013284692236832702237772873453908836098089688547520376746728194946345166689414680584734716667606286134266178730839035258558498056693318457799954315675957512614882776474155430249953076307889021790944756695510051630694414190727160129338898249497246002849523454829429723396002489865697105406515109515468412811798484565858021548707997123038620767598472709436871148252297548799358630211663373273778711452622412573398420769704657968838404409858860548766361854871284146184250310047024790870220988168640159436891233654632433451120123491133753116963963950471424603763259961787304481156123038297683429764542348848774585365912797990045890352036340353467584416793655108719787643455893190833650910453323957076138786744095709249511796957914192205355418760816771395229457758420311039871662492793449438296605154145888321257467414820686188105266085055503330894646514637483135800957991652305955502698985915723308859038661486989925850813662768596900272630402000634535172492488295945892628812323573563041592277935670355533527135768156622968638548113766889894278640781587603174537689194361530864403929296233630287196679914762133856324530957150452858392733648950284570581557924713560264217256986741950480310099136884215554352922806944815762664029426014268756125812161604795311665951457937071450968128078676356997039018744192280523644003491856391149488436244907354406102878357654717448876546173379247076709882293658875829511433489361934975356689731346596774505539429236486498240565726360450481958231517994191668684536862320227232782985876174091871286279249407951229046790304539238135402841215999445511739954186645255476627377109787967271532031790487337390532105873814667112482649579446979723292387780778582546378631156849398738610461324595277403786228139793872322098946471391781002421889223736476794282768538790416617747178040042585386401996325380436143088794249552367210491483357320129583063797764167437597971855907914176850478773704836395136609344480590705579464770731007134826509892020605532456468061991642294345024150277402707724700973273715709525125824466919208762020864793328055316801030909823936177693648990480561106534695985163094448291807629852553457449814413368038130396083337411395457734892042486815504575007893595044531341908841044832104361260762549144551161931041818802124697100022094068546637441257072635950675821111030105470087807110001493482117156363216116875431386777772757870081856396362554538357087126222955659080102148434304708653114394019502503377269207658058779115328197382514803264336418274342917409306797375564711651958620562458470166652085433466079443579213994249078112324261935807340454096957068478166172975069683908345950647933723788694265255733923518146144212214864436760307278148020553438750960623834524453475276884365134085699944332853897656822808964242592580390489399203227648745466935346056148283692319404234048057719906231473458802773720151677260784857654528015111095337190740394022436938496315455915348311273564086463347402468750831501035564199691962160877454748026514827922906672066978908753670586757357934199117408286968043423315915114188241865526328517887532848268043813179025782476906928510141221901907208071353780347209959752635226255851203029926409889412833250894505587531191646539555532670933205002709820702835713463751654139921370980840914536372657972296601654952163281108226820131479811503980414711558749556715735492944625242599684700427321766793709544855526957717339557086495616351245374668140600488593831529503350878176757039994865049411353992436497391895139717816791509638516879367692587525349997593908604780281486252938830824469459432260473586684365905260295756227875664643756215825587270886706842707677394350943436274442164965672840571080279982872380975134072450098145995206370811002509351724434951003516014233447536647089747577525821550572181905362497721089355186629356370747391387961248175371759535595079920553786511545507701859362727336827553094674669250044686653935218513591828435681049496779427597524268920451660825061547472364815134184841523079357320022596807437412373558002728205142742297146230030278089021582009947009264105038002821162512975565520865836698636784457318082281248043707753339672692015996237395921804556160788077712342463310071075515570909652935367184715219023099893924620667614946113977169115637857133718749501917595794391223419000812914647598462374983686081841542851139418021096684807020741494546303289052822038659105492668965032396184173153989838612359274036607603766924277082026879949868768533896895422776900306772200922730389220783749410570957130692683080460752185047952469992135647089406230762982000514688587207796176675993869304530156965376883275986674499082953423134719877172147855359159333623025864006654495277743415586444489800535549798066625368432103720146595340924328128804352816610543499814046681500984733126020222883975570923289600060275560262275663041137560041433154756926052271026459538057373940503264852410215142603780076534487434007201219233815000904070433260356077584762925767916900721881155683013966716350387001713588955775571710744663513195330867290736285965205139422593743412769562849385597504461959174301067705869987398002876050118712548830374625261188694631913859624233444135466947943041370777677910831952891734895101730505670052558982602598766479152097496692973035739087057593364072252918697531758558532452295021666675648050947954257697773008686069614560234362227189550369092622833468417136220858483546492322321479156395196631716861633534671748574307980366496400668677305443172568513980296592552906346804982845954475384349323153387486946492934760575139256745255782426710140967131059268469209190942616869657842764335482159486756778180953427594045674639999236416083297141652115183388615753662252906354733315381368515838767171340969838201262493023052601825100529862294961777820271693288368038831893752980549297233336621874628522428700902667507855821816121736084759039065373964472972863496472027124226345284942957871601280017243313520592374174017606568801210078031598535401751481484295390347550035218153427512961740049415842031980501402935807629796624654877385488935738710494058452258827414001990262636192232358329423132137758600678799204040742389864642331998510185287576444983256282714830560841546227267349320019749381310489381528284326004851151185669890676714598102616576743306555250272811581888613046649790941409791100038728099891602782093157310440371808548010921803851924497841681544637308618725429021623936606249074945222416895757336358975916602503583441145547856114251085370620954096962980124197902005309689107592465325312624438625233361188491451307957034024845432036266756601865943643837748578882983868313850107277811514985344080544488532957932445235651415843303796631992342038181136206758799081155177965325171620353659145190296277670847693959990390342152523117143824745297796577923992376547210460414347339159228498491301843146698037199700795249442733426526366882353053356858852172536449180583924063063891472864293123883215695149056007260952774004490951624132031242122648947011901100931713402433012775475120688863878105483570016146128666145525884049182663720056907931715819904079237212954708136656202901224758601518483877621584445393196971722559305366218069270869046221820676301004537043968799671975304085245665242132075197378982460553620895390065160808037851445129941082364673175769859627246200224451063650189807759013129762033983383250040979754829167059843726693899760332130251098531965156000288016351999400323851686242059502500414869930171535078311371813588845481670706530512986257635899181313795341922301885796533827119920657680833734504575562542224876226353149014409959194640058118778882299677830074985531654347773136163553743438547983919586222114972429275495551370500844572855970499666272478497847570252489583315516914427667158318354710401717132950410759510125289166400752690390958513562918922062794205093521961548302629628623501737113084849372030006402875226073846529037267533460565618919338193869018368587469492708640821921921213846972075160447869606019291017534859971508765086724534481885340419773320906259467708004685178307622822542373318400384603027828527563944270381733008464875468138111171093904363185992419984134617996528252180524195767550740108880079773053591267412440096804387369944734839219343819284662228781972098388579777455588155115424096769535498081001111634518767147125103226784408703109723673845098279093393199105620618925998601933935827081074006068124534256364847743386419208443200596277960029270052113892102637646900534364652206384315085658684864357876622856760345533842977566850363585443183193442244918351693954555531548575958091435494388398753299719481466980687118820298662959480863814481012561559999798460000328639297522860632920902292982432086296310559256267989497307199910735646688882115709954126444981745453173585506204773717969929652785521628886393150061782221295423484892666059986810876282439160989916564047078061820829645863369683272109824413901726368808334572061256942508476838155722026512729230400154936915050586851386131315387610178459557292076962898542419097483879014253230310081184341858174897797108792001393290932977983955581224620289045570219205231466523543516570298250289837383131574923702719627300230628165983962882243678961825500993165179512047079315398557904929944400350960852514131211071735798542852230111684821233977002810852382645899072186493577663746615040464035487494022976498020111908638209676432416763759065384545892415750159575246564281930935691923007639096245307267962274587766294514232739609369400771519141485860025845646977074468491383387743328223195635076103209129376041315962256854026879486447125920297956936835165011400609678213945957216158175603038130316627233226073185591977691941144215885648556331579244422529595308096072712613893249669367707947433546995345160497860824325922541083779205201611729583781014824454439917998008996342798454947589168731988904626321950311726576009535271990732961894441324180615596445657016960408719588660970181008331123678101132189490046637375312143391645747552018873329356673211971425656926448746638185453081407814493028484814362136822994261531250657282307170686442304621659627864533899538414076886645153021277615872447934116170404238874179393917479979106093401862732606385918955205760505206831465265473819429603360992473585468957533066218319018752527629349173769387127315169021737541486977449015519685127836699989354605781220524036569925767105091909238259014818253374511720770687239032713055535237248814564896352230592507509504578644404608266645336769377092748555601726682538249425846375543764842664646923864956368706511496480248475619285669237037253259785893352182705259694918710928906550701273751272667993092954029115482595673862436874992813235145835185293381801351105541137138517326114587994935354343962833631930871715049004323061646985784609400147941377876198497463381514052999163052601270458558647308843817688573000181675834584063982136557429384272834569372866657954201167633089379198089771902599095159638744697379214279609166749211056666549269806916560086914609798165547362178221687957125849473972395896990416126340102839386880534456084609755755386806869678633108438724706594708656723387103459157656528869347584192783808264529031576122247309027882233756929834767223242835137899816022438151411812562430705711324038474474268942187791302926565671182825279133141138635310263540462677311475463701577320666196097435414562881960247629694287981100858653933499149083092265285410621950895295303599797136664378822630506634822213051603176162729481969278501303405302290065203253271928556718012334016973931775295288510788365460267499763084242880063480027786033508344477306274735968520066658105690039104495854356810166886255899773432636825657796579828644844443589270962854175742632316600735865157864279848659767310714063027434272034680529454016813669302149366647106849589432739751757862977361777505803138089220813860209127724013774114815344352288012224567281878309704707420092296616618166102899558060672234044157381509948447724493963550619425271693816868544222871840299330204191753870663856334973773233765406611825141747812935614131273073442844680007305705149591035003566173951501064083163751276762882778156172361457615487975499812802693407145970619314151586050229852132644478709873143828076764620169135692413309786465951710861141243507834506445678562966174238893654278714956253688027114840025165053939896211482930842251925347658253010488437591477951064433857820349150552974762133517772702820172688757231638952201568206595107314517139172086044612043502522962425441014600007563850453902447605190276237793092618081686245629264256873715441732414895110543214176107962312551698563763374038381903186259534697209010955293141117085822303909254445002927930741767872852941803920894859996472230636006100152836695286125875099778646833544874506555014576961028571291763319799901803156160046383466873032032760024219992979005870763572632544601378312736211271314977989027035834899487247922690250941932207619059375275576070560060195319139742494439535581233789551642632882582353489239110529324371166308912125144113694978163156136308889421769568472898735344985817151674224082333227208364107605260123331840870246161679772201936363580442685920658166134314833867406771056913409327983560926774663215659814116494944819520324508108628764211683069089019072568901691454784505420694030116952450408727045373052521691561885128003343999172387064764462510449804881411067558739064598024569135163120884398997467263355677281096438956275967442882856539466754435453013751730652881479636623481355104206418681206205380156024216077313283545944873937450217286089985943718475508911072968087445833651185443272283707054356562948879159520795138392258503614002041538260146879696470505167565747843591481149318117054106714748701972730035426698644039429796906890798753968059462630926488675935338457786642558532333333881086974593422981525268884051382845600120744243898141853618552910482016432803649976933367732951249662365537474933998711810101836418396866425452681021599459780683718018732297265004648126853656944575775706403510812417702943158139298175219458425725815010362806577189935311706859184921801266362844657649512937507160709648085725163183711600173297666940390106956756274789829135415471619611042120328283261025315625998468146298398913367915056398314846728838060215185209180207869463422813435458362478168460752749630968139738928197807441150002185144486246526864704784373390140605985032929130856000799536320817803337410375932361611591274790707339145134521431779637375946470012656623826644422542491265778873166869645139527468689577011002062607939882003992440011279821833429800616945774740557492570705424633402005112682580844694914934088595943945442682627833695625159963742828239592932632116904666091989525459261513450636995654938002251601283094948077538241370630390140145632612366687533906607418811101683484616449406467110964055051210830784765593687504332614507089820119756800322935012502089784394918947798613805575002285520387048283375627518166184286826381062586036392913007968418167827721029881182783114134689777322281208077203307318391543731873062073438453943650194915800979150589754563115380396573551627108429853670015017641633913677178372984481287880573845300388136237693874306704496833385426256447760397574769942941774397383522372491610911099663887684388533017535072146974934361572480371300144543537899342987977601159127899244721426542091147408379757519830556603077437659117001381527971987730353231758365553838928786922148325559311425418005006035283829778619038981983993022680202390147937813906570638037804916343222796912318494707536053715622402346926406496908210905002859092852907736064253150172235759373503283129311515488225190052251211174778903755932376615681493215423389091892055921603206100505247234473999108481603333521004383118540256275237563366418653535724411086831666848810792152614323955744124922675081490649974404024100174911794143505112066835093541115081177593968670188749791745883521771352277722226534571505697799343488502030531654936030396851508179874105055051123047617842137368804847496982564699438393375191059318473904805918689520521964624869452697131708594489474973437524352510995342474667948391168592260036558164336620201539855732828765257542504154677897299117469430138484188152832897381667613271625429192288315696619614845415269073777823555289306762574537368486971460377061497970066458206929924852197394844949051671402421049575900450517370537473078717594069207767082525553550064740881575338230332818430756312952888925469060841356744140464080148120313169622628695777807447458141050319870349093103366479747385199320526578248516625032388724924611167626831119616816539975408316805895803800305558001753424907342419361659754695919270258872013653821280012764959593401996825952163741968109317842234994573123267079636479727546872984135378492467161253253632065217056818448338805711679377005666432043581470360941747228215165978584903125224660202711208929647489716640109320832707795435651523480406850960665540831788414735360445713701166546919704540307603008469845533943236527451154107534615112253399248532258633374259739062827823269365695696021099699027057309426726659080488778744745245692810645343184609232316530199346271582610035073018437703801007323491026276362101415995196908866320169393979957066281733028165144686954287916263383040144350850745229918582107930277304830075083362669562853596747498817306941218718142943266983568075731541455217745953438461749925052232840856545387628929534876674986993599993818085610679482163218873485137943304753117084893467980286224508771479759425136745620990099074867917978154727456919191255084546491535081689255800091969054951138385852828076927311835683517071181528429953191305075114701293155516057169340355114986725827205858288646879065222374395646787157766404646499210906281067133544611251611108783951257032967086816200182284235646078092388572912200314815998099239411901619013824758208262212166755180075777554323860075411489847582699517152328695466326961502132082127875049076258918104821044795150902701645310199020667556156381110390606463558842512063701204455157740906296189606800830334092780375326774553011177032720158027538822098482725550150030271057897383998467249241411375131510050430767194542160398298745245908524864809184200790650986742692338174498078940895301688135700074969945115171330357946855290050128548578711167722845238907598349630521230348120394780115508629733891326721219452885371578979606254993151677695835570691698821105430778592109013341453027424191899040678349980655479455236066066882418416160455372808794805066519291427639422255286473527832782780958127043437156612790258615870382159463573968976963547924216509503940082219701698896478201629553577627371675175340849949932202003109408715556739470837402557997002460644585434145729533692440181047710719088466432251400544228704603573101139007430222856078727518155375956059405385358671131673204560088117424125715139391677561045524185848770150368256434677345677827736795714374932913205327597146610175499988218764900651449348163559174794593881739171176470985411378251142455749011435164734989262337016774743331144842674887242796354955007014711298683002122956988850256690091515726283132347922436875598284390947541963238709998337244938338835162486173941101105893777022825058346569783986182983867882389043598174678139059644122302141369419350752764713594646284362354220860451326936166675822225323706324636343090544673273839892160954604272092678354732905248700477607323558533019406083924365400475269683939541822258210540873336844177940068902693947980471408789930689571901953258002466838553867032066621961452468024765766816035868517048257883047013797910702721839284047131210123030191186364799918000913502623385885209149984570161331933562132683768969265060536094133846070813548250248982245790100307300734907929858117091126677589524319453798390408099891552446022929305090622872284786685890269758468527241874216739886392283141517651296936976830967557171740052464266462462769234385464402706380642958419451586622585385916896407608073098038552438310862137111751922175265936274153255871925520291921874037515540228692218601459246300696761915790805435702945071768305309130685369160225111721332163274645781824096215664525791496289520093293398359950460685134075410300716300423805411286693910837863468165978833412548786888866876548350174204151340125942168872609847452512373892053432038213582789022930619470994838991874196782936731861113260823669024270179721510589935150837027205118242286313034487712053814083838645137756734907806802357507674314277919870927025598435050844537904831878572870720025235706371192395569459024436372574194045406972454948836361966570555194816391145560887573793602047435042077992441819399705060335028657580882694015130992814717327456787298907417472752420133892943923417252882195891588266281001813885296961486164453480953338095240810671228155526670811251317905271910849811811659770698966129171504563828641322616238674231417832676732535693222569794681657593805587452613609884829918458186277755751309818620964146764513491659196796610593681100485424335387681764731872957350607365950833024020930069865338464519480706633881723793909133840660185222416908309890347827241616313509680681449836766574612090070491153532251546721769011054412619852381532545707118977044161088605631499463987214584441371577271357727139541011394566065773711826744530754936153401726861692700616190108231483971544623325039559585850774070545225647688971014381925066899597435598282738367403322452795831787132442722332817215521072288910095569471454429349435376676658458973527862930608002963424830547553048051329195129019359870023002704086752260371647138770252553478557175770821801517853699496415229900340751561917379972487867482762361452700998590785033709508576027209430677025182757835094858206213362983375972581513521186260248675494856143163122270357959893745761008949389827211052283447234637009531449154109556894662857412852033354306958645068630536114210680737062865598474868111471648483011407732393131794081611436791166991913463573998531987254408722169258233308227571929346212516447714974819553677942392625032576281752116029928541335047498328804360187827158772586686147846681283413624432410024906800126398367629670053381140342428444646693649626230306679787161364853762942653033760018724497557257102927674474628371506547297151902614574834672648997864850696443848358164644321238814007346525809236472708510161910912941316026948039088134619494858263006841264201583427383072091439228273082103800424741862423149706319129600298077961524824790552907029709249750710468937346159042754025661858859521395925401088425990031307186661816405204407864215123495663719981521430237869662962307466049196254103559181939402476262096700788257697942955485446459798960732228168798567353733324251610703013459414669881746952606927887288508979254694257653432669342248308701927021983926545939669074646139397283975156059114251361861411818562623655877263455593819225886242667452189328350713242178933341984710641780233618713232064266702020512278853939774100104695477428932562844075796617356813170372711861358813980673424840456467809647256434952345993721528115821731732466965887272321756322921168485952895091693567322094333833975456363641185142607645725746596849839638231093281589196753539575557246424984526968710793193954993356871110845320893739633665945894867599038638608388189566999115326431018434869688302347117457895310932479199824185718171161748493700504134915636334223657267891888695444427775162627918428968696487157172964688214673913089172384947645056515356436874762518866186522807742372015097089312309673872901291268931893903692873648029317461146647216252800703910291994303960380572347141095105820753992670806406643842863712585309729714555046397054915734814829409128111522175393080906443974079655703484570375531779746702522681150044774352856616671783327684511464244273486683017572062542756662970219765067271796919947170647082892714259897609920261514407038576846966554615179071735650151259645030696343914255345337279732118462706138591238326370848803148747059063617065742134163357066614280442226475330331700001303358994429738319575523164635045522565536450803683611051325469967460912731894891238811951195970344474837077363095428290196116478418359905454699222840584783503098278496215111040523562385761710208838376161891739368943309525515331531610260004568496435548612374468800150429277133397540764697643235531646748774294108564664403916259019593165053440110842732094376795056975247524381791337808119767624115685750523148468395420706850653153946006244317388253594761014567060189363635965908551002961928879497731829774391743441243709829452230597369218794864451014395970291313761990048195547875206959455161389134499680043850059333133936413923273779868791309654192334451094825170111451724829424632815952983788743152289331423412542793826017907148726109251473970430020770787876351828871513568604399360374081102693351324627180569525876951673423093022595237583607036219233574191610882013803545006930632315128317646839840230398449425110048481970418894347084300555170671570637882591141138968485685167827024895909385544514349382343723632808424453081568407859664501677646575865337122958868102554347822371339302909237932002555779635629518874025777670434958386464808286455937027535757708181430549114079713802813107232428022239315919644616694545290208494665756678042115932878020663299588313136787547736283667426337397026808443393940815699701365604960581390724112899574626246281105115795869409148512198888193321834320674171929588529975075414014112060031818824547709888124424000901846364400158963569397084251163847495730797677628542531758033566718996829822258742292863386662912279179728312575523732678746184877141499451790001979095158227700853774622502443562222214453108384197581373477566967251918376354481222537594499097945927544576505880450509347250270027707898364299271888745745163832486923030405710390721532451531373025592881610679321801837884948741275325678493162588935290273255096657457686059084479201714201069373364994901318328281192946476699757677285129216123763414380332505890812057905090579469145495670511770484099478184418129940112832976401631043338233392029838979333278001799379285540656250266674030861662171793910263191423293908764768192883427657607626320605737697063620461968655432435274024928909264784606990110887796825638057877620675346622458742488446679325428878046212191744852712666694251927655854023843511714323691496159852952703941481872460152830952146852023185748168231963006624419859471729622672809234916704555586931254154056239857617770479333610017980393415100020501112037949508123384077476792898016547916347203384308003622205586610013833374161634982392375488330323216737078952831387544438060424115683366806545883262802827836060999901723801832705163878702439811960168091919383325085353279729528790947701596256510916105176937385605973911682928705305548679504685816789364772895486896685157092350678559945031591988171075912017874170634362926031286414769950391460738716687466389333204604196566879270512484959621072156387888012554489885978201005461116124864423137891158216971619165366352993655664197890743776488929216343925885357074490821050884876783283015477445702688734955034483616220638185705842435907658131871403131737132922404529163911047375455535146655767860173526856298130405090454425605084766139181101998353619377970171202362289421768824621347413169748566117525627645110465052065052489618092020866688393392953335220084029323904123835339834231431402839918333212389480449119751890851793529842756581654305120766505507319778796644603136843173575983507036586161271752230926903542861063502162152266188973690328929854975699699776737818933481027886527334580508026949865200285648751486804717843153913647150940353762784324992227183424758860225014277786179146971972233956305232544548337180083662460730278374331672039606715786146627113090461305751277314747921496491230238216524248970336224571569147648724051195541490353754836375693024329726918200411596649726547814710419254421150883946668319551457877701238869667390743997400575660111512229809820998616805609091925359102511033564667047633074153217456598407898134508249495497245695384821261058424551817186015484965963367052538411592326613521747103067706258246033687449404140689822387026815477714769550913287847894895984519651313979745903937810628321491039847906145364137997284951383476555381350150952222056123767228701788827951614015270964776905741991483051536763656362591759693752349653597103626142392325945600196352041372356702978619549997838966067132547168326216210699226908282444593460134557869152097235270069479156923693456940213913223987381716109780452137485179461113096029565163283005657044435090335530529821153001285170677475598877569162158608392266942514793755245127163377853959756170276603451457620813400219917090268317380349804201631369789851387604529135818143647530574420872865345912082273550347224972190175619900418911808125849737584487215324920072864640770954653741686719173915010013563420285280878751584298094582348315199846713227749887745055365538372389349154233727663389164392665906478443750595535521276085034267970574073004301684842444017239004721745589534169541209700504479202358874906754790991198317110519097784359735982860398891620452572840047313235002914471695301252642600572832386042072943505797222512138167274787734512459206136395660240570058988864531279655127424508977385674233206367437499239291972731990247990452174188971687761969523432801880841173929051427202889471563383622931293265957784760421283041380988362832420164272890436071335552898160093868516144886496529115989155356551569041533663517660629830574417562918261204808427274268378133225812685147330788805966504335599363118135597345237206426412992303082499195554421658258806288476528826799603984469429941425714268090733706759013525982160319250741158465603842986488810436948096306094693077683867315664472007270087525156236920378693790797568413693283959817382669800983716348219116633668931422595702165202625271791193729297772023336721139818216666961055143686919320446975555524675264470939016008339396975383865550056715518331573918663175409001018208469091219471956504860055836766665655783326273805425150851079971682737853074552613927354127372412881209283557054578212208519747617621129986454283775135992784716495113523556007106348164244354530933085337805918448906120676205288757997206127109108178560179580882022966767417812536142809711155358896065411653672309994350540447701949684121163771895703775423762343530777770288226451538909717143665729222521372991372295659335411519615273101126707250511675433555095717605268031456444962578363631335327448444344679044029704384173392122912555572172026674636633834328539564428048135434150350625684744551791966841779092902105854193013592265886023797826653999934047042684859124396870911343113112321299217383651008472630920602637891081927186051153908255967385046100404336234169860667582250292597621417252989236372664830525881378268082915159497977507577049493173286637918547928484028261104101451407713525574707301190922706040496841506445382399925788615460699824121059015387933926753021818290492945327997444357548431372129140701966738601725174822144437055446410324680917594992998115057182455934268640880464819811325674006136731082947153608442339904181401855374392907882936452731752909782830417639680095343289789923707751648594785717326607861127459987668527364965694322587936327945558126958665872678735872164691502174488506853717221585418978653753378389846325398960771588045402998851979703811292130124007841191750394975130857007164686050267559091561822144994884245668113074181266546025958267254124280705137713739606784309563395524644618688689461621574809669638693510201910750467698366501579651538698364804118430850346824457184703365988663718808184644294647904110617325887128357793052118804559880891938380048180428233034623791784286624657441075012477078562883711075940011561815596794232550946684241376561885348400127428156185335976622788266657245797755443235248135607748839752390030213345376088800800274449704495881206115636407507176029787942198421482633163921101324047011863367199452195290297716652937429075696024817747474762444210326228143965574070668058495095057224283689065949648991770112332408055174789987289777779652406079699241960461249386008301060771955836985781129789141547121133913976574462226184535079440856001628913250914435014987847630582456709877415501051503719331757681355161333247048894494020959775715701790443483330666630033105885280427734240420309216469735833319044602524592466745459246878123270142707464570583665632030907479879934983128657891103803718552667298012591958152856568681812375947207012876569122324099211090505090424121218435265239147966374876081016053214889085562075411259392186956780089834767243040336393940889953308688603398546706557816464188985221881469302657327667728687969844142832228273522636866884213206606122645665479584006080019251525724785922454469349216449259795608664817732647233262332217354453408343027337532397392931140282419788140261338787519669035030123373762133199411291451165963854689178652120323288603256053454945141396950102259264070711083580832787452411183110933998087848026839939640310741249763901454374491721298114994960067198013067784933173915892140369284770489735740962080740399887882039124313660093681586839198751686073404201872023220271686512537826675217924755694088287070564313348105571566162195299239652610771044425555364375934173395366651229977122581716107619053673091318544201609307494908927785398400088703093233386770692665952633514617414122793718581718456219519399565798473521620850725302885062552212448174199655209474235408978790630905823229693402633460121284303428895833522277520926647685299958109497067170366309114816721090216997816455872858493153422173625930971645864729833837520097313031102186003858444045189463598603831563725086433356243131453355877814426645188438523530562256470080728708784137335813029997472048703248313958528941991389954438837201136585081051894038698209913588563934698513151016866947128199356999435104843790255162084484463350033627136145905443259374226821626433492936923111182141048455112553608569245547611715597329674360127978588470675717205869560704804895139326224489072873618965005355372749385352824100852510034247670834434202689992342998540276314868418749540543191040938785867773296204265489916731945042325126520152668869613421566742226418791538303882362780665496166935718572597387359970984577620480009006454824057251567710839689347788417322361439710144595858153762378250596436970080480875187920092854191364460112997269138857640060882955233927816638067623145607623947419232455291761213029241151098701734244944816453843450408350520555962420961268734362427967322153088163364483244070792991964945916496563212109243349448477102841396333485141951060806954840342106743341216079473525755376271772396002025334772152775377347333774528585285667857310688897167478204521944638900979133442769485891082500228364817274996945774405580246688702089762123148370783670323963419015595900595675160212052949951599802784120448276021018153155630112526128311035886709915310595667146410304046643707832969993124369613523264434671242699680078005384158155421366414065596043272011315564279266664117951546277309949050888905123083387182072347753745096076691868168707406983177835233434976977566750211723683671738444983721952159026704146152502363377610728612856492692491761556182334458049265275834757673847644763282494321863381012929451018463336057218321354188007865771257456812396518794136806849599468303691164367883148757170823445488859639099341802932675581602983898367292063539531523107340408582543265015060667673583315858572841761095722623116958868258643361045499758579048596957434797155956545380478060540368852478949520110125628121139210938538853261505227632921205244093017717676643671412589843606496294920691913211283058237777600915209591697763395501725797181494929981507832414279268192054439359489380620828199222857601346066891629106410778736528558508819236138173676603459132051347282311740588087908886732416611508542199026620818839684725740747340229107367693500674955661045383753108362182027827207453936688554602883970569219055123587143999462893309846139643915689207743377232032287418327892463662747784460607391188568315482255945197877669929725012548491295121418491770574467144247708113026667988047670852002790424114025871895116716641405968898228724814007012330077651621341357268500981356484524926224636014556790067686228324472996711586553058355237666023618766150534822284793731765082692670817286874593559158741863546947961554252609550129777057259360752076394569011571103359536982307281065229598973873204513694275618539765957604250403176209817367250277532371469784429967035585599327920719305097987979970465195140739668875258555716594043072291224927191985351146699000477644384319175705976594780694930679083467940495471832284145814895738184265083091282952426549432225580563994633888775788835094427136144160126329498910368806325630908396823829310341753515876865242224651173009094742579945894968428871841355309167202391719347944940962259992560067330298235676857192930708151552170072579635076945678678874687422646873169853534977334305674449383684068092173939894162995456904817299141577682854861009175038270645353902424028254714388008201157830694059907959875926518190882445876099236085241853112370704009503724015668371693207907229393295324922182284870799439731071363514310903913080243362462626279016482621199072559726986550989969820262968757067521828754561343325258839516899703899103791397823709538587405944850861938463037666382055897722727818738856355446879411635835399873017859568615539200555280214020035885098186726365763296357658602077770925123871809098514460006974142867781559150854774808148293413937153540612711105435002048723340371225896484993093064998086060139388781082648974646179061259635200010585575118052759414683099788752518313178346095443268063327218480053169102204580029893960268667022353494187545705492532911940009536469689062425897796722167840241985154607168967039148957033482904717070070537347427250600259625776129763606483672656644665727830321061606484159373970980115230575884387328459727337676193427069290170414318428381637167088227417031922722974358759691401104599889997836486922124318411658548744451042146987200965087741006279528634879439048858676811175313308103185936560927713779768953011485797813729062228547922567916300901260783063446533415304401114864799510714255390094982596877550933279825316370512292367069208879144712606729052418672293516026523094694273863905030465913941436571542584929230756886540246678408847586727398329230999918014373836727601200338708160154569013311780835671225966432444887664443982601757529468347523623199280456475194471680795361798633758262590753948364090451306361905458436366064699763673742049405260263189194606733194751875855827067827845052783794699078518502934375365805049950513283659727311649864293295705032783167115845466778242475340343326875762208801427128898377722947355670340714351567029680448042298219484219619216851062122945274066231856780426008776206218635407948381445530986002551345192172439050909768602450581354646456784878431730403022502840186930694753157181322067824176060269999225029133181486112901112912583212536404941380170010748831014938025686011630001656258738857992167903665877961472103233250771205765298530047172438863017430569967431563437502080552793013247566059113532268997508550650961317240381690604282597757318660172003896726160297844942282452720124665700467222940098559129645782528614983460487970821470888957141515138866808769183985941892437978539375314772830006935565286376876611811717991576076048467253220668563112807776557444516880240470651732236941117631647359606395470939917649592515127753397022864438646234696578432148648670947783845093924185737148505959667429883150432091802599035788716479086696408815391231654289381172620721850139270681972535148365260800296361837045279502329969315804162436270216655559350135320706539937313695471276831912106700447184438049751795799447429684758891018993749537835822619936158044189872595409584538405326453746164288787424779235313137294172484970696424480776161957348760697282494829883462220847615354299459570259376508385178891820017374584395674074235040270154223226912476930372938309608204582909629676406514452385902083998043297729289177742606398967463271173285574944027038833270294317101898975717337542781192764269247801036350640682084491271381608462467886074043164506575574219664095075103807696027899247225980298123162833485896374215232673533116092440779703203627312628710101717423956663615937377779399027334091140207778481906879392933581507093669130358659330463028925781928273146212654637931583325451108440620579267723836471683972524683636283434449936007107116997209504932321045756805493534354825789709257961781977824393776456785569087658725462503655872487601778175266272716423640855922440681035733131101703989469931182301073019868297168630373351297046918445497602408898872938593290824922727498832059070917944827363287425090115733730316670849000560228976865691812796090517403201009739668118392712996425267272227546956361750530543388465932282477657819575136208723450504297317131524724151032623718559909405142343557794639089274089026967972534934242669236633876258143811274456371246113654149490139571809031926291219985785208480474299322557577792644578228889188134242154142837181047261157805451269480551006784623153325383283301371282147358213901957392795207878472489243369657914032510418847280278060260160291860796706200661433484707374939455884220978234041709462756136603177120064852919346114994125095943085574233252981296817945665364419680897186442899137577248780746162532146827313989804327841465669820402353797758837869643842331212145896027488931365239544447492253284611973817144171870426571383193415862618544082827646450489563984423029225362184620851612330452308677606888170321352891867053593814503879017624032003153274204834241344614354142648383574098467416374673866703945924930024812047820805064238137753491469126029042213289686646065407789278838918730414130303575746515289795558336508890621083002511325907999947630211234519748037700705617816565576582279157968616163126939837579402030509518801408801533745489958568355758836846995514603164480711224367264519318561133645098348889853339997038618790407513096155148832892871959521525702967643743945526457935534961912872697742137116641348693657276009765907518648656049451933951299744287092676324314219395219883649563999003698312574575854209294805551606763653923792689926710029976532246222279484691212376446938172232328178042068871566229680574076041124861407951898438195139888308035158859925715298841232575004703779630850995531164899439957627225002295253223898488222409338996206112752409912794976602886290808803913501085370039433435499092165962097717963208148422648412476681066647852893687065537817396960653964099380577052689392990147435355566955293794723574516984395537610098407833437427983235677932317236540250520778539082994324289064600127629758840378832551685892007142742150095264043245638440097497247592526149522830155232977031053119897717156008989824524256198524646913546384618875310453050583344155742138868765715894063470531779520688439842391621480758891323288136529104369985503613581864935288185228767172915245325998641513367850492008895369150761398289523363134030119747819749821827283082610114141094774654919213266706256836295102143105049730120896992971851021473762024547097017078146857505797174160232823405402148135900716474250391491062602305432043086709215041086306191288396718079662450430414508438429919824861812845493816875740737177799503348795107229956269035539440862419650641605683018710105298194370226970780120429763730479054926175261985712033887897728206443126407614681020561314677131518940849158351297468307352949051218861574721379249666776869821992153740472860569632016837477248605862205239942719959365535398695392716354990106054946960095262942330366557302595503111527277713684397422610813646100933586197639828180557482231710673118486344155139348332568654293910393606421694326056216411505586367195688478654390746164157813962893730224512926882272913804504519375227152632400774394670848516868452856458805179076971376383790555670373203016445958962120060055832699216916962832237676360771110192691712501775272443751780073627024690795015379760198406618981245860074116745720843625795831793032255279852597411148665260595710828446693279480918472406324674625111040827794096111380590267064951565997513311853277354434572375212213545257075035681941932824856098242825363645671572214023942684921238995531766987936034701163996844976799444918311864043623532668666194760421001361162431224133267450321069237212600470601083547958047120871583344341562998978502175139930359554510686756449345050659653076275469498777712349326633269082001403872730491005192170950963739656207656509589454853479637278628835896231640110222694088096784397408581297668709141889362521802111326822397519153042667359214828555475155640199341803879163605421954811790158019526296226847623645170968595920078598752120570692163120530054072368364559634651797563963106085559656408736697751279937642266067367314251234193199521481896653229456889947620198232402663629518005413971580462767864606368608527965502751804033415879060802242360416921313193380361999933717115643769840137877107483425452108054739400656075975391163690542414417439733235088364359486612011405408099488089341299510382236086035738240349219788717653077720406429311753517101584534239322577053597251841638375041925083416088068970264668401128355439954527849299432311541449910802243845861192740802837523822295200652183181633646256501268007609093055699444041362095622657541541449756198625583623659224966576604423800635369956345803925912476513342877811960392149671440508750360376880837365284045259875476376764487000211713771146786557692966716565966911601584973510287994583701455107559846381598409306329581073982822147900129791976236191468707458131327523717419962410290516669505366910879289419129059369340900350092323869948251094237972092802259555337051868850315355493314139256323526412388303593153050953109852412975322410529266892701740739783288298478931680638685262652635043415031652996236435270620733599939255723165646829332151740148078467072785622703149512709761115957871094734337169696081673555070507812316768538355173927958141351065864467467620030528418381149232806271812156949090725621349480389186514973835319159385377917784841543828433817806248185974985085555619570250758127842076185846146727268502016406418193259052395483851713660174685485136195860950031896240549270460279503280005852327966642318908924636955199208837474565433274744526430820155278116589092098162127869457013882484407566949588630492277824289136063767628770760930523214806260937077965664792499453883890189917777855852141142351713568162211865024673200044972221708607000427171960104419687265266000079809683095164708984432517680419801443933323902037743520206364784034281514918516339446946252347398422146159503059574905906914852764166940998740448240914483613282684440845072326805138308047794755139711659758462456407273169109757687525913156440155746771748392137324221392273598519375848954473411509217148083038608842181419759386471320631016519025555850068351984724814313250646098861977162729217426484916888952593204912526302006747448373072114435313310642465056527180419936780956675616365826091226116643470620016833530589764980786160427810472235843273746323499643465582978713238853122061644438244246062751498434093514067752844366218534959584515059938238500767548195178806933020040779730100639748448989937494767428912407513169324302283661903759107231440738435860379174081065163925614452516123673286196789272662128351311716282031606569637251421804838219820009682658060690972405365287326994066845735232206251603341946640200985837945970559645599057988555500362973112795314825693857339924130960490840032058988210163616771431373690710401168333041903474264366723725029183740442937406268926208996626379040893323911861580837437516448152474913956221411714562014654364006950254389691577297706752249118975137088690290856827479503296815932946189205489566919786581127471991840075263424987993233311533790188167748274566535584806882150390801860216856463152753885978289002240759892689298906565747029879607498849344567237277868097754531989905454008610987074422328085811757441145751217237809454464302669544107905844574106623351561223590720845247408314603692439195459402094756950228296835287539384658814303860715251681918069013705671665339302407843981370103077176086862569351408765570134184627601531507569769999479122889344614754602278940797593456690143580449291876973032601875150729845164782505218201605029325270738552039521655850361454193808073599460866589152815469508747871172754704868655786568139517297447410790708603510443488177540433411236276648375667167926953134158990172061815709204490830214129469540298244168079547640097915739667645788535440110748649132804952573732973627249412403894506294181071477071857746150465637570040745928131679563207655467845765678557405114717798462309547115140786236815435655665525824825779755912276068057831890598014407086684803591750030415374331606141728171828159409281043430398527372756962500425084765987835822160927005819664216845343597501137843703169908589368819809844194396926661938335309031115175114152457402729229911270416655560106820647181011880757357036110635763410709083948372428233322757922268273765783285622737397096133712575376938223991764280843951329606863065090179382525321945214088409134683394680068362866678672059611096536379824577925831339546286882911088863334011205093751647362014777812357285123270010375311365412481802287636091939670835948701679762893944668708879457670862407148390518768184537521097164384428123073342819970396359956757973218742451766755992792305599408009823832225812998295417564074988154769905410483753914941964945655666884975098073931491414117240648080932982179371491417260300782611217945662582037621218197600467611729187490851273045614032935260524763624829005409129656082299321818625929730795518472143437824832240953558740392336410738377024927383672865549086661884084213519446828804598266959791695652332295243619958369186737769143813687101234317781249976816994860929271094259400675892579524527123180472002616257105915676014433734411010208830021790447386904611901631228408757110788229656050506369474371773559392742184348052837595995718106443678750994952649935603264557333776913475576222570495240610908335704027491555518479517871975667519311848108468490070539793682078730356423825029883833885660794898815714275517077267430122071744914778919844625239172151123638592042678360693091792371868021179898362490033823792073790138741312118705181815125232251951209860156763710334897918277075593711208903180916403217210716407232176651514892696300108606947749458546490552205613004730574243016982335604338861300276980393447612058476871232365803829791877719994551079972044484066453365745078093595101824148953423584842605590905937176689048070623497274762861831598166234994514846202878157890577627840303775957995032356678656957146060239652247520409194603181771141799720311753836496226837894277712809671569160250640735569591189694959155091941416575778544688817926654072469677252804438365110921778015725197698541669229544099228586144074809076668871189659439607565275266930964988753223704093372325435216822382647946303140117495924276171730987182263526430246495443902565865331215844747228288034254465646899020158365928312337588627737872290288989502897150589654364207102301868374464193325271218352998755581617374106518531506596749762361196537012312359133312063945011911457100423908691118867719127616521513088539495993633292989254196852585163201092018793872038855980693110090620796345101680946209424815819166094233019643110238944114845311376640622627649168918249598173730087640220993674887730624274777075921906149158050095235495241072015195014030643992202653657804074081502890921093915385121253640029930813282830440657733416798336251795112116746079204329793266957313147166476717945435190282358096797620494148406294815129199613780710612615107803598246294336202237668488942067322697038965094142424735053435059202390164340651744723997395341129423850469733230271601800338060421500072973155247602389696713132309954219599165920708610062566300044599562099545766618108746646595186701768592091156964202095011860741003403683223880027529488071235041925524433830151974095061099052651868411264031175712470154705543351870990358410168422880063629615773837884616316734514330035117154811796618511802430840058925217629593843483136947130723449308871847019956691491271435733892473510915688135155065420843176732399759808264477794475537092846446557211245760691016699406855971288715256889507469725235608290219166473195474379818755907028771142507279205099270923884123225466246153722368484756235255895612840117256157127277229503766300843960612002010399433582246061904348938894634217228074791008907669424351472042667359736721003111542601926139244382782035569771373854309437015812375694154720619745723689328815989855314301208777160411266506105021018525839582847668135133248650367397109196055075455705024658189234704489968420644033944548120903505468544851395572816025120175600532881053891456598340664040599217117045129601596641551639054480517825107323458308856227372803484713622704160370348313965013716739324767524578705252213185606895114597671862886343840894274114877581454347578560155523996941483690304904317727280984007117358448310453311820817013084415416003256643496241751962570656231546607785928241686470259497430418764586747476416537554729211318678609374024117606391731079983074085374613763383360866242576573612206377538657784715718778199316778059606541278367932865336102335663268045985756154648586896747489058409928475105248023378363457350085752050689350669295310664163598539287197443118988747159070341931122201540787272497353491593358412935657819120972111982789322976698515878214335829719975205582701170878396454749050062885577250985681559371539552159540030433301497170549770185696286755766586541203636929085256161344054691780407973343668922396061512066182002514407078619621545360483784410979521527436071175238921252660062822537767127989890038376598050482542320399577567701571923688131069804139512884265380571251425253434124958120232674252351068975036144103405570240308857032186786163349480483206309202544422708210822900172510121682401614870488033872105096120724071921654255183966040907079162978621854403062290554534854681198987907785187070829080307631374308995895983269165524972964704268692022918645490628252837352706566841209935236753267166630538326755611006522853956023612805377519041420267979099667241033747959630446394451558140994418248127932862613263438326034731753108548806003110204739122261383909330383226277481644441543111578386702903577608316109890723179793478477343809863888123152807243321394913273350644900279182895917320275193603644105261985228083688314658490296227881144414152916207003755088165796642892426398524140484016062318513859107724127337258328025387568412600424508115579731423871597926073525658727911573075987906018708240716042409499505015684124654409060004624794946181609727447943375727988811576600743012999157486512670832699077082874472803580616364661049731625628482121428984668423638287468281418529585294669256432666959800944964553354741857570275862789450425113772034917114888744227032483351291743234940731502108040685533475002619917556561858749679784833279266309669843227090808076485464922538286695304034238387829463908798415885995468643514932875713867889081632454364385769297709986829378757763381814018434587062684483122927351766471430303813922718006539951164402927190834907860125725679706628856743423561642606331907265112325462561353157922309015546449488196060129207706419700876742054806710124245399513978656059319319093653012602977682577636333423149271335085222066566290161840037460004951725351880394943174809844211697533395354041380535936791453705005503865956986384686086742927014225875977015880434892107518961493290952862760143911545410803399833372193526342544353596984896948387081633272109970609256727842879649039213382837854268841437195134773082041081174891779196820860752078269327230251732033723759127883440826390110557286811995349698266076579857884544457095137274639552750791355811355296246927973811714088250209733362226332219281797011728150055856932351030600121596326243736893651948118984625427515612184722026944949665621609492345550383927746323523683067702410352765761265961951716431058223660016374116320223836760555016207660447121633159009347199759445268564558095509020269281008985197696830528393010833019682479387848991011484165916129584268792434693898045466885589189615526843830226197341671925851330034746904685199423204322805639139102765962229010215787668091491569070706088261817566868305594020259161219067166537597129645423904501987122840399819774667770459131932000007006098033283646249844749580732782681517551317704394738656493392316935417269965774973453304996898938433387222643900486572559817121419111490497587563966251572034573094905619526542952037356457251264686599336036245533944596824146918446216753659670976276170610816263267952544788748584497289075911063113951032750545244583733976619209896008673648692572948118294922285531257118811439637363219049739052638321341605956503050339264034337933890921785222102454545451133129853376326494763537570235077522797817288791273332330933395914621732008702063249988576035970484404107636199736261221378504016678091596096396444612775923966897086605950531769014405870712622782575349494980183695675132073610211837461136437684197069310718365823247245519423454471539904471677098889126628557991418246612301504878426638734604513866190232958329017150033489417126133557379461218797171605349184929804193528156507512844843265680750008181143392565559505764699272713003483830321052328392770106406692908031876060065872075717295494004851490147696329228751392148791526211671565926566571246958705453735235589754567035408987813364570063693267844268699856045267167679543748241280769039319904853286421746277637768107978915072662292590628807025589451405414144926481139823352097859454150989129975851260503861525726762367104151834818262040495436722046046021619826612002446837634901936780515336632639436584086211590014047337821949285179214952865130084824415413287111908979232570908171475494598983289699042435692035170097886922646473537326510903505590031351279192998158358442769397887432114137639446491869367262174992563720193798223717646398922744369117234248782884403922103663731064540097500780979345234003671519800842025292907436747072229169465283103500886406832672841929335054060077287556567506260591105502186018197786254847810829645390505492774155401338694661892125418644642644512738388605920121970344978889772424586836767406076955331051511304452322960347363450433752658845254595941017014432141843150189404740025386905110048110056355693511997217841248416715539801552961169199022047433053720100694752006292632398833035454728171562392513940558197003876225568039862871953716979457474352343859944160440813662761926348490332725580933376585194325419328805350727130722824161499703859299628128128231388906506103062248633235195484916556845506734250342701759527852867330668340347454711749482476675745155731663285475183310650679405574916923313443936340400303801080442301926400241085830462303078115695680486316179501878132611438775474042177380121051877708303198435153024050394279353706252244087320908233540005583247401253260374274873187730859741858642360316896883814790587690836076147523693015612634489640189446490235523428842518887544878504028448621579534447437848793829007220054147576806511831969706914982867666391699864243131414988968820172185113916044236937635920368144888072664652475790294264912380833827518068447955391925230534402735585670600197624736631858292541076448280470857981834026091459672792962503368445924758447094816948717632479308948487087382936872579252443247390128676716826185877703780496159671492423914298773568854712711361299089189336344077919603552517578964543831906593570485405496411473875240924167882832202802614729169657642219078988565597652337169611572640280311588016923896082368855907575873372455504754033415299896736576101331690863124408117970232214241320809913485350809517636235121884992454640772976291725525031118854531283550624937480256985263185944407570094319526702383243101652948606479695163817078714474955919808641397751840066790900702708942193276466722030031652935338313940736741112430331607874752352375983220587911023699286010734131594065268397950046634257198622505244889415741535731243172438409425500044551949800676674118232012914031432311013299088678685060950531814007429069227314504715448083771596935964919566686466241729057245643642860750751493468887400590171810947961173342854549332540112538034154511428923845599066138287944077038269961157616087502689231440336234804625901668256789373770669725619710761417747644370008225136999362727859782333410221028538361970545078149214599860058332676445283536158793028881852246429964599418958652537557267260716285954413751702153757501155393447468409093581155863844426373945613880935797969239802080400760308700565479118799539442540325822883272747185331120193109436670518085721698644237774180355785866344767487315489449782046528102719985344974605411752790379236446796896008027356003280106571654840066234294721860458116112694404008770846255194975941903036693131338380447187523397318877933196002181000932018640244112805888019409491158801987928788897355333405135655459954824933927367368503580587894826128987364333438775345332346285281598227900970673732550633998328256239969266938444580387706780643736946911421734538909320066511385709447791255766672379516821688367482717779831081920225940519155151404135593993393897626345032641549302107265886136316041824372674471557887480198433883310930568411998585954194170131843928499617334398638980808740655575666176527596388098940919212074183548140698798025468945512139773655068177273859572787475865259032870839466721614598199294537380368626227303403672420475867718014946379251872922130262674173097812299424225396497328346881244101399352776985402083092301221640324440245512346907696419480865011814559979615521970967094393830508600163816304347465567252496895514891410069972821213507667013664828814153317130373854336941760285836000249185848075930195455527808561189247612437592873034923809331336367497883486952347540528649632086396492431176489576126828697684850198839525093133612802237219665687998375176552027390297743642251593079557404949930393478660616959220733358719715889264507569790012954467778952290565137749994398505147469514491297863961442877813410131870169103948664147534440940341658443294543434559472580806352224748491579604315417485907776617507817208660266800562800013830153394073303160115099500139608081411944185297310866781341336502173225624632307550794351688776836817271853487699775265956910822014633184297132045012742929843427027136544068119058865387018423687346217905704655774495593163563035516736085637442418851693259857373287127893715686026643823484132921623990776105223656486124000435537149016529160185162566186103685872762579090142921123978815724721084369448382221047290887437600120183382240843716517628473857746376951855005376389839883969626799178605154077702095530189956033757753647861151271176386701760705379126613316806754999129069365879795692248825527696008973115223657301527991339403884481693254900850221437381350785485352499960306130701612115995412144226044599398595913865026455706047188391696071093138338835730305130829748878376293768639751895955539462197708527002967444102852822630149497253462104685975029553424377727859172922005429907165304206387952096176082839612143723440930517823651015153011913056073843126254435730526860618454731840360653065537481566716799555756746840285674604156390493372997767565377898437957473640174283544595767759355319181539588138992799181166276763933391476788344025000886518698311766949990593607470456945224926551229822253969731175173305575571617728669397858116579935828483332335165500826988559962915708076495290721918177675245872488233619150586653295780027229375729911323345191243079798716082467920263733434587508636628657936002344660759406666047319053524761186842046360899756757600148069314634047632638437479268393822537177165440503340794223606741510997930879911312489216560307680168138148876345366935488466244218340345935630825752811503268794901351441994474761181865236015474889208112707375737194855344621413013559410665032749104826449973187208979677357406026557419291276938883025559620894055447534567933775267205657774595101681215025013965855955463227552212285272798254423083489096696509230859149325458861158364550227712204839789553932618037134206097395245881910672784864012731584076794490466780348189734025920646471956967560019361569266972096932599697747714929245226712845638299507611262647595564287460261352288629704894313809616705508129141030957300681001876189287286492020545227492153192848008692911476948348861342802299215069998494706557686976210101497260055714182777593377172235693105259524278268869781802146393703276063251250167312677945358253763474857104263907960929192973934977022941340334774879183247309318596787966429478135940587260805974360209617535267834669849736232738186740085192237583541847079409329021251246461320050485770602604874523068045811745189295328421512319643657751567502633111779904588497039064304250253601311538766691437810509290653768402002427282276267846835780923526649057389971831141999849814014497785602340915220546000895036615657861658455133068914102789360288473813225714350798895657043332161296953188598784225485462804161197933598941530642893783268280795451003003596848819758034720385133313950214166038834975808522351809087573025988263511276149516619320309213765585467429996321930851434776111693199363207568763490740583850711522724979825950660455646874868978044162374766957607266787015394933775183735265247514408758864225864306762497674084717698649810304127561893918518223642717752871430553620056179022866193368079415877128913049191635130429265974860989453911685586747194976689052643242811384966494334819412755186028757895840174820301064442926142544498573363199621558915708481304481730023671583384663634505640988576768524699994913829602380784119933882954934931789734623142570431502645687980058748199502853540478964096065456210650969403662653986850300348232890079598054408824719839444738862120110890005244639834228572700890647332114990430694388914308492807015646476021460727493743591483088683047638729571020927206171332547811974479861131067727979876628013597561122454385447739962210437634549987585551369441554777107255530917744393701337315657925613074697162846481871079350606395904178206957056496943748390240643486581974862170853941071246311000725335490669105456211379685167802021010024654959857659771608371749114218358271739624835319370930079254178763071133014489676230841015999881974819391154094667945290619977382070300457612474504241658180483414812362853386431457812054082290842352158937257452152969088522541763746782469837607308479535027467593280906856185249160121941749521368950554393412564375527642789819417276631866513555938433756753095539845120182680627068809022666152304167541844988605563668644191333039917694599989722996526856069068203697693196548372946190136499126539870271271460722056390755999411058445330502784231087840948148421824197833269470422250614467907462567071882960420492749484888455373356473274229310263895090411335959053148932495725822724249021637755302774911827678954104568206759030107755777350664751645214288777018218705456925144618420287692670085867974757601891428197804133062465022724711763994331961107604266017882307906820916235824544249688280321295684210312640862968976422975574466375035014717760029541985809033017734467507896176626335953783385068870256288163586337346987693679559847059106681237619152068577152149413466530786708906788759720789443613028172466304120439554113049369839996397403589729587160607627873852188361918582816969802056665058903270526943872445462713080191154109315602365396907899345757050385618958135140104750072504713424412429642544029727799450150339225085287564503264753747096304746229225209287682246647012145648095741306883873682003140982933150629759405179927913080046383563118650051666420007044837024285310207223574489374790983939575520876997448102432752965325764817820803394471057265734890600901307012025746423784104226618714341985719740041855784979100655337674131361380357455308767361415842854058491920968131686257354359979472078790760716824990133794239349265360507259294333626211903871510138660890616794742678475939020891588451094301750550285190501462945688433856615277563689280225482404280742778583398928598457867404131311403916099733367846046185078414778177128654207537186939648054211488056917710483887248879731919455031610015922207573726059652668206971674105480286167601466003169932712399163700452178802698503141161680260502921752212321592287334846306200151308905611313766452258389729989656535227471084714950582301838987472561428483276362216324761382706926963974473754468185989212389289857161954604876881991138092761907498548588443722154442217117461857005828323525762530359754185809399413734299394561677443487302990761235297312641068683353641952704229377184336457805582070668703405960841435249129108775355811770236035052660114962252845366410877720439621962424464041041723811116532893436738284877573427472856636303246189196750540369384608424942272271017460843631994791917342294673116085911493552984237690669911396289004678196005893992488808690268895330703884065064382485881922535255649970690759286324320036607375964614733648570447772456223239432335919640760428788746140180058871606221913216806430554074734055575163151052232096384299341201268155169548256686346623421055171998434292514838547084776992140218189274743643705020757672568495981440721152073648674012305036787555657527369335014200109957775594669335266241664986402976006578881653366765691402105135477165954148690521221594609571680578859523181337692989537162003121803629101680696893464819431759291394644892321983843677542286477478115006651064625363770181407688040385360482426096439342012454044020088836485122806921411319866826494129989461932583704701977303920102555465417055054028387405758957927406815911803661397767984601672811828120588286634439123137233667546462824522696655616984304474375844532520058166288102056422803333360485760207801910476335397853701408714347872867009481156987138667622406617380621290053550188330136328952027195490497937831342663430887385917647440998490220812830830218421302511368800845859070793421701738308896758609724824087643694999869084052169896880751141345735040741902634911966062459518667068379648915412909871321101278473647733484747285749261085728552464965373911387923165378115401523718941992846639473253000635383911395736892045892043634459807866592354168865554776500817210098837404205448578066881032721485240771508076265023835374473919060854565956102233578807551943361263070560067651336243985622902152914633219631466987771949941058743820358786566059623804198715202192297959781881638006592622166405635892582650934721743150245816573325623428543176642835408179645470223488576266593606417319227810975394877067220554184010504198493521375598577338093274224548082825554778208034118306620071374102121602836962888823760956472943740465954064310634782139953749720414583746175177473813129169487286687868008611677423198198767668536600391217203135711465134870840855536670813331360182961562789750415550709085724628312907992745948316962684690117922622462149826538622549321574913361927106990021357054672525583501606145321284713494386793925972399576781545994515417220139951956831769066032485169307108345014977034987572326545911635222975930724831526595032975681032214606253546989908474060726344282805738506881448737822043973043606217067151030962810546581963754830272040584810345505551740794553450422532589747761905067712508677432342022375978409283284837499108241923606219763003385857954078856697115429879481350230411252645431409215830883821824507428165238951844450879440044332372281760616628356987817912381549907569569411535122440286810220742195850809209920406749123670197626930376675259412191097825103841156941925479731081648295195184633079439270128304453067488687129713146607905606047648440975645079347922358234197097794777644761037935942358443954649353790778273884239232677642911672081015492945831379261715305245357044631147892170982048499311421532035202122710367180808215513643519210024028167735928589864483812565121526740453509218073396769846713342353951858006039554057974263255460095665397646144517829365573249049118220942400136398902300761633242491214579409762531390109844714182308275863280332359469047545146617926317825729136680848412883837747129090876969508765575783797953234340396874236258303443901460477245759619110758899999171699610890355723836502921685013981839353009002329523417144214089340111209049981535097347312873258945578501512537679701461589044514125189402754288611004893478798359275539895541884902979110849565690330906941722525660015132045575001069649887567952699233390346269761626793123237238871519086713170501351786201159345463034167870428155700029809383210518470761719665331607046324179744846642524774214060660300491704428407912392049027656767542716752312355648444698996049351769230053904454683711008827533722021501450937972103428179038989474472430118425587686676362771521946856448604405048631072660756916849842687739631399119662164543096035039987883566760776493494093224896063025582612171547567874820603412794047854719896123749739350990098855600962655524595372818039149772183550769503312490904166172215216838013020052395965336193673273929116949613761813637530191003820976922314879468439343307401379198838906828616870543591223146380231093406243486218196569259512029711644986833790857232244704308243274525590134507466108679613516026583456188671754784150372368747350485734776164168636852663265593950212161296038229013898251217433528400586040091881522858373609470418560732769147774417927926906583723575907918209369100453888539231624328702393983195857596023134164258530627671113698009180640682685944400680702987413082819740404738626318155948605456981768327319517670247231508317341296677139269183966474577183748737898600647547425633922224424156820605122084679688418259479932355076192275219935124322230943017020375019897013248785388193816402175111803857180823164292326023868097969390627647088238503094861132969012262233391797293250179779503008332172366212124508563545663786242603643399539172710321423849926524901403796455315176276467576945055704907581793593299736847565744266138214748967077293102737257085959655412562617334645715958960191298771556365725358883146191954775672751635995456310501746630762346355687115180740930081020795576482141122730356849907462694457964523608164553582804285120723153913813011397115798833076122021303736792767032139717099683039393141730780558676887074538590865158985084756846968856122427187453775388392505469822789601864652272795185138978591248660437304727678325536926129062275102207839410479387011401136102285783603670614390724560058022059629394329403468044812807282833382968836202075192812140470053242017456649491251362928159119893883753073655799806594720056920479510670501586843746797744233605958319773613493622290663291403038794915699393329141844250074841447793148992102723930087206179423706559902056216259412433169771205596075476722876374873453458526899731791107817884137333772664077155352204319472675479954615260723374285748278016210827286525826064097604804630294364771070479136814683335096557598942476120529196801796493185560793058850945568445243151014488322212986600710284264734736921578794545835539104185576549111076705486903366760835677220959216876561817702313880004658829652423594477656349512397386537353653063974201860952341433542168242146716119687869320983774830132722294502511033543674198565234727703572865867539381832263582686724589858820193085553416357169153349597521964175228762505803277524057789737836231739791329450406337277919887425282047120378590893554040878742958237816362948066798571604636583150024329869020682559633284757126927006063128903169671681910775397803925587405130273657055306395600080037748446857020991798004749875636245045939894152677952166614442025565545107015896588816139337098721078019760932294093399270952614323231710123253442477149194316832590491909862731654032507221637618706060116237164052539568361544395164426125908841567733783404255962163970375815229910684037451272389275026752361532752092859304897389130375990154153462675273801637850128745947371351880568528177739476533766950449588108636502417948847571498618133222848651835793118203165718589052652866045311330212643668322473818984876605547484947852075392062829193956949375631170639020541861130051822298504443409239694714886214393314170450628067763217991628099637893653612752780985932049849984284038406854383054599780986367382634810861764357125969360650647381477580217288547512251863866477802011207144777920545606283156307475370463874092850320433142190270115438009215224829062727986238249993993391139962717115292096475720529958038792364418697952776504228937301464286947017755909295410756215235503644815599487689296653363620068553908192445963209301708724762793341937601390717492361468227650391204391474230647819982902477247336157488761437454476496615750257495123955802792163882579190069905188634705746711609184275991079610430894058465791727083139888755321131712864673306669282121541942708265542021899287083828823094620639299515826062655134565365513481206221201353398218284479176925022455087437165945296034935912885623766546679483385973233611611125193349851630346847483730000396907795740574239091335280003177177393004971530091115256955472713209813963998880656068029022538612283888559118545843734393443556274299746617026089790728405066479906259341101561115660001471587975769003557680347379051099833071994266270386257330273719037256893185990206837731546477832927583404890622065645044652812058147232218385103756021400149949865491447730963320840922660570329513526051392454803427372028301887044789937597247743008857629062239392540817828218421217394911906933869509024539171443694282886851423198603412166331062558927184636902480922987931269572814293844335448891514890279437213655741840960403440157956066247061813268871737672979882336382944899459845256179665429368378803611494145876099664490229064209492263171593860738593581480001954857414560863706513160804679134290083419401098457573415173600450241800142622027397754714884495848974980721701737752764319289317022384912229287666068473195021738087217801465345044095997591843513519011569622916748996220867864770383585512641066686259557112353425211399106895937961376847934347589052586401786430688392188045001802107736413213426789815315287587984742563618833927539891707856403284437121164142519167915322560234497299609787702789190890302340924172145809277246906793184941437469885640728918378079287065059032922571348524054637371455516804381165938424769310391419884174512344979417965493362741351983987198269296284117863679460776043470215295174650216479174083276815758618224455807563256033677258516570103485335295478113758994674604987293521018438270997863202235451265145528947152853859057777846165405464594530172992139749603254101236802402114971801386889902978367332644781908163285258403655930161376929218698849632689512558093910305872638436538082623644550695430366381176212022398189243728462016039034172006595683284780929821971056360063152440647021874798896866330486005907238711051339723593947877285763603731766297826617278545229009245588806787680006896625753904379425696848725225613541990363144878601049659285820618348547553228778404344459504465828372299557948956228124105980078937270758325874384812339126912912930915066729940929985935147289389267677232899533129310468534245881941015463453922654464474047884395683715678346820343763892528873250705650629210766873942642493377733444369488366678610536555900234173052279732903754347972101279902557646586572806721012214130269111876134669046782060962538739258747132024707796780624446305702275257304866099867441433127240172281164742709095820515975478027824261841735247191386934190080593749855004287451837187841124435702489997821802950062377044907002099488834311930391249887996833148537894384190303227932857994797859665310937453920001715007963798293726871092665564055149142579281407387976668404546219540766464865922527274253642926359819740182779946753427755182470474428960156787441342430487850495897311677299286130606648658240665524887015248736015201153411573692824007679974544565759622560696600988620992811497292378611346550868745391547556026638268882991784339918088584857331633852966722331753190102342983075906670878646077085152019958736162350879604325269266023851981807940642543728552677476216185670713134115825742873050296768190188274785349078846636854844747914587892117952926216679138451319169974946390663268073139383026422377248624708404042618598859250414554141915306614721329614774190695247090376919169646258815902812224759743477076574380404140276268653226460177927342476935285936225113830730577569059241525271682600155957718893384769475998443963846425707676473682051080912523077440303400388719402389354786107091149717912516305248625610750332144308020789010257381257510874041290054896897383124773704479660941385270851557561407925676032697022358410432584799643667541425647772394496081746480243178311150374467241375770339119163955669422447372098511005802737208506668416362193065593353131639749052840127689336277906686274831118033047970100564697393235479343379117769663653773333142227993157264660126564118939748393772293988546660414559094516336650369863108182791214067901284364058594933781463636817619074783925425806602651014061245442848577556702699655143678679929228877170599530559329199821927976065544747023173971269609450040912514016345192353572782546633355465176917185420906823609573744901077053719550263472059076621190767749481181215536104265252740105888542776683218312220852989885445235637261341985023641272234934077987331494993446602812965520973921881620730868649723350859191677921283763666777641135707344429831977340860987539730252427076690435212398049745308134422368296707132641525943137115855608577420495947501735260951893849538936028948947269944326032705867404168949493335086414092495321549932596815308948254552999026625767983118272403757965170171657355983718351623961252803277892563759664801451002454108357769597940848628949534188249204983190995563745523950505044213204263317173332427017320399057438311302473718814831234722232846130060189962672079808566206867384048255562938132142778137447953681055301686191932145814395017774942210277630784961058927854413469165694588248131985430507990647274401110710809991585232115020574234262596683338383583460192435940027876174405434498683883760854218541536929736799566075633541192432399841594502744305374032820166103948704259416374753735912903188442103267039781258305341202096764494978603351103898127069962547400953897646626463800572912812729742138526046875663949741518715318544008535537166168027243627574399556907727864761169080725680889378154215113902867343228539397579835428527483607413141204651260431670036700646401269483790355005082254114933638535780863744762566889969282340359178538166526521169261607292261182828844198047311237717014284453779844883982942418737534598704723077740352330986958652468169727998182829993794579568507728751090929391841286873906594968914341327663998032381387283493069253804691867526067870948097962103761418722701561344085896452116477227507250451613070405766747391194101856588773714155306875453288783716878330068092767224081291392303665812465897777797501709530625303349462168379835233795318145010273183431725051314351482721319616850083083841455646696494432293100150106943845508125843173559211536285711552147537118351973284485521516966139570514247361117506699785772748092295669461202131182364898973492510505371699659659767746219197755946075107097046208645695677407838380942214442228153377959920697460132130334782304297302353775888608232621421326879691983224016770299178814682085183404927695198919196541558734483460644894991883799587688745457095637823013517855717164402848001014821389462465061592121608650138133852849872344167594039540705455128485432440179196985581000442427346674998562587435656613547811689381537966337202895538274412088018813475837114319364702283355590108677271355764318972690569296775146292276910004200498195344526812443981241286773970222009467593117901706219072489084912808986688887160094107225776776123892679628048095211412766175865360281789293005278156366443537549780247146735831450257264208291127578026844490619200875528122173778326209649742331950484679030669340652019979897410426471611470497160859471637772848636399864075753424508939376159601828348129973900598030658215935785473106071345311826958895285589865781002363431893539914751771040730147635262587607186372230625998950659290617063502938541766178050016121054243158187606843515135024698038708951634990760101883501620215902236589880325836028359664835312105383575835119476728399871082090586875098915834081125959489114366247201097612671763568346636742920422723457608551267447056236464585738037113883947760825541053880992198254209903492747267524464098871179879698143194929627832141107145922551513475394685632706018733465499939196741481213544282959374570572743592201136026020454837706009926701156725328053600643210332805768426711516471867998681794091163454963218768436279908215367632160886305788397356797230556827532719939646628923109683377026502582316054177502855658774842633855012256654465004433712685099270295253382281565021403548863887071132831526196687113093932105951529496843251792263107405818161702373955630532812034112408762999090721398989105758922118514177457241587096684292350920992372845150658348975685392901665573896727870293228515022527531814452671772007308592337757089431368825051535571635324962928536964940679483778923873445685676166600751404051729427628607887319041849964197574770680702085629950400877045274714557982278947153505670374444347917615222904050782047522195185216462800296872357063105984865213415176059046422296229084149274040899127698549348974844899351032873239689078087799748295631120837756290852637944396849029508513318826207775744833749428569947865921405239180597225418517486623926387220955997136938853912275394213254234118829635450055504308888232265468459867975880721084183321678118472726220716054254803311690626777382143585889516464517014828750809931890962035566172117982457571016764790568328050509510685284182520463565275267666391353483595070539609339223876662151286936693284989355850965324410467905974547399534716067378971794615765242143008667339892316247020840182182429252897558527331354757203024482346873289704498094239440166140985075188665124751184617810584355094788691404434786124598895060824618109239550924163297024761135162078591564421147788400792310402363405238792183203908271432820191682322221158098866586858348719020557815217438674198447680600812528097182030837319930678396349440639632490283595674355147641245287944655927358917027576897089355242826176190228158380295265522131628852089712338800974279354817439472662596386948532157314149839523049066962752046342250514725735770059379791657938694158788078590441081946167560301733152562002488867741168342951777804543901929569009853743868484820947883682866409352522589474345466626459153953730136877867791963665648966096407815205619948710435338573554625225374949031871414380535753475444952881349717298776804712883299018618145827444159625669204210822845401989704094552090160968022926206423727106849727288999893502834616623447074125868221733386594325374956417409783916598271756011058174378015365071761125068571699478699153862346608880599012486766226138307473623430073694936833068887538647852993774669807822424026925688146386773919679007491100808865639059290796106807296608041774682930101204248233828219081431688809708045607082421498821373642005085195662150552350853057792655381486829755309720196860278173373931764416967017926804706641129414117413455802081292129846332298987941303549261595798832822986905603097228529980483905277898373914920039909643015794074845681699481254177341981221089285487047051028486952976998453007277417861756678073842996455006678564442348011219091000611858922494145278362542194566939368561181349009509977643103530348361096493018488694818220562901619995602305239156033861311816997969264769007505183918473091725329031252032469036410901845028180527926831793580643123906394115349771028948110028387962521983531094146128563615259440176138626235944201588984149119522871608478297668622485677531093976436965046428338224806190181647265059989162952078524267289627571946032959048447429201839360103853229041096570211859634200626656825709272960911402048124605173250187178383023290123836618783066250395871985297686672864634119435618505911825745103522623701405777526137526801325761287706871025725846402693611797917012557243781605286662182049876495853977312210405735674830266521891078641503437830511761267074971365873126268196084110051394818779270693122339951523713029853167076138776236786912512585947631357559933422204069734776575609470812289279061882625529703510462244026830613677764762207352473043843084692380896281313105453339408287888575534218077320135937088981023525558768751744363692682001809089993841361179614520635596769921440632607645527297450945074429302616736943551259168163613784971868643478411768042398042844621708717778675115317816939855366190936376574333661272263516793135276361082155936246659402626973734911154618037701468094586560746940152288976783633662397386126258186540847038658225377681406966302405016235424104606895213521503234934443491489180889893823326695817673975481363452915714612793719142830553998150510100344152210152502687104507932317878401431583626078921241143044806470076752021416316544197870516914738685949224521050483734268835457989891892190502936333556601931771536952792184716613737683534325587098548473183534058103823156149039797092195858805452503176083595545237145538339967599645626478308199528849183542063673361568170535277291078348667982116664916016347310108099324497663361185139283062738582844715872327823298323676000840382372383945571793954920197613747427665469107264146890402065211268779466969145325547192675366175762529079138132399394910668914815747842131642212925639960377808734263279415559408621373970225413869926801351819007894112863986499741727285244524916257415455530030118609791871922572096559235258700831787551707473013629249389321560240583537682849171934560898977474598421331458571931566302370923610159837361851531778573963145573441224741557471452571441741189598056069040043170101868675257143961701112634354166032259540028375309849420288683529105856667844997772596141494526370281364844102144858446024523390304424054845865642118447532665456919212614019695422276231746364285257888756268806329506628286522727817929271058617937655188206918030743326366385530094752518983452074194859968220375957953388347500108515452911049768787180497443783949052594490542402337239179325606744626781484206209039347956627434410047498426779593273767324357735553021590111987590132417587262102736975474072504491066653662169994380570591337447954117677543337513867520590261871460002948006363741822066402806557764728509234462621115184398096625829843353484078273862329382058008053856269034165756347857585309887611072037100788604812431722475374707493518407762407933998040680176131733323154995997924554027659697722352166720609370962165485392508638339551969694402332737299011783981720523731167375259531469919868229276466147914200022564676039947779070477861879178687573459436261111307736281395163079131353636172444992384465978470280614975577851229388451322131395201722935130093194930008694980032082447910565972132884291895198512401779117028277335109565694011906565480381759687042802501564230111141523789530966729119365356450457551717006755069668801676996289804923038703027349239348707177432498645608361006197676377658242573858298089000723416438871215876798845450186675349894489288827573181337103909335849918986080065113678834680127872627957544502867231357491129438669303722263389914553916732729082464779555993613668669323081652313058220225436502724735504184809657821515261879989843002428492666997985594089111948076975194245296718396191425180207687518103212152261450639411038559113952413903966741443285668821611716204892757367397053454161770039598372159190207147807892609566157541725967819741842093026707368717029188570497361129041311400671420982469827475705215930041032014656931635075556353102482966470913262025371217448704729649188827712429263687272173395636149074094440440751708919718526120520073895132644710731360186010147623045341196761578785695922784927223927414820408456490282132359708946352277746188522857701968625568758227119986069709239988148302534246227839751295291771528464157227680596284914121485669379980417085055540763669287116825179684209388955556904761586736432147806418770257270422562678048958579356154039434367620450779408680010408577299120146885406536204498033017370930835792362164342141224316156088104837423733410071418034449434064200754657025412846203825518821336856597590388221839996012676707804619302580330473400291160821642542127156094429393515505412377250132430960444143432887286790980976813830005031432626573938520259020039399167329126429047751457572915277524015920617224963683302786501508216812778851843278473634094560277429830571620348162046761255670285374494783978255845526406178580612374638521068885622813782692158358477975342638028063872761024958473656078840838239656998639952394880881984747682035838150421211704863761676106828209022099212313701150906591478936165591897374437533371786718069592867602049581651952367370641136118289447875980158595023946638514299679902730052526640621877749809212537770396772401348340845142192387540152864847641395867712741848193039094167017510775626471331009881321238559895733306100665641231292621676650074961399110197541257724910483499226129938383941083195512707157555019326231355803141620700519977740061675845386773627128012762058782310652118805361074879846537580467530191872499351979360345452688070045762865042380040515094146755275063062694281335289048026620789023253458381825030952678284901811555349183034677882597015230201132935882225239221933612869754559837541532781303255420032674460621301179552310333779668363817241645062153443656329365374074676599461717758167171911329931175147551369651287924850383463665493864180608152740433407020456415654702076901027907824977432355310019769868924936273008597468622199492229626226045207971482261617085153387833156111173971075046423432567070835790234160290565352270734266001307598525097693694512888226427722365182992230282845279540781374792744469912859488981884561068967642452687795236687584749061420515710493229199374828372519158388418916223971750829545768190171298534620446302459646002678659784292498458377899514355665491866654027373738110277087717135744616016468385368397378879679743057393250587651879336371577014867043230993915654238729369742542608646270104449570370201665814824414912744941980084554904621955842255709702733845774961128090949006944796595242132427318592379187966421793431258194084689821278548277061526762247949430391142672698408017279776662343192057826509761949707390133134923777665586197763209387159480457551139108666710556614469313673635181745843561278378652937993552501033961215729410470983541464513920926846567098867228876856334065434860162218001294418968285121318592950550624572250713624222450889028387823632148907067254177004177635343305728809757542065889872671643059400479006031856542321563291845486526791144999448270812590735126930162020147013606097280369658676576677614200146544093197817414731964901835161410223820071471593378315949303142848315139090967338382277098935361061685105911143493240866324133771250182562828847886074650948880347230356443763082024898443510855289753502220407071965527641067894313710119057918587886291085882059976051010128638310848549187071994586843889910705563220922077806202343378625190495007785022394903888633926679295689096842633370254132801475035157770001173838281121994508059454291950146284316738491598625242609606574437053575505213316189724305440163069056941378463866638655523471203986133487732423818055797054325400715418572095928111732774763092743316551992442418724739763015444897411070392109458342208709696817072486366093840244970734622554182829076011165165710812927691266095546265575440882115592926320773091605060890652774360288400763364608274130695923840627100266564007771497263834244893161621165168613366437331358495648719570244018973697924879932498014529432941595689671718080816235214938785239184584202218866047608055365294074687036270882918776321686603223497059805207578784271180006264087499078618864335058364418866041832152863660081858879967463143174300801837106724611991471555706361082546516905542258869984654938165538334824714787902806112923879250253894471343804156258919752928596148055704987625200894787373426082680574433579849767488850832706898789234453688651850279480606107116984040475884866851498300132814332352491494173252593979800007934190081278317567622238239438486440984542768997620201133126860045006965190893534706648336611857746644641575908614247895104530539231796497443009171516243943864480344383871714275003146389063142714792283643328844797250719022811011346203077536693577760614326071336721948890911102606398207087496157704099388269681295669436354077318567992866073735465704201758229666589051903566016854011442577930672983460085527389534764987691347549885970547447485671934630191629121117431300654605833895948264389028100770944978860333313358506430127361533836876609359161427176044649701522476623350432084954631778754462740668523119406290843236336599945063815230493844432996088636313057018567366623786995151131256182309343680434829263294744714670870284068240471225473277058214173695889904328604482525001629087167399098671731716460485340410574311710076581287607105105725209624124981350236253223335938304141837979896846319097608946149715559804289872430132987191438183447901245059292594061283641135353483313998273353811426103744698085852618810631036920377347145780146047398762896131137416424505101907072239925790818071088571488341484500271666787843573728340834682818922152752998024474115745370248603298508683065078088863700225328504972958313636357980425107350277251588932908331171072114468310013821669560985295247521911669657499555768827884889740626563712213516433784635689335390147380205067775020262776758441035084432970491420082085469598660245877428152612135555183067305377356056327208758374393587540877529395654267744896995869449162850500382657658788557330567365878612395893492000141083799765661418064273212807421784420157274062453481172241908350108363619915833349300625131324891967942187403046272507325698229746010723335310611719273304842871922671918871501185609885635822983416284688209102797355470970474218345875174121513709301052156945855638713658057033886901846945790151713022700467101149858350787722296468770865209406717690993203009262083877462214238843360564838345578526287687337829563686583093292535537940725721000305239731521047586005125229940400247826439173311942821903082928826130129501542860654547105442782491339184091389137542038971834698360254683622800453768503830921487006458651993519956177707280886372102339635485366032212495200117249655990143804878495929645438696731270100512098009687234833812261699650174024723769443581123673637458103245104054136326554878565200297644511187821986217540056029375274760883943544053075183945761401128470237881440169884700751711716329948590704227053472033697661709618190930739022527461454504517451979710892277061975372866903822656254297769690871646891483271575732840908588510281477145541532169862748284849049477363134620165988209296889798260770690670358651123473854616108464944935581300851672510831590780068616892552746414053201343251839583098070421599655966396360739360875991046584071229829865135430616225925812418742268391348615056469990954731063173851348556221434728418011030775692421850253438912449195741173691985054141772041869861148808907336765590097078237839600072262671144702562105421673203717614819143264111267007260191851189199449601422071050455409447569752816520962497987717164141704842291526126641786756473310348115622117973902547622726703532476898507283122864793221050162353869935805060808143624229570324447153416812986667190214562580059229260249766030759213274649052015578487850651431200487083531571089070966516018263064952825523460354086993185508391601270532456631998506487424415336325996736765947543210354826059918194691944051150417035928263981580290970617936161635094747550664640226147049073741484030518818009928995600143046147241177065170731919726810343525083654712644112756396723400095151992972367436766803012009262804999720136449637416381159181157054574830775958733040060359672002547883591449969986351698836544525765482980679749689771105711430804867842902112653541836407961502014443792976517865952608975201241243521229910888160878933906492943660701361628506272139820237223042870402210514390834426255065368458648967141201700293407546967504064490494740986187579028189910825238361626945271082380025771655390283800753369798982927361980476065170970976229365067908790260155618210649340710846820135264895237795655570782866533817652023752388970420613217211694358525869638981782826680409892974686304599025559169783789247937181021012985237884755266407619229565398813365369947010780369698549832306189874930955554109364948436896061628897259951830312976118392571562124498853696627456600305276496172715137036932068287745255634964447649475351615901254276605479035683666059140785405716912971218958287876998013804315810195837148723513002688616068406994348546223828462050862181084358525775893945775370456392187710309710051509064155421153566511021919962688921729639310783833446903252369239379705068265727769201074592644440886406618629704950872937428005982672163321917118636856967433939318129334372151196199449437089292766992655382701247294845701013164566720000277180419455999735366889002355349733515320705526413118775530173405788045903703774549012148558829172712043278395730381126001957667416262823926758866131018575771836259484427142083581601207384358189050005270808913254514391525804807845562767336862562807209255004399703436868694053299621455972709757720153383064615124286506987003058110308717800155530753918565816699012357398738532370902475890068698654996438080562882225895345459504446761510492240051553351405590851430608477596873469747909659067613731417972959831838650249746524206945347672044665860857612239906220758034187769445291988106869075060161288951028249250538602262041533730831185113695986981086545037065289958433121260233548206567706221987328292795243947171696162862651463200065402341999605914009450174649440384485664645350715488124350967031184299489749289853261924874239601540333441636430582414994610158485130001453181150972476195671146457939508485061791947122316914696909715664433608592466994870260589373840339089780464614503119377730273490065616570534959640141378249479793852973584953050633148830031328535010654645537416760265331591353722336598153540045626784683147430319328411035047976171701581748927587764812851886075340709786888564659092996135558207244208376781626166277403955462614789604282984035538550389416715199884335474667736517927601024233150518100877130822575220560734819921021217507613542549057598612571048195435841638651437263657848517105530401821848207918827807885481619496721912201058564960443918010496805558163359141776830915840946758090700921458740587422405982103538100023706524478967903493205011244512274858590263418471878152236468717534066410106101075020583883418039294596297273414272108605135878746354185856512790210194847523306992296029713813868810926403614503670107718684266555854230826220705631560146088834074671382506447229758818508062327720084283221567150845508094816934004713478320428351941651616290236666729625839199887641245057660456865801120999310412482209639272286546693596426412535589698795327027784322782567225788523904183079250083748695801553832714646586562708296377761799525246226772016232783496252245934644362786383913359446209922548489551484850955254211635420664461937019483831354899065849754766295089228851118721206659252864311286833014266882089047874263465125857973227027895263460434799720623754676598066615511453774890055277562239401369552276011478043867960784503026504228951846813900957299477217461062349458662814313261093682489238590474251496883283265928877756049697559095614197368477556012577882629755836357100004045099743636318433443024604168038391503070641374417438530737557462190698065997406729029343308815156571149772499082911568181572448219881482327927725896016596311070427882831973669210003251093450789304769229429733467246836495654584044178007924153307812978050761905924103581766940859321898093319002140668131865499250470758639052386836018654261575224294922933827772934710632606715908264099420397564383687726076351578341475066534457475978964512325839263680874049309703900834724474964212120453274702308122860497628769204066940048136796587141341227336795235871717169330882600923207372025460585954793556892692600729851802097941787587795128948747560023579651958990909117776979159466343619479866824694809998620150130768497414002157409493808519875312155103563775130005233174587220826007086355215446562389004682736079575994424271721070455136831393939239276708944680657495733239788532183650311062045830394015097393328716174602119431573593557855477799614150637471781562588854151273900212207407177167575639657858008471289326155532293599015095863969698865159941709236534415055049271680609100610433812632989405092748722776368359791288808236635870710458634009089978451426116496935692895418745031586841969490074541350116952213563860928460666936449045718587600669570877415373824780174035896922880456161576153659732345851414117084370382397341870527058054065747031493597077178671442552624218349125785919193930636465818948765038024841181147002444993082698453487109851984825673392022716770983622605847574620498186235414455479816816291449509883755537339815553322670749055879031923765309711689298561145586596082454540278178266806630656832581269767132398847924947623696641623526974329316067975429746888129016616108245961635099174766393741849202835210240577438837165245438519869411617331704157271649131908769200666291456749398314569563008509053061189390744915560856268884510612317326990885177614928219618382202317593987191527668227112605450960669155574955604577815136103216470485026920873627153111010847720660406906748971278837033529030315513777669607875633398620870388390367198954452373364661181417790066536221239869721977558977059778603490157808457946122995298149213644636853654041815635102646833238095119100793354941032741398310720476481890129802892272775610005976302569060798780709843838049151226148786131556522716840778347256437423176322854955651977394520433036484267148410583758973237904856978055132758379714196623339668428616118060150965654840423600390470924629634790615514281940498294260176914670612342463911555933502720950009432714749849768234851430581410058365147766793704959293350155140629021009492446954139427636911076707317152435785754629213919627643756021060950917948612926841370057674956028245289533694482505838488667441578692347336225980776238551604507496199024579043561785027185831639373270872735871646189707094587800746980357081508417288209612355952804585620622239282118532589821301355705362875781044089713432964619027199195155973343662864038604887417835093373975568115250424481342634121103637136437897687511977920634017783729787221502445173426364630234867993658447357659067750606915379895367808353559007132101294923260693928077619466979193383102171145334386709656167435274070027824609631808710678539697522598175168803199383700021892253876953314163765305914077976816025126900382402708940809320627274980348538679417851196264010494215851251683542838881952487535070684052959388085887695636063648219381643152200114521986966030634759168716813128146233535203217760796663729928630730058761254107103024464041853267687464395454855999073987539153273450580434146081357739515161532946838999374410194725597682704687940501299011919286561691374433088571347081129340980316088737490390131031030837795568559477031217575669343184076096164030510810871593744854716943708407516427129998304097524388821171378855391111437041003272157514772948471810062097674075761251620818614368022209728197870119978053373089257353770857082650454154251709845447241020821211051654284643842275441924454455538504509029390339776502835755893275833991656658877311478505118942582298001706439783578316241864086650949118188862851122283664960366652075387159008940302285888713302441651114009771916865985672104705967228730020654228077043323799693171704804111876574307849314003316038181977064153096543587345387182345959525363723906480936386758452390412527201974011137634415679196753639672719889569960234750515810332130366193294554073045406521323734585216242454933067000848893299153337631636199334562554276955972058938724616327123546799606431308530669217310299365910072478603307419212309500628436095660180400693961969483539643833256190909258585387755588533670761099198332367700312510270000279550943518608401686957452764125180581899233945950991701361524850534762384604378938095253005758384261296914382744728167168170374122101820527818091924789757502374193497958758520134730434079269244248748959637167779111262463616961769809738107768287895117821836631908720054628959494536452837755943539901452218488273436473175606022528778767540438707597797321000994246625685745834129360734472905038912984792050276412656901285141342584476929996174576708609940753383821536578211991251612979233963765387784845587695140889780850103695762536844596844825876454227635711080901879103650099222452783616280800057046528889863137540187498893210232557091144519591908122871714762683410789034987064740025538218607378341109591907838174666909702821432374553954909921297779599590164062127500409559778872875606323956932718688267046070000125340819831027653854884256721457017276676269120232896529370007633720089706743645881399203044285297665191273016121564953868567756674798452907777035317472986718155680059546480303232754433807929055273377217464333972703424437150197418284559350170590245055608627471513362719357281351335131291863605029696729605755705211201878450840838877534645265284827036272288026211392273566330698031220687503295892386675122371994551547837406983196686858560695233973837086863349311739494912239726749037593691520446498225898853923750759014584788172102974117854992432471511025422371678750681661788050304584813162397901503713485527160512365402651672157009580558101995379157089939099363399962576898600874896171855263725084884168770103058140451991945147339632380657476370302765093399153912699468977436228584171969148846389265235283587959307145882964044084805914983078500911201707143932803103215316382991952850322564914685813507335690027176664108323490471137653669445958510888350021081923633309013993645395514366302117035619743986616229084392902989984606896274770243540644877671891704825495579295599397543367404004819224923853566027724500708877260766517436676779864283148072814184093134769844119989194260438592678843818876195693934087408472039049958673218136399203611440430244322281800387840427600007020383852931122158166191466310057366658497132780522528954873884498136915559610098895308257696483828272353262350432238279698026734919330575839105625666549352751576127694038610448235558774456631695513479551955232041494472139945810139954385924036212359009608838217429750819145610133192643499981861973649847888478131229139595768947643510460096379403731039699395756900031705170689662330798032962792779829320268440382455439469866795305256109301840975449445417754038684343591440175006830168187676090063690208503905163371282777021252666755428864818882650341564164541587638485356036698843667246110535569539501958362352961472809947626070121419667317324360509468062551131872241665977782117726323847385070259086618010243045844046615944738870357042175548111422886409625754183392811585506118516896367875350469399836652863817203583102041257604415175846909669484438213903412074279347856213839083091422141230086811853049146227112911998743270519598132761855090927668561271895386482329675367303727583401205944248170805961456163011917642640340475229301960420853901099728597759481730319884957772263026757986338060262930120816726155393358998828786196877167994330994131396482588954359397952511912028876271672549933346130053030946346667766256343951804114551081043418494243752961163410930546005202618983694751625916662666695062198165409552851676210394774806333875086720560024070809312746929860318583764583384777574094193414255609728129064644692842706088890831165646240694608674210996357589836025298249015594988133092610122279944062294410015361556569495996405429584231613101358229734220151666437967226092283324723458779975390745904240119640851968885503781622752347077005444172614153799787921617751214080732400350085215405743095465305966261556951224883234274676170021151624030957448853158996047087239186370718953130869938279682944961207354117735569264000508969027579826089839085341169543331739585670032699082819767053953213794276940090364193888611830645951618542276427289714790027989384592153226849498050451538933476095514913248501793843829777024750932904520695985292311946924134539653087383295511419335210317093690552982274753105342001606521970825487538011343380795958749451230326211716244434117923918425530179672125553849891139617291827124501689998530228635213829137414579159931381796409803346235109134304694995833076461556088688278436037293532444483038884367749137273981559171374832521907223634845118963927172383335534500368527790814009938042652798943292898604286012464084025354714601762297994497250255391789695046531687442648803745237710169177884163243808285395562871060577012403807653308910306184350162515086858872245132721510295615784303559776230642379618458924793353194966253989070061322422718117776887982547355872404473129740143189061347109796544552889995214138905477627070276356369400822895838073855734394752051217699611993186504395460187303005285403777897841313684478700931432608335557009042795323168234739334764804780427272952871538790501401142525212572149884751866769293303251191751426772230422375289824030835791810272105441644400218348552699489190752436139906255700995278010084386166976429970125597201891566777507487589968533083355573610204490646923709583845585347759640470679830315830501066050612809250173207393634490672182910973266265218012148263536049014218641553305524300278087572217986336281472595977651388057403273103644222981901683742606593969298563752885464922182430442265370714049291024338544891420792170106773099208178065044798379655724361443237915136133240631939433180677157111812591386369987518105747844573675661861459340899842898331837212198800224088241198146501288855296992633725817412630231165699779805930029785826239785280623738370456073465546280902523320345413970817564195096969221276575045210491871757634647434557203058686318574825438989004390969304170344110482903051304256551519752349498243199075628784835564049924258982019730156800822921210040794472631738380564921719561076117468247982769540001433050083235157097727407944327457808614083052223315595856094947794128062151000756085835211928613637018730043581683802173515987182001147382550759227490302507793463771036685877907191045578099102521943077731774701790308209375527777067392003538786788298637752433902871432026920066366764520634080596841560740310304966004750773599595539985394361926121582804299420598650953504677535259395306732462472069818115277709124903432286531771745491045911764888387527004267227198588599837160332787769828027127589146632445650054652291061434835326940819649128235058168039100748316773981919822386674832027616020593502221985989907027571477534882758935758354206713993723695116957088951890284618160079255051437705666850907336057247045968561816577287272839905590928522304602393741084807059945410088729072710090917151210680203194398069248907311367548657760300796883196912541915700181475296118061212564677336852374502065293479795669683684873588634154844002693712694848430627565917980420132955906319786057513960335389691038428803888975521349878450738733143737132757750691631065837584817329442498921229434287762035730256620415609581317236190851861065604511605507862617110736359082266358062732673396002058233685317384354280335040677533507339276523790704889958875511928591255776780246007398461114668951539552339370151558140771776160079829323431769807142239398487834084374267608527991105975479337543154430997802190557558012799587059027430387049688103363119764186187390968681585551102439122795439598863951463369167303361388817986502789311417230273467948014034083606684020028170737228308842451871285903158358887087563607406527132504364381743079925703974257758939622855613610811163839875531452032869644619005665132794136604834971756127044220569706156238757933142996299501034330833952908735861607251112330674508750708549640510021949652649592561654088417290728144290781288275126695359633109809929720572214819009954818218397556155934054582204988958274910555301890095447657804589387656021157566005740333986675310497941304492503928303923252287121687640041326191505955833504759722610850718508358547371401578079092516743975054040885024037161455987383316047650899587930495337978862942055697622824198031281947759398942254651562209670021568341734648668993171277844493354972132177663432443977254295755962922461959564292892123081042620620630111513726520785102779449528519140615391527680628306915987577110048895565389596103993321881554955771613861198061379778154369512581331312335857433799264675451618946406837592439502192950871585167491148276959503068227566143022868769429499775305840011489417865643323178410602832396252629942531031760128194531709392469745801287992204938424985858134715053249155208650213155559096161018610557042165493667675383718046242490807712654290860484955153526994635718900096643446875392808086019501816682644299430218816039837764717205830710757097880340017935632419335660932041518513031015403563977175234776477856347412719020722525288933473607250241243579939491994364263683146218692548585094016078196360274824496168452022085379137735954035423729048442199155604833795126513516259436704590940948462330605404377173850557663468954670479506506214368538798112501097726090749780409600140855966359796519979112987776919876192168833577650427650448705449662860287645428871064296757169533183230670587737836280420050814110888815961670588219671947294537724093259258976108958589668043531855448291919452588709517394935273066245256814556274859138288552144860963838672330455594770626476128000800414981636570372383796437855195197308791388291703515062342486747272431056709171992439595367373135129683550763412038635805862122819477252466179397597116218621772263828956323816526615433879192043633299644759534060175447965711956134609861758360653891821401241204250206540241269550140683500201686886851535023533863170870375362485181704487356050265877332259629152629343144571456787357913166410748952906363095679823582109969252446982401962593145696920159211442402890173892853052896903676603499935013391787555243453137923126951915553678006730060689244911335163371142139584381609885585434261709546314787803539718240780039019800072150686652844795038603685443087302100252732254500687453274286640215641067918109098533154363900546294722592920797827388605003166139468969590719262657729979794236206593846630822813563320219440463641248638283986894031378399124057529787742867132367863234681449051526793173117700281930729631809328958170355241009354440729889133947576271170890680895228232418749913805390602903253607775446451932301446061174401002083205922624321104350920308176970707169062534269304712162151454842073694329888814171528429150509089694506807281252101549269978330155748396742440178198397097872090086397328165325729365271461310587076887856159137712619474397263018066109596559894179516200967844457648732737171281555102820813656810128158253291437263735409093123673026275105132778431891520440443543557381744375704468723517709198945553746602670636663896167142896931915591771369169595077339738901834128951225487459152275256088053912361258013304202120963859248605912746201488906088794358920918651280234767993716591589575361310247953906896887710409122353115907806102941891938385129619439766617527765032683683692087082158959161894558594809692777441856810940601049530520181065970810834497350634843551635973324560727771780517475235949312680685924992881236755762275847740849227489986446829418938584348578980947585636588903892676024095217171871866799112242433121910082152458114344711910995106008543998967663574401644440460388560446361247859236644932410372203268884789846942196088718534375884725608764442281428923979759869565259081514624100974467696497437645638572501040893588326458574304144073711235755928125730482133531502138933338325813844312185125155293701335888053992968175258574467558499948110576687841757480647119398251299813267499855730578287239348033774283746967370296670274802628060182474906850622242949537932533606752734125418854229906429565147054153930825597512114423490320393856294677456185564862172217308414686376883907078423343978265922518690955428883727948539956359356259514220154341959326046332278892092047472696519685144130587181989930947229798883906281805859345367740895348060381578574948951790666255532567871839996124514707830796463134833415347588691325010089298836952213296099677727498598937268300044792600273805810158998646262451014594526648763970445150844149979523946104386731356379400110317897581261167411004046787750428163851319948436554709546186810567014067633660959946405643455845948374903301814430286463706315713183921581265552960015756300194394059057224159356534137145973423003007329324597759232271015780584034603396059916090106531599688876632281375381905578303811857770502122948450126151110493452679061620726297411693587528276727942725064643087000698864463630412024975762678659664414566238289170443931140755182748803508068044251375703770291030915802326316711927111274686039999360358766463763608654865079667668309945567702925867067411015255809901687726937156178622298628027516987564274446890466423838176464681312673137188415706215726015405919709355804600338784034700155515116536235414921239103750331003312797777346427982127972896144180040024746423565414090767601477333951258229009755742882408480307892552446587917849732095186104797220414956223822321398334372257997008539065512951925748047077449503917923476999447534666292881118229101183284328845765582711345709969700830951439459249912377456595851385590647960876374260121666183719406369753177637458483317397587206624493579856217189579219362091965419236442996867532137334647016255724036973156805673893526113614413549868444985859383548309643677890820772861912521553214025421973379410197166546043621978318773392998202827232119448158208218584087762619591657376559734757517998884570369715024510265824679263961061563629956057067303079235027393560191561521856028209285952026159830125496819132118526407162489717881117921675205536787673222345416380058987424219400377897915062421495708835218506090592758851020189645747156789630057192625972380271655214790203069043624743992320542418781616903195413147171687712488713794570922540544192477981053948582250288400221946461985485720217186121853327425882166769108265164297384228231158046088505832769132974371387172693782913755470642854186196134713288323467483531338548931679686211201923070447753879765852865984911652870482214959742976425456538142380035914445034789658647137624446089887526450913952779269619042165858231683839583265124074402659319526427848784220004851619474265503077645329013707584235488634970576929214096689025237892041898916985880168919594800163517128413920558530181173436437636178856372947946380952462158516438301615149741435320238284497827431098285572802377484144421940874370448512791181129519997704537833560654970441879151504905418865764215219901307414455351662301531197842217946137179906084574256515289614754417391925190452834167990766996367258000455572419569012510055903074564238604366354553978253820326194185937555925810680879069792289505548591940745442361253522686943468321190879996337315103697261757671658708003646214764024701666997849113342714532099512983038508536995445241306062168437314212228218690460065562562254780009300399121243902712246628136468045759226473060445946178159696673763338665890346024789522069688629476064606460364816710961142077600890856908872829421684202039301251643630184369569173660303588054947585017580755383143863499101979344952903456514890686585100927974731365345408060413230297290153908706140673836141672195377523321800322129068040254353460703021657081824701181454272669115548909040071010476652545938082620075471180400496009847499091461664871350899557506384340888208522092923827849572330169702383086772672619323024480309745544110900364674846994952878761700145842549612895139958634313458647024251547114533277829541882363055894148152031302785513748373446155239843936468091440129719111292453176493355906106630908653792978137779735404386250502839593975353997464052768797214087918831181143854697561384462339009105273763893983686970541846792774774553753716234533329982090680259544154131930448379858127272927825000111774095474579985964937166255719274624366602984934940033595616679630495751444439260633360218942940238952237331481506057697248706217290901509904838737024579665935276320705613202897429967599902664085138644406508953449503035927907759131867443007028948762231603779755506584773507012650356342590681889714926698295757833229499277910725550171102484575333101899154019805284392520744431021263241955641925405760848704194264658402667414756111836221712782809228494177502525969226587648202611732219779198049766954502675255517669613624210511246969424386281751668651031624570339318313490467727445421150755652276151293765479428020141057101130796439756831731528102198789775265945096341248275506315729898651431330398783747551948466055806060955444117390073770641771990567024675431605097727125912509305433012130662843185799606184222243700604459810343548926574248287409863354998150187581576231372840093641148968888971518585950650353406711356770067117810116488135606308290041247465285209772277551240002527588491029927346337545554915153714203066584299296215297833694977017343667452584786942395898060972247378973668716755923305211110169490496729290399905208557340672739175204554013323007081565608328726398024210802603312528761891015120717964946395241605327948003333086917417621146608477362361630548318854271903864937160662971759369557733881355562657568225998073328212717798140978702649102346796738568152925117971452440990681943227965816937332272808873090373479015844893043358377972934017357587030803850728936322981884962186600942376750024659618827971282039667956589343130441201814688299661969940179900365148650163296308031227342706568928951638696296519984692636942984079153366219154890212854152703950273570188712321391766598650956549591143643406689718854338285201232769383179792337188285890164944244642777504457704883264475504542368081697062119332267822724238923533615936892578837929231900457751593795600146825667445913882809783850697241554063637422273614664524219869099832216092130413147268142339875870391751685676127913986190760283743898298167769951770914762784151181969875116878132894053411736442960153028104371593922650271220822445258758026039572661554956177120731182540833488835153893241124717929710110719264140912899665711968219159090187588947388807173527939836568447220754340460621957068182381342436748506299651545017485677638953086746372780220749830083074505307206552808440485304524910922442350004953552511238231197114567506295215591913201950796767348838946602705706004427937944172524951335260413476559887241841054329108803379470208432776664131072785426723363478000485886337092428560546163263556410362428312557122839293645415025099726146840020791976084021240718578151703665490576283230771283594513118415219064993288275874277274807399611750252098230980424779445689216338501219155150765645341160302610823498622404178202038635063995584089135029334680854593928002906303501727927044369124165204262664613833486719608385077106496709094828922472870341723105676563314861371866884384458762735361995149141790926545716066577748434141380147623883742673604573922863020041494942069412784165297212912626641755825242486696072703540688588383879594634402359103177712019482921662763398201669623712802486136699961386105940714428879073493866856651783851254691731425076221351394056047078117683690380181096286177887195602523779568531396013830218592373664535135194425618247401298358790636313656619198578694084894359730636315086199158202755396042542218985926191958112618409028219744711703307328038000658179682839948758902637764227162343453002703420726652597515378580015128594441225040719717205334974805728849119031591158345933301581280860602780022314234787552841215774915572309840877056340774244732381007292314848308570557412372756638312570399036558019262895304136176045495226387055144787260434179203185468509824559024908269379209861049494229411798247523719923754329934395800601081007417911507765066165885312464092551869471903304829430161153216073107269359500280009101946262789696501367788439516693892266858093653939471463881276664165035814223928597450826840908975945416994793450145243468132326577716860532407984876557494973487999390662763571479253258015196265752319916986724675327736380530377162578734062512579302469725167111109293779375328643432438124487525707017435240215210065725179316877448522012668513925599703391255143974044884843748991944616983732844825880688243178547304756120979641436392617907735879586673764127363371140754464355351423555920701322900793715080179681190577023598387923849443982541237253757669572023133625896814296850417301601491576811676242890035413218619135861029787737097434510346161207495504045221770991283307826457977199954888370144917003313901661875651688130136134226384877157702507406016098901186330688709212485675009563246399877779066090401591587063465232493537772254837385429320677481876029204551444832966669997761188385239568533522168515864645379136616462911868362329456290991973921911006873438238776399393974688063812148768813980044698564592828100609205205194656123338110481432235809442332171679038106158434760981721309399459721960216072715573450548732273939565675775787346594743448016047832809499643457061195553401186454435334908814229040145104288968253772948203702106260114800462482070254264662074770146757229748239223869529575454374928384391669890284873765753513077898532673744228787947425826706719979045822588175605068126558325915339085887274397136408134138435924153488232454181502222956244256812441111850461323952458299481202438135152104342760661104314430635437040424798385427103549299358267171061882742450075320814105268220389258586252826961537223297749592177120963996863862404419333129905091262526687567062276181741871457546126965858186170585904927677297912372554440172951017532362147381476598961995291516346661240625191118979365414062733682122332412200037506220879571654335481574356972255873870476983817723484827345841038126629126951884943006312814073171040835317828049758920709586547257795109408907152795394888149569855432257867869504894215565195266507689040392940328769676065377563337791251532507177757787752514387244373625928579448003033193989394005537660013518712258113961501627273514059887479324007211526101335654061165776878358318904934407091846766966757679246529222869831312159978610190957436461902553729210385164221682501619035068315641499937006842598354014934429373032346707791829081174994079429419779302161093767815221308742574239358922723252028167777678423580964349111583978310465379209003196468262087177562523918952236157341262922573055779286466357331596460287000963135933749321856410171375123670174470594751657996757339164435747662918056597314781312583278850346008484211211603355939835443696081045646874182460441059366521519029566921129640247959626152255393554074017448483115141222759152880537695003889501473124708792481254085467698894279715073769215913590076547377678341064069231760622287002294164617355100238343464851370764926030360177546415551876863348097380145500174373008405728982294381299065038676142529005789605870387059689427159197672104343846548627130501236285356351353786575376448813047430759740708244255575174461983458712973632517699563796159563779414409843104561846640282568612872306569344379921775566553205827292732249412169964726410151526480379973599315482278090112438349520989656648766064146817690447459013689546930689984771308764067582094370572311289020811560943367652379685877662754875555787446224226754842466210992784954491530171793667726098466444044020673638353137826632574516637345963359506946772306929423954739187629325133826459737329701910981890928135268339211302748844405163093201287843234375980244627424484090721659005604840535029778056526165118612639924933389208800959050632819214666299213042682253662246453752689490061848899158454483664571754231428916957962258092374518264349301738321962857931546727294456916876919288207490227531036438135454806719337194208021467466261098214335023664650021067133926982064141339265966814267921350802781894421038736578305706510577755789918681370281029835958679432786556938405859520983039933407270647200443526023025898035646364759888993572490059689513301233632452230176074266557539949920952881351054360861442810882128255738034630170434950938894853420671791194642642398229587923758755838171796360150362918394842026303741177423848624709884816081750866543124615988442137745652435050531279121865946111143088452339699336131286300162539609984426877407383557073463719744948770000102121206008274071941429536848871425832970063617122322675157104372668174774304656560665384502072881974938585736529768422985541259268906848814533103567644718715121903614598603684282623086059770192338960467524101918527581005836935944092849822099845838937117137009728959033066867513568788920779245722669798162747255258881468612245730493739394070489108831222448833075888797069542150086256863752618103576844786725173417429896986027860010681743383484440482377070080331771443614921437039894887144153747208348112898838548853320101107547930190057597688422882407180747804040622366003990503375856799619962559208542222435646241707333596863715025982513789661219189243640092464074671163705205947693618741949414293638177508818510062013550728731403058675768310056688580558388251459449763843498183022693625484732468384207465769774818022991097199172008412077426222659931526136467271980463877748031216843529620950026640111528784187845860243271746167158917616172462624461845109836425645673610271995339155054118775355735044437824603585537082120571080094321384580289910724869330317093474656519419631585266570168617513501139108183125954494585174966775233832616493786198530298005809838327469662293725321522396500604416187016905085898656946521304962357171296023260535089510400835389342608930201953646750918447545612382090780326365854110806883672291253029191680364421508927262983379126224221639903552148887356460018405912394397762230962064977345642770321079836961856361944318627903704585759575134826184254363279951304517207854265732397168511219721646138432867005642377650173013934344877245407759534423198919395870343593700097835739954496785112422988865687284911642325470643204443128282767044730983610763499282174830761856469971341653813179317439015490145461972305803649199728089952830810883675606484046641495380710933836789246958008842395742242354569815132071031739660104562816946656671388661871122124532961631814714537161832681993377044675043735069724328862315341903655020818995303809364584299452617239603580432564016018332564741485058427293895687430589538913433059275835885904615381849132915934028215608481279958535020049864951349431998230859582546878582941962877852693285266272870897309357453012282804494980221054205602284005922499440563946564115287045843054164336474247286145237312762036584407080898077205591162422555143766795790764304408064356586363024190883544024223289187289377005028228601042953328062473761113045278571763020873280810586875300498882817707624334369190483324639974711500513729546845253722496348516007035493357411267894565834848316876059475698126971520430673776647882456308533986178066451646078628025910249754045678501775739053231449621364113530044626890545251571498115925805842347891375730460853350997986559723955099939929569731800134352592928517764793844379845464704509519006746668839878721817675790730395381795292099017777896846871703528606362019776902945563911112816690842803828892374480288758023891153715978833628696566496500022211843544649413839473466752822544491075301044245112751491136457029015238591020248655870090290204700149884594296037386828784390927537136141012356375917145908414704890243799721703933856845342817302698687208434428949081844419019755673445639484491733960044228876215340154267338792483583093217173442987806137354712294914032322924755242000697563693548926587659382567754086163139361133063972314370044640008789558695493346203864231301534120276683032205269605554453254958182515677581292604098258404976307752815671167038385123777525005475460594865858506110242704888160545011087496019107759259405121962232756258194357750729200261452765458288670095811896637217415715636604352531856635480046313860654000756508075976059966372076738847205491306855464532240187590166640209441743223221634842617164497007985085596054550363540445669793796473666950212504705282590857712420262602026442455560410574758168234990597456550704793974617730467692779551557202907118173602296651571747290293802228370861682170974463138407524131552863691937976089819287865366414325231902035259827302042184510780028416215055315209319977110516348884255312330553433968437385504596008895093774224773094627400412833104235152626114249869546507953477559420281539993046035190261298362433531538929907858043248121166247370291174494337367951227696473612893850525447404979996966966055740899788734895968535783602349975914984293341551918181539727945087802744961452438575147464031449038711857846731861011971624032562451168719126528041901836661738867379047322100693048540065645650573076289225711087814026013102238274578456777431120731071494905970906356886715398897143864376069722049516349736860457705916144998501493823192781509107720837104428605308941569889901315483062298396038345805564687377151543904731966996346328230881157877231868682687110376227544114764140907669970419308999042204754632676743386681622850437093510832130821476061256269300556375763788903851591328751711409033778316948091573670869328184175687141046761345011610852565757933353208717443282979298735658313030619884106586781410106519831206011767718231265796080862755540480939797529671393777724255377412272983042667533631722723697068245826891801887190348030405613375697672899694810243450207743479892039301605079005549732512494709723651657629065611530345737278868046012638060410740180311977779357447876547215539503680090948566929026968082118171871243452388173030054137751465131794354310335856857086887704908906944965247118625534697339131440609234944099934564772159696916334428992802416625922099686197431794778147042473113811168166761079740008315026414755136002832154127322304292198411834910012779876430353512628372106678195394396593851982004377125677872169276677462986872554854646633771255719971972421591048495978362692894405149774673152274154643003620092119984648915077893456269050797970868435616568196025935217814768270789887642410672603919372038805995311052405918625889209524832489025179101689927012002743966583964535037960727996283444531578151841672888818476325526059680781936044226139282587674640252508454904791963727575461563208761095094683397252935007475942653720549780590200054491150237426181539947786786822987924882861614722512254746700591074459574101324451834953618631766144220681320018620579140858115147935784788240077509262282370207111850820356282688802665484401080205273160011247883459278735409102955733459400618455534913703532882343060966020419202905018535936571384840712994303882931883038697086471660968955231537391956064003594605027798161692631523058834158553551698675451731529466476660301737813645400659098577562489593770527156744305075256663817327215784999003957643280723209491410753620884420795180900883378848237569840207725897610610513019018700991616703955261157713382132156670663997633328229152813381272749762415100426650093420789938532478512780217428538799269982738585870378607014150073515406459863115377425790709889724455376355290689572214419822911401790109006160569773656715788806920183485315394167889901922601956960496659010831460908581474051677133893652245287976749955943550504845654618676099333129287372854716823408671144624988718672741239665197732409663917895703839859460709309953882029085429617011182478099802135258368207100702860175931841262414640252620745857148390155327744131248909950999467204889333229153094182548209666673717146098732321414929292224548203745263652456880658868879184573503992346553368286275221979113682344315049202182263238242411883583302299794988815686374032195956326830425823637726555570725840943571057628276855269218162238397500092074436412790796159350865761079196173745902233766374230742110191658771233657895680313109771513057095308589705074487098424810018244061831339262658156669823711175736872710760672081418321380191663532053238110732968088905009046369315136181873047914613994766379224567567130162446055244110470646532089449215440410725196149192041656629475341899209261167732232853493859305395890383848323789300645172661457131688335946433461639867572698254468621198860082573266355983442231549161674811044338380855340804305687201254490167872406002667355990720963105839641950049902192765626534341623014230262816605849290363349540838821284853675149496957395853911725944647249654994890395976498154659812877911078719164349461335962335648264387155690200571268919488562713060978226667256167610037924447876666226256772155175100631720040782193148621803489590158936995851440581147907085707303671505253274076570972079953388902347310505501931382527928440159233978083531544508114699172019464157605664838574711388296136306607893598236420930377636648193408428309130617259307144427011803652423181579364863836752243568512073329837564400859701468651921461680742676824560913531375001964875891052934638770671369812750321126823657348184453246634598714982089845873969535757715780397150391113315614115017872796752073531984048225148614783837488031029908674416697930690840918256042295160465643835967600757103278011160398297953064210801426196369258232943934249201963255991517912166120400509285008819130771807534501081917057333075474806672108109312258505343626906925222395397514453146978468806325546636334701538974354176045563156275664213412503726803533778020786383175293402719602251334229475514254793271417401754741067691294785270840406708530339971381409276698144836027457610151312966328617648083540292085491147800296621786858000731570276870253192065121843268265617908948705521489489724428137032938164308104068829282671681568784998029224964844470687207768396243426044506575739231389108804458809943478625566637861008237224086627661478494379025043399358457851123959566236684253448917633282681138754140919497851560144518365819731274779202087242210020358801589149529786525350479081736785286424608959494293585737362003029592048992063906313363106415811862223796848123360630663666015738413465336912765790095116827518316411607931276106767906267744910427797846431650472087752575733697015703427082827519324207283983644564353698447528962555241730795608139610685720802061187235295781454286231130224970737213749129417039747379833310157992469441383016158645107521509803091373927759633042277892886683849346842844649251790186259864298493729341877979759778703475375767940806222591859674323640618253133682447820545528412864751523649128543375180205088812174352923840812598118098628535843798573319070802679457035195676667325716944615583165536665153480535729252638597426474853582681447827352474662677603670664126955991251585271153375432695388255533089159238839378550158911278440752986704306960996974983677902546091612198336173246884132966804701746491634681509233541231464533451795423436959254616319355091047265403701057767866332793419400865729104447358864227479352151816800324179396826141171781776276917322760221759888550314746535154682907267544786256108169713891364336362851545728254339352829894862149786870518489327178563034227639666538852693477943667728574309268256861751246534415635691892907543936312385756940139361523379204073594858447729635383203402322414477293294790508346785322860158590191079356489395454620091232366124532034664105773530256943102720306838441004589192041526227394239176744579089694175158063198887433815303349045090051939330124557479722377313535631813447048474451269195575255046518343829456584018976490059804309134169756012482152269480843461417843013955818246180002266121781407185680487771776814727325985264680629869823438693966128983889997602046111807755396181132996373785408141288850419930657798447459179449641199207636088425897081494118591621519691101778861840453513288765781114072645704648764929079935915169187577062045901888644776467206368698294924104335350555763971448175984946285674514137764875299648900072627378545377750259672265425991093306046947725811402729666391417582370901325391082608817699004396825750107132375567927200256064616069367582315896294175288090518176459290524040439633478690550455003314573014891443216276476890268269799741684118796925096723753587700597751675982011520514951107012299441184936918973844224116525815888568818434210569632521352467728447779905880484356764821035394720252918605308611577893692606218374738828974868937057966093564194537975323571077986742584819776170830167499972813980316765430819686277078101727503558849569988617487511534701344133649844183348573516147173858248132742295888585571796348086318069609049267615538969187060109800030024048957969202288240524873267055551928246041540849578653208188022892274546474328708224564560188763628159276194377755927737797332067819338476937597252520720053810012811832843904866166709072902910532792047193964562326505143815170900460657919328076004043121721449198226024953743118168686629580207332910971909864116910602838759446762727659614699863241256431410835471209428451342477837844094031250016585155275393493829867686228709639642470329957700124383836000424847366833123272281264765527842893941568654872707976448097177958058813086013148378527240409011479023655782813700465897370856930830871369479287273614601041299762497292311432166355577204572355383270284328448616859478899971783107745820962914913226145287362497037629617739111384045315877184560737921760708136875349342957270922001150663340267949742154300829541361063948530317017527870180307505441964615279602649535562719857767100773957501116582951026096921746617879331000912328851187447209443332810850702844416766569691275250749120826835050512169230560121754817405775947027066136091076380014971284854224538277123266715735701163443362003082795544064253151358755782054886185180176622804655790799264046412612102364519223291502023571940240054169467513096926144837288010100495500791649905583789711413425257600334625731619989931483819871629387248842975710290389395037041843455023317179441832915159532517432913883306804015142276717914201059406653716813915920543578320966748063824378056242945462634328710806765808690723595471817654575652479348800640960837054286657236700053909591073501174972869302384898092534381070107429438277468790539086356458223386090744388078817023780528223392822323381494421897619680213154317701330384697162463778142546221705096966901078875494106677717458204151395308883326648617210007134207309291161767372524024043504184827285379352189971134007784758109934797425384545985891637215293169126199825518316702002757563140316983776220719189199412124282093920025260880063901133210351828907026695873279458595566179255900673559815720761599278345796793957126969001478257365823650690247448822829030001507489259371452061807370062236263310477337485247777045809351374926259975101766486621838137708791694320266168605307799989098130514524110716731588383158937949572199629648228253190622258368364109733524411224356192665935313208640048641251702307464357702990800186274253984688035188895498287840408109692595209170991504328387751697129167998733740528274120746906031077862318841219500438539788270396860231715926300125608656020355742403175763713737863080131008129627500052390183774930933976937895949170686632888849895251389779172431789273992003313586308561187586348546184120876391447958400722543982131833296071135536674944537444642594531542692644838671744309092182294374977720654152082743873021651387386082890304461905663074527996928059369565321675293374574512717768646141845826115029445110489821758282810541261801130117137479594716681186890344486067211321089019014910006936339515111172939161309193037884961287601289374937168167874666623961097983501935829803942280969955132433526752588820505821584868730421843628701170504850629753809404560218115239293453977208613902146950854318354897473322853268891059315521660211622953697163751902151152160928534600619880246343560508037061437347868355499865538904220063266144808779536756575454905001809803999251364999218376766190482948451787140815544318740635053401842379356977326079375393382784250110477174576463477369342877343662435854961223522071786606745570090834464878380602100394194355523088954673588244396953882224168790791515574143129164141006901801119670141786726985421657442479062200728557544623970504895715788504256177516999420911013543408439942181854991680642515194894657842412897451333162579389005365724518394461804950153233924068218855687246224716207511858363095055296408267567255196355630843883349678851991610455605458481435178193301485056632373578169566037033972071401379605577271764258188703817895476988521344420138930574774866244252710171921766536628299109046460607520216501174306867962501336177413197648867138686450241897836240036232599139846937016927151437592022188429625162562238995417047006973255313433945380751728938888010083498047426527797125580394492370851434146886882804127056735903474739459791194535516437350988360454215441919451179320353279736055905705765176664547882493162644401271434324501991922820343245969047007140408376875181768777460668689330350008841442548290630738300435384303120813529317398765587740334901497733675358863300796027632399290597966358069930838746571550958493312824643176709607828087767433489852517150855857624121000265722739571136481729298489226761937334624061721821514130849527952840751898641814677991011756825225911117149853578166335975834766258254837734710895919870849108037551941205864042657776801570171729227817157994305752179320459633958813184353704549273442335927654462975401885327346554260871237308005152549115413644477250974071688751709197773196784046218757443019994322000970972171943832719449060225064621789878960949922411123173066199329792326448065184024818371758330893840891189282931714165324082523778606599673329869825233119519744932143013998194396608483448323173946561692412149600971159849567803167378330011053637095019226571817971000507291355575086169815412700574839151652216818924961892901258680191583247543818712395436433451846766290061713592106063092508876133358341657502018497522498453558591926129598971980553484339743042613307987911405792055062179748406708520481071085778119486044983236347272454498322375741685793888380460960224141735126567524691635710887398451805615120631413708860980974588561400378709166137327199018277641887276444781940789305364912941030168193742718386423654322715353697473033266531941528328426704077531073589523119620797783879385544347044642904449872438562748692599812131371577597212585915750909789199131350121195670461767943458401984511697172690613666563073889970373503922724259417332304952998528941901883215163699348905144398271659249405591407801872546598996428113096076363932162186253542815128405547135886011168345918628654765312497155462894135684466331169436384525187102599849049859153707975073931546980589780079586651100217760487007767220053127967242714083419784605345888236261996434919208211243569639086565506683917592807911306944015109077752923698895539662332130878525755747153505140819146704118457503829617798833177867993329915032463994584285690057724696643569797028968936536162640307989531117882550828162975632518493941238295084241434441084548759466858982147260932231056507764311457917210808590613808778618913324497315036047308940689155815972774761536959170212507715545295219903988831036964217246660223503937118981535861451331464230787577018962598299615142575985990399921150018622348319874256267289401495219996760034041278566200369890272861258587554597526567413745971727174645632767758277588776114275867188868091297704249650549006845845340009579303324150415843530505569310705477834125317492264611315279932747351866522949307053228564642017092465244573801439032902858979618357122687300317493258781188405467594180024663266297042119450689115044070710559979746287701768295178981787335823316715349981582370492331105894040900127831003794139844279096640113723187462918565935511343281843142453849393982657343317394567221545921438501749206278798614818191574273688893092243288157691070991320492157188150864063337654945084397514491198245650977879334938696739631599428940391892833230392130844148208118483428685584666884984878120703299721379685489634171049782774792337422315412537632701391584688100654054563545401358554627994386631953162769425735137787540221489168931496334167384449748910190276154668367038433812086579530542487172648680286984540969239269129687058844040537529578169400418270146433603434809733435003304247951025240909033507073612504217602376775891730853436222968740126887731723457252635143877732895942896254102309939462215342650918067299112842189942192139839449211733746557824364700799644434639717533528758431635078825800261082761041468884192107769015856920258245672588916812043576304286233477591812943371429677153437738975441743304491635556169844294566569038542697505119431186344026205675375184026020658160206491794240014525076798601964404980867967386025682615667144414131492761494256349128455544199143252641598977801216371292749933614536353833340473740715519898966897188633044570747212362924610570997081904718721721597456702308999889508259011294515055849081538800496094415597984317745620834014466854833452227411266353575919710946165064520208129388972278698809662914478528982980470379056247793441099408646422819837128666861653123043726194228252698561125320009486035795811708234254055577908810175142716106619184470276705054670285841451784145118016379168847322216724058734346007792307600107057332099902064363596095810130788525060611010468382400905024821930074145783986292894457835224590364924267983185821729984545669729682421439282719822763393137836272446297799998857242065148487001177505642779190100811004606174032266833398402794079263902244197522403314396364215727997966205610106360600082080458121012828556797878091727653524361965934119500994711002923096664132299850982601037525311226659334760251193152630307923349102920303839038162371599703258122928955546955822190369275647106171912253398519941013950142708085931545663009472861391680988490780235785612303550370175096347770227324095839396399622577419408570761252632430062306808467106207066991808285949022168710560696845196371267141141243843320420510112450881632836434363009158240114956069693841579233450732692125571766547957506775786125355421622094985247756271165595170037211227753018833814610181700404595543909948078203688723489973120791058663773712225088310090679248061397375280506188962808810415072653071786123787726824306438437193742533305554060451293475942785560401522955637175323777749640581792520089560885794907228570213151889878347833825928127774262204870220695227910746921269722195191984468031557950947738331150380148988379225645080159313493326110935761501713044052393995435873001959653346182882362838388037574581744020358684210925668443220549461836872208309097682357671613618023689332966133014390989515804932157882829170139931936160135667657553728609967686314685766455467419015529447322463187162186057316684325088715027194785151312703143865318181576472663907011948541777733923785307854100345770165090842255286663988738639685940971265814199474828305786500380034839697098233778913093466637903719224962551534459786810753008003475353655980134771510953660403326446726442651516568895773376424916238005360322703232973963593370386027091522415957155763817873564494945573257070716047773254272349996538146130854911350836537147667675451797243397870493822322714970789079868134488777956847899987763109512203177781573271988199363507646586225095852888365535911796665550612046682193899725920561280154974987525014155070299635287122088786796698727314544076635300556309568037830862950480321525163796492077244859792231262574462441612462297977735367339321330107820619930396047147067400298413090346954557419350254714253263924585908602877463883397763435118235405339474203585745279150927552439879897184560163699516745626404915520588339204789881565776211288935789998324343986625330347168343332494434794016782757582421970209417136295863557875019112807274811651077803533396120934310920756167666460466594948163433110337736680716946717394179889184266179721123806497162029632638596037293732692894385407304534448078189683028897822984514380133255708995864782246309913353852529276850486197326340979637828423797405896948172935364047160920764288525338153027087707514231947586919237566579210356080381514819762861463705215004193936453103281357842143792655113405030255642905587670874899294368272902011046547251869175355328481962506487051721866965008647168884405061681528568004891099208587903602933019610326725534935723424909530040035129901536348323414893270324726341306999002468534468422888380455730615026619085586380123046398727834662840483716311728468603125873355216251049915671977751427201657568069891327677600112402165229287163342297210823885019942377210268555307842812882384648032438336175737272562941781709142045524534270020791575071264021063585088221587654281174711798972679170740037531574900809184529570985535918463787321780364099107719260407442948938661155197456006235047607680772298062890942820441075662898763314004616100455834500056345793027581221592296655081926363231775257154645925307091021101616217687556683592484800097954095234395787245951908366806452946317868234754416491496298555909280296158917689476975220289131578333950634813661361479501088868191633370179884799259231033976927779022924191017867123265277766267963993039204642485296659187456498479511314060061191972132973866535640298329386944204815621405932290530486446177619309749933829304459632434810792054329601577203815282870725044655891035619687169421579230286029913588782252067462585824602141536251413946723607511016621208112951415037805941577932139568603756602662174680868069668256869874089641141038520130685070769903520937411157029800306173730330144014680825293268691598816923489476858608884421806241219524058919369528044682202178649735477288588523825709543858337461562106571172965184647019032988319604885183198098566643570864465660998374038432558620238081064553209508569884747575485560674395870296773361585785777198404798527133526625325166040119791888981763974940932476580366574703965820732734007031837868319965664561077488599199447964234669196559956959869221592101278833563686811957174425915635223392148234351477762461386584231251220136848223071422033244420437215978839568471353515971543481234033191578858037700833123946404227410753538829076879187365568559378474763948431218934220370718681068747743013382318052447481617477901201341908696437346637923612152002422571506699532167341687671453772764332111509756432522345411876021062575982894404527618996626575348860646197082359502398823540333792786789129067023275989938168044735999874079045922833135171343105484136173623186862254874005812427206192558573256104071529717777238562858181788068713571304152703092461475441411770029072403224337701472312807839253310213050176817705130217803377693078064779699872247539997063648160709801289406814593267212238512128601544254965186704028275281950549811988121181747418364275227278019152374829017503268582808367705844072452717082866047517346922847667204587836437929670213698100254339456335932699968177624802207626604266718513938306851145734806454003780798190976606240380222496591509793957108046109690235994523962405286154956493335219770307464701538104823935113602220453630782866407181034567551788499000744650682357505605336950196405712809850393536392547206381682762279759423325202908795025259479616056592717876915726470619277247781843960351583103161822319245155512909683633874767058596786264079125307365002195093094874697707618067513838511162743407737362429911514319765136103408917231810913853548251865021535718269330384693418161892016638042836228967068112693381015674176859115361269697498197581524099657454451223547830714990765004793085150600718362461565528031632893747779436064004722433470572042659010230582252337293490869012158981722846100290569392368838491172802346796635443431019464281715174410743581395087441084464932190636349533191537232346307110542999233504691823117371032056617302220172659804958177460627412459822543343874340264726625758740256085963427764301889154188232695095381000480518619250051072697439704244474812543077368426625347587375927003024321813317481266001289131280517334391078643315143556482293431685129635324691742082347107377572213394071243815291340394945504110579776882838847043649825901495122184116095287969066600351371255605041106428400595308634022654542082989380363850698293782976553183032985013172559892163345537881190879826691889961118144929294581691384911500167368494496128320961726625170562112370552736806932573579531618678857445985466882571432647944877455881396059751446833294868829653390360894917674869306028785877433859689774607534183053257120972058535785917106510388367649382508584903211743332798159851061795063319347027105950517718921029123226434837988152833338903087159275164675960734964681972584847948323945458564087168274466353572148011800337373575706540502453248285763888564389603663854710493128239837652813214938093153046761974586686038271049846040113644473790492556461641200216508187025629221279925392431762443378999927000141224889281437506600632527340591714400500826039822304715520587506612072919114402417196570783218782198266884005360033115986514032355588436071720795162038687098097859510239693454941113175204013686409594637793259991860574139090758408635671044941702635561160873329985289824661501273071459874479722668594457826265463647681806442457743811363284146573350422265998607423963566891632647715530515370695418810446025874941200364599374294246706474074824121041901719995067260556352670652227130631483991019461186327128909975161150006428552958899727221294115688676000403709766363268377380134656079212281005898418621725696259430192031413070966945008253629935094239825128240791269417019591655290816978294377847528043944605794697909078584038789995182677599239349966711925511050023284323581843566077751881680808090058414435428256957253936222217249973528539335074039993668646644393771966154846583608236808833512319932808287998163719182185710211762489895609160472947193034749227619246604135754200836880807555919915691734276314132211040587253592140016382214454620024987424645915082409116201514852041902765299184292858203290010638000624629221508893068955939749530319817000090177973358717197452886808598248421744155418220357328996038801013761836735602943544226762840146182420715074546295495247978739404362580075301312613763343676682745811306814866653032491493139225319585053885963244592033291050680827602804298846516364257086495996132201552806302426971405514846854016622898183092738900782297569128060441639726238059000172558315953631511309593579111884610021114236814135637781060027414652459208135376924711760275956342558349815384458462584299943403967465929804610622513515328604084128830908206996170036606350848173927516542679156742365909398948335662748142399269335976273742435190850059490467605986009048958872193376161436852420480394679634938928759166082670795232497681111741523414698618870884474689892152275440626662507627626312313672606740772286383594969118270166315733225011953651033725938844295155512782091315264408611001805019832904488325703209060558811384765575385648591268409342315492183958422419109026073282131002422309895602107657601752988620622144916846548353078370454430012874250047756842597775802416659197529810493627105895267312057751663425954783052569319400134196698570016363257752996344040928429340400978701256708413408510758383384912930586574162935548982177560422196973692719359101068305837891207213184996209454135872562850328014110447943302825624353431886317166259709109733121956370046762471407776803771626647885312060692811867923556957932239767610589925973670637515330151633463764983636501842508704415616457625596277909318773955274229844107278459310830330580274619507118981531318502027481115775859410280323551407509698746973639379589562618128508306349337787416164530526771670837476535180400449446406834638511571777409193515825016573887159379103344762243463341936939041010756754101641748176811823027111268185448649455430799207834880159528419623590830515455908808769647437345272003637510731391608374829083054666191424757120907260725099199219742283554074448305805421747630239647989466681867887719511250398179723434407465933751046244380695717156161147081260464559468242741641448130263836356836361310493581791768322743221936524016997897990458783286665751726367469539882537466980167030027069564779279616295244912920793694967520699551460586271019181829297899148128866310498935657976817622869412274104427581200185662448103632942382138139902358544967386316562610929236432137709647180342448503089955282620085673879762378061207826781526927615727279224979539651185292772354505261964910333360101392935540065521301416272527349835415437164556155618420940903988492755214271356547381101285622240245086792786121022282292080141786711872107416220637230852164798095526564948773163645462676697013794876021404296939909538457736913976544706537254568847300499955053467088929318477848874790839003732200658413080765144628556833446801914496104777889411439971948920289523994143571916381694999969570608247995633144390021493942615179632521379359962508477127580311383042518174321129145193643041035424880046557182128502245430272162826768292706295610157593256308937701035615873053420900941930917357444667568288371889397620523133374721804274014999236908029697352274392053978397160384290787289751336889412101198131407669474197375682106383846669813033390595198291602844539681866469626357813621651307776964084220304159828902180753246080099435151173887865135845947809580030587412924608103178966541923978734914012079652380952795402937826440705035703712136369825456451744758743364800367568141884180154416361724833021132304944840629491337252362351094679454529230406091816823128720780115324256663599508649299436819073555031301823680791554411780099937010553824874637335867155024245922037841297827455307937120955455199704185242697542082959327061567293632592965449311921632734699424281496741695672342871253010571715347315540730749230059066895424860277508930565118710475989245873066135896488542422067430067316737718686435008177552085118077748234987178173544546712154240830112589148210129376771222111665919590418277756008900729105954922978987408039465916157168289998802149385353691806446115016509856452308533222658517050355528159179435288118105213202464597050151283495070343756304911531677138136828566272821403807762077734359655481587478542289849312732020110602106073053412021361624464546222515016745033463187046423706380268042102507179107524067166295724467141444934839128018621716253214196826174544241483576101404234884505905471726785331609743638377213791635311967418323398821578859696299359453209649451545592578112016939147119487012205470532408512555476826850993423150495934745052972919506073727032212074890993163970665288004035562662607802675402554310738496581148933134088731904723916943021492286450098830616433603651077743905152595718878630132152343099903622724152453870157147156252155337929215602934021378054127172326153340457496567759778422661787223306909912350200442093348479339621438552881141579802669490981167755711441489369505192544681377427871358533933723157638159537757565470693524773091681699087671315931468564340460043384715613249923779800012953965800189377340698923849803121309127808809891537613227479530055099117506405849305831308060720362349361305087459596107441857233403007900883312599727603566410075938435576337267282494272789005411106304153102261046213744290541150080893850082948582083716511988041242071159260605662074171748915643769595756247396632621693204430705724666589582418603843768842527693023631747191077180514571380174566826165349347474122113842189075022673025134708182942632778071275979944802335673293214630809069328313355679953472818273268920566531289286499312304905261917313417148295567366810665900897364384938663202119835230826942348489846596382905508301725453014979524686510710866241120118552781104180750918725791695793532912392285848367468411883396656964982564641124289100292598356093362926850417657273574659069754581356579640908909201157931685063258328653621012016549836933889612547422096011683584388017422251290839717119563586646796017367759119836887068677756921006105560927080069736477352131917931844947583163828843769452895115056312812117414107448892339932693852401846472325500631556272299115036811568298944148920623700757500507637104257663455198775170790575461744336490705293650907785953590971173684957226751795679006334114692706809367975526397046739250672856508005629372986610284096754161600509937742213401199081267139002073467440081507177033929822832673973657640240586253891679227597139943404844695327547378957243434335153580995477012276355312736804976479534079694736967082749917447896009236477371887737503066895104508932960539929901920842248095693744728599058035789857340043831508146998754970785508769591351749753337244652251633072823239599025494538468373716701616594419009107807336522258540329572714131487483382739595844381265278597368296337167787468449424606314214298816563304464365565254377518114592369750830990556722774612653745803820129845579204993823760437514738573520736755099617872997619537595872263480561963539582739872912846389463671999161454466388792890687881086085846819519136146230203221458230904686915105873454507936279782865952777190890827382125135037264716136481913406703274708769325381321117918031171937102254419396550947520694736756936220863521313655400570310976285240694989022311252270999648592483480707871181120278543803306686155453471426104291799514758884983196040967559443078893036750606543530575741570631751203740149936599005936930078466051559830917740954914133605892117988045418330743320105643680090315187940685032603709366740101979575530889323797649208972645689786770082186885625525179443610791222080741039145492872747273543555041845692720957273791042070365202030602534903430581461005741260516159594644254532270875583291867445140260982607513186840639478571611299469506446587525053691471398255468857357912218849963498830025302597781760907060221416238400981603068571908146988545152080581892687345407403334311698777406271732101456646479422003420190704450896006680552113089257879614984048879060341372935777198034060385627862834458285933832176017782536706798130162988377453394178393196985676482075678002922276956378631237513673852911579961948527551562002978706049658702549845313785020018001507739647922699768653705701402239783817590852798241915525654914238382207820254565638948891859280225257379468544864538327625505922623097135101140911054049242628413201776315791377965623454982207106049858161843113875120624684860863971621877536775633952955325144888377083294340302906245907531565371242304078198312225978667568788802816972333537144852832513683621325971168173295055093763350121942039191123021971682400990485788365245490547486610772611600582258468549612255328830457535908660080710198164398561692494360381551945131710877064867838329841016411951657050915179971643928717762039488542419034572620717657788063980440972896493250516924233367758611845620259248309204461500021418109931514924904295413221843014891547092635536544204029968699608099011300633613684074570591836972639684396753590441685799477580588870258564082072391312941234917368425188331793222955101127282665282625935346846287233078713412925135125720706371869326471844002749549396186892234229087609996458836716901687182249313002112091275871013893757494583129175511846229043714216952491328551752433621713188306995199517236490891370150030736014732953685507798396335841002845906004297425521844268912364354388047746965434980398351861398870552731398257318576298054201629654924330613736885123929404117268825293543513249747453140701560919799819915416816131590641468233484057623510644499909728961711704207497048300893728302689981224814202225687654927716307945829259721997807498555613498791392510810237145975968310060126931962688678735114250300763775445885926039912288104296492205603489379903737082736631656759832737359383842212105501144220368813304707752048346838998125096548218714208977737706192872760469447745300115053205326138565418217722679837067767661673772851852602459362451604511922940286652634285787485960182676171296181205734580701163825980519908553578638868582700864598487690394761130399452867227837159752573310174347220896895359116409203418197253068078609812630010633149143702378578060011545007019568993799912847989947949904301341504327977074624255551033258515412092029316039076182158142782195817410081292173510199476503361633897006675038331185268565881355651892084762558397131032249799613940316932836343269311323479878077980593241768857154624135313998477023780019746779026596931279862444931496456155624714942410409698461616349592752962302499220419758355985619095756937447993031419769977222431173743891364252587718384491247412129543700625094036485216351562418160775020212282232671392989908419888410417807744413757068918324304074573695467679946940858998906732996382474498505540903488183961871514680949520860846338117702351300613600441339592339615680426894889918058929544889204263680650983697654240336931511915902686893458717285079914376262806276137751784525904610145307291186445492844966543447203934924828833197829093211749775299177126433285249181668130598348737078066558703101587783525523430899608790645650484927089811437488504401094465444178155030619120638823568446853099935156998578215280045226966727341847150957720362904979272114717404500607379440925040241270826458353289187323633420326408247854783804935072792434640652415627419838099905682883525246207670431780461403548522501235993612124525307761172397170988143925988057307810094569787363573203858530635620379099195703896913939513648074437938627022906924438758231519968915627188374296321668186232523970523795303652181784865355463529521631220487280038713210990900169362259051194826743880004066630651321461252654659036068760679741551027260147823577316786111443746964005712341157137654902729671740476645684743653460669665674662732800347982605720088521834654176037287934344629062343023795756282380565911292601957869068779352797091164241825482714455294504025758715174507404734599007563918647292951113751221570276881842941688873592128237682505936839998495038365810058363983559729353299481104546949178053629939285306610222589881433999387962925149247952796574233119365570552091003965899114125407313443087394863247866893251637703267322510866093293081491966054276446018149438769435307839301913651733189430221768820514455875003420586063338086457267783564435389589669974641511795435703739793877255741193354317859508745380595320292857907515624196741492264442943318136102323298581491570096041529285760405663668189272899275096817257718028547057218731332291901181546751465540594064351332009722210348538520072229289305650803084900485202506973540782493583530740096300199791406229560928245225044571450707175643171867927766753169906767705584062177876736433361803683829796827517522153201704549632197455492487063151194273648637448497356733424988258219822181249352522413027082183906747833057957576074035037659747672838618346818833618588683715160463642417506170319677639242471960196625638285687337183500907147209652757953373887387472376015501680984353380136584183521313564083207582341095924286775903373556095099909259750510652609284128413860661133230742032549085610312896816124276797206126104038650883956866329444823591112305003350660989269771971319464774960349914790945064953406111985488870686918984942488120506054906135936932259487144714502590383674086244451832054215257334758937154826373553551986242106126796226988892613066619128223500311011253495569619735012358322338002708924599014941176543307457961948552520858344149272424993680894201249483559056890762688051882406452890771936045376812726533426378160083030584404001775130531269534443785474898498248221787909166735404909865858438607118417290169296013384434952605663710789818303103528413657932174576171095986002264254951899784185139976555776022907231451419838873189607960447074729258945366764945229707133855175087341647654221926227034919359639500557209450611266142698697926914342056129817924020101861689167397946885186959977463561852790944560273201221019394051094424219197351095179854463916728595294720690162657038831324434671579282233963655446724326324950277494244803497421643502271422868285030803534903972424102168930496788412538618957193792194818390368284372257659314029673336589964035378326878876067731208912108412402234640447042367965183621097667302014429958231779556783822781861763205746255523555760077714154242584537944282758415647197689637633599364595895301571978465678441122221772862070705585380065134367861744539975979470041427321985148950047441611354294846638795519182363783599570497845189174808674419680384401392586964321159416506722771443972196717023691121694735566318268841970206276690627722685923155850139876651484922726919000278353222728798710930905689319676038246308615384963631656738759796244744225002889300339964820624325645600199300633835568781322809245480124210195314901577207035581229884995232608315949451056989921189454919248231909930356969465963784280384704448151482667013008513909190722379056344004837061846033209717014446060790129312040884596652458611994166627844034617064158058550068919780047106025981175211643680188363959393728385821196119048288481286111126823073729814784033204642876019779882699029947174617638972683527396830967106237903654982774096418480445032631439706101016684903061404070072305022737886541157430269816486251643150239685936025344049934094951013692309126639565854279607426812637288292592097181156487536861574461781703447783621623238121523988283426233599982431592093059743060735781960792289137353726749589159963969163247703932755364970546057309235055419857745987240279116785204125436253136658155481466993950705501204336795717815809245081290466888463137383382219471936163977832431649808037245393324526421938589783270143235574267267492012530697873092304490167055196882778727613470251799696770343651733487712599105551696166136162921694575633027208842338840982895660709009834981784366894369731155947644829056845979013807314998842114987694829273456177846287501665293634583213904704354717004682369414711374824219354529505187488698171358215355130749811229839155643634821463031935308748114859469001578936674342963722358860686955063954471957162996810614700303802374176089594743920292123131475972045053558366482884458248722038628119972586207488612245590164266035491828619516476120990291930565707462105103854398938337916254060879916017070042322591853374486118886354728510683243179661684640680357767408977663377248925533976334674097756701233360897909639935880748746793062715641336261557497379342506268162348047776065617821492807817096468061159808225613974789976790557527969717548921004932427432715830985937996645650183675086118763361523845652613207148463989210041744897887877220597845307811434194380119276978179274518796713208159784067445815004220076732409282258199466906092115410809322477366391688390750949493298338149341687420102979605200749092287672618986485795823680073914465915772628004501083791729064450917754404728399089910076317492872601019565082816850532392169546420794816016889594885144194029312895843149494471138311361152256000500443698233814212645790608124111310767754841389251117216767795622648219772094387198768925212462054527121458492848154818149101663770810130803940504592574699601634426466793541994655325533789401538200014578212064757387108285573898867931214030378066001448658607288129628352879381638379571472700705593180934763311217625387504612531914052292677773140874088736289453177822575509995081667005295849654978917277661181384243092388814832465846717907685748435053577856637399287378154810903335945121279163489288141570032365895282456755246364450864310398246621782602519496821080958137892025905129320904177691152078644025256198707522547054549407584817879334211896449322256662943824981030703259043658205047214596386666267563430662043889579951836220173440239413755133960761944636861123088384778137366334916977876884913874930645169177187965878164794822842513751663899660596260415065250266271043072855250592166436964046916349230436586305518578769453194042165190207717937142344798332990792280232032800946957278381122462208642761843128012783194213600604492229542283147639567325202165017068517661436749318369020271607909583269099188107803290791011575612197357248482432194808362734099320977525109917643359519029244799624549351481915112589644048257405311260178187126614111809216323431950018097492475767658879955020843029892460340547235985438838322109753569216046990990453697538690168749394948605769917239334946177894822126241780212622134956605683611669040598307532918740751409860329564883758992492323628801781033995094572748950654175715130406648009028661824447922032648654230761622676267063117331355542739033930871255859781144166322295710529942194145327341159871250077615244288008030795821425654329120372439062998455025907675840573372543548905078265268315675936551927106327407591673004346759945842442416897617112923686307360339471776892564379552491027549537269003769752574209423565840652933803999306757792972560562892067568256719513613450887288173151026198818566545246932157726251983757561879145027597123658103010749280340998563826620000243782726722990685795104065856410921703852567955390989376580813304273854773892976079835610797397503989894762135472561164687891180072691942778133233370713524862729371573783501475469628739578634343679782062394463062314443815714765746653047318317314829619846239520910693860223166879796545501488550467313503401400001310753769282755440015392138753524198080362332833559352174180690571687299267795150105857757627261287680505485900428875862323043361885811382656059600265140060633950446010481728519269912799011129587137249433432444468299519734549435627123769035146333636967594152049436368234224662470757435547478547955431980438396188580871463473559907239749441940540654474295000926653140028395003005966815343801235841454670976957565299913883331043003920981510495475172992712413975282574205743211461703111991582543627181787978300363793274780867154618581675295754722058495659743252975454282938927057598403034139441822947684663042863548533422691248535649661487654280609994211784051492314901519282425140954964343550364146976594308865753834001718776974601085176410824428909053379688918614223124364686362261404286041527941223137339460878552669184787601270278714177635311169997256752218372033756609090607104883064312883740424120126117246433538913614137411976535296153359726695524804241928474405286868985197223794973340984685657471668034024505672078412588617669555083077405426801878173970732571332688478728217639492151366366302790280043446251900342285443059716769563507649524520106187919720254664538130180781221463495219782796125504534486973830191265984230927726620592059586990076126129464296999301839206149211881114637785628520400806884317146455375302696398334038959940695252872690353290417934147227548500413252511041997863456816318348505761970178356813499544285693106125678986306952637396719190464441830884306563122983545328723125980544480668402255919123566266062960896639127645550679094061574793681161795405338696453662179287234276659729500663549528724619583818907984575318974280452562551196565650273596919994048788567255475381485393459748459324123281829777101050831262565833479146690331694874929036580843852464902881772386432991381742484461056982803227283613611332016156478704673497439508295123177398506147280074953733809296326671518517750629752427282356358366115672740473521968076418568562186333692258751562560191736460754541536442821361485326046802392782953074791152166671710837134218752032929362438132036329954213079993982866199153239168381549692564494104965133510781256515927777544671276546082545891403865043451409242497667866947746884243092075770160901135358527378945294955906225315990003983541828853977108359372520084621402778892819057962835361163529569464567376426501864409809351981749748804897692235866867258575393850771424122872895111352660843201769095104044588544809152016986515251654459519420362743920442765760576550253523627796930850565496474386392633911308067262338682527274579325640267499329934898006194940915965260877734139514163188461403582617506541001868996360800261953587606409957900011574413011664211480006395132451678930375647468950922322153891458261524411324794157929123508588656899575747508492857045301360239644466054571125227110537488855788233975720213925280130457504136506380139165920963217769166397402748148730691806919895898480844690325910924699366465044813847598096979233697702112276010584433191546887106029290042484078865259023926714048117322791747876145818886167138894450292869987538482766498824311065527533892848332406187668366627923185410739178693471797167911106669309888368124795950653204065823787832052108337691250598314037854016145115779202014700542108981080020752061121761975146495940235222227537606097700642869354338620855299394367846520892913024471358492437966748809908864774533706052124431960273861656676914686716221951074117500166372094116757206946656272511340425076668792609564517811692507866414275195849409883848151228551418452439981072070168851949871237745898950655070599223196698961612024461026288410793909408757491164736553105311770557441616147155360201815992121664723448686006130268707878447149153459358174909377115853318486361215979636332553613714088379506792513043836182069158156140745782205716487962883497471695259152286204800936488024309655612800091192841327442196111622748295740444743754002608721819213287801934631233884750627887917734311262627192866232637297614985615099692177838239171218949781637378049060828002883528261097412405235846237959119687774593963530545663716142322385480162086205096018784116693673725097048736090867737528031987058679593135415121428738389840805555869538302894906469526095981104347402426294323283620735238940672435141355794189711605966977634787112602029357949299008094980658766720011184049544379545266550818480808285058880063655695771831610313969605288773669690287838817787985314195838380621763398846424433005959881754226107703528158894828136214835759209392996663150896719629831412368147657535909632628830621845420935587015455104434669252996359656916114349008135555526732484009461205652166223868720745641743698161318340143241447517023335244316658438895227227575432526792839606468623535696442968957491847803322455521519059421042796909641202410835874099120895581293226368198288735620473511510268992746527372559225944598163483998576205012129066242498756273213363486305649645644433094451168373408886183981918630128164996463810904395142351535998930525244205586348053554799292859435082914064127561566568467542300053659445484623621794821429091552829796781209708600625944778391232589638589171583244434445837500556124146323403750273760208815683510557191474396320252910374747929065428573097731766801362882229894562788293843066732407338327344222156667358150375527688540840153699148416381120222508320680340922588605174463537630857586039385875193816754541567911065782483168184830575174884509730952434937960198393212445761330498256474995923756051738514689049840321665782307670710828135788184680637754831834131325275107714350463395536488868202433968954889624684560697914163067248636670333188169571976012171197966835982312237086907849467383531997084558859575834255724540050764270498151417274472364484128933034547548043668037725126936570197929707926556348630946025820743552591052196529414113602609449390421963325845760096093425918612744594005600811299234143960614542704104341274936820782578658302563056440684754736713565997152870710224018170782736738956991548698949527837089219825038397890097063676718106126777250855407298983646985399822101283877776254371428775216902472795682860028717250858693744034925298247176291675383909784937522886264441970521785017433701283418577495935115629611910518420327828999617948564192215973732917639229337828575789581779796618612420961686911911172778360628008445042254670288298804626588898268451210246767045668983458140849996087960984308657317442022658621305368221627994353087262662841508635639854125636987784978790417286569290497628702654527352487137287516870754314827597679591865178712292286612019015016687223133869881204620420881843616854227010093047673288004158373978137585726924904732346675748482009813445418842891790996819608261227562535375083786967613693535713400541159867468792627647451440203668839041805617477974887034071100491068933926240827628014234953380626152608626520616795514746813128143024551547263811353135074755103013829345558058486070672747079354050321351039473003514035173540852672783861181969362223919926954956733754350246210798938918491562598056661727578639277872117545174424971907954655550131941769167030473872495043041586138379858612842711155604425137677559689434610694439353829929054599094471989385975589131411146550227051357890435537388719713804748580359508929535223207990923923841662757513416185056174457377879691305947698887089514326934865813668927941805325124375362037891110620479020581866768010392606422447541060290324547499569781149697927154675208957316615663548856069807062248471480845065584087777717405391151224851982801100550985751438588661977286315262913155601447770661712417791752703455095673484101393802218135830798102594103109367175484930683400994864364798904165991455650332953988348753676800905576827344670688907249504700112804866360453203035271444106646867634901995142089416891410834692065973801165424122324676092414925032298982591999931454359023210583893023117493417284694933259342305730921086215965845456360689620567964992315105955173390057941024465706805675274211668287026464944200780550229660981203612740817357268401174035177513296672385833635115763497384125207968638909523956563482775823072748008658316037591984629459194170837403036074769415049980129248525665575577408185817531289712402515528203138675671736284863964462294681918900254250608348126394114537354327210019984905613369859060646670470880790996334833830985740169947040167697554199776505137193738032516339698810969741004950770249780427837200919045826193458917134276469103488937457318658558127082436175594165081602972697618626867905378823525287387979100806209128200348724328255844911175888313412065298330176552643046129585270915788864287970682444367900005973227484895014142063708660184898599352974024212205830880808877854411733114074251317866336203230509954846567870763783152712945031614043423129332023687258550037070896168953834107087241899383844991195044226063478302725413125905971685725628534140442437184686026560309781128101641216894135144548556963986718343036375807996927559446332215696764148497805481220536446796712638106506716589334155962346068645790844830920999255612680390778818517614608126766992974695584448097799927513624592856205935524276935168456464873744030720005499434844714999208890118463741529727650818878061431843410765071006299213418578609308841684134820308006595466539480541301987011984118901645848010114371889455869910083325899935524114952991040148205515409078422934110561683708384731120385916431961661645883794711308988545403734007993779335685291912544556963433048797489602718470085328104441705077469299552025834617527183998875609123575749899055228750204703679203605529597249636182717964362564765106254483289275418711155822376191854512910502824138638363429216981408154193870852045642322499119971067210035544216664219987314138754001223503402595793450694685876071523942406891971484308161293675520864604032573204944030003485071800551389614115798381406494574249605013616203979075420939836472556850965413243502029510491582381273587745048706219871083737606626481179769746300812748022381690637074762370732691364483535974618554563756646889726357785494418510482874387337411812610729309972900625353306670478173806373091411917083685508715780063928799205005575479775456728833528531442918758241910577651349014816854371825266322435069762644982436720605358331157801720741460421351217270497641724436996451704603908257660018796926828335956313978522691276551135941284251585307655153411334809977167031308282443605877080248968432196330789491376602692562974395107355747451047690796423572883545609243746968897784743011816674452999933325124397815367838509590953940212152694743200229707460423926962707287042707596061077315503585174671392355968794571512732315737584708717574348816132435874902371742970001686479446604432864894450493826109478633399386423600762927790903850814495361325400315209454647365643395656888708932333811913144307248429711036334270156000343080663431786463991057919161636505073490124752801463021360288780397200906046516370450807823132226744279333776673355878671854612625196959789444822281334181546265268420742956730081727413305035451017931598428614008586952894875030555615547915285184516088404576243086786930710511426811230111862046330539848548562495174057895091552630175121751538937124766138229680602406265487193337158308018121830443012687583822277489576824529227600353423544691979878535554521009444805777841098813332161762308173871837447058134900929807095373111987747536165222249016398304650931798995200985645035206323997980677980376010026927260309837990839098091923169603797393806354758672627006574403516425301345172209512343418460689879467976387108297160260769257306273467307904699022706694327911194031885876569573345000509109136548370470372566166443832821059458689984513898012315287452802444773105161456746653018068768219240458394027580606501314311299846826631728414125239066228304382933268089486445576651944612212153052427082628331338380358568215695828182662054979437531263760400570848201066962845695395530376761626066788218726033281052173391417045209533278890102054248874848346228226010388548126446631401619312044863798053788336826797751275869871690939993168119868489916329192881135269529004490144940533971889917194944112928595549124424939770942995249192898111801464208275584452085706931336364472167962274559154097235061983838367586639393929669620929922609687366425810057743154709883568514240078246023877943649583192197589957721154285362840705956505863913875835763995029221419732966355629509802354955755638139605365813818005563036883583407288126692536415020089379944440711716162542030009519214012052809483819885411831581037649037231413998082651255266207099313053464799498730203241444046258493795498090835144035989577487427769087637333063138718535651544940743673717622536503777696308571149125235065707763574905653569628891718934993914141883626983251064019888941221831335565608437911969853619754584780008365930411751839806499009112828677588401169487269407582362598431631612981538469328679433671701377263961863417306460813043405109165710434653988396425408608049148532975094036826836010035597806691751617593462847726886086616400312514713080028501451312257900117819353119996692366055530227557661940938442858707488369802238922229148211516833172732923432897496255323192869493304903964286833641467619754983847119398679249620341575456761203374961392761386917120075209589304164235907081524635936973837098069168362744124975356881758931963633033710826678820509528750279047428059216612815351995562400314762210224531104630174559161971714104125529758288245740556611634014543325087510555982034929979700092101919809648608470566481449791971614321431779218143614219412861294656918205903315070404519128787286010349204568307654428182214735413717060003146679267559307449884584117820876415622022562640507933049666531136356954886108698497570055338378332084587799598649845802572085906027517823069237799221435808057183033163981138353130131710397701330682855165624745984827799291912795398060177110646851273722912694619711594489227148004607190879358132357901619811208646499707214826586081588034965150491313267677162704962373750139117034431933991531976144668870058571354163851543250799131233772306213725510664578979978747783082541928709751470124573114297094505958198690614557535798792108255021199987952567221638946593928104458517551650140044092899252174661011818011657053077704994482862166807328343576617810795489688182446300570617030497046052929745561957812284204597852298689835028075187783263518436040266495383899894650043841362505380441229956380278294359301930304850792247037513495123500489256724692280475566828741450482996698109134628111815341957251432992125676439015716493585384448958701376241930489599132702894637548584225169097965948864093424955034366554017301933402458044131212264122568121283486820583824024002139865014195683708111687605610812235967237317388182778680356790510048121817550375517955267542386489018007651016241058563685479747285165876744242643445660199973861811270854828812921321838501411934205203856743921442411519138515428072688730571196042058141047480353764308643823332245186386332398154487889749344918455141815682158561997023306234515203851083425710958095523252398271038491581794897537441399053423544850565716203373554882964594023021697980014027696269258113747753708904194784693821998045350594742323693237653481677565688820566941667582964185177598489231227965151381150412882637965812817923784683044406336178858187137368091032184766472614993205915699321435754562182179436808118554470879700568277993372123998801533446021644687225593520922800308259667472638694641005009294569333394003913930615963907773915082643474476393426385753846985213920612728745319679304986441662514355183242253537140224732565146292218735413634074908992961838104241152348420865111122843951804306259446879009470355667863287309802750181829821859562199877324103303798714745847700339675810230285057018185705447170282042293364763274649367221290537765393640450784475243707117567964318897024425705715694324766914294348752498914703586661149759256194991209656992648574644785970237366157386470928717490309088482169777746408237805390252772244364303649950378480261970795225385968449587000005426048324423952900171679087810954826829132099496200812992263836203120973213721172042663331515972103477411955552794751351578528557667343947000725573994142223734393040533166353943661700003958389115344870714521634602983770423387324025774583993382887180014436732967705976588686995236278537767030872118009751425266164595150437077187072791899358308839491212507651933007563576024745339808114834844991227822237291907000742811079009146170002927018714797159075297126709519320567473124928057924021181950958712785979070422905771259877025895971042411907832075866937471684366871893125218391755104632869833121903024939929131066627975716091238535237039843291414962826256627220606731219777979962947894078906946640046873220601447091685533446296320915703349089316018444911366922646437030292409608882610331590413610892359766238514517402052456383741416959191080122527494268460005196353749243576072019571737809580366661628700805126201689731375958862177106162052377559562573003551635645915925097206951509375711921893002888892155214166793399013473592264492076452613994135529403709767900091751093118238767420926571163827330756881905613331607762450356187350564492190931237052909925435907056468651911802017946201573159636788610838320767927998026222280354995196546194687304702536320558157429262624250225316578276280245286530549323841077731622141974586770983439182362789625026482905185991757417627944868758647834335029258984295862881836076044563119230900537059472860712367459214158340019635937202192747068892437509175738447392001853478908000908146405536504401756078167668492421562932483510243132824640061741531754618725301044681317833541941223415453589643980200329351466861252829554829786282828257972260934004531858532687844120818012667802715923590416609834738720406907254712044148034807683261617468080007224836589365793919277370728137840928902121176640336996151821864518120526754960369726740704202956439051105288304921567543091090150557600977592479046103007606227366385501704991161460228953980358285450632002788081549481906000837462197729020816433950681999748820366086219012821210832330305115938557752245249453806953849903075887114626188508568766951824071951670430629542409379110181155507054243456251648772683162760384591051735855405874801551533701520987166987439142786862330851624733338118803990724086326181124963654651901899275631589633020343108153866885505174300637055933113897074470220320489601416615921294431182705051704942166098147059296123246424065110307291189869757339224055287991466650018531172641182584356036262275742601550029973667440557935339868404190540847150868261055174401869553614765786466887396246704444700272973008086358821861998237957369748041713180313553146572514098258815983687561787994696713561086740683193299769250969530335636009465414812487304554406794116049679830712696676525455118649688069021710882971338198207270277671757321493054028478036274652417119402263351314532980236294438803611145645155178703575114769622255367732760277743298650773525479846502450877936472899135730108883016437010023787427619516292613815508707575095553671271605738642009150776885566887759886522896008031484247857190917516483007923853147317064098887527376469208519723461209954590151949105789128118135002243966845280206084445357605775525475190084203130518935273766433780031882895830129023940030333093818791624314471165192441712647248013185927267708098361540184088302049193781862932718062218117510218901269386214053771649189751298519174813937956574114045089315167547434907379112272416793312243197365623761035074496361765445097738419528998037654206889334118534106777352379186067474622578884705533658555221127907822099805669246468860008003602495427615696872441755802859618345681183492697925188380410560092379815875485967460552345234484010642671428078268948442489113521939332714464350590864986716481075316884695124028242672649428614388942090359609476297080385603551344665669608611397446096432838688279483265674731876462961827439262751267565778786880167147346497240911017900245326653827324585583300089611432408871577997926593874316738957463508230756374712761267511164641600741541329360990481429488001751671983262893046451168837570856489587520662334098404150409044731870283530178916975353344074369216979360543548638932842482135545279599065492314378874811157077160455504558166034031093240651849812331128201514770117516378567763848752247986893473487211533619256475152510551995261839911599156544553541072017648355108045739852509189085335507077648377756484787322879703221788387045515301081519419195280314703564941431195301486589378946539207898883568560299494774825853107643634507173594198300435663061367926808763917240016578061030709905801205123735622232053490103848917223736245794308742099395970665026963003028349894065676747165114338243168056524159471707918610503950145398507919457683102786497371241912694901697986225174415286264863791525329924345243455168405731600018745927004936031961479628773778273850469464414195609113443474495739686731393823093481347414069804602430313248698904963660338006395199061185184954473207148744477653341273172742752336987878381907072354640596474791118954963381778179916346130176033750686800334052475992007233946844624829045756322975028420201417501433452053452877494286125028470529407524569754452235913242869309466197808410206811750400141399440724446043261217830790222100175656079730299759317218470402429520104634304418669848415379144165548609181899231324302104526441074576877676647495404787853542374832526202711460363248331775834012955530301982099692800936624909732981873025911214817555329403719288652049098623410057915717482118877815331221768270224509817141334425407029796513041399859877902401437636615069058616041866588582541677089706318354303998760966370800343749750570855270246959482375210360917341557271185484759552103259907943611753572832541695862820903255817764917099225405354078341639321788915889328678754846391444108095417628587823546387444081687820236456138426364136389402687221717954056545530895232419510283504578577225035077947034130260112133493531533069496415576284022102514506810690472976397168664491503519263097319993114332729164647473087632692590205781850951096333316067530048036606452788000882925456548006291871614481465911872919065045600603713793465703654631280715228676816335981883578577782302104616226656468125759029066674070279439510920338064325308995802039532761718791846929849412291392057394105579821311271861018610210041167545538542943107555318203474320591819409874506003559887141481981784978919981452018121417340728878078549744705834698633811547231857015705181671634103820164878166918320655353344862323474328623443471920526487720569977540666634058829037158244833507875507951025251811286566935807981908109279974194947481509805856892326398388161663430743232553028381022493326130930469471124640728972900226865691416983958134316420705396693644668487288282807495809895160979501854135991974362302496661614362464421472282976459641955167217739832124668042617007999335778466149613671907821984699303116522005555005380212117245451980568250329076714022886747906527458140185853962644091253813679761448413175096023942723803085991304037597709160898313337974755321580204638765973784249601514010691276530058656383295009161142828768656786968739978747078792910515707745304407668792662116750181855765679965025379128894843123666411746770139733844328456049799415892352351938599606704161923637541704441330952752375161191838768825931238017710196892576161945126499497855497760029169010619796126136758412741005832742426861551785590264005384396642190791963321870855396205587814233784411393084998954265621681792760209334508565663834514777033750072456714891891185543340252451726881258025943581789566386922493331347820850816119093773760905517905707625816915533660687736048760650776789366447645856703314355384832909022594770033522063394382165853068205158652569493469685853631820309043786472463181559152390945971127965701561175597082755647299138999348051820481086221574001826304724166668586822818215367341188987758258969090814041216910826211957543528200076617246858732853926986735972353370419223996493635862336664678757461001541146388276093309627899621310809249561120022230634655008209510662208460308866536102699424433807150912047421896117077691195898048767618805647122404142143520513479155060838697263107936804574312506958785991709089777630327296220435318004026053241023872236859785637295283643816656428402891321219790302859032507067164236619421239521790661102902844292213938408312365534884296572747122008834897605139344286715249939167197781047351677077343849191698396069150653279539995748768992382233751764579259229857846698885755557932357667347230123971541066832104157828370520372285254729502489390840342872906509331711253522978562516111144866815205410129220893262619498375880300814808158848261036519598710150514558449829753006902230151578950827985231702684619011325025336023199614479096740425572908770116622864447162718039094045752421033434737547515907755338069191600512317911370543658687949586001808782511960225528859666616714233081370739917628507824956238465598313536005564944689777461719962737221181524982310568415859307337857999065005268585380532266592494332966395943421407577162555774244042360640564520551284237742434682187296125094492651456022085720225957133706635059761641756093011506686154070989669716604058981901318009821977168451251658530570533592017108284780691020765097003241670701348382205089928813682081196809971766279528976039126697883967550160824107700577525099455233129204883805585041393072130859536139730250599678936724620552927782889229455307273838592908095334427585796216158863595482964736330295509280001631707890192954782947624308260675783041361929391393303823080573969395497876404711927728003922513101262710021865654943778904179732380448381611918181066657804757353910410536277222564827921167744335239106069017149757014088011987608370683968861251315115596147282354878633017474692822635650443201645082130026666737025280620215590635222098559406860271376965615016974456443686792890692752409714017355248191852286009232636651787675346284390235720985520569282249454963039350796574136954702974490757422112927397625142085083075598457142164879804213042237030675085376923286556002149447000623427347553049041263400787909732837656786122775957690898450599393688090260916225546447187005315368319529984629389655024371467169210886736853409369187861408234935988582312323120775800518966204276551670397346096160635694040864728597138349538780960610891774420073179811748812668260908418610330549608708664174182749590672948378746956892253883420679820613489328238012331786856835528193602807975682969054015946078469606326528876636473551357029802503080904826881221508631289525207031395254756919675166489978827692312335544369228535713545784422848040102853052027000041566704445283946785913077171547660940809350950640911156782304037278210830335825544828104098736786575235772595028281690447227129883059681139236166910717599715942397607244135060124732192128684171071072367640908946722221958289647252988300204471250178064809629566651498664781374092674236670061325457258189576812023657343891387507350923688064407728321970341448437428095987665348290202583639884993962234275062403588147559520419232267642468938641745817819773784957149173874937974740137206505731646552396800559318400121597458561750068846458999914684282881933700782197668642214249670243995483747082970709901199300927085995175987007308146017772871052613099035657706389447830817360005465225401034715672101740818641708209328024421185890422556451200920203823259430361313966711938457191949239489894280874728805525815042553801259012773304648325824189958061737355855389417638571693622590472847004747492504339606438218257799531990732794814458950007924000461022522146988396789366227836622594066795949534265524445351302704810373269944305475079429993960651653151806584348427219003020716240110883687629474014146552949657187153718701835935252776428675340258712392314166029399535737390690974853527236605744142779662396475416415542604986384449036117143913411629567637045969924011120397042147999406231607259238658110872575453046124652734365493720489481076362953403306903055199892354797249580804209883903859740091660721093151374571173317053232026663207469415056226840008776539441950950997498032567719985178556552229896446381119809548368898067587677236838637191046536307455682962794706220818733235203622392028209264025438269246019369626090403576693568984838162629377074131692474576765744752777933267473075027531461327659805072645471369620998954558235477332205130273508097061770323231223080166346034293905607927947487250529788087475999386197312815746666061126934264705436623945609802972006941036734843180476185463899748194384254613505567986868613604165025018594585493759699843810638415825972494651380429681281623102310252300107742503826091964702611446557827544669402560893732889396613829473362700697619683616054756301479790293829334538814297700360809770971624230104930924449708907970380715248166166330328948360133501643271694291594707368873541243670531363321867768300005768171265976420478671036540832991498390509603706481620066132641690636397503611076676523392475110757528061298888080971228771054613203398484806216112935088435850949589461765339682919813219854240719747011838374201124024850456410610213150623944900798626549738411238622503333418918178519033302732431404920412151682838880330596722214853890521209463045710507224099628778547734127979426245852571075767080539416311586649801110858917953820679568776822042358594225552778832085768417189137160919758859300775388899633582204829733353149201427041361100700771020010475249291382971963844735186844915593956329588651486633719010130702067174873421438711574427802087264388106378101596992321168344401734520696284938446448503613353530045915223798310934764888368718401311916874630531508921843980525151460595101746456477308039603706567381848493081155187119679084303121227931684743961255981080060967625645150524166030799565028170580457452242741834311325254039855764916402769387505345292328145604046766669691126472928889518036470186207817924136319336253100983859365254732347689724620188469446731051165330056842714437478354606809104229815460339629324042851990311760808710133377338816151431966757333026015184579391776261319861017715469363372815575484937360376510895013635723385313165468910322220708094002386780878275964656688442168682427577289737373211628982804476673060336894422532615602431934997798839234924343262333555904616781504016614181252240362068084791181255765512735396236176930897066794925831700623508148244457700501459581195731341264154594384482099166574408098285311722949549650987223224350336490116738646210779324541311469927118390333424508327895446850022518595752767636664911998315850208292972153691272014676085260288414699666994379209247560705607062053376420841878583573083020560273453508124685721116197319115856373298075600416087866535746348101615020765382856903464686735491704808425331390463838795750581625070593873169312604041834946198885508236059208444953720894613209171202076330144671958789759224808184284738669375431703918965597478608445707755455478503704650337199808733900224379444418381297834617375421715182049767953897875795114527827720661397846951630708938582273723075223134960640453472640571779969421369240906183555152258469718800265930335907606306675719509310113203927648764586995627463859778894625217534621747545770068982617227307449402469219439041719546824794960631581764652345689046431285293338872142748071566152644309027371822461022341751339393868945923723482126192459449425053851959544691539735635358115469813786552767684017199809906681288652609410137210528486971072873059398367714584245343390130226681793811441941749080532118159997644297180077398821100055992527321230175827388614506455447731161302002513733785062829162628603405598538216988457147791225220644948095954488637457602868219383597123658079280756118186193261056730480327692865096620234904906889892953497523061772765305899015575016196506041096612721813277877477833554386849051456064104076427723633098904398976059280747196413920667757960309153564767758011182424514143897388390081199926045561489555061952482693699145509161943245018883783408621633069267855905425772734589731999019743983305386585390403950181296737251256577768410128706569988997773693480017644668840788355702304743021755977787962218154286761449183078141578633727513968385115402370998586681060344308686317328927520665484385649751891810470395741635142023964172408296681549623458411197135542299649418682841161116114537603552069292473048409586453895205978502483372119924714469218038979230437655450909678544911835187271415303148867308562887283416375857596615794021164170579306177296489836084455634543486220399644045754379755676453139910768560686866216507693559700628165994173593421627217154482397790415369885975696172382608320308979248706002749611307175891629045755292851287824275793761680806698532024546960964738901099547933082100509535592000023037116542580377078666738231282868276021125460227102476497873929889575316792082912377385326064979816946601262096263536917939034226933777343333289122198693455783477796450203721258467582358744182961138961155275629659700802099450991626157189434893937962095580299111467075509360065903836300011379331909163938836544116331270107730140686763316172614016477485295082555056242326972711002658130146158200207902041137652299175292672158140421255088417226925805515966807147028750950513130749580633905733060698986542296491631864439516908470452265061777011091285050550635568257504542506580855175314538019363006845428623507159282759844718611583239555141268535571887160614120306595826755311112320689914475597697389075919267209265561290810595781730184351124124842952602806665958207148354408215159754928445978010945833039350411483742014707099700199104694961805861485502073290455977382778912991089671848841921184777330571562927340287835882045768110993779577359605482898171169763860853761369353073493249312430957407884120122784399921112271602841183024304238181126841178173972713088126091565067516367395050032412963812129292537921732984140142071939901043601294483134870193376048935765715739735240092027768210101401115163144583529204039477718998166699973456612193771475762782942888881911000797528786805031643905417535871444774954975050043957875720242982225058104114923671004043622104924124408370908909790924213517096182216146029767332103032139739014315346495239733881376526710065830898992233941186067986692466156559186808088683400812826524974739463923259444982541189844874112887221219985813121030461464892680341625961921222124989868836181252104730933617952776719406555759247462921024632422584680590118222516806063227957703952764027285968786892575302947317753461809019346882179814623490274732469909392690830996365481568547487728347323382035617101931139091892241054636702497660145468878055559106902972807055872860361748343516509938598914577634045795424863203988280315179417707594321643445298179415737076646398142262841837504229968121336625333873396508115778845761172951826664293301246019266821720994739094371695606755396387580337422196180102845320447079979371188314256152505617089697939263883077138272796172553090060864027438864851887363326961320638868772158156042596431833985964437662568844198426784295543001046254190260520640961622805246043759614935075186381723524644056023473572518154864342059303810357975204035588350254698337674764855791124006315524604788359460239487669141624096737960186733679143039496053559710364077201218508258981099691201808893063311072270722831383518931785447435050347097855020013746431735746524103886244784053523370940829663935532525986268850229807829620249983991894784337083178335221427220106031905247932715618004807110195186670769631420470619702781887222276527798003946671592657739404371213662442308569326818412531797018847305922556870376088025496067087013536541715924961894027429774808595606692102883386459369848776063466708293036517991513763971647478995460136203965064237937209969828923953036352932951136450861090403962830005685923021953637629957273555428707584683919275328190061263942472911864846510802652265623173081156505402581991565336741277896654201023298012960678495543453378333681153508268332973033158385180842624780617734824041808180989532312196990037230805198994943598374286237849309380205685965877447861087015468877836603692141148540110436041967511224108201466030511106076469982771930063380997930663900631338887430119257532950522943639616815464735829211402443763379932276690865030694882136646166353399921361300330951475119819830220605241244558173762028972341085333705708866946774968828321377585000491833464976291320530033614914663109417866460437591989088325649326232394485911541901526724730862893052900261220934794664971925563006505228238842908108865885173989124526191534377553279366517895153074349831324553016204867501471960300234487740275864977155454192791187208775114087065468000195849985589191035241261279951460154636362986933000639168842538063338589400535652644911279394634408316606282020815270084868300975119900944136978679392078799120086588824065827280091007089666064759572183413825896652293271888228949323221868960746901693687851131490855631263486553641310921428200114476967306757542477053774797872778322300851335442457607855285665600271908813030244456579875377053167372583429289672143351620117899547602850222878829397610085802631177405483939063045405734983645969639537842339522773147032573910223301690760069300890582337984388421066809784632130788425548027377416646376606943422792841184524947147840983282303843581919091084497100959211876675810859558124341678196942272886869361095379250191019729655187419561470139576022459100492187403134390219729485460176943949783608239494356086097597387318123107955990372637800684375289802080710348591028133008144120999706195747205478978475950429050731771559391108995518216388010763063115173169739079539227602133893421669856947747238211236652300574050712473328495251206538873943057864272431498179346755731438567382125187535837014346728394404202733838438469061830627790490759443691865163684825865548282066636779070795610145716112139400163294751328877239279893302042593460221703195918642195008780543445639112794321446835560062573391778885812878821539054982942327201904127189346496405869743770442143063328311473521328943512188470347985782014843113940981504891477905270136015217720673608043037838287384127154722769417733308277462255319198015781651590359584903209996007442613296266352636249924282751627079392413942072093904264738930771272770652116191003523799327211328305882667522381133789680564898458314456517784785877050314093201163056643298603758533657839795160786779233109926845893926399037419630495887226484472398467381718825644597410110358400376500057547025958648082135410578494227001532303975481484187991044049947453543516857098826396342138440140722422066723525995745443949169728995833420281902535433376227263862768778674404193223938424387021873254576128220969042631377326212802561898632797317696500793690850419365163851754049074331355736767257117562024101315166473761979104310433432675747347001325576591899051124402390921499579252181586465003624551450301594696451595841042226507239508524057411919276101061017291593041977434401701196775857555035249698268594334037079026169932483657907635010998866359461220304096230632211710239858857735420854828518134483025512215491409096702971879907173438520781762864621035390780299607471527090515998768013380530896411059644394982718055341408913168219803902244749478008849685154332321866019394159806688043148289867247929025641454755192957104150171708692970116499994107479834634737374803574008608094587674183363583837773105013741090345233101629877814468556800634564987715635840260292004797280172382724399262157647922147853214084413138847326538984432444207611263784899094706425076878846310866618018662645974303233279755222158858476039403136705861277788575681155249797097581654517199716131376210173027173121345230608508758844276545803650675401050898491958920874853223921173496447173534289749346944368644264466194611615390785558837503955883215319227741485739416066642111542325591758857736386688349926850350922182902315121466189926415412516428974068426728657427568761762455443506365512468527932776202489087405049020255032158857790729365529786635746829625478622423421444324872710378162012785087384803830050616661867887060886302443748374150223959006219025105662626591912552237105468172084374303325342611568007648099545306826275678527885160187326838849540656614428633897611404988584863300966582397473228385489978445587236009436009906964500726723187681232626960881661619538873242236800125439525713278429775427639064904205406463384610027559075700293113954501522690961741219210454819903324188008149249626696093854255093972384736922584242033605628038734051345071349853339935387812447191765237610681897504429684343421217609548236994118503053451651235264436177054740322159935028600178795709220913945005667851339239095492602373431538400452632105309727277427124541371030058194172044152085125806583562702365898020009560584467412648805193612271047355528670945561293053515745299193869365300792503196632229676129076272201132398408687258426386563196722917231770931632501316860339349445645666844412509504235531297736945590008117784378631957539796022424985585359406649027370883037341024608201898239075122294252233983447166207506447112792088815495101959641250840968842381947283408648749957091045088318761909465757601074992838062823011103951995205755604247345792924192609923324889080435739325056604444975855193253102349676921556039000286886408589226381770906596915770359568997330187243658766554709664574371352009873526923064011746218375703306547101170688205536349719034876922684275283827631245998954883714821870651244346254517619727832746402853862971883200440798085823137152816151599482943146524980493997082330870641113992419779655712356770210483172393302420964969199548449648630835103335909097726086807322250335506384774390914790415461949917885920701305008605240737236368894635787921192584000071850410391907754596006319638715570634838053265553392154393741841756701461938455317490051490069976806148459544401449842073124772655073744753703930586721248115138250080074539937263275113752958885302036178752981178577343593221920562868114408634891903950388629419554308484013205218862158211848089762259189405354847379133385309401171446193785196836907595740854140251845321384496592408858780764212930037097677805935539056825517298020232100824849709766802968513760632810905898276976566442364620869261542205299075444842368568398379823557358471940977020323857040629194071106623671914265238992080989141363428173137603708079155545724295436026104539992889551026802081133835380665566580776891331504627619192365120386089598661461883163477462602114888454323604336515276517507039885866821564024918191640796523344909401313410343850580459963247175314679607831565489963642589377866956241118344490942363445808397151449654212456947149144352893900194310668550344205949017292048841414336618245243572231015006695498905670951277776814944976655029667708228580995900943858124468352376423592707677714239870175129021013790426804520552084472026899144985327030958757425747473450754336051169632389565912620493754419781335604965261688452194820706479440679573823272616575548346974125789453276294244852563476858966483509731784243774603687487410473799856818993260919060278168400893212645652403236857277377284050992631744617610367140818335609534604078481434078233380770261384847603176334220193386680570269981176995394793738534829412374965697040185838460542731826208138693394564733484647609639313254899516503015604657403713644913166601233617574581015773100437794261811228290853696510168366532346538592047002826838371265100675642005850452912228984809979797602738151681164280969082653941504932870573571672946845259062117223016927842163447410462631978721808188635241613489467182922649524103871533586575275947057818347615679570688723865313098221118090450945847088588583904311685848759029072284988915046889747782825951479423004017718675387458423693043594880422344177694671551878205650087219029215662189223005397218224119584305591714321505708388610343341545724811039926246498396689962031256792868814472334905678190654245235748881546241368458541485889116647119015377268945274742878904915385315830003172274485039435395540500202983857747015808599153773263649363281223392223389448423289377107509139868927699258947767046083815133486950522186974080078464652640572806018927274262036869750088426401619988148994665685755864629682049054899529983258284978920982334435783432678859440310147287243981112947510109524374417369431685443586820840193078900245420799197132032216556963025467141328745186393136817359918478033189902104422656994693475442396169734384114298338166581729697410791661499630307910641870124756310177269680935319050805076581554885538252779800431650232664574543856368088499040323025811593591648192917743694485830837280108037414472344260961592278691294430512039233362418807173904084730000286072712025237801754526079503859331035865199640109300970165659344503102833975617410595660608230485213545043011670159421815274158587019646827325501976962843166243509672049167162688677577764297875643061227111826517598512941053039629217414990955295566755492203722272537498642918490520211729782286171856638398160328337144222560559816934497440055438402424940856361091705553507800516095481863736311473332284495420521199776760512802395331977107932009605532260733335640469330645030839262684532535060854997289767329592952747767625997798517190121107899619292140279944160846901782754980521163566275509315568576166653938345510429434449004030523417776746563170063408100142785253114060576152198141563247039062638803813189739375231920216665593501264228062295296803947525846639125839110098614536350325739916029723318199128709512521344907346513291678630322422830594971707011926259238774568980810428341014626587302244751207200782039552891063175454160390030659582633651314643398767114587527172637249565350511396611235524564145274999065684942047315425402507978269137279067885299901279016793835043162950569101217873381245402435949804343843773658033888135856882317508880585072773693812916713185372378019372516083980331998873023449160100885597187710739554903900540227166157462728136055910492648982208190621287741112829100912115581725069107909215207743133694811510307992501639694292958802551458691675890779359498191366851349172057528398916586034873949567270707200060511161160323395889084747944262209793639700983364866107820287082922170947213676458291193910478075605858934453880407994161153526121768810637064788458135931127886193396225126801364969865792132103863261099385850182034990345787265640191701614214862174413882368674095828266960127327732481710991544498792663709184244948334417993391441418460471830765894185522838496062812163731646741439861175736393921485534105615447296436654555047871126502484792074188133655363682835414986543159504436096600829858435125937131866289449477340096447337590555490441540919202042199985044023514424024568065626724300376484818027509163915555591382550426741967638782860502727827457967662344403747857262037024032844113968655805106809983984039259872341325024461558168512060889173781354246056307111385449564953830023260806229635146201468789671433322442086931252078689503302281738360794700347574632538394909770755297176572902253538583090268038493806667771906247875825319942612232372294637055481142612312387849757186789049278584125667058976276185369039840090493545771184247408750034408798251986476712676402404086535032987341256290539297164089080470549202296306872508392105216819642645762983726064618653625996037163549742576395493325149022123285768857519038403825144392313731409157312877847785195019373744190956529757004048991955312527715691367399974358806837703314215345867076415190260489527371501688480881505634891179354197787421819246873844304365080742603801781662014925984089929013685931449610226909399841217142072659745492071200292808395611458100690691054659208031942488075216435214438692957454149938614599660936655367456616118652310380628097358186568909486582798751654287568426404453414720299572390996339366081440305021661849706242262690230263589522545262785576105197119710900896792242326698521561277602729228128132041405390812918984580817294826696902116170108727948468285337792551809072586227483568479026763829811472686052645103464829435825094002991432053883669806600714733325015188639553642859910415551689677219186630216992607348124134047380208910095963556348012351290705890331928656759287541330730045254919942126079348323517253217309676988814246489734122202640547241309001256309886531376617841435835594501802681981920158767360005826372120517219410253250615543019663509671049041178891893513760990303045731416367771437595997375662071892623427029445837294162379396834023637354204018277167501965249718631141740636598244094152094119618725965818084454380523558560446179102070756438140118595481272227013798284822752328826805656610014052073402984343781326829183279472207328357281727190274517153299017506029248249820430811260058831762572772337364597675506820403060984693736767053287096755978958276225496717670280289367934608068780179594918882325680076616745228493062937449066439113127511631119538308305516305479103259525350754547799297572199308925326444715571701225145850275064874661400535793347732533997729205809232879646366016676911721283240726233795584747827373217138138209603929758084946281124425779442468170019159224587050028000330565520701793244739271443399596276477317039722832443811801105529858664137659321689901510657120945127436724017029000280455043452858374692278409081226764361311013367836850867138422935511352921559548312230419347065175672981672331482660517526545754175445785542472025270819295257419837801214478227222433030507855498575370647819689627876060382881466296813101328872644770651088782677109631836109487438339803625595653278312831350886685788773235141729898510864491580719638660146523258419107553244280820976803936864991244596407117995864843197363635338151338703713639654766079267506052379105077688950172814095823317256272321596968581258651772470262236507794132400751351169002677637522975233302259945447797103100839061363098913571085101411680026675645162633831345700330260895140797554134949342216722451922817148888873045898213109745425417853476430574205195973652710769421022539388744208088328359098817758568349161956369914465548126899028129741174377870997338727308784159007896035487349398463252372698391506519296009979249421079290497270530562250147003896737278663658738499352166719419454304741130713390546814350795957291457344053154144924890573064528672464359558171157421040110338418715940830457543926569721459179809299798861603175590518998872702404665357037484577285046753895223278591927794670723036121272307440375826705491306209951722994205279326524408523450505812563539014484682108649103803902562075657595347367516383062580015040489333152624396327536527067483506666448531530188938747511770449814001624643656151965870456389521395351448558367862462339895172036500099483932514999203448020869853523266079558211696747372637599374598533109227957144269025579844178753851820965861524756413552102391070221426517636740891217277417714904148157898128340179654663545404300560178860048723208295738636749039590371836939288160845362946618361064352404348900484600573254024130393764301473717390884020051489447615796651814408551476586037180958969573707186456421592238795644312062047034303583701335052620967046896200993736352787734680521431444838334790457425272099265783594863389034342589106360399461416423929975924569556217256352743494634803913237979937537289456176019754776884728612462044951675862534817793857219351955163806160186399845266201459630231116133074406145352788233110123311632356276959967760555449506967341346201163153937820831888481063841935670091287806021074120127325427149984817019185373088181711530246816309436158777319681279568440738813772768585767633035926209663504741559156580932443152955298165534400027278367454246009221109737414703538964621006158063413039751041267081988873715964686945083640383006345122160069352084325965080289934347224577746829592579973306671963486249810672583868586778459504613860926006916354724087454350240419697339251685792314086499487808019827527398836979318343451642401413589039130482810082086884582726813440599239729509712846391381280550323102302353947911327001681363056825231668607789950589701293001072656385178591768822533260255875743787293092775808196326483824357325181049980625948725252256120346257127796195031047858651795218218613914851643150676002426665859713040983270779976247355670505416264874382026174698122439113649652707261909658209692320721578405319929458927698993161506098015231390538523876305108433441345878298345279345769493758294670654352456877207030695599073756852460707165113437594976839152377441577608489942185915426630244975230252061254962713419663779856469742044210654218031888586401479357978463132560894287135962821921385855825508310860107982718806634334051193032325306446539825615267616526703937249300777509755117502104110413364663729571316099679670875987515727826300140456175638346462739683224474765360569140151571922546217932863756509512184192089274764631699601231927186751814112255375826116582314705113490249252177857423277895520256606224356904732961384269574629884106809236721440814648817966611552077332484932240804354575984227782000919131696204433212652712937118457621656346990275702344975871496747796928266808310994328179858304732969730621123826649841372814246369497994629417523841153289289015643264450748817940778102079610576830615239191639726353099816919145825125780366570242211296971885773288494027144987999083367129316736591795870206770045914088403292887844593070543120148463426655046525241448296731243523003727067756454293860513270734876296817892732509694887556173353295460210602145436422941080111112520710819858476303186673470074183110263981841158308614535819239398424482265973951957350121780772033379688958622961373104688392007985270196998941185590340485075692744816888900468744186365076740693166138450279220411459440286866857283796199927133888361394703740865432737929705922328318296925587391084542214429272816984193839666215386401877049701056181446472427467352238126991274495835143462648171960223934578226035752929350269464809415615220865124611563453406777178439561045702185058122376603815656153447056211952689907422814221017088218774199964233227781539598617356231475752529553872432623089639189184572241284130121273438629183851950883963391416832232281636737737357175000555443188010345742982839776057455858137196413660512981646413833001023595702037814100932287843549164636654722128633725059525931294706507705538506639590172044121419034003669732792747742872093194016310400645387764596180951405712703674594097313688200089405063582448310388589086720529961144099574122256479765961297051918346259965870901218906892595105369676764502048833135087735010869965550817813283916159411721423091593124965605286869678060475770910703401899270843821637734103373124466945104404516254971259164396034514991357216229314810161220772907067285301166909534590761150923488329114751924778137122941395693682287973623617132388649305711767590941662825047039328476748368893195911902299699620422806583503511494145350923104802728843751303781993532698407659949481501419690578054089650920864017711238927882021438311844869243677911825965624035718642191504462281642623006002619813764587704459016822190866952760962929023344932649201654003400693859588832059615733684068302202263462566037644398793410515716281658313343798466591730662194082619194828652384864316786896498021660878233814057908046730072816662572784654523669960967887016113481030514493749115101915660247365601915013588410169809040518228312785383921173847056022676415777939276732281368839763830748270619860638097156997271946223468212070933196979426841112939105810382385703751277350007667404036466105016083788482076057912326893442831503368796422190366007467547551117967965024816727190899807331306997163210875400321123378844150371404869898679537734646944171773069554960779683608995857281271341069253754536925946750444984963395982745900223384769619896555911058738780728015360699742929784539997497205799326347271288570875204074314275053954275961558383431671638313804036547542537741457466449971597888222272720901333087534197671662570665625385955082906691351428071610680873562822580421532184031272259648542271090612087894688677414649660263240935735998768195467899195806153916205411319438048669897529266356381780104566288786700612709351222976982717502520820144392898844684544149141722671558766753756787253271645866566061693584204691258467788704170370717130639445991210397357765307003356559356893561442131034568961093610297383162586472513487972607980642573016867842206552176961480784807355604197586815463243451067544270412337902207221851330220344944170669116921870579998826900378306047750650057169867944927422103128623810082720396625519210977816101783035975942593576673858434917359400609412094433832990183112893612044485442294818586056644047160084780772362038291244968129715629749931627848565372391975941234484156807767525606015341939024688191454386320823276306733201531129045209220412758005609565776559936317453522342141019150389044102032967950450008900153453263644750650665848211904838062169569889740997934997794374409557199378672646505148810265451366460364307266203713413953200543557218096935604771589538976823438039303417146698947549859445976876878461512410583269782972598206740381213042947355512245792298372877601635171183300128131817025307350781675339761224943971316218400581665556014637888598851313550555831611238419703104538665224901857474425587117727700794722604809051989809679337362307365217699838257145899554711999362521825162009668670988148396590446700792997016921330709098878173409279304582256570980240323442581022704912768398468442415292086857470215137324000249316688235960368087129785057571560897527287478481321389655621019176083348095093194945713447074727096957845785589169269409330391078088287067981930382850098530048418528716475995033517757192408273094744077350323082898430235651678702284290375332970168294970550497193692501896114108658763013295374827258226074987945577044084293180223261462109063363397149004666568639930149479232470656061218457876221999656309578591202218384987744176118322544471836906001773391574725546566360966458776347921898410046135354885437966483362983596272796667879767768055043509982501623984504750135073428429323902712849497983506969311059270059188159692989862351340416618729492131887941922205352369358003973768403854345270559794654427994983812568478499253864524309582564668428171417112239577229949607988596535657108291344892319404518968614838506207891847183266787674253429007341025858046029633080272447741334986206625450396074580819188537420207815324643500545621076023648878954128624218507683262634250355987821411916256865981041902016503224538009330235580066659047022897319233434703948074024818272773447763617094144096978851912672495501025411193023793275039499141168585423199685483578087738826599289226587324589055649901264104028673849803451863736360875719044802244724097515818148101204489198101368571667705274969699697894309001847412244575355581067580964680955847712005741268532619212760118786238874244003120580502843920962650721865110828591319512216897964712283248542399502854060391069614543006200583513111644294059789189850198150099928193922734570072378237221666438515011302783848559408099274249226125956148330824259952822639270574897704672918045738252014231969651749131836309253264718227200355043209196676584107157113718392351758947395647579356839821454204493730846214160779952469985669106145517477632717493709447071354018126910317147018949672187124989428831938595990791118048489118034674254462640577804135465312859798023200090403289152526498939957008871002095012528393445403230413934872409417124137266451330475443861229393194478524465404514693117241928413795120311225878600475948701114421887156166885822447841124670017816011316836535543699627709185112840755427383384775777357581685353120761181946084244284579306335269892954900273483707219712849137680193653642275275942965188840243710061229940020921016409008823968623066061228237518497935425995906667557284277393702928810952653089056322746005471400881751371180114607172610256323879255314025375807484185210211591560968936608076248201098171272058277784231440131708234042218052925757896302165626368792651997136160148474687480388164692976634218402550155182678639262685021863713064371875483600845077585165176943057357658462963125930644073795206143504507060641650899101032109650121392408474468243131336908627877925881596447843605481965443078652257157922978248716650820374153366072496971764147477105966306619578104192366931656340374712749423365471399638700766730369135582340601214411723895109647132238657473985889086094533466233023915460778925169166228399768413087049614472270623321438160777484522874805229845668063964417915369269839859107120609298057216665014416750861254386635578283091302707337445122632406429477234194635265247358826418043052976897219962311482438520138206159790583041892798481456818173653652006525724348201625149048190201748998464777555077867494449049535091219181331611209301990750253984828811192373998137244101118396930064824418338656239484263466911871095462617970057132932755725963968203875607400672168684119901394494894006923588685165576915863573956094399568392973391574029970434657012044238461065899889926256618735586775347092266314755674370039461611254295343191108825366788584053984059229657243440223751981885584029497469992563278393034377829046738737838575432243863049989607560289665972852301369336822259426851898070190501047922878649323014316803840378561248694432163008997789272400117867427734310854471163148080269417318274055703880396310659041002566133303136048391623526190531161605721826942375227630537271108628999909781555350304882068567125628389287850785225294362369455045680655070847862299847357183516116750632891576649764364522785309400382450234511025983997387955250834879672716633482333238219303291398276638275078044598609375685215910879337870648858924335247916099344681412933980145707972365607316922362741570706952742301033958676592228867786486649630563351963632001735115115297884142368492394535571071851790507722435501779361739832588647472247612434117059818882548777817509872391515237689368852583420335184540649996570658143205814056135282436495580981681980443797237823827581857683753166642194642359230764148549829083142616954621090328246228958959697129852958774386751770520284040564276225163446146155725635010289787982478677726671532170566709284044703001889112671160721999077059422630248036617792858411711562010166852614383272240463383713084236430143660394830129078582429690401550505392778009431100126065760059498557886294774728360780985070604522626401287030744198008953007075206390513020801762789111447121794932788864645975166922569959016411377821275691788655377586210688348726056071068139830970745365805577596640134389968138513010199217220198994770153673622050699480084955497816376727745207284675840493139245367446661863194580583157243944963165505674763427188699747799143306474838390010546343524019562194434365514084591321221145644650806950790616979160935316122376532648806305327788997617492762271653985330362261918765839414827820372746681129343040479553755142497796523608557203250382497062373348834892986906250519526582051799406158225421599937539678951161714874892500107463242588137964614077341326273629268072404210191895612088943940345684554642670981536042183486632671564523778724575789174865158059274004865506404948353117601826601974324916088094451447145574946407311340598640118202444252694073418960885082555691873389315354730809292367962191108084698224066984638844157682774625848256542384025623883903173476939740792978500844441378211276671567007915430299423237979107802808050202975206754398743977005288341866091076046944798191695755449570888515098256290310579973730072994361194447612288111655714978386482273606849869606058323992748333477904016106576386448159298814827734180900178254924800331996407106444186407029887658727672327150933187256463718653523822865078521500284594609298864890168650492153757530891276968202144621012769766852445479157065782937311122133684434635599879169348115688601612745015957405088190568772095639502373338850850716348628955078089505552579157806540282133453745801434003820565764371815403242134171964966309160023219650716270529989483115796307441998595564615269881284519495635948905135972637424948275664690141748163748243908577540700296089985691638010895597662618166728820246460345729283807975752192704151260086099165765243301663320946485100190035124934940617914032213114078270104018399446994560224898876872991623449036995396551626383095243588276443847585889918446474798490598955455308311006270445687499702945818435797715891764198839500001648286952490266164486244801668786015358608090580886430442218695515450087824807600393945584382274469378313505613003939230713996565248590566732309701526879340824353651771303574298800409172410730617414297842396145478498307886643485431996798285648203160589340879903797829285570101006678737646431628023199895712297183791345670645015467019891152833420453983704675330390322417404567175154799228133359104442313956216888238560838172795916435148374548026627625776688545925207805763741536100171863415841585627123632999605290789974545961346350947536607914806436192511525351900027228573876205658117402143509066096373848936455243201286221046981079281913387278736077929124721126532286233074887636217788712848525275915938657387704177411364291077397357281851817093984324832535301158206669355957149973790592046257960363200924713797010044527881097754451829956761727544453634600502723152696548486556832803592973540326239074831022466578326241913314859275106591085854718815847276648847021525186527038410582916555882556550575316949550225404469028868188716947949401440479884666497469771072820104691177626526182648331208168063240182296291094513761821394809247808000655969404886747265531374889663984462525420291159418906142097840086345534207706831588079775924163157000207467009034426753588254754257156095790350761225530334152028767829933189631580279838009537509554954507714052388416324678113552211693015793153137323080502157282056592360407851235820263088007114516594022934827025051946286995958084021227823055706380405449877221017855784488837384617665212059965725140899358328156168387124442199512496412646541988673070166614872023213130778675383635571895988974032165553163528095709621148219650606618348323507836956631195992837298871598510885650549833474397079908122304727547246635066293519693697840987181718052861720195603329922406752379241399487649446820634273897348602633493348975682713082137900268732390656441039038851533147164977411274907547863085755561951903870602535363852540424660505317738605345901657169490376999101645782394971616335392320792300713928253688842017435320419549516530759022991568874942292077545185898138705769297162511183760873235982808978237502256491789038409839278347832914637090813393964542806348910190292269867239555431335655571731519501961844227387155282288072155516230713267815001094506280501145961188825502766969131222773743989838175118938588364887195204194344502585772268956320410727167026009055561645059140521571929661924415062253783477684755953200527999816187180213702108430020728429125537739954532190656474396151485321310868318578717387619180766048475175767946387451582631738310730761740130694406093787370775594233488241221439481611908204441332197144427690724487184804904427264432973100003477626678840722677873475137230855166293815869015665551465913066022595224283907053069159134486104644508931497863112571636714135928789444341183245828594094318287478169590537283153993048032102448490979166002379686680396447026084292865748876128112146896383138095790771482212896142887995491424526751960787945007015896845745807391836115619703837383791862453416823747142616054170099099096149657546010353086022325578570232212248294662464830035150250086565579486326961104666012432717763716498871248348540184905226426702555190103655022041407013620637836402570718805687354047707920568110757086900133303096876588759422788080074206349497251842556847170916989341319720850174441810160870121977742412638368366934711815040087968351647442457454710952900506667383264397005601548298308509651196472707372610562888891435415484088733158428896539911589046694019085445406244791869233973579410939541807411451566748466402891373426916795924447344829818022377461556647541131601854618761098727970201552981520576020229241363340610271846468776763736757754413444379563671851654289665115437739433201662835904346909391565296004132585693644836658349464499527149481573845302526508611544770715045541875426418509756213308365671038122103421753236064584307427803115381979917232474927458888527452078480252600573760409665044883268538577996568221403687724310659699703848255979212881898568414225624592604606632448636164644751119649566571943523243743811709407627997360046615878542098220170925490429057092989591516404360513807679503870341541742186691252737171913768396754169816566762055129634239315808144657165885689329636992147462286746228303274363579455454576810092997214991505858248318889336069940958655451252320277300531278518132123894314188107525536989938513750697978499596078067539338734674790066347526172652456847204690384287798858106064987949760908071984480584962126235243800814903943804999403786130184549836063021642006661438905932742633045684617646332888765742067241153003678390021782031637076399093064371203018708953505512487291091655227776904199014715775740067453225325833657266726204588900517268923931687417293652113195916358500377024325347014982869512719431880758732517482532963529710693638371838440907904719875988170363236813125183265030132024870072398748956914891777055222740567206109814154282705217860478191242902800204587968810741781537933035475687362550924738442190334404017138376634110303542920841992661570085761796397776800526155839177596609939970706816245024222287008037738277158432667005315166851784005156510316046851043017498513952041301946282270915058114279214653900738329171232112322047394702841798739414960557416280696746790314637463194307752282814862390569260676660237084715883149834396934064537908061092104028507532180452046376201056843817666464762326995479451321025542318658655910027860161893618252986949504695204098556109418267827454558549834443242003080317392545404315555687236704950046913850274206526178985089394722460818360019522331451513199530993187522783061802241898831242016658055896350273291995621437499049590544098450492685992420741276473775608423039517622449754268462510152772109009322464661070105390154080359150194212395504052259032997354697213189346455251335629806970640362036658811317519446661393166763762636606661764023028790349466601728796581438008007070968365108412924449515534538255408541256668544421599042911606858773602456364003798916981781920078051468963404463597690149791522740028011133845163519692025989861908120443881128210892170498493873105508841895283943694476695881325206490870639341398077724713476788729637264480906594550428012230540069480687822931213125046149752392030261095731447790197126774953416653528390899067844644382298908700659584363755544108133703280267131886523868677117109689820213359190305918154076035496998166221081332088864721955158097739512127607926475670786153815922641823024049426737351087266149225979240541852767689481546090249383798648855406274224890423889484393198077151343545975845315067488435167941086557294819058698278351843208603067886971897620505397199556673098739459465967970285359998323274119428811800350058166188248882426434613394794471478601747766200355809349761052069784499739460329548173069286855091388146570558653084638952093376370705203011444399425237483231122753666059941457788680706905630066683463601102110238438177652547574118737642729513827624075058830987710118319698517154677238543721426589078206641970054104725391807343739437361367742821670781969653123469556477018880387232324639866218492564161525571806934860012136305117277790505036701304776074672214259623237107820717629262395795905705071570771455393018828719574653266410396535981599029848824789768438838960921435358398972626898926879243115132849489865108366303369251461869811713372534474403142846024261413633361119630660138949512466969610466851872234674837633757797707753710395156075679859919840793616125287093214023775838079778378826893512494734043519883858885350822415875465468975177628836870883272747057853164849069642596398420996628289416068847871894147319583096552797439225521995856479642647708963831423717740106356332858207606468499635027001153805330153520786098926888201527471025370107147405784438066612812934846365690713981693237019749113039095905650667099948722139168840280640312191011435890037442668528044707420869688773858439571419629506244515261563147029641198955502471574315218781562464057774379034473849120649795228875796940400606350999422843935142717454054978586396534695885369997632092237441805357607802204274845075014945195583931305502642600520398442350041967020403395306092067669220765200579888584557985333152562019158514029130901812174226738456260561669740255267082007906976687184999011954580565909725176143998373701653174606713264017487501389769566895129452159706031344848135731808682455625794803542468783502050988438419756451801224264295188744392036360993444796289814092355264897025202544015336164333875592546473323303579519577990915577760075622403184036771321253033624442904247743174281104980980450937220616574688424033374626798311569344984099703138619657031751773419510933973626223917538436807687033610300844721578380952465343707074827888151533066224029379870478928698032814170031216057449349196002788312409851098033350877841341219465381599304067283449723806143798517549108709076235286476043606496830949739990211369674756095524125603843754826705409842871457115632516430994919812594046915443236283862530631467486041470970396353544759334485982545682113139999954963573837379531613086110976420940326897665758055412877096668784893457249880112855945701477085661580753889413244664940803679805768701560277928707298808428234199292522332636454327447238847920613630709684132275950405710665985263788241878660036005078534766631290339590264343503273765498748587373088150065572247270304342721799825495844109898948590097793662565333736993955513930731102949462217394966792424975913746838156722235683135455089391134307726451930095820547885800383559470478908254204062821427508622426461938507962298551688350694597673293323629447258806100638874487337086982265480969273963761145341491394389793428166924139024954164556555877572662369112486358330667803519172310781555133083641768911180466751828402656346844967530932953266130970860123704652010722962932192995595885327101478599478554899067660348775780465515547339063676430085526645802491171107985021992297253699115379059843353336106469803850467515783834583622127212652525166405713603443903381072682264956622580438263745050214994808655835957843267452111265175306292783588144697727944313067380332062633693174246948711392679667623604023773986395610221936387302326924174614889145663570972365450725826572913503880815128249190716755337108211735929318118210867733710454805747200730137746974023024738446077506601120518825440190315280021980750061122821559455513671702920150672361937670330956091765414370580450555668369598929675761416087935493332112287548665263185101581118819858789022684305698313796896320753464625714000079422349237228951420090680649183292637218497270771697089040196472997619510433935669858429471618488315266624460705342304857704455746860525941876429315940349455628683189277619653714456757832797814830273442752808307887381798094416991696396942335855342524285025376624087116624075810921677462353958699437839363880898924849432372426626939714579834230245899609459723265714717380962241908773816953449091939723631952903150579051433388261582887997425067478266174603853228976735681747044925714699577528101410273302551386519933973070232324217911807128008031261370040755389996543341050859712912251340600365364285609301695789331505769202441068446859784453696729032547331272997416622794488148237942668953273500217091742070448615273881105251787092628541421706411091443455300144266724170868336376418513016876600638932911658818486608821886741159421517961254830633987721908141060566783480304728325109079043899645432844968241665111420148246287114865696004026093615040106798747855785173324101461383627084130667525925759487932384914675453970180025551095295861719596790468444312587806083626825242868764357691034099745738191120945562147852966262740227523944060305963162733292114962485874965240535110865834826601712823635666824770716130146609058053457519428782093605297422132265743482902538335300396142468986570390397266301458647118177905426292062445041363728074562509936190474782132844192122421229649833567764698957183529417080879432345053227999453389203309258988945754306716503836888229269479028666274102764156599255927669952519726153604807586810725004786618226485025383158443893231164242093453889396033587506735734246267709945452974150466172613726237604764179260411597325194914925124532005404814696071894384795461584478471829467604889860411819102289281413773759254016266979299354317729593744518493271155225995456166979589649017661502914307400115512704933471545376146439055243567133008440706588920722370106083279186262877308581886428502037431650780097239424294779701048261073328474725653007255374857194071849556841205090033006738962454346600572959616668646700877405390575810434608804462347827461004322564990271273715549714962356103777793123981375274948235200079564193498634786933775368357208369111581755332386272909432087011539900640245187845025286980860488088799406814208175704872149145895191126752313332586710929170754671628895522918533041566548391402852712415094217211700858893606314445185287062890194383500293901587474830586633751357130421629171777057430863627647592742893303185124598339817396850670099868644349748737875961421247737298306659547999799228413556681083656322654185821095527816104329156794091667034951737704264373320644702614490691314623015945503696588617256352893381065993213731518321377825580581779170378654028433544248521355702157174659522028495576088727681564767520882700639386352347124852129688967066351752375786606058237592304502437024986599670054576686352844400057846707260925861884574196496273458935037898352722738683348319669506399890195167307569215925549347244522858978303760966020320376278887620045212939726163009220197703733415439917727260007160776691640985496699997967931812194548935431348179300894659763611679141653087468342389107653547526208035905190664715395421280405845993565941834898912594922686226177461877104402202886661264754843762387777486107907420569397843270575512430152631270057990896614470456992304089915340047354558520851784133799437815805481346690583579761486303155180106117746178506507560326089962235727965200129712805846054371757460453123954902428007769170601898438929017143919347889218622367796032803081312222664469031317346041362682800445576139207889151746909655477971437271506568386324650049853481594119235963261702497686669738256899856880490182777636673076135682497046461828003108738954472482934624752288628553107151125608184198451058373575296762622622435981954943218781573993162928182274985765662538172511388162029240468399154207751567225424070712848651667979051509074570850552906075282743791148328009763265533377253443211590299047879625556729332199998585310074022589290894150423778543767555029465193479057726542507965455501671142028270753485341086161927632721543705348042894386651425866541678144605508422196800134519782467796165964663611985667019392561416247804590501173597115725863036929529899448905914887392284131184082150078492920582884364172558443900474677410581388271229416598334630907467271907633672206709623795151853273444069646129063749746795521718806278539347605165837845038761691826231580526427035450968456009342417249864288395051056602626131171746068330463801956607036239017434522209324409710556343108809789131527089134807016057086591691489234078669942247343119011597268788265154597178968093198152106711200430594055207769359077327158118374631836644030764678176847883472715833003459032705586750496490403089521155256067957293996645696952417465243920418841262088564394498416056597937764557534617407385006207060710422162386186644459378106212360856018251366853852783434247494891370118937728030218878237689687876302470780731890235142481907782197254434863409920795047189603513755512624627574294386904499854750977595190178984975053881791734480988800863380906652293803161147664857545820444179303872957751172528424091250271428426621351683083863628305009123535014713020214744641521600106980430836529005447911755462981573612094422081017162228957046781852389155020766478640980768254865487534711593379691227315549143007171416947328620840725395836693835153051194292751071713877593388607806700747764728330878878390528906979128343483164887917979288040074928597708809865476354085574862170860101261094863925351625149458345671677135911079589987442674775385871859486921281910486327022119693327272424172325147567086650033313912708829299942731956256087798407372186591245575022048556326449686240636315900096998031854705729355299171192162958212106302946883708268358781419673789004759199970955076582068534133954351013662984485949004544945842653419531179522931881735515074979779393231972539139508412560612133172061928001772395880585826478375069352326576068258065772538100683220978706025005591245916918498319804345218317997083848473705341683624349528818077329570327708090383196986546783282884047718521479312144329514639050591012318981522087801404872918595927404364047893272266805872411173897742323199589036984530996986896888607112955943913847812691543680078566467065533020150413519471656321322696596912282356266088945344840626652991094819246583628277006935029964910686509502623047570575996125203584804873966410287752868607849692107125792154896017557942706412348742572147620497152768060084234529868686180204823899378997184322801884307250243651204143082051061149961750706842439559838836100538199719566847714144291735640351908098283149166435608311354169549869085994516155026484010211027117413444220066507855992167753330931070641050537603423030422772898072314133321886259552041157875126965300934345355035606593253179161990998469986209530243485453419989818938082158402372516584387875035077048148241932339199160494544778482048944598342258790971802728377474388258833642071643406909806311896843993735448104729910103771692164926692697455332603734258337600343813473418017462631125651444328191495396938848309244774719790962360428593225792762434000493593037264819538787267546525950451412513658079533762402502716009409823634316105506132191132843158378822261403002136484919159662287793092079575587503264970432021267263169633313386490880506223544780911108850675608163079248367953756638604273191848592757143427121669624352020644661173823031773114084037100726587808715590345648761619023822568131192116636787689671421327890505933614106365484994150219360478709354360669561803902685592358690301042308778278491179104662480108679946123922681901882565352056147074865337479231205940221441305428222677858544468079099261712259037501133398400864215549190319971359196068068324861909833835658048653762376130165659160893931628140608097407037888520671911113013108097954749041493816991529144772170809655862002960524878222718189702978978721891584038049847400711217382658464389687856377049672504639820649258065131854718786585242520544783303638608457168085217087394755427098031937436668282118686480529211092334335540470262671730415670368871744501001671150660522715780552013178713843042984220248987037816340546960316288053561497942416197227798445926877160657246454637271516191478173370446467021527669486929094398152311490913860373376364918990653032896260614658888429285826237864570734001675150894596620256489164563548787052046223060802577129962717472721667187869811069485897129017744754104469060217919477792790999810356790041116704480787414206491426831034542259914016820993595146070303450316262733854841524548598853679122301565884932647625253269439424669476652099417662928610349143815981777478807149966355363610876147816174835548177244394322155808975208121837096575836997498844861349168448544591355191349860532344475745784880911011970830046499376164346807696369126419184477487075415473664841273758124603066300854042450959787906501519765433041214628862383350968142373139265835314913566815598497047339452896578780585692416275406285473149550858684861894867907072900123115861176634012314787006943973579270497805729996789643056583066991894513147218710872383838687955399062989803400093009907224569709186148044295515154353655332860723589712585731691658593812516338949548486886394514125366143996768397082791710356817019952891332536186312385578792474822174601582550258721598387455445090640147828013420186473619290537594018829449633711579668071645072158564568337021078559897487223151858813243928081297596452190669140850300889549393396559616113875396375820600849610568316347297025419630981390521795510251719055965479771414523851868793256612659571192247917077551490661385278651519625727066876137457314211856674602798674852064308042346799591584412217848085984151168436668963340682949054695267789339761285265831170671842639407574878173046641948864399644645110616812168464030436857972051190684917788645853271321327068372590126528498986767567861407100798730091457329965665332271263139717959372164297970944951989400843043975684118558514869726477373203395674446972385159599603580157760712207579023147555840295822709953087691033699970398404548156591489265322559811296686642383979851562305573702017223662610619770962741883143721102808393407366608266005105822459037323305332931028718084619129949002502865928141699952280579661053323567932395536940279413451870429199837578432732918075301410938905757933067986188191525511394980749372554364167410619431773023280651866593046944908003781166836439715732216550585767708631012300934908528251409508851955737820674378626178825560213863009482290887601432457442573912216600560813078899256806087853746650062791460882316331280107937265323455152033832435461323361773829391106784576916999151471962953058340968917904055240478178496717215378324734469069728203341961938184952965474615857988664317844540605676908244315957018075317432004480548973902421746045076157549737275878201728961247178076402628964913436910632640049356844044291825359129211631024969199700046180861552082756380459399440161653728476691952847787522709515264877882618897360738806429189281917571146941533028356318197793461083223781236655142962138439778718635809174444977966335570870697314537011743288888365982775374811919773177566725988213964230953047002938987356630156037563586432184861381357075212147373050044494889156582334887753589585586271843136008310819135147578550358201092307915320058124705146998523607879379253748024870752120427064538317789680484372673625425217582411573045429780058092210535180980662120079989568798571354780245198589027028769012852043103573085231890151638743031435418738398877744793671982621261717393859781092948048840026235676203819687507675626852554076595357769837545164283925634295656131618965772000381999183275275123412771188972076423123460745226439728662818699881374470450259555042666956126946060815869476459407658445729870891539398765210112159968975162416192329352020979319506788143956853516020456281209761915362617125896448544040204115021443922098902819578433663428939494970868450239699428995596474772432562093895272572425109916317661993096226267035320282555492172173142409094200200034153641712487580065863608754581050146015781878790353397038466914570653118010130857721075067728840960829386036853042126258732913578224427114725764491625236749503500790887579116336618764275839022390093074562171283474903613886621716204343796606246678794046758736230542891154233701579489348143877944976216334064871832009043321641138686794923608775202561000861811058833833900370675209545228295958487407818043591435198738496910255490953348400357127877433838589063733074119480722487178540988883486279618467847121521961755273957023332599355003763606888368590750149641731539952107316501772759442644696741148975429435544843778056545329616383546736960564227841144921009624148688816119150660538310915120667284689249841939995423267441866674835250938779917436305585707662075176242472335794590382670514216633543864642261454976495204012334124929363260172245184645082276375092363289183313849747698909183244672673977208290633814615000191938292928632393222634784885342574776223330505752394761044481164724770265495379991180193652325398247261610470063215411054826866827114800828490257413463507207845753768360007400570181865957965886805559622665746694252978460762465264310806821665385523920019415842684308696298596039920203653640723047145751498033613916803875805003386271454221299739845052638042800601493224116030577634134356491134591539286431080276774221168503532603059255378137119322935018143625545764141994217911823627103594352312766372503561678824674910830141000461678997173217151101293849138202039336373453186120442183463920703377438596562024021995847149260582648713988634829187181961728764968945517604496948128908272427228297143763697217097660594464202246426622580230927690233841750316838245435547444035509594130976838309477310077604613589287799589989453447473218378574948950093420604215819139937853284260586013270224875042614958967945267222256051253441908686940697867923268713886636123068418484011857536250379713591480809834367653845041255470320693663522245862663382980370775720421495553007684270327499297105414285930602957342300482851427818145485873809038500648925167283257268764412976872150900371307571501718741120743518547899726990453938994520462599628789763419869212907670242321337828051269325496967994149964274339059288892335253028085681803336601413078768110619123221461852438593001403181548036678133005996607089484205769593320499537489852536404567485629677078863361480718182259476971206975374093217711310856385535002828966478873037008597437119896447805917424002366061627013106507330905820825434865779027536911583158500099128676750255771712389926440364124510980017996654239870289810197392301822340381951959159155283846286795404554522003580899059576645749212910862339751473528789759544067262104318788969634757440870000524738673871782046931840632086463304871131654373740132441858870226672090758849960009427305917185237177412005481377871812908534361735821712220836952898800493566402352662780455145805634844123727243205152382729666342919834999497634731431932209907131001416399302736930079573512585731506621065063791281020116394535132457935971696742510109431726327376315977198042771747354276818471618615923091239585542012900316014830448176079593151523228287148119713797321422552277747207749748828888959185163015038057458218760639639785231668118935409516437713030455371719112529632177662475668542424977072771354421555929567681130401391041810054721923643850344789698150641079644243962621266399326985910216241152699822051477026266777442549605367560021346765498952986793606626614201509604093425411069962093483980383669562462075064739253989784354911546535599731866141025344129518623708857207619712614657817868623610494836281266077355732852411786149418285417989430534567318492234601558492640357730438797091591664555580341468283165049319081440228922068445503614091602058560035470880777496986321930675475311250589898736204963520512462532189748936181980091252086008728313916999631819460273321663333566456602082221994359214849521180423905978564052955391073826967328757791212061152066249093106773872309395883472403183426280989423244793818621153864653154730157266118226979889392351510666557250780831285826590585199190438090522029751999043417877493073552820748338804366623654328373979944559336926705862287303392150520192583351529474448749172023842426311806544968283728497863024018568277274625837146946412393472324902471619204596572836126542846679951396308529027874099872101820735443568087022142305827406040783186944751767081485796041379258224941689234112948010363458505822783356559457502541860877841155215187470250189673058091577816311323249928012024600460088362016480804496682970731988327267799161736386132644250644110868198866394212478548410519305877021584367852900135072219920160546624678513622132305912416128378717944326949936448772621405149479159182233616195539352585413425839515235390703727303982855680033704382899979152312510955225318142598442443040907338496531043877010182063610155995664575239600413029371707425046923987275528040283106433758444254845174975038229019315289936630819733807808561867112570548337045557877734976061345096545613319128813219800546925669203058892452023472734991128188721363610291027176197509602091379216563746894775087213923693333412558125940116438243179962213236549320014897028328094274487067111523032379941027765461510668530827753599421219165849582331068976860154288436528686613892918752427577301789420217690508671120697019667369999377485053406025928476041238937410179871632843445430975446499643313314674002361367060113366443555028453007801566222143958763807466520930676934528190179973372054578929912686100283837569622553279310098992284845137696971251521460759505352612884219708062506784489289783858529371006674252524167914769442139921755129945902975572713898223959903103063315355208070173640061246981829570635996589522981089517330484107611083741150448742995919580403514946486949974277396507321469714994458570727987665361418788623997617586935452695632245715581048259814956983109498804215563110043601387109381721697761971065626394352586549139295329452466384751548075755535782191019288125796074333810014293049657169901516585516775992265412225833472770566779327475549318931506465375734100442979023037635062049496043299829817919288439786953479693133756950360664241061256740932981882750165553035567560157876325341528410580369266699119095056596255323751114931101909931558804464780605285635835844463669817787935363408636122151143116713245674857544284685470050886907011217242243932254074496910857201777818564805018028259056467608335167710177952761161003632131903305463959196994778434159987879678847531652813741221554516314767565838907466521477007686693341831861544982230835375324795042025772081715871218341059712024296398236846584659240331836101199149423032958659555348259726358895956251924298324257264122853533550202504594363323455306696887595517339488021455194945607397093686604569361439838044152838966037105850302652813454850600578964058240905605293687693029020310444544348434190516644723844353017883846209660013941272933216105020254065904124899912756348270425105392022946798125981654569814953882926122333156080658862211568071907336257517200539525901561320080848177402544562522207489499814580576255647208489188087038867229863285826291236982845652079658938788396052446681511819185297441951490286780867601449636621456905136552888541230507915003539744788493531025075688414870635252805390606407836436350264828752697380934311808880478112458058929056442708906602954362883540612419188463844552284197901323672344975281376759692028421077415268975237982490466180402362955896279528716397056107502468400149273696567131002348564358721657409656997590588594368764490572350191027754696645472467197219041059617922344687811644513414886689893982638523176983459576548188524710854423684277946025715931048115063865131488841501992973952803719464333854533532685091191149111977623271757835108149228155956254037795765082994642194660852741660827803032814788951666907396472604182708113384422650146709822703578586340869382878689178899706413878206471707339897845862004057162055192799169977781120613265522586284767480332238926743085077172051776731263724777392764046529492456867303206283302053908028470034426740823090321169865297314388049947539862949123079049241306651458477596160114438724376135930165540635268359950841283762352155696618927543738627792773600928201261314257206569352016657108955192391958430243016025319545864828622875223702296831099847508808172640396837802104548537402701937281873142897266786771249858982040007026580543176285760851880887542328080580809222398059790207846598767805417482697731259335211608865433619887642480659605576696580511374219926294721310219001342635439275767852662342124184837044365980488745517122392963690908825648147840683837846972136835213358778525016008551458798529574881594591308936081342896165612152644884240969858198511292414525026300027619358274627821383631022917385976556352687391014811194047047357427394017420016123799331016888096513476961802635407020540691453129811353529779414911803122409187475866562124671503100630834362522202211480745880425240520209550874650261190088961861244606664270230578145703432292800932452983377604864256642537270630142389435796761604092577456320934274953409417502672944729605517893916657900956341101066318775895522853807217423328283438969252182577775130765405250574171099548276469540213572251008790178535942012469971485152254921949512705987977732848374920155001550943187685765202099014533129569133104831277004489185165596597189861340280698794635680379592563618538105198173969949791021350802998096747236215022265052843075326768712058309588408472763438808680578539197703406292434577243015683948502441267039354909271871217090465294453925494974235288544136798631148119206927112206330383799337014642640534858402598794675539313544234916223333604950150065438869991710464982175133910564043880353938386571138440277654501857839349129950270864281148896700738481565346934929894987941537508573375905214864794598458138800476971204574829408352923252217740781520129734294865191687737087242873965082703469237233422210536620514514852797086391004956612629049375520309372219569554001867287678770519595919068626649654838218230213818999217958116004536764433697451665695799083597496495274436599713201613712938473825557139671000815343827695834626633656936680943327959662990567117503776402606712551740815342567747130199399511451991668904114512571513349356239765859448271163048183286953392756053715424106393081328860383328454619660892821308957280536046903099003715088017527713147669539111486250279111225661147794127844406197025965692050730200129732039321198593890515929141984545531026510194586197080357619675311853832550321620989343945244804178963099825900661966664144872456984906892480424192728837245171568171430327267983028743062839673899218594370853979672385268220861186998623476828668586423223815263094664589948861336776316353211348707129475813651809873989617942751689187994139713909429275408101633339836537644874811198565869600789835006664713947280770555526914960939010695547651280668187654634915852686582321820962757965647908936382486245220178815487908178001389329392426849055736837210576570465131488267155252680108646368234725105958228641419132214254224997645947177409078029638725044459154256230834772253447166252711930301135007506239376519273278069286669842768919500101261399006118827939378943701346643348555891707127456153741492137918039688339455913058940229854065457940855908403773831677793907994234364082386000888477891169738573113488577865571725027392063564592453102426011068819476533998112933404526360708264383086231479781687200313304140610884001127855702690316358961380221934084512193001927201275416995848866110346540057339903512100414687242815690654785425935753669060385802338369124728488732156815016978614156309401550116521621993274861224379565774141875923189835973450653158581677044164119833866283164335054214793820940517189678442586589778783835216814799925617914375939053000616817485969980960399594571949880422414594783036813978168298347039504439625947034963359571664102650074372238869874259203166141566837577659187095176364876506114383057684391506481231459781600800248124168917268368209363388169589202849225320313364808079315366274953975836412263847010025761156509367706901934581793322726840105210628224857554057969496625848167318848815189460477931373122515579011687203279579282661369623361723336798582857760140286178043719451203738306328275336435910465578264792221349083634064061566843940308797959180124534799115296792628364952125043502431466495151804651876888364109486495769534069013930364291765641388681208685747831697989171171880611485829828388931726259913996099532422252914889522681750326710249208001934098566245507488909599709923442494815028124570398804230194690192170257682420772647858415780419019787146412799344323905326418871580875345646931471484908390250987905558308782597779690233122842374426748926301375709698849041840319144532724353498854056276483887332685012178583148186974394582890775314672725133476142246253966178725846436964116145079150011964009780249505980693902651006903695741548054244954747229119282498546955085102782766018120042327574468943126747543964572989456819690416063322172590870536987300343692868207689162055756027011753103931300942286975001739832136662933482413486806156641101858171411506394593816067701135640316724427418677912052308539882977964299649136284090565808271886299646694273331359497957502970107897445218553664220369751192345562104686570785286035213713553772942219691852272448746356575057382014690932153645739953109109512164301957445154976374786411895746653266817765001761138401955520923341903631669262693233990444383909421833850923013479604487092830553915264262959322535294328834046961229395307014471531996597678427121420672600909906834865432496055778223551834791977089060753643584708606448642699761876063719154095901548907563079548181513404978339972757916354577192479046945290705203799908430835733113878851953320237910321070225971068583950462912403273060790969504511507240340953920958259954816205479589129260810712420401628185150494677189131184905952418186275130078273713935380613476631801433655371699079342295761938727860804224548050352042689197656012769154529279459650483255708017105207123400597377859959257238394703231940370723141042137244640361240994039445282932875791770663880848099549167299324290439837150093370088102686741335278323995632795566618721634276579946789271020445473368448613696342946243881272321354418556054737354490119009266429658155037949395684654824195337746895363975167814154167634859221536776148422443881883645478342501497093692648091384043263584261886528412063186934082455527467130313719930966876468286086219751918448786061266359035002148203358725813213563198576877198351219447911338824758572056614536429658931959947440803958683118587434261204013922682270667918261774431404297259953754368684668649449981082501650728789218863495746934391994313790433346347206100038591390217750500550139428781641287091745067505935311302609190593561614390942019182783834956730039345208244879902128732962837327127874284475659453469777472655620449154835273330453083262464070021693209532710958281643118322905168193557461381520641209512850337805362581836140688979484839818873237572482924557428182711746924635974741673660683080518779878925491341176272545545197025616165264457842516378428889746535926170373887278984225870143646240361196390655712731396374742268006598950999785692538921115062891332242445447600588885456093429895375355617142111292152174834387729115588693782059044241540172526801485423620447406808255090157927241365520731434702250781240302915400593041983517655767052429997980761122350660384930276942223186663245643114496800182613689388702243894169619331868110280457202251916200569059192965822708278386762416516649561036350831597638713390467565050958708393602128316515346216247521641933295750117676355606108275198565378447751076785814958143590342207349275112059429156510639933406540607667618157229623946613826149768006438098561417788451892831117868325756749526618363264717655905695824746858679234392259971784969750320979575651952917423647018021798758199827771121522402015068945450103575284522534676059587206299486261916892790328878651994301018914660479754338823812790992483780044072583252819216786846334328474148325844492583517478004866361722052532051661266283435926661237770211195282115322368023990447838817642657710490066622895683523452667267076615534286240208893798200966891035588472817567547130295469254397008674657624856515543632178393641141625142942458568396965624193276910121746324867481835902371546821825426141399091115428206960550797518559719983251045224644999640375250138406945427321834904838324302212355336235369829304152396852694385940949072054935256894199885568022524758207296731169572160432284705669881838460317190805981382484673600166175457041970888942354934051546061792240070423480877298004042887383848733158581788529624687191857585870632310307718894766852122608397147903236297227105166778660600671388803049243574667560544816952364643252351289120670730738171660671917855897674028166740778200413641331923834606179502722133766401784853655488717130662182480738489981203454740180561175488412067296149114384318855899910496199977459250633685288994439712354409965947183104317666240555587612367092396819523148839506668692586201568976260115041259956233148992467311841021467783155050156038124241532065535958123220936780710156039269762600525552274431608510494389761616673733539725208598410253436414448094875037016304941487709797107169904863252805837972152299025755477154611837322568786085686264706464506072070584990036588756212672845758731087959232222578321771655095174756523454316439333014282428699686265876743808423566253886755485044208842438602371200315004312442266971470021057028964677922862020178143594791157910709700900779221733235256730496403676622017976852604076953124730957335411968708650069640197728285768212706343918607557862571585632342092658923027915157621306943807492241973544388363372459641578709712697524684660723724967570006381478478625164879459839457378087708730434901414449219563056887074651114203863503613623067545327983749200474169150143467898245208668029408582373889917033699343040582168789708235452178883761199889554186800090771557726025316006348022355092659254582080832480758272786057508609027449987433358808406665875737951024231900765143483382232979203903867015730835030729973955077376921907956871662990392146739684525404142881597317110994855935487922200387830364472571763593284724208786048448966921587425514607359769907757919936922236041882861830393335224701418212591931742620329776370015394525007854772199512161279250363940794506960391154869287833461488968738364707455815526878428895620930038473570984315769204646393822781470494902686736322881154501015331433021061529789257541121637295373564398551866185552216440288840706210779638552106913194093430675756816242665877518594222046628116683708154550159632438591686004139896788390204590429400093431638397463587448542573325905360434957599252700717708490890631707150648105684411801327016059437204784742591095780319500051877944628481198229617514112176172459830537255814668576317439708805334802657239168604095477310170159186136737176713897174721458665979673442806827762711808939343606457738180278269825221399091933921563897875085573408886305898023932364817464243705158158576489705743768846412591340631650218360465017596535546773894139669224392336450841412098468979477371904099927177015248020524220578610229175063482379709000155219029138445717335223210731217511757756200198156689836419359849970860487449289669499054649148888565613595025073499938468399487700041144420059430115499987658197934374928637154728860915230184814529161333908988374838783818306078815019668098183859145977589898623971325181276597041306352961284579029116882576668747253836042606082224646968198204150399222830038890090899101248493194045467493537895631547239762739516022545040669515304004347807620955326728154752285972086896713917902117617424307998077409591331689580597537577851969145852950605172799026594137970113652353174692897967576760321230612117700720259890052731990893641985396213480321920901300151734464233265120234499759721013317526949729422614804615831240809015024621771248034003998951839247487842924032466357191270320423469298421762638711246492919797650784973382707951230369625444582760479724918026613953446001819332101440106433380461821395580770182787796075013898516495141898255200065741983657509142434244989812781757949218108890667703865638981064872346330572095233542186193981128100353802034003230857908328203815571911806341011306257372271438427990328486169910516057602285142148443664016887099171544814269484246384371837849737100590952509500163475599165702106675060885539770612498576477969579508769209842258720399086603126735443921340927151272815595182938200877612963206163260849021448024023501706728660246645722292766192688607656803382539410597953613959282495212793783086211407441316741781568325799742788781465270607754686110805613274648054489119193173446185593442951351298073088151129326294588135315972126412956251076350318584581155383723979995933423378786714941405658772271997319924391022431497758955737875803554746286438970100124600570861734382888503969565876484673212842434468067081591014231143102168064637201237118811098972576487021476400775179012610550451506796961440337857888071754378244544795747219791622856993287388799867968131034294395406575134422930795051945933061186424561141547568139496745025554437240378998413056395933995535630624011878202951755863024168388165630839641803893025586740708659424627071050020000947491179430423314483194056282660135362552221369071748476005209044994671566248565417676419288358534233949203518734254537442333960815935798557544793074063512296778511341888064011291572168728115738464402957084486443875293410295846922786571923322502124531498977351718236254180709936865815961909730967039932293462936264141925092488351804792625543695926746310719176007510043331637641985850239967972215078437397335628849937711476530428522425981455423019183636774160505168025735105223313963825501652313910021045697277371222919784914879804692900846997036004826470688225644710054098419484586791230669845444582267998220128959312359309870049575567414269900908975971817345438690363869060304013783319083327843491547145750593339807647861421490070201805064580225326148696625707424650321743654243704175994671004281308910776636547359470898502656408498272799538015233854749783183163039218331079629697644993957807734653428597276286817119596793005722348145091807648884780074540392729999601465836251808339477044201539870832870292117866339276483742916125236944642249335563750242739744979214412587822940685781071371785861244923113531256026884914079869921813191734084713587547933827987005215360847122725632638226067978811741148031725149580307558098893255887243039767867809557181371280621971339349601982111892202292358919417984999390260910993338042892672502058600811812583214264317000839348198527511090477381818195450261008673749157439673696478368873864624756632017793565446508063719877558164802367397499315702647589271779517295614352996977666758891241542110215221403194358520329782272113867523016935623016428032939612327821328795390254835274960838467376284895404975585125405118331895377842852057156943313263164058349685505643326947818777703794220205893134543858486576636974822144173603553543008895887142041210017087818572054826313671452659102923937680218019128886057600850601304199935688085243683722760780144669569185666289414663126729091465863120159155991063492009553883217436363097757857844990642469089145157934220750113235753590273852555522863235708941970636140696901570071243516818559232830557834855636636365013736493142860634063264568986498007939234994391510855133158402619085694221538764543387519968332617101634432397871566951837802664862919935251014991770255909173270003787297727519791730885484369707253843543337842368732596108755627373161027124402953567993805845829446312246753618343764524369342816565027618466800989125817840346156501447309282158648167666495893858425060998694253528459464347322402263666140235446740046805056197815530446879191766710146734927489585192268847666855426291305517649639111403281252509889485828210366860704998980666017655162140339264190030497488007503370927736653668884068135999694189929215091562247213209457518445926864483217283180186766503775435556367114679635027798568830374352108380030205797986429677959005761479685937197356196665897803745593563476626573751906826032261322147146707328714947959428894408116315290738099007331072611786471427811811414594368644840922025808477064123311742625891849859664792185924119468317930739741612175885387552565173531562460681232480794942870455484490792240373381689638830688903001990529753510090729484222420201447572747786084806721459276723846538096061870857250810643374101617470262229175611147441627476311621522104206906970898758978491890124271471515067404526996362797685340961785200107241920485482937573149627873191385036201331853319407443248847758220062230370172739419655907313825953554563927800682793949631385416292998216249636030979341224700945025352445547028325904359067785586734759253572162450618392880796350878949477089978655487247100624805490684044706000724611329771097454700264829521028045216883326382537829890778660666739722693370404785336299552428315755681044510802293391450309158470899354736384094414154407437493263238896539541861461147678173719419286739772268775923646044220776496872704297681226433982044432190270150005892589109806762127864951239419054399200635736733930370049225737576354795958832651050707847094173790511040139362612993594650537215417272739219949603941982575875655271874910867877749566070788072574341310789912916298635389712860216137554239149858392733482146365250310857021051215862856683455697812836444124241395036715242662275399206513009392751134598949527408591646277673226737204736757286117871804788442568265794453571465998425805355817536787768383612446741718633685050260740468477532632791498874556999764961312999107885855948361054534169724357122472542531785393592923929389158020157800561050524597402114990622931134771811623987156115214753322021949349267347284196688919675186175385721351621110139224725321984706808808512019628645340542150530782028693705718933131021703768102756312623248400329589565059338254475468471058048378686224577420392198285569204266358040459567112609611473010834312984301380001955983962189437801315663217352718769367951208520991309379899291290822486631667327437775885848692901828587184310108686780418039892975056701083174539398683376401521877782306673024364545604332180228210579983184917976863598655692307440925979230341132742409037937199913025279533872557856684153283300003607542240341854435153073870181136084820279237837401534190796179036805080111939280250142218330346182326773025046757161115502448292545879653419345607291570931574372470808668233108143322121302276971465158549924738590600481980232173363093346010034921248287352411646470275333041600296493481944493023694383962404763261978341405665846164539571846420278297430868557077504340748088941128100817418426336549208960548298359150509789084096851008336274887597521794405038300837351439168741760962495969744427454995551955231449930160932066607187517939659487867933599098352262854963635318225568377480167355028840014616163827576069892431784726189585829221440475225934234629722477902670974474017662110324792196180944875105709052345028298672067249135638000484966875911309986786436740922162905465443331952031957110662254328895646423486080228347406854104493409289521290565287307511848407969599843214668765454568414053805197877719765668325228062066356368629596564449773608171380006211632215194133827521858631319185157298348149685013861984079163831452435291261798233472017055883385692922231654113368711547948640796761288642684825648817198815409228144923379489855166927745088870358460325828008432912584464967219377812052287567242949708798498211528670577084283993735395912562286542651164113867342665453202002309424154646991308859763368084496976937794162923986279414281051281998057357014803680314832983475349959088062380852236447475700204813160620005899343489538783171445865437792626390939570883301880928574089234560132752775585104101400611503886792450831629165774257673153562772882926919595660042822264018128665198581674893585093653684967184967093221214714494598477552117779368661760931232967102418702061379127033779052096442991605466774614108771752004693303223716382905116731037063201002828689036187577333713814059936408902953892198466629379114257273008133462470659413148204747256416998596849363493849924017868508684192635298366196603430774680868454801738857114590348112402923751956558784158016086673852719672041913733311466158452618910785336646004433297311044121693478458200280568690049133252898491824847881757311765580593654673338453326954080589195997787520465505291217499875086889035529820347175556207191600579176474422882942210353365515615492559250712891175228368864681989548497051033155913478810451204790511807286682767318627064726018956466444431396393548602018495926749288307693434520468466410237157772740450837275580205788434244645473471476339327175287250329520098794193690834386062267234918184170215623900464576282363872442181565052885939620763410358877079536230658304346513186386222352514157518068238739592139305903988705519497991931504504837334735849386432889728734730969594815719818054096099893796896330333834928724013829757911372426891196794681769286292683459915297026120881390910744476361214335832867114602625872409169752023199871987808832572152799550487105247466839920664181513925211469368787141521445561423278416541705479664490499812133469030971910979249577622650566284952279626903525673188180807866412684805495063473062865883457578572877331501874087883228032678579215502790718281451315994600070977506870455904066252845674744860365186433905990747388273462586268106065212733133663785471350923474616053349395269690556990635367249930079204076274154972612003342982324575669905645023791147926866330603883821378597911008268887247543278794121693754714088593761554738581071701845105135889241266144420486647073849478479555824182223843775933449034240828702765558055764177630198430962074646235048169475018103587689597406332546764492454593538761569800580654926692435558883115923136408556245592343127272261191329616470709333925334367343486123433003203075344654219510729262520431319730657044964343871067637574961295819717890499755795384892290882479342561641338109851435727759143447992960298615975589235825484981251979609537246136431060396292433747360423622548963260474183064217622712524466738769035090306875906556371918995313689560425002567295389159924783563801187786942246199078313860704096908894376896389208478166963551878346022875417337087390277084640147100943930391287185186874140243787120912753051879228058110256048454334257498810463768569569248380661560683226173695648117128696618712099873820768352781303313624075210668836722191046509782244419744639342016707163951491896106855364153968895366397221641635722881421315461553052730383294549515034085485147175807221435742191610709058849641688719969082223250363072277525546027463178141940230323192669459854924422624111745973831539770662210040926071995374011063405394948060336913941538922343799304752517881605982325906750473287425193650058245279007541580130780643253405108116881695813686127327155512731077529398986298478587257123362956705442433336293572303094624884589951766593322374513811060370494144347765320847652474956544090866831924948941770661785943043077096944745001016316209101333874420120925305471863754169759740935270462071298889797439948581221663158141036027017782817505174538524580445499472713046167095323112091176218846770566134186649630113212187917591459823489297542864774143205924234397510786377654215019253038049273492187174136525488427496126273155212038179431352173491489347748719603859859194915373265304775563470284825974865988343786929329727138090221078928493408349805310645683411040125942715018030545654013386814639324880508549352231830687310269405610882610196596777026773504608142645740229758005821792279337865516401415911818903852479481766470285757309700564099697408547710668589834683237143992499900567443235170831058689323111144895724885786572546312838914646880222094480188064620126158202789001941442715594248847324777931109568265972033108356473142061935841997218135836927029644534737415371070444245705826993529819478181808089119199221249310760042322593257014541970352158563497881512300611432696322036512460616747863706607115179637785816275641169517063316519744028397388874482655695659091560142090710938137465403271025500171590910363510239077701226615261769867672395241604287951208807373967127308093539931386673208253813620968018765437184885798191647217628178104004679241211128787688210795776361581331027490902838844536681893569002271035130756553562199678794794924465861237748896722609206633306736090300405785594111437840924077932840222360857250443077773847021855591384438341365424614511511865780637773069896808254305957856280218711057342042485461210341599928244821024194474165606254407231182795337825488799101170739207280479857186356789313205263187001065011639034077008923899243351875802771408876087885363847007010790763411493660326869539060509134257994653997672951542399710624097894050596449163390965311072114892502189514793121747368873029854246637579741984664478420520653468003789748294776194487126525193674564738719476559172743488563783760058143248316151404284620762756795070526112738880862051370149152836953526386407129020108259874914199678344099286257285820303053940470680561236354449528123482762474863439414635301529576634361714108263609279598493228126291624692068357989378747030480147987184123574699152443199004858357476093654191273459488379480580130008672025620014517794711731721439747866679826689694607322206274563937969175744044435909296507196384969642484663018111616015691520732109564693481161350504574668260499595304713398720467314386965910411208630736435076522173865890309667977134496531541797079230609955848135616314470954582066161421351309099048749106235460528612876648076239855204970503965071211916662470367923793945927920381264246484306532316445789536263369842796129832571067523140360781555968589807987124594724669475755902719882318104175929140167750822108182621387030573955547110380336079091353946867661166034891375128119786746781383523298101366381697759743024109848273153842809751861995665440317005227909369570800456913892352863297243311179030368476187023434420883298260051062146664612614745036982964032634483102930789544317804634958040279940674892411451052868911526223447409283474625140787453193414539276704234783284481265159511523319297025165959503868286460491260151624981223530159170949215090681679391263975029918399206641690731750784247445421104282931693320356977611278111016529264889794055050036248006826091910810872469899887891102228527820244946557631983005990509530957011914103473054351086001108736942729889530294511497039709954819994883913713251928086879867945256108468682926891790273021106432318486304145940725406752563638090786503850261036584718258887004572122539279937762447818265078355681196116099878971929173107738273644051352536263713175382779804787697018409396014463675480632083666360601344558514960606909090920550058324266045892452389840946079473789957715559520561674856555065566148670480771681219570595137292229287483580851061147917685597761976469759293912825985517346459744554117462772148576539608418524434951239531286667046258993537302044375489537297510149268385709742120391196913929561351940221897339220085514311101209549586867616409617042910907702998089926590500026471260393024516375985592666483310771429349223382033880302422250964227169865420052047675145376363629370080431430855359966188576963704993994861963020926023943168821175313802771158636120590596790354367462200317948993185110072582378336132484027213722787719964155864638152573164498103901303973464979863194500654865081565166931157831243606761396853471638374892731432969263494976039727871306206778588183802024363160807416313411014216591530469083576736507970895367869286813509734583768986017189401380136978702091146467669731868699490488653651624083401582643423845381108125926641469066962292379603069298667927462871387212443958278100543831560193867964976624447305224063251706810088500519325014617663559506189292381135570700561284545662538970374032972263822103968107266870759285363591387996669575454627163389848808900142646941120925804830028719210486444482958034678304159038138310416394025013511314430935347720831044942546428182124832425696220707464421725005474153956631862366471262123422197839174984660667595119228052398427342991400522159593783755916856328164925038169908150702976512943866031779569165654610801775011271323752693660915921443835176038312157559095242870768054751900446977637425281141452048476987774824506265688701113934452848398782854750377154212162936205733169294031100210884400649797001076369944401850312912164171274412721239487025219918697113274085196274192818650480557716302790479709017143408578404999423907221441408598864544585725491973101360990223991778973739251432824234621268313590631540894225537355362393567421232747522241082533088869303396074434264643481217519157465177910855694473761412844943060699559770194160881925110818648175111261934451960924970738374795907472056133671370760180289976264750736252732933927639823669773385322354725259249976209341922665696567152007452885113015899799045674251140097836858341935685444848272297833838455242692194167235002569070907388363132343135703066851235648669980943787377255366301653548693093304748331235666237174042646435297982565963915916312812576736525289453989765420062043180051064016852153521910921388329691198661324266667509165267367207516558657860905820944971486893120134015684051242449742410304740424664898313690586474118397382787773340839633974995120736161776126000587977810626560763981902801778603858794051267117637549460989211230616432136763532694021853746187747802113216844391469939089527229520648432308734244531327636776609571946988259414705786974263167707306187293713124912294354851761939711915111080671870830566520155139613346624639750344403423929773924794359970172043514661694136504893276877090194112342297932420300088414969995252769549164603096984062639075429986308986499022061490329145350276890350392521953074669827357982527949649221532925956251384843641621859742331567901475172658776405869678696888463158379377706316257408932754739712824904488884568917901152213944194896356195346294887147309768497204261836792939121177657015834406606649670154281009621616416675297549537246949184841468640980892059434297239421381004902549559025841557143284823849168815410919112132817519611245334080221953119219401346701587359465722469833116029213151125806531958239469113632840802289691482952086235890468175536213552093859385868705046648488720267758808166431639608700824215811277800814533565962931221757802415022963314106450838450776806388528925863692547351484701612030038182682959229911386079610616964339917758562003280966850302812434573466156630859300762060577867926612132561580553073008253784981591063993160647717776361943464710539193631433201949294632720252458441104664431829022792405725569903382618047783605024374690730538226582775318164291466220496943491583877226846602428156844189075544420288439944298211778621582931802774949242674225978689145441287914744029582493365868453485582339855064954314123208210384098409477329220622426023764756273269868514349023904864486752912887869541416547868156097959269695488357298298394271307656724041856218759779463685615524659027382207227529808999434930150338497667540682520268352269183246305869406078888711399370772995905230873420050169072508744173502687341179194102471315502790323595574334683368522332433727430819803554062271423199094149125054741246425235817434241096586443731443852256803774900048719332993339240932369488410786951607838183735219034798191433875246602174388745616225603868327258046308833141959282180561364265476822977489786940161943585898035678352657409291010798098387716626730825253063742553841585357999111201574257789950453713187254412449180292304348351318125796071869293426310098084413903817866600659937778018162656437995124400543466460905831493233574878218902318408860390882219845958518033268165298316457722607942593520238142202220802645414083626013982403786233141511001144169330674948139180908408723624951132359663156245137431222176233421325360050221787215292435709766953751565769558086786660960139686825519328533372295867907961328231765505650767354804624982391161099845879086022508283582087800697690890931987599545420379663108569996356044075040747905662456319476690748370922876683471232736666411921566014545507007179995251735344650614731385272807314726000225675641374985918007414467072311045521823381654739383054417425174459231134872741087057797629191834475343179090522179290801624325708406598875958835458055121823987457276570574987099874899306402432350001935883466992564548870428386193943210169320776958306389076740155804857025709032652582047747996874430288348237031969874304165171157285633973637383113514914594554292568733511222825017197503074943947957582595792448919391814821593106951938254759149645218873652853498979860769371314799973291459149811020592747530355114138777284372692958437287201450229636714800274908639211851415054133455713325860702291066741765550334396842471125915668910413288818681302644117648540890948306609385552733425604249873934629983970260929068142755237336754066653031005370510779569948699573923045130608803239504796953579610091235019842814868434974128802247664456807148682630611159753824481821488536230135579114893522732403916718763448236427125758254709855281367876990762607696639670450263654188621385225430495731149102767982053665791104324549707384116725103780359357224529575562859382669557689595360787085016176830689885330335782106900133834086016789520495021559295579979125539310608691160094170072209307393478579592302193586050237280596606960432224485318250348062911712915811130790993033257903979016998719949951691860226811969566031569084037193127349936917977906357913536987341696550993784796669329053952726435410646674364356196149629435128216840584516421297367071267683150028992176425955963854669927900289009013748267032472069428339030163458407096531456474037338684359026942825962065144038813952057346502173901124253582708733518769396777688623095978764113905028987759751172990194673758205177975085243065095349131785734029379452335180848762101566650519418444262020925197336059740283887102120762280832328199622829264651102973914720925080121538820981261199267308247237521524739221870542116746474293808789344902354939600640163844455805329766393738994316927128842838528624473561924053669549384867916644476704939427800658851662253575474423556272154112681526551884067722315376083517259137878855285027393662409774454691870783962911173648974127436442337802207943447958255164190913507978109005922076147208409100642858274549750755487542133252371740039877365434020002117636241926702769577415888894358538132688617275646581587185576894462447205915725118763194661231780182256312942334073105680708648543679740300706896053579605715619978827778832315504357950297682396543675416904842223605851782095209219179170455162988683787849397032459729285429367779589188332514037114014530348490022850193815264050641906651959151002304591162017340333018223372578736522363939851535310315505123408729456662189493033502593887601209407910920566048683029764375802262626928372421666782959194123743400118853410777402228333461701585965570589433543133595875492211252578305534329974281826838489590297642517930250887955297194536803299858497620648186970868113268602970402133464097432855524680381949280148487295586669011640922293336559190328530812728789691042814832119342490430168008067295826616764380892850592227392855377328152815229559382660559670862399872509711872991102957416106175820159573821702728711825038785770577527570218284325883847653642436362006076800978749580980848804408205649155290068192358612977617954274083662568415913252573009713388889887458196301378874854718661976244819590500479508942192505381676570842010443179904264913125071738072563810560509761821249978204243877916813145039776837719662762666649149205185116202880188203082954240337803968273037753736276984792608164687092719791862676339615575983238973544178628332461916369486490406928290571119485524322786680632875543775226182905573910728995022999158676075758611654995020853204670977546769395352247014527406954667890476437549359510702590795946502127188328711056701155247970377839130306094144331774040612389649276255526686724180003403421625681104048355009750021581593767188096591125689064425428627921756874174973462534518673613640983695757933013702094190589333445453894365022702617729006287993558894233675409411869275802680264066716404956811576106681851485656043548823380607582753454248044415717048483148012440994007630895556472553703404030568159134261851956769745966360253022154915537573928886180258260312615680964463933934145978609124171474514347846171973286960349793730268391072309026271078828480504768920943995549304643602541315775188805010391982450113442127620310350097340735178963816393152542565648738427571664934729360440074358585183003749986114627067660947801248941458476626997472138391144355789013225704135185563247031668039267813382607224434755013581929057772210158377899685921346729702523907610245782044077313206422682480406725991282127205126122998538896980988027327179907497168607090975192197541515108437242199675244483409649517324082914014520602445506324747396495209231088784502573152246001376858070089887621590998432361740222507391495635161892158926503961587637491930235997843506695629014581585111746951273032300024395873571253372526335287197821989088075474802323017753178962423456809111071773234933462741068378527145676618381842535315421489207735496318916881102221640813064531129758866981662097536433035308887137009227727347514259850077898981093961744213863170719558398420905124012027522779869849371021458733270950332036063303526035086294942624707045381965217126014336215756124665552246307067754278636056047951761358234096872502843079796076746166865924464482544161817721084951698265612748401140170786644369805605184202782902215778418433723520617168157402873000003329104833744101413356274588539554376237702188792643125081102573600415685251805444200500897263483911946469133522192028910353178431577936504582736475659590994116750047950477831284268982401026395382084040729080457136944192766442289670411992021002809670111355122568844997841302890731630446805791847175226897059694141546717854477718191402656074723111942161300927950746275277913454005511773508104463491537997978642450833925518292900614416271948270906326529490992198908626014193592820046926415013851194358520505422718779387927877874745627247445029836479113625982295038721236830642251562670314337728558751732827050311238527227951377294138224040389305100264058989364865629596895171235810091864006899058890548669547840532438095274528559441082028788926701602539426215148897248310265323685563660944386766460663554748963239411574372696449470556814567741236010325608146566078653005084928727636130528234303994582268840445896799834160241666205378052211994844012073293589911552767846818504520248786322683434064627491768840385787565125505787537385329023727920133583041291206784691233034734143664143410554895583815972441672301891412801727860176079614145559947920381987431858376839494351887212879254123102512449817969908989569937648099820298045033230514946248897942594814080866978186274766559871785863746170293500295522898436400726913320957988345891845737280705355938594318529096037890132798604632107005207487539757999081339139438775952552303077062686333363535727243160650443409194940537322031398745038286127201255916276057800307454372924405088462162325394606351525779325899721465896288014291454211263523032423737114902369647545431009457559612672993314221130567165078087546299545696327587049219498950708359180834852524778894405847556135493745534550331708988452332256451901757898899077105028965317725589000346283411240961328457211698664949069266126772295907989243166696113366106332249644124298771790315240234258378299333676723310570822818890423521710583322968417000552058553906298256516267683735149274896051108400375141925526411920462342946124727440771982077104176445863582767516646202957646186305069799683280678353716518281467680049464000791843654279799615897171972874547345575935709366708952717099024529184877405297587028209833966986627742711968626480250690997765338385429630873597672826223357064912511454963622298207044392454140573818217368272557418128076383538928802980629700954990780210096588113462639818537740859115685676122290828767786156147439845889920272675541335360665040446135209373782572140885915649096008213479315105480450598464746169130923723592880454023878793574229805166664905513844019392252470893660645619601657432286090906865287093999923283404288916868777788978863296041879677523811183437002985137666679003723534686904719537781797077534168461524466964454692016563527229186127371960954810519590065542149832486757195986270887456642563331788674103888000853102327231065017170721501315993168834878747994012563122996972361216813135624429058820008141671359473672439149622872759474767362332256468825755874255033628259606977931576998967762881782152324172742658663262577730215982550265152401174281142747129272143775122774439556119545047335035658021924639060470090777072411384603589239801698171419604985063426998877930680329621212218253954249555547560326180196860559883829880207074402329718602313374332210646581785957321872564311187447143922572809737182443475842427859729523506247765724006887166498997046811503955448121954070352387121323162776160919438580177846536521441431524582404607671738567118581590306482574892389183989294854515988712173243132848275300518540962047728209638210934616747996756197860773805753839618681742041527660966093614268712184157370366736436313238038636149762113317541749829006150324366851672225808152827029257915338331170847797429556816603166411193600042501395093069557563244890447594740267213337787606182553772700402984975240447834409180161851777527064138131997842540959553167059869216204422288008231262931750449518231876028618800521483387615874024199338589066911723140674730228012490882696216367776796129398645249352603230657497213554584693233242809800192769316701712096661287310433852616913915152569008377268233636383670891609822411870240162162969697964568947613172889038855501910609736919571745078095867499374434495963074532053762150520567063186391686046213508132946873446226702359083530403890741001285586508750173077627015048060792632676090970223047599685908762430976722334532363346710541255760121487352490425053433042796608521095204024973600510957557255639398743153995046292658306926800659867563684906127470241831996877338476188044627277044208324669921503265927210446714338176177367226549936289058485228710361299947576097986319812092557838117527555141344290935511991392213048922152409527309758125148563485155466037332695953847850564394149495120950704603864862310958460972666379512213318393302407160199083891711624586462193579678826163834510268152477215436967692670173043534903753846504591250743017037234361616192284478801348106420726528382815383460808918484937209961028708388508747408900520979081227604905081519794299196203230019485659968551097305433633298414512281612925827936560255944358509373785053009854222917737274955882067890492475758781820009427903554378379917058082708886480287907585023274563182044656854576299792855595254295825259190686689185059939972587912727443541324310066222975113367544392799957166313515152502066426140910066545320864329118924444336391178278476508785617409186788436878806585825896514711882447911573850343413646096742839671162912883279227345994997284441457544528656738537430116305272452200359688551655673638719032577584627543817368315844465632884313173093502186899448127988261387419009447084737122776048905166078964132552376203202135770143593319162272479469192913464158722539807721867249437429432105139819782263880108916325235659171564480311879644021206348905015303792648815621503845538649221340410338745672088791669384643864329793287622250514637804823673436764737196583513258096926019698513301966832841005604125881809459169382158045398023214732536908940066577100755708105506432598843501748350328708964907191235724088690497959419249137974605328637757623282606772493642491274769097491112345916156336123022737508444091697183553441768675689375898536934171272420305681470652146989733197332124098767542611822712982229184836905606734031819320206447865882896777140096595059259682186887741237135420078783871032788941670683519337887370635462520514017557403353974743815461868838305500720230887582109598317993166619830758372412087096749954815119959086002399174543089326068049652300614962352659875184412024362323125025860733700465248738423320271766731548527003677871742687553717129258250310537617347431094277620131142352602686116371844880541324081506599675853996233162403821203980740580933927361680023049025100070439382865798805860739900491874924250260832526377438661846414377069839795710579086789984908087981628179745345647358107777282262929965074109419067937571086325733231124174724605636853022172193332271725981492068467586229706249916525401878089306064521189014187455650784779405153064884459491917450224187834862827936743797143993299594912860688046342663596975799688599248191516219445234022480703351173445834714824166203415324406692434431840612361429297643447051855134065489475847730003936221457854789733302997553400052833143559018218588084991180948512435456639983754678229857896913573985237638864424879962931565814197863495567563462632528596664661915915062099572065806181244071755969179272024349533451504056542043808225841400447240748765263078260365263786112414121696212278392994049119768052205228864970890187670120708459277553297011456080596553974383843877712021219268486019001295040454058853566678324988119456683730518756038237878010575797192898452945438517845781198391556575324755685700507977927815465450613006569371951263337618900810033145519312343691798380358101466267587424958290888558764592999001449963530195376668594396655487824399021910256996739395905357443130755185318018434227239092750973879090215225896442532088314760018632362071076880646494616812645013299698065387454650722870160122512114147853533999877749118019936895706388187286678035354420599074271889307230995600202789262448355762785922717295732901673037726738228186822671753771350556545004867807981800214786972749486452460177932369251406817942831420503491997501081828385813319870835405606201436042229233430297685908283221731748591721493614728836789517881265387930386644696867241545688905176238794423742673682076710627710014795945382002958955562013395069984255631941633816989062984533506398294947882068536362345205275002397762356823574000415653767947477452293752344961375223772834457137080684683604355398811641258876444672009882542075910467199232544910013644663939707839588994952213145160595065429258164375046436016292823885564637044078900338870237345948190598624571783536921047074659517821201505726144833263315651990319924339204712197144612653563393529637212199393811368357327337214416194925998465686421287357562418646471500974131121334175292883089030816921256111931920547026768405235341754956333315092472806656723131901023528337363247802404027625122576544355363606917918857444784927834107484702724899254574495140883177176829839424087280231381955829858453574590559626808474115739270586396389319381800086474733494196975650315710661724067235244047393752291366500371857030984669924736760465793506221126869343275385994792137193040728329240926799020162760098258802320458117799818561094730972498531254824240426422807353052514194694855979104029736379314663855487352353747151427902606678887904758350708489300614873897041479095937934978820053863399852047178297049396459649801753122534516898072240159454583372257978092683070266614022240142902942976142738345846441947486381581685732211408470970976821482595141358118098962007426357728224622361973150369156519087568714185970745664123197984795679861448371699330979656073192900326648754893859812043253009523640841417277754231228590632523187942302592590888086390864529803072122374864107983448051074539758297907748003905555542292367814162899400591241739297698176103490821172976933153263749303284625438622453685998500291552669577361873854461629059137520410113158297659619820902560496641832766247620003247376197937300096138980047677880911854768614249150069739980630960691178663399573645064402503646861969864016502218254001413384373540385924705043622493941690953359712816128815781079463558271256792720817415126744407778957858091577324716941408295287964973802593278513755473759221998522168986061816835012938491006570606194180309613154848586758292909614073851390774535332494732132020203453837151865297510781256347459803383210138369650183479841854434451093407664127930225135913925142192762655473567746529983411281215326508750262811467488571472295313776916034085181066504211100426207588535666768581397578394664703518174688288879744981129934853097829308024217877204122619024747029621107421910163288364581740399459575797296526457751729220928424524830088842902712561028837404886534294240871120645150776389122891151075528863065327558554830559589894107309443120282389507708404562753883424512974374947082635645477640273368568759336708533627555158759422592627214116168281914966136645113171379388348844025648127936400485381406282391794658904981877267525760692094816339940850211894409780551426153037130917941406454373453488182946894831025576802068340912401042840539014693615107430271230989651746535626522147221140352073496784084963287017337609029623575292040046273773247822085414738299420536645058287067468798458498053451614651178322770762978456721312058230054604414442062646045837846411862466657668510942197051783154733102123224022474614787750260607533180720041106298552777279052205299903939765732647255761605574674437880805891866200004652725610977186398651958099262768840020175425969559564892495302838162413263005064464006784364381801112989568395630716061595836594766712540336650032988919326889405843369852095715327358462457183485883006177948548695408956565520372140237545666423759277501606040247410381503553406178071011319626881824630619103896673365211631367568033507465699351880906375134634210753081446128597692925548416745864058845407452903334409615532273599286449412678339196795476482795048818637528279541136883294948878160135673322631525485292724374667625113784586871706505288400820505711101079395036160437857942396117834023610196658962487421919333876578897657254727096096427798582999170466994814873704696439816924820612438143155952849259261678083680200858249807907458277884774881899359313638850912688767979657127894785441341650719483016334969626608839192920350333902731919906159226887522947814598095992397031112841404865132185911640127709630194171159055867739195374870640685484653516918837748590542017587637332726216264580395100722826806098702905155026195124557627914822636324649305407199543553865693763020441123629221590569550389612111965154776090460263279982372748152804150086185926619976011801336471412620916305854592117488087656033016421774142088265385511062085112148365734613317143202730110857128331384242466027164780358846559943467745993863198973136671065919973364695413550805566351554790026626476535750629190432367127387956031647573738178390641975931226337083737336217615583065915973488704251511503461951970396813918981450502101716407498547903494799254317806808111759397146220807836328482263969206423969650085966442449585299133420131249855661390990247276032190936532320303845671613031932202716216214145377262620152416430128074036106165947789674963230675678341482646324379853870320486950460202629128847718882990895815355481327890705839083304697744161208663135836533291638531305412385580780580616677769321547148623411580503275627600709555721048273897940685609864682573857046946359598182981540347823297362244977443929199408691014618266498392088502338458075488588870750632677485764617592707278610777535214469513540433908607639900302239570037345314077428066355779519005568903135414139629898267578895083518736735777095308773337798527298358301301257516055023963322830290264006959101561604971179010630615014160920528787088942623236448154367801068504760226436985405567551104133862655779065691383736060400084784310263955885078553619965149470641259165635437588427338983333840077754846347174564290338456428625333867268822375442675378966781863870627010860395551226843240326467384863247467096970583334070077698336707073057823967905708262978315758075692469399505652017550123048582766710034074086809258948894303867031938901616729338340290866384816316665059618188881397181384791377875196968002377954629503493833922804930115590855909637588765557136014116027069281991459145152670383291733470805256968618438256804632061606810180975210751316652513181719201165464207871990721107264862883816287328981262530400717041020594703933143563218320085883032492084571067716444287281259634038345770715624375826602912199736995922133886923941103333329029934047561942004680114509272220820740624177146321095872855879245374270203940426236183131787737236118134655609722351182885750419678447944721687013765878806072120893497335023348493230778866372643649531415159352289621904531896912046681146928774815684843525701870445234175508533317031829734188821618294774694067669800654648148752480295057550069057184104920428663746949595572953859120559873203787452496591588756452659266354446049272297067691746056832756370248357276482379014320815587970719686531725815847459122987626598534109910915393279816077173706895315501365169459615576255973635944198848463901046185740280641052160591707964008176965171599297175538242601836083824278900184640850773766456160029159553239036153902684017481547729717708753112323053278023620681335347308484351401271351526323231341107424847871119096087847179984911357522344507729298481155517687566443610581174337212936790126016198228579418935954773925929158835942437148076586082848477808413603240982189856662641505745315025808909682972673062892900868168758884102528517221690934194510391460500778666341028657890273363855308783133224320127130750611707762207457314975440778691416326272676243568918554893844581987338790798521485843943842911492961545830063315489269392551715749437574289020679451956005264724775711843071332974652048060553210519463434085641311823461178809350773823044259379884646086266189166466798582624387923973218218471944105543388891504854510124212068052345892156693940041105372089364962459373059931536950282300140323248612632634300005230477316208112419217814571308066112731139487554281015535222110155471432791559729186719486350649227504294503731959620866272090483938464217220464603401963047401995991773011193817646037223040867061184120415175170585829288127703198957484256825468595560460332596622004850430391959652144030975677779232436322494588552130066339815923340062458073355829030473955606579891677791230987194261898767898016091373447077322425888184315872216611805355365844672222364774281339941053219120403845087425499216571445845001536961709821706829626970527513788090030537029644528875451834276611811612984615093827603827151742230265425980770978027349847764730732280659162841876543113224394216645684920898233684941108217232867634542335003027892178366441740606949859637923108891011701364298970702036603685167807260389544914612913968476860051383390215847317904254468657793423638937579273601255969268518253973777125671970637901861444472050488390867018429499639792525197530951354596051135049566194434736056538960366898671168544510287647961271413746829194820028218039731633703080835647924008135018322053588171239927081463839147663218711568357391199736115784963062932817597830901477117989517508132799574942662862567355720459804401387476793831846399157823399785133153108871768133891838718360872819497639771964645654479019948501345700863527062079719438158825047721963816450006285941852905684581419890206341008082761273092935849388863099255692244907970051635153758767127296835377389549347503147216545239565369226094680870791960058573829016682838643693632926571940185771335184679713621743899007421583913084683200489283360203463804823729470813971102407565303784468790929427445129271118226954871499693569040055453880750911548928504026261875435379536341491238028637693764252267970882930512572761029857402740984509647407124075241975194635012770671234574088829119420878551951256572364456752779585767102610170058725420091587312083595971056977725029690664645410175338546655604294890879774308133007975981977514693290096283008710701698304133058163320673777366040176477323563642395800174312695458236112559381626372954832274773707377252917583171792449060142258263140094069228220875652976239476686550157241888541067684216833142444983942377955764477186457180777104464230503235499659147515682955872715706853751232778597905369672970787854854560110431570385040471975539390094668415238606368907377281891290943762632261767958456037093338842705451685024294060515933668431077509071781689648591370135341328606617406647250814434162936510353700022279713478046847562645557997218990272244640953318776956474617452382272162346609451924735752483914286372117076708000127257303972980800859285433736045524900027814419449126808540638656105383836625542979143739934649375310565134310654963465283300965531567554487996529565236193430275396809475695844916652504637126128580393732913947033085288335069357899466483973618588978198876387790025916304125555586239881635167191103400365202492098164645028535434772698919371536364531831264055497970026922791169841354013292997561411022637625420006656488655259519538886989669150307541234887780357458707648830749041037826541614835633512293932278537741267511894623952150087217379375038559902048515480554764989406198689083758473751031935708327310083201035088931963288722596618144061810999023832578425198064736879035470928665508930689709791012161201117734629833601982981016036596949157994681555133521786174113084229308376002025641070088870121302396781085643346843423244922715963738731950211035909675388386332102912986632088482268946183657091973939987358506872637396555543326808050064329715826699484517103890562042453161781978447591375250204341517493144706877346830032640024680251716814139659793339900620323154561994951708266222534445247535129250797618725963133754559267547647115527425589918051758328205494372077523418239128551417717075396831126823228841150680615525544515526095981755457999360967287067984400001729848806882368974409164735576354543555333489194847502235832135840125916595020855117133236553353908544797338138757736243237753162578908022412555710220791894526235885470633681237232051728558013881194048942098228693526376548071412778283272248309168199560889363841173884509945611391344201874031244542292793716350579992947506346681989712919407891940549429261439750775801193824333854668283806493599770608448712475816515273161963798029650326367565120803054245347742481839443856927881055099591100247040088121099212722624261698133746970590872930888531353364012257704648112632877597043685357089928688580328275899788243920372537937632550876881431443988581228628551433136527397027350403728718445697461824697249037352978640657501010695882269795027223195020466715123250620789465462012383961138233704499565393004398165974976394824956383151618820511038152954966106803464103038475709007616719885861661528283770829641245292162444446146677174406506929506135663303427429741715679028635852889961224209602414809550446378232151921615525562672696055635912754456628108619072581584889248840212304228384953130400697492550633083610285387655747932407241008991303425693538831260573229067444449674488563765346701093845887044271120340330839774360737247190022321357817476632194181614805380349495937538932020430793337168502527394607140230054362099271055711112349477788449126117359755302048486206024171307156835663801462542828879308561116534559187867069726896270344058021937068839776889828144643637754719573893808542904090961700140319165198818629183046207692095163917718425985031674077135744765129599354418258639195763552605213859413825800396176464645199007913778724050576362726056260689248460573147228225161578273610750577430475270396171961442597293187964141105095631184235901526571706435336478140374700880022954644495813553168187195045287065121668628755171790899766441196452902588139899950231123506979049954301126195919921049003394003721664855466116050192645744651030960016686203818888269019742171660254106727969521931481147309735503185056678725929949106023063348623869312796419709367998387942706708001940137833606254263321372055484741235721892975893914163300044266078373048703444589020039417827556000169806980955614938454210086235509728041237790016146042041376890266324764176466337568286882274527838394253682333896163011391974286920507327020064245853985793684533127855887488910934506842277843912241630452423225688895405440626216800575631013467511271636660501506857298381248812856248321764149018370829789004040946266661629243323109508774325412497610888842184750792913010682994810648516204749670104378017276920189579584737491599886691329871967854156621507982300260198847482029189757662586458305744384814014353671027952510181059462679456993174080662564237494095208895286652792397150777534503804765396319135589594193980688595048793477902388875535313974914176223793135389596466530550502375157995935871835215117247502580148256521037349336007242667907053624222330678288453611289227799442710537401948483288681831321594414922817415341805967232877680882872701928015330228769835598857166314730814858429328093564351290764056219840638612647130836719845698013874895777039070053353055020533410112333876490297774739343236148173506657382578563658495164088975501524492727215623237793843411441478324641484245916431367080895076672465260411405369785559091699739635308623449290426598934447733557454678290254971405126918957645179914534917261608913314688196711225690937157383837984794537443023084271554747760949095932051224007138303257096006616171416085996484839352086881932449556399384630961620751233069853053498354202739736183738638851713985020342858420687137790834850338670252739319862408559975775316100390636933861874114358992143574516146825788740301177424981697030044921522402723262477953436120110381853415933619631466461528964932137053826871272782097324001789635076594767847543393237355517039820618637774083754899944607438363993885845283135139480731251059292700650941580368125761092232731084137961583989225125429324778363144806416569871798664218639692387492913000104676463794048680823911468970670164355907592889227146322848759393498307019274249103059516825963839116920833169227106360868293990747448817998745651194763312216687807226710251801293505204323437221242620529472775636497267809028307103445660898285282760681327741112329440906398312490407872428759611436218835773639621887872018018010937880648123573348933259540791888953149908829344103572098673484375634557730076616145542427176581873535373232648038185446302640493073584896930980912173934491075924612458332352746597577126507194144361165242785260711983726633288704897622205425114304154270314422205371094180353750457980263422875899348399451628584977749920460966526447096845035968410759202145848131605735521855559508714663548946459796696699948288805514602518524995643285689911148523007666979991381046010644674855770222786922241960808887251953156343922078149495467886523734308569703096172181309886805764962212512318404744666478262848218705009054380834208906846720790906946684749681530208253494748208871977033516443329710916617626503447448095498111153998845539757043948894963479257945814496185678677827311157221519369113939097626630765701704390588179570024505482504188407080532906997143616692764648249285233841964485531411113796130332447215419904139712095777066529660023762013898506344557009898447789942461109294805961170667847801407956880422720695917356734309747847337677072437313751819013951654348990229577341263966667752209444683085807770191161937825426917691222997141069774171460161439135230356434363502764047734475571510826667645961372483863480997418737111358050827975133596570243360931287254886842712191072047251377873071047896639423717615785542731103378806087594771494417896551996930508618130172636677269888018814311023317057641439882479659406280177400249514249194580902606235192888394402286297612949658882334064961833376042485066427645869953854185978857222239733628664937124509089848345867163570664891039911465288958406859686159812483971635501231577241913155996283020496156790805649071257431122126294615927584638825164378711307269289012031553405647970419447853934148333489069667952866760409095067358538038900867449207335473873812992686161408142626839489391880869799353321789662992704471100130213297391801879616216704165201474701545836171553263120110074048259717868606637400911860290114672480431144254210693893820264020103815225762539550288385198313239754125950777887383894213728636124163054788826452414621348383633963792351381148342046231820499869853327809561502854960186052667385003877359159411535343274216962055974262648642537406530540401714112250067918530434357772906694174978286709963045006173410908967934801136725059972699540205114260822307869746327439193769439812918297217500158755179969507052067998799069164435949758586017711903467284600525168421263743259497189238474536088422950777927734887427540831147392312717852431093832317192217546430837536743200529254013507797833912554476797106639627704712040772032835353999129214346327345892600556006921521886410629498466607975584079379793674055645469684625878382793631815127992593834634143405099104438512071757336232649171439396157590463514811089181832119683971226603529703866235445629334994930260374738968609695349756200934665767023467006465607312987807784809104273217934890854673106152621738698714555932057953882745363892130155395643684139594915420211938001992050768568391977414064475261868658130989417231823479719170775127535255533315340792936834263826376517946346260956981587132014087236581922931561121627088071040112702754622880073185525197048740211246078516503824564199950689897120026955607755029389726222530236778022856766218064841622426134001988135851455089616444896051320746067399359751554048150955479301729669679175665155134467635515883293512312576895554021457283617429380503578953611236365960766911325081997748952166546521593955514332044697595455418699396112617816946411395235688971443784533406875933638737762478475789069158428265071196765186971917508328059922010625614554446002597672737883183685321078606101574282158628182668126105632481828186763973598237975257286796136204211466854580501530611907483552992756710181312508980637684511910871745694235421487910352072129819112789744814788666058036908980439805675799021291608541271300035363470962884325319258416876935993645982681260992426324693139193992793600363324962963097540306823668593116744467455501994556247424826335274765805539094487412074294334353565969776008984668524571885078654675251307272191314362203116896146340565494653655985779357392356320183382756181028022755733746232505685463277573259717504405097723473382002954850543614180926581313688610848161036159434782453945508779818213906296971428146708347368377066414734600809570919285239590890621219910786837167104528141497242611057669522416986631508322854619006395316870954204801459326159977073329711508679785656197680802885917814115838761957058349446784839077899441602065477726184213513589044709074607078088732280714945267962045194026940296553822918396298050617389053957050989321306580306999683662368636320931425506509267426182719657168844488083684024266541158395936085465684493841637939369684825053496657784700153886227093156422619848138201569904310342071475416644258189785102683228890324125427770980153003477359570739579669639669755008337662616775109330074575118475067469149682240005557062524442603694824482108057282564236564268855225192970504093432956395441519939748301127935577421477506029656348906023500897040087493629692817050942959154010449574762853129098529494428752806265661667651959619851156133888273267644207878683417681171659591075584599130332391600601271809515568898036615818831519925420371955470778167322629878554370572787984391591443430597083490325372196323514600786197543527909728499175775072841539130756164296683320434745819620400574544113358352268658320627198463949534934239873800415392351842680242858279603087923466807601699732463911962227687608004843784745276848083710402054309197030252852862520866076029726830417053848450882011477172587746200240845964913969539279885626747238807625140616170755795575071171195380438511060997695969526130659706883636025392255518604588061421065336592412342961290056908092146538735210100565356756237723732509959416765152264076629901502696357328762205566780020964980201270263671379569036930318395750053852550928622126318184866912971072048333945071790535108037603400833586326693281078329184164300053099018401205143417445753230192708085401448379371286414398118788239496968297908223769408096479942065065873355463062611450835041485916964533615676521929729013905527996708005881561860873446606019679837813037182119505102215424074636153693303033344058369187294133928070173168896076954599944683401406323817118611732377788578595755225796829866830883234117078094657055816936151991245080554696743338679153769379625567957076043798383595003355384445508421601952163700250849413944383583255684086615449917052732009256903588579947403047161165210662698191817987337353604828055351616387433906433189814548914322840397406556126751137722348632963909962797998973951283155237261131138280832911023669966543878151950376779497838129826233144105768248388695261414662555271333975971941328926708535251169689403942976344987572545175919851054850380765903224756192212984951308660956883836603916625963237806078140870525588561352590912861087982659791571701547330165054376788377461015424762002523010969690001557740360029810013949481922380748592174983375347864071086959710412911473156776487403055682373175197360165010112700495674065989347216996453860979194524058080485494315765386226073251931411824208889248875063956665539020311538587475156381556740691267402188027627093014354997374138000281280937539399375815950730254941656520556564864839565823821833359288283366784760081295407703759227288005987987488341089974271860477935667924290338244871650611910262222428470174685939897434235316080855903994912642186430022350979307628511059522227613299368674628130785758209880473235031077899285981201888288424402187478927563663260417153429945800815922829462538292471926393658882914232390553003346996582818819772949754903038752679052232025289580504408556886155447986946555401133173910868823525539420986493273996198043267619262578440334778164783690827560647687872320390753848559514975904528625187384122687974091529259676957916080819249215500450727514166690849950531837819065511378185000366431256316657509256460443431257469720588363924688162606365514855974790729878736926096112307156290644389161949189249377794595914766957947252328797399635885628074989510533882765100186375185251718774821665564690119249326577194960793806406201480598613885898456107347313909663884092631318893036470023652413162596665643567250303238583383919015537239303810553074249915180893743054145405842402258562670555997832829347425703468973078749984311777202849304994187659567180579351543081563685811048019666172067422997740998946910003450890370342522696158874520371660937945683613897224249366273745528483169345174173065978028959844145838804015799715209479153904902047657848036733946437021939620645533618270440962947003268058686536326516346422107367301199072030661838349342207413850192094927436503664038362990536705418972542224974148878976730319849334654237254691674009538742732830918572078142749849739931025939072225756537793470854653537557712268732487127056470782440758282194799097094386023394768253672365083872240048298185604302569105146140995899494806363906500459542301845400699713653586749433776944771593184686029769018059807514068287038878443160093246032111735888598779874391100318038546080052419231440605648822738539642663423078653941087316580448348081348623281321075178349255808241801918069749820051964985580610449770219243401826416317736157016934687019652392953320523234660175829406201342548219911978801471075026675723532520897969743810746461776364069965178014680829870731273579955278013859844229395081373810306975857992480600323106233274441794618961525620486342717056353500966684734173170646679475608059667517858650646555913390758413219557517804313346403619852714239976811520362985636488301201275120430631210373284218370674668234934938578713942735864134296591987999775338711805557874226862738573971024684176269527454209280808608956919101960702361700837314233679960284347888871539534348306209035665256946741202082476554646867335591536605303551897520415785634392035006779726739222572770521919911731973531536386356496029367681977945576614905460571645354893508416273823353275181608241684600395813643182020803028514253114337495940491346331801122461128063640492148597525973346450205770210407081632942131179107596678812866079553173735051296860016344737044013101298916054785682477958532305610178258364971503666715125931200855783160138700161681640123880825528631341751759236337733975311062927763100778935372464752674004617333302925107484383783950331733434537689804420633151627497739789584087611168970873656930998040051497136302086533627996894240541081431639199618287212316095886647443384293502777566766739711368502799285784273319177813328995444389074687208774128234679238826149729183395531690823741974273505527441860109996703084736335114947430526662602758253842195720829556928618330941771367357684716808712746555661332094972686855554816298649804235628041265947801248127162810491855255412920664811779290450014315702258072405870194661436601318108087319123491231608782234241149693591029015386198725228784535692446661908720459266756859059026577350476080235305636267926516853100265938882536818850393259500912449323689780239016738470848696277804050607410196915176789469346563991641867338077580215738689577263197882347147877469452714803135365434664243122005506251400492997809427968493888543809097374558718080315659593931777585801315177904496859648200008271301697030154296529757048362626533331708372730710284552239287486754161807768230240556425740536547722413791771636459952348797210563570523821869379557541647054395028764593861002744430304302435172075626239737194540338169504400394161505142707362123787032840691301462701790910025447854603966792718736559166281807608435303032450083282906598330786806295139611633296789158251315682801472195360975916839751908316382346201753414912020600980400882763756304614002771826407819622644011591289973225621710727034839078163164065999256074429243199445780252883846707826621037317773455240253037948521112123880688031489890862098704444504561901214798102919368289402570393987226974382752117648112014031190077950470601285260636639683702200218690307258032847381474279778151435471991233056375564949363456789191208387324981107693023206155365898256500461020326508162867059914196399129451397020513352002044608786918693208115353090542287678392536679452648390948630173089133535758533237558036752273260267719471993069511457404521947458113207083387522410893926232445462217303643768116703316097574620645001977104036078794200204549292468237338246428449189614638976772044730079086203711771971175134976346201224182577103010768858851427369513614734255579520957071085002410516457544242081500982562668357247947796359048336962091702214913950548459477882662377753478457355598771263912490850216232002504042807115054129134237221197080243034433154829311724959631290564554423759243502471136267030486504854242330182642981625828840097214323550639024800775508277549941919227698690528505590121124102493536164356721807147199349109169793989026655396149100278265295333279731871815411712005379299967502284542802696905915745444750574455052066418793200324556505478978769393002764706841105396909050657989523024374970945066760553604809616457289824693987302678219673416957568173018306223194060058082292687624738613040977823751828790733712975240995314476584355469278197940388635332374761525427616187584375687811194884279253441889903732044213191560578596166609881745186813858289096860202267061929060373149564764996447729357087137539527040333086959395528426355753524365429737925127440526046610961615956828402228441966521048389726117176213513549059858808084065303855926311300356443091818754825600217367180298891984716457707943421050664895289708028938914822465252013439385461985271646843561807631912213082092068199617576961302062135393066034973088335458904117590356926050834586564308684244638596230231712521968137517598251582824271880056727416572839873086215462188435446805835832807416216481315375590198602744763452155189397569430527952949139115256930651926407204016177228559576177365146549204802065731661624391477759708475414766830972440509844769212077192840708080869464101576290115334620064055002163252553806359500192762250010784961809979029883297021993005335335697018472136644980492832841515189630388290367298285355082738131421962250644475800825406952898259406769948072433089382354810883824291164773325662256425819693565930706035350120182861921268681303395243987472116415284181893662823428251856226599439684059300107566426986968831031831702734294577243142551525635396770026984790494130165817842289794095503021903028278668548524869645917624091308953789032044923571871835142601504878489749086984058663669498108910059897584510180699751522606746369443350778333861220833373085204121645473559781873943035497167061174954990851200000669865772362253220314186162154287202906467721314369915322364132722380131407366086488627506565881068621310906743856352571583858205115027593647404606264557330954451109195879775528300663608386058102834643100851632171258551961971944255109540450192320034661075441993450144193656603920650129730310243310266564107054808709547710775135697735396392844143605201663457553136244555311369550087946766252672853667134561719122965301052980894290639359155182295052448292311599545605382062939558404534863063194040415270961017901545904151762080491210430620880654405061798801531071967960238459465715309754314563676831876512429888690046469850167119669922199240928072543645928138716917345847124475336704650779175641554166851565999581142899251594063107875978882811239986137384787062056932326036927328696788054884741122085052121236936696207913002288465945672619483296338937970788653106283928259479758158169278473903790367972727083075207099207397968511996758810873620998192906386720669919663397946710714253837666067065528025652414138933262428667257420427457214308202205279346182222780256653326650964380693744280536895887784034243200013288766924502607503236801281775559424008782664534984050140583744531345479026819290092757428541978425909437534433357042678866188278066270309848683483637083234428902381865085158840278243014355319967318210616654489571232378797260124550119064894655149403319290840986341560299872805986853820908036736017516783410165593968273927587866792503037020470040596227587201982422928663715532381652888228425381108425081364464469228952011348565831558358368819604572958293011366568936574258130094241783932612689629663906528215456842846283968600163315425428955102606020471749148245365501674488354965458661278526877516261209980709069030617762445514071862159463105224927331917504713352449496621312939242393466807051575296528503607186735696229497010959840606995286378214273225282834820624536828247969588696258195480976787513491717753297811386409698217900457224581916433882809364142486490132981753205560584144012526819218846309427947963980396304151348621277839803168376677207543902093663557652221960700274048137231419731312844214908238371164199927840000648857968215334252281979778731188044808366749075145877510514843336082297061542180929583421276453175230120799753127558917790879854064497711507601136083552685420000895802385405519136885290908579194165739455240423730979499469523059324834422454119172188564293136393272757793236656653812984618842544803691617797754848009435230355520509606542952609230605620418409452050911066112013943530083588056935563675253649171067754346471023744916211589408808055982007504615464896447830655244795901958926346600897538303828398297387808289057529034602295941301252769388922654226299156262190152257843053144593623956012991065048079159772459776030603048253802093667315015331637586710303936483311794904414032512311782515611359296529124437983021390676183609035115742120335155553157075907480870660670518783673333884083424969646115506980127547058543153992280783959267868513094255577396950553920648755847987844768636207001588677802475321224773755259386058828001014112406595418274952454123727733565339492069530195258387897904334819873885322328881299986077543997351813339917605177793565452172843073246380945742564175503446851637427615385607452102354587628617369165076719909510060079479433381699753875720902747101462089168483022735036784306793457765427841039166140718691841903489728808354880273717516909807538361054652316406622222336099239491432607055430425401225228100123800301438606567263601360109685621303478828237399494636769823988313928345173948682574608135169293489088897637932272725981655105945550437895802846222496697448256891930556476885386786735030915403322848507076832781855679893263923437605004342757095454066445362641398277508989327897383270402268787942251470290255219134973750004574125810178999681044397405398489751713380276688878388006938367884119576122101638477775122878614503406411131330211556873280807760432956265545446732058135082153050311150573416042761785327639494733003841775197294675536164787780820694811994106248786792425585989347613594147603229984476126693838287985861240665815987975453819306206769397920783167232006732393644193929331857258353885276793590639479896180497635545340279820761928417274843864521376138199272669187143806251896450451525607494055383241704859756181967828205782102722037705819770044757075732567353645368037792606694600058388865826896883876802719493043084139046884855917767958147851000701273247132530117185302857444219293089615740093003718189277007340473884370774776680376996722903118133093912077696949665314733913176367147658676490936671306553837645276163140991920331779374233687112691500147178872976741626330250509551492924137314034978217279978006724275460779248832799224386432954599523458496620173512345953095309855789509757362467067224421629632657182454060434803200307982426200509459393585853216608834279166445493703904778418778702494999412593516459419279226063131576140960072903507250292634269208100429166568164392485116085202339970188197336844745938719516636203895408082643063762177960979589512148085983387942948737495648122337526656329778885491167342085701378602988482910165904536029831525340689953766200348185634662625112684909621964197619364814333142185339706889459013932125235115749935170789674369931690380850014833349464471711200326090806190276899075605845025155618346198085806950053445087854142773078075499607730800250872235336433895806593966685608898255523460299602316160997665044576668372589320106393094374754061962662317135289200383512203248689720007867337456571126389902914464926476516849784273952421015687797462620338884132368745141827426664910657039855282762130506860378654990428115548638180526488753903875188341531557467011147257904082663801795212366350984605989194973791127919318133366390482569998587381141931607056345040841870083429755444793967868735752803136689150104411961745363960801996681086748610184145786192042334767199638049806592977818205039425006023941605905670081539750402862095032997942554152801298462749638463762753786485044966119725505496816551928020187485250599729360817112322658046637173018592570623129620170203121050039174175541946163847514429322886319272945182871885950452805459618400806998677095909793496515523894862381915223114732259098820761530365490314290741888742115891227574091143664266958966841207409261956356507881305121503450881877221726247077549140297981648124608016480362299187514182867552348055568963789615057307328591534496982858311393686614787229068737994243520241210093178130224052258022679163852989942498431138758917273831469717936557489800044770360324483950044423209551416434082950865345999244085132084985905219765610787002946568255495322933973858279715744824632179076596297448967104299575503400736381205596214718063316618155664949420818316114426055086789537011984974062511557667670391652068939037349911695204797815001239051165241008615542690497364830639907984485198576743514543503990389570258989717240954876785524825188094648663200255158286264554682616734798870834059530650969720415496861248105724435134414458010562675260523786528665906042272447976903833478950351939109389345625906174278622950142892239604348312130676634757697005619679319685456449100451494954104183126591233298462935709362526671483215245984907479401442023680538725084088985046985862621546834133250011858587357629139429457851323207853904580197173341288341280540459931762600221535370754667779071980912192819278315501974950032642754584411875590726209691358569507821448247495320069889580500206196817138762467960710860967214723421011948240548621490169633481897097339457839821277068215164694064162545419337720328379771532995550212334587082208115195188973516692681979185166145913442556443914394233801854622653233378360262813721626262207581395712816125634231529548948520374192736209640078086753441790876574382245990154041715197078941638563889451164247161913635605002931793235115694682120860577746617043400310563639433563104062330157090093412985658905613403799871175986916765574365590763465447017844597539727618996048640967178194102494293540766447566819666879541649946245604316307318362297317006282379785505307635386258400358196462172890941749313059719410585155310147034450802675999895207714924775698540265699263977721755055195223922087659381066412500295643878894971639322378690295641567233192160587020638270315373514396204798927016125339134576364677685261645659131929448849425584389694197080355919292133504003214881224129245600264556065710306844793868206511754620653032204507308062336980623673250910626374185786541331929810054167315332504263329394700040922357840143998983346837126062905338424370608967313522190805456072668967560229110697774358703155336895650903815112638818751667482198136139537141185861389208673477435985953972360718031177297662265111715289512121323501215572605913359760375542965787870861704639209050285190575497210903733854332335359978740889006710468422220676067549033264884725677376100259280488293693464291585615680082413061298505735428023535067826634212172538734571966723897096377877471288822130563516004927452048249910479016921770502347485899121296810778044723112917297396809608614974443722383907777823664095977497212917853684626400144476073801666285627818067527112374852181657904847154098292658136039105432135849161035556060861373807028512107829994808708222453573458750641799911878594657189045049684898455204795628721565539864530398189402753063744115843618383574954181047616462796575586572139861606830672269833789042106322353899540051931567872883705471304060649569727681470943788046654613429022754425493758418494682948875666075949715394445511914298794233204382112744214521114161267918627574068741154085891894176900698707298769695389486909070765721842888249533290017396977075807732014079647113740130756452265212052480566035639054143081351529966684597485259228334672876320195550274812784726929807311474963020928640441174508506538547035446181977938043055655366027380143516134180282686345009739483446564071211619037154204802054577541914157168072382762991380557561849503071540237602743125617270402072055651975268245112883268758344688128787756695561061627927353508661759092830407988858202501049086054340722018011253656434411203666830918422733276725430907224387665066999221606821601733520623847929946006699033055874776633343886827090079748626369382395802272289441200257177774559528901887049313953037811800798925648580825465417008901234293501768504008314981477684035236715763841144264983805663897708536986352204686126675523499750863343583559746115585716514519152429629335096141748149307483341392963891531827613955075536956204361967266191305685737714404514298011647095122948907550632091701776655534042319381755267716035215047628639249005790311647808360610606681153848204461828959257101331980438551756377850059462951124704861750477512455790642321189603172755939753090163793207397626742500072672877964667496900658054417275174257538549779352286741443497668182576744870989803963230498775662088805249512184594151941652852531554289700986265601794415579659478875828975875951084459358277987238983587630808313243878688297354004884009475100611658942175610863304939110115442991067476184099121566060987539109672376591770234367639785067613855459811649774037259331693351110110920845836651673988732789467939529485314804283120384550736471809952043473336438028074364905360943375052907116423577149794470917078931340573465522132997970252746230961271504649565600825597899064072291986407720245240005155465351915138372074591348549323078333067087414970750872605793994159768788570787883778336655943178509276275355740019811485254043876441255815433982550954093882679287891446928743829585757833587612208686783143133549261529871090124907403710797262651994495908054671152819337326714850532044859929428405466648803404752889357770171830763212511449445297607745166639920434428967568928313758049409676958682504378459827340799366918018500521492323129355461469246552516172779547066691237894245275066251724582441487407114278661936313132470122139294735065287331297878223409088529503680930463919777620629394244129875720520511492701420885920681389778365868863093094283161132465010790988943170398523590793144157640166531931809670088262465809714957444676822957284598631257111979118482270028439602234869886732818365883653296241161143074004813606036518409327284151958289152732910867076936953311458138161920635240692141035422461575309848956487462395224201548817023365869091763939894052712085875896774779706889800951986980094452562367097053214844539714756524355686502743460218457831964399741070997376877490433791734792173098168523222677548917976318117738357165207692320614058095044031236537312643930888091033085991457226990187976935295880678602634427979805289297473302345713717446605453188029730674694182860714832700111352833351940842317747654168859513918984923974042869791895119710721339292487717021248341297197114045748526329707697586028762656099101320278604617951462318393955713351018168122038096816725522244817779668982702436148600761829880705911100688218467819124709204438508846382779379029244687106805558006424868670738947584695763537016101972869983797044562760848484567027647934317517679557803381745069831527188989725981070691727999803456941751985555390888995901372601408166914401286918368804530677675375451799389558118425572688433010579429644907255280117967776407032359638531857901088131964719514277323387468427655625844004942944000374802589266661107364877723066216252255712709783751450896975082814057223461779017961074091082551244923370987392541320618090433122097164668686972787449163848839694633408499126126749789386583947949602415909840894219259237634180865398979763583032000377740253980272060793514690152526094997963617019177875194228125538244167567711959555976309778290212801859869895164505285931868120887661370945107986643843517867174162883808629585484698023955351109095029859173438381814029424390036650515033154254650462945935340928253971380317761643275339892554887088510442721332312385858845004300388591542587540017465724409888279186150182845943411931704438863508489678536887666631517330278931613915161560109378453008674252073831215744343738711145895158820599213760727094653026916789024128434843754214903931328651413526733489518569419663977478856218799745588437639996741029304006255135033121127449381305980189967587873778081095365346772349315767101491185473413096963527924437035741418499878736063892673525740317643970127301600398797085918177953945620885923678726369353348484778639537951172625277712228053586580172059929114375703610331072820421905050019675477457081433118504143820654238933826513880905857769332943629267925258481486142994757197215437546769515365363910189913221738372365943802445064027380563205214489315614406807096518828388146398700322243342700848191281861875101595140830486138562345927800564466718093927508782725034697598100921223817406607376791722626410028442443588353489426829003953045315673512592831830426860666113708441870287852879939066688087077594279671145115623527513688385113963250321154413403692321426253432478000229957146317105648260337445726895443967527058983084678083157318398263001470653204018449245374501016610919376942985947656283662202572411816479737532852823467029174853691633843276692329343932405189720382650565563704917161068832206086128517095895867580660098133305612492536491165134705684139722090887539682236938624161277674137945925873918951819585758012216911406665094919316255010033026567601663862542535997065799553869373674736423921403480842389520499821762054185610695441613016386084085789939330942018889156301254682640416968143938577827274002590877746111409356968689648170643635542687060119323889159450361515749249342075235719271101378096459570527951958610449054258314618516103933560607812039244863545985238557514015624676147201390634635187105448870526441719097752952134467835250727687050049323302051984089395353461987003229400990071080327161023176171719993751743080500654699856282003317671290406700727778450627022227150968729033465514308563836827542616789732181393450916855060353395498507888095501172445049362821197400763543847663975644997344540703955824813709457767822978942038504828871082851624630237956132099160407140740286670595017914951231599368344039579074567560551291934408967263018984960545845473521674969022714334163970652163756523466892652999865507098503660979012732247808617912298807047751811425928109068827822318734241646993956798785136283464773795059447813635752773021445899965613522548981542952353713139093242283016765027730589655829222510997195051515862169639016557754683602799872167017862779614771529108879936092717608717635427440760884369559654252318675632141330428832743321631410317789612906293816070191811434825735483517825478776201506779950951400080428968062680006854350881567724351178310381321310050748064744829545540487366399249188850056486394575705308202034485085270047839682525044335770425334465242198242780130909846258721269020290231716119158448675843244468143666091401534165495335406442559308919826967933794674789566043872668304574059502672745912393218975216136837590105034010032894139843805662980246237664898780020958890728166182717277575679338180970998768481861634234458423084073473177450823032350051580286244320773540180168153306448078820488633662463617901583921041019132784538833924590001806967498378714485286335690945302877100001272243985716808457256720272434258452641088107083480185927616455608342788915894748337180233104691386109763013169312007040156025926114792245228622809139254915480642500467048942112628644629154640927253851729241167373245532672158372869437287152733786480923515473518792768364496098441255402566223627845744762616687061809102821114559158776931976315064887601026349150598008850770075589211500829153717646075376673949283195372303214003097149296793663133187229689252256537053684654292453515509753529280223067905992592892547873848747552936044580217739869716310993425512163280798718739372456078389750590530063476695595959776639723178441814536858559880487608300879699749488076834412720259778333957831730967052909554528413482812551198275537759997619258709154457322271514107849735623154740032154855767215418764597561577949497231783271270101266673944081722501100037962429568249699956046231032090048500587856631736707121892382001282787390176945979183481825398125472222047688839235057434148254950268400258301595060735723588917926467158072337999901989994101473900985064507640527710056439955252251472814855958861813813779532156130185243140274544554941824043627696926093934494601099481569220352176414638428811836725216246014545106650497735003222171840484436009960305651296880825174116580185814603281744541842916763704733158009754508888647665262676128301467038037992140869329186765788516407525618612646537079212291301164881880579861865890871320186073461078660488669219356311992219651668463515903237884572402492597992141958934912624145429839053994975617813499579344178759322190071336125099738525577332424396871247953124494991055247139189966023779096105057501461132226601979936471720628067239836643851652477134608624518958133233476445218018836584449324270227113539040987803937777265691377204564662417969434650616505675587552856956692123297182873155591597769886540311064761164378682404363285413547130614144334016887281404136844562282396043979806579962529912703536011464941297009431995079747603367176116050876047396350941025562247616580164554506495992174484686901880972583267052828941961331774555587863690207959459810905166598566415281299530177514979396810205859643908805839562881822645496970250305397550577176054481391343189626847462819105084907479860492253767646962188573883436624909388339409930205301489180618049503038103743749756215854053523764751710039820643482148986755655043186969428591675346338615727095008241828167471194672475857661873119078668102840421419496374287661855718302301371858424662425494904486268573716388027921059355760449546550822201151351446267826162502151991841881497881420185311043008437567398408567876411655302630417712656510634411262470430822548713540252915403341060009314198864934780345241684894689322191316838245045747220669137611787884210709668016595473099122492570783663936083854132111172583177247811675943304981624354853037484111438002777278480066744333483044120800001385433849319876559102799236925503823142070712358982600543465310129723169548333509995891430103531639265271249536957285452663742027574924224895113576246218540330579512460727868712171222987589947929883131440295887434978675755010384368182852992755375113108738578808632822745453273085496725101981551150809578382922272160773730470977645193249842935774790194164982183182841524157943192443993865951232350461423163247922573244507366820374779547235889287444921600346735191937569595681933083420346761562516483320617999263345035619633278997154348660438001863666336710642919661706858876468146928928924534012743586360933980184777429685520027678419716841070406885169075742032486321001167354937320376779000782170540428106553880792948974474138570372924893282430637033547944961708837501232235129955603775759516794302662468718118577090587679649805473543520382721912098923988255084243953672787888773402861435512158836968541363590719155279160938037209546424067535836750097969055466212749641991500054375835605482460998161225900425552816807904645963980955765648242355946512406980875218968413290622786580563293446930883808718259559850414773647684352550875716722466165220373205427017373374041862703682578505990407908502609716260320448266589353161955300405776354754508854936278894103076381317088086215899843592886424976551799008008421699530541837149422919699705137593956306454923075591141821413556107146973664029400135173819313477951821522730121652311146975763583790369848471687712854385876247947975775159715848156371084189276342087517597336696970113957751169506627828054430379589736672938206207879566799893311917692598336948191254781922497572694320225947567437897023230432298102479291598107351065532897077273462320809452098874147485162178518720987440646452721673775319231415377233249616748489229034377641311215335427075470147278884186330786799342231748101581252178269243710562424148664594196852491175121085807527899793581132121292669154613299950365355132824825269645622302168096098476852524239132692784230645920644803532196994495505142807354600681636146462497979224727363032615431559560990470900975884627342422584175640067132386612767934588395767501193399909514856417136580862548165618090983728262511853751878307515861881798476045575320938057677907110626591068562754565269053391460050750422010493040195318548452063105817501516609292128541692338548659022194711377315748921905686701774520258850011586205280372751765128342273762198133263039978021291536453079502228006512056074166525291731282972159272161336509239141166594804395711999593935768997628958209485956688045049751438871313269271030949846904469540756734155972380629653953787105814166651183059085063751840478118055043256086588811259302518407106707325870439811361287928121636557735988095778571313848670163200323186679757947685301331635259485897043765335158665102300527211530481544541038024372145195795786294965013386713633003954378795125877435093548848217068326802341211851947589791392438664202193874699231471758112327944901290766676435591420431131815196628772503112996924066150536916425034422318191474791446610420435019535691371530368108841306800579999756777181249085366929897133336284867259180808485028295308950604382793071461508564890157841842990132941986705840990028230604821870128147698926163922570256114041029363361434431958611293513743431647284657215009960627870534851984373375800669174953727490752676140903812704041706948142497255765811981288340885904124172830275563696413772173664014138768764010054658496982128214870187966320204653062439908424914811917287749240901654099526080219618175427111086252764954482703010865893670471179646441664601452296779433881091671107392744587963646548739809813976744106107195661233118696591203088397301439073202446791843524238430446989248779836052410636874158571925053628317231565617928731258508893619543543685006851696387331243072975812118313297834853617773787094139560207788563680711454352969080480237345821160112562031929668146040615272249145790017579900546145330128028573945636695086110448840738404129465342787602803569991309665081538296453502847543316440423381467746584953800541888499318260037535044363940988083599511736959018652242232192791583470439205314004714513886976203241367773919551100175737888416861783929419056558120299384425409305461880994478084732363367520531949273021970580588397391832128628748969737512049155208980477180278750611664953720072016437947193938022675089465544521593696609649870665199750427612176345528236427935618031281654108192318793706762090496689633051488362855770405180567588348519021365285101685192628408828574460886378446150579592808972359232979901451990863410799837764214687635781671557912504865280387110749602000050134264307799849906576794120382005497771260352825382126898103020824496067037993441617188723455997851776456749046517911485035220577650834382402919420248594127922653628353521527583281870113449161505541561387157627149549705901248826847866577468312875422124547571772056508241213901897100425828662210916342487652870323954522197678738474709487394816834201618841233229713628516408251076391774559106571964097129131368632077821995824119468130395043953851321740876939301443491773607608972965319184751543394355581583640588849569103335964787796816902192801088646529364270609252537354573246777680473085465352816699311573286637613099549141654283590378490134654679883534195608316032227612879104944727343929834944919614433319652808216269021866322696132115747473517920704253768616484595093473210607484814649607245600602270301674074592913094367208742022072548726407676976865663636306201042480268926564236752349085505684927970748027614494467125960626658500932306365915597169398664105792246984339489312646357426130394269631730126146580547726014038748225141499133041963679360667740518875249078606850948938744067160582869120182765653537754194910755172934637086988835594400506301504589719187027401233743194138966716723433389133920512703372024943680123591403553443117564033984622798756152049466743532505597673734091208306298014753016132909050361950903662360034498919486521798530250992230205990755668954283015357196931829477479505011767062202976410948136175807713645600777876644579765405652378912388160253306582399984955350660748606675173954671290756166797982122915956133249823144817007170721880088115999597524579552071246091312874492605039124880928120882781128425077111395027847264885101029407395126675556791539222461249277226962945585686580891666512583591143985135963839609277204239994612700683645762331840637415639040494361680821289408325036849747450612029478864431088437784832290864222762285267582173372819507646803265713365071272936913901488034286761521131483789012819717237929290814905778412508826534203264600499731456291338693057884804443470293934574748772151689576599350235588164992486940557876776149508389360722896728623117864902530711878188259412047430722049958832688543166897281533107909678274967970809774781136190719440479433587793519428917916925493037449326773764987296245896245090024128588694341760455860598815122127737231793314022188821704937644909939801426536861056620907884074347869964497719592256926644898470247402609007441086879749289843262292669916242129643973251441076432009579961485444709864368752136826855959700732329113951365719300722491583451661970505910557789085571788076271925025363125891704136503605580762168403550977395904007818276417526004454898433641382416775083679107749898035528128817536481358433517744806765360081238413496487244212468478396523809035812037017846729750871583667681399929533596650641250622682815636300562566262201465205854822058469217645776185507970171904678138232123715038613822665914261119200554817304288770610202171582945408456398434054938382013117175440332751361365007574716290438753998577019082069973289602952100990542799468386255211704838838856329112001163139654239935097756563889136791076445705782650955044633901675903264486905702766855568281681148220340176560923369902018679064459127856094926086993361473303352622716843707775095212546240888881219962408264297234858531472449598125939884456791337480903475026409713717043307681541909127851449961661843233785264600740148829893748469375089012510920655729523893116136491751439643733387108633881772916878734630010919124326625159813301684023649666811520364039126014835956444154395177239697812447778226553407930163365182482411240982347888378969016092690338031641794950531268327256078941952095396920133901545856360371022705836692469680533175487848108753162331836503014413397727510332721536003534133193063884594415602600620846049106338705877898359118422604020765922237090425400933756112537256745619997590204958099883454121011998923591835244402708312724003235725508759018473059197253211145875885603786819020604035103943805393072926699088293759472053176429386741690530030651057618517002778118074386068520539991995483074604197921904848111449265295182352140716187215677424818093396628506929105013616605285968784417189675202778047350386944929927430708172652485232036361397392432111419426845021704544711888021420699017490930990244412335244138981343737656857129100522161856793229376223168491678927212978503628666927321331490995346864404488057634575646391155156199072264613760852923799924018117652361178874956605850957817791197413256976075727388911910859524190571099744742937470378988344955415143631115368139766868108311828758364606546477421689281176463452877298088665146165564364107625775087569830885184584810267391017790745467806099538479278489621821355366951590562140698304399374782769335316998891710893069119677984761538351845624679244676270281590313303867655658163892871551460969810922304623727431769260368043085676682144787697470543310222192815578981652470100079839585337257067867726430378474321792357068482436723843400511523442564202315717064563254574319558730143036103940883526068733995294281412232351458682255181803567379323579268505906583501809704309727939178287745061584293488177360616016413792209009637838394271163721786305741356049630601310852362019778002736767740320845037345677988680835837721327951592756499141432818575295589946690032020609667939439170767379451407854709315131259047808477098830835629746919311549451930424870700633455604784125801076660373565855578708597795941084270509799537013567764866730628907485749053629065482163363110536477387550212459166452774118823710038070737942942383477700109639907428624685388791273621146389355268096003188372743776970033490263794111065466935756170104103726599835551119948534681740663263791422418820977582005191606896280962170723049613580009465344075684151004577063801052684906691239501929168611109547599345841067572530934851814543194457509368740276721392296662416236510634220209885390839379252176028746911308084618598843551837664924990462748238307525613184570754944665267929669761863892327401994777732715749287947079282948014027221824206244655590004299556968636323114222354828504223192521222177043806455916566717368490532144777962044946355275965559732602779524475539830020023059871951558269468727712784518383437002287942826466010918342916749535635781246680948914057340334588190357742003712125638820967714698130852075963214453572022212154222734958734825347639481792653747631315603995573840138742909838973794105289243899635412490037825720555922711122396316286549403625906099705520958867684482291701053796261066770721679396228921134566642699848188967656870517906886182310366832258053367226949784288706084274605012760358277627407168570466599594666440831527705642794474473167848682199337549925371818830534886977610211726370171289463580915935165369572084376922699792375487442443169013106841248226433513955552383267579657300766809654977757932853611031389976467573103966901610292372957628588695381081360964084599891926332989321374723395292811173482842017382291396040486749412060514228021112121322513797456919763668155378421008904446336410552794209672876434944235859210835264755652736112180717524725802552348956490136628957048146095701337394068852012469999442197410909810671749734414206989573652295993970039056022733934318680590609615323492016807635144108489812692061380095211316776141899367651770143239336549469081286405695525310974531242703115197060756301485625322797888101273167392435052757742168756463351244945999517201482878804580676589513291102450212962910488807615662585026460092705658483316661240502478763529133531595116217085824185256857907479243595385101170275017318627437326280987251787858746461309555013001134818891844033208417919708176768736387711110112091166202280718119464531229907583043113054910297297925113919353318618822407870741413908551881202149501521011738687190660722003265578121977915359474457312763669932987518733766439066091185966619729928134425814427400433079147534020494081957755687849673811359614472617318500099682606030398909108874822246604882392592279264207898858108846079189037149324903455260755162313300062145930600045367744945345077057027798145999764852322161704125349633831253155384461237055735835624803772765497162190750673995843607834503977225763947607609924268874542421016797044113113728074254306401446543802921830019626913016662832769433908173724034861868449502204375601697754771092349209095075562334799539357442683331037995081545986964341674939068696544944321571760242291285016758084435014095735522411818031353237525833732094764040335616014913754542298704616324574358888982091805655502538356180155573149943318980334567302689633350460041813924571177231460232855868058112659359107508601309690791409014621331397162640622603263672054356383387452475534297866907869499351457391016495452115156386806490437026246801560194075313192961469806773670373289449393464384145680498547795462510309772715351693808522686346123360247150504870141649864506622449339801448301436350066038286612340796261989180616683042717437626314069139781987755493257999753981707058781598998939512693661844614796650794307985215760763673771513525011301631523577261459553939342098912242276075764169016997491450982134844312527228998115386076795536597518150496926625284579935531026701097687374374295253209831448062320345823565886334902946351996175447592784572524390167580665645379618909175440025439158973003278776574927885813481919291917527773643102816316097795201359442216442332313145082080113410313652940352723705954803094940649947306924946458199831558095975536615487028674290944906049400149627775555914196259651017975607430313852124406291911976384526427725553334563905320078233293150794956749495891635763189222782588786312283063275896325840079885793657816908375847457917304131945935748353978189774751873326450936227863786182108226676193709590813571460606899723291670373751737260665793301157703343931081596930644101785022415266870277979758142431940694887069640701723461874070163093480566697890551099291658464887536582307109575685330165168842809779302886356180512148008812874247392141677886919234182250271013227336985061026539325546985531076697238993627569829249974009158577309738295455133349883817589556024713124830531972520508033365826256413521743860204057604073603714057026731014076418790318332399451743879132362112758465823338199273757670331025512711471538167233205999908783015395284162672215771779277481074922869141431758598965638029584780674567323364889920621361179453549900849320818724289678333744867463938978106121057270680113333366463678227470300517299782580442091619737260297849171485198927252039351086481531838509084028650576468095407977278317632676714345111926535523916355238182942284533270204994079102761321011359014421180231244239285229005361583711014221761109520706221217007174484869098590258506566459350122897610073244287610383254019933245970654369735853131044292390439544140651310005710186233300085920828078526762154286681008498506818193279138463512078689376265308170119767263352469311534432558332181563171058015662720562910768855447819522529073246798075717737348776027584526985170634377927321423623715478390715012623859413656967535125716450260130971257805280291576548915957521124747229174751561245945504386635948571492542860994942517345373822079223641166877010003137156816741619431874085151271904163695672945292448613188404870374357516730150460003287434018763454576665482683950927765052577886488276343308263157361480538850411859377711531137980056006457118780337983149091153735534088264691775643004319839325987079650888814197357646558633281293760875960338822643557291330766888339446799236646726624514607583661110068259187796995253395494998499458052313484166119470122237361306249845494024136144242078616663124296228264133036039216201685151537585884073773794608724012930753012997048122144273439447827929629796194047492785959342371522594322060627617639672003845345118489435449879903932566711257184852409605717114711615492546231031460331222493388257214279182274390059449203542367678325716335646981724607637056734303925382338068239894657654311374857089677082059948892614339684255231421724615759945690089818342652503264971033491495655642400039147079143086121614966390596979533760316738593650788967849870867571054985453252961383174337476582852552283904151040599294985989536310819513965674493851151194595450544197465896286960709648227102105236882886992433611995518244869072775651378552170863362233636737937272502433151089151094426920691659886234779386856785084006213623629951114116399486510429869730957504530111059440101891729821732034918679011467598264209820231202354702116162036683144476053058615371105232361257778124153350173085130166756119659783860160407053012799537880065809362417361947576852931923199496891747996198604580686848402936800965162843259673291131649573445769624521255139600073808581365498700393783193988864026251504289513931459954837785243459467608923226726342643113271955111317026686021150030161067604178813828204474437316715728860297975578919881275341876521815453429231469930984055342665288036442054211892050075004296715340044818666075392543306766118557828883019931249174381669587185504299693620862081922456999351663998589710307395810392494357700981065086847148355193823637102203228238629903755418523227691691325242518748419710259000127216536402391575789238006371242511727920579266064199610105974391319502553902960668651790642543865184541819373905701243113013615752973576403717166415078629631797826477457384486302413608224423117947586226115302006582224047674465635366372041293604417504339366825903697159067455942293973071905392361793407784486101836475425855240355617600935402786015602157563515562597832846581287392958080304302211149107971052558175107044348811449457825801702137929244588793211785521508693828823013332546956075430261356039336037443561871089060134384624979047350210783891496337280784661108150640282911836778826783427367854100852640468521067860026812818251846157063163308247819278947114568102348083052801670651585899165244811144480405461847819881345115170638453768214232470986243281446568649013930010224201882496690726071896900834177073221108681975825348745671301168084552807383395468347867948721862934383676071222251901041387178170501046824920605261477523946750689112208729441092207178662126925073568543719105908449814606212695523582995400547931953849899590578939152240098490767014962104016407875461474008029377540081913666509906274274316597203387449522195283970429656729593854358683713271708520687093273172065319633025737153062946383960051655818487631328344721716597082350266437470736746156476549542842028991062325136639151715684589855075858138954688800833110433452133886600653793121852073985204306570605903281108100082971250673920860826682991702982646210318678181889209951994370681719762478483324001399188418741021534726769535751394488516586060207360164635552714459389410675478857039311787132116686083961820847262599300941513424840007485008069936419942027202720410290127537540273110635328572204701126060958994882078730366656629219412121935467323265243792756172901168378496297075368110563061786364312719964811168410016956168819414525398578829718404996638224031435567103715405534944536729588426106335966249744891234435186024621782642021873064816261112734431061777523308453752613640171378017884458899181187353964663466324753795352598480486083884997193136873350229207816000631043075624745192959223051569320293003084268864044305581310883993562743551317528994984764204493756844590642336812928270654139304440534639952930151084338963631927365714448503086013844080596691891599559146203528832687892374928017518630082708120738463238452332267631366514834316805961990014299555089781000814467809182848371909069525295003079478889796682739687225188011962435087530335108277008109528345762097925301441093521458925017354643250561933341934743753911529930970036600033292610367317045483629373871498273498555788615102881103213007042671927676012535022303251044707665582322719474344398633185184161608480691170923552809159986842326317163847881444507392509373404565768068023754079724437825090845419104427240059623780128980830912127283842846215508477036402890101345931736785135568538371285119541560255564701473910948670983477620534539771720585256025730224116317513975268145695781564362016681662041897846375959094422056911353461207582023432350094335845201038866425306084386586898581670558453498230254986387897056703842633824049251098496989653801658746424445876326886664285425691589276804615491268165524607054925356276499979899585046167893261162534907016137333419070211933537783099301722674340123395059679968613937588387385426722673988532678568837696490650070596536282275059292235882941251677286749630153861022981717026097154152187468753904131454775867413653384713499374211942755867056972674286880218094917012460483002754732348360312717365621940752669506134666434201669196599143945608304561207388435859329904929419157810956995036896079295275007230077498529679185086807667722742661158989879917991261932190711218174947741848656064401369380068179012416711812145879369201727716262805897307647586047904782718325992885687680240103033357909944866347874288075104050881230034888422587578597933584423564457574746776564567540457796290949712796890679222825622207736504563295516531488744950548036126498258013474182484879568235697916041219829164460307535237205844216227369697105483168909353303002679104613248005384754283376472422136869258704130659083929730978510353793303044076090976403024968252966167441505875164907869908530588618971085386514896816813093698730663349993840885180808887131950173255741498418762686442543934524642412928676894305922670785856669758136918084116025735799267240113968370462055857607823928095565124288867099069712161715032030979908980782160219700096571892156867718315761664842027648913205528299257387628439684425348986049966131659316409480222512144568299568272951145355535845210156865848167532135346032098917059051670068713770966342473227639500186612107597246356793658468437945417522774694497423830503681727388968747365048590919189793719271493518760293936572089349649465355945354567964229480651429458776530877080850829270007985963479922751081115255197287634092457694497431642861607982606390047322050360135028931356417178996415123552746515420050252271373410024892984341538288436861136894136847987170151819883797318386445414425916825299388305143305633788316945369644839996892231453736314304538254252773331975272658041632471478143343371888663741601291576247037728739255217469718037575843317303489184812001976868419967007808691669149772718718307772661037973059034765854540847708912703006961232077442703102496053638974639119537197121544200454604401715015891404279725663857928715949751395000547312103639466289298799792612925545272593639853181731190779647960018271794841997159804751579569116964176858857673627092363788866628761081991006095123126083566360653245332598271354418513302405318351282625609138834855786185911199356229117071006568740871619195813840933122544814102368865798452847604135759643982876894561201576530790948647447417836306114536135214604230469867535079563141872877855982582332545867400179331001173306498495290751379736277735059058295263534542460560462495321328656174425944596440366164425677259146020550852427788861593556532914361317830135497869395391997743088778098294592867934138580188151528176298575744223637706360438210643223710781894446977776314648170321355103390165822623296255265908010209452835467230845242090821567352237059990667534097719570442840080900883393636011483232843038767026791277654555370677041279702154481316000555379823146060630403033082512000716923394426760390532427828013171066799470366792100279588973864181756860058258504025926242351513879414689510961930635135615856605068091694402738521177028624240336210977068359087875178716219632619210851385974867686764593017603218430767085943436093583376733551713798585865033860063172285262763675953130682765868353893812438065338883636102195051223516821851093748903537994644247451101636122150373477524008143568338452936788406761037875429575447237544758810961783555530512567826641817168994651522375307072999314675791445488023464640636404407775621269140407658679873171280411303797021773131873084406577691265073832463118287016916145547163854793923625136025846921301252422636169705180186029044457776601650627721354695047875936774753692238975730080323360322972743447264402627986990647455530496613661467771090203952041313001341832299098572094842871002824965745840113311777434367507500357183367268978538863979150158289825365594414721295819974588995762693995969038888671168018563815593513639018690907789692585199117837212195071855109918410295841521571911622484386051952165105457546453988502032147272724864917768743983599495602014370749604221486313782574404031720752425222355131682554665808937743549880716380670297905895771653401395998959418572051923906822205020353061563198740843116869392079354357322996054043982545652334131795595034572165313640064538515820775515592431206841575107482560575567412585460210532962331434752453590089841676486025041468105113141317601092448299757957516778154458216308018116633540619059427287284850970669871376919303343734486828548904778425395826640032283665263543609947179403367859051077534463984727398740971354627937305068088237312753228208729324943835300343651378446495715034340152342512435965030074194092247040723767017285027308361676851442106382194877909073680358656763378063159463790321962824582007865884050950523793889069609090911893457008631421605315638772102768879839073092715820339929124921444250539150982722007079840115836773716886948092095394305325104203554937085387550480911312023580934770499523131292058567998100344224908313032191613417408952470805009920902830731391417465513598334680898551451316757191621589764156307252354944609236697243317374703440223118516258231823149413890869395031999424118248376406798767690100333628703113110668332182247435021113727431651520060955637179609395398239181847473760250628704662538633962614894141235706003571830109654120752734517116162092427189267228682211384249923200039853653371767541948497401088805966636245361739792914544226474624913349602269038815957384453767345560806131799017829007853667081595210140539848056151799354307501754790084941718244124160388691092944931092399293682650848205340730809992165805690318642903535188982855672715057394014879314179100097417813337015173840724478469968264437063079814563691098249474313669510819694999006163148705415940954690770785806283923139904901606005739738924071669007623355231334507284942595435407793377013940896808265900230909823042956784714727618165466325172511977676127339462822632335911511601834666387870556226410196480864685876381555491446171714935504559002816821552930907941442210488482212361944900407924417259630690976534142627745162716156099744854334662423928318635876844286400878498029679347150494567949965153041135425464158690547156302298868572244201964472404802532424054336670499639557279084127607585964622555006077641362819980127487607494934240225463566923995275490922632063964888624840357085576661351048636975128892640561436631560899116313475144991640418610765503422192392145350073248961152724656216759900388711157180656264077691407375749224695618151898805835069376679720880454926271361628113172968259590370081103401498739024037909007275597640543982138787745510520026408717924282586505276097425045934832454548575851743625118041701826489048861324078187327951993236029089212881997301080660472460669634849773888065896308672201682911138042894784450890876083521996963536025638260451070159366206758511816654997717557595328320729824177535675738517727639762717686558638906542829495362565020139175049916174962039968645000021322891755752371448310988206189590798400318817399662163176379781918232593615977259868508565454863113373620770620043320363437333158536148051779250057684720789642653791795770283609083662880910918617497342545787206001039374452234692046672861326638975726475117447364781715146480544287064080998936113633924087620390649276536660707044136273619050362071795101663085697982765233311004888819109212449828768723901826242357589886091079746987856518333583297059528349761126523146790409813624389250724933645516579346411336966338785457801134268533182634666844544380114717738477176781851645700492290979772328882631504601912992624523087186013668528893252951877555567808208639044655293455069534718873952128496742740634849207869972683648683879765906785542751463053407422814440215561843422848953375698489626129226150715141223095318722420031952246224473234057799580770249935641455240154417995330831943452897761490360882378039712795942476635426982762361748968147879116027952256408275531988483855189963853918450951425795009910095568569584504617311708339379565110644825302176604217982837357305349781248880899708592398403863744356839452173337527225097004341118130104940865186290377231741114095458338523130341336487337559285771929571261138910229066900451229716641277913005325829767709585905105135935617413572203618870456357089720426453678190828314868886621572345597974627979640748308849413541252114233327810553180345092267181864864653607023710481626197307532668795740204112908809287348342779097135861242905043571643858913615986357729570716895367766728422301699764239760190003840059775158535114960736157083799793849212994792263883936195584256336575716658267073906254426439013981762641265087716461492615471016715332494827235733309043803603401620724895892251246584141798087500026372907842132370314843964046459414661812039847897971882245680519279704933165698669741154692163395447056327728904344414595416378773575539448105963216812989295608428998031737868094098185016777746198724973908676023941847011117872971026182971426625422019306502315491111235262859277912306570860426983140300081726067854875742091064493666684075759182753025986928799526084325531903939637342132778025158878893894659965974286963516449597588075319128582375004556371915999128186864765128322845438205212481570901882726313985071958463232170494936161416366269062958581584572786562525613924351885648667469797202200210317016263492651861948073334367544932641239462788212866265348765122014891140027518025771698379562498149162422023219353572221002002640955809255485985533436203212298351114021412324898026301425816050543642258335902220081767054666288833040943597771995205325998244013854817412872717123685977953008542069428599209505845785304381008922418284237518198564018556762639336810757783768991652026187296486617385409292586809640439560578940489800742556726948673643365046746287179593977048538286126822905111938021051184427176169071400112293242418078366043896926760119730464520231314557353995894091982062662425872456873735771445874575109982244802343955057840750905936230858668439683909856940701735293966591574561375614677322754892027357336998380332925269534741865111169534029037260111614707953138766473863263564751377729510083714307168030322762490341266560257210059034343628376318760978852209451948055007576444401416864321183759486397092438667554460784677178158816840633189820113943993896323891708895431184829081155787093939897203722963777613272155042417105281152811475862356671759731797202689558847416074737220976478665406715276475589591612628884569976245547346836127152720422856875257279377922864234698945973243042436670811372578444880058757803357958178016106150436070972680175023653548579461108025187438038487050106374908804017775306139995187852457882103214660325812106673259967814977677554829216552407918429094420547118745114487133051792201194652072902098033944624161624108472628639815569090719746521111195160348980687886240618014118895559466703325109523731117276334811157851027038629376981312378439686011369129758352139109016694981706018206878281563301503043802685713179796354611138972402118453486787224774059514081515888992735119877667097437845427950257193414887104471698078899114456173883112272748932863140371320498258201040196776219787685042591905262767480072597136502700528603992801487748740950317160449360657454327873305750076092550709227163591046278080076771796616022558946960029319805302435782602158062646190887740774149970169999651330300970058136789061938788778918700737922441118735763470598983596595704843837137629266755873575201761845011194527016886726165083493207071724998849036723334821657770158664864239060929050330395623007562913973537822860323807361980698070387465342721544136790085771012872001005940054111285954746291570452768544551778514487076611702885872510342624683617761230378741624103066236434738933510732161058247255760882329475839650190361565804290582182580193400489060897421237887664179665918475015247342652496372982543259855571846858010752271920892891604659273931437654890222677847565640959294957916784246315730345470627977660432879587148544528203978340809386467858843195420628321418885322156400544191971630073660735000295609460819685112001248430558295210833605089628717125915292727085077509031254513250261793528587982712781188883922322400462020555282784887268078632497791797383575426254830251137755746999417628905302506495109134590686087692198322719406809263112906408043236969750400313699514872530302117733472311230358868772952830931031540050484649877626795043175330762921228715557161658770986509176860547677760734142837337796973645534073963139561770519485923261681724751941155776825048521115897260434423601473159790473906248872230358902258000232729450177377710350552794300854622215782153973003271314439399193929033173599130173561419336179154587280046701635391082514615962638844763818414810784394011128969560107363759579100248051273142472234448376167458801556058296083402137425418477843751564505220021337405718144037630033915266064940645596137333613215477206759989707800298920978393910450522331153202009710006400847289700785910157874759665466403428279121723632801514805676191029349640078504800925290227910059321425382662622240610930852696075056246194696136171675201534442481548053718551430683282330066167626359039642991319188814236362239796018885186673192583644110399572903310045940394011087513849297361219785292491499998721813760734081127183087632521227405166754664221034358797873647509576314330064663885437800004443043278747372765202614129174601125130654276071046162524358384157213506086056641722106520650393712512917024821613473248462293302451896738374431915174798738411944505112463233336115602919148012383426439384374035374894534955579897433463441559399536369786605331941005738997676948529454737722917769832764803158197511207084111184072675007693468574487732296083963711110573634619418314517401901061917715235033874502033250995365411759672220918384562283635141453887145701841655545949912843632175940064796973135625982639660411932907535031609048809597717476416940641634241568179584026574547516577988129025149604127753299296225107502970314857782166704552306306353536233242951238761211926066793212082831819737992720870266953428049308606759595621180706558983507741805258067586351074932824118235785972883143005877657322854448827074887463070945860278060585462473770565894836481449315261212458425386752118736733889407071225079081943884642706209842569197041778484943153284404873673650016107302456195853595993401491540403513690442084499171958274504493581227639303539982744000048784018943596255103720246242424794075674505407959563303699342363688453541876025009696050107456534606382264211324101285701241303179312347360498109709943048414060649654198707626942614108740650113946414752215449873274168850325630708346572387172875151653088743382512573101837889092990218098620584795434629459691974699044474700580112618687939841942267749680245679064146503741746203044639431090016014906313660196276460815449566479656320754801429399233230482131416873028403375134671468663670250864390291562355401390430232308608705896943030424902302184127140013336311924593553881995627374611652645905021775272525940756496463181760178425246111187797123014792311867733102885022818385692958943251062673410041795146105120921566585801474247397143631400256649165316450613262176968167380059776903069987160895763432788730579501027526593037124599927232934758309865747541894116385768866868928481583372599138325119982622088748634513023341620476855222845200403085701111948549412306280929580191571271091943781525413641854159987548402536146621413176183977735850593600754251208693464777760255960339087339744751783147841114809492294165161452957078425285796504295245781288285626957967592742949446782752123495151620177689328853163934308301673279994883970436326823422537914406466636946952729931287898442871374764304641861777453044282441152293117508771162529168437451978073003153582105808592704054422208351142447952048243488924716831995090617180896222207071930519022166288777406477619233109728840862276912855951660909977410327902925632721547974831631943524701217035651427967601348668716237844064306217679406452338267192276464766756441521497179801177045911776598302840493748358893385993517154039099432671189413394460770532360836290759663740957618030848936750830036001668148740647742088338553763897064780877397450296969778182992860610833223380658086107457106629302443529232303614586132871393000880329152546588530615171466445110396277465487023381784286745089792865397393570299535788632591370411873806995580625267673099647735358453293795243641722948289758261634128346189757092528097584421049858304611316795588820968202210238513797691682458913529030616376865717178668433670858323253094586340535943600280896096950830166020501528265207060417703973524449856019105531162663125880333026839540586896499798975691944298421150998605380074317412954788364522503573916487824559209372406126560866207822075961367051912472624523894981731320101480876879082718024465316424021447442725256822990852088294426130682832060316731378425658465752223856444593552096258609102710048241538069755763971846451837724992380087086873527216819881652953006343808635372810917470872117348469306496303659230223539663443334056119768318862688691312343939730256161859700400900516103241234345143227939781857628301523468569290682644338265834385884689751772539283844571281312862249494561204529392357210464386455588115058445154911519061020838938677190233182069378803724035671121656526677373118110718989514388135354682018018461033654099499540919352284231976912806107644825567772712265341679187571060587359650757671693140467483400331174950460996570197928508845925494378126624348224908955679848582496637369913805616460369154798449260278081380833027116614159050491232607188703456501513194854689965838534785437406449787379910059975962434954325036884564328347432969276855114638957387842989663447912035246702780297229780316816656339560147482319279232137451006232345656212229326548099632371409574651755359905376232764684182571661085584877209419239157209851682335426583433228725522198294945176702309222935995746983859080099026245369838866522390232565289752285090146623878940952888660730365438267670233284639712640290755971170739394002336797486215142142163226480633657974148999600889000170238059413214420409763551562550592408848047292560286827765730678466656476351216339413993784701800781746916390058138369116691974402284324355872808370439625991426950708536523135050315514063545338816779583235182041046856166308993250796956377105492482362820476387151349215495469506060765837971722029016746255707354584084668275008990333166638968026097582441736798512677737511125988168442683652080252181165332129259327114984159945467290333831346567406089634566888534496109208325628357087827709365000543814507534575209736741523396621586242271360366569952948778546256933544215480609922636030315429621271600875887604717978879835413702623207985549676805395456020963960931583467412327273573337202603584465669992379328120264504133470260749876110026028867499918655318439004114934459128527999655801976795194896199352990584490133315090823819021249716907021253823822043740424155571402438378606552932013615144418233917726257930500339812185260862759093528485903434388320814904213863487925315695235356325851786352311360953651689295016619440422597528466266600489479695133552942023549378271290538055253551145527970481757154264363569886232452502938049075124035164910436210948695902519305864727150450200148113758477594962149170999495072588949286794528821639803785954819293521544824788855549563557843887179374189130581720098718078308167914194419917741946030382360822957803429789826452507536691635820211112993124317612839773788164353609581597378502158802024535958755599196449301464756161569578088192025786334558605345223066689883618160567881851414407373334223892658183558060858773687947980487085857151417206434021668758517679512025078316578950120103380416719860187155373947545130671647949489893488300107285744880027892457260928136343600152597629756749932226383693105150989146516290193354558525124516947664897183928282626117488090328716796651793702460077628294606214588914275058867035033104152491664094714138544595060855636078109399575121028702183616623997363943785143845947682805220005277818654196636815188919484599799187849286834222350827087244535495843849876559892353111926227971572675231023532797541626381732748854103252273724307593770191578288007619202911581706909812019762691547336853899176644783655811964128781527795372137401440255450545557809610057649531108776038868490849894576195946407811743961263124962693113021691512785465924406341460340640943215190518985193196131932659231610325750892401460252155164422729697048923850647461111622997840520467914299836440842754342022533330259693778947770311882060920380942674098670078907109566358098088135922597635552357701939644326585295037337120632296328599143523460045569100131269679770514552447093429001391584126446757424190189975986375256083887074441434491357517394939646630056684157948662579724940361656997984747793853352839247097299690120088746028574374846868544993404279565851617005568775840219206836717047718567133788154387256422117930965511465490155096841440638235627330169019443751099334509928243361733149504462265280509946164230982849169790091681115616169035919034315284944815095086283074466995248822579200597850081758163516591948655164214317504622889901474132245942367553774414152665062609795854806950204638947144066791864508262622431797941913005783075073026963601261070842071395751216720867175670104311925982124469342639479833693751630715172506793641783707234204183134521025584259853106496593552123157562263622049013922373134462192665194503261532206758025958989828792444165455142813934539753918349615598163346384082650020103756614299544614494725821697278577014423293401188240751732803006901194892198837266233111020178859620941411948870442859434248415100002446958891383105389125725790598658284530586576828162761474215398769787382461333701799324547389727488475033391149925413113113645849433173839565790039868857951605594016741167476823972903679041676153667847618892532575110195540023897847623891030298256776201748187532309571536372321429281948768064732271715002992503850774327228559393503532065351288787758885389110341102645509991618967281942959943169530976545683186256261291642077798039161550831679018172996328430819435899023247088462549312469911100479984252363156411879897560232843775389393885192977972811712185881066530881708200204171162431677044264917754002826181203417067775549929137280487632885352525247947407615316870266334699905569605766631827788947407578841807840016086870983434872135372265378213106275207712542696638391152694611466866989212947269168756844607675617454143384946946200817912989699739860237370317178193471755486202785359738408971518194715391737165303785754390538362319885025847152105425600878426337679752790974961477776692990492718031504227142380517138208829553043562188401151889446183321870583003093156701154215350480341289591168844702521199693150233489751650007764635760191766775230752947559975644794954356659635019058361318055915577209129295212585865707575174068685890158316341940295185571323232053143991840698286532153205300037181824940446719611071378489510669480424185875841475817680609460540935421262742813686252598379496185059615959214915247544002981099355572554667910356203687259677347184028438620005993864041108236023144030202528728057506048430844349998822296878225045124310830963854343463004876900195410916945439879590797334008937066687365692417975291861890266512351742959911478919446782656925179472816976894175616658275761137569238439743989161241160848952911486224324132011397722080882504685920097226063034101644700094500030122713792209358605127356731301681858085563070041026839166065186957909019314580018155808070338194603218450642626118604712374440742765776716961365284760349077699870371189176437826118472914622175638403304315646291632661774091639231773327014695580161966287241238015794012061740495842814209938548053942880457499003306280215055866592533493539164598195941718737684323719358332025906884715702188767511446955691344762206932306317952833887149246272849385151161623640871078679236996529683665144686121567365056678782588379242383557683292307975479325398212166226763847726725150775767737047572701746854691741017683060650995189260657924747654714559047505714349479080901812141329017767389203985718104844379831047172268857448545647787804942263530861397521461845501699679941643747259450648156301349497301407578509931656609377825714710420615852366904278539045751508667396921847889482130090721101724224569105209583446810462784049334987241298363567951781995588511382427810740346012211702152279224612231635995999850039617027702176287754691742453275300096777266327948088051100171409332057334206118173835017454008892330877720753853338673760861500461471903619558429807466880252253792838418978954634471284798966785958575956784180537688492566522910139254655739167638060726265995887546087066324833249005593737969081473907218696746720911948952060012183139538315792521596430097628671372925012921693541403838959289984017489497756316963503594135522580193083644316857863992719827643084089758764274289518596016529781032603508733769989360554852457301269942378343844990563907458450756551241743256480899214281929837617066720146525078705139068613035476268095724596387737947202035481594415206246250257963533574673808305897499604013634983460116424938442531987490245399256454444242550850537145456953865163845535885948375749443534549158049685054168579673746664723143238300204590545051633787286136639896073475278324120199385134722147795536410448898354128916240446349711645965950990285939897871059357872697376354319084678495190554863075793866369661162506954302201415297178540896200130737498975050673424426881966129207303063698096034765656158828918391041325044595868806746915718363281575292214967722984067189971439681454806533039726331986921446452979358232169255801784174481071569273550089212233657270029258360739015986128966768667839079130547531573387280663824863998591825360548570630672267629492524338741448138807467169423176223764813760607146366652880623229390174201453049740132491839465398046760097975160142249159162794519222786230006731414132087439741694193583137903784657085311646931886096744962793673599836187132689042899447003024390756262956913838314946472097554010435670453642410491327035035939859913663255552384568144004220339815505609652911033536450310039947797058885855133774400748306032046147456105409640588621531497063001785244656593356403363421750271910931259944325267949757747147494776178961779293980169382587059911095954348753818606164077355544777062529963958360703059111303666840514843025862533677172892957442128807055587558675158217297672635756957227151696020153333011377126774224731483748621041759110109189200517150391664253124241723354184097068182125524157380119430240016441742132929173623521328000005596181452957605058436141451612731791901547652734747524624995067928603941364205576098076152171905333590911912713847399369233853318565648160760540791431311916879731578532905633590041504169129029859624741029158145030432803651983858009513448201506771558151429328841557229714748568627758618091202796981435153081783511122987125303359679836141381548168962178428446184196114028761746515570775187043114961651320761446525811949569657292218112586202363633661229046488719935722850051037852478948017925191112247371989697578133176908818308956018605215421436331365142887124690578376829399238056659063744812616901395537565715182043338967530083675091089861809520088433879780438897561785528616637040851172433650688737910186342027595180965535863399285454832859493101889703913220236995275621286714254927239546519696376183776741875274462038895505004482633873796139878435450286144762146695546770581964910149451703468986260530564846373373003854442914046374958434835675539698787890228444473736520783029292587278495656828861106391359956526475136210596680321530663475085716916504128906667883179522892566864671338752318897665853731625458141190067122210642832709340851885104780520193251809903325419689164574747765010227940124264941765950140876069805407296126115796089297764689848417625253637385269010538620678965394805702823244054907441840616908835307933205681374938519397701565007767476949596814511423827074000844460383628209235497131595035922702567385408484515143660768209303708800389308717438392918852298969304235081447047191393884744139624365398674608657189444720966092081169799698329949982515294047317168895225747510006568235018581326185855957277428884606915993622876367624457823395338014120088230720609795944160392804588363167753607418904543875382411508961313021035284638128088528199448690559689591141393178066338711268033449542191794262272619972051957396548248860454980023475486107873788165228311241210935352205978989179818232871800273613821530183038530596149414827583496706450040032738863999363864784487040317651953795060702038474218611959176938791104962335397544012224577374389249361332845881948992970013941061243457715551495607155657901523788469692213572660407784091306641683714803083724252635798552585437467213530464096572643364775097721740988548469419068557191751806833436022356730735003935150933270446188201709738968992943214259330093918168136636129775257328146196905618264174802816587868241818354073733330160417667162102353235683738309762550987359606621945903569930203529281084971123774901936592154840594846255470213435072660055856512654176173093799400026063564654171665421396350759247451278177845635884991991603677198165413455623349807279701288931018443539075431311916369717898925271293092991253177384155934056880305746486292381281336574171114093964716921123486756302394692964997517960475269522114283817333066807533658598593626566711651866531674681383895595371013093554764592257138432664280289631274202234309590361030242057072391438572542801128388340829134053109079328507649253983567841436431307351990108679029569531164993641915003998676034666837127288958689395519125233866622795846096378927968942821447797323766727516031779652676385235770046188193100936181131372684988935274996080591765852807984567957200000457565903122713873750574820737213410849819969856827259861277748407453811512876926888395036051299639472918631855077170432069695459201901607461614714507966275853637945662981802272076350161223131418065446052044052957212582621631833255036232744746838846527884218937325289250695040739817554897930802758375824646638148317610308102490221503906050795385219403936320187212514966178002143943477639848338565158228252199558314296248358912679151516949184282876503178324800083777496714665288582852121694596297673958372035178931677074067149557898543390628913958907335380377902949054590716525014070346771102636192529977628804208802536346289869889162908225051835295774946863605481426872300764890700355169575141614680116282328021171630202313267280247250200158267468458705062122709231113920227905955382401696857130711426128720439131210460561812590004141193786988835687050749960336494573264470921065767628286329777406746842243110464451399878358647552179687787902652151714638764466974102748699720905100783184733782939461979971415256423027252043685963990942056756955063189525927455805656945110565691230699648449735333750478741684193950076564729820176397858875445300159736186643722134860175537535795671591182450893772129474883544240450279981806359298882388442596106076131309567050610369933629827067001219477899020193316986870481044957635175721059778152691069715805334559887437862675202802274872400957138897981660115399406082211648257321872545147332836058828955838498442469517924671166503769541831962496751265994062459919472784571403039462462437692757701884904457756762875827819759418674438133152382678212294667533011079662879709950754446366301886251037135503328624836410048779594498952137311275330474923844056359839084193377436254475552285047842626781842386489609806881637965999957726367972768916967240325820984927624197018936140732847922968775086003386663710408315852202338269543510139432183540051838369706615980304253682103135916715711925180963447899429118989907187134486880665248487565556064202540472253711055249766551903845233627065149349075181562040894386251299854185663882468643542719153285428147180014323492922175079333742519782505469161719304265017084962399888870693167041348243543527467350410563290182351915163178942233111483360103532610257754992670160506880689552947067946214158720046163916186387887899064565286494642729890383496054162664183823382080760134063660912417348581284219269039439279649318802468331914838391252587671344904056898329584852545463583683766084722582949549778224229084462123565021487772849127590350475927647915750534938845962289725953157647671164253046619055641660203867922396178617079847027844429269647408145072522062285633530390667736515251960381673126288974870738756903838053476446874951542629847957887822721811443270135941753543633897692531489981645246270449450735955487912030528592846850238735940893090725219127624260463978123288154066152837245002515108890481455502372743331288297200396661093757886660345327476359629160230522914635337815224181894968442158356356689921551110558682425366827779459263290092982244806926164715328509933146644034068300066613705987922527515820354081794319140462495610216971273873961745438203008728168405008877192564065023992321186643161562073272557124340201961223226139089908369963090689937441850381442758584742393055753175832543295535842443032127338288184402923123793484607336991930323202947045556587535830960511968386218212409285342330212026894102781964926168520875683227325765076401786540578526850494981543578580072986308011424469674440324517098759866168210456461052437804150509255739985486206762564897333724930031895738476060741628973556571194007810729953131239212227797755431770010851283516547183895951391581946848020215050213941719653645202019060397955130707239940514820898718269440402437315669192188475386069508171849179463774824048071836157157522239596093393408005232468575642645380888823728898162237092933881864021436456108813958837575832713585334715112072969596624214441866678529476533440643932154621178751942222514187857982109428071338329258205711563667161061317607229104845246015758151880956381159662239335036356919960757936279557096235370596886812608823440828931279653260880318720506346621834871811368252286113486304485227711867692634159126340927093812096065131323847322507662122484636072909693528470949905599372459260604151415938684479445190664562326061542671226306739710873607555792409275154869378013574874249810127350218052477876848399032129684228109419513610132391038905516947997085369693870543258294744017659155338759643485507283127617695850702462461302785812360741801801342195320571720547230637622210109635019206164753182345317019657594388207988185131468648527996386092438055324795618290127845094025830725032883564699253092356350483276361909731554765492854357477672437554527292509093622930169280266011828357860911169436200053851320434440595324527095263729440787284383602208871527040326977095362272286352010343457331975203780806759689569327824563546584974911839927355584640098066959325496096768652713607547935686529459116382368949692641359577283160451210516053983400974945223558567800413551615364484514929139226154566803834354087811176690858829910807436199061892514635860748821162607828983192710453051798661619144324498430553126535165020883854965705235068539398200893488528717122867300534645313617151358220022241582518955464972815083035987999026037078364104483416284662978895742723060376537507825843917064610434857326097349370509111274495159082074327760482277512763692302370352293171635751478293301279018988231227359567920925821251098251466007201875974396435018112772779059328511261442884655411536309216406751375607604766388551825520880296306299898843801882871053813075918573124715421638244910638471692624048377475776128918125814906780390746818768880132375044722488147017733750999176760198466975234275770709584875835123809132100924984394986147413778764942473851491695750734389674715036610874004918828382288961095243146315864699939827218629247772503407079456362697555957916747862498851986813034986720773290763843068543513529219554135448468703495713742247936841727126498264151072809541928136088490646260203840846950076234727364217241740702876803725119476479815557993159722915231275838395908880920111785866356639960336735545540423478676893520769886520310355242670074610877912357912687505280098474624963824758620438926438929763977940039877177432398367310051968925915255537345343394586415994579073958090206089101433116713776919988968244741001242743656395853131508749411723144442817441213193874188761922824876802541947212487498077052957644044621831711657070334399972057351077181001618466265134252013884642463108703142368046326860841626735869759567980966912896417755486447756677344050247380059539751877967052198289940345760373644692726002130064418846957168198595979330574100147749173247516615304870381959024919084442546461676618696949191599998333156795993563724695852810807289234059147855771796413434675070797243257404076051690692366365980164124859507019793845188208666155464731539211230444869577845731377556341467484003973724357049497014333902637298460507084351255091557356543116960085688521330632420312388074388864036026315464720927873528778513295803078909357481664649427694947218478912553340249595634744203707024333315587686040390605258357102716714088010116428946214300863619646916958164357212022462887485125778413929902811050309998315044911548435413579459214740148663381600407810544875054490984547133691882781056920118221094486472289956559436166448871041441813108216057014694681109131969020649978838875137627817293579057605135793512291326762114146684778055179079798623635653273115478695200500280169084944893646043254662405497588670196558379580258284694697899613633196619358047116661347391990527151853420992720687801690571289936533970603303863879460539318489790786543494773872033299475360552957805529332579874002856365868442080828255835443688799054502398000651274144339623191329617264816301293477073312651645658489865649386714501018366368583876679787401787370281189777480294488877210534935578583080596023864209558914218311178106654140755580040727946670430539249486409347146078798142439758910931279304551537460691265277181178864408581821686652656288774107876345202512357615362310971651276352764001827191001454939671073047898572070299273506339614886751310077088190696045965726658455091514492912882878014241607242630382625355454495129161065307988781079939541040831018471057873042210988792050574630087448836930369385596083695896460287757131692050407665132259295354491234546314172441328254490611986955270935521535560109179688929711288349877076710683258965816989476123667521876239769769708167474621909141368405403993022077283756587223239025268148091722624475858645740280549109646957984972514982152190693987489272499558083502266647170871412511585508566353829176742257003963650874143912660007968740226051665183266517169836729602046316567360738756457974221941725638398399512893413184380219462765952884561835718165341890144030215557096910436267581108437529280852265715282798530815080621353701112798282734034547777215348316464737933319159793874191222110436423084600198011483435598173914217094702574251368479776848013733033239674992564057488066890495341000392078622741894679891596939667299286936444884043753444207353039081789202816745986939762475895021538320375531752571706094540447346941286309512179986592891169376526141692731764856576037279086702346989618960938852827994550423616294320656705735705210361978999379717397853941548140523857231520568345797719400797739531574897331496508396990064197803879732801444900340313076384774888625510278754282048663298134834936435614460458182602991368109645794413450694379062571860378526294177253498760871095239087452020753141111447127099135279707382845199986011145922274961601860993244973731887621544504892711635435898821405778913156531177426143821777136057377055584674099463032272121533465929676596901260813283637983194245534442785492034459949416473923504247871068379091339619903775674096034992317409586230120138359719109510604768976713150088813322546349160141895203464459308431177758754740689017855780346830978597407318015061955254120231859024282956025780798048604756347133722231041091096067790867159563797515014700814722699074127591622299382658821915393493327337183939871707119112964225513507758172281997493322213639900293681411621425649188566120546164476097179384349663344440451664053337420857380403721476296629922012237929177436323557325810405392808653636469520122114018714472566566745458277796482441305530563143852381306898793435361270994920063276704746982494938937955223640897083193444546781474458615204843542558271737736372292506132833203187149543243906461112081256862845988124869285224344961623526534851267259736991887366166908822215386538050931291721544120898950710173007951682222242826524472362061734488547137840925491429282792581481665423803044449991102763759236948172093679679112339431702651866265964987499544622394103163121941148740109838891238870977555990417378425373795612722277279530778528261621093380080339593463853494236499757076350502544738069147431805117832194049346961808244658172153468085670004274209508844124935031066431974062598185151348865612126305905894908632667204643613898233927165881939334263674678783249812337264659920817531397333083964644074333201009066230942275545206070532989435012674255233725186330757186775146362676478602825693927754784376984945942161718078480940859409797367261057003299264372189110034964369513715066484883777190314940371693810093908455085318768085283823110548915694856162571269704539609642947438255931894205553796993690267448543086764013062302723353054249206621765012287674505740335910323473311502667020684296909237713555938270858427495070625979351709490958938897491243602410804498510904278008638999008624956714202769024088843684997380740586965588317528487690977536818686669184712287296189318671781593345347039274007753130629578088681247120207124291180354840534252158335691279017060142405448427825172111243127440499213169825116580258545097569075889980550998930120439885666285914959139812025080253812665416545249345452899819805181822061547384636414899164106850966212492320090929535573259656791144603350355303239209068184695034314765001237552475080070957042990021087196899567476360681466592170613041820510616677384848975688676548728692769809291502320387703342243880293963862335076202213730244294433610231816878119494071873716030989197886065146093721825748536692028491042489721799035050111780879916329591635330647401920671212739844477701277956622629829256019638637354632561614930973081119988232416408927886396255481929252800334366839600440964860904012429533751327953052697637049108163832905455330017748561865357110692638713299046289039553462021820346438712748715258100709258381599100211182229996476859893422988599238708120838157280172114811808928504666037915491147123214513838989415740259234047627650662836859939095329115049936492266670866962736531811146297411316178480906513145350406146618651425705641068046112248064085677777592436369026507083981774319659662919210270800648877793798753360061404117945940726898934303171912584661902329788602433042684634172440708989584396232347935210166495527659233258806546924815614959453661977057599558969410676112291618467009795187386244232327631625647730269542475638904891081314126595256633531122529962262205336921727298558409732574692840924910268979054434017584542623077021972392628791754841804386859390847427834301197867241191691721192902720398069550892674794437885891895932213168347315117331028128005567839218081371996617051752892635978004692972414467032367180786857783297946335430025775637022242793584160077699202006673804713518552300440463127450848439386694564771162476602774105988059893656349658361054289812427756306378625308424971005635317943010681789854743818615521293715698265359611926726075748870020560214780557289831007870434927054666920207446260639092608852773029100875808251762614798658208315874613953334206358525021299539172681432747022708058094937623703557251150692952424760850852407643304579136759918354423579552220579365846679393938031799783250558881497042230302361841981482191909618862824944687891477596929441186846628059190726159480033309131337843956760337406712834313045032424885663404004959604341189293670757025595948349715147346122827035131669679656315303479980804719479200521315793092700887197391799740347805229041602674071013703759768536933223058445331557878942663427231139033908676876424346592293358055266670243614833161406001128041491149434288774538333859578390529978047291586373811984157061904186313479398620507119483069667706406855332418651025546530531702051431526580683139460526522156704250027944677215124016545267915045435877893100449524981106879004706595413700875949588014472043558531824354268953944105624898164817181969240431634283570787780640056759638468362042402948106699058708167593302678158160428354557758086045260441623810103011024809291195507870064303328247976992612398705305070753254456770840519572575157573207761975832170795244695474754316849659898324165809382213373330871900312629790246993797265334760499069788493373380882453391860153671564926311382578231118190253631348930964784329168824043917754649044026000739407693196193350423382699607314527044643923082052474111518487141355278432870382658220484565569694728315863882422274979726550118842583655719560440983685636189045127236999301642872495290473320377018265121427080536890097367931927156273575305297812831819328613677175684457943738847167228273067932188211807902617639204138170874541683868289692101189290180241011295800477432607967637217542959246971170504714177304320191284015996054992756081867515342782652994011099647013234121681654524119311933460891925189860470472310629999902907675802243740721952984510557647151110271250996030599071928302046341037663402315466577002803840303372696292892286390802105157233171143484389158465002616118108772774511362517680947802326795952072658334669739525371344817449521737306646333326152908121564353490266667040957140103472279993817681389256175090752795006763263752646084382127392274040314298105025323442539151975256514773407593896339700265565260593272285661198138305590098599502270087342643788909687661330561700186139284587567968390893178649094201740033688348750618076273393413279816317934904843383443831121905870383530355237491468958253611099784780214028889590984749005857345431582883689004411187930616076429834044709242882123552296937576870846709180040551543214930633726284559307327156312892434842979795470795716677100214111047134224326229526745995877153774511112523647887297255302900623889102500563437176416625738382901213269263917296093771668927814267998295062512950279594103512181387668791022128397379693527517657715537025721733142979271579981358776390490057846426016431576385772517347671887890251939356561374286976308036489528326973761047546255496881489483157969070696866639259058030737294284334587578539961488595784564930434457748298727699046738755067035259364589880489027964588072035945970894195319224568981259616023631780085738529781003943072541601497188435896318488043464516523328712115269537696994616381533193121165835308118365536978801616980051198079551747167019526396647180696350373005687561457170826247026467829679910889510146377555367908203706885200987223079404708384932153722407629066729885127727704175500608617986364949066050693480621800705301470197399729378327202240242655517895593110442700611248547223440235422810987975466663190391070631081104057522271398097946703959770119291162188861879934075581655848781080309313406690303935144818178303102517625189894099788787023640993490176077279648672710464761348344382427297715392373758486145093297081760861783148536236291556072502753918177209808424380310751402597266312473418926449255093941051849645031552345483924600169436070054628193299745942170772894680802953212036742892043609419076388921512394687992369627368160606398664250566453631919492195138321141286035016577254057419852856694550143499041046479765159644775750577557736009701773313279639680828237085287633349139040363078605995085274254236056320708134328416829819440298811200518736711066450853027584572665992810189762723996873895987265188562208283141816030351370891050174929262956438309242248981946023396878519033654044966464080169925798040479500818789715192395441211974321858036734211786371225297674618589789967384460945393748266866935714688801124312639154639498887311246177678259984992371288143540652297909130901185666064402844348991706709898546164776679162320752033867606608686528085833032384012715596145234148720563417668109797294625597028029973702030904439222779334168811815845016136966349010838272536221768654403172457366772110605279553167710944183501242637693241325958951388962450985519675078256632875510404211343666960687264397239702033453361628682099136297045173717703622214042770906207583163756752418189930689352191983760977736816247301215155853999027822809385483060571677015546262855438146491591670514493122486302651443932730881481565377205910523092055539088169600932877498886881930034111117855519761905058774420323192636897837119229838066153874989115646291921420426062362573199786445107712415356596261829410678315381984683651685681907972598035435220997691777115962505145152044282252303850060758429461645500245051869155586867871064254901963437264739459018051009860111316219305847564316615611854346784849829631519049033728162691019944457604822132086581916220041048679189845157137574462020471088400062475246765812617585811687455306650543841097697615351990221546674920164705843001487893391845893487590136112664094713151034895785379854869972290385129869754446594132419478475453698342240541922906714299609421795502882381675488386575988777130075653433339963355738016868942008215142598747827409739726394792979111406608130729518050592183305401297793486214400106273866833953349033310645007796020704431900492060432574166706990811532460925811640948314344120661208752247794055046699671664222091925476704879900696902168107369701933319018581454433285269299722983248154801427531935456379557206582128500234845701361236132235738515909866029788632030389733661774264112251753882102297510334244287521086749079561462870692363737534373714324812539975032137025044926506648513115043599953122553039858704445005457512339141927959050130811281775347585000131447650137870391230085900653872414091592724779397326388195362360103800656297660839057608798279787851403632233269101203758183884200297348847302402183812879611762641487197025884160829180425352924873817998606185934443590613238968658762775657796454297900229662109076868676699170236819276877448612385399282714353622962441652750802411618664444217442431511883400139335805885506032541972103292411368883870175297624876288305938348371467082648773072874408488008544474316226704600938620873426263715219665976364095447649139555082790580643852959706797431511861704764468723151015731704732949318626453097248403803443776622221022515525251363833192392686185415564914837402912081316513437054029412439009545651025582039871158735678804580329674740173300161370407009304305501201272810636923333876618409760938966026176790718850556582370232107988045024261960102227674699500322258219642760479198999002775498490118315764929940804185511526021021646247024543209860981926613143454684796361413945637576212545769605849508894243487022622797497735651569626260804870097832034811579031245190793279498412757181861356005258079640194150609713618216874527370831837543234363936978405482737988935761615228818104622751305641360280376800339631482982235876076094718512468466191105264659413048492522632767258595123078066142450208322544239497267615958786362128752168095788412428814553714994572456338067239675337316571184634567144508144885532921207225530771616305039491111260681114894387081853462266864154291405166875456360518993602024676905949346672436892362814371127330298681176590683530262685573527381892177413334390311385289885430004138717549795602094032285709041388527613261094136452335852505482419293248131966283125853688528787535442516566847285465389370614765421548389258760017111334485284507879682745470518438996108040829220326390251241848675583092906649545300262464893240410047706662931526702403538124887143461908337198351872906004647813181878626896122373555239622439272850047903217854745271794814633261063137850804430591405704566208559631738582530807143402068240034726967774840142854815103247220499592800051890768418492238186894336982125223066978959166421011934463496459877551551940342391850772820673241300448807111687723417356376383597221004888945106457504380133166007269848456852979133352396344790060029451024926632429063003745690239537882112113618853846630531702014726746276918250333599555924497499875035794254922158806641373687620926873025396318200914264008422005878118645138060866354768321212010639197428977482959981022250860264785364979723860091693872473329722716454522349460231479235495390510600525056467069611923513509036865455844373915651094375407876324699159709647125806466777665488090589636100815408259504786665993121565465506953878761186290183558641245676897321040693603336870446890864026335117358529840429314781179426191587717336743847011156609201232415162320674358693584299089272593581515021783895693134901104721629859005173745581589300142287686848622425806315736608880512178793266612563907140263319657129820744369105012304553223316344690564494437911368181848427212551999967997537742943565129222519084784691157819133311992792597578185036445642306816186980511725796123864724444442278327243355920469881846669638004452366339080578982360286817463531985050310961127069638116362088828168707554101322453376450316211657310011959625460839661567340524592247943446536017298512771996462822164544744395522478086873894837615257691175735699311832207039317012079216782332953734700636621146186654054046639101177310530223138768413591003254127559916654735543042472785219604482960084215909365876178461738150153284640067202616301864683687283246355614701093868082761360041173652428838307782060433806841599398581005193422866103996003407271744394312427762293265655554054988644848208197650207319467908316263040042861143857071880738723271996528084849640454612293839523441908047478471003596582528838944218176790811845292652310246053346007513492801506785516710208004093142643105160345053275672435195609992387582793450909058718412806267927228679421506586104831014820315462868732619806826393437058601859727344448296017247292706867480706053919445983184123576770417041354517775036237625059202835005552664588811116652002221919629607527538906250657016747866283222783078751213779964038058870731667904061608993691777876625589199229188648900702048507063728592058896274317496961262808034775260768405366965814499253299390013790125338597059868165740845661082503537602118106139895202738390733416684988862572303463513900564262480332633522374012062530146292880980148840781554574563798124021297178695469652884100907343812683113746158528984190107014458179534119688184902458074290071526679756733885506398094155590301455111268956428942210233960131512746095750247992978818690825302848978491672654131018569627547281670637220226793262822367391667321058416943897496026542977043747565519935286405656935564628364301280142092372838188337094648638682137439300025291914592193931096896197720837867477672620952371795699368452783394806660989301267702650548963672592443373208579648960388141601186201873623264074782044024501796384479016923760960007829104098254859197395907411551183848154918713975781176510467728739718175647026164242346106095748702152854360764431088918402217461002981961785540003026288021805950896415747612657239943796146926974746579964595177377196495982966456278618389309235481106969563318401860079723933686484496237223890959734884186660698902138496551028519943971610099671995973878406601126012884620716335109741884587910559339112777073717979852288718565087282828300734014158895031254860465355909943198346995362960042068389095123634686616638892243127710944149223984191891615232126602137367408403188166932104147364510513151789320689626347000099681838657734732057473701863506151388810359919299156952338738432068247271166054021264341639515108127700547509004526678381751995040723136980088874910522837682979523380406745485470986800843264390296226881926209112874940102431495924445554439258697836755389350521782985368024895417159200066675722288893739978376491441291845957742721139446137679998747043963247450535103752390790741296478752460565786005686990445112599756415112993825392340894226596894722843203971503869720661106206956211133785352748131498577811754430577082873041808409237834887776828901970006723512423236354021660298767105577987017231790643816473699884078594604557791965738356626547846606047178432847998685677937488286333470728595453914491281792806394905414512631972058213288083871326832642332406819900201339051986292995825074895986246103253739802382954901073894618310131697473473652076082498450914580296063140568806261372068034282670245212274954550745527603300805205626127052613872725355669226493767127857471566839231429995411302912604227787803587062011993295768463712873919015636428789381056843590287670092431700008768080307939405881185946128004134657191983058548998453799654212085973309792278989160423123111420616119289718567022125182631198979936096635336490853574894826313035341077067251100609900118103688787323784221920553417127471898174510991754690588403861446225532336387329275190278497025873680401434672271060936937938412188094905541258584125201159928808766196568841311910443073535168913667082680677959599124089662699858500261265655235756434086115658093117466441368666549838623124406614051760817554672665546919063658933050910097595811686712933960358549179501700550808203089097676859582198436657043840837747002627621702147271129644942425883540515412703929558362677456934676909457148043624034699198923281494493937733705145165317346454064793218542583732616775788037617909617075438865628788178433526109802481521909677816735802391453933520100784924975470125039645318735425289536112076815270595504369267713073649103876329748042075819732738268348661103789975016260627317929877660356093823865606711688116203641904829948676162472793723102566965853931045871619936130524515747773170501325970947390808426283327744509964775542902744639804347248176785779273167401800765156916625549723340343356415963728234277401366494905018930573663397513343363971856050151939277336072056999550455280141011819154166365242668552698706252509480125848034185470317916483546313032077207225227029376781932759512728644618022846829102763965957084147311464414832018159340526065688259347081095934210516750613857779875361055742294953863029055297714595335786522766808764230022570427634737834060891778043144081644252310136490679652601663619040865162516180073789564942045715096062051975565105176849190165828952254917004024391095555308999768979324757293159244918939804332547506261406122004047415313917262955354871837731411969791673078542723880601884453995077897062592858203753061572400121564696289281384178836820679313287758208331512431635377393286160345294177163666946419807228665290854460518735017750734457192406058554252665327048135621825310879843943330313066208278139680704524282057049477186397420765807906346650310437943021328145966858535487906690974547176771175383301904394175424064162944716277788198127051349044813318363862002273163121675574814558501399741869887637733583536387953452471125347989256162832281841761969987379226072354963929244842841315907092765193462305873014566243794780512776221201878285813512188117018999080834446605159505933292694800664240286202052361526487839641807498956331274687806301865461142750104235618837727576538117449239632076497231547971054731730064103674247534748580089202819398944745060858674133848227945284776165807527503182228440040922780738612495591351874373206109182990677327803844652604390550278182237971277487124821288306783569913511926944912298192783142411079468952348511757518048505391952696605960842047111628746079405531310841582453647146893041159768063896663198648532673056623844011265330910174579736917146193428781281792759280799420495542855920427230406828416775681644339555963164188594297840200017695474042686537967390098945782747550429431035711748304027532818966371983879321607618865968502461463815844556794238810292364032786315503980863258280113069489937904442474992457554117708198051790526550992262469712426754525135058899613808299986614445535385267315142105110600376568783646713677425246491409562253176447469185743323466211985833831814344368210341213900517855862107884016407429823538123333720276525942703140036661446018557560807436806135947634497838739309017851317658284506484774291591585979901538667576605080648318067387379784396819768226429911891311528938175426611865950938137951763453300842807817567615395129362572631407611673946065202616509181752667303839311932338856597496464043540694477393948932577745040456537841771304753135254844513359985025273741574640738668015039790054532859884313735932935659137151221893746322931003259635793525094307238153075877346595829626057257612475564026369714134606085677696460423654746714322527655928345298374104600493604503878397479746085533620602108029307375407115713489469297901863323211977269329528289506194592481663075189840078037233129445563693452150307008113644925186861018832107065313422607327983184705883958034934103929324106234390263913664188973855243434249330280174698492167743756478899543980755376623609814325622370665333277313907446200924303175210330300147054499729006279247773419360274086451390661160733629013274130478331902500184380839707550962630351454709726393581718001839299788597630970502990956009229931796099854150379441903682963216262981174673185106889691510631489300803581270090054186677725026689472459882540472313452506299403499529382615325691256617047134968446324404273100692950532014727942627367006804129290881874259568518993890577937916513555905640557660840864520370508867206652664641204356732016842605316504642636051822981762315969602967710516838233244308738711308506990059201692674517385202058073043008642201535919103899823086767577387475278445464627657273838802816067643065972399890726863592588501936658423270955248731408985635222757957807481724301522134002674505117222035827300010619748228062332087175493690609262312585692414744895396200529001579751746394540129344244973749243781652507872703833635205110907322128731156588703508276033840369556848793519221397715328610889473015310789778744954839863358588450677859496216125494271409114949423143511666620041549080188070606313983922450209221513908646357225664523086111874688115258321949103975154869566183236030697231902987836446771858938307345762178006595531699511834965098664454901084704508229732800364322672565638490509759329954673065797133113583765397388268906850479520410610915957325941679611928869774988124596988678023819824688069165403198726037296495407735763196951222280112054027684491196797693340194368445330251349142202989975586534223002356829348608309363365024770973374155307585200553185248385232644508257458588127255646887596748061121314085916980561769874537960099502007708010302955482248601735354495043506837006554727230560146659276384118007349351242145565819011178867917736427382960439011186952723348609112378105218915489803727794244553125230488762513976617976577760786502954964734673197072733254335802759268888200059590038610237578095742859336576162569409746677752300655097629576064753607889670778374251352711159273398492505886170803039326282158866803025415817802748423388950340841560221251422819884450752671133821813414482181665284406211262527695370377850003087545176535097119133014066215065233581159189032137201225427627618152751417861694853377298352575908610756283907671703188318372485368100601922399212100835569001958642545146812062437354665267354268555756470006044714121875984267930907906957444337106097916734930867554289445936822712354550961897636892624594194279277898785410149172200221175687042501737839089350405199885051958607739910234215784963501412728784916495622173859212225682502152322591633278703010623021086397110634643405186195411553934594691744479178940555200549543927069108159631946485487166766390908270117524356133160109597531391044621701970177549663304522497806852782598759437359670038648659849872924249623494472289974428047704359791279650795884722262043691386921684643709791289258863524024665655913952938282852313383533942403846259071869297015631155278382703768432256033345544926614108046846549331412195057776624669301436717255781727861279238578830837237521187438291267189135226737194766958886938627516409427146702270108047203912672619350324161216692363590577082299287489708564009147760583293906121816548778826460850338796336644272818404186960563981560245833324892019446250872095792229977450705132432267340449238353336109070009687360399217459390484633737135351648492793082248390276983467113872157013311256547716454948006207369815609394089351388560765230308831342568615935745941122824927855494471192424984291734176261272539018171630009108206836688496423859515835982533998150431422119114022802999202346050596805636060776788523929437853141422929759671902239839874158539078519611642135395635962583232866032556660928160584378706900298322552164155224789489979628148785363327377513650810724557278158393430386047849781092369631526313541036623148546163006665058503961293082785535136882778073474424919475389597368968433776130928908694151940424928911412813026440012399035159472448832683735392210815999241257262273472391566767252710471973839917067401335165445823683428209772936789966375489430589850565070809046046755152995285214069506829600224559575958889687171477180131982789052632492543763846776291903031164917603543622496370712397349568349177592272512171806547146600634293344564618769271084665436576371598868418357614103081175950329201407977326398741545927294781206268298960544008168151983631081285868333663437990532782188402650290759591847094080138660675235606521731964690003643611655221987065238670247863976290807213053724634394006364107734030650223418713153776173381204234726909855702691828012440119192226948554697000974149739566024876616426115783677838495169842870270818381033025883311254459919677512097809275494672612327203784941139922962603243590454991697151564907381517995330332609022169470739560774223970078702400692248122226457826436038712888638953545207719490670885682084117138090405051251619923582077650338559326171358121447764847218112455038277924232397875323230406440090257158643241040856124961643571032027055859367603239534236057512482756596918839110865370828492702593145003597957157921642474182038708749878730055517258563399636772173876829400393148123417180371076429289954954920766503250495025560713833019417407557052491638176992877888278901223725826205886546163208643592319615587640304303873182280003225346707580773692360310208606641056743126819131605264686288357653366673958844120231382355736531348397553542026403792525697257455671595642124972862965620143076754694169351974748240780422222948698561875454593514826507712729253582029615260857110821504621528898806330523562684099961083476800183896531771165636191999271423349221786259199780089667568182136578148203997298849811331995740342290540098442562425356854820284393151537579709824840022618733924345320525372421528111871678155655363490913971005906645235341446082839698340142097053778811853919408594300989800497200292765263280089269501461547173788765658202563251440974061462004680871553217709932791929723552491087925455197972699365910975487389792855565195249471161636395485226264542856887784419453353923161193357938264152688038750655016339101026533427062436348651024246663627816362387382172279693401429329305908241628089388231498576714362876456859783655850139877259024883177684102904939313987886149706462710151191052455118751560128860182198426811740021328291193398238522491225794180726383791049904312367932261717267105977250612320019830440482996892841906463731003448538040327217358311826788814310754731483987888526127659992748565151544685895114049840762452603910329280042554332515921204588232710163017228702330555660347357929177734898897654755265186864594059001867139780730565268707641920456529827000556459437577207813121079566122540942080729138990518346111267250311939453142394017619703108084169259834542254781828324733126115797468259064404391524672134505123113136877228217076930360624261414031982336503566030524707896153051151917489988205882356170898917146355557160244024357500394284588067599020691655789254587757671387146807170001722249327760816443092263783518258872111121427438472418221464928021616617719259265436050167053507349569291076576184347010368788477971226348225555910702357635649632425329195735884571316308055532093964376735358755066680082054369307310236508729870231055537939837028586197916243288427781064245566450124280082385248846883825953853211493208956558686964060703835178397871810461441962105160527934555807651191839407998759737422660059088416236670651928466470100035243937811281713738905102300160910379197445860714896748632488862854724693100362398064847236686895403958220598621473342790895115935041620032206875365875063432226458802590630466897050908990691992597771988149239984702823671070399596491012487877133553337105354222059259219897951843974037458641600687867500549526530628433114681502532292560614134413253019509034399638985855679166549757875649023624171038358841734880898751779903275228816090959837386364298713836369382720907235564754797133720606151610963634914538022579824363888370707961473041636228961775290774461138573012239996358265666641807906830112637241285297168328691856551703218357384206369336118237184626879434359196680185113946711501354002365519010524743278615704046111292852349575097732920786386827798420297577011571471255521433856997264791537540051424454229393499172874336304074928157567479865639962749255129488455807407219935278588421946298577437778799348576371989779087562095016105678563128700898734909434628622553272481635109293404032468044325403345250472482771829986217358776428249454926333096731966946686004299952971593886032892426209354065625986053650667104441817645901991392224681611378524829372602095633807154555823238845000604658576650457060329189726449813660192797212648718724175142669773201980899881243872932088623823046972889896494273148682053836286905007175734029346819788123560980261414126704692057881146288898320287123005557632970611986628771173077976488353008450434639866786546945993803479017441857037446777975251189719080545159025120080014012768698684230000282398607295976541484661461917213304264221881638371008178752359054632352170063670716708546023681802758371414876230479517582677400975053638385688246521938989281697427413287923376646114879245126646919901532446464205663212056129121650846225079915699422578497592080177480566753183764101622858687483079840600333897200060004681116630049604358380731895159052001857627854067456354357429421839222463320864562889629524059137082545148797583098306817293673544472617301220191767065894205975897335874555995522324261915332162485964257500175884950022284705164917514306670790488314830822949938039599949096987880751418039841017758860357374530589129606398481389561576418558896731004481683754071167289355861924427864467158536180806125977242301065042753202347382730938722722387327709882520549834566015936232174349807213090218921695796908673465755200365540228594184317413552156687845157714889665346551197936378733255086014244554931770346475882237224843062422625648386624268303552579333351067614358800820124107487631139649753301895624279789540164277647033790123978814689755379853339869823587893294988768059331696428791122293379341760532602360447539088864609887832972759715108616734990906639498883258211274542032646919359432246235641294198464835747671793357839404957851854251791865401163699323167738468993028015448606534848671078815199367472167804607728733844148260831239137345683594957448707137181385498380147293776044227990652251025254323415301542692181093782828390978822855161622806627881004159967198902984390127229375468921110464654867771950398903445663551405743366809253144934409451088354870897762665984034237462867246470108824257737433340132605822323530292672885889834737342941328661743186461855843336564248512868569787493967731507557270495995313150347473038690624416632400827043215876722988082543955717812277399916630980584308232943151519243687959566427289904105243386494717768815979319005968096883373582861811466391686463837561315105822746216631463155723503731640663626006365838170651829876664015644558902253647063166313658097630905129750958700436554374333781067049402353020546763130867541431124038685575242319728240446382359941627600732733451381467786541680912489008091484045612570916225366448284859937957896136537900612792300130194232548382185327629528109943311740578362422832214935002914229109987441303762910983121009606708215939809791787072699668819196239152406381310130161239499742659286030626839243074206372077619991804207182116349131618412224425291165821953447160392183236421196852414148056674913569868460759003187685182162007336711920979597552300948826584586151384067418662090759502119600114757371534077092526886243179815469270049887445817448344065146040474820230970912143803893730449255407166501660464177842460676311899271785044515047806728572274950004614983902176829351120782968562357637773949913555253401007088237126174566402169222953154458802143140250922842272499946233666033799421908617053425398013435581980571816111559632813992149689085635088385541688065718996677285475414864163011177272736711673753639867038718818293963219367535357574835658951395290500005272901172347140217954665219045790616098713477087922801739690699655851922465181943306106289194919781191113456913633092083420667308227120651731769806219473048635135734938862423358855725104810804780165696169947068493250408427487086199158471803391632023349977248876540280534081280363554582943012759880827919903524698873951353619255805420261409769011221736407664901191864839318262230648694133956826842551235646390024297079617496294532460982348038669890583908632184788848999225407585267905233683496711524903170120803793907140048750236224076860441712878852606739504553790720384395324073200692110421329893639969369029121388584474957070635516692975816507261683721110921863620988796575447263291940552162863522389625042681551266476438144986540045436904483894364534361141155034080889495635751161743979296273999928797254005764429425113372504744191583794161190773454859412768332652526467316682975291449429336792070483361774571478590173051340954279618610641442361532384450573114098303296114851299820309232991876348030512973595565583189235716930506491470386126935778710842854446905204309111023664695723451872711871668358554875842489970489527640154015934201016324662275279780494435551149277343548328593373315719818740152047024688128449950344090323364975197095264528911145334943060327434265885784932491682275438307815044795780978237393682111715968352885442259689577598927550979228805072649524235892635435770373920935835802551764868753006571391438880160848517720644149972533852508513574328616838176458814272954446624511288099848602661163179735634999687142534998459325113241040258578579323955330010216183045519515546441954287268683978337759995241987033488440693110335673615837498053777818234309136867118049255304987670347082966766932530138955238216949127543389683157771311288819562200705423143932640699108666393246963045648063606182236607337689013307160026926145774626516000655045383755792606461919672086808678643865971965698445941410278158454470711376409039894976528000073089717778958723856182969522060000491184878394114214444781472434706725377026860021453998030971289960340906302697563398693523709974050090965984624604244184331237785396786446318112675900659691159014387595187974673316903618707191439967553115933777063288917903550547957023098186412971714763761586959112626147962376230839725259719092891787674522655025076279208103150728157597696651381919500780321631491172333255276025475859351956926862830858343473098968446318023345770558161877692585714020030176773269418993957795982875720411024551245827346345841202948227910331276251020633711602626606821068807325993307085489882088920538711416182980412850350995242975621043127715312749061414120457224509971830925794206523776274526688317426600852328267448981008046085458008697578842542695729486028939560058292110823638591169911746581367710752974149509332760009294782618020644629568374411274554769092739574515552901529295313009779487536567533663406355164078193519572880649198818394344810689715014672273649284068562676019019972659308166482180854387322331287152995631294145898874288429059066931703938300326540538156511245556812071516390709342724433719704376141664377882946363118246934155307337114324870495800750027897330377207513874997478801574611075545136244679424745717869009343578126948094143527527869962109344342325885172324993588595582192102250290346144366716286550825227762503035659701562192868319219553365202733143076872328634783131551143128137115570846563397562498795153046733419893990316862025722007491530430616570714580402929735637445920010087569738509316527209077960008089727754011804260784577372440162882119911699551994071312202505283392449109052880903080395580783645020470470592069189363720795873668304806008246081467161528585748055500381036268740188079593128017275730428562351381051168707491054250558448792928706052904928123805112587981930014220880907829985963994040669253037290187385865800541729489217232828631930107530842399658342144177214945655829060875136344176172509068143651225683429110315539523439968188406905931707144768032490371737866496266445044813303391790743012666499495632192166291146265927182964557809569584468901048730843222368623873578233399283571038995550881379962405438753433547717986407231625952386698777033670692577374898822937034081172754569777199707801581105144022040135739930600305981718468014943740667862355591011649122885261949950162977770969366724364054727064296228666504595227192270880388744103023899846039994767320391830838062512276699806838651060943905623781538326170730255109909025109191107934147462267434302115677334258175536220888442113603503900175773290911873601581441204360747375855045699706504826361702217931826556798396823428503523051245203364893312312557141027864816443741564395360799795775941518269644918244907201133506306981501748877709246596824360078923835320716477493772992459993146928924998333080542295272016472823312426249606702374085324625129741121535690268952107590946378838153860941999118143296452447219230491870843408080055523758451868399284186275368782487395254237677892981964660832643566744686975820630078832762448149198769472547116321401818493551234061563354660472637808913666178181031582991183894549295922833871598258501237507908481966269632599190935140182338137435508428201109034971098089283322087892171172888491564436278502066034665326175287930259726691173090638238990876571434037528733147060319956313175278912959840082805418254515050636066497898792420314984571085942629384748881510569535980981018691010400204697032684448741647699823581556562363914221594771255951377200971853396230737672403909259339966108939481126628037053012879967365247484088841670210122743904764674890610551207684186424809478890935790068249759824902265375838166805109442818115635774916764166391809278351586237243688718182278815350671431160354573584455865182450479983597885670113694752384551161447442153795196292249812226064314718155979574325147587332000629626047815209088467938511877630793673596701399798229190907998893260654472219619705957506231625018689701799617132203863865803575309736306736216875217042404643890867185470112784875655305979834438512957922318008483761486907773555767914031446443608023531909528971492166304725475486565816290991950271842066947159821514755179826551300665679885129895598305202022312070018990777815148308350142598554286805091630865415910329991593510419873248487800607665054649972412934898235387073071561520832551435765565902152243371299958437173181064487250467663056892633061150836972804266064730057822616759901198474882201199525730059410942098367529052670400989997339324560068167412271078846167137215950847997029152022630653954812811426939390458352683028757488292603007404519690192168890076196853711226964194558668258472850675398892570173840483860238120970826521072846796821051119018078648526678002800413932193742018716643477930034845597937385940615775864360964603736692621017968680339572769559831242746056042986787675566081775393628464797890241864090834311448125200510584269578318881638897919607867933144450298688579371574720986245283699218913717071571860873373219700355210450610239422083799353716653507310204731897832675786706593579064702797348346108709516206828180523398949666069629262137780893395638847963448456729439039676920680985969100401360811829701165247870972147472561826417840950529164917346022433927901556383899720996582423627194003916607960520326467995991064490198098016204104272504913119110462031264390351513399567242654894953912198812854295739082903565706650512724833670672502785065029845594653139511056731717728240860540530274461049455696236151427213681462719306837939580550206142757277434158826805394623727797853871532621459366040742664189922546542555158603316606069229197258532244008552541145176487737612667867251917702268542032308269446137704588329019903312021876327466829107771440261002064589617386547536736209489682816298460364727022323929090982275707914076358445503588309189052349575209330335389248445908228627420302509634334066136093328463201582909243610445554821412945781441916918149718170375130472474932668966179921664492480043307932322588177156802956207343120448673600063979688678054596389237681730847112557605900148806290241021198252422913576902969709424232655583653763211120360015879907806252458490554451359195471812849161876737781919896519533914412948045722359614620497670455983656454001135415761708980870458964063472761940171398511813292829937570143959133703259234021635917906780553054248575530775964166746289534465980125755974287286825530244855879231070280956384674304661857010029564264785596011096740622218679084176456789168454670119052975417117046132220230799422598987666839808816529072393403841623423733281590792492179444010312785584529502493432714693862765886451440308836581780349092583568601938885137427940338504210271600386692373046809337775852249810116907824222955208693665938276261442582556241090141433176819946648623648106845362340513994116193026952119536433611061660879810684157249220688663382798774530343286176447106392702052456429386560369810695773271887392935277128944925833259135347934946071460443135965230903577968367346664589568978066234964165988415887286772068223112667831940859619621669074420445052922265116791523067697185403797750808840994187942679739261902079507262505586538567184017193118861663245099363405080971361345104872194666895402312118886446365341089798453318847588134991513418695631144404036664419152588607096995306436540659593777920996405189315897431857629111653566120647999993233592683451260821603462466183479202310397516871383189169013984664564246779093825971436969399458448875501830273277572808718305479882315152815537396867328005871673790231099213681475536446802660862420202595616704643126441796007375559273960128389447806398810796505163988254241085323625148079061327784731042098320018557140608746868465481583312274319942375316560234339976052835666670717064669889342067583776488849387206476949723454871807956589701388837755771263650093363888923277911149706001726543077781130305075063933072417673780095816934596105879888143106460397960078023285523319633721141419117751011408779645371876927295347389502330002985421906872708994028499728439727290545399165937162457686015371595121235459058751997774974512824238329584813341073493401916992484559552070257181195913123142570641435356573442089970576039019222508259681510876762090630100184838197298053186049607173299996985502216412371814111238964576847616167230893523518102028697110269404929345925325815196084160048785274608547585509187379968522755330612624159083882505519375124999099051734483401265849035910163423646242918078426550087449357529471206221758868283933955020204015956726323670731483803068086517518158533485021403804222616219018551618999959249245382671296260527702136296126231930150042982461676469814502823279818277233835202303656018898403575500747014001488645107924796902810407694444532365548804092396344034286186918941655632190473593146401321370465976903033901655201841016586523144766195401279606845785201974110251081603477519326724540904738683619815337524868984351423876628893547705327036037910826519568095583844208820800000966719310333312423584629819695648739641036203643301784721388950775923539409460692183872971464750162123901065620248486101882299940336675586809553109681020906866221473105416521035015613762979217315019913534121078351520194907928418140382759797784168433938411427246797084710583553746876114070332592571498519263072705601275805871145005643874036973683053640910087319659138111195322845797828398623412162314733890914711251543180493435129848218099806719531196593587922645512396680932731057384380562915463576215104338113128995531084440418793176793111327371944529131299294721372654026833377651730270310220042004947646712778178980570381720254061087133720029725126605589316984925221447045262149012659615283446076825180010565204046830163336198332287400552524572507353162248025882936642105849418541045216139962003703450653982440214555129469701077908611525852730776318064100614384503061933302753265419511497713037427474202299526082057587124459011985410106687549291456379085288907107253848849685107024574167499830818960857222377353441965876312188166580567176230419556266340907636964709661090473193686070030748434959964122682281909250680918619698842903892879366087807115355474736434043521360249375622037809855201209426380011842598428531802501110918075693952030960456470189009063697727929071722596727775450404630712065541103226434064796615651350758809294707683582759921056115608353373238283257468897466352178769836246241922685070856995123454977756557344571681650472567204311968888278147760458556985949731603694932649611102894624859828044156553909792740925296249829324362026387633969823365213011293576820141211809781078077014585831366218327515459393125844261156249629330567704455903630821045676481047613567974516309916737562606762249968068557074574935497095991734461705023788006223451158714696799719599915639934754442775609268377144493690184855029613787832613551313386273853897723573120546669047086746078779104414871963257799417032878842630770390860531966962551644582255404892120836993968911078832126245396531907336228882821569135830733598321383287811552253970250453176982924147528274975624319968011338833874832973445699094017967783893075471641702824685240456206819508279605941513345953052962064159356590789722077156246534664301545343454266558891141256525265048109767360519957326101142921740029392387220051316175733380442158001046552969445812309453469500516629815214366735019160789729140945628607132841489376221230029236286555067846655830689910650620997124455471091631474671029937809815287765787229610227793167030364640537485317530905804912106496540503797134495186543504983119622240419789570849483590531362450700794485487176014072824835141514460474083064785885976959002864861588887331107698405501364787383874667946702541121896966235033687293714394081581569972345457979860757308217397524792388276003557314460053635484445555061706572113264910951160281879683428566410094941021374100364198453060925310970436734217011064689385743407618911381274119929935035440912958911359372554643691876249609349260557830534318969570561938793239931318461507602418930194257432952813023242841415397630685611881465764231511087404300298224553866138498416890466394619768177581569868513953299171508809098315288982895738219265809332241563915374952727523906150536110995173532215385142213002296480048371780371172002676372192183223146982376888432732424774293559150153584659976990837539370315005696774350983590222559607995565286954722770333151998114713887349615154027513227023936162717686007764237664539295324809699429117408469167933692771257690553091935602333598620959724526685026412238896560899093886265279733435050422466559357586143855707052995191436813859184944843026175995643600403236202012478669616908673529036478456935392581420989097192090635488239390887551766679212664393767983183382033239226186358628330546238501834259333907133656278912256538809497973126344833693254969655741525191902187498030256000748293816298801872642587914895728223009123882621164864354619163076380670578346443839926938464046733784242882734733710803034446157185389038050635193694831176617212056509077897541442137372212766094926171640458499039960816427627999839353947309162393901916609735986910318274520876897284249241898074194527655028622044192934069371372918797033059369684256915642504082891335965561300850242946318880946552597116874437384236835744316010561009787238338187098637324510951541629030487655807863621151850877749325930491001674950882712165267081587532871660666382400107924380585814628637871441553376340406337585241888646057488286682856787329498156907148408751918957854868463165208844293382211761984908526754124332736217575286887111367264799581848197502495316355444227691848020234913435208622049545086391036446349746191995041301173513203238506883887318132970901356059457281628854590755637186200376398220735974831315166580650787503494512034926125014905881971359496952301839139081940026682191906773336967573376192350713641612675576721725562430372539420134568688234144793879164958039726048818777784135325287226638349055029660334061697744009804012360756632702877932702969850401214314582496859675538289233555517197592561871950889981721090786900329930755940184286689557386134002338374472703559987736638004906142667561134722224068576348996451786216976164385333654755947957387259151700594389878155978870232912259912250235797967579271785526742852555005604343250487846990216991921829261198191309884470139273618574292450311098790467751204603059162545770667124290535809598952323057929431100980467418783076405049307357065901803010652202118377803716079708333350460264484568271950327583584542321114005356924705312783788772582195821628855897378235049435491950092394649222759625966916479109351797204866294815659932103594726544241729285023150018565470620223318020077185473317126425720737593015343062855175601237676588056902192352824196365317353593425844450688855935341716550454909444664308863176163043412834179194156461927680047390162933987132218248190104415815155188514830619067477415234575500708949006355099630808663327112227288673014562542064126481583958860664828341875331494881004028939181152111722293649261169085726495276191887440214880405194909563474103302246213241756288526469051532882620325988606398099914081328190638311242474579483768477463290747574447338976032725063873256737989399804572108306306028555593100479567053697689809021647330454950289208906299270727960470015098205691760150850847673656224897987572167903929605042365345252270700423514813059979781432519489031051191018502237429086512301128438507775817375522042225297721737467091859592002159318792731231348735255561733644072042634345596681306740520620789357187526332013377778381505913454740550628910896093325140203644528246744143686000658722040131181785702877139693602285430858224147910957432392655594876637908899541334102405197698629209506184762530579692271934696011139924997482884616143133037736775649380429799053482438198886993113873429980489842312514878290880890317832526455887036132676671020757013462869788968569613888931181685332541676892440194808283611451448601735624369923949656967848463027529405117185535829181694955835105550433592877240601628512406362607531845361047780194019130260529317189155640042072861397298881797203147670241638684845628906310343334486188078112159619500296088301856491671894374656974122310960122697314550738837327351118570740454237329998079963096526998487689339198329131590098541766620765618694413288849954069623925524769844120205880776283987272940610611017498555443996093981340959375290497773917407170015388081107233723156696878024941912188272888716515536423850024995318723464732459800922771345211672888815673617829514947955460340298550648651962186582461200267962962119643141636236666938375239305373872439380835944840962858371639392984493674519866506585838828517274563092520430627348192155679767601429723601697800230408629905059185451568194663922664039965599598424520623114819995763656444740646433986311690955047897669063687756221118775565533077531056285167717139958284054064542273367380424991803178395499125593478799192559910573134290084888348227276424153313484668627922369626323834650362163637068527858105269683021135596705003963727106786668564103877232953946239102749087204574448760169277735959812445065985313976469303697032026227111813236461444510835978118843894386644222590300607420102658952539920808020525621612848599493410321771971637412880288140666085426680088474078652249749742693307362701413231578386633653382905273034052178647661436380994983134708927343729801755812845574457170542098100676744150222010609936468228349111184699361600378496135990233775025236274872922140539949210939178649246229977556114394401464867878570940050859009628372115967575691470170123904500105779026764531111581887638265425233612995549386481890225094645614651865393936259381044661750084146166643796536859432456454317036678017235890722653743688556918105238387110885662525850533938613784039794385950018051913823898431148065964136829338272855988127986852972920999802861657088360595674308918487834363632099117189260672027034043950494249541456335347629864214271614332801728344817690949245863052502682413912541952344230482247770031834813169706724202732812192523789226248771144482981538371236101208103869545655820975403992970095162958396866570883875213895129152608810542879513333780095176867538106849869998820691117129635812226235714357025108278854887157655895441032267540356868204220331194117806842911844442497870301586609102014095574477562978966398974347725139242782034329439090412236001854927020184690253484719357532171692199325205722009545162253121963876550225601756828261877013678245440157847945045921705736985230520882598234445633592377223217618114016250158046742164625328302061955484368357076911610363983613242579640981802960856813138336059172467441396849516524036683692482801254073862395547569307439677284401874461998156256952223496494939217982115280417341954908035084398259419498350212748054075580107321324294702963631650996707991753901846439260451939811231235177323292271425369363582928660923928029545238210769750714971588341891086356886677544859569828072701760009476341657193599490331960463392852382554271475907723726217707629270003132032626722017649127373610156735312047255395857214607150052472114748278081799336792314154487560757031851649400177584338806457895981843229799629568884945546630010057041226384509187568778708702218855585843014996807486425717921034554724224246116836854686326159092290947893450525506603631141250868679050706616009782961506252229331286287478184405676555702394009400055275624835719829535618415928867730181773871571003197277066669439875654508466307621356613126964573189170865245870092477519307271768882979948398478667859864415726579847592264328538510993816773627815722357961351380172694401755245643953012816748513223732640874417132568774127732414270944379274504356319036856136656120948620609607822652743499092608284937788968544576014721129642395177946946618423472677187249922070713848888946460059289498340897339603806218780305923885562794435271250213811599106528194362806361126082138623252190724516938222801971324884310173196119554522853294429958353024234512899889144373199080968766307249467226411520378158545826743025966799865357677574313046521925438914998962509364658057483747842072104027264914748877411796027179518340885052836097055390828163515523985751870031280425641866674183460411561826971644251733952644539575752223106583773716627223776865328067384112470675145615878149205367089230225574464099837437008722256325918484480339414100712329246303565324089422047196847487766448680823012939598938745440540095042089019049111812472035227899566678744144527716905308452694288959262935448245193748141532180917831484771443398302720240677473736329632107733405740933823248557346636940398958036993757401267686053975984655478332913225340580324717019093621929855946332785764551651049685596206607359135396612043453772587831531232051549725165106149032518883825109539903704440824970264785856151691203463873512772259517522579188612538653882362366105930703907668612459535626044398838194661298493397594702631210928167383562472028010445910001372115188166955595115305365428887202122617548835955303456608027953447865534940059430807635768770269402641881392850084126563413614815692330817099300548443537000783740157822508266212949800541495430882826318317189251975356521478565017376080197346270250706255969614303743074872302798017815016027329175634453194505981522728750946636612205511001076861931666842539769839011487007048556556377476922673570092800789707310288149049139791672495123757394195642766442795799738778605132577340350507899557611944578400940416175556761884975419824452837094770354108132101194545153367719402670888666574239653632390137689961819680524080625235819250317556212871203867054595320541824618189655900017624741012150855966731084242560605324406494421789810203719111480535232274818993250577447006591987273237396075155816960823730158307400990115516744926224570906925905294911468892073373030744636870122593998178548006701921019222871810945858854905646911083355352790762493859690825754783457910364163989097362906992038562983022437304851854020653258210013920169835077945466232687327038333929369793026011467765993687367651479726471083187210469505988863836615877359128701445750788014869168392968440160543214275498748472123037252722459041970424927184996229878501806849500124707615567138351479006176069500007696452470564254441744487730341359621639766880930099177452929344702939308408242285922291585371126733208223270641444208234605017587722822577446946864460464316535729555828696758634677721774843154308785399927776728194144443073196446778952364897300789643542970221430410812925192286809991535404077646545844227799725177792138524859969567545492693861780144486265186904269066886928669947585267790208834691895872726608024335561336374517430619169539495185459160513997236624450179626433967804957315119547498812702809719422476688813660098125420133810979710441698113401114262551024608782703348310799905819273830904594199487564378834235665223004968726974352489264114333331323254679986607498957916243160600856935258175630982747475362716629008283932923196422222037868514924366351879725105852244654577229698380408214336819239600812577912984203393488087828780460946904294867017251410150657351640294386347117738556737071800841976409732417438078356602971340757776633732396561895763592281295769746168582061251350205382488613594040551490667096131182805843421558707689545531231260371385716783487539877297096856050985511209654242375766431674149887285628302613201907024857476967839539319575605537298387332692249005076135023326526337073043817352153789564602540623007558836588886936306685984060083652394610220772961382438135711560897338695861856228591723938424413476432025608153575323095482860289110142390923383760317713027266166578927216546125702536191430784973986024530176816248333769058961761102338786366846025557332349313287304069758193250398786425359057055161024487619648486480210369604364072866964491862049534815776464507294633782704488896658482212928811694138438840147949350664173683868278596436123540528681386233508304089557594252223559577221681730707267493829620213211505944598930054704737483756774548749351549650413199477153263639444069245877799397872668879733530533514036889162706390459510814516299433010173164719272738636762312222820144714783543998662764854303686056330621646679372066612008421080696481015311914171226690354518493474830620021575738707034072457321316553819670424378930347650647450029268701005207324605384354927494001031816064466736454132760886313679107750663963878841921739083339735919659401843947501425344925636271468838761283155871826927045839593890061398265350032925305933925082215313150697469720137581071594696188012431310608515372216849893011640640056649799495467721226093145749546042925066574036243047242077221257053497123829559692760769205079217319063059931149411689524585246189167156390822245442747737365961034210818636026946931680083265973410278560136374109089972908362445172220872969411302039959867087217689158184103609773528405989410396011030237173450189146073698746318709584625436947744634688989482502361292023465852037600064055931035437944399108269143763929069995676529383389802757304838545182844498589996882601950165827109627316142032935263414140996291654948729793647486450338555038926191765424248429400557893979522417094284782260229786168733425157817269957139378906050274353241022670779987058496675181768168208164047576909960061357790233051476471792670854210901636339679653813450224237869548774321769246934718274162431327737441622623051913050218645822108585588310550556008470037836217667330201938747732974202958485100135460838836817522402473587869198253773668039306945147977992527574300694517206783843658321113257548541476970167883062931255797979132857133482213216744540294442058706546719420152277700985458843055871048597529500457447252562149227634695306808936852201173706500301338961086448191446022511683049025880513812247177803041585537712335009785641236338688789316827767855128475136299199439952632375488522539947108182362701400808262650491657461117098271936846053424931001498184939025639724837679453149773378535136389975010129708077905709590019913648473034468938789869591490653056909425901239742236019492114734864085256699227254752228404234771556916234618190345231517200762598442789006644680871709717360765226164679404373074049979915376565468200362311802092964751972685935935603293026717325643525640523902113909208679068323013152782409555057264828647203429959901287788455126103347868029553587051975263511857199469840632588400510795303824335012250500939398456750591196630340004725839205991884874978669844960513674995768113999005891832835913766834754201183609326921684675256231083446858373650411216471721254517160690867613934119690193504824512027393741762279503305155257000367144089744448761036258216566884881584868127325620384198425721934076819324333793798979405732451739313965852339529864877806899316885994755243675178700385171006966321137362058754665842766671273587274447313972320295582368074789669150237971025404696904018189153647979132286824112414854210315720672595093812723908692509434684974777753415478795607647646203284349915389182685278281795218160828609062826616374561425150081629394409777226693937372948708807873656658710481941490190889168631761277652340026252413108964239538308299998575684953386792007811786271037290992346255584132059790662278406450328932529566372317071619476399037313301469642468388184712246438160478901161174606751971415472357741302041068858385760826504372788269601761193418124117010897402085037835080083636518757262747235200413983446356877219130410088184619458025376882784669521282177179983596042458948851001242015413534564654966665249792963815716421928360443572522072540935016400254215527440951620074906816561064301346305418827048202117236337975437817114131253607104397453972471889125081227992919684048077954561640155759629146517748435515849105450307982283850609421147050723821160508106032783735258428827382985767382530143265921036057645336228887363190973414714266993543189651023119178444722331421717065974542481406355888319927226060967734554143923999915190256982900358105297880691299555951538917568721598889620374886244555372228803670858373505966072502041725412131662155060388652967639864189878725985325462253954662450665719810937449958060150534479448309953823266282500185964267094852339752871732801526440349808524567532007448723650433526214276107891297300814707889425180381729116155470948048965817267297234188302572961047599526696234583230818880275476171548698605557709178208830263636284694905120661059873223548672269412376394429895563387169882772514251889488462853699867400203228029836620467327998910521970105451892091911896545378352305267066583933010382982263050121378134287741516364052992726132070975151071983528064218038057069955435643011923227414140404653089263893227976734180560363033454712860992877488805468457416498091081643610875456858763908582553209772916453835944236658799879322887435498749946822461210403111298287503249252789775363482704042696487095363515762023492026458712442493316404285038814790377302141167213873157771838539031814977755408450460248719898007412005153742253498752628791713851727446666316623398870222320820174404296995038671792983060441705923659242520031170899097073299915475848531278861053912729721436394185877029904880399648015926455256733449427801324998915962436525859831717787331876295263911002484019481635881119574992315100959745494923432572466059792739833104461696994382711942287871223401341946735423994682152161590764788378670637248336080227846010280292419041391796943843700134909557119875393659380214124741381484545622943505518393590173882502074616027071425732866481067492102613506693545110832905202109182615471557957012558084809292808867563633006134501281217827531857870348299761302846590970332130792840766285340699839124157156904209911652844414824558597347852347961386684985600569655623735643998709282625687436451405329282928141403926775157524150252414207753264254990989903643764372598182825102848552543435514601886418881109861058004418398610357238115195574236110419322529013382355468312301356029070621457532592117357803587424865830323918145550069798323567576290233869437217993465238330797198208033345153083182999924174874342188721520346783743344107219683719159121402411863623613045414430202093087951194367267750258639112055321876951063172250232476392238034298683762132539018431454755269795123441978647999002427015036344546428323240489006658976242553012965281642566706087137213224810397340815140890329613680684215199344229096400031070047046709095928625301056130858270806201210110566402487899142900955740799960167355076265389369924758355353384763661119680081902089592642425824624861775088826504068634500836231724770800540793903020868016573609376844929408291505491397946166321675095886024307327703941983194298853437801223989416515432064041700361716487792497163147413849113820495776771325848025961788660434633843752858271067999609865727410973841806166759386316429597334707264723587487980905929438455096897347601844160447768107554799809740806836874418550496501399046814941126606476849179233174276631606866989842712189513294483788496278390106375054624344140008729493761184821138243203817290912663709355313527030154873810511623086425787621852391728164804806269715198505331188066170477225959761128738169633504534213407649538618772359501919759745875476592712305531131584013458084214034335456359886238567957130856750644231888777749485663523531483890215141546749066396788235363765697916599727342198163498740445487867084296892484002254971918598232025146287071854516144483182794541128609940205058327590050659656322715154900867153175322113880850194497790566187301046921479664531463743108478578442796071141081372787536726495494227182552351097923798851447241807224957358668616270777752749692040412206785880581198708899188758113538604057011899749272380127653364928335213723892489662559631373213397976631216601064962410207784595137889522107854824763411751031314978782080521094721709036527137321919384088442242132730423118483934706002393614763651373666742564898916855108183877340885854109768944984779163285063418912166035165263987409845619694290448775441720840493006040972613123997795525838294426493157873174319284880975287158331029782841995264926136713416488451052847973911614138249562803701561781866271634823699214551351281234945991042227611799651689492767398329905388680000478473731832017843661459349534068757430955759750840939824009739581923070957863241026668800466622476662035356717064176483619403414891532779858882382948770492741029262223302328405423163912246897851769224500059140822159243519756491882802482249139273043149917061899716693767131908023210706235586979806389732396674401908859782751108675874356660089989144643729286737035508337996327477947177291744040214766648195995280289765800485053462387029675504149875059408840566762418415754877261587463309213899175599188746493610911624607842715261605824562334133538932142717150302715813832656509034072393871482200651040576831588802874935601376401201205830136333752181507082300550959892644014843767991272353042810924846830905092726168301196828943299889390199544906946627655925548976053174846839447158722246869067237390595968099794214939567530825535110522168178233908730305996062754110093413260496370685182800742457372344391659938947230214090624790626870555899136266379027389142376217734822319794935294363104187080841467847117576448158318209737990115724345724777227895740814087669004594518155549231284106944493167931779687352877954334123449694310480800093852733628155329815899633290026272416586857329408564360659072376565402683493218343758278277669710030559927921920774949074587219182852097449544361899715618416321500728842964303170181858283311100675100829444169640472735693599987180792823961098915794629131953370160569849417153270404957279480766913117731533865268323214790556457961802771773327847252484506096626227260547134611392697379467715965751524331318443741055786128574135216326624494296675136784452238418454692300239715538063632304490242081051801706858399047637583839009517333099175493614162099692979361384581616334298975581550710492023139652623060810138578665950483880972343515338184819175465144252666821773868211195519745819708579622211886643274249327591526583811451256725375491613979930331439412380013219174448548697866159227116326521762125683019091475589973251545493422534915885689428054342891713200718232348340019883702648421862830957693075981771979848721494976880006595953617618031703759211179436961552080433180772933265244713708772590508464071512869784671363078185272701826812899543292647345808418471872208529532420152158533561211204735179681087009104552625099031948936099536414630407034722512115803930258178546653006291546514481927443648357522105157318584164422278847620228754533447115534519946022117074303041820096413594142066715452509852175474095725357184323324114306741538591190380711455615952651812300224415537709352287751682953487347037494204299545350822347305897197014897215935198948055173370116286818455662069363885583983881174825695443504442303520185171400208235811060612041677861304560668858250601361949360560924003066432544316141673824510939549232682908904163955808585520521197160039018899382228819093866341090898662060138823966034642659504601806958445178708136784479313537351988250326307700401926730772009244135257299284562639723576425672180955698327528061930084419538450181650586820096215651131322834248991813125395885672962926717633181445211323358840284154721607604173131329440420447469488023785688387548129795747551749701848544261659612316534265928966185099417297582340725359913862322066304409912410986018674601519399092173787353818459787554007388439988075150070337011043615459190606284003627267295173745078594490067507272498689113597753147645303139555909779432181757095066598368757219242887783366363900776879582182042030251379917430155368275511162548150993657204284103579637671922412291358029238111707042935752051722402648191289781156943072131759571215039155825009376429249550418216479818074412327905860697329961765693492110829804145993905504283444380244842447481998016806788986985360782650542211301382174311173343141897526474220899022533583582147599434463720368345846192372885390340810970015957513161528709370731952212616455906762303351691490015508333674760134037303673486149140774612303678736895367117015442467607191580081202697900894793886362139072244258940176224587680043691523812201678421775733538074811454126463774630058300663631430546921969952169877479045841175786298823591755026578880637396390106896071146660501209937002828611171955513606347565884599491135212258460034196138211756881070199855108506396937201053719483890190175623165285032541419432009176305979708896033348918922460315774206370304211998692079448858126857039980957224295487553896817352959850148852237161838668254463860068100358696661196588000917215725009655144413589345521731547030359821122819919842128266415767060180917526488678531014307823112974170771479951997548234022218144063842567943595053097499326715615991236951192650861703127143746614106862170326785266561671223018193949140435161948888355488499268282522712545138813022408991812959460135661035725393924178293090161565951614305129060108047356417840154020352267894346258922381307758772981174584048433943625128059862505680004799226973784920217842196372724313952650891378413747368970273630032248943046668509623040125859811236236236625347405808898666388201410324444317383554100486422493430792852861504473796900788726238299601453032195171343017008547343100196379546835508861032025815252969043510255079093899395904473470175541239376307856020582345296787617579035276412867494084669758377189759191654277961282296507164106105630417533681442157063927490143611559235584314162223261766996662255439662518439341430830693196118351110461567460106012167393023600776863398680249808203696273849332864117632627383365249650379486999681845828721869353372043210054334110397899255686675248998338068844347278586570830304590878608986715469564157779997081728892211605200403612485283180592291303524953215224147278072259612699919441024164370010224002930862394452601660088383034834335082095135244093416245580806497256173384306981073500935176915970530902785201859155995425149817280835587448028986382766356634849509829621319883671995162172905076925399671121132363003107800755548534525933298578961265314138526190786885073249975852620697995152930964020116016678078486287157569602096930285897991698765230489967169634410275155120158871861261041310993404965292238251115903530463472569864302062257519063368367121372057290583545259599223567780348137494153265108871166949413979246637568898889548192445553204728436488228126012494746600960690366309793938486209004817740019866966554192514140040705611402164952636968410940442942066463031119908796381162552809258197605093331157279698595640630257776058622533812231312234983622246076754051234418215808997779026772794143596588600887484676521579370521616234110268994164712084569759824219893280636339773040497182337262056503466736929082454668468621908766822080981130337574482695461411938550665919436906560200993977047842469724702855897487932157378085742805206051730077096758613527419358254402874171826313828526827864579469812475110273787227296533206542056728987714605420426734290265334004283736331218240412624612260139922025722210940772661692846092551208905480948655996857167023940731408111998406133894891343213663576186525285089896796291955403712378229737424485159672936856668362937380061251258134367440164640814397498499967331476753049871406080668488299404051373024304952244833362772346567698108894883607379006416389174437934413412006533747046263453770096540442134498934111027941503243461011974384665678170006369161385528883758780289203795657290813647120334415754227873370766480443893646267196533286750503042933084518659723935533755332723577992185144678590575924435987433395106547767189380310057713695272831934745005281389746108550225073900929761588206471594709471268700089740609979575234517305242071062913222880112564844915144451877952580806085213288469882638075310758000039475896719490672431391911530790159604217057727062696477933374622659964165736174786664236911878191643187969939219816368380193280000219310665888903027418567685285785720767974152702888486881663827376234395022946402775915460099551939316748350396636125688240745108806494855232047866249946668124282584871300548327879771778195962238447729816128396123959227510809225530344581858793238703486227571166033258273837018475373699299304828823871668410631267016874917709042034411048882850299106559481848090455173562352752211027074805049327658027828251106505222282919949821174306320127795730286123876347090718951857816319105634897487481490428303222608339464864095281477127329367673916360229859753737823932048409263007502460385534117928199690723219781144886961577072575050132063251060531816207177860569309788811852920361721125699366950576239721287674133527495996932036497350752279070521251515400887446349456058558335866540506836591943467982945707112742590640287038128911435621832882079754893558161961000926627747732974611787481346808271725053024658077597794496482165155265308539639295368073464690581391791936505435731848092178433967515723566603179400048189498714511683648967492319388301231768430763629954983964411677898350536850448689555837339507877647818851000028287260424408673150676588976522578357887555066020088027914792107618225691059368905488699945282552746085816832424515787101912654268651443685772517952902787225310812248153074477914278890707168111108838432122694853579073981162277853461204164633955007986027842937026260928142685289793043768068089456926934039712014779270203901777658654866439970004854149684562965107520330778251744179505742173781414155297396694621329156906127768253072496923190826494075725628363688162558555831977470410272021230730507289797064333624485793167529560045036433122445871169339497868595860896468295482040228038673298968754428469425510562848987281290515454710508596938297157701066691039952152041997839010001500255742059334895571854990694772298200845822904012559215189633412579928555752938306720543294355853505923610098077706233747897072694780383816611011722841348996888812217547190313390575035336465105848370365778045957860461439075464733121018118216804796458308010509666627157194740927282645184362104969180638781224020159395576053286033274302296032162419816428553841588367910913405732260333866097411406446390287871086872394902326000146823077284028456150154544371045764004739836583837842542773903708262117518345206299481404077359563740721609567514776372517164063898624456937434694132854914217162452427625229845126581474587921585640774795680122624292359947278560627862846226774984378497409069389589235131767613845937439817348687181596285817750671958394985035865386266270958213241915958739622378489799435253217376450849560017191833457087630014005609530017676666231764083235261762869162483576533608657690279172510356695652857081942739015393943899152988428765733924572450748126643181217969293985649735377660510096316829605263875199320939324680768924600686247443961878913352293834548040405236473090314668114579924277040303110676557675934256636365675105412477102449354524330774489461073464627842337584038503981465063020302813899200812644294510506940099186146862133464285518784429826403497472640904765986538010836811672152922599549217712169493856788448820389973554463603832705678556420191241873013203554918407393904170150057497007681352829040570615708573258979135320215129362006297513094201711399378431164550390607577372101067523503492181872420169514302441081270647585784001496444682258624384581405298770962934436692942189688337914915447299708863527294108593227831174407810572554072101469745506382253961651203605999386485090740653286293826060418113448561296610410319199092664945697388405312604797960944347227504799067557662415710281608257235286123261500435046325300755467573386415507813684854954433477022198166941199539873618725772170424821980809445758471309306654409023736405405159871121707310805923722224462615557316324530246343081991341127641842349820242238337581492098576296609262596434058942238277995756264769984436756404090687937880595687599634165138368635912969431960394830674274389472106363320521596657587605017723937977864109638908459016989141824243484424786542044309438212412900004642891212269964604516013264039947041024781322254529770284610339994092395187236613779479683953030357983895440881195387121020068383603836857576864121140310515125155296382895385845592874965218725320223836016462333868019969217986285985680408095070238590747138117753726778501174415232895220125408518502594663659194391042695522221253491803450000268079251933048997197596462847644831613106588564789859712228136040449596735299878857158017416086331859849362407590903655789036386527758565066021584119106218612776591459148557795654276701172596298153721777428213167644558157079925504492550110731446243541506946993651187730002512301916236547768061946597374143833138450985322001236119615198157329110260066867998542940670691540650785347713240910498399189126116523364012540376446091245788856881067806065194176506677889034450109853966915876141850645918993097935621569354926328048768766334883832250407455420873188621672549148953157476395733597577405316986505244510476693118879837823449221865156728074562337140161446813094913225376004393719417514705984833474051554243224845075072629232878911320625751461703641073332098812410341362491978424592294629264523637005453704139474716996501029876594719580185630941281313125631994538520151873702815259084142050394025401326208050589663523584904983834788482130060591115197405701591079131078687602401885975192141153555723222413330550978355320951951215066921197696732995200787782141494832918172336790531072505858384203449335597135241828446002019176333976458639525368121586536885933336100277682472391070987595945308963055797950657648409103817963334495192740972539683497833868631407943209681801215678722566850689288731147474728956739847568269118674182755613477894260638075551713199104462165014781691229556356113395872636816887578782020256094961738365013791437028984905778864113119014157790388890281664001772763090683703333069718010456308475749059385735250401029389086384891184055444953800535903478831821513913294614592824448832448390965824379408903368313371727820457582372478884657077742986940830875532854150238708456687429718268170898327037141756349432038122835059822282063459751558938120824710404932674800320902206008342646137537672388575844672434769522457177501105913268766949081742937220409532831596068492556989116518722675049820007339959005903845437102034442034782080903487539732487527911886354458370731001199560400955716272249850860983054283821218223884880598417521933500121835951649072921739149577150800555040077072737350441502258648296453173208703915609066289972281177312766299009757881371471782744037443762191694784519294903347926126974313478506801042042335436641286802549299431755146902570234677264214560242603069262205129961658656701551034263411261968904846240685279161189624338217590511806267638477841147587089182827343565677461043395087243118226175124782657693559377378529521368697532289647272481791297133522183382508227005003417732999209824228711875872831022708992631246369399003854843318711523002840592189070636841077339429147708713371395964984815058142060297659362381515761536516733246814383471440001448750169533323378687514133945392734649778350143916354645242457562746511806166902594299691506732547849113628328924172707096470186554985690088783796714079968022849373508288681781593677422747855643445674758097495634664914690272555114583817023221475226856345565727809230689557669373801179149517308289841172038075376690640299595654618939515948307524844580598487968112528489473887157138288589299449144036346530457605628124605485409786588732459638361686580416678011572203837339890060164069872615646500373507867685660062185657549408108279074528887153898963782697482676513308139094993299877817540015002754474125061156618564956202395780010109799182241227091394956389772786488679648784928670740696942660620123668037672030315229291970785472315098905657454679169144672612395344379240317963801914358441433965433007416192484543597093656789613275915989446950283927400104317466601331559454177283357243166793466562174350877598020052383711165320456231264722046110482778501801090408250218940999358389292260582244325457310541337846900119941907450565596419397170700155727910190064781593317975977983431266839377432231951456939031063296066714693449429049487498676698899397517156334470784428263121289186178107287768734284037504893579589682693318222819122125743183152026748822239455615053151565973018855940081525244139594282850571095441895488186146088623995926802560181154640620888483730519065052505315165338690979749298053728954527941024407470993808884188184578801822146242416015836139297870857637733998403826027082603091767511856659474839130330533495273265174959238492708431953610740361142433374686681816033508876626619466087669461759750027494464195736270952951995167816264916237897749571718075451589339429962330746586796373194902586870962680082690844622615702044287041857144576804674903292718110214809122166233340773783620838535518912090989957053140338939597537861830598586411368051392021226685441876051231277269399624580739708449434377454892682946812114487397461212044701249713099714394352909741030721130169811693413494078555199008034538967756855066065856390694404828527310320976643133972173709948204867518906962128600736689748005348746476611299340744076841781884467854561143466242649250208981935666320087796007746052150658833185744467501399593675332799779548213653110267155707954207719017322508831276846792283217728241732411941388835653400364584659490279067247496558973623868976675607458397427506429868837518621708580324385018116369712912145822456217216450083144201808642695875026277629630207855723198407161238484813411423506617954924281389098886998721591105198542416817729448649715787231163814469510800514246929838170295934738941844881769370901902514017722625281434767883295432169482787421031615267854358390994678199553027154578440891071650141351703025550431182986767599366030800580064744118433791427551750309800192765762606531997998877377417264016834423417395519319600514045934074301156283568307896506241253853424394223783469539871620553028362956416962910232567502346621219606214120342013708108681523318003035126584784536100704691151374874175949237649063340865274089415386130099235429523399372975587025967217558291635996351417714048155840936960356429268428937748798186025509281385716349406483395337264199446818700069246037329457838073761318997610406951724533922680389461394458874596900383612666891472062612390407942197183516647216497475804643739829941349107871314549991879420559584428172757808933984545372437525257854728111725189096776709496751274421658244255628125900525586544950280665927379562359585830351826999232406946774536642555335701672968399756977919576977603526679949076910302955699737750966939161129051720789055424689765161215883892009706870747252328039648601242808574139810066598911468052315190120149810802068417576749948212881186093173427654954544658017622919796799695996269434293570944356146520120784718512603740166592410083099094323098314887045727847716339654597087930321943326423109067055554627396875270279653435288878329819877278821596140484624200914420507747268974287704783337471310325407876627707493415964800647827404413012116851059692326808609446192815549819903473370688330258761585038399851450677661482074713080090148092868555078928437343564718930415110970307696852983931940975424543036833631751548561522721480258927995765915580762054531248260828605439899667557957023833681845169262025946796172372454872115670234598242126994650441904948348915404682958558646094878079995998652590881158574158239410495323557031094953660879743321640444019628520350673877287455457706725062603886865050193650946564243779223757288487715421536873874305047084172364263562673509176562237818630418399268759382311058885104986894610144795828892245125196129841408096895217875511126837186393333751149479079325747679923251779265672951673716963681000561577729102205109550283704254849417268226090050082693518811723733952581940048924197875706577823555441675519964984068468101934264020221613182745889276180931700658764222060141414298366160755965832808885782428766458026453627928003386858431431810147675177039559536955037276591016118214344929181860896097589435228195316911093239031363468433424567903145781083923251826333637639171574631806738383609151507546833042954222272701657382335676058672116576154950065451388029145879928818005036560100554780403173176413075391090026639771439163302189882157079643939268574173671053405242258334517788817295155587807770744103960685134329417507960746364125406710193809208872824689350710010829197395500685261984927588589694256104200267303343433920287250027744056879955855641653888394723885021621402833215359652839688221917997384556968377303473662167276379274088525852361312695559153725731587527184089344476739107081711166824649588745175173348427568293019775871092716656738662309053689978202529370581904254045577774547169441308881919685393175004885895329596148766151673271591335536036375407920809218924941388668767144946173872491954311700303067694258172099008159681560542540234912460006690071016665070150657709065859870864397946583635891485600220163894378257752502844852217830070371115976228797357035509047078512673849957966845704626599592912780253200755226543913420960068081750364997830086640626837923729777336276954819073298753468640161305733657526634070101002174724008583847794345168433987204359655931173144858247091747804809142142055504720207898227069183799130051909520519333515480961605245237472928724181052404675611101724986891357768633228198745061128099612868936946722173517689490055840823914750878053960004961610365845888411908417409859276856415692619330311434561206817831290139082929976462696423970966961443011732480771962453385497627068667072326548033571429382043008155194928955071832475008669510599344663635605924922520473431457089242975709315312678324094611743758345480072830258549661072792258897819261011988180292499207634588875003244817878375299261642035445197736496737472083581191566289715592721443046517361705306465701052339437084290373229199901568323864262726457618163114878967652342231228575738039034104058320073874200702756909781893144594883949152704090323658109664365989034418955253669826409607660117143172073233885083336362030666352013211745360896605487779991739296236478550418594416708521806832080561226430802366318034077441573759266156393582272740521277813694709762621884212790828339733619133953491675067457495303378973310431902922211503144884790544921624687807496655231011314015989329802868271561332030345549079972911640963954069246164058092374724235512100628639604534299165075418586528389229074188748663756028082949658595176978660513776029280123855644038448791364552574464016801043520197242169272912347734192741379045654274364578763717529021678885834781358875092728973805965713052067445111491424588739611231844256983351085603036924386917265184190162353950430246582659968440191062170605257970044480283073458810317685500185304814324928302720088776032189695176639881214642445720236193296165262856485634696113866068901422663847553817379451162309153747221160064410162364439798333324721541776992055435785486313165928420075755352782199675786732873816286326450040144888727322327750739631565293270041393320603869399114744598399695272097742889415436637261063948695974124395966049070890280202715685903637920835558869461238638472821740250289381370055448255399556412795051407105502904276866030774093488597893347282358922700625526187684232773187797922396310556480000510283402179415113299567201668974360516835720997879065646026963886434813795179364572063245302729783728295714908708953718991537627774947105616486647544549713984245927291975364733402964743788175815827746828292822195572852182122531356179627094056485716704423687043792883937517453780041254695910969890095782217127517484829591949473863134346323645357566677197119487449338765280834280799463514904438403306053955640722259207103008909227557873922276319664258274350655483097368507012339192957191281479396831443747412116882902496241291116172856715503052372531840504057104969286862567579898493533385091339957623490730751564050060173140284266837336944267253097157124796796409457634342261605531374113173479445596505591157208112084683729282166215428639560092419955401345412641317812559790678442502690901695346701341292779895623804947249262158191133220382677400644639421075402627660713477251809464519514068600279005871921150039326400533609094026930162324483369556093729999006482312313373505097267674014498441928463803914187806625975855038708023579124847891291606485201292992436057213931818506807666324924169425194321206176059690616171372769516889756715959119786000175646545628422509359071278784939793826639704118535349613164040959484497427951024986174231567605927695319156021340895496163814633831968358955522387201615240365546737747083302222707329796257789797843496287818869124250594978947890459903219605179852922147133348801707360333446079814747859053803502817564969359326707107888555938127782996718500817041217843753089487227786850631162699697420783980749192296162597870619439474235102144232251009801767648607602676445950957112142375429032901832275482781273521415376586015539566788286845138515638021697701737785607826977012367786468655973333354697600669429306795988441760612369669448772713224804040294977638508028782882103528166885640667487855080181608032810940604740907115124497856667895995511419331533967028749823525782581728485619901021531196619918515916394204601193292621784631442421578969612135882310638853440875477667956885830567473776299255308871892107263739941748974358592633397767728419602786209689342162951410933545970092683456997240688596011167922756534523473149040908322418477061590520773412980995424883460524205918823852292882548296408929417895708111206270230076444343130175953435606832612747755716473341675712508727294828068035909977881884838873023720822333904281927416184873459368182854469884649632860102047751132067921772259133060305013993271561573231318832606925669881347887281056725688897141326105051241859446830152419327524136829051420995758347640834582553839053918444305166398428595183882764620763797416314231249381406909366203141981156715599552431372313061709089506923063495086586046354792235169562766562006112212860248943024334540641195979176947567544796866477586643603260014491674906600233175946872827153169923112021569302263853457432178283988225780675949566366762946620333331422922453893057713401461681131070588074857510781466632901243893745871971030733121744433038236439987223157667315355575127847282443733232072987864189196463368609178828666376539538257511675222294403813532240155514151260502960262531581820825609115266968961683407272579556498578045833821179533184950172941571383478224327688522948065897989278559776917927268458149352100200294219032291715398311532743175120974442791895755335296441164114174851436806700000836610781682799864776310112503635402801147520710766838919488143914801416293451939427631493436172955406388930612039902018343861930009115409503055032939625882532002868026594627765967301782253743082967971812559355971165001306680389089875619255966230839252791055738289043914115972046917170191754717456850592788022373098865410307216027125508561239612484526417534165617598806805648011569773986696843601521902201729267349159715346079366919364517440265389470688750464533964419327644756629409039395147570676894416585647345274671386636944215400689872144151339049061687798138447162104120382615501255883136285331508365727436649826981124783582210273900201052133790121771982292051318924342183644497689858035153057517750769584516294767377082203664305657126458817548039010229167841405355253745223598967812943647777659238257982249793539339481369676503551859126945887193839657681823667306279668806863268668134398911628802179886402572654602476216630473931733126728513590011218426724183183872475095456454032584140349884199930540349730700659192621553941429113121693987597928882751216104173356764962966730705474152043122997794945651873979754774979558298852395959149482995354882306123192155704846491242925729899401241197024427441643627199033598473383085510945372526596197412628431598420133363676450582873013499943119034395142951857591900843250887194527939561137280341903951719946405632385946166622075085875913222138203046308206876669479518525849364757765722788978011755754907539835602925624816457378376763941229243578035304501819691020993603137947357406238041103205310709676075189979590114397684814182090792877414877159570877159809999364706935711275141501115343118707587406003914783705162895514850142671993452240977535089303730985895356949889831121414635004792703754258031731814827388892207485945704225040780366832813402474539211811934215337444800748470298702940011624870572038908504872670173659370505634567212863605555395540921719143185970957708329955032628549433118376373978048266079119705943206532493416078803432330572533078066812108160137620965919261733575980310013435715349500824062888819733016271295636071962985811045715414484394961835018380489970184798698844220301742210389299076196434102185860166790050469605239539246376734406197301954373967974541705809095057344338980173856461934275027490756385592989608510838222195749924588173369657195832634365125491695965458236333986526976594952319219787816654673970861367033867400301446633705493141523848809223626470184856879868906930300894903759102327390140042539643017048458137326681822406475919873987241061143491919536320868504679954060350074217998537363373817199126552518411750782703405796883103995800251712035124232936059459127350448722603896110325765751249148618514670104298007702196086250809648014871286531077774268388621395573188205952249491723738273962003526214533333883308709154238111901526630860946742448118248738345948284749668348194049261622305861788693546201750172351287766419293197783468313292794782585480041284229743457108524379691816855123141826575178292129138713188156476892888195417258953695053620834049692100703365322480134589921057139049741346125839137233035068210344072723543156307468532198937856272569074593661730132694389031834425022256481241073749424300911743894145763021011253430777291938691354330558710011907246482593805012715460377794538770720792599421699169786251016784537479164262411344386661833220632402662173121166922548600144565017591169896678320784949916404835631540649779044237755722637636423111151740081384033965368438768492146073023360781824249536958843835903627194094573995610137352406887418614254868249461921979625026684429852203101095370815874060352239710148442079683611865837902494488918667550403101221934770045580505115379838730952069349312418745331216504178880257101844472798276209240372988354830701804602798881996924710565012921387491875614632396588393113012597316044944861066996205660586414862838023244930924495360297728491033562821680268836800041853660897217550546441524782791966739805788045156389338101039972605024831757533300496677337339317530255505297960446826417785134484660233422752945191704941607492002957644693415828927858110595877686136095431732042112297319953159016815997317953483686299466655480149762969096335408235792196366826640165716579393163657929153363657360420600415148490522623036736713835578656949499394828189948791049793578760127196733624924385572586940584896145574614155456581294880680184720564811079000830865760222232527258890145785703536897461007042834205978152269244286278102974789280685980815695002298850885235213068306508928877763514033694246893776903137137937930430750862219386535104645838011522057373709181031842605074129744023735282534146530639796721082905875820579326823929350202801676611182572771478468255686017760209806375468233388337837451806567077581021988811201019643718738192874240120712056850572519116808709789048905132642574009071139581062391548079950829397641174336333890272943104549875094835580373601354584523123475892441889308726573729239388415736541160768271126622042065355850193192330803703851742763733747802845912133375525108604253976393233119890537932955432284721537922671658816975839188210104769440933559808872173959043085191314366361015768876188470917117120535600917968947441036086295241193149955857197041138973111001563481268182768861277220334247307799168653325862118990957789720231708451397131758903549713803155871621287915971285556599151977356535728974975584649941352203843310610870647972428064939785617056442635101901188449390982741721500258771950436291997922047482983369226643544474439412229993949504387864245978696225798960057777618951289290303150088777440357015262818309811144873686271440414253581113534620369608438217363558882229993159374831321112154537348918145476085062956150474812774841785301838582330822309098452603635598525534743334573398883210214153476496268228622899466199493669020099771297582656914357034931164178046771441532343195731424290114623586177798054551033438562428241356568963023752664327411029882136410488172477930867998093067618595456750074243344430999834594045404143372709382858292993302510860166151883799316545953787519597553843401458701088520717119706828412568861362811230754854642874818257896641954056484771193213103408128261527247760186984592082507632009644921628826611264922715217613655445114377630509435970649737687703902780772238219243919573909074151324974572621780468985088443075365484775643998809251886819541724799335977526105534841073252293746946705026606529809290817109031384676598538358741241114558333971446936893044991462567753708762865737450795211335055055651241578990852791760908077378276525330861881286464017296902212769138485450443771167902172658792679308371189322263758774319330775510251999737573888681642105035899181429335339025951349293365005026958792050158789006175994351949680856802583578737464248533735461083017371605825066963217782947850975988586264314417852352161640569196183315875089161071990878173503953206292968008425344257066257857069058096780172567924645025089012321807978328514596833507025864604022752911984301372191974916758508037002779570587146434762390717338413766775341077568959853083257618251935106932530462314749378318440632420505544280163998604419289453383529882533062982573999415574608450523794445521292338010338082488495788403252524289293492984140661728387696360080714531604897528896541235541214935294967535461058897687762466377267486823039477587225708662644046226317784029407671868997739827176712078780492490827231689236158137813179357354164236427707015759838417561681407345051055546650926223946918321142598079052991129502649629982387064190671764279440714529995124689017720941972146521833882690668960486691427569147768419554244265963392707256598743339697236809877475091063000277766104673745432145323652160979109269637062200382147221883333399812140053732180769973968791111443439269537269375917071445086726139387160739546981764080391501811341161527757988318547489954766715502342248686653812862933759079289942181460624245164956807846909538877899752079137037226826412961450403734651247476420336019930774382578882248174982918269193026264545287401518725254816666759533189871874440955943116175684797610986174116656474495315849437065212932439443050788849677287969821479883266413122644691552112793046130051260969369403070798559483412119663428128228513867502553991676860355988596296329942603267482609055490631364083237061594791106496178023994066417152049527470986921547530843989259780545461925146397983735784182118278548285397746073125567106616757068925704707405875200759075124137124207795524406298835449453223350120104584093587244872481188256771156718701963846706802961011634556373985291910576316168567200466323530824797171361098622938178247267217476437567429459815053151815146662499805898561916166485693672022500183058575271373280298459038926154872945072004178375981338032490524437240372082305079752845007181192278354178448249275088877127682516858340531315889615396554681881013455655507485060276408919371097262941888574900331819188123875012520588491749804302911001710739070888355973739307356779482928054531367528966242690619891102633897433309071377373325083001376572354733616643490554629210498557711257806834496382562671303972691535691245728138256347784105566956304961831390444494056811326455462274324575435783473206583691527075979754458420896611761992643549513510767142582591069622233615060696833899269010492891538773839255799463985471824529774084537066233656257342859799356326536851692950079357111010028563234851567401263002344180741907370886084413405555011264257228066327242787272448045797302775055452765845352722390885053944673348516769820957571334868700069674932759662051402323162653038159156861282500462103912314691587180105969164218730508192267856147637717786156939582736430587703671373910163095019117068090926455222693615419541345899705173022382629350525531552641895437768161076806971423371359516808287784961768395792302729860317045900437663311577886620458301736780056382515285822058001352718213935495779063372527661481533267809003200255793390577321157494217750838959168592803026880609457033307576740945633710015702886908342430786298291718541929249570122276269572014973681636145228792010859745888677465865453097779564616396853498148528117703446788397662554128815382573963012320710131212614248692740177196799396540729614563667795687999669932232887491470831553003856403239329051764058729773306419350367098973651414054462601334483969014288669060415450467716405361402376423228036829696033333239023710735155600409484709658497182562213397263945125561447159137332768603505346911851262514503535851687943562423412698392381806314247830310123575711266373446015685456580830328253282346647614238907402761453321895175353280372465047014751897792569346949125277512237130529614079639241848505174633274566516100943983305941764243598441259397236200193013012070376986462118024543027139279030645543072310581317750837257894905928392788687742923134598933920179930661117817885092429411830935226213885994489376481662591032006108947513648310883013326659599903437211024982174197530902087911764043081805138133544734535686877512971773041616569209391971813006534600440883391580884294696034876436065029308722200488380417739878779718850722521102842688134418027073327977384293444507280473116704121084376540780409409133734515901415658409995764673008946969396319271820332324209524517642547952736427849201703148872964908085926979357741421592538539136606640808895678225584968217589049537994463308616492032555935384388249669840704600679731810798444904616602507325504667979426580091925697974594437433613245566925296772035052929816833745810948324473266505672428085264312865770553110896711102128588761048545860694152346679582233622228197496884190509512662220895387944720889458720375854201997552550877864577306340856445908670231335477217069975893884008157837489365328362573605646894569417745782588261881752142466434810374826272744912102973478675587609287054431023790150445117948767101250268667436832287968522290580013279852536801621429904767900897216140904088094280316301827911101298843946129177981911137148263513835828327762564280750055429233086527492342565134562944105995045321136584185240217536799523338200479384999968394323441866349342939633204319509064086606609684398739275706040209013673842086425899600600935801486550777240095640446954408840740974958427244329862682351390480364229146545714767968301173348077478934116891218228666999446151519390396324832048344080724566088749275475728506145922052668152436610847432762460896039792929290918514933970959432073870911210763640658962737495733823729677886304686770766015123369313846706156193181942380713546682474046678154939230172026972637767017593605691146486485415586654700347587490237720203090366487309040470858857823723910619442213838474896183413181518985650088824763508644499186011790565922367108614805991873205509777367023274006758935607585545022033309375084812822310313407219044384309993518197450356136402781048736432704836683336783907726884940325914287155164202554341847874852701120523077119898107226075417296380532767293570747472927631465820656661209211719215705741087431985122505185039592685925507649548364655200753832218431100576023861828861363940677744544718153014787153598990610108740400393737112401379457279994150863490357089784825514997203670636183414365769032607511844532114706772085449033718314586417623319665875759572113731066318120528122063540361270434560509786067011053562190720492021589106180113829696229907102600406072878463312776467599002401528692150491420511680694922652784101847444202658359136028103335589163423537485024940523075276870767024618582457026049233633384973037898017629767006461746647596213106339100471390574553053547015710336900157481521464779754634537194764268038264381137327384808262160807608944377294124153049038946316326529669703506276370307899327190788352052597803844054386333378280209394556150513715831617765556565976749908225042614504823151789631136682989491966698015342483428190591835772434308414425125506236670811322230659639035637637940394692105347053771756049926923266703998487953797643072912333944865560948395298680374185078903101337021235478811545496205759113907302057188297121026018727961407097116172179526346147353128385022265211745119159943025154415589762917506628208788824091762749018281263620349431639251757123389458821966229953923994472723081920801432519021028149499775079384137216702960322676280077556710425575942829851251852205339672144104257146028193652480812159249036076706354461013777992218222883738958934028288326680889431851188542651811445102361753464290708737210490720937382200732875884336978385577715904504309026489095525041533491047178521299027933871109650075164919085853666134871409952161647451832729918281150472326194062957891585288410065452159575289344109610520577040029193407930075279537523485842387130817053621173952905029393087807706301879915956769104698927355318336397225680709332045486289055928164765079273735202321230035124898090037087072157545765193139747420090392119377135138944041357096477622881706243542302219386996904558127646462446662678166579835632709441826059994471968265969036467008593805830253760575520620234184144071584250478434297480008793941810343774585877659045431530892638510446480345137723225303351910444644902536211797856299854415518751662340287229643642876807419619926237387641791661462734679484529596783036143369399433947453628468326829426766275355728834812609754596817418538828300825417004193723146076713489800842402213973121445857513086902392017062745446803394761640256190643735858482151215466000077393379646004100245827659701574535791561025709141546231886743232538171333330430850059945494471993893391327937148893899915359619844915161394401721238249873547726807929422334716740178241493640829364418763079846532845355360486538779585690002519493505065707434494295573434920348988711991070173122622918925432796332977656996877164873141275347699443369749812037338344580660952790216582087566888380697836806706385886729845504080285583973247262056233994662376571920226639681515057391424773813172084283490504692288540143287453634395641223861765331064102348998364881842104157332825469936667899025757382890805726222064253766550075806125106314627887105954083979429938619276153880997757650869839555306195184774689322144144415799503271237570683969004445917358204292212090506846127208493240539267571727650638643644421372158652629800494749232376670112534262345531474462350122564132310957758452636390718302019869810257285042279856100854971851983481167019934056110709049767952309868457590894170984357687145858815587914562060506645060834208559222015981992333094498572772982133870496466104406732091147031877680250042503023231307924246887386750964282235692208815806179938949619270306374551238593599646256298734557010548198328447763504094815336412612248049748042267810733424730960540231104740294071736376166343441518419839773560779721577868671124837056756883638158957662277654850729720670110209988069597912213576741057604357265147115958574483719798982741609173859262621893809623564432541881723585505246423816417417294415103741619468583726088007522931656545445119677937691979280075645207755572759045089892590108801063072134114084645198948835182813992120992715053800439749711549983417405979088124563606970286760056385019952942067904050954752327597484037426604721905903628360392728872728374408227648328510665416465394816395457358062300049030461482086128168979732881685750983593530263144862228586252245703006708003499856062016200936418739407669399971019878252504472939478085131037363623630422563267811274482606107943870681885555529695737763731418067518183934049395732026014121037322332740766376977882361476114498922797421220433661430758688049907942214443124526957871945137860650196534125491772635937109133616450776772475852035331897445800353556713208697306011822783529398026048358823463395977072760282224334985636599657742918639840199512610102859484820459955996571429849645196230048554087388001977249843165488953699540442780604874261172666323934750428521830641290589565663065038993634568936236972558901348221945221618096446633530937198993505607927354134965905689794700477647519235154712349401399395435539599428764661814092188762795622706260970990452466944931269120290351124636802041459928516376152028140284048933555409501187353174306434665729815941609475219552403848414318740297138470257005164520264621642957062104565919465478901720640603394683168899365588319533415696472285081901691525588692216835683592188512563532801934694905652026726426005833790412147492552364644279795097339960428253498409911642630603969350045993844912620140815993303934196743872709588633630360985578983780558454192967441153292838209194701784970917854584695804745701872161736439311105005014364425154139594958684344522193551687045329896446039579575394300066541950330801905860876510504815197650511071777657204141928051329495491314876952745597656892485530478561026374746109983808161262889670915884334034879327551304030218024843277678076708048700558811197600501810473269221146938420432825292010251132904796127955317651861217044955632905724351796420997068334945612843538938663610173321683787369152553619774602985926130514434769227960198987043212985868140985013380529838303060394443895626460370263136289907871602598200653586888849344668188050507652245790043466445531154429118247791474673466885633432443360278794501409924525543259379749584208937507353388372378002562910249556506100667535086630095035890832215216340585622361066254384084529926833557372361909897797369681844520329848145017532367427997992370960899932460678658508081744598712167605134075468749645766093719596159353302528884032668740176806363343756483570244591572574327265601255500894837911212363260253333763202597945737699361477317880955074961086903023427014347326105321163522238885319663326414354893502879276781433054576911143951038642885200095379986227812664021708221110413554489158786389061672876221868209691945963414541025499584597947800869896335841985193114387083514703693682128624807033163187457338767378862385037678858476442663537164279915207051259059522520813869803005712000929988124568257907988087662912957674627227355567340861998817028110618069910559264248191421355899283927190864692520101524312900464956413505227287094219924617097939079763095338506295975729859021046208014334798467917381816444133124971912274264500682783651430696082855907095764387487884865332525726338521046580450776828567837494772540168688160727701670569509173162655103903149952144314476623235040983068470118364858081310533144867916505419350609173985456999542118513855823319035851077402159572845223336365442381411325357581051240840704103063694417251428749615519722326143208915514538733704772590694833500714028494577918936466976920705054162676734082033653388691447982291190850982768644431811139486621016767902364472516705285798084633838635502128748604944578260855567380987665800398319142168011850722394909383375631544387644418145329964708196189850279477192277039860598237299525009031753340495160975091674704463609477561447664454221530649339016513581817202251925176418801169774630820659351452779165579797446535134066857319626828369963277377955939910064835068362058005890353339739046924241115630526047189914996426980951208723305134441504549368406765998720095951877763398416136176046689105461662583406759811828221685029315911205787216025172299187249067668367365182870257224793367602929173004563699409459179463691782394883675452902550084444173648481007786450707894826716278537342914997196597102092162868654566804335786685007493482184952549825375527980627143028945752257008159662258653716749013479512652914462277146019192334511605267243428966628613849351343524755315934525129955713813514146741268559133584717151262799204815265587981976026451205186465575856716146807359343326323318306535419719906793943966766396107920019820509571123590926946337786390399448768767110760269248063284915984552118286480724324935457737419316526465080574502022395086235351530681054124275262042359872999864032031445009652746502980395763546148894951786934580223302248598115321520595791109042748579908199134111961955684372503346075136417889352373361699800673814110754788018689410418013609896928875831555679542165276206693394555808812549618349389702097812597200720247611148273676805291778467030638996400143273512878352085329298743766317648785321615616798759026223322573709745230476042895352277282715427119893165412593327961646162898018539189009016371332723311538758104347254005909873744863154776158034440687490756743593120726584765686828728883626041005343837633689897471021036595666971835441798266195277780989666637580288425362509015837439700588397161354821377705651597441403702323273774847201069528763944353729110392312887395490327409022763610214257599639473366879738112630932528047456492436285504064908561096647558705782095923509792449696960971742432224770253565748583891944023469728800442723644891674429489317751208357643667832776491497219766284985571042270430436330684290263887023767808829172935619643233550834557445102114227960573299274406725918876064210717655489590035656331628460337902173391499089003726463339988249994556812814050365737665216383643170368785228810339748770802118348420759878132999301276418735972655053599936413261037638188776368118397176957341707805667921904278397634010642103388026860574505797941923121544090946455186444232430556876719579245108679681821622753091702227919642516687843279941462944391398377311269965925835907156817733012985897396232784826346831387632169401360689167445655139519843821349903940745628987002993091937794135883941163953214329497785548590487315214193512759656729422390977144166697584365272712763230622076754552850176501316233206196025778177521621273736901602800258654903781258159231696125735502370573531325113656738506414308467941949472272998542522317754568170616662207735188697527215561091239954211456130137088771074713608083946025704167908612496692373669776186146201634405252463133919746683735381714334816032753241675205578850152903300680054155799410793243810354395620658297476491951351407854363037527940295659195955590825467650947013736446120309408855507455364570245570262840654337104100529734524414654452432776939290012063504486696279326063315077011174812919324055620725665956744720896829275041094854825466587619237026824754443570237122141000541091949473327339492227448163459836871299935042837503023714473149244158303988469072427827404744779211747763154630849689700981477347469776141534868117203999963422372992896195328763236535835646854392782772159988640225050790244769107035401243834185542440890494000477123331025858974564176508336921024435181829616302046619454933790069987648971585584452908688854361690525155269214140332778760433528380287052330429748007583388947800967230233901146730569674516707683305398277582085025916832255430010682225869605132237226041125514097085910065815618710218500769968055761127935593686096620428734865692928580904493228598085458803393965361689978309280187661373894965947376173629517392587958353053826287361978539827151491390374973973310743943674773652631778648023832277082881323966283596431678165326606176541485726750975107526950267736046627715354301089914443359187219670754193806346554247915620071106187808979566960731519257763708290701745095718758907998388468882474350138058176678487467891275293849295151410591099554372554445183048809401592975231984040450090187132347339194818090858942252869031368428171199919912136726640269082097649866454510511052480495518519633867452640825448300012710606397129411347813621357305344293038705415514565741476487011124944842407438973777249966272407749785160870164180335989216309126546759921440471295842254140111208401500008077505505586063246729486905045129058191633652106504170254667440778090914338416758330265965494881183815622885132309746859064702338303213666262075079102748998336715748652464672867174858730515129499736980264417404938819858683985687698202807969848678983205578684979087156527516557407142528043001586056294152285344456075651998255289830539400638226578092381969893491485136204366289118674881128072100512926227106245139901211421227241525742024207521188309136669745135119229462371075068159874140821507035512692650242309097762606150195637886808746042645137117361070196559606958236682425301962959074068686940200944386048335582279760851426420381817555221735495199737976297827874005857316706243797540581484648025102293323232355912835428537545006274785748133413191516193328030368332241702558093992846951257177602560647860703825644637625685728353068878694891008758485749793005084088910651674683641824650851130126520968663341084989650557498276219229004367618595749551785813214095805357393720495260715884299117339140564360395136047218359441781202139185989207978376414735407029778040906774911971915603980273162867436658822367618024528044929647522885680355092877160372246911083121830316378545879505756998921340708452455086453011515931517554782487200890086356890281138613171050557240806795861871444690907618334596051795795386996814646071390331012045420060221200009217810184860178790860917370681171348580946354578376880485020860571663510916200623098063570389104734840475427661409597643708634101587046354728468358713917458509191664962745577833471285549360028287970787832608425472965632928803635418998895538974747883458453073103830311438246624465983514756649510962686673995283927680261517638090469997925838168146070665970714146815286234231106594245618653612169486400535015556867629658094246630893912076323293812988110607296443468238755987287753992438442212585557519184145362344752390357774618176955493136627803891693511034566274447300347197914752087986799574648327895752529368829081820945437761367741103160549950470324538431824943939812062017090789596021159569202102656814988369120024246700288587125423501124660091031516202116303876998481144786533345591808823784464519145052970680017917020056973111641589456048277633512545033552800202949381372688118491553378793018573807106862809405072886112754867068459271675335005675673546606051077378542858416238323841193492973995862538904743847390519098595073105726126767464903555742225016056099235550108738861085677999606739266150226611327121108981680839770493300669432836977887701441261124488060018500732737618989870309830071945238181459757471012106553842116936313468961139169870927534631570408138235917136393942489478906821726099424149078006115841369638694603184894778228007989182836296255536475805410319839017082632567989098675449610243634822781356428676679598449565741093169060107282403009372069364592731331653899109816935822136850950488289177177985891521390949870535127636815449914374211925876300465404356380347141926328720462658750353776890227374484806022667940022730392081386532282039544002963787743136660189417240761790588871253914331599329481165331295418452784703318928108223889734832053501436510707801783604842123768148459089933782004149773399976074466337986995010180014968477674846070103696282932067711610436419674817124603551635752771737624338076839530815567738013673842908049795381875014304246049103977799745104474729152943259279867265406745948208424247216946519738980864362772678221040274747436599420418603281778937548429946749902141371348432204120676965578170332205920762259265309516913914353030927508861315117065222400508851316800087813974914725173189570977300858271883656716013960133202071559009944026101979067393374335270489977581534943605575431474091091674781091842281025381880582632054286324905274513897863956885689053099901392868468077734785816680398394118962506179556649749887092458620616667257067643019125172824906936091798714264160765157130507939305837893655348592106087453613808606604960007906342316915071086189962515688465420354864065245411632449937031120810757840125604486698471699129186824331581036886258837800414484358140417010968806423881776301690664174197114829594308628162673530845800192292356691099135921389309512929998534836774623290739590840206402375266468633327074012189884776109667107422159054751410431353956246377477789768430529167998314346874928309226779435195933979359061481305596839151219491770857653559896995697030157884186958530479021302734011736484456069293009188379140870529631230261240305876994569241707694271233675341006391116547012040921218235503456608488549961815992293179606014025635659821774188195340301001679896781278533664180255599754884465417031806165077606504216930801547355541276795036537778737373404070139366487346428996695561040338488993539020853305625003287543136863502717545940387182331331432408582238229051469525778632289819355181326024087449918001426504847955210457035187981337291515384979242944322119529011873003337114181110131803161723593444369777132625344244310438573769133599422956816989336180646425877793957658597491453282085316937035229443940988933542981077414528240030981605621673912021371481661444409287178623499971303173088155509697093789584022073300056334598052510407317757652290694551177799615165795516926445983539170271282404203943456900574665420036481286688151897683610020123883382130998211160939276121741496407777347316684021953767870539041103457170168404994130096888522386997384500791202090646447983466459967342172730923335113557474860300347193463779439974926862727624551431446841691808225791656626856300451231767550121335761875768905326292448240861047688931572792552201136915426160014418250997451356804761010700886907796877061546105757912440906343647666342800230392064502506704254235204438097906175415897821284385093643094080606392929277507629222410886478602407063773128607282035635356837173570751857930658862058444001715600709557677420570323756680763260252024441397300809556537231157895805168258327963741766993275324891581957897167747821725172009996565505623647461533125406608113748090621489430759445981563215217366874053477539227308563211778228116936493845195363571986039319279722312759329387136839393897826469851358532646210844810373664713752855867174047674213394285600070122291319446165570213643227405967618155095842780237357900235234724182642460484321967686334465793609343411597910669758146781199669730315135358651431999054462385503199430734626837516027505237205545047547567419161742983455812250862489157041575952541855716717439422555686461421699798040575878659250192750494702688837997062946412290454585540359373872308803216898780563409152724438273142999678952947930172574248849211252451775195246133919026651069898793558950712502756045779603258289251856780115151716342568147650390120198068231646652267140379095481097163853752669997880361124512802588200416872140455649821570097243983798185507179094349417187727325845302811729021487331449363302212611550852710489894196184789315076279764280187308190107619862883371436416688944149292614304083684713968248453095705457279276119969623859949993756589830727535307790954382542235751832197977984968162781268509583305393039022571501442889177936365681527593514725159802304386065274591792550393248766397088596332670079485713768558465474667116356612025004298231018831384467542773581893835202373604744854209656319913359335529546457233120863006578524732183520044846835738134788323742434440713355041812754428377755402455259675351820707381154816169676455850459138872727792547975698531777065387424920764472756447762552711443438969919411163250947113778085048723192439624182747202843487663916443439870568927790733409614479638439390925084405143801488300566527445785860718186144810386386793331360190490950900253128503432796830457674893682999692511497525594578887499503829692178843560170958089686680733533414720555929837004812014173975364374594872469340119259197395477705608021247599110553036150435467185155825763845805230097786581937555133246989218444834343110662043681571844936030139348588674686432178825177761959722223297410433776668968673691208721862652634203757810110978855205789767029075473592945973665865337989979844550700072008625504295992356939717447926560360535093787319439408853365208612031153265526642855260314667529911362171895306461275226541561833319449110619883054548900678069461229532369596836800917037090830904876864842709850040256850055125664263473949797131240068990775809780950925924365155745802461097271098714754099547538575910291166061598366656393931435735602666978490519734508076174714472028846340978610346821969171154165384926986416763829770508626427061609965370551450953868279288324105603737627278094838292900361615993365710685988830647564174652128175714158023834558303901641517716576603742105551372812697609589303303154398387739376703562581162904460962477343488867145121527097953787085929472387673255595979439239814512652638709878238846604905300671323590018148973403215741236629241178948980458530371373177964079288182300738714419494116224711289451556507175085871454316827975564840788291098421213992000282554436138076238901093922721316587328266862625933494585343101743851416969897594700093377159259911059101728795530191414227263716928779887605178169352350967640227189855573114665583249601041401102304839585410802248965304128039640700031648359138844844553396377291410660515904300054929979009660807982034862592161256758837000194703296838313876006497125987580556122060873826306336307096401663243740026148910905295294760768696063055338799090524432047108696227367117944868280425201032548419385227793434595550010179558522987922342380899096173032972651264861591831167060422896312472465685627243254061533179041623177864083033051037318850794905415344210791635982913866766421494809924729262857800958848825619022753099551486566514654356569153114696339156721131581655629242155814029493255580203657881263905110914044499410193917351180718458119167836213891502075707657148670084754393674328609100790651067326279408301647491731949425898772220563540960755569237678357130967754814903199954786190320197056800199855858791374388945427300945211031304668805305744802282919222081031999804019111449192822736877702856048324060491099305139173950783142276547873707788543234333511358567517123085037336009792739849635265219227177717454033344427046821601715322871477578073387807398974078906501941025008390802107763704927821751077413731964480669425509188483266859579889155853821282635159902928997508530006300036262907216125077475680124417486294710708224439065903485245489401925660423815404349873173887751285109129926877142298107337431117300510090049535323220224013163834617015850903041577198424254303062591043065086130547576174493329354095359292990263436597524065407278539627010715383330014527575616754893569261480863421269435553649968869428894746734937012758589895023522149248934218520106394177737390107163237088201686731087211078552916649476310989462365054974543840272212719156023532984650465510398999434807967405228382135547002990661664700241221780275132572693852200809364114862723982484301941812484078060654757994944644666540895587714460149802370583796652771101332103618895530056489366662507583353694402447162226820091488060832765868692834023191539241655333168362902578773663256113976819737975776541446773847739893360024698582893674924252077118852188898655250346196139790356327043226065407861757246887071020944981332112612810565549152658836378621825828968670873705942300176119109452730480325252316815935524348526585124181833041660311535522782964408068026590940485797664692137592611599359306999243561248319713500179951569664508389418313015259364400417302221152694449347647300496621242498262954306720980174086551001257190562895122041817083165763646069454498233394683971662212712148910782103989992424575744996628277590915397973580331051307149002597290386531534710984283615512990652524779086865374571700293228656465027705438812667665006556370259043351044600107257391159430659672328906979110181370205114492596680602811821258241389275400343615976696870904175187501435507129261853033937332779441972087434599910132304193804415026757018829025416333667972922688183476577057364369710876977593174902710719473577275535619326074483134308310973182992516766258516663669479201914807353440196206451726609808846092358975745155449609922536754370712073831780921839124087670616398266982633744481721655681526561090139657222268691095488946850749446499646078834492789233732510775655823009216075821388692023202676363302372886275365606335784174671832631005958589152980653927967549376003349050029620107785412760484570569633562762637282458841906405568163268304002896159964521725081970003833813472678795079460182097545786723385604094712401841354941376406591763047017950021686283385703221537686137770085306912859819815374986095880575039149832737097497350765826806345436951055690670321461686981757778714007227354466987263451599230422373588877406667444279168736393135219989670964448027135366094016666820737627430305705027141104603205107534600075366941816629632083662338451681360964782586123452609979972599709633961949674458800386638767474069805400385404043871130562157278990452781930327011328573434036312315155587832124748394754533337725811064971745343831378669995969189791342480754927085037990804584197726876562490326869409328974939944234037884897260979157932956963690062948271691581796292835186508014859754627564979553857670543193558673746685496398986014588075256823675936044038335115447006520950453931277087914529308958965810415863189065429670515922187637111071519374340497511960766828366651412843282979323541926667230565222780869861523880260144659609441411656656248174746834927537057087853269259605602346740594306095077526662983171705497038171872545274662737019695535681054382863397912434238297128235935650449573942441406576668585313059161077684371186981359867045463904009389710269198561512008314344135401655304500289789842326602410262638164909956063636849542264570308764741289777922590333543574485082526813698381413880875147658352873283581157489480686920465152584474878673599507822047604389678960800059302359688121679018456936053792839175025743968886981035676523889060156511562267253277486283954988986170794697693464538365621804205244014926713393102041407591606841106282703211706685984056308385723592380286450055240650086685400246403057042511455180995765046753996361029992424613667363311194003517530352573688903283637108719736342903261724513150299400618779535642090405056700264711241386781479038896793828499894091381676534715101377236006160050221222541842637589073929618161555122507727911067451273205334167955589015841402164101166452730898034353382407074271635504542403403085575494965707370429683052346892389109802791987692626424020044286427544985634065277185191001038437616467976022336908883296312599718824219465487909991005809644848618491947542201397669730389291283110452695845464254736760980314296847146382025924248269800393637719300603195779742278745965319054773759922393181989795809583051200645307000073651886140712017092960464921133286796924837499241360064959859020579745796308938224778965244500509282189430489605364088997678318723637473169772551470524306675298206431793032445964605328502774258062250302287551168119360312795233643919450882008372297860362710115619643152374226279093026130892951779966083654285356614498416766343448700914025573964694819616966607567628219225635002096069350420376697303821369659857335344246223128519107283503259720673884469418318523055242186306900873431597468849021423632869406443457803042555527262937885584780561388854280384025108757463514928553722903998972411376974741064542071145526207850816314098630147108213407640842331891945004282379890069812571939719677961495590511632004000807986002184687244588887427799223228533737501112640769499087137709938215717207931880211168402275196621080034662709256993028890047238166053711713373420296386594213030511861959007976517238068636176385219927784649317311132788301794496079470454001031562544070344109066400760285700261897630869116939333394406326906401391717019745582959166735971076697059845008458610563195563618663791446365870574119946453713542650266251388374210217703078078485189919958088600856411509618415026110515770625442706849523074553936472261244694261414958168285097976351784783891060781160425128635706991286721943791921481480014953714745884965269424377525691213994707021066159830652411658546601226582899383035710456284237127818960706660040072734605876680147293494343518693112286074088392295627479636169377071070535119007570677660732292763875638710520502200194597137357249816160870476033894139840938610187105526500248543713320189349351303370940491785909402293391275107373426652660379231190051796735706527158841142490171086508456075123751036009509095136041453979709319925925270921060996712922486880386562819446735778806550201588561887285770245794534587398097981018527068028704518146605564478689413465031413927292771312189893052864290033881885779905513941192040715700180620410567418329778114126887906453899305985722564278805858065156862115975107569382566994448345674234459787256604152584339874984631412140689337573470439847152774788966056706988050338144455491578141700475385239466561275165697783106897602305481288841378125022349488019122472543315686365763154838801124372323701116519231873059764111763746579587781790721526247903497398360525049736407750386859749131806971969446904975181228810704565717865307909782717174899904698286850512120006809651003593138829356247639966845722642538115619115859075850049411083635583299339695835488958206662026376916113121732550804173419196304443615441361282321657665175659456066001562193199244732353980104047653841611166757247790895813063256059496567516804085943725361632378459432301162518239753560454412410584850228086929505756310449275583360872631163777593336097621288533748515352960561398502920140726272273063653060568834094338277682322380698797364522265375260398802679179408729285564037712597348746198126839949874620250652256584777466137519561063251636543797729505336635474217682797256929690397869795040732660949128536813747895863773974994270320526132919580534558987740998957583861960664122994076098220003410116034559893902798655422605412265810441804050249072026419099240639708205652626235762115516944910829078067194525906377555759533988061850347045397628431393863265502864680896592678099825467178716705374355851243480307363349795142944266293841609737139632200499240015341163067405995855634848586169774272341127903425525809566730358173716208111909927516193228183613401365784336110529361135160974937531819603150154150530280200383708830216681691233034876488991727987888152900820725184671682745918315408646413633107985282197342145838994394951578525234063232163502878502864434587752587836220444509782981554356641599771214974149266392183532207963002767062243397961710968954147951787702165243573964092360298256300345799660508286197223616194334768495789425489792841323790756234497836674221657711467921888082284226151588738016313260370236237476272661811888080186264183097434089727596530266111576980120624216916158971294291760072298672631194924313170178376865568681922071563259724076050608546155813797008614396301117043360032590603238290453548434382401641160866779911713798076047968626329425767758408914042336359309417040299710798272177127500745127560940791565900362151757938632752845715041082104916137418721935357199551195814916911180461658937380068545473577673931281810387382095537818796280726003649488596342033864565901475485041830230181040520691538276086241717836541359241461646754908843468466505880161099310835209716486231625236712580318259472963901126489938388009648906816653730272596797966845228346060055082591983191830280882770064366009853663398005130891604018592250923343440808596211207391357947780454762328353159825123088038658963153608935298372109143802398942872973847416782192165713050732267233516665172134378806851088492062668593307183203970326194113530304361590251223051041858271247074403808642447361068578912097249651198462723904201941379025089611382272399894599691181580710691767233576323393060554796939004251766163561323672386293668625360164841861089724567666610252806920115279699579987380433610546081229333872505114158309420488223409039783904925524338483735602403709271421456114019410488521048208669940116271830803769923394525160882578868941101655226398915714141527583767656687615148386307494672899657602992473100203609075886112090964178712561762641608879034879622316793348574627766006600440476216759354712946937049777664172114269227134497623812384174230197670433646490268897405485330417245523023196820292304824314960721561925184964624014168199567557000157696447947456784150574733303673441223853437706185023506709215590321858027344192390337579185112956082142754679187315083916066184987285520223430319718793205161031748020378693405543578718169695033383762767492701021008924446185199627662799566617335534100128266230792239350823076937444604626981695659616456283066405767725949603358159932033473599220041885601450482520804954934466984094873504273108958549156125311398714527849618981752565563100375503012945811824547059530417738120141400254466422343773076846127734903088877416293044276597688769259618164337582026705779933597496249230821825715866327146627133656768629954200801537520807809719081485429717787059253852913502704285341075891333898378765889451193003532454877628578248653699088610114693324814216282894262880073617041072275718286031889367625376499743748092011214634021784438913450734466276603377709073790077316423935569675223313950325048347530816605561226165211358725357850679765523784348585617759278166174058547186862497433786556849661491565474942600422324393197699915235568012363807080256962957412412619043649275234699499956258726019465254946678048966851782759999325485696220477697435011149581157487876952585760823082904523045718802998839102165653187416908855741263014848409247304601518391312405247321918831696883480941651862334888242939843089536454692501189589100472945668546722734675475367674816546860648749588647796660336687817186838750363456160057738922290374719141622236276339782899622605170935007215424050798093825874966641844273188306299782006050582076471153233818343789203115646194782208360323759490903380943023690406341468866340682429778862561130438319464777354208178735653258999765884017003420519263081877349152008192965642437571698110841924489663784014707951599222491196364040766453112637094460808133382463601930321129924614057887041323190367275966124741992154382498639944244905077587887014390800565077547336646197485451634602989518879436513048550206392961326562334709621523647165002462454544708929123309103672368588593345775580117520566016335968615323635505659787107216461832552465839913347097904096117532754061905574777999463969340283255551390208846992380326833841264743544901188489665096778212390167168273529955592616827424118085942288110516457242614247168574494150067888745673614903215594846232131613715506849582175780099632545289309914386643865397884910232616738737543479943861201655957599793111824358815143912728349457326995702855397328807674076647683735083873110212864334795651039445171103236697250324829474114630067506910956324298437897381948230736642384177688485280086413932275477774569767102790189041226758753930409342227917521078187521748389617716707395372882187713148425511641843996584244268160558183396308624431007947316970069691658644606094587021817902405043898236725573502385757509153048414245696600916470335438680699658108397311790762889166003629523064813791835598900687077508404933772348505670932617503258514382650155437451293932401556868982622704597904161190922252890272814918099712547995152532549776857206407535125599908504471394247384786503588686847297679328175242209975077320843782044269397405705807738490245575846319256532816681682762715412625961553111117720843813344309631966871319085298173006380896074438038104945393368179322770510091940667137609758155441267354851182286918420509255481099519575463649703678333916018408308380470739545996975650199871248757179991094655773377554755259344419051352560514490033034191946386263517208982011744648230474320313743578905669910875892392490590968830339979919199642365647976581611397588722965536994395549654857236404085628820792712343336714601612813854210203954715178225433228099141707047867692735979299154182333057247674230037526554704578001843980590390937053309519912237383774358074162706180098509851762497975298255664279569331301615962653378683005653042733984457218429999356866784217443109745989057550111685403561274223948817230129189723461606306317734264523752137431494155256847101327704519012431652628860177324238927989900520421097728191301203552327134265907519782581325138883080999516395525771694771559726657055297075800220654061218994791506749292584072959767238263441095391382492988270144436359108442506370835579636503046628812613730838119093912213375159540552375619074733179403732176326022710211823695602053580309239912978066183004710607696926654018340774741469698359443272863925485535407685047637415548678074692662282987917524356302678694603912816730255034420670474912785078003493320318257521786015025993328408474784355250344180128866400908918191928945646886136011202050589097464979169048578017606237269933720594077313728583506201310753224224820749304763115821180668019724452057924853045350994776771727839401438736645508189774786933338044223324841848446409039566614901136322832354779886776119737116405742196732629413188006013248639022616051413347503514567904293149665805562142888398296872127125219121989558218195005686160743266969356685978644118129485976682725587688783694570356734380182321824953140695977172233349680204756703665389810706146614332605168068619171218422381171105979485624634700083928992909336781045046069313944314200936534375387995334348111955168689616213610296861402880710724237566235221721357066620324343294643546942519246616675617897103385244624734856339367445875658953418882130467770991698432798553196413060098432344206700758666805333446981784294815985301625557331443077360061279682102955945577541587000907122537165877998489495350507327934659904635614059590745942979069435317891805627107205953797026502501391253648330316043874650968622050317488381982957347933228624029021944174312045783805989963070859739569988903871021487996946638572084703977413581025908707606939962450455129798462517618055201706646869038506332081870405462120028985151194666323502887266487494736720309848148379918942738391786964468451577980138783830186524388823837081006831967792027120020117711294091243403104788203362042782740512988756533340043167194672531868677099324325507279287768100310978483088687860909922213374973399258131968016510178138030880233375291360008959929592248332871159042324335352693435351578551393220550139212049438342559103369194743282754868787598753660756988232037085566132126871393634422555159462560425464265357435340222892829585622019120086699909776224518796173738846066133767129535956011536271206832154892561205071629854845922919352841921316917272737718631751316503820818063379377301257415995468395051194908725325491816709722940049536862986529029451621375847331231278105155636901302290279777570291060473717008427890047879290051376226969259223074234300910757814301255454326080467694353162304672272000043635157856938254669966702558095136277558452028691684582176530160066482091996458125103619463499435817405005126628559230153071588299306473496770672365111200703035334736924464013307307096910285873658577228512903870066013490278690683203206289215316995655890299900007816693215749766442872833183235068352994744752897387945559070624895691305299982514363098304231331821871514765320796767945654927065863218893297162801382292380124070963262024605640390248863803814800827041476085433679866303570991791683980441590793808867303338074445356513175567024601304323668231589636259798376322680665685372093447338567830504881040296645609627695659677169859682347763019096667746270948820753983069364258440889295988810444936152969141724047032661096686951292048059971870158765196773652575026795162992673048949958884632714499848333000793145485826837196751491830712935011760706377994339639399866678545301560179318193544140836343760921396240978608728330094963205252758504542683575630437842705030435261145681683405027455881962840719094146130673345923258838066757351572419592929762216972303501574797305332056209822599913685484208743352890202245366479310426300217220507927788705224365480120248898574770953102374510700416900061710813227768230561454621950998651139628213733415012786456207503144766299169796189736904332284116180162520774971133479126046254295007730004029069682348612586158348489251999611324434240586747164838378376412190956921797715649970517955093485846898886885253386958413063077280709617174322983890635808771412953411796730316335157676473020457268864488220722077146645249122044191264522990669807251481953316204438803639668220823454180728654728488164962086268758393161607409024825652808937476633554807376601499545592558340659893257072807896844419783243548973762458319810763272229436116130152027966003185724600825821411699809422304817793220194306342144661969423745131945093930989416288540824119032751595099557904405579102678375141010775979505312607750303276701992928404347487321264342541686846884513164103861989735100775271667302837279864745626027918921874972997153081439572413384250585271127023006040134362301157956926878193933002606904842430601619977477911961185201861366744574479840262493133838486782613478328894289460756718163000156470380929933134301861311950828517934299165428108538737317965661033915237007733499959382002731714175618922981622496986260516834305452587902273729036775228528113343276849197186283928944070416449490199925851179870051467340497717817965000768566167273538267126640878470621233963222756528441228047797875956154242351542739042321179923252369750783553054671307314174481746257390869187848859356389373017582663433673145174606920056692319981125877763978575012074426633408673715751481034588123057277055743888506234355937704868669483581476229105351880869292168711845330818694123594680634939178888194881917602508164145590938721579382902127317026597031273254980213004949340976441126308829147292414122471330756882310768673988697057525323797196249791601073675075235080734977390842623091100293417190826140783639374313764146628406717766579583984606645147682455063589175268220117394131765834980705421919311034106356033422360753215745587890108306566690937613720041045743539976179533196205638513523983105055119513340383391875305720631911573523922192974716088625911974134150000811367996725173623152905663336635778308508072871726086004848365154236089224761275670357616302549231492488188850348238850676886849214332735114304592072560940198390211456102274187252960167415662420123161208778462322365175129754890276551299490669243235975680837535766664293532434478524212637429537075507276932079551450949425814400208383243306259815854874449987375753667915404285450626184530696667644615226293934781890651818304403567665137238331482275085416788947792324081551848538998090588340571184536818573685277249029325181978232231676629016993902063140251473254483892004143127665268158947182328807999696571543503711608674632286027815073413213921507725270794877044842690051335061620578692612137516745219594444400570528083950938540166944455627378956422635662131989842575956696158895842003138564812641823004003135303357139905412238264856136233813559492712605711257911260400160452624905992997590026840227512660579221763835835919540638369706339895678747094901418214326746065431105747211755771156700184749663957590942725720473117635356313543193458964076225099781363594114210056290107700208709059024011961657338769861569174349928705643850100337767607674124865768491932696394438641404276344531951568140462979657005572230980207828059766663943786709157345012931455751935705572879815512414947885946738717758797976302014367569747491670042234506522147751906989530212544548981127073119314922216781161101130968284521074740518217945249846991331852612589734997010763863558265949086983915185523271404102027814742691406509636254706878039183741715257278833919997100478948570902012582562529813439920254703867524264842975725502176614040353131585571603763666335701890380364348509245665261787583902627008042938089564501999740584524510628498201737178445614869813983674823045768638932387899332941881749951094191872995725158337702160215678550783446649521536561031882219318619883582715365391513809644371607819154103887501790459636419397891044244702404897229564908552842706736262209118297002089229141202813890394438350965567273820680983430053976390447120029099662755959420381616587404990331566190973661332141800668751457169653373100521712900538632940908488824105627011287998937259152260036289807325082635196825838189224994237355078372651827922648915016988790140268116591457385207003073051770745191207990438300212785331624284960731289261437034367145839174221167554827011715076457806470479030014535098622431126994290889524376125901253865188843761893102123200614233198382749955958283968076766102270812026113042750269575207957726723668955606731313062304419778960240777826918129921250733621488247347002916938183079147924645211293751170330850676243922695880779447197843113658134791361295228826304323018575638046391125165024880149906418298220941859235290558523156059636302769373437523971796990630602906316898628932985992762504953062311498491633661285030084433234921111863667054854219227554937050298987802113262980747848144428734752865206243176451073887756255235613051709714919358372202150271183611703565223548121910554602590541488559869422265915247132291166400514180956451678699801738058841111422803322639007960956475213372096753110050747524763821639627884341953030609774154485235179922638715629454161771911834328757830889246359297639439129076564415257961859452643280801960582374730513167533862448596421132801266926130518040065277250505585484579905386627636748975041823922194029180412697104994966115899982708621586404775835897339617879784068350642313020985870597003558597135639812201452506647038989188677014301336610482103825482325629869721509283039501017049403423491546186431754554538596455116021584916973720360877663670765884442101326937512662182370020604425895735409138259608460999062599712333274327563148045956906140397388453096250615564292868666551464953872628086483207642141918925747785415656398824486949372301199803496466908643960591261175247523665772959422879479471387863419920479590894736628271407730347323685692824519251185972585898837375573175385609455091052096617139890260569973441939613714613298865363081057785295629100887414825963702532909292039192652795332117239340872296535600904674462289704150702934571894661557785355639791134169698624141506872064859445289930974261155938459926068945885170001868876329880298980656650462441753187446353109749680770818237941761943223993074929138965162516382394298233899247686456433149623535091615322508637893619631950726103411041587790807212016457374094398372232053532128512334231822612374253886188639724134506807210655737036523074898672065845815520876609848404491783316918762451347469622491258527371083811360285567031159222979462304814545233849837129859665280566935467553942473185638116616525481837284849905312769264921188181660278577611329351083893924389683027634502060252698008990436251347175773058790741765096229980676024865001741285672629851712668192884064163184487847105996742805403928974266157579857153658569191683508206029932325226663851361615499274343185128422332123586905870934647523388417842190293963384152276171031396813904003579833159549094154742595376302806805320063347951878945450358774631786619955712228671105848099332327255518749236221491838920731806414634665419480167987224428217470056979195578245622825493723213425453991880661096132587374211698258725707060983864815954170385344679037166167257563270659991749003512800596800753950640513794185910771859083116711591873790381068018780680636578884878400641498609831059832655578627185085247996162910562140539052901417671066634306282246573024919737641552327182968494170585206848062706119567527448635021952741167089820697267084873081871949499692308196610343790288488327978775126002025525890097784991620195140103957948050203090262185458934071360425337299092254145156477977264169581970506420193930488574228635608006785407063583544412336878591140436390537331219475983200353075405059768298480236464761788262932332748470568182321061129981333671958246726402303739048304470408716371182039043871865360318673195957717479906567185258549374464171031322482259849160947613742157927669041453025509940181888693273641923123919765464061701384528428049778881773770253075287214566842466299021838743977335629232602674446514575281625872183309081566079574602048971978826382318104087290627290111019617149450591672421249360439879953254822744423112237650128843402958288128322744646988362443438901944350699348059946962340926558302369653618433231461509454148127874327727989688324469457012353070008869495121561695458043542648515249531008541818627485694071891060716671187541432263501055636741998574077103357931972074061516819587508374470886850887223986801518934644313584068609139070434173089163300954625451026664497894607143197307279456001970093106671735788441134381173839440518310767415793887298070426705968829006818304348502660835694481812607940377848006306917974454625469139131755509665817491493855745957282116421766108740522217505006101360662810927738616018788027020567480435078992203126378701801462085718268283268892866668057353509803655183050941110924732892365404251034637609478716109315922784994613128038624913779544802266379589133462202812854118299937754720471788212117399457046254220615210965493257639478684123618364915728561576695755894536213675069724927424150485256720755351132539946634129746844846610554150470012858474642623255093023665752188813397318270085504023582037955464057168782577884145321877290011805450164702775516595221486712837855415008215339929220161162948235647121703443988420690632258278153064615889412508443844374776392321250215359113912604000716009449932054424788257982413548662305791893082245773866465997179430850819754755278368107634959028376200116482831364589776201569288229195913597249914338132879825152610660084827893081521059624121981370243072310435490734681811979970256631670149926911561606624481982116131797130438918077374962708430392800663052039724807650095892160202423308016715549726695059763923054063324457480885379716885150879343752064256159907678577504128692037214074656359798929376214250010612958690480132495191236058212654686405366562497444934833097782427567757304572124750725216661171000611957656683527220177083224845787389952249542000189993943771245772555549914161168932527071159306658114061480269204729935801492908529055849238607027392966188791945659798578061295945162113312472949239291865769982006800927831835436630890452228833332968367244414132714134757738282112386752734508559065951683052275372864664363287127222137560739199666279861336933969901080980807686378475433178501820330401064892112752752066063077449812300853282025892846034351373681048070464735543991810530733554074889149519027576513551598247223117957209885108239997966758675330843173291923249674762896498834411343360255438979354134332863431563630894162735975910554514668058741322849290059284197455268512631392679111415958651789482853248718195701907954050239903275420554739040343544401985832343192985545053716481936345002671836260295830687749501399537771200921331460418123421876511892580247245310699015417368333430339918803691225930689479076051176589018952247615280191063310079798710320701834896217092698324425154831392360571352203627790805954400916491508706840780118549454272225369801243741863264103635841575196793070753982919255651244333645012406531982952367644739134518685734148939482233033508932311159164040041694297375775241952404516302063624961708153169405956986236094463015066628943543685339318402415866270120396024682992237546833430546134676705614895054100161835574497549492650697555046555450950032189627915962110749784426673609801521060356863445425776884087468496107069561372145266525384968362528962523185826758383062610215458485351469097500128140631721845940451712123496244700841438838175958896948167470230987882092926033392828377203909916406640089404433925582023661942498041251842605790153113113537323346156348003630441355704718074290000853762360559393156482162465237771378860477691042141744504664008850570204872139493406709316769678804131310692240968226613738161798106819929726972987630295873258134899219494629806912098960132924635562619902833867471521687067785343012241693333429366451400368750683021539128554320999386734920288560768218227380430180223832392626198148263116461608857788591410914405284034033400421234290934897636644651398972203160385574054643944799471568303329013918463977971861433241994084570799936314904258293138893196743003082018084849930758005773210118740001900528896783135012140126118585611593911805075237138832084289903027093944721863777051772782898006055121864935349030546297258103895781949894415891098961046859444636922700830708279992012626963375937043877309588685476727554979602357119171762643298629522551129161182186169910746547008972845775235020153170561391619727827090665239314263380342323619249826381677665159331186217756440750565651065167831545038359924062763515786890530856638954137612718548727311091175750458216922238721724170079763463529186155642888098123569420069041851317071155241584067194780117903371410510796912400084360868957154452432375837917182990740294295158383763407543145236769542915989832252608579279161681352203943453966289874197885317215075360558876458559005909290841966957384710383837305516456744449875952847007560701820035994169672429101302406313973648649421923972664211249683272884535594510025873497049545790536464767050036590634116231869442891120574608644890838625277454555072433539975460199350153045974417522464030545026745174436035150428715566553685056331971459171431830726570684990286831696607231239664674115385566758710758995242714555948321602969166750396649850502655936850532437066836402928331474400230683254542731690823644428646508727693684662506437709749970850976185242636359015959449687537575517431732202091552253870600969058058306968009136790684324249012645048260330346077511905347445808613005734403981524599740022300655107648832767812386565613361302358225161993010794355721707546852821496570029489823671928115397617964836039912932653974050669789787493378301903465281563247787437633358388399177339929406779845362489513116357137608695311024347375056676759562447947241653031223092568045309838056641158916780104617404485257141230831480258428630734795434597062303778241044773642361417999151676637038852240559771678660590653701885936336164417063072236328366505946690939028651171214958568551667747845418492411457709592485347896201040222474759764426944750541911564957126491540657773081459483779092303200396797024141295801866102456916132969448339649723025746224531674069616460655417306259366735482007391780268799852394279337863409620228953917318117553520740362447929521423726729388758217755274624447780835293227415384323186587393467048243265421826564176007167789850087272633189929498975938794224811248672068440034871233315676316091445665882589258402091903865271094662369332017894589230898857140187943620778135411157151931758395632617322963661221251038144878295661632919758370847523148475946946507980665330721363480277024439205842628724180280136720605571597131102298445377222964963854397046225913613042042213400563702331770378128396897959517654658748297505708508284982368214886410280397555852073136781069364354256044020478816500061107147060810968405764144564855368318261603452355437015471385322331840539215022087046794489626822460195213306134093079271890865467636409697254729518032365885542847843750411849334708471648205207420676943735479265947165601142105289542312901118564663830975231331452209702184803037336812904767525976752050298138478674276647352118268032839102709598499973000073363701175602918677392685499405049361897170974979930291380445289374376579786183374229517051081848581611146931683329869060300239162838455907676685747222424173436832673285313038456078398246313351929821257856288984864778243494264199294902867362242814440764635916368458322404471062412257813799919420540000119854222864765234305596005688535062930592790616082909903208152970156718172658700309170498402046257056277667422177869649854467809699927876328837740925999849923871568349738008176921641717529341238463146764597467055530352144925792339712455709853174978719858788148889218038711405138908542283681399029774957927881216050679973407117295272779556391518659387480536008877193081871744771140954880095238387535623067947982712030940512543673029063426251556923612380587036373132180780878045721502450342107222452110456287626527658048841705572627734884158772189527674582268464782987290271183013321044904007377442100535503143117253543322236211677572367795560119200089765480111912192085295489530849980963098406494511459736130429085104851927680049789929075282260344784391250595946980273686993974366313241345425761907162959550869447472932361656817710898734046762796992839412658767149561739973844287850384107530570369521556392901820101019761603348719659703982864505463871702915094846739783694342729212242315111347100977775517944810989874879598000773840861267353444786966116667948673960678480314307906185761724994420032432665302340698510759803580910647736693141015930644202509481102078155953073698658974591997564159556856364683160964679230019716947553875897657616818416069339321782127770370670684225485562999618469236410474476624707200295202642909998493137595463486605562445460261608679910517019002856417074330019102197735083200499535746490075238388944481002618927437612916852978338545793277797558885987957430657574197780083814701264654598100342106958808170573062047958812822027588430478245222190384089523928388329226904254511759997817629286067874016429091735299442241072987961592997570413853344001078484881289920498262014533954643149569103401111321994462594691996724238570905029023098722659275110757280525442679929819779769674321597517792708590192948390757315368616085291134689760355535661828130356780509035543548646893081500207042783419715856349037452547466079850923317229452357495576240688385573248179250206849090786820090566894006963724153088818392890036598186085528929633380272385701600035637635427211859795469623106197744190410069651407700056583162491261490530384405713220726857668830088827789795748034476626880608732840452434350524350040423546706898312835157292282431660797623620324993566419542353751017540370011530432035432642844001673087954765041402405889701269061426551228457062304762732380294611871203546971531211317646444072442854310297725152074069353018629012592049926717387132829720841264710858137218872184716258172838451810919551748483909555514694312017345785162334427627046481097320859414737873858344721996703860936339218358693014970760592107459835334830129692508583604063932630446821385358777892771233101382534954371162677119027706632435457622966673278585225000647562436061924504762937215013393574209088956316763354622183149285922128583647984406933705228121930759652098147444983826611086208524125770784516679816369326840937907095721374506359342792254187852785342334897406623818585210143839772004416336539483698657999089358445829787522567752507950522273886499165668911378028807111917888051986774265998298162639188562887709743829140102616804261381420774182598405216539096949956542467195977890707498589634827032312078326833355151186887260578003702604370055738002992637331164799141598939345682519065619643653671883595799842672369858563485182068943595970254436842666827414467773440702377403643285226798081106247901844441167407567130736651205206771933440557280520315567436777038075311173939447546043917177981150051822949795113718249331814289453619562176260477273710147359703911157787392016525931043811649853932463434616985425153109234581241737879714585521008582953970439494373279006706504911324568706207853063403099981655901597337260637397847614241012963272924309876560511367091906252058975522568486649504254647979424963379790447946997714043810015023766102326412496866679444936486055271384299437647422358093636648547176974634046104052444355456348635833761346251562309126267315058972052617648559271079446638307301672350512538281248147266525069365026278076079254070410727374148841696278556538320858277709879828133117497046843725039683986113814807136997719565501949226991369205742659905649305446217259784954375217609474926083664363884426371047196121122416008195537461863295559370556552126552997719441633053058377448037865391925273363588091286300631138883527284000534828040606428952894037612263074496118552686181173427987561617213996616807399264254815675577742143351355068194681853868685553216144298092954735489493319269374231296664640092341669589174688233885025570997687859930786711224836888215792134605873782744075154989779537414436563187095835951824190337083720558874912919657841697451133559002404652953142740544754419855561727254391422903339318713910760579580470954440825645161704961798960327895744446282175933684185115001405656248136133380050849535971543611047182523411830729652489388482499696091182675236690021305759933318273212900812322907202470880601097903265566101074635653281628306150160114123114826791719877544732210955630203852736673184014150615772503076319685237453817540636614403903432401918907047641581685462755064054003929237775878532275691228048529908264370007202359203982840030962974219829330138803499465528177705291066008750328228785942234719784171306251232565757511205615513638532012986814266604079749393768949158503222928286786406893681328017370513404726910961615795834198785951775408585764644974115625263459285456059458570008189311664096345144826564872891383557604973073028644243704109300287742876679425531662153387021318921647988034695022815115737796348795489722021051263563185406227741284607643037155013948583384470199071204490002193484665807136238983139956095801240303261481220577899411588090725908014422897594156906451637120098419577854703255073129863512447230431310586761436885048846139097579230128336450277533671797218199835549957033994773133958982841885340066904414817017412748272959237666805825875647785074342117888731177915892315621197466367180835193286308462738508542625829184302074320215672572399882404275111489777999505270109724801683675941597888926552691528449214319336782221299113472187599970953657281992086990188499118998063075826249447854511914379465862914491974791448994984920590200269150534058714783178164447376317213531687316255140129117507341176696141870859995628420243497109521881302948243836101957844817059470305448916058339716917292144174523657658843594209691060599619576746591442106671429467878428143150876911691833068252311596006706872460969034573918803454443116448333944136602967274533037880347761244591070233552543444303469166909039470782243961938079998265627749480400924345119400241801393150086109365733674792895132107280763885846834906834058072222832477255853022012693962939070215491882030876932335929959228436161746215563804021801915832368973160667441589902781390828902080853498625637349097938955637117073222649924129428862217522494343335230490934730428391128439271996306505895270066421033655515932686081110010266697703668082678981184295102078066349205966976339019223191956104154196119021547637594889603880231651271489606349974243167823151935975291354405687973010751872963702248944633427404703356362976690808765662302717079715057855618547659806878555351836952189788272705900383395373610940318230108484805064239317960953863815491122907328437337566082756678713046499491575577438569073560149137112745910358320760982119194473655926255849454593976129923508688658210002080636591634292432398249812608309857350965801081163906564551088843108609137044053407212044621044824980238156238869081898098575565036485165522688523233501130028133511552694725898067962746656864709716514467456792108040094411801133705018621728141291573358548684141390496017291811373382921402671635369262454243193065398428920045993636926614558120569151543129112533780620343106508043967453886873360084274989316088336951044778755815869008830064412945822849611279216866074642967314075340059376844950926936154828844654226647185047835010364650502722819017030193231399547988172335292268181663023953892404956773762315460386425324258995891008743767942120542413014295927322715089661301080337677445919863259676135427325337375832922716372740343210913163175699772055621166705998650432151538238856295381509719912872703517896994741645972856047023355386498734565591127490381539970021310058380042309864074649359309487171652215495244850020053310048777260954322364414745708317618123468240869805709564377833071237289173309135848203433363469083578796270329962646399778971217679663059439483209208336023528836284432714622996573680763797316605013926492525006872251935869194998560811507050244422761032614133331116974314273591154052022880032578775660916003197993849463011924811493617084975029401432403327601951287678504216673935167734620801928712728237088393835097753337272434469297778672266791043900677907738354615369185263107374778938823411896381175829228389683457053559779816894532529081663650834400739274130128438919523372505932927227339397753326919246198059658087144455638308239848432307580047688519295540987426543615012799424655978881025618298058863786615211040234610147029939167362331590566138970503183039237346229056087741512477239466151285075218681693994768120051790407410382583946849168452708499686200281510639942898521595857276884259886135028750770670002554832235690891392853405502932350218834410636180163832948099791287966216083941422042550201415794976228162719403166244295827077443546223590666687614103806793750733237523724551551057435595182314906669103472365905689387497000485438443891416341026499169324106893874857576773257349796245281901930299416373826821013808066151108120627705957112334259942216848469386948707152290643844448221677820406997010404166723580263962103879712318315287835821318654350435125117866750771599117320106565097858568259790929238197629126765714973450431242592608757811943972073732323416922485513266947586610208981806329653940533506758135043311231037549429984268754863772904904800787704326296419069262712701784775407545281904022140907907525416155209514083429806797650195540723342140490655070592900862372102308898684425232935998363622799620599245281531980004284483076850164001513454540929123167451103989024892896347934260781805356091263146066787689498762235914332419579852127517344627341282835399043511783815334070878109083350273067349094587468219461998904968196230322483653439993718989869013107869223976083962402736711842006555807548724269690109686641463072330025025503975941536847153855674919144257125782851542710870733437847760322943252131454961343299484436891052137405401258754627689571167702094133493594548584901176565111993227619055203805680643733201331002682516151674350196989495614297513565653723066204433475787664007878281984817350838122368125043371131441677424887006977256517980969428919407690610615337702472524599122658966681158579944678317894399445427948195549807175685872425805837344847933859503804522141512345927837501647410728286773258420667637595826548316275553793289908414904577372288042508043520953954013473361990673091317224054906857774806073130427463465967588801702454581328057014758833107944778135552279969683761040555928914876184623620885963285365092394069965703058949002104103835776684742616142948723496536095659438345449159538975136137765672607437380553656251664352747068301089777762026192007077764055606850618437195063437703168378887867224728836337445842696489870397203442095719662298129056892478689119138934434077915185010565633504246196351893486066479943325632618175373873299219719220932021589358227822729409511167654249470935273520548451409938892053920677173027692160676606783511784805841703632637773415993315083058495579182258307701681624270908683457385970942995364376034600898203041418429381727714971170029920956559994602517291529690700287969849888317433990592081558550903200915622238843587563196481613310513891620490386389426785610477986982444459113240041927665528741683468126187972394329295764008906792695577376923956221013926325314466598150434957882933937067766685790285185218537172582352352438450478122190189771310246186186289166769532074196262617615051236375067496752917321498468363375180492100874997893742234343602984025178959353524344165077760807036380378382854298453863791271951926672730934571653932789095313779704215564747498670886766511969887427025782019860570712714036573069686482404527844827528090249794506796982070664072599028032702327146882376948567428884552382924044707568986034319865976540506342943009448105984399940143723909692926864539471139193425621857920950960791441430685347481721067029952794021052228076218531471480701967665519788343101895986991677027103456203701666783427813871375032119791689226641429515753833641651488529121966058589243612881855843596285499351471838620634060295350437298688151721605318674858989745524375333924021336524898898428293568102974826793771011384640680180489825703750642606710553223382509838479272730922746049417942353267616669666370655056238496805537783958740634282226346631319110011560494818280748186865350384418803010001376179494845636804266539316402296401773564947752340439745255344633768674094724084461917996393224377285127348382584321278650777978588088163204562807574100574665565632703327214454886635424146560088204407211014581092969573876194310419450459317573641459597325466389558692056927013259142057537466763009098301632381232902331710770021357486220818884201300058385711188120469194563065534435085410471105047104776612103021320949995044939380747110071131115599124254026242878992409749775884640961390766460320850695304431243326582614803909209251078097029277408534075672882848898055734767262532931637547280680901523969373655364392169850175309078582523293248843351599158428928936503019055841770552100369373947537338359439630033609717410135206897449108057097830108733114768837635074787156160398893306834652308327784393306734433683921787713548052978103585658687828546621653157791009247108335239851176410219726514643048687018233487529907135615406089336772508120342013327683879343444281884874009069424903156933665151674964196612776675302555048236743509377548738367458723470905774314675754985065920363887654660845411374625881433406223766914597601251438897511412258502816299852453822196724709931937835089225176055589926170206772083958035342308753552545352384815182668549130045217930127714474981263249048174464105376741172533772028166840056799808072771009888869312367188643478015582097466870457921622058067185288394948981799074713395777619747597358886817814200615364332618926964606896802269665328487704671509217163641736539746620264334711282657966823183117358608505154573602099671056373818998874083172642764222699395164528144576082337113896571450690441788530638072703931934731348857570096744131426480340173330430108805006401594949051380340970805765696833815105389555975966389234772423292268977757514802025961308214684242808750809501447505535794235872620040438132372646168404146052738792474531157879304534318596881590627049007285375635826550489326825863203485437630086246624027107108347756104559045767514971240781903963175803369455965689201272204027103717848314993493341236444049668555375604684295129990127902442460147251578369234525466447624283019399385899139049036632726877269876955029704418983443958221991009519223487246401772353236765009002540732008385893944191955312053216267295820080770892950713151285619117528091509013587498747962987237519433816568453935032467568431032052885143492914287244955300763252298985693002324363952277583430416098594796205247479414620615499426059242111653528793192785891179405151757972706575462941828188521898764632624805472279981616679859241750742187702069948720141564912219580357131859876143544716242477089136556249344640903786450848473015637392227542765471062196385030178825271255734036600766847184550599804041042232084903366709433870176334825908837155729473858809353146759743534071177680773297145886744119923307037970222245401458307807087375421215551436928687254671944215090285780935595511984998229765566167277078930939555243755929967479842960228951013131481736180087525432092651070021720916114086825074021714662751144975098508277886890608345990310082906423976799866833872070891639468777135785616858775254177619068144631365805785656334465606007699466269398467982984239235858497271629689929818041453003657192357075855988985587807417609706754119900290541688998741520838275103532280735343959174395429612465874507279624494969592368084331374201072087396996188878376604380217932589204107769822897921055973884207305388905358255528746170960559271971269161984159185204406443313363933432011455707834368297823896196519488468406635770448209669385111091474820454750035388914822650274395555743539910724322605002711949363667923516839164628188012183869133212723139759546355786755864703947731929931648953901076266771547183239093927622131158105243611213358671995905899681368038398779742341914513850231195544867309098151300081596763824364454613483020671476810296431477607969580392623048107193608284499721426013171074804304404580918339858576040833537326001660503100562169883232734993065907784810511160539630147578260625661617641962161239795048367641760694398600567707037245709834134962971905614546598816418592474867729216877589548104203965916459303935220702251293742430002645218680522782079860566161702730774834974875397051421125195398910234698897312035736886826306306593795249853911452023776523729462271247526882103774788903738656472526278830333646414963408733377959523438062999657615698153037043906514647368917987178054147057142367746399228621391886987122041697141382487045767916326231012679100548680459578213432824770002666764880010974897481356732740955822160468025365495418956067098749120484004315653089247365134296080802937782339471096654907847188354393527482689442194316912800526463487934691887194932587092990485104477168071904834903917757356473859641767331697571989558456542440314082308722268333205038337782344266610969755391983813811768792778081921736480366114552293765529618081041678494660273321295622149858364846793625782858704179850534597624396662466690230404070516858191031133324024996425706959656476378468099841269426408494345973099373582274234729693917063729780419581621674838825480325275967025482823052997261867186383393906859609782169481852933112516084835026379391746993556606844147317153118402123838252141389397498746955062650015730799034769703485696885866394810022991749342591742509564537485778475320792336817106149247055709790592772168854044796722923210978385955067024326188730894443144291990798724575615711962019062470114868141627851042363968664594627924950732422106812431812050644459192168655824846536090531254641210233918038033474969667755906913215873563975263253392307059229576194655219217762759892692633772379493699860344996526659440847506198651031974582805933299051516799797860308344844488844018069486745496625078253569553093051098005333877776802815946351757312939031208733970203489021454792888651016679468994759728449470330378339636179388082079507379017792317622411572269549040098462694533680473683965168142456086269833871891266530340751425194031466860225575600850809267618062506833218347773261284199635414148600959838582335321176745886934550576399206143919874843207550317380726869167444025321760279428711146503222035172643756242098090734848456734608418399367809399110376410084329190329452707175764992573812692802298434984782656518361523896767878920396547754463900450650475196604622175074626495020414619046209409760496990039820476226020469326441590762662991033113605667630182996223412059217677279821741504679531458355780688094171259790701621358421654467387179827939437691453661734464934187726932628595677883537292026249749994226824811476168304742496721737250449364561911539321904735750497599241029623047740192632639621573935804527629338632606245232684599192969681159049836178276833316099615495804550287243613568100369326187127028581538797666412361004663239241902432165833591341185458242186763345617363326527805265419709853883829117854818428477238011440744856866072702521716764915228449241954696996863511456134597552895346894403736712826086340068181696451700207027565680067147643393200948364140002114199698233078508105557247768017218838024234463853368353227090669102389992522037886747059786147077145249173598263308571938032249305952819159651966097970978108186235288867004470052276193910029491303540068216883859512449767646759754607685359543898615129095996631221062467076632379693734623565947866278634197351299656716864424460587781790441944881370471903316563105641631679718165729254226121044711394183663295211077584978669317057663298462096155497395946067903109241632288302163468768466798932613003758843444679526170052500093591316311262502991814154795626771912354297341018577789881433378326030500377126493513923970909370095397163129196899285176876215043437412053530769147242017854411273222195544330099052177042881762598582300892778499580287567925552105236584927605133895490938413321287985820525552068127668337840652232198506562571577333974782747093477790524377462131719533576369318097810842479898297203063916508777711929127264286584427515206096872817022407883121309912180564988400101937262645751363712086849914012017438484174011080424702423161839957855913902131089368945060069890045165214076475221057747028458572447940846494272147028818264014233398243250464684608048926563055675722760508532222008626171800563008206176345580973649302752197592025650086568635417191134458638939892958606851060520142480615675446559280741108514749882930510401971299128804771652868971142654907057385560447763938808395812512940965143992853161587807011670498688075236873709803598898225414910754985551508116717185600776624737872535599806011317974066402202256817921192734763324843514680630441664614642880547362640521722708239814517018316975513624451912239951314089811291068622338102114380472213969503605957188254723981916530267453636176484824445208864164395768804976941001876503708215031011682171170069591966381197212549948263205821417400266243013794458618763811965945274245360549669791869917676436813289286856676599686500793345145870130270380251791742440544294712620801048170484861146248930209677731080372915328885354651575472220023043047720668924728805186164863554249403153951920158259300633453584721205037795011182319216186244558390400850526717798495014947704030293981875051064620836045136154700161595760072734476115682461333711583335739911334384789741615623384026381808466957069293161999943257760838156714364779796889137975707571872817343827280750272108056659354596088978408137242998619931663139048891875301636450695409754715321010831696857102084300311980652206970812431746269163256120190031714738606157768047421980455852062917361365345621037679054193433043007160018923784341555222262917674056958195967555517516312604277824851889560247966477875338040079471935618929046446676228010217851591857743311800406548855913815669734064754994593895613476668638716009295093867296737554779783646655443146749590182625113623988619026590402832594159491236631438034404629502224600889557753692921178849127757758832997606579884630420296501114569939618299449151383499105910952560705819547636563146247368535827033467646202947474522287042827705296260882653486750180987929452546994087949155189168037308858679486744316839304417525459492003426196305395951564191228691914547413041950146177004912901495494828455381279364418681619753379909027186679284728762298831898160884749298049546452947193763630013832539647936826191547817908255436422077075091805425173464912180992684211751252885819137354699768811857949714586233609488378746258217666328153986583522791911487190737509395143147030474642721044413329900987720899340735502818898575472775872658281218860972456381641501561165865050208210941429731858398872154022683535971435914429936303889055552287158389045393572386533503358538856249139303592603379349355546711313306270227662386592242329484050817440833755900452383045981799581218823191575474941249219449260690195973471188995359840324761535173163809579422450975062700825643262761147694336024292161910114293371931997009560466697330878781450447832355869385521031967428431085054570162187401110898394849867629151209139258870972856637190981399686334500178302506827061118778102979943055241595772674795229595400213409093248474127345037791753393116701886537514927462921627642235604115024931743140446298659676335207973826800534633113878663866433471275404533096492932034033094639387521735703355500780666114927513116536319465849883914987467472838085274891502123393946086310150753246540403799746986055971803752270392311700441771441414864077900606758676980678109776836090520382136800279702128434669899540477332698728685042668549557636855646873166236635758779129129007693804065036541270981886533759044409133648682141607922539203664516631579492269246064557364250118407351766033082941429474046867477102788962330218025094886057442392927390688734364813688547449339584634099432150010931345805874763562041009305203604297655756950671184156097355797603230814937332238750834139853800216915903178241829614061784116235281310906120661469098281636926660283153482317347327737441639589703388758750376001926184622640762898118003383074512201118762978323703061902388973105460784806878484255918238482970938004526585507450722621476612380697933765726837268338298603235057050052718038129262659198733234027258621861861225318040493898247455049669389286090630687402334262779901546305874583887934616607297039568008550463800259352823968133674475025629912190331516527829355543805272393430643735421295819224754197206279773507888904147469900528263306903317280031256136164126516011933384913324912540480681023086049579213288211583722053692830307932969396928454772722606256307371706844219058801357341728562869370644948227956003468297182394362390977403632432108511035275645055840437527244254884469313540373150695700810056643582503476185491047419505961892222732445924265094656582492110164413030746420170778104363479575617652037357692038772783376163468157530507954131438451272861170243588443180411396014907799302016691345151355353531773959086261503666656811133884501760193594706113950749414531132333807429131464545912601826498510007834535851719353633203618854265605372436409313478811089239207752170685284619185401469366834435463294264163186390719029846700959674326192833024482280483015669679299257988055289656557494111156289919631892023719644736788702878668733396646228227248765558024716272671260793285166228671159597139699527743486049842120836670877843196975280091547995949482857751169352871169293833748578447697791503496974679890226933564651257853298744440018033190360945039953493441103601299874830737177923314737546602888681620118779602218653702922118546512142435411233064001987111999342587066370220747245762952420996670640402859478876140834551737423936661334902357741924288875201134834993798095442502528694405430422931230733739307968464945236576470737231051764903032825769812130071850148024388428218065567919340685095679637329244071415941395050295935674426395010931488139522726941046812485897450290226702857655056519841349484915829255574244619575724828631796146546943197742526928712767570386002242033219387080978093590526718690224472527781536993471304619587671334589552089478508992739120380781704761845796747025107394417907033966140435869168238712021498647972092274386809843374917365627256891228549232919096047409399058593173180956479862865373692183371544623802369665361051266183389420174839122388804710599795246069368635023496307366670466069471227598632174907152970029202583087294642443622210088737290667852191394397252960622882503659895263506335446977170544502427594738928224909289943323909842044945995254063784061286727422409336554876783424070624243683337493450779106430963805098048267952486755294143456821603683994854700237053945617126492066731053705770303899013764731009231072754258117278906763127593122206605747898554854291887878585105218168874805938200473235560111953197840673898136921861649778412319726693580936068391519641339147212539014136007720498839641897858030908583343217782046477479717236862175664915441811171452818768375219850687604091218086956177441557882439507525252924989589222449343612453454426683653921465816669990396546778583061695807453361587970902649225425495605500864444198776371358297234851624799039621841986375102313911995505150158563215242555829031141600010406225554091049283518077587575520197520902600799800707779953359687197745906157543915256020220553954299319171414631948597003573212709896498237062265247332360683882117633092882169164051548902106583805439742993373540651599340358383732662811153095543813195310744864781784908950132050841181280130875747335216425032992781577797766265078988216756472709144711808209577514758752165622032713205483095649675314142994370162330825460461470911822008760224673341108750244431928448191451742415196628663561054251722026522227748393851173055762799540325537343986443295657645299851927452853941941433851783749864841435312665892486415681893906285357856198514195418568989559283479403184982352059742872228552634334204879105966517849672764893374419515541388133694099164843055760402616131943068957484441455448381680152948671973059330697391244430479911542529276191773041857307059743076296013462613580547729007101604753478836570296107009576990552035567063953468197591122135328607575132491280904226601359412904558780582776649403339486861186591426471442521242880723303832073594485929718127202657515493362959532322263162381176458023279910442086549735747293747532599663521655418825935903808575848507249681325920290916413373223906778472166830582344458433611817096857546087778863413687666885824164621655556653128865244744494395613069412748532513589208210639663940305138533230549885572491122670753136023150844705569185201871053738091643744352140385114822975732914620219262474969799823663080411994912856010393025675019022775591146852288467305373890726168424384616585390920296230403424376236475354383235094052710810030597437017938717819943672348942333522969897779168958929372783360810834526764873390621168627223566537007121637941359614471288941859417581329322033521374048062411453538620366529029838638023842128107787115558082028484193213352951356775101975265985124927328395455185029786630946647076554354485739376796446714311926371972980323503782498516942310263849025729940648777498181046462783013964848835238251510633409133667767131808865234064800424503861932498486159871810400133126316482004754253234523917673187913398486203762498798351674106590179155039814732873553256816386083998494241420223133990871824544379558731496027383107872422169631732272145325896705266384112030782113917185973409097285124522319802008535404111926747042285307806985650125771083035944729389704635722127984595429988354633961547673895945144021958866840908192823830513118591419450013442340489574891606485846914068833158514834818970176198802817422269296708071481657095007938155344848342271783218854842336995212045744222207125843328162596217423014044373623783265435645164578794780424194758839950130550243468201226857429998030468839663099738645855505444104097865551496142362554223160317689511577384916309378498717305847373449083879596149403728657422934360723875327472931507977929681089555730519547597681569220713899081358631194278509976837968408461801705903704209209082467264301293587328503701832557632295576012544770993651350551823832745899706687026005240005234772227675491013828894203378970146037881052282080665959742775455677506303437809315450119810906564463531891728586029698315586022659070699991027164318506445187496582572043933580750172766265421907335779633636279971899993761237738588525423655847890366158931114168458705633521453641653234587951647876282875820176282107334053949009997146481545597963154862984537416347145198993986396495922037405684566639271408181150376037204054618275886531177241233609377027254450203148114269870830849807734874075083831926799020390882389128914481292054752836302698774209315479632018033718275113906414972404210474310116726102372178277270232607948410068654999289991565552900104857262816964934326068762548376748170949257330963905828546523295027906091869343918294104443415123305247483289494344309631278573341887377306821579075884301111474374852013261650946639752919116928000202528714198407744657574030819360564617480204184374029325409987448108079725449314093741191387340850058631999778841575438023108704608587718416607004953869482768675505350258960189556504074291411311989242579158690318375677002867641970010247496099900913970640778681159484095692701216320194015340949943593304194802240093688180908136411519484130485398894742680237989291070809720560968617332857967527544210743045739821360520563006175944850742974021151047682738170166292160694825117799579281766012342432448805976949458818428907048986996842263315071323522876971514496188282708191115557887403151725306058281987461175680683879414289344724903995754115428300642277547544328894183161489987403377979487620071801731241328282624215845566774120909533005539925538166613606461669886917694734091200792252450335190206006959920055240664822696752533333455713589221103869851662719059290265278183075058508799151624927699261135872425895048399821980280172573597180730349078879748468607746778752362248264453472068450325912308133020916847232222740391281372294639747656051540044440237988874745491428350421396586590746415152244404113975715079199922408974954479176531559680923240067064005927681392582476067133423184635453811301875128533045224676164095857371743365296445900860940507659757271538854954026249674447206916540304011442318500224307104819947070221693516712488152394201381746464600113493066731566009367068423617694483438093847373669358383222963677398689618435260868175613979630982370927438372929308038256851440771270580693016556926414948339657148530877587772894382054729415330856891238008504274203487961193327134823950235399040633100797386680460314836620656439749781384052018580053585259199094402931678120680866646138632819523351883523481885581388757923336258992508697852299970181079811062007640310674654187750813200737138419980547258271757856653523180678476882289215541878163887099722561002006632266613300525159899732429938078120010684399860467375757229224957166608691061368584039036715202492654101243742207985031954254393396029815876052846461349462430615711677020845313232813378450248653194585326545362184286425982334507040222392961086951739417044378371806145133955986557042295963204716556174457403659501683299554366996908746449917123255982732704541361270940413021328814094711778049934916212039886650808756099643403044524834066525277419270439709030612842763498552846670932280783750638836094333229902116585636966762426729522574476281061937139282171521802793032104580316938064274418646033595909187350178031260648668732417329477797823677663770070961696492443867042854178589769734271682937683750395576809777364097893930971755578336313155635610535084478557321495527244582182080959411249883453602191791190745989200442006673980062128995234260729782429161574769749165161840786359169605620676891008772647592011508842343699515851765848631844438465349874026222719619596154415315666892528155149131887294209145822571511170321283057500104407565605638670091427127289526201421189223107688884693066719191922508746990718501316815486874373938901463386122489695472733252995446459048941878352419161096441076205404604447415133621825816611083109751969075757305556034650175310503344956798196039322516139565012782343812161811452942110760557202741370805087434277585547743502925851300971486714073052604632086883644486663855016662855640735753064782555468248875357176710270128230054144467735468682491121062567264742601678971690047438742365208453874249612710841367226052712661609129001007755526804315434423821481666706026116886636277811786062245516176020495970478999161532456082605568668694166502818530750993069291745873988585212620621354255039439710735634666561191598703334954400403483322995626526843516302500522363962285897786464756355202983222262706993425108703136341199435817504661277740147210511968195848059623675396159395844513834521604998639611523479678453298748583660188707907169233977348769692614559055569673271725636111018692081556754492750841341761346409910251172146417717981810454337389210552306942180826471157372744940150826291898433084964983592113143417541992209542003718590999186412331602745105764619060402768860410700977309745590132431713838422079624822255656857142697467605877466058433485514736172270782972197524186287657782415731051711914783273979468672500040930902657864901617813317795178424502668927924325608353795277904250816292172030270231936905747421288331461992559045839752470913615706476178400456113560460418074365317938994879771911464428637461988476321730962392881285292007258641688293978125706354376273655462925400078472324465883345061221282903520781600316164984199634951489949154702786788988958601553135877501166328154346873419920443988284249311755207275021991494729180066393845389442552911967232819546892563934128697247796224294498008035561344466137889266925922133751522569810813173116152710134231808694771385865253722459364166784826056641163281611915430620099052564024118371465767983884074212837230940353744815806669274338325056694320013559893585644288966663448956051198583020347851844227794227264343023450287734044865071169539299279892150806864839015965640788084981128226186144352243617831751291961717156329030601112032070613961579910708693416420105643383330976664912110026137579102491877331128748989378861612252789127150464202123907930226512803842691809354269401945368827894318787149937297729001370578811758105439703005295854146409507963552326998275877812968107384045186766871426924028837280128165813636822687107745153743770158812589941440299863475766046375706654317596036486852347974601921824812197705416310773620219511371861193585268922601908469247389709802936415317745797827385314721513431602116120252726736701241672704091698921100292141604570970718331579956161670163544327215232070109077141950970030159796706597818107265111760388952395656207668019439757675298032986278500869752579408428453444570041800367639456732972757614781377309698877015980675225893264532633773733824844867386534665008926951230750970015442280765669392279511668852424457690710794681345870293053900082120176575428461410997127948587239229263210752747115384914511541578740462214085391065982795581682066413565449419495929550679046343736783833320134930058456326245725679875659796369638780856395495200789261781654268850958911327902281345083465390180646507774191059210525079590182037504093931172111267565937714160803335515436903989209772422410773440880183251637764375097309477917777812659024508530388944350669004025045160331697766904248687462930393306396077017573004914786312503033730565694984236048188487069637033039146410449835759082411819083941238375579319801552885108502388387143618263514047247820870820361264247296648453616581164043675721346307266238831758464576802963692085819598721934813478442161814287974487812301963668363312422988636302394221780446495483284674720688803249163896122630492717498075061249761352432546157403464152503046403175549490747235941809646776697465825887369792880258316631014050500803167308030543928367867190924077940357061866531020323340966797169583431903869256380544023649735752732666229924400655986107380584434757831434405746739141099475154698467110077202349593428687284401602275399358790002921151993217388719748753693096902361799108431140112618590864605796891314864353330368836239543942526537267467090961225562750967739754140582889264567454826356623565186353358692050151887011440200637287233247703034345875227430682563444513322898420845629771745805124467038452400516979962954261586298215973844645065330518268829662143057628121258780125100210291530424842022038360481789332844533319520948088967946561189627447819120079064490360019070942987248125777048816070690712474581567210437452055239196636073265238910193527168913852010269398420669855427385881310545021764387088723877732583622564636303924852069896502400657472542519254833571811060847111624152977101804503917385170332854983150437988919929456926371587094384577046456513619723271303639910133619566908522662527104010072842725392608628861709332678479487337839478167445297766962128278936620292427514314039868486486598592679303677523858805822459953971423157978398253309537330808629126761994586639892499670242344507951592432939267897271678154351705250331175568280581629783290591020534809148241711245033397006133907204457664892935014897708633411850878866466740293898424040676303238699611248934584899202014714707840907878607221918663707117695195196740169646679803566658102775180896664350032826273081057231501174277699649017643892794772730611643104242852694908175144031270651274326503136355237730254193269062499412796122895455205150253641490023984480764435684996977533828888814756407974826357043397527772215786503975816575573409083107137445884554137311383950825898896256435727000813329772343901807488012823948929493698735998246474282536216747036835749156531466439911755669382960172063388611765775822852104598710810406967448307598479889495230503924087887109022567633124408654541783221148728137471921262648808454579327077733326816790673111633973750806809602314746432328460614435443219021916862381959221039949164046684778060280452701315756680405620697000485781401716442396449585966270512533881316045282841501128396732069768911308510478276134985705340036472148304320723612362126476389593648357024113800601681514698740082567946697156453951936601164133520420757299275977844879692901487265527840914538335770813230934657313215615996151077596902880948199070963660294887680460562871897473310544061599430403200033909673496016434326631856498614758990694813231233132813138027379420445867685776059502559215490117392714250813258388908550520647773150356177771237444534198354048922942455346035363860029572001513304358501049328602391797784452910849563355528307478628136288291578004785216518901346075259637675615906186901540804698565260511834812611865738882644884371679367860763285519902096834268517669402714891385008386460667696097449315354640888070790534541890964556792854742035925485490655545005761618851011703726018188419373758197452894363860936005852832468489305858733547691896722631402176579346713867939258978478911328444162013753377814746937485221145005015352514807867007524118824339201543356755025879653248663529278947305617552755826734721634531693786475179426046597415128724663054042797256132684944483779264348316186169341187160597514194930092862473458343626025522786093682322048871142552243608229825328450739240548142667207256844868016053961449104341423977304491416946594351703469642503781274051627177328313493762449051905587818094272220253530915391727581846800681291530183291778821016784961855815374639011146637983377387567792571084485915707418445201845251882348891077512471123096694619122354595266080808376640595834880094573792353092756057620978012676106370628900923107896471624679296263741663229195434689061798680897116525871735353284787580004612174674301739039587272003491669250396574967030443510940253709890647470867709902770605495392074660741262231092248790800789742112974121274236654957865211374974489335393791684408194727279495085612728029962643306885618465842758401822708120885040966196339721455023442667966027282550051461268731700153230315024440013273018272049071799900798094401683324775460348455535310050090067921755313185696378384704066746995331361757171839477179701051310532888430470181114929450295830584208392187648149476527807002544293712641116494325523462724090720532319313748732202186756806662166318859716114780167814508892313672729211906020755144818135622611523537933999163508106596219069598442042047985947328949490718418608613380909070628138428397424619119136891996988911264346916021672057076942057414575911103808660445386979420590700090990562409050283814805184373622603905976440116057492499155176355284052137119966140648594786214225838252330720501987962960009212424051242742848359712642049964527433956922980803957388448768736562964631047661253524479925834755992951254082826862967261051435381545438219157673383241955705152048258472102550399801183594651733883062907526093334641975351114436244561518579459397337779182799422936281812342445134290230648307322814554454441678198633547280221710161936181150268571998961339740955067214861533783626315697959198148328125235793308234086639082511485603609609447199156488839226495489297586629793041877047063488237096773020938941473691718195603297904478029625888408013252395658464676245732152099410510809816612900269798438072341145450991521526977130281254075234618606877819305736692020553513029028902691216305337322089133198773886487585910976861561908482495940912092022432655099906478757249362438559326954672180009520748510468800093887201964542285446356273088364041322913884889954519969297105162234889524245064069381239095380757876168249218900885746520738257827616173479090839476355008158177786804990376705298649127407577749750344486144897054633364444429704591437264036015776321785708303546638578045360646802882955932974899929164844739902448471768046190051534937711427973148765013903927219372575843434702219396005495932113888334201688407353861697576556284336066696676750623524695296682687515921022045339445911989065124665966187321679203689723520897498235699600919280944871410137147288654942640339229092213555185278945222456308471267934570786954377432103000259602301011701845466819108106296100809532812193308830942933216996435280927535209361867696129964136760421235876226014756451263724233058481430395846105772074509361961658472360234790809104932197239749247462421612664595921800545084858814702980038948304738810082943506254896372634599710519808240771180161163544120272324781759941498514522533780628881230572536004713301143380094727711354815042759907265011529899569966351880318897473964748098275781185516704099825466922919501278902790076202944437717974388885923580752249545814781157421301482099943008275233765443549593030014764863098729125633495325064894556718472439225149771014871412654687206686857791987612909143007904015997807799433264572405822559937571687117405937621350027719224471077069779180743416458134836058611420877289521429402680601247060625662422460524966490069283149748082803037931995698507891333312742270857627615396557529996544571821596028971783406127421494690043708020057751566076091021672635531084476986839704032119459193508026943770107648087214069816356775873097816814769337791005948565289502410371303064239199704290316571158066019626483429518695960480667079015814634184913287541580533363030423899886205297318985934113153137681883798923340228076342074070034551394019295855804063995518878734549529322956009314789822559655409415749338471844472725366276948995857953242156116729303351100208972355716971165075013998245172322691434917363016079618412312517793628223751520502074545539105563657291595618049246467638973351334460385341158001038419879418295849652670138355596001751614153841009524595091903263388554680305419709630128748854475273999696198437825782188288195542804798271223248841208049163779401610578222772900375392282411730721240430648469987366229396930618899797269040640535811516531021020731050899727602615127033139620853183411897830414580740659019186729372442057305260205322578554595221973179718991952238608844680976221016247803582678722343235923815566191484873940650844136443803441284881620288924161200674414367385926254959676825788001124158111843954882873880615787432670653120422885502921848533725429654944956091614308086954601582000920558242691339787378111581887238641535716002554346866004958198367117266402811885809200156738118560183135424086870772168563257272378185228420002879122380406558891702753061049526636737944167365145323427725802311561149573217329494491864644385955137326354209714915127920517986062301126618940743626515837723798036536678419898948736841216610984036016282297286903529115759471435414849065834234804165946107085907625895531003307295620217033074534437125112161967894356777802401055030493167252945076105887706067092664136435425186557002665531879201557892373911412686410484002324055943975971066416193843275733152610037716266105331792861018815124673680286853811501029517607456576184639476578282854592927479835261703749074155199723160227532639934812477989356575513380886547804099330100013647306095569626970916214285897897673188218356920210130084384466460397973893865984076801809797294496776658168531219374396403504107381072162357163124786664487031905412249385227230084108168576157406640321386035167003455857783537463483335040240673995546241273256461913357492425717752335132888436587796299866237223827334960569052372202922608897849221994426822992434938587535861948287694200322152051915685591693247078679157345334224170035706265267456347500441493885170826492248661479834969607711918047790322918569737558285792277543696389449310791764163820440763409136944610758314280457075518067586504055132348629554115139539954954303491307863428446863081193605209197988420961307343902449650316749892844350976902789443702500006140724939524927531741424548931938706764595573024774982533033736505090193415643663838096954581120358630425311353786116871111345814827842021851661488528852726849710058814358377244343244709387746579757518300405348357479430002216293764344147438886128561521338093010257569534985895226505100608792361915334067202981355452563048071104090237337797132975071060952106846952082050070032685896706635887937957912751681229098591672380316939601457003390993182433370609765753233148721842507436868293478680216865155189328928277793413933519643642224886600934386686156758714403718267838559874176756569137063584060604387427018928047503672570510257631094936051705849154615788581508526340638544043991050544769690170827923868338312832674741014951653265683152439593024121881303034847113486074402742973414615986175875064523725901676017023254499877675915945992607548250561506744372430826448087395981586972336443503842191315876689081360057102923645263763999652378060700886564994766086091339185317295791958873554151963872299785370317809138391503889091475367960682823792272437491550484635602239796466819915408647006047139788414364269287279048773261752863251471338988958302690268958550496217652311255087361473269918534579343921657316857811929515821027085415597495406135325813268001265858968515599907481432950487629386462112474441374743821149695523678596629074072908373193068172751502434828221502482561311987160467410283045438138902818669625541626854604348759875618070424345883474225275769007955540215213880749025894111998310524852885063973126445522785442643648499051166359696204550634056429197360766593380276298113982810326119328041250452302339165900216832820477989807055624806200313349670049888417657031085781760814142617943468556907951421525945934722642618334068909336985817673958283496961322596282282281864245667540745716528220396735453132467270886111674882677396217713033430169495077122773572422008139460963835537816207029655646371465006533439859965210324403153844345192276505256985510159629285664333137365852264504559473092448663888602453805229321352790955170627996877363510102309908914944519754949488458514684732553755144292764738086465824084059821270752965028252999745791394657123837238644936988264045839302401393212342312637567259388149878231909360277557058164514947768034056649550319778105538556393213495008565613600798487675905141656871672414772926322272748173860165380672576885101407479045567541944432505567860461262791063029522231121698336960749700672588061703226712761019621610959584637594716590364670641394123653925304425534313927461581283021477305510677352037743512421144668141303135037873405721800150951584277380428066181185483199259489653084375134773223317075021942701946311146236136869491608187083604518700729550868077093154851777010581238636408077387992957555954549132786446890083396679865085551908310132797034624170846284792331928231943780417144481809455084246766815773134735917291334625676155965395599480415286887884055036671292083733178784028387815791192660390436901025031892996973835002507822050121086337265667524400449539713672117545635166616678804264456619777545908242136927407576787508053598262909887211003107407966975132688698063640693379936227548045348996082306836546120846952767434749562009717354786870038039305267452232948375936517084443917043201998972104980202212610395250180299148807882831854863830145765296138588752071266005297951742445352108586947052008840247574832545922341353817690505358480106405704713844078463633711210953692541852802998377863349580532310821439765181323768888278405402068442739216390171422229469422046962366727715417233934228473214899104459660069479867746910082587343660649999419185073082587773740162751607488658456281978901574089004720628293076790609431241114464294815779519157733000121405574876850702254994601406785101266126508718867105305771848109134749491735439296599666800432566945439027089446986575718220090630104441654668553359011482827678823523921586860626473521970539262819335590914743869614977021185535590975046614407875799840148012113434657925499714387695946175766785660033422064199521137680706575911510195853916785292515305853306609514427594838598060684962549200084830793932239153715918476360078045855733439380808815426680453645546418963256586910271243782010202891699360500782600494992300606440811632777086689584956409044571060826936019490778832233066868585081060307434856036551832572931378348560355378750149885156168332015619365039334171666139169725624609500209669885706816723548058660987602574782295743245588174085463218677823304055116794591157669966169296148572587355515642357946918888870132184382334225153724010973199922708540816092223219383764735611501755265752235088782497652801441443831600408531298595988805127706924558548980740148049443683368206978048395422408598863765938465983188511722157143313157589220902447168585562700334151837372963992265042207506898563921632770006780779289942153523281048298528144516157132371505204645476629357621898366744414476791786469302591459574003647864466133766576129079024477901659478083258049990559646259943413129065503553877105147280479727223020221670349854531352964679577211745263871665037543670036133591124359147173058311119636053259086053097811458699569176563114151050327685783544786032153600857771898863911941909831853155678289533569530555448508369702081671081858388444874205289241269390402234600127434619689206625982896078218492939631041063655388502296024203501397749019589657887803338705684955433316116555064148422262345163901856361059608699712634663989840765486773670210189796838729834884743821346686765336062163684848471661328551818958310354121911585535594618325126167358157735178896331332970853811471445914019585295370803612385710225696965693243082039907336664377500433202701296804330076338424221353338984823972130767157395462701418726246114013940377441121432555401351262067145272506353511507610042893051475686513328723531133671764039435796505351501404061345115809845609445202889619640881073945424040081744115286690915529604626330682884871506593838630579699567152629187864952685995308951810033257577928755626156027440915218652050988026292522498903816294536362976744515836156704070735497924365243750814394461748025909162105756524319537241571797785532317073124360073821629674212645828213486956224798656382917407300704240949746876301032954952305726793846109415737784677998590381224009521048800868374369696950720224425572424375604633238107353734663150319596415172669453039250670143490974316422901180738033254381156204375024316712027913071293033502164513605966653369535699184454862233539275683643793319404510884631348601935217710241960845171068349958355993034205772187881063226077878935538051567892314981667449147737012359581565405198219019003503584465568672037526172115780245716216675054315434537952602329797291578760379728122371735688298638334319896546638249697118633796158024777201945654804079803870095598886191903580801291318555781849935851284030572683618732584256542212987971623770420893793093754199847146990898394083073262218405992645484755788169175760329742964179178337485780761018812406297679419634373935688485578169790138578294728080998589430407283489679285068818990836412657084801629002814359460432406695667696459657145963026178348667365429988927149686243078454327209073394119790749809828564520820142144731175011218788544223462256466221609672649606289494188023583026696388105420929134299009924924318763441553094305601112627725755919712576817833446649128028727043084654634690911608538974061619930713740537367089698641806307316206293122195452673463643511945021232993632710322835726668133484834898799050110296743468037502810650105453802984860629761665381735144522670867076564144286756129026467179660678118340040836251926216340455194451865221159038668484496601123223973180502438433407954973701466683630833295737978947325439216407891799925221118555638003657387341477845629138327384607477953474454593007487910119287095350161762778839476404569412892390579395814762773760769506031942115615634362001632475357873123093418420142536552820044889912380720490531930009269260289456860724873419717052546212122737116234840315555783916513503504963902708913582403155957357577639930714018246029208449607801975309211880144028723957070109967065238268374659064217463557582586046725176588757771120820061017884395328358363074968533666342398594446460037201732164653704539539976154052645950391310484088861858678388909220178224505442222390162852169000057136691929031184500624128410070916369296092451732924209460405649418380526475533313229276158043264586138917176571285108443218689354762432482225034024815009299724685749773194330264016496882502935374662250399951290996685303478376696642490927293206645105439800646518375386631095460990826451599699560702266076862646827564126554789195665182546609308602686582410249904144069872049166619267241915965529343202516395793430309141237111463706769929042320425560761526926210232203030831680475885876652888773699781847449455942295742541683087524755127949579924947574792143492562005787294497731928109634596789544160526354398242541199030401609951240332745083917747253715570471694742601774824848206587667299020485258885934221171711413363057462690138161281314379941163220793898937747689248008354140701889653997824710147938332027826331844504923719401887967660318851371539998511970379167591814161438908469497885409460032440745803632570935170797059208929529907308138998957697894664182678580891333350755850171218525923881849502023624076709817845245900692147164040576648981387324607464321324870733313257460347824572628240027142470292331135365618833327656151773696649889739385694748624175611160164045863221266157052300541889013470967688393787815742603316036990239704548626031250937785899511815950670886959608909827448294628208897332042999489197303738021971936383604680659215992989740770629378893073145479872323839266012178557513311507184534497621598532317032233006273657933380142897861211771485748485613215790956979634121609921606565748008800177609562818804723116830313776280306961325578237672329596710644031049359690677218041108982191911476996446990039434716533797815227168641120702933096104182780871157093233756747480083900312383498368355956423054895082007627040681875701858496056263364041171242646452882181620393839177446761119198840291972751390136781288851195258847808003329534277014516888449176383046671710643455046257002046998880065531661493343119118073325679467985979643063628319369860761145592655707885760248400433228564700760919566549048708678957240482463332666904777218345816121040749957979189515754176202546037627385535188766517126478438139642953712892475607334156581598318601964816093128162647301879448731118003950087257896035153333598612038267468091566737639041812137152505339120717614424321849096510159086418707746952100245002965001587852822471642285003831637109289961094785108331001095633869097251992391731388668237864176003304779655962318442195546502092073029025558837279112123177735646469108389338455921019765826722178235639851792977136665438864268736040259197141169178477701401024860480492303973635044631561792012373780696285889697535485620052192937429973250557503506114157467502518068955676780399972954487149251189766666387011562904205488443261969206432764953466192407687060393572608281286596239180598463767217135210985181016452912642202360103362649489548503155699305711857599436246601272311398268544097316779806991406539727191783438527422015931828094181286100635412442910116157219381831468048160491823970135634549126620439820484716834630286521768889408627056730404031055310949152197063764056663246401212178056447888272360631093168753100017159855572132303545822935620604473347879488598928480315956221999025404112687805172190767135985696654692425223459991209267967800542189815106325639358312278013415333466415077647425377765763708239482990355300891678619981260239088041194065177690575501382132170918336759722468607880391591149641223719599295730827413092881341708077649881628125754403436379495538763792186442056412980780389030591795306568173224447803009412745326901144788721666628229076202227906494315885950437623561745227503721867360668784073407614298984631632157598662134207308202761187354872853706185150370798157932535049078755537709077831649156258212799482887543629657101623134436064224795120022778977544027864643161950276250762933220956003121551588683950475496366748976649793420523651662918886758381336220855312450731050418186811852772863245387811010924177474791127511243939984839799407348206347801426482720988655063532294797852328627578013417358834653675084854257847762820725706994335968422052234813469381291865297159251453317855228218328090813447180873663941608763665830762323888244112758413745929460647852108220660931071597606454163887437248707490124429253932325803312932448677866844547335278939989611448685164856930156296284679273284850076722464575369314287788038918665460681524643568332589246310416714702627017978981800722505912163225107661125419290917051883893300409314504792309871822641475751271500847934655578019691432376184871665136424222149101511751305570410817060855072750232946574972770683138308695087694589538964474377535919958327963259002810033083162601374786647552313753248913102172406914238247852537982608973268601652489726608751615833495303045237300902989470092209267632445335027614942797565385396126005432641122445229945247061729031255023866444204237665436871386464301971501042333378825585155345921252206690902288756800858062906271339825039264425876052189748934771016394497797493669046248543428132936017094091156640552047802518892315209401121283621040070956702154736673704893354425104291779475929070122309123425045804777841544933886983485006258122651249298768797175472890274863074140231834517568242238893747525287381613778605387648599835435773845764309294404862057481201713907099410858818684438363569821767394973400856406263510257584657533279281187348562795712287603477898596207799388948232278972996514435195045867951272243523420851506450396968156245492458147021751132895751707364689875151213152264895510582578733054477781328674990326511813381770929051530558761599299726114521612835031653894469799986774385862310187058640224929429352595245367884366993828848542882911724086552735276245975527500255184984451225583280121581897040580678246118805103732707764427492409194049937997721238960417960061555827816307822842381992308227423106386697282729532969807740026964277745300384025366456767512173105331942547123708266964569538138196811582405417690832705113454527317047082259949050679672258704375304551786292218722037117062991733118635615856218588959353290602272097904307006298381524244303223936968701207751519353266250910622355894087469605677315667874287953532461995707274876923731315304036660676101057970374022534865656029464342389680881074855472555701773511033169291755045402528659245397577185113851115843423487953997694633597947707753503317349733061907722250921927730224619354318691251002921394394051821367115868127547219038485241840655427458709124384917885999682858203926399024719633095413277883235044586144978694913081448209244578118969934760864727782219851953526932813126917297943180711951198258540981301920778046173899236092617722443798532222529040690711098540141079444574754564981711494130908428610701257052385159171843743243016225198995685243334221300739123602704211699511100862843123316575994985156288427220639137994437201820165011206278024839454567325066472980389314338204513268554522851702616464291668943020379290707122943607475867882528498005446938634835031286746741127073902368139120235532224347921360787917071197952673004851863684831481426481126395620984820768738021161068393551826141171552579196243649148111364573795325065252640469108373533960391187589650101254785555903120604362206125124459256981110524056410571409303376849234706754830067252532071468743298941945577877239419892878767766816706600286972034020436053913854735911435018942780482100113909685939723508214248701234507064497678564824018293318819512391213397003624106823515481399872561136017989030030402193759696112306783674207827246331937195093706331138806320285075879959269679997843051091236210796928525820023613417053370706446386310658432173341850527638272192171754555465125568141128990594876834994269964178717128101318849391347274445042027979314908516022726625102259259180717563259934678999960799515601773383846138193417151271301172616055580506026265594404226029808017033256897324751559300771538889566708518350043892742174060058782141705710882927521885025942714016990615875323325729794945624204674551814159383890070094139410789886379064912207535822306196740937294746655867124139227347727611304981706975384620029363422490088451316388308352426461960084271965573716870048623248589069934906450803073363808009788040545057707958118420361268441936013048058375646347872809601825099947847062872592679464686510328560926939413256872029887648806294366228358078033172504650929694453604830281549869322811669589668155500799964979769655927253799171728154759646199574377138222966613936166529625533303747757816039311483419971094260681584299773024092689682426898498267260825112385855487626338958031594822411785088807446796548124927128325530548684054793928064354966093897172477058080649173637098576485868124248395692500049657270098115131647190105737723988680213044189757336308891838899759643002259329042633726812947223734087986712156415909725883271238448489236519900647079409137130020325631414489225219678947421742570984985110064956075125420929042767156062679765515140578717477303825675749457327267411373861206380194355055775790923316842915943992024519568419926764142260256200075985465031503746251411353895528176542796809835882393932560153203877781664527301164335027037568256516711408150543304478621883197669637292389574114450375737226938903338729321380070132346668409415373485821563458795626999254268902528663358340231466920211590982524336430443696124083586407065096101567671106737845950160335001415078114716042251130954542254928851583326145783012659317531132199447577839393422899203393264355802780665811454454436143589827232786195404962880233749028162646836630179408729103085241820651978066139173065398978274886774922642486206999472513038592657484957322682211713618610500405588108329209307771983720368876234901450118974887338269298829389581091303257613674339426374006558416713259949691131936863963503211339540528282993349798565079923599526545768748712038628482382555936722699387934397530060847693916631755852359896106245485159643992445893769632391323283493715274023788111265543303657443935190953649169947703136166930393209692590778577407913949241668056233785557631776946988447400661410143083211896436776385233842333730029842970263327561642158856255823417444234048352549369086285346935121111021180826355803445194634529128045625228990480619043095151990667749238769017292601595491309528932519495808945896776209237338450877030138970326842771243343105049489532776632832363063596368585427112294974687284713695966961126581657677223065609926027227629554327710154878242085771274420266904829815015008697750503698772867999862098032957006786114563543286848345174737812602445048243518955163864813749708609755506169033049006486579378145836524320373615496033019147909519582943017725224070740655778555748379963864710695959678995265139022325056712885774511745960278270913255547694172083839812696155672716067568770385060074303983820079092163923012861729370939119985465168427770828241316623086857558078058328365001590013358774385142994114264714209304189852451703168271607562614076025709605491162179879225377274590585806284435042870724165336274190310138839946333740191396798700828180244848547962621567806447925929244580816854488638712097313370844537532293660653727776737026339273236934045797589187585685015724066804990530243665966309466673893975289566394859545702941051942480711470918286230149329391727497365836700756193923666623478956419870797181685154411379970293626710692419534079226121934417673173394777319305296385922159114472487693373382464313546107732577820720812223356606422268863367943497894235994635040142418994373866174612363927696079993400498483745594742090639078409378051322777637160549289099438820335410353942679620557657109072221155537238636489093140744539060726562685259586193975891831336392015999551997997880999428627159176808776675448266237278433431605360358251729817736302777686219684570761290311480419980300824136345830637600069432748711467596594347670185733013312677142422687426953198415980427300303856502285233000173770902070437695070021027009414833643885031112979190631644963612697713273697443928998165141058215822201170364131018292664434827615781238439002526673099606520774289401221005950214371666207999132181288273867961064012493118919466329161879529318094249362396936065284444573703373507406943111865897689794461340299940628707014622029265755266943868468845187854693530582397883728525913873413743730044234871014165368305805351548594879766756310312947823553506919603233914407589724051687382235659889296317322580500627063556611027265468481475519466359658239871098000046378967839793207684794516113017355268287926111246661159977856733428976249465979333579973557353235091918237496933933410782105399970384911906941911481859985941478569477102965516783183207122932761790341787835152645223163241973434480773979029449049739098119947574664543398307921004590412499358399658393816258430794689822191404472897914833962258905124464602297823547300052569322176291152990767734707954922465749169416761931823929510083579436145848287138443928539680021974517951192869492321701829987230378552260069295598592595277045212212017601611392946400223816943522920083805775001625393909248595026523405240545831146081054609895189124354631045165692128509955375000215190133371519917814719977213313585172362656414438591556309989256941463405309414622079738958481380293955273895691052312010475919287585982592875252209307682207284974654153851583657467809784654745744051395383229899932792906495683484720436064801934926515266857060478368152705508745985371256242759208056717353657848003067976488399078185414474871197738754136457363519999015335886395032061455768270097652189435569787596724954663754597411901081660786983834776958379005639906334117102842589277567311279013390471238743791002776557886245493847979504660336261721102237966022483880746279055811713236191782480221636555672212041565541341119521813060756796283158760560840737067170008148300389811055135684320796389905681390068324369968182446533529843830021943393501855263029740734803719861768856266780963500856089261825154597891724216138161234488240305908180573537909112005907937755863937645410799989414172540637474173896411275911939622161921118538797375544703448050024523965735925567274586320180289637625080802815339863019387276764589016729892733507672004180333706291488065327772483720242536796828452927589991494425523533993036573335685063922312058884769998257956078466431927267346750817150073436383816363003924169581428280798417645618680046069713559668060544614684389020954962963685324977860119244967957087174774836219756669338647921471778970384170305487367179406616724494937299990437676913554391053465131757822991682016266445288925551757017777665199633286164223441612705526692659482604949183020087176807765198027567351715147221631614303885030976833585106392855528763893736404432473165149491558362230383014810694209356731808734777117056181501678533224323466159279157752128198005152886372497013905020392452999189049850385635648668325882449269271118126055206333749891419658394122457920011492125404485580495863239198759881849292398399539682999692855827625283750687165346583292371563527335637700837976750085395088719159985893845136651552198240461033084978386964554884213398858371127441152628831684430791332460979779437629258852527849242422699990732406726163936938595610792413385770500696572533216047460767770234891214168448046872117326488447150934136883420380779567262914605980049248725911476302059385342350056037623372638259362220145048521655413079668221451581403495698468471949900526793366323084035790646161198916239105790819746370954566994824737829119030395956794986024981764050565101121785789086281577139388767585261008088336729260557320514701319904654329910390781582074184781377308326164166368310423869251412973810290712148741157457110432335377418015386145260449872860714458062069989666463602055997287377078282804346996610623218752187389753669899919380079727481170878816204107661174236051899217412070039141276655134672020267590906894342520115944307384221402681869454134622624356209584719650546275268627541838580050431496289780172501483175268009182978678189246298109424103974213228822358511625197707320051401115740935848358180199139928479030533753893691511602425363394665304483114566924697557786746506523502598580093428068079680965836631600636550054974140820446552319873818715817180769651512177956635095346804833489199722559947154920093370912588440894869421743683365025248438151672116586517947316713853997176712184992604920066198529740212423612668990194733959689879219206619022956017541451769652441164819214153594951908015950473992102746987134542660856825369855182936211213113078242806856698674497017007276617866644491767339005105731328113825277011818342808962966191733390325114472609377212167046801291725316227484628080848574489758174144740808199369077040623155230141562989285982709467537832502610551490889705337066535787239200376251620099229425060219721064407765743210015252785745078099182432163839037305894433598637836724824711965500648239264892919014546802025309387772741990130889942584285941666978152822080229346954624572826252223807509479071203233423236166979097105324360744355185227050896994423256281085560828724723719857687381343195653241378316335612867234297970749106759900945862561605994044259837827885227141876215314967303171161653753971755846948514561116026853688559141450874386150458335911552361986335627251138327937436345680731593079679192052618755095028217140333837882965526892276732139222890481829168216329717060535138832825329734197203222378149502232823542366177305648808814199802344755563746954931588175015246797592106756151600096498007015111865286404075729014202295853491027366735317760058702014496490600467253388490479817135253622189855497634163065310484326125808418586790981952369323208465957522938887377309052257446409608797667604720524792907715097944870673839845341626198963781311453593725950669576554174408499074007374048102115647403534273082902190459151569657865213019848359611088198220276753228416965369516049705757290375027500369356862526581621846642192309064536140558768625867882414538746287003957781064813040439040613219405010716709105167581715122669684966534388217565839440673229762082578856852044881266658776871443223695999753901677386501290001657000292631990667901409947689969151799277672085418791811783055449811997198198912240229140759273671050044613851819796299996105432764227846228472682802198165819167914591745463096153604165711737583330860218665757360670254540283443302519777042721030820928818035597098114520764510428947581259917356183358057868860916925265285730075096928853457687359214063827100062230187935749994526392997224469376744419242791007772826332896265542073242864687540234487607506757212127234800137954058001154613355692334488370628409958475107340995526717057860632016770859300830980032774016549042851441091064448817093766635226700449106044174249068530730833767176524269841780578007041707732175908150462481570239778336257709940985902731266283168553230196516072373565979942157249078380449159230571007227319276512381039500085276313235898121395565525324688230479120632809163197349885512652180515090742208539428539487052804726277930199684287232519751830645778500686801874384123414569051009673283546311585083156967717578632097747390119076063373527025270993910307135674007717695288451700024982388496713981094250311093854606548807380135703905187813701815181903476215737080134489207607886080701097827706305479832815176489202682864435812434275557272715221602084311952553771863819441326098065603696398329506831054380930577033415292375839536136878148209852860543016143519796197401255805395197495020003648542670437306132063544397466949966796527854957392132720779494609437061463640046087398338188604947735816527021179485624846826488083847209239751253349924121497241819241664607433241213713637220851978849954322835459513293233986456713596512030539318297073998366401821472233728379877576211177403928882718381125816499111817457293575757866507754358601475320719239598460731166103452589887826361272107535975517326340471249754926380394790304511332508891492704082693768268981797061117872529551047570663350396481719379268779106784771812065406870258695940835540982741417302764285634302268585762695004741653882160885883030230601893951768057153299506367217563345908078112672825838442895176747283743128860993254425581972051732085128971655578994153147595966267665357781522971244430462775605626327564231170693161547997934748520152345429269107656044559814695230460832553714973784797858799819556782983402548234775065977888108732735169753416168729751076622367638830066149306351098621417760049477814478777156167115366056647863489630681633741690687827993994538312695832126390452426811062933832327996529734855660803093231256604210010216439618826965524508200144571421350751930740677935137807244866275653453230788725322006286476785868819386339831383877403544638365306966636147245339799146033957742435128406917455977255178683351287453698944574971581977281134484039521678902050606553486013439209984627576838413189421101145521589355530954174153857025459254639639706958866836448573449729803576947901091871220107641009700955380892107243836942828907302228999441780145069423088536509093557453462093316260570475367730941166346728598740976762268821703862096360056840122319686244439714860648663320551718062841948193040770728117269152927301201729609526845708271623884618282161794681556357682315477498046347093367591847538222580608278296180718149233044622165956117826912450802005220485394573765156977101378736657929856852277929665724330822351459332145269535731338749577168397206683438708377140430611246260686767480222156870326688299758472648535795854966662662483162988009940678959704671697232672549368319315867353363470664738005984005107231022373798692301371573577631286386063404050164779866243666117039012985221345116899014857327007335327405210427018803202841389959544560684320536765000119437147033116692185285786193458315375342285473586995155199015172086232924416824843217663095036201137461501337620475725071275506777106280490544764620573694391641898364681827535709175910203000866263131141916781198263227755484517183990379531350103404694996335946700519411240846015013138782210664941862959935872135651000582699622329891493980575641840706737862216920833703861930989492374833295040922034199876731114803079985343176180054441795362036552997147617838535868284874020070877535333337017314710877504184696778940219401105757494945494520395336752407560021306367130690428213924471935042738165825047830468441132815940643651825454866055801276236908659337436949064776432539319744609438148327943573579238800546422208084281476133245139620374253334002545898561794034577176686247983092903987212407403933350015692707909138092146642888849714555670149893425935080149848460944386574816434539694628379652547188705536460827605964564859164923688618069673846952775169844460571552076854746311472820600803306079800479951855358604456080590960566138988656625271348983472433746632297138584019200896534422161806999074187860243206067475625568855632945475799136617492421017405515170857543535346300075196307612996998505360481331890420694232725612686759814048535731509929115834613250949009877446775403741025393006405646399048054821486730093890022954984036510765457388455322643643480663882069183612735007395602891707371812422473473087117961540872382325115272182631267273980347665269802060359429075505457173058694841003587897372680814968930691021453180815030991573530383982730239788284720665240168278721850216994292976420130217261678578551930460893084821044061273359726440905308688136822801756863792126798370673931807147215029521095427966918451624404454551124581381885099559688695458640742123383292529260944716582265141640054143067426762359777654402105595228500813949853907112854952907058015456585786566397892479702631814165852915267260293390549930141079911406479989423586062689661467337483603625912909513475239134218651259525994823107652005337185738768735497540118373519908923132421506504026158241737001594741223447368899381135167665957904898918927624592437133520452146969118711709186718331093788570112687033469203672896366807645262749786106183130433914194573988736234521593809293916939135217501093939091543503079638984402461464000734915373017596063397934518881975819744677743248612751705069703069483649275319512920448779490236364266364027764958450149803028924886105295817085159730113097731153123665493814130706281586696363831706154946352828258461750762494446436720680871085222561085759992484922629945151083248710863685679045755109117628091268057311015431468487084023701998809647233283473585548065856516089168098914104182788387664903309908964039852695483338839126566026683555156198898207802027105623077698664802608004766109760239295543551620637824917500378599999924992962635326530259820756049160707978834658930597913287799039365341301339218117873079580106452910223423720538150516832672703664413160182783352115445038306563088443237305094709641834077970130146994099147633334819616170144119493891727103863507949379245770613189168441204902117669195986562761264675275849168640324181678590018181025986503642316454426251493145182249039549322871713888571275929255511053147513764839041563683805269276181836724375492308024615507332581387417861316146646899959662117483955857127393905675863824865675965141570734920041756955716468354072790201881835716194076492242256419350660398023990289502323060539762167114375804712538837754614774798833054510598508610467503241917784502368434492222214888410638772875652059438113278805458872568625620266855797316908209188982723097432270121847103116926404605477293398973542676996606374851409953305204014442612780073026735507150282130679460585172412638950004304098707513893573837461182846309954540546351746290296983809119167144192662045950248244216072391692714432274629763968368414312518649103451745447528549224548555015031884132101821538796232640780878820041147447003444013246402604158045875877861449077945176577153008101033181313153119364941804456989664319085698267743381471026068046099992917714837842916466877307403873888100197622988956272334236499056470819059467657386428677237932192603658931903749785522069552686929978559923919208577878189074208980121924655782798432351383929026430031380381086693590177894551606526544290037011018140935214684301907608156879191165669319842805254830242569993972664836318315336776505357185350356645523233227699861492843441354229473248123734114068617735629135114954024086018637817934775291001978709222953558275727682088413368293976905262968232850615619029009121210642700522248658718926538238430555654077817708364221673827471024630642820109592069516442961595830047732572354792720885667967910046177267456012739706657229344637180280453550041540042370063146605966211379180899061421707965620025728899327291280300448469249943337546401405025789801148519444443492025585540078221486972472658273761852793949351042611218234382422153936845597883137646221835606700220283892969675820542568963220460580529017410003340619813044555745219564022096065635705885718640441549163573339657565389653568388124023419016723332219669680148067257249927372112120093840568358985382443130349754460593297851769652604751251215912552703930044063475086322344613671551630563939619995313157903379082021272257478226981009428610874934529707386361448183889228144300286157743433659617409180284999104732890826267126183153277713743195371137548392634088254548530039793138820844869325609573981452560634404969588687850493174620584593101136152993452960041665773012579382846861675614922152055582343669052310946379819713086864713741293373263263846799386609574383629507270874106000180133386054309151582360145715670599440351299636212928174516488489945951238994220836566574759881990962932468853532351746020224120747992216730295590670368994496249928266653081440673167696643389139096937404857987551581539842698490174660532179632131739105739702654639291302412030676811457272670734905662962478368502019634519112541307954782125098129614816695397038745280785613699668435680135696691864656389755837004091059622149092918021584292393440267623161295574816715870860255059869990599508275922800601012235327434749842227682950157154943439320320353783993802433322924542757209903198128677309104169494755327671683573210703947502087333995835704628148595676138324913237036821945106611822969893831027913729127018780345543052190416355454484601329190100798899474111602256164035949317846808794464054845147992186545070356982012853496145176144453022097322585335049537049191319995312646764004448039443384500516747612908596241715148766440656364891942288001005417539153950507548616102795814288866485322036180601104681886389916711282659613952179807202313269315418916389468221806735987833156041587356314884306359291728059020137610200752027031879090654437838528369458146291444394894580552060718558750599193243591401078104771631420877137116677475651615821609601500386654035276462108064623730978553063040077316737342213607031791839662578543785154567804243445362507427225176925849546397717822517986837765280282777191466442829470489540048555191042783605759393642555382184454347871405344733627507159469587910180068871695143408283469435230040628030037726072564229325646450729334446481662150651666977976837624741987258117410429579809899511444757158350331548789281216268714761844455744809150625576337021595257803045362384391305760471351677789040079857587059519283024179980482229668077651937439767751779216156795729988084046189389413870487433615158639120045794220519142873643721645368940208238274906714668239465787333849334199261479608828034519387586260818793296496006588666790230641890569639719365556922287432676826901242069215071588807732582219884124673780148871468219114006982455070249754391520131201893583291437557926111126488053611062080409070442478148462779870818830541447402881000015829094161150489259216037964956364350263255657896157086443359888475036562385493939653807653540043139616264190284214267894679977928899013922832978842869098910258872430213408642595226033796664639654880370658192755252112350588353563623375972501654327539461459130646162252134553159396167493113529901714239341839310572632365376962079762750173697202009619719248415373693321015050191815946572675758147730553985467410465557522448906516067215813988586112673277353262662741875396853906580050671508703594974716509197177759097467227417603022966170046222535624170483017063048814399334272640132074416566405905978399977767625003535488064701687352932154866656364035220397555423672820441326953552385243894404085631637249669975462085538197002486813492867872472959631832742410777789172527291435744154196042277212781001456420070301972023520472340004973842268833745383378817327992011835398020914975574876499291149498253145372066965784269130897763585519494959430123658418248138328049169633560111652254849409759659455901871537375192711814422869892186719854205190432932481023312691229456203814989375783138237427860407068212829612484656248869621149448416940666718951803254087478819155428636534764917431523824624041555681794205382484993208870916435209797437284555507468203269706696200105146380434321664030369741545733083242619273684983413973705508285936157462225931794926356099339367448706392055886212084007118883105862278379945257760525906944156603407367505683153462326511555444260442087708127873472134988852780010268751921477454255082264240735189020476550046820176591540889853041868248608506060615732270002769118400192472532908473642136613966890734378980191005774735928919125608754009817306678346894462176635835633174238636378808121244718022792485881160963617590935999291423094781625123213133299288685911239889239326626870420214262256058538151788698387101793676948844415126673091328729456966659313692967818617783315355428559315829026333056684708019310692820438445909660782668092139258021655048809877075230188620143274892310786001474614195816692382419827998005705377613204376325750571504791158877723697482721595160745696259004898466219942188435228748823607386200005961308710860019384425293381158910872931435661628832246429624635281579842283628335847671763862735780461250251749679360199696876520414819581630540501005676633319627287109548727051079325488624981835494222594225484191634403762241889368921882291175046499182912820616993993755460014290046494136762048411739134268979226963421394289834558075693429047284975570269317630412425426712636910769197361798458746770555423947358717836004990785080969561194054675616413746482367298699975777678634963402888984891713294591414373861672912795028986714493319490786746798784773318454763405198442493814611267693589443690025044626138734483918589276983662529597872012910014865287741548202592826417231074387170125593439471867352496436577312823764652539325005680983904752122286766624963757174232557565274577937692909987816316912402746787074633898564775311443775224911846963046687890206321143424115476225394038283853233590358089702031713505896588331043749145618990199952483846437904691778272491001569185584030921398494139794086964876491916902076995920644138053927937735640045244027254408056369732277770097805387402816743640687124601136506208603416215041706603167541119870077502392500820211544518961267748494005373119929928118082272392619919022387162218270949044365263794426213135174953466577905102089256846093306015924646706777047339012116065985267819279981208953720612684676842034560052459847492204255695073365944144772079990379432825479554323426031020177623978499577438635151445096056185930721305432949827522123636110754003756527739674150540820649307545335345297533820219082961364313971366207643769575987123882753678642430618040987368347581739357589486219390501015398016439426050894968140314336764995245777239174542991208866362970236714913125684654531685930760503996141033795920043217234691853828715518993667111206496517762859348679091274749570359600418442326618838950497989058389454658207741358930082895236299538136121145618851584422583275115919828383903213153262190649238048615501610721107769635541101930314273148906260632681347114442606603834478009669228906808308748095540144217188547790305460624415401095131409256043744103440916554946858925124809801489725657173793079833740196272482789522160660635826119788075833348829626518584816006366801079971123499573111390494494955931871991076340176389640899374763390769271306449292874268684111048650597893523251081632250960251632359705571732617329868816262781181125194852836154102448886324494866966884782694489266223032786017669168291829094486466130258359249945524027846362186338346960541143336551912192778586136316224077380078499231313429665078553121912977256922235251553332614648280276456607264090607251728476239111079542029683963014484303361136767903628340178911159400673275194429007216145920857349039294611883242059822173901474825669353706454578017605988322825763652299817049767810840430017309120722873630725504904140770961727172700192331748034141779575655413913161640984063356679452892059726098757712736380831397090635982095805418142025387502017877473397012349824036931172143485415202315496549461928779596396829934507620898625878967355319863786626948689292294476453536489458313664404383855428716767070602603865865732078464153159738808173031525828307263308104459974073494490914402577897143317978914686308524961093243974559654379844337053625696170362961041878082272165624481767608067424324097922142502306145724517354337399350302449583015452491685098695141798550745918799620781943423102520948280809642223515927152214773510389584681090377017258953200289128655313250398573030487643206825247940234374151864367658167059744479368224640714902509819453254918423272444802409570523216488843723408568700590557552363473009327935204529655358976584738076489823097862737749261591991986668696671157090330566660310871680197467285461698513534371621853458711593652086753214779297585771828962047493173942109978967322101500810152919811211071485162187105050024504777702718688703548193980395579390017489900528655727461045536173319242452470116391426766667865082679544000490632017919535381718871122665549420943577863067701469703132758230200946187676602255264712074842960199104306645105753154562358554356647536616272758997166793705219266574596134927326549960511302420958331888510318246742993366425575436866413395577503080346441057703052756738240797480237196697676666910289607605052598680167578490307514765089827009247711965537469628815427268188782835328417832595287157496636209713595512576589183986667499117761819424978343228585002638549826033654996328785755090608419910249534714038336990745947971671555132919880470707360962903307691479435459889674668462898681568819998407560395770123715880770050750790996519921219743220830411261542846524572053939917939155585125923959886239129996105231880126944108003568489128668352530490934333451808374736861175976469207531575947293673310720963334284536767235745803049827233246216232676611462727327135192408849534771102352306233177641121414562378843396275789271919175540594867811965037345978833143157354266207902777437475449084681172121070425487278878102602393541236566978661611286158900100368149554341568256035195546669188937826388046124535842762225952904761789258312820895360188999610517710339600947382027616177513229906875558845799560031413177501344289594268475245494130347353105253789602875421807432098774854757404123723680427157604674278792200636533739904184079543618492056271758707377808044247902680352667590429790668536645725723329935498503503938394224820229871082892961994362615665420228925065849120110071715186604444739974887925769360261271121531980003276021634217131409421034724217992139047232911802630382032122885135316543318906052879980071298401080359285178560428970169584777599985853751952659163708331655497008259921860668140094552340748509952656821046275607949479446948173941038607333757308838464420264781875103619642391896857860488719153040377398717049703612239431059866600821429993707823128300212662959190262185653255981370692022223865383151829200794958446637198754927704027617575980562514589326058903597540681379377686180607996004167571775637443516283090384714385648609107762652505355856496060594067897798689566409827220840960815747727807491703678845637769501585883204509184300241684624165079049673148639460733492457179423791506889274927164540242867946454960622960779876373054465448787945565744707157969134824015946278681823600760260965065402779407090955483678688930367008349484436061905599310355389285143443712081370001505878640759804772844352261468087399980363777314755974883561751121602829561370568590333467654899382255655875809511454147425414287044238861983681896201037462211377280075207939680404727737816825168552803900310762728524068040568454690440264265241682560253020001056294189887764442084148139626788963078680572600674805926260482345226050768479119206007249630979427062021300104826369202534607069012994633300024110544517337809120401056361131957868150574676118324648036338762195432074219551760376436481584217193037880349837281304833788819076736750445211188206606722037385035202667891660527409096731682429458792938973502901661638866616122484548560823185806600773532573829967635427900409519813623934365314670902190802214482828375125695379791585291213516293271750463748363969769905085593356362580417906897010100404981832069846117519932058034555011839412483848639911075413632834373198370196597757747940070974105739018414193305308136146512818076166973948817960731074280198322747170301625001473054860416672956325771806752388576932329253582674273522921608303134610621320300249870790441197673797670490666718812057050047546579461071846039763267850331353405296475204975684548582210287001603530039039114607009089530275873527451861648645844683746343242843273690657727695632980081602263386405925936876245505061600337773990377754565277905186445487784410322448677710228841229940507972212216270534964620549314450526808802251154444061265728926250924450766568222639825791894379097150723387197061271427479939314343851812500403862473363316870499973344820919473997470923393028155619756449249707387221261932110855088689932982539063753498180932359318093323329954848146845070234173192667756279963030022600806351004864419626535948996595064118918897435787353223813088421569690211473705734442146470200161418886076279674173092043892016596238805377490069842459303836543990116034844881731107282398901957242133231763175640732345112161474552336709978214719068020719883130809504337528798970388118540636203910988736353132482182538683707248758501080832947426506018927747471208475400016640754139232154997763203174236031655152720660190588806113231669980962141933493455924031073579233030910715480232933520089633972404224489171927745042066649772012933503236592230802310878950860168398926758526373309735224723290022258688637794194954918266716906811107369483539634475631174915067690895649296552233963633322573984395386022745317589842250465694659156685651020917437104961461893317907121820168371240269581540021617128066816425505972299375985072274628105888779220561014656540178153625415065587170402385038554722220106702366528450412333496216000380015955225939189573476066864102509217827508272650949914538992371438427654354223226784267185196397578482574937826733029005182398566077822264146447985472808316069703929306261569704869453023220317135192546520441368135848030425677406126801260293304903118259969078021706473567390908575215582013260067216878938455571290349600188031832362603332121403822030162352426964500010523355737951938390718474595612457022661713200750371549977853129960431518176645333751817249799192503824160611215567895180879031268324895531591292697603888656571717718971517874164942400171164338244534002607572960549670690159240201322519587400099637182682114241428208943568201643967889744877508276064691172757635291239177871079335561474991624040125213853449002763382072353736737770491496985583730518469075301836485180327358298937944985734010760793974070705996355575028284054934318935344624086678494313258993796649340618748020018360161223791883568130037544966312900395348093512623816190772187614114367200606397015038215748897384054624392841508679599176390396701076218406627766288088176423896929560396166387231456133223635769001396738521897058755822490553298713227897700393720866775978173941169675203623553572889387678569134925993896371983498189680484923626273375180214597952661451714441114330193396834697049677062729697747950973017879834454616121772134764511601188658590576429188340916677769735765902619418986080690549003621528231554683307020302704170109369604095699546515483757448582153350106109214947388659296053664655229989132071666768191497397153909756845845636588635172290795085981344840318967272441867308812215258183919699417764435665490450628678799286390128785927342335436425833975866279659636216500737505900034252750921113072795753315354691705138579936646236195841934276409284123271106613647923352600684023699812915543042419112016316981016780054303080864844169352447281733061984743202657525699170884175268728475000402263809873419260280807354257947694048149888841354877321793334993185619999917369235844389675632375477154977855253801548665546567428633072319721766739850891378942538084236155860918971144690010800398434229179361731485804767780745869955553459924596191079783773689460398216667257684494474603259877813865481433681688906005490772549782422088102903494063732606355073842418117331761174281201595381371662928303780460356283555817767582436990726438466828792010756211746252247192538495132816926126898582229713094881308809939522381652634501741367714071268080535597434121562234234711849901095896410190522593140664097271858547364626596760376453906817766710309891808962198914669890826273430532849054540780248658885230109145986533075565333930544933630207818550043565218618220979433136688045318881007901416260176494195596114225018998858614005464725314804221642063530246272390715059179575109618030194994273167809273307126301388623475801509158926835470230429928679266487657553176166131088738327901231910352712410528554644111254792975823165231389101033465074258398353582434091076856995946143335870146490451421400757134162816166007030487914917112504689735315969460098386722654553777702762985009087887673931668395609985487242002035505850587509173918110319923398003129919746161535666316849858976526597968776902953034458570253594364308145432715864688131586697538970819832309938594985370968365461914768806624620523290333507365599972497743351597319602034882872025634234133980101172300042829802937573631881530561562244683397058613021798438335520944254274948757022785962431837230453470639806338822463972704741621422071331466745514573778411710510977605042286218159458409708613869370120207885456286312400020131144676643903712350827334613565519917419810381930183960575571234176617848675147695769478604433479617530580470429261367934889713263731233488608656179106854748390994044496134232970668696568928720500366619256317975342010005814169999032636158040390545693725921226636761587537585958233724778037756679266321066606507747344320269000616401578635605159031511421153761873082881049569948726641970351977945963786715512844363526890283811955853730112803416101139059420418848300002150084700055976782483893291794695641903179755729882453493925352673409669568273506769311412149290577831399370550029310084447100097499546156219020151186431297196628028876177334175652348080325600739474004067641728765509071543319620898297301065686609255603000751054740388517520436279928479426099525374290204380239828125762492838987624649940164798182747774129424235896303218797431332009631292088901407062300502317710448610193230203807273222454308701380303992246137226962842053223440598936058399387559093202195338579919906925772886456984114818352739142567161624498035387900084664387532496661299344451158518496368021352770363159021448089071425502603743156163337775543879719952864856271401550227594651843617392796300675403090177670433186219415177842487183174844335887359413660720374340012668636677728885718069440223908771097351819171916907943096323795298820191544932427218253992456512681189833598226284908151999827372541074926063451760974057499776502502442405924915770601635496266045286599140930111326299534781985729468719103751531166110908048538437861240279462214211133091780958716376680263510190276199032430298106446296459852950936764994454774089314539805158147747592530850380406032408800998095826208898804111976734803048505116849205419803556550427631177668411645731404327774682339621200409946928837597936389563873820104923922798808520605249947035011863041887702245219057238362257185054058083044109398079501766747355098805335527041244187303632933257704361656459053943439326600566733300073391476313411466129482527318120026743019570038992899644802035867669350731817827756118856807736416111344408341474098761485871448209240955181827178425277258792520518185715210499666091956413232248229523489000562453616611640620351610842156262505002917576707988022337453466360199557125187313338849821280858189195927180562652117047493723020004052526616838124200377298556281851158136533503297895044586076111969759482336263953442065797994481884133323350289431738015192489616553559463032290856792903583252288053264543892743450389938064875409117401869112370235663749429464875860781406030183196580348754879506417359359122559167120026534690394758352814302101060407341406841475559640384856770524050319710854246791877266980908052395141675571763759403600448750343504694610523072453216189214756197642902412642481134407311348267742849946702809236853158326676606824770848547004702146678583836736108065302699921484393894205280004218098991116774899635510633568937111723779351592900329470820085117827091243932847302549608588797526025041197217635983274210987739614498397465575731581651885833050867068946961080571205246817718902452407133365755580285858986379339610441423681167118925437652675831075906050622073537281883271391663500602816352348507675273922626593148353171391110949066499931409090734664358497258208012781037844369980851857563108124229729143982719981207115964862917064022846417659426923321713962641529760666297546297445560492075026561775823971188795870057576268637327555213608651974377794755730091910372195634492385909765467162929276762742989831499212839900313673220901073526186351063075930153528167079200933044976233696941400152608869714739782042841198763294366217690184086421477087347305869128515118176559248518698752486733565645403426044394856427406620736392799070774304606218999184532076669892333813799152032426173348767831195152034899588528766226919863145024404854198254155359375948016943661760540074570917870262256563860418168916690164582528472856763678476351558130325924207033534190105343105085979071621327461856863477111291865207764704998136743979361271432128006984090058842609594221859343127472328350169764845965344280033172296023596729065917171237105859620528970741504083656395215584909025043586393012309818185024767094027592594760728079322944215434601523263393540367462744484897410373493830351305907203503021262629214170739074398213593104585819252716192860161751929220774750153534731010373190254454236944444729077091930336249607516903811388020054576358719200410176482349033716533438996449861084602490926046917687524578517502530171504823748734853274621650428831059096562284889631491333608839389614481729194831853990744500300798954226100227483194699230465619743223711233906123819361816973446735927418784405850088692837473884034564850195803721887072031750580921442245852029830522628973837443392258580512914420418618937060901523176935816392100400878977007004696071543915873882259269573262209777491753271313936002766665808115638379636269635989336382754787134673579893987384586113398611159245725582103298395638146638724564573589178278858819676549880193753167220449512641214127129087370287115980889609643182837102725850715973841591159833694370257676875548995423924205305773118523634673923885933398594170926111301556123616053910569512005355340822770366760444157013783994357227696069845370426539688784199645170810372711233715234235217063467770567441219261479823207390136437721644334802338338002070145242670053535013609431855235907280074409867783938792259030539707798475045702263387055786953520857096903866381839111592889790207463544507031310215974482248631622682309604792496767114218143512893553693334879392222145750011812134407854403058845343465222427583848051749494021538254743334472927936094548100255970648559005073833743404565511397544691417457893777953513778817032152704897212006751930544633665181915605859351835372957218577118008862620870948544589869763522015720592883788374280762407462705426319990396461562791766572381476336974766810308268030195156764549573351103372052389004956350086105986095074720362448746444445450817956832396157707753428657361736256391641622270614055105045236206063012901044013912032765387723366666582621620756537319007471407667797538452120824889577139027191334818623078302619035170593876668498988518360518244532110879531850285450216738567088609424069054875830581802661987026483973633044819896227987272339004503505511674374078487981890693786749248290104501360959061226414313512236413454741571907633088756084747995717662634064797879886681464582313179452894085256906228684088425639080178605722195803339439711370329870841561951222107829698663660819194462827535097249441063372531604847332274359079896466354864917479719837451557316995781542353250286036339758159172679909779082505641392572022983006065765638580242324306350605951096091632119314960323834941406052772218514787989902833554343111481080183972005453409986604814912461652786095922704248934266849234448712736057792719805584037402865200357676758572566272225928950356392349641034395831063236874016488771683770381615219460061614686420988294782583357689987691962574168227710768356915044184963744172871073680000970857106587970235966453925337796177142970436333727425144890299420067919561069555558003943950697870996458657495859876654851048777448712590204974851243310634084641446192755555686347613810708948948768721059219602854305193067450232486883481057916017402331082713179421880354464612549430863317860532499801699037318831729764210867563236267289616459259312102247613997178232248492970566279067385084810778270454290067641457912218069308064955444442484435916266651702702800627505427288834675892414265967231004765881581516242729818625784579026025432619554465453117390628120530137993794339083423176631416067629910088754366272982185124159294767232553202444258714337029388029664036992343059095591309766589627300989712247088152049468809076305889320915472940240261687286311236856952708012354273696483042318237592275470664090505236928743785122760205375629155872697023667472738720539524744384518704348187877304725541945031037139981471237379051637770725942895997743097155432544208299921584365509198756817360809326842862964993357966008430487759467958850913234843575631542373423675882249203580989360238644904865070461553810898992467015663262766389763442125590575598637781825293646914734393141919973190103020920417279951537374866394797436462262971204133674760721763814867372937226970277447525496286192750151728659711774675856869380357149206999998988861801617798168769502192422182667414112401610412074845171557480394754616569791554135305059492142650444864386760765630133190957263860879953010983863435723456273405323247963078490658865391238132460995329404530044777609267184613599196280738470315029476775547363609112873570560854855321830883375182809521465775561421574245195649826062600435579983881783689420557176952125431186001920309178647269729690639446342596047410413149034896894654201338149731731081505750230927186004038524829818623983795694304638932758267500280225333506249776293431998568784343508436592752368836508553282955281243738470639336636245784627348393645626231193220591703672220981515523434497436899597979594802336696841269870028708284483413994879183396198730852800043042482897379596652466067814967913895471667900471070840941797167307412394287436362995807281086676035141226630011467791647175101710867251279580347069935142920157421668427223008884594395111430284761940086121463710314622820974177266198571140520046275147079263866949846623217449055459871030181542360955095802741764065438275552796731244598996968744694842731286483855701466277541595160106470007162972854286101352715698762292930545532057233548019304906717377391233592643545240550088685323170822712203150057423536252367271008898285509990907917600145292188349391564597569499303734420845201316937530745912403806800780682017010013557583472963163486150877970802363483004180079319867622743506066523260556809511568776884551179323906825446198617747865631765580154819752014845069497987318221100836276521521775210356359412187327173595673402962620913724665724277959244629633821860277158493022748659616187658318310127450067288520750518424932260898670438649893425680511428646584008889623332768942150061217872178566906213287693565964056892655995767152848752171979022432164497317744969510578277800305880278340448886381853037964474513220015918437262939813032629686337240921630108590658452516644234588774494039894946239859975857495696785399577291868269244462303035236626318181471658670351185785345131007821468039161637245336089165634233239972802081785105158988104198092860183515764545821723962785938095808888345053601727060217161989624036916229193356410593413006476733000055120105763613299032313526056864664146573191721051522010048162580676155673746643413623828713505201710422634920443045185476081427991549787190294170454743218800340079816606177451381557142446638285894280806436079875446299997567574662052569664409327205764172915531402851796057761042450806459546736901835641651360179589197025918804131130469610614914846454255941962952687482272744002430816213118069548205213039086785751189343147422586831244947771586689765166746978941902721164637059195016012053768948979481825531150341231034561047084168869373534516422655449946410318106140729705599694198611574016451976078796287362314730774208408109835575008797823935035791154607138552604278596149283071679035048093443299551094565292511814505820694602893680020405928404233590774782451573050264849705068377670584529507586481827128449404447954423443678305165963370314282024832835591408273560416974229096290123827615256426970480740760089955465853060400830384723821471044883669569425487555289809675441365527132408626665618678802324796723795330945316502674991745707981101505185614258353135795239303229474045090006344553866218039944067263088328595482551861079415319350083191229091213425499899552242118121147118327350856407272948125339028608848414374490245312463245335016399010997648533989922623494168162675040773480601449390815908771227053757674542258949139963580662490996507823121733620996583449624635042688340372843071775470409663611346411582680688641403263965445382537791150822378925662053388778464127555109176505637443916342312673745868896058857778827459736090193348687090567356317175210914456346365361193470487959919861914662416520844770995465945684484048733890824047855876019147708418627616339055540746240031436678819448609499173762958780259712988420818344837249396068021973310905334878665281672438664209788061656298822470327383345317081323872329415093453544002621073251878534697670620287345101816892175323023892531733769917218004055947131186333084820740822270703014368494255243642672874256471733810603851144190196154573611935322594092562539762809147376930822479679014339287143501569053888238204775177678585015048717723336111701866298502308087854869356838226204412930404275289881965738890035144630980630918682384297934346134075328520081570247468799846980171188045079470775724081263617514415117652602760081473579864058618650015034824424891480690768915328961973183374102365981742440423233670693464161585884609132008391155430961126991917730540882884648873259982830480641566477759433315743303073806646348749155634693745885669923074787558952872619335518463130928309276501438134827696085051837501862244491229743996260963629517467049487440375680845361923649723656980386178290201877169981561248078237531481175997656022050297659489985935621748333076981689163412179893973983929531220843431561891122676167072917114214855339253357547764363085834722116167636467937998322352674110287514717495205918685462863499633738779453851150152780824309561869405422528146898737277929345124769838975918542001482663246467248501426811389568761252595856081844055529308487989263841527652655022368694557112179729717403864117010343146504174491364818406656795001397173714693744971215354416293769936789746344518922504579628131727658971387594761569765863553706134212916735864829835517616783131485966129137477245210591554475768544239031407884288829056403492071097424401814748102229405619553699463760546639516624400177513811027347958746219127080205563768607435069009777647524594677518330907300098763014842129187885939030101405032099515211698728751207796061812998883339087678210066345458433873827513570375346126335346329337580604859027018286605996425206809152487874065814745724938774042326219511374276655910495165765140110093340681877965997263299670173086384824008961935029647510116857473087856508718376042246452310675085169108192302606542511617613363598411436908598861053524765836334520213249720987252213684798610373945617363979126822883223958948555434756569303342615196447389681309669207408151269293153996999945387957140517923507150379132563476475488735959874623524215838253715868021906470266225850266581563896662762074574902651864880155239251644171480428166303241360929375008057651007221559758072080447450168849435308715592085323056966128138519323916501769810396963744333166134853113299937858895274088391021290179687870756476792283039492389172949789221775288457810240667382871850522374094345628019891324264690419337150220463174360464147107275477825085163216805107998314875601555229445440456090554248301639670218542462789855350772668491687418013354287611878635614435275489450260161202060089713380529038532045568210833977029656865145250239083774060400179344687925805238235828134281907754189380059410027888264888555111481230959846149530539919897896251404241886268093821962766856235121234076671970075649524456248975824072969003041489262559182100135794476666079811712935608983224512661850663317530054868241476434057175196816470498919192883993598291014756183125447696750944954445804245813373042750149436732721934941482917281088736504553213832418375824694103904920775883851617192468903450658621272963687272296503517821359308058452914408462886251449214366150942242672928640854919169389297010401228064064815747932973153035579163571197090097572821855118171784784322991987304957409276863608120422160899067837406180728165879965753397607648070350258480565045965651660670765608361359525487743910760023995377111420225817435117099418068988552620780904653464795919812554590449686018256570265972450485214348819733273147519384251678644267054865778491609193823124257350041433569841988243588663701542365495172375910453577208734243470271980972601845626552671743562773771320578212086644873330222253033981709737710029509678479861740918892887517400857172691369758346495483383983702284943660742326020424980303825670588984543720200364462440176105007145416932705630067520065554385752630285030130910482871868529521334605001103672870223456166591935879637374905620426106536991254155261312615090945056944290087335340332800426508252967482633074565238119848634983873747966235981765228973744087606037459826901134469600961292751941792827531538114758085295147117883508452032540833993737406762551066500588235438082841433280077734580572996466421559586414143281264063661666147766267486022376851134354103537658688561317502001484276922491220863496522686589903426545832729632299785092285474969198084683164531841381835035952586131236745082589538009978141317533426312464250025466300157607868768697332803890957414952655692947567108457337321333204821449931423053964946375818167363532284866697814269201861803002945015040805426427758919108094537494115121980046617777759800507261026990770104162126981891497323699387502456365043120242208205385722463042483485109907639155847620034677528633572409190843067251270070465259455297803807249633720948578520856556404621180127276047940747612465204949460597696803863550789066335067467248852890479320542014894498673801106079811090002361687426061817641347294740849257905253547302216416745141896366685570567694431286535340850443483664653364827359101099775507355726917574610991549315914763660045187172204004461633205582275777788000507122072262021701114294033795391995660549288452781408145637326875214914493024081031258342102857605344071390251000844324525563903682112937603612258020718589563519051228257485636020056103467446969654111509524863083546664173160227164222885918036761118176287090130026433273756775915458181098107089331176064601001025853349882324992875773430718203537161312934690809154372798810403063902673137329326899723035269659655876476232319976582981597554398365987944735901075989472056617328964260960936525995381190096734764874048118786125936926377607698857568401958656940411894897457247459428568119641760120361879978896530254270670407331860695880653256437707092099194354866900007581849864186943998926322617064541564746576351518869424458482995353714488150295164990166236012570661652487611991904452303588755661303512377142675326495623229061124931396876772172304089520766243374541751462648006883621077246482594797434699080637281623496993808993513993179651589716037618063911376154771924256578383693244386350594334650488568882462383032275422547218777189273271035561267949956574566632907019968741613253786983453219638444686265283630249843124243864178384504840064795973955279179421641746579711680981174725917647503470513579170650618297242819034007883989643739550299597984193373442474683748324167455266020762923749795931488530102409646044536313791399113940486465020637559292728670017431479617311546075993912235314952002334245827609008711089391171978176464969003579905772477440537172762544891854048860763606902522873481346491490516087431693360897054385826661923996124214488010855639536300925256355619045778732257294737410755019751819088768465581893190283901113076969227532792606748067344771913829536942742002221248859125268583369554456172655404571366169570137364510673453235131524244350681755462320523411387848394634485469587746470347993039857072257405248229946391806966986929977512073823797586953775753432876622048254461539705158301572736336841075031873651397349384360482012547223016192538455876746857447397388071769378629556819574343860926717371585276948183175468631471151130221023342806099760708157534670375464831051899392046432441361721795832877568452717251263475961398433931908062490630670950313061718060342129909768957488714998705326153981765393675729790053194453932159196912541340737676339036148336403298676105889018146671187161457518965774885235737669220924938270958689370892912153053090656616593111683738609779632930382714973247006894819775045657407883006750462908957831736873489289741161114255923087675150138925795320053923334298655740168584836460187294621544601720919548670511755112250700000807625799709414139957660740708357696918298289923032202929361264626416230488611041720034150472244843981554314557973933045523602981917022452546637663948699054164685698390686811772440137720646608870956578507158763734620374184285373911449204198581000945395425416719790854929153081773160483620117685034890718798228553059828809000103095086850242106294089741580819519320870139065818736162509906057995711185634896826103820947260471764663484903659479643805718087849879083953508858543230559713396957972565441014499258178460169684682853784204385781395598041375962093801028981476474253641260355390492013033178280562759813208880404325103272204838486628195185841028536413307380782978015532674065978712165749551075511979006812082729288865831501959295313478958134665667087797774428394767846031397192144596435047848967792051496034167928849030458988527116050939068521446769954646498734841369270066450112097780154480801040747861118289146162561059252794572163418782526842521945880176579586959864324576419345700733601408553858263849683807017754443644735590875173791239651939223269067310473751306418257560773450469677748378295286870695164868629527554712405423364800022402747654930359603559132677848138844431396692934113857808861494944244407656139281221168973781193852271978667812159270252428897007381738983160773679346118620509142283475986688599882379150014390664930114535321278850834892647601151277655663748952632437569089691989819380351389756775879601861296022840754914903285764998510301254175765194918266451931290672839378225791882624474078709676509777586573067846762743311372534456217587659703777420106236489648160798178329887904524522198867042989306193521677709833237283506576477979943290812214288213600178335254508805611238781237330067517364794372127875721697611983011422764777533369957571791814010783888455826379528868649006762440567235488179848013467601702534812850343489211101701417654942238083055441050009050246118532216867468279788645605683125987969427134009831070114234152881075138084308373741589661772433706090080809300834254038020470316200285403111478452067040155052465821519524426395072022103332857775412498754689903674869163689796240898154687280661980373426210356543742086474759943943194054948848579065405284201625458787419248536943167055770889192080762996589935810471001723425989364362905784467773664528961162095481702790691918334467443292179798261136517989771031357964386682969523405150473345920834704955995984856196190568768742838809048225487565134198004613776005485717458356928744601017851869974840427388950242404111621123278518198872245661697697253765015586929560954036334105669782498405703555660469798912102859687196530460543812115122843444696736557723333136558369054606598571113094058859699312985559626845860962288713890051312284363962459606540608038977365545101862008050337165910566236780050605429249956248463264466958332102449658835349940625317809800905734396127604354170886039467726869537871887998436995004148565068402314510823900775216647901941579700242940130468146312284419068237706920425596671849216613064568641301182116874836518521253757874378826772044615943430853655053101167633398334091984885158371426692434237921091887969985755018629787279562149969712438729631246560743244145990452277653610423668872471404939219966204310161951219215570656543573608332431064308277918385517022866519685021154985068727534703472241517897254257601920228463084862475763696617804925025204272225109317650227866339998635317487830976526993303450042075637162514451860404294792539384401058731455380851573035740042043735375183910129122532885293893185257166084849041229665165904555140517184897880934782309577257809431375721496472991981508290307626971853127041470798593032061610192122664526602416299484282867868136413654728418502076643485612489891476415680512947113642489018467249680725981895321356496425211870145486632553298735027841257947005750070250186792724457729198890205215260235945929874374070579570450448824026557759363687105288874737745732673151022399124630311774071682842781783252490557150573854314090932579963152576015661415384008249062856872542435036055553991050972994122023751722381214708688980073761380662167010859144485963260427363768014779021545968305464740736881053199411519835099503379916455945616264945902997176243351817807491983297905597291928511895817397984411273843447061512143384352520608147784170983775192941812871361665262622458495657733075667646623165952635299894227044046608392666935257095066245903784672069646277355551489706526724413418260380548473557389068944251807683611744445742657972564964160174261212010076456242537022094215735267720803401154269718944235503202192415983487918322865677835318968854551854019163703000745785840766278545086041735777208540979461126474538487617615822016852304846745622051450970139393770825531017036967821577583606489562103943773001497188998669616493574721711735765283975647714923800260672684808174757269074673719523826318082531053589708866848536531002836499005066145872944053453465624256030592556407255097076414103886979365171969722079239824939312451744768864723725700337825373070904103694939875517213341846751213676974525309356502176012568619337619808510731562292620849560491836571992404414157880800225105923434887523543342832007094658740309840312793110460127409792240646173871132588143137743003788487961669213475711272920754870613009067720206788608771425206327936097028254214337426639618153879846677910063315668331508771423128099946696634812812547247223714301547546423051837915811062855606240465719883033917198994961765214186090677946870925517220024820779666123042072913018882346501579565106212038389994137186529092407835283349360754270690012253833890391665936901260936571232728819880740620613120596779423756345298234870086442589182657133230982657013983484022716941244366861059610578125178863234029399756316436678079810265603923586891568089688331304756641978200400541191492451267895323988797204160195805011086057657577898347990856340648261613495764716605320734532306581731117724474644796853915334257810147988254225353293628406152349325158457414806346158092478784107127329438402232525898917093239640345823586464020918965602801919505831593434508077152303334553529914213427624438807567842975244900633803566677700738747480795461135089755805040710899732247024701337842120923283503071029350338566747772026841124133646903715102660225592410307951045175177713549073742579367338133928017873930440757103319289474466797634625201980791818472162395342050315270139885195640435426195649666859614788045221228859342154345407386924968337715253552231139147175626811847828085722718117396081116599305894368695005954799765119515879550555436326810555412433528795003109447408138623079943126102774312602109947582830024788832781418931730684102345266348995916715973787693743663614759298929525991395807045923076874258018717375141677016561954321827369465641208186687519828170952315213646400430675997949882117223319526984834895844614517237013790446061791738726567150251277732353775520359665430451803220032984164165012061026315274587839726192158795273818680839452082207378847730185451943427391544483250385435112956760656454294182984720984167640122627065334743847920382721396948174222289414021140568002789743251776516073482472552780736064908910516108541108466591888501805420443455935043407716190140236826424921343192881963910842678441916814372411317972786895790115492673918320461569151407837660339034776977157159483460626816616368520878766811619769320029365031335875781613759224271916762973372394801743680549742695445354055247686001842762812246462538083068234773131833090618142005207982068758308939931444772145236966138608309218405400224990914589385228776415916065897053760466835810889846354338683768430357978369462649966909905238250177741939866572940478351253415771762678870210466634040409413833189398105989217469542526463888676950114771818665119798953928760288773841870377094338204054218451080795836772134457731440289733522783183436362764986893438793196248411098900438368026581106910318803561224127222039640431144928230965847275077443262169754898007507311355228104795804646421817438130616428464168664783593601022223093555184752896015255991084655229082875381475795693924322767824027043948836878942825622353647616853771005833436831630029236516765439944048983251335169899700779771174326214924598125571288278126692741698158577062768176402306263070667788215658120068221631335877360183436455097195245888149287871220736096971373350112569121644857955058126423706443127644828082582398014991251925018710257579913725374603483340074481920555124909811711443048388760986921454304752978423352947429878363435766726750267171225201536715924089615264196052753872012745439794964130576249689887190199813379561873336908295090375793193373008470074689012428981162218318101128564889487213178338094491386328897275610097727087760719675793024663550719529167993120414084429747204051087692800941878312562884950351090087623729613357988503067400664576025016532918484855804438706292533772509417416886623413820978949056860611063225649122523387278709119408328192167658215290957296637635267578171617721549655344330089211493727239069458267592978962994919990688592624754329724851399540451147465089982644476508515316721039369534345512355993520899368047647092435824395064609013338031488162745026638827466936017058363094364341923457724640065194766326385103136075154482639692856170242913215573966615015510955685610095469970577949164455143546038594684280728980775098609116376026939520879622001424159169108980458641045840077944614083489301203359017539698247953276502536990987817475991663599792029962267191502882798304108831084996067418577102088615240848072356090693189042328468231944999159200446700167185878180230530973825012689332813662927548435865809517794686820526816567362817942857461759730360285890344889847241748158704689774344959756020899625501487596042299042472575315482019590468840252932048127736862952787255827614843300687314470330420712358062515585220264415749783411620441531874163358778302472159801535650403526094854046043435230541228661496526799720280637831202892736296195098421252963751475572141871351459145872158798629164961819163977405162261453935303390704932745421632918579752865604168494424564292754613226330826961285324196417768715357141777854284440499563152527671822087254625756827747216140767120916613871038019386974298082326855928735615663314210944917095571680585884772714841745110219422359661034428244772926541440778258304037201319117228535607184953833299776554942391486495452433650936883116427264648733677011616114985928530152542344295274262744983554831890991573559409380418481766989966481661303189785771667566303044532509976309648205124206018157245906821480327502502550250287673082108059372591834042530965473935719645871748238304113210159202885216184897575380084031705502302969503195684361370568601268329493417165614430079915572261242593624036613940242529129656033651109807004054399205426643970406252123049667196774771334158962854144354536893502559257975575888551324917391560161445602034585086930436122137718888121960068193274674197191011322776191929478945911929979251757024382869544576278284406784385144418587341862167532872304679946683319007532599918365767709323608799519577855886216536625245783298361976284977890253833093354612660657044630803549997478251067865188479298387465650690392910991369217011979088152856295476276511716564695331445680159995586195363273834882214740218025574842747795292839229807282429512506392052872416175594188354732276879052331369395388894509038201152566587747405753791505138500566874879277117529148014451075611022124716125880835236603297574359689634195036891412499091469518155777383730804431467782949176193655930294039526320576707091955098073831743510839401494069840428281315657623249110373404074689539425913217333515196103703116538701192581241017232409436993441214845735356774386187272359705448252145604321193617127299656523128253793762480484531913606401735631133903604664156150798343056103511850905559054131680157748453526258548500528881538580419129110123705648805741964689551323154238074835695341121232647811935715253595964946499908256533534631886527997324492151859062660360075992411074175804727313311743392853957652213783928960881322425453130349713736012383647144824786756878889156239191648415318325269263009487938541163281954795987028808540236067097094433358941731565322194218609071210055567842919607641812049212939391798064808193606227262395369579012631801863482066383355145901969892807595195932716290483214948225612639501695073894653570495617205940145024596519031027512073366972626888785411380270951314235506019331532321055320923207928649778314702586728730977719390527025196613924233912069048445699712015133667713044080561914965511922360373238863930957119320241316861939717305356082708497798856451918423259750990406691598286852744577489323150673473759690348634040985903442004686867823269329832729322338877753682188470872596734532498094538924033794653649178073861088247262139480829060724614957845888222807029045725059415108811692026997576916144239601773193413295083336995550358201488057363142900482566081022630315546469558120877806852106660592090039285553962538735047499615532043327870118409793641187680800944717531570653750846974105535911915487203298288487779002153399427464831146267009217973416090075833821746913266319764030501782901482258221877379035153822231567333365192354811683953755862544126660928803337355487457014544974834769928195170950624451838885378027438609422177018737926298633257413288986046518497775707392839642891522836500216760257322271992547731708537220708455662138107162967010392601314442895808973706750977728425419501521598962819967587683570649668881509497792592387021139810276847885607026910850570478002782072825580244727601726960995669605062752829828063776496239338459235010622265414004859719663591531875119566855969615943893172915655788039206994436229695064121225689833281561498391228215910666433830903685673719703625453018765483560602526709906554592020979351321576201623521451325989841020576047355597137179639122884606592425077029786243063306128398341713180231907040101649780688109117522239162161554198846766152191218748934162238679720106433984020856825469449704748411166960208276860066493486098499198449246661461241424633879410672068258487017330492104488732329637427739291051069958253968304046968789043525930941024520737290661547133304454418618041191133975399582853929673863810775798005536552513082274583017495519615972480777801179152159280093671234560229051482768265418783011409702485742371044453105860108568765528689368395972452111493120186045912920566348430645022862885916609154850428188828535661883510162154400070717993097798654275897402441417360550930518957318923724132636408736236201345460089149590724991445293894438753665611834493558447259681142524207633440927700259811157451666829912624834572605087490233661466257418051407038214529648792402154054811259446054648577757783361767936021296708346721296169898521031402401543067313184541534149213888014388942983678839935535806874135030006594034474477593989015588909528504880871060488092927744423549738940659808846800351508121781902799900415626022213112542003675244639039293486719600867898479812505353539714624949536617204417624513749968476472789611196613699453212281277012355125360923364103717177157221223612976087925131634784712174221970448030788708245148405655795418807471691341707905927333336011651647207961719648831351238426456217953194083780721916419446493908909595878198408259914317588323857605860374816707617007000673343246519913503183209064416308555017511160370757002173102369533448554872711298826833091869044250178887491996287468746863040566499356914643387508625725600616826891035185121254994897702639543282520444451577025258372128766307495343197701756473624200501390871894705522166847229818602667530996915651021088847204288701398851539633685654334617098606535943235175815613810500479537878557047217778703990977223233336906969692948179409759921122415737561661697292821868041680697907533193627748104874691417480208851881854019319789000902869195371556086344079286197908604738844491403380797770649916395234715658844612546600550945906067603360139327703712102032744608578012898278298600246167851795288004471005839005855018303563653841825982459488601760905541587183726163127126624811141873172032266686891705799441183724491898810868335897937821175391010079559912207987612962507981022974195340407588759986656723733085540338414692526974394412691706991658811244057712486980693141269189402455709074048529452426713662865529140113006646388431334449596317048805931492988649177832616405986767516043693291285430976415357915222735274739908961348219618459973944510890266445856605928158411344051466604807760463015073596255266968222455940190045682887465359024666101305450445520360963279828556012466413783161116727403327793455247255843069564908023418676357147441652964714476319902296040980795266846779504660232694880618979451657148462639464239600606850072140953351961417405981901954865803002728183644860874718798089451192303370479280955302227475870020321198991307471649153895272550547145874133545371507414703001684676615471871114866519622902614702254397104016480188831322692902893201223844503371514839133554798868230467602736328913184475665107820679734530851658941136408646549261329832182892125669310898112503368749894363727838179114045458923492484460884060147977445837861348304723721850157852467065595103723458785846998582515857217156666661638315228815859849956326449948437188609429477656936184040167919771370553663788502173938529540658910975566727299817614547494953516640362170369511842717815291643496166705361053625018609869120666621964090899211284954317212856500512315415417176753099963324188221489189432135918190261744317486490506949165404168802152383035713384000124215649987536023046082729142732453628800822428265695637224100967941794541500742464726871783560696076090982477811356553012238074367748397198779992744145779314206093718319301352513880268869322564301257848719087451556684647183208069651329549720905572256340586937027965805122926176430400690837736317259940134617070078352666591025539849080789318305304820359278421110576414160226750813489089778756481483796955743354570291779993439215781856470288246208767505502617587226902297500196459541260401983863542505114464845109057083808945969580959687523206402286509612914025520612579047653064455579127844154248667870605166797753827584809315641581725004457789931957521144576235188326693319764727235652428226810680040671936929821412736261255191246774764887878174496218654362679354562516215311813564737734593868087850848029022926077358861917842392854979232725234222307751971329025380929214338848156345090915782218487434857334180935301523339860317363640093796195832258907278307954673699919072576580103262548445442312018386637002058741546819096634228579075786766817471828126759957708502160328218788024964628915620794793550944628941562989259743615131966616039556464735659958745285741854204541679778741459844280846177979690751972827877188746506059446195199947236305500388438697263851257149474153803804611769928551610453362063907583127476273109625110836913437715511562755361106189417755765153895202639487539014355489079578033705481638002292254486922533698874211574536680305310424245398758138034466232792724294533443064967496867454050118895406828862212656729001404532213661474009371281537459584825018398656546880781673829495219540257049780988920983307191762322292927470006223904672282563058245814791728805041510511729474736761863620845488148147997390607524663735539117422887636738446156205195914391904605643706033852381222438228507443213802971379470918403803376864507398186118134359459523886125024529217512659260706488575983307111222575510669217479453528678013054598907855564286500343888241305910908374744034576859576629180187743490838607750070288510005557757468023640731669428444479737535438071659149200553594640523354559486082860788817026475578395090439323717910522758548866871775469722638864012836290811671067967357159488788524974239216048857567198544652149716116781668056898749961808330515305183002963446321887483460385441899088983124184136193658490225618097864365636539270658861228288114777355652196798569855636806607016970263827699275672368198619285004357990622897331562053269632487634833541664234541126587105310311817855208780813210022321103794025418668326470514232623313232875091902629574353413343315766005693375219589104730852483644408235383770717957702459530910402885604719779857369730613175289998773053877105684940338885099797943724263262851452562104874225013452594280757608739169177387762909612306617064940693650440392214196668368732623022757213959873000215461499156546135013206545791062121058735877963650272339570545407381656404471361036747893406769631194948548187655490257765945099144342546873813396020007578603377109747222930167880430255796943719232117951389220098384069251627305465124056212589800304205748665776702635575326173558005881329016913343218308396245335925574634632521139234279522803736235431326726503755743350243895486746424824394334247143488036732154348474291438285289307080521358763255974049273948556396395842418230057742403094812534853677003230873483076179555925991200592919603459528153130798487212777885706028159715645607462105152295769030079797724777839784389384135840809434268647832631554788097278668616058517186936644693344845853941083165544067795460790480957354424406963880959187198656107266611269202426341832039371935450126490714547958268163405198183018718379428812365675953373115472536098918052470598399643764603846545095193573118183723208788070785649195040569213351948373990767438793621886628817829984312977229553281680330132656545032916071932227826822564570389107839528429756884907835318269346776508098445340397154537459323838791354525734891337732807917549385917380198357321938413583393971536573603260647081344271637814652415698753291538225604449940123039175930351789628728348214962739041131204383532694164169464498143527803736293996615779807908348648211529228180534386456663343443028935403722255163119420280107272236432872874541339099043734269621522242009818214258612541073889211425415297567229576485269359945299039153872280595054905065101839423618240821753388153900791915574382385166951948477929834132526328000255895044833854333521300640294716731859471654871841704816291258005251959724301885182105338032164973077725485508800875522735489654138960826571785582969768843787408884520055066640897471152485199374597189392894471253319589622543272982711902701927008416677042713920383325254588964603276510644099323183861422676903360814869517092959156550221482323640606695160262623187412010118295550820396488695829236970917199911847005713687430015005467081992857386220140591234118863281940635127622871374677886335302387126800982444718259646964543484327827750919348930873182613977045785861121958570228000470541447579869333372838080565040156711212090594981761994857123280990994350085623265114739293806341947349892031978839742007734483001467448850625425426587961092472906643455046776886370636930253964659928643757589523416735658511254971896061492282549796122118826068377217873850392779804216889207167126414108899439726301572725015551983480535226468578307081643491896085354536246362742675364872409441898356290513173526997861645341680088016784261920493472404292989487010035608780086636688302138731965705925711128203879099562219711405317568674359635676734540775671114176324359858818514376680683388036870242423373482935287674396727821661626892896934811619313054109170985191866071198370539697351921787877426137985212464990750695114135733111089303299781193801635092071182641707981311722956533882958955862073739161895061395397701258219559468202698112115163368362702292390300627662334225278041498681554335647305656195142806786115416955550805078106265812341297306343995238931938731908712772645932324713316039709501895297645403160657310254067657554645813493181021246675977704057552122838610915136552977144886465572415186311966470998426831665268981654936503354959038520073406023682831603379408397435804902580536635814937907957236778545123609666623932286798742726817702829954014048266490830410548271270156226008631560532723565470203363586452249228380223497448553001206822602959880060693274631786096603811371247284924928432773540960048805469603208619744401851671638545398238900250444134044010255863442409972311551609418755846764072324590578328589540363322760284123104253740079840312756194484514574586912447441087897927310071915050892447137412461578864136100188523941099792243987807359798260862173059555501482232173996077851010302121187840505481276926810125254578167548515329110475915291109248550100546206938118700497323305878789029452388371874183066020431891778367285671721208601867054010809451176238268764624421956943700875354303559203469811571949473262832128198433197930094706637254454433647326273032195342217699926035731196877950784467299166137801433559093175293070792107033717244635660342900902643294882452231971180788064390565581079120311457671300502758472528794637013137771477261868499708606551306751462762210353487858998516611107362672596484354118752160651530725425407011720253739446647802531919965025710608392479098257185805108208012021921449810814904620003786653857647337426655663850904012382308005257810159479917514344708499629487806122762721598206052363602813006913793183510568637447010731163151711102313183243857619461003294180054768581323931735023689544773181884022367641986318538729190610793732132579932172364527526342397035147781255151573768956544407267680614291042828494902583662598866928077486114925662827805330995321476758057087086993383416291602241239529694897887274438921437601060724706047596333271533987840013037406692682996681582012510184383235589655392971821865444893170725438261794912040634276392742363143866480224415790301570500226914929976412605322937516648339091210222068037321381892965907472874415897770622715116899507403391168633688287419469923966773609675787115530741873929887448546454071589147557918284628872350846971650934413424173005840125193294187772338275780992266447442924825641886820798151969259105233191938252221069375275551207162120362663836906349283433848486276837790629801417812066708235670447231079823515588438875872115116774191025523131711311950819680359856115754309165281222758094460473804310706622594497202895441536968821357543332399642773478442736628578390861726387233549042127776541369476188964980474958167000540097422616189918044308216069579457452446486455178731989908513556950048037292018248544956740305805764062590611921939408428453654792361708652835801042444184629837629519611970155593226204491881957941821510600814467508078968491392097113183185684127552041937409425178359681548927248933635937777286435850145768414804220945406872165785632023575103869016325982648060562018639005474018851418329552961767331696650760808863506483758522783929962997319770877730793819754603183551267263031618843876640729013122690715600897337586857224416672388667809926424405696737394486752530110151145587093441780805704382978694095102049592256266636052897243885169959989727242929869582664710845617694059821639957880359218106128082120729844634389175548773938237418531732586913413360322174359542415738905281786058614686056911247146706190310483191163179236100435338001417152489961622067256626043781633262290276928785301455573974954151896453042737046777000333029306153788257624560035561693867465773104674872901269939296621234850903054329015273412713575289713017583418618930967432087878569290087865988911326690159080548958920397196888335772176459939902813241187998278806241977701183962604559681461249547328737183024075749845484915796772227748957058466825275686819164252720570852412652728826817605446375391929842124673066994826413739894152671300959736870640663795422960854475002354118322065568268174518740311852420624397126838509025297574602417840840657470627567854013983111042242604252002236623330016083738607074365207324593608799574657918921934888411266682650683142138733825902240094344461913772438269213228972253215727714405979207480185959175701708778442233126709436758526872032811292015703309358495351850024004887696269121664740312925693167953037428737048120836711823854898179910862976824638702849052585372008609622920765137126404157424109053742871115476354837665500780022158065608548286436669055989862541813571338167612955940049718106729041506301434597644295465906916198507052967433935766861455485718780362870321753018336562278161421155678207191891096341688887588146183113356518435972861498655290937889654243587676419093523686981818551352885888423373389970985088653875604378294271108213249199016105492089090833893053990035970780372747516029665681808294739200519386700741245944664993786898827977004307602389912816089025103665115706653095566223247470855396508634995099200447407632163923440929340075770764601538572861909731868114951472242382015822870722762978581696449764499678450388100068485420602596450549686965870827208693005504964946277144976313961361947987337960203001666126361796973113550236800882786873602834155391418941805982672913331271609296720207110714172270389819431967354577076612867471641869020426066569819013628544559676421009459905197561977577140881432219700801580063063724812926555141128293538851712651641254090476708359435789906218379235996441452941314949282578740797385318949068423177798649347404407417924765534156212079468233577863365830115510070346445981569669984207343763012439856191857314982222726510167434531626601124040425638316536309731447747256236148572033742628047735543974447156016102854052256844475684376847336525106303587487004805456479434771001088344197857636335747663545187197364172869015098332324839178227990590485012918780073505556953284934766174602991215837231059873289816744506649645196259604126818875064177983524947248503265633131816164605892938610659025788874921674686296938219694902109838536393579257824072394860449287516027055404629488763814950143891996229682078257398072777386346434024805510866160853928611599734163700446760694898299140351875481002187274825283248090723142903976182742412989960377994316634385067927453705456206379892143598587323822668560049020031493872705927965945500288812752447361926799606780177420113270017777324859085992071175601726551872153593368558578677165346378793436408911436688020309049197047191134122823957178357073618290657765860187585460001420666566046374150815057240056149920755614704725527990908894846185685815376049718897612257581100321535571731743270544786809513346827492909382398333083969038602280124026139638093871709392678798106065436339357684222426145091462647992249166045159873501568968157965643667525691741844891034040517030566090112511328289621350878693719822960654328642960482040928822838963970856515660714742780757578187736146544113561435544942664232890657506527056169012368062328577547684859322338108948128940699442219356779116334201852995288356907439881266363595815765471355940744078878724485211225900945102451923091122532946253359982179194255028719557796329328038943755505061618787649183073185066484886774225315159446563560156606624132341724183391256327350209651595267621534060466943594255705121674830807841319665476250829055052123771564349835884840910252771855174167618350429178178234640721781377700045156159770308834654311908405826250082069457410990288046123144017401664505721574021776329801221659328642395935744712339058144745653547737358887294736269410660404091307272756448900248714500217568370249512550619509014204558206498276559567652973440927416681514358891859514434851982202441439372458603181565116480254943973376325052297929194326268720038072373372562353351681178912985188506165716388975522597960557826242549804469891493392623379364903731718819737250771221555337405632874842632863804285067634754180657640648966676612386113435461130302739794814234103808352365063297524740217926908510375927367134366124599274368561053973355802657828216861225825544911293388422597987553408907952369855979894220737515858872143205723193137326062234049327144010624045912486628402165094565139378777488967272877787039935165486475007237481304738068825848992758353811401499810403131105908373780144522270099631060635663625615318614052842372853277259518591377888984111910196820881644004349695769453820097959535818716236280683752543289264794923910538211213629600632872962015183118200616100053120502331381079739448901741357989058849981661184118436594009671178353372461151618641650986677464428727003809559239510672190924816148709452119144510315278405175458915556715220848773208012043406642056019856858740375188246927208730485691716085046959769239008851415778807497204090941497911754535430488553848790934455456605570014095113279935929433283162381206376529010150569418068779951598029317685733585814448185768314128214184416598041589178453147049417438958119991496177576745169111344953118947915173557032520695311832568663142062747843664143570507240024214393207150667906572719062014311089033807301123031044710778356044151895989653625374919724206638784027788407753005440800525237414907633624206942854689456927620966754966309902945270669153409161835266291955986571729346740394439983232609810270471805984082057624997678717676173925348061958743574038401117309642774515841885313263497466962172892940231455260125795759708183876750771557994957138527468919135482954203495410921369151802831122256621641098215969570964923838346010935068601302471299660850367599465207593784610777514785623986354019317843030498873669515057181915302410009908897133875926862985282569117237632760367478401478804039085955561742625433613627034207520357780073394136120997537442412817042132026604939664481309048265560473481663060609382161598282955337546901606078183317985098457727109752582738316172375573429940482959910100422688507656697637473683374019653688504731034184501759107832777565579402882360079734619157280634831992726794523761880859191090330388331706475868870807379267169157851777870677484208023020660530650750531651839697105096194648179256281680885732481736682450676120708539714177609002983414512716135201190277377060030356276439937152445670237348080442501138350037945379916311165094613097638047127810677644372014456043711155287480609718746235100702154347185315414240064439717233176097660321837721722487699936535843167416957159928863165129720446959785065138058168024424633984900474863998742952448207657760142526708221887173703848540985231281865822709119265501255231176930085358221752654717220941929078457918832363111194527164201385112765632106919374577561279200172706828587382751247893535220286511552488196972783030063357680421429065932460540394810490165284454144004323338870665322871410703434160678767248926794809362168985050505770172867481017728894729684568320026472652625195919446235346577754761704560660890159662007419145314494924253645910659110068802726376524897328685225573653500680701121213229810990907303906697776467501517617639113253093351195019691984443198083431736697766783580516207226164362192762798791471467013093522943072060315532186618920888756392720174397598243932828181681028742912013915198665608076497929725422680857347889413991904688582996385664311246397646647776131097782805715792012952469291401554919499451755190756355546401068830409714983695219427049244057492388294883007382084960040423034366632597751682658348172893253802504521176732380813526328168735332666632966009773827297491403204418430791335865183394425486225845281549562772502802706575168449066578740029276630867415969605301902379508736657969289613939614146574721069824380806162672747992692305880523306341385883494966578979642080627837954787520391675826314695193113582942465063868835397422963530776267682064311780086160537341666001742086241593768911917181115264334545518388046724726255715489818513395982723002995224556500565279939844028984381112205455715043373394052009573222950143208247397275884172358387509196998252230633050225957702927460564755907563682558546399983173128919754749777257916263269219370969142324523291549114360599645921045367236575957970810197800469292396907893592978244624983466906089068139559315851036999398696771486667124851241951628823363983123228948704940007785443866916684378574576862172282996092418297229191762950738961635160920711687890763659795781918113147212262119367775821749847911842006425700092151348912333773265124227635833446358247759949992211260145123494809098605792115349279882185832711983173545563686337764544856413728570419587482676194196386616153222744676485514668195419419440942532286047800409517908035243320431181952439986062698455747201843927768853076626505818369934851748861769374624138454597177355611495890521884630027233017413762292026107017334243954852781650244206027630242892386465198473072420011073718262887342634707809982693305928788760773439559119188954997083037052219528450390062817047488949021147228484725492731180364912932867239068040907249725120994948980478508638154554512976171647621530162027216485027681407632182868319816624220596451261963018049767806897663934307907751452246758500439247156309657903490372450514818323096352807088307112993848925686232828392493400878544782503313505913263472199177218643186906186301532699139781313778222025770401536873599851791807259855186908329940194160721319662155611221845620816089820396164431099831375225383269982896338120615474264965086239375937655996347960784803265510804074265515334225804115918226560265143160233375613431045487847151228733310776942160820479342808296561285769424955743335986425808754212271298823951104637635602799715503180241219026673754133825888235484073108873776593033099940738767035270239205571398879332792597817678733932591702919668782885626855170547951886135744559189037982301231633647653912569951116840791606059865698857985604100779827258246098194398689297849196967394891958004689442128994432208056490742238139724765217735010680020832568677197148148313294399882288405080732862542444240796550437673127506004348750021983785378612719468341350543111597165498655381955298301242050693027720885012550868386790403347063727352141449032959804604347919515302349139346894083468595332493367730620724871667882567971915017167994966993749253185798403875348326155151467605770397501519760493620141458287659550980740187016120449551936916977773607001011068659377149272441634949939777833200752914315576443753239837099002893617778609620751865441814540949987796209864455868290658813221956793893680147528570039795241607404660960744947727582383266444629939965382927963503826286990905244516885650583056634231331997303106355036748389262155552488893673593382105017192514326847818574167949907199667814804991474454639464777472016475885227380425027097638275001405900071735519406095212936693923303414721994832254445691421597564794731862506059598437210984250148058025494764693139201207564440921587673401165489175280844250010714355146288142921146226760948178715786547447757847301620026604497826583087166916970685109128108794523838048729480045638127096496524572075671294485008918930089699376691110827255512674349524787873138138458573621206589672975237145586487540332415781447993689196360157984796924089969703883841846353532996435176074204466025517323401219515659591819166559971084882654571211401511399217281485433425561275743745896319668139478928372571272852813011055892869554525608177888122053987150768268888348224244305337043246358071648202467157045996349605356682124471778659258409250114240198871970369142122275516204922175584074460889603821434255383560392095284605057248483907715246031408392887564409026689896630987700499584743449280217714143310082056962305503264511178082859198562694462979522914561351253154438856043487514103499438703683597417820645584035648766504410774499229192688041318960089797560746014321740220040892334892418723295374142850898873574836212557060988183492076628619193365887169091004620556194708643435388460660043621759509914154188347135828492891839306436429408762101579122545104958804196290478246164371732260858953781857866030424635948972849717510079803077579711465962595627192497931767749442907831758364962723320992734126101408053720817838430431103947116782414330456263116934934841971261373793726939041331237495936410565540247677739038823085287177915179301785150766061800400629470831198697824499829323252868389453865636767608054484684123221432439544956820841895222052030102213480729617459624203155246539030160475912938539212629070215164729965103464403910009335088492191065596649191068012193090455928201485274168590192933933751735760835219057554884817248635249574249213318847395715090852816990865743680897374431215160235214338165960125178664096311924628963947754746121987961971062017390275156515799599865313583216861781083031091029849525911453819823962482434762544617815264760295120041326244813242917331384756144618621829711971660220003831565437503096839150038149109223169989365348733009293913226716874968291649979680898985177783333200638218894255717564149727165121780369029073110649192469196025474865590481088039686477916341918531173046315689618809897326366680616429474584020011582675208218502487793817695680031012827304395915871981100352793002106458788146981578940688531035051241202828969134872397679865689424349834374260557786265908826678355846605848947671410045968352003066024352498001390136053557598820048084164293236707180540543359232607720710548258647435739410684386442317523572341895204313995124615949491824054789000160194284240571090189822149939673920422022719770843583158782875317972577296706621285371408716462935099465899099173568291875098181769102148733317031301955307528750200303322222822431214193822864367735202790635364612835108842221716082689325198325186754702209566730678708786155877417407969606662270338665449878823861909719659983455365608496122877042151670095947043910856399698790316174748462233229307597350023072189757014156225961770882936501005149218732245692792528337992863737524014234508025165599792033514314199443602471554545703519384194310297113850165768573521011113877879974006059432300770160984348909941269455755079060878760637094489384994707813792648223014056418998280045521051523407116504507188032411362193914334620622038521375637924219632013326278335234858704607631136248517181150961300132900429682664041949961377721003811834070962227975913894541673994539428115375220125538661407774742294899855936980485207902570714216487042080443634976720612250917262985017858718207592181619185988838947293099706200057156313781026862240713243377980336381229165469857985625857003003349037997084192975127006410030740348365050195647920649506178448543886277935861792851166897506204560805751282035057248407301779516644504301660413584292982695892568554190407066512072064588897253105972848141787485049590137259071413178622506340231300651839930553570258116084287290781466025234659405640705156829935157936736906233551977647046301508904640288229474130941637537235432874182440545716103760590592339807563615425773115696696882221317153426268254501300291304557061392779509716322590192909967960664855584717796858363054405428016043744967865073490482524883242618749787084843917426196324135014178761226370823275990594071504401967542613177471631519065417465627238894139713699374988903457531980477669615108096252878322385070977778041905432163135868984278954692939803911220988565090964834352625872876015224362061313396114625214933002730776679058529057139120068998872671636452828788248225831008862866088102194454327299733964767296339251461744061454841328537346931960544046458666184585179347972567946269892890458832672521568975333358389504498312083945677803329519825161594152304227109258958497114506136457850622319672396355546956071351258686720452967357000711951785094813162288411315061081106211828537141545684671284311337128193548371860342474024553199303371553347556914410685545617652513829780787355997075335769077573913555763808045521905745242029283220130994664488296309583543793691025799919122029679765774290346547006175330804455514730610255830402768453517593463195059506457185891063877826082219710163995738015248234303089979912140607282533542725955969757190990226606622170742132248910527266824441962444074264564902929394639970262069323158567387028505579410745378390331477745487512336787116369843888467267354902184711598363654848943310068602911467616346633022683006436471416179687980289340357690288023850124312373913050389032986116759069129584195909582995915090061586310666181270771461708769474657052008347812835014910779853990731968179237604992358136045839892719709227330083461814651240702915526285607156204498135529854475538288827300626138860374686907170843761046577102269911172673904440368102466229902126290038799188386508031106423677849430859687064757870511890597424593406386520273991634504677055980708277463145191668407101386936158044751567269791118438594001842972909779016551321029790961084137103695045001678569802834287519771322365268521940585116071782861116062406333454893761919798847914246073341331452829139568487211657837638658099040208877899847145450676844091413499402993098373674470766233844509910105923047867418836659507221315849773992262106854328746019396974255598401576136575816422852461884711859939984689547998328133111194411715471030195236623688857585569369638929586612971133970132130335864252370390427998623813693798149647037088488654927756087959566597665281401187602237268503785928608140318156145797869917385366475202509956982148338482252929183257972297737873997762414507578863396403711028472960457383654703306761201297798646362930285932293684849919115913521718370499268397727568251600330403856750741312848520936059410879711632857346114427648553104936473608678109522918127892051529742357382382186522934982898750123643425709625936079736450606731054226290733521266547479831921427764222919452003406482968714925572658732271578156101090614149117936452794914554231010929445945852934552822203656876541738991542042575547475726987051535276995015827810688069360724689371986975286892364242561344405753781414019482282192013867059796437715125225239872036089738383301520693164755996664666424091944726682428890704197281433184608946071512898306610659060713567598411126828732741253966449772669868179691661786407604672871903405189625785478743820096277648343250667348150120965128613400106445268152798048367895829553635108896392777544993874229743275670330558415422530691244581629655881641367061519415522188963772728763501206536365404654887734600024519162224391694756489304133489536302188197982473879869290974981595200232394794849866477824518899895052866023490710037349741284168834421264550403017843004214910204016395573619957007732175148170048450724436532590111628632628422415088009855350570124212661437973745688814093070789164285855725765151721694675811099505075459172863732375677735076111741329305831376468466553895132900105641504882052131764643765048810616686168719942458354007813039725220703641200955966879576140690236787966793513414026387064095791653830574806901594647509969233694479042808795471551359766639208132580769250663471556008589279719519380781102339937588344873457936318693980448628784219623471000169453777761052050205270282218683385083313926748219426944491773176854410663240153704148895709993195781186182047844861863032030063290139689110367147893306942629621169675739720132260470692612445203435667279546329434774366189627502040809013619608361717148411869882518934700908806791103074489488466732878138818090642779074092139463454647581623055570189682770170130485909338168762089946639306065877814903824713483744454183031712080785946662242122588377357586955119817786357812151263191972393062491965111808810823153359684739839563807915026455618047024254192425057496106927947528232805922219781788113892120298142410796493971306012967067789030271154264616722579760163704106302405412322291506273544169104399738490725614497080105634281520153965900566072441614809646292935968087083046842244128210729033420065860937165274326281939172469800076538564346151360701204341730490785472448267808358484128450904083135570713646830227289937491955461959057035510902109535865498311586812668617847436600860371446767609078425929086659595619217010704531758202799207924467771838071444217808272462897776362369946035761385766902201971719229331326470286576471413116783779843654228786581621308506308720509798598414043451290602933452322268017381129110952330296819649047987666372777828457192726933120150635391705763640672745459517125586064068409034905135889356993416332909999767914802122777682033495870479796989502757285374695568073729965631357067405738236984869420501174817307048542104274064869269950681180054168198113645591850456221400234605148636788315622952681773155238538778501167194685627131454883486926155739052227940857908330107753604954369480592050824175146776247577747411098743874207399052299874033918839629064350770117197186560327139652440642816590619421271759696167431911145304763180900660852478065705552240090502580118012833772662390138889047960116015794657195259753153209584731766409908205127317506776627319863748871587732917972466573161160204423234327361796429856839681354958114146041724494726935521911158381994337185476699015617253161670020686829046508507003401805341484269929892869148262787633806304897383546948375726032807490790856787567594650636377748646644570235644335945119600660030780403007013948234468882557846788750694978193921024670423633040207976491044684489901298180308164464423326994373739600388665611390272580857781914507964960250968084932115937090266453824560514804604671411328870233888974627913075977445996330059445586939396761427728501019026058258064607950634175378196223491365414481761628735012436782354023984275102353975493589354652323709783117424402567639870301506789080213576588410369085846424790787138127663546379577213821987485745820092602236406240175698637302309599538832978957700646049243581844971277720473791984643172002021330688354876236329193892927941731258284715639314796245245789563252978258788930508140865384936615194707256915866233713185712151604928809049211160439809174506530167875666494234986953816261559070711599581424303694853528159216063722354381370117761576820773410584180910870023215822134244368242535281738695110153024019606838131312533181042386632156569586476185177586465688614752384102461222719480407647128667222931926510337746191068482069429995271916309493691150601826841558052769882900316722172246818938062335475542611428475083139606617232942923064241720683776371377534438201600022662361456516117573228510433168083907248940898803530394361203254888979012515699574300773093500319995356914426632386895941839050088774363631066275255413886781151749153721410674444455681353442777617221656478361839734664784708652512032362366441220459894316502487299365270602819104498164302549931864211469033442255143810393934150374613745201812971499779607020532638172000503753137811656314833901086948803814012065365984753641049526163885799608300165187979454381048738966422238229813419907308185395947843237410116032842786861230287844825668685437078375630288802810643161806932506067918022856320125177522001106067566690114952311983814717017817294127071675634231247051169236595833490753347262559671955692650252996796814930522042096538452199585501246786136859767043856534138149454764183235450196932454357125765030283239553452138415421689851801593432896209341404180093074365072179214929762205674903001360888855026687582376243435286104938746902633039056394200239791362085866618138361953862163506161857795824688497658682280514028189037445771417552470850881275838923527834770785423172103062772071487135103504479099145700622336281118027945990188695468884797245354303605125908314268424651766554125517916690344808545621110702319278066182728201422753624532863033965601465661320592743778852969497512746383871215448631370842360541158681220878812182364103973980007480585403563196412472381556382667537851201285005525343355068055513786704984856045942855175867257150024900244073245854498601359130122368746103910763288504298395075961021347211352331602314361924342101555708392026486124230809260348694556834835588174937581662955476682368233141965746999879464504038729285954833225329425663473941134681260238891816330732272644619756610645949023931787794553948759389662258247792611806109062139425048339328971461854380451578747057828556503281528578966332609654576535853880021280131543437489123493358680574419417128069345368067984738844439738280912282828737833884918441706668575013496012041030731670974802195292970630199574446570820935439596586591842323735660312391167509635649977991242827413298668270222707699880232158985376453001675531134570699074195502181694345296792846010733627056567712591986387518285445683985992747990861913832451568636033811002553640529019759977841852508893961343805770621779123065629063450451784867459558613700795003876310346140533986911677243128596500481976858930895279500487607167724187705447514156610327543498126467235056886884919971620245087094057795627959341280658070786258045338175844479123271601150404324356375506010104059309145286449527381229383778207153856231439335489062452346670816139750081659486485089567793114549155704155198867330094236356231315753065740629842604298669534474133786220479682258256850956809580722154153370403454812808034171636105516401802255725357565001472483315000636038965795357467442686662309083436239399415044790843728042422155496499190025870127268819937117366628264604489499068307993862989030068134015538671542280065795950401331508393556073390128772150053753898134064820357737253858170494076660266846490368482703108053240516625417999193467517073786719399473626819904572174479073487290926278775373200388890754425577286497782985813880056508768698105996349577836909686351822366553169004242331114679660146190774521816784441493985361608385084976419788492589331031935122173452251856470249597225212353702210942990301103950634868689393386876845238735890789383766793345687868017970554917177172429209102508867640758368649664044441587134058307743020856073323323655066139991047259921523771317955448413769400639734818795003467612489746577845758385170809916258802026340792588440134038301461708209590559948356072711139656721443029744301797109864646371661497683286593916615214332881754049045555542673701672899354141939124904514438552065617796798559931405594110368848536363481799606395995522840386370860357460059009897379075564101564239297543657260634438396705562852091892404901072298308826236581270378048766475866730617775575741384980490138040629075381985319286790229971872115844286157362667421249854909866767679730288954117961121923125356269513873015651709724412272892936821087078120178949341097655636462267612633622213991909466005366759100030559026409898066847767207014066366282912662062759208971419419779443067664992518390437951496052629886664300494449415406040031374921912399593626036870696636291716804031963252498858020032321979983129286417794368623959300369547563857881210548891701617128522423811154540085094633876230609557730455383869918892533587352747435678250606590364849642235319214736241906996267490967214586543024336196563810313723009702004760651278363321541238365405782910535172675436642570746256770549155939134829630643971650604079435011567003487531791458771367626218613323128233788053871022887522560856133360101106594645226560081811508564104566403690740306608877864175045452578004274988260631189684064415353526065945138901037943708927982714492103934104374512603640848636034243464561499098127393698814601478010366027964970218171020525858796801252874468089147642550630555817211735636954792849982812847975868211778186983284786269580572997387883555940451144348907798540826647637095837907975413419272657895334394650933892771309511883184685956818535932164560506358970549834735428662449868447911854044740700703760721980462270929576343201617123559800789441228052140798116219996749338879940098999985510372218536144526572301291485245839786219245770518672425187461208561199451888898526439742464713396032677521965282545788398126095386758607847688898544586216147314356632786241800358959495764476696608414659199065103042582454934574703314468884030176261409364042402185678676713465868756327542804460999539294278666106967770287207053538201099348427409932306119479572369815980875817924287939992590763205658199044034977910196447325214431060105914809393683731778292134739257869737285618351715507558180040663196866891089997999787712639840033315548768034931170676662625746874644860276958112933364960767402014626446929053050096881459073043199972409965026180211233398013111090613756340761561673985434622652650188971462718112255076161371826423134198470558261002265476620239704867215816760747235630546875419853217059724402852199579678062488225189997611536138811160548407783163001876701275731168549029839712902195658515743142949216515040132609040646870479590186037061318158433360204804849674572924643590061600415022377801896809139127549731904470097810442877683355061220158103025516492140295751912168363532982724653749498260449967220369738131479265004862586618678337288916584076788390692223671771667696292166935259713272924689361948750494097331403542101702434689122329626776253806231090014428688871309555377535294668353117785384150228139952360833608112635651040292274631451091768879417017476601249824306590621275232064991760045008702446806876470205341239947985490333422044704263837924151216563559422276582699177023756119652966029948131959370764097156135156529957205173866972043248982933159775539971660752696253335865130665944743100213864910904533191984980582749083053598072170632106515094731677911558008302733721659906386748409084936818875916488443865913048509939003212755466055028478512786755357133232546681949411729123865457293052151032731043731003621835609103097812982265849090644507324763292274934045302028830308117120983254200311003974606782141730104409937395031702467618600667150149285950223854352754987978142245706340266107026828246378260501845543248906761510206532637664292463170669296205274222668871976776951176081148604770062373452929395282465888922288160429549537468423994046096538707196113386074325393971723215321556250277428449813134972558547233132502257009667641267679571148140175818395138907318876545802129265243037645319125398464514302059751539829425195567559428257607342657359986551008060750596434707201900704010378750842499321114835329995748975741424163141672299811700446803912611165101067979372518225463651832814838851146921499133186318941706297525010206578090731912783664113053160944222979432446489217781145506919881261956417266928703679718206825118037923711389158046534674033322345407839143688356581999812603660586364686708189019300382353904222158293885682100601763238272653471449705749595797386076574757988042858556075405115657512945314582628217237257491298636175466693318797417109340676264347033600856339003691603629174271726866903380790221493926083737306308114884242757215067709574896586299548935418913419215645299664058430721528523927054881826111701784303620982723366406724406145321206826314220929638567538630833110569143587134477511793503356982514611490659255361530929921257378345803626127007918168026479462937115976980345441881104469805371769454137550283526854462566028108223733670079077591896882372269747175097448004481887366399243833384074997804949509303984777404170225406566840658203378053103486903072384327295904528292932818719437616480670986132440478308572894829370984799766709310804392368794562554713712441564954044929863797788313229008297245822059376631556207868131788951742805009427646418976610290913164673488074271578950462079505309119506329570666303509158489349554648599397514012417247387303121939806446809266317006396032303542197580118904200736300502433259652987995460857878295886397237187862041520713333884185840749823534860114690791823189149380519569202379073185305099249349043534333824895863774502231918043148106411171836549682306650475295747927829827726494722703992597406299213978484054821326738476839856005339758525855807079072042893830484615525912345760847939197216517385576101946319306220756420169924578466392555317704943180159479915211839546442307797455294175828072776381323181608332663162713972657650188340534043112920782702505718610871561512551384419484188948162829528568685066175642011401703011654500598574943275196614568108745237344943120206267801366680334058105318405382624782457763169821441917505315860060465094725691696378630281195001713528716507567309981662740985774480611155514760277747231601781966935498570188315830143391907037389394593695420360328371354427683603069408761492208302377309343961952575929391013361086948392278934142796519790742844133748936960011869729745465004044752188541860228474959373366351830581844158855314258851693454906403169748522550202881384100774917590997845850950623693219642549358322183777984585193057572131189385342688214895202602664067231171277102604709064827888562982490368637758629133516199664040728548255099284493130134958135475586086798595797468256362202793314958189752173643222675596013603524408766135230837024420303842083871553483209460512352442023414102945917747050515270940235852385035335794671892889052770559457618143668095257198650650883267604424448475464160636248046020450907450452071948098391177005799316647172828384441404607124988044846571063196228868043573966661076120272347258314534825715551927694128881882567059615291320278585394393425973444873831473130498549527012762887788597467045402278966318843710979698978882430732506830977345160866503718058621001916587172085125157232918439819263855969368154701989452691854000993915908180663575384990903885095188343222052954123114392645205356965902494262421053847929867531368592151388767508230169941196198528746839480988882876715452234643480758028159228782830848655206638490684605794805420197921611981639226826092556184607056217171855874301082329842745929373216517666134275124561787381421538806852797465525256008438891543145681280678095125148798960551017037009615765467078015345943741574182311774976006437613900493434857661528814046847270592087397081236943063719371962048512048652854664846933260673905448696371733091934895673310118978527640578777051258741325166054837360678458737447333327745989864310012176435702075549043506313646533865220454927904668663916792434633662130310451470309346637801995527143321104322307761783333287134051443346794712135416836309758077368215067061661177440081485854042370484072327028457075126976376833141091279211692176429456362167484761055566400995330813124175833262698186575278610116039779481003762607921338158275487844993980651891862729167483009522133669016406698096094149016774391526356626260221955459144314289318184726531307763037296962230994784123546158748148687380119756162553027960235064254884452254494236725250884288290575756610842419764627416738324276984664880162167259895469474125972447481293728069709043359803010451010329812455103369669269335866218964765425662301639402589273203861843388462922699718532734065957495519603451064535324882631839908566715621214610504390383449014808155563374797089878217200993417607092605268323889718104262472399814013382858536967533318504918335676428197224951905564911334758656497051083531528735945017629361487409762319040998969602482749642105073514459005423439832799964762049522978971668605780069615500518385224523425292745407867518983413767063697126173869676017750087397845880490514300026427475860254097847866293913588197514847370154862707623153339056808639110407068843397009700525076924897153822365810538939915294644971698880437854533144262430414483017745606510055602458440455704236924731261830530179277881220713512522289800433770948752334534981351808858215598694421253743410238190091589760359835627850334654079196042783663024411587986898755549948757427628816823082712609552146465700839690938163238659197522482046770995186427091096768748137368498672625508773559131473302201442780839506114478964574568404558117253436659045629118896931103829056568327084372229468008250696651437515442701862872164289317356445786121590612052827867755415710763309196935239392128724302071040489430717294610899409958367923905481294308720548619321738490883019127299432722907607893271866201187097676384139270716623948514180457867591962754164747289857835711777767255010309891975203622405408921527521952851419633782031790241835091237962180283076493177381692337663512846529944966533581036903021172972600397458066500330868156015386477626434801651934647135359245646277598741647334713361940721170607916630624819598507829424735738880414260621514661481218518006121229287429132464614483311544002020172205509846298302878696843715360350018570692005993850020687245903722961056629202338217512720106145565038659043200000416542795936256411366862613354627024655876668857816799242317340713751073394897201318321616585703649243430882777709021442136854928979398883366204863102720109725028148021041467360731862272176419641583201424645934830120683981816916277484492391431854679213230214348114941333048981768440121986320568725528727489802026622911215125393094781590503219705619593004890716556034075889460478744452062374064041398459522793053080845747137691443203996672158566382918783471673177007908271262838126569774302421078820240745496030093151029936111722651729004322350319432787805776471337521783403824626143704698866603166346213657220290733624174306408384057550222130489125047895592755265133170929565966136583267227218754041776158473599760076927332347462452846941236248382620263663402411694872584817019666871874457408172316848215970389114348649045944558708089206824626246917797324066948492469785494130751924861561147039760659681214645869252132153267395730096386538061067388853351549560482650657743827956882782099275804270306029855055307215725954449885538912093622034872704748829249828978587175221627967150423133012733148978956951233083650562718557166356102403380736412996407519288001016149088882907064169480298341707113422791704932120645915270038363571549750492126351990474961428915189476626398577682015961158554831592389465675353842635088607225931977249449002681957618611663054811242545735180197137241121690658381341519056588622153132819017257949454291780850666438034415164353895597652160558451323069838550676122097917830505898734231390818848039952364149770078917248068981410625867624726409748052852032640042113692772078207495554781991636137521172488885270374425671988914387023468212152040997561734177587109838777713871222544292692905354533418177321067756936758411244496046669908315362196373496910673711741238526488903758004246258069818475502950291320181613886064638423824584115026257430461210639748113525222582075153912414877789667537761136816648793524079445094704651396216551877299687732022244083726744667357903238108469957845340953914903455415376059486823889041332581024008311802049508741632637024736524520931542859204449413887825293561222390592173816324842871604856188715951205479033075537426801949281770950559640489372466679258350855726953932839089067573586042182580356081356242449529239826210714934288735661326239692970051606688786704802740747159825469611599612138589535465601172991198542172191133035640157034892255592137976875138942325549894675443708482919576035958013906360382850471979888540477244452140396397193649380736877356420575084968362540916831635864540973292551506409097903654537883830508041173015052616000296208334142484083075808560078697632284754854634315397978577429819229423508324503176949019095083444238065672066281714274917650677964181338327528079882834390190880123911332922491210514814434739655063115664840865471510561643603352846773397213400777731404740296918103219773634912879161553271171280423838615054082741364084827215137970886073211356905631912149264334911019975658547691777334371643714501911861327062870453992373347731994876799039530522601540458145254722206939740309728742422660995047799013972828956460546709185690721620573199334344525374291669169490190598116768343711914024662907187051594109515730220089531832717894383066290576272205486599456341748922011528002290353560996489648876375444562849656600262100281086191875826624193516835607398185160601523416070058776837843646437853833557249389200735656143381390963719068078991988267983473137804757602752453339809269555817345740392894315309035861236831522557516342056293570178248733888680030634967665154676415012636247019637537505913993882438016065626018176418402138331322888364036703194112257585856047274221196938055695217059786825816697744964576567634022912307506191497455837313760328856011256035946976616000808089190911534486309532019858727852434364313131842836614052554521300538465903613392820425134832219352349712914800707734910261767063756011041849316792288581213421928663740382725760367969269052352348060730598309093554485390391237100731763736226824993202058752679054243778365894095466491364850810952211216316357077944484437416843467304008548779330350011506849739841386233585500299493172875316811913657093006221866479916827135664300524204910383785446517151707997310248836670279457049987335508554577419398475735470465037916921824524784500106517938724080142728185134353809274103347316416974959881269120311440775923543000110898359736336351453366826670103788995495045078689423595857954084944261419922618960757030867733912464547817517222897729344883411051693350589049892177293136072189139308461564818584535779576962629035778761873352353707800126433979403691000842046150887066905604863921412221835571129153986658129654031034676876445774983921086958540130454875348457283526257956923372444763196784011730444369061132520604055117736420715675670300418795438605300584324731221995113794913477670777517418116766868900632787691972610686122079068582198807494412979256768782620978784561323709736346340019294182493143709591602481068058938196344179375072825218294941031938972652197182760779513472613334128222130867127766518847323199192220829625829895171458266998644301681072842079497428816363587036437499192573933386458839199850485970300146640725942305752271842299331372084811946596325686061440867082070887086551310133863680886961509396675477711219734143859249808974685910410223190013083105870941704659434732731678574875439949774948447726881194938186358267986251143008622432192885348655315948499139246560405567756890270242671088329921116585882968295450297480467252430531376186133487113098166449979758771310029359404277193536815917107029484000265389949669773110132448581786830059218799884548451903526765180426477017169967903216146967961230192312251725383333502652626933451322346470700846551550511743563079512267906160820722206518814298928824429693055292608100483168628340088303994960769090137749823484891429268966581337379020190003305527289371462785505834130084791577412347627922328387884471718143827003584617664382317500636495151097620940152999943839386282439804038293510313718876865302083701824961297860027632651594922338390791573795334941334570999698162918862205772280078346113876315164385018761810058690250727519167847013852376158780876163609861204949003483579705066774637067098343369177016719297478899828293355920671860402855999718423603757710156155180360388404935764754422086338912398690892221867504302568635365551699973232247460526736834747940693819128576707502934132324339739664754113569707466819549006412094446966190305811026728555005399279124853224321864541820649584647278991820536309371522905453905153510691869407776046710092980446420692817251494969094553787616249007241508351639000610085773429509014892443316965600847427495813378604006099218982580271007713321383680794475178102976076826487211395024196174009749231275230308247169111551947625747846216863990915768662323553044091551133645559976405416382876229434958748984484010426549988913459982915571317239482028830853059081125249739719930335116128380052782154354282032970039810257834356637453128515357604728006990815429502928463835259101866681906841887555158651383065139317352693477568972945248312811938358048713643093225661538216834701910587768772912233485589479567528447299222556401294738235018651833852863476665977916135705355020534240426666921692730673517923537701636932132653607524640098227864088266528394344831619379625494265551944551771205071432093532625434200179413479299358186818839168015814439587430971049292533277987890462486018388907257323934984282261230836794615473518937242375595388272932789597236980068635741797358153040459037678811023794657036887086977876565683078806361494047496630870709733087123543772770675767534944705186379882489333344059795377464748938250155630410789155024384689163482921155404901899131512454610226851360799052103152634368278715346555235324265770570615901454500622548414812308149287635662107215773144177187082113893081183057207593499753100251797833929176125553384587693935949452609503035353779758620851488083576482472610465451931170037301868689530001980382218265087686029013809453177662995593998385289008514310176729091661780301767830422646748428896742578860849720905047493006806290598285525058446039033946431973815570269195153425103658931749952792769387017654763008401112239356642003661046858058613633945839707558992727875870244915492131182185547039288663577314547482681153883878217099894218963044938368962608325251444617696300480311856445083179793196299855716539636482928924712441416419752153853181883305683175750723163839350005758472810237446160790855149648458986607668312125426953265052839126644403065151701718181778322505633436715467314179645374993268961913617562218043743204839620521793436414706788411623579650231684496939110736945785961655470126218422126581302389457339374222242516917523987300434754881007022207035229590068668944715503426328108073309750739737336596792802491787286863285517316976048521103848587168156330648216070241179596733929612928181014593178504858045150775842229414219199458662731379642988400439937757750479194037705629980973042419314105345402329699381364513218103994524510426055591098171439819401708049057095664400419789906951138299881623607304695253419884877953935207615730075671698018256150114671442201655845895129920247908121296717899298195280615267053659726864900862932679882286442818226376875861880224160775498961192474686122814479903437655734834999589239856923053495957613837097646728521273424437213530681726125353149472356613248072988826509471748267836793256558068053937769992019284054261423098827112437223864354000553515354131360614581556237357334245993913890089808909496429357213911601188146524098499685228352066554758918300084967834122017050317616027025398945668983851596139020942193224627643281689224869848349430741739372642821629460429673406951935843108436068982712062630719406557925482242713425450389498695172564591953840825668161257185816957124293417942850599693172654854329809446536186477948737173891228322467428386698252437461185724103759413628301425684139109259966399826097675675896984065645957726544342920584127111833482841942560015647495343940814610735646033248932370483285127794840406867342171875080640134385275481005972539011412646100318355361995359084556427879090886741485927246263103102630977252384378943649337552259321873342163877636489993002323666569015756341828787929787261575068944083552382877506238191895779436731932966333433256168480154235299629991345383278446991656475796525763108844835498990748993436411850011688953927139438783504660664886328390719524435057502232516125744343530709478925226531912525873241772934764482790185882350012377753080762743185437397545245186410562568788098216004294315737869202136524229275484106217999030641545207942877532213425806615070382295114987439880016592231425381260588391978079732865632980685528796658032041294295564643537391912629751706192989762540401538315981706100725756573017698122092835503402503853540570395153008555450239022699390014100299702973947572353515139429520730505286492423859060117479463375822713926216542841038531851616335074224268954715878513966517151912388133639580991224970163787557793739681827249499561508055049726557544509255766574419103474120973856022401165116365090883722814091031934673155509962983617272240871290698027707700143845838386158120908283641120809034841997735512679021690077012055243496429884121964514945963932733953754071459908598637588156034841545845663728448364774884158229070300338811200790201497907264951667251987855825365662042172718016619416084785711796127338326243720469165231745554629759656673363062018347185628189489041415829033354985837970019240954262884067618045261854716962996291394987279374920413579976595488306431033521667141216011900785864898233536876585695532185569716094692766043005871124993128558063777038235603179509580627519936905977061130183846544505174619768416252690626759132813690414099324229457056123814236607668553244835470264080363902520344871661755421271902613831407677266204115393130237727755262046161442166688257062171822932846019527018228462744436649919399157780956897986499528071888982310241658203158824664433617919173453066284493713329877036468071755948730507491486042326907743202908363408780739937157185856419490308429934567650336538423793160140153546686187028739859232711671860633053059490875025080926734373459605269356227540017270914744609293629109392801329425407747582559234799545993770497485884241257110767142582735834026521146070768502093234892350106005860272768353828802900962738347450110305294866187195944079816349359503720096811461834705967524784362359566087019819490674717191103461841334337170653636002013357549909784067434860534764996806987906708069520560233026085873008382059782172981212620449980643177016048147420842036082278757200253703739404651698003135993064797308769557671862681246923642723995141905321753222189020440672973746950800685284762245840653129594391314046650450303031304989809087036306590870635270831396453308730883298121914114538170647276578093740600321583400751854561473313851384115276131299062255574168729603983218760006555332772491552308999103657160366164271995045462770754472034654910816771910359838740008291398759443434724691823972763268973335547893289481599551470349238394804866449882384185812879709800267484111851948167899548431880087788552738027935263349315072463757968270880027834759869608135463397734095821740866385813986184427987245997847553295068137657424578227708140152625027068092519954973074687887475394481035590267536992249872717191171938498346057035963440002935335044813448798061691883248813516866700615960943388272793395744463983386926867368710588281587680814322838332660380327309568947096421795176291019460960971910599264526661975467163508760535377006958785433496538863287195901147155732388799493066414519407058431118113439987862566020690556615196297744084957314835360671469351293431752753822489906103610103910775661094906387873339800617788169127970871543963039484826509741942212500299123069000962772003448425391496305809248662916699197296427120830514623503474892813335660004194187735852400483863564608954609426824739864395168184066563020642193286615496716738105205299898565911974594935972939751126762489667902406307478967171674099475952237963749191031734360337089738125044220798027048349492356481955386641428855184349575425166082138769567649272522572476912809947191105142709824955860217415905622478276991160924378879087291783927715064813572503752831303168827536405224208416962385880563450863613548517846765220445960373595394249898756508457436121739958685906855538015497632847598902026350493350192350069300726229453441521477920287880662002936658403560310198891883967164880977242544225279233546296699958721460372665667888318918671880834027214455689761586908769683383156080512025407033307000894799279227316411303608959633498371631371899825763129462153744957138351622232590999865432719953549442387964208426150942826840647047600907624908984266378769530304216482922951013323078291532240866132150630995851288482050782138611409915755582546963272838606529087532710699333692545829391422744547243947449933112344891090249271475068896028702007628791912948731973179540390828041797361682188359436310654006686352054581699949639622193771242910511348527605315167304991449583623531939207580827048325990805296305232167500298897403428985759208959043082748726053515996087009203983727114365182955172036195456249928204154340571799846367499240166575307826508233276809609685852540948455326304260569451024758887433306641115388929189239224419030906731354157842664597727243681215832857725782569502013570228772167233927908963537758928183858842493232922467207442839974930400118012474506350124308819495705198991553784080363574628149342180975824112658841532773558866868541536946059190487057226328160745708178082864272253735743696709982677295340050451778988542064194218539234313235726876642965038282141969711833165846250439856150515747425492188656543374630657867501428938018182896557348702228381952949429006324538517111942835614777518972106752904955204048959817449809921951085341117192175697196032047997033084487162303229283289425787753729511282962935583768774142162858938874845728493084284434030102311058334134368708195579379168107592403840438441897213313933917901652817062888474322323324340038700461076713985860020468934597659986474975386490857693865846508987621913023090583956867577485255211701236336683764868346262665736670034380982435012182628469145457518243483600377962002378459522234006167841993051443138888240293847236195147081958709949698643819341166717096389507614102287278715667908635057159250415216431544092572380480520002342037208557034608563884598967500606108148767962066795745389106788505176823923259316945173323556312720734774671989237972194795549145584305349108641733768845075411027994005822222689593642713256246626594902268785498280901550152303873124149238479298564868129988007483719378605268613564287568962670019111398752994364906855990362467620697988283762777176746389047895880377746121514468828173862775233370344215504542271104291999097294163439685649337797430305091088816767386811257097073839324888391599794201540391408792541066279487576417507817143455595178200787160900998181697842682285732480127336378260713456567764180843943588964508711461787153374081865562597743846442032101155060048519840378885322803443620688877697767787965155389280344507457913632520914321446398224434644818495647298019057601539065087258149378424232583080863110544513124921630760949638821561459444856718654650632995230691121726325260140832385598437950419426272121221624156183528880405424527940190625704267528826674787446188616797728204757896127066043488464296660008900773334510929211794127200202681108672861065502221362589421610958478839232616070452662283025807253338461976659510925005247695727153442424578626859039080781453596730536557926050840212776107882690529286827204826592100752426629778086842458212519548543941876065683292472481733183278792669497082158300175758568225849224385850976632473581479272862884494550026206234391384177454086870741716526212068064599990245631693793335060270518202659190827030696505831716873492577776912571128853474805452516444960245418185392558466067069392443754573808497946918219080506152500364859161929856771030532972150300417261104952553813979435760649865163164835337493105030088010164016331573874064644892524641558663328371590008177494511363640977284717574083807600823112788578843995500837847907516595727376578888841106486892300487932453054793258059164108872585025201410518873697106182951437887057234680752925485882395473666764155696089831071864424508064248264988616518062316501198300071327534808366443193958239558649211013768246022204340244082967741536061129804114537356111307177997646769752387283918678139653437114686666136758116581452286100299009185005826719667017814288173959733415546933972413951816814234308501177983644471913442178023466111164765830763989989490461667612173865733674937434650405579055348714633261014573360163886274575488487371689719384642199564329984714995767769680949521685220581391303991686856188672252356871142307629909023033647673146628003192058844130131030852031321638957728657902274511244851378869609267910309540821442215722764188942694612545665877293194213863252974602160493714790543758481085114144632253675566044940062324981627040777014353824714541403062575084006654154571980582812181475066262040901071798874386116153703457135231679914924664700029306199976119822109594079299345632540717942041854932587135338022790149222200465909635885241729685365043648394587838995812427080436394144678698884933773777140068897924617656699833694334888619012355119385403072430403856181430083588181747049673941160805281882662200599990245541867075176065262316955748342891440789763882360056884072303140799322595323068375392250606268083397898835589959052558153919688555673689234061814189613582936290694460119521430442517382502152518756278220697979688320317410835389216701598252948245328697478276033556582662445954595601420803663278400995216851102771195524210799514246738467031338199509990353300191806990933516187010700564347794005304894984790434029769249228692322796350822296789781630158194007398773464770733088703937645912151011308401248390405030377102988217868292424815369199048127282698234281647352193234337600270522975898399419752081960623379666049685613344735189758118761249506033123644191611964788737234854730468824709588105361100664013274425599556652335288705852620182308878411503656112253880860468584613076561237699230044606684808836810725568538015935521555856035036581464790802464357703696839498984995288591523908457978632270907494903327073243089920167264400604392600797488874763098928246499563726369160932295114669850638198287262707143629452586688829391958148752621528894231823625293835522262432943449606422413369971332648474154760328883348208707492924153956537326236032941725258116556224110005408854837962673963584114242178080742419054658475074963388859221066311109081899222316236308694878870545093698403093884437253234116022070377889199290951801363941136198280815500091345154034720439442069999475195982669395310745372752988694962463926984007591136781650209345482340484084067511654354547598759672151029750800142798226355036659113191382138633563276726766503885480547166555622028432741601682240678328882731591072791394538359115668204711953122074379077308686152516487038622760702597332972224145490544491044464248231415450642864646862567653165724227817158896952351509978904784905650387903293349999073531328288462144639382786133483495104910498279915170047459612022603806351777040083457875070660186253611917065213445561104939800333234482148647072369576838726602503058707545245727966991759564358067638453679384299492768921651428534597434203697336686108071528280886174690655513293392583679431846650561372622038410114970702149516892773807400592863827649504846687067332963626201357720405043288430790558475569736845887583826322316845150189014861888680579317046810146347121734577869647820306490110947138586534435205967379843128719985380988549294018775961699834872088608532077711074729852012316621269979817984394071710960629871517769182841211433485720405258776123557616405597653788121669287333314339476823886346970692807090092182609440076492957327607085221257009707874903317075236989032724424062668979742258516429381415688500895422842104262888500321086404826583742895642620520581981025725603871960020807902185710723191021961269221582695160897920992772301553624153199264012086417116292993114464036085245109691141837446248881349188629128349881779719957477000724767377298905750553361160930472286547922149930096425763443445604741337335198942559126807965051296889863061586916500913698240363480878316900581137450340283183615216293398466702042257044013603710370873939254914999791155479545981127543319139719146525493853923951676841889349731382500214483187321874054761359219203803648659287866777785395052272835501449707537842254138445081467538393359736962756281744585586869932509687674576684612875444207421181475052872953526914838122982981667656504343557427812043398395578824284751165392925142953361204327218013385576373790252612455539874195746540331935445863614625784367965418668999213792182855525036205461247067800725145401770294595998530459179911053918140058203618558399687367505099683541038215975848177080168500749222417218858916369589124300622916460254407733115060904556532652222430005404528121390705535597412265077165685787072530877982873208666079684446068066236645158146434980308839523625080651644914847900705565298796208327231156816818744390103646574813266261141349632386453011881651131267059788640275406833233057551103719002507849206591081352322046981551472319869002327582581545723083733133112093376553394155886134765132413488338730852567831854877090471054077852481987010711936765227843442906726631488919196466336625745061707276260245070124699792101072760999816021923854501015773224039914966216808732064022612337966155326741729924831939892446745737060048545437187031288930643774416315874329401351633803980334755807404493679690957256199895435073266921374990607648004100340455130461532390034841354078375237859842685284438546265072385703882210199290560906745202060613283322967157529816220464674251366567959453158808780926001278229210217954842407381643911894140727483182829032034422378416647862998347539417856690249739443226389153391397708666439231829628170366060311784832608634819475230734388272670028951443783307164399471305446608338597843799965700068491098516871636328143694582500663917282817296515093772684685000623094964923429233897944880923431641355829685571697686866627398412664383918910104141113560581977968185946627651632483822204966636865471281350509835739236438246126177428779854393037471367578899151276893358004480985588763369292185479189156439925041420528380864168174726985985105557765938439442157788734771423398444320416766353305137217153818060684830965967666888094772123267529172342999294166127087250096490011874707283759365818945339293444802427502139288589388078572774075974476792833604679658949580812601853063385658357390175789558668776444727261819393015954221335422707023258526402313841535799262541517726078637318978214900185494433225217893659763725464879988191513209824008337926176458229207387675508571427838222011037570270686233767988270915660726174171140268274484295833174970609572020576673623962493175447427173524421869145706262260908881922912048487536411255373321850462970386675699624820879028587900376858815249888600484538960715813106034985884277564412352962162770343434201113750514312589349299027756801745331771113835169934171145018381734151477485780009468661398103478575215472603933259825125321051818733680175745673194134459045527477949468855593049673801097017526373004606589673559579529230306944862905055129932522054450772125092760294808181610932253046702578964612652704743790446076938299958883927128575213530221112347818129185335294154732256834774566921762603425929502836930234064862446514951446833436735028353588364698267696033445205932005495996575087646809070055944373886859254627382608532385483985111098768088813723173224728484507519049892922417440869107475144375148764217678231175910108472103547579628710424911496008295378067309474549034798870231594246329423812824806176720771378174736235098518238591510221962159632209342148734509911003834598513138837163323289434299182391304841806938423684888200945419396346501559648199902395473370863299031527908023185432860365616387688716618467984509133348225822911474635459294990454243012339494679233808561126951699939170630346120531463819882087288548170010683240341878695727993090950427873820112312736243778585398160272379326661263752430157979827516056405178500718537675868477262050048971341949392470519797051114999682509459040209747032686692441994890115602126438376344953647214699480472271594331570458974871885005988891607633639992447422567415468933041638560821656862265616491657343453059994321508169491322416895950396613402591711578895822120795394525239109298453378705585337091029556132973455217831829798753001068959295469024183684449843444235954311073446770609076781868594363193386091100401170728277141941909086375708106751174956666667426653398512681503265401497502665066333154671761997313038487331680529350879435801706969437789539181401869339703550604557897786141830811119640474362649968658683629782094923260859008495227956554266811718791427159405557094597803974919260193736003005210444200558387204341677307277534317490433771336571013354754530416430969498782808262051813693455261113788590842285661436661749835155131532118216599287894517087468874762418017589559206302215826990096957599692804404089748722383442165052865039223888106779144159126098430205229241898580790584039193719547068837366098747227890900373224209175486347687602685654399552316982179243113549776112259605405728593667531008529667111923309670714936270379349023105586522273396545918620170798274258170177238786138975722295279343923258420600658261689120395585013121621754537208688947454862095829403803214334910992188097576849723246919069727894263883226058193994848685946673307461052024338051626056353863876856633462438093408662987471934782545424662348982079129776153711062405412123118211641874351755512375384244441252677679116940437071855928967220613152497897210672782164724019050936557101139939220137030618926956642207516674352700223268807670614705632812531743634094050408270390670298719152476186024002788749899668746450504088578540703413732102036797290130481556590452637423025924074460226986905515676001786952544040329197563355532358525952714136614780544903000181237221101664364870306625988617049727006281211288405298460030051747508193594198973860777603617193843553782069472056905982778224073341555444153203246419590264430388267674715458541349305093079367170724201085085834006819702758340666495896224478481350517965169022111371261321624210503159663865244108634297117985182068638105687776061211241225487899936092134670872664128817255878280156329655794083364276799007474551916008226127017969130882883189218616174144651925606840070772876170002633533745178864413784896682009970004695671548683965282015466382813399873807921404455495022309806494325771802679160540992781657608696343141655187592306237364987051903692609330573786006843893424551145449724099387398036406375930210837203958161539243320395026339973241104670749294716479685764396969178281638759356881891940179319367892664847792577038038740242857204215262289114189788225386641906705532790291149821148343896810212996256082730920803081398440877322056878256649120989181965264678379016765283450487241885397420073375941942538063418477470415975650090516803983760175235266720166893567351072720456236180919899025624781138053533806410581427995744003335930852546328709225389471065726500855235237358753290680117456371589669263938311535134854617440269350545958406392900321041973508500017569865768742174110113562760245120228637453030191519891079517682493834211241062993353549392141556155387906106275703205255858726403896067082519149799827390432650628199672075605568153084112827459178778540928832491056995626385965241744390674319015396472739451166284365951713324091239343627917631724869820069146045286373244715435418684854732710986797297222713367940545146175414617900924890799673785524685968384948343682826885451744389571190875234140634840969706305944342656771014825645215259344368587818164067851109061598028572649051948632006525666213127344053710813908838682385466304302934432417425702050998977213840812817535846014558994572946567941664461624575633678582693410101777545185782723562558971034913061137535911704711944548906980900805461964763250254790949898384816002353031640441067639957013831417347121460637184726366415105895449543364660488867176303362975699081034737343979736780821014304178898651390566451611603490827907594608411791263566944195668107955217022748229377832781085267561279350995684903509284880434781798531648606299668226584995735818908013104049444054608026672188056580048716616009707251212782968947195696727801980369881634861821038145754388925834798112205960071504799901806001380851516421493066583726438521324477111151265492372588284188204907551230116112268283062919099282523074478837920933115474433491483594181214693839129078330678584976059266852661586310485614259648211276606916120070000029925389211664335294633874194853421470659351591099404596666698561710176403572107650138338090532269001582332103024335140323334246351412309990080268128082881528731853282428766358395579469924331938880515288825179546182176969541126659844458426306523859056427758851154957086244059420629255577460359776620779441320675597178891702084024356055815924698058199171566500940041759413544991343450685722768116841834213986848718439548056873125258511763009431749883927325911180944189623505984722986858371833154233301438770425933918303322548534460804726165952668236367809098752171088292451348017965569450287175526084776181873132220089011507265939673552988598077631024639036184537795615534983578741463545238925867823698066570715058834839139159917774489432586668678171639384625350278884528784888459313522289817421921396619225738746296561008480022289331983684368842532980547780692405422083733502464512299000477359964901563590694863594496624468912620805555172840011134756284956879047443130772248803277035036117689151892541469328520136398288199519007040702926565749253184825245534078826780060528018055609496470227695225402252485595574538329024923010986020104529265320582979454366385786558174704935091726612913580008332341732224048857216187771880435970293583278420864579296183708082973416950492874262603723155887922220810539404227638251350946690592610886485946218692052710666066808720070928121788098953664275857634847324889681688883172650401580578193947688700590071854560613685154159992940148735738551838909501564916192505876797324718291132943256340999486824727299563230988839833363075752964666999895913773432784956042499177539449755329764959500035294798594169491563817770068682104120556585327386381365511125892200000102876734736876489847700323567110726237607916664494938809061116392884248970417526483734830656215756839975997466070192717491099120744503444388873773361067717757104167201959037899107225462940094127035052932523694187976237880836911499438217555509092037673037690527260813774869835447966743728203640057524261481016720896578951542833848202180596626306533018396482767475666229861439188484418188885779454744825066943072585559968713349016429923994025369210082193983749940414396734324761590145737696080093556896671456512719712455210746856499044810117487734773170213054999297805291794552534264536707759257544495757175848498789409785380028672720427739936741364156110558140511577325695648335424553323875938719576955799696434029110322100355349109689431386045483751537416150503592168845066837433705909370936163907458374685847507535945055489628888980650954696399138619089750706130026183648886576821342511200865957726505734115091061097941111709017155480332678682525954924501571606462387901579774055741304153821044190498543237612666250904381297749594464331966102159424453238405924518388861262427964644241815952273514603495774245630287823497080273607278460580281514045906572076024622321359133253678880494785198835234826289251156767648779553291996633005273459325217503967899319890238605249502265901645478053444004095196506486427219546012617289291171971037431692366849167326687405428260304087982237945489549512452176042679595836172582473698716091521482438693967170048876967205514875647560922548337774645437652755764736838720998687964311796574359551014025519835741605046958972517665484817751657303862125868784930199238324464904143854825642139466640546635392896615327708818394838233440179786751254910871730055981655437014797724803446776847621358171294291046554957313315396697050799210515508308996518055459751806671908027230743947578539101076860505390842008144281780600882637045575516034258298090985989863624593263758562427805537604031202031542926794441619684517476610032221591119196082269633757293660415502907064955633974395161513728989493201887283321323368283650214648975739609184882410388575133616658737485305957348773731837730128885771851773213804140422375469196101213247058037662610719967666150197640810423972596366884882944819581185924324014292041044346014667425716809568158903291295986135728356043322019799530044511083490288333849886308446945924610690796533478675632906661226500411091889969910378687485971910990298229992480123665153469067003108516043515608328033859616612745481832062901797259877931433087720312325682607248521840453797123818970465437472598481823118198680519560963340661927221908017756137433717955738291016632579252194324275864448518469816289972745705847685831661235197888159175150882703931055801883365558440538927876150186429934938489199009469080792011142386441683512433910935847790522991172819247052669067446111066961096480690290566821628065619983961287518474668216578935723785496868044253674624996661521663435874171195391478493240610140956144634224724131683222985571404070485884124860432073712511657208947722342229446639568812471162304692573696473823553145688114351201692858002363829536657956268501278905975137927838428727096161482656234251915032227723858341492314073251390674852023692053814265077989020885414059184694721018159183601410664543962937243547107185889250713964876099052719306443888660361593303040626808572093693852172359330957066208190719162826066132181861953515149683280543237590279099703150870588189543645311663459913267554534402010826514762035441341111989462944850076755905773504696907224891410718244909340814685027478983363580996367466841507932060424868585445186955454209899654098691580677904563721274356669740097346387669943373760775628407068574519389404399806725614472027282294405636583872540725592899263179667772881988524230922285363001368613678232840669504506873715904875650456100677048853728516285798973814623904657289733095132711351667284437475150386086440587700040453624637801057477613592269619252375116700541751872237598820207609213679019146009650850648948246845250769122790371572366904618855576594449735662554892008550004731419319109666295815997521348554379387347394924632822183914700314223017476774950231973588735817029594963741026629057653303986467488502020625314884588010220267500692182292673310645485211333640638641144113793854003253192188950488911436324733216379494534645293988323694199210249990090430307603048551239935950419673811637346939660680909496540597605632104617465637513964519275378181484897254318411174362799117371248462013053558011809955626835938203784294007587692297483133507930540573973527711279511483585965752332540037471605405251992047334246862473395876734877532747978976818366161193461189204564395486347691331163555102815422996007760783615427824321128786545259437309582173915621966413171506819960278316018399128111841092747203693097689267423254830494481505909948997914690227789054941834900119947822725856399654602200604796971245497453640304000438100903396581119288317597414328556206297589336869637275984801005889078830237833522586686987740631866260317674910067553085461489594487178199305767186612432443475062214689963153173967538992629756723194537860187080478180444105335366389705501726427035411983689660067676302672150245537319713923081767242462695719507164098759220631457963880236404102142297577854387720115100498931336826096901640194759499742327158309192268959421773319720594494722201500985555375599932568895599835412330430699038633755137845732052879551811360896322544048723405555830871751167992222565989993179292647899298136665543236258213325035008525458777762897306340700912062501393606171858069206712102870214192082744651130385133833373138068741919400231247795943709232167879034185183763262414392093573476563966975771393864861046200585198841950973153930485038194485540234858782836606646392878862478621444922512948838745816573532813279880913033936729608888833655297846093391158903362094970840382403549484117150638522578057790046174670909547674113063530475853443267411518870382152002558868063702278809969674134093030262064298967770104683964659797443553640618834737773952194710781793809914614210175203506990249990195088797635604909047649779853272370208061205610661470773087050718271869724831382244776875651415504392836842915206122114904851417776033767855339361655363234148569827275600333505809491975668961236456901563791992997686900140973521331004120781190044599290235572510637469308577106613235167518905932489859140295957201050846948958454290169955961804374175782651669695744481638278540350021518815531688674795008772885392255149376090944538257866891271901642417812459898609488482292944931202183010279454354978220535300741587219656039753449410393280346809829658812182167957859408891036355246060243384512909401259392028888238413530622694568750951893167618876427243618906923818855659932054611718924519623110802788401530181424537066606466788578669487573793229974057072563685231540176614708276288513749981482933350850961108048516541191599688341523582881895459530408413732995703490815241358006205156027773467624774652284326126371021390558191704258770251636601017954480044059254653212686974038209363149026689947162264751909750489468404553466665424374579672411007525610001640023439906640288945632151314364116834768381279485296998485600775924594874805259969887819202232771895533678898204603665261581982340529119624615888748113398851250521552160167975243776755678629966235537263286127464173506365823636069283301233286428350205053802441728011465222105532190317222046397979653377912636332491823389855333996693646145341451776977123488311913713595853772528664434996580117587245653588506672320862494702593867404260429499212397802799156553689475542692329818269731185806839830388107135241671065580546946938582859780488861192246942851413497163520719793270259066642442604542253617485338483660224101863120987118009028351009019611032044969164251485072447686871540561860353753495733891763875578845600123800811844515421455354960198742978154642361943449229047005616021983858728426802900012877855894453097545209020793226046594150345802007111236555250771560239387349692553967554235723465523956977677086805126857298124488363949893040165626969050327638405691784121806689782965513243083970928670296311027102907190053877769850378403632787372716338027949598294450315884318061338821405230473453510110584370487776295190006771085135397012863809293252966607030697432785103651680171315263864134591790877394502911912950077074004111678368691275150894376305577121515498159338470827521440318694107383237632715016855961271957356269712231156914660939058933978955409706768791276236715931046451763958219043044957357934422434960083410058735266468008523440245729472204694062653677450802571540115286336359513775966018564475687798260590389758668736750313797750226202600489999419465467293944633590398713554851340314194607761983492944877865729424431726789891438059106408070548245762178236725358713989569703279930474282313058084942454939164493427071451076579319163572358238474484202349785721984323016493382938549319144356656612212853532146546301918916257163930330418033305604329225567302226276615981312714164081387844005610830140984367859259398894182477314745294611115815258521356011412388581250066025858861804597752792100421210934903315228586030240366251558438819909593610052640992070621462045887043035655595026626057956884518042686049214429160009518897645118479132607232723252711230705011232010882890652143802169005638382379142653306908547984639700393543194364020144626958019730889998321844041921038429810605027762341735805135982271188013483044664579414337890804630253801516073842911948289045530876375547998379657155098854515263304673673151077953024983642909405178284266177479587600807253299469541073620191554040268250894711710102381611943255573402502430783308965792324286549392416229103355074561136228362970963890281538333511992283170734327426237258897066841159341694469050743605064714168428816285963732653045386424719984744584821576138172800837475887474292703805986701009928644480582948947655370414321832329378551954997476403482401522518274640156197279840706878832917431843139162108489039101731175237291708824006273811367940266163321636182862050385261068752132983443342665353420491299995829322652888870628715101036337452048901635426935580364953781332200356032079244279896148678330982321316112237337281126228049389239240086215447862086919337609207354533547406839028351996644505999486954329400839338331303937511494528051707672019901840750778107008363217339429805125624286135869980177604783609255320178993709458801113187350823133694336102055556376900990684755607790515039577960221718673588686900951079380156634741339473070682053376209460924540855171530822634514134826964734483812812585835185053065543328972311053233899320024574803681044074018674575424107409958763172773238879104015924866677828565687325451900826621470599309762347530662735349090412208784559175505337933423136097133279294716386712868199411738997558406804117010233872164111322183134902886479194834102316115331457163472187708642339624531792304683217797463524423608876479199240166049170895902786944586901174805477750443126500590584846116934624703315519122161340029889469904546309266999255383016446498223437298147605242602264759386207016023509994216719711928227461287981004167490145012281069792935351942561861749239040549522231499209808006504659879965462632300608660932106616265120556232725344307844824417837414345528403290752122412957152843659692122107451920192951541841779550596912035139520167145573943902072500259175906155417407212484786559981342013790606802870163444126477070193609305641795679823218947230148437758405195318653796449628163672200845558615323771463957176321567817423001263303468840622123449569372743926903845011513247102877661213559617152002214480509111925853754353193255612961440396774303045326430797167418960300216760439797560925207872069876004303691360760239156062053457152492540382637272177451888154781693055338157971622020903085367432387231771780822275895616624486917147840369572963166605130105950561534423963763667365883859869062031306880154273431604552621478871572627310465016356682435025483470377699961822470768503622647357876446487493396645633486848858722840349322102144834472177484188204795549623923466866990977296719609189842139351526209412268664877977827836653235764473134130040774720420126228706903986022546899293134125245741433520952399449994272271347895170156116797615795743260033403911000417072951680206886030997355145527951322077940758481041243586981598415939776087355540369860463877781262763961566400013484033517785445530805715835773195352932867549439654498582437211573779722442349726312152887891227586326412997655682152801794143491365426481915083774021312241581246630465798339569436302935154474955809583771776044941788436627263016319289222691497386000561916414524146564907706470411865963732957138067095916991319638207378392772752499579261607251269770705427791572873548277332590719449687732780029446573977517244653436765944896632900363178809339024337104566110828588157419191435853923248001187273145711242426341190556949806989591231368190817000738546106319570844974799880550731436976555578946542847213752418255818724789393364784071787079075585771260464173929047331802515461087718662137011804886997932755518520262877824849788212805133121101922202572966878357974524978590618372050442973249786603545379736771536798355523528756332704640268615756714092625909665927561268454195428217535982331612280573513382268992480748662238069382011982776616008041405136188335108494184968208614547867331863565730494542948094368181192658789422254306349632309875006709582489071138023436678068352424000817830756832445318960561135592592781246934267366453353987736737873726221699011650829383664588611540829438958744819649858227424006601635270077426940050008938481371884048842067812845669787848187209218593419726994184774528281852885587448214820096163674975906050443207470732367354415068532374866444154794176917636659036433947046884196993526683575647393256026007131959239272940305217412355356915420140873318271933117673749146462115818494275597003423512643230492145258064796921901828281382516961825688660614761645976693787909229716846337704943981390973430659581730403010305638464072118621117859731756361656878001618067156522584727924126813381234903611887831513470859740600356003208619127717594604600854315279013223980906833944963144372235263048411717656249333543624793175850314625304251636768383566881959113632296704809384439504799195189122527582787759010780587537133111418005864972440845947769363094179698415016131485585814407812652036697166256149586514760635237605371430027791923753757206190372425852920366953639322638544522171532184205841372595242812595895497478287049009715535996319317967439479636197714209038694513571261978073289563180244415226615890392832985979232938284343485514430181278621847073380200681052819792493731664375557825423167536029792601030770017083509822858552874519634422485073027335728083312638385545724501641027782629563584573675678170618769200173852009409079567360175416605530372775151223235686319131134070570352468466735471279295574215490516168359112665333358612921049135789751236829658739059299035957272787185150314992240972631420674168287650428540721507310841169459303392463362294663925647233028668754700807833685103766905220995283839440408848080254572639701480833769448446696323196111604469032655701544718020983420227571437085976667685747231975364526471481215766118416242137193650048429997944464406395684260978134932849227566744743297054350900770099834887493775230562460092790011480360673678538364691490076847715575798674848375999637981953298376478839543034288798674908751411847732203396677078128507764503312121823531984716883845383849808466477877040332011689790139935005372885782212722167979466887999558810293752699493009129854696960537931374137194957575422450086539331126218598418708176772271075087222451335413139491120959788784675156635269673331441032312199368646433609123643011724583194575993414441546935528718507009570225866907946325861357836543297586091455929155807896392853264030175890006685377538066778682951189444062658447898754085731760584448616541240197187812792657238467664647507993529731389013725483536562938458297388075483803834237652683813804404625619579865535443424115811271270886345968988711445704707478664540569859349105781428678695888368245467364429293571854876527529276286858262467489910504372274654773427456231786509556048646168438438134211437558066406966250233243031701569881224388728506142193647316408846657960542979733842141010451904746615641981281924004184485331737820334803717894649431162856823451591905037289042991567658527168785247831083861099573676721043139015969004778017916026469511037077450173957629937604208561621278650587286293084780729212380015460609787292918413139549498336470149132723777037801188533152033329668125898250771307733831261455134373389430962282467185560886939828661870880912569976068038252962030798932578144013135327207911651725077130584615104145627852167338566104273754041744724890720613225350249852451988563786203244447410976716383759107228825509596014190972438584043497854504028049324735472836119744468094332371900342948819965160843517561724160422275153361806871084223609024999362739227896187836063791904800814078849780554077629440968692375842086236327587064766771722492310300662512278180385877868369698457869303055419045109461252159001553849046685920654055980246798987384959168651030928262487095795212342718955466217119806015933469128184614758705379543462300806101347476475035942249293044988890871221089871468128449699204678258885251578252032664205824658094946010723600834614937474853738566251676096117266967611467519064395613089906717661947359897279512248866386904106643526031018491664943078508992632130790831320719556174784638628167864178954152259776710190954054829246322427466565063691035503434621719105986059604161057209523026762037597206067889542439285030405264515423234105379791619415400170289855074787055625279248500361307094085069875527922533179501668754491887227204105561901667367160183113077186183344305434932284363125441236435752738245518457458762967004551867750156163438104946149548392210805250555596983098842099758601577253029893647086710104801280430960520424599174824572299393629550863341685482433032210019033205347163175750306897220826763484393328960649058261250046005725779434866841190152893171730455090951192803229121254287456108174826530000422438626152329518708531998503906879183845736681530584405461199303071889277179525043384923681756473330503012109227602493028152111363873354190239209574730906301430822680471293266464111104566155681218833631317072419997023346242546139954400056104941410848366777409292903034067059149367447703316162599813032884536020983492514507092683921479474478308078953227967530117002602695786436964655668312915887884545132187680624548805392122166752301470617916697085969658419837679436613699409904199094888409055049201409977424609253181596577138047476273796096922876792968521596478875856885746788325485464580678119666399358388275976714560381226467353858846277262301484377436815581100595193277477068991766986548637585916225184529035157507018540169562339888448794100638754177495837243796558034403510646982342139003281642351446665293911528312898978901982897002634238981466515522203315089535025018694575880732669218133031877767203760590765535463670463245789068330174521079840350615133746379763287705333277593469922414987851368189976577269661639977821491458474413944224226512021001424787224033797101922124924261733963275327856111942830091323216071004092118242885205438234702865882656225647154841923083369898779779142971484533470465360090536949564440218873771726298435700248671422192306368325137196613330152047156867261045125458813158904403825820572195924696512306915096785664144730927764296293712790520285532967805769703125769830909839986998510306284290472919406788421884079776454955510364691281066098973588470836694898301977200836504728345495433710346664936883131064063016554828785736798056936617135318929456917482626102552444320886017610301982565971316078001400431071376278709867943608835434401553813818844844473233101689590469722290372449479070443856841163330913537465575862805483126190330517732770234383702013733447746925200878696167622690638097417917502900548254998760389000537126643448038479274374829214281153324095360643288358606770119953049758019696429429983331308579700012664190089299400625031967334204512720599669297401706254526087649249144909189876393122364089301278089917295227833610164581163080056365824174975342179924076649229687710861457049272574084127697896590300662401490508976035972118195709467586266903970256129896668587081186707095859107526595626438334491529586437900728274800362387082068848182600148173541759355016644696642218318950977414970137024268296065705333760091256338745309685155983530110722715595201957397407113458303852200852504272094505685219893996983194347197702173724716366770444879721653057411276598234584822665288923188921293933733860935408436418765741685464486676155470069017274386909591643013337680676927772381387266411295635993324542212336911605041799586045239805729112292202522082752887015411848306127011367057329787952916103935399683455086037800998646760900494217095000685566224777247282881526336626799631118163743638406517112019216485804508769902898816598213779529023109645392339037071104247241703754272098363005779329265304830568823535687462101905594000980158655930817918990204809435399458491904778353470128994130096774880024923330896703692434766091070236908555324705580717622920838463224340306921068443926490331402783771663011219157946479246253432216411593109499211114937391313566044300598805281272458042915442380098226479404968906399881594491536236979748960609542760344702012824410341885578930431886554171526359735895454253098808830584923825101198796476842574973411135394571198849258353421472543555528199003557125897032665007562878014603833867409108097839782738405155669721872360652179550111999878201717423457395463828868283425285675224979750940530774459064316133579244139821002174511028419227294186771120893128224987726060604574179921372599287836123395062533222356468778525768542051795102623796768228261503834754603917631087049774026491450271479021521511103488173272554891329435436616144550606849874895344717266557735759386961757228987168243573057341917187682454665123327815351304183557962616278791146136558272862726876597605075784040904123947229468198801395699430881684080110658632516361052347174940794648230060312610709012622556959815368579693978364337496338231594387480717004715318486859488057702568212013656913627256116105699740843803538061622708413865959130259363853916454899550546551574542920726256271725639027862052321473271380684994017457284763501443316406281358147642117469665786169671892855037038438933635066055389855703356722050321238304562985918983621912958215107857776666406696712747386076282882585778197992497368601655220486783228255840864733732763346644488848616090964998704495602124853037776772445288095557124969443172795607232807857690130849932478138013581603525196339871660446118130805811266788572311038383727805932383057799147077061540669704449690369168250275749400272030421712973590773404911250638258808183400968164528938352308112450924022150836080401604124753689504707021347638291501807261351993605098295132975075458489147615508733026377951610969889797486222133027445461415263929867214642486260294297210517302739101774991310216525515012601355001729097775717562337994728423256332387935866878155143726375650926087565359876895061819488462279647938476873740475048964144106332262027160567692541168596183607814747106609410864940297004420058283967498759136487438043964259657837959390196965792441727267637540777057727484464793820194240288861481790297503794538742631199896068939807320189788373506333453948050739332428667151317583183948744333956327552582373167878670128046204085866652459419120582560034283254725348356972483687900052838691685431897007797928112049854962534673370857045932939440827768048702102489586910339843690095330596570264838501751497371111597047835096540437062622362559132684942194904465190277978141026724410947637548034298525459936518853205169928106147814445011857501946357074107844176338224809564370561319192403691598740567911692528054697639553834649872624730104058152416558151522662149514449097302854092137370697810608301153360427298895018639263620888021310934325598279422437514682695449307370558355475937589868368049337556946692645052107135121592064772265159400908139174012525963782828284349866684288121133989287287265183920963945636494416196130386550933332689874620926507833877395550506556870419461727351504401934394391570414458325780186267444338874937131532024090079629104568850356165525949096637009748198607367974817605638604613977517006594480924651829596611096110566403738353198608189351139057632264035014413231399540232601668647029076281360477314970938253011205910812348130989131603372896142715494513747714187687704724879095854938281111586594076139196953872320027047569130330337462547163969086229201159584111417698396828356420731334720891777579973859223568203113331255114465100293860965158991075577597472366122817710442170786195216845789922215589973315244461348448414818772589442246789444116811051957435842485997575945862818234669354782185310980463098645973086708488385551775222903880804576388136172068123020786261195273359660172156464585320254996198200087274196184483027012880755806250997706333121415993388141681854677074506093112492754008434763088006894882733335811623510815973582104717596383420048693868994988991216353715329053664720990485624817780584347717694742268110582722605881080969137556637361646483312832953110356048251508278661222782151481495445847819311951232372300088290063993209387893559251235016686943637900438769829880794962908971283849993784958122206762865093462752089552596119481864504642539057713928592171101091777951395738636115233983097250639869841262363902241726485005134077692704996833420519418145189372070552580677911011418222442891939001224257412897908335536385178379326227798549623477073043792298161918737394996965254985312469859838302217232784560608260976168955525166636128125001941399536051826366981982944106316533882285724156169646035445191633515895555921321967866119233251475370736451469616392049656272454014137952289501161105953556688971573041893398843829534765640049374773086632786015297275842767312457127210039977852683765169085831072312563168988700453503009580889972549340453986427440603250556580700249028456301726522253535313648623359718797356518448600091678885759425082106045061818206953193477407930022019572691911368075439104793449400083041327076608775929505674216079132526655484529821773008454562138527384968495173792613175650682188885431493147376978968236597722235845367967392205484390625216497822447953850918303586849915308547213374949190682731207690341848472728174337180844424573466029668501775965078230357182335692079113253470930187609837507537035175960982245516631922134350091541765825576527798614606858482802556960515725203155664084521245282647168873111967945985267642435573377046259151193600232144616548663664637080398284012936084863394419528557772061030165931270366499302039448973669631220134385556973781389447828708861820595208499828990122686873110222139688799356139203824319262678081476566018683719429041708004818798940062359007138762023522885318420289507700242913885385736586923977105060517450300614848326355869694152898682720217637798113303499774363598781444690987833444137653841515751371547951123727639996897307654568285121862349407114892009448652946614389031032692494130236032422559344976221357036415350735169908133610464429683797901839881448182372063404141649416252116250650298184837715652438404732847805242566413771127601570094562465308735151029509795377140276369451565255004002039374081793842011732192853772807192282897507155898535825839181387906327910545482306808065923314164379289597466350651990134410390550886822225360629086617908173317973797889419114799353009152962780315730811470645042472385001208229988431411579402551663650085869441794514947973385434073492759594603388038335505183207474784510467078293615433481804655431166178516623442446378514402477546998835355003369046893472713961241796330593788618755455554180972339462659865766792359240797987164141493993871822465478497554228258003231772259024467984638658126779899525031544702230274455326773117814619411426583708942607625571650495382890236798962180298674994868543263904659558550155503549423027531619267837094466409876797107095191570621669179835637248273672887912914961101771423871586135947491008930789760684544469977451381429303501725017103481202190627324449121221514716668280457180074446704152138703439726694777138143759476782174347884221743961947414277078291738660973374627907690603244514270167031454203837701555105452542986452800077707891627455312771200676418590981685671932674660677741723084759483685665299018231884357932761136336951473443082720700653019808027161633601485876735222966378387929092607814234146283284293692562839986122846588858981005456570207650368690828247685821801599911507516108622738727329151467278624926627772518753012433626927929489450818267912187225323942024423988307844087946327703284881726568395064093666221706258085342364622640751336189269856647328215973868428317948047729690745118912461833452593517280614980268715227642197864441305894694888673598947120272378750593412062706750139543786536740668433549500548872471425854436421147721752722803655897909174010084081643711767688217720032822379743096053352623351982292256922956533604995101630778132142703208783650511246915985006547982208268911521320954568900678697271016593423084842503270329231462666577405042027920851234873299214959192464666299250149140059223742788834234345437148135325481872951585459065827116726910136836332145786222285396151120322985168933238446571040922034339372362615823768117797803556732926520043966948918441823138390298724190031951391788510107664648216817151843812136466747222022578251187494523753405976165597515869618809496532810771822302156051436474496924220839394432669293088130877969470744853827587061488514678777011866925112015444252456867021177697144941799326268189141588234939355010189020778735660100614092638752165028576410699734099900738706702687563609298358238963079424169534280648517505554169387660784029139251086025039961751067868883096853391730907523820966294622506707214115076483250008614976895793821930620692523181651627006622907688275872660245665973790180154514290068296345747224576984322423189867489637973440211818437185401943693734386412003943308534082581743833185385781564729564717964474676571652490475848319855904126669839151385936280441500925549207015294352918913665840349373875696611333911121733550144474829411562034237183174377890040238768654110140088161979871715329420129308934767154618314138675515573999331632165593715221917039746928552146806994348324353499247321240419170222354065041427899736329962951801983919616209478692255106897584691847440619602997108085977828929098776942848659553856491135694703115099250923365878383498515083249083229379545182598389696260010642314639094301211221899487496146196526320043604335163662013385844290577275825655872049160933801237583551130340134253936639574538247823953869210440969241883724932127906433333140690664774173699907312139819642366682130281087966079771620044847232699547198604183421409684231161403057192757763485049106421112322566450608168824663783381797469922112324387742414295052324531591184210339184633913650513528456799771627940574129408621525605826634647970516348698696932103782933997196094192670213370771915515764330958091730630673900945275680549854125469716501341323320648824711700768753606801952545231377337566584698243260544170418269473249497331096935539798405998251284259454167395409698116975245399299328074106400373596473092543244641322290838016478540176372566262283484004288311861232740082918178372851884529266118688439276626436459310413721249753136098547075019076042052327333377747710439467527093678295251582603069972337148438283707946079575471558078185961237355373890888466266304604028585723617086047076184125841847944762329722200293227424134647644400079892508784388249188600206606852351916353874174347509776274205788485060145814860377676212061912721087946064768262743669269896697497374694133516087034515993165373386197658274866509939240159666198784585854744644747334629875010470246183872834548297548751712581708966692060221281613448168284729470442260221123230856176357749905193718573609713215191886587642207378986891781706251181307350394043791871528972270874596167892424609349485598968097465469429132579107775489338423620725201069483119911852815758634546542776621667091988124283533291902945366858918970467377142073969319758493001865711094647049949615552252748341096193978921733366185586514412333803166489532007780831974431854664315194694185084792675552453862169473508947301681758912577198514028370775777227293322878652096258338716278691123140460824099940048487385289272255308471674601692151042238009747785154090735467473088106378022448339838490076220354479261252205064416322500964707424134557477579198847087794449610183091836014967961689004277692879567785051425506884307031823522691449102739402355125117324267015052044802516329302212632659785088911778896608572074200209359652287718786853932051420745602951398317640102139983967612352016389282089485520268641446907047159734106956941003491138653985208435555129124720627359407231155039434675848184644633422787665411988192580134403828084617128794179894056070414517720525080202950883112090347631466436189306710623786173764612274461678802321217876427188368844631153281822222957453704725257978399869868929389292031267932305054977911240843160959108227870457348769204202736418419759035702844877733842829372564664896671043318879595890962937459060671014243569158301556923594693078699305665037372028598700204135409538825423799177463357666768196651756536643579450318764975407965804715418084663355357036156345188365591726424583324275597884584631104133067136385873158168910232491140024731069353131221051812387949720663538303834624935190037562746229864189645387965904877599737620834491650312964662827899783108357161620673695195541286814807554193226396513470299231869649740038583324366300178222813140772489217499542878771015419190521483801900217273836560512464363700144381520484301305418002366257628192870702210036893698899129525668162435439601248175971600477583176923353607723322497273731040313463737625177831382353518347685848461579602353753526788379405108803259925124944986269441190187114331451958126482870339259530979016174016347113953469467322619431871273451773870720370254460768043154483068291087148067593567903861527914691170794959824866507012443696556208653849796564839421783953329592748219181694634259130932828704180876417664780515022515469002943689037316971071737400015705028258408722984678775973379520978760229840693424255090988645058052154946427100115153634290877097600764530374174829137229728791326085017189949598263797477141433138499153640593306847173412404552624955094773297705204990293823854247011958842741503724675723325688814931947279267888437587379252818826340303684496003396565376850410792133521191368602850335518873545114922761095182784233771712985484332463545916784746664056588943525621604256382777538499802767493921639482978536941043749054406387855333280516972131570635109535871305331734037072488937258297499908900210166362786831348856780025839251225025474343006941250580761427350034750283290045541882274057239442308555703858836178983916963757320920959157399551402730500573800877534760229605953721362493442420443700073940966443117388614005244203371598346159261953603118381959822316522463273373449546748511778835344992297769860959373797284118809932257121221532887179239828916274323451173123395783135757537119234216991030096786125866052848891157944877914952450933875884210218812614510824194493662018140689759725191669227324075200463291705109305662445871686014026738540204764912506481651947293107785662329345161627327170476361343511121146292424998563329920114395089001437323503187528812091914179622688508881659533031491754128545353551204894484596577303635471845052842029788507002548254120090574322104842853405431947662853881005521105433817319685667808065779729625332825043731390651099891872438728270745046577221919246469327765814495584017313802610773626164741754027524652830991543521929468791524673574269871011252615899767735581037774332444567934160444740828544771633625472379548795771294764507572850730613843509260005485168988298663951286871350513298428275045543449234648340965225852786367746734571198711988949036061078394907371194788016476398868890305620520363774483064452847754807246385616757166125251050959354766286019709797172260334766067744391170432294768673582545381816229319195796020257398251134903122432413864907360208550069140621002787762664921928236949104426440206675957277260490452754807660617230167696640793674814367897296672442355927923388112260030829984619607939405711925289524891220891119264035356564819188161644455590784034685031322406083941792554909228747470533620889405709444455292610203825636873094225526232431154830267239486165328462980865530073977456302254695767952680283683762132938168377105958348038985104871191492375070927515451489392425290906501557997697162391882003932284391000832300532471350543456267312957867212237170859835249549051400025310726686853775596423310039534002594705187179248453461706098260337407547471103344429155544626046669436355281056580325653106223404031753442034386761737840371355617027797963452796741048989220355146215152988840263116844745318527711876956472079431518735551456173102537807022558327834181738936717296006234601970072516676761090560894153334496063409010853530709250655114199371467984911666980540171268907373879864681669494160721976281557298201112096255519818496684401534647436182701002213339073848337795687797383546853087968437623511413816792848872661248305603005683804022314116950349734123979778579709601617500255801118740230367431628257110753796085464582483903810178264430667172833332483704985052173518561821699958013633570013818454043076493752630259783752068930366026482412192773836506070646668568645437941429469998604635400977684698629639136474904494063641258505820112351680237065309038389138483994576125609504428327555678432180004597017114505077860011751955796602991072261586119570469643553868473160666259839957136000006801348889231237643845606994664809553562621193638651141175409105421695288586830367944048572623693981095497562481750041243222874093022171043448342501706952237416250111518568693571134459888742243315500054524896307696982727256269897812517628118675769045431127533579238772611230055366012600312536921315835905993030220888051100401601914711609831346659416136808419213530159283534310169221259840467917226306741066084256328052170261015013272130919574272122328133020966382702847873492898467396403047228002933802494170186423906258466411507818841832123261796494600004749741880424637740151479140296204910061027194562314606423807351540316811550139969275558902135316152744690956688708471446776139758059598717423358246422228255313932688084563474367499728549232931465486362956395759632017613395276425532846944769082811288018884988133309268069000304738882091300050963968048815010044972230776436198748562935542366557226700950613847601502156802471033425807043778090849387840199712245609018113839677262040667667608287150488508542577927166862467743774863554593961676321520083826429509945819245839854386300189671868403045618055629988749271535298297047348622305554008066268487783222713202299311472034811532949631834609472283588456120897153061044101289645390818652666850150872698366967297869940987204731595264294669363047763069093702899124753149422140504042558970187861990490440874102150236197497832325282729763204009667864291837239152138586566884769927232677250402334643455701165373614356920746931789834711747716517145874276807013599543016447384836033517788677415206530681256604183012840336106727895056246007049094267969778718514124391140867099810696724086398561978535603606588977346767283232633686890479505944337707734278252620569897267725740587552254126580503791102768246638174796877482038788242100186241685253479266203015853267163843979357331087007922299389265730566869686496036253473666905872612197230035398924867999677963702010337478106874098821765987245503449586350904944879250320131662363464455869892292471640839463573610967743116622244108004539834468794310764305672320201832578131341608119608001505936859235481267122244422170335265760317136806637001422187381840930885068760601543886352948601862329265150439214854914673503694303161981600330096007492985526483076652016340479601480676700526105385283660336956702377271698355020439496155939192659167147488932097608151333945911321461408045623525226893557141102489961327571700039085112271990438109530687226031326778196966173208056035824499474744392067320819355502861250302326026098611442554331806949554005103968263538460377927002916405345955119835436309525167952552753643815088131408094969725868653009390745217636251751684793576873281225565766636219012993932836715106034809047460119225093677000417596341240982661251295363746526227516770469212411876913778686981745185546749887097954937756785841480864886842757609032172769735998785148052332628104022940005894091894305627223425585981954718093527434223401538598387909329156026081949379296939405019006139942992547153589035058094605411934498935603049042795177153066552681032107435947147321615923291456945422986411518939043102650770439236766974655373775996894472289038955289577308052453289689225727610043680374749464252387333779356878311024936422204798552325149173131768550390871469973802774441823920486697705462835143504303925162605542858049271166015858373861328868638038691338358450608144740334528619787577586268219621312856055192754780430152941897407452182219814858008549461822942070427803910745447437709036358481747930548606253125385968951974144600466056126473291705020488399201026291298462942618709819841560765144936804103862848024608674957903802340046787250001091717738102455750181385737704117024822033695036562996624228992680269072838674726674156343737507197328196590892343919582528230300775374724453970063764466782451463197471773086973857063548453254474791590173894804060735916678506834309448195356520409826285326947079729932373180061369492829275198030561749584152078915911284711160778924935327779678589121111398079554883654780552479600796963785898120680684877432576416174514175432707642158811980218568465824201072321409439072919385625041743648916416510814445579134773347762393058042866525746927567006916308922545647221129431181171671805877270682778582569609750053990626679792852104352804206644296547856354162957425584682061579639288532385684605550133488233593117649960058827272735994394424348508891810352553441147285548349086658801330748457613930016234922711746870560317777712219260486992491940360398748452328116202143976333131097263461065659397150364075401459879900394742560618293334543352162330006806100844963725968645097308614611082676446266134583253226052471045878152096755565162570516553559785981768552712228408691913211520390113478438341877899009449955357110298924998583763185116156909947855874838976158466075196061364970870239338025190405254060487716141481684043186333303503248937034781447291581930199199220055069575467536644490205211606305862021851211998995334960397191554034309034198939696429102595067379020236626249077779480126258668266177428596924145752727912400939047867938397767908175465824051387071361430624443508207461401232358663774210093406228599456219193365748161662007796589585899833906848966533592649563618685421088953372671836256971304296927433197270202951701286108534407609802459050092205920077592458538532726626979746347214042455144992943403462342874273387860817932482446896109008871880294218240556330891808993927303209591248897278958511485782177268660669571619776063178310298169016071396622970986325371714686734875561242604610028565531650214770447690044592887590706342920486698009097049740792424695363616261543415980726864796847588013367913998969732460282911663912385654530135705695720156632533160364434541933919749721583439980793316901242771482595696359744128604660378991995910584216244978143280056081934964496981291602861178304205407964183407890216048224820936916764457302997931863570998972106487919468113721794110590352869426969694884231026707272131506882845405347102267730215501634698814341630859393839900380541763864250815419804162480887164297826890039673577361185530181695636352653708868263463012786447655679373169549393982486302077423951097961636488634437457383609696850835997136733185454441520817628587273597615602776478870235972661441617433736001200448550668300923839165513044753432104989332026752417025367839208944916374634860758625193714761240126768006243309616096288478811199709664152085002033841052525378188627487828050256556683961999897716492203965391019671673368467103025077333484913673747796070577431294790988042295750563156157393057429968348800933181128586805001782545908907575858333985665019584978742617099893212232598804960173245263017450547993799429692478299489344850918158222999002562277279888552798537841310154547241481623169845111468494963990818038243666964601354041068478702580103304488440116953540816765336863917725463684119180044817161889567519867157115881851731604737840057977533305385471087595135144014313197783592152758004533528799936175119718443978470474950845036771788431730641669242815130214720930035517380528055527038019385613304281152281993111939417942729159901937354158991737707506323434316321968300148771842077878903087839339468863030861364064413244015751292091909537888656069299558111755053867395140168009288400960017420478940987286772783441493375219660268922080207208210671448224067348659785401611518198816421860450777859938050557910543487305746211864261972910711931517955934007115520781639606788401692999986189811591919356105370603924241134219792137442560824026137269673809794330193802409928232896567102395592350400831717242192155287263182894457869167538224240974914205148314016371667435510496664276291849340506451483147908140027411968684953474581748018441921571384181438984431952045230816243980106355923949386019027716872610558302635277562596048948952049123098333760442329708040560054439718606257998398843081447356256082546943880772442713941900964116819848473960201599357152522545835665017848886089483340249858091241194801249148589431796665219964696560338920887207977283839839868580749254116329874950096905985029527725887435052403845967404276950949951133516274174530631249442291141290574124349072645332950398171802495796984122652014744799343901198824898334301814449042269499308491294678294997898121221200039947159482786213414283278966504856923625967551324576446506642657984323420129744881194908048881987404259712226725925837560397369089118723546791963580955726982527502176208256250110376553252589865717127659647972781958486742711971710101971374053184025857091937034466289439740241555524174085992939497557728850202281021733006129210270174196009214655322162040867842243553009658225294919438994424570064777881277515837210341285529018177409734209418331164628279316592872214366738286294563646362390408897039118703973470190509950216892697634814055805429021351161869773827039109455134582365453837628930550283764318654792811884166380372207654143224247290110592311654421147558337816894733909193474623709112495932956600457726621373417754320777838592115344884857395025661358802508726479561364404233313215391062090429726537859586409291324435818532967849388650378161526154301579692273354339707726672130208367319211135098574876485698878180878446270234368494155557979354022552848757712597566143833372491187104719381298977519903911630070308242309363208441605559112717946130281691192191418900812556153739593793537497165960504614451542633043523399048676054517131938162708702443984813031718078242044235584617815816058221640735161456534059204879808802965803510607432321034183887875939765070447139278987240225979056654974003036290665131039358521797755584586009516583707488280012132587943557905600913631919351773498359848997642973882781724875079324122311514925464162361797117143583458496304626925905006963566304697412645704101936450615388367240689043427051971002961758460668449688312246484143052735290601428017990375116002479837419335924404640500064563467949605931565695390103155629678220914915315141940688918831976483492754643461802740191469946236332033584104470611926586534686811423030841822838429959123154170379679406834757891189597993701527006110365791842433782812770115678725077952462569208636796721430503061867093840202200380295817246898659143710083595321031990421559315690418848419267860126549210589277438537333204387138365609160349049776413579172705170952948136386433254454620408258968291855060982542872802919142329311967911100135269814042299355603379046393618700461261358944747830010001886986763704092100963732072681338335434209024145198898394013216469509320080544469968077938869432019862698808771295316800595549766283312284823732415055166407076112469931935943053277692380287145780809520537022011161881527637582915065890393948734716994528813653789712630378341241632175281083314248252355147497447207944552341306480287665198937816036188411899564048615703325229780965006272936895524408136735610586323982697904732722579171512334041663336877879738907125782772510328488604095563626353478974992986336664264227973069649025400994794820327569222963436089174028668597945549997569514227521031422139008766283008593153172764899797233798257824902413151124122056357555422798261140882161435402910244199512084529220795429382046964714681198221381699174470666145696575497216484539090056494113444593610852701798670295284171522166121694689674441138110040260302075005466032764238884401222760606745197168235368473807304337841606808217894386663909950586080252315396017669259962194080044137754379147872479046006068183658967726910759192359469008360489371735286718552716543529420189389025096001448537788800239023054987938077342874886001779792968834697132282337011563056259706974423685022545334773065721821737754159388623452996328104654607764704099299946445906957135472184936761009306575152538540881590530342243947364366730059092757157700598068883651454834592200083520580983544989526339919877499815015315292076498042661814254162335323534737318593475688891735353192178099065674984417183763017464150335606037346613647189678610815116251843165621263203065224113074045833230030460607033537970038669795307127783755583675510790454343658920894686331004444676453802412160258973663128616608824099110973038434206545888474840397967035282639811770503182979728651433652534622112557850948040112172282441783132512797066869902523612843224272306907928281108737743694296319864433295765609220170421634417554947657126869134747112283876321282910990495981947064210469489979157082120111687075283711672452369257980414136642321806272388440341381601805362142897723989811774467951640011352144071064840522560646892079332535325967654189368196397578510587873101481402864795039258487397814356076174127248094733135559723006669613171217349261579232999375352593450441332242901589345842774888167895291904972748403540592748248448795008081621411732663953882487257881821399801766143583811657437150683640540652773682321432444266148531914968964429552442744552289032216198255169709981891072427506262586809446196917345408495106760267483086383885123408856219383542951719011327554283463753180349973689264594530665952699862737879991023901895685422266775661543919191181932465519067728712980156044066510411158249353563808789488405661964031170552021787512751319648679104748687817374445466430781061010981317543536812277891152155365577368372499155970954889943744201713200339737661816907227944386742778797777594332862505115805281461113361931819238501644490781664693326313726861567086152222452382102875929828919288011855482180924956599171177963443049271317280559907814950193131995829021173154495857843334030678872402216986546597220271859647087260126154237847411454816708014992587651738907596438509021122791622965930610369815935126815720367492483857550223107176968188574616108724986254980025249191604003266536850061035441046055831933883359256394083176248889392162215581510968527359213053127997964843272726476194455905220222299043879857902938702991602916974882705250902557217193007789467088690335468614286389717969170505119081061368644216408006108068942829641489017520273213871345115297001678562683884000285590304556977808219961783248979015498524053465103144457618201885221763223283979158879694983473467257581510531820678430308226062994501394308440248941704436853928091522570035050144290326851660934242263693902865265778572170058550299231511707358553388056901878156505433191076385662741412342949625862222050514741592201007960865670267667118450581311657055162391960298725031045228007258392853263872088130536841286976893280947054701632246626275265534291541824534161271928518455668683143729420583783500192593155369789557934882788891377665841554689820406519970289886407156803471703453103088449687183776961802685180964858739534714740961977651793593058844534439770351640381950204006022188206663005835361996206119647611722114389294392200723631097803035634739115700113461041224733843033609097291473264956541986522308408541285816726310268821712637920046010635409008370012528362131919981883792797108699381045112034663736770515812552571080247038593291735240397508098836745254328616816205727052608195773959779118569787320471233178450216953613586339422782167064670225257838772747936437098261362354785046901602917223907045587285350618938204606421678574728884921514467398353501416304400807125912725423188377634002934015555020239380443431229279652971087196739080422660026848629620036851604305928186272015430477656731930379549033759607684269368730880075626175075893255743671365362207564670054664742692162697737386943609289010375993948794642883015990670756785432637460443250615745390403521718306280305174140048722644509101140702383066101550100674750081121234675502849487400228090033014286927240563758594565871113280474227269980960994054932908808179195302047535795422196698970671023314927460589767805332885293132909933375947208267845741451936222298963381656263196696298703129744692400772750079580365286418952065578425548936134177311470117259480448820814814172098856671039415679704453426723547578435077720764429934482721883138523038499292797169467466611500766574099803519454864246813946165509871875452000658061659379571814259749331767659208723703880110019305490791176588723858817915320478918141187307406329217609940716866797071550439071751642115994303102048393226516872250217267942286307576808615437218539444928818053849766024348840702485717590870724607715278775368162985353300625409645475693696797715710232084045445597896158951079750457681247452121395076703696730432910451258032256734064072019717245946994247006548058300862790822566922547367629085391090980475148942258479668706345656213630239243372732427124189151657907764937912826383212377163263678464887530565960582217501500495726475272829471697504573849761408979818762645574432318693633993665073657734290145685616328044735183567018245001738935355163512716258792920119615576870588291224442292856673839002930910208482385354869796754732818693199215487595212308650386262712732386209544153486654792303442040598330936248703484606157211619547813140677742230578733086290383469408715569488071565428195686882690900139435808546552196517925881156323422358320591039151241971093774250830937415438097573974208767289007152034010164939637564660305381181622618406005631394115332789495181481259183430963428098265650024167570337700993826132735008451754815649701701674637886587006982510394661469674277299415687376420027529146873760129919116989390583767725906463221332151640344462163443399228762192200783105433882102670215988149408597376572024267319210287147113615646594447430676916020796563561986359718176521340755905285643267079849313107179094400054129762205936340113647825527131225897426157865795587013941642506624131101612238813041929060113178865521053433303122477557216489629864773041028335035322761121974930378445683351578108969148232895105062688575222049732852773278437649183497262708695581766140031929817461398685797741725207583451634709005770067585221900574742072678668630152955632010846888400885970641837581594005477827168287657529383635914390729309127472914466159540250617690677771784260611767278084915729940276579222986518724469065961195271636019831203555228493417423248520198938088155974423899282074958708620482394399387685186379670310799422576650075704376713983159376693452323647045262779490170353130643084548646113191676135461116359543051687678759095256687247129995659682272231968083860175523347365173789127239691659711038635455845771067392733964962356410662178612047231494512029406482855695303827271717861902504374840689315878394235495199809952418916689619827082634466492821987401198694493549313795879782050319129235213772299933291482356566266604930350789066642386642555937343436243798627756530607761068139808148443865466702415937257537026233144775512972924797472342731820263369945445744431211341367271763138010069604758136248204453162366045609261956485755919991363572435329487290252101352938327810944280449151381541642637997173528606179742096994670947755855120465734439654585353458379180729875917829605114724712170484528445114189019885591988733876930440387580623473857029870957474386997421220011953337733531018299447188166932089789246080069397326608351245465849195999424514188725876660451859399929708907974406272849297647628726695945871841788346718252665207844108857164628085736963270192702042594760743821666298551333436135238341408702118778756337895424084017271865149764172180430559494350497470227527271808467208417629596516563476553576054890916747366397582041273329467718467311788729978532655300956590111611555999755451973654829266092348584974746997120823103535629218900137799346164158503110883490905483576301805891023763439000601784668379130433997585803278447550304849955547546733633070169694396972802814260158353873311601618061166084271120846264030612788653062512140425909487222005588003250747177129759626132942195150719332046529380292534711369185430866489791085956488846395553464288297522472762561088365618259300297029480889526349947000562892532556229775475386334479447027145494417052376198595204022890343760742988816178309129626081535082248412421652075122737648928721066128508587983516439800637376043717287627399971959689034110815922883015465714677696996360643561228240865157784282799057564356706381718288004541745368261494116227375668713408867288253979180069216716465026123122029565897187795845584194322686740528875128596972236403053898687450610252805240441077238973905285795909818921871673368396339133283500635158958454847819417337723234199645242493799733787811698443040237383538212105972589351116183048265871297438955933823965559093250214894325990514644630947989635551326819751452626450410597799593448136998744448940939789223238901311163669491597738084338446856296948196575864420574403114876148303649667636090778595644383749210670730656036227858411139266132672717338592424370069566245202817933936849646423156185645423286313250840540136597207891242596101026310870687812179692731615071984338253486661111270287549922018257760396626720719832754168583086890815136365260282722991930102372786162498077587401595567101177625863788764351758185858124785238240434286255273104779736404486754593219339372532026212391972008610885935031550488824507725190885489101701129297888944860885967180048194108139865985064177212753778136323457703818184572199245021412262014645541592525825544602390302131730809024274146793763663997589492801886738516608787853894805799741598585549784217753166300782987080350199667597847998778370752249909509304033666263892398899899127058379769758421261086140008550364461653030506438125162417299367800199111443479246994219009446825763010229740047591275316365654553272477089485212159365760887195098958211331169640684679126473176096951323783061717042094824100269746104518059571647557017300007240058220094452737243445509350211821418310993872903128141754466998696669063867318901751764000811670725975057504635915592298233596041082783808627503401896034093631158062026955561647667242684386727821654541811666909772166682328539352846607642663036351193430203348665693009558410374214007586360160353703479630342697303967485666549333283965987961508689977106880907000013920339784015370242654354108318678918698153754233449547821357678844190571308700076714857324032538359729002523494590172637587854269687358747216276316323847196644591160452675837549918677343555384353139083637518310698865184778539604581227324289941993679673625393032338850099783682710791463081254246305069507785485194230670934820106866083376578050558392946745407494167601780810978030222121109561939238877603811401637787486654766063945261434356899781833039636492461588628091968166803803352036925331450911875077160419574475505547757116026139305798653085968210485725821785910727959888841358120370034291812065606590502245171619544979187428976832171953276949183246254361664042625331725504931790819327151824736554676306244310478929003937753926831265897794788956441066423562687293642249755387982581445689811265606665139406850581823796423189146053454944954760601615274630144778802979141536348858465836146628054750307357198813983284557379792004750292985007615515375894543787116895626289878103445342447521244556106148503731058253432309165605292684875452235870462764556184011309619030568829983240179838161054987760947509533712692035230790996286668304909663970316936347861352239524472564033725543151997483204416011145479610307979932514873434484914219710712318639276160407146213789028589650650896614253866268665478852185593609916649229979041833934663251861819922956399413823422817005374619496949464195827991558502547960495250496863514625097332642274201665996476610262910132475601280435342279775945209810260430119293092988992203803181135438214547446462108899446411593504762188440702904997073465127803633907895189185102803729673214238542781182927825305687357935350953939844527288671129262442755907017231282720642983932557934202210874069182470400497367404248828481743818286047618842382930462250379647569785074323205650552485860490106228722971638688684664127792758977038805013704899635014391801985455711370395003451499149038752881528031211617608651423947696535293055461336468002091304881411644156702090369103889412435898982451401662414911617655256745166755040619386567247560631745990449776970552253258262859541383540114120955334815799015282739733839858536960029660147236129020879206091170086057900514468346880850314337699987788001626185732178880221693702386061927212791386100526798561956194831385450816488002392480964876546573632173052006092484515447618275074178314667969796733369236666960940415445728301058772574872825589438672937871773065215592945735531943665041255111671532268497993047644843089760513070861581189416626405779468973081362375651473115775248641967787616457762219328261315998795562433163097383648738668785113864899278856975261394935806938255267723677331871182164404341484186296502522487738364205760960803724471238773688311051050434675868721001025508518765278791019676536556282804435908972692975330049372809364688003336823582478372015260128087844817519282693233008693528855361819174968285355193785910779533802929279800476219781573049323549472539573136266345789359182764441835290746414302805636391408384160334901743497905863774488691952082122331698935615883171682696770337882755854417612446246778415072495808784016273192182724935913921108424274654257801418554295923157892051103985122210414275450222759271059580436540643547180825771505001330538760800388503838184103668644026300854673500657594244661393614491888532102201784082886232111445808006699298028108101384469191686728733651905241868395964173975160876613560886660054803556096959332323120526316739779469635745540596880744663728520467347768751294602623251362128754592826919252035617963104057747019768997819774298058266472494907897867549576332466160914730499951329357604908373937820912737257313614466005349200310630533657712756546265539162274364942984479385393728067603916503024534052924683128894205774755578662070656266009311649779549188894656309238992543919718086736161475549501075392202852360660854755927858003006965411345454186803830869816500293495862990875772614584275072983340350103042061544172482876227128867456332987879811282320215744292241405902716947970046597946677904877332199823753626100356184109405791435641977463134317205408596310321600716118765773637824305353137819112727589224077874091273095594338058688019322287594246408723445314586830109126844683809700940490185810355540909242891846022935862277356672752985213005115962833080956488525126456823030990588672199534945945306917140011379579409230867336284095790152104814810158342730713089033164452948012872982498238307293866982911336820680949274724689387700559251565835954427899859584968889034297163028571033724219267720259277399853473537319619450346801524976558207208698886276223959895689304826300872920875947680125639226594451324426924582116955117333575547805618816605837461791405170593230938099906006640957782770107459521330825746173992442779052799231675201116317172848102648125580354819063752247536402492051115365193030014863569167616156958537484940131518465504365938111100023696547984832683047010964237353685613267912345671524585193657703307164762227672899701966040550170913773523083395843227635549091952132499296400242858742975275070842177992925552066253380033958091895656982191398063697877283810459472547103157904443517188811091311283363791832300172314917616658288598561387441757366006304733449082145945725772950727075786918967906662351327681943130740105360180370448303862354133158639081141266478570848544445061115787901629630451304218470286460580046730886952996171506542917550711001780034013911722640788142070155475507568401637129657784439841984676085947907178422786141410765942911571727665654419889254457067633943443869761026704026847094396654253756967636209861126842619191150256535938503722710431334953023172643751046596468202936257459208569662379273663507912080850751912267584907161300128091361406625643180990984520891429657258994620539139960180531017338397152644844780986850150895443838017109341440369311108558504016921700996347825194778341396398941893476476863323119846883818336419528612207291435162925161728146185971174771572466946268957224190557979287220483764470754261040767767051275785948678946179893621957839794184317759345148322906349985769534512503588579615062953734091261531632958412557922861719154671678560757615740975156109547320420442113608405963190559182160546627343792235779560940648970648201055215393658506477134474471826741191005663473920005894036960655750028197204261628414309926401134154923989744642814026118820581514115114890593454014929293053125683008972365682042879316350617428946791479047558532341179173203312288412839315596768190701089673982284190200865394278144517821851986515563054214239958696128666506497301975342857209015876082963712902129871975081519701736205338028245355871873380505246612223830517763572199944901941623986054744617055992721100379146682909269930844320447368241237531105890552890755260702951884000775291058608322876600778250642293617603664837515779361066610958146952626263291581360504515782406274902209085486253129428497967461112675683176595666899084655265876485100285271848762280127696656091859537575560515596864083980330802686987592898723845197702616571020068445871208148961450328400769529009935029428259284770840248928929559579853605475370400068677295660925396313208300674598700465358568726158790411610104273434611940382912748617281398320329762013325990396315093108123022063737380606192626245200416914891740064094313608793957752308755002606635298607121018166882052200287550142973129992955724624072445053738618385757964603420507511461727764274470095391733441002152591380732239131693858846695802351216064650819282784389969249830268547593943378472393799006418727399043249072068194898655583719098419657668793613996307142967118180490805342988952190106121252726103029033900185015058357434215649335012588972870699812583924052090586321757460141525751272574728441054446897569655260457571490391410031464543323372476117993578924236323983522179379809721495134480490640314150565939355349578732647365878154520857039368538890718052846902346823038279404844945922545471283393893344776544411316130234485053922444165358826698494628918848081151210528727045195433783258522315155091205465485433414515807761528034887957306782630674953928097473356899136316145593990319470416093268936626672413818657104451659705435531048282315674992322190566008859778786313659353663146626067341527803396329097960703933289450845432302953953268107049674237472670329500288482345235753459381449331074465531932885978302568363648950946070465744143810466526169327238473828296473054366873672628207504833434490286865911526932288847187029494038807893189757838882970250620518657880329473945056754047364367233318810407176997915095678206778180496253485595296362199867485072206588590954708405027422028851797736192242143030569740687344950724170062012749097618861817540945448863643810994044513978185717526322116877528544361392499467632386266118744647231026952104275767071211744345588916990457561125783288222423516347084792900505879590480530921608336795882408034280604728418673965223913196425097011539233592666699884768272664345111676194353028888048620246153853706109265831510823002842009441403663599820126964139132611294108006612666792406056557855228454723626211071009786511891549798182957784791983894721993621338218700969444584685492883926793490713016440278407398238633234787652503997191809226987094738679359678218792986930429022082177299386595118832515814498616298092670611203009589822337255654594840435388129018950961935429211982890041660037054790652838738896664424508863029046126920019959755482684413030802164685896428234133747611479360792441273281549434263349647344855144782985083409536439354076626839177705581495487507221166560562587568606456023031806205031771433151887415221672723966522830294729015256171388225226228388659062805801519917873134013370815021672199722937025569306033336077215020506147958495380903977146057412250985629029250904412028453286226535379706169022455390063072803094615098777850420371130948382735149523754120516302961413322977207365181679558573734657244664974368331406989340618325078556300203779853734307662120349887587130099482939896972467088659479881579312950117141312606001583501290691133913120872561943575177366430394427769137381626324895732484691737499962047161422079876000810975143539872588444301112378763525251298423494214964127281592269012330793967225146072565133681946081859070315516604274586814091542269259243770931660872920911194111838232567605092356957207882461225566166031687068940576356672775034639831911182031014553911985653166189159835368456263141727613554864456259132455048097263066234181964798617153635311344570855119092045312139471432419135278056476787684423925412706560703030236966694230225865746665965121115449919339033500388964867920716651544266440321412313271715878310224320171645035341253343458229677638743665690221687053230993082842969015486589016126110541192871144903919297009733138276230630126976631284338203758431484769356035555961392736740852321258163354590840063607832461299461249924867557194222708298932602732995499064722442696141524903001814411082371979608538430790422947281302690416199724631451886360719466442922215020262342954763364569993185404102447877497454445063820727334410976508758905873752890795886938005035529154730889483827669204779552626456307203828073005870410537932848016110307267964127181599956388916770532503578676251702072782440489803759951672021480803923479890744950975105430150822928750446723544951005027227165014906839044728495273230576970921424649938305071186856780830175531133501562773885928487821104536799333924537191196845850955857880902904679267777394361896363729856574889962235906084476504854224358568733166385916913817215304260550593889689706130284595609316908843520718028335209648025235760169793283042849852448138724890935237423179827710004318159684814290393819948511305220580682091251209999408748709153608124090927543979314801423687852556805118145007855967799669329527626292629649814537053177279142850335570744613057681811338396124606118837512364111415519432862020540889564618462310445516237677994027687186260554772847144445078297159168327554894297489163592655977109950544438752830004941310642385333708328537956691802501245195950370876872591555008889965107472455962599332879480569892390890986496150464187724537858756903047604239618962109356844931232135037201891647578417172966144336437127013112009221101655064702682854837511260776824697370637554283732387099127667612236657002458141630686740053570261508996846920281115851221445951228684875065032594347914321485425193592991865495895770839237049245471885849834970626843312434769164864946998483736461938751737088796564432379171788006197004119040920173460597744126370125904774746122949458045698499553889042761008704590197625700160237019223404024916514714337350332061663960566893111383367289228731274596978301856890102143279377188166561256965966838407586353089169608620138114429785364344191172909412904319160196464218398270521834355655967886553982744732452655887635731903739791008446893154345706328853566887534761569927061906111523899908247072515066296049716206283769641124287501940172169644273931619393363584617343690889498170765354046813000307696886029225740035584043774514265486671363461049502367858942501190171379185449672670421315428703283067488355084865082619660503236088433989534463612494335113384954471806150331724931011887846159903795387550825452752364210278377025760775820165657104996566703721368556712487922462886021890668997006876293713908927722078495773356195694320504723255218092785110669611119537166742910225805361447556448492729637357042177913198838729378827131800852715345048648731721596841602176552387186281034199566416899680468972801824476845604417491501809410159651690656666876350651503110326066808106722139725837967052955714813757849981000241785077333918657536407352993309319078584537050056772111004843475368098993522057515081736787936545605631473912528559883519962121057534032517650765236473128338092667020312215295796842985417652256237193575501145883622823792208893414295945191696919721052009584050090384015759051339750471701440157165664195903189211926203918894850643473832332417578299509534843210514147622848886702215311958341243381271895636154740401224640062919661111881069987428759084993992832292580495837744751100500742609568057513034709708573742973338977795019861087776420265451420155224076489499988237368875712498408478461072764494118875769536449819762932612634123723029168452033950639803219343190306950393448872211885886636624519842476567095216002097453382848182291206597157828219215133612065062817158788310111817118874705313669647712410664418509454645313929108756216605753235202719007473199105355135895915760814706387626695036806198647202552616634976446083910056060309196166076079353243781288106835829320585864015134165084022750963424085787586317158164593136244347913114459150998143877163305251219835052976863835811761912553103267417368009547131759430342840886802171421825384162468196218780284396565267851623265186060751037578222391088898798444090701885430642902845692442750668545122318955253950849615282752272035124787104279355790662449455552354243795574898503444050580312589005095034137388705937715217508621099522745453023472840660847172178155424023074657153844413076606927254595088298908327671310038769211908804022623807364179434133876813740155126953629202925959315348250348030150437200444652703536798370308633952853395171223538971790822468041524529117565761535836603561449747396303547629093577091452258151873039227918009617724073979947885725644546720820073552880231924411370858172574605275221581964566244656181973367473749284656104105621628296524281311671755320952827979925099935030866451566445651828743879703397209828340711923230936622102890515311979710264659404792940063235072872555068479409217727014344940797356926145114156854295957678646431179986978289391604953172571901887781203226141853720611666701821044710529470514077894331489629996806579645324147171796301457126379452723895537505785772317317134517485150594420226078753334531597026483410045911841104045535901968628738926704470578028687877993185711274926402912861567654037527505565005735688443377775661941358042058273708395179894741020286543475138399084909217875432653243942204256052507166237924660837185616124318313713059222657140984463858768637224194335298477462635525177779390168206616802474831026894581476609331920076281322644714854316442030162685837916365947570336837161794317093252635662414732978662155240636228814384777012171274360496539055339832267195072943434131382300917114946013438192488862898711504107056166812700514080227211334135551830289118378941680215984644749388281815791356338360040239561489819917735099122956003082060103149133719157083790944905506303421481347831639311084687101882775663577415741691348609833535108988735855810919320912216083143069600831216615662947120829241564275767951230600800385173343739433024993156201992791436315123768409001677783012731065097211976274478279327770614373848569198779054430243172859782558617587639072471456378654022048192686176594582499919681085616166531472094172515478759559949959953353432107807841079374426538494754858500918664224533458734165151173943349434088370607089334078194043743368478605228309196821027331571074265059031517074255891616836049299623149830323103579809652639636654421329554488486119457016889409747122315080447526180398768264876481519062111477485456567796409753274869188298817037607064858410175279157117754057974538340788213150436585544204329512916521425981788788500347834005774622254713078765461910647467176678459054923654006176422820061654536289280222135701240943415419189092527314358347403216482340108234092763240215100443031725726369014293640203585501142660810603133284597194510303999350728660136999715034365476913642222440207062834484416754893956116040067842952230223074238437044768437304279846741428546367081513301989872877412979884343144783189623891689006815291598567915218670536684064867757470232055826792593141338235795162882214250477895132158952420218513644798278727754599662696565740000866488340639455575317305975627021827871512169568668479989807985796505816892184292281615426973464330515943344790007991697827798148864754733003894498839879473083584408475753836861367232510168664297764248260969658542925950595853877741177180434208336482687233929567944473986010875051499822102981481205254347043466579076259957696684762114500349140330720139309614137030905576882739441739979550741090123508968010075933564614623099525113830440098759026496349315351496319467094339666970693747011509783603286230041639563534255131377684849239960621905153324862491312385419344582026128408699217293876336033367602821241307573611711922640244625832703591559307025166087800014128262153037193439575691435319084359559766769395229388383767316829170908065971233264773289027536038610440308286892582578032441569266340992876390083155722591661644645076080223044634387917934752390391492254545096080634893075728712655753983912008943695863275806282792047332266748629590791723219411527562329676587356416694797450884165263572623897389120673613103029798610487272422965123312112054363112002276645674633364387009476333548436955594942930330300182369246090794239936482289465195878165966820896021306495162996497624419120924308047504941639860470967955726178414783660277576828280459422594642346399541940688972085547394294254257413694273572939045472416656298411444115520904734621471302511581453482977221445349390086965335812899820916958735416304321488939918881785926090244646027501241528091290851700469120100679323913681678967361998196398958742091242487454972352663159238305884230703038919920802519378821820276529294517166069701666237294693579554550324702522609462675912417261037131146101466899795999066373111539495894869370658163974467673010890522497865468156152460047682398766682343714900019540243252843905701952718288644314403728187085991492894265681235134328456617635109254728818297716534501269648688483586613490551296427724397819867126230357849720979537820650954932110695427609360805110143998233659534634148925232120405279834916856219133850392969161782534864663509152406270509837881511590917091711262587819236268435925247233933179611558387032625485661212350739741040992809258081980378298027651346847085200295164273740226147796756275430571318058124874796187343623312119717595705289277000791766385229385943990334973920689796977299030099879677483986873056556291140490343777695577432969942938090502944762515752040230687929624500983104192029534146946467858206737539602035494119883946457157478284927316778310304552766801782810114273718125162497713904283156897596478729025925924667440907250647547814167317881511402757424925998451239434080725227930879808482906048822111743980315711059134534077415259399379858667197065295258734761506419982878776241792436426809523541648564040695676803620756226567217748598338120675862171645674118308703894659505886527915437463535240529341514569532838119548278953378605773488894073827671729329639468767990755629585738912128635223193956954971322386973103738419330609619175331739010463673338217880828870882540042045614105908278464987308085177132429306971361010928047971581504399751334334904776422963316139918129502815487378950464023167708511513037928396713413800046054657487011372089662845393346345553093480568878229797451089393472607573916405396549873541603951909707828209552526789094202241304104980211063157911458320785083874436369249759472860875486969906167576683060852116068856851538254799663874582831049915004246584491670746048038669241023652756186701337596184848933965826445159503505303047298157827129183510346588346929575683922476032123567176790437750755588875164891872140708458356790049364733735175887936118628088709930138002451857619453800755155495775590611341456804534025805187216978153370427433225885693190178984258405817266201117479637468384802637632112275872892145938628326177321271963844589565994234212952698709411772088739533950967415376679247805571667309379309330736657442291796474553779604921259538631544068333068379573391854771051054226138343969496675409876705298009947182221785486394277733290130674000600207120711696864556213967625724830594604701557859372892026464650213828672119451017101983110229167408584766558186036410349384909635427010263855962444112665040876627348755805504856491486262490266596641643449798266640048283480854267893171541416207870681389486636426829711780425952873720549400047277470530555277020014427972659566579242115865467117124745253355786993834787257706154073621819983612067250193035599003041350612313897425908582307387237302600276796385015583855305025061514297722238919252270530761787995205767803988792189691911783772324146163622164389678212256893187856002669487640434284848250252746703192660214823293487403345265839321110354094447268085397347246151737209161961078695532417766368210999717800274908333088924245916956992358543911164027499200026073764758268235320503305915026247344070402997093918459700543377419795105385010333806591329525511748904576675187895096041680949455510043466161862679024110654969964994213816967785933261566705665829247686856188057359153507120661499380642610938816950610025740772846802132676695083532653293537712618288886968616530396866006722174923771669535535741499595367213473880580524048361973125382219776276785979578433235451590257755159172509676748591326214531361906647207107957617851320721184394158532829309025060246135846872706874454463817282719479152667386323088771950624947717129310886944670530436148471101047610512336512726085252166657398281318524499246219131337753115643096858227403031628285938061137171402341780133002074569998456352410409991470493509502459947022595751663408926828341385139061175616457579618823067448128023807908582741086527392110592626434028267057786965281680223092497827740647276127385200459290429669495325779333439201987495333855474171775592495828167236015088834489399225797776575843097286101956051234189953585933171390578898119907814030858051739604223500212506679102789226582645221236170191132242438248616253985094766269629552069395781958574400838532492286677168933156218219710999794190228556724963458449652965432889593108401970977673937207862738670665250292690571675270168232013320248962396027659940681442975810641552554234325177731652880969322509166482539661751237965114695033049312618819807836935683190477706375268477266203492544955647553525556707470746079546828016898682170618648074414013965525990977629908796863988089277145806560512143605144203866570551254920940688928433546438372875059608880341910762018923239195477315382361608425092644550209059058919857961855619825690934229846869729432748665817905495476089852936933841600899730859861687493782773322925820699331205789429850135279945459897459973406276457360042086463791222243586425789360325995719583243206658542126647533588802480166502436789577652130667076386379631825106996351533770108711530671123979534420284561728967216824314152785407854416700458152920306841606262506362544915342386854443910374366017468095897660192177510537127342517335635017935605873536069648654628665189592804976051766928901579521338109008055426783539036381528361405868357502972995427215383255964567844724781296900424168552233506125975354883641723333153557511192379119417076365957875633033092211599345172136299061103686990273244526473045091136615902372891674320751849367607868507818872836093108255372836676615985244855666162058144356885032593487208055195911359366390902975282397273983670505316978562128138132935016414554830477938481834647892592042406023456066361394530135433606438105720674079143013966155606579960830050111859598581636888976942127557823345135983880929811496521277187308112026829181162722920236045772984193202878923909903837679909315563472300368146814359117748386005145798822727496597623647030933352037053451248299373234319801652073884014115274269514784367947058347091653828377683607523378900024603345248294119127069176764439261280552937785256179182372830825034893016048213900032267658947788423454688664351826986495440124095776568752701855754606668598470865723016367050300037467993742684260069191478202153989181256091401643809623630215206867930133958323880723828163489445060653870223483279201494300404689287066168375900447819978464774383871006637702600629072508693208842052735427158520817933029850263039418618385768080886406493232547662911026143193432829680396324256441262945940915130001344935300388340427361827666304813994684890854255945002600012009883058528872824431788637721805041218726977572014204653820170402791457017270148369723277550157572651605017558621786564408346843164962737785001430035427215305309948010887241166235245629109301479107483080244317674449991053041789236250479414623422968771456096317251274322308541531259955637459619812302339715161102994511706574415603142983666006308009064778239941502829628143836912125119707895106857417913129875261958177869470891467313121200051712988076181832177699159773245548327541670938487592430983993583918491341966329879371749595728729404708413719369094783336457499245896213773876254645734361034977287813637508209615306096619269375294634316900047144447483079876273964590218542750531406173329181736465219360264383621122194439749408014333810167660451703808050941836976149408535189377871680071954362488135930802320492230361975410125358457587338040483682816842154895516542176872644920430434081484029867824052977741945687113536955896140946922822206768351699578888046369293302892038099679435053584657407037486911949585252728353367563149193140279155823401970703277378714019468676704509756477138008339135418240455962044134401672482448798213516106217919652400570416223675331976205601067039571165175789745267697485767006387477378333454119790004501456986893753250573345242431456470723960579987057294027724845654765851839914725988688334726511730733077717247027959769251223182218645995641345992430126500015780467253373927231461344474956026958597005931432478202982715553947520877378711612177611682766716008007246323302057631921689876808141635347321877734647949153585197251829367136015845745255048904502134911234963141222566631316150709715461237269051837100600064730789123463380833318027233952623235700976365053242666395264852016270533113608329110124057504013656356804310290729368159387941104723433618967153083747824196028846732468018037017309712513732280317936551948107318675657676056866192851760687356876741228523606766385566680701891239702572573676616415076077198728664296751431788820120258271925544209243361217006171403984852643513163099205046142525773045595374236037180489063789219491121149459654013000196489843476182151092038364898746379489694357335235071656176324154935391606914295597432366681866727709460207440212534763017730597858358929084893612872818443284762935819847790103827990080356803804841040562001691594843270541663729751200431160471455002317316759801028685305039731236659236000102473051421752039297743177411684336185594384944407524529278211438744145334721523689388810328480784894573852480510824218300335771492201286464400468740366127821533060597790348828107707980768194615329348677841000092260966142823475171708680275125910433596601119974049754062479822458015448817903785904983025528269136894517903081874107310048573671172983819914711689596696633596478144967993000042333253001747710790437635940402502903856895107685948089100923936279157645263691284719413262722481795364511338401803707123718456267365387918427369217358493466689812860348423728759967178382477833885919797030228131650286979868473750174090738820489924483356247030616597240316908985679586946379264038449880912821255526305939979108320301286751778602002619588677667295925526488487573852330697076643121049456347408613208405326791244899056790188675185164649665238547834713249807397232498952734620396516633840814955383798760428709981991362383047449750735224689708312369341299563470211255518560167459812313594622148016652548935982745985703115718637263171246420850039363313726983018144615781166144559647060315182272835359112203745319552190282404323301648508855178347242450844332878239811460241115876146263111180656508560025565762064992101578911988264103293213425618720206756363236203894843368040013793006026131697146885414951560290333588344464929669819150900290536771130281141281448032603663268712035028042138277487378124925373181347982764978542247465614907460790949650212441198548309763551698136108558683241429842647971181476448910947894963287697695901791619669486812636267336817401047703286575279235777205044287535718125649899896214744570337367672988711930077596463081189884554287397323135289175428412082432856711585535345418477777812423841913543731227867940797470938975686659267631169360334076908878719246284205694261747407317490620901686055256099846089608498746050684534031867099481353365682385903719817507403862235837842411774457975407709613744449551952927667763985585143510391733199617720826899840213037589389221152873435293931701829129874491763736320212205970040801613702633439614025049290349923171474230577204886070974842834648675069370629478610564013628056401671730246695063828426577344975796437120894890611984049784330344258727414850774599424889167729190680401228628934195457894320847581136381868802717635964366417532859557576341090710457882597956816881062821505195896779728477292376796314246315183806477284513944053786884270297491050693483247997499218454585826474415362030741838853819676205918395190891653128098725101774477598044085774578860080988034456351806932619152455611154856241653934242190932097900908114833379481137076755317802382992835393995400997513948368269396012434948899143842467827513956593238720350143395475253916363398932858679615350044906857350501918135048927881170459377427232564851676965876778341713172725477743695423825623187448292698020201252808727195871514966566880541623248440177891993019790481877522718473778255365268424069079696257190242458673433273272534662124086679447433356204979362984959235726177817461148450203923794896759637076063683349010754225748882701580908382709602134840805261534649605486507956508810868657436530214645702198648926571389430565044470957599633806286101595604730400709777204930009247275906122323666745177019365915592317546458778624960901556321230222598152078063103937093323522099160882123827433259969052864309555710217362861031559508693087300393368450610697175866083124213390347948483877642331482741260295277556007841993162834357657353180194213410337030673823483285376098326060955914790005981440279841708277231696975033480607622394691633184525012669890383063533182017978282768127855127039237176827211888424148988695475677655844460109286379003964616091652939927242784868335358506474984654984759840064781409949710460962906493141262484345655484834203367077709138197167453492775760126912476001727716189347509653147886957655335005653871690550324980077667586911341183853908237457337283435059088434290961507479082117572107680068169845771929864706135923637065458071732597654924923363683864778520030172165292859296097756276334411322365646437864238365259847928070824078130911124156884411368806313688469183286597474344953353616588525984755529601275950819880351772956048887562616470423327464149445563309238278156983360142046773325994705374275606585257193372941811587934825816143750585837272817664323183402846256791168229443851156399703878497702973264185541671320219189517391219683326276181919436739228627152253405460307813391095049556645540037688483071858815286801027920469768701211655928895364347926741729357310578705029712454435520735790181428033301801723174479390510374593110591154667230282276225846672628746286581906833477195745756270905953401918576957997008276554541174185399441535253183080169494177880921378926448000758164267189386411815388584573786154413293649017120626058498492341650576867503569896371343903621946665381264452864798481447782373913885685514827299955736912436196853576826400420682153611242646495543462742018452931126116355771844466905701254937389142213293109584492073794839239176183051718440035193495136851413013579814428248127935281803304835009942738790554987519443566450809070731138402944072813698505315762564523163039579348653667113605237324341704217929644116020420165851379074477105711679557519704619627398571464125222944785647357242848692326910670237817470229746681538366254239847491803630364305269576457408795347246525444397816785453683241606037326890271610093545368755007246312789427347361857767324590162667346085268656415283288234091470190390623056561423367154918261834476564998637253789031188496102945427321681603011994202276808426601467262859877192312750077526490952823760526379881373925831489443403307670183170776004272516557072132380580549931632446994843882686084679794653037312128706339179386825044005412268364518634339396103202323576880667661058744093286016238304261411919816657684456348358970397615970239745996976182639888260790494456796519596633268112190277433444221103171720893668008152166831681843090627076868736839112423037659733351470909251275776378887640404514727823210388564523607518029226500899288970880497400285608306002547755013916747118045298402936398313336924174179529871389731528856920208723293682416495950261390130334906832349538568939123270780270621408822499907398412421249592046803180347602473073319362179705463264075775993795949789474342122522359122361013731924647664955720566350942558338100552998357637591365550422485175513148345520118804061790387951988944961990902300971186474824030385378948824564118162616142694801163331127843551658305625361350522611083147952535901541450504418584666692389580672189369239765022707905372409855702299381686438622182167990515354642569808675399241516694642418027805121516879375840659605131445975145346956956068936389513440533567142035625422833629061505334660127178889171822389784821024024378217176952957480579065037712546846922104649413764582512919842332980124728423794317196553900394002456293676198172059098947588823553770034122100632347541796758813611444616234348958703400659222251305669320497586862280317248785762636534056607230812852474550673241061294947845830868529113131625214506392473466588971161838411632644256027916491541690265229528087400352983927556517073136619371545357631154670212259300071926157436820420331066774369266675715188582325988420792938578472514229027307708474471240524637454472476585790809415156423185312675875574186325689890541179688312788137880499380369323272021237180303061550334221453487261710846857709286524002889234042844782952689888642145062551364097037168486371384465636248095918498047204103958801977019113626312947955034081852154055244094694346543209864049468693484858597508806101791655278252913564341611543714710874655436450618773961785626357536029707288370235125646502843313862730432225968446207553719223310605683958136679046977487356388023511543027025844885779023209971093252960323379452576515442252466171143197984865706646859788306640958914290567558068544290186202907813108267496381482385488926412502225556099939420864682885733393629130739739461343323154006471182627025393407789816610120266190848043642491611035005587951389282289180939011099381015908752422171866245735091476416692019931267445717108839942901495693441839616884521442029683697526320067272602699696137036455458167787699274418942880456871875550417344691378116327929645043561838753866502938944731920310759139649536578657161830584706468538012366913649505600491662497806425954794034819165213160834001766519447116891348092086385556707751841403441455395348022510455348006065401577875808620578893328092029979516251202497775347749694224195156541207424828238684819930797613986152354450001728909562027243132728553439801841382843030164399610384210938195673934859282318382951476679327935736363167825277917553944480722019678129578210267261753185139814106799558428004542012310477531820475278226709950403317181655372282410375436169446477757339333901741005090727454717708886237012626804199418172582528842875892069728500253819126286696934590620876292820591235107692470050597356212669669493619330497450604889302046533086081532484596718540259746337860916730571818849198310466666792987894749550154861904957054781387964708068780722792332839272210704717910978639752104952985469170615324329569123195057148013722253211792126946792824996359932576096420171757888205712741290618511792380072761151407664609035699082578667930886448459892345760071965035680930393151039016988945315427821755213887968448881597684958458238051542761277184018989751322417549543217242155255531548798307150396031446549575919169221438420569190620579640120130258868732708433925562929910659257453638809881149239641182730618283231062065170034609774588836498738382393782981918387710617028299849372826008391026350840122512323469556749011817293810067079631566160003789734982676483571481579536205694938667928134740418365896536819445419327377293519636268986945064306799141250098100179649958971469406120741845513360938778822791249782512607084693815965233429466575092321734835934833096371149992879032051853707367804269048233671947213797700936653577957895804946722582973761848227187566766026778110843316860031979194030674213549112326549208130034092304744762157640354423404606280050592350669322334656815384470451400775230569154777314725269274042213599280006054199027685993244072347156029659456671039666578888938908979934563179048490408780798441442834991099888705076370275128449816051387880209301611657791517909471652529512732723883426305464848004583771471786937416509154843002839854925105268833641834538902458231997266481946146760552331189811281011385500478115242462831054188306319395744137599432903969962202046297449354238411158393335383076177943155436449117066016495227045261624138520652164213401065266807071523442014216082080793575259866836051589304522864418446554935056156696386342266367873357923460327573200975124709855278457121473180955460519940561733131366913789259839546535301342247210218707767984791706432803311202550269016279968159258604283687429339199354259781480671597890225409932433737716926084955496047354646352529508842499869912936216668069536044954544713519055867217489128006892892325449793123165355433218341717749238984438538639065392207503428792864727358323017069891607962888961667682508264635237052837412135673186289421093088826158365796937275590359625842144231158010063777749673215263400272926016677270757380366727971459815125582599240532229497123160561951368994123551189618758777972238823263006229180658718875870832924540163935403181239489834166977015153368973922659765421253243360189092809362448854793912737223183539721758691622642663488204580299227234075486414618502057367925623494919899428976266841618123284234618335664882779795389149087731428090375542252572769166824212972999251609856573745971927878509363923891386215253198522178464969863797819119958220517201656294157695699267312373411368178453496633237194207126089511969377384400373626133944304017617277324545566987523865627842831790042892791598107777938455595924334861089418587164854527576299016080003950052508270955805780311659834968864453751482809377204827474705843556877192574555883562663092723838479307381196805145594026136038606239029408023634809390855944061808308926070060652782960247591908175725273256401313256536705867827269138212791934381476445383879699089616572090773951323848610473157913989712862798298688478871988182191586273705203533015847728839571348874387417714484895299345346609916667159006735062033795187192484230978566116376403904297157837132028567223243922769156608447236108610950345077543893701579908800591724488102071731984160220260607940896998260983421996771438059926313515238983709131543745714876667048748651987792151919929965908985492234744668933623526863638113905945817474494350569286211302410667558767237166578690318332448090887590719644709700932996682362498329498979690252142774729599977962997302836513232111985488801924231452962012750523113993583890806480622245596920303376260870536736841685282776124387894135178141858725994782876671805659466243829475886509458045667605933124085549379512676534806570674520454824319451933716455760626372650330895450873121617064603038997837806393703361732710587207921902509648988835927445281927065541907664228413036762837625871763966548694500734285288429307091444008251555785158602394799518303161733196930723272308806180745313058163495985986335334466767525252017520416385534669564745148081291309549874646235673845741035159588116455396298958099121830032251961290096774301397208933172403338453981566596390646679615753676318916839602124038834905473747899023990282871134370462046749014090057711395224884529631137786719022975393398541667879528389199584689681774279335213934291176936961103401507422030597918437859008718825113328991687278216311115244747925542766812187635978365262322435711631716305216013453952315992314179325705653335686076690248389427332629304340198459453274753782010170405060152061458866500341942390880336702507204412510663998146340845702157990990433310264504166852367663465777580746950886631293662395731462765404679433977058910388906073208112268355220886397894899559041405564414098465740947105113814778432688342262469980344017974234505288300661682442394120790215959494798549739928805641423896884289742445434072608378725354094690643216025404788824251493525404063086128010370307285694956280034270714094783306798779600169897048365174540709516453922358804844382531553678489868772379361160587447566543923612961799246033107853743312003414541919872938822796896653133897762447276330677083396507218701390814907626891461459069825958271268703278728947200200895420009651293444358531794744629701407811458004257623029875253595690632934123376579893559811239274751339313287177790642118013554232642783410423292831574361161316321345375111416178393644920779461903183082919394105253319064168611479313786074353158879871118043120263362310224195423793007656055489733394512544468046190922846896844256501069645019121912940489693193674763924409561862049996420254491935290226236235016741085585460416596545196258934942468241015002120736109459615248431300864785237648798649204531517439067570877582423671366725485831512201276595115798380078900629482140971682412324212411003738255573726192323838761933108717156644241542021085434910095951205394600401224228690554292576930666500961683043483646238177858221643412538724205922316514048454539756240575207101165986216598222244245104145538513983294163671961975809435510468379878539326947917764809539503167124759457416632723186798256459298123218375998717909860593101426207013404788416497095986753825717349313444059508236496964361480627130094871377741224715763029869014104538576800920046030871606584384390380595471617239804313657509278811539421681855482635234558618119212351689962741817444640860192104429347514574484101394600587240537610307355184932243291406793264905329299378307001295774445308739932704796735215354099049973783638951981333150805567977579853536161096792448127779939351033233046323289744796717516613474616025453136962454760631689317270263267258435209661029668173550237242896274561723454393384617577357907780748702235721446290680193330224207370486075820085466042328424119495384064666126297548900832731582041008672436167530503430440060370450693422107879738974447763954508039488218393344336471356052102218523169508916601646882006867194018702213656045220430486019503378742596139036614685665693394683888275429685378501253164303477904350658351844188936301841635620421448846500842777726774014441174973368959886413802465532452527093662135104422106162014502176423896525115793187923535499900948810762258049537347715473116179999773756161089231231543094648042244410707228023208317368950033012052901509857193821974904198892682202209810542341518943347717621354481378871988415121675780182950029073666329067260395219455496711079601610156968810649671116801333265476815504412356356539061559256793718396557145936621914986115913866619129916031730568398091252990717919305627039375191862799021718594602142383282251548332424250196909592902034727692789749175893397172301829624548321493960115240585329706264115684507946641768446168094804298331610457033029208365314274686901485682190338896634817628786138861438411819894458530765524755809521430919560393345242740367705703933719937648399020440906499489530663381359626510948274676262508277214242112046413375307655212511813839556423389112315856414663985233589803737352846693760758877914032549062519852935565582537187865617543297495886146076046460864072728817466138737446996272722615297398642198555318653082617489346664889698905501336434850079170152552476604953164363506961427187393733255237970021439148868137317950657400145073450074690357768737836808119735314800806004655194107699215326973839894531774826820315023684927015362634405954920784305421838523166757706731948782204651868374410953042036854580346489064900409401292619767755726533530780603804858278120818912873333652466551650947045586852347817251316422895379557369659122401998397838433095438159198100370852513741926744827290613339830027892437249186585627344324453940857452850305980746531465254137870202483667350622418388318999582362142561827166561813524293239800642999679780062801258254135932899995505476768512603541504564044959590509193928892967725834372932768663791054861952136932906000022303358873838353405456639902076439899473118140220789417466522583870655599591340412944694839149648882132582213045819652695244631407334233478386012141261758641072186703780976697112477418123060197326186924800209850095057176341031082326709754316377048235172961827843297807160810967310664498340704022075731410899753614326346692205350602738661056699333169741896843328235706238444504520528676535540160707013208689055380314696305313654546497249714346692121597467732625187533601135728924255989651822554956379984105779568801038539785313090504016010161669943451268330586408289227926379979390504414243629686047298723010175753526438047626690773468292773265922795323085805427904255878620361888877387689128737755119759712853831726898383937085928921986336475571072987727130745084877057644844785226420053057718370275495914224094361211229518394311642916319952815916481287080121961555555763787688030164743057913586441596928025337158583770229912539345289670008076156915673660748838714218064947237891494026953353462677148900499385183635809205670241252577316168321968531429145247201472864994269281093975245970499185753561194118475894272566859157047700585213370248998630966522685212304621001659064897788942881952900798802636535516308021493246774182936706228639956587222518300753278554752276394606515297781287703362781536218990366479638603585486549314118923060620101540590751016659925937606032350576132807310728468564765789625758578218748541105747810404562037447421889081002200499012729901438909096932958139487546601165882285226564401650718664703182756270037334733157337234453821296463159732568276288077359714508205393486550340221832400084720483656743215810243394480630336867965640998369904615905643846882566883122394388286236007163696951286238170464572219894975275372330924303454309432283747781133262190776189803515124368894992322327082985198099590569951819225612820694733705900698847501891996937906200605140638567827405023976405348288240932126298168294550634612973706364775656834921614270433019161996437332981837479911337768642220037238774751013832146083281456332569684857713534266910957594398697754154026354796418368613136590414320142622891599393853900164039777575382069619832173668267923345577024335030357424949867502130923816256625925198394800036694766238441928867927651345440792374156399700336798509578221268558012422544972837111307979136796554909551694970819412354104120251212127057360823994555599248039743325145427295798859003955280058844785168857122156496540885642589515762045305116393622311860682035800477945548566567436985754444959321910487654941522454232377127339136149020271878137964694360889025714741033623420253963822437976284068029062835858167180623428223162165391675606486317034599410692091968396027123162903516926560040252630408895678649569704504214946747362126099584446747000276013054574950427176098618690310821868950327191344501719442982367110940739665563855849395977325697961964614079845257217764943344942057547233101787888890949287459481525945241041132708976146586629770799195892093117026747903684271210654486453122851740529942797537961168579711608065719160686777494508221931199614500312266810705359605059130678782029426164920832792833762814145682907528710709342747841411339557042180624901670032835548767476614542107488720568288970081563492316878527046591892366048780445701952784613434614003435759090788146868271862265009635745882627325335817320097673224579016591610415318208964048902558604037665170573417350705179650383277827190587658431581910625433170471248134680709054803799316011281105731791046366037993746690088370204436473077306584175634182060786441336086321908896208024009447699145500907473122437117602782342415464979790771641094078126441706888674786901602316342773508509721413283690127630500201160172769927585053444728416946674138870657962261799649284570836663961750958099239519179055306825575721778796686887577445255557477517015411212773123035254559490686394324193316807960882650321862942260306828737104877093729655834193897981458717969513755526869082644618731761223648456273876144562511129027286365538847540373281876692190953542835840630221930198382421084385057327458173570218157610995789660867727383236571294716943714946346046225757654935747103596978077148575868424553198119873844415360755615951721395969017342095595169833995021418571641713970903495097506202589300772120584667551392784725615121527027835685114783020382467435520941631699015148813746120264788095017747961680144107438586999959245642263815609225748705201621509738273233140477778377186617307094262172377010934991468677724364044953059252244315379809524644741382988418693354813532756722307245799710019210151254734618484498756539091935288113220805935412595966074725040802053957217689732229573920637537566397812889065520602642357890955682595037227675289405264677123507070906043416170553362910790093461905973145418378380118922260734841764212129048202583581620222408094458916011980124653933025780378351077434132100891680285622948842439353251380496885403526167901986201155877538841933916876623648365649474273513328584346029559214458563951363773405627854746007922995466313550379569344290583626159054047772838126377356502870921093670945993316337318794762992172892818608665013806085159994740824874188053694547496853027459492790866420233967617516442831654782261100248900683832185833597841094306614730612503054746920062920109755084892476569108274859681661179607589432772600508589963390019206482926448310782792138774980772618034778190190445033115368115417662960481722279640775187252337088240006154219963094298627945599231959515386734951517532701906585781546359673545045064198224804212414270804489563492046930257311047508361431135834122993360364685990098145690603600637340406702229726525903397261454705217597682589656987033834341309393038301992079985323942035213552939244320615947240013556650150181965178814314637559107705263066399513169866396878515880039666908004780556232731400651616166885101100245285756242474336046773696494677333408040158673600173705891471479164342078611143380711563060855851220808612484231042497663202859290849056053626584401848850922851641103537621647502690293763674742969426154988786054086286693714206817820241588994137411161994796130536180773609267780224130911582601846056081326775160669598568296845806813176352402559064516329341666892623195717936360047000848783035130073393930499336595370962450675026729910438839453507459331605507738619647025822304695015527219519193535855272238984106103243173483853075803816981932670082925979496987560670903797515672942338995829709792297438864925200946976762716105802067083072210802238363555291810769037655922533848046957665180055484962456400846203497409868190114898232412782097956849866299192509201365992904036284802722720325222463431267858802744699572674625884181956513652334650371312013135722071130888960585260802971418286825427662595250155637291123253186505770313492180294347706310158364669767971176905711030008892644078876617150305577620567701827435170401150006813966070306675277123695040556852540665930523902682462524909079378067642725661953987365685594060334979458439781321938178689862067669841183142129629242952662122787342533995651075194412660168778741211612648195390745600601692634550240760204085003401928028301144257541490362240988372840207411326682835997589252755263390833534361500312187607713965507036778215121274348421814547296525090718724721216190400466930520487470194002331655436675752070443290548672706885138531665318781912045596991076455097241118040127333452410150545160928121036443102914182880872656410730285225076056479469433204463795547038306968181218563892994805322487397472574914031298922602075303473252472113259337907275211606626123363215423006878307694315411805087253539388671485748074531592225423711929675913214634311550761398074257177584415593918126086276231450089889169101619415191137423235345741668820031310951588718721499062335004351501334844797855301392524820553636528070455465108563325611663501331468396512116397276626832779373164155250670523827210380302357020312224280503146608963737122197317353171854397651982217992621454832952256271005722684979096681237677734725344947788390008337540900374671373672746717467767724310371746264504181823610120731049568306886169116635517305726174916692591944431388229473372608859819423274516153820677161465408275069660816085315288202791070825179027749644130864933089626767291855477709206346047147959029143279566069536036674486348755152617634732822629868594987993791000972261199852808000207514033784878044482708459456787332942000057900269787279253550350400399274247131942531483862130810049011176349240364361709576283813703895521177554998498115481353722279514297947406342867967135842716497855783461228921323059177658987799638465049104525767630117688352742791648863670502270524997441676638076818822484581593740401200916154481812727785593248867918565600908656245328341458797895368905047309462901510323161674124182813283479828254212565324087586170212477848853107237335252470348609862243866283330194510219705725985221835073582501206418117582359030643222686273692034822092319443089519895233837664077059137834425572742496522806644294752731260578149157899737815245532527317800889397537817625614550584738327920672435816129329339227323610849104670285704385158243963342587179324271467465984594477550393413705685554867006970706258910799556830732367701048573518896601676277145095280219901266914564087640807123461903797827456820175288104394850490722945348448437383146801339320112831349020238315308254852776382266758091811744782371821912958967739764196116910133847376990347924966853301106089582024960114392832090809556896562907343956811036079433979366389615380701976826959576181927836445500943686295270471491205414610124261472066075554284354639224294979270621554730405328869504187384278401831311241120874691250174385723473858528369048464844564399271344877160031939256355089418139472185814099048193055234826580805389897662211305453280941852076001716744714012809693641343217634720265333902721689601635525662888780714435715625599066420158340882826737283803140962350878989187419440256242401110987395917222165375247841844609952842806294561728124692129540354706961582482114954805019817215188684887139239112752409607897788645554945475492010039476558128311300061448133352862594040526945392467126414250502882036838567043789239353267325799199312232643662028136102133550897574510134909516761310007453520938560604427028537505334236007926856582617783973349595496192792047526804123335323668771185777289075679593694917475154883821126832401253484504838596840129860600494305538523972065767056454455800515136661229122480069889987513902840490317436751429076996513031191738347703815743504016901832064167868559305747368203018683252199379213594866665683613850945799488739578492480022216536781670715480889285431946839350545223153909218545516473623873332249796980293331372704393668139683209371197737083659254100963691112931160623530696441539599897621933061355315017454263924812277248938738860158694673466606876645740339569368495549384835543946209084456967303164136742722250749386849642631400452838522973894078351967236800283469035854440705349390985207026470599714457370669401862865447901967880253484428256029462106722133998665387381334937014471027416460080438029515234870953145849056598961267140588357213499644824360613913286001763214370474695077515606213752737821086800226103794378794905812164450099799403068670572654246571082400943474155522526163707462419354367295610283062792071802734956651629809346423662763317767149068227109062739537577382254946562759415933242859680942407780014130284578674298908057190491593199906989646732027699494433132696484880226890672081523862836362095397489485058684639846154045771138287100747676736744980890348749027696667809028834043156494313760814170925185522374636074190109273015680726941997394352457365614063842979364607301756767541727609719597917242671315891776372047246305099118464457156128024403724718496989244577359861519091380613526610696774770147508159196115755135069789103311794913696603209795502996631606122630748426693268654420623917286295456500053410105257287846287841898163085626553320783113667713648034347645778145760772032567022436050675266452654123282145226474548452338649005949185111841093455708419783856835487401924910357226128677426623697184612256491298877929098645874930750058830099966922874208559505310482537022121081330575034863171036877471393353847351555759682106550492129389387876845165146721460253688687106901257888902644169106438419640361870711971160921767861540648791491514880427723648630945318077526717611153952532883657898070869854518409176292418678155847460528155541386187327890880085487970156468595710011114377991597678240124861584438544427933630126569905172103914876326466803988586058448072416655685954384197222661397943105815526050720678913417159142630993771848780721547234588768109172223731878776692807311796774584592094845591528491390135680936145726464476638409238623356803252917269260776307120945977882127601435171020225899367548549689308782016044120294775230572845258282240900852451182719958657970984015840893371562966205217958129171814153296174017436215621254313140811664233883284897833953711088072160495681555967289921858102223629141740527540298989718196157590687908489663553658839199734902124975112553887503041259207807306863248274414925361651726555565776766919332667882164630471091169842600530837791278718423869238758733075369116799591432468958112422629797785542484660315839848975431785643568865039957349150896698215834010831917284530554189846518193686328262736595831115852052345240169108525575898214861599928404457964446956356121576749084900335818952204785091587094951837168946963636381161384845615205840131788636900695969530214644211961334759898464215059767975585764542028082914243992774264914879012065729063216669230357035175905309585061848249472506629141842292308078135054658600610983118881223801862779339123642869103251273196082774808035271950108049875966566794302059661607533991919969218485863508128613650886310568343106307469518695533318980024862190804642639294584815821572187355310924557805240426567045751685412513674978634983759939510892066050707195861609046458029941202615839528991322757007121912410572543515592552010158624047574512129371259590535983741355582331533576683720102756353764139402072842345438587671436197366953228352579867368969631840127162022217879103341548981203011457635453323681515115238463255812727929764151073643047649850531933306032106627708791212454497975924389177399992893197335110454040263195071555063953270399390852119492023542238874846764893240646898728811654009077216412048722443488654353890161298685914280109514072109334765338176354435127475751627721173907776156866062944995099639148299455789945085920131103600995152743972416124438891565225828381129167154898885863745562089984823730911108998552296420213223108146158624963065424466336077575939076445016143154489987050726743028249959062217479809316710747366904328692839494217855484412580142893727392799810219192038053374325501066930747773430027360559423220586949297743544767935531703107228445549658459964689572951083488014614939781522811111708618763004809912424958619647864882583566373704754937197292135211239319642213361271259903482503911717074649855557467762491754867390562384136449987809511363292357233962650536794617973922189372308528551768441755420667164800877692000542949835874610498194094366973213922250694955571643054565675908600060764368649365095284765420872190127528123258869619840451479034299603573851265182089930267646770491325970384153703846022122117658632536057307158889775663217445783501360861161517897430571697469279641098074174243598022544880822868588041500412663536012820265092677666457879209363564887656662060541317447144795072811670441142770790891389170453939806245270096548745463076834314810686390326161599890186469861416553538488749410234741392118997757274559436682115274368235955129309598284869745722113962069668379059928607825415394849864325154965277411435166902586588875202569225044567494053815447639031554844255941768205043921025388821573567770487906874787242366067072335310853681213193131317467810551283339009914201612322949203771922800997132953996652962054670908734909643531906832017472902866848172663333860718834969211942112176620096564642552099174232826719800256076847028290696309260821253551096412654559449914763348074561457846055255689532689273012326143516754705999568199053492481082945253393467964165307287226270118087843716912015991712392089646905575650873733636189780730869654252048056847944187678416056352575377410121594679646108773609296728658967523142559662119532991065228998613222137382098117392565381932016507661616540676409428366908752315631556969487602676461436264689307286957063679719069877779968330537779436679363260240413405691363713064935677199340133712721021122818795267565733576634816618503453935377817590148506271498982136416586986696542985278792934717263245071616560667392567917157055402648806320367287604440425759950626928007508470714569738288660886224967621337934917959442122518628511410245553984237236128103902211194942207978063144869479832168207947424332995852744651190878918744523668502942354238037944476418926748734192714159829779362496361121559431656430395747153689936655389631408805912593965413379117728530573654503306177973035525819586469000379595179788604010447839578067150259992219191360299251055545647141161051526861025286414908733493398478457000114701168677527898630214404341207842579924531684127278402425251638038970158375416518070348229452310142696010119933229669605511797346208119029751462465935839199827139663171590751545444553882938123139294394257589774648775507453009594175866328516968642000968755570052088810275344960441244552318735038583889695771986776758346213434361404619788219629578943751793342925409445709382417153879131780407222228269698710220622465779246936450234436879506069481337332807479770057069628386370445364813358922546387063399386395454105269681908061594573168986936751732637124155994366751798738531520500645228814048767988285693055596519015488988626774123762412961196262170153231355417172107326244785606438071124082948293130751048218857229071091226451518351711679310136027852888427876310304402230424595682415498115192395456304933824927525546681179572130849977219400573494869669584338705645923690803466390847845635799355726054519978704350962941229847260207296269771607902952399443529629328732503862546021764752231369698726492945409889184487357269502969018706342437764198207668993977246553008157434991003663045819522197346550085347856055854896245496272566580640552777429950498369845374022795648367630175840201622890925033295244766804064628490674761552197369010804256049494365546287387768175301836777984697697263939375387362404860867108550178431581239768968223576020850587582545360332392515884029840728178578947649040629941983754244581106461644865325472815362615260520844249670938740820902124447550531306897533231702666347796448707714257999185905393012457774260579329949841730518102093946887031287324881207326803982100934004072047929995165286820087271153548634759644665415776039710605846072113114723845312824368417318558652222603945513865884402069718459611148496213500739942553644361015873049128154989975313521463036331350986026844909634369903701772058015879930012167636776390370506589590745454591785218426789954110778970324360295866373834679925278919070949656286770460669722592542174999705761768049909318403269941007703436172697814580387133524047926066577238885186364568041411439240169708993905652372493924925260684698520641972409829507030892808887344337015164930141905654143239683679769406559447339787844248574927775327043437087007580974500947546773578417204993013213685398129059810163210558394934920875914168967068597897934237819667412758438454281351720214606081085831387139117613826678834751364144461876977407888850673508614471958916748182967693644315419651098903463137139124624345467194276573878268412821602907164659842889740148155478567338141520174012823809765941003459148638422184449987535363306999887349485493054378351222924870074534360927135203391025082875046283667209923334189768566761317984779074320391012697126620747829121156908581654479645491256941852502182182191821001767660853847802087737773853029295668265270764625240749954682164000032163240353299861609760929871562899603843774804993968513021367525622424126071297385900330730448377285118452543663338175917711681185669596440459976089639038335935204278119159456161068448796638305766214957270186058667446062671484216214706727324308267333291012887907563911549330429760526643666629130931358700453205290923937615992148955484475030956574794916284512517550034429910192992355708372866889975626644145290340291111315709519763348503547602471553970597309445154351992402181602885857072258975410964249431619363401624746933891210557337919994372657139639838870667075944890963879863460379656878939909791045341486477703075426539483736743403188461488901472257533968689343572389266507452694766475972515824211833258845488217090612732545978269359939634130882443444732213495768022424595250920949439366294656025843488275055263153888431905610783482004750316392690769459065322344558555974165170210759081546461131902835063044175168478909131603818206134571976690647141996947721532243558038889565961265433744714959011992539056514434442942001951201691405343783671745305954448185036641674270736548226384228665115159982806902576328146986858718306087058223198786978050729937016802022179319982604969472746124062104887514019687622105678169171911117726126046762326572670493092767434786591531264853123689647513463160267946203545013302040843970122706460817623436493117782914304292095438754586552890489631930919405979737776276894798219164376716528974713498862420076534694272316224721390786720287707200789093918553114740750584225115418875431449423906681973638737965384993895642565567970427362158178235911122057552773628009946963949423941146332116631267726408068167351039590769430606990900268079344651741152410397236613383081792759021753806129578368704191787203575397267875839352559200480166294145118856587067196303534804548492912743993049403443437997913925116404816520439911399157378910159356837673011794877291526702754595935187239571746713727632415569355669280648387757657534708180574335556331712208522922413903659008171971524055523904952203118468721581169636627299103947341750929611023989258570870683895550927487660667795303018129135610813101626265276356948658294731938693587213896499373959328147486288026351100265242894728831352949477321118581302367447751564790853314724330395448032341963239826182100543396853604553695012869148301975555248667316120590216550984807186720918024912698694196426301061110631572098444650058377478497196149191201790903450574537567728246931315464378912170383715393501797716364201005323612036157639529829377802415357274383107086942080100006503161056256934784762367917738777480923660438124636182456496579024231847146495259163149301047761367199919755215392519229945955050971759182457103782510786902494608783171843917650594529187583522188717919963277312202754693759581896550846849306720398274933434222932334400905309087478076040804542221798103898858789370479074852489107259176034278597238850375289885548004317820614670025137927555107092370755666420608207033687499759055540409280826119984121640818513426868033369390446506239201820095519096979860148227040548674687993081549884117430260572992758407745419029906959513593530950893603548955740719914500334386263968888512139420195520876967684876201647659672727901681990475826655582738794514827311384045158138868576379696967612754407318029232245807029031581945171864526482185089302432364659097977921024140855652772191745238081735663269373545279547636627446216868778598418974833783170744965819773360576131125715844166588194243130834557259267719196809037968948744963352618404762475127578784405107428292962775826218284217614424121484892192751886064779919136240781312309767553051497494186866491104699628806647595002834983225016529206205425953607394121899916005762439694880475482988317680121314532730201076998337005920612370560994141373463552818707720835976677781576734736841121592937733526135906171973431694486261341103322412498138115917326669730685726574298732422342917362756750526131330574456946302336452838996784988918750052704588095343407369574118689356762482292226376777266667509383893873018606520258186999544174928047584620218990815789076692079684134111424935714735337871249842386889274824170361748938072049199993363085825049657847167523969573983485889899297353834274048399248091815412729905755784600911676535635100390945043181334618327325873111728469825257842559049438968110184150477047504416845903181037504006656517664662841499308332224694790972394534131947985821867631553615467322765583134683834642801727407371827702554901449465841988980139292055740450576496283978370186074325963726660809605070874632758933465941686492365976033309909399051138741436623498689973775979793175201506663407529495623747663748550122389498478502140826192102712024364279168654481050803774282443389811327580955604857850589874907819856649553224656694629863453086205905076102943726918765460225303845644557597476430252053859580876623835379652522121058117616395329300921191080684069845460698270707322033784925203072043272314794039074882398561943240913332723726882775942978901009408706706656559030082456930012615398019146579252049827162682604586185388334873844130204581648442905863749005003584359121388705786578057989300372726128272769591114893734370790741511933385796076901331218587371885162350131011658494158971506686140328074535078420449334681301323970163996950861194651279220296931298361476195405928312570962091553793619381033133521408405005655549429452371220541827025965257898434354965760009702046731646172188435448179559507805643613963275230192966449933963734444738722408959250971453583150902840666023587989864060586379719285615081561484617052262811066582756402137134514997531927886389949225307549715097050815561099014590032076894760971174471871373146163274629915047836163728992010147529023065135001769555484859382853191091413506235640123164254529241445952569312466923791724369285473887094139262535854747895697239175589668967202321469765686961843658817644186450116204320828440314693401407005495153690484101691260837635468546362497709757106841489745032066635527814130874021263286288920607725306026743540996873184433335240001009661937032653690062391936771865605601658188251075978791619053323116358707460318175355509108305135537680897234430059455084304833106982628400415995975137855853482982871823864775517178910522074922437648702276216140627097106050655732262057880528193059307812690396436610593753897098281772197070958096676162799427902979161313099307184757153849284511591704797633094568787515410866656901930345546467926978048812976625688439231408906094155835805070202460136743198362790787047533484848240663037053124783698954844143915959840522442911872129598539528271719806521585573339212748041214799364559447334267400240519951772250417974038871094800744657409874882888095907284831664744083392172884088037200253734071308933264999366390230863725101275762809961261554918051522933676167336201514150782387678256476616923014635296172164608942265302907455309816074442294822230516902595755378644472793938200081061641313507510510049708786005142278097247714835259837115095347831411391392571300806138885827808641978395418556750700702469268493030159164184932289732076245177618719442620644636668499391649613377053486934739465177927708525392755427715658353161723415950674203668074326127123226190147464552938566416723699666311527471661993675341859591265864498112566090970454880340309081322364263581768044223245498199744330180392239352075545135203547819967305684213505444697813386581791534657063821903823395283187850420615261158189391163712502112697947626992346980659140700491256274058190172727014630160955071318585367605555098771596844593935798725248021665435163034347038817039245798276705495061271767892237767700232106382763752526261226580753655131843386859056571141407312567889694033378448281941686612548055204341643353932716526470850874676008098160202160984632081547401652233709394522072845256043314188431014282262033383411926547080667455046304587957156583361613109696974673734288353494245732900100898075822393488630768325095011897744816655588868110391333152737977129363157068063893031732287615493475716197297675604097223699173310365589074130106876397521929278514981396845912081986098687151715592168787338539820080543113929713488048293562599680561940188724410110571293063746973915968586015857489459128450291062340890455846350798338749390171677656309764438008804354698191914834818812292065400051810770465753751020154220950707917946839222257919408784306803591587165549632270359056796109981540699892040709933538199423548058795066921373204283476476945039642728887759664874449775456217925883852157256229323229287005679651113944936661914868667553822410549911159878903114140282085443819213036086368694340034860827078997507138810737491570095787404140411759810366265999921984848309304145970652275194739748661909204011941369831706717367515035861264657919002661964491934622625228084632769244921258596062753463432996802456975409390115886725597833618409202602548889243682822281529287013263214261736804256820672620180760832214292710249734509334135925844542416328406802918856642763304753114857905949634678052539911693013545587998058001679126757324078374315312804702629577443864445168796314930188332773325269467898474873828085395786610584666036807350376821131525551454569711037036938145314851364244840094781971413785891209469769440318348244820279884727639339206801145680299558211069217415229283939712728035444231268204665997922551843656215748930241745845222086068844238771318499414691371680158322326631451446938615557287811193370053996693516098952805485209079486653705105112918433171517470395002703744788081470858533102451969029898471740553740458061745897809334033286899636691870089870199034499572133737499131161947155634185831521694750666755963478763672454451801274669312586087489047542382293929120624334277455613640828320777176503736333664808519191098503659592255541659890025100124705537105227055077300362517663395385366008639209806920871341062825540202445372670521882545023517337950953042940012616695520736488098510094864370399518676694758026574704992965512831359804286570207401339362172194934955706929821680209751017509548173957344015272036084991258950007323321032744202045135225188471069274364892321628894650169820124661498747920221745036556917816716908607985219142519065647644359466250304273954867485593756888419772529765467691208294919206632158959656312472706046759298016931535663183861940723485573041478160763216226792413858449883123181985418189810797661031134553493545670669463419707066585960091634193322552128178827694184734605778176151579012482353468306656382115221926512769095519667418587264758948201898205394395145385252901047108548327147356213981721786012681471462672820982348369087429499861773236773380246625015598801027985940032086217818086716170729783018591345296537232832640438414239852579208311756735553887117637104524162589812991976941446318254594890041225195974512599343896352782917368357349740704714899225567244256052873465822213291234301127972282491566151144337272796852100875475675192275378144138867899856554059719744336416446651751748598508808343920866253069213590685488092143255267467257633480061496505312196335034634429245584480072260156493222986335265904551428090502454676187501653374028292895587534231623719033801831378168130123304862769494458594149152284110192720705886894909699131035635988656246071776189167144588408772105240399112574242700348763979847477559897954789956713338665893236585688333238170944646929479921317431470596059312485477063816192808625624467017061772405173824027177583650316336985030136590858494395691352623758877166748081790568337265779481360455854392285839269772051608145203976867900961644731546289969830336137433178151332356159466453647834055557704331733084308996862944316644571471904061170348022168094565140966135087016313078411600059386019290331064539207267930130271354568511620128953838914540212023684732183002441970622860868861023615521771142411574046525951255012009733665211438091521313179761255999056046734972847510741073695590716950426158209744524890894940031565768134449924108278736400228997790198633951508503522407024349417026204662862425596579070817934044190975869011376443674136072608678306069122674448677871487304115620977208540948893988596101982935672352305753936053205229611564927133289018405051791339252788196423807126828081579578018841621239386782387356977873714808143703078673063498576083519624344223762610116878042598080509480133402936837263597046500330494187774209790518571787470727473283208491239901354180656803528409791376279353727335934897457785422874588363418431324750777366580832867739431490263837456717683340198142253532852556779774303043609474679578156187344097840580920309450985855366335075127372649361805147026726964668045100799794326424884219901621152800577946539045471917587088473873674893836608090903252115547946776582399480600425321425725089452397914159371473181307627102033938661841599894617104117292492759016927532336719604330482954634181094680765267397692183509897876343628306477108903128937272992345420606919388929600359015226644276636858648715548606610633076105583509588804764265583480820265733986511518324009256757674412873306955933231465508848602590149735336142964276022842523220877000779660836314111841858046496561639658742755426648127646054347615707672357874445744818734877952591276038016679610856732450191809266643918959243907091317093621027139836411119751322504962090578223382872821749267959823278802289130700652815258230383059154988120008016353690102799805937589707311611995099588149111336593607068721578669190944198602464986964533154792743562539067346853440144274026425508337454752038031398780234616530461735093173707690813523614916619323225223445207936132874466809174978632381592078254551149987331491455477766601174573483021075796140624632506120314453802365797084881738028810281095819345462118841622791644214485280222742340697061532779058659278938042208731729962409884012042331315776362462554748917114860121570114741023845898072134271176194366728770860958452733383498427576794205749871094143294295586402432798487065459384788046844160477403822877758874511568056360333511339787869956846976631312757084076179625046713849045669899710495144274413178514007294744683277553222049354735949152542524913160371842818180757674832143921986278843723893750366416746664199937328484053265672120706658437486275570849732515678695434818638154406576225847632579281835108055882194995968649042150994166526909620914527587856050108031287156416302844899373202293019193783608510970871083288979849971752963994346563995420368576014296738321858514837479520564952882323087776775243173349268185831483302309928912021121254235760421962740952149118965224031467373198031729475830506029628996670295531513487963865008809676064270846218591828635842247533425254871957676518003165482543690684402703777488807638366011459596249357256698923847533381670664808157251892139008438910158122045244744939752584972960107138151379933955917153606250729278328863288816035482320504185481464869355568167723331859566209638311918607109621857168361583208488486175750202463718321376529682400486392676951063796596008654394968574616430356473724538632724201350583219115250458542571432516073047274781015621181667778556181763067631612291319840172365487022699227869329747634465579273291074575630493296835772070625022496882354870864735436883474118957197500897445493822394840979184317701564294349374465022403570091280788448430030064904824939089073854342714364867701289326224920141532574183511804104727182973677759259277341405814631102320286952782659809163681262041117504880189640576314707714056173024778349401278911120441736929938483060577460340723805953226330749300080238551294803832166106535801486403245976274831553451378794342875126444713581582879827091697293074347466387695714376473725817202546029389338226575501482034034795554797105806402743027293264870239894151224490630511784874843852553127192158257976371771833657888212363044387181451409608649785780905264876535925031776418881775182748424467412385430391666946019436595332115716896855153675285854017578296662343722706598812372026770333142410966441368727998056921151877207225014958425338707184945173294619676996890088334316576766560943080644902020157243937164708239086483964876242654168503693172139492572017316886235854235372239895470688582170532030184563256706620256490150182094500531874917811010789072884720791348015053869938531042177217986618109540196872605980227809691478863514662220309522938007700127956369945166284007675324243882109270410461504959337032349708506955409797423986341166929287692400111922320251480939890101644443221190564116022364794398841805022590482494706881753036859709462843619947766471665527418867711894620110984730355428317374262804247999191611357156197790868822623844485745963846804324370440265537515612344295722929318413945597246347280459421472077921570445034144417797787095269060472994044091236908892236903033373374433032619615519303710251459347208828977784777989571138468773593189283508401152616334348010557063127049821755521588256992229623446623381044526832214264928786721146926467120599527476484804648914077389778952618861206414865501345352410577835426129514056604682248609523086534374114981507621388540605232124434384565043798167310845188806684258218069723908756225038004670456266932507112194007335157047491940888915780528716427783354339258959539107744813712075054819246611254511621434115821499366487198204631904678346718681815001759457158215581652615342826134498332983904261971324317907168781854049714401071547512318580312708305929408869599579322699671010568080254731734384790387723016363303483957294982392254627159164356365763195887672048280645812909551176240729330169800500626341697964179269350469582860415353942548716256437011550948727551293497839693567633744926531723378821491607358041357225322182460390574955511901547365298450425983613796531430213344107681071736912551359114591365870553251624574899222097159995354442991421141892047929500909645021541351715765576678532802728934106020602388591721272413414394888811452871876442508460654356738528300803403137134362413241278149197779741930998030309489877260753849866053503655554322084378125887980312233403808853786583174737366685027987526848999464565583020747542748888938768838150469845404194594373600526385785477594253235316673710081686581113789085028109941651982239243521085136617881641336663917742612600260787494613373482402582042180714530579278418885773018192578644595919726551468457793477506735195403621399014238031736295955694087093239457681524537986147693890655475170520239728232669922928902078127042656612014988165448299554532823927989876759354898106342105708647760073457414661988760039489922949177194608889519162848590718235738364668633861826489618562023022765175377565359130462637116822657465598492491202870585834682068300428422867619613436024503170309973228547048212302627931606480120243683079296269529535705894056909051477669738850559857587079879401883213521858770846506458315686916061868291170134875966073300056993531614860050234394984176713126541333334877171608043984470210979076258261005870383450135817804333958185519776479815507063936473059124828096116970252833617815664759148574983426493828881101510990339022891901200359677910694666668551765427469426372935842228912890414421966575244858014254558495218870941311472658419913315634095064040611994731184610433789616803957096064441288447078369834247913491031312314705678584324938345161968532206541057125154829759234859289191424797778278790226479147111014149470032472294236286065975245699764817387037962127143360782096552197541286960824487803007046807758312450267244777711508079992340697715909185914489720031261673477106347014540791567444183771044483888299876110949122430540543078050775163128875114079672548559935900787632643280109639696835194105978328940680996519497729346082976819485006274403207032826515374545908744419265510426630460236984751436231308383103756143974370626177652760716327467000241223046757282873142631831783022842036734193694156199308149605458337597809184114143382004333972927003600843545953812388945425901413778718228298761614978615672063797137066376325466994876382172161690983808883575735027146374501525019381668419195736320884072997353744532217841496679809811028737643662431850875192436149231839898084103420846598603707068641366838484904260023581825463205643059681942745399720042307789415749522530867388473606458623342346548181728397318610329723330390294472056365102475025319673131409553206199316818721723167448293344641119982178128321104009664498411544245443108828898302450284955514479254382491770218873051505287662188144440092518464299604157841078132373013886002603861749383805614529123912038616921398881228911231693231273928113539240868111290607025327580075258756829148253480119832710205938708010923262546700581539625547151337203348133013274777579904114225399913597299720369848245156447454850849100776260555065115904771465353395178192574232103548696879551278918455057674000941632632204618139147891120667368192989923329004493977517380765954672955691383994056202351017758646017565351645151924213699067380943751636454125644200123779683216083112305557156678652388037502340328034347516770203366182724794832517224784270305435988719933595360733271736193905421828570157530617962072398417664814088655267159624435044505625314597524329478537130704914469915414470935652317979880519951335946341246517611634432346290767575570920585998246663885460437058519458011735191878803548810322335814411462774660247966868871238819639087780523980038685010986106028610519166677058270451136903786866865328929653152967460726066934143219853868719728738865032884747262453794396866502021004087565939562461987386859933744924956703354183745034742508000062012221799128970667836802494074715091549835807934994766313743432432496486119630018882837511290852495435078969747537144021470353121616307425459854671216452956141180022840269411843412940863651322138235934854600338334249628234467270037237477882158617502587096247995097345300486001519278119336322472206677329716639598774601186028612873946224274219899134544776509968649421897429125897879743017404089981922243156202587765594358675315789004246728005172588946880937850539468536499240454136721976318337438231168751831464557099533756183764206761102311861514859091618831349650652824301092453452065987767685996486378031741904582613541348501887532827243691908670606464134117181929587361984047788534181134639841443755953659796914222357875786564180417963559190264679435280884746208795799530717349743315881332696129847405291535411644128604650454226141444167181803202544616636572892541232645650617250882089724794886448624387150165595062099605509444487036036036249514451094661104181619213340770487354664531900688525675690804968188912919101252262228179522178647884485990297187871093143750672614045879511473921728453746123622524711900634045926256008603370206961858804889009909694220874238350957295046871066645420184158533859751708316853655110383092718548305306997319886016327733278729592144990068790991445479464854869987169468789796072136146251866395971440140627898680353084476116062293269302026554155602825718427763737952092698329922885794526977205274741564504007550379285275627129501056688303669891037706759091222120956867229188843061245350255581466883650502604446347243316768938492270149543460459593422056732375403390228451736391277028915151687951833163921990054116036805876720995158621834175190846355122307526308530810012461183852043271125067890918813847480094654430987603993600245017926898371093177402706844235440886909014969415767462501923767380806117335616768239745653507011795216704728075795385660636389075703682569306735227294223815630773132113743325243310227030685483466701471713461733365349535404478941613561682813762337505560857510337773829484573054660001826893078817937146568789617392584624048550525788899618556948008280084970448533438848856902286156337605572358726908079001486642991048011310154788859366402751445723875540251678904567036476360273076269761626035370478425155101919108198635758827466911067938642673790494417419803252102808627040599720138440950585578483049995049002716847040193735081814537071768977717082645661037196990187652970342611944790525466518302827323373554302723135731368167640831308055771790427793521835578709639225222248318062947131889757663927117454457731900785691960085454454022254748111904426059712278323725311847007910141364840216602911130537871835437482407004033232052900781331219191974915357186218236847599724236517451099243666030471854835154707721154936799443299020113369283433002072657175829610953152743063913584615934189807456188052089745035292130129462898977853907620975334407038066221997628341515380804785326998213145153955654693779846523083773095585867650299435009514079957513046850669872294582054284167960050992562495429948178025311663497462900916891545488074280360785098596851440817979622991343372678875739362889109007081768375796561797737347115190123666953682241427145304618755907615625865550281504924059836945119200760243113098450517797938843325583860354982595857725227077749017052476983064355813451243396779943325391597733096410978622748211451135062936240041296638206373826294399327484694114070292101281101764013807313322177257534109472901596403765836908493606117935712562963459223493526942825508565147265308595420169539451139033958347193111417345617672791915144768634655459567079351311479438085476830426194265518250651773563681778121929424205919475549925895140582773519968281402338941859966077574978512261290405327295306792084366709693490251123967067381457496133298493443151725341131047413590431939986775431216070024108790428515694658059510760236434270195414460444317549781482002372013408921121471706854751454661443772594994897355750571701298460312606987561408321217367804361188870517567393618362499756135060346308172223043088133173192767252293412975011528819102318426741845519767645641429658698239781086334804339183292735409552786351618955458141319679292599007446987900610481149126226341973022180738562579096710973906174167200463514005381831265705275442249671082148264185123173383666480370007363848801303020466384079841825309569615841533412974896330867495268887065411304140910363291744078506976938048623115642219310526229054206038315774745156842381070561419181553762832070074538894288685361790427845729660991366642149620875438498450764757230266147587648417051801153895985243319330527818314513617150763578511622578741364325910867963923633019577498769420775780573475403878349636391458893027402643881151122868701212411957777204749670491830845811891394697362013160106020156623017503713086481566840377089687648982566034168132544437222188326002723067159806698161784073053164736327318716774653888949505000364745024952048150090655846820525942933555938880197657129317619264595107034220359665311452418624896574291343916016983639289699431093732939825510179770246877893570187837474378365091073010414032327759664665063758421037801688512294511396663425311982342321342984201161172039847515824765409420021323701422631237150302813317780885280400800856719197083794739931278965624974563873707025786186355470810461358050371804470765793954418686558473780401218164136925394403669213666019177887840804949235827992626833345274015041620839979379560319416843196185622769165436297869699670551003018032015485753425700565630499041969603390660333797918462567288455168035004661963696072034697599339761847178217626649369072964959504487557018090786614875189757923901499265387475551465962856822636808060384792408610175157902625972513437561073001520311446842467444484862008658699690390066119173697252248167230916581290246698889543809720978149328296358829260213453907702548373615527203513393452633772425493281207537288068935413533569729162467590882180720660953947821389668477731781218055999730473863561366214012615602075014777839601979706237789597709404932107171028065970495947526899183508879557895525101694792332950771984306323356152007349917721727112502342980963374451724519033932942460429950057210805656473932389407836283795309947716635876607350326714983871751276486513266260250747089561764360989990045906149800653741601438938141096662164035885935736239407360199694037388323544490431871443309670499868783262162571322149193740237102782184255136773216901417836589432210805714828751088076471157945096775629535288774746170315195109322059598398672016195668119277655250993356479050336989912199214161530081222329712242019975595656743983171161111499480719474416362707803348189920431257138263140851758472622388117173833366333211208935266484182694339099505412613216101854525423811524175679561244636006595308008154296670503969981197153925328673748576498577504744593625613518966704689565063406683793506509935170789054380991842694239314927907489636643437153777842688063398033098599111480047749855045984935389099841474607387845549661790387534672997413322493479410395848772870999479458054616133392216520041267438792192808718794696157922064599169135616465669688454528397653843247417416203071443546718285890491441147669309406704816655146369258258006018810211052934241024735445637395686998588857898115548751665996524521854769110241813963378772456618019392941796396029144902052211692765336436334342064385995393385841337505212075763633860759078055658762738801410535011935225848657360144032723035346170706674420067462496084861674283623873376175113023351404263175960584682337303325725559202622778064766441687208649878908799200524389869730601545353786807967359439244284826834603687065576795734169383390869363685698121010758711456140639112425578819265718714661586554545117370363641302778498700357250845849460667767990931555865913308709184576151329451550842408791072622779010834816412364060293577401188213450169826570971058037879358893261641770997148297976199764380886387086350193834534786316448640361580524516951429915169385444771960419120334191245559660787237208788448415483852695197388852229045512303940832137882041290132447359125627698166121151045893591753459995025313088522872305354307235791009090372837153695257945620383707660684525479667279946985466081739602368821832116700859564397195569812292634361030918116899016314672898736510669396816336516790246653112215641345554450455392518461002843638617218564626831727966523418374235283330777364147220067586083081979094986706166149431580431123666413930626413540696639371659446466180608749714128349989538661257815853587718804517083882581159490664290670767614662273995797195010940280614908486820163739108134586179581681694460013475242219552148762871928273884512320221309865580628376094159840175043644531962546536284948980209250059300991189456964281912013100424874279795568787833243273810254305918180550226170490710871199334547981170632140583293631421171689986110343700545017314897026379346627775215263515469523985994179962155642742089147761040324704143638268139881729698208819895860452998850469528581372628165469326174374636000486139787031887494459921621327843425937470659769857060473862246570911540994131103574419759643491407267638761274812387985485534869662884622923821714422669312973908926797312286287657048778434191054194497210418017023395397911924217658343914918624987182284874372996726795646492575006492508770085589001312031630798678591950963666621184235525801076798594095188767417381316090308636835698135270006665463991884569878715154475185412095411311588524873439707607064163224731958669819929903670926904633095138360716946496661039606743097516669249400343291701836693787158912600936001812786716264763878905562811681006515748273733713078699143802571604566909351423889427007889538417644053922166487056778305607616593848767884851655659129552185277312021913584761348184914345214058811582324550663438535386738894911392194023270232154431076621482230766195647286119991243147551904247741438469112979626219393695349344811890545206197892610064603800725090615870937909427498353174248409534999913020381439363297075144046227028190314225482471495431740273947574470715807098968632101261129520299642345868383239093150688234623734248254007444939992091061253888869782870079368959243753249280966710428365352296558077280299992472552511375962424377687426578839306134091703135139043598094287113455673476720951258865519948476017029007482077038793288398638445185696881090963341340370746014408880281353285275718159768298838544511830955158862498930773162793031312077009045842613761818483275069416300610656002689787826624035298551542933695772119009911311828010352568833273188765444838067802886496439379117819988012195256624341419864869973584903085099502582110549697449073926773008670990105809769786856758755185658661403805236890959373177997207871364269219223826001536883998759300286193000776605140563975033146351616637955754724080136372903431291768421538887801146456839211282562909488436130579979144582324367443188920336695325167520740833276974786365735072578323238711908043845630116654663278049590509681592292052628347770230059455843484094423608755023933084934071264423184720618641959267895954142140134811550993618743074297265027809136041704828224645473066622604467068552221072295113712682058142508717958528754625608837035143416533597441938954485416277790719960203168979478711616474695812990635248017876861436194924910025192999606236693645203081477055682326301440532642644749823444009979207863431166309147004963008461325754567971053861624559252578881400286515241674267098303669688380011944259907073251926694818337445067954660780885107422809757790736548841638365074824467821787776465851789730378908981138879968776435609587953564439770806729296810069166284625617729766316338788265156667004722384007455262763879818632716360840825132988913950111269129400621732643101236380971570137003645496347817710085189151252620244891247921656390877253467028342105657571418761638846111081261704173004731049768880241400771755599488863645624447237764318965503711453103004267366960880906569309946841583436851232567165076909463704912458222536954030909471687218964011871315630320765443810163512149494811875650465296940430640150130061976495069378478577897809513183412491035732119709974873266697554809628165678912397053533363339151190718223129712411685326511915738804575188766973296284885316152884624678509820191431211996816540673722316128825856457658515826350090732697988871484915708558620818555104283229878549503208613007086227415189695990727438077650326998528241096116435196752539413199840109200655385791177757025439386137039992979757126795505152365860262675400847274258594788059328563023177234556414744850066420402084089058746318571605809437673981079156613818971875946650363336876255368405560579172304574861569882097328414389211718625504952202791867635766726659049217554790152215146276205727268856068309351265979454757871747317112059029166607791176203765217756524470584440827540849080897629443181897030119613410853778562678758579987617493163681488202489099717029238019551261449106448577026641448449059080309664779134044795682458151821402611306180589180684244433707392307519462605269135058093086647202655932911576606567040868779836922090240573966790504431533696701054201053355696724309943391936973709261791985182336332215932083961411660879225145839741539301182718502174471098204571957321087183327107793498644820114944951557309281971415190427732554956035917098143146148418594622608113888167173676730364125954389158306977526551101692177473847063018295680411864377549330894194573996415163829322367927306129148304897915610068040064870133500441548147506094980995009227883858761576397751107914037336466749736493581801863501796985813799918145616036006706353519978656827740056678820526755296434103993657173395294543617573542476652327269108511039547619743078447195306509350664993814922337453602385346438054761641439990390991130580272642517013235609977040509859952662520568026821415107433987512011928129703871747788442878591846975795254584972471633088808261503381629617881704441217983308752588984675078914546322649525660268437430055382146291065793980823909884007381675934289403773905185367714483638646131738642219049532843819836117734236096257229541412105941857483073624671944627031708432278264956765440171042266576397430227234291203934195727930798264101999089565555593607501066738198717563819731919393974731806242768055429587780760288484391652406983532738693296832103635563870261385386414942857776424023523460630884070044755569329085641037140718406640501612064706560892930778029597526702305028327790558331702217785913772171998304996418580483673147106585226821570882754170728333848550021720480462500049890424760468003733982444725950127239629501704509969776766733825434503742928725702242337493574341568673554003720269891503440603305965702645751770979100507078825057350826966732419845317242594875511568345496684472886038949140054664655800328810200885704872690660285356486502951832218177822508592055924548785817876523551450926421257183989939143947641986218133090658970269836067996978454584598357371436208877335458628333053698455184648896071773959480743377817618114819857983620544514258053044836987063343122942734044007527337195676385229781150526172600143654069176870414623437193068181088475932143834984049455908059400512074206977576698905982443317545779178934872888560170405719131710011060153594517022108109204563019147375490002597376554901606316552002805498630424049993845155701363079369930701090867623150488228220361952737889171623231342520809023834412866425726883071485827155192540182679822107938036428693986334890081635144583795949827040159506415394083562055670568783834055135805962305068594051471414028004577270968569185500629692426241927941551979376373512251231361307642667362518486427456062508499474171475326772732282300511403273315767856328716749122327849194740528415047774918140172263431636519864017030233105221671095789992890277385246223452942425058808807281792734716031559056007536496506892025701015930777931149824796913737115049382486898870678927506689529930590159034661854185463861575920391746466088315723524436193422099171792381875228297410209754186765229396554646799165990808640267743765480746077513181752394732152536761175839335425693014975140146874802198703295421718332872106596833694865713357113377016398440611866945998629671607156814426740253746808063279305400499619955005847688324732883478769482113611617037937934824380985178992867596793455200505251591202562361158959797173915809782972650674701408154151082997500356052515678291834299002013207919044824702765959471093211603853387620651385550122519119625914158622221551569094700269030679628876504436094840475242993920294388524137648540640181777244112620608259918663981158022720988076514039223783490333100649153609475130298356785242789518361596524166018558337438050112810193206724973032173954817175735058740729766805724799778474392466868516727631663087622603976158093606364772454869582824040394501632441201144128617499673673606936144122237780922314113900170835877949582760191985575399385002588376226200503822500052884789241062127577469462553369790242171833308686542415894914094841444372909572878372673254833554588576121601836762227435182156437680837257803250036647893244528848326290748545431274297461958621378604842072476206173094887421281350228789007331129412986337920516835043951775498360999604463418092571289519891950887884498160575587473908566968781160131871093795416791303528484858614472717556693374555412155991078499562243984366360661262922756470275339804688439203040780000730423684748973124152630760009642413870501139251016095435926777125289720262658763734360554866165724568847073957772480941232248882280381171568928563469952777904360684041294454209943927382943975639558242819681663315708081912699674804773208808072584786177287536480277306963445785116637511571925801732601282368745960214573740128884892418328112600812955930025667511345759619655562550868762643559910421069124303887247992628764230575269027047842374814706742095641530202650166028693550880245463305945234920509901373618351394134264719501986471071590945172790065490958497325938696264719950970244377179364548785596930653606565629269230621445288670851334849511731182436995925266697749608013980067381628437332724251608691524828228731962609581208611302585208445241812581832181607251596054993583745162645540343015836979712745293986997619803790062474317239131118509052040750935593445246804889529600662238797841223425320106481808498982757676130305199919074842882238403826201718926952066317237033965062696507351239228671576042324252949768721720722598916805864837923867748865615293318450090790235623374951482895159948319285467511727660986237898639228567224415079823206090183192432770908235649343963010858017971724523427329765835738338832183262848122188755369520303842988885674321968290724924389091779759406828163196976442408698098480395984976793170902103736946124531584550051251309969383779910828372717646620757831431056293027923046684821825423057879819920861334382754721167839404550714964273762000189210314931907050953762105699857951615068312052199684779177784205824584749806472879134972996887477948197815229707987952687086021597970388056878045595088068183864665029512426997275656604630909978767380325781390114060026515949395464544441783265468937305449326289710994406647564923682577726494810338635413172811814588264009503632523881027262347183677030258534903563229427136958707418467755111928379489969958551028904809376392456102386751726461217402652671997136396742801254268601738414405555110636739982613345172108165484481870574004749615397905404306984422306989519471493686287708651176053816352491700504476616366965180546434337147054079823222955379180902144024200807937544865291235825584508888222435787557176873086026602535440079495752971390242604651103592011201447084075948524752399034324204233249397353270118792388625481217233888544024392535996774128516231991999282271287863259520972725428818484735016229315344419272667893031787870993693219330630840034285801770002625464141414345728343912007729716295162273626770645619471945866988016922033857728086737001333585239145977025637279013484224108140319942037021790905381752547584104988654308304100607920561574508398731171124284196111474388124960223229573421799668574896887610250480740355767534480394433094590224174279624800247328490619209416674100256717216694345044562477509415967088537634501928447671818614160265659045878750205297739657833113524540960502636716089786545861678810181956392556859191906824268927362630579799309021842764001620914132507618326397947135225189252094234394657038869875843459651891559524833601398877011851383761099019702459964522976528335800385616261240787911330820245687196087397154388379315802192522857733799330742508285114731741294443003555113894897853505827367656052412091182649858332861138155348023765596463213043897592028131100510057591417032775650007017467400372971451846185208502596151589153468643231061214658395856083570522610629817158823654264641592506991317154814425800427624818690259812716162275060349209447335721373415086219092680623244049291019495259141712438653709467087811390744019102352496202501273518689128471176815881010501773070020522000173397366618196922975476045714802217835817805860048951432552340180165121780408229017074818111474080722337373495612845527757187198543718876334622440187913889725329308142537706156107910749700140764902869594458855832524559728222065296777810861281545046290365910089169061583400305551786924385247807100257287156088799648101250106546862980064941397844503951830867827658520159960401400132047941029286440418712355156989829481648389277621310430217041902302878697272304588825171326013122528044767817256357785476051895465077227173199016907621627549551356753787040404303066958563253076463594425169659417211758877089060139666178953965651853335333708921602196463725346162060254368653839247788133902567482858599060319333942842306637603687811951261616119777740193896843055031462613335340216374089687205235560965457205474469885859286761850017793161858609205594274265551333757218693915519818436075693640214668502062437774190001738300593083793454016345271021590315763100323451671486631021375178598480932044458655291881605670680552728202979575332742543367301002674888611022746465922923231428919064005844118535107062381628045978486367649408983848310646429185876231009144744757503259586791583944917535494968222375849389980744738180834786886380447855178335123206612869902343460535782488424484405092088859382035345121045339187810893051740516819639946864711267236602801445861055182418122651325684255808297901192676652047517316210518276045958646334858088492019847214696908432804045640935837218001057693592839449467801016156003172212581887096139434539613027646983233548760471655601186318233082124227394997128748953976267754316666851126448465767235903114684058587076611787613612670633451604922986914470759721837396404137720458994467471611355727767181948001767444898870811134256198411680185600349175212928868023039841848085562319286638549466029213460771770767178127832833813104771525553089265044924418789005063075187722077489127011044424669416559842137742763612358328392286035080820605329257162845638412225610906455658915466398017927616026967403367655839372669523025056132543503865515850544096232554775732803183624441440308995724044208988302707947452277329949366587890708191659565593763988656680437348203029954064277766064004040841411340683933853282195606039791567157290767971049266005888380462766932610814687654143785661465304678041616102183766421498678476354546237717256797102468840992141720847758397581751960493081844601916067839129669913153714003666521076407120352228388144676642933151167208333988486126485269851166184152301919967233362067064770994522870403604675442127794010150758572646833164076927331917255566478174578271754717198229148658623847418180542687868070047155626004156217768579153263732945973963073365942632683200953625574373917439929391107740682737220089612432431716130104253607877330082677390493211145346289388749659464742649287684430301943526854820589429576701044680498078250744736467868857225621929706285817052959552713929499120993500463071717044325797016490133330619059908653628216512931433866053907024912979848201698388936974640559582481922456801598018178620688662143998736208834777204946110174320480508701613260793941724586182586839147300252374990568914461894066924124418568560044198614727853124090654097947076263070251211648530718743249565870949905992391887420499301752730492509926056967629479288197761793595908274842835307542649346598317441572994002353641418482729905930560765734263695720998600791517255284285863580256139809386770079041179397296013797667780589457021315925668058280298760502295399108990563381790105548532313069434374744785221675909449484929997803077910105243307895799092585943854476817625272136604327391207095574706926719385779345312127583300092280787357790111727212644012559831410679143915670950593811646806105425900959916230749449161648623434530731067247594185418357185468313543097685330443944402759138188981129676524636800141877059951252037472815685716586709264311632949283710248653853239136053334169990395971430145302964688904060429502098872873027799433773670887604707618814687422102547331773561008108513156098732424964899424472816400761609664102173548765666165720951489981771115360185715981405466394062281237479280522999284331881630661321609894604364827298848305415049561263031912503030255439793157696626952331496241829817247219227626906244398531464839673290428284081209819712864978329800489263934696112692615187662754889513233232632159262423668758145429673077829893583778760295927461759548093627793028621457584812484746769177987526062533744610187394394104664447684729204009513847379902275287423447883598962552101897201521067977333111630808908035014291446797611787417906297714192191903165285542224943615437267736168762803305478474656178235955428599916535757777044968777942908784366334696618933620071899579107312664583695832226209207254155567184888275491439762461293507440466464585513949376891762633153553657613346954036352543140159321830781741427712655023063787591990378036579972137255389199322383027572630374685855101394231607748452828578570604140741258665700608984185172881992453960540203911691990699105639385388078455144948943825023012740544731775575508580252181430698802299050579206485070217403989508554148446822294406244101884773590031271012268071790035373922001217306655914407504296423060962561373050623550083176510562881535199295458303632611545556683288317809365498742277085442217448996262341625327898899720978217118526046633839976559138988883953694747627861834729341872925257725705892865354952898709919956467906797456783863909411729439532946114560151423207389725878948071574692613470160690006271175002053989749456670082917845446697224996609300888691455675694471469623224149858726055558177462270635155453182051068640187575909108975368420247291950278073394726239341627816128598640982998249477035208582291292733146882432941930635535583583378085203227561784781131142741757229958740162035052690012499922229182115972416047611612120424369986658631433217315685080878336424290699213795968437552893320284758129666685727570083847398629006104630638004939265219264623285041221841537614954942056186197422481665981301241076540686209702230849861707246763306842689723379079904255337029755666574026057977364179145459285412007877840442217602368967989660158729767431296022484602273382908485371318346072575638742429693074698580112362571016499955933064814288497866837280281793152410505686888829744117184538564305591284348153162010891664539292433602027703088258711602967224949922560984153096283740362456714021961317513005946743363235868783758100118837555103889822255106082703674648241325187433627393690057017866252663388004374427755265662307806413670295202924990143797433278309440639395949720866531841683057722560514962496367251590892235733420327138665537481864423279327990178055323755686689040391323748464270135711487252129314449762822770314261729284575777963968348668348835625334715339767720351964923850045386037804634351975148777582416865321589755419022157166533447871920669164485383460064415025293041258939831972166222685463309821036924177944122973822695075774792641294508033207313475324760880051148974359614625762901848477946864633554223744028944143768473683629070922570646718141467542958337621857577760370447098846586587442752219611747652418707701573167109839335628070249897569783919009327017333923545983873334539472665244221349123160643797919784988197973548455277135258640284738514068836425478721328452518321993224071020150638741832173665531482907461285528869744366020531551057786480940483258269507327693895982104311361437388737702644512715993953665884815515476086173626464242156905450979234022557952318150957947092174292519476632017454781118562493353097145606743670856910068318639490830296279192793972117852329801562617472157444971721594524602897234188787253673831737693431546228226185839651533266892178643581963092482010446229517330787145523416848772515110883758684916930452899519990443970154158931172818673300363087795020849500599159337022743148737489343590039662584004476642114785457374249236211901614378417585497885601685837105585873105259534990503698566112067519090243125418889898146723287470645959980287663737028833311114715100295810241139954553293228591678222083802190499897364000935686871776708867977776141022882909441988054429032526217261216011482509380665513997059008651569612423615285397892551700923008031932621018044943132878425338257364227239288502200564853673532098019271202901064520802323975959677761509159018639339852469312015061531711669285861036803081214388493237404183818490970281267604585050353637022897435541506317823837440430425952353015613357003201898525670967901216937214762355475224805122268271135887685851332090445527497986306332452962698452931757695471799871044324747591443693409003801818117797159902730221245365762204010105598355768813468172049945930335970589913079453647838799415333474778257954189837156675963249849646039393557422244159272085756383101654080467298777428612351182428454463189080468650542900330730785110924432862911730347264557021693214007859679877452865946141010730471555722638635731601593035199064806281683429232879874719956133824594559161780919034196202172176981472363253872361624631081864607169117595898499747854340165776326943084602650048436530133984704485727238496628033763324346070474321285468879330434735674624658182101499401976525720878625233095423730950737734171174443400926388447202103799615293932744485911668816763372346930819376210460320837705972441733501032049208957982168711332221021855799484326547754690707193017610131813064760140852848448188733797669245408897262615345378021603582512554606075271666137433925436766183892653646456033181020219956458907617305411835046777018908756021183937716060966560468585236019990810419706242122978736107511817260281205417925606229202455459658636490392605667054491924253418903818050620246563102397832902608584173309504981883916939602875475920549099847725771281856030009809002723125399085767904736360832741019253779313573745975706270021207821604060093586579348844931080796494592968487336971936153267094364364668305810264935862367621039850048808749290943095019834726531770203200482959088349200072132814815291861712965166156900634324919929768423739559319182523740121456044095520152963301156479041433786840036824557070672233247406960127819049211613127419574901318563446374306256646709218995057666385741625357106756789441604901625170357292741753683184741779572651619650020717029499409190045506316695247869018643351093144550366127319804645940337290508059886697259669123401238345792072836216854865746090311757416015896683540771490215504433285989046014175080707705737333799736826956549266997816818767080186800406164225493133537254608919247122571758799577030069582879200135820465705968532117913433488677746671368648589152105514559202338747131918582787611389920292788629247342296613831974432528956917857040029182814383052275620807677047380208707340174788446649178525815947494580505992575833567751344639511005726141263675419556894693472492137090372195583197123186536446848811201751118559884485571245193173090771471973873446517662036873084829117472182084462624613362661092484859413773599435763139458288142640886307957013783477003003839070672733906719267540946988222148212246698803482618503472214718397683407943583973143471687744747467262756019040157644760779908315127800403581251390529910293864885414751782795857236835017540202416320832977097122146401310020580065382153084227013034464542870436731263088809839803149854678924054004880864229267106517241254578136205863673665295083616347626721634976884898118431720850481452059316707312577130321643342522242795283083727934245401644170202886329452781850707212522634083327454417624377433279377672013194646717671718754018258903459654647627263086620752491936237579809488565444630218341413632151421393718967214306518424690629432470175000973277727156370680072113135484393863392324293010833109506313805146997439049770392735151750174812495492461487451914403711690345214422489859060945411832274248128982327645759293417537731814581141053476196001842786561069873376876161190173705585602672377182235942185750351134343588978934262637587592777235216668178458530951136310521959262248884969369508805806688743646386413491582511608994516131812601269795939541612439172269596353227142564496973475012628403545672701623495182062804891754741756678167918043714508299863913474327966118883597028545657647038515721277866723191464142338284238051469526081456527706962526392238644212304169603560207206081583083836000670955101025821370599679853883135793010317875001745768577545104859062127850147049743625841861821680050907310811224034429490110480848671079636952279785991638537746194239284688535926349729482729435218032095271427846633290601301367593484543325245226810089412060283835363377719443846008548573188472377340611744326882835270057435577200322211014268053679934499592775655120649492813942379758649846717665033695296525719035731427589347536601234588187024131212644449910544875220735912972420696707315661799274400295833419551016761441151349765175874339095162370717339196114954746360376421300271153698947174205108179678997048845663550621156808960883989380587946512933531932266764201948969057850000795790197111170003198521770730099693620191766739307046893887668816759608200210721029644199570537009073658104950350261325945670582147863355385974726807178511627411104214175698008601566631988035202975692102431555744667917097948125457173845032844409982967060834991114840924207540376660425162811652762886555226659278573382745185424905199289954339307903895228077471595392655506612693281766630665968851511002973623607838242236038847335574732629809541880419482735288344188989704802202726607558612217383200134117757861479177076963166955588968359837931336805986400213374192465564788160091949665163739900080822183987429950659792579762768687956965021107299124081650004731551999025881806812475870202649809607581742913315487148891281556859583737547671306741400397463297761731980841838662359510571328707158194943574549376225867618002489070481908485692854221015670056088733385110217576642402184421502344946418568259349619959764061483489778884358904089528219653006237667719785951600678438207752858811386682866951117752523017632079381029786610890184781596108954985217160818290693117398438958433568252722981937225426655231666603889026653837785101930052050863391241268555919049687907642071666226876165088906452463442243837988996778677995919612272077505480788832341246407902004996832236308337236800714256736887174758424835563144507118519668611950608650495081100173978256557524444079932038657122627765425128281179997897047540171702748528542880899607920406279204773445677507830999903732751112478342530962068550421547184403599528650626667693367112323834727868147883655496885924580265098143982383443210394928944549244238031162180980224397829359375564561914821404315360523953612541622769472665879133133540215031963050485585253135000497851391008771558473829464915286494165625038390122346194201843522431006741076422314502269092622700225966103289240679832577941839249618605307120078100440671627391156997189427678053415107916114132445542063062888508687875009968396086206243604209546033783181832909378524654353650664225096770636630562419865973942102251008395997275629812019265101507773132299153778138738424853695928955976933610638919934293969581566443509382898591934979274799643317778204007350389084603356214154287032566490105140856142957585291329081330614877079974355924555427007212233619119616963737095136879728902971168130618659303443654841213112478698161569915497528083706922279521964111186506391070607822993589261346954532941911839523563941892049893663166764022810995528001280904789895471490416800988092210286487577136070143311323229418021046325952403755251266948140415151714195795423845297733719493381472885170458560616078074583969841590581846524537080274631230087387022990625881245587724180824752582709760082412787361064076040926164506805900401281456539023720972018240112589956575300078555077998732522521254584744305653247723269362528088122019337729727381806640453779366626220207370439860482924194964672387715047943502647899411935093832634505194445590387772568797744191416011624297073035126967208637938704298892934804207410353964555163752350109860036402003022072142753375810236497337855756742389990118919607111405336152692573584801081428059691442751737762521245511208018397175355999061621471417782362632008297012695248424387673050914021247374490260653194943885228663237498334384956497265348453305754723645925738041520828741550188726182441996741693188195946716470587045661988987322079448169659129818694187285323688666112487989185417143171767986745529192167183419769448808530382145766377919496129254712499195104160512311319772382232520872359760607404130036008591983081723915633368050555506215809860132092266996697833538138221515158075534192784375505642896681247077008683654742257943247159526165565406139906933264871460290298127954325662388459110690684237305070283163466943002897800243896785903177225063324162374136510858763188936403437325480025444703941246806773803467744748202698462459916791255835394737634310287892338677652069257533313690723240481468877753034028092395925983278450515701242026660116771685039794449842721959055654232437738917990024720126114252391868454470522318561425643451148258243551723393032510491057682467027524867234686021506394808591953272351018642399591409655059525307507357325051931978282295554131987707004480804592802684088016047313340075141521841190328368951674051901689274808154091600098933472172676384624887642355108596730724826151631682751129986561107567385566248570446525348013611172921622505478004681702366174397754194793694486781848853068108698502364072747545945823616159470778251080024148453319187436305762882830985899565286007238882380344390112373597218959258691787690792272889184452177468473207385174109149966201855307855053377947968598232753999841583832165469027532268778366106493731324800993115750585262524894800082594928572344925568994781478662772806565474947368962697813085854732244507246319226436612551726820306127478823791754963769588813945891798798869377444363323670610528859265728578751695938538234126130925085930660745142535763213440624430560105372608112255050037037369417276586162162970856214475008967346143311351365184850066365546829248924984705571316764529319862322145043779929650549369944526377653943857567489349680099134859569704297953527017094505228197476401786932985922672771447047819530350387849053836380446614141543576755587024302922758269511188341212844612785103788709440006758526833732382744775797251922576351305295849864223103153118809787419206903261377250003827988297770919454845227166574661244842401896167663852173174286048178668007775249466362138036119497143431443129130403154438004556838406750164481759873654422709833738913149461678945890298176568090698742732999646881135764294971055323479280393694792965454656159653804030442171350339268235813481468834122233446497794047124898474601555077000733571001565651320423089037213042775143536321448608322926454546437909719967475755518520915676325427039382754479943177384161490371102427475722908644894305343100327348705806415835666907987858389311105053831547059939145224763909432746220589583953613057667602277304650550356790955952737806552924751303630468365957557748342488120044443145785019936117504770542876616259159784275803060450673903587030324735905354231154666581461507769111447071014388700532954753267236118877408521541206891984300037707326973663069611397749840659415168376457377193858363264924697453076442690746669951665643652252742549802209468244409316310983237766002339941026925290947915841078900459170258456885000343081021695099759504513851756655209913404681556411955198391736843862778925347067197301128285815194722916830294123312662999087224910153422425550813667912842430932082392344343390121715211289537275138997882178446176133944005223826398953856042736229988702416901419044330129395809374406342233770085577818465168000798485586420039929724974489906213986531524393129039752833301176657344036660100342512134625117728332587102021134443009193309408094856176474936377607739234637336802279098149262540414047447134897537285884291229862239373924976729366818347630187764725840961744401006352800481881257844158280606226917503155791028183921044372674795742283539293806029951291217344065263677061754764612597793137231359140625422772784116998248200561395541402888730050755457700690691679053221301396118536262405457829733949134677164368227650790200695536778086205809053523360782481454589744208051404640480748093686443559041192200461447858499572924426449396342211962587970260719423759115929708731173687059896644192125089536979306956137293608225895402509897620433883977464804912211847420745698552860095260670590746335601991728632251169487422608606357180198035058143668287127861687758373552841738039006806494373071050181282767946926711780101662250686091361998357805219156307519956334230176499484370800740725590179472537464612873854943710847997488146605766055106341231783209737048647539111766233635240964682611871450741225672758262161933955854076844233954254421582727467098756175021189721484280680638968979368627688552480303738231287613217002322846942500091687402136898950546958741634207401822137831616805046554371321816071598427154893273688249619023769487670899605925476158827446498328707864444047457153481218956483123391416851373118771842843375650107824092292259099079751446890087517187589923906222491035676182606270806560695090319217947840650512636705715360055525786168052524461823400063500951543862826650843008934473205854350220377000870106198346758231636624575984670550494249347297611929028901371505198031167718143525131572178092852850013758696494686425685150787090259106392968848522011597986603687795091560190177413010889537123539031811783076070652292718658018862837625446366084251068961297194504497746125878441513905822950836609709072733237159957968907951819665695946290998334841538423053012479074086058868143465949156287029342186419650037882820471302712767151589013833852291407176114653321672537927906387950492827124664961694686860715627016348937945824223787558318127920300065853769130652213351705874500279626776233174065638640970599599114528427469716399311924917262310240743008036088845723229458191348798463620860670642921286941438926819130008281869714746419884908747886919309102033016369574176574954158581450353644475957096068919749969289038929525886247546764855262298973332350742352232039480351768464449201610237947599197998062269762452928265940258787258994485082013187865242481532451072817410558427426362570967891996699279535988261140436481301229712612202356212771383650148581367797801592420448021022762495465184222353005947626419435208209529617517135897064968771436639536885680004770874389761088517225843816154142198678411187902674835331708476237451218523496779817097826901152791217236011749055864436741668714634177801859018604795840546894741670131603802617667944136946687000109548472938051507458262556889854004728723810220012880833314475748381487976581448838242560236057901368691925248302047587489540225970866503902940778683813175833416062427223619830858453711538639318417029740905243829233357052623709797227055795785003093561177072922323787217692380756122111388374485198246449610942208714063364443154119982914664885926306265180442085012359100376605171001144546761581005561537736150621154600234736365299425850663856729795562040816567176310040639715932816363477923894336166774078903382650537355174979021768100361251224838507821937448208387039709993876479821503305530520363146701599214734541960241056175528750521853884702343599538627180308398539636973867818046775355751525756348246182994868725696827554318951573996940854934994920856087533572788678986528481268634153269981529289471174437445626548971620180526058257911163583639604854821178932479224486412250460048989392883514428927315764978320224423936359393430109388783595910833297653323712028177680681140455609575473242265872172518508248407551513617563308457019106205291692195632620673938464942127372825784824973725680099026533598611980587870694344944967973476034212162754025775976386147327453122295447792541226240015884446110414688551446478193694996781530623244735565613773655481808750159874327800517570800932042657157422766928568758993737162451895056981807512849861643776758718366324888904973590993335420433830561876514006160469117100356271185942359836650011915394908460884856093538198953834608569574548216833439545632193013275361043789076271797456424442933102390569190592800147212844236440498135611700637523364439333148924095659576548296295224797402209784688391861069154250919541830884214712295544528404440788804510029610163325374959430331258499260133305302728532644433141763477973732548176024391841752300307388331066436307589736288945998178170805605110665411523649502675763821997603892276457469022498188517236142974085455758856024287982817317049127728877586396973809325849204693583692531378017564757107321877479623383140859985086509930532671809943656617036588756676016531409000331632048606239342491664441697276162099278312900330955716673165770003533456551717879976150464453269991781229204036277040045336041489894380226155607610142609892875342208738307598053761993587905002212103639577995276175743642261691546821788742128721466653704392750970535474145156776934536366170144302834049314726412281369593668852190535480424000011963346043576662126233427534815060312493293872939241680319775252420115330393366316243799037203799778484629334223881753693055671920411083871879369422747972229514855516654819342872804256068121164563718792446410883230517794755649589937803896845931343228509802798989747146858535684268317876372201227193719939559386183483040500990531097334569983275777942317716594492831414420216880411675582155806620381402037041270955316785221871434295979896170864522268114570196249474217522098471790948688522477226601610535565058799940818191137837092502065731022258729472634232306750274861959551568880935257546874283950201392133991454467274269083388320828134737140592367631981952501172899403505043430849546965074497222318160691256403763364987839968467624881645413244235732386935919852956542909241735413638429015087510579250183946057405677763183301671471107229724151063730359028329166780921856485867950883192814845552738800420033457947398682181263923289608988372275316517724624730539123667984864834683783185362242455760865555828284631014997363775058197775603001914649722231974575330077337254794509501051907527310439184244435168745655606870507771157828615778164935766683450255126067309408401040427233994702715480680717505189301022137053154636213433952310893911334753643240392407728870113142550106745680375554920555706449977842508243407091937574348562738793375805952509740860154238871888749852362758682978137011288074089713749464028211726871174221704433732103502891886931090800468632231066899232737092290338775481218370914362502979857884542257254134505106860030722052171896397297521052648005326993764764618395262648085480076601232989865858674010810780021830042079944644554929853963625101895571138937978020461473325139093820777705515753187924808853724920514264055490648964455600317918581377219510117339872240622422044339273169275693560458191915824121652171404996594436854930312704193515364839913433262081667415912371676805066134088816311647881285885972541095973548807981880003423317878450780689752510079595426225493237368697182359722187571112199566841597627375071711426049947515213875668577886124769180714556938823584864544903403908740547517997704703214246447338582148129337392678597453769992190468375082578370028406092746859460010977664787336054547000004557051212690546678676990278572836351985681068221631005043311033393824484516600253082458159465795769290814526289655100859915214121814874213245795873693358128956003426682342059119679863345537969371992814145708176153462093228148671624862497964026936230932197664452516456434915575781905010718128804144280934086043703316787592907272659124087894105780065902326201120396072692240861451143686487153180919792186202295149343010546982463485053276630825384280704479510923248238859197542046411343867310995511568292466033562660774280078650216533759692654504145268723251880343918061037914687090038665963557657445290292269978504648173887485091176209392388111272106341568148453721310080823669586586795587035320552713153568248525893777090037091879243950587817541167411634523966684484514671555486202381667486862917253680023759921159818589878768857389330709686560001600548378519533894667455207712837915731005639108315697922955091144067816537372292348570087655352250676676367120218095599598457936438375198878643158358497388448682500928851525561227410786874755629141563525699735332883332094780215874786182580161826402797072399438706897070647741906907307902028868357929850187000864994587298937114885628053091244121353462660125996974375107340369711773642852488295351423639081173668194467836550567703579864413055731790863522604313570463103004870883608298881763043445647514570720385669134071665923146971343734673012255248647274492970234914613853242885863074523257777222101905758838562877158598320540618993250016541447601265838086307314536573220921832885934722424819143671940986759509335789798905178121069304276630358244348512692751343100521474535171721256287843389223338602044205195006568748643070001468114916809014290828043071823990769368220083406242528124322928488036013484434746397126514302855022477591557559873997340073487742479099017970600722934286387967310143928086046270416336931976392183869495303565851079220001962284320433558714244286765441188091478970316661947683856751976015304151158179215605927947802793083405955796176375017152232879969573905963469779741318727874118075565459959072580338098047113030550143887002609604049787452050859935145034061021620913889150992029424528513268863738477519840285135978092154229624010766061885017594773438695294340594170622593744363953358558499513364980898594913667800400371304574538133275777616311955990264493631596745505142489624742502317023602503559093677635559379002664281670681667362750619327667153973107846375544912488263617049066881608437876994248692728536205048125057204300800858437853908921546423809204864359919764698278920011815206559850779850790151613788667931189571161733772678359246918868219449837768310022876962428078190790836986848500300894600649989549025359696487915987238348092383037698406855096898603909914816066790685115775182715335373565024413387018617220211650103344898026871819472529158820223003455115027467490987542818668606047693802593235851673011449744658659061932838926333593422071808534069177793838224964686899130216545763417509924856145396072900259161237466941829714739481097420544907600383287952884687710526760900650950734825815553484801457020850978436180694607407666780302289789678859858015601228632097018267172790456663825118221305202904861141658383623597091288977239084810707054371289405139070959298523460509925657789414134684161207320914237465729741411149602194964774904538211635740507694025243520956588769447226459188568188824524968057118276466265269734297887495958805253394731638322013580732012924206473572476457746783422685035695978219010205374013454404015722514382015969798437365387734376188527082838916162786896815350503206702306704269029574772366336889741339739772238452498999244770440957351658470746525871093292162600156977365568130066377721223718065020462934268842452682569940727615166313431630518367415739313798730656760921217581331579454828996222101872830765876872243658182306451751003616875695865398199118020248245976187515117978180409790818151127229204920621213245912674850301873057962340898981673265693951404465584192863880436353135075414382038864041626514003302452537992576171537277279651194941654105811050381259128727466709757849687325638980442392759820450079255893447589032482532907973580210508421278611171464219996013002483676046119163362277997125925388638271318018100863790531501334269606955344452320954118883622816625964088702557936833685539834830559279648132666092542083139785805609818626216409362167884060710764591532042337933662563277078905536623603348256407857416505899849112249459039072690669685879651519972833362228873997940623149784456419051694771933967244469003468937102405840230257038969515555662187421346840762315134287914401603909509521266919371661452036392967335226373564288462983087777491539824857786862772468856580177558451952618021086362628887319560323394721006227403292968107557184713950013748596551625345878123726678411565590742730714363709547415864336595792470972040481107327732940476936793683602448700877861670052542652565971279311507253104706637684456854853848367802488638695330968716364486626633386440929618157694930732676789911764793688968050015320531728243335117964189680772879863811340941452625070195848258337991366929580852884424266792033770594104819654208551343410644940298096668523965404906495763863089062410110659172585008754953693993255255141285468510540743241474313068943868432179541685394395413000359842745877904791830398304084049179428488527091362671955616963051347348752320997228094934936088839821469949349458945115312421705444630502243599536049547674228310090820520524095889567657052320782902037011809461214387482980489158498300449963591756216246654890342634861981640429799072391272863234933271950609251334563053346515128377214736250807654836838374864836809793433878311901225829318409177780729550603103869306261349911761017984157859288761851104905844346288186079921200035311609799305013753170445122234821959853075633450768307314455382619484212186929410094713125043582066759531290920385711255717796314511352905669462832153872597434886518954450440598861397387062167180859894329488362174193758699856516537063816053333434389115679674887832377204787160013046203686097419585618313928938330041828270397690496389218435004802488968416523139418738702944162004314732328878298937501715077578682304102308683863112134143791582966378605805438672790916691032517266561379120458613468290920487443163385946490722069575081118569417605991914491876299657579473107446509620868743403728789003214790376504800055619005597178281282589891600157414030399215243937991220473100711310395378759940046900976596370968959345973770743519634903326712724987555557801397181863964200009795273685838698204137432839990507601777373147493381526504822238811239011348671743775811462823859916062854202204035976492857648429021790526091706180459714997485858710288838749686318823557637428226109412455841969625742331954017360214180200990826536437640496512797514249735945480576375084216430422139458439357549399715612374418403276024359389219035926595152754211597817043345298619105864493303053773233731702166646189344056801446449820232102218285385028543689017947974555019221723838951090880227062709688445202615115319491077253428445826027111529396838787857729111909434608056603168173500558297940573056823934937483171725195908885092271703639772012644986985719667233860505453807442184957066280976214953479122076008179646391280526675212895346049099432742906093994336068921001838436515515600170867822110336362324794629688176450551287915259425251562316311178682974882352303272776475015924643778754607252112065055827536652956963424652616276199204006358953235965042973781201384251344552915607393250696142527193039371200404830792943788586176559889486279096385968968756683692707993693628468763243980235818766819583445101548367007216583488305909031526567678361743071609661747356112198804092565080019460560026298653970510661396272840631701257555339100626408625963815763319443963521665920256735457983196993487886192822832310093036380766195347481460823280962325039130153900037399031293615152647726914367354777985407520898764479520762508165149951961020559258956388162113002992988786382037439994194326039925921445819284867726732391851435505923626278164585351542999057663475243597367952280570474360822332898004574054797701508669718702496124854051148942178137148929265661169753806138509306033717453111170928406234183628303799757295278512084127663818589949962259853153377898611919958970681610900382294912409699131394993958486632220376726159406179845542957400103625498679437837021579460067552081517878591046086789851156849443819478729755680578397069818381797390933894892414122571182087748445695687225974135069511855580884539091274931230801586217305608076955321594675227242150291603505720492700572433986874335373031030066759938411758311449757902359264324678895960703452694790130885305974633114275837694540208239635331233387779678152641947882796073985653546558731427600495838383886110207630496399137129351394121761910202420770574028451129396892609661020857426830909918238129929620894682817112508699639723564195903640166388256824270587437812866233723369099897798057859648514548921908254898994533481329058647751885845555474006341916490471419414363780090609071334524313007310732838180308057397834358139764094232866238421498254014232978086157782557040773665935598490842488580537377564251606129981155814225174410092087474706687158841525729502997852294656124838045739878284218050492020978017156825005715397443638462102321201580369168686714892727376372920948863293523529426440481885588393456864623204950352881041400925652117170541257655181707563665166320075008380772456869539285316999139741851760046615855809156375135256258568137000720338851537035854573519992022870222230197733127832980128610380283644692855950218972412732117781355203880725151390703412331537313757632041943512232064990040244490019100501326626626594089726055850633296269184561530012152275921838889944347234085266243413847375689370204002447561325331644517469009844671849979883179729552329127698414913784407542110431983677154349775223050996055447510094942859906356499669991839822679937321706256417247749103166941939227225990739515434529891238668575601436298236734545759582852438852876795482835862332120438324318263429376312379632989578340706992444797196345384679045955348279801980728088497739718637658081956256497865548036471699143169076789129321182512600935229224020304033122791191786194914706330015892008589285741954901216647341464254684939017223381361964202532519126190990491390236501748090033329529215500612626693741846492355857421922262688513601872893524056225081840931684577993328685985184886582574520349670260337852787174373956045610483535642892657062944195664253002364127285552141812095006628930858726212689361218728363289492415766353030703066313306009006852789629133116198552014206696208282197395282412764070320532389505633268496503028085314629954632560477381821007163448334806617426950611753803446741214434423562794076593735525434516899557944454651962480299073803023672067367991375218747964930577959515159925400002024082037604620338641350558188080399006263802403029659754779484227649122921423659147621730572422133151226785461907881511715560645651929614624001994523954691774771485562501235972796702468205103543863263780759459656201775365051495135523471966325061238328054698077128656915749626071170421352093878347341104786995321260588018162705654129652484808752582301357839074753015415599220831790771951597894049464434841305415171549086706793982762401309030958758602106102773652563763267357660057838166430363934784541409424240445947524981594672440243391884210547583807347961467173847221835837669082587197847295207403036761126511530043406072391114469023294113204789026479574320287622406378948021198033804892099740690143050025305251351250856040106706710542270393040976036850740896410154031512621631323225742500318529100333347400483941133937490180966746463836332854409865406722446927939264542385396121337927831350454004809831564271157185588294212136744782493375943087956826488152425840823040775594114036649081486864819985058548101617382048833422020728660003788517053689838411396861905660702721135753419428696299680646352908324839419574158764504383733067822285120793168765786416464621104221763949096542125635073798472203483917996188248295003178201102320595498302439506462145342163607124503073900708645905887042976861269924628248341068847286641664500206529953531164147722090134727261618660600572170305777768436738360468760626785976429996713362737088755069692633310265516728160508883934115171132997833080506953524088178750428647571512745139738218379913652103434658651507846606537001529123828617497190827301705582276530951624640701817736686844536656770870650702457705666317585100393562554946517949058856334544610009324162540063371056897455971023935334219894509500780949706500078646093838940294212314920716148571331718016515131092911136919865405690322937551456632888437246994223749941845601720503801516491403329170556816555620440849245310969384724358758903350335579164739676833879269876302765812521197679075985296266709565043443947393929186320978057340122395070235331119434094396646289369598148763091702394486120162163422217077965802787622773211141367593344029172132381886836178786778865619322348948274156194933978755708215927840276942139868121328358682807178148993249956289700792924880870118140937846695277519194956758717648130859754776340142176861582941840276955285574807296664448185626918301421946098126356012772600202269899808631565615128641361116087589963826473563854333226558995089715793145145189485407454664364482856528910534476183433464720684606141648794119194922634226216379195991947690816255556687528669359295919662963228759960113207766879206860341206712996952168013109083040249452524236830207119733360920311212784879505472341791411594418625250596653323403219409686421177567475596466978480733792685405641090395606258159171442247471506896132420010055897028136560253154526622107333303789611961716566791490808257036021799081212653863547586305063377659437390270242535459608589612362598048714233855610483151885305480687096536953188114037454303949901144048948180494225728190155534463861408992627103882673856028589433021505894805939146154552021473354179266624313377998081636297944100336005282024052706509913169747698341619851689512245443859522751526458086846403121845514211108282872050766583555697496669065579116364507492497989499154602035654404721257086216276915335092039040502331409621950543967318245948602549498192881985064418762601797972592750989872763493742647805163322351508753450811763438447132680380702358983900706731792960371366989810923977262919294900472438503525189550112301589279206718216386257939227495198926982980834756361222810458807116249898425056349743202103068999547730270568847222251003712656708513487307970752489814381228137653899006711595764075516334930588885946203760012196980445197396270304646415186397045913342962001211452473632690639834305499287421611234439935639024721575602064674528605813026358095084692348782284936056450612732988846119176767493887811860118081155634750430946874121758893424986995181565432303217578046532893936624073165423526048014936370895783294215977817525770061534437789440445840891379814026351524721533095897968547909879741248864019366835982046127378866390972063669878271470384960402734268324117006661179991478757517063204627792999447635255994457127742809785160335229340502696457669140860090560270027573015504237716447870796088667263468403411137997009536976824885616684373676164799433755120466593729938818704742505780113479106066797934443340064054998879680511584652569545097337338274416861013632054735441682686181620837315517774007382559674164379061192909013684156577261543846190887372141616229584530216162515910360946752953562147167526007199224956873457356691277020193949650655735242326703790304621459600803938953502268879604646086796275101586349807465126857511913881896695451419332984464788769841086925794994813114794117817723141271572425508681618305143679754672606308554023472576271464888386409754641733824431537798838945590641627561319894008014192555183228013009143909208337444521982284237639257781522218802804130389514587042094789031308352377255833028553256599466739948280417769076780000898380402961343750701710776741354194974761997285667625717055458623607897017428742851117246233201134994010113625674020145689674600635075291024261798670178751016367745378980343506908055885018461444821899391900282225980499662665977856597120448323076608410844583491091268728252974543169718803112064140394549359117220856219349924098887765081333216960463508679570611597328219317448741420589676007280512443314011038004316166336173818173708836634696399744202864815526806913697127835309732168967308249123035694374154218073600478895595424392634969640162483709282911884334014009693041266955353139362757172674283613847353431577731966797332719625736828539121581751945720755650538535160414818027920908715272053342860583492577225453915896162870664177875605431752756645208677437708069014754615226576740535353000031144176081356830755021638714577968004697092709291107415651759123676998802097337397342598867579975645665755196496834886557358625808275301763379151931416632645844215964349785412740933615575825058783671597073150532159740522448570581615756184494718803533241940228170761937466934608508688295216225211083899266754688982909725968714918011811829719448302940243419575820182046590855848820069629024471762821781013642629524758822819423711849579513371208475421260908041411912753166603735141825118079089445357340910240852408426908734480458113962483480418382770539885499635942852921556682103975862920853937144279256565231463984254341285737993808084985847064087332872840936103989166278164073890165274142373183769225471580277020212533339872793343330888356591549660770885588352039962948905735841454948273486577663512395292796197614567425151228289119588846928868309353109904840645390394097406340427597238357592362213892456092557017712804811157706859934496529251603377135478811867018290910159678959529883145137974504856154088270679873667104124229643460696760587862758944345564891431552614489753219105097230479776880031988329810475205333275379378576449167832949818064057245693946418461173073859432953030187685350358602205741679310959116486543539469616490883364082280729337624897016103337806643380617262128912263689568608562366264608485910897052652768726354624156412367140214210993334588486118517539065518873568220278957997900022712291046300235470001260665548576215998593823714047964576284838101062314663713752732088014545442585123742033417192331590929027572646564795951905243203213093674804556561110493282262104690795726624477090710998724988757979134647172094662749619588434422901747225882596914281174073685172081794309223133312008588913522514623610221321157669203267373077479234008642778641497758385665338654307378626930765437572227739478740449008229293152085890069185125899548698947758619183664410929964940849191473337396295872106457042349514340856861201835766732024548908413611537735916777356851211065121283696743812048175839441485560457509602324540555559577357402731068880203916530309660720758304243013976766234668351346515686615227435232011838801450736218684538925356960480154645211115751313341612813079581584612730308222316381315936746568452966133010418142550066598336573313778894640430630021201039595313234440608176044694151957135376787381636487813441186598207708391541880684026735649552059433575075724186784786043219559424926622909974511352824060802994594058049908318604889301345515369002945721471912402740078019782626508865973065762237695291150114009627677660146991030348662359147228108392926902342892563576966911495909053779300086984017366875760896459725927564858100785446109596260956429261535360346480586977985564610035244935663570679079875164542747873191290455324752854140224577682617935611035908170833244197629367848316331205383018282663306181667659321165605493145201422922416254351047745915566550411461446804086780080999187209841420211801138649902993243700916530632948644587209051605574406883555637086013495833498946437153425125072706290913312035428825477195590432806068415124045421844695489881190696576918963787686154318717896473407210672813460549188250205830905485826980606286386643298832606430089729699579333299752360968766544840701054041497512426965771140350445286673457678632084606444297056013426843052009574698044250603591969714998758176893072754983566772290987130965745156891383663009390361527919454168722990805222111519008581951847278218249668856182542413473423831845613735869385037969442004667994622452590684029165635581969673653761658366099289269908824641872624509806186111536913331097342692219754375925398822127595737183169435047970827934137738082201008524743978177690835373305647673753400243953615901828206436425284923100433959018669808696408005685132916093863834013186554582216263955001282343611296285906650891825417533300325023891612193797193037802285927139074956953290911511303938786447204443365646853921178354217337074880757900560206302312713665621794387324069645554897168427781493005489443350722914474954873601417103663618618352020454733529720318638200774907935169141529986305084482397811456290175880623106729211476405661556679895031543046640442233651479852880527028186867716413004921081844220295926701842093138710973140462981756477807652881532720356867146060500925341890404334433754589173012835539376436473594709526328836637450496693842999948219984320491343160990702700274074619130548793668620607263747163786846189049888444221640761597529750741555358166679223112332772833439081823694136147473157068281075028524026629724913620346523401603231324393122989563610284794278665787641445455345444071461684660410135526296123980817139356246224773660009556322201213990899908520584969378303907481254238070979308969771441089624768349029388291197612829902152064042916206367811411361834988850859467507744819843287837984088584245622747829940830150561680913174510682024935955086819472190847033015977967901040095820540880275022013271516539969694887127207974121083953571780710168840019950965937922871387572696610057954924596709165267810582387108559809956267743810422295068863591026852218254646903317411287629412120990163295413322142861004118314914412487133022893622820198985343955064629789466463387843727173556849688337733263670758293272951096071769422021526324398367444091950454399826129955030268244254709115293393481455326929293016405794143190044192396251971543282420372851866077616517104073785991835372826887283350179974746613342537253749908192379712021399849803780203168220551413830135570527071758871532658839440471921472218007713801079849283609512251468024877217608148279456972649492229153109556800943980551123750399826435068768896910516418217966634427363002740298101966142713433335563092928882801008407654219720590548303108558060696396970217258262922831245548042239430868063432029101977792778002611016408278851641266003573783699643504402013961538080755523238878253536437118825981570536203384867903046430315987568326036034036669150436316598727181628506893763053182517978649673047203277667006747385257612503751986911512079197382344410755663848814125412822676570332583487566861610291639605148780219154241691327623093667631984975726523464878944241451138378656081337003249744700092680826178407959905165400341954865886462626497703343074341434236851724208935191269997471445403875210693211964701433616639950411300911213404756944927506462234887153849576370857002880665753176168745228729771334455812833907037645205521477558648619486774521077384419076427414301288724908528271715292555938368295536053229284316128364522996266196813220516100625609240571607590572994351502135682104506846476287643192899497997662575088881291923444275866614180195254448163567559660401485257697150806875094075395174062705772452297295428210231379056845821872967829914610085715744679326212453551670613577972921630309314530464182146254544662907292721871645149354137840053536880347710423502350830689543844141077347119834312052692053841811153413290830709855627566811912942020859654770158590259968050666609419828116801174713409950305702007454181370077975636370049594816665373578281816767672540513347811595342089391977149786552482186544332315997627915037364870380051400571868536124974729939583479600668654675939238163298723337520474801300254165151070690901450631115783331552359567775540549426583242375094063201406585053441888888750922222362740872532250814027746290848680688325435635867387930018637500581501488330217182347757515748913003330877833859123062797934235957824790868342385043045827885351305761196666543713977686081885470330711177595486833650520952882567278585305968456951581258684550682561351640123829008154394839072634357105756000678064464368990633330008467664408807432539188359479338550429337917358426358559174526791958174948137460188727589720246554121989752657107331754520372083860996121436952640874486317840534710199544682504999044572557633551456582539240337564804787396882484340273130065210253531110271432511709635999204861549354066326672992681493781645059197184417086616016188573071677066741367545508759363464927767794435051157774506196102806340565917240101376884237901537068805619902966294514723170833856920908708629680392579716174228565192091000651406678618859517604854579486708580598720001242552807852698631566565910673342362254763786570128297724709428317775674340932240045994745294549443969983663333731459144890153753648626063064484527602352722309413877738848566770080922705564110285605768271076776997009469813364442305875710824423226766254743756400582579929236070518589289499445515444567858132254026685778248100697524210837877310353127594650691414179776778579109857484991219629652659356065104660804593792138717553279447895385265282414970743129947121403654473672434203895938267903337026017826888340951758709337408078776101471427763692795244457005994563409166373548897692863900737089944202290066201989139017975034437170223307146244249631187232329784332636492695203631829306438850090930386154731438162551794132499465891366934271636258405186126503518425738727062155621391231634587732423616276663130687649774883937821092364720336634506021284397910914071708448807354929917615179497273017476886047984279309741238456693416026207292910973527879753051051474476149171383378296202780150780416030000815178051252929584835511940160776212868287874199209124165792260472504733065096086613196503456096703939893171914358054879510596064554872743905081985020809743824600704682741435100406380464432683143139260531492117114204496960121076757416324956892104054592748883598156359781170140866845507553908510075604731960443744103096015374875367994454408947932738328075804706939111165594664407547349599822324761680900536826394195627196613206505634412022072636398694937597790515144579471046844897949452633648474719882852896316778183579290998308498325521139387801006725698697446899803655373892306265732214669955538601556513186749308370630706276939497551710968793814883191945700064646317916179678356125485988749336205960355552304968619882081533567308485578099014816674621411828387562644351058289511778638967083065155200262483756133214998229325149740526154389176039035611316398944303183824029671407600437465937333237940849017348545729112589945852542037462953519138674472490484949686050614618728832672121902144982551997390452836005765490425045182934071916928768842411053942637520998189370268044834514443728965329206208447487872595431865193733321045739768424973723743042067854910789790653332528117494780649748762438721403999774235190690964164974600805231930525998351204908335040216022550301544443109282573291611144994145648311673801108992970858256437591437667001419651383253781012763538577669583788069775737941241268733581260838904655527665978831580076739419674916636055832521711781659860968343773285464470207568451585508423777556497779941782411055678712135377471323466709276805267015431146780379290237217668245408323057947170308046001797787837221285248000581199078994770650437198016448065103294242053015261498592682724254740793652190546502670694751719216864997867531454363169096837530966571635220622580930358062305142006045304283220830741204560315750496511164806884698734542130900918118344075099335378678113209321950819468687360932029763918525248877144437782090834924169959713958123144041908393279383400318203124211687262345955415662776107720251564952513542159269352665605414165100537440404139116832934721512607108560073365564319491134433930596062111335845240174785273389115662204304574033138124548623800161561462126875399166940454347856907904827641622726700369568865276787493125572312031212541181665735372689505748686690892000583299410322691193736271031223007626885247526909525229817753296856498419641463117776141283644631560738218295077714120826485002950739768254002867349110011514861463332037436972955748111398787261828426694130245622876096043772435563445228301587616176702170919047208780988694627196387556061022632108351931046993731001697558891306635220307838770906566323808038861100888834361775019640688027769186885843619576033324298470274023549504058840048411658430885480701149769810617079421013627010855642478806576879147959011762731383156729915938394715304513186819100005684557590021167485788889055868715906199385246061609005370756542288445526973596557723227175246359611425075246260039166099521596038300550406585167776057711626986077082763530598067596978876385620984780407906771276475582897367908422995817117609123074017543761380428738812841153141510367554529395548886285705505176649944359892268418909606816129517752391226721071682172145804928065614136634532406590184387093509755621266392769823730526563809700098745866723955643775572597674682136018878424484361453800041632403395129730901187249099816648293996594893033095026650530393375566794038087328793161372735540108525123088830238307163478697437393440854698063263062242346575074696715424463060239058699345055939241809091038863947510551670341717277490009555351424494986324491507173751698602932786115550233538393941182230042831935821539366358333782513892381755012077175793784617131822934053784618203467459548536937126200545881828262529400166386869061480614341606658606709887711507548047043726011976469274144767492136111681992359070920771139805595194305611672336588536735129647732886029259155808420778361114471812055325117408803081480857189838877764217206803751573529064619434842102704473473197681110928349569927070232830495253591923602135424613772483458142110804828596516014082958162521451204759332298759712076111633498529331390905462033953895220323390333750505400407114362534056280086004506117399227563028848601132211045299441126844190214506131144141162839649475738752908677689480400983599519719326634398125580198758248392800883434360579496497881210612823448657577479382802200465994928161869033834433268646264273459742098994420820510220636522801868889965547058360766393701242722227649867112242144081644512152128190307180656286070316846683779118113741176255223356656967906152713925588501354024967856950389339185815993595841793680002674966145102754569108391886153450534923883573320154475424974128915080247989086723747464364005199985877460319820820929434131550483003807744730793140697168147897143247831697742314696466575082810994889074881984459036837664998642264287917055319066294335646193128026380063177813312786456570869607778263275208687017287529550659176932377021222126388501553751186363489205423690183792736983301648276978334018937110848812719796993688915952095868619912399554744124844288301989407729102608013915233730379370112524637829613893129672774059664107988512762948803005537165410574851245498627588211523679415622124754286580329111466324549257830037967027414976764114848658513452871326073790763568921837696677538585576688712267459289238298953229581769441017946294341894898471081025829819822329510992185817688580248614919912006915709431060123386027897526106316782167184973662404492746783065519656608892441291716197841539068717526922830441796910155528184061903449744480024406199280389367985544025681917395986481789951111273708025838777783717213286049389215514454663498627693526634552970179097528190200702494423684144300508172904736155991937097259991408171813323528435480346585551811688794083033188814473982861224970188306647675948055745817371048543916016660108718420774454348739305342134252366344766057823157020584006864152970452743416148576858462241134761161580669036930986244679397839899936024848449777909620508957819963876386518572446853882821308607124066627445889852836264217049022346070936783253157017264354316799587132120747295604888826638677437866197202034927215849828958779327710147898784172634909119750210538771144169048927146058866120763540321013633413184899284208783624707208085191650395101729335125787712576146118707886659682555154428840830941714412756117194038070460192061909382286731011541729237939834041940599839781742845980078048360988824352862478964373606305076722885765542161870915348931424226241305773261042416094791483781531833927154512203806011478026822567480298345054036956214255123896834142242950866951022798427155763420311745903328815045181111362898523012450750666339904900788420821358882488813430239180652423615156199442326135080206247228137432472812784132760813612887809628199420192819552849963820485656264056035847374686320101710547931873371861439880378559212310209791985639838676779976996650891838138878960057030068277318605619795106807587216305667426243462803931539435837855096832507706418744894445221780375569994758045374448280336403690103927248408207757317834756693829937496069271274932385704508285802858909400652865910754105252231511498126821612916817076631965411909321569773907606256281468429360912387814009970569181161735915751920676827085080204506440400893734127244743931528186699451000480248839145625179492224407990502831435156164426774402875005006232843048039315962618165460880274050159606189958559808432387259365136857729555516848284183021515033489375030071873156025161172880061243820062882054732302640060145019085256606069713097291386792453538920578374537125794180745513051617428748080582217559697846495755870915654037900793735082807831625643598949450932384940992975477840233712021923056704657869563127266052311081225480982357714883982290551698154822509644456165106456694200005533513335871322851183109408817184420212885063457878117009489167467144734188709834512086941044479491862204628357011249754649550873528795008936180659916770526572814771563603099823892365451796194232077256643595555355298955894654076251567714876444429209004591128280430429400294945955285046590236214114471273586073630748772493755340089081496140034065385663182109038967731006490132518471656202427830894073180364278050676666352699589754919219647328725954722184514696642012720855014602574014791588822207571155432392489288737411492963409134899790232888375155388978503598214098997729275398805910159445589372954921226694985894333231642794792886399992981428525443349955396410400329389295140098786592314066983247801483038522930289864153167372236708829650743140929084032458364452465690292645263738886730909488837445397041128241513137586309652721791991756483016133411166004963882935953034336955797475290817695580077607688122068139625137628917427568504855335296427648930181864864965209261789054084752427505011705412593544891700832178404139026706960485770656082051528493571184242313000645763341331271166580133467225754052189430647497524142693734953611077464573777617427314341796079595366687771464638589306638014656798770049531235634218131514373593390180033635747916400516889486814354018645309673191043285858037075430451538114468277151798954083969780482254635449849940040006956711358399348844260701950338462689908004585589986283409834918705782818584686555601481241869853065770477690526300234720258090292254118439750073267964311040087887937991129169240230014512257444974481507440015697709339260994962535098487157814809441858434668798091988583699651568068828311799679867546835516690316057006693300596010675244881232382629743173923631454582447762660625630031336434478836847959900188414011076811980523862450840478833423757493181764954093102063857010147006408598441410623094078695953023272341917108283369208152755640083717218557435958245149715367240880921565758597593633166636580406854916153751510646421136311041506757302157228968774496244481789804746525483571014432790698328571971746996493706336212670415725299820618196823179837650787703863514696309106917933491446445269050079442652572226303295030730259289191244298808812152278244776672338102774871586685156600596526140993511889347700922185641677957989904349205817260526531240223166325844958809861655941761869296904565545199313282172006257555672311957668961678492546359349994759172709506330368162385932588629269775092411832027650409582568823019243641723799369594208041101259200022586748964594193758578172000268605230682563050289680603148940798601084753528863039209979308687755834781550578593434199758162963427857079602363239472779903164087678348085305637910393712338012905569431045027604817988889677851445907026250349517269421740136646155733809796913047053447264313279132236037278574905768133877636880620983956024507061376230444510485637011272117629050052924055439889329692623849494028384059003546399730252646159504989926196675952233674005860969773317732247330771526735343717528469770610679647661486631677044183355041681490904967069476578572718179335204178222049288236195803271391555912318441761760958321758710021852658255116451531383913115959450600215977673774784844126871678151744729079024080419998732273584562345444746217101827156104847711990124513263065721206109452751135927245409999530155294426780470383107473800832971719060795278282696367618438599606131470040138464263656245462988646922228756554041425508170089653107451803927966866521477738597383133876226801972282706519395875722773480642717385694867138592482901358515609881410663865013794501624366377164469271985318515417533223091275910941124194772006084271913500142647382382505889078847853842429180474751908118804711797433878220196073742919191642674594717774686080172494085944735786938002073669618282532424353447107589090409080172896821967033821100434585702971834732202914933778229330529269113048819643940764583469238394775575102027686736041203351188527391070759505532154294094567995047265053039477788916038526832666731716844702251561760861814516292583955311202338350876117772241591916379883172290570428595338430690405842406809038929485915012461572017801744076475159976137445319784546323325870860223138786084428926235945025051928879727264616571227388876334635110092343715387037230507619543253268873263072534595682379315931353513888398914910702645249374500055954752041617552490580614467993056701913921066292922462255320487953220526975692650675432483430429329178811328128788552959831083002349389142190229009040329862334546332702322871212402287169217081070637680369323102828365316084100641919474855921453622748714034027183932096502079054873582147415050269356417297374280067407017550251237340899748247401471479129095299323985921395484336468333699525535595236010087251663534510414319680333820007023898454369911231637206435761059073216912127574628507783700444923488872170555662061613903078486761946767461448080121039080348929031037144480209364188907327666992543884587314123875629228558247552452828144684712384987863785153203955118887369889581232550807471661567107314266230344883301714996694987128020727742399982900773258141458684486572305012855931921153642668891382385439954730899704481515046479211259723135430950452593314449081256449234390109444688560817525581990409412060658629370497433043412926415683622475162672841184144832997547886591406081991893688117738440054653256922543887914871025811675909227546686379780676959561751561859442737960003199791965680773406498454013631966396109177205121696787186989514295856770156382762721721821956646758538185416226038212988052263865657926295152406649183582368517565602251040865955099451133006748187155730322091658455194962901812330674797913666911334976157589599017725463785162837101022230726452203808831204648996812501016818267788902222954897433135918021847074172463011034750223020058612709967108782603676045396812524092053678346764726103962798521506946298090605692230357277240628621502379641100125578536264652657496581340662218382441366765017639152899290214599125654000852895681972555067372777244619270916211336955232767564547259909984486652955751727601343707021921495849260098034611290507093869793509976340054213886251614475468469250273778784740588293001028024638772220184582600828319299011173846319005543825399384897355300519241256167806123451477796324015830610612261793079084436534968147734700804498823108765080058747390502265142676270696108725052822134302210099328888194392299556019422492191384385584375516290798223842435704379699266275211694426308917851220984934472768112147273096218485471020131088950617258914948371007354440786847496625928779117141200760309580905659140650333081898541891005478380006822412707122626524424823753600411740888644203098934105748076243624955197168263115333990099788813966580367049755835403097794748066879224039166704165794202018114567000683524002220204938565718350767850335038577377846545085086820698810552589360253252441871864659590220477493474196207958517617464713991967166418777141534423829106353798399859668021375143588145008156750384462547065743967568933074805629028526700407050773461050941507854931614051035088954012224469353051942703374325700432490669870770324150842306420367180246751404300514974108539089909351042257317758036002023756859836491308779982147876178436937342164801493220087823261555889946367950139151112240053981444245322585288553135293144690610986547156165519849853571439668318373734956612758573100684315184323494276165975067082706730475732534629992402115439396046021640994425591674598604721771075603264137895046363420893404873249246766730729791332932201070657503760722141363980143705372805680240101457554368050250834306119959011843662940341546872980576459687403008611754675072477131917338443356519251625540193026955494339188529967107798860053187819893502962120534283292474974627255793789431200109245876762524775725363660726652666784500853945100089902164754688794412338300373007670813674065684534505334115579889320550321719733232477932652606893367036335062578960698815432564635139917958917887881779061746573125643898974702353708569471085726813887720881380464382629688362761993169696849015455925709552515687220923244361135748202168298335055668738740550976460346950733804913875755515069860902343972636024776163261357482427099911163549787206311243274925206007736388947573232905437951700654652991340450641822616787811593621856234763133127664149511876541926213719628665961414918955226151097564403280646718608220791149253600188989240065401564670536156656251971414463908523796298600922561392339027650492717477614485272343591704220660373207735647361920396358184617139460978754018811809007464027397990701176939705513687686764395372471388480016704180560247355985023775074928601524366806889596412847144065681330616590239054395234632768428886966514879249509550628214434985039251361036127859754578063027785264749602592614678829096098579485102793610393721481049821997715450376898116945034778803821562709628456901397432739167106191893340308445855251480118821631525157199679224559417498794233319255162159199256565436280946982329073850347578010349365086855888990841931536099899367206468741126096124218069524360331669326490374918392886055464097958613883428446935563466701833704207482077229167041630584086417013664424811747317876570752761293253439109056717109430145832543700832790775227750426747849035529885811926697552364810440043357834423190183941517810649357065533366036624537892357469331452514663184682540707792447434940876333381324975965121113839254807272300252951968010029318046907010793275709121366410542366027224371109639932898534253693300295574989379922053168558706857791075859346089968481309496441008762193358329793063031548800580890111073476467908744432176603201103125603643059750392689850770735109218175670116971188156584080383220266366226936511493213381632186647925713853653461386632175851939200478959384925168717782658588110104430973382325927794081651611296885709851344367284376578693050974455248799542882235064249447915988235513609138935217657619740500929315679455568299112590124017870482186275781684551457644414954139531446747851948101586342887035112980457332638365348983132158827830480655482985959267224052566926522293243357346358329135912765424309853105147715528887919509966492969148596316654892722822098635188815332290300048640046713666517365304165371094617909696771039134915728252265954469563713395752181643649787980933004769949079902143417434526717590403714256163498493970754040520503855110819222116119031898201898078938810056195204017900694007582573680156906626684493311315106753079922685296844341279313522891373010084996743958909150539188030046785320953644723256043945964833606895098384950232837211219036794175523887869339195907427553203437971604172246366560694581116207661570982928518739552073953766675088060998220191589122573056020847554644124062593839978303957832629580024096990141142074166554095855782740692050540870676385631228085817867936229148755481278510864173769643462015171086871788981102578230393283747240047699025569091632535795334422056930640120210330107002108015242282517415354050531498491010336891850018404123231790836855784020200259574943114837563465852272487089747613114651053328123889735661917304009283444224879070888877562738907809960164410903079468236630998357522539878266314696156167805573451308069501081950257937541202152944481025136725743028971558313642643675993114748713521085710894612561923775827513778967963865035698809334627081732209068019806581351767670000724569240462527086886250397477780573511339299621458318161100177118595269499404568368603630944016443123744849762599149437446980735927890009189457674537136533886474551358475792580608107219003280271945374905471619299793746406124468823599959697442249807602553788309839154496345595231545390594521865582469193347574434405778563895498483971900440825305980297500193256587074082434490890221271166272034866073079820427216827216928450920829147594437698804964659485620862945838046485915159556513702980164041086966242015300203236541020052007899752257709718204431978903661868756372266177347261551148066449057077327320602697946660404747600610007598429100063607612740112884710638386415279183082375662900137088739225356316067853379479268516378489988616753606711541518230462671567167454465689536340703817559058263886538777911467391850592036003999798499281684240039870367409995101323988937629258947450740140902918209492126423922152126955478518854786008226281823118563282243921637034086539630942580829122501209532547641962383255580068351020665611904861599176074998477907817564126299070230511909928845706598509363584634189158404718550023241949106731596570976193919292267345261296545459919070321195061636762209692875152279596874304610796099074649360594640480294845467188850280453273593270016774143642227033423422902097548712527581638605812740481329876134625818966000816157668063439724124044927072610915969894994762627035121895635458355351095713183719245805771027196945688392888796469270727272357642760980537656273630787812643939764419630752770680727045520848114677644104948869006239830789768977844845700104572302489886461937176734301439381735143222452134604282606706943493923229591029275121918835787992600311802293704286929143728481340261704079769992687897325968247293116697138820284720995194457715654422442475109894486506866022471355182491462816812655094528269757291377639780420547336839080658745913985621839407412237079406358078377275548868842713136812903472618643096269858969446383224860106428645407560267438959589600891555802753223593745027986450199673157152214058571020718452570667185091880123947434977805646845958445753222875992592244386409910532009325944950541565834283947298636721595024816884249334852008945088639274315063266046599859799065467467326986209711673195464432258687650110749384051754653021314094990594306550058653932419954304867978569211791585143456049838003916166956061750657221175367246527867601593429891052595823058203993967463007971478175564025330055737719152459470753781172167542182807995663679715818713123892865819266325329071784529618839276454641585266175474053055113769631413935384161591100631003325697552380103357357209090365153457415763046648424177513644372205652034945234500017416244417179486354190405346733436975910428509952606143682678571973711603074125337765723208390734570840598848543904449980631053813689679562134829538209256295099886113815685391752417129362532453869294410863607554210381133306510309406706015805054713469419625820750242545199620109148291931852390611736613132733659709018647643692573162307409793424950694824855214585303674311672102017952265492216135132716563259428998775901057587839028115687980220420875292800399229871109495121786257950959260903610718545116361779464289805872509392837184984924414612085177514491777467899885336040098193412711592785739313808536446944283071697293126894233282349095360001642135120498162807962000894528705950580168401884356669689206274294393028806448320768776749340454068963707569040546761518826660709761501723049553724288043873003247619747557226527235813115901403349485344995117510133418184365798399935156110795899701990632316400507654792636283709229232469689374919051139615797428796086411583215718226926863055367452380187617047973557421474604777287999659658967117467454911945885985011264285827488152538011231362584996010126532963387650968334749168543218779896692112862390906269703915132385576224275023599146563519169576185127884884009709984631416872118386161069807542663694911979739684529540325012784366558684446736127889384634514413361003944350841547409234578208056762021723401952628098749299779770799210514882120952382788623306551485940139990904645383910003401931648594457391550243318724048039878515813881720171088067181902139467242409957780136086013670605298107622910792339797877097713426881020170667784328037760592681713981916918713331989390565773459738418084582979371860599976998461254351316629764104169436632732627828347872298006233780468487478496980411609858757063296737273389617302734651170316100113647163130761396637706390267586084540846118654608108846620843919595485844420923768438054577004521281537474565991607009692954368998175265177535001816228064809379313625000049513744310685037938556452028643675668693169783495520356881611962627188805402967203401569956605290142632586855218095203326488105863203695533064353905820399287772084923339034885169087112605252981855274106011975480421310941658884487827366023215808687272599602509378079025310987201815520876730318245575808014826596417140755168033784852788285513780117864449628097237367998763690178042789341907417024044327942206021304090752162493190970100125837319679628125162916656854309756122475998907265032986494042931746758841054515768511222916118891273675085142940500566554079058482014732537196626961368588093141367794914825291065610722930101173549757101046192156248376108355411841333365914080527853251345851849735989506469922476993847554419293822961055636182332271857673073012273214908255764137937457303007768702921857994851768450660517700831423557664261174421984197998463799906023837223937062237798107956341953051999725259644030347402278445861169529888702350266793590141846740745524035495692825723052555168652186134816437272373693465673425683595454108500504160545354147455756791811523460268875010502472373449322832210177906391038459226476783261457217564705216075461067624713386182697565783413731217122300619053758444880708063131197530641437644266839356943506703079863928579278708227866804679137202288312774933838942050766317782096469187999759729914560189004834355388714907377079163209626233836060387869458068706812919860230720799780924764650191813516932630860374505262796068509437375027007962520542699019719459886541007409575471577647900383717471750013479375331817719121940733666202442165781365315063107300806029014080106450951410171806560309014680777566882021459830758172477040310923552303372853850063940083915926975433612837319342963778859791054967774771687520710173574414347321952376052981659888898284907036433142641050245211158306467651929866872047766675298880600930432116252497215931701902729452648352573005748023090342024780999314650636680509416041749438449840987787601467059590022043185939264590130604000304927842688569918618351583968446697478293171744922467254699649014593780744882350946114380341057623578154908326969223333275291932281295704743330103146856170928507525638438086396962403958631854941567376044531548621274122628239103214928006642708188909391700337455991772143357732494279755107750945738476747921010326397591372525218715252523748700329391090250401985850765613752217396834005169528611139380657272865988110313634372039370685520877522450534727279244680753717402122047244724130944618784261695723619252877623432671912490868132901419377606264779597602849170771534792483956548821263909886635342333352115466549831462917203898416720577101498537923315434606596130113359981911750876042214890370306506588972752827915427074574164592911526123079412164008332463944733620595276614911003598391555567585397046956728376168411304890153725301619698710303162440234024191050597948384004423320788787776858976680659892226565712837154090331887067971320842967662034907227253114553046972263852836259678276704272514346811112498568990138540328157083404775568191162458584052760916065467705361375957100892562842300725349321441372349840972366128962904014951255880065420922069208812529449727809482690805286892093734061841361746349577049458424412969772260349988420643963739536167021842627040053731946876683535776622105072621267547754963454282403253742497855624594143640806792690308335241916527201290017763640728318163933113537635981009631435837502008388775459440977330022714997623440561798238639440673883078643081362093668274308679164356603758538470458619665798313311690655501898641227397491021584575564787564815156915882304193734058090613435039943011598912908679007223105691496420511100010395503197398727557129726234806966333409341289615095907634004949846551763000682235771623293073332195840763450139337725085449327184257424405046117402817784068443477866834888017918578114035398800515559405680870445518163405771293930884526127636710230705743897006208087765803627415563716835751001988482175229332323960430394388025092768628570109667071838344552476001271951139744427625459498967735034903623975281529438471650620301527403838627839127381729485822341200616684938986933599948048997752633740568893388307967566864171135168861971587040562501453414047978038221920374495170804208535879997543492748414477428770589963569428566218281675658943829740931851725021037557886239939378732288575074421931719800685098729272670152343770172581752881064401502012118213882045436771820890379213843329949324489841508914096618702886839306210368746689723040620361613459974288005531239694164183626550228528416185942727899120086396253769257987214364677714363433536230547692394918546349647199692691372426356087446287240125313993292051535929243544905340936632062839445364305852093781013506916227084668587206837114884331636997588008292561679207387243145437401486751757405089013820306848682704427595503991668774688443757378898328168984797147896789328142389764655336680745458082041697101854261594506555645333326532234552889854846021808089858645298393778174213753893325494522114594228624962994398338185310460554461296381112982595637305742340041764692634581172151952292536504190781748944845357687342201694071930687972154556969213447886607522115353001348064130481552506217718741908558331797052688117588084760243047103779966313947072706581115126809179265585126914517713903553359991844417842657077649498420710554796751524606746104699455534476079022285230465189040689400420382316607602427721998983023917614190779263275616848163836651035320880713061681768773846449462999707491206497843199860154959039369834575565248630412634225872762532009572219198762964772756896989030656790496599595244914547815508056200270487433230255950346975618220271935157321027192683752457810717446429974523442598554271033981924913794001097794321339398171282208940106461057850757156088312734273659163479508854364842325120205029423170724636490048887391667394639836933972192297019040856983900657007365502365241465869867408397248018478727651328613866693013603546791388177200119254972595324067921121327228337397238222023877261204633459750985317898348634703710203692042484863177801513953423896861516574418793281029245156159921755963401629002422242895954145228907014354225110284459525010987065533472775864062242657593163896770468884961345812676426041983807880664184534542988649457174333255186897101404597283208296476095625762873403395485066226736598238279028557877521454697871184882629297714290106204078543031595109961000318389269489863771235648140885478625253444133293307742698630679305522348170656717971227629176100293897206495745352789355890103000581208330562557418610946147725833236893522080288166584551660851355131264019482342740092735120079993017690862366461273701187499856376547647390912708662523526917748437389176610945067252966199945274627465408737075165484605178588597597810489878385677271847645967850049775976752489512264156070396465153969971990671969356581486863201326307583289090517647976481962582097413411419205619183170337458247631361594068188306516958762221453623389516579450895561908952446157544355207246944014333327423469410366995361003974908673223152342883554467702763731603099982311387031929333035250981430561100673522490083787524096605788420565536693732629360334675573817820191555579157874808785606340450128183800381454681372058164167493815690442458216163299934307964981413187059825642236735192297683902105479582735914614364283844972856290388578590486896293639473541697331032505674657601383520707882857512336542765228979780384447343543090752262659566679235664737320673956311661021301267565033686781744138185462903870074051927656386221955451868579446247265921153768277867623269167559022182611856917232867310813180540001216906266491569579214976301220095411897733306223556021318188862683119668584839219968417338675577131335525297471848589659826777123646817002191789991151126350886817916722532697388503710974166914379970514565323406201299596274162557775771559569569206297711396726474936104519772111259927983610922004599417127861885371096785520899604011264369074198885261620726706588684518448184610705034195589892461227262663819582091197010615999267771132249490049190593925383644676328337815759510352666558526990638214204005471199386183917364553747500984976721819951183656913134520501833262627810341410815705155475388156005304460352735733517127892287759923492305555454349372285062120698913027524801254599501301333702576484192557172313986003487513693374691139330459710669208986242184438588130924214104653082114466516371673612776511889093450088469018150752960117691929754483444725813193901839315925437578947347866224041090632546595617564660152795809214485562642969752135670545745019030923716307011024209095917303863320027287542865902061729405445533926017877949111784139052703500117340220949446581373747928932211190689046123609021191576834999993747334857667302604088132099060742554359905562809586207470943035232477011084998877042564452599785089333339913057965657727573496680446700151449748233615710165412719882033045079015848612623954851140817522162193322315610756540682568321557743315908137397205761882484792043826653606491879317316462279593709332334515697057563452753508519514369819443483241388477302172529210658129143494967682832720200303181902136071093365340833772029960349653918651567047698756722330235971903263531173955181253080421533674532144861915606075854258298772846686469797219430546654608193298093519818142455138282613567618839761730580417666575834834239463701090684311151634019015200861227047280730163385287065599852315667932230458194449881371799689007156951291358107555568915163058000530946796176036400819462641012278432908310072360257553479612396690222233203446661799109511836704710123530563775959779391691272083509276514635355002526841737348002720726893597400985904239781622712709029135348626366443979268371083659074825795670345744065952129624569768379285091997592976394066864916211187623172308443316646001987607673214836041154672778489182245331864584865666268267921897154580172127903238592375010741034143264476533794253375109808927528452876879222383072712539867706377956858568307870045216416811577543824217216029011149951409748100687599412081638248833707464651541660963876837936236741238198765870362735655957958043072289431476446417639758951814057151335811889383138449933864093184043838675160872613725755477288874003732813946210931209987537933510344208543163253100846938353500183149063474991659085332215531092925671436630924734042001497788528534849923781351234890796184889125476500194796834262652535686015363048706973121111931978494112093894194806844139976013560114144989223739916147328991569058314939380715812027539820660854218353016343430045775223537387906686218985859552580000302228954317676428896787614402516263619705733734358496583961399599119379122472008177230887895563675996785537839880050971590570624066212142147062440143427622385389218601923523715405406492765965878477626429580162134129132024528609861015787371488163842599651523460866761984606230860798394524451330678017745770121630378048232702221599449820049471886309774199141791455787870451204187599491513655029915845595811830614626110248209860555333645082650016916331997149140865277719648569236970739265289314840872276082039276296821520981862296056279612280867054101311406486198960697539648761338767739101511520167707522390222232010084159042045580215803585910268289107506532329948508204347043008591138465748400293713441891420002471262159464793927562540641521630631650526912700249562669536321077669092955397620600009860989185627622952974994869584841488571099628419323835587407851296498689932085480319707568057103311409960565757064336703066981126222348238526258271103245826332066567498346243715069819646074563091063614241610170685912323783426489607694341659959915221469711143010122685748394821222705650324072899224927881073012289187663382778967631157977130985386677886974530043076148091706705023729827483042855618449084326244725443628274487855639424995864491882398303891735178007183479897281071784720063459785205707031552742630100322997087248449762309438093314936419459534231927297473644691748917167791835193043940937551663551625168881775480298402192380574924957839423574196773109142210309448400967124756200610926406650743984652686722716013115590935082986587117090430929284301700004039882587467075533183942856836121094475957349391356173050622876096187280301120942319579267632251739122988474927328860623908466941262114035816376598302550543051139711995458905215309033091462142151354328496109017213964045288740621598506194350275459871859330901063302055030817959962548343288896463518949543899486440430101591496622724945654514497099207664578307459783842598094951927245028044859417029083367591281709092900862588898218307251336774869866912423448976552745903721984670635231606029168839527312393332329822171559962038638990055594927154993607383604818493687061690311717975055359960604624289415132643109028161356691028777603832655554344896621715262521857312282103297797949425793399578169072065203923193211519408169616515472626321976732571838541850663720742422011068603309056481538731612497682409115466255263676739970244624799189344524179994616069974147855607869824270621861000114311638123405873553954042773409042924544607046437158495532831650501407775636826561638209953390100708051545745760149817675006671488273594254440052508620492303771392832658625293809871043826999231745167376097819655002927512279887396817458066903871325117462938875921811100808146880166825208888285730721866995318684410159627837285181157406006018340438022935936000747679533534703535098854320923400154642432083608186890223581239224338181702050880689029165811516016317140399182109056846043463600503457986808719797643656568959324256302163094495599708089156885676820704216906998232633673778887469403949918418619162636702483476378349647503427638640534869565387016418313473508907003673129655105161570524376737879634280839309971225997435260784726273130765228225880578763889535947213894672536754144999561306584739822875994658800859403583036876651392929337598109551389313005527361356160292646911938584610942002336092174492029121417261899962910961039906085373563957677322492847608857561645098578484569590424353500233787516898966171725175659274294190596729483996517604222449551302034902583577437939373976735602544339153482644932242341696139320133962526859701902716783533830917018518226364897683566053403107359798268804336185086643001210709820009284898444320596030387035998502139040152799514101451442737062357028556528930359838099845933622671946486866364875955163505938987754943544345395099602632432845291862202619827293872040854491695731144663658029150874240930946266312630455250350856229209997021895500476876366415523113398123702794986635816990927500389399688410190010968942612341178787439212079412237474993647022673649061577712529723309991106631894632669330675144131355214919198372669093857804671816634248092704718191621937922720924011022168080738908430121763988217894881884524691470078124442702685980942644828324567195104001960759249083749834695180609235317478871263469815253392827256781726248030094145599767160245252252371215002681476105243754963207726951610599251909499855294946905309564028334683224002320080739602188641000814289759254585263776282993633345436796547930895587901178373451139839361390216740049708199385585700897200908211490179700069949398653864149090984749316443066462724792830100178206068539585114587907343991592704627781823846102400877241642020118335477369519508567825188742031222831763526726123250849101336800480007891605595795503944404128977241177259999529954713917578413559402069805231555351291222643654435357005828073139381544393277035518935313504787429044004012563664523608944329979415804236234967075644794077148758506872164278273350000685624662702294734888713020274922179581408579789384554825610491909331506612196227490058970638384746809093684318301504498255671113380705043227740625289739396916634129127466482951671109313530106085870899295296777010290800422875648980654462656568780985377354031521280854321663189240919983310163642012955819476613391701188680245306649738919983054448080800520744996838866724455467230102134535706069706329356960014392906176010854755144646158002726245982301212097345510636846984036866471841203486083923790499203924616724395481279338931822674737851476948445642923365874463764811015762668186194568340073536629777156743764511632127526015189814990486271612975182843758395843552136660815549942908515629950083580469618422123549462841048310080907351653626928351797324037131537420033388911222779021620544317523720583476996913683975201052254507429469031490442053220814116713527147894453836709733952686470967078331738006331881305409060810565878196836526653690997900682125381128438051778832806404496689063795807049016139564115317762624364140223345153554009852862463374725842446634915768619396947191932722690568701988249579390155517621967327936214211510793556247059554869402642423183812222031800925608248261253639465111823994848656553448315789985583337196638970543884271835245864111269287947014871595018544590092179796556361090309082690067038314063832697984014277779253538285548724339730571692919032436319665317437568328947326083588990507518350368023755634217903967690379300400812769229496071086133630636301249763220500595001261971980692551131440118867381642719616057335357472648676412609965452395929389294736927987357445024158499449373619513139901043277443635363122648536477936619715556875463137424906248195755330458321295744608434305027890870273263893806969113155363028195762505208620818405126535338380091484681466325273790869697273701295019693693334821941516946643352766349562481586608473349158167967790426423291386954519147041317148160494563635014070711539540839298934322161328151361723062598761597773951914654529582129232428908708993747863930267435861814734064397549829112638468659160496329135724206069086017020722963727877189663226974024369186984121737353217402873533677784655435821291575024189059472827765822259535393084535070119862149608710800393082934121570795183736922933371351843724484894102972409938567318541357943615298500927075905719088161283350566037178704079249691935973710471794592070808460024861200549820806133275795094783009073670864925880565611161589751843928617140545782872947843981338780922618541393097591855499988264342081083758861850324670749494551648846343112485301958233795126912349213469214727152927823429467986352673922596871700123331174003152606821815847582888765948223779099113200864543091144932630623949239280946779212385642795861655378743967169889049816077202431323708736833293044193517817330606065789262869888940873627859967311979650755881635628934591264373135537369025391214417397971693537200351154490716952628112374085534837829336117440415011500965628595898832042722436315066904898070944069553764189921034254881049698753994666636337747004412437080309286389260292981765463501087587633908722791272422265821996629599517955479802269028316417273735255251858176167766232053717526349499194655955641835015194368908167115354072990843289203617000945257385649087489314547248428872114247519990076165283514286359348003126090895368794949016947575856572169554034108700819627684503339099533759427961699850355268413548555340656677614063112797788168569928135463279358579288613290485332888715312536558380704183467120869123857992418506487304564301083933501602457947059563387106858728356815699058433081391231478279551508676656842597846656916650982657641729261625497052388233102606877136341972130985019995722648789569386558055053362865470719847853620678590489174225821833687952339987867272854555920248366968888307638951718053194314373134433342814236589026820225331067048503040441391569872540474504478436490967201126234415891287291769255250030677819913556214430891740700396783539221417022849992802323082535086434615700436922151579576690249765695088423331989492648368942915764977805004451473979256125355882556291615714873845790098999373990513957798811102166522203976099804567737488634741227717023815355315007589166076228817983244766397054891221071757743352207762084147015064369719805942423530987853131206236975993233692296914772656698532051810866473084093607281111465594834418452215559623928134747326603462228565136055510905902634148241493689309034364821257156869890867370672479715256255350119796673654945979527305257292886963076405027591603018902774313238830241806034499331604555157324129518979556044770502431513018101602501079537815703674384346247643172341450217179072511284950044446898048465458785520649230124706673863060729639469675162884207901439638847070897990097810998709204944854483322976479007036376517355064664715466071726237827464836648694838508768033967551184553908394290203187074013518605829427539600019567124635640224470959159918762508530916824508908537324365269088265601160669029329161474233958296664533310879050917798354853860674901061576282901167062843279618849317142465009006313672121998408578510479384533595745812477247357073564623570755875076432520226594292162448104501802786008859990378942312551247084266756142673653185953554318209131122035977382977546912664708633710529415881553338971710552510708577577858144808805557627682284752485520159947900695747576502666750999676675512300269045779376947934985972896059388638355293664743816361012227657190512659976884096087754725778644550209527723261684635998209423964598132033251513558515591971110965711422215077855316887693708096108821359169743685305664905046219588164187657729620098098013357826960159495293310084768425144142170959985592458047310925109650575948429964783779738283731857288023839709218174397922852837661667210339816309803586960066228836766465542997313936942606819091482712012332838083600386801587504863518795224911378261064755943742645496240987195045719247308231601938675519454980971146524858133371312653447021445922498697563540959182326860061215100866189979636437815002679934993659696503911974220344970070566709970550128844459228837393092001125306714178330762041543934489897387247023530044724176979472393697933638093386648543016720651943335400637549749469676578069393501541537420162028470736159395231042813353835542800420273845683969886074210997804013167735848960965874163612310654593371313633166316083640960915897624836194301817703353702555253682819629518027044483327724176386243753328107677946313196029070132653642949239422213590221719869661128767736570592729573675514139088445823423343944444483688828272249377629427186223216276446812572496436547900232394882752978724364325410701908809906392021066217255972308848637865407941180526791411342035905948603743269796392313919106217686562952177444222623716287360729067605916545807749782135684610666331271245531739009573729577516904350585466026738531334225857935484076388615823977935393818705167003976809323053879250958135234733282618651070188121969510239236640691433278456439740417105065015092107908375217323604574000756324822817885621749484040986972462452657131763282414637697919888238572224201189673282730861486988623623421628582272507789552824445307196938419731308627046223896536946714416233719239094074779618279004309186104995197791924827003115748239731268221905002164312399035106216544944623214631547950791855354345627061683683222572880720541194371715133808110666089531311086375758366094037877886768726323980361064158783158816063388963866579897538195583303218077307205295118040406282230432437662008410481554940143112066815282496130779240470462146296891407636451740603118578187468559782845583373085488607236532963776553061573127068721772941897344778294653571250279628699916249914395984963602265983792831262491239169338495199982490568831988050573232584403910701516194200433256159706481127544274567216359352239531976151571008916739472449680766731347379627300378294338136434485491342143957535155981977947830968056165506567481832690744580501092080641970099411592113321816842581002601033622993178648069125994428949252032778424296064320128234378917550689724710795071140283193320347116502581243399195033363570924016710180397589052454934614639860857696947997705212234940282190756558370192149112817161901296013001342192117309331030479367329703217200359601197320254390948680029709329274708735089872237370362865347321327540129419571649849224807690453890835338387829188964798160756826031136732896299554241654102578647047273099352636586456099429149905664159051666805179469218070297047464528254238413874398960328266281904525727511117369133816447424260944672346650462922921985143271973438003291284196161745003629196955993389803525552561718384337849174546867031585634719459642277260121813705980887633122164927736105179222693321330148028777098585580942484012227526986107004394962474434550343643054246243580653515620487716171902563842633610036873749493680095464865100659301589217565946362992056881663132748249717130761878606579445522201064082478474022422562412009835266870561910524115747401703447261688931509888020304578430083870781148099606449352826769857518096219917483845908933074869169510470392251352681590907070504327614177076055951621152950965029690731687401453167112367131935988517693230267383153756541616063648760017935915456577591086392364406513622152878942685627608111269350965528718739572845804756917456703259981834733539301858437590816457115025177919856476467943001525060614821566954674320778219880778105662013776777768413106087040124092300186786983237542531818993337004082757485446444958498439189008219751775673731932320290040040634626488913497439211406746309350211781536367004057296066252389118378897213506294282908955195231279417966275535229383972068915250288195363952433944357987150983756008027033085730775977366712288730130669475796150749637422461029379930155584226482636942606902539993547193355403070912239909472011891153151024565692856668564103663947190201607940899873535683830859245228335897545762622246625754384066291994105631416652498811123306083958962898285658043013413005099867473731207030119334359973652457468404620790825636430805541680487030797571185763005367698319232396892916783246700910692195042660043825193566381384632147062525300066459697790696804600013923377442468578902939924115531722382746168920717716729898757527735710947167643901212765634483332022928347888140855323068682453483464579353889604190381438927394166777759221959654827530736415137697708384907283501079226085489006423707314917712538280157294605216613450061797606116416529792441923097769957112192054684617911005966542377227364205592170843083016478395974489103931981343162205156273900972350105739263072652360999464379788131037532699651769672382131179335537900056016589282614120006591382904350922724418190047721167977252526483766388106761286188318462702426036070687653735939789466800075063584957119918790927876870551532376124945263364741586977416739771058534037991692781957885431275827559838369685346273936052684708001995252165174213955511436307356704947984910406809386732093295279431026049129485070861970627482532364586243118905289333757573698203163269209905755177872678703381155244884858643673036800555812404763557092800678754566467460433805395540190290703209124411095148556778401587877729089771998435378981950798085023658354752344172222211023374329527861427725318402400695167179192935684134674295902980537896890349745214599880314703255246655684883290929782189763006494941850022747719827359190520451331187068071585182290451012817644107442936425053982710295520929267422300278398859876902354574379671497130728185109677974431817681177263604083357965752960331336027804002714466453287981184285408218382977859530829195927533826557822451181801867993896840566024147131591971800019717958397350738295321078158720294179249677249645910952565826013674353217283673725936487053507374487762890015459140241830561782700801395785072001017026838999915202136429618039003249036541687631857890213652597269088015841074415663735038225762745075150943199693389369404773448020775548323420158152389516914681525125044359559934330038861411067637452472855596496808775407670181804584937093637351040264760981885499249868491203544538167461502242149510546862598446927076637059776053275271156906655905660131656611761225487274214794634087558244835986741737827798411636766256345580297513458601844340432083802961326552056472879924544224285028015457165655906788031960135023874540595260351778034533507936468213785858796762696821930791839479337464604921598917342858001736669446277181695485640951031167111462578134624724615245357672927176979582484091346578025519754127779402870165686672859518420205914430725492651716929162295538602242705754531952383185453505403118930438005510702631640693700858797954363650692689130252716361345613976428033790710358146197027606268441201295536783759086845425352970699356881141193101534846777920858723029881898577279785393516235836524019784478206682827218849579649531161207714467937266164494382290844329321742116200443701979310780006345733437227637249644981800585721734177384761591857226222663889775099297343159457377153712624516575928211428601420458390983441629958570684574892923562065548075270807059181932364003781005264536305943013014523544375670526953349243519182421406352128996002478756948497099861081060494524624042391452302265019290901912599364799911964844051862055011354180149327596341565191170028225316389393587071807975208459943307032651090502576602792174242757363890683688711419180037168541457208717041519199914137608209988397710707371737028467524878907335810217877242853277092424870572389311684242788519227768006493686119986849673754840189152570827777184748475681472710046174474856768513543667864401150601202578798712752985711672797872090048035629405054422520979257752811302680930710642732252763633265960870845857472350181115635935681422604175071624316614400660309924280487568317048922880209720383347645893655911526536637585201689898442328061828064477767597739700275940215961222628704243041163465993041578347268435260099491654398585227411189874987596194763351746648627378394083091209582872122504744594158003571835528669364030529846650898355899702427384951392504234446526612441280718086911975033334561143120511458818722057771560567636371121548541592178580869186153341730060024466849875946173032583783216986352829335229932637275112197137713797455530357418449142080122654247191378215642115698477133686387592900285310439714300885249257182451044447842187217447353435771334871733684952093266577908603354398985941592984281276885849812558446036625105653930858505720365367666216637402721903491279470481642144139178389723925996578342727257439696531929880100891441617792000852381212552231413741805869249139957395322319793919232117311033788791061086143994340723526552559927452277320969331440159669013311986938474188048869432382436465953818003592104471858917308531435949577543288845970336288172754151317742212767165686757037055536893046808222134512699426635630386196358877040003034567413027077274181290440396084134529232312980096929561472907681467772571446217425942282983940089481272292574517572510129798737105061182281949930033768574747350398751289087554270523254939668845246216715334401630052427032119059270851588439260330959883739068977665649175005715713331468797804840452715009684376914707174247194530937006055087661413481954178771461092123301271529927799409444648705082518379060765627618960683626190202879045189534233887885700807584572614964133749211670471608610823549180610897610074457723670275029914062034318874229964618561553704780666518312449032284607291638311657449081881553704572390830594805099737891875598210620792134225890773335633719458088892942172310837996693089916448156346243600611108594121965729142498288082603241505419084087017929121382694194473312615194019143719136785381838861191636572062223778774562854568045983683686924090033241122483407398197467076996157849643819332747579599650295168190802711680510062361060139946267328658418867416593693110893812806226644068566332844068957196992646951118271804048434978850180334889700899874514849641139913587844769603992878009503481753982514364688459116546297571841249342920793086656262057142265875069189947955576895290002093902437260257498416116393063531280303480858965398354899247639894257481293937336346784772395307966852950249801728143796356395065016767676433941389590835466112680327752234535531641870694768655977907847593249827726042273867781503657456342628587313364187635383175248655212246224140503201185621810209605693551145248902118875439835213200151707257305264668400662902963538415975906230428028383913801349725446994102296588187295780852139831064624509407288218646063080348128332379175044001806062368204024268640722330396093135544198883866541027019367669494694794458427420001710741584170344109083829534116646365126509250228052038895469655677551801121371929008706511551896291732421772047888764355133847977296780262401686771730855023114306528352108488513230687867975453173521857637391137572766455280220853709405774549534031371847389452187713019632731556809424469022755216863833352240950431649792549680923741157865463971602416451979612598596537327627438602892780360109963599777792804542122769827633977340172164169704456489941322048176559812043273969101613717619932867094294170535757558967943278142269817526677601137191677338645361892559555406800316251202849065191710495842256750457153538488503059794745896444953145313745126386341421520501447691811093392504701976141976775768755511408828959475549355854054952661089780576360040544544586244517737343412370460628771899838919004671500811596950878609832921807648699396030860469949879875286905372650168799858385890221440974121098528494392209522999186164683442954532268618311219106307142871149862209620559764303470736048718401022024837132826151105587957654105311445794168428346530593170958199655242722549343680580536517691290776808946651282330590640433863542118326215287650134758226888989233228718214989357207752620121839052293133993653938939484532264269696693341886135629588488546457098586174457578013588219027997878569130774137855479202285570034553688021780924771876899917824083971965692791778812997485996289388852353812432577251516867112712714613696041608856176778025030550491620849630865264465804844889923046222582523369426767511195397548997786214594193412520763714401367249799888576504012508499527903807099729460161994635249318057892189165122477842035675236428290149524749021997797358186986601168153302042672416985545425520082519558805666908647691821794888718434244223472369651710705243786279081569191630396241215842524210318100510773666475829891493461571178693800955226171939799286224846906484049049765587219636751266893376547558496653632978820872791594524109708560858329912087360313991614698058266134986789348577074971852784485199055243501805932652323596756919426854837014304313229440135711663058025328285768479988839015861979484934940543791330227756630959825697075254805482639335359830310805705704922111850688880212729659032099757372432707130843134421508475743501595334942184633829104866103829957986246152945940246295568649735504779595478214276821292863371583553426266975905459184094469415165099834770400045779576140773402891139882399944236149896870877435572214270559907528637839336989667122672707950618142181405678362938358401332395693886648259012250425183552965858270885370508834678568823654714582505914829094073568377798046935783271480850579050091050727525532285353007026204467246855560645861035685448051086204887926330938189934182142588133626861421998541389663868527598523096875131344739418715946341074914907787951337117786759740707278198885608480493282224613718956992484769757970478936360430427186583977801192165140123894024107550201893734088419984118349140199989359730007626013060302566605187281713227621619759426487887165656383148486114386341013453487349615547937233078414230832951246335220767878364277957545877676003865227719651571349511865559447414794133772474394039877219299994519739087938549634635492292455400261353990046570296824641928817933411458949523705017309708841592414568504000359069287030547493085269650974268860892675693615982476338391347226701741294935947796860084469811647588392255442688955948720265846279950359157072951082552513281372453685569483508313760122955122501053055754501605191686239641048672052556401833309058716812839979815845680771084003485443559926740189308020718283702080276561343413167941158859863903869209136978480037602807224084301580766418308190613912911570836399045968655172287490032286557413201578735913040153709235473088011442507208955161432100030342281601259444227397992744943403033731212674260416304690657407431674308124867433149989179360081366363052889016506636491903068754862148255175265123282539930942473114941043475226220239527493171484800479823292484619404971715502058884922360707048358179644473169349471327187139197551727079403141392643038875117557098105057755784529847965449812958464917466342379556772203033714882638499833631015581458590756060247244678828574856981256345990130929836890314798190057771602881101495496825929820671598011423674620820873880023744107128609253979553747103863974293782409816175387466568697546217258623632193615612644128268461749426558199068545654438159318719121965810424258724413544431583577842359268324526480403519414124835696108681412456920266435508185415785547634930932588535915898688534130045002180268379432337866180423325441449467982003563444785111377073759532960696306922362387492101367207048094749047628029277576721485781332114519090501933492831546631841059820819993474025779575866303595042671080340799670536983769341379442963336847943755840498327838278607759069779158466728786197327919628411389098276628211998399945025725589950844163852124354892458397270749840341018989435322970708018349260800232801336177289538916967853195392578323680033603889275537137012799084209719893503964819254127013322002705680541879637697157555401115252405838657705885186552015187493532580065567373129877693549324142589675551532895082663378531223355931918571732616841234546116701407888443782343381007635422354026916045615205883974264279105612154755105404090197285399446262922777532129143283287840302945728778586998778262709130267857164398768559333979559750015982436353475577749466342684595006832947000537757968785764711141449501129092287148679228714920490789595588087687543616726071505061374667717848632164220116853277431066904281757700406398279838415497869413674393164535935000037370437380923291851197175145657156714755491400805380448859049735840162871145839477993220092980861439371559944354461641452781033527092269149349765860182161947646534424235829241759531606672773383737657392057989952726408717475941522319383500981166652129914860518370843530218573682361617655677902552266185108216465260203237118567522368707485470921956997806455616535532283751960598934549344072192228942384967250404970691608232489464627206334693001127906553659611016746203332692520415211634022080683725600017520213835340287205002057297897993099892371043623748022918938066642761431606111317047187524709429277386434933285741770645083125797997071730150037383633664373583989916740948930320690571477702033651699830341558774038687787115010810287805550457971192226495575485240504777699834179005515340068327316036201128949842683096316425232683653220941568557314462942291846812077318053180374540681616901564453944068866908547490045065973377316120615340186560614651013552701014937419390047036056006833063288360691153260271645075862718305797523794712063648525257224974475211180162835969900369146621572243078533653433137730982139365376869625021585330927199613383414186296859325659001448097381922386281246427110647445383813318812728649096881362317877453518915554962697117391678282634447849210120379096613988559005771404103089110912748063435153088664600821220347591012904787877155236600037498329430534164822663921940339822825744303772795984721318943256032510437349765937345725694073454653543308607575739017658488608264198356498982267749691687773103009478516692762289971194719677510126478904957954354155811700589828546068648101589464783989200490580883409249221566553976961622885156635434943423923346034374845614278740185107025602258161769544466408469418898636592693784505436259804017595517995026411732984197242738946002408784169997638998908607371442490763197619927558265160564022722999648785190472955141060631342493904949680255358310403371054401338320850935140094397352754067952834433636079887706481101924531780865822343332551369154124651202705904796694596564683661819000390691978231445632464285948949985932879263971627838934139855266781551107808299725511358751340451954182756867867567900253920093808926716743577184153397348756953145956073593542773862082223963046658243914930289282901823027431335564632021351515331405412895143346354302735803275989255348359782550378005512209921250288479384557539562817397490626477770779616045260650525369619339022141962630066743523638479996604002172359360290147949846537852420321744604198451442176592187233531812233122413244703191209418143573371145803335415105101409726991511754567384671916577405368095496037598068678139315186873522112522223895205502165775351346104175848014873178148725018498236674360856582153569533349045974540863281682131418621041369835420742939459863472917098691680717205535015931306810626153277755745858114718895411128030218184755609735475382467073646885397753151094949572821192125093143355569508396290474114738860481540062997433406153680270781441085546312132874179433611145031795975514171969168254629317383571563895791021449323165144389472905391957741509684223367148292021811882427760820071994926460436503670906924905078984575102192578514233134500395500431400554395316135496824650456678169565264519703053742923443772965097949032370961047564832826637615860984659034708932402939704294998407297274391386317080032323999917636721639307937509955466236920565895798857793140102443169465731307291053287831541770979520303269777596898829747312929165263278834849340389991178391727677266521133156280579075591262282429132723172006316493333056420631372560037019293829973039103075351569526254613614577596400587678152587554182159674220741902134129584853236710235437540968861993614827784640745000904876360833412408364658987624995116318400500025356604026172427066622149277571179638644076427033803856556124737454956324971998774867619127075560289505699596503622187406109559521597650957557607080458083086093828437861119412309234980366876260004710118726626479744303212303632624397808878341061335403988635231144943954580888032354994741446436885379181622253117115351976752646638024908821534539675405383859484200698957013541042290498335018527544719773027852827838875310896447683348878200429353307676039967132534920369897604143040663610217961073414936026815406987495978035609673371276725949701904480630942274650875948335725779062393316131243455779746702433313112440455720621261901175781985781017450386194894978411343988478303183173527228607179047698744054638794959881741683111074646803296216326171007127922450150530910727863199557928781939340060171276905642186284862291621822239778253453615237182575242181885998671867260967224519143702122188484764765712341051817241986253256538716424222132602577951326606486674553151579151522258017766590674197782239414735318614157546917954528619572185727592993331670288591723017161684229456916268668155295333972923598905461351715571125510299013456097618992638128744966555278593512975182589431876330734923854820976128286252955531371183487434480675634038561784282643011462446062308216556753690963386867122213781818028630519329071408857391059027711528893323446067809677086901457087191833310662954629552670911938209564729091363276465417799394866455868909758657113832204918040509840005475088077180980660552020249107133231602081210250139761392752982212250345513151774182490578504000696895779121886422513462898945655587892365549960531187912626024887605865490820419908680046470102138397473747983446924985754722363613220464301508974833465459913321066876544966194938849314676247236705138710369002984332149664190500063405966321509297785601603226275850512575000783498625950302323280765984479857970823246726649203816924733510339643678795013891767760481136285979379587098619666510429438367054417527552138413479454904930822567316224807927674022599735611492742128941033042170556282424565097271027352096064424964417584516809606422023420899509329150037032950089943009491161527979989470439319782695210410125082827635276723264297495480218281713401008008365847178988260370982165891481133894930661148622494491653443620831079633200444592137185867339275893882703628800174799956691336850917388118711557193779369926354029042896184243207053566794976235709770263902629715609325577106948671404592937037141466583758004134602257648348500962406965150559000366142893434892756034034826681791970854998356255925581081679412221919956722711369675221031845020993418624948749409104923746415167211387798787663892824143912808928129260706515669511158982862731317012129302737942994680460283478528849417636211899638291556823806332689613385747194053054730590581731928571985013170592513470652914523593684220348379192285169394892226953126068479746093836353310850333351919992122270634337982686898170023446311581764492964830220545888713812286884131356557803571730915416605075043112919720049427476625745796426493873173736870086856439644577004433202550135311585289625478629008528295251018309812524395511380345442128526319203247319729590053688277679990236356980883609499669000619896991407567410598437723100096640142288609586882595843613144853907260484675905807442067189003397181377985301791707195168526269320069669288610317342499571546923052060939613042775665075959525890591923162251012363635478760437130152520960006491206748608282195702526580643923835256092114429782844041261920760661021797408720386434721462264189291324963051207264835728994394197864651297070875666324890002437535043441610204540453875232981555373872622436336458246002615576388368163497660369254553531710627150912762331919338969492145811009358888422133737376423211040611469522991699970226304341398870589382953755332476713851274509589837497956736985887508875983491778679795663331646749088487799821557311851334970210784283513405140046993190490162542851169461840233027641496101276816210504336102519590047009779281383794160797191062956730939478785785789439124169074798562201663553122176149645214704556841654938710247142253541342896943513812665886891110944956601698039684244285490137405317618175014308886784619085105523026148672330195939727108878307749824330145090954296094190258353650459728940982989949399830182976518013548676537630687420265928308434418360806998763396534377132336876038377882445621872613183176227643193333548250246226366380131800751627283500860201283206703688825463471432042286228341570858811129657818854950734770983087894362649471175378353207905054387599307412647456958881818055568242248975586416972072462294442503935749663395091081414654632911198457815519204147231133290808195519350550984022038049029862287980228877505356367136271224827446192487289603247960420120050237836949616481949746918010068502979937724927935784232454534716154234803281483727424812249427953747476866173394018875233467285742514350494318284441545877528910859774119070657683489298862931855693141341234391382492552238828117983535236353555070119344038598554935902678217021418059013178197020138143484294856844674997473165269946219177678414711337051111411675810967616105516302606421186902939008124262379522079096902157195766346956790978500798262023684542815100429341952891427526817745188954395954607137279568091384148054112994904568609190715937492927041243579190270374682599525049913865805830452711375355437654908252915007720833685691186141403108143276092474221228361725949002563729104838427870412886550980036508222656019407803230681503528443764548870329673660225964897164249178998404422146385119972467937670363950605682768535098105025000972838404591181274333329381690328924619314598806236002264403826111188578794698497716116937144649301090584545667849839530787777262423206843318199500631845440368716003686694671550732807691161390508040108744451685742590351228630711203042585158171415334945800683344619593652917638722882972676009186296314676291660718887424660072050622157652708919589392321929099675869617044637605473957212495817007520534794965659175353654412754570510388310854997454242349028032417751032524778396259199121781922548184632769892853128845254362032961710116357667091084942389249162498307719977251724296898967162507508736720155246659927109936022821023120326539056286350603219578964346453486878946435094223293661238482894160450722790623057931108577959482312027245737610273230142291947808252129589612153202834524302443959799801216011497786052311790825048787663818221057802969707151958230993098027957440445466569789930131847266806806996776855408651240627698608476301441926725581150055118311346797064374419090972402049919059149135759362041611231821000913369804934360580329398743696648989275562468780771388312737729399624340450260061151508293092793188015686115828910244912202757271775894236798167141196059903101009229552685355706538835904420817630001656384805467205781795518447003817785659588571285718393727576764146499348456307397255125322895890253660325767243037220060211285062734561011293479644850127357079788372780094373861779042005789189952319124671328733970644083695431086303967310373450573965433189733067899395289157198790815784641128882178039704284549690159754518488516959113719572748092197900588657423155955621427666702274218117092126584097566390413574860243184009878521944018940916591124350524805656801084273066620642829725570942503280091290154160508037337665390892576916823105843991830623154926626651573632105510482578396021873139078689961006600549228824398261047789279254915273499677962437983319974227431580433000591369871690430503462698171813648468673943858333994911088594643149230995338667909711402530169567297005047574048430573019518629074274771220286530566553944602320384153519323632888834111646743982559096889581580896370124420962014864205716518866284237809261417041525586190179430734696504792632496044468667909071898648040540031575382129039816713467081724565413066066632126077134629644063209243080919109733842586459180987584438690267568096674453728821297497397935316187343974507241505623862274763417320626438524216745769377045919643770066547082121262295136116543266567710782814587671711125974965068634397053319270617458135334230433890008733415704700564674044855719330030070591415472962975514870795895733642535731958454887371005491913925096052047154724689305423644315776254840034998203239870341754471811080458379793478244681229140456209179582167126956721644916353241341152904485260372819527599133544177833232656272453079617377810093155943059353845489927969698955067862421654902997923393836114408122619159168884865342627747264420453323716106427783374313972627517746433343829876554611719215708810720151274825670665891847740856178960565175961813811895423162075446675568289463062298065025192520577802569308909525422072257205389176564658234763319846953239180028020434714615328890810088951744328995244173769784692832534809434882170573329635829217914176638656055532477683638881801646045539691311148448118324694571966152858695709920872216089208955257272019277089259514001507772631710823188750021658123885027343368980456653011093694461147298843078699893731881047024068780479929496474405349173657375139631841383854581338754744196346985890829345039389299824866184525711330224132792606720960759551653031656983039566668312500735428497786346701955528125637274323373433070780449100483759926600107610086709136138572072742393858567692210886963426789907758953284692095477865389844324036164355959842541848655248789332595379271619804765046863683595327278200380606229831697479470197196626014123405073976329249879482607856233727058926611115853444665964100937342833299865623900065560065927976261008444584939768794857485813143532353289523257194797896181050458945992766623260936379487553549124960432010618961045018934791409453977750183051940539508865070007241236486740618679154180289761202268932284560729228996771294354796244043255553549949259918852020404199162512523361600683540862189776455589970987804636954722412886362356119614301824561492945394976556728479703443673984203466113602326141012367857851963931705271360496469355760402120445439085668895362600001187366779470130671754672340559839800062007853555536010611477891934603710249557313546532685700565519767859745809440596586100414553230292019067582222543399305008331868533985148759857703991303312044013786267655480444568128020433562369104541812848109155931372240814387341397580091082118273634089505056803099697985225447701143190234424040244316579148131092672675217214936108365611646158057246261478614830643177411774144622116194392719537553704427827243679304834806430129478757036887948550574175982621771281635873486725302062600857383425620846713663827210286136517859585362641302437437028431310708313875575557609864679945407144368737930044015329671956853172638106450492244912961854347099021034569559019413676662713783325195479268940872658583159393295776462042095628660035434324371389356498323177917457390814015179512698048961465016536640875258797348196486724943872841112959290699114854060126998013645759982427946712069173350772302380905330175325457829019401012534211707453431582863119307162459780078631660489267341785290973835328483853686135372367762309712112138012830908947907182039541519625974270235435810550724815083722613265341777247719628388277093808497288358991337625372235969143188111152924767581629034625132408903946406313521301779399809085813602344035656811067284900255226860398700697454486095792806174616693018603375590617939777045699076844219978661712945143625256375142066303385660109180857648052389376535814533701090768428749318124726171562810354618650485859410943413979825220820127393116111428379604068969101821902419216986729481608200960434813306982657944525556089373213969085660492715136593752245901044369925999254700560015840045418676129378175673492274502760099450602255946158824285544889710396344906605379946955319855747182743951835067421993762850430343230963610502224205302299800857740435357467168039951752695055980634309503911504350372396445925139406278480450998437682743725555259723605875075031435093789477013543228726164316642271464672217185699457446469162364972763878470688509363544263505261579120159489673101022154067808024368640232130924801171345444160807664109361386434728602199341287278018207810177377816422240655568497642908896108160339277769549543084493418912003818748265977448165413867738190306168574534471311684182975219593023517251650270237519050631635415857381230662569274467764228386610264125326726173340642956208245610971941753825879788800760585962780274220539487468769018963296267831926694723530549622423458434800516308803305337098581916670792693427824540463401718096016866261101892047560782225466965570613807791457438324806855241534113163839809122857031642976037301397907262896760869215489348252718273536291789437800965458431334117291654130863622283427600573947867040508082856255697137767003275724480878202472307299906141184313050000332166053894334574076483090210423989751770353008513303633383566664725598099920551969195149965425658312394966181341737223164526205021302675595487115006603122440830073984688591845765851005808649862939223653793406448495765484853326767182243643515370007882330622263647202669117965540967155637113248019292477320245673108478829883723423159826789832524249138478486305503191531165018797391829329360518228387345256711919809936662653203402497231719064601901021429022823291388098507338154023475567626752311875279757958778581277718503901669337302198900202595771558950203709387867893952138529139016114543408705235943834422037380552901346975319239928567962913009207101910422318327111001242441565406840831920968143346591266173385809575895905066493223250865431929796615318702877120720983075306445796180709686600542799364133790085178135077094534595164395495860515289838829124014233215149877880952649602681384949102838498774922550545834274364535110889041004942794865155781200503886557512635401005212651004827415006679326033539552148795127584938509730232812970065687418106075348959746731687334780242089128258169082721474044032799837826664735023308037229591148818454207975088406305506094056579687670982848511515435806322747954521594860150390825611486689171132733212119114928793345222488551982160607314973812489694354115630073698453133940208027465036582931601890947891836713098263343021569643010820630588951541168905536746297817779253230876702570623100762951907195650050743031594938471241048344930485318471738095461651328282914016690792533727977731188348773878944813215440008451485881603659276457950386553119261821705055509850253191136950534852069054228001076418866087805980059902119528901346315325842257992318877231594482429693690088810000785873110606780284776548582406118508372010696158555600902064203168463941648083758660483314939615021930802646737122875765573494061813382314956460380602812262551212371351492912439392189965662103344300536284815639693278333153334261918051122345259827820201623253827706875806857924710832028349431099141015987260210072977790555346440454805600529321601812747278655997068336771029158065236742329618153364384652724410056989589146361568725092765325366058749712006808458740242540026547828555475093212303577813546203692567519383292814576690822614418180977055962913210670266378886524027720666032828262415838614877294214477261427786023440121776193573243163725452102258690378996420638317072661489609157757298810857791118595299379560327683644112472843288575303834618373877276683340667316290707547688276660581795831975354550102797730626825057484470938238016985155149226215450292927967103575639575422313627764564781094107303235551415232839795281590800569389129738909035964770548847803405337046785039543398411146424421938451145898634666460606080862576132869936347600754022007764603427660420685831160444721184444672804329468059942487829070913233575760973025842109020213332684433804534080800383170197471878772177026436125651761855815366132323787775260917918246521579415379745472722829707967707660359858414656145047256898614597505518679047432593400093138924152933326968687260866369575560154382127212677405749210479820912721619450850569155928261788120372874474205359623422448969519114544933905913560909505541617910679591993391975192828665273314254203289588432076095760025024008178137649248145281083690668766369774198246648550372134072333700905844037258433651410746559696013324863337969504713023222143076206726013363879880370566838820347317234242161263868858755546026822143785472381695057397468556108960535678133510363205490896740641001069036945505320684516649240186534721196174440487890753905287220073116510072125277079050125361956065503737949201504350388874767207965628388644753142425633264273640412034367805997895271271946842839102207095069535193329797472894467812301599283004731665396575376648512273126966609549095858541146809007466327236488283496507265271609079085037724580664760989552089019564207212051595077877860492840383404541265177600394360002037677238595392102115492978744096982672229205389296722849402600375681893063382909116884574236469251819932926095549896767045265853297457489369343058165163524531138862309739558803802511519448246733580487246365627102568903825640329611143812972685156468196854402742971648469244834599413484254011868153734381687355969253926374672505928140096847107577369308039682175521395682397883972935661346202903510276751555344762517086015037817291967984478283767392436615433325903131491952504265026921757403788590160226316017233425792155233556643903702543275050302183754835793632497058483296959945902888613858604491963861318403251631375169518128552426412377252052796101478952482918009641605980281007561087154386279893276667529861820022894498657349446791778321517203298299899179860563244290718149054084057870053599909407304067271902667238444033215909892957539396467198902047399114175054483517811423041768902121052414567859230592050365713935718826921557430765209603860761770963500656136110003863425856726345485065049981249214363627533325255671584731289705025228512241168614142915229897419504533367840163515528502559825257051601203600356734372321894942423856731783428247194935807273993063363535453806342780777708176327971383697063051186608332221194136535512794869761805438863126958620653533593144581590906399215120927171612213531759250499014255501570712615449042252362124745969521517660539502204864032783838624191622159729090943974998624631752950611183191727651856219721186080722954799656137745063911305522215123228562489937905685603531556401944349899957739936866273297464964359032935681719071464666459332063052270179718239264778364789435945642289499304907663494539652137903306918953931409845073073834997855822959157605831887966688935076229207175579514613160535051846464503774056529621325513833504098968794600029120739046833417636667187479517559454546201678447015430966181228339045701606451667422827854958072294596535328008600530109560280908211657709669215429805632319056239976335165674862957179700728450863358126787878466153817355266925910438552874248566414440391331156317526085857843716880844070610446558832942463545591987053521747113615978750561769108262184943108604392189094742181206279922970199289711418589461371742613210162794234034197278009424266681168279978238341689774936803585224917015508470449772547882273975010711339187620000592493689220483598431544871249482112995495575891047197524565513760375310288217818368094393116091264549393375592042150670688073382211283779028186161458272748966095533356999256578898884147101059919626271904126752028034356513073578474450574134564001149938214928838030383385421687819104827936385677726175094199272247587434534568539119239084838307077053526529255611297966548684236595789641329412550876178596731227275877634274421324551330247841440729445735819798679166969986984694738648267615656222099690521710452199798437619177417188424608489339922738200650417491586815498221163148695132397338819915997400433545765235632518716836938099530159838916520806399393564261274798521564185777266080998134060000702001153866295707561461297308074996887430375704341642223915561428582646234048203659848362496519708078146244972341799346442489472354349883739712254296777958111527670624226860421579124705970880147304898757360037593939760061546084190803814078997423725949677250304278695624522863937441217684338580875065262130902731993165027665682310968426156571396050375141274332416501978125425060018260882527014065988259367041102352242796250153110758010402361474791548289757869645442282877839484539550644134497854773748494775728135917165749156708634762228806400251962705054676321381201255913583495336032767429054228966056157232534931972446212825008802287899093810563179804632866514699317437477630970870970166558328310827024585985874184263221419876604042471865451140482806576720204639327361305149163334722886200153305517629799163878529521469800647751274597408410679692646886029258802297486687378675268271803335845636146673646428061184778157469683098041996966127686443535084088794184910710106359478442558735926905425858820074254599676728160802509584995992028652398293700541093441179209166493441914643864534924467459553341628321468396273929599080591838012699069706237434264071832764899008321692804992250555536649610499774545831634045991445391824737806224161913885640759258639721516144042184413437163283921605407091914372124999792929158352146192344671263220166724876671259853740611008712982734802931908066011892634691839039358369580543326288436524062573941065371727767938090806801459168158812682662607439831474093293753906744148853759879453624626330936926870404740047488070158207892929891264648123209742980183319290432852610319835508341256343807404372873430587607882622897918606908866550881492955488777832934476634673266068572045581553301912218618019896822328509436407475659293903230935445571007259330990869083041562848894876535690893210923041810824859365232279731098580580628723387965831620381950942376506015700511295849420734014582966723605343952301209877039033780427619803294082640235666193768531826039273808234067778685104419869972933116026973144004526428237021858332861933363197201506401635980209446964173454446659130421489336398185772844103126209934231684249324093085348650771972365239943752768214648901865210791253400323427869364544825815960810005435053581977682597234322094646952151645130255522487610286938422533889529194821480959628400822558212574974141733142020139607250709332276535231734169242579077092932783676411752143415441780868183389360283328147716721066279389790903957482494022695491085816236380836794445908204790410876510200920755986280619930728356820473017248828014645889784959247640174785878731056794561246955881854175105623277428824421689583065240832400307418542883219239174012797391988316821300698907295502852037940925887792439273205713488448427594700425996018877036299650933710380264869199739325064801440328310287764436519941123235630760596837213929962404566241526738025635400374171860144752565575052584683674871817604083057125024760489698407996871421228500559211024186440005865231853055884254190231104391438620041947988942060344933285511762984241932299702609727152163978419512724020753524183342212786046330927504695535704225920686426986376918097728033868771610466130487666088598490433040997220967111711463240250543192985465821945607209524239816817050468939734120969679187539369803666374385439261032165828846553136125673178982197643840424219663309530277149390231251795887752272924602207754594443247475329479873891978831649845851573702940046466946972443733785469169472878901764422171620369742780659457706327126857196918966025194559244273836214925727824194117770367834635904288320925282251852239735809237356275445620018517640396322692056003478400034927246461574875817541339164769910375143244236083460246785702846947653702035668463913524608090996103131870427947660152067864977775121610461403152148115858926736392900681418839750963420924719593369180882719800481455356766130861196791955036318972309305764730188810078780888476790621572836937589477778847190879044055374838707523224998937992531769829058179875333465021537785854541015429570790067232125572260706060874493090473640822141918605438740117435546152280108670922815878673227444722003724775120227950268580302669252624606549197573381288026132201801004106808709459026016831446264644064699283862849597290671018670777195475007523400570793511504966404379845870977205886767621793675855202087817358119834937540134850430010869888784583729011668577795376023962887063762762556318463293237324764474163598032234079584306749104683340132722554904844332935748684452585826814876823489206481175436959265775465181798020324354866640557702446302808275811658817040145802670301566207580092908160227525255997601220252008770700285368274626895458338274658727112476180696236416778923285077717254609899181661615939049644712681623376959116694090797157933046721486293526548714940220287258827347926900895645622166591608812200252128425652222184348838724006820772003004104837849620953118108384198910671322335588082950199601091638767223344059416053356642749309310105287006497091119126541065774626739170715785102677926921236748767249088230090168399272577123851887249297036301401788494205240184799788899997126267320618307072763744670806059382656087436260485283821501054842590882884888262982087653674983977897055883777552371808630225164050766860500092566633828673717282559353325707557580370771990281045974724619451317985337737357344407471941742433254471548988880569611476371994065348979178733103693156400833505691109962116867711092459365205659735982858392049670457976823499629058219435065282795822192003056717467974794468765319052845312522685405105722059267769045118746769765559505603846492359933311489395736343770439497793525868722159701336142639597910557195071568349979407324957354824437235633479459187846254621910634331532326300905995120147556153772577770364099823016674653753297934073178380811220469966748491315138145354008303880817304973745756446097963165964927395684245991357311663376860774735900023626486349334788650443611223947532689666077068948355667753352168745005254018302993120749481069075241713666688808316033799612157407712074717927048942119835680703518964616293910484229016611601087328491914447279445933387512114983346839359297164153372370830095010922229604512214148180696306016921356666100869126091281667550615901974382148227450886304064166424157693497687857468395702166809701479750583442869710400393632358967024516192252985790262534025248944321243141884552521586932876898467381653073280434598232541392896518155548455629217658740646130227079621346637422328512997562099898133658812786602802227413290166749555283302189707859029186574706289259150024893350060659824842226983573393049318758028188355514700365814730331714000443429824466195951240566647144176297765607272325184593617572642897088884970266014874723128442926642476722536489907316536721652491635774837236359074549368218112993883676944058600841368847308951764559184743179048939246574804681042411414132601163922173143192379874815943521086207662095599397410101206079986402023688530846315285404003143399366902118730902352197284521811825873065355787529249582226368389431761861298052008229496979729015137933850775096020406183693238729739154805661120347138259822543635893067929296456983224280465348112869163517198167637725044300535395950093677132879977465178793160282365529126875219361987738489091549986629163437792092274740481544978327797222944030389772646623483772707145784193713536323599620019441920393840722596914058547586332597102865459029165288491961308173183796649315394277428564610525277562356625147493082145200910459198405731813306520621075166706500353181037960783631815643909831710842677342390647506211433170238514317942687564993574029999689651788519833365979993490506368963044497578522072493694734049620665986347088451400200202300162888793042892225658753862238138158595881517511875275250995689093704969320049812075329725710723202157425760481297374249138325143084799561344124566484054536991083872384153973003200866718141704609099520890426095257013046508722344987039004368537909262423000403307216091363945450111924863496640258706142471915706855952249336978263908703351982420545505305236835232997928286138065241723675178388376872469077286905872542345388711828345448923533378591850633189768910490424863570849156095817328336621786334851984313746752911282369111824060262961923088834598894720495577599793053360921320554456825467995356889079457923011758208238121993212011166553069039319842856010220755781160211497108283551260141346908668839269235397658701133269342817560997208633027109934327382248951223692635340188108505180966755543798916350090491413205802510191496273218800546190215441789944676162038142175755054574214680975873115066686078245992206181059347625182700492826927845954934867120707132842609730040764121634868954255305614882165109877296616450963829832034690240180613437452873033455201897351122300228500300721376435474223270127441498862752970229296383576294491387083775711371797180165279576726819076414165013084961310411830218519574477321830266380753840718002152611579588651386003991171061062651863641775600412784885266778425562294684816589337052730899679972868018016424992994941835383045457390014046644464281059058723372495334418201817583060323134442067193785812544031107982877928472805441488786127121837924695987163569557119467395568466994026283645525791787374285507932606614135279805363794040623140034027315675065966472323958970369595999917470946777523053722949619326462552463888714020999846682837148092308245841985051039651252743909191518078969050304060552355434036213695527799499058719349483280182338284578631421558597019080075769884128819501824487283141846469415474938458147148154316771598422671728836259411539017992293653702612901154206809489795314421284339904014004359095359542204389616521912597774955553020747680403069041597405549861270761343066686434286247665431684987874026252558719744840899205533104247462668765068459622439782854161766894649158397488058202295234663583024557581372287461217943624284674917355765953904576359836724019617401465915087118073258773351689814483388051212112259331941382390311141668792386592854753995215930730848415317902915076314212795156917473117741526949999177549281603717926532700935642427077655160346410699591173349249820171097890417817483890075063848578214953097781214618835605371363355857236470753097321279139833533389652656349223309717253789773203342962204251465520552413482172082627170958879033720009016318940442910539866649196926556838097848019060273884816559681961017254002030814015328565632619624075627301967459150347116040895410877834595152789782161177241769806710737809184295077938747756628209465588224175939769255505040734263760619252489110526913320879812270620843476760656112941764655407166906554024158350261870408769709457371482295894896584973594246603392962390505946947308471504976648981656216247320787602117789264205142349022447801935883361225927024218136107574089862273337504851824750614527879323270712872702670374748355303375797282391444437967668698322926308144043116454040380353934163754196354863891555992832246996299659077142242769875194189398544937017553820539689256491596120160155634887786622259455575317377072369865317163353637737445516021737716627119217397577730932902107761247924042271658791134704282913492160265342338852365556862226558093937577617242606478128944026943930577368117371495844202085134934389580062538491991327953910998593125750003822024426670270705043485575681490272739001562298082959467031347919254644293361100563160345461013570199526273848002556943065557085705110741419886148045632868621799298703824846474605819309552898635190777198753799293398100512680812546316861433431589481326333820879655478816847670871613243790613383282013066685393105840421923332071156368767229704179106839678967603413815019976902440979639163089241643788474313237943443943565680970951435844457420897755103047112717210687562881711501017979209684812086562489532926645594861390295024555403586096278412459754850668841274159323059068303069081151992307422485023490634844166067616912523202274876880461309068581629040669536605528868710077781836571174854806353550621776171175338838809890062923406411641837622233110812513861481663128019459237313443429207747766704021436859152070617770925522205298606999709841248907938275496680411117208242839596350965547413482507373395932816538872782784068835292822553855840039504526920374426097231182334324182088359983317836188431630518732001918056557006096668085097230684106927608065281554123485742836653958620620627283490204942419891358800867351248155975494070345149736848528834571971964268106702147642163542674361247474011785671479366736139880076432898990415407932723471517198937616687108350851824835190360697891803810852085521280820061962841450769485369297895817571972130286066973354215646509684095548834981621660409735551641773208009207965840577623031814497198183886561011748298064220725018430209160915535822609860480245554175127547667726839280776147431988148649732524168909609225610576830672916863697569986420670371381366021660753436637178319983432305844049005124551264953965559492143841950318898514569780425069327663819008571698818771210681377606793381628720755283702567621206889204702975856660369478167359139263529064367425384682097614629441496134075049321596288059895215621834305709060154988051489391713907666382198346234601759064334093279494427786913557248111885283169173614370711213007025015222757036606520813669191810808259713117214983995226554425400173818306460207428770061487783448518105190452969314393079572555067502345260543949731716394496842064835262725231490685638318628760726451682455634922556800871832479167743741917364588026835103273741634651930108463203427543034697589849833588741985785592889626397604350485577988372182091670421262695077629220238793871747390380691028005928576441624768470123147903329401025876661627993686125586821205786984903395362683153670609132626690999007874622206280715064954208817747255158079896366149619513642424759044744213519299579165192743145150822618574936317895117196382214813458542334614728903694161844713479354856348446646778749594685959912441462369166382746281298703687481950400945652752798964090217404584950362179998825907112841047192864296571102967187279813089296179918982598540173619346216869137737311445773122295249412626048555233593873379329530712835588563491059324779713054051288627920269490250869363471461677075597121939444010914447421798666686344782574996266487988099038002106073680782416328077721023486242405608245570066035596454920113821418168685248211230127115583423870612042716471536126814524184802765141987223376896985385206470600404863423934207794222846215943982955203154180561125283352918934052910620547518267215406623178909566345460216547014413710429774078287486838701937721816536007333407549795771042838030850415942747774207717812866718334801655328506695129859058543739785464401949598725284558518136244985561905535927540078316525542119584010285159149963213238997920376635149181869690148082840118747463382230390553027357591583013989029396516861038385776133126906202418700334283128309430858329911532306501642776550194346993055800844669263142551344839156569731588088129791287434303594160032212231926991551700804188937738305346663482645715048024239714590291555169241070357591682052922321055569271543639623599772411411763744354061925685553308313305495756131317612029861143634447568193989394622438276010698051451216187811946077072181911473681988560241414750297165553104477605463652878564850175776484602381462676232942426831308723349643516134397837472526542220905990416640230434313796321156607499643030657134724158554170152548057321404921792853008259724137508929008688991694569399923778933236278464474626548371958134902128161392987900325489099163879967525234616903771058010426795553161538697318049448392184947190442476457225640015940436597807943546942267338401574387951951569979086984595383412328646053010048525384281139356327231757135570998000343832990019421935744713840790366003930722378882058968225386659887447977301407790327403447768395797241940222967776873849068112725350161609429482032888553915367831911172277163680758767295242150270264510194697301297997099802658199512446366971668856854534570199484131013052776160924232236624548533844781444976571566187764149273072555864327990737712693921876204607352776681466221622899655495370959706292954615877393420911010993418843757463865528703170028069877584205075404963725195753496555505637112828579193099808267607264623682226339972070797396236900524844441644133295087187995662314603901453669240106356175040374770555094447614517905945946311746636893721455854377250877443773224074516611769850610875431544214170974646502420862654272614606255223017897162674361144304597448849617550250142960904226216105575676563552066820304550732097623724734031059202286117517385843132447253510398916443565505937303924077691288048724438975199396263831875569595663871781202419775776031564513122328178775168892922378644690048270398874217104065452451409429895186491321053142792164614307064125881141175712538631990874079020307151957417741600698868719528867923250099466471050802186601273166891729129429365204408181311096715027210742349044327012212819883972598540872169812221591713807056132835531668254060499232562760417511557059903754502147311431141458773189318169118980368253516669584009667447506031982314221422235817799822525991308157745993901626429599348132704813615160786527160045276224285074456443446778973974450454153804134139660829000646584522583641457741714098823347085504396039679630359541252383336006781497060032192354806960121335837884824807304858005881925184276505648129071274271713808262880381512039828266188668277531368125356564469984276197752510570051660702505629993572938265260820538349613534343878995290452791800671612279581249393080096826548402441110974563098440069989724462554984968111699720446988682263398042474062322708118648301450950521352296174611375333437798049986706379467063366121212292023708101298913565959154909688927964771966080033577757325444695494550670694748762122013063328273129981750380248778316827513918664151333952186906027285957838632708924924068848399015352982441833822999226468903543175425433840429946552930584338717542014020221270649763007236140496452765903447615831019343388876395446414181048903041612093735954111062511220862626068993979716853421686786627456246594492148247578427662790226192808687019769276649224309094218401032295953219975896777853571062317140810207516601793731356552520361294112351889688766681579824952401353310060446168341996290445629233603140249452000978997741406517319370818164016627830417690040419422770660293662738743452775882139925450011103293532836822586071969032038100084475179571845311619262714752845326423955547783512633164675037081586338075583366184090599417072973077311241755004273685689434879092184196461134628281916203282929109118664432932447560250356322493562953754898175508415178722749332094479490386998461258443112944837231532977021757538624197070072819382118884167494747619686824512584444868090131069413015984100084130144907121141786157699626768849349336975451729951127008163311485855928888717839988511467809541333942620347371857036755970751593459489365315572434546266072103237870464640731690129315217548675803605039914757388765563767121798283075851908447542499708019023242607375746093549581137040334057256653230293066383541798700140703947351984903546916629652214064622414685958358732494055245294631789137289719025769975944824391093229169958719663119053235768931551738364366061103080738440636006306850535761000092171696735370267987894729694436290388218111083871417094435894398627291614567399582336483863911738536177643406090641156295502139054870286188809845267905019411382784103232089865767060281829904000296342248847176221373787912297137344419696495197551723006681942394555664735637783998820061519074622383794137370278102377726823190939698220180927150481019797244662613145577192529446102008539681012984354514343625023359890503418994065299721212293719433569238397747871082113305968807256755379287367074056412115999849553870532380297172393514450879235583645901985742117701849142133732447006551672389543275852641264559347923557026217063269950139486952118490020945215145799123231266150671597343245331679998129694615069166578654042656507477321079422331000816094088516781969539728645531849533895949620114349528869539290476151584995632797142785045972097094674417792027999637447573007513085181446272973932602840052767376921359509821617100401366078101377880088351823397161465250161478660814195429945478288730796189195822410834679464890900529374410384176915368134507124643155861077722122157748305312666594030691297030462921777650221372643771112001471724323327162701686118863275464343916239265147730058188872251216795833261037566046331495786403528096022655508778427953474907811092002717529958098776429253305458434555865976433741954736469497636223372447385066995164183902652035887357059485712504146729318545715392592205923569871748570926929288056973137958568086749987529598690580208919852563279712710585479177711524887628491383566560901830739431227281122904490389649847156380545923477741204927842073732552567949697017834128881913615439107475387782647980852146050314243744919486764398310882927811769144764647236159744579032937456991101776336808577189742813338332017856823767470249651542807388623506965981748982869687010308741135700864341462016454049255399075731151818990591185421962083349212784254538000624813895147958007642552888953328216603287819680262513973552825699572699141105500804864408944154902112244961410189661402800152826191408982631156387709196922700222652493392896082244584205499788919821735712792856493684730534196351914016726035145807439813261904496205910142345450831865179675816963368288034037089807266218880620652614572796466324397978109453251229485248456392526320057846844239196575918522158690119084145303781022001630856940392687234535947100727135483158639289802571962244886383188924612217635767029390213592228788168363853904810324719111562243948559923470716541131452975765026068431237891093312551223901626273061801892941174627568631826131888988750316695204881816839259428138403841531260553180821342459864993913652379934983429545587773991916877405640451222499201588204620448512763396577998082522816588986961643164427627052169135624238019141558203856647324756086921213422833408874444411290828800327628305405760994673520826900562209731413513686319224251280967052564669885159389236400686617475169896518273484183496418290281282704946391001079598116695210370627773705154011038432576080429264259067060947217964740987177085754187524054690857352229450072637101338492944411308631873207770372670591638273231248072335383399148863973442168037887358318174280374220958141464520900509528417090041464506944757076322399435683475885989263154719777346898029836306859403889825213931004362295723322918763270251759468528071080039638070891761251023728586207631973926769927528397729741301178930183197668609986448835633097392713125844123476085423441594475038804593494145576639629117029987457179486458880012964078938891955252575855271048475081973719169202445463104511060561740589112995455916232987211995699626396890095160509704172728403614648393961674775435775106334521206948808014218061475139741177318386148987017200116993744060247228546708444178800361993758289345608429377900487327994893468563775662863554207224007561790798642211639441743743781295616348538062122530887606913327419033323583234452761854864951112199796794320515680120306480930133697805011979928599708206374981767667667172229464953785147205619590413475147441287620669800917653914573081486017577554540465365297413184134127007190830820778128216147814761570149056898958416867902566568166818026957139980244469469289758889149247257265546619107599416367345761801907387664266825915499323676129714752280658578539928642147026739098939242756877582523971709547240300991103926910105084051920258601997126642511807535440219613047140297047160839129825713822334641766841068705427880360862716057784818334866091181073188124953654916826226468162683979371273387197556360183206894363010937250376952310276019339185196009366359129947827656131439500852002472309170997609972970138789708740746118203760776243733087964092457485845899085461400127180570017364540260501042690237109192844314645769351069299209056415594047078981002447184002869116644292972342420368248895774910981914399105245369574258688491229419898544763427018849224373916280239111707995010657434122749691943009288579253461077032930423727093282081975425381255486325380399938252574259660238639103399215413557137119338382879071965352837915416076198943970003896324068313048741643097481396406396018343654944210327214351629410636327920393689874054430873951970208171250501329140254936543100813060994179101561499863968740562576533517753886733613400745526439935689992572604973385413404356700501881906249608399463684412007672788578583032161311353891637839911164586737343047792370949945187380736458128517287368159842940529410755873791023043783503598097918451254166282396295583711004253277433691648706257367486460084542348484621518827289535578657954750416083074300449017007152245585412108704863659347453584666713291294476313885272543284444888207992407881041336909968496278340055784669469380857788149211392431571238963845036243845235247479594097008818336072900039559437222127879907451330628443359522265297690110662819433472468856716568665624330345613923478362680213831216526601213209108431634482274604040140284742729526592175672347024650880206020581330588297992180968019809676938461145223555050405542791704971650144944776414030482462772586315175248576045838572508441160134694541822757846099222409331290891644001932132954204605175723983774637721601927708830031796851078903454734456080620731309560392952593263341193292025081942988048338225896522809635093235990081524026265364080800104172580985601565401838906716348540209492180535561581446214793561971206577472271450950353396575904212659109135761833287238904049051302553233602952217345562026602821679938542256911829999005701494645807775288953155704962596102305015561593355624400404811000599578688623794941965581950163920784357870302131964179296358239071634527061145652821704439462077834795192893192267410725557869149390820986367619648527085377834336175816274608549300153157795242829517158361611851818067508819894486522944753157166426759164560566686219780302637156603950940087534267513705512919763310817257539030000680037392818076356203572518708446296082246929921597308057869952433303362373922850681626983276748349630177062624133538627894621903647243619529507996930619299763259245534719709479352505797603440966122346957631950906748663547878935077410774214999973390895502473300990435822554239910766337363488825844010052261382791249353420554114587678108059463257160730255308668523249654647256215029419719837615931548203268269482033266902386525367225887903244535732819803136799952529235077871399789031753409975431699650732232129064515427648900420468779652256354336115203087102645161512884149819789279580992993330037906789171326932371406000431369915920315966547265819819637500306385651314204431310061101160699073911601125275742404283020999058497197595598282931246854729081057024880806717841052729331067347728152752011327575809189311159150557820497470056829570139865135570478362492418569412367027498710381128783385564177216488223337359201994728236959720478591976320830906725458297099410174800136276958485321915443701962165999295834610280210230986219779713654732112286919034417175768010235485871460287821549058946452005156709767879418422116218904951323610198596992485132957417361317786692101087659006916352988322654304851740544773741733437811567427314969444930997885183977577306459057361262907731975614313494739748393654991942471779739245742639891481048475215104547536292978240858150849876829257648464542469522662608817867923135901014059248345205664750893202473449496581682509222764504975975914303008213997295960212194984487407645437777180524347623548560511019537918801193561901338543447104822773953005923459571410235378926657131975782343119977246265275377413953450530792005670146073204494973782917808007766203141339067396490826847722469702309253391279658569102307822966322801823284517945402884678865088247839129829979826570996223192023291605548907500987751218217710441889249777440872134972635271196697894832154210971586328389464494787489510040346870203971440883077942971138617580339774909530957433644610698260241433439690625386925894966064739694047551498214848280429262706593149392100656434241083518938434894107139517877995693390854029368486353902805179189153203434496607332027403869691232000039184409659777927198842735964037474379000504463712432898266157639054390832679026281040174677903811415796900458070157185774870000699206623847312187569505987436795281971539359774878765146703795574696915939969259518061362713281772448392523984569563043893767291486338285383412759071373953140943542221826273112164929271668803353240455735010027496585041365107612754306162615093242315743567336215058914318776658944623897912252901475172332117907670481508673059851005776228805681948456848140054345412620168128743865531311821137446286136186353690004867019492123612986659932146648408035135690653693125872373211141231780382769783572148079155065028441508932756056196712048321119200737730379468908371500277385305578064536352954212131410919901643700258351368992116916117390288409777184724202638088628063705102794728855029395690500476844754947024251637219430795146741010881800452686871179954446648132314343742405911392847140690374143847980015810665597074958782831736937776131176942195219441883123633743377583847292943998780476646917565289494043353613596594494408080751198667668678203303882926360853101055996773363889624688184805911236838517621187242553964214418847729608674962415672329411291320813683285779534349514067578417483961089807494489640943238703459989459838582389154909240443331159146041164740711722567316724550336143151309466694747401411932799072796361952466855352794250072992019188369831067521175416848452980115585111482735303909609434373646277601363668971750887016200026917787594098185044248534607192917617770933525819234254849129061836489626624462916416185297645146285167142350729504285396746197051270901308763289212701330829097386200888822881177222655721006014897023280635143376341359701253463884615439154118884464297366321291969538190232569364048387247162203254407785222873793032742685248981020086154160897826491262848112752793559347508198945812692906312140442295357877175635404476155128283500500810861853695384517050429353408513472593358292683976157874458278163528298174998163174608642078010567806224815455375820576285668437562440774060486673051624138664225632784995502238704063964845860569093073626209443832015287526611303039328980462990067922637201839955322608569131035379981290979980703936488641081152933819492955183988530591405698131929506794195976839367624063195568190130396068936780229560725660806177471452369503270310272974913487629933394710863221202775648382345682900883511580347265818584222022036980275943875561661618255054936143752898145632982204003644944551170324563967769484186399246492904224280389690511896762969818716438876166701756632622194224912668974977637162407554283328565416193820241174954391016201101169541175067163357734946621934611911830988617992714042771041278056571759561854560534873566489689245662090533474207264622856820823835279201141357394342857205405833313062105767701826962205660238123356767855092103474128584325380344471205405400496533351819934453600887619853365041051775614733023730268076422258819031994931712385130522920937889797909960017550221940585663623080785349539880292367379202972759196217308789479276107126731182873159303773482430697032084759058308807083939540649879356700303400279605486287141701003583014556494083719875058396224958682039341991566921787486712033227801015237446394334650666131174815872092857393599925736286512936500990348497725504030768355892194923605322202265309717088219330253931348748312035909799604005066260466650957644823731413180703235010372206964221328248595963754476453448868577284798839706532634513699805824677115944872292812379688293737972020781440827528261725265329508056802090293406736003413270127997069497357435215417455162284483338129173387889917986692798247256910633906698336206124005301463724585927213112961762261502973078970220677416606078860846850459481519654799215992763696843852944509895614125033124808378637851917239963546966148354077491098903170712247668412493863272839151554147344416450123729610104467031807353474741088899765343730484689681872796175846725861226634289122032718717662242179779380490421607281179792220683904609883308272341579402616489341614283133463261886605514476979072111641348359124267400771596719265886976246246358175542921555162088762387342498650446151000744370222632930728414515016356496409320015371531755778084617474199794256975675363226564134867888170458850268906116602432047118095166805134567766652368350225120458970829133007149529803661950616277461586705466143904873473051270862811559463179563699645142959354808831774404623261097347319434682965352938718874253401205251937302027835442193288046220066237898315886782069293522696643231588099607093972076779125128189904907365141867724403179711175582027669101532711232187120523970546406166196310386857562705624696285410357368408193377213059477540993070136433471059085363691697795724452324359118201334684049904993532845471060876325629015926502376403584970249210600633024674388281901380793221232283554248132918385697362099693929592835906202047614756281081079179647908761715476206034089382203554987985354510957544364266020823651141764465449632921856478151191405533606541125326854637694195319924754393931337251862332826365628840302219669161270784365500320038016022568227035309220242177808436940359251138199561343732460677573692054284830986293031138746489378759633341542090959028558219700817881926942405306719588972688115139812714610795564079530887075215727817021665801039197378215355564794317165190495617250035160241834959477779217450955624563736254864515161855484343987605838400998414966801238277109576345976953093987186249504817424572422065459167112780356080599919206300758532163212106412263824224219115570201669508737116040226897042462083189798530213061113332206250703630524631407486723556026136019040167944863259339624976643816200381941546172093752024294364417974507155396051455776390365795479856536727463900367006473850178921182227976834991616193965607715534971332690407437390833950665752842707751975561923150979264645857283141618185125561460805352821727132673992385475866903666818865102717198159409503663810309680455985665640907213201783893966358192551146880395250314705386273873884165718468897960827435337541897392596803187791789843032149869666065751749294852479122994209695086894227313731538186599884983580014328923186552661135507531639084070233783868487234702352708809574848847210084837836421937241009939482892551406470409045818953630026145268931187664259181699778790643831495089722086890424237816490376126781309664352767825047743334928292950624834990727426147756484556369257024073493830322261893079429615543997652236296627729944148232940272515657478886361450687915740332346508315859253655960190504058679381715634396083853609395432140948905070170327908615268140053715746745455952899652272705343815089013713226643509439325122933304935131973132273770595831712575515745596627019450606724846769901935912142267229676270820481910049407512918066879573022313880566905674377118604569321229103382389679758670169050854505548980676877537807195407921576074196726072323975193291724503524563563438024516881864858966868888987711282293173589936865058367545468273874188601908852119027640240812627239796917604527925984416421775105562739024800227247872772653693491851385348882057670825304287369401175760910326700221756064169214143813590910461603689423388224299692426950412344178823922144225590444718198217856678725690954123611485450708251549125246819655819993534837596645851197244875000060002797907962948317420430353842644466907232475622500005578113232226655000829541563908175471394183241593737358491384423065604017963863273771998968533212172398723546717524123126225920547636021370059762615473965591626249091185780159318346927747945935011139290464352433917464510862847734930167478887668331022422702410090158882137262189208332947774993448632662515820040862437535587773183254452546193896739047509870108687990319749279952124348510064289886564475874745097305119957441378210716469900816649582512306108684491135263577239431000511982701062652586383844970922696390825687619894138545260608989263138955005832743542252716670998866341456773624356822359436200710017494921772574684156446342420836695695948499083028292757711151601969444756154827221855723107374384372286210933944831700337474798069002306626755641060850773404976648372784047936110491123598677097700164452413004426821552949480962983458084381422008808356268350664251969608088739367328495849618201673915799137298342672277472615633434156368201377835305588175104708593170346042058499660810077129292461548541885271099701201096395730691566967145938707121984087522546767695539611661006137702615089182644652235932742346805356332774543973887933218839183061654200975528159332092214587584808436663344950488402510297529445531094698711562113991444223327317776348783138861768271513091310285054506991672240225120049525661308655489271559811214038045535911030145861248181277908065370802289492212289956688581279322051979726111766022488563705259092425831040274705972518722315854476751773419910386465812346706252823775965302336193591629698640066697914500194065326566419126261122853622533285952181012123804224916442270998844014618431450426733925963527430071198547004949574935066912836181124479827549829689696011839944972088891730239227662030036908781969467942835058275233800617528916349170392084350396795911919854144724731392393990195745307694534554660123368090408080793411523618085495709901368814947222107444795010792963896752212541022565603435016984117602341393097248909841445968790309439082546273980830868805784815457902452967652499713529985187494368867428419391339223990561199671897685878566665969778278148918579641694975442991947267458124505308928567301541417365617443567202231255660142856815989849014761664637261711710083833585411473862562613210085264541530101675300264894944387028270017697090797210792970727536432151483049708307235839444866578045030305503789016106584150121823412522871459286693747844878469722291879801933357812581991030512417137789104603454174524082473738599994391156825365286306342451222961381193536522315620799175223856337773481700113185961641108570646423681042998566816245354170672764775811276851566025969777405322714310838677582560392371830903139666549930024727232974030202686718183934279026104445652230376413332219920252910653969870297035373315087965568054737147083934594353240270410322572323175529740765311387605165744952533843314895979912107929469038775888633039940438422259251804112105494006164062607925609830895276693281631665752208590301042941968315306674262765172984425883102804656034728957429002717921384025709159398345297847000343453324353980161386819912018203533019104611029825572828700632175901925620418424498893941763019208191474842991109623367716628906448200299090730458086515820687907354295492851252723358913639526126483770178666377952921976792978172613934218382319945448152247093471879672445802066770436568947249442842935724180429907419815696545617135310473219965468093860339047720069308177046796730254691490028145131303234824262348157643599507581113976057666859553025504663679992016598392482164349916733411009915328666841029458445706124222762878560478722512174521970584227275825571404024883055116355916289969279416166103877430932359724931322318148087425418681025751317841023555798218754824678732630501980410694849376588991600374535130774366698877021398953031458980551158388909297841196786809095151125887565266304069934247988099995830102347201266993347499609139206682714261908694718686352835548749570621747498148439113227386023417748455918098487839810071525087103677762990943040861541580517725568433743052776850660262788773426235245345296879154361786238868906078561186924281528641513972227984954599106149400406555341380056450977130760244957873308677832656850428197295719650105497895797651429791597673382247407906123734631802397519841053711687513808942167741879807368041175781468138357610539650955493440391542981565155495116047701310347125596382558573067561112793832131326864171965214564497207191614429587474890944920402976589851456335851041780773802125549227406930495927594228905639237911569527123442665708746659070941954462524544005211900060710147342479413649264466898744409580406750426489225031809446508207078545690598482984715736886779570356927589757381852003225692475231576249434391135145192244338374036025081137559779887622595185974909912195001354587078113052307655818818671088944065409385807616316202037331903886853978855608811711840449766309601743186199299902264442438087668870357515758489865576611282897721141110521456374664614254696244799473896811757342479003506464174296680532589267313839278974772860090942611801451408140018763994383963055264996880009386719679851788133631166142951243428149140350358786170229015762254033236059849654959684549736323914947952067711908653156926204901184346628919536813937516619648733999245833716173302412159949612908313344269524423310061079399385379235573673063453563776128732758112340187548345187571067476889839455466818113624361156000726834263694516835741984804528270911672041340158335958041535084521160635779482617354786199509424893937956338212958650512509500178724004540151292554398081957868843061873101756815790435489198162286732436301112107138539399849682508656930396299438136652506626050794433414793744123640814264904063836011568609102032918443470376453330316239903187549065449030065465930189493638008962818041073727722647310169165020063633923844724164427937477201868465740548784459220889510932449996765394200396883233867939236441837143429915982209314580003517548609512727742662352023466185966475718561222720742097468578491726095773577149313496501132179965079628429647418306835160847354664716767697116608045506774816483602782533282925907332993352799907581531495618503430265941300837464027330636721227649392158294732758434020529243222916076243149519217100857783326325230376679559490199538640368939347735194255526263661216423971956320954069842376754573171803895040203162285975405920146535951007252840123171407231108605473349262072149156820326775733532009993859985234594593931481337536413941665342621995020894573019919750218745662512633498526092558059976431404005846552439572176394444708634475432756391239292415411986364960395337598768941450162649846959155568156222898030010552869996031904746123712440510241888143196910993028166488557708947553848310024532423031417754869111931845171266467712584426532098257884623690222046691504867866900077972539515659060451074459249787710674414892908617755537429413827882308896934572370230180249239837165861870122680735283216088938984354204218263833087546779859475552226695764663416885788505138146840747251688106585016088834421919025043617226698253024320339501281048311791512882039477918639209327473296908654143364288369694761571091877614603446863483959524694771695569932236405217140905073305404516694104339891915231556150071337054475986099363023859122394535165021721550052596170640232843688610196344539260298613952766659832395181467723401088199893519605859461777239753857690781234407959310930161731469430744671978222457495224669348016335303652110526704676167736769904652749198199719365137937187951884684674446893982574504775749936206688787767187806818024608590444715771599443599886962975191264114263292328399332117101786293182205511764117689196724018516685866427763359120144366602529234914332373783328770812230476407951905792377186938603693606862348206659237754266351361389280822048699680513834779987859128816177611187623227437422995714559757526085377856340675233201720069201097802843888877017997028914196048434721948846689006810383704292338052761205477294538907205218443119191549199410074987922527640076219871248650584887203470067622331201678670755639183775343069584337541105269318260004383126728945822300212086117670740240577735298067295714666646616042444535519001516976728535738697835630387706831768782401168541087678235979818076552613696403060435832455130212408810571517871216810934423179237042485526211169889720625268341857753337433119152184126941891984024972900801940395875445695476903260318986317408655463077040125381411889818151447872961358995020616169027456248314090803525829581778702267124426752070217773744134703707552484828832052747996602639708997754389765611328146423869486522170708400313274391498854846959338464251135707371751294597809559165436722016625533563040230629049280132833563361826130097017754718348993239662749196892758662640857990350428307160314111396595482109399852652230220654036907606489099104236699058832211753169281992409072233386441918882718311394941338791843561212785020445318421561962833099811373420645957995776835637633194458767969014471593814216298886899615348401366287951701125579722636684917213037583768885528623199188469633479729553884879831757900199989689846598214176229225159688446985879812345378903093160007963649656258659478205611435460447502746526875229043024165868399267474048410195208881965309977512802073354574004918086809208496388309937457952285492290654046505770894606363081758932264672956830467943253517544553345436365286174245751672475613333102450455137462612870487469193017753511461907847681334752229839947976883513314826625778219496444470332358371441159062313278483743544639110519485073034921476159141586180587533590780946992142026433856212960137482793812637097783025350171630228157408612086976836513934917371961103094231371364669733557623810759393149295549330159421979660209870060042716861090460627594024856164629818952585158284138719049960334317959401031842812202322095002887621783290755647722858601317513016360850964134190136794063181682869025757337918315468345362190021008585823475441021168004975815028749012365677440643753455244994313353088643877732758168191489557663226830181599881036111663770400045616974264461635081027999663055642298002213157852589491183066168998255351022146282350381268691305359162686151538141772922201400014008034173274748009603770435072959060120244485718154552176269151855232524659390574542521834341644899062496563682138300745378035794652024023073272749804803441767889651131279666636060171971077089276824757215509214007579412223524376004782378186046136428295193749030718100434166572667607226667431122748982383890600754955735289940666736820823468634426050993694110288934331514356834538474096356518382044951145484729637563942161079875549967816182930870934758088971999658891451864062479310877125492225797539340388468074146225296154873940180452759145885286387735289893165567546491794669454055622150236733321412065035552314990523308295301957695321132137999716301407365763747699830028761163175830737329381157123700743644404234543462614027250128760326401461494862883830248202164619072451401158780521124920259202697393772525849664078459964283618569953650778576490707741722863197080835579155988046825518714798817964466813338506174218768571233375501654270247571706103883923491933829078315348502001231538326412647312910595137772159593274084686541964844161233002508543178428295094278750717467184681171043919445210165618387361621950802579266803674023327260070951406365868544315659773492984794467969590172245555942003688399875526734422227554227841879344898727158582364834708664710526986577880014993782353522483383511815054927276811175773183244149219845678050697241983881037026127773685311111293456878217266612221426568698920145162500888283417870622034607628647896944552769946948538910076676155629119699957305748056367478537137299248042131431443663812680930279063732888564333197956232346389800378881075727028105676716045710086413221410049157625931254413681825991101078575755003169080883876465400680776245339419328618236071878149759465450854430316070336511843194663191065346983572219626321924317621084402819974740441358342431831964438025679565925413241824877880480027537421919412851958945348255660920987475535062442031130534956622928692460062946650980646270948716550240657128151639971946785434999590185143680514047084017645245221236714840927192634427600378896952821649584060568565285022473876379410428999786346170932667022131415788495424948481857892606543169520708776327918623812850114655118573229403403025650846608266328333337478822810764411074038608234056400049725390366980329718196055531655022161318177873434626081572817361165232835504293507493991543532050110126560512879105090857114620919127444527420671535750691146236807117457588892575185472809286497478646898022618820282035806939521174086435881878991010111966768787527241167124170696291880719931511279166192480762358691874503261535723652849283033920358591592766447778594195226885080441823336329221466649452024809335071918107650898082728775561742293303516637828876273371423644526350547983269374188463653543577931317604073783278959302909909026858064883788370354960887755514194484390999966491739220320135021551542368392073723575781370780989270447017395535435176239035823269213279264249233818355977431666861750872440207863913311629171942834645522950464208091837991812834891308712806094860407811777600850228223461793425316802791374940163444248047063781676180096049471193651300959931500752630233631332825230394240125615321499109466152517867763838288460300220981663796771484468529826160628016428300852280355846438650249031691705626880895756630294426596513317521435804232342607979042493608255214397859115641892748089438293711070601455869200316541075447330468186535187186205435648759722053029398368551365965141092161329766055414165780429212630750010496288569616837808052901272805128255866309049711074394638602777549483558823401350599734877165792887952025722244183770142734168807883961554348205901244895654457187705858897303777799357962271963028684070587609465133787370098286121534436269132181819048525268296537267254741478586760171848748018220341897946805847055241530405030095599746565719366074786027976514698657397198239621194261382894357839102111458417452392874682170794696469165628008529332004570560767389534074166233046881039497634672235157674352418442454348635760391011151439167812656255800902237717108877676068276183631741488147743941059586377881670205525394039112563599394062124129552108801887731535041169358891565370143521328542823048734209806122421873245670165978349151916925648197393010176409734780500738559104989619033575213177298604116979062792697861633191940813261970061440407915307251196288332197307132345521141970130745719785253253856252794892862014912601327728748485549060297063521450210677277614463109388898669927415399403663674002476048110323624049965696917731879873666843543381205357457420606779055004085737080883484382172215823587972719564308863632165147616617762391676462855600968179852758083160166349433693273272932563568222934388910346002034153089681802890358770967848011865830991264243701129957162829081537493313116834867576897460327653998508629771335550168701174564933761507749298990118331161243450608813456263452664777611599910969785220429184013311467855262131383999871149733887196132568667887917179672217949405540066972611036872878745626677985871062521491393728248920169292941526559329471097684590232056579380820106646098297712022496742363411693076194110105799762119790904917635098235524018691980936330174500206943912940786306294213187747584307273399141086959458494178908958814616463358698357102543772270427349452063973105710414263385726293669620937255206981803712206083147509143329266761555769569747800451490276226771795534067726560564948934892688347769578184699252822593030829404116754669073393678015784713034022966754813576852951323278525171087193620717058017920218386217246824558990467461590210632726704282416030460193342906847589328669928156339868220474681818457142426260801807879301927463904552672399782843426526682762223526754262468398434387423346622989111095616751067157659324295437138143784523267372822124682149658934746321947841997856101464699569904197549911625580663777352612512814087206681843451284614800317827631273527874085400592411589133383999269811761366380944160187458855449302023035837487935091708317090203581716073942550273817948811129556758160907992778860653403201768384937066488799869145008438807512862906323143759062547421455844819556156934867165996165433328022800100102895961907964991125088581012040438032476937931156973572375897971641864738973169779849796664950521135669759455304575897742580213233774501523976349609612558451933922546202424275015567154675416866534342631725950611664788980510657020496213779001709857915680872929581882402770464940184858998802199413869256601629939311309861036364593728680467632014348951399717007706978192162596208328416860862426487117358002244560993494810933582072901850856576431580364011574958590454689200577558153578414772784859911041774402267808484739912174693586548568619098539908454911720728133716874199325623343789429177352656532323131112727128570316851188955183247874699316298788183639427220654283843793281211096748410675488556649607669859450701806177220535706599882925431857135712813232638821080662170956965820874654664708699143254715709105119514603699371497174359539139403696427528023140891291012043846503141432133653244779848747779805712424727211525602040792132937411322601284725811071472041503831415512101748732476753619739812796025671851393012356627341193320777860861849562645059281989884702544746598647242698274701759954694540135752478914372796681819349388821839636987504971606776877863009703779130853749778045145242746976349296713019688474369939968177829171930881036816176962807225062769804086882029143269676483617125645838881012406417398425561039620234275624613308107262794766880071404695280366484471327004132031750876681536994888699550636271052158657199926076828669085525524506507935835186898987613690051231933436735668150254034257580945475490732330745016813255379634738839812168968806980766402123866906520429386044157844144913297537537161761828411096038444260552805127495737322999703860474587292238948949639854581421926388893257014140619170793231146765206791923192393474444809690503506005579256752891366822430471906459175580299725965866498677318305731522893747850010330774150018629960255236420500615281353290954009949086407749880930970820573259821866652820031343610520689964874205009367972323183076258180888000784448066215276974506963466272448486603509186871418045187686478124235409847562582787554411001908179127757137762350438337975117877309178464138295350058190408427870632191027770099710543741758199931649136305456172347677884886765260014931341584907452941441755719493599496217164329564141343317611952648003549699285872149539937122968273748608783914007377269096207122310937422781771321772938236865924191463294116568676394736168633872468378081459737426061244822543241912237878042430096055207664026915146102030480736590108191640872936272772891734036747245289660856601354338045922219080026321412106294031584435623787055153500217945235357728180688194780100603167236813853422795854999283206199740907410396822668600056295827101751897818097712768534740998768947594242582464791995468454101452000739846075591396640266464786720408038173874009006992399564804480043098553438618757557333562590877050486421836239356615809991063176209229321914617333995551648565376496999512445695584129214799627446946387281007353950892890910391249605050441932130262299788291265133500511401037722489227708039179321435888963019593272102893469990437970106959321814982261180983301785269835452408119946959211603581786718812744107194842462819982215225894325534864091734202002029620738846588813316909999867891411221709797068958516700450093000673881892661018569375265483976241552889721098591715368103200880947017845990440559122400131158011491585173842547622367033258226259176196157468319302851453589350829653858406079639241579988122536895260417179031524692040313659556799594686435085660496218265885879318811226926981529542354679681476293679563920570957743159850357970120060747996913472802376980757528631132859162130457434312319422409465235875391890495924403835281098557576696397147740298245705644699545120949673810798683845438269993818138067343642746775814279082256920020961139033333632619973711722114002170925374264740903261537078628027645667173755503957200953655552212735056652777664282943349976028298443495503227373093267643222843502763143001592772751469826157655590367990345789673766452216756726132774933431265996307009114130578378540506460686337599868128881502535255411715024200321609445734502049572576061641270935697109785355377242510759531255266034861309038588500358581503261387812128520991191769827301148875373844497896591200063886242675575805036156577192596301184279350748624975369679268006090794325796046614492906054415730863107452897514114632110815828805653917414663843752314530275536885470570147117995091490887955908134212008710123481232984810805957804821142590872010274262948964079191411992228101750610634138823418917681246193232390069975629908865088076181902965097187371493561246827567114215509555979902104565427129329968744605908150816198129081761953099998285021221886382517596949571526225878658766391467110003486492361874005738571105230546843968831998462475555515446438075894724308410135243192743046378750129592475190190464162168586781465676350005785245971478497472608086070131239115985708728873155861176429208374168038546342368516993318818706456958441786056659006798699806351778048491417501793288104296177417500489330393655328488731066505739411870968504830447424931250114319296631900143574354713972197529705206635612119823228878715837529143195774295498145501933490566755880034050990707724177146719443018266505297493714115883320955441348119171391197015611478080106056986520462939141340232420875635989192503746588714104253534787718313548325501841998226463283861261971540048354600857486809981473464599429226176472282562666757187736720209145883146107391265059072179028312501168843797676534040272304768363239790526845560586319825999773169040387099559461605685899285680451473183462279160110692603542490479967307484095727225776806098198744277392775322041983573577406955757772109711732453646005772168855936718707997054802807948307982305795129128306218550444012215341837297069924538511798666327916505047964977320220422868092691559027036409784275154180004036953306623014022294605618905795959235484957389017441151959305224010038157952161058345335683872863794498313067598497995433619916264660603101469831561153285496941255125321011352156986090997767827150952287569328240093386399125764358818780881386222611652849179651647107328698389935224263747145299312709740934828726898550300234887855969770996136239375135922206418181746774892151190270836929699801160887753251973864206885002116409290181733840007085811551929576154494552233752478612803867077512093626987418209515106383854476872837527633669024651549671487345630047402227613056234769058953800438709223745738818444844693749927168864286090335877587141694233109999285238446995849518684905075694524337100992212800584507993647380825181111435863939536033432793697961176109106747319255270745437935466366496854819001184191767703697171633386211005530422556127132644162371990664055787031936036827080602055009683851022973439561732074531077673890428075792410484866036671715746324452104686111501243621364725513595276634244083431903272433820011667386727952522474674349573154330257245821805376407966663260657711341041830088106140493609771551854142800800137116772243129445458142078761016104803842480247644057264767212074953340919082004044314844351282382263919246851113306577908085786327971391163982359787953916782199131816421644546179895212021735879887162888457145498486818632315910953115158805686662688352254401355894223181229265455637256427174710235445155083973312887089584496779513931345459495350847848281421613010364417222699411921092873200216517097798277905515819306522712247736991961142096516959223737276499978021192813926785749246282958129566757220949257836886581504694109924963090942603300900152487217209370538353933457458320491435700055694571376373351785103080165149962429786073864158295010485668321799852753527569520223126956431419494016148248393275008970184590398171922033766395643684944689492851947800302802093458174950374940881387224892007048408614843269928764171974784670371100746857815031038507437857046151423030658013555340482757152784127876780233719975964185335329782358702348861246533340143796068221086387071529025159936421381293936880643744204018363082997205699667378466088414907584411029990968944674542974430649188485955301679665487939116000490257556773741423115051041245315808603452785968168473597833747938510848945779714584288398610242260215259238191267217725276056713136383868667086033328291506004193601901580521593984584922030242734032818770149534397533377359525053448904335963788828778273238265526849303663210686267213935180426003117820773816225608322406857848342602379698397656118116861780281082750556522606406821642700074207058381766183287232663385807607257586760604942383420930690912815398461925285047215445142181230097735110428214285403274989584393504376651393907154055082466541385771521728480695839257587198268559597984031624668426799000856465876244992432775965876229634407307836787826369297818379100373984937328453104704200951633672231888094097932106517448953300758058835073636535653006581549209668040815533094860341910126494398086956116874341325221602949508658509239630341357412549018704800230745286569992670274533464447649337824482159691519286617431845681348173793273077740168448147906976365022696456688936333221500813846203382907968216400027087961337193448534189278115473513437410738763737886128389911813232489020408422158903613713787837620304171661924349236075477780288772992153487485936521711695559414657161991737449144174541940155222121752000494171653663216093982456584166046372490355911305933385867579956491828101808777799531877236598210469299199324864641546652859803929424210026674068369903482040971539945356299448751829874388051129523018245226027503882587539972626073191907431297505914037264679840307019078005847572329395298665682828788932782023813053916842006432900390971755688555793899868347244840317605803843950113552400982008110736609242011531941393811367123142987064910483465871271068088045857426992385253223239387641199179158514305876351178616789309048334080018618516853730164321973701260272066195226231713041120307553837496805935917555334118978477454782976939155739889235863520842493813279629745714649391651428762698817548949643676976777511125956564419871711617321473739557328856357770990020948356779662410899325582631898166066272056114869292238238332691379686811612472355726275813157112486953219222588950618755166382266746105445309354631823716849800289550352093471383206650615080050279267466673933184432520092625482941048991619754062805283423067408209763565143651576001382819667983236166669094657846224951205714059651297744001749742472044175366790422885806289927602583957998173211917173452409848658673721769120001479744396319232425914281813862744856712487915228295406733093664429839582633209154835579074677977415587578205271262690332547947562342453405121790097910358794181136999969510299334332910114408484442016932460116507137819148973559163417157243334149247380020678430024884522692679079953029354783459266188800568638751800045966634440650176720231582687688217710445673043563154695421685073902181925449472717172072354316220079989156233798865375897952143832991597598842028306114230379822922362629411093359886963153212204826641845779496488928226212663753000960530640438888445779963584078711963229030963462050086340520074948321655435976584999660960560775381615166517483179891181719453453744524241445670439848419989013719952336588365420357031026866845721551899396674570455832878635432767828986340615334534615514757116483704624260015057671805389623198041532285994206908175035843330965319262313997571240105846982892446590728958989799235912441439579172718539669098946972210596745858274264002659963453937036991029368342207437851898638453643885368986828639879485216293806984442056584788378825269012557952107261578934211568222109727039101192352344834046163918296774698243543387823110601322433325327989078606887255752930843939098191369648746619138662417228963626208584402987763693499590307640171734377560590130358338565043529932758089454847564970759444526926505658104291026070609297316415753533256610088998390281412940000580119111764197518225161358893310585090789093083301652226446558215418266196019595486819105933438917075109757929724266758134825011035483423706607449912525246881005805922302063874878450967650674210027356583014006471760728841492916037265358506930863347974462415570495941893619845728852540642217983916367378004824293716347664905752800123238432734457142952229885278381923745677843947625301957395203552428709808283889695321802471168252967683491540391123453618267269543235233865743868691881866056572087099843198611440466490258793658230154750047145085492867631889875090398392809459878672763862843847164355107137641342941854947909185492729028323602412312335926212657137303139192812406697481137317553773763414615924028028325349169075924947815026002008432675074382652495566118160409672923382204836309187728748187378494289654158257863027455300234282956762833211897223219901122351349481087444171264868005112584301304694191420063173316713385456801199031289941314328348472528283770883321270885182268273132834010234118553793992102019040275221642379023976066510445991740979815280419049884264436135857151894018092076846805182378756912557845719165922236451774300380014738413751590188686102843230864938024463377883170287480923477508603408237326708617885733306179737044868031299560830169529558700603301199363470209166185861331578965343306928147031454099817613522727871487991859976922375533669095849732898431740324290397533878762047200438073594472862372258040281831091698258447233900404574606242120874906788348903272520820759486982168301879095782528534424797241823942541332041408199997746966802822746109041175981060617283450943846862058056796074141894344065706926636841748241550521975737229266685492091931841407445372087147713069844410393466425855916185806168578103636594823858081132672188530578617719239081567827181794304272608315737584582818779764240200272776624749041367200159326628738397674162412507627882453142311648577864671201548716270272831424818683274036905987031609986515215125405977567062309045181756485255623410584642669088837406579890939626114557076069759556872847366636567695090641953432841520736815413933509580182758675518704848575491265510653333458054276193517099940203660359562544340633001668787466333786071615687247778027646242830174268901070499628961294602909161532824910479931243312200215718290468057666482306540359974356690243488438760619501790066016060440848455949258282020267892772785358775367798977643087690685889320893006410037519997229986521255837854766683883450376584855333258684126472148623326808900390298259576009122181223181182180351141987793088495347790737047314045846076960011137848930659060361420734773098355813263652328513570561464977118369853358201303597202092892908774290452046621205342512288697905122155819583949492753836944903766096201723620317347441664849645496631352586874334080689727737721006316380908824920869905005926793999245785999064966600241859404026280754938388087473575158657476403324937542888381669025709318070382629870848950489691813681490711559127521516005302095342246629936915922534851011270883596122200405938091149753033530013093809812840349069525145530946817587211207450241942840732726264401139017364057345570611817324886635737080398054122041539759865500109140390422544163638111711790569720935568457830813092746630580724473225112650991332222905309193802621989850865458309954986487425224428600779036815848320798347953777387268951472153948539182995291170550502671835664722588431676402909141072952549036212783756800385389167680148781624848210137736432816469235111979430631384805287637318240339338681548923392947415737006088545132894151312463477196628353498797179337975762369834046334877646571495167663496204714417496087062880284354706561937906673493069531344417474555712557482654524043992318497841397704946503381459860265257434164521063939726196438411433847716442805671630089020671410794455366416834678024751975169866186053258372123686757263293182383338066837057957566729485827172319685004933024858454612125597234667645426224840883357467466259260850803323812038509634479548119160669298718793156106742600358361125279792161360312181461612473709586461491689582429664326310758393374827176145691271743386072538602086830739653085663399751339721754593562954438565750500073559272159407444418872576701622642693605066400851320869232442469573289197238053554847826758864817175686587975972863777592662506955556093267828610218474893885719038576361151542570162484506383807515052378759198660256226776081648501017831854695614456133586000575635740731497065183397224739340810637607557630523588143518943929833305339617891574898796915551661743552659514424131865430033412616608386350609543268248507976177220654550068677676309219217093873132508593718187798680560568496453137209616556020815923685411184217727158057363010713706470110183838686784432611594618449365872532887946483128892712038251874427622081051033323413076536668842199650264748399185380771550668373857989207894106205896533221992349025350798770331575627681541930245026379626705017836455612148031735403462325319367598487488572945257815562724625335277163997346182463249195091162604796578575884563611612606601496841696038537866351090858189695622555932710199965844660858966115243574936407737435670310249154587213579698502777944587568793809306639509816886542897439013529009927748615886131774991548396143430076650117703509738605843358684695984671027367698291800127163643697134366519618143404500072384179672707171340417186483747525034671884510180382551397958595370765810017095086673160713030424461145481796605042767472684599815582482376795554513556946877439519840592107253797210738121658550923591240118772149623403782509665076414054134496355856021546977221988447070866273212146911177723786324450950695980921448381498894598623632453931793714016953814949307414538787219252447039677047902770831272796356206146875712163973799882339632752335732303321548278357491875946019727209909951945634329907068914207053501977335638688121276081993131014340824054278397958694260278353122827265332746351688758761007781987736376031866027754815477326226673048187162797738137176071845895146986811049191582734373883664433360538988143620320271952611336963296467021108596646089200444449273212073370623505987595532290968876830494063268764701449464452684346605142875812919859362532664398984743870904483913358126430320105144290611218951713944719140701503128247378936069241173333907418567225932075798465448606553590425410383373843204712748376371115847031781445271733992563550425240314135818928930363546085571704593183339799853559001988048910011710869705177587539112810240181198489924647587366958227871255196212951066040476918108211008004550528392312862396995313177190924657471912465419400046493021200667673486757254241206427863908091279281311252416212961609290560391983173829891046807637317586356530162822825236377644874558416260617606056573295718815126671292100156880104196701796595737290890959910232592949880573852333201745948564820026710124890323183263936310514038057823900345990995789484615260046064088605228240761344730887035068721242905843998338831946203652593353081390630190527462089470304914595554134929663716784566994797669613996586105359951331989040374428051265103734211242455969948502358718029380263559447854692644748841449100846436898443028752124306007313979650141999557828219618447510518678197623875269939341375798032059916000320851857423498260852229459665308381602031140938633626247538599730430341347307816325229345455206975489692580391467236093495423313267080565116797434988598143559493101530547629012198146735930116544974759389724082938511253214343006137844152542442981912367878362159860448685133088436279842317664238667859503996882640599854029114890937371858859336796889423393874874169073138836961905989655699347726747816414642962184294255843674436436836972718363247440227600403469039592682496359238409006144355438388401312231498858806939406307044273512055780693026724303675324392449250866582265936057968168928336904140209263409472809156071193378055516630024043458585097339582909960721231613572981975083634199788218799849878014648406578921350745257566642556160131574434350417750286363810044405331446008389999759265576832657424597053594335775719011068880856484189821039562008163861451301474282314717219995494929791323206883472550531925193860929486431023765874624778082325118589322308666637813123080630763951463431175762793959293972180408909497612168851852733598823453119762295121631791444895629776887273811049435301420938166000573435251577040815586966535739126492602943495730288253310657725306053062971022173267761750716057048880883938652659423010694535074505912322252695868515140903697201951810960783844793878784698430446176272619089373926065811326511770445559904760494749264992471340543031257841354664358267273192517849893152789034595079275425415916801978918225201423473257652758932621853224428434037361031593344816169687722828575944685791772210311772801162290185411953216350690679971634529429410391060588935443687040298593726672304782625917292416155175475395875791344600320344016132751023920865455148181130459940828262349811939666047429034122352225814231187388523326417808169025143553794475745647663259171235795848058636866051417755328146650852427355144380045588064144453166429845534514949652611480795802336097057818732859150749846043690632321254344020261205639692191317006858739605478071604053578318344196784354250347096416086605635530476254781212014979147309807196600052974548607268153059947640717315897769193708195966519042263486655856231144383562993395592230681694182507512198357621254535589775362569983127059633756622316522046233499678748215057648673676712503409738359861724510331714056832247244087409499742838658236508454236030396441892751655617616899906896381287844236582134858564003897111431507385226550250766824442585601117734898238482110387165950879481035966363549504984347489308203691399249086902707679413882347732966205026245963112903411635334279530359892093124356218223591839288732600033018607781800106218656824377206254326070115040652104875539554208344894393166632143474656287534456247599310672323944891825732545776231613207250277685689498508338752992898964142136921195955378896333887314573503933373091420156078169029892883342953291141376734445026483246116429473621993359266583329757097474325398958588775689466879986466952002167193431611974761138647649849347225350795941603735595967723418525296927923302458485286556638934673357108203849300385374891259506372670351126697111562474820468267728142564733563991426219703861850499790976141898744086921151013558761720957956312723778844338814335506350902324030692053268607281857557233297582352647697998782189259266637928954101454619782606089085155924664209757755788594578372657399845148009176093408999193414376966067685343681566548408008761186250625161123204933018308377866272629251462526624103447885310575886446339165318415426146283288924498026399292923009451066262461527655532890127323388642611920680466188993606506189787078315088814705291100342156091240466176485074412311282599657251850479819878458788704296800275218182731091906937475286292386574377493917816396549226166866565543645110038547123410461164409992514954308417847755408840918736250238087209521216848731938100216380095486982696569567790848774598265535986796255633214605108260159883524053586521683773141672058930336919689974016760258500035145009546745216383095120270741269382075653946797852122310475503469308744538228617535056878352836852470671397854383522898136928554854892574657441742295917668165466756361772740608899545462235794102482473072875174280995825358458818403291852937723790577852601008446464318705312726050726901518876586808306679785782465927707035058462625252648756823407063374629471017773950334334912909961196816052824723523076049112733203658714974104440859926352449084124063088815283843183258385233025400122000975401786840435450640444838660205075457196467981213783350534953445694718600438841599825146795112401807119201825752648388834543599404574220333088024587713976404670756628331031806997518944021166386303851651150537720154472399961963978594242681373704563439270768584652759541679154963730990368113760137583039553657479297882755558516844705723266226298131950635806730735413274992021347754017199350972820010138594444387936700631931682015573287199904069050067852064865446427418662997182436193439821713303798470822436967412859891988932180799276146658556146724410458170224617835269284874460923058258957563190263302201350894886376865022093872518442897455059535723068272776898978754137931188959040161102778044338104867081330603235321569946373964977228090718379110292108360364310955768291608529042049355560737910049578185895516349141484174203811664837973661821056876625421142665072622182131063774714104472473378806478879209467884162201509381017077598122971916618023009093778865198312843004424145886657173561322975261355086893057634198372396734985728883996418358407384467324582135907172557591018133276142404617983404587380929129125872768175339489808358841673272546140978351733618875628708909091363540764370156714725993674481389219428115523598707332988098024233440924996149329928854601699822523710005709089076100237541778525182428476867250980883542088489640655667853710937960414408654650016362091352117750347079411472893861495281432520998364953740135923600993162829928236453461962204906981595372344371329716078325274130988006476006537993664626905739929431442334527906519089970067829810743500214959285586143534678068974231488482839168151472528025564211515844061499798291936259064038095375336380615951688843377122970987895124456657699752059413481503050145876846115201931945744956182974204391309429493219899575369299740732234538876759519534483555226664248604746531845621578655982028289662606734934657400953751028017754313168498354739509664571822641978781091897074186066526860346894223759150710472456619992309165099421209529619631243049835186074751067622023108998159836653195279297494765516376127723496469539394494465883060458614386170220352426139152246323307600683446438645093024060971371872468357428537680202421482805449950959847589629161945107265169315209529065935591399502523196559684503423182621190845959239004812942251189428962533429416140939784494555483210755671259085052243220839607925401673393156979626277441408082288927362315728409511366725279392911212679156094043015712346237080238510509597353321761633975024037422180562549693883588708328228304865608317734631075639175416639944075986983663936354350055462405037084837574606722292724803122954317423672825034041108457697667883997175467492000452528699590976672067182021110580092608599750240243389353814744010457650113400202237544735551647823341123609893144515887793492575891756058582218357181751072014355992091819079650303708217496410769340807763259315214303125678576928248624478795535318936620199470634792190069104250495340040476115827057293455918644268382154522771983691864565932521311292388706624219759429740990082284166255490662457142287293891299668425582292141058756900210446204890379048671307346124916215716407317899567351011252769035395784499548403005299198108751087652702993276675955293654712120976574169963345650407378229249772159635774557491466899973279011825216746068791365256583254595932644104243872008653764011144036480104480228704177457672495052356223172596765203944320698609538089317562038739361686875931588074902250995936950329464372840161595832055552590459148204879126985008305806093976783606346397084338455770799622222984111278635298344794640989321361814848922401432778976379250558901019353105281088072642567694419416716633990246205704848714819431867578939061959808891879566645592322163451700244049623767242119685995832575265747507885134157240389861690118146432456477997441614805191772323465078414732406450195190827239951584174048420075449621637562254148460120303393657805768568740796328296794778607442852528731782936740507114928611672097913063524534834314580828358162212567429390842838767860114754869787476749423239275589467230671013131941003625521406210532912049111437740252742744798231266597696292641593295191934587850504469428773481138049559053040271291676561397872921790862910250150395788195638399696498789970005688012980169078547873410932163951536770729483225276632646052309059939256066219532189059753502636536273289543691416543902377275022138243550347310587574688476434792829012679258327432474045608982850904582634766149601498737525898116211253057641807715071252183468842306768651254038053054936776324126305361393345324332986046644624968790574161316661931360404953278964690656936664035559817744314898866723503811257539288905003525850284362251850731875467632938203766580145265629437730220149852811058003251845927770018317826483517568034514547409483495923114880384049903370030205709372865105189758327906936834177802116180611477260334054846648368748249427956182400699609672396754206211507789114641067494248464351811939626679556403234641673849006534660154603843986787195591756113235852612660033916163971065988642049435636410720798736970958102548143018388759692711035554399453771291940445560207741815643589776852151230258660601899427720544507894029692521761851751656905649353619619924637667400146183237850552497128092802930983768940010310288403895725019115922834460412859943031731955617923434525360048848773724490239809720823577967038444623414827913479822230891232837825316554579424508310634102547066916429965001088817862883685785132074224347748038355365760372008622445823264796618351338509707219605252462030267665644864311083594946972942506749098026965145694435275040665667731465593948841747975865625399464746000611780189805210963211049713216649203736370350157353464467795635007714926579692818083055134216215510269442383250376476798954982296127178490580961013740697648166104080463873242683800981563249547672084583784842601394288109198664369283838133902149503198483940781880087955395971893419872198670488870984272788498468175672130081672380498469820928817089121295769876230348464091301571020375290194344754101428109069001838882018459319485152708147571893824790326657821692180114388586437208673330945413792511062546939769828090557730946360693323040719935360346071257679054868914783910341882068891582521202073692584665645936579759593973942843547097023269177784949981290988985605557692766412101437775544422263223897320446189195359556177487981674316577622228793909502339866276055475009316131518821678274904910140303882119823439637763993672284885770298833772405301487088628049493532928815047513591330817848268695031847569187567217634788424741398973175458538665090766854364843676075292090565838252874150334397615234871418892468452602771677588720934222651003255519389036131421414493527211477873082082104232481117217102550406626177068301938924187185360427057310146569315521377378111484250505198671686336363603645314305075174623627924611543900981540962222284780443459025791430431864487385371191775641299714889818182793315234399136740573699310889689823231336077801886198335272527118376462121290199493389739737862768084540589104886082648447903677147312199826794543286879312973801023608920210323477562453028557521587818049467288172151792632213984451476933605535106842162977537225192946127420512825883069613533288581671703500173277312475654104855753868750269941494250578409680226094773877421727665510052602752731141638658513354038322451337726313176785449243571839445047346415648688891073283316014790311947088834857661443560048451892192123091292224331139008641476393719983492997854819848624784323608007049048890711386710906139553120328958713699828588146886371922786799432608172357442234891654344189874622344833978733096639922030417616053678245467040754857884800983780140740069462160648305202954895291380118304241614563521806179713252313640644585118709340977112185534139735785416548496757973390983119560797084503248479420503055447057035517982060738906988065965885817197822780954333124620268552341489686688120103675495369445391893633976131126666682751737367578486670400506277973971342679715298033806983521647039955302671823671075204786041529927913523446822278072247551716738327762985205336222572923845340341667743387165718754531569644169841814579632800032070752206691890995591065229042446963177333417073132861540112456145755012040221622516579285762628471068190022013797051571386280502985638701187207878085728614567666522329240359829087518792167143597911496285909946780265970154748288513117297642710133431431796891650888093714078251210687873009674763045612973106223740757892071197444087204731037213523011425538867883363973487947936259257429794827466654923266811700781126117357260951464260279032098442185521175616902715374479452280608315548986742383298293040465219856388634983462945798682894842852402419160165945611122963863008142525613804710192705573287533444048914604016407662858808699113830898349891522050970124889854837423107835979569989063429809411154796561919653417995757607910227359566776345577985564680402900102764408911965347860481276497017178239903062616658482854943850283652381198973388765715823147629165376489378381862338075347299780350565493068384767393465011917846549646565266725885924092123887160503786822412493312320413960470901745299891649106869227951014101030719272638966873561705183257301568409660983557246614319266982070739131599968758062991272254079588065382661245083863755970719613906376668500644586989372080005310967735323270184128945285206060036123130480995739124797623683147215512194971364690719352194436963645730526212357000949493133370587214951250820284317118244674877712732331958853162068891954064461398589180983058304381404335432144263816157265129274067010088512458268888026465835459594891148100411627709101117187593288439033484196055188318556454860697298766913559941645184886445595634046328056970009162282804339139507711710868657535185998375471255887834304713412697002092282640076771312768592017478954493009369071961547112184952703053155984073927051749924304950276187389337329685135793651563618020985936450507529979034024774045832445454137231266207229315247481878666490757746278007952968861805558078162951233631423944632089842564997987221401559231870960324308553826522665536625113172317100181818548568737477334120337961308925114651661290099333696638544463897735076097396305752903181949780574269449181763103923417691224965998230710045628601987836833909888826066338740097814108178310704794990414711597848155196693853726786642033780434544481833733826512265356433383139605626534000382308514428286384007451457307785029218076504167325854738770050384695124172737792932678681192624574574826282421642821981950300582559317934490756736828713467140670161411761500234757411958340796039777621665894588416487331826779626532220570695614699743831845491005181531160745843775955386608667162640007512429726798713449695289085323865542566386704703112644043412620306052368472829916831096133638426002707178257074791758457275660018600553399911654150196273953601515842174233597818458869420398704375543145853519651259478002542180413592338313301013015138813023670052980123237069358515855268274099489137138889208238697692209017924771388978119284537173015137241223439333654458294602456088401686300710610086966949101280274973049804451821633574332211231542331285595449267441478820479983805152279835230119514866049507110870924593635646033845254716910168034407683319375480247157960828182884156065837686982673746622719842851904796400769028969510715519185966460969719103318816532159125975212326861858943254233861721908998324665644505897115991952736009468343760187301485008102862370322161705442810929679149084745409845157665753236662807363365958146765138965578758126009747553187797526589755652492813036879265307687946037061406525905605393608001348231029894484836913519206158331820221251676420770543200705852989277727945691535309772719391537350490692335191977822164921156644642746277752727580982651007404279376193675125929936626619586388490507693776343539586192615412643515383198569421014789628745127027207662126739407635170114299634223457204627526307036456341152356028778420236647866844921404338202509645519098635763427232659115777110610912490113153482735888471660428864231054159337049542315987845636136379595397588239345450468695017038655433351397279184017059190548486967876713754137174280935902584452152404495202789745589589189759727314103284815188963067630788072853569162910000724944227571409119239881623366098228153552799617286103123765933477693701315184428044557512880081332803205518888134515785149093020818296521710530525516185495695102239053337811400505215650644345254336652932749742286516986850681301177217022383790189200533883085823614656095109983927886421766464815613900561254085669095668319468188170845374325899661859350283591098725558212407855183472854755302802981737048449191999046996591249781086076740466546744245229449501819539905429551903258727088500892852289552869777756467467037809002626185469382721573951912537565300668219596547671721327222226020140644933891359938323812923692515009939194788514649634838274399586757013312026434671479290494799111386052818457887711857017580831822500912201922125339141999266162218978402597384485557873764412378105349399215504415368922689208455796747228725185785223789726980187160736394697798676569765372362944101726229727318379642021659180899481533608058945921601178286511778586679966827792574486722737435577285755107131716099994226163307050866360867216072183331256798578496000531955796200513114130805082027157533149099792601287171066049021561433649763941467713277333424613583470526692357836144317480550846523101515454808961113805083672083067398626403726532637247988323041606636089092885322540754781692289543332859829841678552958697018222782219958515167295700435956179613572428634243173609023736370128677752662024358716430515643658209064867662066067756464506136564940114056558124900284757084594682722556964285675737255318317934455784276498876570451472942081235169691031787168839213730464920837711461405496906606064897090914894057175780184827760634406609462664335001178535032924364617037149113644319686210345523254680421472792919629632261900039453507461836069721635285737574863732305712688736623339076471457406229928821239904141270680456712409296629040295187407601933030110873033525315259268554843891503092074543311790261692979885687867149576982091917000917455509579740159086800529129360245309754646879994132658040764009539412244773147953992455877856764080150668124827131419369217087612067538025599694742972371368532533889365821525252915982065789247266217570373747599054246147116983932758403508430068876409064988303045000744626721383451225710748877715205368940674719147787491814219591476448220170392933952911713221454762608366356035326350278573118850546558325429818548204081123058114086960554196226276134198801165411431932701232335792998281774911680619279712222657970599796332034736694628050520895430431677209298884236277998207070540397077948998797740381154658753635677593716926687135596811953101046039426576112105055621684708995103526728988295745087153465307202364410092185591695408835131223189008161152585386981106891179114355455359964594578214773244320604990663483998192882438325539731876185509321225693183265867926828784966597310763315529694889022788129786448463875341904016943613003927933710281784089545102373746589228811612708244307760849983839546247804337166159358760150889261679725593802770226690324295734595820645616918785922907955424521355635705994279366912611578813807603114174672001856361620454014536250951024138696289808367988593044961251594919192406206265224713774954301058000692171019802020919169013573688296822849533667117389768889150434642751579148088890069239748712426940123062688323817555200795541427054314555406137846155709146990066059418424977025956977919694259356617231567970416003797198599624988987110407001149588802186021440202021038668850334051570566300109297673670708785878729954259590022627620477876852374224207869270415055803880607975105065798184152469493100344618312285374419920241253457091035948539706126157566115643332493433762361175917020323096620845984627489862445146181564094199630343462960116976342561328703027039418508345484748920183437644546040238104701105995054290051923017002718651078859566848921253756026370490906647625220254973399182196194127528967805400754160966173411112909077923257116104668854363634068166719558706122971553347480131241607715321171123132953049969659605225503358967623166366276298861708086862112153149550284871400743041229092272692260027900194692140180184281571528478754982378131426844926045415191642568205486586640220371185621590948419838714146096520146094771892436163690477892496895502625044147352085408492394655331211534650512391718809748459381902515391432688944203458406049586920825896347192135473834958021644047433377331528127852427107761342734233694545171152292048299210787093185442968650202884664079089825979059789690668547354982713312638017585886737934812412848740812522437677701175200371400950099692387706467474682792008940284442339932536675854711568127080333264765139239621339603844661612958741354704261405118936264720939769696939553446165989526760996004503088593700743184123390186618494872050172275420901120649337223892562802702329539329650650580358417513212047110770580424058315255664214649003444851633721965598537816309402199470641965979741230346709063254942727880628718217333124677997583259152344706348990626244536708426587093877282337621888243292358189302333733434636677263478305152857727561578308452477872202946020342265306307352723824970731793594226115632499444350134597419399143984498024200589178002171699534213687454555062812482423589233348309818610228683163221856584068639263509144916590385019246505602531697801988494150063638995481340953479773653735374451616167597650465987398463720837883332349707786133871254390732617560226728067956926870009338226649900727500049358335070724537097259129897853188068096146223746667076701300662254886810145167839132732358635435209674904759570622544477932369673220953257331227748970486616968451942625745577548721567692500718414800345647016227908530042545384974838796737671648562044561380574217903113920471484039847114898437476202768056713539491109455292091490976979122262429417136725038545441094008294627555348520914689345557444073838918121510315970470892143546457033911494254365650617158813187084366595762323032374076233458429686675841580873823912187468891490331212009245316418063115749410202218986770075759108794922087511178645403427487130675609544881085495263713396677888372219909220369429559363836280932394957319973078620802061291707744775097070100415436232731107925345433031859781687243712398381644530857091852367527688295185282004821343028573888353486515689505606327135801908489110241694115700634094629382397816470982523748207053898023347708255794478033881429354735803400391508945067682257643879682725037156077129768122495982355033210422359190689375719727089563416437882691569494385617469799880984432179154182888085490355811957053922513706685175170150230366990079691695373816626068536761401510565831661089977077669887361530436330381485482403222177771743989940386557888788194459705666941687214067896909811928529897045721183173654217699164656668628906632294705127304010137420271690933741715544531734544684395096538751865995780098929100456326866037535596747049113243910669153572409793501926478970366210814136482866324136641151915049364315041632381370031507068056301995397131841229422596384713887524640434607754526789506080351422832484390639935939303214523170497504137441234686386200904564017123064961627412729733444804861441392048218193223373092973505474465189970655299984212062410516445398593090796879172560147815045322677717798278227307726036237461330142152094856265595195095758408217451253473221842927090454621942985154525917742440231286693381690118901453421621297069294848381687674265128381867300128324651368268408743879203570129659276532120260016629660157595131790636037954958208237046430086554609591474340043667338372328980781672638015550687350597753998477419747503743083912293433076719060878435526290121680297395188878094278112982647509483877463394998395542928986588331768131084769046177392295473136830652882569748140797982626301982355165623787510441123582100633158492603281474151592246761565990506507479104915184460138346516666312698440691142489075054037770516783070288574104854085617121040869609787339422175394154723305392252555872763931280568541512832592928277286257674197653435241762930580625090865316117887621312403559991320154429043369390947669176041579334206221913287276677122058381197925993179884262797282481020226323266475922018720611427544509833212581263252802649850809086610691386617390081988588915362442360915575779205742302954598076685755406543954565045474035442081530898993763335839410581521705432304526116632633192483507809714908716354122646966669114928807415497074230253027930678437394199445777673427284585569704306331375549342200561891724060231217651300903368974060444776100544532462177586482859222831282700206067007283328963797527830693307840051021884076672689718715565126480846911566578222430743517051431027752864994577535754549707495817171077533238543848337171414676551722814257751727639496755526059606958364111071051565782754580543644449617150172870022554566934437253570447638941137625946107181700236440907529602781282452469216303522843737749816906207620395555798241258239214953979571869897070375199869972909764180391797374557709954826893107764815221665608272174670437544433587477303384650481958984321120257530518279784602825305185927811888770753232829375152787602151801091899197771307160598674190692794814340693306263804595394726411399864173225826439501622196304058001932651249046468036835266320150504783769388798739998530902684614874406738493025356350199394639447391425535981454345898750291522802404337747920094076196010696429597363453798607039807490383621027764964234360812298760249021941460698104801448779086122773464135417320888403401819205110661190602188770696382061016084630889510580480501434587129526138174752657037093748351128331623565063950490361413764618197052370347112152775483422201093833890766385525773191983076318097748236833382560674949009034012268221596084872573354433078538742535556300008961426417049705656839183537437043393731632026158913522580087395394631263006583950477934691429776026189144722634252414625352524650324482775080548325691578212176032908217016543488760482440482944906504047903004537149958909282945773416979883202548305713674229760474045003854432235022823283651704523883709072823037456495540782802912498369703158367394841935272162002891010280560146948843194085981277071651033567475258919044993523273466712147868070047960250340924739110111536958874827091561368731776569456808092583919119240253836129463150499734181320042687115228459848682467742627126909822241373932179201369314173525463564034344260967392687631552891112356665243317375224109465805786542188882663549954406390898743650838595051891027658083117943000590218189116801691713517850150560516600730500090816875360717619074750555983560137506628598478622141323913973611210161287977232060533619206216339818811416180770441337856979036509404744991349942051272242970355257370613617598789326038918739493006190051494882715229321852162521309193218561811736927327586173430324549191072290595679251600084432887821778893221269957889431038899925131105069643368265988890552685910778669671760958291052475072727159024144265122457244152453388283014769866383673481407751634908870212855842419471604659025481359760061103574621613096296162710225579055152615529848318071359512971730874141779172003331312653408681355800725955141118268484604343427210866818560767352343996966185454775986822255860551753683647652185454809210691677786082667123324291036378520007563752233153278515077086523791397464107966966261627142783499704548493619416107220862496796995416203550663295731552299898239898309531253608233722263798245763845573024083308637011825455976851973523460579224225682293772821684115392140669430092292390477069587268168435558469687822047844907868988436999519389719629795364726883753157974887348791341319249073774901357859833304225865492515039287535991512555834633632747375873152093839930142435571214367285194832587001763439297650162100520265478171558583453902961194688024751607316238055100722180433751186101061983371005043902902546449430608731776863861083835491336039543290001955137130260035440561129840727456502959978761093332961867090131951423352503306058957817211056173573551213200454118369063344688709056308286064685627643773198476701454357694005364953118790748915004478014815858026107911374205177693176828390812024704914905415948696043459115973371470144757922552665250393000273005916899887743265039658328730574797894021233110647491275002497454657556909146275129532680465262934530086792073571837758880083516289483363098255727565598765543953429923501853276212342519189806406354016955143572935331007049477048517341304743537729884684463104138797071402279195665713733328145218302443951604966325417745467647347870709776620660763299073627964502530557323508517307148168547995248735667038568957893279069171401553621932199223675488081340173726348156043409220939304529876413270944709166847698761468341341448248446051489260272237686859324643188921816776387194294886834875515079207039768468550754705294350102600715620339666850975370401304165225928022145296933434913939114153276825578767541899212506736214901373882372900987487771435979832615048452804343397302761169008518082593090816544826852009017314040580271724297717854273333976890702063283948903481543781961788133317332288668237087260135076089795503561689510662187815853504805575251940185220680005535294515362153387820715904554051693542034109378332199394799811047041539647673265262708609852584417803841431580666659473431248020624573262725332190935964377985102577855352576591702539436007089046837112839813672093421664642556906071338967314899984570616951908988016743424862791277426128917363382136727858444498210434721992040447373621101782334985506059005842895834528696064320922731947534248844574796381249941089271950660671928252789236676976580871299152092021816714456925683446597211423296130137535161563189112054348408817949733835438361042066173992061276214492411754161310196492077651292866857100892391653124065569724311447117056220916402390951711493898286981250273849154717471830809186738805188679559746406278945253289363084423384268863924754903376759654541946465604262568863100479736053009623650430274745882030952806851639362286716489620593219094853289750241090681916650473031801035576281612144695951589385187995398340015634120066001141178380608463150310468839136707016420033891449612230054597283431427146008874241288306670789618309072554451577495676602787599025198838330151439586508242544263869042875693524748180533062488735041417252789611729415695372648673895675403541679932494376446221935519446752803012065275044012332248524567490052391322873472868849542982432008125608544083213215624429976013207491044048713916341276158935148268234793757047284179435352319342732535713949224796751236652058261728107080920337142853284680494179814869566378935726100328698653185799562099956990646434385636448924295437560815300898302058163054979091566605821311615461705298355336989510925754549802421231325241368452092762170852090919488081339030329424829252944582762949270344033353297897695922197124648316825767533563475512829827435180863992462107893154385138001132744331805583779762898276960168074371115701220418189839988152198921375818986524042705335469764716254358282945636854322195480793242476333443573924746598287755915375301294437252203872594549556712016405506008043588934752323001858810809493198541580006758765405253886194587501218219936723085124852241085435230591181294505852528756436006638222214176573027760487076529023164893192032013640644846252141280870079719866417066516782187636123494102161391691792377461465781297581988766643081310850351587690000226334316578508202593011022461570362161479191524591500138650926479721886705328268452640677279353203861552236345436044181387942369958978950681570126596155298179486824226693756603412873911187655196443491752344143855254576433486556820250439846544443468841411623186262818557345254691279918221828117494995620562075339919283998340936594292979131678028525542551693461469558388136920261744342776704860049832415199028808594077722700542113758601104488389261253616316153768514831729720035411148490007421407873892660222208178665739164719283906107849767462461327971775519295434259957065756449085283423871462848103673072733646024926443092752521201634686930974602886280420499118835864646041167916015206499925038569046330487656659036022597650750548737219498596822528996752542574165446040825900574387507172374454396154540645884270834240314897007161431222010268298255628347155751367018274879919928175965756421249945372593999641725474449124119177543200795777503250013594381374587262059183219332071193876968816407684222343340124925634807139523292173980605097720081270414353350485830016559094717827272494729291561560704616348461365148379056499055437557173097891332452648976720643023684461958886575997510322413961469526256513389616431759646542073290545345879215755624576928982389748865862459086223430057669067660040329597201560713790860286439305615760667154394986546823522374259693520244671799724251877191776366951568854907950925150977579769717119619274035574538823570788712420711115921268505345033323051204255106407969068455148483565392863777959717903759018453962699381745059023537183301996862671886514910832631342361407927675445979513670343073023113274570824991749949536214387083741711412468543450938472628682761963148067609242438299323410379654205387570727265065535112516340476377777535137529007342095345823470348252472729655217111415348569056175332332195679475680702957971864695376974876314258176995298456100179038791313376739863999191825540188743251771569610683245235220117661212457627122365733657147299933722614348821614078176772181570616098867480496936003825464278479180515388166673144984850208708493142082200613546118554286177526988277103802465994992485742539016224062072698976571307483515597742352869681188110921631956816081391275695741210335385143389599748040721200795905045714935606578650342404646413963755987106200837169169562698059121604205852707046058228449335844013294483961280101740040202961181965633721729475822797043650916528552875294389004450775333524917204657852297020357891442198089874248538105755167960133121905183216221390143994176739619736942034288095967497712147472140409448014029099775082253260734105928765312330847791176938804990821763821965405140293776864206900118493897278276458626710368782711277131901547542988832411703628771362312955083273468906180629517433344826082206959191737931073719046321194389352680809515564574999272818375295342125163162104857533968313871520047712470703997563527540590346586898730419279509994482938857775317663344962275252336528743188688799417998651030287302060291964879408702231426021464913678595479876751717905542205802324360416599352274913852049313592272676797920981261103844035310052685608018621183070268634091216715237514264795275673499116958516990615645407664967891909809666817351565413051562607467521165901625721086806669968787862287644493143808877780280086590896842604378773925567492900805419144113756195404541145745607687369321394703067031661507446470844538155688919018719837290216535307914398244698504015017162257156664591821586143905127083195087134326990785868998767046211508247679791867185611444173565645513122806556569180221298201718585362083198238655178091431609832169033828063462281888396562107216015599755565254225230487560069016940776998127214652103888642269483159286657454646056476092680751566532882887334461616719969815750088806884974211142420266627707041749450795150500017156753304965091576384665143711401284415849494788503716580100766986520956839176997676534498557705478823990693572932177294746189501071734609793878636140353786039086944248575765075018343918244489337409222292878410764284282179463151315527089883502855558530971838673931573320298125789249296566299343318975240219265957251421624017842016165301098759277238226988290421972988775936936435166697924561260954564764868245530623167671137759466414849302655522943839019066051306543328695864180173640120898082066916213262651892712116791750002254052567920822734646610867208560321919090140097041753275383166440170432848411935106520033270811069008397521089530058235683363653186293572046250577007241671245520504705948211843904134757428098763806933447376404180187426833303890460748174635010280745293778571944625257992501728944234843849158248721341255560815245151496099155349919330134861462043898665561301070405766471260645852526749312899149338193899170333708612410679891520119142333546149439333987395132837911768296329082350070907966481444183274395073034987554176855059334966871949037517183000112351529223030715994728772463903604155980745307762181890170731510833713877522290149268934759709240913191515188316196532852338074045289616771019736715454239063936947361371759679352575290317007172392393163623836110548250180576160451255493826945632746674247091746548298529504285000249992579603202429964144171947109062935825041534992076553108096979582403987117264920700339479518111978268318599343209104350707616403706797651528842333314201396555251111826489552888264286736547491373334687052481733443031939275467675428024023553829528607750461129692586741340673722756181824352424641739570084444304669925632121428537798255359589675282176833680998423327250894649376975942484825445245262360831137211200387454315881983915434725159616993374553355083379618411707947964401271077781050672720345863342460030143676652171686302054566474271555312923104073574098438583102517672460580277579086069300800897458217266824500181598909397944022906481722600561906948667580019021445688884309056413338024530948951844248587867287382184957548253624406374162506988484766202818961283882790122511996050881741430342892594272984377226581965397909776479627722535743186407312111172527020909530551458806456829411364562737520639935174477629448556831384706573045138819053824888704080534081775930437333217303532279012654783529595943201924119373553159558786658079889202271075939290738364062254796123684258736557410257998528228895316598595590803627905009795128407134831811740321311101190832415776692167236119780501496853571442318083297202838462239602387833615835565348172257397754782790324132661866328490772629502444781019062452081012130043983655093604583397409018750508521347480918312154963757641834167034459555544977341983980172794662279128667138550148441743302214824071647664786052316977305188834076609728817644377975673216564721037723926281368134560462803887657996790111886629335600619484483973762409768079379957248369342731823386658122721930701967596267742558808299709074901508082559700787052799544449531971572247372224147705960139599248677356358952336313406276523198434534459632070020925170517497378143171376644193905268070132928854704913142999102448720646339949486272428248337910696440492025328250754534831832548673258497603768836712618395286657386762731709371189189301000329935174450223156410136803773530369737850316257019056717491857069347398347967252361210436065879183360654093263173456248097733882728184294527965955253909995149408218216979695234593340624706492907372089897150027155357401985800495006722823380081494294636857325976708046347567738619448074117301459937544746655260413748208938037413335942156517140909228790631488171093221277320078194344776544780812564726998828139291910239637909525197448972466651677351120213078757881105072732764588867572453787304197687733628345567280998460143872692003781444733484103958616498061487781720981746269667299230978763855861353317674671502166837725712390947632277509570998827300457764969148006251626102967145507786655749115931326384108200800497507154418804554805476840681791884084887318746148901813274296517532689708492077302133961690530160421765213240719759663509972387675517187775881263653975669882113880772236112832022236605278049039101904002542298557377326359448589489098036765236560216403729146041575329068165976688170813848085272586551841805163250156573657560616613348344269508393628642350798538546145095305476461465938254603206151897721784222191723942202058315613620109380844421693402195190723627928753291479137037161834051960592937645038010133975334287185398731882614583137697541144823264243635501928416234700358243932721098961884043555435159662415047951754816289398588692159394008228686035825288131370120266961310097160609748350985887727417534167778655500946658039546848370042437018562163913691061020761359378088608416763765935830450992417306871567833646720677772731184996048252589926567629658274593799798871849298278474003559839060343232474001199350472534334888265062648514035802665594926494626345068267292975267090929233755133729111378746361726912518712888671095644120647065138674146211789312075218878663136572875583367943208390616357152836030192700825839710788803116812379688575749263312523613776578569143911321765710739607977402633431978250248149869129258378586451427842404715215540838389388642555641907811415933906247094311820865102840842313455154057382624710944057139222808742610912725509046595735212508377785165026562319740690531326706440490983207368966788823548163882847155081488281640116382589822997424487110839098222566481453205540499015587981866077653958937080910117650557204999132290997552694365273819961910540418496895232550612584663657682143253953229126131064356196065687277958700870129468352946497964827969700341581767161646527298882803411939297885678923666569277513145012538154064100304697969733476566769365001745048933633945653238301478195342133902562637865102688839894998845025234193098081964829012008155134105850975612256936387111430869681704916676530575638292073645237492178728629776651265859979313664033152423613206798631370377237970847594581191004868837978932589865617295027368324776311522734016160912662060277864117235046087334893224494623255873085389538306407816169309025302212727176665243969849525815981166337647364442895902206472979053419963226107417004505010394778644338719347978806990491691727659639723061744593672240958386585085952623613195715950484928692562847392694446947127129961875868010134548814571860274698334151709115853006992275906967870928769290940258253405518018226440652279836746013402012295878798054000674932522894647870420275574732062848342421196819682323501274505834643105842687118467689969592176240251397065233728786416421672140754085211169970410446406320454635919069808804057784587171063903433831664034990260821086728312165590743949260049577628419111373712722836741380798923297520642382840185380920508718509734588515484316802781511682448166605099465184162985503413294633404468958877599998412621284575717206127468934718359212076298461260302722096330149437381825841293851650607143266358813599664657364984840156175269596664349176184941416421875925478167860973572264690301554383387525630572620193626264239669171486729212371687280324699967324274197909412613702324668216330821995781015905223369661857526545577198159352297619087355044111985129348350566571423000948571950126510660827806700454016454251074669950461676724385767199521898728393723713502390556983756239207142223390591344556616594865556335644363573763859822941877991715189245307260742191686717728984008008753347567979172271611722752321078276662137867852826354420060603256479332535014121131010498050846761764465131793849022178580880765405351141287089262285646149623984912023826739716275325305252570260296273899999754646845155651874834249595769182874535131390356244252213509405518862263666671812665206280924575189905988724760089804567937323841722715591209857475268302237023007193304522457714053132338044684099977069270674240804571295147109068395413735953551601642743784771125337966957108187455873045806839410466417659000458901845269457205481701860732274682827371131382851625044979491750833033187981244812872753159283638140984553449740955262323055721162622268060232440011387576345844850646553584517757700657900464087718289962536435187803323773097480744825923190012649307683395593607948718202500060359489573282953614251780470608729722404772562960014167372400301197372229446871050716283470802304386226312744446525637787463526619504521134521591835230774495998983617997390397819780867678057943478270362079879704312910944687510153182714163762546327429424047900355275392239868002660403141344239314884301450491265391302641765368846789737357158880540862425053995704512063587572392537747594460075917325904955966675964547130525334991922674988020684883248941975871228666782640613395136311035801435573551202860363042631132235520080934271821322359894066847816546478753967185759289246077544642832573072355816100150814421142458267328908293581193146824545944094732748699933557666916257631840099481088371842340682870213295572566593705249441130305543208997777074162175998430426546835516835446354330571780925920784885437062366403136797364290812562442988389059927289388860181503004910236670236414360419861503028609025731070661890312079001214749106010608082470284417368615162711184174145989173740321070663922136609575643756618549742779641950282042020672765805899474298335633068048952058330165133671527338151590619395547426419816015683208728532387928306654975253923564153671461050914083304592003820656066220609488612722801339101515306965085285002991217902464417034743133358558544934210833413335609768126489977306824494551423288125060309552851689241177324369401568460634339638506159821887167264064955588168510064145325917618451030012793656804278801533655699143936958846337724771957361951925686187466949407265393966595751858935618781444512509430079648716643474397665026721988494579728637533427768191153404005594649623920792133132477349370522258518163919945346300101070150323584127446332461334225877267337179728711990792553969971273603053600370038665196064525582022962668892736068579695259116795533856038361517386244005250453573570406082988683458568324832535169273368760056848793027706824976744627565613995037541529579805133081448651232628695079376695712222165587232262601830801656470928061242756148659321800782784814532221372486127111989760663650413924121020772831506443310429470895157812675788300126156332817967864250743834968842840912897083493320060891274377912930509362632688055463026568459068172139743667233543372407674790079108703406977824449412740563665273618215945119002596462589591526802972748769473327711022863802786838531558903971493309681838803093982229490287718244083688401939654306319467384197877407955701286069772688108074505207046365656407839806525238964359650203258728532263671683536522748302887590784244342178290141780006167220760874277611448263522581901073891628784517124973199285323854286160668330613633949266538851776449011417648334893942810895672587294770328248522160216933449657220355889568172243147475943670349048112307715405886606249027411553952642542715530443546070369643292252804423036056934509252655969997599344228939171259313229844285544196594787355554241260607357633306744462576153193499210855594982407712590460760735140288386843950103110574219291979613255692323651256434176431598978788518892307625954176458937498739873764681600485731036591015848012156253602830565704786253916520797508804344052289628856990279921846316930149135825889326880979383546696956266617622935403454125513960257969676616241362413329083390290267034292193689153075041285793139387378351184670639229388319229213816589050245499916614024206167672179926698202357484436225063062951997136415153984658623957360369488872290906371553542860727148662944777485928019965561455253137546374793270396603504320643960710033656343394954249086196905248127743410722482666917860432873271135924881408143641466468138163052803925975065767152720645081403999758196345199269342060469596070350712209766312614128654318057306590970595733017833647367993977487722144648567547263269730517863336254671373168013461981353356168616108375997915236728918922292931465333175432742423469769287383535140716237462792252383256036824474973513922173574311925942997070005824026509402422205890262061725903636359271725866869047004249817360242783447041137784132930277633337652865302106550020596934659277480096699007647446387350974762170620760937459446952586985132667145904097909788460935188518263025287726077626994599459292921857548499172701573171785961064322902017524611780427825622719713108012248039918526499457285278739126454164839906332884240479035559619552210452001506076585246947632993556343885858335841019476771535051562506515484411238711264500381016029258833613803116271083250156118617733676709482653442567003898656545152619906007072490042428588109885688021923302028464271710265788557038351972222904930740465124932974715307047157809012865047986066618669378993860905590632510009378483310969454617392666455155541938869025213349383555927776579099133509799902188049985684237195591416755511000776238093629750811827499395741851139074859314776503604024930020558064145401927183527524508521094554903757007393672912227383258489732097307011316200122661211126646457407379314016410874897303462230611774881268229133375034515729539837018130894978750620681535941195413404353732573515591924433692773045446604170072624181931389598085110948421838243077865056579969601362530725599280136497660291277965291602566565661006798140370699218663799310865279863508436137501032777540546781300233949001455944654223517337740386450198409312278442693890170359126757875779285031226323475480975823581601520843472797138446144395783832088735143593613198930126660157507051628845755945416009097109177979711326014052158884811567624474713659439174531605122282300530372573907278345245030002330936937077702859643996173720100951082439086766348522432120839019096022791003570493918634215040893036402086394881000894542106428837920910215491826640674984375806388425644861511417816710009623084206283049098070485960489481984401219158663805850795853958025353116029586853572832888096438386809333013271781367891830944959566818934257598449823253510093708155045472254924595442738786772259478039690637197852773123961183582166209674610471633817440885861293193407776094363553294490900177433664877363525377080747050403501348635498624149011851584147963323529275863918466868788129729092486447162354461635041660286859227078190344522222303165175684464035702712648172987297541838792257880879528970003245316282490457154934542526945413021130108451574202646424672111416241920818947187071925806019137477748925505374900566022791657236511943865374327143398327308140137042818797888895456554008616258689123553230183287565689181319594289858974466104525892734603623727817110352635764066010518390161006601818719662523363649139142254414700139187936252087466510774849249343468729265878157416857244484511736895672514098296025701322723518496767049990406193841408276470945810069150547860521891059535599104158775836949598953528348165174573430512215479519760282990131413561907937217060410321627022290719553741593904969625563066029228165476717401224067150250199518264052237824836454028122702718195136581885470864253822970613494833030865017428663246109379428036758134364097574164592051397653646064673166992061992113041047913785447839970189043497408156114676568623714913900128334002642524931787464517536866141606607617243841342827888542224189119269240592043630982825231356793439065672164771806488026880343508250623910586955257198799966187503379250438946155936709326212471923239125384624646823418655719926181763621094588253080042928915651180514749002309884442644827908851085459690255944443379366298268707705293366307452490590618996421024479263542748237534425151035248278412627998449111628117758253067921396976647943608821490547073887396704081206725349111927359049454035119153991649927243299201652200131276550057474524942632175774922931048397447462247359058331930371321171923807735847888034146615148168053968227375438288745529361899745429744238150724923108759639099990428907050996701094770043083608744120904516594501352697509876237465198962292197000054443685611634664001833966444104043981362532384908456931523003223325827334496987482429610297284402616234192862226427710730674362975950561076744311601582884409448716068511198677307759702358563955614430059970665774541690812791180673680484832633340093972746779728424034989894746093441604245693891231713705946858663379108843159576136704085078709010901005979221521580764446927857023646671359183790434142475062596614109083330290542643767436718166186195758449233489332730686683466256326637718616620664166700565055168769258327853831570410969406568213983769713934655447924655351433744752989990809066368755820999861813924670285140342134962219649700019824790995322605372877580795931420542712393011575915868147537034497522068906563685601247314432181067413960906348598475976035109911622805103202053108770281554188030560958149499724874810744003490177691810200655683076599581345648467257703942383818950752853678207928580473379271981266897562204587407570064937158730180885002159156699111744687498871451550343214787704383144952925284025518920090646948948217315523347226469646805556018264110140677401865652669819781766710889012099942418851155359919256829926816852977076486642384517586842655766510450291931436281990735943236044459047469746902208771705748266257987971171998639757584221581675183805564302454217184207668519567485911869435913719163686239489077678034141551935187890173032248138585351327776208233842744477279543147014563559552577816766746008866094673619227093433132155334727932877930293553189192679706749851278320141034832321763249687269505107198068803004778006170417979213255524533870478356887837941150407860339492779664644119849768482504547685619680726363283751302448769961764365242321800432326919127158054259513067318505016269383597031564512027743511005766773575433192739163666466445228757239908312294362480561875646597845720783459557964292532549231870165996323390916077082387485441993972782216873756975276002833202782069408921523803110861326522757471540340564485382077868160147879582787637473593259897942534473586091590345104504245341693361242924167903320336382189533414608821363170997082258594021057285330132508411841520385703217248718420731264504625372934022318589511327572919762689275047509846417466275537082126158138889862894423579476718293981633059266497770232099798937934465035105928030422141636731503316305641823507548826150400829329791645213021061475079294790819546268955364635448924165296372192267572483592662651160445828656994676985656731989498117148556220460955926333766449339498021059659679324602468330062041865008581876063129728755985727567186707571587967380355848740360031357852594639511676000481581314363419024271059177655385845431878927172194228978078017109490743198739682586116696708344563331540166870066718322058628057894728969786351673389562064167033467036960949594061715731710933176938664567635129290428832084163840514478905980918682279847481793347334654079851204891765575944646158539825510636229965852134463831373275871310999788959552281333627124664624679359212808712082228697501200028855437392603591741100973370969804564077115601778371212898531480788849309583090587854294647437776787605463194710263150519967910373659526677317990585498342768060315378609188800541015108038877511285094476068016639872813102602276407030825688580760193987925858715167050561431413610262421108574730286595059448905941477999208263003541337790197663014313780255176784255542239872845138482639038375756516679557334740138661708968517993197071227429214184723096453451291345633561084517250391577191089970450442552952174287831602142603399978161029739210389388892626960851363882140411163164955327620112991179438367929682372580432688782913792965887664114215559433332218325729665182337291761476676488026383957991124074090516299825610468136956484676759488914827424634811068095995295134965176385864633195877489468395619115628624723980524306469758750958564187199942674780023570150209516368559093287828647945622770716108991793564447293769760286520032742128400654177481566125162522571107734741101356180611227094904607244856631449177032451642796346160919729793219816324830468954894809521103132345733523065126909133317606165949779518720510083941391590567969503049480211493923878094513551243414386875319727499423622708581889437020192128380497940388303976712668680962215666355165970443828971082369067976461406819813780857022338217559849606439507133757694500411935864007729922647034533630118448246974569505098378531368857361393104819421530019815533660388341672719463114280921324852021030832523353842606777113283292958034645215528342089412313037369634618974488044523585183098160042974328684128558042419182039839939878557567657205732319942214206242701465911619697938000482484753972301373159260163859374206513910104337373507159857342291231708094477630274070215169701517697727241582515732578475513854087389625529336494460123747052603364406770034299358693013715090160961618437746133819316323115970264279375996864990457430072970696920191556417095772247616212595587626446776400108155766821650737679951721793466965079380724403106989918985583077033953284065723862351529705300632605778259710922364462666741327354209652722864156650651207792758534805415361703798624498209079458939403878238056243692488421939795202070512690764472971446636023581646932791008057556595732067279243274736496328018654829140403338364354872376932034073785997520368520115593574404987682561203401355280270864187134833762711489395936273791519640516635881635618356321827689549791164729718354971185697354273559797078444173362534533364394366234405598589671630715570394230805247900640107196003900683160416623193649241233370944592681691183990009029882051809484249956416515320578269878640874405514226530878534005854227165623605975848238429149605553897517070457773108787736220910865390272538853320891692306021201101857309192836980647811273036285075595086624850457727302738490224911537358270225725730897214454311866022378023522052527190698572376956008312851557301539667479981266570018070659721610447017195791145030699806149085770533832497918511439776175854142664892757251529165347252765054685680940075131878092491867598127619646821971318060047291989174875519297074202087585710572729202095188602619073821617022599618631241699407329184541603079128619992037401865630815023740863009941622127163231920282867553370163498762678544989780251041267575175982505400601578050661280944345369506495737510187790684589408805726580399365408132900165861662560955053544408034587195548384665571352217735558842236212691065055777421964287126499264242261139299359889605399266199128443054748075168419231178173164561125211277133148761528030172877997936026611669934758410188363152090634731708508878054002046998350665361509543138631366246226943005669281532599803165563828491567692285522945776919104831711548365305159556187385020196817740693658234274782896818682434365726623540560383004043196055630657208097100012057213503640494205606943546345856646453138131514682533445207125560771673012654556678165679379220111231887492096120013862395709866832273081185526243413344584502663959134109152459451718548783358311448322500534261195578758955631059984175308542963883433549385718758737906912072269729467768517422904610466227850502673901536237391030317640746389502732197168111509552586655694598348128105541973732196267733274178616815754611931815587740951184513236679606104789020985449917475995222224430925370550108852058806385845637149056692349038870932066317824379804611511546658985664207373313740494665268450907351549452359946573707755727625562325986670251939904420632805865092560455826557088124502038148212089875006110749843643753267467751971986084754332431602196588851761810036092107504996578252510780294974670139649130304486060902713723376478182588621938728940795060029175111120317574780568916720726496625788519734347570996155791961756040991112012843974818369733784788838104930896138790587157843758834359511957339301983163337064144135513180002087406099016562241845170349078267294657955761128865743819796480598606261904847414065172766443315524581067220752065628348222825861041101902371062149339244134106178414159993077017247730799108574833731235873317958428879598223187093399663090261967599680497336819816317468487474025635413149564403802946930852367073597828848635858250180523082814069173090082215665555706254712855408804568580956237790695759279801702779395296188521059172424413113698567868167435358142283718525231507711736645918746718167798158322534605870272610506611768515155959904602820776119580086272683798489872059721482367808345349832902019867208397928965321768727615691799341693986043828038853196845921355410269561967880166997064922138087563592741449077859017080628368315560035352001631973233700527571728983146901581766365051456714791582817004074702495242698765444561960578760796531344140572919585525762800077207484677593341207415879954823998092580059993094174929651113958482465987926539321241421070291423821567107397244268475787960579819740616230387587021498946936643165849788391398389604066899272287437636537929309190607610698714214165267978737358258523889915896792637393155663419119253754248267122814161124418818134674102982834061260239240832664090009148666406420971431876870271817506847286726290508228553010969303980752756165021209442428987271261582285218688212841687070284979773128611482576270648917067737182742237326374997590925499090780874610039961445370513891872798680776348984704916581896590800563049096611443703867594755057263112754614338377183993235565699106048486787940955019560463660936152325480061151506605358319104032237391652006738489830385154675117849292470377458096384389101034858314004916144233337245878624265172648300311125745215438849410980899889226542828161609344714402100114349982449826345618717553451915398230938879026937569628531289696871199825300309276436803173725693049903767573356713352052545718665680398669145509044298946359034447761548515669364041400933440457877937012185080271174967209829627585946908040705495658584371882838181728520450581905126422269234265958075390330335980902585125589389865690797749407500569820838018368675432487068103468383606326053640927139712792602731201762424688457825235040979887967833072575670342860107595224196986063741751304962488912792876567078104901932450107548021990315105952926920792577727288550679455252970253523859561306657552492783813123757285677730486806708317188439461115920804496389049309866286175352511385071194725516379564738940356456960828015728906368699873981715423513679846729789597572398126203466322708209616482135677830591744084027673028432061954861011933885891928357812843896459980491587447209959963295874357418023100593718520449843860159507719910236584439554598392580737576463822110978278322940139532185537766669185043676143614494239929080674564090238775353867549785734471455554981100216241040691591835131396462513926217980115015411438367572488377074763753335927846263892046602980337533022987192843526038231709889585340052759543743679220525427322590784578318914557181962662210173214878939436749373039613055080455388198939591056438631384451037331680122602410145036126676541473209099299238897186368958157602910382970149968469393593391285474100229596881763806759438081665072378178248851716943962137632424376966152184099742448309985024826956673034020238580579663344567303332799958589600491470662875200980404378833687509913071004354115793468270327919514413954015634160998215207865083076327687677666026782709268742067800946194764608127905902749210869818814217107862392925496982647478774500785404640741708294979585245844270721395372923130978625289582593858496245611922370159188946354835278343134667138326451858113522148017630205810514169793062351800237736410478357222801275245291501560186766039583066828309292416021490297309000765511427388738563366827947222727068414364150304586499981341985927283419990093252825207895978337874226497489644007641319695150424473496157538462966430494810607626803565958999331616247422647651125890243218231196414211484670684033808032396674849244384328552106754094418065849225099886549684603828236090389051899698632699203055098689539797755152789120101431860034487412418423854459465067187317923395847932797791012601052756741695180284808839106124666435604579192369499489637055666038699608865039590951102522901915652885333269232327639478199613208342753309063570931090041030944171505328581459115747509067113250575490690520378872867318596955069209893858450947695019600984001077176347187085932178703458386734710508942055668803359996217586291453419166501659779006850530003725757355830506325196019793204413388937905850109292629274290513180107834749731332940799053389258527591995815597539300782363897667904662808106552435261692689469662816465620710937464918691872276713596171304887340414633889720370436767412138358978642168661535464827216966127871282155845556322004739956581493892609315268400636154302249032611381143214211052630776059480286987048607431613236008615867100528894167006139118382757350743718691381465203087992943475145326777987118349589830035700870226286523430974913975444453150158412682361269116987811688867952602526426936886784156570558400532820739806406394355119449661370847338469162223638695429360892587794849509224667013148217879007023906928095522794985542360311768234420403976325918193312174693498886629455582336525770197825293574860159570730022150087159127868859069399134286652516632167823229155931534621088878594069790774804070831746863402797362279146771278341881958701329640956475399683300884570256812629157162388070031616932012002205828326863606251991695657690838796550409729960148109470497589520418656368015494782854769223581415134024789829349582348792574535436900244205299341469629339829923824889361148069076948604541143053740257302234389002637689249269712687093762189766434681388921771045849145133711246579543039902052375749359082548644333952370305210965545013593469152032933667619314804643553401375444569573461061257098392532535881564578487128485868270456563940949027678475497466307829004096384554217009329450548906186595628521607286298094645990049807667391087002774998451762148359232602288485996758151363281165213559692421453241745992328903254689687387053352387725676102363761007553471227966126442978707240975990094759341903561084668174186742423021507676954856642318945841855897557349222682513175486976499051962800522972242683289726201264516675050870755640961793248146946713512968467022499742436282015280632174918646902033275517942972600064934386377039942013147801383569729001806634269674683909378786733017388195560254739701938634641201762254757064180961800531160299216153647494591230844319006561226710859689399892049761878249717416397022455079578974678959164282507761995750909134894493717213104251832574466450733487683641312565663645563622400667930960179778857719491149805199524643853056896083839816718195785448710339541613040688527217170946312419551499859508023863496556294072870858776094686270275562073221100423409478391276223166570413484682735565911789532375051346141538951112163652779846722796417074833185018790480908215967922744171539707622114721808917249089520778166093140814928274272658653381126088089658390546464016592397002413369004897830691170764574739075927180478151414755653386291601318208098976892419936982678953958789677242190855809072472242260146645304240403071270225849288666448879519887059012353113640962553299872699916229208430271328206222858565534460560450111634849814488839726835199757929434354780193507424626052434899274684893636499130338858644254035441427906337273085183519459940110688034749186709848247434738599191306536852392584099792372659832041417934319965400058531929820377973055621789210433751200296492241009084004578488491874273080464888260474498333284810362615834579141432651367554355023407472452005046210679249385665893427829169659724163387183940896071778682065140518749679215127357359865033450308996755558134515781091426602573726827844175272860962611160181190168123078985500425725781414130634949662044591681949287066603053864002446420663617530708732769060387686164703956642821195955152313356033759996959789518552443649138968858428470693758939810724582838641015845616439579678656374843636800414227629290222081215499715465794561504153789064803609971353105777621948144201516526196368124903492681686820051893222856604633437017096302258611587043003810601508443126529047489832472843032144367573612597353755236704085577931476713310755368633318794300271316928001931147450207268871252689353405276768216757447224930877156361808223620197311156661964493796694891889474309071555844247041736880884581137083436449477227833626734197980094747329063576559917777669508883625109575596450792771196263903842454254689467822628234657350120933722086546532169505036255010285170837083065013340661948807271805209273689423624571362765088463033767124199499561103540649895869988046862244217299219370743015463186044914307127197112729685170865068396152756527701558111412322591173867482339119798179492307351515517171485983838689600400454561595471606701288076100092168977251657573695454024321874989202507690782328188216954841022322298095163318313391844092547437293166857648339162766780089394625618241349825022757450619227137398275858779429104410906030045740332463717230718795660735589760896515673730549320039619509929364086505068237390475891595850793182283835318095537659222203764236247871230442585890941338867562528751526187716301093665677589432108569594511607198215986800573210200234070765981045058916703620006043131541609771605336785532223013812687189147636272689469192320976649777879965793316419493326270417783844672344195815044905326457407888464164325419509974029097974203208410371096718991018550151617505955306999373704325651408727366880105107403660602151718683913626095242302002750245247745298499829077452953698098091209725077838818233207518353864711635997465270606857959158961049066555498928333900497625093625559147968109618473267281361548571787471164511262844228191780408406416572930614415369852701646307509095882723804350192681886554790796279828277150288388763635174287964008890668981384905386589038351177571189879494310561697551516632925838711910256921028734130150424766580775653228578575033725169491755684268914443668273920998704449781250906798393293538552734645190970010328814854359219036850331847177579838775750515440548798811918554997960253916188904107049780375363523099419351525356390556861796085871285542600267122886131674364808159799451215209871938691178034338113403033517451319255700199308030189691522355983658543570684613615506950915301709487741440275009697728508988388047701721264963400869724801604555691254998844810754937329048134400772172292109518823916518739713053003676199165563887596193764099618200130988965726213560412496779148930925917244831772363669371620552020380049318620029090741633912273011021787540077257350650756011931305170517740081932681049162911585158391034278096418034626502574218341693153723233038818675504074293258822405502529053178234167504326050296075183186773047030399775929190720999820118187422120716450583506981125830139498309339130180304337156212269297343022400515467669344096060719793681291873197839465017277324891613598132901383166531667227894471028039339159183226541603137216291872461342594998068440879539874012607526709595616937101094543799841540167018278867816360569001968820051022831329659553144834274667145553886168076236499406313960971552750383817659775585373467149568365216335770108429505114567854022201660207337209199944659287965286034346716460761210728692164115989166017229990210085796879534478741435996544880722335030806919689751340220670994663781584414182504266049714954474931355258689835931164470589028523146253936223034315709307919158625787757045204179126941298053703716668472863080839769928564890917480617032723824595164182363808452955936042743565386204862502750370677218269557913987710220704692966650325095424621385362837566677504050687921046442981218302020314728530061395915886086045030014208085792836292067425616728427053397632165467161429100700361660215892119091246257058460993468363612248606693692951811383897720703311010541216125574788097272000076297876375989837477490607035377955207334387111985064431070579995540137150257248080951818279164506820355201528763540483545703212018105785906827995047582676105679543417573127284127458555735742047378852437389228496715986719049740431897687326481792745715241583421107778198593551428263369949648428417802933530967127445505882143362377391043261019357398869854295427895196476359232707682664103639251077085815870189826670110651093882845179107486786858167401667256791849091376295994442091164264296613309803201477812670660957638844211426322349273724665911987949168383524666474529759033316869330497889369671141522120129908030239891899128389392465989085385848397137662855290267411410312729798656203591529261777218853301149979326289415383178216129101370052292313625982716607834633079830814329419030117538760191350577338223652376580175669039677621580396048936002454055082734245879981383076282065476569665276216857729353173598692634834417412249405053272396954911127934917392703828814443831990161310658475893686322169622688968115956231602939476767003603338943211108949397192384006926523467001956152629574285341304938409002989873549705718875506420004934682839918607279003449775350572900539217370339148996957266071993132647775073631547983162978254131789157421046571616284497562464516807250185794924330867204650656772666180650373365990904237744392427102538349130576049034839169156127122636683261636060165224013570410469353415803092747965964203216916991894342983205171257515180503341508854821718455138946973877314070225546404448254928989256369257655498088746689423743496116792644725542301405859046140141686843973826965252243551470272592147031223686483763828387613922573480790908088938768077099218180965037919240751450963997036867090531373430602529880069714045513832279212946397194860679032719928878012891944011504149192227637521482900298555185390774699053189153467560688962921560507207573359687665783084309396090449736164896330498708946735398904568071127093080909075980495328102375697704110529575751614405468548560678265151641117360321487227064084764388057064167842550968379290794289637914142677451643129900490241765953244827062348557859534984978051740958314837513592549447760480644441894317477084738191818340918192551649408115600378892151319376422301364441099004562644265371466775735785092939282524414687848682158122331076748967977053724613892251515273212492565702021647352614143663155801862258209090084113632973923595639117708875023142809663001801918359521538005226246055073104108851785523241002680970845387871243189520840490023701149780295065225204409629887008954680835428006844295658016138264596930970302008568132260541883269603713084449008863457446394523430089190108801369510026752157973070080711367984903323152065093737749676676287477565511317635878000916249976035307589727685691331827100672018580454392339232284009236806599063483888939972020000423386063371266526860090377611126316656483325942967571278461397022670679199520260780122847688997787310560074544110550193559608549868819560879739011479993134964579579434340302281361344737576306034293366498407931670068802944216186878216169716820247409698532518175288522665448222235198069855413281842375496727543280866574466848772544042857534852165045886199048203300393062064368148967063784806844831188889241400579345148983746483818117207436609137777767172106429146747426118377083908062525421547405974335127443998500001474336429767904404776146678694223766735629022167981429236989194746569450800103111632068359129041855268488848385050231414018385910659090181267819624071597230168817216977245917779533383349940772154852269081426122625621496989569227664345279602035606514005341784208848121298063760103433502818962413466144550644652248582878596770792550649730139084519237302723469089580876946168135997207299852773818739372464562453458582535225709090851078282062856296979869631767055533164709342748092043313318386220860906895220821376055928573306519741459503404072329213867899848275171433378126251168846900418875107668638436031844120400279619576480363566179418959851543505800714233057803154353181704094261765228673948601758075870569682775521126702052875514275931699523588297070027805162538044056471571918555502387132251742952038654488773153050178138130162403624610558899094115453097305775152735978397204575240732579371091537048194737713745472873709673808000806006453558042393465660190236206952192449403779574999669639769797664980850658521094263787345316882450454670279649430008185875846363731669048340490683054232486354710575520354164564534623597414976504379785391136724838489217748368035892813071124739621403980254861494519098578950158052509758965024152408049401647741103554214616314978532262193607940317795954466180965786008080996113377192476576727652653732855698927182661736429008814894296063960900614823478629797792329211809744743412657451656493275645422155743032440358292351255073932413519156059375358099735039909894037716547716239539090523675652594109192460794144087346328727857227150280125101843345670701976601898657792973360787455579493128745018988266391364851813500274918805348487373870468434302298191787831512014275448647564061597130540995424405078002669543716286187137698857326275105909344315938481248477430328859189067933996095108062258523630813529421743081567142775608163613549511162599922053951772874037436186864942032252275553782339551547152729596898355548633413762336197354083310857770820140552159081491375588381786867889970813809698168813739111761501307628017620757392893787058486208170007173729859049929015662826087372558532542667384686449698417343480521251456696852729568794637085122689171514204448972711849106443069971021996473520244722537668281516225979284736787715268199631627188871218055080024910213687986086104640119690233465277457709556952302700356322494841645507957583128926106165684047713637722239669710560153029568131587299790621989854885213761745460455225461709440376433247581787417057152136651280001534217292876850851544825246639927547946524547178640590229182798488416583769949435219784172191464107432670167238795219890997401622290819997473731042095439575316902474656008533113198509990034520135667062759881965524479511282312119143491627408387819175335954947589294025622156532291633575335535708962705807741340399137615254078011760668096165416624944982178080997608787950278190871406447611680119835388461413719880743889482243354332844632979506280269788063861310847181536068010202802948609218634857762624104111453239942773254994226707727594988106969667480501498037672605458138747503037094617019594914526950555299297785738049257346098230485510021057606251627988217598685352045687545811698905980026792048794147773496226127920740285927687538052343534134853221707131903847566913069955619237269281387772967717234663641291748401019815757375940326283128781719612872565753421075832878954315527620298965686747046524280895402520824512939635525266877344163682269013757469159621530928365634404160295518103203412940903000856412529691009403489934260212866834102575616207616277445139725422643823588013643457818289761447345856632913334181604772824065357259108298517950543862638369881423394427608823802982432597919120323861636960231876937727842682902831792977315146451675770046376032650825744790979655987001706538912393284964490540744267572882509867147074983192410404216963300658295065652429204507500337909209110329874361140123219225756933855420622303967733107344262675918002623620360786299977560664405801928714552043893812937146830678363029440389235494434498869612624521422872355360735442064435230335592934778104330871249946788484679407439179344738647338037080774061241719989608642825408153454898214307258803159514851179438597187806140364391870581103278346866024109564118973095868756730031007671564476721972934607704518934108775889138576005903753865589377901147442354831328762806345065153338164981675740659374801255974143425201958291220705031357227941065885207896593064473152918978940757818071168205053297000390867096067552117697115926150143279405271613905548758682921904958882506763611874260816175411736321351710378279579586989075889596389674479091630766756217757483024564749999200616141645907647462993550859242774633791935808170412441596110769380548017180689999011212951631976659047847126685970719245070673372406658679258418387313433280182422573330545122357762339545278225567399291771823808799947366079777626192498749479915401310945802868157609143247591196215418317477646700078016484046293148102495644125640653727210558961540394702556519841081714394371557768314023165007820540074781137928060194391589509501946201613575287099767179350835438765084373892073934751144650620403531624832917508255761505097364788347886907117748938489413134604129622296355406346996853342758753496889803773868417875790102661128926533662785478591835776138567239882434917744988804123200377876899821589521793594898348203576687430929567533273956283213173161273579362058174839419798161317079626141300374333555621855177568806505684149829108747377411332687960144732680566689184947264524959813726672637858869375360556612150107855690632057267251590942302493626801293853115714927931601962567587367089131123052021187305570724810479980028527699952788075960167923144277288446390652086968506173562967165934716232747545969488125903261100875853985729338564460599904778469946278540158092610167348698398660269757671905521119096706264075708049200101086876159092637823145717518640301707016611957593118754635349749205556637046524892911437385629773205665701305077647266348967535820480235029024974606195279976407083945170095853249453292874477807858204744899784742640867650886211165370520673268123094247394172638071318105820636880461524797907233600022224067223540753047122240795837488230384620886381582890770660577548309426741104314485579557967129017771112943775620750565849006922733046775312974294640631056713092269358017474063825927140588591880278952407967486810424569560659645876783094236093047128970110646813290435067638976957026354349618195679368598348186875634638746145562059943337089765837791053416701971802041935403476174903825587782477707087082958762098875929744932834127027908261456444257574754211841649600355740185141729412012688152242725181925025634177418171085201206885163147763385841437770482691927361773093305010117799559540219085649171728299295323209465865532046885563077884152491832021579369074240203319331839888238929803107343385563535445344721585546212924530474975617910314866110349684674962624350012309653593926040477191614476906225133055875711751136430479800448836853770892905887861496023537309254878237621745527404027250573799388313404296124429807559713122537071510762957541139878573444655670948365970841872520777353239976347108721972325622716323075727279435528437045088932367413431988153722771005258454666549006519938467849874523134015607411238593504953576695547728603813616510677111736063815135392011518450612234704500930986970143607991440335662501662337044935346849569973989083568016764264861198053736300883498971443772673256839621995574131024423474820952590296457818141677522872501657669225533095289457049222657389438733936127523912208807214595763237398162371686917363338853211069112143046763685346000027466346673308971748973956245559666740636602255614141430544217660720120082810430194191798546599384021627062918944425007146188276124582011508272999612500762665274903342068100045038490631270178995400898890608345347446641041778528862925884563700212077924399229474723981658564624879830068562776156982490333452237946494785626577974653347124742571943667117561147869145232014446819643421460141779082759310393467500210896750191463308450766137519674272371623391815381978880530250015094057674085404894863871906462258183364143008643742123601962451700247514501996049324560403002870887568181897969150484925388305247623276700411230553075011756665430826276791226535671608503685806471117576970361960411115442226261487496106409032418609158237852813746910304880034074096847503763861418775349858643102881738853492975632442752879728681754320226169132232634868865900896153408587696194645048299608109718756331753810156613223830846817513861246782061286248857831943586890252794815218377371953211058045724682370083561983796389442924598479448768503020666695998014943410250473208756183769207031486576989786217320292482059197049546864016383656084366187315142573584451579586867425424494061633602888146648439660921034635395545168088621293251483235507228642967042169406596867130376843181911883233303805175193434451507830854590394705435550855087203927119613167913107235180193276457855472292150699663683245954939143723739129390593508110601474370255362663813452864002210733896853587839555786371994198616666404717681184129498859824785241168261106254224168587633211193979076428543243950577164474615150960339135041142051389609303649197883342102931204833318449254554043725550170196711737194794027235720826942901299771965240911978396947692807810350247239856081058723802749847204003083906755189214366369562297019209642374847348271613523031447524506014656070659489134186230611755637564924438237627213621770028385370241112488856839104983345745912895792401475394778310725212411014169022203341676306772272705317572378448917457881790927425990564264257878816266290939297634482320801753621220679340510275845626085105669491645893234924046913098745181184213369039622402689976415192045535978223339774096693902321826223977273806630679752544471346112752363050974674208653391444711765443170503783012584886838842117146451911310099696855965157707417476175829303457441959202284107630850406007592471582396198471886325002445626822974568830447963713700987078177008813334999624996355040332363886464077490585726694251102583031273706607061910973362575373448863574934142084094257130982969289798916353483580083961398147672949473393665166572734542422273652842146298888765505711796338502684541595248792133560392240532413461672688086802724698143817688687252753964194131996650539432958750253681233472936922003502640321370544439342111915109852036854674829104106192722542548567187736332460350352653250329488868884638987383077993080254738284977944818686621359265051326964247599973877532883013101278718942749449584835589394875094559815519432529236298066371697751599874687579406878069500540350769011834310006988389100060696590191703168654531204828217502785685862939938756321482755768376260179028894420111113967896862044485005963731184474556378852024452484973514820645813567064906640159661125490478352902445849105447206220827170443331772711300723977438781158562588762292426402300163129234196460977326340480228131595550504835805870893738086935870715359374390188835778203350845141535166866818772184263872965511340323053620476512766134617517744169922353915715605635777681221073882789189266806567835703562725768610785750562354042142229199324393431328740170385524234079763251918787340053393304891624632813272458188983963918917607499681168409360995401029596397855247418104706250536184972667478365600525121655658920765257853167014062881646036491351273112489353342653507200028663802796990828114000582684440394294680753339665178647392906534617216654039254406525327077126749119536895533405094760288234306370409372536837614629486150374137616280660124321133005705289444186977760448181539590313056039572850326817926290601800385935138149701039649568314019565702184972283060842848519626091772144684746842817974376530333605041121336212485404657343057185880783333763413008828382000358169310558474713811287877141767124626828953051043423991107722643970198694398703074663407733653942200782621739024109219336162612271790179441993005454472678175887052058628121924051175849647553675557707744472769747042447501514248321489560341527831123294018738167730480816208470595348039923216288835685860311431899855540363190727968763460903687167102531825810364449056847134365111029108740251824750841994157041512199588394678114445500540566221570794610958686321365081580421104543782311782581808782360132151872002220350072265289069882694216067279201783586655797167954744698629744604196084389911611133347183303863048573662660358587845313778915005319566498053948714661903674406504596561666052500226341985890969399719617283898122362110001729166676806860949676881076312963266559551990030747418981492162750713727026906834646922234201456146869060412127170773594839808309991368714977553410470035852027980073618817548630759884001960865811068486458791159472679066568565300760040518362256585758054526351468142852624617895331741682550177748600474656588605777928400218741657898209876260704820027990358577636678849152939900893046907770687014319960014567925716561595158916746727740024021452512879531005852795795168856607860964090969466285689893054833673561080312231181567604287608307779150117836580436742014911823694347646595517685486077951510500405762945404312053531777588019408953489465992376668201904536783637306877030248654200732845814020240176067739015699329591040273673329013383455886456060052097428864222703656883338924009870354561685059472776491568584948601755711154505410236324615515922867696983447667000299152782159708823951673588013545018142002237789821835832219205779367463446648339261039076900925800139061336758167624507631713948440641528043046553375492082252822387378437720980002327875369175501045763991573952777202123237176430121266896219397333781346230731646105855610137761386151056319959588818171894530215107445009121119290501579638511902088945437606880206186501942060620407197808032092596930794043448185009212738569946520133472929442478763644446911085455012663684047768274665823650782254605628119167072860629602282268380247505079637576486510462405660077188738624449297812719489468198221294919917085626755035892658600113949051827404825150228184781909491800090041934126183014043239179016532971967194105869118440043923583221194094643831949076328567441391618289072445353815308837578090161737538513000119623887075582973899096717960176680117691008865647026918752963374265959233629949431187890744810416585895563352215207527799936999565873733123542715701183349143537408723776819857741817779055943696192983763184459433041188847256376370393133070566838538058544801638066261719340390530623782572821560207257309674447192508613242840681874499159682045220617172827326105226268292543758594267858875087813728320250463589761452570673078943891976630485234112911789535163897308582844121478329571471293219300042368188238945829263313617437606698770958719366360467039797256128770840919134979855641144832439137260440113609726470648317539639968714194302642275380217247073993372756366472218222482853316231874368868169880788035653995806056659682524083934162570454727196514029251079517336958620594844874569447963438333777446234269969438318025406870264225988809531247422069161340114562438018994115434304789018097686765786920910906839766523524096306184774254515210921871273136043278189846173318200123285839426112408454524664482753784775897157078071458738113004424100455182864891051523021725062414368049634310401383341230439481339773916056004465518194837756378001550144479707351233328995597065931114635316699659791390510524550277059792111909631004033397307275944896686372786073002522973303324035984880029233630530697429161967193201538371632799235851861293568573520893936196751398045712410805254378243723134961118860982023987665315340032529724796660698355369963542117063963144808721427578445198089747695683952787111636628029291646158621258757311791302774253531008241667139633351830171649090321416540920896234871591574249264206449945703263492358774058537904815536326485302096211615266250380850687749476047969350784017159253892803381295672391964562743065967021582041898850588073984352553901748925711371606102157566342694427908384780034965784525909939608001071844200050740774754419396138947398151029602071000998505384936623743543996590534474328126176014100943668099443904653534984500473032997908803341019028344431574379290539686357077849317075553511449467869868148721110898889175881239641657855866560309496782808992808414990155113567830129592784542325651647945757333555764523767488605043863543891704988875485417093038739569176560590980152663858025972462614643165775938323746138430378710676694202833611727412390797648129459365915786686226786900581642416431763000282094017692133267217183855203421576028242695794707599942737254443557669763312934677026391284444896936203259984871310024388281046591270007070832401962655332013114107350520128667748620620464492600844825005805965988893864141703602693554758016919624984268483783373681754559249041221347361026749519839764446228177955446115266867846238295982894814055980154970269557413873465067833461752198790598367026808936468452065917888127500202684859813059257506739013333334007663680245960583364976660766887820614570472053416507013396590494593081228772811307579671630858847797797284597678536976562523733741608044567154788883928741200164011455904391330965987161944574218653182776982767149594828875665381926952056504531620141990357579142344327083902367577112339685046033609773126056684672066253545363883400152914247699688337348882993384858849075176321815652401723949725097125231102083607675359173779682784391984971095875317762761443377749393000121258760813140645439413639960627257241001241323583768314578466850761493701986597791762217440873141969925063838349615608379243065603368737487971450865388718544465114901629516187304297723617280229179384825404032152102048844548984685450695165415883087335532525683211905950526495373700308686435316356589218260789018503459773010205755541967001227615661209396886683455586793568409020104138806663236755228910896473624428934089917104752349138519282183813713488454421576279484420390939016562390226151883836312420344744044268190895024366429643217603130113237611870904279331615227939831303683768643847339492959094275014923156183535532802611690176836606984286320140911075266743978036896281259882659949431987180655110792394153632049556521815275234774423956323430221075920560779273587403799588081870306246525107034494995009689694222425760148964787065275901398598769889832750736244348586896763603117028133975962591622082165705160633486857679111434583532633418804462815671177733698199057517134522374573879352540814368257395660627610021759015155131280937150499154428650198743128202203228751067419382600166680940597970059556645230831925216445851161198139904672897720253786701560097393251204510469565479109307823878553869576830531282485472950431475339747951925433170946978454773824640722359446034194463620978867225327763452245753113962919929215952835610456257819522601039074089392222133517295291750481947464861443888487205815681326671403553936195091917065916465254046073698613075316046156839582107462774672856080000918383602568418798942516740877338097252381895600866646498889042187023851966914650374751938265565196368135453297919614192834081915179836509552410344463917804338885099575126722736728294077679246741772684371430134971391730085367489287973555911799670433087186296162550527957398947096396830431201079132574249499964805429959186343973193751895679394005339944014960058440218876970080889790655431242396129764681241088320612322088927478692158632004555908651096145381292279211345983577344616636954978071973680411565245975539843413700772504684598562723533712535580014993778095354656989842510902643874968385261741054237848397507503190389885700099181883344034946510328549282795484757515038446569618321283003898270415125418832636226772396207049073539957552445052771902688945673025675041258499393278687307727982982948443303417510207930382750139030443158587631112210140220281638485701283857662989441414341797749690404044249915942683891836626635182461010674351480003003651897818308846856475706065111245560116546345746386820071620479583355624934954676082389931147993925425890671168629898879312543251611366816821728749213374889456645872317197206334386466818106819189076649825310416997641438191175938259293676570840524281848106131575732842291735159119782981041689192250802640042032872812430351242565608378298003549653277595763466878948198762551607872569221412443091276812540698798444760697898736717498395787688441093032788022011498158272920685929298850703154919923919800463275360512497587505171599896665184479626661695350374053893069496458666333708218617645193641195100153523909467635387239736327835136657660093618868658597070768024128804564015129088980128652883499774489695087161913531539005300925817126825207338285668916239960675340971256698152572868528033943475658948650568083213263318059436385977396677235321434710967119880477708158352879641656852441098520341741228828607619957045111376594129317072775698035309528275803318002138452471017523515020454815394075690537634851507296401994502975208699703031338814750799700704637757818937177992560148446915635764851350298831207380033848356462609492266932329803558916189514181162063251326912688911564697988403330145346143844397114739344895512436991460193916182482136737832448528597033134763634874096617329080438088905770390165980580179152010387180059765327273657592556079540820071342487240090840244661264707991708794453530987958057656109156827327543157297518236208373107842468627280461764119406975063352460047107340084420157955415466765195366626955116929969247502915291140906260388068898098028357951540407043592945270214096789425778279255407859373624290428952086330159352044439435157297970093169471000943103374920912218301256046616440977379113012105364004393089715919761833620177658551775266173790920651564976745660645363906645956203577933346612858861968955307951191452535917918313684791429148813528059445846883276091819689020567683991824180128463213564879623728329132397775207053046417264201406789214833184799846979447724022649363028933105478328014564916148868342670680692479884146109984852202665169391692210693064863049701772032064917582599424618893633939067166770415959821626675067908813535676869937470076673347421602927554730259885763406457773743495455366722016727915062940473962986197535341483113991406335877211409005626731734290169203231294130951152006914201705555048820679057591877585656509554890788302931189953448909094091354445142891308306509519678227028336794757714055550228913654976278851658592355617670453616862514793729061647135685265901928933536991778969588481490927997460787461107153168401556953537086881073277620290864242595221511642122601737246722934779531526058121794151292300044424922292898495311367183086116045552176280969500799386856986354395450852278904605414356628629252615201595718279595895027695140403142806093500451538975429583459990356830544261901303838622182238831198945478544439379675024395160017077816955714366397736561556608698771641543166536724910359654340376148680901821675324698860566641572296723651217984853426208406120971273816835890907424025508236488342858402045670776520643352325944633753559690548833754603395264203731528843172393789912073992340902176259212488476235826227889540053164300363836249227836652581277140233667921017128274699241438358404256785117046860786015589789898184312322250868891452635193058160931605641295832176297450348947385260144414804960929752843967857085984283513883162241338395072746955996137649563055006275995419152054406255971822400824008402844304337713621533173279082138432149543864784493816469610662558206038281432742743523343571116789866233001044844446371444832072398858439373106872563786988904960077830934534035419992510567011111419297366450101201930883789310657931483201330634715912721405672739821641836049822434213474207902077309823540701432844222252644727153311381537359278823085186529648498050638834229329153978665841921631315421287939821393211691155106639248946592417506517938447597990100407006670885613885297476669197764180776628232971329199202160578784133010669710280498908516562411567651440191942899588109246220458352873469594739849325636094480195230019237683509559361114581315027842156070001516882936135434238924098728786107654791151318274829905113999134699592166792688472507369449964822088441476428907767247872403319431809270607049704938979237100691924242766753227816792849261236999145571169119582893761887845575473731479078283255251756961878557954325771935281429173349244277560232783368858033915692801026890258216636744081672754383163484828562838028440682450568215234669404526692888055395479134545508941053274440493240427451715708183582330430140449488839159766945796762986910149575723357885491045915933080837215393685966218793509036445743810799188233486913766336748340926804417617067369654504573460369364482302653138686042890886054802425461429178564585180967224280729819225166662827754287967114156640204643881446733201946734216578272979140229580130708952243717331882918412874314584738598801285353227793738974785803334795446723415264094254501412771849513774808712642125130750472484437202675471342333764565320757727391858417680780978403894216420569525250116624594127961629447877884725908209671410458807766977281658147730966112871252853978709634181666059074874839411800960028172765319903060879431135420633781783266000762359842210132583778714199817251829955944034497672440933334553130400159180096632741624600454175562399688688487100476186926135579381342309527193692861676555556623894484946857442319028008334578989649964420688922090977652544323155736066485727792618107824402009595300709799851702012616476501963259789117058661264264324627748584931379774385430023461397907309883493310731551403888322295735111209877625661156033197968016333814389746331938092528991592628467934755545811535762610554114149528285657361416583697424295105818556226550694114281068266887384639110549862361342435952725757234653706342849762303942536666594906276308391946385874495556806792004938034004499741494482818615516888871846875438174858431828544539194711030335138637222290206123782776070014052356890253032746639899341052696273295007281175605319991079655065089223136831958014230726579394491950931402337223034400851249653352803771044328690761816014571333147168589801820985173843340936642115150095532562258067885108461950697405393523346989015944970320061660218235287464147584557928777577629289384233664482766500543530999181590077059319073667153670625905989891313746687870188641209588192673655212606090526247397050167617613871065971471923316880357364484886728107273511552985066180737542711660563488879907153977960151581493227886763088833784551800330689542640085169016389645521531008960847027162022891973895176969403356611923008212079831524098303436747681551429856256323266763668709510637833877962951456928530493080084562713628684426596526857967053346196729550923571174962782855242777496516473641389683159714950654733249691498638910091071613052967704177500958095045683195238744235357801648008859622086634210250967608664322165997632563004244191654824921459381932225733522643293692398349294179575689478341327982382826491557722274208540170955741092606493929440156679968583152366241876764892787010043304371737844042245048615574393945478006789231983799689002461023310057147253313842965430760329204096036872559354979771155743335711232366679137218548004073659933847208616648019528725893507110221004763956469461692886714346186421943528107998935436130205357178381886000805595048352418911924356665999121406031581388125100340005068932971024393413592086538492406519561579951913741134712646919254998862322008699079592430538047281635277311794598761341916082107099065293294001980451324839773647546106186889452544045121914742614240236025083986863232671976492132721443573365291179459550121651425010645954736415736769999912196764466395522202243933633238943657696333052415924037239230737660754605159108451717770153601903973735796200253684723840313942600979253026781152740389869747544297603360836811280762948707139644984526756322638942150477058490222905608203334540263965658272590908499956088939203183286947485760280399496186558555852227114795292611217211052133682852276429607137988307950901442797710748756288466893105544241572742037450997967020008448331600145921304889300942312153710910669711505982224960274770243817772920321117309771082333841113950214093812456562751312853724846445661665385801430617049135449555902400524054402750927236426150995250222113453456150830470617252245618651388254008517616142600089942223984926100344878168250915767583999738731150112281608371227325298381606476248864246108218680925883644902213539931154576399106406430058558667291129243363478470084687572247224215139016245225404344037590109501979097067687829000099201471720342610149910327968626770372343377255233764443139099432299873849885656311096169040365870601843639373859186455759320004857489525599547982371805475818348918890574822021705572213151070806670190669479049038219511589904966112254693361449721875538988009217276870555084871237325976475604072192114696183972595061664912120836340286632448882704880319126668281555917054213623332129811927460272093232002148175312050103037735656278373873376033032385616535311931507769153340243553776692431610442692724507311396346567940124867756435184856620612843802142612796135693463368035664266378144914301490318022259721399087032897998800224918006532398258125457272769673749868215261636329217323220347565306281732081694796887505764221605437996039721755782212649849810611777828726422810162319501350639349484800336410620561884191404988436156354698066974870385783131707245628638422110472646062869645021052576551615462572606570112826193779073415837186132150544683962077502815408458346970669176372497418904004676062894758484593901440316944337445472373348878989794280444467317280830495751551574915627966492987562751916082203379285936494695026705815771482664582188687620135257067699579358735430266744896919683537763599749731236327870898471372705223773533285143698865782580718210551526886016338399272161404213900821328223930039663451027522290372004977543117210743234187003482305165026314681634892776989659575955840946012602237008806656144760896198745009954007388991235643024934917038212307356843221813598036886783161224655178911195659632174095481539282623524571062778171069381843773460456427721104120409951479800466118558723357841274372343381251430014850688923222023682716702809409886911130607292957799440871871986251386681237207867740437466103689325307826434421799263496362157425704061896270762635140298625221457568846395285619702523653483316583033267277326515673154684696745253945409016014573051306110211456019471901375817871818570212785638445229959186182525047162558834449665654979664842063829561373125580152141245775349760149080785151575523932938936283413184714447236065601918568342443845475210020608061691187819094116229369726367471388876496921432022353423421681531721110777221440015426587972252458014425810656306343321134047204642634488602959938973239664732403403507937061460232081084137308176592926962491501365392319512849174618455065416220185594847438410173058958356733653704128444830428059566744580795460503819902636485055825778937674475908674032913869085166104140351955839097899207564844169726025650739880093819643707873937779183992185324427015551112131770450928338254849807162804900075287762614508708545385755486458518153532057230370391254450341206500859144085444450818868373735231293985928483053806268433820366009402999051662652548044827118302910956215215089683357130335765210320225052437873231026140695500081249411293369836339698116136332962989344470409916779086719494472310097255351731540921186565870395597710940415339119447595078745474876357143152671152428219074117776308155254740571638416529939555115791164575914537016184811796487865073470755898001418565909167024675694165228348912853839951765068089138774721393877672684183946378706906478630369251722281293841741920645204866067779692064861923917626383198117598639126773018244540943509490424710903898056128892013042147220289941605014442187917221356222795048914071297764459576306809851256682761546888069222093040660088344308285635196398299631107276723425516042529428331397353259546476198210832396843477705910899411935545583648747345476469951762941190834965297985234186421023711985815379512778188462404150709706814997994589141492132187111074932244004796779225843472708621276979138509999193929962317432767067253966188606778599579020544168889310571231762973137541581827642089945696405981824950687689515458266980553966039289535125110551154070270898986318815017886582252600331248285706056096222151688938936706067114777187535068303077341214209748890534001128866875005698804225411836936892714646827237979682146519710787885251786463549146001567188545301070605998724926717637162118709813195968214186767092775865071500088018695231667421291016670355924482970301289249685106607678075372856635379379753490859818641511959688946000917143967513471273313648012375720736438669526009552941294255054740311689778361466535380370442404374594511608094778994361759337431437479646336324116864717988212534860349488576606964478427561865177791217450862230005667963320087691354478493256779971971074001426097546340754190067785106228976914917425699843099011918848566248855894916078757672105282565510939712145844472482679980829796108403495117488145549404328970394038270275694598159771240524353233238647131839787341574933469718426229108385417722344868278827599212470722653977211456994616955945909599565443847638451952620643587700021210488020295248236966120835310855571556483441982426440982099367580150032030290660890442622035089630657649357204939771103087594590367900839487238586652376571501305502600963149604732052472864410129852692257589355142162630978547688801953091580769299242181405406066596123014365999536799399013777054527774677894668245414977902942207649813783485663115303173504043362155895994111356422818206748907670530931702577270402661599827952331296276154557941129237364239184689254677899141281877303123521545284271645520847574677771260518206288166817337780485132921377538808406336779138022783837798753771799676675738452694093695823927946677095241667266246083682088117127865579282217207519675177136957725616705830102560047668201770664160946004462573359917135692296549150958423330316191406092583572872797304058573026350326152177368114843312839441167720045725718574949352516303676813081067845050600735227406984904429054378197787583240576757660003586381232388935353561826236702202728647376837164352030099267843590746507629543219336433528470290635927341312255124543646327270762504247010688509822462841439753414947893057485350747319776269472151873302073300878079319343648542000544781488917369593516581979723583409742826507973456970592767988606354002025149296470473465137317287197598574587981853200371849384749066368353618138467853687644881949916672190070795686810745522617914089958428621514802548208178545677780593888079275574795198334272063422551204186978832097853546533322497618435267942872112372289904092278527550931796793533214106762849244915069457201328901328027768010529218212709395588652750326552315363574455023196240681899296276706468851818250628585646902779936384989202448257445233234649513429761740048129233370922539084418601510944441522760529726956890566833532138075985905144656387500335395871289872168529816292589286649658236008966847434522441091145083751261835325489038830546817010856939255746454829152016729493669950347570123926432534722704739713345082915115724388070700185048350289712991941020389860246985139709698627825646602441115297032511986477579346727775751528211219925835960272021639100392913068264067937638335285224576164506993557246799626657244991601030240979927846295947419463942795013393945880976666772108907111995774703688661910326013606235013595549354903160851087733774681666542274949897894500255777973886678113971301208556199492491579999084312336321540143518717134860938268646883327497194233324315014777104692448234519883431874860014795471790985163587056015681899399096833986174150290439501937766877382981247345128182596183548952754490898094118808324134277809226158344377079240878202750058667607003994510791602605409829359830808136028765379458615467401869274362327273257347345504163990359674844536878636919919063282080228046719410282373365113687249693800082008301923360803725100613105302955051837897008313677717115205321171507569551944085883989816884876123983351856199405030757704946497107593463742997411687945385508859986701596443302151613311356143054085221460405378731278954428430596475572611657038067097584245906863207475801956582645238924207254249831587288130361499977945959745223477530344698223158856784402368991924889531974739477991512622434709960500852948266599978555333775511600207115928644256281728290362223363096043557137132574477574632780227926395302501579433636490884238556816860645677350884759852166230444555680596762327028997456405228175770155151899095050897806352402364965283095364124747981457644346817238280529229162540127881341989844357555725520149395418798111915454746200789682112536069433921383339467756604290988605784664761692166067038184162286062420877960360040398130874762199849913511854841236043885254106126449846996365229200508791499233857787680993613318360191447575994478911313032722087255112329707699067422222760454682577956480962995474982014067465384096274649165113752671896195167011950391597888920806699444802721400004733505146622170742839454609819529243044560906853823885154815339500209762976343094226559552289081378955972945463401029169740548677718440240190778401310963814710205399793095378710231708484184940426892371718293991909051711434898638709057109278773479031777201292405770084353787114043431774586125012049018664098108036172651570097415560778709548123307328246186923116629154062908342308370050365088390066088861997764760538136547646338117851046483813025267787594691077951999544016535651765595962003924329814696094028597073337356520206840036061833235452905281105622472194410513809626657048746219771207065674952952063486890608867103791681114604498581041077511685468108003902303302542040591548951062109288613219664879786195400132668454701767949727591069904023361792530908674687317545269792021412817162889236243625392533763271391855401495864141313343077731434418336730414670305407379303683136251711972904542796638315351353647743975055357393257172307817790015266911635466856785690616293551741113386227931534702676051482007427764302290353526480753183252018782082814917920558492222325025841110362886235877010694834810297366640606975086072084901285386059303036624954238240077341810473068035911706914042084535162733482030527745476959279197203050040042031104446841239858729259590479795744403168749644124217025102643218302839632947651537496719751388810386800971854607069020878332601357121851481217460057465671889380948002652739795029397053737025363179080400844714239284868630045253631590607908986373861570454023279248100019186305623008739746049436707955255866432853461936420610085964139431982307253965516225628077819098079309020403701204681289594449783741556820769072565123128039366015789590009768562479600171407516041191028058260172103739667240451775953338747607367377838209579998027513816984125247981687599422281400645253355610438226647466566661349257299442500619036113907703303534376966052772114343877723144492088321637697301244112181588424195839797105066231199784482450811208182550395056382620430582094547023389721764007325083613597260934664892469031265733800556816264320693719757388266263922271518379696923135930599053189003971130621096993167753605600309891330810286463643224152954003311017466434987836239457273084170931550514199220520735151267059243951168977305276855492191801577295699066437910497452365945716226041832621501979716731349434223335543224097024163381907988006100271529241591555540393288081625832307944416823708327803747473666424157583482768671156788967374878983814721045681979074601969540516812332758319428015650299804618410805895935127001352170900356970340088871162746487929423815809617985923819649827388533603094101282461049726310226664560256013857948750411359245829950195045760017651595237706272117677553886229864976052582721031450971459312226533318747654054987422424148114638876996269339365934558580349010705024050044336481407236762020467478638966192980294161110916249961889505029701337094375877813649730593367639528677502334683358331978805910018509899750186397278673198919035288627460691662541782313961444041893699713355474333897535711012366169080152633672388142828080517867518707959443288111971334353133352628228313047694801678818833795841896523160488254828892727773694565487786536723496121552936115579727360744825121849058516772467180608885545363823014794205824088148937298346647408139278802326949881645008867779231597882185633843499225206998455602185012946351767135415686460160541996691818865032634864552915369744750914582305919352378011051757084618092783817784297777451591451930543514495404166270730081347164527704946200083104981780128246631705641941139525316146315082132567273049847236355333871738487213785958722363031616782415779220407636070139835717433150964194960786822702615788701556148002436801137970032028880483169830021785569802425775037796241437030035148323447217430063497037726784585179287586411789900847688603976419788205181913544542214690703718828076391215076992047174938991654756946259300292502726115110805600310771349386273276635220401367978791277189462133913761259157498548829593671868368680809881993579716499611834534893464111451907418389039664184080854336164600473555144474446217796196131003840919796949063456040470654323315884896877434388255183259492577560773411544225079514121529678726800944281229536899507028051271753069715013987184161120165079503793818422009870632370970536714373040971604439755881384803629684724856146578835363517556652743514683201584725296329557272238548818311144102668395217052952312558462196714282630969013771673273192350098829970880500400500099950403816213006514191109384559500350842745444781674316432827645822253503474690017894444578468360348971554171238260129683921224637787384441919187072440889287397134949440367232560345709477102875223648729252386333196219335702321846196011959117740329049357877495346553600329952013257560655752963272317125726014262703424408705460389685264580108145028846917019233486903924820362367562514103333979639733423820616468346277566877103759721970819227503078954587754836902332809865135384139962037652477639261646274685636363722032901111686134105783761124052872755770541984100138377334044781531891094096519560788325606806344790524285781645901436844837196524680133580099802017685744357457707610507723456349011327359398499837114284838438238230072199671234844254586805435949017591554516575596617465821858070800627170996986477589080927913601643035176832801108710789442508000894033141144348759540272601122903512693097356831515702203445583565472124048159125247344554282180285190710453991795221675595869724170154083738369097926485249169580411660628499627659516328627335855069059366851824911474439335459634004681529815864875977881071724653894648854718161854034349819959942241330491723403611324178424508822275813626557292248672295582488393368656194543332670455803414507270762879564043601127712149410276387654957719361951839404207479033428177133181869206617865978218100023648610314003730864952964696858467583035652005715812905455046985362673276433222458381462049949937766455096249614452099234177682297353850568821346547869238633257030946506983983692805668790796656186188406125645865017191358606316683399034348942134598007437686494047934207424827341770450391868216663405089963707152088443436025245302403282895935185742892436998296742231782013046342854599841344781323585772175464340866586126860546417707357949984184595663382123374267862265086036057780415218581803797404239525821099470032169997756820514113274854139880610153938034220892421484392252179456916225873376221133934779952033691617829159605277395905068672121465832184003210290391871212926545444677955715911427935082433392999631960382000532927439309317627649272884893960715016703639605930258544536264869829469872847818796579657781569409573686167094014844562498417136311074477636469664085665453365639166222975247480913654754278116391302697859958379819330560751772487809354871119948921986237094966049592991611990561722324314126745155384480142004642521778576323845629529658241309432213982225280824364135842580633405369935156616434708564329547882317326889041644526035505610024137291584247566429712319318625715426207712304479142262542973267413396259998947418180533622426189554487436023882775940568810264115609272949926105703640933622940173621019216097193656358729848178312365609661837287465803285006454598701370290918173917695041770643313096180564880435992139998197266489993548171324457669359960774505057843291263686666224444640979620164458141613937448600258025226933742066123052968187267827088085822031997000405218237915699987406080485254400410751504484309408321743626559632859165466677651459530334365384039140268776771236690133108691810830311974970978913705500627917269153294530883113822331118650811737068773713118849166926634111141450959173196251069458094900088517137024754798644407762256585994350882174719753163422339854318410771681191103241562527904209742375306147626773822376467840472948695817290872796110642953364316147992902519190593512385068937187413975432862089039703061587701637144407562644283848806167781900568688944403537186148643356050519196250111026616063184175095316049599579367809791206601316903208938824548014294026934136613134163469891238634922435677375589012706528245131799413216604162916325812069997385794684635967855123597109713082744730208040511920779062098281191436637115117020918480174940217327206835434418966615173956157933866175025221527732658003921924298104759315037260934874174549192380943162888953860352336341333597009824546128631717829494046127075277230649768949505847126031840387811727810834079815133030168989164431722702584989048811279145900080657714043342660965039659037018898176309094065801053371892083503770898684624680085657035785833490196242685101877251131125759698347410800181914911125831241740447495220741681581103503512297744216400635865247586864199778124606402602636206037946143693882289885122763643687116623112609218087015741998532732947693732075906356741422660299492854455597424536722980302959594167703421384177285813099354437810396499765039114772380058996906030581045571263248821565033605646118379814994475358682231464906041296482555421887381879852671779448272198687392667952922137712482233332654292443356277232212662799496985233013534050650969486270470744777884529700956460943442583326055464158548800329434692260546312023190978797654499176497379034427008789583022804687631952765826055601906019045765049876302200282839481572154503721328822536196578076195812874865871436914384911208661621269000299478693818890344616666038949470335224134023581873649713934137287177292581827280261566896900960104996885000875390966039621352534456153088282644073093201246900489451961928084438323517123993327502004871111572101837769873623084850547826428864314963900685113483387038485209597996103004998264375217723231872297420277922972512999512260995405230652200139961062498271611490251081967137025771562323003678076487915069667418237657618571695000302539436976898131784800183767930553672343588857422603644524440643028984753102156609060981510629649605226545992230484005412774207303745538028214669204671092564647814762289756699598372678233354755603367377910862004953518009209595832269946657862198685777341667407541467170977436719251115847180533975570338224063739212660643019454722600269819427157116537540159591752228755438422464396652524402956874655766307835255178514393443805375779609949276054405907246412899416574269659191530383144698752430342827520998409820835312329565784119331396821314167268302586769315088025464059450888809959659895708157315436045924941451350237547387237772130151098893392455297209406801760835627762227813506035066672248972204723635498535098022786621246697468656284934742359905645103617921228092195621170321135980566129858462358730156385438108478734704349470922157036236221544983178497938974511684218068949267886622722131362638318501104394819292860124369720348011415470169718467516829088691973650015857442346958987095250383569112733563227611524371621622382487649230716403154687488627279464656200859237952430205822290167644445651646749367297946864213865334790571051379674948286706669343901741930804293737515035664413689642451061005884914478023306375334033810436248508619486794604340878184460565597462128206870468896847224952668165422712442705810147555662158721413225642664147141083981290224415717770722631035419058456918627410010938972905717807269133690034311867734914571335357231794438517070775309176581885481827833355296205011567452430139701515928909617243840918144777800005459276932948727938622059121085913594626620388824682306600922508932404071874921283591248644146918326636471412944400148623039934387639556890812783501832349236071239751043593322573205638855309491951088472872305316845891371612141719804496902889168147296614473551772062761616120442240118619394642946903124450669337987339714415753108641033584978213895878623235927004764848811371027904903426073559475503562500817060731185707568106743573155234654013621378878236376832448112916600567389952722096488369232582508989997770940460076498932606477320115697609395672254185303515342183927868108840122500085652711747566786701024435093351410044048122780934375138329341898459929236658807438934330529699476212649477296708544462823319182699141443698788610142521408793530233189003922087086701980442188192934647028004654706528408062339293516235281757343768390598900030209683522939965401533731038770173427399937129561256631698953122655973836918481807375280405792440831702887355243472478625686003086135210908351496378605646237569579962281977894038992124406898995031720639494058933644961334043488251605271771669765620955129392526814625083612509473209458370619839371727914319662884787135143406643515968263415161990978205643957777556358860646405191016533240065577198874092265745608537941055296433379941053659728630812437911558103974817411776310649832938805572503323570674401118511866515363659291847628347132367466286487033013163502404383437311451357216254122918969453411281616937617207217742138917325103619848178364046104092284060156497624738020407643229074211637965800337395058977208302783310017016372965295045774052098554502965356874180817956081487133508375438310066354075049765872893554246746785973612694417071103767496533449811992488440852091363239618657715045947796910109504287324745049728262127355307371990409615003837448420836725185671542577289358375390195279248100069926562049834758881574997370797743535021960530815448508172489387831663197441038497498597187520951455243284292155178025021720669594379904781330872471840387871952354558585369276181303125814940381679849818606706179684494025101341199095738249136381669843868551123170560017514685022394306246377149204110136922955058699202256205734172705356877914775554550292443270110323322646526004216065324893177614975674642780081557670343773133838436579801652962166663574518903214625629069298545494728626880895900718948149558535017610536403485059955070227094485706769206619691792542746481200374571850928171766194868887467166223708762355780670741486121921130702012066419762219160042882417004142760741487165850064291018953393142678296875444730427869282411899900357617921118413075414451933694174202674444512090610168731298323756121086308193344907819862776081927748287697018904677960344614049673963343684182269075385146661795933889927608949124657446574110585988177910999838309198108657733308525222263974949107173510734301568111972916620744662746963307786463066139131925628822897629590424413082637092547562780540288484200393356525791472903133341512313854801210062009697790466810154355692078578870681032688658581528702286986257142932558239858391927543509721568266484485944245303046461622315856671338371305810611128167579262857066973393733931822852591930558819443860702450063846772536745416471629675892170713646270062026385656929271449449463459363420033218037398923868679531219099964395007889810173430912382569320766639884141156354837791674256584122224736914066823689831281888888816604294591312085739600522933284150684918794667739414149851108732889135362198395207495536175992932198553328537823940143250470666538633458871817927187516121180729605417484655344666155808278038494243410422539713751595510807207535195360792457341847255390983690402678487538901996940778466322962827619397758623589241487256095693158121823857342979810985091608965779305537587920243936863359325763800029790916246592559290870015013994404233240034966278762606941587355001598532465121529848018031206439655678463290473308529141752446153338783992352199944789070854228047514099287423712068802616790298528745416999904203947177501420417927746029651764357809955714254757956200200785925572416880344661251936879497664247145603003766721243371277815845627715255289547161086813029680419018228541224752157227756801668047490614641150139501562819194449398251496589960924024612079092055852944807613457311020203245892616035515292548493956836711085129413804585379164102632362121131935121653834919370743416543156285140241056910045157234851063559770389656298942913097492376410432161910629610858064327118897817885908998865360020914768624992308944919249288614186807428799949683520166880006270412192292017233075903996450051247834463584878560019506673206289693861578205760683171604390628112485458897647486484162171236110096575651903143578986210115747628496100656817804065754152069206749133680137204010607896846036236694362086881812921880961759723932185676378334137097419659618554131939874322552103812309108269845477031295207844829125239562166663424259190640557872627019707977535320680635257095232406195900757106347621240419577621592589344339073454993629981839114247186188786666863809228953114997394314036700000475933189002617680666767654347768409136613948247064352894559233541525881151592481953131117843289890349459859866780676745398700268689705778443058553110080915684996961881194583149520591987919590117929716866667639603894747293220053851007780287879562547919992268347923986461412823989540374565511245517094229813545145742261186723843492387210428920302188526902267960671848802476047876503887655966882195193481659425984693059499642443880644258257394753133746926103230919517283764366542688831030697172919529559108301680735512852795204005336068008390279834333791360609212148328985996984776345423493773007458401114604352884947471265135648131179377006606065051295911031798103638552084708530331732647131624090622875288996269360544184981800629158721491725962356069778124963239887292489828828631899509164254057469565796139661588053297874335337223357198533002821798120616895530328097767926266916067155556393418197087393970582415736703086020798118964311805876666442915948313418219935548078075318790693545383250602567500748147447706561080054916163671317016745407411949185583846559383350465439958028883759232168225867283023628842325753600936714234805041616652481154977237845845827054518855666014837753784524186809545304041326876451167829934617782084344556217119937900690177904159364234718325271299466654789228296386442544089205714391319068449285872527778656233074542426086281561938223810199430245942966857486481877706084485566131492144209034744849340134178209444493541579610612872868303777690617913812332685540925059279894650772303160106667446979114835701366954134811253297834421828224800830727272702691121501987950938932442370063159543462957494728266241770912655307955039403734061494803211633917650681820015942564005627812675582040215184551015249667791534139090715084304329105323317402046769405095818558259405941767910403167117917880505895890240966705065585995439156124460054792839791281828817877617837451186889366425267267883113185621791048455275720716800256888828343464453350941483496239662089564843560680160312205804947575614764014117029780029194814060152290113775772191082745185069524314582678509232020985381538252708038906385001446938151469210504072151691266884942319227390433960855950538252700294419429478642215843668094893056157929460001024049960825965370497163818929808058888046636082790683279270063148368294364877281052670048074076010257816670491569710175264330162987522719799911293319420229302838185506708435069687996934660001388994177703512024750654017686257293315979438967023424243649452784369082463592654004440275878686172963558178405122204571202983802682874149891601688553617350655447188223071548295037887850571737039939524948277009947121259406956112321120773913807924353383959803925563493932906451809670239205120632626564286398340565506361174210290521536758413551794006145897172725535481424346544672059965520522559859323953376095575171563382785378489996823241121378031417423942755724582904464446616987972172903723079427912287089960623748327329810703465824067050061952327019683521687378977936335092641909295667409165289530831469754682503859971606095138367207170411427541205288524170188946764043533205941014442284488607846447016356812242289914448420018058505113333528001425516832736320709410685565193842617789633603381034641388259119155043244692281941319845084376069866224191292378271350889207085920257556431513473362593449383944678237150224761318315194301373861446978318177798458534254301327589086472355190436737300526582476600338421937017717241729148084948582875044437892491019877740654802290137246902195019566610476267259758824240341659225184751592450245817154905610466409305098918738717063922121340396023947384989703257980424737515276327145963329775216394744625372832470685373262789586547835631191540139809393780768978250153920031648008269058661727790599062625278127349025061559034213041865900112684129862752471287705992060548027012226825683775828456613769265934512169997091657175744728347778758745010715667745709981287376689215968912988798071030377338940141794493987350504691707281248991752539402389348262413403041240658679079893552670148616739489419919182836422329096955997345879153822637959836605409348662913965662139030139355666373713587656827144584856316371937916507384406984617614350697255458361560456164969145327803695506566945919612747028150431987390934163089541024268410672011875528806195123656645389893830140783374416796693070952517501058198499056770932457274243073284633033127335587326509215947615122304748391772619864720223125934630076131328405614609109117268359892340180845657547417118935807046476035587180751444660369908834581664007866469516058072289030870843542580823866182975585615061107369560902997795912058477935193368108235910177767401482182918917456128299849269083630084566343309964282154968585204530625293466328764504086872448203127495998043256998841748503307268716463514792990917718652130471268879013663579769828329520341449472605419580754224464154962393787759177498033099668656855741474949563152023213819509615444170368771684257639371996443793079577527873112807644717979854322668085034921480217177107728942126726185796213785581505929512143122106524058536117331618235352026096923106055118727013428495611199454671358773846010822471622319309253790734338542448747699578948718080251111620901614237235426251107845520715873447932039917148307971062013588177639576121762355605420312697427787696500150236142734659082898849870386534166059526987100431863498431439103082105723930463015001689562209385215144001944593846952582352200446121584471476011618947623235310430769972182158441281413123539094335076359964733036518316881250981882777845008090622269916950751558790596120934104982464271955391130445696192625011420060335788037573141332548060289610062320870470338470582213633424580855927160459123686122851715334334925975411212338770422656955304981281184186920267983773272962965801775465521300122194029802247237321016541611514259203430910423893892119923594217341952389791984880271139003432448953307330961136167613174877755103129737833489125250216650046754210646812208126685196397948026242057359288096075269525679037781089399245450090398263941154167894984527742441217677281524964996235839115482809294171272511253091993182410405954762818743652121646463723890522724706706711615134241092785377486112798165774194862066467549628968247930378546530305222636876024393404957157943783293856450978539993784009516472631502038369722110414937789834380295300248879406830412840116220448230057763078740497347737214666880520060069515417407727688142874384037229468150563752585281666255256943032017785567427019426179520718026003478535446946385141157462406402285753877069074609893122335343145274549296273369031084442149860549401502719596753441901560105828583972349269725577482723074552372851196261603525060247801954936654952079989527734784748604586212221171261445982605725656982154247169554919746332781735650205427198176071704580892956964836516939934329970842479697821853483429940860519962118965031547306717051285018276288814756032327972333344023432667801214277150204765641789720164900309449899227753236212406535984358180983175279876587118625763570214686632830413686285137363946502376246804468871242963246447962696584668042103138142419128223737272237350378887698549151039683912512804362115090994268046562401212597796962579918066301140494597233211720415412201346690170981199669981933950201577674289371295501262461962916870160725827813472603334013576068374417438984543482644637819718770433658953069883171425468782024293276505182320788068909307255452378306702731766141423519581894880469813181410210984265798127113614457758121634355455579735700016119582533114088755344722819853947909967684376945560007034848226852220914865563690201879813701401727155042146396406915997951267732548843212342265760310550655740988409667166285649687612071676346389673985319191518890773100875270378462716416722137523625503209426538735454599358337539547281050057311574099653264195347141429242579037403320300627036831428438264388853501856742133421253165883826859114621741231713439734201903396421315494007364981366382141854933765707771185667741254221687971557915524108134821368260337079119703824780336955384930684159656635639226513761617736183855537834697774858755663554529644264322851285228822391640073239411587967740573813445058403390333804818757602116942052406296907564648600550488002289274686047257632159855896157041025980222216038394807453726880713440603661825420925412383896970372375547042590331191867756190741216341368748342931363224394359438097434324159399503618455707934339971581970640154518613929962355550166853634158243206055745059256505971569042826689662771512186474310498598302869843635083526937694270876791066467708670984406436322499802065337855494820450452653185777355255522105068651758197926112231693006841652874901081924991246344530346031863833781695091672952236177481383452332662816362694943306182951088782872512805148304614257036305439505594154045058908056940486607022749174739541597219483842966215747500905055451708886957082662678104133852245608061125809234535410401947325196067593672876317199546550040130615799012617722542715069397707105820721721437725712586984450622972162454563278241116204332667800640908167115079657938015278311940544247484681837189136681652595459196721631288101664328297388979537143631135258765863189839962298707322341027304659293138296337108400906308980810734734371607152059091135595764080466158983948585558973372957055545104670460276557080996593795475104618958480116911831050542951264174565294444182482788534913389972722823505068019133031871514162970699546093275265653455744318537473126512172786869037281716010516936034605537981806069328921656771191286763753694105056418646279829826796226889945525980439124876913465636622357535272972741068135707062482661876800729018028787923794760455769912453591233081350544683710918736533312156520879144584987888138204358160690060977048674994680805411926937908757529877690471877265000317790799037452060676213070514624531156420862236528957461907373640365067131208049510080933349070410814270936143766577532981017779610264704126980223123483411388276356111146093701356410778428679696117065492351682898688648344117620096652566422815727920711116736903384191793782653369191289679536600497632892663263649075269494441568858453477208179261866550766396048914130581702435495530959588736427055363819063157926249293479954905533943570876749922538735342206748679026737680677677785503702579886419275930773134095333193423931753785510556980799154917220807722583293341780138355706003482725226604345375333772990701179629318879365182275181540133955888022017204908643566939955586821519210772512721702908457097978702555838460384858523652933377753767019490098410414862316143695641131961659849840353688969249446567910809291706717026061342065960748700319703828453578325031004829331051366926011825392962155073615167026828887646346402446617859905670312932333408861081073733016627305298498318915730398307007727003360543006394122564052441968016163595222916457428890117698729799178366187417272310949803140536750016726468996680679964686286699281005990290611347534889715622692047028068487599877652976280941666616575582714231824432089505397444679785752364883992170616932734448962217347834325040499734845558122386969764712228633169206123426398532898028983148915335136042335239745128756013735101401471046190434072703143663311146672347829552827754216284460362090132114882413851916920121703343060356916406668319853940489644727045390647955259153679062247607259141985824667173571567057368814829374195480641732043387449094378445405908912948335021526569393569208785480591431482880265381084164785681326475408937846965981701084176680765288939055460223867407521211420730697685154444326127834176728395076358420352374248748552775663000611720313601560235212017538902038107126759870029282327941878509192014695064103583431380289370614610970745161249083962478966972823637561644310882474180031050086317054926132974234252527622209032510755279781892152631016550821031612046380241268136056837625909757996493747993312329821514225203600267706167352188221147585477133631306110319514685339326739031910955590756577426245114054465780169798206386440051335556160196964486336814047008274673240809059060181544668071573862625702621461485283946162997835786165238385687693777886461699666356821118562074328421901337345302095268013599336385692741045523826731685803921759184712466497798609233227427035817292147201667066057068945834346111414490825030232788641875835558051451815984030514530175552540066296021086302421955611595511367857135042123745784032328462646351212601988398451130984103059382819562009473459787613008304404557330456537924516585611191361551704463768659575332710918118630028892757325882471878177757798399407176649325345482031282257944299130597325095973958618836170922134665127836924938788192314744871437522180882818624282552564226658599264895804434159786979959896676338593118042398426684181200588548309688288610650690971679372914216321297479860878035662193727169097599344948559649985752607861712389417037476730333513865373165915203331742140990137905490313184026524755651272245151105784234098773699612040147337266188184241102377213099401983991648429695076819585628369351271965459458724624490219431918128044652423576436205590612663594196400918768384478255521881311277297219684732574487206588374015842289771677723789343207720515707950824896123657526017962003103793971751408950486450705547702049657423002698325115928059122016323997994978361517330904302245008411585281105970618942763329864360532148557314071273904305255727534646409934361637633934808549764067032417597243058225541480989231614005694081757531151122724614348561424380938194809936286372213302931730776853874029439109280207647083779171102898787502250246805305436186502907089295584553016803266911545800388659096229258868894344298354712816841786449779206559288066163636559711228697396117078628773866831543946112957845822807776046896789664458259538206502871981728198071791816977869858320999425154761931260938129200667702889851079018514629515806470843652285207732904608463934202573172745815611075908016775825325432097195370256194444739009653354750394111890982938473559102782602437027626629910851111438041311611300717734122576322170086697906592204484478148571295424924248273343197155583739520569768326485837458729735704853069952984088362203714244173912990664273439844309990415296423090978826747935410837304462147694933524182213452634257443968903033161139344510294747544983927404158831271467333196819051761834400910497612332050869152680364607098878675556850430365191145315515225617948666320077606250972266258472884883721968561154525584753282995003768883847739882263263268660950733079321606730243143387580759900510795082295617889441855816881617260996100363115284420482389419635436186369372526583059854728311075932231930726670362801060001649906742277637762736337120951330813794759064931792083186170182608160171449744709933617885176860369550486597470443970567598036511115422010770933635063764967418534657608248858432649277358009417411154611715412576509838276457192052276210423845829968162401735058937383093539589072360662503166266253527352184920685339721197160587051898170992205909792004590219977222442961418795589163858877404266296786564386738254716482738634817345388341700194973377572950597647509555872822561031378211047973378747940222097089118558079074679048505315272504862601919824510180752687011265045548510067451851922340622752355999282342730826305347300048609796407112425823622030590501515184480811086363405574893283587238175715601727120201626590052762126081591894245187325030257233093062180284606371327584110315971726749070017634625360814315277388390894035813365068855932624802777417392571281719149632948007416715635730693105005259023341855606685686276774029223342862093531654151229066296648097438633007300706923448822477131762246615876959922039713114185053502833050654335141858458409910200679293479858964670162750628594317777185486062961772853267134790362950260351327486786024435626576616045319380715972465678710007421838962557968019419150021680406520905295288114178794325069033474861544257813648661870467096196133399487384775957971128215423131384350883787243381352087467944950068848740285208565018911574516381899391137192936948733108158577183424747597212946080055122388318413419746325669679260966651463102892362783345909261552872523208533616425549825004777824025924372644592106494935620934992044323510090410966705770214799536121681141510271639326001528203088676897455293722799688775228004551896641866667638616298368757166199612275240784215775006781744937268115846804124389052864179561483690238843171995100814342540820281711526166765359860205239231072720504866828857155359790511422020917235095885209457948723070877158681946610576849221184894272265459684760081118297991695158976527756233361572340597599553596403102401408239472594609760996796076649330296517766489917179701117595036924475618867748669359944792918890196382028491587212446340942917533734363947593890266697195339370902115153940683184739708062058314602136971884894464094376568234980999699688770841622490118825724766846540007166781584459565021891036807765071643796509877495609112869013311212557866323359581074164286147935961846302256088152809390753681689688691568158456824845266322937171589001720489054931244705271371622764887829277425144324205513124657497674637829062874214221383170852843843160183510580010157289930562870791522686648061226818584893385552250006726119777103993330582890537743975336542596255430881863590712681557707357324096712003578378415620375849101226336600874950816858752269482308523298638124591831311785583559932281704730452971566682201139760004511031907684461616999374762557755171083290918680537703089608847674692086735988179612749924117026146874403215036960290955899262934967790161253345906828537274822974975117031591170613597907702746724100627720049350576342233143371294450212065435109088410795583816405604707624210525402207648399333131110608450673753512296437537542836116023008168579685620181661520055552059613026134649757567686484259685242110541939113762760118250162795206927677052217100670739596760702207685754535414355733343087747186397399952658035618973303825023540679962116703332754156147600202439606252522499313893490079305638027048927060403062198966664246588134360858334408896205088813274952500796272605646612478697801017365688499324606604634831511690654094096732614741881930009785800088871711453055690311989662750273778233699449179698194948899485598010180621909989625007982198281397872457230827001241356209669796168926552757304529839552998663492582474841801847757495770532857028930416490454318096522948301340671899075479742079766717624897549035459344899007473145632851470590959470684795721249558338402023769227565014628335537864759417393853934144256621533019416062796006225292377571960530339007806555864514319835176442797038898108039727035886443050780999805063248559020455157969955024906529601883477890838997902479801385121037687073119424413406423335456987398469413333935413264449477339371914608786524645687065815358636455228560223710068962476976150287625012638281624840811242591695160561634443464246316519034963524412139420234899809011658024439931630010942030939394269248373050770764894125005177181254554513246403944197344177972712216290297975499713296682961924171986129925492886170912331522460352591693211648225458316808246386465846786384698017599710636161686180422852758336308310540313174881288890255145824074285313020205141544109634780342238298587160261219326582516913901939363993221985409338173307785340597469200330983429786563316057814818850651092531369155912190518558656509338777531963181082584096231338368239095961153417884995655282196907425031948194323594790017666135039533080035264319766701221936696195159272638296074413500227014672596548222950673166448387231112514644714505136401850675074711873657017415810579260139715022054097332899773790041076157315684382986834976320760300839991207107721996601458221840490929969131114334005834418661168468569367816189864347963754521963345654162283838835786257443969871551918622253939783283360299841315296251053634196805062409254534961884177408234952052122198529276057584035307145572506537859082390777250081247889298051257021474873850687293072318984531187954182639182441505577729403054781786862246054708626221205929066247943164065348911488701431154127757692539806761400401865533707126416568318107019941774883615563346048997128328899326842104960052564090230508352882396815941036887778068249034284907516794527564472847290648030186524068561276762943105828001431385496205411802240254755071993941299658514925802563108227825712473079655726111715847980543030684170089815492113755303136432725772614560782851803168784950973267942184864499504007706671078515286069532414193743052445303437570679350198821487838209610329819892266937825895254247318855879260329002818754153580982959816169789306413452366050814803074710840228387955666565500059314749648375291955203697962269697090204430993984767520963022952245268528377684884994997527734202298553927402814326062445922265307265631504947831865546528460881794083328357314923649280137401061190502866370558447362325245849508493793788248994985516083111093151758671565321038122904936965901410799741618338955959883756626665870738104309486688185338256419407567962050266024055761244150193978597836361076270529497712289303658907919393259478785743990208570425991160576040010433810898495508028359295435676002521124510483386625312961422507500131774186623923278552429277667694190796590684601287909550079438625681045881598948529562064705099052146120427946987321620091094129781477490012256016428579501392505001091508041690339561992763619133480064821272588413034360685566243741346066561340042743524975151649663929204325559707135667427173982500955419853713277881696424719403674392613982764061717328130911925967872955482380361901974477551841299484520217985774501182585561053739329883040684892246660126753720653923524640433402785550652162915924024881856945129199383394086958332202311205648609512117509525291843837964935588617609985193286591452188238908589600185518773533299078381886609339494462017587725940398629025690891408107711028709899719622142886925377021738975371096283700879966634278713805431225588773819030860607656828153997435394551806008414265532255490160300962452577241020426554563478349611831703820236124911129970369193116435756408405052920494566643076401689737052851735602529216918793861827574952933122342567881787735693578172657923784683691522669757542723092711823910002075493248148121153490011304822462150089472348221220448339592272596115577660617088284113158804973066901440993199431136631925085588672826768198594148941883364176260412395061479857983385114336618167321964238934416866721961616130476783069040171942013906213093420246347706791498141405863761978591758117057553862538711701375980161389246426935369397726720145385220746370914526003706418008112523849102040252495695870884650624511291901351895561451025879468032425239836516037428336588321156196783444944951491668766842331735113483461330109227040010891875647299844768996702761564909780949326967530372996447807233955411791096571353446922744936388115423530986838415794173996172117197636893611611876656913278155744473731354238825058153486635065616273000670455855827307095620036754049995099756093395486392994476135291990000974554199736668810437934125714924363171508237352883105224019510823332349062898461176453834953386662838916800712335119841947881476787554374612126875182391304528082634904303311826961319634752177566589470404327902997430874358873366299357329579108264123732458996389616337016282390274570842414933214150471430648241529399085166146340179383819891467892450683027004687974060940236670404855933889122114541005157379502930575757836797818132139836363693593045628019344680390560445025573856568953408683764299351598310441273531256538545897400655578739066267416254574452234948211949793394504088122403921845716252862403392909513717802435073627171599066480634337967683531464831297513630082648748229139705739575358832356608765965736219181970567701699786833364089977640668635471998357855617901994906494230605937234245862742045148984606031172604447597235391647594396699950957934297851029055035975338353108132372473933251585867148386564065053954722554852977294753110923459080319880447835236825264968672787155838546657627366807857131571321506692344280564251417302264355993420553157948118846903923866928455017907938186436205167527874119152056102878585472766715505071154001392803327282843711941280289556489036286119622094750955095879291345950232738928231978218776628053978309436749675250280442965845027783780771302004819535723503423526944285173517257108313797772417921017087732056238676440777788349760772363070281383798434131846512769422955666099092986502109235312015279960566575610010482910005498132731059263711575542255778837960259214197169838541470053356671807859751714048050856192033165128955362451367906664433533992106044572180668362624047952214667110265339663832961815238509388540583559681947839857186108254039425878361990105757583041339015927207420656946437579379852708029994414304598728305030414757444634521805896162171871685158890251245884961789842016780632551201204706656569825995146624493357835259534342454121452585169271292980508257337497113358057118237350672561050946120428161192658851083128718683240222529648421734644451542935730471032640565955954328056238935406721304757342398390295090375704451378596048678065209648232825495194643895537207074058638553651806016178163126731972002471115318790015586197487927440042420001163024235114265228168918111509838287972058560613306895650589340949480482831231381131208915920031922652616684931564365047511892682003019890895923568445076885542262699809586685385846093979293371450385699040656362032819387117231757210809839010197225649160694563011986811638372639314250673962041494097379524465230862307561625459084991622358521853227869931061598033866259519790147318504815867868064888404201805211014389627403733938460770906982337071363048366190304113918612264971301592775845307841343317932485390740173050145715457239580040623362962142112304742928941170418077926133323815307039892736004567386005623357417502105980945849926080325015830951070999393725812916128536251735883595212140492187778735051362504454391489434380392618938988391682750140160803360629875574161218377102886536841859776628888048756263228845786492553969258570968860932199779365644763417857470993036879999663911993612072016394239907786459863666823537341800047273243025007911951571168362730239893301891508070189860861024928982892846349160123343895296399686084689395523173947827684486872591839281126220727807474047556560593174281723067255703064758302216148129244374309862760722491491563558906733022437571256088414137881954717637812528908128007418604203649757289776827822419108350731860900382431180149087802768368833120170808489693645253677455048679636242895836594364695795554543223202337338165041411271504844098923199805182900843005634707784382342299407525066248824428811751368112465766203200908061804309801292774687985077396757063438159261296157578811508594376104639863677077720741925958033820699453074959752528932553120544136017596553923126168579107174398190334355281819518754626227725860969476688062758600973247913296465195935667398153144654597146212603336569216674769876185915114424672054741812138804659479759011833509381623916436236192588927398136529121083242359746963565858986399666925926900980159651827381593754740362337480007765851474050189663779154715606678426044295819441992412461295721698420954850914500849501457123252818441406127554700329864829649820068816565781350811213493074621343520012394083925227149319026162994798512185551097107203989868542752039131223307797531463470692650469021436489309595180601082243396214186702235711542814738257534843558674575955529693318407155115041871711601727818797560505549491028930840979372986426710957178405223959475045474042911767065462315511082911820613045929668263498064332260783143793176789167750161026965215247401595883760114415783464254145774261254508953562460230178082346212063745419518849846703873059583054072243342006210693334574031706773458283264708879831505773582021795234978297916849477789200017461262718954652283290297641246374934752266234481641197484910311082583906326410719468579149121008502985435848440403936648544538681441182218589182771583494297268259122135492301199584803427848452590657083963938633773223871425040412794444759129696796924016460604546717543844418335187729655452341607553552408529769360100129236980749014801826197695784731478865438581921773147030787533900489782598069448927763962034405619051654236472127546070930431429870489646454676557800342591463923261600717591567698528428822051658082407518813373912126248169488328934633830739344884253684555862087769643449490493466839486844981309436051479104520306488171313408694787230222881660429337785343360675881404035370661809577640327991256806971744975139996466322149015913995226164965445127008011509089290969396842613558315041677075823809801385328765581972585180293752583716188631904196211610375364752700393277350255560973853561101279756903555376437075076151535591543779521570343362526511190337884106813672665271364230385452765767494447514911633693750360438641846158378474040374657226217358440417877902984442135750389591724080391818115243337984534604723746984129556528958815881002651055823029830837163391228167112531407258589069607268025043087507599075626370568084056347553826515631992375262759911526467442256871334281742298304683395362021714829082297817965524495273258524546583019386728078287608769876042636056086999858009643244925744630800136933519142594547249829712190863676241746658317276244387128892325130493692535129130643253027166246061996795212333044949470697239968566416297050008396467131420435522543440023076576284248107496564008375397402200260685407560224513683324242858167630052607795675673272814389212727022125356253627832939414141420202437668454300865135197689862994306029450827083701001472065671345158313429736613594016656650153876131939900428007023100705230315902392584645365984267664214369889469037273213622497674228432247352302513197298199231085253224552764459888178982353087916828633039950157059600193050754646740246550714084882652393949996454879765693916781745950889463716505786750690913941235514237306561265058433488896909382109749054577693581092418642913786106671373967871915380270769771075383840219713685867912843241681348239283735253798420293119228023296987810983533137562057303678770739670341256500210325637634512902489258850864983251185915282810492409504074746040768097099795161392907363187041815279241495575909375751300662228167365532038060639713910849455703316716420948652412079417710574940001204775334764590148220190564838720084032853927624025549908697425677022415284116742556068139184790937688466974505913014314445356969093791260463489608844264064837751582535595201798620467529143840327465556992516662078942936159970404926558976574464982883496416573251796719531005494372391360386344958875943322683099016177423730232671354191563095805275273432077109659180212000925749038565739958721742455470012339866276583695365894362716070609936754418042601394626870432912190753271285118395558780573458946578248426785147824190744894335478775538842681610643713111206387541884607898008156847086909642211427386790894246567127146023585559048890263127482044421556339966886400600305171704838094866623666786144327233469842873434254865731759758906220786921803949906905216508916312940593824465056833599843338160745126029867978720607171281659537649591084816495790816628570323410610850539752036693370621748180670674778071718986055324537417613799212266403381110630830481898660759995037099396442599901395547949828355279888704219649877582921341769414337060071095479924873690336607885084313031194962062278429881408595523435328578332647274521007874028992877108923595681974633377506802447256523164397024545598922507634440539207374022506826763239065905401578258710063032923180549352180567446084690406505704700222375195650051051718830092087844854107999010239256611083392362314903171680685694088129918586420905344901322927204554795991189861899470801935698270315498644167242252767628728093950433120885028680655017233644776283307256939320388392516112643614636598969376722743781948214190441869906590124951464314267600028158460272209968970192360297270115791891596257579417416251537162757587341814883381693815336628425226598765049163824575591702528729943815796176654907192319438061364468657748325666178256666399004051839834206761102084698898465347898499773158596271174035537100191345262623107450129288350499458242551576077304750469420920340723301646578142734667176416002325586255306384074639950894420388715390810599921702509458436563903938518188882710935734897567262260813619663806238757665304598479176046621092879402693988568148348353786311836336485299195069119520292361649365931116714403272558636950129669173569993546543773424593275602267198283221198373471801719981113428285375202960434492288101301369051351524539450234282830660436379458061935341332216500012156528565386513452557948985777768768215573720817978525829874189942875219322488416076687087558023578887458495419629581528226531720588580787260288461079269546955425576273289580560462157063185719289460340320196256449763141925207130981905471124227319727850302308553568243381745803826852338584080222091956374662133002059790410543815558719102937459086181504415405017294856251426558022110118509432735461368421287514988683135323578248961187210415712232383433345841649712356374400754871510122333499436869031798201005822018028141913263672082848364343784881302070233508173100357458343630197708842708127927480609669968151257929572813962684512823398916292037845160877845537003421060198724190513744869351186364510049229712253592738754484273983845897450175099956548728962443617686375383999187094152066378155240617062259382592452641794654602465629572302741400532149203851847725800196988744953698373267485207535074280164680683491341765718560613149080544028573516796537866942000092680680384623031737492031781190028700242363144255840132291507089052445821327088082031665888205297768754355013515674909386881522391450030804829594034631735928245385667356757254615611742649089577861792516507391497884756262393090869495045916876743187148139134273445082953661253142003158126425475911407604471125004370049593356962158195087032412433276604918679518991642886163169430624770010573622797033525357410633148286262475791275854849307140824115849801986593673143198763520425555081050285360412602050115188147025751023108731705086462240933485039018007305560630969489314078633939050839693964240619863707520017928959614317036488304398566730939335505754935695786606635000975084604454635064995844462518124805931426888335743916262857714144838496409341571448654034007673664074987141488306203666538324261210617949180380456433718036808036436826575000843457182824399834603531393442794975537025855731370381582490825092896944017652376323692248375298704021299356132090358110012578613892595302959221005451875174947802816848416274970702197830900927135953071521158531670843288324372899555214645249711847854185839865567225715266522632665080985012365265895753290957613218097469833450381666730294727958600274126981797061936920343068521369620943900351084473478485398420297049485766016627030305401400900500893627681233485463897657313502374862317228842987535600626931346798496685951606435908016581171596412712373361581107226241387835347260834873371879779110356999811425174255502214221482820031381385720764362005948793045937840799543811943670887584160629380652040816811721756104693540072544218984211789598183240976937191217946250140922259419388349004047800212558917146638394190461751724354172506039391243715960951265740293513286080300163566672018093806716010960158042868361262629950825194740265745744220392668611416497919720894561895355243035568956758445356943857739852834562805367511221602019531762470753918571860193503224828249841996830042796967712761106229708805162406848379046973989392914251000796206339570497503701184225595797024228811873960619731878957529241450241721498878060305823652033265605825213941229123106172819564689932577319172502074059655421944497730396776137373693990115823220775302652752576752152352708872164412315163004141021727621057528274348082650323569374280484273026452615081408844409419792784262909364195633808843190721988339086393228754740684283956151967867357555648423051889591854444990066565222426039010622833823319803331672701025360595946648162987924851091308589202809786472969606575642452740372602907376050954618129117953445555427581829418275284317914753682385935608095657099232884520064312932983375008596538729080633126056105230328873450551880875836753650707777545961859735568421745898932040346200773092247745376601483541784295344713341968792048498149357844063657409118903239193805608146249851994356717509032353269661895857622373419963905395119438332040234042530859511160487643704296673235710794716502688246717200581536639213026076706362631155907757233983582328172731973492374378158582545241165549195150043188469598442608299790633910350882921254912714696454954319640885391707256969072437693121526727135792956512947089729257076037482332963348463022017499310547386168074393915690317910357234851515550463099367758159537019629531214727769166785351652504236892444524077601260392477040533312210317796395205212792768654478228259712997096120650595335021428927430555830600955005812458745840925375455650780928780758132587552664507927991425405591106675597199241451676473454423696797025248684279617383305513369685036841779110919933178379287519631626123392340989930815601299733470193597841532057335946973140782117493142783912190216641387848760717571375041599901605705293545304748774874630618695600500862214621221894526573678738763930123717876248967176801946573127410330371079206213384357504833211799366591195658615932997732795752599104942335040502979658907022789856302109379756258959527221362846422357677763964199468811292350092299970935982055116246080143268401225883825252639860017246258640066841440987947624578670789438781814444554963955593219884881650468823593346073598164400763053227513437033357794958006260960690598645175575918471302369919459250473026767228109343883092884092278037316530284686862724336743444883923885460276002870208230913639122393111631667657132081982947186848135029324209136218483379364469886970961377509986000292151625991106625302969702392592141403008911712600388563724101120058885193588920549386561606981361031766959670828884126765141768613793686580490492216232487827501114832654785279619909297217219671117253265838882808195083438529756674257930841224077028726855753659767605869477374044945204288582795221218758439144131859847826375649125471367759241358461391980614708557146522874043533882327923336759583892041526670099123220417281563387907975083788938515417701003057809280522230474047919472787652433987416382837745531075407018857570755820882692425926873894393421093794834633709064915476116910203284229761752840160585728469612218278438018957474081498758391345085963331748315361405614128202570596115849623133470710768718730708117576618271503180921427075553169898310434126110606056400177202557448540154510194850823042175326387333524550353822880314704937353137044111426774031395514933068640169768901451364767366753296574065248667119367522880129350836500556947664046011408662065149726481480818157737604614744668092768874492389935408018389915812144813049057481116159853234939060903724383394848780617316172450978529725557722336206814221971013768907170469310040738665545418932964230796473304580073183682000252304435538254944514665252131200415756586655118297183508863396280100213676738606979277462702199859189268822616761440484790587370921274947135840250028231543048408363563785070197844755897265540113325831702625597916296762234000193608827711853916766393718304553733620120557901314558855799936551558393804572398221525446044305627774535417462388237036268616112005454752385127977456464741835768700187958014081810854051467613687633735997494329049438573686179619620650980798491533292880907716707424090969363503046452536052901911873622868014429987006284679542281378582213801814810741163259558214012276010430300108951291930381127372299610167119584149238809598296649652256609174994776231267172960764276692193544707049695350269612936252847886170192754572405305178081354284489942560000053725927669927103259540045966992078831152033080373900706664121509138246449154310768356394375287198623268837322235636725460642235326210100159986140867178877918973866556217885602591251451992419877563360947352048280227717533396653864208665141635487606500674588769338549144673548104132665555659755537275503630672646383299028655427195952072752479650565086990154548798916171596092979516630881822428547264209623903608334755142116414665527932251792845421653204198501930113667896504853891531213038089189960051240376627742266045038840562707174043015988888599254330434276499691113095837713023002353240368972577445356217370366487537940791534949164472712291979548179981871084127737327272392846930840546344576514078397941511983811118032259929402704745054777214769481929262370423309373356483127126900493820234267721767862453117396060008501269996678028209456422836792491711406659672976018528769581469873061031426646338602410229553793921876178572602435700303010406856346681298437132170476369859672012810779711309564149708636552572303149915013340425977421472408290095485223799116923232223864417607821512711771610281858676191758716391943369998646548582876182455175680849251005129095026982909204687928932861434324862109952050187372647463298877081497123790025031214379241864969565617311952779451455543928916867095251808457455173931786380808857942145709035019612257004294499140165069145962435863311621069512457661138165734209428349236307896590555564991466222506399684820469655354834948415779344800706627271626416135225692719693997786228615630663397019255272264928883892435014392462642576686815306911945260363420819072868844158735549659881811024459206943042307357733787484668460431074938484377709910279143418093558269683460703696232468395342476502266581339354242194850484085042772162810242141059184170356356442348120349735512698569517057454857378261861730987731339522644621706459767479816672492039281397225174342590433863264588443766574103838566923288282891841665447230418422285167669070717277467698263795934569272244650514140875632453546061341237715619387542985615265706958293118656054823604765817382800193905699592827911821137927449590194529280269853211488796517014948778009124618683151117182938351784313291968961125397355212101255820263400510835806329844272069289233646977178789257445200799887268894820885984462376863702011664201858213451506592994084759235030155123225205649996110393108756646784393068200872613218117366941744693359999216476540971465485031935020440727651607737212766886276937948306431043045117016744586935184106198169177711735769743412843694276683988617034414624406583977201156786552575457112291044615103339749900799234680921420672708849742706722672398145592299307375505042473289791353560128862374269378469407437989160094018515321618429473022190957433274595858373416281063679252791144011144520863058256286807585825418971492315143254477288923253323389272899005090439428440034720930257936044480726497332325175510971312514261393607224535302413645038310409707538011310928876057938738731919755457058896078519486045197621740923070255882510975812837829602324265381933623180009461115192986044132861771229852827980843933962006730424319483851821230515011501053670302554685479139725620204664853328643838970736755739063307934962950854367084242512652440615920819800384168912113605413929949996604553160070832826117481062058692989556080737147745674353125841390808497158803076213362921793371034760445014518402628385615377221628129401630800717647719071708539224904148201298801258250550330106057925019864235183769014561846453808304104876082568481104243952093002084777557109269892870803218456478017306287971187041220726921497322629274340144165492206969165184734023584249831707252609575435596393829976720069744597787404489975097254776345479046738719908738598953855739099221017748937327803887568482462975142149968760118349680112275659497025572180222778317936575846499956579407195782262328195135341856740351706533934980427846391532344828712925961951144855774600914369313453348590270372713381332241975257884857360771601707327698855209938288365710958926669395209399017186507907218239284223437007728421532278496790435378783471807151306989113685008912449528777470858436803779216695441258216062718768777523850227125081879077835136750967512867489437747003650000626546832175938058070635589888728490833807390102173821956753967970814028348865060531665156975144249501063554148042637603243363688625074449426668156629419775543304846235428660296509959720025347031612457985778491822156473543612062022503815024112169714839839699121671000954545322623331358799040084546016608500768590708901112177279765841512759561541851340940807262879415479069436902655357191067929384871123989557208451190453179422914375876412022353598059463309404937636613425711019377214293395581347407851447094645971813549363992791947673276948244862625321411593107423887043786406467761527837820982703247283689681828490619176433392420577890533747713665136052152660947723771053853147314208295201131467097229958729184351574733835910580844279092528792489162654843594260318904219504435798546891666226852065839095811082707041616095549270872338366604233006534606501681491280110391578728614459279502469466223208919092482510291894358952501874659391944182090955737858047713517265598634112402249754841170920520372002372336539223454927419108140975134651449262509240413009191855722019425820623252310518971839208037465425914463188715981440802973598879137115980031508347384579483061445351212776399083204980879602464029718602410308752761646417903327346063355763071183263934082910973211489496709725453759232689796016145653197176763832300573520441229523546765139570274513371749970911917485229647662483560648243868388101328249884047032038809521688370485942806967097882015127928847123931392732890734254564494688068447491574759745032367886968183934614123853550139150070181046337100645251596614936569623798833465309346692891119451799772230204209388612079111621087832633788125009658604748797263620560670870842872473158539749314114425854585007373132537402484157413557021223624209215073326150342545468192284672692276748545797746996456774920156923299958183806432772217395156789832669314140956979137832150094306374737723395267526313679251113209767814617707344768586379360061739032320115165961045665031294272323099059331142797345494058019623463372734877166091208841633544695151222386084164189252987864293114115764671054637927213369896265738353357239393872212305188313755870617510639729574829328404096043273378670675380861599769699772782326636764248409999626298098175615672059932427904219602515979095512953401093459159193382396793936678527529341755074333137002701031152300878795449564642095608044788142971141909217550257678523193793690605962706275036270786459258486549350882592373155927878745701011645856863423473929691672092288770635932931610797749430833485858485702604873504276499810337763660484383332999730496855402404810078738097378547204292948338546530755289060399272275221386347931669547907631352418404853568165150023686018727729563902540387772485297618279981166800342385398425064262381039170053908658584690717234021838266425699096078615632898949986647442526598694036365013794814411954860175270984364103919644748807693158419838346644632630015830915942668938366271955283296955916741786409149190721793725539756112806387699053504528536890049605860879838232295999927780489478753008552914183609906191907190181154468724059382873711990164040828820534079408714314034118423802306971204273023959615117652041291158527148660749538991102054564447294897098204783899251191712456329298101338247198799528500040407681253492186815359270265520622000805302699898349302190104393808855128945181665058913491673968847657407169681859271441785801835083862863542665708726426995948253983837779114421334643583438634222249476830710599256667767189440282133546460017276394291674813040583314123263737075148062550249900642004968858854196460638771717582249766494288369526507396819456875922891764002932810878974414715202613974696956586986474827288101364290663195770366082386737096662076541043704130589167994993273101058721801134075322158353231698493148452045714164451480417474084335794599407820022919212987976450926089097682889177687460561942239522813828904958007948066372053734183357281215956747659703609268674862709125659035044349851313587391088542027433775264660465528695746388236918171681290916982343039261019260585936840094836648362597497105720523665492540631059004020916269635898322193966386478252269484517351024707674282462594468192888915172597253084338747033957395646232289877155768351396505365779110410353799107293238364191288435153420707387156474676567289357442879576139963835538192531719729928284148541045009201548438344470856521979452697249933721793902134181344345733706794668640397153786900260812011224662182986738692750787884501171140381452682549681024050842034221359646917058041299162800388109367229489256289467797711405455874622988529407358834086707005914054629131666943913144677170579457101365037770959675582403893675587543535051593548541194300364349705150273068435335728251969202259035399672707255475016712921943160551305730392839619662188051244919184001162878334909082296748414740765913150524290166252402232323883476090103706695333919399640279808726712062365804796802856942654710573505169574105551863297852090988832894903605296025975529837510222696983950600680366549191257320887551297017452513698879868176617042933190349947366726131981790496580311350871938503698460542072162295829983009967568103838744811788542615608325585924072276018134833857714469956834850985104900169505862889772296567923155149594863428205380222269322055545360893341104358606551127505011918538950066146747384028337573650394461600627124609930946533950313661721842639979561685453400940682415406132155601690733298932760127381338471180219241500228614686120955680648475711727886105568139133696252373825426865354061213363007890248758371565525555008650442577144325282284495268535485370731086401848671427260633198199554208501092869418531558406564781246273319287215371667093613254442646675967356189569070056388177079870423167777855265878427117734172188988181587958556023712422792817294773057669413421379164152121716404989402533281184602351725578937569844420139509542151679548994705431965089688444537242379065114883458458969142374986698029625155588113886438918891712166909628552439994341139663789908587174236441315790652437307298743003301011547949978159402694055508022661204628016223705933593512737279189930125948806080273745657713721922358741703003714022551895071041730528777118667670897066915777302573201635963942054229552157282146023195391840371701306444903800494265102142149209166273283801183955363263217314961222871256148063292475126253359884067078846798055447103221720836330645252497061177424609128527135370010489860986859832514472191149564822374701322448583547671020786740335423583998982915655830737674321686052325514772723143568334262396784437245053974303419310204896567425893520794050174973970794289560525289917480673260597537266878424677824889048148944725588971592425084800573714697935525142697646187449890656659175128292233880917677198407786772655463084656253095685498342766110691703961554260026999863214601251955492628689949557638367555823130646703503369679618925057427538634831805151029372047347766730176729945229485396421318319388722854408649586450972898849277943259489421373009152014838848644619672326045884638211915750911611730452888286641037388800160915845525183259499586681449318437198350224745245482859467332148606795943665988255668138570554701420793683340588515489875042996887835907958355818186671414730297239265761597612324594498036945393744442504060404192594546166945807473439003383431068851411853469597281088615560046839081414716166640489776953747181133956057742095066925065658584541004718051416588093666936255005188563599933998642053242124910723770658615265384614683098373243451854113047572771544570537449030096209921848647270919697735260515916792135386543705808129224649787328247298482701634104607509316954749082023041029681517996834592699837956731691712323624270898978018873568146078171448022557039088476910105606616731277099531739754428502764932003398375424223549200869059902160122055601357935102440910457404286151052710940972299123677834405630051999756017476553118196307439085588563388253174768772334064649796494559351959168145825644072569299640116016349702932477865703430213551112480775989415625503759056736894425495940490741233728109578745988548509747925846708340534415452575064253614344994781686609555564009653730536797711758094727864892132692143924325370769407931183867322664597987350707228763394776749940916877466879002776232401609069112955438495001471843934029070383731993679709338217727085734897921706098480613032293278505336697713794279750465666053461858807243107091074227747381575767802084124608213364691986894582423564525337460837367101701608474738930909300966421090798197211719520106332425814609586103341122710355328049051411046645664951983850382872706861346408236800299569464538688859843622141854769394809548890464675660642345528348882640828998384042523855148873214844486535721824321905999324580119294011420700066767229477665008202928034597716845243721567376913918777102295226496257591403403073129834521397262245531506644744692962609364514789689624026914285254557376080670822830744811548232293407647178338778604375704539805580750442417444632183335791340147111658943827138437165153113530753677291073376037161780699412042105550711705452907951914027825776236049830660483439728701044084888193213284165734793865877818000257086541779516042418332953618010432284891814402300603382492119070079243965016063311121115794117843778577897271587286584735459865289574875376245573253465728933433465020109891728625376887993264855607832613007257153595186398986828813831776803087541472583247544805913159890348057997360240594168343678544387873247779151312496550888987426247528267827440511973775681824508287139443394812883618506936321075543989137921741841756229223871999511989206868930751407390602718857162240375128950734247972659521095902062666385844505725533301642678911856164255771903386705596053276229036948528621492481139991099159556635433033455901231556144680847436676513507054042651890898073253962942349972444845479224282562579338218240911896333157668684248972555791317843361835765092936347283694313199072387697922265393902652127791882236719783948474728229119853444779136799030849602732244019712402301688586326833773514140477713404435055387802970019545969428718328535056054636164219543954536178181156840916357404007607607632451207515936149800337934294606983148274593633121577552907833340366524297263348209350628783674557990115463197431157722806009800157709993592919636953612250467493594255838812550722185797460434720876475041726016080921297241561498792767508967794151995892661063925339341676884142061730105723622940033895424782161699652649236444550303447103751311510721752000972618095384949524776675521462331631917495866174951138343324484253686675304311545939137721817635110265107781002937652105672807750905559102692286338705667884722203268699066984569350305223057529017223157853160420629114570601832818842154646800593193101986246107032768446933791970391167812976655881445462846811349253988893168532581003730052590844491584093801191657104093382016218492055068040404272577256195258408413488391316999358697680746704990688121895392147583200492295507860116351642068683951794910590065812418441988114183527834811837412703906568579890558551750936862765444529639759867076305085122705418387995576631549741824370107724793303503882707894147426981396592037475731511284612084903973624377274833926307187342654161301025197729593228456946505326315366263989296828204532362979453320612616180656073396116257322770219791222778314035444507566811382679431507720931487394821332426995174613540762043836664438003277313556239318421285490975757152995196203203822658749118070005399821771929488977833375563245973077991244589215370188725255585319980530512371108960911326798314497202308254454626330043431042131734074553528207068756695198602652120219482501986122015111291170497364012519842097321863099093050704452315342030047006636338811547079411220013933532697383647887198052817711272543036888171004100769404068953257565210576955482640215717222148442014911966609005907025220415659429765849496646969404087790235593943085237615964448768095054150463055215833876943433737065458579092447820082080674567912272030238051054121239837901899310719913048109660766556775485456005272654055816854595733395979030317027235366579956142590235991435831766468489732557539140339132971199466982715254418352046755857016161611794378221256494292165238163894782253458064546269546611127010802967691185922239668947173640434655445887921374485667265954798043276633385776327900025642051812880907872261493271816000329426335861948935489838381615530882743563762825485223560067699391325313872026743181578038711786289447355298327732975758613860925645365065975728749782223034677569475957789318286014391898894261447784335168643759763799167910273165748071706311878957872675254357525034498069342457143423677173445668980576683064658647668038929243773966497730705298278067133362068885808023706046177875875866068714371264560894426017972458970753637248131757644313553265932174066960163755909509883668418883553239629391310974846574507776930673076548059290727250371277465803469786944530073125275642166883420811391357282769980643858723504458215742019062586206901707192885913588226201038499422918397979509945680203195908400078941913231125588754817091812740224456360480436864841613327982153214979916784705455950165004381413415770962216136581700900649491670019066380980734234215502628622611197323609486355815489212647925223887310069193713560658721912370178303739173739033884075243513679427590796539324199596502966240519753958074051425213730735537991188116537261693901535188868274563467220318491884696791772923659667880255064687523092489663531311735580567389405539410850743028326512804832130020021280664688017503772332995834125239616012127402884666896313503505718952847448038645608391120124670587356064699408990781009267520460569100037520482719913963962197215629053014478255529072044348964190132180631903771331648864393130119793633281195939422837588267203565792704693312698096609068211534425338021853781802064538235875587345193834184605640707328985060975510083445640963227057566084812520899523860840000964925364721048070707124913602626361770719880913309475161342033444595914464483994505809652616140262851093810528802334397225597517202593713432978158394535776992732184935417807643358276972278949649644910813592206507880920387572833468048946267457967973776303982009960552452153250824826426634752448343193788515164979623641672725805322199962867083633895359644341354452281326717085903916436200494822558703435074058424832676170722008729843471883912819381669892728069137172249405624643352275156130216855143610779904076340440927620921817958315428266552436081411471237720648918676977054071156831615163380742243362604352277340697189646760492083360395660928303598534824158107957982268888038124504491619280875665247687046988200142612399725299522358216505618335930397769499663777918136914570541973962728814027093042714935151290180548027579481109553706414008884192129459915759851429988749169975858302219395994471204642315332610995501674236219063120526173643460782952968778291346207554551275551592629460055617035311632684550163215701771406860363959011537198122611093751059945967125450204513275272837477555969934424487611477186692687457336996023465516971289689160494734485356957213692359039400712806364832574112451288617134801871016855600469125174302435759549781977726134105974298055331781254678444829434673264229497136217557189763287044454353684364477216559179271325676641641435424991735971706481876538235887701376773230126351313355878171576241825511956865021473713411533971774437372757988555019054266775480185627874208681058031211803693560708829966317495917450299141209581940588118259223058551032777607649138443977056001211147859853517008103615107551876463125675466165477629667560139135143562672612482263160698076045036390752864119934782495076692674052324741059579200136437085453298033068957859596006861741451064430260020588453462978873174894443074469594049896287973049367395174537816270885359506623137177238742576575702804281069717829750641288375362256047467299323566081007617670895673021403736222020851334942618145310387850487392427188909779876128651271806168972368845929253872942226459135265372770110592691511079817148510125936935775440722156785076670340870788910382588183719863531081644622482462168634935830718074646406678487184654060631490159049269815727398627093021177154173257638732357292908645734026317787804556713648491372723076394208117289942993735015343337398620484748369604610462180185749380725060602172524502035492394340196180328987892923640657117230154625990935340254934997618046796640052345596060720782534976159149078828894833439575022152941416240888599971994612021120004596207710135959609785964277269790794385565356993144832475708570682475233397416384659471390498414228045241056420796568690945453283229699335367677961608926442248444348303052684361916631497842060671593757769884874739635866257970376303900412966785678396592607719370376556359096571522683732826563505313317248531213125921806263298156913326751758617169177912034657775652393692717339721584253467483186729659960692416684976268142898745454763022342276250092771128333651844848109654848896614473753847131477315088175908761072675967457871170079716445909775044453909103490385508975096015315504883402221543388440317856786021955465731908394467488479066241410464819943866036240570639121571739571526530031170680533722384204615949853224376692888154499332392100637799813238035158151524992343164948488026859992401888755572122457230172514813006724405328024354271295097261291444251683158745187618614684896925923834196809974114526326455189797767567733583646091559095001192659411101358652122127304123338185714755130595182298277236263739027215701704597035258012795639406335610048705544593328416784499113983107665002300386680763804092993750108653882247730259153754971434713534811335352957499852879108005265963296871585009593801546850833707119329923498729696872810191127545086499333388862287157733877710271403019928444797820544281812870642888105117661624502938658591142418893211170354409633342622509956343984984788849801544543734013300536465417104769941732950580716526830765238547749356205169277806514834687026038996568256276609241820377914879971223082701501861097019637309277569226414481556259578948434680538287983190660868465562780540260569174971805702450705148680643931441867848894938171042603244390069174766953873074160351242101211176034005842265507180510868235189307424650842125215725387941150723905729350082041290103732501448578580535616388980003473036547991838517218115000425021161248536343587405081904731015857379661437690090979494550415168701157937756875249756222256261974459712007118618111707652753121234611429031188925516585848876937127813081614871295786165529139285316496610989090741932398721399467217351972851984941933804440712114419548497643069585229985795531167898978876770911039446737867819444370446100550760519186994289105585261589276256355823183072311482944811900763863788822698679526291835517159019874871462185153279992409919023569847619266519930472893395002761587389625199976895087856618193737863542775600296466459870847529748645513577557107213863792189637597643141258426133480962820603945954732912157817938848260889519526221935758925325435344210637582523034027394101936524000397051684629770470524030712435462849362657680214002012193442648022139440630302182136699576404927326479539012757769885973930144519497574819862377667614257134535227633518992525132122842561017819675931648032175441194518178489340253485696914218696855844056663025493911257829733089176708751970464758803571808242920098467988524186819485571126740369881219827780714248242830773380252731528739589473185401074589690789334354512059834914256454223701971850300588413979687787310746313639216508516343895362796927814754966387996655776830840484902045561861608113177168405285126257135786347803506444954445097427174840084564287419847814622335012643517682756098260987164820933322011714900884027741264744859782626661852549537360804239145356317493194214892127210740200390749102065542552807131689088348239783921341513623635859511409812066014375530562012194817945651366031012539494250119533090562356750511880186787733120989180089243380882184356328505464248567639490254218348832010967673301528241222359037296004727900789914637596321424793378835719919539114118936735088304383410217692349097124906193993315498739556764979565670283127848961315507974539053844138273256675205018000411160594507739739122021803900869310390857567653292017022279565919879932802108766340019606116059534144956652763080351879011915948231454200311989744235483750181897569793274534428516330189598288902220084401309533348694686555497718652068184079670611239425434293030983769643914188954466083658812697245391283334108730013072008481731687849212299700349579030693497073482053975728619790301886924570171529811581921345896114513601311783298208209862800532724747946209353020209156705135709065137881092145939720029702245480704623273369316311631887901836281773466504758947478338953363488870468431329196559299339500039609057876893182250192109865246950162876308917256343285295291188088320913679014411034436226328373112073190976833093117606766062034697596424203014746929108954642504368817505770155621316053196530420130745199865650865710482164779211596027998916442581351247124010066999426701798490694013127237115723787756630694129012769352141824380838436995770881556614852248191368504185593850285354088780743344058347423618312015205071122673084582217869734517166076798913982889512248943949565341313887259263217314968483386628696647993325498681947413040997264883068330464031843995792667652752989083747777792742876002270594227127719366908399407283693280567069390812967939517608734286666923333900779258454186126732133747881352171798822535243300860236051564084892816028351678012840708830385737627508502922311186074918373047307727520051579414600180377197677393327773157113958296282771019653104166185776040588522357206366835122446095555390156477607911572569833240375604330407073891819539578056281789036248628981497373762379025988659719398681925032328001761845091639483710464539118459532247599998094426760465834949991182259713550721503001455120778704226786019417447098900833055790050149481181778365355710406845858501722875698069102678726753522712009101319519150524461124268276607098318568086971434891930559986586966822408062473806101141209683937535390697191502572447566556984605476721023438941142501493059021642660258665941017042084030998755891810920806312071230143397292653160998759966585773836441674156956580270616446985666615535637280937984018329728420838931690112796196048713658856305566774910981575908740486020229829123650253867115791773535479272400162853052156698544187288334248325455634868431236671728023662468088326768680929871984075908304083485578217840913546825255904997299928989797745344690044436631932792079929994295972095741408224971816638782664196248926590960428093033486834727804392339646720233271647467790128770257408344154159025274697472438318890005103394357620796992474603938076206042465834243543297190738515520347988348268267212723014252895920666399940295980521958831603563108082690892290109067206254661055914722888213944801810914494655353383966808453597527297027019839336996057361248217372182696894466819353232942377181244714901426779339573572974818919488997522368359054745954880973228755213259573774640621895807424156533096797564318032508076341315867252380673555796510197248378003173954764861644384903259848048321570331282339884167943823561514691759794145369171439505412275376532099976281537837960305190257085372910688097026264981481188972473001694641211700706440530756478090844698047250193878666807203064380666939968257616328708727016073879053463164902781019120047377252231834658728124858433225792866323051878191544569202831723391113080269833776194275861266260990593587791554991790848669863817567688770174420256287236239703822591473333691550424902668062466931218964965913798903319713833690373158837610851164870144081426705782476985321199119243969073943400529929629690431431251274094417282363717522393532340491133686696508799511970775065694877047593475583331075010039338812987661370881159698601377765176830443160886151902994402558496896191167522324881147099621251804449429043735198276766193843606748480443396780396089447661443649648567741240150307138664683384229833949881861503687303688147386035894783658486024876429685220236431940399175782669456846094398480116884469351109469627944874463701088116988479752270752534664830795493461710042608220610689042170012899826119216978378820663417765253176430065644639880394463288005835370726535197229539578445021533088527917259100922321922587752508194683028973845162790251392962199096267445880114476419601587498446726486635023686508925828447055809165671139732093379436214540840208143303300189752881220381757910819676979712340275466968159575742383860589509465460451371750481393021476661727878627963888916523587694638821585692878801021794004855095519862190118145210034265649098310261006276217882293792011133040625269333749646646815566634022412324461510786657601642498500970090746621978343440678422641955883705284566723135605965866801799568175980782860417804774321850195832875294067913785972095989928123303806021677889769860924265858566103815409813495548998398636635078572393905077147999794899719254005979739961002968117823590410034883686568961122076651620200967802265269828431907159345946068764305315918823087439849665956619524147231392426668466273937147060404034622350364104783643825474453243534772138824729825323245494824899750074323792410235975597931364763379813170541925213025312802476579858287820364144393674313404503144847056651896498607486675384340839163267447118106872882763346891042300226271474797169237108935476043346843162293003999592379952438773011705524293221676324711386463068670948562885758264571325353716170865338361598711070132072154195878880358169260455759057347669275935741157113948314066516752753606070814443557326893850125280507912681133467844492723460205914972943223192551770795258839046043039984711927024704460207891430182177087814772062614013205406601449558261639030731315063111934197899590510472087017505127742605826032853570855018957006901682030041939819591243077671159088710080321003237185374731039951553826570927957652862883231400574694928695457207525265163808759767218238631684023670901930316548106544601077979983493797199925546028672051809343635224885528057017315218856772745005465066669548854767409892954925644635284490970953662474827602119113098038066398609245477809434643072699730975669448389155909412373521693023363228550560785186009686734506897113165702541215407461191660002876966478597489483173235306365201794298914322040565367690658270514165010454142985578025864133329813738890523345995344769565675006007208235677538865115953738198064483067616427879751721011536179470223372629303011974061999101718040317507844416292027357021617020768622157551184954373236305808573175835791847908856010708321961153956202222211332096945695076834031255068199054326680379332722508996348465577237109111165451621286710060364354002820959543081365029829865675506254872285773702881190232829449984363591093388402333290035579799347659313657646403494106611401066731514317059938115571468543424219181597814807356255293281878520956651069887790889630219100466438721569079514890049137316666347404014146604095751726377360428926341278536421888207701575327335182458527359906971504195994798395394572337343318534269547341139547684389716119588184227774373706232018527263815680689229239142401998198974787670936912503701474091585971363812140125690107338662110259951241294202859954978088864411756428122387816486765851146311289901320026379425027359142684599996527293649872186445948019039235846116627800190125958832739624616788003712391876949043314356122768856039491033207983863753556091688595888509544095574896226405721316100374193603391342105331634776158191530166941418489757294194455718832206153538649063225591025042167854912653169031900580662716055235806653161176583582896992254251006929165931027160971269910784283245243123131861420330676356634309786625279783207468622913430690780406403241308642375426195128776727318770825027512685822552104799390663978883266239803084584890469327970200125845837528804876715277513915596940275153810812617946239029935301051471718865253675349360991729632927710368458495313991333702241102034091515403540215428746466633677344780946803611957355708584044341696048790602601915206084221764616917591898405663788573669034211430353061333655373168988477321376400313754705859479168066527483022983632747601638257441702842546386311132965491146750460989636117037475494592390932635078296053449288499886942039897326899770613267733768337041247811897875529431964438183263275125979448419877714986560682621994956589178254135341585515173390835815186637166227800582005099904928313575119563637348350731906121624939462829897443822865878612012683862750509007368025458527453453832933633320841166473661771865260346243064026314126644142688060751396013568793667579864516081192135971755715668902640566419444261948176202628315248511472007398641077867061396521087783842863125808875168405645194340850814666276306094723246280721271155542275648909522145111255541907667898011409804145670290312860337833376212442074120951156150759705971982735394921256586573859041132487668230872052552849299861474918060656996585689762980399550394613228673268953544426584186452644461595661917393503593551717248404049590551933336367941730318707754515428807615260517914207258274272463450502740196287431223730278703222133382855452307754146994345268417542643722363225216791383881715649858604906693969529817251696520560120883048422204670865684103971460168942987893187119709219950292818346393415322615812427524387153248342879877830666928080263827747079418417480516133812535286937769628077061655838764454327807489815610938571107286661647594103803744722543395359712483561230340798351097306822625839414927316831710815932027754135030670769595077719038139060939384741736526218116195801191598105540070087527679775159104434163940302236138315387125589495600280563840265114894148158170035022988588753528769690437692611556850237273379733926037992132759617832198532994669953772241357891426349947158840247036165676803182804479460548649757840485118362256469555183763450097090362109383302250045579920973236394330369433324333561360369546713205274264352522543411586852970176526377888081429326369822073042622831082500108330075451267904981424794827160429083406996173850454873358167328229239598123435620159952731331624142763391297870333956516350896665246008871972141481825813085719744539223415957775582318117764599780181856550379635465223170245935867238955686735175204771335086341656438042789793883564742545875104055290607013252174462095627813761861412072990208482008127933351419647279682377699425655131566746618056212478430248688975122487146367368047896889785990695058912015643797355889092214680740921297083788401036921175093355156356346166414429167496145082541732600967327326259909187094052002760515079572831510139125098698691019443470801313818108698897275457293471107767316827330331315084096273460493026943318138401800520376592806972765022178704107448996495104540829294465927798442598184817671537911735103485072862096074929485564205163226375563421236155004779070946866298632489845397871954724387486780287971452689565493170133213309070233090500557711217563298248650812138049609063383209874857898424606167436232889779622634005670692923678007142770410995391529647619077642910942662889833346515521074426595237245898605627692780618784750289535804362948015590553647041078613794930842873145148853211741956533796845934116705710764753489325905151992272222364920331568537419911658361360933766675614439353640075349358070875290761423912624416401110925736365063635431670628337874564479659115314645815470934630580026507625416588551915179337589681057223085345047883200464074571995170488693326105662013106309809160235586786719270523529562800221589500784020110827810349944056673705113943889647424792649842734723693181286595119444397729380817163469529764797290150203283887054140854558550995009341894413535300134006064528783909017579266207823690680339188357923881689338497481101118535542654108782265587765798076909072068596590808648810306796665540997817154709246505511762591573612641106000620140159636229128313799122949141929253396616243180348605656071013740090545908525279038225688404837834327061830889754437872970917552217169320687665876679301544833192035511002665618511010445993181989622985416259079520763197161883917724742325048669024657923457262607632772974976260764807158675421416086348987118208990225057073909000693900458769239382705370608158164922537885300024483313441686937757953587365000838577922957113612980696417569963961849260978341809535506140748067480340992776101583714619054518755842154706329489100095076281788766894651912791517869419509430959336533793849364264755979437941416879960808619767714200715896786877322868563488105224827276551883845067194385602105621384695610513203159716412771625716617079961799286333744783766947452296868438869319639287707134850370724555202823578817967370729657361216078205576260181776555309220213687971982080229658896455023565842708351146260912860348900902424936045267365828166815450547989734753785601686139068903012239890757087218940444934959395909248991686155973079894287112706061596131906639661808288112444293787054679115682820874790507120975791164312958698734458302042034025990392150211841829938422853324990265026851834491427974707225567514364744852919861760450156805447727566696945158680708380925437872842238022544889112875589126785194105405145435011152757571325905909955555339766971226572523466584548679065429993005615727740709140193073428790737880082194422019240984208052289854492874066039917812020100954029758134181183376605232435483194690667860161816207336722935478950928318315723655813024124540098217518693563570217161379706832459890019188034104517299476073265352965852573277561627900541574135232301579466473559964098761479829821410673211799433819724006726188358930685727679138149555112469140125986418047016764199829209246522288382381441783917385707141789314981598621562436537134104875703377398446312602390707115725780490750966692205314408975145924637526289010794646535496619926468089436715432103198242266543339906197158896359987312598738768528097903982710689978924086249217618190816157233112169088001484144889521994300320814878805032763958205731023282093288588952746009099342182566772743590611846291807424853878086444622429403345414034290491568592938725950032050762574264438358288153831059577257556123229401865410459391458839567098076605602528671161701396979733268006480671387283922968357890688695644856755583829032654960446426052037561885640034962321520922344485311561673226956283050671830884507908608453919662100736390145916963722317893960450676248604046206844398642765297683719186983800428025942563467485240745209040632921848967756289992515653224316476477264434888972836791321450129104380952275985263724634828287756079953329299131664310553302020258899361303983702785427683878187635854386606112406537856671077104453163878493821122499382192724853028807934078470081163137530315016751188756572521227966423161475906691321970426504707581285874214777570015840244008551022744471374258155809702597018567877314317671687209335851959375857154584689345476477017071299166758361791331620684280559066480416741239666524588136279466488225827555107536816408188433509807532303153280129350248964944412977154176836781301614498667748711882170674067988557922978465916686363936018634512362208679706771489329198639644454484177723567395077328508231263246344849371710353204457084937242975199621260039719632016735383696202114991123060560765915994564421596603794668019750293080536205999092565586000450426327261568728284702493055326326055282603423555824232425056028963012195818670847069421110213466069408917302397051704949704934717181990136127640488667717885000414995255093186827431482915671087871129109640694387646380329459044954162422448614361776903083493921779521966124236969764513461933563169850528047828269686224961350099295365992407205653332759501496611550225839226864327410560494224581688660190911130352652796966609997231029055767460872067081208755463356058641174833430582283636344850599584141092395694236494807467764541325677750724739087889501849208339868274579864846214454729341212176656341381899213191004062289824969146046212662374035374935658193255167110497926528637122867380934068960252913658869390627911097244492285494961720890090966985774664255228509642749265635234361549912182615758377060462811885515646976374883241870761204855490402957863730964911162709029763265065625511248414128354780874839763602992243026943326677362872012761074068954337061227518739154893812991914891489740817270899898936525098369118281317020580539167274123947092760585605599753136928918551899516148066431969420028593638607353317430255658958332093054169743406040056544903092268746425999211451579298711959284541100174478749541993142029019625433840110813218402700062752811506740862479072054552885815521132875632201418741171853732171286339169200291017475747610605824209166512828352100432919789638442881013323040282434114549764972441240994393539135677460628125910119744255598175862211341088099390346609559440138727394114730569539377562772123145512025593997399581963875615676595335394094199872023165101488086209553441685548500597302006432952499355735363995442302571192614062444059551487624616418522333938306505515588191863253112692229735652873493783847969410157009339921935333898486794026016895527528840463162268247035103377042525116677220997599129649910923715030899589497912672683049839648072479511190166603839755840533166318503791378371090193521805057816788608111463805626530742890861449451631185698610666484580547243009629430673734346230747385409718265331534817927991464198192668486666461780852224021147986403391537755685298079790726837325795076249905753965615754520345854077189288307223412190670388786578226753274812847010227086627744062519442008014410966770564435137939727418043094023248267614079300400057137813871702391638890830616257467214640565551700497104674229385723506752440747898586199401821592783570242090203375467428912684593407751624415287678143011214551308845697538989766038965761562952912266019783416604677456571613240402679253696853190015427823151504292326990685297508716496443636814679074341157791798957904850024437973135724119826950489664592411891862753495693285762030522160046920512604970645962211326818306339255980768393959426920190515668089492412860086757970765523562865566488776315319413553615914144575703402413489664825801826199422640565557274106019154690462058914247470980457363047530147024733051225576150821479001673526421328656152447971940496695901413496283646198782685033380115645910460766773423334162894889015485597967535923393211084811424643114389029360878840590779248456326207870808355383375104810039067636871761442755868304489268740868020248859122571491097058552355697266622803277825441950451308184846094104670830970303494982735063872972276209286627687264137866026122086112764676740755082224659206151781171894193651065264172982982814318954549174759275921452734129970118861889511259500038717053867490541697298229655785516506828524673325132796705099272613671276570204568099934798170229045083003398463521770955439312807671455044287067797989593808119514654817312508562199722297054583389814521860982472117926157372185905657361134733863175600423311573189018234567444499017384805576395039925319587893428124390057038857679902539347242806554725173184114856619791263259110572994398501209644940319144482115474049663522493561142658427097461269312028252453463758750238969843275125610324987392501741167422983866833921052216989900960750543626567199096304945204020117678131576602213211387426237133296805610658693714926461968977868369850465149567354787944098293224835458434629113443504098932187588869081644473346937535437506060181842484339456763547755212941759245718209620319520126310005632718433851333882770889238797528776992144832402018287912641932739429271568854298868438778456113495842706078426538447426490060706570117821399472816609068855840387560908449683486935154231572688788260139193394803224265899761965744648140005490482289308476052970447141759481034032905373988620543289806625148853415599625731036548608498172923270971010532188725368844364770808629805187444302965588793685033151674376452501046015211566874339871825989558296788073131001759588951428947552726679150883404584956031059522233348036617794131153056795509549156585230606655345364563018498217187489495916500630659657766128728932339125342653196266056152474742757163666914652984786185689252388484043504390446347876818131880090572718929933637074371509008784088301537412004280142975129990443874370435060648353032356895939922306630233399863461902324349762457344187107292185590589549936490372374002462584196877603134623744176612510095046714048674196805407689278258738231843376468622734737660508971890653624018842411088970888202592891546404640524933151217891431759804461599415716735335803818282766285333672776744194774529641775862977866483163176733237684939914153164621977601699033310807034277911796721205344371892542713030068836138511916972402980214556282973272646664628525711972009798277937238248202964110470132440746975218925594586679905737352311678131493078771168488045819006947554632716542100059023056785450058204265220288421825634752816456070649936518719895815981101232011414273092164565358512017935992191597677870975100534204776383202432244112056743732707389893569698316980772207843892805797332253625069960464457134774495552210965501089792261182841079982311930791624479825005017482388777060277315347526915138382561981236670744986956905045336437029749871390658410883278302793586773533560152106070697912661209536751929086843513640061838375305053067915983821063828926264234848030662825024565741141439217106916425825120161039855771852755425566441648864321758855050088205951744055340417790647657542759846053592601497711178640891399532772602230249275755266227598216357109389257117739824574871818065486548176063867872130484994349418053202679132177551629787173272142584974988884917187136037022313859315031921980723298277817779868285492056016651240943167167672825905598627185156189340045759005390337785440147501036379544637064612598807532322950539530315601438295346561385726442481625444746550104268617475813269628497358637439584304194299574242312184383328441261011892648273463989106378001585633088808425703092101125576861172598794647192723208607184900916428446101402390296727391653492441838168755161943171557268078488570230024743028959650708961213915950429127781904050220034000773167222639940140298088382086651056383981753574095625880977087521814838232274495203037279691797292440614715127607274722907303780722028231036594179081795103904854831854159032697399175363161704794138554513614656843400037217349072988781590183154499495968988956778516246891070901967757034684712743281500519035594740500761121831426001416971506924977760801628016867978036875010591737280464987936620199457518733687387387087662923337068905573873726198392445598980007339861606125645504495419968323479579379732863125873518829343713985102814055601547804432416834897169689097694647504585101302025781558938776720536871265579816664976156670131168378515649961019132498672206121327217579284888295379223326828917544712531460721042970729697855082058552670232422627215605677459535867445787909430311240771136281714454912302856583419105499060961892538575593281257709225627750767320654699859033033889821835671286979287778840650504616179987089805618027918691187412430227898303093238488341016608265021652608707247519922632815215033149529124135868327345512898424422609346715912656026580113870762202805481672560262719396450819946391923724280163000565882649246864963576755751617398628056099363730849028143153153548387076670061223320173647869596452396436978746855572780615553385179575492575546513705181397635409751972811501441870217049833740086317253765515591185972774204130251708044312186559134090406939356413152799432457216495434415847587749184119587306706984914143137956929066189373670658825616865707668299086699270477366622036202007429609794491769543533856936366102647430958784477183021545156807419533901872374808461808544907445310492098559739850122427877534749725891524220303802077819129265478158629928246832074609671530006983792406609185989463109305608014614641435792863203862757856472763082776651012070883343216404293880962037133331083329393273030967510186556084186401075264374091140909418864196245985117244721702634698430665260109796999825350686248250514016309003282449649389341842891124199415752703849948060187021395975442688462347413564816817621704461979972713884468253510292328841884845563002327734247400854290623226757006992105375143687899305405624267319481208820857012451974364396397776744560007143691292506590149871119479431977827286633902902633628439666034234312441089841885095437821046355834992310830042116856407403198067806986688688866096334751532718999316514305457970899164637714690454436581954017212644873189777259783413931526325466023673857507356416560287399671964095213901152171799567049223625632523616785511162624119137863706319039263105194139994698202390255989985157477811524850315396187120379141603219775004462947765601460496378837919696271281682008670448217435078051035483388001828700620323521056584070496060973312885345081282681384150880751577430199796732192216268035489283141061753758044488679702510482038708772788643438060540179763288071774153091709838938612626952037041607829417066847064661816940515746129964653138027403114196909405458087837841535651644275166014864925404883296883673396825427716544039205884488053418381921984749809430968670178202612011084933738107424115130537985718399878005905185225270789997340228917572148908961775519272714618427510856019554672771003542586419841719761389446538807722449855866922429445996633640006396478300369182547659240773372743402877215234497303654675045624319442079349878271510483709507205815127731889078379536630512779120178351107405536259797779486971818615587176975346144792582056868937151496116507997135356092863409533663156871546014340675200212999188099896931187547009865466100552314207706121261376825010365858565101905008617143920491344344276497591851663378919544432337855808263297410035572291674660258923470824602554357106785482871197763126486252145400956169702124867658418297552289291859640089189031698776041120747136053083397116489262229350312028709283494018568496485296626767446037777671047443896666299841746921664288642327524705793678767900641072838977853983818337350098960036321895013994348146890008802155305740237772006926236656368526116277151701510536556406205867172850842586267040733901950239611278603345252366933614364864427843192103686071017788487843640342577340169234964872835795201705741762027862522308604386364692953397136704739241876125931626594600997833653131466383252500641406079696668621536280371342686517574411630577425596111520903983303794190085254547672305193034100602995764925163046006102159401240892472908891305630520013371968365978042242541826929866853700418877175441338601879528253954744314655285573521930625644512772794398553467326546260721250420121539669729574679469779983875947950229322772034502322773686374103640043823859205377560258862237738279319649398149313557741578771089542505998391355237114619954374703139020614760283572685239688774948603171927578440672969185985632447114513266022229607496673446435895088161749282873607044689377427027602113636033763374928954324594794422965897545442568587316788409026769717082995997767072778564912326529244221658491778342941710701544023787761707706306947934349537686600048866604043116327163206497242904214968157833909546895823745639381693970172893337053939883621968935862631373390892331675721312579879763331487248025075056285948215286133741631410431534315887729499197319319462348289929893748763428056691221267979172304995682372108069743956032483307801309602777739682824222236399549847395849166269602659305213371129172130646568992316808549293025120656860329977611800490651770398578689520285804805606914037212059856148972485068801145613853444656018535097488534961833889171985143289752901657078505367375352752855278608216040510453282255297708756634939656297700726740714497131948830420563543512741184117235328988415858189186695000312739003764574495844590604490181421919657643307527888906671424648963133336199959118134182198084596398535090475569438575675337928415530832886533718297439385668331189653381803690442717645094731761650641384708311943162980911690983195081027983719383526533584594014366082778421655672292455818920554012282590421993662684968398105374259449364880934585756707036526646987955332536879316501238100293932968693152940467030415319690138887493252737295858488922581667946217438150005139602701632487573300509067547117581765983607205813364150686361090056990068978521520223122661577855765397281734096270414901713717190321073351296803288822111147859026223603553504416694898938447366692259987368977602838671435657185531546857068788257045452286675839194322276254855670240315085564758564584722313959061748867565389371770163200065990511648782467558010411885380167395595225840267260190796887355611552154792878746063525513328942626913144386895986288330322590800869435407393071761059629172293913185095599855048449678184044723156160308776466347170045691915401847262574989015278603214577016444410285957874951780253945006060120611272428068096246097807437702134028551281281905220129444433078264808549704770108620226494873497282089618671756576842357360247022425555516335651929777779394246155113764140371003447944253459902219300102617648331788928623925846232676666713586875238265362453981525760134047474764659644804398956533530655865523966259885258295630106611544092342773282014157053489202522018719323287123871783793726316333562688157420741195070502627059961842810571922114139364365876977004884698496931035297648496615946024510483026691599401292658460849639119735614080896271199816697814308142138252466576328999772326416708950277864144404941198168520075890073034631990738666361131736055340646966401121769582517853700685052691477451695732881473001665362863188811603266222009099465341484497541788397415170823993879408302062900225992431183208958587682901969274617977789055872477270134469756353876132495894351600102094840166087023016337645079406505270038777179206563419411063006862078946282829930464725840940663046738182728988458728951645661766491920796617720320749817613109876029895866255585102827019742266964614175873115361643937539501858164065004763402451305737681610628064989266930376095500243827707945897737126525377540147774778732089053458569698574410511003039080826501427156383117871746623148477492125519593769055374128365088556641835243258022828511431311575889663040462652752130036442521018804031937230418913454119184620775517956395016530174637515182278752179089687149258169914675500876345379325968159623550878250560528749785741072538257598475810160919993413795590345634564129955367422672336658853854196661316107261683605608231106806036109427780131848637826989713203623180854906840310930898696641849195183405473615370802549144149366338942070235918976363385769389161487046789718923300439625045237139004977340277236757837153477893614408392424621455424852103124255374597613248920633972689004061773841391540722985492180598010494948191921484758543655077140986769739792725669947061086456079529400397184859063400089465540941793068110128129507826782519848797032338740502653682420550069272898384136083201244371673113475336635995903713212599397901529653432711741241665607593291491897880865970035670843458250384791392026204820076826156122630513547945241889689447493956050403531396566399812539173635709915021108081372900678507845299917292476719564705068891534910252032478888179871631246084834818731412625341369946072842430164235692674573343760239845725598152230643885001175546873313475889381008857543352216097654023854706005799631231641312102635972034241084319475383486405510679937852449806333621246351664110437524290593560246144470890604594217754775575348093055424671385026061186632019250940873061346981637126674093037786609476060704493317299343393881186411629896274706021266128170229991462452170139221568432727996384956055249140293811902735485479123377882932922271194267017600042480459653037250758291052402717540212093572158750123330143909576735068941553640845304818704890960547912585580901296979733499345439118286514231736506638740563621724036690643344110485871019467538127723477989268945978691837645065458009593794365723742230474130227365357152808605191455766284738545638179589691658534806498153114734658618622474153788908909127333823011505925111516971427276412799084145626067929272665532872778755650429486128209289545723835167223201994204960283844888162338481432623039899647225486848465911376415462893192315752798790287980808613430659378682266786565893296119564300857696524421248056225681129861668816556266190979602372726051595275985706990806935169920991919973735349198600138595815217661100912833058170046461225125859628651942619469408445780573535017206367339749950889899018557282571046292077843238772235024315698399708638604965615457522160558077367870983852675161167688592060739360155223624153729766716868778783125888944695710412500415463521640345449775729867149813413994556869640790247558354851992241571478109254189255114045647912268494150993316619694720974525920238932647901732324175040374541243690727206828988262837551250019403592368774365453674261725253866207088758453165726947902952440306972532419566275797673956520924735250916939988227200075646088104557563136588147131671255326377991420370862193973514716191536599312147981947537994696438564705870788339364508282539703387524295133075267557349808922444946101941146899065383162510937624798091307105099968112130694259628803795339841082889931844960202063333245675177560771296570096318484055389518563419917361690278096136469023984814166149072077293199156570772355908644259021835461624218012558929422390537519091469864530236082595735848968112993252713746828125237562989836348115802850148385674608008741944315666679419174222406058354249107744059925321250089063581757552575531643923717375497429369141477365462035846909941291142470742919975265935715487198089766535713097068791480768187795482410617986403437143321277422257016371590557821938031307247194758129627481668827961294638482931799035311392604281938378310464837074629681891412130453647112013534075180488864194004420398902879368515496634061591902811050370993779137278835777295932767003418634163443766298849741089859158872975711262374851956640415813262476927546438267226727745562890425047809630559204838464501773213796009346700966194754874549043259742699991225034403288854713144393012505545505133445363478587428341937174445481508868429463211381059203878536139149131580090839254463227952652111253711158673327382250853572731770802621210305500333333947835131527054366638578101571766193762228860191150959585518387878395481892595064570803392122484147719128031092510886709973974475010612165005389603715332118997000818968348787452835398723646793713049984444357657595346957925364418076895575196909957187222538300877108057094558549506822862967146587458608876523030720274406351859360009907417244509923935354805962315415601360432994620257338888720900754212862346925440944289057457253349803715487450681172424781546462832298589953007885027899149442690261007035078988203229224893563476363720110622646674872619007541021921155271057633526089960064231781269197637998925283225749488629275956162649288356460751372565940455646859099963400782167132464171003374877945317338293783529496881546645436639530569499233167711819297808536884456458677675326383219888014035351184501404527677840665384665554401357010163785064129348537805319522565571084424955290507229661186655809988179891600835781215696975424337040198483902919429329855418866213844846582757826294793350364758127312863752636338364089089097590288182216888878665134923688726440184938725302852354620520046649357183764151168079947645890181850709196023104151725956498290978436198644234370827389463238868622572009301339563317278999894948330781200115293578698945831852787032796710780528190230364541889176069743273866993752009066914623537732114501884990260222547022809180697542015965932002466101668011592755990266143864247506622806270358176605660190511683669354117397748528195976623933048008270823488796911290673033030065219513044012547311779550674887671438818183893211240891729610660230780353699187672540653344855399038172706057201457473421482416869733369266368890607700296639271560924909528671472174842726742798724536937742037255611007941409088653725518668752890402699743290751218047250333659960134113870376732023028205551477263073214168463256208178299968711691602780748424311169885390170533500679454682397825269244764137627795418036708753014745402875760926183924571377359118441846496684337558744916176836599784333621841557444649966715490037987001600642283193430272323373881975364833355689494318136055696401651904541912411466368033032670186700238257767367726624540422853442479774168648933642457101333643094683243665898759265064268427370055585090277427384646121873746147962335970685156954851960383983943734789299049796038088339174066412087604938539326476756341140898137936392700965227343467339559808569181876416361612935321434552252628327220184400246073566262920753859245525586408669909750456255969573211581955530486651808698166236105590161450606971899729319127710622383098110519154742189664342266325340316684636975952325409223045454074875087611954965536772738356050760062020277052469198994785416672994576735428371372589772020151686800039693511991363264650160731320620619038222136904801139962455396584355430424783258450268654190687618656268739345792611580573859054931561403337451396463797270368281894141160703770119381440419205694943471950680248214795002151669291427774943584733554175909453470567998893945786391035747317298201515453141716919776253040949760168675670419334688164518113791919932585011121963530959398311260030586296216048324767194505042740329850417362416531335462491397417158034784991271507839464648400384145114549459686191261515026180052157432234744153456612873820824056636446558124859513553793803177555453112443312490648314671413508017704766610653060057226918105042257551357037618156789118257420637962716101917996180378096575233934023855559100403299405386297432903498686975612229738031589707190837758980200619543414633161547729007658456955131998681504721902189551522147044221248505909701194542082952541432917374396713106548500795618090241884418464629205648099417602364186113308367815906722845267385144494434645681474315073530205132217792964453843870829771628587795361182160023580662000431618703886344595841868904028607747889144839735924424402927205305250048479156954774908048385193559912633936208671669221758903652252001661271821825944194120718821297500488604765104210558310081760373030473365139245875980583084686346998266923631844652878798811413921589978366571554124453678465636183488217282022057250603411141587719614776796552947005738002079958682475271374313467141094050955648255424021427474907187423485329157959022548909412655233255185751982761071001025902790390396517758911943081245228457905274584950610328158251327143303137420471414682238247046098733891808172990190979359579393112218383396946860166194198792666696984060095372888344471146210375605298829542364204949169510896987221802868443397885975333241597781134628518496393000404914031905256011788295592937051554433191098565911353170318380272428911075333821399371599359301393207087121607282820774890804294496160233017729780139258525563642048917285035000984944028207288058687691298102642915407609749066322163124958303129702514399231445522391384429325463876868015847865873466343455499347956934623642965823786443975898257391924831008776157390386939697112034861049587298115625436520321233469260363625768226017975691312048268239517418117923122748011179268576885497090299794515224395229466734031228667974882737461167924779194072812920923985099517848963792378042509392085761075086674825026415660218838771286979509478863235784555343981127130604224514802820533483303792346683682409491433903014362179027109522742310871711446209957681789709326377902057311057102910583487686099064034097668855273710650518520493468945549710611891476575464143829264033292745868893643470623116981405067620131486262030018258246573207863137637870387433675961179272794474452830184580554746655841551679539769693117621242700332650023953910096017391067289603920484455176796821850070060813142352740313946096566024655265063314059520765117523795587232580696929841106473031504345040636488012492582049597333379597483726831377850938261936602008148742023808994256314466136338308473313077979572623643542185108865979544624261387078294492439927641270883639632010858441555193946626321493611006345629972338381661705656179385209562584360680862551078494841118936664192827179803999597233750959233402465552328306588055660891308979585312998934879020063471622710219320298899907168194508590043219984803234609487396598081353627614194290449082504346174688467805642271723625426086439916108087018151235562716218195416049136785745010334247282377012603359155596092270105615789884518558309676856368515285001439118722602211814660945812247138382808277542443757181191768965590051851417118706708365909809858688245777705924705401557158168678480196578366798282002897793673372777784681232657729203567879744709063158911901010544288985107481776113151056684315232616170445489509722839849243937475100452384493287449748671105033508773174442739355535013887045245919922923735898825187300883357440252487349577890503385573844837707374962799264014450930782708228668640142121671151565827012578266549043369382436878963776955773228813313724765738275336854913484027802979959204855605165330333692033479509362724629780429950150123266001295862867642926618154013251696203956417892261643929241379354068430405479136832989476767188310332097732966719815954829517971251072843923600545905280027706204679340584620037485026184938002619888027483322537627317565254484044152599889824105666111088779456876797041457213260969324349123242912691859185691118709525225373804780688742251019795010269252427704253577026329976593740184717388496013498492125613547113765012106567103306334115282429947103929703328628363584872656524672944557481934997487717060283736872000453010171927204157923928004990646060387848537485434063686150144148108440379405138946254096592755841554625869332594124531633538668202199655960833139238066110394412331323134225507665366314793694718198696685745887517702753633691955339785490063534831960862649491377889855121923786363966044859970764514094287629736925273548196147276826552672857908524446420398708260423460703930525962024119193933568036260713362222973721783873301944931244859562734816739089251414603612990238530008301762130863492857029056225515431201361138277345394223023503909028054568118081134205339582476961119979994293920515944946429172623093436260159832594536449964608499745621434611781274602294292818831480224035871830105114536161165856097421307818281384595862731474016298427210851326632604759381112606190548439433623789782381216041907724508526251856407532619210657821431166285449005272322637199316473282032546460603718096054964559801666383586497399267871882829075359177556896639757358810449246092842983416285821028819789763790170503993648279261897962256539732128508617703994648140943853944593903030707250438842425260537201300928274014007901428394776103744126219099185610860773750976723480492760231363385530013950801633499479861832029532677202134768742236715232197734177272241122690456340811998926041597322330824763937942285111128379546007520347075767353283957174178164967960953753524445959858219688542546011960436444701610841672200659965073485771107514227102984685076601656433280397070524654313846126710111119515656526745430436976452711436904561212985180430280572600796147014768585186966978462751887964887972225145585168814523887417656226436480459600417239982277691392742257155358005982212446703782236276150469893012653940844262095820797496161957451356941309713699857432261600140877924954355275720393131259869863931173879264646067072792826749593746740229670431512198094572115296909156397549339635109513809371682611030874796856776493223276440498907109682251247979697526071757767656394340198450448098873251314782129933932757304455828610386973887328404189759960766003501839963300031136469758190739906456900332458149901691403634311034252713349704503231068881420625093902370638334583571771688943170993586422560061463617723280647950363956134491427531241972127931270674088293333102306946907934296034077640591584881845191718661695852548230135774153538218270711867704452674902112659874413206782412807652257335942324042451575834086681446589362120284318356292214975824519419084959967266537693941800866579790061405932992313154971587087952402643524386636581512306905093466122394631892585004536348026151440015176087254133574332122372585701315157009853637832463672332391513639909931424004594863344634996001976938888133121057341460776634315181434441334692170394395899158720578382404047179489549342183932852742557159410609987719536821442282292319479137752932655353928541996837172326959529226496523618432398122973912814800196801809258405924205177679428057660707471377621087687953155036411292644434441702019250295241119707864037798614342586890121834317281230721553972902359468483281702729303178031457181311506997344732787992688932308952802025541580031051982473967650891934556365709782938286957062994851966324459152374040333972599326568824552206890105298067491960333452919291613027396214513677002297420873695585833414330183507549051390687514977024159447119552683604458938210655732794337693983756049360275523090875094132555006977946505095366014552350960490917625481575260813991061434011821560237691644542813483232844130035734260716243889847784450022356309957173344303022290131392942694333935637948422929349597608240780048641839092000220288865172620120133285933463555204162689239777510533595856560005574061798207018242594976772095517665089421755243908107411793982334731758671208391397155426702790782862529611710972791962458717124243276972707772715933535286438118574379678683608912489789100054295059517567904423439326090193827810402622833282415737899069756412638151841405846920796210447093618618254463971158036137818013683510098636370669197482736618107850382244104177415771238052696688276136800152841636018675498371254832958308057426428920977824649329114318350341942813818356894793511808113062901212833281436066162035861827899512380019420439719907406893381435529444794501942762859229040814105726889295143163351835510609705465547151245184169010133350597050552471999094977567941865235260479707873021618520586355262735759032751765167853114623424006189574024458895880688575071303935309124986092619623302866399057126838141151542445035479195420779783797490263110350172467529013166610774361742813818509588561794354760621913703608772185810863407554608628152740378439424289860820576820434044002507292191367718305315375351692869566524096057773769091191431176762284999606682721079034255501310166779900020829719124523371067542540886627818831802237608379995624983056242483848102668360575237113245090453700422462594723054819876222067356788287354361434565265808121578117949640310511490807071561926771570748223099803723834377821171914360872286227263558383963271599571277213663231810931370943182949438848638765357510371588627559381478849867400358689338710589841320887612634853166472206199300703591873364687736877473972990717753659492754538255293497141568742493555909782527881709363368362553923671746612339379554285063334926498082824143557681671169046624296565550485354215221836496894127807074849870133422264118258841787852638455043309874113637218004836454338114383985995718921705461151868333440248740963132176894471538265175955329405991296764619363608427889959975055532308310975006034413077209812277585756150380870778525571947128653703726311745457899403496819872024874015350238874396836974308872381737949390014319147858412022348649690125040912595502948140196416859994960454657461052763610878454770722971751414164366277889287172400325475721229523573723884635398549042853444905961764313871713176144780235294484202997531001185912244854009684747858444228512372631817015997466267595927543496824977550955022396313248989187399105520618685335319154867916533308654461074267544642003987198733743083767210855805423769250495848161567071042331493555619577741874644711406937208179898078641142162782945884416686822780387217149095189245088700417102419695829352802125166419773496238177173295093028721300620089443701122452501497560441711815474676445942942965245848862832360010887718590386248575680773118116388043221441255509810812095751119136769477996406969716000313047799167999700842308640874898622890720092565007014832741494804938183586074944049495985415004331098877755802942013257401950919316944388134344056267587039190090624977578012573296392214103531304304698978475342472283748526692982018036040580166828949422395749314952108295811696410897601549703215357675380107913118490849449403330119689994879644427390006081501022988042203134070522937309037357285043248807318530686958105585956904331014252151968330636412024377800592515271540512541289981348740138131251387166348925509688117879876741689840873905774601229073091987300191030593854304620378431005342209602648308932400744597672738376543456190877649288056284491984711706070411372080044776513835407791534662916187265538696151630312833045150054533373541254470042990450447695300101825324834892330273878466994076396288379990847795364938469988160576076241086240117883457185245221121745411823689235933221488619879355169899063194634744586381101274112627201117099331902502661688103535739689984637834787110633508038943850286955238111062416225769383992586905035121364262047474127098694106450127109497512862751070642284390257585006588325430304566498876313449496290052524267857924391552779094808569796320609180807234819663253221403122593884698236868500314667277511277663795858714080523578849099398429516427977520344778366845771710946730850149045038595630468037192780917352304573786665653973267875121438964471147545289886202976892043760755340419030235156812527772359096313093543752081915015568843714578730976255900307068773789451267075909429119762892288196969324755953479039081872256258992324501020691557896909401683092104180822441204004794962391834925432766382006218426535007243052009475051919273831308474658019205047319200886018553322697973219995860061666643500471615781118305999018752871132400307749482096812392371156192403342059518183282570013077433178321771677332410185357250471141056663015558146440450936927228486815625452285350115538529922984997624709376633188452871059660276015663654963984510864846060836295795398797345386174258314647552468958085552012106067462713851038155885521397874128593882308848220961009837122447747368329061555089123844577375585546223688799874926297347461118451559529418823341567770558196625889095063879513778593208700115610810086995039083633146883215455413606343971782224706522276518682956220884721602666093950375668332306038103112856656250429152178215663968089442454118583301656549316577748436464345751779907391516193860837229963864238340952652748677459271730722649504633167272498936787696928487951138327899336543620812534150575049300906189594258954938054576151933794954411885496027224613141962715664074835891377443625865921675188250297128528463042069428901094544849332226903272130940187967771228531087265357613705557092035738162084077220028608456184437918818414656663801647948094342006062428316906915309397223834698036784824979280902570788628905493960917168004766803693353678187429198543727894648581381864417749290208159503593942837090256248041115333040747714560006750185502163640775530762127738814951722324710289526976486189686834467182790459560911068249476282416772916904595824674683080021223021720804965985650922219747767701208628012872007984737911513398178008047632121374538216487467139587168139259061419175102185279163445866016102397965058548958906472102396383024060041894597383592329330156894132543459925127254975819781902143862991959084657876801854342404799251282408947206491288296937367535558007356939335819288015996249116401715732720665565599266997388731495390602841173168501733676226142557229529665815466016464972911309706557697934771296771430675542768700245939050220298424512969496291945174593971750538816181941047424677968864316080359388757576691736372830852105864464066697975769063167171313211017789013588763825774853758654305236803595853126521529694008233219086992252170739687870710944357712685474999635360547938686267225985119720980804807040411579502282606337982616464125939491953413829879814492350094996845380259077398471522961229947003685965437106648847074961414116410182021410085872073213688131294105753034022805327585735364371784146260996746554433277506456877043909536106484009490102882018109206782481709071200433592958552975227531028071634994437784928259337430646426169690997852595283742349600114413369875061949750613390060710268192743850702470174722215956638373225435311028208352773816680717821841088136231010496605657350060516623664240927264462845475394678108910573375637340243569992468464560987273197509948094424900712982627157304903889539444988786854560879516881496402234273688495092536525006487047036629817437954240875643729658323215326395745119203678777423673883344070197844707253846815195426988734015557331988514079371219020906883165380447804843682450278050473768638064276374613023513154070758335704322920572763110757887680975014929989678096792234881452790945597836040468815929333334387963930807600236416974174335425877229492322618840551301946701714235203542396784613010418136394926109160592945141517030958380902277518196023557826424922278760276414200659978280649742913658371432480329454632463201275863387859598955295120238258968751170886392204343292509274615052440233615065133851280472768261152261696301270450413918699335225999387510731066922589540817560930599999810921477439803022542209907098672814555070406871050811857574653062692928979598114452189726308305692739604356342452568733445705659609486213837895929421356198839331898803407098162255733133950778311199526980692650807242893444653447593028453144356647364336574731297356055702302978830712210999239345698956758990004924490717487486775338742002562725149827876285349168034473645913868751034674083317980482498020820405132286195829400550000288914683724990642039549241315947318388156271093297184078114756698726065138133046242930105256064289775683722324814615299289242669053399669643539930905749670489175306185748227039452340123819791495514538946367287103565602861809676618496445238727531661286188030554038204004821766870964487409045010988365450951548094896607039558921073310757050113092043921857054688771907437065191989884032798168253097386939608183580135030455410368631177219168296317052354783586901253538115283838272557796750237839477788126973297123782280829692834918094880248834851522719507657347560782312077450098957180835864440556594678230686106277820896224601324388817934984242277046275535305352938905874156603649179549529283710836798931493649555623419316659361600819147705656266291150423006932308143316444918107781061689722622006174201138375018926109532371857422285161271352173856322917009319392282604582631758303228480916458426128641505013723593882509888808935974898848056296525866516007691983247445471065994665817033916406855557536962847533578158830759377080897636628908825406401161429164294664011482170846987737450472580196542757485631018719435881107266172462360875797570925316964658287892841532364454346188876483684326355515784999816796645395810438452606704447348074086537588869586060120898952564657079037746303972462325724208167139856350678667956201291043828585568476978486368260598180661180827568037681701892781956936476975361732801227471608383010795926679558724331117010619733024149222961191574380823961906287277077665958412159530548114721135358666537588852075454034395886258567083044773163680110508367226740520028387299386554429215419032136128672925739457992622175540209531322202369520278973688653042277267503480138907259258995068968084516170682676155385593703092852368207433702417582214862507773363519096897685919719524215868220692534722998827455530580075136531800692935476600946173479748952293463025912067012007677179039813860258627149220008445985997584437177612457057123103450764199956743703031403275453413412257141433578185904469884437420344892574277114702439795112583014518622736963980051038871126386758442295105043436648666021957295845734888273693542667456895064457051915999825315147052972768426562206925595032262805525224377501928724389441913396134859140078324866426655631441548764537898924166593417261221945891273647502418076441892882385777305125747088110673236471628582662110003375827811913696153852583982166065584602936620778793983399402217330398840170679601941129583036184275634119814453575533188176017304555617184852841072608452869920109207327971092317087091357654845820873374843611520701461764209164866737459984590807886641285628078862678227484720041219026983323622794092683567395794239077476695333121846919692687323618967458647287800479009691115360419054375992933083590652854643075841226204314140350513137085533076866606112038331380135967502132360327990556037064385258535490391592820055531170291280037451398747248278417076051918841626068974836792046398707132334977149949068056629608902472972201854054025958104857826129613953266007630660374756719310185997332280989789776648161192230481210086393799019816930634572208123519407584868080838540201226930690372054233838561637697628350502200072966534002667122709349483554247665399269156382643243612119751925982836235667498906635456491947665149691897846890566228014528651228472896057572164573522203061783839156006641958837106114740453533427037356854006727381132227174714498538288697817744552252833620254982976167890824349125061956927017371347229284074416637124590337901802485846195678032945922948384757464684237535014918609553022380658753685038162376307151282067609504085907283892735006907603854326582497420621898039252145539188626138925761846785181378779845272013416597374034119536927987446093535578888571077440538370317077224324981548168810463711302346681361199757283568214300021554202140186871915154281493053167386154985697241481177333138831460780001668702486706391075862782574211246467137329574660757452345408436256711134269105093279007659824146090850569365849826085767519935928383172271343606917656397593675512581372281585804696716768498903764849816135446525356881682547040411673073361642125835052890833802885825787197413555888407761708309844987986275956839533518165938093043785434470952658340862130026694714031066799891785816432603736123527808391501925585737790148130163514645036568686113437835623109493421282516620962748333123191113073705200423091359213785149874501405231202599441052868792930864383178532501411141542190433528476847445984026970067493933742173772734791153804166087667807170808288715921147489198641670308766250823296252062177442484095857138914893483559968463629709423887208863359618354857084581590293108007656988408322744668326863020542019931122534344129013750805288638714561295473314701157197586293216950059703827746934157593091981058688104073810654431368060956402866949547191585085557239970332867045670395859036822884618612346437028289655110205386021973592571511303220398771929301565141836771836365843458090731426933903514841125089519096216310515535045454881977843560827753833925003843440185062807326479133556901856383785002168212482486415786380744619865723704331693174381955383948164616979224339055358891002884681317843726362140322736051801360995916699391091610888717639833293125686665299271899533393585367892327536438817031158591101054918868627028248698205608908757496582715827869134209077059802227293869531859706646048541402048725699734936234206756018227160776403964389906932014515971595490178956163506248693677520730802488897463129797452283240010047263007477170461259201956834398060583842608855309254161981905755512149219143635975702293800988454472990786786228997696884924089899008463574565644347505544517016446416942458723462304640255493433373353159866033067169014766457352017931227096674731735481562955053548457193769895850958447215050187430452631102838040985385963258384973659586710454537189332044981344776292206910320443875565885199759439461809625024681605712547927644856525066311748821985116854719113810993102244535613996680694043984826518048493447795526443201442076607864081156510029865978708323879655702583916631191651608525668824817312954922840157224093553866476904807861028917000288268026737978484141957010341539543651264509531720438945015092167003463235055085650537297122005352946678778068575126011381701046903069497719381995208788293702548732584733240926553327729883205034857699871736798438945458149956762098343270197943119146369918434172794346234256848928344670212304377823859745204834238198217369077159552909998609045322709490662597519291279635393281615060498273314393141578568590830932936863458713832250198713993496645514475698161746875941371097532909077902393739012171741972465030832887266508760659753410560261162955989857322585730551535315155300316948131882481756515799086957964638528222208341965523523441067875439214153455422426215604970409700782472400123194332946505961125749177326690333389590228184211870047760794984756476478927573404675523797265775285632388361101644649534804195132427006734762921468801968227144948746292487928802261136574863021081125025029345740691983090529806416633474487105428218435045543107983337093401557902525983480956476761977866870158227447576475021799686770540931609562391940228311772756641174582180235326527680611515955650436082340091787070357259806207645961705200569600164391704749420522136606032859284829037090588847670730404758419431675156584368661245592476047431078620774448572762722421704118003183904610524389999328592285747411406274095387320512633441798935412901710271327778857821702992074133866787027185883385018355053472007872704488583395812945516495011132850659988428888534969453868092723411496729829040133011139403049101777647395399686171636665961037982294037523353356831091280644322721500861793132054069572607807952436660079587571024921211993042487017118660952177174235556794500077973060962313414060716690256100908177585053799543632088569039260220702704609105089572052981411424928673559024161685148753262479000957745102877946375704867272839111404096100874295881486774085663858864061368907496485753132156215851447327784955792123162972317112157864308092626940101354438417603322803710163515504458740128306929672045305725867391197736820192337523911689122000221587342134620521031346422379070437525755633314995965298455968148631138365767473043567625893249004496559120608751163524629542037731234580797046587791591077747682364458715744507997148399605834382554127104622191297210803255454601483077834253765112708229422156189021863785604262289207697594501906201125483153920683957508846289085349778895400381545898922777793743677082084035303120642022533812030117958842018443317554335725153168749154273290665058993877386829886827113038040790928483097850433249978816204961112401749041705513152490859997078949587320310732509186271818578500849896571280249785869271162354063144170865007579652908865018645097349948131788777659152407657706677818844647129946558427684589427623389023538216908579347964329330274523824696323673245350595276626631574981293896093521506939797404215669898827164859464089972825808103978469543047211358991796421747046442587502119883391341808826360580491247186823147707852560875216567844651442177864464103196703390344016242464801568467730667499186078417493650119760055437292696002477355814117377200571762515017039635357934810315602184193701160382809211860694123504258370193125238427234688651093208912777022973452724505722769542605255599871988256439865771945686340894838457910206958977528139245347921327035698968563210064168509749822516523918361589524433116654937593542848844940983665864607868134776153273986667501190107541273597351095333163583000052983253940568650125134893400556619660954966435443434088384380059887388369757246255440133302291336958495967959069154589751214146891068122599294714473488556948005766858307002415212717716976750941870925945223773445576083272378920530111940748743235329897184858367646538852634073676054001818049712060080112349823804908509473746646622165693842670806477908095505792698767823780638751551723949464779810844730773909518385032825620253661292367024934334887919377516053581939243851052546098952331208864919192667164175347958939395058277049658685634747664901891331115535307085919677367688186294115978283589482125674056039376230490537911146018622710460893112580827673984306973330012970431820736117763061209460636776010292957519136573683567582195240590835587124620668757639476709790895963728349166989792336405083871851026762315092848640003142857620209994092641724495768448899131101215191755244920114800614657279551860395153046482257613641937489521933254804093313144381693966493155774214997378859027480283407047145929048936369691948350123853909445855306642596625799631896507836166258742014141195394721892871509855534439053028703529607736581626394239314635441216608142994490730368674798471519615038708097756864498000712815681630698878425120407650425094122342341390486812037391064032263482308519259667526482567389262421623969652548928162978141065230208810274788207643153338054839067289487710435949749452302689558815614636826857283050260699973036253638859206403014166674075036280907807164701200191098398186867067506132043983333337230919764021909475980892155334713255466823977244146543806175135170397070309522203086914024606290091725265141763400216939718811625373788688010963767204168064277811916596302777120846146926433281368204609881325086638949120578682371420032893588877981297819593475664677329884349248562461578377312189729158456012801112707562149544190787864356804543951921444651162866152674295666487485292766175010587158466252156321232171812695308350444347461958388496060890761435484379943967679417236345288127561950365770007392850173064945151945479756935473993137769050980237314096384611650872624956346817909967752491820223526209987253403819722882867973383266880645496579889182997722563933958025715675944659865605287774779294718090921429263727379482571137128250726708025051376375174426168309698908894950303099283775125441726878417488230098019807011435094812455006288232913813508267251205201609897527839891301388339318882304411553573933560196966579993825176028512083349823271853781825432604911979545329734968861500302589895255134983586219008900211566128685262591279997830607264480194891241199908776556667663586304398287419573189909645379087506106116123914104241194298355579264257078498198888338031915767456326124810546178637532049082362415240964005699645088235298774716616790159032898459920902844040032700733080442145051090825112429649868632754558312605236853755087546833794999161123308229184010938142223146046470974681125344740473415922506712280495236538059948320003516867794316201275326471957225370494489037804813626831579857422186225482346721143151180505334666505693431566490268608934264068924916825353713465042726843467991892940858056357002726891835144626211469991974399166839279292043661284329005398886160843342837123234637466260036761498460530642049743675028660907024182259110219890393873224508689413644714795768943597518161022469251126999412284135335268417664003523344694907290630311398644517417801889206346411300861830399736406716944980727858761801373607400986970581566538877030408759134341523279977114208662779108884130196895513374850596242803490713855670439542707400477630150064331496524124510882821336194542977929295546355428599794256034533287224790694463739826757774508976852395160688821828526294658707641814078304294352494654189235184244368115238913369689391580644249227572866952760504823302972503412366324359045862720713310481576064270887972934120843888665087181843357276418635106196406817078439397240683721682588584341439967680779568078592576644003482268787611431729438890044251020443528819973957506931359220951174568280921397699146361250031843533246664016671366114004320045950446807173663170156634358788547201369985603052610534312926200829111316349069600434838333535205987100740590100388786721809144591720041021728287421041274543184540938061098177656962030619870536914064870857490241241187930184939362041459167827020563411531235459686165297800248337273918899048105927037416802936265253147556335306376904754774775472506837531451915495332288239718862180505681355263922245892993847002934024973504747028168799537110701072995825755594570871365974889210005663208506870246063390672218822159076653909439341432950282703633669234664510411930739217551089682212883907432904690176979564410107219036173889958242125962593328429147373506058180932366152910329739732226862154686958266825908282381151850240552242065539445457087732429170244293795745278173500451219431660239685810114487194588736812258738964024190518336142721465416267384756425525750426001087975430128093435405310995160032293342580870753057444104793661433813365719762301416798737871479230669438010227376394518211940716691342529992663798592780186000731675367340483660420254992555035053550986947171334193933973978591134091168778702949988347506063092594670491305110333577847009679344831800751112347565476341124889383545563704826697939756833101128597610040087933658142799904466656979381645994059451052897886788077930784114873750528168636419767144736011822895528920465360408278127354021538942614049870265085420068077876515105103704933480306322447548253028391408072461221291443166687749450868952054272033191716919665230465330945048090963709237243975826583769286436264737493594716206303602479923331398866549610875669870616703426070979726264671430420125329922941322656076404782308965469391875189619734699235968700694241734141778151951347567978267880871699443825749617449844649767995902519169820555881051096889180509541627379917022718939168649460528064850601987298919571066719306688379997885650476718598234004231317894935456061386478808016924786735043763332681286107238802328932171102090022562667453536888670791516447456348627972650046961041119774617840587403225478101735755484198765930424659347824952465724456811628589386091690382863962654013774381718672408041482657746236006476066555349813092381880780504509893767692458616504950936415147078588272031698362400506740543959887600232680741939548006109942191175439143646375413551297825168282726744124667338736995136678481668065868742858505752042611072312757109130565108680671151367889651805822140349360462450588285239647701386058691868452665524273829988072202462592783417427406366915688345231582601307068055013815828943938771693771019532731833836841674739913390021181283696412785305097607562608541561632256163961512481788156295309723451290187621519358965378870678587843527693053649739814411556629316655953573551643643590043673306492656822724103226894115126555746324966457528093442890420206508440117047276595267077879536860045659447710562421346620096100486320062694701407489552616225149079499420089471098820684082789984396004412834753080592338694653710397330928062789079337900920754096888978984978766769778908731799725303605581034483183101813993236833663574742802490876740189766338968379992809678021188436156549655929007775587752130170637003245384076409553011836886337056771774641469641122654402783255341221332259076879337211342100197831126775271650520924387581766290715279328405263378640430460183419355325367130574331744359175954134557196807266449635180387853407041922592338003793756414522239762911528310093423732767983082471166042617602237272994690202860646087450427333660502349303518220638376875722367004724170098690395031508573146100576942486105875509797243576942903497806357750292863353857962015457236934582327149568576303189895037038544383761048575643019006177754488347519752921297505631914067045012199148725329857849427795436158469910650575783678118383073234121233044621160845344716425211312625026459424045029508532015742699395298017871572766997238725448384263883064278700449259999553875865127402376873263944248984768634758732085343733383453801744294109894652593109632322447854828652894938199169942595960494746249499463433335417594360004384192565074943325898633332589689766535101815348604608503511757462184565921905156112211309493684817880287249820740502088579784332353424953938163603437549683970541483768701869062380772631573644038847879832960471278695129968966717234117356608225465738483874499988651813669198745580531369886620661875773501325804553240447665221012040459135330608276501297874633692094679310713597984051613262305493839799503785284830377000628212693283135706292673108923002970794532639351802789926576923089204577261254305088937950698085215637308946151255423249050385548677749372594253506321976021803796336481134865233815102364055773840221260025685642994303179074164388716219464856895372195866186130261899949930463575875999003563049509595440551998369200458939773133749481549873756775718401415815257244094098095920551294320863045078915520771880872399176876152902056457515209156614307010042865561994980563498745082669496793112356625758618543866405211720842221900207087946832050217156702132053319344285677039188514977909471574535649508716634665823393609060040585598670713520590888435708299227164063060983683715415811372306870180519377333699406085437895781684014717420870782166555428067175205409004748435575893750978383266321922762320230917176476705733158365091426536941898071400146149580151661019341964623873503185521644447344388074044490579562568744629042388488382165536909455178006467772808775589250383244379792740839039492938303514433796403173742505182368751646150833667876767107356591603550618518229882985765838437227496035714109266181041178801717880561404233782620123312038610161683818069987301819303572464782679356851054482584626734806131127264288142457004904354509319036742954741213765040104613172908604586456117419226743846114780281288575387864827412813645498793944131230219302356293747157364945869535282898536916698241707635104611078335645155509784646406346764583140314121033561588457848911689211943894845310652335446332709162064524140438238327753837517798454461666141598989490968530792921230935492240554372135022899856565353459397627441541898943752892921305005346390103092159472425873258240989158864628969021888205324295318344927296392171936327630890212792368883842401227927986776199449659475082969304530769826044914998544527972266425267587912503107745059205654991488138939200046443960122296550199034209057889878767378397222688986896331830147426278011293838774226113370904997656371629806289381565017491413176760306362582237539976719692471802756112717808123382010307796396998000121488707118827225854688972443973701005029716520457169981421511578707852400439132365687270897329106197294881224004436530698520917451280678269278939536064984499272155683478600027646429542487937981071129513734860444988107039896759185596490919594313036536273094575577403498437290481818448194931203916822045060365387362279199786713166666005157576641432863247298405538440351996979406573142722716828733059026852702787598843852419683464387534720687387509041041006118145356187082520831256154169123915656275142761807809809563451357079516169862747770273149312197029919111749135722696756476447830014673663471535298386488986377570184065183416255958441854942301373810680293422130378736889577952726633864631308814351046389968587824140241180506198982084455912762726256059186355106051217468353664556099667969732739877595225165569425265133623665341245787738643089035781673201132779538073243608162826908146965475478865102057973897828258720491534551743882966528913382981944864988741181801285886922607403138367671124098892601190204501455189447962918146496219240278835422670810439878090179073848382191860620930459315718738362777773792596822303946168601678497684629690365668578152237438656254372027130075289398272755011603231782077975056417455142915223641121033927371845676666880788548836270846462822892106396059442395685006026646868706892147375938601192037312421510636766469307190530797995477707682469704334407344635934120300051325903324413721011923550917293592512828898268865515266678538476428389559145586120744178198127303791986204620881315640517953869657441127215707611243817451420487492929030528326257151651436292528739465982833271993472052584561742455214056410134591620247473555100779808018244426791629726702796475350380201608708355419487545310997506993829990332427574726014809865992410272444894580024822744679327342716062124370345483631907775390812316892568681324269672619244005716236091032710556186038246619802825782125854053124408830560155867897924151358603389647583119504361726643145931667876167891889358086787606390011882618133154464777665246910667353080513252537985796386061383231486129911609169405062787505840471656396057213866928757915231888026002145455832995209711628268648600121800008901838826610025872546419987198509815095013517688392174575222139246785697798024228336209060735891273735084303925872560682569200584276340025229236821861181940876065962275083151680212246414549816688292972515069768000949882971489231459084917733947646611581064951923061325543603559918560307981575807947567852181314916348567760090605982629091565035266292937055676017677401554635506563579228217522927943066133076348061312128332558957773813333549783376871131985298745185589353391322676367486136381786328786868832691776218705373576277079300025331337255325373405010298089648770283908401200120294089770516652708731913533248696228381335902475111015877764813580487269795051305801179439448535779646836920171500468703418614459492126570707632130067937152984460092787701895531727893413965786654230907679506553768705202017812674915964331057695103703482977399517485136551219206973312990679844328514403305181597422425849111786186047803393078372266265025989018618142735521606951509665503778956938947165406848187008629180178133509215694136239608364955817855695746775617381119643136737616744612719939374414411790575247208694198785902102571326063609997063061140343487464928100831885169968820951702244759833619312843127465565964889704507627347483746201239156864827293213298055216307349887936137662049964755694262462644811369587760375868958737559560224358594523084594482288623298526904793193791350398054616613167733652543141823738492514616200170335248763493261946589665041209277274489609660312920849422396210401592065620134697010892365033766940596318909894431942877006611489089442504850823990809396843848062144304785074757097952803268941186396007667069518649651605747022129700442645289866438344666347816015257444330253786068782148445779507332863830528435261093700816923507998823772796374160264694934683341567560876594964668303337913182830303941339440061683493309748462194993025852863805182026820443538055147049971972050272208029590161476258029331678500181648084887894333095562692064335731641056342288558565082923576275428312505744755116362488198029558368263449540945863057796344745870179140590730920625981089036407082430850062305849967553776644501026768749078791259427955053348569869238869669206516361224877487135080677817715844131242148013401151053231396242405372085453169069724391139712485148578599153113409204814499304640250854558627218799852242345710498060338444989693894932368945960869961291122178672260888162111716491012660456552231538873623783038690660473419986007521554061184527498253438655997871099546719830155026215585902937227639039907792135840222947360923734894567859083004216992269012793878733761566388453646760995442145389795097643107046572267128029771354266889137105872754966449545023888259288644802856237366256578663091490598491495966452851604422000425048431154734657917930116807733969144580773140993588217572182823107792521307886220839119070397156904290349172262672670748222593230550251721658894164346934418202068528082276061580747514856952070430913532164976717071597810568933213018393756925991135195497759293159479775409854375723574457914493015392417063062864087922780597638759168421312527791093721536216946615476586746362125251440077351593106336230301844750910963100924034359151314350781905628916618346582263712478459476486942921476763282892155450400606488643824682402690949288071679684627347391748515845626106992267567519263072070773165839190218077163724552048779534917194707602481213204754478133647599315899526280046619428250188670026672875705414373707189156669272564078612819209014853592043203456704716877432657758423159046844404017259832007425363987423497410399691847622295160230565850530866576463755770664288568417501045403227901075736721789750404451253193546012440782285531039121373896996341138746583848281393582758151691774234261786668606033871600983204157032134609614766311161751398414970832252402132951208139484318493257425962442977349624805516106165855609514997225629141336554109780921811984543685071013266792054745834222990652431766545449130942645807714096115841951443997879606313931960368493278454473372333405936034032149227777795768429875341118926146317003071390128726866289726805269120238747203591520712254759075252646775110561678882523687309371999011107376326813468438698071362477724691440974821327043868575105239113049691768227126236356782221592749216639723351499396969628238502403493990540597273259261140841856716485590079041006776172583925747092027726185785211526474472934438908102865738370444376479495113736468072972441293251253055823937691721778439619402451906548627769287578911321225164116228081398688031057668847519844617753682946745929309996124418846092636785579516085787829923795082979630934620408132736537948017666883493108805523923260436586943306203301658113294342151390725863061651445239225539383691711289007606198749238554252419059002511357025848358755746334573505858453496339359259383834731615095390261029989012971831722885110464997250757576474238906395688972640848652000214434012871583689277197489482761047347718209636757627069595900733964744057062531879364239198850264310335042563645045707779164835427616869760770560996987828885283141000516265614016000974888758205650130247924583549086421335112256839768224555047100050982770953988112809617230211526422153582837134307033424998297313353791890903716023815268471714084403238043820474635176498300273501488355301988498831823855397265905404678148709171017412324273188695900725956528042310782212790632109169744853408886266680713151292737000357703800997338385997607285997363320033392059226257314769978149681289506733114304652134678351027594294961349369470803524536576977410667074443943929081169100272262499338061298362273844732242619721935461743654012081682191368941620873594406015532742822839972145581458217441978980888421933455791005616006693718618352571244748165004310001918533077712007105969008734852403667061746731383655097738127556792693681496397585799568647180151831339079180801172819267661243069053875883458021992801712360129146429910353571012073763906335413089270187005929866966257330421028662537005770460663404255357887257471020647010469405732687484338445879294972907081929458552136608822604952658655881269648039661847775888346233542655159013397703266020641999963624872657020877156915185592644759994873484870594338889736381181364454823298738256400279216062558529433899155376727004986714693463766820062149864935813804576725988679602719863443902186728832313261538900084540749580703312616243431260382359717421728543925794380399634568963661986710571196780938011389964129026412808895976904049782021672560984631109644090233874031321091208115914844789644256064542676892655509121755959685925736136564260859238558702725217518327915247119926168066479475025976556327077055510059291889505670905714902292917778116978327093869451189912780346837182300489737614109258081660927996549945083980620281827513635705881968809930539153018154884274251205654071835993448585789233729706979250414484856949589188359093635153443145535179996232893549031393496997096613456767704194122098341574457657878754395205093152747947736386505169453818124800489357187308805579532259247042793813706229524165325082442087877359672895293345827020126421633446610495618774942448419115733893078989505413092796498876736560364215640061930623169316633498491513255773103997893794580301035932804850276143070972298621808960110239679174077067814387302343777636407236298200832733776482510403312392226949472873284897390818052073548805627934223474587224561815968752067175808203634283748864917914871807483691005056851993326254698524871371196080300608473136430605757625273766715464020812665712620047426975064590023583829775194612987673435405297172142095747914609712429879170274083484858233948075158680940889229171029612100856140489147121707368389336193907574465388829098078203681775585608288769100245664591381661585014515663281503669693450456812638345845049063983516294252751148776214470415137632120486493166106073450783374738532621770892534476408348238093476175569753488638972595757820160277686759462323645448242164788669734709972207597587829992438697690623892840529238711761100544872888420613878457744022986204590274124367403860385670949313047889702984566909344294366426777645190174375670515078635216513573728827743230749878769132823603585839156543186113199102426063027646523124398448306691730981859439631218492289151099940287641208005967164848142697892222466310812869464431161863292036471856425381155771722224366781709849430799815374416090745942632936891530085901599558183668255207036063600295749972628467266527398697337857716980774909122383270637085392059953315930904764272213960462490055962082729096753935340446917818340431708482963126128662631481813783302917385241218623608241775656621017769500213285369323683919628846693530286546619498555907075788668988837242851708920184550931905558561339146975625215273565188230423311382835972544581401218891790267004059576181893951622855223969405892073177864543436233859131136439790765101523232865223072761441983947151509831348131603881320234127384357648647534125405276386304633053055834499699211745995377948791401086593710586096220613379305091270135225642056386884821648043696707988851893109843865923449395544649294761211339598294037191100359022866623091287731003537206154554090961379891439318624648566039268051150827431142645273284856053655719204316626726427912194099124680736054264091343653515835669826937553866117894941204620000115987168097503331658138627016661058152894631888949788503601277882563136777095148220774005757098091853261710207582152581557735632912968705621874408147765064084665274465716149018721382627071288890412259983450202730497954258364645768919878583303387117765997114753299152458672372189145882303181197840588896233242816804214835842304714137284073750904781901224394118729896202967430459622735504600621856949500744866958701519334118189054010545311783055938144220033370978123864073364108958596105106303462620432075164958788014225825790578041332099243719708774968780476521608620561109835718124039190822454526916598681962508640688688497256442802489197276032640913269169621548523337826605389122857737038048986740180911684038614082788556796480097772218724951814913206988585479661669492389201176224390789316598204462681816209964112436415622612651268069006981473495990727194063743730442190746652609941732139733433246534221380819635195240682198176862492785369333205164592379037705203777928815626387989025661958246977255019770599870543637980126970816137122915048968949256283552286958899010141220453398641240283754747850486307568335714585165197972910752217422844931532731438570428419831256862641118357148580803024328499431693738694263749446628544809216800272697468293055406403644024050865570127393378079784861966954380157474801372737998633833877117032514879594585300530410873361161931629520294776956544491576912028153849841844567003243775921679330122986259492842932336432573504091461873607449278316775665312701237262019628536454222511958580569371380664756951020688750607599059730032042769932392344119049189059779082245380456822793864140722483893936488221736741345269058894427781755432946723505979951602992749660694754300792488612763085957221213694128780311966150842446584830390145876263718774854389459835179026610107518368251193639941934340387709907223820862808589564054195942339578082213675709495522052635529147880828523633690411972733314836184904413658691670582370189790498825850397665710853326965448721915225735324935385942850163759447354186504314038018245848799197118047600178627970200786330839292430487856453316342711730382898087801959874953299707186838555319177358705098118011517313213966655627885400411620497034581967093218147406228608701911401751461927812137208353576555675301109026572619912767309858849941427760077343459349434111744724376389179397844149037165519195539263401737743836357368264623428894808290914826428850337490890817064498104603999088268147607422547889316273322988307059020262472264572132088192712000335123208119688167722620897139739112999888479693232610211124574835563899747963538790953305942017229431581849807588092560185739102060712760966304874393435620502997800196600895628432897117768287923578936195881871347197506699403852048835005158647426201554440215987074405348224587767449156729723929768270482683492053287672237589217652609548505011830695741152600609477992250765623552126359442353397575748705651853472875523397100810498716780428940751043593313842054613028895765018287828849710188818446808141554374048972720209880190507335442325073338006365077185290543438772416139769193484849253865204008114183658664004708160444889154366814717674203522729284302303766649623751618800755486774993786725340285691749036490700880647911347966691001754789451701897475465412738288200671863988556294271734357038019308463839305102590320513727487729865975771020313373482627245233006950198696568239335096073967048852732604378835183615563476720768858158145036899320834149100108878376588647438975039439512555399267406749093857794980574720991750669412068059157004921447723095275549529049703634777847626349691763143479794904233578978527714676976001119552415439212446438350233744529394684247545172050401242949601950332628373847480670958117627749669129184206112398379225360415526355314217524880059670825661887796087192177282527982087343270489709333014180572334932744521379655787681518626703702632116057503874750971584100155752058482136508627002742988320713290751552024263963906332931189328617954568017901680176527050238834272364449144418418509645289779082495007476028091255453632059487830767708947022748186038045717801430233527393801978552356459931387752271785932459621408327790179323779066604241943153323166056559639030074938682179346960228286472952409241620756473142026011264329709258792241298780323979215829842101466953097671056405371927377011254414507321993933499053711295235489965646283404412470981733194514695395629292871556134054500218952400210462449153850481039003974929105189714059888136583700763807247841513345481743737814501753750415323468781919331308802038513143064955548244185665113139934118232527255789535314768973104776128219088309644509163091739825078538880850689406357650995955188257222679578028285287580388282062986791538748132478185854929035966983964629214435645449480425990236487301132983161901655560569684834933147306992001505414267906069548042317744619501927942167789976907420407037629128521298928320184865195154175899195901472644453368930474585305937247962937119758732839327891513818221789203821952134507111312402841127992455040206320179917013634927722582719100989911290018307484508383734952702843686796859668147292497818726041049684477223159006872636240084315582820711736610701712918141666422190648983112567187240742608226471346307213674496557717509606194960751661185499482983828139429517413660207576079202214966261090344244154009692972943118650852124872614425524224814887506596722596893469081038916009633414615133012993412263804574660293268395549080869683968039684053291884804074038097311612423477394850879971504991209341827586408794816113457570730985316671625979280901963922813615892762954995362001904317061394468056121477381323631969802800096876298033025310320223204229958398019442139085787801073005868155468128436279346429170506823854641816426166131617863061708312483301719075398826785614787236294446041561663947418002776122864286655778516101822973303505823578391123610463534698640127007691093008007953703449491996627924763462175011030702689345051635171153666523027541765756954442199087066627600973165732874942175960550439539807844961531938626745791668159268872467053186717231594362252354229326025913537109117812207484589932338609754097381357647064470517129931781721959330566067973931719966902393392566323079899563595232969746658658478306772350419996996283609029691436453482257779595464238492031057913169748111730578693041090531326358272564765597709324646636281486804322812899698486035899752758009830695864717277581493424004928091848022863108050568674749301034032974672335826509863559528323979258073845588412360597173614039618590588299805180010418245020000982836466091544664995048603733298626351432088861987826773180319089261540547471349346718899990399700981731436539087043123398401130536368489225187989972759635345721617892741785828076339661218989559844066447366412153783262240522603574141498078867572976702111580739316770832627458948288752845641904162517801230083027909316681271803965118857107828290278368491279274355499203864869482537159775667632298927926418771097431741810378793269556822275330365667981148037132250185656558686527218912903271088713015242124102079579492552250591079489063824899407430441102976319654004501023126612499915716418644078358459390523236419326285550051507449997036919775674222315034344218057170903929455299923166339728618057070568098600878500478684929743946923030801600608843871472590399330267977825758956664645396325777411077681921729411134502841105295923187123625658699607792136520377870383755185464184129210330936700178361886592144492927787729315284493610769901882639397762376232273242329198901147914229085965804010752310322514281750165019881368465442794366842612447299575016618575481412791412513479083283310019168865719740245537318411988439665014570329166508812884272721030521617713383028751856664249946653840580656862934631100513375931077912047851005157894391990226628901474764225894500988724440070447374547867270291295151308116926269476743064247665289968635438143794902364758080828620780791109265549959288490336518157114499839189255899588160496655293054276196299015350445909718520902036733808247786262867392830089797129864979534929155890337404717564537909787318489449329581021611450198745069307126872073577615349733390113231178292317660651124860013336808110731229799909972546462739387003255619872449669503641363308568866880056424993992057092331337460755593861810374547339378171376810813699949145448039920958150611387455589413102634294780626753303559063860850353862230048591001965511768841857877806198192050974954695083875446813388977679834194772200389665531863254165619843813325909121105900524919653395678438905447426703431816565567889663611933341763474226435856698502490664950115487586657837655302926343898390216562214098970989254596862330568288759547502163786856537974034327567658915991594877461758965903648662234067948666801668167842011544438637674424637658337449185448112852054937600436202363996982158469263428479267980566772883553174394109336796250857662346133088882550542311575666838021746467502200186566268848677658600538689470730341877995858553405245570757465472388203693376577625253172876008976466202304158578344205443833048086429829281243532364972025448083536305374618530794179523172695620494513725778845492440324964396690089737910301058240216497197646768612944430889965963691816630082643644487009851407234262160152111700823865708245894385491587974067102094949995005669552977243364937918565056248942562806275113124231526571421892050711515116018174802458446713751015729207981125079224046518692547988555412381826434030897106916439441721820837442496216098390633018138132362752636084383221785673159616780579497533215534907215414755489221114012776169575001165294971641275121326908329913080495027507569376765161247090787772586313905498708260838136673276568710009977182897628931994041841553601024966240528768046231762945310262477618128103656165694454034707234885880328042752082668038435828707623909157630673117888194351520115576745105693069135849693583195416209798332658925547389797229433034354400988378859994260115552286052152244298019625138027171797049563770513412268884576081821547915079703391486098403193710391497739356383739028563127231524531242187078245611892400941535794576538717225571529270546296544282234935215950742274278520105465383387284068317367239591085284619498398361513777664364029171158407375417610698214722743489226994135733173465139780012758454054905705481440497818450893864114448734075170570207249111039584717942988036241716870681088361950317930074020864372211291388899865961540696340294658305730912968677522542626326502810428940688636857159831366926418570046990898327517634174866139143856969682575055575172575494802866882769514650321280737031169362058030419022307767664324011535173133159630159017637029937432423938296485346779523769677437913169576409923941453202824792408562159855115106253783967043707188520278298581248273134758835232752493798922182610803202221039566942470770690142878096480509195505940849132880160945003410415964710214511595303413605643178391480487228168179598683880254349379304897984703052218450354476337477703165703314515829113145276306179474914319953084920108263378880768886579686309880519264376321539749152166475803068674472954789065490989179177189655864847963118755621766018163277986275876398345899858264182333025783322233865650254390569801297170073234387948004096074805426737658740848272478803079709556557730027506198748914787444518539431872231786617849468429869137248198377969941928610222380890213671543822727458732123215549653687483350652184319198045891836980547647713251475818681259961854963129014921191301138301659380164101172577325750562405221197684593702241933877117936510080503017959329240743421426628399310117147825468807765704792555679381672417236064764070191906578215563540931046492013051264548670162641773991232495227271723511630065433907626806692480592683213369852966886725283757253439139321955048631975074740298157135551422423152593979237931845666152926529557982819053996595042334156154358557682471443776548753324507374883907757285318897407391255192473117275267472149392906446662736954022810597536083723889988365213618147984774750015886395307782707641179824937081326663450165448606040694575726802686751949908314931413142542146413971564252726213293622055661299202359318577663229169637271819745399680122295827046835767778125289437006684242400056512396657393344970810693913459656299037565085741927051120436345471722080049484140484894621576002674797272924553142618405067526786054372636275953475064905575859588087982104242836011464404874966226809272557379843983051817023484692386263128538270105879188302203597778259126062397130587543224181034640352082295161605364566315671461513793542081882888400273233335228532794269098254525718176999670647103476913509449644827143031279985036597810092274921556545592876914893265512471184047828396629876910797780510214474191295468021810968617760174932932975532762768155578171076033198119536376071765328311101354248851469782055228459432555927675862922498355838653886727810403136129212356765987782591855046267091238427389412960857913664694488242246504257671490359339043486580169101119827794304238441927462188553883823028730267172657752817412521775919884542104612221529933996648810940120160696725782838384748090216989668954941360404700852300209177389787113093443996672770239300206057728798425484834595275708512656616325908085711378779310550846932144204867260345484323960532933540875428628894775340151934246309928692191174731254651939416817743594308219254569900412352224422527690889411913967697390365738820763982549310135032228082848850369672031337657637898393260878690364182388204633909477203805720525977947816123932888896354372414137848134842405559378316356742842481940119399629518048287708949458802923722657497439683815398607902557802352504416906377066837226092107440585937868918486588546012231701156281215281811751763706471585180313289455395854652790334775659286207524789436935634801316648515981166074471558526593096923943847335964826301361066906516231013158397549738123749431812646343445066431281768547058227109455057634008135507002390473291689300021612449104041107890764905246747744071550036818227911956782852997636505776108740137883880360008361236736380013502519670302194911741170505421251304474248473987307812307363863245816051199725711328980036851271144957349233768137450192945455535092634693815242131692636127081396885641192629922292628990471556611784146428206234089208151342434005544066506159627628018835833598829199709973078899118980608398159729473034216736229130537936005909189866270523534963200287054019355509920927467666556446448377483667052383861315990127129311910936885157405118166109206350715777196421864160106760010524192417803133480870804673429490076311543442269089771233041017396727853493411205924991232258831207596192542851278143240887746611330238640997452380681801984407500600266845544403491753417230534398928447481355935494012703484509031890808171480371388202212774078209332783981412792973725764868517638555090269536173578266958144451460083529112838287265159071794283878524428865689697009505397533795034124882671105413063301581426967327663090263300837592059199190314477240175176641193153643801722022343888915348504320034038029440466395725238332743074727553355773830522166371998045739460692858639562863667613083564958431726153786221085052056356101146728815271332794397998217055698899118807528037387760439357049773487865082075261183292484190508318413281134380547233040331210607036921772113143642060367351447215343634356658696654035317696479631745590267476253671102864480123002030212281937868887357146698001428261753972304392567126262038799555947036249803817085798612126880572606122671686633584862049247944336084679801047357866918950028239219857001002769658829505330007249460303505156418035823409249358677853881416758418122646708463762567832954996308086922790207013534971199724520912418468734406655103449214378017885230343454489278350867918875228777502066762150528122462922917270771750900341885804728333641950659763389183997625446635566636099122049661060009810048897000987373618350742537449860275046928233971811590971327192147371894958583433456696630626995495679645501296183688007404245276036849196740226642119180743870420664079481141602269760543946964813894345317888157148603441495620402994101278657712312047905933621125980558135046059312893604650402277156193484796216000431357086416764688489847829914727436981515819326359703307143162033996548199322204131444267962090612156845547318411832540117962721873688889734973886455713943151885647635364630149651387138836333289721973797211087136322437716311309710002791618592703203823023136288433279304052871461551675064761605778749528675679466948889614659447886596511875100052516669299997222133735345078192471915606218325625809446146744385504250279413840433440083077436677936777227383652942005826181937096577238942275024692794768248239352701642536059126884476338695854878130664490783948033125483372078908734573674935315058526418966652197044323375321952055691434612556166872564741705215078066311762162338975675505319935572316983597017951324664126056329171033882129481561808962107060357011732187171900363151331748701290695190869557210701481393642270911570231358616054058659182355735152990651567285254367333016415111961679292108008880938076391047967311217945970571027756710940485852961152883718968996822938990225840195161361176189332760084747732836333125566205380126398812190401770368729632574557694955735469118987888324494776473631610869929413311211549761306547034960015574175419989903745708422100768055167332890490101341899640645618323042050023008687766152734779572994562686701416086584094819762279046089278330441011702650049511760226336253961160020693281696143679406051145277073144584398136486282290452818803639041426960671625562452444264233119672389280490292247351708643712003251712411983909871706014676442710904928637257190728604887063681170163326872504169005179483878228742114024832770738311562417789526034590391440993932327370180801411360109985190591727282536055351819411391579964902766166173293304903317937196070323339800330622151387836326617335369809211448829667665665780310556858958689537670088329254664026682715269202868367200910233755560679052105036125743547118525860482628509536848348010772297560148660632386339197514851963055618514324949734563327441588026360941016404134114084312578567868996333663186268992793817642629981791588466948548353509060376311413298589824610808998721189938230960747248436585577433495557296998312912466942715555842143001863958899443446190387220944191210357806027274299709679615870807676206416404640022628570568751008114646152091142130844331617929901625528578969879111242753887487061738106429597834768708168711605112094968574297868260456228797681967470918334907055840613113889917369163342945889232951256218317495848951156127797045760073310783046725395115478820366811025951559032577900866599302257050217182710105840898224188379474338677414076437099380456299942445006105679230762458088438268960215994007985519481381198793360016424205772808404743103979940888894421335975268609911008115278762366288176878785343691548776250182583947089797032493316176191109227674675695825156895544620096361371765701388930549917911086766773265877943981197796962954356719344740336219235687010624551698739082086969003814309433378246997096697242284785526847838195674243246039105421543999655268626969968269835081293178994266870430544957110358802388668448851390546148316860951754750278174976168858913468961444862562830928027132520793940647828153067356241598438678945554393646345238521828336499777180438635873918708159928213805278146695597185192780025033108216070299980397773927764170374325083080445029596132984039098779713952695272824822939433598128497358461596940063247759353129975086323695174032586824318450949295195838343341804971957844297713245826898988102298885979743361650576330011628517910884191930995514292861621776786415252229364930465809084194622146667634939246447988223461283512548423591087663436697935879447230434873675981874268408268471173015868564244727287982497160319848032036434706373107917964602784057933554537682987478200640300255970931696411378403013562751849047114372375788030028330282561435655303163489630777343519289508527810662869331694021665199398325252749040862118619209569390560590051836740564461339988011179928464474329624581342488945994558202959886417226864222636926121137534924775685535164758251697000323155032913806547850722771980987670956736316776542624177135086005017238255017938319286654632067547402029416991287456925696991668787978511530986410306437679816898799540143626365687551396581218664747608301291643541376301551786060329553658007640852190938479363536807831589111203822378247996272548629411649998584579429921495899097525370186691150336527760447781306052343319985979082970652854800895640062146292280541608963850619969389012456728120485960604533353052433847615925007403348723860663911900826483859459015402921172235472981989963766503106585415182795001495076772503139589756290223045778355350857766929571957110732312742677777704465294935681944663394686632461909300874430210166183307761205314778763001110169161401574826859508990756131210141655702929497622037608535068698420401114277588469148481393719488531043066862988650296501778536181274035896687620135436151284007650806102559523471027708346560043502066666762505970429695223603021849180271888347575907167389418807590200774992604866164296798055150272123649496406408320494019256830103360043192091234367595597884584463784199871587112816633627485990748531622362181688653981602774191494906375037874563489613510841272703909042092111275475215244677525956423258418848199031052513913957243934575871474881901892934867928096692900077270806757390227879205606651318384736806668158192930554560530741536124236602124624602288826874991710308074123924733948292897179719807348100144557947868574545504020636392091703853559493990753056792824436070304288418463663544130694766913638338577762841658027645872381046780772595629074316471378023455869038309198837560193399477123329317242696350209326727250699251137131484562369035365075612422643559824013185148510087968920592663183393574476896099900349449592417783583897582232998560101702814063864015950151707378254576758721264407095017650391006208632861796724825278108373662057301675296685101867234387748133116840865902558196372655662775894534203752858599396013043789164794912312829521455683319325078253236738402031753977360715043971636537385662168817178812300410434288466584232147153233714545083534702695476837799494846125647997737102521430940645011275274703611677697527488187052511372372250885037719542586154001845878325740052595689021167827092410991377944885590138078813109401352294742725895839375498537354858482993225906541428110443093274321161034475330089080996335257637788823813052373905884340942231503866129682119801242154210361235169821233057433467923915150571079730379068853064223066779541082625366220321728975562739891739425432261513391605790165830796335878220922568478943410529637067651514893193016900299965428615253515038596016261365136567063421661175684332344778216755182374799465925009689371698916014921789090050869199470527275912126736513144467133089213174386003150488897032522786083069796456807759466818904890430485068174845681169409424894438265041766174208812850084925026082070199883999261295025752421694516510804992546058565369649224221230762352760440952268175063404209982894551080542109199784740710221321142536957802960086228617381316279433716968494826483309157615513666185805591457362471689409761483185094390098197258135745354192949519652844520126662011431037788201260885287050652734466065307924108026991043444147765395322325021585534727964302586573354776367734469665592707490917559880371109068840638353560495796843983913860026022085682140160536738397537239976115193923871489886413705733350642920519268235548000982967806847426828631621888513013822306331493258466870859325426603097286870929676628857004543219506823591417951522816758507022766539310318882889458693998383029301033440416714230347391790880238798531987108806054857891920845434297977073825323898791335407546140894212245025942679072875856613198692862442083830642858749636707828990866259425096511892058492384034177520655179399510709520653234294049852459782269129178567999230105294189599042711812409399358728122464552638156849558292014026724942436295087057512118470698091273368882688287435871666604272651074866213950217991585954129870610795577301610085238014081627735352285826993036069809161876755646692851919743237137894710607249910587922361999626755678892350434290461993189317504285649795735977022529944965583167515595939936780053090988298619409889126102603820174839346905061104171952431626810673735472124944769796494721574211400881923434619921298550114928941163168351905506345872255191667425375297443102966013776208010871182261971415579551848407204686680672065267060552599624741377952088956195776617262150467187919679704278333791737115187320068795749545163171270592547556165866172269817653642723336916044894685880082636959049449786471952836349533358704542657373922162453117332251081090817017347182314122043179838446452220413423743068762740012147276960007392863531253582461094176277175040789628995120290853475974902267796777745124208299068833818492757906182741572400917031578181469506200682403985698987679280006298699172291804054344442944772715668835841787059793309866113461749513335374459325378814668889721466859663028546424272159574090635751113342901474109252458662012946301988759051520114771919652513254675534751900537133046796590884613575931875892599357354742989508581938739522975520474797173544786394783083181372279636442812528700930786351151037461657171043320503177158052170893165050885725509998209301866437811652333104776873134168489900170716101458419799810067185798526866770485590115363854760441631714035886256938995533593645033365828536654653198895188195527309995277898715865001664469141672760181558527642568314013936697502857536410821569971401500722320226762495033626231446744166047654265465252977399190466318174505464895778827019775422923432570227121832986175841626042239771792529398669414589705553987279110845308216204529142964722689295898266882132520494184041418608687420951258890698242551581907437502677054161521607557271368698425987882087901835304499417826535604983960585527313204989706272327295391238788789379501343793992576961913099367042749165867020161173981352171944472720486465528793122505997602316891391524769786956273426202703282638831958692896571209581067237071177534875323812226318812929010916133464932326844727582530156418246551905268890687386492478372955927850229340797204001130168048838594904457006645961819152255004671342987516295288769506862354586051693689792719499909926473128084379710135842461412297803491121219507135519820703020808581309993979160400422058905976161745028340735250423246309152473845093737794531771629977451990175349211791914307422167584087707412017702591344043159440699307398117626463619424576248791564302961335261734911708742366311415476153166514937229247604479552557264909749053145126483992972472302137352340871985006365123648058321288997928654453076629031515449272928254391491150067934768772921596047406219690514051130581512928283763780736494721500791338208791641823810793413538240408356275277038381458996073204053685736458280649802800805955787777036380364385735028437265440976657794919003688235794991839106608349894874784660799571757660905219811393033719230320790681050048997251247182175930266316554254204709844201167641054484997453034218410143091860097120103609817888164093842934955351703214218418592643619162367220184195722970444365100208743329960911633046031782819924630265039291119500388074942581725632106510933234124615012428930509437529394332209966370489825760037163720441700764670017344515193400002994490310255925531691517519285235988750791440075651508421679478114059742819531205152084702061652781327360225785815810323007266698895012162507586620231184213614655671293945965671355953601770412671158124136640964709384901768677191737729800330017212817668027702598586638557573369427948213188579264643807202109836760828297258281158007884993351468047126778675676257009764140005297857549595910189622059903154824200593962840050328202937596329945540101839032699779216288974110360240619705345090032723094097538995479012377146142435031838597465491423588760463759864653622110736032286379718327875190647123400256674907254526128877654776972046132514583500651533133499998887583342730878587753996491492396155202195783123777276514192520026373510339078015616418639172396240645431307660687886699747244759815902651946989796999347445719230062885115158962239827924615331854822977380320393336539117803520386748841626646427894184528079964698147412267958320824064232724212976799273471192192265574685161265306100340822282948575830035628273495029638908299096681915234962182668421632315923057468726014502587930120177868118185632079852857311418789690563517391367353909925533769932599946991517780920201786895686989906982110390260338414525337416042922139227733981462117453278646026393000864599977225759803419375173545830037208815252948885873265653092227584040744106164265199442755739765203213351621113242748508250816922607634070325107482964467311012731322347047716768540436331118220343902319566546140288128883627807873409220004367583787356015187164732248203344213363090806277319892221079873180564275325966024297837704843384927920130897179323077598180320669950746455431516768460624032641427808190148608147928839683973036236046311642272964129309634604902225631807123055801502308974739302514389456413944904749619736877949941799621858232051044950804106862346735513597340707954054943065131974369616894812396741530006540521532821898470495766780874142243784662845774528320524639908767829089510002199772834133116064025924041431998592206057675751895346401427428070974290333979039160348476412569989075100867250700005635892166174586166808979004191931020286502842383948058665240042774043168335310132075716085276864389749000518489000486974541554154684410320793833760973745409717312413460130489019127383254853383448034987566918952135630686919867952759569521875100421401178628608862263312637614838124478477092408203754646619001583897023625272069012941071790683983960842638220249119553144680139153581923399582172625874164646386663829924929523730568634065286518848165009183585139549578204865546316496401780841062669337782252644889159862670993768231190133732163576321764926126095289031802270932228600807215933478084869201432778695427677076514508964773250451396606268232221930183881807533647364770931654803302902009600468583311278757023814750972073721547037916731457045533356134596797564996260460953565241464814774699405412398091539996844382312933219047094435253536015776817254457957842324485194982349324712436716229014451006617122014403213701429272893987403754231083060096015911969134435716809324320741295764677046985908163674298278861650091466610441356366001355920756302854616591762996363552481316206702289692179947501271188144216157257736233764092551102384461068043311838353426622191521630946873477138569780008040853743442977145046744354233135526251553720022785754137291951971855111935116943958642701713666788733810840982865526596767200413459751609287796230645656949108781274549053257149867166921156452739404674929769461542626132912141674725185218063463181307680689930094225642458942946537906885385654146435555297622270727862859110925059553258328334254495442835218970201254680350504922694581518242320462682544096073596924102595808747283708567682953703794191939807865175601441546165944931814151165347156475303256509624409459208637536403433430892236616891602381594885882123646369914384424728508486592615551211345234788280499793445085769654071388186510185614266600304505402215632839631184183405774523485605156866918687350615334607396285047589207091581039101258498387595346158122008150152968282323662586904308065560467273067407732368314257976014743056928388936634078085677068857400408875245749459863510293744134548469957550159402849382230990055793552404185096176773514856023417349944264351722155947096625988135512400618998385849265367563088050840280085546318947245971805520341621052387334662018069022203837152792465884441230183139568666136016478048521784607206864249500988477891309690652757437965331884223951798209850368254654565924663069094776612742688398909157937794797621687280675293782766820807251498348905581885069156131316799174212094691237766581965323730441193484562289716571854615631836012078503484193618494689286266922629394800457578557519906483871487243460572754785400156267609539666120285831165864169127397531171713884103524812410914711387578406065225907161527750355331408615694615710777144172431361545612767250115842090242051374026085616812362935630295108618345355260906595367274805870360660680800212313082130462857104206205341517869654977176421646728080893868532808458175821063786808383882822014021821235169196280382383077892534837286463628970679589981874578693077249893875406148809168828977202530786866052510962665537047887621585489064597418972661889285096070249055973100583341180133678753531053022630785119574448262846753964532902946637940156411489492574995903074563835937816344448860813928351745761380100829583732353253992665900637057943782793156103042857354904852254426707084113157045427776810889439113924327667752880281594011413159199719380075945376950472336831891775680401641043859506389218654086092088779155513778620212603754477121102681959774693906249338331664242612829535978987876005530115104437999170907146426240736259382140160849603636537416086815258877860173408482471651905690689093627315939950810029786647345830232013995706966784406079907488446222238784543422886840836543768539151744624835085535854251934979031195961087519574614982475266602420088883744948442126671246199425441642191717406689338729992881621774870974943919246872569923685219347554973359581381106439648861958412026197470370739610781215509549919233651257871514736577100265846251138823570902101138472722597068769945547479363583741933533264165861824960482260121968463457071295183925720975526203185987992968580575837014725014751699320639360074187293845374719126381749714617934919285315326193595788887359541775484373927351609793130078955562097555694279749171929298493808904047841394265125203692276647284027251353198486789712259457192299333957765406377096992653594766641027888280478962574181456788124330936506583756426999675035934279774357830061833930222297200041157999990893327902179480980525313158502624143790726027674461065013065326750287334124671024092222443027254031011378441542926155727849981861014510949552342683545880162700943261209909766144746208386564785626503860142177651744126814448995637369214373385367595927236080105487331047755680097942114116163128203353060982339431576123196525539518995575844778039570297441191080116978482633941134152013585262187151592318130905121043319906340306725857914537154983381814070334861007083061611244174419297022299373027363202708706140333996869063106341118663369531287717472899534694749919917288033149232744280345363143876444001776661159347900551809165876009279105489592083407000894443884262186356927958891947780356644015591266791046485339871387746496225913632258255859020366980592687923709525948240136069815084239142861375859251354565336072128227910622038654065220196197926887333682155199243947011965367973597121376736909743232555222611544626080811662802334843054176829986172722714417614511953935838719956879575128578089709602682730306273341191094869485875255390423158542443166286184891002981394405057471073962684912320018826307018526568795732055512618338681308252140765873492923010004402604067724860127412121105072282187437630068066239834718410934118043842668184762767986678822957850056147119729538801140315228150452224391429040920924758964118256194720679755887648320085758770011268384302844312719982358763053434745475577962401309511183232915780426801488442374682127404507647954903716988473696154611924175661872541145940518839673008208144145646056636906309946976991608953141519933377837610176745660762814475117113777431183344208642524592052446567361791966947634155750571761501256393068397479869630852506543818668691006422706627800425117926659900318268491762194690165575890818167661094272823608098738893707847787651351578861531177582025868678439069057984114253501938742039168520608833229807977609102181175053052954552511115589438870692410360928436970562424867296876971034581885454747177837246625711476757012612580342960279113411305690108970912896552363452362948340327522921427661808034379057903638022164886355070851914260151609290991997926907252960308457673106144531279162085596701684227080619268460592903584521865818385460643772635459603692260206370347463022807680068255873233353129331448063631028199210754678181827436892852748135725836925127752334147102862698985683917948407276086099381788852556550021939806676571570670959657940329078959270849251962300205803840167798670568451669346335120803552094912876623224061942973285707059246013728689739419152649621260277448913309974599480275644268035923935818402056701867684014606628795574675660109861069512633678506693275907864711743932243755608500521893156226625088946257705574097083803031874941642931270168594869198133662622844422877165127423025108116363666995980147956736225747122596768274034520550696327517283957399740222354182150618852645695633507320538576337738591891742214617937829756496253624704734271100845771163899997258056364061878463902583954266987489423103570873392110745943096730345711917836354368489437680629634500204947394862786681495342023859791242542078661602968891851504232613793801531572088126439260536203189193416427656439087112344210187907498943100630061619466447887250107310857447064420945454335390066261572851886761395362339242930644214119107845072610432518023339647665543867489981378751531374226484564596253755347131845212013683099882329959135839437862612489999180241607860477125781344779522075314541872409322258041419131173844018835001992419131782109947135552662882974631575128653967635170868590695124773616283702072676736496860210473634979926079362495865349976898930560601694620379037892907896568211114476221848089530000081596296911135091330262019395097376338520737775911272752888851239188607298190615520899590915643451066471284590995056521607434951860910332178829859414339361321615064584173572444772494565266460291087171910281983589285888798247013995364448649489282847689087365151272507201034012046103564355953056161119157677937296656618443172356322632726694475181679651269396064403750199676340117385049915509058802637195249273022616851393274352762407946977420373854334579721743101900218925050072486093218566646301083528568624432802862488997015240751574520921842589606636768488369573794168610268415011559830052256660476049134863631322617429425433506531668604294093049149027335407008992931099728378145915010500641967179654265533618766562378883342734271135489968031733952185121684100002942072204659723370207992783904262108371214946801179500154078714284041079104018878042996354696948875105456519351069517443163089247920017874615820686003841086748513273241387994532166394537177347363187345119488591040441825316787814892449892751615906036568844136503135202838879494774823802654869285297482207739067739169891782619300897929086031737067996866166161230369845794920490798358753288075382185592105052862997024369038993088945340338677441824880677120692017460818980695180752176585386855745054951982310171302648922884464358705080529402555327646443020179694548634879583724663739194557579096981965609850038485825991273769459677177004544870594377946746770209396760156756174752123360271229227058702706828344257077859273088294592702388881828745626039804241798131170197581399265814800363718975295656431407986604583807368777753861698528420277352740933550508660772925901252166830950863451704366562350852199714958051086422211207743730294212064159221549425613336818914674455216693671488706678002390373741575971731364793597478975494420644313417145074982689541729544000249637177519340060108807942254516047961095681048500587016220690682705027352251079997315657099103863323808153941617234532777146189903377469895965484219176552770593185220079057553894267466191530083907494023308363131606473785157741622805796206523805256864959132810639860232087527009749185046207777682523849180653351654587551614131526030455021828711265198937845685572297717289994483900616178411086112570143228701887967765496450783667889920267205729961969153725228133795531906027105462538358056012451295532342599128747321849295710060175332063838115296326256563119588786628762958576781927314645142033360012612072713104453795049551746808279930823936507757815248574558316516029359347288395477468934965328335858135814336066374393806055416884639161512722955381416896763379183721173326151647988408243672446904771163204566691042792876886639283922142801078902022077112899240403413716034287825065266286786594371056081227388887283060747799909725747445008692988267556762969953161635396843605703696858774979616545864655872485902038731037345310698763586131060084683719419534222541636193294810487997613710921115281552942811176781077604131989621367150383489803255851932594486801399356809569693980120383193622980610225750646546497280434556434823416091988312837314854706081102758590346562142277731630587396864909890207048072232931145565023018083532841196478878371357317897229618842796092864247712831449531382126196870347843038470804892429772461811671246980133652800005960031973853029815481008951427754305715013976853779666424665945239793561883952382176292047960925516817570379920153129664119140830865074833767573846957353829719509610034007601647792503139016727279321837101116804351439831367241964917706487233854454436344893371019283135480337781105151044795338896348286999798221345080187462819862858016712486949557909764413680446453646011087216390537283778435757280681613618693995226854849461565346709083372194577639669820247294180463563318821408197929496017336771015834163512966597577124374874161099133384657758320168536379850598047874274002828147926609457432892787679991457667211864714395313630032963570613622895302080936704611144704262364077316292522485478682634910258695950195402261822580447958181600786889962582107925200418699684942911966362049019235172032329364922143914589554811469643997624316719471721832750253219497783275542225460360474041613558667422391702274879014196298278983503875917216472236812915357063441979178808008840888247726733173336733003075704197895186749591827114635370508821983630018726968273337808706345047200518508846324647058507804696696038667655030274031685058892388619231606322564111677433001236990954616211270088437274473232923076639058150286856263946589425702452707510646064976849979087337938700447208327648945777361636668669469427413407903581494361343388612993628248626746461924454953686021703255119708253490318549269373845294064890385946263951587296932856636544705094960878067166302358673898509936413346457723301611543480271676840610366956298113035224225615656369122063332810066378438267170176516238306287200379721661150929073234560195508153018095309959221167423577546574150577714177784241538595173626708061950532785033397813830553249717880408136684959973069129406090390115579202776641490355413694258046726012642584589528271151881718170507978119495277543259719089546925035664559430929416368810251498465077460628150670188740674747539725637329449813243300550610266549661385846522741845411322304370541379106484384361372047404902311182192550886694824567790637499543366191431475967455339766778255650571774832214646651805886351024492613620314566379182217942672335102948645711476982859749317357294225276864712850513668792021067557575958809659031845551845764130926464904320269439917968573100982198655607432018298269652213087184763210345280688927430216337935802399967402336712268938316398440456661889403192122588215395270535832739561634939423502354654535121923429421836412806444518019458802771906685380489920091213412194797544317382228055274821808345807346596323908125778565238378687141485040931629004367151288371149429932150197047880512642272475871247604776583164612991635529117769998636891143561891982777037051989591080307999867897337158921130185546994209512510952355938851578357457563972355932696961165650597000064937737946659547594685663456767916584015061595382836666631877350533799071542606467119506870580784156266266427577333107365426417581553843955352492650463908176176943062157374801837933563099879428183796754193360854300513526559320883241185372741823118152060515167020746986932070535493623871904854024917215430740483933927132482138893658237690687938545566176410613156211514287840388913458560223828645046816453922167375576208721096703174942902486318745758904252930301060431177242992669936972924516008791059313064175525416355556454766313397758051645095394137338782544338079957771605690787718890983908545547043485745470299076198807430664554885575402726800705008998631544233248845784110934675173511341737140682321311175584071267080656576325054742355387066722354307209430471749976855822367136820681346936413140262681830409373686815589309983338638344222487616332004817743413484847949574144925153853784556467583708634369205636471629234027868356968210059870403786836926419235157705363576536042121167337762132664784091991755477216478958794595577898341729648234538801755179089249896629823105551941838748060629834962865472691983679845526178847763345333510024953735307511949772863205122365627672902347564400491429676090758784357237058667895761915378795772753055892883364971565633404596750090287327091085295085532226914213624001005130575430921300459144839871754120339156455310014121880260797281354995270246113893909687483309352982282853653261208568350665019111760147432448755577892866758615594342008816999811174675963945380855087064939938476688680017679463414466649522646885819842272358257668873901562704039716322634581904896742914866448693518848177802306640990535325537828784308605119175199918505505673064157664280876706702943445826793495758486665596038787315552786211019925944850973975896671112664436254245726864706779596356146556552301787188969324095387713488528034868714597569057658370972712584398385877604277765702942761675235587247105696755045485722079092722055676973242534696281125365333986487488507987421357894582828428005808075875936552048492095827218878705252801534546653920341444766433342780104670944031915384552497514566500929160288042894940315574834047860075965308373720259511877718016473563655081902730622735297901792887344928113312598095621084507727724525540453003701051303362984504294477730018440788425823188624311078778694257855102938037260234520693053131696331413717692704256241746429220820939242689797382398465517932641674847723066172403292895966170379445853382926778325368061146969435294709773246441320394775060702293141724637572629009890924118257197040382321515145707988290409788497072496776201906776067200353025158509760815834505318196667857264423122518293167191466392914654907661784511999441350607884961994204730705237814175612148400869603144922102634313649385128677585869059351210429677417161340549823154872649865573369914475985275724660120976176744844074527672820393558744120128131242424764230545828891030785384915721886482487130813824760223519164700028998316380045471339061323437689368936265333326922798684670822968715536933398247976743714799836196535517917535025881621256442073153998056384215891490949185563583962076235836076211132989228523422308442811553491813410123861326669564370449635649649883237725936258772480215509009308854673538597888778422476090612791943081908632008656584797399209801745017208638966643426894437858031851319289182197822404034938075084478198426543908924051617025070235508572759247500165868156456946169495107997145480530683304729898741449058002308289388540360377469448699582523370037689554503215669437664015839703420254526659691517636575887032066320289553428125073603224392238318676863334890575071684334513759203241263718820918880621438972418545737130662089401723459175518130839819506051801541386161394536735385217294011887780939638134495729110900932035649950933131011425217604713065119395713043410607366686238200031490516783060202601733548755245116022913770550731192125696843534826118475698778921475628297903864731130892494298564480119413900008601000217234033771011486090966126466290289142904828160341845151049796187644924283632090116740688538775528812600500543206177363641077295225126749074929330282179570016027124686791778833474577373430652099971030212173388922384553741970597436541752563386552652263855011674800046095539520771022038054783694424123210364922401486625519364913977310951817171759836971589331341829842109175625104161233643916047997560178501086747430845962809090481563313681406184687903237908960102198138914502648316287990538674957343871840903504146935231751222159614851953020778136901897576165182976028010066077341564956368493817844081399976251873639275470935209898708235148678556921685206387033438876602850336150956382919594248305210936009754375543353857608936598037012657488533680643031208015957060962643776352671358364519564915378286991673310354603426919198664856176116922594315829883991737951453946109935010374869478858960048659301867784524399437011252417768729172034841014402118646296293022118929118479192545599396681592108988797837992606402113507210913726773300335792212772457294652401325893863171032235092813359243083433949793251051384446526495474838933545573793165813867049911425701509537551070570400117850096780894951420300242552996011843371462485285721196489103561788286376033537484494872818646933067727040818613842418794127851704933203818892487474797310444576609785125542177104708664327001886862438805137271169634344771659896470206752707953957342408309467624348216186875051149894436766452514336542729444731721316446554859480782583076277725708433912002287563452687084890529518154656712139361942483701111511909715182090928806950296250043063481588551120980634609116853235760682535273324636776811781287663411837285075287479768840273305183436140164570704506883564477481062913707239113820100853979189903478774799536314726346797143997917368354632896213882228746967204184716473153498847177589018375348767431843309086202912789705738871498291765914844428957875956024833684834892775560579412014164158306823844856113450443216237173271417728130300802740523752927431251906911301394792919907854555378836770942544356426763231046160597745653069533361499250868171043013670456179690504255015406927946554278773375099573867938796788157867611501935620901582126923172642215085715849015001888409930432150496066228037884335165517230816652154234386771854610663359231026757209095937303171441669022768058654992452852031260438347381950789411708492501535205690250603666450982312075329323991075683258222515809706571185454805327166127586830473186793253155435044196652173017991833349761628813691055213523922886994665811689647427690235796284431416950193443214107821695668126588046791235432173149262333678613144969402184205312676744094334416715369092904639579221502850081436623823776240670599290762378997724467474309216105011826880950148267525911575513517027803780208113072446559897663407052605153005627978689108360871569732027315989914280689367089544708667740183034315825998777774644766770108192432531309274013255328170132148837156378397491756075502628237008041844884385250672418638558930012729778881287560839393585393103106991117941754475309986217513486324967179496735439240005215146674437665221906604355161825008292162473933437290931891708367886019642944255751692415001206920359469728936938924256245380917500842609193706546598589994729754808797280570902494817312025631594014855016346978424197705180515655630391217171346311376284546820363228436252008158322127459830026520554272417102132366841607403770031948196221593552424344792732341203271244314382983104335310395261740012057482047597292922233512394622423028620344614408735744243208764059920906814133039067058579225021711520015297762741331376631796155785001556460219684186121179411392743023962811904321869751153538325623295239000174576319299171373638653852082088264564854234148020354607393945449171428003474585003555241847786226689188978199458042626466411807651105425669519398282069615506954113593402251326241704223967057115157875219550704701771638794703302332133823436920232650290449303632733463377755749269315759811839347771554886640623553238460318587087720134697771516342442506867865740375100765629299453269538580931077620120941572699841951538693998708598280029705834341592076747644312263396077947693314085596216156403022375912116590414744820000852909805749913138259357521176786957940929916509588083810702671005856654153706802975063983719697166687288628652641026485273819010710196194195133449176935509548938258441287877769743819386711942105458961883093292093926764297696531526260330246259407410319609596449540282256611980328501536851405637947256702146905344681904548191603965358024243108848912793296702387332230393067036483440987812365385741969629375681600545978165221525392695826402637351823907269116247630473458607211713304715877110660253326501621317938655749274899457636664771514526989798648802509649528260261263149248044145755719344985621636895430535177584456296186359490110941466107748277913634688362067684978313060994333553565745841546393175011656482962568627672792609404452522245144421118268982232406150122674200120650943517189519709629119436069629362990669725884783122718689865369127600660386097916586319255574861732612713139110425830474427845465445064701963164400204913802144492362713909996696400773176600849399046431634820278524159926854319160935594551926870346402069613715272921934535176618204287568996343009654689339281223825208650502051512463960964147831059159298342540438187782288986201572014542758494363071613843382656996833475295233884797448060394088288705511186640146708961931163265003577608798394588411092084093229264841617545711152800370669397753237040287638176202493646690700566863302153783321564142216323834354624725274640752051929256385750906856975619991442207474500027646008541095130688422946850511815801221125113515237646138046314226380638273713772749927748862865458850928946990671623673798135009150389209198351144238568570900508061444120138561362235686409407467142077151469566902880418079204378231751218990472649619290151526769709758129834787107677292341558624140839591485232738141234492425514840203785180310843835534548273042535571586843142979245929655332010307356648178964275559837596017491087307773123070211183865424605790995277321758916818415196026404625237706101169565117277855760290192927907689696328839405746815397121306469271995465612153559201620731874674019582679143499044311208227408872288099516220062965309799396804535836832037556347947841995420410718240057507892187967858970013010496470563809135921131267740636206728116419518680347245895139871980843797861294490590419962346124161707286090939806811908670187677987713326544046219406110845343107513633556755172962584661933893633000573525953228554136807518097364079864245538473624789191369478305286497848184521075828216678895036081814622934321686974553512239024042683160509003442316914673127013269790602775319413831841947083923696722690533965517028387414110310486864073919423453269313566014368487196225612847201219358556374119039195462491033044564851915699160664046851287490341219306342677433613318124752062467397775590660583176766904900061011389217958941714227715929544000366397761531387275225981791419422022758982365118176863837184866413589474164964530442351208503529030575999327506376472249078730527779883281367763134079491228935460582021583377191631581175202671413079493453430653906851721224344593924396861508220154388869867676198826844455570925698160398125017924933350467319185344002217979248860718856808463774093525030974168239738280995062158838341629990363352539113365661359904499745859204561889774721086340487728284396028645451787553143921480025504727369046265233073641953194001654333712323509702268520377082923424086932162645586158696634498636015976085991712972629228350633736723428181029170442135585445190589139031948730212682233175419671523691094898519786133016212097236171639307683800473073984316937789756419378710154047801651116352430841053213533888682405565813351257786382722235580407684313639498921668013127708101711346260142070327252393355381544385468346217880858712694880179793005143264471782101787191957705285029648861856556638794681423918059893905706553358869521863120776351265978290449825303206162374778469299879234850361685040499915044255606345098762865794594425623150621928073090030019693159479927726817328415275865831619904728529568234084043060095620430426742879989062884408571747672511243577903767377864475588340068740627575560928394610068093680295779697142124502304268678919503825570345770896699053775944036951177147806115136916858087989762722504945650015645234155479034278441685663242720451208679907234136675626878533828580415301372364812648943105531772867288725981881271418302785919669778064385187249267645707883267884345647912577351545712605520958163645483356287995179735433590996470548691529147037056297013877221514650103830660173858081886036249186608649159409252337986697104952603606380873921778985385442948695325395587715900940233221566783393039986058623768319409526492354351122731333945588519193758164872100282113175436989230547354058634580704888546387734624529155251037223324542121460964614593195857053585560981081265144011089337033530815101804812258314671956443018283255184360189478424208475543836006697389254070992292827686486321010860588141302007934083846368756626592076397659725893851400974030541952825085072628250647508700368053345299228643607586962208947001279561250528273359611458525067432420046268694771468632598157572941231040495859232347084519505533656329993113029138373621956182361776132781192761453628118282109265507375771344510375337181903706113399482827897691281610022360140462610316784623104283302886926575405215959853659842792951499200689334472625963265233087839517389731972902205498286035773837958512308366825634298657464881972557515004653467930276095018729264056097250334690424461053524007501819098214295661980072675211214476354883971063458707650473083583100312829339460403302832313314471916159599543699543968619632363963804020298528942317914012028051612720526325060239517222550610930980633965343383816104838002357849050445998053126472679138929243891708070975892124641934528810704265279319927080661126565835776464609232762996252967731696405848514805630216864486033103490541721820777023080810507223435692095377665711822409654295600627495321170503601143921853767142009866844739859124486433858394469267253104480490822192034086070055603599104658545500859907653142766453086877363105670621570696668418783294708422906765525763528691278052842220694383325540595383519685318446091215429577082664900456358219020813977151357634332244266490565583475658475186690847494395882348228059289910949559541882266464913066844468746878290225391045547429180427873567216301993479922616175599207966862246831356593341030673449328335215706936694511186098703653317515072413334030496817547060772579346648823703980240157571609287246174784270172601794783717144669666363369378321888035792916475079264284247499648808700179961362435015822538258349289355994346712364346180421719766418594246108717938845641565117322550688905724059398152846047684975490840227741179443268081907580667759208302229177898942336908471849842786404709896029970764309826072732926124534672283776395559290972555507494755847524524463292937413848468158562340858642744988633098844707181117990754656161687720443798113619042218155481132406766857615211383030467999335428450685646868646400040498916821507182136311962216632463016488282930416615292834933201789913600292099431245462694754774763202945149842706881832607223830684812770632094302265409252328311267415761822663354296484004385636368311034995394201801181602283505023720371451793757686954843252315818861384538415285013460453225005333840473847831777106450390253401109472023558442880213848003614941355271918097857932845278959428955531880976524564513233939179721629466711688593175593045271049365030915784709746499136578659921920883778484837379205328058578635918638619496923494552203072828598853386497086186793336098129171705440638642213722322013177107110807315293250042308772283787877482699631849708453370340050214611684177832159510978260957695596515641365127512621248166558222422667443254859588055645394539693342956637448334317059777153327706323872605271441482018122124684433327076999901598888449444629755927026414543567682143250934682564900611315171947974744680485077423493713764272156779996252981702410209641320298507120354306049548805867899139533795713665921395111603985370005848126363852466087833925169872215478020341818173431962038863381495894492293508794954196469265657937763871914679755978057852512994929548895944616143322114956327861675514747306219474877123214677755191470367151029848655423691826679395186134139582147014311374073473698970426011529246129686833240003488142045712183669914701457863585711614781091177887880760350534697781279238579927236095617374855241649714175681223745074545739497844124989616053429060681897142595871235474084794689532003724892399079759090333851780884120060324648724296297854728652375230549984638380879189845023052595616875804792972821974753218769855016811954478405201972220978711970425962159753484413370980128171788042246374716194194298494374651484373070092544094792993744924765655893371943076997707182492479223639199423784469092366622604584777211910463587574921852954922983905200692118472265475709284978624473986135134452733107569830452155314489889760240772121251413083112816438489626152213455115928130857813979958956171819431950579128703077108350567738197327290247519870409319214035278337843109880031642468027702329805094393990444951816524068242185169706032098369986275601279443959248678058201438773920616489689219596982304359984604350960121900948934607874012215283117891675454344051683100699263462655560529462657521627162482725178137671245581713711091933396616438625457451564987424248534509124251201936846094614676395581432115980417931017100771492151293335540531674279397270910824825996715709720902813377059941319782488772753671923974839784521961438015732510774377731489909497358211132106575681889538171150626466042495754509149308679512967203735582724565712401233190000738618478173489829265755829651990183380897015332687052441978596939136146543817588849858202589336304599597311000217357512159981260573314586606407184795958182208779237394925940014370617452529900122020597311031800229391778304366898124498424499469572953798947432933306593770107375454361180460758620204560992501653402492552588743340076705174786984742608159069023139192525147781735803247190812412768072472901373567060468765568862349067782563265052829177301806994510904749686497520047911345397600737318756719632732243309745877617952312725751864513489823500635733663794078753548483264762925473101406213002383134142175523013297604555474610784550688123419006797239124868327959804516865164775319599513185510053722242050215261063629792052659963799843510671266969071287326634877551989349857092399934861208616185664526704472139403936693198273437880197669775274834583164918982440734718959150248796397874447219273287141521897833800128097174565319659182440022467695004427155600156186059671216646208997593730125611828412117247364692921909635405651199483674665026591093418809317084640122383999383208747833060698629286058656596788063468732769438996815027194538948068462645141638198655451604100113369867338063160136505209643024150745739475965900756089148962646396934186537087469827987828888139196090194655115128693493364916007299019945650093378294984688671909762101787462103837800746739268368791214819478753816358909223356054309809057210102405934257775281182217425690015622938520655254946031544644005616402509378558412655808235069745461457908290480834879326453697251783368712656612700892614174213326680113778779195616422241965865439900026695185022247737758624770460072134106758452967328257173313712260841822314871312964259141983119905885388857166211585000767812305985335998587673067208296836303717330934939262350276258928717046108593571747503817909811419491217468454599782878944233197643906228195222524175508032535802413695845596605825284876934562218472296811923236631299093061525834681162428970811622899589067961708344651059014689889038188505593651993256990539343306485800248327120612154379967067890071676912871002637977958696602998296867234385507362389996733915401220303314372890847953643034242898231721490112806527148099475028279287849439108347044726659786924789721338947628346626124712410377691030827878072106736341047594414312804467329509208634248545957331515103812724841775850632161066146154312239750449720195215668392458308138656442294973928159491861974601198365186596844124245985193380598552312449466477204104755641834682733643241486144314156841055892844433200154768829332574865363671287292962804506329356450096502570774464474203470766225367479746261573454343387781499051064459410439050018862804880412991655054434396246997543065267266062673220260518518332171123587894887871679883530470178808221841851169855543109008254289113563575388951702524094889053774009916747495253939415046130267714398597420370291321680712926687953943745795241328203568712593980337254141054607373064193848245383185844825132397920666195649162071753820852203140060585783106610584702588724345237371505601296975632626614737350267140748856988265155244483598196295636775743820545727079660448537377842519122459843655473691990365459342904694491753914701605003926181638748525096448261950917455381678821462448280883069055512177110630495287026426307203271706926809097524608425068512865023069732330145469079573005799161551756794743471895177050184904717846642873509459918334270842073579371027106120701620673385744756833406518876134871067131321271537021636065457749631344202937181108852532926980392439066857262845983203280314439743610188355572278694347804519425811849719758197925499364928527249166661943877982667465218304193608099214649724142857373929052377659721411469164750641309464637491964923176358247085664347009732735933714833148353139811468053571031486918938178361708579764155401151410985332854826471607105856743383508603237149411446640836826704198170259373877595610772857774851424075717961501186015423647930949730075747581096391545317018888996749437044185433359467335847943957887286450435811656653299229284438043052222472138116772223227443052323577797193218744422109481215322765194804037752321088512109948491545321261374173864503923809414472730609729178771396049679247973498923801337936338935490739277204216934592459398326766788982671830018750246688758068921663911511384084011217040141956615962707092362465895992042420176142592204002062382050319613065780012071456774425260575459515888681267886827864841448775449157889684220339815197657017620708775661317250696502784902088971478930354945545863322617057845051084445640595204107611552260436208097230952556799334221235633108922534289577872030343739826625586717731729378860587284668765095520730262776830166542405600371594349073189123251310014176139257299260485333977162133674429277478869288617281588756481214570438506418085089166679685063399633553562450279884034016643177906361624266982081499550877947199569159572779050798053878854380627142174265691448098634711172339778131168833271926775077866195894273343684740330602579949048747617422253655631277498882608537545472707130507717923498805784768583997657836053739008478490031678422678829162855791593100333077226815039637607759119113226148886016715261814832352467678831386048992834071170957848540720930656672941354151127409430803711663047812587197606062624457129969934401848442098984477756800277433491197843589497900979891742061572170076081237821642408120040202830889471008223221556545375866926498193712573065668724411504541490576642397014316095736215194808961824617507265363839361887408537267151768124022888320943973269968639000149537364570046418681032414550165579058620074454891366208348232732252380871948891176600148802894139907327917044043338764938005442580885602038970382237635034890609455430096751437585852959119919040451892674402321954324920807939335024444113100991285283749273051370385381798782155643746914524420983720412004964787094703031157043472438837703482502580093141541886388679658608712395107877007809836988217185511203417280212217557015856163318983073908260431988053639029358701738303646270733561475455899756825266187067428437510842502397637316966470400727491667939764402672368491464202765908322622814773755972895262622542166308519721526403963980090539511795293565386242792385683586336748088431583130635942714599909314973114367617445225694728695913759249073238552474195229788729521416880209052857800994904615452020634940551398920794737178101634693875683837469626368166376839605858529869813709092374200501498726622660078788108328561915955722852368018199779712020066108646735987975746870818831134366416437576257802453830730292772093809801460313287415908462180533574607096170510895986441373012379568736213095557454826179299599749909699568132480801001092801585342142882689604774022002497128950610929941888329687831830430011772835771045634256891419860422832734585336226583881743878991261935265603818572904359424710789955563296129631462319024965024271356004447745657920488078899960462565247777560995477646131358428964733116281320048206593611757930976854441095193459234393890704194104768106282976330106637491311739499168241884076916015169827937720260280484234777165378183895735669884362442608441580906212019329451548780387876110173432869529150397702235646646934511854555933448825144600247703013619837681502743480622584020664278739036719314471881865566268293363578670153034164269648136686673720955644485861929426695600781565708762258149896658533043107875587409169966161028264276377247573810647662258770364948189802996049168981028174140980960887621173833699761470416773224675019518932725853606378741265901496898700866756771231246707003490597435094500989370039643212295534187042277090638609991769150688852954468386230356232225723123617648783029430173072545489986984189255786531665949584525541037956283288854085382469823017181422450328223669924957486414293725816427911268016466903412271353847501833126207543339290091979605676378251054337932912599788088148162183453906601801314483017032493745701453130292048488146672813748616975915124688777950829188722551309932793415725660691451765025111701223771146138748822776785110553535278047635535982709420688177190302329524538459663512299292407438025905538743253858988256801471394470121004741473281646335776051678417586211185780825949364927451991109441017602503582534907235136470381550727095185633884691229407222186780134151278301204286489021126630869896106899798093423249640292765310652690660887834228443852588229670506647309295916546872830319456077807015741621142839806606040908471367683629287150326191514274939368556965161341142730832718549079597227942998490614274405565252561456353806827222682155405534732260180573633243864952949938805122151679090006006686952245297634269252476202535230584523400231991681353951200677080164408603459864812250251519845758158749046330564641086165834235684419290782501075320488099754631001305831604585231804038755883757473946840941210307231640721289021368100023416645903014754652250296696690250191949517375484377095314933197985466014315504294959454848548508145354309591224341654679961472976035931618724753924984824141494029035390515836205341141212471081951616563550809406978820486321236437917764322318443666323931013007983667439456302676626380357151820287493093801290667678956365960519020352383032851973305513324040093004760483808194938644371990187383043178632038136046483758915326433207736119611824520105131466990587984589262269840553958134322922739298266256037145146983051290011308210126280040467065693205821199920081652434296545428987759418960876423014234543496054204527129531697858231656359229494886613586326394869150603100062057412687773421992113790553471971849136553281750297882129855935364288274283767323152692403336129308016189097822874218779062499955737193831182317820473503693989037805953622854165818740962610217920509470102984961274895287182696085317224016627407041385700641628223512742723158432449319583044553367270247368398700912046388417903674087672982522872923578044649893140419126432144051734878218935855323003734311429449396821040902234677981419161725233264172698871907656459514909407810322513586127589141019143284203896751791234343866392167788744935000592953223424034559334177796929016013227598502533400905939763398189069970526379291577085246405949891219785348536967208137539259621719947249047642945271104051660434971336967110504898732100501509864328527187660535967063859191031905219572659993891626867882912666769916551507386465019351156570514392857113533398274892780540494002979625177108836505184149777168829723652968083689027748905403497002379379454045327031581737661847422821227049884318796436008811276501974839834363957458271291374820940457932536833259346709591527794812519526070948394866074608733706014341936258488703629380737962783897992636748267574528719509638242445652715894899307030903250301228518499738130383014782351431046696161250400878804376495511458357588733590918862386652329132595549102278016175154304319967436176794044039638410492026665798924539500100418878788846172026889091569335595447254034246231925250214512647121445470355618044483788676424156935834156293252316205098763292879643358914543434588595498240486092833346366894043666921223901700514638178089315659496267378042732243130414253770986289962873890555301868297408420499503134405953041353545660987423135094367138657776640019263157220882818411526735469802173441311743617802381695996954234298158009272312969924207981968584710285201281103998579992170318418790325369814419375007592571272364497945855460034956994734143316663208808297228117330202257394672906683345744317861035301160711651555606592911151149364562390357026221444220771374219041879672335822152259466250835400887508052367565778442914842324114638529508593170676338243335667618106520191350272632453674058377257991976505776082607989862655727053204866864157225769511747565720528311232549383619896487207146402959832350506508041178761096372237441550220534352244929913522960280220416536430000056638572086707196814663521639357507037180498315759979442130268415091267459114485710195026134663717468717821148726007436174386027850873382495117575005911324117324716161677923810683674356327468842694096182368673384241265792449520229689157361591190039506832698632609904469048235362090124139889906379388363909064676736629431985605394225605945548907360676011659650049968884912508113073224582817430578998361618844798844852924433819642698705757189238383293244860769811831692746464516562363497437659796794408725871498694992082511554869523268417174300393168805832534452384922516699777713785275877531270307946842685211921007046108582629491920358146396696401061065760432054170338704977185075728745360983075315095858543116509569634647727412344796761951156097883002615296376644691258821912670562294946546728589184272632513239793272493684879524532696611480142268187849171430724766218862413197337814126705459490219219631908392741107862042833763534791282914559927621354899960657985167985366524820114603581880155910275690278683600255829056406849556344538804707118598052527760852763675905345334688669438497599810910756983746991253185151333286352497389526135743335099644031089105217277179344634605840209626134858140556478160681293428429152914254051706419317890828157010404181954195496827064528625202438606548057994415539466535312063676831775569637266333923458924754020100793895364817356158686743382814145821426703942402432943561929572304744752960936184326145791217335827286724358391295255934406432905738182935079228695827867088787209781126855051000026166354804097568292446879414115307706877185994512094175912789558354629824043943517426889155395637121808183407105869886488778293166307430741284863887358266116008056593974872010670591000583899623699112857096611438854378135455079543540040867248563768248753005599431869458225800410971621910732049574368902369731237870766390404944619084444682418837060081250278331065482257832634334073722826345155193101466995154945988811412215603446842393204204259089145180592363037110731917074954020156837505760551068073835774131502419007393052383415560783917629895821066670828759222536872346487353753767273654784103912196321101342863379780779240185350805954488545666711011994056975067597540791665420767929973539215125029942922134921086725763828263210987894191027795485692929383509642109414787431475034075592630406601110443228292128765441938725503509044060130041609858815790781104779438583013866549472523560396292339444706800194838993237119428096110248920959667460007406946917225004681674799124700601580575603095785780588911575916726220800135706035480043717328304586578668523938287184030983054184424539224781794111937935507237614013461267790161539478539184343776809838056165239130980494472868450921488655903546220171735259661135693621438227788509175926483505692062025962331881992290841603028931814653409574879038204752073238191190518342165732958039626118292047733868791663971403464058851941901221005544882843926824534122040105522189404103999679256932826410826708902145423776110150583693592279821018517922330446822694968362685526995107905765244262909804787396292567735478050598661942835854811586954671406743571206688703435496052831853004645356895674598100583870476333302201276144525450758994784623374917548033335314782660051105188377109989606225859977370983513780038584976238358623749035346971692492448375943348552466131894817798632925565905988008015153633788614444159991828052034084249368296461962266317361266655928165716174086928662423877484948968572405926606564495053343122714299861609983331825644537441507082824375666566477491683808236830579635106557332453561361553480463930519566913675062024264505740145756909313855573127305249359071374981903551231602526763802717058544952303093585545868295890883194457047932204515276132724051618821410411110921548292646834849779028130443420918658461183053669025677349471574587395098914027299889879753517498075449127215643401285311295588237668290907486832463274332508308465812627094001596326311419360578663150334554286884719103690906311367013881133449685501487953283946860631060597762963202879346173230142732118116567037771432476883786957541137002711701166533471715851305496599545225008635371658403636355179475239089654041603234199550620168748603575342887073347383016046157158479024590865784221171694723125962848036830646398777453403524914103543566289171656541931484442266286887900217822096740443307478812042975906025957830765241134977860137657596277456980794219057156537887096146327359693506791616215855691299011893954544365782222957391870846818942575286262237888487381876981187194961811896444497140008074103083842627344406588387514196992038562306354926701827119686063811234837069936188825112868120342882049094913566828456082012870627825689480627372714105506739142441564668182102009277935467116126331847371781030703239818017022445786739909500343641427567093751264583384403277696984660456131352702413492711800569351472810390065308648863847617523215058807983997616736136000776099668132128040332217281309878610165675684963724181958331112690663163608523168005344214441303197825842412424403980983258547943153459475754747783120679621343175341144871601554218958358489519143529136309124148158206305416535119700156350621898043312483490267732964121880657409462799779244868232157349839095755486273673555635932768135665307963934115082953856713524865747680772588966408557672284005489494651658340977958658486402984502848066269171362288668098546096878856921576849413711966713172661130414695221871294685153540112635536349308754005832327944355876552192596976916287364321186455465769541499625461059483220911548954374579684384432773011512566692013349962937666364808409942884867365889968104492290487559111276332890694271267145387076128046502719393048903561684904259660300253334014936692236853757611117295279032195471557666290753326996236821139479623149711326755252756387372116925979672464298676405697785564323513863835599430603565439487517048114127341293993597263108080638858795395004439253156343693800382729223740616414058235972452690467564719670443424549468720710518705262748702190949823685696770388966213175786868140033388430089216090960096031595640961262210315150962376411488076683626078336409757758886911392177664014188275523908630999082182336055201201075708902125806120514817808098219640677927633917639488437500934611690970670684705889317210542455427410594445567269518616039979749996048068583039294754451519623032460547492577255422274762960819750603167095619454376868201985348233767690207354225939344830147596926474911564529283820882328001272119981414440291703415617743330746914250804261154442669472913653239592312299030964191020132011749564959874087217711606222944422236496912459954289162499891034681246934914757924081671207538718450835592941724513486654953657893365949147498369275081770887283323036726790370583809227296696850280182415714346825617735408004538087572808689092781796168183249014791035419369175460438542156275660924330004054541260825181106120461339979991514040931328804783600101071168495452647729133987598879495852421014112275002024885689188510693445237762374757525737749921261658236209327411878364824170122976232384189508632479757019365031731585951149760444438197431087564356968597259342875047659741456325218147241417073709809035134109262771919603548028547140824124384403356237290423309799388282919209197665684419152368169115067115277558736795333146043239307916032997859643740469291421119882805684367066082284722038018093223324950597433645309241479732450611420050268816857712865220631130223640148585997562938420325005531690322654507758344407382203273292228978624735369640626456932906098668510736092764593619073021042887837047107532205745551840897672392218738479730013208267923124355568857693987844466797345909575613728241945792896029213094304972391248757627533746374803324715078649973138777399419858391796452114660199085375464510253526709386947232639194327939074851212467427894349806063638323808357589548792612734287749211285847655472472178855576144213277178608011379941506922304358997917205649487682759366504122308688308562761530177262448812246438597881889061487346234946858068287088113494502108924866417082357499830853286274006303363683807151660227095007104387637151283301239101378503783006036233548793845245930127367067261509967693543785643861948954563294733461085483097872751106236304664353126879918684499308994691551799766504131456360043521259374280170930479185720199368945368038177184892609147708362945800346597931056534075895116508652448230248354184420321994454000555760845516454213538927879356692262286309092817389681146494699393880203164403075570491677294170686835297270372409188311268769338182696647020515728607094441072648684012381238326877426456460086236935892253771491865134235613706622154400833027792895224240073922129762199788275761860120830085038176151542057236765936127618602755569874203359486033617695062504565484632971135801872679869219659245838143906563135568213454792789427968145273902180500725627427031508348863734293219817285361037033997007962638780966343562600969263427770414440926701346109118488184797378287358948225075716717642404877072618117368801720304155208918969214463467471275051825794350107567900484726352970066671776365119724765687013744569073060433641045621857990907534005737655134827134008189018147913115593769319271543956153511139477732826690869428502180720518572062005752220301275813792228855710236128509318082235825207067529664313646376819445238338646354802341761459393898699621134734072489788570361664278434227235345400551437142768761880970804486501797439293791871099203394657378576202678688973335522425253222528236489068502019271335473608113581969287698863118870798609492028435405212619109942671225703296919680908158866723867407261556262900101473590142593266420383228573513015587376731874550819073788403083022425709677806556298947307291348139846116012166663360054637378857428781847380340987241532070081874172799088934199730193280432326941069619793304295654749194973413937864659396403302004203791843848441843535111493131473690635672242512828571555356542247198141539443110413454090948044369884783415980260072548986647912544431451113556600002027776065842221627883680805454953553821916845104879181578988798340144977392044185158001517484965310686804080279609944078734843389881065366218113634827141758733665822847164424585152098886419788652329909756064693679927738735342396174215185696623343426303830873685611175518622788047231542846123646011905778357704468982347951303094978074367290695651603022743490189266936911889115965139354766127911947875753723218604695661081224655777781379207617603368033379336941039984317646103999164657980897322905543595160958578997853844688810234711993584205905275370054852933461937013742783372644216277313648919651085005074779322144306617084439229174808765308379181199636954854403719408326767941583860054763583032803258518950870985320877212555710632334796054825254987822724976474736796704016606210939012864102768288008753082249715810413491414560069989533217597707166120986850425924716737199819407615225593840684537153357532611690848741867721728782022630966643115639332715458344620218032452553223162282148016691515317638182152767665464133880450858215615654387951029809193237416353398835170020982860905590527936057948586357956313718519071150814524717808451244703949971884087625826338549339328822581892476704757872782403845767784364997237787234706861053880784723589387495297947661858503549996705647541386676687987703585026836323210400894489407677569474492916994997625294155737900127738801280673349368019834000152145228501203229038747400541204443238817100833498276580883055152246284216279610092151244900235813274074594060142142833109988754758653700657660446156008483129613650366828813328019445537023009788999282966005391612839940835685499386047832665638561244665330866928023845189509780725234817647732287090912874560768970951768469859696654662824261099955551595098672599855169939230862036289305324076643631469046052592377911658955140321891877067568365580418780643892162309360331449144721241885463560028959192978800850040657498498173880248518431063665558986768054414269350264943585339989266767050780923466259770756664420286426273215394864536492855201818412023403577456537167363054717038784709504019647912164985375279465012649722306488920490508366389974786851098923483879391152162720794529274871443455666284863156421077573858994577016800120105852265962695753662571301317781803831279991757265767859942530821134245844260372504136187684368692704538528858938956353346624424815000285004739765911779345150792357672615894513225219328758056652418822784453521803578756702129987557241057422630311780862335452395549593085360664027890226392297699632320612360054579938354343090305038706516413211763049859417773658510112435315853184192494430197430617589510682680014511667392218972130393284596182950719155531106574413194374812862762283509329825279956760141873641162119611196847673696949415396031336569884563614836141435084743929966908527153769543884463967204332733494695733882810191621405870812153422771526303245166469139147518867633861855269741512743338211242072012395707286340816849300694466574156947332907688660559554380415350640137959827360646452589931782033006928046906504606090363324161676186947918800184273609075252792839126935663790449950731688490113986263253908210676071104981680626599915704783480671882531949070583987240998889991252479118003830087567401248910624636664669604641535311771156961769783864203337395602216846319154949118113471960732030875718608818375142092598863061150701609568938349508840154220716726132128661772220452241007620359586940976026102731464905953444697207540587624754196598239676270998357514529414748582485417284731261572955824945557661174691710507479805056826662037262718202631946525701974867045474418794022973486692842556278930340135611558630812193143152403316431849323171217300388484057996276235579636476133415423816058826507081821075969865001475428876891728558596654987785211864628744961124530183236155644666991868932615560620364112352329815328376074960133289514959660341421481304315701701808874936968502582943059079027224279913360094130120260268901549034231428157291159927596411910705622565189439548521480303592534464390736981771170793788961045424201670173194076707205799921385034459568974845235200917274559008816668583878088454292915838831664015896875120070683431807754386674882780074308911271517892316924735368216177743345006739985696917430709372943333305363074156049670798385774750734238364937892879732964569836858176567530917722232926226227952556911190294032326896946243142664460574525995831247672747195216334332398899341783519132734875159894779491782041676509728241132428866062564086667844157281973054097842854101617717022444730179541370116763840432330231880474494102763326527254480686199385605642014125380557581052176093330031209450409263437921313414255477429365104359817761020646173814963464394090022954439233629838306905361907590737304262767009362592082858046700508627783883808975792110902497809342827333316781129454875222500397181968623736049030365925956064821426886043742563951889324709498809379094081313979611683768359259636182024388336701113369151129407603059513205961099142267884558420089716416104670221908537873758279149253514655498670653320748579112593698035604793031256053050163192169144158593992862966822713487110607754626209604526589852949459058461486535202568752785434158947152418759359307663864549412299594306747884304098587333227074649990490044394267924605335843274075668543644047619889908410370866069081917923367910823952085359224856477892730323986689838843246359098824655639146470836567985759342521841150735085164934330576621007795825312979048609805079029872081772218329710786006010210802729434000107820625543885705835076472069433298580282502958997918274901513979344532603933255389257722576871496272434747806212541613407189853766266640154233621932564215853867703619676523729576592109754665283392526448762368777223516965511825445143100971069859360055173728688418940595342914624866723490835605906728929507618814410276681414683103056946935209872445503867247391762571811516769920711307809192190318997286793583712663172774638217166778704718540823703292793216435544419516975009363202334600629639175252547688576172953729738673229583684882849129858463985445289501685335177293314673827718013632514374591469888263141295500794172794134085357320540932359913276022780403686655436016402036302736459644714476490450546232239219112429415687750254304409058029744566071444981524946780773220955953356081201602257013501592696783798061534050338501564123626039811631731377489675346579003194893236969525098474691929632292965239274642899727924505460369079624730235863475583112549555810478693979334704261932191541706384852825576179407729647102184826277721534844686498431915473437914619118753425342879301416392580448614359995500870992383860581277229011854509637504886692507244692754067989705762915671787014931770831404483288366366255013517367632109760750901341120489455471976413952511323240204367504208482897772453310498561578512044470570748361809912467431763442975175530661090508919451607297868799735351234546248395269928394001999380786288632525601185890333814730902585462136543503416340529387198026932757562329145409773925326238177958171909801170865143867610349928657782846834404250977887837114255731978244693770705609543401377197739541549964589321794203192036108924556568208561773021605654166175830763825548347513843941337269586292718085412459560662657772610402484726313732350900451094987705524715750966322637085973468698134049666305897989182836658376276853530047427834919404345007107408492238952064050076873227409867590468298878749437921736835519110650221155932990317568784723353846166011517016873256652870181177361571088955942485238253152447098449859095737617255954673176163730921545678237528706737572624705343219150537171655753630736073542947167201060422632011055625347947776153950546527890482429209001698759593748067631423901734608192458925983548616695738937406303801510306774145731418182867669762863179390920576092260285497853630608930384680219418878926945085221944579072319656747833886934758980503824495793727650942730825383814412606017396069985629443077835698152670883077061679568744950189187249276545850684823889215902105470907756338643332824127504058530607753922203251890256981341038220085063542214250128639089775511897506852256683839167222939872884193829916393055708313689942481675096828603686981671371129210475021242391214719749857854323268870725845303669252676341065587745504064638015490034604088853866768898772804441722082586042083609321969499054841405475998630239811867608547508138958064728958126128606068976241379230732638138710730083889558559168371566697210006229369389554906691146340982862031640846849239450799655839452731324294410075605592440715237723898875258619222287331915650781513706694806556848639996075710223458867036566438731794437464590115687641679741138895124947226371177731647345169628492362114333742183596976496016721439727897497158607324095189127463736360501611842814179212324892220807875085108673658804496294182427570626455980799032570139546252445043747047946380498021899616371974000853644523508937427262034352611058037202615390384455654053417572951147598135179195933329829478712396487604491086667864417342629951505010530437800138694929729387549684441206317747570863472564730010223415428335341632839006985764522178855052528668147028617532345745448792209798972269879868224270767493038009426413310629148711199085951118880149542628346742529796940352221420868143307147666920791967905857792980830021727135306856514276776747807252376116449216905312525404096309412065627656061076652754512705059606842631389025512897769492913831156312822308455335633557380355796804580403948135657355438421081272797078396489053116315792760291408541598330233233084457457958599224509676668280673637904229165876894975736033372522605187403398718899561046482125632091904274062658099659859927518594721678351294227295349270085541400816725051262547525199854562140275370870802252332553227203921627973437383056507222151033823801989709289969746401870794166624612989957087067542692286720378312838458258300960415100955214050524887867258750653922944256982253162361126765066249983748492672399844885963685628476272329481975288834721048949319229242416218091198316758872596824173545278287431525309045457303255823927690523120148559546124954637351956262429880607313274379399466182264657240210060786470402330067566120157541424013011546664223941346443546804145005151240441026089893493617043313082384321165822906896811922951462191873951172971526793736415642321321638231893490412200738338810157595994432664561136775548239369145918630041093802833352714634503980621919441740484342585887919490294682437322780950949886977942565936127806604722435017613746308269320566415977692546562268009327151705168548997384270689339569930877350781775917199278302427959604993675517475029553145047613807255429367061529379265692185121632674556903419672252568721426838911140724098837624141518245116597676963770064564041683341214433395258984472994292736074479935348056747306254346429585523400227343744934926691301419387185432084951051361328951117675037012156685370736201611009255447742196245269237206182024383371290929506237964565577086193460219481380986093062508144756753905312512827423518110908964398656368611663549305250812500685519524207079257462682280984346513241297685014365268889632488942400669852518052742821923906050093278572653203940133845962143117988173722447325572779469334915097322601072420528468150909697339637179470134321467130516301170061946260641590154127292091139568396684400690409678378263547664259283927444015018078815150216236598088263666490153179106081858158561158432435382268408950380482014578384306013040970583530229465589225203735812686159404780243168409851036590432927653658705930949613291425124558540412255851605355978381621908533073315483770701572163429654420387225508146702573487547115097412356448911113854689771968516302341727668610515169958084570211156915024656204003825485566057703113208070698378559186080958301646963353665439942255477714704040883473226862823800897600327280221870759983827955378782536716930996868104048609577976061370026758223443574235123935581221533214408135213201614892475953602083559131319211126906260707264895239564136958395425714991821774909419347658692571296444489129462743089687198782294987189179667306455509847804257811160115701494542213683102934415184788365208197098032831466865667954410787708007303712328233444401431230074689960233571112084911302303652156581971593998929338640949899445397622529849304113464145729952085897972921803818149539522072523484644727058055113217509653368020654276389579721549514122718583743621213083095527178232699631512633219822043560245668317730245547188865375867701641858418038173338383453244036782971785809509401335876304560070446950629561755460420212197878182614220905692696184697678333651973426982747109697866848371462597885992218812845172026938029534312453267972661247970433683746873740255174944187053931400568992600378677578061216351457792991721058256504633173533103186450507720366241413176162462968541656546958342671970223398709178774596156685487589871658557382665878956547259025448294976642371002711983748022232829116777164681272800522941150487046957393775248568100968638003924101468264042753370616916219228591163838848354141305094906141542376492127096849577449198314932977057398528180249306043127210463768061937895908344237886891567525685383405794482882198769042291779587370180230379963729272138129797185295359806069316068908460873847360704708964889497644609277528175149008329546094655740438634719458913990508202560336509471551386508635392488529317489884764099892260060892919197562047193983269030520047726871550576753262154709648441225863952747606412058803226415130232310349015318562029040722193948994491904870470894454993438446912198194305167482711044847108546798745404127108100361740794166665623804212692643497793094493885677338135580424278734987342186926840829544046172101440670609915565814194513115540741308442108858507145949528969938496069852315313775214658830975344709395725789168236077711192609057460257641818680198498258737179547911512408474213363086745618133721421898971848187135080175696154699652560684995666897892718888511846950273154873230893810357064158861287641850949996452313412522092415227162823073203879084207209232816975256610510265711145912731060233941832215195873543808256611189173984644198999159454510828965301000230548170065474011562978939089681000248375760757935269872623348699944372867463810222443308903356279811799483455888894984386122431876590894446376566900143670585501558662516635467855065322442347148343088983501293378842223335534694229016633751639424328033546916736404475399430104310261744146487952874722364572871864736920752512268993213768362726256603141697845273333146855800904486986562217877002408796879509530005273522094353750896046914554047747692579134206415369876267316816942277617155349437590652824345128735843936948299423623333922242012152687635662058403460771043104802008788050952348070252891050377225171566436236335346518524957872774148892311416424089459468656243370217205750324830893629333979396610563270627218261424157509848538781294813889229907840750230402386322522205083471508167794051882898679905739734898558125596031346202333469451559182911486067905208022746968459120328632952540944823466816636081193551745305266445078915609314335539347840408298988233106230938819458590978273248814420467662522847736482882711871545203986911205653744368614227299385089076181493419377931083177043781399370737398948826029819818996866487967808161020748086752901500483533055618063524021247053466187860853031507306414678107437521180158752707061185957882778309078561741431910549313849029906866455731200912132903379471456110518463898466746989419358044549575576453881776298964160946796113904713343652808519937981077250149410513679329687680679364322267885925241550839366391578830171411554827980000866910909666833213389564134071597615425560369161148213045661033686438856803689128074305678840944052780911525788012445540702306895975390059802896817166630200017371182757911022602737311433790187495276244434698072168614866320390978612963028825090629111129861793090718696439998547804543995239967766887711402965537514469850583313588240832344828364804615060716003933220046697884000474943964828446852438910110574468894287281699901722238849449172397742042780369033674070873417737381676477950895490111950242212426562526365681036566545984135468353782035412326611935248766429996953190623647555711093122304322176034188490702868032548829366493139466299012806732313521245794937767649551222393672912497839481622232322180993830412459980781807622074190604236619724130125343791493937723843976547168056796050892703189106026920021547714769815262778157845737097941617209085626508954700281648757728972031696025592849995149399110268191689177617305446104585834496908262085888976880034675580765303590367786247121808099317132344970440109562289602691441635531508323974706549214806972249569905020147710267215110271989052285770550304432455335121013499105964346984167476631656929352639649324912024872794983215973001676036975893880892438857539451022319297784628201678974901730013912968657733845493742206871204234809605484293924956741593330204390621862569524322953304260204350055159568678597012302269377399860494018319156639587033571766501335495510956141962879092443207462647202964825569559574753801535009522000348178934961328429002749311648841737008869168518021414143208014493315148643346628796076048811044881097790382427226196331762421973965670919972253149133750572836680224119713160701416982088459300496326882853164860393112642335787178224919961405817284911376390764237705181521405409390347515265445236895036022484038079246570811342794322915410444508440380116113681422784325766035584017803078433107559805422406791391338453582147187792251020013711426109953663156973745494858587723706289509614117299014273654875709956404873153634892978719104144775871799115688488991145236134650018506866624574965722132382441588999445775773797156644433657208305977854044349578712687560373266235571446083768842701169179952480264201633555372003442923241537321665787808111905591290014291066119990695078604941217386017679635344652080711023312946958160991489871104162616728725301817579646106269812993250474613565323218548467456771253086710289359669496636956824284173818584481802289992187449846104626656750931473542451713160498165520319353243683576738099610229444502678238843040036651202321542811584941975032693913116726942313085594614953813766435239735305620431685480936499687644427645395883897582366690041449811905578970464964622183672695840541566851986955606784271033291945647689599427010586854418358105191787779269069528404645510894295254713479510646551216397348524710044197185189883545598152552295973656170289269490009010303832139838649914462189482289726999594535444701256063878354908797008489720164911472890735940517151289051993586372797765143041117375071207659390866764235290891458453557489979049113328181813200083115062522005366835166505725867184407851773865864558536168664562221210395002018067480538187670933432595450382980674511513946838268045906474111880548466554496279115723079440450056928584789178125107278851483369395004156551720925292134288362705232698424292939595381434372378985961579176957539472154945028750266159709622588360662515936260176322738379208717289966713453280790811080866288385659442095601820940966003201837835381601133823450137619197600749242621722781271072847429492581625455199298808530391490698023371742357370338686479944322905787279624726062748611866433281681728461522889638589097752760341596099692008490163264672805861898895978950302724249901515792121347127789092602873349253349757726748803262254243479723129946151113178547754079685296622753994613430367499783724976162532907558548122199194387488917385442555947412947647748214912569581505301333192508437979906561504059882457722165306009970283813621808040034710642724526838771803667762518709604770604106523747940053218664982663441832692541943027222800025577004316542790294680870725640991732678624291833108898237390648990409397943197896936350838068614420137423556124081366737870096132863698423428889339513929485921347375771979727369417385626065859018805839712322462104070570957182280808163693850389041575196138583672372308624099581432961499292429663994923983373248829755050399298889621901304871803955011654456178298431785352294925024457570289776660669011430642410419293762363754274422187345529421125194232336005579583348649506249213661071255208267840412892754607669682114815493623071364824096665531771121191471035180087711626596526925283598889621220875729851645783497453074665969384796998518732883243285353391449361961157095293898621642561015056794902561288698508421081228378467533966984398911528336361295001541454876660078752830108129184357259232809954737258158366335759278664339201197616421721461967711389658134054030636742259597512158040061273733918876087568238318398505689846674616881474187957536602777466281786655589414170925187405734067284926959399150840200601831094618021330855798532947425676317596173355657101284703456746726150820337740318015324201381077352054603760558256814225239799927321001580295073201275953785699828057648502476502370816911109055043315239465792932108859763158847043942691768932386984194628230255670779956193066443158772275857127938232473003094127829236659158353129996862846808149868769632107920038109055614487193145146876156912493738767960860142428048318386815246078400925717292889912177358820959809666816608842397973526244901697783099077104033142522986065013173228496883803589728185562275269784767400995228165574755148470737707315880843025038578738477249760437855750278074136379084966407575822729420879259477004159682883000213373027650361793656904553218515904285006610401756211987952355226326121950189779157753446210543781915234520169075054224789365140024109499037673903200407400933056410002301468264097831539834340694497561988963674507087316210302529770226533246281564684306893844245603334183437303327238023989003394135601603702702168763203691033269180696368309614963066371921687676127134835286494737558682196097603786914042883414099164558471315462544876711387285721837543148747067356869058001092926248573574336436084263011436802470404172955434413525703101860374377189835867336829608797010039719490495831536668764977429493122426403646416028882740740661959936239076508227271139848424225575958059846554931082890901921003998262005684026633037964936372194242167977906633740073588755675475741123150623736095164768794818560864720648216321737631173388054795208062501336572276977286473163871152176008157901793549858786709842672037399527569493470374596886514435496982465457736802791184888672209772096374978656062628724923375179576337273220849370275090607198842746003539393310330934963435893717591810745929205727291889301112363222027264852595788817463166699031830973718933948409486392323356566972951049929427090885680184318062049867073867358340245727494490357223833338848623211514678473642337805760835718437817768141491409574407761265006259975509488685395087490646641466466069931273726816639682633929601322149468034849034668698471655582202738981607887947148057415273778106687142903743845629024289628931107910584100682923509940209404559282317637856895926262822717441962671166349285464002996697184589500959431767170920334594906712775871879440111393069757153840561475233027306919545871362329391133123744984758921196488463608636073408792483533851574507627459211535499138079808532445354166315800745859893783782773938714390086946540945531918038734944678816979107021075562138818885881400650761335226580311614160044071961786146931139307727588131938586387758667414709693707866521204498620601713149507532593498745450866669827110825562674275640714685316590753337535917143295241071125825837679650640904239128053661160559613307591647917145521989870925692776854198562889970399142901073015745771553543593010637861361552562055459306646871482619680265484528453280761520354482271149640310325308990230702016426491650214452420129379345308833545305780951567255741170305139615369875252190742802005545123269509156357558684901070966676178039004208357694638337135240531448885288523686081379849538931626608866344572926450756141871345622615791943139620728876258033756454197056555083908706145036344241539589497895984377216853969395422117750849760168810908663114925357095225266171173008862133863268187667663944018488795332317386822518987006252699524970844953455402942048563285639744967347811862747057227098030430740296545422368479458957105858492801602887529784315211721764043135354501299803088933508921794644296583726053267194895903876220931936362038285398055153207718364706818244722045847161012842957291263109714304474601234033081335024158243575093775850226163401960038801190001192776416938745128228138246059097827486588281206519782569840962545422193811223593379728451757720274867319039121001365539807541637232214797741613238340780851623191368527440974896728746639184186431896713106799077241350682588369824242207830650406037927315315386543737450990083222145040462731220713773976782369509497978349292667235198134579613050319131405763191002961921386853822611742016281622702658051122224658832478156022965571110208453678396992204409558490972727580359921049529172418505346626983607079359024803138372485834104154942480809026220211571624284170596943414433848703781423095112637181476783619622150880775922867105157875906828576846001650978769329050582567196339303828757405864613299262091416910562245792203885425418881063671069895508147526239750635820366682721565279467510227132814377324692435404184314115936657643334823458599383035901820911123380501302041659936640523191130083616424688544344018144428823312978526425929546840891235269939818758925775655566725813187947814533694116348673252035731024944428992981146955219649391187718858921417194334684193915597796813226037800452304590976155630999584163232837029523608228292088302197852981395327197715287062829169583452106936535463248609072973775143790645623431750078829135130948405468056850899770322972984687609796908073902766757678062541469981460459416117979928039919864016400278345390954142898068576060708835868291054818188275787100576978354279155176688287900293330935865521496041734859768240690544534720385271264674836431793802383154377931022490073765523242741645440342868060115478025992316286808266767788264885114854557534308939803108844707999590774198339348856256971253884876919353677959709445330307993989460153452910785946792007639184002822626142592421869727714080641206527381773476848136311367220017434940064023010172937900370248769632475352767750578913185916932210784799340201697213219442064199793311720784365160583785300938936659228880904958235149334326073369486711569036537035684300773584059288254636218890111359596621689510013054080412546872524923170596242719938991388980226828644408024931360361800237885067292039701276405420891842871792179726174094354494965078144932665747015148928490140505512285721815646940181972314703070244860803632929764895729121680694312439228071513490955129243122271560484444014535436003881772589727809671046150092146165913234213371941471339031658917831625172574991457324841282950352510177025912550578195203084232803691432514982326241714945736956251462848611841889487582665738433488126116088201156567948661471937395547602621708470593871929275661060651024191898982724400981278532921541909344655337478013848774225153311820972037032147772402895534689668078043913532288655507590608203719283995838331162529965870825679799911780663858977459436329282305620421408017498096394079401188341215760997892326809849745064271947961627374273349112668939732772846572696552098799617540349630897105761555955832326945219947269718654871849835946343510229546265668979731841388849831399949358024644774562689397326485291942320722323177379744731897088074979794151888059408346262803200983969431763858677427302834508960931796168319210363474422927917631417385664891004922424404420676202185401769136104063241567835259980468325556401181789758287943055531554092633233861139034381635719514574146867811986355666634497514505560230011913689238444755894952827380059463214893748134767026959620797667886881015694010062972794473244475218231605196300296191325443206644657633594712250123854708801056004193537761085883756871264540195887046256634376376064867920730346125986306843001217003028593838966419883585613830367441968021983112727926236021499038310934525076741722862564848379985969955761511060742842705035115889724894269679567398783132939523114567913814691104150220217468129283044471081782321886728108358329784099334459604554462858403409256873071883691597833923734931472444811471575159948312934697720766381405596558510960176661251137452043103130271273700485547683393312051474152605762031411984272673509924676001381055778827995355837026676069662301588090979027345104752215741115316080410307491361311591416518194259555329815438747021023657473997110582203886655780991458372307916485283350716888746126870858305325020738350177450436770586893316870565678742174247855950440478910745074520801433431062138245176778610083259977071138695779897443026969549179022460519384124605953663207200530579327734778095526169677705174050723278927134878812134939507531438981829959800613557993454330443796426211404809635946954513093851054653405203058584551879778931044592254981546725050994609366974698244385658652556800458797110934082810938110621686136635051326696399630468682989401617297750605150718892119792774592376003104289909466987339083802222496803912028044778053388159576356262803246456727917986705195455344300262332159308487974539827508078521453959968043143101890506665192496599199711204490478033693958907340745776380940905903826741137216869423714394147204399192294003871064598436735632801772087443245456992245051638166873989856849705068712547785133645954332145315423927291478689836188679289009188767393929221256474368335765354114846807047861034333051722782914618840589532626724630146350963297174244103938551274818718215463906574303736636832165940729129803620577698738145687417724444087678732369860119340016155828830695081731081830056802532517069003744828797747966777183115822802024597426979844609795356324952956603931336023167383734465398290452399030017135180767977996167426652611034216287684605830280952943310144420473132519316631263419458537249946356941806285264963465064447057553894915066913194015719659966262982923420206498151828820142008013580573270247552985510524970195227536397806891888381270870748234865260983834633060843321678977851763893258544199623903427773234743388670768344545223133138232846397253947415913122434209456487634248356287310327807192387431109186561724436930349281192904301823125151029218819866105991229862150372216221106173887626752611439411507218349496771892564820519443370115558487853739390637058040114246260990727905288836967815378238013517330268262773130309620946139375073414075008934639896626257772129050372048975816721634390002450163073629210834261511185647534677164007243252436950776079383838476117131317983322446732906425705288016886194310580104027491452985696567085598631776649273394365859630774634450378724110516156366407187813779008889380071034803332799560732662271358701773894734187698314782639762520138830800445733820433253299377477592513183563378342649999210453598471976162188820504611790157825907501192159242919262091236471003582284724129820767623844702929193307785917959473691095503356420627875066410002979752944754811659848528245825596735995305167731463678430390839638700674683655718162238541892767333733409128146368413993596550370073814386982172936930177343215431946791738050450730512916348518382479806463864265179770593416931608703325044890632591557369185163364592340221932118444008449707973831796219587874063172628569447781112636842941361659817479187118754654763230974163588642046009485764398487408682625184025555264601626792111872413676705739663391990280330178733739931720721992977259510707366304179152663331787196624932257125401243597376730734887946565948263132703887857003423922008582559135801062091460414856301086191125936626572724147963870516237566140445776927068578648414039833951851581322849717589454692330640861107817830357256700836941309055319498315221285725408107437415810492693422303006882442288165331498863309055646096731186595750440941640217439502832620194075130800474203919234142551669830860127377731926211044119439196680888268488039365712322211236418245997834315614520700249095648196119329212128209386082489001561621386496955619780406346102458602291379944043194995302891425931236020761380950746099817546660485679711563339014262461075612667773403463388024965502463629802736968581467348445776596692665034342177740641253130795750992504249496376639127791066826678897199367769113881231685947717969551264106039908299601358600929724718184878948254566829140295692911518567016704176156345937578728432387707857460390905711652343441965276519620270143003267299150129705613631415366962230303594124841808220079464376845061468798432947653049882293564930062238991340985326862742755900135876182715071796428987118399988500784030231196402670678545059470290653168086912821315921215067357598713299331956550445410761881348605820718453420844816505911249990177382167722562656956441403475949412848597323785616475471465195081839509028709394884611582017420623074441818425954114686026629251609280316172312366188645564954881619274283435929872140100158884571083815283689617806926746620195863333861365986685361441204240836468555287917022661824448625908106774730782624133875085012976414547550480692136155494265254913617566156583822673419924819069210418610691479553854144664977950514850609790657332199795865942755037400033429545492054919480518613474582288982401828527254310406321497034085718978159682665146905822766593913397879970752403511699736002391603487650163383847213920712005036715175795317629939304315036792174767517471924914660580948630741744126949467083438656999453133735961526215762633606325001424887418656501733359053238840006114131190241586779704716723068235975711362172980255397016321856813222628568549820187318903340286556171766778925653293244951086559519175922586215668612359473008315201505353469533401279030013556263411004415408475496332308779408460625524217077501439656340579939496329558237772326189917083629546954281663968308746940341986513128805562590796884643081841431741523842144853740389090044465536345033806755538547193618942657288076891567902577180230404316780188913702553424488299487590152771157794626798315593426940043887726082062106216414265909624664659463886900048831187725117329210380452208165224105552991104278707823202637279519816526998985470980811066739804064519379053081753667163046807136863211351699019170529149025842765919849834971952189721823974076273342372455594484660032071324924996935557269503322348100445588167900290409504790782434443256156433670444389377867576168725126407524268987535256170993789074728984191667257989905744928928951559757018421385098360276000021593110956785939659151183369346220937951538518642331652397299968370406190613124209470274729788372222112636881848392411341676003673860597945279400851650031566769844578287329879603169190445799001324600679208310747448635414812088319049839497127049421260503125351009732902772409427508583675684933867620343797950689533044393693543755225412300957131244316179954983656793758040328886589939054252931746821984227284452940342797575700589449116370836147637283418149349684617226615570538076893259996273737735578066047414233628659961581184567660318814413698681585158299955850421835998011514992398482130853334915985307057507216198508316063002833480898336333933641957517477875630225825395228827232699309452100637129304220411533643484594150275314679656554509778553748674976854949480496705702006546051290028368638861426907567981407538230283762721051051197717186367490523986448604610114234218003976657995129497641966414905505753798507357759222012299810884951594123870522196924749437106078329949129453476585213352458175355851842364966762297321757293479331072076772130414920322755337540333405461880819232078241642380032348325213916174604889689193248619020396523014833978623399967459572679185682333530012102024119544828534287609817636863967048172750487305975701388917614307792072145347597241920718072880757423822487165477684097592621239806379526589307809571917989101512955068090556909100872213978545330405886023587405125391720048255496642391220640907975012363863861376854390316755801323008327464423822556619630177445330192396477501052702279051939517666928734048245211665925152458763313019315045302106537677344714860376617238093273046114442905077991468802705981375984973974809491969416638360746140487305876461930802727073898256094152435543126202155927344860884796098920736788548782053968818390199837330042470153201543227408931840529022956806060128940197474805043226797580780703372997967895367267887427021018503788997908475448080035908240990840776542667254077039307283966095078346279400853011957991123661531684003691929136256802047470762401014951852036067693946710942752059899437436282034191439811469920852284336041661446819670528365298233433490175733593055577193573481374290617275996048502549521762318001583710737558409300739273836242964819973882984189784925582856663000896834123807061083074228108255652062912548162724565505369655358971416931900844682733055650831802002669357998608425243432929052585462528192205106615001222032043296400705662968682011859932655325338613211518725725515565089366646579040014611973455478766204134921338623433346824925911437372428763905257463612725235288201106818554220592340911107649364725955515380884932380798205369354101911502434608600811850941200863673255910070263578641119471526099666043391897454820945358930680875396923940829566522682159677630772347690802047105184940765972085288163431710548839603743324659545134826720690580776685052942203939308457133268962550317754522774197492803584139995593564873850966132967580804355304243925084771214238717016944055752846389587950506916260203198542649304190759463012888570514023877293582410745987482524622838623453384983785751503236314556693766250058357410823248568768201483072392192160355609982344278552143479766795725513628667649550093782560330623058666199810431883829669184116293490180690348072028230445957059086720646803661753091784716440693609002294422170289495781716126015008404437843888393758481426405418088445808008153870854929795025780764231401511695776841242818839579114472010105438741186029608485572101400647113828102182799044968967683380158081445492867448045473894001175434731323757852294526691678923654641757734251609330375552287597552370499323047397408184764342144143658023050701484348674959776914720789691602008904130275888587911514572384257074705319088308823989862605922762795434266197297958775770035459673773558056478725582189489506943753117478681948237163981201795278426416064425189714765245456526964166505042142311578768788721161702494817033416755780609226273517497203209386914061824449478706201109977092777087502361063697486001865985456810278097397752881570664470084621958794793677176553841041995118813202675115700338406744656901099148990222535727778053191448333744940819537338742163128186293178727440532080333089305270654819547772992077843357148705969113003799980507661071801977810373544964488842274661314611486002649598052779238927747062328842964047366481795272356758935670149191717169979707871450856997622889852094771323492053797364484409490633216178627233819969258043860798728289305219927201912398342943015125757726112389872822711871512648140613211951006132900687146787208213158513968408195114580529361941308194502198895719296646999626103754956082787797277683837513115136703604404456914331594799459737110691295733990078257726375315014259500849092875583631453769304173361323634748130817281879487109783616398218541311242012562150932346876832622485567744060520532606010888800037592459594055375552953425340940993577694684032247249322502669521389719740888521246449894341351938328670764329346200977540477125766873931335368006333438645356083267950345749808423654179847239027230841535098473288956753322825676266550505489622303264931053550287615379083514114483032271932347420116600926989863560260769418504229566639603271309283062024738429912192725461021055970876222616516749059566711709012627254335955608399641232212293700721090252558284314429853701316825519314247687136860752897986340637412857648974774568705867555023254792398121414303742724476551053783368580578143494658763334914994209210444457098080543922389603106577971139125553274670109807475411712840732913175225690262244879189938509195028497889111007403637049609316640634504713005367721573323826706280905164983310776900280400349423027777792894251976604931169931358750999207168382168327298812724702220485933601701376902740310346691069951866547911751386182153527740838715564622190844761575017075497786918964782867213467044106537866002804786159443757172236491393596442034996409849116314853577743189136560725333423868587885415651308618099846901235581812273764435892500266963793288083525452798696508144663255536452280317371706060910682671522161480417953718768467827393913325685372893153575301705564381659863282110678700603372915370170186886477981344476639887338448888867788607976609636339828791660171200260422049774398823005190326732955590100454477096903120498233114531658305376821918945779465316118707359137513262990914669271599363766772257204323926002168444227763595287901023683954250040050555029081861737170973896565875297835143640704942427203541708416242962990657991480775426715360393019019127061247145170968673264998257296814896260843821583265978531507754862065178849716965401465485232901250010925841090991099196301845860400264020245700064981044506647765358086869742428100573494848729765610833550370016650103666431976900641982893483352838485477290354930632018854627987822340224762077048070022222714343375823143008337589749826720239330999262167903881728950572984387122057230125475989738308440340469670417791379901149566563189497061836101200600872761828548838424825209890610902947952751214995079564532695774776622249827464275611194880909713644175267850884605076895008495799098632610270184158350400205183171148367786779219158542148955807817048320459267887216414528422138037434252389772933521762496396042846831883261041280612375976655715806677832455405096590991686363962159796142660381623452546015130235044653884005499611396276294252793988788156049096150426390144435705020574256424103475532069829786569214231664877476002103313597035577718332433177951277031224557922484798840917144766299914941525308222719516764304411439915273976377237907916218671729719282355544436507529634676891140736619781278405778704779492932956570827396421655144728001882109735656233827271512160699736034040327097043818316644057017160831562674096101177073652150873200923933028159168074048998228266600462173555984073611614301750334059954676184497738609434351338544458063667287013354326374029686572953292051770259640619608323137899176882253408601437393407446901588397526526238206734116357303051364062016488568209785351760050268450148455620695837602596241272511282238471528993479853900913636150917893779669481972651981369380637806077279309485037315369682197537977354236101212659403364365637457858476946666089752938915118470149188437973060582200004408286428015814749959542319953266662131425591003986961258820240557945344028561554782440756453024781357018979117348110629457637957369670937415263276480233561177929244305641876786912384470326945259759397573423736183656624081854558660283981838030840609323048209920600884546810906578218036228938841502653233538987784100263509168486394010460821054017647947155033995290564202651970074139687217309015307556805714679476841342339300190344350087440566661840760200583486905089813978397143422687024834125695308569009248587247811500932171810845037053363069468241420363379900167183496302526448633461210437767721048024672718696843127199971521092916089042833309448385210402532673270336650095272657794871369477226457676963592001336191691700481437110963197378855066077123574072116814599524184000088860499584742134364884629063446866439909452397434638948037594723510101729421443172720435108214317983855716013887196609969519097181703400201060331707265587888106400103659101163865244182095677544429991024159620411239746054246041598909169069834811813383851898103533939337538216223145761823354312786572910683668439377513506298243335003578844281739942516108073121352949028185284389861433801889031706973066817551915780606518161659242837761639771336622525714993020225871519316771643570127795602521589831333527083474376470263765901074106366308358751391236905470477374296498007751212040485425281952583341515420971326448716043196734789086472282258855350013911854516660789730531897712576163782784342473754560669091684336908828688103857452635026363260874373208715221393184986367640648979334937821560684447560033454518616454316155484162644918551816650804924135302869112673118992116612327197102841837125933365823590374243133963177484750734842103472820725819718921273298348518993062724895891018955309235568059331763414718687155855556883554878256720573934269124865810409604124601917339843487469662023576764768549689968802309370721989851031861032439689627786449616320968745039595835666450880732422754453862855887341878145416628312600691614282314826018985284619432118171469828805630417978982277517210135198733438594047279454981277885421032208546545712059282308178939150787030937034104423080506073495445846744162454071454757067466762121280278083642265726577400890269335743600522537450220483328800735161772744518380849239442226112103447893312718242611664652185727240543524678968867661695707986020293837093534477454626087374941305978779583673461517188762763048442222037892984613834347401016593018258901962420474087224342130424890513263615973683437750463154620142029577979741343594657425993726494295483737796360700893752311939089742444179572119418115429096092871730053532880387130862446320868577909480347706854748718860466741712067484465979149299358684227708707917082429903785372973696152991443142881779985475823314571962305665476049939531115760942620762259945824156176036950131928381199172284434509585526573503247498048030173358532968311536709752699946919766911483788971180507365748345106559319029931908890784677165342198765707255113846742869632039669872431593645402001054263528578955787276923429089626569777970203867853641195963763966575015010514061053356532003481981757235999933307756877324987448867658511516138265788649046990867371793041252885975656836750373404802707830040836526549699452750711715275894675827743148468372647787297286913650937390555682856620510921167749492486480184401049947498836069714451164860683050204896157312896262169678872774004283918682917137514999245061595589772478226348204174982731917211466033340577990697601292534414544272533888709763492169219688265810657151032561557180626813105809521397540029358615457659306444613898521808805759439122156807545391125510172798054264230844716686474055843367591770733449634505897144288270893289385892475982399148425879737073135642769103832809031333716292562143758667420423400323170785673380992255706094510813123996842861677796908231958391632580923440054305490360229178718616505110214263413968145647734015350756889708868482064529648334162996950821272612397145384425045907533909078126103874316315230317472360722424062422094016847797459507736770347957538982026614170032316090388157301587262224345896319376024992873997497670922439025365788883172107022911007278803482867020592583592839387455360361693119283746052015429893055951896826870672445284701608504871162095872392038952664920142699853138191882835405243757283846747715566462326943581150082217639945731217563290875662123133643196828819889945142702514681118441522085646947919636011374593141145219739096953080864243717209108954319779359005173504901160044163502780710997985390808479203192521148391796243232984798090879330701722718082811139221885340120341179628612886698470982156049490581196832726701857427450967175910366108475867705416637258671735486858632528037861916543078453829225491165271550173778224520486805248568551257286573113490698062453657983946524598320905773215993027993136942446238213049107509286506862135613609577413450028491444380621055549148485504889183888953371570120615603134693518131168017288976446169656394099428228048057093851662147315912447309279834156656311218788272181238555626385746116203968470063189849546515322311301602686576072517505793240889641272785170877494466073970133053632450479776298071505977211916197356262733085927565244537604953761088517794716080295687083016094391895913248619304702281893519627994646662141381480383440110374621205054806322566962159600295192382485289942082531981816427828864351658833305516172463761801703612790320191837593955728976200520255327352476227888338515427751710791592800457585661812427789620846964656470193337371025213047454733324423070393680835048029447907498640986097221798049174809964750757316277604625971573608362422796790150103884057991373617924237549433927923226230864154837060407306342134692917419534755202711573204745611943239395699305840693167829718833947351251050838296594839619240864235546251065016936033295382704464436073532786511727733072589641993935227745924999849097022969087039183643688915945267581536512455368659693140613699186984990864644108399328549626549236105610147549021435949448179288933050155877195540217480881323655757220837471928721307175791622942849151461489823365083649396174356704593576288484897556817579284258925517532456773338682299392252411264457839579132931946678778700763021927280944436101735257424179658683426707080584007220583256982529179302920913982572568464819656029825585350404841822233285152930929295061927907614610764229708799912323437568821570347166158954116127118666016167423437318410111126752881628630582619236458757491244204351674657117914971358587580828024436163019815480722852952783306882022744293089793770800241519585465723687195916077719834578072658087313971476780482916595111859735510441867425569376281755503596870779771086698483181690716639798710502503100698668085558268642225934372040759726963675117281632794229985512186031254690684484095644791723066994940748670479487851963452026899316210004140801063647952388116102685778661937262172254792035221899391031518813601724454967020506678124833522941515789293739062280079624814785632478640747315577269240862328882611884353385524869015847504049394658862315160277415473197469726008451417112934174624026227571565737905815059379261536843257848330121761512918869918120100675575344238231270623900897445182873437892942673071818387156563111396153615969009011909970138152855124459809976749707235570791965139254736335573429672057624132297011991381135671434569289695401963532575534791395744448382664562979811054836788674977392899777651830294897217458229767307228693903455089798353503744244537724470617863779699870449937859440674916753624807018310226321118178410306078581949169772765391897618893977090638176407359148196311479681464983430490615937825858381214318864040605122738552174630414176314441398295069674807660669123743855065077255213041037047874380525431278698753965219209011571274317916229512434788453416269388260835820137921862291005159094228407660424620349233775081270787575144361221466537136320145997025262834745164734135262809980272225821901938666101493767628794043140185412238049726869476790300412436633334145187405508961933127641117089591727004729586561110636664508362561691091322086163914828764767548417963310613536994242192356337409687419942547134827046490004115364700836182926002143943529807219136163824005183122820297487061736973523238967586452913338884033402267957894566935636003373172260199100692754826361837436197853403158263299388666962715118457965200640252669959871303628582299435192899568491315621541270449276303668243926591676860081221115271169039157792501485834008696099378886625436429971729376233650397893131233559413272050838586737784571283331676966926983732141070166054308961234817858348563590609397537849245371426856733947915879253260128423216513345526806321912423696321332337261145342935190029217480947966663604123879378265924609302324632935387838216706735013316311467224771734767094718062137276715759127181087930357469401962621425736744302271428395334047555908058558022450555155527421145205454179092077327609571402673429640901053172143896066207225711031751181558096377373187515719180144159325194022230635546489654735682464408404757346097470931035507091188396988199897607543237645247177094713354814042759866655494517347366308798272309572506472882286999334337532164038341895095320220416024132217059883738564263029477617346032491848786513120364694473583165820660977108389589200022374843621234789901539374252751764029427536826062568052962695260892708881900723146527195516050926902659141684730289659476996315228892888458519291982116592823317975114107243492380666510645174778884706536074987299572128350201454777590597628417765662375977391828271082899558775494975255339854961553099727689337157840253296763885803276555512321086279506394489998539293417187381520525293952669131798851088838211671243262489395564892366593997756619509759836051809993938461915150152913316269385274570482256772728620248282195266089226401595108277389280135070628955751884021665665288236299865371570562761620859737388220707403863012016851431177021496956913903740302338096777571525976819895246640779613886895616103891473207817109548013050190035616827576282361575761736251585198719540060830073646058900395704997975232820318193807193924752377022027757209397456088076501658542796137797075236134735897414993091907774275993713492030268884417214907736688066916512366607278481362531987911109047790846559959005801306641835396475728219607918991842964185916170562181942555541548598325368625464262502451589149303919416681975474348922432747784217432151215332314602617236638730581708194605434813788715061954442022888209916909715087173102151243714913625466225954140986779467724495130298739904933097030297029563005046285429962764540687200322156676305559376552809448565467780001097186269918721515869187518458454769960344932648527969206194853219860320895117446828581307009102952695022415090997301104085005701585367708421692668242726423870405541883506054862010052721445978821027661227569355886532154872134182691193682906223202449451658377585825380844434812953995725428383818645659250798555394965611179590180405167213314223989268917384498945873122187695585472445340681597724881092686981731449272785310568532556218948786956893289988066156232224833726432928107976948197148240116350956710519668303675870840695635126875166835303416083425845940375348179747524870375337525716258356775427566738530173544343352050476481171129747803120205863280065523163430558966415381065001207805248151506160134759444288469503990711427655048286083156953317092416284626710922358966350618929639744355871654359338286515962074609151310273890714035469131113957418884892904247659635994265764151752150057075756326665448416875068877725224032728827806015933482980094111989869980293563797809637230858069568223999814309228772687929405176195722799170814044640988737617607358858329673345537477422668590925549028878169565722250676221356704472306212848316932050380212534151283282096691019543388177497904137211808427601102571672753723361790279730097697146006109643261446266093354654181455215916170550487419858559571419862652451224322554493403610247777941547696393581811379299164992627118091117443939747397391048637759909312776990143214636874375933444639980582803772519516216280677840635236248180874806472102474672211963839131021384653292430115245201723455965983417932135648799123841137797632818383299509768951275450052086039858068052397319812804499377706134243050696993307962644761295463734384582708312471287111363465062798384788512891750709004777570721314845738717768168138183032712851460468739458245795469200860069621975880630028058057447956936282996869942465942583269387551731304253241131010684308027072837752515116435243583897541044495173123240581999260020931539802167501061866078746638620182023145193422626280248824238656540126891478722797766119488015984122957758122012513924016008191241337011663302307479710324922546606597630460005550239536917726778526391196736090048049244867164876896829710066879016843822510409190352113996631808634472475446722507532071438913674099483987861314389727639068954635897062299743182248921839185474583994080700933849011830799970469664211921170131408348170105381952286239716002059974580639045088557906159309923393542827541496628057262871380945702320134286324121548532441204126582618652934134699453235744086878734641672471874985529561058973366569484031860803125682028581683138763109949228650251210444765131033354431776131751622091584521658164929220589325953445656315420079068958831996973170762871721742082866283044589222140300423196772512635194874688345150280546366870145610609338846460600631845881332507609954011217449324119876409939523427007983201957855602057567108044057765156318458931120098675972009679505837947726430279613371231429374280817981031545256612577426006815709136362407504669317936897928633537320035376142565672848262711666408752990709334459008044053134295192843499392082430626726977435245723560872572648355665439183738809605250471517536101841248915822597762287737129518796008897007244465865605437896918174077795397210586772967012034436897567415953903243255122767160811902284107707320990622237309582800363310823583832944514788674842472370372515618574920385101887114066470982924216550758708057633258337920806652447452733092996108465502997997252498157514877181089788237239418212395425947890009186353765849268447114678121494080707954971207466496044039113791785258289390117941763282435922503387621914887564541130803362373555594287761091152591307123744228444019569195604522415629621518349605013203870972580079953837087088936992213991347411882675488600080027383834530942427128835737456729258785297032711693098634631265093555973713336634150776797870580938666331800151064324840703719815174696368930000341528866096651329728504997146413645627993185808721938373711206471751999819856232212626931085798287018665038005697722202512727337491236564423369295803750391901130910417689355402077745115881399491417477621364119392783856299720184980975547303168501304050760398048066392500056489621021693620550321876830323223935927929334895829353610142779909099121492250656510319821239179721427293811007632544536565253414211432680014843272188555282497366115771857089648434036906658485219007604980128510204642587719262969976524676509886849310693525920100425878496101184949605863339682015832343398642968985821524482318264592400685284339588013028352333160247849696904355353630552017984245240803476255627373833110493472098036282587614986196221162258193708165141782534799097555559699576356578209486633046478020946570073653348283836937908600905787133368866605106552963639683852377118548201479342971885668972240695932519274355098764545237191176222899741015318253128411115328957916486986479834549713395793354622983463971538395595037248189215632664219678565837669703894945670554865377869735355566210536160225375582026796322143972357073980025614941516331303742403789462735859396578407405427594515012865000484503624259629064935053504286643738848227027883522114941078932581625274839813005405308040880486518018602182386827633715592806493243322426730931103693988506315719310863593010321380902274847868394268585350710478321257836840659197968801918037023440901733502769311936855337888955596961711148264463463364808374724570161175640107389645326545036404279123707750125233200976304756210177783542285922665691916078362708690760719541484872572211155145837658597854479919356407212183660779456153546246766821900743819460109768059727545463669250099303529599054844042949148767368333129888423216248477854345233664652135920061636324911221788298042679146012566211637395174078415518127197196791040448625969937907967895785746531776942319518246525300965643753710130939771732404790807617412499344616431493351644950591973716365518899493809664372999061884172413882823652919155810027759605188593069456099139124974323010915902984700657244083264442421774155257327599266675458355744697826145867960223452754046990430138393263182677894553068226243056615425734753386161255703993592956435121966805217381999491462631316707639564955023760004435083971945648944012948179229065502082854772697909552989253514305720035869664743005329434649314004232349475455709543424709414233012440647733757620307118474178820695998329833486442805607996030715429210708582511587074310493515907697779709999617148258503889453015452805564157077845488635952662289522578314522374607337043390626211406376094549930228751579089513817819708781639456453681282394347893178671846103845178093727796607707968906274431941498962125379012823332033972023343273918505111485326308626191747588946843819854209803661488299298846172219837788332119007266007967756208364804697619573162348281519614327061123708123296535597743433682575851585655838057643502323279997600439477349772432884193930159761568860430366813296156706309317786528860020627080770692378330782763649493180319376307677999458469172793761563040612405799671276194778377287885903517795845230228684762642004001549162012785285898607854012962803848941280591763930044995340851649804627352419727159303320517077107183859717473609436428966555145921229400214719785386601347799787304664403183481064554008382406322907135350051129737809761344073284309793999716960836313176329842104846330279062010249571237070467072617639700456379358934689667509394212861347838341936035807582834214563728911479650043277209037573741890669819489331406496756229682739828501684305189580381609231662277213323881331722109123554328006504238276019174089063999800688744786308740137240148252661854952795480424204677077172251324191940169796735454907360652870259597486706742866531263387234326736504903813541151234849961949037728106355923137806756164036333144329231901728177729658876100238635157360445933875306210135555911113325466362975999815282239848201650932508225175294013071711117987431149002014223242538349469110194785431677633846922141380991478204233656328317080602278258502526428648276462278277364562803445290053199144710873425850211466422837924027346558835530525521597096835877815622762279754024552954919488256793248273557504250018423034114214888487003394144577912005895491207761821115845708608719277509800466825805887307615709631186387865644018845866298349683115178066247526036470112037154422187982133235589382090638239863022444072562331670825042002293830697069452247669832320525098260765635746955371555795546909457825405414312115274222704571677870154296879651022936351215104530153211930748164095049854449166253404115388148635610415399036240473337742546393055655250398423571252376560185517705345647261286714649573904082668750798001447336307173811530014614254720279586400253696347285668007524994356219065526501153048033387347399720026807125135198710697786951880464885044089021325989794260703799296231064607711079552851081973537888008068638695598614338094010669547350220592579872655422467083111067499044496806026428112023097311878719728705653036227555613992884748034801420439274447226476624683890250024064326505008137244526025882851044510941098231852082668175474627738434234182095601124080980183251704432967035104775673616568854157928641050676487577739920155070998615195157327920766604737977110063801321242678228119414067558015898182593318072288370232477770134557043456666641619839334015675254553791445232835843233114313286880506211081190368839528840195706311127036586396508945179966425112725013011043636965128270060287644850950753369514354452169523029527266501378976233404654710578086391727829560274270708421984394233338362468790342318561275668468917147384275693478352430100411683772029653566354106287658084290312666268450492370912448619896898724575848328650322272762261562953356024387712911402961168031431505447638747840439023539737807791062150521573922254207787893605645591563790624034807084937591288581545176147888776267927701303386367296122583981462939139395446045519864882038932810144909798148469777824518876867340575671233794360199548618961359549116697958960797144202341793174149754613549161793604704057830093763642422244564109364609384321006104240256882525318761198252651286632008869368282154605817474887566503102572740800736332477117445895257652817692358630598989319675177774448760771826379444846814050410279157975642802432119295959559546436460551719466737724247996392817667791030740142343501233494116014726314252559633126268869574743159156303015583402035551803028737215346894061178664965058078509949052163850946469572895987249886785116157029659312922963909875853844955808389565021626844930924230745005754458971379115013416149982415762571013728789411232830067077422192869593674601222778650553428833728943900473795908825828360388964777352006446638991879576731575538563311845298098093016585856933413972590843378073273215848853528287310913171523597939286681242247260914949132838676409515432398347284999699695107107741343042809199264743478325838728782743510155051940070812139792254233571389479361128076563370188090121803531860431090043132542168364533935911953653545057020281527534316232619294818544517189136427269337595414729658020089230719875033877064851281866826332524969882087724255768498587123983567771383706421513284088898368861713228017939584297271756091563491567356177932999570557084309457522212532730895233833419913669633492817121953689855969406128304164759275797664496440752891137420926677234642614429076332945937033075434479221582973073875281552643815092586619261747157724235534274961890484986079235474124787542819836395408649903422518352075069974441059014802073935919688921906276079151860875556734098847961171119671244183637058919241127532412492268889245091848068378480997303460517701563980682842415992086951882611474832207746431305762057147883446483692087584290839599775822402529591386771821937527886397698639152865020835740138494635285930601043427176156194365879631252932803884970413127975797722250920090740159874358369949750011868715549617014050625426072575618576967118529232852939036214358816822561143496825454128744343651999783941087069784179800840620829047180981482687655246036240399439884759809561049259516011824971324858920511964922672927162352614797010374707182426159187911323232355631573266802445853641763255352966422994982685928138479792805503125214757689767233416215465337799235208920413642190276597810308403454323430192032509542690334932691778103997346608636147511811290645980071059097731541773779875497042449159902934202437767617625764793165587233733067310444565296136188261439955015486205644265178172881742257522468032660004622037786903880521549932064693961655325120886026436964475787081623388620352839881665261306863535515823233438445462293000526408742239717665755811952006413054561818188116217780652690995343354045154634887282698536592266470522424758612989982017120552387363176645841059842131546577424035189517825503515473008187745405985585660408616628542923008468600236193074490473070821123685646313399222525955405621514647156574050361956456883891666563587786243040342566100037949517580419263744553129417682365292052941144602277274905666661619997578085282573870870949603054156798582288926679814728245572573199635180682425388770252000333979388189350398034828912695181863893305919903676174818553809925176642721248536743336378466603875154433121959589049340201617953276348895331388355846099343932991339701748398481602498861672570135830878707648195585175448637319571381786906915724035860361826129716912051081892489694141133413528594444525099410136204871332468916892602215035577260156230931928319010771577075558798669304100233658197373173690013941128449673166957848584751761617245575244322554011660557527668726720825809345214827806279353734878288654118936231210801450182370603484945501987866247743908068385764338979425637979550691481891817588855457300654546523503905272995615930382616864146248341739544266961393266214404678628617960341046120230031514420658297545229662148586626324263511917704506370774127871108727704747053706920773753393107264483817357465438406951219329655005247127826681382756177141175306724463480630627822770854988758727270633681169503527456271825692056721014901333035202966374713952028335821360109051513054749264715734176192652064973827916111689243595505549325170686010377056686729273535917403430709451418503197804857435486053678229195531390817332425395335258252102453789092887594967137957911201221308503379184149959376345245474912624246501835295693098415634269035420610366509773037936730273347456700976230588381666631996975710034322004837149948377092849444944013557437626406646814252677926514833066134496009819109214941993140487614652992544213297747885099852957339897529940438206500609730728529079452954843348532277152856560422942914463679435688612581864518905543916834606859391462971680377996722474799220044033800293460376388736193939571317847050576325462764469602195144097183914063476208648789402071013593065740251262644509522793455956677857539481567960982260017941989100955506183103619731413332181356036280584298523994540338736601770088692774097208944781837852965822900063017609192023449169597151142933855728427528997021835091478103461869267169791156895182243365770407188141333113166639545395773974155346975121229121661926308993705531931142419912028298503335815925899171077680774861812628460164912628807465361311284825602569819213443139395649029035935581615549725280355992503782543557632570657650554070362786397601098370156207871045559973288454628362101474843998786328562714159365811317155798171257514825095602480986962755990169843874117792572234476836958137136279185698646745141705355721569307362129522890308869929999471436939652807987055677120963803350495941133859775924129632635668923673119893159069309580421339963607749310213357503105521374046440864924934363634265099982411166929219880432681971353760118095787674322935808749007226664914934693776711474098853762497764682192141217117637462284131916786185790073109079309117854615020170892634237928829990478713087499654514080155337980088346268537271477445763921184301073634410037790231841299387935325014467524529080743471615085869292419248103423411833986765869920198269197787794619008206331960074570456080481547846094852033126839777583497487396288546340098388440852420453300245775303112951525811867386948635409973583299972307246657004399481700732379576860963692359491459095388092892987125077652105549574592034109492262906912220313763085765504346742726551821134743630298379858414768311494285298015929246320985419959202085844957892243907886275930346858182810479002677252356072082985072514557684177744472083979194587404468586895077736835297066045689564330155425108664933558635570110419775961984670945100017720597068428409757282464259427075102160535983558186797856139952484379011554175746030508570476092175629374495702331644714875976228828413337582647120702081524807055580349879249923576552982067266764908346702342369783276559941061370627942996574252273593399698688415708543807308614015319706027822448472318368779519587666432945846070069056712192649900887189146198027305078165344260963674263994048161052165847570374310660750430111043014033033015543878300630709246328774314224487154277663174152984988410021149063609241409155512368369554839040534156912449917934157211071164331262156685759654232072172123076570659570159523423777790397939234189367797061531866586564914148830599492418489466205478076917581177152036772403534064956033803973733825634263708359624864302137930245742448884162018698358296463687944556403782524597823450457028443369186110516658101795808658058575195063230248709903109058170756752982430991538374490239300405177659904454946464556357803461056744952359162677753921242160423849365698347025149528154772441883113831057597422602389321311473812710943553044718219697571653441110470902781123159268539403338669682231282778553832832534141719686001287596383494705387143379585907071168179501844899353327660013679557342702562517274283443357591482198588646861327864988718786456897640144088094751922435016470504233826627503959163645823862003444530184324837066780791727858552626323421655475126797188588847813634368533091218833810386767607119058598626355417554546276914104346978098610805972790736138228066292905377139895601746524737934674511694653982091786034774918249125273401659237543983191893728458645808810677238971722790016146333130991030597373402060360573537485958097043643462791451619224942949503354933681251206741368909032934514978306489837982576524958575832250853295288580089407933976283737092333955375575574072324091772051706556658336027237751731801512979465737828045498297932305326408889191867668192397734782793602470536323877435387640861915664349181437209717840741142847317718559983501726398805617530514526286800588618787785199085766859854784047482076267123359535873144480662499874083561235410523092782642121299345887809993528572861098351606458185843887368611557103497661215027195351262900365243269201604465815030333498887293522089593165971304770565773663289014696013569189791134012049788424898217678711803936638528617656491112184621446273975201626012415404617132311568338792285925758321867146943338631703838833189477766881657189724923310774395545421035569741983473017024476526517900546522323645700008413950051420398171078137539834823075012912102890774943167309490958372728547207127730186745883927707438802214954257296511169729245710286345035223085981233072705173544671243943798573750590423273873163393886032141774533524037014752488446939089512216233142996133517625782934258623007066688360773649806069028960645507065626303122238169503337983586407695213329252535831238556743186429578273683003061838060883671567239288975406347614502594472495951621950505035851548375493719344281915685190261636723112872179514617539715196126082685732527750585866852511059117159164088773248028382458735389666931052443489522541343115165743923421027624289112302041220008772786715200526060804076031027397911106268227248766528683737304301375302583313049082903409707048071859201304493084460128652009417302254032282669603866511276194392220268890357606511937998476589947133917817063034924973572958500966682795686967309154653764643153919843067341690332001861853609355312168984286726742076148467437360207122639412131529062459241279064347126922585033986521642953712590881011305701580368866957801367625891421297050690109835586236280873933507883707518331460956200714107520805959025275862991684485582312562829884485899575666982161817287172928138072832435798456106195258735848295887131478216370760834645375350238841725729076091447300920862617746489830888970057544397033859633185496259792227125127141101055657455673891371798619820112425162141931994586087180622495536190602661749283795462612682893021840024830244988359954828250191244608148355500140941497903403350663989307286630191267009164469084474801655062012463369001359750887152027649293370214009928709634712906320995846572940869324177089136247076114941420336123538642583613361120981819342329138258285578334647196295485104768007311055910171790575339460872184904693823900411223907125634509311235181487000903610654168615033827621781632715000960142833331852396873747114024253144974271464197804649647158668876054087055332390984217506970344618556457488199375313057730428808459751148551005159573482706367858420915145124958073304108961303368741198855712263935250618322245049006900300329078919556122766327932062861330953682180141285363500457265383701108709629102071697294891953486260939692126229145453121732946949670718256038675334753184964112261894323053089564337055353063013526784135543124947782221212147468204596911757723146735482421079699254329925051972390688081824643153804111327087620399146590140583841046273152050962318635873733686070589758149598846386573966175789111867263388028036298137229914744389239106201765039235373908742490097596785749658175744317524208550668476495408194283288155305564147399871421648543849181753590053002829041193599751960121850598564565167854213789853508979212554666296543985614896373177909178232470729681699526913393179432597155406669140176997350961447994046774744184538865679857969749967845281094640122644573173201797226944606470152564644474578015421693835022794210579590191392856434972501412379574671011189252896785308596557768040515784702521521952547066732872531512377021146743488634954951425090715357678986003364076823494459502049510040751509591053574563995420076831501097842463527009299856128129311312796333592523662106863264269814562196868032917854391715039577930067747214166052484319512408187004493867821150255908209003119358177638174964520498237420222763158418657529918541496386716643352818673055393495121821719849865320032715292243496437662104090985700504315842710890021617065893381252631227473109087534600647249776579240907600685988751487933566547400765115775158984613752855450032228589990293712151868578301815534368014382360578332842996517933941421083457659927384647411798313677669338983354398145239678033577094121372952965148852697233119306431031671415320573445282392406027124903347416980572617366465454114204975589732844916616762616526787983236930971323544208376189357703994441755500547719950649493683494820580271065754109535706119615169915178289436947211948342245925199554898636959564874552348165019010209983026595799698717229723416677696799295462412687836203441058006977651843353141412192946446649965584583682465841130483558577951055269410163271962810478080528942609080541263070613239994122962214639540707496263618828711100399598056191449891272527964855013923602669813116608900302436737550535256861190885880520398892728062706984597471527817872796839411656609947140387832894126337777507058976634692964685868227795770768578239762912150193254713777366442502140614803674885161373896535571948898733198493573158320552294000484916496686792924539004610023290265602767994892840302857122070175282786621453483811548083105178530895933976948944277216074421438514990385302694620105654804722475976487479503301939513155001029312139354874326967863389395664874995739727681957300475778427896593657548796054796144002858557431317949150518164211532072137676823033778163957780413239283699343897197749911335155400654955926002827465371618707655555408370314837769981070500031471506109756487599015012805895599973433308249576436830584522953066954079828241492790081124347758124237650571343467080766375085429028316962902509937053413378233475822313061242105134880195750438789879405906514051622596786567879603308103738735934146436961430875279878531967956307023049734281936180265650940966881982271531008232316631354207289599625154931198345621482876064830121241135001450981714256577732911110562196229446823737407229603472247502125882007487827969160467896721031165362942035291974777222834989685087213225009930490180849204934890128042258016671487725524904933424275861397725048924888020665731110031728475729028564690835085820702824018879653803901746196985197211976288712508769539637321456305681412474588885095624779696752832792744591514122491779379418031926931288860805591575330438383786954187045169584551679837361354199665474243638117144057282354135382793294301897347326936268137790940851028767475199751645996204477235055011481391963866742861844539928741481698914342892489478853267620080455485754453369883554601255827986245485655922363587394013687221894845411886631431920723361047218302400480341099829476310609158104922789296164655641816128987337427879365190999468515624179084930790183128148568609114773194489218605413784727941758310097014477532702384216471360110987549725395902437316784182008264272765901697343565700949221206886891470483298518414020138270458229350967488148393626318980897324203479161121280178533604751789615549576511462221630886029019992114153021410481453361284527141508450995255245768760484121821617346286696761150296947538929782095916168422330087713675670696874711813678252033268422864872896847300535700722529144563222306010436701928857875456390771886140181962071460683531815489873169784362614033153111371731687426345982824643656268460069420156736164050756373333263037940602150442602771617024643782657445296284414573123678840462364233996773427686627642745083741469241282587773001459529490110478210217342762896206506250656645373647656012620114131048294918596982640030652523228246302112316750249046158834745193234896756683638385416435917546976890575526353937996598823594863385522646129277860087151162231682931532435178548952761501571887234896255802525251702815099355740293188843273887303581583036907259950060647852307325116194664891447430344427999715569393463002556914781229227010205294052224502803640492000775283635214883257046687525880953646026913759582578777948286935701212198888145232035989352174430368576565548476043115567563024086950187970036150335218590873100392883092938122064951673752619067173964004124187100234761203003034700088630020246042256082331041475414571746969932421614285875856634794200667638189182259124909441941943569826137544531817374079521268499163547302873386715958216351196363218602155267547403140635818171001059142320889489361665890893198742891947461502161787369026885812821526769490034229642605903708736916964773076277700263035028715769246993559109450513264711207595058349730517291120508951548651184184247062341294404785102865137098108350580421261237281119299193930694681225918694589900883204564579870141216404825580105130722101665248367756422228483201757029080120388395612292065803903124662025692744963448866617106129779865534239467568240137362594683377367774168352977435911107995230619977007661824847669300881020858776470158902415985363642757785322511370539796687328686391166490682754732631264606859534771680581470344548572102081657638324759700776473014899944802403143695836516000513091397309563730893071400318085343684432387544232093809554283502960792674385649526223878824678004121446613776974324559147957275346231933549416151225704971914079844585825968028828349506450950678824435116898829499371500833506041276876980770533785434477231971554861039037182801184956370093304474491232753557175296330228079653714438167193786270150358444944858549889443608486359100745530208485115186859448517437776215858986949732217579840261162426324428849142786317987624966856241250675428046989339482548036954801647864187352492691503514684655813016221098792756655100394177239628839660377242834855483158579901601810027224661476570067894533680209571516631653392390862837043124583113434076096245930611210396710242614624984954643430288871946889184790773067919357186881954337579817818309803104893138750140522567903608415166372615976853574090142304085250117178841922796491447560683910871974852871294309178495143891034805476001584819305230132379671263593204642225028320667608181987963524583125813596450974807986979346987710934297381023507557766975968888389693504396918217581904702615555880383329135080617697717098639995958114729591340207417824871310267188019971627621972417933834833534290415828998958356163117072815172419974056794192662400814663003668558148746202984328014765177306999081045453200784738469977207056411105853767766211008453382699434500638750893858202349944401760505787129629419334117929434773607030321569253748556679027941548783249548524827194197850048377329957837488861325889681915363550607949291633958659010464764630147516171665840004703925695428706782276174004494538537075633557020298409975812523570677172729313034785454990728796976877331286527649290205906543342043734548936304912794919802799222157433780166768134744839189301530911842662617451244468269872051467995950664626585149708302622389123860306515024790710736485040221618504746129494088742496451676583009153550385633913226567679460855130794927658073595785530033143358378592842343527328962528580093101461034419376674482842164556008713299129308482519961964758981824014594295698131184933789563368039502612575157367350049855146625054757305508516181362460620593608719888244139823543451462606316848646730915007754201856170684669247155045088158248010294873596343506916541798551755113141934103626192119896316179831985410130396923584125837231237214765142616183230676517619808186375911432686700814644744218770156276350902925715575167629868091337690541628269596164489858776010223885265518711884955725182752381087908256372692415927423933212042249406610764726888281348202014087947817595587843545912273055160626769163733572948315774586057348833183202108161172181711541850116164736547794514280315535471812663960877697142676288802814902462749352727814415120921464659866490054618445431684089768114232344324683337653888454596501865618875915139849305572707355404187047463104229901907562712487858351376092976603388386651793949484924709389379403301155768703253294336954329706770042819222048439492599175836691202591435779368227632408136018194439273194178197070201851528307423907400959720569794568226465734857576943738794582329082454462058558792673034917847917411265136662389460584135233678865666630437188899998996371601887778628644393545891878955385965247832330157996211929618962215887107267236777353102824205605740394064253235906161496859174535960451644181941324294386224744784860019897174030490070889052775220599972401421225377585141471879019853692659718006393273591745860036372341232328434820883996668801452349258026581830644474326463720474323479686707945307573888437751833988826685248304165725732748580950455767477742664602623850994526168112805859231737906605810719014304922534523310658510346073393515881305898774798751989085699170281627267457499813393457606982765157172645716320162298092019959351860024041242222104831019594337121426099798604687776083924184261104958230442441976532212138477711001298387809519243065581390652441811849134702513146313030543820062059341955012563876495807003839119187876755322654305398296002951408361478767172603163079056638913553494134429871512280878555658278579732684713748195458878531912542003074297544621011634664340405176487522652621210195400429677839372330716755042864550961572826533379271257898592513551208955850225987022628283039607052450144228105286780358759748716471513241373900494901085735826527157008253483060434036271813100663312891445880054951854071193701501195467677398887415415356529865567077591450161009836735979233138538803242624197612279681651764725104228548911008758251248539198245699918490654665908234409064831019791697342936759051443942526217330634131326365371344140657335755338063188723538177877610138189443088610687865028953505648323134653680877349765895298629453881746483429553730582758304649715258640676849923094875679450883092171955998001947484807794735634375950334715933647885169210007558983106782342397508833349359894617409010560713469051044460903974769864564257131049918656535407447492109997402150550061466350932397437264953549034091692506924754197828783634625125196030166009500138711450418818309887813279966965377201845876590127470484953947388631699535572001043628036916530131206853493947106144205935656466710511836487489479316020405777878798628666331683025271263148806299517785943334750640046361520331052245590862362526938572790317992341908093389253364461259168886502729092556646133907612539473406186781811511916794377561201289453828323832013133983559006571375601340596643413508333727376717405923994321629915668668159459789974862002373987622011412355840887372980421798331322436973086949731736506907629827715882674000287788141283875867964629079632918819253004429567240932703740873111562980320608328075590953532855973950291330162841811190721492907159040867873032582380010466560247367078315041178132319732983885987490278895181776589617777720680188558656820594313913372710911276230222085273605263940616142645480519878629513369514834319237849598451752518666283318045182365449932618996248945136740779588548932633243056157444369200000332969065300797177822679335714803241623012389297201679390242310935696949147643996599521462702428350104705507639842358459474996130144629348882430263229670922234058203736166269897569642817525779283410551636332346972234755097713374376542393237921815352561544358052013926710668234633938553937300550456697600127677275283652313278097344492951947508493201508533878111426435451178922855891441822316779411371260020475830737424358330894606757149893171136428323216741368885780000570110383188796227421851879169194618624737399207205550321560567895782109766494654569542736896827429464880168406770162732043179957342947744768534087600889051137100624193137445895050979066366374897534229702144916511690947257869403203949681581760027583962909989392105503442302887483577230047437689236230735255384819051152231771245010196225428834065690481927000023340789752174539045538724881869936899864659069690720342620618980972657428224373819087233342540423750608988144444850840913673310487748725300345442923174031986955554825706407342637081097020450034302029847279483312300598919589037842085474530785012044090494181820099783930339609862450888348152998774604497438131454039825401368405105609499873986717039201389362157000117248498044528162397797812399204571184812284010658629616834669243513201568814606915926800535900091638011402239624693614493092494748434390213869790502352304453389871475057249928307585567674650354727890538639426760946480945922035019997722760106152818997934111631993578461302011977138048371299154503492675760457298632516900457103944571021808478973351419264065956669579259766348939288813828625690927325703100808564736235075271690915660362096920489832184573857355518701758661994570717332014243420850585168244450691916842811623327163928857563092465748617468085060718265447550309039924468656915575654281775825396526374355719846264725908836548248750349708245635784729330400072509198749037462378282134839650028272528443684510020581994662930822584238701205193980467693933184218566154386474280218959941519400067998119072750999058802944965759313636681907915195423505560541308907832267969193405331798417267394791206936978752113750173433456170423279689774137840837536044613149393096527974458848794445918905794531469690380671395190422659849024483957581283280375798733895892787931232458853592295469719967686720109004521977855873533902673946164355962094685159872897452950766374749598124471609236731394192039024195345135471298909293372185325629690990157097596945769758047079561806128147812553026530670755370843768059112100517562253696075376624597531015514433940206981159527371041954164999282097248899448803077854235598315810560827905188418537486617889717753859599658667963280350984943336749832399545754399233427522747602044537841783484175326115733358447468861625645633357143125473969190951262033040975144047054170836029509239510652072336188834543294762169007275831327447010639458811743407373198087186935192508778931910059019502467076726432566975338233394510182299886796284643525621281778374494965405629263253490216294405803836614119447146343551970873494267644469018943432942921687168453097135716370804010241879817298557122470454742908155292270281440513397134781010901167194470564580041744938532434762586234768061537176795416262467248859886514612577553990035058390348462716121882266303714583142468068754632498534941629257403341338505081012938817232588035094814205377922419318603928180867652871326706661232747689128633482275431462093558612377106968655905006388993739410235778924678704161222843433572432570795322240620738858070373052631289662339602376188525221548471408698378076264496195940945501894690738915821763661426151707492059952357692357591889967916164185740572385130485533267415370858514972520114328304661718963049483853829491779963478621479513887411205609426426682294446581444580883517740323634966904658770892764822688588083544788630335390025001177052114941620490425630578623641552942642466090971421483280193653473491372612233623924478653597410916759739220586714262535283009597792187588850309365872596396274419887710513091811958389860702509102514219344631696238658940552402122763525272130587464921734052687809616199591014751421215058354905030475964314466536705461711538701910277028811589223617746335764864401407084124697050781547910087421000274378496857180936355488236362899451611158629442240575557019311090320962695724157163191449234049237695704481215820237890055795456004554289049751028928392629200652850820390160342113590119578304194567099268174991505036540258357035001925233027662160764777819209331286605324846706703644393072641493357798477105908073973675412858270084249929346350980895838567017435628586384996874193643097883169634029820791198440940509514206548143021334994688820531518792244978362346168316107591219694715204743438844579927866899076348692164944550428508667455756731864894586292781244004399227000530460267082117840962584493039902164417748919223364142209544128296015387714127461196014351636780978599889630193119202110210305551511609615483585725626190680666812415461260112119209457726133495356687581247829666202783214858504071152983320460457439914605207564003686174957173942146988136604403842749206836527155954784035670667015390560400785946921929939215174257964600810928021256589139296616655358471857464431267985509079252487978775816325927018362637008469810905148051729404696475067866118878409760030633340697141251906195404462306605298718180623020192161793363959966644631474096734821971060954105745416417934463441412955005444238819370885782978111052961698607770768380717244494712811053441204744556710443335269316004279591173846485155711342872795796280929108097293573092565394912220192586694251934226628716280802983354432309831883385838565680334360199902938156882888144839186088339190105496700891714847028505197230847643983791496474836198850263406831705693541428504995022798844140797699153878156033192120946944394546531481568332286008421002495897720187997336969864857661438909997983639288165606289450431506265208279668548101352995171857770401900390897453276692242484131477849620538335370667809915936742202577032481166518825684119454135343681199720790351998011410126636463461529200153165683973977617158530881534297711259885918450808664816569260874704622059441869329602857252572685873815814564580626216658765722341466607976323464316977110607930478739861962671079680670765269249815360739318826522833811027226624431947931136681448243413760730852631345412581175360692256379154220976732780112311469288825359306190132065721037123663074222772756655573452365913944753886254303416072618065208629400683907439166565825481578953860296041454681861104787374219454408425447290570200995567085217737003963499557588646182009671037421124032202824492849216301997654513377613686700407335502130229322798216999722713410375370160443614347736571775254439509694553235953909176779638197306072859313061040471716550940429990740287289404882551142000920670629561284980736634598284036442413598295842599651293536553300290702182755324998891663080341728535051266206252122125969030182251808479340091304572903294513265155583630645908149483891943682807008810892493109575662867356476401901063318794845182809878046090029384432745589320913940963626585317312136989591028484125443251256060325390463138636723098783453129184221519439457879362725507338947524366581001944869545247232389114071883608878727139881144874269588783759371943219842520082692199167142325269217427465034736211930540498722809987381295957400360315433110622040831708558969826147861181965823709676625822526685151197553690127887376085646723804689184298373155338541575805579388939547174325929633765793282533755196308062056074143923284496056411177609248224619216202253248429818299693646870725453961652645965121371932434398683212226511357987399517850017274465876110437416090522058179959622086808922399487753705877053080669220542081371207685190091416951256543159746317339482928814028943188648606496964759385348827019470931251221614189750526903954166056733875547422416475874681181560360613715910211085197205684606398678536434057044106097494982566532083910153194660369615452907899260296224099253623608115854435241340227285514626334421345338733504286016039006943420989248735583556326154633113826586398240711744574286852214776421452034202595758005838633122155867425774368865823243789975534163611951890465447741983268680236917394715741030581515611616496242892002404154819349735297029716840774129069483471060751462073272313608038831862673434518074465284104791721786060043833445771226626140703276727898938388839421497093449923351271019556171467128989027893191787743137075511304610022602574287207389572293842685391678560508359672652012218803904038916461833208466255042143434266051618515731182834163497145067504172030167478966208843549167269773395414304780992392296521342786637598905535071606648110119128967550893273250601025723979605546848722125502893937373934115877943564684981050726453728002038728625977959142334787891913654759365100941212326929236392747034014700902445099599266436833242000695375551749073070262572232868734515353570991490718013939880185260843020101073813102842315377930309616996352198661663546829589549829251378284207284103771736190793854454929355325973699283155716774574757523208206948075606427584844614058532143070391379843994478128982048683730767883554151084201993025892167136310730246389983838827905629768105189101704120528998851685595285170543262660028765894377865287529656558120140584870042748994201475862422159740999354404712135217378995507211500402887063892174972878398255913702507800211868236932730787496069672161154678862661787456255135192030239893263566603309439068920972609424025468297514840865669246612067223163078288157062538365554141856544579741971894656157130821757906240953323638331444743394144967052260680641174811032630732756244811552507332058318885017138765079116016791335377840090609510815318254591759193922369363550302243926898571323428274236745369705708610204641593253532639164033291725221835397119168343956333762685365147671383884461049666547482988586697750182519098257052790007566098967664914508079580257356537295910482185192657158346952069210825768126312696571859583798105967567740345665645196299079437692035572098238708859052297137713836865810807039643114351409972015668920764117746047259017855794507621977334481696333237951770553903956216327517162589868222970972210106945348952008415622717176758243262143777289751700806947684728511091129827344969951145781679617276725227307820792963992288794868398034946922092666999583639113324810165818849210655619009182213245805040143156644609361391182775346592056759472908122323414448722700445557986530137218886097091347781683515696689908485240538560330728284279174037123309984414418398665089430574219011170018232669598777287790718636575212708829115651301477659420409062487806138705670112920292073951190960237705242820213841259059853274919713631583278705878455616780640849233977658758317877961506707203280692999867705972516397439970977631957917975574014466425348176836711258765699236753819375902259973552359595202907865902589660133941252185225063558184725649149759798957026323897064131972644373706143481060640819214015559868721550075768453849038197887971249865998750020329218661585022905412349785089032751501066782182406748540693779612486417100445689080583769108635885732812052678491952415645823647252744137762413072529016525246103488618770505921267539335793003289625898955989597159097864889530019182842323711164222400843251503915074296157067113145825940190334984459806457231408790916575829599290302892951434735976583837990672848338386500238453698767292476081185421450798449787376284325455429834834206553046638588075766198313290375554424199755857120075496302551264634369501869185648178820577588414895296665090123857933809599074472955232607994456439684133866809231617509913991257393524016784390482701599065394409981908912893275498819859034432506382840771452598613723763311374298915366383538189357636906224929292274724345716575017073158330156083160228939984192168657419017552975633775680534874048877661864761232254282128564816996879731199595472771185658632764243671939836240904800267627305744206504018247586354091219156204082494414113125462957923336072697358215578318512251400832302724805081071822673559909379257636190568206362649687456908893063446752281037689092289850052400344322251945059743761079681317990751503432541155128544509255055888661272527783774013081759270898647823985032920664367403687475588517344040609972637257679919265568350205890205363714675439952316464130404548172098738328481685804145011901745510782555654947077536829607955327272238118050270486369738335404910686576464242695613617273807580308917021157966002468836514828248286213635081589354257183273155846731310023400557063376648054699056162713050454933503011155527638362842795281644839280086489003434092180925771722604062681018450717945507669628638986067114698752792754795159677823760637969609502764002799707618400059844861638016159086362085895618153223585627303471624739852304092721672340267589193890490927042344334241046796240116357679043203766270025619113698214821712025874332694442087920690410984816122066039675417184586993677820537522506276348298527302449643549526097549376561481296693834526692671316603361753461260082305632405892702083462622610234606549352083332535345349716040566214411417718407690241465066504898162312499523607493233698511109200551585285790263987858163093083644634464881514257647999437200493096536005636182148811493608610317676621400293492727540116712806387399461050279948738800540146428059333256727844982385194963907896215636215745334057748914610255963235894441791794712396917636084119839686377028433531900009133391476707402331152063307863535688894247869814722426558338501563710341286703030022066346978182453449733430012887640321480062048226002530857111675888274413678697062561793058089765052567043566472506480116950669525945406527621222600690801180129620671053331012707859578379609360859785206544770873986077714208702654941979751702122023112309544556061409569164833487515800487590439776574376474128921406704621034126230028532188503064220077653748959627520053093365616684161632938921519819044048648683827002251756550602130581365508430334037325565688378517755540343086890472577723665722511490736360657335760211430380045872295119001769826826781394753845435225734369839956276581319219842024331237564348636929138494850819309609598086731307056266917635164353046858255807238590178179314630831672992067421131862795841544082077252174288899469563278745181384495065816485211435074045044677808118217073413878741790809296326015235528323097255895684442072623801816392270109801431059056493622662643734302520950755848824686656449099373849448331520785985516385001447363330149071651803928704406913626282113250772203462425408049035055046588853122731311884928848591422619662005822138103568744541509781527787797118071986583341889147575638543703402570378592508407301566124905198083452725346519118804647669926110007194261385963646126847074329263476697621154203585853921431769117830322625952716861284146999437317378971324225667082920550800832460011931497737518559354023505541981756600743589418979154793526033483433977811615328522439084058616398159167616122617607837267167532648712136358416015696696544508582139753827450372514988488023647350092326622798362481272743531656131927022888506041976048572952027751038586569133217194709353473252610499205672624499857264130382644386509466264059636259128162558524682137916209024418323830025933505441960654662795377309154390362635505600196090181171538596501539041388215781022725404522695356497270633627009719634502091107373229584140601306461738120814758391740702719249221837670798555172286033952605210943967013217280064730321794360854385764144672888336689894584596742688287108347067135278502462607261530211411830563822195060151126960498185144116231676540625858430779628688339690599790015132156337165964819274581397009385035203353604276843279915023770742612623905365574446195323712974469474234414960684693731008794645315464197707070806595349676848513497392138196449030184674891752962486804502808800745656820117867658883151328792704242059391382151078471027027345420604261461099846676640829311848572179493867635055731963754004390809722702039248203340495948279246916745359520532813207383372378408683652269367776224086729630813908698528405231847707744957271888256277472998997277805774979431046252753185219604302880609078417279660200993283975752592029634986266387329998104960951689438563209740598328693125191405551186435811550154212471198011658940953640356337935500826203647223561983645006788971859784556206206675858492094142104089411221592919182425607500330165824093315311819016683460229943519336851728237063895481878039377721627770319636769386215078407367072714542755519470140704434708252602111884869778229145254898881208058679504971940562929644937365935171095070395298786658071780129526782509166873405298978715071607560438338485936598950242607794279728942238304401262067764824723643923224819591891505688600843526735679663649963223340299398346094962408889810124912893883914061751200875530374374203202444030550014103170611358068380930453560482161801125591379280694226943870408230388281037791544068346078362198316562021265331308953559904457113561283036772185402161820338948001876022155602796186187012349657414562907732774272493322042238394603414694503896296565736768731007091694056169447277673000237747961620021404117995794969723687175363513041500278912654524605080944595987285816960726370462348145101310850223830667000632770596718130271420868962958236237811981620985470640504679250655907490923102912097547349407829716187514491337175409892768347640477264793166465045339152518019347355348465081754443430147347312793060773546784399696857123059798861478842078145747638728037922225780950506417498573378404006728424366040652871952016017989732464196459619374725643296814935671582546191802716807352573882253119270819259048546891426951416126993953724038216514365997103141179414080527470680671725053075866966907672857161370601745497631490010835675194942003112727312042591539226937310188626603022505459552571096835493113261062541700326772831239853025185332285720489048371401219062994264541619614021675701650491109692747828332181998744343022816740501409782943128698246445819414564478631156339219608287005291491854257693601538998436810495114290610757074508965357181635597603290050947016055531920154071515411900156318823688264001468557858819395359733932833511962240158883022704430731693914081243480005982311526698752001963233537194641143079748303901410921241280823783205097344327061858389190711852794096003153356895965541696589540392770549229379074277254414661516763309462048038464955548437431190470776198619834500643516093927364790190448998336682747339839806604568277329090714848376003573771985699678209536730844589706633924719333115516358685282727723769768887742181966597417195441472515141503928295094635921613354121154720212796065805463537149840891982528619551812873591525999743694834989204153691033903564584615291400914243680468429524271996141971326308542052769118532224634063240643492695190680663891960867960257420935051328752128038418603570046006628126205801725804800621354331039345367066444988823590785153559126417862012822055138381315643307500849004105279661192161306312354015536858211568845502149391933189240333325675557100593846543891926003632283096089371290849615979424370013674676105552470003481943425876201072439821351264828215360378528332304060579696807149588423579733131765208399454979059297059809943876298472682316080564392593526876536861777686867097442217704781574080580581204152751976788030515320959583376140920944891034395509373266874556700807291416415686117591694931614506795163161602811597083799882612161160371609904507829492644216999925967605064934192460509322667630866800295776981681515771015670819670477592692708363342680143835639033728340855934260013381828610865594622637182050649266173675411948428233588538965614037272858847561572203884834108662210965895294987023884339779223592873547184211032777449507210387110688552723288097739327790750032428330643174210250122403762841179919546216497207493317703131835250562605851123491270311096549395066446339947332610702111474517097613637538730279243479321896118239280706335269218544670543390195808844109078288997285494728473930794510579642085472399384247596211958164688342865045279380926035483690359442549009452671372397787786985101526234602088303300323679432191254669885495713658420021422479531496570181909666489849083768624466474810681181964702039930517844414064554950001062444165983590440479690252251186078627560241662536729397179008514384621749189536553381598378300380912317035605964163453573627441976286041742032589032808914613378187930561948109043843969027443287879023608595852521656551642002414407433175445709603440161221741358176665578515969272371880357010782224850397459903452241479486673676140282572336589120373761115147119544784492667652523753628128881456296294455844203654127711635168030285960801719317584275693942561735481419930987964748830092486174050800356117293715645070400622931402547605431834162330154983737265241490906411644812909111501927088974456846998076723802854596139399296815439297739143922932850779730209385163333134712194064699415258993063400787067157109269385035387510875570880918231215700004093847177074095456790736252213718568683698617074280989817720148327482974779835082439919027034067790490816162660615149489490075353745046300956018846206380189602105542342401497046464230149813823320097067475576501161171129750289955030325440160975478303256343197339405798685576829806231654056694832336748839260140132386833475467514612360293580662508711709344592232932715182261329991196870805873159850595295861808758169156212851142985098874247939766671035201977169641085540628307366535930959502664307397536835337834117111541095842266601020650087288769504787921116965322667289697986619000328732693751364537861029129221686454509707185587700383924696867204156303783959803123365839912321011973997978918504585940630803348639343133757178111160082678792585134405179946599529995142332494532607498355043264577216705629240235404045174626893294537577943438101893598991236501857681965790091073746638870636200244045116398692538988231979534464469078151046901525837087495519115526248565606442064699936483039667333795054698409990530747747271971163050579703785211747866987166644467816731940745330520202229106655420452236789584433226998695497098656176757317505649375171662927493272205625970812125941042835979011147359849250590907679146835547214663918320855753971262735925889490936323333728909047019958729430704035697885078933460465153996293749057603472756363263781821245707287103516879671733322868922528013829535872178455370437513649088164625356293082385271064130990003702439008204066174103650944761321212742365567140541454527837652987455066951380265391466688398654484194183787326985460449370475081171528885297076715734337615340063954672041058648215086484494215871543009233804493247592928135785503177073832721696074394502731713611903292645887980179214321600342760048355488316956140569608562496071723235571848825542855211934739662150852708958776055396426377276348185242599047835823670612972237929290554601778113277507647294093176942012160913763317630788849010072661647807981569448271468027794986414297262072760076705370997547851684552451449829886251736389398662158198144679891792050095061502414560146949520814793699819206596199158086877943073887136327287225665192900956085572380649436764098423752547912391587173385121114963509178401109567628101070058399075228224990708539117139008785032027800101786528461455130686423108734437349508335469513430850383062417259187545432841768104900129883220593669316018359842036407798420333070257433501581552629055778085982093656058617911560281186676653538123367776643866935960864581792420307739539904138950729186528134148945274656463510853820073756216331880972795543588815433225384544472023638125653012842288411154119648443889575639184858459621365226041878612275239940799781981640406724269934283303009752247643359245470698976577759759500565912655736383690847536195367121514989101546950802264190026621791532547317128784465296097501961636405372630297850583690317687895541202827977422908983155416317962857961623582675221232576639493788962038985804939838820386050942257469488127521995004357058312525092385960925269145146926368257569306127024067331099926402677689693227704625331122863003607171678198915724824325419774579238350965558203578281147865217819535404287299986713290231880298838034286106548499898053679964492699785151949721864820997865242145077860176352584809085887490486943329532846521045782434820855300507315383920598668401819592946993076666496963436662272617296835220218733266299002910878597839409992681468319328834892401573077335623362878700538024735952060236978888124376934483674404885665158150492837862793666504207959803854503339985430087930844716016748934003591232895526483030910253186028537540064571089894252427966599627131430323365602079253856862922663837035703996968443669116913756083965791376719796259824918303147086311271973875322341087694765048858097597768733241985109607310425558299440680887044220229865084155903474002732785572164101213483725126667019978632630842255732712447632871014008914262147565670984671462876985084805066524341270962635475465664998284561153964812169342038260241600736743436515231911218312127529165789992603828111903848820935534881009655359461153225162288923699309725369432534428237116344243502500995352411256747965738772685771965186555135235007339635008921433471090779704077622003171655260498555199473439644707824222350693004479437205656528411219355700410055512626992177108190192020806511821784894527151118803586724430246637643330601098545053903832962596063646757896357844753733959326000845427110549794149317939435834886414408930160963359601838552788867525592237649091242392847521434604724606427978900765024785118273964007822792128156332935231990108067027780029394330396299392928118473348245550257394236587493202703192026574618409699532908370629792596576739711847143740023277042700836310046746429810174158694471092746489836686236647260496362776357605345160464266913530383413808978236176126721067256551616085949904694363074866597608560002181433941711254857372758572294709008144680304173252299040837683847967353566393906560775973728097820383353755719499221362045021055610269949723064785221628998058891869025432270709765869601487417082223838871135077559266122940600702485135321722493761920400051712553544671742127938814235589837383475316684990681966688772071434885006032655928837704656114270431121414522645327687472619369825211010073690854318242042939687046532541946763356641181362813926807588008740838601303332429676878583070525220932263141438672316422180938231894561253847462030369194273442279092040285428517096772081447392267672593616405361866702440199289649466598614460005684220775139893561123957864162856605057932555686408754457675641487912402780370181205715980862553299710777094349720418921883406143065207709586470611606099552336007515505875180174610347077598924094493926042009626528686226506666612356735982275574886210546331633108845403524481321944878292507023768887087514392521263098639178432831479060884436639104541427860349986537116556108826301283780949781660789479448065071378793322717687832760364661506811608210299853635653505718168930301279240940432384691214341701264482739854122514640291167705466336327565342483499922339169973469593938564451097884337905115865954352080693541444767287987364773242735182244259074387067138054021959284695024109453439934894692082324679825537249888788109760153718857170602460180640035223010052987095222971049543486392156381003133995738478723098870980717976419861245063689248375679365760793641387423005569291267862066820975671662757583824444290158272691280749940887519277579001726778825201286906404826283732120248274215503383559643729828450329123149450195040756091018745424843472600998374598970123597946791861683490549643394344012593033290417538631787086408611149195439275155061030356761119697537093510817173823381170280060279663145485087720432459611925986628758215996799115312713982440589932768290167560173475254869374533247679025304092231054615640956113726406960811105825887253905322867930705183588755727587507609608496626101600087228965342276578690082852419085089837751005358017678518719053400018303527303540036398171286583302305328860952108391637722084133201695542100374802639738140380577313000642528669586654682701044764553821843331876972463890568255141953849177168092710931946117433399150522797380451279198140915452804852822475616976827153490599995369057310134200204368147338285009003561585382704335154642353983636467882837452463769870891466472875491950278586793602543079437719103542715732000484385924592495314375414828083518121968097064648291084759189560243148393233115291857051771393705988774861777470238847725979225556056615872037813561755125437369258506902541648749744450815339086797534270077429211737669302618812404780503707133536236783995756113497878640347703954110466926567398754920332219588429323817559651330215430695742251748575045190002953546627284015723970872670361706740055632828369277643944438697959688853605887117763976815645074893351587805656895102739133202844984540441884121379425134658634949682257203921163250854690265690617328503427553458870220718206662898768303393757495935524386454746132884636853293937968054471028370023080881580897831225380912684039529480475324236661558266659506129400647940025090572302453712385016144627139300940393729486948204418550773503574738819012145195791444058026531291374518993665995894648665812392799012819099240568156065825924134421007116629259946170403940236423022204132044417333873367017503725340289510279140375224843698268542204848267778555261338180520948054504585966597770609853162960059319018357237312225125808375026961233656863878522476196403577186016340807890797695313893676364658252066958144853015307654361875787565651334767516998469081130157434292750413493970704694204472941933668581021631455890572407976345396029707376914163022533602751757400600624472883669122050909949879383712075417660636657332944267197498448720379901842642718252324520054687179294821626006171671432990189446939200184830824911318755208556593669172822869893713999288861380650186623667201280282309782353551990856307635412432863505143109537853023701943516002587500100971292427240202579504195672995607212586868841704010145317547086044471116661225565241417487322828013087691113386872773056027929393529633789841236911362471667845500724424041131863999790279929628394637355597065494735668128310616168690592953573194760961925593464434426114370718267603328674282420374473140041498832046505826885934337117556749043989295386516043707531749492447017742442406877123525352408637688303128178809500301825581472741387332239393117239511259754123497758363287958251773522815064113622177168038679736061130879149299673161523637326958294266957898925487434454402715725353862103127919732089629386818529246303716155605100610832470099281233080879511858387447636284988380237590914148049805138945344585252111550790845323044269752560577383713381262740484307567198264682648070962276716467234338213590180953216987786765299679995099447379819338348322129623752133406246004243139387037587471707344225259425014176312446670452113682909999901954439248100097782927660751526937591749917151516168618902980275491796706401787976181087063660343286773078919285229590740683346624279008805871237273835390168841915255108676715280753646133315510866041827043905910354082853529028417981159938745913067852834806788244045432099926911255205729087684667873111722162369031415565451881112180559625313278983951156875937867348228396440423922268553144965041513879275153899887872143887780845140573278684995109226034016378482361822216625696368527484375839496585224646363821651468190967498213191201512753664706275664674991288320952433790602022143589447982050851691914399345184545877891668914674631909707773874414711523927490686131103515164504091428631529970752314401844263969688944380639587403089753772875654609161430540869016757527162884054724846027479819590649407514632578853842950601263161503149991616950611197188827771868463502051494438336918250353740473236979194484305199876443068691586004211494500434924882916959426441064570277336543845982823024660448570042425806520196048522876753380052050545071017774691870876202948449031531241483293268688666770916847511816140513200750818645135711706106174230358465022359941737315930833824438685077039708185766255740486963252867516772821636569031559575833967307337939278260978694346386391105196937714626742860263655383102765975620924495853364270313517961406891280231689810267064244215271116414682533074717389230315466533207505177899596640729844846469178058638979681703832639807332701996974351930858510757887104289826817921260492015826339820515437528405311702202629259562341981275301312645641264496904658951469643028446944656034980487753088920720815663426330907506766140635494148454137343056712438431572834194316270960009190236554861320857303133154424100382816386740066437969149564832214890814033242521115785879666572272719666677889712538497323067235406033127427263676606927044858713085698099779085081315859678849134853794820950363531239526882599374116660628031745498438580834919002761686297091218402457492706321232187996908727462585820272244609651268645385251498956546424651941460611033811955408907087146870151475078439297560943395580300309796150393437358315197582600048271861649392362118111528417551054078581181013063172773392102016714889029745597401103661459379637441502869169636774420196431960601606560885763693323595317387557836041120448144149684599519232338766164460768916706103338247386784871717991689629660592412241727415714376650076505084914908161147919027613411693700680741090771693799598255800776143737736543165955944397589733545267901111451822097056559802732745302310743593825673403985547334187055289249825818814470073122608142289495136690215269397136269215831020736409047306032282066995769863323825352909253433449120552872878017467018679653633271599084932004695426185036567817823518922207028214748504457127459082680025933995942933062864347053176773981473098680494879315531508045864356912541432684829615905483103780053572321492181034850557331437069339350666570268249043073528173698774535495224405400881099274093387550915057464642749037375428191471331802692711562096778254980420471496761002415001918284246215952598720720756246283796921278338980351732977082030978004728708462098684175286921969882286688487992919987370670836505040212477639419208480744268251758509502483078851654269656005236183329433833224859245575347161496853049190325310320261892870116474968973353482869482806712731243926319294157353474228977642211098023542890328609491452880488856192068479566680776269405307900919951166878563549834866568677235155313062480486962914421390115381433431248512573345148209002811546284965743908535476121583913488204143252803488021019733405440564811716495581412350518762424017023372723215026210163490362186906849013647550546189206929028625923542845944340758736033422022372126805677884032204903998529525315011496174240247431508620713623650613214028260578802973909142187234050681563959139258133641726818892330768575307429540717162020934459247313412659355817397502957616229444869666407752007131232431778704684465915631382137472619267410254186595503389803693235669604945394317337718161160926138820765235516269927109990536640053157012618862937690651333937337514264022074642144223358826020063733032174838839874876988689606166039879070154294529768049362899283410874151226195311757353497425250332442414335856783301988874849714000486425862404477472588388859644112171516611910860709429543263842032092914013327499294037217021151537596042593741669786908668597439057871942532621292634445434205053895865941921961490050767238043646690865760148057767528642561834150417388890750903800323399285036079427218281279178389222972291802054742390117347504784705821843703636774217578285376285491099971397985962147588087806583869442693517231942663657698190290095502024060126971206167016118793795466769804806899357010349468360107602213136789538615262323808860189497278791647648481599317570949400082512625210762326183776628277620043575961623583241486044058648469466300057373644603063110015921833863339631473227482589702390697080975858570297588008616970476168439918222373142204147893883158357330992892812002739032524652359162514895420394739052753288917298478019787502984187573720311632767134791513404371446987621227745278369664314896759495043307034589009250897133698170359138785820956580115246872247585814143443344451035495959062604778004544424123273519901521379912744417518671645034698026620716022804964837092822263670686815049506085127059883358854484050332481867788914922430430280456327229582175223055238525673868750714787535597717237772721185396838376547103014516082157258879762053978797124476633810739857398902393841885456843317474105572634282933084668291615647948856136929417499188812050227360197270039730076859180746223612356904345353574303464172783560671707041598295557795828631160268823338921868322260571640337884970727054421620575794985686734357192904571297463118750221207249592110896405200337773083973995289406702504752794751423680743474242248738763349869473413224412487527934713822987874827083914506458726380812127873605144237128257536447228012610414133948608559955558695739624893820001950006308587360104341626814722011736561877082108489617273294995096127373460661654395194144635448517973092377131602922792053316781039605841436224556603790352659483422689033160506750868402730552661854052008423628548427790734463839383794568895273895718610442013092888046500289210430127752059990655912618559231794567052621457147212164222159588860267485923640240428376545304156163126949384119077609282284550417250733101894733038930579570708960951015060555170498835543230462944591255199067416217816341774993814677992154313987765519849450954025183362825004752448476283553119890309055371791473317604805224642766447928460265002839146050250463524565661302714807680153813311624142140647053673117740619887159192889140682558955243278423329702845724479983560805328143923343916469279319264134920840114519448513916313117960624403807402199919153295567182259502410785341193383927520732019245402383603803149029212759643796167195031226366376824892799394938454259070750455786347998230467077226465466875050379654542560267718849101836120508405748636018953224358992088349373057525774280844671992710919209930289057139122720165678055123472646493997993729593391450411329446647332608640012482146195102575109426032563442276170725515897169013286857336368116128307161336078105550212906839640084760072870639510949229838786792775347510531920420292266143147850744113536298758345417541574504859671996987494050654665675063326347655696073210347515368487819003542489585789407173677471386653804629762315680942463553047717674935675347575665994019380537861721582475637506441658811028513907187814386822163408839313486486856694113368554608602159582721387237433523783900418508970085510681720443787037136495399699614751863573157140494297632069612845072242587614034979184585115415072993324188490339398144095721358593816680431888086652606876998641236542262006812789777937884465955736047045414377318439223618741330002941042295191664916353848081394474009210573928479544811139143572762959666104667798126779939644831386284767425294525049693985941070447843840172764057238983026024284152242951299492582575138202525562253829121931137472913144473724533872848289796426391282600760325130103176306569184047303520458784752525077365230535693754152305259553288557955760346118543987190681784744790203197495806209759051986665274562531302529933485812098920743181663773543132908694924435924271418890016696548900762097456474447729538225809100858671219936385431461937201571614168498773982335244403602045957480568561410899244209301783634504592293449505606795312290224901521963163938154586910882250186771683146394302486512330673529276184653630935016808853597324108200090533064854940205878800663954925813237495552076590935913072835631716281401477199195586966314979658270734208222544289395167291858984758072051336417856704941217444641973856270191303016410645188902752857514199114087606304944668249577787250926137800561377227708692015384242132873558878138273807222324792036864010996707962313811362752573745606393604405360788133932882219613998850206793917899240437654194583618817284668159395973187731938896302614885494818443212013560045026921822043124857024785643798040373964550011565530309762507216488020038406025219684567883757479667532367324800618825655474684270891867560260044158515743417482858517704418236773410209496053822826231374944941994062690743997868230569117296031301111382994047207511355219115645710625309871868660549650798057194077922975427094288097681597893762646207224477578515302562367124861444338770330493844125099088137443273649951718483084437625961398942687647811633323172847653017213826190565953764308863456509190164051700611759350155899301510040712169660340036244045801811121095307005686642602632582829702556576695169081916562388927870984717294527500996405872400880702349268176161641720845872589365559712039156114610350940518442891458986063617874163429522907419142325748829619496534663483612877202406309135331930041374081314507612223939045233722617742296650507524470770470957506982574853230278241599355358913721036460665582847244939123450117217382542859422732177007430560566716490798823909512707469341113076448391563755509193146067786444978747653903041176312173784852461073607002393104522810504200856462418452145436284041807478491415639977466725151537587147698330789103349816528598937384295514612778064404864298723443848672995696305240598991006260275307322262343312427010369576561194686897587984434425675086003221578175905379404811072534581792887192470702128719531283791864657706518828831924605894811670664921762487463925748797508967788733803485772828600164718326291446281106553098091925050182546029639106963492668716981764440233510701797703173316268623371535768656291544524932827712202239401357764399034309404058304093351087084868592107531803373210393557215514174431243457797094094550147285081520984034954215226974589736077096839793543597959328986498563840251934839951596318513623957365210310842855918115033319957036708198601375170930416932446604735024317096835830902502084705925781498990717475315260601202602443593741493166702041641064789936377683167878865821220889191440781505030968417336585112297165818386569574633327027208069205887804938926659042282580401917144984789949688403725935785056994384494461895829065809622400577984421118007664074172529336415231096011550653382057424793442894914175934223269796483696894501618411337529217239111344376772461567856501885639871264932851662586877622544258754880789241813908558650356198859666202859674533609050333106762452315256563156883599383876644380379808022395953151257084125258987974798456967848597218197967386104180596869227393561836611669398310206720802677978700956039731737376981419710434346178709388624652376033836990573856860036842322508378090167997362433541439202148696744334468137655010472569288961366173831237304517528903309310861044799817045018962961488346436833511267360958632129437291153941278564409689638082665112680341168937225922213057895531315034603203240638477232680928328692282055168928266999115987678756966000815445141361545203137198759099609166046450927985693620324006905405520112748153660422666019370358775210392727202583305440432248105935423486028952616126078183442178662155293671664250328148244969031639547149095675747722358741606064186283688120568603282055746388170513974678525363409045118764435536070341107575917185403465664273057727073331123922145973327568754165656640399621886795424621083814616606150709107998813263386605993537045644940530118503127536279432112928593830906308302633542205971766837291087560561214956283688426278962684466954978652070644637262561291621607074506498521197037448022789511295896147264290559539614066442524880651616834837295586122813223095205262203423250089022200317093690544603130393854814074501177995012588249703106971361020929492820815363820243180451310902157725907266894024811719584253903287080573067609492261911001653054256937188096128721621088907114669240885139026808439552519164367244525147298828722062042252152850499752861441212983798358733030388155282782368526608552634002225121379138910432626852439999875180433464701338736098344899023590707693112699078060535109828113494085544490487121806320095415956763966417341784513944022414329660202491164328829289099681345075220998918948968546144464052140031130817148077508814644882489953709575578621521817778369652674495948767224328264945261964914900810475971815050419779371911896057959371453147736265600852279501982495684009001204639422313033250341364054072811640654703021906501643313645308290090838527237687894946696195153393690246720892962851793719802888227896328281258318013617189157577298399963544477161253609568637267850786380658932618187264761820167950797554654546152891293027277267179580805121804163728960636492318419997577169988906181205547656254752979365598810443289814399949879222980195538009743036604541351618979553130662219795972776464399436084541026946250966150822900224880103040222086466565318188397642418373634078676482867812155199082289950366252141268057557165581461569643263719561906657643065927503365842968645544761200383038625922216600002796543564296927764253534629757000252865685447554109159260533886963828895671328538714585889205526605989078288699840690476237299869003060746779796156587951756705199408963903872314470792950171317373704789396423248235675997462713900960247821662024830051605403452539641138134144963769711602752591574366569803538583422478234518566701704824222427953639793517909594719023533765750856172644471402955873338024117268070537252612177377138983127232149392872743933705690722648781195003992052274554026170680518650886452479650338391249995496575297682942662864280882140467241826772207626069363881678806963992824675089929530042112519356131249112692137288297115207080397033488641030737968756878386595799866906559690097312519146301529061562999437013856607976040545967128788007148549438681595563649882159655333873533252506740272915184341120050058538369943050343239427890595689478911275549947035423499389963953481252758337747789080047430761846168017268384850910228303160756277854485866260698076067497263577673988112302158827722661787712162783595916318171144000649387088624139757557007190218408819007926579367879256348110131673349219786819603588112906445418951771631933596485305076069548521169152246744913150477467178308321401163499778566084304568039758082351596179756058364454577063211702586253293538253661499119932111297313617650046781565366000960385848288648941532995150974473058877413640881768094289605616993524194670160767062389740450846307554507828202068074684071400782050167911053264524892840045210313346608127810703492658548930099093843019751196621236521774742098614471755375830094905911336038319704345946803565289596261160219192427758439937328713348436979764591008222176673133501462936349866050993803275323435058064067668547019412832737767170089482583453462572838806613739786226333257217079953540717218102502217626756655210183208200989017715631523511049773877639938450114307510363722620336480131107195077805351458939598955648564437684837868938742295503654709059873523729781528672642995657692600216217449019760443967028861846705876807999121317956261205208769906833982887513071182403504096782432355524881234317857854755643800789594613554454743923426847259784692092163529472743913390731447847590425790011753778683463868428227606924785790479664015765216263386373470316952745673473510060729776681873806291560332372701352761432513763118356984176400914535121268038204593200377736267030130569481238723072986247573476435826978624483380348906884242424551360311494650289915271499506683712682173614845978385865055017936288392452288345428317934528073972868375438870629307898890739635008780367699100412467580604317147606741770314495480683138433653187580667279693806985151048584025311289058027288671242561968247428989130043324949536916508425569715756240906977929400241957495718482426724374601119792466949810055515176741733719543908664983927917866350925282943459335869762314073142771512184993434488162709370769567317781857208500945933287239299647470912004579228866837689157120276174225553959450215377219586884166920455857207481553872942462645351793824998263869652091903888584432707965890482877965790123393178447198286692434372200674970409715276080188301492443781828685937401958989040653689662066284861342598268573680386250827488802808124402283726663608572295373271908278945504899163707322870655204668872355555250846787972986087207797070149748174488943589559531406286888748372017564221825266311296850172117592598030623752863608183230652409517543196805805792762839926226697070383100887555691672642749591120415270474884093809334856859078195870570506781884302030828668917436365367126182290588600400744744543596355647818949525282429855275548873616374773515657559806101265111327492786640330220893164305145025622566626513440720987036969458549442840619914826442777567826937440320941234373762110939830315814736418723214726008050939266434260287354110354894016027773164919942811177562363656320707097009067725128087782760971391583494349449901353405217073663143062230883015992038242525364659578521005746684977930321020700814231638711971132882885904286985310545423297997225970477782003233097812749911716613313109196210151404093111170461507829102392584319539892146187513768895603857100581769758429618311265283684839738411173112444176714569335158066715381805537460992967818621106409185936254150237671879877494871492206633830230392580083136326266194926976947627076253889732950720143276344848065815863176165524350043671551152922668816106251784562736653860175307363013752763051043878510995304746749722404067614092440212550985596311394176471276909929132262145700470238358036168992704271748340441478080982239037383273493009642387754005624592881428182349407152014777194576926548543539084353263993237799806668904064976414470289159376617583997276603222549980060578493906285575128768549059417836211053826956682424260465507662610754885200940624568442922493016711787403113507671005095391559255680506251930099673958360390661027590141772337725560177439580804330166194031781996758683616306481595688148019577942861764665238025670562190586928165524290741418823586739263184167379139100140417775399174806185285083966232338469173639043610649188271772697740567531638045162870405558877354779703180927721774798268114779829430894583680521619508422921716861880782586088569794862765923879949678251984332758367582451953770701995679555789240275805170504296558294875431566917877649490085666588399361496965663734397675422560582761159426334427315773805307108039726847187002148648292181473349377216762872664056990292793245963599748242784319403364542422272771866268885484771894387626034462654981135108062736870365365795634142916865359909954804365686484038094594252299599465329422003148989666534591480871927980832187451079505226457475616036561898015889027731062224074316999757333292889367582934566151141304736099235620304821755294226474006976413802314796324265400748192978537797062006668733916177248708413684062577175546066272863124793462484610905412426850919455103349853438330251319082907930219256900559301655769893800688423953254532630414087163647404272777572461170134299236375340116895919683118443268125338334316472915426373704448473108266333024656067372321560917669573846254333267313696227220382519467626620150520179958554407491753020390149834347368539302736616284405022837256185158917523136235153158920047036248452648439037991489692760773395783095504811805778780114217904684435473736714232257288472256167728947315308678360974085243935641528365591264603843892881174387673740948252112246203688753890232108035107115932775536377579099029371476137530799586247211789113323569419198234656009467505662529705834613744706662192545382062262726016568628173813254587454126649799508617420305827919419237680983598570795758779416309200914359131250804811892392498083149281358646086397068363188606110941676183240440166709287437694424194087431807662054288338449408615217060406367152197465838118840379247673333660246968310436199943049060556862815978924043738706566378269959592510428869674612416398813841066269229521627874953299081416428560705913138814211144029235794408071297070036419046141656880565450547741585464340629469508320310522210286459466912144435346939956783966788222952575949171661614513727850452187391416542021211528923712113980400372511529264758812893912429939934970249214928035140631345982230274165603873168874688561580739082841803591020406449301717018186125981113925836005606233609661741761805604281554720502218928498256173193309694669239525168994515344390315830999518261768584982374901263043254003640888660650875954174116864257297648823434771267738381476439605220529986184808962821953195321699928371698961715073627676650530466871854204533412721907492434016267474739842522308726434702396341254673213541469802534213129948427484171559073768370130926134043007008827551322930591628046253765752025873089075403461151254978554007372020032378706293331783642860928726895980669799447855678868339675727349405607116278376746364577511924775054346000394022922762318033021178774746207081235338768001013369961663385283293978665194972488102116897061629676339564691773401119522066392700231487944408359219946926101416009255217011499990862247301900606283756889166415594829737099352122452775270878741770258854043206029704563347804390205277374752491258206254255379884968821490177389877719921376486062845275349899562403524840711708809884273538820958178379989201941569286451760498773358027508907634387472277798390693628726000458733569619632937504848353707790860771706491278029540819842112369659422694658443652183242485545549226687101444104440348021794312719606441675626969644187815232834853406194042150930466011944140431971895047759249411184592412663362926750338759309063198694013588733643417782973365222664797601797462756548638852144296343882960356175854027449555525505686175816131771925428047084010908613229597695276289049576958470834174498456252850085042861987071740691487749584838994771944053413054487007195349205508669190711335145636543888721712667710420585238935273946148030554551500428805462200494883484424261189775615369528415661699330970178740087441118721664076890933510212486466058885744094095865827396728174842489664050026474094960915255103024708562040612865180213275716110308724541258350798879424462254404981709578336059083100733534748443177747204232127876393817945942798648479362909958931233055465594432699164862895825474501239339637074611863314444279882171503895461192982869838511158508932200824861057041087908288014690543909854003848087979934099514135916989881871657772104170845055280936074268477140677919186462233125010857425290305370444711598378067842335201815073999223317245975107028041242288593284823408909710683888850800440172516286871681282919809379724312740729529966906960312469761065106308007877993913420955019522987938153023378583156437906855964193614250061170608465039053027158260726409920070984249540560822355480181794416481200722378544115475140552154809200434378894971460828185130661128870580765614584136720019510514291973185135111627081450241901371317734714360984694343397384376841504423413975029474598873988317946483844121364518545441449300064601527541010525762625469072404442692222981931303544006925912364456677540307166358670380671577952820178065770238842782536198325432570963044059610407636381073353387625314414265884878170696501203032820248578590266133009246375775889545042627252694884726727523982502511397608180189306442496822687366570844381183358988314143564539769446708734047658779185193569605583319040408378279053182996265117939439192676866155867727617418144435440151193053939854440083460105023985288296340342913808722189429217351224277852412384241141178060901452685281923166159910574251576674109518026217686360954406938754797852188738312612147073514301673210316812497204258733431621300830869800331355235095877408824822267235555814231444066389186626496735364596651015230851919415378956081935810504998807286335627211534599432931549043205726959971832029491427664187526235534230496197597660315121126469363292279838219046052369238672765835306021916234493288858656520366425312527057518580450371570542990719740041837910953895227990320161614751662329709067429837792365613413337078632997464317596457095768223117634890638556961598672173546991916123728257598674919903814228091432607527342027058987890806544533345489789493353012693280240464539415512564317661632895881176600544995059147674826758485791153190115163602050965039420323462371432199034052932769889075669050268152459561253878784423414961679631581399859287462084562010022610674512716823154189919427187145074537910193170205670727758833184351107280276371772409319085540242898196591998416508695016810171947011161608860772664048609787678389006781817088800705383128100281943480379320144600112633894088496052794180639333916063141843076211210160640154212138071849467686184128946290433463838662760096685161162001451921737138173219084179898166199458648527620380506905563187023433181081695220845859772597434831911597841496237816115868873166303952728443564719885509273810158637333170188058326244045483647295933054188229529824997925182653466674009806517306244007823551441303946662367718205694347952740189226804014284435486431294810084564066116904278734320580476039099914879804159614922821887855436133936753878757296668315150962063884896485696031121518190281022212440572750632222138198953730274021919906656099909547720221368662914401469941046467150411415023420131262048952485650188015968248403942541208928548574105345976480751347155036636927592522353696955736000097993549545615506230402332806600843532534977966959395416523011821103239453340931089400897878166418618365100352447450736974559885026681033885248087872464843215611502868063797374231629782043245672441987005285980774460068928253852889605445783852095244550193899847348597143562190853536340677371919941923724084392226593122502575556935977768036854843287724706094912069458560068390233664138902932879127309927432106680816884304156118375459066887086052739186019129227524559672000522773529159167447647815605320485112272070186885877193310150055601053135578273857468557482353882786220210149180393680133326534139749916786938383931090369998820689467913607964335004865972311013099835846033834893080921716842722173654935586977818144919499882629194657325671049652293713962993648973148867328016718009862171402877515349948933812762825412172519849508460599361203214405873548716184494617735584714619785840450298860079810154940828629400840760737096813837933666023427244414391469957146281041937415406670248515280754826614581036412022704511691628735548157418523297219191365539074649844034748852209947755283932086070369811833807962021120810049494844715055747761527627130974184923072153252226420381269614999956581564046541709510997510626665556649561894987736279393900307776865368712807463185440579426677424612453169402398739189723565577937252266543176764985337722531357302018858732869230851347728389052972160725426066538637070232744296461403622391560308461075680204683434003144060169854658585137503098375161028909824736657873618518317267140972866015925005303028230087026383943432633854633400782042826674541616045909511461508823831480343565579409803227461141053948984307541682900310074687142482545480142002363571063298547703861474443488924197618858482653892962350790307127754136672156303036264705837498265577117170780528859433482911234818906235159329472716880132563213742316214621907450412906660722533629160281843441406223036296958789156200954462411573346530974064789157459622227677859974941656628340454949679340752435119967701681028316621502631692698398421565747573618808182828780350559887057968058168815454084517335671045191140726790420933935241500300480431912322240549188536451209343955013144499085845127293209657467094348928381387334256987788341923677532892331505384843217718036749185985637369316444022993931086109065011562922280595887451040765741844547101284949109823558284957999876564917999601824951405087447658094958588338503460063354160342809283711482041886085957035997602968922008725115668049871313392466696338551940935025022578750681413373101530383385372795356951969984669263593781724961824272817312674255147259090381483679556780313083874979795498371684279127709824707666224316526055066164876987620411557816872326096292596493297162361097450045571226930291334634598079796454668817927624078062242589222132852519756078394287953171450562333475890133913093842987193198301510436596792010746452381337202979680511369551110448054849403943032741667396015829181230666525777452082685733639865026219618747819290981881997275750017357213681688052932716896318464031420353119028760535073158184161698479269149898276537032750672080082467274116926964462166533864470682029051333828898469039319848595241659592708032623422432934664551306426166756013563590971724713278207182616724018733211216270008612928626886851237050624892996508096806033104106505353879234722021834751773619117526692511671074049309838198285547508042063345193346460012274411351947194535868103025439213451676555552571859719865946668160839276042338655693268129910307917952580494560734543406183234366013611714145090309500853231749121191448677908851664215617007882738747187226285119381989107272463839039388780929015259512325300563796303314730162522608853414549111768543396749492362342672270443063463453667007941955762628249561946657741906731983219059521044211355635014997215041448161295448528299508202312678318870642085269872428785960114949555953954515615374028477408541301275755817520460842204178007179803789751496285509356565820546748802918633439568593529771317325295861125238107076240177922442086062396537109653669358518169559158348446257697540780438846923029444010951503656285395061872547446808384025807339662717800384458657141179202348702080908448169891893635247341359641106417563742805853780221397716031805294990539324814516173527051854061206410861251257312232363659892850949098452058490825005871534263696314133072539552566594189429475734687431298915472615624781691921774330711624660971630802819606779193688463968629171423160896892646711534620482208296734974708141787288137085354535295835059553620402399891500357236758073962431025107669652497100969044159001048857353839235948063618234615385062889634999488019887835009535646586746338037842009468969981594743615398258542233777514976519939073913599864403166655618391728337453485716427654259003182744455808359804363913077778716705521789008104547276164634963981169983188889078666050025670222165391925805354744477856173372123022482138901422481075593236505318750936298152846231845578987682105009222212312408140601783192649602882145061157926037072749460052602558924917827872510548303728259104821461706249029306405134882003637921353716372971517344821482305538354981382701884838486353457907488846672627003052110376501416787258062837249903921883040050845792116956899620100520106904832978695941773610185013985145491729261298039168332498836080605488814057342275790913159541794622855282676905704284373001530839834140458301750277826231982681968662609005960572698766233205636396295501388602758968290303051953033663646269982169914751199176825268322618243508409436383730712970985037781721548094123312404711287745002623849183461775725044398123862644822597185030468992720467771933639753213098427337685002386403220249586135340786437401545264531512622027250562880299564287244424660321203188149355218427880077509897970647641412663210719190310294716750833699712838218883216010124036422462198535775740717492987003198111587380544374675199391264780980915857008194531250647764864168508274358224267711413254593979070557285115694834893899537686495529681608206283687662629268854339227930601387388427601671438025237667545804220795875872306496616523856429693297730129833093878606285601163347577631545447265660122178960799971586514497746537552094599408682289420654109389919242064986003684461515210016288710171379338415138142613214485896550772498851690173151385043309162770363452052903608860864395539206207036784578631774090980088230696873680592261868449505014131875192120711348858095231547471218384990744448859107424570166767029112185599614947248647245092861351793573082233314990636317486418218965322137980191746206671024188646637955794465571559605545965939246942714539635035125959707239815025818678119747741718839206726313607370502471093375866481465425421353343947517992033218833041160078088021812196024606908282876714798156562574057505208541864058579470203834780643610563836871316421427643800780607495701290463702650443942882382769622420184376147735524088712319181890369315449587438119197039308534077408084110579224842271185755287706180577743983085302315829921091868000833270982298179519984389647453582116267636677914787124805946811769885998401841794671323093263701677399283319341783347051852309681357632296730465514833907366106189675728192513208155791940536497610510583184142284319968050996011282131866802601830329721612068942467121829340733411193052819862907892876702707164528245863725483422406380218163308607335240484203332396295529381644998738504752149046001800449378963444571907517927935839040865628962563978640761238122377116750691236808762923940025826235995034850192721162123850410175256044919810467329881337172919268321750903196786094797005381317553333418715797346951114669342295476264500776698194768333991769890117305658645506988269931344021498080690683671182323461599183845352061045562755246526789984195391140418758103310276754873761256375596930092666788613893337714948112676140620241206240213647520711586639300362375287764607852741891250178892997293200026223289999236670245639729915947800536605994506574999814191912630876467946531490690000346926221677428067266605887148624430320086430361851998999066210582895828949635110792652267694482859751711674906735925027597581516700162823345507056681002534235262668066926499925304371172588682724930377622699729463384870134805882264925358547802923962929670553221077762200678243671399922406663704807493238726726561104990515984098606650446258277124108571245712929904908404747571617267687182445840290018306672666683212134380814178418324033865362072285529781470024610498112573191728514810678513324648814719176308374221753497733832198675992266497451287813650930347716588223708523993059218734626317982607739610499295126471372062009121141784279037606186995360558021537224548607212901234703089616896862252791442782316592556612521172917430188077099615537699263654665457760047767981555373642339320759376002657878449392285518117518088899728240682073701677180223540385187241413231257832720676670707530159451168842355934390005607359366372708759160527699446469910227087679721102336005898945924698172135358830512561970109348574682892278418050587685678851739967102572464737053991819210613802759300650206807879260419164853381981753287969386260932526465831322009283818069225606690488807471689278305440811827199952262739081914992017992537141250426430317551314022442650033094849662214929757267052321074139717028839057283099362913295419969370102103903937404320291722049129764919434705037665947322429546796071619247237355644444164948717742948689935723556466657982726887849081628772959055387943631214945202180669332244168028046213790700355494942866517685555904955291197240413589210091039265780452067528513548395610164529642396134242379930984325775878732707145254578875717843163584909795129911561708008213815476215545332395117902159704949388687756896047425660176628476351417836854575281009228108624796808678794716426213521711154101307964602028482737161833104583827630144457231243779955485233140792566527979451129830324994314418890787244122258823172069088210560433681760915667109063530556363671051874043910875105438481871416554237507349901767697307951529345513750014578425296525828579217172066007835168990026233666707136541770168873535312432240283177470477051632357798646574808529205552795509953298470020433160295996466879962869185828623395630770321990629382145420241616267802212220299159632281879630761168348654269732575748043059364476691840181253525650841979930005802925696803274359975694970172867603431220556123814684499228868787257699382647782545432199000682830280109554526340093658652802564995775720949745848763470413671743888841972545246867431995886953129193412521395628751396211973604998337800882905480867443024427929643382636236786036583953964552921807012704299255277086273046470982097666048780690425402735290676188464693329958420371133331233170749997489470866214325754655725568663271611392683696231183511104235587050404119607123157048438646961639785492656025247976108348835468073675545648003682455767342490093826306367318805696804195263312813558327699349625628162964204738821538551569681605043486210580495689758122491069575583004407494275490469614431066334410667277880028416022813365119597664373652797996170376106409439442448807654206595474658602480948740901576535731003474882938493205583699006911205315397786507636387548496729004282058619248385577263359075839062435098551499126226225245877540046816972656444290063304358485832843101612337416136093247597370758479887185134293966377063677095853903675642182860352607200712825215275768018106154651175218775837763558581341621917246054527315160787456982561466794213082401763627850381715414975427449020175252227283232118239449794439026484487911854596543302639309524754929007108210253401328645912785426220398103094825693936246293696683933350460054437806565661404536301769557372698889171014214531048173387204501913377351604556481634055454124759677463796024581629848758026497901108102028710010354477437936188112939247062768565823022371687372699589661980858875844925614210705790460648112094842840749169939591554365398605886807755217743405298409117408612899925695902160105614931891424819658348255494760561009690082455585758238186636672502534438854506938500796091696029830336382064007556246341717306869199698830107590580479648353567886729846832789721391732141192812117461903995892004672033031414170923645673372756118668234186218992660527118850158890981491870262574097266896518825393188505283078529068935990451808138242526938444279755528648422324118427769217204184016195911788404392433929748554042109128388398005704335205103139134033618460845359020846327809037700853988363658265340719346656806995805222893515645057847629999250687052073314969786104299935106427629046291441402742702094423258209810050111515267552702121926015648785736387185822376298531947465220868865010265043962668333291234301381647725985755784270946425895648309244634914260528169343807997449183157699276702044749609876269256774514827946523742653575870354467643173013835193552938756298063392444310646885535472053746250186279413924251181450609037311276223456598667744079549937950017473837243455601709874943182401349139494405689025775575460316377406377587889999891517943803970225833504581636998636470816181625122766937035255839722217876305146667200049108023259613413785906083269411386969977825567257736316247248525444674265721357933163970453502109196524234511263037949299799834492988125649896788345189187067240458903485356177581438457299871604418665351094859323990935745394043354022805332437452839876681726069210026311920990624821507803751201971587803497977297860365205669313782535963078059342932986201025371550125682720715196065388573102554026392805081937569895811574376804708329515593054515672264005826090044421610662560832144597030737940521251031519907811294128688317769520950148149092433047857519362544695779222228191813372837624804868207040671599730408403669301141252109659212879364065509684480649161322843894772881417387261754958714447045088431226476811498543184821958698076320449645207451908496950092752070493409740923718767496551288450294210732035241303799137191129708370419900559929061843608889678814532902581429041758718768343197947779214215052607989981598900116626252501479870230239107638103759101483115419191381530303928276991694476375524749957960033308348439728895478849530062902098168924846665179464856175577667566030947131409570955622148282789930831675806216431185320964111807243254844327257438442071955352627659215155655522796592672620417752349806323954532652049170318318943870676680149246521059565212101680824376627614242473642472158722132925583593408158371714760509500565544336791828336195103265213613181844910456333027755388174490002233607613789349504080445940905173542720263914296955685285968644062781427756411941312442072455999789188502240043412368174693213095477926211257425308986193423464979181187465812106596978745499299186103500781181832581733191259538867243853241197683262888539425074338470852769038003613405056624880752506560769080966673531638947737352619111991424851093760550667218702776528482690817600738708725485234894110490113249646654765267883306099136069054059046285553907300823118268885110037925117181272105673020073961574541550895176865092373215132151826792046075756023409268016564567099095449360961086985019918590300891999020823476317030747816707412120547698498916135667305964681660755807256272005773066948501151317471333350378390646281212371466637242406046525996580894282325574056223595848397663060875538655034445207213608105964186295827909388813734542284303826850672378931221757914955419604561377575406393453083723502031387469102115274333520700952112420750976320758800712754487393476585617931583748634581625102395223507453317854310647587770095525563144232388923803205860047495762803354655639783495331286374891405644839554333031000932634565365466249694565957585307004776669786085190319021485431395291762551583765461086943243518339192173579324041030212160775568410253696453313493363768565765344491773030783181162959970572193939054683062917081896529996247405676362238983138265731532743100787282958382378984297776556121658953832331150306017020807031163877765775534220952129090345048558698735672071070795544322068887028268485931837117145713964229080548023095471518755952165886792873811891661300977186659133998304110242282788064353541126749341715009937340389013057742167239593629951966359671316211843897600514947884137367777192743024718427639848307514399136378065073216303983014203840764696327175078544081464372726970884715695440447010176456941558226043815197336176669383268764893400279924971262294050532322038987081873360985050311416650060511566322972208175519344595222621743144931645896738232404657091204705212475252576814129250761361702825353040334817648900846803608997835593715328921431143707362095644014378304391643811783279252150559403799876354289687815019404013753652880900383764539072024606000298483098241193625697170253777022454590570443376654063115666544152102460991056503120788487891913310731075606960576603391979963787603088462828915242086304889479148594646175727977147990084531213334549109781993848492789515110420511104691824748483441510214412103902026622760751181079719923686693673164531161803406116658329243587446087814101122504040053324723286097001889882168438401716320622029776137766653277697666853630196935276017965702087183136009887945584230393502328362334876462649283354096524008691379322985262555958469647155829550567164985119295223550953868846912724662387687847129843222797388603454221943038738894174941047507968122344125842950811620634482419361214888069157546505065573794017665440618734771134864560212287842570980011556519149458393864065753997222839605049626970726150015539433467030126094922366108892347461269483059907165981947920687535909457477254285490589493076397598348118171657906403595705108897483703234522846554695874481173946110508796803018873710695063786766381655249969706768810477627430342789054728376835483937531685304559971700640560396965907527283118903055678260113907759254298919652650244611504610037120358233112293652072802996446682796926219124779961146182924748940591087533057268912326767045183678795912548317555715464143871120300226726949212319593279511868265831524752941424150924361047561039469504787540927127132931574647313187370924967372931048118690532973542490975275334429996220641463617379834967202081554079093993156079011008792454904712169799513172380603478448025509716748839117148436111828972881906885989031345841970529981004890633618354280072926598034755513145860609585691991285593705452220624673485947203684862099370603777220853486398917873497299278559998790317026392539828693127971898525638512687278423268659993192009598568828350755108775131185814393813976814873904155588935775415242487038362659852482006177748623152817183716224332807900064893825663364070109154220744450859104552576384251334005638574076287191627831527041143023905155346451081143802150913076295038669033438068905960570919062144451168451722622265277148372171186181196740692603783744660808236687484599054503890421628449692732409111920599443419327118267039650216594359509807972862568741381061927198922391916741581177833557245562758187465676540705248486444244125463778988600135468987228848838575729087004814388977939727165416642882581521464247122289398153686040900641946260330199773697136363361773856276521092695001455366144566068102472565896880145452552499244715925475591252882377391459021276078141748078430819239117207897530047733354592486149568262090380521250360706059080618441548826389934947372976886618315869087429769938993192254821630210069875588204811608074116686848590363237196294457611583044176757420201055621280344545696248008895271161273813129943737740886106886873243439365577367671165138551954864976472451142774150260210593568216588283860745755079402365578595541820560659096613553364195271375977207034213844244190179261117483357078791104329886614884109177905385821051182000683248071189764878591680973142830535964460910067065265046612406202712892861101449167946322785710984280093876387144673689470725862799685966589128902414126141393055195066030433111513838386396884102680888475464514775145259423299880483375112927232286479474681779191484282703262734318279002172763685762997327260460546424499827464178132007453122976432957206330639890666270021310769322853819387409180089239706097627409487170077369730444343534172444128179606126833985744426870943028369795405427066260335840635402727350534661404303089433721231443511975736362004105516647133710041317609223516047828510148767930707669726916387598052430050161398528376028029318605856008200036819175823597226215860333155641174989354741946958378048834886164049846504240742903365971404348603547747204407226761636529373119881970422108676619592226167205311487393725515550021913303738846026671450858202312737574015914480193490896586150291029962001567288618788939977306464892579912944355422232592732194633251727791732504576687921566569630143947049738740495585336577512193477872092982290422363864402073648465251875695068363200051024695165487415326091178471211645633858319346134491381961146611856739777646854861374067810313997410597011855091244622485396617813927645992256927001650669972338046607490688164543676988659221452822396599189817614976099474281461347074027125929471482462150665998135374358016616870489864535698461059556590034249988485027654299449764210878114308196194615215169936691927481867839470383276195516671404514752941264597382765254634248202218634062914042982376906113018936324593404560366026448417986227104583053433074588584355342198582979201017571198267917505062302100648571178673837649054918111157364977766177338407851400124949490333753077392596145434899403406233848249307489762160201635468460138259564418240988241458396308104455901664121623180248915224473928134035032249975610011919783311125798791671910028062951987687755593881676418254173244635880690724233976949555185053928271236988432658665124327816587750493598775591109100922845788265449346227199418761445172770455945531326120639951536622067753455293495591985316806048738869537782478753420193422778091166924188030948999425505337717773384156485354430509227619399001141834799820914167233131869185461628446771517847323312751348071817295180868172342736615234189604308018144398216191154573050139206166581453824078637618953851552337146909078945821477675972936665095030043398828567096999573055791816424606703483832185340124206277371284178806000318503552402552857217262737848145261342490236870289502345507248094787811934918791434636366245680301755965370671840449165665451181230351318578649528062906211457361072795585112193413345133445657759333300298919081182280047822335047315383301142235789504297603348058318653039621127540865434689979546499469622642786409217274839753036068401175572214151604304353898940108333821994214706078085503078065803625558293610551404272438968165630714097454891718039083778640791389526878256441246051832244529308966035593026778354026905615323165652742822908267151305918589883597930480340749977824238581756221451955471700976367955414151985583836737243382887111744721397071897228595341005812941128597988296829697720068660160313201277918001281601820485383850550947120144905285291119209333964891535406810036203691237880790043894671918183978629196862967223675183296685605028730003200678307681798333768270035152932396742109942102064441635728720375862459765692158312089387565216050184198435584077712862601264898436353502989058782876477264794140817154703844069805990924389066210204730470822450726290867243074326135554136052901929640399359385419229652329818620682960478084259430012978717812534952369613633365570344758723070295719911688921197314978251340165243247486831033550555780598011932693426486326991852731214510428876135756191420171190080438912614542666913545006441377968395491494669156606345060995995918085161090282349989694523669935669766136063279834015531094790958628814203450301148960277338444218592446592180268179726748775661358515592544190859630587362885820842528195353565018101445334573918473620839300479463482131072088627801107288978464757762533830956676325523545789390717453146852055889353719742094049817385273233843624802149571688266234031403847248442490935546986628315603732751142883391464218513448675207463934846570284533772217898584976873682437564911157017443356119235707965493200837300693000924374700111370515018039943832952623413445016672005602904786398433216477769432547065999604725449815318130215719996848331299167747706353644922981624050476308770176638911430903535150955622065586562895196482876798618942119149520911948483323864931385949992300142442843569016058664042076873349120886126743429989265866488304270661025959595923298171410136495233067914928196203565054082149167973014353278957360025343344424990689650117650398541999026270225459547782313010414302581279672078602266970656216139063043269863425859840133870520834044703641896664607809500316528933928042320856545481553226210737951832196382043235427556128060907410403577368487194039582050819720651000523401922960974954443916971480549918716217459209539155952275090277482443918030427665202687781951801156798849498646658999018927975186296625649364710665347593630628933817159656987802733116842491419687483101028859703571771182688192887767569771270242450125137770196922186522343234052665387672968416313193455515621961619048219910583307461286741938238389383247436069763649414021810362626375148985012834624389183452310800000863977166331542884163783943369424553493452895875489840144969235015766412402017237209000576762777448505053166233890077180639352664888787419193259181744692465393670133812831329442029686787380913507866287030467698611585016926405015566139031829173363670828372828704418405913426564796666696485841600711559507125457598822719629395210966301643744988426518240643695647458304063708140442448452934508174613944792220485035836906698342142753151151704065043301478677397476896600643531993429278833082492083904687486385230617052622945190048417317427533444095291283817885802539663200246204517309289591269920176064694152420187930084454418553553851044129809774281514549204429789970330147324857852014119561574954400494755744099557461936458811183242690187996812320739685754587146066507609887397297459294499839028705133879965985906993146635181284801278634902351992977740834196998230695672362914986442495956746114353679354429649045744296264138260226175170349941213049055079651511607754575337652615493282954466539479180335094861514785847157938120428918274903153842070029773764699497035082032536618136323344110199220417209394283193063496481133756892347460260068125900294870793834457440083860436562037678260993149578654847575664344070917320835870300322493033247393550223247322123875527529462155054932575532828689266123992654149957629555628922702495165894412723789354861843352932538968172105444514974520048760024409201050428015363193062483248961076490016517619653673599091134874996012944646692724308928222987884709121133613261259206508199191915207722871608804936215095375794057437498421179837215758860614025153525598818732221419417568946912954919987476759705917931262508403193292355395340022763692816860682082207622478210241852824713015297323038787863704298948512608755607486576536935301102274063345473632236455036796581132686380127063562541834972634224186234695465558113186844368799124356161749178872613324690387388846389219167198528344025213802236030097932727261265988472767058658572624380820529493761711565492339528074712026814525448158941690310903011470062494114154184309550506918022991452630990913321910691985892916340101102247208983679916364056482233149700043371195845441550562184218432793657811598424395233682747323075780401247274016430024527517650661849156545864065967871664076772872151112853940610986157544840778433566877781583436265266976426564456114101920049430348054219711897123285767753769851638798441322224304401447618677056116164105182734165604365869418738501040146072331648192030021311907862496813494499107781049615962325447345810658868020461536028069958987964677839729301165030027271359076799663360115592898439287514536690314848509001765017081036001158688414667536451268392846365770058411485338553157051051536034464645456068755178282445211608752241242913762596074907696788383143152676903474203205402185307837827583288205536757074550361090799037846367594814961869528173165465564799739159291245005409754651953383035258060441971199828796398807847353810737399381864288991819434845718841867296889095299391478262816728662325060384281453209186430645443465853071324099612646684453550419034014533660773181553791150822419525501448772760672585576956403926436997826004126484501299252945452256998243942672492370460572443003445631109449919744391923392213066911693375965514298474654871782676558546639247494553708231507517182441280785289930676513931530122773478621811241877404524661549569291563117899605053906164801113419997063847908871223210711072848143059387576042199384097988290991019442759361083681657709253107291754010639040722496299100028370977204793798195544922796290869263509024014530211435025148938174242991058869090916367170998647351862756861176894567904642408052380669416141269112744475067351390291787256552774478708666002242604441925158221492162255878954209609625055601753514770376380365340981591199876264975455239952240051029991879527445029171371006278906707294682268900015160793421680899506290703236407377709745890633465525062304746419086813602064549212283440294557286749615560183264053589206152049626231080340579522485788860497640572233652885253012129849187253441871942115990296552908417266367874706718986997352831112703760932851586859991720724736528072655451681121477049469980179783382678521743773889248712352613668188579016303776480186628010573070494607349171089300426734533797361074747935330621888417147423861518557535425158239074356855795011247448441088734954335551836908400478337324667298876203191064958238836074099142427351033805936897195626761012980229511405632038743963921380582061769921613220771643419394400147052218910535646119264845652422216822239279265144492626875194556174523443937909850699473110312519008470386828857343513662415675858332867729904590742521185678750165020345693593046122210421060489130678311005682415090101462814928390439988603950224107067174448762408340825698099814934755121526999084540028127106573036170682511999132583944757766964833016132512121387357980083185353272042100455312081055330259974835208669692367697493780711277796384396512484994773970456901360317585946703332019074986619109562221241773459907006791314671354910579914180256246041144311062589284078110527570244085102096318259130306551595038190646192513630057411078111357135733174707878013661192825657043406653099787513165487724018510530557961109319712982785216021924847674615561333986090966476952595099846432145281459178201219871127095433217186157724519458123250339224437191654147804476521560741447587004581348687986252590647597419339750031007178892454531210342546078057276491977135190871263694621445722986991123462704700598236925153293059146768073893034727816543077824038755149530321737543554365892452672404697545068640221866147186148848849817495368145164641027502824135110339278383809588871929327880643960012502019979128403439666700778808807780587215652965725803261733146360938865694917195192885705285274821534998093649752227855762988217676469489227567722317537966583462672611281930928814998098753747644549700251050913940423486099988186934060545903619430235030469855670064399805739204629002659964403346502115452130727262616237619573865237142020566808917911581777582130564505071220509992523050940472014706428971417196305551286580830675250772007870188707383144100712329555492148175842513063558162231523755879241705415180882181074509736423807590529261466139465307305653503595579668670114239653083019460666657413594218204690538215290888617532288466079102653756711295376541665823563278617627474425660416341170512732510639040815101564104080732846096366869004187182467625297938845886240914090967709092914733701565583044643544842439293812105237248574968960105560520877138369876870561989228472710521115647455340717650281491383088682831666703991650884963843223790034138878784657752836133589822779643840432155023899103019651531402388586810476529029259033221160812177102359801872664833249994025062729504907269860537802450473883270643755223542591256939127957332129773416930858247683416245579482601296243822263725092997423473951469992692775711427030329600566678220595912308256800754687440653112776287004526420884671421546542993625514906333301092810260813860101475505422365157127366216992547151145582045764597955451521948039122228053022946778852555605637228544810368086602282837052652296384754153822815374897026187164559949405292656278145657540171568907687386546421112292395716539831621936144927177548450294071920845957851668604532138870137164549455935197871950634904946263758921691078677436108099718916742648960453542261488904269224273040465440011530747505403086710804651327595830399189824957644267963567613962597941175460530346310615929558282811356432637167887954515084280898136206824146275579607119618373115681121736509913281315507768546172352794121435260089365421064296108316751560101720886782791698636938959565288154508595839643957536150198173831883144275210002750887220396360715577556013230424101338842898524398880337602906154934208063632091222489877800210989975374095864300685768092038801715304437534132373428703396584639080649977096664387703218592135866824748283756935740635578230914928206900747317073446409560155335019040460384951074434692287123872220583595535517991169253157102140488437419901134025435280191673938496349477015457026988182401996539618542476980493740716999229087909993342628214485147080635425953645689668779109161697244842703599593449965993391111982660829995989519708006033147947816667223691561071990270268938290584989294372992572848367149794404912462485659631310718225289760972275551488536566892094749438890563945470290687643763274015448318581530161093312802877310000131994577309134465516782806410061419407956285117426108670415139158792312591917251049607078276090476805765740177755158275479871530113242755588894312510604078338769231927009379962681380529048104817903950706975060893191887175409845799196681005142962494727708574687999793633017570387192597290745674242728015302255726000412822048119908775451589263961905144560287308839211908031435410316311209510486609437972195701728955682336402953915310896893751009227802862554851000594787939749557604555596498079949576587372357535979069417449937149742146709631081378650343052316937708950207825086041002376495787598993270327613772136630249710067988091335638314932587906465765252171924634147385088073366510713322588029174335254609101305705319702401813179011606817224871562321163598960941544034439946770418132835784887322351410624337017528984517374300743179215307507509203945673651739747486816760383437332132768168941628196021240611082443914397457847638206123627187166975787360185852108092360226884939328886844628527471899349384276555759988118354387173060251905527562706354265698824272436766719442234067789358777171253342481760022022604475356820728451306676269048943136129347755691086837084754018109696573599492930766600286670698533178321779153668656521919479657932445659133819313720718716264380526009509183915798470297450184296281509142081062984174703045710070107904252250572238999117537827435769452425144182186063216915399301762945853905151965758206432678082175804551512947377593780793057086155705294021207189732152937679105602753714171355344717240834072979590665182595564800249935173892564737253196520329430245723476769178073862671756938018781691933111564027219140059603368120847788690147413592850084981490887894997205808779907847431721014971464277537013031631914485892396275737368051512540063589671267109824883742580281427941880097645304277429670773284406436272128895846363008679655536446683092816604881262362990982765090656221404318612881323027985125290392479751918041743945245753441771936839196596689956354022398547077369958135280319769494102634219882612883272550283377993967417286787580584753133244995611968723236839890969662128429175568661425874869118765629122874317486564287332564612245928080435088807959192716786158721906373139202487770550600343475621497807481427121481255306925485887308709314394765388897054519924703268089491415391776393887258073827207726172790661951037499111229661490594637023112066469188005128972913373668269421406462377437465080186956644889159164006877612876768259292729378755838673247859209962087803947675701093148919349195032896831720217459946945633306164051926348947757686068462221113843033108501376339894187469873086641553365442499013716789169828214752420983292710737412132043123678144569930781025292721194234351079834966295702440149652299495697258097471891929417942478291715409392725439712606488238953664936368191108542020713962365696288828643324016963374337415407188195077841946633312847219913727820305382408969723966380691444096597807621124843031108626642623335930680564280774698162417699952204541189155366679902699531973456083514623266536238592580748498244782645318151719355167781593463923069757161516851858178580207499413754891874957565063348132291443278185997968169470418926224725288430250682572349627566992365174070143459313699476896725480001098994697426331354639813115201340586354472525059582163588727638957582375402421775857961577770060403985499424705840188071576371219933410097493339160514376714678002131314601478441963007660056847043989642166292470845395059705936493113030136196305741763338589755581395179715614478007643547970943582998069637060495402203614492922710676723080302902875913625085680992034903813515252647494403443316712661811823809827083526206813370188885675398790802182981203379154317103130571877183152385014959237716347323581209540341440272861975105883134218938000738408767088227414669698868255923796845249632828843705431107464393760066364976764720755283567126630780265143523240718943357339662725111587923781824813062575888687751411059316422575623315171957332639206308877882563441633696853522966733381780721219961218475006327393851812128965895282110606745781855222820373628433557463238967563159638403224560479082435988933192284688808925597672917758860134544663716913621618445150518641283465282438389858651110607959682510335662455315600053349636004543089803037609229345423117823513294179624059575220814008582987149610992779629572595568189962532109148477396110063076849921234556082293152913619766140870045667941504104443093803152581426809674230607529455158433184731711253797363266069038737171327809895107784306838310591430687662021510434980063104621342539209383496133052175245707548861558607596392313877883897996532792797691324666146324190724848227087940985924178548189586605451548006935859073854454176682731500681301370278468984486560197925773818227948559142267349784205636829184723813431320666201526679819874679048937437749762052719691302314867895356211305321145294709862147034781322694587983572540396579970612132564893032558210973468113031575625705660616322408912213255211949483827271554982338683137870341535689702088763604433435779278740066249403757619938912262921157147048766707743765686030436649065085703579115321983828771454027746830777527849377718963980800083041922522056252655098526172280148211222801571902674143108775752556449316468602162044438271802934785479054137372846027299212741984519190305377186321075179775557764749676299947857448167792176099747044155134729337934219394998178673819108100283998828779876683197908228095224061765143420194353969738366749662126042437373313131814030971456912691816639702801243476197707115097191205313453319927511017147167165459603534248056415628631498993144448049998981077086164689190100713504476928578813825380909170014612369125957149587422961609558781249497129191440892857348183385120526542577937890648881378785933809546702335824147581256813316432936890365832438246155863997057374317743528514098801462601866858306380984850957642049380643983668165355693818036505918918452689910491981648715928452522260104962396244733630005309311352137962131514088832873912570110968107345006806459263627946962679203645771424827961313642316234833971324399880769533044236912090616763239235920805894441444198054936589410881516877843803177556087833255167214581443883301151523516319806433368649170238401468134375970814055154543453438317718995616593029668941052141338755151938150178293579680900573971000769233837238641876043005779767524461196695209054435413454902790150567410566757906173924535312095494362288496990114603408514573289594635158034406967551227838068056480347094172968610622327679127999639811850251027746485820203526753786063998011878981040766217255124400641424423986806516305419355625035865535448000104169497469740811061473547842385457381765339536606687418331272124714707179894028031755022973364085510785428118612136538754056550020572638305552231618161461286966453494133461990777869971306718552461944793885027725223823062345634384786315397609148069899218918801145569858717776491799725079616836171536292106251019311407237537048905317644287869737150510273376234322137146374430632404810285409666187477650339717917740302664721878820814595556538961968717356389678970602034065288393843488174457204365128658812563863766115800933120484909624083849558164792206841091775080430281884479086230290218768887969360120614829366501312503471095289366790187050638504735885762091018434322931671697809840971310923677263925699548006981916500280475318429660847123711288805009320661389275238786997260152922612104416538016817848138145431733180716292797185252557748890323847006970553835507170467080122608552306534544951152395559861345848133864152596414006224584902060813321582612266800772050783031152325346957985572536741062712226108275304293520165358576547371512727936639528216798731851331695008483605937209059715610655577821766151845076720826951618701347501941566810710380789745470641138930164750031819095332078292510246208456904316400487734504794437852255155038497989785754350536652723723389849363651823113484930273667195521248849327834433335716450007937908976173375851694178020256988097254757659108133517548339920404993320502918818215874765281889497658094688130184032485363962835649324165262849384787175612362656692276418238419460037832816606944542295979724007624643565161320351351304515206817537060844753468206130853256594513065767364717034992440126419056398426920992348233530009952000531061773795553138083519745849626332348295679462639699786000182334432076980484155935359359203722768513065948569083057119232736166245282885612268621876652060905315288746634551674757773424199299456462594601995496703564128252674083429581561671273185167796844971652220963003017936108032133704016190587839807434810033219463087303941249908145886191633825867171405914631882601835350165101663262879810480133353300609368839662136916082744357639707763555481374282327771965000752654247999372960404511783590527856875939554283646285777286941568914763609958558623817064324451183780816586133086897417005002098051614181533657071188120187251560707780743074726136655767004132237790782706118230407369359424484610430569238965484408293319680950309081160201229386181756539567559101700196360849619848439345329313263472502180306769232205666391450742515432367454080336019924314616211682062802332470207291323589313791875351510614902361174667316608186733571565243344051256720582403412301025482595019764215610559387835440663257787747011387107265775873824349697118253673963506766080321508196338172978029944414847518206810984798669412619690384014868372995354436241226767982271316343751343301641586606086433331288498667558710536997175688746656549106471425487976919190126642321058291643049822276817120047292648737695574522089287257978935512345603748952593630753625744141419369568418850374993863615377111323972102485991009683457267882620010381768648388744170262113056994080111245082145973521968102350666077356875329305397558672276690015927867152614271366505486482465933130257003096195537661958733964628857383075474839945723890798298523092341279340831057367210428598016811280145237272873807327251594869771046453780177803308975703421558709151770117835935511412560732548645852740842892823295562438734083811645745304546485805646432547524960552231940959369678214895929821200078282295249013690909022498430656800995586156915385513589725171094340414722287534716579381975343376379727298747174792206873597402475109456927655005307913167845332466199814115016287936327796919863112023014754168543316614754081716817346221985324480484558415938226902805023216617314219725622138830430797535087395160202514806987799784195082585634911802112448277265763561002846444409468619930526761790155998444900540063016062534718189842801721871824400797703947795140249244592776418768757309863713741724195621684281061297375474003225089489083539561451280816029764739739309747320846999567096825839793578662634206212477619780746493369675491234233122059612320117570488049446847807170923593550075319616934336604130833533618967183782322883121611478431079736306722014928240031552490364870171797123379843340875389955379202027891958627890168272317667099999316535463560321084295442852324952154871306194861974868469156557997621441524353051438818010134981274612641275661879257859588310718182805325999741912335642196589584104448275885627553938322668513555852694137529929336457154755013211674958996409142633379291255402076517858361421784336189788340676756231484219610027163590597240424238868652952901387280877017098921401388572922413752018697072109756609901499504581810976127451156235135114149633036495236354328994186140256747216500323235455536365120245213551665589558084716729396078593504111281166160088185481585433155895236838569724760586257646013479936838454467516809813673317012538081644515514140606054641812020183394977166271179848450808449195362575658125588563082243474276028957962187445488773336380468565191363460866345855332153192242753171166189075804542463013969187621244235863325984414027119928315026379586463594069708258437328282854910865081423533268407677497195675310141147080100640360931688564342728092372931040280169008739757706624978838309626164598262646073842132792242133448735520138816407622782819082243100847283454816621879629771149103073371322647345647501156616443426135193239929928823992761732289198854165739626789538109978305539125662344176071249210055511433493521431470334022439861469149058302705964720782525508138321359758488616990218457400364512605444033405756931569004581214859730738608266939746781083648954456606032137219620667632242980296860173539315580502477641878715162608518096109787428465572150471719740152247952509825287152712033422788628171569144219562248927186645989784106521544546705005572682886056396521441718826699313049104173413479399744302795887597802031526622766731420417713033890723106389530114261148718254569600893680377458948058412433332549032054876948856339716497531676672915156844887090091374026184609637748530236710630693771751067193308194271890075759533152112015086132754678529893447612911043907851166775939240246389838969277073321221675155997238473223946601522609760840026702531519154376946619254263242199278436798505044773812966935329195892382531648960730143802512610608149962319459055398102808523299621535290105319086794848509155212803152024281688549339311465177272473858708234121369358750546431480023640396545998058276135491500224200911465118941205465647791259003711284706792511290419680608478082875595880710878445031642718373154485974236531006517450681464740842051116028452569173478457474371395128912143357579659024052566491997909723407141603615614424698953706476151446545033660298175080783875286258466610506284710638249039751740961539448732948735176042042305834912852732719636926410644287888166942284311016656960626708817803776038342651595644331736482964456449589692542324777491982896067266433654598826456829286320429413406446122208919061166087778926292670166089727664273439557795715307682443844821091426958066580473374025092314852155460907024646696308692335293526778370356432267728735028899275227378569876620848206151055839447999071778971587258385641915503991034315825769633052327860983512290484698066491813128744173934100151962072985661740744452408437302586074317327973196978540075971506904306720935613471715207035359943182027132186217721833285704969898385861254760899305372573484651562303967327811724970421108498837710575112189645220637577625659045350409775592917199878892675631363913901751756968671261673229456555752735097746763955377898462265428557391596847557491286064395580882388115334925737422315718127389485354095014563181947689994177763820969056855538414131200786916521260197804700584582615101685603357350417268125023335915144478719699682649999260896659706450675485646522568955613214080970956798420300919518812856527963717192569605084719184731535680313173740611307397072194491729746744160854401700644909845426023709161633030944746718407883376726383086769503543054698388685307327479033250000308158750110527376139644991293848931548587201530688900450722625135055434377781664843243235752089718569106356691934560503728718161805967556075775924924415861337640642985667132448993630586816401113927098105499449110492488674958326562255040909966783102901880337250928988205893868984173900299396006216739911129203077659715934398222929075032966049344894138455310725941237734682143730138412156947163773663868341849348215480264917276363623831140274107814420007855111566382820283430555423630267620359396273446604639429463776763098781881684458720990783863881233271594437613133316606807827509808460586187450422045075089740209672934853859408203077484291572980084697523564180118339450463672005297560914232630089705051514660182919238533206088943517805042806500928977061937688154223838392125627397509159840123503058217450943208350415979281156163828944558117470976979172856952106947000424943427528025362462956210784040512543614422971662366958987484425328010247636386570396088167857129896179508929764145044984772920489183416402114670169894812948080095469071662867685673427813517773394653844433720583752943682702891495091853216748638790335366189457449297954920506558058194777361768334612513211554458718134237332048779050804867939552443856094050970379764426606426116105819475839116025050422703080597142604368681970774334109691975820247958331549853757948458109493304847139845386942599777663600671615053213319564408662651482581471645805837467398018364960840601188080934301353330008469109483981865124357808799342983873922461247414835941249630791441929246451021421861284947481831839807711100816194645256200977207545813524616051125047074527465820240117661270032092308417740993597851937687085446978290168016152398800901209438832360622235119651072761836183407211748750453176002325262193608330897898583528627667642452080610997528988593813358133639732002689433391371652376086738999869625105138304570517274724178468652313618817968235372669972115634709001856906625384510790736629015679040965243826963971992041864910394205663143865149533748436165490037735771913989607876378906555781689501701375664016318522890657750507953264542188850370620772857506707866157090846982739341844013523431799356233885757596878397874492036094832349526943746520642502499370025834683534731300896372169420325745984847121733779885414910079468715623592357861103750593437708537687275065070004596065396344791642826022798218273116260520427377099300932377697962167276932114922394156657796201413321511901468528777034823381573046064002901566188227336177737038696204823288201314348646123292085627445743556034068396838873622530580136889717390007586100205956172748922479531362634435244348671249016114058765597762575511757165778441989539151129208598701205201922519052620430082329206358193811113991932084753002067198682975694359737281599018939862036641389360208589373973641681343548703147872057228311347724911389235969583178462193018596649264696559232732961104477626048223732917877309546259089393898240448954447094020932835033309439718241680745986912978845510614858499199890232221819048336343245603907276152972644805163865201188115866593063136113612334916561776460785371922241509112118164128029850511191747575314404727431889765530167008524347249455751749280917562269008500277986103500733269863776248579538690392975315395028678183921848683134404598422439040212455599817415014052379918815860153145244868160975223408155535654454860719799967857909444435360490215787933551847184974438846810764100268420328167829773874177411451680318856938694782928431411116684850024502780593497973884613014797187352113511874342949468976429594344170797971076543854268025944603291608716330246353513469649021148618614795666440795797761218801757635285315053114469119574147619713874589012255217002086041441122553001975636924001398893801912207936397000611380530652612009702356728385833805285472175736960601794165038650943588898219732239508175375846757153283068642836395415823513638341450430703840112094733227166351959076038842410022472226257291136929571930582294585460306719125951765860103415123468507588223073620187269858567981066805719407763016961548240203387744054325175976311105329474684899042779522803279530905036304314673196589598543670548653413359312872173769772215264607775643985550457525720825066963031959476221097544950581157314261316783688885494385597955054431695509742486612583494212566806598270549587396138273470428537583424237121618673885502429730888931606475023843915780729388183892258824792410831063159025871955085329187728043079576091883039598689741576677819215902466758794776222972077770319023304698226183829816121189131498332741663580534628657723861010801403450822282216999601220587284067877889969193234994943821925918645848532686520556492483800800461261058423210588194937404825266333896690554906116232129628499976587179885700309425961315473583977216387671960013200547535841359850988312859320756623760733017171024253012116854867841468144520638872188785463206134867783410435673336994365994196679070879640102081959661848413735188689029145672344613749968847340295363406922855993573286573671228380262317071206992914644148954968795528558962452020629756776638000892053873174825516010873482015353975828752662755063006600631572951026224832045534918999693137330004985833189927888597508637189619487522144179598691277581058773808955240101045798698617734292889652990808541804632266922340990608580996674704880554707719150995112041864896534253813151422673404657660859829770728690396192106958342698898814932600195055577383598514618055312109675647654557533019151630619552862346439836281171519428341915312475495407755899361649911793711722106189692018505794980917781267054299788248112841050352848113466735530702489157268082692601361657156602498877323094657824060546197642496008895499072086169210975318404734143311748375673888019307555271845356849322356794839184208401585967683915430003075849829970191373174383270768130830930277943415959823408885859338509813847054744287968342199527748323035184738391646432327061345718837927322082104061865802607012265030583169514905818420894344262340974971015086652114327203239021435944909009157067375822502839092098370019927946788604246835416325314708571882290529502414995941827019817004745752513078414510212747107769872339727497668789115907727664504382848098711013422317661149264716191375457705777005294372356061725146881013218259360136520501702200761211977478862302567975510724603351050608494546802111656278549115721081813087861942070269894871489876574947451966270830362174401738787486362741881128327780226426431308897577185246536442840905387990762326343965260758571549010249201578363666172627199875184549934902258280886527707950727853568353268373929225875489732088683260753017472141610447159652123853855308994258839215979679542455865186375186506374969411657873003015971715961382143285257959837507144244927544693573702688057488116504788148686860760302813828202780892383771535143383268326813908664841561340042028660447304525199462904520916025868462761632323693647726575648455876183923578610679222831650100206250456220342530363082943739730318956770135555265232625871747535640214565744126670044432397734515065801684481192928057436651061157437457245451976922934223751648161562983113542402542032157877165589046316640761584891617597272431852578260376246845197336892564973514692359213655220076288690006864211016092696260263069939997637113188871175641916445502100972239235901699700729101427474134488434074409022435504632327888545531282663849818840708773865344598106398727226241466484982627953550848638189940611337607304047770596932719827603822695629049585743952006453256018519498903757189226839957109842118359936039531490593829544819562823611284849742863174093598861626386733192877463689786976905675880211839220628473840175262832058807236844114529851331011602541505523430230885138593518366165632264714453557753336487326898184373993031523900857543257020939195147206983598749090653682105003848724339999501350075245739040443200123045874099430943154255677576394404039345456581441402110855533991481844989407366855968506966642675383769919940854607022219679049761330112296153392951096660538439671640408310170694518987058923531986267192202799388449456310662200261768988842178377866716528960477380266121312404268102776993850182778564105884398090785901531426167739801486988235818114672866821299943447038495794937407613917731707681733858148003917104034384467254634180823689919143391185026175712057779543621640341122159648416589681486623325913277202464069079843150025775778618628720456588856358929849377572690270636092525752205847517419568754742070903196414944100508828968663866980032954701111390940536044046576026520044049684168621601064048171329955157313599964665841958199937506329110664261652483717909486912253259974122449521514142432396491565958760741567324564703294067717683807942590892336683605304721049182754236398566517151264711624407169663443513421881162260448416183296628637346101856268472733805541264398582292698923845949661646309381573092830451265208368896097128486726180227677915156514446135653229371940243643816052656587784240855894735302905468278706504885364671797760508660068907097385513878278465821809893119482015428571185893065335479957656936509350458426336202396393300816093281196510598473009230996232508488194530983354151335829449741262024110559249304117174467497043067910782345360029149474176560826689082312329203490203730707680703896176742254995928912127299890953203447623640050015256382212235350731803528087490612655080604516453139992831518976592964788207122144089212817561346558812135071299733452120928826305652473729031383413320255187245615162648085897774548096344009732793651366615217052311433545972600693313754919217440732074443314390314120969855036646708705083057272300139617779356487598850799367293205859871307496975669398403708538120912067981298067069170171735877266559012402965486204469361281012000213992838730204469333179735983509602558542994701505077088236834538918360915451047198875483015457407561106649213916725562040004172871955648757313880277535247103259627984057970809674767068850686867693555930926651766889817726041628270298293487736849674939016764213412897840898491416237924470299722292767661202113374836771694556312986417699297789752640158530007441203724478116067202915188150340256079056251458927616456512616193061147569485408028300503257994344225700869142847743429148492415679643316898511371364109607329503072301130200622332012300719951752646426874599428301669684016769591417063022493209220607215185008607111726861929160709525365799143870405800743814084672619159485706613607169790632118775294691237767227172399314582092150789117970756794870821190400899481615238139583527753608904921138452321618744100949732803767190429322120319796735644696693472320879476146657372320111074909107098865025252888187432022859396337878205006008073040512247220409342792675911552257233208012896055117947857729984022251392033544659906335462400206765510137886248376721159719282936851253738362222173598808856228035299342643487727326260950677626284141225139240152582400258551927231695195594257043374088364773343196013062976267406621105791709284378552905841605829161570789336205872138954812075955476491119992849153181357416160618324805407736381487159973424709692789730951308749668836043964331868185285230711852295619667485006627025941753968733774301403900090333990657463143832074373572344511373479539209819727596378964570762132606577100590423160695159401638329045423116824646465002081566360478912215730870100062941727572411578213008545991728168600678999480771700059692138483897761435363347317018731211236559466518377547486003623036104909601467379271978935637267577473678340343605238442496071323177270551949286827685890793276832757462397894984872348767298090026029145341299972552001437954595814685874214327827858482551777080123020650142574828696930582538472880460131762066929649576487897463331862214008792468930428207482261837786499223292527296874148898695238571247279092588369845914641965051965650011466548355489874014754245164736280989750022942867638419565214801801155752666724297594465771168970355955417988585770896454544479969381571946559443240785562801467069194365616481789301104350097827373125784979990472037648481805547885722058599957202461300645069576552396054360705499381936933418637493079101031591507892354687712145456947787004861483235497723759750456039720919460341445962618959332092953483413074108515687922169698982817444501435810268364470722627825262143085833998305777955553963901250989676186843890886769006138052087999113394168674285908372951600295882706682124632677811816088000874557111481505147924938879432972788303983668413083097479536604518420136020754548424105773181855749066957266003765493253601557420149050465975185711956895892482520612836665832660846069527821625610070639960655481768757490464772115280519541842862683951764691857223692972928305241641187376631163939798872484705489389426400830687109304720488099696980683886575720821072558648471958067075234148937649828463126342331535111589066490867112326312061603540338143415249564253991771463866919911162645349847655008142418278705840678478975326449489339377289861982995136976515746921300352463844019144785043546002840195335001993358112334954967730591415674055911443519665558983167020999488794117786803161982303893206690264581156640575201462171593360127726669422137326827828603404613072049229386550381577923703516281492972222152579891022801836926710613436351868735803012950825751265747385267431780571572261514235631582844024185645802683008989078520350978289452128687065538293744089423195182032452769455760513726849975450440992438257114060700550410722847460628975197266206062889923911133003307170343741594262589937697445641337739074714136481982937180559737203170058343589483327526493030743737543581304883891944973303501572339707811943515180159943662681082203923019567719964559141758947616097196966096413667226395679925420560324276534520093463296960795180503829649735528427041499136932350927051060842616544714804079736432963382452824479311319942778097094317670628883760863752446520700488238239215924732612654923674638533194870771063899292537694836691525218470444880545485928740248139279012109883761548063737954996588121443349707524205968599550004810495194325665008472152068661573779355349261244246403919601449319616423139965580718657135934063200543702532721303993607900223852320173105101154671376006630264149994547148243017606665323698196263804119446295450665701326473684424827173776122889117565219186934695105406716117922516153089170623006831090401584333550998112591129596745090554643115439992281140792507439438849101372766089961353561794025366909526535531809435283841047848022623282304783036960378770663868294333754980777224264015797217422878737673185611799905831890267958767495730220280661903725973456888535482336003332279615578457980995357319980257870308349514457439622827128049284434316844890784833921545182105745268561552287327865428313427171552640491619768832061479187789071066802435945117199881695201828857804616896687032165820581892317725971942159503979633084416030749038598627454209607499497294775942624171298125689714008710983464700803107292244571021895138840503659365813800276266822105788939960657563483323867337813264004785292718027427056304654308203324918638994918853516133743024568038197656435882300865974075187492990352204431541488548337433921863101123375410985414002957305284439129705562778727851173904226309973498618090911841824554760926285546631204663136537226124467792725170086104225168726963079535814554446388182448877340035337327663340130614062119462631644091911331611742639099704121719906059964110579260519244754065281864006942963882636937108507207548635456716081462258030018325222689489449768050438193505827215082089656587381882526720224663889507925076360146489923397984662068931492262250552216362589215909234959629562725786959585851230487670428947710585916707560061500028834652523779650179753523991876779875753162204660888034505299038817844860577573351413038112111047191642539756928617286551138640221038179379354767634402865733859197770976102965608720106031801355135433881596935244218347649284119036329673854450121435563420997268336257405975690686615711062586369237089505695599867077601885336657280469727578602161387486958307960222153596007307192729517055165081924524102254526400683216650289011450516852731126153250919495701721388105544970569197460845926062044301740966082680690256114231598318476393487487750933635479128473546294120377440642725627844635044757356050168599411099617850311250759748741739153342831892599666949526006329913631234376144672922987070756072620049915906601564182369535166194876428442543914238591992368247136469145686512187625312546595982012250746292166119986774642264339223720596432624951416450804346661689590187156410062648569715023248420461470748278099956639338225272545459631256870247179232899579134940413713799751443466912675493885641741742791803257425822313258551424627862293864133715159268173548294607746287802886516772093257998665587708474304522315769435084160628842796872363683101701826278555769054323527508434344913656482096997168629773524986897746215193223037964478180006376285810029872132009243634361770456451652357946419588324533967857261414493084458967656496879457418458745708539499378814150174105746141031240766216391070764265775603745611011926725320513346269070259476609761004039904336272189519270156730782383300234591928174589951472379254208327072368114206876153279744085826380590395880739732328342034608591180366802350677508739861968030394161343171565388841025469691553216453598219877164575528158833922617314674728035012331103217081567214119794832792046323837202624299392711418779561018019237215456613010249705764850934009622505429781541000687853775898362638983975649502877438356987161719434178531646069879684624882698679718355175007909411365851027874313070678743175257172493876320110236485730573789916947054125711190899331800068744580256719224258250296438005482794518665060433687675112901527862912567468424943118124568327156116568997753499483176444622256667619262711893404987623710894209879743710816362761727651966141284460985788663881668620403113372955751534356141313216532340821324810091178363189734699347290072804001157456639996971256138142688666890468424865534420501780739053213500943285473239246080729194619549841651053959522670640164008298688186732271300925346019561992919212084320548720385308421166069086097302108425125255513150893022402963652054017958513911439123902739179981854350190538005437445705766885382976380535415432549287062227763921461088286087426792874176526941144773967024576859416385753533711517712686895991883844666335311111446169788581009937369107001060030949016027926069176711184680481523903381889935434474959537221594939941134034223107747111167257857008540814818982516422945535435451045123324549678772530263429709998576896212226996860463351755325917415222002958245558156189758322186208974733468800850116550832430320302428268538941859742206849941299973833906793672133329519619080114019438106143371209586011163529500742204805139870919646253934814357576632219494117517962240152323693067660294484462670055098908097925604702267869812366774330564924849798747851147526985627155174600111239520124038603250612495978251269795083876770228776834672888838207356617239088630417701899294399836240490322437374535213738538955772974785907864180019520429412167362129668987017849328648221385438644439351164826831433627389822923837325905116306823584122236038979163699542436180515946968446048130663533063162894832655024496522545798032071396804742345366900720705492983393668035671278680257822558084485836886023360481401811123621328108702987095003346095419313819308092056580820801469281518341223817413916289436387118723291197063842254754034949848371011597625205283508634876351064530565935621470471954219602862303389054742240544307084833334352230384120599440867226033687180241235841938786711925212389606620513270955606704034779741764685010851106268327635740604818037881306400384531947224695269837887693743799990030001543842349790220626084573799153499776722584358485908547096155201812796152120402947570964508993093461073434529187360134668214096907229335598251765016861502577246634317879968593707920566476145438025983651899336842260620790274072293528642879353230322422913599478769400680246038742779403913937213283052282172050242157543857995615804673252340158309905098439637982017626337408883529164817638183426751493122743985322602872555462076050701249826340454336703465605379103347822940141860958274107651770661938292329323207030951102867623839324326126126398702722793804561327906443960340420673196908575312232584868918874689425649959265804208710461010631093481764528759251608338203656652302347739619749561977205605927416411411803228973770860939937170146166571548854603534793781450003609452349348622346947630962870486171350475358896795776043457787722529300395863683740573863033333382716132743034707477041950052455856643090649814872345467543589755513457206284053486702373052254426204407234223422438253559876728125179330376471508119623155281338731502436807229312811118784763126015711707576363965761645643839708744876676839038534612433356135249146711970565711608817228502720839305371367638917692083505459968746790759836321030736233629238502245899675994968287318255470297944338228995520277134814409591270060045910924094662187838476102888749296351376623892943986642879286874560610970847312258471743750585413408724067394275852555482191872256511782283318797852173521327174092114440073246959715703206255577589520481798265836122433806115117206308030288634157568072878021971536514184155471461757513832717889218313442340680884834370558485441433540491374413186814672218000879486165611346073704254012227381501970755113407674344845376204366470610284495051550846524273642231753977141407675013830947356387177955815119908761928416589470865824771155356828707141580006968230521935790392156445192715456748902668492111845381599362645346881622021551258371651898261081269909330904815511846391225120413881826747000875947846991868797188770497929711664669332325538515026806729948657520979780594919583780637429220643981608500926904893296001523549767897835713774666485753725659926001610410011670622379373131949802879775554898474179841760845489562540764033946959154421088925018026195715599753148597313549787039702612443007987598614976362990549521595468924685303834001411733015584644260484233567673835126048427591102684181366593728800830439237909287381192510184735891324868940551232051316211740634915724387515188127541287075232046802639332968744033072530181222662701426595856903011190458951770696794201555822311564951868502020629279994419658001710129029334949670995606688638445937660207503461108776890106006368328785282363136152705296990502262703692904210916601236713915022910049862297990969954186172718398146450055025643432409326305230395998033157256827306729236006047772202042347477445696817010295941917231601688092820597443534774708998942607328243422007010159014796103399466971559114708202215178008449649694765042490527132817091080309903150009312002738720921388102602433279144593899924866464087798611875764528570791477457603890843319701038361472293161618625961957462007239999121891689568159899932786991652263324438072944973901920493255651161083074878189027254594794573569590412016798550878898937209348476088358024500266884100155814910663722001391689574751723068568610564929824318422373973541221990856183106132163946956246491065394607415335704389883460329055455544645028836578310407090463217056028891153246301845909093654146038195685819373486550117959511115092324604076870426186781879513717630084590528599052202646446837875682779073967303949517911400729229346894903476306792093163813171226595789739696228060916102316268257575618099806331760157481255839967679806769490115572005483806693238596490106303785006924932534265922271902605058560986687258641628195047154053164333530453273376060095166458361064842994991639910195542388816838270604483930844201188839802348065127884520974080521029002910219354069437604695097513592881270410490369137727315345706455823435582141566117491469639344158107157171309891731878478070073973352635041104857285227433874869166966042237259178980682099443102426275296298407004683004754274418835071780171866070583681689215096589022684783344672115389600059284180308340329189229294438265697635642896489968402304746480046757012451560557071539690884615386451870823487776159357449135527336091852164058253381492879171255302329417581338110389862338260895696633846537848760660964557127045331332930468661120902634817727920845601550599031351381678576597538905544430153160350269044564484025268971610257234487209203512426090842945092037985102993957040988994320904357150635180638343230786627996025867103233205219342840073544416899519388490962680068803885332534003863027752920539888362226123580441734821479662596708629258892001733886226945851796600356297556024956424258851464418587066180637992418175240074182757401393465192888338570576597738600794298336061979064576433018815893753316993317504530085903894541682108649563673043322259522978474617636604185769512973509563025645812092802957161967145159687478984476879869129697087787948264260978347684042095985954786090810237064591757778310806971429499298201730022866473419295615731593405929208266437526003339637909437078369105753056921764374059185040104145562481126743681596296690203496762067471554387043259649209205742445574567139424555885156778462107066552169797184739333535242593186676772764428785657372499231347252848847640430877193850224365722076902226112422388735797046729337548817423950778976034582932591639409658821372745106506673628979032957683506761653035329259642610695845037791618260665289108440708002086933846078588735009576718989392614214339388960863513013676760083992976349358214590164683727233364544821180336887908599641873364782023519780535181494632681396373843522226783810527967783015311897435649660473116851837029525290732849952498979244253482246539121932544630590013154392458166799360440094478201181831175807884594575331215925058212780687492226938662346404410603237670824937836651007681597442486070664531457271393792925322223641974913662177546619410826033253021636362230105678102755406548263468157355874624492923664157530925632182855734559702248124512499496025106450157186913453006927592491272774102343438037506671100166060080093548681321437202193016863427016406921638859687356318770261990705959060968110959643608361634490126382538398622720503326453739915254200963825679716133120788002409289556742176406995226778431995567227223275519908141146850467036249245987104815235974231544000198902979744757680351913670307608873147740133312574357072486571248913066200636216454335008158015056418498030440714397282159990323172422148739160642416398150780772918620633216089926660921367740566914095413983492980295169736504521980367608311517710397212901430236783504058251557542427702135643859805165216503134708520533758714293273051996826445682940406580561365364445421175608571300611099994635462388858141528076576733181369959785378918544480435600892625150656197468337649875155594368701935476317283780686070617017680675933994216819020939114609261108254416758677490477213090698818785131402894147753183017494197415892968656655382158008227968994124564587731908902710256178111543112485140013250288436023941066485694168400544323300938264310598409549754546552668679791236976388918678631625254732945078612650236591424199096911474444346313564707579615835472245768839316218769142214429922682730784538630033767991565956761676799232070042392587352244775803005422662661444274104473361102864845847692134620137916682735332911381344478820702044268576573912474033465292864776850084386983079087111817160445971180247238281666821388570976757596266042413387343604334235130688199853421677491519505792968273291765297332050311265626362932172090635497991989261374521022819736581424457475526202864314193085689568532263473310110251859119360940742396968138198088482311074408011750023114843598913910510618655464626263883062680112406452299121199547033668573422530006431155793438792917352286223677132155084681206401559852324553257421073965294790910861151491384499553800166573880009468724087208115327338190782341289673740749367570651024876318518407482231308339975259182682368112341250415965979131026414290625719614428749583217971444701732908643604046422494900137387771024992483469705559941577785195917433910179169407611661439264740722874634051496619063485768944144278012395534549545965152787865677719332746109162889105513859194861091529507035663699046190252089188204717614621167899649183544071939900502345739568588707248712582694119456217181369723930696909663486125514612587546810463175290440468155084604136838315327827964745488391464672181821860830862330123949729513599244811730056372701753984398201591085405194394197915171730257851294760262125410238505802201193795604541213358987616126036355912507697633569650879948141438331984040882547517847089704043278476441685118925406593892323472470632655509701186159983723306914389867568673562126670422527727086267983875679278441456196035633020023164304111176902105671224138364074919961813683463813676946907322122984778935117194189112718578165748907882455035210846858585845928035281103842870253268395628302969793172345097911722569569113841956797576675144747453685229549068701671051101516806437448873475120128281317747955093347794139856821370168174772030776912517019563038741477153949980777431891717060967167707124838379761729065891044906801672035494692268988160126263202738090030335612566004751025653271858789606505325430579081808865499078509839349809510311786830515597182670689636920641270391992428873310155809417720011498346302851945894915453208652429956650350139567345785143578532790782582006981556372259462629908922817613520977150796397304680178681446005607762919079191591761059615874917381816926408378802237809318513761995506585435812628736583110330013686503131539199012247111446935457859295387339396069143838006396280742254913395580435401831361153848230194975058395623198052990310446024651040314772779492837482665641449761843452185583008749385696204474786518925337448104153167373817194383127489421842386851967686006620878333552609217067633017187948748772948694331610721510026268744736670853280214875560519552001556234224852913628837988797186172137946403683171916301951054499229247914720899827981894982811853845106184416015857180641434325474945088422041788418438347398608741380748585084251136128221777412198340196950707917570052893865807165520167547704239330310342168837801732343701325870895842787405966484464354602163030910447898029302214774996597150114197864364029456244311413945946398909369722349102517641410212945140407221366896156493987885611668679749291031019962687645785083732262095160120476008379639353276425745059416252577913308814161711247529603925710103088013113291862887662937803652966418265260488679499659298819388031119572299503213475252789313171080830120468727686435130232290878391937856356045723189412455534951058400020301036351090766135694588505255667304305564506759343681788510748889354492671772353470539882519647404562050036516537277826045981659820455301086252706595683220430743171511510239194570835926845969013860163107243921974965817543418512841788468831875459615165831987040456772721157131856691165224224292704007630569355778056754208200702658028383927176800895291268574750155943115230014577039190150305703176273639592574415588310685038480625197678919750925350288804828945538988992160379520812232044058537358950426984363202841878273614503989939201841189549316111939407543352291121307674729775920143497066965800133362625745079765777680464809673950131721273562795381300479149054106505500008810969748547942389022056631854357842653326255387407580596631282168017656936014033393045999238402318278142917879861849873859794947353027703401196514698354755012732999068267667123693335134335386285401926084151116375597634885835283036357305542746341885964186472199436606028785230856196255905968370928560714403069058091241722077776326348914592646889537424376437453435856879882119096018331357436894671297992637691312378638342592953757302962847226815670216421920007314559822678967024592606537859361030704322462482270568857002057271040445556214888586220584365328396148498553011406136163419780194047114375236171772702384165833151820421113236362925502028357987481132493200095428145631632180358574810963790666193887914948131462563384216586136207482770882878422484582286685862619896231047616215433739836054733335635376894879118258965862274071100335929667297935675171631789612833348500796831536944170721827034190421325104084579460163825295212011822972188311412280235321746889763064725299198414305703395340959747452826712623136562212561979367424602497795134112959891368974511457870266115451437840517620589912221745991466430239283464026066717233783218772546384670749752074179183129729341292259075300532272291828693763157234364243644744131691099566264956837698781788456313349295787972840269548553372041137074763668361855401313064772299365145812133547785254585967494701119658746827409268288222957945949954370922333902478106215256580875965409862447498131046950351344535794001960664064075983595074371369207301464072079973557350019408752946922588455207509657742900306588081666684846173183494043186689675325120699806992011661591117798528500553192688314217344400030979941495209238025506575671899152673371490177915631956418290826019537421190152368533924681700213208922084236035083540885982019264946654553578932130156838667809686514690095712694131649721166079588768723312028816633421503773810675068156285695774837936999475437367751093651771765088169321138389212988816770786317859314968093682323521477436617526369946516737184507111230267616614014519433381481822836442328236958541040267776804200302612640298656410394792558029472661671628022618591241746935132294199717863789300592565842453715646924475235090701508436027421538931888842147303262268909072013814902926860348410855077302393657303632556303150707974424730851292830935304895981997373178722365969113934044559884691299091825797527486840348576227840795317245809850253178445485984190279313825121174655331410555552846983699486336655911743959888332264374594326075400266816929907668748198577770126860551507138966515155985537225163970055673420778576248313478787282798840783100482887767131009744881253627577929010633209298770274348020785669677342856875493740928011888522990430132722458791274396963125343749540346121830618805835274730897595388214633655754146298855162756889577496795248881328684335593043641328030302794273640399534611903785844283973510630954743575071099413510618840518472660747844471034067535498845927993944401497681993792666401889914842979571760772216002852473073300984073906245349882206314354951455755821647424751797695864516997719057540350049733367992663898733663131356354900209259238927822176662780860476015314064915628770920466684748087986045510765691860055961566950122147539618396492149991503458069928975090078951123988733689480634235473986808377617054649068916328906945155711367078545407186546470971507335643431071116573408785517911651158263725101554280649631870085638532441179756891039276253954280883766601053052679487068589250326383308676549419444735507222638749224876235358501215149322642748370547361070490588438069411563138583090775094604418075490568951464182326101929368720338275205180115435406726593394490552120028142024758916264747643467370707509868217210926712595541342502786793165781526739522216884038240590995890483336943027202174061757978430201971405897345927746328459996452781122467581972581424383013800137548873028460311559091292051094515627316300116831030208814717947023988649025991088470011153937243539626597636633472127531717863519936480906189996676454720578892016963629838883795891454789662339076275237794188918261332042914063752012436606271672750323967261186111058864778029841199506272137633742633770376946532972340312176418619019982972926910852394177684481022076265483997540963841872330028325991439510285163492928739482186150808345140452138138964593742341952403518168841889499995402731039311323349853164111125026025846824188893301944698991902746514220127381893165425825679374311683913759794313789412408907421612815307248003855729589573733635252577648060422006784366870051085360600383113556685998421251119117669936855886339769687129582984135044393414549308638177062360148465183175368998780159763807334949949491729791805326815768024233352983568431719250281625544694073912731010026713383584192946588961171679267722155551091226564169503693947051345945568305333499227874334573913501040373592660682848305238327973437507040299546438476864546069862475295584838854278741912039003936411164682598366613936732630535055232750494999143579976508166405079828653537426021036304943556669484719555966430579888689717089137113682742871319550887274422959225659473218729523967104548802938728563938624836458942900788579076888855415686862638266349555040084311971423731839314206475066728790322123010104404027160823431690002761197254022910164299173792608845870084301538624288602333657061113573780897468613693355288922763767156054602868708785204948009373806307438431664000009300720192472164719432945336154237203647023117964881203567263885703235511195743682140201280019885353312474132023605900495282670644719901980723558940376925033929758053576451828499470811682042835452961314126787788352800867650174648670843017449387522059718422933093597630676705805236685032884281922881561661779080219200097073537262997309427125103888051605507983276429774717710092486971594135931026982066232161483615155244887387259379971599115130776056383971695271476425484995280220690289757711381831421741040793352724457685618347711665255580110941290743236060137704998206573412630680615764418832138821763547076197373685847774938218226190075006972787666965963578703397740158802042360724560936997952636498079642555262755406803577181671618584768998688522458154208620263573893361735537477771638816194798798821459682499257556225321926234361153794630694751002430743931871210422470286462054783125981370211119867572888213413257479177082002918414177225944433691265796025360270836175148317827431639092479106816205271937376129666554997081664930088264797182693343964931071216940268484086628991785859985362919413078787002635800042934840089813677968874188175743688598999815332501014856549384329287147059253289736465470771066011077983994341919029720351556214539267951242694826669958153563145563450842718713312977610421766562568547677768232522606980748708322927968927462657165258363437830607706467612011164973116474286569524247042064836390421525941125740606755407813942385063481302720611979551116399604462965195349558284626168033446274121163487303051406086950711872385223473536530176143049000826152588714094526869058208891387865606406754632032566767819649317804018259798537677057040384070923183854469816162929180303059529097984350933128726970727253883005418605766588984349922631568712147805186482339383812554055228882850944350820849351911819540907522836609912381378923490341195451364824666232721302064934484837728360287191747123999746699681851071556569790789411538908575992019468989303412399884645550914618482651465178804689352318130048086683994202371494822993424730836005389657779415841159729598363809644161101071139580364342502150760576812497226719606930288494345019210310573021609984914163433413489538566823499093089608924075339727247756460846511799044734959584702159719075567464505265377625037903471914657904800176678484660929583816917369346464250915683006860006079676778331003874031713967157199535998900818216519078292138353921980629340617147092001005162909105978677434042415564962330715905654403733873171361536591218921227332964339694160362382656905215567183180344227303548937168498098472117755344165969023532696692276725349284324138175946193979311446244931327240255859456286418120112096205187172735073288543382659559447486359444249996737617674117226712229591069465108305405834496459297759581350905663155058034808908885933097034248007604338621067224286470062595959803846558092877245828689011152001925844621546969025380619242697686214890837486155387661116060519706008208081118166898384702566721087623081047760445570308959183650135992421634425526823334966294923668870440216313278206570828198103835695487419461636224015128760195331906703129275806166614791676421473325542538674480363862842599604594897471816678541249948706847708954167130934301064387652634769201871821788383800647058373643980705464567357830638164379096742037837770685918545825044381358880104474729869557589611705805964387520206172132793820316188570721511004725794813049177863053441659184190037123652603261360300593090203986269914547722519074501218368780262880624763959921223222983292925397682778379534200446383438996331005673193580877277553943480053728213693031671395549617267006886618392480300641303417499243686339372928069048348987948295172545469657782467087538136044983691630425663291834730496330697204655935522439827093338877174254350692655301779367639705477134537176548300809429888992187394247160828263072954651843268520652977802959867331498098984887645850115200038892795318716141011772295689069101821592697032578582824229937098604895867167992969580058987799809801914417943648968075648368423497677731812908209328661482930764043469984986294457159604669606421216403575049471372741195683114226419141624061087851202113200870634902547881426683195734031479846016119872281348707594124603924277613499335327270400934724396281835959282606669422699680917477871304543167185563860174107308148947219587102339559247456822884732698894982861898904923308058379263998590509977218354843627034411753607461903610396481836773580982542394635825019821666713603940151818056948863428731367349287964375549457670873789194421922620215552387917347797590397308556559578812874837297232568012107396473009419491385351616706245053574454556162878375861863494158220017392048270505003658240059612990390924867050767723838763701592830564592010128382415372563055095331357021476857975397625931885921854085521840767088117586881368000624884230524543164796209556916319298839954968954402113493465452377284662346355181465201937814984159674640670204376479669240823872204281709165625196270084839329364778647259209400284273139469749429317354123730092188134552525615395952517713392547951671170237164980786156620503332186299807234320590375804678386719847445086763667847681273311086735597343172021634774460385180967560872843019224459189007457587455300313766360449260294777632307108803741683669061590767455230771448476985762416451649090371344136393555496558720799594467182133094591550926437130495412624998835677650121734696719113543773991501612793283213061615852226257484337061878393221448703319952256942231796479905009660981596138254100689128236073048801981797954957005845613127366545345863927388915273482085580526428978669866634505455094044596931894122321655416668049667479133177223374929418250728047376930095670983917237227529584246379174481492024280022244468182842485243694258883819079854825481234889499756764822939720691528633420891267999491123127073856563047351611818917430196607538349686124850275353488343055919688912481528149207514823132317207330855140347605091202155680998456896580087900796703560892331336856641393886261481314628334275926749480535313781646189816385681380507921352695569852979260080783398443676976645268362476053689058869343388147512589138707808999741493435682825265680947632989456161742395879482306671063615965541118065960402876849961825986192236172668879170537941310195606487413266696237143589025592037284968783045694314924825533224295024785417592101915627161871904014764368712341399367819114261469944991891714226076745750736897676880400916073866860324224652988760032194442225009396245831334622972041431468920427339897471010179550571950926247448833561357794761013256368335023244143583848159418676074442464052198262731781806744806124140017752772309137775786872161741176045847060112982827794357725588881380733817953791238930006449675841413617003437868325406029494488211792346256841696999928043883432349220064232027152786208093872426432223537183294001060573888738071826288627064484552813077241536072568397413598928524017546741083135428697292999419350626689287019501861625165740010595067395327377836362448828138238017061075796545628780264576265652072284148339818515665046030504782689552163729519575050753839820809134631553298887191887644039886722430636237148923899336349560978780315729578574060020671498407858033194061496538303106177061774462860346231538208443510585714264464985154069917114839031831788752003071177396354100725326172335422923379785951713894078391407548773311600492769290800605026645712715869180333087269649811859666854681514616270099875676156124759162357402542443713893913334008326856180173349869648050477994495956415953386103796429554967248340785481262053838821733809563026477291913893443591195167775787808155225535823638431594116261487304608962915015241204936749724082918452530310539395839046437946390082912749869911622734566806003602789859118643894929561088656017791101636123548482793682125426897069679636448456290596145398738786780364506844611928906964759750303011399622955153442102877759754863583252832223941340559207501767152138047612383408284083296349642486869389165546657753449737252333158090645414088660886060191070332537299570578551910191932237156207525662765631453008261067700047429859596798524373517929921116026198317194893397383918550439253415328264258395960245325634000619823520043943170740759067492993166544892069902074073323222830587014847354308564337773570969960585661665917410871769585407813763637646386755317034030501790585660644071550451934640634488426977028332614555584443993276569951109641339042311597195751194253393954814060295207422091731322823345615186511432955676401010500890796268010151580028176048306348918022187333853148325974432784505488107992318579883392211330656245226931184559473331004403919167399662988865392475740849271755951655227222852026959567948158304298049919170309841476623406223988771084191674446731888347829149471968698253759462653802244111716817244382361678620928213083734152175682409473724102782699077604978240241795495882345867386022936425205196278852901774112490109390636283453662324446412433506337427103008941807937904382010757795148329667887480805617554498644910962334644151321820541741104649778923243361387659931508099477915979840767615505125683585314060245368415473778292492024120620694582705917432828151330377069946398380395624401179014500663557704333796910163027257692572163876488945773719319217353690863048354617389616580227835536292428597524010448810171200146122780920496382465132905580159336005542879989695059274940055713361952257624106821476560591205809208099889226987482847005259814361031008001286874177395735997281212788671814927925110379700925513171040985464872999750273212506235539068446430217521174554251216878729960567705030211913746265568456233129097477172087958958137793497839099395517716701713969333751613203418506262356641165795110073298221370550021368169253559854294087308269078155226252009499010805700441104587074394636898028136250259276403540663513452435957932535933667551174802202989164785518963556274762689082019547486994013456476155223036733522657980825535141696597795952345563942008724821095031061669069372032570692288277001719491350956827871137800068495422032801921346016801785675392575743777347701921470769854325108777040376919658913689507335863276210898678201890954274534976053356471718569457211935485185137586764607644843891713862547567612108736970910758462861693069395820253715406813306284718208411454884567276683457669934073983959581616423782992676880805171988322866893617474333321414014978184819825862473392564886902974511456150629349190721867457535021839538956128967872732273749391865279493314888380490893986419854055122722870188067833076300791454863688594827368764460314328224735504697102931751921262856604550924923896316060527776749417445812478328099846295864825423700692275727420358594462578888517598333150916355572776681796376103521152965844345035862289945353063335217795475912373567030321877364090587683969888465278730315494543501946779001302470196911878109214556407514424107731781078955228465518333356763760441449789406802852050376028837132664738706824725763841865932987803056628325796633081972314011083874352083832973719884336717170212439115769818298773134117865293147433710076108073177224532321347523590815690576160314922183754648930691903197029632986912904709104399163487477891550012654562002635674494414783954737045445970089479124296974375505056204784855714824710363665850792893914443798499143239646055399861122398639621021327526572959728106720967669171357922111347953345998053403601339139826148228879773328319534947775447554975956827932780950996872203525688177798052159469067539167839374313743204531582441058662897374472639537364357964162496413930573381926084760775232496202804265313268572206753450624915580841466361353369541509490088571533243509205967837887536118609437066302871284048179173607355317619960006837571965444015621588655872399145341494666555816264869287244305474144081597572869798208278663296722968792530636509142435849287934909567280149610781668593927576831595237355387438065139231279688288434807034602772678912557944612640483981158430780617543697085956599388722795207861868871377615437328231677522376239849453732131995773401555918234596094857460285857455763333270587293781569493645846049182709921948956908062172792834608173929821963664107286623976164880583499382918659602003334822964563664053269231415142261028158650124656600771945235792789511919443482275029081077790532442291785339821004761174746982448982838084331280111938509169223295055244674163507172364327909421827394588183012778823096258921484191328022792451375271375289239797488846979066029128314959333232692367798932661597507488849613699304559829548794840650010163719255148858720851188395823794587720428919639014340167981666597893561177780126331166529825726105630571369516014087626158755674161750149048978339362169616716301389937864163283390327305300212126587567359618108266245342968095916713255444133007544790629319922621823160699208585339239000464095715219366965436194499443243007265428896135285076844519737856688759880067939568744381395122181953696552805197282839619805394303813614339518263727475731660107281713088231765750102721728889637078097498973599845797539165879012408366314779124571351681313602647345203712399422705602100808463145601828266540861362774325317473745517212507563889140728839896198617699416970759152814570859617434406726739756712694030742870210428681486598513345117955002386561522905444075311350460744857969169541193744790577897025531120405511662178900114078995781201683213423565376902760258252231562478238237857733979853936447278791452095725415321077044338043934007608309983064683084774950489397033104242961449644315619609124679443312052642480992031989809448052166529121981059058450214020783625705026011914813748707010333594231171403123154013860807731671172166328140693707619369135233854687739485426502808684283437666234200658781596392552379486807064423092311330204575692750540640782174394928641404150989060531978978884972198938496685329630456221549317596134785130473198335006307193275786127840339795279615634389413704889600809188679963556428978177402229998797288117260058861697102029299099184514292088683936062459793765497468000217343328691150593087731887726733647333124410676020593671870431662059396785550063967544461467679269286387810953518414235049754688583319308138556345663931691935526678137744518129430457262629579584055560294435758525512559894892646837488612200826847796304626391022262717232482676831074609758555894972462825566926910448978776001549919858932211870388402722302059282907232352697611365062713490927009126003922072278125711363287715599608489967793471784290403567289434662072403005197416280036585207929219095801499698734908231055844301083473450446513968960439311183566945784022456213080682351528218162150928530447188357009512655789203581863171444680854581098723684852284271703915703114068858789390252794595213683890162857937908918037638422253409058839830140753099392173524998870278883772523942009205770861834714036873802753688873667328098356061387559096832829518719662047713956136625046812154045865248869562131581189422958481864686989775404682850066245235355469882341296520148234255901995453358691432668004458140378473714269795771940871548361956061568407441564512864338035984702678951589189055700969629017338972452983887341279895428973291340868119183839261357923708755897528267362838674072328843693660354755955202693526412534754466489245020862251938817472942948971923847117263982428913969572599736551207418348119411536131219092364021304698744137758586652487263519578683125032101842349184634716477948160112227397731211862924346489158816974574605757853300609791835361869156101809871871681921038650096808198285387970291095232950159297876957803832393796527777964723900897133553790102351680676739927236298706880969416622894504072162701914256773757349291468801278399973339413744880262983305833261836487184912818551282504778664319695692087003675145040619727207070555332673277624499761517658488085892162282828093750227543269439393694805934264486860538357580650575161951483870707738053592499760822108079141514763698544380126836725909793573059868069649174575300763183332854227171289658218832662703260410149148264770621523342598932266172467937647962338475333122905496358178928151066607813827063600027620377360238008350809629399731450149244676425248816541453062739238142814626791155573584828365068589914351980610970378782232153862152371989632472758409751697655970210434709825323269990168207890509602423643891477848299753576066455544435332978828892843127298650043030005211776600324723345888316829465314167566055391542202104213204377134971487663410901129679602795780490584596873476352404213233926383119124096845801727599191577687476558562294574303774821062572652283056068298356791539004546186021732081690131688939423560735191996858016641660925056462776216606992249045796387606172861734965864249488499403987288996637148755059011074638886056407503299908557022789839169468358215701894913983771156827671925887465606906379063594222384205736945764359141791886456646401550825596869184570448916411799814246115302845430472053562651657674467005762210343526139690974413243191653621877195422858322801190200280859637020826533731204697219112670121289314849683006339052022296171797243720038747136463284811996883258304239087279194311146286183270662580293532668850730730814451322085640243395286320324888347832208586085948826165793527667294509721511936057365752394375675568755484130233269559607398533122282898400179660780401217726710753946670242230814807274951565983858745201602135133535263786015905271096776310697222732730319725771822048680603388412391255184594149750563295077849918704826188656658223781208171475757069168980746453211761792677100718630562651181179098186059074473188662476824518094067572967010830207653494632668136053194304813814022075876877967311632706020486092141333267852588453301770387957540709508472269698112343877672055181653089621048628833923232855658605181906689832822560215769967670971362971713723587937298929992243579838646882103571778559018782280333464929092143565290696366573244412198394594159977058112874995892266547260929043989459312752524403526910769825897063742898067864681687099486352532877981928490862289891834852732614606288285356814970744889606919994573522348178618330314652807905570585118557081078944210170423102278014584005101235710899741708211373073811916127311327557046690502699370442575837033846476656638827247966991483927350694545773867948123669634696447663126986971902307941126639881060799473150186506252151953013137773706711038000708070645708575471213815547723311318133535554926392097188087982692101925105779876140101101153187730621359525139697344672658337017198225957988415925373799297047901208025190525490971220453353903156497553215446041589353306701603922193615677371639747002261890623397225038397994486119271357442866226670292974320025110617043496175573221228931073502380063281358110863191364937839334448137600950989615098782385735000582772290640953187631846534360025518483457542494444380192494716845331076577006061679403700209111325237902124447616065621572150468733730354008466466827092886234545674079209663943306692211235276973709606079482646353712281124498375850439025105821456928186277196565766172228694178523629792366290697325670025696815248053461096671527307975777876362500068470685576985422742153487063592175045068090970253409970123010493365584185886636145788458985037286953103402395394752617763841877785018579864788898473800408494230846016032461321678058768843999760845460425377829340682211918297329079950418833264416042058643677282287838206698557995752960973450836365313473112670265858296229118353798963838598875383597445165734831708810339863628559417875159356818721983893482074219024273634071155812814424077489261106203692059222413019970792492206635161256139012905091088981045181111508763102718035171750854531154996085937601460220163020581535873475333851930589679980625159662157020669811301316730347958363260887809488139347591724488742341541089296449129582746456041263924891460141695404528221179287494901376894386451309288330344207463166227054097623367975177314816293569161189313050660120726563810240736958269129582718421473411736861519233329641554236771137865072027943757886393684342944418815249566220367657799908084614868749679067285929292812039511958118735776299432827149017311725369400061072735098673375030557668666166154754246516963667973752939978893172567012840736501857630330903557042448667187741368553439864369262031635934165507797380048694729660177251637345455970797748881295579430718350975335523862082079028598697045989891506859282512336996725772165751074759538123237377285772030855282585230733126371211337157417856652288560587338296610318732853002733631045176263750630639331257191961843250089050751275468910573139642008541256077911124419575439198857557630491290080847560530162058844749408042252443925940709466588089377723138475106787577396585476032234534508842280323462060406906350455591143535266105004369912960362894879238085206026408687471626452001461820929328690569106221404596722240548742088255157206601875757843343939182100097191155109856297936217395196731592482187060887522675590231156766999294628151051395468132952761861155922200536870812488538356221207246135257396527107029307542266941443728012739429876290779134207369966203643059411110622300398367604029023919142113868459323408055893891347723902896493975323821015465640555058570472193042978092266642693212167875639873300498797720653211287731979964676862175169703809015004073730022891612941736920781651896999264402645140399266178834246726428466652592380121731737976627862573320647910154212861363746197608282153877036109576733396691624837483652459211236693271649489876438539072119891714590580528370607833386165950989082780788354659308438593993108723639046990788773178833609071806504273620462839287055717379709972848969801770018905977440952237920555741477492616439778996762171828522351016491596596387851536743629773486593016325471469977516976355981700897652973780615571737251997486694113679641146915040438812595129173178100742292058682075584297776921088427779342210345011819049615106287891710336455469922611259015467280007958209093722579180330876928056749540252729751556937410018021432749646160718136503892840186574433530106448822254085059852464012349428983552245591579109340517813811391641524965713694499826385996421340456525965734310110474544023690571821297545190870168670046623923122764248949384329013067070044267371402176808830746403642798013308513340810310796196363838721610242736952455550673565431643713961852134853726273646317709642230638666425359097947117025749089900933914057432003478625948396918435972332237226492970031662117178092270605158631251508401833328782204250096424572767944228889902187544903827221935631102191163229349147739673248155882133798833848522217556907369397913446832905054368116816979997284440002995619469391769061342008152804963711545584435480418549416424925941613341231023929936524785542592389059930598633262052907354569824861351598487420608077220169316653757125211999295621006953678242463353363097790237896714861322656277844866217574603799200786545877422616329906035496326728447392290690045141077885019876816105430908886334584773767363606365893035419238914886971825239906444747757473757890941682715986817853326297215979923625082230531847739791533922216495690678596101122568516188445956719099730138427476880724183797264907051692918715011181568247776902639114277245784872685572773099693581266632950587472848459702779499429538946594935337158334495327249997165065744195554433074339901104072964644610526211063047651222646616621208451441849227970777320773299940290238593837358066328868009188141040333075736979206187433104663453050281644990617575759986680250361070874770550292001158659480230140248464441257178345818623190209867134826140297471845311762350129415715842980817729362636918656822354309313037294963990145875311459710152757449939500839373872782190516867434896172847222023059816429486273061259758312684086859173101809257420563810760979838226866690647441910718390597588921974556003030190577347471865923374991995818655611024715716545003864179805800750595488131418517221706827073579666577019999507318342636256572661510414876260251090279610022265870234970280655895099526207554148552919115471475085147722982045884519867992861433393919859841767832467314296503424805400528867982927110912207658950590621139064217329373260069747865992667555267094072204704238226236340868181687851313521740604239228529283530147956948217325895166410778795495126695568011226214361856619686434907041763110281953723039606903865447415740009198025572064669845115941414991046911857337878991761151530213612977719174756779245712380813007764240155302149181856029719071752610282070849570821308056235592471095671950772283173050566600848550167336666642805015843537435173894018810950327311115891920098647299755300391873510934048897807038060569608589736906638140939858910153932889434958927243815205057034633310197481743216678778468943930637219361238753762051635267067323274372485792044728585796236406667928978035568743141366070160656638639491317014288181272451487712737176163320440989405336244623146688505948183525023810649090983466362169518453900619999562149596580427460464587914251350984696694402138992692728802714557691693984322802705901548795845562553344508656508534927505956373034188896792741204447617570585388735573118147357485984724891266151133049750173657189438080559635964812858357496997025125229320759526311661579588682782482484206952457735724183522362255861763182210194981314887590026644128482560686139538899458041558361519876491549584612047568138210352947658500218804138481765009723791090606026129266581016585116557347384036498771957360170105860720501522570952913880159560248922327424364454330187029986560032849940145471590242853616261572242193529912723354917899750219717971038699779985307258909513562906818582789729040709275400612577335851033996347198003954938653434587314009713897557328164960451141068997593049033970059843714715670925576853175524088715171264782745053633221297275803585499734705748604007769398176381521618427309855632579152099474089203847208293549935896018405910134770930606635584913414162055002911883218815732467855927135701930079167689007651712053287343655353223273524673942569869583747703327665518617624329674770824638285075413878246281171067609648503333703514902550530117110211124773342711679911941043961068310327608821093680575116569534973851504068560960674914483601740384256597478288149807192134780909120486357016236107099142824388254834685730139413023471586807449025573802145243813300250561141905822282752823343806488480978594865460073994513366599593477323688522753477034698781150861973588660943246930965220523862785867669209506382169333559919513872511210925115081863514789544520730230512783080629685131424905134295725355323225066618801134589716089482272239805880145093653163342783153322844459273428979978452935488910819751911132284853579485378802708012009496624717229494577517948252057313996771864822065522539430331500603712026680562846471819030060643418963616311416754045939421900775610044875755010797112556929901342256956968992013552828750463847155014853527722642784859983933702469657279903968999170039467755555703249650123901756481109897675707666419759404808534146317867565441303372274952527303468085838426888999101459009400430433023156404826292500090442471587164882158894157036190969335618100672289750757179001949832455559927837742552932729953825754564672995814713538724391351427591701933780956722513729000288639530733841426543296908528152800978155667332058599735845916494940534012889747126456058738553331361957219458849999747017439575709174304361703449681605724996801370485506049695546590639313206615002699465940108400539687658589175122086731608181065796707342508262662150066482405783857802879982975933666484829146081786162217081901444878968571007811962525230170375904763431517865978004652772338172997714252616595243929724024948999790199999710198573412795296346741242989706460150618873233921402111024456835624989216747412736266310884584169285789794019880553331046294401855535702075116032894943880809271591964397404682064609029581130112172901486301344222991057449961253228427727093936925259060237163231757138058972605654269510213154870545034959682586535107451194648308091076518137993029412617137741973910598877870171848740095539797633184380248095964897473590756897432990206805323884630254951320473790443272670524091141326433581544927618670489578345497567244137622946283705909652652802923367105108155023791095424317635911165947746478242920925839139746164125375578618179936543614872104409844192114458708450201926704738095944156782230447746054486563394470770353940446609831279183629230367376838356111501843251205926160108816867130160103923974853517903748993343202912421103292567703746708190292410284958873301980628128019630641920750876117939454174866633730849948043468841032393164455570959851563033102681402201545337100392599142154922361001895671198400334274549422827428159587658972676384802575722892838642202437614292010930612149886618037194398457779798346431375732150241898528724557949673042924449162784234764915513464600362677593698143642564906943431392079379863698806074406584661944768523480987099184083214678387721300857974613116947143294199689776930385499809534843105657992018434167033449313941050791814284205957273996246928644782713031995267203304335723349238830506008806370317143103471679084005232946942309880335485129520243363875381834308830304572171907125620615155346854255749318973526835872946793772194306239730724977767627868536591952292196319191788517174380749952166303586213767701063493758347989516946401259744042363358623502115492299864989926505514201052501909241429708931309700456536522375831049679141550047674738509523074067082544965414729111918595456435191038434704031824270904581726459528888058720920269353613717004840517244863602693432358894907994076780297335315910723656537065047661212713855626936227276089324580280297568493247249736423756998799708289804279828173017722919138618457890493298269215730154990759053234777841539728409803144981629463340375328622751316034889958782956435743043135978722998267514334201999169879857931908125655020581129543799708588854116334524824880999285877245568183569997569760937396344754869962314406763461632190292106767389801589424925815964001448176317183847753010417075926241569797211740881360667713748371395161009961766786139444684722402246874617082202704646195762216903693893258838960764622701644736064400705178890304525433086416970236647540364858953707118874049519016079667627890256958083268904019767976305460104835045561391646146892688072344412343157426920956873775859437486469078723810904329113903425907540348396340461884545464790470117366294261655370703841374845919224393359327572649495289159951666400200780164358798746810063708460034765984242627825861870323194262112341234667527207789017554314848010893577258933121461102106440813756350949379683425628694685698728419653224268142861184385540422591280221283282955682528370840228569260540235709748169401603466042843413461332103603553975461753353416324126469856076034794474036139817556262306927507826241938023059825943906132902705879984087683478143341881014858571788060348895349705335684226463408982758783648483301289702583686843667458771461792090820206082656601993997255441556583326088832250908871885355516259602128703936848625117979654810001377065891406904099602351924398552823694929571080808181222348187886182232665640496841243182418108111733627203205181757128805365877837144632542929970650519531234391463418014074016762602514987439341440760804225085381197995914706432455205523916636781968829692903194662121721700086306453133453166358784954596651106446765121158275270727386790732814277741293744441138982499911010562796875293032979252170318813675078867364749649877592523856887886573027312792790071238447715869970778537969824183162027877352426118936176461741719492309406313453319298715397414247291740080904445411648834696458786413154342616334462710070451196492140860759557719121300424665976120737322089637537624746312028658703466823710987235949370928095097664749549853701683769131440870217834075975636640947216093933451303608766800778136178182829626974966772774637003119298607471030951537323395037037700375153546228827266896869909409558523596808040296708333593848473536264277032201348674234695841246219547042541102321025591111475165524568386009545450164480670279914899897787998943078711867835412265882980505665215761655540787999393215107115233270161832636490406134058846042245978781652053219649290145061977822926303571517045632175156550392173823278502458920349702416087859917705831033775160730349840956691647183306738736953293370402875525320482355498434097798022082640495463912435802305819331644789950689798118987763050874187318951688568104839403560979646602291299797434137624574122205931557157461836812739819229976156739669247854664702634117937979482363257741636257140861287028636182267160697264948654390473769311528825166769468678051014550548121737163147384722352685846137169394851964581956908727524833834576007236347293467171755002239544178956906910960585213086585286103821425992895006563361273930291399009654423183484148971305487267509062858586066687188201580831167344227200883949911542927061193026199329188019598987887051390688989208726612849006496652162097248857028437110055423954154239545204245975930007806556900791833637970665743554547907378279630597273707546001697912701752987054332956230433361225723503797755089977141117337345141962820148282295168187257618734673585559151026726620876652880412639221009044482087886941790348073431837501920204994556494178724169240087202772220869006405368927468496889123976796331214002588930585539551786882886137885478420981740918330503283410540823471233814936810464590441180007721726951925696599209657693995977614305229783327955001581950643391114720086373238036052580811421275193772699968577130361492540399167467539277765608554022130962747354562643869475863771706799136756549490385725143571027173934242106153636689192382237053553207595123300514010626810591994022461310422817809633138231309609427234242011036469215006815993744152890602526452936315216149156142208481737702311307318119586619102566702421533676449561747664895094813791069666649475999814850501843387270384836763082496011333929611812742044981535617435346057939382690694273392554967580109899164727341910821652300411431816753610149092492316176817018883230276808260346213069079847715087386126375651260869714206374763660554573522661839194507976901829223969729403837116302185497194962314152946243566182359420680806781169530405583153054545799615352170721903518055312568892224150565203699438732540074464635622764391673345801530781773091201661976288864535910818057506078762367800982230441275082734656728055297469907176587647967923794807334441187009123016597691249641002748927786077681952000448778036328495658907740963157115323958819921060336084058582184646903979532855520015049966182961394812977426056863190505167947882740372094083322690320663213464180713906365751216900461130960176772295539526603269835635507795516256626106466053452907215904760844298825742524304647400131786873100954296291099549933095964851851341805175400960470816319698646434746171882709126731696216602821528647461246317699224475932078638411216875672372688310883404858410833828441318982092260299757607357774419851453407735768048059520514069055969393741654292252085478832770623257993003418078438267513249495220236847891405930321731812310145168927838611106879048020540568629927805410597092508186465040766839201308775209834192859354479603821429480488958976971111971156930100941600747525706137197029888702336976873764926749204915964490452111691635873199309306582503299814662351514492995371803216769486717361566053686371021000770517782590576856554836538717592989175442848584154633703799966941710079524612025656070248366307290683982306681795363734883978182259892941050228787992031368630887215788467113502581556362976941345014522794845468700339105758700712744320414882815913737772906571571526388868452613944140982262165034539755917465218894078915065698190069439611432644478097344017875366834324006416356087174985510693306734085475806750149890011317774618533282701964502943428680940938428797417922417011466048282604478515639626434978249571401630044537916870200667824008596220539998483027256987535242331138934627457513710131567385313940855344776713844945234294632653681699981414914141329400120159405692660818714838481303531630562520342351202734757749451434590134912048600320255685181964542493897934137396671693186843390675832744605343302941914409238317597942680156062312058962607924951980471879166109289379805027976543220525824893075792892537726808593707696618549482174663179706646988824292402582495637422857422828764976078382129899679375753336858761417376327684266769470967227152121050810340535284963409703656875784496834828071507322251568674510193681803278603687197941154656008852740833700392303093712254627649235394216281842464401823318562992325880158548178004759934654600760174717779134497709865276487187471018643192584980235493165080350535469898406663251081215511464753822882202824002346919590091512445590122654714683962993375650013637432587355095054479932625665964342965540248339708721755774311530205517279619942347998218668114789062874257285190961192715793749125262371262138353180906967097330784598800400670079303506379253819071587900966469494730358880421778042503514927907522511397754163158710194846493483074771848381151874472712965989175768762693988270399709892130341951888680033635711728095086781490690351678996911565421800309478825400155493183821172472076461540971784634330428663618951280932948846919193170493173879631136289662277993341199273606792199881766075159219921208028838200725643842453690582277564679660253770073044119763510037177739567391629530394623801513226124664607633468434846052381141116264740057325466748649510401766962389918158107392971730033997943460771198717382783175973645393155073476313104884492393705957404232547466565250725043611571925039760984949119273732666400307528852794860040009993853382610043938641530726118628796236802965084678531184971747528785256077173403066882454385433063230910730407917425228434297628200341360019178456885155319587972484364210666404083760295193112973366325239128936194000265926596579169765038010614159807912817315513445533622997718292379735016653113671084320401589364128620132396145846996879521563133590935120129175438175588721983711031284154110003720520631712862820648485805589071324467305961935676259207233917769874237593837786759063555415409333612861471569146991903235641146116859093551874710619231563315410713238923385867503085189614754387740850791620059208744571522767521435921350586912155049413462124714187230283810835988418557669440182244958462034538861319979008091373355090385578718050417806224285539823414027299604876618521441579048055275770831153449247417605143302994160786616695368806682131208103325355724265169335122411894271618606324156949978520699952399608422191843585826246321082180544772257652396594490567313098016220753877229011857805085111590263763199264204388785592297259979763252520891444516018599714215661584036728411684153788039084837075161435855183293639193569918562876964058370260774864564814875302258327470761951486883586011812045680289951362851272709138246099948036067207653379265935813712737351499868594310596821819055414689080394617273050461269781453469947762174179261668810165745855568161808159432824602366095607042604057226730999127302665647514091521552674633155366100334348826373094570425101516558481353097755384433519502120100078397322122894632799442181208437545697152339182415827543423035038130418090201248540245381966356543184383118252027466149188397879711083394553558441187259796199830552603760642440552526987512511666578517361970583548793978509305337844513289854747764101481053406779784527245597083628231936412058046544414801574035854910770810661610080452926483089292505296080475650346637299798646318079023781305297828548519848626910420183816577553618442908735405087226557779885305191769229062065337827626763049607663738792032632134499417232177766173675765963936463524410201125537424166377166982417202520430501023328378166434100886755273249626148217523352861401364399590892180039967341460311646980066800203201359511459560441528780113187874504381474648929175362103198561282815571133684693138818932946359388489574250957965802663050826886657206494725436561299161491649722367205027510983694023922203162440334322806979245448006478829969240433440557740622619258849411533699236005628969790909704452784164366047958880017120169081501862864436473037325756357136180864625998099270645325514286279993296008213717319619697428940863900681744587030282497069436204364883885499644825475573387405073188877050691420767453989304370738875399180615083725180723172017387389498095490209047589456688373263079964747628404821167634434982756508832060972329668047595056358547004804654728211374512993042634849863535062057420228146300150830853737859455075050857355060544955192545769608570133885486654102786726454062760161601802423046539938009051309445215963134220271509793038622705712327506642918716344891082817646692692180368433601817656293349125618771697618942256892169046883089450084889820973025627391003162563203983738074256781872572481467790779683658453134411936407737568943039078293327159926230642654140399870022886782998451290480565316177445521307139000041591507995834098802039005127850690286680241219400653449095986372584736967470533908890767100727356503439888890914505562136300102470182237223493342806128627662158116592715950319806712093825662003412296467985810636705131934212255279779284576484759901807098298290579602831634989908984243458299161398578297542620520676379538513589246903763282956792217209049042134308597819374726920095885371737592655195875241621478507850095977006528735676112455400235193911464498089139191967520377111494366610218389024596929986456512820255943798841447075062057415975682085807958527527556488201108876887870553112117897025008677743604874461364807859864441443575348693033799096415990914582261310825903917093349785327179187181039065484101683038205840038672256141438358106061819032885652916169350872862113730824307707547767763837936155773629382433999094147145018558819218070521719319316742653570921026133715897536575208429471121856413290197036864890442878872594314615207513529355611966761021696976528136679437558219420507627406248567728915450334494114867320941411503395657875111727280060223465300059657915670239203723565535384278727359835377824444645298853711564737111149355464989249972717401779102238410316769531310330392146744810868357769648121720848122489265919201879668853983147724756271121801228870412977696361165578215757516335279535109634370582411081007647469530019000325663009313937497513330167318919288012061115404161973077816898533402551193796184675200673825063706954253850314527020963445953222523877706878969663889078181338411406911147384464342834733997440207507403520337481675018546918599354645559366185364632738575277243513826767313958227883054869451169093528087361021263339782105784257094713864328101787008608810562671203975778217581114672857708988320683526460185954867575340701697156257495461058956441364202419890767584522058541812090692724789825410475713215787478816687827637980457384141276899823365025782927996842548524200661263547478339019134648440385213941205713963516638741936184568854217318911884122017516467828145818175313087886401810309682660996486952043892639200944203916830994426971424889587816227616402851185141981168437806386774916024871275229725004720740027850241499961323031794013355283667587359146182868575027320747177436883383741947996937348492622409576459112895686072663378545256278613650866814582553918528515805570514560500292654892833776163971553445485342620734433456926989652044693009328710990175022575457299065571098241979684293775782768106424838879956833040970017822033092690373950673178399119832239455064610987563179203723991292692581534045554285525272742636308783400247143548426005883286800088520638429658252954981989475003873073660862412678785515291907694973088950863679124183573792644682334003866715083220639303995205534918708871868572649968710041428365411161657888655711983091615371899636022033343133295132276805321687024438179516776315912602658641361391547930382642518670604887628904009769403315662091194172719811722058254801374611899570607067823584952430203132894952632381965699775784075522817866978778356526839263817165705182333075772898720648823673839743597791290327291134328130810343774485545479395802202922356514037767005809875832096321143321074239253831438925160438855585887434103576612376439761186269715086280427239086869839123386274409745435523147214030145415819316668100228096557992218776426319748659523582443452522442852706197707058183884024544804939256632485748979245673695017630945064752566045313005202236490904761974319824934776467185025036026669810298559163496557573293141051246435406644705662275933551840859078034741582926214088099064655376141523309606197514002041596278233359337905509901996088756054175234365030431367482427268450820517091579217125985225106623304432667169491877213019622883202094821666555853091770253957185966194104423907381364496816006019279253041471666445428581631814481866953919080043334334502908102451229277106102285856015573957231935134785081180894146237536816309389567090068610611494378412845924697712105746835566854963903438191053143131164965372969760741625011872277430577239811655644951964961041530417525416363158447817290755010690167376027774639060668808387372875704668498161160352864152641866905169948074224263798066170020637447214823262862652477000456385037404447882470294719104890634965602439112711353912672583952023808873357433368087641837093640712007480298879527590535959418700600007855510348406255280876153144681882108431168636025637995614062034674310036801068763274885402688324949152406564840089119569495169065489696080765969952924266867278168705226996717682727434373709785841777683296763498754250504870391575567414579586446974148970951353429810531419819923338174906919064652263732926373259089503560294118453249814435029759020729865540711051349476940811319677248408950664100921320850485487607673570363444398663494268955617279381871471674956856564302829473500398620321939495965571069747954258300146916081508389802836457352717224535462916355173469140447902205227826552967012764287728338545858913701748485092893426832667135989392680485118886273169098395802492170327977399767365717031006514744643082288978119764410716741581295313908297828162795830828420247877469539967274525638355049785764834832445695219362165544876971888252614167115654677570299949298775689699671522680995461160363544895247028526998011272469985073412247157512706884488363300995217183289021757518354617104753901758434309632098714358529655886678742841354765038129635386319260412376979253632791178093948258407195862214957726427566329739218736365035835556568991150277579474767737810107778553052824890932707079859601434690640314504779316900723438144996655945208929448466800805394421205267203397488299589494484720416672504448575504904496882550975947688271460858551005303758727901771306865993451272126060262014368219416870746388083722497360031170847896135879514358942088235710068240427770291829933884206698746568144384100493263357448479547876073904702155789533494729614823341344504453458531630105155665098298849022336139641439976432638399348919077512780786504152960896174191549610121188644632962328311163911928800112602188208972128416318712397420394707420002536170502549619110618119681341134167127677839032422830143263779480814211053102769755453660952932790145140127313540936933403768569078339643175223604024318452102281511559924981576464062289719274504958211899593193049280868822613974822734752058433906945127034859064895577501044371465028710127133688645792432369017118902805464046033592328897417641122309289184551964573499966561445743167956479640353494276428252229310033691828133048603817677333003099224370821870674425244518859399584443583892589011516156767246299637529321185589738553299166121580622712828276595743859955618061300764641022878151951993553483429223212831165134089963752269090580394892835730459175846320238418769131961951745395843056238622391333046461476018744274205597722501765324376474946370767375138626765100728240662687157122451208783128316395022347429856676009812617194904433018865055541974660360626782298672456290210959373899691411128555148127325023321353008684270615651769979031186039484858631182604222369325182793234500973213712444394218416283403532733765583205280414052907843970040843971291563219254555401634033029943205491931949154163678859054134363479962437429630685624590771489636455013038815315130268567665865543388574134688542234421337669315147183839401521219799665752458324620487567150467146569970929837190900108081061773544518919900682774989791358490622944049289540947122017472846529370455752759219094960599118799386148258963815254690185564483619545702499071956944108791563736503761074455947959909764722377987768857535487413160466198589272819715201866049666962567273415644310131711723900726545527637417846510772226655686815452658633775322916964967388658324961642934992924135091999739452925125518232876199768767098351954863815073989389016649807633369414766849935111500412411072224770373520111877652758837715805244084603592979071955898880882397743098577535496606233071361607428985427277911575897972106960797075112442407606624809979746396087412040758610213882339245188429866380123209576741824104208397520868638554719797230598827409935003513113780289935623857234339729614821185450601987207598000369185772975882538458841848120814040034211977741577156730228856467274990591294845676206855520318534950427839921781993259339831657601680925447087608312426428582841945047777984929878662468053392078075206739544445501029911922920947529970777623099767135706201801483962769688755254469665361752063786280362125321931111491575730843027940776209255986001836774575002315594710630020561847880139079828245964777997412795793867072003539212956141979602119381730505368661956521905236604836051625285270428493873666346432374231760441629822549759236350412364007369274376064823648792341794555548973768070389128398323356867608458447304481464533598745337888417069534815202041086519412033423990117154536148036705894764398250363555589112603076330738041491653451671693346660274422676930282780900466030979853663065112677819362663341020398800142469572517441787376724382314806363050716996506694386014669511426926789164081655156721153148988284943958278237558996496365080966295619145226913239772206957699400143261652124966579436158557821640092875283324043169344646992899345559858345060635647103775671435200866304537146369867547790317807127078411494878029988136810220682513490608736317349464303067725711873815396462995491227428707098069591724477942739976417847084180535706408763759609412843359189075872199896559408011140522400482443316652179065992367721121973211248597059074644549059355409500529386271318344427001746837255076902869196538585191249473954922907915970047136137817070645574477685002595730335030485725082321136169183069815799905719497626368106076656946482784643899308448774192796010718371152020396500148020178213230093567860392646525908097623071538347824699893291022566541235662610811479816879351926973396884191641457849115736859468454739925680880612778565549343932373850961343273596340411553097178868188532691615065880573102849801521013135302496126291534805257070483548768597521893689162039144982691322841431686771929405467451092685809337632293015706010629011833673233536724217113744312432387673536771963117245294180082681905531689999750526566857153844327151156800712323154440183689851914345973149977773427830796195017705936026138606307421401289496986896727051580876848803807669303440392819038008624235695300726851016429216113665301600235061003276812634296011809863868702155097288953051560264843984802338558055199862606264162215675634834473035866211146673851264899309292626280732972887598131002709590447312819785493258356444142345410971262255985447422403939556852433280691523093876698742800640164816599691166334926941802904076530752378079716789491925505125694882841529998193092091935272540077874586018114722860037579715894366441348112223685082508039765278982218144076127642939254610784894246639588141927839782014821761942905726357004439354582742123503173755639439542931746009369508284029892850998249998591829493861510631707202914281001930748049597025900051544193069014085176922824778435107442543772135167452818041541201896276179360194141586874759882051232793961390540792403181043928890696778663676342911478404731521037273984514322992180243976838617531825299625468129065459051150650328763653956028980551263029840504163963134700744085734241712404414121984454395173929651634798978043828184284427871092470022019639472016716050850980964811545471280219346796596699381630277522364844558130519629602614216116395738137700929608179368115285643119282069488031771813443605384016969611274571066904638659870856457697194115340584979745004767771637283322995685684949978543188544767934090902550531194860149185331231837055137342322793142186403449908672753491689032129258426339455435347054955276140424491967801416709837020954505458639416933939143187965751635206970901284675062942092901795683977048863571035319519089950493972030860669120063780834735238454983701581964833318811089005123574160343798059650912385600748105002877878858337804723155835311474425438820311823988107245626719346389777170203958942133940386175785663860795773536475886464806012222921647873511451521414804499060225739852141377383833665499485589978551184512145304991740043946061617611252977715554618286300955476404819271275893461447444948542344614596305118999434091932570726465369037291876638184094783958258505003568047757595110073472453988097500330356952970940530025538261284936002445331503062368291683706597620018778585702170507911631793806262315027280142501910231751010485319156060696021106239782050337021011866851214882359642965256122249894718087046068971461695478242563555745737971469364655356266269433160522955789144540125934802089016908189107613081380316442386891476045134470266729279867045192072311643070061110946026335087116952694139381669075946574834426342078652201924369597789290635562122333110378510194108299267435930397045969146476066260294847819224157157492021591065224969565117820633914829755806946627118476852004617969399143640710825248507369068814673864838500251685808653373778470996127556203202816569820713977085592841830374450645841469276711514058352338093634772723858094106282179118503491985859460509454843320603469867846807258604539614491871859793921776576157983738211908024444140886081650392589439343879009336573312945104012054460589219092231696805522965568989981183673173522915392588315328757241563320944080814499019375177217117685798435387937523974583134201405271665378065643631100956185306330710840977878612316260284089130194781268115651384870421561712098521854292973151354330600290825712981054302468502807417590894598157072374603186049869222430975505800768725507868623603445978417639634814832142278877736713235974525524872656477768773793207828935427284967363214135000472432971889743514654540416369310805614748421014382956324871067458401839632845355830204355386803498127427131220469488708867658693531791425386537445977981977159065744105920190264199037803171677931925438610163711535929985994070637332731648755710214971889554566003752040424188965904124322387885553581926697113908308260750063589682733013983664679901896817020415930065882366114184750897477725597412188297252217887628846301392050430610739407483002721516210635152877879592676674872984040763290278571438078734933224857755615884559430290054870814076629516039153593244168900003388400610558983226356620674362817279213690497802932182823666326020518496439431780435660648580362965789807342161609494180499778324482776175111649129157469680288118410482556019927260858560165136110067159008829757167006013295912350538072018656254132092627537420309154615379974063390164405634151168194346493743692071982701210896481276923354233601834547453555341902449537037472501296542066898354741114267458318194587527927976590567181694450407086462627770512892222440012637257679798909682620599430165472714599167818817557734555847807756274690815796796638491636487043218286830062868342012001116438847406072885141039926362505876034054508986497617865793805705706459297992290246784526117005361421633832616147116109312887707274915002340706247297657627466621254991618717884625637689353415037651829579783526066187490079491334209131430697756669960410818734879258677774673807286398101411887516895251065833915953054050121907084646250468365951506768229055943490746006138356161728945162851736526367844551322759538363303704423131535710213807831283645887852896860900642822258561904485479819634142802923437825321206118354216474605244713605320496111052793030415323545376681616825753137045166487941076945509245319823138172914900028423139388702231403129892959979074959315782531190776570067105700668083034516173104123525491939764142050900447163530543134071321351017100519188258435554692702484063975416848608736089295455377088077654050754616917768003537001765494621431745529101938663446850049774179069154555014453329674894854214660908294991268209109821849121725766850762180030399432237859020539954766482892191271698367340431153038430842190313906475914256430775978691408882128909420076839690839174782006600679492074731992145633555743198249351942707158117171032992015712312612851335976386424734920722070832847103437377278939776323064925813308262127887660861062434599983702731713867673547970972272395779330108732445225809456847511284265937959980775968948633692587708230057640943417483515303972478829184883816036537249066278337258260540435213958914494771588775840354794068614033767689959323705187929187468815533695642954929005360505275009037502131876166795805530814513587017653282003349916291076494644270079995021485856444689501416759769898057205368119152288008455586565194023395975477741398092539972650675458676548351768855497965266842012951190017644677882422844202726750150545628482301638625016730871835206500113127434728535202708628595272024164560989710702504305525380211090414460423671225243507891781645175409911680181040409842012684438630190250552744300205578172345591720961532688719599142676994339492724235259295347811858241113585343919414606443007940062909370572896236993743519994224162276820017228234827302449098280928552046846963747537874021308716859051409668788681061756599040099739486022931960021216008672181553167807276501253775442940548743323450359192548909676193624126280500850145760038457348790787130421822342837137336931819084123643343908526411327031072736087543770227776192803332306521226792067838432436750330654110446928107096007335633483074901621378186391496421009229493398636373100811368952389554031891794049196610800623489900154491438569313530454121736118665852791192218538740076080917343162928200247887821050132068167432180617292804769312072103266911158384327028742588758847314965536494817070658058756221720578697134756761185164786802496334334955675290109503996590540273055027632318585071334630152233438991669607184483463084589379920769783748632699129592140000929441734728051941722285539280391410633027089841664480901310789210114254797936713664122568299167688047083634850919860574211446754440661820472011551226545733739427920801815720871907156472698755707466294098897429222228092364553597503806313342093161733879362675645928226498041483071821441124496123386257559922952862988138467984179910083056626775009095646060842327340406061098636460373799353886288944598743341768098024423704059444173750346447949342880483530657623857260182617895693386595028213885386824436460054173196615164527955962266067879852551764066957341396252368381036385027100223938342143586293423323646908242868074304908879984618579156062250245684031955104371379024680588002446841838287491621332826873693688675598812745114822683809230011208691436421539460009485669446092793337818662081484210349608922253259101875906091821823851023806450183815158587273624096246243329770720660120990958744443770225812437474865624943420756789466870244743092896430921075170652067786266653888411092233870443198309586123005851931182086691206111730562950905596044351774907664578248588460487815631118768878089246957945027637115134195948348298024586318905421334020989363283139134183260146612206266062708347207924651320308726312264456032352246595487437139348184830527678759445693723977955009070414935942127475083962202197750398211813909859852004826800849649304276093621666524465106308285125966413438911049570256958034273560671205571896237405065561060217753736423448653152866174267874065254310788762580308788335841557390256345795590677718384348220191695666215005914888296062341702720313603311207001632756542295682603888685079611918283691000198795590611176223983940691612872468274237857831462210728373121104321845714785988772446526712389554147428520247632843931697652697244228544884539255821669380431168726363349376569610378528857824522724556025239524826057344817147256543299031841395979316801926090748808509821267473416203880432010758531389356444469762201415582182277289623037165681703672419771528902046511557840027564818049083783275539703980795920158588247096105643279257392114890524069973974286150829501366276913843651093333487763265630224222815020100760323574698075945967669227947189567433612207425482787796658042320887782115481792604159988450052642536180035504865823952158485651719737865865022542636808661817167443695824015876461610423515952557772044175895767022645195410604703668251457527322011107306600801186977115416555563613091249284809746940979507403725973654870945659073564450184671286180670946207422198973266321283001421230026456715779081790452860329219794214521930436894067553045051011235961016025417895816531165196528593674698433064350875890366765141550425969488464151979363028862087980005001213292845403805741443145585466335268791038352043975652761013944276631950429604736184129663840228687167562150842078204755859278525036430636067224873483537156360271468683753955195127059116766214292162952419249689591127555609055795974772336543333180795156391800384839392935273095260018801539236536249023496089013374296883189536548659946279401473468245623581503390784908562082526463493900427802143361747844322282977088293353912733186448840294331363504240839423627992717359918337574153335957282400443451138634606269516092997194311469280728213968449378963112230793988352183800918771706351173014194971892908840395296641576754857557071587491745642929292654879942466549546754261637862745743880947906455935821966998206540230481336688572571441345959285602004480262181252236241695265584016549156978081443261943123546963737138498426705608994776566404557971594913054154604873924747654914054737669842303220389865590990362798438834125824378914450607586988273713989453133238569671423108444244791345766446835183383649166301903833164739694537049763483893680245884187301446932105051818437992255839659464029462929596149380359122519497769681797478443019723039210943561838961319879281038050841818654452568408092575229495237307243521750504532152757776130320797378777602922961826884206877642636320577546684586389543289522513908439990473183008754092482745024068319235566279826406912602709055669291705411783444435924948942703481151910739270384141274039416198399414578778191369880032603672764119316839974512414641304528756491191745539448863972131909959130747054092312642484567268062396366176984971247988300042411807583330662010038439661086168838128073928077134354106510034954053475854631410985277093060222716571581993680541551042650301111623219124513550279843373489466754344494143977787099678422461365674196828999547086291251960834013590991669882121137520932971350506323068604637339222176144768594100822264286141868771344958228038187794926558384593025258609398347279860434482579258973584204641175974589655736068967116685594258418087264748542193609312484000356621527725676177662108483855605503474200907084422908271853977779855787887231962795226190589206562657315076850331046570474570290874604684390080302983499768463875307645553637606120195942682684882165882053633133848524292169153850116881149675634373174679805363339944303548389474015230078908152324065614248153049093844846319963043737071124609197942564956964378607177108831236637504638299589233538536311497615344615999949903320415239696376178763787991714251888847457159904445277874148564467711158068148927557980762049045993179206983104540310665329645000522616641073194171211181742719421542782409117558783959396303048401933813358172693499281627370967240955207653560520687936747764243974848222401971487159739428220778769326259253778843169474697670952386942775709553566018150879200213021828343149579060886054514835869030851783500520181053122734560880075428852550338586856217055299751366356720595132526841270554402037703885899913174419771625370293058918530920141032352517622208925061826610864207353927804983836194400177879400124104756424409152331936105271169525126247972941783167304643428639546134792421452984904280340930393493682015590742388253323403054641183347409595374270846216159663474116847734573570300806343822971444844613773519585769441042325890990688401362387191332274472652770984036102433108642421005682679744197552129069802940047579455895411432459738967373186916649295552352801929976117475800674049145219965071929516694795453941954636513109468037790884354636698509769831169448733561971537567284575108212335899696730941926608740745403598946621662794631962869997090484417470660792658328154978423339515977161999106464041171841816250000574938513412452392469516478033878649835856480849719182532081756942212506120713221179402688390361162523008051827860579204463414615377701404915755455428568628523027291157204997003332235930907604097229307834704784694166110028646309874887902750037334764923948827675456979259116951832072765897282629635871389068765022740370798531828248422947654011801842589550390968268743743698973223973149746591169501518624171141292345043698845974283430414789553466465760810868036642552213233460783757925320516815091727187851866668223202463372250057371526882881365587152853630715750330098879573128551994175502178398842146814560357605097752457599530994909283573027323718907892900110797562509816126451890605634033071792750804687875418540600024026177903593987562681947762050050377745827811269358598925099315208184756457844345947618364560713080405452401565091494986330209098313615519668884929749676761029591409632772434180408366525771821707349944025411701445835849215483380912895704811240411266199535154120399068476265765448598264185934209032983054835434579533065049311849638967553850206990603849638497065125365491697478607100678544543267550387303263985238161265585317259983221368771806560641364454633381709254057498739641259265309563565366364490753087462846862546912389558552891009318704729789822964308119186856049066391924788720685827534040439930494784122530470802840662765988832957177710954261119670135036603730004873344003013082886749490144224118050994853990316896086202887519520999421143004148220196653891197060867558076551192910321957093084302316979554002988030025991860761848434111640008289212583968137781554585266663642087506837792393296837307959643142050770049518403684273986031808799546487587285585923079557874595633155026651634159826789684860229296242127592473567659841968311227672632956251950920798717549224243144427860837923595651203101201441315774560787532554353249521459133421809906433168218547732898149517692758098074610214258043941708796192555582550900391202228672545228000584638478113988070410019780526416329255270125319494515019307648658339458224448791847820237724302146290564197340814311614217063034854324876985134448069368778392450838403457541023110298403879344248675200758979086160853720690344224009811979212539467268786271735216336059943662821241774469335699325761279466903383476211184628055625067522171162268341188992703738763704044032622639931929405508255147423918523540820189953306196398170284527802381188612585786553652891248719914520124382027845472090859393652099538009844930097515284745253126860564755144380717789206297263140741726375597154930037149647569405615000453209166673175841161652257913757159572250578017133709336571063340079525762200071334152928196714612369632332684699583225999614680535469073115729133617728821483503761491455425978092251309081226942967804354470063095492655585381280272135759138400272521414186739117452607620317427087715063427957387603293181682257142991829879379529724196329631028019676036984794100235170451847021560237995466249033046310525742546761214020186261467915422658594818036957203191487428249743732050658313145353580973588131487651149885723522394443214929829026322742025258797659527311146927647913455079520382127498281073957252218008920995682493765952843209400224447900322311393060689750079202125975694619659069688431204072832955151775490434460072956737129531566829010290144811367029924103247077261978901914673872413909605262078391858721432615798777907945634860088710352881081076695351737719763806776000526293879559948058885795949237747739835813622176197794712836835776339771451876420251209935242255534967780595996794127322751940579698787043940839458633699956013472275186128453136599422274556781720441039646394038271832692520884633325728426396195348914194560130723748723859743046489031392290331644792023257723538254145159498586189147068557272243316447554752507504156213776726496700814001662537871656377630866674714643095946957722638668476165971357627677809919402648867805086403066319239586505948977184544282464934716354761057760495474779570876627015732531882675894168237185001904469761182438933874903962663566768204869256038940417250491562727643945914645291947394559712379135194220915071610404421634270427974144997255653471303983426583308277177872966178249718333611399938682115219561439117056360587259330320642985806386886503398727244255993383895859748012609549541431021409844543174768270010760636868156110930953302307554527650741772742406235890917963698700193697228938374693035939051249603043305164241651928106198197005471621937815349901840938691465193322794419920977647587875939555668871578902472875688972587833009950406728456718105682578978316428788783049073685896248636185909555396050438650234014788435625219771932762353530069292630418858280990828144840795803850921274865336780743225377360307931968177534692743595548869326242818414994066838835674021325349399519887660357755506390622106904112660532793751867486856483571383689489438676516914317416216060668817375409917346724626557564744302009177077009462891988562285842123182221891802450022131529635127022083088336476908677871400822494155486124585072373981157668696184031880794517459058084435713218683009548542491887862863653194393235964941777255667896406101190288313376206313168664402207006447443672990657796012636855929201601983849828863238439750767433128747044462821604924090147525497381675529328086073923642432368694066869737524588471359136174623983965313310659802454345761001525070014668234153857192142773607263834564518289680630636653566408351112737780793766443926690923785358339044555723526593382371539233348698038341434314829697791979087834801189143494593607783203294394669266806861810202587458787001759807839163211917564395792469548476783156007054161739787788518177583751859448885375135029526797506233473578739435166952352063618384942394903082008678677738989682481801154123911835438339757024967916479424475480346027389982778950870415989689547661016765583248576240399521980013501246708313395588952714753550245114366912068538690537334915184825678557092122675741301278585460841032181057473460213959804070275401201592501335552354849035130177818375243065712558020445798548141627715948032191216373663602928292879329253679149848298824381186020388533781321087846990118235034673957472238237470718374077932713321841562632788505358776136451006466708173719279987734450214534464064895596150550842004259756321701909350232184424698536977071932272037695007108131807777302381303973182575570833027778210076491585952677923166794268082986638959003688900605029557744386565125984913236016047712410949367653448869515947335655637584667079855579863313902756212703394458542347673370811745463051688283602801392609478849792497080894229642406127693999873862126432117966826240081419499682169021702414292489415152442338535146873321373821709310969211190335476232830011455305092083277532224661045549063608864302892944471596361097355801621558550112600148652890631070027527180771834824765207931304899323968840785140505799933451508325702472920191277812584096551040310136341439846383531827922719165589591203708034308909974194515178247015888063554212979868171628082355508339991714287526960059748959203214883369083470387073524489624103013894182856063823919430878608791146003161628585247006153070977149010729458652767008035478610104449566332331992777985064330966373837026909913624082665931543449965703020334851570397327125788666951903031719761289588122384936423863269491319416472934939918867471580274760513238085246860107022201050949124751480205208112816950864670192504904566968470557277432875680561351308234763716422607103481075007575016658119569464264666818720305286404954056779561604605611576341527417754854045401172893527649718407716640456541923422749974592427547639185581115841073107561366802139085018060405536198987756003518605332472275202668669076399229822904968221340221298194387496650887140504512975997900125173534449235171943190567551241869275214517089622023499611529836305677389108890654735596689331136033524817162707950551903389576222022920520795614172354228600264871656855195240097177224268840396109986985480746262306768011397181519789757309541798637664589132709852165423016846281458507528185841508259846542978962030629633631521720259145866000936961796639172797625194718429594040799330964919221592063427549257694114164791017171056714504599351421604173975017608178660013981259481751411266404339893005533052258097369162939451123496056034853679104599034201978307400022704692478241626003220445711685183469517347246673236701705863222287956970056442153001185638216756697200189656902856549449436912364881702979578707548933776306963295861920489642794033532677427683024015072047262326448129174906260242432014966649106125517242690090657885884244266389798961736481379577392103985938201000097904349525338400917070745004413573727229174771157161195668487374458753710647596892257694609606850698162706732767106223766038754619441732558561264503030402089850754774920388321592240969711173665834210719406381436494331905751889171325169057922051231648156750167051235372937772798395884283583667298161403828799798108988336813070738610982317734157941220043581380275717046342721551033333643615825303468948462541836807198606712790520656602079797598466345724612119567711987445052131257737356408606199206476096071010080556763103740956477478713552681127497120538789370466478204085955688492797954355425319959215881659178240525514948781689497434548588546423549235054647176152503067985592961554737991695863687799696913554547785552130359646559826209799835543522946581084329911448249465692456032770867611677457302674356442316820430562104503641981011801432436352749806522100245293296663386819122537144225170805780800444113966861588167212908054158926588744098309728734334206397951585855218433402230860338129338342596434426328232460251947468109971816261264905856096005818963875548627336309198474883971882513545833084434399588715571351056356659368179061789489193454963126718588157711989930990773773581246624020904066916247516596327058013336115004483031211316633889897295327383626940216699866325307229984307600540848647147007295124581039510581237379970921069558285613417020636049735092259673041598625350396326591415640947444749027565495685881950843787514371586316614009342661465122183866716830029260130557716418745026255909497801184821388668288018685492893685186170890874592222913321457240279864210434965839300690254645313055481813523896810241623747643339362291874731044832507490063836373428900908327458487168184605344393946776511459783252666013767536672669068754397418828364318988786486364672009519286967098101728643146693133095299388141155957769874070129096157448721796784755747653800726384845994165147924824172224933158797111477383137359855554760851701292037971205551201545437057643478680526694251212837711423298552124361995819151897819351115202948241630380552455156911989009474825905099862786954084406202209760866481026346266926704479262619195800985837212527332092578575843340337698676657513116965036025165104919251712462596432999368388035650225512428156192942321400869419957907447321657020645038028130908218582186939511670431222686821716673244973210024955270850595222856711601421052903085224096318884268910887280314939899616029622662644481687359159048734520617350782414450360417236857940198084066765435234484704750444455625300041931198917917016660013149204787087718869795966179847544209826341512465688383778461374978556000909454053192232382266979634699122522711591112593089703110870797283983469061884715942489609067298739143859582083528570809488932267625521909322653842864955074486819423968238470497419898095571032869393382033443860055354528839944560644495194289067120301967729789986667439896586699472507345872836671331628335819451115793163545471962961470540221920105996575710448007421183055096589249626727790733383003594024522983336957662629605108185675820724404205476214078928359308206074653096460062019138802246758215909680531989352310157424800320190021822555331672336418330176472094161065826222951256882957028584436273768319652862308410708704971691865965170576380245425444363762945374951031097791137541711732483908740835103713153350904916787667810332046759142338395673780794654092009504478835102289534550416675958650028795550668094287687524661994397146958764815193964503469217814080395847252360027395113886334443073772581197071674474136300311705170988807116745978244403907561934151054927079641886959134908719637854445772752990816088588012861811041971931291052970677527553586114611994779647897012595586551213047816150923650249130305681888890103674454785467501977563026230373523676852514345051495667399415946570691929451097008426788018429690261332323880249775195035491623025532898912250702506416922264818719075523811786355001394674666466736169587402434398456485630782740259945362414331947878626673909680941438945759846046608295691945875425246662501015904742787880504045610596378261451995693026296580165417652456967443593859872214589428490929517180350246948711691961902207983639649638502374682151447190989066978958878413192069352462559473670606658361905073430639464516994124131686802936153556150351686783525347255432054362220289939542037894357989010447303487945892874391555887415814204224497369572385600863286915188796481566405090020546367893356664895859845685504092645000823066538391073545330159758962944956956441209325790026376777844677515112589090894036826718663624882362964414096338353579587403322190891165604093212967846644711231969944691425271865475641463042138612957000850895191152759507125661882231795752347027951786359352911135491666583233808676860201730166065033666626095343751745904070174940838035584466769989581704641489490027991026852722030763019571937389652877570240135426471078600505578278660265764153845177861068336962077397888986418562457899167335898436209849168967493397215203191581180815603666550534695531577833421887787624603853769886384545424984528924588831951994064473012863069584664911917747165850226811308650989459477603028759277930954728035195437033487679265962872603448237768741169137226925060658892793069584897014002366390480630412844728383516084669205371283198766877111476389380803853808646648030201438092198949382905788798834369002340441094973418767285452104279970797292574426572572044722367707071757463143468538588782536318806317886728757649711438560590161619927641603093661415203347651422036622107490662762625673973709612945285838743745201216197239877113926872894291431442065943865494329465964596422925549822928503071162185477678683713813086275499789432726473525761718525004770127279611237577005852928537747925067803323226943753240384275503710218131662817337863847105205063610474389936351852579343055724936732411032599503196134717150798342812921693399978489137215824664446830288317575890150262091284287474955941030608031744826593102703076471193872386755951607031073212298383183030304690866988439175609051900218877797646215311632113655406918864578706220821304882732126792907946869612706491269712207323488584088321846076987342333823395952606467445822244367377010757450454535230481696756492511157638211291362690562531041278484721550912778676169563252726087149960145351964059154810823915021821083357769372344664488731968664387472827540664688893491427457608260949537056447390670782022577461457867416029463792584764746513022011720806389659537796132799374086896265240382676065226137835671797981055328464485302602618253806519724216491554248532225196093431449060072710473719678838888748275442261183087383468212146215967095830942555421860560412991214201078413606632673884036657716466590362618634129387191055902026878642660110315699449311298985597050898703378544022717694221832707659646135274987230740462212730640314989787436485602342918415693726181634940548579224552400806072727875546847752398394162674698830915255969360652742960436761113537076727354479753671372696056327603311109891196910768206471012612094098826711250557104250650117775477619630699604595229584431185485103930505669006731956036933545364687737694492892027567098009352192180226656372200272733376193745586527129114768160071145722681307786469516387788528216390659380939504428950574289553810699454502432769347092364640402983076982398100174422583410396771626777252511748428712770025025886065440658617194455722671296031591355762500724712598653750682848498907377881517410952100924111109744764380090031886817286142085129277532859895456078843945251789537036444929964319271010141612332265823593880913825951650607069762578256986822734805955975604185836541616078052621907198225974909573647269582650859438984735196970534709049755042621397598003285634861108802529509725573709997892312120512054020885225803672826648511835654088246449972690262235981305066585080083746205813942319387760385479534499035369381053133112197662880256707597175046628537072302938941526199360985667837330584389663312183796428312133959482551313762346167183981368739258459871860567270689643401542198406689339680470761234401563274874428959588332201174592170078572200733102991394755140517624390143132725477308849061740220942790025978262036984684840239083795808517300314500462787912769021665145759363251217938691861802393567428893987668758679056181255325347512992109585873263362931534274924977836008248687965688147585267302433611975742077491497795028817372467161336682411156885115855987645103138963542890556330182032426038861584664362143586325419695098766819167337326148822892801228095553082249314672849289388356269501074657190281754769427479863020150039157386395466665966265021599449548890134035587101080096521431737891258532345001118919842418443004132035781540811265872982139100650410664877501343072641707126778581603012842177958182489722396358068253333694725073588782380147781712211299148615273956828349623529585854891820802290796368943034391989865386157427010108597986374485160077387923333221224016215021719244225999465638520343401373621289417465529556467499480387864644654680224087981532760875032286181176834409213874743401156483745742739558856752033650122529940505956634568999491983126391537316381221191676893604056095625019610627449466517784911411738387507123365797701910252755229812750197838496106043463740773035439301621505726562915879258702364544997752495890510579014794356806569948121671500638130971436592658100123737031700727072383924711864874190616942972076779619718150886534399235833633863157054474924283131482563166926747067428654970778296462189181758859223476887449439151688438478912385046958739371401462743891898900815611099575317441091946771667721328263087275987955114535327962429263407202825794742683069089674123871752566233088769838251065980115112836669422780750118322955751675731862029220916481035416094885420131890715281314915041697416583543511382578292977505699504930424298960531808969874149358853227393428437597080475381921137729511807612954979716419272545685205876114253587081103935955212713981226283419687366485162517151199455335605793092414579389336428767008472747196613122013394455412694451258425070995223633956051809298251661612556111281067567413128799359914662097315033300156930524893188862586705973689302161528755492063450689141647277749789615926237550655442498525470246237086183769878530660222260525299239316394525279698000549693016974541597402609871055536765334270709561897120485494304714255068064406508981650678760505194136196977851577531966573697395559429926434090323305295174880018469904463324707578373093833289050450849624402181091523105125766606909265830103944518129272144542132180717370608709718659871962585595677274870764257431027993013071836341473103047018741460350766818234708658844535509677840788630488455590062373592125401705230854617103270113290983167781506706522941937198561990976057382926614938931291820560313312830156517228305817186634816951244070561609172465496425222297385219480841430868499625787993282484756538406447640190161555547669240003409815605111198907588696673611399375867737529981107183389924400367824132342772420871188381883028263914376740701901081457220547412845054177306922560288021185057855512939639053003269494111148744973602081037012532362603965476461609023360776614621843300423200148676741143007281280859341499963364295905426697936333801617304890780354206523413217890991946613836351990441322899693305066051237031683777537542600759954963273265886474647268251416474851790258508463703058973599927280994096581918419318096075232144100764326271067365218624387947302678074407044858801583480075716607872176213036193370396175196456116290113543016327841105454958032551138397812762069413832537874039471889531393615669814079445938128741651002309533479648815358011280827826477558940504438791060592501701684912841289948887297875625222043394085837184303894298072199515879537913483236798828079223211702484489290604543110918988029944483416266077776818490907577336027315760783314154202764508401769119413911782613896587487249240601904269370327008676995479386352634349859084445754545831303524345367248808669555753789356793158160118857959681174454342089181544079540185943261360014552754843256299143192734731784370292318269073444604546875395687363644394832310406445348278495099807759814941241042653397479239136321785931130143175925066962036835764624398184275189051980552708551378999921048501515848764512764651470163079794843376282914791733695091582005796013011644820181622184907427689349602797601121538870085484346575847126219047194302354900438847112828132805551601149242988623806585274676216410228352378404271273691586706609076846871403264740438938436300835849865908675683525217898621281405574058716649742989279333227100955329519603518726051834170985935908268774060927304411569555620521875604437798189624159823668508644996651418058721795308527609934762983426611611674234439391155975558313825276928536902203330549464397876390573688599960960262512522628590863573482113353860936146854410323708632672036105147042877350829775250599580148137910408116961815920476202775403390995361826834681641229146224363342014895670801190050359724470964166325179441545727586430234468047968911268249967370855134439495471804679115937813889653747668335571450738189178539497884036355850949303499552123647300790434219652206872734625429386129190945923487889433578575370539723095869422347521386293278309192528028215550681624281946986484061186405160922935152880860139830648032033234133893328842860532723526099485270116487802234761544145154474163457079536374956574963208950291436419502723504104671770782621591060607510585204858869320569468024123359462811909631473921517738088390774100581968235948796228980880838835932674536657148522991520654717742441017924640838418527162103355360587958555218914550179873327190679657505553453450068888250875044380558754581242082612727622209999041337604790478815054295986407059776749234260170883272044703708516038014896147304576166738491858351439798260718574724773569428228848913298847331145116906485404772964710366209979529236851798918727675160259564193132416187339289310900812062496204973384834526790574112094401656568098353193985906481924011246439139607047419112973723402468870608756316928550540960218265275899081218714672804086109124849252962781108857447068523040718866407759279216544365313537194956523931092894129065597428458497866191437266829138273571782575329850028079511633559230040951326064203668726579051349352877270575910873477576624763647422386147864198606528163917683238015442658234844377174177802428816451252845701074874199154563670216602612694785374092860327615565646536897752669511010641658524709919931421154723213767013582566348580506527737728294919262914818456406196124414695711904880670638148341675744141483604257739870384090280771224352222767135841203404666490238049649425069359888812987700932966426063401573531706763363355602477803685990545234950959464628135686145461251687937824235125152679441535248824208922157451698421536264979730320944688760353093304791830428627030397292369883863958197129898125250994779925162332304976618741006054291395980689094175822531676746642313479715322794130889176714351959157581298758638767725928383066411238030012302748636532466531254056478545200760876564334710013519050291169351088554890907954630592921369577939412265678819490089146143807080177439520894127382915083826286374005624422287425453486611720603170085386931486473724319188736242618465694938331738307767222434335540069973628286519217320544691118087580952667666983605710509365847405310862393989417097939802985264385763342614661860998856487921952565564928471132901231835018468278961142161499902118031210480953135492135664183302698637384142837772349293158236585151946013862569139675952276563350274897237105767975450551276421448884319719656795149698024109236147676245212068389225988944595862153336967131446102028731151321255025532241545508647989788660779746156576297311189371879418224214335985144174006086062970033953683360785033446197044875607299129245754286131653566492801424412477424197020252801451673960401875480227762788728875564710619679582197468957900271302509063882106724995788009711045183631131866921116942713834707799346716425086552856051102071387155436689317611610086834711868170825721995836973614090617268015032375817862115671299499751816002474649778124279948205667699921506451096009864008641301115824586698004301787642946117856786397135377836681081290505738010186546017412991837298058947210490963044249277777375693791705189976375515663745304432625801600835124303441147950041181858801128700559320128243577650563692903241852778502059792614530006951498669160437737104292274497480856478293790651602303823447343873821270226224196694583182763871761427762057812638227741670393193102501625977279610163628864468864577184235374521593529917344443333045791071120398295141342185653814440886674490269520996197920538884063756642788784944135750555520462666737169035836745765003056602280046013484339917573889095171177272662825779858944386604400708255025264956827599315060026194163548697485852752016469772945742627848669803536709113907737262790983614211018223115316174803717203590955684788147222416076396358291314901080795806742806352310482463984171685296157686733090003774675934812734148334156511540282615501499452142905874469705711725349955058272895839187982569075987368967005723671355839100367296426267848942228562059091609671882310386772640911596925808152614318690395187957188621576907381832158502316198851149909608081956920973630729202981807872423305558621626384398181334698595381833421480489442282819383994065040997664826978190500515177684658627391921097453890065127731049966218627324761785997240771574501077766172562019563783688432975585089092433782373871680876089664666055643447226348059614323678246524940891389482928694069297863723094458565341206642173770241407752605965802812778353215464746160191006282141710569558015819241206875007989561733820043985340201900915654758332890844367211517978692954323268777129819717831116941665383637344383781241559447605548309404987663736102375886183535823795375626141620515948826647964743994007984769320132128615067000434801883786423588322087411576838959387929963271592942676686630560202200121141382888468453854074121689734136604371661249957716001339953199169310906703647227520683088855192430898919789423682230874690922085724355747504811566141785741377032723773125806697200909656981055458554140584255851543298615015788803663981389070055503921753370151006305147458539865827782140062908829392764545062396221568885079989710684643993928382818567317397440819647124224626526376855486270226732854448269581477075761445972278540416264720667437811911361795982469261881012985053858175308269025443460544644778974656139581899647169267431114363376037721561170457217749663640763958575296479984452784874696607566032292595147990583164968198492745775722159981163161805060195731220099149456276925578796411324409352298635868488275595381993923572723199896314501989174664069959152966292023067234939081682252532162760719307531353612205946233863356528894905995825721375169236364013882016995698745054926368888174901965798686391775544410488526749207407479514026543501222668242215936267248908456697962257629443343981627384229468351498719149304330255666557360390367251285561879824978109326359140950779550356178728598071592634076068540102747690683122435295147454821150183391651382339129179845813607577140127314819604193823151066662608821829217113661320136986573477586690484335393654473141386208666641148153280896105491756497381812042208474249027940419462549974646170670866700484899804387664146244527259052650384429998749222978000689618175987444997717332344886878724076668995872672776853078863821019803573261917423208131193112524029603251604433513570043851339847294621312987165257070424502184886426961442716319366355235844783604311974782940642276387196074715236737957862525529559749572495634516092699986140565578885261980600010086107726174224879088007577958118188086777567261954542981752533586691984297191235597017805646744415457828372915610745354238537247593118374546624831175870188679202987884466711671314348253414427886220122572892946718802362755517254798253411499238004082099749056881609476713393895043745489871943909081953566577839507122955300849394368125496814245109713681889874509286532837770512453937959716452211482239410808412889401639854726747271701462507781042379316022177155008254840795663716442467636913937933825700889395408329900297947379037928388352869858484817792593798887360941519021363897133282507219708082208702131801730477264622213510966044088607088873797747764417515258658868306604679991655019280399007158384637600915521998427790042776309150413918685566909993675616907945364308120683610441428531288042040748359997500209106055510505669572844955704120348134989468840344164876962117983420942308869879548184892753359846100282302826798857433996125079074485753466516346405323806377826662575262512128959886990907217910250553848650966826314655587910449524794659861926781064700899996899726447836148250577425494161044129913111845322975378367998154995520190098417168571766580259272753797072545302056605751848457809571766251725917566743667755539282855331878745983483412927937852952660509667304550747748276009691061967482377743961880912704717233150920554442168636723456376411668089847898527240526489118002722519941859652888859364344941897478546755788174072517133073576273417215372235839307009025933101161120752187075126007237394928784199365650861534815186122651720559562041296871843512246585991145942746523313687217468330712627543021754243162389012886585109189972674766444917973583599166674399478520975234155923702096046372480113053853787984338546082658295787225379148003875338502402669434648952948416796527345918891443287721001045726642381959521869333953840764319604440984197286692618922215807242678615314334032373296650561319691902682922694386011377182418113733981385064452458186272211446401978958132979606933600764808187237316084162892024737572576956867526057729456155648056901411970568322500779556336662024271862405912299015934573091970964842129617457411072120640874178303168086252613923352067342006693423178334024308811256251952055547285138432111590404372913171071585226403315070178603072471247452082340704190058652611254164618410806916938863799505700535909252603768592231578464483875764901798851007304379244947449483523565686105804897565599308951536768738327397447813145117534348403659893457222121598782324611726982101596543118057190404749421471500924766468638179348632144232213563478451443458797026634226201211351272062022610057947224558060893590982870124711514356264177659092882520063598613618837881753749371790324706944584520472975426483230746840875642830257357133910731007386566934215869305819342433999576711513068433207122386120063767431287573444808066314741516212282676111875851289516831344244170297663056550328534292651687761396579122991168749675839583895474338866864340526610958484166870729578246191436754001337946201485316494529317093407104573116203374681611513765056524702972589841818093683796445918532910650595560017731687748573510402406504754686522076008943802348728311450124476839583430120752630818589784167039612610179170002130361376891149686170578012050874519217108221901292779446495228760171741539139740170706830926162305453609712369715051394956598026405833420909761149307418602200753575929708877269851766456340287806939813160628660318934267648701758727663794761039273258511421619786275038160438999394456514206171652957993727898122003565936191162137018050344007086529257148023195862988184906433205477299832241645406948315855714377699858478340949174407967347328595473234143589404154638412910077668247554676811347737613714899262594479299228583150184127250530948384475104030057864487950074969429978631813449432730304308357623624810087376585144470892196584571084719922442518261473810451600997601702419350130445463844018372805670497052889719462604162258411672825788498311757880608720994112238339817001967598286261111681396330444045191348007863811600234239804802906785175332280606393621197910582998332189470677435993428617939705929219456878224545248766450775144445711906790119795273290264509365225487969631810923946893322381476722117049837940961092920006530014050946409459425647219833443060266889357603634796982019461343993178147869644129996194303558129905976799661891231702881880548678918599740328187615117378135693315828466969307887645124890644612506555651861555636571453768783992430726606195624000955734204129029432714041593337455266695576972379029883990702297460584143347171086419390737551176254206305041126422616414926178649728708941296116442451165685454509872932389907919897584805045729903530135330122719697653257380932173471290364603551254903654286871409884028656432990280543395935337921404739222494943877447734874420838173595602220376445081140583623384131293796880388599794047268373074419536924997677640706863759582271476930261975355033237888533440844433783136935887016591615183598516026283774176216785401423784960080133426038675990379534107726807272906034471999317192000999036158061391199041664102757194229644748103921840494261134213094362619373100242560935807964511566126171580472096589651097970496310816577648474567768003291329511157879734312012178996382546334784814678673350130875995476210793818619447694589080358938425823647765600058911285670679054428629697027492545291165234058321487164373791837533596932652613837711894426566434715360984521579856776824859181809433868450212086093462660904556489879421245084893520041131920842930529233202302686726565815881598839047911905029825194635095175863619963187576163712151559437931792252213945530282186500909966805900363340860684329278845194351687331558704976796980451703912418213368469353844049636708862856839341658023414952370132822610869007676086357371511427871946849172370959616142894986861797570527399247903825029556775533773486169307018031152180992136374411788267763601332237475182056024995131626816170893320551049913284831947263575568942513841555773267789725184722035837147074901769017471987633935451815527243139471506488374754627950733461454839561363573553644085620758940847119641786057073818160598181225393421545313361979289651764814996998166140433453514248900682052591185063011023758800252067412029204702236426742495668264838807166874742155256039986688291049829267545274140866969905596464608313396883262364951826716244982089429653918465224524492283986817884323445575115889720525950683163415913078267659527905214919995337843499854066349376492296375218600349042673827285485226767914543144020705863787428898258005795069798428591706948585340784519609757709706104748531624056148382152571591822908244724461772388942710782942923744185945703816037540161144281821845207422097048532709365202984865938293876827586948767344390942365849316254582296249053563241558459859228762940688801502870747130896621239906600740771295698336431921521802850895556804273104496877473436041459942692546652836174433085797061574970331518971260066218028911591513357119401030351492308745861218630415373743185609450129251485240486412084420210960402496651643993962398386047366459837220312744589984571909765895294694297232155411388356392570720857521375908852764242737992283804186837374886442791987338977801725477647187078046859324698020614893635624365789112733263610958748547830049977069077936279973397290724798783057430539806341547738019671508959361930181281215977085356100092930615054903721653464837298130644108412827714030012087939300621959313706587797260567694510914045758663005885395847351838078371945213170571568744865487848304962210371459406244802842269112815684978418127466923751230357568800113666644932380744351501348884263594151098283092336543249976776940394340227770681933550529927907843899800699913112122997337847519124383026372829692793594655805317645313078352927769041252603459436423081298766434258951254178561270699523578043351520572226544423935963093480253912520780589308079919186450486844071736757139185805744489436022182633397198522601877871498665123976801331644221527218748351172494537254511127892907899638309220136242806057394344312076094896360572046523945041605367921532016168482084151940790795433808581768163238980834299535070795664754362198000338456000808502299175206841063680574850321672876848881921649290986256720101410037702466404131082829556079435671126075755784254886422457788691120439013183885521510907168461537466898655562824230007212603591502554919961928725181604579320550900367067272016556599569147138349564936101893227991560788921858991591189435464988314118041687243614761359071005310599882688672586301101864205573978403550569328235305039091572850740841525235838295860772445916054376104711876591555138060976443864047334136214951737219333189478736192961574589005556452135080535494562623044564726544728758258186620203993930624450618525594343845559666454577898453283704699353156053716656843910756419382371192766974393536236631007782313217431937541427074734835866352343891902565374975084169832274072200527449575215933726068223331675228872726132895199409328074223045671269126491521589898066230752439505377751560542474968696094152245933347373665195592132857494351100050816774680592786387346064534100462298706718941929932142883283248463808203967976602300744108863237523637167459844824096694512186629497790244359375695773168545322487402958309257438046766521547187242305346624143649252576302539180850274660765767675812931184135357332077665754453392373000752410883983547497294322985108435363045428948417303455771118222102049751233403436052088931279879675470592567969048047510660096689100879785573769915803510458925189037032242214149835500446873077101716901449395575432072535882650967254523388508761728751356506271310818931820400458881398703154935647515899045790592255991649365712022063894536451794351344962536951817171413210525046759162963724774601356397218042543335506504373380047964276243612494624666387109382186420202317490472820722795296581224965754218789149249881707347595434454174589935633402945210352195619720020867483977027285173010480093671579171943707186366115833073740726081811663411910198387990989361765704854880983025115398307475218890670426111667323929542201163979481587059061977176945319846663348116135825026548551590553003231244061979028013825723923379824966714081451239674166966736891938879130555557707670568415415732013842694273739066954193107580578794400516109986135301153955454242626815940959692551256770845252754566485852107738593755914290532961418230656031409000332062276653980454052238612531466491151810627712332907634183233844492390700313729287267286953934278674884570019587476461394914944727693747249739966638255278422871494467969707346345601671205077681252300431827182425113403044123177157695578462097625764360252649582555769201877053264854748160495523207509738060525900828307117703689074845141490910996633850889553270071733968284139474906242434316589602201233155518809007026265974289819294501604101654305218998440854975293233068424215063304467601203488390001918963434277849417910894061530418449092290383864341273591974882496432914008219998614913378593616041383508459378368827267776001656871281235153684463387224792436211765420667606970471175807929397988410384417674736835403137983315905721031713445355594387547605732385189999194260130307955371410600541106674009871788302590181210382799835803406046002445017100603629023369461493869864312601811481227641316355764994044797232160236604651412059249051233447871658995882363444259716152740631017263254298674385610250287050901143860855973446068457252024170522346085547517470834142416862743033795422105833709043926071204559167839796160094437117520173470091554131722191847556015538411256086937902796370127317894024885812039840926102385337995881518377716100645004729830335501510030488714212182501338458873034951760040593952586394028326957441755716783495899771475944334823364587369427596056560063911523144813570729929619231978564131765913087590220673480180322636433133100009967356124956844594359171181075559548438381384680704354760451113621948917021347625670011574237821202758105655630025018080446159964172755957527536743188866633674759294019888437989118346335640980689707663798864996098683850703188369242595656232119865393985311043444573612262923850355404541999543541458147571649160892206415612658147810889478697825179002064413756839380235684907816244895143925252143366014483673504092693875588296694075221912338137590729660388660203634243179812291592130498611408631936586978641109024399488340586969347114680449545584897952779948642719005318620002907196307465674634369513764650617338050497747377783489661492657020305520443320936903299486930401951376679592234853667856617796443507425157577879962638761565491407097269458350261582828545214604951763441154138690298104455457001807390341846294172911584079677981763377840499164971953210048590795549338906032966361466100281360190655252972772687287328156342023628731303737055720754553509986747948395679965712383087855258305536936044791843490940682822460598050868398154473721132159507901891748336767491818145911278523609153303055946175738419347845517841845992602420283244257358263812585009792025602554359845342127385343918619303030452893222806577497108748256694425796433401956431490893105632842440635637613581127485721977627280529473579288143750021301090797607063920822816489245576465396888384003712899065815211882550336818592907392971236917097820226581532539221516769373550533398289949332184601215323950575568306830023512200632851758184622704484700940486241244014986909992151573694280170036058968872995725997915626796828295098718078185860193381282057677291349457600115947249512916459014907564512780839563805718594451708034073352248630735992997129149526284047018587508408871296170973992797270028267104352653801369639493446349391097368426265807972024856414245890664418802604732200042318188839403013611256370214750184940545319832819794156609625919367004964444255800648007613779685602720560116817052701760825906844608799227055885910314083729301741432435052358428633178731505538427043646928552071979475571056531000917121550607586825813502380458759067361323985783456517178190070305334442727826497095073379716063774823675485447172952515754468598437871130796783632810134465469396153277952983723286857690684123061227573018883408190015274522574037332941884278967005895410956505372108405357558066215107764618747445787419281775147522297800231084064919210482942357963927526056427762172974049843057548722910738013468931108215632490004935505593396748535508406433588586078145279563939509860999091092661169633007187247587495987335852536818693586771115429199447256589105931004230378475397987792793247209908542350697665762046238796401270075440911617441353480933130401332634901663008550931349619678522880333298502512075256943730884382704066645053294585248588341154231005529167231483069719452884612908428059842656770304317702783347426539308556112391146955205706647986049724751770738183661668033832540842898633214532079100342623012818662352887551569753769570815163452633445467187483192368101708394396122253028980907022784126812065571220418141388530155991286461731022248477408520174275349944931984959975535343344582931213425155871338058664068900518611755917835749547921306738985644841899919674786278045545135113861413971611087646506585882751925744120114374065037085226009657135267867790992091413925446907739474954819627700446632590376915613469062340338145489429276551275770351209405190549345784898870234359792405503730509906323015450817284280462842441121578471256950372397278225009193247673860431079782350846512027570312280261216646360202898452443268817470238600163989143218664346719903856893629810803054101785791133210017200678164760853929876351827454752677919966093085147847330862450753520426744329259276726620099313469475094269396021327552816280630078475533706892176514428550330306303384333308815986588778771409365644819441933761813953935590891320931725348518239329678512076643317868045834225325140149767876737023173107744018337192046033588214226073567712061178126542427505308560426475227455131260386431699390612187616978335785101908742312524268104281614776101781846963211853758748648952446782135586963790025668846575362284115146928617956763938682240582398792791169772404184278607290136115396703223942153515453439084187974121072030121146984223578378248264938913085049846009277692187063828743445523376552333619423755028500173686458059684800921647833751936925434558981393918428101879050370956790767068412992893281542485017125711840607080144400684265477060357759443586013144683216824771930693347193270958523706536739189245021114230267500692151475755630144934642911570320873321047019702392850591319800473893097613083862414168022148540179142199543974916740186769676313031971143599444669779504307842697985008119265995808003541151204036517325684431184312955590296237749254629579957472343793856502677440594539460317811924009927682598402992334538070401834184016615715167635362473956402654077360904440740678292772594023524539663349624568356642751728193652117219371669846663092657196347084744025853530281041731924076523832018039516704294597051893196997329934278849420716561241540022354626295505171651146650107126866364990829383364974700419707258323265619044617155963662266218153694305443024554665645303306713772174674129481557318677845728964763242808021609855600669545041633629164093980090208773125392548523189509337520496158827633030905334908797975725379563523835479710929631966166457026615277799799758042343252611065654287673299237964852593110697674613715157053633409295952338644091188338157929992406687895525651638623735849167497414873548196328800061311540734392814071974924782717143594916914177312633097163524289096592498866464979971181560002478398907740580404845508585399213376394406212684997317841185196111418026928929745026483854428841242860489646926959636541171399728464148761327614825353537036299389170328720434174545405692634742300430440739489779208510494250878005771354679086415199011830984626781984776331661658736340548452242558325581779040891491036465616184942832365427353863368325792822880128763534415055482040003110424520332154694398159801962079142325344679488326807468319965336478013314814384187627554618217548846496599809298586486740297734036791904234503923349826176166644110043743480899359516527334437928145574832480396259627602888965325257688966244628671883216177045702079748821325126287462214331900280263739171642143831832906511244156533586155475408076229653907625503824661189528862702638386320908643618221772228951976425081424549314413777515521022078251093709788506169549913296471554628127512592121660560861215156413104421940997994705439878759713031567006184072628213386100131613138236415121910311486013793190899723421876038157986067116030717733491511172749815650417938667338889803210677036840697502051711820769127226399653872125447525860330099381838005044588463351052010236292807595187875907313894229654824258449575275843552394041754688606191536315111542160639582402977802760476571916627952928743953417687842219897243626156832268131774910349210845242035217173884688045659663374057388841776049601863837753735060090887305990996228483042736087015185956645854792114056368555708563096512378753407492475156522726427773065548344658226435909872636928885519105069203427572075901993751660890768322640020265994829856578810452385979417920550812812057033410917958950650105979245742488389276551310850105632521420554074901611862815644721412540770739189565935876547558254121771989117308855906601590507440132141771039133457250207049668596190515158327177436827325937146167131714438728745705826104494510329168136760537094456964986428963441492963694624992960735781304391304633557105274947155926101348590684663036147027912399458847750095605858237794780427156219211068246532149761811685141198481414644836218788127322793474101938352333052824886859651382302799169529159223698295236294851800338154466625639150428695716318182390896505813003399078526172207345017378959217063414430579127625755566779791054550074982586063636186828154145038330079141882164878251528192717790728022163524468967715844642542165554571347118694895882627520040829665667276428955588960961078641874512215930673995318601140595412422648698630912817070599303613502320567186296702063261503117236342809690444848581045849533581068469345155552618738785560548387802071527170687881763321053983563300821652422918207096503982855720639300713646368351716347771919318781271823188317371552309334392200645124214805629776792296719137550623801088478890606776765464039418746278168852661921542835350839706437954694789831982782198551230792545752366438954627183184056526784582851981933574001392662190641281051772533006432078185415427093432623113826041860247504873443348294651148041611038999255372238322018671900867019958446317249086066744421583696375718532060827683669544802968198843236994023628094952308968835777853573037388424235803250935462961263520024487395279846833759599797378261503639326313411960636699796664543484622429107984116666287061956521977165089262044739394729430058681312650821136175551768726224107539923247455715626472928452626103965801465783090899235896759927965815090167600968956159460341854691722634687465481832191391972069529289950420786637155494989938973442850621729069949026324946483974627897105437944701226308438396068649293341018113751456527813607867024774223858131207501713785618305809033902941088981152903098444652337365287533450043285308090474656197715742639590252777794484637408345991980954472759281820432753949617360999688565086572615569102138640368801479163735909190246489888295761343076063522915113766122958099205611780172515167605900381598761261605912864078836423292098102782119494238221220760352483542025316237070102299282091706289885678811531149505539244513015635373119498212164789027679694621741756032943184946073168224336123577769299968520778795585318873170997877426007075511299497378537409936422052975927078022860141085055555306198136967780578674663542800928460953953111100195425636439628094820031124480864316865413665104313124718817991931123220601270976722896936286942905970254550912105756934681658854525860139812998446983327821498131224547530198409103459125787459325675428908157576807715570401480385329251045894539540481556997074196011428816950020259830706646246313447643871813250881822445666453406433907401672376374942927477123885949480664878399479560735100863589417058597245732466392100041056421220186121513657494945739906997943368505242421082236434527776454616514530835180554646786799307718449187859363402465869386029938048885742706400052149755604298796447084311117030176838662726418919149736002890404824602283429671919768804638249964097710999607585296717925322400032439373715666183508657136938605676858618021909993741104743266256968753768940868863885714525040239301648957282079622343280325425429865029777842255826450715310615988693006228065947250480209440630550322544490523654681116575499340640339241700512091298150069468419049285160491644191279125719314556488324490663785783296401755718562059943776939592142253015900417757400539302236512662981443908943704308839603182158249974006894953469891022341159629065055490539099670996836347068143372506736672545248212038023138228185750452084872784707103386778547526058210410501379123256500387070735864572646342787521176166218864298197075281460270922829282763682567220908477814172013490090288171189895467124601105863449277313316184622386549593075813705323456568423165182719478851335897638918500431568451204805080532676030306387251399345335272818203010397714429489085248994819803103860104595631597860880794391563866739509404936835650376429255625525321189376301515319363761288134077862469475139921298627719273582077537165157407011371829977223012300990425018397756525656497533879701360021567990580537830181549706019051579110285222844400049321722270277703973713785007310959737216943236614637852058215498486305128411799035817108330388755384635297242262853215044635207794276533596246402234630118177192543988835712206378180642787841743915983178454887188393147929838420409197556082273751850055171132022152949422526230912798355353037227874666713850737690688611902888961763968526681421490714037732649401559641701597990420721677451613020241847267773155789212074267527212965671755807411941825547099517270281723974476244354567457365392093544920759627808800097415695435159199757318354250134943350976214863554456619742375303948228363322668333955070658931901697747590706305174926620696308755766327018726154987246716334146972989259342672550250109106387604988876254357597609851257408962413026037260524569601340599105505597496573890156056886667247483430598658757921993457216736872707721012580612519104533496823813450768421005384259360560868923147723022603376025405824082469673143322633739665898314221135632752311777843106888175245904953910702812656222930618225976286933253054228368729807220013346048957181032681670828279085600300191753448713672134711271012360868309682324774394988706196598771092760409243998522218229377080723379456073907638064425689882112263348701144135180561554067774459704491328565512862982004529241702851446888196930376591466104607071645478897858038138072250852124693991757950138403228166769755839670248820372568325884192861655434841126024814737206551879276079455645288384122934689881177445421971358992003820920867255384019890912094735289143062404188872478281266313063211998830875297917538285114188422342638924478755993542123808923403738398478382208286744682449517159990059708313628764638908868363712728198312301893659253177229884587869137433457126995593118254967277425164584518005031359238311903780057373953559410966280577954173678930412574345465292652716426006301639167262256293526235576194212795872538070552755995078638426893718666533582121199759200985639355169951068629561965425515938229086094248429775709959766066779449766585281810057414019836122300869181616227798386331189035058604696181719905229797472278092486081366839676108212467234474901495129090172526062177101920068784233824228917852235474145390018544733675548445947294091163384523491915147593352314800502493985928012481094529165068317545994679216785846011921176296286651126329167261450081965196646232491154740899050055853189501433753048352025744165414440609978130810245404881466008069085333216739901314214312068818047009479799884136765360486537318181441137315872940245006831671117439027157800925846055349646471906701372908350768581819043425550354813324444278648087563493728913093362547701277508234377109346349043598742565685789131967250711817448814392049499791583979943024225215644236664934121132484104703797177833214558340861406616160400837236943272870956645937925402290610642838202661792530531715267638364796764400471027646554493175397007838308184302128270155609312445432568359345757483418276567224030090669973996428273728328282990774916058827332672223484469995230423382663436361062629333173642195315646575662719467876459278184656443331343434443372574737501045561388373576107575129997847327778618944359621151581939404686556276751386779192667175586483580121368734827944855052941409024733578593602693673715753254384887815573683658703491297238617671284963228605705457906971975311986053454720411288766052280930899150526596557039087225038409096299789343884138862150036518727683610079332320253870226972825776758940722973321439983548146132888057232645614320256602433805155844973248855461295843175804669927503205197347638367737708756089187633472070966159363490766257938303740242530232776613904255041297854610626817594168453857196846546297847375485576257302177495256325866503463377711128332506679130552387598357441401044672524533570094111133822949446723122572583505775078842256614873195162596512535706662012696537516632532487604363255123913185699334551235887635456079841862961419939079553749514073143090385251557062051537217673079280783132934890642385003775507768180268561843947390140641759522737917938008735026930379798545627690120331224576066103533891154534544511011317400730840967000552073893043537347962004729477771609864970135242267274221314402404438640198048540997633029723987816959321036800373745106099250722570736525449150764183588051846393942821940278544994017594672804393798011028057283536410948361018428578663974640126060275354913231650975765111581958764108059375072203006502340680039998629199326088088176853461785053729644458807292629003793639037910150059700662749806121709221434824231246811407666665611476015529598188957978666016162203450828752339293773277918571010687009095393816995337999609102563702582157248777188481883893067438983179501741045243754117968672901401522244680851961422133697695034022714935490239025793563448754481728532321633450146986986453400297579066757153795777158078965016543149931715691361441125463820044858828211584280087426874544051417916099552377425531129908389063429536623979175883714905714017673127150264701493492844438361662484377901288509535846992920217218481798641679808406662189803202074946541647008308152558943651808215002207688654010715960841245076896359264497246950154949661718339450816762309417574879245926624864969513254426800476553168842972489295897955389971265172166556342621589013055834120511191285979372523154258646658809669963211444615041879149600887436225610307957315788398643960863106337696875395197967744927348245256010171682983252391538128311672554411945463155211114601444125301991396695582100519552693238955717035387761352160511635091578356761898030671567508562477418998853787426885380855643601046770259794301555021892459696331904641057285671289341454867429412565100365548392438237743783936956088661205282073712763381851771114006155079836218730099093797586060343439450060524042428716340585276430718600224352604397964273498413363471592026041714633746075105180034033466567409337699799951095922322834004938157293917236064055480144890846709915983098899734943197833697020265500071909402942414455081810889823829083357990886535851553208465697128130719888101073416435500019563485160520557158013248950586607682419897140282710657429727102095278442709835615224044749073368983852423451252999569795544932462568867398214286458744399335737657466110363109948743774417137189900307650073737801724041738163910964255517242045021558436113611893597504024498521189538010613415922335183396954373799748783068258941624256711074756764679695373264802086399628597926459825230077718649515011944638946005811332184394769311480980990277806227451886899269187089857651260872713899461755339882887712637667364170994524791562211962489489944605411899289707145152599072862392877227167044191288856210789460594368301929363151953618845639684056245212374472916194624041918931515704636396611874262468742632679368553147951790547987172773999602979650479993715505221085111223920862603226058954128440622290676832380614371930254575576888821060442678397892003234501179710071538857318033552956541817440686893616775940605706889802136104663967188029536266616455197585601187163190604798677076152036024742840461379031137796412335466625745242877192466289044390962954637058967688127844357546108397128036875493078129623115848809113140958665440026028180605868837169356934991631513101948013780109011143096761410807854823166752453789823824823049497856875517751372466808329531102386168546209023417144224161041372236043161278626643757522855968379989765281465759623357971351020839072978175984797631401422105210465831079244208433728720327559491938427003077289054263308834302022280689694684591778463694617054413658866982180378942652041291705141392328575107197255479125704836013027848028746626319279293363812837451348836021945014457314222731674255100900516780007273995455470213270409753218444487394187243764154856063912034206498138455683670542379458836715257974710849780702071835291536926604189119922768549054425686824094912082200871118982300204246431723051825154234864549663434595765216624294660356820161428157059043710623471743517478504645617828197678993141900188766634097136676334789690896540265285362826319033025703398935888247584481302472202428048447738935213917948974595074727341197302331413527422690348882384186782972122152131318195429238011497232260247971499794154200987734313957151919460309785014936270303169050443103315288491879317219254529168478979400420767966983578049538173447812038032284008127981056982145249129362409314939145167236559344333626381441405021083875769935886226052928007736123311856166738102379791730231427815515609273118552042061606060950017309349286067093526208222669722224588693750759866257003093594739172435723281949610735790191568650467239466443382045538202423109295235055549872704519661926686889661767715836639115600333100766109088867431930012064031460095093555375586197721957822566522237891069115865231365992996232931918754033013365900039926670344543892742854795719633009581075931295828600834252570893074878967523830848371645372294132596920519146767884844606366861879419102368692119004627232820642529682334205388328202507655489517412201374647216136335060427101120203679177772891699936150493491456185226605485630972967489315490145877538765766753621309373309380037113017626507305419295408619132406224229770406269992061724713835782829964526369502664554584226790963494996403459120666302001531208554073568194705528233588658800578446788678070106400106979826953622954025585667082784121629506160189621402258629104835885492452656278961283735279571214799750293664486751810815622213015616971956695541953784588658540396650088962743753270606581881638428433848391934637559263728659884770089009889971092788100800121087918207249435866121680086405887300112632193582830797163778057512027805552205838287082566161718580701743637503519486027462157577009305910846654623159753782297686729358016171480184211902617518193280743374661616520141926089176280459233965872090686947352180420729810467057822804892710029808415319173495271909666734290525822342436793667046515266449323037006598619423319934428003308061023886732315257181964608376074971885813294006492637232033692094842753929704577487039516254274838193123623790147477366934691234228388499936237238744459067263197669546934678923342501422189009530155363419504004860203843691973764395696014728212955709513775713159069055018658014553672095885694790200710989564881027453188763694798230526790170203278927637925530985379972916218263301382725285958843626738822341430159543986111800180956644660824223124805033120164473001122675434625488274894159961418401875249045252268834149053190598814457450445458010928654488485514683696128816431982247234437604619414543554573290018940400715295490263587008799667787440485611565744780425687677996919540477241984090785861252753173728256357610931153698614641396736785457853549299763082879969963998823023073348003735552417677166077862865111241122115283261361975896221267724909879839129729119858190114636765754123468288205343096212341181634070524994915011012573471604189155297969432097718019659503810675726360184730071598698818754827266615676705840455986200812918056206773811610934749557662851397031710624722853645394366890535908257927017543562995237008338049665287670503633973929643951207300358491164399872961047098705045650077132008966307458796064853177313064466540525922511266582560181174979148983706849160421896217137348477827585996428682060472580640935075950209886572724152759828168800584529659090009505930776600513047403769607454112993831235683749201073823436962191621829114721019998064752555765117033691924408794123054873142375364474000638069081594687010571634984494533450442563600769831223292163290659419333209849002818195093331983635930810276264861035439770042813939206142231370291112555030670163670856459158090687334322509555900096070664682974959033121050023334544897470533498924374863337441664718623618618671879684124900089313428864950340451606629304287733248750270152444556073033045554727258244488496373469905993245970692364913868815112148805515712171552885812609078377083416319648489601651886052833904952005675076403337166770371712155799870161590384715631909370343350301254781521001228289505824471401535563731851779448460937250798440170753110174767086662719964275532841050184050978183211402353831965564492831843529900051047796832218966588610240983179572748677359135706641252242811397341842040897309563945736780134461856333199484033580500633131981473181914901469780514812465838732946432684713584038427022942172692347288907468371248394371352111647047958203941565750914642892983773182644824806381159133941575478089029636143161810900185207189023559469241429281465851688738817210882544650989811772540421230528349214360224863686168270972473159025469627716037460106274229013575685743628565217146518907634978045871303774555704128937945544234188626613967331690064356841815618754588488674587490336735017109897038505949321160750667053577444610139792594431062736360919692065301629031752317600070453410042736774503558970786696461045036976957939195010160729988116339874196200601671892464284664616773822743262134936231901089132970847110394062715755257146697930096862794649354344293340194963630550963154803865116759762885483481173004372854647509676216945148066510363133696628703633480268653235638120803220428153376918900915644011621960969430369610066332506140051848241805094222638610404597849544222236431508131670878011425096649692461718149154866976028744274028869184265961674480521699189135412945533419817107729434607851698151384543856087779085158087188801662522398429951258348363211691672213603648250585432465565561371255738481367042278516107857945900224876367729844713604556880593141259593299818420420862721544225908504279947570641691718345766078490042239504885225345405216651586234749774752803739953164441126081754097488747316702652484566591621824320326393330264431652550325646150959525873238247609035577343979157577368424549235452667469365807503471186568075153492310059019083416107965615623060754618898369633573765753894333417180699062952595906646072053448029323457928750533719924321599238439618547349179774891498266996561785272426772354819427509761573224414132026941891756982979079608135732186088195320865594849459945749771473800810939065266937069832053426965768267492384707977794189196479132646655971770972868288610035326617918474494144964193200010362012950989296948298148282082165752741257756870608341051507161586442006188564718889225341556298716711948997863108087169654407091350839996073753435473437422203016420651665961079661063985403390993237484860486122184678442027681459091090836932728220601994753270607334315344284357602479487676667252386897983303762713667327603746957357789165558358602982008599290669774680224394378112064690512816526086216302482955322615956176779566033311148915717904970202908531582502223079861029582888863591690348153228594641352909067931868911416579460816346988516065359269956370050317832907734233802201646279519611004098055278594005112029239211133632062669907929575112505992470620825230736516795915867220561636804723116359630901742258920771085931792521115802572193063384237002023419588571898433480689783794216661439673858305435986893925478400883907394810386028914399781177874116510083289183666951440186521572720292518906856494303792769013978178984136512916699080357833786370409081781784787146552740907751579820217397831808816745958164401320681761885905091976127648883569891285482872429072960282175733671977932386569712515931882865626100218759719872058147483571409285366056692224944989631151936085294858591861605267420374819221375279390225794014946024039455302126846426559973406483139119779069886018270030204480472685182465156918998666678809073187516141608606646899316439262331888546265647451454758208089028024651999862042525682483736565993115333345009797184204732362506843547223823328812400119044913434048205951106648965939837865750700290221039026324836538784141875987914908209644805187443050802948252797707222839563795685322294680596595780571962774780927967856801196556935296579030944523743072776050739114344945701247786212503630076976057757373148457069312257072507053761004738770363565994959512400107008828593743377825880016331326905190608896550032110624913141044833710726760295169554309047035241967534118897636458258696298366650798126964986275721357624293388720305354355351568981083699764200738988698726172295969938381444577498871453042320577070380527175296202231527195674971772013230743697773803968221147634070674326525674115102343066093255224290448490156805289770093682374933621454537044813122165561006159794734315778676006908333772824672482658645525625405966914445622501993624243233813448960005497597836077388681871141998145120116738991979892685040252777874807675214672300965578525099279383439181892629853052400845459539699428976503126242676549607110409894720881818281020120949048463691552443293562784329911908323637224941055953177569359710081296506344065928239013258391428010863069473013027508544136543250477298921403269784174761575903595741994356379083915335979494039379594739671725951334654355500080201521876183683530164051931358337699154055015439748990860835808940985100618457892633395470962940297222743913658399869947157022108862534628531433076536473985573150242985913687517626810522977913040859851387577389817218213266232952604863337620480992037852785090729627453961277555445339948917214309190131017269173831647667320060899757030983763592485795916899220242380540235302240693533862845927745884488317842148542853168133757719930501836294851263646538141294264623118490608345936403952648511453430665979495607762701169001194077745253798726863618493635204291706397694404872848195098825478211362430029121643737358015079815790293615487083426156364690411434927559216636056374390573372987173063875683486156697304891006703289605356875062355666951344297387310191233495752815359053630062028357382917582567817655056090992831325238736414186477947008395992255812788522002028737827949837364101400132281760226654643508921490800218032540720430347026765144684691290405317773287834828636780114706127770954547551657618554560460190050834116505836381818633106362571196324215823939960631680106124885973733559227725067007073479333208430647474455439402100679949281970250419795353484975376002076203663401285760234524165980767108896188217007544546401826891455210106282574313017458467440291296072522667231826051490497167370773562163494529464879457082062388533566750271888983772121744180935937179065935434703339244107010690175461039822373121178158680871626409300486488589876413094704220716996649878080891439258201849534215364890760038821325565867981644354862897835639450466103745445193696453855514007515003466650621312802956117478750099533938897921467175402260192217829880235418060069722548637750091060539922783858166842295403366554553671335868902620275613870352346386842845953177834815638430145579878333409634071722621102570838638396029629239648627288752708853269677780096454884359274804902265255793872614888274885399110480794414687677208943092194368707460809428912554744577358562709133656621948793938894390641690185052823318439452289871850138880308252640243070003504268891713428500930024913582337561417576707768422781717144712978978909506572663177295990408975690655451306091286249332948411635025158420421711092984104153900773870021016230692509550761593337008602756004543342272003787994306439456241504565356867259189330818078847221413496451290292194864989449019400500545556306152050318766951710759696683144319495192848467458246260798129918472859971157370880687268785406553427357914752953936015558408804413402900327495912033646667469950813359495287024856193774747411376810785170023785541903604606150315119638568309433018208991395897222857742602078468745180861093747763482572454341673658013463806256435845219074219875438133126803675394189398803689815198796794347553738189289316681082361358913091014476959531708922902885461927069329741247387946217805419227012584014176611169852185114673703541195548807730778777369557645670257937384509033498204784139001090275695234809292916679691682234000341189331720450131016815352697271726584688693763957769787725561299871786174769111730168339513359157766109118404953260767408593267627260356820626956818261841594728545466576941220767330821518722633118105219411238532892552451711281021798202447030662682684672156970233183913805787532981565046233947382759571882785856063778181437956342974051090172607282366754487085380099159388398477413138683696576093774759856634970252163904108006008359750447913714963968063858232399944313785274344803721269903904062300502601647908648981593179817662768990057781965019105566892049615561046488984509925268055090000633178888547041900167284417019068351117085816283068042563779888779865207454563415484683791994257929189519782066324688717203064949897477687393324807625940341680343800757735208202602084331560238446650256107157930413766869310947056519870581923200392535078499763799053148104163497082428780843337742691773477902332633688195829628066339282740488948818622400281579008861154847802483851177151979444521207149500395405058328034158801893674997502916052684741770877396490790813834548344330182431340602904850158560525100473213057101712124973942216480590437176479400498452343382751788379228793588554210556250373820816268755017701552329902853572337425976723694230133232685205396364333324432849305250611873209286498892477299755375678715563316654423282554520150562680817394053983422534575809876517086083844245896648899735209666244558604613853149978039263119926064516042322187268678003638921411131967083235572013358044394935550182445417571337261239825928448328454307746591170459548522525255742423064877338053332591215678291396067350976494694509396526658265076111864104648914529351598128510877603204693784045687704221379773349818256064463779185177817067907674322541839525322174149184269756050217289564038432309721704840208332738229236256986518036649450596673355662072713544512119334077302899341146643382805127973376338888322532171048374225294813722358987501384731228906533978759215027260127963860016682193322572968976204856854072603843932969154321106812181725683744710542783731084996309102373814850346111934884004593927823799602161288404170198257863859964664780855513818139444986071888617719790916932650369472862624078519254854118124166970730519034121996672522493744427204230981995631105888465432403895284399604293974243893115730365975771798865333167396476896422094276549989968056430851034056147315320632487215435702789323355351614669234728830913620503574098820190408462488989387262250591606569130784461728469230042674885662077962396817896513155912176448957660801977754552198777301448515870205558908182794335378391444077190587469655175902869837051300963030705057443657952738795075473182960876057760462134582809338197087649777325528712414895512209469792904035235872032825790362734959198534975521582512944155038813913808352703932281070917040089197961394008165204954939003556123623732383066944217148436765042430150421185779231649869931158582264862474892431535187576489624336620319955034063230580831053413464020253846487169505781360644893600842602934387371079186095504168619666967843472288453736481872665914750212204837666037160699806726425538832405576504178105143903099385601102517239097292012184901939243918564141782532138691960733751936428578674327938799846274029336909849183348245149534067830176339544406845639063717041356532290005237319695233377607291671182880076659874453015758023957873915869985614389839739079376205018062316628786765959528296003295953936031317030113214522036933040556649358810758027197133390379595206363948518856807079213205633113719554483379491138336407917141325794136790098299281994066831200668213298484175036529711892954663562520894362141093380037833373753629479497846000726492033458006900320810338113737759946147059993505972967926802254053547377384981059141471106984186604415414044083539718967844831951537836099889953116092883532905508050005911212411809050940164318742989515430145025615027652829204233720833244117422694515626518983084490571711977024886567019754746678860166617899679399697627243663250909411616549580391462350029058492973180452616770202951083230285727096985079831859229246321496622714272850367549576345368634856977478952888274223706021460793033720176493729551132678871626792217585304248996635713614675840203991570099736948311158089845006040705727407798813133145184405938260702858870358762455970947794667730184165211352033128048472583911676211384598315029562698918553333228244752337577079542687822422266929654902485406017546007611616767526124159890780703617774061752680172621787735648922939252277666679644595756135342017007729708473461360084866223436069387418244186408850686833861828716119407978289605975591474327580102788955051431046217276769083989633986520623064071081854105910505174655527064906438866090894854399469797266248695597284506172367473383868792615222344979986671103878411034962919023470637048117682671927980739072494959547233516488353838878028309993787255389030299416458759046759132332254548262277958037000137052598668221756747831595339724527575602791878227490356224943183774206826888196880660599524789455990361467866770677276111900586144418632130982136980882740589093718805943274678750738590312554504999409851732757194447862542157430359787594997729155180280575141915723113385893307745891443987946120406741956203324908758975872447205378926033165796633497383120016738239292022598802893304521387708702147741967640748994554766262312651514755673718692630980419735496081055018796388975995248122947983900118207000988589461445845463046732454070723687096751500019544693767104850009528482289169235744274722875170005859341831888961176785282707117741321825352021887555209000872335305529275470285343468035723114244344124285708071361459401723958053456094750880049969176691921182139810600892006799020819633933251661799661583070463517773778942583333190062954797281447661315934358160882788948320048485369609343156352652235800013322201056153904548947280176729509522470701961576664984172615471279919503918054644663142675746763530260772730164889638873564707292426785849595234476378014022137035647159229870256532117845273133330712574775256670807750864355994734837809239857196683580360701026325687120016805903130555572691892294119292999397051735443231390891404328994002653865382828452691836419581384271834454206500655739366568713667583766843229617518592898039512376706122749237216793005257208463992731858230577808592160771712058932908636951088185290530537511547439367582365189197016474312005797477797223233709515798374889022185842200661955148002923284710077649472688572290999409103983707809826544107112817441028223187070762320408160737985124534355661603496035019337438250484191772559006584720566335206225940891477135041823305851404004290377216339928455816252080812854062665055046866097984779257506781405806546831578590196048651944232671295250534379676886956289320663748726972940400766550248193012511047212558588000680282550783306705539785404163088104415885096581549743636193007084624772803623902906131803034732487956812865448128237850412023180238387190178436525118716704711158928787771327931881038512783070735902301111452576196312868760435598795691185534720571578712210149062242625171868387395302692375582942172845248447649641023091603852572063667853776439393398151825784284948037889523946367979794339376276867699902475063490601479011595585973639724543744186714773359609821532180237931121330950902056576202265036993320812936612989108189151899893130395383260899951958166646613645620346697148842426270874155187267061184893407392840502209495172209464825844384585498300500524908153851337245210394577727873855018201263673464677015726793362153573961274981147973464752221513272300275269017203110260073591997813282590203835809354722598611074090264359997309712715401405350418379903389878381120968361301194339592158977604470696751762056944385021804629945231994602452462695529277714179217217746194217893037385655835513838137243534835887693454736474093150501903853511415546433887378332811972915961055972022582112040868268847074063376659920516981930086036105645154603552312469794551235608832751248669773481368422629534219584077370799636784107407034820071011894844885553518309026827371995793222297280252136330877971266263894991852603579289526188748618097977441860196600787615097676184662422910329353005512467430299347312159597320987182251144318268018224709188432491917704038030629881322581263694659540885510146869395235430850698469179461162502964313410486075885295600139775668184866585356907557627469202614215305575464532984486011929625831240556762455558544949380659414774136052194951861145500497785886429702919865256461303084236941797707757496615912475615155839997455890345407857815945449817107118553549624232083416308347417599218712538431407846031645866606693341567566509498791350879701473552297699168982981920947699385987985485194650280166801243584428772074324945135121948259426916272728857018046857840286405297249525674968892095056625049893441226020983309284496980988592732644223495185124643088300727762552048449394892349964727194280889614850552126499791023020084595347166649951936476690990443779667795875693707303136370113578669516747529795627494428051349013876553132488368284573069671169278757405358873753855189951524939116679572419987162283105776947412409311619422402545303413993982543426587325427683733488399931929894476237999475472600125212983832758233885520391503970802761091910923591337835636657424813835570498313163910183772417220665940351424529437123102391351931591656306570630760680299365711062000517431076692826337513092053629602352151977972821609533560759333063952277284838376299204654103906745521364893893922705855887578131082673696125159585804771479285331454282802605236678735215070101168712318585489667334859321762139163413440404214444230343012926443333644249848370223480657166033876040272703339132898076985873989331443711518530546630390433426293174110240040889396317652080751330304453071324285792001280885598513062879493443993171658942764816601260018833701142624601602898241653897694385184196451198710477962466936765428396636579108340190068895091275052739736955583392686628289460307885629037653918701210008921739219047377508418940516911793483745519516883463635773783938070218914224228518005124165711580467049632689983687505484004626125106271955578455371205133376838085652519586474267275236972193420513945765500699044513280031142639415684198928052698080689753218327576198295247753679076641428024142342019461421096292692405020885854577939570155903679508596033143609385184077789714497172882788878571595858287276597701992058158602436257740631392125223958145255024969857084099782715665516352062937510447522189593339430017316739001951278150889719869835503418159274072409796059847368066965053663288219626142536953878711416290733762739097332072821953850131902298538798282000714831839331001076149644402196323277620920672807566948480234472120344564468379207073594342173165498602718962126291758343158083012425996282303457779610688137199673520739611206956985091429177342752090407096830502422585263883162410637335192557309353674892530502231940500109160293200022060575472051142066287844503864164475147783180202938657338459712910998973292954078255805697969582115380748817169286586821132873996495316596169817648463838243450146918946655207401514016198328842919640620671042939584631482370143533378028374052136832508819140626996803817371356740000485834498316136419812341182910587868469127372861630614851771563483788096414500896774359566941372511998100021329133883223571485581997803882343063815431985783321918988685931587047811591122992976005210312906709510263707808974617756664593049644742740755206432486161794153375440620439398745086394530246309838305579603675179837600440587655973699129795812310525489828646951978612358162099404054056634686972870741410180321144011431974227212629188950670053973796758403810104920447035202383710416625734093220372719998541629287818687503651943444236422461262156661019586749709144421990793149795106623477624797846962577106495491320560947037206601587402098390597182354338454054057266269215654867120648699755464834668422448530090594662758562515706209535006183320560880102937682515666927916338661639012014776866348073308134401546351037646364656737779069711019779296185438506899593090609927242359482619747369646115516853119977518443490659690924934271651835913303792941567172254109813707317178374714320441148980997045508831202306189817741314798017234755225851415125813906669676226600133219746192647046358437700400254952863399840756914853847814594563767933915886347311018814217816668399467606496087957042160691838133344979132634587012563575269722899481395982606517290830874096475318885284572418446538528607915284274157853814636771458211664300816889763049216018151000151575800028105255268084096858802377748304181647866467603991201840953308930741359352803769174097549238523610378479393353772600765229619414717829291946351347397099305583023082082911173110137818132166505970533818125485806090652353237911151002167347275908828214499399718574317320113653336168412643288847395150528904942340339942154540103525195417571852094620727908404875037022636036015380789477234689338872793346758463174092554861002757738027872031044670023663916252653829380255571668411147909185117090735468461727561402855178692544501268480053234419219372999243068238459596277595870035054399828898567882282410364567776631911187322315998382353943733932206405373344238656243381927900340578330350808868127627287788064753011481810079038081122993229886925505523422940927602547610875201257020201492990777357750145343296944019421311857303941173227282671595990438921464482235874658325888702902576884632124225496980486793398481442603612479780857146851595800408222531021985267458800788019863253260758015596546596152765639556512657145282628860947321161589817845305407315907681295260738339248252723189834808290414261476212002147364508035642608662557730406017983647852618477415203686747968725361100586540556277459920303891261202529931105435057312375964766805581725758294884633698395614538749855389847089543437152587349349165765609722434885526648674072388567518701057161875794355058843485602433274329793276006608691155247031284026303921097120212144016518597970192709870851311466627399998010453401277624412707673822748930195635904225548116659831527942866266686993041321051723487653940735762452409045491401883297390787011128690222428768923422293615614075887837032558403269805387409089994215293644616643368168816016508256667457213132081938271374226435002526691770981121658758834640165583864005245839238865900284400147202844736849265611597405075738779110741567172373015878089345246845260768225064340381986124619627414933674042946395271077560467311049478735579792274247839027964293944900093582538754918216669740781126361343536908155587620876054921636580233981872188981124425864517974815080455304327142964739608927575108104239987254373973945207785171438459130586594399079816585369544748459843933353893781290335843826335069585009934335054102377123397463168978775148655675377511385429121909267550008769830815328025982483102855477426619712598700712220747270169494098710747571122578115199450823041805972826384048866007898516733545609008106508164575297262098146519591534408170544488698813641078034641479746114919478648930545975367704855426896234809789590460711807958788663057725798037495656008818392690994747518593448565052822769237552531608364499902602569215714548845490441360591951456052154045482944935087407252766333515435059295017164564393317398629833817689729292161930267909440844750083136998152991758809455571451672390176677189461413062683805183601303731336158325712901527944892670384888823703567591222940808179366984357468236001878364995102614886389881664066897839847525221450430690498126495352116140428435267717302538809661581136451125721353638047606774331983499537625511260649046456813446295746598901276213167655367485581826762318480655022752826738155173069011063408876650532076707008718637965127502242047327419782905363388601232479053267130647169101102380731576993877545824872804528422828841874213328382255757878194600573457377988368726599456060741934171554429812315575607523383117882027919604162396721781948824010122709179733946978464268679565906132903371563712493461731381251322791778497276129429914222375221563210855990177271372626831178901173603397153318912996039927785139034934049388081488557346678007437307989179826352209107524804786712810804687049060632283373536513664194491188588598906739977974533882931421690641072227120129732722279595293787929038259890650268943734010394327041813447109163435577675734273617792555353245266145529818585217437749207304510816174017723184348202417555782888339049879731464581238935770275623796616423514860724299391322364060464572317723240214112025769300504602954858238256291570165170213587459405023940051414583257185682353344904098313570552532619545591758565292353354939248090297836784928354769711827240083964011018074382020059310008686102299297719101869021580493747709788599953109838460657275056333142879046676745245668759430846273319003699357547537245153018768182999923565324004694127190469756165198306412884125332598935931247888877284945394952629067956304360706452377754379442073780232619779882454872170055081813181560589522592385863700728428340114728850288386630628049867358775663184865028791119669296876281465976042363928076898777890999188527810223596486922787394072140955978201049986205009478434800659579940475303040717800760493804706629951436521876465131543951696050542608240128631056530123448826431654161889357772181107947732811955868994062099694524763885848577569605425586690822341192070162791991719349379317447993212798961981685510349045514040329053242960290603033745543804974450864027131685334766240037472424812255803472736502744037164797641267488885676311683060557966164985583194672555053889475181824407358428797258256831518553346305889735774105926612401724367455814855046913697628295191357547509027743114339015710759061055158728230724671055513989176749906180805563895780681129582513243068238088683225519524373965771949143197874296739829034284348664607928482717874364070697293329816046687521160672637226527862329700702517923282282256381827153686466730829397717549631963881151950603718790517759102413244184040362483908194339925177376937881222212111185117217443061884261635495391320284909140484131259201869482949547793104909497997239655491322273495197735217378793376572706596126183135220292504081642182133390787086273993558155524601376040684966629591368296487927391010512475056484950860813269053436980960430244751727711079849416510086058506836242671137862484740656825299648033809260080893269722339001482098934388623359001005943625424731796049174933697000815983590256649291863930451627904547536510692185824344638611889306589169127411277212194816472680479377895636370322679571479025411274719648262559118156531876340401527578342099265348454682370218112473336848909615897950257845931027136423105548805028738002412965014043087854467851371359207905831075699021742176984192908855413561116601996321013679816484943951875371120556736068087976065842005766106930584902460009025562535264966388761142823708373800258575180209629354873693475977785054695974370593578483353067383561695146943179701776644631610898764169626622265770624567494300489729053373709618101197100659459885695277325747192364090588290024593763722451724259430187074730045378636712177429753293539070175692721496242471415657638637605912675601374315891445742173113854142775356953128939285395620221604130351126349452710153098590697735574282207550638347239770679043282641760879284694996267384799544260389843907360933347266886450709049529825346697896776112512045546753200163235585229815245560805259487190343290431502968672244665241907850457782657770582165835009969470771400940277644807771954314538427212097767625259753750136507993593724623671060346588659959627623677644632786564505773715748996063072264056231991094630088809611622861395892018612865426796072902542202990766325723406242738927752476586222351476796912543293612371101133374054248227629647963991115133420794652325432186620018866748011104316081490983759485537649319189553993404904769524479073815644011935113372125461141134233149156072366455737397093710538548337823708782956237916448040534389653708032303204734036716456637096493600021201142206558053821833891075752700182994816719973387232809856148731854209214883623628675785242963464542062291126941739219322155757770171161605257089303738176879526696827421574012543861074508527864164165216425028517896939068883224430237209458569021777729645657851936951422063902618306147899262374299747090643757848735638005893583472947178386629102173188724179935655213811328159592040756003995490385979999231758193831473172082211446607481007328198611336739403401030110378655992655966393332676630271481407455135844813368960454200057653846678845422799402414332216629088260221430227838292637653593488301880920603306971602830118108819472789552489931443360514728904189561420879886047294788006665182953267973397424526847064865117825581431918730573891056022140269172075245629433880222381290513271651895968260121440527926644532120218943071004971926717925599937092275053249240447058990706689340197351930775828205652222371570546533114554272279052448740014048802214395360400212280231955182861510588790879565291564092997484948129712145032477635113971491023277900888286355937081137314186530049486886981895088188124698020457510566619536617795540816774555788496155363421852103180727019090868508066864760457680721621837741725719008193880953977768368229382754500745217466398142630960100609204799705537861169556629137274015121679015580274623524487033541785777328610867726895326205841653793806311344319007988092470567309764495548276277236174193548255295159176815557110912016104085811642944089172918979455199324829262469861332654074734087187626308551314201986345342534998315459337338316517288044407497548712102477176801532309755894366337802132366533359160645325725619646793014556071062193477763869970448329274589597694030093599231494633003784420985519464743755798225426579298859115392609811662159392697372930109731164882322332956716109834679079816819178770414694624630538872520820135502559895447788905256038266658861751110752452102840735473533431626815688767000604518907307848884900406776229957437006323584453337602871779028195011691033830036437774967232428011657387161309401797153475051308064600158682492368367217624264377532806059593076907821684746891010509072448074835621834446858411157697040183856016593660344685513740160846404012672806544525131044976695902467506369174977683797232475031468414013002469681942780961771284604911631818425272063510868817827630148028226099115535751646903207418902800046427189868814192727084765708802436317849672746759064221165177125064021094352955266538323766712738287991338437328574831144536256827257182935189511165235759051281114537759327689083953628109583849209547965363856221883801534744858909264528157726755701006168286732582644952594336645328890575353676978674790350274218919326206754287735954930305372425247530886541487986653027898993078169214606064859872740538897633372295977770962869382634239427480369336620238700951815611167532378478012682825084062274432365155571106560719643166490968779937010624622114774683532801650261049749065489209705418668312246531732668772265265888071892112662604617351184355874281409622937297785144874984027727630528146528568520576607475729516942701356599227025307885175417863821610507621492482853403187311400476297510435888032168893957909937911070465719458002343653561921399405459667377952563226413126268751854791189538237196184073441838746210539104769220676287594758407494106902884390674965699826913324198554006401350307227881119906236893195772836240170080094852256006937855861554576969287318043835831870575150437890738458616244231176278946359648542617789879547369694558244907513700953260396926007792035512487455554239886394008667407684446685827684274180635854723303743118626228694682028272480405856192948825040624071969992367438889504203963740215301603692538538683274601144748883106184714219557249513117093351342426980716833476284487189208625164115452935983172689805965072400479714174679591169756220112419059312372668262891517355908457382119613251464989668163204166509631866310975681162051413229364079442657447167454908068078592164699490429505785801286806606580829697206616943140868188301171465341645315701643773546056935567573030469159989474358152547813873008444513117930162235775812148792625136726179997132296057144060701596527851068357782555220386137912263358818918780754336780108974347246328378192844052610264241005128569661848628728905353313563635333073138162939536903332131276754786620500112388333776925450667557254790488884671049010494729146571552873142080785682111660159772610742313506653899947956998365594087238529179385607314318799313210982804061991198793883952076031168377437981692147422593914815017458340317798559804476328168791146673558139808726255871892500574985239370606972358238560597295604062101519850378213358028446198707713963902087523600810718630566532555179276249731897824668875548687656915236541247429119540511513218256861220450801704960172592695823250309967779174832377255497095712055685685105219711878960052414749125936177237304881992123151240691395805465604422613335682784753548228770137494159095271587229262216153965842651841899632497484281557931215742803702530715044242762139746761622426976535984642890634079059947154540309665227111172775094070271857975810244541319114155773118978171696751862640785480502650138230129334753345490588996554097178239270467586443494125154625938363015996295677981932623555232559080047490094078732155621699930610415613140894338606604341333991054132852094277640059411410221746119636788101620232621562191104210981233510884153982888397941801485151070890526624504031465812731999500741100379102023979869509479057679861922804247745045337868812205688403721110954555309866890035507310499110875444108223488054147995258562920428102341592325601931686402363065002043972169710373670800903433443015044324361260392261431498554345538146497669366100354669994787844251604930058214015257056569800842732158288317367933339478547398150161776702172535961686755707154313982281800217712851596900362654688498135919052631556886179303593716695498954573788372691833770522704612024393649043836811620153770337924447106888296448270738649730337440057763815207150360635873631654513549201247863313280619560028826246059632974161476209100259088453535761915360910509478455085623139889770183470804621816795458633896588080842977812986963045148710903270020590457478136879687676592941251023045168625451950909553785234297619234564152672752075333858895979830855529325756677229510881348339921599508323225467872198922451648006137724301675804569490912031647735422335275297667459423034938110542907757757412398870414864936013625970039279595703269573690921636762500585019932922601709109104586054789076586992565270039305570507495958620046126673505831158608739168514956014740433200571370901387375551994559624297225310503476591475006126784347906975700612154414544075770922138722501504958826536347060873404659569218102322375751018689310475789388122122945342112568550280681188669436689768582325094102796147031075715444387119097470639494377556662418724348347168394039340579347947615691395088806804283311724720815034009407343599044711876937485944010992095817637178325040537564366077637548679455731622512059104045579885283651641411325434595563573344792280149838208120342161320789797907691507627988780569048466658227655846248243379431344924880646313192205841661675980425134156976696518565354264715044801378667933369668099809892438189528728375112260911098122050260670004619923663736338155726422074724637344356261923903348042206850693660683405767687960260760062775184755770069538452916140428645803644452847143404576789754739139663937441168851041006298001728038388614339356832949441134005030891028925972638341514678582404792765440645558162565886792327265558699063830020983694460117366933704568199458638072262707841502835601374369499829215041332057838231883961958135385918751645469226633586114190727210032872815660580347211859217611790755380444679803793884185435166347060722195654878626409404409188807853194269221735936405901490332816584630976463225172944766571753042845153615596630981238370245376513283853738241322080907711961929265184469995760812817179870262102841891732440998166207099982745192113945407888503587943818796577631996526614247914560422156873878700759423116705768196635403893947929846658737072722793073790234684755554454023162689818004055746016604042689179925415113467146840541655181118555118548456589664635250439674386689571058778267881784528311348921606572496481199649746785589508676931732490662071047544158760860530171429586214907417910585078303430272173429014785012256177801877890566083488248162101041174367370109575102019480357921057708629640871037641292472496064694429847759131357218638080357322193911895669544508039370067030597096340161293545075328171097819836067434724970059977382693378007789286360741492993574911886631469430731288312292922268165199152661319889078679222434093990464707927575339453693906988193812505367794133382978165096467310864383230393075354686324448700356052445369790554589412532372886409255756942961432747173545974693633366990609153328435864891149603998951893483060920026383172993019124251093676030558519882807633686092659365781541802573429140197718712436477788878709787202314292714030449880055914239884113584310876830334555935222970655037491898395473780084087903960090930505338283303087182343521602616577269041164258933928276004027528901977157316225664541164731355850376334112046740742582511884879923217805406091519812371220894656307845821996602263174798416533683503018119792798171186174604338110572028078918032923767331278472210760474883602978938311528047552115470670299476542144190014453990870254796103236406848040228875574545991759143038351513634732530635351945265448045036721944549908905685784425918937992657945621912958577089105425584231166685408173627232609702955690696867044140999812283712198331832483719193833742334704302313270875673840723499445833712735605927344321910380614202995523003790200180629507320031081265022362617881744752437951705414844529268413313094324482285847927174597493748561681613897286880939251485152826912292418602569971505658542087403326033359798294778181961597096797889528321023276215658676270396717487288230610574279043013936284054138505765604318333836178522784974163600177169068897796898054784570460966646263467979422306858878771218663706178066440538343974328480634959049320954800379742659574028741623113481343548895291913471204923693352367197482182247750750206064452138656372058096919878348653162139659950908251021767047085859623867355156826649601568095277627202734068816684478746292559402763772591469080608374110506568968772168324656914782893525915246856509610448318097018555729193737173961909094957696695586599103946723664532220122497333121313674751389146490612779398466306012778942948065141162083058073356453553528911665833747867479015560278723887422524849493757463680991147268888595860169862405901009060053704254847900766099675568217102758671093895585790989453558687942399637747861526921685752511883261930549240053411858343210877965924873703321020551846397368666890284506204850569717032730892457347649484333427469216967379738925502058106382490672195525926340507081061271029836115507988253303966658357045043596112677866620892063114046749917215887281321387703867390734125693468753615329868911803793568920651739972798137583448893493164157523094819463271811413970069877330365162995879655047207964426322791666885210545212523716517850166342766341477567729603232736340915463248094460005372998444901647150519980695756646869617378571917205147947229263260112539330578563154205015617801015316422161167258686388932905887618983251671602229710315572399807809902601374928472100953430986080026934888600070839053942578539462273363972809616430766097748135506994722364980415197282283547377486225435606463331015188406418681874202626560469545469311605844630909017256983987226387663142062205492311967494387900906181561747702459529333684053460204418836412161697546952033261522264066813210817278806003916436101849965050509510705626527582418856131293272110925587153996795956306139648371766459302895777605436997845408147526355362476129492327156832313723118728333723968535947828160989703185918462183808470008988047464750924542018685422038944251571801907240914072429364675101649897790411218132999981125114149105578644574213655932444307992376976519586518078069765398744522644141070072825458989804870478641763922153433193422827416683105522013870188515269137611259884790540303266759544570070694468847441122308902136865275471066127423492238244904666930779128360999913715799403763741294142157337694273806058669735744053033751252822891193711451695573479466953666794428046207633049605400922111356635564592316642328728649828845826420767710565572737963266891780223719801883611308780016968068079726603477776136868942540081158210057253556270306892219015287312249407786665239776228845045639325697933609640387350223167469781118279870850541322662617594842465967932962472190749978617557167096764220580798397506925122744821542552043262181289976826932570842885683693151842449638914524112977739305042365723022870120913766344029885252695377121212047764773684643048574302695461886405605149234379449960625026912073454052229472868930227094646007895463083388318352612366697526469765501471397096700606805383015856491644058413452492766076409282016763864134729296550536267778753723876211268520937675764067702076973313601814498407190000812830391045888357796883815352808043484177670630778128579036879459331908263326708756622079464561751268019486597390053558235914549880628449674310966241195586535883538803033440948389653643193144892954068810085819207219226908992301129740885538363203504840826893773865705046481967885253618531923020769899167875406307880557936351691795493915418644163993088644900887726344152798430324858868433619279236259629850775587343632747376282966594037051376604843758669214731287217271766335722457413675009594828295134266144593693247298053409768586297403053419187023983510856409732951261778875580217763995538598614991002488797420782220489001552158116631317977704356203182600156142787153343078520254517484933901096929172142926321543481148491521726413673728735856113552339491161839487410804520047627222383541994341096568880483589436450526334888520849664733974136567717136942455319645329536231454801871507228311631127196685121270201629341282996614710945986052880164724806972471303364112393490394105049180794174731760879625240951832457007852152860738061837151947525232484351496108868811755664507936047544314512322556084701152157817096709447216893681047517866020215322002057162445637653675287527895505469874741790942388015157854976984163276867191908297763951243196858037065193663688111685021385890698317409577248662110653935471307445563311410110603457596585673342861088069713893883836256108699295704684655058180388172237994796284014026675031253963558496076739350616128508105780051648845740733959854305171885781355507325584610212982613821185727983521301321500191368250853826699005928680629274832090612542788346490545132462429591764759429577623375060961078858001718263135451119552425696447586016622888718568625520920983713359020322815666770075744874666022809579307879576608679360027378444431204992939311653347922559143404821463559939320104207961852462575635521983854386571926165659978064275017342692159297652520782300908335245625993718560841893984129706691186824219610776148200813853542595526834476273142612529064820659889853828596498435723861299957291496653804848079198506651943455228151225169703659138202786878387228131963403343339294405906967377605888181013540922806840664405525354894278849586225105500860797261380612489963752045811696659335264913194930062887335995002440027060666720342177455549765026952550065738345873194979039144054717132745225825214145899720053886722675811771774204063612550649195596915431754626908182854878589863026490337246029262014927890034000520785721827995303836148924342249242643090300140072314764818953915161537718664585018490819192015922898820489321873801831989618554532015490127688611537641997587868736267140856641986623751369687992640887404064053491207314520266681347625617219700683800169661009997626069489733845228494648034021653737531070093800809241144018450721271388179025218026385917728817161144995823689334918008469975002915244839344400269302045975063016139550658543091669278448208859886770759395136423009908990143831270251888218151148145312336173302950936571056760296083900760812786402810508939128196385251933674255784695836564479093952435912170030646085116818336053264012622732810052630090742907725191997347529104768325461495632752565508073154233437379165372401112059485629491264681740387906492248966211433392381629856500172047308063802056075874401482829253029010234417792592035994881069210645875797211735919650802546340605571192114209730907469259577816659560089723956838483451248745053328422883245735489634475739910299621786582026225471569994578108332787813001003090094856073513574020210886250269523966375283941464627260052779608440739404104684452513667793764307821826452547907203755830608925415986079416629637130334766749148297840875828059434564682878243078902362650475740345922344459958139120302724854471722578316624899170494772922688002179221042209669798435221742774698382812003243192336614861640213483209221495049213656232143556188590515008071646088202973370961753457584945063684718501213815994325786986723740157824477045186889560832985735568120802559655258181148708247299266998731014494786237999475211326397180497299331508184811170223345875604306466462128656859675917965619910502159894017145326881091100648852405974838326325767084497648479041972036884333076556288350811292591482931896763049361472885810735436905890750018338778495874228544646867034435219020538347268299243013396187446117654303223852771971747865200170282419430570373759048060332138772696900225881747404395764679860552288229618506028292008503499525302689015315684278683534742024146641116581004653560285990566231829460097739690425124630225394307090981147637792698930869948250113608545625760645339964559835813085555134606758779728916812046696792066664911110959914420450335190622086512402728834508919841853598940097678076165822346984458388306159376195698730448755869488171540425034119362152561971785065644080151307931629993316207543004293689562845670384493862541507335789991499791225900997051386578888017374221421917651543614278868146361659013726044578658075709732195489195566098406321473325762518454398181325454196171459113610755423088267449504420648147891260277475075577568518317242665217133945327792203890505439586187146537580768760883579654204042834214597236886992065222316531527233574197632356217934849604228694443905734131391082791036166482838591126225741072194500905125511204784367483729228661980734665132122147272815469737147829536536429605599126458061662122834089562461295013821765585789687531946934464542700670693797228064058982794420319288668408108217767532999528038751129583943776135442015595977476105974768805561606998855279809221358167135919489580706402142822722329160825989565138108025588695034267691204514607234848121829394315724602953640214305598477037927343189077888205631149800205763132487271874168766815026833588982847478438743806500293730113772276200073793263867950117626376066887068735880728080688497112662769316806567678224987736904154362551258567519260654582650165788776450328338646785448264602697906228375851453771748073464404740829094678705931268206476944032885052408054490355070166956763614973997498520479116718489367101201672237074933323237307143899413262750484991163146166222626294810043739084159665379741324294902855266797897521985834653421659047515116440636795960787760397945011227892483853909935552883306828195245708655089943487334950714083323031378200456376954452718426402358280123567658604700299340261817679187287843336041604634709205688035722077207989735490871023594294476027541718934247783860423235235412856487860179480201489407204183276589476435481209154827587701066225092009240360814616844472432036770057153196969946296793474299502883120524788791016708909534253996281147425097373076230109948497802884333782268972858804396948820202183651851720374820623118654507975645057776981446337664103891430958411152541594104029268586148487077967045669699245775260415730007229683044576236143147680545967250558869922118340555254714231055925932505915250248507105078154803644128551206642656081678991808681213350581031456635213350146064575212064512578354098616285034415746029991275447113910047616062048047314096801815056422555929503802051898327369729058006899832108983629257389333809526749810444298570477209382820183585584182636092485414284019616190366382863851797576163020182847210204352036004503738524940991452192765745566745131067209955341838730355210193670575019299626581681110520277381339552967110835695579074208703429198798449201420549539699135834718996162728547870040055336328221134112228843649408265714989136164784269760775169464999463830430090446047251262083145828010532117400004446301023188224866953363018828874940812930929386503094209329786954183943655228747032915904977153838270497550399994053117701081749506399315843994419903136833692209758570756881775493582930706426809007918166519530807678107219151681012758765953876458314566971111144495204071170789024734654313258470134865311351280103167246514716423281566348807442893957375254326424944450031481205383577615731958167165597146712988275081999500101653389252498212125257214419838017095254616477780815207249413460222865834526692891071519827877137344086922379458270652978825698633429701277693364873405097993255988753659734547127337900789519966097242171073589191097348984099795701865842381517520079339616051796781976907045790071700660146640851250718891973850587594862264246076675861620273559193332300462155885266066967148703153343101054265836971012931366885824218457988796738553280369719549477710300557589312103098279287355451061249771950129629499759085870279336201182161606470144773015199503342568460969734331502614260577614728169014071325523874953360574409551783869207361266462453267217965110590044421130931879339595676929649422898952686669776481396365359301452732484255555532130375055776917602206531217322310194279529374877476113264482374549858799427459300553843400938821844472016039654507466992850600925377076983811089319457444046254154722217133083442058751759141176317685514258041002512161633922611345666498974064835295975439147242781862659906021622042212410034068913517584991613334875681514378028144985387488911110863465067045355404801979572912769053797940724117941427599703991326647095916845240846011297439466862495725648236978047280170069130570794306483143000011216639336371633789171579378719420830816232231187875651460607290775515747214963715583644474835274009728897599380117468610525902359568871653078938327662382464183709688607766855931291620008266314527252472494144772189703249503660696524577921750176395926492138730195179594888219140576508445300683426163936021754342365535966134061558348042621750903563011008681307676967663531369227791662220897842725396079421228869811144735805832409770406480682505509227041127536335811885167851711897650740242757970050329135678555907139548298660190691470493201679863768588488694866848484734983689537113862952818962215967666875646353380170645007166496607701973990630157698026305860160127867793632646508828374997008084076640370576806012418988237034299808127971607417405387860693552536532346127584611511789180344588207537710421929959951849651113140738211676264273261962797828302416176729438172647654951211717853811130872553941151989480042532659251036285027129694484694162027288497898325921427539617455915742356526230329175177470174699737041004921334179819413614635347678353475013548110585317362535221175692022212360550240943839415222061351650816910809562969624824490929682485462288999150336778392106950901434928949417654127792040009330379378496504868965615803014492551499044695864964013609267348780350187935417984936129582385474757565000479377872425045653173995454934020126336123132845948723562640400135622222653525924811200112670285842912884337641407145956566388363290116059459867480300241656163938218395199956197608822800500248192858270344308411874522928761115933741280758823054751148817184357309632213637771064752320608162819413005257416602206348716130572175746373917368395868931698404598782154243298832684631268701754506862902941379843351260194173260268324405558161414691383565999461512431783360150263841970480286226116179559216988427039609714483276796634561403291678295996958666376860452151808954545125585835930801151810389039010624049211344130204784799494722720175723413077979891669941276443752886708742405958907852560306661437307681881929331999293697178091502278348039034146557334523965676912692606373869061478583234428187176141430318558832941646611783551991455737254092147418864807446067612072012606135528536605483943180825681702227254449947973353072761327775680850761271007695277096250031467057779906395819487748403172224045963376399218637264264505077788044897803918094602726492877016566007265688573231394306359361892872941568866197392928801817119720539821596062967306695809110009069623732519487419168735950800596013280184463061240125924468782100795994479033888907775962809729874358661127778998644502655635311588911215521895924076245045614969507151198098023012827838062053611759609619405582388084642850972807766889725067078634988704137924373136840810906001686290746613995697300158603320862662281188846973576809661115483690150787909207826720204236271280215036779631760430920833344917839289191772258896078746166446003626712467287828585826277518200652808659266354071676920230528145690731521589514304036475490552788769756568063919193972164242973187625624619225852197976285334376459610303099116140592957115120412992889321344365229792015407743591142733847999663321310780202447935483986318691656771960284589532580516957240224403723473467403242520173411132297224094540861108142582454483236845975932737077014239919334002653990176707782802834620676855384463018066035775618712118928933244082249497337437332926007916569780045947288841864452944692460748396734655647006953257397856169738675112524295097572667825113629466855734430018129712039148491206514630394806458696492802705177724652932130144515687003678739719004398326462877458853536698519131944233669324508816533997958466240642049969867816284763053680095800012665363823391200097814630521537688133041625834845020630279263711977625338005727223690220877537831558833584992383604782118268941481694591277779674932344893301055606679331286890984785622549651133055714002754082464693160279599445199173799318681533587421328751807617315906622408890410446374930320823914721275766437007495558379953987552751310502533769846872144591954657940629380809075928806906809503337532986267438767436555004882600507990960733446733585637954976283939173580440893195781207794457213626986963578858199220051052706355293695915089516202868635765836757248302532404842945693686945207358982784579528611886557874783276592554672102814675190849677234337894490058736891244192063477915871911741955316700262621003118562765310406022039470955876942256881621250487868269508990644911510026041717713147365725174007856991895289433040707114279345740555483934326981726209391797965032036621271486228419841418146841043247372264737018864412191072710685884653624631092277331372686150876636608523289005989232073189901820139945262097520615161345346703721665991767416962343019224175007196927473874514258507547831547249019792257043842752905615564868620419694088169158759228282709263852524166293884302949238980002451758739116840910151322589969923649282962335998358270192107058213436256728100890146311978997167133888668346986570170961605255182421235846458492588208667329559317765719254999192280644590085066756088466644007763271823076018595388405420835610936340452147663645714729454363327343674115906923880658012040674076659955143619534681117770406985581107421135251761980804915685175667648172363609830566711444109854304610553718923888174186185364030281193636547984457311746195595127624169669367522248758738153974227929357366473029251365533353850293475240240948329151585798995307794981595115294877155714851873847955307829702458624836631889996644602620099223728641346417106603980583535950952583884579580649682374553044925619209628112560612338372602778668147411278973599291388882700303648250353644286006539025658320205654915579037828231044434552798257271164202443204652769116927935065294728312601503911280866095666810455202177738298121406368343468583541119561882941003909525360967421637002534537207852339244488475174202016971322324718092487186162386624653920966263577649028112551076100249606792993832002593545908909631970176723430951871866741997074174748145250513762214595487236561446340650167692351696461914333835360915339253509769740142863421254079820981781740244743323407804010048822693571678196232222789950651009100683440976888826993272695609632744135076518498323996938760032221650557677006819659277655166713838415868883283214931665778174920290955474536197974782806880857587592376315809379701321691554422679141181047195713874944877382206711612332084997807852111453637593477720007032478957022932011630902585668766650488082852415445567692782564393244645483726308434079182938812910353311036074868317723601209916997696161882610717716815739923246935642932873298417223969680666629361253624035765120424997654992250222301113693064310446808671395098290108240441041329175788025989725295753323118722458707027493786682083060702947672379003550113321203593238909831140813335027512915627939902539456082937828126959516172725245546905366098730201447005734584369770015671238443640767970021290008993121088347673485417740617194067519713298821276256341257138691706336674019207385706153852994009467338976036440662090818525826956118723436491818391550101146759643815850590269959955287157527146705776050368391476719853434618345644399383562420430352013816579414962930278556983688823672470346209984948229615797287659086160468602049036841920312012213545396676576406871803748501044395941873276378992771248759018594943463226990925101907496656597516841947104032783038634895166644089428961510531935111483614702304664728254319727517599718254971860083668879868918710956026500319130228324075055607149118081011867022410322814329011439292267755740965870967301317084265386534389245975459616374328799703596647744141414313923926349725685922799842273940268653276992501764006544049879798162307596573381786122878402660244511643605217469259530751406477836216183325138630596007438827892356647838334057750300713892136754961106809236526594713306161646647639989828842461197923856168805808192803141886305864165914865784520546496387971172579723628856217964771878704391942709085293450345018767235493062833880798713478366838024421105623436547506335618502372621151367705599391720776059035709942431305756077132312754247546085175945175075747334644144666076284147027813660305168361736858931773001727228206286592581646049276504168805522673746419465970574991291721582980977972399355095534639958683286391076948287066223788995714406009375965862461751231463517171297498212087036458020585342018572599632189241995076682136085498018612533801938809661197875334327255594385552114023306231468973661732815402113335392622024939388423888210484909192452909029685480084854886540437121177802604562847605023731140833014319236820035629816765788408995780937469770984643081592694870919716876263827087224657764667542734234657345906108548406902638491935841413094869149855465103773413788968092160450840926015541563792518051326942606434054058477137272262026113153486713135044519396761245879016823562774998065614482745185645438854136792807421438664811673292866401719886741893695747162360436293634001372065305712617227082758859625411849764301178831924702718138537430746003154551943783889044903750281774927819904173820431130104266988810614884084997675571070014078685621400932531065306279160044687488344706243697931004763884730541612155578303301491993778327740434982361653938389676184276519898645207043562518174956596872372102179525866117671475001970361943184107375384341387365226932504038754536552476066440443579970817230756031032519802940839343860893127181313789188213386551706054948142933196120285523399139053289808255474202519137672181033767401691528051353255807153460276028015865499296512613023653211897842415405411060921431112575386968076706266490572280627759567193619944072745331364958638534226558074035500637527411759061917966991987077441202523189129530047768094804826867336795261543097792897257296109246249867308604054077129281315026696913514856335412855518000754341760887857617246099358312882834224704090546146418527520269547342074762972155100995929353382462287434922397997339177549927271443779063999772931570720567972503613279386086606817850778780307526525179022104231582961637545851313403514055755369146003019239221982418714279072988486873218497317567299684762646153611914632773913143271367870276155829194570239869619704781756141476891074354547089055459399617377057382943334672183328316214487963230402956875068678772713509543476947057112148618702607338481422505896252648961152587147658622228295950593071414100708819237972912018194681429776053803570063213539097416258395914810547170128057917727858473682748767546213825904083762656661366217468046818413390027211271334968731272105967765057144968048527166412443364207258185180092130107345783828422755905054619728238382174431444879288482638817369503947589451346269208876291293449324116673108663003755603751927787001896968393710031934239418213254005196071412950386549905114093559395614387690836450427075766823164942862462228910889363783491953956061166059103827380962415381915600431204488811470234917173187045346493928305005218246335084610161730474850560344014284151621614252066724322060812425714278544636646518481207400018147693101950928888610255500551946495747320066637969861917037532014503315276843394562826112968727004644848916524630359622808441605937324829746768975830144351655322071701898708033080259033772925128990507593528730503190427022597585192144678495412014600052375432357726481373456658780926452393729363477622771695044595578541001760930841727663629473088061657141547536333325412609242952535796781209462158838745650511041583814394937774592936012886915247333185107551436597094030827172430255148482030924450173782753013501649695532172930357517445932928582091482380779486289660449609530527048896296032063111552011587202493717245391896434759431975983201742967536046439980792574703753960499115638494941894579515322287644479014759748161101754916467245990819851888786428616511061182085318530042479670920569351447891127823570079233677863067156175742643602589981340653142458178560293058035557698727580763806049602075969761400100900156414396980340238332568297053404364664017356675637650964376876490352211514034510658936826189967912196595486627428416609811975694714961733406779996636578064922627835023721013727978870923392784573373177274941142313424998815780772587534101055088799976147091648668737926860809839844078140297031156296066854627999700392604642266533562675230033864720624414000064198098267677916984504220844252482287944588081944767711844776974662513261676155866040170378252957500543217013021825532911062426042278625543210185121710680289752758583579024974916853355063088438401958348815992398300933496602508053875491232021806145956197894160197545494432949786211917672246308311541797924808410901497562517449917859494963099030617472763037569574549623652129990958962385682121185697236238815008409275835807484181995448289309694693924087789986094786538000405988646343033525910052959140359350772212153140190115798038250410340455952455615500420094447514127576892068211827367323999141172610529381045829151823187864209266245310856790135221456901990831677621711608461014014475529430670995213167910021690655063859095927822142191197419556022741275497500654661576702365186654373628928337810715756261658249927085116972110476924807461347820861469324931053005479833111235051464034547966305375718431062473622944567688963727195008150452500635278822164740941892925325498980577913039162358474603258053783575296031035174386519755673650004868162177657562573259706769673790087081272681645822666502963104246282935427779443592857476679973176269285609164931610193931287642437132185513763857194453002891418168048995720954613111726598301574553581897910545790959224758343557408940304467599623116735813551950234690163245839665953172767064280371159608932466544806531039155527211356259828840658402769442049351424276459394080423670231500036264717100397221215343218553473655407345013544902865023792920856480046589267540715767645627972710474730501778668780642306859660611710833032496179900374590464877075148268340702302498881930426138495866684583559524911638897489633746882254594682023434576486837059074932998343576610672625563077609922384075144455824711575817617915006041806776539693435805142537360306117716480105647498704279798767973239728688493688142654873153006187038800377643888675619231538572077952428624274864559170276195847465724611984132115541711661975678195782270317691898196604078387534597954641029696178831489081795387868935215555914704278166826376208038402648559027905541484256521845475124341293364399742254329215532641859499008338954793525054273752199231540553920055766161710043190936932424098302080148002166764059783464419555816535379381637585182976108324281339621848905217843485321405121346661597518756955059108074679784936944616121958528973781632146632932423419310609105708535941380362909355240274890606076624993017986946618134033221985922339043768250825939258506350524172269198072601740446760107445827699593361578993238727596256470125618687365718430989583798698679776467344570159052361733240549403375676264638600120469549952845255721107365592531592503661051717064537051903662779468116398776616520624593799857089830548597082384917278990690836616080904997143559560780854475239353844919514372601938288591544691914474182755350904783211884799818255248359431013958755451298610709649376395758439475098913656222390492743827810882112430165139298682020111753347377805636079379395349191715289641400939165784322976113715933904416192033007104922839403625611788854254112274125673429869208627970653182287865019136876602906556451307141540694721088978348393509312960888486291932884140301835946224917680966904650860807009309567502330950720550158705003006318507010460926632833808504109443099668697707619661383257887628026060588246771356293936510266697029566988219217381987263762489423181927027415480599298677401240062116274570325187224783236498888700425616752958378286703396099382900966135839773627813343694192917870460665445360022160193890320729704242140332942604945955684820163753100978723934975060744191788508525204035147485661927586265911285460718012644315454766743418498734416965927477015071483079499647944380852056619832843798246735485184359814246801072306685505422316129762251424197297865050901844580272442044447461132867748782142491062902045637417077762414228989834161694182631032898432002406271041946858255332212419794837208953672090790902078503867717892728985576724162782870951683413027581334744801690139540116917138082046674426678537867860486746844288571441196751311673507994548348754455744947804291445010285913763328971620882955054774676080232885839480395435739228568228437612989231284475251277978619632463307327915603674140430884054810921296625798319378700561789750081513311182302975985513918599601254904901286570588508155148956567635538526986929073816442491898789932142106969584313695316590646819339405825931554837059978377749962116573856800396322955826319379581720795799535904049376464232907563905477420113125377751666780028157318645611917554598480749880015518284754180107472365616409734204428994642735604763258155802477296165226230224158067442899731265601456425552805143125201702426089088047988085522104948408936767386466051389686755023962195632948570903536612727286467873378831808865488931149689786870109496529004758619515674509373105628712040030208947180195973899745450390879025737669416371752441695241131833043381819349015778821977648007781780150755676542583911662851330453171985678305817598475135569983080175891503913837912843885117326398351405940469372040866168170697343927186264594341451924715428693418247973020518291788884908524484832376305959334049046589688648459454074104498652080065951292286194889501378002646889438776607311762004393172912373200068762226354997485588224014221147769592849409282579649446677663633215457881161288245825643586099341626106499576611826804269828123971010713893644226090315287044494674325928047957842716599735383072527551376596379132180929568996054763691061940567474518053459510051950802386359001283384003014395059772359823409530111401247855766517870071515144456807958726601608082249185871109130054343816159276241866022715085343472799948504714108842849137229247933964560830150948753326513899673275730822093904962175328388311724542920900240036775133796589847757624752250289859236254653523656478920156941302548364874992155023723215035495289299356692031169878085231798135292409257285784674085040697617959521163045487336943631683423898270859478292018862216410208646624703780618597234511344275922675172009885023124725392620086957840403284699172539651596230236513332738300093533441638572452866558877538332358741079518564993576441154560724102531250435799825301408237561168680306383025458442146498880573430037977218147649623126847798835118178179379003080965860051251366974996856641449527933730317420478130384664548298320325969227068610605902829357819341823052210371587572735583521727845362971037164857725777113692285664815200763649345597122553058987129055835869722573460480247435065062666569326525216434114824611941394247390787152803267732986542561284464271871142291212827377450291546192861389249484843643378585092195263882915351659014940027715475563423256234263146691362498010176163522364580736965680603315719981246805658681204948069317610755472549192446215437579964599974626319460666965332623534064984309203037863814015071073674476936216801071950845361612563007350368197785402189149960246627235992371312319591297559961111058069424986499670892311482862406553787853775048931838273175019763877180141565642440423427148979609566244631565323959247928588111684198126500634669465690821651780199607193924576254011190611327429472545393277264157679547224516932095781709837049970911057682928038852981799667195708119635387370635107787700787076650769514564136391997298720070938267440879834872443867693367267712774861143018760260453387744023350901017727612004584334196735872592891649114053144451702741287616878020407066447223098556795360965820111963267770206456085245830941349285197857340737727045355378376901860426101016573973822069699845531796623167936905528149284616680729835040493997499312662878709808050887420533130410164134299632124005750382900547583683648619777119864420732318462095236072912981408329526005345963112759504673025782265175031049967650383976596789065845242631824819201693238142450523929353685570510350595067651782433164225386160148040116265612612635313699469016620994758383773837435973053254142785535002763789073243907312913664247814662523149454474497019764191638511725921261232384253611850514316470093006007349733464810441465860073111369361206504874699085013236562400065461149834528889299414722865707632023993975422949181487303893184925129386366296693815881724895912632897414963869998095486324989662842935258033649691555330678968465388761545231489914787007385036886663238194111830598544832540933877288774912203739955363496176754539455856973397882726098941570708886307568205937986593679707168425851688541635003748631677929706191848122045929489820181140886880800845920212638454432586755344105310998157796595300448304884099983948876164729707905828615565126121799110510138096487936303694061138081323291309320013650218791124674666536482052660721415814681634268540781591974088791427428984308713609806984892635505885402467338332340616644665132247620262164614940582387935750668171142308492859106680913649252889811397225878548217767366083464245076084661162981531515968205454749650450194516634269731139702783535837563524031258350423610278429689289268101639988845517339847523927872192558938179046653223680249003290036951278397635778267018552620220213899065522607489169003372647755151482855038180109945148533395537118309799541108733793660010345543180447881131044636934286819348894900087143623264367514579671581835733744910166303590025526106645129665462716388260982146054389215935568476009257227961751858560974299664922277360779828410027997170323445995765135099750019378087775460570848475945506917011099148736157965988603954920428309738249315406694592599439466791070200593639409498197223145248757583156062619728484325836758514432935846783476370200349823415712246037802870508511790113283890826411947577581205616490871530961114620588693985614665510194978144515996779245999634765009949962363883996112186427129327923540442360956846673111299631497609407081685450807845109644737242029243860486529447889450380309033774598209837001209041958108342501395697617456735862985184942864267740839458344511197130317246326017210465503493371067620761106725502305692746127763068156091207552456849774324857236074394833811027309558707684324951451016880966145715691542267058489726621203451843049761868320748541945855242874840815175767724826466316639807031385480639674565068431123938792907099241729268805289244875625657171240588347168168882661813084115723631662571169406704397381304707341149180003486229443556720880581415772633842687622848662908700681308720220620892686375335184864443278360378673849856285200743168330333008575788172100195687063548961935157934739575731081881468778511829615539500143528657100318217615220391570231651291261136610273175928094599249580789945541865525297157209371381981757159364593718956633041955956195024572813115240448151521411977566736535368097018781652953128068620406673789027143108401460589357655755499105411749559484557518467503391783988865729917765941204048582645287839097264572823215166641235513061392367937574733650866892194481266948909017207241553196477802324143356075506172519547819765527904701305015001237725051515741600469690953429058545028655339021333207159447384560447368148236422054661251380822773378370295585391176395608976473703901837307998813486008456104647294293758620949318681638378561916828396986220162480477235527689538192642433443360603332560022654269214134905962038878813014858896349136645268017126745499983863773159194974496332196803021858264800298751716332021466545908997358677152761734334792714949916059383243914069288753864161381725009726131294391462212335135400343227079269604437338695752454214311121402276696745954394175645313464923971222582513500246500291382441855406539993913416054057851311741732705425949323769120476478539827711683606700773341482079040060096595060578742759263980487233914633726931127551255873623850063469813516342107845919283730873462517686953977382339838018500477862750219405819192466077579980858052799930846609490787833069315861493420936157500534699748292692633039784358841379690298695260989851847061870921691011218266941792037618664236651133863749690893296382122724841609764624801979461821447114425717427740214634744090785859850429355690906255438329099890088245266744636905195521619204743312699672550269654309504763198177360748219547972129874773776882649141361955020041685021108974290837658390403078515043521114552087488286466673195466810052964018224328674051121175320939115613201186061886702503823433130685229147369480508537156577239595015815855312931617027269363835621646266134571753016120853530274680516424003329529486939148460334305674207088015292282216015846001749312668283910148526500142933290834054307674224586347000198112245688560861583073261401157783404622910764290569938438846724543375195899560408524499766704803607208580614321500253548747796346318590525766397383708616889988009284680142025930019373513431775722394916737512750833676856983851746687501527937295104722665026870247038039671824336159482945086686883891592231377205988247526731233421580084029312599731502285552221114169247553004538513748814057120986198450939134158355781990476318315978660595747214750364400407502853521668490918145588099740583511019502871679553769081104951594285498219422527432555543452840944715193437567953422642193069672220816474551641458451432139774539850871482356599789958191266938078342096824065325367994994200711595172077806869360712152425193381058844878845699868280739033722049615151306455327917791016403420496887166348467117392627908281107557734496389918601181648544374712786102407373065217052447129692380407077706453693155584492955713147300978106520166402103877965332339058114868942210080026476618129869942775318599661505572313276218626670712014479798967484637865993792304340007429920114055401776581407665229123748431325259854183728568452889554304500036341835568469786432441200042577418271696645905532464349117495711255852840793131954608339200373139915870670657211183147178081353367110177913053002163361498783522532434041877766139717124343621327669431553800566678469462129234056396392256963355471173405085175604036532627910756591578391218461845881111852427116032476476339513704946483097205990789803739562026795538120034953577840206320056344225443358050367045535106202435929642485158663206536342392839666830941046490201128899128734830892169043824421260830573961921875184571312702459768394909264862602459663352821064934417848936956332351888269945023830299268737336870206063298013778899983754430223992126288783836608470042276481894151611620365826021304365221159660529513913485526993388550731963331634814115489595444853287630343039745787839888479572692728086130098054180049164803753565652846246326081037884004037131076774357240862280578003699602220075526773708411877744747968116416694893351325738440780717404592974927132788605544104564207932802431244662617699575211853292344019456178304701748636153715169334085747666263391313763436744426180857575042331686341156893113145246214516127490760414373667823206961036471214762937354363647078025782609718390930165663714047661773935096379695933418207266431709615736141101765526886061335848753271363622933751308539081934144175698208575432950560178572386073154749559844283036667310404900368965244180147314014081774494772192271452811249865121554980926921723546532885369763634686509854696674054239300763992897598285341154127611407924752108191652764821713945692445609095644089306647687163772344555248883466311114972074122986879016089295575329801950670773294076226015906252086812881479241450062422390617877945310496800144564989685739948683545990455329560492280406240938467981297821445292745981920149394377693546607337620541163936268085908313238969112755695719600282557424976509767355385551361912105174476908512328282558977329599205651039297072235973545471048078499663160656080598018900396306749576646915838716256309870688770345500440463395281154375845480531489446610922826033052325533267748300305000088782314878459899622140141218738851018181679793561654365037910243890318691836944796344135301662079651404964332960880270684654815297223469748939305302683668664723560132867518018678946759541571177628214891088898079208873173211920025016218408786601679158636787936904112363821835164815665255159354676014600191541184681960144024702163201077407908968270299280730986494009435307882254862673284526591901485383380005213718521506080714050217176781372725987971033559088755994266052345075620766743927752763477505332401272554475647361014408441175314391826355281775407886287251781944212791066366322853106942248329136849757714369129122885636169484442421955541794039092725226653595559968719676120382270969039459544565063008597703504990951391191210979160311312452827625990634763608554458011937419795354769249040266865509771064174809472334100313931720606895756663837165599404839702789220064998302943569758410863321168131639377147590248950239669043301069485428477931019482410075100829236306707947286010842334070150847220459466961956527518592407652135353182553116976961182550406429456693201651258920776782898738056554379508895639833467711116253157976835725761665322021914230109234115937817583548937025228701629737165651113100675626413513560891275876820802913281124436562753395843419947931530592148231235639820837720791830223974823739580751156555836721532369409239406875430947985456479177665017453300908915354863437989158322980021580227797411818448243907634882689140087689829754064342406534323677732129678653699774396450586114985219653968011475161661447159273064249433750215026151649418509313583615600934067678122324237542836946684484694953256112079311997106275928437792139643424534481024369137460807609828111035647293583504759159006293707360151067240594345650050201071383697666971396210071897432618114811506399180456013036704557803498867242644801535267476523282876476493728650235486133200697796835231011703593048548811946063410540259811668873280721959176620955235612372532438942314226852387518556713546312557900710147122697874066225196426576645256524077503418919105736957873578089064267178537904202840184639452605081730766155856263901449629342644267668334426980297679429078211087476244670360787287667669309977270046220506810443188252851341388929808697718697946639389627352876063780981449008761307904549037975959142962140941536113573954240792779403765582374482010344112952174992403426561207166279747307086493034198685926345003801412426805897749471755410897535327525596056491976549994985975817070151103801688896098021348527076118353507915600476660478038479592776771971966858636232326095580887785363869528886018195598571541203524875640361591215471663881880426247937558248974862154370930249616643870941497813733143572896234223436979510075051195682739229375243999155775201900946775817385941403787840620366986320565421600380565484950997338617826622482744268802169062355798123450316749360226673271379735131359792240733920938887110055054666521615351732736551370614982196285052486775728621543335863872768237098151224424059432564720858643429639818937166102538451691353863582470138338612912230602829370475280034765468791583112319581065197376892833303994497152431700955116272942213333883050270410903597946752466483111315453423573642870347639998905342468678988369267465966450752317390274709968260208718727255631247405919890260893094518345657786693837984006876326327041780379010200213502800975622990044991629393652265952136683446228134033530611719589604060656419035924129104119190132417031507416086566210723141646209559448249588058593397149205939879724674973869619749046229312716657951659204367438586563884315597422844987962733356669831249702484860954655330111807151904160494134728635990546848561897636645151474057871377886417480028498074117447054435035128124039663640592733694366151144485334024879025115545825256920779530478255658275055935245655663982673657657079042986774408732476978032014801855852249298222058146575561589691360130967039506743947196723807660834930495110176895674245096864019313494084170443149281154829975922020492418218784026394324240312161979406497475712842785482432696119982027577959626479906099488266216781059130481270670936728665815718676356679170241474553651070350962031665598488698859488436195063469319643734387031381881956940891101186007029459641665262642551052495768919317711497779050296408221798899491220862916000442960835084942865718157998390977517571167784435280292080493613435183642373472571818399215171919921383622114755871388702515743559959097136924381877594744153542310948078738692755769873391163934121676358686007746295658144891229194491128329624873970976576486868361377356331277619868388757637779019096948228381034294937929502474187847033702400888421890216570788210908935415400141296458547201598687351452989053200504845403814382926380946482281280304583247230987349547255184534470804509555087270800603047044466749703844323998376013953872138364977525588304596495834127710811002389294998036534706240809726075822175685087417148689378040353797645721631683541962965161573566561167806269390401662392928060374634499141468054605207457917514487648272182288312167545532543218260120030666219698300322644700662864237627640144991643870855146890091460817470312288636497331888596211542939207790429742234101157009000845091024085867702384595771039296989439495916418711346425454651057152474789317562434892546161486094966673076112041579460484725124966784632582300544847174435672421799270236226815674382159938147535137189123051124866272412292370107082964762461816768308053563002324513462725383948763716375234301795203614732249888153501375086931499570634929979794502245360145595320432784246992146034685718265488018750415562005823564724472519446469598459046969490463328020215154004656017789719514880992150039694436620523480899871345968965606351476126332706300777018295533062847782606004452532390414661419167440266481621072665209949012930645752841635282926722711252952722410733163127278560287640556408505117533280796455682983112867190700437336870446126478471728055004549903901604925584576318359496597169775462048392253176378586111680728524258120602643184691074650877296336592597827889425660861663909353150382959982114872873587237848746835415665960777198583041459717605413720558290361700267302222990430314119776436649166456564876636605354900033438634798288304771488792616167604140380230447349595116353112108888068939641150481693033684625166487603273151484784700136548918608725296308978644179506920316376501064198435244822458934202581633307017459501911184365043155368399578296348832021619430745658688355967375730409878848374037986466561245561131647149870171076461306922243313469167490601788405119151232921726800282490841221541814298861197997599391535690854381104328600715909230637467914973435367145548461698193117905302518653988940601935909544481894093533901556963382508265374817645960367044210569346530359769617966661978524491875167650099758124853891231567906393151901918316529128266361475992347193056438920435376398079671789737395868427064196283308315227310842751405993848498740092960184031485927032033049586537323372777009049812019554471200122243596403873904525658053918194285210733361045159722627866905561741410997074234170933813926770929734661545252228418006330181060346999308416917822985731548665060771429271317995054430698159941606477348052817060454246332781907221905366626783999865513195628577753093932044187469025112182067172090775707089099065068275722151566479552084660200158645994792602936716288898547944219101177491125013329164407437519543711406773910966838067203653259470986885632012406009868698756378676193805444686287867791236853905894139180219727880252596865310370997001148970504128420116472330619529893590754581373209202363094435402190874605485330232103755576736216728359308993620536908584201085983943934649389223123543938448402831030002414521134322171192116003011866022819958847951757064391201040989623389325339214601253939134547703136094026539507051859822456205759338178509374317818753475535843421013200539682042876797582605702943134233969991482726320208585522440799746687191351293633973912729498602756069790775441326612519045779936165415569838297034421460352114578582115159610626716156611094290639720338979547390174387388356044090662293224664047756154527603756351003652920766386762725836829585341042264422638804082755900177096247003524858533389487345038325550315954240566417894961811531838740629519941544521675154019970456312080604133783413117711205065611420707522436185350339750206404401151402372039589639534770231038025136274698824908635770909128612593590849588844708592080769895978289177494551668374101772678623969731026142013550402134988993173637873919426465619359678149132993906272763273460675983905288284526310508102839786116165981929412081542139298848361377423275310833697001248054493826144007407743667722006201298179169547597419591167348361135402797836071405329241590836782061369526847878869576157096022192724420320705586929315439488401394689215685443600511550341655382957734367427461160676779205165225726047916718545672087561945696987577947058582480170206866074944950868934956335839239865470444043284214283609512565462625599095329152244324198937919998190450736455854960461141855494407910807057822735775658442186301368671109292742297418419882409294421596335172561240936680635847365068154539568886784459921965299327772567805085702916966592073686051144713748994667981534829486992406019841910503358179118047146338268911567329009185486919509560325506982246064559836621991163634196915938748045931297339267416406718342477241754014862783417540288272811412629338231575615151637535799047342745757783597513801225537567762432899643535656413946102034377236870724481251447239731479190294113360428150768473150157506268364403206293340485902068182621672835736090074160525223599067040542841200935568370705583662653437771608309336692107625698196988292522148154137716970828571727748695699341474990704811148412812149088811724232540848918971114517259007498330939102133744318331085929814867285770919407916121881584894884650615679746423419769167925038002635678972280202525059179985819624175147851502178722325369118891371058764265583933101419985738820792043986589363389310396853394223945159226240822311663009826933906345602861876013231174909481294668203868581339514435914046535128140561882756639459449666517323160069369824174034189434077916841979013822884532809653449791036842979428550055648883267218805673035356158639508754564410112466694068375534639850721722185184688484900942318359402696131328087017295657850303356606622933065816382705195918863894619821050015352792033603346580479006669345898234089926046475061507697343679945760617336777338478783655309496601161178305445514136945314756956291410169125022990891636984877948349766961721511737804753273729850053996086209805544000552383238339410841496322909405885297989085682986010440939225566840416607437707903538361475704580372440343613690910412957611474984569985216527901916833556253289666471955778840958450057011544117394721686984340388291454273586650069075807609254021003726584487399773572701771742254942762722138974683754225436802753316780251405144754743922786190226756737279554496173926652792301594528036656923591035844822611101242399332695716880271277125127457439551863432929056028354191770599792333806210051090822754036818021573893272732663093317566476287091641653497276346664111093477818639589861261153077101480266090232034634406513691926730171582784150531191530415965934267837111317425030202189879968767341794275895516483666088530409880434087850326369167464054658223962646478173556266381248716525400333614099938833581255770713124701061164893279406420031637775895191765508410972178457944510218632869463213031242450836321684829897994883163347784909142858938535928479051348766162052979895202768281609140159701474657603322213835323099545008611473033881354133185362616473197914360471033147499274717072706751456236431813265829881841932973771431050376996313053399826499343457818836714497626194097177163026456037119931529661588281073349995005731522565568903185466701704976637977992927513378452651931631163226566267228612134864938808707120460516280420004830108716085807390235731346294747936687798259212795809601035841959824639218793305731691203537490381058799058251944194705948006211215648531343934443967597863818046908810924089810539784329260169416517882785757863788192531401412567965501988728027719039635050516275650153334095929127025852085713667298145113358192174413905072349007614944838714760055298263711507445023563549886774802451327757359437717985745770365604460503176167927181890170525128229228051640601880216849653036195365740190516741260508911346419505391285579628982633312966025976926903882633423823051604317428577422274443143225276747398956860427820734468934287883567626730657568448203431407645751020231728208808102544563446779900453628336215592375387316098406330225936824513145178746648472910748983203061387317008968413896996518985949426295339268659273086511077880712466961297830639811751044257990025664405996093892605254606830367514525123702542264432649335789282659478884016440002447091727724775881934765699154317559552248599036199304299995780042344738147869375246971486211408913350276696599202679985937055189344104797727104385294991181644371763247606311764957602642714399624846805205210576403212141574789065073160290276062280161137234903434956472839874744613660309952892617942167917926782659107504570742070869410621874013019402644588620008026267267708661623238238125782639029355791022385976217611056240092396524065233845420883858011022793337246608097092644739005538439428455323223255339668967547012828393294295337169646627788803388002384637644222272888535050034643035621941521798121422847690388194003279393268683153535381946558170312998866950656850312106111504148998093115744011281861971974919743530209408310714304447187839748624150306621031257326900776524517003615487824640687467326333570936404282462222604248369317864958849296741640501623115683372203816150323881943444535467808157155053343969179391095654818478474079197992544061248125247015707445410347867720290738156083331178722608913688254054969808827210431722912546123733327261158685884984964283263438681180808155735827540052915041517356379152119489859456326473545690307336737486817962501130872054702655221743012199239739590897288211023138957941688648257632894018107315570888433173780940171820020592011486322407199221849614402444151326029309042571245840762122312054358248901529813589966794379122553073305011700907952676622378030471313086676472009776157385775435328489717947382304190637827802715198298444816223597193424680557369742747669270274826069019928056024889201567502217986758409731603269456825422167625266031204793907887525201197747571057308474828724836034027454416084444733115778781476220565360011372097630525386363439480123300170486120329214620464194402551001256677172709846704587012970486117558942307240880332050475714634981510918537848901033084587208108707952664372907258456421662447610987304854351509420923090298666290348598299003348334257204156422907792330381873353617309052825676358372707769951186832110882112083616248239405528373474705896996420400279939473546485391273365928212124211546691837045496404621438272433564385832845631055932320572388277157442481013058380973747884467453970826571810798256353345307770827697448532949679588804596899464186410625919703751456602314121773580096877510179535238112960365011107787864963747225091880505617285761315760009442094746892754740608533257304057865105565806097285430155070346559704976241571250167752743701304387358418159332560760422411568995619795726743066852431562361341854246547495811256611610954998913339258040083848922783464426288273180831523136346288778172554792464062025636784369216027913256834375382837205283864976547014576996089559475843306297558848675908840406869019057581488549589493441656434151239566549372702979647462509705187165753384760280517484732325175571346010105196190395904312007299475741440349959154671233743698031190617378806333045528043759925493944873283120755088471533572947043337625692210362708791818866016770293881333468871301864492145218234501350162843382872305707203330086807869659881536091863057689176391274106801235198404486362525552507383542058462159408621699135738002261051195691604201712049380402396034776485353633196573887462263494890842500588638849131315712939460054764958317885737306614596658754095177457618979840049342921033751729219491845934394518905945851470252828859242665350271908626236037544029559880873911968380051070035415507578178891147892600203648454215146071081370720739536673300900533438393289826049543003815863800002722903455113646682796837748118154483332427490994680181920130749399944704030466393138960500438074454618646172316222401847252040327722317670967952988898709661852933341866552698542491937738094349065786083058772944828275683446059534038221649664432991036207504161545518610427564344422149310104510461621613885821881652852667519046750102680219696580421378910241668088870137714193225654500980838383818730787505296035751847642229535576523165935451464770945163876475065200359527929221646925757196181150554043964643401326524920839657803231169564951749755974555814332782150504373589588230810832896608170182878998604651206984691995475426447089313602521306788549035950769687376082549156293363673302403517136557270239464954859487937270106422781411981012015979626869686215057202865266393282352589520995326242552694367119163842046002216589674157844923516217403318253965858992046908193735349358508965240707292412402019823136227604528332721818060764634838575537513986826716721241721733009368146360428196296603155430845687301511507379539204759150524708529474093361246649321631027604593556864544460186809963364024597597397328138535441351121906573699102580615306545942985981979583856222531555686811935137239897507707951526388177053634364126509984960392431887084882548464575134751236726316735809273044960718989077489614629104325376155933274731172388120127596280563494527914759425518181615120383496707615615159572318352352211084251942650586979422967098041584509182805524213747083204101959814061901057177001726221986157519612641333040715822432681099280928005027453399926218766780415693993521807280789395944539437993498958480199609393481475543543483693600264942912779041608236030218291965244416348414696155295332735901622849249657125282547633475711674037961243996516479960093213587763395606646334718222348793764802296716849259794512246424849865671232844609023773537903158107702303573404037936808560744683532237482215028604192383284443794282555505642077194987192376312495173407561691348197756992311431294428965316279982943464997370757145186645435251564549634719934125669620412624112044611623361291968890010373407623425520077709393632329919399828999494983755141909760028193588530597145606854104583364105291849467485968898077025305327462331645895335347338981422887762442295530287174470989393328999064583293552356950610475609818717915271484847797681157136214366194299328908563205588361639850612723778054039570973244949497844279161141234802478947060302714781813704902020031604766824874586235568258929804540701550889113721450220680971579831978213543208834181294334803270569829755756516314170616936212694562502258749995106436401544322586661836051282475306004677271969574934773038043189377896526965575343587131903192951303555909422464947161527212406938545775408456513720955415442199384587455296703397736945412658049333794053135848835159000575350347437306167415040452138302039308624805317183588779178684478045779091062531760587147339543706803208788941064712714592190114577537833127743799922459354624856937379272350628969477217066440584832002556893654964114671059001286898414339662205810690857007849217863571216426860262942660523864209420713925412783329586090310866803573036339647577076336507123150352473579628399272134673902227499050996449025408462583891651666160171325566922240832873007293665795642088321614974733134657636671997333264426582864933628745668281450147402558334090137180802098359253880156738103073799821010385132685457481706735622385441410020645497804794976332898276762950112018260825009451806626625765365375044905870244071828493675845992015107719034602212611898944363791224287247952533331215439791631054232246574325405467059984141709154009323536463318922271928839228666539939630747132686108052945627782956958006558190666764587749494878545170261625914764679209747102345305282230887992882390644658552955691901177991634895916369753583647078300575497651779522879762398278206572359358714057037067504512093243189542539732807816429185524839171036932708106078939438419505033814436611063182637670203334921593111552176229678335383933463045506763280615239327289205752812324484056599115868439866941581842233479331918282282050766784520154803008289229591502158056523359214650594866833437113365925865613079312616437175206535584799351023496985073248146001506504509923221545032048701090746040852445321742797000271726691740283774490767935016103721376490147730105662588108113899347968957560745956781649267514494921747052714701739114035779492585313053759719231549066192106693774440039162648199793938962304049790580808449710421238379663219434435965160265919121270268954102812253721726412670138357089296242970718011459414925692285760131303208890568562276657065651347916864618076035817292759848744917532808703141531728141083927987948427717802825760351603479516959521928884518284106989922563329358180057692032167326999653070870472524146640261051036827088367273781102356854744933552415170876494337825818291418194730050064403920110873470876339669971507727501773062862766481763686903060904921175636519277596221761011022610428418264440442397754918550015018987889200091554266322655902825866714415319727308694399523672722468692587432113238670378972772693418268146326720009092314680170918920331225405138168199160058697954411702104244219522843148182151190627660563819740319283482684907990820188296687033944291271875162596444996421822005749591283821871549298094134483260577067908932819352799016244698733244364790154202592241163048292183770351018380062561772408884823312651251189766579429506403300963241980076636971939745355131200186255365133536679794940917070819430211858758846328943706786358084483552759720120278500884472367758533959326129235732053311016472682208961106849031811690654582624969890954596558740086731507378564261570311721558747990460728623560720877846622141738670775603082141402165271896263215115173588097095195326259307155661778271048778208930611382768901371201203947734690871297160359282564334825382692320144422896809394245283142746605281994025228837726516842259502931490836677638587085036695519533419164200829037535094083177876148436823328078426390831956684089713705159854842138167560406473469602865462683639910231866602483841695693130237028688473138410766860353429283527961292917850614866435768540518832578621786049240091704889376856573477537952767165261702870844384713786928375575132270185284838128119429228106809253503242504297884817504114797440367171998139278060634934829831451019921075481753627666569222393794439043364896536926161526038683503362750920588759473528711882709457726831571546332642290721274246368779334608303480120772222500690957065230552756797803765422964669054248325755924261407851416207431555508073151855048550994924261557341721512062559026099960107846854462131141463539441209489492979808789960965540077189078031284061006631443476209190477365369392436729884776255784087374715257175142310134736441135483869558679964684810939405255790062125845449367470931773719955259605084606194387826222712264798662330790392040838123633295723442667783427037249205030093292129222336302137340355068445729888965935777880351007463356797653545748966172476590388689480050307915236469158767187878575357922517138915017038405161362562606518028890887486966920484389060936919774090107154754453269483925011105191500047862500120523509846497354566929257099524525986820315662816515673576707065152902924649722045993318538920489739448448474744143222422077988532442346164737205771361424877369478495406564108546785577698838622175413189027486365931887391859840726547773509479529106156545553918069584571218458908298627866389450145319199055100059684259332721362131866217976513838548230645154154068248140113889222446489549694196912916125124461824718487994660606857384128409775611588248778262413782509931944535050153571109220193013244051793552278297987248397252801177336831846604289481268623972705569821773971252301817301662908780505501922815895185296719201875687051252919221118515076963283625277420685031981900632639927286554552992822938069839086528405810507912140866128305326003521909336209447257363586872690534871424857629616479938422827236584373700261974300511422097646267324345779740814368576886969383029644181374339269017921426917250773626282966441657038917845074460802472783017442101931639901951713272963368307628803516034241754928178026158623455074931840623572946245791556740681209646777337940053418668739754654001134794189145570288550279888379812735321127866213066286876867208922985462384886252879002758850604705543451240782928936725283132216476172056626138286913949139943578706328176276381409854063441442430139245660873817574597766746005378224968110621819174290451107873045606587229830057136058173804336812332652037790817386559467892589145425848250702169057171259267456504453170609424972665419234229887434976762534771515144493477187880948057601653076384257456353857414580456126634992545707101480718057495379972172796181294870253184102634527553870396048479340648088320541405877967200116065143064645849850575783764776840124848743948142557994639920944138630405143296066409050771021624412328523574087110168516955181714086287867697993093906755102519945241227500483720467868786753389261007666367664191997859619158712158554797052420305613255843280187743146532914039272271132189853286025695767847477129760004943914929507012999544942703574362443180821171050216791334792905288869844048012259109152616903864731797654930403165748929089358561899347407419761090714571457706191451721829346429890531565901197981159962070346298857105854581505987072997527148605180823561710552243717198162307323679015078731383333738102096531432285028717521465514034985470248824853242098612724641082425266535880937790800542604415086315689074126980324964966813753085007184212248650389091400563239076031232350543069726868978805983718432283420560330476347745474155494513219058537272954343687302022944367730004948719246904763340482512215010528705472842305118867042693520321364170945170625565204053270208557295789700889032366758919703148975185890803871109796367395434237336510324637492000835585665316971642528089425071899377286744717336877310451677212575437137696873789319177597592479237143084950712002785215140177043354696316443938549363631825281683029494673446954670363487877310626309050472735617900328986991673576217571710618002394576536197712939981576561002200951779228930775883059194689630678805876339506540317183010421547458727293502824219958658871174916806459769466636392012782225579271462008340972340737336368355926547802526136088946429963136020102593022111445618030853234968953544757587555390243315053293287064743841358281852288236131885304185741085342759748345486276386998631596243475745077744394166786899296533209988807009051844677456921259383096215291949776830127158300622716204372947967437382487138362147740570332583569089804165875898710791822361895868485897843228626676289454470008097895833238634251611283196427165380255586424351398602049040076299933621110649498539897115069021336757184706446690467681362901490943377514557289027870878446639744301583868703368536252489952491354326395383553101462989729085856243830020255978282884553882660304388608404695514057689043519617509692775818104984716344430971604374216510967979555305238023809353101775402124553710504105123376382810630128236130787249674523216045689636773769241471947181717918408865840721974238494418660802922041291238079821581472871468766419113081198693019555559259183703047423643013431129101730421107696595107731071857201974321043049376444201095588601071251093129814449280189689195621394579983518472088515345373663802566513117490757113671821253863701431876376000369300194422208967907632561211343580990256397649696757031600287181938747499544200732409165057334011020056126821590672206335412910824416994139815344031127755140817977280853934430189449839262701009745081315777448955362773007479528283732811295333192869803541840618582102326043536948418438601047387992118443129026314807314259792565413686648655348566814881388137716201701268443482506783485217977164480166961434592268335745120542749144790299816404021437462382633612319691635490143605996851709213107019203891856906228358436204622103162974171827226700707729716424684846177356985409984201863089957641898367931245482518793349343983394885001701961182022973017998391000310039156492092478550745772799828756854066230394574742721288480232456029548581042124332046480563896512737527818534466087716025516758082960426490178594662025507533108330347889573451144603582600195402743765896735310591920288088159492165239103282272710430132767514273862823863853951940977703238196721470254228169109938681090668820001484085475552314092423458496790982900436827583645095187307404471277444831429237250670950169045474214481235157026585523915133498189905782255728208385341938870737167352045431719836547340932731242865793648441582153391475526065824721832408028696840511358097775003961563287077135570503319323469257614305639532041156294930625817563410091868550932912058662470830424039177748189846411911436093388780610979541599089841947440167848353843279038878987067605781144620765932397010542980712968291487395678599345205790943804658713322275092054821934103854058164517823533528043956538247526149392676477234600890953949744537141305982912753563706238801972068729393910454795415265387532440328853073551492405087041874570504109048287984913510200927506837374900311561843818518767404288517756953052582924855952613522655448652134053853393497260480276793665693300428966029137961485262118123059414140337510779251483540627133501135519516260799565713185545190676531558015522306015952289144667067863313770736202020242306868205797148488342095683043564453254110679101524574883555941761542169620583394958336628705998802451689416705227986216697018144252331029068370547197567845334355555063792688539102619818307691521877972298517966821035958265028722662016200124283127339403957925971123200655219021997571133109618034806714781047074279489616198800309782402540033653576345421374395953411457079365917944626976356703896878093700129886366214194614112863985557789174914027500849855324681019862282385863149690063677014446392148029342941490254811665816468105191570962673409944002547298914120478963547294025860093983874455129099256203435985586353893781987979770796699275082188980995506157521836634200421715758738594142554054821898683110818889609281588559957244089717993038133570707776731097286410592848798418085113600801800648305705147390883099584379457548717155816081094999735931038158091536015804618968328479674528488691748629190876330854624889435109639842971493909783989384333001947949807662571800946445679362052799631685601032441339679715102727368604399179317331662989356834425992828033868643548759613210835483229904538436138354667847591441798799706781307177584102890573264302479391017325400764193382190055051168817869440969558882319441871603416199204790277808772275063840163338711707231223334827554602557402066535883833687190533494179928039236483201621835021715202453713268066594903527011854739001818767721315239667425297175390729814204982575801597338039100369421868535171164174116952246347203733734611972999814607753151547104429438022073868778831876353147012285973557369364718186971343184899793331392825870187473836191030397798509783307446775749269612648207117324854360721960555972540515868099054886297687546152488841404889148057521008554479926602336787823037006691440900626672308110221532869774265995087704543963345605065816380511878936765244640478038851543652695056694331221055023482526322775871372198386536357195682606271046737199233005312770411499940946499128532544228774787511895325438617510077823864544027899813841897240705812049405814645145750216123998237545234405988872748103519368281614134428313034400782081042966914074934285340715477765109010801907305772767560066200121047854097228361261096157445037032133728504188660907342880864555970529215665432633822484555904478682306327779803439902391899954786423603308637633212778677221168728201208328455919944270521208303680804084969998731571097270181671159199248210056922630672348372331198766306273967259438170263090803108634314562699235627639449087784766402181287084720588545909127052751503777688781100902011277925707525488373382477191362486908356005926620189473230919021867111948124963901912776272406368734041818870514491983210265780227691680771397413269024297161364703833068038817703315027960935508279005070134994558337530934291883433140947951626426167935853220994028851495938076685525442619247922073514932871564606112488402008249451394465702467374159808610328976053427083302040699386549336505575620571757927024216784239150494361784529144175786693429720499202676816744496779161874471802954049155655684105941257790727848493568585261585484106132306515135848059828656297306649856438115864522220190373915772202812222047147997597852914136968493757135859172068264519470101699199613568135833983055166104940851265900762254976994000956686790668283938955959275004194687013655077719775176765614867841621039389995036521977081468588449361206636929166987353321546721686426897217370334718657266993890703100851787347463778157395110495993054325256180250202070885497807859938690695155649844084669377162877892685310260252258138094284016727352225529918446641680648731873231567767240558925256574651795184808529817011933723839834620593831042855549110503406832767684095882584119013135959020890749559416196375013670137653417421270464368759616240535714628760585152747521059133178273159491566415657358218111642153025709188519962415964166653867210032066531050324943565601877617404045865352506231105202572374586678925183064117419639603758264314449767952391153931741606442890393836884196623802542523721485759615225553698597039155652906481419143810482080784371622911812564741878847553690339046459815267469962159004430754925852057799881723172898542089090329360318984954783474575461783168046547607764875644675173405830184675327135368333736217231527860181941806854481539443364295043453394900081652138127599185924248713335305715800919876950792682475725217916851760693852292625972496103101332141715018458447035601216603460081035652249751677448387820988452419733196455952926021155379743701311501053964074019464313706537814295047724959694074461753035398059861233421885337975271944109530836001693616913330001878073829295316780588077177220868250531124601103827400253682726814000719497125381367627541651307946316609979090290251933962019337346659555149988717119895871475236024638150054476862773472728406185402182608200703389502445967706139308669313396132432332944714368233676840614283227125250677497005533404747431991738670048857769175100386458810117476685202007482016711555864521271146077386483226541173008502628503103694973877182493072870725174279900724559838514620433587762421715360941115215327480192672075514771027762551566037020332201405588243778469824216484977867243116250495933109714199288113694679446158789453183356493521309980350186944472015582457318963834981482832050275532598391118650244755499076182379543833180094190337009888987870569484591199221284150221195167542349841174317870746928784484450180033586564095645589125207413684234588873832105868308053708566822003306345520820797399438454823797601582727303624487762507145804109570292770327534248159033418090614379955646034500134986336647765286329575798687957699834636162339011239857963201719869808697882390932209195658122862840641519219955516684094465300603991030291783445170576594851924599076268832903015858175869914917191835132025648079594889783808571490555488160017532777026129760023628592235507910550195231526077480016539506109788307797460856189319752400391363950069350078241746747417491421437307096286196442741151147335308604857405857115602111087377554662021091287196169156238425599558087480237909576132863630629262537525388762423916174685483465066743825676678689206466776195303958044732092802549316090584375620081178725343648569153085827100165126252808385047127488545968880493457681720986847875684794187898436271349363466442640007907925560069064045913301488487284058656270374014217255390855075251965203890592130334794999570678606835300350010860418288270535894029918412469163256968713358748763859551047698812799976001304881955351606175973817928621194540781904920824717978397788128529047485203314629084861353325972368912001495946554934469927995416678378616181545649623116931977124437686675765554662330802035639050600419269774835029186736923738099638423368148583407972819749113658163208612059102052525597220302803965796638710390159520459989183023162639252919126494585601029402301359807524341139291999787428915152165637799388321714800212166007932493314297974553199625990959527879477745423921585485745923437885837130092848275993549241605104839296513960478685251026483370825126961119071580515316965589676514227773029938851990428321157413063005892445726190438327889904500612723366456859175709891041993203376112818625129277170413043412573798470343628250825263186973269012073531612618995270007763321751808700556825331136640575815060882708489128559935719367253767923212512984674072654173860447165741614249352244290208312154948622727286720141769647675945130288625285579130102784896327006121390043222402330587503803635030530840545893281883594531180527209202103402235146360126398253643673015063554362552345658724264037281345215799089422457809162891728450566822064384346400699735004028291512121458285244831879540774128237105671746158351853134037134355449802386625836941918662798265432472530367464777546089211084643237635442795011358219781872023509223668959867424004851542361552734170576205150254762083186674684362116896475358850798650856500888223173652585776399503944908977046366526794092507785315324717074959751392052863737785165291798984035037452808857755296494533029934343555319786690709189072823801984133138563436924479014984260794313283248497317777774536100071562414926105403974537520367675028170463846545545714174350228009708526507460163104593900383461985507853541715647401349645646998245742772944232657212185444911167202290485076125090187505225890519875401353485426598601280213998944144189526194338532334668109630225343176564153355148274002150278598735346237613706357246023637679359602629701365581816616572194067101220480853964660501764930602149217874137291482899469127168357951262392162723167607066820073342530871114439438434098426936430895931446424783204489923950793360171627115891740304677266018215607550484940730814593657720286807693131874183269482776208159488612837769379039871009598104448840116813157479951452455272498438143795001738500237919285794244291544141688738214509064956347344235726719167727407110369073603858962499092925978777355462890613483674584574879612469387309460341059526964910783509417166878495557491166136366187823620227609415648180422814340501816009822197934585231718988833977661986390833898371505429687963095845512507098506459199367189902563848802281315057263158612718885816774494701520774509410031020850830114919459125513733195366934889351181478726770642534307449988830371288909898623831937943117418989269314211487212443473483638663303118722493568656092346113726354933144279959799871565947941825548046095861387430927695032446652903212173474844895086057295985916256194316506031902068482794800469123255659271028458479973632510621024857002186869456773261400365838093346853602309304212586146201001435512382132072375489904636055859626174497601603607536485764741564897847298812209011481080987414724810543969625325038628890445526935141467018212471484806987971868188207929079918355895416966930642250284325004321742988981226307707829510882588253018323805430874504282931804186809939469899425671505543947290394559341868563907719701290509086893398323736163973517978440916682224461454183906184188126339783188850689925241800819142526840238676267814761198500229368578206152817058077740174944374655819252148603838908165720718825363708913074033339092090890547204349448429117843759556646541541459849047803196234756103528326609278876007391846183836483610979577372922008153754996628522739115766745516740875188651095291985104239016482817554039273738106382204734971592196508026567912818639942260004482662060633618964520760044210761038882866270291907857513382629770702396984102130931321636332317528190986110055465192261792156764115061664412611123495813338678142363932302419911721103149906778562615177648306976792498581907091760336023949230038103054002433551984402030201830667647470335576059594883151578263703032671117593469131491468306261966464891446716540924683067179183934837021002674517285661034565413966644024759731356833535512451651088734010838521297166392005198514012149738882086047396251531334343861997386301947917887125286403829043202016083592869004889957342179837864013474469373374564193249840155368901422588494618384975852067218295259409794493591542731964938576326165892265729002594857389007809750502305823469145849892198829058727047717955139605308169778781342701179648341625109662342161562273015534328680897430391077540380907583792880509969105502250467455358656242721957530974041909823307519182779109934544192028487427080110520443729322297716842645724753391477626423181070275813642630402719138030364302771186336350858953030982827721578505550693598758730847991344843019367590619670201540639582842673628138350396967215112064854545448919363575814321596248793648274344845377187387157932459063744995960583784277937544219890128967133841314138105351192416194209494748643116750596281089434770115418040806036849515282018843353530808477099938883201961418413855030754240401804642730544355093999449093872008812891441685075182524218394355968881071349336064192289598624845871745730585384447147071290313938464710324570150245761337887538195698467883448667797405234998016373432308831587377331754009629203870427109601717180914139454669823564831266410831296190425932381528636028639294178639515595242484945163015665641083198677924541759928960689906868616582255527090392671428278767627870647828012902887058551034744070345569001102677257989214611121985716133123270840086420342753851473204986026383927932354029130879751657739155277473935927235649513558020175514362413038457387252099337970592512885649600235792134949129022666872477264075469854544416833626589730776576649901996012944174931053044440380169573055411695179706402108657940350716323510169356678867495678858574670471819090747871127138281096432319332022055936683163253985383203472560108372050300355197303170774712703573701572314474659116430262227044557914760123143851538214247794303957597343044917250688260637658942166161039651021981558104642136422690293604094266542984616702400229799171588871028780979710746751717629032945478253340523811013300960960892877792418372265230996863249541729559538217472388400639062495584261127366670148884563368814117806790072456456676597272406598394586497575198918998614439288917105799916240937629028023434293645567846926793889082792195557587516033823141885696629268308235374337375079335346261668638425273368750948783932759001013767117874553370349249914729835953169327944329416708620131492403947313256029764011160111729965082205906635831272287806869989849755340781893501648366998025496484447301031984387187238020686759230374395396387346317189951827333980539523008743942746268070745594815038164761385239440931289652425142214540451380251743584731358751992896482463239020311383565296893142755549149411435536082082038248725574877880746627486529222697286056646296290327831152670639962107969171855817045493553676917689229512991718051963554939337018376353670652101468222696938400780475527373156891996353562763140185276266094674432243931927492031892836379910915966584894636878010003833745017529434994277420861533138109815579812901671619907484203306544477781485250299822483537810723239743227344467383673479273231937727049112565215445602124162096348801607073067418867972699793751516811686288148065873167598015867850002414203487776153513902259843834738285904596145910592983461412305888509832907643239493945657638107555677576743854315433516542975417600859803810212928236699445176066144522074145619561840880912639700682790825797950258969303870338567622168828868933314052804429607521569551698345341496999379452178895118717354095226621600101964162468068647272629498075599117752048190190148117121160132680199951699945516820959521176558999239001357434641809670872945617456407817271847041485267841916804242569216064287500049333482759600609125892595764617081616429660339233450868254382450614294508079516834201374427982250306824979679696809402037449619097430049932885982602903978415238801794489338772575826107100921061558010612975896433351334142542329281569325555737478228399834664597860816417492679212730301561163292931701580357818426639150472861075239951525204513898482830781976476411821952081887611970708973813085527160168647192173032833153154296659638788068544251052754960208801543417948710054108654092213096920028574410162464757702305404340980015247001637893045888701513169285539467590273016832005319149559197965782264005031527180204821920724334871356217022501988300431399818242425441186642919445746637896331804051199574076591783028554313200315943223006317101295794996940372328573596159383014566886092654649099497085618708243555250295867241157358270238169080793760590664408398479063306471672587360858118491258875180042382762241265464406032520111210610038627624740406423628273676807856089673079144232656951007080119748906943536889584017730865718030555690844436968002108573460326629420474142560616564452462717373304182190643407077070061489625748826685900856711744793848081890081304323236103052663102111251280764733059874125877939908841256655782728925016119837451927456534017953434113104446895567747261847291518954741605594792579767564122576371999164029974511690855692937024580854903604745634941809164072065158181896872860581946344595597711480277113871944864864294245428714707901832367755126186671098245495682736917503332982973306357275483322261525293600331611688832209291404888740438462960148185739123236337131988047630080006168681498221315891888154794830882105833513417894485996848931267364977531008693675895619816412177933555446891476501392471187359881850354748359736619603197356858274717405933327303415960342154628305677833706823486122182369097122454982264477490699732192558412471615485654052017226789281729054373780302777966982615198291723752435845123586703329358342704891478682237342887262280951964641720961539682821939192986691160469686328443578600726335832972407559427389779608653478136048864608698625959513333371921919329057580738458352707957332165500274722349572563105068101260573941540330827127529778444065128245029540637959249736759491345852002469469423010753405151596257426018550714935115701810899499816840577967228246205734809021617845148448624344923024083861914521830459811118664390201521509397758966684441788984095713583515559559118572498003515811783000415842665475559169294584468294785164033357895249752584600474777174988170323143364168400798702902305501315185497474945516114142638345724828440901935936124252465086322874358093093318270411323517373846375742278008025982442286884645618078547622602189005103226597567005526481716816366771211449042013370427888392809631991743889505426872244025472707639968469912304256394880289432780498385976368098013628677615354646565632400570047703706989790276342581238286566405057655617252110696295176574961802777435249138840347425329468547243947043758563424574110985799481588503940933024242200730546920603710370434895057455870823420464360642101633204959130755036428933527164997637733415967982931506268004587680811533191964287156757190432931729571877441814982855377541395821201406503493940452640345297944754393009348917272021713252504572482300088238653820094937444207559912716802499643076809279130163151333357551567397700719170916308391646367959175467801829502780050465477431374529612236726546061711283627559803163770775882769021230575823670464490232638610443498370977261314630126983807558977756586436882201222861092633128375383009804141384673647150048148136887565457049619929954970934920119000964733571759269194770265893063584382510069077565467081245657337117386282910611648250907703912956427579291437677961516023154481646589338013128680552714131508775980436502784702664446243385587789886254557070186380935038892338440892431293323531970421581334386621366329269499175170633060087564985821521554240860761666213304175145248625851646687097413532099848443249314416834841243526580456200168202896182727781669908538884496185219105537957792539402907598861940769991672143305922378883191116551726618329883433665192843093159016823156345753142768206211704390615981960004441331209160498903704384976371957492705723283847735130140656040417972231639104212873699663194160250148040604276707396024495313957207268161339499812624791302357243688126415738053705353534049067989068388814191024786842501902030518570191731198010078217327774929393186912975036921314561084017837478961927347461137834888051765685781938702482052829647458204895426910077477571773597750421852184055095579282257320572209127596588456497509409380773794444852239126001259494120703917866917896531999354073603361906983365970723013252425146173413442450019146456065677706242025799147131637641680255063380755895981060853922262868397118810708088439143600612255556180159910627641037308236688654975492155320552635502131479689407343293634607389281758969701936727975668837530023081742678107759355436428439832913800696068773319461428089657063871286108168014900325918651326595006846234575896653638558549220891133218007030177121541238947198683193781369315136532863648722270860591553061618981890500495918361219046438197002323018028753191072017662645209968707699926735363375244045822821154639258055330817893910828155312655417866964676474728977572812241506664003260926885171786340060899635575933755040578965728850663127773245729259611002365876041053149753883305848536744406161910161052236343772590808148842253028666969355753887784954796284975017934783686167392272137702113200830659936458550992663579324302777285582938351224080046991684066676031954173040903503677016059271665404373125099537965409454029210312880490907645354687483348013389629221957152176061093636113377657923885746487259201016823674098217146625069007993772249351882451553077261158027901584383004337781741130614221093630147468689005199565735020909937620711399261120053534634634910113032028721460593918417290091652106532693390841572207401700995283812606164760961211235772808445872338559544002776675561321308445031452461493527171811368250031457275425797623515938986061195378442648178802095320550517523073923123447974528267068288305341870895210085115309745233145151751040392098600107673114234755831977836179682124457947984935952981259093549062553156225885910451702128626071808678104906075928250913826220047961654481486746176703843920810022372050826934737339168933810335574023996711675463000128899942847068062794565456469996918723817127308505807917530396512130020810657802802356578319593777963292215792486048008260038211885385664239077143963386537246178149393272610117823870942254469624548248854583079986284481583835900734247114347031089357058311339238585742852089418524450208320568725024099483011662964818333808669625904773970525524443701982812760138009855764583890075954668152396303936121909944582374449125339924490367583122620354287803807451316172366770146994894002633718856640091901606029359000767367630255272794300272469147954881508476886572548922628746989713472196888104387055811008758225997062782643080738398556349496969324778955499872578550929308497396200229636659537207335934301298413858428972814155911475117472349987962497812647905119031249005381612354518530609983576062689632404990362124180398175722570090826295959912801291147778013802672707683414230054011281837914176702011461503626470241088118251941294000944968283942032724560370772722688348106928727256014697779585485246739749510716291539554415028097279318558786992042354852804698081808943628627882101826885008572533480983164347257013134386570535002521655827745513215441808675190689073428077180332261556850860527600676597645351450406317447951550592274839116468189618878555549205275942476213278267941611177911427708729801904106368576950539273459177944358705482527803684574221615377741977091747606105669942814197400259230931370573235689348818438469316864795944770046994329858157606396678207007671726635607936960061326276423329969724338973540544555564300543217693995515234490720449548648479346023194416468453336732730901462567637240058438921572187454304088961259299192060568969315222635084050422789930266120615438378068700696913478479172428257840152116120265890880576563530575321386214288532877248269094186461645681517156894516773385988945553217596295190607074485999750093590822591807979009276577041496188993039801801994309117651850978318882215755405272161304189880065172206615544560580385840811685251040647800133590781849456263874067648395059161440093321929634615847755219042435058331335201124678373076752958021907642704989212852762067623810155748600691890949125874926219922228333500869141702093283365587139707053135942561276342749468005921874874381587980839649908594983427871952748584945277338644060993938519721209088047348682683641061918664028502903822387542932526712785093204585869862538990283786320937625772934080307987702682058568738161560228793425188348148848402671734147597967281773953194389319469624291075578574631166197322380943276916021510038532910597378367715240844268275297447176692435190821539268886975068632083314255762832439222285561982838061735851770535832154484002346941866892321220583036690851547546903943006442414502055400234526474499672182898086627981563849635526887455042692596918592984746043564849651578711919459383446667923423899607675215000992119742086436207204800984503079076278057773155349084463577419680885543712008004206927915592113695819629993787430483679819987518936494928593825306234118316392980986079755038070165184420099221256948461652984946078415300754039440720779832412758325770863993954553446469070561720969971988651436117317673282118747371858926793848709206488434783655121560114885228810639879265643342899762781813142954168196996135403632643057331875147617500799911171266078410438808164109052621315511689081793405922263931654357029765304377033812015021140065434242583278043169338547620921254295584493624177640161868144226367376501706441549624869053934441191005008993194068092696823648921652360495732229900070101996893180303895886839455463052193578198208081144281959312749746309466491671113963489273193482635988503780301149005757384207700320638267219177558880513565794147039665149615097297379825925134677126109756480161354345232471291500509610869393676957853872553354927036598105215201923269829534313530649654729493014197442429518590725581908835291407775223459188153885371360779377985744199247845579435183865925052032120048473382454997398393156833682082941050779878813665813057694615787707804562702514949562827544473952570038768673225827347288725057971611725977590168821548730468303961315017762066347905941822286364847754195407211533579670773495420637636402293151973795128957671618665877893375091901982742171309554716022053446973788626914484068957497836650819585489856015457467893378235813573013552400539221897177257883610051917749268773598887734061665125451644773013178997983583032904662781748142043903025462457357054080176203980003291161555386314111761176591006596541112287320135263958039152286552874716115864225572725333407393221977570326518489261686776022141684245886996499519090925398325540135213721138278562129666531446430891341265660432516229756937405378027618601660546256510744230023948079749083266837426011274572141908538999726411596973468889940085517006118779518440359144281551120740661028440864271066497702799272879520251842674072217822681503542812259219568651494965169960934732954454557372507861650662426751708835690050135649565500395302865643044954955434840360820709686107740020553102790641989427188830725049182724605599730062872198628446313917919747110611617986697461139074645140738077920468805053552999236673310343673042206851636281990155101511647860037022579198460595041301985266528852404954181320419440218614450758300274623824687639152669738105970146462570831461686990849383284040942957592154404897498690550405527449536509113529266578177335249801153723897238638232783578677433674673818754746868809204369409052681666071085309292122328704086188866144867083610056204241967256200884330561729306431991166166252559384061757624829594472682526411627603670563906115620218383263206774275331810069355292542440951772241975883819831966595883989686158701942327293761209663972916347496372471153604408688714808914459799065027831700036904748895757914407834214632087395165946088912070340678623021531339184959964081549200844958047253330576311403882598386649942547108745388097267245401967354004740275955954604657206788492809821356894622202783735282226151478134467152374722342334718842214042961912288486072036729749423658803840966266283995857266723704640241809293614597927242597755441347773370260078538711111415190120298598296296745347299159728291292442636382304389299648653852306557866594374718087984254816807501011793755104519335567030407241907896824025497934999039334511810164862101944543306136366041921349400004260232468292431436127895724835853854418155502440124403359312390827842554976129703010101249852035927982846939818630170263173500947819662297796079470270644334864970604024654831797437833091565537294213157053739111384740088445241482703432843889822168788047355217469904462946285848183808556561495609323777541144791643956063353673081936869851192655042733271482149115457646069198989445522949629949364907428583227358872922656690491004354781422998743131705445537248702639326172158758694890689595724603031106327322869433241673757018932520138618229575409649972741074477864024429312699746746805866251024325770090718150866047625383338986745027304770992933350923883579350084228981432044795914291432538370909785547825954054737691101578850200334966360761414229163395457112887591387685480222159032816944096427461749536953303380702113886345149906572781914270175091847000900205036932263601762356141928859887788153967736696942960881619750519747853982687723988350277385074819927820032569600702347016185477095692904872886179030509446048977945623634340071017100273346762458221103081006176224764502014967130499821731459640791305588351224805384068553522761025498753402576539334437234564911118822848212000488998889975820527584918432580906058333124434372529000077628684558087261921499102578918044134932411149051746314442567211989240472476234859687254544706446142731828357095809348417067650832827447501382821920388202772764996573110907311887128625783639260922289214845635662900066173393284415992275912830268030966735129458730847618018186787731954641247903336839792220075518231340879027310937376860688679746489404915736730873852168744838736311687061225504489472491331483477220453013936244966478343777266767859875814576535595851104810720123786080843415132501441895313578024187422294437240877185685835809114961144928193898160402569978466937952835715569302309267055584738023875146145202563425342034565356371155702508571876137889620809263525078695753791208881215038037285515317299592451514323021981643848254737324100333750301442507979369851703389145885204111316098754752784410701868261410535103574731066504860787591660842505428279925369393997266602758649579594919473181175361127455130431642024495779813556440586687711446175418259050264374712872609010953750181340154297601638469740136337523625552243155667165202285600811941072544264986423013412092530363944280232942439301063298802382587565356082515727875094530165334534608241255450256080317530506151213208317213327835789058670186612601725860381210406373106588989258453564222384034905443970508912349404756688828895019566807392371419756597772424152786966902586419257089008745068887585144332545665934891579932388076652399993186910102722835726032196071876503728415291076469976625451446884280258373182342925714351823161064133698093128693867786557617816415681555728021499062292678044914063398967090397962952743317349773144608735772922381147031725584683102157797507602865022829127951747725712064246602149870370836427827091275776187418665916758446265801079890827478954699583905726622687617054214580104716376836457643818599285273933201414460726941783164224046285092893594951022559226083073615578578147835768729723847895261484729251182562731449117088577995930934502353707050975666555746187065193368702788167068358305355235081110277382141236148573821518707451716640268960106759054470383797136979932010378000552726306338909309725912901102843703135089241146791540250169663162134761168411087826951640218804256124229228320801481641747810637076448663807206733458871493546101723799359294193823698961136698300482513697287064568078422870753141610761253193674490562275033068683576383357897742516120800348917443912223248615842033038341867210042705904543381853353715733311129177632946779230109370811629067706509703098960376468026204757367608686109110264869855082068395201638221298429289619893956628100600634985377985535814726859107473129167744208865830333749030759587291916623150624476552527330278370023962430198420353829114985112920999494390003238072212847167914991925265070148607823938096637531002188608423226361755601647933325364451245001785688756676029181321417910345608773548936409909508865612161599518985645324813187942551181224001650113533337639748199644554131276956448209775153709546171340293230534536566972382491553153312384515029981642253136025377129644362442702648655376303931476160177922267549937907413849726588287498016509178780527955061004644697313987925663878284756499898464694107392430645681367681343167033876267394004675684598491919334465800466372337113915158963725858813591466445462473496761690782169846488861387767552134152262403800441390616147203071892496123218914307151946043072251309403897315041359050222438409046767237798016228085881412498227592963569132762134048144303018673289856172382910736132912039504709440097067648233717560110534118197573970277245274290062230437789877336702675507246542795750414174565522603298620482273355835628479971192631499202854485942693660965779539276048907085102224043905626451524814571143026104950990641966688484127742023757545800523505788562244871638628037053590447418131151518819877422778929811202762017097338982834262448807734460219624608078748322632001004069553750259202621259292330312549867791744011380804953920996804772122021503144741216653244369190196284172332837099795702598351767656471327881195785514132130053215007569821745045125365513794421954830292405545435396617283167847236054656455830741160438738583423929598349281790550794389576886174685572516346233826905208223318141740148279553952954645514515441917639728425904176219261988391126917687595180777536689867274872030200787542153738557201742540459951200043494473706869851074189423262989108195697908389325304359805371329514037218380505378607099274224016034737447256362265856026039460278024602694031829445546915270578670345065469856944147551486613666618018370676294127206935199613582317682350811576517399036577453347521979922169125563141290255863805323140030906185914838568872163431276955193928711130150754230491592396867029002520819279656600941657015432396626623562786542278017601513273023821773646600993657257106800056555001390805442131930731855281496356267050115269530013587750374272781706092783932815393894676839524276308909872716213559324198488668457783453780422848756187897527714669004760794151920235968748376138657229378971567497023067826912761262739046352820305078085400533644309112080521952052689870734081350435247270476998443637457983936365327336603537738961333501568756959911987109801481990215437305278551761257928153907078976112729740744453267896765541594988440117639596982809463288015077416708345222359910812283123740138296553847126426406219587319940831413132757544934845935048895999675258331424579005921135067507011500812116072011497418313485168668655571169176344098096665032918000681935614211660673945033493544195778274952540221690330088417251045358064357011502347300829000505024479356168675169085412338803679959378739045219280369140017609459278895899232836879071177000347345366095771297831368259680678251795158018805962942420006827401420475327881383747855003290604339993140501373412412090016432619344332193679046987341871998380495197461732361315979767668444627689499296307738464538155302206644234978298190183574606498396921227695592529635060804956922414237975269088192597521623017855156441812634136012822773704438140667146518275900716224974881004921105063679207787660029510811683013254621222754118207144056142238373379851956244650997087170106059510974838987179861669578354145130448056173334201678142886042210443393029656319400855636694483890105410714329107795912868236114197814725101052711818502132210108949403953576230127238612310707406618372926123969686597625968979219579902761151139234740050903330971236059058629606641374789466052316599193478686095381421020621138426534967956237832166861838656339437998898876024340165872146793699747631151874637851806776159341236806689148972313042661060062083157889831369878458526234760655688524788346309245320549922064705083473404399730977644746809245260349781155848993937732301270651872556561310903893354940903285185175663952873327495120609869004933334232362304669908370645221855984465599747842333447577163598339929380040435174671713241457683401914082835629517851621936026331272620874764750755987400506869948422299573201077907659454719834694339972350939383479820027840110861911935489229329182186941994966332787610709260243265947012907203365408526110298855719883518590714271140754747513846245863855922871561218161147293362968684009888667949338691315496956233693853163799272727262701547748622735454351969653198640277804059545015647521665586243656537928297035729097900122132562440402657244314531234087072717350406284831433492763199384407935461608332207376602934218065583760060624640417897530749835485368004154986381597242532462890283560949313623882909321678037861806601621416563655103145028247410612806718699151661521468881342897954670831301038326326505173238843016148959991011228945685810593230344585382991481205715406574403932036564080439123453769205468718908186583744918449367224270734339670411826419820335077197288473359999743179275781735155924343414809873928651686329694451071569168715134932816176110726082395950802450650591670198670086645395870253420617526152744250263340513357963172412626202549842210089488321701625142229922298740340973845799548828952599605917619288686339131693558432102490384879768362491551887485548870508249977913757257355905476520930182878947832081939101216973128438908334217023418068584627686516721533044237633747555950199427555288555129455567164036444012794853224468818652534220729161184140162737455134309117317114912839333284718272389736027319844543386426741891689130074862301178496739703949013291827702562651170772353307576409774438926892224474451680650723998248777934758555429102289475251239172283758558448990862008678600547635413585396718666183640393616537090793101682837142298851622065646959986869527685257969525437500038058979450159103017082163510191799684157962475715502135789077794007075252288733016078792254625035544483851614749594208018352970303978475577601515659401729517969284746491583621912587382181890766948536972596293927379688826279242830422677194284959103815563679319186698258641971740384655626973741589899851368486551716146933425920557783099134499910625373210123116542179440219950804150334303016511462713018042133866303291523544342732856339627055474929388226586542924158638284877075478850854425531418261948299843517737829662484724005539602320894620081895099012561542096855179959425884139899646749491759640741854743439391250868207374136604047456541762235337058723210625399802747986801648935284796074747527258910717374817179258903314120476618413683318110773531471927567754303793845122753990797729935334017862118410509579172590933917837588685345893606041252019079377858976515791970120038072102651912332433668713422362698006709819465560193258387339018301316716376177715799466175584542517589573632334570468967680946100046156334710436575502532586379015148748894783489911089378791859886377583367337819788227032437875988771916095866136628601585574168422611539494608203080546088379307261773427670983532296372179078724669634992815659584641073353936966229499717347868698024549829295747897748633833281209419213420409183271171301524903715863830895058934509443644936951540507238943486087797340759961264132949272097421035882959654000504013903989488121885930010011498081666923756594926455182147012670325305846573371869067599405780626520954216042291832416215081808707025688338174341725210404673882917962130753330445064611657768547069468461542473135740239254969878760469683859828844331828466676234705417308879389378113259518024021160218262213809154978582878501026341137091503542788989695077640293190827592294395531727817379871577256776670541400184349470871439476189530861832697154499702345269757881957534964285129742435355524009650195027464974384807160818008298470650160909317125478623411659608177987632614628797369833866830891279713609771663750687181042607772519609940524448085558036039975647447914050983005955576258918217387039118471747073212006136525230120761957064196177144868836012573887294817027742046515063361805528388702209294433200896929650228270103142325421734515066637084563540921324826553335005683472483243244844641922803187293912796962530058719321201341289532616620822581700651611115343218941262492598977999463467554254728596408939596319320799859080093850854699416779970107562226575354602166302637301550071671457014726055544936787275046369652156279503855808819506341789289174354440334896795937397099034881978108167862998535497706017167243131856451328360947743810554663375847033123911192044454407012559788375955497981315046241835171965799995847093107735606424864640877052121821877508586266030056221965531678094021548985118055434647299263459271691264625192604620367064335579317480346557355648308371663902337267043930795365140581627312995528852058767626467269843174687333899204858295052497206025394979765450253355099827449632322771727545193522570421936892908836212922930883192207309203578758666064160503174879294750427342648790465923796056358853495544400702488949613601993821707477012987171140694416396160523423362455588312654384272130186295116276250396109499414222061084603584623277464362290250174897465742477533504229062411288424531462160267128087739995216391186818845063623404256447351995947305088778595257077787343830179340464015917583876153524991256622719929036325828288736206434489896021616656005533106817883106755965088648876502862700312680595656297522183073372568051408638955503754284524806604597753163688395071165493579296394415169212074448871504788980776452534808277268193817602898495918938119744318491348290298684511528337328151596530066178342878621118324457549017021196982009678467422659240943192388713379853806535364421476630558629986604191917447134501202416883943135018215353850308637808410413569199345323904491923987170758146995455421690337524352377148676162739249627604177545285338851115971809656240400494619990444978715203705835378390872190559917704061317825352784108846182382442178131909664716039115378567800221567846765054779827390911946445621247439758773118345923490646257228529691481559374506763629125610444769555434551262680880349666763289686978837388855459583892096221308073722687271991091508346221131151847453682635576170583417873136504043119828206887288067834565906889326657886406791717669013553623271522283145927284674772530216957859842588122955436534033135778216734264916195994829733933539764926575030004677364384015898940552727153669996754150315367648531736590103407704557162445913871789280948810779066533458182014099640577874559948294660890319166102343824383041817293801751984081773002578721103352807884877536036185601641215540328846451214342816861766597997143411205461539700910200030128443531897280523897322960588326398536922880488658135120378051487230708393664176538136465305987432023995229685821652108664157760346713069258538093726498660232048602242368578881274843069164912515384242666292886806707689066816488473297540896065324789802115085172315615473056261746953244474679247315384840656242815702638466824197387316077485796052420020181515285385615746050028569557567484411920892518061900212835442266137774003678444338716384420654076211113688699809768633260548715975454314830049971171624279580503155271364908605251216322624870762970778765945992315001335301524055823777039281644029329435863869472429035402994696959157346897945981491796961041801661165736673400990884865212840663434883778571548615774327978752174458254137199789088385162887889076572317369706645647054742906334305207886895711944443396876936369334128555760030232353394671047228631766484576137828114771191275918644539652083900250589036068292232579573641415685254900262331800123065035181300702186905210690240686496155603578119576060642617645642135725851651725486039977481488987506533754267467412732042432385235561268959971036769973795546678067832436506881364679932621930296284425137974310953390307661489857369987788740410352220775608086503729303351341137174622875165337832622939365382011947012747662188072294273477240426594890513301979734848608818673249537253451689082397473142435164728220422024157264799406559086423003520660047618366202416361547264345855587009903603347954007344218951021748293329223181662198068905203432202367951624464138697554735510404513859998712120867689128234023714140638985538132832894723621453541540175150571981141174287079845933640778039987928680501256697946236689964936771764989753364993466586497145237428852025125581487774525307729775038119278372733133888296218084283750900493518993977903172243777108817056459508162081142754076279683617130863794556387416051130870464869414645801055388506578675833021136226714411642068376837206112810070015218052725479493334265712026720901938944886622106883277974862702656302089359458287653226747925154609973963122024827113333207218871409301039622884124959972158090670692410260877244252476095506354402187598700978888775159717467505293660940432524692830354044251759569744881365602834517503763835630199812165652098701076870305254002680114561983963735403991099437187118821982664533036261133059282609445162272620074530247222262517347664163135320598057220208515385993396617101115342494309678267578443359500929491106793169620703642437319175712800726839934269015130590610202039361272426731282904410259758800390188755810206483572414053569803574075122221818233487626126400662864387310836182783490417036155779824106088848346767771374936821691297860389745030292822714049064943535935824534607316651103216711544279954411016967875268514625094908090518352512296498770753024503971786557601160003395715959757191996563838683811797066384849706621768986579138759346904224177861372661749105185303982636906676976784766392717639544979283435192824840556676335605098960175093745015746143306815862464948316038361472228958255645696531673560211927079061194226496811228498918970140453498453792063520736541273452016324922217393201255265513336900705079364772003788949220283313294798635823656831890586811563877144513753220886754099871001687296918309616512002665862299735222908221114691576248270335798345618982400588552466781354592171966564726953708850486595928417346988922373513586302814014082637354139264203196848507934694888078693048134158577786135079926417387473701097350114824491545376381338244785204184103533516101550910312698527671179827477204931123906502345454148091785252742436997473425436293093039769825612094311377006277860808452148680711203254682741616640572922384975599183512643984891112495317516241509919779692206779734947209249780950070176275801745004771900596988400398584271712471532924730623313247398390084874943455876319410737858163384732941345650613369003051929682504033893942593246568378954959061554430809237123901802071291191564346721859131478473511410972255886949167775119519236460400876170000952363438438257212140555575104684771837181453739131563692376018070365583033968849008816948264532121105800487654354627096562775327787706393186344907673234001187418134012089666706625782993265730761599348026339152053836393246007525660514688943784736656723484329789274416544882283279515109984699160088643115693407918177286873881279198355262633402162103532465038514952367760279699313093518609460612245129568372307626353536981273308370697597513294023991331538693721369807146744638936494804635462508412145972652364305857945012907597013677420546501303442722832853091254172630386252277807922204010795861733861151826517767777756407885503438403040028546690822748344519613665552316518752800349885847981447476418432034243917889064392354722198147549430489618055123070323063128319104792340513905275438191041479746488194815050594686664563921554165259930156364704825073126709585764507672130932787139751603534321174568948953655770982176480625204796047029460335850709754613286864069014293236074323147622769245890645305651927779631960378405242345456984963790083886888682651416682466621839201491726655112496521165593099381054658864654204598884017594924894092675498877461560106940076810202070969596999703789010983466778909740382088300853189973874802793670046235940858157933430124354026649777696091317573365184939014616097506776393452890502801605391778832916291999962655299455574912989299808632099699726583314274633230590779695263309868543651457191333592668727961469421420785151554315668157925220510175682419415974784837424367633032205179756167959455386162173792313862826239882561393644891305638327369888803823386708476211317861919288619559114189446519466593228296288631876263606987318830954233875035698451314842944086736109362079731211132894196188556531487506009983692774671219673053821482731999558305678990953127567500318998255924238162766034682149785587538669744155469091306739831500878239623751084525276364954526113209145840097869269719262786829377913979222049221291403558807648704213329288508794522093381361850094663918266490461556984017923495563369749247516853387336493372797452700966021392840871550994589577574329321746427863784903672530107343832809280743364233546860041468884138808905325815942841738532877380273731419877377611267666945981609489166033809033635420179173425872331835236810854173603804425220430673129144583726065196326871880790080060408530910939282357119984348746854508525090461627048995972868026193943556718386888754222612763495750197653027582842596493652604481348674538573837018850841212971722523944309388093012599930396843467995393967352846233730728569379207751578224612498455550397305324584854914752928606626199530408284601688568314985472133908291687859167019187443982227994730847375687765417837499537100264465842774293163927228259945347165054755063839776328741223804267205318754599923230854590538302204208691574763795521868162740378595565475258776289667727314443247880038547242723615268588544610377167361095138254140194697933695745558412656655672200248678587322924765267184874557250401388119295411352187116716955941968030316949388260320540793416381000752831661960478843939700331134196301614648326752597580321177431113569019241728933106663485521734953604284308313041233843739720228253495469744311363362655257916133334873734445893200584682485208838603282171303567512489967425121649211034196044375812294076545297353490609373811043275503707446733127105804627662801935941685847610269694342818426704509000258653170972753758130734898308468689401070767625273289676980868886035474731529189976071255004249543317319352085994796513772098386892567970018307701695374770688433459389440483701435941826338154583272635641851776857975066763861113648721261403899455535403080263365486656643931684750250486245347695703764100829565835464730194273307294740468062327410657866421130929085483247547019734734531146482520439213876743645188623139813156263647449346042871053118955542996358579019960802903159566733226437185621534208134878711849561074228626664806658145528298410205967395368357668446966460665259803171804913737902377084254957728425622324809685058767071663266166874295863971094495704194476819486501311840487602490503876706750426322864580684486014591008178583048853212000320460711721284559901118651909796467401219399888261408788102657595912968612637805302976126992265150867674180820932383573165490025668818760547895269960080308742484837484419741580791840928426544938814860649116097319603780497768965619020953335050043409602784461857153494506756412370599902870100206704757379319290772509344066685862420031242916168422852885868873866672046202552283006280463309366433094397965939976534371377952210067648185415092912975162989374937850185531768618158413630803823781108840867627726026995044637626125503278418159860230034976447274711308706252149177196176408883680425537349562244380969745322073150226463977118086141518416793724850128388740196498925439223683997664526402458977067856381084036130625501349239215575151582617886737882242115356860311345826271129852962275198560811062208514372176003304553397905479185121887159146004485835330878161251490373581269080857434065963808114276838581077885707952009569206098813742693854229997725852718878597072941230822096583426473086234482467869191529500177889822662957660435999643405883711343217610073931033348107547269095689325925593379377253514435579270726924204426244001667142241530451140585909231719349057310882903137433270925064241469692083051166661730870513445875966783904025268223542364809362991412470121649574376389464565206568889499249221200754828001974689181455531750795488895663964820722873916772704315476881988122656818711235181621938603610766281455774591981023094759780129607277357111212581680279148139245525081149972058309468570180221786214382768053218960289634481426772943621248142806207376912536218410096429156023660134425882109080968363371679787350427338575456952003059932348931939950283407211724564385746578016288819929515661535703202954500645918406113880686707743063221256104457465616181184610304169503747278710445463834608680517042196185794577990345147941045065012528225703440769550338377606649162593072798715541460402514761554253875334025268907112261594030379940010737235268751394192347226896297991199094519878591193955201053701162981016917249698212590102607939353485110751979310079203570212437474408761132276640402363581234568870911189847325465021311129270051735134528235577916520944014121577384197919587900652182504040512806047179873823264199251025890274855384735997071061232667245579086893469042911420321886199176267146041932593239267488006666706925628122474296318406625889639717089015863097725347416871731251656706449446075480486618359739560672984283935692364220088842092828058095975276253894906447030641794122096643959328669576471245694456801439590907287025927284169130651330687035520110599913619800775908341675087681293562122716679258531140158267477648783069528463792290523613392698068783975634371989556693185527908223674147819325432761967149434804732482914391228534022058870062748896911666784320386388151953490687400631019761026223950793234949360891975556123080159569698141726915889087560570655977574617336082575776055874338251062098718494355196884386312652745423502398704173536239290229290202003944331116372544131237310388924277567707154427649116152013140115882704131375451077848809676812410839764660312092291826441383024665784668260369541345248253546750090969232123475143292017819868978190872329957616235651550434584141101636868455383114714393925719058531770801627285800425471429530189281425083160383507622404102061280870984678229706882321739963843433319204223599573202510685137359655490075714131509146606786174345277097022246470398946885870302593773889431689165490409165971760180104684638223060700702025986643865222211808611999740216282264834266275841166468922617906109269008256291160290840843815039627382946994363731155073932457260079523925166904785673314543933884070034671265441931922412337477583370542958346259670711071809778854896038079935877825463942261857611233812613888853587780135542792490102496968218220963700893625224553429883407683364160991234421602943453768513484833042487692602717977291883397047225797190813096112410530259443300987645555219367892778244677528267113011515779329233976129672922769464805590907816159304974832229379655368421685727560935350215402090154438550823709016761490504673823185477472440964283343465579616657442922808206033283454830571112277492881661564491121895179061826766035994771063308062112622707282901245844167136708624531684838702577830420530629111989557309358721150362561469639939009254013934665644249047189929713968572131206764069156196761803222712868425364873568335157002869937656889010112515241698665352517352636490905395241200618802144455275965355121673303373726369127762477624089790688831392220396544170119585827342928318697491691040493096504808729918438223614213643873615696862239063739482634295966623704940135360519316040844908090609128287148704819889918394609344549352266464186245801846215043452350750887730910974268284646342317811975846169146176756912565334883781642467054613043958217542750126601823512016333367182268353210692131454489996796776604168102606659885884874056668309662241906702617540783836547183416949767151377686798824375379912159529609299857767846002372010110577467381478008121498763392067405099439844793129027597002102511354084900403786086067958135906338315976604737952725709500209747751108650887525620860872179500174788334056552739403524225162529188204368367583972576786698767775133649841538038739624864189708096476594393549397448456600170419908707260086545009567983809180845752297043961004206197940121492059286384567259106338970798536214358897194217265161864378804847547304453050114672817415751223039158584215867116150908704980506630037286526873959999194983381407440127611437580658719640120470962695880217738108582437014852084506338494331886098742402659662301244216094149042012101688359901650865372598846552186491826399947851136419421575245721292428125977427104978906966232557899794590857485825933441146214951037191874348346172422455380854724382104669257032794788710628585979423125229530918686151505852858705537949889141822576291527954273675782304646459578197542888299200163244663595113455456842548928681142323473899386941170062894578272817666266050581508963864350509915062682272934854036261114979439888967228765060770136325218399722210801266293201277774474278126758223606355567213707133739843450978135626420558068694201686113645171923059019311333379064472165220928200044666295693090551719538618109253557057101435683890803025130237628902040637969085715401039801211485210496946619563460069263369398091956898591273542381786846508295671830306875525263970620472092857272846978364236304686145160150365985533460861646723745893978390491274765822034050537158369941928350874010539270349248094445036831791286825385909794645027587399626049182468532930775952305558308556360999212671214351158177471050186954298239505646475086165049598896714189836044550575114648744680407897179835831269027378600401236297914889384490460798379506660902408799503794791432098377580406165010610179653848169780868386230932119915508966104265950678710424858556952702663057911106401626915071439629868442665263446808171034902830868014479541025456227997972781241649562565438158996805275347740788757805491763232456758408665111279767295473605330161880944036902997950129290227980259085974409860731252004579958824148480170462268499825536631799334129886689763784066488691502782943795695750850225469589603056048857563122795389303137975539316164898016006923870274108844837427119103651521419807420964372605052886843999765857493373021401299408044298412654319395659582044233802128646068462374346231665245841705242823659756756272048363315289888976331074402262505045478905904357183237695130899480680862939944137428839140807688376043036764950135476347498636674782886491861125009730386090992360274816579654274827442370256775460870312764186845790358666957936155072157671270154687711102150991633616572791365007016803842514717716672050059925207622316098940100287708791987229339643161906733233006472984251003552366489659814906741986025415298294950529924227678876705763142714673342183821703103461648554943007445438406017282663880715048093639473352726067698232971442358474937267668133220586860560336178999874621228525650882901807450264012981261036732030722594434740114094813054649833432750635689499814508294162591578630988784966080578568633205406711410147178867374982886107557936898978792510537315516060966220997746006015327193680434787984417157526387021655310448937129323559381704922780077919673761668767535049980790491363473828238842297287782715616194019843439875909675937777534717603001077289846320857739827510080247659357043393964925661102390579777206438201745711737383511251433101917800729719120901241285094613730953845188839336656426470906959915670118699222529889021080537206659595524903058326095340136929314843367926236461156753033153564033576330595925760364720298730475396152028032451385096103709089620826270380133101819348062417151734266483463470872669974069978366326776160794362639649323157301401992565019961965590513234772361731805675870048702876071561434330073854093940460511253957680248334103252402113822775931060507716295500564377119284060070122932259984548204823036511766895061208921155359999712693997272410467945366358958242528999762119112942222616503411639847049480651796462399158344358131431888659644181257871292135041274069356655814852070351637820429197158554237895595089396250987297969536166592575205567302403878295071366898734276980416451142495227680421576537094339200870826791537991687478566450591082047724693163866389130192703866145797410327880707111743073329962277583455132887761168685990990690447948022907269757144321801781188107733299236698982310945092872417313125762968904336877226861533985105007332578907863857496803773921621823590464948916172634970631062484711672676025025119624046812412977810912514919748518031308408227120639017091471199927346818761988264263948244390189226492381151276406323903007224168880858425300770667175451849429365612009514595288583727540205082608950166542343174144009376967154102923951775457436025546766515427704141393004453325135892708211716643206990789044744612516558016285001640768686131457814416411471412827930045180540117915565568182903056469439759893946790177200900035797743261355872794094637357448204970756823135403154607947655982432270008319769992592631369584050788543138273674257342476613548832421513540824718298188148819828514386359345845915850342750367777523480765399450047492743746049270844391434036419886264344499556515351181070500763984863826290412267466061101525916288261587612388084027815835608880608317919540377667010303912213180531318911099198108380586511288922164227837135666951075031360985128749804689792637879929647290295560670657555254157607086517446567512458893131951253859602518730234627037188019719748624313644237763737823523412795531061013320684274807155828583076760837260276016323612802917337805398591954603600923973815963446575377545889579752757473003405040245094659414924556685006217366599677093285388059851372087413047910843040596338375406427500084675692304720649263313877413935486781505597410071201406780883394160538918076379427508979527604912775214843449371720665709054127006701402617206956161994918669047690165687204641176646668007021772645951703165160446865187423962672255600087192000062303734312947912167666277647727181883527458065094443998452952619981165612814805748417654059519266187345873980778378993961515091677789705074894476281114417106408875577967950965156242015826448185255023039884793184178686885567982582676566289461150362381418910900941246248648337184295640459485291629463118794879618027793340508463608025191934074497600217823732044424122612800412579151427161252530652704672746735830064992860568649763582507741984646329641173771212043258752562106261699981815136779464135171379946057654940047672886261285730517410470887310348026773207772793929419121319073770698182903312256674727073453558081565547449599907942942843712642359646498231799785428346325803713366553714533969918925021263995504305465382953272022661527870972959141489247368798477815627334278726579347138091043147851527226850532653308490926165727757659918880924615078438407105310411974841467569558653904187218289820449340385264665961230609533937167856605223285764299612125912979988622978430227396291099546033839714448912231131860105371762675692700451545270932172011215412331956071729310291017226065183523723918769716734751613077263290843945356492456172082303635524447435330291209871512133210924611248198372681833003511474042945824247717652066457515441802519206055116535800287645401430559808215145486646914826446611238172173728209958976947115084231300136191311110377786342244071296880603542638297988243569099301075752503613362851557892098302638790707263055320981237858170607465703862381427081202176191801938116930907258707364780043000080709374302995557652765535959271492500868838727908281227964470765881479133178374040761729958714519908301211733660711006391036815308551214998226965428310724563076291782264963878768613197040235258503156520643066990255687577064772255627495029926909986233527842889935402120729144856343407471892251197301666735937745552745907491636912126999798393540252280533439795554337719703719406168698318560692291502658639919613842576116341969449724506402873240945325941562074056353328590612949100284099154469197824986150186894800655552184953957543637018021333156293931335491434975859488759797478979903004027300243605495925926035255862268193342676518780377483600273601021910321473690986348681464950503087630360092078187019700433947981799401508968507948602797323434989743753149077258607238027586038235070748607514926916637181790725493106897974615586956405051761472342953833462948884757512739797915016947548308910816457445381225456719640177133088862771811798557525240080918059494410603191634402163311553940592139828191299396564828970745732389114562040409026075693033455777172649310889745932713900905846304460486332672735747117746170270377867370570055695865882552734106594518519591302446067985111971035276491016406521155930241330225308003858642521213724362949509892696148874198722555669799411299257700326297792582211238469578876088481607918486447332579605001179852618288042035655275385459942532625756408624170437086604523796403187002659037327685816663822470583490542896829217120283403910413763640091861646125087740249889249905551022218654708899385319195688062480675483131701557444495157132861777672544382095041204930177721796930760022634973243305287973088771252000928582804197129626350220632808182157234440555428077058499525455432452635631523139637618668978056807801945112034365579154367637203393961610481524913773058985916336654039312037247497389796681198411435851548931563917894555893828455369618040785345243931378478290126819813672903520066846831756545876407192595462091582247704813552031891395738242723280297938245345858896268279959136712675243260961100636731335130789076454348264284758824079365770556927056712972885031100158962247251980757240027675788081235649282917952991561055143396605881747082492010044959892592323493326845381182237084419689355241471192438935649096204302826334803949987451685703601263739970515265977027894055578833085050102088786663425865099707188034920432223878851324207258735901044591132679192221712663609626764705297395030965859277970294630098417293555020468610231636710812755189327979826062767459364437158568712268344734951530387862042296945547728348852485417067695963933969729982641044605995210433754424758168254474285452944082412933777292080195127391425117844413691332453568125661514804078127922850114826169326735337101537292594958118862677806249744822865794718763386023547059219442514850798119444661232401794816020545188220950341926964964850412048045757698426986036614092580517674749819792690624977491771343632931421472189112167356012009715212413653251213507803935858388807851537869656511243507889872566764513893733141008686438395087149696348223562282018089862705437265568082504055903728778536974767303294211666392463177111963540028816063348392112071477130882007183027598742263659325388053350655484236061917233756620776592122876202925935255223295373090506100527864642006238570435948380111931308423975655824910595641667454286864108398599482438873439538694083155095931720130875232493210382230309885959061359073257649354830490693191723660325798788926766274850967104266752626403200336245201926988084365732448097002930686313912334559497606373912193049757682483472425535572804789634779746842871259170810750447464670096520359467612277153615772643300392642220729510472224073201377683822527665765429914679057540061290097175057057503761236296304332209301811864294154351285946970892032327169962898862101466578221395642820700504061554263189103207281631828085221887316250807568509948013472584824740788146295772206940826779216012098776094249843446015430576074227123998785672971703676374341634687014766831209423485571463537700785414507471417588930492706757964767309831085883770520985802964064089570370197158460529017269920608331967108778820948812384929629911364781791797759459592068711728491189587416450356059064927317926417977815194254815732926978804547685950094732783741712163548269665461702233073397613144162903289527127079011266038490783936767064505757477805156723304451293384026348047056023580304359655478988368423024576952653251499826569941453780213425364026788078609299458203303903958982810620225475257439916632009301606029111892519086244330313687602130555908611000510664634051928494621696523006548170394625417773442213927804254568379075462328269523487718833914220017116231091721945020794813783216531528768288840288171350364012408022199863344428707280914125063518788175119893750450417328893641448003480051275771923451012096718505372810113347459332128873037446594526481895263703458448246496156949492962946978233104716169611965238663169039046695954911778065207085712859613097308911312427177772030446579665108173913449102148097230561407908227834394363622886125347754878973186468523234030605501158348690332313543452448530541302195457563469896140661907168539502078071863201062328142388038609084462822255511873208049878204017777702502620735292598589725456759951784927453713518666722025246675313241314793062173222260189430223774909226512980649707285703411391291521869607823594312323674598141042865094172765055081679543790125313644806708237373520966976236290438717037701890540529394931939613982163923589422762307864186916337189676736335253172092876222436780353718015380602536206636129891675328598885885538189932708068747527455498055405341988127239908767472272345685916127086184637822216900120037247944022922734898889869823072052680284096603247055201643367653867366776655277127208195507978102909164418546846942411613963288790909365719465818026547859627802156887292655804441074075506747411105122474751450071607856595408213402399261046488687163277350311286168816814037336054946053296043656636277493854280718532899477133097958116734936871155291098169976775468856847203462329670997208319112036380867682794031807382295069651205492521529658639135862936410004008115369326186099450197574957830118478179438330010883293906948964548826088957892318304047107903227876625124009360702607460023552259112999002738251042729940609947516042111120666767960123490265298690179545381769747880051118276104141696376292059706910016418290107738777503578315181993245066533802421680895855577892453573940892339345664652065410349885846889761109923677548728680662492026867536186200165222894851682456756803880438123132998158503386130761771971053681657030020620779743577818155067087324844329066619738704856142841010035451916318870717603105611465456118396842005576326303285477905110219325291280931809245371478488770607331452806257108470161247664251957067254142105141133500333879315384776511498584906772909736527309435785293698907318113440727458032592277502948552383239521075534380155905085860684350267644372471468273212954812220463932710317424884224450153498500519139592704943903750613171547796028005293594690918025679419868038044023002579654028998566909595940679317495456101238189062737648164847054856983614677876222845514344757356052595874936579391311422121864800229526742844607593709999235248211507276619949310436992056308584003961940027975385699463368986149442259870275513397266682331555454430482537366228919338533737791271514874389237766693919237385739269354579845720913627866041054350007859999198791351704139290455774891554091854679582925502596075037051998131523931528867441738528890311695738611666196693781289494185064198008225510856532934966675688594439808959871581197412716526905440935282613975152576164552819707874221114384278503267211113447479165275493169717674218206891332569688541191478247469457699392629824532371987601238992266415699223656344313462439215876448036241933918280644629565262543697499377165249516997094703888434220715284906379562881325423193918614497669765755199917837005772390295487630663968853839531044920007950173751747988264989541822405441373406385855579234582601012973621913082355975029479460251037401607907820914986216412319754727806452196388584313918716839984243945680116765724812442165748879281382133211770102989526416209874712529388599004133025616610602799876073469700399430606916963982064408721361137234798327165721382337431485885486232157830639064469861177217224422578203803911904528923686767880687124473007814412747037937280729768526130589736898615409510532536449996770428872386932006376453624621176994636811576044527168427748726422799871907504307579185317099379893705563034473682412678993263000676504577613989659414022063498680634844571151342782026747248082207144827247100853446886301121370385985960297117562556212804852654724689037895053472365572279488691701280978658708979504811897671336574943722419165170143435194896243215434491464968600922619436939656248507734472966601897679460507043752775889178753713239418000445184371937850674172440810764187514626770277586954790526324780457893929968413375525911596861096683320729384112465492913824269419235543089046565853283172575456563545549139073944170703461424377783344811041289482955637672940664088743180943834503448852568307990153877863612905683269571422123841774839371338168226655833623135709980142815872553314262021602853218981577800810463085946159314363144559071202877418443850483216287117959047785645887331831065133849666860785942867336197392984022791361156690399831883057438968442811007222172996036393264324791143026134182497537151757095185473577116837916218665569510000241502362196340800355036291887322285382890549306511417468516789737202082093163374771160763727815809550084527136127012213917933454469160789459946825301954831337207294000919319199153789481640188032150878135617094074906504213660909094070801766106381184419858938892726967101404298437569478007413784958079608724782555781540913360769042600266338057005941734035548131874961433545495262188826649227425353578213042267782988010981434288805832497628032734974112722187977662130665736818846510916819954894414803363569871165935066201958022809561701782399432856185351556800230205781925692938733585070484169624544934294214234467429879994661532987274592854571931532255818770007992769837463216267008587749311176864127148257163273414465682291371030960205575945598613821854563532757410174634123393553671770588994459516857190010016581799581401060531267164445189886030340620797516027240265202142156282711477451381652143543162272900709780976469774830349606422327111390550118903780707972470870547889894992481424296906285208985016435489563786799313971795465602923067768423491303443139179772105469766595301475167281611029902060990975481849483368749366701961651481399197852258366092732595896306817651120490653701959809675841556337297642392849895420862441094234343929415064413390157009512749394784963455351960523657845524564572885565653474029932221870578069393963018912713478207288760611337402551979167141191591211617714541036366656953563859553614971335457465801104577394693898156950623990975879232781100669198905953739435176240498697044243300898800533108469261111916165754478425737825524239554388114105425698618642771869414634816493317040615908145999732866223546422008745543380764229127181839213626565571990532269073541749666199562475602937761607513014015466950750626248507667834561728048736514775311898190896337372279287600663572911537845810814758393064938402318510012076334102461029561246642235770645836657846021562160640256877690797874842461807694129137035585533118707737761101781499997068232585109304618671607779571123905638501952772218601907760924358368161955508728237127005264322898995374476758045097891654634692086878018336478654024169259177333029564884005925439595257624637434356457743545651131551055282726428594823771569596416857747121885776180446820883716250498944077359029103388076821497385353770184563708795569576046448228007051896139732810542978357766931792707369472685264102552922778824989531874251521695921696869386649154426742719089806165610338980512078369065484155011437975256205539214979175109285205887546584934416880743329446048969280060989848967697063369894255973065140998271675085543947685866007835618031525331403290976105020247899370688208307655235115772018624082862560793810441869658607745172345559865407057931536956762990030545144229427325155401938202494849630361119621226117858646713148785814995823995295381967247148192080095062640233258400584266415893533092925423614115977870699508425934286190402575711338847521674500829368732992257593968793804275166173539869141521572906400384140851396599486933517903313760389464397650700330078715901868326452750753996481703864987573766132798960789222961943720115440480421824547603898419044879145195490346853769362804057476242406626285539783404713412699380433919998915561050559686751441614294564161666831682118752242427056340225894090915411672568155417423548305296996943701246516467336458238783429603435713972696954637207166297891440754389624725842489056898719057649143219791100401104823829269838675567674615360690816283870961889484917540803207648541110315855010428048260712219589979539816067267094559465856510118073549799917846038842502720323727848708177061304385613621316387695556445995633353772673500662597497498652254837639051302128248325892156124916531893702333482182415213322586167231723427423064901705020214166260720314847866732988521705432976822330224728051102781721852270624387461479284005192016856021424698235077216139355909048586322527390748778315295064083708053150643578375885700178692778751639964073909756163237301882130639027925168667500965272418243749734621327920948431038615607727288668456543784573556349397449448763768921813276634069126202270854729065691421811516920094574055046765854887056896521842850601941840406840471937820936931490346577957836279098636766152428799812131779113367272355467647735391651692593896688435573825669368045123164994933825324755915397752570372520898009311560440474715729709036702196072063621934077796332387951551759592902408431718486544092901579995674572587778968275918624062707566611922867762043236874938997858497774059615347176130710482636242894056056095619069509830487152322054548531439353254877495911829489597647570742286138136082750178883711986098373010971967409620629592396039775366564064435672123333654064393184401693300315660432032055560946356402161766954300843012355816057320509578507304514660981746607337809315207961637824242307141003932743181203848893204774923212367853362343332434861613469756144258900075567095407943398146250163580075951508559797127609347852243035712856842236880047056983156469027023228605585717286981371325332738214122098597059028765725238539229943621224392165538550410453046215787020269560117536418266484093450879474043230027416075892932315256031998425101885903909941211878973938387643467976230945110999217048593004804695921480661263883055137230436742705292680084752773655193906811860070891381318827087875096066378065615114746370089449555140768948810670255275614755101863406449671288238733074054222473947440419726212870552273918000671868523520913876541989756667581578317811631733434764459603445348772510269407524705042259013539811252065589316934252579269155071126387496096346490641099676269370565103903079218188067790906559777816502555613595091051703815579623954082393795990949108984110254528853920389704697415425038802441985835255118754176903600944485206727985750219472656742647362328720445363084271795238108736441863755832698807087474165526311019507397506176269530282643471220462320213553534632973103309071427642026965493101761898938985157284397999852706307476315647055906009226190637227007609367061166427517234233152477895750997912167349504516119643634773988921765025187088369621649838021023116071509845135248458075138110957099448040104284821785237766116580860865758578124779373771746252761243684734259767658366000937511137553559178378662383921861011381186975822147264260532711134621710378093888592402670920609215900154234746661965347009769197776655163310879357281219494059780641601731750213683754351195488514978522440586230575888311332630304084826986433712256275686037202713594597568471659330173274465318770093947411985932264309345363507010907948750781072556018849035193541920205156435158905868800301495573752339365198483863255463089586546649519983115678978586075128105089742428150808964598897582232401437956245851941869204044169481203738229999455597786022765344769871775569251022607044228755615894309097572364025153007400812356112614373120764949365204234036482622462808106631839651309866113509121251391399135066521060038937926081437511302911279984360692197827123664687577250941718440222442373217807702190856903485967239003707079743598256318389039880541618780739717580997302462017410061501471034355417006229967426609436993752573473524150654078461359103855299986251246220258029313167424730010881989658422459250355065695107675491925340757237783352994042383468146316419396423493895795546481198823908459905016232257569078309877748044153071746128053594196846189042531274061454145776080223364387546676936954185771750298632809887865588931225715990541414539617404978527029820749720739469603447342327475088500294400476038779849643293977418708021481469089597060557415290692037477396594539399764057961415515075557744904712547721104806189274381293317786357848238384430255757030974675696347345152319413232911616115069204069370183398697784454067953116184384414261956052520907866940741922073748678247332975712194498072756722672905015171621702569278941864885101651627950837815754651340422642534307937990091327275370913826081029802548589479931015178902800521812970522171151983561452635927447587456634475360751819510876703179723206264399240027436259995892543541637936133627006254376963430090875141998117395131803918941995448540816580276299025008546797019478296349506345088584807977261088821916668580633855806945827884725513567774498572011981735964124328404579169568202397522817089790829993773238359931900458503451939199782812895464859016884523528304375663305698535933202199300853935189849272164823637998349326046812099174753290675238264402999483146415070806391204870941955768704606876311748432899853144659920387062046093326541547422546606027542515731369627938533697585349478642473042602010019200991677731016883245726822408928584592538403681694752770673366581838881569941732960218665128035249466974430398552096453751252713609540581830611108678458531792118250242678513107195432214238687922915662227145974760575018339982471316878928943406363998364134301456878176729685163768666432987780790772988321264327694464636114867170328356092126820891007027643810789925085949037349569925255239854334180606355278179057014015561738816519286524063506764895308141644330017868514388264847066985330176260987716496581573979655498764722268368069427725713027436288706013365264253088036490659701122032343369495072650330510669430910977493289752683397831993501437765342100881671509605332536439847606851008027041697814617660899027477271595445791930286398410761214446653147356995731524539843913818742141823727468060130771673394823459025800411562995356892797786034176331068310752136986590193661080966482949856732472134914610563228612957733743222733640909254408352747766917071891571013307127557296335492207260637216839389980057932475795563839925783793235183131086274783240206053344288624200294229828419873246401090710058350850216388269093275135870914401501089647663477388632372840940858175619037177370342546167613358363254858172338862052592634578859740402969964293523652823822783472837932519055961998255289772121697729946994187709099110679637851320790550418597712701376929176822351561689826287983448205691046130194828716783729765449642184800019320828744558415481176356540506165234480665697158426404871358686537431738780644205946928628276255628548754591777059531462856054751157240915812237778622846659484981499018468936576387387712492411417774016203715786490421333009746989658112995207328499343715465885707548801044182092167840178219721343982762057891069248431310071133223407805465987247907128596016175406389742965626278738066148430253796909543195516413979948644899711455141115836192546632505909271107404610051639682425312823476887219512980552595560085553988099202199905829642078991367364555855924809179422307216849691976639848172809558686477937671646916542755953257121283528736952097799313103159904446194547105648913387351549275559253039555944184206135708351665097400896081162559799556961315306804721409066953024441050498429317523255550656540982890783566300570169163904384517522092508174561406166466019943575677312852749337716761077880899104989710453951375519106981714562571381750289854535768295015620830281447872214028317049498221271701317314505325767746771887546227603783635357452339957011802776072001109850803352682934371326604691163284138587388730870268697260182527734257359160744652980601408928371656278123186676106569827038488684687035440220522373021307322923226296295449188123439966545626626676603969333660898735826079766749233491762834682155861135714217168821394290431138099991024009759213592698911413206982055081336490623878135709029201673021072371393963120928042943773242562375385682681813709469677370755274277457785596428925696223541721226560929459620250258562824083295867392918809584921866205823022793593476025497146434736431686729926300483478647113630959298542529405224475862328114241938620492165991231878155689910136437478428967166384926395164893516931299537837894709639496135773719941606306171214237001289134634347254482316112802278929307418258867744959873508429205499938321573523573887463068888792699509311067714594990706216135764578283504673735578909275509770494092038180670221421031935700678695644519454732335083636800670099107537184683269646784719105300209668281058635464431009974629524920072603993216402543782073554179045178285167445390609350366921355341307900740515001897184603556824247822971782658285293881286688941149546117318310505832771194855613974118374435953090678383793403350509484558406016928302032504925788970167219863766847469909545880697597031079559696349155303341761615852847728096132308613390399050722646535748213555648797517163325591093854708246509151985067900788055590448902742922712182448048368172541790207326461724000762075796415084491880296738272325135804749393545158287526320701410536643427093222426953377453480774364710012065442949427521114316475048804882382564891576651984427386255662171025482318420624947301033405069984076851962592249670060333408319130729000787651069725610712075747204886068612271495146857181900364262788651262260040014471857473091545895473288768415714003860383473227952351794479679597911982668284584694783153529178832314606340058248332576843410229161700516189178914260909724029376299762934806812323957842600259009843059842752256387127391280587540837207393608042708250511268082373314211494504663910783534663653125355198217251671289320338398709487492786907314005498118457726618165125055262988960489073072325161238864655513327899113570088385156779670132010441255713957375581030281354165323821977947806796074210218914135809562018075999254770690988390775360624979919944302122501461711865860552892365864868290806364871768404229915436118052101119169213025716490852900620873268318882477118712669625124565833473305740673707593946763860369274208976219260187790337626944666709926041031991584298861826399281710830608163649024557931012123865538320282494322482806056903389661838699066128209698150068159134364010750636314524481371674965200968528857027255133382340347466218975179922084818899520916799106817481215890374586701315023327907641518153264728214644684482654237442469054925484749458353972668937106900367009740875037022810615540672401171987300860363425179112897316065552419569464191621292988860732239086570787595985786965866632776981317078230133425118776630892048201128928131048935524858485121277491603476394437088174195978191055239797705975729818440408833099931968659033144609079400423908686729267844359350418770119780810359524129554937475912622113792435324797328373355023664925880845991200552928420465339000163790706268599443203157992151093044886812644701828203864379308746144699318082547633836095987294478986886727131043991164911571970193127826421912496568987261785393200439807335407909929539089484085811098575267083388278268690893917020620769863275144045600513056384930411973039976613482784977595216682863998323199103203935263005550898630858448568435621757276494219242025461568601774303553087792762029037246423096238375183575827240601713248554422680272018039514918903510605551038137171520537051763160732255839511250921085857873308010652972586427655238448834101886781384901225771033354927875926722588610823471526246102292162216421324258186865402037412739311299993925953550562303120767298809907452006560457540610143412837427554962614432896122290522225273595245741930339378645525101352253207600359646944671614721327262526648586466204910116536328983695921269751721149529633767586527480172865815810563609788154391520089316126961662341991250747108633025562171350571057393385964493387434867738390371176016574496699718003286807816641667521105033949614539099993334585899886276934567886057343872951694857728259700467067851669758162123522199972727686054859478539226331298421384033763549410883019306130207900232172504388917606361672371167668662470177861212318804236222764614447005413540371433956630650841520645759496183230872823446772971628475590363862324167252477529450342687864055898230987695373341895275392227326472438691110494441099621966754427713322187272711086205618068717903931716725466594974615592709968789350620897860326032040507257393500995707397250836193154230512465026919603040925419417707863329386787875920157420532040368102462774189707775134514328365492509778657416569481377295064184813436427675245035154007914547702194977582081071469073813368568848212969638111115255717266314524970691736910646063669280747418546650782074267653091663388064613917931197926593674500938450037042961051921485178705426153142439208223616328093918914235776916738153896741442818126856612117395984441586636537386375837702984439143968103244928998506882110696202120185843311780272281668313438722164696209846790205426470999704485490474176634585883221130285600941354372157209370020536192236767193045956595946337234582326009738361025046152265971232264488633790845746520762399845203828387702892394888858882568867579097737631325543883917491885382662970513045506984937914243947291803184502689852695888702961090919259057102964694922798116175686561304621160663174449581638873398211188139231586580651092580533338098613785515339192157958111621185205232568333331975271968328256024728422115392334382273202938025702344391404853415185824793735914936787689311039946005301395156834002025939535161828031851554146475855496640793261548381732305252650896944764991938209241163037708458314418870290446095197634982705802922307619100304767022784567579647170276221547806872527548483065198750175492998860395583574496789062082707415829202685912090091215176066583285626825929508108602428164381475723016998586001921664194084774284489889083394465957078337566889134005507855919501874173626951607370185325624190636026050582718676907193965910990610029430820194229531062884937490839783620849727925304602594192515719459119599675123839434560241984279682768576149538914264064382918360178832917120477268210608783001288053155403223899483777679815158787931910375624641322197889779288468777718509117386328407114959747718621731010873321563399596814583523559689329178849174336525997761955253223802539315154201094551456284287769469360832018304196033811838943033008779458253921588273027054062741511229773960407582428208908229623990649880361828382030216793702338344225710974416907629645836625266315851843762951570274833044558959984028724209047626493963693340725521627941718810965955488910993809110722054554782123199828952473290024706300871169484601797484542019494269648740081243058184180747614329252490143599975362264741599642655776831084669071895181824700847888259772863819606768722659776560030644348601097757136154085318668344613242095860479093043685940746911199424743386786556491714035806537869681949177171352608146959162413052631855476356721872440994039644202650483183828673446483670694327620317783788565662362915690391732352905271545638550895671759147490098660210865583347958159780833205948467681178971269166830478879001755646918108139577864833148484477662738164225924949954671419811938324135382889109222379139735243352188954615933673666140609494314314248372232584900026218634332590410273087718588988105043885396155782048244650015793134121537410750882900779646581634418501032808359610590340123813644838560489806589240224133157089454848403249354758359321815937313889065194154537366629250152462303052317334757512196878970240096300371802138718791463425757265806178987799231457913667259092170626152044212855622052341852482674607549961369567013476263183083364973986828893520344504231719051563093615557119333172476847545422361917871134391850618446168338483066284751568511793046884462310126611080775549189042126312692034376169327817020076642412692477452509696782665728330116452214582564734411008764181445749853764959805211257714300565677115121621357999920174846052483052773176834416019949665625319176902152588581823043404629234120034553420944120734201416407473162345736016453001226167433235546151513858352122417477974317430637508532094023983153009807160589533991337502641707244059087292901223504041033331396780491756785826248610307732688498612116987575529845074296485688852871693549464719817570538479329235485091507314703479700759489260885840629328877859522921233604925108441455872132270124473323340532509462945536627329258721554862683405856826243238984000443761493789141166628907696288789626960044559816789821466236417213807243926098452503040813728049330725242327662284805606586458596951078214301185478550927281756602331312767933901594586877476107888517519877576212854378553367806711618702907317954208553897785680907047270157723800186728030822287707016246359898279789757261169765776526467693039792183228341634598842923358577685329275440234741829060838109363229782863081685300628864006526208421455494638484948629319576948473133990903290892764352733099415655225999160013799377059685366789511796983861637541731805676169838172485305937917190130435836627031305313726494824653742371296102021574350124932231112881370387129683907446578687396811727740891889419712049411549483978786039506110412704993234256258367891386867692488375074427317191167883239099521871902371528098777013990886556454882326526154674008139133353730552329540273509448262149546903042177816473175851887179470633143271717673534663200160780047242141107733100937460753679067323400153941431913938619354953497045247286227813144295061904048466537528101478055178918175534200301048317194438883452984598968458429476121645543840888048004790358759392634111329884422337881610318100635064653737557006344930127326151262012012667592810471255344244273587470803981789335088958268585170200481085890722598754170310239460168190386644005373462663122532533749684978576292558528533280640235702021099258706360349248521119639888956758174226269965672468269476059501055536418327529506231067106085485763649141798520909436412309659633435796751988844424753120639064904537696975782864809389165915707840096716827349433411667998467926612391129699096179461831698793775121781417622475590383347881895110127422163962574927907401086839454635465476587561731356236796208770820794916808639754938837453865477624851501387484742682487114539920135418702696319911908713887019248234200677191347761836114686279801688830265321981433045522822909714604316136829147180069824021768603836908246451831704094067795048306380697643733556788095374614712817669507035974137798211892355843004877435365055849987963259898265658150076560381691304989239963584788123778394908127390235579348556183306723225864530249978566206666612139391049098017174650335239915215688378355204085969668775365474525243668593799880864728217797262246583250899196330927413282013721300937728046832034750259315168564300471751928726526824963775569534696933054640332748369140558199817311418311356267139893766097885453523574260675160584716848924595892279320750721134315834441429134427303230628089166415921156405640388289567557385650706833539890669870814530233437526596066466120331698126430156715656044412449666212816655854550220644590474544196000071452280754281046976206279994361810478763443465782941757073312575319247974080348038822795757480138523173469328171408209193341926204441097447681588611811817710004659202426438048316482159022489931687699476544914046097182577952967678595497615171091447960184261865077440805683898068072879165562402380152520184534129672707801703514855865269909601192618083243142767154683344271290191661443440035077129319871769377904504106975176630126366022696361321205268356625317564479114337140291332315966020925013517626648912302955451441019578863288404322271799101796977038412349128279382941215225519839977002133021615575368460745344226613235342585118085784368132179056102730238420392737507179975680518107403424558379489100670682487352604400360266154426127702699369473657838596390591077330617978302649203369705141542047161175370292765456001030878092395258042903994945443439837528874049431949639912065922658387779779321987494508938026505291853068983324174648129843154985954670636936873643777656786336712203143973933890932998904811766285064228100477546382539249777345142624060723474104417909512258744911507509411157091437915357700431810803845446678713582176912768251416826464980996104135341361329628246360828160966605893790444265404212686682460502842170701733160781800362788996550332299739365584558618060542455691314884903849618116198497954803516064267208463852141752834540775790907239078844579081929645673577680848874630416755972293717210162076314707967630867786559616181638232605195660981362280403147555634836787479221667839874457906399823147676335267905716602940369604863337094508418415187122150174398011688129601538695362839043891728750500778851253446424206766430796366073124001357167293639041228323390405286660592096938798271134854247525919736589607365686330193076658559635584059591340482243741212324277495541739458733150390477848418744352258730478906307786999020268203143532935587900593776000759619651123782643940996042335021112885503957269156960564566030117580560248820257000877065823830311770115343297824350723952608561680372264906918130694108523773909281187954398396300192344628897782669367244751234086528767581463319371760106426930350869861714312969116672495937315404261258457439740993262705516427332201598925964756400490988450871580144964870942652760458801765183780405696651609532463800868746070649833068401865553943226292825597782884849864185133669959868424820464077709848945435519387846545200836795203953264467520551888866932357236565418904570577306908700266909405618831212370428979019446488433759604941553207085150674413425383296666404814560861874045242529895042405899702033167280478275931280630424767978462898468129722773695349747325756431938808939554921348114452726234805277534190755612747024554819692504511087542940551345750083735608021889684258545553853686236118665332672283893819833098733902341663740731230742051576201574319305212805418727689650532399336641812597619674086107134935839939655394775450857207012935595008382586570325720794412084931579682696240565067732092377017101976985732203868686576518921659855242930364952805160009178246831632460952526144330021990456324606194242273513549239828468530849329361717928483406109427423420062522828742384834317517437451588989165442052904172956119842663633613139760495379061725796144833568155168947573977184733753556599661044878522090181975823708970834056662883427430723638066698655468357015224024387365475357989469949603320081568879216533365355463681287701602821409080945449082011000500586633278152540747934644416586250131957339200118978433007003746904154064389337599859150074394813007626256575803488744855205562105294002299152485892454116273977492975192006909830695292194529381082370959787126702904561670630751318467409695798197800699189210657775998692202042926067815246793194420900312608699435545699290785092894274779541672540209725235752878847360820878359088914346780623327027214687798577833770350139824642781890305148103614695615246615105743291971484910124539819011296591080831006117513138329304731315493677056040055777660255964433649830902324038373186146321178072874471945626908742318364156645045428394767683982271145783124158401390306417853688352051965673732333523689751229827349054402312908833528041897914229925010071144322119999280969223449731982192223983093866397591502633648090944785792119619859860594679005559668769511507952736402259422580181894525897095506940459243852925781104368811065870641021271192046542096840630230555907480903301824661740505404586108831221843148745368357450792105956245316564343852007727348996837995198716310574551811675873890754728004720142254368762930552916770312459804036118327095184178190896655230571338538634332526119466041756157856536699515290190528711964937772340294041923785828969058608207663444781934052060579104331553884219207705600719985106852451206760826432759195971033455392200247157748773136511257283693852715535529798035783069403637309403005863875705689228414252682204661513432574262688113250268508749077990329926899815006247045662659950776687156089407224456745142471894786150450312351598639406822235791983020321740091162293758608599787616834181663466608998921703013575856492371566811017626480612192495985270419025042844844235774555527753783546800875738339457781262979397885771287054625969039125478615219786327327676006062971698353755218695077418972997800877199237968439682397866497337987646212366341157655318500358344986460870163361506071167576169779904468425852967200255857256333451159829929532562383493581641600493658078317690755135331963928732609527978762708714842561175379385277048261032562744744035672460947967201474386608079673379325716772078239349552949690969509046274463165103187167653528031772526522376497711638780017438097461186870119645189093068953450715690764072808941778315312171630020984291703786381091676409589489980293160614235334517500889167290455088407968241050757554533866830368737393495554280917408384177607183398737354764495559865273210672017856706859889136168056073813607846988772312810556217152724624318528030968345803730404987288003786315826352330542228481035911927875983704672611694746485751766025097367541084001053918903520656271152278855393029864001988804360434751280680599357918167481390481200720012359043386288330885873196660706728597706566289759916091730677872234254135184894512449886129191762312372402097563393193720180403694767700089079614272624388118015641556344709104798687412728759471228064265559386416831867282586329621472041234703378787627060715837926129248539312711741215670199192605719915798360963672941717450205038401665865291766013254402076935851010116206743547715862777512175116390077307079183501694301645464794095465837334924617446786424428370153151578442126980307888737043899056636547381182048157713267075218621051474213945191169178542243563699540426999373399893778801716798820878844117952697641505074431761594953532155698107597108935378897425812817512633030246394618575328470691112981465868856816148440116990129838610932070521106195270507897897843271591478748117051728730134662241472856478280710035047863702632167066309765310906519679918261611763502298138001455986153391737025540654364190637938926078123814232905278944143938306460283318010329718275337861499974680855789715898185799026262126638197698412404562425206001454364562151991161585684309187814301638318040577657937975426057065861176760385981406067031898867337003278885190736739518330571315278672351539353079373731370824068800342572619058195414781584795223938192488754510382756824481410266871420421089211314592157034432110212745024147267875260618099459093827585568759563450870947573911402280927379979825624242503366835150609913291040061998803240690067714228922812254373834728949059075897467327831574366630770093191794524032902737706898402161950713517517092103643351787772454283050022405546897508626673279056684816713813926979659760183227313492342107071430615331658726805839604835876119858713824919361681370031287201510030025749391583032596215512067374771860664208591331575126894356408998948958979422337091926552372740605234467492581500742861451155844746289439362074016854063197825382999186627337721084120483206263095650917678985367257526088132685054221010047676970868650296658088024514946242975409813939893002649591362267041127410596332468793782344974260212327951156065148684533903263972550209923049574367431022342776256837143769359984099109258277878716878297034263470583517175386626465737626862903829769308755045198909039525794521382066169455038488524809883928662268131948686214282886295006818546862345564165957619609330660657659432667457283019151677769287187682980733572797321652810212702541825188928254894274571564325360843834908315831822593078189040607862044869440666950029634391233461603649955522541214659104878458990575587773345887074999448355059152094515236291333574523654551038874392029839879611272767384071611412791951592618981461112354440786391771424823812640506565819145332096843129674669514361589343042505293493175795079555068337949660381271931300171268869268066713459158974173901301916165383888811134685798016744195675707235065204108366370612228790434375478314358634763344790208769906654449309030800380381371490856089443466225528700180320708238859891817737519582804878460069272093102799742773502823897953868449890982720976994589766406351134924162029824883186398954585794035880473626414228582583822864908813695524766922142010727784795884058813864753295845345435347496517363931942648155468961587343958736949642337717685702390890756781469764183047602820543901026165917210685670557095395307861137570340483971744358592725090176958360647638843073906749597703697685991737595917494495093079750689137893340433730702317810204670715055672113142914323260027690946695325238539310865533161133658199480256016827412965231943897866554716393943749008563579853367866553222549925084495216498599992512496447308134462107829592450527933156301956978721801425481741769014350927249511514647768961603663988651182059056123789062771852475183707573016117799021531498239212607954211243882772302021672386302253038216031071661662231397732026955204807250464559345933332559286305617113399468764781643386423219129867902127699665679562370304192506541140047780054860952572715272579380210881276290783261577477545401989587072486700089294680683600468025784018555801148243904748084032970276961270217884274742142358249917258339533559567999703696703071811709645790521151886690900683883197208546878506974611095700235310403895500943748794266251751032191929592499213701868636452994625288970063511419798841328231435949701333670681799168089495260937682949723149737707708589546442271255444303460508265358822996886711065860354483078058302499075216392495351083625707842449520345326797792606061678035953087436906931431893102505203421189052780484473766053593834566385697547790033391523634295403938040252737986847681587796459927266652475152424858810379908356176211461727120838619570055789151820241342123930859276830707372265377895622686457769449381839370108223251771136976863317285353968483405307122796676166283685064892195174993184800051092677950954771090538871646913486108396164427840093770994558840009319082417751285907255237373432150396379114821255119104796537614745216215101118575809891306898653064176538124250172211185826413369379236163929028417385551140664812679850285354175310486344883703507307819613401211162666510561632080645732564104252305447670092180242969307636742814711968675440757399796436476481291709013199340326746046212704617004838124745918604048601108891571664943869933298613957829787012785996091852766715878689280523128602333147504952665404824533206232901174855758385336506683073152322491035361460805936198228632778869055208892503560783469234085769605915807387071135481435914733683770603073980103636046580474125311211279065174319865552450792776835613004744119790570427997026841017297660010907019595335883344598683838633055316745490118848637525367053852114213625861956470613471176524507176083571851897588246292050169009780511761645807896164575926491473451272879097845791232860754893701645343541160307569424637577041158316225722784054375600674690587354395558908290721986356143802408319430388987398621257418853692892054487239986559728648550126008576164758994001262726904504751005574967573241549466496798753188705484913465149174852386729188259137454167886974299035947025928145729815520681817705321265590294838060920547157213054777965735137317224921062079552208385348577319736120813772982073372467205146593909894901828186584719068419067621856778056206642174599808293190798737231079616369868780018492356806299640783138438135554888185705653349301681736525533332488291864001933050858637364322421037549262237803498463438696252039276262783024953583716605469046999416793513456893675761912453193907358963800537498264686846878678585556027173537376218702660056976220709473039401279652575895224774872664094454780106596708260242360364430550733413140981895347102644885274711219782446425928678482448026489626509323917904234886302467283092423080150806281619792799235056576723406264611239591703067949901969634307452285976597276561419200592361946910159211172061661474861147294525067879061071657384226365808152531845773496862083832588852575604602546140287460593412077091477912891321307151245386354851185953371692783497330320316893774936021075227166448857122015674458632272920285459048660530860699007311632563784284923436754089702648853836944941374890341677010715162194277366823921920479788429864909826105213429899540949042414743923081271474707032416878810224779340080687375416921269958218084567562098735962270884743956650018049903329508066986005408586835555035251025959339850222939072285477284901415777288727645247884390082218978031518875061027377372981444224328642028054385603470508826671312735995423861120366981099011607078132778852843883695952671440064941707628528004848301239809693837343728166536477677143955585890695603457453548848702724741138489087442504390997812379859162638117226754762388039989990494761741357352325962782072305928084345576791929437604729051774177813316821728432300060892087743669047942010769419155670593496063914625450912831442039296960710143834529177422350000620818206841141023235145110916092121850475721082745725883333146178947082961739772270323445091468478442003068504378601363792711564984394318675220231987375413402353198266564882192455393713671324928803044328053772659923352859751868816880710250586965823269471110695569877775705286154485469210004580109604133780989228030905246944938795754491430018771959531684388200248102439309273922568304284046299627502114034983846415859159037268039979491205097699112239636744244792361709522685668795479448146724846032030006056249064372982726444383477480423877853900544227478096472932943875243947043866975443195198300139732930401915402900290920712258699874077725062414004322778561635887146360316772327287082506709343466639908600061233816702572996862954102265882861637746856219566718321144200106786919614570055557958783835942509153238498512918593699718441069684227674311871350687641029284750447615567864445098980272651349445151973014368172181150956296056083581881999612710416073103603181319863993784291996839206370527736128580867463979315348942698677711584338453380810665164221307585699662072439045066678359688355115288036573328158931202180481998304591131777981546255557676061728294922287174829457538713048038795621092164569497517990631557525321295966185095603235661519813207475678327990994500702307598455015852472336221724037067903044449752597940072930999517260805621002525952613898605702688704300148510045542146920992439258853023358253804470657158694714224029126678258988193013575472570319506222015659185450746527828299897103583280381455069551093313404642382318829491107176002298255977944387297908956092685978801020231499060096620513268475242877126844956232535802338198388577577727283309031948709030806127097423200810298569230379685059489211883477833846057827078682501011909331570938731151599552411043512132843744013224216823872950809665255400919200846666767209959984965960235395965905022466987752977303180769087858879968921252068370180126761761667725073393917616114691279911687009208351962398338572476716737513074987392669281519721153343734972468572678576426498260770078785736953440739993140610639383971319163517807469632162956779768801890099223173200586956528768579327411668313682837633701883889929929382087995891941528578156190174318475485589681081965903976645571876511109445167398322964209326535884879013867988068007791816435482484569964102456011964507608023885768227430127360179941439517145241697454225281249750046041077248829286079080428206880677375249264617192180725199273959480250693510246178437926143634735374118078247293948418723577248275268684132665878047248723793747048893296731939031871202337288991779995875991393529732133443436343775783282906860927669397613024782979871444963821016444763545758699487474852629947546200553118627541878035112691681556718015008724312274452790334779508235709795437675929357487420292537318260860797094704965279940729748342307938358883964257732553073850232546692728765339453099624107469843625119466743008626855774692923530561468192168460949061795187437976948016787782083303841855611679496446386266373386559562154298672241205090918762898479543064372743866347402977123699929393969227797120694502573403725513118550418750002662167913346515916654109509959323896129253625835611997485455511913350783327209345273137254254261567601966438120890589866240202800743394736665022157187173693605806965196362212586801302681550785089619252798232829365254948227037100403157981812050157045270781101524668422211106421429548690032267378919801793710618063733037129824129801057085865936166524527513430908493568216361529796749684331988785315818839370180431899487791460788633275133451737680815734171329323654123210950715673732157399743582530693982605963549247954904773950688942586184379278125054467677589786598951406690588100240894524339008974570289574626353981830020385759413448992600030703676251516243204960584761559110554608955549194353681513707438677565633497504610488024224454698227370059099633318540984242112435189710488620887605847453630444754913359532008501411919891238748506300265904386726398517437811344835837635863155276307013790496023179236894606033567000927268146180623960692441116975767577464299919162546746517864813077072088270211214550871303739588624383342887082109299451932455274890977209313746630942327478969170498154792457291041858099776875511017347156167369383472232489538336233330127315059148338659051575217807211387025847870191406790539032841808854813936066227253671287149983680001576452617279515251045726776942083342386976850095354227544749654746866528441130316473976689356844054533369351308675624573611906327310112507301279900204338702343044457759243327765224846707101070537823395084187317681666903142112509624132204814667622325474528207322037039432902561841273244984626445579988982316499411425142206756831509209619808612307048180675702134442058073512194915428336457632155008511995948236372607304426359297785180678191826306387778313706028078751234432004142588373733098076767619021591761446264610913689574326794124966627969594367039941819413510518925639939444682608379866769264770899797200692293511320575157842422795837903087370686023559136185469611498466379990653501343638426488811075463375835552028462677819478033899798874119491392215117803705855660467010787622265491936172602517184280590735457741992421890673524650969730224725398370872711038703384610019275738381488974061742001880334260263656517504621667702100342121511886638371915879498409260409153048752293929430424538508296448389133390264952441405516884383515951474219871223934473856228383785457963195700675036598775732751988104393948592179621316568835291226988670163502635911057389855519179406105708429162937436099455676814566512154536007861115702994159255314642997333751645660552520065523138435870167931091592188791677087797747924289788118246631617707058204055042442680484940727342405985259423928446378635941930653761622547990317073836157512466854877351969539305840415276449411823956973194256330713086763929465149848928246590260283641988121288838375472151774404335062156016383701952883790922366426302304669754086133128290248967915644661396622910890597080108012163768907579580846083282857393500117690789151676882752891228188013382996311706066111918466764943349170086138164802736532908461349447419178811542194788591458337863634787343922320643696639943639945580389398514798479950782561111522725997354865292589390830057357895648044465590876709060514490515631693379309755890231157586786875253949189647273662064994405872557485187613151550309208356197503602489977437972368183914661150970329346106958535434944918239476322778558561565123504119926016384788649516105243150564191787412071982927935402670427580014078092365709692841570831906961491357159451466236763664808744116773531894122098334370336509619959683088628679001805744839258450952967058857718583500640340037131035880874061682492946856197975880524196751969891770318250098944865265372678885254367557361144964013905853521779307736045912956894634428408945500911580773809004144513145645480068124354164274248294125442767307233037758973603234717593897757673183155381157093544263562300486494070275811433863448079321214934559472996032471783798766566485031704382467379948600277288482842329271076155449200668568484787299047249023174994564712639447615755385862151642335471668267337855758823995244172249531869204721939835014679702843651030999128317288519274199626162462054685031928920225494582576919017866292619438009787011456161936731283562044321163638532587535312193544578092084231363824240604079303681918188776636783297805766788122619572684571205955364490933391909211827710010995503453652406477215400921589607672969838558507020394618085537495786455799121201303357105175784694949808687405730414156852791796413507029596789259591056662550966053015804196823866700116576541731968591031314578607170577894484635102777332838392390652499073583089986858887444810802057427153985698764116206487760493128622057196908889959191372052756834504442829116823022325589672481679612648382148804978284679753243533776172865567695503532576006946578507865504967192917905140680996438335428521699343066561222785294481928224228701797432023982012627635935001884499577501688806212035642589179096819582377543780221894294689544596927569252984394293056828437892243173870446374231660873416308636646726136700953934000296753622354535385360180886238440024249368801411905951257849314012876646987893648965195125066054328912720862890455493477260629556130057045244747816940192697066099301233413761072627771189460899387449711104479645244318527096413176709494052041885132268337880384664630288593792132844921981095513877746935977958983217436626022464643269272263618861138768047347594971005966636488186555327190609878015780896996975077075294383872881064903666784940134069782271977379273678734729854706268511594827155617309050976850099890971958452191570151123550925016358660602073462980577567611552641561939589502843934579337838592063460600212108086193799070228531373676680365776032164355054726291079609035164486821549575946311305302522102114951667552311455508839030478521091213551125307767505803428548619975440433795300748844824203719450082255768678718400782102581418334396533743591827650367403355036588759451969781867548616644637300288940875082186812632860622468106617710527985971266292868173121699759070957375402731658583120777512385016166212127204870565375192731345123502436213505691817333209014786692574284101115335354033089699391661819879576485323700955825450219487468514354575444320889741348071750968216423106359855820011805330334400691361254940735871845597696147866469496191089524687826654342771943761906139971989704691695605893308976617918951843367877950060312119177608539460165631442277693255963314864457440911349691850531230484867684740607763572410876271031870997711508203902180883215954394186664021311745573181686269125714796851568271456660874786452379959841335923117743258255728002767582386640688852752068535060747705151559466771272079097180123587719721586839273099738676799634798684932594676433842404730135753422117777687026523532692256278042126109186621023935857464430172136983746571047740004827223551458679471553902023837494633029222415935452814626425432233489439241049598175969258772454391228498868684927248416198094209222788245796522765685846675947255137915514891686115298717928184481156315354707410794426800530730627642408109863254024214555456917627510730221722450990536436994025580250601772803199301726055558224752425400525663516719587125869903693543439964532653349825547329527440848738300936303360126471419050571053749970651000614949803065550298088557599402328039521856787282024301574771572307636814132407716417252353958694520157983488138045687964037452695820213412342437378508055514568580270797855977953862716100431169567324250880462089382156740003401635196050666652956203761040713500086017601969501686580561909884584641984239588359351308869373404263012461079896012905384208036068059933229759270803681967002974621034164804923059816894151164078875266499850343305175775802936206367526689572798618998195460928469938183513795868536819746396290947901971551896583163934115334248756500551062008954168495666134989202559465912776137828650061634808292118267217293459760396519353636405701465248469867187500200192152136512866856706850967205800739630362486569507289075743888746366118006837524975287579290201385885292549907851753780194846201088377587249440729915084147224685851866761152580989372073301016919362686781959911051209854939233917392725484883121762019740953038530954402051125320714011157420393328707773264780756001024981887656286322291337299669099642987981186875996406951867768786745178018578587927100762735491911839424712498909901825339310317028553567353705404199347344027716400913480807505365349238606914862915539566269700613313518353856884496521016465944731100961925804346452703092236994563284730947564772659220221236024056055601965155885293903514731228559354008292400644630931413824840701498494933008632687577249332904669576870393980880225159680737192664195280587050617179244666574962663773449206057005474214078688935471686404594325987628120836106649880590214570175149586935602179168393537104083049810629952530590008973589035940886825372568292149516247045564787989255153383548951481103201984983305047991589812832719345985390168381868323115084562815521254588797131977495798058669491268601533777709954809529651565049152120287256665279565236041435780497515374277835349299073203379900643360480605907192901458718081785776338077511283306967443056209224837565189878982952529824971196340286860168173233115402888898283233143400513771282660377443825792165131166607978212223445046847946878666119953289097536719159173789342393774342417134391373135642012134724493826177303006614056834628904916871266667673132975658855696465683301798689112972423401791676613664922434641510721027400510071979343023137560806163792629769598239251236389752023170823501499488186505222511923596450572843091008064732528821102985573703831453734465150490996103238216772717048205780062156380290112868116932614883428837946991152605092813084715946979949808502269408600207534423348494871013049253105304702383710218429633314221973862176238374436417895499011368155229358234393733461289352651581121133110006308276890264793717412871189617211062560293548885013795672634710754093771673110048207104341914757505599528572932948126703749381309017041115936075461784930630123725485468565946693927534261759026496633081261886948867724538013977699459802431959523853882107109576418093933787302114138726286332935990356076742982027680045617504814939344282061430346907394468224568137369413086773515958703675654626488927206399389762860782303845728520383317947246549660951783510617216975672436798809016967286768194953846090700940198571165247119144139071288214837924288868432710878978511904556655219262223859888257003560628571306584933536220369578570949139042856357549859402490335465509050090945758718100376088833223202404452095597193947858791635846990328758717696401402366438749352487975989246220161155280154527400142714016376735391412377679706748435400800683941929125863449684537189691350016972565849956071892052334578138480638120435702615245546213009116580940089923620326468796410788902735352267238320501624367446550299379803384371943160321075288117071241615616463340856407395945828333871947092992817850407516468634001404731357551014137483629125801404308064594967656952215136244045303670999130272258412402256941001654339816335091655577553802973577878965763084712166377274222224832050626896042320090106567696741489471827677851281601162563877971860551845409075865044100741503317833359883106874317710390761563275118951023401152658544912499401768662462108541536724759026139399413341954260083416847867976786034969373452229879148152703535841038719519910788450638128509930118631397582604977614515931697005085626233094082340913985397098606408618817980645282757051282663311356665790251925431366054632847318352374646949649341382264251470485102189866193993957862754370858142099338625416453806768598042414646300607699866792237804848121014588998142227192638988641851934787618268280788658203722910165395537888694233507310223682557123495773653436232923619133488038826122437154590898102255713959945311206805989929672058015449395487831566024881865039199159252370976092505655062127261160044786070897607312458735812633978412928176943489673012148121092112871617458932219759718208306246668690143911133160430620713837083706705170971152719793567011147473454635276157162657363262786368828723458457221692796153532053080589477860955536045748590337966719939761150486654767007243356830695197823060197480357708541375649474791023755433206854336584253039682923186948628368212636798739701545566665812368495753761944635082730850278828809254440128993284844074963118706920965788890333927012059315278810655038139967421150706597418438738496973584609668633592566667228746643488389846983019480171604439651902940738248918371115129918888994199494513557569787892949162066938663559253028218738899767987741551943234765736743689680624897131278942712168563032544428944122967011682963551965977241850122818936406593327194644191079949133811256546679477568078039433209380870262512563813151147703282991513644972574750903471925874930062295979038099231858100989453236902393272833797302697103062054941510790884274344813423105697004869209726496500981169254046334566384748577186138326135274878047100370528351434576967585801426560365605871443462675709808175488310469060534541101346849137274495684778464830887461076316972643224796937954196990451982664065937115640682337153493697927463663411010714568824137449102541982034083953783547006756593709907089016722754579213974061057045036871830113170161631379356425593078019403337791164113338463864504086502677250362447277698527640043868424616932611076427608094462446230019567033001536134167365977680759088802962429035869698589735983756687912904271662279448812287011787433675642262215513676403561482072324203870923574849414449202200600376394514190624813595169845867666363617496483820676846350395597150447522529873154353384520595267986409977165799570109025472374541171693739201143091359404388223703780134943287404110788572844160633916140349426031961740807226478313690120356908476309802821158167254475786795688820683954283102074565497038834199627070341933090334422474667741098117979538994050822820757163842470084259311936352491445503402012715345957227673636218691238913461099306147142266597568556135639526395898558261762354724538539230850117278944091985101740283895244673697227973973804287179381062432124528245263777500324876512445731339736036250128601922360513693353048200234942204499750837035749585264349083936631858844665321348349248715338310920700526708147576931179366827044809297427537633259141829487691854998971971251243858687493860268772673324877710589023513678725972880475776630441547047019718781674850118572367918143691780212766772914084992599702646957438200958473943441539287384681019311026183905931074936548556564509042683892101566450030167029310889739163211365105564645605706060775323839207367775810929049523237695224925642344740128416490986696129819334545040115606052964953622187132473365411592650401089680562423492414505895728064365124542129484695094518726288906645448807105998761115065790333039001013809697217812623791289893323724076902126058627963509079617683669815916700838017459034952695880784169175155725486336241756449665379179705183348394686481361064506794197789208467862311798787527556941985166085518626811358327586588918661156423376641481358065491768656485891461797992120500823574047516961743268724400867149528180081355144453780971403294848691873762589412726683950927485452090022282038187087923865326940491358785008359685263241063510792977639873004573675054326659753211084271708571657421985174186589978023711226896189455682610949810762803427615370983672111498766591414051860614230531604818562267821973047351801151120635191230900117290088114937051810773490800511108172537851971765146079304185450970526897169338604142257581506389973532363958475665066129388948882171340997604308142423565130729423802459842967331193382445992596569935359233514112155423095968707135576704650164048228157924835081394469291446557468846473619993649638405846292422372128605396691645877331270389071428977751432090588452318810380515250309962569374177719681140553845604556475028179833112602593200879005841683059298190640571970287323601735721920424031406793651716662012130567505886370928427760608318048846917550267711594270311288948245489127872452615946258655465812466605063205167966335884085923066930957413121253858486515326116809108361293061860824570113424337009763701526315580480351279635977762882989841951215229572895716979811459710030260405797783007123142763909651573725033880485214590349874797806786960029875399001496121585104269614956323938017761692132908716218785306006650909904061170598701453215774695138536892228098277376251810317612803039930344315187161339758456606400249534785242803736474592436459145455797726431718545275036204589097890527806247088725278356020606665724986555561845358579511448000064111832906361529180992530256056256760106376163814010582928776369004539131230901336575043419261970481055816033572600652840294018852797119195977207502129703632070247651766834893146558484839683622669231484329040310377497272961248297474715590662812663421771084998859257810400378229487376456107524527977014966065857048568539711591266800761318105172875545722841347318828921645625768403211966907112275819700319495348697155905864370224767377412870382958138056681198115700543335539194567995378250603029460213682393013964251534788085582192917644212976965085757381510866588404451155790743381358990715295271256308473947239160316121278723883109123096289285015000607075974878067838611756758941789788061547255676759662785144745108456983384845611961511664760923326211466945737909629139660439281668201978376369236510876144761854810728873583695516793843515398095422058883097930752488755553857518450312471337534120820058149796405048878322026427209683409288815584863378083191454879057107728523268087068159533528287008464549276909044040416080268143450126776861005305868231900140883025313473896461514521098128088020414587710694101389906494063865439783413819874368455005239974505657080667951641640496241764594587773433695262667794242964053679148392676707927885925667749370416213800380415976552626391682103036392873532930528377210166916152037799990004793041216546386862207716439000153319701427182920813924831460033224880174772084179025875728613740884815948422650661325921112675823551692202124550574717954111671063638753704858480026444955755034692887089843910213542145100395475761812231588661247222258989795702429714049346501158596327012116767058474666371136264063555208137791631323141800182899678891110494934308793189138493358287834968464302172636786672275333272761305750029970980923756191955008623036660323668272908421740490167224664745424787899511293595074032443888180912949272758997493978391499262916785934698707312852609319185209750670526777776824043423757634788349675854061808551790686755328286468792603113076295468228011398767534181231257179776034347116113284932697148643080513657300125293500050664145502508378462720767518751110765941507125434297724684462125453811470289089986993604309515272163520292255248855877589960756442672620463248733086060345047424789988475973842564805526737602556349429378558584430898748623442535096810409093240731278733238315386142590159686757710290090134825762451040398823716259320015697796736771573248663650799169309959476075432084237841827269723967569386956246399237071841771991245276490247306115046638654654860698276865335990901086750356233231637555320887694281926852122022952347403617923891604893496381264202341231273851019089777949397905585495080502795427663179210674392198928743724018166796549676420474146646961126641169191720124132849888473112070650884759876399270503110394275528900271981956205285228149182154778737833444538159086904792406243957136580797007210137344759347992012277766566331685060022856176628029538295947535537000375317860596483276628528028103458681968147310028517099767649721904764517939119210058981467825832333037632512609905854856562973259698713702878041220366224826095032989251444054866353308134785986293370582601118781808708424456422837921420429485624354867652886555520479586231495269860511527489494991483843428387323390227063247682561406727245049425703819814990480167743416351031777633989591006440885454661458747325272628293651337137194738348843561888414331379480502133763739293370570462672513794595858022965176562958531616319175661518315047390825161922601168025809935504208492172169639219902956229180549929587123536752507879241462364123566791110352077001405945000023878446044459236985593830667160845753992289747184794346878031767963532580006682624689042098670320102119028856267450746596803979228586085829980853510394295476283469007806795053562160386388769306763349651998665176815373445151132836901038484930669095856251497129470128501572011220564924042062427706355257430050683588540150866870240319513663354460083872869187922127105945986774807871693306549030430056983466339448030591293891685529762084997741201804334375777076717778058021702013567512944220111975892347147509738879288312535821333482218890497430652046405463079062851913240672337311560100529740223359291864495513744514189487973478537069255050082434355534407622478208458698042146782343885488843889246127411941219577674097517321684516954296794954220088569296655073560091586656952587137149981033857624923069468720491837152937761536955562618664380196388134710343089734632132665256673155538935917873323367263404547138161164364112445179817325859047831037878514707662607960043584923100779082134225388496916291326642386121179819203408592935770416145793500994854653446354549018091511646518342059110017680853280697250463477222825655859251072836409348235621242622396702220449240769624196933685855624044879420825719203064042859828613618789782119962384594476689468545217791767074766205250433488271847287313069480082009524866568146336583671563315067548527781559722659276933452327998041440630342278228542431500747470648829686565337645784565908480888520139765989565032164556004134279522000930673660852545853685203132144817441207367397923748100486643020478217936093139527974403775769576536945224685037036275531627505995181712759849625229543232182576311367196831655427779238328105272611783559000208846651244323888000411321624032029495765916231053721121031677879694918856778132503651519868147044176450543550090354973765697817843595705304717735363141421091961855972748210837786451343467436299248040978947311121981149811939689359409411115833550218221549860076581059257263152493925691595843415713798781181448101511804076030093168339856160240251301268746728213740128456032634472356687739101152255734019884375810131856644540015046583529357640065748071167741016182073883731326015649203972247822535774912311251447302688641597772699873764612448705968813259510470861676618793689512511602572944956757806271606228516088799013369596044273337126253887219632810527563712528993353850112299840121060072592158447165384892446341330288490465186779643983705653380537663942911151535081176361306366568737783925289829284399064856081310059838323184318236131778631939786635819597898149960625291808699739033077525126852934348804156028660899738122578300442323925775196557643161588696493712490063600295025092071244705915147297075434224613120044221713113205757114658724749019775188395574036427581274002764191765152661723933153312204599553357746125524487865364629095492730334515035424263869714245229566790030756701710185049511126390456704098424407147426354581451352870774767413018430482657933736733548838552042957237256753438558391936562825585250204164482486000889900222135366569242203534141610230831970101877313452677139893649571354495764825730865466751510825181952085366324228415479099755495167680009901231994429671773377856739380387847851006962680392630892090552376207301680588336342021665398998970180712698272939857687065356111118183279462290904506257206404116653570465310205280875422074888147480123532105164611858875206073327479489630771296074330143936527621660740775456198630995995030315506566361518965632385327584830692084125651467832610141946995782839327272463156092927696833418744150779215348035502862826122045727305190796863846404221742359987325366650954675349297888076617057932222048941850159468257970668721494735558004857544204185958963718074768931202018544196381556392368460142460229598384611155021149747420217946248457412123720517151573582457144907694601729700717106118666774942421095351533885584953747659316629221742058295306236379901266788460300614293339491577757929147690727371065736849307725306669037799120647965379457199322754909206717954189351359771764597328213711383594931139942791544918047344368743411220513897771360900954558357428351299651005117173255847704157717250492441726884434259213580762270322729859916568375990287211140129332911168554882364480757720337341356305100112458237627709385593183214516425461651061103210468925030107207091487993895456594022548682879804655726432815353875389522826851407709199798569514999310890980598658581378071294949436385231512187380719309930839888538952882653028197943395371571296557079158356702214399674941032533371188054051783033490790534867452278934854219432602817215277877249050767542181310876084832454297755577981087982137460269697481782431766057260419286171527528804967005562667709995221489990610121893914978797635043935060023377942738824565853959962054129008751605235532470222947042134564096745820151868536734745666667167799536441590064482929807539040420482701116036506445884505966593380890636608249730175999706043722652657888467716037032441265449097201879974826117949133453237097472091398425673177830182923700542762747167607653533293495060831542603257557735540584500633538440672953015902410253787062152691287591654920351986882451173410360085202641867430859644678705286660780812503353392285071748936787315910972548142158219338580643741754908537500026309317139437764264654198611226984665217242681148547666428842150990765604120917609808849431190979502523115267135619257765922128308785653886796025107193230252804177133249264037487357485769696754597810054593956693120347526862904192588401477598138520324755713491760710201175638150408358330274593008997306632647917500930866765146807195487371367786955900634151257436969924881922115943493974094573433729794244071074626005881713957978434408218241987170642262324481521282241175406525342030442308503052346758934573215570069112555416976855746668130621545872217131937337222070847090690967713156800622208375537283400991369247087778163914479960832296865802222979060065056212993509940416823574060778768338802203209708778657327564263692965740793153800029218924854488572733417816224095605764319753781390777248152906820711960000405224663415046122314982587388506376606989907339228111924542514028974980726278172282411959907577621024252128957729737940434816048385678939295221175526262350904864432500049929559066572639923292350312940725367640610377756802125558087082451246627421375175282660949690234465960692073618863678458635894586884799445078970129173920324693410456805950079212645323497054053206203143090462514125012233275097171251447698230143378092886402456382879309591384111032254235962393243248231864128616446057119721883880367700205573893289716376507798335691896185048946447861208062555976154814619831806203422877035270781822625614720467500322420102917637352563599972366384307953878803429666931035366746629671206481845840944208531822129656854440646498072281501073973434393647201868265161580026162323658704520483360204378503305063668111096053984570370009050531358614889787792574574614421865561747955470284628806727960019819048674616524236633988906855240515183560341688863310287614383064107579103298874351263938813677635978304756687531193973912246554386126184904601257153537701357773347888328883630502060943021499082630341157821947559262104387945441868486590742329047772989028550637279989281561781260384288516629020264265072517933690329166131636238679126066902069408362326224663855350701708504113443406828097502550119093600163399508654740102599459294628116231540601802113558474276983376088093770728569521549273592792335790914285851011541204956190707781512294968125496264957634831258456908292408962685807175878992721347337867977682935879644040362292389742042851071889004602608389972577692799429320204804911418133448532410412593828530162977268909693844668836111734813339485703165590708601995119990172738686766428566317328303308949741801207866521700618220187457812376747939703575665850915033717323582378433894491155188716086867510647588001118256806344275309862357147100958235333158478065582138503132172598824520738693504804894823068766311096362876058464594801985277870368782088777147578512207325034493744456411702269553379241682430225617133803844712685237074803288591293412405074381281644954076105025990549676153100162452009006934640662820034744794283834776237621340820331432239027501288830943213954049259182719676818235685453183180342271950356045108186603801491738747062234684792547017537998630858912953801088884238601870046135658138000920754352302172434699884237867660711153637741416006586810734299028542674964682882386113234203879326004114435206030908418184584095184478553136564875060342748197464228298375708331833714170403475941431513810637299705763596135773135676624192943039873583724151405588782936102133522506400911269287124430634067990754133670322612664937264572342973876036406006450566797367646483692839345457694954159354369945340130452540200637898189039004132763221640457404335102043092964278319131489052759219601069032032800954450741783659936081189467964608066138092107917432649291981397757489709570720815758461290939139099488109855904091700763290941246790594628718833553318062231294736083867017500700158720301540990972438645203469521851437037623357490875666821917818215394456769695916135645645372959239967593211389449268022290436877156913134387781942381636401491681093063443653514674784233514714567902928028672465463840801521810452707290497423862460336642158721725459548403545397382625943253549147029901677306087804543267217477354745310702373644698526657741632618169597473296406134526422934708767902328533815666237929778357812332818125649877490547894848166303688186172675705252400953077278341556669845007272215908308751011295074688902836837367147340071304017757639440246492544309860053688934935404166380485364008409729200464085405696402307696278102699223019256250573897536943636596222720303623331304874086463908109517829282964685527276719843231836500564905283838235812161615435101279783974340111142449331551543430959791580743128540005192940611565919208328716373505763815180159847346550138909486073750405816521967199857251192435154945770974576766564893216434867839746213732212163318512828308150921995531934362088915443703782404318592713990635536572135871099047174948236119607288218994121532406499143918083312785748288304119927124064911747974075748399985110507487667835823424051833664781760252811332184804475301960171512900367981542004167302368514060812563179078382404966147303763044975829870037328686753986290037779658946508371501367209055842003483552797776928970483648848205607053558424015429788424970572951614986356683145987951245731714408744939505119380282040041245798905111203021143488721843058539610723383704155919568244802601778498181081217912502352477801966670147298217805068833435070752762483883620223080681257571477797332532806097136009930487384248863592667835632457098443438642370010468738367032433333541536547434441739972580375722176519496313814214068364559317912236528492625175848186205791587920161232390607850015729005670296816403423810657279837654969738272784015091791921979914082793304312727271462703784684470235423213497843891864309346246993728849023456339797541262971679627385305738062036636994660685445344195693094122383695933527160344151835785545276776229891666501819655351853388889250323340836645182883664194182998658150633578993308474083852172993084880535355438308015515715719754900536092160590571578707475653396190012011749351546777118439094302377213810441428410522239534638108555285355264268102775495890764002330609068393815905387745523854592353447289357012292924961864432371518339533254839542654832041709681370301758272716968827775786836445036827455903572628109825730866207481477749617612874099142224793413049597166838821407369927578344099706353440234126387491620956532165712746153346703960381694500271416522988993942276377987230709135159883388393306875449044082953676920905681543052863962131420582827007710142936151452362308608454330799945437783016666824430736714745978929529699755184858892620555673771032604267023218641525340064024911106415051060915481428569696100280953248089600969746603386909141855137608641919887518087757550535763844274202394318120119880381739107077316324552540067417238858723323128312524432236379642394516936070465266638302447250532738849594247282336227184755402323429947462176018486679291589475158705733613953026306118996124169971404974605961447641654987428506331365026554623000395468161526065143909440409872333389697286553538656289659991220743284705957413378031407607445268104618688886794107307860793473565096902667165096645692300792029010257495277981419687251376347357398415742663854690560988781089725515062105499169108369602172804237197161689150080605278850550447018384079813912865309144719152295702627290386715403039001946827021966497158560805736534300546097233573224537548800794282019948696721056517858140365191720894110448362524543568360141387860590269032809662258194685249707022187695287787061049578446013310308025572576811608266305830809694409253711145955385361670213437393259748915456744437623277896678442739049950609129958745887913597463982736154507694558954766229307032070305200704162758805861564549040185398813626738728729146356731399776761793691299390387114338212539967469154991275754657046984994929038909768742624619328109375071736511524739556927853234320218110665211406362703230806757792068987210699806235413378567692082651194682655328427344347883100971850783019793227522472979997628162539374482130162249527810430614205155467676832485952564759508315747804095255437162968110329190718150438427621201078118679309270480283110207017711177896525346202093478080143633732230632729450189192451488567392030288812589276809165589129541001175686488337686631032293340319543864633202557824132439458480158397157737805564884280734212456949619126877812014763702088573180704468087318030573636124699935562930961655971058685830795113128659683205395678695728201118954769940634218506220920055215916645745661146358985568330009271349818165270649710808841640883182580697178556456099730556871638178730248183361112060287839174628108319253139892318552466492613330709361084127319380511855273438810650037640787664037809910736324432776328390531507857439811526856233332878513458297369092457222658020926666856093556469573573026043021211954415955635500716826516628698800445739995330503441751627059651820883689842650632937422957689824838610810673481226496910738268731098697984598356009405644868298984871730210077585756555416379071481130873895120262728954124214034655426649011120886910313484017693531103799940889049319436835255139214684516576357270262353682411141098811434056814490534337718686674396701680789907438404091480278730111818055300211582402389339363232069683733213397920301876419638623177482995860803197911077708838267980483964199949590455089833241163962205088992266236223911323734389766987180561661950755917449667127702746765369193738109350840338771208960145755009316377457920073603699734057116854547403523085514514656956824570580925485283964979968386567925848602206644952472720997401218655979387350920081131112892090425388762592367559816477907895630657805139105630828350762084975652421801555722505061411012734296840612569089134840029340114839516157696564361317478280316893530195783106900804035621980158585314111391508201747958347711162813695907807590218704789431506365424154570466235731449802019343162957805351536547500979276387473846810016948781028009694736567301268145734978033396448086570174773680841934836458829753397274227153747945600943376072306064625016855389825552116984673486024225783760475910229639712043638838381172843232832597716135790576955794764505306637198350159487310720006439215752892114158483166962048481017972906604915026238797283069426611758293335345503246690257973693001164210706614392648220031798710111563245627035606227607701166825975746198754658304133483216049941904735998547995788364286418655025160219304330943246857751405738373159837556550033208727161444214539148368849873155751437738884761622824651267561955551986490936935608937805972375084968590736332723530011932432769177489777938619533831655866833050687925800319835802780451615671610356532703793547592652648076883635465346615574861898081233625006388225325151848181699530157277381324498472579019340641679791339597353491565854802635322142402352721674697234015430011111306945203677204967011018543247499962823778848254717305652638896670607231719917790227434061291053164023755922171014181387611528601471941122524474647363523318758191045424759079400924199430643692450852372233435697229537643023847445296523384488224328614279891965338210833040971161237596438703923188741236661268467019620833628773518067985037012682404390184366368466822008978795656102433337850291060395173968506396232458486785385993325006189721967161114702292369226985013884371250888750777505468103845383692909190471101533335630114145453279648513497184667144405945180441412367629025972203698015842223501096722340196297876236053318045894766501259252710265835150893652817134409120699020115846378289056787775059089493631681170181032431321798453353980246610870247522669479970037807152969392356325454519423433834863283313488682704775298696051422844374230552286867028428790032035627880956460034622993839085079278770408890322048927284753513275551398038996858928485590253316624740756503626750509281236398966192005622789889351632804993236759515130235108423747135439986216198432317561338627997481678418253013199632308598418421732373136039996310564784296880395116379819629870986909900447722323178647520626508852427566021111319911861407943719204200929050979357941518774188316164309828404508941793330199817958022090520967353397379312471018755456129131138665969648886282040989122643583342080027956280904715696712823226614716868846276694687352269975947588011245024845943712999502508393121822470112010534044154794994830332022534219710611121384523035681766907656537047304898581864458784442442012351192249520021760523949415426313894503145174337777336651361161639289191421204975470197445944042205242126896353046800825056349237693662306162300412734123564643451409802461376093507536274320987267915663384156530102855307072169413946732381839873317648133938942812883908739320177830805834519047182984969063971136057073577328449299550443488158000754483223676517909919509098856492617057648720507590218076667924060328994497861329431651862786338803622605709575701381988614066743240744375056694928622797914448543750863350827511907655769734888026882270114075308898029837081557708779387465512194644229876218144204514558711720865017686671920094572717106100698792009524896709130554402888366409193446036491086819709148894230140773318348227649814731588367017096526064192580248273027028063801553721221875557267036111708693124272523214373289293041224799260232919821067771080945204269541540881459588728812621650663420346497390727375168892108052881359828515501293738271539554877206915413344915880782015255810664477972637248022322300458119668178345553193815688081111295002084065859180358632711223401127190350975536684315417278419022653681722071615142863758314588655849081332718700710520698129775204350416365859753275762308886564439794171583311166531489752325391613868366683673109120401849282067841648856712013636911630702692041588336920256295909727626606990776873286358058398078950405747947017819509209402108014331304759907224541668993623800354603946208056092427705498111021770428051487982603927179440229255785142872978001429847410573760702146564954381460576247088292839485458671215175961929532143439206679774454157154620985148940724368338093838743933764859328197781611201521167493880778812134060223689058359296526855634695304521048883472151834819852191994939713245990835748223408205286491999351293219479269281765237029663375375099760325575942066297566373311514936643200102877929855091462047660239050281051204162185323574372228349642162727604776143618492855794303288133776236937154072026803517861074082838669701719230661123876319086480769320864067657080505091728300416241792799504469850461919056522516865900180538039980593253169261308372745122452174643848249790213755959779727144094283088468665011385502657746449426324121154636162298111546416516938267506228561199142001245975274506041391501962352072021751159835378636743592426489239263600375193834078882114065472173573431250671688973725552271564097380849977087110219219079732474927760120851226658590902733608680778066689545160227959454817967239136842439483341378728127051519876711065572741436149591082579357976612726172537524408267770602989266542381439742297704884285914593225751311063067768474936578535642108831736136007743055040131092532877323741857325004785300251799452867647220513568684949385953865834065485644764463591109959307880464702060155856993064229799913353322264756080824758400242684139713318632367701665455317024768003003572583189057198006020338724603291627513394789391641930278532554047337614404002023745241791488100592070122110822597403996829420360182156956937237875178649618955430899448579334581003122142542243941454185447685948773836932805724736896272352704048264789877694105375510891790381459815714072769006441765584834890699248254501241151827005521506343946247656942108523884431665855007443638888292929724091403115303381861187528510971803619695028268082143481428448121446041267384615005514076861473557093339318930477203479404221361757538617124547546010919712275243367338068265345856072248851429727391742307278564336169850826422960339058250794053721612624954268165147993964298452462944394871202498088046730024399146179599096838081439185322704550205843710372038623325884636625718407538578371122082249580550962749867150776470121853872517521460511037422245449089793710899220963847784300655735496306765463403362307936412378969874596145547800356303729206358163615698644169578217293972373998614284013171991000758924964347071168206844481991179817840163403142656137357450259790684437827728628283452181844197543799883233627046518491090677303463795264965816386564014189567949819076798458044560168196310784171115628750969948820499165394219836245884035675190356379705075221757933199080475064028511299277128250940788274119090633878061873602225160344021736104532216371227952529462059954224140972066510762706561226345669965863448613567994489961269897102678282558256425834576439393669993655561872850093766624131408239783953256334087055297823193674857397372929895020041763901417490435313047692563595396402732002373073026155453063246841579025428049080754351649739583816923866017601794789983501051545034939979761375901768354894342867992569194224771805672773629426478900549195302850585814171742975616171271030248782245362402095630736965496508608170040961636038008380631702157736360970922379697669845860587571581848568733692619596587867712891067802561946162429009069161792132852813969546681459481270666484602477479555461980299872812427413043512506437857097511752737887205989280663645330932969966389649368356291331891066983280012137448442471591487808234337829861883361876295639630203564166803906264030289022659064292755329620010913426690367110020221056142777019114059292314183846824903277447673034392903859796142172512747097932060880685102574444680983746526448134617679333480045020831581631921538039813291240549787455617336275224976741981250319695077919308272972115564548535299728189454197789523150038217733366185764449399145369570742104533340871488592366450305156966132551688834113399690535525926212891739322000388217117389405828587803090847883078964256691905715575289404841568430758921687422384197371515291387803833945816482356280210072865567944211679893847260898297404968350524243059011001373645683403455337465796937943267946751291567197536764984962964441048553984374577102122077301067340588339746766116164151143511679299482128600657856390490268633950800615294997001152852204783879553753990225647722354968130207558471616497964247433113403991198603393178240644255940411897101608472609608467695006049742376791730301642941685608202731497541735369635383206024783870187024490543401957988519594822754022314560680143024774119015327315239161374351216375953329290437427505542420128053141719921794662174140486871905664426752991594617170190063654270648699452355074547129851986950494947272580866680997849192225792312434333466693658271679955360053974276356961440991105433100918918089452800668197694436724140379785635470724175050226007355925126336181336133240552128265960444684010457215741852081375470784353332202717407000598248164348678065355568325045251774893174647365701719794718580405554529148782868763987950603156706422131601858578933183914358383779150043507386995587892654840061722079672592198074361442225629764886237805077984120768680351224138978545984759632065063714893361516817442260887802627700023438218825583655580229621262700788710468697677391557810386006680118607649533312648304099084753740095759307920424591862895162495901204823150494744305576636232144657811996360945931411141851804578157910047780836882515683978496886238472913756113291363005142587908816183138180394162795367545774541103230213673784647160381990364884408712429288740745306279339171428629839842782509125242054351041673674351478915016480233736943532881430649440324378606641374700600197784500264930787723249401442526314251486177041575866657741843124718228412366438034956155942305547688119332372887839475624848368788665420495303429736704369822592660274974146322184924284916463792421157363276105004961522620992622258324941611101982386975771823767544029761968861234911758676594437092461734368458382324824447728643125540375284453413907155172687654306329985519031095071316479441758313205876941266161076028114744992898628622879058521756202740875701796598554497519023204455143747223319336008107101092680685724875625447868817290411638993972247489704224224024803071266291346625394641993830984205798084263735027395634908054451878692187753467249575824122257165658653676884747130158135505842849262132057010545303842271189944234878961713628880211729876585559055816093719989627862102806670154080747568187670635288106398029399982228916311755248052739071383323305224613073230683439039413159446237078011975492279859677785817708883937885968817629481794739269740193219140555475143292177157426798267586010996410314412439386137836125393212638130304888612091931511633606700046801232234529537935082064978720755602324586329413339432250476932682760441143366565620894893154364786694099165794356644712069028894771909785005072385587285593719885360910211251366980339276890281052166969181150618822005104168271927788895385717145365532748040266613966531041719664456846409406849447618149009904745713793062168450314826398674574511847913845345532486353368693987257167758140703280224141951206406817522058528934438808016213333413658984673007174295443509568079201421360854240723310833668285916701783461884107890892055985460940680517596284648066322450870120101130009273002356368107643447740197167911625895883235682175327152367543210163735479221630306231965040601063737805986174126327811760449720779639575762032503120321494299248602480569984217681790778605897863724235825607271953885420779993710345103905289034028185865920261587646368182415576514847272745802081461646759031766464290388381822681858650903684913168587998033182843713671102253576643553440147345475376610884850904301038587464869330044265006778527907243286641670725373721792899078871112301357232985323505249265763048899896825914190319208713513385346061310372250013806365530667458322867870947449175863080203150074664892372999399022120973621508718272816559442081147792209299941181595016526760249783185209867234941008680559555168531839752186211094401736669305064464902153117183912227897845297951963528938619648313611681429828231623168744319137120036491141409087211226418974995815259110714682329090592442436544291308575557972222291614959162090246060879985741311403620377236905724184780844434779151239747061862782010816159977294481468112777965220595142348410040126433609737032240880913351351775085910502741973267704558499296103390077319719012721300650804630115824307947594458998882255996721572975717340426035240852988375847509594893641143058066854385090325542798553248343602291171323027879255740312923219476614907451891777421835196214927042840038515828731681024419559228632262873010294493141386121394792435606995345560896506089848040988717454697065954985364315245449781288270004942803503645820408026904992569841842436875367205348783030343913597163139106067360053429014847875199890502626267570373580554185452628139407817914600144068517636914859934557768084560310515648775388913200925961605038097608862521231405446373626976330613238330912364362583978274313658133598271026851422936043985705345700704599876920622716351742151319662111536638598914038508129455674463340186325603367675361014896373303973298401599333134173758663138744925001549309752277793329982055657646841526099718602333934259044095234192383815549397815859624566942225870461298538801332361485590879182710916520001286935247931343517325134451275988007828959847715771873562538472220625287648979189998468333767822939653243328690355625599256066095988815391938918223143362452396778775027047232520569098742064058357196343542791960022017231715714981721997096204973499387102413920835235045576484854643935657463486130716533828298220149019792794973651589277844049216098313099021867973579820380121636222441508158497035816666205451348179615946086434273805006724057670618837891687405108400542221822719507751747008383854156176388188304208541863924667362456498801305107487128882991110494732132315686071319371176329041508573494023362184241780392515312683912546979237940055148011957672885092883569220505828493616602106840452767909159051479691944953931530773797492818198017603769174197269153500190631480205731016669572189451740135160091708283345097343693232535894066930279531180006612872151861233643075588519216892838671157448949133977641046473825227289929467138833052430888812719172999805394360376607234184100117289008854165577074669630269196602560234221258024833457922975455918409061977907398911035528178877308505654425774850373611020022344884228410361914157454311407293369378351908508177760647046227922377602032980965550294086561738339936604622141403847005826278359601096534347987561492783904070929333037002228386873713117381810137194037154772287852739179073305403269259266813675569016893926016511467899528490195978453837147313752842347598236745479888438952358927901215210829435217720881808662530588556231606843848024328407789741501487577610228081689694491940127160450808799293925194688601848257159648293723346378905522558027398973892966223250085739296958374753631291294212875517624314262271120950519642425449560029910036199942320422919029027790365818026408946265279992775322452778221890700165372805715053899383709801923374472994832780948214501698714917014741476210535427563119832408231857456764982303182788155011684613851351423696520423645753552131002081346424799716162868666639711444316437015737987322083856298139364770312965832486621494072790851298982867704579524306326364893357383379461456086538341073947208636142551234000112591190451992367466169222828017031430869252920819743181723389439559277832343265515708655439785764920717595533885389421902496665051595217050242892409395605126051008326855644814346088067564744803239983443900148123972332065869892669968045090272564715433272596471734376921644039430214603679350349946246935688722178831152668809511456909748643475525929590211516451143314241062724770080480279494506615958819492403887556842843908446824569627103610072056429679455136866661323420247228396089845979370775415612815793597298983894169056842317413837046729104659856991096382158265817564075191233036003048432359741652269816644820259771774635235385984454072103041655461205679820468792647618474281326955134058746203870651486044034494685316240220951118495686631244015353341290006022191195150147383300281103346998902642437373255224338165008366189266204866925082125072118125207750237398913050226836096177115754618372415136051378149191161547530359559118455021215344709731309176432259828248372204861736180936066646256634741747961981448299371310970423041622221229652471983834572280153366840487214917488249554504964605199660823399866714087954556687783462751277229489982391287731781863052842516046490435923200361835231541257746845546247484607527059687420704955702028375287262542588903666663861299122976597789623342222079663918971871155940959051149641875132246300351981891637548943160986408676788315478852461026622151609060130138696954610284631464878968120249350001805667200491353392369948884358362386405676032146426515441832725598632903915165121149372998211468446653530109686876012352144104880793790301247627795925523993174281563206096163722936780872734467339922089848144592092410720044590220753556746431103193350889999210003072314764873145949268838536164204087474974855437449028515036459561947215511074756132903594255847604736110091222933411880752339271075636886969101983649206363992490109253720568960894523758509216679179222226615540846900207303134706056888719381177883433247368464694876086719753840865621823825132485636559399599701351202426272931122177406095689161570361823778600731949996677324184304671296047687270857985422064377270533487060558869735565017561571913224212493757617955757495078339857453612406158218835092349612126143551992457095936090491912741454746264653470894488638595587400660515003984788950393305295874677371432096776517191704091327042111472618098673545147674827678146286707550394947038287261769550365641264445503609896318436280712342574691549932788128942948367372480551488817476403692822861294800566887710688449499037580116443777030716067194724685190245019470778098213073829425804776005636303432211910355835720690044345850405738621596992949624781856558438023539989918873522087480519906004062064095609855802633204712389984423338121634163337267557318334189428131498909162301768999068987792209532637381027337714590976693916637063757917392134560928535595413322290918826291863102750207707547515963525339311623823122541681556555151844183779186423075740224601250730626009900837479810563259276489553130893867617204091367074687552164662060586967439151172456214582942682706174464594671882490555201820273871205182690736142055233929797771244985438638130745002707442854049550916324430566098683605533387115897600871645471970319812386469967664273710898197076486819029450910134391791526209195434253395464126826263538298291549763431210930702854325499525896400466488225958252701025847209656951784838561072716857609149718113016802798721664534649523646882597245674684253805462793219995689375704669850300220913806167853333218327776429531773119686124999042317464441340867375173602623643444971515384500364789203935708055912045751784847228596954313880254621953064754521752696795514005795419665003564143211287761535521907348585851448776392804815708899714638088596696170507288096064487843672208749546642187231353134322454796063443232144788776916095137070984642773205036679378080579168703207848782194088957895623707519764762052014796634583324131637864176275594664490353332540515448014105252820217000857479080870512486932620437866823749219417739527741340087811262181783466689480324571827593822451890995507115850312826831334727485280898097715490581687059238208735298940744785498885993623897985549116844035114132970205402911144360821608385883295596834875633886145994029298314214663246050463367886301403390829165886085039113727308319636210296104507317055794015476598305047845187352049312084644214570854705280136040421216082858217982499424239021688183829122728257818579450464027403054452160142233345633005931271360573177708951232207031393102787349580433907872710973124929716353492232960874705392211677012902140772649032732348045680691327307935951940842327749118416421913216347121424134441206300301761854612944617964890038984378341026109728426117842983240460799440933183372555814910735114666769919870246119588671953293918246866363516819091316356523446891118045665912236563721338699086164643704836825971004448589399652044799544833610328803887634738830651049892889440150041630294630263552908207210026269304594036919702495181451468914031647609789450652458202254890220557503535299146345032624414678537745480618535299191604661513508674835956705137100191069187826538251174618281523351175413594635802022353189036555776273625040676174922797855675672646367991282308400811376341745625080253216407530447908757567012242655454275711952181914630498587793643041090225795414229719401751175634383668501349852948035131033236249133119081975698368231714314934499478961622619312985856646384557021965911115833649692385206958875364679193969936571795187078904895759282122208922695780460493447220040666163629340798153860797869797177609678513943225946038976424153488557570517896847673757118421484326714745036236782522649516593819110021077913402628725482862445454172583755186807620826311425402608563616612596817472491656594255419900873015451816894340982911159292568415334326028620879204108795240077968845249162246190705927092648668051434892855736285947347183373829566298822582395837404652281121417369323854970466070742303842212576915835441543182885984198778546837513449304447202361430719430794441176266794310074674200407729535785154208862103964748481189684276877560471403721572711329045075143138363326342998071548461434569143809991222290204296814649135552441541094053487026088523565987752268631471057735267578976214825879159240286923424921138046141549573402296413503212329135865763468802278032665154952562869256739003681879522507511902707278024355031023553824113690053484060726346877851867043878610531180493424884882104255670585621346024098618672463593755907710315597525191230231349202497631702842040991920956392542595767440771734994536845041211129680427875165618548374546897168040277767641989562662215065320387941933118789196545383490313070794519780168521781872152696591792173184947493169272767335739425854055124824195007495109543453803289643903086959206209932448758027109999871987764419705595574195504915079958201362420848816880121896559453981592105875790338710434109062619779605389733454400327633804464608919727710808109199819217358003914490555943320434964755046365054912730242059124125545585551377525946239458323556838052613793597270432590836542103881523269948914704757051553419148168381766490370851821420355579547947345468425964055203346446100194452783202765891521723871849649331169570618334172036837095189586563083084564089925787265209423266083325484785440552170079690662101428691289986376963755031277478063106085721240082307397102555685718592801248106142359418819448199708598103089245288637008632175192945014561528920779629495980002105178125705514332774668838873183833760692946200647734239549949090093722557795212594657332597319196326463860482409524941915198295053295245892975478317156344009897383607685111937081826806610623581730331124668815720312844181519277013104996195024209542369265967098743154737281386720652353099166047673121833176623046178080343056384138871780823674925639196703931988901231955516140260137783622540833621197636576653503783916758780563584729059723183872432584604177765652432760852984060319171411083011970083848560686534082225974417724525565925559006161654608592200648809278327697994943423631570054408005985975416922112878904565797274753816977033292434680003961681178541725366731988216856391928828525498784531158432026574866158232226255863508572908716051078830138012676743047334424294111795187003311453941231928319644113125139756934740008355474869440790242273030870387534702893314128500522393365212567771948185432802985333130795102625363217238918455799872154067150761220635842043843308389028082824748577933873814875112118084399917017833908600163996742194012562918562517412763121077773064965350983154561802730825824772623357087828524534835337096925688376978142758276371052449092271747836616364380659796263471966054075212344646489523665744880744728314699809434654960748193779765226882043582810053690700020008585432523884867720876318085013715230191059108357972983839198397983299688655988064645346362603743257009701320443633357123723508623945788296248427590251564538270010138823533640636416142241736544004643551239550737913984990287822184133060278149338966901936145802967585621104043475890359177393381513183284336237431867442246792725028010703204915880187027834812786249806749021496652906114483759629428114223309168010739487250570007010964183999522870397559406947030589828411505238010334072950496247401583223556549684546168624576280488839410398620611372605929599901310748184782537629210197009856042117541732761281836409580661583872967549095473559792363252848534580307345218425081092837230364033828066106671891727622790931466508013223422382767233722795154705262563359911811092821863648437396302015252656497460483200111678142363155005185748226799414247725822022210669419197248294132209992117542902863803780356572616094052441164529170768968543732353196880287000069493069471086045627550648495767262048200651417686444876764151978008531074962656791164252285966726412878646405299061966114525830101637442206865422717906447973532354875867807291954341538943378984826047137102796791173530738578102871888798452606599030668707979283697425348847875318890392570503233774675427109958867096650897953916110337532341308339024750991942682513539694981652731754947840873961356274363911889704447453458722662207564732519617766824134990750022941848150234680953724902560373186254564896905260422585272519052527018651069263531377953915218137730859212381030300721450820394998264324515346308304956425240672408932682036295633200524691508564931662242431571425467639957306268914573504100844926152088286152814526035685625578585911240007779245743398035574187709510881689012542768255910941504786492305459028137614255853925624137671749919303630721983874038962015977304575622950504202586878985019860373459413237405560907202881288587483464541601680115886652216544353462649761009255083806191591859520895647310102793314918495768219142951824416629260460561626162969091649431242692786963236916345741921320067923360622674245044312832875814540146212583765361816188227630373706976677196099578444292980098131321928655154325871598062661465309279631485093402067839836959564054803910001108500236431208343399422693259605887356595162466616331072598042301743905777696842445553971445054314072029019562295134403155654453961187046540547167206806671258951802512624180923951351077312637023413748216874428354182884776489521198010473132833932894739595571631176970150667953861635128890488834974486471088342003771097348885269537915895260520084774344465418767331930736653232834002239264333890846180959722224714679176236666099818396704076467354101130635512579976454467929008410395408797172299294385954235264561433250205213002176603836587637458977848038469551987593829309098371497042739173347848761932679068855751775424830320401341542048473720737175303757179728471165228758283571357961692264709331783332947602620677773457130332416064055240379970263078711578285888236039446399159667594173365567272617685512554281725450331158203392931950400779302887993672327082506742663813471606033191164738220789809492158939707676267166466990767709929970621065912244720851024503909347204093329516478283018740938997258577726472117730709136548730802442866824837704986096543329435136230753028307279819877665187620081242921902728203382563471570484400945456131343674077875052538581141842536875736402294784560199553935983624629875153178442931795100001195325582667735256355392174006170665257242343850897812673007900893812881987160282920180436047682108577889070900093160988020738011350980151516798754791733852362475299135823504366485932474171696911565836485747724376689824604520769304120865982368421760334496130317662924625098265228796271889478340969465155534796826341704758097293506351298595502992693558170020161885828623568706606836481782647071324046207177370658074076908754420024710087380615500473792570019297069076834596124109465149564765807330751848544585202707803493858789605519019376827744195376416691882210026147096394466821126931676375090859450789743049194686497828975204618499309995051796124816462522316906603441107562012263153515366116177683003224381697223733307704918157301099372998708335924238048255528448648022401832056024646174322144320637165893773311800184221320477570458992773631055019950343962348196339625116071083369975297560643800718959002237690696891177587164932864894271572887684211295331152786015850092804966162236349305099670597997560102524847716904231960821506863412266608647562959272091511446159997381482273144152655152042970024165847610176594267052720834197617275620535011740966441877249654552733809686816070069058771244893808851812552564295966061212764941045611558913803045156445619757950561688707519121472446152912315370945514993501228735769491634727445747955371225167852256699543271511588809230125458653400482297820010280502052607631887241092772934855700947980033102291730081550113455415927110598864994268769748765411611913520388101844540775387446163217431709101275532062567424630681443417249686923619747959890484412354396403240003705638412531312829010562410115714077681665604070043170535229096532077253199518485746674111505865909541070641324939023064862244533450967590859020081648019041768015020087921753580706246133405834786244900843183252521641325606027342229911634145109033056239469301357084431181719226902233943006072850245927870521702936925813249045371549258209157407286618810687497398219954742428361467019822801524484509106366969809526137341657885345145478362833818506700445485420102192464413347560831095542641922560899505559435311100425599298313940842993655799950431305072174028544583704190724055055837073313652255056600762815061683906903860250861867642385099094698344474023183589783140857848967049351076126060911884734858768737857911103407350773264842909504313066768726657328417640866657162319003869806448148033853171811542861871912065038359477680875289639749263578626485022337162982735550681834193891078553914666920845196334674813586062571266096869519299813200542414925482326432761077690013154261288949305913157157166569920790615712909366220645361601000801254004034405958643003173908593572737688611130087128418291094666992330672538650972698364320196226252116989248566120631680089055449518474656669349683037151014037920185911118115616351694202449168130343008389390584851102162128745600678446575585138265742237785582160485690554364434990647025446543153532162715985746839367309989425222086777635118308263890584400384513016141526683072521632944113871402292506456807451173018631809767050398154302953241186292698254371583221015744707717692273037433494609233863104013941759204564506933639579387740770870656030741755318022886263647752935334932371694317542089339117190766219227133285022145667421983992116616351139913595726277266502011716705757148889070758576986775257260238093315900147029847951869942696557814406335975536157857770779557858523223633402922166827465000725691128877884732140993018089277859340882489528817796468273085859617085559569415009199225019513088526718826583599856295689519210525948107549389256139165745494370188820438536091896544157918249854513395575625708666730371576839207139508532453798842848834013390973583245950535399530802744740982626240600771629901261852975668900737841989939090570626407841536520066832128908055006838449996781593422811536024862162310721836684788589902653863415922750210873858002109230868251763157757393366343347157377419367912930593983228871973357418764453231127410057192383940221067216964824757342758683568796573928939628886957783426441397994253809184691422772195848846062400158634319734577262706855156974216338114737317874681113935385864956503915628181631316675233526292744371052956725225136237332157685103462260822429654073533432922121010096423539585579923464013266062906100361240224114526151308769251689006032171988021624985839015796900963998697864713081736500436421602705442977730239500844593305078483019292484648746651209777833965258130968709338006750409367879588671519393596978665999808289358555866688821796186997524192589698101180406096218187502948367279686017685119897282580135473053051954152073900782531314388069644864570238345087130349812485961255663953325456047746008686366813451422689840896729425753739212437383372309403102654309136809728660980235840312076822198523964070875806895496510837055921186682375330184739885423133187361770381889914680374861998004802739064483765180771360240639440497126976328890451263329096211787185728924852945763708174039521010724704748469203447122553728896478251113669222989699782129067685963447558819029767054808322487015592922765368102190112268411149420989211734664290753105409598229612904134988282434124804718027299880544180420992405874528576135682093494227968009628779251172077948607276357784971553662212873078576492812984420158083710683560089702109984452689428829377295225317997789412525373153497835103767428740312830132125953744714066249901957850809094229846298489349283739516532090240175300596698572420140331938831161813041946950663574447148081290066075485861905238887953938456427954007818290067486495319535224383747447501090792486482143929289211058085192222977423246402523177660655784997948789502988125442071850170630944346959875515635971193101006685036668663706622658217641319182435209460824983076382568417361694834901962020097510769158336654212410483156703087462872126315328930103444971612617836970823547032651269374561618988024329573754581672598258930342098204761985324593065505816494470037687381186450616251977903330903273318884146931087401110680618428176037867363494319870558150524327348542620174168787597509894565809673552946277103304253965190125485387145313970891144473616718095386108801065259681853881712288505526557561013539285507753103337073499126303100505197435025807514116287334888166535706505852007644554795579757500833161112082573066750179170206569503234004074331733679637383166439353851220409720150686127747643641774133883610112724872700938887105830644424878188080884220533185979788171363883155887841410004814360451833611146178596817802415708458166845155740479849492276777042696424907735485772208603594509449683412246208997517226310304064913826781203068763834983467597006090097920909665549439908704295853238275712870724481108851101567983125516329160096453463630299323474305317842256953392309322084912677357817872542527153792849582765393260675125495443741864625283548866033237992131121883081087896884217965907600250955355259648449500132055220470848116414733777739957562922996129408211011938004601605556503616607037010832531064824742725335625893487955646396785305130407852688446346028716833069807200299289265357994770158186503334326993754706696966963905480476512222135447641068657970893286215069308737213921598015369096948657337049068537862437914242382047288155650252938067597150262528909387515239651772572332009672125603138781354226696471251026580123034438648014281086146743037841281930180515100063348586987229303258047064946146266513779010529607476158295829838040136975462426830487179226302059597370542606519233080303193381063596007532651874079741028482421213703607623877557204171082500972479216330123434000783582614939110858955464928254690338389902345740273190364721003859285318819601744162708143560263795719106794948601557331889136136749496980679636351782847228560372852496181502169752620907453464186856816233646029067625312715010369370474994190277801772095976538861126441034607789567932096948680493867405402409866040912402289060204685035268334772767009647160697012781459165160876079511739528719241877429193968667384056661304549440627493977878617191250898977700547426112869285399116237149395170041604885712922181685082372340731131258349273492902616289676569527760634516287391948116379478265612924646114313710420758074177271205509356093298655335996889336567246994674137568188642712631433020231069661263755086660223211300316212958879330704901602532913158905736539920640479925641283762336117276183861572650525188854326390138540039242208848982566486247698915308014157336764212822014189317608940666741694162263643662246979064377619460620442911780618762611616190513628937819585564027680250428461236192683786214045776900307594394267539879120561310135488209756845560405899948741511412908332026354843682480799361540289054108811043629142802516463780403195253789074406006931042941221962880682031780960563445599633292611079560626662402852614629892186587213664839230111154004724076980855682016513922904195309045032902325691568072824012507414108463505006834552075825724541993531968067512858765683641240007798285973805443418870898874613658483837071830170373209022464592355637306820099460219880945000330876789104569292113208437472584320010759891483436728397160138924026971477341139994965637027114226763294655583846382033095795318573763185048753820846315740865126362107792295340819997588270541447100096348347329749943329082446765345886290292800494082706424359025918514065942524509722711151473197763520836762918499236274067885311021868147207106685540309509175154622493915382292521518059928103065167269405203950135210526501337950343091041783222271428534192834336001546961831981897113087200519635955371856961499269092257771932523991279536976097857722235506638217729632086698708154850379247157468770162998342008995643257792895057074380879909020785817793664393246782992511603525499777650028203453769894233636267566277630714313989110199499081314443084520345326514242092251146787563053782553973083007465063028568728694905308031787139001005107223101899504905294038554787934926833123532198317650611279475986400783245987745573858369259627723272840032292232870710112674476720153667311776235109500281534824264212678811497902869239090001334271992410936554610122639784253095444429825252657544918953295537357143456564844940859014137115376511026537346815969687440305632730252397890523303621968403016807583022651876403991796442876248220242587530068464801105856504534499308385545876673754368138888076705126582139462963853965352360050272020369816032667146123765806866411277970989088726689158136538565284191515790180722473086791380413396386961672690553739315047638730955240061471657417888005016208744053317159426616063583433572547584952050879693327727151935120119022389889528946679363067861036812819046393242099774165645192880957611127834710786053399377994910156122049482232681563825394028819768360843875235316170696257971998870758632250610861031875160773959967297457449564348834865405312553785232938997492417323407939838311268460285053279362337162125284683021044343373030669919125315788438990992156952385284760515466584793932777650421846263360128333295996089213138231359403855431691224111318579765674044465449805808015890366381129938632189059999668886306081360510496354087393425875571314933389753630704831992241016150341135619095036556603690658800032422840376256605436925333833787592607467982550464853705988360709260223990477263109683309224077203714426495323151323002217181682769962415629241630396174480773121495824466678304809544895227193455116521124224702944375462605172920800192240138934272868179473476289420014560021073672338574247103217520127127375980317832410922340778760185271454620817359486356783375783052137424177963176051932281914676203335014911175253235999565761551746066563660936293713030470446463307750410330983514170363835599568793094209658531901933027902351494709579327590154660212919471207482551305750175398061763466714341475051409412594734105280249463491234906191735357851472890246628210554143087419307059310781051770058812660466436090777804533065371896709998978685992228930010642049181773952709603761520114811976477742848555720729744406857714778636430169818994334140352876306711696622993783748017683754932844760188920764163862167485334306038426359230961764916321140340743270102309794151404882270555208280970027064302653316442030299436853554315761719204420807778438780305029085523851971587073252426919631467768800290624088741482695490757937702473299850161872218174651460913309229102666204374627849062046266932172610060973794504030708677881586499665470101108826946058040153908570108794299659261767788423092705847121293461066488018220699410807751043217386734410386923193721254816348091914054309320019762027491397508864078010265702166698729317644407086656576753530959422911954165193675669225558524808522126677647033613821309249629852207819668942439886441259586965741579534029411398644323879174950806650521324123138405728249277306741106173787672635906371958925711476763688404037137936111743116201127738177057524588634234717547766010052518948750531824612558903174118955032129059727742649445985136191898214383264270068843578892377755217551325641638132147398233385930679204559048814006695574191975357897100433368521570577049521070380412529363049055750621382221010193464362106306770915031567153607677344440859295369291621630163998914855634632132139141398577586905429917777263631796090907051033179070806449269127777746231692219800141854355609714702496976008645129863287870902019532378219944472528992243557923577151903914302876939198863338333517728670982047417395866504255771002489628052160864632918815915695709670760723032081296265773837479479739225064080144340530115956127453812583900893919200781722543614371446295817901944909148385156666060001537427356553458482580641104730004685148601784915228492607472425545456592091412146075114467315641290103477705369901813873857089228520063607965570724579491627564127404324443773057185814526467836590524461052560443313664368671070109474299915296605114243177739726974032828771263528181315933346793602493138034278557998603702682381396173820154328737376238484433517561532868746311652926925332470026921915810374918437616071882600229987303603573736739494161939632488344428926795847391779187679379116156169913824085410173708564680500018888936803485644995973635447036655427884699754285806501753522760049729587808266398260939795962345128047219531686251844738131600315456577478698066732038065182911994668505015897327847441143289398601903346928359673682085113255201549754234945995525745894594482267061418494238056336894018126781867531589285320217625221098561858101139621211555212692268345503673135944381233705695170202440009246893053713808871045369184166885441948821992020017834721815880088014480334157783014161029568000223261638282315204368206008203063237035274778518965821279580481521264158767620378772820125649631236434017040782668492302869137685788535733763473374074445065754247543850155413522101352760176346401877677236284543319609960697011040276277424739428908833039666744676610304625344871822138622786817881671760563031034011943865347555973571398091735963711691977818638957978753831029064504957957748682939649534239649520136508197670777056958863795508234851624137918644054555325292385423515658233483167789991176173652963051816837291012985270272904294079898480763585692841665521332306422945686415312831698012382944304684894944403765489612959803500452259466005181836138454256459828941495245914272505444896688124974475861353991898731047367251499180505789864487149872758410452457934092148636407318359963043811982529641917506225502188618179286921557748217632347250717866982305518667007761195775296944813922779508962040330891933835455425995033833821412653870896360430933646738547411290714131086910438925380400260469822649650573807423563931559004042977920379591079280725456063419154799463307549826138643569113907950609406541704649018741089979966213159549757381799939460887460356249518373523505864587272245121114586972626504259285332018952442208497293727973667136549824805258344870982469056770892502556405951979853153071163738396283688773556421795363410975840349486467977240204076320958597944154972974287973708750581013733010714125062786555605231506038106822735908271416155840310545225456523679665764922722943955953882442905684906010987233461485950729230122193911625869751122651355101222157747435516871130430121415426482481867968378814005467998978820056734946885229385383263809175164897322279960328748654119995391284299323036073041365715921099211056516753502471883242123231308461926812794513395200462755059880725844214340747181030540276946279952921538935957436646419066360713645253127953097363677344215587237711791807504928048184448044570704516221050160505279981523690013994749432158015832142507390755841448021904000251061925886900679465366256131096309144226853780070696987781120079242163162520732661521880670776308525284954915755726846215231546127194973470861742261672773262649963720889138893921369414848459925545533338884369937441789924289457910083277725481664141853247953087576140943515262032508787200109820794144470205665382453221208566520620354376358391108493076087922118146922198971993247917582136075385137605162246150571162229690899623923919988228919340257059299218679723379089028226720423111626196797391718905681432758891463027453683453521180044957776128928227575782195970232119379615497314052436732780339429835539647762262822781489346457189013587582238699878050141268221111681043356910180012081802564095929222546463001240018797041499037452063556041949638230718323946574244972250173589104453108599869791335504914509662759596770748156970195076402129627939988043777173811629580485987097939914776662536833603834345322831733744593077662373966861599739872221963330122685706625050402623541056339431819542338438555610553702080394008292333275000236519031739634341731176418778763651453338641220732080412000623663375011341018478194586013222858338032511764604665846578591762222601644966288134475589234249774745420693022737248856396185261082352916846670170586806007596186825528083164950256859720065776460750934994411950421657482618448244605342219172360959117306984339619786229211621793529075775669360559316869759943656331915914049100448416816695448901421758029600902539235343417698146105164649123669747653485777503360973456191928770509053460832523391099311750512568685542411235631115077828563050614967661726336646492367080808654119237287737399738980971439953259398536486652202577541403405084791514710091608541766170595519942295136566109902526345763425921473809625600027981793945297253192430982544302411464047712070639796169872417438310831868395413030257691350475205550642274035032007818519909293483952753280432403700005956844830312326790288200419399078794249681375610959161920882132036180659296752264113148512793253019137584313911140108229492649110658079854673171964020813672939734817723825389807189587058745363191274147106786370597907071070386014175652803880171358517301378541500278627358238898830032563084827797112130571974870420469295260279681297321928867216433345702480993580381849734106879429313457423494485940332171944774678341402920237434267686345465724774639494422292206976891833828554419372954915360846776678836903293579556886014131168298088293034005031818357125570395086114394478763327273750193158622767709935163862921671206047287458263053896992322651684488107898494375617449016510845936751676618585043311691771055979339559646553233230071262702423315821928269504569908939622519208383535482884354776542186534603563608460381724904937905475767879787799838541416895945683582593838113166296244924706510924525533580608067735963941627935246301301682502034726808994460532027123595033176790566507229228912495587233806632555916170044953971768195813903718786793174935885629738611531748554900322715134028162929644654049422413711720790229258312552510897356829263240335052795862678595348719745107793807840040113460034219106418588019141871135201021858773062144062491533571457399066830993057871376293353229081756166998374430432308497252667444591162864098062150526496299453649976392952063449063078238165736090933546609753765316468832840442880323636301368376307400853359331960483880255693757583377591682135966792080613768496716304452522740204213000196939895084924003201084011471814386103940376030505635702249779682273821557635739607250832600945105837729956215054316187240986063790703647063366793897902479316837296592688515077984390553018775816620709793572308134991953620650135569809386216479632241508175898305478439587381490693740843915162612847371894888080275147516782028328968693808572467052162786082888319739971532025933973293036377565456866805037883327950298876698113169657731849106785846784128325739415080531275827884181075465827061706227623393969780958258767542878994351962666508107024542560374156763768573000744962166128313744655375541841177158435052289375047807816756462329381158374422423021444392658810850665963032481317420217217209388262425616422605531538138090537793210178934643195290730796089509607293322351585532807858291414158922536572798666937651376176800772028857754525542193716383623585495565106471730069416611311429703972226428750199316525297869202881221067318051267196654298703622356858920782302540029129293940911370044139225064257518065751954771362519598013207924577089619661444056269054719499096807409550151935817002109578450850733705432347592784043352729087852613772785129999188108209854866161716350761112580657074210609866729518270350389052495789146462708644141969986503755754101321154442383979584800375236395866858193185813652263369077985844426379642769916300314625448429596224084494669946413128540693334757732280390216861321310524561144144920891553821018198458790514233309082142069937392326680144016224425312344351969817207546320960140165607962002951237942691815787848033825076776034438415724785311898787063033429000157141248320188322228308683981482664480115502038153680822523112151929200100564287990929717458665521353128386182276579447775012084753745496499733254334381949399900699802420607675518350395331477925078380081406548775692977314664663777425372201921390639063984838447400906096861915019582184104522139206721525687762345969747333516419915014216330126803810703249073268324500257388259755937142105906812032595816785423690641865233100451032379402724334843740516052619281979647883279850045451617430838870859507613767889538112800113026605844044398992463905345926169931146656209349690773875866200098839402911484992245440709553213111717951243457115982944124959786590296306340113493549490887644282391066218321012820676352566208884496937519959128484779141438367843819278588245195595440395777886259479695564571760655346264782505614376719881425530359919228146737313940151251415144830157828658542686725273788488347417062782490516321779645751269812272266351768834819228708938033303059839158605721212848251806122817353911051235493687402237725805925460776339117287210023522418718825894857294058795297368624447586115759173997747815682623697262425080476659338053589874553755237101278459514148269647197471541664769789362972150650191516817912336297294077987917673119347828865732986542098572956663743830061331729142537544374940010641287176220450227156600817476559784536357247306620620808988991585060996054323629890725517028853068670803286242659817209950915738717780936904545198220240243624400676433746112028806591304348204897357408749541678463266006552064565075334464030601400814353199860479452312283481157324568606744691703561047507376438857569565992996474452449392921516448197870984024741564531974201725252566184230796563790593350532822227555553162301301371473659458518080761619165331105264943067269794009395055979251382677657505444524919971895844570849995328351153134063378526120411841028930279150423751032491221711166940056203905994665682175737272506853177026762838116668116794266839510699027976517970612233839846430545203919893225242608127770537011916561900659094799176379760392535678648627353834239845109345487671446359581765523914905124817999893156854836268764760878623175289236831455841564126106403067088312312644525256185519591835760707975484154311298325972626332642719968353917018931319612494481146513418407024133562524765920759111393603826246987094983314742286903026005603655441556328111840910998340191624171006657107826042096678621214253979622839188990933275779113493830576306893242353218263319108217030880655170254348244319009172746707786986221272522006296942683007785171990423218582587408155620497599208844527330028074877507572617059248526607701259829151931485990004986611751647593225796679542549037299946528232103770041500549187164068129529117701734124037649994389326737830279761172261014113429926097174967282512475656998544715688973139230836971989662488759503808174637693138077143314305655773726524567435013969869095100930131156967149243482156246129286151291499303590891948585822905888348365793785807209379471438852262652665672425336521783401759653318785007199594562450996599113529782881013847268333980388724353318509746055404053044699464409171455538874553122596861513066660771358593201877308988923124636800662554322521856114730524882956609596485592853555529366423045406529327677757014981929949557280452670534542756912004787011493949324420666464051594112287900068085851343356872218486501070448024150368959151622310265028205079909416762632482747510271694627415417017141186545219088956151968527661668820256549272346488547735593788926447925663546982108861887222523141192692185879289516122204526853976769586793861482195104839614520479735146168886379386664623726825344696487895621555628882138332623165426580701454154739983856305107618151200505566083061629085839984620071424609870591951523592280384082642860638206452550645395994495972145769161556730792581217085834392654808237376011571023107307149983488108325495616082629530854037788730909104793166494219421644160228723941413026276448075828462817894410759327622403451332278453254445406100825595695859064973107936775147940213791697726412147543535592607706204326728049837532149837823955373923112802533129760120316555599050463286557928480430875281112218595725739048344077603994448228993550396641164052268409514961840905454888826525529950583055362430194464365789681834915785074687703612049208103407853178363364099806135533101641321393703251846072093914622175339864406036993475652227106374773814745973877728895501473892807875688048275735047702542852028416234567147741144314276861214152225040248461555187589244283575562358902731262097266895011582222271713647792455456308729610368031110019689964560673474754493968942454120473065537992574204263750788740313017250237283441694677389308880112402314784960515257469615616972301042417582274982786606662935293340826927347109620973160870595083819402350159886244336548620454444770673122939427886739737927983223098358240844596979441710853285652522421340212616196632203515729940431337013276665086711749627823155895083871580643788545412580098816467974171289129227171642541922973805592875624166279167546195583967429717548355889924242004820189676962626077284179485128658995732956584657804269526803076205099831830651815703701893421940429426506525143930846268411234323808328473268413749130427813226861420279203454077550580626749094726792518901259563287464438569492655040949961467248569305270276567714539122902674984612119269357507695095971267266717857325147861739951314345997541104191656240462091816892558374620247806340728576005051690709398008912719970671115747397736934432562389215145348970766219359989907365851907446323559512567756272422743464490166513443750343985998302611425772834538419775321496728394386386912419395143462486883968887349077326615945504195702545463658411863471300852608868553024152919807744823711631104628816538917386479025974759690906765774096244246829581945075199184784740655076821280193037281009309187875314527791014896380004116891936355145255457442508429736054268708068176051416981005588820434495952595410917515193371735292209592745339881652764897749327640159438013439791416392928981433049090535072272524767704368341997369414882702285055550928543495580692137939327653831329975886508806783219060108464737487882709989864924237402425132261107576160444714340270895491844167863369366745791933386481162429203685295374955587860259184859417298035950843742415081743865940559128851224369429546000918772578704056310776394056105120383080000919285464671972162637706865347509775867105591534683142351789719940575350177873546636611003453517599941532673556760692700926854377809503674483749370369869450901672088344201845939008434197174301128988657565075908179413789264036957214809742604741072624164560306662990083107725996164338892719514987420861127994726338053704407248591582905813041633931251831913683360245099366914802778529137207866315060912505307228557375978363123409518442241789680802385780386812716336505038782598374718867270231703159972835165985467620805749733909910276888755066346782409068534818374887886674250066874412364078072450312016558463350449186706426983254935542829317007856876836894084999385016909838873848176664298170039765889511237252963642932424647291576845158808638507385080556403077719393109363877021917101876174395701129461036593986442620798972957668188639878667880922703537571050448463769671789010800657035408057110050905348191168442457076687542733565065130998334742572395634336679778576230173093789646715946790327793762166451953944470729106960417941376265493778204124452628458216394305357283010254307077386807636642394837849213819879550032820281651484477998903055994427496146640790270776937484250758740666168596842735371052089033766463209735828265059270232627809498925722342717173621640276116817877952198131243000386741785371804388814127949452596165497349443878263912761856604753786865468275273140561836437863898105973154270614572389473099937126509456080875035895689215093131752318103063901980311296700553206225666449283394730265067209619852906925927572807932955118433735912827422147417853304302365215118353013103561816269992470618236143600982689188803444733325969501026029938564964780224867664791879255327873703613261987617288389288673690078071348079237959348482002412314847611564512692577667947511784296127854903035872712469013510604733501737115398401605216400862067163338066680429290590796105987040222376509929219308783230599819047600784737714297375002828244580387880296068145222918362433819212309036915568585330712673442181983291927227497140637360961848504992019157444477909212378552348849126057367471729944751662166027315500953931828251129248072649879238734547613472045968436732545797955814467902317240278704065577743686667794723746376027289218272000022421675166126961494851596814922015856273353067231329663265386759999478868658014655274673590428207215958044614001289565193067933723557522939343000813295518067814132964321384335277249257116520073282677117059887928526589792368363772330703331954561152870140055379796064568175912687407874401417677307466954410600698106519660756532241804893634542382888445284763868953591752013748695675313730500738776075867492298477352283419652381225442829796681698017127835887875194525898362216788564962249867000605078413412772470108759170823519738074778533447299603647941386510289578989658544412617091808611346974428996133061221525561468100824356252806840256977740041367707771636746172266307663372171180235706976557750569144961479251501018416552550286404440117479399146409143664588469509130614165041556017770711318241739848851622527108885307663034530712122605933676577778073629579986710010407057216764154022457530127760227380811197532631196455794607533870754006497424400170479011159174879105367643280289292548300622477335899899802935182562997995411635029285696220330390259422692661120090757818327806015897198490626613891695043381829376299035260238143414281261278569646209446242678920686949938605487196141784210861395030069150629479579043664875486082139417098570068406948344975319089405844990878943463107103491644983662355732324979278039130575423989851641607616579906770506897150637411083826801425950564777170501209677822287684373423248470264378790048962250752784318802585198841684176941808109261125821278899606624140594867875091336573324779368188392926051176590502836442538912874356362197207885676006851488346759182374800302425266872179269185213439426042832019998539986100814938469470044941117356688598243112586782736940744737697710530782455364638209794690501207292650155233788542255802898587811177282424602153269989743258918247438259074299860465179132733098914765406570660824919904399796346970697983721272314897495054003606412846630843613575918277887827084677599575643674804065353343105330265753509387088939424574775599183692614006377981006534822087751029473564219812913878589566024575044883445252615996592358622570257687213453877258401196622828710098189997880249263083767781685642556316498344897660413930647441724021071468050307279370319099473059893105247357894561913590425904982386633043260041966387110315365728284715644474361306248183741757465383665016472814705934812671569490136122168633708199785578883474915175240678960962123362205664378264102520650775099664126273930131393165194188931277357926779324515299140807250621734423004652510349965296352373206081800919726050248639189869041289733282792185941559568987649457934616650840987644234515688318625549148898030447704761081991733081120212333740045884261174644991475633881748073591025641877418934892314165216672767376590479508499027085938535585109175942218553301690774459772056104172965712868507969204496614904623909053227542605483273630590222825392980550170028124891520228257094323958527349147526099643176011292888288031826748698951179806652300808421172949648235253419796993578915974075619029844977686933546628142947291911749540829898069518609080160793767636779719865153696844494484381664828495729619179115914718083750202062823574736479122054635996569404823968716973782548513477662234884990191081517796636179117889503922520604489583302263433540505321336756356954100911157937701981063671873342668297889138112043815056832322426388476346932891280371686288905603175456179527254361487043658721777015639082618763292953239740572854219347321013420335619220613421503719942146993783437188541610010814771349981001982441959761168089514401918485868002915153640716691496721252810592628279560784739894608571494015294889336541985129829732227699021887602349366938411482951902259558220211452235286912173217761372733061632730077679688399215491450123677398404143662108943176050407377858581107383921309048020348937796764087517597256666084464145051349184206067812716144057299595335784966921940187112849787075799534961623568084215570162691522687782975120631951488690131076114019959270772648594421898906216934053032951144667550783768334164924539995395731304604517358107979556296093279537499889050737624436975954831078449170362928210452554442619571027184404315485981179801662719596063237867384574218606034937168488175540975278382492604836339039647569292873602525817221069633396162668546714260994448680996104069194129714193547595293519513983654591121969269990355529718466423672030475551168753657160438903225640933911995896048699888115443645685353107798807764123115570721138425858571086069894237097011142154040036136240288087397764079477535004205193122645012124761344287381431411889265358928158056232225547603774971678438977796716421174577330943245007426378994298095142156599738322483664952717120381711316121751169373119076626427430990021984331637169875704402415385951005744947368575613831729150911932929396094820689882479463289561584466018535257663089042048953543210671406531040873343944859470334490553879647623349714296046819088394478870930007562092309739371511761838823843804525164103817949775221340228451099658472075434155862528563536491828196950291167719717900944839188368371947811656652952651890100552849846268961588702655715081301276141897005699695310543402410075432636733465601545665233384317111342042023743067682757606071681701846556828328648916306410399379236842065173510888414039197426524416283101613818207521055581614113209134498492478747266827873008313484245352314547738507138027554952902450601011568339711521642898648419041997614525990880215728955057332381332535907765081399129388631382016305742975714904404756588918745361648135694129193632260974919154821337152246038204620398543527867721901802023902830449575152299512813574625102853613438821345371543915527997312281647954568280600522089643060666688200004238361394494167717358350596589950143965077707605861021425340063738705596118019834291405518481427936738350903267106071764109422970550111107043135537554615619725115396498364464791992550723423142564260915596018834440374855443003116222249133278636747131124955506167018116052450009251604286217884908952448828940717581464268054421808336343608572749839078604052728333119797811712941825499045631608075160421962134978918914398387092161780460664083203811930147630164059921637889461195960234662079999115202782327235589222370447809304230952983762173479634885274917860139530826030538239897060548220149032652432369532536885430553967799920513430075623652352352333895112462998748666542812484397507346594012256518651217988136856973211167496064223663701840703346337807275981063281454313548214165900058994087010949462703794263935481812481129249175391608017211973234665173713769630820655290957273384400570129620421437821766384313890057152234830760914374686567542514618708096174230217150391970443816585448249508445682151166789069155026786260236903466573005445249776229100577284770824725571436737161216348083270633468580348565772872607554097660429358089134279867269201779215837515738042830326719008190504010797418576818474929768510794195298896792356155002059710947937705696605004924464918058786360318222822962889987461434051776716105249288658451947890581401702382793122309724879295318004940183440595422210109671404765608823194619077747528392626020001799983261257939053815123497603286280055032484315574081795319391662760311971155374593467564562173735365247103720761091613133447340312002880850428818407949514295455306174224048442812904278863964296703996558982171714275771830296614989677817410934844413169372986052796172012555248947080148736244809241153654519117927849468974989034368377036855540160502419001370260119089953055603942850055109849607639348638113350997252438842556249076686007190152000526688454066895022702882769455545766736885198124444313326220269959733067887364027698902444540676691768123708278371214690170214317274041778963148517274413402675997875857642486563654969664737339968405161427391285027371557205101872079396663863457288876316089324387013884069497399959983283789577405045095104297777963757035273156585449134534768272464613755790489434815243356092370081219030206650965608771460996893772892541794164924552509910603942074658349768052077526955564794141813160771642578755064047908006894631442272195852431707781527265687413317979339990575361913862595257626404346022926772391239332768626968777941193467191282338754892490804455399594187459671352824488600200950150112580837404306698455448919900309565459044574396263517965052280315933086753401917667805335008820445836365388242139145510470580887956586715184642648736160360000717069566310731851883355054444142675967617287269742990794728475304035271596193550405359957689434372017928615562700774755046851153734667149583154300115429937104223321010084041650221948870328092589829489527162585112153018010119401009298879932004968138560550710718888397093597976332247131641181607087316944289652756833381479282031380425327932865376526222116351090959622364393870549809310902317384203388828166871422840792312539276947309904272501791863414161432289840629647402648989002080388947835371844197825896198168238950286035293242579675636844145723651315948730237771504887404696779430534564674842321216943963543490609844175903457270498174935781615057289632445998941235514921277201284915470803532708084495721584333264785954769034018609292706864153882619442364119439043796457616612283957528650487870556474703039365352095976878816196575291716968920600215129280112099451724750267597273394283327547379140631093899357966211789787098177113117394803183467421948398910694823124538597748741063562200664571533364392462855679061254428322909087707532310341191979715136107662562840609867235187604957147966665463950408661052636831888512312082322441315775427969622394136875932959759412025963450616503715711931664341983297191265890922517267411000749554186860094104468704907850362287968645191649982939095555118637972416483066772293772566356126080756139242809387131863741050889772590653144751439139004471150056835712986555416918378058696348920870075905167831263884551294663054228643467061186415812111512429340349234820099590589409685411314796589139798605677744136625951142624644238168862798878603958842469512874637811306789036319818497817974266696275975296904396044760046049980368931856850990693730800512620439177976957949337824036386677521772875753408502751278076109395993099831527766079868042488925952924184199522141220530591537988220057377525926907594021984174095511188510292947219531031306693285401386108278165924072564698715563367118228790306269189187701001322084567072773549436918630329843678893068796786289162441007111466972915533425630933463889002595673451089511331243083480015821564005730532095682585592556554819841081360231617760168322020020918041280607240884092722176406696019298904312921958545196111156651624368314205327205141955274301383844506527400463422796526819093812506975616951040354491203776800035493874921028938032733972232376873061756449762222855164405657718910141095051074109740573057277810265055299172237258966999642060486502005661569197006199832610982119619044001524830034807944811811698431041404140757035684422923183470375357335656237461017568211719136901329463967311407819203746466229622533532625939212967798640890528654867113622818327406832238470588653390801925582220941203960733834224802217914723168219745576554466444536654075309602449676691268603310648870284347170773397920826513899554144743927415410130935562719390468513070697841031149195122771724916072158847328967163220160773908091048863791914955002954608848222516969864766369088232361450998382759951235621271594797705375547886035010394931275496945940682558143075685449195218779963915821100104144502999879049023852370529245493814114673529930434147936958478084203018640286573938761139079380725389905459737693606565799630622127409895882515341244577070654199100363567528005662384815253694196009431527497910898476662682152989910293091285700849999091423578193256613364757931553114140969150154924634247101156004928823079704963242497039264496671292620930529155856440687495350224535303303207685984337444812117137566716051598409277228500326622488890694403431478577775861147318903954160634757389629644608774816660728479794774709650176914449097461953258728708689320857264686612225398366334236810200753526508577444059771718149597350768940587481287833412288932395578168414679377473392385319712006959385217024911826749836868429299636228448391562292462239544987167369052099860431179252428312627428281190995934212472190197779166341715737719117126085388073401965862907681593453788744435468851504485839879451542010072537736047976219434546385418591691635729263275088454582080065978873883922020382746682895065073884804576391754968720143570156288951909178217714595275583688382062727159246083436772359147900071531779625695153407078845217554325510891867557821164743570832113472726331806237483086449907868645409012390878217305123870813426042807109163767670133290756520903750605910324083661536395388238074829833098727875213450718122241191293358068615160078343361040371110860367529738286315231817374551882393134383781152365437189524722132498564604314602689526272529165601817631280796679231070130023127734852842705635848529837064782592718416744549514634995276016004270191838371688989962922334936332831364166740984701441505706292446841849227931914097573779442336919303140881053817205388364134845368695557060630061276953929122572407278939098967808212456632806800433492789921050210153610260658985390154211960441051757325047678390599318275010085362510238811682250586898148139885981430944692428039537707426531864479607309820400941118438713621784270918293704561856051708392174666278042705395815804181464823208605245243362819252000070357060289643114969609989239084211075775762038207910402111971034538350451799308843715168011118310475554073957404977825513498582599901049918232341061653097089900765804814528403297723579426336380687260982141467315457108798416109937390889694942763948020566879305875725019168199834467092170704599200368060602707244253661386752081532769993574030379504845134292491119212981341096335985230796865493191951431945286000597205957902204083890600918670299201718478838936271026900002596183812132259277613968337217377054539155710151751812702617078712526457908447219302674095405455830222185054578643232674172415154136503873542368518056488585927172405931707565613848973685102871763138181684876728048130391580963648035974526085983923481517383769874680511397826486801037986584301555553328276878647581304168618963430458628632190290879517927569657837698491879428260854569561028699584098737598952504482769982698031721406761702330185394129758201964592660837653972604710924170834241122262863292341261845869518280946196321382985071057167750452817327904821847526623282535412089486195317042001065249786033576444027626066212399327347704996735938428551800227463898012670566191396549419963536396826981964142568435842300122888508262969236338095042753272382933198466258279787593185973941502750021412100433157100138831367436693445258336541396514273315400636220090239998401758697647125578252647756209310705114918339897878117422811836548835172211188511757410876745283432470918337769324582533880601877345375958072253736991335709891851917647971058814647026891835985441201615214779984335144450424094149663289299310083158265717899475836138212109381230505555399069330211512610779619498574526217032942338295965054916827074704701737404669862534797322662526082639523961285950314303371812542449603364545002936700483290138142311189482533116605039738897240659517863134613384996601016695989153335202679533874571426215093723114030127005538198808573012336172759192904152669531519380152045201243537714253151262911213453469974405429048263573588399077825016385127078175708385670354198555609696484153456850941371169571824827623053441337196973497770146251828615540674376392142217848320135757017147584044957726047638330588706707439364486001112746070311135095482151484604727652928755924986140689639663924607819511252179456923822649494766082840361964144816765194636295820585929132256577846555375970523768009266434131015891484383274894186359800039858585143366645070661246310784617710888796892123944567489896834139089271444008288719270517485575256876884843095548085193101640319755030682528252228720404457839208497630829307260497199472969806464468783444313098700954004296627100021527744762721592231809519178652189912796850126307108339275216763132332556698745587784640108672626544683891800729401719716702855495668332048035560231439010360970137907077195563068786278890300801601486874724982978242404978408228491472983100612470175638573496711738694262265540775074677966501780789665090425017083785576880019986000294474279556738369709047156302612411238134740536221104130758412779559404631616180232634742729247161470325655571260065880090797554495294316106369802065676779071881705415235537121084065615919728300561584114672611035759928678864546820447663226528897993720396689110197708173743934989430318919159561872446342099547645474247912353332033404199671325112673491929820404106967717380073829930608445611770119423332302551709691335913774717338127350584901391912594268596345203275381746982232171355361046200767077644981696898645285336584508824278685035473826079310904382457901885531324071491503355396750017402359002295985958176702786220733120652881729343384952124820540332075346192376354154210795574871196633640154479033019342013306183921331355207993510976071166009303136840911740767834996604599712451870761759308377538235374859095281834741894006061799589592443477126174665727992911652254937347211196497663491134991611308419309399060552501640879202069088758093593873438467223122911878747584536321254396740621021382154864637255334427173524766659640935489782816136946009472683989100134113704495563618212098658706117431872460129461688443723556315981157369804423394260204703475722174196028981200938323234849206485040879681006820269310590255115479224216983864016102627506836602818612973716193229091924341514185304979004764063064387485636630702576527534553027373718285386276345928269517505242312717623711857180139172139308370688309376333570253724483084638752539246924734982588368625072212200691539791667446360589339613344439887334457424205494710138520727845699692204881685923782774106702663962333316833227690896916052615128154166439931149123102400949588331079863078144885514418505201754668046135310341800821076370514657303649497175278773101733991061341055544207693620979826844057442029376018139926431709517125833929433594092131431786274954766439055438341237456364081474925869122419049240814756624339219836320793867409408388695112296999949559092479098138320862445814508804731620195308738740064212505484358732585189692870745446046806120466403924293607597809085444764961328580247334691179552575265223071203237920729791890223178396357123439522516605837291768028820554146938810604719287388143098017948606794288750685037720320110913397920570294471415548580148555066447238689805572568313270952891486465926056581296278582307600405200170876375200011801275682948640446774448050541179087857030068689833715185054020556441131639378631488748504445540770311119636886236097398180116169677636706986826138029861418779980636665202666287384174133212426464254694181505954985038021451457641839391127933429649445198436614363448308161116253337920012507881131410478728071846355751849093780313001119818693614951347016330938930762367108717038370245747200488694601022798796693594690128586086720496199381313485592662653728661576473259032963854896764463821726188813899854912857104432885017721246096754946576932848541428009380804291901146852146672152358572554575351499333612290624260694905693722243526343301122665043472955400606662331204246790941448338271633515389624753899765049438317361041562048015099323844842708237129075992285005802344917117328876486215748806725540949710376019116095702549570414287014876986608495649583190660799273565659421567336570775540333945327272441645695817058694070286709576841647917978124298439877260962900674613593140937894444452107799233900816321478696076150654229179130871594484375470680025916366557379197048143033069025712155112050058622406209337560204946982869870310216847775742545223245305791729187794473172286076546379820886811564529809210830428310826109833096624585474409627081439506203041530824345395299125780780599826457284032730997043423679571103105441383029244173822455270056851830184798783476223824409052748876731151581843773047459672085334227877573673500489743589588822763829583904157862120410068386931862536293598535024741833793650011261465838472328754526897599393054643359360239537005507771218054258392727428587223900044271590074872257918232633844816126352193222340005910337515062081339134041228404762263029069779757417443546675244796063724307930259457914678524279174226862881469404039443820353318665743553072046238660234692820055223449460277395984828990399516134020938047218419177237049244693455999486560548527670556953540229369083969613889070387687879278963359794361885155250887315855572572508084102015333093383392032810192238313053241159884425996549457110002791141384271531367839514968200344033278910410194122716883673279838893089947279547668594475332368650152418012355527025862748863129597863533055544727565468608449087512199189821575411521622098158984987430371139183477260656035581606295669413191125545399374986184552372381058683562000642064098981268860713293694821278809674536629898714266611553648514905111413847951176129706998822953143683962783525206139745485157730569352237278881527121031738186413483669805093619259029793336986083134224131524184964696400652302534683288551440375769568739748206358025110099108400200468194666291647173702234568602471339941453892868404464562630413957520466725061508782287778309384720733034952828942636188515350950332681356738711681533278338595096085445373724174738219539310949276152480040104804753289141993833835343806208279495126452924014426105352584400156176854175353058856301147088882880052125490101709158583573766280332386942087694639605267469210035850664493572416446368306768131414179237069287244930663754967325291066717534749278526861929714677812223083065946533270597055616579201760802746022354660045162860694900666977234211689583314821827714257392549826734126150818056686007973729165016373102692997399296577380152788849290928064599923321076951603934209876264074663226677926716573857699921399104867287910801989138049333189188834016909576907993227212506016424200168901800478280668166006418715273351969939806695231776328494479992407223538417990237353379852910480827738857848435664896441208808101416675636746462904361654016760811326346554000532785860217012152716416099656930855750892644989169425552639674274880143322848381731939072377660310897851495990022186663918988467822690889351565185510467493442561010524149341870808954140400179057127978007107901146082498057358126081891771767852066815556329221917518263963277158682449302214846392550909807577129644704985749626175632818133851251734764518905505511621396833572344891982145539756480843492196136389994313657961642031270186835128647178392503371833835763956373155334514134747711416940589992125185053278943177657584953571786575375666431452263264088092018690039379823299680943237893927677661335224024267940688548128282587154023350479554620265113118807094425659108943016212634633651816737903135797483279667309907890691657457935392011975228158783629562821112568707796823503224940079405892474489235521084221489413741445257851057317921756284983666613969365170763929400559650779237878582632879875255490389507362687547490866436994785238627319248599985739924937442667858633077167669109343391568566494096277239771888944072252561662234566373479843231927131016254968695553826584907534072058553939479297725622147648416377399714986334278896845276508821593177135603201081623344458914929222498805769168778157135898046496931042270873617560900526633044227967057824897398604277074499687315759413211438466908962274585916556149895468529455808374496498255614414896675888253044769937174737044191938312468845452698949352619425479784265515377059209234059804041947770228965791768983171477505408777677033227513086447463430978053396542173297406592045910952491965719323668949732316488397024916856194355068862494639482212255535359587845378547562933033784566836666664799721155160903774055649245462082521533146956986608428666232210387085490032852544021459839905829129742306818708768349882748921969470492525485189968369892060512897391425051556912165085714409444795259015297280448410191564815315679255038287871781870395193226142720830438670541906282087663023647691435767832685901426016867320994399312022300496272616774493040674552035452887459601846140955917628862983287307786415189498824472488333521086657291510944853411797144967573750742502367777733560264424744895153384643132460152432777724214353874511154159876480320967077469009820501591177918392386705843584059516768877967565770613577192562181592752935023223715993069165387100939073422687176269552419964631037900228122986535049893045841662281366770657984975099713263536885699012100551654308794205653111111217533003430792497684541095505532711123107169502467194351008752547048300261238382510150437881721171127303603324783584518707207998085371262665393879893693798786582575065437422010687248610905790770507977737105967096102263717040270607246185393302234024960396819215272328936428976734943879122378356492432844413915902060015356160340311097882662108965062167914390036447353512317494781272021722337620305261678386710095210387418711335353156575961960284062598363341707196127692243115833948411694114519812781691905294870926161991952506036277990140761700088856678472774712235743586903912311403939676833653605256626289885634777806827255121105411073068586321260558322452581183412361136770500146354908518160645539739012622203260498508900890347446797328386178397252704585404325413934515870823677448496077714674651300195734708637169257576754778561456483870658212044582047162301729613125064513564405498516788926397063985696685116578833524661965089797503530906755177178834432428408827511047680131299710370524485196943081147320792662694367105769921737304126294054088376678013945106566886639784499211183784410891930000426253444449425783974042390284275056190466189722482422638973209227965297627642591830032869272350483334291662782910909873959467310297164335982764265566542670975338897863289869413610705094928538903872169953204075439745054821113960430098869184464748595144823991818041570421053641733051453425356229993360490436089440075735334009205494614627176186344687895744953729695292246778268139727806134184323358092812695572472748438634546260398637012726792996321505286700243390297045942804432736538877053957655950561678190702618471386218787983729893843757720062604822198694992908485727362039600253396402673426637360838298152140202164452559968999814608405496063500045064362061204492522426544752350391458641213899353616086783750866991522145943276481576478015773734950631477761272671161909936586101355993552214501089039740933840136261561533315156295174220245288869098820042369998568170053016256671921519639653846586910440613637246597080699196097228900469260841642810522157020704040521356856995887526255515704925272662790447997843246835554514392856508019893405173290641937682826740947166088565223026748799128981171633961327596111957020304974485954876160300469590138310115827843633407652743791561012597937582181856627846091903024641464085508647648907923447365681747658540415576279652531716143911854452959280766088092816577619043211552937524681603982312454010953097742843509945977549018614310011083619242203587930881223207771590585883482568039315613389319798848306905959941016816371431210091048107407600322978211864659471439052460267014191798629090949887663381772241883272499374895827689744255745950253425789454325403815409387847274032297878083457101957038483802149442617202395393903772977213664138661300173988867484214946212921670832166905809371360426310403262923749852704786640719372758760530554194827043994022161444234821002110573101427004272541012222926266937425661953223050604862461996409556657347605368959780992335486028940246206797742845124041341356289696325975572631623161173897380465899152707210782505431144635319773471816134231938462399053035727079366593497269534121732569989118102467760530516813272567191824332263817989897642445374767001112174491023084391924300120862633510434561614266406418710333837469544814389837026668332517009297568924484834208424241495761086150518827223165871954675301877614868198965108507153633368207272888403403235312513209702388078106445057401266818420368510478660413059683898969637313169461670181583798574573789663859798902350336484481391233145537481784526809200949431125999405781900982189611585479955153794476751045751440938348818799164263904079544777384732599319709385182350425356774119529215567017780843828729097086523731624598442031938272839316645778031714255827633365616534543662493362621374108595252069000621155993885223156018445333124138642726179504798943964104508613663906984848109435206319026099751228991917846428103842777983526932681019637567216019077151222952956918598399416917055715431356164763294616800479361466765105941537333042316883914537074877705957857633563442435567901028912954204746600372173309561430285906763400798971648915703736419765552832286998777363652037967835544000976881876626741902308943459943322343786160446614564383253150649537018720686319464829233579827067388116815830787671862720386932695135170396603881393429135622363234513792814252491049110286842822101579904296254895328510481243755952886887523598394749967203559219019286220404152626290259195637322634895451068108135424579343076387818177547320991046928672967027770733597669260234089525600803189793395024311530609269938422676969993586182648589901416586619734075274704702778444999936110013943831029066988929434284631658132548958846749142714029290093529110112789531913607363236040537899040540725060071031319537670286199657453040394331245602342283446800524155815257685647565084105675997230161336561398485290699854784566626390317947636543520995537893550865277202853882186008449386800117665880295471371722065073695966761692802227182479097191546068585648016563524559478501980356277157296623564399736323479640577117907743565936031786912038311910596974276243057431362340481339717035125294176554003791458197833014283621920758141998212685064974441072205850478829752528769645818207697493484399777547327915673897958519908056431138412512020183193075346105991407070010981864719361311143090225930412964071090407050385143178378889638277190089617903096166900928593553182888809462670357678103026923734248619554843690342745823688289760678065446109243612872748528074003718289859468567311636662781764126582853330913918463525548052485743723968419279729901890620956323760162471402490327887778628258450341752033305982284222639189420887013697692635035148313025685103389580629160090591300939773453368027920373000303261428630110983764599115268017682868431247426926593406125193765038948955191994791350404409262106310261652528370291982289378798374740438313409978362951339071660037900435790422785134261107833749453391656576931722980284633235551276867434233740073064685052320959930388731095827753527998313330108575487684774092200050695133214833447634969029665559792207283299863896646127269059309557021982055869321982742967067171706299254877879910961305255321978158580857972504557240228387017742074068717074873858480996432256646839688682914499906958295514315814631140635152171806667702079832273311494609312048682303589535302186756788866773735246948488779479297311169731624472996329733954995901904488285926583207132082534400096189804334361662128977302584903259099589046532206766464549345037870271804416751427286748532996512847636883053711685949891102426363572284639796954772257469139366917676451854930776946288201146504780783543216432293316232011819370588977806906445244970595490358482496842324904723662561573074867639505999605864980335961578388748116966126935315063795738912030936394271168602447965691870352574269423159878228601978913774757210066108844754712706732516726776620067468076653467167187844577526420688289676081197877683893741915037646777890016643706911159545979543948751498271099892933864279074685176709564211439923016543410368846615430140370112757838815740110890660512901079922058994421324190176578064607782017483314359081512362330903691177234230993356326187790019066235448265902821253312676417582123107540843825550170474437975000857393719282010295851958437631908731536281682691906842495962630851707195430285317497697703961827633060460699858103955029815088239178663105570458087332574505556006701963747121720297532192214899820152735270890419652672829128581544772147751847714874048111971572464180737432900620158651808089763023642522355956754585763153954690819263981320191910693593603579459704696321116815418191752949778523025930908307494683091029481906270333231423717174468755809747592136395556546140471077237388295530823288564682807387641138932701286565312010159899727704974392607367874610507700929162761770869240705004587710696740998593296142689075770221915759714457239820860690919789720853216539115382518830754811943919499155302922981955069422886623076621663235044241462954275972875513337834400779533505229022598882146407779635382615447824471568689386959457002158616933954738509872085177388465457819990362865116982488596599610945699445222877903973615753451992491707583612430780980014494191472532925472768908925882862803967524320426528032030851906527594878369771158770576004205661995563299489006405548905868974406796606586865433049521442824497217733177059054712493044749911421043386976684144061991805571830999411417328777178889134030476431643797627141200620727024493352318368533043218860111547946831571919674234700876732635769827174673738150087033011822065975437779524587280535147166041497132677005391482648667746489717352439431988581505515333062748527694157641580192762939426709682907725534246472788108898216899271616217758599786077851379423172133826515148517499746719924586437657418154856697459386178909016335751584671551311018879808775950573772135804620274633902977868730716242111722427295344921047787889818771808881739653505290779148505448232624457973136400756139098852678747437319877159091691363696474991911710014883751697463806404972973344900053002721648743781566491994088660755273293485615747389753575522723725759167685382198734364260661891207604726755139847780138584395286057450196027625906032928961596658862957829095599641578522260754783948998389022708145506935291411027475493502298831919701518165213522599664565093862508162546408398029802900069704149771233841713378018409176759220791150388582938011942483995526333296636562350372863009420048061519462458958611930469609168007485523308003206756758099078452632512199533567454124150506718725092448773124920910702908423409650711246222843443122898962032445126227726683296942956675796914712508200747553375631657418714822873100494318619790649794532411706737385996653252970918008236285976179330161636775984637136720031319385842737743814998076727624129551328415153158885425374212716475293396908897378861350086575292332151795205558193541877967413572555485141267324998831701588397757314069885160295274035864302944799471216782479389335259785542961918541672230527989977360180996518150612056984887178322149456371113072554178045891631773371333153935969308806866623835492227155205299968640412905878373815600999878386513527216208544010930773911148414918819277352600129516373158551939760567893191772328449235491772710851292882425854837443194895045265558461705753388129649478171210485867552078256730584680726917849814254454359945068759928715149895342234986428847014458388493417911464991310045307814294788041768342444904159539750913369831135897891596422275588539892695667353738880106483012393508195211857166120768636713168719203635218587595910779167320489819456816882167280441174984453637552014124381308416806280931684211425113609272036959688373197648858066358118457878241003549362965046818440498071633075037857480581411025340297687607575153146285154703328117471112851862362161930119669754757108791162772733286162639626122326417159145531030453259633282074250628118953033516386627659121420441431678138697635587038950027846861379083023551794096526376099573212321767890425346945573121912309610052018287373318141126726248627824637205867355350323523654537603852525489243421005820152963931290523309980799718725012792087444063737808555479406410434686840860588082696458877875428500606774113932926506321533890130570641168444521456863251136465697355111484303584944536701247904752042668664829988217675901719589942412864010044100437469991149391487236433588911306655135817634780375484888287567196777045379764324650832788463203762431438505230999206512754783131754208143612764255842273319956314484631041424759236733556010578425007691776608982929313784596884939627501502715581627632017791449692402835275613435222537069366043253903402843278194315594299130815692104497717874242202569908132932408468943193886405469666881585539792222883749198407634381918776495301309126827240927739190487330915000727935073181872507460671942387107571210595059367288967723429314686850607365270286029486998467103123604791193325714187528308497895904622357732745072796812075386060598276250317889323021655274695681272380514479784307860684588571353886578227629787924440112519851318061291791907575467074081364501830605886753102981764311880987000970167312048499314198435487540826590096145738591181467245339708974841176682468711043384689385113162478051572290156755411711868300341033848614779768163495427106993540728433039404914085497920592035516449642715430918684827436120887424723309066390244908511754557610510989325497302561306733795217332183537721286717314194194249664404743468309260522516979844135827090348834804748176839426927594453254273027065435086594670938211889303455435527839730591963227415987402723568747911497085407191135805240934929105149622034676571047262037993693680168271622023540606156247984960891501497171829835878962358352908829605788291365767822665714041597120816050795165623355547219941453103020165530851935857072213886757540610277446544872293893596334281668245763704712075644925811161266832117409286749701738076652182358600342478568551475880069645103395469351179144249794589053464338686515422549833701980139921986908651539468910503377291527736076918009384355645513974421922105016834377402194320715972020230683954983858696056643102003256545206026759087921968019112927079503585650149036419198861806818903222969325255646122380265889508391589977939322410770313889555632113941474240280514200515712514470698752619485214919791935659002878646839130356720842371485720887420507185050344191522392693896947699171817579387714561488521933519951037340982855338961125792449522861600034555071943217603403330698892928221103515587190832435201047817683840558247177791354234972040562759044680175941299257642424658685896688032705526151754519806662774210650361120736233456019780407697924630242793916582216638151979517789578144215339329500770678888869791489193576709048272710025159510875374706989260179794498474080116322792506689425847884661509981545039526668106000706390175644851082677771831801232739601615828323543558292560869555798847116029765109854448741609600185302086398896396291920275455495392005784655557893228255152916950766246371077805687933121035206317993435743029524510633953513365535641694670433217500077324893883578027301734623659441638174494590657948379613016829989023506621268571011301540996939801199588322663265171327539020139246382656523813522277406929241255757335867107596351369879567500261471674764787242038851824818929244138047173931903165425484888485742917666977717087252644644005293051657394502229713945805125160743602226797582762348642686590543151523922293608075886214111877692918832318884977456771876003413867703270711677871086294688782854592580828099422421350494760388916061608498689864780585377450215245141760216980095829578954017179397732219439629042194122719623207671104415461344092494029347285787578887276782096854672162676007281658076940034878532680726762717837950530160613982793932897738306776744556039456637343414871573557538048227985920664790155327419909672019296070803308426511228827767110147318345017966648514502739501193523261968011928015636980538830651489025310435332823649403766847528503934315845208103345931737305435623523939424098500426316463916377785802380157040748104892460015150120797347209068656124973099951445416672649821049975608979679398658643324988060987157122221413272849448608176743584254953857894816029342068293746345641642862446231160779149910006775281329988796647813085375965128978757262584713917110830774740169039611957521110284337848687131550643814364767807685211009607775803335969838687329546393416290558476581901567428865860075161397983119644361324034653942987401863860968924969434883135895978805673417224046619217148852378205837652656744886988815245915939116845497715192507296112421291081639686057838654265766313584170761923409479994839985178228459648626981900895074824450874780743624643148033953032852031703699748614550946078438200585229734045719647816293071202729593710330364107025199859547834823468628638844276170178655957274661273742491322315790997713021566222231836477838042824434483052969088686102207664874855066015697965466035825900348110876643169766392973370267750044469476991902840101193472893709150407020096438937519860292942133052700903063310363810275976810221757192459000634948033653237303978229887811892321725018028928336016607963095454215638407502135601153666882997190800535046790198512900120816027634537447331720656390027070090024920329832339300289801729762327347436598519783115190508399927552563306441227210127555700167986403819394006761791927723675497362880226850821335570635128438072610972256502425145100514267750267010102645970209530862896725449688675474631865411559120795822067015476299515203926127064895643802232112737556897599050488568284187978862144055458036600259184583412587885692234831996707790533669390373032733528427756051831515154021009609755771874143284464982682624486399726907382704026932374318159030636467305078601652657541676900789673277094661650548586326764101915572294385520541098071935296774062223544169787095115033026704260799288652963933653850416516332979229721932462222439599132109747953792296469071071955632662731212256815034187836041879384599146552880018335160672531434197129864315332025849737918268651963329047033392180278380508020861008716479354266617637341732790457743335206081349074368155081536389528792195010045589432818801916474950595558387128304988005489026355915271096633734377752996749314203985511149786181558417175257154578913547091232205237075812195603947407578906338889125818782645210944498496013925267935172807817073894154476147738940395548301488316186342997729361680573346516550065963836304835449818336709308701624316332204165347931306994358226631827750676924901668018011199519083829853400469361133361034512618828506418277009594618137424537029600916938358303616538796728860822553092872095375054500152151624216196947225246415424352775929655526527197683720634184332788789317328334896468725327845832213349566539668978066561339585985404912957040536546983227830319054016276412108932184325878163671478161660311186424710416935814358175340636104290118028728737186886721796804017041074546038188462902963245508855151696513991142296566985817409038079717029153827655076692162681825032393408850484668104386993670967558933257356793574867625426935953457095167942170848807776813689580267478952980364231147636469186436609915201986515286257692001362995011813055394483053459690171153443587860747253364774946927368095820442630585240638671971525791138469209789320421932763932878302983596417290523945462347763848701481604399405155097394515327228355433698904369479292713402248766509581874412360478004738002108040160139507938746951589058298428332915952707399496509398823483793285131250605733307893977517722288603193263612496229026950376738562859250117776207301520654511777664323029452351375757710769708029098087719066809265647568460941105576417716503138010011402613941661223602754817843268223795153440609087247695804799144325192564444328533798157094133901640448188654365154750783151067328981425988953165595250504582063042197068994996339231733461621206716988906373568733576778511650105754482111033390422854963399094302890302805209077908721949821441899027266205334442494714158288069405346727906181647689765688949662673341181302337682026837969719274142843343690543976240330754233762091442390732476546141496278821107870829327025845409282384796917004049330729922299432088886490295306129029056098999178037218580882830109547259337760247569067604504647686197154698674093880629143809430500419639265401419838095629260766921646360914466887822072212771224197814511630148362705896904702527743496047830108322585931642619736057256640436060979725720310298299847826517913072418302801315678912602916286635270122078882142453439846630595689215799220548474382974980282178503018694386156207149730634346565580888393810138593902363222078246642324973621814317120251707669183871493291826078265026358772083370050779355159551491958807321643338699060400726060106867156603624900279150436491215462885288528671398941736984362716584743433584956026920479400375610673042175143371137537524659594888965211203165022657029094644272442078029327979442678914677058338120740608305156960534725117399573614363200103633872594418715804564717323147238966581207301189648964515290997591795263437536912404326139468441553649904741200162089127106961077292837748719504561035117757394168252556950986288742884596244643846303543984939416315315911808609962666249324131857586538880561893701286158498992909794695863042894946932473095312234993364367506199385259881635432875295999458153449205012383917341225310311836430716866967178008049142980223358811765488901831298720010844924094220349004147607219382116266430103748593175301586787465968342126271520729672402775024960257868321641788986287308526941247552584744655232837517873466644799907319191000833061979564074369091150820339844872064625370767796567586619349771472594964188594950138403790751030010907633641283611702839773435340663410883847695551629154455358559972269977290822042252113168747378880720372987623571070781208521964154461813947445623786612877195786458430034408215950238610360434383664882517337778659864422986114108138150080761618198209384166331359014053803570918322345831099364714546659672129464876264195326752801752710903741524904074810060886328916522299569456493897085919087300679749847546394502582115103797834514563106969821219606066670484035591939224583890894681732295034925762956034479116436115026361853877556423778790081969585467294099612058292673402274370996987963118021492693129627822671722351186925407155098343408636627293691532607168249470458220574489445624809482960540634179325293712307904635056015271114738866179780327095327334069576864453681072761476227953835641889052909346919573116133698039243242876900270960083270116740069447864268457807479504534120939675972680698637898854279399628870895692316891010730974895331084331065201428947673036092418939131268195319674087204991722446261989503568162899055956324968350760402722428290728682874627440895428501855261847454746380079764024328584674729388728545854028846674824639816267377210620765159540343074942760516809933890350402528786132560489132511673744640334849892402576660750119981102932450296600949767174790986036081000797034206516125693162786514530657902834489247223219476990971279115455650695196101379379628404882203277096752450531540459133745769506774521119893412233477752031009342454646479240697329272832190351309482988802772827798668179383388593889330729079902264197155710318226879408886602144215054093688774913955786525182790890478152384339904901003242599230455144864307131592296146655565959192561144045604741093298140641056147942886865856458082175009813791918084294035589232668462418671129142549651359649333376808695075333777897822662710169752777608116377829998086096699483782070328746958375206240338730739328525087043367826451263547445087800762244531828517594542509038843572187736843315633546725389332933587604993548433408144873642742423571213873895805783630901323724416581860738115393487428506768385250690620448322090573241244024365189744275716563046645968947775720325771646590158710210775049949532484173882438059783426348227279702623991284817184624282863009448467632892854895481856522381723570268844594188685580806329797792484311623028982940220649182061881351789272287157990230327173663718867888218954436050465818914755515437222725664681013269760578142994736107641740719137026705087064525763663418297988190424619077091707162346246450387449753454363890994629025569362070064098923598550327265029537626903019695520987389844716359867497739420294604973774162927844237935233741425372285434715857748563551517885560541723934459534924270981385555355920558510269159801118274836791149318927834389290351066483483240572318300306811309138614834966137452000787506048331367947445456890781812708472537051974981515660496360530181038200166278150029566084955652146218172183063285633270783552147631234335151392472776774441238326879697994774302527945555376569404159865928754197248219009878898585987503074556121606410485145777741552499467241874341955986433475002565132472698578888471229173717737632972143220251793529220951596805285889123008677668303165973785279831063018253422841645322233197980822954292988807619496976780154972887258992233794904726121022032883872374732148147649280647320952191751001369782657218202549011944083022718479154382460627473461879242449090082623475619205027579346215576046962009557606698294162930166663532504916312225809644369695546445807723286684006963819261089353587555175235255991737149507338542232732180855654843552638979978640945415538934321395396162324850046745786598501273999414923880380805958971959572923354220630259607482791292611708112835744833356222395752237266283429483881726072210780429054113820030112703438569825677608386691870644474593837795297632468818409540566580774536613780561323516164737225805807488313186739502191148927679617651939287139118933927248133666388179355380008058065771939974513610716418352409112883528727664006726487956378426877882722498259251294633622678017349207507535784303831251996281957814476000900919724637388301093882749048118527101761554019417553180752123456947964845271077676705755122738130029557536968521562563438996816319975092477433059186522906982361025979634233515834079000648118023854418965145989334215287126674350487567847980854047287069111457781958189971253802526335531992320554930476415536223437597938042260086648183266798053504436188157372219957012787774960883387128072712329483446233844022978686255204748820777977597427550217225054185929708692910921115051394584126964528663630960510054060909135355272923587645606214456430882689614908193027235411319668020478514947264688914635010322734921443334979743150603895100174719550383688155445322987149003483350816565236471676403531007106235685508643202216747675043536881720959380194082727681304221212369118757853832483646108346639526198585131781398277464500756369903705412730346895274781005409895652527713152360123157693213597415594511852914544766910861513022010638443304141849853602059831714782303423572519555482176599544091568887717890522617598156225116534567864135086337600667658979014881159626620574932771994116611157226798819435327988140361866876183148811992148156005755301094604094669247492523814719895639937581309116900690212149190442592169005006365907082798579561472196846111374712305093594749621359646776799093398613664932981528754598035377192138690243288783967050638798503968202441094158930060879895021640993635588576367622523341302220586377734311222057748057031477664488770074008629173520145236637562652936735775314876734212932877879758072444631878963910840420466742321587135387434016954586808509142499508830615910135331537660243573508740019813751752553847082252569588456694515249644240609150934856676318887163881674752458733554895753864953055330498191970492173986798414686906399686115270359801820915871417505341267720087748419295452606066813487619746040743275435931827505487123767242537656289768203110781521610404251093635880348892589720060915114229040769446532077840177584940324776238694214190447711227720038037231634319972177258750419058068445610374925491558679571527503681069605837597602411099035033822963932444593423879326809685139268749320426912414239064835169464281129276788438272504724466922689718929670936031473543143591345297432027544792645474318495032619793997384236424502835032437388607345632508760220864167866352626609911167492275602156587398592514296047049145158682920169741739063502084149353199111804530996954125431174145600425335918406841067640841104329521620145822191375856024616246110319006628909211756046261557544847042994439812937363912056858154232689193663323540249354050266692680434587483879527937552912941645010444497317917544046796224935872531287106769119757966047463575594326850659365135761501611398064021867658737892558466282272555959250123305671331726750944233050798904701016828096767555641461889974851396717622452202448568390751864365518785705409745678632518371060248672035467099418235185965860206687069675236251872517590558281882690308361797256463967888938271075665709187447566049829665349020308086776302307494521495313750233002887595250933073385883029085666318109065770948636039158457080582114369410791835200594270347991444460774157283155111272040390622001845163691115563379217960906429742488494037545006261426076091763196509423507269674265346854052309379861165936577829719725157511504956903238006322146632915623358792166155278795675742333944709971389641767711381820191745868204972933669105161970381196617201059919923061465982084074494490821945428474233783461545906229937014173942903596047093479354325787074530043837232274907863746234559480479495899793588535656734951386443697442929109392206578053642935758467431026615495870671702459429224553912603480893027571164022722074637483433708764701933905592550410033685233215901463208828390318062327258236019489608051113558745289738299139702315172383134684393622881332824143242343477624762264218811105986381142472103975207455373752145885330346308146399535122374126059082420334411628730047593591935031399461625307949825438448424540129347063117423363971352838638104964376068063064106174197734232053704173256987470222700710991899570527067577144759093888099299510605635729895254382989280639683370033986185501720228823482641572071966839268130691803559368139618619454544135449957769488729454167992703028020190368518061278144419779637445120278994675007185142035657177818226118556107445421240891876032423599382527033008987889568348015181046592434999340104295070192944502886558610730123725253290432529068276564395017830648953985830985220071649784652110283514606755336057254014135027097518973914281137663714037962765886538744919605006248006872989463261494145664211425695153530853604829152783865007684189850469914992424354540935308557447807100589919460689585858371997743291099797712673721174685533148993092331386915884478378999571914494123377166035568250482391856854237756684483044585994309339757051803434870228813289749431649454403830482190431667714122591182546090451260865876253903596641743750025996447885603133287238057257143204124509102258388580469476202570355363064964494889716099987289051477462552213805893972412544881661138058048440224982121633616068316237156927376514506908203720718159533219562227565868467540768640849830733642932377159414688049950276777402580761851258007438552499191660123043024233908098790113061795946302458091839159607277505149761997254578445290412716549496350731053051072339694981891660441836198921453021369697939415235316087340461374699152049562929667751070530261639255069606394587695945878871755513405192989115484578697050215927694080029123318346877919038251468963002190552859584434270861020969727005810796105662119428690924546509332063646509610654017785068504806168173115958363644915532289305852854595782384002263876039031254612470509053840989463584874722861193130982978727124859716250767873030334345068878538692076248464313435384962962300887056651120375535980167780576334969680611665401168773890874353159062086890869551250038149693269227065523401408261474585224708339869199281284376083481341639370962293411985123983748125667286326746823769774438238513618825178174888906851724094983409911893825406373999637993824336058335525905936013479577982299162143952312587879820145155721646008052912502334656826932125903031922686229506256554162651143105097300811086926216481393970386250787366451351377137776499580559699025504606917939764026799489207890869010238031348152681802009213493200782900353812902820820273917118574281468060756634952301625893872975643186755426714246003045602882661671022316331769908282061511508149688453274408722831934685449542177462020552641345282316171006417643369741661085037585666933985619754829451322711431300700292455517321455367558676541173835941529103355452780536218678975866067524558489744964748742419396566930903518071873537528402466661865160009486154141260223418571632283796641091739547983435660137718293552741912538377479139745724867758779409341190081915037735701116607137833359518416111222093626252229701469512877338028676428935676323054163312625996685715683196266524966510906181579815568082899528137574029457221200116550731978261804363666562873813363232635021133001744180357646191641564781743690760897620418934341717363226876824555937789305068784250102383618758412075350108049092231037036135583296365388086205967647054590409720780808157441547979253176949950512750336801421590210553157960838999559433273875902629239805098540582403277631957303865778299583529076053671342592842754410243044019779815786757429599403410608474407884241685110125857040935992458107161531516491678416676162298700025435222699220585181285557607629156604224135096803348309907258069257580893400375656569570582439231456374929382539266577516846775067552687894092511520898248692363003322977475817329725700068382534206393454991676809222777239418535418575422631625898895688216454659779965071883434245590682197126158112567344712296822187470538342702148935762742961555276621640899637576510437667042510697559152237139528642417224651380131657457499511633244100913995679409330079692249472133375551807636265545981248647485756187763801718080610248727788653914382502141638208175477555768197791764514320243434858530594173455602172787729021405605035610130412599337993517493630633271373753331255483092961673270667997081047149131879061848344328459361122302861713409289671947435089122860089201095157738778370821788309000636666172365782393292641474410340642070772351225978881707817784734027916360188757781048111539203957105045329460496623838028413731852460305981430730169309689853541325352099554964672657540205009809724196336388438753889433052716652134312412108673997425224191375763740363087256176645166868011500105613795631898191103367190092738107237587117943401765488595567536846013722604642137411330218118710752144325687948674694066830833197345004460608360443925030126781645921266852597887287618142242760434917083716598343663762476638919800502587483647415017248052474444666460481119834111518830843543006966079463424967587557839671415210334446182345832618921904433529791573190778514759479062366675008915031194198145695657065262319769206393605681961102079968501942894153065202105069421729704803181280484702832668074952829491632819796561823596836231168863945872807116930615347278815713350695143263899686042962265894380531957696848526956439102595645356224210360604230805857185457651685531605722085567781845678322503037915883444231612612818803557802861582727282478142425948193560229636322955443218628533494537980634268720520208915976822606349090266983388673190750767704423620736511096697649338348616631237811921583027776128438021477718954737582518915217690326639915448444822415270363638501374359196192196082641263112997859148124727601477839016556093692746916590621954958969945964422397212419618219546655772584015745329953344273370953536702027495448138472699759490978876210074617147178876662718470787151931419504643983216766245552182885760179361301218211284017461279722312822487266349776085881434615926738729111677951618786809133287984815348268457215205711409263132583909538642803254471130223257868181660019843634706303770391101691158293277584533421512144119318773539260456723153946474591416116695545648902040376724689202517472477399427914861878495499197445628031204244811040270398322787803226799708456233343861001279112594394894902007616183256441239472621686851112642464522360151906249226485741223069300164345272595602937039082239029889891233222315646671509164930746899876126671017057923797940735736200072698971060088039284147798904949323330076203727260731481861731306479788830648443417096459198884177995577532914660838343828330641727865543643077174697170830669245915209617266642861153075616647374504822970467571597526115666446986926154872264774167868791607058022061250372083293059635296650443771869869848138640204050594639488474467960178156443691362607498841068637108521979166112441900427709344653352883829541487871742292237037364088039532439689319234820229221426337895448173006227488909015647739057377986825546819095471781768260926901610002651689502107618517240146246365722300005275107942257861314206806104950116287823234143008947549120717291333239481349706707180571816291860486507603907803370141424421598339826003078210894957762861937433773351023265350373039428013897628275583989748474563136884056143046105509090921276107842474930038015772876315399984590125137030078364328436750856641475830699141237996644451654220518126991711145829526895757001118226226613736036976346474034777307326669452143490870936166990974482352833214244290106057739596091176145389978055612091209499030777695106460998732997841903090073487817174976463785539523204797374039703776066291999612334586089840902125578205133345152734654593114180870879051186883160687122056441219922621310295414080135901396827131265248100200472092378732546895619753614231561944823136889861262916923336251243197194746678606004197401811809202479698899277718236716307396490360596911277495645119113439299468328115329136713357133086386111830026666728732650672675747268864303801342988685261906792714992308258647788643455693084752311650596470309400427637624360389144556028924633045231381136499125616306992118499386057009278242928497732379349410743748735688649241316898488091884573547150853393562731636129344616117592238862318945524394703149672559778711933022682238705394055254897906107234523548823748054426257560318172162890733641764793440421974597226686653868373056534471484242626937887201711911597193754161800912857793519004056888316145919338950706994071723348638246814540033947472967727590805021907247964773645040147829059814113489045891391196451198422884788740515100116725251633583302248402502426430424554651901038438958292112866350298884843358998400668021082363891982430198558990459981518195453069531661946328527421511687861192232077266587702092715797934940215954958447333326191210285084387558178095841370305553352031121174154771487706888062513543199917610467471549468806865796786150564075149492079971306881806181246063480020776368679800641340058002052516852473344715258100151584895638627410829435184779740156293751585308484369775921216751957425818873942738084173485236240846207030864952083936707165071742703353944525020781134994914135973718012535037165684212652928365583559248121101964092511526290388425909134887550169756473065285056375686606172077181399087473916067957120265106341511055674345963775518486531252555701354512151236504420585184018610074930007105014274150405934619031271268084493728700027573954730471414086836284477924731027311563156105332779833745975360391006880110862719796406432640279753775644761732256915664541202293428965381276173570516478500449474831191617834290514460208091384203394470608123258345116382573953697369472863768613144419671858148847509906375330947256203920313167223056305543384633738281127934384426335281579368869504121514608815914687258327929461102197182206838244785221311080708169008347318793736062092570532130999543010233369696839756549738653391179250116209681306367585413452228477334059160806835484493487261583068780498529090175332828265215406249201573539446546859547618573700130588525323057150459204004153003394361312103555295235389572437814103482352444931037590548035467275602831364456929668970524809432604231452219367306711819144048152910029664956005474371496644221619719610835213271723701438337723034001607834733372049023370045717082398930599316339836395733222472622013846119167883297642365813348264090188508043989766173336783056282622599272897509877463376428766612777006909981525358622510709118973228567006270673580220183519886524825152770825735193432781726226562791652928516511947987460461241900888339605727188484242189828273623989207274921862645806701350487023280375411208973225413677452566214734924111398704800255021626067300166138520766324920063643417899167089166283979448836287384547030345822462419570968460565455318487941127683886289329035583134213621487537117754039841805215746933587735038582393575343929463666531656044751732070216261542597915172366944813837793166129722877715248022125911292874606492769366744078747798964732779847174147441822276811777453753402585285126462402991923694627063482529650299424729714673174221224636066412908585169661143969812321785987876995063133806613535525440856828288729346120681207767167224457762758242326743687344484433830790942234663334983449943015131350730197583015799024961348860194441236724641058439472142338467020063573638221799913601860210377786053823607677572083969832352874702111153523008730514693276259809639816786062170403124711884362853942402979661687637788533461314775172953453231961309962334201005595165614458362059777833803172083981284111547913422034911309128627880457438151100034231393105780421764027434958858605359165076009855094026858582710403325060576053424278177033655369432278006819499681826812048763320938536847288673985647078489366610724882801731701097533442424241651369088552225577230721790597892237831940851871414208467736456731013158073044243289215577295745506502739028387956116137282762005245561443638406811491287405367713165396990539616160737472386814222787030906698311342767550338975143419518175897824600227156760658677965632808022539105158438314815957973992821931495950012580780157829116725840462260937303740525971441027703905359546567285793235551599494803155819045194601595965351201867128001885148186897155661961177133704159573012166418850540971378951000757807137068130447298791564141433262486685877044560476865018148527527847425260031225589144413411706494113328769287327970701930651558000317586760552373845513551584654610053886200254097048648980304334897195681348609712645899247374886678198478966164681060367135330439286750982743196325451910663005362801847494963077829742429844880507911588656320722933736637279147306831689925514897666274181331317314847928343122025245090191493546419592647792224702233264177929636228738285632665086179491889237367323214547092475128411562900914304029231287066714652665205993231262506823763143475467262392811161479640930219785468450084634226746576106037455377910231855387961692881031259608141062481788749884493234423675088617185388728422511155532871639804341330391137697587321276940445571754234429191944645948493502577994232265300153612118209026898646899574729760841226334574098234039596477623242225606949011984379634199670097740067967207316634958480485137905988479977985623807396680439317540887665958845602698331968016192367936913683993057182915202997207034321610618674287072462406230926595958654665364058544965437527807697990286242594637489983303031224959313816017817313227079877088474616040222743724727087221823223238394052651408413967852405912122914602169967237683088488754341072741709833394336142738888548784781354266405919624823058998771116124170468187323617151280661929879029760766805943936577457026495381157850257628272448456690845755672982119075212554036345346455995965691521151081765263744463540618046818622289194206996359224617751198174252910299779454307429966927042307263320134287787919531603214498863631666829395655841956337839686966347837057360051458183076975923490887555356780282261513688868779819909919198998043196804052417025699602392478071431965206561421584426260246333720809958691214754732783739595453248985171410353613876970120523601465857068666348811001906390545350484342168246566309692848890769633737971380229917266343475516748725404516288827598411352887436215346006616559638733985369532430978227256708849320503319669401725079820179838782568630295676138845062580357955061858170703085250864343001541041979435470860508485179993306859916769570457867121008397142347320175019463436481726257182649529272487909986718094060388168762152376566094095249096660951412556967644049483258481179528221197483304548617700774042583524442470116613982964908293072186606855476106327595686068155202766487250873623959018864071015224037040697638891373045691610444203287786894496146450356668478880877580765629351968224363221180020228911494058140437473526633896931960445928764090320817004257511446419566565446425342647069635060220853498880630231757963606136575977125232127920539781716687613060091707563473524129386188137559695347210429644102892462508800622228031642258986187023018347667077782000385569552850395275444792758477356719419485916237819236929638873359562791157205875269007307541509095326538304419561082799366227582407814284481951743872838161180478992206683249502528872398387003886339391825865525982781272435329551077297980085828533085136250382715659327735714794595047926923160642827700984326008120931055440889419910445836128615549466176080832470241905910433638626065883518293025127567293813675112306795514457895813475131156599654710366118237076409300165797361803600133553711376447354724493975327988801850581750297868431821397050763165227553399059333043709035440344331251651299146366749182882981061262425422645614732283494091034400879771103646146302564594286176016602748889596601213859451280123175358612846336552352021665469433156662551356640645511228469951906192949813403927966106285280953554769638040056912192817758011878578351964325540634102813600769749000054455535053154534293535378892003401077657103041063079177367086513630583141722897919828132646574133971351638399138372726022306028171401048247363697315853698002502452637819823026085234309382054323276252543810761144750474575552709708235056583039550800891382022601399109467106344440398192640186099985677594397680017062433532711487930007050770440420446322690750767959462418754263679278178482545668593724862397779243118314841226912397709197725948562243162667733831785507500600740438282059181497491174758269141635965418852870123302338853488058691061321866996216343660862151745440820864024841368483273636231300993659481914447859723830278349963903537375402758294356535492536457133600127581500067831690222727361290736538764281670680854373166776887330902878646710485707516749454679074493912589422592396648984876264331403026683474979769015481482614126589668552377937062823088050974317715563023410978241857256344377351269604468357540382911434095030688525749787987812022464652697710322415204125177283208711789310275366144488652178246743025611664418881284247523254090816426815549729176187362308095034521281768407988442221990384724000577429231983614206971444680619191489605755206620370327499918054297112389921456172564016672790410289297534644158148633409014777361291229462560480269271295970251724130056009251595442874885242655452446122715223314466383385572857110355806589834389791100398334583994127861621792004924260082097891921738810922357612332077559863924387721598878904304875449484523399963179396560077672279422775402903968609391842256096459088003933542052144722969832042798815798687496057295001455583140067089722492494389325476674277402827745144072006037627072392603412372636182166336300060821188276758479394559577532263526653198863078397753765309675976878274576305911618601701651421827162106801676798839363027465481309502882701360710725340539331331691178639713877305980774383846036105223184109835036909615240408583406328667337648191173260047565331804892817669703016440176802096506773847632526106421978561661626420044643431709639291558380438793296681741617660761962885046677300804943203379842505542282761519018952841923628713601193156134414715178232742455475927541270771960244159526009388169316908125296907797515054030697626406318864212736381885905079623234887861900434998383824324339575162701631537259461115951700868060245837485980979613614613540959600046882503074952134442456876559178706578706102316677520799518877768467067461442325743147460942874412897689721072791134607794849347263052849516207921858558486409938981440851749424207163522481501041564029993915414629109106359503569306665105460281820770483166176019094633467895724901381603675406293873791372367612349158895581739998539118545377822692190691858651262728980153621829230233234390140753296705976941409286664308262833587242831296350890138287868911342908687768768509472429290779447082758849328272262308620883789799174955588209949564778276358023178391288926541604613326725685593375801183030408619788492531919912375935308072767906321525868795639754990661636688669510638244601823816757054962148684743615396429905082338547679230672597353822095346531685517344249725286929637322091746818173505185219031482577424514946260364981357930081892924732005432518000563642816999745055332129217647969704636363308384436632116320331597570989807001637302347392095987072786770195186821556763530424978786370825164456530654914963480741670998287847894969023730131820503251415547804123655575793257967811613196274240104029306343020685914147504795554749702326168064313270122361269546346535921447742501653742129449704397037550716275963389468926763949523570485016939647687739572226507613435544758863225833404883874975309973824500257723217339242096523290224429901180774792922976309366994796497557449715963939843651305971389841771234473385419551169855981863313764682767201134994263486590227914679814686877353827916166008812578786206008871274629808392915388104214389006678659995662330353739791443615835526861482802496342799479303537408903795296592777752570430367185114324209286986462584489062895890716982482001893029251940911175109182989033741512339920652911531461112108893368848403560809030195790021697295955498112421464243715416994252733949281526473742787323211184100905981696996807447436938126823011515581886693517584479654822898497299375504371806975619883942695662356422475686994287726271097889786452468956988331424165853783091863776923890079462224044327154933637791939437505657973446001598327388432707263233679154129215651290290293181927697726898192770231590144424173187861695906635436040991060845087721881324790918587437130151075900549354672772331606675180612315702325776410569874372356762423422233540918514328035707314734436158458929954341995821362478544243532177627923418425383179264082729465537617033484898934957445073366994877744942980454647734728888553078052096009087596759398987164901052890992898593594874037394745453040323336819675678658519847676857172495707736938225317449728840894093398483479870675195195212806120021072474679541162123129250017482987058085051176153467040915938935259228634280210656742032586660444813946605731897144345678516557925142243940957358832467656077900297246992354672216298612778882252124099496209170278776054552459885493705056386511754046051111580557051778362169018300137871539138618698872450562563165466851183294033566012765354375043099787034227558546527999126698990198462759454627038266391654446558813337260991913960699668734058626159080690265742662198492965024158559455236840327658929505955288932191234479888599507938468720738898569073165496731101109046155174167972247827226983105096816531744816183054235758960869432280304979558476912564294799434585059801542634803149389994029882049394631340509045928034604945039257852603054153648977747507687316578876855878671135777854324598161674146448960141091736060663032926298329095191901644388188363793192698678026601773369589797531473226665560971189597607890394469373270427769474148148960030714843882970695972388488228039253839482305439796191491736050009649060187920023434945700733795965405157818125835489566032530582056781972849398133698403077881281953301340347962350316700707728715827512630961730944105240655825555421874621312221937349220378570037401843730631564588960745021637277471067900796237109167802036626062527612494352994503599063841947692992706005110042409015150802525499926051966281292221345134942722318531512228562548005926840788843328141481506965500332062886875892969586057888184934895955788733526928476600405675759695297795653104784238735944903088602268533811439128104162790827304758722497258945211645774341038280157831873110521551326007984974455896933622129238497395315670312581417525302053377918950379248401574414128284994153309641350246291414671391242080746062564652939077556841062505651063125118309515740080439823856688430619516941738505331715461976474854221131617682167895705199050989191414482753242532216031502902074298273510694620221772974546599879378904170928069083869914062506602129203703006213912310797521009655699232491817941024902987068826979100064303474606993970059288049896177414216278629878378917087855448614216384066184702431425121382764301561065440628571658423315425504781254258290790840704539198174470402075686832490785000546264050838824891043707100054998966811384689521407490673210200741473619507340380588334202925458096295355428367969250538905157149630763713684405351415815371853120398757439291583381218459133721851418814880967265500226019331458320924608634405863235013375126283394349656470932836297433041842455822986339286456456776333086998903977745403662328248567440454011341051639867981207709511323853560346375543813252595892226696791367504803543834031385110940080277480343279617679296245082068991636398392055991614023085004551768096904399970594821752484524146828577359612987925396545756092930627524888826934503790026348635411394079383914701913332005095887006737355188283777283361840623210183323933839876711325676220822696362661597993423154522804330573520997155253672820222431399025679987824231621378596343110715388124539365630026976858829427299955537873498068693325896839003294675461876088116469336374669986559234006354676702203750545751579903768024199156434946292784967333304934252294889697756027177125165596638039247171252743126706945794778542148543036792816018619253623614641951190998021514751573818320449156153570466277843840328241508635692188616323897752924736475072717955640821723466118663833907854198465014375384121832278134764448765448936050254152212487501701168316965493876809889942143000809670127634074852058752562819492302647389451307117563403185931238289404102949329368931685500678019399857193067784605968488463054326167699837276421600735901025394319602162385031508331598174468213024991368038546427878265651712980028336828855878663420531148664917845925503571283538631406491095514919024911118902818051899665115108871801840498469284708789202314926589815703798447740825429127988726292997126094936172565200609880112782837946615452523377068528777676551931695870230446271840694931916650873373424948166227627989821356213218350529763307454805155506204347334256687677138155543401189897449830756220670076176871317731787995963979367086485019150343204511417826715931219831366473442963331625990805470479036893096599832394449549827341206840833144436429970784744293069736448077279175723350914902481121245163936354922460517496545260226210082714416933106936783757564454819376384252446100625212142811100340292858032182637020789793170919392598532715234171794210560236424149230895866608698015064707958881990609166420401145293576736042312003351401708837960269003796169623665751059232469845782286976789098127036561456501636474503879924283998131245018643206478166473952593690300468235094128454197303075133894429516934524118811441472245099578335330849237867580626844486982949795864246765157618954767381962623956003003709194010966270614593582647139662973095568323814810061861679404278696023339233042710100090730377290186405996119643657200936344567772995121269844354247577185504867128611995315183992876596058609062769212748010272089328494963113814988077018386401515379314329560025658262110734907795816702013416062675167649227264565765456222749007789562032592375111588206218334531495864148587622741343814667768752390363220768300034538156790623355123532064333909329495476199716224354671399202988752363167882657250509753412273883489383318955236063718903209303267454331553696230057818230700649428932910789778446609628468010582080184919505210137694743179665685317106558568789475885728684550914310737987258240874757067464693610607076679670719978927369013250277521641844724650095040378785790171626576253568373283805697549735036672601060611135630889260990679736138801174740964042098097724729247712175953982014757799836858371990678222819616515716827214771066850175946904510751952529228026691519941945285138221874045281105566240626435436219543813518688025698779884208374331600078784655435990182062443618172328001611246454738756836316701821256524436074855458580352345809854063414251919976802651140639096696313843707817324987552267224009511121725885230656852021987463414417989025332100640328164663851253524660134801137178057946311480357729173522393757857729013143848020638694854903983953432251574627447949614514833170606830011675144228572676361842563402336153788542405159550302595090992265687667228719650290719907730044311271029580033261212052703309346510831931943826932081205405123000872589066158396080032623128656599614405291949483594689976520157421922640382490531873253591731663819379436660898984656638884937204212406474333134646988088981176984670506541936876790035098745273419173384167196274168094979462029572667296412282847195208901676424380340822896612891731965118303676268396497631967749906813029972022044675828419590573137895842042141801085171801538892540950675990661593834797641305595484164185058416268132503126398122940442458445475690217425885864733582496136594460340585982719878953532918870505443754431745168274916614065614943063119852401155159159760609184833171159836859762312529724422332159429420719881407563268858283783622838003901713367920657467939984588816621386565845702798392210950473352215191824426517463762774554446284330052151479851977740420906170490917399936272713075257370270304033519509725664062445129840406365912022638239362038768618665588447236459025883262913387664135116506667809816463391060905401642895512506390318571681811100203182959701964242187209614487767419237148287446272565501113843614410025722957716092826745469374576647442909025525341142482279088034449432881537623220782433490164277496735064909616036457071043294338436476681669548990747026461591259989505371129674932773818814071610339497965087592024432454490514065210679302683031811912602030479832566000720122341314865998979588442549531249803775407661267990924392278329154900063708183570567876640288616889528126412805735097900533611940854411994187808026666124150318434556347710519517740792603866849268541879579887560292070733089009111877503602299661988171688477941017919479058217957510910488800005870639674414018257369428376377249145492941293705038481896128044460470236299981201388532036461366580449952032018801624580824701753328808854666850732410527192447291571227883551860191165430398447679379958209111104801130905024372528993764640108962936954306919299549044644483616643134959849838614866772236248633603650302070857677952658639065864607637566732484474159436299584256792145158187488700115325819267240792482648284659316428420306633891990448112425405564762719284826144431894903273929746581925842603711814169214544411424366364061644575796566654429686699683324290927425603544592231128036865398124856272439907639857043493589194492758716165072517968848682880736519812496957209639654755557916628268718193459572065945832352778322006106443391930007785998057943793654765096999436944162871377614757339016974742587905879520351592233829757894613605228282446774564200981180325887731312247947205834242992566905874229195203899770063530699019742357529893826464683367216710446611315880182820194186059538922838056162331483954568503136352130042454321435292534795761863629861122041522923010859883178873047106293331284476894531666864659811242881580886888756952510728212636334746331588509669131515847238394970528426986299451723502846098712672506612050803959232161158770349244528372743513723839820688266777779994835476769183498227421818086002051544739137359917219302819853076957530831933737989036612790350555218943220365687691397192020594700738637101243407569827848625945695309893441902847606640284223468047245376987252652290122117689365412871458285602928530465586178386823058774005683895990091012569123630107966941889078767884296147247242112166810639462891683185301947155525601406974421714398258527777000885238841482124014247275072132589318871560335562314934739855796936492248643440189550561123933933631969481295953189397703351626989754243008926638214082018523042107619459696755834786197098479442443976410627592161542571923459720025660139256833658060995271127591354391493570892420584516383542747254463763816332784763760871344635840923225314432980825899798449609670811097345291610049620701728599580508352658835578588276794845181211022889718168720526599808316505738936091655825173861229300665881579707654519696062744085783788065818869445048894199402573558801152878070915746354743460415555100981711397949764415578818298193686515537811643652832884731449809424076820184028370906404563717443240651289864257719376669849333730579234241772281878654213705802484933856923496196682458827371531508213452999891459555574991290808739038196740337235667581699545577970871235253902131881675288839043151426104859690170950861810569229655438260811834482510726011956079663679271108036807976063892064688845498544329730514549664268550951644115004519508220510830025630413314108309715497413543588096222833876132957902429115934841461591257010798750070738871418199049614838513300048007613901650487708492101771004639873393432642229270131000351443279468107028929547981865896659587025352418668459560573797984687001510434774802073725645488231734436270822395268063848639123050846607836849325101929995072340187462966197108008466453854698456582169531829345453784693120735320965790057752130835928674937994779028872543785275262599305518573789792506146679058878861114301583696574647344426876098062800200013849353234278193828212926334213409093441994443026057969389652831090296076695145784073250618292313149979308790670592897621687992655227945213272980708447414657421949724678640627986970001141157961400098798080169589732988446849696736158669601658771083376082387032113657999660985146418083631838158962845846019729649939280412259970245034149348997944086771666711466239063013253295782868455043633624973038530733115379929280077517761154756361397262090419276922377760733647281056839727547415211074505227311385175974592440352856929297203301113738431631322871011366903280086554342534722450690786025615208103132241104662088334577973493268368321938721232717057479047628208924377639495843564823919382096866769513251959107008641307521912695563386212656195592623064683011385676428346078697319988961409466430561582571725526239757994873622087082602557680777298830667755508385052994438844940525748045534446236809027452672280274395036803142139702186022419997972303538393282318616502973952088560384493314567975436002192799162982020611805145689048746187475635469430566915570443435221750172763919601488840634516751211112112785753054901499475080500279671069512082276543971630194355070314481315178511548395465214775554326515657195787407576063420426350448862001355096700850754190590274624327238621961723373613513780479496484294242437415190985763213518424950414347283147726569337079383455730765296647484420315066914125649265891136638084799851281095406324084539758353322467685763319472753245267973003538029176634739467060226202155239763963874997549893934273396299121125654206331191316817305645412153015465349645312442039593109908559036405713404827545110358808186794249130567503422508495792114568100130811515114123887498408133733950504230984841583048960338153791927611785978527027339666399695129856122270221873029257050380639014744477643850742812302442168426791019738321245603339335879272406153212830313622928394575696303077642485755964795197476537616809678797991606040465728561840898432180450471133334784935783864776679132743456653639924966358998068671673814058642657347756245593395651446863484360799929825787546810411993868423934119910054784252965633928952410279263411015128600750903534125396760268854547555914402150195093702338857190401589696419521738369984583460213277973649315471301146859993193491143530344224739114138566122301087953545837291471145119743929758448502086705778149610810695864402198341032328677638314726907279428788028690892688902360049676108501796374330517969787810294919445325134591213862251923258499759785080546049436283461801615026046455523959147207828891382748549059639169574632978753490710260713555505909855505351105484416732111426080262681576337719572011603637344010462641169728176468032843691437095680450904877445359096547037251655843942937308215229416716566319226573623799350674621908360323141362136623412823604178116671438756436075585630031111264124028620055568251467643190127318181325368914325808640399572356236721607065449691145875480182037579114861044096377072505553688803605390134799841774695155690128139646409764281148805607389525303350097465330346394523278527903154695590415155435459032661268192701869072197432661540651192570851757339829683399218445465935191382726050078658415348971587177667493433922396638525104159577767908579042408767943571381937163339163767601363083579107208853052044075146717447483900901943636126215649397875863250043207781739133392928738891204118082035479486068141056192970441319416373221376436995819116607535933036582713000007394040762811065014630496299014693213729072893225810400405232257564569424596958232516794131434609241188779788779598902990679657678605962020461534909483007153762580516641434587416866125693872899435331470659492058469169386902896288257953289036384985698550821795047278872881197274956228874295207675033678717783727252288165974291710176082903976976180987938874087984865023829917941430228119492861892114081559000549176142288314352713239869212689407438021591101668918065173808318299484890239830621492010223796832869074823839225077244019454430834898970602681923262378861566542442914234669614758738323609767387853618143431542411882458295898778697788658629167094597153073696175581838840310796363422858818079816903465487528061795661648039504273929378370283277707442201744530490096376923762842553835212612347560878939291993274752040501885151769300695628049564283595625508785429526101898890224344156498425085381734904027732530918616873039823307432589610669129559048602470105114493847720384031215960004523101675788651142532561917262218796964075546343514533220747391698679962853168362443217866165712664067939830089229564838080451586655546683162698978744686020831377522872252001203615342908766319816925728100968789357675405708057850938068848970717456760683705945306916797212141591394723309871472344027204948458564840009175313483255498321440621712706915714279199113654102653123782250676419595161645632716015433151407182712356801967405640376206962911244718007581623135165371216179989258232758393877116342015899681428636587874609615450306106585184962984826697564799632030436411921955072811500853041204466287472764314126782526540476093852135993672483029548114860983970336844635366909790235956903396246496244235962152389200182541489895538079411088194086312190321689544060589476533036329840858986608907863308773894082589391709079960783170733221134894065795805540173247674888139945656732509146882683742448484415535949597734134456256769453386232746360803075885590581495960532301356294465880997060419857717676269892913127030875440078525053500796573278238733232204796004010459684676163119799334515854246003315851703543302339813105255114767403943790587083878023338421259043278575481961145085729071838269456369342439662621293592327221528113350994427689097756355546135004508117269854217311949792327019741700020600379005714893835079000755399664643145956278464253115471100424832584940652004581688213682624105454641147347287162619350041765612343391750283553517591140992648500510678541313958096372405860124159666622215040666210386722483303523903284318059316465547050164518733421360109651810227803186112006489083952893853719817900734242454800789477482918510058417791072738450706900983040526262645542423683401066414324765983806584433643953246714670964062365293347515801540766462987009285725575996235088010663361109028152104901126446165690126553807167907515357895900842290917340133489016571947411180784064182652915097147538453046254704359842852328170177821760485487785131501745775436955452594315383163942093205949392900352170171244476928828353496942268265491955075620743545220413364744101274948866989189328348177708755912246263038699851825415414241265899337650435357340953174187901628034830429594490068846567755836955615324184572126901365893949899146541943674154293906037378021364631958617152280331332936150121543232551654992067174478329049829917262304261766796905495095778338015438661465078019240975812456595094024627240450573681931692632154977749782393991844568183694162639086222014837814125814104254936948997845660778401230787110400125888297436155768351299182191541160901354957273363607758428424989821722276112715056271061359114133302273397155743079512990216705668932051901177288409120167840685799028884536119069414731817399616656567730420454236701482147965951283559115344913984459525229440295890274052598854332311573337739905407523725659325247517773357377341229941416208024336083341742790604300103801234367629926236374834069402976214858419799827330589097365541036278354361000300086798284336669988440271205916890939275305518728277464724402167158729639409657253136356409897981959467714173380156226880082353192710414870855919796998260214512536218865035621676398525978034493176406081580274263146444886764890962449541651037304183098023834007771934165074770343123966713020963524595943785843299923676556719875511054995770827279515442010006417344127090298551430438463614220016861121649400340159406737423730201791170384052287903501388465545044539744306848169219347700682651770907145362253387737615723844443857534043228580266288271742758218272789573761558998269052516213883371924062443032945315286459026000826309155413333740353209461110428761236441308234022353495616357319288650791794478493204146789487316071798165355363219887762193288731350375980706048342322336473563558550925819635400769373101053603650890500654679853240145162680672861993384087695817261841682037235502339134852350275915315200006414599586397866372660160561957077486018935768706570211795970556773342001284838091611274224241751271332132752920073313878388677720783020683526185381800435653183091243462179348707102321757582373214233097184305413748649714266622674835926746972088408355560064644212132457295237989532859048671377136981028433665514306712646131653675415626385371272191260320693578346590166503531581082140154469739213222718892730020390331926430315913478846302037926054019404287493977356922132310021255077364930961336083190204926966620506637428885327916020455474014442333063984718967046135881260778356645108495517549679307500313350871631841650349505551231924300593077092249569116208512741891776277489623952639133890554456327255677932914459855959313210830660805221525160781506006031895008705233296826404498947376668772347708250259295295597086223717496363719572545208704556604262645098020184740072056535140398232941311291837416619204656525500726734347957036776244318589754605259212544837047374726026847358947774896023827492410158519924955054990248847910085077840437786409831970865631547601137724388210727815988396441645369683445193837923762993918980436976166949845086193694982277534702260247517183095553446881258116034719765442753988544708827430717470389925778225128392449308767419487307151609302151008012194059732186985093378095481904092956456765609422138179018145523952597937142758644610095078663924968307679791276981620043220845360671432029724461314688496430600357600594090928609691086543008965326204033365072681042613880869347753521010294547225664890537750813684305247889332769359383585313236897078440851033988065215836460965553456873193429635451095359764382234935784381375270837449149268803555870044362422010499273932891740811931668540029756695531495829346718087883727492568113352910434880800938224670498173971022819405228674113438244535941170017697721996545494112389218971992260910212708829232617498634111388434326204269810171065160651469284345311166326572943230163509530217331354030572247091907722898673055170150019680958952863667327161553831772183534920871891894088450890384664776296601222282569838290167722093076748386491013313569437438811159742308905193378758421931182569991528294432867191012083670907967056181466545976730594004549018163283064322122212709545298642561175120576911722189528929994967614287118570299143496612923015615867739498980107338591528137825335152209329070266570027725453421541374955981130188818777314170969618999284868641612755807631027362185039173923787991683579286593367907716877747346170012205584821233227228661524931506705968631699870843690162247771534295159913693314131238879061886693334108470895933775314294061496593020690837807117299171239122706121015131897750974828227165168285286817675955366271697358399206981156412995010012199360304127788233643419860032048194049562279457220710296781783001676936120988161944364736872376114718899449758994807407253097586782684586500872486572645555430237235429104419315117946805924862515819827879278824371702929214364192986928352555676270348309275205748192399648779400914843062353103897575491122530641674863410660502574296396877117943793051344886121128538833550849033582821075156525855076833008771304695933870365700883917029150115932720872062014067064491909605079042393530293288589647347667720331664038486639935032677775879376204203396083336158695260329368842062933004172953297000423352263019947153855380857597536920217270315199623338769494272853170815333754726552679754552295323041725400867187473729019934386813658855385802772729376727863164450717648057615998969579314565552407451419151909356875822633628874358547152641079492513440183045963620610156169066318428133301826556865526204736270623421756637440417503531778265416319738635750972135369607825440738824088009593524121168656469745467926550136810843319450943409504305156588171566832138177306141991931157475863968471175876998044247947716973072935718946709247900697918569928298332277629407961909094085397671257715771884893325386799110002786421014402214802302387173713974801995329183130873443325397571234727413181889689050617088060579319932730707351717039098062483678932788907858258207972255622574487259871863612242657896408773877588264328615908221758595492255466641134930182021248364803584765684911719041367388070331672498552279401650737397971065377938737889905336940313026951367775386756872435680471393732187062106652153483421540988313428035666037452286062781955968723839222303258460499239844505745582499338832177270433215831391458285287484723060745887719230278638200301430809332492753890432032608837487340165603853065357557727877853635798704027250192694849729525591386393945595627166663874919749902436424840584075134271162168261056481699459690768955731578254382654254063271077648412496639732934123589279384983631509282947525553526521673762347975071792730477436018369112878508048837799071648412626650774596965919897233222457567624425838746693389625101544237513778922977158720371856442834042615860728363092430396861022228261552753336549415158981580155931252539865598402733417904958663725066114051020937906133905989699956208400168496114723409540565485977841555491238317250481116919869191549570121621416646858000453669778094344948226958460736525281827961653546269730940465840395555536221989882898980661527698921694677858649188817890297122160603834069034812689392123997087125069874763880772912062557585884033066674042683837819011890291522391917755852449836427780802423428779508281142470702626349963420421096868807200523474590703983220062139817399997705334384980593155359749002461911615657127666202853533205032268260680054461682782466028623610299075710862770463311925155081018081994777402302995182365542303063645324881244706298004950184110617082674524048484892178335727722830821575116812204002386341084888775502443380832716692375667728813435781322567982972622944628864861415496153997394077912902445588670273054735535607437863868119182924541583459456509785224391861873856963143204007645760302114576818878730197950602968888462760583960109830644263733902527343975236636655594791460802006244378059406871107810710912085084740848852764529960891710874572214794375955279585495140794615829298356997709239011873410541250719766115517024562263731625624383547850958318505847535940903845019346645774275144935759585024451536731631992360820667306504177007962409567624902476706541799237475287354909663280351319900056760232309146795752432707804033045636016497529299177249466457895999493500424104642076282868164119305199067953129385057678130431260381728108182103838757593019431909959141475342366185423212707268517787001782408225877552712318451715018369338974232162035319263945326482186037199311503077676464867187229504173169857987223034479159151736324939618303287141712566627626169811287353574780828870243029649765077958013722020197288494075461589775318711518598447074975571324427160594673878481326122860028462387247605045507272461591733697414396740360689317784054500691371287034415879883587947893298999685372504122588071839965657506592981904323521374475043635181250544723394747938499272022281793886435326010232666743855101388365148879211695256782800745550145429840690921033148605335904234563369385159902251209959811790375205387196697136171732696478170754537066119541627363590209387043164041977508195443515500363270213625701425754927802042382528771360556822881482990138737792045040943736894069651166323928058914366530320943700796771665100739653712346406013277852885384379418274640217605567165420489337105443908713621814966000581023641223488338355777443926505298752851481120578608082051966797869713509611496992704705180834295441999111661899884450276563560932741318574537716832113471065103391219063575661192844068774336401401005579326287137600143399096895783768100093469954064866359203508167030254864159061431836960766846694224748750573869015407357163228987017821879270832399118166788291629167415903435222554597072394565197814536848485183409063509024884891110314031456368648431794429837863800803816971412279609234151272181345418572737333518987219045739266663065706017056807449556524168875767084534463760293041802581135579924384532005074369370025500079442329070736691639782284622986138608046525264226085904065756968141932820606772534466379547898177935104087176635521417565995366732483014700870247432349430132955188830778564698326085507910897704762062037795500342075273847222160674168354877773911788544533367798246578949225969686674019231077779643304239908925620466193942869655217789219858329453890592760930411952978181606049095535197904159202631089777925457890353490774125240484164592203313353425726902057116243449635827429837843931323477747224135216016663687620303676819669158059892693887775505816433655635263975852371446084500201809084612224725586013822016579739816349856720183413986542767855192625786448133055723796757543825711863367601593469432425207827918339940435135282738526799262163814465343293026609282205771211913416578938870309091541149550397574063317967535545041567041128338201793785752471984590996096075194791367862259567781406520518282887468630427986433557198502785533068806709036462036449099146405413697705217202312253936276356476453189131922600438812273498029875995948171259535681386133684174836076091176628838972661370099971036715798505446668798388522295171481193183594571610485951748376447184294018417825584425705232281799487550474680351739525799560319714845272415038218054745808056543475360041503199565306789469229528105033142043963759859075306233313125960971225218085859029944402699286171554679892001403944115551298101238974997270254304081968777386742568610337404911416099974700221874404660820146205342563510734201014003960384087812493940738605289514234451570138844825270106015106543085277702114280125973051228147416600180963018227519802584292816619857842472441204603857278107236674482435932622215986933797417150697288239104055235804633115514175128880638261066245383426800202070614785703981102096038983474684765107295725293799173938607259777177940970368775560423213725679604634404504057552128476065969223531203929504893088081347388084530242770304388281064792287075526476340830904161501435306911350722277067148693951325889862447745341281768433694929140372709152105801801176231269898235934833810706091503942056557777942255572029151234472354742841677033024832343970656284880693492248762425539748147979116135227896985398071285104477622281641194754682241153399876454423075414559775846006134103291259004756300273739002488385719378187292298463395701756365507259795013877003760037157007010060533824129860318343155385377326646837002001189901104257724277348689729290379869469658667818428159071572770765994948742489561733324000835399173689172043270745915661159603049054591720480860696335457011864872038219108294142632411774774243817410800092079141815957697450487657812382035830568651837720304736885090691187223712387163514837655422624953031665059924466737547084927430139379526944371690147302301709116472433484885050988751148254370639670979635066685382625829467089651577499325311707611275368107157371010415277864632616900252823782777670208012248552723148909033272750045752144735848928444311744971078246424213510939678228099829019873164770888470861170840378115674816639615966454026890350282351200069840213886361358857290248728065104328418728708306768289651255076145403061572649720272229673854870336846347593595119054436868034092975598965356143753665564392265241580399173195913882374453237468380133909072665305346062321827102367926632566423478033812518359861921195509493129634496565076440455100836184471914851819434396872474768277158559180424370295983784357039736720598064021705381879079577877274145088057354758206431331851961780433299269181305376578509136531400170974152216413501568936740027524251063369008141116539599426679669210947685639113881933571354136940087991309074767040719888890073585930918551182378645132007591322930480107211309646898602849251717722776181701663323775188936375661779664432618639830332922499953298218748673881973307408562923293632114296011364043436914499480223254336722118695115653036460072864540132883688682932147508213442727116540847218974039733376528851205566429592639590919752638708803702376549733737957376154691903061894172927982859776234745765859445011292165243109887779552923090535766599317916706601000061153580347003000425767784961250844664094933681357367028268058859816771183191413684176764356543462804553168913877983728742879636765544459281633427216328455322988955440913336387833128668711391791751154966658234115957873975464319587935200279581769782775647438783070476429912396391265721572241487859501554118218003482315807684909228281523070550003644362096074930992121074710603675003462262168712906477057681495298645122440958862731067810276291163094414083459013880573820597001606466965428121779292543079348823524606494914878345468145911431100469718746858431323776127371203666690842857536317573584196789334090605304616889957808279716119077377822590282115413232259101651450660510363735102969595829801719627414187364131603898725677405724121133901689014779353233219266230967348765605325461052449221053560438965316918967338205215738070020654627316734092160557573089383895601303403187514067844497057941064958703642888232650053751862223244551462105836092447801748544000815825619348952610703968986799534708617929319827623715484266401686476517794864379628349368911035110309298070197602875498534129315496422946774437029912660038834101588923864221337850872591847797806379635038307927817698275644640386412416268965430359285590826981139838803454857516434398890338399593526613542935972421637287815976144828737554348262099282016194118214704504807992424945164183377204316412600171358189461955031205105719129290976277222504472279368332072728455541061373440510583219899797984944015212749540778425589777962075097239255128774408227100726242357990632697514048449904848960946073796024130910817954445730161099459937801418319264819551309110591420050387520761305571980117353398016976617910489736129869337385732936761786049807283356934336524142361393745747224745811644432136265946996758806595424008499687413913949719881320307377027890354971685095353993934031899498925486117103390982527515138954398167106321355011909939981886891579935278432102304364688018744815749550214308281829732371259568392253755750509253408244043177932158623650518418466347680982474869107035851513543602926377788116987213477488025937238716004251128248792102055960449438362288155517683867746861251659124300251540032005554635535569247313380496852576241081017224255790875770150508486517561655692194168233467099770902086770931647413369455122377958520480531889349846965550241362217861868282496151341603328660534104157325562368567894041978540851390207017554422814612068524292655130840210825894369807219451974097368760767663060144647118656119881103409645997501070211718975121570008492608066466561864295542206140480649909870131079541261542855346661110775271671795990997742821682965553483125306839615670076200096973957733147030618957998796868583461011490001823331565219883179844453540606366722826088381198740166105124483941962767592837515531245551705067263950420743293001369359185822743403487716119359988832774868934057538448321172432032439138544170466336516357513375982875001509414219763185850328519003637086780131365062521391025117036917162582361993202092518781087134385483860931047246505474228265439429642647479533815382534426352253706902003155273452369224424530812590456220385233455308031818139859826630609099141446181301546396374780695750162160311357399942357455468266699610190216614438007268533198217357196822998364852690604506502043961595191809106669996394630189020672036768062127406581824305888002042689741625932460329905330869346609809418069842593566599081844131484826607919764355063130518576273049719489893856647627432405254374083692064569687482655531498037288087940982082808390557282617487401945673256313582632466934806589693989510412038243976010745349822252384559916359688795169106511416927624920933886480736690228231520459186467886806654598742152923177710209456713406465411531761218935101325606266758928460604038587868480052087020160791429418889364851357494806415020092122565595656832415481269489864546714809627389462856621463348526644620158980753917131560558150940969904174829521001171562925276363559434810364696792312861554018788868798829013914671227724520681700300454252962509565019779137524009425175591947745976672262611710309835370488225227026713729648229000017631316531527192543479506220547911098192013417815487528614713810342143609849025602794745097011788708824327367725565228862272878001366501847627518275270737278112121512818632970172709256624068658894585164039842248816700714670784556168775834870400407438943353385793035552386001217807854272095471666984093868083848068835502077388978695833785797346333483979260333401386852472289115189956070828608196092698675681594267485369967820089776548415496891599198400022283598235222976833068533400128579960724595107498216029189992153507849546004045291607534391774549295903304361710009605308785262967104698598666645316112698329425161221273783673992440144101566682591358873338492101349856715500641863718398505104736006296498976257836917373432446645310880151449851675123449822241564866216309726090422088062278645293012434659833380056343730969563699962392652754541688030675894449460534877167584187481387142049267013799350747832731475526225441988678642107348209822599094170150869261165237895867663947091098520817815074384354183038409484125668830262406711966612357452957433396477943500062257222741804405576762396284149842773808116502196520250253002613751555485897355956176147393171729736086619043282677711548402925321052575959572540381587903373039273029806251244957432996425911448172661788430636975807485425566865136271421329762187855320956347995906493129022604750831720572875406662364804974055773148345102548535933454864623353694689579867456787648472000742857998905784824312178240294219102587603546705173974426791831003544348491448169577568678066298321281134915583806953178100606060010415229681913758500845491723069093170229181654617639624304711033323615795102190857237763664243616729981448407131959823478784136257999495144841805806289230454064428574048099437612818170589935502986552380708363716614869023164001994008006605202120692985777166463538030944677482327578412575641116322611262376681954768416081679881484819353341805353760156689441362114068422286676523882008425977349363179557096983959941898304440292953346284801823489048915447800270562978699293646568997606742522957027700009991915492762620189110043557815786852582051017366656637876464181665811426489270413060576442063571050462342191182698566995808642755945525698891957105579907665324799491602931736044931042205177438684555083661936588109363673438124193079083450886499331743667344018813393060760855256540589637531501532544433930102538449969218970731996159962728718929629620646174824268012819156193330045514755760146843718024002138110945793178385487708502112930706671922720169788687551058464039835721319464761654708926997864592082105775816633573848125009531636778815952890953236183674445247342007162540741006446204486913329160241843306603916183731046893061854734019465640888350843225114437975464955624798332004479842247361660070856010137603170148306287395578937963599588491278639772820191929701922892850332461987243830474931942085692356902357980599986457201088189871214314329369303311671908314581082808765760014196812287436931025538208952713829391172958700506502730566692025825069736652487417561486925786531240851742706626285243987747192267430446523353529863289334005763104949430475521762393794205657195059513742944699284057877412787384167649885213119022304496275982368074342344242540928596544131397481279801699659308650082256659661361142853648835153128504899549803139178119763553153354677138648815877788698990739959686454028813703700734076523542840025433596312104577619566866194911652562159378025018721883539239809361916477547236890751989839466841848804247923791351924520100629638018224021895603842874303713231107562091486769797612057763125880345195272534228968733412016073800039308969246902101982918505982084147984109523998475183721482493713829163194105040147776980394004112068751921384562882727692680008716235364872158923233564508007587679875809835098243429244954046013439188469213163235557322445439798195500701947506143026188539111097558738786854751989418637643867432769257341672638190755045962763099188254012582734485107657393129543804837326632254199070010409684951170991269057002068469848481734137573812261586004692118508976191209861777879588955810948159373593357744649929060162274383227656659391233546357679393694478150809598859648687886890868395171051844817211688644966653147320675124913161251325224889689339052806283662179210415777238123501867752047829567764703363179581517074024052988519239508577820959905898189220593486053021002198113721494823137417124837290143418923274432606133389979462566264418452491571816145127496585402675532524845434600789375750461402202955961971531381274402385835230100164005071299042608482535979461657263341725262044731101265021530416770280532127090243499237971020188284827264357880768651110763726469636065360901943631846998248991075516990264249976881125910259571074734789218542119313661917950644260878318499902799517609210661745294766824555565660168906807106080900112705568617624355644326947473716681542100987808301217011088608183435764097691111125077016144054235752139764205274579717754009963203998325809894641334325433956319113253797714034886605254020816569340006480115203870195916943034749351935970349059415643101203792475474346347795649191504412186431741794443251516246764495824466203604398105541190303067198990898964623881165222655595389070967003815991636226297972364447015773341215053210589356797096594575212204242760797891766875071631489139057452855823343985994725374380118284933426196041339121282696314174072685310485864700544150655149950770654233986510366806579327778952335371622410685588800994073649585857507625986881341681153765587198413394211282070929443706676316677597217798999770876095632300949818071910105306288657662756390379640844659245108502822616676018635363407482250334695442295777634790833323769607165994634991886856979999146080733534666257047478774472776201221338237859099568633024090786450914808659540216903060701438279537850445688975300300929074500819567646663123118455317740996639914587261058052075831509152193730977092952692920800305291746440170219540441053787389634100902875902898445851225539122586490553078211471764246692005036788652463404291169165949010811803053120782970748282917232273610216817914873735935552077290547380541560447576149903463921618623739188770013270200483685977871031862303331942414945113739194783999165696646123348877538436168967078248938907705438724723837736335301527308702568158679830259308300752233307518350279178825470655229130318175320751111986264804283380701505875781727959469287176501683505531343213526746078931913385305450102992325248181728505759061356120978890800620361638881533608574760820679214628299216153754047357980592714824149937121749339854216008659579761105904664255278148039632948429716982134251581378669785132452729901934756377132747353855498857655014799809325897255150534467958679265844383042445564666235201966530901987383975601894833094771236544946168258551835726359972160456229153106700150440875401621655576112830749261702844630007028776551386769764888806090710147914345242137047603915897415377989112019744637438442228548641224744762055603772420880675612472605710241480076115981684511421977623247225025334049139714199455016257621993389994623258240066695883043728882275141354284525509895586654248922968590735980376052767969906106203368490965477305434432987971684717019529600568685011137104404363953026836464358595783633706361837328807177766450378642048279260089401364134947692266470510825870125645738295138816874037893217773107400918776183600255431486968914177016102776823100219522840484503846464693607553270364246209027881895525487370880507418132750836745515840805128709211917891691439481650215154255487009162057775198602377645218504608021447758986472985914638519641078853185004670400133193424895085491719701843576139991168141982284776833122186045167825836646920652076250853403194208817086537516708051911279358985902741089328476601380178180205885135896790347464656844186198246391171664407659287605457947094280061144712447357230446877258539770891739611075653797543481357103829436761267797257871905930262186409085257931494860870716066626118117676992991834294173180252018300398911174587984355151933353762361828049249483518946864806789824595727294918676577380561689370263167938193761105349684065219002822187602840514587818777926580185596839735636880929785846195773349452870593806124126986264471284513020391817450422566457393955518841981721018733928115953660944610825265910067743138369539054268427333581269724715412080878162756996918063108011776690017063665117849271709426173843579000016763352575415847086627618497041987152506106274025932375137285485386328307827347921353306430889573531012291537666216064112756006653789311375943436118334707048640585390095586171738203341204026727405923989367093555813362412840295039680013897788408664774910201338967199387034187848366995293335801500919232712550563012834973527569998852998014813196972713057376998418277691579765177555800088953480720081349409649543108186268332825387372584579525286288543307457173617987383055156124502280618566995971334196101495315744630152896565177217270563785831094389543231350980791392615359094553032172389496964950852956390036002411550976784389941779577253031042568312610168926080030712519856211527372051828855501894826432123952686248240062326690825182281743445190113563247639905268068597946944214414446457288363499623704164681812851206113240414167142441374778666281209356713942642280600234400922558882608506194741277889143725985907607838876685715565280524266755585003254937061861306210984902259243505308506450267709199860269245928741164794164572398107481645174340512925250062578257181614144901318452580354397295898359890633676686979650127920622690898388500959766755389081596316285455780923945311895537827053935495050891405185823206759976091199447093613018922789090921849791794565816292734711903416711852256619373357201702209481145707624064882622379167829725488163972141166187329513214503523624611478413204169959053081183888690574157845942249413056638956744511255231795784888930828904545351379119737805125448224066205739444363609057053561396721998598455238868416211758829565436575061366414191265170382514901022555449247743441925300070683009567243023492123129385553831755353342870011040777296558200717984609892192791446281576647517549523468471773463171761368914319272467710434462278011957234225087141322484141585703297447612865616644697725766156553522029812571065576672244039730718670329568961812485235622012118792312104273149734602003573832636016129704629710280093137826724622205839397365850411546324923111295929064666872854118520356362580765769386823179342520709604716920525561069646419476177741938736619764928198815866746608822885913416001502078316353856256294672399244222356915526395877091078494989008659135785276588424605122056598101550247825116612190018242027603851172075514517296710451212669941074689991627659246120971752762872724054844147996492241494283666866444856865566746756926633438529381083978779121630234836238737064993753044924449070754915708155027403163396741451467718011492351120344077447424979259600019250614393844468826060679094664378099542682626903662617772399744095405031895277101699950552363902799152042362610787911305761157564880225114738064726930112569275029373836785743631245740938182852790340906183685587965658910487414869915146239052651133884183367662409143729899754358143351147586962996404663101221758776461848621154830700071141927099235636515452193353191931675131597670129232426419068765698770012038767873397450574584686157494204043028419102856654205189426731559559546781225947097389160874814370478454112555314372761425682265431683509384095776924382666601180294653381914641288873311551511803059295479580326433457164249981647772753232153771236945056444998396248479369567884353583957627621528888889030063929750068497459938750005852183675893458008408922910267141858129837296221769983596889098849021913762642301515126164418516137439195113744462492404333138595181554010259506218612700933732869240366968982866585366098836353815283409083872335198180059351818403768828937055615141175484539102698522824869126787411748045147105523532301753241486748181859991681918799361454147254752324082048779069162014963241932442828121007188173548663688332922393074927452606083746323401778237030853289161475293096889085307004229499330742688761248993006257617077195724485267853962916680160353664058807417580851939491071726132737172991930255834097287087630570685623988176945757989555654965933462095794812317831831996067593228991976156379686078679929848160363024708807807477991468202545071615824147229660395307996067711162586346259306042339978896783078310525453106740295554129830035923353349156429191440252071323545639601910570468155030835391012098901745779398867239098043857959406999790382386683534563486799419636825051918708663994440475289438666368095628156783255806075253388707674381628205524629570129598690550491898713610735530158289649850216122474711651153518247613956637338362010216346788321416787373587539047972484175520773226299416796434528111637012626677820991721647618258574165954509437880206206882961547323034118930366264759105773234392831996186215336373769251498842685549939738669796462796663789114313807672233225610172187310825614473198432576279952097442645966253788517004038812215929934076905319542093269651172657897724265983111874575338317606765343447441260355071078814799223881001628034519061744428840350980069737696802144161660303667900517710294097583885202020068556911425124049900006027101040490383790119612738690820838982911549167499011875386847425156006948892135611322749203700809000198835049701641091569323477252377277140330336892043716073605830470056303631176187348022403129059532365597181150818866597138665226374018907819120753201955066907531027636962054342561835592674608421878866158883558562586251898118610276892252363160187316207830226906327752015238337248564716131812845486362070716519138466653304246627482535943825135066427189093859001479994162374843331778049874027556422235557554447696424643817584952817551287115832260151688174790326207598914886386799081560445242940562497577399856387664395875453324359913229796797227748415704225405885174447020773626534131367552547910312685198123507326909506286055990892761236689039925471470679227057755122535331819710663728213150981552110177488251344896249120948883145853678402763668493279297636882889366257950289427489504707811857915154339127204915955021440946914348115614432183740974508801244569490335099512709178191159953220137068918142890908841864091494611412250481047821292917225774511135367540689761452993549459952310065319967895869185341399696559363710687970384348904052484027745326014353847129119935864269764015779138203664258115378157578152121916993657578597411583181026788299338803011188506454776204474139265642381659303475592287442247885599687572631559537862504616528482992292496205462675679857744753610632780606074958316763772211330109033669678701474020983213674976174919789599712314538001498698239204987437106094468126508720349717217553370443939162287723082676027922038653540083896253520855539391577099128402281134423024346796875282565708385153410493296031416477411324070008628920554232887174351997923401897970196853862249215763886914716510721936269686548976713155401276765795037303944834374128627576086598085559041665082656328321480302980037396478674519199022336367123352069211760364180855607508613927617911470300629329458883991631664075207346192241890426254533324172480216386935390477407677923764052016868799401608077198515389358592308750567165089551027716815133097894502520191974813112299223047479822043356201195731115402429976797338354394985150931616960270202868425277489553872136851160608681289101714148426509290880625544528654389056846229544240520174650561938996628596544273460105016395683789297698811496336334554370599836333295433518221496182182001824704656311742829144341848350790039780370888832569675199451544515355005253040427210739347571799020419022374740235939954689548108579477423537323342940602934887645198107995110526502842999232773091340683130694945674537390199486186971692319933887542272799649839930438594465834641341202442326820782355650936122040896326492604015574164810838533186535219304192648863729406507152563857706120666724262649316233584788654709660393633871031265159649062498162252956384887963434939795900531649558080577728182137217585077412418293497465800198391804464090900512375207550426795003041743450434556744236692651127753724336232310422814755623670609216085808603724050501751749867137957508588785338820563767620744757085937318790731320841735771748287348518347150932352833678915354462501752576681511654618978319325787722929733884811042388384065296963787139873411181610690621605843911518069317888267979264672738864686672083459249024145273826906765071145926827613200982203043293043772341038728942651954466117463066961392213424687099202436343607459509959124999169172936402512512977620450800141919450592075785000401479701644973829209852743041774806662720487875147100506530443042778081063452626205169502079234779843663367983531303629333269645723412193377789517371529156765258977580949261751948843769454094940711065729810113352300275907290192544658661392164811980950194078363832869658489187373891052112027991084439423222789967400634560729624449818642170141923380675694513820498052784332941308675378502609566135854074579063731973311533422022044665440009405410898003820772336588414733005400707097914304299580231364880250805596215682286755688601307157353255098394471293047872233193549518909031761923244397218708401668168774254170895873567168552614628457561110454479562149658386733216712595392356438042592607526851564665987734945922548669838776211894053293318785766955611299620052466660870900079523842935729426306427251791513860653980620635822309600132573239831754062478679526884442949912608568197313644605447449705442812538715152178213107338245974801933787521326680234838365030095742471421709136933541472096269748200933852619573396156043745835669695779230480882180295910019803578365103968635150447071025690393231178701469864580139239798790478698035314388961999293083749447934417149383491847396351112377805477616831253531053323187011739952549461804153808671195951911641557710520019042049393534714649729183536606617865537152595651432821847178514596982099684499571606765269038679552151781450781630549707087423758861627139760686779011642913135638839442333431567633569122370168834762169262527003664206312540305558028024680969791667825717541709297267121259353599052657248760641992392147662629627581967390975373335114308572276506785586294600828080207690413497452954480794058440894333631952419970231302204966628999542358928888782884365586869443089115889090148377943239184548940545185144672307205910416146215775727821281503420359247795494519587628312472360115436229663485576824069654080644444883135133773460006464037111903576573821790981060140789814594199077159660030356928679302935113945884143119363803699108398786784181806496293968336801025861504960440171231302916441021599217029216392675914706813278890358334799205635290234706979053793123136799601586380710601018568951461994707887029105715498233589253067732612727934171893758324519624907347616484001158351360525634423918101611048569052698630459050507368961190673253689314681146101130136283038486750230157043579512944891831961658359199683300332825714158747408318212126919794994882814317201443125390341779772928142959779271239480430945579955488679451474844501130174174635604307593091580325827892450109064655000563287038675903071145341559071833705091178618113376040934075430790075058794155571757975066206330336543962312641163015655238678956616674104184224195207915747095788179606111112214214672322498726842161849339426967342204357829766461035992907347101254613956602697207393343862846901265739562163872434893425600124165523093416830877571061114675776951853292904222300344411173235887154030220989959999015642403663455901776285895432410590653637435837413494090648721102341759133617745619747192581541060523389961091474095767945267989673037817913936208429592413296434783516674067544411803840435366027084835062233134806167727480900329141824511190314228635849661008929266590692300417815788169950400996931490126508563264869714699372958644785169152827819004849531019616318031910376814055296130079591023655400617090194309438916105946316406000901040396997072632442103147369999310963045790291288817316301271647371985519726618944748297234420487038969927004709506922323233334927840900191625845014951886346450617446767099377192798707588422906473689735949061004257547408176856364519813662869572358767202909306374592832108387287828287704161375312046709976694065951197820226739017155769182817320736178806538728915687893808737579944221849073996180589755265205498842702942287053746947640645760617088938943652193410391050976904177989395493033416288432393858523047006596943794428755658057099472499459876016669717634167957727732676601627646149162065025120521039496207721388182376559578100144861446613389268521479253129021976189802668578995627494126351660813008366228799611386398810292186817679969137445502357872933863728498384593131527831495649978900767477255046182328283303869537844145009414691433063445809845563879855036695096733066296002382693603040606881760404697550666687128307258944853766462684633862714673054054356109586404053482987764221156570195067974550996818711070538628733590902144323013428787914654707502097389448675465638906138559549980823838719813635985515865001803625388226471713750205455939895800688743602342464181137773434777586905875609083579909025468399722112417370220857937943997763365844668752288705064439790710520542398421438628243407903700777974753763905423651125242406368924893131923226683781337943802823213051840579125890519946298134919180916819483559800216398775081611647221071404079043860473404340552118540501551570306888516237314935923714470780768488228515507380867003076517893037726499272056853597769396339951264490239553209321992351103419748674433132085485340479197405634502742054654379794408200207349640375278746791082374842857134054495741895905416808035890184076543343065744935802179874202771478208977026055736329374898192517453720146969370819648648889068256479566481267414920627151778217289574516255569985239831219745256108746133955251283522256588859978633894872841214169054583117588459968609019494918114749162872003531444072022635282063169557673127770396519378326880121784207185008517305628954256639326719000819127620253308541064462715038565131747731354004386901628008018397287046571903983227064931057254848518379362972690929185914108009874872986808378315249520513249217130697605825254147930648895910924051001450145404045214463173098974194526506906662878194391780329219367519296773073077747584344504943967230927020952508512942599685619787517562145799825731392019452803853193241601274818846168170919108675306596891044730580280580124697639972735107219077211210259514083998563886819373803521277315032098681255078504770677152429742622356850274803399679381889868052411325475562588806116003657965367013748787958403903402427968322959064405362863994157091192499382631107508054726447094588272132970997844914657216749598646302890549838058079135727341484866128242954011064056277166127279367994940744341049767986180593521858588323138263623540397575665357489320911529475804222628472857215871862497434301162929937835257849872586681112871394812072129330312546613179859363803456658746145255523788747275072149583080384125625968593342884864035258781580034146742197445843161259762270141478666316487440275692664364090990977515444452290119796177966875229736743372555591350993803327448501733819139986456919519930517952383306946067324596619875890144863622764878432022206537219694104210786297921256673071070026007728515098739989022057192042614285741664265325860967422342199390033336045727750653970216374841961394160476916699735814269163686132374648030641907156871668220689798824613876713281905166684450250154695785908630983014527774841856725627515388572063483984835173487568889736484035012289177117409990715775959119014031671476128359292743968330750062401262458341379734356986829720334754141180737328583576553850913507063848779907217450688261766384615066105041561370130381127762054104507967539585488014921371011195814842405092081906547637796928124485388196215690209317375847027399081711403286757177579241520503285434493501552098269836614213398082365133495572700752594384393000371356708375210173902721764915363337976233858637873950906369431235173453846245553183267874010124360199794988045667635142713168249969456073256263592096798947510407562641959158592293500220083919269969413856139763457958274055971959782361689405268973135655436469448335335376898014266058794356312200690641186551697332243827846600633873350174948813567157478761748418163157684522079769504877807159187184390572083973818067325316080886372028721990309717388147640273351350024134794864325129626944195580967965886326518194343287986279733814087600945060026729955513016789081609485089403836871273133568777233550853029667084405800757146786044986958052432018002284431834279416965207733612838461953510286296734999220404035622480346274056687968753677354885407466277456919108115807140705172470542979136534231542623877846085764885121359194872577846600346649536144762259960891849096566923481290955733571457468526223756071074953181953153657152729183911025577840254496835544290101027994288208064707996689419960427516564839490007763794950765148348404290630792849138824192469924192283121736422368810530750709837015837191031222291297480172257260077172252986234177372962247343550874411484030599103398426522369243964394667281787592073946398744878462786423908848591819064013558391530476792261045406614809633445827154153398623758296628317064639329019968580515684137226497728006433553657722322349209126690599755680235013623422980164650239979722863077291394000297846174505068429358354150778748075530431758293195265112797999042188519589837099921755135775876945138575715016312385559613595610966387529978946872633527754627774886663532355182501991304021118327035674216884537752757722835825898291530787861519103122514346231341316139172290013784374327569436371150977267856382466516681317872999820230009493579534162186424964371182403914035740786051847113415948478328112380782184355261800841433032630664595956469949206043053465018086338206552233283020271748517185610931822888784584424519101838744199767655110258229230942180143495687674988064377679611892532452024349918945210288299044097932086631143555576546679745488587735209040744652242047481808356449058575739613572699097682738640812058822433962562912825902882268640445293683043509786534545187999673457099196054074377589359516243157079326038461752654785336408847063330192145058080983104525563041393079010834931539794878163521986436991367479577196501514672500312815759514760022752679019766994787264292756788415135181532016669176345041414775576186504275423250906724754873688054004752713507162583602477541347378936182934416571708051392141046718133045345569715736321042121462701788265352191048995559862557319865796734006505800694069087275945907505954053765889469366136022869340375487255239116991112630740204462808597517655852441153604210437603516364936173099274033994835493366683463217682808108256964353481633724843639322988872378351312338659085813945692373166624224041336781102505288259063450040108917318405378025894255273925580894569735075747453344338979044375327377821560704056592573455396332186652881219676731764484967280175141249892854997534376070903948752091783026046886561041595924027648252138050640804459561782567955927906334224890584502608304410947418127830035243146089319943953272234135446323836628512446210361778660036937274439693809747065408321626071365171957928857508104533989777394826019399745084569245317088408724248737094739316744111123683219722639248797926926776594432445003718570676181338010282255755820899739702832090240208458116497181790868476026835088994345347887913371591568251787196859266564870890706802996236682922421909074358850538591846409672326504793728604603515997888897079993218300193088978732324773005877753110930148291656165735527431885834735178865051629431665240813711268510563135992277570814162870463344517172193867313985836204899373305214251271906684362051327922151877103520323592127611837256412195061964631247339841117539954382434681284213288649796704716916667377794542310289545322155540092865664952484665003734688418618182182420844043277014154637792956448263184591263055715416143412873572795543039767825230310342099460518735334925762575016779986057948561237304068609068676682008060727317974781319697683636449175600609290908307548984993204885293828425388567802975170064751369116889511137087567220334578977445665766178252725873104788907180921189426127887946327377438336431205632485502211702511966288015335943385873600194349809416737002086134855675922985016441924377397481886502031417636898329323984177620875407062466272738085512241998485455330355839164679303532988284178369384684780702559978149972883683757297612903313388445547240702340647199383464186279539099936008564177852204593816498438959517915536401041155835314918677930689955064153423903015560311047800778668023918080757549917621587778626241390861977532102478996905791393010721941105351966058597223697307315050875222827637754672117457883485683436462659799412375354114855677450614576896762122612854793609745585364505199105120120997521451814419415817719013941009132445768352780214394137933280130617325271590391769211153978764644886539240994175131034596029418598846984907051302789498018856576719192947760043438852736605284693320604792612165818008339605387385633728052286991709542716463463255013768851225225265292338095345955187885825475001208578619666499411529206695429690518648835511920642620590831304531902623407582451234816128925291372207657596411567542906533734547468710444635224830841935379725389909245713216544371062152595597910022046597152487821511616059065028195452509122487114179370186341621709929441100901420928118130370663473287508791203361351051126860417326732130317855036838747717465224684263527018808628995441315124972317862180197973453563529242315113720479942436507764471250152661634276771310058696811346452842824382250283385734034563439638035140328020410341307440956599022232724025882222220954806275690437073106096293000247288889587447198229264929418795720336696980944855350364413794254926292467328202621378477853453963748667884466752518795212435552889646544613110481010541585017791937043828476786526907645990466754108836462903096963270392439733472997443244210494624643693657903990026822263041411400454744589852828519665844740383303841015334531276686852819888915469623948371431560376151868543876509975917136294141526292566454256626936001155407681730631584656733344132049578590690674902764571985055630934165976899492136895125183020048354970519593247325037281888726717334725044934607861129662419141736107150735055258715806070465880139673176277400870385073052764558969047988725910177011957038344339105253243129157876505811933187973434977977386587486834601910407701652584346184112802116750132213515063535738240996079765484079410331532103240018371261214838218906842335167977604694536720929421596561655457895714280587619437210781599948428513429470574501794719109634752043079270110836036870048269011000218431371284330368882711075237585786477921369270954832506535762965874556057364266679560043354554897242361396071405147390053646672986647048099747262035406565143756706388861100675877896771693824320463592563217078247953447361807294904187149054408261060114918782598062490948635057031560136507894448432509450464655192336195959329316908882714639595161739635713430415343335602836504839739860550702893930803499626871855187911586999222040371367519153820625750743299165210061978942912017233229256612993053316445528313789096227294817627756262991985739785683853377670659015255647852983761912048327825883391284053168316098051153027329942846453988198307608157853517306758475073398773516069871827445868215628632891178950460361419309484304542507040623716122120903665053984082448518466918216025141607432000991127661467135677064645802188772854827505590859424818036995253867258289681299041904266402755934725205132206602103648354603077341269735090724010373833201694542022706563396843945312801996342982216968674445426840043357104984921356101875955214069050773648792587430966090284314435290577441106977119736264018885371700923670478791800431793647342861968838772389050397005302422538526345024640258285451598127739822843676138455910831486099038610703237385564151664410204643791064731251063459241736189400567226586357144817984160744088199736791159717594863477847469843247090373505743620536777589688279943268909480911661346534200727268645479668101239420495506478515121164634841784726213222259722102507272000857679484057630322012214498017906829788638003311920614456811835866600915308966198285943980493314640658463129370126854305495117794693442123567413752238145052804391217604395106490679027158078539987732948093074378367934719145686600138508289953450481411958412970205189041968970115520506782101294315055123871455704289292891137390535773399629194858314686938149237709286386786976775026987253907588444256728906076958668809347015394910515984684770048028015206769037658664705155531079164900738540153041985773822477402741996864484585132145301941954720797067530502758725594618267639105302542387880160442554115590654598549294591981330062783055831644555535317693886168423372427192866548807890351866093867184150791167908743959043303652440336044031869296916847523955359440546021760169187088383548013960313731335231141494120493144575767861354959863087427889003514845454613087368705357229739878233164980877623301214729577685623090325090425332205899990838596021455246452435070254840812158737664424470569870314481548685591919153738678585693986432872763904953004534664838197264277819348067961199373589817639860403586968085720516338082353300556877832476969833715784156183490601043282751993151417560396181678654280364570728716535129672823281701342725168753087308447736397447614281239281518495974330052512520753853927850369422054569376945829765815068069305931149639505834083958875900648011400252195319056039756247795714029552550127189860993113678723525313370009852513866667916583583802735952865162792238156544905648953220150175436914555206583227821461068519252191499539245870851245557536032044741117713819855481500078247190255369080744774044278603775318833220331449740101161665219311473708365186805897357120416088122126844811107326305466417424409211321839857984010425963207065296625013129814180815453630417735975566458935322510563850387860977427086513840467506950025511033867237177023025671999706787247149971173181754899984231721692441777467734850302831908393627060863189016775043221614130185269311736406653613173915907628464630426502648505476436224218260133027765386279737305565186361704697462484340940304536843224967070257089147049339823063901801349362927941726455459847862940917671342985795561729831896544096473819880187111794912897452399556899641831379869238711673705030837103930239718248183974304476756052601999748795308031288442591382220921289510985675677338990815692825741234141467501222420234365816625062482838588147454553938974234347568239113023209618829894925044085361335057954434182945866547653325605036852914666444300308642434655072356945367293696160495970055170336449135954151713731564517712629563180569532900104347946384249456685923299017867642943691373935644425294723419416168557906657793382191162551862471155902616478462090098827016905665801090851848333608205420327065586105950501176837042379099183692991099849394939560691768372436281823995888982575047144679885153058270835641118236577152941042356561175098156957061586627533145453523408737999417039889235300061133705336357552900297273252821354954813413890049249663608765941276316767502675484330060360302197475820408353128218897226393456837597059095990583336045741264763198530162373470430033877360303195403413472136056880080742687592281054748887835850650171066604270585508924846882360653804741846812802821165825716173137927643441563050265575262357032914337412455767418795589111222626009188819087862593478375381333401140763743048593210930054324976272136249700442205499101437144948821360927809406384208470051350199306348500324552927444644447612699427217916456785945694310354386660738412713221172755077754279181339820718056490194080260848097951341101750250500931418710415056979291271230659478822559137046076601464786456538441814655523908151812067302042944280753311078354920650545267531780900183000941829474119761075942906440887814831934292913220176391760573614863833232700376893419175057332490552757751191108643399072354671731583989332300259884412919456368875357952203151768221568922760413318198753781787806349999901265524144796556493452166901806783107768996360367007855147514845923293512631941457713829012860850595665904468660618162631720443830553198740827760801318445441449777736455196880536431964772811812803070146286283452520599874548842412809407508450506331269346953101623764491786885369724366451267271664371023042244381028868785561242594669022657321367450292225586146449763061385314274190379807924760789060376707246742381319278729373550878694145144307684165074210904673083971446421766733135202020504011045105835198668437186664074035826359595566812872515103811224123114951059175268508442952086187410809285004768846408078491931169947078605289651743490917613819591178933605348569641642783397379064173013858642366303975152596105543855985663903974848957148331042114373518383456469295869465645907276634867068208602783999305286333177125204890156120392037518237252384897817651186078373766872547468402631386769955319615618694700049488363338980863949589548004438125939328674495753901816428081502276889386488383999426286718398734480617985098640908404885310854003893805172451643837443084341173165425637317270705312424049965416551974489189661405209369577727539777095675878485258935120290726346341244131514184729236421121899528731205960618131632837645282689479190771240829781183949208872732998085659936381169572198909619541625191346647633878694133379998397105481567161000974373619708201725556144014592517366573498043020769827588008741237434514232031996587038239925528004890852865870017627293000916355926482058281258306510119181374014657870097101958522463332436657138538647415338570693578728278212518393180573721011948419336490177931662029638293079776592065913163180631505298828205090986433587882191466866417547413247592653369235516390518072046543751711060233677000817160278877375292199192101728538300904093160200090340068423335818716581107113692531497842251847750427655058970247550101855493850496046245833918779308792341472355058509172839393356292322344888180150733800414985084491876051067925761891205339613558361261505468283913966006819663425630588512832356504725961805680060779473491175588826569923058777644193554989552453796400476890926994203751947936153496209160708941914667243952755401778700085844285045912837577691297030530926578107129826001363238830595769475790753068496476344792397905968871574012190293764610908976796182159381720630581908841543358051980375798977775774276928836862801726850572237050459384457655781599671812875492846494360560451380837085923681569130000654905155453131575376364241802617822262245883606725977453920119680256639419066275118713487825303083777005677201877009016590354764987686520899250110209132536714023218834280247060183579487312861377372688418180356078483704830350225134192408010539629840771652414652460139899186930725319285376133119471487554067520221287689965346614270881326218846698222879250121214184431756993261011005217646081265454009043441799575853612691482776453994324514522008437058372093236807339928561967587003098497777823847352785899096865505042730373843103245453768782846328452956183575249965253334060490065596275404546122306886906054913746311674211106130302701839459767303227943803442452441585451018051333579079139394355176967052399875284554287219938718259557188918576407801075079379229111324618883860744810901599892227234051760054259491965878856158465728477356678090791135021871488366069022882264560323281073957250355273684692424531160984071664791336606011716623033189231559121143135467485178138470077494154357774271148479557773678149144387812460460005302286528221095065229713030192743273275696212630433452901946230168409015034289403205866729982160526508482998739994864594757625171762419259379213277646740903960508403867858880900632951651541170472364655992098526549659170425755796685314158853062842067244843844365199560663584662781848251822250824721638274485095343450739522130049008242767557465284523593180787026270262750417751295124287857839619112109321830187758896299767099366304848824321098104774472627002765183428048840481631671078998604367133323631846589467699186832824590961892557280565278346970480691890855568751882720910785165778457808687495608548688297685343857610042176538537928174552910904286973294740395101086728413452534443677555304685797019852907253610783413328887134424387254061382778338255573237764328274406035351144740791454466547731890869318523039989841153239443929834243631021425825039386641454981719276015659790268958831636895058940824482181242733856034185510824820273560104385096149090138420685292843793428385004429371084793724538335273215000735570295821211397205630626511151398716520640065029219552621416700531815323081635683274397790764946467302827195547394511513907711450352143685179682794882811013409578762779328586578673081151645547358240575043980855352026927022932187020445819719928524163358256695326146605398517152552015321879613052336118295204601226249139397604242045227546983409402978341617273946738833748011922069187645934584824395432999098498011193335838785727280859945004168378380871676155257642657352816799647508708458032525326351412006287052004227076484675988404178047048636639365904972477035235479656336781691889684016143448852390910961503751954517290289549909391062861182328533802932068419974526449715463155032141970037826865960533422010466961485275631966577665384625857125085523094195046895835274148790049016907543104249601003197838684249937738504239329931887046232455409929002170528283972472821668768166837608986335067376868392998524583537546174239175622947598162810591765015443509988506548299489653732741164260622386505213533733567725990864569539585877086586834222396651540213484026243185383226192752311702244956623271261185394299632608417238183307133554807677850693944665137825733536731397033604321283256294276070589566668912176152391665592510587751095596917634433126355600604582733200387054044809481950977166594823065315228389528643517290350521393584476875188540412839533605718367875160342897176998100272291118404601258221411563323951372554385566653228134642915181918022071666227271820259784259028296513631064508131786455008643771653246768319999961042294238937757188601794269158007986485513508801487813061434906797720840876717191910906711289339943181893733910203107498104891193907255982082995796534846777859682996387176452180590150158518240337696515497315700111577776385072136002265131576277298863122712857431482706945208259376261286637304026559585232114401715844819113879001248832782409138923103272430366711535203496426854645900962655722565203070228993379374590206753025475510051103056706234128739668123654440891415140639049704386216417008057787590199563912225489312898426498719643476201117935299684202393651036250445997063285178467424349114375917778413625874530902706046755703611193628033675306786103633752819994087047584908277046108362486358984255292326603165455010326440318778417355222189767508715600142401196242562920741570664334592136716152771488815240407328383374010920780730215052054546249690430142018442090441202092711960450736477556761943780763143647624428678743109516517694031677429554412701097772751510403992783220652279493036105295558554622729748747702231900817039710895482400337678711089006527814657125685295591141075710343198419155650107287473919589568270428459579317179333676468992960102825051949873177099244298997620444882515891213225671667333175717913592637847601129708125958247748313246165721253463947320966345240264099322078558991108026520771491894069234601075148326020392497139083525508773949756617729377037882876914820640642511031481421125406836004442773972474703355871918692344701374576994380679684982035334857307173566114687324016325868230696304651881562120612105168251078516354835610028374519712173591621495504235551736537248752515352465504906524389114410144228482197680841669656704022675569838886399763516359733295426143799192070739434398808526574978363627253332408065007026713603446817236371066763719379182491833867080535799367229127340214153539118320161142272355346758291959302344094753910318011503348251128889028176829716183489891207843370604150103019321715221433841941618077432103466004954414175113828557614042545235972201824195641522321054989049361576224545144630879310976262019817801083879108379889661690308841148234724306270587762110044529452357354329864896716087133361288965973036928802332981758470924217165441080278546679340986883930236691603754847144297901861930189515661975968890942741211148286400019537114431610914439255562650162422153179418813764664004553462478802069840413944939392463413396074834883997948855048882093671294746611391835740425055570173504951161205679826832608902263282442901718323261239523943709697036618231674756771175802353204034249689840343789606479862170042473778572967872882047853139952380644134137622122651622417225131619984464619144260923730546072008397420897591973464257251313832119417280258680655827723870478325018199854903166953647627103754335927440237292084297245716976388864112854310255440150792223455444495644528194516444804008748760001211734511939509132256847609300724383062632517759290792121996707553222363848768875754045868622474727730487991212315681993597770203643100114560129757712143510714507152990543176625947087481759919951157284976323349377690950989764368431866858388545071859678316521301999268701732540103314097439104991893142789432561739696782405082483689187918921137916585903348118442699743438358832253430330519568399646603766811417943926291558374701222891208949595297223735870687944549601670260469422409605660048407669009080097019269985912356917169429864706848051637918440398428443285149852197110774128925922250000694939950573997892150766295409116636760554837306680406379275796803085844673967437695450137378207570778122433234442786083339676096880722653726958343636958674772484693210364995877145531814711585723747710258821522589187616139862398289627927057561433901859752231690980151041406322928440325877823702660013017215725619535545178788131209626629965997313987817410303814754002927196802337006565043527051323452915110768797487009010879502408655075353817731364397360209443020704596427751543824404170428995798765146015739497129444659599526377506826158533944811532735648092239592114683031054571851023097444548800984828768520005445018351190175656462713211228255818735784149908924830317628372524955125498373245854068875258639917515626841786575050036772841741065892502604673323188408972675751236078090407899916115186026824156624055838228735286183168368157308506472829609074631071475614060291934284480032105193342111689443663886012307251111192733160138097197509205968495221606197974498773304679134655175410504084581826744873023204253204446471330181504096776730643648910703990496592329477047998921677590525007627842352893255577942033575604965377530455442834138856761694411411908692940120610966148902895205201612349949693750805390094059164117314537952730249509836825127962045176309212858022471722035095865511709400872054024532593313441848672581611503603604203119031575611989337104497241358271640491620946842920538031845381712300277138653144642707470196767091197662982037948147186444799936743796784671323815703052158489961465945093304245926418474243620870577072784255807478782467105983644820220989393646119069320339605429757052781899010459263484857331792716772378259021070172919754278503705833485501417795272187782841967413109803970035468772189467391091544504911530445595568134469276393718054856685402761409257882864722505459066936816218998939430351003987026898544641682641950141627882768025450595117104046204249640952709770218862890151355537699157722732189503725745203558369515358159629407599832920858635833191625019496409425934521395725979090811268271696356586895000183939310112833122727725614534698850566355806540020421973741598211938569067141132137789356698953192703082081850160085897101668737691907324534121667022142261491909077999275165255658991805261762625686924249247300934575528932902699607585678090605450714044768208990644771954392335803150797433596749468212089651893558819016061891785553210852422858135548845095649041572677829685735498619188346022677442216958397125373517318292742026568013689094385935644363340105862654892308884348221135091749021793326491297729517465887585432140979673617752862820620005730427867890248036251990164456083005625527551008295416133233248955978147203456156508357498428424662986825632413575109744529764346751832406143898485353094053130305819579485039719448808529613056686355449152582331944088320925898912841840836074509285169268589339165759645993288671977450317354356470374509900394164269714855481164708965072580706644610433389909264055795737270163589846847887738104856267889324275592490077082122972317555856076363081597859527764778873634696955881024684211162928639314784500428722865139047067723213633260119549312023891247339668906176008383039635683011530987868107986933745877715819485996473771545730920619075430590395686090287387045528961056226949165260516530610304254435282082620608609733086119717231175068482711346751902542761774972882566565620770407448715967090557007314309700061270364273965392521503068530168903537958851758482061510351391633620881730009589356649290564395574000377327966571364697991199454852711459486430612983868945272706222664949778433458908725585766213392709615162632452666949494549777141356477821326594135993300129425526834520507939727734435446313732350288152219903281988990457324891857290945564929050687007797299789743531332576541980299577375538033114114726686252210853829491742357730981368455440237978415663151629295822427695789485012153492717463580987541323023066819388636035714212140929895261073437946461006312843898149291386887404368406550750238835513239257925567041776438315099557620743070409069474157198718506151271156392656731251307114279528200086948679330740649372093947482207506860479027483781511700834700395802716898955469604192540388834234382795745627799497354042915433530542408663036367440627460094758028723135799353720980934894718001621036865488069853526088744183588779001209553083159321425479617031581579591836861940361358038320775933621501895599769062362579815214101692124140225533523267934053840513607368390282017513662147366567132263718947017787457940363445279423451566502575422904348102278084604507261343378700860664237458455635635874533567467282659280623306388212255003538995456724899058068525147549839803389909763110579331325185964153329405120894296507935224904956647137994532185989584871217376471144620717802665503320128094849931050757157536445183152779635736527378474771735422326658355699419239208003182368128460375161092835610237902532696179518744677717999482023601514795074444568423018404048581113510620979261162929043590124495496939515226696447115353681310755526036831609513058623375748313078625777151651800584640673592220951501878970567196405037534612893429915218530679957058091297959794802022404175599091753557334490434772593369979961424184418113037448013494852399804999716594402471435457337873126010404303888636323282855354375435363901032520377383223494827755413435549662161492842695758158724251329978278775512012904493238440836968991326932898214251879400518645997293911458658222138006964657664242527796675962369133717119382328714120127105809492500153176398986782744942831417381955902059232895241890590663080692177370550812743819699341091311917578469158444569567660605089618878102310550354840299199469066432888166023829885234494864055303765995508092949320966681150759720286903506025099034625977559596840047671600200213865738452030978470073702415826310085905477805870553676823306551821192807066702522843331328374079001716586991200017796885579977206980884660533055191343820951174349587605320350857899908821500463849300769982876848130140175952056539548283294431659445935254435749171606287498420031045404976055370668356647044998901202027961604401106270178966528333784770283162465929194328489688550780339405013652609752920198860002014870082470616410247422357107466336418107178882053284118898825273262523755564743738859180778260282582485214827165078952776812504690225503531657079650038781944977615412949016086707763491337694602046972192740056300373587058379183289951930463916158848935062520302012342708072300987649077313339225943989750691126286384338286433455573602894050880112363762654932649089256972044373284729250266955552401412773193517029442353085248057198073925275590139322400708171438439068495057558395953322910793855117772018153280678779210721814616038466001013256108344270127552131680190788742063837220207249991813407732734185257074918678952818374074774975817828302370576521900746441157366858880726264732576820719948763250603279553473955874627756943102517472962158271668556992371942444751717915063012872387873176591932989787132912372672160620379698473450182839128343631488144415865145807265854230410345849403502552165895090184411167098985207730346916355356737594916731806721138594658856981627969945346251881864648446943098282519082124345441665004142211290883384143943695203062965868099955391703584422798096620350983473352087913740892106796414469612687478873267975205409862800800699853392106533556002348695576660890838572939198960296299793274826265879769024737650719890076320920345398308627940083663903647045604286201583781819319793301394343873041583865866181174666897632083856663783828433778453866912176348922029547400237617216699217667183305074943649037868614944770008125899741520202484878165950344698568690879681859458488903249227165198350030982159843962186761319653418884020849793193089837736727706924839237620486292191922330024137477911691768904567468461980473589212581166111981178751218034471015696904170460974569153624630657915513721151948530934007597062916515834253424302279715669941431185172527636356661169396063537717914078890053174306956748720955042388724535493559245998139076622543461313234148657920822571106312581302272988040274502815778358210382497418211647910435070721956770806013268150611166153992966080423402523734543960407960214549960280459315523598320600421240405165129588559904209361104899971984508885951449379196418119179749579976790535626686119689476353445679414661445828521256338791505674304490361668737461869673192093528281723904467849035248175683443812006821129258261397027605844058990309581192247293018300121093373909226601943400015871428208931783488566822551102343943368139985594117028860731519867937442592819241818389326582274339789637218083347745472647711212199625039628217088109165107695507190149697465945111263253402820552051146916256933491414740407440203912057509107592261793502883025224465172213065147416808863102945980520887733865063691410008296355025654196564615760245701321848709070148874484544302226801849289163054016197444024796724651325154778940096856661113025131946529376053969493841307313965830464574673596442832844634032742104643114623962403869726491174023563313782963563745281689164173942563814630108229642396500513954342090281329750707713233127644954725676706929668669559362053748062384215194553295522322114138693271583981461522865972264032903317517200960343349845651210896456567339665261131142735375322107943590430881785584032296850290403656858938006133985896025238973130906492447640292515815540994011199949981454299047600429532900338908021936956048416414335447902698617319775047422047449100980515793508888370185151919715260256627574851535083567611386688174809226511204950632296367899919380405075945424407277450001776559154252002962447657832524099603331336828696116123515821690770883332740753780056053324948634383055057514744158187000354373967368060296847436692549620807027644863747169085330904209679485699346974865498912259140210399281133542470124491271745251173946636121578138595163514702769345495386637108553177628594203474778700235497399236894051456638600308853968102844389224360557756997255761757231440533028390105119673931724442672440881600021640799851178584612086906844888715183497114510381076460556976631891836682641168753247827015071760562637071093572761843657394615584557843942249695909018012946364037396576534673812474314114834862389561562780385662926038081934942329062360322873381571968322648020413763591908724448951889236842161380052975868792770729794572361448258577293981282799447249573663236681205851875958850928188819600989840869425763458397313814294178525815836450212769114238898749002249595056480382334758525395073072302911565938992654031515960721867949577139867436464359899212539960293192717437946613753395217705014001432799107509312076532071760744550709665102294950847212221787531258080402603500367299381542237096288027070337278280608546068455091579135784846213395245903988146484493040143712985795164137708659190730553204902373731026591121162464526247470821487261218469846371010344663717616447600270995119118090673306473146797856920118126425088230405247279152120309272991615119364486490103734069290567981185450345379844939385342449184259092867249738563787896856626881008457656234040292975609739818670176751934883879993437101963754162765947274365764768991466045852501846098103354232397956651066142321507433460090194125987392971508208595053628200950986958979432174416491066018679481604572661594943210671461091884741878360303548929133067271699143616254402987423663504877627597282475031222759118445530308560027197754082021104889861968935326211658971310306387935545770497895582413427717222710143658133579995864436338896866809395656361402547939702859921013985335307454272305002275070896890435037456584819477718155836568865003106289723719131780839874566219493728764195432651016661123800685996686974307899120231393709905574236723272392340010951345988674960292889773223071214026567101207644208779329921200444689371798798667358230967363083132158074917387192776273500851145043369060386515391498603795910052767964853684058026158964380952032506031764002631156324451739924007755023961359562101968158743608006206427564738013917302046092243276623445861632679829513560137262496609807814643078720090185077053865709897295756298211404180823017627820946013729872954135994425312534358345393031519670214479006542666766486716279503769181613413086618701609728636632262650450651957426752604846537598082058989349134749599643614426934065746059005497857214569942685376827224542252168714233073511734037751557545349075808085029206608838620017987846891463158001113189199791523694773624156392834754822963807978391836262229225783709745643507779142975204546317424529270231544331776676707349566321382944579958897884933698715799755471540820381914983184165498000277924325858264619489148056260801101318566296473387713620496686244189599783702494757291568788490096811569494216799281764040545531043918648583470588514424330404318098146852513436327791937256693197138530425835156895594667534601215827600629609728443057501897072890758425039710726738463629744299052127876624962115757609826132987651563527538709209628300182741057916514419373456334249297996548505138812554572942872464133523609367146687807949386899684588477163001684466605409490447972464280339579600324330733301057936448689623446186822934014913674232367460640035394061874551014993251108493112123059453280986988960524210196824727492528243407814085728083018656496464451310790249437456849771704204415716607103211086259350519209649060824321387473176701506904021870995046015175178899832624596442210748030388333339993468239340250531817160982140853212249743201338285967298076387757380201213898267596281687251308379476600833989156230780020045872895623483225919973201897279460892176624635414002936001666729596302232087727665791378927697178462666151284721230682571365770674680417005526447617053291234443599843727170774230693714813864162673985600025839792467315189877921634240131994178374546144762922061782073682041766487769363400778652202027214877068414443525609012312568641026239370088412497716514045679771920724806276445065871328910861108345501654252035402793985324494900840225615288445024033615325455206796716809688302994561426458785865416089689043700480589454756089108270956814268874717570114784751129368337001136656190456387977524603588613002668188021901112143335649598513620536494179427605857026908192065823662720085420545799149943308880679680579677681297624063257594392127525549411021086209462474230567380753744056095012627733759463524483945404621195068344718128568965083913516406446718946253910961467376253284739664757652321256751464105547633132892967198332258050394910414637216215606773140928333428861438139588719556782935922002430943766619096275673382217735407605500098181046140006753309649346461430052819420783642653514562967240890438762319904852347489068202012221767216697396251505572749090208613697217194525659194093387472255409470746586994563892099212308957437016920029622869689274632649229856234168989327793096210538190078014091324473716037372020664915144974595907727099588144046503023573295654861890667639853263882395280718909216367348867513012283868409700320978755652139529032634920701806553627243611943346234374553845432667248064842547084914687450764672724143891898369477534833314396934933260679862343596634095793070147809957230916012644663434259271531021891865814232594729749160111631063312762537954086494354404593808933503573943243413584525008470729930391325702102703420438709671288591489404473091150021863057102276711841168959442442055193969209765772367352962245605829621977000390830121901961680250503875197667662868028240206842449626229110898014567937467763150064540435789978223518950218976552780303522906778415160161939215271243860095488203788111906900890633291173032726943836257764027461889402929401563674564586411803474783881094731689377329513446812367977952844443973519575711053174818930420573639510092199490856617024979083266076264197898817412753845793198548040242651720959855510411393389636043438171720421996992182340551154074221240266532568362069883945799360239077769073259260775155633034649380041313610396987154232251996492287632713823168879888078882075540236775925284376344673499762309560650107486539682379041938805385227561275881719622714246790887031402261563639423628445284191880501483188121070251879136355981285407206342134699740310457915154067611801343537224680921624581427893486866098231444823949111821374910629112828981054234175332888624279450646710983695214500120130981259750952180119907614554904760776554550784141130683909686805988940243993990277191924998361244421925455207698930531968771371665529924042648293256979943310942279524571088186408811685993757960870767679037856570854704290975220281714541549840530369557675864931817356556327405398284153478651100966030774290698703834137468065693273682644313926216633582937101641216255032243384215834010730452670334892356942256105985995392451613769253376605919215288033387689665558569724068864631928417498673080734304959678982038910917348211396613375924703873033388733518105669796587884813406949942766399156716720640176408319959204909740246129676202100326964079781071928460392563722497957444428437029858269722339321506401956398679002652474450916579506529996914243342325989154872155730071504245266687676839639771235941479741638075896768462464843372457472856665351252604815878949493409536689747888085097186279227147247827083140807630051090601942911417012948817054385360988899943176379804628460155000483116213056965602763202702720605192848477066179335612077181162589005925315790228033785607720887916238399192451684732510742192501913268746708895192683034681173324265121771718333032861957508969396406687515267050734819176290076405706007649818055326633549723160118357324486899626862923452978506142146567850152129723751512757717703776904660265248448965187366476906931291870647177337419864266030262810245193720400899863228458400473007509422799032359909864613839090531254180589878810261101232422164932474489736640814245660321318916984394423125682453686903062634172343904211200003398533613816378472495919916720039044886936674604634548045458719176962170796865351352748245713436581896584639116528098686577958024537741693789902063860386159268154195178689935777514227414433894761067883589161974352536944805723138862995683342079241690438098808630074811352083399742358613800679744013870597586117093262202933818750408632170293940666298074431871585061947035809147000907985781136850660215078823078933578489121651197789447803860423527757051369293252068702220221114295846666648324534352132177031886550135203618603524529898993127973659189353372998107265294164408761997070608503012785972065194000027114645777298882618409222334696323043715872250579117568509738293639236802947059555985795336869385260234902487154558025065966481873536653999326078005823167659637791597373275153542847137331144004777008386391592182883825143661471279673291781948089776552725004601748498981377804284381535234955366011323877842372321285748829508703234545357145104085525441621115481072674974307047191874458360908003816521987067379840866038918471274804361688038192153029640363608780298671239491923594896027480528381193553920493467784081728750561271531071504772069193626255893425747981084886517951214885939748708317664340294068411016670856008793699034103645799015828908655869303755423602284962778901330339576039007616837046658723057579944890506028258602303800481404457777084539779318088384953865680911006646575977721986119279293937098529486994556250871618703298368353420693595469642394796983456929336310463326812926938483788480059703203990727444854797248759639462085964335661201181993043533033458597288691602596441568002938645005740996863623007820334015376218578460174508472057734198941118299884010056277632665724211883405094232362422845994554175782545452610331534006526213607328201814221360677359631025481937742118489653568723962886818617745409577189497363506516037833800012426259892209033992904400727811846706578883153365436661091060267035049982150550739932119636907736667137283917725730936911589142155643031592043732184324724681090660715400569539601895505997752020505705127540966858878638928576117687442305663466325723001629327723847644569465047522018214358600741510232887001203898778367742841647922764373112949144135750568650683476893402864956267132749102762467250809216151487584263495171699715125674269468704655441952245635683197791989218041800432741501946858720307129934728544086164409931594230079323325465513652977033277237788651843576244115563934428906029398431501400091798908961176716772629419527516453285757574429014304305973381942147784170870578528787573273130099906048010721243591162836649915530601361197439449305062001618709554904525833699959836344357232098213588317412686783134957052272233310351575584553831595174161118906295748712352548780080695497557272494636067180610396627718114453353816680303568659435992492200150563482785346863481228053193657591338018528628651717532240567385067080001124293451257699470426878411106741963439357228282382521868842263850583620328159401781072814201733511387899323420310419900379852390867670959137601747868203033766938599514354304589731887372185766224461338968703847542351191217006451451694119358632494705474469914580989077734227626623908503144499458019385294745645072940568969767661421917074264192784828781607024332044492405398064799179997298678986722446347196733619211124342238647040195423086742160834172427934164535118777355932919750605797357908192450447986171485869296026433403534251999974291723367741364074121985743508618648408544378350552550082150537917052084247431315830156127498906360186103061146922730310817864085750242018853040612079684668641508619379598611602799332212245759341307488975970093286979079760404672792624794040791592670834662894885665301040116872275049465592303059001270370328928505817855003592001098881893434845540325168619197142155425479346574039677789252971812157713020497598042676242761986920155687287247741387775500400078500961608786233552997739753686761417975133728415838428505679252025069239757682825062860289351497302766375718987071230530387075393093477706396251770283244434284273189050196642582694265768145506715829054560030994114762252102213979478372666794147511403913758101621558501150834621383134966460708791468404519603702752399178546758111752570311567078080445017513183277115506885498833402882395556380762564971757411500190723417313410898787846099456004616115238197069253715368133758399863070085476608082943339215686111708824149736179732220481033085201407116862029557973578625445594328588004837058820203409060248093960430902565586463670728071633983195441511457125259136584595142985869477251956332803842349349257157451463787114239213265161500839815063177994425748518079969508643207871288308060712807346366948797658083351627967952666622284557215887001787872956527705440675784811578240858933063611821915948768951184150810567390660887907491910577129616391671100021248698054263974085029098215459950007897796068686107955367508728873048640720906381097853202642314437464396334637972928040528491339962893302628539257458367350473212794410940069623465247020405493270497243295875706300575240801268357371291735624756354844132496365761268869225933963997371111102178086999010232013769685923742919150778069012358029357261694391955390129026737042667702651962606906967106983849937713789319149059121239486262206910611462550015345778250800754890502345647727174292234972047188432952070495330446785097780513994266973398218913508062826738185647231288235025803444276134666394921256714958547415736143108826527432588805602846448856383776351556947992333565879874433187685356471636215205097263948235630217547268007895913495414490319791905113598846128428427708142659334586201300541377673909934735072627133706091679663764566512683560785530078188886559902579929486583159312890427905155529516972108289569040121640551796041330158776873439745792319868620521910122633287866132225959632225307822345436952634936229207757922173801197428648217315208141092736228699886714546500918315148862700777790100548121395853820550478711949578642796365190947898043800542271853525285343066821647038029269694019601848339268160604489071040037146295584883450623541886460208185934438034797371393786505238178362337682849144605837212087211171021143939301820596289222006943530965914786976577377220625334978740741900080496883531010307094524198488175142498844544560524884996990291823313419800726432991251079442586437131285495766024450443074256299906865740673531572656450416049022263029164577505442712922832167022033797590994311092873218404197612186285258374798262621341743059263839214232549815767947327393030378037988520071579659327024038357625646486200984780956299254392275320809069706553024320926411754200817553819902574710770527623931161283162788161077977900342696853890237358865321082705867464406086254389510385783815847467735223143964024036985984765666304792500578307359928327848912289298041216110851837933093886583253491357247713327625708474290980633833246385743413078132215135750950933946064347802319668116457985159652838615340611351391948696943230908709553752274578387496971651540371998065124763942136285842132096997855858545281747474913842049816309229696754464362314545545142682676591149848263262146624593048648165262672202020145180645592754701545652393330797153752488785148643576160130212735206632163225469036472091526913447719608705869534272118085075520297750304605003934567545950429533548722402286274611688664897421900830525565053550560111805041951915412214356956564477594141410607713921435776254569545769236685511566505474174568991464365695287030404409176531904545908028073155948090222909341717455848033769841139804653727524173444961989344456357260416733465218086913372627065933020302646075795976143669237999413134118484247182408116269320546917818451173906835693772663264910278137564422030177726013332499476945551832006802366107724533043729630198035929850918076345712764487124216202311391359768916124543012387027102988728012018111654523170415313017455232139878778644509345278676285410947625213227302356288614827420848691858223463949189180062832433024440521894023654420223148829224699338218947885779515210728964333477435213419429901422026900016823914010687427916965945116164577016079855904886713039020899961976770029488236841572726777350445451722401446970514230028039838724913272005118599727859268798079827668724417767622831059111800630598587222378400142899833419417386999993941228557512647349793294805964927654503313410804773899679193142856792661227314943759124924156156824128608782996900571674592365153495850130958755095647413908075674824074307299461650806660113737746123381733684372737351731227953233444559311172609481141188771487567747348908592580234723729561329457861762444113117025065052512662269903004352529191295560583210722089443695745718213162628194280413479857335636482896816645697561324594523785680607611226117040975072015258660434522850026153129350804412290393669372610366332100524149323091553060407744468204890458002772887220472421783064471773243063789548028741563893178692074570562699128143967986678238416909732096904746001063230565428933084703043935148391084934717225170644130991982011743446277782886126591379682228348105610968435044474929182029626256236427178472924282272215795384130186725807672796022497369922040160565276899177831040494602264544632933515913316259781432476917279050097718435306534582192031911375876277768650766217020557372013479602606655770002265428069021524393412962239595738650113157032103571370930930720353071439573842909003847028908558318219266639336031977213134943269285172970825636045808382633240608225273630986974428167502923591421508087570928713030269103540232310392866121496081877905572491791490380115218837274990787502084596152849197877712825607790435036120917332418076827238072923866911121589386567563470037043228835036324052321482421931822919926942107841744367409781461827407331670484338919697257161982399482603844909762413842183907170049936499337203630215673627177427870525004309396867590726423799048457585489209993408521053700404155246184219610236679075210577886879804208990857450284601331417319510965134566442600633228420569033473819730286912158416203803589525744569400892816248848100069648369951840606859557093149018821927234396216861905654333017602302299562901628731915752226190284663543475041649513093692498217738554985743547822072143858684959503245167028366338382475168547260160848079888622649564795316311402553606539218552254093064655090281093193701687290185501301399881821476432620646978480553438461942621612262683754086647458372698408938554262270426513840571499480667540842784086409793865879979049009565804643484741370688615366718833074329557555182353411342776922976288783786357951616676583537236459820508367412931749295649721243164072951551202034884302109394412780378919250601929794564425017979957253164266664046190505924523914490651187487547249783397528991562640970319196841020096882875577974393197192913688442918023409024432745146224690241784151867729355447869339453900356004056401346908916138444672475530700860765159611093908524765427537996587328447741613128052849130792742811185190762620955856079240377714595776531578336360292397996547450820755950888466321386144543417665227564404565930944966902856113938593623332457512090761256475508708326966043807579381595221421729177408260478651140952527575384917770709504262814462697547715960205025376453704399121484840106317799340134749672896937950298722933243279968329749555785600898197586827236877426893129345424223058076293648282471590790121478070773897419419092466210664464076637225661567913683884525961992435279000630885029828570767923212070358299542125522551954198192536240103016004460052589157605138775547649399761427133291877103879261360900404947340935588229304199753951827588864696468372423770431333949496602844131580796886996009072990773540365789077799834628490284500787095895940644559178587473031010132978262804864857547510111327685992077191300538175669944152073996142417835224605870349485772426738498066823991162573039973617039210312981869772261498317955480592751626071104883022513754250197249516383099043637835540719589591421864014651530210270599898533288060948948556356315433256116235112906971457988970879452260601049066225734272002445425415302427138310175337981073937422086145266635065061114006866531620234157638652300881957274341810828148766905643489031301681876721147806526417597445123195389335874925837079950667636440015995453665143333150292153855777882682640848424331473811569078648555198550655675588595052979951905033078971125194051119960996924074336404634571351826255927127469388722406855078696190308901040150067047150544269205771522952457968191716725537246891840700403838295617599641960075871133926537880736149494635867113165563347785685991199010166821951227193081298388353039986343865924719365101849360803303863558143313826357442808881586461503905584618494420690986676826267629329288762195995903687351506693942801813779870525145693781900345883000468832346667151844868664096079803975038072814283727964745377125910999243492929445542240875465227963678561195926726569507694436664265038880733750046505815137811331092680359193537546451444893668087214840014105202873110609284651922313811183680357917602490784963231167002959853629301665145823226569287433010118609944028000637265512798214909790200820762561981443768939440483369887178274153039151231537072309695969653654692384701509454555524108672175365587841866876032626937390165867724320945623088597632363820369494291886263766917795952139110593968979578450778447243654010767636212177266326637610515059669537163395376895455540909650064971728402672988193146649785870718324166778265820188451982417595533539776198188373152625004853531185306966284591349785837290533205798802603171061458972814916305610696454752869912603543885267745618580614501689364515147047148022278071005541889629215546728808238379958316768833711065427078148643113010086109194795666085762390905857084045839264958483825199428825211913841074772901071989976835691106466893415316288672979165455054476462016154306512388453630852153167996723424954711173947648768669523691309078030679279238667318294845374437426991410508162722672173524797915694637219090218900303167837349830992799125242958628953065624497134825491107083738633443751156036346112932376724058631045265213501484413275684017808430923412564034421200019200085062882425336372346803440210635796041442509386193369271968899062034866881926693946163644474585677762911826641425510333563212369838399039337768881030965473789220035333964319341825610954062277975133211608692025108337408134142215664649202851822105684167986216643595332686234311553741366450696168098333835791863673553685870700069395992540484523464935717666589180643054945858781438878543169060856700084900037473238693241975042223488020825717528521152128356133415707437846295610574805961288699471966360319338422099505854960391167202984651317050860976142913095252194502325015919029507691270732760527457343594261903655699746329947893219727570869892678791080314945587058598428437092512244425089630242207104590489089375002145163814300198701273466544345452031835816763777986269344734608705728366408517193897212902136359053606041705700059321091899411120411237151503024653599453404037364273255569239559577943296466768923015786748528014302164235107942728310487366194764745756046990461392334307623871048695237196763523924155625674137320418249006741045729653792920063561417611378545490172807662204441376100762270136943638027386103826209903998112252513864188339396975967947316779418379685831349263868202769331985540908882341501195701000413571263228135849249241232326194318222843139051801207829891843647179076600944828547002908411008581624568849395661142429293675840055540210892987864686007982645930511643416016651454952841065100978899089995307562218917219744400644750716389449235662136521079728348547793191908557979879002925781993514900764178639711873623621596846491900465236241768952007719354643030592927770210080084907882959875112423349134039639252830963454970638129102502135973607282331525533020866923775507112434791224700965547709377869052616831862838038364091961271585710596321435472842938392251555634841060203855704269213594961435820420955424146059076762685054281944471833372284214526212781499946180842382885789361946341341224511926935189451389829868499866522957274551878389329902842802399592367674865080008259503674124775785611091951061702830028128210381537977977293888007048763407788571047637716581424595586874066778321664089460421706919976541508869137278479737473983340552640503301786615565054549365069728562480654110178059683340842883046317040590399737419339091852017174535144651252066126067730990940756965349718427224644135591524505333398149006784340540139567872890673708951837708340917330569436125506801923268981825068525568859336572599823190004796376938321904208201607519206390997460323109824241138399632262919364988967405722679436164159381923541249330075713211819523786686034045126365141541908641146878910992436300253748111392211017525124128824207624209981491391538120401576435943780122716078951282165784834403841180415137071347859946763311097892042234000720850807600499689882394013659517060821675749582777736496926714356430794302066628695459048078175099180296196710371883837651833038348483228984825487195550871639468436527191851943509111011096175197640411350026982865341064693928848164754540415308848805738200620102697823002034128216086741153292904724551642178123883503110776842137690522876250278052850743584879443587340077901328232738491246922015515886784532352386950513257780689296796187234743825704373255921350976914318983766539647251889737635197486127790245085183840909284006273583001982062612023122804477224648548699841231280721722600911502575361973991902243950288679089793564048479092006222900002182326862860839485474312394453133597854302429660109378711465496938892962396146317384107454797876295556023015282869446793725603759444809470579065972195484362848767641764037630098712672923862736770765735481011352406439346798138593987540410558170411854985498910732309039986046320896107536051586315437347535012937346905593392922539732875163009840186365232844585487333356383148358603729368156383787274111122201089899255253401379460033652755243828490300462724505469379200431798996074504404199173209926255182200059239450136131193324516116314530307311172408176396409604725569307537173778224478033329168250226227696506093229841253694248841875002973996333905412107292075763428106999143095874388238655310268234140064494095938380589942966331483001782879463107978259152849464725373099683135546390993682552838155351262691162868003584495691247068458981758191694882077683295043674366477452044053283719503606726276092899412352807886928788942704985691101283347225303631785493249026768247820144864285692164967211508172522932768428496968653981485162696936360696355729325990081865964280450134638271391981832024459233937627010615112270793187255589181484961339054855211271367640119715689934303188952523252241541916025344047337246625229673305826811561036086894268130375008149813908288193641557953662118676290742541833851754594257184634679513966950708479582772626581007310164238147124791008850635336742963309896780937785797856753713908019856351358630366427863686715031068737447874310912327706658038234994929369256610611285450319741527349037009107596679601113496003697696281735130131381352710279537554107522039183813383461334456181204708299040725540059743815555124109187946793384272715283153111312604546705424955997715973226535491972107615330459815843037868340261706509777345685426741535469661836345755076683336179229654647491049811435029376194578576194808247225967021574597555455778820606881065162911796026328333597260222602093239353387230839394654067410739914882570764781876230241108701254150673291900560565295723867924171539647874465152929511863267256215294950051242481088960138787866516354305716281121984307908080997765834140254273960249885766999852613201070741196657320632530732216237332088472179660832972781200227405209658152103603100077285722253010485493586660510105545232992128816427559267078878062216677199757041780855910151285441477822172901653520136647827771941217897055532576357179231685148937440241098298256303128143272886215005276966600708574065062463112664977048900166535223520762323055082076876726399413870615356076725110744287178241474314085507353681879024231413415125407101528089433060060032763436884119954658412933746255752591067478728552383031152719619236966066535780324534314773421383087762693797754621199350217936874681606561860912523409631656113417449654346786402103935138188038338429915669630397373634666062061695251628218010036429312443778898606830778866257695722697231214997517074294713860537503596117710680087338123357450192099493435777362050778449938288340123040986930540114594354710808274126206004796890659008002039429496539651785573205663430882842543030086039725695573354451220949685659289796571692858920314601713391450754641592230361466947787836576212879295824698312057056693459562912269624769316343492356075328828282073008239902571489160574274882413462623160258092394099096770052645826212690188384892832187280164717712629419013550477071517963264757010886677173245903716215329160803217686070667194376899784177410895532283107741332350682274959299871295812162889281941234854259056967983879296886356174208121278192511660115294674269497997763200414255084011608539105152212775188108354035869630808302467766550813862984258628478617215526662577783431466486919293158385552613895707163414544932144443620106671183456522169127048925153655904909395045754388267966242103801247648770560603704548562289931445023175422876133170742388706622665796235367615853274400166082976791730384174807221112579876049130883852050416007518354435622310349214743148827727214480471652349140730261657107961091069568585562647196739677603929088718642108550954948928696579537066899783552615903194144922722464294160855497021252776406555920117069499599097701634190108886280779088763490464750533334769188747679740845607445134703179270197897909373444818452409115928558283326199980607174552154924394559935874018061004806096337392175609702621284272940750053409632380040334993078381856648152570481089300108547153887379961750977905322173723888347009785273725404489027876362109042664325119397250663369812615902082576615977275050068043807136571041386828618759035092930591468498614802287885488444506984483912302750781649211864057563026203920781895038835215348363912775159358960940253828782628623403225902226328254431527379866923997017737823602128435387900773281455875646337513743870038621422448541170579314051952113759202633361108755510688739511483861724978130363829002659049870636845463098620143787254465304564465394398325154845919788126271274183770743530953412642744802115957696869763548454573911266901280817455550214129039457474002777034821175386326405456502495427533466877671243821438932177803951743889357569411406007788729580419124314801139089405576765720927485700689571412735310256847261228656672050440993554971273227278809955839313150203904325494211516038382148363796599076069122820987367305768714625426064710493197963502980725630093135509004450487008393789432880047268395870171417435980108245097093755823292990966254897441220678168368706396647267597849923488426322329773906824600017449088877934658519451977457900240627357643942705840868697063495697466780025797077321522642050967835777773643545457880992379274192371851440184009403400817006815478328764342783857100449521265024319802115728398393294145116172365594766608986574404975464903899034330463090192039125342941392165456680953981429122856825165950983475404353895918440360577444371503728122609774161890204182084550047646099346273493986131559158949648968030524857434775722912136932581833974328133856163770529616331983618589231837514412537807647832032741266826716217630055305475806196083366531342738947583020490804518249305124191921864081993415093783672964315225253574663059870610174124229215751747484633570878872073378812326622960333983057371246682581673733881958386309323135182305635332033930485056951298538285639798858922613123823901322802539372034845532598263909189705001316756254204593375438629947691999552844215401301012564659632194715124362319439163375833714215995727782445029928396006692579412952073387635358902247060589881044109402135048984217876409904430044781421536028779338285276506174851263730924319952588126376892489850555340102230329285852773144289753451318134281337451761358040079219829217421313960835195043418982949485285147757778141527259280543205116266106321743779590510630775607093222936892305862379673313775610217892297775574541529558668793768655359448962107143904638508878723707699085371950344186404784297680079628441322323487408627730337598070106509896330205368334507456686656226749758672007161127761135569904098152971421328611888097681643545776094226906133042797710145761881074453483970509616384783819667301350578197066749434546690345319349669620092752446762130440365849089440816284895793354389573702020721911852841184415808024781847622094768139625242467614051245203861724783744821979301201549423061330882959345057340196206480858118400676050565351157563379004449892319187266771091105836978398014171774977260505100352292515712574715523120202406470031945647590467870074168753204353955833211933586388607153390159460425546108523331165548406433746214684642102297860430268786849122614695787446521777753532616734163650914266835800643816073425470015913482834562314682699861929011336457016113922133529297740954349607871913673934694868767889879278389341790015514772014848528638020759726182918053457187597548725582447551898199457560790178322471241777987894599953786731860642289306085379333575104178436543673502120994083470420253508136823436362430870332788424940828472911854889920691936048251101255160084443888961831215931798728133516653656732244705974461756194434744542841196205839538256998435955356811896519278742891495853321045696509087467708239813885301922763993173368131153656903473692589818610186987123429850490693101602459115285473894696663027525434477216982497581472670385611794371808940434658968141963179572613292989352876305073225429848027523616234308796944505920832936535141768181333760453428350292223377624284684605137415157000964576873365067453661269686120275988264305489899003358273681381691494091085987918060921131554403472072885388603230395235145821849931122123964835809368656053714749621436939650541609071668726638405843567533637207962489533897049432307974252070871087535888584362897683544211502498198442841226221420423072278420482960663601969811606354570535710801317505063136307994229663775412814090582930299844422229866200674437866644695533997256701640448359458739312438956554663202929835750714281369920496615134782061478396862611733334277664459433715284014094440214523407744284780815849929634619714002474782512239037836228886600879865556674445231658344597064970342216282509861971915539162045922519210626781515030463272709896133873212734411990544179405119843705664934928026641129717479300085645268391947065276570225865545443095144895291385965828584969462017476676766556633389497618080478059972599689543507619505756136762606051825609407838646526934812230655491802605306308718519839765668894466134093660693096176517752253277079635974106248893231308934099623157524032071926594428694099896256890030645033908793038665292234107552097601690570189964600505752986273683958437199533741846184830115918999096727699289292013114536640627047456319312251858207201543483152997640243359917326059380862881930191507932006541894304808861614262539025178093673298359725436080037087238869979547195782218511418856341196767244842581114660532415712809088572464192599029202289981384268957973662073379042439853606507478408511486849196025832854830429066627843320136986349169715259188196208524780134968491759304022839811562956939503952151316163916603958015224615153080380870215308111625544652509723662529026078140828567868078742843005957991700522880218209367659414516327370529029964125313107188479889359120263304956548794748018095922447126756474407172905843431545147012265810697016726252444204767947398845024587564228104994834624093944699356047239609265304946087338685942007419424543028382092418854298998594432920681069264525450936197533454948963047973876826067914093379798801786646034990963026292003044260024234138391989985023379904931950043450488610632601127399333422001458286953131412131585139433159719289830770085117639224305186767021602316710693418782970436847701730948278180380648018989623817993575270976998937926573799844698606071205738925545157720068554900973723498725205586702607544590853045811813404667445934250113261502794293072284069315673958733786536166364330287939762572528538000998592882254473290312601549912237415350167582792235377102574194711703233070827317820376390704346607577808265411972946307288480614045989062929142408828506882470766456825931417543896302044687363044695045578264272078188713030609406528806508897304606908002311960259228092095900957348595853884988207632372707814309426661852368063154224439928469152233945639524655076889201213961306079452972993429946422241711166986697294368930606203441923270584541325109960213887589427899429243881871054491439943802972111312210314047062167079698860880667158476886906883555935720555097605747607244848144316498164074329824446435998086232104661332108195232650722581007948512170297578690606817767236380323289533321282566210012220247499406593631598740038025136188186726340901133382689782136343489883618880468033405142575004880700603765704091227872866871039119617309682413765132181608645020168579818561530309634735620343001239764863172783216087593591657635088059157677720054212081674244666390666985899301671010210455037810824038083945461543679531696256040511238480617781115872746728018744533455399263521484194732631479109734531361757367538663507181318201396985877217401118444688987445789500876263670545773568309056929137636093309881189736661284019564789567575386154621570254819364864710342896968824039451368349927007395768334681193497630904743409854849360682455765173445095246072400156757618611722502095089401488391667068842841601177078400251719477123045043977536945724331786807673995312614560256514639673571972552717166254912749235900761765099929623158178823222556669006958131559348598875159636818058254029445521657049133453846981181400935789262675911135589573895895354340516951269382980755750859118097169259850208278171884369594546531854218108422956205480418238326266598105811812133000177099911562149810869380226302868330221227401444486286882872728359714018442222024553335526056034266707303794054097470941648393748185762387692048024163018403287795984963870374703734143271158405161331277273719993585505889108927150327516038594801312986212710394491227294571124999316565201868498175789359949869452061818631146090900320113412467982527633152576444042644413987444514624897415705852968035387897000638262988888727120683044444513406374535786890518892873853243836672232191880764612009429876870779955108774091103267492703282510878072534576632958459675097799994177874451039468491031018516873179354678025838084198354267489666776944345097176012695633993751088801408049683393686175209936225475198407206752965081543598288293223301215889628120721457865913085691155265074502640275165345727842966485480902249517407113886099437295572764907460536279643564239779997516552793523500002311011505859877389779644127257089881231486277731426827861045916963952801955588005928564751459391795910101880153866201165638088323070392502846797996965109260274996340444777252511607378093009729121798658209111988902095527833128996944616958743139556529295977052043816677563791926172417999611816344237551534730423893450812351504990219885025885759843195451102195509089958466108051903480953419033570724096447229202734420229580187584200541767811347755702775409665085203478334431536271542292530958221106023644146296975982850731895694602353194768772505102997714346448636905761880496528023221836688556733404889527020853291072423280000716147958053738504166004001312394848569027841496292359643343393354407852371003026884728133663092721698815508339151109929795019127692426820634662404921906040930240669831928434243409725989044196152933881317726306422247623184050735524617625759752380413886187614246047110797834305036104646722148277996366720225978512251224620498003194973238942134508412198561172385352199745617855214509011600071910843007318956135622259590827921769554809956616002256502423734626106798659437085153287817737686985248484933700991626465934055642482236478180469337919881568047406868697475851523142709476950048091744306743811752001991379897379567708148832196778754500609808347264028903564270364163285881045539853213354598943666363976213402611645172131555454433857774775851540855046031657790836531377662804087887378403446467515726185880530197459668930678207333285133834029287597528361711073872751586888138765591521178507947902715080897707435948027150742464602570329825459673892932487064845344700846201100988434868583164477680000375945173579721142271601656539585374284574220141056381479796974099912044188767030137373167141460622417505422830468465817031850096857865692212827117953081415677666490022481601250516066811630943608493464587286519684075813293200498316909481143579583699046131114503517775850477944948427804967075515612101124880718121766278330346738621967432847798993232676233273917584345859026746692796400036731576352391512465575771015422075840263891200877607993042109247178635185165166466127423026442440091139058333752116880310373000844239433746593226088659486958616527824790768133960491996960586441212124239311825250260962770369055584572444489246342501425545164377522441400373369364743632616665339378923560564699518178119886548493441002627146695652652624215006378359796223761446289544013839426284010167783867108191203344818319044014945663841866673583108780770306225655837731297522556886846469259933308056530513721693311719501281087880268919034542290091521204358242796023684161848088995673355324535774573361843284360773058874332664229691190369796275144323790490340584079763495033930134546292748549770034298659235838931053088783354018618112602597560852397954233403973535844072512397426031826035352143611745502431373947339919237222228220772540020576963259782771118053885652965789503325494740801010366307731575627950975470521099411249480669141203918228429786177997052518274409761968795300629511197752504087148638755060248318381375002546196091223282300470397569852904389184426427836627261391607490684445475326162601736216005009924977169594934377797502414944588594519601736776695642763950701101539346567483628884305928773466421323421610166903932087200517742808084999217669264514716763591578890382507217034212128927313738572507010913721325178188031597757982639398203425312922119321930980074061496133745988111579859065641969614483203680037617753526511268346638455074643887078701276026075919472078745499627267888449161837785097024779340381557259620536603840976882560119498740163054221339334529672330174513011532562722556010495627884354814952061117585362754114944626988768744234234601977921808393391086635344197610540063319926506823833739614376913386173703769439879240316466592621796106385170461444276309860818587373665798613015514276091459738880856619813362423333713884906627176523213056118277731418873634934281053199395464909154050469212656266653465379545660336871101938326238003442233614527457718827757759702765421464007243393120077975714996798192778642500466905350671417780842275897681584703576404960001124395082622180498905951477655942471938959672343317957500517628686434445866404170728200121368065222733153904994182527932634876820671572212333407013141414625946494471896816222866255881673568508904412105755241709654061268336843148249118266000803096307716366856920007709798662713461109164856333784496612462630796148743405852526290720786934932422511271050821891145297462486763139562099897870203207823100377534192195514623148514532302947899324674833183066995211938232390872528841931007212597895619298430623534463739649300809902368607728249471228849053064540410902528365106628269881315828202040213264618534589743572103516585676171132745319662189042104552639445372307899752486416909890463642720009837330023697475287569248864680188712073458817367344864797866033545348647697743835316955782629357474029970784503185554660489601383115186934782899255045696184388899869585292982716205807824879516919247973080662238644246316099715846961566472872120828519333608046452661176269690046345230251794298957831987263794475221124925187496030798407449567953544166266540446322295056702940760842973068692424091780546179895822440764074688862983174190238261474850448817266115857745695306647048558190710371168918021990293133979308803679265881162608483714076991786581750795343489940398077356658817787263175911139922701397586781076732353697428027959019206543693922209541637408652459809086355422260403306167900429568528633977000739365059257048512564383216885190464776029291810892985022750598959142886228330872168971983801666051365438404564885759411702093597773582881950568296682195962431638486291735736547412765027662911151457082746359293288221438040630482970538854706144668374465357885462400932324492296257775446900978494599285789577456270870232899251387504396343010086856999132863870800156326946031783850276618983167090160982668058981449987278172551128659869293734999820194545363685281935514477410257563961783457818830879957018861170633590613398780780291760336429846503753980807916730147901291666330137865963501953660219896864935467371879191506928657563091144955277973016960366608410754279141978345522518788505655614516399669415677215202073992897038427941377411369380170489078336382939202220552547525587750690732240216060453770785611235972173808056696445072961852199107018145433963452653924559524415254245305952880348713350011620964959053359302838278691286830871831264035660001795205712115046875698385753121245369157681477177792406161335410298678303623106425300634161160872667266663080641868504493077046667645697263043631588984669233195987465902816425700114137607789973078745394328110678422136100248801828618842125353643425643719506996939500188305534532402376567812736110179514373498821317197918676971062500766434935372321913687307531257630827242469465550263785071952776290921606692135346532576465495489108978194999602455460505133877827868793390914939398272680948627982352331511720637975869602111235892837035086783453466157219799600901675887646359168584858903591664323389482634983876578715664543598366521584035270390145069803880404280042968644163519529899125494297350918718864679922461452843666111506541636242201187647185817552999115822993165379598334941561088686893657420260688902014942348181341949040899004304822411095072968229674917641471030749119942187713562027519414542069182495342932578620759476061919807383186531886272575891199473331767812090252062282931608745768566096316957329995302957886310032574754434016171454835287649032493016207668057067634246305525568097251526070353591176484442280622624092389944789123016881914439082946163317711673542953029934297551002636425147949479193162139200060386737802780338715992521648869812044932535475306082759925101684551508867072585767326454637115177446749217969810545101463288758280520249638210283004506613466171890183884977338926073963785461206418967189880295045364986309141456307353941612150095149534483886935688894352650310810704265289064551429445241164654814256213243166222978197185934801664416375656463147083481593417253705730619211969492318361647261451155620310570193234966893684967715782018348731607294616072986621273118927863277157131420192125419161644725839543681262736561798752701249892902397779424867005086410061589641692248644471336011574233559655982676434291591399308891047905468585379771838416731260731726282005476169353530447833165383327147460719412846848687163772421055309254411360265793215953117469060673317311536134394825833982486363474086613850905845024812836621679367004549041892870230128288980331108356599203479876310499477739302506863455169700245803318408748304428670310769651846051433171843590366168442948872651933993061436668970131476252861820943474522019560789740216351503081772570459993922776629737999623418689497649392180088179160637074944354334066756453378894974897129494254932730422066280318716593671818484496553946989519664850245079805333121133738842529143624548885010153674668501030243303086175112311767492005786920700714135972353025114492928797411361694520772403050935796421017525662882781913616874617259710690294676320052213124577617327709764057200521439005482189011068544862576750454926443534077560475628878877983299912052702387764232347358310958194220068349362814886663509018358176693384577938909584423179429465404418182616554225549263597559800413291505019434662684644143885568716703964080339066226187399474679058569378887022412022612327288224142351134726309719938425241929170797358859309804428852424164207164927320980908394836520949712659949833240557982358533955595834751000293441816880479503030223932276724342778473400682266980376789473093045233274135263533585898170291620102233570778977042311732648676337025219562064640754006509990084251915399405182011603399328738999898090897725415439690266922685752629138203438514844756746027097126372655596729844876378518751990296336764573357480953531440294069980405505658009059492561856925062338060578739935412701633946765909587887885007732779213610333378502386930144531304773162978788541296368852462424660406869208916003773007485552045142372221283385572432406997937183212638718872555646152883729700663133936914474949057291148857621386287297805519761066452527171265146184892062114157057836412646233721514113536260628475436914071803785209620949499094426733043463078641867931160483950649358876440036640676638250827422549742611234958546379145584180125092316717947493710259475809637371919595990018900732298785428901760498934493442883770023886337475361098920124484442333230854407393904217479756634451276064344087067712617909659552076687431942627336702679947263584274656016948098524415998874280863997217609602058263251629266032275650094765978264841592044776468789896758354640246713834415928914018690853472332984496665798608559821991022290003616486510092456466237053756282797821286238578426002539383707162733742496756107992360233589241378880258954645207983390632351202849589135974499912181269191654850327269009131273850434255114859280300197130382528503613115731287826902416350542136543104678930212352165027272259255062536333529825649449412558410245300524272892389745291873700587783018969507868446284440068449999092183010811143460451949988330130825135680093831385150636909053764598282243233706777126730350976051706714002068174195471515652196525549465267306079847214200452166415854416807179747011935097093162369754699907957282009696112887358841704913496436021342602708811934322425112832185863245026264778696380008918868455387438199611912463008503672585989795946920079267717416111872060179273308727298604020204927010134772782338871701717207916771942932909601239210331979706107637413440784160719806842629167502877714842748069291686255603237323817690320664697047655834543379917378321483930686846655369483797110759151768515193044431579944366382523441557895457244054577046214958805982330205816006657980320139094300464285564055594945747724822173811505586608212318539278137347920108329295650778710461977771309874193094010524627384233995466349128413668319989656330405423532930105851611209467153588817298785306875252127114632846381824243852370854947906768260791852504721794009271595441715532635813270714555895196372590557749494400669533104072926910643284015956492222871489279885919899333530833988000711000000477766074124561723601504612731155693643619091063282499477261628040896106671598611785671568982802971277843124244717089625648251682252712405987295189595338587292589533214524668706265883993981636451382200839510507713124469439056765011442149864187510215945782217570356639028812783099574104253514729787943668826101409765233696147846033180496801005967542911354856542823139593763596045541804755524530625027340156926566842782440360241676325293156781203733222185292512462688422436322681241865339803034249634412499062132478054956896798948997021273410477736871092781608430312523566943171832061566816533823671010364291762810070954974540134625293814265286678052860610654658472670426000704998625022883196950109922244455591742528970242141601233205384877891365135946652177841022954354500111952223998255391851638321017405450835103268585110480830042950386295260919944372038277210113659485958026442127797047602291198574097491064138972676833631621157060924176913302575379369014216785450367890726761219780208087888431915205781095752564853647450930591849423044381124990843194291496974935252153658626540745957587547189845996491969885890376983586142062806334855048649840748990046914394231288294331985358782176879898277926397674356939088785879254139762587059311219161385406931906412150472061179082279558714676770715617690775878163518454635452964576379903336415348209282335165852830197857178215167547846359392981027659627310281871755359938771818553233703331433384920915828297984809233290160249107359163254599684339333777146537703039923147275538574975690038194278114359621834657820703801272085314861411825743173314529489204084420312371960303007056939920689891861194978142983123180975944711885672980117964507993255074095770006001789486227168658529281049337437209011641109758744555455060543059529604577878436330023009559422722684353832630519898556219779934318026333875835843239910497668347655545425905870102023542091838990273732709630569226846645324768853192806907708338546069924439905824952722372503217665957101172611719457721371807797975589367474529369604825393209186377349295300546423518748378222464300140287352569415261862667747811924841699737047524512214058441211726614598967410590048417647027616569106364846873042009732377089320048027159502781682463432303965213377168980280630455667146688296845262176312376022797458599692277032691064336090040159705593501810069628608861800899621596186403749466610952964320937475507452485907118604769675782813997072691475308296332367582351927542440856824415623677295028795971406171490946178170651537528896646593284470721906962244862288766691256806255192362896583425408207118795098647895426983215653448695643702426939980669572138955914294783265414004556237470349550372324774855972036573592228597706934321022720741127141267732220307953623885080221757934230898656282744111650876910565690049434243074345587843774063833290547506979415752107516330935106822439917227752911458916394502946397724806906714596152117226817883958679455574219193904867929991531067144370976771095191023350402224119076198445023513081320880085466217164200472657595067535281955882420447503253482129377601256262008367631212439630108268196979608739305016335003532566489976530927764810461494981923527379610057868199794071766975992131494144360983521798405723872900934820940500621695851093955389990579991260143473697447428665766007377364467425680991851538671719745876859727593048700236728314091103832828111958434497230685511277081772046013802778562836934940095096259832720713982386661985863793123071694096207630827054679955359587999411413864403708171317574874701787827374110635011856489183384206653715444563098985816032914778969468543282055060875521766997208619248138328094526000545443607979746756906926783956343250556035832829526994334287754977517494720534122444595457258242525447828441010038149816488325218975162430107510360272265592288898428170165743319842654512014350563921620822628031452116242564087754291169522714909084742804230335677554974933803109342334339321570647802654192477515666543684165460902888481159310656382393444101320325976501408131383110837577405401046528349155366221931421255246044857040876205791007350471353116501913896636487976540754826207483471621317786057809717228533305677817742557508390928544569630549049519853063191507284438265532016251532391377771079375460852836186741441276809693410550846790445573818883876368077227275132085255175818793807892720101655991407648753602633338351829013893643957137976006343217614736159828786998636732700995651542771758581444032589260197000975305152067811133421640187388076727567412603328112050654824564514918424043839925796147418294708214640175640982129753221804026721146323044458427408376647416651664296362426627483319278608809037375780138611165716696462588295538295992130377606571824375498793060955609153073737247407489223465019209508523976374460115242152290640347823619512618795084143386283738250121744065062847008505722124586976984722137303894418365256826819436217337408000500291416639327146902996667985886705201720626164690726742513700029646493164780275637120858271292353553601099084650080712251908998598140604603908816323382797702350942316551009323095930434050790101996175487257288685606597609218027915899290731212233910575081175973790220851766203581929408048129081605635718129201386511041276573554856758594324951348786702811706024681253655627512585013768941149322049959482415281836407745280824092143610028308574311053998022314799676459117160337915095292919721923310855838120753271775244237408587796124306562471515213235954234722198849932558972813759320911773927924452263044322763483263562389120397772892023878507304655352730632447010935994725022326719220050802491850424535824851669839436184535885699714667566862916799665986403499669691698711248345737128501714987037471068785045277301809176632793630057205696508159380000891884464779151611147982154347805951985183425903620247233475100290716460496035592619253062089119541460717806802285820319863493771572771295533126338241643312838369982432697786923538814122482934414726380017540154412690560072371388860608468572418883035214613739440065550036304794995929449124264487977267358234474834537160343155876569220925883401477428466255165257039806237078591887727969537443187178322222643096738082072058935341427754337926633008827875015886998930117065659807882004058910348851831167944701784851942321566380583152187567064902793619253180056438433494654662274361283827472096204575920458387226540628742659174488235746267608507607854118280364203556222538512964889285330049974011960148598072317567386987249373790957316723057583351109609461967537571698483693823114529031983405936225511378607883708045585979591611230050634724310115759634502864336876736227017556214916283918318252024508943069505501235419808802156827692443516112776996720090162765724647430599027995693773670546311380766897718807565672527102345682170365452420847113215956507848292389030385597181876859944764921029385316047051058662384209185400473673570414826206666125712779272902919877523767185425656449586607894463417378368283337458109990487562488009330896588049143109497892914323641589920431839802537838770131801670421191217577942864976544160765899199146504784998561927407088280324404580250752913626146492160964961555194332972173970792868921507831124172945212852892348740360312441584496468281419357444037846032225967003759032823581461435691154406751830572811730680097025206415536972127638933840074091454722141377650798738278077604766636506655394603639680027612831152869999483634824557370102018744293103413537822385956737081648220699702219066144359814792317149861670529891313895656607783814332670409399796005029794580235354190604052084240483329147124467188627604677420299624548052628404715261110752885730724214397574238525981779417322067149934484784367570195114172327298084901739269533802039447224282184781611239572046151250676636971161049894292231736453449586128478764885999100478620891569017097597448188465453185342305408158778439646310421300778072361895030961550268059133684739504726184468752339045623512778150040764927967403557455250869571390776954593602187683588984669494649922549041709166224821446599651113212979535058991830786397632070063147388095587045425237601856848514570837244500364004515149192196187936538698175341980679459732224702193361140833212032656390166978347509949884440814200699993211212038955188146638412973268881418357606656902226516123908667436421829774572767054689427953425155967001865209970358276703539361008388594219973828438967882085813850171208002196230346501088148068823664986924509340427668831671957979324962665893411793784734494239057864976832867286908463969623057967749050260566972622787570180828386271749015802036479574480238307247273658855429090796132558251752973973244175580859553155919134809148633641178170026108776041658545671380223157850140504589785310690340937012487372001098744260278474830429721625675111571097729424849620155931273035171696440847917117011642366394831118080364705397244076625059278207406320974528744447650388956716321230999386004186547218117215273289659123758309993870306829325900007890051635019058624838176296468131955650693905880902960274369903932657576358465230985969728252484314206391382103943395688403592266757178557254291066043765018641517182123367835069235341768379313395765021015535123633608659979073474629801399502135085700933940757504400128317248446827379887830996172657973253507146381979858652722504005671394169486036194100325122625543793682859092271854303716872255192572785049206157725279540670034328898059875656005529816197673518890388929452273557753389562843859749930182119993336313545721141521026270204521383145359337958382240254437918084601533450737142195162162892120745714540446956103726257436124938059011026089048464572427706140914235792229877497668035475208590242573260895521897370789082198871041906567958190926057265284700650042137755140111966448154627201131444153481572139512217790487880190714410000186560535290167530850397581507006715918443112496434978983898293777288068642997623577949172018347496866189334981080370279683631798776079343083809320738305072977958176655018827682454789023574881276432564698080119381987606634240525333549714941432627879698297871850782990412615073078708980867073339833199619330349423345359298355290078449229110392592576646383395673568954170319498368136094105559332924524736781194163924002274989495890029637261335049105685980548820601116496060248143814268008366273439959550625376835979673275256834948417142561182799487899780190510292355540656555018151105519318912242223631295510952395167575692986818877484507315642038338033710237353387757580519218254001582318857729179897754370440627172453993257684650185259599994786739317038692985258999418411040152239126737193408074174612965344313085000311229322144734671359133571620084400398149285086101745119442655194155360874651930038896481117605796205478469865435766666197330181615651410997054371743540220672211059180990840242890085039149884483249581380848151835329697505220693276261368703202816897352201171160902876029594941626517874447730911185638858559986537281962211789419288617458087033296102337229975125762189447639639223920637443544613659511957373186831499637837815970657548682256701250288408804390168878659965638893196607942810379443292415768873482907878271791747042987982816295107547980419741617821035821896109892016012486225726360961192755178016030263816600270415072639579931793269238279881574198057552319028859033632142979562051223758849222551509931865121355946879251618481087037152782037333548931794670398612763316770071310248835936740076450969116490326023849236637792774694551557265068072057508614615222442131232807310272446089830468758318857626442932547517877170272691476823431131409703741496229373207416442087382603509496233299660040339139598099491547798455399697644686894185913043075545517716044471395284827467576538258418085540745119933183877659218398739462259645775312144464867224225871723619082823911379693281148505190576059077310986861890012814501463412060325903512232905749447499074440049455322796986268817879515692207129683274620969490656199747963120905665157493006695281627884840649985306995052690106035630596834809389460511117974310360841524201155387177274782574871366577741947939354719242903757394672357535432986983843774409597367988352034688874329745609113080147720655758204950915306937768344220730830394916819751034800884310309290764308930106845238331342992362504068135126570676160301754123045938792515226657743252911400820994810447930682012826795282607278545999617818014615907181779995968505583238497855006607849983278342648177792980872380619765324620146322809387014630821994464108234244871406126648651950948206805293665699834897852730921255697352005630043142978618721732601027630014710308595186848780947596812438735864379990869713317677941915964452476727725034553598965417314750766490905097551057307642060492943375628564725368112902050362311665653222929042155092458365179271714638217581848881681288612993748196954382285616150166827150685028141207004792692375435593919577469402601145315880442877692449448354987419843646741354849720204769104947828944301016783755819683061157055979706396331481037080119549077992329164067286550285927750587157310001458897290709387236559940156040066755358341948853385230077973712827158775252040159153283982530711668051925872982261804654287641483875600640706813064066918601093565410697372514154005259827010858046261618163453443398620040321258009787164237334022048470580748577903622470094920905642738450104648755572978461407693870159756092888660632247150517676406513349813539401701749887616231942989081802800523149211084496438231444972087338110199284084003103318017155398509884336327492810485390987797047462654813666349366949066079421560500967957395718241901428180029552163428567504977012458535965268583584005684858045017772277752676712584918105520001504967895494491230127117010998929963959471742751120950934098575676505829200815652422550657571218398115767477859348208753503682908660919455179672802770133426250872231274824059330809327797249339639800542426644806625192311276384733939703196581055501673593602348690611038661016300499630916909540672120695443100378183896927685517989574722151862725000653103903040863359931729515236169970042869954014719790800304453437755397040983753371262288842188119190942716236892273874524261396319835852288963232911091358016169820710453886732747491251559771790867602066187390548082574021707781449466649127307462852891471776666512270188619052489558103323389597394414077007116662486909116709414287073998374012891537299875090581053393289624431317637739068734626507504423099547889174070952283843040945847496076139160409520288689845267984441780405562896610155512534438708269081992192949430348365318322416359674832714332463617825407291264193968438470284341182951170705997896875491266237418301541785746836680457608555774115833489527252002210720047626652168552388734718369657952661539871062633911969622115925718859344781304044029066485593911431804973546152770744902801809170053958428449143219565911908995006265497228662841934416553315570175516707880049594450591623437861980381375349868646570324983591890733506346174403284866712489032946219867443834251594878948793798873030757715314658799765842814479062594981995656599266099203022052892161400433631673344646112784910904858965392301044607263994648764513810135527528013453268386553135003542011879277369733208175920912078002212233759662480327074212799144816546894689580902242768497722666461378169825185676761697739376978003950178218601881308852998639141796373812378127820612961198402488501157136024641378130789781209613057896476764838149950603357812680915920500451220637595850788512801725062691936540758579770460273735641473938048453686859398630802314899085711437456619572014104922339006338297387039788714776663274005733057705573981346321533409732535317755751929975481414880593686495127452686503931729648342828565554578493894932838115960881244424984485242051308360376300420079840340618866854609824986501534188490540363134545029522417332184820219048063186640816162603782722069786564660250042365433510892604432647443283889284028668263455452899865141441686389554803263908988970827869565638147976328297281079134008608953345769362493308329441670368977931833278990123038089236119976642256831630573885274945534303911307888520065148207764160102912226970273413637136327624725504826474698190050266475454219827065671287432676991789079015557965975836383953454985404416326488163961037773558599103785374420952941215359865306424281401760945786897282211835831923330667495884330123327814466290010438076844699797679916336202710038347772316112957625940167386063366411923858591900961726134066042852088884695287979780898794416516195705511792358024100978431375656380510180032259154648185537882419018340095871144002545415825015527927273525437970552333239466283072635192583694242893481921245212239323735873410225043387300336816061245225307933133215719202616208303899083807517179653877875858504582824490965400968735758255390564123509149842670252365203676400595704717326878430370393783861952451809583251020793748588436579112014729795939437625735850740627062074097289481423019812269765980720468134983961866087999438834032725163356175851876503361962739164191653546587508945148235896346867056158417610419691700536959321398975492555130998840895440656421649612423958255211972693565185477850660176287707090127061570397080429229856535831785221609899374056185105935129003585442402206071213246882775081464649372019497425324010628252720543512976691791081416726955111589785135022920203703308267581547630031544285058563063445807958704261639600407786585217396273784268023055195889253328655436168577924405740556902534380063568745098794464692963637547853691412093377390223761604804101352387136762063212705582969575931124277525671713100352313171643931347269609617772747292204265265317103790006149985666439588964036750441206921355614507534155728464843765584486217643617494771756044415013655553599716837459477930172758714234718980640118385883323931384338686820543180305359505566638944469905215153309997717974954384883280153405104501184130347330778840776601673485889950860309383362057274877992991190016712739270500450733498016831029987239634387473891349148407238945359291927586250866042361389850256777492006833924945852785045467872335605801572925876566757762638110726638059000090696730679083681096600240616565304516374791312204430818740722075746376110340155929751892960170363167244844483864877439179902332279173804065630063441067577424477139430916074975671882492995297584815188043092839481144376382797885103886137164588096386624217334308591526710559724335437500113827643018199132441370858900996548224316168615391202412167328619236578957575590086584703319135356480764663446201577259459694020142892719138723126286799352275324370508356062453645606301849803448572080440209266394365637874662577662742243602480702490134857825650631601557256243005019412255346315958845070973745580286137578887384666587159320866447996836579830060775918660348997522338203344021528732969105831321464368086319421613075549868733007245280004653710670914387988361981218273982692345156482651002616543089489836625639568468038903483627154792950557619181317086587268595806457064065242057472426810631583423801022225903774367557830434578746098975869795606041611463561794822093155555001607778070194408151615948031284668900908377235808335034523501640287889113416182277918031481036284061402260233397971144093007200222557327374324204346926239818189058575335236378474866025524861569424834382028230365778463370038716933581915032014213641698120165089804032674545914963905131025467612508214398665922547849261234123143058994253265375422490252174707885541326891006421378668548133417774104282238774566604129669595555794635250505123133408082406146896157611561360952211885423061110048630461612217960864969446331747850534620252666363169197120478298814490639514423496460189802208941796043392552680546751199449743247661577657991310389118594963271859050843048612011531613086689053696516929423842669212454650076627330864132361984155740098051044194303107694054257944659136020463932242210328420018736611141017123350454600547131907256124827241142965500834891668013930236200047808366627705469933709527446327778236399507968347424304447482077385623060699134856599354767966004094159954570193058486773238456889297433454226352771824829596615068242830593391815934653213102394449226596835639139929932570727273349450359271741058848876057734578894186038814877218817212562513228091247021992393135814278643040327023311257187697668407784933829797335975512540921540338263914989220563499993111788294967537011176041326306509497750645992806488351738284797054794236139595449117726380720647921003300573969932264732776657466623325271208987220175971961135882345730721833434090494563494978126693347128672303889415524626549219874665586635833501824739554944734064184013191202176602361973952302123697788740462990875085120523541258597612315128332522477761973353661245797218696415547905532617638905455892950513205342994075499255613033581080513276597572149577413334486548071529046748428468604836872056140017432138471057164623668867098402541643241187843964421873157111242640681508886304132275354542119875747716706028053006773796274264141482471950872505226595654675517521874673205137597719151994052196490409135989777021926015882641437894118685859543453862113234364780399682580424774542482899179277347957332847292356095328185628597757945776626829247088148974583240892844719243986305856582697881560614015986458972011672517315745088337897105446525564891864574539288366420302403372972608633467472325201828919597212704211363147941316914153025128309766637472084884381534238193113446918849270124051966666805628719426890882333281272500556334416673471054566942836815266701116158193697061067488905711535756491106642015707216062536987908195354963342928550038395840807308783354357208648243725308849439298541014451059589935305160879184435762852439004977402074484740831165578499250365357808341255306247592898285038412213385920394259488734310257734699697391477866774479001557147696903856765271714578372877299791593250192199458465350386862815202329631802992506609359303638019176703666747475071500807714421835591405993795439425748329810881507135266389180178936989491399880310572799180758973466297313383270911343145468624147639656844216504894441724977899368105843672557005658496793334836878927015164576491095964865935897757814208454004921985949212122021312996077922382096977268571295064482205630152374842095870332187519041731742176405142084910697932009247082025079853775159019390460499054251671824100882609331711336016089364142125049898150849611149746216434168457624356637163417979651886421997527372224086140610768701440062838600489283730868948909869218415700724169893797247858635277431250697044368261420229684891748578370347496467456197031323397032826184668345231638496745075918321584589492327028178109770667123490053578962536405867979679646497205052890471722220022748650288542724037481242798239119799480150019524869910851127084551016716633945143517031491845049368014575209887149290817020662091923968815924341531011566604324630241433793400920490968380187713476022676589450153457446774440138049660037189448755232852913044551758724866732367084436722478210581278170350728965057694794475672724529815255479267246876153047381460022185496919632635783839083379669337664864096846213728642031788983087406382244360451355540196821356692800644732641685862103411615830815579442992853013308397325161497039451673587851794114665167076968858560503195243485176803064183933449747060480095448906118636104168489805169058826394059300512612243429084465642248101645402186412753760193884143215643946722434522131875908696003056547174323827636183818157692065705866830749994984154096968435395954491947396029687829171052529104364755080712183092621925601175752505608664906947723039209533377806872667967663920119732176593878440239318977653583692968554344810032803465975938851538081935578555773639080524121866960651629570070076639700593767672312685832184869051928100631086384719715425086333114148194996264892925317301814140598755829272160691894045151003566714585355316497993777309141278727245011869175762640753476365361397458547010227954032057092281944654874035660589877837922259989864271348068597016189461693706603984943303191716511028733272394158509516735520409892968411944874267703167527762474001489759604914756664189883288010377797735856457837245990924121003120400544443536783929364801997516314282010309643995193994964764198669717166055203353821621238504786571085978882971240091978791912116212491697146698093819861936238308263355643276607555129504370157470268195251856088101315097881202873212529018612339334702369773672392309493367678634205075547593262523646355148163703912025867054772737870925894809165818425352912839187895151333655574766830994747383574538652401863502153211832012927541113495452991768391300569813964973876181442218490365817788484691668807766356014831360223835923670600480436402724786293466596645632745800308907701416559249772159085740735194900548114561684903582544684621512037689293283218194304806165958129095186194392987848604523738841730891440432814487066561000954636635754396657900924808716602731002474788048757982498739992347848754103909306666634233841245655752410499762208156765819929320309150716833860688534898636788197514138661870965739340959444522602920200776381857472380557855496874168051798412289932363877175343282379741229419617199171704988851187644833031600953639508814632498711768639277136732184547026272463828162379689278652702002229759737390483590311142266850342244464816074553911928237345616650760704942565512023185703301306183103192810816851718782094892746975298012292832539366214342967811947343847957624916423268750884606560356812220618050334281460257876918487290866624009693020265121483268181336970488002564582517741471832361639074365016550626675777716294885088363525600604946121394943021816090132432177341175157579572593465342553606134218900500751293794530262309890729617350596989335489906615613798574442771477473990655723030789870509537043580856928553347334528038179171471210707951654764101732998157893520248352897505521032685074247837307134372767512881530999634898711386208723966528493072735062153394080440665756542566667893632915182069696167437321022809892470646832023321439638323261666610648574064904122285143558861883089249971449211933617861598895018496488220205338478251242006147296001950333410765402332899321623028621755550906393370659437710632879012657638706804552766481110674363944560240531782937991842250782045174280379325482849078507706764705285485443249246489148146045638708476268849222472312388180657302377742142266334681487161942821526100751517834105416849680338075949981369299351897571177032113325662626705601358026047041088369772189515062233295832499931521639995810400564672836004529272447452267362622324953006196252027509148112870904027459255532811299307368625557943121363520944933878802237499200027339349193644263144787586263653911027259959194331285828279129416854108750833644721936454950275342777060037464810953473250371046400739959770269103750721956190921181483000942295857317849696239725700797044781166049835140860777692455542999536618917452659515473005829676465711130567458417652568403119154179663663731025295577205613056312196457574606623687259073249585378505399035575700862078712895150684834211992809991701976476132929742421431424228910094166235151379522317857962931868049811323240695352983792211931891525706841356229674792842838646046573512969573344668527864706963363713864972082057078578863746452380978098145875266492712131172461790830906471643976089579774648980067814841091391790459313182195867179660111085902920649150659473382640576665263219204978575093699920417628932154410320583468724975131543170889758203923786061288882255061793836617101362582635589780927874877655891610113341466100637114681244494420292707888402165886868404220474008445007500081954902309893709699403151788053392894958347732068360259955378870087999043712862639300256117551251711395897627254803341307828350338473532293790135856437093805386748398259726031558079745997688964921514839926496170985424196707674592899712468597050465021305742532261623493265736577535348256726858657294225001990037153801296524380174652814274248010497415139402872353899154657987844806224353686547897236845536157058828702233748828604335207355407261754762805199016082934184509079663189752309039331094966310158781766220030877094030784601632731393413485447157394216912963212112127901937851081492666586942447963173988489125188407535978407381049829715205065454675207890966925161828851065110810784983159202724199600607598771034066040745987067641914798415978496130778563264218381151319899375436896049499883043384950771801910264629463996659031658820452506275625049648759793150114180019319689786427653702894285517854683524193285984715479293979098576370350950250100170009917516084885385224883849016418010717889045124764105835878933070082210636928024284229208109766203193598105650208148859372252095912906178140130369970103164532125293954452504312321809949192878054230730110823947455339451999192854587776375086276219788077519517271148287899936466372718150392323278942743550526758357443453667128176456050388387614124595856828717667332468613322593807876794303004248758027431530367554950345054805047778690853816816170599382403698995159484904071757725524053676567668704909507525440173649070158250580238692474833794261807885060303665247481598594884738691779962427175720007506888028807746845523305118010218573991544280255243050147641705698848305547929901929309588343202248339631475742061901064053481414765198892607433070286388926551193472862695355559962592520474635251910113824952887530533911446524401220259316373772322875979167891349903083359472923186485968078571539072297868295377488269381258670233370023351291682760185369700919654639162260929151082515050486777147768557379409323569317620940508660222065790777450613139007312588233415289532101800002518818464939199396612088636968188775276928523180043340706502298197251065448387041314862727059606883357167623101052770742078893699127643590802579983189476507398680090119887588160595382852642833278917001076744405396597278078748335422662227964072386765051425282484226359770889127430995858453686503932888735461148964846089503167161454719369522558389832304801578548567516676520346410354194135077190095091478244025720337807026869529140284772152733933331697415996826391129663132946478696800423864606485991617184756265600027992729281486267454393227458846260252321220865027749546269556588126807899070710667019852185143490993669432695609937737079325240245846168164896538367730089439943066528427821939704934133483876940737961256274890654439182439261551140043476872941797327622136871111204272705638612819930790239850310929385271120232204143368908085448083018531321028584385978462881189619250484858298827921026330184348037084810102262982634729821157146125721404783578572128220952161906909507286221935880484711476182052142233748036928951648396756996710445061976422962315192738202558862093689813555855284322184010766246620239118119353046516642501998882449437561321894644658231408952526874356735286735606503397489690278668854715531165912396406749825869382951290666750510568515958086349069625889216993760281882635726655333569497197718814536216335425223701255242698804116694938714944712161579832124805950453201342680963463455440211810667774346334509194990581619914939977686340328820011790265566719099301243637414871053712314935420023097076739123172411884778148955649788874157139592990293551550188405332946266494590574029920006636741404451884273201265635809662812311498802480972656653063156921098486576581517734812309851157546442990984064034011204438497996647481697652869987876695350155976329065501957329210951992676747610005694592633914981970038113393437360861573396572403197736367836551098830601497212030017423310469767891212128181802331836439385652223771439850307584888902902885543423030053646994150625189173340961947031720692121538405541003088159914864831935941910973148909628325668802128748502090904909736306548210213950106381172206497715998455051013075544039731956639755926508689680712251324941742964407915007970766280735656549452889343232736747355563740439157198128941445492340736295663105746329165675870958655605054391472784789109464668187877414215303539211213873075488805640094163765041546787560128536951587423989413151233900249720894854152906402906724278826507801941677973514202187072384985246497313271827589260870040747464875277054097228648882197134899024922044071709915614038221602758096776712798294565989051662335283084878655285008577931632407201649616925990060946120717645558228458107801397305284786655173277340028976292717616894548668414070977066137756409158633807190924004999454344166920771383847698735175620276771940461616256044582242807469678993484571161740162242790859488809524650754259617660770866472049763773053072524530583694104722015676587972317155182703221038128401568140094387631206818001009985346788973348510959502930659469281510374309486193219417163289051658688793446292062461346452852390289125153899782090288397573828895731511403563829815345578702995810588659650281087187238612513351196326645686046655853506050007801977508167362303932080523982189678391323067885281604729788943495176543503471657098656501310181321105812302601961705565480778850370575927475386860545240047857936745238905333371504821141227832729787538144171416684531958909333480149226839828036665171988706646926851561175662235816624967903042345644622523551917056817870844352505871618261577508726073311041208496342726806119400043992607604681190348718315037129132406932121630823237055250321925602415344265961032778044629335190104575029500692870996753429564885597057779294711927830818667521523003874695043284153525208690100202737221134689128765319362744297068720452352011690446216738383284313857013151885577925222917837321918790561332696769560646817754610218896589833738982434079686209507240280358903313097683884913937957364971793426785422563839756668770123387013828300311267989843762001701148864137259707908349319238448925085848494372959195031277036947896078844014761888307187607369910226241571863130955756181375993078957201847315344773602310305374290954476452710441914756378275929178807109702505024446501428630793038216935970971832476680631125107870087464319587726544845150898490711350585515976892774297478756193222798521352342192721737219522965232941116564535047449543566800683054976173310961961339734412615675565890157503030580466734902416420777765606129794997943648091954438931709319942881730510317999211281446579189622015589484431709847613633835066697419282452691129741759400872529712030855808782165459394121667451697398837484981004858941221957633033629848998703074999342525437848125228496147076191693778965783957295661083087762116330535680825522889871893379766100962069582022436275174638266803839568284438303219114976410503257317680831322019175998419139836583191732976172733824937457884183634801250526446500871662607473604840263009778703713919315961298027982840895354437739989001974897778022995065236777449172112450294487852209365056032479110643053156233802993914622131649638973379745061213858574505226392629407665671197721903555109484510634018020883677950729646995127477302958191419446687381762334265758343334826421905247274095623293337056679708792886265566304787516058293517574987579408685132610528940801063377464155696168313640808880198873940942352517331557453497410027857506612008635830382515158323953558534600879158113080486933792638636752073490196719843828385871028351273767301335155978112535707391367014700101770769527766921267562270034771619368385317928652017834119185118712389191502910085333733880873302861728238692483651294476014930624116097545203838007713239189949102524570634546695759236480677437981148948063863238565484384053919338388561693859058058895507198072766253356185359619666715210349250180113098483774282955032090950472727701712108604924074712903684152614091494326482334774561424476241118564832532055943822124989544699094995995147684307142221960445106722970429493194926798186144824491154105730660653269800538282097076953104918508953341075883044065287192724073948016480791240966667932868825243352731848153598018587176280372378808614727662042530046842886594238543625025686008373658422279165215139230963079074561431684246737674880918814547147191270565022975192128261943713020337823893721434455055782518753737822836703817576800348228846082012316397356115056523201170966600167679550234444420514041868484015659486027569789697284430089070720395511140156968891949120364955100212256025429742618804694855061544416098026368008684496463676236418450370468967771558817902452973086430722687510022610965122434977837642948791138629659000713192183226782819466293107088828015057088813127132955041090639745475507017889457570598198034793851158876226638619343250686343659593827648337730713903074881763704296110842115091537930810611085591205729066762769422732392741390245759169180576903020314872054652085852567843252690320563054300526885636510491045306987407265206267013466004017654589048450061694298300842604713334706860630395918885000943864134084566868567832572931659135753794149186899369532545520014550339613695496997800427404751741527761186240945005278601957464654990002331276131793028531914289401861266687985362589271689717169309037533462557697741858487401749497910344015493089856763505648840928057495163740653847446461888314128748901677141582231453483076759297159878109950861810420131596557836173086642835851333293210315222722064968363931209014375906673278073481972224668795651927379426442008562521503618629797247324932798617427956495370314941001813130164216668390695737009651883608179905772571050846678451436251662844356167116021940094643594553818414729568065924422066673697404072656965038431981940993281476387147452225238614338156713048570041586069462293122465613976044795289388613911672579245008706245078149433441087534226423951952981346364938665182163524711351661617949592799614258278583131332331730918730633573447365159351952974441642530463125293132423161893616642764892471983826405291479060662308291960140712779786709465685253455117608535596832296235036067451736083633240355898101685996079609457650725754350470919252902766375376108698574597109967916921132996442017562253537572803341758149003016846133189185104665126526249210299739936080141695227599658241103572513039323441236999780860614671929565702987491849178606954545037287948697097005281316971733869282195031293155736334049114758969285149367900347700332115536121263295512694597342895191268501551387687119927361666813951994155489698395729484342469418706291610937784267539502835662989899450594649671467794480823283273230778151916411132952333800117541158943950213188069274282991326267201142444592867667843406680530305918794506214473806112523855662474752007071885812830826778931178699223062669575093692566219447112454264051232124124367348395351197708871394065681138893203016283394132042105735057920884258015160046759864601231779031353630781836315207306614505935571826080977431636806537072802007825217098019327898143005483640669393831487147677638985346866381699718408751450404068431078321060703268512698841145209512601363457097022424093872180495943999470133042223433102476957250956648470753101099587992052122962233010597485689514005628646319887065721897741524568080302412881424923755951953892503327671982651349310745862557230585240551575737792211246203111277305819754846718124847577227527609568603439945034537489400126021061044091094521861975874558162578681433183777831001030655004163984821311760523485031115993299203912251558945181096226895238082990621691717899443448934571815657381498139341514204302547091559826647144944080055672626176162170609746835624659932207719847060708041613221471227671053604095492505601297992379769311721445000916119946461889847304127779923928109517120936955563845759502482148699104024672214203903602229248519877610952529196645719299679354929284059154889153102637082183770771128238746306110991106634070002436453510036041944863805328713402821841974477514238339090026419483127190406992847720421691945999531622759499604763387117403162402951436131234128911363422920427864830637790612710761044196780197785547626325630791067013365334527199836456910312695144939674945145695785308463496155334926242188228704801541775003816829441143128030755489588827809032674245422419767774790364617075198190074556769157036239835561401605114725741248362875897165644072925836263546839938337189661781664895921172707029752401900288441834565692189444106421346912634056109961925237992491812145935857941730038485453332135315236571272588183489320810015811204205945231045529732159843051172254173048057918332855886994745957193586718689915278084160065609973014027794388152995997788972304269004971666666818750542071793441674072577752469132723841326859391633513717913655848807187897774314062589433256392395224045448529697897889553066588787093407168469392234619710164525615195323157365306112690427861398297342337715787291826509145690763836650019558180293003762167550749649660037876300009879836129726786676706974630616573341452761295638708717358729314728649853219469688992648862228870155580626327322924149451200991172304139184947388703986550968205259157657287821678128209114541446335250123931830285206796025576490670211317088409350722397152146058162561065826989023433073265069612676738942568481578249497690103518257366329267986981133133924355947977623817151716814112654257878232966219156487823733768336298570511746878239257451859304884134018565452128242761126622624047481181206357351677091956218262750484497589441181663457488131877252917521241476731584732787695935438832557677251990178830312430146892692195702212032906904558107343522546631023493176185598331398577803853838076140288644959984786355061543143985671255974165529964529729675051741273848023154910963540568156567352374475342275019257488283595160779684523613392711850795647940175146180378663479306126151344467532507452269866356095180939611334728529647610509779195390490691770910865072960316434699727224239511785955230127385210244983960137801551125419043713407529228428240940854941698896607868713844997074428151231757120845374544610947843118919362013698406450921039063649682504693304721955623848057106549170187632083051995411024444620586535880474779239349062031299197419431418310695565931365767443058547296138597417193696925498322551682279566803216774184777839215395379569137276266122010897528275439783265494093696559020122773806424914849770810218996154322821783036122834314656149279558236075439816522601035713193209891182000897687709516045374888050872569621784348888237760130468650277884618836879759799901417962417123168548107664640562493254410580390727409446885173451627337310750152239120765480035608875463637708846534802358223515645278221563859110909681824588809707305078262184835823395755033086842262375708084335402184423056598290297592619560151973213646876064615175230953968846465350639442914102074513338340168302284195741356697575262014083873808327524320722019405736015544660112576025459254083984555027415877506160892544260281247049887824275015530788573247398517690739219516222417389534518848091497291233256073176603286154489290555742984028963489015759370591129254296508832714778497756969186633748830645503536136172715010947557521532934083430217076651336192392634212832533490511607164613437129823066953480284596166098668445459356605212301690585675094908311345564450699589736850587481999013429011167690822327522339334751864448748456929956413448427362702988403290325203487347323616414011238922316708382933157892004639349674534554986953138877717702506994223551192878812899700639859128164076332195974073341421971187835412066936285950289924717984146372030045661114360838344184895702198479443261537454961624206003638107379352023291827603165190684952822852160228916489053336827750939765629708182566496527605220231631804599562190977528555758803114217451199745607809926174403932882512620792066773597028675910015276823373451182535553980084117519668114622063651599511658387253807222777531156935976835736612686160271003642004312865359947013214694287390178871518801046178258451589644731276694554625820519319278832739679676752260413887608517635156339449254847433891437622101490607375007475416449658707849543954640637505126052726554114705475487051200084000345397200855124867329389073578900793728657663443748474031289659575329083146008676153047464742320719187221625510165509219249747185171898361534269684416749864670177611198889128956264910516389499684837201139836492189230943432203892135800824274448859910988879915029337036038466622326463420148063722009921125659740045662075908245929743763090175355787972239231270260220774791112699583372984532330000409129758504749701452696367844048620542693268695609372096350044454343000004962653099842818939538201589784554402194511040916635517287609681545079077524297084268911956693238631556382441324483332938291138470400622397625694217104780612212004866482071259263175981555635628356878239766040589600223346784515680938942714813359564453300283249274303865219726413204890252635705601781782252606969953314127268085853988517811127459655410203131714125694313888281210019338584354108403848360887062053857174234715636019931584670238237075602943969847636452450243332768980645600220012264136988052154910209766659364718004048010399218019628994806096964318588547278496014960197943776684206933333425549788525662347706479827703651711681560674242960297459659964289251005600987893783550113062367576793862604326143819370291523669733381015633419983963473923077294187425277778486779430625245218118538066987848454004079032292887004284242768794128404279451838188274997688531329899532274264426971216469126052179557637248600450371024848100188862798068650963783094781942693287039978793160468593688712455296029515580810021457503280515411922094722867582257630891519371246717191724423816110636389265193966988550849468418799585362987452934920725916041038547951203944365335915608395178825139716407209954576781863056499874584531835365808253349376839672929383686043683704564690374996044267191040622612762818336033105079247704695455208246150068289820474682916499336353994218298868523411969456809498067431150325274613153067052685291787952729845089692627319873894666596262602896909363170464560146857353772565599509116757835840257578096675974445812592145478856840352295709891045811196436562289794695512954418928207524769052442025755097160303025967268283620264040616071876546659073692035366728480044612781686404554765501274782867006667398876584565655014538373517842978662763789599823175137764280514807407686998672513814273199936986351194064069272561097436489963560364733838086952323871571596249095620519627646489594896487372610696032878092842556507185248518930026296729950484586723316211112847905999926228273467629464504666012981864645612172108374452475280205228985285946968210722889043989832876247483509064156602259448404700719023113324508958138255994158946129671713532022439365612170282521383052626043034543163768650614358003615203259925072653866522350782318232611933640087088668089199211468564329436307095992649803921602340575029375997536730434887961472925613178883141049838932740904779027451706877786975660184393869706406094916091466230759130325402396053813470798914095613272456255603854173606259699576299234378107504185135805322118751918704030276720693840993777763390293753958664713455099360457812677178532456932454589406246885025558222140955603520166117408495845154270173603903897486434710186372706823657122917260620172041428811986256376424985776999373285753076081030881540531023249679887057517164153336758452556429676629607564206529634016222213897921110472922277473074277202773548898153518087321979919651009690736724492017887063695718891634445754419979848945834605970149165580330934471059827005687562031777552622794462483710547670529487172059605166355781266985386021768245660178658092844150259757224357164247842875612442834204173764867426148207386569421173289366830741308551386749125257802725485596363622977814789247428400288101581989649724237515299404306506567114113910048123232757888369286852112121078034739963374306058272442258970803409069067202515935341142885137826347071414302588177798726254358852679594402132542916638412900854078856727240468370999763537510589373865173720436346537245285938933622763509687318401283941275559146984311583668721293877141645785382326314857629388881070708339493008876692663606869541605304649385221945684688501214766260022864543342866113788998329345499930299549318270235890548267049017607666611047907147129087823443372267692909698240860246100857514775700977746252293248896290605619810233209196033804487059884925341653540504919729014896114290125753559034783070449414798434642826445755807237258377385168589140342145306002027626693810909488851697953355153118493122444630764615990065818276298711624396205335598790547793188487640402062896556950899598366126468524364110368489602764716232418061162887841375588776805616176485546991421614733579060761772903864622698354827585152909802500546300019737886662892377189309481772337199093404595006401672560428731092445961434382969720342461755544697069050754340870069340852430999484891453887458534949844058677272190244694939882413688079704812611095305629936507444402904820698843992274833566352119559659283806265556785729426264158890327840053312257696911605166363976265831998126893929123566741333441663012185411397262011960239220620091616469156517362482524123818792625203956738322325279267775695026816981568562677506539156376564122660348350341491289755804568998910846956590999279756333784084210880515956694633077443939743221690042905136523949536182549425595684175717809178832884354605838915188812236736464239862492047480599616086146158293503399939011304071597708867124158956819037276266002099203372967769592580056330223074188548366429396171034164970861196694304912096705441337057980563651281224537886738558537832695388980084451870447445711519024797861345776895574870541555572203698257785360619591882190700200795910593890887161412419813050686537726708258864040782762111671912308309633452911670040215932558955020712878514042412745349913511766026073019932181587383152846396566321862856449544223243062544982779162115302215370430067942543437803166770943461990986855108481101101147759999489663331955096615011770001275984846706775859847503760281620419678377276338337648708834707358465072460750138289791503651059715702619389583365049543271730510964683183504808154932009265256683875656957101151972071822029840047326825633834814244396677962638789960956233468579511784891269842356259918473512591242275847732635872158372243688370441390857203311886569261007187041248662704359267519681384288993808829347590888296266483895876775943234401156627635699831671074349524515736150344228178901111742674196165834730457368145015060381098678249849558350573039788989442649895828927581094294579606297304246656190552216597322099237802110160125428993640135552887961303565905299198639094105730585399385823977619734293022175344036969507303122535366393780917635787521443152518727415631550583599140411250277050401051157967516178077379810872945679790433107518374017100359040468612661888275706634862296061352834495472409003727304727976457079824450567736021206753410113587146501357840016503144205084833041759960318132513207006695133047074063376686370597122700566456824122310388459352011641719160342884197386759760551867398789014752283681714111532679633539808008300029896326193737623865804594069969044114864393640757392763470268959267079693405234013937879657797344774340078652230226084243951375947461878305121226612519357519594007221613680317472307882578384227452950620363938475638121107645154123054553048197182161688047362269895082932780606324351136857245636186435208474044769370035344690355118458652979406398517034653850528034833847811800504848858683844902122734862278085122725354610007236500938699858323874000945452162214987464718242166555593746069647952469989415663550581764504570742711868046597507331052242507705478462449210625159043989140710850535556354981063356834904968396372065242432756327392853989110949130092831438830359431436761879764321554499535213285789012844282255549907904403032226280525249306817527239389031314397416417815306772828863317932541992360533660822783335446043655742830527729632294933710191757170077590835617449386484904315230851059017534104878232832591197861760791870187557085231022617086772343168525234452316755358419492279945864149680254839210574987067260952502889060215940696990164601001918530259320493642478984558079450554032082124277991840093001542972341733470429317597864131403545465748937168580171976803579452625124221083191878442828697510074174363389558841653153777098731351255086933865032658153096649211046587779635372495638862052780123195096991595674299853010035181470653871277336650009655313704139394559157943787979985357597972361121139949682939933538190401887484586604960906102207216187060745264286999104958206995515980045022637825322479358579298154611048120801942372232622812192827485896277285874976642020435184644415741063302217289052654181503197941816910237904950767948064102926869942128131084287090002055808959694786477257818888154500204439182019603728125145279866568432564049144428789464995835434909400584026246057667843763724178150988660056655771061267378870673904280879440563812666040969858718799169725980032770765198625000764923970988828696114992076931358923768342941612790339819178589145856191349985586548586000624032698734149338078723694691019125177451974568401009142250372274758014071490609082613226900701060924661080049369254380847008547748185437447036250548177884834841602475136689681628861045048793502195255207449687060474908833061047787392103416708753702616091064637027819872998212159139091847989039845706060666305658324626518967418105710988703574698347207483891723534568986489926086827174114087402544676044337751542980617789973845520439201365546366256972106311297102689950690557377414860877155043602998985677908643287342595756771110208411055614297125198408353807527533034388704213207460518876509583600110076845499867153453247254609948035807627563102106343012455577533338426657591485167365156240176803960291331068296365834448287455877847160014542700238781589477745609663472749669603633956907741368560502509648392947800996374660863141603940221500676753555390433089646150536825535371682581344483797265802544083067075314942939692537463507404392439287690373619032135081654124762908482075114046776249082476942975370166691504785010748054137841647150325708050769911171599940433582755374427014233331104624792514052123932358291044308182122176732373034549338057444374985134471111997473560219766024957249812055945314374340588371169005048053257323952274715632689467893066598297998280998837605325566669915517850845641971831575576302255901397066080560827425845319889514734264752598981030786694487473160106793217034211393152809784036927502825486074237771285435574672525359237896228229742198425906800883677394569701642484113903441591562194268832867638270317993760520780033129490498512620420003221183020726022143645300439463840063877999459699734755221168197197158991437121023056440956062951157667636182967361677235479893979280979777672981662954760979513269236415788262873999290971012193308760969000199815637561465934984490759772893186033233546666445129421774272540849891468434514537214302717476819700510929186730479802645306832760306952942107331718020625452328999442353840735301832764973919312372188495118166495584735859912176926318598109569221998411359438950382827506848011554770100111119495381586949580092697153562476151347665754302851050291684062453804973105316934563094106902557909876280832860178492008501589134952892194781810080368924742261375358561480805862791593532228448358010230842242594174058756141104937585238292258511491163195357775289353955430643326293062469539222338423026051665929760546162964748954805574399464567164748498175934387898644895099674270019035398432624506076149102558503614931417349894903596092717762110129567596513873376577966618925917434056374799443601412078497028148579145837529539894195447150556593816247124369637295079420673776996401533304176363634766101662625497395888884124509125133212763234562337716504540861529695327827837938883483914226047170784552459100484397161833451044955758584197800748350947066296737988911993528828681323962102305648528505584773056225375685928384604748137241332181993958626608460412268557970151353720355439397554578986622414235117535485948116034226504393679714985055973872033284832411626461152635488676328324478758378287724160947060662785181589901969650164972102823639002492329174315020353135728849284701835996551099474473278272686634405460977738057802257425040556336730428120557347892284736290310209874660064895375791825557754314334174965426875519403643625032943992706355248184794882235614545789487810308041004441408607525592189190789403611708261031747356706246428164008789985359632461035763590481934829794671197062347227731901416101087425611743529162093956340106289121801226476153887999451532967946080937290248872274046399546322329166532290798154555388890167741254686283531366157002433733687034537759101863916624760398271694367187486221882944052032889025542426077115547873734839437720644669292596683798047849893291980611620062626098440067542694125564281537448260423477971404938725707247833386472169108309708302052351646906747696392127576648074869432109917178146464746947729071630715682102763729654203020891476246287111243574761676479393230596876786266485775923530247869300470570980490247763205758556915137703673277116015452603540857384951894549769797336160722966861963006441503963546191465294759541512166612955933565764001974580256025707008410356202960581702279491456993589055858645290158990128138832918550463148014353917154526069354565606550606628199998889788081494438152446285447698483285689987448440795287090688379215501490700051828527323844825436317085027473996536945171931576445657995147605825739263046178047269671636363652272074264508439601015698424789206998126840536703195307093596977609673587026254109509477436507538490423413974312343999907371649108129883048208744264951412694828598865298161961823192207362557577315642121920380601685714666375539471307042393888572475280161454517994599295386048402923177526929680567376788427531925561809899517107140894811075052529850019869160825571668836186089238648361506677961032426869248650190559019359972854541255831308684754389979575381988766845368690829990123331116462097564444666762381125799033571945232864618247450421243899898727945891750154744334247343934787674164329537751011606975065593759133150652683828626076167727697831220775937572491601125717888180861310031758585407886148588012162380317900730890818811676547204490427563975021288357295040170233900984890492984681662210359704558568148912150246489245198783597110533887557140692411375167926491770424397917123695098994497936792710803324550189899440136613936968766207536139209749047999794908705814634607753677027818285968988353205498552676057121258147075320434091761149128815417350992090334591422687841197999950369869325457611616610136411813511976321041583773713500990167524682380707481408147132385910865970189302749700680096488117957903364714289120241430559371350945840235756408531051506442895348046466716324909981078417333196801153105547379313679058818118970261367222581598651772570859517394253219826498472841288777407649005335498436483066039149307300987874587186172958319283848423330633329235907754674218113957869680319999739033340288141505835607150553471831053143672587650776419358623027345331435385631227341831097688526048440613468678930745696397078030877547710024950664792517942707899224970754432990979740590989569811539870930291207590882185199204220389137937364692190634884119157976850926380586964389332613622650197826596042480445383840733717028559625252722201418436948457892784739394492918112009069347053187454217257183376665580224283021486940923993769944597982388053689563031658415811950025488629745404641644624046897375867002516090672162316791092962139962290685321826637344761094885109814841858431665581470152464762538750373051307739297453962946278975784859058197217597744844692556340204801241510169161288552906345757978547776566671125648105037812761580857833361182592664211298140301454817277150199468611571933390735835670507403331808640720600556900592472304020740949889680300672964210861200174374804038910699213781245517532117500718800141208754131081349214746661085447234281580978117754603767247240382982006168024122916849042566970620931879367729708012252380618827251434434004608932362189020753316554024012186375426009353148296508005529922213204317177666823779301183563774874163930741035925004120512518365163100405597826158817096156288512591509074123532775500685553320202152879088445453197109835771337022405258777719487831352974070318625828387269868903646503821610167536968894542515378267885106580895828878867222007907092710509852609025903319773654132548412263214977587978705947967047497777385300936608312541284936145513569974643841302297687394223523778081935459726637180836109995329623857297539184611026166108063425828694823802504777154476741582102627757153759172707553421565815087613678260808241328984147961279145612492711627282960058852905781187104309503801643250505995673717286283337778480311624335269754100727061989781288686856006040973331902425872585865406293600354116039635357568385844922425112634765163240521238624854647266487705734542392800818597838468609907683924003746943025219324134313949386026110144921578065078103447027578561232840204890416295793395263275128848313639472836792331419984822796440008527296342243852447042666652421133465948268162040885691745168138725835342499507210512800804735081735978013639198383690759828058620420847646002126771063946164617463347154142789072758324309533285995613557416957220171841886241146156190858910387090955000452077139108698833395855032512269173094458973740148338175136301115837630542166564139372139100389557336052103229185778553150503092022040345824883074230910359321203542481457589900604151568966544499636138301746060756942612738259963393897483719998912167770035101389454184796312287178737633441049354426224350710790254936838452959322817010575511086359880773216399670746886872360156520359798747602182021157296424306151376529582720288205337042229031275074288835594579919099366129309809665591821100582844513606380028103752241869671215522426426406255738386760481313666703437948725279509018436073326676847227830421973734574000462174291679208056023998343029230750264119611159237502708377007905598085024745326935161563161453113243663868396644655856768916019630971964618723299562925836581240661935923842503349960365319243353619457960149579278892135017307477850567999166827708689070545215038285178582222591438623270706068024637797809433728711997075250441334748879684783130286715463401074062217277839705504652164205635962526241743494131492448881909372343918869631930885736060493838892906216500732488152623019916125741026822987391186381205961233482634589537009118723687490213557857247417646342303645652494570971047347688620690575445267597587884133385247323278505692841327098490824042658622247220438863526993908981105549171133085374622333139999671799688274315393508481593638965287039402477370726866786357156302928754206478875576553197165901055058231727987788396324555324441600758321911267545260888980710111419476765261459619806036024478806890503566644930545160127330295317839433176375634946633744002342775745992148582616406370203217629807610973440948150780446938421943370174792690123807393828504181070548191854672659904116815407471639994318046044677909029962530629401635108584501990119062983834211801722504564022520054803092555073470919833013971562252805281926678727175074879848352892427603781769155713054172046265520892347041297085770052817675387273425062958730487858342593357890905701551977820682673031252373709778779121600418184126211588721401107239753016398890227158607536099942484158093124541456986243950764611922171649445782002160862483918789396209437310072304284735879234091537802675430726459466691596538197512301319760446456863751805234052192376529121393397561492628953494909136715710340598545797630425932365245965490138887742261437223174344287587909741971870324404979169612184940962391596631197042903454696351515301348462533388968800682337328049782560564332318127940803276752265486950720583023142973763455304804922701903058568864458216699722048600329604871740032294273870091939514009498888059565287262961301222129919901936375258213140380820159759751625609358668549468794450327699799464684186072689256749474703943483551764741666106956618999187746974501186388764845507757307979368146123259595227927583518687158624442120030921944197531532044121928004962156187988645735127823580212578482604294154334551447071647142124068982192191523555062596907777024066757562979788712864701989276236442092871920989499235052224603859358391522215251811133242443010928000979162717185406249219996610367959776070605985149468839847460731096913809152085419853392505017148558875095746058114747970225983726803075008612920900626221719293599627673271856488519473733974599411831951429725228728835157006971734454797499884255120839975252897877641443474497825433122277265339248632511149288836391948523579567773130789416126778415981872928186369356747523635726085494574420693527872395312018515785611567108420490195334852908746922898318159324245522404203680857873491126383947471644188062084986848134177632495926908112864376770095209594053900417064996559750894165680534358435178481188839137694900611475453433870858900567941580406250204695133704811732028813411306606814525436703774972466995035623639789292723933323775281571056660543464090178261363038170025563271900127663273202105351856369839178939068533104596378284103647880441036726938434873582224038033594262876237928550166010317890905416528594833760442109857970008459926134640991370067442785187496398477297791224726365085681751078043129860724681505192874284248944325109990708838257499659125411402648438789524216065610796723190558912534567581864630273459947504389697635625980791031168153929779907806008363058993255163496193857304409594112846292462035644257716807570076913513214302170455420361256756024985823710986546075594359511270449167236593818299931022890406089905286749794254386506399954674943255685238833604664588113625990255940816858965592120918378463956594485409930775590613781089806643127783140144973450200645998086829869841591352111805986100828359192936890183972261004668734831404963726115862920383122417901286246910561351272889415158289311729809284219046817753290939768189348657094930667157813691361569781291313661573777752482454887655618317250719686255739943444373575438136381987306308719022307932479852646020678494811129729422454652487464650808717418684522233554398316289981678162757389640756775519113966196815494967716096505437679662251194675212131609397671835706846787307560649628453222840642145258979040018949072068058435307520283611126742678742145233294915766159866311665974154827857989769067829326797960010436059097336263438045901481685773064433132388809088531482137832126986574017435815993888006745162986273036304057305946970496247667643741325783200567538678438163980405437735885923684527491054588517861922693501157707304785120229542251634750955804398782552736969354406462294157558020646154292941189881167342480823620238439689394427652538760329806051253249343616104150308929498889163239944019734871343251105415771720828403334126091523448450118005474414210786340043005951466304262815070921848299220893521219203685281804457896900041582626716470603022833027206711793767803474514028424957079583279163349351852494565783945607166004354662302376502693562977864593884703326424686911985131781020555411790703622725932796331369660619831201349513458746462276122042798282430569502206604594597646246490811464222891427392573196836134878628436641837277594798285916308963587554428379105812358177381009898243799366343478638437733232591473716524757818760258098903244174617730201532411859762864565831434376874807817986331454534456980781394120924806540948913937980266962407690601187802030715029413826263314316067774980728572907803125524214567310748657822822621344241434080828437493248776621303518730420228791342554721974222879630956951631475900617778933513016260456922895097300875002108106543799791313531970954088072878530771267543108635022697951237753420799092242291580885685445522322932782657043913929547088637417882079523831388139959621567288844407554104537385595798829558194786101754719082281266756106450463915881466643305437127461694816690462541494753627587793158243900821859140297732349383720473762581318301233336983475826171651342829828723267464157834741936770985759557977459165345321569990491811714955823256500888422767418026301310556311125650763104508463800827312690346469228923406639027895782737387891856751857017615082320362569711590485431978672406458776327162681960843157699577638124631883395414740655732839976052389063362222533358859671458648837118780098078707788806429850335262392435451975488993834383202736768340203474743033363710326689015697370158036387480594512166672180938526920968216108102073902640914064632950800798224727601224708524485711542989509048867360877692733383548909664544966939241305780925098574456119569938468711215486912810685186867497531179544571420541886336432620500536710020631334764059905040797798658193783657644200539028941355215562855188740488937687608081585402859327004122740857460201818139225919365094763873318904057763957115454367777958297434609416034597708013358870409251334113033694339311461001520291258282557016085682991700728619459991329489385403931982318632041566729117935019109065669472896011770206019282358736304274450431468004124736730914518948928917732441165979649515976450482455068227432109777840122251077203106490307255948761501776309782340104229808036901421383043402624242209208415023042106318379615747849538876406980989267365202752348202296975719283646199439872402347838182681617699618767260114507476207118780059325012746953667753703292247159889794102425099754466032544201530082555919242991761915403004323788240021223711988095353235101343190047669199914743005769749860475187371316341290593356927967968036135632156927492592700102944130570276856549189041942445640626834783257387884977249721385300380820175052626481002556458705765562644635070814036296651114626150458996054228266741606115888672357061305114218805138211496588231080235317879565271295290758184595232514709367863018737081433897645093535091193469949705712556034457797556546900678997272434722025355575037432600622361964161370656763822241200618447706064121256394542324347971562138993844588707585209794920553286594199703166275330824313496933974351970511808244226697693330904808532831635860240897155994650306294085720945378000701703693165162828244547138004912502549098990469175321993767214043859679599579495640075899225658062361724952516368228985950376200132825846934340785115126201648461906512536959913426994567073810916177652799718540165648015001688446988836871747830163337280285301170696208130654093363377339475352959464017236224736332019108745241769148462697338475536152700885019610960495015964573442313501198714166708138661017926229836430163780284472374950770212790351521747665187307690283237521224633746095305694251484316199604968934266900032980401966652823925468111540370328526927945741576844430380495473411414528585300092001283721336845244061395443643749151459411037080131514060468666954382525822679726234971639271579483770551395505887735612712891143457638853726030955433653642308189334875253024400477869057150163841462253235746296039003192730119557108163056670429623469298368960268047339997270794957762268074866048861998522714410130437733915239034294780586688594062392317989688033690917529097471134708505346732929803065982592291603214091546249220155069849611808632200615280498166430394543328574745970562528965698620107915061634589199675753872995039849089484303782209744758352519649006021123439185090266634554558494414109933951100570767854259180764227901138778102683102796631219961668262786904939542620892344020127188556095346925506833572557732112170111582664176440983232386597548426776762346184303963380041054282395153859914653272478884266026917835720626299994549804638709696658130087811595948600943590911111109457866267368847004275433766161326568243327245711408031566575236796617261508743641050440190206612204062622181003642377602509881742368443954857984968042339929152790141838885196849605969149988876702446530310874111172764673243441856002020782276888952357275982516128327920530280476272521521605023794868739922276009441039772411789437133575947554831669398424010735259589562114546169595074123706086835432251973036805882180044805365366968344860385983501491941298927648096724988245855897484178146039979106173482979422431710733625841339648003367089775654504927757442866170950343600674726226979983694722125592199117195878869768847103785829445829684389164119971098046763985138816397728331445183569276451512471636230317725066781102870726257172427864814060725752057123572725949016447794199362148337599381476695493835212045626716247936902534777621157204746279081529218514442694630316585950968192741346593530451400810039645118275320009733718085716145409060789518358485171523857495301810969436137830838112569068053049061569223895508835236868702868744089624548676373342940233003288294361281032308452308267385439212437213543901960190623213351775474347317711161616240455247161125283316734312151506375607338716483747252951337646753594705152328474571123216950993335816715911508052227384171899630120366455974040418549584523082461546374023988165936954574436182524781617072289591689871919883418281454599670178856260508400665739711174319888941099206942380447974660934277992600664130315991675874664960762235478480051160811097401628889508176532044958075688006550657691857456873073520088086172749726844884930499669635908040356228964314098714239842858066291923423116524286325632628634970333319320278873078369705056678497346878645039378007479484168198965536028431583962146256076038642299589197685174960134536530973961899997894197960540458874434372728252559177836702203153377222249051195557897189272604611535942239911472437375964802746572404119747766012504850373455252891947254992996834995013085635034076380927447349719286839905577917386262797486239584573944808427299205047961587931875270065972483025136015557209377312412439901724029926015816467501031808717536914081368408745333333029218912580782156155028317383292546374630089897185857203310249741281686468084489140693645480934075071948938962971103192663598798240868240088467680203277214236034530980942572126256710689781581581310657944771419336100334832503596220504649672287858549403315878055195356460480877655328626317913452333147912358121362996016277685358577216839909165428114576297993374105973423047259837377930259363132631873345339857866040469275908994589039541021696930314279210211303178715809446082029163408664423280885858571145485306048892010244355965511200521248799151454103013553029440482397815139200839586840620119790150785965729701117750051440051815207943389959276974369787396923112554087788225546657830227411886634471237453248289594360273215312445603364606581606134736051084539979194109447118787995937474087774850686040181385568840016381705419720086657172769843802560415932199352648171266407470720377937471166700666950158230032499256178859728450174459909180434690838934927950751588253863885810457852513057864114797625230391049912179645817710539423465144950122153746564104669542722850309273543663637682588983781512543677613554773599288638952221017463266389808718754760183888141174079548465990298775889642893577161081918046026434733092361933862482177057719239586732698032435975407181980820171866655092794088572555939938439402945707309110395474739031034907654982944119414696894057406240671752254679581847028400917013311878516827945750077048760449266763390471165226664529876488642139709650998150791704695073389779052046172584013929402056974478352896374961680859203975126194468171065076357638911564352214550421180235401968042972641315717254479529587155097178100500643759495515032029903357457011335434054582376312512250807389410828080173190251057568833016589254499742408233242299267370176054121496741223404069764360740093797054955616192029456561225068486436151147992850262813917262213510608323128114019976823559414779272035580896630789550447021875513032513216235357406925055339743779994863287210990573377540531152624414508747402568186303197683685372220070538797206483399896758969853548580824297899269861434539027378271828709077316068409590827265081793881230392660090911166666146851838246472579487619501867649010799808256425193336316300488264748075292421222226679785028673669230804183001822201365876653871511283699578377915814071034276544032593640855268005941605716404393468993309698105650741893165760676944244151822141701023922430078864387620694824554778731574787316666551402437042207758771401359277594761527541681877775292445065621333761771351037141438663466787907018239100571600767601415575249975428737005550574304488783013708891114305033796865268110030224620467024041759428110583032214850499578865493725672780983238837520141792248131462280202860971654505917412315363141538540133352622891252481130914283287143631208453076614638868786273725941402186130586132474333533816238414973722662338605598197243640857142914828020409262080640297072350721857900211195839565184015728899858210733925221424788542494182742348669938590635052050453058240185848028250095431740314060115455382223792206715199334596300439148441893076088363790282217219849925602213208677315590173083090930076505604474299754597270989035563115592508773989861638163952573482119361557876445367321849314664235924002020260608797657452602483185628597863744794711429027118269702211867624095608236937907405927234452089708099361611601027173334918214840645315567231716354167668441332131590525688390502668158650483296141031649026667574406675670378533090269725175559429630845258119878397534394921089005632707069275707903163101743932410811106407442547375541078291383572254392401683058305316364555632798013797682161408729729062115328484995548760604263275744920146705972370385528975737166847523130255246916644367836963253464506164254964429505130889358795384628870308431767449706562123635814130801603702563817855496784971281546300383422828878331276813065556081421129949573823408331868270705391587053286583893560199596432778276500446788391037533616173318385209558682552508773457357640554201314074073663827187551503770780165626476251063639851464609994528396289542303240613077458300504945971147302179266833565269657042799596377015076400388958696335707054243561232578788670812737309854675832932934790503252187445995650674057972557005523547995612835939922988045072640428078143744363719329587895454686268218921160370379860832942322881837358463888033016177302227369263561180378524023155908458936342991255463772558188741455169886357437324833455983749584519245058458228641781503199733899806258608996826796468144979950439534219034471660213875121582084022882758277333068467470576054953298142675544139640816495551386415044394896574156308898362831147824612794768434420743693756952499416086949312297081472607205427631440147210827566979343823496627782766320753966946590694580033980588516076029561228973376668709335184647264385000482211263757020175959330039228278925782508908093473012852649100226408513859451461421242193039535259824238301486128034689784182704758389358214564594979658574771052179668607497393198141262299828427876551864552531394153606290611835584035241145053447518240679887397218331910038636892540947857402702991842605087140234313189517591387033271540564273294445531902829445703463344811196104718390203509597251855645272389835925748357639612065352204377384993562151378738381501594713786795383686153196091359532601176228450285744427139410568659541514348701933337862318411687176312618953514035622794697274189216805793702447606773201435326857028971406298681235535363490072683044989999176081908462132097063886194963988460139624293326848249250881135572030232919467862433201774176145498458908390846423037200042902987187483221945913617522325290571587282234354154357944312575782240944672500254649329275743725540038584841971776589603841801848910017556182392194847314669340495862590369477888791639474229133210468296968829785334832020678821631074611613836532454226347693452602349789766993827277515141666135691497163042873044337567136296429052443544516967920796973256785511904383358440618228349965404181178526232421159230954241082243587552974425624466289639270833923661752633927914400004017345010699896050100506074176573730131565782957542137062044762090290656035753124625229289659043175483611717805277192741163601925005239429001664866237030135386457207753785341005766336375276913802490150340851903707796389996085503354958277848409346535951578902033931170793126788694178787910278698333520080751180096646660732316775132370610193503705553671153990371891009052927373343033704884668685603910266532750017853014962245218777149703378405992567722124489712688026320933708486186608336838542817269812167394027434262005762065043347458955053706089755978111615908048409511624517418627284302671384657263682539407967336266627059073868799902404576606812609399993021850994874778199216555234477078225737853590716159176172656729811051967537180449629516892259458992009381434440739100330293065365933190312937878893631797462782597517883899724652012911485134990241780369470955459555209292323280818958102068380411778624590926899793682682065790150498593080259324112728899635977815665329188650582171049881539056712947618146482972470100134681939083195302565528215585926747400606069457638178018456741497464537085309083131839066066699746490846614157222647951237589317071691017755180623803193699350974517311060053521745148221675330265292210908472874050174693531035880276876866316750343404681824664288446934483135206931281744928540455524283069956434196562498353507185959265667973850578576003185834928823446378945334748019016510716784062982236385325140768860951206807576911561728981151925367924109256360936063108720775800203478659667790639825655581701784743542975571405990707509086635926849856883148507054801522105703270262913279070694144458927393237465744873244498157878899351090608311261027268933019002621216613684901599906950096067754652187371279019399912424766478732278611683882824901623786777343191265814866112275271572328244524171990615263394362996933004030556665354412032274675099736591115050634843515734077917620632382584895577310481762916151272172462878563886232262049562590032478441693572159932900770680646801785723283195964681973395852976070453654997970261446405396263935689943592743796243768011320824285388573604279869738995635960898172468557179336837719139354983133169321935574330653679630483310120987365830930151046613477200418083905716669351426202425822006696616142452011490347594325377887883729432054968868779623858838232043059097211397698469256867752140362083911843198377232263721648209949186027264497301485837531621126624909265652546942800808030631342381372077375382502696762608069716033538739445887565655875961491902878755860922681480636273923698737424392348546005570360422711349831666984745318699302323977000279414814847139509049322090618424644574345228297637007248712956458580901202415640191627191865297009052777132043052467269772730107879116708092504768916728662049395915387303540102068554642085032293306585383032276073897291889704419233357351555258275182064747815375053883593834690166338664345311594392861679905197163554555426546909952301826161613405193022265432599726866110366398366504397603262402994333811097868879830559544543983454478738854443049091717880963491173720980489074618491162350414498736812465935268234845352617162010320627588991779170616275954222122839440134768107578184998121279633569688250036020060549174302339157790844432876204283957037721008230114286959140258078619823942059756269599191678877738631237027762198638793776503238543291726920413284628172729801578781761526349533191642490998052121690821177300001540712642194208786527524391854029541369623587807660799229319641559764500973349445498475926249386295883644271275367560942696073360543116514676046373913332259570531618983131866373140442772039952864218994989871168923504433803147119606776634279841569982027979010391096478204030884619037428710113934350149059621956412481527757061218333777083950299252081108188042309935406032253063341372177603865111375080571265837690821417100061304879483039301791553505975086029000687692006668444596847791136148768591798129457684612882251358545619596850201289600988913468519741094258452840616321686577352044355545050704319514642374745106763963017817199078147800531188648049437211039567368970451141921601720438165475317013338143436129313031422962930039575449236303817129212776703366776531976234160803816841250579795606991346834625950156145134548757254084923135997246032068649864910801938420228784219055292699339089872455090616638282810660836089062870656090890303219553574681641040754444107132842554626642554804010263696508669799381115174723094136537347453627421811912107802503111342306493989662808882224062801636200339105261932998714700443188826114156424574344578869804005586364548602956104735960352985159781378509281147974697787518044733164106323971755545011613834703185548063977588786885871289022506192692708721157995796461898735689917817210544098178901041343224699656201976541600794145432099591797215817191325165479359722206226700482529816050069197543651585075024382784082757319208552910420238441711747815208868772998212084238272766495793397907703924832290217561511349498038569271982836834221669415668528520387348247808310417584528394071347750955074458657538492447161491170481209606879023022598625052433253744490289651450108004371538473427183578879377963398738830699301940984600006619082318389601952097229175392329044198331405561685997141124394806183296984349897789760078819343875650808500520412035247029244179720512535236768411467949995967246612830266160795234414513356609652484195085868138000349645502076282571146607983683726455768337015106752726218152052331738405582412218493050894813296155426257173359107799685874625696464412446925678759522550573690786215845132270104376658727278903399012984517601769031210633255509847679684575173325910947582094551194617363450826535115445917057256057479267528105006072432199324502090198909449385299510271282927115130582417440606807570658324397207998341140403803285972782115555230095593856141471651855287984114540072864266045651384491625986161533043521151209635250196714832728306213687512210832085157528519395301043653657072248599542566398624695479036754882451364722677482309977587569832813677932216451794632484355590943584485638270974612599261224754629077813773586774250987341801717660422831173636874533743102703416509924576972033102017972786802010704274556746760920160778812658736411571729205459891817475015425389004835117886133550864620840043148061078687584504416299218876006882242630866133772327933941053994124940119040014562454117531571431884516409365844239971725972230225714811238242211119687547916116768976535232864794620359624479464212762694909485216314946724006485444915497560733217865586590842088790879554387405585185301255869370277357939906423788991317700954587469323752370952331029650010814795426115669924736559090719145858904059982224234880226170381707155521268351103417221281678624656502066228393041060426496101996372736133205787972249837359325897857408324734394896565267596501629595974863558795261621132411147035041016083518185116476097012688464925339616553741187862177263702474687818949119060133901556622857844304720654968064192421466913352156617663124967385977039592838143336268266955253963326334443777547655452194876213273630654753134536248840090193374816072641470033842698308619328081446775774481732008772053648832139696235403293183776310111455741419510702261597411063129961871241936950883463207453347116033769396871575888895545481866567700657310034690311545609755977543840083892222415622755065476377156332473765631616445344067949416386777941652530852351882078135620281311692701970996262841496018007815637052192098539308871468842700980836007197540628406405919472568010085263407096159559289817499539241322594722604849139816793771452268540931475763042140100611790604809893677290322142297858791360766961151560029045372905851730318753264218367155959705516491052198725386265565055693688431293390514952495127965154236085990756583790786285390256846959515988169389493812672000677688316997372511959575766139959517064604504674489143923388713728578323982013647036409710394602762412607001468355051296436784798675264932306343859068269360166483672009135217748716530273889839131436023335759265230778136249350652433092975279196793525984099935829906920418526541107810555390161366106910767087833591676116255143241144727703814868931192284715085923067440922296139169515699767251592828218559227692518470553892912228521031747361907420934115480533852400541703073993443885987242618804958221436183950139183348045876396113224323817991200141910670588874939875903845303763778325034307298575127788525854115289201269200859579965695554358667180206665549248583784078928241633847302472666634959183546141177485595397585449115836856370100873673695575903694337293452054844225755211628030672063823919586024637008296123599295721879479724726622657692427645519166831103029984506264812749973829374615659289656780469632166703421086478479093890931161945817471956744750456252782785744333185922896556152214949367424584082220071533206784460713033233266162312511104921792850698002770434627839643174281157179929075697380019356582976884778930806438855618970446560627377036954372729175377654967767091979038829186249940164662621887170175690822381521955218090943688483109141957230565794142192592066497545697774150491725322084872608421645721922854568974905213158760691235244348380363163511095230796988621478451419070879106248645547279614040497614580085560168182328344768940321350897312353952303517206862954424682974633246728196496734232534440414205458980610581560628322373566809760693214086840606933734589341739711772177553244322057938797662914513564242525965122638784706590303329617090461750314947667837954057676801233486090568267948629724661686010240498207719272327194741797106231239578059405827504113580100827450181196484847764041581377617289041887294445024435396057514850361240139905866355635821927317409349046914022193256707094564420936100460415052955129654913481955750544910693325824202224430335999866970158243035345976981392214757520015615006231568260973322863682837084692780761735152343027775716654666685600585749108478370612368024931016396187839071634469484951232728135229457466932671316870764154778084529912211464081166583490077724116163211315220916428918602942146843106411841364454522009966814157641441789129437865155510756883835894454245443065094770413515280900843213179091586457872474003290309075207264624809869005215052674680052529962669767041988388761545262173206462916342053951562624807664884940029218798264188337687182216542296806027392156371770773870434767280405887918868568815725382166147111153017859601655528991420308709502140561495337376114025171200865501849645459983249450139699772283395003893625406700153424652642544250038250526497854446195703781363265326058532336090058905580387567664498475010727367483337330448214876210462664575781638511169636511565797295272130868979343485204746282163314818653309744545776642079786370433075609646563041919233226236299019724825265459077292109637009494578475778369398252170531136390578174606722700100896105057884950126751302723493369198793719273742107584737736561485438499285104038514923374404840097835319153273183477925977224920709313982611352943035539881988183259774244079470003370416079636213547050509993245625453569370727336061485750713183707563752853354202890943020515779431895049984394328283922725445539017148258768562299422934596421589812528088605268998803477331140025322262142716803307972907720863683346319018169233673264532891168632464711238980150019214716167815867376118800889580081931781629673343337610734068356002263871595394276682929136696904260234307481799705633641824146779939147386216099565503982823274561736124731379389857950281475483490615567487582450904394109229838875512876483951921207721750635574041491792217547586946668933876864461353241134073963567756068376518798636891401446242222548648611397795739862170627812615147361144571898046123522870500224061777457392996555129309471356598972586791213370190160218977182188399046045911785696172396713402645459576555662161963761984384851668577728870489599393334749517211664319860051487926499205881827407101974839404342135242673559977705629134859719015662188557086824968134418697087794817400553194091496391690368049654912139332427300091940815796451301550750190534034759331495927704673688723801946200401939536049506002604154809842912617320667081422445553442298617394479335201319447575145695778448485157578266459907674982233034108061690113695591288451655936726433089755951048229498378463498070546853254083647063129139586404090821943061573161878767898143538919441212211067989916746169747783579384727065474994368868561807288083799948709808511582855342060449255708258656844767012487659322173376264128669993732022711415022213112882423041356096794481853722452688027089368287589357811347484769500490623076162019393273080427934354140581037854374072874054554953069299797410275614658406016999488893218176117798717354997371918940377203220446351457977284433505042355112540772441289216067016347982654940533665316484434282198841233293754542940482260295896212590031871331015095269934374164054992479136181235880861332502203817371970250799011386808681831578387268096672670965541412122002052009203213884985419947832937056970365560713009682615426458081266142866009192770172630196440825676405782490666933831655305585787359120274996631554579480424147546989801478942364738407093076929331385060109729942257519759026315642511162549632492439807677116667140610837763092450232089553649040369339858179803474503408873116185926130881185052560753867569404698183182529046822855720660745685261246460296879154669345957446645272947168524726694534190106720312444905613642034022058980819720496363160568021748602239518294959033394682117499968021879800425437099609582338793794565563131508947721217743209258965356188109001811394158892950605720748280290666309972277306888846050962255738020165106963840958079107580035858220820457076845887829956841981707204335773220530916281172678973308781072963818586145557762109540477972951394831994664339728868928834759373484749146270347512213126511200685029989533452025774413146931871223788222076942274215977278144759941374111338131547511777743988757138297379138457178120235042214548759964675677229989945628205744408186077697435900863121046802929898266317349684270153072832248833431688196334654944314040386756710394973579653098366434933412613117487387646193462002559978706531421298394813527867228626699477854074491906388990038671858311924450015464679310038418222559138706343962775938180092158143780505829636377371189003001219529166407848806783839082213244134705211767962118159332423162455950169302587969533214230833373702160447549011379047063505693666183108514040515904840370205329218877701051736000231704821652613606639557533633380868193902797976477149419467573614376033255754460342072254935397963156744349663335099135660591133140932585391487351552080823545538315022573725270547388286192048473654405498836499422934297049420305594248385221563977332995501114489066851613365729228592878975128543044941943370348101799161758721078120807091820900329685966826141806705751108688387948326999939119092038443735610938953758035373806477617579446695875548655139720289375272836741269110998063981800438452080519993087970201907735322554487803926084460533276619537638827036113559885165023249500937180037066691073745501079928134740251533568278879629725960292386282206432953048638899973712352643445352027937583368105162246202035512204837485152708181354631810281981060936846956152090288172359592528170283857961322020502323574317496828416019616631180654788145276796997827230989567101484389697873363966294730271282959314683572844300645106137382134254582752487303073631863416971481676320644979155317713572563728416478990191000244947462266503683749831201631574839621147996690078773636525979751536825168304237325880431023267218116644738958673171338052876742801088868922342020558735940614927802055523742332068283805333310792646208516950104222597832077036333913292577984947229009267002063472490490342813230617383463027523414554859303286276270344021530948729164372117920142378625261860182186397973676278538775995415144394186411302485259072659621897580053864679156706177509247721755789633640075245412528500239817221453670693219291283102428293951798661783958174622934400941637782188118737718736508078260168025222290066031453773997281638409075160861433830557309862179951034956323860822570083357928815832032575271921601587844790020533664993895752801428441036476089268669036880060187863738665762607221786000161313924980198525006032885216073043304857516167936765846138099771147014918700289371095314048748157170021150575871345937233075835443402855197248200555198294220921569080454817433830197028328452458241040849085994490680238696103227564266575653790288582333769682257702919444238014802795011052028362067416242504039063949425192340601105618317058554020151757130874498232376629133102364807433015868597844140185926070589945244816382093638940813187570936563225559424006450309824632300212661177887794689296741676231756847918277379043510969041632773607551745029860296589064363691033446999141007338808003645963077728517495534435652441562186975155263377887499541548068987870202187491013521975484954352481394445639110539060398590235883982269565962517201931745315539483598370264785030591424988485663244762797327876876047552310012015337566439664643120161045862929025443167313871908868930140953720239732857957705658836156465150945148532969309191307944397601079139580727099871829127038810470077587399179808810416975199852280091792283374267122590012422575293814258078388808932620498031360030855180641663542112185140242668507236468332058762005063508385999495509101295888756103861704392100118741920773592039709652328292600087597617510265570928425591348457637249457604438095432215476773332496201329030774403928501773100272123807221862155898147929935677443636102991328377778334276995305424464127093311700184929116623077942529580537420794932691473491625453174280717260650561370234441005569940842556435981276154605262937955514895937283120773215633413499545505700525551071824445379996462642589046725011149287362307685699036711801463242398268462970707573593451972511242701130003828110363792967092471030479508451080613446619699133931750064138049073040774598050025803944694454896303380040452676757358410518883050410122664640374636504537174630409981450227427009527746671271542315735402502466480096342991273337963916079759847072073127202582295566868733295598812767026428395840305303170619499126928059381992992553896519082425344992147899255398856724812958177095156310273470797263714420935333238542975215822768765157229995884081805585472779854917102309030002237097233703387853190115688281101151500416236529254399482648307798908252871195964827585406620286002011453358248017941945828601753353727639216959179933899378546782226630110339582712646697219192273046649664160632639784897820819519214276893874851766794833830291757294966254612551777169658367422631036465264049270794280768443276440257004280393807177516841070341324643218124345342318845856998158290129743721631655591168748951749129152131215865296089851162380378231695206012162407287463570060465788311695110481787988351807117690557678423085883972826453158823074880601466943743233468283927937703323342063204230107530498191385991351047214618174253378958599312107574256928775267381156375758654431295588735127208363817256963770298565804908627892115077755037675896955002916655725309017904023794928016253156848680021890864248509802046305049046493647631710012167459416854190842521427150294904859501449371924446861492124109498739276718191066338960818805211594818881267084002354065232971729901389943710251278120450851239717876851684403565199734460634396319081786411021543469297401426010606141520586249699216526766191897795410508041379882759101897775885263603020755856914187208893715941017619486272522385749207982770551082610169817345701435083001934727811374840351556134349382255576666322128511728980529067043786950682903396696977683120956600894312899190450478599592833612061492221407516952306767924197076519519824803927361451056148473126279202695294985802643421249090059684697345645991426350793642444402997516009583638830394906573310343050206690302559952301838036691870759049012648203288673277257473060060657621014913362611961524790204294646798751366036360551913173101753446410583825324809335501735643699721273877528465388918740801306520027404387391937850171554162717407636603322869117303821870035423010318586740773266141610491855271190578421298731231684199975095498549410012591525926790259001830935864299044182120759835005815886339014707990766285659013175233406558229538773005931747543374138247333654531397964482103921267974253281685737529989693782658948694865226399434852561685152904087205996368404837864252820591743080849470833668726159759295114567978827114171707391608926811088042661663933365676538785851491676092202967605443394809985795067023464655679139809282557026634522407693152252434132131746500073764344935185952408738278254219918068554812185775554505341670764399801679326872542081795982230378879829668188122574468549909936109803902553540444092106459925774712682733427015930535001551959075950335143652684540014903011305226018972649470634870213245025607666550767633214802611790742022938535952098761586986365605812179599135764848331959527581588035614675085563838498908198957984036729203306438909317023955817108714186297944780284172880477502493036886983956234722821113325183656871030431653147993899923824935881572886396257150541893405571575233624577691129140860415896490678149908416961786614663391584653802772217077806834618908288137771142183570748046031266494284487621427266453255567950006393451077193949714806399400063408937349820445015620857461271249616505339241243101726952595905671910477254473780124212949899166435107148840592199427961689351917331900093642712428552652512846983735264141382975903544877121080027088099793820537423604999048576677350234159905583237880153170172948990376141034119139774566428975805146976613331574335788683795461144744100502001150029579793408768032320496604549111664853352942749914344727153779451747064095231158992640800580172342827759992373100686460934956745369587171316882853242656329123441830669842725210785253010371450541488652675838205672533193028818426396645003737780877012266512802881564695634734053298634510809473715905511358208012077293305308487571473070887347066694485086221143936045434719599820150454857435099207592853418483673827102225702509874048999901005549791849460502233328909703406947573780708895084547393293257819319687691024456857218487382043829449513745561080935318806331422471219259571922611484144897550604640845977206299077596026927853158235106026808117884217216122447235965943253377270159978243972305783540507462848857854467831789769158015655850106798776016214967013378338678184354448730577524892137635264039065838081533185666896790202023264426116578083828748076544937337130415672702053093131185056944527381573785553242804044499297784759853401770375876229478890995250616948393826310334953447208336425734006583249967406564070780742487005620534686558888678595663711281220727042759081262163388659772685897501204453210491061589622434308734313087214548761245110495551894827311463722165962854613764544560312399485391089785486424927844057403764533210939629787212676834817459547907276479809096309403704213112565233272182917609712191018613009382623972118519722601856739665667548335498799737692032755992760581695999532664799534771534548340606552785680121180646802924951711248565408874249575366686823159651357132008654356173711443258981759404119743915835383667386144170023465437561150385693753699114159263522710575989504942256396425106946988773261352028447508329474097722936419468035465170165155872261096128795268329141033021368165658668679224267122250427478754009593068122653487501975624991523232772003299233836272389716831175047361221861692462201818251669252557182668162451065739714952155627919942400842090484250560667623767176086215640713776012809012465354927671579191584875939779984829086411747797363121375139710139850950041112159069836315099695014744261879940956573398159231595928335935962767005538887731458559975769003598422456729627228008369759748918582317501707973359907356606170797529111686789602215808895614456243736753522836634498750472560162534729941339804013685306566260645984500964969371662036274650348598631016590885576931525562562367656728020240311270949797433047394922558953211757269068593462849101444907394399911717125153008450083206447148757035936306296781791591496761252905135362637030052365645169529303766345296224800489585498848493326967983349773054177975744554362503265260657672132038019000845023068958510976186886960921552296493280842288392973299001781155827035557302762251780668215334725013643874311889271767171885777857221160790675399288319823985264218418822596672411349078120811449120939333186515039069791233755317236534704419126135493894605546310035613562223648659345910239940889452163684657904478957418456579079105849170017761026046945672942002267612163085543525214750575053955086837959792655843539161821961596816445968228125454519552449784173961723738637828432646664473788355051399291605501239156098928304250755721928159535591939186555862846370614244001597381723401721452232823260160490765725844953977787425243571694647830547612907630011552979711047914353601297269402391511564967070139931059708809715021587592541340724376760754461156656423085760119654299312653975512105429797036397338875780889670665599591201553006018573047838952160044371105816546618283356486679888676802444372789161176718786257216539332129676166073087546842319155947342010255519007193941641436662551285670821583838586980271630471818385441200274520087484577039508791826290778036211267173970364828504663394271166823534338544754042450253664939226737394839804898411701233799779776049204076783512521191799103439542455150884490288108435408130563824635391711536615323353322945113685215237073019646080186907768794370694298873456134225603567941548083834809650665123357140127797900971573552270777822395605269734099007538233260831996692200360389873838280690828582504290749443258426554980683543330124833735995830417336512968205449342965134798919902017839743899087568319671144125880814565704207781357094189563901280426335066203575990751274719755527211053257050573385207198842665014654120406298757726676757408506186599674630265751568923320168558534827523788353160078942769643005036261137389722664216726598832515197957027969259958521897986565363064679300906511463818604986305634898305117193589848416143139658806323770924621117563620212418913386353394227336981193314920406756926352937719806489484464443599458884352182150920137861433054640756759752625084869816242824855357172510677757859172842036043158657392067279317086733498051532016634873436784339277928280379924644683172735150850806759277419333388490462100066550317122812926259655201189472289110763191997401725296204848195154463449567452108045579203448231908497877401067121637222979530594622001940439428440261312836491168903786107937161770963269745239651835699323162169271894395152933276326123360919073090274317514685553815028674338948199449817684316867826157182890775178289268812521141138762213803569284117560745485049634349733323761418142050649022676359351291924018854367424309635062753263266198611199302048127232929524978647847601809131515085453499358132147829387788911110929402968873424113188511532020921059717956973400172456301582866256572803371807285832233936291997294129811921298437024505621145910495436832664768569525056046388370002340846340965749358022125464484892350612571480384647000222674529711728014655228099078520779691286613142363835485457711860138047553011527011007648758311404834787729541973742459041394586311564038871605213756628683484990490380435582269563667018606763976575726708164838684970689826696910934290179227342880440242077121957213173224675318595213135317577465493776181986088565882203645641770693654408263829043612979728231073195249110526569069610376377088815813859949557039847332818159662710043079380375695946109861540089991889957772078779645358311673767847521072877348869746047262707270884969784024573968867520345632644922783812671543743226714898727032150688854473444836116789548763140956244531798701346224896774988947476101809845638335750051727803853746729306593624580671111929296877012385380172018071116635502163516137073576184702314774250327454417355724740274994810575686111998355475237620213546202131422562021697708464024736612642080511553349157878127779607792117254922378384649389480498800901285025345042387564009170109549153028075513866961887229626408192824074290680796600309628926196332254679833288521245584128156077902976556996080689406486779025597723940452464140191377985155240368501693852044253763693431382297445498653821785795810411824144708680233674013994046046836344962168490550928572656680889553534055405913425556896087818055840717797683805802525784378800445929836910303036177878425675593892692286993168762278223942604541393615894551962040674743826861166017528674169590354098694044501221322647222887658124076832937183725187712390544258208322067165623115563710501218315195216651069774170959874812437632345822068826189392121285848038193836692410932233171119985845418055461682218519364199118705515505433841548395372226089005438143704207415179549270531821406181633891577688395260976037885533907485856422884005387806406435153723457474024909147934178514736934558501477291955984545104618484783086101454341596529784883467211864941035072655670267861907516399825171173615902649250377945762624955100023606535251569694340835749489896464550670126437455277349689388109542295950959910167237931761500770308305672384467181862259639264610820411960030100414281624849341698925896479940219316246048830877102796033166707823200794450562904066107598338398809012091613890446374620622924200984860514781541809209846437330100131494264444696942164952738860172938062514814193410768571791008419405926978364392840474338797458454272627475369975530452910349233445038780405014721157501490406703528012730321388070351268963413460130580349668374592893091122323879116202867944476388947284771268282523935000399910605236571602546337934620571460273579330617673744204454786869557154359906789792242233710800081159517308131225294394577087543762155834227638081410781198302046257516009605432940300305591863053544369678764804885672357113813577290030395668556383236732434838405175987077830191974045057284097436434568715561277025178074256595266310989845513480810334624897064525093514812258641627976173865449553469337850065444568792279904103852044772953328806161810976969077831504944265994650418024242658431840246942175350389652859999166628302430280015770301223801655665160856586955587178179557029484075724957778595217302402019657513053675858483721188433495480271084566165258725431710604413952000204472643039715430725735889768581236128237454088636650315716905930137417468313688636709419087949323184668679955373518482383200712746791220957445859431403390161498225550405684330242234456628379275282078161236693552701475848771099326349033484803066746863636358331109760702622031784615420407931576608891091249357279305471246385478777115646973359135543073489983331755263214266088549673009852816361704225369792563206091751393422304894252078080864069466690635243970209268380842700557615418939307088130228698190214038023119118479224941959982060258058671397557056809238256070364055029287225865826050105187523547506024998636437739918712359974324356064478786196151558642028341626691050909860603965710740812352655455640760167564558111724895985229378252884033813007015322572149406301374132589586708513691149339008791082514901815097579095178897415381521567071638067603305946193935346604864904073846257249153968210657372613918093106181956427889494204952562350182688002458907365508906633687068533803524711889277897595541793763263777193635732147710289785642584625127941274848342578632875014138470401027597472632500537067715614964517930205157384078233989648094872974240403708286753296106316336208838602867850530799579771009719537537329140028741818011970984704569582115397058543583085743046250012282176435273972450619807534080814694889598487245229644678596879873723590762238612763878892475490788961699830564595589859760124401499438109443839606579657590000945701376828221199341733774867042087157494291590250100143888553427716225369691613640002879228738754020189608817913874443440725012766848755022772936632377434626218520882297894337275583990266497061309148119649533529690565315070630638387419242874000574387192413735433730756312072551254771384972065642405342109566921105985437280573374322358398874932088728385321209098172591084960558064374438881448895783236295278712835436397702222091874482624534721641841732979318676458072540081288575185185592114971848702470223233019640068804874205212814834669398598765651054356660564945256977429279891102182430125066605775596403026331362389735543543707766102600382233832959551847851000011280786971712046760608103769932439108217572016266256849117566698140398432408085559988871911679517057934949079411198885292249762697190869847718712642957899625619171179179609998270530113603855196542402391464815120552229346666438668121891261203145620635923126784436303171489625129468138946448621640266156061213668249194799103659768818478853187168153158205770806547632018746265712670450156138413987373516926331967916447705384381401343657072737276039022895438733301632152684188820808626025020308967199843702953679487011755728754466133469575407781375948477963957534981519528109358564025600497691558148462488943649486605045832396467166793087842053824469299366016352413665802940703158812179839171718395669639968858801365345205832988326876503749175759158530476509615754918444636519983635985597864787416763418603041057331363945057756246474131534338991122455586955831811822627339905153414093674357168518681533017051711395425227815764333259606225848083807962721276097792938817431873274189086471748851264531019676769203084207237727595148128866555034470835222096331098406264887230993028957039818205950282035340543667330874301841237330823861200808679036151978999455021446256477274057514693600137652590779871815276661280681679395636405122802940694478040715403073151495262194911180269864683828976738655288569589248578422890686462002769272461911768398830522086666122812001905726654817256775567197182040594688863310218977162427337368959720832854061494921558749397933550594378302411572625073098492322704623716706392400996320919533359416579887526055606055663263904268690240666055301553310552712131736102719230990090019407502437102556322941588410233077410542830795451099616779445508650715543346013830138953392060925637473474310352953133050517009397782419053548223421324901498686515444876947915218458693305468250154045777763016600008219633980813082960135076853545443585366577233011887631845915503802698959302031128655109842840067638120851487351391598322877062581610191113511611717247685787851760542691751574518768686691601200689864180095248911389494857316339685067059579603125829088272462484759846490895120999011734983023747627566340355670247374756498298427728465263404495537190388850622086840625828181457498029505499367146480800351572217861770007017792058770767177637992441612174522740888766596950635851044489098369085166822406535298685583576674716203223912783788823755068783867461487153016138056630944004387456049232788791948166099956190651998119593183090219735007040258939171596966153624229596394936281652908390199983510221489588058310652139500238145236267035275213530264091350349906771713840203804190433827097286754321817718497935767818255330176666184132345581762772651386529112242078932366215016238848140395350384754027802392841163769422510044382082809913479309140126148969412836553057944517725524120930642608750431140867798748433833961729401471945802837601996586209826673097606623041303227206204833578736969692866221059332924663583133168346212976292384474218785696477139458741768666626403213706042670454839957503495270740904936390379078230709395855884510552263519930526736713768073185313719802126454233832763312975934586945107015079710159138266571412908339641966403411630243152049042542176083206647953812306307361012713200827110319692451906713371375411566512822105090759496464866369880038501223078520764679625803990297733054003358058123357616234974184706569982926450831565623094302721350113272747461855321140251028809878345297049211313076943938888166640606585177268211300257917036015781818847168419447328804808616313344630333771450645669789233886249516712126866443188467404704835470441344209824328841328335543244220166657690455675545316886902732096044620094344518606779779248842208133709529708265990027672308983454491411707035729368250177735164340011117391788719690939623112063308451458820492688418227725919494019174692103185500536329870447027183222307038072869652421243029995377941571168022271144570360716361711986824360912116884158684370730280796432819723304960168744221353238806583670332009863843037302240805526713386433498686051336669525956229167588082376652130262646850822020938080580572254782821099830888556826528348822738670586671984168955804799976368436930091825245928588796273826161927904787875414186156502469486417436691826220849100375727651931400646688280955356279616766577154815588284263719744363829865561536765165299726283939805060404961202642267302058906852514287093099666734982710877812154781526403767310530879628766637980426143586029664896260405354085153059734754407022475801272491352771691930077006467484408571772376978534773114868320386524211396039061754569307142919137605545361763444984313330844190955311089591776365225082192571586926842239570014906531402505720018313292917325878158725334077366423856158674730728753855303783802102692677964333250084890662927773697825915783740941653727015369609587102457027555301627253599908623711503430814604123706967851262278353753634005368396400416048934853962033646671473836588530665902983656358767501547841480480024028548164848657948339445496871683079632333364989567572196509308229872625930262847293391247371488447434914194098433670502388624332412487967240994740542057317876216042550204936474306491722545794716778893945833916211515529138544883679898964236970405907587211104230827620017346385411521926494739039862082888367682403411220690550897564834369933278549302107970790273741893332234272607941278730300045268332237323094916902736043486702850269078829719006045053260104922663586067124293696899299895331054247310352928842698764596312616193417747017038799098823636505705388039225516234182590575923250449132415280161777285102917546934502997769007483564312909671001593700379268896451690483134660789540017522191185286720314050870780017054239855104834493507708360633586749974273295082284520180109770921302527314095416404129491334200313496579034081220945293726303570642908944496651195051450794033919478896885827708902802250757570292446656777006519263198192081201236506171137648821231251399836464752802346393719755955832172636545706905979079690551431837849048341157207684974994694058778923619715546300707817535060213100023286329127841819075355532871455254189546980479500897437354861397810836410915706994281438567881345409554659873035395152340892694919551604645164486896548435490297458885243109301809168888570810039219931478901039165192669731124293575875900576212148098962890536692163154437891682453863148145239084597901069856628087771068164250698535492349299342999216887270009565693392682319100694015570280833534588774620700325253214714845205659893789895242590689899067317425730685386326629329396643216416848225553919931489279619391849950288252186276827492464955679114396598869885037504907969725099623549758855646893847199368772563329985062480744585074839267368843998237514985133874849967302767587313646144731037530099786026563238755730553240601101353355094867542589736034170735777617243176752285512155100952823863016235696396383373919691615004271683224991147142871339093198529780096909333081183169558062494182183202817857826475895265909719091280121854863750464079287838822589990650446744993535772651862994276124060312175962333409066388014317338118747949488334089861689835094724636063355367766164799268856550556104620843581004379560300567033056430415235229080051203828187824105917959357910533192684205827878224363416455547387614207736416285309130195636437759344118486790007733297932558855543803959798962776303547269654664563223978189679134160589971773579111756950307886121938508751995408351983785901611892800176888465565873288495085649697590419621584292205489388416466259217519532224415129052680234246567738064971900442355475297524608932872409700870076725016214546988796668676511415995092171004105309698514562840692382001118945696782626812332641977688907219071973579093658851134078539065389007384200361602641262882453403656535396841710227472426104538778455523966117698437628662792638016904160474264899196699303880061812127116650570171497085419787722299543367656762633778523178355731969041813443974870222645628909653787663813977555052477104074430366702878806917824464674264720801299574139954286097479517227031430152592495201855008972437853920970685560235492755511301245568647396034515141327492665582454093995739740198729215044396186871340453170354117116215812846861854135975886939282125438992759641172728870813302717331498394492017317102913553992527405403925191527257184065521534516744561983733290599634043178791630053526809232953666012317225266306941647691176740640551567641930949466487442185750790770218127576437907685751276303584736742652050173755613761650380325520141077723510357878484906443540428412778807659379878764352306035267238276731295043878954782054284214463086837883966274774893645066597366510200677581276775282040314763117231956906578495128630031822281561464041813214018879410384223956662561676754699096580359534091674843689571926305386501341763740718007502882812421313044756551175750381415438836865645420022745975908074733747574453792989676118058369658550438091834788136501937839709424782073729267345927772299113825489809112508027285466192921582352060215447658546525584585958656548730911622651344615489845607739896858779650598089763106616633935378288344151583528641552932770891653613507388902039208101675273960179349162188103205128287952254418463451998306628208743011335601841584656886838715904264569930875256247928157493440733206732067251469195730458074446577174819998124763439409764242457217108241020529155234432116035702858240050723491815864096086452656292096763384040388878696258780669410799939447841128095070360042211272081283364632471858009654644275549971643925189785545451569044542770181639181042406163556241917419843605405043283928992763649329628713986454436254711295531987941913436211058938587241300246477228711322313810185059087787223069242530911230142677393881280686682227508578271575739353611197156508400174801794812646926413155113355717350535983767762264602195334677670009692698757568730880671606367679268540870040425045687073423575849649933499376932398674753299457397976402972906132653239512776456806210826983575954002717323059730295735104321233272572094549866541819893577704126678829672927131513067730166840173294414841760864773122619486377790739870516793688269326964318921047383826760484996632255381266127056813914081499730228265875351783528125985580489258071733871386093260099833326826276924657458854542811346114196928258378200815146040963206728771201987288101581149485653398740321824837168826174222908923316366102012450684752551787767292625456839123879067561485001349420482285965716321798152245527588430311860162920303800538757840086643724353958815258908911447518533731525662029271704792421612233779585559031651424513966761184961644140950628630154580339296423870018039180803799746646803120829434409945847542563547506262964475314244710080906333548734489445816367757293739715221991859295052684066099414190904658335987348213643996865837990570502667254806567262913086329944477917121892495738555270534303382513607076373675613860794919847401315362357818843587926955868763703787738971888396930065634016261178691148548632879870409702680240060198849148261192152408162989992343570110630099251933024690695876271464073878394747841382680390814540520331362544477010109745255154051066865383067358495265930281773943018461530024229785687284892205295788082044874853218408624929450776029897149050431267357674302847799305195662612151827794759469133907424548389352541020094816708004112107541633598618419369518708839108032119332624252459449482823946929934214697537865557007278915370545463925706670398819194142754794234205538962790066982681584118922951290344984900549667498173598161387070876266519616140714166965034379511285860395795089410222843829244102650453944054969236280424381894689684987332406425417787296962320482550047626102260553210832934341537960644591612765339140673382790168044168665349951691877042769001809241293454104824363989637162329404801823163917132384518384369023428217527768762523434918946442154772675131334978553664795608310486061287113480030986132782159999331291128522178710615781052880024025127811644281433485861074447112256696966979475633259406134239206916060429139998169913884728876113737267540992064778044362637647306233972706953251837703432785456617702692780065468987335950784990262134522742790175118490683495516658451190901502710381427843183868855719362026235497396768356637793752209508308417457448941651769459292410640567642608910620356849373119507553185473784374031778637093133659713814679912364195806992162629508928261582277355271711303933760929713929144833902589325180655525573587912159529328451268799130718245181038924555308584683804172422191030752253461242713073579152847535651552396463626771410512578192630558892213926201250758262179254062732863045000571116130833658974564903137630994273285734965561976580934893569566299613861442603152542705865564617396869416208872614481649408008135337324331099604309382180471982851016662378199184543948000092678079700102939163579466929066463306527042289972954990160104663789056068665447251633862250810069675269829431337295850685966624236216088101626983334261209973599354069244195080691246908834345163777925269943585038885557080219580838636571787251300502585645650986440746486815499505021588823445642545499889143635161240803039642979070683831543219858160926146839340396276037596123317554739870014307946908174151299887538797831254223406217229868719501193528063270612837375701339248139275876976524812755862007551979548988218675952683872917315034065936800691780009474912804651922664391051736544146556474565185015725364934613587661970914176677022889315528032214986570791522474102773784576663679463535456304010100862605800953291003012446703712227903553053176065939001335973146119115720736879589547591196783860214926582429091724127480983422722234343623245753897007283378541120846545582061395899541212263786543306875500110057724658194922336312112415980433281206726443644577915838718046122352495691646969949053943677928650424856296112286275399613678731977423756090142288500399304248661554452259431673219685468674232887008155121583666782107664835212919741477701382656575252743565811791314219290691159373875538856853088251002275944280351281658423177969306742418743787890013983705439510416884486689822952043492310271388441082179723498208305343351171106383532212525290830817342670804419140173580808714394870005568133113789318721900420478052232941256795282253497733579783778987350597760675077706767657896241237527645507369464191775957016512640694869408224240466790197278026514040409491641887575976074013234741115490487360462420611065908032878667189671001498251902995490669562641045391478060017824067767996415538512603274405100573216021777411355035911054609788349525703935235846050317731794852532544160846106454255053986616347871108736623909135801282173940552514482652975767925533187800817111405866328642875603232671733875734807626431805676733491905911197341313436234414861592906908217806504135579064719468910137565632546784387571718068156823866853737987665288107674050644633412815055962516960525839940417504709244453226025609419371997506079538400952917399395134957214349236540679411863370636612736253470453357672802150002036866961509475977211980871048849919425180203723511503413840558760175259799506395327532074891679770849048594423498092826365649476625479130692033701164017051079436984644093718988792645086806706850079400117171193338743820525242022116642773362998688288722281632976510114268238878062147923042122068703226930904692060805338811936051325418588392923259382376482367881138887970544251144589722062922515463262489866908529671369967628609109143602276364348575608243006397944053387542523373621290820943656586151645752258971558448233213038244494521668079565116620333574906505586427653783807320187128258059115171124578521803317015661080371411760055967534227613278136629111641953300173247532604333984956723667768894439363502607268380241557945366358106337062922893125828962584563271679080182871540167539888071121587584391091236085219162729414858371037709438701491525040585852734221407321720813597268349508798844434960836372197482381684731938799811326393229860532969921747608649842865403944408703036451689235791657935024705002193283907310373488149217528152414575802507878746191377354602160370486628150447659841375830015225882362737959091693526290343903861531604510650277428660149438107664014465335655100606352173835938834579997622251598391351124656404467598771690403748558631495452760144645977843272300012693845461631912267986152120292892523344994386240882970227901946708695239357226302945583108712291301480260630003782560601360360401229878674498306690544487992711354033896999185907031497385344414511895396976306584126010371118818624413990400834203558783869948801678315553086515103941128699040515729331243035825407119126149214657804714287159040126169626002653921905478601569776912443854708770252553444406733349831380468481059353815455403881601032865425168917661727824610053608728430898526296649749626545690111397952661275088089146448935381506976705396139160789006047746719346783109197657173947112161841806146917676204800125842107347762191279445474041645045893367362900779563561569684538686807358244403768121158482065420597335860407527577968150397193215982691644805128839939933928934443568836705797091832919153918451317848776917669685466941146402228304947585578098342201673632690514282759432816747265518893646482010867616638443411702078726862080163985756139296651099799275354966362380196443453168525516506581551433945666743866490690726633858770103626546768653427952457333581120292116247425957458113937853461203442327000503741179922727296550377730441584997678202965166198097101665140951558599272951046516708347546110734801253037089818576388585419483338920728660663190200853673653802974528168671102089356979205747637978204131736675887794465355225928886216291031528921825589085379019245477041671795385292228235209029944531725734049224973007714864126733614105757885658403574307420850557793674324188647462946438389587582922472706702498569022661328604541975070273178673233698877446749481086595521172087639109037886992132423133339218256409918331770932217060924264118859447015195408237511992509492407069046673725770251617044695486934602639842005741956473572731408865673598219408390439543674606516145856449082146093801384275380215927231200331237809819447982638193291226145507768920694275496662686156694783014276177140218197274556563720129903774241444089102675206244107784614234862933255364154960036448462940212947020150167907732875598338627144790897836726008165332182188681458649329940836236724226135250062132080685188572901300239845337663913411069751727719936094747367174432384703175614724960299140712960756344221944264311404655915992627746059130041378222522775828411784991759233335178867306497048533915807140302136688807864294624958785553908758582862314128750327511626421201839172448094413353361625258246561857253791932499575956075056991009516948693909523805785506815697049984839855843020648835537930580252280215769909562419599218083381039402635396887551974896179240157279323703598555455005948618318934579448477605404830158107270342203880062677926979056915718687152481746750097558492926157504079998139508005349884400604589961317215933152083696353600295963968355638531643475567664486662141159563252968960653219716701131694734606750921717139841488081319150413795336797340738646288248528112394055953720051856615361679070152186669225253003324629565724598615251658307459250436644041949862497323938420022067652218606964760193339254299467068021000727987621634115204951286595771195260395224561997995099722215365693795502553217216553444604978114210230760166196743399554360676572072836380941084134523437213368748585974277141791373079293352129990435089814953098268050409664952498856223372244694171175029454627410072362273921590794401945010477708728067883276413094451837711014710997170718204440209413514582787310438132382740063497495273577964108850281352974039900637319749806592734192148138972413093925376732223645149395313529729959856925401592857188346364217575472636170966722796308772728049658261564322450597266510884938219432426926607556116159773483322644806887872295061205936424277189244069666097926019174168232346796339452571797672130298515754997467832444046053750692708358728987655604240696255822680193569601247379659526439991426902598548008045568115285941398477226148110087469952596505299986734815186637541144882163455299193034498064549583427960582718679101883444734532814386040563008106534929048900794045317312418191275830566769408735741884487301906776317175856829763086830439205772909333945245358028588792640325787249411554155430499185530720940345973858405661169446217379449334092725693403137957154911979958090728533505525030853027333198193834424870424114388529259930524891901370467227761716068575340886588564221260003149353354327666025432365273212671814386037280338564168819082589747309108415388681169350564509756696716947365244502026343387247376248449298956434986441386374833374924263379468200698185653445048389524846021824478103622462083667846987074081167970185562298863921261783734090681409299455751117713624905521928152748254317597765437325441089762119799814130952083831178608975389299154013093364693520772202867957029991541769936982549690234706063254845455732352711178819801135502154878454794112272238056690823964634334864529069503729834208975607312066327904868145367512085981302694309657731241880884180288046736019655859520295500013750035510886540543965093750770645963392017236347121491183191904566833671423758808117471274963769094939902866043427140204697395736126604939957077771564599816352694349487068847218492722782984263594768031714247521391073218843837853887384163613918869807366106875768621895719969094346227730044766368373818692308344804335321316488381643503194214808543856216664042353503862499044621368490741414319389569882666727085081824896650687958389937675709970615328330749261132623215928666613217144128557841441460155893327180588666061357983373479596509613546179180705795672488954561496785557811112666718510174960939773037037975842211618980555898941759220940545563835341775133477135890678869720087573034526215620965382864473887764131835527383968141094209415205798163491293774148914205930354633119937155454882425066972359832757198237972289786588004908740466937385816074478481809944988915498727637892688908941460698978984439206080949524059437738403482078818826751727221089399364997704760975487664634099130223552767338679933128851358283329603846772988828165079708509002107983188190812964793930917009932015060397673072193393168479566740077032683376890289679514877303140414103308970011302386924678372693421165209802330279424128297805547119629070787013174459747155298867544036071814735637190062451180750281375253836820674840093406595201209663950419790125301168926293447676643633167070700401153730455667569424058162201641359616282428412655727267973811346604831877122395343483760025377606072092893217801405272971439089651482092067900527503611815526266197977755193503291623686359646911853012229064582837382944413923934652703862558464167983315656884025162584381966093338824626086300553883338918838709473256767335634026283596721094947601083411128256579998683575312477849792149674725276282055010837660625763918877300572595994530116744085540027344195657356715173318704440016598513930379817232055980711191536527436420921819877749704950601656818681826895315577103536264535842444683845938884361031993617355619101255760937421174365230874502600448947408749295797282849626609971109074698239871506583574908657536672190421105223063300212779771601358525520789324498212594102106954507937437038355072544300045297815190511453022795511549799597571803074414289388451805855520331484267442357246823199936380539564172449581545119248963284196474254948233044292232181303303902321334236548405767219360552187919924698077169373216076377354037353686651865846812309231055578224032323418416422432048099617141222771986047218342077632212450833277119472269558653361371874270119640358671302287514952643083123982666172204161443946231225309545875550290656765057398253882331145373675755687620389158122059854836636421077617909677070397482861242697974461453415472738800362677810882975945568849069671545356624636298110426954092850134967418464486976146525983879838377550284046770260539065186646635535081555137843540372785664837400143025884867131174878023312820491435104592731547515971258272524125809505365589595735792202413354293376508269507867056612129310162292923758210984632324625905057449445985685217950614810791809188523376280272771281739084709312760855322955944447148011058000020895490371301929983523625255560259555773112556307130480409416897559883683913467067618117590259044379941711838933374013560491371142571620232930098981653117157180684260509103014179083771412281575559866154608953285000197470697455317335267639384230727430684899138840210234059341136106988638440846914499785395779490120314059419744888269972112208950486783235180504668578313516581042908661105851068711028290507952654716465934177021618760649567823844962806838868336393528434350260804894401249633256217011704636505558078070515908829084662270456395722931431161202864154630812332072827453240999454907397005712847588061298277652914874020661311993178015403347147544578715329733880459629418639519589610183564136522886449497837878896914906229435806785199894719297965924509520952739393892078031336801984921846251288259316164154306859696693430711279966315148063180720691285518470002261894307054443286618477512574283049037440205566199563741760186012378159454131702405647376539280322922649895049917997097236590664924567749944561089084785114220273072797174652609700758596267358838348788044261106697526959056252593455750694987210350363921804028222711327994533544865996232884748154049404418722502955477710660362064010784731834051717878781195713118076899044241694100165678970491445653432245068016792125057649458122887739716854065458700394200102558104251822444679436030991544581667362924199181630952699740236976605202480754603508983130083727954506565218397008385725853185484999147398185982745578667298133463736552424012631068253922586430209488657196066472743521891996114017424150534352316590918614357840700881560940046534517528769356138287689988897466834820624794082349189573838880126047893991806096645505952560997201420808488090631144917093129676731133153084146272806984160587246029233285283699282412697322693173099272426293079448622416849492162259902282810692820512920343837680129949263338090458556269968924021951262316956453638410248551862289766381205245198978610989243391662587430602968879340563026853090092289680387482809445711949183517356227574916833532972097587965351962725144167396907946246840253189838743963777081881562221105769212686682812732836975139311112640667947536278852188067536688176601563423089372942275843349503671031338687621995349129998073375277750971776322810308021492257005515957409053197927253268124804609689808825248089967758958046516170189734769876057182797611447826417234325677757989157522574650283801683439599007368134699330401592363160178087469349124688528654951974166554147008445999848630187838361307649235297207827599550811082857322468467537436157217372566718216958270253307037133124698505444475146111004078021259253783776420006073398886019102703364222714413506773438667589361960494756296268447496980377870704865406433401289765270735549000816493719943516056477078922319606423597373462220888331886136349758511754208991990613629424999702001218014368496095742641258382398527321723452299587528512041850809614385106776743200827921931750571021149348232506402426214058388947167831598376329923044499037088573236872385555075112971411747257600756513620099003289870629218038960051433834508657660911816054979013711287196510315230055877173469848967544366253941861844312233277017499522636636275733623557318775579370203462920822429674453534124761268406257611810124820005026495310544634769483573984829445020578132386629325437487902744425608004483975823165403726210183771104170768176416044953860395855667742284889219418540962052956921573965532286507828828148871270974919826563490935426463974802183848359849094486394319659088618138020280799827968999125452937391862672146486162148776739370635948537689707321012152648710601404683201429465675825845919811849842186936067542495826675305456577464623905406525410052593437144792061619404832579103249816058185814982309058560420479189297751380865149696733161778515623317272699161587859985132786403950905555599977624081172554648049523545528199187820863949737376494854413520035901896537972723804926248403637712527597553170844443128860805042624464957718660318284194683653118550801976668653768973917937084836296303075405384374965945964883781604719355732045266267180123302753056813358838749529078153458753662056258549093927337887660783510639994627380260925970228706619338485568259706537274791828324488478208741565387091434973705144089140613925775407226809725392127875158005742527538362786883720715711599707144010076899749970773035809561940456231824017785804139158953721994590759929593749936283101579938201210578296295654512641700932585467285910148493374096869619001443730080267267859896268474323879356038397663882299189564121754457805220084121512483424396175066872326005179587983784979942186207553548832559597915472121886233925213105913597909703392265073537570147050634905016527677544084565363149098565734775231448598754135098349106466716006513626591962574109045741660002577401268463397389307675162148001502482171953160003773758774591852070418300558760195668445911743153840844946303616367796487064504111694127961645061078658800385162614010252139175505292496744033774491766624155566015601465463852292700201119533377771346320701174335411268943431344838756738310719792891115651916147213715090873402953331940922563968774114090187679380982571325027932712887933377237057528618773943929987642899853926422931503021019974801064806324131577154162792259439070003845587511827435197923198837751309449379212752119319800360557972383084194033996631186805671143471617973941648979952102736734469407612661083517133034477471000188318314943242511172696208523371420148419254591637337935110916362487104174914857888339596882568556616441976860392736216250188373442820767470348704556942395894838424616771839597757100977361044469458366295888187225717051803032447130069946370219217104844180552363661014283293027347816733842694589072950768425102785564075024505433604671352917018773519939588322388611607801714744697995975570490720170295022768660761287981791114272538826231788437722846955527701853630600644323604753648425545789263504030828948920093127339276028674099907678662245844368781443973599473733756016415900591044887783193874660649521314871627212577961969016862090177200843989266384546346000141680683297352186043319428308426640362660961998719220499615378450599293481001961701906745497521103891069347655172198330661556382936549938021743849582859807907997718731474611530933846919749736441208144187155505886805768670048913775100044688996767324087108070936771174588432729055858401915439501449015473730256697772530934026724894836973826629320381182769946024470719504877750128624832981211855468833799501285823972476320045519308178703491476041515716604649984683217504115488808208804015075470102418712212167030366693366088515914366929855910452153200574039977402422483692777224286936380357624200686218988326421939557654979633074021451724470187944846245699952851678383352736724055342873128517433632313493997435374384917632282440237492580199613988432971257341257699867002718289212094134978374777346459273939887002001061617411515221969520476025197933727880327596134694785265698484495328249174982731980405401825022201806645860574137115303179865033467388338974615324710941324483464138659788857925398909614442996046499407146545859373781589043468004001798817438032419704566804908465362747010051506855415223863187421745830923448658523390330997861381119248478233916435518063361753334894680637026703867112722717660392400553038665802199300990623637600695408470808451084228811757268561201448077624341207223098825549684123161986687426688457562142101940310595707478396750115082130919420678225037314337875880942258566522904218850278336601266692624483692585692716123850079601759305815506844494942267831778756506707856387196223251543966551069878189525140933928131672721410379281748937553954277999655171588634976923281887354766736946555612143101609729938038684084022746367406235123608087008247068684881764172288101408780037779198305502314588801804576758466516912138211040850258071092962116322685844371661668983393152111141887537247588851430763130983138953520210554134244198383592641061654237182510061175776578307915448374567881890471600838158562326119849587226204167393160186433459582307538890087961636185413833428321769689422997320875004712567464726890407932248293239712144418731866938719937330627293383414650339420369084823050837820582948863846602834544560024436588763181030150679376412350482912866292710981005166145885498381473743578985627608931024240208183000119539175925011737111076226451675072076935311496582592278233938957850418815748549667256554827147787784739203391273756812351223316323822678985424989751159911769733900063519937767557793287025528533524521331036963064074570824296365121364611083282405659225246744624810431792819317178666185150877644856740086814419638388174802721013605862514730318223728740595003414176849644506094360551549206916659140793054182439621427492642753548265340621458879509094513481234243205500643468964902201932557785270695715200081183549954816736890112019832826401286537007910096770648595796582679377111326931834908052319650520690739718211984361004934646770095237894557571923441350341776328001243091017263023432587529419949600106644932906152316252195744393648667505366709762363602012995600039086637179608920616338428046365298008839675960790561887135293649756505327221545232826365472684621140272418665514650309193530430348398189307503279266764878120025944653423920272105102010780857563732853746183150676152084012250075633584890749411975495231864655399373377895873377055390989077629766188973725645641308951448472325689494787875802288154209102060622471198711909784567331285190499106022072659276389411222836562591264315684213628871220299191823533730875096139110717499467339065600413406102142233766264353829436878250470813389853607694145199941652047679586602996413677062377042740836662730386808799157862499168977744837454253744749313939305221550433535555275578968273976648458735349404939418628623535382464916090322657746702946280790419914564129019021399587915326191906394612351877351417951614271181967695598626039371897724171397879860182211368757490654851151348661922872993990465811064579094588343619325067886870058991107384494410508989370598703072380860301410087403820539412884299900822356558067490569413678130536568668784621100767588563542684482277099975788768496383676710284150722344319374263444416264058806109204534276205135806007267097886063903131302114636370129103636468160114489143794008724135811820507243093781242259518905517257644957109437047936905128981974281123511085096374454668416499992489485100028663847744560977396192507560890576383476448778246677462550445022772620643956314262744303282287954597887135266655419456539848808473335392864414756457933452251608658039279011785516352565107596242655103694505537555837608903351393025310615748643849674242974072189390138684604148716399688505554445009354653502202463824521532926126261207312088681749601781109669259245183462166321303294079223945165945049579517389176770068387923573280477300169894909551260162235941991028315686273211336674283589746936241190687361367142363554542291396382883190397424480979275194694932219229991478563714961690440843217883360360373873713882055777658098412633532384108041111604554018589337242687169067917615701039078977026575016453596756655942921482499861526589472022754252263423905856517357348429469448897261033186940283945066828887143929786702629316056411690899227710613149719540068016360950059338565906273383246708520237270572683311422807685400284431737566782674259073237140802992019587658439959590933865563875423418766431689357509989826932660676164290247254668752597654672217310584755882847362194863398458613309713958807812385457810793053945139651980210941774752916838928599380619194186847665600288102261090437524991956186316044755358117033091190037595099246948630722303912304189178977269003404221041467035760765778461308168876341736275233007021597796713013299819587783951394988212125211799583428875748448707818328226305303903843570462217869581571716389690330335484633536942174117729247886895702281182756573050735772032714936885788943003083605493474416960581430692723907829812012980331788933038802044447063930037240932684102470452920121581498861004597687390444156020541877378563407533963255143079088554636201462531708982926022435385857114216908758654793862597830348680896544083467759453581319868820246077809152379614345022111369640449984400072296792430254086914150913985125929014455230251925929580613263662548411105263376562488838672367048457821076501697385496039407052668973931566235131752688384470609397952982509830810467260674697518800428673517788961101896998367341067658381827695878759232063267389998475172048076266218424360094223187175106278256212075696071777724548064547389149293164593907821754073176816085996561334879714274828900401696841281312397150518930769648534633127494032050297814161735190570656382891184242966487141620447528771484417547581321095843280386824659296442677750743740082509103907677576619860751814217461060447359576410594079988159290471327485883130569440511711873290428926510673693669385237297904088967086350271547522949913783845527195661654498956804933168179903663731389338471459032179708265841128309626586659561114242485038208889458122228790817002650746550111501695107382958680458146185333261421086359311956992418414190307887352234270994079158227063998613628128210993090620941541592965840723830201564539574379722812562916431280495054657563607428654152117026481029602309015590105755564921144127375001671361550246011095500679935095438104811714171862223849441243258081793703024997352769887928069250136124243694329074041771299891253451660426595191664157349910156825251624225829103453067670758825036853500407089391628669405682224842803395315584709583018070547438159582686836568684221319111003908055861090756490178327426734233102284630828850459793617517717236452302155186286324452502524235705625170450778731538466678447774213661955618450472799533044257099749217174651635825683738878636261349851758560780048533728801113269888725724749215339701256960318432858795185978564576059926719946537068093243925268853232588840701198672311360927158779415537447501934805238101931708500129284365091319422380198649842877720718690151479435022783877048520915359801984067584199592685713684825247293801876302676362425985647690187847520680051621510288748098144299332977204373451399779566081926088233737369332879278616798058443765684443060841226742357091505891318032163299346370067412577145123742052747542987375238798004598954343063213522992371041132225088278168661568649726763844681839686850597826570415130297234675614207730829561689728516927658618759516328016649053978542748461421610157258253988559898605839824542702256757066618045330357267838890289194890177447529884625376900202099834627820725782930450681195737323142948524249378734634592107995203263590674556841480457019846799844913840475821609291606056501188678179889671357894187801959690360755326212198882891647458688982453166787249498831312556568688612250290037573124812876233126588077428584751748438952325757822415922891264013196760190782065627105632234988808645241632840471796121527985728541027867484854024216337868101556162507784583538084738579807286290142304443111506993271702564234200017409579927049790323657696039470725127103005318561307016891907263018751676887734448074943720821814288474370521875505110965728696261074226231850983303040757261198508743128824746943802211492632538997477322634606323749067351852411667338863663921793921632292027416630607380326349877762517418970157474572969303828940389594659040505317982749099037545563794639457433620603918164356757014041826939121909038825964187114147165445099815745686714511050544817064202783351083212167768168820323507988339386381883535827307588043365876748119859310192914329468768825472395770276937963563687213675630029131119360499645919141978534773646414698262855929086723532745860224567111615861387740262536090086909283364935569363419608495039588569738824299683915750451625009623998075542360129373948898010081429782129767215678224990448622556835032173291823236661061298554046669120020263860179192661996156363327917217567231939401660512571420271636801220670179869353213912978413647560135525814471467276099786890440553837692499591062916957454831296355001071626613239727405848905729084238510868664754210411646998653690827351198904494455233345844651244734147434425455017567982079800462861150725464118655824166212861047204943092812561747733716996649556726332883317844667370613898790353772852328860475108544411483324759233250128203036106464813244560159308805390820906195641886688537340490167045479596570788415256801427587390477920420221681779545726666653106485212476747525389409322228511066330523821972486154583772947173709459626915680883302608735833623027102514301021339798562766471342651814358579329947014380963070531688249515537945101010875311102958799376374979754880552205221939881550334366860395681674743382646772154597107245984326974801699534007506893378716733645565074616104341444574954643875400763734602813285890773588741271521412781746969349480449036179348291832941137664492355512941365315861349927416172707974138211279290701788615988527417655913167785781326132891021875392767199749857851446864297797226568593629238006526280774469192389116381259021327438433104990983498244969801522689790356272900064545116349817998834572303698684399934699955606910074266626512824301500116225854141806177582570445707793614395338696534382434191033799854792041293654186265121971925194505121126657057696180006392866384573932877044374401279678045117521384599111092224561600877674702911678509421887257903225655016383794793253477535031950744642024073927850819529855554104682071249020599561473690309563490241830828200782939145174794041214365220745668374528066309392920739573079503558547103367417733377018214755577742014507590349725987455393544031878668056252724550187573909708666497286848117648247798948967382164503927054192732614889504867553284817863729330738109126827118042830530803517109093744134637555944444521998015394149435714018884915876240970270682418558838029174733757427884359723021367827786808145860696016989842951954782682416001575114427030961192258132922095793051971467796940095775543011681343705315780425517861011679766462514823644359418912752760942238605830558720533366751943969739390263494508560327951382243486008075231200819207256422440942581741980261616848570934550663887998584114361450996649770605405978931318755837415448708998183784156088535790505508993580491893539512260190780268574906308428096430375296456284333753304145834479768877174911001152730058528619574019875382973351319062649519203910646238597255589602402937838520018242841111590116486656846950817992406509408591471412717877545797841120077336677243630744350684598059458724523934304479775540161033098641051174596828793743199291637358795886925657639394098201889320158840255260178329397605918514328679416197261430198519229318733881211371913352104107689176402533068482212308767651585026337832742506370253910159109729876914533318281942652737602526003129931984791059817996443764568486253904813868938499527850759094143846295346298515615340581271235735476241113598819588744990828621772320232034152794054764328172746542913044252484418364551157517169213378998462650725468202966564660251669531978084851264093350163431116793603038514803141339071247290526013834490553868305232618263198103611032471256954235158832992828260891532341526454908783281333620736572623249087555028390003959539177853681769812194673763407780385086999514884876700448377563186477975395429287491439026658968319593671522146561279294298674596677387624694823080045219170325012705853021860556240812650763607307464101828073605794164859862731098977409649548210725022778459126636315069667731559829813036483813479781961419067367595504414741537713227694079070841293784360692655324436751635721494611647677979814722616290241470434198251426028756839011320370346448329358729309750622953661322001905396947904993449163338103657971222226906897289439100589971023867902757106421862140029814587299556476182838936400579586773189713155725837581897241485115278296541025610846151014564627566213156708562624664247223008489179899768802917346199404340612766529713912121622417892224516977101478654309731314137410466977282385151422095308407651374010861006441831126076098995727046616267323462521423492704040250776987881996665500604782823641321808717162363746671601365942940727884708795118924123465678118198716752358254574459134184519344579214249792483042192575248323195633425293849155541683587082132618890250350794545032207966261675232308118233659724513162766271285532382237481199983129998902033796783350394863313574652692158495254947459238785391375823404613623934450946959096400837320222659518884621097298637591950673379620320102187763156398990868243723962837463165649627543644068168276451074901296596015227899960667928054982631866722554142248134556387969719151469126850001572376534230946592065653882886759007291929006940506481634345524361351168561040235467806905021679931245048353241740649061247551863516249630766309940158235872014797247106795405575266308643633255789615140761393996126212022599417283487240009130883390963823013023579589959796145672070925610711129029763184186664471639590479801373506598880949660638948743549189580694172886987719894549898272498405068722299114043024750273586855098810074159124236689378063858151230881918936730378940038319960817847635077072988068899055113499806843704097531587676844301427981118273162231407400663376305039695103041533244857184400071532557757924436975787864465090309995131457964547046754063819616221034396954894562547700991027177762949494702342241609138460389635479943807297929048996302480742285965128752793855243710520326295561481983946668841955902074168958823654816551001256286230127878550156779239430634088877357974324046424902326081192717004262213313307623191966742307641748427108044842524603356499217946628379765277876382414514058899633135664323571890190833669863028172226534621105607436135652401312095302515165234859135454348777377467898182902162257544612771493281143910531104618350882886818330854201189533333597149686289851060347562211356095804128740836263253687711599280159167234345017484846967271653302905395168451027642048681102091962641861872048414926972928308734696225553589546266756320329778400702552397337439618049757631603301805939378065728271104674933678098500471337679720751477429759365909662641936729721658300071732711865221108963287997662795648275219181642982445434218719291690367451983217355776810593466404986205773177607337462851433891036707337755508560137001785837136962470812983633967129987085115245544541160570390874951159680259152996676357209264506121144117221066534399998195279188196775148099631940621765406658922596204289620678391424706181087649002951546451457032276385012093044527505103418626244380518709729194726414106352026694807504933452623749540191378998299196688048081501615275404727362724593076813240103631797997916738458244195523187840696208773590669080323646043788050159874337911133453752287787580940743576363879619224946322403548358929766282206261655314972554828972928595996841544899744466191474049768909901821864438271500256278902013549711553482338825050516481215392270201363900204907066794577386017826661875605048488700720704052292069123291291174367095589802038908840708539372347915551629458974951660235188382708217037866123070181453342022537164075143036204658467016945704351588672480141958460634364665330582635068863166910900352042310669127587267217928467507372726333608216504600162893024763014575511976443402114039853884062781034755321138712735312359927604040165522836215884106696689189984596396893041168374853662799438614389618589637603010352102050958943019396176532392913311782263411427561202162312463116442663950656805574540799984382094686641558201938379961751027788944074198729989314558431563457639525400407092518017429286584821262922501821577655932005904842829878093182717686498899182436931683906594297778048959021856831878883127986053917155565769017818492244261927215381429861286943932500593013810951293070226666256928158276916404802178208830160750516916485201370929555318486673048965880155155500349772435491677230971120222411747056252698379196594301415305904908591848870043640947501703696637495457629003900785640225537691160137913787841362281453328086766447428633946427727145319949756247135846206491178013162107545982409809531007878876903309319513034376995405687301926540908156671231477346963162777852908759419122663664947912016967787865645172013830593285439432958996852868400974476150839590720577268536540904013722791767455599272625494989641660639917905285291467546310402949312429918964099975661104615041968030598983495595691606677826129544307577194234362904977207374115004638701333995958257896393925721479973214056158191714324133966440487531181607212074085164410288735674105577001001845659561174242977865475465535514559249070546905137459542127264317594035801649248305496852264644173652054192030329393536668160456314770548116702955349296542839216572827404425576983946229759927334360762891006431149718478852133523843728447072545188595132582959261615262634012599360668276682968042183962374042719190177101558563431236625651228262106961096210605179747427007881006462542404404519698171634126792884002288026067853894310400143427266651812623317938556018771766192837337330994937260093432864309879216498710746256020099523039274379428953965175805645557758506557417356411640169488046419518397342438409808551471997846867956482520183760116064282183168449460276075783673503721537941477804705352957877855650360214287592079732192223591693371359746334414329710181169084963843526954708107752724795133750285589599220529340589382452170434618435716373728444782857558720802736175123971641090280605914879880686255577602791115257298469441566814878577173953425832856026944840383928346600696813890703909819672278319626616721950379824181580792806229497077774857677448195623054568573988440333569019307108340895659187677414670984512389079231797976972513021481856170028006240281881753912662121235777859932181524789251793397965995249689854868340500122641419195931885228229391077001105449401325875688267956432616115812580701226573778591681228294133090271510114979347739998639059959119527587293448948462155292458011790099489302282142068678117450393329676349443450334866727498496107411935344237126108517451603535401371995668833974977027389269497899217129562255501606651792650128631832244910189500182086141084472261762796406415369554613300913033660218643188264917367227583196988953163091028035845610170957949444032438965537163930514503945862097114245217184114183229876593336995469730777583222380778817957870089205662048755149518328421477216150337213069714262083235406037735271179032325879034059656669993729084086870210087002193556019971964900315915623014572638576577364887059191590397334949717543995292336649296246863995596104454770190864781632880229234369938678970965735284194554189305794146114933922575383543921515147630208077020323779274766502746680514952809979168368784574431011661324318651261488249866711177789750507964084347638646691243910456446779293429076489603179867918077338271563435621840517226258528462135674450318277584780651257981603541613133088773116643380333573552467126771451982520365987090704504528433030515854112837895863888083293136074960129978210802138054786276908503536252900551117127514944980695980843392246290009279140757566411225769400404099061543156809070705250111726895209395600275242113371750434580740278310394134341642003289880090867702263683002715888909224868474925999590522302324154543088526771969466772604055040398320582571007638982383689547116950749993823302935852090034202829121604671064122389429812599657578259978351385253484711620775243356642475927851333588059446856897506889743863855457894132379320770584285704030155276492824082416493733159883255063213493871421089264594706298327556668576363433061457522067113074137074354366364701713607755113801599155580881752242730985466328222118651104177180415184385888409541532534815318508675895572556748814441256942721181070420297556125699616810658350170214094052515051282780681901704373380874149326560567237248826046921471466422542218654056208558760222048673125780039226786332197918577002895489056187986745968035519438794498032443032376580574991527561179492334761767281834050343788480877366447615687014265059849749367894600506958399273237802670068364544068512673590574257746792744194666727756364561165978132189830427100001210361392785542588877076573591978158984989639460322824337052527893089166682680575689436174535625313241366921160905364938664783584750953986622758927772749459257288033495204940814380661774386194916626830375653327431792021937466370648622138201610013830381554429205207641526318930623145323976228344537919397898536700881440816747857597571119429064152783317585645769964751123796939651100229528002082023112211768193281296130067957998881382798108788301260763387566392970109451239063308890378703457959209007359979583137213491788474223497397961474964179223481154913652402802905628689976548620255732584355523803782135598693254018005219807719958936652874424815753780548443441664957661637618487342064570493807222381473623167223463804095111712332389597767008042671517736847382302413359015715194751694633457633968428703353156468133338835163289231028907780928599823857312662669970361334608337225845696832616120113593700591739358594847445529376720965539122876575341130500915807899832175824288298116207857835642841589923893016825595694762422182202548093326285175686788817129475985357600044495204570486453883459204260763389214160700841654147931921791078566811830114870363336102098051225716792587723579025052834752820701081393882317047013755475340878191540226433411568387576946259089745389945145201942260496897570693976058709084640299897031075274216581540876170587018693545338469733821389794924628465658921008758637363611790238289165123190583227517885072950540829633823191394352628716079748799051431715494292210360555692369136734909870966432959407199833415650107281963985275395103751146747518070107458817017076656648550384910988196918821224972797120373088159417466826917562062878327180687526106152720530731373231066024365613653646086017301708132092890706555708899396242105947663901105209785257792317187536405574715047776641268222275134308808989875020440931107741553050359353243664227126349111984686545633568953332373671542140867178021154901752392595396081107796745995302495581386988005853521572163663291198114667819576416850012313618761676056624591362721822563882857980864493662308349962824317360483509200542806304290224193624212103327867388775163767686500813124644847785726615035474278258020444343020859181238339339769497828178534516457308197187082924505723139553449113022121060082756358239822844289316894191912806415156863501535552584554152726483505864474274877986947820267134656894497155280240048970952329144888228131582746544318741668615067228845029573600311893454998002370759072527555362917804692051170592725851505097960631885020641182542859553451754125911988299184317597042594906167448968852694335049178519787211456276158385286203477676119839406690105033842181240456092547574406736145429032516871104806736437198644779869793387436934663050523955895026786310881192946703367693298932221119091290293132818082855468725304169580567138116279145096824760066364587102640995319786107641569840940033107511208361222017806489148354898731653626517706533793553197015351962946692000961567720104456191066516301957915336931456195981948193314631082002669209120381429113409866022439670210812137040325702493675862366487991237081855871398334968437010494850173876129149971341305967182814706135422836596072181907114931702245955625699030230893352565885722236817185060739623190295136239960661038756620083112742676419064209362586995855397313696320417091360695456465080597872146971241922470429163543960646285518195049040901603518065485003582935554730122850642418674062962678108049256732298176151571748796168594582135303151611426103809275747824320443323265578359379318570559202796008106816323143690318488232098218633354349447884358713023912928133102218740247685796797218972897437388391246633939051562536758605214047217578211787387039231915418602262755667546061040626733605418791551573332270349579307880086969789255476262666396923021431760773251745568173685504535350422664242459417730434654720873495732996168872938526189242752185305324834587985729043951437574738784023180885967567001383359468997431103501454916796688514236367527948498695807666702240212152054253329116716989439267997716804965471994572262387026905518315312451837910103079260042602948186646582493874002335886087248722386813638898305234915832166494795926403057372567316133659202482904682356984274687334644636459059514442015204191797626666399029996667321347552774379030057906511810122238758652890020494909578496475267741260282468056976477905466678444700832467466864490095182393289695977570196435791170301620993333003207103326016882312314419930073542636152458223314939601955090668804120335985066632985836575933747029869693709321645645203809166487308215341402217390292863468883271865243751235378500738736313906383708103811755243592507709063634986462803597186121594589503191566027934191541364824270659505510997560199652134779012991817303465942111542209190157034349857620891592087032067918365277536127954026965632573223991321273429759514737647931575296469643477049422072538121384310592549890747924908094551509504015270080356110414975987478101900181420560998782198079809267714349538235878127023112786387310369405658030807679784055636153022648861675624779096082652096771097537324689913145603875031659618514496341159885576160194050330979476737070654508609051056289646862213192471815778379182269093785414677198490401709758953711357988920767302741550183103768228579509526516699208940590343589911759237903027813791243993731127350035541737282630249163862490886976977712558583571627149322915002288373580354888080189808327163206541824244556246165388688395951221835261894227893512949225732641156382275644631203112746001254870554616181516518750711513930662027452988263692832545648266552480747845293989942167776542085968594305174968057499508067147499831212552577168752236768268826358460875601356132341577632308400228395256054514209724643823544527933250514728319831962141819987680360571773681801204457293288976445996506791340186978832360909369113213422500822947065342616542863823095626079049540996182227145344542115788957053178482298074584708739456138203538921310181661808490152389327627974295840344554621586520125708070930315182197304605644619000397846891248295464477883364126127548044149620833360887007984258438111382518062067370377251642840134405316088330969505648398063902911926463757400637359333845266803746312335050745662011043806355995928469590447106730764519533965739226040777177797026770024029539116423583547227572388581218860957581614662905504388256713539980891753100737636672861407176875481029991529563506264540094221188910447155154433738264962030667286878061591569781042944851992375351625978538861729813861294509419931553089273651666779873486513274247284612394483762031799148115461772257642936020826842317111866166814037049926549276629478533680848940863194147112804021683576666586460036945136108478651359439820933921096299051911185468948121673372356077958289492255159259297133040284811935755387850324025544017279598143739255388616439371434523684644157724417980293118936806215794405311189912992512195259666553953617767708586915490570453193142095837437664836531700664338702354998236159267787560364359852298675900494073785400633768450377579153637547090313128258529263930238320562984546358134197579065401131392099151521310795538065365900754570495371427976944744729377725310303843183003913683595303728659490841184476279249114415103150309865990837740707602462501165142179614627935273296157462317610208168027171295372272614329281218799949905910762946976363628738064267186863017022890596063276541363005144173802988078096828192858245992782937318135017201623634674555988980261444601629637967368327997544225839457673400741392811291206849271514846705789538232074217098421387312439569887689303595171359847612775802201454915667954316493244782017998790162252507632605376514370161489901322094359472591003204955612095027807080109441324695308279944697379885875718330942728085126450143660496467983453241695597887531508240578943703652471364718964380591785487009166952585076284309350899030517252047718756035685292352355922570331594677619628019074478701883261698963638629779219156536304912041216120253560339419960066133047508309044139902346870177248162231226324784905356008131852667601027229621929117272813587977255364148899198157921343208528810308135100985703193594011902767953867156182938618706291502414394106231793117735545324965275561943141843895048476251805986814760099296101517666033338706545273317179531407463948063161321753058710430449082565325449434715064774423572786204182179996356951766034479739834466522209847706825922511959693526986839056387252688199557965710284350964510160168935110186707294793429825067557873466253997163290941221568314257380548976437689973162231922423059850965096126867626459762863346198079713652653516801153907167701194466399165031572763269251408258438352657154530393113181885818355007696917007238888899222878687347387554465732277088437667301511326058979983965875477011645826599663525069960348892436771500179395365914451704823771170222387085239773787077689539494316959141897204511936529474947647908778246529501748840241132889836280108930248236133712892733837883598927161819514444015753789023686316788554105562239404009725112868516796322039254182799023024971053353470423423187711923367416519713457766088028455293328818212420470397047581722985850545878589905779653522378802271059689915592843317033278085346763519950029172481767588657636616608830716014495246570142255878365118635455366055377798982377358831160250533160085458024374584038284513986852342045149196654496118588570492152363398552139510755435298702867051797018889969404967939347492971147496019520269132679315254379545713804238271478318470116219592023520124504041751522181135645550537083501345127710079072771676840571560981107052200237669866524549031291577417805937535447998932249571673129561414506193645301165444464574989653448102988627219840383451861409957269323729957983750905424528395935293320415357772263343316144166697925114954459982021889899920615112770116157515684180693921400243835239398468959650582704095201513254716355724651664222263684159214451041495483807647550175630283430995172450846712287276682953741012216778483257481241773029492889735259509383394645407404836038354971181397983884747292156501724212075211256931023629241374276415387751043879695341841731267497309161048679637121207888222281557878767909880149762948907748462098033661733567085613819869745049187240941094045490592537148097997780978422629470980669835206308379284128580710338586845164510196019370362158175261368000026275844399464275394383890902967568640867108859330891648050195831163318439726908563221103051950682854787515258928071341899502613723616893901703170706904759236345457214616309153716277561030074534594388599085011516542789523508780144761470534890758066174910787347171683176524556852146412684606750096033601025261159049353274487170803314833621947078893477969435635455595186985914683976209448603114244158624293547814039248785751711857705984058379484080918804076203478686754606257854420907269629752111874928727494532559463602049400991829939807016908626790093674743107593341616812715876955612238324299816350179653935097742447318848791567761684420861329952222024104457361999832034376211134359063802703185380242465453811714156035081472184104467269820234018374171140315800387099225830763865351010302963239898367004481198598206348369275459535368323107704567013848937149081753577272846188631819910595271431901798592034581109471126126722160241880028115896848546668741483174492578960742165354980579241592098265578637018146470527690817238328832709500974228473599238296934865785636661978770309953163360275191623648981271290293225463823273900666977317121751784698723799298244353208732047406708858281803511282877029017737009199093868345922017585174973716621390763127051310689554941756522437525240599489755660428737758696460173314689597325372064196704008197320994034938862518737680723828842133397394289304308468970395855626223144649265753925307286420597228390455150154471633113380336619384405867623609316758650354581776522314034126468664845671552979182251925132202918646292020350218764618735000727785686236534602319267791655571919600506095853851411632606392385234737958411901296746162490611361305534861605854095431368093089504399296382472317186542633667456207340651278389750075542942437010290460560844219619645870405952474953627862361154953500518544096498285665972473074346612402022527049243636656233343400943420392276243225387047864991406250664870560171106473574788633291323312983606553381661727151862158498148373082866067854079646806136828720999856153497659683108445747367757376145289226765865004667507869619438454100721166274306082087004009553444405162668857081780551704387892582695988492567196406436484565734066438719421570590659857980488218952992059912215984751458794325933371441640541799701550627153192646457357850875364794027006107446794074300826652021700936471926351376604467371076315231174224529812662564145790658297649423459454967952819307033079439538784101842344048905952886702105691884232742566896015629432828907152662647668054576722192919302477908100407927666283314563453162978236442184186514059790618530960767255558238561080355511162343698086859085747508381148958036448607582802497172635846065729203635968258204165119107067193819143545910833395567451082379986372625756588521717038122486609822110514565494243129563034100324461506053752242330035940368553512797048195584820925045283718617649831149448344275024351293319390292099383724369727942743070281566971625261229126540164232494547063140953309026126315671595262609381980856300618759887539739733821393392090683834451505458705712201316294764994334500450692700725447529852499220842057928726904213258566864943820016737457536409773660978844836367068520870658119259282290979050754666370323562930848673786963322370499303729945318357413981127344327225256329123935183167977086541024646906400300854980578508499511969247240876540774516102861291756848257677192146811339944905881443996768644746992830252093562337835248604207550165825014974043069689371853201468560400339094573352381234672193171793576398398509920859272204535559381588041443203290035922173505742640202335139627964915217305818315858070377547192893837712886273482206471520654313159533318020131999717078421213605705264299555979659280873140853839785878982386727764017396370039532805480877995358862024533216260703138932801119322470425529638109670148947439141413833224012344599558527818522575704349934169367054536603944157764718110925466530341942321332492147394861556373665873066408426294551478792741632184927486772477159355161369515164425788900376762112750120700565576135254046762156594122034231815951396162927601051915403600823150500356934888004921332280146497282434337845906663557145144243096417515859919989802541928942400513650494794419983839183771572788852257778193497271886885301259521924078322942727085435239198286910606455988383517440191880007330886164767997480976776821000866984994750919622642100680816908339489446005859986749771175939092350503194991711944364163905269866591383907060708446227582776388439620948435251332712507494292577169716849215406262209466097213844674115580730652251074484928540725033081584023253893921707176378571879089896227020935722714725293006916528872862687230452527213636825894851323022787171265026371844920885307534131874598606934845951130381122183071966996065589605433355604061820266619856921424065942888522269655407765378754394719240770249545176054136313334711862038153997700366447247394473898577711180866845221119466858314328555202912950562231187686006365209292433663693313654283668738758552733945473187440121147180211598549690110709874068524688389615588407066912767478544169738363346703840696348166944512174568783518643390254474729854638398467585186923920816754245037960347461991615180823137899451983641483515737226110609748270006541203168274190174006209684975351775533654576658291787744639574189586354366865949177801197181160515616508766645055784046059732888317014839561727229142513269234588884894495450916718998449029554192770645438865798077728159933048166660900331970338201599517065913887059582206911252164338073139509319814528514229190600132347005079696024829156095190245349396839846495505056420785240099731159665245249217238613481446405359865664130666949701502356348091428221398072498129992851591081957974312337684065881827093501781580228028894446709611279313515779893910290376648289823981644007308745841942696306446167867188226693804297699316716179924535843639198334601172144530765358371102606143656298253091710380924909786312569006108810066381817709485746041819736164274685600534788896195138827200040108339524187170547425816542099521842116229437570229307501775222358856821780736623574302267786807343504974312663720950093787339032796859896779165975181141258833922012363069841285646618995374098166078868743139011462296146703889701019048443515159791281111838476764004343778952228796359319714147165437673427079955474026006489114856020156333722658636799237314066962101772492217310073882175532013712296294970359771067110282974385353855173080162427138995002742163344303984549251702582239831627875925340407042252244665782516022466816596316297950948073130164693720293103278461223924001669973805108637623278835961183959001415422913580417045334940867908614053325692853776524774649304163133882543801129026217235955600976082612709472650264754489405955246083015207273245824705471770303657876003522835941883298789400382490163037879152257055647124015664684353792019215466469212363921207716810961855350612318025341818648521818809679882078176258105293640979593755137530850633578160335200125913125530550530106518032743424550863556751383673942265003000732052406212597788189204882318121589577714960336115227784346110006996750455345089109277740926150381038192382098410311508087504411067042602682720841537645334449580030134065032496913880763693209508737763953347245787094680672441688814132952499858801280583392862252651015920965168220380000988340388714878896619327589222099671607361242159966636415251172226631309186372493510782353959052673268846337901923381075328438853219491156843094074046703021636627264581488634411562178894569040843288411867127294697868361296378642167007402076353824393304353490564824252369149144953726805171277707911341031240012818830447096919884761705193547896580691933199310551373280376001213081245126974606406998217389962634025154020064759962110184928481939148601843312346110521888789799821114069631365062627338834561973167246393016587856518060250008376086804563389853653660825446151878567560727992925373295501138534904748159868965981006901692799882615413108633101749250189657920822166276339548912110570112938243658465886982501295720098428280793108842800957589328821180940897853933918483374416776192449402430303096527327357861524069915477626670764668200178474608400695733187212593364312434759198739198810096139163663612490281965363780571534388704358062170993896217481131423521764496497525772986961219630966296704288348492568233212607230728962322041297525058433023076918556839246968425795178425851518663002089965610401465132480126898711909730264124231011356217730690666918188122304987279545109320184873088862394957961097462959224179767369926297678244351187613498808700226238280830271392622355538876112194725582557270980755489621087466333355157684802638405825124322704763933960764280100690987674892511281806882399092750815926179835110677244789175396169318592244212632609429978972792914227018611147652679874766287643478409700027854598268807919322249869738644422432813676025271930061651111131897434582090336840701374741750038799994721179604748474221845915174559141184346159650474751687729628845128167578388070983604778914828200493167486910678268158921761785399134594908492002451475687634993973916712264714355204541709344000306994270736481726696923398562602581291417653512722188941602483297308225503445693376918731744789949285326735001222535467484144764025465792343239368210784185600519567530899285635150599662881167126538056625003852984897716270248182037373583621267412422951832554641861444002824756160866833652148921848371149180234909211411474107604258452621617713146881677264351416569821494632275396309496047549048306503845293999372836538265227906645727288353103033709582921686227126969453587907563047522420082761964906325436887373974617439126435287502027343542402979579389301672810028660405928894628518663429715692275907442131312248487182264155017681977228520985358364380901922148543473300368049101422978349144966542881292885831583693325394459111033409110017280864106147112510247105210900900448069385557189664843139635391871141537802011105470167258411045989608531572181726321259794468717476992340380101386263856876452755109914145650420469246033966636987524597755122263185009377553142430292431085465305634872731024909672057088238536205267926451178965668155019803550726394868264719187131478294254776703225828164281514460717064100469661179850815098244137003663096482867382772346363846770788036806918718068870236136480500626208114927435248239797958961486403855599491924453127101801678550595004132741869883458383724406133384305450054980924702111554056408488888939197336110388122166365101802343498399914817623712982030683898150899468970972647463722607142661285370683927749767494264175561381482647359649567370283034297601934055215025389145407378619896015730986673869504092431500563099597178306099316005911601506454444907340785477116667141464514600106804945972037447300340357219109593300357096280353387903845368014544140250598936685673771419839587519261957216846634251224173688332035630055016987454842446354220695240353992603903291899445944037526956479823616696932254873762849575539955164411723945806519602156635937820877607849478554367396551758613217612813526934165262114795786430004683171017655939482437737571429949966288790103686136810929259461264719143659516973126596575482700079361355577656511580330492743806139350156489868011681525732383611399871928604587300390105536768659700887063621605641234594597052825163109962530234701344379764077761447647227736380696511309679097718847531694635294544478966196866118237355411252270630473609974207981315050069530075623245094915190496345037924246888569586590665921870860698452758595654365258147800241627079375215970415316164051017042984049837688534857822966162231483104910708976362160092070463348207633981655813521126490629760022405079278932432384358376861261871819583777177215376848873762178849562139739142486102118863776591612812852298501447558572472862210123491026632914291821302753216570151188230639575607945726410156714474005926891131224541223643750107965671126311663455517076059464031211698786989223977664324777188437338625928425334463234979550477992722342182475869596124199318714644828373621682253523086557379022813906423589213194063235737655410091713261148247849500020998196215661388368360172411508023288345008279746488576812479221083300472623698992173546545081583705720178434960218979509211847299821733220981769863194163052202236345341548826865535510021846063589809067916008777616481928401454293871716579781795637367166298554107806529317835516322760422221921336254306895531813766997897914676548164327388075738578176487873806647278688900444804411937157272560685806680286869930418052252453772733356103755997334501726490673754577912533763417414611752792841052570730537211763155974942668717694531039945961628546731685742198815212427448944185306774036226714090201302774116406282851075118416783747420310209348715242525630429474738101682683227161248419029707692756166254055913668879653993366859326359863554181816691459791258795212090982980056315743161509430115932470111326061054738946527074222026562302848679056645937177390913704387413221766565461692062189183284403335392532016925888592598143463645264865289630793252335848652674604839572554187983652383346951707387295546697008993522572511883680126338483342326536991272143914804314262391860276187927566735577949447660198407086182823320615611925835175677467540817403736326758301629716929325484639282084070874759166464006784264456340383117397418210807836415093675181093566247400838305387222267986864723113678840762525700882141182157194138734932867628948143753009502056061466153292531695188545303833545022671119439432369280900209687290451706631573767172448739812725009403483530567262445085139363099501037928631472531124435327673042501186878624527050567273475171227067776399449588378017630470727554884936057891040623006737633169653107064116194504385541779468334903678092803744878382873920214279093612921996574384944461190428444731653965595930376792939700986988804557692216508239835322710655576799672375534614152935694095067082122816279235182142646077677054065468264108916016355497562120037794368218591349438155550524090658339784199684731343877979571730134834100411288836876744067287054927331751778493670322533248130276363526905476274881913644148010767332893344772501292520919416849622646141781048367039041338615962736080751863225980325983185304379585600570620758837655975457055890050687668188604996945302245062604833308158748442094663782738549849807726637261633262427708418085873292544447507562400661037504941271842823273409061493818116268364273407771115487108942342974101768893548962674762649778989498520807668278568369783897987582354222529995562167935476408912970190565888589258261412389978728414103456105917813570501779417474737855621089646288473481719523488103739689967626420575069456678911371201604173429992690000839687672430212189594094757974109902129865004061580666065626942627639661201528042237257909806101830982833799231066898299965113777537019740514682064027340776291524264136610558232991399575246952182986458469103203345814005628255474666331385857036729625209957294882515801375889089472398639956209333212766834591030884708361225034639956136831162863894436441508022471848501339722115442476273918094184774812179217312037966804015034500648677262024033894090675865527284742465219091081930808488629182468720572155185514174427881481282972324712711197790980898148556360039754903720172766817075048204953251538624373559298671854499685999652972953801928786469968882095426202050906550969493836131517546879218014230150426840781320298491506426956456924980301167083822569126269592083630267441391155115239260382431625619770439332649617572613002293374150314656360222045014642784354793455976113416242005275878284281191921425468482012308179209631040791960407096792848852257474327327997948670723309074548138545757323266203806570530693424172670097436802834236043507747393102056400983984994018075165067483565125987213463039903569093453493416186376963526250630812448668764115863772763742592640996157093959900036192918725667570735686355850424510774864980541721499846181058441816838189825814509257635128955649061020934565186376415586800304946777528230832174215542550745930033090406225361588821781440528067244490329205575496148735059000477040226948614402821054379249829878548092915769769344155722418363223695092823870614168370157241999624306336644447973950447079725206391147131473192012061207131755471533506044168469037002661997860844347867415643756334549802582960764502736016247961282281694950526798749948813068934912215505387293420633108970811446977926890286170413003555559109422584227121947062224499844539236303287312433056092588341787014321816490639289980038285577673334256394089610897735224830959101923915659168474789805325669048701934504399318477329023408621779199760065525324723725599966734309449438525879120883260711570296048219885574769194082602180044641141391693708661788344000347205899597917108765264624807591664078617067751919142746822180428247794097139658987086203216944946962184009181760098985423080235715185925787266161056915731591114446878075326214254496306648595220717204744830285790388546190616809354210182815266049955759652695448231815770681853755714656423296299401488533686503597605482320519501121526313371655201192201127532552184572098719578551557959689554988807207285155333900272085994794554149920455731341798555829194913925624057825269312544033341002151828059330017139741947186923102325304019955336278833057055201124540719675037380868502530826640738887295272796541279711762321962616096757718286838180032340540801843289706780513953901572669083056845534148016217888383273600263555878011216330983770186025314153886842198376131523614995608359553074894083498112923242443775640046376931052043075107287725699673073560495016180979137502329181343188604307499957688684710206575638939437817833147932639051133575694210433954225265879764655942544533916391168099694669995341820153116519431785631259390953896267305352860878576874901251877618794920088468511347859315346159381013759801481679863424214185438242160716565471305630932635598822919023169472560755236398706845589536847917238123557569185254586957777860241119830056852811142633367761933377948036844445549623576256237052730754327666751700006053072827479814294335136305092797788346159673676772265582233559225868809263107693213850748633193257376991088986970035392384115077848391408137465121489136225142403708333220960203240324288856533787889291105089382929456147241550861817786473509219695386432673840622038058829880505923926240039753108099624800776023946676052529402017299850606478256488833232548367010678131272775356756516354857209379009399017383999956658130387517982330093485320201568288964475187480135097184491691457925442420394652665084327949241483169988846295866058529570148815031112721187303002111751658618880358381608904582117705415446902659466050953712173480861285185023085851859302702836023881893689464576254870741651315574733963362094854630100996070802903999049345725947315483164821236021571683455573821431482483234330837843563399489246831505775846381699844561462050158342212738459355448776545491490258911741409418153214189106622310845591235736011824748921123458600449621864380401358846224537154401434578647811898001672398420649010377917050911064773785368096013777579991319668751598911758299380017118153172935189005744863966826822536856251070954907700352326466125974716754411583070931588192817110439064937245805327532336869907975023837819124574516495758564122004887922446769512537181477999121301544183256075313383963260534770369892943696949103113265083037378100473577203839509271791839889399860819183354501224452173257969247765567513111476499720813398417006919222889079133994084957875756156927445146507946472455250239269467144815130030323373486370399287987807077399881129419324909672488889212307337070462485066265496792577124086770757555293800215485412525142631063601723701560826829479990530650928193658963600138105523459412250578654597722460445332665055454711865237023105564728339267805503754483858904022023970659470536972742148809085890430666278645530816187401417052437173231480996038336975584801965585064721828318330402042092243013296223212583118065442186849549107929718510115174130922610736122653727130563583346579402178439359041808141897333612865600310508545077621710404580359588432515147039047030208212735955239062385007788394598266307985692562277487178157108641871684323502882922546804686158939634284887831356321994418393361331303723360008068724361289872197366109334516440595953971851473013740615724102783025426720511817053640515251954024558395778231253768334262170337145562543288432715731382506658121678044938654794754015440708508608598970605479749753910752455097288412782749893161521443229849594681366058428812374386314881399344713425807958549935926004511027840603255223621747891397847683299239055756360470975772781101883153286029688511517836888383860285166367973199805252766900529519762418517226462675351171675042636263830555030867989616668405305030734603262048102121549228011881508903691401126417663197750805521754050415710475522608615470377971586635401450842076815242191512502187167935313132267070516713514227281481545252190666306597193078156086699836140060332520894699580474021835796634876397797399251162398180622060316560986695224386896873533413697927152904777436978134811619308416328430517996992794509189564353900879277426744600738459408375735010260706312578119148109239626830768090097936483660313586282392981551266023769329808935446122071497751046214443683096629610955963189991943165322811946062210578381173235975336857329140076743195760561109311416834191070999492037714773174383739478773403052266647533078784308450618237942241499469442791605682829758409086303862731683333769238929594316772282464788616940082922630193518227341301545580056772644061234698243968415308042028308320698707448714882632225627449020713080356316871647174588112820240513721134977648662554140700119234416285179060797863213954109895280835609342327874815667065437898496164902464412921308002355473568100048474350848139472224561297816482826954656626769100399665655450108817688779258575358622242827661515740895207644895463722545705663554224475205778969336908814885206210042806443861637632228813435433294613692784468201907233164977724722325178599235226144640231028803185756645710618381350002023179848746838372354761134926294724007143355647682204294892577779194336391991324280337168819938923030138897001778868824829126895877847953382266484471637615322456957568335493700889228265580289093018352941118217082910828699894722710105016838005233239107547391104591620168874665018784523965995314065310381701299083351358638482292722616494944821487680514741576295255280418777835154316146742765855584963282882327773193436193968008611839749494974399299900293430785062962109513116539869063240232205480892433432012664324196547433948138567590541792838178656920886078157158643618059693496586462063492576578004471932840069162223091881363254668863461595940161092593225585308409520769414700521414447009115906253285516920256872387321187097384344963151152916285380757763371693109782342239720620754706410878632205428419907035498254877994623281248509001166929798443449957060012268540409679329135328486104840761371703485001945218061184180313054647763513163621740487914645062650824387649066130860920076399920791308482089565238080481081487338643780356669369359530884644857619844861186875459928922022961585174055816074197784682467599167463294155875549577620387939506536265973847805798804922946622920386177222503882787587071460915125900091834700546170631271637897263334692656792289932886848637070719396111280412606107113376167537651214989735057212429772026318270479857117275830392784459142648974228689592902330570830247439763304643589336425600044508560591837303428599805752921662554450271049756788189921719924060222644305172625530407533048631432450131897456435982173449640586582969967693478677951699722456369925882448851490181445361400612872709875305979464966386878768184298912873754649597952523754513067211925264035894018022813549129843190042427936892708180505524211034566375299263961496996168728329483298656076814673389516884479696097145056984690392083552853913820030377001289878340324941175569432021219354386825374449750588173531830676374855184153061610202028655412370978399028183630318033386346950638101964168889965463263641092607738690090705254143163111381627030392775238990423568848259551095758902025353034485510233382718541609965363305823487666287438737681399012470702455265038938571108878609462166886340931590284704853696320624884991503546870032118667436673684583362857274439759747456049582204534531306026635742375146522485566652540417373818511937613501171432135974222589943701279303282671823704931170319220702594577739053301215143505149771427279330499551687092232338217821286812065336944283029350334847381513367015636442439925417172891913456865289887422404203232922002923689603127515123776784149731016596307067600006748624691311252540737665558983955676774373469975107865499075199945530767451648084937196399883503662625624304347860537325501764680506899648922686898912389855171771975115882213887687483711813782176761631895418495755028063487687041670726521815552922348080049492758722307333612255107322181715164847247460085276908776137918795403574069499802066897992124359366085399888684737136897678625037715272937177383558435416165062494111433864357421151055942035549686100035583224732738928551429844280950049408989081982704338126173954936445017292592611616667344744491004453781391888037687229304558563458171877841905465066363945172820544831211731568019406264579326199666452500042482559562001474306347020446343018550142679322448410960766630645407739331077850331810585203503902777003779480314241048526843926916380346498395723920284475833990933857774810951228135257703600261313936818126889705759993174861070023144836084437856896272789887053170475258228403771260051178768303070948510480834729366789216322363140954758895925995803893724551923268360967303331574933345621709744020070968125293089956717274010402665882222202336272614064987716704767821803474705816224790280227771354214758871792548920802662534670335845502454526144283835106638660976627062145601280252686931279044276986868494937418989686428182734520891395868830703786622518431175314645197784723589331747810606258664399710172640039727063072845468943490706470789470772971135527052341036258294604574727172407045094118035102555522128493176862089288513140242235948079532127827418072655457174002366578779190556644207303808168521689707345335376217612220638407772557456070440462497551631495150387747244406750449102631609876345399506275094925746325036959189727051709358860517256061178421886041320341942115901228540644954296313584122847038014018719766642512455511585541515853530199451809877865914259822259132692530226654737258160875452792042888249051173804882087957186962198778770069007365226382645006694110121301585999561260607942277430604993724087125392684112065529497251820216613091409981313220276532524003106885408145451333124528039563867792004632588876604961353570393823759091861257224296831385618888380246903643679091081614373644520263035976198907275504291714717454391152198314194329931666245015114634127690514029468379363922580105724241862947675036282637831787191045761529270714956788708028477765090097852281753418895769070967206255287367071701131550245060166370536209938443661682764339872434519384407974591468388928120401858009542437835899567984392830160369619288434021507987856289270218406938294095183240440451806600652643741727663710183792904436784838723359381735703618927224367785320502853078645415841547954778248436754954057257178449381224494711497937143026346477624649435614334842293474829390619943989349115970047307392576821585693276123778672689723008647916262872794027406804399014671057577671258400384118104109944558031307067234443210264356665732810550641496156121845324942562970681614010852516950815943302056016736588635794686671117475420126490411806532069475544853438852583735718281956690861239258145501768220091892923140979429114795318596884709547255774798376811864291180055504625643701327353201831958773517814775293066163677706152388809123676170697614268502645638385591033991647924240026030771980950717891180991230421956057800704595691965975192402609134299376310124286054833680057704391375731099590033580593167684415256093201232685274512742009753969569094083855028316961084760342407584963184770813626057603361672600657330331395706826139791974631724066697944620960107288201419972678780653892710222187359444601503787383444449281979245789089776956606444637019705989686640304211370362859427531387179541314154682095399456589588770819926527304091553896669871294737785216354956975459163359699196294890119762185659500852633983747992296106913014168867599577745807941699573507602843971059833413513577118491193082338155907691249146395403038976852720281554253733301101521602589292575578292777757116304739671974027999385344422936458055512373524512498853866887447162722564419049836488609753279778168436887021465394334824728599573755725498085214073050434923718799161604744149014655470732052816441631798120262342510813580520446233022639947968208775260430910199292158821974252162347068311568753250515132944172763935601294774168004653528662741147381376353501960769825517804595971236141073425351996740836328026432968686676839854606329653300319250195198441496720453760447528787398557728985088928850443186111452581501464564709910752715871782644013295857570749963101185665651452126977210745461513996374650263486482203330103302601368179901704523490926964044951416782192535360323884236686147451411418875697414731694862196071398536107557338652518707135001405248955958877262763744372755444933605918971506366691102729000757260583954536351613166781074336923842951467911748551035108808947620351619089095182719252747005025437147992801426620653115560866131612673182167070788405332704335859692319559224681765161092916234677850871049213842175358232110948298085420381757410825864836468608606665275536448520588531879247523775582658873537559043534478233697274737577110396645081043821460778855351650316707398391317638083740394025174986015166103315284412122876547247563482770288723457928498391357208875416450313726813873532743963695533420002569000671456854500853681964787198755554875810911955185762078798535651353292640382093635133244256574450326315883508668049885245699839700419195676170456744878455545370814274239374385038606889923964963444454836766373493395021940271893978378569509215673507609587927073300296300256906331852370602723791517799401364185334430423790099054079022819340813963114731398954305651133317094002300403056237640520597125154338491547579046409472132644335114861059340831863411586443565902698579722651943287693295816721740764820866441700963600436428669279928433566748593762412601524086702862387648100367052306039175179817392084167238216508263624692199011044502999714007238497559555118869954497887925813177328975884491676251380964993003660517527812344001049148935214204267947581972319809984078445421744918391259902081316156131859524444865094649643350237747022717384215811490162774307875724526271105752808196572078720879607200770077130366499366469364615254045288187694027755995766417442734937072067869616136923638933002502040614264176635420771089970372998401210254880729225567268879796330437536045273740837435590995436798840982815953863715729297029371568552652275422532238110873990682376686039797971187715701584555334507792139790730805789189228330790071329992870983677328308320305680147949241351209702872935384178428464210034417552879840016142979905966778554826388118820194030356922039104205194800718840310413770725266864935901366182131866711403638444497308770534452169928655115202410830255620661361855245747529985651018706012705407192193131602681501291698533215832279052532798220550373620525797153831820516696572617267540175188993697093557240745264232533671363977757681066877572994503531670189550358848950177554827331214159124817232892037061361071135863016536723084857052408863629840571425182402745874028319844849538516788392536649229885288698451737055684816783057346842625791661817702264849517209770688818502800874516713868400798504133589680564560421111854718408240295687332926542566124345678318469965699695478188713539193177875894903923866897753137455220591585085171603746401359854616756142338400343873799699616540036193938995211996165621189756683996661427808296929702902912869582530148285338468848613519491546827371251362374515009147064949271526090237934275245835055572909109270060263587359781493564192347968732281050622164422619569227332321645035412304783031909178371051623030701905795085126371697289201381156369174596644156485365257340888464326681283805842322681808891709103905382244199707938918671606764847947836639843643428587806607992294766549373711518805734532254090649939425248599509769606415387583425591500171586824421356222012144318309876799181921471229069914125646957959649748680542764097798644142902961991647261806870680140595259077909538748400121542053773325671924036363126202476916726146438251441312397921198278808499322336784886591984083143453112964653957334474594874617483540139063332603470468712533283369597947305997669371909616425039049574041567653948645004666052805285313808587570573506144540249343496479539454246727983943784495521615637619189531269337210921692287307078169390786815549168385793609021858181566209745628407630562439419202988420611410370294530277084798014232145249424589824578063374241126203064169209898864468102159111290948465789695115977770688375373061722092992442215959335542879133837669555325003583327908926657572614155887066072666309638776949159795222050443638059241292134894675646233191389849585770885084060416911663041215403405780160310784091034637918540205460873088776544765707467287203728805915002719981186028461474811290003080610193420836502488167540780802482884558478431391800002859704469228824680080333525361398759683621272546505137888457088818088836699061323066586894459424344218984026843617055721760982777110069125140128553810807898611938559193942627800881605838878467089482937774829594720063503610752043831216967244040009778060512765188863622832306977405380921181508870639177117390793423024534485016632645153049580447175956790093539103079159096055935102801240358465685027390416146176808482637665282643061287921182701334441615256057680438435575721977955540455993832214788935298725533252744452041009714361206939442417008447748271940668314558370537562227642217039208661672498576285527652246534915482335965028200831954941402932091539997632836781874543438763571664030580560644770846286581466749705170140509412346833768338742918950348380659197596721812037483296344951998304559424834992433157696541880108913233805946854098628790165217523675474000245069360339690278591497829855869784632155832429667894990363478713597122989398625820687886139424625594860732892886056334106528497778646592786625353184457495951374996663519451650709146474879494903887535697521965661954644175292345187970958217978852993594534932162641608223616230656364972858704288863250954077486819250944009607077878261595570368450423686156349401662914398393004537064580496673835446250530238770519598631570709144624977713049543876944268468723969590101163239846216616429241846224083961017898454148229918777767496144968803281997796363849711593957553058832643882411620760995241456090014455354134426920288776524159381746941901362821545174620485444554379636788017867009763697040153797159608240118997982779327825619425791108823858693261877131917731065983703564570439005212815486068553913401463112536699998781995598775318918314330991472307238416501548956156039169730754344901048193839722916449308070698968715593577113920648179107694752464200504149412253700659617831958076544093898066179649852632987531281055890467040907062411025925475260649821911607423973194979809639503243827625830770661437936009043373428665262950604232593298062522762951415644565794483160562900784149979353712119314945855527523364769501769312675682135612991279041363124129613200675669612646597287963459572586189769250969639103177502717724451099717681582854387468860296553194157920995836991219799664278353914750244783343309409812222742714536262827940948983459577365200746484380841854569059117949525076840657910345498676250561530462445625011435013088051132927806966797713903197307656724405891843449890478123849742909319354866118127034111748427979748261844167753854060649423649971279086162217805901214607859121319663812809588324810138079227621878397861377096918763804905599996737978552442325571256945672339580953484776845887149344732644985045324266209630999172613823527394540600878274017224733919277021236874417393060028767667146811552040571940573121832246691822465761522444725250899716903198011389541144047385345154250520477825169970872586263428157388594840266139401172766241620452977227837437475220679863384001357134827828017172943984202143485872896198671102105524780148309790828837545200874731400970047437543411915467797959758049909539438794048168969306755310933330240267842125714399055459436172742550934606431881567867024695397636577425220524070883071335331284790640948409703979916605369093365390446139135191476840767030269406329767878155893572241280917929995642234521692161096234585960329847559702062262270665382722077015253388856367075599781635622462145075962081018087910572332635479316483811741634426942402550177651978065530920972758937775275607874272420727108940076039056105516891126527777704261514186025877693647702044428791593221513373158724844757815362204926797325371232408547911482967535965503243287916723527219544370604243749625928634706662896116502715737825007339300278331103251656282878824536926248822494423726782485957954427725925115346851728654960224912150569357192888865159007468029940729306312064277690772560412169062232026260057938921836406377267821166273608954425670492237688082152627102821496720648638995602706599978616698183504961475804019636663370173472674038159725877268218736801733068557275576325726105646378753715803874275674653696789216110842074510356518544489358285099838183495879309218390091087049633540769996906058698306260746396953497098085538094533849908983545793544054552620540387550493624370526053099658629971136835691221140222110398450653287805580081959051632137347263783375385283387411406014610997370811883803382315769584660610232263589082959570489305690860889680182996411807710490629999563754135769538025936364393392000267291738576279817352283470559142536831950820520334776438943096416639672110138933077614654859629854769721037672778015880210144183924139389787842502376984626768789568558480904762703830807532428536548689904662387675882055682739763227307554258891538854503221389243233056047131385631886602905159466893227895617191835597841609211509112173904869953004064003522506813646274076635656861457796589475652330945207100486868319062757472117200854216328228937407737805208656885416011710338642058264638394001154720569543528760588469759098250003139248609360064953379615000182141657621578033294695404344585030858246584244168220831873306125058289957044150353932926487489688485919883716190174702987836131444459505382307019729495023504156732239489088334825293651616053099272956479812219726445959861098723895404158396090456862009085923134122851802245528250694807151371325272868648122262064410734682894488315069519571648965216129675395098769900571595804165018462304344904514166482403731755007071881277413559948559148233521095369606262313623119342679516579856478808186066900934713833920467067947563071080851570025404802766980322167585983449655801007281061475751743096156399279003126936980756998907702218895622533080440887133102785508213704786068091055992512466763607831540539180598720302788845024381298247018248945280191169217507533923052757701302342683947445423306714019393649933562681143456656224108151212495374418637482382196567203624651635213020325746393077747095604715212631317004838777907671737401799241262207236134769469687314725863204493224237985081624410910762376674489773687989983403107905907427349157801907572902667993991148874733334948674648721888599309491459245255784601754034210967410001188997493536236077045463536746507173402562134830776950583841185882373138245999945179469671093390513520106964541953912932942621543913022413767536361394019061732633523020979014645233415407033805511763595604434956311704985093504235684346786077793754674293439871293522733859356751919967120289701109556269883160504180009085331242861184035896362845103335025277413199840184176078790486070167498518156056976846818011690586873170385963904182790358959735770729050587573846320831504856400794923758516198480526644185763080589240103490141480439084420153893552281045797608598204291104202256424033439498452627693195332646858230586155697498700466475541850742738142880270270144687095705194814491019991271526875399216806133692535309197695327052368908483554342982849529950708457418266568530338696785763143074292952163469696236088678471964961760885636703553015324952545545643049258535510757729427699810249712311727640742851462445864758239223104153160666168415626175194950336828686578303755187882437682623317409057857366191229184412141553064343422384835839662319520031851710446889149768366709130358194135340835714043437491587758995324790899171733903649149498409413175701123296737291930501221682361288328810370478986601765521852124569911988000514320769014739103988373268807796529979024440510841442300777267863102886173058535532269504474235150836320150464991789051065274022973598770853583296725624816573470280253955713007513516428937749409781442065331840974883392621324298391059625296402095925878544048339733113830896922126272932396069093610589834243380981450622372998183634376327066402410258594705590979141921321734781170633634035274802188270356171252441981196274629485825835664125461902737367880367063473267580575618794710917040140699166310470039675032622468129337512148501665552368708347480913220363159359854000341277966654215741109878385375102725614290558375652825378516057807785909028555573231890613783749259856894689953512185133602678314407425432787466400014013150680655951136329356396174505595956089217369281551940644746385419868366962869636092602923463043026215107248225382965646544719172942844188884678039334225943095127163647662618768079536072875427822813591586202820708051439764595978869570091813298443714118409302471711224328016893740995623273143936100192379174032293653800676394630248637595345595102082401537886010640184257133825083427517140645576081162634993123648785301111488506115137280704404712521193858680991124393503575636134860872842523794763771322647050088535579256934378884841224551307490196846634645425742859483168781081820377130249636461408400730850959204679975996112841643805545204597681786414659540124500154651452982908925547089540662674748219824259133390695237661287385710601054007500378785662036534967886115526135779705817935595725343194942596531085566554929655398668344847084009464941568208107923015600277852158580196901789323294613541739114122949592753057672362590868273647778142774487200465685782959282022550646911357759665132714336509205951563503135056028842492152366373582782234956600200494269013172578754899643227328688622950373806637929521775018938841778195590924058827342506026821910614234711981870339087624671649384755237391897510451027318239685435487475785898943733316777184082362712403048118398661325047668251891162917902212092392799010551169025775699272994314785379282698902654582769218267020153385051873473233946168942415610403315196649126806879133981572048471933396865090437897299570154946429190445203443714177109340928558926030713690508845294096948677701095572653420123199428638308205605257641955073399476928251350050343435247989745891868703636855968747114713584970516108152617906442840236214802303941962778632601964436975706189298926632053575665378798687344185498832665160597954545179155596333146815284233236125944265347953788169546459135763820487806388264405516153261266387565609854377629842908956228120900573015646075807019047394028244708973675222175762670601451476752875651804855650042227577929355293193103643450552245533567326420486267682027889419667690210390326802808570255613007145655489625205612944963872433241032577098134575560422808850061851080818465010476248652815384505227783060796110749933097671169192338678658517704038865862391528040550572127096436544799677830539514779668918674442262566029785841727689582865101118298298112982067144931104567349962773317921302300523594965105158909732969523750494531030704658106117676772858432387403089708905931010865542696331407955045964889901446838210716186638221542055550458150534232303972639462550989111233136673323016669786036669171307728703284078750563849129526692485375617660626211498133384686043489150851986064795902168807928859860347741225678156695417721553407684510396817734411312282723650869474004766761128741069425071435619726221320042765717335661391759933550219129080553609711288136770955406913787125649143513571606439226384874029076686018686717018113290108659426599463595437373322518764312424039922319998379281087828188509057987079576371713897213764673347959761005454598157943527804436523552602417375402118735761306200641386221394983347817460938316825765557434855458166377679010350136865634335631601676024664188099634070476539903308140719738708091545062272161995732127388897149664269970003104105116267777551822313857549215343239998427962496025945994423720653622925920460971363903294305908978916550291002395204685502563736398625537456369859186489844391163164486477994836111539099263037350824149813093583633878374237155033166830148563865961989906956790563915632223114267419848185299161631679410434716843303443079992810644103871838783517428244393035589014603208485986874686847035163480256805734459505608883809361130901866273291105299017722425241688696274406267787039114856196578752138491919649495626335587436255315883658656584030963047740994573375484058544015523720703851923044439884188645728371986508292031079902734811188666867624762377681970121642286484204418766650411332756609078041089371645836262258360087261697539936248464180497094968310047003178130301197680592803021200313416778908932275867130456142790337627735692292260353413504885564150970290793085615154482372881349817240109519121260361651959260627492088298956731505938394139224002970501499537620010627182572354252339387474162871057493793433093962221775666571730950292486976445334878433761940948474016114119300581277407970333142491200061455237569206813598281551588312822500204773919052459632029809925169225155284300933051210087490775492217807200145910834902763108295482026516712623989169192087951343157812860605493413964358782054155751115313990353032489518941978843019177927270909929493456053864187124547870001796778293807232630684127886466882448290713631187936418923768912181714523655857650476610997864149430969063246124025912884643973717314054610102444924069590075997099830704174643764655520650894431603573294716019573558104785507177548511358587931436914046205230887844749541896383937001913649385645608390302755607808475660216867917181475612306546198387013584676537179787061584258552411908826703025136655118271779326352555799488851214841577210570300918404279965608325146616564824687143925731556521034461310905145366285576079569559650327805184896485641667793909307187928993421167037963595949881898958381036369605076481721752189815394198952849518989503480560215750588516308534177972799831039955788041425488826878530004214945161793838394463847329859170318234767467491585085736228988711514389452408118633823854832297027020884508338948765833988158156365099782312722689975770924794697658494438148574471258470275948485871577564737919325303883625847006154949571121193242571502283584398847590475745125080943481311800029695665821355585416076069581132199608658434320886332525859846852939522954326419790368888391492591892723133226785162302083900929839789595006519474470192660166368803002687425426930724799488532453649071714673958731674563853192080566558723940563264930280118002514993679095074908114526920614364940761454304914127453211552205176572445314391431245741985719630129634498840564243608643530722256600005314535018143008744522954689939329967706804700634323188168873785491480560646728255586395186428289157771946520863241505655334075164923766486189709381672575642522930614339003293826663011032856968734474481310442482066036903373742259279087208600881944100316556199096226725901497424551080933181708057261612435567524272044041043165343985019184930714976017075950688758024670756323575678479898724112455355338340509648223384624280229037338601848584018897738205409328766689012345505253136839310504627700487956617229718650300253595558166470183353066805347423120285018446254362842147091109213437480418261220746903172604910469285961430166788190232308406146562894861380025114977637045108775327727790653770375622677444622559899060043780716368097273307945506377503712479375157243299898747549486583025633652709824373019196814272967820299792603458510696704816164966530451613607374268469473010038855320803415757250966134210251851181341933365178695547721419326083648995230524626928301048448219765028477624748186996057768940537420198847703937054367183524983148682544338873107448475487203030983486531233662475083951665792206536605911621631196764292554947682700830693040354123251759513745883078307058777365574393043779484076553247843490611374238138613573498960848058875176600836699353247261181272634452446792272967302355048513637227253794129115248710624807083067005510538950767290577169066988688787880350354352514142928072608108713264029662893112534968112406093224921165579613881181716402351696785015624773781177149252248181342525769341800715674268061101312233592143026532737141839319366581175537751354336791062555554085376618784383146621209767344232547633590583258614895281368573033934676997997640417239024835198083222691912477702147038786087759642123772093754965108385383406624839055697304038530583341830917962934134943063951113633354071719897748394417934729052048773837334787315630593072766865181898121154929410775573399834710672210105687503711839124802009801351807253680618670575841897460794610725549014968811083475291466759732021497220855113178944286074974183521006399212978652985294285132499535180068374890727624775723866342024326428970231797857648245321057971743487608213701139516796862622857465594372536870563552553881650522544171145179058344820384677755713464322674182106484142377760929666609767244703934766246903137198463367908194044204858917866716962584532420169963617284157542255755178058036000858423409269346918989515412746554488370690057797465067985249640250819950199324209551678946536928001421535020114048986736391708788448510425617018540389561031491370700846014513709932666115271120279016937053658880514479773322385329528937889395982155611024974338011187452314825734224423003474832481615500248599191517853266808191335150880739815274137373036858592617876268520049531971551157051294020736064607847660792294291201701205128929339753064643847604445610445647655274916462016157388233084975013671622814820093715036384587914522478921701941228828327149558270774254398335793260511371081027826655967927078112568694632449261668292241444030877890539814089464424172255535779759819936587340116774395569548893635156004285220051424614286634294811673767276485618090395796688256046369511380150514482918892367942668666336956692513756194338062702579000344067588069547044415976017484827166415175207055553360346790291890425660584743662831884621249015215743055076332095842584653810840468849274142273537119075799138950308263066739780042381000218723597630892277829386647668269151412971733104113080154153475786828436308257879944630935095994723499744365780861112498613597248190638750129981780209250789725843894040390197115680059127307829347310096490941804767783162582861772533851037089380253366644512041089990865103168753786272592503040675556021417627760576365640834498788129276460618201180524600541209983837694280898816376978099606563388422625761124195819749047784340098257299517971628180521714228271054667595896700971504062899844010971303308795981276704377490373848261705226712949913382822220855438747329500385044061909599552760000658157691762555916298041971233043870329447602366926415664951112821253509968584380365495410286593796884709051813127478242551837968808890169144727856347979844674811922430548797843183440238949690031978923190500170682357608159391903966559080682501372302265287175231553784006132382910328915661268627336818036057308829791305458258131879182580843740596019746496884566092604160043919701405887775782973224413966500498686396079602911554455122925415788492962472082848911831660903486413023367898674993948702613825293472222292556693056728104527628743440068255778010369584324093043089868621738732644490757252388154371303918013382960698113821996094942120193492710724451247925609974836384491250348383094081547502006879443093466310877596532736210772803532190647074967860124885921772568406595148237399544226291090438161934502533342593458345325781074074768625407620568105773636316147418952558214651522781872778701959903237228633000465872675103621737567920508394187199657066081479726622207881153812470939799104368152438312903637680409055871892228308002577604092035515088962297554272821849587170215467922626579171685524183373673137888404228671533860769440613020508590854288702120906689795157491237708028772557272982273763602070081821873671172537614948724626900069969543847570758116558904598802342377441799997339726018470690770843007606055263335696869461765118004009282449096360637506438879356799885344148304157508754095913255331749711955790285418295409564588893176063229479942023693776911546607388282949156641544734585986250597692554741640206537675988923272784045762127691675293646542026611646317312033841888270832265171277752445699320407596067823364995929370867101241614641656804190767443352772313375947954432889452193068034418941339192887135987358653080418530036939540546693081361385211419732890846181361450347068082062885480959348022277824254074891528035382947874661292366249255801740694730611679963978638799006953991251676184488015810615193454337450462283634259188387190899876651803293545969377972208251315013709540722308632275269553127967929134739249902868872117890536914046730630179419573752764064746602386029624514794718124314218153846219093080465135500279121419558417662093732694139396347265919564073299794783055054219268707724356763323401520372303099260648190659338740792459875490572726471604901653385250854573827876022849358243502635446159598869273794118416403001469901134362617008103347896264979722872391958748384298510743442188090600012588288310337929067692120053171153784588019117667965950909921943942108164288687885592142900468300114231196008024993595804494223901355259359583886001720590401255087785230097843384168243154385207620209530326710624600976476641017011688322571762632617502542371749064566288909689490449883542574995088923307423812060028938539147567046890577441598225496360500744441052980718634120469323497279510717673558290108956351384847974675974469729574817465542716102736753209313395604246805946098609605270284648966560701652147558764409439361123055539733831067615704328289513140528655358553319929849010780426527202999531136212482280410767487603219744629073346215588434635692608274558635367315039412236429541335707397220635497149747719900863558829688934908501637678363267630472017214335329533427950581993457890167592945116661308630287489568279034294770847056044580387832057276818136408060515638716214734315477027925215445729074484611759147758533544428845898277363508164882741390126961157999960502129165493858799780912838815044293540973180570376753649700647221511688963377069329014683974103620776210886946299427419195961169863299820616022167788267435571281363973891691797655841587811357891296973029687275409553957970656508192327600661653511350699683571758067287511827781441524153531149192706739634177337298385785605739365333421690772082206462675801773052372104281015773034421418213438093722850578411161254136027632887604236085013959388220765112165860560422950367693752606241664079934757265009147233097064856334463130617543600738915864759759187477183415043272331345493088211421901378431796843142709609993090980165509859241681386099960374326966292382222513204421948286405880858331212111572382925217162740503288434162157718281036507600557133078369537691606688463672043929856859866626138110267655119391381103353898278798943846440952703877245521913146749629654421020775028542377242564059338458190681849018857902026928396992053106031071552852539723358445549759695289527257516927030129465359564231206956010487942599561993215434391608831915031562390466364654461034412590791104587852582069782742966844594210510912478535737764482018107536726229416597666690155191235642579206785990793453862608648299178460311611276191667577141681509272767860198239615928313489972347038165243641419234544303957576132705879126746174804322704332441135526551473056973399111147865337567449310059268037829659284000013202866874391831970818752242314078948831025198640454003917665662773823157085973359349213450969569073961193034187123542042721138776281939560660799737666045277788982879857218633840127774446903677832879263183924340588677340624347805790075596960984019893580667176183219568867242926619278533123290837061348233386533219091299816650012543261001773378614762827801264203782452537105891923837790825045752756856967461811830994255829570569184072370768287807746321821470779375959048940303361464457966980033342895253350568443093786240178958863102732434791855441461436230491860284440894356473783887594792328638594611697268511279448860151548891235373666677341132811163764524618821834206747956449485653179744918676080001172361530618408759898486473006268844174385110994398395619843409524077229313118084574360008329836140914644846914423221882638895900032399799578997299343274937134568763275674866666781032852791100022103541357261896114102634766428634734431249382081976580013881950331310376327470133279400247296116284538303783718077334506905462091640367019401532886329042102498289794946431344953952168278406279130139613823755431942003571650515148455208357555479554387356661339847707837714196055016424959378743467629764768187995218000034300742525870308755133940230444729963796123572281545510322313472181275555365837267515425485586365866202639127047644782037460501063864137447929817235574793433978744176954968439000637417874345808900967357248295196972284450659445940371838159783780012320506548275837644203160461546612782051267591037942192515685252870376995786602321891842001834753996106474710351756093098021358173793014388897721900834607379132382060431225284989304673951695854979286644579420636298354980556175746910931547516753899648419917635104254335364256049051500285978505828337245867300137371835224631666925320908822246207029608560002707439534239277160912326805972250716248313313414193307588189367355210325666238753072751544787413124677883884340404045151681903317278222758598808666547859416752564038426210140027742586394534097371110422710382406034142044165406011960443807762492859023539993673724028682783429469117391199647571270442979116559288070681893394884558862738161168245168698227078631823607870024216675861620290394975626006221652260310285205551168936086300929776049298788356315178233377742420391935151940886256800236033499173148948031784811934795670459656878449896905437850613861338116486231215648333078030791227614550725909979943576184104478487174339109117612467759707635621112761606293872102397033586905704182239091168807281953652648637918279173388328399723831406494628732887437894813582299863702167917346901938832964579709756651414137611149351443082372910553787143401401152708981431539984425637131118744061982223379046480315442464718101257230741217793318828519362043673231762438838063461863328776620966653133253301547828110087006038309049531225059839405861931610163063663729199536883975268954665971550774549042343543656332612730436312183600046490777927663313709645375660709963072723421155152023606502670391002782672089069154270971284781548648014510141905567002119181161839876525499842377157120760281272288506055866131264279737346932914675270402704779282758411000885992213169347513975004566053060511011040572037883913405723939880856244812299115370902921545637359200651369336060539845413407343749601582478922021211457153962976068129192897693296453954910250334853436133711205565196422958533658117779229152917772259484565959989253108816531458347823340485168683076936182599688855376449713751955429275810928254965980842864112174647550816687749743342849595991179545952370112752129337630997518931428133642760906552301264941748707826531924602498091294001326544991545450722666269771286472174325584932315121698886124058063859184576272258612851263027830936514409822479228711585251398494920247306332020555996458918144667019705298750424983715279168146979301258609505929879971755171074660788060359921797951496980356140256974437328394135021605949644864461319435076382367807394169379157290507289862227045272262560905303861130909902480075634316743339631409408412521258295673214280050042132437340179144987795984898707468822264559951802235052563076324710450416058065860999804738627813198613393344925478757032196181908639954865321210829289998225834770045871579573454658286781140785202099045276391636286621039076113874244257085005935779057940760424349797596570492387753737933355657702031624107302454086060237011443666637259549024809589289124079561289558405355334249108696062576942082026358946562621223587275016510870296189536759226753629879031722054218360538196226238937286544397015019531897617263320358648819827478182107065354730161866194848454865004866574541252520496212849979285893870114458812539215259299484827260081248610950650829743801084827199851498777007821952032670386373092375383287877838106357590010589554783726160830670959931471957021548440487632980757891470785861596053367819769831021385996962917291888814657547609769434576600362462286625312390446237662911369391450994716124466302550846246360868604874449838067140606779737401372568219460751911078215503562172427968860553121407687202450130832744587532982386636373893394461575107836314341339409575499011522649126874643265347736937628893488588903156755345970932933645372855283559773906737721892400854086202857923100765013844770067341736643229062742165875311766886725526155146536071652434433102757748386302890579847874830684800158569951874565989468153735490386594154643844642837975956297590280486099469720700342714695956508627616505481364419331711142222756958359301277537194785012044053904039933522625906590148651809094135272441983194216320606280000455456204936147774041792999808264168827119417930948947017838513277839065283503496234998112119032419188085299760547495070473056646325724033506394319766799615603490763979749515241232863646525364236816791527894968887734646858092686213336446650558578861126327316373380142859679815288561592899909779455478727956878489579111561353841299448146880432029376276956484058379053262931268859045067301213378886863107981775700528819150206747047214089967754029011998718179850212577670333340859417616213284808045691619327068669732795761200917642015475013793165052321927548143825575211495874637629162893340289431296962236536952746500117313639425848481299475157595418360656063247269517976663359491985926218297708860558215264634867861293428204453013966736083003637968115128158362358264868176029372931024376559015265176585785759082256752409856133598873141117534496579278906446136085398373854647198673491323027741851640096416040218704384470615825173235582990847919715393823974334702915592192892999502140132999014190269792995051432801829306745213404672216168270931020427353944131074295534988472002536720828180361882433048607944687534643477939194329594684842028960782812137525930297793936454670445971459226232030988007879435621412155302752386461720255675100176284806159468092793418174313097260563898779017544825023124845023625564817902546975101247376739826441777427997181625060226839998474540712995627478064594807341370248178623838725352527994516953753492578413792131412199494927050414471873317993869478865558228219497289090332479706324397572025158471634332150467805461957524980221394174968147469934127128565779639853239351495764120873800614239742403144043585586477249029224143895334640417649072065871128409313008663025577817241032136782293081828103003743437472605998800100640879549094767277526714149937126090949781384068726758863883204384330021859256385075119566160481956028980287238045280452628952786420282827277852232612008949962778523860221692242799050684916596946830399647453692654757897745697761177625830284895181147681383806871936127158244155697981988656624368466475514256946741892958313956571573812179005582259142121784492833513663262957717309856715845051886766863072897563806007659094486534399524027218114751259977711075865164737639844756833575039425698377565137490186933510533115969232836312479297026600023490879938474551730502959727924179488155849108900975871213697532525823087807035604043964134834592262711064405918591811326032633376609141014532025378609693801915465778650872496116556463340434319153571760578559814656604307434994411273859592346833621783505016879735839132836354164293795123339252786587348282247996676053677703386895229576418056576171002001014519289976272648730333217524900770994257232251859019446236964605098959070453033891707563621916494313556386790755726185634775084740106358936003626761876810613684908338114395484043575812602353415180390081334479644409156472267989974275357227939847899851232371528913897149436569022231505957941390548621343142529375061214130956579922496096630534368299381793792175831356267732469034664892463085422493985677143757304119287750476375708325775192313743133613990346566693276276824820922739476438198295596375262636295895740816941411940304333797403929131843126281257905274591245899082083131815830392639322090498967340475948509965925845116131411614317616170042382776428950394319251047692806256412901015958215289528087451264457211524641491729283430748510925012697733655900615788590610026989126648748471943233477405158471465907977378205135755099082288617110870463321448125064468035827973251434584730491421319270694738794970951100293969942985049640443148208353080096107155032471577646710018685863374636296118768257830710356179679419486486659273696258508351518878726507969981201330619252928313213950516156843462180031492438739395728771077271609480440230006276068855512747631354247757697095636901792284163633116869905878390251281792772888147333021719157944659807000060923665592875265578797375761940014798215903360393780129557607966644683247073376524099531647221651898476930584895137294572867783348626943125870246346129685989282476897179035329110813864495907018699986808073592822442353173366491037671795428321817854147584445279733839284798684172258050944732820902749064343907290929674325652742800334507579178827030915186119173943334724482683182085750500954143648441978000732030701811168103701674582759793415258642619330228435073200833711074994992518156406469683592909890372579824248680192453666720043545051515856493839123959788130665613853310800811111292438592151560298215003394114990517992583514031449826456408261384953249688048561606794704773153682153165875360678490485738388987267844410415555095744933553763272797650781542999532933391685384100674293582358098087172090615113998079128707329578463192053612323873417660651287733159008358418339196054139236680884395026962640576920068794919330351251453291907213486711310809354407702893005936536761235725341434197850619526283368965127473235590701835058646003093350275076958339417938631376600750141007157574167990271494664892115411344691108185859181066772058119546846476388245069396931049530130350010178617334446774548707720259484069975456417355855609859451896058590668632860443804632972401497472506526568660795532842614932347496988004651666555154055871927365789503270285054493135201465363230872839446989949723289173295212715665032561659948109150847675269146749190022071880658438145646528279653146338693009163754549937218659192795151859233188621436995830535210870992885559354768735875837164596278212221306221492773046947775392699673601514300147710209227552437955953988310018056417195712171342450854645364611977307016771561052349130582163440776240789321508774246651953973316550959873375209609352823286970775734002582555626209177025468534023246066980729354018282219734446481848403237238518806615224544623111988476315187583627399505901472311668261324119573706728868567350216678842452332511663493391795155262941070624296420877531121469253734408189290643534537224652503391810631703630057763493759416774591663508265249104207996283306792652784530655473976693664970007989517542365399442121124662873637675859713334737228350001077675593667472073915919477231133332040434777551624101818229033238901110506154995722653113075763851276332064889668457937241975282285119475917247084774757289723934526058104035222537651348053112780526772233839864050471840238812453022017081917810894307861812887581888385431889479190516962704633037219818577548706834223490334019340939828103737112372709431342706866500019553964378310653779739934426534844739762652539439787197386433700922314502162439906967181937115947727863259247097292493098495722164874387777769936944341742816916703202839171636169068179312734853752584617277360457632448922471509981001135070558412742798518690629910397748066385249392028271574900582036774043639112853064447987730211172550053212029371959848496904366211589765510489649430538629497258579755315113127634779234110155174008037690330845383519742562675973897121962766053437714876838075719320567976848487957645479199179121402460196602756851680675255431688820191559488251981904629751581125186455724471779201278236010346909853988568883062341577531361479020906881479136304627819053498833074551888475833153543593816431476223005833336836069816643632031661191067016290521276217098547928505502312216492366503892664561976928108820186873960460621779508696769878637745528694364954673881322086194989028734905728717660075827360059343323736338587212758460805384962989538543962959334589631206116181552547606263566705486278633592222001157294428429914870958472446887546206093636794821422890614155108960495551448528706459238445539256261983614643843158973487993404630821546902048825625023765697443687539528894919396821021362066319974382407702875358882254742839824068458497218203749888813842687139998022936636637754046639806256165200554445860109143433760866362897605854894029155559938421206112027537266541065370709408323804306422505539323951759078058580592696571903449038358236775677411741924382285376339511199393762522084069577474077402357908039462093790847244129845896625362261044012025912191262448121118134948211826180005373481159668145156684381710806213097293840304933643935865710116640435649914798016329065851800454857037760853036226159708855449382783438393567998768794499849234741768691740843421630220863507481186680728855197035112182983006348806055232197495055715905339818781524916285369888348299986010256666301797559111434759275588635226876246967577831440064809756881581539976118559617265251708721155548388886400267226766494017823340903727127403241300855451352200844067447874356071988335674754221815197271059216836264568863705355974225329976773783536254765435760647267383564994911751438361783689338459586145157865996117853812348951409507792694294999811298466287962004987798454554128041972179183864010660892933756351815998420873386793363470019823881888037928716238174952593008778609218128448063891984093718544336678579534820132241272190363166486560487082079791369759987998292692543390171971103676655362545129232136126194193460142771455900565038109597242246557299114989691863524825161158303525571872506864270123041184691243633142747469804674906634876837493110536568791814738505602304087561862468457786784507534885050959520754013637299582810566002979699293817852426641967280898731085431994271052818467771095916859255025932347245070663790554746429187954608119567142591547282778769492088105269715978588647323803525480668133943339269403143150209647955519419491280292243116664121468658474648421551710880589251950847202823411660030790949954520338619029167694648083006362750192816153342493767371107076580263339625757837791391081775113403681587980514116724853559647547150728373704977415659557084052134133306930512114162475582704178207328872636600506260550826740554174354009555302102938368494592167994533682166118944911998435623432830677803204483500659926730346850442375484284989204712791589446733956086923413107318556886825682134984815200422810999963061114039088717284846884379426729781316203323500924689532779860439929171145283619566624112039985169334011270131771405050468041735459088121446289678762788041344508531497135344736376242890015146918414271818281124334682715463622268146176078379593695678511743770806859177200971820855489494920561840221073839344035016631422599071781007382387620932710253267935897973702455036837466548580385279946987774764169352228391984377326286352355489739199024201052905493894437693984821689038230419294259926819110136650690993018427002048165674482452821864750141909013198677803032801365333351222215110200380424130534099900473582131178589888787464253655010847123951360945389930881785723306541698443337337781609475765978319669433333372926844098163018166613703114782151687416585149337696185372721604886007245270859115497431014399015154807340209294451108162023024780812376491153537262997768255956574231572377387483003827960693475856607520777218517101257565474390493771796414856546024966615994863497506726147530504371166307638171040400273403455921526610337326433250150497148300648040468604774056620137329628578558359142946600763117423786556117632917703194796401737033278938298595444456857697603415283692792205281644343720875054648823462742044167338288133989093762025826419998204037857903621113767565563624657550796646178044338539288705899432651111944541047955354671931656539076529824836896025218292363446785808180753118456569343824199218308334786358996855255133696778805924811012470938764956812438667650243381451907255538786900165405692617687347432257243540555682365562253850182174555998893728820347814529915298896445214450369886484757922055976745463055676606843530535821231414119284553541441981274824687604626147189608761389998490785034148574096762251132734616990350152122060479334842020813477839213815982065677320371093673854297147075993992476364689644154438308685917944377630842140143211533185610771330555127738622905027713114129938512205891553739646072058948625204521736308195013529540174479009833152110230198361193584529192228614451419565220062470132644183882385776103303955216191242299097595302152196908370857220669930677470283343365675631304043212708437971599393532520139493092173120839691581793730205195021739112496929797314068373354842183101592806227206297541645622842660546504722080687766052694488202841140579607865769362573553157695408451925602456985285662108742331141763015502675557981571941529994853332964789756357583993630168184485820625916845331526523358514472647183752215369472766578304158342802042740110280002879374057147352254598439842641718538446412084586153009336891903695882805439277083739196714371227046459461911688735794737996565870565367763029758497871649577929932427037461087316090052260908501705317496800537766485289682800318149852485974799390341736449043630482268226805552989839677245390760091891190423602578974773192596073551621454630039444120259837541380366011988539923579549118046472615734693564371676780132970449478242721218259430722299681212395233438776314796151905240587723555932730595387113481344078091588752647943231578707312489583692435940807388894506250977090107771014720143619018456303285945610401813614808607542578444905071749600144132344400034308748216218995070342547276047904620132760604559065399693370696658626785727015149948583809554791466653972561259756730986452844383961232442518063041955528441012876266833366878357529480839888975914932771653412809979619376437917399660036898355863379264906274384770308118396978088184310801791177817537912013882985994812826356595450966156534389267002628297527816418986898117799571921826987562400818692646487980629667973934723428990953520007563218485546868578915890370168090899720482812986435606416085139358755668518657871915797644572408039680129678802419592158753310376834906534398593677699088012407762787437261817713982239803190300073514498565663129446810479769177122253625564824677288645003076205929203365723898603710110466629135593786178079958867369723151274207866054404753038987146652198134959195538309371331345452950725016030692663142488798720533608387075297888435978271089419716718659774615222672554379678807337286184236353324271291450371265232388184304598524476395189854522141902814532141754625416232178984923310460586673901061203230613756321708712137090415923957071788150129907640870121316748946725278412656572936977508079177360601515309496916134933472363155670354148266884530159175950005442749578997846582630864485996583355824844997948187698456938208048939024084776785445362779215535254881691888863348320090066664665617307212247781603469518500094337267684319046241294847227516899966277103999407593611979512749922056909857008216055719537026219900536444559307684406375602945792678324671231634682778444861705041327951018388533834309192791961757785991065588682328224026803739195753958906798885686920153409467092918275358554150656091175947842473714816811816503730059418729379718303399711394130998432747402782870128158645322164946176299018719075675858119157307071410785934970957052510993100816043994326828791360152025542833341284672105334638315458144794221761581302417189312339399245074408013904043105146172635171113649669693786655073200809456765063208890280285468439861183819639379457557502835717651679050435561784114047958757338571353291514311470856071847434903803065763589672907983474147764739985002405107312661498259758808713176018843611076154393383931350425831652250873217039277480407547387695616932599778352289071967318708051368321006563775801549905747880464814066505998528605115240919626950250463121228241906518704020761284420080387012267199007373435077342021037031980716175357892448817639578621610310809522004944317871077400987837817043269287694885703643589242872663718048688899365460734763496804297320930318524350226630633860588544944452754462084826436349320855384467540428272440209068665569812214128761134689621621105128322961628768683106887102383827611754623785309732571926610589041540765229549605712948191673585241296148156602843435278576249508168829163620089961906290203818124140919129875150805924249327989015655861964653365112274489482513418925551060354215304094303572838705354865758471733922325634542215376048175914857616804943852059404417276566149255623015058618122566604014693390851532973328558164075353343142282255977598401757115732364339209614951796697622670755291670909078711137137222959377502870228272253245004583769831338585895914972805811420366535188246339504110426464818068790374154712484480131142533238756764771890718554791426173874249334534770236936358390875777098559512205557263816027139806461965823138455977418336991857757692527493706757210567703082451606055771491080111311083601336743619763767311702547104251985422783575038022000374823646697980262259733667359643549084820325000468380099116380911086174248501897116281197439011144684740472472826484187794292837133602841516288509005327867111071155815274692253014095044803195700107420587946376404718632703137472791221187710235188774518427206527161742778551309922499971008299119114902775475469658886119472105916942188604496993320789806806762186679448340267117346750335981771400512645382284967272698353609419597934158614260222890614234217219171824840860790270345843613799177654316104244049046730615360956471001367006458404214667455111495584174978291347961690918277311496171832661362080925838690751628588246272250172280041254850384427246072019301561950458662984237939056463732520912597968145223170672494531362228349754417369715676099862548884236455450230471042527168332273729801456607267447055868942060205481868010361427692330132541913233982330248872874771051508147648876232468349029307610732049807434605295925304819845908309204415105686569994332063968400399517878162061125481676106076647524747252195427865908170878100911484618664858126106550320720717251559257248785903302636350134398363341540912420829263796934538152837707783404045856503410674390374276684071790208530880380451187461651636509870999004749197613333793353021657186782233015206278817479141344025993602664239522664316293076751668449796233559974856267621513652175743800221569294769649448692854314999948345977470583936624873980972968025703713180941503119654520539312680670559370689946974385879465253972411536820492247506983875477759815394138673221401958109096540664481327560825273609817948565320121715614128762118607765655171529180546896117894779402077032135573525409803690817433403382037169003467394123619945554886527979591986682248276086581120332324530390686188273911504368212422541363856203517438800782814258872598062823510778199692550524305554320690658456803165221765239841233943754942955899203720453098899275708826351106722275814057312794934803243144711177802707188418185380261828190777381530285377762204901971342961228953339802241537615150990420154430448257144405285391731841492669735832854364900991735482085833269302344935810697903291969125982564547276411384211495755544682098280381545773499189054689618217539714315415641292486581728826848091322420395161609465764299748988248770831447818525616061095812236957650260744297679505386954547269363573829921169349680233062509415850310518153749459861630272918807272336382196530986306383960685750969351458978530172756215501524783874000565035168760048350604662387300450434922389100572463331096076069065296863743958447499423579436134159235515025919450518288377631115068678489023001501589826372592215245677774454933588275572203241903869122294184445691393264459568108384223294953305901291551134930030257039059580697143423728591123260021239573473050553428048611253255477518930505679339564464292534190538077796261174134563353307774628245553616628090604333253384995646468435329428428477741149735135319149787845769463987280830450301482044639564762312000287854251823939551061727134606888123587668635250359281974018671721141937319655498637925631718032111420167024990955312695891064816793412069806660963308730826686741614437628418534556281829584061592048938466400270816592755734226911932936748327351545047657434582915068049117655118477254066937188815631050702784113960959766927226692989125864375598027422113097392559463741112373872804410011311799269441468038882879250715831145632492980971685143043951555129973633269069226538931374967622439363535746321873219948741920208587319277635333242941224926865311531228353984225037983001784198390440818998878717363203920440390082292651988884335617062831766986747006916566296451560983270830547514180762457762439965335724336881688148391195937549589400020708549768237888501624962353504885753441598769025353573877539202250586673425992321974492484066929249084257953043289557138550861927519993526619498718775774908409515938969478695286939148919917631352949241027379260141151707065341852427811032068247563516762910182548510337049966976363147586817686963387697965046038628370076871569470168029208239329969120585524842778163519981653630477121204253865236141573582405605201063194187018046440706978304776335595132025711470822992023646243565070791946241432753470731376301759832450585260334626361398657324553149376652374957922151730420733212861232603881758562977466939000338654429174906880240698538898138387188244568350052053768435644172926929085375807641573003899566691214790580680745406338859042035634776870379694010836188042861280109649230942801856232156409594481965326337436346418247564572619963499672035693230663006947873184497355506463633424220620314173165296870387422922748075734130911702069897469755733858624116080707358040996909113259008649947704151092030682098271848294167766398622711550775152009304117211828612291067470653558162637057613740676952594039940797589638040625027954639911571696990101588926048714391240137015980765698056984399473857205194907327590928313609615037713411888991008609082927125052409603851667486453801775739127571061777874662577717908260766722995266728697095038646275015012477038333064578857704833276181759685096770521101485358406506946797769238870321810640626974997327643257171793815174689800270984109280914289362581975191671267024350049476618098236015903853057927717450330199149276841471531306630814782055234713187087784733806456150923324877656580525396094282277170294751685962334871668239573547647689675344111254393067185569122266679736869436686492573115637618318387640422521691288098282244967530095857659335075664686591925832226207462845997439008358933199337129373729868873371685562305599965047118896525480755802569441688137973015779810508569804477992806687347170450626067105027807253887168259366595148875921364272446487667411025081897564292592790385503230405624388872719215070240697764900521683188797601414221300334877616575522133960759801286914661978352142852124072310193996073591198140687181380568959879556494473182448845225710745069716095302968125027519731463795207424858700482545339523441833944034475692482490411878205717810308509193019740605601938512925459227515479512663806030091902324330485708927460411079524251763598247515449742232193666829367384080746202549330083098112540249793380527472671735160679779900859897467568133758491324375160010550215661676437362589115628548253752478030899448866226046902501148609071897941691666057023496811282874378861275104483340152261836535568891101722598700916888977300091539162160379638282779828477694560418381415019821431948392355786458351236697754244579853208281643419166254627422267054243553841300309623368302806714835136778757764317874327135694204112683796367253822729473898728189874784655119684355299126746567477528627620324589860132638934785224541600576676874414861818166853724430087559375064096912768163648598276352034898706179119261863699815228402731337412499598950130954742349373777333752982959577429794394100230560188934234572092668411645904165867689194776824164880113886957762738665868958894645162179428402255771344845543317205271581612631309422308558269610705068284977013244707247472505990991786601942400695322944731961691933923166172156156109077745543228020313694272312057284171907082966475620318152379858545503844334825041450207405329580053234208254383578932458008698807757936170851797311681502594230130735831511380738741216228999704915842922087090836553129092071941022566680850085501404066447695169139694436549542145358013260909770241844886710317533822014096088659428960575164607209509579803986332326753106244819515793960797490514101497936486750612815287110275540626889642089812422400908512897080715991366406117031717562557947820158289766144631684113024806464669150412572399331818795411188204619166865132912705107152315633650056372746571361915182680007573818883277590589692468199740749543958630204751724425593433468313984599808672025124540781392871425072334539969727585555703348153892852306937890357136965013407815775049345183486528017032476692589587745567591255781691932760297923707932824906442076376271667616657387430428840340940473707885209767581739525300630290259692098264351623763889126015012322668980125504598834611794700433125547700894293924723869271963660429794371049081592010381598574156739873126994276173547058175984199722811821940527725776091243128443201844465706249798977697032869844031975866771521231901938215705751718747888185294146753740552630749958211899791475943862143133092483329838036522075074150417418825606417682421757385565609973860444655345105116996588404226813074721558128743031372867378306006658271557621763452477020716962154625229171581480544509732009160971019013371419232176744271056722035188407735057261479863723727716477396325919348987630068591626366827216574128993501740968322816343455846675688276051707863762142564885704533540680124807468940456013120585327636697766590251549975814734251610702065545207786618189160761364267630189142563055290877162754028325811445652918948163962998776429327605954734911616308514746369581384663400654682267506526576486670997654881060966335858126292956576210445193686033865613988185494901823314775157424049484211471742816691343598069909758740623093849832861644167785795411908073111413503237171917822555792693153573378089405051818596697657289854586761236567926660178747250664262987329076635909714850161860614204261983790364649208207854120022885348638994749213389302928025156455536290332049672039735541757783966222508293994174064003844985068472915664928504301013415126712944670037613625444703267984012831591478150689575593864870153747862209545180111083964147913089964423959812966639388430637103643219517975038930904874890553142271008011701724545235917939142717866006232202585859540531164929872996487001777519613894476484762418973552394705226510977990392174299864732732291397000838736155404861679748740201907563817395063638778711727629123000902638041427086962741731899198909996449675422284732330632179881959467246597074442734356553210268396845711041904616948323013965684189013321346688141198906648360023007592384293597886183525866197879521188513484191711426181239799895661528457125570909711979813213024295283536889765646571004748324323747220837618550071167092792594263319216919406126970921761978451450693211789539874831472234413970714625287222133064570180002767493781608576799954885237885886569679646809872109023779174214237608387032921064973034647048645938664381527556226783381117489293107194259022768808179579188512885219400210441206270844769102109802743008698669283797840640065755528109063904559656887601964875160427820002719707109800672585707467418027375193474450162106722830397617661368068336795672602267859546631535687911980239177058108699981991031855160248276866604687285151974372065976139534076917099441393457367595043401092509799974651445115166429550421818490556992861010215918865176442584561691243028545103479393836304388751895874009027165942344479886171710137211934311890870988266445028917294774152505352513366619115728758619012173803178464637214022546541338702414972603189474281722476381775024925371749707611140927115351062506934668371193196595889096322457653215840878717243744063941851905479686267739550699797870653773876847489406648065243968853173757224470457340510208400371971215058619297603145575723754657229499741875200196853889950465218321088137394746345157964757832961112389236347838959996426650528334441233073377129393146638469513105057447024687740031579517601215946871232890463599830127661459954393097714185762704114386057422022804214190484148186132284681302228474160076937924493199365074289226242683086201056113439757784543646893211860549909139530158226685271835016612985965553054437123613883021608382660890866120687732986785985543679526853427508782567302252082153142133615715737823271919738849790827539513533918625738899568845619124662448041030222383189518104156531091570238512034655979887145902576326312565799435812161528061970485618294427148697215273075035936894279887142498415742456511929545164966522475429442678479520028103174631540384509261376560637603043027267426842053144907908681082156608980324524080859025634145148944142472970585964999716887777226823886018518504487626136420136853265799385712457330429931443384617720815582246565848686820613054118424814093461523700408490717806637642023188845562717378750653046887496582235734936630962857976432628949886634674145204920062338676924451501605781739972767983852293035322167004757701521945488783052349998550288247183149618505057788906624611751097221644397769414375676875873618848923739411616545811014467978928988511645213697219172108618155030107761155881238508737296665720952746299380676181117991233713459685482136211074906464528208910827667916609727637845171228424941278738539756765363197840179767709378486475965044806328941616796240437410548737826642604912044583215646367319142320886510979291165787657864669985365752321034809773162407351969736727230870717563297152342819414482717038539296678189498422277116041157004789178168893702627804810612729787826740097574800934873164964451437513859611183428194716472413072649651547200904804343632085680230080360851423387411215029172332079086673440071927333745389956089200528615216514625324624913591644216356414984249480738999686762058573561188670156153999283081196422542930856508153456524273484203720432219930162443269938105042003137132018341356816917888949441893782746372979991335552366114798279377300924496542407447269010877107127196100540050804512774463504305930882956828895786918710133650645840307585650153434872907048452822597430528972841668492250493037468916442988207315878548113187458130348138154232705068935743639755379406791921338045641716880758818792015065721142619786575373135114448117615199847727323491330860369379192827336434125206228517732530546527504462717940469997763853963055003862560552525912795608874902059139634858742780181794934572123971101827734464234050534644927364684639699502148705425563617914466650920459765747436072539587027460535240761612352125948856994223196430751567769267971775828584792930301842818974678553962647971973368636141723863960175863557232045469975426147299687865476183535142379594663870265122093707073081492995866261417233355242333226236286819427087307703928395425451725798447669804222880169881919472783898686425426468972645521521872987152178725844479844020390331416208609111109505478135211007251474720424410215371262179196544769582043710441711059964108829108690490799700234741986050670058767273681449197612451614034348378349556599825826965403547911473122384315057152040926922197002546221389726471997368006826348531845519266099340556875674018819890115241562614631286635341345018476640582007762318610459663784663390795880296684905815176608893566802343003369468699783481528612112477625300154067354572117759158280838802589413344569449233493840596368651398304188755526840386447033697020647234183730494881309814659514059608806564270090768764853735214791216670393512816379147546376961192036104224713213361215414078599196604816639404040613338022321909186576794375730863073074732687673527368320070260779942222602686430623765563135199526903714228579063842326806304272646913199926110672819511598951646898308719099238722220364345006622327647401962277717700831484132449498836576404413671515904938528976645775377777798295542074408703231977231583414376314864743412442365364613866590145372576463449625374345263796189575632027892634627893273978536388553017842988264548310788420577440290743413029068127238588033609928069013123171172395309793446624875562976699165341097688629621786518750424353219408030271355082566070588231171702668058111701544436555880829265574147410423575455213290009861895694943487499580614717387258512045208732137605633600964321323614667320052021242860500229559515259422474897130052333019166902955141032348591447026008127099915139312780193509959486020181785718017783095311410627528852157770304950830231582716133372920309581034839315959368190860376564491046686578215341269259909484625625199845738069830173723993433433278830640906554293830751643108819304868287429873053499058902902962120735167694691052590998387686352596658392933028019484517955856429196629395524621990557723664472167779763931540520618144105102162301103383908931178643045070740758401543276462154962214573070974712202735975926575870923060728072980498719496445156390940775210018945917791281269640230110434544696234536639112635445081301353142113007503908394105462344968250125809939996158000544107938779366082633740681967945824063990321080457203377640155003244646035337774677870880461338105568672281885015855220440411983876842133229928033656789279739872408572618287146090624963396526249578322300602887134718379091936979905466545487671860351229021264045309461823775275060018822245823508158361982907917838472245534390370872522573609337792615365369651582893974185972753820035830702053138748392660869528017444327778233756590446685859253212381072049241560132086613975575536705921529684179931038213232626291981696272255092973046995143298009402875342686394688050572849421184320778819413072872385363399639406440502424070852235927716512244612500687875381331179621855976774164610261756026718294980120689838728712220664707994728992914149442619159971807062074529603981547703825599686874017846765626958562659532515577530248196415614321153996117389726618967467323698830331442531509846510972042087905702673460223149815870083551068342619293951651043627160335381696283984784573384461915550788183920627198076998842684255836784966072383356206750484027843121759311500763953105687182325755802113186231091866430705676774605503823852658876876186190571443114951460421181797993387829921224597346675195985127386278985559804216872780444287222617948354968474487223628632854599485585857871560082450046931514771625640299099103727994175268768337974503588385257082124844120717104391226271752515150396161017598999080475159892293159399349290958991761217556105283339961211959021020798376553825145911006932615368933737382708865304426276196454120795359008978183226039458514976596755522574699872615157435985786598479226580860674440826528357253648794489558731674145322836475264507639814170154212602489929263606347821596192684188632052477218402691356562073161276699796975778546916731305884926138837243225248329405721034946128673986518925427721201760726025596435060385852323970773605858682111818861292771495707678939694173695263643521212222674753736767598476813198415651629133717569734927448056633003456954402441708933874688503472175536240455601504194599243940094897313673403997646089162131440653577307286147484768300820467380273096614948861352269713401559754025371322355423429123996900153356427210018757559656890163265440626751311490639600068522164761909758978146935186469197239853365714606758995290785384355288361810126732916999199249257847069638166462268484980191572672185340836201596856960331210809403748465400504554955668337870382689653840165303190165412317934269901141616153500813678646445154644711676536412168012049955542473218102976843214754492036275754395543779046959560593717340041191281158837239065398197277537893405517468288232566367719347068452183064065251166366489703801603223848004960263542290944264481886304409498329942779961871409960380780719060047924616169124802898340934224355038404673344548134732242956933092469147212245055849925303135096872242046612542505833321765800643342866606099676398115009504258344055202744089022721602378676605282036400880314322090410076293113540770509314537809500318500747440619768730102616633956616439364184907824811887104173578367587979143350966070595188455656516890156996922506547317059754777450750176628613783563687195672061718891428823784727989824051916137498008905104022394595139438110542536454680021679350537224384697617929963419752775305000337510684673049665780485960979735551362404108737339447156774187827828577047855338416098219833552055749352805359967414582414512467793993882079881697193785280266292674163213738120544732631783609422309838448000383559504934202355257027992482294950045257448737863120306475180425413356581302935510911946604139352000442507679193433602763015644368042566655105006418329402367186408627306541406412879811670920832341530071729101142370291415930534346873016865714692655547826872810395244349543467027474389496498790430646550751305805068020484988520792930374872765990621282677458208139390888565693547220807793463786820241170096484235951706082996935354426094756480962205055271211726177641592321475295620832648973139957911093095776157495067001299716957878822144180079558042297375076284567064668636305837144692657575474222197137552576805893660904971917597168465462132965020001696076361847276505953496889720286208561646550752034370324573191337132174664633526711292814426379978472818018312014567155916252822991979408427475524152551340707966156831355382253949890913566301121857740448247426688046247901470459923735490861512560724979196087593211033358564971365238732771745939002460230937653678912199836944900901814472714289107426688522777077526213322582647252452125098888793486183311489102684333195442407019360295468762075460971764456476997812084500705559252472627172768019569152137562737832694537554796979146661232060298924278988309946516226372897958587307115695845229932998644926448181009765943965169339448917435980575127294329382677914682967513000907635790754819257400769862740786863933370537158939828796692833381679278052943479137568701757801900589148960812708273570412820354401552835338456572605829178368457146803197717395478229128055010094403483842818534998673449384373214256233307386740548236966335219148424052997557536772474760065610277895612720965592241340552485431302656290007879221213503867468642496264506693876856030550572729897392905718223435008319107859763074190992613198362545568341962944567066216672915709744170493727794964284859903985938495267208068099450767885573875765104745968330010597557667282045758505823368135612996552439608262224999956427489614704791913559996903533480170705929116711708168044824165359924741563541592751058282142763211485491396773266228315965108308583975946144940937402871269918620486499408287457899698628226495672474142047545983753405017126378711891412481970621721943600556716055638819464362792317703128410666761737205226298929716605835383638755983604095358193905840560548115474687133983943984671648453368986729655023994735137299903069841674710679593109721247215025507167032783319387932962816307300132526262825292935166953079773776562959265175568388464715254790825747574830725258136083489567228379456581910290980014893078261557062996168942007321070056148972538203308761964039304013935593190699096320061724225789796644920821288484232575207125709467863548313899682652040057828608620117947641340485988531322257258080860158414676624094426874351632029343655039511968109891475391171532207314428797483768732706834713040708689733531943341898061231511416196742729273285994594008154555039307927287351077016859990798963689439629474663154503598244839331483750512791916353979210320689241076624354314341201863075224912763011089210956142565478846545113587856845909348115979257229051261185378365425119072266520302874408852217011210861458166334696671989836284980643440360145363883090339279278685324524672018823580407149159485388762880222723830757783768653409296173687232037242357391690978365737270949085836892795350883651814978978875232678902447057505266525685412978155480559659245544569025824465628454194677692324765113967424484358036813249690270073267840310249685075008455074059436324653123235523300920003789167856345484052448002025545664604168319025491859639191255430652410123279048041513786328440118127653474867696043338108584905569862554101113185249872816669356134778825778893891361626387404849236997261244624560640623888031138682385157269810411324715619728715945795795681495884917778836487656898887661742512434501197447218608532035092507303478505928291585822863586387258499636414180134134565577376053571680964789562791558261169679758600090647632338103886151710053959097372756481462120295423469313595510690192626589538627449241703275758552972775728361867890782774747741336481173475931791102948577598484105449286713549944283024348592160868534707943609990984528177716232557588703409963643731371975891202138756767253238315538316570090869884270951041868920136733932477029072969862125750121916907541781541664788531137180297312150569739250726111634765155367984762429544253788756764291323040754690536867398902243818379947450227642543910218341667201478815574484222257673012877817652289312541675589828486613952336257646362510835948651345907690462332365166680537392813615607622342339857565767092291046857848050838674722044657898776442633629034799633065669709427340681586531974790014291102940810561839333131455023658730012741621123676702962393981768601550391478732960440635287771128372005961810409066201057683763274509773743003047974644425809700026141496053261350397868727979326806359140582637124107596147922170018755599942077388077536524659078015229299422983091830489236226680221645145625923591817982444018750962940658921971219009457888840577662494404802653728741701350427269863754997534888825007485410083553375327010262866293425430953173037887052699363700600511381040087076182744536631421636281767331084056719434196678484591252304860122079946313684531740760943488546542013653046200492451038012983178693068340408090541890200827139045794547033726994820071387117247971683334460797765104623076865523684985342906947550388906436971121879868041299587280460843954846053324136611999681162655581628198729530084305866599542902746859045957170522759271455447293680991679474964312787925180597462228129393406171813782500356574175527849953208140692608501714004229585067691520357572992358291391462279839665609412910019660048130681186669588605252226199760031960180694092035522662886044218325322980875025183522848862638279168980758095453421499923113681012805921708928310829744429237797097362241959711344640719760457883414562496567681211783822722831487617127698418975019037149553852851186661175037832564608278708394700098932182331084057956189384415124429713772202063223068039168102634775364314652359387766022448239342660367600558858049529465310614470993458744611910280860452790828122051616666741054429878684664115376310941835773889419201143178010385751557244104681379401254124340712946791895994806603222718469841874112988956230255647909942944096867765442572485499297750550190690917614312763620097747243679159382089306957393678873003397490822421786196330411916466661350248962857723042722719908467262518773080651458363596034482205779658205112277334652335533549297571811680493796070796331620113288225113280737615882213602222655794808864968127610187665165662601108505163500002765707571441639366119111419906359582353717212105723290132423909445823028006787068222768082754237741933320401228538966003523965249040221266354693723471108057093991674990304507469606975852211958160705903406581722967905156486868073915011465231541990730955906523290669349255190509536175444572734641302710379471085805118407803379295347788131046914868265590323267688334930709501362652702210402778003260696861241675860546707212355772895352150903929271502526952769620688070857343918692853425967724679044897371724777000431009130275045137780199243531033486440793609100417279958065345133307626081839325976930319284309658862823996319176272743128542605892941889147897710436462835065232738375130723128004631148359844342686108182542661971006096049040817613243581427893930465278806682247783251767196961166441390501927039088476053286892350303891474103198229889768883480753005555443995655380496143561518083626565688245246790668410449342231810974437681008023115591423197196912481699545650634981899931747089977229531074806264611629898255751356108196342451718923073952632937533352515471483300588611937082247277360544152918667287052843074548773016759467159547035439712676248936047514683028730789900570638443891818708776857847764770043322759617699221463875477435860802752984216027319044615861822710088895178999314291474706264803845927781929208240357659207474590660934274766731403783509410453588327972460357423958407407286314740742184698746274805077721084159983185171550877163719547411189380132941664887840102153468700955490665224814696225585044615861186678954806212000521842543992274890666822239745814422132583851497974802600378932601809979670988433775467967372914404140736586697683326558045144379340530856481817889266691760819380157144428274231098242426372294212226666823247680030801038502174457707528563087839920895704931776461703412186212694821627909063187995216717973829531653931993036663956454695275188840870689607146314641666873939679086429273790527306290499370488209703922607397732083416088977020225700831481471975002961659662925740833497589751990126958892809036392255312852612915077183033056928267371813176103707810062125882548167256892987816873674720911551633216665637744348159853997653144543474741553444735294028787244811660629521092420301722861966813949913025807443367153336676420075223037955400572739029641483906125308457936566964941230545751419361619872125062623944106066768457619193724061096741881494587276272664726624078452130271078729784865149480933816817385054215865995492624012438417851272292627411997096106418925712538855121858615620243092350910945091530395185352805737429054973772777884249975269625933175993316223480322186405129215834961183294695354011451199593705116640231284536529446349017580088161768441189220362045823624113077644961594921814331043258544559343390816843982992035891756049696180229006894373072875157667303423671837714537960649220751235057840007579353421971300351251479421017314751434603535968128548810818783603935184811550568037107788057236692811199638094542196720757758909733446970965445713625794513961504971432309426323385134207041100729898962009908730049145280430674080689938336682255801360017664981479659085942306672101737615309633297089393169901233070257149146401642632575813188460177377418677383455908042085023955198648461209297569436588172504038027792780358829082754301551379979357020592658260346884097598372708354172338301870490647975266091874854324790161392356846703367696685269210657690479375269306949980088623309544298948413827884216756738711855890364335711836050385525473884104778697960849236682248742176075909239653141502346230803634659478265308637027298147306233278174388786715002097528963327673872381816756688478803356642973133930481711349947263713774288316861183432733686869601386931664405203581254432422554840693526952538603443654528935307395204598735283787408351206761773701227500366091602277693081052789653552775254868949899053141627455279810795917673956252995194883364733464262905083006297110835989674998517159453980343036286713928489240023984681637746811484147492363111389994888618444629755719772686811582803543008688087335219709929830472336724494545587698529300664291161964374694491001705856054343066016792407285971732689328754637082368704212739391581959618784983003434562349423077905451252142111963392187887601018968943668861663385537252610357807477033978065909838157066985896797037615046859714303833134047897633407747963110702338505591771367826688542101906454863405621455022581405913107756186418026942764007166927052101829653344341453500464376289424897116940873913248494612372233735587470485051738447951318428696156171445590932332464136229112259268939092499973957050173581864039533522618444926776740475039289607120069607995757876498184350431273314524019706955558410822303120717079382921342572883641212500000834604394406360586368829981217509164776736866152697572006480054330414415410693324647040162532095495816108112852692781233895015545882088535681708418663906973721169060673605813217603686010656292447914100794043529768132273282917992684012368380432845658131565134672777217715397707530477991940930480878998096604254700796788709450362170604836271995265572570272788798049399287872761326401837385868002602706199389107364677728214238192220693275601994765773932187789943801107456182903216375772399673472930327426607602479827763204505439292293577408877178129079589905538561073933665434941607584833780504817183641582968466648898930166197084953566176736481397340086551116373715628005522541989424189352605085781257408018641328310630662158670172992149272418964732824962340131241903668750125489766511876971499891366285644638605079844777298132205818549756348789652596718902514954323156925457204753774168054821862258392836633586499608302791626518731802796257503261127021258296172238606007294459417043728386219749629616274940436280202932850138867729855423628589084671825780482483474517503902761023945248629090103976565901781983382093871014630807362415274742925557415005766260182914052672454814899694204496420814126098155307396791050798901603578409432514557997931027334249981983568371234773565944939087271139075099539795712460611697283274859369480525943130600202823666159377812881076786853039954450310224571038874579470672796257700603767110523332330283035431604423608961228691402687107113435036492987344160469144775954726698956632224605882448902366521807404479876785615385829776040573011802535612577580851247765321787874744813780945340397934828317041698370945843386494677216142883634516441219527467341426607959541559935119464232666621604492755468596931239063324037404018022291851303017394726718996308667353632435500581175197078786146941311266654811234592679278720037820823760148575861201672794534343940756257971394662108357870524548218311536333868061650787729561003582082231860814733952551715390680670336520776810243990614689126473383601574570318245466083408836091474587123071155826350896033406142653643753729033519549080894551300399250054080888236094099938757760910197315902734256404524877067167155449474872696233775841026037087368376869579298855651206249720165951460280580152889631579795537275227674061874331483244516521883202339461173223274772925558038023068630795453428631306657013668287591182011272967827562389417020888133918619173577317213750358520948737123504022704149157447419362363914377151256995219136858360914960977607151358313838432632905337119296002409952670806235285586233979155799166590684930254637493724628924193018687508358199303461943545499072012428066210304876306643148184185816542108249268099880614803403213863472426781399293001088320811525054291825026841490599487225839999743560795577751932525323259817968315712389411450272840955099658436658798813079840682480559006508459241343556300481693036500815635950111465654565797044877381146234495677458497500585383734556883194237761802184217148228893167984127973408670991874960118825738888642401266910189463261814996294950877324275145639190590874920277520071086792712677682282126265963567862706789870554096755676110489664114692934583867779125499743582352835158001954354279692944584155721571080289233847961878041785097040133793543889670757162822744861269896440955602000837093370506777741525504525546954059201009191649107555512139185712353318561994093199515335632577307398698846123152449741657708274963634045032556783956350338750231215673393572194693735204582072013428464422391527666365953873599149711653662841696701145757038889530910228634360358385134507983866306723067115436601650786585285334714920855734313909494435641106685585484122808456346039067357972096414367895319034840842069374622987988015635468464041345388145385395158607344345620673339469104638951133640562934222751144938432998725008556721506670914736819725930323957290889095658392611973632639136200405140903090666377783500487798342695009886071886500968211075983737617631216033726100149939545927928224007470047804418372343473339728834518196387670325242959725603398112697887187059273048637989033968334220212084066441425469641163546231869133050517277094084485798780798531868094153121942738031299983159247269055027058971471302113311247716133306128195985509555042027188587375832461512035262850045128832832985040571289337481952701324396445404833733984757756637245176168960272571431374078872390836005554100506244771126457961943659152503522899479395003595400163189079161326094162905096427479498818330268471253347633297581964293652821095568527090062187280990389273573349702811707949002302441405707708400128615697677706069815171034742180490018350590147593813524214216369755830981561565095855671922444519885442502802943171262974180612408568674610733662344856949649764143998341876984873315982194491298977986368164813926315222294975408527193965998476847221442465625234880484360472940034842582043456507029669398390425878796284040739035111609794719183168639895408008483598504371475881053706137716883074140489063401864670038511037634886180026168275729000045797302496432963449230621981526916041045736978477505750187674295773602946971884500758181582253845029402461040025579727545390128464786371621489042109858112599968593818917466797221835019301235785604575742791940980499639173003825915719079766530264106484501868456150662815045552606076403161046300183448051762972833907652293584440104463149794381642416976503584744353042968033599003199071381734628391846594489510528469464181180161168713445395758780079107288689735041847265260746803056745469920069787121366062414310244879923961156538837216382914040572288179383261083157105671437179883899241223818080044638726629478145914251156482998649004615732719719421546076514453550629025993208541376365558778142526703040336440179560045930659816944881380335988652965882409544537302495102972315433332495114270037796038677263911740555796857231796004143676609332864635216943221431925283690103368934376272047971755795886713843513822390974271475143448950041714490858754636253077573682218603273083925056126901238005130979075480715598049007530819406275736203909960340202371819663382586673280324389004478589584059910315553565667853063919024766235283937145517333979024311124924717910856116316120870685398151776164224130914198919261162190391973402129899607598048607155747409452046465040449133231706335389554060436190409882863188286108033972900570352042576803535707608032217293011990394093000796878172219405295538094157535172451087071257712293810868060680507455884730708340365378075162614159836626912065690647342462634531394462598724033163778324736026487331017883277208227439069890392410003727666456512038219694315013285478008104386575036873661811699148844839173495611323737469944836391578297185424195952728214698688546469894323950780934372939599125517727857764989525230217961095586284164533679784944405120594779553009632132954621898796500085594191885494588779521955307493579277740535666655452027740145658079005879084515756025540159460273128803451619017821460173980630864590208486699209640554015554164770642051927291247830969685488728414915044205116619219505153455237409485082140278077856024097042484208261499030473796730967677332667154857425292368957776599029994281046183971589133647553435754218659879187672586496452636348976697455793321911444211003407413691268134572880158556923114222631049261311160828578429244008633437335716858479428918685236681555404055501670905399661214889303595331529733717762435385856168443247260278521718384573804139240114623849207390163313585155838630946817210770085951074392459196107004809617886872239958904291233270480771356013860435605350901178006052207630860692521699424111941878363253195944973470190716816033926636420226693265458443068205289680593513189933299912638635315824839981654584570359059022603734359144962676952559957480419261992931900887798110544146644575749303675657294188069559366652014206913562428091681734669519282110114199234123459002682287665547202558593406807647574238497982121772767791019687301373828480740764164658693961174388470345493510459778205985016061212666213176771312044510373551872455359680226642671248722738965068034361709485790447147710058856126811490416476949668106077460179678051786740851685062019508356715062014620914886709768317099332514938028349685527168195678534186595075233784443375621020848365660621284028223369691053504429868553770402565113294735278789320682829368387118536452196288044929649964647657100129873728809131518663566274388714481364925663278619603611714484366148357772759355106215623309943968256841649605963056205642942485688812486669001165266165739155661435862950352435139464823802959008460606778255714986033885282183418949863299991764528846229244356910179088620798626186500466583127407034871933616561662917834603773942063305708453123106005126247809150883218385978929356075574131701647319341659858830928000293772118227263512124276104204124394878843095251162473046697942737741392070607830811113008395871942786605105894998571302178719448157122610275838271292404338634771287138151690541897125164089362828852770617358956460692696602224941911017128637051980889316049328082142877149849389564185142293158947963168020691578156005378398787328638278288731377243257344287550000589718588386728705887881937766648857913642278010686630203360205741663084123545106651428332253111602804441684997752638912910690529288511931155456427425877089257138188484460933374717696761141834038546874607465815557094323739332181050614563387454578515335079204603633337975328870415082584872494929049027114970388437630244276899177211036628012009637959683316584543365304298367732266729557136648752137488588114406563638900127292067668747808652041328846194114557302267593665981121877478652529046366084050896169414413488753061736446726530765851057107292335001705435280103540518456889394019902053505572318755881468356845654995162667188816759724529961175779199183096334551177396041445634162019747522385343650721427121526362117078196099148065152100435150558415221626657719422262872904569476673631482818661248673052600570359458987369173931118018807533266198351449432822548670145097573437934327430520782682777638899875440792912602322152966650262398461844137513747191929073888336571502049705358632645576850495267229822863680208189529340755515275564338109377158633046106651845054291141882400511373692229508422492253165703534117346730402961481644133489451637349613464533896709929417483726109514251709558952481352997849160032672957160125394387049567126368228542515137191047488671933753829220354164777917418875967560427591234568998150402702288866303801521314537167654040129174738592031734177801158230081045997165369358900916749534978640954691447116178042300293394657260743521869854884112122377346055975331352582455319052229063910782853458484918968454762456368908799170894614616516248508789920379083912257021309598601506321037518934516129869345475787827516097660075295718720971502399364547426350437131841712508515350339119020659242369377290006342245592162915887411949969554236052266994613269203275797334936357431531248078031703315837696900028510893454427310034946982638506973081526155827761654704524225932567392543387882924190685713316434092108850614665459510581065960345790578752387894282983608903622023250246288048431475456221114225261995477752499139869102265821392783494675107457211421591906153185631023715463357342445921457426501128453528135142623108660108133134724046001428074761067221364712176910130017736755192232602011799573325795372319018136346462158058677059537014395223170034209850175979252339021499014455727276582429160393140739745956690368482994697359603740582053461166931216394099988192543480114440263328034407505301390522061149342827407251965280726934676035700681290372072359486000658199656309531055843293627080375176082978551680124554521415393880308495703644894207193044573571069678663563171336309251199127550875253056625040745928426465298053258481030495238268626254155959664486458884497450426372224434871669471692818959912179809672147763449054132019726576945508514815363844023235288460849373357640750209445520432148596006774678702695011290564808455734444260757345150281604068388861940040311057157769546537395028357047067926575331778087318376150853806856207122247590616271505985523317279102196976420096267305999708656083920876848806435483718594600905258500885564711728038906580675141817869463757618192987538544721176597014700538872028173832534281361877634926967136136430259885068839026283252440188295118061909565909835624380770137243192085944901650836965854620630425041950126585875736291939629201058543423085358289793545028448929587967443619459655075797318453508153289505083207160436224563830204378275479990296168135024609923866770160421043450041070965663141571045441493919952453100767058677298637190219432575252490309985406184692989599815574142045052851751065276517597272804933117297276165943349714373121598231218417738490842874949897185441615147055228803178082881427351960886357416654454709223360881931705837612653008583218251912811427046374208533063981618839793817196208013326080282719965052654349123294545513429136281140427137628489422290820511447813117571503974548577627597274377266259026251163686516036643297546491154876136455773151283655432800570771930941444037943037153550770040461285723193284268120261400530616678412639270062744325219413012493104604100911546965455587982760615149569656897466351074610221828463516762654046974656941917261425638222192497499376404174631007316765466976820661027421468782283706014174006950494472080811486234964572380716684260672581368922408951072941637195187915209814554325425704600065259342529273025540256790006289488932940010614488669034210830637466025088490998887469809526825813794065115860745585257392052257167516566181966896887520975473161562266476393147027253327181013646293658286089354335576231821135181817887620733963279806897220060497149575712537223636730957855626920491312185631199955248939282498896592676221593571649902955533065196082915301780106352599655363058132209550658814164783083852286930606190535836595180656840795365897905760528701924236175539546828649313351661214229793185013363824479955013541878900551627301116831757217215891739882623881657301235366478539152213579540028089285530500734595950064296660708765548892121261174823452129591545067417435944173939860648290385856225671229084835738084457195337360251229848295853121616281045597885896982903958047649801205564567381659095845031330887977431577220278842531160068650910403497189454671123384539281453929525875275895626515724033341897335214924545612427770512617168775101928491678810246301289128803122330048274527870933703158247762457503600427417911372816024385569551789334700967963233142384440052841182772676123125296884276568322600209870386156289411801023262790620995624152128839377104029215796254071088391331900407252996038941060320478843503186861768327061581825737848213803835491819712345398101489936517177229234891315519152714708045873811892874965795839470974895389546245183594896415551405385533338892141190474547627290282703216988734395623196694229034706235006115989956141972444606914295010804818073290430527120002695800618027533965284191006127836554771379991859183953686591830791302701514300564598849359990625407303614812585525505910589758708494062890548363992318748698410401116843828924920721398307057032671737270256453537819808189277983773739566344359685789261683637273686332549051355024957159995952222988253940476356768119386433782893707888769373843463927256396593051916492447030335131052661581205638581280127812449313544659832471578221593864145561853073609419732486233445417484220375166745365698061508430346061518774944631081857353501488572532417100915706010171693419483926507375000635341599409116440006744315689593171428139189514724884526012867441248068922396831189334391510696414087298686263995499430985528371448335468168968021054129640181498753662619531951367722485372252691945385900209278588735333360741007468260169700530510455352714532981980670542846831181448837818529830543514778247779133812166647943945436032716712489578224011570799538198908573571664764140783898119295671875729495507958286804858603429450423994329590949457638739315640073029667127705634262036280106206519564060394574732604003337018316513549540771962305085243914291113403412738346489347511954780694129051843980346145862491442133705796570260431367431872442361031353380562974675867017303889218546645828518738594975026654263161615031163226394764544261474278661530167163931163096119738829578962727306667261613081544460271027108425397834332132644915714203748014071686087136727815948254319657641215603874518665976290292577441691556485399685044777308899666703860328813640436354691193570088102768241745795016399450006276909274990910501746309276940599201624649834788022161722345335255795479902152881566921321380486360398098306716686399866370997261367617843153343685141698742953474583758893007492864943946790445859788500394920926399766233053310974494491447023878198724050052629893682040838596827905313139167420005416502615344514194568424842564576332644211529371439685413524423551753132562860936708449859753870923828911941471198082336846104536884967360394568263486514921862050959823811320895654405773823495577704671250573412599422500304818182720757096923756698748518978852997383396836343747684114883171594556144073799473627260798272024101239709614740343017178505635204167252218397153889277516893150849640372170894190398169327491697994951530805235041268593526475412282842807481966258806376498919717121308519100510238906384168421938101957257851687170259294082159430974698240189990015569186766859919368974349178811937759394180728231017241121887638223781257213800847895266370703236128712958592339568148603184145570373051842187217602025686341446210216183819364425377324727717823948721187223649044426897933108033014542650399197359418453099182002628849889864388886175975362290424100892712370958392557812322952813211103557563924448417942901839790001108469982651817697924096560856898421991403731901233394904141715804369424705381033123256726833098131576520854279629942489105085217721653464800645974154466314083376315781596980332617505415912912414482344364865508348883997089618742372992008999799977294664074877365147885293776311641495654777825897041142788889437342695190039375011584111951555592742727332092277275415347968121574078092146586964502474439601208063286295219872173487303623266057585550512237977899844177627131655022736913380805599382186143494721470158457441475229112053823346224776522180392457885407504647812718837850542309093477063792298765408181234857056799030457844291426477465343495287220129774520104863668426987318739361306725003022687041412104229132552312019724260638411103905318382962055227405843391642314607038633886232719517728168647202548197866144913148205357122251160981828395561226062049960604599118143671535056874990856340832579173198080494289647117512454451175686857620941666598269901572672421586402165473629408094214889081254499415689612090210763677246791012982100355513473058025126665539722687238023851372520870569009420189447062088379807586106201952157706628459686976252556495944176612318441039916859126786826866101143414833469859317628270753042139211176002367844344073592841500580592722157720895842586131118041590425751486849287063409337155713287061710646870867152808556910316194502375133804971146487947791431660892427868935067742189184653667131245323118874354309597226484764339460453128657350296215028626486621328547854490621023228143802987230734343510649682399246831002730468707444993460205462453249541905614955045597958468785608844524537065570758319402441567837684597020888819692903446769944912270629982642247057259738395357198464566906557718090289006123591082861944700088156633771563547940046836277690418000809718239502148112707728761626823246503573031014257559227310508316552503676214448156664610242894152389123505411110828300562973604510349093620871643008665173563237040930399706828523039141880532578490326516504361784016709185146623763892663518996945098580219294770754558038311764372517786795906418925645958008525807756666714604807208303664624332163216471249900557757982480225241314781374563134663325328586136536814444001433149375922198314247525958728163791257202996114103975822759730831451119514613893162782104276451673693993653844139137599273617965711608933963386584168657493575061646193343452213999385153551468915209103687478280814868724621889175826095212519923300532466168118566403231086872809412843426665559213489369411945614577842013450257779784109191449261999504056839707812001050642637592606471652022426868792793164736645180148953787934295172650118318762235873414624007026548254844352034377159564821040256653675246072156557604178107185923059419942284885509098458728116437206614055411230468306814250553195845158981892194342917835759535679638180338550469115685300944201008924846553006042308206955651190524240192241218993990071778893646608607863850758862470578649372708660232910219696638520855124216572025484362293064060742147591454880394981418980678638521250839593804944240492006636812991320433922979259584065190429475460028240150823922746538466004299767788668547867419897433595979966454683651919809083865203525665935140371036674513758459906943773930178409991870543825238821163690602846191142441285648966877400885185653983147134244913276400333425442317844123631170090585624382469174098033369094586370996997282064860646660738725606347882298718096071813014690036009920133506008764557433166526657666676804530651030404091160278792422669246515042029555285722586071515022709423658644610603372084772615647824353693304915924805339313777289718903287864079156525408667920920324094350651210620173191977238463499667890333755134318806982668072738052679961270980805562781913219127085602191543878152295381479353322194113082378364010068748940735278821923798550447302151131242228431960903961489213103448266092930684183780198338319870815654621471610495285169019363558221826840771072395428090304963336693170147333585625187357522043687988532004835772204120791848902639569704823803147933220511278954875072171439341683675962318764882417699042012562802491042299483976596468211286177041339954942492912919693947380886434131940689077407286839646395036396022112441266087298772829140624544036512596994317405304737790678812027197509608538380678023800917086497794801587583797835293244319479788980325054018199002125748637971775021759751953337128141396194605654034005892064056633681151939360054725324357775191751487578736296861101724240622016721619900850631294946350371312235042388915682813063618433525052630111098239245480999199105765415772969456425263699576801572353075393519127963844018202664634681500506231257864578499780915456914434461196014180532872929548914816778543253526959952002082894767440613723571022894328499044999570869354504094958742488937137359975980782304062518090812723048448464555377153509059108901614586530001443432279565101660593180556594475775612959056078908640906758257756102697443986257693145966041016026172324044145710255869019566965237591142842647284936739194638722816921090448719740307671865791802004956496389160109886002955925796250860510021167668147888828085777663014949806764035213746392952925290073923045530094472001652090639617020393441778007514607119107224928951418168905208212508025173125021383453601214063183106748316093872313715959944680227393374229111177018695212697955915832840817136164336125000419633827685930493630143679766396515462236327080531424481923144689293810043597219909895383417849561867225850782069144738466261635878540990150038409934337415569456027117977588627318020193259789655508113306012566683619581115700022753127779947734587587651127370026843809801397139532394841314694098548371402468140873450235527256197093242828971467640324594784623131871035988215431502177627054482805033875535832712238720537733851687019754314768311286327374060278964848789867754242740101590000583767018025193783565441516731535544311215423084899254659339750636981289571935263911832650708081377735762308631766453357798658194432765262158784552044857112305497570091940437547931455043379328779191185457233093647403839827595529194350094234117683326300990356238687514008829793306178139301962522571748764146896051801026627975927150872400825586646932006645497476956136559439214778537630163395245065091309163113873560724261173306698021483726431824649078664535042121759654622206047097869307354608066066298065762360601262381752114227357190402083215265087291627617012484746323893203746811077315957286406813938200378859811060611639914460437514628307387822353576693502961626228430671741959842884247619315370747468055949110130334740470439218410356919089538913068047205775007950926527702084239048795558298627680318255162046753292423805429267148089201374874411357869314016955697699442425694325784535989915956258557086738161361198548331793995452864551819897719060495966221831686612019227316440249081216176386380338011671299836130545353874450750202309804384549211942749355331753422461099090702573257402757893213196715660497051205845270375241744462724890141719969068566710327599914866333356558646792437366381063146392931987044212621440657436888559054164275664819133923145809788574968225471369500663437020783872891134327842764878690447096762554821216126638259784979536619048211968792032669677553682343556680601031307275493327470722673029642396937311453149269394030230387703091086860338776205337982740667286682081186342682746189445793837967416389528918103691959972528727968564968392196737011292178988794762105143096026571611590556460141435318887151335010203162148591266261771085829683370627701985158649583978641926118953722092156822531438280477390145017030842016216449159413067343820236862147321650084151722547036417265179277959876971132823751245879358931138284739574912623555712530144896962990186221901885238102206511198464425150561996601549198680220714406656173291215689592064534741144555341257207151859960522561300236966916462940886499556914619084974415998925377612690775099660794944870505991488908240845064794965242463130540081394616315281786473336260780496234699645037596140501176269374111573281626125192618822593582135859174186773710337169298333450137542338403599910403942366572236922664593691836090400245896292526528625808735749779844308339111521896792489223448621103854546738839337697286447936629301804405032878191529247033692829377877682137613006496123160984024307853658317349445984961951353729388086111159456753544916467107529935454775125301327177718841222285434871582382973361876252736874355992178940408692495392906469157681053187473988727481416299478724557281406482854744021632233700628690340556568601173524624543430506018211648115502909263388970871826772868285618516619594375314338438764015750445850380633744562117006699431841247850451053819151520117321427117862112809234438291279597002256040906784580671946949003662745629394747022878036491449874193960275045027069160639231897404817660288954917523186198730015721824022091969206385963727601830561555413832195282075932976594462926226244067610816734011785182046224596102633606563124719513546045584648415523321542788058689509971700772718067273864955567860081242147101087715263027957826969763674262889370420333469696374780989986945754898851860419266327554221256612679435120390472666219001658421984944532358006210033210778982272865830787861280107565113385383908780900340010688919623923456963860182968277886328686379129897168057924845570547542500261403428083616104167037031917611883362880172110165696410051692073673591243812207823116584659708136922892685742174457461386466683439492200227228834978574913262964974555347529132173904158922766868981268718950954567966680967791579270096584611613434241472096150157321264136881279399231247337899170004214855640706269864030222404686869595694600854954734361080605060918326248528617467030117898100932134490089624708680102446982904993626972280584459252121920859472879056774296390340528867385074500884847723899979493180730007700861266386203217162293213558102081731227328378149618876360010463719456526685741695247837116151204699335562605121959529639813169151917591519073207553293404118389694132785232894292356858696615239296368019239647322341637149272269956512135600540452729122629003174063902248818193219039812546067876366258087563028258092584196912200733740121766426853902070153903394024552584371092839746721653691061600437589779180928241962377507412911461031727995327937874277611759319202463078827171334615848700438946834508818733570282446706135655193800850031637800194984564967832676732311580540899247992806353818574921671558874036705963404688882001183168823918088474094458853551614287732467959548943575470485207765584636523545833663672547613090927096783699279137658231455646863601837343591846561648064124879168816055578797990330427902638641280556528529704798441014371028668632270788497346636353360033314112633194075833852035774140395341351322319615063179725563799262414426066113583747543392532036923911145919890182225132791017241545592072104467338804064608526958224867134727009417870780216629457313950050548435470200168886246504232171705390463012936955729286630413243639008499038729768721127673273468252348299240725375603899431197403335901866464281872356854066003476380082813665032174158129967880944212984494602955722681408890803458865730356791175758087726178322239719080661754099636688719444326827164936530920397147076719412874013688552370852784553651741203441767166279527136592448842314758918982388611874615239676470838599517422823663235614371773389668025450477819492671555423986755697435674501609701226784201197542519581575755733742276808246431944658244867816589086609043504895410782080434373763057299297273208225685069935916067963235298329103358016992745929413771050117393864118206779179283355048941303839766464247387172420272362686506855899430144092127998787406008282531978824869531182183143486259876610683956921233340016082703716750102255592378130608205152130588748379968538527856454852875802770628561976809293587795284995131626279210657652078883521192455839868849626415622389167561006084867408341132450969896376000666346575947579143670656029813582496835589556007298215288825143960497973324939222330035275022354904836886440545842044726664951080525335852580835611150762628647088516835963895047907028293503377713341976409040027834762434628510388860837590916414878609583223274457185987723099338989406572840645317838545033984156460739977141756558098776399393211087342255512331254031605878140475995106697275470031349523617604053903371535222348256068065069385994235982848787071138252859928135675856567022444991795074920652295484561273591434038771137940210273737756642929266734811604084258325537440631223240687470323900576645132749994582186669472923729638127127026976484149561405575331388971026531292704859456758700485983540696078274328832667958757980563072847976850649047897746983815486178105042372026970967754139798645664540625126492912695887997531370869168466219677564959613387565621256614682954917781366349141275184422350460301549372888663286024832877056823212245505292384340053311516847399912137498256688265233726178800700831278034206870281619275578187875322671704673575868705045432412182426052447250108896423368520111357625329426842743216029150469856794145865082432387903732131186735377287087348615041404774069535190339112539974598298464695099611390566055564085997581391758220860767323641769458714388919655434169830126522944843829161636229650059061643579478598642552300101737111533519162586069297761756475800407939538073813635319343252604945491500025387373190065095968209932389100849178386086660228589022358768123346751275361833240297216474369821990710719577282266797390019267004222240191776180581353319417725983843707704132890468734161332371809562974872530606568319009696975034925807114484448353071964616146051436477453080692224244899771927251743717570192238243254533734971189243219702515093669577352820378608756003346085858095909029135932612994640560941255885028349474409482845415614478761347198450939887421350637924975533699479362352634208104801529877978267835080383660126608315750627268069425743134886950697798370148103472621056621899226332408228551696007466292171294752121279549692388885171659945701963225721205983628598967197480731564787750219897142679489883753328861036252248596666942973174650224590226740415499244225383498310678839503832863855344146702409381711448162689933565655255348762326283158183144220190022975977883224618233909065558101768956638835566143914957813684259720028997573086851642211102889246110969784562363388278768581602703149565074551214094696482592207902395201896537852226923646221962623779307179928058120687701899904227106806893309358022822079500384109719351494576863690472293680015384129382173637290012531057436833639798539602905931076305695960649249679177554189583639861224404846421992652787670320852630657876615370376683243444611078489412921427749150507457575963420027256433949251014206347590135371032176513224794800585465941453220956542826628189031239146650660877715676708036511852356738264419258577645046240974197926649539858587666247309749668873006705992397381396146741968995966445388991781646066678222301552630487343916310931099295835720380740470785966568785307274965327946337000271876445493209532454417194104669877090871285614859106856427653922790821546212132302828421182164686657878536013589264708164353915992735933314991636074044275646991683371186045417943737620835449246957483084807495217911121908838299104431677596161992393025105351177551720447625566370711657463078474730960218815966440272979129133415943308951113466828972811487112256831267017859126163964572653594356835692295678038472273577882940825941920239583747550689323087139863596805207457975503606545479863501205969269091858751155492578439475974684578496762959593267866397127196319027430918585684824151674184178950558440694343348323615941918512996781669494309710412396301755164350444385675825741998734984472119383295072068728760046262573139163507495426554209189208150563608133498663855864090019627386516024443509139016538531602807120371454744618695326594431870158779064314367037742219201525162001540807427907149380505125997951996131619204082491753312856635333556829915393379659502883697028359353307878317684440257878989383280872482339064671147025159883071179578578649149406184476926979454876173974270644785576566085881944987289644122864565108208366011830677764453851151199793554691091945206573406320822994469430171630756792241995615535703233215755033599943838506769173414232310753200943113519259859652009446134826680909905951974496788851877260109755806887359715778591963429599085997587612876150104927605031888936739545731215288777736818814711910057534762034579892216661526406147688704419166089131916259780216122133426435736426908196161660030782508937460057400704345349929796128451942827152260387990669521934866157320788145319343649516535406281764557875388844633034498207030150115092515513700996190494264115571618822017790991209598108115524682951406993580230761811034294060795239088264566952389209556445520974150829494227167433922103007140005033464854978007845913505883830644316351192449574102344343508105154900840942230962348904088157228986047520693607400804299685464543486454540524643781071583500171976857626847791458554233866815122732053878971792135376556266551305181185047750352307690381518973118085739294659688851081510377485908799074758471835597379973704237917071160000685323380815518846568015862584636109197556109366058431882555558093467661925334902416535065829883510008923943402878061421216317849516437710751893278649497517672017991408035098733561150442788350070903690530836072675605188653262145618345165881899679882435829297536337399053855683163449217146342563769597993278508612971903194418697928984393131969789536736054289476911151212722273223736302776856165952021519959820482040230349153278691932079971250851432585395708652932513052293015331015188021361103709470716433286674079767966634732039077418131933048097311486417480374469254567134543658052298489918531122187378576813006005853766331156587661731555729442742878924206936983400865190600407216388164533245895004165960355766258893962426805752414818301129693382529175721322314803028661560834999064252051346471671652801856608575145097672943064512650118537529529939231253969806798576539057996580164274340062632390554264275371875978827225002520583481433573174866744391435720152767421417184113355750498119886746881906388328370200674949394776639074757984232444259816074997951878214759468794996993891897210712340057182744921440641273621084245953279001592798425253586401594770857251535262260749976091082446302588494886325634158056422589099805628793202023537832337994693993739129827871341560807263910910146535595524340596988165773515168801137272488844713853406224079222358441204681765969724180698552553399313639012598371308732093306099789302075339997035466301113749430833573841066345350060483370357534591656653111957534033523162498732587176942488263294785859031454011073734649996399700467037002562350703600142770403061691167580116721885128618410968927698455435505393528815108470969803456414030503759120222700787177914958357047417539265165076463926761792088522699831615308128916405616079254825108093851582481340959366514819558716284835809487031551366150615161749738197948535671673820524967141886368277163305586426539381344624316080527238702343973668941064376192263657414642699823906816005137713735159421783896949939718226005631239206048355917462272256106776360095224886061526115463012598235418010367111823952349081945660452958830142922437112927311946026831984781322209176903309088820933112966650241872669018422257342876482219116345625844083429508793152056503413653767645003834137996587549533721743553905409582566375400899610112673301797860325153405674791696112185361840019546224175960854546264968283924066924483098490539398121757939275801145043976934019122543048290858198706951734625954796581836907830355118799859538478329872419224745854631544676418919072267552882996864139395808712475463199759825865736226923397705521636569239034202416064501075265187792841625028404051360417960992020876196360878024069853136651584709973002987308837352141072150823083600960748948696964371744094611760544633699911580766119654403405412608705285772324696101421666832101060809384026161978166297983947140412541766806566227404293732760765144308944651209801367293521388863090513350144150577456538928455968434317993344481793518892294832036970358746150411751780905611507867979684237808398555199193992656638602534647103193076715011183239538181773641092590608392055812560675421285338443002096367535906799973882636110684479266856471503954152201650692676598453513669158929844132869266079884460848785601516777527053591307387959420610444704239143440612685394631854894780733045989116436708022985934999043318070704280061465184819395262655567016749406617844642964901686149709815692463776547781734215975965415703276241114400175553537402686927394290283111711884900678963898111688689896846364371511895317638511956671665497346518763373422299998553039696862233367931571119974369769648842924796775000670272840968468548193263554936592389954749517162253807766815371568347203154356972857498356223730224828401465701579632455450709025778654371820064554189192441855568865560904823821679397676172620627060374921670380888411889948549213189462739197084316669354547927524401442249500551921224267939057208544915328993596650365564898912450208463517253901240555563352861602105507653132464085873930959861784777061349869246005175782529185132705854867541545238308786130544401234653949021945506893468369881568465843428042585110924146922259716585148340073386917225021939983447788354013562407925378674657299329613033240110040596003693100694782679397134603410699188430219181568733902241502669660165344231717235202964654756805942643809383627728555723304421327682824717633472290517172314564636181676618007376698909381756586156954349832075242246834710503439820074304369675003732994055817671729763350239956171182809599580905180758349695202701525167609819526267066156241037644676041684477779407027545301529741861593012023218484992072917647151342175970031765373091838520920830409303066685666137198530639761393197068170623038838561335351365405943048898810572745361452701136651923374376961095415949429574306000442520618006175780352383668601268779647285441853653419148825075316788173353831089422211636257243477237670857436545175438900474622654125005350061089110239669242605917855897577198052543924072014665326797868245369502124615311685703552767912146026185228537696355716828272954652385148007648419181506240688783606737708007768029329776500575090528748825367057935259532594243750492245023022833772710051352368145291011943272208441589970864144729141664768809154342788381996835024963796919541803219749225187048232655219167055049177216740971807342658292471165458298628514496464801938066870238555582432102962584492679795377315584667619889991066903953830103892763462560357175845163301024459056326932289872589784329792598395058824344869597265357132922352771019300734854424889245156221415155536914743926136702110794442475614388427959211773404575159524278742358010427129653822450656341499268957737511044296907400999763377685983158910966567431491839239609914678331600682442384624643015331118999411378568990648687728984050303719068790572311980168360737707537448938471159147690190850146839862719447126506077808040518088021073571614788581884864084348486231624792892585655509283668722612834540525378155457711414418561984011845640038960500468079194317780532525953220956778347370320631168282274832800659966622381818929298725376806213665444309348467821011108985070588148315792228879936410130661701284077848876066099495856756372624992358477508744030559306703447962675291730997490495335238376108286081200616443436202768620689344657056025744099834500950139103962795200772291991624649432227040741331697604007864897133798526798166157388939220370997757080297269579308856023655999384528453286622899270423245800026217354258091811739931468401280451030810643835122089860226769916780068174389764360259985499106224375736463911314655827775680220264967757289186129011118069586501245346858896031413666942617915948033524961719206957631532615813772594975658095388018997241892597067603137379500991293977664637216129205945897321420942973197812186947800934406522485227880456016704275264567482902606910815311832290158528890880963750095628564955325240185921085982682767597071452483671874264465667346795669979267032069646152092007240106355925799013409579360748355744037869023209135923389248758641720269676635421716310066761562076657547490441954669424581046682127635037255122201559496048722860618248002182147961558086688168837343984024517203833912276639595015464712780911163198391050790651797762009744971532679297687784861211281657634699660245492755223216844749619662790224761401487686994671893384464707116161639773277054314792437305486979277272773916444573479154683731579404237450170343943889777686380509927999164518486992003011554852095399625526968437579855036690958840161393326695684773176935273045323765422319473456963070372030905981529263019762628613040502203003952040075880173238877749336008977805258790498521143798299989430584583046721447221140488858861079415952002692451737081667707909295462417377468215063371300715038168476314477660334442595369043946330698951400166653874796946159832286736157115502437904146383600263732273129324792450636796892912655531660796276214599519057815616766202672703863972720322223163456952213625891917020733941469763698381331375729297606801162563723448448972727123914910098880101816952328837895151407897590354927302162787186366220464105723161325047920831347114730851211670508967827022352723557810120504639738937087335367107587193314677349129039572556230951575049382824537884517900700253128093896014626700054434524475324530149510414484862913935481999515101331929513575040073674680873514054688146363807811124224757660476402411922930747115161093276564378367614366852212993819962826774537249965474750815419684235372419449975989839933210280689730968596095208622362309558564573339849289736663564122598380635469068970520200338083295668155569766165036555031173856939570367828915128419355385232792808246916745967832619986343264460874060043600897039912138008334600789540287071916467585241168827269205051831121225373705250973677742109845154202313849304114466571974736745657688501906428532802022963267851840041876273324848407599386827540075232596815183182876142842295335304929390053597883272536589929786501286243687740242715618358029972301845892045981879787042440558642505658123894859670326844406947547726779498775469241149018483183401424807798815346261424783087204991919148163788931560580192348830330063624263631433867350488301318801161260406714634359043773832415054154163957730441450191311145888823604075810290953787312189848518491464173192883497056777263549256346693439949626529527072622636043374162470860645929691631736158198227430203470006668928552065762639059049625601803359542040492006180958737595061502376558257324399893104164340272314321978334512408963351054378647418370956168224184274899473970526398854936974266429436861515735231043288447407556133933385381764587326508257635944297350085902994032291131329830858732567144707811564539526180160612153949568793510682158315863351721193358753685082310370398729488596827457928113908171295906136304435443413830551799093597594082747669143520730538124330450501773611571850583545907880325575283894943494703519943216902697739088441544183365013324321523900496705412245825590015598230901420578687875500627826004699871784384358020781806976758862039296317381568856354584805424028358559627008794679210496741935054314372678172680215878067812331876155380557903641608677464559282909919224321855388759659839207426991840816535818850394440259366417533261929058778576035440573654045113340086739962113568410628552266109697288027556720682683440320807259365440943658294228560491194722609263774755287084843496874749513167569125164539418315427311640708361080029654908814877609423341102893047214827847264144756414619933720711751828605318745417109300721130704219243283814986394320842068366286765066725654311743143023996092480297369672024447155269913266254415484445419034690973098228180492123787395421194804724567740125989373092629058926946858106125633151043571477917241566794774788424439293281842808797812766135145092771598942093793032033637321266363057816746291129585272737333214054670162188250203496015098125353013113493505356256084367788513095124616174096374632177236524193420606106545818282424916759554244781441135685007697798280889343639026554885498664194038235058316840366900408909698859207046437586863940983038604634870522027704774616370189922789305786542763336226970041827349556665693975128926402133591105174907541160746878789678783934912497920073593347944369533236363183507431951567234027243242525700123952957834625286160102875051350262772533247145168335052804048167368381864830971670151542134909131300049377809633578005581449064416238712157720904084167890508870733767888675805809444395556152251858170934309596866661554770671426492718391991128727911853645493839555456855718173187706983033522368439738213368933716150044959196284831500682438526669256147552476353738114889491747232820915988665526690990494609268238380801961456382941134528104122453895718447004838343821222072486028095632554372065991226386869772707463555504503129188584703775973529686238497058959593920290533120487646580977755299084760254871691550313296865419116828569677434179073002565758392469024648908504420265089830392959383920381457848776949258079022198891190316060218988196407847362845373369977827792601458385648826113215665502238683827367554536181789098066778299312984376030436668647425385534590445745823099968959908016093989833680840932746181353209007657331100889700482293815987993578400663059736418080584211962681406349451246843167264603867373744241420032352105171932226442945604966928209557549606265226476344895302189837813065254469460157638371457593866068645184304638864305642407265187450317888642680327263981118521773254425623859127504456367792846179128579438398818744578417128422448472395885096373728596807801466976998722663212630578792943812561561977239064608390681663290497755129439739074305863715248732504683495835181429507155206061842131721529823751999007498706344037099658115964813776568820191725657238031802657057620661516097755965055214890649868498722148024793988336171797647464197036313018213061756066146192984890531951780727778644634454592696715427825705984568125997005077719793804130941201255626861734084384165530322044806945894823084511156811370769381875794951995099575394622035951813589933468574788242137589153769442782421251238794176973008491901123536798146902057251457943539949570813310959572736313333152389286143133442113740563844465353596528152490757327494479604169242611368071124048528952845573868001034892395740207191071050666314375254834084716605803356690411324497449147207118446895741016512257875270205476364207542620017178327374708809321724768994992863492571789537392436244710450764720731927873588662918674449315422628773474114766728754850542109547175680379375810938617335409074974523179908731822570537463451870330411550020882969263076242199530984328654113634766533068084648192972788212361060900599379062533395493675002036621418861372303098021851917588652854484398534619996188096969333271750823589357998449355560949873034463988739905686643460353038744212613853504318845177701986403494059043310702712573579915277993290720980377215241705778602272202035051747741825569032325795111340671326390543999982706252309710228361466113354449323679960704082272705270187920763295031821820226911056574722609058017584911006752348814049351062071786915154242468477487757992241810301943597831357459169765448701349332599132614737000025689234569346735976087228348890941204007344595133342766088725697295534708854933600561653665196869044288962061712084259821609593516945375417581325671420028829421411053312237004329824597182981756370075667636485343487635091678890815189162285280624774302478780274695623522656927530929714181416278812856904396056632271456753792404505839162201542482046254687485519356340398860500733501912248222618134024626719603567652466133760060770961735358202461865759342699037240078598570859933385763040228707000611556608022127376289025328800568535126869697490530709424172396529967732057656511955379353500013583924203068549777736122996284876645398769423741301252458236760535615448287771457590334049641981680368074797392840582404676254363715253596808251531356350237915742269774570263489577355673760564617080417280950281170430498711313322097834816431745907177742408909501689601910250297670881804541352261384997232399295513485452902227805152979024109792622768818930111766317087815865991894982550252949418579884660349544278705160715847417525417551642165472117917082708981925717102282051643475482155288104059861724201381910713831774600507052361695192077692275223350089924022637005495302214395700930920255264969242741637226958144554164204030008689182800569720283768667684325042198252677503344419933667847934322558648451426707730336263780900819487345420517339569931415465690317948757978200573921857364900763105448016026560185502930372746295626148375377666032999427597757726089108852154826232324365930406825055108276028998141990304560471172193444397582053343659896061444926748018604860655222960186297743337484836706815347948261198701614543092486821826380635906558430246239452458126545899472588346092568402184432871528159400545654084801530976321424763689061330667205627385085345283722605754717125282245626148169524030560836775126608305493936083846936639548746151176562967661886129759928962486991245063915792589613525742958714253631508253261042050246031630396807250484524777895438056898291077265861931969112441191587481476729741015207060124610769749287926974953379873990766521654764861716162065016997945979457561293104727204437314289631814139573478328788132103098389362723656181039737927401855894569668705152106173064477491503343041921300671612889683030013175037147062860321193668738381534363101981408607227525369701107979815641719759464849087623817650987225771451736182633879432273748911034170022902078184259604862477379540885285734367261599019417563409331778374673182893518874211605737151726782344071304287289364261279348709560971285315280164211517408909674097741813815576100453745348585216009912845518719442080464378456154298179807212377430989936807732949218251922951973745269086860362508316701358794363645655489049209790005958088531655893910558805899327501848216681193206231636929492000324780944617495171949550756549268861303983949528758112261110041621830883161796632586746443539644938398192937540077056813214078183120056425972787821514556564991886829826269732183817376466643086154662734926852953381878835460348682583847206349272859937735866705249769142788856772925277768070537025846940562464775558233450424784807756308684044197643675001801988229162573559762713488059285933451858949991415749340934410463301309867874854078020289445586583225121092047672477863290970028983104263237000587053201013684472547682952605686627917245956786029527488584067778842184073675616510605942941981752818193892611865816232563854401218276498288119665640749809121012352080993528940378310741846405946716059675716346940521406189821895785664192701301992927439783604584555891478754700011159307564316949118965741786772057610654895889307289906008820657738186679936406429392195083569336841338451335245166328464681848755899480110967216871510075677590597784504252728830927030223798666486308013526476404600332542937909298361964485401637059625588571825330264223767491135771178132346477270621347599545806356339502472762215780630863607571618091560972709870235721278558262072677381488127101693773389017668721652486666689383821689084976876398394579708925241242138688461177727285772597716061271814772783806107631846838393647081313004337193373287505750633486253821023985675255513342637807502173398676126532813610729653163017189153305288600901100242251211415790838563049071051311895095344021597332256788067722152938623530256116099735073012853630922923768124253545123983563234660940345825225300402077326108063856512885794088379680866858590833798326959151855956648558034326585547685541683058823620456803889676369869531062860168389925163807889151259326666510847120199948709616813959039857159216940406456077945947702742092044989211829204338238363380388483335165071426343284894473895859823521685652287489275849857466877063341748854897611614349022229400044706364270431718552969939129248087043234305797339118270269760615601369096865791997275656102983789042761274024047719853459124582421615509490118605810692174468212491054479579926975040643418028139795375354801593302590429981264943036120467856258392155433567249666336563425693482788273578544878907728770000683420294113152268946340941982098335692401303217978337622508199876834921474691496916320286001536220282173502477336084001002945486150813029133270626824393604632606860384855611253694969158210036889497494361957567123153796917454154235459810670149551870424301920897831490735947181554518202989215378841584420493737218510482208485242602919845356634409170771670586889721747656329581485927693901914613966844731388198443479237897336022529699864242650707484074858866709478589163528103067680980015781913713467993105166448473575525614299621725989431038578253282052367240215508690186985058178898773759354180447179972316974087926502498203436426852861310031696415767925560708982268026236407870017472850863754080318442612684860628402918050256585826796887431400678695861569635654464728231500500695506173241292096605044632093335603956775513181725580841040854579822712055807111575128115465482755023860742955904559016318896187826889157884205148350010433147102507543880339548066627397138683076933501467735241191276815308554520707142944065671811052600263047420113531103748430164660679741368732663688183797114056438413946078585603829239872039584660945634764765064257270544644280052634436237262693268318679945741401981032796387447871317846602067980136057253686615415055711679430059064269100930150994506233281163526082352168249968664033985026091548631893993771907264280426140743847516352637456945952903358839568822522439502086696845890641138465730035913123815950640725628103926762023199678386310719902456322663617702200437214966726908900677260877178588791148426112353833118271374925250775829700132836560787004701764130699065698650773870820889406668519873528878982370499954354559594838631398128380672792291238243805636707483215231503737968562030221186083302003913858384022193060190538661412220730060309851260519949576901184323607165892250574199146938203626244945664294483210004891717807093801143209991795395652690258673349720559005837598909286937173355034961879353862350892637556789123627326388694686309108383275116478238944165963309624386354273387462460557056203186221456255059246191264986215200438861831722410706380653532655042308420380044313443340817188049562565583920435814719145518655708386810256860284894995224785890525811731636069715214995590130070059563433183232780630788399500602984224353689726953603789689130305211100244997360813837372920842910311275563739244522606406940241776765734734016570317797199911530678800019715024237868775310744382319746129518426179352475721999869233894609311822599528315498070501474320490745008077067517097400289918341460785879049135028513915739431643902572242922843776300939532318105499935033095295281893052236153994535200199521508130232352001268198348184182253024851220974449183710157438935952890995260943185301828938911197929849757761101863784462953172212752837339917001254109628688698954094651498126855481265404842596972172781256368039344841292850682773855396253731701908638271505678600974248514198315190625141736105923218400189966237538792427377140319136423015394875353091728329474847206223561800880125201570219423213574187856116889380344588205866390315845157268723672494233826355979141792739336854462367113510088585768483410271141783812408713925267809265536973350805392873681364099592161476446031661803693794550050263665919948267994359835973476987393006789941444126214482811290876986360835391394628274073196745870997607775356430997019476482109554557446051130283860052352211126803777699031947830356498692946716746606451291754005626551562332160320284190747976705203130426132690237920591041499626616980267253470912937831585919526785331748778772415104663166082160641801743516575430205093264054342073631689997937694442872383937424047812835338917723975897455894434761429387138258444092412948265245614436647728001763207949412439802146169084144366342395888409499869243721222288548630551782798925682773795888135542215393520545756769256456889842138394802855642703756207898462112935532681776231217051416840066262168452979420776703338051220826360098301977043611494921166554351133480460326222605625921594009530333558174605537903369322785916095884535795637630536809832263292267457233375546307114890628205905193807335238950767900204680368499885119722019980237402405105918769290218445511654026256055987421015845494756268116863934707490403052889848833456805009798911750245709905539141531659471521771442609280702729681035319662689845318460177671620454547252023031110268236987363619945734902165030183990825215245602088145466678149320099524442452615287134729887992699468070521078600974714301828749338434662566940680401549467094346465786498927429613480465142923395631702281650100654942464348658189592041744763401336138214742817805508908570364403629033158504823163448584796670589631266443794030406830528033360965446582849532730676195240298711114335668808857131946847822041686124578507194687760507387466235847895655857479793499151226393023952042679163123058480625666514079623761147145917560773659802989970153461928761708682376162889492428396574806390529055983169289940384691665374719407198818087596443228537068246579706014746630769199499660935656902149979335831031612622270148941701431421985952100174325548029103242684136068067762159295886287617422411450595754694428929353061036514560909671814217837564343661107852411834687959593466588320924506434246553478009114970000476116556290634095098256459942099617980980072166511397123040176785952106164888331329451194819552157374243783784848480986478844406793329225117310985884053023492425588394312256752977636777113315788576165281530241282367432403770074935040017570237742070313912166388306342191755364960424927785054240300601408175336178557841242801347101132867339288371021189003644566423678925886872863841211564871408334803834178030615211800699313358065145714955549180399392125324062130682604709163167606667721142890702732872676537934177483915085717919800378609645977896495346886459260811023787514692173975789937291415646161223085119045460981239998079213149333286332661856599763548779820902732186559949752595467395196172606693303632083093673279462912625202919966010314824612680758795534502555167317333586821644868892234177638693098735770827820489624308265491415654312167995615349755003713053277641804897159893184122775333817262308437491628597253931179467759936033488203376570572060462099056053326324262346666843474643371492014221012502279211888154207034010714471436655423902511600825985164513460323867463173290618919500009957140029057245895894487494491188726193925440190194256035248039181210973892813066367041195148830126362577294885640618230388014904204902525211388396667767084703826392239985651713211293986835240155782200095387205039453587388036277090924869261167591650317969204463824750960524984099674435664283347391309604186838037864062301644310018601285181026666652671455274022350624015171290250004059477519251414254896100236407196474156137312187663893250981407801652066711827110227754016939045820766860942147406301605127271113039043262313278154061974562996139942770401191758947394512519908387426286006073314661391722874848565752651782823500154470077706682326295928824508697277250382369376621412954275597784655288022008590828718590350392638546016442857160910362529048562655161335408339960891460759708785722903503507441166550354609769308972068373492204277679353236869168396196868612469724843025721948535895175408375207667054357675296666440807288528470793742135065794180454267804628560141216033181522683421652566440563457916007725884484101768274316781087605724538304038894657371447958307689336843153563006794914892118148105500270135694860446773633471586066071649017001527399793688060152130514105159462692922443856818602615543544907053333572777780213352714497631409428806963551499056422040348394300257649333232830487044888551605830671716230578337371994308817690545978117972235050142479674813938430333574621027402760551134861536757567202938540524147280096091815960939699187410038568503052289067362617430794837885008840140844686894203879419249393438437816493591483228740707803343284533484464712453880960211815525396340605915268222108073907223127165272818964129903377592735137509430741486257301296557985314981523454287999156156348006816308986001061601375019046861777808448585058167864893802350393876328618240156144980435319805668966516287255735838658076077749951483066871338389944393642772802708890929211000665725185014156443355995011467450657995830622966086890301203917560073128303084920563344689427244571891692941682971697374860620544336859921735328093691548175670100552452266725004313886500273979702937500861271086728217723224990999999701370262261542583815483767285091182784071173746866765527527685355476666426865686696096105763849902899701186958571698610103713416875026443381576864072936725952173483050703342047925982203192510533313007186742962983338903141622512898532292043079992659846544102453868852518852071812353441321474432835761066356784549645391059310740390692098816188644343827619102396981579459037547457429047990763883620768845980884368595970599424430613655786584282785161831116803300853318313936462685339598475056622532837411170536332143356036352307188173301784696064777391688266495052538370184733264863035639216288713872940091635519027176444285281262140923585949350533719529082253148941067273923830166361422938764794689045623006828070699914341625377513317485982995459315975853306442161595823139702914334396662659129639619131927976333223666885518909481269323660561512655790852291237407304826449609288943238087496652368147908421313563183132376995958315662589662501450502710540915897240670594913874029142197238940114876199540272348268936174016961810456997007602601371920770427550888713246097866452889713470776738215704625658740587482880017705321077506154940081642513551355325792904743155185543675865649785543099690958425898982369464265618382328548148889872133609324486992974898888807022166632320501724623068015601769431140937903364433218549563808035850189325346205072337863683878407788818986093895345196967123108403344505544857386239911567078674916897099111981342404918234063533241256924150856311371445638660235559731756517230881358050148731763034380930009389312742559561681682228254438875428449801874136157970326273827694725745906386728586457699532483084828784453464030005260588007956310026154926275110142402032246991491738237610302459314634556696115119178768822269530031341574728720838042737001279343433866810090087473079482863986902501844525770990064081032215009236293066876393121199837213901169490049973419187107580433710079891821362580043709290126131592020701508888006920433935403190307377857127623450383006478527767228333543923595055131355595999755621084780931738858155906778096843328253145587731623312870363041540455051966489198089088977891661579649713897527921183290077071603878645743852907567926329511600465478473582583190304153603844328978547568956513811282448158681891726877824511053815117600155159438245218886175640397461240159593734378728310484179489765054991048798473747211670534735722702706416783453991575857088313271290135751703814877358786814908909862439120055691185912860396148047504903828440471441534083326498125219605725084600190238165447898813785373344232618589260788993733813205430149760160955365429484247503065684574144799284240377987230013607404124587230756611610607168839434956513875918689012989282693993305485526632023545055301036529688013438222408715816327558725611085952790826464501090441739842817382349149496855968507669174783306238765499279615921707242673814761079279424467180203854683806824247347651161024593566261378127377837472509834318283963995016945752447770481422070763249045233223813882204938711751759136985406623916282968526299737247020359360040283161662836344274581404590845574838476117513856113756793149572140951933272388433031059135895078775660319413268360942538303251602201500926582596398505637686692813368015724308729528053592849380580973350383984014671541642948283126207638230037768835480616481366760596355602955421500884008125323960165404613085234053432431183167371812147852267037177525705235132915679358438892647050664031710303518339591726918785887587208920851220496864992346569774963674444405749603942190602443575315365949673250534517736676453200894473082014508389367800945254128699112260305377181653386749397828202844681238867019230780053075798564947540964364854164113677182483289049124185075706731848754846486988172479980219967984569966300346503713839063067367967881546476217477961511453947203767748799873789071310896064339208935474179797533885783526614112421105161710576280981111533380643795682706116822743849401241653985229973340638737101057300212668576959961259537241894070212840428918788827318296383203841845462447119927511483480382331455506775132189028091615182722520991786641192410448868527493159123680998055898242730695595726369431433439439303258838497479432874151246392871278120759009471561006637178610286010912500234179359778098233705201319043924719138472700973656611327850721007671721281597293270440805246310451587058483446949975839331842746180317027550243952573487440486809736694056261640160566676798583826452125714959597558225623263141294266301834356210919396679015546881439189861830057594380110950454916515725586761724940126985336565704420426264517688046412696057134142383364373191505712918776169649764408249011344014975074368245346811371238208252898734038375804619693477747238732038376866187271219900421419083751981661037504145360453908535217089092343877311052648355792174615330595038008226140306702554990649215681751088163928946545989322869381435868073559707646758988401693071502003576114497367346732211408615132814211286841334154120917151618908187120392817717586434058374236643262744657433262076259204060082556608054950412209870322487999184383834903986591094826910441276892840672871802356847212431495225386877184166745310322072474114393516897640152716331116886812235968261562375062575558622270814427911776489788898220829140295982609244887612164655766478223789889267831443754185448260849091259847335483145224607986707493007939465643974443405288383484749641804152415608487564197347380121097610870659015985872547209800613172537017454332864213977687225344259630498188244350185109627446841329112751470662155951008860167266645521451130593649495747625193301489762388072126584043184497242944787432493443975035433625705791147448996641371616772791266085446877265377019384785296990968478909901096667437159252671917131550457467017229256509996896300113968315181086465249955285703243588978961573418753159390193514815964269111175193387455339990628516150047033110499462542466817287439111251803189187528888862867618670991245166587072671915203313442220558496976466940877359067404831958315176907398545682324979779946533756672136893501293452893871876949661587741176691522781317122852183892026275012416039345791528237238889251126011108299039592935858599668567237499019872329867308826387390573113975825523534498732405912795235032454440796587213863198630853071425151669350144284664884704282585288977167738982474459747373790621496021899850984657390701315645267126076490901894506390598065436721696191127119083733972651725753320124451243872365021264757936246759142835968602211410900391592710825433956505984932921817721076543822501483514817782282816056633969699925631031935611416800908163878184078893106588565873380591496316196369879204250230949414175623324281950522739891123288841778064746079573280396411564311899728200601646862543863150238184669117760617911300017614768717126504651173935349401383262419010511696074143719466465532832259974200938386749285142202765400390033686953973787543244473484905876820149339031954124929902776912610829874504856344210697341179148808142662050859478155684198807405075576032465821495493526380800888646619004855144406638373174700576498461946405664649306664569385558778148166117628069502889974862569016758743075607006256966125371576576052895169622473187500485878479153165667818712041597140920986346132352108911851247419976618262779737855556754592551621594565356264077934640540603477925236397437793305632020807726383181677156969654379837793492454804833092187657111027179905835669038118323494740903600206054729022938591881832602078037525925883580320691342076404266248394626092608228461973211544589284907127548244473636801078395970807490911731851107771458521556608668657663400868171176539464532998419092294362027809409371424917502160801299399468384388256639790726620480984782798840051763894887414146524728686755098775092424754037685216492646014430740389815156790360167531720633274996255912915005488976373576393401774784248734392842731991434222914298398763141774426770393741261742854778107854850603246733108468514443400069682163574137274540459590034960707051756104155185711283381508820136761775709300052652782570404206908882964056593461095879072248573099257891895123471977142378377182600198763720009831759594218301525100299878545208063600526910797199157955375449147209519535295614518592885820340362489580430108085408233936974796848848338229389232978862964627926461463422290190564437744246468550640094203994481694010895111446993278543906330243749206066225927238530456132431156149822141007688529921525555451577157218059165455318772528462189942759073133271269708916841845871226310694977693374239370456181296115432915253505060409670649280171262714179480630721181534847735058560403638620881161438493787062892404309430972890014317563310925659436631257298488992936250139104322954074719288974022767039884871831535943110079120521293290626952350338122609657851047952740667198812558248828678966834824008114163178355440712555672923097565065549905571559167684825677156297926054692402695240634604097767773202301795138699158679135923469145612162604696287110718550616886886161477395827570888173465821768419250094630330805461683211881845934866157574571095599040002938125782003895710887470300800506417867381158162323599202403410757737247841897952899047612249601264616280992700180797357631285771102507007648968290247406577452048948424084975458727279649125768157220233042698077100099974245045785539160879197934145067394082631791380506207041054296562452006353778520934064230394266297839029013733237895079834767140480248420287448526992672951897789820845086916572231633643813003349296384990167222482045977862236144764009072330698522897413703410525123179884026930068978125888609261342989554674915618344125905652106150504681692901952310018438270542987442461759803026335879005823609060074746750865244477643603058541992135798598154105018954922341022039522144021966579339484623506487960393271781556821055336889415651494542984861307624890927043443696592464847343961303050251785679088090926003108304547429017092504716707869557534483570391143665453788144710846253490314141907012619900796630899885210692600395969194985809718197261812281668488317744916198814888321206270193063606957343284527297699334225666641793503920678806219964814260875345843439749794761204372803161078114561712834835529887523783805217040904142750619579872060374855174842510125100411202858299913514050942974783516264444206157550024827260905775496279738828325126710745277175447197924940421836351995125153923089871806461199604264804892422743019745941801059676061221916916660301633394482557326713736286212070405033790478372238997983642115602614069844887840981399887715747587672086383447780851374727608789812674569354285667426323648655217084211979942198099206052477016479449471721840166262372223421680026872159475147365399349406933192332766631653416164332368926548678447054109241493619187419153074191034190899039864239951466539012195021337663984664546353601819212340745881248318217682285873735808484524272833671907569143710833580356000036357204563503861428270146403559977606345031740200578015008964399048071042330634990103495466014231459808584653128550159378709904392025072310303923764987734814277467135616073121316738778397758393784406859987579534419918746959390965995866607260247521768509371335671335346455471594794897983280638538330927424813303731899375116446592975401343820811046991164322372430886763126852256047361033875184180954658205070297355602265645669026466110941457098002817719721943512357274470605031807513510255087456037698633530474712099697854700196662679381632070219680863231209102169830142410510415624870809738293361070846986302787458170617954189368184455075511597157172465455291373481725779057719579601808654841914947968959099417578762559941439708674957694939058861004857124454497084749579720415236836207465361361162883212741412629650287631579299639480756682745629424258796026034008825144399221341539043323085370929177814893031308296075451780005277759951446750508455777265860470189880418894831674991076712013275477731625529053931833365883019170429785103903385780457441046608869728217412952921671720380423948363807209888162541719397759680133393396946318777882804352986144925206714277102736234100471717016128191475628763960077200033632728021488068296261236466717675250907668575973907480176064197575956883939934712113711765238821669570166970526840586849756739476654800627727833238353258956413596959507807501670561595579572923897112396810877234780447549876814541329693000634367568532035850692826599165752454764108121221800189363756429549796219087819387750668012655086374078170383476167405306550677158039535408414919815750685529886997415613568164913808921444759872105821618994982953176624614984672227330799073726493413702768586225599936566709244028363696918636006929079475830262403424747984620475513066498840279890465200004057524061225202697452084875356810721429420094407486443017385084597721860924135122629891393695737503120278120046388562413658784854369109742287876840832688570023446980651850289270603365304982550907253196673157184234534660797648737389511386969727852596051817630142923826698365039966369712103381032690075085852198101282574762551435878579816548791146941041991298450039100552362421620891425992454830121766928576823483419173241820107735084310756040952152029011704734386603986347983520356580624117392916758085395736444665550205268499330528773726738846603037822183031912476444486670434367302169881382452802438506350797384917111674812993571915573010944629765165822852168852934449236775865579343362024153165014735133112055866451206120368084517097710465690067912143518837530862710945362746449363874392481735772628456987140707168360371695014188028223575692752815130990670203816121243933867519971516974250864170084753942622339006117938097161926989225893914451413817755747622336760401698096308787521878964629619763106588194446138472443052393019093818032439047193815088046205696038947059563843768854087646142427869204759702482363816378250906399542413474295631297343035242585749836724489912365322956545071091369681655784186526728833119837884866810115680761960187152271278267154783655127891553524617779514139790348601477045825554112685512484359272369651244352567756177108747370974702633666500679870805721005859529720137441493122247462347288086665609508766612439894420773952629586704638689931344787163767973436721819820785196200787321200586822903694955752489412270686767884647680152375624686285429409569669553869874419479101930286235233504858713573495280930615637059297872948412746303299057070379782226670327397864789086976045163350787461938279784321466862049803906024106967338097964724211073412697619483123110367200389305928794256800443660233195492178988083464179259393560752439160641883358184813540201399552149963812398940423989306692660025930407862694096976984087401477623586750658184979552319189508095609896459529036504171721089743283171707517570518889899232551403410343063548200062807505250418527801161448728513328199436428986360351991941200912015213904065700561208116055185506223864457742931170963519629851741156457660601049941131028577612654424303137616223543433282457975416318796094009255458321296853915431653355030575761079812914338344523903913943110595629724101313279855050662524404411854902614222635844512780782816676371621511250372219340380692160136572477016359515628509938694187276790102562807140495070415080460638341284013515773494901245548302781753334524977758801032980694426936098625424503030834797969413404195896755287153614883522585657712847351317250484069203419040360820357362871971724066847085080327729252812317120507618447478266143604528425629344647074116333629395534102995145494717265097261315853106580257749264777842381084931951737500606008929452976764851729482777817577968029444176075246192774176785069914134815257144064876723716126304845503036323835461233298857572079598980855895370126593920369829788254157726352821120175006505375041129636334543820280777848977696141092530248148389466342929854271985593254473408995364809266760759466961001717741931762794587020537310212752394666811681984209557287548921510465584218971910432092020818815051563308729862595537404303719692574228447165411338883264679519507705215172842991132350912764019906127254712915831238032972541038038397991887999278458937151635043752485204875886623144711654612006616369893100309123295978613286764716468398374870402740226737478221799380356707485217196377805155907850098911677792234953163556553057954396472055300553677435402520583748843979284740689031196856737356192376055047486977403860628637619819425841577295557169965220692807768769213800925309792739291751041588930989472955594809596472568422396022320629724252241966208090167992298221237157692965862712221958666442570383204057675460916467265579658313358929719355305374328323796039471579292192475561888929286325663555883723362962763360212625685644432414399141244029698292170097882769472099969325166143174554503637871657275026265279130335047444176825061693599727050769519357962983795354404986325998006273563666826261805628271780201973776090147805552194496260271623002043346515422696625246255711726124181698070266741810275548695363034638687007046634298351027506530236872487279530617696961166219777641547037672207981160682711231995359620975525510507540653136770336995947403443781404976846783961227891540850826292817456129906983408853725239904086263404334691187867486757820093638223001055892535143898147880086842299762425870174115774222450413321245232142171973348182724445007968657474430976522694592660575248837667175206194388627087887399216087845134922236972536442705922040259961548282052637971396218226391967835292410859611317488662708685245252796825191316207889254095643719883285219450032585376612050341852900190746262163589856563318254473099285488953245258401556456721098072839535842348364822585342457204579396926556285569615980041589851019642042958676885436561932243729529689105716500275024913888895034985705801750946627053592097621610211326347330239728318522375749803488709891288760081540511844400741771340557976618775828859638117399514020359545301119589761108171164385235858222610726212501857917738396385187641873256213714340576634253386125746030954406514253721939578138789057370746165389611980050581155560429835433621325898367392689420292135377846600587674830523256716929862679878746352935872238344967296051711385855643994761497804280561359390906091652750402193845404713375982506909711214046452675227139637434220491591360172123014503918077972687807799471568994647366265464262912019127164331480294811733620198165050036983116457279176703595478849238484021122981553424532420512482899071557124254776264897894919340289810142020743180158256846207803634417964664926435437824516496034487461452206365902202745721064241119336833355342559905775468713786316925415744598055735901825309371477793754130052547803404320753922637785589089140125486870627371984142113868343233825079563290092578994490508382709403968730279359100435632458726098298070981263785558663535275187168797642312209681676434146814841417328927636884585021996647918577036534963091566010317341873954478478405483370620992107655331799299733404550127118852589806446209303846585770425646448917663571340610988193364006755255444770278990703962299972852480677979884736304407531117152517351146382612834934465854321196262824025538977764733065522031530765183030423666386289390267461210154786343875613803571355994732186317937845917575483413152080781761052313077975157131343741976440607317802202118065088939160210197005100907170608660450162436401152404096085823558033148142466668638402499517424966076298424108956253572625122370752192804384811318643778718618355815663553336287714524562085761880565688439434725671205029826286130217380107975274949317556066217192846479676656593416768657226960344355259532318855606262296787050011186699479707732359693476597680015820491930971323708378431528065288767417903734441294552565840857319252210478017979999129436795134894672944813444929482001701012222872353969065218189340588840879009228485076608882453158695963605683841701083994299989448868453461882300181787649676207858780428193191946340154631633545098193422319289120970051766228922199758583167462023205084620547446889568419207586158399072313597674748550865656057211770005118561879713285060320460380881135988027220339829232260852885959032100206307961560265022753872620460197612647183668779891231425388971702582569179970100536757489962776632787576409300684091668509364116732300533710135718315154838178482342078083588507770329172988379320264457141897270107382008757960842033996304062165670364581087977337343399223542550338572221017035955371707326515592243318579826011340903193126081597062717256623998565987092599514360121116411950454594537475401451808593806559929535866486502713096372867737570244208482380897511218608647326461129950890098313645772289078549086907440465737525166447208853488392296105054714752625086214941559721508498063554238376736917644506600745282453037300561930635510496194561447263852870030292105243428867892349946081027811992522877393927514571563116469443315987141818496623526385192692534436391875999793603962828262024195176908154197556167306428175746870464897607159676506562309814830302259118843509060946879213049262259288957365778491522472194796091226078100532846216799675407283360198385415778978677250901673351068707014410693914405680554990905682463424228630775112905487848055409690828199108716670626157750332965066218896864624823932006785467455998449501575325772171155717546362388596427152450310828319225442298834473039393427894226776579186956616149466464659465104912809365768255567760697233787053627921323883066291805377441838293291854008659231775495160223874756449142845618912066827703674030521848665736097603117550035312720635097462783097307778759028663656329363380218696604924006871053669737659220792163865774118591079638414200128038367493291443840269561367465880492059707893924086491955574376955745795101668629072776955127517258256727478810204332445075131498386197429309939115521932050839882341592333864783176611396816768227341439233769477599000274255160150282472414550420435898536085213812525957725404541938951698045242424440326665875867501458149402042928721389111547122435726934716077239384891216883868549029309148811683591827844545548620282944737843240456543263057977907161982255492485099372162669081040127856478411224185722542273860002345277658618373250359358556244135394493702338326394922049150792029895185228114125013676943913358377895136507277921494334438522278350778138847509523838304393891672740033364366121256141712463905299308555024024186629809309186939083615606117949673556650241579934032525833809869797193878070872269208406558998549783717507037653021209580909620041617487732446139792037440099306878478981563882413380360408641348311904508870438834606920685639638694757333517641142482595597620837329298117146768583350692976987513307366780348612373449066995192643897936369560373714960294614918478854146925469359001776984500834556827213982545418022344418879271095143379630119835220977364961750554779941266095622185161257775678607577036383199487734855178948518965247790254796016358212989217322827472142069875455631380784319368667335222728567403501126725477014803649365641156625850829970794168874898621001311177623538305733228172519092539392773158198494730681894506640877306363866511054429805952266208899814527644984137250606222970996458027653880327535968302847812367236859995040794646851005461749146560117073406114254166620109066179976150419210922486494287613298556620415410490660210122076195992306413986764206060284057781803163404569907641214839248872348684434422570398874440312578012904960508986747132910459912109506967005841804519286614398430570907006954453407978022925644255405203452380201347365376042704785827365807285155982440853298158207455477653798932549421110561305324003698717928925241383727442756654481911218210668637547624307956305907574499372635602648440779419449866505790069273350063429714592412251381337603579808401056131441855128299049677779116748828213680346308327956119027018017825785795888514970970333807331888044879431525700481216635765686690093147407517596273781623605650065798517164411055826576509411818343922131702149982581217547579865255181578580260991098809859793815475150761367680124594298258085484123582046412268285642838828671838837257676403211500402875952531919404188455257811109269260695745405919555706917867762803272019207835196825775021854504996292431392356940627088889544114294856395403959639638955234029660535007880987035060672134996839130375847966560342741679494116046849276163782984187335862088223333234258902567923812912758539233434353349017860657309962854556847796888190915984580991308575053938770897599896939156166721054279511087376981900537513914353810754807738833206482961839723719641692358411999929556275900726919743594832526440103107179003564694988109488628474951395706464308964845812283628622189579310133932931109724096483758463450696515643731108077666708457395225103521931209366423289514918538132776726437760367570623545087424610728182743329432655868218712730317239248750739458428636607567606762380470340226423244677425371779457802441279873415961505966751425547058224681452718939510272964037879257940479216488990083577715447125886301737293691433380243698903672654887591637960616522860204395633212721010019498789088059673430102568302655487225039270880458070404976796406694577658923347809959552974622743884014520979140469031152678660424089167942274713111789445818044041906180929453789054842488182039253251077070109060523024322284342739751784227396658738795572378898636607053594895665707724174971612967188411457725959466479503626927345209324588309022134072300708895926345273380755983701311215967292825061534731710807741543912530920401486969653532898301521326875524195123760673634818849149218155088786314686334608819993552393317822815110976264187342612865010449684283692814672844454545028123797269253953677570700183023822129114567728296218130244975687875843592067452157901306615915065066032763649938602785825797282163512800106663293610559224907202472733495414509282440600216382297296052443898244633338914038887044852287608359693571842082043592263710344796949148912388973377576257767196549375853393129952075357165407013704935949266516847987342063913794346922299989046548489597878866890116545541281775422787158545075849388545644553230203043380234439151444584491058382833017633682068899708457222856425720803862162779020056420482264484754483619103267459212669908949497975283627210721505657848731568604718046391589598008574442158830443344797618793236186046756348710020127531124117316720415630483509215884967496223700112779169734260538369411284374552348829362941741169947646246472901174894944459582271091492099275110069891324133098664103646619976849654000859619826536951829059293416057475244149405160626867410959983259537131526151712067772048707014622724554434763769672057426200474266174678744016232015647715854367323624908445312562540878813439402502783769149349655315819938199257890751888723340243121309231821079217080762981222595774350535455626539122074923375502493477247464910447268691055388180858360701344210427635425222701648824646572934018995042204318480031919593078509798014590535953277036058719314277999308591979315283091232399726011122383782607138326915311266784355876831228212812848417098860652049300122630625728063231746843450218491589630639035670533935632841125854086841273249021683782355958730055557661454174734781653404170410834911790888269381523299507948457023463700575617363433664749764076065388893950677930690710104955685860615404261503959396767388796009772255057757201483937612448183444625465978670208121328034468009389683562366059724445091385732730585921225227522457976526956043089543149017698297340921372638341451709467938290656197407447524815301997108189190807807133359831047975670550394508576893097284027945313876653844269453819263468353136596933506098384636540243413787365839147095876164714156471975486461373952523970827310423237405162486292139200080384157506628529575259147892111307713735274075549819353572654543443352976286345019965525732263738352855753888325412048850790522762688975386886871850721228543652403237355510176361001811712823024682439810591092389729795950932976122891140151259140320626027849485253058552945441859092244949116569700558271180602514517137697166059528820267078100017637924894463077856737535074357107650184341792039803557291710292651369850284940745229109570718898671157142559550320505865036413939348364583764569046447624456388542640518250436802943315290706405725984642155021841139921155448604649352633619414908958302952524847043234802103179228853317767163812843218129818550775423961755617354738526652037174802033395420334383353428673465176526587493502864977967167386822110707652169721851908720759894339958386229166412713980386676277797444393985995775503152163397367731057300167454166797220853919540500161861021550851716780637537230553603815716046878465501249717097742239026848001568195628125987762368372978492788290239788303974521749543706453184839006043065337730851038573062054495224464977462474411357540525922810811728765520821647990581512692083665397313726596489314223385967098416178873383934482568837621676811122458604214901318342143263251610325991060541737967526630269001183807338041952085041487467038021419131715830118981798705297443414333355630321586321237122083455513241030732572292771630253264781669651519821412628350260122325652184635102984049573591654180432222370311501148590460455192589808344517637874325592578424173439171950579313261824211063829264616771722687871340488410478338873244143393585607435331984770639268030648207136617588504222484926736583154167170167020291291215212993108673319747360389503562772139858485544167267217702050651205684867612628931551405892479369355652330619338810619810092767032995722452449516764621853739570056541902183531557501290872067148510522843868363128569430758824979646615479863520019952435522182660133906131013352139576848404670436622217289952807028654514148019032422036101009287635406062322529957351321739737967907930612502916186086765656389539916551749282825799764863621038227020531066045699455959890554926323996555597529661908900027133485395546667783050107603303646292788719398987775008596530042700282412433284313338067472156340572682518616017578213309336478174850988511472211309956220400207282660404969572077724286384469075726814319423840979409604910777281560760255013260263972186114705111629462643222553650133607833355159274864473608527867886273498600167507450056591920232009563191503028104316332623759898496344318461762381653825540375921011499723805355389122661076205650978988167929215223046093192260430003032746751204183960624453761681382701832346839276448203952749434800603116564165560601416604281135681363711370292253920008381320196893676693817119446494630452167682098281851000724787332831312793748302757474057817236613020894858511432115301912721885803607596670057794539989195051772099905635069374820031671425996628902814849450068309673973524880970023195637297797501660641958129859907754715893557603573243254812071668521218146168000110331431173476088628019147281435023797695429577715050187022151787177650936037981363596913833257332710277734140264430857498012465626831738975473752048193986353908827174495099942752584508866606142802599491183241293326064142489952325763804302367862316929094878968987563430638828815711882752779815171415549791896555997178412078554171296620299734868099498715796118670592331191550008107051726614737837281093682339277121702052438060458400309921621800860279250287300077415531612233714636640320577664316627804700928643891098129656161887024889680316446185834268657263899132307841315385996552226816873064849176739099744510268781137485541077832574781551512082549941634522163143751887990307037797515817608109193948914493230446591087294978926903181394198761626334619670773634941756747216426636944407511621865691566439452551800128817111879204840572589969616027664735607112912352534437840877110221974636235571655165791714198881014856943718380750863314038735683849501521180667183474470757835930938355067371764509422358646636663026821529665990903174107099102459149142623873479482213667405466121614015103265855892493590171798354390137262964402401056517409006653151662042849617519529219181705272789439074540357930977718552469683715442647031962160994490711386558098842307476873983600329811686440594637889266207429789184971242914544528996530531382011421542383891193940275918229702052132243610471486099724884609911085909980238760635672090755897747156927574503733907775733852163777647405099727408879322540738341238456515502289131393931590154561600226191443816413152422798881239814788641880881980482275600345562400831755061230190127647331159367333785318230408699399344783096203165089368751517161660422522405753622879212895526774536753040810978321456447220047655139529086654712157830981549071208033311438286824110680770280126263265229949746163931470265468995841658371757690194229366110476945729065280710993613695750078696957042108576556545287310469725031098822411838322054534340251979247088655709570488742128133058938512792492996317594129930019910627348718821925736649476312836137907246917007120597413524054895946282781564490610559700893826206841805015993241007883251359354879773532065392509248571291081536307108905280956776672390883016081909738133426788681765435089211405542318802333737467758692307942269847381254120562277781395006470940020012714502187828862520890838989242338639738107793641543795412029131083707434259285734404119501781961583793969981182260433080942471615876982446781292173637123709356656513087972228726511400317122530535367057625510109597785117042358063583474038027128808334859640943963732959925423765310161812408796851439928722458231530385061808768735923607652455016846374517636757279701156169641288120564621357855579536495257734363681619823375699897441421043411354109968791238181446646197211769581379115334406080034124362144586555540202517034883821871833543738690291983013343079016328198186705887707788081288052340151888064093962791495196470390187537343705302628352605181530861580308471925308120187868702427181172315236902564335648653875092564102795435301769442935305117506116896149540647220605499685805835320360232380763092994514273958056779810492517310437904229889863228302111549009443334743636980879444106172418601330256823458989324813130349571182840049124470260702490298153285593567314905882308999290159349921760587773810768087431002526285086818988909731740699200700968940111577197633253134360157720369052436389660086797258225317458962717413286447535124883339545408253865586211270823553128413938833484710093548522950087680703921609737446044757219997762871052627323382307690783419740926192180444303616032496630307011575565766611520212238565219974321629722935761983784170581926130066154343516929084539169940119911454474473112885872030660833482811325260018933247795713292722708077105888958931589169105251967511160044913993937546773990883797162510313483791758849634583397249897156231953316204980026947477673570563731606910427637109133622223169947558383446724101936137539097173294710412299304012634937715565646096343616333606181348315797119425055841851978102785068520400920406288064313871086536967015937010173416766930522507149568624713116221126199739988200070576911507445301764224287198369101731588251607352401294708910230671707283879744469736136539882823743723708099109181645932009925914171674822546665008656367261737262308929622813520943845016758634034662029688953720710414030039620607410470149552323765229246997836911377142660212048457167765090761926813798116819707841625459227925145536367675574659552849648263090039672556422227102225709082571010301715827847379989103312741601496133442984022406127495735710272634654778599978894959054609110681015670246667278704368585643882427463996727864799381934038653674855586689044929264178171685560620490153663484669627345143500814352393884876458304352032340973025382432567084683026037152709324259363984088588269404218712086971001786174084264176625939251549919844462362992782927656408561517250494367309176975294787238553096907096264765854316248359755606100393833824252744001553278724595194273766610451830601538243351346291230723892587011634572100075152830993335733390106376984610699175792596293207962535399465049828632979667173165502861822481506396586296703088914066355096455839416211330743092224725451711063152506621660403423386112122903601327293759133056663943085022101542299735083928415577402075975067489702884860371228631786535515768420925470970299001756436845868439147320474766893141931228037264919813203514383474780443327599295584984213737444512323436270653747051258240582113543043360464616500780321124935471494108500034364283692481160761383420598866423542502080805601307761117227184102889408872843571576836938612240346520939656752021437112209367811602540886539493633837837478796539711799707443767770059299120162881798119711742357547080739438043850728943711115942217122479476067043721646627300915908057896637582119444535106318953342692018709666709767364920631161625564009585132886724339634730952389972959241940450000726011246978769058302643086014597900606099735436115066176305482154789459119830416618973838629189508284326516736427949418941478067924826940939607872921055400335095737731514077293049266163374891650141012155980294117748985489756834430656611220803591999424264000346343870726341217810878833455539053599735769803963221108762816630231628107867619044157310059278488105521625948317186300587939620029492879606834773647979017625825023404007363576296966720223211532812821659977758806878810077773958271489644707467480675471610007732277116757680419928965003726798236248869890936576524659141675314389715918796897202605734318775956107779150307041315770510435394533867381449737741440470289668228464699616363910689746317634894423074759405511558142732236087068191014435166676348275670680948777781440538126278848117714231130254998255486172575448535905833202666085661777055538734476174265002492490607802630150871819791856121943991467236432913649443018892092110172838059448872964017005016737488189764473507702651658539852771347179745221638042906461399905483054271971367638043069978340806025930388617167219442641862087101535240011417129625334985361195150552085217177561908390423511840249411878316135622939133983110240141564431962696361346475321994860476987016558228507030122558331079771471975864326079242796858495147887327269602953617536937537468414180190587130548301654392588120257153274765701082111594068920636578160702085788591961117099697219389566004501490275587256088253912430552489410524245352922741258128543145301770608774762461604014721753994432257207734975776970549660852762000683743996813241115297440520987444291953556516883382884275456848861807071713410087508156599752722169592692620778391590890495847458542399359512121539270762370694668854191678586670400979181898697914148808028189924513274092794556607642179398261648581744757267877483623552054327772656334351011033729213040516202273644569538036059613252711867000800382868238492671007379045608828796680238158540051945647014759679764973213576305659083133774957516021520447562325319251417583159219556624403845174007509060960314781722748878167810613067860806859542235561076383864246947811541813282584067721383478774247598916498611083213611673112314053216247540747955282168799250754771580524193938889722241080749412325622420804482634758215683198704827825570808898236978593702274961833357675586205899145787091041665420481581507967664181036837081702126765390567155223710170036496626656721928317449434228236626286683792423878509720107965850874245530065254884734487656417210944195833840142165542642691322666608014454962754687076522196520113594221640430636214199271772272943929339082118884563866617779379874743413691135196104596799957852613972456008764488679698773462397257908086699925093055417291103285424966922701904487358158488547490321988018019507982207929892996747745725968565854692086167084238492959788324051918268424732940309477485801522966176151608933420894890467599613222233167304196272055824835615018898514308293461103460890351244654475582014986214544362598044687713806932119441921305556261471142300651370910010919912224814971789475858180700180872469767921917641243339507476611461329185208348114993910431926340668069606225259893589466273310445883478941180733570277561619687472737273850191124782912922940906267461952509679185952809487436103983581293433783960349674557670484076937679910251795739280387981623110688309225206922297248055535369613613954980617391691689388739078985749449930343765328193475714730375142489090146826924428453294361549580367594960253398707492179670127287494554803852525555512604365754474372424647841845730051406303791369790505747965294808957599195125574964288568500481557882933201399658173720182195870705690695826446336614942067992440937955582495415964414730523499435354754699653129135762230680903978181253139916194612333942186675320958551991729426722674041025073085190267045419750213527018415666567316733488427073686060287999856239532056825981867239808032460807427356041869466807233131756788653990373482063920410770794367681894320703201516967824842073487339829541594278571599018793952473250193627434408836036424509546974694896387810734660900233171681235849196587097338835491846920003702973129216433502645608682360860777275044610249518837509760571797860558388076865630056285005882609200991951567805584019870117360050679980523529272144655763168139264277185838880370241368350804081419770850287891312814734471991638196540160865578874139979844004454539440509296276264540288795935405650204189022212926129271101873960395692612100084166159782069759741698965929517519413696900039260040608012251727797548253336508043722413385741894486707842206510409521561532949419446940542245961611042957296090876428696000031787606542946701777145090122399755982552045743911703505377908518357509111619677979392258543998557737110715347312165457676883216109060534321274776240443679028548652963928893361555607284282515771510193295458947996874561779768777475251845421796146892922927807711929090208491282554801861847038273656268588050221094829676463600456064788875512505562014025071278705248695121433098228574501542519384055884434309796303655647000120663219913677988597901055589677517422309267850680997377657794380698873414269265489658919364852094851454560118339237404900866083301556551244205973838910998044812918580038190539597231610240842597262099115468658104043314877711556834465266532693040231740787450437248880304942309531574382822158470993683269366152745156236664563021248037903440186370156924568687003089819673625983165057522376892097477723001978212535663449246399207239588494292906011827643109956255733186254303587976001512979116974899292540216634178109402715639577834033368325860930990810572154076583020745173123432308343399369221781328181731537461358670843623009334372800509191353944385574727416132368290472280764130613846554552708337330083421136521484428029017965302202812860949215683459683489235300836183431760338055416616469772902483115045793186312221278633952682171154744440733810441455733287632125370455453341016873226332861980658238616504550197212416114817633706954942959851510580516116169158855830458419494563215575288796817979442592501365015458937333675976192754931643318620595137386062922601484999464336888795617212894171630826406893071103907607134257415655770254481674662825272589569461671638495510470222472856467529146851599002512668430845672929097974046432766831752828713704575364637508958524844767857995785904818407656310822235052950461742674593231883592640425901697698708842636119566700001685003762833281903053688303193425197145837467983057989125727438221264221877752810328677922543868996939456503346271319902093827682446240376274530662581272297052862018232843687575896336114322528286102308723868207496245502132495216504642171288950787365229865914460077433593914348858010670020051912391441960414357691467966114502074667068124522433609825017090426888152653167247036491830172510520918585619667777054253228022610136589087949701967882210487995490320562729602558980107781572032258913324778354241128409272932752158540461749218764960643860126688416016312727374771543520102521987125383471208607148184486996681870164086672962780742069217248031619946893294052707119080460664938806982063265442870132288538674389485739386692194138982757343479386661739060992848923274210908251678368661545579637045737417108640326011660596201880303782530091026528986763475203042065042139814920250752540036324868911027723479774843233593205796255664016885757581453883803063220878787880654795031720349118645790719028421315354051483968399309163165153953035466654892192402552378822919830397392029409518620684931391561770381168827978963189303772301416386854364160247527395531804651691551240670398283042611338882741647303567467269698627116798724535339253033163184094890976295652140709213707580396417995920226155199159520680593449165403174476189254092161808280484253405609331071935788327614566849581438950639979413535692191466841027401968611572409753175457710664840185345124507018122967978532395659508525317089862793144744035570113842432292807186673272442099213245181654392074355919800598226251988280730276942342869842212825102343527303143482479795752306935139799372509858859038892938091467732231998014825845485886629083584720824491553130051277606400260955002118961118544665307277815435321480458318711111922111060629558178229598000743815381911810501594117543869811379538265643005186382815955311654691108309634485717980761013052679848792954419821000351032355091253922419115019996707001506850054571918546687916359617359350776097763655283621192344975055273641135196340085046280065296793029053113311094378052434060468939038493214164612867773877072301769837923375437485293554988486341862772075731666250076309244661000524835992781248917520638784872982753162743817402444876799890785459776578311869998545603499425118022150061492482737025011064052355381793339156332451181996001125284120501035164024691487315826084311075438826116981749272390633139178410334430180344341736579306886464656585024266092285373392930088619421721201724683897738706588951746163079980722845490530383505343957354170046436104531926283377016076493961294356533188170861124457118584578703649625169317789385025764984198769390464110547746866736289147954190314750783228061712683514917900770417018804488492636308660569302407471963752147080594829587431150205129505757083567101246653832825568471667114585773653102152419798100225899296442747110140817469837929361046793108253923235527575876859933062608115798025989263264501894467929231608189044764266935492512464940697268046447840538013994497141077757326273875005091809028967973471951489491168995563062136870576988602053182384708446251357418068348806024378330698206513100088658031900240518959939577418165469825324435864678205749773487701767995790695281107205487621114551501046280871409581659205425226538935531189760205562482377795313264834208967647835264745706598182208764527458588915394123105533830008870958473795126259924009661881158054395798091503254062598528218075339381970609489308051515143969446697595771278918062154854863568463862219763514466057087985710428596345258695990083130932995097837279581398592566572922165628007414988506317726689118757178975407751467084267642321662233460208081555632905365098679176617840093072837116513773838361682810724457441739413627619247446129101354990905819724650955785002901512882165292143353520316279913564764727372819311958942326559642897348898517969607581627594525354852088674083298937450364970995601860696374269610916918828159867149861754060176127774912671300835556566157518055363860799543537677376391763745637098374999755543478568719890446999897215880256439991504517078957358928310555472512707252167622154957179492245699482670508190926035665079298557809736964554071845395472821357046164432598893553248034502068383533252189691191442795674072422849804681961292037271775907018950967113359142169567596418140736106388395780315089696972771029109286105554557324059002096482937489178443639540347767326170175735113883998420700295203800464769059516740129077287480938796641044285410812832583910227049032450179185814957034785691995916007322352829676411220688702995629977438037486377874711128856328752645637009317081703819436271500265544966156646414747360511969646892600727252626671083590977136766314999912673515210211120711596522181594994706102234217493705228509649476197359333793671274301769037684721572174188577840035370517076152417158203573900012484194679107884733355574290473594153495241112009586239783746386314024560949166770099570585387080359426946338192495357274888273306481007656644818128470782728511223348730602327304536149849273374927611626509290776888606140166358330251487233516138562634358379492914300106052087202927575528261482740349309171326328248104604958213498806175023134599757945208058460811583887049015028083774491856320867675209812888963348200226139353131206469123796704317802686535048367170290717460046812322528875014007856101824010860144019651312449332859381011384653747270916319295696527793565078141987863513091636325591962222301161996410287880148767869010968149952430866710191779889202122687370215722653649606111120910561503753435437037044474161853620698784974761132375522696679356610737024935603601556768062553758570465549042500623543411556511358719804609597157835175201379518851921869008524339153136662716218996014990246501527301679185785546881130272616844613294642025028901555374776675075975381866492194933854576603923968953974567057130371947479830238733316438629290508540433675702392252226454671299177999999965193445100693682814181944984683910394857024291349854050905251654867326342452520931769102092562834338834227945797642372122384014596647569234433217762091841025751711883562701672115003133602567163731842989555767702982971888561753623549274799866578904211067374085155175797024471912527019876675684864532687446659022566715187320474141776198189518560224030581579262506022864318897316460109745200790737479183999607055082068705075485330448715818402612451426952286194313321318545028995263344251007201496523174611017585268176227645695634115600094799539132761746836120701243182671520591446740576981568654524185027995858320976254560326138676522991571587892730394980725784018011101559376022347337932774497429568477637269181155654345017815199910743219578102934316190253430480144629947657617070744851501963140226861926070984089569256175753883948244273364097668732931100785511114898993847059221985617819428412224626474293297099070206790854892414048339814562701354462947111544506441819188158425114625854999712151847290729271358681646433792637953817103461852158977890387374491240339282613104811727053395232599915577237794847463287629361813548786522996788945812254992173552036068435298882046971465499006185942300685212695124154114120996874827077414637554139924361892250445069230070465828019678457896426573881264137133564995837898467011776166397856572685790779635907829854000439936833635322780550845542781042334322229365735978105070692722331781264326385878354136186423979805749188027029475166877984202972375098330215661353307348254333601100471253924426934594115570438311862804413249418223205871514305214825629036970504433529331777604531658857616318151037642274531336516179848217812560547407269863292717005882154183649627688580086763332714660031203029171489562238725743575717619397939463383968777875756711267739720296270183084357065934337764976572503390823857010491090950170640651244236897897082937649411657321625993054914871773783137668337780774964487115686266889253149712537674464534828894288426747617728051709058937588416946821959134264978723867265257957948896240724318963813875823626043436630138805140336430639809548564465082303328821701962637008517490516574146376558667220682554728971535430171313612971096618455528205706013197062005476811711243625885099364133923379729543074195942365315473210590251775343753497917144624727696130843915972694718036290378769313296925578163289936318792099723611893681736571366395461724588517070649587018880584899246727896359647474983339499353664353998132577971410549997687205661161886288595485305135780005747740165760219120244760028539349541601933856921421541855554608702970037711744515448023624160056325993223750332649668594136195570218902841941749219024779004122736104954161795370027847084653254667803799046590254689471113556829019549601786551829105292356875061520118264694119810049932376183248876830148249161165627614990551856502861395807975105122031077196057508231522603467429222954061482976983624075042529964331515806959361177750621037401319603124331396221429764248793624681971262852936691379224952401673156116109416689340777849997154092479366172015931892271037605759672554466563456527036753319362955816959326668494922193962290816596816155179060564629119010942335819132514311313721923266539871018018802020742358401397983151163819409565600016619709816155876397777607721599228673418567099332841640473830558510457586018045174000333006733224841630837562741122979389178515025078015993871060407746529984679082316970003665025633713102717130783003771557175905701960691899329160086641190498497140051980637536062553840789410490626863740623092872748056754897237447640442153813199944026940796885808353371325625032349394906927309404363484630220856828871505407915121569361249120992123394213173314519328177499316747521997382017375694057741627747152679583860421664258548687782998968380601056058327688557262973438806753192784338550055265462919951876375069481697369420063808312346571524025160844285113548597569927424163255241359826544177403398460068147745221146559141972578466694191164207915259945885193221913404629326630298106206966006998117796771587300120689358311025246110123290690171171257138354560042383402871697812639301075235588111505472426203674900620706137091477134613311963818779297269562212252810278942397375436650316465370761974115044619121655972646517601267485044446613712458038099868776238171497113245228038785299020261961165628958390833916371918313101309418375900654850102306844973368700566295320362953901815065064707914287648364587276136421221880695653817592028844194999041382515647939786494594620580579926605192439500403678561386271907353314581101540722540781093956387164244627406769303976096977071209044002077453008920965003910325977798260782429312084923679798043832800714927370992245691181331109446274808807888195954884513123965859882919618577891942720306161966472296629071849742604969555517805941789350280151775638424167406585218068380884985086946892918113122764579009280880304427506315101663302963685524793825435734875439551611489055058133984512414502572780959675461008209599709636291465588780115131095280298707696243886508477422143701848808676521617309608518181460425614451716333244154383291807116809496057986373232878892155930774906026146036281095039711347595237735231892609554176835089992958626961645291579981305186189781223741172009757432947380559232666555787888028507004780978015487100655077622459639721006567603339532105366666054560437085940465902501752531186995022528452274275860579229403043567206735387960063914879879781899433062605655363496193986210153062729082155019648440947452745289129052205439442863229535396041513888212963749825002607021527813696860622557455417979043848876182081212803578682232912003192345512466032904524127747845663061217161061847934695138540269887552057468030837732184399942209139005203990004728482340210768525327455628711056612953111477029061058186528841674145553862457137724221591863248250535242361017884232022505775424783712511665292545396551347695332501907758020423255032789156958734784867861018149843747407904018422418800836710105880570905218667425299741363633218602270311461467034961311032096365915543344385684321428818564265837243183993692212781368553229140166393567899294819574769116235247079444493864942794264606309853639402820362413667936737246148559065055600730688477396913791472724854345060797555922230597310543479015443382890498731162828034312271757560972702920254909944594423783831245366643172625100183164720226047892352341443520665410047086336453550981758034924982511555059342867406768921393148256548966803991427118057127078126657859989897193235453364997622977486590868260644596113333233399539949225027817160016177373333752450307312969928336225394272846151039640821120120909866822354061025585475078158716580624157662014192995588106224830410343930829462458492992611460503016999346408949398521572354058418586798674941994308592048294796853722853362780642808625073768731304858336999886280282798773848255546408944243551368653361923405466087231095230568570995308591810261084705241234017150977483320275124760246266284578938589807628816307565764023438571201019292479891828775442245248854460875056165807770037720772540947270900198819490477613491865955861948291639790288567761497411430193511317132901783177713938140774546148019601091660286512552424842390022507593121804949192524610345817590678824937489089424302725362958572360510219826221971046237091889802227452184986905164135558428408673543187393448262064385091976095593261024253301970804612186829458994209791136379022084214894241419661312552629772508600731473637131018796152062458958858038453379348263343824837052806633487396375710453395232067613368148699922271847793801503256108940763857216346636331975518045976917618370283178747270285393071559752688800511382565229030563673453444191873230579122372323166585915533681161446629431454904160972386491034368512874293380484143324105650035264004485061937967347148492022067349160031113553958070638486550919992706126323410970798617077573895387103602658639867198788339001192014076380807559043363790373910350884920564976053593874143718259033001110505841348427532747454392659790841110808790727033789325746401809908863839629560114014908037576898166322554390081872787471661276943505466673794149489982466340172973551247466803881439370281617428979142435283328639969493378056841858994391582594033817276354240561225655640263370960343261730297014787813158791347149515156318186735268459254916365519442458956367116969932314318032057823255657644919585735613875134655819334551225489566893699789932791740109095947390831630320613680385260635813022383888838216152012223760939022207434285065156294062741878035525602752866952380743405108176758477719804210347503997348479473407177456864173861516493207562751841641280297740232413168647274350696839271892811404266151421905637140389278315266516997923191931295432189581623477744995366283345147700041039626153144614968786896290580077906512325403619937247824745878850116056867588043944760935976499990838764397641340664671478131999783387761496823370398016192337433485342101183447659509841624388112742864662117251183749082714932095507522441142773902816327466269157913283122544079704786721696999782468119419035910189625147195025979694422964739325700528139152545955856623001512530451387099544066030948584894424118868141408310893122941966765523379360966127496538726274711010774461921426864395022607974389755616700559857571367207541096261482826076195737362749671051435972545879881342644822745996504051955978602259160368555333010910337947511896807318117411065687029004616509162088120570875112879384028823962368853757713468889950099859618004976542373114309974719179379803381349381693198935528599186228379404758275100754656555645381364040088060699103662033500303192293571056644260986582402271439486566235514137634709716638711986848282866491840962252541058166863478095617218877428242465965321776392075767428263648712001624262193771508506552321583055869417184739219759309474980025527256068373322649855236404079350554645596394753422227963101275993433736105394254457164814996336730003882336653693290310553272975713018825494918535454203312023234931977243329666113786001592441959253223099270827151927093273296959905226013117805069212254712669338180441143052457370960770865249970593063796318562359323745064743979544300834813190499205582444035867157159934525462006553425548350690449070498913033447507641485207968167696485050153460863019020265928031085635339522369744101689283956430044200252755259272764050474144390357489157004146123255606455103296661951083890109260838483560150525705444127221919118501465532554494293629897447055570547807985138704026145236020284709314226417046818730484538771801275111095948845801871186197305738583870227516951079670207435569671932546204370768767662164955088072439524181966764679825934889803363698097312663560071313401313854303333599652204835455374966858365426967844877708522222961113155598818228790767212697108108496085117349951788596341210109669281990143022182785554144467073450928884461222265320761561074306689334162571563255281649467889872249192864558157555519762701992624894838264660216157828579775720892449301949503972109708489409890817025672202739766945087401519985525629342544655743181860364369146904509997346327247886365505065846857259321496590715304876095592993206376141448719683221933879825804186705773655367725682503915035935024493008151405150698647050328449553305583189708718989541397265259119184055683588027945324294795046188517193158185775748177350326743451572418317654506903188449948272529165668242674608544457313535023707913926770243807647809164429429256139585292664672576120792177951628867186234722939341113285441452508205070369398435452431020518060342121996486296829810925216384058349620952255702632960346927130715586624259328679988472685336921786094081902822954859504737566981788120977568303274186764547090852439009224694559343458197538687321508073732082615258704544695315289785828485493497379851882118441961459154389391511018784230919022331640585203828910225778934112838711400607568074304167782656188400717172100973510369928241565705686374727177252780468358327262305478422863626156650799197300558021689411950537756427862969355148440660477979224383145005498463760017152157092132085276929717852140671151804288520232805358752257372160283501986807465847998557747788876527574209390939058975239343317764019771121772183859199759816554581541597071475071798097942343768033711160418861204677951472089331544296290472411377169593923959528886388145690538001034036666169184609521484742467558066219520220126206461039102206445289644589900389376056567861045988367359252943087525729944172826646403532165338987423432753401675598814139097528195366093312794244816082034574268433779273293341919677256849459055995339351473712119059838584564123670564695326463019079304428546928582246816232983034694711197293070972756012487606936137004720705656932411638999122217790281319420851957439781535136841245120747096300758730572283776879495598066452103636466085669975029978495737579907046646728720419464164934845799995988213424856516492249921989527998450771160029537880208490121345347177536622174255748576846054069038978991074323574266307095160707241847690264169954617285142600799034957456557388886599953139080476346095693839382479909498139348771058537821266137460040588952545599940761083206316610319640169527599516465501049158156296746155511099893945990571925881117028498395430419631762864366985696709145345359870248025129140144807435567923254920146189967020064489138269770171428605279687598885255451894392175728544399801685496276006343204999816982038383500670867855187502333573499330547682158101745323459254552647150507238514413387002264864688670525776603750552845347213608547384617671024370004825519816077837030211877218505447412993789854455454035569649550007380647167817144696970035411477172125884757237288619902775999914275560181914826895746772283567237514858089315855079767138948484369129337787083981968860176023239187326434083894524205423467894594936089188806293509135237330729449406654982377385656177596724117386765826875551720300639742560536808531976937653518553405302662285109628064652395381937622171095382405854129624782395883587965179603381080093488742816913839538075026018318081927068521719929216915963918632900013212373123025292446224308356595831468442863662604410260614095529564792575060502223483734424798478674571600746766299374301528760748060565163760876144480940776578981291577196301916274813924489574431343204634758925419510369143315406530081998574842108663996394073436454954878866247487173657077433753041745892273858774201306763672540431999790181926530616324480373003545652110489950967591693156634611794931566628140640787924193600978059409541788593545899379895584170336683548183240443277751676196704741944835567682101147160589027248403626297866439516570846532697083907873806874130199885252631432726096492302396150181024248640049340157582509110624369406907008497201449742217947426315046938516873618959646879563393628217586436814497002023668429441433729518181484840335860443253839119039825935670026309755565497340981581550158092711733404850783652723438048908359984664659837000055724524330278639767070971872323970813594022852241877374594109239109446193004084124313101015083568081427322226630242640256900836326698367541365146202542572978689054449587902816801203906858182723119184056659526247340597219467464851239618336365168146663453407832914403839131744597635269327713144452738297048947331929831088737420922857660305062443550712001876345944985604407273587690327414375455497144683244861455533813625920585748674228922010973493315357977515979938476800040812949569070833435772115029218013854443855332501245009148232037436912508012054792142335478683740515466136456577835861838001860993833171700901712667089423208440095633443471096002053040208203170505119750056968395248756431339957105605369105068023507408121950010495363304832629879625881503002950706464761489407115923250078120360637722901949436470905672701058284207705447530417746255497106868455680195864407203149848492832775418336990218877604225571432701607079712282578625846364139711791960377773340455094440750469152411097872960259220938292144555496891256168625636524104810096525066216329425049619437067686136995692808238555892384908916801351789472546641693005306018042937086595504712845826984706953674359232520052531388560872995691088449607777044069785802590547569985649479738124379910563946455589803118018055420317909372516317271079687391879017340913601138524923896282611196595970434277359369950079009354515132089035100294075214088000914207817041013731984235747135230868945121243460653798082093449388934682314926573067857824693722152563397566913010436442041208833372423891204595036227082544365731868295033136478915392660675523907537208292546484044734761367693651531960063170471311170262497354555544434285111250396605026799072470220774193064009269087844293687236548709254717088878545583306693063734811494796280483115724732965533269748920450911014731581513887922730502340342012211715010146014136802913571734330116571299086244576219015177104565925680085751908844561132482342974294660276756303234703691545218999511815921986999347450436621048448356817144470885573691496117597824410803418586954683727071687840424190678159952188891692269170068098694789627264159095343823907828995948453236462059336991707543887733548698004065230847778263154119401814035264791366126003668964780509612894865759116586395300777845076436847512042477882831452306234418506077224187991455127646945390299173950390786332312755118153966808259937483590391754838322824589454097554476044642860386271425555389833608083755757716760867544759932455011736147974747035614747684346175341039771732016695512131668465497021785873841500522756878691146849615324550544111802965526171492059704835317006090603561260499203737016538803748471949794723293718675040717916616546832649931243387833271305131987937473152832465638098952429615753748814297165795746498301812013430210256443392734925297546884735401455056238587703784491361930227037269099384089071029620833330452750795381172188120674250669651233278967524858331065885276249026561421257851455992950509478741206735390565973625333062636607171230101802023880468374911453722300507503156965055159019466076563664663696153445756484171629644517576153187572199957042280841360833519834775696905895502584454196586274321330723611589995742276491175669884939022034855812442025996470348087143830796955771516974829643681200207671952678193868720837561096547539429107308263486046290537387837459311330014504154407462503852765049396428137546583288568617194908424444746012241311683037237597809703901471139434628670264432709452773856393590535622111495648468262923703324240624468001004963503526824840620170305130113146793658384258390149051078055980531914444606650034981762734948514391235768703070590289285623778977719025074997355762475875765570491309132586151494791820220832015321733423098449141571600058738904836131482354732934985968512319667823330626063080573870979075814069753157088400285868296827105908973408582678414252515604122411298523638203145938692691321364978446045061259029209833366871487462444750210420410094457447681116207582867191053720717967547389365409292941377226294600942904733204646495464947222680396223591173087880490054755115062512155712816308481560193099914256117328812579516356755946142792428845455205327751557178437940597214813160158591014606932943631611162923051142211414995722351764953141877981855118070492897129561600440552251543822390523110519988496090227137887424769012184266768744777226423811787364607274658719516595023080047072339743623496270628893058527280928119685928481600201656361429916377861577668646391772540443723191680126876828197093963664556833869393959258263669073155695135211853835406935596024658785486809503884583007911240231683120755035102276751072651963021159793764407867325504395000854456403724609025519713595247251133647369884973136923755958625929157835800043155489776686928715323697857641280290715365651065919265752332945712171195463814330506185354743978546017676766475933633240579258751456832837393427429740458874375570930985108674252512483105413999554178381307523564385168626047550250193868800463114013945725646977990460367830769308883595619566472324509433521059064511047045655587204782947661950656753609968452736588743645555056923546432613564073684746723483450789095942947635116563708684235020794464811177978924147177019407043105537059713250081768786337756142338987193911995820968143189350338999464519122630712805222128847316656036853944930364017129953848651348199302261410260313225014896278958968256881462568830728362020269545253955409258868930071326616510643917283912512791989013317575270712779830081661366289783614995683712500816651452527210010648182467671911159661104317274736409968397637000225179274420891661608875196067930918349306408978682127710915251646705903570179047317699061938749011533086027583241694415905374059481618921181281655504778786206815776011825151263600126238497254740652139697104686883673510448717878437417767280743940185255027207136295245519846330320556129331917399902091596806667876327037692223750530700860975700597701494168907864270494729943130483413169969212295662888050439932377813646113668521004304199621564437875042102282029998121337535653482036811443468194807102859735863878165564620570615538848802936852604797895912278097346019763714204687949944525246891925348813204806494886126306644473610707264478319272318071818269604734743907909125305007515364689067131467890556130268500452843340377559320827510626974067993269065019156661731313381977388593197224582622714079160353908126140908338547973907905321538272317596382555157258036296839401521956201896810208847535768236580931549398869489746754758658504856307650541863398667910163664799319587096403496868447718831258828099546667994349084194741816717317933188447346484487550280222888765047860791621767364542515021499794491064018960906132775551587382084639619290244285769612297295301209366133551918256302676124965839275479349162854255770298476494300136091324887177888225385136774186640927011138386749199907167508886563777512057865161436569967250718985817404390454883200562937530438302438466703243864579835336345810572899567683380145041570459136788163083155187111049008273849028077206704283648676273668005845641911773361811414808838862388758364087606346881679523430629615327222349382424830166522536961799732910434928985224249134901603576204758520836541307524324479347090755373024017881343890023651430011755816234131600739710027000878792773185870405338083312406600476281940319155919845552898368974250881158419120543421385163694570584617545079113080204872328160827877584938274991473432444513292747543963981140286702477871239849680990772612958816280399398949754867169416706532835421606492819694083144680170291583494053323564153459856863325557837889144892972724943248358117960024976107235763783428284455689708282361291044760045127692086581868107214131216749881515933516157173284434036452466672658775366766611775412783320154588981910588042795599946666045310617410269460608651531685804775064652074725965253954276380661872833415150765971941439954892986552505227703743724579682753368270217574029797947000863349762311594900975251979552303081232577432842763333603476415115395350528715455783356514671863628110322962352740523805094875612975927959828094629199700274905182129968592466189965870000038960824890741866882256956639300004285500034650393628876026021535861133516628976221068271396925562177770199252109439765861125038786939021024743357647856518449614121443288288954441588550381493737928681832357557845886842854113946712978439947166718314918427147880921162453324679648779869908342701989016469351100804723778442549704125276511073902930353783659746157748162827844919909197845714394105841758657593975712134326780978917591917050100427556392439891073640971405829359168851242684710330696933844257271285618271938921940198473305482819261640487928776138929589905056296623981704336500378571674738479053205068583625615181848167193299269360705631797882837876993861110922531577536046516967347333998023714679435141023919808796039001853246096710842283329836399601246641887978554436525588264422103222486607732585552324115929019764619483662723761699917608497065776295563936319800989837029597926131978372717919929599263942525383770438573510614759713719918276520791075392136038343242668050397908090141942042216541879614369488900272896552723302766148643527896967763824292011976331325839374040089945514511091453911713388882371442902875582435093711494048621321595960204910760568649119182943605063134983685280983455088398277089769318899852197947534133095483452855135286926618777276337111148900445609429305759295127785429683446676289394416736774731873882903772500657438645059192451116018709785918572100341787440948115756789620065077501568630604097451902592466190157010329436297980791833986966266538124741771661903961623276605853222151163932340283552865689191958163111659069087937533383030663135775406374509188301974618527782896315143844738966732822991556037982920762432059783903385880017043855916616403255715289978678840421376664130697395593993739138484372369916792536709688496156947912826949494124883351553545059528221499168320677139608501685114720963203474332744583564479881657383470718176413863258905827584255337433914288540286724484478324085928715993841784698632620482416393539723012660504201683494881540139306987436088895247324459194530313260898631651300840691260739774615013400271548252392822700143348922669727611211868186282429262749329559274248770053201560298577285837798734069178323603105203747053580141233885155086267167714836680108074703686846071807409611645897671700445171625142309175837917782369011167006405570236696354903272194308636559362911047320021698295731199057784247366551676002026419845023124869164239012719238684030701694108111065447360213738554601584723269960312026162193904320635038745158404264496314839892610461214076411428721670722079837545804958938938008405263068009513928636237466791357918123573227972557533624947887066655628604356158280119624455167254994114753537468647418220863085851551291544173777993868966227509080214561916641902623471962925287996932448931422016775702740552309484057064726193149390194088846421337236621929909158970431059678094751646583848209981731359576739748908697474647673806136006157507892250410224615078556791587402722383411449532401693002235651520430941852815041830553202389511868338189914169409802327997915303370094491770078578052504595277331543559860963923804779383762300596944125253741070424599877115982559071852918905662694770865860834647270891009968336690917651951826623006102636365112524281999255279461453140397590740570570328544816815019192881000770491078579882187612395169957784790492817561276074652478529509445262542046832908286798771047615678940385786651089655761000122595519377528960574551152772523732907475295147894941497629215252085741210890543445321182365244626137274715510959827806532477703167800453005229650198216184494664591922294331000186656580614105070589728696148187393164252285226909702638454722508017799658570855839310190405086990804391436703328411250681974372577735940061639407984125813842547181490335287756718584440678512474583114612851473147771142040039096886612134388783520466054690367620735483702340325849986471554955141661460010932440704149887770649526540184902390261255291951501947685470935585223309230988046872755562642215873851951676656071718016113004644232177401518741954746075981373231020886728741072775749308615351172327324114938210676850302982551505341373445298661934295716894381425821727531821771947426943978791158968385402605357009674836676940720620512759208908411406021934064343098842879250210685867930022961444286345243651981570006915555595284059468143225448490748843594300176960083536659088120636570418766984062480794045675847493885789579173581411465081564213015393956159144316011274884157235012272002858736587896450427212356520803413367394105323503802457789449639150590409757167706297783750394493870936571509193784618394773156226324967747188267657010402743241340868226713571347055145963943337292177938554978076389304225191690255466461089801814737565581402360638320059868494525958360057534308028914734011788072903276590326043306167379737862893400022334038211378119015559262842091798627755116189540612994273611909459628759002893558479800916605094181379821352166734127742311812323094677330369638819987007990518453541210339685141096406138095243228393178219064467908325964869990118007616643232898318299332282040763302496418313471949705400569956182661074928100438253398666260687613565316151373642985705488714795598124725141385891707019911580893371524305935318701186377983788655756952865787427744333917198982512502010540751636261122819721313113703256879037563009709427892944792892241410879261366443767692412533028892622308403797038511429851092135100865996785917922172355094437423914309763696709238504006149734485761972838260368104389257612307200731450491593480982557086703182906771986481449384451508810807103336611386862056609359285558711624095554778843080575717404558859942085682816686462261073287689970994491473370259149068293012999075011718215079603178210359894427472596826708192737399574875329891564849505850311986216969201303058596800854744052571219587283896108771256396201886921043461075730142044997716848825499332056520010873562074883700594561799572428310935315018028403229750993357719736841801469402514940112964626988246404645176835246392078093822554528811097081620056008782267580680973581562052667116507288804560764078649944970765565438438354733406745469026058682930569662158517777726553688171854679311671871506281730112820580618436650960338134377481235341270985055006604641549277344091131239556197729672080473324189112993010352139768523759026351519245823779133835989414327548057476706238756066014574593496417311684574925275556075316242620935550089171497742475937380138065286757579099624695628567076079097783766493407268115965227619572328164171303233540829143697887642570912449419973749307542344541557684166477009799352386129368306465668822684528175380241727408373537843823681775483755703934984104901005329005718244421398788216437536405999359156539520350453102632671154190187511132310142877969875416806325572498226613951301365288512672327061785848303182253057636730818202555846614730644298852628591835377548021807155139109123423102539095047941607787472125538019662544869842117202822467941514258911864560730363463619148799989329410944193223477311507437651137146715663475672420304741257626992159778987379126089900423916953715258763023725419061404165793407315041655142523669652824324197497886501426977412157148282246858081987666827852207663408239006864458919475874427843212226789977121591798975874719487468589557249023795058776402399471793569985145998759058383427101925653807267967344088889973080028857583701246566320620088589601971817607799167303280504594390669581047772387219490719736295558554381486667428221819801817136814052910718413011502909862733668599665665535449040959655592034531666997313359625814025468525049687870541093065575826576650437270671092077970900750593963486319544544685662296415702048149984554594926001317716071423270314970849375317963809641656119487671306392227567814035604678630989359403638137213406195080535622101226329489676664879952906966949178946800083672156224865593935373356667378888203433785059343388966687134256721620134418945749601659388576559802482182273806472499598809965385121309576862039463366458917911247630324914365063791790302641497062625326346814574584332183912197756645745828946058624107943728898309212302972897419886017503188015077803241981548478968277405797168838733732948317062549489378015050468096474240305318777234801339501216396404405639017503454199141250655498506402463389970727395319164849632159030975605421945253367390400849513917948022226629861337930190404803919837120980827793053047788969229028482397854191826266773066540427967738773706027253166138372897048144574120817443887027360410100450631723279260519440361816454499000301028871767320799659036612516341810354788173186086351764729713389318029860139827223803387305492053644035400982963359725790215232343567017178159413152021419697712130940119552767987987202257564998524907022558516289566424330344625265002459677752713640054864507490510906674236793029538280036422228442917424345348128106660778328241591131818860427525908451032114455492414310938921444927878663832675956655126356696242430565678439560582371519801252328045768148037305112890475923320341036626909432460764629478922272224460831639616998816299179544229499864986719657926824738298911473787519354987860653885901016851573077576100500879214724122291996135336716271313307652203641674510988284273088035361240411954942708861469405168940059347810216640668987246494695166139403049616827684143155027057086689541989274487610857352087884905756774346526390155808893020518715185080938591081627394707325857704034036503810401870491320013616728489163305281126619940096438764252830138073470657062335697913677707950156696270610600628887783283230872458132562851378531066347993175701742236221958924899277364765609517055223145197347588185277810722039586329661011951937516996055463643153734139755653341295653421943008931340201710117826371283089447541313269708636984281518562953321146613092372703820189875663496089588139200328007210436813286590054893084844304127501035017318036157763031014432766025826092103186106643256925193061503569211327610716977415430613511945262907684995480470098522884136032712814928439156982700383673045188344030918555132300906988197865613782357971694929286891355578059573485098835941308597819051003562629031151339375894361962652842623145855797273280024762878927221467672292706407837534770544227646202056965022564177179282205352042351838747670052219706256171480750865552991354176531623648448587282335981203819593635469761166598058613161404314558564427599152901184749634098742422312565600121653116184021296631197692982946949438255906666310739947208428635616483948122658176502577524014424636396829095903452975309103929487685289297325513007293855554221329372969251991695793881685201226396041886700885422496701863134272351964318301389007831961516792341716455980170641122261229881755163213079797643252176205326844052783053803984333749365157097836858887202948364384842533407667366363035052110862223632330190540250572285291721533016425632031760352327160698652090246286634004828962495094403281036978483345439251895016512150591362774498270738545274864925938552519906858592907374540166881465420439283178988039153161427704670757217885037311023926021758037114449237077345629321377465899102382510833232559062524155722077429764644066531722269452330188292873806337396889475285901232391498681657680493026836742507358728355488000446878330330323542386243307833282459380426661444880943411281158514480118183697971429430630638881209040867910467429315244100448754210709934874696088938206768344232940964461145795812084440571046154797292109571705129231004005188982131350115186852994643937748429263271444137937595634758419579566100827966962215468026139046747333951291875347118794426401506211640072489938155159818361112529850797070107130376767274560757501886400477519170227957674761869975615870727100906087839370591347063947528129193912718077401445784015736796483388323235566145786903892762456882658955037977817248115057436324730521562573487002015662259842613451328171058238690599397303544003679036163904489419439566881639838827174959072572464255623478015785676054851256458944913435101298142609713549526348100266632973063581199457489166437409491768702727467386186961080599021347286115619859818933613584497418293978405962579933594645322137806786756447042397702728334921687263747898575205054388051466989168760242865691446576460095628721939507728172735248227533170606325224898607392687573011313910052670192727730196282107354322966583488581092561713198179848962907426409573269228214279218680488397125129267161349498892244335192307931703297699633474123136445035447996597294557496653802176740064746433074203605233110166211438476092905744153708435673106497208142620828897185676999775114375281063865122148765847228033588002577086529580202134364806109626958305804149819801330344896882817834900195703063166318450682005107829403736437988081391628061140712141566101751405075789399238602878782460808134201030759246234686843408966834999563481044936588732418996135754883061129964054195205397815963449505852313094030301238412285578096404341116194820621542639894170544993650799594112469757193916737675897587644179552330294509330457075391760237288421881176449533540952469699948471554565064656639112872814402424297886057626693035406209452626616677458881442434442678797996783237211934877916235811539808919076789277859719204316979560960380489464581459612602717456985443473235562903550075156189074011158184594176992740682944746985892208520261536820346670677919456807958168448310180074451132624503113573923410129559765409657403758873656926353635721017570931026782861307171827431348899361836726922518840853852468028497537105691454723182746911053762628796896575679927548906476688258445822632300731828621824768114486948056297685910969292893287723697574024009958268451463696252558216602563223328312544293508365539585851303918824186410035404349170036188986773027536576524093879435154585483264127587528216642230046131885071372782330977547953102091320413703037376982052698096056015674572551788671642867282985939216937309074489211907341977538644746897683000315051730694472006944763188829431527429506197304184218745565230194475496204925025662357620889913004213123924327968410208687516672002727430471334647113965709351047161809240444400850354080500392189249018959347415614036849111478626735079501299840562383962604601094601824152934214945117580534689548683569261290861743882981387667338966230676206098314610818923852272284205291461262827277758351932812711433221123849920127325838451174930807749452019408938426438790971156685806985186316941084052216340484895652915163273505869200503176244855437822332840629313129041227704941260807966750688013914950273138578687719526316572947150867953998470338999919705265875230638763242971325715789887190911550978729167722664715079112371780705266009152704485041288150511800814355565074397902141383671662096651955553166190086884231567539820938769496809956461945087482393689028814279307145841061233701382198270762159560611836674605815626887804912361978243921874156234170477231362651697284869849701796532706490813042290812398618902743837125535886014505675252457350725180278883898613056722855511710043022257919669341247920116127957150037731218087727348122671014682643547828391348021473867882918629568263225475113005921313687245893419449472124753254337153010645395332996148110454851214268496272343406566797472537554974975508428369206265700635249573141618910644316229772947879261929389260428595042297737585669774769537157544645139111539438569752557750552835047815716802350750648914772320073360373254413250554711241559965086846805869820606213000391013231345440421126694250204764921254065633628460955647264718564430420562295016636258156296592095030569537175875634045554475490309944954158475274575189974455508226165637099098010356350789836457305457779184472512950399407264832273790484932227050858402097995067717771337938613137492796686898617943205569318507009769009910061521489985734125071159839177660880446158533902569206570146431459231590700670416516648523949379532988911125319502271859191893331769284971016152247720832136078168303958296678319146101244486132529701205272786126882502622647269864462183481403340016880090421651173181504520145867777824280843015597130565005186362590712681379776550784525075323437212720456659986649431961986005943370811023613722542238179856762948687848253659513044952880934632812215637064291742683749054098488814237899390480352555730903988548003063773033488768011659475698644065488006825909134296445330361775515622453268514091220038881942177200342672983984486646557718885699499489077167150488642715424133630779786632650849158165143043692595174332632231517423264613657909786682239134358423746104726305378355246666438652846686140297224224686663151456718204677073250459675261306481939947621290967207238908646481653090595432050839311797759721997707780845763680273904223205589517273563953113812964757457213107038415943307242898259579283968324910620159339012619727662450833154718240390804725430828485092972477653147383859608954775490369678772302780873024757857815128491095993592734871699295667509385701966685618229493767102294407708771353083739718441579977961627872610029122400455337649042608539561305592728848640502900017609010543202172373592596570763962432635717305388253932570591826542708142413528512251104802819913471955030318969445571801649633333160381647791447792336638638585970933628618086069553564562517315131351640932678039551102417964016210774442964391634149478262774328023284747667437576571266135047196128498949609350073499519950419882463947405607736257624983930939390485218611687271618387770312212941082822168050358733257991986413786337814663074955700310171665894949726614938364137786687240934524622982203133812184174776592002538804069472629273626666822420812168263286546828400200609281789144079399359240696501957684122046459838620633411796217265012636394106844974201770108533713558045405898905705443340460280961387155305083484814978432968273177694212535304854365008941221515380342112929427377554384430661291698522606362572569316133744755714205971732010973091201587921661001788920424674331431820848666314600389218088912357914844550560989695657162024969499657466065776232365125357715025663634196312119156128878315612400004012610014322120347601588856727227579120976337635582574485823929343826656272540520994774589542235588615269719244661730471291795957852346010604474576807183178361567264346213382414606446486411182378380971300695176024784247566504579528573654906813718797114902861009592805892407262868170877023298825676624096454593344240103191233063249131191721262574288718127494170659399734566760953402501523092735766018403812879171259816404173039075906194867276944269645138728080098501151014513231626144924177872191540873421828797873432589218278240193914466253783459762774135465496823954106568642758823544768746324006421248499723587674918336942192494958523537084644907351951995291975832831409778484624017243695422509647960859128544798883272476354538994918676976264570065865305729675692502732626249280341783260946256343245109712512234060646359720211322496972373683831400395255273064814511023360446443530220971098519113004636725392588893432996447677726262614291528950014344400075799885834226951575569137755778935320622416691527947845172580200739877200138952487691205860602129750036739146005713156486791757590995504878823758582197416101701083823910654361788892312633643858006740184712753253013711308066945991138057104251622765764696454524299410466773175830572049110407797566721123404674246094061682339151275182058049768395050375393831577712696416773267202436962876697504320223235408824869658458229522459314195908085292252631632551155353522266329393168052261454946937436113725219059501135425363549080319725228159746912940741779274863960377219769832271591282010100347251537663343432645357062818190300768234259358008581257971780096930820052674193844574665810868901230102629471361833097284254277490009044973654113727292766116029034344053538755634454952324071342599778064098477916963981336417164199898801913975433200579463849936790105647531561241338137023444039800912903048396373066005630948797602583309658855769238096135541766278202018660022383514482513222017389129135930834012104015671102392575513864931297861647852298197460162650227841005861902200141420758674291124164977324913543936797606430827076475160260637723332246109788100472190489169733549628600766356164281750446694972273098645580748302127466570604420839450967066596071348289925361262683776481609326000206932609000540843712728335716000984896350570167999592504638272270573778741771569984847984470979400993426538358610661105590283966444425551665783429631971176427616518137275156592087100062720254581489185131220139565326134384161216215350210034068971005797006049695892861087734494598544081018763986640559566479730215451019437776699415269421730104566449464222337522381176316630276933830606283915364274896973885298254382291572588637288177461574446748514482824196879318102661874051992199476286755251723429382086952656368313320937853387563783133210821095460391940382609999149542616955164671328016807775745552912325427086511557058067350086238475242697108545101584930840048293198886227681913606807690104284612326753365338431326404084389379317587159635758665736154349584977893801844694619483790542091339046381328792063163937797150913486416577268849144138340029768359505769439816411378982527448692698584063722363910476146294457924896761479300135100442257702081490978021906985675404074336779671406965741252140199885679170015856126809308133355072832041672896905505596903083053003366013727045128216761435948184023200115843270493410009447415046781725472021874641228119005735218558941985837533373469778138610025395755696831907113674167555673057304168952725533327714790340222238898204872802285952158316940977303385069402062717481814490838882233262061337611732272070687236180879495788771324449286023229903432528580593177362065615005602581274153181085781239515447807813188168453525103194461169241462504822418794000251200034240322210869491686147495067910154745979083606992666845023393091330085457463571242256740775204823194366639762814866214559212334880027371595466496563169958618219331149705597975984896297803523985061933989198141097597046664055331200086859513220965975539662183695385386090374854735154304289677755276301936486561335870543027383763794675622113847559813569844421643317181106123460976710515505556582204546686055320957175340165473549262525067638540662305278664983291736080211817332309921311244140982303829536754063103736106977196173063934903209265218259938802616330952435873674740152673338376917889468482217668848385999369236022721982239634445102592720884836073380476526964170472046494758024540622820766445360520548574056774591761172810914729344658712163215475897099284502666722523809734063013973841094569221077644280892890452502235600212983076276720316409981285246744322498070851279097984357130829532593533957488505707946671541576643199205965264702535626663719026106901107514044444604150102841702651034919082155416929917316874272463766547030547667301448234127170666864662571365166140036858903629193210612280923347272784066747846153927173493623123293090028963128960775125889090475576210619598879032141900581762673186978600361876804517439092013056630865255922005696195466766253051733533781442057645282435747591143598403097484809567427180500496538362793715500381192241137473040493768430502092191725682693502633754552855448169159198317354206374087571787003790609294803501475545440988722916047739399495708561356104637596052296895713765847718645542871968844650283292155908071561681015692015278075834032704157771450671824916805607047530483156113414857342941108443292349379240821073640631001982748000093438987135673241435655751882037414083626795077585486135213739355771710621651429855412814298100297737859378399502823770488019307508269328375098152955577135920443530465758408544508406053872851020093521070736181088633936405285722493974229036343801190675095164475314566798679120379363136291889033297896525911886918935692260501429521188998951361479419092633947005972517905111141184595978824829998491535693405446082472549030630433070529113552964157318830962300484472657182169679544254522926438576720160027502984300104064721189389088562696780289220888343371277331155799212734844762143969464630563903228699593034092787914836455413398929608347432212178481264497870659363263011837027692028833343057928911761483798468728491153513448586985276630618060488789512849057448920512604491664303042576028251833093263978017770845187135389364035465666452058462205553818544333578261797297782020752875780486840146496196387643714282504416307515812026102772035771975444565661991690670184729450235675463378149257760926614493805035521956004746687462584717171451949177772274235874204253669950948142677105729502990423128759083549271604750314209402375177460411081194256237871973705739377993030477053802258225713945174606806225349965840450276057556636340818453318217948567256782479938880499679850967394296254233002028640347924479536499461414111595489789991464122642714480337495583977901816975457127395575248545279061413379657316515477467528569313303953177241474876527945867631535080336102178207752446191117738732718932726350440241714433180320897421184204665587210004993756476390197052670358251604534033236732341303315434259195671023437910725786946036376967099786979702858691556819104211725727019733267359091728732736128583918844220471560171388932655921073126120786597018999393625047874805546276674099718679469044974281414835983043434989194494336436423881087160212550916818357831399089015526378350309417571931732487041411144835562516475970561094878838316184022143058876716960343677920957150875683964410555369409539319191042900842279906970262016662899876817996173144680090812775068650372290273297632573482947854163351833350861622934955526099030215828900329242412236609728398399729108992291962382846525509150772492256676692451285920612204249238276433529117632175769385811206881090134518500543901805140921707457700269512289925300310340210430062279474803853134054882013417684185686521353518158595322950732874074152289526833507542105530665938661980485311477613485657204065818138716735252206342575345591529886481624620807990550408896065781322950934782351500558615737880512138153022327703478105864583162820716611108995084419550418894748831201476799394114748767898828318469851052868215341726995928386200681786994808162843656058045224459491977791306983510366530215315673249103342481276493750705100363970143854949983071633998068614185486860452379312559305970622968052873221146802409844781698239757158945063496818680835221746761897444394424340105867617265119708405126594990611522191651493430961494940064251705950264718319444039526345852043429525426825259085281807217351275815628727637570826443917589180007081355961524044840867224350482668702527645796817008459664720812208442410127414293381643381124466471658292127298839821447679269259306672697339860126370510074316589626947125633086347105051080976956831155804296712731278117248391812706013435328962719958699345190572773466218286796497417828701473739755713380339271015415493860864378728595357513083923464197040239014448428536415117098171987766751608409950735892192464554705425058276560415042972986361081532840190305350111126858470880261023145492045614994015220854201250313933134018497588656918579954028819450174227904345271884657349948050740785173067975990769871589400444192298920008159223182932040537238274861944190080928940235781136853491209393169468250101822715660906653401182941970329851700586843832553489053483260820363521672925364848708258512035168224480186633228949278896759597792168663607300577330000535414618168617289410845968018288321051996953457669688283617524619468834431620526315671388746092072134583118737993366273252312162195369318473886416222160863856759890182869136470610856947788064454081136741441180318318771858890565443282714194858560082319137991950294545380477006242939312363831934670364563084412335430988630081165211053886734269065145193741883081825407318251496279225725179823748181668417489678092605073818465184899127994212171260825630349781097569166177841857541767563572186875976468052777401715801449001915469480490119059262498538215317602052480613216522056606223364705257237631625748999788531294114813527459399455608674962004706464293719433842225901355665541292193828145753490474336161101101070647848614302733629207028565644733256339798341055578271294990987146351483030738726424178027471497137741682015633594271601316430650716203865729722106633514363882720221043134024224188865599187501118887449277955689864449004873660523837176298591022037630633759955383347806629103091732879795552710196816981527933508367386858749430991062144274068046013061143375135027260668222495847292740096705852868356563079364209705416058305488131648632611474707737432914659825184549223241956682599206582747539917574607693202588694309276840481425885514350589657958807018934096762217904445059200774520157692788630116017548163598286043669824863431168579323965473369026219497905839431234701831939480762156361806012846926615008332283145929224946075524858877802409032888707787546514574739370900604704694787738979842329325539101979806916558017128822321862590282133049542415735580685041020569429258817946212521763103839189360282340339193952555133431415232477064624325754880487636998899221964100609812733367551023531303368444135465190078626385762248198454611040574377938187791474498995673297377709337323938253842478119699570716209599626890665968223083117857042557298398558082311491514398781166868721461718663157138845775234872588573219861899202308162149780270115450551409724587085621719881539480177267663449810887890525907574889144888640896034911529167287531310752763877450387088415597773080571957487140577727568290547184229732545535069310102633313221230523904015224984267250299220179767655408519172073778896644803708096761901329452279083302759234723136256381576196214083978788790007939068919903218793673719521789706838734511626251511392112751223629816177311719855847449723913771922754820892334018152693268311194601401769733313484834661049034082765283057079734515826846248350716929801883059391353066761003706884679521695710017179079735485912137651804256983443432330728551803267737160370028650716610041485425772525366348927465417316679686311462785324781087370557927467035083136037196004965779932233740929818235252110296579266147415626188721169254927311348875870767588283591981327464809566170166204406883493614375967841011485237064753446510534924394794221716136475972915398752063862604014565012654536956844634623585630000982397220725608559921920429453136017876951180202020824545565193711355976816193125587976422371113289739727789733312671958382279795132185777100945309025105925038226197817733252495141257495528627634354593345494758732445187534362975295689745633997888111473450568456699748940860413644728215550208004745303334385926453953057385156067509530843553571345303385396949618125175418375047050164797211015563213518795011682176619217600285244379444127540541895631031408485067250322512358118711921287004341407849243103140102069905377525455533612924879141495570018579415461195093236199603167197586180766599893165734292358552979209076105269900994127021944545177319179860280753452960386697674680022575898559574418938542958905680567629061842076360971820708998677464838356809817822455112776667636152241722849855249060610414028684100602748591028300426588751226568299675475283672748099703923701778636212805423519459175863404157347628124155145014410374854639894612102813133762783555839449618744464671105398239952306385488403863564246332116751851726530981970729857594870369758458967815083933715389944521238682320115841797033386668527061268088819747625642277158055388914497764154322203823271277269477840543668000609426669806397057794516629137666457921140962513827242249032710367081542801190423453592430979010930480303099369702563031868726527284695760664506297214324399928279526990767967754582473037915958898080917347079231670597999636099941585559792468300763751199563474019538960744593990506230802677531546430313518331224539898512229435263430668709554860362371358894426803695137911731963896941606778534963740728537512397808485962228422203399596541909879382137608755016873904091119711949113936480717360107658997146079731331136964580894746636185450879788612456599971826434371353194934935125080522494984518216754860845549292105923950803198999959185655001325321424415852966646114416228057377298707708131555155038333931556438999289752515406918201704854873836256936833029884287272865330474657644425369309399257020376205464598777608556366009301381370714158161931316525963783998614446713972229497712363734919129191941658024212115375822554799662077642194171726081677595633816705303162218069344076189885968946124230891173890872913164592820278457988092919893469844521754398817825888872585980496546865594213791291019312898186579847500397584464959051713995604822180532338167041828778038409834660079966019855399577917445736022541028051154952117393357482863328662066455140456659010588445873176710129699273058032982470284369982899493012650769107564674356876208797736912088325546146595002052411701014833945957082227882719302091272051584440656372350584748203231120982683664973696651369588727985560674974034554823048529603609125791672183383506139139191102892412478741499111602895061193503440607607903837510033731307446318332483635954775662853301065703154882345444425029987566497972390870396956883987655860934833099675720600451125964349947421044561615960083863442799586809668854759286420845705297754704688310399612943418576381521391151569355167674350422113239240129517329520859993140910973520858553444494020652216779904367502833190191862058806434990523551421168383006414403146163282093017065541574665163126626853298691234731778855372718280290358936398476985294925030572782740485672256039056454587094626460331435351912519681244024051466029491320180499849708515380827788411755070345020341070605672893660819305782095585627488147006817976523853242846535622955702464637699358874532896330545340338063758122505255096983546238330280128205332309751264969493981738480198645785313404014688139217178779278784673171461425049372578245024859203720952900064164868029711968826045442711987279417671602019799550487107037671413480168161470229898321029807362368963144352979741634322587825071934397582886655260358729643790659153832297854612629473605377356315516854575128849463388333617529885128301117751499259292070257320239416400658211352724822897659447799216895019776635058207145718680552382049341926758492179663712785305142205220904063231387885830084868464735792615696840733440589391459803281280205174442455052901543834211597720860246405508158582427314541187202449285517144952062753616277485564021807543993480971070695099150269722459290002696618477454338036483539262190000538895614685343247110335788706895573208030549168917148891624332929180566033763879797871810231736235025048882893772211838248316618447224613446076140156420508944374133188283998568068144313684354255073922291028040190149945148934229615895076321448865357719632700668789093142613809183908763120861133834274237881087075020135698211406162523499621322580207640718600908449359512052999514255670782690053398868242841089882089456451177370736326768440238414407916057984406081856247668289006957681348500489627590985902724712873815522186285232833201579868036350141061561102945819926143322456348013071007061595766675360680420600363019278903450400897885687249351422957913614347292391082194095414161808919895830813000781825549776393538016591513480853671430052802443895494017381336529048934846418715340754227868073753792450373226069132734677576732090196389102939835128653549487055239704264081545139962736992864402222390260548320186117486616982050417913353901620195483187532101580122558593075074207150034865074515897624983718740552183026968684541399420293205449619908821091557827450912241903250516675291996619447858499138306597596180122571856101862192787756458713759824672357920458056992041922751829788317704088130054662158843883646406371099470759483042594957389295015869838206987295719972892244392755103126945118411160037880984880474443827971118082105685136583454584848889148888511834394292139307344046854753271188513463895642014085057385708320166607913083524113647087493506466524406919738559462459296781647145776550262719212310443624289751180337628572463470888930133681762298762705366924104746342817771478892775699889799382020589197708217185947645472126112634114233740658971281156693083029796306098546717189680280367748121566489354113456944571302270787371962833680070551776761688943090090268732357422936883136487628722427804385049237433777169866294588157561671851824414511342516574639085737690951836566289430210699499319147514714861463571181078814799118864243659941433815734055253234379751124900708105480772654840272197506655493688141352727581368824599797763821714259697841952670630202754313801241839689094326389978302882273044159194030289475664723349096023400182419162116114642332997611150293719640988500061576480074694722723447476366830197062374995860711730084880205346567050699831702697961325511093788745905637716996443318048875067140205385418880486622211028517243079959853077196710379506811417739932860676527992652478275344186244159056004467810381768100925520987841638291282730606056607560624839673430976333920162935665833944861736391951120175668750283964745173310276538689057353282630760749215880046612696614318957827357239599090382886790295062411626358835355153238485845780935378224911225837120146049813543925403425969516370214408406765274495764740032635189084052144612811500761058616399062925000593705862866781333895247645376780611646729942010224168935014495244148395691039480548418246355384913764061721688539597984387224026242124895771987534551176655127660127768500075162834660470949006628881948691363080824827167451712483937120339669816509407836491680076363436067504868694588715361361841732811130328305744688417856947295429666289784550159184340013086618318213867974095068587085959993640923545896511660204891924195588569816391134491502060157039756183977520987828101637983020380927341133390636664737620400659271444549993832970830152613032049864978040849045759864011477063184484775730362334162921612233949948392048790165597111342979672053165448721003864265559978278787757964296102066135676986866684417275372030231810192610815788515610813911422617511302267094965510551457967090070573178682496564341616657537952913270153841382648427880749126325681772912728918331385446378525832369249470900081609309220953625350628943898248035937324930379921293887415529839617772538387374736648256265103294565317391185795486179059313259749513575689615207518848655501031007907343807348846060259579497439408626524568560262420005807268960338852747377360027439291195009877435952688209190626765251962532483583156495533108502022177329673480317416968009489777078899179985345809064359422797051472024563996923972439281568904264464189793443386333602917247052681560205127706418389434944856322936290666183974967981824524865660433181565763311895212790714591854709604935666712182961603885275232651742315381065342019853430574790212721421400880858040033962267738282319817389731587429537117662920760973360348915626495264038892316790607242061524588156177959659963282944129716992260963715082024456619752340637023648694190086090995847220637346904683599546573147580969197263016884334386092902617815576463794528479281328877100619633283824007374201801037383112422777272995830768332082233764031895245456079187167542330522080722116441829972746153992079837611182438441902510268956913228551493875627972002918478427383829045075915589148385678031266465073330474972322374548752694444720784055103790593095360587751292391101520639972612213736972988770180180866778294752553731970706982192258948739115858696751927225280751377644624640307574259185497572823928208805009372342311750776072889191835819927909990343999298277588605256825635907167472832374494860133536554264310102290141140151450176838359959936569464122178148015946681794612459244395003990648563066447972582889334476841939204723701970954588641280407322811747514013865659922154754057332036614383638446652299036032155028931863518764828370279209138415133395017394426443812503729220123312500989320517761283713534637175809381487015289613699749910999608402556789389861114330040878253272384449277532453694926979600606579681307973706820312739490777937632217867984281271451743450062287054862965309394654003805552862032188885620607461609687827470327738054481716146571440363495947668732990605059959416752436468304542839107933319804586750872724554461076810385252111198393884350599533718045639289138548203984572269856468137652461466520634740150768052323276062741872614469254595150898342219050014841116847324346802979911394881374230556518981028720596092465733053758579198586216630386922932469609228656436497389992046738787119396689739810822489548744248842810213403575226860406934566238865247661500217638500302872610035953441658474406634100491384882587851991821399948603156647688885741183717901772234363660733406400901552777882013039610625072032587937856850634616005579747314058242765472441443095238486720215444742836290424847442524302107400317715402185595290698332473133423077346107133240597302999616142622578822910704241338914696514913056058969637588656333951335239555349805599753431229634567202138793064909770574170776544920292770194197093944825434738939605418429038580210621212852288185668063853223248947495967961975901871848438731041908267142806775402294179663425964571673892462981356919608000879766852580674765980661820216380183809815125908100781839877958412203357625905250263579248036212069136928167631605753751698728281151061301433416628653744806328751576061447994580599573900199652204615345092619597840951335083767020745422823623948244302456502656147659176406762688127060202072599465804684702259339243157926185942625092886693120015149099001771017215092553667734197421795975077194411146074171075092044479130517743445419554527108405643131228370500739944234142980969844440120955789453683856638978734982821465264995196116012306456815585266263302842327156189818366557767574385478146319782606124773755913923194228316274884161558467427119229854196604454836953198846251815140912162297970698554601536986158914177039431315141471243263256028006459477219252002698983711941839979464167726419489574917097680288215434079500191218881947075133108203473146713487003341619491276592216333614958357843398509595688193750977648762764792717846148928031988064300105817016204723309275837852212478912362738649680052020418808725222268038664411181895805988382433689911533073281947315003011588131859471260530136988575655078620290332193332799363983361729861174334362864354811267794760387081757209947738252711138803530715277921302868506350988907613569123203965953280397472605424178660640499418604956282926689705973548045532366311390409122895004368176350477498549531474554682647142925109552434558982816275442416799755203035759316936029754590451660216738009659330001567406974782708512599436489969995690327600346860748894270215155573965631478680136043320551078340284828851699350994091364397557014491387601613627586192017495028368435384253825757334230241171577380390110430839449107323332713047218129427211884467279253857210240045404279113695335807471632458748299194526109951633436041934444354474342105109743086388432710332835958757741608403980795934226164513756708827060998172714385457944647864606632446915247735897844518224841500203140807046974175084562200834986184882195577722625921103799165404869439228626275826344088426278129229683142492629087244499964509934113921182263806402852561522812509075062060161851104769146807936535951733116407595467613153461500614512136667217267413910566146635825518432132959318596050704295129376211193554107623497569286771058803877896035576405165444439525403300205618164502088515045793281671661096241457821421514078725455487352733237745174143604949163601881982997223515859677790034478295724654101646962493092181406215741499711629466108427402851045813468893346008192267135508943939999144010053547929646707910523833877901626164668462576516929944579695299975939308794074510193980592391165126955852271631927439698298258489531592232941806226392284267606659862322530370174894334289790163603794118400711158378623218573651922786788456949490503877805517032882016926142578443055049287484868668192559487720986173152354022672136612444883297958513632224486674077148484944210308921407560520799055365789199702812173520834378095104240193848777838633637436789584807375927386157836678427203691159404578878656118193219951431415044890350250388419251465756789413466980331671636210112913454362854872810516677700783039870874279537463543418244052071691442019181200695582101189489792671247112758388198739047695139290296595743484578777853307929210596549127513712847612630583486645716493248761601311191091011494896188574246656859671359944176399498790703602218790301716732608986488840372676875451443089509806902001187096511052153339700714803245414672668450529207111140456873701401303395519303370605999821165672806292751722329503862285972841624794506157461450079202812283445383739353447351819586939416946851988095920710450185147170736907067817796899286627480941499791403653659287725132992606898078502416058673304118613616063074414734614291746394303696647621512232517453117629208261161283551422385905540902149705221479215767699961305712462656766789263160259743278903076912853825024576661178134701842155486840755250605106983315101734760806455333124943422570423052461981445254926033966735805714968805409640810191886995967073543075614074464696075822246815701640854988017735931472538328689686314964987739366027611554292015199688351638011154128541537770824372060411681876611043416598070359195567840015286048404783715221555784803565344952166417623440987364296350710440904060686586277114106195463018814193785090838731541084568239176634656064910075355902247786102386231406524239871472983210802479672003751765827129857576022692394855133708311132303016942630812457906228615627348293199201877884977025448567973928733791556674880577872350354737362146199044022817188296689494966999767362207622091426679160764564638722232404590243235736894563399584560204223811584758906990120356765049644370754611765436916148146952358304199504303216507537610526317800489087587952626189299150501639296189389102569554649120867210210120749432012446751402568479812044907425232185130707376436509559276554265235185551055134269696471927812625150899298899009409033733404908969687466638629400536152310438217609833447178307712492437612329411453720897163287989206583311293884200626870650848420580621292788053815089854715245606330420594979627274267085286741502923379399628924577395434613963914716342647387037072712322181551425183505345899078242565670780115791908694142401977155639185296312557680459787225908560863789074062418413770248884618007719665751563622433360176358618990214488443503870282856051331575003120951073884702633757207510684494390206657817178394747082906233353200960917185528500584513286745228161936047047170181193697384540062525850180057614576614730767160537083252521783105699148395877114589417344044767400470914741074860070361278594631416096460215650665786936839695971578052461076099717746520213428423286016068375031626366113938114988699304877396961332873064345152731124124201643202447757667862607974039574578691558315025831895552551208957696180930673915729161893413915464359782644470785874857212964058512185808748299902240163089969020489578181052219776727969240789238918144686583274067780934934741141655819046104527880318695570982195854023521762140366153036619539510738510561921331584283409745748368410157748673474493908625607756281594078287545839764800449182999897555053988711990277719963047427249834732187692204529164953488263749932183565590747249473379732021608918799300137738708581805301009542557673541784393071921789896787063398829565553206932875217226098728094817192103386185224658514008134600042609401974590831138531727859217392823238258895127336755832078182255978603406706322507067175821023143909501261200429060888931252670196727251150989841668198202524775317317080734607429235933085711743518090872736259201100908720023062784322318045561479003546391853427012454669743022650334361433505458387962355684898228869920351904786026792548028093575277366896295850383983868754270949947291247275677192479530880021135355193642060311650520423170781922002849595959050256125159852882012475921337372113651939514463324342139288281641765016420804561126067422699264971508549523680399155755615479637101094042311561903308090312497855720430081102035942828800864558226690986772648985867462277675049883878030506212490687144634567113543161655839331388593326446785271936763324386967196103307594031620107158224008873639291877286576991323660848924551846784089966131621468029079136883791964190150044444105397854223210149761308824843993149333226403105174260654349612299586369403355506915868253152929607431481953084563026364656116350551736508296808197875604136793429937810699456002527351166272607803956853978874298662392627201891896677521424943560895010420457481611165452930175436574427591920458002724189985939097111876561193415796181350155839986934787663917334157846408409728114167265611496258067292687876506608602001565363610838867401449232891043217840513861012589744365465848522084272181096924751867299844635541238613010134960684789051055472191079175748827152207102133672334854536110606518724044828655664174791182357031212720545706449673095218520092900187637263303074016004397533928085127069624450845113910026219066405954197477113211280949861404936581070781646688889715752603827816763100697439089316978301998601714351175154661506747465151978175523788728883190803964248036872611101837547700367315670210035565900714864520761590721701212417637726272878314402085035402790936076254291533175149383055322509685152501489946740424497465128949622715197067057847689639954704074095097381254805741887460288918305651564076170781995250078420850232977340650595733590290618319813066753886113397127079166314115567766169436122510498244324655104986070622262053730134658137940717706082005845984219925754376959046409024492320397151696713155228303178276011666412447005211428712361938492230048017792925332224979927395630045127221298785236396440462119587608884812957675052479229965299362065238790626516354655595057679156890105547948732884455750636673347373752211874570542404549209441878964495169825280601620060727620945195227235980081340925226525900899058641565760528170537586272895416487059767855086890977802334350189330229016007775736163896528174519353102453221813974276252259223777258382898980266305433821086518075853861198415005384847073662419138167193425406735396979720643616319952473317995023459816320102027447559522784222451195373180207375389968451125706187221038627765369279788383360452025446092550400491898039165251416987510599027552702844453967732061237762501879252589315784014537157941154492811677451494923531069026836199894975577006052271802600242548421758269416515797795237626723213637949035734194837028516905627235235335417943691051619025229507355879595764704603479069382281978010662016664694964497669789168722308089167091431149328982751146163937936615435687532851218097808708180352663537098295520151663944119632368156637898154649174065108179209447570631298611970224319665939065614833437203024119342754322233050049951032369012819694208337002252907100970545363849117322307839200052520359209927772658848638487118572949354778367534329127871624179301029814764321996351721201635755865757826999461320971409426626146739069644802846160353555849672829196302705325637665547496181320725333403330470102990405290428770442169127756862362315838457994317045566356430607385498219964051793775077884854214254494213999008528489472782118775897715699671398013104733191518329100752533860760454037717758282574629238152740653301942694333916891319280851059893321104965678512454645110910861046196142314682365754989392233731097336569948501870768289161578249233121147745165088501115327495909118256217633055046592255948378182179287110549248089328447409714919860888497035241528196239659364064384715295907090116856665640084354555100101050164563895216747267816836291174887156872183235108243928137321661070460910248863616048755614180696149904110294063167311534603096279572042822089634422071235170143580256069687854188836772219457739717251708155759140862710302606937429011617053958588067629120257003612675595182743089207981159845421953523758690978865295692562329416215657375184981963513824064199208117880622200965491266696901223192366277605107010792502421776985947729243419085113726545103371434199534330583048454358485498018633958212955035963284756723473866958976253235986793257903295433550738262827680701622602971589436650402663437119243323979732505390453263928297653549869604522640206455301049000490550335474924546007502697658315979572086242257482278672597974096916191322272691398664046968465202156699106266376310889785940991847938189432806783516311597124542868463566750337554893914244317554299440991900167616786402584701502749238698023788914359656240377082923601297798847462654414772050738743315035276888349324883301489094116745232655226221056905368391214470437710773518213811535078582895084040952416451520730695167814242860879339820808780168189569134746470129490800177415953117601687673408653410440352919137107392003434006494828024309965604758393735081916787206397658728004391822123915398441619794801508979249394768916522519856447878976393632773376410613388710214861412635786895993325590481029956857531986229562361899608338056525841638322474145529670017892116014237116702652557362345230778264987299191420225048839105778780975996283132015050010815270176481471584064269000849772408533910682377206288293958262486221433801300688158972777996788226115579386544756363866604448699548511948875244422560985171362650665871194600409670930048185105119393277962121583370944851229167905595466392844125116814034993813097282440066468353357390342066216854650468637038022908747932556636063816909156437729690780043139064199405918929442988769064192627047811770203838066697798041527586838479677279503229437097312853159956823847134698004785662309530124223443729158416569540905975049073048787544049626280491762425177514254848078579488545396610450271628821514753515456588255260890337559825206608519409313614744887209090604400452193136619635655814723235764882505316047515848053931268807536982990687393400957187074828069664861877437938033954014522882264712280793189636685680547965147401241736406344106544412086422286796812145071568975616052377054544032057529620197660860052932724523602226184253944784771943635823896875857680571705196235629598455302134019769370190042478872439079486601448633344962466772819426961758488412330900925609030211110258908419505783631038706223528797234480860033747826550627061109603405168035102776562135117469600530820311662558766582567667595449672684329137281578572358233359181709644979171436892379592771049674817277312049062945970386081631197788314499043757654099966730473507539913847695209611508574656573302695046300631424492562234127456694320621601383326753677040036369881240463408437873725154734920883777060316178930713382828781632971369325259674002822248698971425363938472472546378415573397391969425994215470129163382869747234379749060951097093600248675269173464662617719026761520756251117146225666179960252392135079890162244788660443391815154293879095119230369432917351750219739581869665856058244674744463821290290529511251779449378911981942471829782386222396055130892703264640605957086038823786135952196076376344449614330601369832739620027922721584078239888715981660426702777454271636217663367026923806417962624445427437827661879802260561752811985683645632236848640864402516156399498233566198198143329445574349801228014390886597420931758284907882698484403364422181588605845377106880044542483051176380755860637505874228634405872140183989080781663384572692478345096488937587878287969447952686609379472082982084645460906681274247408220069228125436096925437197661062655406572723691198009332139312454411652985731152039039517250432294885401254009296889506281554558078645394744168825688602019378223653463076185730163493196328396401210749715629858083973475467637055312184722853672113682506532071701860073948607556576036476179290114043717961747830555023444483981272940066363469926007940380621462261278629679949460822812790212500723305519315636137365534782224661560379768380957091128437750411606831470876626151132968904047953604291199976296726055006360992610710879965250522604181480841618775174727742334293515146494972430426455015655545053738473069520818027802622300095477940165691999608691155839046920079870745453315252666757013163184980196569169088620148077604506192636809904703038597270329722856368973765439848349667753617106509398568564036638987863932467541316111807333249279401781122598776850764568080399968389440540917782750039559350835936348980484793345008571486384302154105011286165061910412595533986976656833025025883725447834585811683045591442626529935391551698056140899318278538042859644316758306047585735251300582028361916106967970654890446105836670225486892470959667775799881786827018934328186634387380792086229133361959821028546521710787714454483724481503526518043074261344052457542972741613546147219069937835810223545374250223923630371745227562124009291998297196589651516966718691493240959663448540594014911408043654007856940069718210314999758981028081217561026236239578425649112534493123936582348518773616275664664936503184661763903383880703115535788701894361162826765913099312109707002768158991618423046459376979394034328221374375576413403061597902760791026772182650229600231872473610817188760287536340573283682198024161338923618397535320856814383200975290421584068908772785524878118157044121112459598050258040629999853153375093677619267951560626736320380437317413637757325719636936941221738089547411865321669150577952006620148648925870477667866262274158548413095934473944670086568642302081057308177872455257774193272115394742124832896269364759193080953895339215666846254201063968001403592891717232423945996756404371774488538213518966261965069572365279302813459659469206031984077783173893659623892385387637233993980311097240801428326441631438963708494666636157940852978884613239953794807555914333153849237252599049260216783676035602404407301748631133878472946732802704719617330118946251882134794568260672060316600756778480088873283599286147166056881780392572692284205617374942953021351897095789211215108861983996765029964065961636597567364436149245524095272939167743159938833581591545353385848628067004914129111006611556312289019437887171673334308961418702087704155699371813904887740915049822212425816560622390012399628541884569148414448261750045366601027034157500192296177651366395071671892631738757799197865450070048800242618457936368273345946708615766358813700898284437048469427108770542756766777934915180871495497594163112034422607021978259418447011117168039726973227371274877926595723488374253008232087971907836025193921749127729770548246450515876035686822862023361055430884005104195345413931059275417760914346476089046668258884091342731262043788630341328456641916551191157587078431512043976636889099759886145040273435762776763548733489184992886553065082973304930588481050757019266783362352716062914787843149627026858653109651451777459202375122657543062837424341116583850458872200256333780870331003151797566382483486910999956044994299656996754617440535180043892722203140452781557574268198982100684738056223836939065491135717229556654743181601992644876854368150235956903760397283148040075348475977667699815497951006307153903632836701528400400676343755376440091511151389668722014489254689903083580212106811470036893376832561467695528772866720219421057001795199426204112424498089115420386347775285945224957791050441115945689494229137573265385372297239040411535806797327802323540845104570036823895741233395595391104843136214021469230646047554865449100767774221791522596546840001489499017432684597934175977914065093632406136378898267716204027440038179821512925099965383186194297115576790265834014012796884257590164192435778040727528495643571224610061185935510796491070877098463535743844070245483348375993714064044650226677520861008845403307838751496411213961549083901328711300949384444509027515076143933566580690949370860090516294741090026797027928353381348791533804307783180910129693757109160118732294130589740145714500124493266725222074233303488008767825065809787631879519612392710435872662525675306949324435391380620210633435721287096232037405387511852902000303157002009627543665188541021724842311306001116897069459264812147240127939766201825301664283780291375025672366094829639693132224280623753621558607218429563024732919364429450316970018811405466514234700962380493672747856531058972170756014402634848773580285222108292415585467120979784805407617978642264315417985153133641655855913653646940567212538110040241696047742469897376717830079388679931193173465179009980415989872646069855718169232396326528710302420079070277051518379841495648182857800690257579174392888424446612065983676524924278474400332565578766597610389553693218677934603222944147748344878666876079207508521642616078060643188185602451046110705473528600742561343266651263385131614271123266699439402298560465127640932348387914145656528417482434838403766767511561894975125347709424410462630577569061700049240232912996636621881055601086524141760626208828748456811913203139505128322717994680550112328639318654407238657992096343020336798704024644704935619687862576464702663402426125390918127121877529546815664543504596774100849582206976725042255656923542063320364287609919920839741133520228782829120208847747053180166162528568543223727145192133434675803354939095855864149380824217435784426075782707964853441907904155830633133372733521387472060230956533898722696401328744237274062558087337686769989695279163314871138469292832509189149140816592306839447981410875586268425574317736300817269125065260585900405753324131759505402895613481738765801875209774516891799692465118256579040871685952648927485527683426947501678353901328870430784546393826753489788843265258914803446516039968469154813513457758825825095716861205264747986386244226462766054605859789226213961263694498539325984571959691781398017505978335363050942875857086553454392027430114958949502210888827979289155860153136140907658661332859866892622637293874310693742459424074669404562733786617386557913839816001892976850966655114296450142248693714054134758418181211371286276481341328975654138804199797541672923356627833745028175966788511536118508413862468791862131693101917635281880301954424898076122177894692590620310551793402305329012802976287072320958975526165462443206859424888786771575851150036589208337900404416592572715214883670835272388264910187889683928430716381826166717271043770188273900287903437787272054572686556985304417543124538684157618610196658708473126437060365612248814231277034322035599104766121470085230230990461670773509252550746639155994664574370610897493322708762933814353851936772245114641810999356638548430232481061530936123086840693157187859521693224025462519293500783783638260901032267129534459811380861947933548421527202712449431975185543288626331478085793242245454602327586624631226290513068731154091737758268264372448972430153542766884158014506872169572103947969914445670623823474205055655625110445557298129000099561313548256597457254912199989053876395901054901219282109118502498034300817549993783829747301361927055692226419496572561112725008061150706431089850973358775451917521839286422455841002855600625888520663197923050450055446244188944624816327760281118828229017698025327060733554141114122735081770917500513770653746691026510739243590764281573268623314680498558186938774736259104403380612666139855868725203090026250120309969239444437219526900477516817904232251346679276501864659554201729574780089452578052534286948470747129480279373417151495056043806029128965216390334078775827113130024194413568776922576872790019146085541708528326850626641063703395190392308692908421574220428573531179985429551389109820768308956898078005842765157610186169174280683183486490180984186891425851221067839507958536902624607169262473539019104868925412664341106041740265553007701901520803695168897701283294018027693829718698778653101982509028889145370472806267089526945406252590738604134333490461100904118617538476958609528905541112287350100895751908691866607025923736297548056779205576902723661659214552980831825914214759755712085088403353983801798835321355645329115215149091192549754953552293485415650688307319080380123430247900162751994860370555799632256486761402863647261366149060244711523543179127567316703962242336633393044163701544906577882337052236426244472391990650820396053335358010336196678291512291258043127767961227252112365842207477970115438908824974529132319839530165758240216726254374087313798332655001151381657177147738030222389314626994271006414207807394386673983911730476602354324120315579284267545925913566546141481858335866126491686736589033864067592517659468915382781745937199235110684825208269105316452513895530783726758348082402741112304460328511163531395299281570473629578269282135179729448686136429632078376880470954524341578882782892991281362339462984173308624988314455382593745095243423240727417849295812172210556879868405517610955666229355674504851588483703583782662801606061588873661828688970558267968801230335479016408201767557589097430842071358448019134387369707069484930312702657407464549374720435870441855785641630381857167048245854952987321700934026144407706806945185127587735134760863971732858726462508202692010287323744577551053138462129095036407765852190230579669748252637414532767919824856233615173625588509473759871405401574169824964966433562611570544501111519343212797642940166755880671515993050789027754731064274371994703627249372061376616968323038497863023520716770205368509797565696220535630022283871716940155731676914379284734424702613479130626957669457360944635497301874017345385539403333439687721846788688973010297390440639542618555347858700153490542274325596878015719610809412678474410113675326631572356190678662793500887481355102915087945395057699524375731719989206448046167476786519492671854041552177004196309456317245639768536308827222775316497425826060332157524489207802308717109242106345146642457071216907111800329300736181103451638549548129866970033245556847214808371074963851104134024577475332646140324951111225680950715707243939422152968817482761121209181889324284434627745383850930903378690693508736512275346099717207012173237801932694986030723393245889287397943310162913673963167538270690136433955470551031857626193258976475919038469975867073973764189456733600783226685128149852068075865558552513313509214783963985630154827469532879395113627063121345556881779339757638995375384495629052762239753652872873326070464163841954878370615382605371366904824693262379536990762516166175391040518009487919988531823360284195920258629333784432505811450105785684858101566408193649112830476167564407566220697656394946787890806515649800641461222642162328212274458511780569117668528680848574804880399623610674439177614353948655009126614119020434812812397167728435780069998088611131592731313236981543198639253248617611446174004205587265730591296211305894147441707596296885690933248158046556363353617624612714003422519482816416837053931895235370256623304160820765027686556448057687595660165740362229000965064365653504425091153398245345500652618282619590289710427687477743477908933504969390896398014675229350327296083876455473291169046266262425029274577689862018714225303704283734445253121586071069121002197968144723376779229636976906516652564245004407553249413758662120181895719939707170393861660386476530904434178254096603010272140142919913400975248877146767294609738262866359115942452950374069862308941002295432450020058947571808820730339593597063146502274048011764277262175026468092026174467987080508861799482436591826043369491390667102378950370617407609640997322804429614270720933677792298892330704330433205007146865035760131736900823781700454077347173039103681852234383998443653573562031075570742226856493614772418006784068657367357415509760796624837789178760965557764631208936446384680540494157046796311898015306395944506590094639946120485769959577034921051907295783295970560258429708038818844003619142431054438123231785535026922681273534810767375290215765515234660205522490011243790049671960340992462263083093850235899629424621535059310714276572444428427322563941450566724074331266923821328077836421867655192738776725476886672836266771716211094049798200818695437488975851022231190668920510529971001893342890931415652150332816427360811844819591914834867768947647906399840348603453103784771559813622990849442932769205413894160013039972133197070871732515448661690970181689267212345890523734892260736370599801293827828846985871753619550703201771350670043904334874157836820724091420083484591105840420449834917469643975215345404944132860390434901557291831738416436052368268557121785924893168141659561060978994718373946070511553985353836306603189933083482334476795014416275813659810969798230055703620928776186904778613001439757561271150814295813468194641097332166928416238590772691787943923208881468212058135256218104086323799580940564928084514006090248847058794354581980032147936217823899926561874512786424790077254896345626840698846829287103508113758206354492365463343297323431687639174166515846342153664717132733571454153564607882798132431163174395678519852541166359802013695605954485517941639800761885421732988823298199180631908949428069206945711085752448920232348317808044901701131977182647199047095986170254201572867017417123761992711931923129713726385993728677957174177903604806437817407653514885135682057594505095287730732985447598804568464197833714734956039697261020108074537070599024608665492912093940425948996005517355801077495770875327535222748440663436229411677408391454228588258926538144112886530008020283836774431858844196352266003257444575019426990229311467650071277621596019146703429730054775162581085632055526388810394913577815229945770307259437993164531238327661961687891887447703034123005623120579713425718010468415989391821059759315575869559575696807229154535943632291528680539968319357940149942969592377747043154520371442285853100451422119215582561451186253552147065111550915738172468904490265426061148197336171268619235051586971434058576820536470774075992049221950661475714689947879861277983571703345140413493637347769947812177363673604712011463116746347537033520101282361243204162547062359571585523691518458893510520652037593963072967150734669921108621661703080469384296028143705062323255966976688910634666070415796975180411630036048344518247636623777980649920801229118828527430244339420799144907051597263264880149019872186906854581231113410206102006610291403846214967662914980688873436604958758804189975016530305169328122404296113099836182605167469920408523445339415619002253194056450148146261277400571290407387286631832673530909926629532358779497053292977162398959244758833470016148021263224717684714596747410797863045885823626421417097034592630876440545748303849108391861549973384331833427675109527843927492930075864204163200934418118073084811887823050392926149359615538975444550028473267619126291189724236044885051201604159921931768670134328449175725116454941561068242805232738964735215714359570996843991093953707634628840562706931485999821093114999747024469865878324500689674471531354292642581885420761178703665175783487245863922201814327824340292249416090140923219501089819726642839280094065699060808709011274935629174689642865828206702055019620709927050796237595112094760672837500157055877999307612925976917678350155311121750965449449020842782128882054159828618810350811832640044151747441720884005939920038009909352657387845677605309596514180040063423685172596193441893266201904275285781934908471755646344398056604599883929021826863128055704397116687411642959702193225249798939124975019703267916485476832306519718924431761969568747387305477787293473242581480805539998854350160740896662618519763735122920476615817301106662508264753046747361549354068365381515331357551452971848890617787106674216124829382036496958635666146453612233505235162482471340824882731565300566148667075542386791893011320920137095529730594002393748890726304252978355496681535381558366832116792105077601553408922737482631159465271054141121341993915900491640251810760866009208027661549049593274344601672308790323319499014121217967413399726667345107024723636775273944284934419728356485902932647872648614275792868376184355030583651967756440513760269248228583193186449089125399760416606273017475916363371525908720491016483630430984404403150477954829709221901199669573027838927846449645661594863379042698762424207362153155075433620508390843902630096088000358327818236330529238037341318192395901162693288420862473578674509924866226186348015780217896167187432317949634535873946402260997196316453611188272163946479216882706314309935182563082122993977972510222715237742864176411255844099309820393612595742691620617585831559324812225968102941043652515831869648014564352349272962581673031769758171219292699487250320419749254435293019094148335584287722939477397573757290536967383633638706279624362889947259523918656006496559459861672605272941231372480463173878385652751555542801126278419355499790167037257399890069668590758478194653233427803087599205861422122272999653660287958285113214205706417883308122825921610680198664780481669490251872673551520165389054418351931307733174745356251662107785937010258817837630111781018872402569246611177185936145357626022573465471716763487754124107257684280306058610295172605773718748181802399653550980481421525976747202689016366432653823850273425085799233853720679640787078405918107576705059229835400751561245148631517867099589349491829915332406384261712017546039092313368680669709511210576737585461203228393893284626177301002496385049077407796820815061498334177030515229433706145922889012399646942326478201782030393298288935450920313097449622357817921584084645566113432877016439481876312024017977498059791223882956029822091392233726208059895159149121153454695451222488909475422927040380412910331699663403737957801667293004848031301235129211229465070400626958231999190662324922063380671895887915030882107519259078071291203076518179450363126922006975572947488391701833455304618182044108162085629670477263663726069400646678708179170745037839603284591585848139794319088112532821896467997915482760508572990317445720832360072031641787354187666739722210354348355246834408837994199622939592535403293531427902524924150546027831293738968650205986642910018732955638866443445898392424272646426472404655735303268930461700316437147919082029883173664813348190256994955201103741726030909188202867385076071115441639995624980281640567326026615079107771662565504215451321315953698868399085655475316701654303478981786649996454117609878457937328772599641402913127290252660979053205856589771085421525006970651463348388735047985795673751560141279808187048283173688628934443062734138399746302189127398341027983613884339931361731053195511131796881580408324707263916470701822202217520470149426942064159732932544603476960773960569933852781105674487572546632756503233530195556747805992912208445435215557659840063618144035687792360462311106136679046271746496216382338650167054299471868950977230434120520628070851773774352732799756272282245139431058173068369559501532100752594532961828804792255641635577695681675401578187569858898524130312565397100850039427812825159799560855454522533103702223104736606329053843765784896262657454105562619415596301051829400800941018338801519561962766345716155888638678548866470101449095650790896085899491760494068017118990241294216265669070876714822229436232547595288792224949114397052458654194497375462724067016494566449761442313357238703340887669099875819753039877644916752723871068272887954058342417571466083532811248817705664754777574702588785927258932704783965954092098926489569317997236333940901696112124789920762274571395159824141683146663216938431256560281788653244987510447329151019849006202339097078580704374953770064313716803401452400439507607930466288742525948421447461394840161099759579911999807273126342123152320832922712276764794733307904854722269276690293820729392098107742356426534300644036184102686489137710208184020102231432372409209983752224491823962997087965724518150622377729169822222396918422736410547567012362213891831662769283601897976779614649442890183829732484772842694123475549509681589768677036909104428915302512109642131279423961225918269298647995819322889351993885997986667684885126628965337470510233047530577400741766599554316443406523346105252333373062733549216587598978006978930250850192136662368824854419690582419192389989547764294752362865098120217462269820555372567692952366119146937559554756062351861065480580010650927987747541868420876084623135548190850806518195517700361164024177211534493040946953202805645872136072351502472837028622620996630382989541975920867575207447766651352977502931487555083561361166744941633615230822905527617312326577239443743072111881247809827602799996160657212914830745896075518010468879262622881431316426532097122940289930228370069953517208631608148948516713304190217765102735269034538671132798878433804780643598534467220294417230683225403762398746899526815738465663765117961374120148503827580113332832506382999496122959175636789600173466875649469661432150180021741811098810203574806635614316574108428055185056670780717805223977382526928338264462111626435858308765130558595267004574255938065007347187906161716939693782726111783592631777237364573819869079216377784421846118940768441390608720307794541858520260312036628382709056297551049993875632725314353542115148795406879679683684005538502914144358393515477243352269913919403696802283953044534415215368163107862844970270936501057069987311625358620661634621812890330358346229056043831774655968084493357301369467558783360255711197985838224320302192485048987189835439484163350854550355237580580823187083421968734920588256360320515565676604361289944663764892199577298564208831206766674466027098546940516388056894449371026492158143537872439711083580912112027954961805777917215023280832183673429902482423686425865979423168505144659491967762017874067416417755007777677305581832925163193230290557680353454509494299250434600198839150073875155458753676692375755198668298948206766757626928416599120508470204562612426132891139334782340206069466435067312223927926353048596717678145941469755233035574297172231162018136020518268341198461714242751894805710805371673377539090716392258648764498783041486379660734569716977474677384571700604476029877275614827699034007502503099140396131435163606365100716114937744291268135257490836658012888264007502865729470841150355326548526316394336243307110838225959645827530769688428154220175646328900992341419905385298784167444871887345336106783767095622871260280475302105492661587752311155963188420787489142780091389693607182984032466473142291385032492992257932334082022072970901349622985276513848365249324120474508351666586663897289778251508889144360598297479948140053883465897475884841077934137064662491057193997150373027565993285753698382126487952724411005645565632972073409545730719626318384012104151627324212209316456948258031557622040828723321827043536777019239395681936774923140690941207561750424369211160348233436698779715086642989757800463152929169113326915182790586476563032134250830120888054324727961591501962762853770492067315943601309792956867047429784820043420607791575836162087773525751166572765969426534241248218866541415173292901314834080362403440347185003952012948512569081335757376825174062710289019526490313604179367482669480303713277215990209902842027281340429497549459220611945249717544711785803584778287143883342410081660195202660950016069370423814619543993498286349086948309769747932420972830278506400185554668032644799565351922708408448501439652389680626516190560187257565299333248775581431803410026535641201924125110902355369689306979380866502742444614805550335450072317318703227438664585005187889247132591280689976506869123938437551013682764436203031605107264508931235281404449733874590068261938237145456137547496618725526484188050704581784880103133683054918511845274278264721530509493248089103064221918959598345529245823851280397196231256830627712543544539579827187131488779352205147381105489742967782930450100849975497965187213577808957809607941483875834095192036906580500511739632818790577347076595616081828149367748492659940522087715991882947020122651103910692438947935529830698283769962483969005632660188448695741180781164169299055877713968752141551678430554774246109435784966711176999465066711601346873795227492181233139172513907899885815188980252816135890061472115576855884369957580393322712808754354228903737014478705841272877569001711393631925439455128935482794849604328239357410312271011788098898794307738110544011618853063660716336405677092848942106896000203922408765839431643318475135696506114813216420121115901687988925646897512742306345391619114778308084545874457307540079839141480276595264094353943838244884455743963254650871965440668888001548851480728537943894790749298513934196358877115290485582549080275367335449941532945826603932266652549709131988585254316560012723854243377842036302764347437496713753210016390554267012737452016676925779186912173576659800312855025886781144532472974674910280109562309734461290515538934207292817143070323692849728569391741961317997255312979596498550149759833622859536056277016166464851375906789974339087492250831977994746358111101773274236535265212047591925048714663878117308094015364187532552119850485820928735613351101060157723568433209904582023157698807643604406747662782928855557617848856616337884703151450942124775888914456738816879870453417669490757297661559415429723142280534929724082615299331902809956716696487606496462190327859563099758890403000601831461267399314219992810101619464913412102706513918432960650282078571195881177207287874069384396959872910477798202840692495262363641157090700338727457169280880398731559783159886914205740792652604091614018897433697141440179911326779873169912186341407179849358106632846050397894075020002630762109489824700531278255213280945636693582649881648920637254372428041241197980365400009280955547086836631057032662733493240580949911587999759470932796802984948197572034271151864286806099331463157496732614331006173265145545995174537029050569958108837468531107052737318154666687752529720781976162970109546256250607460780112952695126357739816508799571219477031573433687893448004924819517373954082077954366493842539974496329502816786867540780487728419404981294647165959071602095081956300037943261998430130230555158933057695714257022747837911699670544119114143428282623603655151061348169273466207455002193491561956953615382551480895167605944018185530846527445289033169679597736507136245794479507681807844003553926443646863955318328552742831231059165253085635822708244161338316348622481789892991718789006339363567976815940490857562758736224204725069026854080226097007790253832799921836998371865733883293222153291682458169832820134083670314178060629816660896140146987618170861628339579296018930477228338194410029349755018478279085459197234015885703738790033151435078853836233603034600265739154362180432414566777975513700358176027907458364178129789506540209708510325944424829025238035034247892032275615678772991042959587523507051638580890281157239243267161937686519584828239016545788260091878656277746322691414760414748988157304604199159525454429811807719105026358720606603413282718441562058210780515971928960292731762845707297071861981051745731043566747602476543716676567767064501267908861782913113165509648827258394294882519764738894600716833870270310430603276840742175036051853464742050323145213735989610264703128546906733520712005424300096768025672147953381851789420532949844210662828493973323533854107989213189132069781347457253291245342085584990499748845964111966371213870757489471348986043237684389173546643043680943917388940915340810106159887732304194453606235762455242564362536936733437974707288531568668790716462796301384155156649211285460939586543850416036583971251800756224933715616336209913958315184001595481264365646521255090686703156280890051217518760670484061653769963250061696648341271781161138867059047504526299943843364300212271740234310252283169969237482713523928575487681289389023032089024463301331579781533264172061391798211852734996084239169247306422769207364797659670044185242155561578783686837083055260013109499456301676428050683880060183222981962160668807226741400432038276660618550053941433818674214811779394289232044771390414954027028221837428829956299415972590549460192418047803700758435009151764528756063371829584068805326461964961993420883725286309174671008543197371568257616250291585970955599505988358418497765852201693404601701932001634341569114247751499192595345253276311497023356940281127023608750405539199039013532503164557567880411014592858902252210714417400649883552523433219007256555439687683953721975174676027431599211357724303559664618063429292960412451119836259273117090063306089581480853399073296443805809807931037442590781496650966813245217862854642111290769336734377757953432973672724451312138434096328720736197674802818670605875778268035810321042626247684380545656483210326418817169323716589458895758541192490363796827724638462702362777311252168092939599797406246119228219533592172044649567264591855094918207047328929419555596786260615486201221223897123963823669152296685721685539591705820892829137389009196359169433395866160784576043253783500520439872954560289535606942430990159459248393331025134524600387577627882708857762005156562991665947001131803487718951301571146814331146199563935060137580338194525344721958993076813893852080140220473514301746291199619944860298028064840164384172821627960339333844335286595722760433555389405193038083022372151584923841829093278344365836915670849928303785615447520176282388183560907906626418422318321906833110322618285227436731790397147118820108746196133843105713041633007304369974543268144678696662607980846459638971612060459140043560428986405245124400506213362495077448324352198566081120275851957713680214649743492269543939947110390633416505378482407480947264588874559747288801403895851270433543686881441735477934711004016767558218745777999364249819373413222927980303451683507307584366606608166798745290338909216187307651683743706004819262121368185695496586885252996370522720623602643372432076768768037533977728652426524923425230565632891115840948138794991500657300435712565329524856809515128128638636582812544606815548981528388094870191208012518444354729890772349662433853141190056379114294504756845761921905918168883912205801257428762143320661559312204662189525673743906663974340792995532080662461709068137546931269860528542076759498060711491607603733911582934359576532430577327243703351959999219781266463611189342289199420953437339389938337197210809956015308568627144065267165214952458427465091319679742199337285647011016136674479151015465034530204980076467310378656729162339365387293583785750982635520032562706267341918561842018977651903547116212565424111333148412127575381170892902389684234492826946698404626123452344345231191769098872944785014521156466621212597592387167657413293433929940885046755652801018399191269040076953149829281923822063026861776670820788673828127725335689655575796486686965170597689733313999742666726906693634059246361088219440546338482246142470439792565187399787056364324334826516410391704796552165299713774407132705258042413919884218142027623433547346393199396088552506360025151996935173985789472168450970650864035920166910880383674802474009105648191228817327019778923926407571524461969936514263377040943696240591767027692209596892780844037791673876988961331927554564783037851502146787966306611436447325421345300551958592484176700081372673244942406329255504976875403495341048531561444017707669986071729625474207535578287442260614726298243504479002512054007935021150785779079820527396490500806063983581854512108662670957922192489941609537663867592715998728354130721713379205512203492783373911323846180982646288854945430832153091478019549536681763425470226593083046919953506382487223647028266017360065605206813359503652989815912552329943671278098431731991450088788361946635741220192413266595765346964259295517205959043688612976632024075430541425916286902608312161135501035250808106948352388556259156567111657624200018248738432066511647948775285028159713566974644510421902968252694991503783701822523958598227097391720202094376229150359077407704283046855059904953417867006357177518004218825317197807634055401991593049211721746939363163340320245364006653724826424042218879542694280026229575999423002385841735019556861682898862750873308780037663294690458750700136145573451105178419478880474603646254018737531119234142268248235697539066032623672090072657551578488565460548735085453241144174025802335156819559392738870388305669898343368955797497919683487913085361902853145454779449681853401326202040609672988025705870893221259113023769807210296831810501750969121979060952651119192843527395554705965011942291703101524868210578079620815964597208249113765175937996307360310151483885630279945480991885208733635969932969207526708708085049286748832143037678302108815691401212812343691266952028198547721361409009030834263867403686543812732630601088056572823955893317696103659363382783694674571851690561557766706168635041430584005684442393237387127561412490452220298593744027397028991748723700069280966010996829073354525338482871419865451316091157449829753220029374721155558857246854752588961811078369657386793414281187569114128929529154611986324042014362596769225627326641478766060782918065419300268578950285301258351694236524339237580257977407470646945729682973560945755825426337668382051725833260444061371034371684228237594302106471722365667506589093185204391731277555907996680755241014073911869773040273890282479365426782460334098753144311384917859854900351532495415095353537341769546540993574747339554386300692308504028517213347592454238667776090735953161096072696583571999347790668533373134758913858483358692967049691382766074447738259418144012205527160098176767836120927528743557092361600900482787547986825170915908074834153785263382537383228586861760573947698515366102725613529252082493083520654969557918500928716078026594230023376284556205721948565290050270593971849414400105632318668287469012926684249225016730082340305295666181283318606880227671891684086372514313412839269611087935994430213934068304754833607841350485237091015768025074119018934915580605856401565547811433519965268427749703704597984995980435498877445618517445170280677419127409173454919539860522956003808089343300032342254954832117575736123325478857772110671935669919347535180276564815422552662567440567182281400932102614660130413592701360627473040759708790277478076554085176138001658441399893300104357183784518335500839480058366659626359566248371491751362659362076516881275902556867296541727235210845269803201372452241887350663537969496162105430283031255196465207255146810098294792147788774465761865526825084608308995381512068165582086988932182018886491918754117892805832726031965377653506145496326696846075268663996908820006641447305015272408603570069250166106063317112133726941787081876157139135338441411210707109101816532230420166172203779629116321696120491275135763174571450818647404569727058241408331149168889933595588275161753389961154193273915253714204093525263755479876702078089248691071936929070737586614662312938494686338021680083396018532862594319189523928816315338536612219181204751449290099037377668260655578204324557335594894252592883324216250304620306785099335702836507971591859490475183638400148136677057615982499110661330690706018486716049319447870375039556973220832319097516718464130835209483271013031720639791881162554071121357182839547036335543760241981781928144339557329037967397505726606828449155224576493925226127286642630857499979038632148146181753452441427303250988278749185079025168129421102494743933884054124407930605105478858746819928023263979814633113510493751379404290020084180006926367183172956367159782952920781381540097562853375760592494987180832997223963098270209489322959033728183459669241661034155201509787726166284839206984383985264592788954075232677456111383932964026907311866468153771441684373004216730496174619662347074146699256320295435535546796794379867644666495027781015919945247286057345570045582716353900851982036940821867530868796812716359869862635481174790065790494023710081191133944727493072002343825532696430512448383668660785056866428490682838614533039470792275272202241224615376438944418405119488995123476033008909953234400296690341864933437002691049400235041519207262354419909158636177155503350871959729592140090334951723285984175668977161968759825464202230947630638143603978864284832686990551834369828408943322145658111376358006986594398605714750947719741337481635782797810722889994202933713665843531508999822001833675050887159519811190801212469742635766134682702212875066565165746844445423751542384276329129073932463789884347031793125134087376256796054520610275938311937302378961704300203205666065477430413401208020655891307099627843567458619809880439675568623380712341280110508703220416111744151369307360297785633258235093233257101011200060644312918379146636987846408135719189532817328930400100000499452602518534739174490419713989457823857092674891413213730060114592536126601296535213136333467354499489694917122999504743546478683101765347252762663281955367443126356401391363671096261820132360627084100735522281451527327907572244938808219623437580408595307338824750592787765983742004543245653503067833498809324835506617406636690332558380113251472212098570384221840329100574740784849297060348423829983036144736200702727897816608467618321419739145827853940286030133555028437270245026416036843028339930924503250802982732551331280983449446159001080899104259851408625481334560577300107473701468039403669601789704528328575717808544985742925616065173712906129564364269353184461787802582788530432497613560569710042089650585000531283241118718756319565521284764151953073298205337635164274454599002738549560603812879342674019894105005241058866486702778559127416426370268804862448715239369392208454893929863701516942735966964400745643622886202116159922159412760598065119978654297094967393514493812700904323386042951504390709852913374499925086946700594830218208629572640697708394630415158525713911531404357208239655415187469676751222727313127036470737973477081187364172288667032625033082923501701128489833854463740712319941069981972567244431653139198729289926270820075416431256741079106918488502353634818860142362034891391838838927311104735734339007697042046275009512518661771599310468125270052233921073755242921886158922970620789049937643641624509903260949569933242747101043418154336399619412326485296122097780567846780056033637346705137298620796324552335584570900192159053139206458384297266459933981130452855159921387745667378268225470042724814755892059098575827310030265128290337616900343648378650658183079176399946944620807430320669764924916593937251300481521070679991107348843239117160690022849344639437682084881540109290721729811184013457045021465294341055767425718536308355419691073747179227716960701146628261146882826414336893961055485465729283861469056362318843198435455796406082685052107133893701167264670796990328766469428637149045411153564592506844212338325518210611787509680220044303899199935195514875924996778427618345755690318632735587261503481555810066449922294212705186069342510961283747990930097799468103454184251228286522473275269182634007083025539452614220991036979955752838971202025573282910904610430528284226875062338656461604202266200160579963367266359048583702136481533220499018682784716432043386090981375790883418494086064097284281539242490570134137035202512732066766702812180216945267385358530614937899515646581485050588032861364168521054535357956778452102150297986559418226725439626876774868805813635333276179662155269482725997852721920403294315088403931742519830784946786238810803503398577027521951795715706876806534807230959639934488345261050006504782965600351084437710950776178769441809223753280626690927539361172641004621193191366865577322446921167672916943292957203936924274564489650862579612057546129264006517205901826638502201982337186053415754504114138108637527580957119641259733406244942371696299745707565995450634687933143897476415592820817738720198719875896585178056094661043647083828062301280002650227850444745938440611017775404068551025350008185944844670721151830638345634759287823433762982735161321685956142026110506238778483862123173504804197579987204022318544141464175040035765430206095289505818363703023568788867440877872328371347220062115713887387079450353498263718520074273742871765343663155233920041846363673860301475587913822997608615816118477590651045779250933089547875498415838511468348744340180602075338537171751116415980405674789637338342074408523878833050823605779854925547797262902086480421992355758834192355379114163852443010031816361638976095656636314741857600509583943949396148361070649139423714332170023830809454733997279018254323559734530007086603543823237868393497826198087831782483249431382684591274839270995105713650810103087027732380967719099766311426073332430791629006414024571832244479618299928636652805434631138670626492135046127531149847845183789311547752619605016546557979628829041855229439827240269010644627759903153805387359044863224633847805034884054253368987367937149932886827893893277387829457062611123490580375674694391895036843409972769207213324104762812960700756996432730874859697464453524770891454523994599010861503608096807338968003348853930562019992546907581204116396947299471342002543466965494085124771860689846230128498067776861513603872370196422764819201839613319934902620806550522532083865325093936416021921056909052956272456466285631486464917858731174421170692896079449730331146348262002537238417624149791756281364364696774433605939528582805237339750168727072101623693202894554826115805857272837329073802091111858069392832701462009811814271415634662952015146042971896933363211217590406102528037646908410369947307923903296707549632070078199286618651459185188129759434049813838400273606936248263807451215039603296155413148941032026160623378235367642105930642525987615874900122308018726266143794469287370839365301946070056487206202667130878241399575864599760034029261359905900541427200260852884447527720057626739781912141895848657826213305754150154105180218299824331204770412741411166196894852019519701184767368852561979932709212383064143061056456571633956943617110726792134075051303631082131263499439684336800006036776794051768638070199144426064051393751483968450838195957022981186903153241613575484653000356345644672872641471438465591036900689539996545282317985001058835145534860516229405378817436694617642575946163835124499828037545055666676909705592627523567602931028608134698015763322900344031684654641357907835347090050120729167365571358186730942427037624418507860269642505033083604687337783073124468104917397771704708345479989169904870533969802946975590781134762589669461798173951537588596784760579354603162543297492999203456353603909363369493029321481490675611520161669297286908144193748414110410236579469267509946800575722649758487734417645094466262918009518999175731942901380356634055305666710006101690776276290398003280885687114500840402979226977528283483128701647123892859903688373064160313884174400117417602466143197463131753189311220632622442868237914317032050744907126634417338911698231109032732262293501403365287299871836593847031302329411087059588775183986484973348867134457702267866337216302764784613920586299816646868180705885925043907967931644941186332513020276221816525720712038343820832892039458384530580502611650937872653447709305659279562544396725543958213687352311508262049178631414786617654889318162900555907578931231151580945424447113752868166302526906885379629775680046120950497887090096511571700885510080617922143172112565846143171110477604222236818599354293712864185353589526094187449192960984528322103661839403495522192325297786020360295677804764130504576356479236262285119146941462614012199737733814016569258964054324496822043530100926724536939928129624994984573187170913391469387060195852877306767308454889967354590877469065152189078764471581811754382229907256125477721443558129439792075869446090095085327046996298482722116537097824846517021625883091501778736473392348820423069052410068785801993058659418973499514709693204540792535114089258461245848840937121147114856447237029544389547185837182781669666953495071145830595992516996531483938685752445574134831203321236562423109770078198948445443102817945144737166889129382625488021983188117704091202883682474055961921684420685579796756963659228570546174180967259448528472947653028426844637303549929288328168151154860311301352898178974934846418666548342712692944864034915934588851415678161701770480846110306348062312840958573844183086915389277567908447870600356364563169235224192946767931545840585993658085242300555790585564136719886280501193800874061213868225588817018634053289882410082658949285997355369613120813057684310491999092710363865826911935311370260121383084105338966908059207436785305846868098013123296077874701564482741271811124012034718418567557646890636984148763359980094369628658801138850996479107718411256195045132955481387899884059882885070017526762242086164734044042611610406969522682744009809637307361929313813172415097893180572971465584249478826676086613206702199613066022330048457599580559911429880178393787742644282124926715993201306390406010719103321883378355504411436464374373765137733436595174600116448588614266079293778836757762018187296799675659340430149565757876155997120380082414887778181953865266151647443291530004615386613247248107768620861402961180346081580204948248760445374393965448575068444231248580254696177733521241695908762826437206280839425249406040105030784174464081120430161304772006471315145440377124902113176685105737909344294689934629325868823305894413198762751146452485956797144339347088566598575630004891810696213152719323227808224020439996925113110939478156285397160666866876264198640292655938309826176285793273674889680113932524235173087333625329022139547466717294725976343598296785987702732020620783624325810548495084465727776691867389553390485133755078286395503347983054797455479349861043641370069412755497149016933730494594205958228566411488522193024823865169079126896531962777119006206955805424768054768894962887511010165675955223722561093142167517325271872122263844990161338242450462333990795636663109949404819197106793744461270017447346798710687780306008810386768166253671455255260996123330496110081929845200590950802764379790637808805242452814501009804517694143593891870571395673549276000676707821489100418788695861298274156554730602302054760527796800049586328647695454059011223008267679559804227655949716237889450982415823711569849674026560546740161724712724454293698150990304095824341939421562398196949850523429305729349450601904798653487039759493933956399315120583230180100589223793272342255355039475968159471704973927323660366569109637033028571336770455252029728907897997000082390912858600184952886363729430442327507211233527194128260698222484533567676747894226673244693395437648879811204202274159929414669167488248163990084739528560509490556742448155337314818136250933177467599164119156005567202247353346344910709411263844725518125086990918057101892675341705511944710605329392601336238935039985333910398899404113433870296509658178230532972173106859020529789001980519019593417620005652239389457119270656046951078469809746188535090735173556462153585855818171828806324237425345385562213409645415046668176935646040773772798797885981161353178605606122370261797684289214757626698823466522613492480307046632331191822518319082280338938114048483915619918311665250908421402567753169043582114637983383537177724460974068402053363449637620292806299693115608940783131782972392000043886201003525910173463530401423455366236242257632036216471538850951790019540742295997926256429666492086757343650573177454121908561349301557217783707216792264973797781446175530461353742223759574304063306171173512550077625920909619822642162710475040754340391341817271193408123881392507737663046993706395342987361823146044370656307426723745190872758857158352761331173635927309463455741323997762727820520068008444947374296982874416718732065972190909417668048261371734828696413275348783167341013759331971814118440220968608296190468496318204308412408452458557181153453439406663168812495174355694439089343008860394586687090929319652880011418759259257472070869335280561055194110369728102467986258787232137055796856470505179730713911422890362033535105347031454042914280063902811336191315126568455227734914804234459383687448242038600718708591518086145474849402993820637776301119288310765838480066464205778385016434839205420694789709657597058724229434630298660112289163491037252625351226244435647246471953440041025131535817575694068627043245525588347773693053988169090408324743608548129646225301748784474880108778853469898762433754557925932009657115532543864913328261195739024220453072164971113698049642697434530277871524594378664776772679120018652321550144986820586264599680318053134036305222286112917289171366407128926054336092336163276253492758669112500293280990246448348724013743241825273958284762669024348048079771158096166921419104240599376948028074850839315504974224037728963597796916045949913579765741926571223868877766279753814501586208066979192615317558921567077149200979686505949855720946083050707442149186299986045856094594827957529514698129112266420644141893662875176090915405288894447215985824363709087924289435293510733928386244731628404463556250721547146693629526764706579222606582176001364377380495548442724405023039364500381779397877418412528698983031406929951280628199412504135796569100097639688490273137750034419354450389077475863704592840998280830943670042222361826057823762605876637704182198701995637621094411462332873034950842734848524707942222975579844907506565083215902526296118890052813485885389231088058624019358443841475390194840327072448711406313255486455830871585008433755731795450757340097548755988561523061246453156594875860059560373537282923000808293496398662389529885654294392834124276272847063743563666470944217713873399382949486552877229057058695182255956738760669555223710696179995189639080683979618836612178336846451449670873644299454411304798289428503791072546675992289618170108680739055869280434842340100946795058525290949708464988785188026872806584939906306406662998666535174726307993182913047681190019287493453885383584887424973060357151859624883596218578948985884178695773013835122352296121100686799217134196502839602430695733597848677821259338966080317153132186918878661679056421499482071708463513175658236032264495950981180316869279122385582499760513409319416124244344920881151137133415556124527429037764111745045114034382592603338973613338088818559598680685196873591777046423029963007477973175783290844728965624619299622839203720007787594915158153308723207580419128147431953413117670903022844315182674295415584580556124621646647401841184458725179633045645348569877012590660623538638043990240488114214798219817632810717953142560524447907400876001684982073425407310016192422205633215989683732326312716952607858768618586010542580508146260932892843170292896843155264705585620083472758989927417069920856533340183450320519850157550188300440754617017566785167499273432310973092826716008098242947687608563201644346562537736601117895932350642487574243257702612979726307437076833811996461713619507614788803780292752294375476237883726159002628826892685961691882501600925400666981631801569762478359461336097156823200523721149053827904718177086453401600878068154320043129357346592867824678942043032134455297540759898885415360348081754872882630048343164690296892877307461500021439767201312427248262887503514498108129242140663631296098495855799651673702025799748972486696471292162804261926469751369607665809970515116415321519473919258100987155041073459143821257864043300210463382768086666798769378046038154765107534721582152963435943196023270064740166661941474085292408074003757373757505526755485062294856116483331744497793068053376605902462208024290918297647780509289528097417236304921633784248984725017833036904617068364496287756786670731850613857170064874974274657154849898837221979054413021840336773762363945173654066989614505848746158908537080189289907561953544628715457201436843490687516841619690682979186413848486325311015145010913762488777486471417970542900663572194181348801224666794476099389948854698042425679819042893093545402264695172980940347547520500059984160415017365877508868733408874844806295074841380368363897482715327034875003449675062887751211112559242493221463328697749193489202679401736125591261476211933988158059331070637249833860661144153750129047012139756403141814801364555930688418815949130185513452994494955786566737474541955223503966286611128573795255432954552683160838236230675841328432619308475066612902716737574818882432112023354665956190673471306727679725288211136525441063906719249271285106796221500396518009430145824291603006666169590500952690846892774714384900613873686610991477921596837728264224732699093615013000537925714317627327643941384906423763440992449079798197213776848098805007938784129505315815193815714823512612090207284974428789813118760919279598687254064047177751159089086869750050808507416231780190469631110346332552587870130363288888984816463329895414552071525891095004673122427382123781013594049104038121090638169035989925002606072505024684408701007751648390398062506599497910516191452120897835532994730892440022281467143743136906978592979359798661389290142225100125689107951996202398926075087456809376639183239808735396636197536865090372055896907479053737068684529528974851739827352731971818898048705417722504322825304949205250478066290004870039673775222315424658366047292951742129213300544050033333328194484130650195779529442338474943498640092569781778486580413882020464189218467548993130476839511474219244938026265486420410653712146634240389388092208290430669803826475997886806496097717037285269417924499935801398200668664442912402491856529712483469752397380634056892163226477865647469272510430387599754111137595058398654151536285357513099572148316666878242750409716311299813972128420538787030707573349713247037936909574414614522954689412033848066620826648602764465860687314562258875094621361974215337048815075088650160429666849283995148394737813441543453085724056622516213062496602672542487261463769426472768297821078527533392609416641737150560982650966036737706987285567662736086337829806894768564057471940647338294459919508233403239189150060226232658419013932643695192363194980527358196395411865393812689254420933301020267750227069506384869213154662415859651761554473060041616034514778503266483543037693737135909834456208829851299526108803187532576954263009819871173574158618583423721305061014131912421085358207832052406512512444718422298334230583945312478263581969822356789800861308365083114727579764494921419458543921949313455116136350367068155208992454156970579022717093038933975878349571670555037391536444187016679355660135442634249904665604923369135563726633369658909485540837472371365545750697376466176758893967709734031782209905345447468621709246495518827742796638428775747644915566643842469063285896818739551384779023267076323773717418230688247055135504698238141109130816976188030482102836464422863572409810655754690620729335833000157410873541615628569744363681502363471831173349213241886415715786195765523635571278541081090353207283395628077162221838241743180509404547963402751547692287177411364647662154688725276227797723356192806693472349403787999143055693264149170918870326811111851069252112988827084709445921745761238396351318047767695310283371101217426805469906376284829649142656603068579824013670179848716229433518268598859265850756418257243472980906920949526380296772591566687092690843879107056813831481915005372531005223030350471914869367297327427655466904375654832150036711549363666568252764700342807443402199339331814539213606313905735988204590448218601237311740979041428952058040329849779781199261372356142900877168579015443390192018412445332501093752937506130082425627305151889042786528189835163297981185651907116503505234062426266961869330727849821803028544226227724078077967153612552659404204669076287842595286508645226276623960050756122557942979471120269758263964312102824931027133088145345784243040162748196695107941093062061341599386505545769721121569931460704492086067929222899091689475957865036142536637971027530066031720249064689440286343883304463410954148177959700113439635963323653894978158798655811662936825016352049769698598962196930433910154082631588940847791189634687369922859635046522268223298770315390182938656810517867123129011321567493797640862850271044028871824766881106053896900308236510734812303418116872086613256509983585061610845390601178074228433946905537299185353839880259198249044990074872199683022866047104761766474047567535807483678441816994226542356237271762940966630212511976607782207119600389142919259378189004335826095684553829582592800607644826222358180705258105847458346927030088038914237736511837596419607086954901447772441662207234551222964997968462697662057683397448236464901759957493836950754834546939555942501798132951579173763067693916813355158896545091514376433689154827062134410210941969187545440135483455866721093260057559716585298400806710294363421494252468823396003603541567410059778890590661244329108355632420562119701189585006351683802770784908779679222968221273335061425534404860388564176118278846259591653554612087103920739020561464773835861254502511619826229697565743610382278560923315122836043858390029697898911631070263755488209895738521986170391158720272578905484790625532281115429321769721648779306135746931303234560173394889866946804777354993677447581820181313796438340314549881982550992857193361484743069392144351433045622081129721216830423313992142271893906856954677797940453392681275545618541508270077584961935100688822450406775340808533144717930279687638186591001606184404791809334559051524422652275391555521371907176562426847151405143153828623267193823188044749913126590937354142344274910319658987078235998291538418926630751193552135445061061468368476044895619570493091123381171561912298208592193048317384070653162508930638881944039310388271779950265996480209366991671469096316926869634771863038882279423193904910104702486675313330697166939486634938778602963058111199095962279989111649732603778769063755249254571282834217599880529935237053915972400287751768951391228373409768656001346110205120591393311873986466232386143793901315733714093022106486999067826108747181901256589813048060547698983815234152998799989490347985732005111850357253261251490637433046987585495290867623429641230377172488595037192455830480661628266031670333026515698596839395692793039266736108612842515709742000440074188353689104635961414349348297909302826231835277944103954298839615179124404182950859111175738144216582404710344662312121938762165429032520191729373061464275499220815446093669573495043104142859764426525709873134676834874877000170696169111950750324832624804585011755096056064901778974970000237864721219854048266005267528623110526290524422567608380956803624427686439536835918467846834729830035284609837607666914340002071183183343928369783702621913393688564055676263987052343812571573043789797257975302287615572649630546201775940123731502516228798672056657018503413479738482909200902704548365594827683102735248339748590075098925226420770858438759304734359566842434283998177223653711958565909729797259103929869746786759232009021962002509504504476432901147107374332773065966058572681156806475427245936192544081854391508772449656266861026888843777756899419103451265774669727398904653212321845094649060341351246680469992898130939226511520733729224149726266655451082444660725216038035052776443525471833004979852840194001577854829937201093224341794913565480820130052801888824063183569463811636659001794999013133090788391613593518892927820696661745573803918482920167659628412513290736347088586405954698123329504818649257806841466066611533911796644506299719313545142599053642127019581681893928976503855689889897900733929021606783447855310218486854390083643228898732784832608078540207202771449997958690142638584500185172628856063165015376556663267166151722149900623393344320477557266711109112848512020951433468430754607275693309899431937691074538537642170848361835600228606158746083849752549230537856568464887325702915940241668024623067318222879966516846894238070683177523202079363501619766791400563278825706048025677335715468542011929735732390491699368436488201334510510127762036971920498590800340382468605482398358493216901970252958393569622417627178173828406533275235220957393859058015413178995231003423339955947302850153019505606698187507542916348340234181654475844762722412048067752738714289476058309875375043301862543746624078235483323429478726228518381853783492800577904581687971638854806185549954635466979507354787803831026496101121157824234855926125984668155812446593136716487568996337883934186515246353902801125144004875180940276954148640724658103945711584837911254344909201954111584892549111375397507601865019359148825874325471175276488859692794733324152653132156480246166265274536053735300622530640609644983729376606114334879427212229568076577440705226523186505550339879915306902859625575068933771093891530702133526250946743700165673232407598868636525087858347701090394241483377746098733048645287231179380172840363681716465751802379590155025291266286315122479890390408436166814251104259460091132227298118479683733235515217656198840037316412909270948061519097854489018561838606453351796381696363755029726309877226218406084433411590214368340903647348737564521690230352117988230190670349884392032456329308346671043434931003873904454558812951488669205138420638324424714548400211276963273726137834883928468341424633718905464798630913245982502152243415499100996734347428707880408519493758520575219286886024441974124544143175730068698869783790524611541376074302524398072683800140268948847087312253757517064702149513726810704016287907120631955629504633517256143385985881274269856746057967846233286756777484376410285643759486562369295822336237735786338382743581250352539004598400987364345978775620969723837152088120151342626954527687458018204839606005052026553171889692194040827898261171779025312244611378433594373922499199982477580582403439982253843658696608641144129373861974962622140686721968673562580591779174738166827590813200165788388835530608190149125551087900460131053809388232859206131208368192694040009352208047773341567548284743818568154029184718854541528595874964979886193022333972397949096831765401489629410419837129863245370134160332344470749364223080675016043681122764694147338439894371948284279061585771484808249165272008963426301467277177406309305971669226519101231176988889341341295001144204425817420215224152223710195214911602648492889204962508625993367825633220701879743983984408412505128703665850372879090632288931629668295569817734715606259356408907847559687104630158920423327364466565216856780549486506906220604833446844699925250300850680546482723566046539768057377877912474216009884329503592397392522560512307751636164877745083448278962015011734264526867767314011010911293467110564957865587519963469278101181647543923606573181798850356759898036154561949843105740184865400494428507754628685759133368983379951144496869757624558592571095950048954484256161756137316277126308281999664035359258533914104684098166304002599126077008746731317585614316722343228508011705831717195696615636858228931477292415768062400037090260326395573277151148166025336645368643133586075931547604678441764658163135548108842404748801918788797062029807855283660129936338182304181335961818426069663116432135105389135920787106020777423995049399404764432716038602443981762364569597446163723163124332591896770799464558206074467941498776734350425138769153663549986349922154622954324855798506600386008007134922614249493085844397209365194920761042873749777109210444343957356893715648335534542425624771260220198029850141398768123109593488172085194710380123758434932083419518300429614987478047348771433233010536209057756243654870892146759417365287164466005614128364565243502067762813114809611558802967957771620826899438889092306573024615392036840756347436308458340714098054212266054798417675645242165488997269670609535365097389256354862403658484125062644198155785496587941892434248624711769663099797513283169760979543353058398625400917595502647435103975892387054716472970339398094311333608025841478372737057488869340340886717260625005701814546647367269859419686826369603035725241634128160124423880208682327068894684297137736189364918358762213987971473877859749253945832966983327613959633134601745359324363915463962881010669863834382007923189447456999744759572781489322191094379132680573611128772718400275542910761211925727315553772777755266138678134006066174927064897184146488862113038651404009094510863036827516555271376425431668834526992393578866439179391666205411185093343296521489703542350049448989190413349954432730974360470907751390116638698928578993714748655692520805202414729833970386246199057633125097626669646972930082392044228883726033736888798593129229308936787912125642158955399979817892456987279909046927357837927947028184763401014552621015708433762590863324508007325858669587215962432105060444619747112593865939521775878705771312772085196770301712455502448624142861628490777686357363294902495322281193697458309641074410799007922743842134130511895755136665965274088850444511256316703080859165028373233127545046123513913666872884797843457065542090283112616593242272504001491522422251722396114284668832681676282450519389821435488758598614747760511622636683570438418768646308213359369626987290828491945516264057150998360652524756024935909767120235051360239399809226843718220559999802110428150791067851739477287378288462242257134239873002305038089935710714834496182929293969825704673438890369458672659691499712580969688932267682136059179213444855122872405370646234293670588688115259677785333614075083898780178291830683178925626512986768565098026781683905375517492715186742317011419444159062065769046257344384020723468589616861563667996914937216701026854948900946073195797561187578148351955099911709418372761321674932952819764561576259239453034048063801954565902648785796950341577400817872832611712319647975062262606652258912803618920571055799189625276013055028125389353742567437515160308939148097508681516612801413930554472890812844909288193501131072424326524833552305666426012939327115079023193037444432583111066697294384790283854332325845341114859072997696400502925475263939924211093224028107246238957465127789717177873999123868455348269816858702648238654661425050879625478611518181535742821129243496866341446487608590506455897457004869294933913458416910059953043992099766533592818542808637662924177579808357510558861040475962079238866337450013256072654187190885190117854465951775141018779569627466883728829371527319475734653200943433006622690319527530221703956396658823782167095672700628968675912656758723734683826146486167320532101941588227271081378933859210485046126777499134461174668331731401187918752289026935349248508237037227537769374245175009110288577716569738440632587827981396689797657340332800578488351355783917301676503664909274984909023951219068237810184377934015205721868338540985644441090683221479094754340803910034861053284675028163473408825196751278232972383253877702392552109984603538988442090924225062528774632969694444871576292741162892327554856538003281010506826189363936213486017676705514390713263477998938366490184972521182328771751501611447589519836379835966907083761841258751213408016857706168703978644154910492085979679360483677958759842010868638701951046074128764436799451789823132350124547311926194359178960251137189626368597046640882524070265863887228686815713476687730809921575121463399232238292613315156705254575354513319239245281860981886250166383835948500432836122596759384166947587244124036829308799545340093598346683301127590003149362536287331827655092768415364058333738500926707676449336947052766563948952275055212797941344390273282014558251834861040546078928172658373933537650713470576400587027538488708820225063385032947004028520688571985005599497597234855213261518826210457865961940522825967215053814041328819331117287069566193418872895134675738202173926965330800407072607186796943902804506637385923395765563271593709286216990817712527916612511612494038910160219805132466775844341671010593334209311564948093915715179589044152681161695126639883799393752121240302378440998579028792774618817399396883110020345888823494782216093269437885662108620814386734271945367174458935651689472021945295669268933533536460772393454634463886915841191263991062008471708812326862143926511945295374198122043814531955140679862830086547709581742579546710440929332726785671443361306909777734990561106727768087884865916738163573599283712851062537922730130130474664496347352939823046269271631581955282838401325010451716619436146787578690666267093173052964170820116010751911141851443777592816716029990244014891585603577844607928090736223414109047078759221272814918852213356941414274085911336057398155723261837109853857521568851026373389446171546738490913928190328491715904503218337673112408705403054803419246458471190340649050554905396760418025774734804999483503594717792982678316709014833592776448526497907849296558660376149447158910190443510478522241278839941781482881398262844078252685349933116677969142366278179650912238659203484699685771309836956942787843920865664120367424421191963599096421256505703767444940962573687475768808982545213934634059694062703728508747180691030043649202779042990527049236561151751653133521258625914010363171255267463413760661650193250383586539019568453303758989484639885202822009506556382596844194175386269606909534013942590107388693419311593467895604435258367173975610227571974214623783588383043011062115915418909617072351639581642691583944457328492658339611006018480354876095196238424842773908087525144730178130284645842858384604280486374866699628664685552220239561887587334515923715332248660709154089781879153372451017114364473358573658200261822880192269161145700178343878620008624904496468884305193513502259528758581342455459635208898218425427223317856729012796279666895296491573193240537210777445546784157018697830495832489203895577134900595365543170591699659673252473947268725072255040517014161493242812630270895848402311924675181169289466924393792459593597176697153416188935209734843822862297591008071474853066683700398670409151592045753158454805907744080067423759499376572916589744216925267276151186835252016488251751752975654190981676138159681335392946896200429585741488398292073972397098529279956405404257440696859761025264978130685928801564902518579933562089875504976514834054463550294668965238444799360752131474411269049594299178562868918213600728102278240181766880731414916670807322990263385956421914917907335437582026265794730909281185627925737722719354600856794266334474017420283905698968680716610279519570686425008508721828632714891458005366407587335646610648088493507093528066424868188555547902605806170574131667099951206034287215318691411658289087391944811359725628337516091492153900392585145912056002443277836542336931335002251472626947352573387745374844337408507398354418098111985558128456857125302943591971579624097685727653679614587465893526575665068449430895685343355214233601102979659073685914643889919132269133293512612118258839981620253200687976148610653676840666931706186021798620162313951198902716690187689473276575287242122444734033821661848753717400553976918618302111926444104690481537901313622636832132969610023110614683977836781628883938056922791449740853164087839986620490418221052155359560049846836478519358882854265462051298734090818614453324167380917978808463723984198658863263928967640952328196341930731811641315043155913557432219228529548359330553220932593714242329470704480007975111672560760366256333197905178390392563056724832926735689333449012210472936974349892253208878200510797469584699230319318369000858832593358984807370154170101752483248584234266445292416473540838812596362503899564864283820447461663548780264013260365962992284096961987975285677043097230838847542478056210604000909532361720461250396426658116291090403688981480571994324397134347161372345872988390524585580919232412010266374027848104299182880691223202574898753989939731031511862254635369772655654046260469510432250798680249271160729591766804070398655707491371164299649651286839410349958183571020703510920699623441641991298653600974491091224230133238187551742795053540039218666518491986512536329658015124695957848807115361200732403201671298159007346191554658745408797810178586738657881624930520024735682660650774628216655005494125437167103323482632503550621867186118087088694938113565425800178038063842022195675134076470930846888656569686086486922004092992876501186897544724207531121769021661470351507110360991952440934148500661833547456193337309295081369937116475168120376275970661204376848446671733315628568200822584577108679421335320226523080929917306693655899975593094001427412197952730368070266962664932413337696641221818381583371898358321940518755461221641243037285862938760107467474385950795520952640456539402113148371444375731392659736585426237660266494078090365373381518602640635789474849199834377828898695156707627036295592703636431823444357848165813833676279321134848075451571349845557003031189388213922611012810717231450434064751678959035458493105391730631075470534397888473283391983426341723049283858564025709876439635659721293743567709524209777599593027294323521517394459869476114080920098772813290962439196308729750943403950995751135304276973293232037307413379281256926558763311298000671596123302938011900770649013669699402324730148711756810173300062374843107514379487155780960630012948668841020565955496705049329404961216267379344721245064899478113849004629463474023356453487608272852952773245321835619861495571444542178778406396859092127463502733061841440823067959822607595679921926922519576861132824574290669422975259213582435623876011689205952271751974283091131785693477577116318119935312884918725107665643816411111314084699294227932665943641974958054560420336637191188556864251607178637613081928200608742025060065929145828223800721636758219737873929258280789715786253615504468938906093424871122604181986174790065119373248354142756419942184555974950043402681471433783445310098714992970867542621119159772064453332167041273406528018381751365905937388322901386326256222908849952371903127609974261877199591139202149733397525594743270209125016911624304616383958499176584202646063188009277202326549781648359031338511638173884846606825349938634163546003472067826431962163490493390187973146319789697958985074581556872549424655539682610362903090218474877269523494009537719775933211614396626385530010416430630388754850541443703067163603447724715565884310005013703648097269021700921442572516832175822235563267288939955245094245316732001066837627730939785828466266794164624473322863139136870327111542421752891452610322550175019824023702071812502105061066928564856000059807677580382237321139779986915629210490186720523637442550854188712915080424148853381051478510642193931418745135112521459115121634956558740667737924537469843572759946275113321997592017469598441905242535397933831882421473456097577797578274431335568746790146305347154151738368813917978863686984723617209794365492709378014046156235579499884851024084388453203877232599155081449950011138270176945993080650744617689765021770449154148186056234481620090090933072695358540779985351130118245068034118948986299717624413619910772852711939472878789002076135767459050322958259896034923660923979404816734517191972548097668292541617775736089489381261269658262832155502421657104483195832145001851938508569479659790224197453224103312997824195771347509245260379757191959803872484953971615687780924939867122968799892044646553982531618399918769703306882784321663510025832041337038441094356882867624610191335681224900662336515709919511066636278654894001341817672992648780500673696679930570839443146900332602085320636010180538149317579440457958402775022192651848488114380292191248482029793295212042332154885978056406202946546117161493577478894685739088064352835860000319778427580615700571032770085291512156954219084301774030808005785180994121668059806747454312027778720000896575869102898959653712788167383122134433902404696203805856628875165237549172858638082619991286803558393260436360969839359025570600803466109854801524920407318189547011047843123629311698279492901929959347526605833198884434510251634396236039989710137314737101675958037977654131208387846673191722327556946732378969210011227141193087555794702953582426500386041015848161795395313045676869787928990629889280176797316790058155876997783088020590506248113348260925112283601168179105429813867193176635527311486136486595315943304624257974248058319376052060838126494019631132385552628474140151198361002705751277372131278297128198923710935858616615656548248984548277475910545276893549850772900457398018026391154009053321429305086541880409058787737209704744666152396661415923593718305654865109984283399623176100837388526174572796234804378037656728256911697238781750581531688046981025462530152165265106032465966788070507263639423893005776499106915226182622415769664229925455957023142820347264299202496767790810183574177934153369754986677305837990872379245399136403832295321553451039597195818832437955402484045088931327031097315833842316853459934458841465190598917741005562460087468978862116616421329325001443379433381034217713714279059672842146720340801649752930999291340305798802633078065414502886988249950388428838099958949816631557854063928242632552908033434511350551251292634770558307921722009641935348152805089349217925634435561340153320529749522976169648775891063837421235327917742502198823348188376215305129498645883359713960512984766762330085187774326513767538479778665159775458398920915474432181720039895050781327691818886971124346383738885122555347253799193431285155553403819953074763555508137603068986745072106213961371160711428004292434481529107560280124924620668499840295684564877011677229922836676056197036349169282897510753847037418202503594106877301918216494297467850277271171713480990091077616403770259533476406094215237677578828008135361469080306452819357871260552630874819240399234662404482131065207796117106432085378679859085557332848062933158900563669815077147926491159411957433701105553424407145676947544479923629935573641256738756339076103523705957464273606686141436195243201254288812882560401933657185012071077773483384747123206693130764200161974330106952162153426348645890766516805607571903412250199707736202724041417474471165163683291530831374113084796836230628286782675663414417431837711968977221382420449047823266129074947885250019626275204463236485689029556467969625494658408441009195064523118564013731687446625980024036455348516855112928278512431810181190769150253041846344315750502083166228100175903839498713434890220000686419352313132900685151220586004609961281588518711861246818451063038602395821722609016805834005516895263241132976661838796942988283358848992357136284716514171752695626539424601507777694012421674977388048644915417531718644751709852714159418023046883732222669653797355075336390092687261527743717366485277884823887671437034414254902379161149714938040092270160975975899035276865300778559510430243805169000392873737750424566663544500705233633753409718113079744668370682776906045343476785751851869085899459024982537607639788654279184125022924426943235616628212285906628755397372469829053967884176075730528057163964586312681379517062702861660751277787995822051157968616658612338177425737217632786682500811540028752205943733062704827371575311916386945752931308984124118149628952947426417113068566133017967632946410440412126002729275238641783098536722585557421172594398183067242970004269623249458915221518598350110223086594016238441256728818849254297791534424303062286203233635637822412426820077838502849723563984896722012817406755677095334190746166200766345123922764787390866918953068001949069368689612163673446391943796024523624633772931387110218863363432526160576015336612298712200664555976193498307669500001759610831542182136321321531384961245324610325550256916779969752200250739104686618099666112103933138208954415325267928482669235073671637095993249842858282733124488734211512546888186382984595913331349455044585186293115793805400816420760670020677323639697910841759197529681374917572893880718683338089339981753999532708332809723600706727497705801326005824427978282021157654193461213528106743469143528069659511015111112502985916387418309261067762120172872930258078290605866278796261620191731759318145686917485388969786586731025847294216718532582592894548591035088645817527854184510298035031461802249474147613801433397690816409266651986954145611792662415423291946207829866075524618241871321619433318392474340410113386606735344966892581969822756380907178597845458644478020584729201304618588611872659854456102756021961944845170385231372724742611769057321115899902314146935921126582342144482597838461939055216067398998307526655178211837483489825270704796174444893826243334344467211052470517246721284998323252167006287257601823286422448870844576331998708415448437482651905478873093020987265124975191256998070006053478640291460547630265297138931722291258283998644390290658542479482381517101703866793552460993609616614139579149345804635986287280235022922649425478485370619448669569069921994100607548171014208222128131253486713684663556756888509702470739343441018376613551068632639329815399058398067154480879737936398544561686693767012655680359241315407564678998792986716386497938544535271025576737384904255528560268657024404075822031782272854705594840291593483638587312036065826711978878324362711169301060449352475148278084560304736912090971276613745904343223497129308137637450379745543008154205303362415598375562397288940629489288849464085835756389829141952311805509684766518574068539911385047676455572730245484221600544000383219451488020281378017509535464129890208826058131284740747280657814746588318978778145857739461245679554512854118205781044857744598441113560369686091509017193056080773908379340672701675595419050778618524584545481829789485591625197432077589954033331201442345559203689327006095857611359176423258251384931043076144370592497804636294687010537682821020820269123518907364424569842202005713685050755756691236790395022931150392776234426494062873347245431198552560252509354716489545411404244820550089067674828166165011447517841017546368879595046963987775091936737915969783136518916687918913314231184783844907382930387892819495777472837398468213635911319214867573284689983591431605773860738403783990971494080202162010736941749691758594998542942359133221082939791982947791592360357363446386722114042267700223342079679422797909039819459220247446661353427533359655339903070110016012395461960545503582345623674633133845036657523627339030361489036722505930779203342437351349656234504533559092072385614921196312948353984960905879148023613985917942243095853288486927570582905036656439203071043493229189704662609258739694441089774784418536006579968324896241655749079540909441669170571782556781298703267511575859345077085777576902561061043718303869706741768810844408492006135054688770615713987146136961770713788783307836799935926021332782123886634459521505495070348298303014196354548395717203885397981707255280148329539805120219149898929665138036452611894412988232431556587591765669063655403270446035312739486824053251430905499579027434940691436556002915347436967845615030745683366804493295739892691783574113889364658559134594601135223249682200580717274526582481459033181111077553214590360469019024410119640035157899911469305550627631904644479991191867887297891507334430342341979613702189771371368818658071078723928373967027477109438725190808711994900555742331273286971026851847906422393126097230398509869628995295248611641643278181212148217919168923623900435786394059759568797413483452968830635520200955341598131923562171023655132394902767094413254720391755906506041487877721299857049708829151711082494583420561039944676361619860892986868243085113942754157083059374658256543847865474337770335821032173250436242691804468185636925775543252863673115740361509759455541735653022488164317752123022227577671684394077632301586158246422563357541591369360847805486090419917844902465112526385608750219435815690925361764018617086547131628671345934740618694484481699194141429253195866932463285517508488186436550756142898659812875107112124134576759038618666352191911258589239427569298251229470805716601531506618548945616004726416161552856937651994864983486931090239186652282728936716203035144264977012844680242402472187404673251971622072079833129659259296619946702233453529358046644325256676745807510542023613522463367700859690238259092144426753241191191013328337164304269769683862839947187088862672785632855432202550150623294477002436308185576114107600178321440224276884147240777334337086421524314881792869872051795687800652744644093478049547565794002316956224416713180405436450184514949743120596967178574066258920328536634557037165956502316554291980721181165236052528139263755774933974466955947099794146605258786836193920749663458950235199328403355827938883995681782303021958148221296093361546766799804740542374799309905437325744528920970705813502069917678919524086281753941954328091506534240022576782253987386150565383992529647760842902760423933784471402497948096487874259550014973625928090207028043586937619696513344449956169665274876707489750729405692135659286732367379338602107193525358831766247403663470438636733543037835881524656259939548257742941466837899640728241698991861061608000450126628927101179403715871231459174235733367354108172328344245913224551608128044117984583364584514325836362054791691845149131952322787276114050770001872544309124245144516708654982986133058702677790978409575086812438272883833238678034911332384268276909182596884024424212421536451897614230259229895454612686377195713367307716423082231388786620248056689423849767923924030588589663432262256267628609336783459339951654165675015657259838957186699746969409370974723360353531623476390774207683332289527155910577602462424528905116739377437968053696458893256282275599799767772044097793895908514335922270416812331402462961398052436329683003400448462400080839444199136416161320895729245797495282808068950422323780015188078598829017065037816251165324249013864794190688143700649097443053016035033839640149209709203223838358894569963648423965575236820162491903389080287676766229356404579559258055922027908214875007781907014026267540512121338519184658400557462079583272160283343013084873686035174901620549871489756865792517242905122344058580537382206795718569465946153066143001260409668281873287200533221552163309448792148038437774302768006036389880966560057529872183370527898039458781594808034345287504626701299372734113336016176807716067568171763190821092420795088943734334874006483632968455080330078183480371763408315005652379124308881585225385991637691323081501879083243633993412653199256320097649141447089073861313879184731156564156157827423424834856002446193993033424469058134385308165534432771382070958994166741719233804505510714624210760103198057946403884828477591789884298109414053575776931320101915357545126094726704476766059177973375855663311972263852173083724297646508907713926057149406041149783804406922253222510028755827825112717470123320095333621412866008981905230888198526634337010149616672499217768937430884492017990833043089853241478543297244977184087410924175543705135980284565972581985439123945042802287285926315246510584825890767283016296347378319819282973650792566090538422736372927179456507843389678318219946769757994374185352568371264268853492995892930989971991600005049968899724386137269598192495931180421069758333717989469973768170426220273136599701309435140417211130600034156032243197355443865187575503731524086329351052508696891957462847405101657188144146499222924221010938475547214842509373597679284705137166522192276758637304055880255463313684617197443557165177141068786382144454085692557871304595844429866174197513023417799139756320760046553870447460714775836938018486380199433760521862485844597734643348894858172882775292957896672343704237523574721914927437191045728394623469600429388275514917977137563686402663963054032684753195631761668740493607883727846692350273716929734790826716825376393371998307399226831287441748373016841975868604599595113451095516018610469877786855866829588424369960214538568020921158201164216981811860027547213705122210729625671446787821891275304510490244144644168195084338830986652251909639312359940687143099072297030684395241118764723420571727701016578485046748927222661699822168140148206083446933628788685343771115622569958313694316514008476665628025366355958114313311987914204154622558771311440923485133826797300396651617048450093243229350822062874116721957722642940405889227734055204749714473657993001025285181958156908543259484178601026886215387971998196095060986199166028522882658940935830573215802710930545305789811008744291627113053137400264671751497982088512443499969999036967441090589795077531480473597126300724454358487551726067737667648252087572581178657198766077870239831440899706631311755168634747700575911753293465173741755430484294441424806967715940469405223245054627858367828560494897343209285028022008269416168414546186100351693348041768360322213023943296747214148602871789099890436546598011274267227279298935235805758542362586805896937171613757863525433106220640537204606397055795512538246308134257369556583681145287828661331766964944792440044968489029906619562871899009358246456616340883545049346829414347770309392923567368254823473716860419637027540120784314369762161486942002289113485863142893066303562737047026880524973523869983670756464422792921251205007657639931575110063288182140438645768706862033934640859235176625709148462420722248416934905483277632472149699744804011811638911729654921749013910680141241628725347585157692502574737374190369495343896909193813228297718962473731893506555158208536349712528698306754612518720691643808362515925812269030725300581015250366345368676063836505844654508605414169963324292751064948543621862647836056969680915949256019392110916308513563621412046108632768576239974900137499653203355660762288009045627114291049262097219327757203689965947195643927897747367185929425035778271512272266617721281344825085517377722958683601786153226151783618563803513737899595654623451255056186742585791283712603690046972701940094635544123760517817890426484502980399507196142426331451214400747334753002353433407799931308868930543793059978928527627023958496763857775802036296260116282952382449820825173744150296021836745056771033666314876854043442555627249606218420510848342901860951118958999052207552697765283340677652893827582427500567803649146261267717085493188122942746297786368982177098644372772570212579185525383251584445336963684027664948395465286209151116346849959846715535698161376116301975974654474603559185174442597386725835435220835831753662563306074209304759219559960737655777511674027890941771406742503574984923685136112585200336880776754699052290951560707634406558026599178174955302729763042334021410181782932321126064069323479606033521407165247734797533194386406170601857150850810207105019496618066160837878887001737575939582528924528874942040772491394930109380036593292156778489450765835113015262161741283919757570229538870928517678491306498261991550052396313275540379875389193655544218609464324025712333537667933026816046578532791181049209419692885105300093074836089567481395855883376978812683560547655305947211635672853034204856106153927264387135986136443337063014695563728802247879369725964611969391793423473627491408592294042903429363710823418621581588643663797941469705379514308548809105465412343981050801189644932391550545995908238623031077318944848173129334248642137116747163088236984886259633435015534974023101355728586342242910580931262039392979352996966645599656365709321226353714526127006054943099744792190883758477190973421770939124509965064270488235918378997470689191760715562789306039298339168969295462648645065795886641235357938082351276661076714444325227011166850488377584044081330882044643516141491647643682468209159772816892063126777532888588466413514548186860556264925777670217600662983039746605202076165953447268441431468094471290779328456915213218665413748869716284814776295626528928426252413397972010388901332090985152855852790261541831670167129469877626069740634728136253465307869218270620752342118274429405671628689722895240762046188628433475782481548294699435083841299813496158845539446600297223416448413714106072793528683847629787183824290825075295814007246381707727608714363146153940819140094722066991964172063681641376065891868972184890748001980402951110839842301865774646475042723274415052590623987562494849761835544656738351107922000619901814257248161330127594366567482418100599797620302149100374793879783801864979636098604840108428716151005980116225432925856776965252660030304577563883394604067323598310463292636230093391893030392507294842354779226795642145843153441074369767940373846337291335388347439372178332956705819730278523742201408397441330335568173861909241279400846276601705200511878759959600035188000366594539590406047425479624334209980190935436158520709330677919604843838831369800803609643632739521522828642423081782137813028813859465455730824247599103889671611862368827908204807163974329659153937369065963520137634548159631949906893457955699165389580092328669818564044417757787554217755417948004848960450185040787420691259333243107572660373598201040074446076190385746943057343728966420800492256014177494642187377960615162733866958724490372536067697450713432067915596374677840434023406513863524333756223814625635792945253310068425650613551819829707907193132925229949765107617263389482568788735262973244257043533409228557839988889815755984275498707180278726410831316715400905047069224061808013337247515451677705990336872546186676968377413344366818070189441146176612811218997705832211678440684503116060297311782770874726654936829235238697209476820640195318770487696039721888816407603033298302223897944736001269042989860089408151376490449155670096423556508795044250964487233884725586546620053220211338703099563469829387531959349208831655163519127438780512640217046325173359652242322886104536050405363896937545240377893956285875398201462567228470514512390566665427616592576665854905688675766599620019480419071092840392543394323293889201519807263000897690544921857769949133051037779029394592796493109664488368022948815221742950706216952977549012953395359844888251281264552018993041376066679944237979440555094555158060798819669526979005693533815238556908849892822338400716460766558793277400476303313645367966936923210745443802569303184772760611376259216386663556702726331523604663800791712818132163028682562664957042318805369542572071643164268850333630121527068624952779145722513131082206668212061273274082091421595633792856367670004959598467136688038886075738551551837039550430706792768026419364354722190389694933366725559026183542895038372595045264433070868106358453000983069302046960754488007431288601106898670260213403882798255070919034569966488577042511169839544339686782670596498376876126871859301139978495360186084713076750117508297826118592103230369878241687381186064966960364996434203790212426814887050412788815937803347689880114557697235823938736856957032435792424016222488206936984768298774287094813141497472343599256027474351920537857727193079283961206987396957855808149472832245599813179924791863592253013406991161805748556131816748388688180898132421495688132984171701030483410798736523879758156200320879248002030212296690471466397896846662983575909762114838673565186109258921473198855559059531016150075677983813621259791103452429672681548888990229242201467176253600199731707316394899371022837788807303641662873516054721737230210206566095317346929065799499375061287707287767969911989391013405638667102759702850987309751888605094488622958891776889836758862230083450819500198054885029697490220293501282104965101758703929600090941905367730055660257794933461542055761440764093048719574032496230295044857674441414653970504553945667027163866424092967379559663221335887426209141175471986428705284907154922598704467843820686526794503945924529768384129461537429844770620023538663912566402257129401097570903167788564088942450044247550182653762523515889987859175609888351767753446564769635340232452008183737087485334278518323954791709020659470352631339468649895564225530724073301578722353075893597516988695644087447208298093712358704815407751719372110490516451423509959254376911016752806097343506765404456011993196228952000179653551038185517102934678098499815206753727173064325322992038971084358633497803964204335070987724412561717401440284714393334819616737145021949556931397106358886251644697396788166815540345561888376422478576195665314048572028731483933547987962539200006660584336326182124692566343959151841895728573614657000636034496476885943201223134958659417587244902415767934284355095752721396242457794337528327978828349049505791536782816454611014979493299947150989672950887705266067446216867739624411302808374947418522982699687059223131810893212400325376029167443038443304506855441049369818496250114065300607499755558152031478083656512669419961206672997177294370861933326490250102074259955220430433339285541026729830987031664166345323576289083394519357262695953688494256528696461539329719610946333506108121683702669876340377016804413840643658734359873767914347074635115831825606747744720331246803127683790372646021433978529838487708608428115329335397565638584041640747377600524439839370019139641104212698125506673695307092970569365661400345378895408299495676109363724379293313082834789405215943904541791368462337527761490825291846167285278317709699961909029219684260692192904971851927500675915764795235250409249089987581971512191322663652259911765014875556339808241718512306966977623211895889447455454523640024366056874246631339652663757654354464246003484939521498565632906907814960941747378715365266772695777543442468337526916524449927695037667180464861540484149916242555734090340325398536507346328737476891553440940070375852416499090410411464457932713321542161848791994714516334447369532277368153067224906670254102921167272561676196288450172342106863764924702159164560550793655521237503477180929832963040710655419464127500600339230430966721774176745840071662823255033676258915718636149085856474268819470382621854559787390811260618502345704255051659752963364227377384311047921094473959710766646180592488944328501411175261374252979372306815939837083532160315494735761735537210895131811703889980676403044026012645239330253877890838723390682983972289447316021126474181833826683683348520413525316761415325794142724715359067904551089366601061022501557781114000164199368843931468272818508728543401968177410385928268964237574699114969866069304963073066074606760378999204760600160598032269575240321052425304965930127230155412183127357819106578731011694708312641329263100383449693700387441508496908820112658175674052048257496718450796142989279629241006878441933310813876114658639176328594417188208001978891453731486676667008000398235252738348468400759074084497778340231419647479833324633722798527249111747355827740904856423447111399569423549276996549757213749182790807841880031762226930225959945348562777275254333061168922913046262499706567152927257728905114816101322696685305261415951881281012201122488099888959052790056610557545129456433146951495270767272931808345620516355699344349390882254403216871994715177340328015694839891495539822146320312854287806085652632329623176095897299875700458737989416664478472376720986059011593221036239312610707460342728845323288120177405196781259127274864236342183817350056714063750157183766859338952829193137630609503221661959652202586744224764972125408917876833936303320459916091309555522834993652035080790390283339822672098068522619714286770632724688741759926117420431209323243529273472028034121832249517089100149487326642146906648383158449505465386101705261971272365021960839355388357069673974160979070869727321438743732309727192609476651428187468160927486198164654498250006651014265967193588496179121361925595737010776436106782253440549428634949052877412191863625120754802944712610868924987009504559353739311210378160930478955003536701092344546650838141883231632483731418173969111972337355742549375185082470233128116165354638742228017099762150649180777526093950461569665220679906212743135309064053939321606046191718749961745692107296561785148478116613333122701352344304414960443624757512366670114560471154508476134898349199430582824768749798840029489402914272406016226915825969012998173740879077853818595376963339723939216642656386822064035872906604998329236928676341707882838044302349925090428155276366011015901800076552913714050130089316348253112251763805406449095153837327617026586151638460372322382710223547661256108640516370788253292680639878777648710493922196801592688650914056178586024419209867978369856734065817477757046712093614369955393232028297653603001361627693971925392639371867448330676334590701696561777508914753456748747672000114917277256522951311601199362686351367652262528478533332392052523461372207366087537730092577942668668937638571277955341406665939824224773846621184447435434016625998602596607506769157343527043213844871625805695592048056621426451019974246169811694638996092300771565318294528997187201925690043721966168755141672167652838751774728629060550380483692209618399968249872067885689119971445634166043938036955631028998363543166376570028498850626823464919684671966906422013201924572654514030324798014343622032410639085423911370864394691873192467189000432913845515501866806476700727442034332993198732261054221856039897349338943724987509560151486273952004860839199668853001080468724246706434401714818659590058902896845942813297342873923454541549290785055495079725895205988933504985208423118335097477051640454822399983518398461923068364174297663418307838763113652211099003772328610653573767311472086510619464883427512531504768114848183908391084827135209068087655078877872481604454603201800929210628801831410508521889684194979564260283253779344816640858209845436625851866846246325662958870203072153504222241043511262951264250136906741647566525541013519877770304879980021069156700026303907750100379770858320553215827849028723701635634451750577013724112439739409478007970766581876272278424488642654757011885425120119741128473252301180875826058377502621297543812181918146070338716078153452456799579018632568778245241514013669230422324827102475146298295329497222074898618547680075751857768704245737105186581658828681550026413844777732660756658428970875496885900959510557111670498573204905513284541266889606351670259366292290447273583465177931303282644803896697140345755118018608550803429343881869715802648831050302084706116047245680704440566465248316001769048311675436232562960332231069326399590443912292235705975322140513591495658902302991194832809741659968062480888894141979841480910887082264282091107569090616387584186478341226560641069841258368677617920038879181738291479381733270513791193105259053143219252199746898948693937014052556713859181215171882624514293747751298668995818577115186989808886780039105538284683869716047200983286036377392329004035453870193426709916937480502076760737944940059413044155516277550197992373463704013360397970293760127968012542312226762368300367657211397309953206052160864606917371549899236996326627670596951368603558637070626101509647872169341787743101095852110286562113331683233127856920622195091767587362962363919200598656592581523090427740634398363537105956767452124167970183189262240434567950267448088869122752018438065801641066582266332697826884409978198679068708430441613723884837925607939151827288314793119928576751345239109997284406684004053801522543622546927213355019138276068267581867224351216362134493512507264936294802777627228731484359673085701333356854116367111939812585350988001692863509839413252072019743052086970574157501174054577370491820413991117957482817202200733021630330423781336971802892015009394115738350916533921414409955417186449507383466304080905412336590937857213368534897345427355232317616236027922406138680604524392982999325745136230938906589145395366954169162292209274565796997894896903854411710102235416990393544054077881794512565893689522922599436298507887717992193958425227937205978755698027851898970783145802098245631810681108543718671614592835772901087332481189054972406884428803266621391490756621700094621075935738190709974555762833587746050199370757260039782123173345116632339838948756871192363057610830030064262443089274536663342463613812184088189735994609701628271504900815157885302686323550861358904253659127979418317943490492079782633957984345167879729151150226424536977322524074332701855813650281767581306570219672800172943419535980275511610206563614789764262451687633911664038159560408715475335506037430676848962549344227075558795757088820703877669943073899264858903767965934051031252299283150571625742865424337630442139387799956263626059968605832205671333367165532691081435175181891201263200024736484464833504777857627802854702447696376619633005495632409049644934806393424592754280339598497085150608972808083239181973638428872966683637462590868744965093790491378739575328404679576031035430865002391169033801130093887031355571464059035576634139790642121241939356161734751155048061957277175451801820973978186942605396893072953333200138440924863640389903322445651842884568615268183145896172626672507969565407127692388161707069251810820496819141437008204018786748934154488372932472426948167897731530126150794045395290658235805972401905674949033162288161704965987794157125041980254329388253888495475444619606514228881933915119264728760240052049578810784785543045095066523381721096955990180339080551459182239128602440112495732355092866879153627898030157358579995252637954092135374269918063087245460506443654596188078100879283178295641441704083034816091970126952848961213251198735817100669002894323984226605616712864224330562313282145782265139930906912602070771373306880792785873046994886337522457030393057099879775106102773911424210111732070557431945136040658800657097485610277404962087255112557513742273213818891721702888518897200262331521854693075511900473574296404907441708919153600053464953225570863129763269992926530381447649784124763655358664590930945286507356211365242665234747435165952938511281515143574106643875675504916267663253369006894394634160214692881379906560203805820983272130880400908939536895046014223122529572507077705510816796955717412747805365157403193554405229310186971339351845902323571756863562687402963249105815995830386061734047694005026266203574655712122108504796581043290854639694156514083127105103484188270742040403378470844205568954934062268770054672061166690176226709673075765931051515837495902818058734619747742401548000486629363780349513987884316636996501948444841844074275884816813048639081702518042202979135592316775650681210104650045684047454602946268626762522143668959859160348416615364538471657342849769959199597535204973818788095722272107327873126734764458610526485192549190402937600686269713741930468437461684111613731404000941451660648485990780582857562051292723257181524943674009979305064163677741939874865236558918906463408937058283612819715810936263012779190646768354956254719406556758797484854506061873071853293178898863588662771091479149597370336925400948638464721197378046530534909031722384225163074035395528169508159487144059610327047908219371988199307487496496413366032604544340280233916744388506403309287102983375187796250709596093343686252036152482382258282156909673778527704034867014456104707499221515745201637618526148037775216276731004960171376487086065437827527558246546091956581115007179069724621385335911558073382458425534408082637116962854543055643551412060420192551583095764850641852484933787120506751513219680569535422803252561614491322158350317306716612903509963448943284931152845902350779588556579216915416164257850957227345129013864170746612553747241410323051373227091723824289110742119996923361071540231339554775058316430993029078773650299958970294701767778209567114935332212848616626906797671388975973455752692110918947413519401794152264643573562402227619492026791611611037481982906515240484684651281807948304939852654500074069584200273546400429150143119023361036835987902000479499135140426843731684609844183928958360110282701609942228108388037251600639874239425840232936630886148387955372158194887721229288035830319835339105700110806395804914439519553399183446522471714082659543906729224993425070328018619815801268294291420022575013909478289381552596315018826665705607361112622849538209688882910107642597810641249665459069709130213631309331191459172556559397062976893365293540731739730249748620519919260469511316158756438239511033734636605968755509491397446153752161321272276738907975211542122713265543168346246451439958473584392110429703553515719281026711746262102243208649860465306710692513352840580554685390850083649599529463082086864336131255342362312453941782151091030894572263690100018541280035405861811896260752112411991155819948791858893464354564612665909766208411434395731742649143015836345543386821846262469260795522982221463418725634136329573451194785042778111849300440762581681675890434838701471834379915576562047838735202148867942256737555017563523798468842600312255987091327838236883059908157647172985384678958586450345232340148425440831861513975086433029597282680047220440959785854622067690571419175105047482447144885020952456280815413179744831844046085011107231211639608669965970945530073260863487270529302980713394014259766360216644998128976929301894524958559399857771827950354420542066723723264587793317526415063524922119017747696709963981720796276624407809034993909376666482084131677612225831937073865768692044828525785299565495470716909150228198619676220673153397680192656243532904445036537834425249597438133240454576594615674691760345569944869159154316040978736677025008725770344470490049302250861513834611953065084876603688693670259860445565868140979705234779492729524131037817736712481014235896023820250126360465037314041253682852691067250919581398414035892058754370992428803995937416598333568551928693847950571093095640197263150034478742226169001442206400710536180798828548925998718860916841389406161806932067285112365767216525747653763090877422315163666426374331876949054721423869752209793442836793505549342230033764943314802475266615611292870494270855164812909066028075921690233679326103339410521144940797841302711323523323176948552706666916662825282781815156219705453917163994123520320932705081410329950887562676534170461642927753862428657980544926236970422181825627118322255479057597191990046752150545914933561405092326088717543001969868484711036882274947912720137705277884901631601529672578323401067068272906826111826606887042134419523676286951927673410060182434390175383774305381640253574864019101704266432229403373426954389403400212720164804780422795268352679087030721508782247975172447563956286145405776858354730722321967883269367700905288516670363598554702347287545208439929315010260530185761099874259360583342690214264603544628649199995362959396365083051086416719002617144089351088316849624163305438845726106254929655181349244716619647604712562761117689303674511007811783090080886608316068459236823124237080803487687754153139656666616409149526729766357053621244147571690322975258906815468896435403288589608898029666681635522107662479512623379034464307613286746166639530046162594095095706109411083857010101707176326905736590972370518495802280341814539375525840036151676650517076133292757458355852877163532847329299562294996046275738557940722766782190586424387843087691249924049078437222284838035497438113364512665469242989616196224882219935812375867253303442212894720694542670874568692993713167475832254027609565762551911634782207283711456423732017669320471674304091849111896840616848974488794209418912157208774551560650727828757370479117576914351170946166372859891952653344734538543901326453218971846616563641167152157949639926367039859808152552125607554856013301322962547413815394284547952294290166182063103764937021298274083490424940981225599825277701599944352433572901172264114761826019929732977481925512849518473774462124860615186339212070747400338359217575680766186933168194357822942820181148933286562907429666777779136076034871563322898701603083094290203123963439651554623334026206093671671557964654111471442298609572574984277596686693220973204293164546702561671027958441857047057418685023395638839545699632779196211865345799489750139928292239244005963395057071275490300740923929875270225634461152636187368081475914545359643064692292380699517331449861659824389135145041085071183634246047441919179755330950857250727844066907222512981622644741092142810463841508135294773999796135193526094540047444191571683555072176534281532325896763311132032124204868013677024923626924843209880282346101096474242806629045775349308100992570415861282438651850407409190842516336532834541767602915867214950357535582856045280451221082846024698850393069605672801965884642180650113973667089181379268488888997896401048182232892176962063293329136154088690960772076476714691636307758309799581081797406060898279411131227221843312322183753416841111973450658715843696542112725642509174278909900494603993685729331074630374393338004094176114437584702393098405907527963218570102225573724093952330813696846670446984038460616425241124758041027891627517740807551638368850331095261079021750156492467550634975322419459800690951000475908314429801135805534765778370147232976197541657614258759172384622692523079562600332837216621009453794820400998364889157375598460494799751516799828287993856658419348533021544367644834291782538467954506557659228064890620304677525205781335532086338142480767453896931913516285485630711004928176313549961508473356480471782832225376595373452159403620765060668100307917374629285530288363959440675981531379087493020676834420323279004065910436988890088810965759458096465524264397123557380961547128058974029065372875502239555756739103350025765692466742360629394770756063925746887410070246173274146425381463014690373811906925375772322993355174513102920364640432947895717930644696777110883144802486247381165509580786792306010714654337108024398668319067051284539031262948695014353413076195668942060156492445639085970097542822239478480497158154235121829600198390736532441059501134308555470805668025853880042041378679202151022942355970726197509879752681303848386531318120962908788896603052467602325748312145692953034397261283619259837157077604364638089743484079556599019512966105818813099144192141847910874086871300170560495245923789418786112767506250859890846277987623244138924117776179955568030166364056583647093395722765606186527485106288398906608081470281542923536488391678719935012935744911044379047491550416112549631794896686696560306425520945904904507370021956958156203295037618867570590404499601704297289302904762548148467348112398218515125407852037108068739585955193885684363544624620779590320121215583812169455334180757878055864004128714210461663418582559857885675199961042347857235887600801590691137183817880738403197460700068182840774156864676792391780660334561804756884664656211973624099952419460088103913420212736238348717105604080316875635413392122691486259051918055525332271322145344117923997557950131246068505216405203355778546597198061451070411417568174214528545823110060997070875711132696633587314873212961575500912136853108790362728683606362559891550855890262183517076411439937349782293854558673755423074753056566469793773974264428943583657323324764101710621270318133820790961173262041303968533708397798606870259083589927521938277381736917561247424017169220835019586020487603815382913639039807489857293346025264996943568162364030103745094596670981582496133240072752989788090114904737595241036991785046602915615893216701202183604297501573443921259211982032155932419361391207091505764011157992801859664103554671793159275226296499456035811088812596304777722519470777018865833186555257726453783554369247148931423845535916775643304760826204919836276072585367509162440269209534838196199101262852734973933043449559967741395817494716724358801867817857661868884832274655847191856269768673727461645537791615015762074329348569141308614915179195808169170312355235328170222169996937339646531279252048752548478374439904082176876844800533979855452880639422288740249054278223065634241685953185247819805713264002303156562866015195923875840014321940894987581020688541939788548207436907454751569827162066339103185953932228556370658408495557837979585318851328294882742796216217652997151882846494081821800045405356514843793284714981526483177564075681894578501739634785464583813328974978562203172118975969516060943420401735703393313667359184625554618897187758834607916107213678367714267057116722801891756123223473389524732319212675522791050493124051590149124890116337829626925774661914010418190122137633856466259590343425436241031092458044897075055875540139254559337865700784616571121854775719607766126114754478849517448577928616134210827370354797617045309668167020888230779447836113327899943124002641164090780449954784200441341646521354913785619239654820356251693385361108705073894537262304988869861776595155181119605828010716623093317579264438059301680667721993890248770967663128641265376454697165832762506690566613948847446271125449298100248576027445143849102213411292418416445787155520226468161591207673954229617148812779893486672895758061151872332280297095723728252681274230739963018560319221609442203393950837804457182184975913994705216703914552797545912900359609879513576799481860799154238802796013764505445185093386166075737874255962622115798102864757190764579010819278898255325634217983265128622842810275804392856468816982705305206779336025863503104928559628198932048810272615044209969517481318815459771850928011578627675917047365100561956158144916052019573451168886964437611047778288672110995205429305901879962285105496525032113139069112725723855758984339538257372270845908463655677547439958942860680224254880075081218492728137392523576603952662900762532529758190020187381732637325273609772708748108130447046295512007649009964778053361295585531927623822844161140453923113237169538451028905606691051829977624462693696392880174112899040977899532479525066693451648023387607807753425199594479712376330259095381329814980861686095043249570011129579700294189124298225187854063287556937102362183444014377546000728179952735204104635093701778363069146823679529908579156199190003794669698118000037732605198707382955614902313245941931267339409493230983507044995691800452988977633964231164216787272596203107197026134235718505979780080375045544895745710019148647457855699706193325190872117747080480205224299748754416335919327935025266137243815636482467059600175096144953475789890571101462009528432496586584236017133412313374351978625115170367142215585226662549497330503524020469527459465769878286881150943032380510328355158416860849794925839500634787669793317375284678932857896992365711973273585508889954794057862835558150105149913136397487700764108914103004542040233093938943211522168329933151519320859152381952581716027410070339575615616972314844567367603734075902490103590498216574581137829352782718993525397268656374193996195687049124919406915429837455594381792510624609159533341852559865339301654715355111263072336821958480174871519040147475625563221492771187872451786754023514876557990993518353386718499326732957610172052755071510399974865477629006726822071734470351518518002807525839988569256593506759354938020486229673725580312019560491406158266654893018564093866822666481825942481012857652446421534050985301536572911086443707712586317707775106839723046434359619577339062723828551828123563427919149810326191505548573424312393056893415015276677146642326200769580168329343896334276500734422108402670902686216422937484509716583449059581616905814208192088438108093427214066158073775632731071119640659899586052303284504465079592489026566653630318221588130999964735471394755115914320017726781771526773062832901471021838712703108293412156058812357736486493993356414457481393939352155420387073108174219572899880079625772652916160850720223584841520123342904120118447527964566717387450225034612219992572793737834890556375577249800694662439425653187721929881193210086321010652689347038863797971347121303614572987133927808595416880475227299594136151734587203587291139105217081125638506175322238114585245010065457121391366987201221318420562172453872499275716272135870579791766038679082492447944539295719409075492038640818167391067902937626963454651629346764950638100054499092444611162107526801538366548791481612938898219305889682258104689703956013712104588785532030987895348658549886907199971276575950412349223910475254586119523530136403370590393610800731102780866839892888162976020086217223752840002579191709533992846994618973828977748515596351654878758990826068662333467556489645342342647560372392831560230901351829279103168191686750181101562508727161675448862409934116158878725953701504220628989862972122397125897664880234125576593357182005414492780760538255186976771262177943332501351659226828332475899623111418175209304228302792236586708018431540419855535246081615397671574723388461685724002770648883255738860704843054980160877546167573197987872982988641761198668659027810904897848093539960262038700723996002503406982572870853642235095866358314385153974942430758437376924334620558843150715704271771109020864940348503560867448011028836316106701271115635691020928191657223471753066796775277436880782588698225028209662785820335562506913237286246084542942372123288159599698765846825991673749127942547905434947926919942091620546681714450272803756862247325347753277923597060130790122349314433636104605712526349370547452731883662489562941818609706640912159540299276581120298019852799375782641570611391796286021060170573177427760517675547069979642447293225045997588331290034085507822714026540000432576180846453073786565312983322499024981260240670688393608619726006582667744414091742325417226682464721537429471416380980249871096817503787170919971568536328443379152562778869833899969413990696551482924952457595928264777845959702230682232614709535699379195861237733035885760262642795526094633217100945709302613321027412369989514427811972518542010291895215845071523016693192883190876389679109136053976385037553887901699948123122490447999819000728138287275940439075138252400882572957013412423979982084823266131340384964115245548877285111682187363626708854700028920677746273361123579281951265881440803414233045794659461768928578589426093185590604737982190288814184226439424873473467220889468232262555359202784207944386889903334775602561091680925077992481671300922324459887986836545660398377181802287254354497747120788810974620425211774112406623659551763918806166742781346736572173876851085394603624321900374788612078597765543105440204028713482028564946738101756660337796056689531296341869399083651929142992196640108671063217139843995568556347299741323728280196961907425199898758465543192939428033688341054327914775655909057326936518872607517527070412962393216881407628986139700767533855416775338059103406555251650686129469376513230506066330040314233797528512246374310320395436037004005907133195161512981627796578597622900188953515344047770888470557199375798457897488310000978387735253459024448278913208586132371151741619590172411593093896335081136843292348746123917320112535769723692126224666503620800716086153305384153728297778833667390521040998075148361795995174280099811510922753694974125762984498341156965641214225884923061475092592399476802596877212864948141240677981470020058662197465880659340120651425529625282836463013318546524274032416605911293263724731678187594799401070997111637180610904000360889212226702598368979982604955803009283680509747435239261998150372875687084250903147364695351232117545700629161311823727944395103343001798560871320722923978651813496266442018775085114385764188187845543451878904394033685163919250381474549196275804737134347333887627882429427404891681070285070288816028240140675698187260357487729674860175151222669798860867165186756608990108025214727690606367365259450184586253033021134525947940733261611394107165191232973493414959796506866502762768843288908992735413972904820989864636084747855479878882625694862015744075784440041894122443140354389438252818738779312439189982057669327820086621456111580751889349614398716101654701630640854815341013593271969598898119853648749571860340596336406351808143571779547847260293831303585943004940529685208751171779126841075444299285244036112250810485879710854635457603132546620771941957891120339551226121908815021913076189652631447317443651843987576131843159734332526720735483754989392831742425817746314302365882538688971962706551317365615019138187205274400506429594860251088508563576118021905347958622580721914159645713436914468641080560715873180055302106406140818673330953788724894165954770858157341837812396325456976492971672249131286142508215743096962570799007511119286518104536143495107991067986109235849309663326484055593321114209004639910505262590136167476759918846167010231644804581637191679939412438967732800283753525194451599148563304580736091592016725184119246037964315290050132178432144486078101794861543453206789504345374981817202492448347465164251122646725061903014620555905082750271533288542456120556850725120333476866958229111560219901119339222558656933773751177801397504119486043353433885211807630215680258920630490609396240584409986129867394973231427785240776150325899320158919628118521742805763816237951788490117288427276873085958933941175050237123413683919559404921163030835073193234646333266095221596898622848059191640076391941567967030260655528812712578071572330006953744982229506325304053279091404859282400183631838880546186723721327219016309592830522236715792430397143104880624053854971436031317402298932362295878702011887572093102518793149470622261046864632936730417764400953589068772865279380652425832301720738139778306391150153475194519509732399431671376784787739786391348267731447299886015414985531410399486509043461092399079399137721045869663972837635335798052074404252997117468617343839054353907331197014803532159089750291964176485795161818916297703718721445328016349009327037149503148236591922814347562597252108299631623243719628347023553214799331056031376237080710658109165985498240629766251863501640787731658221172601565744881780268202500408126793615990477963207473365077236932001554061021387056199885134143188959888470398131626052771576478723212933786201195650071243986535958042287946451068153386932278505158052166471892785469543354526318828473558444919323917559315828547276935729721805825828330052581355097271593585140648734268013284661352474959259838077070822917425679783692787583758589752537973098025367713357954983815752963726346864947377637785490442803334765562948576224135952051992347743485946271497744440171567225309787841340984722389373808008212181810000463192295193963985807713727287657482967908417228132320564068840057396886480413059254180676475789476994999122949930730496553720420963662562547710029486216398109913445495207637050217101600048116450180564369824901376105731615685904866419895246187251029530141591124304072303857561113335235811818991259262358735643267146461783852120888147873465483789248205330641013633091421677547619197972790863156051433118133854147503426440845664132266470856112891668364229220723866495518686889829320456448607460563568445623009061536859157190808049381430883944880453276657951610162028368994935092695425671859812801596279245500471868545236089824092780400851525603318301597462629429625445070248959179678313548442326525097104396177450938253131800162230842762858334238425659396182473742375761621757564032623877642882166806349194307221817826611158724940066243628629775178074415945372088987180549257476491983291437849506706411419175933337336321862956644707821966022477753969792918720009501032615807788513516656723728614619145468863463222017699077619259752627489397507696119858059838967382685301742616353383071945910109406200362335352403166483418475582167420944761220664245565932597533987962518768101861595579302907739978494337565529658616172544661509473719152659519602822285866240138825569174772853201222552656504273721575987450941547607857516392143627620190149330704793686508154259609997796144373962019562850496983978120165553372431669057562842827170625445119790502842783301317507759337994000216664162640492197735521236693554006957770254167663788874996284598652068012791202874565717579779579798815102085882528906736380603389298443362757085191782057338757164093955617416707702161612742818554105128064408041361959886052265627670974764000840450156869497872825859546618075589447128622903476753894953516179534014577313767779842459125515564986633253613406265185699019107448184054555462413852043029761052112199209310468631352644467053453050479008778239177132593804441568743372584265979305112636501092343115275196594168730593745634293988491182074744189879545109849839003027833583932115039664580127055652460242634295786379373304465840996576630944853075017584524255343372492736026015565554895397657109824798497452989961069356406045169176320445391851496770075963291641291417413534111920103462514691629627202828944587071463849133549586179340638454604056241201854206562413794520526863243571953791346915891414637413358147714864686900445255919973795460011269213922101407080143460002345527538391900376039590209400647883108118104184665076983148917924882533749341721586726955959952307127283130381558695963885716342109763327617164884810343540628266549333664184055443751018864081266886812701589049370311774044000870346591335123355410157461621201672806929367643405297357976900603593364210941481864725001323826923306423494042214113885063246375725997416104290869527414881083365223304896384077996108682054882734035370043035885437536638787559021604840424914042023480657874323816653646590136876724042678740701158846192387257923953731099708916738259344040073935027929298129575779877471492678778370266277484655608130469481897318971278893320675585390139808735425867059073935308163161572409456203362628352100098430759365662474682570014902787349229104527610292463391161100332983042614495448727216651282249092923987485149079056229399269677968672803542259327343434949943172950971547016251912365098693204049643502487214868637168181079064665363710606913163878794847357118203448865907934346374851350827966533511336050558928724139636618857821793081566893723274935947561775824269609241418485093033601359873129757389353945428080925435004458876565460764671467634921040577967902924400368391955214493458216719743824406242092491884644595982614681492509973903992676738414025326720507364196989503789804962712008368802154063139413210396626588911864203166960398184052860793172505339436163636426415515682379029157603915138652207813748580469938705579292374106012664355348338695156823940659277345791700328673928547043513018538953128069635570082419519410386855188528029868728188620007171970239554143182813354331105204705615032093544397639103914326626600965804244304898231740069213139916638013693327938509615377014845952752347204269170572832757604506005136187025988683715562335552840928424299095162275751306818636554852797745126381966491517119902042740567830037025926700750872078988677397242743105114936665751046887716815305473845888444587373600723764898020688382711077745906363562499343489135359170331689806708122049384707920066237329746135553116239587848070274043306392880194109634972952806343950352925939153810553032039567639811693417865078282349753827796020569976795240151394780203173517664668108521666012297444165994633069654473754696663847390577086495884806466367028259909295235849432009946222287642444973039759046271540455922397912893333245765478697519731466818022550237439823934407269087220739116605060124278959612005231834887266373847202292781691401268866758504711459710416715761693790753522635211184517374295638866017845037414596129671790032383999026281245154275176377954262605113348253682891116659076686768577779491984020241722304715188298575594432969777351043289254941316632069765785752556507920910910137714417855784328839441719883266316036616582186947223240267144271995984358021070993508777657946694573823155294844517258980883407891252659824925710867482872635964763942447725965284680933097724397751309232920510368944296622474239833344353471925116433071143446098227092697505349315785177488073278158501430049928051539314551928974642097834944539832045150827729724667993926349784541297124989177717493834514459750839753477070053675137000395481810229788116251186176040855436781099532775931985914584996821986242552027167975430730948564008008683593887412053234573311502004738932536836727699791607728923826545176650669282719409256787930119694529843380889706880959957389438262929080451747026473439543983410410062838607152701174406230800925352868791568317563262888033063739057572642483582827661685033919827889675289453938049514762307109889638135278604238635583468944965286932726321570649356255971092577484983629595832715892433114454222980218966128693921944780947072702670325763844510923657514209659606211928585219161084606397604752248816778416039927963646681264562224460452244161401580494880982739947866017697025125184348500685041463381338008552158456346377829358019192656066396191657473903995677357980281843238059161971873750092658952924958798174716728974654917381060718950801866859878153288547969077697718689974375199940927492548314481340574096015486281530745780231003520257039179967738554737064503001003247749378391055304156644265128091244635690211705293791300732224189822649195177742171507834766672441436870687541398366044044307570313456760573540480336212408817176664295408106498543063996184931429224202226945544411983147683104903428859032427588841976783724821577630259556535613383910498236377612614940129166140098946198890682181029619891678758767284312652030386797660816654450417595984453815734529821344066490668556088756656732526187733498827007142956027223967773979138159422193482907512556841572299304757808862879021605300472456365660222404805916613506771769506047059198110801993441804387745807603657822934765840642966191811010745490961153744972526681226972138389382459368029715280649664656848777835344282461544828081135597511236177080416655557127285476173673454768180303111367674224988134276622980934172971920804138317962243839194138508212753640460069694507479876611343664616237719481320972669740367475020945118207859946413747036729985516593140728263281352050314102699982592525134253893144288260595454809443344786865662261236997889364873767873184556547624832161068821966186953346780571988189334774401493783383366797905711119951551719625777433155721063562741152428110152332041059609259298662764734195495270658276314893650948639788300474327788265339529989792432920061126935957898681978937253329681325887967447335661396348031514891002487283134735499272530346615080740673330648419518859565971406775654184411519513786438548588238629001851180328327704555931242224535502029139138576265768282665265183541817143001894028315127836381124809590241294767196772143600586390583708505335482035211411220274324543279711695209986441783076600434890843658977389310350001999787912840756965970722501444108229286112702537986179695084177040468338400666894320202889535439947916716015427960499601276839518567881492633703546112711310063227117140850153598966475431698215800127820343242894447362964215181058095504898756886170919865544793658595835498476165219220615465478292737144028785946933343516408383504871696654588601097200541488787019556396882208366278830535242808698571457516212292520123556971247003610617873786350952828071271415611230926498147770540193631894874414559972599765244590989376075548004360572567828839370747061743050248480792276210877145395411164190166011720217827740556754068907424867311458146074034579824640073339590506971696006394144809315493063797598063809821781444423854859113141362887734187491338884477946727947508748728459794923609692972553479994093646870029854872903655223013093399145083461867779746237612546819391940295484341358585086797467769322148219107767994438829418570609590990459283033864443304086894260690446745032126944700811366768396930364424565129364963751057988696421192028796341375876790056870427106200967729134455694062378256449396907008286625925387631094358403325234319498745124548003055782213471341637651208433652744988012148426247918338082815881850553560288569309518758869106891665573055443911450495617698707219662742615220807712204914353449951933130970541131520908999154868385365675864153851774215131646797684504275609609894565319034750775967550874539669985232813344294272320258512180861111898983575949648586953979831973336270311925446138731188039217017586992578208832481013093819802417132762614120500757630539189674414753892979259216805260938521971671867323146131867992536654303716422223980453822951932655262775576686388333485196046197433379352218705570531180238354571879853254846871442683800233925821520973275757293628938057979023362109672898683144846887392823106064225517096711369164370114208830494105220424883004767800116630681493203411137336012787198283327327332790758768478776570913949654457217301447232267278619725177197584309203275472050666677040451571966482867124691304451428036832264287183763193530569023089425973835839616964866594257292785484484975326563874755479276306632240900637474080255908354544070162064956288828302566474904132446870858500253288281471200331118397615405584767281120685060131364222610454558715351956217447935464592904079173970767972110608372119432130545563357182268812362139785359339658801440635875357341840646924744099904333311712997879142722418281535957760014234342889842544656763689748066809950079931140651355757237883173060040873653417127595817657260210496528426075950265268976367555075263732453853550538740654148086349539317064595582699760559381331820631706386252951257736465779937339087174294993888653206137174195612423069107955425513082053197959271568436882707903206343759970861860720049916117547223960793893910254248746227420614380338365278264250213303527174758266990883857983851846125192154362946826193805727645147603048654696800872118340921552551815770557526891942385263255151030618287241683796724901361943328178138796815192271664965797484122230968708292361795119420229282544363631151928709657980202454229227424041697757271638990868029778306078146654769042575515465829363794364941808582424108889034001463082017008504521886751079925015590319942785238392351615144806146745763271844388029388745183860280463354336850255806588753555329734874632353305460450185881047653534516129890021248882264294615516805380639301976672864663775080339002943881609325657670465874307428626849329499597581816301193780481431603647773166574159812924514933299654905889085306258915278760817698323810685459678338417388189742819802672570249574921807349224130632753738746623289138091466331792098281744911121041326256418414816260747625049360543030076194273598894587057559919633472442118922618123451565174149245003826409946247076191710177552480137600786587071551154541957859544306329934634595246867208512365836406274867679828830850956975465594331446608077087594039630631978314582956863688033783189718881094822482616690877863922427755303189780329693101602132786501407287411709202111583498814676930277313773684030450637155452311197785631004014390519160181210505166300774947158153103504817970900687195262675396529039581107283761608407411916015846251982354549456714388907024392596469681114091186560362533842002459515913993264873272005253425009620715954599143940767824196634672512110042316858501976854093723550424163392046728706248821179415173931021324152631706945567978212284212338552423099787908075934325035834673055775596492742827675966160937435810735570323354171682068467175356007018636965533488335322291873422950387164039080714290597990078633763054847438679311255902077143050606778644182223907260653936839364321431374256152519762245287165442123915326566845191859693482856805045805269983020079860808119007008585129471514352503690335294229647736633099657557210162982723766242994421983142063396457049729127590908793297918091307248269306651524687373254345567999936675223362730317723428707756531022445216301209106449325513226871211220126479736580659997694140946813897911011959897390341204985154739581207534344338884142982655195480902596161161789341970570013438300902842099185914105952467824319636215716970431396071016427677520721714752729272992094804036155824092685420304717391880346464278082500830961983427813400865444397735905034818326538166132079708031702799997811963602213071247918707018790331912519846799129878918682899302478758983732703121785955671497143788042225848299089615838492032059343376628342957465414300635055065706509760948229247083652694025624033579640007734696841867125676038819137302243052309334058298639092094968065467349739659892688616049507724072240263572160351799116139979712147143135051793987365767552266835345232166535796548015597501878160756212666067110167310075630688598706539009214755432212959910689188059016212675032662654696098008437395085830520887208298054721818454292193798101347028836282749770579283763781200614842226290323894551241106144502008861055437396748764461175699768656683441264545827134270161074508471704303906473559846359855826643098115481643568111491781921743647357698620346985116146834314854991664020122637946449406269138560406605659713762292794061215799432739638207195720796912728518350248510462914382951729818562950508317920141352318328380556597103614924180600040981506150972175423600815030624616398583424116790412470101147814507835470735614784883204728883291174090100754656341647345715064116621691025753163214661340338681075689426099848205688129165927988441948775217864496997995212815482699179521919007818473511324446341477140444694220698605766509158167738665786666947812919241423797264950312262898745370647078474870644953282414028474591319956295087325235841152805499922716335966038238967268988416565876379600799579668324746143336529247800013864804278417728279326690889170140635976377447356208075318573308745074752253782277561412622442754108069231312364004393344344977956742886109160746295243117458411941384619959547251188452880430245409856476823255323707472673516549457816898581505667413081488854984948659373024282724057305796576886253487796796961176752255398865427692609755611746204926099708770650605002425146902425550191098814730747467870237849913198780505619163076346808636730131227758942390306137164541855148582465850922759521433463996454891522382519535149350406490867015695821511235915297782291133189405812358161749360923746609750693412743052779393773743559812903262194406588652108095340005486822851921685834786955650883212770291860773325286250451008759175902744373517577891603312085672329537687762764827260160620160192748583106822434501333335438091345018835733159082794003645612954743711211258586894783779625183050198890334572218759151037850736400569688589918516530390528040071566938787442161080837889899426507322686792418874878696037923542335301889222005136208470553907771431474642374480926816318677066916933628446929775462728006413178804362065813131289911383111904797334467858586366911277892988867685663545269471764556016484345127144960090371399142449991300841158527137833312955290375478041119668634369301375223221733549831317273767365600726523536700535673340638453111008514316458922254639917967511796376414233092366617827601218349299920001669947275649260258625157786520326388325290873311784422962026767979656148746058023491164391003260097016604332624255165994709519641319772947961888065398779374158561507692138230599479012642470036961917270518657299570753969062477728370486758754231056047690039548862372011979313591691080063417194736251303496979006287378589260284046322792349213169443364101291600402765178051890549711073949402668343670526689297900043217472351281751819426149553817976096468321390004640890228658591524464268572393902383274629990959095119254499989245718611464895089164539356806426438435025406469498415765389056938518639416650225891815296099154320510984599999149922415997799015593056521279982990468816556293294827770421782935184828448441490079342844397025484801644144438465543348791891829700416722414844622213157106849928884973758660534066642708074310347774248144939680817843850660219630311236012471266632716392033476904150779380628874558805466185925727383263743686556764617660342361360701284677527808133820605171597738841166515295899510829102115920979425080950575988104454086188955392798202287663790254058552854003117163568208001014754075330688391627312511382499269533544751888378995235480813680000493455187952136524972838234698559091370482861953954909976884914636366698398386723832938803974048621845504587139413219003312005820148543646976448376265829283262141594778811056190049109664665909998564492652873597859522278611481304459685154259933024222594732383162975994441789193025021235994871156353369418467664342739330115015355665749372595553982243188491315069161737554695964369910336608204620417252884655360846179578408969751073421988536032833339888682006278397313330581111949002671376824354144594399324646574927977758983199489799025989035786199963642910766354068463154559550729664027566307065775515072200168360497804644200199269687651913803744182451578553598853792450050510491743447490045343226776304913087234109918039983085080425064118253977650672087013297830644814423374835636281253718323150489841196551332619636905506278055579481338291329433828489510587729229590258560235644501730307656573794064769393946607006462117180872838212313800892692910864510044538374169794130047780826456312269157286841436030939267446336751200675053399876828527642733837831797588569218336155542240775712162198592757020615765638272298764788559105818785074685440012548873314022844817310304899915381218630115654439058530029817110422545013037103345637568706862793842952514677163374955398773672258631874768238518846151672514186708841978899610286862933761993601759076160545761137403886604754737915313368406406589989439057258772664769865097935313852875387090718378675683973234640850810772722822996847250874848980709595639395705923554284981657129217712271592843191427448633701721365944283531447632234828321209261600658758454865753200965436787474229127983320928780387185276699714445030716728647950410525319488265278648123738468560484006508147115460580869418738361441615888649800608189949948900738435403776883136859334622951695728855183137601975793898903082447577545397379013813919496034541868386491201161208267910306487768957917644701408716032603388609024237509681695360806141079903027544307570637670267005564617244545480523527025213293753851805662545619412162006397337716952036234003795103702805799974667625074026881830870677559454899098199002656589612127449126637035464269902406406798479864968328472956713298390274939964818481812536262974767554234498448514922622675577074042677612001763968787749433017415321061822977828355624134154609545963111866876323150608151497213005499091490561488272260076660038807660713577250210136697562743049044090579379343471943914967609129704298521375820918297726155140248147739929113805954801741370675678143594002072629178927696142415704545089056660174270289366766681721470809735602356683783071945757616823796669418669770735366654804725804193202309412505647519670554114356141907696555215838799219403879042562230439461605869194669411926561790246515551917489217757011881941197874516799602272736384287699580373184458296154944656461984549276064187660490195267441356997764681387863905709892412302609532252371215358209137896416816188512347903376587846233409177516564830398302217750246554458668227479388280747491311748909012791777176217292652895769534905428866018988920873589813592267895263822932231508273464939191986698718431059782869957642533984944911557735386483084291719166260037907203673968666917364023290136005064934554646872708860192688186400099792355952423603024057122638161914945914193287172754163074417338972555346465317258930288034073803514485818723597970041941054006158133294042021669356359395488748144801768040962278786598252755815757119882058435494020403917079420421803689627197526581998874775679357801791510029806374086916016708544786461933823711790227357661549331888296733336089784970139258779888321476407678968461575418475934767902712337552867688814033971936139330805160930972401060236921287295917432392202113424041028122559448815707023697984009087971698150138572293014663380425458732136613422068219206393021063795031677654838198518566768328216080835867488495004339484514483903173835341668200228986633879022120627291815596495454320705274098145834360421630241519981021149811009629211696300704075873053763414430104259951646778011950512319152302022326293120944247732758341266522953220855978519708176401800317371101592270001458142507387198516222458371621961408111609697832330775946766050549428416893698625092776743505908494084296711010598244903353704508200633072598990595671455168915094499957735779918855970219318982030906911209669495446655268495214835992928793547149523997922312457581333129898788192846466454376921984082489506374485331048061961234374941997823799800656174016250004586933264839003754580028031084236116407592687979373505657816406282477909265587725591429659905492748069759266813741868603515863868943507179790135148863502738578832944742365160857983957557399333041790898114776533654868387952803993220797579008653395561406913234515063611566998480706001879221774900885689589033993492141522994092523447552492196448183426349195518369721163533429626454644222411191106057740502214168708077363165343772970504102873183169846443444691346691775915039011247726628445403136120539269648523854021228977335301222971055054209292717580853284518811577024535932588087253408728902024920852199801299390049418197213869536593379268145358027349776609542234116353457513292275194672395565209797279742531482418801018555613026651189151480292331122587014207823559328254209052390994077212209787385108170722462673207209953304376150379051786006976578717039976175614216958677574208862095587652138128987290425760559460992583392407973189131779417941595984007815271854830708863233210489082473241540069853636653333224133742525437637950858715424228058432169550061042881488892493578352438159986592132350805489393321840555257855936822986572911283033340196377576669490080191128276793997619907577618954531013973352040057841114712378972479611948332521487642064490894184610122663088612067839797199668004956881161474037240786415249746523792571612350042935296606380611977961240210320563870469503494711364809314407931413443192751373690369103685757758284732430483210258138028883545484418132096135813397480059459085219935314848680730620444552796877321158704324691915442702864136523215882268442415811440059774343081289535120234560475885367026076673018909102346579811673585883887519980359191633293310522715400902898331447649020632497778955532059070765952690405845838551196016778431263830716530282009736657027790087919096024175745617154164583971721620886786777666164508938061389518314442307731230882504499643113884947208673530589030024773827193075418764919169523604605679892776604511726684530570619462319678846606182204960437627242149337635330791837609921303932063444621010714918066135856193750776698137597737421650808047509217837241796847753203390203797561009047237644552307090482929016086934636518913824219652885202433223151841948236758460768161167658169201364518507962704123572897746210809305926907523881796536540870358471510463238071200482864235896834270727241600818498417073823085253453549891472433039568041081818244049785802370622277852498590998682367585958478585727903124442068394172589394541046729523214145596317446063328528835173027239997656407690108295093001246273995340333701380225450941604881429613487497719651118717051142665478462912205546793279753482694044213429596058806697256284347667905255937241990647546231559247512236773338184780943635833993190909690883829222705519175698606969066664478029606174815751252990573434054928464586515127811850669632080310182656260621766366298379396070179405084704363689857261309376379721829002699521824717559719924133103882715666384503656159782044995734170205500083031976240273842389379850918343295694969868845638689248228256825781741242731534785286169980492295908754063910830197085515128465634723985517585121530324462918736951883743966570900890330925197156775699396882566093096922274463045196883318440577190460677330176574739324867853984504612657958190028888178103180932933858081767086559934407034928894078423796277455658560352234371491868388235093196357744239013388672014087956294459783702451977107863701093307306715170540145824514530615546094034612967779979112617546606497523544846593987456335764743475557858980168639531681122969096087842685877062770763024339606729663193813743074596408513743946776840678506722400184353483015101188138557509695184990235268604354289695932953241283197890809198240318745341731191151900642815957919037318227182087222589707040254279476853981475938728189617922441019034081881539666645929732199299835794521098674148779535192392619413954608593107380271741595330769814846348288522572530545481696310662962670444521990439426811024819155123456185230940417318407580710788875793666123110141209986614304876084910744562910674916470551638269137399083988235458755075100215308372362821310644881694517616371285901849872389332527746797915004012105236095333079561213077889811649773356128428579692540421911942700581590256347760844457250503036106671547062173497094434178565842817096330675438174465848523041952737830447975371678215078093906594529718904823653211731779915548479981782312851763541039780836509452142821522720219269239265104312694961592028724569800948189674734810081506147504032152710297671019718954788198610484649391601330931061942645518320004647143610328234677777388671971583906981412896304376274755442188675224281527898567414410044063797028986586400319377832969290792023975002859390640038447162008897285610794678006230739377227877602163792302867060160353154430726477816910749300444180399182838567871577114177707456527745708577757600231862648908034773651803399337772348632771329643100970942128958423501192155572612608584508282710444374263475507750976666017486838355510892675930523390999610779840410234811204662520950831344189080853461597098163060586385080706283333757510473908438693899817609157047016430227241857260066436880018723664183326260180085550718043495130812708686650041334551040778773303683355586484830244652869258417000220411915514428931914479649522281041263816818609820035701669429051329278019828327742310624982587160793736103189682274668738979441285989323608355528869991644219861112143568219526105445809746297151541749941680265455260727739151249264933866612524722035753819458312774724497320709181674025949383449594570734818096498364349446540997022663387317719739517987719328977205917080740918772986066227708979149751196002208485767788504981994583166461686646475378768996540597246010732604144216093667478079596097055257555225525452751136126257942912874400448693195739356792579368900519854484260108186912613552914319622710982382068849074196964935925025507039970181633572460563260419673211093968849649164328839735819071577872334765399601727533197317823647752577192793047030113844471668402481067677281991945749780921681475599445784589846974653339534238580039391701181378421866324638214433412054218788465929695040198365775386111128411229336753925037798178913330958591619877172948338010618460856325864701272540105196850132510066090153592181554932491051344285232960788630436053843359190516775394102395254895656505104288172960974277303369587832131124882476157235198279281750833391255541469366449475392710235126762507618544509996234345662277800642559830273105569972426380072501131716728998946935713258347849158938632000288476205319862278158736053500238774288032761154785990732942263942365945393797276912259557113951943953249587770443696606793259990178131287808559478738361318576559838197742119915205864436726780833488372510760466142512537606807230556995489623456852241368111928272356648030595059911593562298596961000505298032951927204525178196601144270905567962801308288055685974387426214042665410033096568635704660805853870596235065997442511823405486822411592176467200897266001035542221034135042987957826024531252859990202955742549122170975823477247961449353714855838077488945897607132942256080900166279201011168414279564002190221585191687435158785339745114190389308070204948097218066147237988864269897199560425265375105485180061940225202211635870135937286973802960029890965523440965292530215744366477501154517196010068708173216439633068222611000916487433244118224663541355883175633441412698323675601584352075570414016956593986863491449393342334774264604002324921512535989415356394523652192164409933316344428968563911498275973079349415392525153947636151829541513197069737800676788587430504522922137612615736409006645461615815362761752446460303102061408236685291392478769959201166328825977753677343869201321522715834549284923023828189017194712629378433672715389257272471845015128483955616700330850231982966515925618999453041499714379523010924031692420970109108895714037758182263296650194279271929034500117096000561741747606341094038131920605772009434062365216544286787493342986563390824944138120301025259872550180522968967626321542228734243283131468625417396035658036655701670423719132362843904650293440381556265847987609502701373811070465712948480695111019460962873989600331210496173817405627109795651571085720328084819156012595090594024587201792676744887914438161864662524136784964826167167072036072731445560001442301589037016058468154573024441122115390215122056795530764206191874046843605784724316929875883726563293806967557982894344874548464821361959397712788260648710367199851494186741447417900016632558339041123028962096737480914987744861209088959225112754831020560362817838823078725452044904697187753931850515242597089704281266253860901990412535695206479418336582846715310146490833556915469863038829255462006307494228669604828537348082555593943007230450810846293988142138349399082974305341561440289416133107733302949994235783757114864753173022396789310254950964025686039571659738596604428996334444123238422347552047681130521703026263364837042187203607155591317433726091237863669355568180328436160777612239800611089206021800124838181961906485018192776721563526515435874517739496443585606952398835101451700867974973201444424747567371899283927619543620431562064356092173002407353633984971803991821096678561808957973562185025628416435838527480524503968442212913530141109444952745815662010154260090530148950064347480207772341216804634522368226169818801250290883744932335242223598821564574855438722345005247290148738461310265183509502149542811123743292019867899927113091283883264197143083513278819048889913906389589223543497505259714156032975305733089533358806594878575660820165905260730536787676054160642979411655246616377917696895090455004393806676440700414215143629323410637409641103207147212617283699949236895237411293651518225919211859747476667335896020465272739827513465231329703781624437213956259076685319933271968126696766214328802105024557828848983173016170066994607303717313799208073441107534687463758780568833291423492691167136523855805083516205422947945505866207720288835995831813427310641280012089407855235787025010772619196155547680128522952620660364288717630254132193930589689510674981448197415161030588066783153102682848634569279453546060325090864525514054221814104745106653599824927335530913099781138970945746527455347985465637022804102008841466122967029515256881297779034421751645899517775444537845918353301870577499113562608157445618795891142206428495358598720364304779437641498617651216476458617323505440203351322119326317580588800802929039502052818473037865073476401571955938999920797064457991210891197430408382341204159165360872873121482625125097185200069835820168853851193853117757536717042482460046432611430925103548154841135945086793100322108025502785510108262754118357932262953030384552427591616852364209060933353963490761586402254656299900463709210881697317339550606359971172554949050236075547003975942434993406317465141957219745720467941781516903139425913518970427088733114277105583807159446557356640740645755680600827099598218036859273159354376851753924895437729870407993105994709591962004594031247218523788840292695714348089485400657974855419782684069510545474675402515203260119604976433115510192052090208053324617199017388903158090637641075226109016315008258703713589286764266511035433549785246720532088439883044165614590947445058158836397354038599307469987287074216977514487270935149633108758741039229794489962372494210564912782032294974802002742705188417721217200487647111238784542349931063537554863714345014765960313281561366189029555866799688755640414344600095950015807630806856930773812043203888840077274263015212106503177769642727338155009206505895767264734720876913233566142651409921505820331594729195730778494996397187355582743899676268619782311083995047774263039070386454296046841862419380614967019579206234111670299500478642125636221693895780429373304224265655764126044900899806506213322329078990773341594500475808635515999890863788214376451498749100052086621078573212891412727035812167740417656804262892970913637841440624778501129878495649705966204527948308534259027565834565037189506394439061502974541790785787940004935911069518874877124017888199780885651758921319185658209932281649186286716394987183556023886868036513720900425743094929365509771671781302342511200775418329275670239945869609796703924548848912750699640644827698016230078783529048428075664866498569952781865227477112814169312137560991500242171200420747111251597330878990652710029301100011135188880438806317910716435760482203122875565214284594908126164628940040292435202164495305027695175550300592133976639204770792084533342965832972380279423135831482973004224023352481466713134361352478870723239456417879545184281251802398755619833574080901276728508519101360881624475259776859973408242303316798781633441470900206464964882466566848758795254054065866803164876927303303888921667770935578380605177854051899381328269412660174769538040434190575692305212565894826053087938826208301931503863149949957590123627614646857532098242851154770322876708925174466904584724066943899698291475637889116206114610501804099059129650718466726803563965237474934422292638193901238005371918516585283531284548570321537845441604544607399982107406329129657552047622547753625657484155294095016496881921250594062783676961378334675726139085376216110989344243360396000540906895926188771548735983943943564788938302546902197333494341774860713239752721355231223139702192186499244389725362255914553240209618052529192303838566036754272696958651265342644387707494993067762664290858647164477668091121577789977415796548113665951094522471105030392046797661032559022630393614823321012280627067260494006690790671332619307037918948660086065347185881115455480906385901143905486776801821444679636451172143627386747711863485837190830321946252349065954651423656416917385581010956242929613405799359955038163221784290114299252635031079233673651691397594210599587595828447791999288675347586178228060511440083017100854502277284487608726402091054763878455041805550788176822958867304771980056185687527414995740601940139879666161987307494208404484334695790376959419293162638264781123955486039668151340941592350472133414277896694900768261439640282314334477295583056268800926749357852284895762710480286419036084071325200471239293463384170791546510792661367349533446960412827357179804865629568547838373282152176769341287578279511800572143614597537023676562885453450251107275111938977889369485652469372665310260882925501953413861068788966262412563427473382026828530422037997780777879650042878679421192906398098858373526607425140297839065937319607058138444186547083518917990667798769031823438598910471248839615845921129175774053047770348615210212226402359265956382499097453446004162156372245212858730284363495406534035703711330039628876154197831694388262204718077050670951030349832213204257459530182481272307872355700306814182787561360736348231077722428378484573982055134894022962832092342618417515244504395388860814141946882450245134546403879337713213010942796439659763640144904599384906865902187726832267702883457180830988076105770000070676346298375632534510376201344568102331382854517059768404999702880667058627650284394683964930079358963249097937903023933478828408040227304630147280441663142002162616525677545995320385900325451445659958608997600789669775773294641501379288916127928364789800301830886409098091356040670698125344819280695785454412687109827505596643667864117406658962644116554406850133692973013269705676289600100979330465893803814639649810503097135376822806786191722206501786519578982345676562263260081438352364742698831350935900084511310413282644353978786415925176094782941071538519247778255949390655947757622327543578666366616958123181789004387216041657554427131594323723417835703009499361522104172394885864629903527062395053411332552534164056498592345047188680945458827504718500086252254402610601404241455602255118013426243650059173558611178528072743550287381127382823504673157198651800564094783699804695857469267772984761028735780613502578800784585087137464331262171381326866492852283211946456192300472510675945969304945957623950023964438375798711431602098919255357108754370412412038021693036507634500744683704450271832018134031062346171327332151289727368232784343286976065455513837051765076232287245368386427629485891973569270777515338707398284328687181906507794626397811806719618532388110728165945770413256195083969944131282753280750612118814366657651138556802245267360102337341811304677866618200482083951330150372483281507146272433949466785901820976050039904387559279915997396794257796532366172443844815298625263496485031122245038776878514660032839714966964593045604928162282774881343804745464671316990022557568794782824212345756930050034190155539833907763158755987961305926772837700330688405881172473932523673172189308759495654954560874272648688567669163648020330681077486294670559225482378664441851235373858683519523556261645538255058946035274209982221027990162500572596862414663359668061151337576472813331200361708621951117484710112101705635934557347595827644109911170298838650241884167252778121698267514017583857768374286137387060422335671397399316368052754503024909074033172346837535212160840554980547505300633123827797542391772952913259331243224281795951849596051116231421660776556821395994303738896737287006624207879292770162241733932778252805605295604626202158126811540846919043771815260844418180560935853645747742305086822444079637554744838827365955620165304589613593334387127068950137070864659817413361052491631542739083129811374503657164344835997434110353072222865665817805868397947900828003367629322928518127861732128080820167719009199715892026810800989423164302326982018516410452243447558110538437125666874211570010818565116347013600810351404662270708859474032040171305813751354729325356705958186725971438979053730249377878149527283566611643658755197929111311686361931413674201043844090201955248039603615100687218204946145004856990832655165411029808006676455684038151970118783349172569398398474860483411538946315526204292560667850777273865453915333700612789237602716737879741571429057466629590589899764035173604659795473402681083198526290003051569894516990124492452226852398173314313247346620761964668821384218386412290514947276937178043580967557641228696471257165063085422135262227396826323600588323319221063956155961482829860454457256929101475432693917939568355399683708504340596351718469323398609980161315181965742020276455277324725339513159258109799193197139776075721455114048520734125203140500016156691807601222099803365813786235779265426671053873482160254956402006157754568322107734087122214099184433954427114369515984167226266958444501303461023634417846997360451215492330433223155027835763439684874975162889764966044778979305696398592038016352783320821017958229122698867335976807859464043399937621155451314624652508732952301399280627096421966027758828078443305991211929886918002413569635119505533932827810874080489424501425808296759929093107614777482142466983491190968513974959641289792730914598768430585667228810273846946923320366030424165161296512518588922815541863701409980279710217815433402135607504095533272798063210156186642014826121025967788106395998316296895926657453728882801224864498465061736253709341036421565725184471221752519520754542253240638796199089972128173359512412265426631329184893356033623266046926967667234151715924831058192714749783723726552876033649780845042175087292768332410201990572009904597038449735153686220929971626855107339548386065000107031975019106805191937957354807048152188362829232891908204906520024054473537174455963292830672492854587703924753508551917132969659287977711751466889499527771603956758087322756411277115845088783767499945724243049263684582195163892787633845166042321048207387790699238957280344464294580296033205060333662145958930231538187122211125948069448946677916995998286208572310749869970509089645608989894658139781743166263209637150825846069275291332006630890942974423835544862443630570210879169228812918388251544903524906311480003592205915323992032980016547969765358051057610510882663220302838013155524106527621992682069557834908838342016509995038902958553448259156221731464294010117302668660925238487582878295542378568452358163921457936401686583601753633862292282597636698656063266136807775971196363634611729399312300265358736858365118931615838052442319240448293907847308420650012390134772833351571167673534013622053926693947142316540900755538205379339617024563491466026495547132888843081993059051337838109805767344645934454320190576122158077279645968100647412267856511992867724566010149839108696217521641634032038676750203538669019452574052862510773607793274140516901231690146741351626150033560169896558603503824194599604602529276953982949472781834339844735537038023054967977797672875575375955408589222298240406415961524445988218806565980611479551098640160889608766800249721688216881473691813660343977933088612435703318503003208393534576790922191719908331576155910417578573558012607606345647597830766547143908129994012587316350721324788891791730830083989740934968241756090621050041539418143930594268836408757787094978288121416091709676725655142670018121022782890909129609332750414125698178803418568024121284278575669881236284242582932866331856573617251624240681619256768106221933539389979857092884208852164195508616257337971959095573651177600724545346902442395752809799103312138943434223061679189917979071534100273381010499684084366614315704970550643776562823253225039818109055738285241939666533021102465018991610695831239062548383647406074652164377396712229153289637197025679668505673913515097015423050715019293600609878390844946021801040391566686872510597912091508678382744667184956098080014361367417797071219319682000309245143358485675779665741760777269399272892867610298906054236975182869158129230353326863795507508408951927006551814531892823024576312734015729700006604916401256240082980828386422973513167956749039211916314014102586285986109208624705117845225962854979782016205071937055645675167859112589903325295684098337014549757954417984624801000468297375107452456786309087590519795099539067784117379297940186490717858026693918992436806909810828790100691776296271825712503430007248566610039100965762559367010691671089728929154151873205814054114241943741138600309708398232941390647250369160665386433270237453717072369190528498974876400576133127805158990169587981650650059367622166293928083209742858772686833562892616934067199747159326016790480375578078017197446128092211826870935997561189747858470264771690626343686686440593444192110110102340898738421518918889560736144873681516430054421565715626618718939749504590124242359068496948961635074533575244592017077266432049930802918710706915620408538476477806673103173091952558589823382105757044005778090155595816618438403690186678301358172453739248815574341275864520242027764161618425486981910326063474029418304579279514874590312627917008023099941320862806111032535264511150754010603554520979264445053171055936280499751265256751780623949330314427337763977229458602484719368990833670913099266897253784686444123883373484518657408920747109967566963421576058836480351319959763214694742597061319687725034764400306184441300816263782316524482119368700350120231313862090357183372349356167427341204428335045006593713124588789827556651506271508528788115834491140974708832659764687268778985155352356651152676811485196672921140298051483506889814327341892068379284905412022284864605990452978521936129195480285171885658576143684858997825209644229488265691274987217144872404069576877510331531074100862206335924828403820015033314617519900243775993887645676040861322993945500344368609964261048487324186204407489220159465476741164503199623228812863072854325298273891729997557454294145641689650032004960346745933058779696086246182643353825921005287791236712000071957117175654339412992858358039447097121536650731321884715226628050158676034302323817726303471524668371228983405195283149919553515115645447226801280071084105654831774160562076927297016091826314302909840655816012732188580236270739678580320980690470059164597612483307555799491950928467173711636396376450920160150075191293445778682771855147593133288307823270675243449866783655317467262425963982614719953202827419542147307998751482613557155465326313127514774496082784586957961113633840305635606646870525973099706967780390494391842803785787096950354734876614816369673264047868855194753331519732162604028404914878124178572432101219054068871656738545432370275956802945649250649014361864272359099234535816961028756679577871295435838467773283962417325177540149284008838493267896621006483915412660813358015335826662526230482338184433833969270650331979081701780325549451048997716493208173102527594369066384007215605811187054276979065413139303684710205705438513114328689571445315730307229358772986445160738152965415847748386631121639675832129010751894828863494037587136254661141264005734663096082670457227871482601617817371907487243630025052965500133661131890243604015901039936740511735516011682939074742183074512459128683264712186390385791850720265377895261111034857938876370696230960000939238203170545409188572446877330958758488499934271421830414521512079769270835317037457544763758102769350026281006022605620750267849959897016661699907434085502751235283576619255316420811978219295148547904658701791408123183072673817995673227169548228342833345177078898261473823387057741748049400795146671121640724686777828244062184209419703297623072665119159893027623877040749616944691303150922404529999906000120372904946680822484773030738113682860736688271138497832844016809629978664251103558294061387421687861406058853432120555330161381652957512116274692612592347174956359215209832209002943152557391772845738926644585642764455285177939783998126890326746900002678367669322140624041446068214198897246476845715478784946185659487207282661422173998637521850297579707852805995996319626238090582308138848024476975192749371023980045077663484233017419161364038478010539955021869560363282407269761777634113834460828585432853576240027992912602365265982316474795235843348785240801836291492818016545734604747182057355088228077268364176713467470595673279910571754618507846227674023781372938950351729884003317838719322650922430269816466399859609783720893862208416727813883183995547305373613844354888194720045922784836382062609071646335373398106079501760102022611052682364064077656659258600413108300007619219360365797539966612850156485450424776299357934711100099872299647769218205038378378231268897793347718204321713949135939711809646653258951623260698804628289680392638326628746195310181674260869910565305007182296743199673215159376817893851698369668674937551100425020447750584135535427341961946623721911247255369160643249632764674492530139916168635489188252178736002157546985026457806061750786962609234389738266759828847640295238611235612431993138620914085447466984818954469124625132861694357215221016958334925694489370941123157174102922360452793671139437795398914327922314365659768345672703737294439627933709291301925368487527568050034030356759671652201656534714802713081037503074573599871950112166663493266316703610280720363556140451932580486699663318242277507293119923718930713027104676888322693779490275984206504774090856985102698126201749054076395788234258769579509323524781609208007075509603761044689273102010622727261102895750697885141512267836324698436417344624991376603875964818647363988444374767215991412694906964278234945694562330772687234333650010287305303485081455052556739070970212264608896596879036078824038768041344464341900049187501180651412241161218096475529630715050302746631838149204575677221159250335252313979555397916754336062315039558799302646095512741414369183144232018395714365222834240190005629495567828458527334066010741073230877039357275205197510884925847457661974198321579029933214436270297931245873090261975118195397677325349879053249377664075421031936683630426534554292542307653503092810281669450773885697394112301017597905101341736494554097680745630334693772906034729428410552104240937393031410959635805251481845141451510185529409869922299300246172389831379960502613471215957782412576475066478186176443704002880863752254916330702554556025043996112006067591433369392022740672525858780148889015435750722267915680889336775585194393271802114869198861099671715991468098139129030672764648578234353417476682797758576756618614618199072925620833869033118061234260946240735043174642085298320041228637896011904418210057626123797262605833977272827135899129085127269810256140952132727744542055886083054910235802579119601810091150461469723080884031612379324458950760874292840755118075790440038292008864240469254053295382028150802285345839177217507929200210837541343170411776901398176493860012074015764858983275443339985971100330945118138093275693991946415975715028011093131415021735670886115228626824217525914006575449416216992739526708606334786706862371819793549788358814189518955831205369569406587761044468906125683912036502540613289210701848088104829942432606624997851086509101852079821652220558017768994822161773897621810065382386786097986738288218190959562152909624236081677561650441002589795364938932072633280299248345973313422880394932184027718968251126555054068052762058442069776974435131334625358670854275584148810266397777415460065496208448854342476309466222226094179594972623027298551188597235030399286347476181830631132786000193559778267279192278102205628469166567818463905385773557236419025542397739817528668596289328812485009694493247183680447943601909697724693196763780767104615625597907769827447218521830016258646522387160283636938203956729125063933768418391243620953650495572399941612977295022183716776325666315676412118850278416960208758900651200840759986591227503427077635001716191468805310660782436858408659263371210135167225389924379931255647622593387262752675025588308813024304170076107078858218661124000262488447446936166065046576264556842283303406761624669140494493629786579067229971261150782397055288895944148980112567500300806827081637125441536986446331375726185947335618231748519232766222269197870937242026061460596420630209090630474624546323239172832561584673551846113064524817382974155492927396651196875866327520731785921262088621451011676053381442603153522392182671078474456714713407201019916286709074930148933860242493810069924060988834635999964990910764471988324951629381528585477936137619277361158469051471010900832821331195534182447671357820523252517390915530233336230321534012576471715484482343052649370138315997163128974132249616083863473025900835390127189782850542070817599817197839027167040777680159211269966786338414607563819694162658116586193880533072114555106154774136118747174643392937802938572555666133643550228830571515404605343096519288106234887020175712251821921221738067980675302610355946856685964375362883090627081517020153810462070787562312952937256952397141985697101457910990573685000720104510384728276967297772028588958217702362994261646095433214671547923307384283116640480705710818553996044126097161629759104163328203567845555667025999659321827644083776948320058442407561855522176334135891106073399672062650720569174741712466896280406744235798622829785681296916887728273830802732241901003068532519909358742946862440439670836415149142147814557881313731752444134610600627390851175908473681901889071750260575524582789689424897382095356531503021288382728693170259853752575777715654645109910914094384488058770511485391818567556407008713862739075853973017699633778124039845144166896470925291414506736878051998940857549656774492870577889547099389069989971716164533859346594166744393981459885221910881453574803850724087114901232463987707594208031147283494576743645702668419717029441978962038414027216534421021994326335817236638066080330431217108917663173086282131621819250667508881036279951845505275086195752283610173475759855866664039065846459903645492446010481463633794625061303027757727766955186420750055993765513881578542855465065626540794755952881565235272334293874118980565306717787267647704131665787603570716467240542353501279387372326579169156502964745968305342860291237343148829384818526279038191661768647569892870263146323056934813155590278512910326330216473967689125322684616557780455975432164780079219220441772238668437175523382004900341065395721735751994688889870159856896897135405639354757760142178374296273852836361854875450246940656986576849156124161729761074858857854360786137012567809454834840735953748934963872592063686111619073266091443125314433691873859249587486338410117786470329380372696376879625545292863126327531445554726606588767520265922470869983628723595230540930972976957266680282987079802344364827988891764207056886840810459288448478099605289575115847791128738336426247208719084024757618995342276125122418719297517571736714368751590183654257032057894701851918645477054910128907410358893148445386316650482368241330195490679464635625000824706212514971530212478817457880160712711242530113321611281061580663973241950332919063015337105249488527693525328762463526849561122450888759418888326576957158730980639793261375523848239102007799585246279440830860639073796018638456200945215002265663895148466402334716989610626464590818003168232979964158239145232539112796215818359032880849113937450416883802385957076801374492578381949331181343332073973408979592465929750743929751523407111014334394155469614863123253688471913519894248661214428849405071789549728144228162831823227939107198905127179516864939051133894961256162840137194016207322890391580968545129957831600845287327043424725092366333566792834433738063894426011126966400464552516695074225983298183855602675198770641774079158711701665588949542173674985657352444107367719917615421280091422890270550353867921549836382330091925711143826427659537788593113557257106205561395700183231975759155496233681479742131407039289819858219865754597494659303227487872010292421720160704160625579957166399678641438077167192481678743704347101734933101249957921636024503888565833259363194029494369438175270067824662529827480552083786453333254471715865770475754667622925391040849123061113104584895435978370847640587242411531842600372299143134762560741227664378340364081589507499069175889299733715080875501428681900814266365052456318868030578894005666158249520266630728887635826090395754290744457620053954823176582405787482429468769501041520543840141940784202445733189738039740414481221503949661050345359706753407724488782594256209313061006908106628615164522612600852450784830905507217995631419480092440521068757925699280095599366674177998916730725132722077787620616045254351995024125094524699606687874381070465249401751198164383065508491253401155673170303320945713776408453524809077930812334867917174678416334983466893668223596053058640880007132109083142138732186662555300021987568401373722209325224087887993894518774604761737441610102034252259890487997979599429165837934379015178630166478481728334553071482553086245730051724616292017087150957160790901430211257010052455434451916996677301735925455361620766156115107628268089964281084300468798344228603274418271311921847600649179950518219218414190916076984522931865859554011660853620832242613851475429238762732536201717770882108379847298427349264906898781977662981142506536911402424394657067663537071363126181201780382487316207044404690225628950645232294629435777276426418005307086827629878714701652803268036295947327169787577869393737982031751494667572384371245278375335168972950623837024927597538352891500651989716862646650727906996420126598394308828684043961161158296631817839903607212975743219648185776613990907341203927614920912909578749935302822409538957043912284751931036270851462390949248144858457379322469138193193254028775260243340231852081101509933575565955819837763693602280361209007327667550609550458849449350084393132806712104918638376275098423652326844355910466894269709007689463465418027906653498743057417378003870567125827056075650466965369476662368401731738069244537963783710015530599056276551004091274381055698381131657351354653805951069604739195918064470609360644043235188278197297069573641537914673773961777794173124221411252496882358412900363320933454029512619065746846863834071708039894671137126204973534550023246041375747574838347093620885217603343456290689622708433544055365198950425892385924687682698619293121672380526791771036474890337321969411449125732293578832424929288998335443252674209335749147904622629226769354349949978138602075798846867998332061263561441678656460871119854021399777843051414254544626795388946444128663299041830087185878770205679447170905539638168824233046889153183494371587962018028637350656385616816818852037424898227712530120795418528173065698048742594680457891525922682890910906432255588037013787514495614215386308914670209236046097698417431693875904798338968517250014037125822381283892902894863262964783053303432115486176676252340638940401284385392916742246084321305966376583984066873710298323322542371941366353720267759228878015140905299311684270145561117846831241245341883118654150857575521450418616274007216906497978509636226006600864141239767526005618177923710235393037640507846703109424875857208101670586531476009508997646139588172906174643972139850407849514719548248539957085382709109487946695612186246324021612694971591139792820470869245175933974335048579764144244045179004159403281156906951696505495346406740757726865082387563007342185751575747539292112974268788956887704659686981823163494075707362191241593149632159926881232076407879963163111554442698280888107211053083766749202618316231524627636347971351089731726441574002442700270108690939688800869340793568380676808381785832657895021912503529655345281614140104631221365253818902673377932218018901811641313463905989829924660544212080918621904573294007237516781101496364504971380146461282317329449547686661036650213316589783780621884275547055223860194913344976651455672377721690699649976637785960347155760761617690268550651510928805420579451004296476018797250240220353576727237119395008306206140074867730175394088143314618593058461068526326725834015945311414890966531189067589560573469570875862291382176907191873451994578299649765468693369270625371809776440551419116543298871129756899345867935532255269684277405536197413784498366603928907662589302279269087472782503625594571093272689301607479383209616019846155521468116549557276385921464192224783321568102127604792272488596342786201936013686503124322250746131894461753578220678957300707113994445198831549704041536172876228169792786749221651436060386549772872534894791215174699363636152624293857437377650997476649362749752835129763269582046220605925012337119496180789336105211530544219665213208092973816766302474648811664415100737587157853694709043266778094167051514414697979514017540119056210902355580571821356510749941969522179470586806438447653897332601333804519482676156276606611823315238104702994012018534278617117351961888632482394878949948704503202442505711086950217724749297904532806806077684236960659126911892856051396587745970953286773415421246911915073988133993055111786076298446977520344597527559782182472989081531867377010421953171273856212172472315727707996036634404422786347401149983654425501130263640980103260702688954551867354710471928253599887845196200494807614690969583973491419731155176337594150544061499305892974027143198915462427314096267287800152023226352585969720001120247950515251768113365165039579359130588618301874020278415820417836717852842724963231990131575255090111315251740310090523200044626223119827067008498844424421600020099218419432505459430937471594710405352564050174854180162370867768623062146432313363148510298392736221836661643253681717551278287919689158784594432929800780260847395857932680269827616259394583222451470165498511841326618923505957632317505371753913781840759925945266478489026928030066441759762457127055297530618377582972829486081762506162385401704010485927351830097110162223750306558697366990915337386960590142283810946191767687364311677422954220184312171773110206396810096662050206362601877692817828704853425852829329533354692475859677239899793057375488449163559412674801032145934337119794694503516219425646979625889861724997208111795505361730316133099593322712108166837613049403732028110504879803940865804492938765990017493983985633266704255049414501431093913583490288178118868915142082709864555549514944004173006651605450870411344134244487052964305576744775104010824251314176089141381256336780343654691631654268868526468913920279562191662592699594245124608755470421862646402452275359507646040433426062045658627328019502371233568321998358487886302526016520009567082801573009074453497278137196337454298770074361269369961700470705127776190216019402208751075224332899823751482041350836231427999686389255982770275281706326030703381876660503647210186968695630359991178556673360981381741733472606464091515134638258887411484686414379460069691551118871945655925399404849855503331143451142320667324603829503689603843910366784580219544503614758228632783416197660041394080692378779221176277097197483491350365392898986409317734909256812930833451923934437641921255015810348803006950077444356154658727187552261072117027524634194825366748057767673768923379926305838365072239990155691375652933134805608693971120505568154002863291798151343398625499285671841328960127671035244367922135256434889189031490928702317872357062518196604949931086720816067354754132294671262376115942497510392284060693142111853082981585592034357354767283585050127822737022274157433032773907219177493325912470256646148792774885484859324180447384547362492079904829236637986706688212472980022159952683787945306142173202752924098674002745755386520318156201266160243353938031768732956805495392973230306854270142016212340792850593602423841947260825882307377775653988274323998660237996146107227077556112523458859366916143189247613603826880105458500761370141896614327049773173368875096637441727609182857835512390828747927728321531771793632004909897356374704039844699252690650274299778343514892229187356909219212763080207609458107974463114517692034548358382020599457232262656513104316057051164006697998393108614857194426672942436976041793450698083563664934181914304263319595353537509680491522484866742284691524143971250325034614620797984127162792208101095209263734408172876862559724032009212216143388621859840977016064008396976298296277338763865573009467540718073732182812360631400818216808199554631156958997455185463516380597188491552866467567867954542806417531133427472785980662574102544716431584424999633269807806902820702612807302162400683381304358017573928205959772760265031747543385608092559323412191631577438584281938568599756098599619904925467348306398851883848685191932232074623308981494067523012810463145269714878741355207818749132615477747524649245657017739360331627109068382522082211463965569445692698740466812749137998610226160129412840974081693124896557215731514607497610820359488525253074159571888171517484239505936496126352026044960236667076183267640319582216072054992853625862997365045041143588063897448968305997782273509693730756130614772798170020242303875547846778115862438445516653874119441618475561232547593444713933521498269928055781139362542651997490335777109994745549916002317046786713895454422330650760020823702612756201265014198615474456482455797717430714699197230835791230601344101083527332968939873037855492680643033901544655509244950655169087268090518639505299232822083839243772575053058608340807685111643334291390226288970137486893012769413407084302248079817616287105201021678908327751730585789826763731959356361852656858887981657405248302935140702319997625725292712866112350007275147905817552590747467682709860383471505983909477984252211262568228111037862557620057628011907461267208837771248107075014484684636582493544592118021795872243040671555739832017484794917578809106533381117706139612266854375942184236165699389650354452306244374709775447133946693807946800519993399567953760471041593178829162391306381175896401380413733952521743818993037963218941546971876554317277337951680306889203081629977382865674910256319126850984425072630145635373127695325381729090288062274193612739712721268338138029205370709347773959375670218918260803190787419196279476419841156067461901834825969797286633831705683648063983097069029535521739632094560434486391852878674822550946758562604124329258085692697523922826741964247256615646318500143962854261895571544629886906498264250862179853599341544577677456281361607749369382322074226775652910506039227478426561947369685956947289824566569682751785483044585752531000464567566753529759761159339241319541552214328332537232020080768111535783507783659685228627473624500533019470861884379055425542732442988049809394738626069959349171841183612208239861533671113690898150895886640115518123339310019300145759878388385528004041480354568113403940907126907148716781565033587347152018323698112961126938102865660466000017068235628025666301368302938451778389708502577248229094076134112200016560519754094350731783516107535474913367126899407450518193215936853172079657085602126130070098761666347474161639268851256238809549221614537872680112239407018009125360711685518088921913593388168588683981263669054656328927336847087466727926101639679457262132811182348985430347562224798985599085382247829045567651802876207386823043287592491011322321717029837219498086430858497282769061366259005839484206623001593076538204944193364270407024665692747742323125020404400789362858422421961845757168601956441957775039514408439540565972895381439002966615190048292781802208442715468247755713540802721279037348081743029916157585410111476074537990477975113385093057048947633854048845399594948933363967963500515404973020270987057837151857605808296640608096941239846253945907572068062447073845704498720764046057578161507757217309561180972019333612629439032986744413222023454246467860511646789922280746843554424425871226917021297100154524433985319411595973313402962427050282818421499949597622870456730674949380360295309816837799635370481821521937371021743697915254171397805652290237996074012408782721559174475519396200079823542000274772003865211353319821310974793213258674401427876801426641002349585048012423827783974190599443815465650100944447766841946512748052577554267704279805091978845273380203005465959829233795503758958961244701707039251700944165609886296839217229046427989598647186875777288237654298209902411502186903470593123105855956137331764398640357162337501838119047714413109942371622486417174827352758570005286550191862610835087543827644519566857994494243191812233403807872329803289236850120143353620184168272926428658593741129477502377347178803351030824058934023712583987248617874149351751229587272854854048957075775898006735173018420697071995547328329098284152329275035928984214067160870672741822606798780090226819197666982763560028504932898366226920982173066182752066023607929458483899087734908462113512968358137784296100231634853449909388647083896056614066947353862586891544006507216396624251837507373243917745486031847656133551664267259820455353454260092064999585292264177998887412991337558578658511092038907007305058429070731948758169465134897453838041997817459766500258540924993126640886648241081749859390941495651274266263659527927920048790559228564851943492563188090843909128213851167813657181144872538071577021108660358932410399904213026820330010864046986936414680936440762313521374835775036702027249520774796470981554045811078426207122460842335454563963385806348633681191641413934200508746409827249566786386013727284260881818214806776815108881411783386087749122029958771793309604084823878442192827969509393269229904529131024293768902457712349672827880207075690278969267969499120898553081820667802792054287958420933829303115429324507904826619265307835724722270131540210540432567735767528861519706765139808061806941632910050469009212726838558881371112989791189653763927235457145236091746355360011545354439617824975213310403356604716842074002665201211183020936630474212564522072601909868335425029367423345749861664776880265317683848603473272895499823424276384128088872813990354750673282605121705986293465588821250647850597827016237395922930739280723907022450475564134604978352855121033739005194313578618040678059022251838310329330319052273420136740240756623782769379540737356352528658819141603736219306056494484550602401011266432117892380942330734972904254080448194567591376640378756287968219716671796562437577344272625485157435384560528182129665179493786711262269028956119749058697899509174986571871097008338751241051421914688878325205239540870084357524030257310094878463576851743445303406550214961130019843986700190344210491374056268049681685030250192559264971668617835519871647982075892041338344605856219626216735166631658935606955111049793771483384361959602495278550788836378828112161461144007419727760881857212916676771117973211081491108408750593026113626307075962880065601895323304006619454480122688629941746162982197350782326275172381102699383874802859061119571170813378175993167038260695118358048408729620863255426661810027745387718929842282677377005726515118599442842789332181119424285330021034363063946510440130416230367289153475827333499225401201424234001266729989628585245873701097534640571547838440595034486668401466603646997683545398644358304235628156330619161615597669074570906430101367263150770869784800410086744033900949205759437173774980984129488546465139037265970164187310485480677481441053511181174128639037702010932464088860672415137527665765414637104742943658028479669909037344050328244927242575700741854456466182383368818240100920466640218410092933362471435942910023569864892860341973147809740017418280143986858046825366896303227328827767073054317236534002786044429290200314789762964300696966912585096911619191768476552251532908574464835483621825746490272002008625064714297393797076416654933231562080541626283778856648197071493694224073643580530649975104626092432622512528026945156811426373506585438488327395813578882842233380962734875420531783963583731818158896431073045692693290726549590128759624941556760258114881811000354839076348439216740495391103475071854200601376474520035922492217288076149222126519429953646232149395827038049632826609733132791312859931826321203094121330280169999103101602376473826294579907532685434266922942771784350436034487010954000425377369397900673735029455438658554677760653113415911612699137180429228284265399913176794872392579732417412522109097661556633593309836873160810914821710166978566609604209759182480949943406377184287832961372022569591676181300817657336606173064632921144843174104721855333614176843186899382759459371276106207356714185124000173372457609112390119482358719875226401069671990274787948671367341528066933341925742159313696024476495120971732876166263328395420279440983510129563680505279123923631039522139221533077660884753853231886997067526119225540096835988569380128136858705980262625778204260049063226014719311855685090054174184872908869830096978861116228505608816791838650847959353367803962214093141375947147429585976704146352255581579118499790076086008515707431460230913194497011067480181172634332073971935282398368617064485793691346048466992111203054409459523016441756798051074005668411235011542187504527048597325799926091031566014637352197050943365486594377815821391928082577790892910838280142208311080306853844479838595483534925872800799988813033933675173932695383699029284165805305138110247593526732219180459902408455366597640184462551155345484705816657130090680042682909538688488971122459389029532572402487802545858379371579398643905415471537445379874718226573209517464312189151405841894420421178098477882230114349133305264673074056067850918170995653844297247773890135086033806382975115956560392084941342623383846363096843341141446648628158681924312851317542458570439149962997379116201443318582155328147095455376675116689566234505642678343797830664804270569724360883959387973521431749995352912162914472069233398128918612980377698504229958867215410953143984341133765479992493665000273948677870128678400429699064906459574852707961932302142806038076989837146220753136808794477977856592906361145122366798140426026587050646057526153494292971841796639624284076271218940890156895742227443903207370658719688615247272318746202486211142718199429921737087998792835438317266988177950671952021416819398197449916470829906566458510302051444460586483652086756658877450712971499671699594716509188808237255618705371846439959818010924130030646592031705014932465995333883509544000524879754543477930862593415426427796844023592358582901142428230142660536428764780310678575609351750268001625911205431299841939272745746975067358460491594251063042520998986809583840689774563099390692246761465632413016130686764986169843199100904361126900942107556239085674033414045777610970492034105378911143437942260430098145979843602488659302730487248837395279404863059141179035201254677865351855123659249526463183718851576584748159005006225177759688880265614861563365190264769850647661555586379144412536929578087774126532665001638933152456700280059953007534469086594618554172733103004484766651262579855939027469108040261644518643092841398991929067944586769395295637330903078806447168568005203330065881556891643385271422017315269527053214467579370533788897965562255781442313357097846220221762629297524290724223493975661454965816785591842645577434371877166151312522701793196892320806968526905369197802567051858489993894941270357188982252319730676811051099819396435269548448172983375506629350018456322974999702107698660851407343838512035295148690277917397173439273604976902552470872796257818867064839824981080518536456951722540893814898234286073546594351444125163617312665637383046119896107636191714466668337307160154087982585005625624495925365467714325482554146253687945862014499146699633841063703297052885462140740967529012834461990814832158315808465744266039885865823388014809196680853455200161781504858374912145477611942718992147406185971693622393493852393735259486855437439613603966650731293443297524309716954628472780162030400767899511612381911492609154209646900560631815628797356815473814379863450336346893417176977298492841322471562063730400511290217572885800032874554505942573508644456466771248203583478890754049301721730174919813219946281961256548210471189723947887776263382585233957178306427564353805875801539776933635416389146334434672911753823233711296547075838770084019907261026152676379656877947374491019357870889688179515528040997208136995972293188142579504556903368333634461873230001758116459085482274857063353591390225606717998140634582700258501386693120378844721935000364143162657343351912116248760242400338195726875962412678566493224829477860580338841916238190596366266139702902405923626976409233782341810802200734747745393556660079331741727151419898955056253019379123033894025725277917161572583819627133062373203954970835711021056013101036470843032537684312175508952867229993032889067617317582026469407464707739885989433278560701085279483687298494085631252536380591509619868255437239992270031163156999367955456557406778479620124356629850855178513969595554889746759839383136525548048722164595459550989765632765667369625721353700566400323136937368289584684599287218142153452355225851901541471801102358073446117795344932117187831396979458222038801094272406274649563970451518729746470698376821151223230798112164723909517667272945267339784483058054655571309754109343314282091390194828797190344789714833577860324659798777944609252782634429193736059389229431222446549144590062385725888165277861455862163397407030516760313021523342798265891523641376892864952764230780631099996953481217626490068455498868968190885780420608538940533064040856912577303215667278278043945258290681330446398772584209035384614728577470573755322275168729242055095932948043506834469893150336499241746379427593872412996818214926556059863284516621717607111738437204420317844709937572927090189990813865654355267096520452326727872016270437332977683490986064267869556814987498608242840861790173607061462052037635041298332836230074110512812533382853107586095646031221155989600951643692544700840584141649587883337828930975947688240483920814460043051090318652678278343621616050783903130820542835418375829017413874111797836597585564261967139683695202509404045731561470850293042815775566370340160928680459748498818316526143899682615062399953049373290261656983261768908845935677509846069298521655630122062844805399869242957925395491441388627437484677888586855890238905920198135735010656697040815553643553194241029090988444144710745245781201823068083352255984553131728285486265001891892582363799442580111740705428903282968599664370000122068963553355890101785293086799378887982032777813603023353578495981349109321129327716526009627938665637365831999234004306640428264799237519428585271617810749456348575444074168168045749174692800390087135103944715831311312493163450316085846194688743831864683714133463461797292348508091692136926928814871532537097909412946551238431631312407648881564064957770798800402256655866024558955618274024636374570648780097377764363945642021338331851794474028228374900570310744433287776021961924045850480147531623025877424739809070698688313360378738484584470972170084507173512243352810746207605342975903769717594611253352559889245987628366686914456905685749430749931595216789817829874970145907350530498150125244155529966189031382013811229702873400474172889243041967796897117980764334054608891351089009302868843680524233725099797954139052420863114607686937462306088764313433661679890427152202616519332934266318139474055957131758163768764838969189003665079798684448321001604798888204619223017770264464127697745547873040965606832986649929728484700214191381846006309607993077351810901916005086840391625005464995859533847038256739003458687557344737901088229685894496379236304397313199009687892210714976917830084565773028160226461123498995217951550188243492556432688646276572688606606013747906758056921596717653965555388559830521515317531681954556144579564341912867153593688206302658423893810833788762959373864213556707686125594832726965981825099468237499671944426308056584122327740054188248392126337780016273905228275145922056383045066241545514349039127009182218962785414128563389048243339644375042546450847127174133992964622305743052151291964418968119301009111549404299556146872651793596033032478265246748307344093325713282305747729774383857348540422141570276449264758453130646050348739886637259820780121691073853095799186300419099286530657412111169428448201151068337524149732314575995565415841086909218914532949525815218419643896966098944253114481701346141565906777819787124528023665221053102534924431055887176841027484932773594889678439222088601211945085770923466594426542150556635413074303588421013515216664867415811946498749121245552887797174813607353652403815520119379919176067641267096327131700095452486328934584532432449551699369302091824102174775130500968784913550189613983873010277730552179213648073145255966014653576501179214239620639945221133307413365629784043572844407759174059674163727710276913798396702025070061727416439890106682263309351332756802519116565300223091938203107382207365559893530877270275940063962774140861798114309743432316699354773047608901246031421403590106099815758915611499813639925496741983875996228278359272124174261180695722923740939309911843389829137150645070179687124753294628433785355047868341162753200162000026100559652952190511030786702374686693583306094418167773488476082488999611966614540844368899667406883776179719156284082398889134883227147553944266732743927081821707456631213589176024855141005330321103125387287930407698858555546053094316496579562220158109528791556614707531200671177471757869774649715058938410268348172387777861872086635303767678759521478252207213470972474026647328886690237978989465695273297229918753022320381481958587316177137172446823287108792425433760789020336006078222776733845558359930263632745798968247861499288605766538604420424156232165316392950285140087466567920024774820819000217813575967157947778128767819856272949576232680232813535566566512503385752990475995634139598230957378183333565489434262598147537719438106843449132432926634893315327011630408157263610887529022872012438055265507454063136752663356002571724725427424715866420298318636686423734892629080318964390873189549870547133900606208487246826566373055589594148943531846636114845645297429388146638332046895388569400760559677940341869511166439358838444104471677498250343018297416536318165755229459198059574120615691713540862439394915534328325100123704292957252932895979247529714795048018901236460776254316172632319290169552967895104948158072938364215507424569681286443284238450386400117827131055803497837384596025099477948896688414347450991490581705180761424482224141083681540942259920167428461365090624091458034704277044582473226898641500103567882868254479733709175710231252264623182859658382863107882604330060726007207191096431318713256520232463910130708837145599225460976260550372918547265836253102964170875107616749688357058580180014139569671322590991164905468854600748912537465284038601723527021420099701712823553515579688568348675679229048066357267215622547122388997193700915741099758459043809883291923115217463200398029988563307086718288810851191206194935509884619407093930281814315648968418941116970821774541330876832666592284379810434112125051548446900670819446523052873542332886570398972479988458081385256968403249955918209885509331329747938385878972524609809055904356220293912252739007478706769951810524441279267729689667972600585825489691921354287749109851347032551520075967571242692143407445771030620262701612031279016075163027921823647481000655528669715107031493200609532907624562893555654525451857477299029026444321455425279852405543065358536927841122714163854595940811266704626047147442103637489445417905640848057236871927332092582567116858979046775500689438465775708446803318530596547351821526606774936811171019080077808775268853874939547843783548519784769487233769826745739910269446410514193170780359609689100264362735342496592691073511344893504731215187395791402467040404694505637188722378459246339125956109423863289681967245890457613530221742788432277389366119384764002779028865238765556249131391282508259913473870430657726517873153980126912481429360254579625160454979016825588423450614580871829360707126555898877792130885904253385184217265660734477858109778846044613381539303119664030608844136508507467726176339503819596359469436345153999505537152866549263931406395818982952982773491379560727498416553965766109481508989769247066025756770688261723467662832078537368130663082839217910517803396428382856152233772385409808268467541876534168464922530391247747785745103741348441531947314181059769917641731292974040099756205557682663769070335660594763896583812629177730620690703366618242732364102683188814739520191613410058530465665244483251289156849703684236949669628085571680181332492747052133423609084296135362318842298287855452771843281240011057766902589352206813543068614541116102800664138307119473176328850602282376196621133314510046730440260356940762405519830408862592785372976613048191738921131747621301546052317002346909667987328284363771654390099835813521854711267281241750959082065641014332071948592439117178869480649616557478289244178052081678762443066707873762679714183638725645734916937396934706337147452298782220126455706804626681183482376237274250673292313543969591940511992931096297670378629699620676705074163316301147447930879115351225610886045447098088937100773715101479857012945151179321810425055676593250064852719161277171270808807313291822098503019994521142518246002862767432553746932629420310581867685208550062499574185409233601248644226369313266121771912841968711811462488019507017773583918036467948615299787112532569856813288577008954504315149060319880568408567080295872991583728461318721242777557848997711344208632949049210975607660670633726509895230775048590752114404444964718178123414133870810973710751344303089837223410503347053413368389131355063825441877534714680870099243567309379044402885551840974292518747081529152014784113223723935749157874759665708097192168136752760715123840768932346556696370496604134350272964145341880698809110014222685892179144655111358308517472559778419784942499081083406672217484355384910874544613347079639727853002230206939695399184791262566685512461528009263810290581071195643718580222817258468925530694871467921346952701663750182766383521649037795472426409908798422613329500877377671127150370058804189790345298481542300983550090276670288538262061114401825432230547348932513169228951896938703178354872584579117970945523887399045818365692967851006113174734276346536136854647390495042896586293445884792407085168461296984950144330710683865975835470440664036450507825309814474964743227502526707697165999137627472491484593067315525246495172879760283974756817635371181138347889364090765247743773556099186142240294779131581157789007089032235637705859821038123246029226204851686463830117599894129879635576024269134365618024782211425957318412837999470971968067201071909621873512822881352075156093200991427462811761281337428777864821359615415727083027033567727857155279629063889657902896228285665996719244742296376133307789996767419443035760176621077369552754021252626776652471142287133196880162375537814889068528082959466195942871121641269773714813069928938853786004203457767236963583217643277823326398653229128206426223144478273743758927725171001859045299549575758432740811490765108734528802386191609203664688087582951056771572027970168588578534601518798027188603873542321405184137497657515264719356735530139659172029670743946871213991183175593179995823952684742659376063267182985843175763040194128665937854184782695504471064058203120495357086472149782424529346715288176499620665935128517671788005822272507886557401045357783392675453914151330254554551505304179467699509202164212654751412920212784687157571571615232075436377187347351417364537542545452954556025975783422661228676746761872216456028680579904802168675793471090559335428185399846613541391261674918381456457979619825202118144953314042494967657093866507342764822764702577031302864337511894807166373208528279355277032389602675379738563770553854104768358585434231863024096696824814405124654297162415167639565487417229124236725011138997226435306007629199705519466218754075921161734903185351803354157158281843568181285267657721562298923154424642983671770409976312729151434256666166799820940140891346461824161647870058535894461996081313478555561137586131069123617181764643202547471918523875544572237613070283271920965517945296970358963647904019554660506887995049310224371630193575670949581284689215252672525970302202566839182285673899191539087131036536979478995722745617391727510570622732012396578316929617320901065583905014410137017773130193245737815369357923084059697584245151311906427238326767417863102613116784790612049258561164963291990001579251717578945885436893218397370446201473130227823664040066936264485946058267955652303135835415810673438738624907289556161531679900180582469017541851160681886841262425301479424145046172645906580082990847690210452395976068348382014858150915024481933263688574330289048005247133504774582554602787901097725023032206326319491231601781792945139601262468114926893061372650533086392404233593382666004689219429427995607435567785868798837329989261610955797164493634427363847233859400835474158045652476712147510082102921268618110976975185896585154522443062320268247103662518496014716591513723181197079410793337850836469446926960737028119953145845317720882710792103561985839436793837331874387858370815113579349858513808596621677234085558814408986636159600866045055648072062023586520172088526925975350366331096261015053558970252408065443768364707816188481746948265035256754213164160075167016679872389091296309705340264697436908428496453989689976623637148372929968612125461494957118409840422611949651623265664222805079777381377055134927437075516501515025923215116812431669508615726924791480443923001868656068383732361070189333939158432236765246515031636265797046907316023391262288055289238827886849084346044785862268206083833499723848734696689078440792577045212668663170763669719376059100102328571437567689851739993827930040400450003879222893930881768302845002615443920625324130456398869354443864313973890497841690425012316458842606605733749448754020051354748482308097797399634170260788878007298112754960711664393256047001256473695684148965813878664547703555097100978505403979360436795847930320855849930498713780492196383555448163915977487941599571150843955777549551158688113864890860194994800538539744814715580679476398469075963284397198246750273717734177905853501678939512190755013808600992788701338340847016602849143638309860670297790309937011838136028768104330625269252666999380690639606761011842410404247994720270587672201177529937497731135124693765702767396624975412849972651629092195283692532533634758526450284998148849233593296867937313406033781707367698926239631131110972723223639340946327845152356743525010550677133384872039948917445354785998940396373222488317493536988397519054838814713753078808551737400657460847244238712862138070050695468093535793274682907522904129339541847080895860764720990574137959307324223583519346036908017897683634428877982136351348127051539517258518503926938553739967712705745962752032034945407812430996729314376194164742839161637813208499438337098109896689735975170906742198441084961793679659104141316909970953765975868063694399525190100442227965346039465142728763584024998922852202841027666729954169458675101418646320156375604627469065175183284963332333418055904781462980879940436430996228998074972409336706762828853024842090170769382547938043607828547615654842881353323076642431880502097128023764424991502850434906888752387755699267703976807393095303753452715959584739398300804416810301068402579711700066636411867738868400853242222125981283219701434574991035911947550780853729608979642166851172146583712421928682887112044877627016829806001992818603989197438443378864730752995073906956295973405546390560150791523978114158783452986512921681022403479006472099570072290487558409932433610905909661630569834185133121932925323445612022161558463786940938176054398290043622984114729271193542580574864074455733685695521865723873710040870980157685396289665454931026315902309037976118955353967733015706618176068177273964689943380955328539209786930335275673864394010412554639317991553672888949576280521686220507132686677602845630009850609429698995539136347530391676794604461288975942842231147015777202658483747961299946975505875613699971584357597249650018238639957746660705405247371816930236446309126671514582340778187796771016865754872420662302296278717332018373177605843741055155943326127122230162692510516099328791551891815334774056982860172733260990759407088254843535098493282764595266746174565979407404816119045125614356982895585192014987890316840416097274874206872128727844561791861512802049215831698573889196761755204629706823153365720902510312974470034886140285032466741245943326438168165189361029190797235832960647482501783875441975829411902928839472053861026785701460047338920264554306757194426947047103710937668048828652604802438295713277264882757562183087100926369834712433726122489810130378426716285828272994186485877879655246523740668428464663967193391364603233031090836338582347314361770063895085638805146064862885258032976864424217186486741883506897956980581174018179623217749487199215457440543257271575201289150762313556881614281656812732497070381187950721212108504012888963501992153600549845218498574615587553624677986730287634110547665691808189997655196613717117261207466644239296495099300941597756764638972135857135737235952822362933442550243539744133845595482065546024576448924559702036192240341052884594487086726540470091623119705081073222462438779177453874859391843399030490143531743470423176561529005099376194820082985803501244628008962382758239595073847731664247782533552480502708669518436161536586563219120435156906068947289926750549046941188051858066055917500055397917799635713907327643368057465258596859235894142370590888563329227269756906164696394791734244002429056502778372709016097962975462152220037300881295392076982987878092992706042567208417078841892635283421688637259968290313532383840465398094094219815551477777289936798539720165508504664033028606713670550113623788549549547615182451281744452538427339224850035776653838174818138861715039003658193880801015459372460604734345262603354974506790977793484971115932584478415118367337235004202204857143267132014725948479112209528795516300290759389681329457834479533059093946816981705895226954762977867496774840373588103120846740582964031620472337820946983317180962842144637490489281173551988245741657998775992345617755654251174445258553415663660747311160205457651467921373937662340333230427027382663774244804564108111655089954007954388330063024069923219222867300427362442865088893509405035485400555970885455548660230029475233685870123111268674904035398419279388941086822946647631444453925239195903347322490146099578505961146131896514069269162843029516786509383544789369935017342909954103847764360082591369462559872260127240070694708905490380001732509665120683658867851384623656214532262796496108835968432126529908937666889841009818093661374755035144770041725186869774522123606294997934560121390521515026076708447764421417445153211091181251177196401081542588045942839028624962645909650908841463529019821714946043829613234190680750841951636944616548339475723367024133043036589507286193956868779126168134414226034944349642355639678653513708431709221516123490176653693799237898461571481444844558279885368460291990477815535092839561761331344448195230236747081621730725725500877452420135926701674289400489223472516151243377921923282342838197458905336847899171320392609920455889516263919588091829410531755644234106822130327327488744602769102056168626855782714289704184058810783805627538214668152198645416714796040534042688385092405296583507299763657356480959844529540692240800364416765010037024170056254003554267268605033585154437771217014223251210039979308862481301467089290716761261841967880600784490825402026640030112492621370433236375857200800478377594912054493545528115838279426554589177758718670763291264183815828600369574517000481389316320838449532057254439340099040376114968399012486030582954501289991442824324118821607978093721323120127174087463011315078035115436348897116079162943796929058518778163898019197655811417046106209621321812381409487908756643818000950830525944098449773909841474226729354322273195047109218521854193821532568627432027533086598414940437709790825557748689445713561745467216320541253002933163899076210472042891363379827041271053901869186908015813434865870127264177224451560353843912377943131790494186294505041030180864190485131806847853475900954651008813127899496872305741655991989133166667536232422176383218026255185042571672167202233209076329778675887119573250089810193695094316671902879007042999169057445565768580798601982841271481411912131334247851736967659460378492736985479248182365211143433751648092908432132402479182561753254267945870623498723982318773329231995308195088636048622524174477910984216210247052096237202449923868088491327945198884870924030186522697336891263747977242074986054592864190368677413379024922526572623859017292227562633132647710763858049912591678305225626967052727792309743733216696732115861700918432393781978713889050492313706711279730778322054187831922388416282067910930223901080970382489461320382043488529292580808199926263559292419491491697450298345876263045230454399312970115299331168264113344544982565786826097651451596623630883313751376953104258504044702865290403448137044328463847331686112623407341104161678190081029110773684043141118370533642177153762094767907548825207792105385884786432859511019954059618291278866502410907719333535666534357265109675732403601821588317956937398360151106672405419047161334775231434445760146564743311326749153422260696202522633195905643731405401520429136344867295001015782399476717713421834900053485741476644617958486290813635344584680273027942540201384578026164545598474782884117701413920452107481028676549964109588326396322142372954604485950535183108509623654548044767565848406162826135137663772433997737137662640444096486473919948698275909000624001463523159540720077683450763918700088910132352594579000972797271036002739552246148423480312120278944016894738510288177254278471261733248511105229967171978579637048792110849463958410216919280337415742402105168925497079661711903619823100695196900324371652429073227106516110508371021675055638753541893847618829227300215256778035126607140496261702349985348521281928157778241872384087659690514370583717061235006305382986909629529848139929439556976824428098826039338569526662130839303066592023875940777162410853260645062113669256945110286783390983405432085774964443738306238586721828772684174802477237507851294954031564444429443659350741616238266743202054051243866178221274043842250849130852288842371639229624187755502034843095238839134656267844311563058495584785799528615245179977907955277628596688324491512864076751901604487297027440882674457306769782171638335415270287639354419664692547476092133782742064116552727053815762472629900061794085958019706093212891160052630362845705969232681181755982584948832560557258621662093292075390821208134846845297299686907449198874252748413493265529451116985457460630779791353759714943532542502607341795177672887376748570578754879449800421692301469895849710581638660818022113271827425646743265572589757635405150687368672205234538967924085806898737110154309367055228100040270441310537827923642001924787845118638178049546538456557413006343544448096734455439637491965726720982648370149135634361142074708110286687535065745672460548670257235824229955840079152061842722403321268303307187591117782798521678109195404083612825924052402965604851150659743498652222043581437870550046628035792691693378944992438375098144450950146807397844378848883651419750018535633085738613936573996316448550708333467077339991736127192511323349477428315152020079484010637735561619595900707106346477079330739324096709445877354423556286075720620027124847320390173314131653748261300587715400715580262472323528743363390525662892973319744129791135096143574606094882608534582664248298376219501730186840815812495913320936784460489297453606399451285617449639056453104090165480718970196916790098461777891718444229544588140431727096163949268236808641784969405759226395558276265988907303075838815786645196513189386155476328461223922098684559299998127138625853783783602614273596821825345198624769808175828678818289615677006501371415027300825322316725700032321621278211968834170501322520272194765844167620163181128106997656964934494377863110927281150506965488202994653413212692969982323276821536648614077933200957613082305296162704876421177030951785157568186661925551549591021383880113785052122238023508874875433968273137952256215951185291077755693355445867450323139106678649685764705832655774634959351774054125785776623315833532064374752990710865747836487081580835677498895781328259239610520756399503038242007926688489924349039139622128245620692403053239367638053730487593895873471376137881099794152920326875302851255622550219689178017430467868089787901994440887584238856610139140136162273214484155796919589984276095780439287169624981207410651054636636563900142261214417079544966672386391789405403474260209980658886896946021980892403034817523113857691822868423763242175787486911434164845225888993977498327560743165889705684803224735023256881478279591487198253913124593586260358432653752095157704825344213754850551901796837581910016863528156338138609195721061910066383974093049982503624301301226786707800287360913389400504994634773587126239745654874044410673147605927834646194581054583853410528059193963869437196054570528449474879829175474800879886196517213203860361097219513880556052621042898285727881464608292802306950499474044494911453772094214089767591446546876318461011045740626598461005945850947914745065322598837671448021274034581526980241474414373473810079060126818745817440145038476519290478903527030495698151118614474985337096819006163967580444576665281917702233848414569208461393361119931840791740479865983529250171480358999939832755979568950954018112474509192660695347037623847272937222575068527329051321017922516155753795570688534607256520930424107128392479589513705825040719792201454175484278981839506154060565592122990309686218397665966829528489483953743443085990833503568370551009458528002575340525831148392265548183538386458160978373083411418336291083511108206578298785263047940231154329891412154783506900236157237004923080915779245420417056930696601486368948230447054099984458219668341218997910676789069314243440374121903185808522778091614959592420184526323017624583666190504087117182040511238097680181435864728952867017065605931422771814746481173858982270081901955564941404193815923271385023234146158657897884783634560299861068362087635763883617806192603710432288338754173215626824237715406815979696485474356580999150734583698770907026321092361845788309891931494989893086334973407509793018678495583100096990976333861533611078941715990145589302700945957859696152851108935084239715492246767856422419059121700837740771723621081815604901414730583497796585542569591868363158412309242084956763902791225184535361198891229362912630416200814973702600316560667226165378596221511256850990040406096045521324802048419601031334059378392461309690898332745688379602814841448388430680267342628431963948144633945824627553518613934716724111356438656983572284792502884070677759450253128274143788972874026488398611684857051948350005157022719101137481697198140210255185635828380235392005303940003476146482528919456584031865565587041324643871179507686230764063148823213216297663073798780635338120785724153303976821891129251166100712650797096810703560001524405995215051089681938904740982612859661420338540666778904830240373401708758119791249579882546184893863436344267576138570744071201782472879553150793389261652788312452856430147256259721049239065971716833384959740805113911078527462988552555393229557537147271312343496367424204859443039385108646831634413870659072569765664300985966073374717974456592079845691985324524497270838396922651999197176787614551491912630133776932985251080122094719163206451373824808752745694982239618302423253499780146050960631790839975614887032098079896339195565680537472193627536740293872594103033997473295444382342704278013175415427670966657645075202505275799527783793169231457637613266618513244316277334450504660191119837237965088650240804407475368476809699876140235273092363025665382223111103003787437311632862349637095486861297853188776198136301160907970979100808893518349760146498456846683758488608122655803696330298796890055079863058794580459663686631911110638684728746816958273356589583567382282195071343911080902656052077422093213165258455987308419112650931140945500576436370572311567871263282945787214184530830661119804686388897056780815668911052432950861815247551716031181196262050652166811816523367704743838480918206479775962099710893841293269633467419212470125316151883341359524396383491787588924014245583853375574220680005589826427178693870689705604035240401567808307213895912908758813500092956478035753808822580095114539611958246899197287267160951855941315848952295471411193432878156322148936985709306740838737580059358514307281020526941398013268327665988649997678341754027850559477536974999928121496791178166728445572374223660612692389723468318347637956095332412564696294887974050499626491476450755317071530902465223611641321939661213111703289561132408289600021350900445099669636530607312338892729915610538282619340755751080137597164905423821768904995615793070967392295022141283093524310387476623625853278883260252858999751447752882726620999020874680534465153390930232250630010672845021106600912514637885228273977812424727157546775219778853844839974802891608310751360248786253912300150784770316669877015407399680812452486016896140242635866403841008162481180008731904204427252548326486294439608514510021608270216723304984160041428359011937647388418765467603804994462999533658845783677297851827997409328043058709175839456609320414591114911185084909885670946618458477973924351168010003409569536274176780226620414956858252803294526924370721023996947149407756558556840864011616122362589402888478828517565127519304196960168473911260635208401776858616704706088361519971516755107707628746254723026970721434234773487061614092972756327364090762974056368128281044263947075514059499295507036914167225829954234879763277402551086044927538497656440313682738004464321677580383355302290315972095222401744204865538423396336421808734683079691290907904750349920660508886684736095940026003770487896025140493870397332100119021784049965380158142558140423708265639788840307106900277847434980721668136999520898873160696404080581764586345052745484941245555914907377707450245186101012449743806933994745555165758625312680089302464419828974072492317414920441188235074941037751199892940936707113398931026723740629280713753873392050586783401261992191402542573967734193239960042379334261373703889707924823273690373335281046862487111213024325949319562409600168101744584656196945359498013529575264818091550021200930847958954773973356446274368682597105213672994004007189211585068342908491275915360386759630366862485816660150301570186898478780145034467024195882310084318363535860797902900254188726354627482045719076084792434996704431835144770505612460102837500964650724414653409192996960851163509670642897507125065796437530802836227354206801466503260121819038692168205288937492562817634481896219505776561625481062345017666839081599544813681796325618767451030767282596306994181882510042218962683315647720621712747789610499611604776971541490807852653246213361614536379377787730317100235842096654051103474078414298586005233080578237722592742196544919263540085737750442381001228433037743448409751147083518553405559352263028729973765441666071318598245031910952430296950725929631515811330437309470461503543225522515219816732942928945671182567374182370515187251566229010935512835433499104353767360995747647991357010257607281837950965603804416097179528510519803010011528777682568310627751624059205678635925205360685918122058851345334342836967411492895144552297589098470029093133255540608748212212596770772317506875645142460901859245529056149083709458933105170354466268203375576633916281780461254464471074142956615440854729091916805935431455049301248803178350350757874904695633279999291060828054434914493793613507926947413289166143801829234096681488665335562484459942066595302250148888079170147713218860349924777205654286443964382419965721128238543882352249372821659315687880819077503600471510975392121204764586911924920818002378252754342348406059953977324447716320497256185526838624181062327940519072979482685509877967043446909257100355534016668705444926686891351035135698043600553378971681052643577450087003355162652157431508328144629167449960413823371130856580002369589348052464166158483947495633267138487189621554503411055893188323275938126188446203357428709345180042737082319032753946536111952446477253976629888063083403042510328143887782922354109794107104551717545061420832852072275652224772465602596062728332960009634288767992305221437594618593470703567858272580535924874535665795856762457397037549854075954867010744947766278487827663945551917236838610513752438852528927244500050794552670090874611308852962647448525613249161947541939921648258865289819922888095274049553927460608010299406829312462804619379981149720900728115116317109040565003020868908565437335092348199292593893298668538148870686495305456982441091543134579209722399437172476848055102116328219625551363089495591516347483065655394248018379016823800802913900472446266811732886946159424613691382884193794260138508027530057166401357555356834655683266228962185031444459670063805780726893698149663364490035538966711489202197918594191750604373245469679988959306579681348139693139568933850331986730782056759621000721422285085545194738836797200259164901471772124051718690525235198402879655560952140751239083326621605855232109487360214394505919254581057414875162850246889158667981910038196912696191632080803078413739441724684642282926880997833683734441469757166317464169278081976973339827841112419395960874224268885404459065253674029807971795676549760569560527056518084442646762692070669899343749076892733258869031581776690632754608156245195869291565999225801714778893254775725096281393311433878791249093972368218925059134814689993787440735782536927881022169593271517908770220759547456678197558933415406835511970301912095427940956204036957656901288391104709731121733955935974073510104516765639313332015251664309215685862154301303983453505021831663638342689538130563508300868765893086986180097142058500301449423012528324741450971816310710745819474620681463195415091903961008248523784909526672060026047417884972444152693912230704554286792278595232985536835547673421919173912353224077523844869909306346198172377243876649339459122974909664969796792177530857271213549251497260621274872684253929518929089104583702036067651932582046843684849334075287818227494399943248353945679864085263008796719789645984082802401155613077208296822504275556318482293807822318927182217420489184756402149466379827428205248663918650471515774579447603503173733907243776272572671937709320581364863109728091924170754167867236165317122058142249899558433395736760872880755432196916109526571857138632740630897810826843204256578964630465530333358058296886722640321692116791968324082466269852274329196329396800315407110129272017954731877012440463078039206964618379060207277457489220250393266313649971154553647279994464853023414946407402300897421189311629543189241276031782390779600792924528574627648894032944968227209917063927857691171398492277230283584332890146663442558067588473978018505153472640583514953211992271858217729901837120700490634921567141580289098164844087883818727634500406347271594498026672444223093221747305531613666232543425452684602159216442844893484310914615759809990993891303757393722181974802884495916504813931286474542581808270744026694848268302892806933580084173348887298498434487338460467987502829469975946822967404939153620694832189810966555763171689926458531320726325788285180808991958351023125307185766229997493041174277108650822088373587633229308106116205294415759926704816232444770438211344034848799394218743707129549834377626867279164352574083506539418546618459132874585536590604087115650027528345188676565625486670229647355657983960370975558151887221464899080707846414334329420687881388495914330890804833236429106734357643608215936980155188720843129986874845985136817619500544232255443856884753761940086068893719920099541929262092511060394735529157775680195222954181598203477324786776510077151254169960191065260301159270582769687286710331561212101060614151711293772037974715555354608252673860518243308814936409854480875806276562493712833660575779247454695252353351404540276054525661198126783304011441787768797203506388093551893426683630788869863834635526959995931626004841312842094064506749056247574883101829372939935541246351967500285483474607969367053489732002346130312418689607580123327132677522726930410249774310414983302667958559035807375862718831905238478360651472906335209219933593753727964072827130891080370462684031604488776823161053306215403287703449594866168426403581727170777867608905892044318294379299209553581729033557057419464435380127697297396680741581085437609895503300506406111423453920642813427853715097558883242469451863207453866351515750628948255685424863103723762770687062687769387441615940215150646211034435922507935070392596424899252341803838649944579862217613635991339340741747075180310250468388052243802375985829494176120935317431949696594186161746883154986665702183183783352048791483080951758809084849628862080988824099504816977080415464133203176776975651854640765840815838839587466434288081891046200023713050519152195878888354644215294255705209601511442443465491332065775634331933398195777527704862393036108954293566207137552730137267490508252270034565330622556624834447122222518577018203459867633066932521441774066012120092216096053752411084171384714770051923421271397954152691779996802478841821682237573814062680420552254450922233821658988661034364769645610723045644074563743231815833103678914163351604631162264565802784430611478892915111027060184156345451791493795338298015407115378940081661842483354434361642559002277648292769934300344994556747577922225179198095277779847087454340082356535871459107026388659451186573154225538432633423740285625756234581535083644506639867723862642649730139564769277234834305457529968560102901262229994054782417661128914222982612275555251325894091942673447810315554288561017821545792783514059631874968623433155323103207130965506843000082768355974480566625691153648492776138375434754817114949037869485907369593413965493419513935600727011688838109534758349594077025643650238234273078987970406653362877969281097807906354867599982364784161358364407844760361978234162347712272128492190602845652616584418817195584111713159833620256285860811275967931200078447446081822435370262237837892164277004269040402235311821982386201865724130419421498955905167911124893403239342620700525741459258867507798266801925517962531430571863029787219974804589020125713816550883547890420422560106240407743044926097237178886073188437675410743383674421539526493770732478840867455919412333133385601426982110315446306983509325196958421994418552725969526308535794000161137958289978211653839519612784610289542376844149289774200543258647841243517702405468966615062881208846851102695345802241925449201955800940932098527517533791032909179729729340217526738663241962141802928963784581905878311030255707634077159772429752222704164059719120625075617118198398712003953862336373710051977100168793483028199910411681919649894557452280908910978430814231766683311407802194940918681695883000216177743067840073170062919723010387158245557225022170350660251024571711405126082460233062667989714276901723822457737706992996410391205415708186528508977254791460073726121110526664849734595239924209017264528040778718267403718266716299187846167078007589772157449693447166592537099381822196613044997978663390280639650125650504420565861375725122170835100617794849961441081657223673325288577421066942092253773302650306210087594427803253194307077884108262699102044325553031541668759831583758636794536443468177003808460675301504727300506125507221506369667410009039510069226750007917564632946982727439205222511115786330901009223643191132045372442256169374122256769660677117906843090236292538647551599657650080909919342819312701861848612700403349526279824554999833729827108613867463258933050369056285214028289951694476249629038613260214006830514160087717117374661141559642488820907001108632875133070969074105703800907610530406529308629597133640108491672588422701964480665234078768069883224617015444224712582369720077163677187241258512718520018161096119676242833970785585980411815924329774958422886356936986985296625938103703805028546585384088487537141244208769411364144616315528328318505678541740314643909403600156326745613954754969181603602713513401910639012247622474477664792859563411681015353890400970069834423336860796363221773439796993764411664212410573589206613833462763909652746466422332233916637633074356790077824153498808679983691593083507086512651314941721322523227892303735380356551539486619889090791007557798949644394717173727332283490156011954019976765458146507331084297594986810079360401342175083775256468506092910855286853729254237487668913456929686431328255607000117495938983776437954855518895641742566614426959231285145433842727675315780610328589749276234176909824163739840701743538381745626443895634777862022244590929416009194956429938810447457927384949649988967283470524019501320622327980715616118834162292850440320885138638239339783634512383000864133526832220578637554682309447089946624676795328639519018780836383730129160679622397240887320871175698618700619561666090376661966113833331652615963028943829186279695196234122059016795815733444852675668609693452372781848292330991598916447153199935430627561965192539781361191316123103274042098293649347918075365306364959411389531097962739407304532638597994448170890235396910095576114233403188068396440625842041350362548476524825295388153087610799724484306260833067175266724671240655847675266105974334239937536799702818586331745948372250968090203990564972221335821971458743753208021895996496307392570221592627516120877479459853775391535393044100696740112363706765440232231300175315860356150276598681587318296055729120339263573933874924051543500091341456412882522455308217571572280368351442992765276191939011761871134799333382039591195065325648833886742112528701871768291165416076506052456486852716186913054854736527295073524594786027909065610864110629941424522452292489630785860151817655181973518491172071281643609621637743669642423541417728015397715159593439633010407853126567939407151454323754987713721597628662022361133961322482063098731027245932492319564068574506476796360376745896064962877652889005261253292436675827043349756949567703949283290932140276068293241671335917774035881284182842133404994266012949131200125567726305057022382802321149304526773375814890132516952639727002702129944675343091448260631989718432969031267393150616194226239738959303081440184709546826364124120919001517253974148210601475996279354041125733075955411789187547267963052031706093556639600061039892162802761913009483664910034318515702168771526004376229233092610917293466755686712385148916418469903727040629768639642929648461572448593227234330522322255360243831411763913748014166595562656119009108634110682124970727384422573615553055291475546739202567180456966872362850840886528410445992288342354348509172494130513508072960756966384983306646471351014750036578609047495561182068998781494355358976688840011340992884386339919033999802364427552806149028341026519624818510966453098999739413469825937073681425015322880043315090220205331026851857630104611402793236898515326198822486736685683366974365937241816943252412086852667781608514334029054279260089308597033059956393245179673022880209698988738717833321839704257674450006607178574425257101384857478627468922727142631638150452897862820098803401438174524786234694987354167121618686100679043132316317291416752873539392402584909595396293851942644641804191791546864107558127858090491212330756473820686408029540731904208774018200055875157193305027401776374685227088149027770626353946576090344857770034236199860061007228848366787946059524834643450718256029821828587791128572622476526689408896727011298289216282974656040574184802837298941140685799176712532111063269446656025676054312785211665816761775580078329656098317016942673040952666504879646724115978718550784852659665814604993510019806674193193800547850536538029539956066480443980518756650126333602406913520553278930268358120673646394802984828885696536077529122066333898686936886387625589258096067282626492982987320551601114387655435344169907572796906414370177982370650074029175173653238251786477662635001508654408702947962140035984176197833550278671216406426141499105957979633354763150336561339418020029386873798884737243100558768816599261667193817941580730991923744603889015209346714446939564663714106421780385281928782011196726564128240383920492172835959085116832164662478161784807791428858524930026465309588536002527846287413943970922523464900276498150836742254522925807092123563701658122302068335650739897069814360553221310045068560671590767113667488187118757264272270384445225250291407997652092281485788341779823408532818897808453567506509968521216801159988324602998422265877932045968354382323094872665065305525846136813810281898511699948626457105902830306361552247985733601354581084716724889060441207012116184823088927717212645931155037157393897534940272095516007856104450178344192740401919331061543466059972684987063665118145626270821164453407900877047113326574674022452606063616134808202853798321766207858757805408440598267676908357677459201256640795241557656360065225188809618881866893270262182877470867283601824647966827768162534189061228938579239846556207675420172953590587628218161622607867381831726900014520085570478051749708013720204423380521228500793829300872605801214831193178556366994742593680255116492860585054592271090462360812530110642104520681885096889826662550599474831027855035555308989484282161762609456231822720775380050537746606613666223633151185208987343840488957830506536116830841097383199682929292731602740368239862788738643092224670171809290927707486315253390034789047252475611307887170960102524564243023608688192735487383149020958508773212195415752457949279666696981263015685824632497611730727271288366074003779140757477820023498043513254523170989716408528723936990754596192880074979759053183490360306469688112389511602829328666099652723004232472718794135827214045574695473400221265014145168623011944273852313871225621797905668766401643861152207888450024765439285660330335327323012265230254722827193454879688421347056973273332739217430805692125076117510344395568793951095691174505161527926447912469481812201640449177668697001766854465249975809090141873980369135216822141618174697591200942008728152995150241166480345530354941403774873634519053426833664617517174665739868563996662125534227920666931364936518218807803061008331106554992537253872020516597379487031680168004280976867098940365163917680658981106812698181311133150809917533241812921384513371474168518090279100129971555911897416352478793508796226782183952197398938106471903095574304700104451293006728704354627609923516886756108223331566592082899044551415684547741712734297159393562731701516191924369386436583423615676557777104894043496955376845878540059588248648213408016628788941820992555523490807975925362636087428934720147792852506012971476800401736605288459018219948181587544368633137219471201440578869404279750676895044739236663430830948377324460382017761753474797022132334011095481148199990747974045597244154902274858543596820393629013113542569216054889612913830232650392786603647310147517189675915072882715049032710820343654491269974463888062918389961214653555570048145769320327630069405953640217556851469008265350546196487481372712244773554155096399541629089162983377562839138226801243757797269323784042138026297707850159104531204718534099723975129185657673645978207473741728559647727357662228830144999464770781750514993266986439506005617675938674743668243683281154800951406370604754738123218777135556246797097240259569693601190654587339018200524923534761768850989326235270332875472342756375522837997445866792249546385175949828829739909633129004759318486325801219693332613792604643652662996112200156238979487634219208885330613539300154457885153409233414055774920783109735273364341064070777701804260226178650480274433541952861817929343737852068862036420680039273493164698518734660028105186262051307566461052460870857115150684991299797604537872843490519810392181115505137685905694282511468009987724553291787107220616662698428607206545432882400337804998363675233649899293850882282720457108825893204970016648033821783112388662500644613390665919341367294994588247253278727968809061985809355164280337733054558755145596106407527870052365894482891106031794082448709546000639805256660191872614906890562543250962147648654346478617614389456683709453895500529257509194020192861970581896250728288620545264658042553916730841445081152574753074653475393584205734596655183315356744637556824766715243088179787452868959267867491642740469902251679557695465564249407209266247693535504893463656510802844270349237132256526065456798492989302370119741907036792621854833355313503844365909900643448668781481957870925555647706466224799800957579402208455295046531114319193552720543673439580042741594064678968323200365436447091649162620707083560090206182078333467688563189192002165804364651359547454129587247616108440460442967612544038282837437038527178075832686147440985212552127189291253682435064522915970101532343082243667881585022610275400332638212132348558065484695174460399105457511631263288271946703784980874153336907769111962331184679472255744425781643765694194444470182862680599731450757158037602233027384651208100650197975732294354425728099745541178845608639645572609973405906836856827118757588996880221840062209577433733786371688791186472167490485050747223362686070704676159695754412362233836484401359298432086321780393356803541575759634451212384643616922645568838282867519735418556857929213755386114501477420135958311426675700827650068596535793358681630001847827279541978247967674760283490805722947045923445031620619112347705884977462029059244339760128456126047328888845414438192904739133385672275626980291576266652366834050389753703457342420025477375514476317777300411904810602342375946476696037036082156262560740918284224973891739231303867001980197574599047164979063404275778974503769915692386975741065169601171951858733202156704377625407117883101962196273996706766054323510422833753586694477203094415908045038499704002587065336088530811694282747224711525758026382196607045844977202069204038405218626938340218835995158500665991544290607918144154512016664015973373579092121354173811311450623189119357861005883471450126828332893413708157409039698223329472591484239936049750867728201654223320574671777452859773877845497438141109345004752813662848075665873825106282486335581104328231146051230606449193829912829003599426649397652910340094078652303062400138201713571702503351253014433401760189133913123153369954605263517244247412410020394669142608553591654825559878405759185140740465329193421494552105356671741511320650210706477561074496824847641563940072153615535228468323863549742758786597263183716615899787398970126080516895806065741292113924095012834776631462974140089588368525067908551215530803023318302553068432817003092640447485487412594215274369927981577831051449688286979960284500060041528343454928846428382801539948227427606647939937856059582344385916594959741837122626693515755524804902110411152642859410745732806367960517337434615226983798554574365237953169607553782705824738731031199609704706982680400164141698821449201203920413403769555122924442712430700168725309201539656715532511893880128103576124261700452885951089317323346769975957900490408334424532046461680561662363209548897380593107540443681603783749887692843072687302975403850539932529030718484414664803705546118528926799404368147750048802557231303155972321222434701507373706870575519281884578285920489351409055538892083550240391974469338875300667330268370780605978323785315927267522320664446094730603892293661470269224958183756383906732662765887702510060671885146903013708393240343925030227828347239622661999670865432454548061071492588139162450148939882081946403530028761623650610659984719598516466053305261032042086017984100808848266751292322788465268319047950404634460934372443295610816114071591060650333330705106239223085517656399029793054504216170550321498781925442500019833727229243207435090061247976552138644921105029300798951243459035106456274808299206246305425127896914810580415248473288847654863169927173870384918976733718780258474346492686540714431989960313592973508557737591434638823172959297242504145514262889230819239798004452027597538679332074121169865219902184276128187266024349953797301603679099146185577057420268224036424714597304923743483188199734040475933131557433966347031969556141679286838793761978171363021592539354769106972648650871948754742255443042694838515945572596514549933854146820706482545540461951910767256066659340331402183001814977033000935431610681991039431866667640727167011611718595204275688357902747815308882613444280292925947426640269011079587918987715787989199174856621965493468233250451300711459546774843910891869353199080328289106953662696217012892991194680374063503135772542338251472995876364999666914520503631572909520212660922144714950611443405728741163965322339972930072651407456310768419203608357161126652303500600710212769560628816879277555941864900496663058936610639428706265800899566132684448851515817653382412992085244776095976068080414603258150344796699218928725054645447027991009019931008791925926654551392275544346741663608912168938678296769107415817639395028695709553066073252889089483066869356275150840345844574800429271382854948271200641357879533202051964513847503888104768782725060512704078440972413117069689215183741107215836670735229485309665604677562046933709572344793437325698526870674173537938636121488597452519634288180383529111546820187066316720386438688538096583612232141882533059621870274043464959893740804961789754698170901989473117181959079982808195004742300695288600342748745818766538436816952157996506206616911529725044178939440992373679149162406638221919075063599021419775415176358235219234802966967601375228010385343051138802666495572015201281472398346089524440414723064924610752783161652927406398483188521840728640706558831408881427263541091338915543490762800436974786929467897419390682042401764023596291913857093006807489402112374261102988333329705574105330681161029752405265460247442059069004940824526710293206084459799231639597374959074818119727657133482956743240708506665839258525982417610361419135473755218544827965151559042648342382333158899415499106700337481973628941254446839670419779994424505835520455553885451264011231643711212257590684443674975039073305272169687605496514600398106074011649757793383698916957019626615981350460894656081506183466785817196379475094785436539489946699419454846443771592534215794858824841956110680574971271852428732624440666298710984445600442343538717325951084850216429253869959412661781303323180090656548532778306875725519801637918635723700936429573861315595130096126812691264866460244261256646199954249078780172306014495945292670212968965992027965594415539044502998589017028177163124574040624576915967889672887419220061188772135938506948399405594090500363339808961864658553786235392796735998577266938259287761438331857179687413008573471487088406498193314314237487808513373761924790577220152961810282767983323195492026340263540708394866434791062031162800368500107846951575213263360418307399284259193743699109768135172254523462199935157271408926939921007659071132886843595176510966593992442038786441471447794341675220857317075352428183206154445059462091871779760021092462007538414432854456139103605068851869133805217661156989223295155392172764483050458767607159141159322200725345550985990773263941102447457834868179146644198797836141367128078126356924315325709122610542639452969373496659243516711673832900346122070773146216741358618692139739360540285891934482792028531094030582586601767213937404652043431454362796053600292891998021783674859869130107832075285294299660758930417761259738954825531710895719494321170515377571562557736766239358075987012541645035741311430444845208782287658483529005255354849856912229471982133435352513821087401141785371325622690424489810372530003089915834493702706514193927671761749278583214762051974942819992636842270053906156149567381555420563898430809255727599029895681191650951420668634297813944429178814735317889040133223446588258886550764002510976815489419335071466355894750317028201099677754493038933403399906388574268780076674390419142129723915837497793203573686389547230016199183247032993421997906368589452513595219779938549398439902253053582161479814355640363544304307947034368356494312670443061228979593296616968061559026290305254627101373886887907749883421412227133857529233971324592591828576388742632143328637371046715866832660599696885843359788796405998841380150591428277936658850897034349170775187586255791436781073948568445379334337587771818599007064665549911031904510136996245290865561222102803016367215641334326762426009732840094888214593781558379677176510746505924152115950918029228651417723102600471675771252258569643108915008681196166355645972013790194681715725905549816543792939689357500686659065328714213980045265222918457523755878229327725089035934981333063556032375879270729574618280075995867631980839167633882058085695541205284755180490949145148684551187720704076748811398631166387839414743571855961451446057192724964619948923001125683454322322519299416576571951730166299569859516569476080341259932580891016958890220475859117845891322263675886140520921794103460232415846525236942603485139529160353321135932919758415651471119832334589008876118704929817342159023490858629751024156129053610391376652232697150699286404806489718646151285062961929915555291733837882180750041425252581259849198424143406566688647133608370857890338988947420235636766002856942426802677490326450651294639791488013657596671959873906784843816984275902360496713805124183037584721343502585642476216221464560160522028657943079685095923717135863997046237338084178769850444598738498445575745049268824261725183618750127467126942172744548187929316540436230877231953209167438015414919905297355876821678112591192985242749453631234381157243127319656296700715913116143796240426278891763290144618361929832970973453509106458940786284984269410953685013622486458064008683311857898361988354157360672405126692092609156683453891516978365699335546828791095494796939999304740563962643472648040135451910839824113454068551064560563813746436118803437377331793910742543548589681931665170165258980605021562787981685673216615197584015988435424469364201728054683647904303456125786755611001620201173154026543986698550400311939315619770172347284269069328470134136769311431839042410929616978354815889584917086301024065150630904208794339517499568598330186462929453868067381934840309560731911686682365557227174935762060488662565134309899441932457028800192764276073561359853431756121463515730912627867393523654165800444887730258106885327843978442493340872696529843740661101867356205571332779364000098683541970209043950775777600964373284825363837748022963905430241710016943064574051950499401457186889944531119903332497620838225482632589687230855481507423383832851308750114889912635933183331921307755517647932820791089200537182508061360861912550447433580425652818868020139289467629572600581210290715128031817927931154875216624652281074224808776176039449309239417791965313508134300563333462609405738409046823139352261469481917023029099343798823651507031358054581372206759424268516504790271732731931530300019552290741447889256072094219543887970930076818067466306649195948919395383532557088157280307673459813755303349853553560852285445934076026534855501209241922555329033380259880212567515428854376880334718632517813812540048253001989660739280841196126682023937279232982367144573095062497235610457920158354981622392618810718224979046590592512485492483503554741828511200861357551684859130709915721629820204273257205188682709639923553716853732937246177125338152269944023528954691877398044312905774665819808687688465338776117319889356389324310218203699839628792154194473276574293841282283682742349066546551787278212363865459688852364334299472867659338212013749834951888367460905156660696990588807343541086733064045992877312957779167445467264175834411523416460488844212113244826730907895840094142599170148324945185209201111680224105381096102421506635282106589901650125456446560292766002834312183784532563122862600769798968944392535077914867325499261695851925329224859910998514640449156051807203864476591477030098980458428648688354608200262154761187807439190730405804503162973830094074475363067031950771920210272841192032499943384242676799486878874073983585351086705301919327231437585795581140740811029146473377325089670955618737427228950710297165195107466481587211256814306559234080484197105513499370227790845243505876083676176669702306871509429488497430753622224264471363844806201092883134856168966419301200194407744949498777499481215472408801515451989608884888883132524414800643255676265843151125351063867173533317012379732281922113665828047483463599015122311892414773641665453542672422791894548366364120271990463443658541048016334607834063607480726898682363896950099599224584712000944212494039561581639708710918046206232392949891614069377065807858480436558409416699407262947576699030393843150573933522877259424270239072075868093758812184285090337782617077877895603155244418353143785759761471962579614049818180664319942791835840910062378218061133719241741980370564193658664545473786783086745889019417504484713738578368196500952149890850027401061705417522932853093291381863586111198397413068200435214642039020242236366302088821914770802544883957281574489680268886966969842436340578122382405268999344528709732577740613255080906932701341363354257945386720239157921203810645536902933121752271273444869520524162745504911431628077367861452601499370033738034240975588116406849927889992821331180740468015074629627130059431321386131487155536242225814871978930987518842420688926722073845180621286787883994247314372844733511675314075644818879148240893104765420713640900985586582855469709602236965308865839280095728007451769823549249671217204326987070132912846298151571225508364937220028454565546284109745075237830096550873513557238256973763669351724789926611687693048204169974817567734036048558588676419810122182075323123646726745487962512873313608057421468652204176207337529026973052152720348380629751257716786839419717745260631890294513050136292126590973691952134269560747686251268478930929082164406958525860436602486419803353369112929473699218864863777344853166464960612630128055543051735439499072397934792079717397933914436563108193340779323244807687173050871493257414553340024247567149017132582048984827564651758731998442032715519993158233248166941019224131626411493974561889725357972172722602182080636843303928994256126264134149294158683073133507665484229671921934573474670622901237842957358752015126486787643584132796698370844670015544131689061083498747319049494433531330318539514039857503543236102729903583870376397536815306572217457928659415565465107577079377994769364983789166666934646006709785334422387932964515628483127761151994833408459484145409121766810485503420403381132411871644495034854009584435051788683248813786807696767568678058349356957300791408896138687272378698863448933616364119203588226071643461946510383689011782446541590666806824203573234797684597463651795115556833820479599297300267586243315135637394415212314790320937463444477668362200815239174247936987036114933854183952906886572316785758168735699730800559433387942103557720607086036751179753170916046941917884413843000425337215301216984184523659983304933732626037648060141288370865528473362433703507315297320099086594425511627429460112003277150634573363327489709563864543534261419484865824080049165035770283235879039879109396533696605772465683016272666238050256916415788291624418049859613965896661702778005639955608264899137744940364047715034112513812681747516983935106381320161021849234353466939025982249861485118764678582955561575303252706119051368762542223411753678392745622606762503833533247135327257420204950925816399517028946998431928905811789902766478063270806169424983487958815991091451762098701596097158743613991677598600414216677450124215602292066173147049355904329847853672540164711977161535296306284257787985414724593387468689654309414404075073666942121127106941567801561179227304029696626918581477305535951691704636722021022810104504030964118134889014412834668007337494720525210731425021908018589534040381358729164212857397706870090715221985491874988447010164974095977678497879609908790750977261755959243497772848015207140332989763876673667523360536363409038459362705463762332309966838180808716268068167634496896703580461490471461673658128181180554295404255148419170903839661834633341812238947402933960648961480821351474845804101608970869125326536343328600305344922108369454799709187679968932277530513356702762101707674997821674361669081266387487427132898785119668718058009949986023719734536736166672841491137071371378663597540633492897636777085350830571935171931341691937119399397434301454092948525403966244551502365978952445716871260070649717492750009929418754910735199945853784438781159112002929480874874182715201980389019544870884466736724772435399768200373101314252221664770297680786550825057257567473545159410368358489421562481102404729012809720167205449573929855599356979769182612617223476783286334415797722431494321936582268600704021608693410783470728386735556806065958304491303185321293752477042932251536205524748045686536964026943141143911520196317794510195308989277777923304524329176860680266629140238990632037101339069881778675433425016280052982440510963884884850657017465656425615736339220063384850585397998731284806866365387693880464181937712357199490262061837992143924599917743785909485671288983446251850493139240462331705529883425184272259570722023493586256750687995389411508883923390505750932313525640441615926920748784074522970563382967888160996927112084293587288544913066655554980843370894675788523523043180438442169027610683125361085577347495344961307136598053890742093457261733498339249623031940666754981683999267659977290262382961476491559524146654041172064268862654812927168556422558198760616691482931094887977263582316949324065054486462326443719026348976951718948215748521966070009373050843437920188981864996311738868359572522145973561688224256977207817065142122250973242882048392287465703347634416403128577577488307067960438412880907494245202311846066983038791600240532176811260039528462135324306821848949343882814807003510387582586867081056631125812927458189015112131887192313736937236104124687459955471123261234366980129196081427362363301100303452810185588498781613093686224797702235465856429456807565781644511328944802044664778273573117239143299294771203142226676561640310766660172998330332700545788874130573730820135644111023049507805193415132585666346366768603548596626119641822859049403518335647123770854131790903902611435475045421829963659087354519890897279211266094900015506518944886064713704848095884340435297865539029402842481306215278216997939694925336855249270623336949121919549338417245087232029966960703377007241406398310928778195490754006013093288711592475816710856210305786114899049771051806580142493443098993521279919047308930523298215738359196219097731796751195475283285461548546058305773797713321949341945274143150866936943091921706011515385794913851616138541724459229760175407642484278842778378202762663176574862226753799092976305108378536917399592763296518486627287877014893173991220268249975622603136580238566561269889001037056339073889146381406908113499714439435820934177858710747519728573845755835564436237411640470570370630128041202466940448844826036740056261513949540014095503455512660959246064663217633327299348603995926993786908197813000376186783699535881568013169034153624413943822225567049943305294274553753482716823366763259845029979986825194047283745632520414479866066668834163504971732746694600084915179289339394401766354351258928027155386768385922603974777836666922448350068569421353865800177235420014735962291335168377026241377912717581967437298612112179753310469701212404319857103647924637714922155493338928664366161408683711701780709047901208130442101844598207901602731637588891373995577666416588468914325600490584431239934947734454464668633072312204898112671757065745629629144656403181392764250967841927839823927673660091143297907178039375262028460251075441061991015011525364996737684567554445439370791137166748454086173176003390823127349812651368805970014203948739939132992426156836542351392125361349560725201130588719324863030286118771865603797465497954097398591173427747365882847808877419076047160547930752056370552383747158906491418857795188518166353951687081184974207202452319541238446583678238177420337662044880426258176753457432247941485264268759243999006100952560773096285038076962403991730839154346741322343105549055660041819271265694736995339217660241148354569603462795602126922975081612478414993521918493329448732210469901096407872179190730862667441838478548077426014752122812602824567685775706947189538827649308805163466888689460165307952633488725266296567424445081542528639970231820410217070192249998135401814631726414502339255590942831802950479338389020895211295106434349695863582749699050510753066324115729172851189046822499628981919407236802244480221494171484121695612443735443060497425500787587482058823594149313175219332862945873220997424398580836240147183899143398259694428055217186192564360771792274726448389274221572534820508176098493683600687401633207581049231080263407851927194480287169372569718421936823994630964363815993820986256364672796084447111983563092112551156894741862206434163882207185299442248571464605104473639836589003078581568035265898774025189999208335156501473085882697506998399258596846490460358822444959687480616606338490883221695302621805821633133122425258051229344836921418163920551992925067985516075786161148224377797503251656365121107520120967310279907343574811866207848394471849486014147305395338169458328300255269724526608594202054148714597308789891073908440769706460597260743725249402643875243023501243267860382078524163440501223076548738408548901775614523804706443899291333243916937735092965152239077576607068058246052994955385418307522028204375312421125986512489123830451646070461998279404963561356251556202307144922774186688069192312929525097562702173171783550826469054952407200817839431395200227812306644128505340964700915955427965401636973414871113258814419286050665342594395342982738525759985038343939958275681456782310829498337891461566243710103723356548058104794435782752409028336265532407264832408866920351862627471597550861612485379781737136143079337225085012359096152396334342855147000112555392111751807740461675286875084979230600171531907260749323523394389696150740648032973409156488760248863310240453817018749895977250774061863036535392913131040886030163578388385255157964538532999800625038514258532928312235793208541443793630613062401504751221657207875135836222184809774406342161164083495583106143038619827778754383100465461077929997038637680998769991705809169569360363105912467927319676609912086378310849332554232766992818307053115863748658982062540129822456856691632990402840070601979721390264693609878036205568835708263075023884452205429199636681500206801859056621060846499614165453081947480080357259313001193504382271049854664698402045482775628685152362371715363650043495026791729944358429657026295964579187339803020136011877459070461162526440929974264992571904287213454700182609860607596625234611668383846853117277034827719701783574357293591961460919088040768994636836578111232016398655240913442294575909889218029926111791941073642404700055592128162502402782772165240678161401577374475765971294477884487787741126118687089485390046129855844518757568080257028778678195059154912272261190570612458908231403557300029750193474511109330738021947586998040073579729873036090517007116119139678534894349621956399259390138539051906175999615355156583995113091750744722426410924178899026469708232317448998688223704575501530030899227403993328899055624529278168747232688458519345696053747120054353142406887423466062575525835676604231708865600789667249719522254291428058388649506141314362989303010605012541113696046114224489668674645178051308152073800235028288477590608523991500931556856777830748166453522540958813789839590958189699925638864358948674424538006733984616344200787793512572510704042748493906662453457059408337325353651486557718143506449380793379203971138550122334705776587948244299644689013438162076808445148355597928398925624004423164833993438980545174788729456380758708041162170280774005734002794179163543628396275535700511701516350633484918004450637935367473179499183941514511485504192912277784158986962745900488441336584337416239302223858394969035550326236949911464729726709209529696386669277830691448283195658731349952406212052207947646480007644345356959611814458024768414896285585511639539755051300715982098463090141481914359990028838107341744613502237489537234878409909576141746581431962882581131937193206882344086832738603609447577750415318216079022889908222275209665736838809442824138544660912122586817761102700010378984816643947404132383319335935652696710854236328149380851696312765015765455957414627732481929354679199959603765449064414461895000332071618062926493724790267767388090808884383356886037197218642608208644854178198783719703035644869644149274484307758485832963312282716961128754687320801130433428395260429274469656192235373676660425678772112201159965973394486683027173627654132411418513840763179172086813816196784837718050968536343963133759006586900035464623441807236413269967703776648671852827126530085522404151302298572956836764736473325495756479595426199481823251482200277629473399703666101269381441141088401140947655166374512384109279895835299706772218050864209341117961473511783188474092069039590651263592002906340171380616796243865128005604478720156260594998547157063532758165591584718307799986668109787109657078258536885813250560257079858746861620456037191280805296793426095174101520916660347125425325058147239974688760702863831817633153353896767975441319486260096824122124958055971773119596388782526421086998428099347478532057789345384659256557748615881245272623837470125169653419614544883251683020878150440299358740829107592796494968430654674962353691547558051067142733480752041383666507925834134129632529773345654376575469592179832857602353005863078702754452190041411690923560098838852984263417240499210901483002650504823438351905203210844826682442243978490985070861049651310563178757442995630503045793951040304989168343022443464942741995634370435803546929350233589353966290367321088432882872660516720396271009493245832948980567315025821733930232463189012641816939101415397750580664378058306133989902760737394832138278944265017487822895854807175326861078817207882831236495930864210079804225025990407237031656260327284289756795554363030903643508708016567318180431710608474668918279863438356087313894847696945431311588451756184478626639725564400899575211688264768117818128869417134105168216603353111599537118722079065977272373345349265099750290834547790185808385332232136372618431475134858404781787107302810514183359523284234053552416757734862790171102259076870037846531192827194626813622846596640810022976382779350406441145181208169722046381947716737404059101150546416361200499943354352827663266368473757355267930302362218234078088389070089629484656373125817726712018733015634282791820246698048773457227846663239774920538676732640239499258544519975381522295667741085888259634212113901289413751189002970138867524290510217318273322952434475311960303508009860306896148126602790946342299730806856362613679920085913716760784590010789912494397398905291102757949092350939810507470085229323895211017763251298655674300857573537907680705934227318116378965133163586568804063065128321419696485667890804738160253605204114837038313404381929603334704134163699459211919217879043405515110593404078971603831408360914091321822623464277619980782823541150766687065734397817817217226467629159551470238301522788211585102419770415098491934426804273220707683356947622218574408915223025036470522731925321127892776212313215594860539779383105977119579153124632568478677179231744195544708934186744615640256264689323043284402280686129048881864972431689790067580664525320896777636872154342218821750680256009609207982372256714831760340287186409525899147499270326512316652409239961671252871487154600184142576130441315081024924787497348207293098313331922235838892139516157119176498034952673074143280411699947516995046663543285620220415779043359620083473992669431596608153214417940491477361364125480458366964841693382568275486813741576580343411554444035716099555233367033287436675829190803264977382428828924590282554745895495458330601117160616132458616485189923716011975177849764593539665757390500673453331368540811221502384278690948363459939596048802044593817234120423764107776870776416705024990107249260535644362487634804760079802620153443286207105746193810104779221493217912114754933449646213674099637828465784135275871637806720418495201380612009531896582968438268425368418640950552769673652265727846751331277520474014821877209845178711934389179414118896782403108455387842087697994231327691138269391416468940385687615928449021592006319767111760036588338007756088981060746399852344452857116268912407590231031303416381632999576877985025293327356573069335434828868257743528353321047367357184104273728896697078907472103479934942260818915434247276229187280681994612651767085737096032464793542227329840196059277918783251528873078313139560753001681008687380294033682422689177221345938475548128306931594997997380419033245467025145139112960127411109904733767947567449619689395673653761502591404437250322830622622569010903156468274034567034384496523735320069547482708399859519156836472917855199242441142348961253846748514656919706806686779005813167904977976482662339306551115751507672742562806966884934536587893852471862490993817651799969312210583680038540856337958797307777287708477274489731122256223971145425755794414784325832762691455800067124510258432260219258099533755948591233837681480588550404745067774908529923562657905957694295513416274367373077574993937754965463606911718742684181562886934275979392581665736368289299234087706087858575003736648484122304060314259846391218063055697018302999564646494854363695525657131970161550845070560630090691647175460081768954047274947533012236486294706664789492503550540044100760598204376841834114434893906185255747397052864703813165889163263477778594054302529282227677049639870842478857387422403392840016854286045369802707403836715480277739115081878514099353570241961150020536412771044272092487065424182943778588965795693188791739157018986387484981493895846590948052996121380503868438032779811201173936285999167180469806071894792024155992301924788234956558199670557347674244286462370331938814823657298414801371055989617203013710764833852068546803955178637600227093581301505369919669749831976418066687227436053505168651855844783606699885329487160179591564339330838493834165423229587627079875324019205203246471307631145017304551558064594704634994996404518994476698443628550811622887094288591299294472319161441254618355701730026440872593434435501383736010676954980798678993919106863311552322410304955286714937837063723825297285518327546496029122321637469992802230614633690278810797366803783902718669282060353383469089835142343969668897854031941351448601745933119014896049423976350025159475037878627265270595611896491622614608270691384901056839152246871459766259632887150237705548128987442999323512307154335392881062946875382886522153472441011856765076045005094399357086034886060022859410522533754278009332757342348988343922701374025692979060077484175474829057912338151298980120577187731797326000723223042440994185482774577174948065060107378250946986493584474448450980538096211562727584978910995414893817217790548896003597377484327618123042221583361788476834967665668007154657483486694325766207763402213225231928867579224930658501608951208816856135311455905708364146340996517012370617756884475457770377271858090260185358893221778493640080986209887863999057145161387316089812344945923502301509095342420995968452284307411849787748438414262775140586728708909780029084650038023630864107600473360002820396990736822530921346472116987361360961616835408521436625875946634097139156956505373517294596481502149007276695113804229528829449651361876925418333949607707752562777902544813347195080745986678944889913247270120642722921993859889997545131547280977512500925263744283601921419275280351064513107635006955043503582211549249576731067194911263991620938700600846502782939551669101668894479115333899055571730176186346274461477232024563027786843441611176567185080995863409337856458786829342610447540774750478853475534117238951010256106317471256377105982357721583437650659553105661140104753715581523084001207497147788746550071370987988125659720321640206573663666838034543267518290207293815720580421851630345597174924775790400194248097232292667125497502935578822509174811901189583826625886472337817322947451914766494461251517711100960957174041663233194388307082944086524169977928554983776016477037829673235808547054597825398009379052140887006295370468241817338620377391387271463788323507932927450773808418596216946115278712044495909329843112289104840586039518210719584087650976789379123773156446724377036342656769145833702685836173941413553575077824234622778136603910964248251883832936447259696983656815989386311672983119619908024490211197760905290226517917728931017244435244823112660277483781701356334193069198742493744804315799526625323346748699140351345168425708266916647722872872752272658485492423870385764555150845170573865233014827217919926704959429599070064002684449814470213274030389908317900443977574794847410699776137702599895732743438484958634838447236731425152122017811677318771238371398988723438472649283524850000893350380768871951680769809217014759396134780261156683034653590912273549466709541090300420502183980002837433430329355337653522379541118508797054584230220352976227498678560151408573644842661544307740039945984533716020979874019259186770384116095291344437333651504379138653053650817344880249391914241372874859104918892641139575459278537958640414683250361227139915844171538617153037373110329663750590105357088197317146306916795898328440573765382671593283306210088718407362673964689537968188207747418973075734079175686426082368674481877527012413714657550788644144145287221368711091040607383155521632881744594068929094812479187767384063522109874176036247588231255154034255878827271743172844139509466911450013326635478578737007984489946230714623942723819192417043232126441581444044294530412293806439563819079990962235234858132780226905295272357593085328130150310751825337205222701352481452918249359287219012968271901359175698884617792569460434348983185128276417480438708433391009103414531680782034254485891752913817527123942686194513311645018402772334431838767567023535438028514821853912556691742191257074925896789309305153660917209836971163840748403900055778771872480944102788741574434322103366927350050987865869100761697012975039412045256190096812707509745685677642191660504176258931586803080090841369487756056533902546787873370764137595994784545972881712786485957184631919798177444688542541359309153504896033208984414098124118908650738554267547533099744693162829392065939877502446517833976823509603816783737561496332370966108682597269045138410134220030110067108199774969567682709920913623503955498540801866857647038832312948452898444107014478491985763566741894416353848244368661990105302326815125985446150060529308669027209979375168549838069883114355931885736052849879193561501527808307866763780146183257024520980216645085553247343202105510643420813310786809595659777364138569824643037610760809667527323250925861836081864667605203640288887819482388882552348874509274030345158139765982019564394411981428692412920106399206822590220356219532510360669876751976389207384316518038883374559908601974443048056801012786410872161145260362279477632107330415647967921114393446699252937406601802407004322983661006744973184109711613680696634344066113692692372101353649117848156462619083433806308965767714656223074860395136005647040283151838786958916183996710312101537261371622267902303320290688505383963150053121748818769647556112681527368270006362415000522953537457472350707070132419425505587281449340911634858888201373736620365996678869134234153651981024098092020007903580705800908958287770232704267760335555862869383725536003957056588389933274881213686280952045973362806628940956468552867326775733601082747341733475562461178823571959625073562663591061319723881731043163208672617805637522814863455504987213173648882794483508726960749163282538402025091417250572900340534341297858057790304829799631733942314698103381196190213721836897814259239229214993707918019823023362953296326740550368475639566998013345730106991745166693921042027578601014258127754619385103131596114373365253875961772520971623155865942314883950137372905746578739491018980999050999820020615191935102029627551749679119847787776075911764643966183188255625595221582848405842771976869254388919481070051489543335760561495834874600940783224179262397688832522051498115805947463107227015566894213501678755491262791854581874555618521663372212158167207115776947835715444892549189579254036829549156894170422244516386617808907571304546748231991113453071225467926612725670753039498797634447232439380031742180603201804880635088084412340460484051263907840467238892442018529583458279983292571653597439388253872726985070008013539199844039264886241868285107914273291718218083281722031324263528171335916191694495107648330616459865351509135947322723749970725440150112307509066885259212487146521330748375600409261727630250807888290041175917301409997203674858560887545645275356081110768785284821722890785810252094000613427938202640123695253890691394789245132132304587236822530152911247905201310736243167437435430965643772374665481729217788935487441441424820620046300975937471627387178384134527384429329998912161470324690411463399578533989217723908542306908230421656840133021101497675385102762510431415677864183536566728817973628263359984918179073688963009689951511708834964314576455801067163774056099037223255833019960105641777479091174135314347351034207143325253446723836818794496547970323616303463467371959171484620120634901579154956360348727567643084248545105495959746679653475893417312036458171430868137988507969685292554655967678209822383886611662657553747684901098781440047397608125939757699539881939748565653620667089085922924974313494345200130652511780223906967422017428800010741657270468773982518036472488172364533224609259746924648401546392872667022975425013457956216194310384938940974388450040932156510660640274525375504710999898612562798981693361863979656841408844161455429073477079241192007920487099960637457252231102730799382563159686555553485758350541341765127182140720766238648321018716469661511591394825761190680713557325072866123681385377148950517107237507578563449140580469723770089826946777918708357579662115688220747594499341463623131076247375871006065082396867680900675713043516910667579872115890137663222537986013226644485486362038328539020495126849084064107720150719944782379538294484998529277563590699209998711146277614845755242461733811442026970352838150605719919600750934058824965763885539169200381781671663864665206386189021019049572577067650533220462758372601211029310168327767064272538608153987767128216514745321904281791161795260283612873494017787783866443678210634029723092223292362448715041006556257347948965675011615820787697618729895136920350891906427580074203565571970813392881591321641821664530284528420617280197527304590396063333454987970257899517791335376922319158643942451945530666314462450669005855618399321794313307536664905186708405868280621680497126528937761171187684055545019896811243997640325227075481041248264858875268811971532216261494736587983834473724279346024911951517524114137394023843757299491154324738430527101826965709636965932476331015275449155958421435744533774024967485973783781641775318507737961399110682933414399460455882514398188415865038747900282996114851021819569498906641139700417250564027016630463196732564022008203969400689451982413069178196912117656239073902013380091662030429082703670831949239098787786470420999676136264977800335566431941211888960482772009833555218259533316278258146472549707600026356330690736241799437150042608868542344696320089060522006525114690960561502078709397077826611128583931637862624275262563193729354530003907520667125534084648086251965071829274853979134103984565272809939260115742263659594243766277887739635452803552339007908896895529163868820268331625607765710795460564762478751347368586068940872626268698029211759769170965461702609422372990340207512022906734836194962027059024721449290550320432309917001718814632202051955272906779201227792309698339385523507814575920513738000909134488815719759413927246039931025686992634897306342327325584129947010400881345037054017182717536977664359474550729285754423110376142625540031095932952625260417858957034697694106419644967468723435902924018200430492310939578371324316995530007983706558513943023067976846185026487139173587657135262568734047497154636451249350159365702216348554075152256861692461521990685028001258638882985451150010347858162906364957299593393961496145411014728817138390889015765000332890574180327842227786003721674478167963365576141882269339471219302332629633523780463228452371654403441520101113690604267629262597072346583156081704354928340363245889409757586655120424347294656229095425192240545697916692012563314154986138665625796821519296375834690141308429632055201430496898862594985371401744284033951301756806252883290673939258058288744441224984071548446220718263490739551280848010933622152378946625891825789438017955934849750899361014717994866777683227466271818459128672778579585117448449829118748507683383465983394484337357930857024620091217982741557152327841645065529831711250782073141803832659943561835716593880173961291319039742359377161188233056746967281797264871483016256095440195537200676749204576716715391747970516215860996391140547600194114564934218888895040246389439754316019210584509879877430734296612797319069010888605232121337774389360132983127275849082342482974143905051901099214324255904720001844700609734884873450280011966165453869007235226335842357947649454419517999795959018627121450470304283974987103966795457175942754040680960206723827480987563430602051425169323903295950700939701267270147087268890879149965704741848782511186832641239771907437079824060981916492987766070816402331652718876384462821332515770913067951211594093849929982702030977881721866032579065646868326392682288107820475977749621081497967820857327949412584210202181995413490849554123525846033812987502598562724947477532508801535900017044948063967732046621090024137455036488464176465656872180419006175151453134341021048217667545611361677070345002619388554656586564743959874230953986260092445139618316971312980787208906885375428851475181244215954034172172014534728849683469771468995416521031846585751630759746789836617975768147814957083270837803684386224263095328815422276583772384414741498237194544011762480525807418920705665238240002297759770642001406986239457656239792824573382536112972117365996286058301847471955032042003751520358705515035226694807462929324264285307026413225681270089955877364480577373081089669398847622620777849745123628981963924752183167273370898902842673564566312050480033320848610182239749992101087313999119127083606127414377533028388884386279575147897449270154187728839035275828515235670498384454560339854567063670646165246957334576277946620229334125321634316393018033598848183552633429512884137859830304961073838876407866745280774324148982517454806705367505352631150140627213737977280091616410499733382331162143021593485645362842892793914249863664142355478043048101542112615787937842307247353426171413680852004158360850039061459095312843552577105968517355801931895769010501352044107361916991322671351333089154761905963941159606587049817997925283926526889721944175296844535669514038579248502682222103756703256752872821206866817123040571013755773345393195334639001871588766042186619629353751558617097298593004709183286999159428733557166451641878608861443086284300542955294928592696073908677791083560530255892613073208067185745881443051372794441666603371715542505166616930635443503824118564055801557683263041213693630704057421835564966937145347381781380071630400282797837030650895358982040703310477115061652545463484366272386128520184334933306180585158625118843614044760929426739685065132287284900323297448005946727212501702674218608252892348749451951229304265890305579150317571846914696929241486969129353830634454086020280062979177974130212842884748714784182730963813801858655657476319874057857601806094111403068653366269588619873015853275179506694443130370494614333372456726226304841907221628600541807644157407925663778712135557629242157219132842778025772483125626129315438491655343171298503161264248563901401092315456719285475547215669729374271993062896147093110657439440889626238075122637944804729721446220490251447165011974127907075236086295002900883301078913044621202657597979638071742272128679252095725653803954542605206177905194565292354623685904102933972741720742902662254069197151253690667862686392547885538973182839240672300039372623433004419688629112158582058119406058708018255902408852106719859891881379687865267784099195599460409855375176097268043012314004716677527766892930330559479172759292919754982434863971143423794741424626777382116415291418067738074040223546513751474516917134712753675097416046104708169333737786771271624910323994464425666925384390685341845179596931000470908199156674550936859252428336416410333821519327210888913151641929310814842054922074806777009732907361693876682317231672358436597483582665356553845670061891734423326524004388030509107917787344597936154708018580301057973384010439342128358012287356087591446274838970822040867710339103702655126541738670880046713338055152649870795274637354067612696524090885796707285551830820552981748604343574033170220537181144738580501351841614063566673219560685631895601744280032225122952245562160174539659323254851138392572791643021632340160520744290178670102654261599965810379909382830190182587368556331813551645768960859200514861244746894552632098052313283723892595114662021224516608049801685366348165903000763517406611150167059698771417766040150235860388312489301639879801915749127799879503756669056665850546223807546997624503512537292018024879024227041084569342288842318776336006865780711996982899604237145700320055303872058538567187103444959931168034341618896593204565890392275877773924712594777209378323209625997055809093609804309377787077820172260188953878879092582363751499380894170252243962958729204167947180469032986233269795470964714251264695730867380319700971150602575423041249123595711540443128205449761366000685958311648529622831720925909378783031695966396751828420063398353634930532881282640902823684230030104102278131199698377697653177509721563858231154001229282287254521858561713309975348807329901325224345082708926162310678120605875678174417318737426013094224985365611418337574857829647135787690571341379440363086665487608125739404260733517726392037079782989207612154174004529094460427495688878384976213707412877873029721031225468516506598750893702784844471461447913319386148505440965761814735877024428956728461362557910829941067533162920477312399284810525436160135743121043286493845840261812885257274738323224800821471991324399420672332263707648417556308240910639157328539935811426173373636310723584600822290014619341675014526465860713985487757604259345025834362450969147214513632851483660248750055125899241876841872900557039327747797406922101916629086752290765501981191845902441504701755231288574905653288342440045268370881142766878849798295224951873854194644653038833461135072963923330452931325270558313549867886075209299268442458751832976289975229237175116095501410745886505169327606830360410091877390240673739116496533002259093369426770682838556990123164303941670472975959044316125976324333590272157411593385910712535306517656278909447350675522903244988049535612385731765564735982791539356716409492617385804595933493616828485638479698265985684715941775581166182997022895862705969720167257748916791887759904496428684977775576442947563328099396949744490616227336882394381161689390311009518362604703393965233411991315029346952085032795891658943499448602585931159562606607752617644222218895085504328535117657562692572436541709426913494840444944871853743227930848823872504356769227499448528025669340895690221517617182973016222281302264619767593799904408911718936239809932346842241834342951950784161508329817780359076490436710968626122753955824464196669351596276549406921394021635460152514252522913226873817252481911363540510433304022157356259622180722335258576028779082147015490093061189320454074590950779614273101291479861324426299195533550583031488061008532829237895167468092208634428728932776462972196315682428104345106646694083016066106971590607293407547628854862206352163715917102496059980771556954533966775262925964880147024126402897619824306478686845462834167368643625448673041879102081044183564667576394036739505744676013790047384747386248488508633748325345454114342678439768443820670759068004405055823151959394233240560758333213309774187947731782506076151628461887519128375531949166403107011743209484476136918178948028343715520041871133282475892423682707595203015381605005381814461629970121418436987310221343568760250329018897217836392896777096263530784796995299545396053500832124430039821241591294959325769482848518835522452562671313015850004229265225446418799251617207077009100023712797278168277681122870885666754956366577228532666538817891026386945856386969214647673282676809096811990271228187606392194142784519139168588797130212328318418159679252728068760249524588733042887922060643919118915096082014661092924163155959330811203273460847824940901935910695943873740707991950759959590650127542696211580892654845440846590107572550684654215109407120626833510053760146408581004925681775534033438467769263066862769555191941773272904602786798314297586692591943805865486297967471999510974832925286064722241597272698744609128965266138484719069497245071821367521345277220164106114199295148093985138709282583334007867178803433152870521631628591794519864748809931718949182569068626169511565563647944808939580889617254729769184555410680612626560226741875046136202532046755979002234080199322184865792014358857447524855475344606742821326340489754820898020223375986047882509576729605201943443874739526648270324503308256855873039076148855630388995402407983770699797106785962776458661980268322448220138329977653357841814724029238548036393326448544038218044972849750375710477303254669721705700882271959391447783612372813803123704633361915211320639726370941305390949933809893876114302274015315892211552168142267970378845657598997802309424058248758049438830005172661311714281982535064540296369749597393363668240285069336804315776609939218530020887940279840827591679426008783136840822856996628744864790830781169914905386724548115352542504867636577176385696678423089752855122912954074647805258081076659272357489479768238297616588119951612208812523414123760199148512826430045385163583644675574287278465733931819830635926880268207111352231793822449681612907708141365755535778351889407532465742697465048437103267711261200864348885800752424439781678413006614293781380809411079394566589714757030062458149725674539394759452835876018549135143063912113685352363238520168433975967434863895510905812000150526524051562910887580350248406013246088468664364400049734427472350964443188112880876090582761856147491179277084953392909473710090397343050875804362358853677336500785820569292114335376730860839444851716671992193924413337240599467751608408580971502448643099339691538698334443082772986076433307711491512710070695986337561833731736986978492951595820289973763627202576481662347859251024324302193363395181073651133462941567661211696694853348897185743729994290834511187044392622187847525288168867096423503366615066947805381502886847993867391416181465407491548937724763011453732604813709304790876510961637389730270006757509260129198706041586328545388592084189598184227467307565854586969870097034691327317118477313168211611315007869354395540683041673817875558017165180961139621700506450967265554329000806193232794680136093814024556219668885148538829717571432934188744974245831713568738262498103152226704099199062680442157998711799270285746335025016944122449931746062804596493448672001753299809000728211418688393927399449123278546484226225246199775702249724779188500230846048694032695273567205889957053925027386410238669572138052072843200801675861745807059016356822537721192064510296358415206247283199946835192404838015342419429595802963155482557281946844737272935031562040798290310053786755594057528209069426310218539521041518153871427296577822058386598136886200034382707197156127727968190142616983348373120195648098820653712934719447877573202239705522058327855607429598825196663316321623162599565188496220387230193181648693446070108734771511964489297702220584612741230570676056697956835960913951826633651095397561018638164234046171236274663497416919733937072787257915562141579534933706878441134307306774925718478399707824817239069225151898937042714100146825543816827343062810669179656000120724438033012712601111398350636132601349996958692603965147246113357209072224918635001365752094608221380479260671809788545945180234745698262611725568416351860680453280240876257085874697719603687437943285968941767869074602444701075067610573995229446251535865493635670918674027934696981637871227213368947952172948998508203945502371504332614259374008559042497769786781941884532767705672429157946576806280619219549962037374847367135199178726447104363081813861574156193202562335116355489145251945985955374438780884409280419566714608981377049131468789854628526304360420806037347219475060081558203050938817201767138464248298589337860126314653533477290333501378364152080107753559263015790981612625479413176932721330912942790702755455510850674238345573619712839728631692107612770449521542356921422836813331834901812790749206035682004632897700292263413215662822831005615355709114708487021984321945593608477704095176248404962350367021833040506887386452398526858661231303117724647119047572180798530555153186173301613285152291153855371363875946678288687543220968652673166472371044768429243272364340053267508358155094354571358693034809304103757383551598988313866585967950984699972716949786560555964066570939821566048531763737353605635737280671178057553421481794400127077053625045462206716640844304420943539483246239992209373412502126350040973927543985001054174154449508310179179861374726223665785115444736853808525806061346473824551110679881949835501316771523891038575148948637608147299081374948363319248090967454761579611640532817341210073350733911026980796636654977674121994573122291210413269879184722198149425136758664700507179321351993407127579346108370352747704443838261613698894520401657024058356244010578271479073945067718968217762342818508982217321402851509634616927856839114930061378320468553477794759009474525915176397153116589417005283120698572796143865302590848265886536417673105161055605837627841825820481186927052671299240780107277526295349883287885592751206987189831650651517343298481525608601253509523784782473651670308608677345745417923811476872509675206155599127845742949434124915767675947565296391689788051739639009962518230265251515423037377785401505814806141971381114991789936507362508061899909404951571034193892458509708962080796921618098834560904945722930692853222415254461380852127370487666287139514852168824554908408183561434037165920923981219011835926560424873762997207686842929477207626857964180648224229149863818493285809573586259358209842317735957852156363837912246611308132597367990092865263585877249379721912785989529913712584151925198079715492254794203963857726706768833085664760690907850363229689524156035941682875368639356696245143091141054909000386822044433441188099950756970015176511556729190909954987116498207594601047590147828717993514380881158732963109707763375183403312196842958788483008793747023215924165454191888524233512213359872622502577029301913074520190429171436355366052410170361741165858150992718797438662520913535660236579024413657239198780366742411110061346106823216098918598363729787351759933699135764562974486894119624728552696938656569169235927765858444421013916360783370894090783871095700646203722065268908922522894879685169336031345224625225657703977972111198782599798137480699654090093820521199306545802050128382933279643587534323131923353111924046272341965739536461555869834485325487454907227845773710423340732079092967916910148747054280394183393918533157209811523308654995711718844161619661817480853315007109266970962224739494699723015547659613461593399501554723866626379430847176248862624788835659031892549655864226157620527277859884547004431375036965041921738681015853408610473593461788711620466443305174436835563829240942129927122227029939184826353357196541476020033552039089520035323107974876858099002513887416441092395699366634926092152183090097135555926590280305895117135316053461030847408040662471506284217153559659886769698373244174406598897671712715503564037270705825284954529590720566922324644950161737774488648097336157858574184142848868438938597457512370901783613305888879663075874355426651653766474021942948897294431782868942904115493834388852265941553906754702067993509762688575553127229658424271985207202040670118370024590395185014508284454211443378581838583869700202435127793718744456226788787987860259524701668912222244346840922472914047071707516218150195658063148547865469585000885163568053480967427744064777335283528103392231358425113198444126147940219823284909921209226970174415137011683703157226572059446863319920503443942506224226157980130891060712353189136368846506782050114848261289177067923636405885342246608860783124371916368346124883266273637379601829293412614405504800532754622628007084882749704330365285017188771205939111796993077924510167004603713762163295473040375420587087895272483922719747925487139753584687047700707915319832766398101979483732477072759996368575834333297852213566896593770953028293140273095629189801456827708311225822075843674985230730703015140410029992610565098272947682369360321452667206795761577790597482105557430902947399186716728763815452034093678769739786802947999470645683766368435805612436819053642338055767082523181999096880467492266051377405886450679092952646971656971322763180483055688276290645112349427918122398107475230674585898102822818670609315014495263636803345697096044930171343605671561848655248914565330338392838719382820021126137503096726723627948419786731484097567957625908155187186791030062282926409972686326527378293833385890127121035841453630405195275744374276048570109235076561397047363288986575643602193332564514461069896666068026095898516197170466179660728131492350442100740978064058352002801825343137935131804358032937407152751327677918836891762585856328971239431938309993918507089544487804630264495191395600508274261198451123230401952445619101347277155871323523044051623951477150142207699955133837097395289920145009324948589803896589200271467911487498171699205549627677932940124447174219179091624124544985470106355417242634223264487196189062875863638791325482911741359150922800520655384701230980994215064843613360994068217941896390430196865614510599418341696330874667997005148005264665300472527274965034270011730734496585947133479656187860206665709273972583214713103041381343606946506195493191221337887843779247427607542423318538700835358694525490491465595460049105055873683845141135006485176717334593245874032741614875235993303617387226582492265944290074555928878005921837376260467506368206772983616151920645173671461342141152318042233377656997676619672713878975923646908274277926328720025152982480914095758891582701530499027298414702803379416798790501177541118357414533473718901234832149496767692135255575842499425832967357148315898979668894011820038009323921754936316935736046192484915323675715117136842419879061425961104695642489480249826793566826418119865020009237469801537130847959759967250245122947104865707588813184795994763209928117134616052726166265707972826157411629646581012001910110002214124551712449720425979214611982061880663903787787002494559755124800431675600888222884811534096093445564603940607520074799652927264659193461518924234280248557905381288805936448292404681260610877465777204612775525002256782781618228063537795190481951984715496959452960253900814400177015872410220909625848291603889399605166341316129019459690108352148809624262011804639276517622882971693332893811194022954180811256398650215876725792659485793261530921315877863907244650305631139369097426844068417351288127949397386123904399218032869071675853362250452716636313241864021809348203716787505799755409621867315494580502530486888687597641106047059424938591208123175596770048012911494590907960999586115744856819076490064484068775603714486926134648195686296616024015092934660126905135468082882319527490258515656121286463702409723667245735007554226431914910723041914789957935466809881204842702655049327013931975345794934486968827080407369651733828472822434717129448040685701554180562664136930721881431415654020590380139646007881736317388857681439672194180565637038339198310223581946512703147980397242564393282211592624470591430135269575360313292830337937788240116976334468885520654773843758683614197776514128134473485176534130996990508992784913549585416672278961155403139844606784125547967446653643937281362128394190084320622766605560256309675516031770784260225440492673382832375192125236765486827512448539999815023770211535153686005772960557947183544313249493181546201648186710145415909789227665967771517610664032391353548302879226670023426807855777561695546471440659964328719767347154340008367611087821716905411895952815356449458721686856183222659474253166873578399157806048244630595664498270908585635861141043835217423109272242663024320046027312981471605687806346220760904466291079519737532825489144859614093466873513042958452319697490416321077704968308462033758948233149782054593082216554904463104759294973676856460972563369874942546197534928183140946760718955980143766901129841066230834562985065735390531338134576609202038080448553405743969810955574197116029777235895878867037385144894559657474988376066795051141380649443226784998770038386087255720994366917938965531876907714473990311351629874856558261592992176166449755180963853617595824195610530632631159776493389971207088182006871884523593478284575159672685571205794147632751620411586954195292186439012516728369724542981661068417881406077153247905561914923254159739917701084493467143092529005353854527803339855540936151152190737058605953881317133455347028659844432785111197988490975658628564198907636972293601253168968512210474112840752855424978692537998235177647260191477678120070945370525045025478061987551120823850543389441939367885960196255664931417332873348165964200608516911168644866395812797891691872913285304385306541348082328878173999002910178474413846220585873608052759585201698714903015719130923947813761499292972003985506357025069678974406500285472176175074703214210883506143093173743410727761911608123907106428676231870031484286531198088503973875149776110175165591604899793691822322816167856606469263494368172946939239266062553544657932189795144009126791755167360118252347475746196109735624496304213410137737616617550255416410513852736821999173527534467243316237954025438898835815705572153028814064109292637392562838542107920915878344600676634282709283894647070516431047221378550204422083802005799114098724709324435564569963446709589706834073652755776727988750877932159922915861319163017597482729671446908722155362291254724944179528678749567737997662849237783708782220805969005599663603286696283175214575747336770843998516043299726855074159924496910083738551954459882676395490244916709775428061729102641526776124627300864288950508279958190735486990742112874814194420689843213609150316620100132038459529442306634694393332715997983254098142807243204993793951563648118466612580017447262524587338117128710465319830184682938268683529412470205144862981726307155756331420690467875065875482850210829644526586962564440584048478739964771098010708217842821105234909031038090150402261203280565868401180719122446561834344879872239211957701496699615825849986193590194814874800173031430678113383825122344729277943277734049390977449798125207928060819078711110990402461212254923930860156594997977681512566281173733309391369606067191384212853226673543845808653957601766751951827872752024166088726993752605717415063771095600841188241048473188923371207290293870402602669247367216923852732195574276322902883070814434758597677866135431039712200349391446540534354209912444504782496480070431670678166802544237524690729410357160881951906687394702790005102486919866906516673136034236086455707154099107809850229399683619502129476047103692017841944073556701538079288472828941300087382602166780567827315034662789908895396876917713187473616056381406960103807720825799442255095977556651739285386495987062762097318370722294475840325589210048709252761103141079416048313373991306019447441180224521546938576371900982059116671297488824574483942994131884040232015700665467207258203649217110864802562296862321146948026444550592210386169114624671784125161685812103890119511465680766419698770715637931942785269806225498669655137753699678746734204438721277682963211782233552738757309868940460025963320909668488179786748771788546631564965771537776900508571478535951938773710538801035760449082626195877461939394978831587785181582710289738906060905835754750547419826368608879744792540331000244028869540457512912488602263246383256429862256552495477002966631898798126806779180402095712591085335004726201267196961884836077419120014555234385727972427246586949351738768378138054314762068707474578978690852567990700524601812579622899300949525197819281938639620494256436040023785879633518650156403225029521586638432573233232183731915206339116635733970992638722300849123357892786093434175111614205796299161879063446384897339584100856929262857515176136466722396369974978740649179394476579550047027994272721506037154529797563558138306326779109825499889151081936218141234865306660068094820918892882275965605091184275930077831017721767357792750262301780601740475839879192877078052081501013724706503477172836540625988565874148618037808467626422948364832270248974803724567924045046759961835412463944673470693262412122410266163966595502978789187486148781382592843574871904431141462009282977185937200181107628237859432841110499187892302281236047378797863503436329315829869303636972085453388818399123482606602504790395840539745644657009028838772037496376806830499367504092656390509178606238146959355188625834221621043776842700633910649479976190106093736332003180870021712609004385629454548570212790037108829973131477641880834143864776555770171675097257624001115902273864754807009025497422167122347276572914923301360617131755257372597744685190054931917277806516148050096524891787960466136961371331226236438443273776365178000788425252996486145376277241442040763111836850075328741405320811491525789572412720117166999601794810229064200389010490590835661616301618339173269980264468215320543265522107870619546316096203855992529215832304320908817416347107910965813063304190743385720360630845593563276279602326396146651090456092696784263713830743067090622615934578169319688054009548138955032982797522123470253269741069812679933691666390140595519089908944357255861625166401313029908998383908932158525453706044062591235264040058675410947256094912766452979687655728073689313115887578524958921138752369126379656633782318176465801063426641336970991973932600826938476812728082385439182905016401104183075272805469603983707967777019979865557576791190527551104433277842465778692356482253264238682178888013528679759553202912033428562442116726927827548812188856935173224369052168463595463011754477717572751852337967004360744181761392252380355559484309182888758720671507383030339519003086159098033334620355974990486201404966414392223840461616476595225503840042490003634675199537331713506054871738732798636324592042595519097812847083116921282628974954404266137649568671624105205584667960501218546106484069334511707072805664312877452827933311645818868421880629174991024448066577368726756847248442969588088377010440531010800084638374991897585915446555573398228592702382823773582008209360397421060684347559192544316180065353389593494032364916839736061655056785627556354972721667424398740790283358873035052635565004509054330084138350705496809538928174100564386925413771472654661239676791665125459327371093705628143321143715916343045074961664017344296882626984501526245560635048197853414184932136941605091788016125615386936330118776095428581768753431766448762875049708261591497979275941331373312775900406942009078650581550165434149110820015452658891312886319720797921199775428385668516068308678370879706424595711824553662516930855851159393933679095724868691381959204634776263831735039356015130445513582849683428145613843811655266578548819742278473702762458129287722427134361967043399627779685183978991275177331564174260144849154504762366069945517081055474813079727194676978290441033793742480923294954890669007415915843346665260479525160307880605964617713197703892289679225860404428702498322751783344175675527399370359733609817168759708467911831571935267525905153777500682090484260653469416778391740045628660885303020698457632497290781584957671314928989632201700067930157246960340494343230612894185680264840949989649610169890060352332221474323323009370978208844886783699919290928642133349572960661813240056258504731399133742681808315878197999852152936454338531645196367048926025036534290201816795716332065905852008959535917156322514104235153152543000370524232661893937955123734201678006067237877191784858946161096174849197130904880968645122404289965954032842540050714319643284307816710662209221658071851040881913254962178303530501592207687290653977609396212398459166672305436710182309556572109732031091059222225737240089784914357835675355110185983953965527859971936352033160269210924234387010470825291536768659646016147819741749598510437156312788652709312570057355366494294869855615502396314762444989986538339326522575032583035156240058920605477254777681267011636721785432644340557560454381020761414000452023129009917855756819503307469353113284602313036775969676789517010448374158710123292834700970709050349890659552445845447142978784293037078487594718651792388024296284099444635919746818894066700292865027750389442631685088311274624333175038104226418153723501722091802951583712569267851156490692340330237280063400806103557029297391136942075478491076823346236478336363794691443498111439401213381555318770722347157144650684996389380245614057007212678745672778428596620432267771556872191134105060650066938913859192605218600903741960156105059457179908478935405344617242053341437983575850866924993977352918315010995115474877029602911623648579547634014788716251633006753497887026957163496944656330176066721709567686011206024496828859086267390658028201170349072373545987327622675838136341890666670301281632031596126058063883056452951523934084579712696420843362034271670012079799115874665170291500149376875972885213664552562290672594933078241537777679019635987787030730313437662196522507630709455977480459149720812050885974357803366195391020569219405230887438216133108175784920610158571603513394083106040344715863618175181411680375912056785450452190263697748748628468312508461444326475790224091021823420459735200151725328464355280008303466074645750003439012679743506723015230497509649050997793202123747178764180338507538878108144802544367569843840076741847812830029166848042390605941350680636860685552360175244885110946841203401774728238154366481503207234763852080643975147833187830959749055855309711640383579979146936256132928304744519704746961583297579005956323834368354269740418634128670432302079723730678653966767819191500777119132275716944146829593887066066074258585076765465850657194712579422368248728989061277383848969943406837234229542793229435974823754189614978714374284109067159011632728810272189991947133588651811073580502279407840156441286647435704881500180143301858987031568275553050687408072792766765491534578717300478579764103600884277828874725871488665591866435726875711416737711104801565714729844151196020641535415670004127163806106358951855489272247798805997548895149845816096925598505233999811691520770951978095464106589396511918398548487234729324893300494715043601191294036159396609800280972269953865317751903255534040772466298260004387765564462510372458267691371081398023418815471787289817807624066922625324638129960300810531773415576828722315344483724882379395053305530832128210692829759809388542806149391073076861607613241618475411575180947553045529960262134282261449207561772322307009934798511993220991624826121111049324705730209442307789534782544594525869583720041100385763166407940155511434924047169714002919997156573774012275396120055512310986120357692092788455894586279295988075378428552653100534390276835545119679607467499613307218488926546228181620972551707688571946707640508587046199182274501832838178754526167503134897437380006587485512616390002590893898746437490586081218939822400339689289534531233519258234305489235631921185693639450245846911453194706697810577162050792611974888751956559442937366313797070610341813848017172139572228213677252867318683402600012320455515266357063203557018744279239192235910824711011552524657981506920284618768377349917460933841208644241460556108893590277515625827110411129794186143544858588405456054540591651085635349473326600180638657731913010773578365879756719116743855091449080135151011085371274058485201023734869079354563674981800833185859754135384948529273446611493855031522919789988836743836219880838963846226276721961041429172657765670542114632349857559702614108999141759385377909861210319487599216017258642463929380052088287089262498600053847742991647932346533884995693060523334208661593963642265290306519387023850378957335083956453226954095312225626312337797658214766478956911056621772841503417533614076605673686050677141485938274789007239609443601544432110473790079780127789916995209711282329348619324799376615439000659725825574611096671361388249279733737353801889962969491756883831167424521436721936607137824969362951029528004517321901281112599376204067757427313654518088162275405604740490888393287167661184362656764409273034924989583978919608555704954409735581238541474238418941056098007607000940131459538676862195967793803923835195439152984493632847325415046844559902364360150482509461207642255355317715845617236834458949754862734565108534915448273546662783222484069924413824477365298040487381788991395290487337576478336262348972609592603158352249038933859447457205409222578460893632635241180399073587006375015352765796185635479509486023715852085924079005063875293120513760014054171434232558074205851477373467449023351739140244589693864939702669373901484077961251364675208158868336385434385913375422830544550302269514768191185202093138630061420832456827232526922699595053646051710400915043785321825159122729704636596010327694361567806187010751971518613355328429956418708259944316910439617724208691123742446359636734510181784387527497677222803233946406745897105652030271885786367013259737613020089276642550777721754125233723468739341174118210422683579147632355098397015890609055866693788689201895809329309341825748306229069943743060741244676707734802168794569023115049622665508601010960942269983377525057918855841155859498263155312950330465673682488312657162486150846789102920885114437451783129976601182607466296492483695890075658571029573779914572382008187242231494101765357883342756849104005940297544666590615318054606068391540476450727402151126635864257375957934078032896719942118792424512106800009046680518649074581013261137606700958565418903089344864773938800419532214901997004882273957660962695557800255729811683020464195551381517395816434429629323796462551164123547832962286853214036856071077441351465507944208009092091739277160428347876846594043068081304521413734539700635107090864121337780403801484925282136703128759789037099482895394136755987132793723850142018658288557828112384664211279758468181628046064795736287914018400605754279189839479984357879752465114698467997592819530772547375858828502552367288942263651749465682920669252175457566252908681973377511012388928400254107243074256808570984625949057760145350377405213208392280590388921026619752260848785805912374743598769883070013000584451911300348281666584269426467873688182732261964146524155926634388101725012820486501102878709539083397032920525496258603485867173472744351528007612784143469689648700107906654411080743989115409406249635341965238298790019093442711467679851741662674291829369527915444466140849185064508004853536321893228430864611488107534510832441745981381373668777690727545959176870730051616711391281825021585436422813561094686494856117465895323579514240539735458531326505074781192522309762373619826480068517295769445619817207363060425811475890312000989710704288510552817378163091604980347880565422078671889701896966025101802880392219038688540481413894999324999243320535229100006861421309001946476696474299079434950428323489486496833715203273071587056330823110304840855082677856185753368847738880458531117701713372390388355884670457006172479422699632228045045248658220955774123019398681680064165183830608408851492954130642530784817414064138106475833656751802816234322678513341619753109983340984220391549527561367200305701601927792025915762389265101460142028091716412280836163307737440676510025862648355841892919617349129150677831791393659968224623772157741497185726480867612323513848515083336471018279990750297835243435497005998807611569678556554795762627844718589044041928995319483332899385458943601254245950767128619468011515807397593932385230359804321092820242634369660017661296972725624111363303099612903341259222686106413596619783544443800857706213478873340794671466356004009443291909659536247347292623439206949112404844630407891179678309747430861266059270671073705165733761245152966492739961754423726909492865784901337618534842359512441904241533758840251238981618575307058653242314222226300474771833530470777355875331214753621096266092174835631529080529179557747100706980996764665519813338887603370837047206615431930289358150340642683074411294679997720542338123258997954247503647804060368169473008333847163861830264728062304218538440184118319889890257777694209247141996484981189847407727883453240409196811876084300637788404253593690143806164501580323989956530780180791299678889346879443889863292042445544773406246380489776200277965921503074215088337231187742051311176888304168660278159338438053624185218983074484699574916526957969530282372624674191715760881481119082108553889510004310295713754272058968016638369934411480711959018271037664666132159061374062750044250544989478514464341109248816610993410244320465139094628224433960791502569912679666962011948963070108249847409774162165761851743556435427611098118850259297258744461631850032306717718547437809304233204398272524039950711175823182873204386417351926839345780494635845028902284051934601538294818045107148469147322576996669838413809123472071744722236466688718429525539842357448084650133157788463781679005933585217635851197060160836064601144395656388340776563991025811853942401080689950714757306239226156430128190396827859034388079278996570563070205494687977454208495229548578190579363039168316253261544517407271545031129524388535261541735952115774323162250129761371622335098566595546888041550744736768746728505985862479381544475287588371303735104044487640274808594404813778195034531032772644770529540968864566062431745200846904925166757347224131530064429796370977763882956599374254974243574371350815331565459158279049260432124286420246395899318652358224659818499963031070512778893925522292850897575304621550771771390001143226230963948477536513558426028852713341887515849151669646809368011324797478660936157614828448378669648181323167662339256482675634222464078325998041090247742270498506009150967463597856984187354869552430824391728092384244050960458445021125281279136822665092617870541488044371870782625165667040036363790284936956059496351385506644751152898919533927304436594694790745747722527395386081041132388634917333720725543722707314438895107116480029108293918239410605486246608156910690333298654726731614261674776167203634608468789454567514511472195742241553859335373451597181766612530128199930377565485692820700712061208938889548380743983059902127192461662603795657394243964235813393124281604060657142777421151539668501862566129440398006435643918680198144478824750291716268768232307834133927117638676064314958471637860416920758115344452817176726181445058542035003563839439402044329564583036883231594322289642565142970423132552299769291080960430500283045987771166724512137708242024718484454489264818053483467697201726417991517103856348181587981252230473505710805836362645887219611176083987348427922665627075491532092451447430714616531790605178433363727875446763755501120992891921447555621695281416440207960673014373198245474977278805935774891246317786002976902490729521771655322109787992218787055415814432147743790704759528193179468208413214908036374230523155344754176520355395646710906325741833017837947655517845684507525307427436963944314332723921390142310929142735281105320997083422155390924580875440575732634446218527860403605498531312187930826165405248086101221426796048794839157151512001449555661417967978781277268644562096547806400426597504639139512675131687591688352644595131141731421550945694567272330629282862971182458212236414839435950236891133533667397077268924088015615642410019417894202825131003427391524564321457138316833189078789022120571576396920903570722998326026589670567123552659471982966253704472318668657565363610694053306905649289908230858947371748281498227260607009520953063675454447421696290190814721835284018596164884450805846143370264557289490888371548434154826493634863781480427593045133138716557234906981443457479542930865104305123149272189461897120442354400798347482149994055393724831189139307208069128669415483124281352399731823583660912937822744105948221147209584290534955141906934816083128869936025553473778616950428302866119600877704551873263515253330666287986651237038735113360712193209357495214808781008407341749122792998489833937636836706760285906897000911683340892748511704095362264581496885979464299162712862991052798892626699473888712194888666667396352486258029843606618704747586357232276156897553243646387749373426598828706927714331287199419412376491588800370980254424758571948771634369339499548726539867104894661900998837490627548787044681870612127300348016719944072360655847391740162307491955428476951098372502588385905324555010461121595134496687109245769792525543681539178676761229600119709156395786558796202002004159536984895825645816294196982313603947743467349934131903585009032990983364351160037725619142879391854126706177266286279672625618399739015644351602600541597702042798043626720011912877405521147717947405951309317174432444023556810929869725808242097331302080385399039148114184572541695319362540449845093335627739973065218617565010013769715471785210710029802107466363048206570866433682094926791644601544592923696761354950684394064074709663133751542938563089753972686840909900217830413405342749458278934649050330671916597188365929578164356339338237247265867726824844133216938621961505141693603333512682847965901980046532432444134586486796497018494693796940582649584235088496711358123344831158789598061682758856491512605237134669464368470878194408201099214504870905749227013102726038077352079718883605538090162898828693197364238601594435786459738010398309236917226305640835616502998941467442751442278681182095456532200917558671024541569827100739037417196889722433331908697946582874580062464582660113172353619697343143211106835656837625841036888281249856544343584257082469998334490507133103815883031283147507274727995281134691504514730386591560968740985710012580410915869648764746365861327208539168703706918771484781019751516938731693408184120966996461938571210239523138042615479643471203255319698643267759791131857814891968438734932640473299564310396176372664809022898660379855456572507442319877572097282636089734714234571249753920713955499399698844740097523611918535245209576685961620220855473593199338942457321191252868958293018953509652520528979877435441045534018843873299307726933947171981158899611122103085143719050463256031122751878166665562240698389297067686390496221473351538356709263475157073113331436105151081411995082551452745998524519711554097591756315730631059246948485972089917586444485887654229952896292712400558572664096274322488250485684951872930538728706136021134911963572132315853051761027961641302639329938927136823012249793905134663222846566913054833153035740070938183339900008326747812977549467080860867332586360864775521511801917773048639057905537418119135922283241313257592434990143625392955420340947507892808695831853250973978121887683509825658833995607339125564090968124707637183484222508719226016382117792744147917417016227434995309457417389146160462825253247274647866298966713125549716329092370547129104288753838893893688667762060557945209126608152773291404667622490153343894355666323869512541794397053183546640785970683304909346539244058934363139205554897658516366287529738069203654379404416317533461757676453881345781963632407649011925833752252423667885186799040423122098751175515063515619316271754012302453224032558010695486518399300076316700539911510064051454351524047559429645827622008127396188739261868095253757085799002293927020984207233122990087670944978632057517287287296337486885455893937673556549876563555844816607959150049008010749789966128689336233276563127472700625826043241489935595273960658747903046093425554766377483484144575660483538330873285041778172168709659207770956476415875751505163002811500472369263621645665558772954123819207441633009147628194857869229644619393976681931886854916881108860383568303345631316068206064637642888473173367209401438850445371473808266079165004814873917537463971115817257174353275629999091041253536318427851054207812177745281067430450966554942851217006388274553155291881578290942903872183516983204624651590996367304439252934023013850306606993327384605835156616231142769536848849504899380960249129160716044767890795696236014398599251209435741971771752091663969227288242927975477595845184361174918136993817818890147425426038643824976891384519957947496870140886532622139939587692989072605521489249498205478004420504584809078719017726112037702806335338835017451380748039891812340965019816798895171242615541411990130144370898520275920006730771051880499591796484321500005259308485227766670769031879216201620887214122941345968773947797808957891339746368503998929298873670469208919220361951357321331461036876640587862681284834387376343470189631431613231267906830589890778544076257988362012283393456819294164101694262207713277646950295816683623934680236365123089835399050355774293096602045408596521938359878625962265791618766560894675294299194824151815149863602586502614031045079415541947584849936340762257329115130477859651670691924549104062136480296142334187477916362225018364255339757820806724711158827499255382804839615155519655794665412226855722146412669860869163046900768952048984244942582224312543065405147095775893255181633215585551421591567939237971556834208454239999524177339424441646518716926583097270636405981167589661378238122629655541379276240516764583303419705235852770199807873307124391954837976812064056443704714432617469111110264943447213874342114100413334721452461562113935058033838224666620143726329346485782425986561072992673028913049171313378163819576056657103125662183590761228413282921844208457572450023982401712098037978342298957485202576846829522249941311563648003583368574427963973424707491550497538974045767049627351023105926504008304563020781502605981063364870683133191832596013251067014406900423291626416556939942362251466870867462024447029169374115752027434754798066545302993318923147623942172128574517619870989165115025827030953845873270430586292138158935996187092139708936244789134096320823373299345563792178496137507717168440885944008483930754876186121330963522751819303833568097617359113041633141290971880847007192374222725607989636668670747164638246220563058812139597116830944159344387664944957980687618598869901012812803149390276830565232962819929639668495933653973490045392242584047591834608545484012724552654535823783806245768095898314396816134633946626384764640404010747477927353006141359327898610070287947235532054733993986534227823100479789104664072030412558780654579586154601533643290150484720795691830880949825386862283470536196405687290368682939289319480001554805655370613561134251567969202884366923846714369450064888118656587219078420703673212023185502106537633836102926180410082098767233152400516279881901617639560293963532271321218474063611614383678153419569898649340390140986290796979391572914952275303898803582753939435992371240364932762754019394275595032497094171624287203592463682191738703430181972288025445711584766112817331874788399054012895484153971348784269085684950491694369417737355611640073939151958605045683262983750672814589056077546526772523162786565819374806936265231063409884912109412726324742638942888476492514310249040441616096827157902923939139010733179880227370301394166926122721518586520662531103098572307514364015354062302311515742309126476367796116173486674514988013555692075656626725906082157811495555387767011198200354799229873184817840672563876383951475180170562436597382320380312737855122203606330781082152199059877657598803905484518839374016086278779152869198787822615472983281882996592348525753388514183756203809168863374622301029740382731269444032374885714385262694775588841215192790026797968375417977864389956096429900120163176276583316216949971127443002230583992811938499971010454396624819207075871016240272832169753464140265889039670191403155212865160967235178032460009684579732912636871331531225627296697777900269228613403826617292587751883204921900221124843991053032093090679234805600213874945066321566711832763554495493822406015510492081632601288624831921874027540118050281929706142727164573855267349937005378818071707295541588440834819343481976804952355056970462112810284978375657113508988842238865808990007392310245235271897686053374138697424332761456062119492307140872038474480265228377665097840060841996754934334120159838226468904460213465889570948329974668753112700314952465716648238527404892139159480588682494984863773531152895562996880035233660386950073648028691152306765461870010030990041356144228586573099769426782290624258257643795793714047927174323514399169626545189211483869580214238559916551381369727737039437833304476107387507810603141147963117576158126113400779973753422654549561311157347418959772898737616552278918419011234148784868248158334377058818416209018182880777310383936496252536250322657886844774831141211090074638257005372887339884985115500932980718340101384837758188113582498398767777384668586724103862925001548843434477024914187425733812267429229852548778496648377925483534064056014598929939129007336091685710093712784481283529421169379212271240071012246641325938116481608988358100731841721961253715733963249857038328564921102716016818017219170353828092438978252474254939386517111567857636342167729361912018258395902259897723568968218670002503501190303026726079551800894254513890304579355816624744191837027214696556540055866323348546932115654766841937028235455130214059170650210308285952671234767838436827144364333063760545110521115474583702189262061354114582675104961637545343210895634366553034104793551363959552731716592911238558062766335320307498395377374619756818442274129192548603992380204590568452314899976444057215053572726479243304125282032842745528117045949638294760500521136915599870602096558159545949497276716099311647846018221714591829871123269100489925111859783974146839449660448924098613481476318261894029737862012804625328797224349729796510157979556401928614178533701242296932203778983869704390177878958246214100083673915485757792012014481740165610999806177477152778866285206428673696310872355631822060547376326609842483871379053671902380827246710288308551795282203616372185878145220351315682509048173754278547731502440249807855468581476125989993372654288100343167035254604217604893627158611815144394678351492601777249316525373214704979732320617556767807690842059568465516442989703431651462024718925060780405106970669259520232943471996043733442403753081414210894486616421664628454783659232840320629136071375412970153544770075100969246296780066120951737827709237558223477046474385156045853048759880642952646167787069431759991561031541159467464113173863624920687005374713051756584912251151562835677575966059971623417259957897918490403179411025921188946244554130109844735270702192383183919924081640591494280189184611532432037636094481728704956268827083675866578944494950271173752809480506408718452998364085798816685521545469967206841341564301721963025758791377898398808643441643947745726029224639591715417560196870510846426835506953437113965867410294876110222478007116590130529041404526720129433697515137609685395536923335506020317253735427149069008873771053043815765732290471546650527667169333762879339338777733292708099749582294078336803236401298742723598159746288974390454795865541889496489252993948155131281706365132433593649530016907829885548815481155188957939683519211427571613649181547482389581604923049851348129031615386852615519298049123155286865492993017791883029900567667713678739794978757725712857494978625874424385173629476454096513173574130662815111175484191915537939626648768035977441940322040490755404069581648201447759284032894709932047003859272925172251016224350591552251030581084857264261573729766348676230576193226692532098730963769994064121181268549484553417337571176791836273222848098810081583935469874944291455929304199907466541214376205809437933269028627274827864328841140921109803242480000102066759395901284978116972812583946969714892033548888362286797633272585711839654663429754733030289396309036141716322489830699393173447213518692445201846149726635314122830575737609402189105623941254934644697650863160350488651011394693218939918592091786003963597008200990334305737744709604241538306288718773423259904806052006450956783550320951777216023429151149800561914911343119989548380185090245762487266482826920993376274341794303476778033995376197885667518939707827626547825333805268748248933539397940510171889517349835779628768221961538471633596431393727541223394262562740097516456881039798031977219119565712837677094501847989501166015383174079648664698284191289547151067386099814738090186447839381813403269494625818570051136069256101041882345893287135251260387563169266407940399699297710644960073102262441797707185573680504914664481116791776235444602884704899187539846801518902704070531303475989266502171185174486403985579256524819379680071860337773513416947768466834278188022571386466934952493914118822537067926138214108744042646033829995880622623706857891018235628886168708873636878208884605649172031056040395791098345989998515928334764423092898149279153578857458774447716027678803602483647444774161976010712491763939522401002159498394688638159750796436483213225675119705231056884340346695939027813015119273482884062214267982288501880243972376551358615277983216752565675483498271030328941936179351662708766204866955119751159537708469506098834738810730038405757291172959451321341536999530846615682091869304808258865581304234452581914868465705924508859198608011846553989573639579282750811848642947457594212454046550098418013874233141659009694714301272004438486143074887397298349335156744585244423640428241078708997546037368877331271058425877705296312771138098668425311609111929840679771934607920028296242495222813213810680755957442868131986170562241974469379913659633577816169397428494927535779245268027596188626969746736272652649511592434568239113003435307230227233096599990239181479540261360737791464566500999499121064632218401162042864283176228698392406178623242992654400222174501183449133322917735632458324252677315648854264434835335185607045230100939215235999844400708284827505497743027628520217780663606847638254457443388020702050943296431763929958061173440391023567006850662253506059434429224641269349098215032146591235287140549984461977111591128044698591426655587723974047188363357571251174009514248983994151647674675092533143028167402534933591610231240372761549137570056412327544859088573802658355850365301035202642874753198273646461807653700316007290678223514693390434767191987804922992319005082493233092040821299872956238051730799894626101708897161480817551121535945267143159467988412674372708402719623995874243063117671866902813817515822650350532363016143182883984866996681607536244438168239310708563870825646168017999386164227198041463843847466089526171233581275380019755224702851995459557876128144004474134989277157966529096420299256063636730143812974643982797452523046154035566402164603145738217853682382540167797309830058580648962568087126498679327968464987976008201503384557757448616188358181973603862022766336492485961879188814963592213235034368614411649469157047618218461289616617570373839935391332859453123411788337477014342861788666106849948266232926184947221595350140137016286109029533672150754129455705737174581937432923853143443861557645309958736939032134366881400466171862323201204581716897341374407549995746640685673339476311833706426206145666156282105465238552666873987309071498857109535811706368004641048408200037870376380519729647403817528551097850712035425822906939466840700197023465963721643257445887448412075156169575442267508960926266517429225941393939826455683895837481234918455466467170327912544701366458840602909184380929314064811707910784264251978614432923122303210674368757034627733119360953902929921349244568814084057254563201649205440503002309272826417894082299853841544597012830882822959146794559055225745206655164729648973313112860233096877805214510153079111119311226042031964903043967416157588230443449468448613997275970817196664894348973124618421842621356494682442872293650520818296150496124800858461911086723279060045018566512918104196293936956809003733020381863860187662331200422655566176548152156825363309260793963392169294588006559927573287286286648555665234426295990742323264547297633351238796263600777141630390077995234094677477662269498554380660035107795708498918955312636661923602676930688375017226066315493119892563693954556987527127724884818948148246803969126967391231266136081591069605112914342267572789439005495104409789247456012931995689600280894144662727868645259146295965637240296145250611616440377894795255386434806412589970517001751745054629323549491931807371041859317373244864295128006328233806259555139201571546183120958318600887335150353932073062017574838382781896903049564223331106804658700529121217923336163818401281469400147234649282411291263108849397680083002072300240065502330533031186642624752626773150652488001361894438962954204275310806343352230133479629671458195651905889355524150798407310959416705981872878979616158677184643120787393416719264090609168055322620068287850699600442182058248851181831431079850001396944080718504386245671491263011210748564472993618291335279372700986997912377590579304462877085318640796266616015893619094353783384212013656727154452845281959219740568438509912453950462196982178030371548097186014658719937125592817420069587194932385908265288241203030239856550055141677620843676189590556032708008309343565092076889776163726390779860635949864837939012005897405098479702545330690600339608115711876326177863875239965437582681774226399416749081412699620854991604283832400352468084020476834053232379523173474689264997401511103421288195857151498093715849958176510793110030465942657046331295583554725547173554310035837366869824054650539286588888137075046244317508005277387310886944070522406300899026369434511398205626767186776622512122725029388509690099903990482377751606859444369483955850356583625403913008476282824078512299603365140691745193755300974312233294358283819951914259030092587449518797085216451613032712542910349418949058858814097328439660821876292216836646340201586411500056252257197536430219299916579161499095045113827732056913187759939879770676807073939026880047660828526421357112550632591471410604195471674103962844671012125926077055116803033600803029986044483340478030188018275421313587285278190047884168122421156994399169253935944919499309982503265344300860102967502970502088717490430870333397198342340050072980491804775143338421158586985179667103951749930563732944093294857948015792866668434489711318710127574229770755108453749232447709836873945214122311679883343694663363613528604865333790125071240325993895499287182485227287062851931754632194504305462046815735927421538376251703511125111178827111145955401499601470035556489258517337017127096563626913172191336434200925112970483418582049675672333334372932857921777468566144859483077008876396923934544206848840319915124621824279019977498061044958754130053982889799019519852919636888459446314593970753791731146201151003812210454031702176927128708741458146476967323738145028930112405975166902183784784393064112288046480518114485736442090005374048975619031804075696003744638577881722107164504413358772182111093680491322326304211582018429029423123613759818147138685728546824977100302286761827752711186687435898260198355289314122387420123197517619561441256746601762876865555653179919136858579727110406605631676779187372718254128352012170448703882482287237737783213736937354544068832428212119648287805626249678297995416070741169951267291026225716665315146238746968383720469017315571727590116252700600937002549268456651009897520367555741056119317640136469443648127139911770685373479801287339489256332709655973393537260748976591463465250715031563344564830512246943951258515349986334036018689753278630740876224277067370425688432078676406410061572781427784422185720912119689968789101933678270653149827293697328782752523696750468251077840561985039769046706304628772089673694867026726015044108505149552640631907887802625032883314607288076635842935793928484956907697283729603880994343410718708037124173227353994943988990903176583182658897854891905400744602005656037161570710454401718089490974430420444012080532429149330885911368031899041727620042910893741587280301406961203604238246384306561774034855299486334833135044803833401890175927220022067453311195618272647820039689280759690831828323059923868365071290091196170830009217437058897972620899933468698386098136491416857455218079781748389749274584289576840455295304722780070434472062376106801301038363138972375358457195487333164211389213832915894560406858532070368058388798309105646360470861678803545370080213409741255510360681468863947816422533384366980782152589759546069965760474504063787532113926931999255545026416316544009964358386685210365026191868218898998009721409289142871566605971361929057621446029308919300739604818880815651669912449795323197494917664981539892839912525689662866189335277668811717948120136115302392188900388671072776692136867344603847762647106730191403142548151109541357060927679464541529818004964605507813171528294001249413016067285867267766967780271911045914353506116352632166212552109065374326057537493040339688506666200146649800263484736384995526654145837778900056068040712540294305911968079440082629587501914879674932652472575882175855845551449625032416526857651099658706673356888509691435893964165697409669058671418147526051221706381264125060388283931060074066758937531459689058762868274947068270277826772191796465351030290925481293726664569672353402070267907084131314059917833559122796202869678727606683747186378661271007298983477877911417884247291516928130127195703248941218722737310085247845683857635511526134366172989592816253332446281968722274794868017328731947291096097049812360509118927061808098480520275905441464712207147185800847419522452128731222082954375785604098754348594730717409196173936400185440793867335499515541534810553914356187888309446999846802918290025699604740862557636273652898357114784824692244669052645593147173539134465060815153892102076175310015278952863464249901014596936840168266050408084829636666052575316509148176230156587839909545233907703822756536389437832086461611280632823124060276057792677374420137977202368940491470806231867186054208898034752063908822152826801887906200729460532445778850984737469670688697357150081916235046315010462896146535126480151491299027266521675100505419279856088448120653787500417202294351924806562092096057954206934661386952018702839285684107280410331168833583971538282005005345611719281946466103021649761807022386841305633666811966709850420115020903330263886467196909851185619755686988808263712082098031128534809421782988394501846710823181690726363731992547832909641368381640496096879871483483457523419883229423930154737798394832369379544319140580261081689926288732939250940838477700494185259363385056196320792166803678012340184577611331248687268113297972956659520379891865431830690889043524164047466694113556812463747725880948504034939265284580910206462674309925027570282181109763278828111210716365574560039367778011040250294077756895782346042682717164593211973779250665722598845583595556375720151301994504482461794336465942732885361099977073795322108931854325736078287080754351731017967489376949885143499181821751365953093204043561928681614207357168684964695525737165958627995084389756928904486296939285820276269288384854037037191813784076012068958432553718962069409729893611478604709391303047944804241751204689416932486119900430554131693622126425090998591385059006244018563854404400369339460469551973844100516309283242516568340191998428633180789289593338258715703855601263825668115479762542782261118252417479291260352397369053010223866378416949094628229932666817260450692721530671089266944919683196011339258523657061685838316189066489521823249271808709689142218014635054292868931375136969021679663617697764663393392812758133516034278711079541373877005166888694175368877321623134515302222198353519948635294955481816739526642985211589618353232342010170931165574921119107677871040005857850523860049658526938348729989755857293777548354694210131085451628561131976887958946030667634068694456978372960971872247271658310673730489119805040832687926208589353319710128323280764941351897630923319801354289019118962779630645037747969181029853774185662058272604352407180668568323222637327509726135132193137976840776032155458272217956010709406167178376980655498702262373457725187924750610087642153014818790101235402068841824679813897801935240819311577357906621799386677963793540075891034149038288118758658516691768935825012224360222669659841263995494753616617573828003721038859123390619906659586264739615082886133790102410228206021292685614857104677048994831068330896462108937084736251021009074148473897938141740384445594097124931785257241261225430540226751169691696748038840483883653174720650017481205858731725494093754527931071187265176269895809246276815907550577752670369936567905334636280688169022756017523642680012585577699660386299341765481032984828856754400390158189572758838260373141268798739991364677207479832727449298029609971290674221432753586026794579405618261295557740644458804195703285521667096512374675767332561516345766427921293907523780389375970929667653047602948792068228820288853589682834882804589395148167817582149978239112331606656839781360426931547137635143293642993922662726033621956660591374545221069626464409255469397469223992077317648069991586936461327958710531407187002679150242955076471665453869884874999183487771216313771817355609545688654896870164041374581948677523268559657333256412873362817653811020989428935699923852990456310784534890669843820184741282092254057379911536804220428854384807373708635710718735082906742926582776759888216204392090255421261163597788622828587759863739563798235383017695478080775421609470176768817689448908752255916499568153122979729377249062893195943530203645054765927776635177701245579601011807353908564851631155093795352058186659268942768879979679419377075359157886804836757936320353890158655888502571378152907070327221189320641801776498022721720720133094091914726514061108226403276254775359361656918591214767240436231512232451993245225387515402684065531980483198387510367674383332831629150260366508751682979845623757427924788336505917783386846226370416668606065245921779584990093963253263640802508088685054436009460885589920715640663505810198545412277868965709369740988231809821671732618694327157996128200023444573844331557917640699277884042683404588131858416473891622681096002948631144329599663675509891038443384859505079616144535552455182368617823041548130107067184484082310086182508014908987927444846772798003487114260394383600983008806436182511953114442059735933988238674263626664031294283898966575886295832600897963076231016272112452664009437318444274658556513315476833617310900740760965116552804971383461971710834246038614706617466200104675083401093717112258363705508403468843321974018475475509845861016566733491967461205945860662371869896152387640955688255740543958425004498221679017058281061532465305656814782829686175511421813155868122405245928945175634233440864723195449523186780314274773977072121792009905442382639205115853679688368947495004716807428462287812632489047243547058532182881977197669306277130544358631047529015792976957817515942178765824389622262516292336247412602956237169398891166381211061216532936805458001627580802078307973963902332618025696985083354003331442174113440366409168564692076965658999056966242705286290309304009711805172095954822532949696875110664808518234658055833945682782504476428676578033729173964152557777359455112594266466665582036075821403112056611298436364912194254994214909029600580792288035378425064418305756987463355553616244229342843037551761671641237788649984965520285842659938269478971276820697746592177930696012991799458534372697517483308275609613925028647017604237139588128204848493763617696153441208738914424625062322261213099890894388866857115565855522928626564163574234511952258529666955389435732399076654100426182954250901213693822696398475802261474552794070999755076185479650102375413616819299078991769404459841864796598132040419314569858915314273708637662416298325804934729235334351629289950835116860931610452024578037763810286702791152153617172265258572666444539124761098233131239094607127319882873113697022594356083919557831746529754414824501257191636279005128468200135596747917022134256617888912688675903859356362755220523427319109466398075531908610264225263448390744299310294394763821908896586526726505345547743883010184316221918743416482852617087375190305397530578809846753718440680646631652666765058048447204370259832871110565269092713055829969051696657408160589616197838133581124429300896455144090091149938942081806318674046529903414004943265944610197089638043524507260598257057848549624420003829683664224601396807628147865356566322700818266087356767225663612295771665867836562313303854704215768496933681855819823988274459329342672820793832276985127352487369981448535773416450048295930125930662891948119336502484305307857815077032550040587636596964058157433243589150165733774355174837019073623384076052626239575926175819973441917873530846275821007152916742448107341197049083070939022814636031567478732676931401946491028276415590430606699486058484638133543835874017326655483212311206506855704082265382647807726690156224493103258865719692483458166121537481666865857840419555032878839993973247844936921714208301016230066707320653951544621279777878923221225905254146628598442782555313157238756278000643212967445747156961711469081486040263720916651091685722229696345394285868625959746567245186736782841442706913926812980952146990770745288161106435625157633930039539046904288935659680824681676473022560245142287464059812432795659879832041026187282867845434182804655242684145500782184395544168970037345252856384473088237982189336763992385334684099683117876984599483273039531137162061175623992488248989013552354946343275057862842168703627574304298638689908649069913020865310722318191821091642104888334403004297312360909690459300683850111958182656532743829005290665089173030796729389840677944656466970266534019434638859411294742347471392043805833988096357575326416903478887003248537955338636407312616443549471971636165072965397120907196851637438597098434790219117244075564688765862182487195630306996555428861708629395665479072661300154568589854027723371296766597069239759726532416930547370510953456666983106768169360548264117977405669700664354245065827527455274518813586191884361762056006220521473845088323684457770475192690586228114804487419401510949305466600717079340127515563614100811330726064558938700342923615435001335129377574122448250794013436200003700634661848094826838267190282181604533234892407295738884347808711605430373240536443429039749737786542311512872375835855369420493579050040787613135018347018895027354488046450193084105386256992299497748191628813261697795891865034309878029350586398213164980708360042203406059132417690394452462158401007137050068539345055353456305273243194970716187499798956542080177060066010498729943494748920992576437131440747699382683938989285808577291665351209887201741359500564957432519306910916963710823551033843085523984305424018368995630930147768372962855912583625965114547864258842069881337432547910306613216904610673012067257331549838372537886887522472923082763064016902683896707444356865018178254250652419970672270673591589536123745393980001843764313189471757027236051457966133474050590019571362831241370841156642608556610574408132815428106708243263462325828261339393808119814425179530383769188713592856926166483279096228647887175564317191679216479507919046982641261973492593638796735877691793376225573134898783727184240142827757666677806712030498073065299344061871561160229040828196560237518566467725145911427589678400332745186216027457642854779076682374583815095295212291401785262577331270484752099041241372691283140819343359006326874762343467437433315063173245823365791825378671446963057694852122516264267299030190581413425402618142860177056542186702925958930141068594812351824757327024382431422221914858018295906767945814657193005374468638140150558433349949346827746324691467865568504533041330595620425503508044710216712647594072899108809513610846452571332299977231438628093744862410169939107894257543422684739024315474225559857815011788814669664805674092194795548482315827769771490985790746454467358932520867207239057281919106079534777737122069848566576296972889100795758230438434257414064582714820786998788618114505178534246932945929709436417775929332735235312808645430041341420784652524217626791937233200893260446194853169191744159360041642891545613633132386891682516921816233226874501840736215660548016963663183486971987551064252622926946814548914048649342395748976606117560449350641283031323823937170239636578224745254063141319646386688720674133394377788286855988049163029890310367682426879362080935226839562210846934965278628762166857980086680377267670613868695407358160013275025331940976751604484432828634047052351687781070819357735122202617363084122376523690403029436957152783737576409775942991766265742682355820956004116599687027888451611338684564045139068958863071172340533736366132422512328030441728541846164315639266948288787903459018844265564475363504901640500519770412884884818071456346999013235754216757679246400026137726827590396600059593315153177311819748737026537833314826744372750477223622735635992230365946959633280066694612527253769532527881768098228610104326120409603931025333080266289681792113697869702116061734942290198974372973473370802185805170468281395146738656062502286172357989702459238755372886000706446357780233133063143800442478490234215770688963161237017155784690272569674453403111679028587009435851314389199710432633742386415445492502508551245941097160259088777192097437332738194203551654476722801205613526204372107138080192371393308041585882639414716686852417374522024938932560456682765319130995570456002712141423255327490566607793598034427552061618013960475425853571159345567965844679263722132999684169711697531799559882060734935007152576441824261834078961369386589153904324815262702899256636403378047546574016522453270337515992573231543814655117856875416624785431816918183281843409486242834824231994806987632476313562951379255824210221085278068752224268406313368039031473655338465901606177004169118266673373127869203910101194907826784760402772596218637383696414197414027125070513923589427387593310985378265313872226760813968569382286399927132794409791307811793460017251764316404416092898489542301261743824091128428286182016790454024753472769764750911538027144987578633929486722709351817002910966653866884656827950590926554495160835375338487641974015621890041843417302418125819939376943236983703000338809023943744551394376366280877052698473637557715018597876306803100843636069995706679403396054802873327697856496690128416320896247587977871437319428711747557861802797790475913358843327607113333947726532831751191375297979624704460059446550065556516227089040407739527269950631216048309411973818606496780567205707166341864157392435288805203764530119902954686118560069679233426093184849285084458882743616295009427389840314516874254817439799293743791335078912307034672726181770549343711828297693850833171231007332882316756414726356789365365983672502858400306515084938566222638059957978798173420660617809746249469399520342377904557527876555229349543402352260079306092304770952159230212926875461760259614748143976762819509195326413633390800931488964107947313124139640097321044488725360615579404081623380155955227326913998723797782350372878923903940849358773611264151083091911919132487652634323611300417086416564787789642327081027628990744225317333275986846190538707749880109863180829106989183855477969079882107540647431245254400632983021758967308845753161397858021513349589176473948528550099491945185217244278159583770594670507809123850626803106443254612056438815413277928429240089151513662831587330355874366609300379902058795358452247898620138057798248898598045159288478874266729184153488502492837839374013835704765338231914961281833006250485810115387550659572565866584830403596171230124191101463904415496098559287944120112425062644949097839252665782884514741707728173831747762280413686755749911556722708014510837735304143420752393179797386557360779898639694405305510129213030305586024025894877052924916913321961892186913635512863105538138337592778809482288195708606709668932359366413987308321179746303098005143333398675651092767821162313490232436899669095976919979942141292478295534853193050967794539169295235983388613641940228416725530410020133435713829397435123716517672138604002844903946676355464136632435844374860973148067207560239812861221449259484000144538067540318602052016382909566776492672061278013366778031221481979691888768249488270476766684343696926834608664201965255166400563727846395382884051092781327165110384579282481799148568986980283751174664373533473451963996598203575777009500034765194321535426868177358712210260266517912022716508831286128525851528277392403402243974148432259339168855815784423798730814961454089380692978028128217070563233385255504308002413783782168756112169582824331621026920901230298202051086983980020964719246702842959594477665389984568276926489423448784418908838357685214563784170494857929733515821719762594102549851529298732575497939700491351788130136823050901305764307815674747362710999387818800778903487945725143307333669379336134395119783892668364460503058706495148493036758238246842453127908746022689485419957921901380205028178467259757879312301341583002448141179872248320651577397769303829329266682929826055087879585813471039739237772059081315539033491986802813190839788429980208596559062741112947555856487207549473492311532330426379654691024835782350325427713021407461166899275371176177591266599180827085601333726762882681109990669825098377859548501530845805420850001983484588317420902154501077849389599412935362523370367827383960178947021049599474786970580396784809671742862853268409335420076798759270408868497351569750632353604759743276097739660493276510532809367392354890529772363866358485076571591890721356582822184242646698282737312501149753353686030030198044930095507459637416350484097855397829276164112742474730765215610961556699375775016533773254121773082300740509193584443728731804073359918779265852714908497081557485391530551154881565207795607538765132670524799831593454569648727147852686260144845959838664488153267059400195787683878559051479092248254996334870019014766368982249548168802383416400345835844044957383633303363793870200696282139929016276080459349703910448514601590944153736473397461158902437927782198940827127755369775534702163643421930500802145291217750745735149333800643130677769965796551720589193942355368912631172666416043629270766806062711621863317209443730797530416944481751830521351950990881392710101229545839576470797659785092697554770494445651619996818858654389961063245072182987071011606910601945133554686330571824052836964120138216308300992827975351247747158207877147497644560884254461753293142228515500840879282990241412533668109070690737712149412210163609232827082920645370007033445903664264985236580241244764574936102553437102221868225716612003545399119586123241193369627339857990373854300018827029227759092871280192485208744191686446040902018405383825306871256403303549412692668146143682302743164821984519827674517882434494088099614971312342458415022204451178505202477447933008492125117189900600071621801016965170273702379792836315163860417776768026429930855545120111909766502201766286868577022880792878454432587264573691315376191154181520866779404318367009266909535612742736866683140493557212666365517575923242412680813235160982112648526122111234103822577309230079554014174641659952310810665725180310209214113083153990807427740241210993777341998239969054951216371521142689894575237136984803118482313019100138100540405476251384271129698235287622583277301797438997405085345367493869115883580900657277704166299472406972155159282375660631502291863718088727198643560970469852395954117307377498774856473371520973198785318600513543169978574851735962231911358109086627622384774570284645517782845180324612415717433577549164928216121682647650661890200351886860477900700228105154117051116890261003207715689010593286333885085872730259427955977368434807799274695785379987334023459108862867111009544693514808945521766984028423473548629443821939901660822400725018080191208454618762485243915289848784152414569380651264111772865771500313628343155568362265182707744016131222312122104700628176652957299837064145592358979328187854426154157644656363895833237712618890726565905347144568920423387877009118488387009256296407475925364729527800975383348232053532374380413647571630572108139958482204572893633750338798157209519393982785371786639961585290684382811756735355984531514563011681517536569035007928127411287288659736751314951151367194451523283394209591212050956516028223691714562250681406764918098429567294654802766858585025814034150731166876940332078998260062774191652788739259321613285632890601293558592081010994823106958360657187722555036851395004266004594187410754407151204753031279066782050035098371047754884055364275859963552826919888911393177330021042461743863197454552534046147782664043982239632560167406082099669957057145162806181089631351663742458937069447679264831309434681303501309252975219665066076678916612942973238365001770178323449243322847449369755116728425927289343532560808102048863543386449553961304407929628372551897238404026988290581155460472226414937705345141250057169275059663420814476842363449936710781847519161181975800858743046907845250506330711002393648417309060119698339369962271808540058595462020071572666854222582834623489587871633851364065864971594713118661749492802844441339532568593728217598684532041607277375553884702038655967760598559083832989926693731551055288109657181090573076495675329931394762995948514475763584972225679594737921786550310105202452072680323661002456219213420129963081665428103508646395998643121325727273171938410848218372026660971429025174837624985298634795827606738965897309614024992506803615479153590712842174617199859687705160807469667050323512959793333049682388634521968989720986303202209273745056513370225831064980478611313334311493087025300559072368994968053779988893353561109147776356819783081154553525234186565464793917235447976351487465468772178008050692192958271028759871668677681845748830508022436444950986302514650585630555043990377789283937510300630015028407768608851069566889278464475406819044744309824413051200865016544752242501385650471256213997940543378157871405128770622779806095782737526821379086619099278783750170786625404549749417993909684004382111987158840427899228732197059274543701411547186456200305587732257776931564990085352657420668881948865010959707555093082030788871050970807921067655150810205781377327064303452733040390728670871218772260518252795856829628115289821873390883708050273522229123467615249778653167026947148492185450153107352855360597678485112017188039894222740619496660219945745808273600513994853665061547701385241850176185562990508458975182505961230592637013735073987225905407697490179501917481828834335580844541594984897667244222804067300815321871139908970081145646602386330667752802888752625509001757295443817619268682663876546570305090545897471264992378477919109814621774000656200719585076762234090760578591846322662422122286093128886861735293554136433957636333921683476276213883731455507227443609542713371556642332703834366643416841713649166855282082150773562500291685380445451283948790724640638759086884983446693880945537938855445385904787818447570669120646253373184732574383706875922622250199062141301158892395908534277345237574960526586907846130404062007344910522566413465246545889321312107130295252472393216304676749025097972426936481196725564371883698440565859305301785438985760802045449133086366569831795947547585437084479994084433489848956564675582916838702143010409583985223435882729076238188474135556533334540156119368654027253376856052388199346799610441716775718384764833206241914423828779636609343016477788363819627222789135724085056554728847733773042968566998077508878781271730933335162772945825998115052864948635996391308238255610892072501526243058678371845376178434565888177645544365983920551491751635822293067223848093869589183380660008128829170006845235197465976238777967183043563169347673765376670930537710676300706337849155881597462598066842136961784699298309081669029643825175065002513930613249197469360259874254471634849985862601226919215138768500183624458745128333347218610786713490293330351083172266798216260069895685284010046900454244492873630993401947936241714427504439232837701455071390931745652769346213546774251395398478497232348724841675385592361147125031247633953291229161136086641458126134089832323081150745149025490069884420413106168078700592528578859978092596174858512905682983422157222221745512532465966336415177833117203245787569006900317174449156521229946896028054650345136553938307818370772619359056535374140814453765544855501213687280216827029186255899861721350204616091574153655281031543859283583126990029851107637977465971412265138402378548072943196138303240262742089762425087922226587655355155805058736852986788977022960065901465434575640965140986352974505538111866303465818377088829263176381182427081485258616981252320864784942049054387890570152820484706804895586766560727679890777041637199702686862631429401268533129334894743679608496163516890987329870478895342263922526134799383875105055227638425448700941515783695681987913419966550835951857928558468414383937853691217448747836022758928619788367622092978940691270793016300101259570007768188982701348335250356967098040042338357091831932898945973662675527630571863498469884920492387749443077776647177454745621559783614270310300881502562070924024773136213829602168369248545718242405780754513445762579258389730152022295599384646384357523396417851520986787705540379580029642134928480654274458975224750577346043452416794469944593263190726258812286499627483413451776171463989293892524689407818679316298425413435005691162775713404730184272074690821964240034196524919743974978319884566739575479976694477593575848638697442107891809937995285566544147983615408757652191591373054502803562442666761019317706622545524634310649207439448867368942927722411995235174275128964550327708148793368247056112878800096737820616040770562989948924441962517121391712098005031153296731287064752145334586203746850258528407947522875474270578737449321129712957189186857687745606011277357504160701612878118681565300471303489995812921003105393400106003555784346880942087228232367191140616261152301891893544882118139199326432227390200219265836754829220103006547687866546179487494574015192294762261680480715348745447225515618128592009916306411900540631599305023390374369791026430975486181369900792622885941363609151325765133009222408002443361384740691051221430717835570182810004576592270512607842468350721584513891194314318978850127113245225251384905623754411675728146999564624020788185630738084316535603492043526132927028937628655755128756354459789425873063754811617131074138934023881537775878556057197485793321114316370366296385227419931973435392073154021840615273859309350432577407856798287602054520309930999412668833201450075336937445891939538716475847101423628914738594432252724689828362085385836238674123205870607736460166170892049287085965395291019577207243415592937187866086322214474088658971130326966820375732325642289087487246761831197693788378050810429409714062497142323898048386440588315788670125834887159398455995448888646198387460640907940711656410645233762806011610965804643134035277115463236921820648801321276396015819250887724546595608330257791229805673602865384617583176859851490304109645305059216263806469093573035286782307127454778596406624689841338097862881603210851457113196390826409430573903701870516370079270537786910756868214724572323299572319121298243339972643591429316497059076108721541356704333094329404613037119236052223162477536285364502365916347932916573661252549291507131470937020926159226045498959303904160172298185174910488071050768522943966928266377770062762213840348058687487831965601388373471841164763090901814281558784761153425262073205665804375154801392657808883939655537984182836887075482098160161552533194507657091180384084234578290323451835913391338872161766375339511287467535297510379758075614459699457319486754693898625325199114935470281537457729890649050345189724531709172134041142423100166096135571086829877699032376584873191435688134268053223716429274657923571199279004002651127731479168960647066259268729242062605515240879488024964011952114352291546171197485242791098669187792551565929235978397620824057098360737387726239045844939616506120239702774607430118263451090520648389034638391884141372430159212674377474321529042931060506831086520399912978944117376319174426592176340134118863058870382490954633013582068996678408145535629996094481750689810049796500033815216053315201040421623992209418819962909196967738704390810585470250969656677116277011861935592989468465196636739601477504681308068806530475605558442624635455680026233783642203796061589557082301630527114515554396500497139549059778495176382310506802274453283542652087680051473954939620324909620691377862386319258141916223974751962015310575680477372353004641198226477926210902056598326958131230790258740396676001163999884322697611453812602912029941111318230831693226555246647794066800500694736497175539537520389307598061015080557642697690278198322152969412228168186279619977899245853758529533487118697366959331692103526979259849122112010660113103196652494477432118298793199212059243398015140898251183329634549786409501968721942335942891073927499413532510361646858614803838835284928468189475930404149214793867185424599155386773369633965188839405975294441529366004954537489491497861766487073801841709917040992141712078830542701066876923259272067744602348330810677560719117455736577583837729782766523567263167315052401958668280091832557780000344071137652752833426678522753027440459820317031125822751046081350298632402668778818112327122168872221956372418823807827993173443883244147765055022220872125567647018055526650191298676921571481555920342452559854247729323278333467943911337967685091966877183278280883306920298619030606246611856505215416113228764254828400668728389758592872252012749105386974737419737723592611209885992555079787384987911158269785190413275207721890140053897701815511214362367705670128762464741949122683998794096934603634090828799832216949503399783632634858210730646613066772233457120476493735879647819797563564332370624791967274888858979926989002025291096041280809392642809877131107011115242063195755031750313404620527288291113155415223742854364587590024323867961599436338937971839634175321533162949591085044305833783369736046980584436881174871154112093143808459307793347386458323847338009041648447878357973329309014856459642172360473743111328243382123241134518393549978014988953626387652494250454835123670263622594220741028582153173464802795667168527564494684291318139448746197466680223459378571937868084343312680659399896019524879082564079604002326996506256708218603217768791805359547087913757195715510865406986112611398032932691040179178951461085023721714329488457302983181287988238251444461661991683271542002888452304486895497520706577973183181887078711039904655775397226021135444068216936165807110988231571029152266111011535204827778942722881138789298497554749015066178200942777052290539038751525383223759655026260707316556091067726828082808270603980959572737337586559128640055920046542974275193686690866558386764375503022957582828679354965048331070261011132577754929578857657712868791262859113159266225511545122998858310264773629609021137162601138061884383615774806511945919499351785518554867038745552459753416292740913692922079326521607746646215203688909669694033462181619188607282582135012259801237596054828552091164081452378581295142074389182870813224556345887375830041815930446099174023165702623343052475763291945268442103937275225155781430276059758553604027649645355975861042389787903709534868907264437598352546053561110972414990898361009307774976364250169098933585668888730939759105099987160988289061996655591295004979532949785212527847255263358621155634055596083075566458125357522008222362992563105729197847672401907874245057350576123078009811115171123959329543817881894940694658363068312890084972805352529046077807216041235859952193932599489751423177389130973799854217912571538517916227385841389192278496709491608767828831574858666974405485476110280468245094371795676182943348391305787101143914007797181956150769001697713998083936248940071316018093100327991198158141150779153249518634459580856528325958532748353117111266135430346957767951213741417558061773895053782197736872637753459012206779997226266118573526478727731957577902126432551108229839739577175792624207470627116066225348619206810995514253005563673878167919643687547356927275491879965886438956033392032207962060842236124983490225489064188166644231098559649082406604237839975897071838739537437226356042934113553156665873087803538867082879073184600442091954886897696129585647304045953515002879893346464869498968851529734399378477633883987465869853742998433383222908328161748567294564644717513932687265409775902841428714641896335745208975482955496602018645345219924346587435255454923791676010263221666149727631127260508292561349351546349253208236439870877663727106896948677295920482418455893647809575931197297386719365332108183815985540228613610052016844728628342568496065446690713287159878829631635336298034407653614691272453122772931356210000562705181134544774462902959905098580244823274823356125302393010783392264282368695411313098387915829602920896061551226505057039690654021404724094369795797835456176532668904836649717805139804048912364702672111727346753871392007509872893600529495035241126176407467204107647695473880185042978656825386875658604541695242679308428270425253309805535687484551202015122195379603627639602902443197474323531692037741229531783377269746453712262298277307734352952635094730779413495301762907591720134423578385404907069960984827799808139194298741416149538395952760148865016286212741427139124970541271940090888892576383687885635853173877558282789728083261579192092368947896913015890651606809263953286810768594531334909982569753022009803966355542606936036299270178574717271653800722463922122283766351736729344666321434880309106915363692408670704674837899515730602472265382576567410775311048712988966076714483674098996611426015328713282888123429964229122991355066539316824570895935590498626678268555528241033678739658987834810908150244046009642060590150676343895422105700822246825964890656769700780626155446594658027972265275056754179610616126775448050722099489733288741717471052784735505418117515715800093488312106829020443595571014781586131645144895015441940126994508062985142350844330186179919015046218612677802590353682153675232139488621862764683036578141728013475738487075295504770655397457822916074090887411337646940261793897443208964660070913929254440331970086497069670732053596406961579151513954777916351192743682107397828437335228961267381517065775063695833935849714109325746363746260004036952970374306000143016379191656548101709176704578286337190056131344856194276629183697068971285758863102685206244525462604157198188902093136846780398291714368332990390666925377908878014592353370464116282244745680373566888883300002692634766465561356749161837802172944621686838914695783305954969127026019909869312867810210260890412917351598714266478003310743656431565981699650495986810143317021814506215631040572017275974171111280991298798444930065393325433404942420532311091728882448950560012113108145615565175863000208669571776397285910163459959551476313753590052505890135939431116577376548517560824535731346375781504589543238621819629383958766159084838292651733914056279682812228854959104482313910575707333474611182674905414522801739180590911797438997919518435175653272474925804787073438049854187059876013482375973016255893002973980981505189040964922716802210674962055011543288769493654038947435655003565396728423881446002385420174942210650548700098963842991523589787260103358231495867800460772936720071226639331492159189120956317728878023820615776159553663790104266488136877438801033965419374101862429199599969806448387783050218417753361574004536459550384329357772765912503434359122513391321316931588462174602600306092725429124062772220326451667253134814178651577970225521447440315487754241414308664303690434965321293268075036195313418910896185344259906225772922595721185366730798470758969852680890317768103832319350364183882816312058909310642520163795108934445396902464904429654556908322749020614756120788765220832149338007761756471546813480423423489281724857467947983881045980531836742592986367625166416316303295022509290292114608731971543759193014497016257791908760402566862205892691094846559682132224058899824523956775713798554655627886037395684861719369483217673131702377400784257281157364396810684524623348942103526762249462652678744180658463218679195536837641498475006189260846028374752583617349463916697895472609222371595389207742431136303459625030403169144862387818906099743861150530425415293215686107293839066529988759030249490934666336424920117090521757511100516133764170710093907807559711113053556738072965685407269108912256838661400964828144308296774214250798408233004455884869207875476991123591428885447102442093705182245685196422168471245300547538842827708035321802480947881383205496853334937262999149705514682358911286082252192605590620993376229069968220811441450948340638638099915537314516511559500634212620304103080751697086577820744740475851675165731293334694284296965999091923029110820348097032441875478892224344743968754232478900735838201226773715160756723878093125763174621433898017976359960827827875358747652894745063838849783639267076246763216910805762220695671037306896471974832378928809959563093885516283692683052688162866154495711320629335614751785747666984261894766978806204026737958711443632352759347740035661792148013320140620510940036262739800226586138899024607069679680434655498930513241679870281830635527807672465367025048735855483359552483572293220553509824705025781420352475538706787807678468692999111241716435549474263120777118604607899477150892170980456611108513571985396017834706144337825513616511650263621935908671482308701770568172805172740126933824030598063241094969489644223969966597834748820377832034564635099261303858960929217154715432801327072332855800771119295900089754127724431889770971091872983249135288719288525143064267853220442315454019192452712352742222031905572239275350841228679867760957643026900347416505260871978730656204484048891480706206706185321156008297818049875885901492199962394628313909393906683140911321704932535786334242758978584860154137135305898613822909280829766329421990571657475568474483888260841747132875588198984217409270932466090412313303036861463816175831066597902948473739447199730001681753667804065819001495110771499468299437999160490988494110857277392281683290835697775500273962468079012780581202456234386400142580376542590362886437200738236159250671566868837170704183891838941808425405335557084386786372489369303295481763383882869419369168801767607739200416838607419405984601335046316794481105799423071049561595315855078025117983989052183725235284152401513050749597527645022228419179052236439241310485066522311192780502361577424519320393664523880897121162904826638893687586718907091826786819635600980909152708803830977730506100597153353072490694186629380990960979487930782791172957217334363359344790945212454365159743180153194460684765704047911186665445250304686431120380701484048413148354222207991373348807683258838634292678945836272335032114028582333439310354695084017529886942985199025357313777267711734390605376435789613771176318687735338729766824685458165521554285280048554959553931979369921075720804305764229975823296643404370537796586577293241090750748690113845610341449835096204361348781437052793318496325523907750212802899729921041341794149729117856881232661691408093585720336769501819305472655559839080074384105497198839010295602663187005599079549145337271641431468873939285552587852787285679221376930761623877405142534363644361262789860697900626234545584390708949254971304270192838881467567113508808699390506993111121038641808081239641628962957536091468763461184549508304859271829296230649590619026342742312052359705481376786330876542231270084969297877380296280837736697888226005094289715562133036246122860109333510699429724135326954741288076709360436876667608835344140198001506077174576391070487054520161387266111338430950010049503670763449551676674092166896749092153532016892197359580599813307807269442573265426159926091577326480443920064148434407435741665341968731507161554689797071547292706198563144036331171598489499055267215243559491356663509819248440910641015682821673634538558333892884877938602509607339744630108088595043183266801878513747897277997504674043305208282743563323837856315878052728920790190321207053420989446346084242757152107187871635147763189681619896413206086891559464037044504457639549474757148793142592949997877737637129002851428506176822720566686403881470962459866683101414386157431697843069875603476781754247324636655890838307874529289205466571541024840934017456698087434559051624746043539627391458561177236048598282413045894726508452232048500689061082531016328451790378056639348434147386006625268095590365208830829322135021180483698327597774253631335831185136338291575968541879577589256436214354890971024141928710886732443594486555915594170914730263958236499730001635505309737005492494374660080767999604878376883880177861934705460664590790223023874350915818292957314444340427170227058384520688049269949689850887079221967323181429863458592093963238613258036559342482026560277714986798597242086720311871826646086286683917591509854198592895428001923555214134118929921678651370063155431405994500261768455375979521490525218691661925599467222044001180158494461953667671241849971002978046570891102852863344951842960792901675843561115610148081752216343237210522619030570184792658177926269213600431676946208407838373950103689992427647779094435625752577994305902034088377660628671571443927333252311585547541619597569762764989361611110028655927230783815538260282975971331190901739054761442919542662119659250633781380927939001151133002086713387623790542376994373481378790035036850980200976705085432542042497699823251066579725003920977988522997204937921716129534370469938913639757441901616893440300258596438959471372917828352974447717874998118988763820633076873967402274254055924836182303817566463956396955325151227767924969125344839695233155558870853142944252634532217849130951259349225590717254587017307244264977320668216325023817774011735041612019277872441166769486807966147610152668397613155611685817256180122438821758806808064262491484106304806035972676782509258217952894840028880344723137876469981934351555684791674171291293610026521789682015337782104488213663008663155556890464268713696111427868735005791273704047857089589350961752456231000269051527639903707713743677361163131639501371833846037115008475703784935976815855887823002522741218091012818271352381109906636750219302546205247775567984786988220412028443959485404605261961602880864453325001418568106309990029543646249457688873907000851527751728636714955830372087660799451630994283954738571748426902191486390934811329379907533847824323370030865602682110530250008066599845425377984448076109614206806069998315788118734156517255597282609182289724140156682376325733880169311798101903218693682453193128118997804331402137681747596174605689319099287312588709073454778364033913379055639334200012165512940414924129403938663185885766600497461509191892051352223466640924222634955065893628885892027220489292262056357597432263732566361560556853555161090836789902842601114017968468556602730496023943875149679405475995583108830438799445065159218109512384363808271167262808700224883966638083171215206004194345795528440769089470962216966663991084547532322590450859836956286027477143315892559150681770140383473606741049161328948827018767294581248665752163052552812710933849735120781788461202211519673933173504854119750798888216567525965000186323389187682782591483980543724236152649206401838686886774815142552814053128186728178927520454337663816712922076172247110525425387856417533436393371118709835144511910461125140848637144881157208816038988340180202256034028552869379021479816725473694430450150782322931888290091158945172625598939699905542763323679185353910088398462652158567685970012311530820184818138966113905082144036923921531432535650000530209132495417589187940432333441313891042829432107014462546514237198730700711465624495494564366883416216439607440914274674417207081937060383530536308431351288192568780325054881486446442650689593824163105414384120941690835753500662549379689433649164806178321566116264346810125835613456832375291863015542520918219840694725593417741730356282780269527889859709400743477977172213346251875556122353914872748727626488087751046180250802192020209528391798350279599802317504072043792671973111629217856813395258568945080890339074622984277325088304807919021617586406719138548666290026991826524357623217086687379398566348733529782106105386938444040917171479765980186305256890573718367684241303258060842940530611819594994324940217310454103462811191057806012931839836206023770095737876942412478752341126479413215601348575913825420139023781680682962908104728317185842743607912302564889643828793691580886441645572430292303358805635866518016870833383853134006364991232399112071709568639456245564264237161182381161650479328871067247017001446549268912487680355551514348885081657307627780526051578094033085589681799253183360907870408022536804799215931633156181263788356861529282373644645862585080444138494541945515172908738127151208590872018452047257645173039297435358438745248789458199399853478288224599423751540184430293918215646420627864172135860850744441414118530236754994530345319218163109457422549561569399814684452666830111358047725406475820974635806149979564607874539228423712749362030303501876625371640875884515267222855246245957121957937243613653436570471685319220497937124848191510054479488875604049605641685968439898906610624013209550584648005756618851472122087794484874538510027474739564967713305905762208754530561671014997357758023570443348129668880437679674413258196567262947795412141568427947851626432863276345923961781695114887471385559215167575826758810490001373386978868322618333216728533170407495839127597934488999248661319375505808147778157166351144556563272272316964232746052874112001520758427078349395225290925215560444196542657644652850227575136627114466277109428746526272169766625068676297621841875233507083207635100822395025303838152145856339419428177372367705752570909364705403761051796942029554154943092064354731226646665768812171741460390269462594235647214682369224350144289999427418272234614313888984408087380928747985226622164902147476511386779371711253901269121597652648810747695647509113850915499639693004921305259787085439542436646057695105597609440694607041813323887217845488070747001220694072483352905285905947079750866926094649354719476248838597593532591694442080022517795135113720035529811338989041898029651948661059945969069356972642073675749589373018426002669673733232050940180110956063324181059361985328325918542049428388397946867935352335424650243936454529309189556475854068686148251566446977124634046758593312984021183166778376621591800686802928055857372157709759089707239923796170931549557790444902781805516191361926088235330538953521216251226850789491444521760705766445826931017109381336670396199240302392558092623252577967130682252232874809593382020275122478634076649722610280216451680839510632015418330317683933706278597951623651350229194427988299489844101562604744383329950307154924775263046737021709784940886735419790220672389903172682484645723715244214679818356427535555708531661276205560704670140920373053880462432522274247020982959742626645437233451382724504542639954359996076720012847276451100638231630398537754179949125372894263402374763965828829794846530967436555480446536735987746295972407483351283793493223761824005067738713708900650168961951189372810892488616715087679862432222762152496590062911548967260083339830849581725901983197962791286680396474710125133502465979533794139460057042668101533224561699862078131986183477989086976293906718306454069591309670292406276389735330462733612418530106203305634650995515245980754913768308394160478988405153962004085404529548267939241779148140174458368451987037893356875720907070534681715991478149803253731636779230353428270393285632142308854546316267028898024627663479392728967264281492864788844186147677155710029723240870207128405457464848339351576908261546470491441056942512897184020408025193345015891037013648822544546796838765265083492350091960772170738584175640510616567173816046921133346926996972635501272696542875371665226117097054640287762807890879830845264194692020364769840608661216471308651943379704173655107092061126249163967994520744775197607382224066388358771900028361239065892148573770220472270562913139205166523255415582101802861621220594523122811893095339292061564894246356646238998351746781346765522544765714626157440632289341633556335474453016238880083792382377710362236808981448067734616448499092998749143907818308326835694204097890606415881996827918934980225599654943794788965926278194086132237892722820317317393609247651378628276547409165214034561580329930094269972377811792496992083000670736917928547816128725055869177955470702205948541284906338642185187816001743092361637052841075482559697745777301834433755358682184911449722530431608295543045392536271015192908984591884615830532193283966120409917506645000141324219943326284816747684841034333508210919032941188545885033554383259159396734994565301142598767248839145472400190277741656623608550702530215385036734901689222825745663597581747722417205349430435816220641812197423901204502984485460772974635678702365246016790195057422540367145812727848248891607573215877010388665067432291186678729236007445406313925306066765457430367430495348200396124852710874039273554100951494673013799449732884800097333232747423669117061450128199791203087474358503802690999750187564661007683603066318145963822338669645110297432397518834029772098791073094618805353753728763528117343599648669886287188450331749846406716573022881699918214003678515972454003013092676973358079856496113787623220459483240656994520324073269092171324620373940961618359806320137154703878014729448803166060576113710750283139265333372642375669729478813108207349574431583038689582705713112671630425456551975131420689086107461262440465790794824022538981724426334132756548860022777371265165043997196001514426347658482105556717369088801695552928521790464764921162156065332985171468775643307937849864621922402817506286755786202220482961189959776683118563287916592505045633537870694037810162215196020373483140410895000667127798939662762763352243071950535876181562098561583095728178312932311496286921724930467734091629668422397100627886244345845520488562760661784556998359826502420577682733418048468966649871166748983516242459983603415993277975139637253585546113817103281516922414044961537799730434826562451766054247669479957141408362894619363479462262837983706821887619051376709636999804213178341762267502722056202257207565971802320000660646572369442094099337764850796151643771621398828375768831417091659197254284768843453380574637144353778309563604573368533364760211869594352671360842645330779844082300017987910440845603572520852157069920665236506861545370486981026751036291216927577723746647701440139086238034433350428368170169121889375112692642563939660647412246906965243431326065048593676126324313994590610468175068544245238249380606052063988183356379242686666995582220604095438508893255998868745544313933858776009179841457019838742589319372792338461336270334168213611278802236469718636427232875914218439967355668258150446311699060527186737766853909838609858354788084852736212752538691732568634574606047093097944362791470120431752515797576379127627924200389221959361018657524796342120689561861349853083711864315618576637362088331998679242447445948980724334272341480281391752231116526517755478505465541801444348227821822257115306724905516943896184633296005746366802942689035407337941362842735571245933383121813909541617290000536377890688480715202957346341165832972680684763792803656862364031017617571350511074527858716811957663497787818472758355378006924192526513660180052995794440504973624739384920522251609266564558989051023252054529842054691647569796773205394472937628238293600956808818331935471123661555281714281498850677953556119862761414426129874371247621086252172920243389862764843504260442632243713564938780373010255066165749276682430318247584034983958301064930070299411109727301746580972564294256682833021557971124773456358302611980964213725831960908830863169492356522068773155278344186047116757749848487898479597430924927132526263201252009112069530916719676320931560768551713592530214125030499119851629012961027772796466967048197273601149381451456244858365962023875832963893078991756837786958359951386930427914023787833459360515725868289481161790624453869640654416207392019344489854302147751165989811150745026520181612427361496354628498243066338125794676177670483775371189031596746477920302822443137138884022156777178442393592365075406157736518126426380541708133663961264569477205821140433354126192617019854823502656954948729582036641363555981963354805379559175722412885589667990263424917883679252695289949005614004895415588623957950314901300463909312168470418262994900485217090825372869211576775323120357352288074490535773844988841308564348460546525260790717786091432544346084342598224687831380739155766748608710625597816138525915895238361076122245267353488060625141484059933157912018131502082536721199408060848662580338750617598417977096196152275013085188128127877077470259383125233052012233671391555637976510881948812702327783822348530873698804861009900929970321304282249858435536101796504693349192403121777545137924145551327080706534365645635003375040184880079070417583734994414498380916254587313970155166974472762809622584616399814002223683572034934544535359260054024292959992866099764002911394892715658360931340957592437081617748694848460736765662085663379122377010199265300540413457133971418007998425680805680264707616333453380774117380511202892222752798643546252392024457075652831452970654693001217432065021131204135925897295565216491354244530671690682891208530572636810913812524533270515011272357510213788349562563042670433131678656316559324379063618111779060022187538602059328462453370027738411018141834226594631457811223749876296468228480018538876604867743868686675178945325582597532239385800479048476069841029336938485374234824566952548719560312829991324353854277376572722262820148809480185062020315826172221453320858275859230592297573365200868016030273961727020780742469337977743703426442785307136142750339992405763757397349193206797173822657419804065134152073791769267943681809516800169647691916342113846794700279123936209043763872574977376749154152052326272467596740938906797335690256513702244251889730365459348205748626856790564914588063630623779706217417489687854774343139081159851243314385808661939717908217603880932269703602893478630249420797210802093040959836578230476992806540058062682775184582058679013397578842568132826522235967191136520908531472227877383825064927121114154798746118566054394684646833335141048424369882163288281712084593252661810992715150459343345669536279044776798697128980303553090399575930639447132088567685262406861138611795992926394228430053381912974489082920551290215675686836901824367966130867904771421795653982033068007571672286414393390411803997318528718568217481980169860728224608333073530455905789607209014644936136441775846869421655031148942509122800963904388466076397475753487359207732763368535764670711089684855212409266235313589191088493052577005250233632989735755778306623249158408731471076953059485460746340010751510143248767511926101868985190398507364230693865758003999458003252171573995216853042745825742303536395757946773399638638427588376873047573807656675234044649191476293519046031992507243357903239874693795117729459002968200371186819226916060823707539346319517180186528820611721238289236000000359912642792107987251653822140963678008327005092489785260334973362671084624436767110718187493938855100110289794947378059939236210222628263503899013856854270329881981468184859708226671428334547667963053016404913587499594924247549022721437102440357846101864938798137264638479373935455307931310034053487355532392011957389412293769496445188411112812973353554332130406363059825453453157912549278468276676203267689388760935334468324203974426595401063080750461732393168451171694175854750186624707244954317450201254238930953683543434873069541959199133979877261188880541802477539512681032581561756653302106533595113376518180493735406860868542359092673958742949389930991336932274011559382220292296709760691707841196958606439707858854517364062841222133050499298602923728532975523648666037211994839568801675621330214626200677159181555007635267803754422061692399209113243268796765147645706351720544042225066951010735287430913845494842333722669219576529365692771616613222993293307562183511735891770411282272722684732789899949272451693740376816563059520435060570637866303080888690519427876224736651513711149382121136719203956718995889105336261506261679236504601605768869049194404479557728024406425044329095067287706811755597340101970657185605573257866772583116565327137346438404643369888448714763220842936518446108511672401254817974300195155680184391306331051433670999709048773695791856922312554778621268150397212268729029752291347747104298271145412510230672131385761229945021821277284345278279216325127762876111425349013387872080003323667915161340094824424070608827753561748409130057303091417682423167844798507616103940252756215074816202878489098997585970285319338721660273799871536713917612573851921810782351156061293246933379516308754585120507026790826178747198609762121377689029251979816791392650762001598283413794262668266711835959945693016834046883771819953911419482108226799306529691050198931438034558383363563747101463590144035488063404991968636476279373868428530992874180717693469824824521027297481407849402421260671199113953585163069287958307579099723851164844874834637383984503891007088532768288696766992483975539224756631303881207878334206049506111419239067412819477739261974826365422766412942605581857005500971235329894863550314966252142822967343644839705177906408101393262653494458262760276210952308481947842430169145450974675903020959378149737174459456404919668429727629219336605340127679031399031015648687839743602049025706746027242335306755445882715776736603735538137733103291243753570870837930874933877006791337727482176913889134843161537269374514372137720706856206348281929918435717800691521858955677270904942192846379675981099698281030231472534908880031478047563209231886325419451329896387459151967966622507264018908884038239906162134450379319544958647117552647012792225935350141548079649911464425081296806866272780386529249486822601378926901459734857458797746145896903844437312538738724778249913972113274850206842708216939622473682798634088430439497890905270271131650231393646770503626323040797040342637495469051248592001008222326258207814318256741465508021845384377521335721071969506509402691413787039316199832283301713541916954201891474737970220601331975370839810311692246925751493699006509008023234721909105046257426789440229466169804609757042784622769495722351797666852905330291498504741139260837405567809178899514661566281842512470830089448491015656033693250417009166078450781294704541421306834279019236302987929000210218851110760922038821583519470573069182262353846322290772864051642133494048576591512432896545561337540485442725053139181423278168298730250792640168751171482684861480984086160332268290867582103210051009915646938008379076143924831754029872444124200612472435110423194238714992332869150062766408764991902121820231685012718973420176216005630281074015181049908710704864926831908864951419977973354370958436601000252849326288550193471781149036403409945964111996792950469854503959638376111293164867354861730850464587376664037887565297879118423951712049570172672817316051097586449238067367040070356314798305224619842174931315902733342109226430555656830808005486855983267581215084289654717781381157288539811014842298198064392026517798178142903871462303916563857666771997192017120211923048747658111257694581488167789410451004133269638579251462287169815123432652424174728868178814309224063845543755542644895087698610202473055958050650688480588427953148760991246032018740388788988543343424279926619756351347108211782992259263372248649147055631641517359192181022832147843874134799870400192488802272632560874341482629805362339414489877201922197582828312787583852692527263307259924325055854553742139972121571985516558832462868521029869783627354578094701807660377389621294199523406858445283044156046378939923370537016605700351427962055229822230036127382343624121126987511477607513571325759653305850320406198039601238487077443881508474865146138509595281260197049288914290266998822885917772093726778938395325903737461979534211426787868583884725729194401838420377061716135399115957775882251349486388805066409112312042172539210434385321848903308751613721773503457877119397599254985239167147636053261804838993892213498732613515342240096657490004536944726636067309780035903080621600757228246209665750553900346719007661425728563796459786654818213013827534423785083523469809065049249220819226002072695354140895720851773015338661425959688677843953889695630502169259910645359486855991546402639265204189208969736501051138925947478569367547936381685199265346386081166726371738059553040633889337703797487412677587084791954288136299497360725026017061126708023620359994324561058280021294018303224822949938750320536190714653709661974629445738076703106913592891481494783010233021270673559866744222624987877963238693980231122272143994226865842563903916937488074032283151217283497129433679898080381008953164324284289259698672192255303290874005164436223647374226976641859500858481835680789019312509076411405359253890942448170539411783188182790402067154924142699341900386010845645521011068235407719083417984779832638660851606181003277697281812291734040925750828060668813378417725124408764141221256836894267956556957379975704360955694356757307766750314671309777059668508460756235747300078579588340178589098852408516833911455396889596213242671063532096593205425848615087090304863247891952811833432951363721317128922117242444647007682084430998390958651984449541572775286887588864246893503450587914312754223141208006973219515009043008800726676161839797820245771951915281376665978413150494806839470063489194152511373075307047781724606310304770013297759194286397275660397404630842330610348540399546508933870039644438098053788059516237502667682025550541658124357509027483222990265686286624432817482354842961518143163987547992574208037249414871103247381333765866731501789900544780794788479069746275324252876207191558284614384453342063369229048027087535794002559204880785736461733042134678556289180087655428465275333293893354190050770031577487592204802433315858728211798002610067259249928220972533374069566760937370397501578955686583032389020086522910825018017217742692200744248914784851674685589478365812913160308256788609842775508113097864292117101621834394524526368176921213777966343223338504210950722850465960150389005929084089175966728513837630592981290223160391021616578573216943040904216477126092424606665561514891108153798424034110848046064961390753572664568586889418025304203149297341504262873492305168635209939913975302435639745243726750951945113918291599158029941614118158554648302212462011063716856750183962745366335955961015723277620499929095490923027390590539759600945856164255309098973282561305029551226935859299766449613132832550697867027958025480128535190352345649655372159917268065389578815660871067180497619717962152485720579659187287633011504266172544441087918498939016429945399102285612074460658099484231163955250726865886785761371298427986624839745605872995569598585124536400392926252622935321357358518266520176747761452487122745223347628559723028328588203623865662666271154070736105725209804604518633757405715477766801530419539066648319435357098353821526524269773589750531154928262488619044777416865674083129817173044287617453828899493667435363930102749478275985713603239905147478388972172238444711288365467675093578585289846757593269082202056617047471061495109491437986511997609735773745228454651498077712579173194612567584438837628269767729407353754727399912025557618553816264189213863033011349292330109458515543575142086127103845517272361464381687046058606668223662985404494865376963864547579779589349973523084151150481601297304944712044248315772100422166574922747002365584823691065920684190373973719763040380022612749542934961838141615845913899538077703861309032781226015503948698141153066105580174098084799383824412427500121198027215568294377892569112339827878587109470109002443309445892162441397491521991919720133262221656815693893277465199032323735985108009010231239713920092499934505784351539274508027824859067262885923602955852830927322155266530129179527222487945075772533474538963714708647845843761780105878351468080588819388475226938636409579130130806103564197582456424591423615109233157489505494620483100861279247744203109525592564556317518432546172981392540783136007128884562540949973650301098190517498236400870497087256003417425849558895881869637910273133818245379247307709741734070597532942978126804650485753618360398900513093902584226748204931745832753788909378450709224412708454994357342330926397560158494756777404197273895637235474631046111335654643102416983098517100891284185202287196431349410239815537877393011249103276101416448291941023413445370973780010787387909085493228172215328130776392219658688232187729369940073638657065571600100400724107584732511652190910297301368108120231810320371437441216061129834469108104617395581256067823339759318502139612814006859615061591201317644238535949446615068681242400303054832777104995979586185988478628584865336215308946020224524159538128150428503075399118771558879907067065427393076057654528200072323679828878647004728241909971043414772647076186962599140160504247784616367040129602763810184036791722530328337259051890351369975645129311406250014086347484168116837167235163574441682769522057442339243035302503870122741154122567822507629280832779778287088626098381245486563911563062590993635983352901689099638681503577148065496966255596302835600304681332228863449595390637742686995877401364889890117868697362210913475925929321465457482406916603117696592400945655696747785328392060436221730540707397199111719341967964951332246055137445212023637768742816040466360210593793315825600541100300699640468341667485156809755111203694565773344916353448427814682543203469492289202540308398591860280714973330957629952379805347495558630718140973303386796440111898851406798128066075114329392118542941690861371616141471570840502644624633941571079066333291683790750135744880259386617946801544450796425844417602595583054614781779228846026481685790259286113864917021015007110848294805025637758703081856563448001823413323488711863926106033379894299817604140850666358249200998835773775576958192469159491755486784452417444648172657106984679547985647128494176203914171855391649660201118167503474377687622972117805647766237964171711212071654818760845407071627370275451821824454318074459404052145567637133269343224938753922285794200972106613329887266591699055023902847866234478853413067998489353471622700745539240257808764636758665020852197670073864784074353140515828283051327918856537199212203082993658468835417427321509524934592755666003732898312195318078409409960639628535170715192129457418246599367179397814129002725240408123402157596284602329863431689862110932524203058483017935256071622258593085543236662995767181076089499516848391523713136761437089241067105108946759804663406522475000414959639374441548005849974506697834443626090629381330393266756768543922423637566392823672635033120551068694744022283179165346044451785346611881664540546328521104338484593735930598686417258024894915363230984204815088283579151127870374431497917638227948157874724836149556092271676102160208522258502126745652148935534423722036431159065651029316769389635332564990926494836257458521919962931233621897593165393867990480744941907260932095539928005284034720429910953871513941549269457621182031460192967744664376422138990026488347672251331110874004420352266769464506640961005964863382786039186943066254791921560392245417679010868011714380060406365997062512094846628131363501238344125616678367565150677761093014998828514673178477724253148959324199420250904834968554654266256017829866636220592249065307036367873889708528958248269964598714594837124531681071093612741291059236968056293380656782235491865782268615145029704751063432553938801674678903186856741968556362700468388293435354064508992289271657467715978608557867867581568572909278180874853640654247981372990819807621122299260376699462860188134713215489116473482340435873376703217295792412736753402384734381040644706450276596109066440903208065027154196502170541734673867036745102136544618774015029575849913051922884393918329356660113494893684448995682510523550899418156489306127017806029060854726108111728530242408332214039536895372030453556219150670855045269238751281388585782631765815299494471644582590664562174610491693104952137077335539244748421566329842429819869144643446560147376742775385174777247732864682407347326438308084878327962920194634477073177255969792625022674822584858563759251198854408867317118721434064070547407433118449407838910683027080232574796431057003324130221247499332024948726806115360910173553891186778565175805226232406622948512585208682833181044270625538322529035429300971681631522707852781976805388753329114491558987027188921307979135876155227156180195811525805352086890659910394326773634855601380408388899502492143715812901138732384540780538943025378009670980414468650000541271117015484773107563579332590080878694510983390328729246027297702744194644887430606686601328229856172464286092097452500827291525413646707645782157822626069913333873739724695045880030360687638700962765428209216156759892267801922837285575845449480366689739019328054677224268891066124881479449990262195381751607567996696429385758729495437511496511069192405950935261772325961422103730376792199343505788320101838672224703232810310165302741943232091851818517528290348526845035727245166486296475950977203581472743576047981143994403542087272663286018753244215489279515747315767433038729090322007766973423898873269109811569748125137262290513514053787122143408437579943617776863664690050034480463015781393384567744089794052125799393998172196307551517876537441572053248880636657471793507363912995098042099131978659449427441655593525707020063623641357658371514094256877039576919956633532246066783369745636493361900986457174463753193368903390817929337440997820421860903689712299098371278296574402129169192076159484439899191234969863351072719379558492865715330858568335286312595147227142849434991291185642644985685519420055396589844582887946642902366999935960385652621336348033664559002182695563380289006038363557974098682645545257434654183812594760011127766715165781285321043242738338770808368818147232659357931054225770422356118372053165262707508256176660119920867222573162901978310131276777241535615251888111355273032574909836537875503249959154459419838360164394707495221132570887558935227314993983921471653939162891878347117540337291070423609315429146462071079149574861819016370804996893532310899032358370489388804889219334877300182527806554691172952885197875914555053400015303566544927585454564195160553964848983894201023607428350855515452441379895113302236198258375246517424270487867518464195829231534863956786295985768886015419526934882114952260704419089780631399916822509511762074352334775786957050921607161937141005444899427644268171924892769963166949637429456128231845707176450344553368086489959099619835007581627012942030041619574171545440518760328658521055537186155169476294486814950178116941284290038544442363636885872877587713620834373467482997395683464124022399854826927258617739255180842348455210697909092379200493712206058101410637470798886388088739079388105788919715109292484960933346117020968525012702606749888012963646234288541054572774552151274078788334632006953021664193139337470235122148910880095496748359435782617038611658764337027302621211624543448307307906201321319071151626915466554775788052906660403744447869264693600176685196942627204009210440580796976840586167468265873221406596714382689941366241362611563344970158464730520001066048079637953201763711900683931897195679789375608778306167331890821410911659366076789403339313872824994553540325398020856264121022777455306450112103502799396727584523794190169358885836266801267730366436480632868797669201216188173893691483550289872331334727731806365101033422873080396801001789458895914323670217582029422733593792324702016932865313542866323835502671901910785362277673161564009470417910807397824174324114520164298078759616787156415544971910781811224143187164733929559308115629988664444551061682884415841979580671543366991567497597325428471325603135409018329564654810520192907606487916375824092154845960218305981474339236035144899812728707320312352636511312223240326677752639326296737039908595869199424412543187841327536273602682105181862388199804382930958340926341959035138750934431282530833856799827806363621455797430193803454471044974889243576806132593040720777647284389849482084414520454969300131766403780169511451522671698751713069680078151820630406974022544309250547625299877633483791512318230311313763359599128311852996878314641278249705518963490602845849703885698415297198652392955141788159485796554288100641387974950882369639285801167529851654931907613961628816574645889345598805398396004142970189393037038820391538810492542183198987043157658877764206807724101321585588193414574188671810581631272998883429439007834493722493901168092682575533047205602500442129975991642105372068054367282124709976744710673883946600409447388868881892920904714126595503019771638108319310097105909838309550761092724618934676414505498260349290107042335653403757569311080052811617898642416777324554252357703920522970175870148378352646055135739900588828587459112174365344617324527451900662916174768526000136519399847974149125827039726139556378161842826033772971510956898742785375834104937149823334854608428407531976429794797334934460194504458466904343010093491682067716448412701642271675437994463427434803597100107621781439958036491454436623894105610649061592750997177934122180804403945932390884577039417735327636966180644067474522873465312661983016101742121581111733802249586231486734830952320727728978101431585353381314061404652593852431547123273363044453913218274262934376805640069383705541102752781226317337012477287204022053450194719449941522324840914200160211726960450259780218132146173605864338041486290426362390149910420343870357693053209486555885298392331703534001111502429576274903087721630959215088229297771791815641003143859924504922932480805142201766395151913615278389129015768278956150403869749506323224302064149020411549546630807119961050861084886553003680236534994056795188884128126601316232870361379810955581368626430578428383917643592187644226333720655355571023501595181660172566680001603021828607327495428598103276036112973329556493081455724713311104282276861479426300011344945736759123812789531972778137330492963250825924067401681516052501139960535137353441517405164152078622244228911782942467378044484865289885327574611047524955871426939004654711534125768137840165332730253539913114742145973920769025920352047772538933815519203439904506674643218758217368715226425751245968474204072098076242413005888798594708265382780098914573179311325135035932322028271404337586215388335809600092278311251920333972397491925002949938426128448006894800039835800037992971703314497964757234714403531965155660196331991287334485104542904366451432969067570886769514401585487489281869849097709508751456429511574462584590920931376561387426414238469839666664808155368823302214450729773411001001120093268457783829053938646776321757534123532045247852906255434533338888382165456750282373205633665240371598648187238656780142094798876336216686259602167114286778585408793438311298651955191096417661553603151841192515341565445413058262390241654072632630981705832169516786109354201230714155416141127834405078052187443475748158929168441233100900887177605652881598806030166892797468853743664805464812840905317975102497641076561371788665411474073503795865506040403245987604405827828995765191533097933107811320164383508796664740956437493470844203771799643751386739651530581766428964564570711562555401140306609645970619603251641938667978820043739138023272729665732004399627077451107705508912470195937572823036018199932264589890097451130782155912864059750429502829877474254816843812022676880489992436563346000078793190696982570555326727931874126382762030806284453205181322730009297303447421846374071207411277013368162713644954736535888692370429189666020232275505719137160666164032427795904104975929467397896665657548196038447124713397641152364764974594095728927311429176598730749609375047007032778843739174453861041703755265591775183586332128476740564406361996415479232591159183689320671277671311648359020584576541120232864445149534701686105815181980321525418172809481927353972563888137934398860898146751945054808461839121491748803789489299338470313930789344348781551655275666397644954642421576398376619133079600133626025866531340462031492233545294307966613382960358939655031883252954601761441349033297702225332937505671593463866863135044782654879943854362847021158563360926929907495437586796642709635858507993606121557263986146028971469585019377088050351683573146820256980551957933372068465513279907549056461696531776599311597747492374330401441562112125515555220021879244193383410134554323179190377900534125654761170292427042777870360644817192675855599700460473931170493180181894475164176681353125074729329235029988791149505108407833673337392387624472085178402617627369746392974915322968169325288242406871622633498808394989868605544606713933111241270318543184087209459513523502073482327080890267945282502933487183992290001445327929309896166487834436539665629512076930238518302459154534179498392177549188959438954471976529067113253773260475708356425384266038861661059738135813226302941698571089214818329551786677872722665097824728833102532554123787241055446947952278199843389063319006288353643602605220044919170209649609921132956857783394446056134944720197750644323291496626612982632607390235137849349647649372188737247564111090412075946251998040483054976779594462475610013868072301872034328338980645060838113636512044464987258816499147029427471371108949898005653813421214727835408315877781332082158464861743147068316549695987353100237116705865616036920263334705035214200738503374715332588995343530512242401382913004069890747330924408375842628794229074293809628431109820852610128175106112803357483035931765569994633387360675697355711885847056729562265366388370944976535996204210604876084462351984812728381711426687889015390836264968556613819145882892087856958492846793244805949932415154906297095560807185784411580245490772011363052676130769271843596231074245378173879058475946684003510453431384223662077912887375053142498704983513208906273245949117546463002374092758033746938775163454704238172393388558957170202889389656039420486063317766713453481960126629132016799334784799091484142104688962735576247624967839851877410499544244663300521458030138420948247644390712929733748784804295358240601092176097834282753853693100174215246388799726435177941512787049891980558045175176417587170462573805136542109244755933094539537160054516705473746077137266677661701221296308615363362055991259499051820181320705050658601258628616181814440927208646290550586277204113531189197065059659590650730730841397885892895086893105754123218967200011641225916148823295804485962160836906971694475078645736327249022922925975089115271158375844640354100540216551136827039048100744821292273422674741112130165127076424228495720318527472961442980201831921413797740801643867310389574775314548086704303391560362398057707602271377427994418348044637943528072393873196044410669596563415541377081066200349573278601145026570186249785810850640199630939346022194387934006834690422593525255990032796569194063916607380576966552195168637983781017753932903779018992223744624358317186797757697458410243313721369221261615524076933643562527611019594089005294696819286375814448590488821506720028414072546873768554333376731975642529773016437327312256351570605953633782629603003562283336303301915041760975692999930590695511092937450546037643228892105293186807166582507214423802794929970198492327883172090295589772365047972413082136242582238093702115787718447126583375352507014898554853867895694711192430354129116758655982084831189395837107855746230219369927667460129516571636398204070484110578623639519804743818147854214590878984997020263666467366732918912664458600271335320023313792523231835722694668758742309978483230215264082164680211269934137033208338711569481565731914869527635521796834956200342461141897918636133939970199806822230126140579928162975082616463126634800702432118657883755487304385729489286781240009153625001089359313879365230311826684320192441667277030373603269809079825236156593908629550902672648212407582741129875907634664580904853530969070630136369857264087373665228907664978994021801858220570750651071192919753468450133488831386615891427982606716933063614665574885576487714126264709905540983580298910729797946325005122890211676427820735517340251632475673909969138266919311467260475286016711538317198990329551005935451007066897787977766676362330989948479007295819181862538794096440275195144631221466795757705003690335862509151224230657167938628180177268068365978059775085537235540708193673493938821770050614412775743206860631894796249021610193470753514094913238305581082183663117409530559878861625012975338046299955765051612802939928111738663777597653884163288813319303235898094800067564278300475139537192411137746820849541708486051791945818253961940536639611216856508216401778624775274013572051645289726196212289779263427668065163742835370850860045183608650244176900840373232192466165891543367205842894341917007608357004326638497841193379352094096076472148317717494498072514987491492104817942842045480402220292387387886218084416044336521110281737647415129970618765822129493205750190734677867312663798943549731373248467870296253719841004881209545908063709153193978525368754861579500012642623873602134618966499852442149382708631756477567686789281566777917092372891700754889461207516754741702168202412070523267278880125183261301522972135137200532567958849645595008834341937446320362724097467534019516152639257490936200074873264759857727747816864802772219449041129140851147738730423221547203938325085813015102525644328168178903675966215752605092772783334235891577238044003955499109621937298927524864111500098430779137121604981311871030688643269056509834043033065757012322692506712355620293500531982907079164484300573383781430831548902036261807412219027416149479213891971388699344661118211174867745211930133553447190012351734387084395875481649500336990855069807423056046124277304162149859884690071517564936310382077215641532085520826438805802787427750045389495307038185651475979380784391775729197401352738412530050774059802168469812203044856939983318313179393532824150387095254975199640419129360191359503128292008996132528062077774636401297178102713652107436494988210556634505516019924930979199432982105935188446502619847942963900175573865610836045640397987473515828563067804092375220438876761288715896481849012559678452035441505875262013334693306312712309430718487873943568288319024494701256148587654792562667057666885970955838625534421954532062455578840911160774954272883828345763947314309894840972309492158898571835975245741441370836580199203680952249903985464436623163516189372185547746779286580100276685909563158288914520165150649498582956247025218713014824322795055056440849270648818072846976847347746839408750048732647958592152498347504542973160428239850348722414748139717279055433993585974159027790808040495740903422031404744438968870851591984014044896694930331976680449987803327684908768627429329931754836011681692873880926089620786641316532256283675962613740837193062149033530774119790753725533121477165113517988914355721357369502426560450608571486380004213757189623604742649643549814718644073206024334696338357011882612078468224969138734128395472805197369627624181358335888618162052769019723934977784200498411514961203965227725569372716978252021887958093701273888524033723798865572563492761841506210696354151272430796631080298659916169566250038243500034618163108128964706462440738822302728267687983155307111965475276410348608926787918588392829699347325642015595916211939424198667124029499092185343413209680103604226513155925137902842627424295068663091157133930994708419588174104221528457011525833229886327293662436045539669460962726544894689810683833368852820085112599532780389686317530014856711002296960882320907169505385812710227592209198438135330846976571377873992990840418724775079072257880988878537435314357510892285203385815779129869879404437448034997779747194832194937917904398941197926506080051197957606214840417024957224433374361790170044028191237126023947277269874019953395306961152260366985848539816111860204495020909269755498443378033921007795485817891707837184395301795169429097515308045680206506847935533833519193312624617476548831164714320982841594816237524302673173463099716424755815632842216131168836294524676652608944832601567948428163555318262395021280578446606037731827669527466579648037876491370765193737070645854209910307509884450117312084742610530953816161718730494204388305167148283775533954903415420639894710755416009300378703310789523929566012333246366689701096922128983909122128579205060462924337133520294182820754123394243847596044700004279315400475421990447318855382787345052838868455129047341778271248079418650590393448002683618442701911765601988676812679659268300023922779585477114099534152043158132517368079321403963478716913965251867935979113399804066459265604539858560314223610987598115617902140444405583271679077725228583579735938557918190227379894167960969394488492836925158475268768083875397637831897143148330960940960959381592111019571219620337676336433381026559710381636258824092948335633904377541108539438334685380548665459414214297957738953805018363231752551107258237149654447225558140593743975594272529331411735802120280745727186334675737425057983628144953184805844695085078662963158998044850620510691212100289057449656188917830862710692286320855505241427414932749087438981139462249179032831141285521454969384737595195208333709008940268496545175991597887087851458773762041098688965205196996888183527362466998360666427127600622544311388761250607802837715519361658724737241437618505216795412312524069312903295412049215622926654048639936444967782118642347619677666727898172558638814275227783980844789335376904428722375077261162642646881184290005456002332671645486652728104980531073213118190327234713345407516851681047348247262896610654669940940754835679596456752659239571125107760463449659549908584269273466397224552230180960388990377666077248823186944023460319081401432673485318987447578839300469068301850850761859303413737344517812752802859084339396235294746011019301207706222825967946091365903270522343551604777458194420404185938991961727219993689220983595949336575248348338898788144654047375896334937896977951503292744682853364753640855550222990430476212073317971886692101452990699444741639830350000787987523463801570957467925536002796646508370759071469678318881637732202278582792599392493594153006862284757631373112315412868309670032676820799067636163582924594323200569418409042616076093858260428160780604507397164350856621085486165564737671316655161660051039034537542487473334995442645340247084412546987971889974309843579986212164175308674872894116073568959710089172213848145996718353977103894886477242364977561166278366552867520251122756209922542257356083719761265795683837423021332515444387477582910211534804918040622346487632004915330053949832752086145129969112774183372980078519455090389854564092860293155792090578899752297675957769316854372961710063936760433424828310875928256517806630420631156133919389229510063735838112913787315030389651894388267481802735421438360484696307286212732358505243619767697882258723118060617320864015397895103067158781305479339031411657962155669467971746101984630461171863876721846776417829871429211095336495956182388927927666998878316396254517870329485840419238999943281151966708724227316668664206728514067096405308178135839351611059892350630481387988140095418559491677673461819527020660788798729865899253055685018315142896290646623311833046102546797108773787104276158217310538483556125035381863060383243492410739068094804235705347047320377149124836923245683673195239205289317929943224698798986463491653529372219206069768192286303390629674610989460564921721893237444916161908745230642357392884770925857770611975932513290970760309611063645478747334511541646888745242137503448711052921608681794445311804347902691318297798826101966221229866604533230909945720684412314485108070536312246453762546023377719219600879028734910326925803370896268896943843616542225843491321446870237436989847241162152496018676364875232460369712410997347426640830580640726648715294063791303281744979901953225096328041060982050375821853426585577627476938677587552162577606397031043750308941027905215100400542478244207632657720898261150642283254052212604873409483374800398207051962213343747770481523094965862409920555050413471189060441123516258728632901044412626964044766629353169590245503518916562559013438285434503545114714433508720771867214007605189679898602085474869367336033167041096729257050256743705847206331993191944209337431323563574048118031644235504332196055143864508054460246494791265697930721080074797172049407463681918505974905395016704400168174639175051136502163094833684853820635777523856126703325996646704334251458139308219861487920192192028095254793228262636473845414686009365448744396648998188189042497668926544980012181830055733770689033803247098265949086708552743829057546833784860722783088935731162096761667036711340540258340037746442721928663203797892126642291647684050073124773855451372244808486137856604022851891052649947836413582607324434904269314322962569543712539822534176856649016079794525325143088556205380415353365390693373368048656839538096251354270591246077607818885123009766936082227436940918606088855543157832767060251645991725085501506651954483500832224572836501229887709866962530920549549136083210491660492146376622810971761885737133034786947146601957802650202187684687301829661501459495506111617738715487680643385176831068041511447691002460738651470681210318129227569360238252250497456367789766485456325082789047911532213497244158927074309293751214048195868359780345217605222488022454022087549530527560412104127938165590241509508448556431308433677989264518977391718438481053368209957704671776817219425551351934267188626803662651258687253019272715259730865083844100987330718392080234601084770326488271576444062654356323454710821128886101906173055320514738959030774027794306124055161931109484257344681776237081910353145400118528097743597172490934819905654486358069022948492258142746429306452561136409782599139744441279752655009620919437791265765970650104295973636721953871562510476187218172322527143529392521197003895449687728731474928634655750255244283127680811484429589712940387527322479938599342816813476813538200471952686778310099917006605898638207189814396097895292750384991807014353750561043406159903599544102722596803076248708040515108661470957074290438202729012416212786135097197982878065458024419281201263366763613851319479957949938408012472567745292377746505804505872315125890902657712955582005867097676154580910350897104726747651480188323196743343342397373161453924756076263938246305226515690934283095377904611420848509800354554862575893100317010283942517917555415840117902139743910677073540061722965397955170041295945430045925883499637540595608771844735183134734310864328293284606982278839380924170546688734954383102281778647295973897765479584863316386413416030756289621783410519757961036172363522118711898802781678212786447377413063353104581210899429474922654540427840650443289649618331999608736640333246588657369880689194980126457183785409150515226965735689277676168191933715656518739306166936923899176550403604250136922322005231864490944420457773692439821222941393725572287603214068445872245808876126370868726950497563177685450572759831597280047897636901764291154308218525222551645251473856686239439037737226632989510989682477511950813653598234254495557131599686682854839855718942844381042316355036110649956794630813836482935372587099281986085279941821536085479706429243002982081323739876026898571868693539981149227198193607991959918417620574862252440923618936495413077665226586086894715764255262535384187408477628005845547785866260175674515214784405355741289637074595866871886599978555615658249157399399488419416915234787785560869942428733324776623060422491058084057992767596543725194755768903597659203252546523738302221681037663486905482193688815543377838801062634070290693000081373552587440965752110200419521135864304288790713788709442560978122863957248071081163469553712993503774293580725218471247159598073186902265825211388642404343209235090734713063966932856665825014200389402034462070386010410033770280417303342656510344193435381681526969120454334942443459547098117719576489338305655504408755869096949911430361239916931319142370730811033920038770389676628306224936622990941690885283234388704051939596427716652376505864998417394759024222369111204764609359518340788401642312482649233857888832243114017531236270300589107319519378967117088627132376359014734568757613869499623079187460265303792889494387348966424540389124542312134087570461703274982818075633108119143514717231259655232247248212013865430166010947085540930374937882908375329067159198933500980855582237090992254567685684190824964756294994338120854102306546929615550087133122278051921015295462314167812759642862164046892087922034351229615353176534960029331690838770887359793965826269198465790590413356430881083933691838071986439984609900320138776470974400298436869413246989103724516778254398804908485939616197821657468885700336876125707420995672559486689731239004277969613284487532140782456064613876472971846600912419128007783101823602985069162422568899645877818493371108313695082781082765523323978214416815914759860959999362267303364047559202886194547091820986216290806936637017945143004800678032293082516475067225939535254558877365575616761203063417117981001358680029270171781500754798042333412327128965535175266857090593064640518406968831754975280333857169786821628552558377705148236363794121565232671133681000650505132714811123155995273089972948317612097199703791445688496752427255160960163424315716143014494328155954252345143703591684926805285981826930707979693025852319021225898155204721901112382825080107686643080210806333167678752894202252586928918118431496085025777377347452922900288622970144773005012332263165880899656424962771752158447138265329632521754520485465698943143403415428878332218819850396805637626126675803669523344648169891224393608640819408017764032891734242941125986821835548264396909018027315452416898301503646569051041390438757392046044557345753676129564131045487516972090420304519906280812581730816968238147901718431849210106617943632651848472786702021933323576114266647761229039774457355099487262841408331187926221394167151301682759518125185458115125086838333804578267803297990744363723210425366449868374727575044731220332101285372519956925993575071121732318619250482637110499117254500561704902728186110887026122940965228706675251151027410584611881166705293651001836156777759666020065967072445769214848005926232477235858748595425081689275403367836105313198397556927360388198570495485918812693788459571790016223999324213782617230595321084157770610519174708036747871822398636541018015702616293804337815908445359232430795765109126523494787969272712323432602904300949437974486015925091511722091004367632558145235779190482882662467538807908158789191082953277918644348659960868054192465226109575699072594134627450390868903425601814062547441530111708037741972307449159529945904902080933550298035109887926907743085121271130357607239115983802390423561252856387478266588616338987591581477177453709483162920555270988033401801717565184137635201078626305154185581689756259459588721542926672081586173796139269029575034859896605615653968738325939727386460268691271266144987505962080516738545068259183975069422001060688798168394832016173377443608268848041629058089501950167552193198744698482683959571062401838610877129490107289748670181487508767470008731056303381650606196765541229558415641654814930439996361779555089893431748860040938667224951427860811063998568528138426187755243392566342182034008154247632603791042704007148952024325807325892502822220836515499960926613679461884482762091071200875111322040351982850194150377728232092437100485111684980883138578801011695825750414316551676425884098650605404812390407787366544375430742739563344446700901345986673251670006210406321011223431102233222103418523571438268245862508594096218639282035787268335070184776872921200504462336935687423175681303246720191827245741871646971183604102545019296592098129349002384507067277710576002921375775383104378067945864183222840757838925512636321307323215937146787846643899849611794565303987111795647943100109552410423254247578118212672305928266966454558355300570803628335996384886506870825166856936889203509044375671694734772591132222095137549857550034081982545366117532849858025023272331688337607982404268538521712472598572074995488043745036582954092307817833001432160336943625919692838879135033166405403474421312682183757145513617776322370799722123846450450135324421637599247966178188724144990711246909689362535852281352039917700133245944571434179925894788569669678608573398151760428415947283442987898972969778023349855488453784541596446482664682836575018466432746239302999837963377611265885938038240663178722653812539161143906473896088110051499064593889881416765926888767091402822440636635204889383727952231892984124053772786449652720693066133854354488027165354433293203888195816923416070660020065541358273939687043595920497749202882891430569471098349089166369178781892919001566721089257275756827542299752735874501320335673916321277454047910640793845236289142001752371491669241195194943667218908878622479660051367817961690058270099700008127136222473450505534712194282435038119841738526578065094105188858229065291617780241624144723112524323898677442116545453261539864179557054756588582936932444766238842825600401290703094752519621993464446130865325881112246408360210810681629918627096351080609577342269436724222657778398666498863091205526515025491171939691002375555275938850148199304981682611035381890423890362768284517308965180435411329052531759461557074792904283983748710943213046567458971430517881453752330118568679636219961725661839474248111151666256217131349645134536412237928448067607931175921215436177753777779966630627319656623659974944729763182932586132311729628805300340065437012646771067641358234259092784034739364842437259869631311000645628153515951507592725911937255978863613671123337537825794717513572634646485480525377290518827823935442500267425769575090589123021633571622190682483487200709827241482667120992358502484823869336639050675798963517917744482887944966319656878219888248704534855879155998104693060457791259061178364303570905861326907946938494635364521901434226030320979632584131855599179108792047591175435271727269228062441959472852618195830208202512604751691913684676676046413912654462889425084129882819951715414520950813076007209937288873786277660751768824133512470106302855453156359214139863736082289577204014814815979879639797887197421151083581819617971394413827585985387945851728134686352327691080201200911271327891885509729257520391796592294449699575256562494278254300395772145994856372089563487230783381768051420561146656933741994783262997316000061414214101577159658057736727687814715858151946777382257948521467614190698239657233750840486793496093377698645929163097186821832123826495245998877333385955059167649070973730086947449760932524597933747297427888430832927545389765673968322865247435614632525382443717146247589215799125079749745503449346794293176916215485148257841903713660690752076546057958452259520043958467144635325499952004931310455611888196209732465181766016372192277068953257582491444288346886913097646829717519469877911163595545725926463150910117866406825433761358645703491456029064664981513127837180256218601708633306405514532172917274923190126631901454801528643147289003633758888319518957997194697642339156401076243269849741330856157914356725602345567361490242278193475641651588054459274727686662964284115217086670694192457317456960536184530054342033577981491679549616329468167224763468140855982427294036788294535879793981889246128686921378899229269048708289842886633024517236395926289206369713748491492601460236922850827664008828409180592421363207837719252097678720574084558034641456035424150165379416482383129508982192864757879265033272702669296420380539160004748641354672414931248694837651799358750698672489598803072900165476093153929725732885560050268632304781354421468700450619368886222208292107033931923079703959524656918518875623360209433224816630599472125182008073685291733767923470601002024217121194912801176197570051318802018320406185922769912597231468155562203617107845488256482390572517614105484017817011745611128871929919496076676783803778042826750081487477475789278346240208121743212710878309708316697913522510833260764886305406343601090118355725598321928558916593406134331829107612441394968407930870366811320251052761576487412059842428518415850311033311320856317676351082489231546372064152904089559354685418492917423987189238604134801254757277729838836776484870604377823022134200919380860807335944475471925666598407150087246426493355347997384885006264234925780495629732997113054985988910208725075200560425778044183975015400238205618943343642034954082985838094174758268539184826587891051185817879994130071553165122817772146620552770770231836199361053084995027342033715416095356631855991321071241664658910916575166153912672499229366495053323517210159182796289823404625428318466421435318655316539716035906839244601333120602113786778305035649657285102891979601093930725128288378263009197231811278061734484599452812672817703309355002560973503360387470282103781272389196072413624232467297048509826688212764896023299440063636413116459220391848617920493654443311162491442190646822752673828621586099234586047167406102160103415336675651675159476655360823980603023451627753111729901063525911427856454243299970112340247336184494967227772033073982085039055598619006675254566984977265278530171531948897156581997810448089163654716050916239914141933507895580682912694566220639407708447584178782709135490498644094636253692326286191152622523309010758783863177503201660783922468545730230212710847487176425703617444106428951177683244977080570668189698246174779046438880383248710395588239812714450718074996745570451738626106661496521568898164905200372440054148712868368106231445548653641382430890432150971544650604543215932683973574412147559925966402184675122365301603813117765275077162293117816016149850082220605806890415602492260464566965165753845620832720521760535317924250647085399941606912624224131333166549821614020245456927507341061971854744228914706634534661075570800335187474787923379590794882842186478562424142068297338515154937169219357258548360741939568149972364570498320130620739070432491271806284237639985602484915473338195814356276706765124359251471263492784977745687248724010322428064690870281354243499819382190384467521351156242360973541876944109627337326699229743327753231653669382414651733505159563011280463290108072515299191796751407390667085978605852958865666676876495685429011201790516952040850270483109513780149440512400041750258599406087550735157021243232061089921047305223117945275595633783732334727084614971481524622753502793889063979826857065108296263632887479557528515206433557246450313933267019836863762819132260570943785758711521698543134529342242772344348559870230882364858002551534853671188490515128821705389956652517187254524077789622108232487558194729908889817470901313430743130834773589945164115631728143862706824658389009223852443605496124782526076425507936695365211716859896221196849809026641778165761090259407204377806137804586045437963591163891637705722586553075120703653869532917347824252080886398594167081284612595711392938125170021384009620493322929142709979362775010197382344744465127684662099056059572695614502520660391825803138964864113071834441678521564698358350099931114188374828389793214689538810967629091871440895565922441176596196502576924362588743911262730053199167120922563477905530370917619921782907387179752047202840849383527370859124549318625159955501902620247438227539897516005458039871847856943398989657578495242826464135972432702546452961682739933349175725355171431515263164795846122210344966748239874682595443136638702427313534129037440009466641787202378302880633280993028364020787061392995551059141495135153435519117207055987361249553514138527164131049717547811724751197532388606870532119919411084160784957665761151236565648793726617620660008987440880737005719868123040374543779761385066220329764842336198833678929864149997395545611091293978795238825296581677609242720868730684696049949618181848642070253144946991346742363313583345138684032476045217430767866805867606733594650157640724406289756208361980305428889392460864961771261482921946647306628317491142085560456304783482757907242985431326010342817049015345565008603631434992994020166353008880071887006655732833109583019646369418785734970389520276869784955106225946295634990564877582831230429082165934883184815401139802429116950318129038076489980125365657258620504281088526808098100847182122459980372737853021820792194045902957883238403297972964553638860393442566377790931077548162842469812457175518052056503402459415047229120859574068652427899515934530708888624099998128392664539282138969855475231342952773056151996954047804698001121610261716419007728233621148550698627770522732861729841173356381178880128797703131666240869189225479534585500140925526944388695046062148155841626181126499109362934776783475568434886228872245338134603326604666609709967729810201228069565233643510710722192201390796604712505849697801615370339425461091214001922843944738948773220037997225297504829036694279568758912681159463511954543851740329453103070863545851821876684629473795106201826573423689982580493256610021286315616830773557723690834441018950752613272926625332631451870359103829598210555664703487411198669940306789040150072856762300914515996273795723119437044127909468573130319640568089344552413429002305316976245829055637383881832255585683438613080053129494373979734936789181177512576864229651749020092521378276394674772274156980781327376130504991078986611208656737600768215103101522986876853161688416233835095096432278839162804994209884393508240522194168277850952123870141911609490149159185144786759968266988826975495416175444243421484702535962574522842716123454567546372587273078741007263399748833053261524267920407021524412255066909980546312264207651477175507885893628666945153273219934271505070114997578898128921682730089296179212611660002269512957685121010295046244794244195687258351898814926783270840690748390843333053095036303581998528167599601144853737610823071425166362036630898453814520906253214045155930389330940837984048630065361245223455164840111572581936868570911340298650719166351732309591416589554725028113601413528021660367244837698949647236695807782879046908095139448315354621277996722048196248630462038539200980004762102290723342507666081268738392271109755825776693151810794990122359525963927831975711236008676049922131267070964330460568665775932038327880958807320586242338417382760995204209756226817567295259597902701818525639582635177395582356002972512938682429279123635693796055529419116586298760299703084421738784150525855074283402140071518433971950009942335929847741099100283863059111642072754971822633817862450284926445788006840242200103680461965151562822095352753503614276718269860508942240884088417837492660120200088982591941372303233626560008083786270377204672342375164777558714589567366140537611711700800789284686075466744951751499361104681326313114357586113702030611797969434924431207875043040355786187435473805851328833687126588220346678108680831835512637418035968675671415513145778697721317454835962590603617630415097618139279977394866843990212993843433826172114566585569174652549037876492401501541015892466138049570571298768363312347539758729863480932495431669104854610369998156460582279722867628575841838446587460226758990997078679639274525589123085618073071460589458527809687308231483464859937063919925379299736486630194093603679817092941853879281484977256520651862729840106192173915620049497949178317983579069346121952259195891841761270692628472868083806705598182818040510326067901317070022537671879431733716963899755980805755670702143144518189327475982108173756934071787402234811343377139677602386937640024056433669306217616856167587957887970368249301746411709975833117993717987890556443328469925580773459417061604537998858279663065361134661188769503894319145405568111351230613124860164181165451851684367322454702344281998418679930508428438550233172550138022028629210737859579679841784144439640065479787798542024861788564661275963973560020597932125523955718929170287853574363121355032309219705268528232245914364502756011356798630806246300156340959720814375695343530163727297445334087536455754533326419789817786269934649171004812995624508021860691156630326668740978955751684068894957238094333709277983188974731610729094715160130974329384530626292991536137680057167854290154336458896582411900283846563203673342612917140753370332542447219697156530638292487945845541205087646968712411372674272593354533819371277169235762314325133541052914952992903471341454205685625178022026914684198406319183764628822530996263427274370150897336396157712276785249625864628226133690969299579479599463351968082536173442130073730971914093492943173672827804464108929362453298391020196843302702904001217923606911263463464062951461787015477364437885703314875497768101237408569817491184793940934003676332829891555703131938230535033153688409023353277634253567002253648271894832603414698528365959402409584960691596921277597735897067863015591313516304294402597168258693697778097723564601338467363670881809464628961425125129652398558943785170832392701919677510042970964195728273251510723466068355711385154125466419690017235905967448485962721153429926651587921030117341498736633964961591498306818390967531980633782489757178502193901953359729047234449261527015395755253155663511994905398272096578101173617267282683844292449524901364169719193736868409260602829480631958278457386985983212321397220265001623836008082009143571285312234804778204095472771749142823821752172065770170334668909658469014829474457412906153382350726780760452099652999135677064827717425308514293240559707942769263500037295538036348730199037032436431195708410514092203975634234573931008123268272831373420444724544467737279310977494803096358709753995751845198641605427351518424424907232340845487634906284051309607165263330775300362872180613755726628136043158283651228381556555694586899591459493254521557447478876536604161838889198603245297056463453778256915827686705538726981866241256001441552785875044226745139393609739972832972243804203566009861969184169584563260965836820519111271269985710293543729885863120155084778054775399192050114969621032032863429748558525869648558330990135998101744085818905975299675318234202671847812861977124623226936033890756364933619503405841782171555722504425672911518043806092890111405285821832629727617486550971898729529341010225665409130546734379417358106469159033089650910681685141186242362684335404365479364226274510651659631426996027581466449929143070424544343543691623040962755052940953739111218986135822670783116947929159992405006802767133329105164100731731378224029755822888686838931959604458313912215257921702360812340964702861054096234562316835889966072983679018696232943887056131102804516432549857342677599447153212905305917422341131816252737933266444328979079512063376803712080191919741006510419283813949177721375244048553896107396568798021839017940453020558826281518469447602858246366038716813263675589517651327608981118626246301120338550795629387478713299232980956822523903581430939056275726753886458454929715833408253152072453310133890969568502342086521783782005622410696394159226032370864093413320988335187332019017754974382262405064086861024578635549258798032541795623571433754933301612589524714781340414506905373876166122432639930563867526592882971126756413765880237917018269332509909709466373438450081041708025060648768288846167118543116550594286924355676247385900212509514543116741314146779827441667600776541329149466010519397366476097069923610010867474554259601029674817087540509687455784106593782950269402763386596757114743568596252799146631328248613038212479274654634783296402413471954039654098744976935017118858839573993280482229797836603465789645033257879509965184419770664549992403372818038466947999837608311931324320865260650291340111751181032203860232727304568764266717071354183421570946695157640531757171155207312776433971232123381552344575759924530842953900704958126450271649170622723223684373420171737750095554812763421583479046330708440572441966321664816542157547615705438719948148006037841298075607193790485483354772325103495092281092831911859626714587827073903406547196585921350551668040679508565072417075182066562891320147704803875385232408281768056565902027706627578615941841520224966386742502844046762822766703578068769988530091560812198233275909138555406569144193419081119178517725952712861727350698038844925816445977052723673326159479096597678397563596043044223508980440443386203854978087743177101018396792847589180822785171589727674896077466208546367305142378785617142409976996047613371192115359459410450314764862934915927706827486992628135093988013723501672564727542665591386743760995550758149105176103620800152555859200884376365558371519657780220160025033932644532946568481748393913805143885655270192722208955937350181722645877883091355639007532804084566275092314625138874283804423754604241687405394589935021687247858675079268478642974953755818907042738354450601250074287328062971352926220580652217436505337344128986382367536103421203638138097607363448041714507250639299457439291365501369597591098928675513540930176856808935153570487446466904043459452313158420151369402252864725172289114194910032331627228922215319320918587868167858854834203153733561028942851426328712940893571997048087706523014234699911955157366658389808574577668288903516293056837533934245733893716504918860270032949508969421724951314617973279871467297533986964733574084845737294766857987939608277801154483487742545277070551658410907911584723919199638309902145383495878298934579696852004137169017688857755473679329970528179089099707777702151321002627111402291673777125707171389634152742542195087385911497011422069174899617628852957659848021628534783832622444703477475707760050304911897736128720079349995833228864877822869501436008200047183881671009699423865202959840320943927648354225191322588072636237922941672975078942476469843118755373491050003522234190878267848659671748830797726228809767920839922909438159925239537076886248570507317237399433455595004311273040470043344758345841418567908055031317429464017584205662734804574043962923086154885400652652723519092351688408657698527471334884636981432228962741167602786360218704534588909519167538427166624021346935344497189413474465179987212396980146985319249797437025975169164086363842508551096189726750701992742271855477241587340182181105516248445099524679563986371031079838978740161545869271516161172009473513178353046543857538903026739240601137306325965878826662745514725902138325539217070995185802712615192878876366942906138076058265057287979419982899622342793173852189098564154125369580408315123011930824971812756044620572732114539178049066088033877411132947762793534235712675198398271834735944829170318565073827620347094636880133833679853536685488919256875455673065773011127379503999472462503013509129994311596172939172647204383811826274097385854919110570411122887598359697855737267959935389811366424524539299218027844729344196771283269446085050512474766765502763376523593352975834723355838273426723408430231370164786483171173654647423312681264145015332841697837649506384264746235003519357961727537839417435093695283801576143469229896475949685338486143847800094961457620769093955753643106360009006177474159350555380176691904088107360600884945326569370647596949022823291996523851244400291705425738267763579909962428440190434640473207999656130881886555633999154750015104905023866733196224367530993419201428752043129502955343477513846302875340964967250086423056658666165734992598034607081937560844419657293111279787419148991567856137012501865672933064809018854938472133002805219365081141603536155932433079085252915561710917491071344638232819175802361787157599157039242212182575519350839691188300694875754352282554698366511047086585362633009663197929676939085811525643614378387612271482946549351949800856027749597951131258831076685380423087500627529070635409407636606416760574239475763529893811250726085781822947765771026733821926232725845021057348824047111712840770401127212166923768643928884326162744867631475800084927093164864998768030488413147913751682603457232752653936071576109805591812781969289226353277856499253502310712476053203830004884514316877223345882023579815704778382688984341451627699622206923386220049382163529645036210914846222942831694273492398276590783489127692506778015148965574632379454336407269898062631844753134835185412627556896737869061951263963142810557989065771488023401047505485421473357071188660745108583122735380676554700302314744923744220651825336023426946191868624633285304714836682810719232260353550353353979402143382685856313374619685718604570694098220337067032684542321497224543975207613348145100077208313920158806062793649744206641461758194502005691367046573304173343271511171917564012497371906459995741436832621392335668254738808940503978514527006406997008818415263212940704705183028124026029349124194151738740960543216938710446424136695051462146400903805255774371919628759618973312060330346489111539105790693475996907572227174720059948436851564068702466946244434914808962602406894273669517401129540104606137502014046901475478096958434756474167154481442545175373993572817261134782975016370187894563030338078665745798984677321752285599575206680428158759226625387021126876167577728475792264273912243423306947484607261224756198887614488975326883999536715387291894067628531525312886209706008212440091063498763013850646995774945233808133667996707794257135916682541400841772982154895820546982002239358708190605733528286039075338210046753173059682439009547993734393104941368265874899126795155075669713407765838754511129745347702471597234713618408229575915583256560661481602813564118355554016905391382070320775668493656513874388720063413086363719164903582150712906050399929520233444024499763985696360734740500273586968305072852704175750405156623303520355801076647008082122037849073763169238670862593048221156920818546712652678375307506738338171623253704982206663689976929170835894611062278423728728885265356502639771447152311272113305087952997250008137961157940840071600062181459074871171944218757274798203990935472713862091820718292658146153605853729745758007598045979234226823540361411433037699359804093674763795464171366198189422537850260027594788060280634395041474233105718550088587396303031306200464574483412402154470620837734075986400726845264009752671460866398448936724948329641404712173544530990396017429518754571703525444962774032854069841043827051840933849838679926847205181483540961385582786490808747638789424477637950429052257852942216734569318745809849865511865325112768371156939531523408956070673370850266939311069035793276226405269029705892597740964297576947949874867569104606344443443211558330837455790406031918075725264301148475017918913954870766559793964895426874757953889493800657571530162096879736760768314474803429942436814353561817668574847930473412800774229199082524914466038272770849031865255312714673700866938914442964887693898120011631701448392369539683561671955055710318993510403490595146306407517332033640774524040264098126444564512982031928657694486925621258971865191533840025277142667618269709852455891597248525231765580862509960092184427180218149333500955944805348654351874243123952872964549163716623966479554233101333722329328920673432264635288230950389266787761066489446020398993005967493379857885811838812552023141611268357527249863339016555211278431736626169308519972509825489746891691193776635466991781715770698027532689205687967946478327206885050522737206729873508240058798836227001347168541918435331058362455989753438022793876581174478596880879277287738305139851025420037722198154086190102729186437562657123087644570094874458657059199049046639405102484583738695140548899078821698662183872201087996175772750807217515176736283257964319591728409841309219467692681261051443924395266412335419039093323836210924024570717353762752941609643949611066280756764653620019601001926894495721255333453062795572932806959451810062969560254396304996987312235818251980976730203693199751114096069452989651571986370990180829800635671596678351630417287876503590305183937586367950689853689067704657205905691482225258714263114629206067404913100822177055662600918736026744425734761162948628771605955157391779716247877991066849572113514459109780188494961874077906309116981199416706960333581375482275016590581920355376070191992552805254128071425033739868083080356798070349689392015352112251586116595821996799684056639212674304224838773533635426407176699907524607567177748484801431936551756321789561450273912820755866379068503194111952616209251604542608948961293100296347505059504406772097930723588371095871749301073182707913029483247986825500587198133367003638647465192887118317105873806677774248820147346811600583822086620484279559803797231791066101743379742633929569341190086686995412038801467542000022609896167306652646263986723564550182251264263429434923912193629599462836649237364100170233230709002331985486710044153392951004914242569969158865323966545451584863610301477011076988559049159314075344944936884593593315015234848061626340070685822807206717146383289080055167296719082598677972470777553935034150496030610094436175470644985004319044812081651551889796833026409303278782219130058759734055809890016585978975677340562590100960065242633989861285779949323012450727286698487312412510254996362195069819659015982131542956541972079783644882926051714872044712730500611238255970651700634152396014490413802431973436932423671854608385658346464448532164002250088176095872452143623113448329168694513764291476742584887073551416742758150654991736365527491480267925485054186276630209139266674216875428436540921592191291279266551803264507632350789607838327356918639690142710697258218199246561301515825869781148456653966697606696952568165251832645224747570129738691323599883839669772394468369703985454742180221783625092159434239656082869778756025002657399845312216895721621428535364914483643374061632190737735912584706067780302886370125532818885363031809870614010372779286247440006445922729572941697774074452914504727469518471059834608033131911207836091179131531483226260710995446636253713541427548406978967427581892780103883781072693093466574276970010807457659343591047313988306079358198726813372053130237254440940769670429300733912488654088832821821867981425303978722298097972293665109159332956794989512277871764058915003887929215983652477440030610898064919683923391520328231042759152122094498983261637917710851260410640558444260082173140515723714631904373065125506896249889883931091252086230089170888478824751809842692260383410031186495630734555041297965841648619000869808460683549557557920542986067376463008368737738615724024895325872913615212723488598128419000571416263779785460730740018284834481137958872125869263005409878631966284319435626174247534742113382755009839660061971469430310796982823734107708347003676490740178365772237970062692120963751437652774050176971023964874946364837819883926069680010954832604038666150555750897769072471271107596890938104850952462645035448707389853961193296910954177190607950172707075266456847272175255443991868234354841151883209227636836065303331415321163885607854734297312459358997756408702165484725800610496605062644669519805556014174672240589096153950234504903035893071777707508921640040014232014211128960034931298819002816878778649283064029754955921068103360091331741273909539077109230486119478384913473275707375004627464491266086577558378591504999587623552852800596633279249171258539612266095164432795403679455952915763377942096337134481796288817709562731573415597740268265127793281733392452264247293115025137174625402971289994222420988836197315690346674550565653150016087413233752319015793577521308783638772381758016002985295873614463810861878315143803547712807947105295363503155662990089039392268341465604969562033854415305083230064897066933033288592284904850267718575321879490496764057272555073312309232861079856629303792664043635748776752764708828066439204756750099668951158545467061486358170875550684920760920240853964387625613849537107975987166374584735283911070201246999565799106665976287096708758700406399161184339806049760391800063984743885586133961549101369277290588858111508616907698168517523474828927654655754554384383784521152858053329442487389361913766263570497648006893738633683466345307876548134609884467303983717793476823558135063790236889458511542791910600903482219355268389245568511710652435357322355085099013434335481403651372704037036351629933770683306587194363529777120597853744526675376028203229195450580508645448357504786249831963997226186506665389918671649288754627035029304968624076550640585572600022134593925332644431299654320762500301242306207550664601935672534748466005615466891102541423875282945519898386289536883637513191363823060712162377339534058567056469335124591864762959874950272232779359343373476292875049523866878663996922717687476907157488263477989897841861975785841119732866437531529966106464888313596801700417256698971287111456658006478439856242431717261439453704829478087768342550125825787884067160976457408643593491819279197903342654325648148866843344835183328407840345554244775179473063701818771911864239563987684501602406066007833808401528279283708731616475687594807863310170389389510543873781985159552929960438114653617454180413023744906747375121900624903785539492535216529350091296906061272492697666154319734748290437075869087814650371242369447993184057073813375761319397052572656528459434671091511795878132616729675489965521125833587094136590451640205138511727794293520170100160173194711354780601989425185434472293520077191698595032929165722418606972013907544046487080833924986634511767402757761480381589760427334442923145312727967296639145242890105125090188279228511170178268890361992807514463903613100475431108348016861500427166772143500932820183360874362053821987987299472019869444661655878825838764979296524587714828651405664320873420376567142568530684436294969444748286105169851198372189512188685206071553961326039697166657827615884309410063759787255526119076099898160717513609809565154070656687650591814733871237950565537603100355283543237745463930708876134482811658532226817202052745922968443850824468890057019704538642767535564293418458847122042985118573438452094780678152545555613306334193567732764835207763212790923146987073713150006208502662235032969359535815758750845565187036478202356315585181681084977466015130332926310339732019328451160489465492131263565768809035895263332502329467459742410578384961725107666963895959440885084302572664353183225681818070342704775890223201675005584629820298147405987683403820565092861094317818461701306595627754016958319824803137253317705014648720602782215863953035088882637097937814571596824925368208972982082027063283685201142830067356186727504847475426559507632371599681229966287883946183825992089427497778945602330012474341788071107737374100975327809378590683708867068847140702505848630973154181611484944227298807546526995093602353696807104539873973331775531799473323512045013135523563087681936808632382403357938076491684212789929505153740776858114316086281971745528188918493845795364424605068045977739580528432846193353173417684063646524158027264263289174097652028680834050104508856210151989990636494059625115780245249886175427874943854551341331903465740665197173337287712393295242906978367111376156359047853779925757505059731802880698574511932147159160071547383329079539495093252071667542329459120590893832238150586205063151375968363996065233581268417419163964017870075606634468301213942677110779508259779804540072607395887711480750921794446834546817325228686955631502207622007733971225081590181741804282054904489658031907975821104706193609610397600992921504717251123511473098530194971433466489098532506118714811343651783682133685956542817459261639903272255997125237642333325213585717686792582305398597362551960280268628696983448569191032113853001248026589362392098420080035364529860285349944913372858196825380028571534909394220813138579875819103167414524788648112684829883343207321856647159467952510693829207292356314165242933823389115481773690601831987089545161264592195129161213229080378503929073279915970397448982105144835925088955698254437499603970333485198701970749721013085062275814387072883221868063674720131614122146309678260498054236280993154554830406077187420798180261205801978632277498046938077421365321843401762274404230196385123375669896988452195611710717768987383495059919089653657847137778625058888460772418952183878827571424185352843476603412267067735838352428503966874077341102360578019792764192115259581138726602646520757310007840907684738496703500373798258910413866776271330898867854727584358672246764704393451462350044627654979545240566115050721325580784298330124444906315116078261201066939465767094441548578136073815475367264673331875660061998052346610261656700765847665030267071430535924300101121523959064252410395747652980936760580655485711223777229080056852228599474067268361818314191278375480999692734188554440270112601905986621935231658996906943183548541501870334906285029825705161147530343462169295286682208833465758307436392576827762937748495800678068687176471268655237896040849595468260448907601244961111800821029452047351578243839714434931819407161414408131113748979720802828041191613190871871527986351324510613573862581053312945691267644042749320919174803979871630475466036180748803665469997492868703778394722825813519137875612563754891849400505090481078759426449503607614021349105968821484398584300957384624534364272866576312209942443135453479435408395088701893033913579632728100678806311361087026376732866434733597394261672234992898026241837058599959740609753184695691635362266556298201989051955357086980676346371149393057085557701674773241708212592203722002714779924290394756088244646571224932587224646107540499311886764686111164065262103011002926329109747033936455362884224046239463908132070971839779776701422477292986040327574611890537073773032311708803219601255929892602614512224149538358032211640275017235266369412446257272159964546946599047464671237907534389912571732472157739268456961101465053812438326342984191677592360357187746327454386044603113124383548333427143954929831774995942330771928523300169645599110908550534112124160000731357246428867242298124886080249359802572007790857405125336534398964996739005255493669324031412005656819044887323026546571123103546500664852363437241619233515452070395058273039718757015730057879874409357661457088260085258137235371259589216374995591222653265125930170644125328403680562009573977320904674178136137882969181036157161836018157051206254617638680787359390001155182192544294761497471561271572781813964616784766148469030979878472313840643021988302454000834922941834670696957707588536473478928662439797705558824185048331329933202884514667795674916225908014270641085483442604781719704378061577573585137130640139748606366761704809833684065683522363250293833676504476397576363212743952608761005176441231984179988174754384836829800140402717094619684822891368479013222595208158133350646721258656333701984443090928070880002497100860985757189647200788377781238444291901327138892978663700838546214339619368203627349120099782560788061280944799466630033741124792644707074482224971765351636147893229219045739479082286477353893324152099072316525593235183189933904343654564908982177044896634752788588894374961465349843830206850470170650038927469560895493213285102631630072181597640102858381191375181469959007259056729706316171415753713267709130188146970211211543406551788091336886685609702705830716076472325058700036346476384518034689752393590647912123106134089974379226569014270888418937385180695335926315603250753066981131730142555937208387657507749315074830047668834773666490383151766136761980055995935816148154694897744135714028674994841262808689497126016781183697915337239490368133534695917490195952191026003354890791147244534286342811616425900436303171159653439918901613881600282596186072154504296683459459684720229105812928358225074942449422712705324074063079398752023127607069170631755676746568176811312463325120458689062875820311324187885717176745363136985074285348391565753632668353847650518438345182384104374094847783572605284308548270948236696365442848658133291423018663658305473964572551340938150899243387409578999104309750183344765279073693740257047594903760364500473567958361166912191896425815582693417245337263078520341622853030392374427955397082456943328026316334828612921233530871971993940651586104725549971188883775107121254408555477190119474483782044113377417343874114106921367686267948679208476356273949139751735612782172259156320244809385734947772489141698552297997555414084632564313224019411260765213482797648446288545694606271306737377503389786203712997739725107104902508011622483299222056955612994349439745866432979592274359446654136503012544794943846799052965973264677285638625050460358070748698792153816857594116791241398404314969536314677009183727939441727660221992466105419632707407597239290633455926193785164167240830689786375212670611021559532826395924979471547242147749062382072679111553628345925613394345492712319530946125693028412788575949708907294126747057008538037763521708579841330241151577683736144558391739845376499265371802851953661766865739646828514021738689294975400680480066737507217047051997167014285064653563561480110357064004475740262933337635834528572439489474580852074368815233323911759965747498970875719862146731236977957833177747080139455072166229809470171126514341068845547950525863633522084221943765269574624491358779261389214217657373456240094030403851206093378756152945681760309113501875626042235855730224097776373133183579725242111834890920390666755035676051960581732991290288925529142665925821141863392094253972858785711930075139245376053730933131923399272322231182636581252834638523524244919297487813804808501606803358819477177397658714311703052967330693994754541155716402990367798787087928525130521702834670183668910816533889936453527274583687935158515375470070287398370729340171767713051247609893466051211768266102472778689055681915135275385964164634694081607516085827630169091880187539398005802196556449447425274896827345776278408555672865942883722834379452835895146544838498697544186616166032761877166284033631931488812227323640411807423003933019370416408416220403982385959764378919796960904704648008527439790994845317782838534696635784753018814121739010868292556601556869717662727989255328116739704938887147548486310182909197628479358644772960929495939958069553951027416017196461186060534657614688454880647129088638920064211904900647151897220836468353482582272305959710562832974631237239806370616342449163427518773112381087466734074626052659410552833661251893668418275512722788566047817323931811360096252824339659216011726491439970633329921809296006592152903336733098445896425314519409663013837721605871809420088207535146943216299956938323654894359701272516612492801027031612145965983279182102319305200525892384822862105119003436620285128419000550602331156632341716865028151158173826146654982259377161689996919633115846215561354640726034123708131162362414809286667560881636251433035696220946300633443961705387008874976649174882902156016550809975243500762651503731719835307931729434315382806241533392263351559284645353082938345032180855605220280221729633247575643205649857854762116152404507056103157518344436906374514354235756951086811771215408567588181276493868035298197307243915552600284746612100831058502078083597068920701185909912023598786162091219890193522833305887523508483623807777820008292597795956942236397261795185779721782778914204085089167094524322464022120505796583833251483960791882214153255279434387947078734313560515489760008842054087761709872604242200171850030129961122525053288334810794367649425511075113724046818821338952984822837851921481074278416949831963838754128597562211938897886880979765202726911776984696432205295046292526037172880795557588678056360929667903706483227844625232733886628817445484280137417093473277871983558233258844941123245237260045999754313200126586684188694244433224281307479075034041588583056131994309266246998874201308836935309733750779972664629477501880324355728381416140827757637102528924684227376406427293918852183451546414319617724913589474413827578223198966649988443549962544155779888841284694600750603021827559672071318119834818214735435417920111747501144987280667472830101821982118119338666947617699194358946415908105384243600320432443758478149741973862523773724356419237028622388673372975889678708970719260575029450574166780796628856273876388079600406093621688266126328153624188304934034666438711595925378892718933941548518822617739853117277934098447417369490342280347860482316337267441972923856203532492199386595179365063573744788284842271900550292205280119114235168969230111564759075648114450171186254313544910781025209207950436018765538546070303675659218641835171084380107395262654393154302667021982196475375140388231910641541940455595516805304835356046932903186968799337751633714030801307871108946760001400912689275780476347168891549906342353005457706845651698658908019987493544390466211288932080431961890033167957040795250985245543136001964213998815946436946822677668268585471465779787043910713066123196248195335367701480258668376031420284324171978328355076757950602917287575183829981728164710094713465371442648836899808049595746213377990441418974338651805795067299919254528970607874731653863649090962669998353400634429880290475912170214544378710595235855687920474134880815249222881989067020235373139144271558123933499109696517641579277642867208311698555152614189140350999447659227285038464416682903367882697730389521251123502328405849589105408377418510199523930061489110214713909304796157636269059320086140380029594693162721017432073808033755684365001570269114260352738540550043860702739470785459251533249304123265525725624035424611451054338669725259691856546368176562714765015287733346371749348777119608830258872304468409659831661199118297533916125221523819962506107997263272517849275360755249832432124074372204241450765590656494189043119744842404899539151230507044766393651671372521280461840911856319474441822257027349585243925999483471338170277057738324873224036290833889078075062718207244690543407463277027518213230623399865115946079406622271089096275139173447524483859429827023060259929215794750503242866828732654023357580796132382127751501467091270868074090211152340165597303224730542250435510261593657220415709609286101766428920343227604248179869723535153998713060101234776857115598186414550554383126831395836804157750804423798114383635413504693037816924510571819586554057787715573581544611002830014775161896562466603041960465930438828397843590080376061516534572012595782081496262308820354398399169464472820090515105227892097687747666279728549173448603138500654065441858404790099590832674230159001674296127195872489682495927268863747747732282973727388085764947237793552675905037029487027796448330431787645633771311530109847112633807518931359499054795957646967428045971267694132486492400722334679413842819702794543465243587316064420309653802126007915788337798441331597762833123654175285913028962611975562354864557099706319917680790163773786039333739923501390514025417118770562958609468344725012005782049234386503690205971927345813612750115272846603972852197435491164245378916411779714369321345029572150020017898764007844839864024902099826280515394886968099501556326419864582962339887395338097045860407041451511612345745668124053143944946476034438092326022298193375619005007888651374536759434103765767810891762950514503693072910464653296141104751658371121084455436098932115070179231073051107200489959089530907182380558080551866335255737564330927784557381902696610180982015282214268087494935546932010693421559717529729435975731494739101618432593912245240780761593042549752734331345629486432942101674601056597557924917890877001225509576699589959071637883783329739426305412243723086273002979892036917755746971138496935084528103892621179147591128534937878577854301923004724703241566660861503441113241439326820684547877615137619111603753457441479281704036171323591698411039335070953870493131060590462176623040409599859365168641457278526076736823537921273841245986352199520802647481420530158173853465614023241573397587506204916596617653122707610973870294313982784153831096419529791356538183026848674387527051984299060104272371644754534263963430451669082194405724245826066000445967466760867683299289302854193702955213137521611730968549949717730172540172549180189103189716730798458255823611637399818221919267628756509671092816572881395573975489297370043937238871818855891720034520064142064198385715466930392537394683572187553139058638937121443953759919753182355213943014912459110763870272676379245966036152163450059030238303219936068724615294879177549963886824737238212623407085891438117624662289401532787072316671044664550866962721857548153354510924161763460213088463270775426388152146544934506104201814802863385588095600148206747773429196502270100579042013608670659909010052808584777649186962422907440278791196025700875944094943469801241362878311172207047582193821176659010977270997287580656937977492156067729231394187474392639586826658299969449587381908374708445376266623843618220463282309575192945385147421694018335840842813657581988936913882330363021218345895134373229878033753858163277779046239073729339606245530192357236613003542299494992294249976676408630185018321113687350260877185795893329820932204182385353405155683116188299195899233953444748667657942740893926210011208095656871668275985651584891060606537915256327641426768851431253649909605561841310800028086948384813494331058138737996329131529137029860114511106729249775443627880077806556909468559428712365833022972996048650304098347882974889870413267047368564171502375895514761455584746571732639598131456128744874442978627356411448646171794339960959929006550725414295677864600134314006573271278602028750762325094817366071998549194583242344288133532128108747543299394918908404196784583626827222949243198649738046436679327872057683175983671446431255490914910352873351430918528405205631115923057147292602798362680764065620229588354012990238338305528665065870571802340847783661953213787862960746140102152209673570633542963255320548694839272733728664251228833773470800163078641609493677269299899095108728350613549629694737841206604748959951442116549587532565772620670530658015731870374412842504921092232055747423941109706250748873174522443313852998566205886640604252949384520395709671486066524315555842206447302959524923265386668797291060064327728162541818043891861216741772859404854412596514260868396627977733629362498677215123555146077637264691512723901699327628403298647032845882094760113094906258256860956866422955148732406794244004383086504791943648204215057363308771557205859443999606024905219477850876644152301992603308833820007180836321144724300359880285115408009352645426061153148844535811680701313203930929482410311606606186628168374399388872517066037999858746686641003973442019620160847824681539543217490556227095499372180334293294872822688292931192014964995970867056088607211558232616544162883178584570680429650202096771663093761386309539049426869034934885146353705573052854141310635991486614312363846480319360576576226094906492981446900693746424957135041600837843799438131778309643198210507862687588212508688708482865603781479599859772134494076406456371695932099264419327199744815194801946615314075887046014141499931754121586773600585699644723074294791251535118156222063800756789296278912704672001896712641156712491014159857079043369378758954144855069069277516585990362064528761435134087290410532497330356654269635447938665176729859376475491111207574688635137209536927698218624917853597928541579784287637429467517121150989700119755685325463965040020787387680747188202103199966048779676808857337525111470716693958652358628197835197539565367540743096356967360112279307578816488123300283499997107550863103194068166201225986786996833846767607562750877653695803043394649158145782449739463262249033275500378316321469979973518061861688947547953942123291704530984317890525045518425091276736890254143418012756680425502294195120643352195681741231358334228639030967161323922071896619887359820241209291089791656748765327086537219682755250913935035288492390675920228413257836589166008000605781944687413538145393990902513462370734355617449886270810548618820331410262879741217332411789870359008259885464708236096851185814502475555149301027511106513840576090802902930087556000211789809347968798510789425075671050911704895304260503090323455674833028181058746058416299382440994981501349791314566521352259179245867317412872220030236219651161449044072229047862812465676624793272503487193534259755857341606148530000037083529670202398473973079636132775247371670986496049414329365944457297338491919592825919037248285313264892181811698270272293041288036204317991194399508188984794917822003953496258235819340898946870606854154944172316025853344257359867580915072400693671925345183593600662861316759058040738717663245029581298450777673106739383941388312819573995698478664912352555496529510797831622490773221993679135228384852988811503486652078939943867712394035598609400615043116343596301497306738189812062483731589003672334039136394332521450138844071707843914656914177049740290764168836256745461116565419951910941101826246160928790593189707022669387898894060452160387460398906911683269811351727203646311957582802683340917034083409151555631537906379350367321082381838941242317870943326721854988468262033731729578929522571046528822861053080776177034265828350284138630017545396902887944356623839563345507529414658681209750110940380505153933360705624999438952134207258810183922132085044563446717611995387238744147331434658068471274579258886218264857592648145760173103436188430376466761872386069513990017064110211863852900484640213578642644420924934741140636692622482771090111341174900072759292262506062477740118112753211540941229322184043589248072218418718663829627968250421812134607621779992518921737487488831479884397827322830612088000380107044479384961959081505188209853837163923203759265791124282781608128492806510214446773319929175917368373014811676364917408959789335767732182178645841832571877821045376310839454515156972341130852589984065726412135268581992251808008270380691548851228857230143154056590398094895278076494663425484815870641321590477082704297907081568708957009956747498405783411129250762808736079564801350099447489521809926334210823763245615096176462415845575269679089497265002627333529825086600770862290973556752900661624141960596747142978473205387877658414844183141760483637724225822969627875660990374126383814780172328148978860070961325871531676169442393105567306569063990007848770519436907103315277113245146802090595408220628529712782612931704485461321261350758298284470355580400179190583634722894585562753940931933157433384758440082935898552501850187876769503053484488905415576944497542447094402094558083099390253580576864106586791113122089919784360142753297660031946196279058709263928094963129167123268236051597997552544132147963231414605891891490089740746785636078012790337916765513642670976987558307027364334012935295999007398393734255611848362054164797068683948471725583106669976154909346333408717711504927830435599803239157876091159781973464450490426313876925634363435610237814779036244294762442372087626335839075271379444680015128168004364361861369030200759517499097610532463109284085440461896209281767937766311918005642839511017441250675355301052869090010057879240387177041825870410786430339544577682455072592294104357218012476840057878643806862855194022671834443381997828646169479806414600463314756808303160282144287094479433842049736853895754935885227408445130211676265609954299920195799960732600315481630696444606715934200204101800255230197870791286981048730955704040096976207263869601475185052692127330631724822907345655279795821726798936763559204115111234683016687521003398710345551651685475048330567494637837518407031579264965564636658067127844040242586092989285584955125934937807484704945567193416372796955574684531240814077853600536729306049155469714694809083624408147981055553777201362288336280190395402541247754694133683323237827276442811602166599936829664822604626814770162018500021778271351273829039798029281191893902168436650996115368262177043728238481166798125346259303580427422440656748323466731755137496162938172923749871018039064667061163489509488549010151682615331368935570119561278243242217462998786343339981452862806518655693860813544372975784281094004978876948228409298106070825146340403171941088451411266420492565318657347013670775034842232614058427341725407854411028366207311790762945539045952646943284313448674794019075837286366667557865848863646260491876934843040261907917250093373063701903810927919771806308916236993237878551648033286915849482728035137609004789062083952285250853653741293460516767029073221543727911005911895693599349702566399717362483810634081376245886149824987036021631169084013469653537888501609380068472756176766313640490328128646456211528294479678072757019798411864781260418925334601822629138797285907326828025618684500398611501132751469058739827744264997413283847170289610970960100231094042296847233023217859591344891056137339220138472962972096401828448668101538050732149960424892050365332475750447987544856481773648610544625755016132873849689729679253526648073859764535389232187382451291473606025518514770616327985287788136605200785145177655579495802706903610153396315015246022353031313590048281870329211353600500942964568758861067554143116474536049206657438854447763904502374199482797048996233934579861656645562240154416139553648182376459987076498010052701600460449542960233948590368347290716487809056642317610261071965534474156609975243419979724809289710788179947722525214530749389376927607838500575138827441224142700513051790315079014833430956453907732457892871218501308519923470097795331938945296466786268665831886531503227338130541251698733351357874984513221263680036842054436001543870101826169523283697187726010009992785313813070125709563508791560049962200967140210768052487063315092217183959814465512263368053111714117323214906132811070012113143194051144504910273531562005789001416891631238831660779965598405377492108535406497334545530450634335743602675696012637129338850442966805207659792424839035406741356994559427770200649736350365259456623728817949066696447891997545144087863003937023563915667337174169158652828077602187760223685432966963521368010867794158463606148951579792076311098402689932268800831423503581642969249448615665990964109518565113551360993995135229472661316441415332675666973937975698814406190387716866613531146318883008699717785854286920301209184746683574676943664715590869997555904783330243206149534315843890014316504495354610807867795199148324651146553889304734930451705408852002877527206118957245343033349512565705467378253516633942010197318399266366999094452163720773029959895852722096756303844865706712062805389572853963367440721958185158397456336296504798637213586704997693134735426644990270776737484931600325124565345581231005920918070311986779580076080947751496953173307914969806598818163337228899870363960041159736293521425974691512563184476354433988137088028875216298293009392053793782963164922931083466042402297262451439730222096980968153871181730402921583794838974192159095407486592364898200035088819257413501993656418620711461917470262556282912476395248934221567032867968236088876825768667692548194361083549802346799938578530371081532455399685728872155103203194777884931938391158445238566614854377963771319603384805152229803526638161352183708965775168125184598222935632299284264608392111742303157635967873619538529722272191764131553843478673151561214495213203665487366158162085376296367495416434194306496490477367112281011069159799478552752577943298511455587474553059580582501030156107272493620705328018534350257898695165158082594611760006712811341381299229497006400632176972248579707513038339413129545783489488146686064987720474807605780821166201832934092329508925383087455109683207085530746822463279679552784041640220223492451721757673054362725663471363141125392865317094647469716461756550157325843041492784758823803356648199750910585810707428226800650387523293440698284146793899623294380482968677959810879151286060105948033691343652426273904379619204417658828302809286761217050816620191264642723046152682765176055927095949388331051842447359765937013508430197063097118634237451357653462512618084754562327719602437032980419508892908935094161143052867092708376068086855125351489539244955656808835609045134752524786463093615388880989047489785077315946940258932527524379024850087353945475137749243171587484287790286310368112132710597569106836932418828682760583361593149672805469048215882431570008645679904801645888365788325148364457686972506783334329520805511282110559197700459561522590569023638941268002189723699210140192401658685952242187979154535937349760402077003976237754988203274485217087542262163835368964789959760325169184767532476423955757228596223371511960300219375066240968994781266313920981391101607656856180939065964530956547699051041332570298201373815221542093627965424711891670401016403560888523452010581908656305262985727827387623396789509033405581614829684443392542197774908491110546696659188571028347343037071628877555928677796985525234201626088558182031561012522118071906336196674077762493790777257574769255610716308356951338523141805107003716351191580597809341795890421787105419477669588546755031543312868061122229801661439923468655293519843937910013178892275503170114808304303473529935681109316874114057109264485828635769270621597932868209869383460514839869362756666472848512711935716379453334656057053562313378341982324594942332090954699109022035813756635950109738598390944931691822981757137130212418203604288736780652634220163488664726455971145384343516938016734897393690105696720503780113734714927088003936470524368838659841498809457412012357718566717338177150203608659889626076501029534184593981756632628650356049998014037325572236722038703398552631548345150775723522650537702481195864618984570998798450062658225024874566605174777402201081555213538185957303048329857409378582025315729662545620332246379327071627583005004568732013369225256293946002974570806940373466079221949094073555799093670825704545529197999364095417529408518758428176286546419530491611708509185802665872793893543595931121483196852097713725263463069266919471968273390088906125829388011399546822088139614043591874037396160014320857628803685411967408629262961621518623788501973410111974128627767139488497969251716255014209429220565161492554403916026727716961685768673956520426904119435360647801993365730308002488484185290589932444348570226346827411652830477749443969109018641443668683876364966933933581782656397550877045297493321216748108818553311151777337688013201931057372328683828584379124315783010826099996823306112941257617705876732277966581640310130092668031644191044833730386295834292075452556653593252082928234336117918128235422384972048143335671500960258320476476605341796220362638864496085611181756997747483619150010846675689449874563240454825866979865523431642829607421777274289096841510158474245068710206792132401069017876268319352012467194962672337141260276672742546909508905710817979259555572785957685907487024513514583662320992143963582391215474336963873600378988491915511278915157369331698602872136865921724770650302042931805290284509270014110141577086106824202337466710862838633517383012512043288452237581834405092435751149867336087471219976002751025367701529305435944907329447616204048446145973157194841865020399332906064448740601681344464433800011316302176774398222398207873860496706821792731662011402946699054305721554262432088163731533156364825090100968052926154558689065918779799550322152081051263396929249952706036163514887225494110831854845516477522138688805332966522123323520241754620655879752133675750154235936429335683179163946986181285384658354732040821296908272510130882354296408562121675537002870412353252279468740900606124183615391188636626673929116192433914615798791940645246789746994622126475469814907686631595450395341708057208486291554087597823552690684652916358847994586445184036647481117067152404321848595593815990960544159716307797625009731814134750433144738558170090071861147026745615531143455514074347546073714765485586710497055937385257495262641072975351698405618129955219712371582498344937399771347372584545278463612070959670465534561128956711895492281832838036456744282532122661301785197311396374780231909618886372862071745776033813399735327969474280736647349030838527709927220918121095382625565466179132328562999540201412473409378548741204467465634481083876227428108617381358053138221019558400984141029707952256752514227551105319942052840303432769937643119934417279330065691975938482794509195411835468704236209932405883856215498355869548296282697536569407559932187515488532326564780387350040074033426966413320272007366126242224702388134655031407195859550148248948401698800089050529715549805491163306036783034761670334299480394084583103832881452571755101466783484936884634253537224149985067744548492074217371453082298556202359132625544878843463753654138683224032470114976735221765681706649927214367780353100195107879804378299682631705875597486261449414912813923404343064954152011889883250316342845447884456081311617020901056528900849641542675062513060741361051249189861370978215141995797235405270385256082628348595065238913624201091283654397982417547443115083650608709199769675190252289883195247689628473129234950584307313048767835163380297576987274876924515249700830642535193176112771226808451296504083333407137973116989421152240671361331349999974028315072256325744590695323947464272677644312786142524918360446513723547228648620140942006926002455472659215386398112189690003781325943776800261398890834932517827664664235570353713207845313123549573395581796395806105271728431369676348828794190599656450018229317800113057924900258764260920608687870998053914673068964825653511549243421411219848608068518088497760037517590971690370247145356192892376009222391459473420917443079934202508831361734828495730573146200889891362433751102300005047503287193930451855572352550175084704335987725733953695670290202278987325630870994236239529135846109529519304100618442346308875667546477026224862499473328750299545999361423502764811535794692959970363761568125189530600909098861610358897105800503418020013974460320596129850730294719676368048725274916572156696068297788191392524558056855214367350333645767667528563460152829065092988984509596662098713404299126855158424937864775371983158938739146822967246001673054399288539796728429184794495855147145793179609871623959503088662204448298516954287291043619266694554334082091372532455539855251616005895105982261992557722663005584193526611479901660732752021332476899062638778142630901276412908594788499806133648557223222025597081764322891222742835733834817144110264075945786251564465867692099600242689099483929873874684005955569901670651474938333958062449853713018104201526859887266187387591662196746486596640863517200741056579318559735071971914726514477828153557230646547620857053785290322775847035142584120824896342747984507936028501128621869094825684912575875041943775053885540320160033408204930720231664340450762716735173166240980098117424029077161425619704840286037912884851419734282439225218399412625340240660070785378348276900186823423906323762580446682763046235692816484261842251315066022740315678596786225070334039917353804133923839993820540522800981807527675664397037730727111017298272717263998110643887480055267627806132505269173684897154848629118300605404104710271999871837988596032941238275500312851142747190190731373931002911098002936356681655037362368144435771503399200317323627391330301094582632891317229196719615215266689462621952827601083223473562168940987037148789715541061632479491516437346969479920268750829357555492979622721571610418305138080816673373932950695755380568681577056322362839308496095591982647492366216369392257221900220634203256813266109138483661984502005298202166141324293560676124212315844432760662796226966882307075883026387770820388326236365029888685714475661115828456528169846993637965991548759306492745047875686805478194719039781627334049710762835672627555108348454068296112284844180448564873511478539494049017593006966837568187327231328259603241660185824507018210392969237311318471040405422501313835287232134851636646666522068335534608541874150982666850685923425258103429044399986260663330951117955247541398431583530287300837695993016942354827775816386097364826142060599020937969051012653443234405964728831350896004896113619944947875821955124377165293399421963170986997556431676827251813543691953968218522850076173615568384331964718454186782131312690371894649873902877232733193214167350997364913645171908277036179320843700880625391520612851794385502477788542830463491941548915830446448799268125050555929123283113895750749597932073749032734861080732089002732242752085265225723860511611861324828419358861577431629550072533920790452788907278927685101552789199687547902977793429495330426596840331744641820407710239361197573858265577368026771522097379886010177676556496783914998098831285054976409125851949913001664767728332359219000706384255844716279399890594473984226552357287234758669809862351206097255564396455859479197901626471333881296599051684111728299042512819622858868608042367102365228477838244970746534488781426564059761636111140781532186104498015580497899476421560874690551671652172355002401104668650918058947198120950859966575862417633158192101384525804397846491998097762926805887098836212327000920885116862647446361034867264519739380295132633249157661406765642308833488364517430873646908007716176686032600974484492068490217393532136245327440100966268850163546331463074095834867876702217168184479017490337124409927733259143205056442042435125007169163347145775798890362147261578783680230792886718494166400425092012974052640503344498888790526270690970721580778912837067926390631764512631019862904835912021441042815844313634931417673548040493371584938893686946508994132716844694809842437184509888502848606346025535377068356978265854205802038341432898318874130425501712717291839843551897442250424222033486713015849651571791248617709842743120932871550544177474823689535338321865576940190916192682479402860986084715296775424964599985830773112675159028331268288297048216619536632239142673452167517802171795411184510747873539690939543831669988723556019892031989683419533400804138209464047983711054632400006068125085556001223511657691008561433033747507959771206796541711004704195215519228665189777279617821260152914076104908388899735805335918205731816929467570022167827628650169876455533780688015288840606079154568068620218262904575654483750841152931778775601664483319492324018615141320810432726911882213525459957528706019683585505725020743198995590964985438121897712055916686735932517880707955970768720529183850822264717364298100707365744131779982644875624705863226607286888830836261228443152998845250643992481563226017798526980064154110931620722776808666671673768027137205369779666066098638850723876322937457861871607377452261588805776693400415941822601137554007141811582670139494180800854079633279377632924997621762673892510855389886286063828819238085549927816644296229038492605772728857491308097920463357542851038276315931105935588709498834732871343924160797647813360375812631884991508382672107677935642693720583662082139426103068504994148823884045547311130907436268515338843582668834476738225385576764697577426179055324531483468041608487410748090660596673846152494772016710140557764144876171110895981851630378074579454506393640222403360675727809845599430530522074270240006525133100857658416104326674206182558120010244970890789288373287680572896053042311278509740733229279195341429637188944508000635186190298842679102254050410967580949602774759646853113938893015256205944101862204335865607570904682532822347884448943697296688679426677746101802519727568498329523385159447411858856526325372685674489730909198801319677747604930394400516069911409679816797651587130511251926552075402675383356508062057973259822122711099963586211252968033325740661531944735085631598603940527687446842013698226885502001299709599703204205579040249822670201385009465811962127669715317793155533245731291562453313785462311150637374259318709160662859424166965875303174009739529454833479978464023394515641423638146710287700162086762836959599362872408273557666365491707079742487844204740458913536306074573160978075064633088034713839363322423705417730959112576623266152648373228404748791941116800123694804856392734498695540910575001921594829971269691533446476754027433407012584067261700296908821384334834973826888646957014127061358000803650310566651002643267412212504657547694560073612539708882907713893138599238693064518200321836040486921787352266280709273493215641545940274659539544732925367873744628872207526904287209870347880895448123618996324688180496051867367378043414796484035429280470478482895869510697838525419726447759913180955961485233659287680273485413235247986696397296887216377210424220624784393966833752734274304136822252945596196031797031195851924953042469399710370824771108614657177888476207558151170720185174518158071638350856589213408885870281846158644489680660283118163885457804588011983493451623983045987119774378357238282438253428779713057990820466474863367538641590840605050320533416337964684970449495521575041862270185348230361450713301794717913846739229888274188408328739912359981077919566881129421654723573467534673007116362680404094964648645256024493307381451020158718247233372029988733294436050741897833932779633474123403100794262405493408699192814297581175480598673888596485617002271359707137439878315259806496898384360446969910834542025113700846779200409068303040353547447937078897153302894105706167243488046327845245226334303575016662174148805381541568437841739324975103673406865078437720830353861747512968241973266025134382740315739956836993932995277079313843955231089581884289821617159246764643597219302963085085825472426892422045483554196784280686930885573322384220465688613146432167327446669717893799967320909892497837986911764108798289617936625957350048336567301694085380580390301118560318808871514315419364953259994808371244615414489254782651154871696472728989357103973937038200185691619762591311975813586619993547438353498561082949800540197217067166127343664139395546489702037123142159562335054012738350308568799839028641989317590556046329969176223664175044267170163506529631653245958391896172533853691679699100487701414576697861506951602734932142860374678621083816622866377050329377783189183149885309414607674776762866542686961414045675774850775058507920645313123452881042665438871328272825205504660027439241623038430501648596411315379128380035754110517541630116813288307928415855753759544968820451422168990716462841606196745542539466406935258769059260231205359952255017667679366343568768826870042267722856466296620572689054389452793251278780286640753104086536508384116633186879552259251807519262160036514158557509306681745143172776210882905019056675071975272876834555247069871062049255940474567727273430504682470617681748998277132536321881579523452436535303249301220833962583205594488002178784932025900784245741455692685589673738940121805703634745884316172313947825510606028467610527300924308152846408593212400462306276182803822990997268198389014017483630926737477198476985156911803394456338461576727604132127269370752139404603636134474368973128813375487176921963733528526160650672342921424017367158093373508291408523677536833445578910255102887888928025928906974494312243806421228737345948321629239362445988408613984911107315570413278618254180864654231531025683405079313072667961141972936808268778215200060880960689630938838703008234030075300694721035758321161366105154860046026147133901206437608509820050449097076503138849930470904895247518624926770332370778121674005295150762370556608640787211321323759591839200107071960160675976875250474623353883361953953088334688874398127163764718996215365111446126306491984140619702383618425693711377596512428081100570020559915657976146259720663337541483409646967661636593214949458842774040389802707519567042770721492468577277203797466401396527829038283320379524419838341420721677021440903696941520876012080608167732525360001365185994946326966606128085828710303190203501023059159712518995452834030559034297761769857068812844600676635072989934867556377768949577465066968585070034545194331875005945161415609323878514708650509320726439231348209163837069871094919628067801076134450042850665336876818178191067829185210170105860954361026750743693445574744854295641701502680761320829915956062083392658468414898350373820306078613836446657649844196918662422580520962216106730305726595529431185498993195763433997184252814049698443557434843708203050880346477541547172318402035754628009864351555439253021407716779716812698805389374642332783502994384185112383336837107452080739790007005542757115308531210210176848023098860055125521300367100633743127444219539999014531014056389232748682187594611279088064973094017966619067952386580244761311731995676912837473786434543031967910077061481746279043606489009148438840126568978668471162963252354407975157867889136382287975068448667850625135324728413520428769311989110274556600862696625643251977876219768481012481977675150260382844165960203395987377715032188336660111299322709762718890311543787465146605119739353895696874965403694838619790613611462987859108908065045461800696740576304158838492120618440803209092033722074823267464808857941097221487688512605864859253282791099475450845499029046871102212828070803273436590704798182515117425871105096644595759375283359608471361761204960172237149336852731941643306137992595775639672416513707855362027600648788259288388343478147814401419706773070068635950794870049390706231103833535812709175984678103520621969324652587921353165215879253131406846846439319838666742791580708492511339700016056456758537166348622236753846346699295237071985518449564057195692321708104153000671938268997354513691020210269481174753959282920751006029842846069449286167728929576919789953070934774030044719036984692292943888346049994111551454629726475505736527548535733633360003609616097422960022407111129712574021764854087561692902327323401528201695186771841613610487171139893836683696525719741442330018550317832879200795715276620772888016866015313064322951300705364636429604259674071143939529443055793570987250932723551826883385476230423992906224563798549933856048709310965983728725595308143221410322119734252055840639607928625588257650207124911488681035116128130419920538493869484802465755013077364069304217822858295774278054285015325616233538221362906544860244873407190463015549207875117722189476899766891961636596840784988567011390722488860418181372363739526484163488022129304399927332117817782169990297122662144730616057169606412512254292385361892357507738730584613995337380505954445406795951209266991087734962769648545501056913875239267890684704262667006384156062472851190028478456378080369421390705650904262781508567537197934865839619821112044171656537985308771109332554088491247031320841319303079997474664775691598689585564612935518273225398322186052176518482664576366340609629598046989542117448177302353575433141892977123073601650258483675868568629151053821912700797016427802905204406512132808265235720300382998343282706259863727088984234642073425085898405676790811957356282924323932507890288449724490122515106675538101599234073129171680334697324343028580700320019037400176730872628394363794351455020702779674841195465124726487001556759691090586686701191128177562057601172512535242383086943568653090029733095555036239140870414209946229193547379930002481687839504244241754739690933792056582821065572349570083929070315127721669200160892537279654602716155470662732845125740270899353129199591263934261027497120535080772880129187237663710395792964231287761403274049460561469763178387613928927140290720426643362823763703116225560047042138093598658455265686992490071388476941510093072467772966855338898622872502384620272586347996637005102272177355262247362868203309074983639777204301978191034451080924951558890334609423902486081152014573137008458380021047094849760661709706803782683165716531888174054591119601721404087950370937204582800937458894928072736810776963636212449238707203427480090287122322937359684772022817599269568415684751355598948059644465968584054685367205133981164125063083712540227416654079894632541588782147405683193953867458512556468605004949264490686847442117904983913338667803776511243454748870330180308424207446844601049916656157580879729259054275886511225683278901263023181039990749585610193694178096085032387081995500132062848239800072586061538932242602825206430675396025458164773907697266715022906211230788815073823496116978711864438391762221427584337426064551946867273996563577332776503201333948463919036278430458466577373957966444495912794916208387208832265834193426692118107138961762765998112019730239382048153241505601640968310597677076896501430682682357977148557763808394241942766047896431653118037614108390409802407536230917991481110207718442231260199309629655737320775937113979724334583384143492270600302705733226422563869191237589178745155713548406753539219169266300338419230319679920566901673322814177870000450475370421643093447043433348968272001624869901669142254178018632195975271506295612253168368293135565534433809909985164534442492342649415409374845734602654628250172392763311715136688165657285927110798738712433826001754021327866689040165863694870134085952695544814549734297513597670182904419411342798882210237493703758988053627430790313108656134711370723968129072011781768705320052131348291682674157855870523921626567782024994013670968330602053686272289088240551907389606506531243137712054322114610207781331752022076880394294942167794610701321923412942491680869079696730007148535870841997799874157286152736005059205220470305885041941010916671098954884419398861530780686058548847818881873550066373320318778602292238673012252908771130718690150026411389745973393715507606738558030346620638850129024910173810316672601484366161636355338108192459523268240896308028098298621643716399872918718733685253411091283504532764427494939913609681056622077989903513738159222950400858086126048894851688629981215570360062712434851187211376405255213876241658653303050251471258881734822115653640520178609751554804968777124737521338665570340928540183502640100050157839714979100100531492397392446874439088978532208592858423956843057707183458057855289067039750179677612393334318082942848215205537208790535607101786297748480091909169665347971613982987019577394841014806796320967038066280573843155060059465367073771524676633449812519042670101734310415504940402689194784266799256945959804656481270429038623125509840984131021349823868491208809619806017872832642745195838571828666376224514739878199416625134551277053684164063602498237421723809096173776666576815853122285878757544374695922374002871497119745371682565825963307394422815563791644493287882472067368794001750790127224146936946485231344895569299917172419366503018397035823655608707693797289806387636366279983859550027274313939009423549909048766180084686613271440337702183225116378469908698857208679076683850229841049132383160239664293058704471102952303899011685868454641167689385851915126774335970637976691143599343717651928048442265456740553287745850029796301850351829359095089374426930684286021652410792768073761787366434782351058046580692947915806248997139950016931266984113127570842697628074285914894177059138822153959758027058726223681921196309709724190240654318297895372618202988544090206655052758916460672922955236540794306667629435795480118863103808126483412467367718864244561342532837694265736643923746545830321283149678388389183524727920273260232803816974766345158367453941560942458460994142705116390389405549023748869510647342713112615870526208808631931746456495576054410790025057335514444768364171770696184437049927838500429695731222415859385326804278382554244769034666683654864560638665415076197986082369983040610717614889275670395287099796704450200715750710663729957782075254823274411327645199882640086873845384596247906772428962774848549984335553385408863318028469528047875063339432896342197554887201056127089827206449498381970546857910784296277404219073616269946172960917944387336134245397090910552471219853992130905749766212262439008449634283776773263311410434271303831808539156225111292256761405291804686322339515020331982826975995172287345391633337964097459320443642658536411274623594333939862532502124038694708174405283794242948193825630948409150570883895584776287992422608296352363527280574726674784032407306324030783985266378716986469635179373544311142792475195248943682196336328977333237989402405264051706057922604239979543285729609564240447234799790744983733683371907135359746197108355245963422943018890461409157176543879753373586575627496165006493592440841726996108319682844001348291731215367121817089688101146760613107687280433024719712388365856644794907059365580485620140426823848276737456373101405989833345198549191313233435560457868088466034675667072515616901864981383553888678800319912586928789569775233892986662811357657829731425524387250374566928034414183440327616968095405321873983762072305546979647925565299955683395848541214858791272242006720992545630594321926823202252879286884227578457182860027819756958034126281026166112312010227974794850186117954015213637468096424700330958760390199808229835329699578716019281327288033842450984890608897934664881009771059407832886874370879894320744964621735952981482443933852444773713144259840279962380865045169539745985216990704081445808536052701750208840032945889889637845211290686216735493606368239245388461657739288367352191133229641518127830720787807618901030364233772617553863511327732118353265743793677171989220448400932013131001273600936566611719136653198627733708656596236004558074102132267102075775025014642537393252725142189468958988583636229970874571495691633357412453841710424406799016495529974246644088671738125901740534758803811417802210865252613160853782285725047946568132238539827655450941439537725696884253870310277471921963808860186742724456730054962110695783615662931806335961454602620560931153945930774412043695488502570378607554385414402742614799102430466676354894183502564928107347098799172289330589729933796357657350070817825210740915855176269930845300836615803154572612322354856185566114572563442716129775503296627171880934917438073436331724796839290621118625180855906525081579417378772454266335790119394646478368001712905162342400791745476552388219553692951184097915670595405447379424775954006778079317309630731545182136429637962918962592582993724257213980627232195884811590216047005209934006759913029184869336310688072514410044522283706659183994844261686732799243248535014472388195055273300720061593766694791148678065263709543680640590992915082399662479104890831295471712885234076705088569972463191824074132113375816564121199990686872209232581713049340087262144212433273623137406399919047347528110566963403258972153193766620778837087016864862957085996270571700224796481772423753905250503072493607031055600248905525102853141800983121402735166169461167680048812225496826692768132594001183490118847143201779796909543184373853698944038822400840415300446276754407482927652481561512065467465439594660964442189256885524531179231544878667885860711060392310431959152229732370084509834443334569867249258947397064282852164145695284903107314901072027743581382200345813335086909176979412085793691933908449201782261687313589908462662181747120992681269335313233295771974492246049630179992966492957390360978081541961765933392615151580989347834651552522112277605372597670443203264763502120142326710807888522623334127386205837082696198373674089034689310151955214074118186080479847037920095491846060161134220689910610221977204016611764482342122366702517202857446850283416662065074178340895889168326061080031401669070498916198991007377149524103173254967367704496058796426366422354188644288497465291790865003037394485686963449253423186653730036932560451832373846736480751046794934561766331081090256136200273199327208100042827953339438999133081782893161839379014086880284461940148686368712155956855080860915311511878589647414991021713295040088429627923274239527932264678244798168306311062644844219292406786241678661061474137322772687675695590056519230796329924429378966259728266421797357593926032854353642013127439746687061001540172026365016501782864666430430291422478830703643437476600850309297576518057485408065891605734564848687517064598284049878287332774623761066524050845674496570804061397777266916087329503083641368542970480630664865762043524956676723808440873558318347979315535032735088335374082266569273215449838072250545956642746162122548616352250269722059151868357029873654758923699767333489225766291001378240547706714192037599286476290931203710326376529213905650489827906781614439321721071304413222928923303285499342342078129767977885926254875477650749804397131645762000153386286465126310570672658939136620742033736710403137172199874641793843386420185988459476609895470680263877419377358585673175408382002838760688832270953682302571549161803930395359986985753855413117691132758701952628440393287558136842603040039104889357463718938296182308550077030966199782400617661152146052441398384138986757342769940415154679507747000740343712204828592498517707890416933787525469692424122919814085248330310405733649434342403141844641123755385761548338178597597142598727873775708584016285607141298062914248826627661503670683627754307189188416828063210373024230692019940052677344087124295448347019061743454373214089838673169846092789747841120105477328697390435038207418571122841865752756297231998665377528213525144973499447486225924048415696021557085466349983790431155565353785602422898735527949618021513749410066155339833802623253470924803651832800065701413386786577612093356954286519728353929069191892272450934956223060640495004117099866282477542955624465659779964520431185381986119286313599329528115316061293709384614063969606311166894210305437815930943661178427483545183686159957336259840603187289901824302700710497431564856727066599164263096846190531367135419233364230535391954599257446907536165696193575814378468954463511759116982445367359147045636939720614316518607392755642817018071134891881934723114806037590426662551966017085798672164149388186957161722425747320005068845697340967551147096018221832804677240028280231828264215148805079887991733533907406071188762310095054230694389728922650538981928807270812921761642631658464703991876784457653772547128880777432115785634980317874493108260217020023012915355260794463562610260957031131258701184550154304924819788329824742260634035682043114196302067518313079635265209114158564499098208551106456585491951042697807880066766790874349409098838122787491942271950799017678699640951944093630975729475347621605535372569685289576532177064350880389756463094998932547446114096165010870458075945649078938545237992773761635760455353613032727742486477296465801511562264231844103371560440963095728883917010735091391679441417919255493247609383134892373355247769293708973088843778323496433352363159913509515977298965110505498448999912602596457717509560350632608786524833483821886585457045222248314414389296545698084850551964261535454406940603702875075253364123129294564099098844771623194467621058145086107278884753029759606494293266473701230765322745985647756295553118216912164472230503865623024549344269661597749319920527910071928069205448390153119637598929059330805766390244285703572038353451277998942551218802494352454923017301130217974671566222867059359481849136697937825565597708844540804931541493381453236467172266733286718244302014768413740746290028334322860077270134958615958042935106315429163855277881271297481036318742130996494407354549307059680145374456172363099168978256248022197545288545717292175856990351150042489349653744412685668802172941573282199213759240287818618659470630474245816432644904086367484375991498960105000583072125513572677767433288999892089660155017586519212361181188708891315055396320856872825805832311006583460938562651630423016220231763691821043714108602049583570082249672310167064527321460099085778021136301700220108813861917855095752706627983917005892102564847483756260443966599814196243564265229755081957931698363789709951464797239047577378797818852053128981144865585366519558553078706216367138154272957241085043009625352278320890848374075691044286356099717107076241554758318347176292198633398821259753487987655857560578252296247294111584113826248872320498218105972550730335756474393306686431852441941038068910048149007690440603973220933008795988869722676254492504785482775835127114711275755168029536382824368654412052397684134973650375560538971941006861611725875572025120089373384396355043232949724909613350339599539573496870078455454326116321901880841652339901921948537737558461184901530510202264249403291583262810589806864929681924537113158911450333792916755249167723675958268257949945387967405019186734999396179411390649477551830280389205300847262579008312110742060927828922248886518894219713669702921076099838526487340149420767197599204959495421893421960177325507341495779845420230977797232339160375539216613868407567926331872278067405257552822744920939480321486016359085140736329360567848080266044995464309707402477936805048969368852250340417513345742072049392623696502507010770388420313543046905897237451078187457063436294620516992565338543712292900785967780306007798450916764120142567380321669640421089468716996311286054892539809561248627696104398835880389701632096655015569338831390683072188889147380002894660184226157391449751244587712622555036318289913269920905018477946550922434468815855003173848681968196085111260378335265692576614639300804459854146589237365873002613337729936486061733943956161794965233175911161368061343956832689042947528508649412682703783858451905569231887129009752092898378438021623248919334993502979270912107418547145880339911484773636454328030944776502041767961394711494120293382583136703781702680569817187828575742448108488633707740686373461302638516122725030010928976693407990040218159702245302741446744096818156367141703286794886406530754062339611022262204138528087538362024509102007062466577254682793129365218554196975964859929743895071739441367484425230244413906962220355668632412668094812288908305859015926632957916970994799576132647331639791555914760654080641739064970058848597875240523895510101948027257392216570144629505510320481080113926602381561962930911058077236993381590594440975360131456404494749338507408627373399911680016022975614187071423367936104858851357646019985048712752467977133775896791047306110405121906131771361012317900092264002357983562954738697429270512670617388661870242213090485355064785664662661381892287084839369550891160286621183361665809342080540910007632370883687933361196028467321104126252999868234794257011225739224889423464715681837175942317764896177723049680152395222738569589659209400161002049839438600884855307882381870108194802750466482354539064022815412394945744399175792110709465170649416908394666784198406634090208612208251697604497526985809614657287364034054559616691768723316337684354936954055069379166953912704274962476808923921608188344897789668969783457311776845722864598876797882308457450145533902013762651474777315351088032963471954532345347072328043720397245005101823208472356114246539889707164435507053147417500338561048545543935521584598914872115303908379969577087651159632097876892746617752302542088085846739159035992103043766626533195799607236228518150499859029616924541444590882887047927799301708963540704517441819215153153160528316583293259137267057670872667028878430837689047948335208854886508360018356275366047992103800427295704983411811721332384504590983351373367562478531950452972341493707867305363753708489927874902039511220159354128555158045968364804628795288795485150170671298860611817174580172052143838927622793167588089762275392897469686455926810673530154884734914395141300537652479275797244253124342876062917174280786708420557055311324134073143263933247046616030455255155681786798196564665721205024083922187325306899722179295253974813747287897876701835061814508136213694622218274664225965566975451455200280743982583835263871437404061869047965467650429173340942938747044144891385095522058832990877897839144148283019603796658839648788138916194534362287965663906402237598849286877645665042163928977336498153879163131580809119776983396265037683189888184314832866305585107059358963660670800060450344456306760366870657795828373168902505612747776441315565945314352249066126889462203185815632126603462592457029851990401759701523848897872232839114789931132510161555460067693608980290340004576705357279763319952148880320382217615329948217646997086223085550695174219039442624537499091968280824983232285116615197057072782261029637444317088929667953919055403468388270079024115702259240863216111307623495325806389032297578023191179812944859098857247063763276851067933237688035547922753334318053979252702705211686526972196292781951349357112058786356794187031037927286393370791182059513169190188668981861540870904689906930390526344935366477177693412187191435911132619457862717422839130087266824694824292773801678194139431958983877178479270425604037473395123510732573232907158502575964874797028576612892039659934395579467731731216400063869808101009780372222885051011288919566168877983431177991596907458367998538522234267856413764926981719483664049184451316327169151143913048967188623262758443891088269582762839726552671300228794129964278032668377928111740140265695460045500485336346533779053079225021826539225517418227476929154183011994335675150500723372572402592679780643407074481576888360080181312249859183639661258051436894368474310581073605828985214870466761942574902959763667567747932107898602947406521414274369084265477221927302708927255311649998356292558120769046900946972038482808538545723947365935213409558539705253083551723700600827813673270935470794842528225961098786031189228714901003670726269485139851931707070839351712687313119807569819400872410867784490140918984833801925430697334608383517610100064150571267490776014294205758933185640393695998978135978730942067710948895002690198250183041838688338817671931978748916583649723038742854005466033049237704332118833578261388790986715758702584760367365729491806466657629024015665890242595874758174541703605309766110467022588842389858839255341470841673402423927299338639280063098956881570518131587572714446245044346720759786608918792741171269301844129880897568715278040397866583428434006234489744762147279049043862308326330735121155573218010770698213696974397446390014587491288194546158467952196409127773761955319761853666800984329487559911590867278418293332959949906528406327089152940049045157811096842654600543139004442833648736329744558962510187888269515271450554529346404759099378348060981011558104425140003805545153733226660141900518970040640992965607966865983655126591565616777856803909593990212543787716648595246738974757877533151064283683733475821158992076818385737264048932305694479019340800568114692413863773582059018634899656649754942845593402753812903128216620588560455742260277051762775891850810167618554741351567598181635957308667612017222859892749649249405273827369714823126083776784610831446307043544143832801306637418618966473010315947799417381599940550941825617187095699523930680277831661248957631014117269817367631416911749206083739538039682132498377384159558586774867303070010500833324589569788124858943698586040736247974535648296861103937690900715806219090830004829995969823471309606025938002556713757928515096372232792541337841467081496146572697773669578276838366104929810552328958954904322367594560384882520945836145045563851191666535866462527407849242954425555367949286648784067501014047957266151405644266233491270450223885161751688336232984033630499887963470661445002408819917318685254979705549578104873056219693311570248214833832733673404379919654737279699505215263817704501374968682559901755983028298850142820552657618203969689155494748917393408187587103799903966883015581507279147499781721343799805330156733757969651437318970226786541742810338422898172362064634743935684290678044919917729567033253826968892875718810779688440992823058720081605856701567774133542034561793913173044007882080991365208558139434803021728138860084645826081721079453126990135435916142402731537094430517878235813264986335419040105891947310885540019416530157935279891764196357640231603219142466602260688207403208599345784879775124874737398537640833768641669250240363411930183784782822723255676818071335712871008536899291942396813977054043641269766288457843632445502765376715833727105710158749073719888984241035967135275182236488907673113574190145459277376327121383933652603416008523502496565128121200546442248590152701006479172208687205170137407370904726686076942940144661382324374377480484853482805605589575994219741006325477204495231482385555664727095743476003799488634466042005110473449309519423940143341916431604563043837292289923510044607435224069801673738513784732265841090734194144432366373690092742081847779545836776167537472049228634545508874585780890416630155359279485817431893603429854606977110311089309620496071067972935316957626297724302237956004337994809314681379202574824569910393405547100019245736427278492606797226458081096809541267950910357564156523296435233469331420193701739576337820381083958420163460450926196565525500504480542494160565950921780588514286246706331512913558168741062823926274497597688938821572764763894642801379850113823457056120105548882721434371691736811266799267607135175150334733678659791100122434608757658536101419710799619389637965625514495157354470916406036374114668638144145603738642346816258291089281750993136392901438483327669941412444235375166086729629811412977522215582607358998464054480129323675478676334887610296289971650018427613889077821020076518651982825577694213226660295889845770592860953240815117383893603982156225347477243335397631230939010645690749282112505935865462121709745486963328812615496311025565608437078530101005120090641639157814025360010863354451044146984932672125068841801723808059709114635414002008373147293609055853704291908931095450924881108021114527025637233026313789082579153750536421214564646514284312006801504471287495854011733175395300006159735026203595808297863176590428282147130160749651127940546413940401519051626698832102871749375073337618970494793779726045830436803550020406028953349825159037672821253526651496131616179418214376148482291357968305527180803368492001926260452355143572066886929108098017572861809336066504476636532775612135197770738460734445770195365701466585856641867516503631580318602250711210804138764596355354425684179568656270024543157838353264319618696251604505826554716145298358842125285604972167212601806266530700813886491277338552709061715787705907394608064841455997288623861355906921620292302233587064632345973012234962975194001343934967485828086299402880486553519815791803266053719646197360268052440192286477593007173407436553211044476603418358693484157289554800457813251990669390352728619811086246328632151275996819537897803199781282508975342802722176733659582319015760223793383725144566887246364179974855553140310493520958019996393291460452905949110739432854561852248564554815352140156693771758957202321955855867860496245145028023984979762149326406952195722814389780274251993276212290687883196688113614757326497457936971383975443944253686714611524603189031505704137662052167891033074281223435922608187987506233567968490123529258387327185803133409484043998277378619568664635352053903309804208315436053602877671831798758897190522558445320540260300429654789596409403307382847571241273662371920307055581085621876195777349883639289391751218697676080594027594286494405693232312611178165422432264970846288256731654831251995541135071747189390001499495523038075919813869870651490860879786634818404832416161187244339929838314761178982314168116720864204178420070540772216525439365817358961147733278874034972907142343110085523936369416462356728908420675018687648618104691629793405999052753745854145193349762212036152802134362751013982114058997895352907037808435654806033550421541315098685874785019077685248332783203773243335323425738989109655435606564181471335710387503468805309104224132362710621207052367087877072503526776072767755172539790136516652351203028678459364142956491579175576514643156739006100267423896546132066318934733140372044803554561264865240838641855736140641984898670530948319149436076788652535444246660917944701628696511872425382876945579249451048316439977106995889481658594835753503947861232349946773392240641848710038853745944331920325160348147939355586984023377826331172285371436253060471087998103586102963996737409278573765254561241132535605606816434836054690766912224618633374456948878060988824737015749203543156737830966667175650916887995346458017862959773572325571415835105458084077102552867024178046047805202947161506908395932663530540033604133362784716665018392014098686333525993093826895855150354225896983197159137256172972878765881604441773334194629537651091801724466377930891845033762579447545160208553897196156845070918845239068707582114425746690401423883211128232517014693771927899231615764592221466578813958201571203652073607233731892998515312932409763016734465593522740548007806195341340784506880145009893553461481310952204214592712099262709146788354411651166550406402890553924766085355876701978355127308943851491071076707207122172756809156470240069028261715041980046659442486721508351521410961087905274766802182117300605342520605647320603282705970641176135702159161694175031303733639210093754509039641237721071167025417245861617325955362217859942678698126183855193485783380381357431281330092702169469162329424033582461535826659240750683645046802054750302989560114972861686124682630829074934666450572071265876998152943898995365454201490319973159449337668034925553424170232640852568214345927867367084048805092608304844649032287960502580971591863002232669145711703995826852365438566747986244516808899274075974657755596309877274608928687040259481107620071052387043487803529041197409462375874308259721492081805634645339238117994280529170525481273783532079608891130276431573233922230410696643549266191338575086930027885749401138741714617925015562046721181432435522196172622828913529300838047487982255243079960597430574993922213414622630638517198493215097827114325015636263007355701633279502331981532101242436119030037425536236517251409613534483000801136573651190843763139325358475924462990294097753085876334083132922476281531432963839609347740198995864353710581109888480583241233559059707012519396094239161164084328083900292778839234760459721684282122152451901196429832692110571946851084321704678489968033902986159302653711119558999815871078045696734914080275513021510037916146556808498760448687138612240163853593899066367491238955393410441787874252023397113277544920809616206291328129513236883881389572377041034072621458317117132327428338402145929167167121929191096075180003377376860468202562513733694939104761955319550052874018300826637918561737737323288039455394729550780362950825410353011521201978091309174728639340666316551689798656968757917783426838259663590646419477505555889191310525416541448134828367589065069971050744054593988853814390084511341864379316066047403858562558081449773123935732268857343869456970378270788874064349895085175765453908834759081728956837124743107747213023452262984535621310005819386825864269561885910704552201985525342108340691551930669048931593825087743731737926268265837781884121561897889427963341960839379218533044247870006473369302630617645090243230393651223517719091157438638540063696315591303500765519591267051568720521906489451371878811418185386694703490474136168859103579841736292901457104150702052112008348679435840343671859053569752381894410378287431080068838658811465650923554435400615575726585884759284601926032225255264813068018767495149588287878501268285201000620603736784037940729651815703592719539378391631512014717745413669922830350855898020406594710225825498311695627806364801694989377167188829188263019574038959311385931754649897072867598044969159536853338446763674974550127794194552661003190409417091342726162877170796058039459532902452919090773057816512352995168485271524248437094402388851161069381652844383874795592394967939270435510109695479229259274123220266603249574027234594058904724494379585380875320317954982838526286798424112649415327293626677574419135400197140096526135940669262646327528347082598615643715584500575949578610592835909338427952458027956395583617482892324307992440024778784739235087029431518855879298194925303904187436059444874543813323845051051602604368967279243618624494510179117986543978046328271124218014370413572162149862415636586646632199550723205754477446422892183939738721415917775106537978473159956625361285170616171972468475393785170457775219388289614078215745734974355685411056354406492694249225658235638236448160323774259774470331218188974366975789391419133876789323317623811053893349161733273930545031997929442428379326320052791270258271238095778856071717534043692076823636499013914562587460939275770210976804816692112876063029745788032088675335375332404265187264872578369924281747446562555914497753345609501114837248500975378803760899850015043324027414797825542536331799244899250631112241956885765392605202567591881641177907750577270916201624598393187192779290640709665164317733524187206068097439084733301741706444908647035542662556866498413816107661107878593857017457500441068343288887243091035325355378137556393469023373334137136725399898400465002029059753204409320566444016781235048676693437186670616480727104567422533377720842822576543322501981145293732560168702003610283520650844017550796898465825039080246489359267837635169735273199765656366675593328819153563853494416457059142237582208775307277902376095983826585893693760905548093839635094471103767580902170558838011448886439597325019393823040377423517991682546965772428199788509769677828790601099406570292456334479655077624396728984012763069297227749014038988686416985392194231551612995186372969168555213642996792358599376586841682791628053381710594576304360699403749551194797923076216344331593665282676641592164532396520512206328772918113522844202620762756791199449900525685395289852848937377883401667609976727162401770857043007539405762948327898301052280509646480656811678617306825387045278088567859427147094522982799078150569362430521968662916538266605042535059783865027094520632587093583301426013818505997380815618130510730684559390606549865805344559799186199873780530494087791489811687940919493744903890177654438774836227320457500363159636916039203541250196857810283895566910518804332977827837983875210390413624193076605530160563733589468767282074674232283435780559345996752641414516257661564470109269148811459480047909058423541086540491987043703779550610542356599880187058000929474813577790533190621861057546458881448343586402923415928663594109498698518757179467753428919365934266333053738063261006189924492719831090461717544945162202349062293941231810270437292409027817290039158429944048656613339068701307416988653264115818541852005138764827487654229098186988875785085177533864481154435619473301771364498603838005126826333702655260428382517017229282315069055565431268129885853817407104750101244267764397719447357100523452648871039476314493521303680430313736037568123549994345972010260343825552500854635862387961284436999227923255717689632536172560936766247326585139553170322591163893852324462602658871201147602845472124036138377447909390473501263030539630469535584798910566621138779441853381806322981798455854038921793218990763167269604388482496691756339434365210708577455539971562279615747854737914493081809568377741145242663765964885771624615914085011754769527534244742954248562597648959775558090810021676027874643466209335898717851352903746651126287599874814934286524628851748798021719908707065935794538374922574940663843372743557581776318892633455293667453828046380569254817613761216487297773497890098130955115269370065913524207937559364430918361992627873878200731707873308719205648751644107595423388004912672223948549981579360600147769434693039187430361573135371833725768814346272300353795920589053357682861181634321955414869256163099462303429765641294183003027774902492455324931421481876503961917442743137515227284406193183421707189546089390327859840286508898604703778245134268301252571987226341476385769784151124599364151483363722577289150185111537485079804808170871286585880706708064822587541541771820503943070986745892029169262111957710149939945292364412852814429844077391876809485332157565055077201034852702499069678987535415675841072152576167170400384598046546905597945238292212931947434564229009656678831338657736302100122017057884849378838082052852371105701440399918531822183568050651479114994858939952162526034377414147122214230930252964086682178536649855080528453422380988653147486347613300056687330327464909178102785080903255182205452841301451794333040052362676837250053045640229707296111674459013266546979099853682492066270133479224688006642850739340339865183536557673852040856445090273965592918885079553608392338351992933059122699625852158234008580159099656647655148471061296650098017745307589251722677437001791217832923872473887651344853160926216810742744486538522151371896536089796063732646493632736066774563355604252075201644306642795346000532670002704346558695062634600325047042003192183533749208785056508129910717080301837060917264221958684423010812211957459374575165991540278181415079551667772290728210398606216448314175018271213948250078312191380399242386690741078765046898900575194434012505507721143751498713758768965453426389169692281776592146850337636704229506063056192761746096107857106242787613494834950455774246472704155380014323821062780662224776546161051130778863403308622666903828885246056490736419107457334108926576981595055204586074000755428509545995356341050579362134239011887527413969864359272678556746254572048158611186832720066931112871207449794662476457106111753928287212870007527202471981999109558990498886341922247946097726108509245319339134103204754397845184313119218087339812800165409825250690422643160116552112472327258163842977114401378412467922300504030953481743575903830663699970163509232773982323339772984375181789203021103625223780291852487607451351740587802288640370609243413115716771313287357929162317473852052835842582558495682346684051613072904047610636623769699010902400252605340361828925725685389625634190969195076662811659683925416038384954755400983380898483027086706512781541185713448563992974389598874914468737503927349931369024017185458499601702777424582254759736447639129510564088287022685227550152446887789598883836341980964395387067280440924925995931130666948477693509019379653914184026106795535914518462711910419688412853999786936202353052768699934345472238133166013370525920792985715203588871574507279233889377832525421350323875504688389973978451318552195860469655339918422904034839453905346472512218564841590757730075180718299899617495011385825224567985169291511188152850575075076646291232518357820511971806687422787927275736597162062555521092433659913928003063667827346242946334819654155924524804245881645460340651131075941090732841866447789591985250255564562314056556443399127835839896677873054875399280664317152710444771936714685647933627210102523628281978054531273467515198702421306672888821149283201345001874143159697909230660372463069072926867649694582576130088847911237271270892132802353023347574018447506709264708079723118843428743925109153334305298279598549068799010897806261194626420803079520794603319440800663830555526748599877909395476354202584192718917037466803400911624010760023791205585372082576595401852313067650421054842385623400127470715437435980556960226632663995637254301269571651807417868520026225375293492372989301954470377637116298743308582236882439655271980422363726731214101450419460482037242941252850289605293091713783462747198605638361629769839074894948629221471901108592469367561900875796956287192110898013398059216047671341511578706969702749275428634223533279225759270931928702412285410270822538136546647135276472289779037833269041926633848417087860150623441933009733549866172108444069766299012181363844299811138918282228239091035961639992912620949878817504323004978490213431409248227531836740270338278434428379044322500426740943122557564068711034930421659635299657014126365412740581365052945240322708387652497520995955414086117836029714054151092506282176247385439487997672711718041893549452483315831504232098028508283818384415988428453912992352300390609247911490528092062243687305029606427447379949888901107217532952464264628233485645519286504371868191815698219732033538799430817174808319990809652536927013145085528649734635561567285906617006696914052561686478381020572116978808150533826506075193842775909342154854814677442991006667604580795886406419095323200019977582425768709307129462617368784269067969124956756790563604407004196510767419505178259134698231286044122365363723417340288398985607255206024597951563946022452922525541481100266728678581425715304231075936394724518040566451903477481188066796790754049034059545395874889110565684717878658696522761902738451131896544571755292327756105970859113827658423332156972040791853325391770426398691857371416153273802480788460286641273036263757443199000986683081083119838848512439846228754431052370347851522753987892239032938456016007911973947299041682311073038808555576906419985117733370478603423769659229932494769432733398863868280460638016943407407117159818198052456326130185933200466614792571200501516752952425859904424360765109082382171419307379192418177788984611343316380441191472470889718109211063178847042397935461093784932560217736443101509074266511244282692484158303929482085662429779057822126287993892287468730276279329228979877448004999782002133676434713767039206020731998950565292350032824751781581661924689773993945440988547390309779059129163889771063384908487171744209873640205094761748718974050684953524467950812052815254194518753429186331497479078650747279362726914649935173895748896874569699697568038111464307503194229939396013406396403014816469508731849530543339127272298434044183810716921948828223038078812338111672469038978446600168069263312636948451383199666438440757262865552531963210305565709313378980804193772240107199656621985952005336051576225848560329304827409874332460130875838970013451573681166429965786289000760318278761695132971167193517821612520430746113769028152259990408714719285748332669597741657272135696267171117781638927386273492110810755065918377155592706666443677770962907693873573265167831959393388264904944361070092418643129891169182170875470794364324770079272696318448849602214373779065010770653801952631850404908831780683949086508457994250102851674102256996398074276358842348355228202730992971166222996756702683029567062677318159688636849869931831129715134978528280700103959073706319973235878990360078679517471413370310594495105967199283071829479102227625854787510156627269344273414353626318508024736979954570091595597357997004403869487456489957139645459749190156022342882257790220631603067295271636013612487277394419436334925361861212454905436545130601347980743689140340558735582105571175724034159708270148771386751747793219707122543437256630609741583645965335775333599522020534925572856404241229665903354293748691364194776171175855199525110308809930347293287978580549099647800212373079688272550797192988578844257775205929520841274477210520681830523733192409720982786797476157780764269394709635133483629246321436153075359487361938683632360598289819772609417893651069213178501604616003787484233924186417713349743978925954205633521793866107597293357956216550854503684888386232950341925875951899350202700804089393535659367085985149301231053706662967291234388617063888139851879920570841849041737767322387027527815644567252539520127127092041134295439705336988224470168406223571389384425249611460607552517490550200441354094513809522818433227882076375175147400951453822738665393092994123449096686603734461206071990670617505862950160850468255672697251862263727116420572158461993361389876748676602548628231493908964972838934227274494382036337516406123404384408593110941399801497301454949401662422561526713879581893557700839896527035716039977279555292141709275701832796855053803227839117453171782963879682300366474804385243543565688741259781765625744697678156203294924346645027170310859439439954112073968914420096743681971520472353979367484683089639403203044981286483868147682373916320048724003634510343484092573472506686102374500405594284659753408996801748247702337816801606717854588580011113351964478011416823196308248596317542329132632011814698736069850032949119881026640210538407926487856752170750669804352949953449485754329763772863109420686316079851534639393603691069055511771562416829498948293914546449559809700528437028395376718048866770229639909485078083596340558833620885635285527654282193576189127348719385827055376434034189287913440868100774331202747007328181366590611629127606488292047870580554327130967024623248392571047441551917756740379118044387644406303548636929436436634248315452745663799156954524088502812806084822688062603739115460081527126315604271789086710748391180499892811846339346231233039991052290084871311604891991685373160337329703981618821220121157272298889720920136157128255992594875860420655580990952288533063221603625691139226384366576042076373933467831570006875570477194929583293493380604153631823427256401488594617011874490795795230730316957190390784180415081189716518375875075870023721309789502036839557942009245492428679463846398190254251479000342996187633839946154548234682165796372078021784624154897577481332983157852772133503152463634456413294975829657402005749545056831926089973123220927906064191742770790501438277546425937701166939778751324274991401509833333506703417536960393602675119869432918940740549176753783765091183140302091496994474483550183971250123302252868617196083555343155397635307212802856578341958567139419264186411677605161360567940889973959448049278476493747764291322832879832035534949732464092544809087393954051557365985044931494468920531104775396880215046165846177078922037585738674511643955945363942441386328765671299272056207524783323280899941368330476800921372409452641420533717650452031460989612405638754529885487508661845104081357368423145762284462916956394834019072923690243595550591005499089840744819831928104798482224848702298644253985018596788793200386152331602440201614434651402301819093929415621481901726354985494122343982904203127395198236177303583338924520924206319387162189613145371419027924060150083426399126564232370241155278075896593111639423242029650193921156189082568020798527403654209818371842459908963511920995912919603355035863735119747522128450275497895601036396388515693951222952375142200931715812342013317850236649797205266596274190114968613244826404345328520879640478964354393663324189542786222096968982513687574185145272476906194951979774414488184568905691557485830721886106962412102706114029071912847420959839992182734052031352286179089370732960860182874324718478384275599627841726331952058873740024488319552964092113525248714588755586791004703410547926391323958149037746218099318343578447061743303993305511661432452167347875441819547505985608396352514577213746572739802560041395906765786940007121255443557718949821852735392708956632584892226976263685384682787335910614369086778903596743311897199534686849523724610209973991739140789957422556835196501073721651191844006973271446344726971182685181645799058849615416670479939647662680862519102902793560527695240021484842597553579023565091631093072048383805875504279491986081849385352975890002892226163155320306580855481084847415426323723202464992637002231539928635582102013145374557969291270096007252743899554129057878997803910656940741298143027459153030619585185811713775829510046449297031512048265731952472568270672025247749336357309981437301851987638716031444784654828341383670762518161605218773517518148318089415017885237264905056715096205709151028353822374014803839494463394405858179809229279071701327080471647050266183187385994739885186282748639741080278189488740150372626142452261764132125117820248554386513239956821382813783187119483208829058481455385535477903170315049691475789938641426385097189001543308442904409557779686866121254579640587781242209392862574809147410605711258448217911332161580042990947352055568253179571053818863824069265548608092453388877735308355551058107070565340436827906396185943451225486027357537750722542165265157276980648883323196907988649313907247103990957740672576642272006921778649094667678688085610792738197619448590337696696307583061133966758558421505856591951990150348575737666212473810000865732094028261546600052442550225440968545303597569799530842532462732102864462543451453071629290520927824979347078040142952108569942514237484045520052013850972927846132948023381296599861676659679771466106875273450049315077418029366647436680781865801165043576064361734709548267827404602776792199886716942229693093629161719958379023524216116457532894463101626621045700617367539752277098797976790704964650118312399602837918167246933545430904140365000407605943758522535346424397034412901696684954509298961958199845168335638663070889490328698853203957780402846106102341695979509063500615252513333053326878235568579751640792554319055251660258863739695967611578346490180062719361301303531477231208250306030148267650522312230520948630642012421865399914273849589204670004591477936405234307429461233132048095969851355387599430899471138071844112433985622627508980069693462453889055212852230612741908703245247635956857416493355250747081222787217885018230134608700076745330750357169386440194860314045288617583778106670394262346626697144476023663671362911127124489715638843542065053238488735614630859313614121777922964861481488307670491945880487267296588760200958112114937661083389129267414130947107234068537071530473024206866388462180494886394851473407364435127459949989371308742117413094527684342265935927112802950329996908999068818086391568227316426066763207491596733266309024263720536388841560028075857086306053663862279499415893875185280076325762195521654273526007743240038213393560965866158231255076540856311586167321959825804471187539333463509692503380240952676851926183464188444136205333612492638876781398936933711486492376470802338161229896803780211401797174653481926920995993348162536329989633757479180810263673125837406869926794686592763566438499876744966153999544120556792764616804750733581717833648558954724954948339182224080109417948956276715175005209889089992547016865099331519913586781685383951396774059680118880402682778676484599135033468396888844066734680311538450550482105065117190936941866467034984429982808422587532108394017264014250519203285360480519213033130994101759793441564253605697296083832051455930622553235272608237896601009419126042981607618095163605076725389722496419899526606882563472842953220483770521840879677520043572218245806055063747910744975273313491959793385792126841529890906610803176998363131031439480782954695804475213818420043005464163171533341025082808263467076489854253768289770899158204810939673549766955322780848322660441541126208938469435436294263332644465316460951970485906735973624212049808163918863600296732740293644708629822866205096584665345339603992487364682183475400387596635182260201108274851815101328979426533478667453166292166343781058748652290563256965340610510624169876514607269005580335026373041869132458355098647224233333416569042844852532058696692842346169339307030933301552481727252380519462396595315957200881469730103834103167637280143136705954877844756531260965048856351272402663547390425934552525002038182731704307256924625534770784366992657541256298723993549814217062435665682088696270713532094585826462911449980688231242611152440663043414146694174564568504611432491199939002546402864667559345653787261282786861997246619987445105257010275537203742625137479158196415121725141085518064207915347977968552501600650526798958988727154536435421718344617389074035654310810030580115076914024805203845810196677688803578098198323531829084235334481094888800249287821429079348476365994192980128191887959181102727394720193848545967539397042138782064593286458040339183409655752793306308214432439515945449643484341712659249414987211755386180339354548262259813310443265454034056277740781499046721628783514347646669833405185776871932508976333560777362144703373062649352382868358019058445411806584862013487833168603672396000831063848644218063118576003873715679426946965357821345035427106043105305841935455103721791207246041026844723642705050527552619893093859656342865060857667145642761833227483681458616418995185433337633220702443471670295277344321380012827261596892213394201480856484479701315879359912044081146583628114897358635108652923754159985401003069240525379973334954686555977848831577725234976249319276137977930042288287956190545174825304114560943389577688016617923981728708802288660202467024439686430453198100523521193247313142127851910900010043119586539960223127623503933380112188036248118843773714297524738763271507857168490723575148087405829008081748581840631152525459140705702568998430164082696324875574994090381480687383791395110073477139929478949068512523786836186327458126666337124184014207364782711348177020496939024839064393947041158568177332896666345832032427063159113437524677000484499259035985285870873496562842523830264569347085910213632987606214402746962140229009233479829707421356760235849982636759288928923539182272381028421788641907372960481294579922939948019486541968153581213019093341579099673678629171966403462138740265695483131071884147953209321565317938390419139491177715349642510508232058728165596122720080689124531890871679079433117517013145767196846840736947615045426817360196013120749853891301906712016612320254921539120963496179013182029172209125953527874558513854778856998111496678323004780191209613014849694912431862555677024564138687436305697048476805272266375061954023658162175657773245924818573860187702350231284159974988856430804933391493604833896259366214327635980954476284995359146423695393403493486032163678280298934738163268484444134418737294697345318708630399319646052887625825958500350374441087758961846064766432664777443047147816869240883568454438729620841807508727972023304283787946105238718247898087809295147873677952669258292983099119454837432430219674400615396687074785229446218900618875910164481123121267782897022023454965957688273956155743483594871553732813055876981185615453420837069036304657409795544605992309678766138831533749846804595288579407824811285007108810374241288959723813746479019405011220940987712421001197017591744805745710410965349670171633268931103776150942390345280718300474196486981533127150872417055507412651241262312950516096464274160945680096123941183489115415337739062553494893247767645917884016835196710751810719838031909331074656096651722132795680414278946881724314312352758037083414357031423930487656336935923228382455159508619309469870279361277922515813335205683020891415219260989684674367808250416911157188745295491053312244624432169710641360526476651212246238224546806513257084345150509705059508649300207663435845098467310649446114877711035313172411438939905953516032604624858945726336852908235546607056966562219303421871692564943084057883627512886911943236851561828364444094321289662292612693536086771793608292315290435215084354628334031121574743538425051346394401749557198208119425217591308163115979748673972012960088646388307285698146092434835763387763119513472371658926701882693805732908088720227464236950476176386920179890783553956180434440466905368102447254738030937004287241117296369331389056316265304305834423657172497021914428087248063000913159641864338577881873058712373352884477036219079140166023615935921092519582332617949221528732519325314843094782269445319870044916933333791500059510417339794347001834378581673554347205694253259489417949140979585920622841120167968745995835310787565178084700327889848781659326105779637343250591885992380492333025669891866758992541018894852754027852787074452482082440991859311653170226255627294594951419268693825294445043928171819389661498489153926816053818481583088394092070672519774072358351771836749816625399196210202060076027865502292385095743934667691368900925938911686943414808327329672441477091335270197493187148823933008875563775444999094347610398313338811880533901013784920083825662483294233078578447411886184674918322468095268578112992084970338960040071104778999769969394770244973825145277209505737435049982082860382978951295259789008807098092561916727496677234093311188409393126282845932599593539085962578913950036127816212584857629637067758873940183035974713238017932079237460042021071527254135777900846435523682105475358200037555432071317685888526203450143978215423184429499476990207023374972388850233387102189587768215408369748358845968741422605867044147381860568698993599217571138380457897923470880447146322767614575743427711778012457409155746932009237546204310341330800476484465343740024486194510613764415891414389429959127596275420355814287992585869858561163572770929506540504427135068363193424456704628392162584863842855283204089767014159433821590291251668184810557249387386524214785249116081470047487255103281231795764824900974502866144436933168339596832526530391450094192052168283710800859220824203983269218708948507217943224947532518336860325576762264537474857242846921487943326735990736798475852514230338712801192321316154104012016411482783937758937131505042137770843685222623596773486754787905500989964173611473880796972303538610590430566163242615802877519535572710236425476430069563261801594577551709177561728750863198092278296805301108085359580358921044883935616584144704563972045654783497457264008391269756930920645534464043585661606784313902768692090364123840034369838230351938393551828005885893530969976964994585458318244457197798709217848597243605415792475646875180242173786110593323260772895644179678307927557183491477258357592989872615298596359901654413192551485978974288885578686384914891190967764333265115349416142296408035921080945016764015276727658152181137632189358693390262482998544501255977155161464016805064120312605626171082317230402295852807416693927653099930672117265880895323920913926115836304629835759512502265213157074147811058861540461568660732648951980878241011457325559726392927753925535571281803137602172212241949404127437017126639684278477100060738791375781332049358875722375616248876922628228282522087976791297093201885983506946820937807953825660599078480030100945375882900335492746705598042613650783601550376801422019276150993786166658762922414790472100403735291000720171735772377944887653155474314687284985695480982083996350744893505609730228023095159904352321392479737063205842787126714286742086669066656065934783764439029445407552834131977588020480358026466496552434331960532711090291069702727530361707522607114521654630786339039876973701867655379538519010267473253769796000252236196819577201832201196566896935239252199979312191839361117046642738093124035074419070670309883556024227881137308758305983369715105152536497749305889795017222597848724775222496099254649132813788396276374453289883274747943893218109881000989215834391966859743080366612754904492305294760288006276043094413593530786756104591487218910219780384082536689382047797106002165645584830518438744393529816686472610200272970783294858820614486345126809519331575411323594420340293137375812657266139358608518804276520353550634506230297287675685192768448712600270514796421953765327547371720412802624946382269098976341822557264295719128059624088596445094749966598541036245436776870545444675046801529199454848627873957089261793893308891920298382257879212271910405219595501262088864984856301632068059449422457849873929924002241584100546866671521132767264040066513160306486378070828014754152609943782457957526340040501173322425632827400677375172712311006243841494040980070328717889191290683083868870407208925203811626012488728314206780200840824192585670459907211753537631561553189668856267793883803831449852079409987637100931973667679658503373271127247514600378351917592883553857536207142564016268173161990709480062648426720981581559295784123488322138926517605185126324751091802757320675187403292976515514778353319810601869509585586135286717262824904173171988178796897771202077202364264961829296112202911948412646046292533904989422709774230301312698966730053719752664940050089651907898922344362486683192186008467610244881283706879666696714039857074482475191659717165208136952766439832723981378364436848583317912188721518120516012583052510114389380090042539061119433585244789177244896188397161132195500657040202811504805130487867198422594657003949461433367943934904660326241275693007650075232162785602098404774415371530127720162136808269281214213468897261735408812312524691954173570409980520082968016351465429781018622597342573270397458938474358991869396622657283660358961460644278289984269689076638556576944027190747887488750925515643724599706552322672436910880359427991922514294983715660720654891132938497178219184444853014729095163874275000242187895726778741115343729663536667056980724172647376922013346848063608868556671116356092245030043190165421967014502594705150574091077881397080767895058873095214852392469217004975443517761275169227274764838446464358718539329742071557124097750970121979714309937208263242824226277812182612843704258259105443366694108738618248474791996584955882492073328216280131595719119115264808917417912521644650366381694654374067388101359794070456987790133484024370121361950459155510131868861509479209568779493349076098147004991042794865798463290578620586588323593661472759057418202556559398305175787939012755985846628792265129700832250319721939546180634741795206657893368572207597249947743278984212804808710875609309049626995336887474559328250716979755617272029414657481702310150375374731352676302458493064285785296247532800147752482353188390705801277562626063558475440497741854801103766091847262066731830590788688426626218262956512203289245667422032307570262882811980191822629812253242300412306579755082826164400188837419940370064038992049020271114174924079362423732713220666206988929696070212980445188367918075306578397638463549004543588507529672528104649740552828444053706168632415192440638605399192392550678358372013438829961251640016540588923424752144553287850650977492246581556481526166452159714787942435396811092680935064976153441067136908987633658821036228232581600451938008591840934073815957245085071448931992101207788891431172482796864608677406069100264969471958380337273498458367129068435386560347309581389896384767879007511642169543743429622653121086437483042773257395533650487759170081219084602995788928827335653494679118257199693797450719899418029889253162573527108614030061649456935206696503017112771743966962414367703263781948145633110986424516348918161631008747171256565977077921995470275189433993321773205288513881151138610833131824080457192464804351126176022117246110141904592077348954715903168604568339205420283110021108842487691547038014380377585730054984175325842375201390173201144322780359398136289980740314068951800567739675915604986309403544760593972453788011218985997943616087773090571455930177561066129894062823882411796243092881313884336828655874354358058196844463265374141786006444790706433617974837674866474597894125876039739150426854457622278158938545823991434297418867301422279965005457351530124539077733653123258964870947260651775507703292911885671891279970110468136374220313544764205185671512691602857656318568335588192861699633250350993374727892434502683846930643614242001499653071656633748403480590784749815044632559075685390183772116244518290075924498158923892642799409594913335169978964665203736061462446652542491387680208631422737625122190281578555824307503116183272649006060771951218969840627300141629599672477650718153728209978861372360872627922410494211206662543509090643268488005519223057706182374509563100227779309166961942956129493712378394101846308459465136690152221833028701092839029661763133762672028337408475340898988810993272568235459515425541825650033738347785226136041260014209325301794828365609790281862083551931406167348737438499833537575283397990941843926428541267691721322471308392684388919009473302498524062732976329361919035427923218714683304166341529489735768222028876139986517210711755932437301121024582917222334901912699465188654288773398742015185177888558917663894923817785760182987136207530182967054985582367895790360410401162031762564528612850559751445909112595507218125062410278439132939082207865278537558339984082457197625209899264474891638710528424073268022192865470677701856193226153717091439796848154127494925203100704180102423693934982723764201345623646763773782887002338697911013320870374392920872636679942540328043435248380170453361038609239911642349039233975374072315896604049874373232399464513847663832351739823180890655911888137596833852058543988108619738828985655091177624593515124446945392100083598618592150045482820518329209520601072182026102395905101405979324053760831390763135103076074370984640929759704845032707531862512516149866478282463228170287071594352677578734724582219321645072184167832562090526562272389528623361720389593905607934763610904461441477711465363985713399836472119348291673813901310623019807459656141374920441134516047122246434159911952384413280767184437572927223141560169706824521214517752406528791503304375644167475722298156849506478940315619307667514700901008449878897715439942753350856258777665242291304530101852295253749476992887660735340267031906999686828988979350206049918020204877666578667574245546759911211746514213984750823856568161707682930928691832532370569582001720285143718944202161740537731599650868813091424904158924533208355128914189721893053870021445906555999179562055146577712999596860359755420570018072966327673571828382854664482920721690980647630691043290705629247768060319309812439195083274242676496154369662265274877558450364299824195523596831589723571553316630290083753761730211441019954679565125665016326318461735068021545129316711170552955506966902311261486446671346329685904897835320981241772626762848398234276525070211148971175215398634054899651700336267773146560349289738374193988196776275433005005794190060290836669056619613264672634908439209240535846864889496108982029968465741918398152583613798183078876779596115755532840125170751064450240014192476746008347272234442736435196670918016617477141016795303110209849010563346570589430781185270798560873630835622521155303552455176151852931150853563856510724218487262552010881915103835346650422287396109024567066237600276481678884227142165337197222467774553595125922777423370684793083053272002207619070386035253809964660191415821479434532992101000856809713945474736016437685905726785349572555257177102024276820915010305103995603565192293327406761074962097327690423309755189470774097879684476562104719951157928244821169013102961572082618325010704049764091053707481609024920966605437110541311910977526730484292997870030328921335157062246854308090921551846678608859312772347419430095892615767114169378839746189543486265137612195948556890775325972388616182198023323565627315669943735958266657833984234936005990345205044118880208530454639305564775985930000782019334593803141016638541148647740895983168265509577189381289866710611455176341974858268665020074460592070532852548244567551184470239411303731581359267638470800488982274337915008751491657718920785200428605755488477828580839458683217707229910640814720956686048263952610552752713569878563262874204653608017175002697442208367172041623908112455061086452041166935227067110020851313742768657206402541088002046213658854667996026405420237424826878861246895022757218650382680197245857556610436458777780865420981149690299145091175930524097651575480343799760248363502627879827247670350179430223010829753036554616904227446198145129837265465889802600598901031838425447115127124811803232678246464210920678831064768567135821807317463597847521124678053873512325353589914031674138091611998893933062010509431254178603601109106075102130165169256995877618848123619892538732710293266991892838127712979311629309916375570048247635656042378921677714975489224490824001028474348311690395768880175123449815083156049659517237298937564166568108520866614861072231671218131474389872216412001370092957658029007634211803946990615157205525237820366450814813745874296721797766708649870660361407824115630983928715467459382863058579841570209994713251250522329825278883758408820140006962659259661440105535172613678016403913931404642621404644785953668453396198522562148621112544406751451979222572526874403264200013244745786395841958152638482030076597759074613158023460538000975631021661279126770953765468043258057163565946323955006886332995603364166961983790893860180551952609501946468250482965455649540476252910405425670508344558901757563340211425539286742406518607546703698576040097185381861687237357547089038584080387971391173865765727413732301180741677757600726759652740971257907737676368838067083111542211795618322441171862680960571420358699171390541867977123014974645640317036940513656406195109140022359502783968649337322011149868018790256813106144328750503642297363875796606907562674509671073803058209463203723033888277604633938463401869785301215730337127396051026119773678748054087693611512926931844199068070226722196007575514695193169764899541111460241530659780252905485927903649054877710526837651143661303353995791045195463781483068853037173617382094153448035697691801969970351740636621682249217854490180115161308105627969856000117875049691819145653722533871010113457397074438597594927079042678478033958999720651697724516713944137142337553029257221273944283923196291004558674511769157903036877336851200779944910630719607348533993200509639367377995355092262273566610130929762721959547455781394361025924733573595531303276192786281500462987522740120729735077387074321297283857548585971612741988538743248793527313511458125210564671712957886685395900270833684213434331420368412490686105582930624216492718551202378558285277282605362827198094072274225181591926412693337987169674165129274148198279978332790897057001105665737930489260530684786878895050535448978769740886431481136202576636557672503814904491000453003980973832212963990847292168520357211470768879795458060453505543610604446472245266373828288890710406926747020635621807858511948472127523499375651035699717970628920217242680353728863740761233225386484053907700554786399709079944300290554311275686957958671140521094007413416522182021656201720412981747653556072967062397884167060811277746871393923151428576034506783345072471364935518707609953523338876408762391485261640074864155540207226981703816621690422632390633469493816227814705917971334064972202802479699090785376120748025178920344304258404750476705417632928378573812529783125859914316198390048772647145283093197731915024230897972402412842201595562953931722142293770136312354656698321189147608798271638014737301313034043882047920176475073116882861116896493467307378473849691510105185315349172918732158351252861438785938054166402012813629448575856001097410945428658103562674333100549566372035732307587544491275214952729899700975970646047975627668064533564177921575917666842164819423470929576505591287256694065351404888599377963520871371766329236770170080691790715825525633145820739575641683116901377207017686666332048257426849822493150002040116046307319174343187568161300610139807952051419439592241785178677251454797261517126746790957361108184940232325749200549896339475870156746164904800329218693199997724445608761076606791323955098286888289584588121997367543859689251138259319969884756371243302449113083666387794168637600437232194575213346579777146898315452312526217815994848882742907595504558732493131779152412471961039605769483186212886491931240523032167030635657510960252023433337060162065776628571663488154273372508076052085267958192797729417505674572061555731664969482969777340524080728519001985549755043672515286758851999626762451388197757341435653956096565982232339690574423298857993401573485059956987186869327462649990375149441656603548356770322172010561397234799669131996840164939469747295237536109889521322987758271734816022597426238477756385333276775126094347654802954264750291983835533822793091810872238648530814211328737206160694180250402828915880767348979936026713887599624703873647196910735433896324386178991753681837231484340543145175993758970598874313478316659647584048821825054831367835676089371683579724446596401070147770422360394420892889533555237535233288489614002112631058963954118426221696489402470516307663901463733177365038312910678713330022165503494450579613040801105144302004855450987056563145396872672124200347766286192299915074410019207929757700376054987600449030710996562524443441498277139527995406943064325522925677641486503191089822402321385079565758992386043418728860167690956361594923494421884658390710226969913895084854989310856607753893143132014329267965216964047122859183698456721844585574533588716030170925917050015287334129697011948178607597007379307318277800602109924777163418589188722702203243634355833741751049851713753587448783875342554938065028274398277244312454191360455984069598888041216655286332189105096001719504867162303906347318512758924524160192772507656461896623483435035589934803019738276804035539916677944118562630527606136699171846948853971844976800499421988713320707312134547289216561999747277770810086557961689197931866848736121617768290898762632488180151642324600128185455729985007697086104433218530860094238953185478688723815404609993145111146378461919224305277042769599345385230724304195193796338522169443145153606757326402876760082653655166056794387644492454546318666246357461612528712353318162294500542202451763453152050084487270178557973110805580224858658487485559958344999650047264033425663791527205060483675517480857159588755573450417506869146930423990522486241488974293624373847531058538038986112712699966051343987139737456317355978783724519670007737974233588746632423645473137297748102482310779195509970974981148088554247283716312021181557383328245817739439870719572464746708160982745432364427360724216690304409813376458308717901562990119343527278630228968303962022501118889343200103589806250809203576592561734646394106437291941704159143062067388328320337145739100381462986010105052856258500226417846252471687638899864771411276160655209672725895277499292923856132801870451317069040818500034259783040434276631484471593550953520727232037394147751024582185608368175216686245484611839627656398981941330957834884922417812242876585846611485862938760261890298761480410411228591697546663127392786101165540958694581794320206325287470897805137821025619047877686087914097608916928039803670551179306163647033259360163209079285660143690616365696219064186002685858679101112125313034747509905450644320110620033807117558208582982016774309523895238839494222697082946569279619781664040524300347072397442019250258488177026919876881522623864364618811989609142113992576353711777303668328193469494864244364749111133693048988966480138103478648678620158110914418452230730569558514132179880399759620504968800825596158270865549549070361586861612073590199642166347099955832256038885995617774515414119730300438868592600479099783350502608710952806359556798177425566571217768702805562391963626525274543418302983074895853075697850355299352683665212362803324858646983734083172832411044020247758609131209563026272405491155170438259308560023695558344572106896877711569271272922033409251332205079753051203682662087636851325245722424230298649701795742579162700048941049752065310951083112017995963014583733449963249404789162282797531135828766445295924657094090884720984131139076707377755439585162224450065872400190903338727351515886383143871531772887935587825960546866342568834925157251154407790300272780039927628117348591193670375398393746535587447720964476045440148485134310254162166508845497883779734303635812099016828417948360177634899927445908830646431077481292768667355734184930983113948373866566129269771979877659859701840155217040950977482743435232103262669955416094371140459840388986892623531824491792286342603203682676564907278628365874121092899809957158151904821180244782496453258016223190027875669982195997999669176040420692836387088497610769441560016731045682668554340865513603073225833868606878021075435916091295360075900437619270770040286407153094675438822291576591782242230879193898678981476616570506688365163614346884338617899841220404148673094369822255322282587406508596185342684118411255359253952869482344349730417852489308232414955285874617808401417698534875573436597669891661860244412186612096558005564742061830207494304222247357795771938817159037805694243086983295745104746311876828846205365979646744942118259610850952859430957306306584058907223679891810492681009045568113547900754189053320346394341400297277560499801180348911316949185768952303013404455954955336999020866224429016801319959858479514075843167775856502116627116610776707993303301955174609853119372766336249116945405427074722384909697303319267966634823219955007371674838002819320490650450704443302578290153310385298286041901662640872759932584783442963026390563067159857616521897718145365308175006877945297794611374351682159358463230261797034259687618564309824924609478239910233788561893464340917728902924840504720547398701482436586015103297801233492997728022316901183739816382288162265434739935412894311961053845546646999787923922340471466829126956795749997054586411984370395672794756558906945465358769350425518091349784650511724632560527213525971017410431262158477667607443716070943254689255380188339887799405081394150885476321121336719637989626778291987699378712057964165298139509071406726830468593056981985141246242490220861924289981552155247052406231096116641234983585550260114281012917909657020602360215400055014544542398192978501587018303613456698108483312888587119591925724099433529102641868089557749108116066772676623065036018114933695192093836063755544445509588979149111366462814518714091128754635027497755954581619463040901975711337931326481363378246206410444226136391549300960764423783291297170876565901932770376252243228441382904679707165717180118466642166990547247863689422580919676733805682388065528731003431269463295733840690991951702929643007308040952827503632665920055747703954484411193038461140687609205684542501841823965714064390660933656702112899622921982936588221981289458064942428863698594972855559254882017896834077206462782816970305760624453172948436231951092889024959783556210802484318758440219602574465557042628761838100077913733935587292380043344510411284620079722728841215353922048673557041239667355014394598101231102249062390767408775420169139407134778367332195781374069195570250030638924704189848997518341793479181710553693394524687846369902225972821330644429316885673333531222614212995597800517414653951927389779787733361371759160253685526034562779556321971636217092005793428394804418864499878833930835212804894578390887687216718828030931637596817568676088183119106991860199404054025937084789469360466759562893486890902220252997057672935599603736635166588378963722528384857040869141466098484156718889938846628686348308611040932090091420556070001474200621053214511199365155906399527785021920944485172998455110628314999660475720816686200705055534871314329838533105378669218152208234564085303865837573324247924249140298397354865246693175130944355696046332054741238033403808961615119956891504034160374944385548923025935648584934569769111425909570463953976812376268782293307322825336334394801114022855902620733111552864001265593157442209402218581205906983592829282173537760099330090965800380224379643653697073205932170000206145144316216687707947204241903563832523624709588907012640762680951889557876146203364661761742196511236360263114644014718443985681258460073300607319765721390011831227869173380685953286281220129022340474790929032197238695589434220910987500667398523418495070327282814467459997440641430901191953737674203438779611277678854193021182942519157992588290476805127513634778663167281933404054056799517056825328574627716731629139812873210996068680344039139729496571707082057321976557670167671207104286581957157968061860458484422954461861224385773358966436796083288892816705213404950659120239379419800791237441546827089647204073339057690062519509645867523364244408478305428322099458934137644700295478818471593710465398418863121831952876528700636805849079218452532221944805104829879266003512080307324430916377412581505533670243906599027916719896047676528000162471714230156592292058389043622934793564095315773065756630962358746294007114647539619980846065447205885195906805155731759945179707606130032655530133217724828642096870554900506803418704418788080736653325002279388385698963954041577101345523302956715021957999101228924373863334081507470849713909268473636515931258978295693739593239312023912447487497982226768999124789027448056407954589901813797824274255749120644415175336959561456299389248041673184007995136145717787597899477551792192653338468376313344985919831768826865613384724397895845642183284034795582110367625761944471189336227377962670588637372204229629239979005619290268040291544016805413202688408622396313528882418324586484182207186583269200262930992942240343661808819781242626669758286696432149833715823983472025995736130934694682893662303705691299810073609128251611362868843580487608020944200450043813494546882741523951964833767138434238377999113490060085723928283251335079174741989025934467705101968547609301527909733338903811575607979450079330652189259152717226004258251131464359456306536817549889999258359621512222708322777759008624974367665527502665823876114709489564496660356256553215786838374793041548792006723604838725845858294165380840868117454590700306302423780302636461674475402448703917834005895006832618410416116194350008397494217800776895362682187535319530676287293111389487477358097697759650988345995705523148003787695242734388012894269714121955984181770427120927739269832217131442822861783077042017680969507283345949921742189345278085330112823730760136067816806432063016709031068766062641681948620959071929766175164807268290740453668668100509643989937205811490323077441230466270307356788743797936594197948623034406216346048736099704674802636001555875058447293206894159903705894608705331121314793738550476551409650888794376985774678968501038603453713484975362301589162641931691382580307339600730445618122074219686039207293165814583141205184543111886399851342659204569795759966827049733220105673584538428070693065066877544399469837649442403058365857493721931663844282836435996685889421371175159960790545997804486977458571263109985844941990204744267134943955133193378709429540945670666567045627548589919708272043737505546757925393427468610756412590541823688853230881752359936052649127025910055908220200785869198134844150092794866606400882984679777769912208415425287323957490198868018567376082811522175221160553807098826776552384823816878790378001972407243997282302697502223139349211966778560307063715635535277671982730317721154248800927629613589323798510063404247524687774618711334646673502986425549948417777366034345945305831206018944265612244737136840982607954776113563486821860330061383837978701184126374813307116558555739662716727625093615072560312904202547620230689897717536853988442412206956910814867713907777175326920151691472165534773991671545278993023304346949850605050421296527945563969006699024402266570798627522214131041204191095121041603919922678130597388107276535668745378318353845423579151296837283171686068379153975844142774638591774370910783693486389468273219040528715022258913821797106737137065964268693297096042751283216999970328532312939021663595413922616312395526581620438328729494421125415298093375994966411953615678494122569741325495350306224326469400880361235616150382575986632464590864632248002894569276863905113080279150082051532740239727206971527060660733827022039503388198148274304386899680698796842721758064442580585136382628919396139089622372193185296413139617969328923745320578181026122495005986824811164392518585851665461094997857203552187443262344566226845155398054673101865256487011484018754245880288679295518807332785487724480875466452399934480699983801902479654520271327034893277990096989915982002677442519218972635316096825236110292092065619640646977254496653340701511800958422393714367236629818170129096739114558878377683136305302183967766750178883295834474428729790625332605732674908238689549435864821137238829834422597409940199875417920280394897573412486365835597069405058752524743640408198012264731915659172787252595292381863422801878224856709862170248878819714761463513153209942103482398634616950873009343830208400633989689455455001295231407619316591136077502760099864605673054282546788275203571207098155208774630137841311253138976673012946757307562753900516209986082391128270274940512738457120404718825562754286573042654560998177551357340611249405288383565557011846873890722538049022207551759921238827446998705829019933363214166252577368556441656191779006468845996237734654760927538886564734641057570540269447964531552965433524460667611338153932205617975182000079323267864394253609170726798720021052575396070682746000232988354527896653516456732850255491800036923854912232011827019861487067887588003875750872513869805314093703146011375404815818506306662194791766967410763368756353968541800767081786029994112153755729822776417189118596467272569953396201821514730665204206088681762553774228937894846151414206578160120157966171277536996764960403303933132087354763865361748591697493810371383582008928302266868789742258835488059607937956237176308796394341140979351290581194234577997945964511639586309078120439671085448722613437917949312403427966108184018012351663393075540342703386671101027658066780143547640957227477299001248716452385117587142813576531081609827112556436070903360155184655643511352385806306821294611346254538567314599007329971480469250096197534013794265773619766095166806652232654234966970993483889269499239984747575524860306553403376978257076722478164745046896708279172757845936245643049986886220125365787189330721364968793364248298328745462757322095358886472608602283794606807168490335274355297850501259607940164341040906298164814883761963151176323353918762369009551727543987080815955517956023388422356728432344879790409738272026411123529230626401670269822721120749807666322049252401681178580897939401211600669833700405306492540740786559294030011241462491727871757580799651191085381956779567754370450671216676991742724413414667907866075996916988053920514268849330906872555550025700882342838740042817316146745643198056382411618920741909577951972987021717289727868505443777087403541625700471975821414829642195783529095701015147479827445388997096114581566826856804141111282078181510585037069624687630392992412894207825568637347956402941834816481819713221483344210217624584049720814390445817880785743374518014719829263288500640219369504158785134938630090365294658408465222769368222475931347557589967708984271729041672218744169293752861449772295557712789247918425390949523672823615893962793182633769476446609958879785791072561894909389568077908418577004226133581792935765691497076119636661045739412493910989882875558950783549679263612223301628410038069042443381339171715480086879783748774342067438235166857861000460007261920508101272001145754039700369660514918090677249191425240518027657746909858140520562125328576158626572871033699959516999613399014794411539371641790801798445214931966297943387550981307461220202954484422005093794894842564635198157279231264668646275994941453691722358671798085598794515554528069857567450049571912777584767529101246131559273726292106593296194365301566777013236603486307102441160583637295616055240200156146586143505811250711288991271285693413607886333196272118097765271995468143572950912551469560362218042551753582964350720867534856778529809262110567631391606686680422315270702491945261764144697372557805016978266334193980923751465143887231649212134340289396888597877350146160276308209922501660788863249217618361158000037155522446351839878828762110114089262873334981171867565370632495063526013693598474444790655661674000476028036015647690067794073964611666451835419833038678133039319024342511864569062863768726139433687001529483580954182664945217488127941383260924100052781017060471296863526897125298406355933004787973331338086263829401164482916937185867913555658528481374344464144428550601282747041313347989075996209809738858331505707369051624048651564240240300518082493891564007550026100685327367453927339815477770389849034750426874002479930882237552364839403155600915610294941758504478288862302902364292816075000386020975017936615321903598144431422511979489797210940879624609887651955360127957863830107025968292893353668113596774040130782167731048735236448648627047418662370751703473930137928180756772186667503797440854603891418630997514198686637663168852560389479598330945883698536434134962907674232031355032025174430016526925374704193925017955279299496280534261473276840620510251381436227232420206012641610067627204899798265417950534506429452969055016904170522087523454483837128549039248784654835504890649713808662977101427369680507434520673402552013030978862226809577321292712179947044800034853659159958321393765649326859179521415991022268963496294533050960599880097323764904749476461164801522520105791909385496534073943448975785794669493562433829108473506461099733756612286189831075186702897037494327070879464559116686011206087151538162626967634354173548179665146256154669141473450742851806194104653514055403456254720535474389365615808289581520729204715840863494432631103713148817706712344568089765244412501440228381392466988417567198329534880261696282822302480477948457345896001171259191469111083197760114593436083503588528696587934909404391371254808299873611523645345782206274163914995492702888368495293465148916283076003352503927193314409385845037458774663760979137438705881508502558435007451984893176464874382028611794497340458452724193853596642260583116896831487184558610439443419446404406509084340468996106092212590520451986510566251208423530174832627624438168905625124216287497086973020500655057529535796049305641847914742006019689776380841316165742981186655027599245143901564072058186952922788967307206068366427384399642837741143226319205071306731640247222609065548533929620023179508368047517803762150075304199116347980566503805949995802713252849874925562780105118255198025188675002854862372530898952093448108426282784457968477736267209649092408251079763866754245048227265413275960093053533260470229459844627505348825119857092827259998403981686710325659983395707276318872956481633868429241149911204217949666139096071342812082182443570591427346397891003595414407785607459305405703371061631572398843848050722320425346084975186237757308742900137988461722833155250041936594159872335725348608936106819155390379299778173862945176577582108422994738946054973227333175970815994122175780202723404480339036549102136040048667805549219932323537469795641906422084800289754273822487372195068776986629103496591272604817371160424482385933779777163055577554839145529240979833011824204541112573626237482664419937143545784532408101864530113756953680154210656555386229299295405245834164122819816225642036126019978125313950895751320714890300120312633778795905185246111469373737716838089901679836429288733756772075094056752412148553701337352954918873268378064035246682432140584448543876748773139347800928170002321110233158535280776146181545544740266206954839488223439483236727645936247145558156683032572891590498182426205331507827698315643687980136706662654636291079828997381399241019569949234872798442199259826708014517023476483320657570616175791072737529249340794370517344157195384718008848936958681883504939865301414381612958364142979776871199290930391840622418421415858810782703148205845356765209795284746428228221268198152577232369063211576258498963901645388984156865838252454781101744760373827757889584744609827606380354473115042097146382282650609875656582048309142696897513483025300705955918103684892100221016735057036183139006984834936852620611549368764004333934174916445566437021356614790885356249863282144317445497585171939965428101409630374048795951659389889852817697590455781777871585642215686101545061829121296519922922828363770796095260257483127957743860004023332121071115608816126352696857826949966812859062862767052376655292436173880185093302206411920192009740935903219430594310679996457260043429292519255282509202829464059939903190408960438754222080837803638129203916265697890716161100051444329697669233423480130714753713193623838350575260954373499492391578385104689868340241385054946762392898102447383148007583960397343240149283048275161469308106206031814385934235873190324764656249559076727106432598611794401914464000509995712768912795265082141949001580586411169784562810997393121602581367366821560819201238501138194534863766918933040456220012537280698841985561137733816237540771670737436004333385135846797703777445749832119324840232499479802647981357757929687684055671543632453722600783713972105310598514944187548620480694586171611892075464000620069443262066297908124731200251617261501018791875169436911716290108425910162944952578310440874747508900878677509029039317272514035820157483154022936151083252024804991044616509709208791174346307283259662309341363348398046045893972644285551468669250444887630999019149042364383913639581810037810596540472610458554038105727779037955832408631545370580691538001431123056694099558305908119993330897290987531038089147894088861890889603790107441605372564003510034896470044206180324526945249562061004609111917070302923270719542068444263379019120379436122674581573580143224562969498657405524563553478665766848793366259670646378675564590555890621406130179962159484224360440651509434961138566735798722559505313562997662591348537174930303852293504136423723799518207864570889698717064683749687170628509202983234726056686248021601623229674345647493071016463189396285803412086160745341378928645453370369964601994085156644560986830446347399005508396998677085031336260124196084088649702625085745633852277667766310497753108014383905362155747389122989967525293704965269664731150407572240407405328753365990380324399501785951990578918931028867903769024875497292856262668927222268243499272916138854794853705917697557838140598865931054862820202048328612070936678427487024107472337898123469066761932832342861157626012112751620178711514045594091961065775900759897370161487077129641214855343428098946241135492603405380724141877276725168707863855013463167306004878093783676878516321613109495744718137425450224275424636202882765338101305578936393080801041548432053413835535502978461709999834806024411388025845644869123642237245322860424569213726889967310908759540090091434943797581082453193486275868277841811621037191703416448317590906437755786414680152713684195486883254582152100631696087842636462151694974843377708706186664812251641700839130778988079647034151231384258299290160713563728488105026936636499021446891569587276536779161027431037851816889238186456700780953049537325064722701168538433363042567504611937898703826386235266346251684969877737777834078399253996377774598842671952355373597911083904084421669004312399299412613284894759590775750896923125583396042560068854936484855449437612031753920004795923586523004753473238552002594385512461013947006274391805898776375521900296361710732110078834889658566235516486836993785974108828791332514460518304188102571327668428525206583379385115678992854129386147370112531453885296445853425285416237325341378463620154015579527936348910773992727873720556015998556398320035240184028779146263733870598846375062237436180236847015097349226105079683273705376448634553734110024171121425010288216456353966400973390957552922363085743291791363582200164739115677543397709036606176603309627832175670776428572126082265766791374643244362969563674234190242925680163918444000768891775257279216008637539499716616926800488286067821686768509611549987947974755009983497501245820919217834341058275595904901317271669383705296388220529149124465933752239442914299255727027626569035148418105633797222374579738683449329991843361289298176662357052188697167173316575863790855024583206324588195237833455812217097611013935326969084298189232051043764579851760233733762304511136989319320564310408115990614716299088420179159437182658403809966136541399182003242198081924713309272395670396156024044586437511829619119259690359927170295069937734978871165919058563780169020597917207559136347834927122382512965649149259836303270934880772564426051907747813862522891731686359431285977299956334912143799401413458677157785458768909477825576361078572967127438059773298208562495465500708237152630542550633419183244950426986951118623218527214313044039845436784433029971446967765536043208263604352675149008538709085689587105669454381986913438726301311501393360922678934113583535660361691293333991610639836551659114920321413779945109625983710104311591361123863172812452822664215920641293170530968223584526624379227699382946817356282361634560119857188424194661880019746713621991067502812260887183425149661914756311134144863865530632235874604524389601119764184155983006286668014813418316967251706152933891109611241640729906790894922771285230742992186530348803233129437274417415334400081762681921360769977289577744772720904750808942155539266189669180204342335350688700460663715660811132102015954010805605240088549386869412917628109713358384050432538767005606612742924261542228327665972178512649172661876576252809324460404941042275038844201975021616559532104764545073463437100210870509854401656896940905947162384592482913747700149845608254866516928447489516589560937804668045123823379310803753798911683740703797646758975600091219403923425502122940487273930387633037629465686413682020777272895910512348177863790639419089201655929337895804669749115615234163684866522294868727619122617403917706329288065430663870862942647431749150726371245418789284610580209756788236111430382647039844316567772522974867945947053861920113964349767290318662848539478306976035947029614998790150857770408350289057175633205658230904310213270931955538755808748532119985737826863259641704168919460253719867300216412391163667921757763968259559911072332794214007713617073292134888580331091870648336977571731172743680890536510891108393754286265953734234868363532771271056754788847992383316446104854257370366357196829717702590511110972226876501759029814123383755214737690534175249365135946802434892769302980857015892865394689661178300283454723773657666408078406350361290353280550062570320958260057331002758253189469838989903414494056402056079231821244711729901776891872962958717674809337977593112532138123794851221411971291044765181324228803236780972891920347977623718352388306605652396136079764041185652342060187787600730463415662225537862245895482855642826867246605128378652739839055439384634382108499451191936059070941982616150001949093571383115553514749986228219338070509749236068798308158488221671541851135386612760270331755071373412410192427172696973086182250023508048572498103841109917402616013781624455319505374133814987622629587545678778085959495456175002245099966483526786909951944961985804507453924234594948535152428295654211028967676453521024444438411320348809012155518584831062659264120053467993947311739311038754068981649588406828957151977993843311039546386322009737293091876544881562618491752774566902338620417855773069041492495014721726516668516456757830024933239072667396672170321943251955593936385273577880079226116169399597654650486064676641257862809362528514736609311173407567364505934627078061793878904977899248619823406601755765334433971985300470275346038971165639135523068935862549505799570679343024982968558838035362645218624081290953392744219930810538286314574647727581994252284487805625276531595380389682403350779232368536467482768959428460316329356225671128896663075160583718324909036993344992488874577003672880142081084608288471633008711695978988987416819236687629769775126819786532179046879309741119963604299214925782562287455502779047301112217203806828597989066694985099960592764404399620223395593770069887045167934707346906275212550595359737962825733571409644168922041666452081235721417021171125986042118231986781269379040474099593791558114049031278743135027117935098606352379261982200093061116573814263606319164374078033244852129941744682249819672142411053672146858349824260273158132599456015427836211712683579260969937387777123215975859060764280492833969091867700122173918677727467491662143251158090816083080416364713031214120834188444249208836092384162142373237682584561791213518521277285490463658825651485043857326765948832389220784468828427464809824832367623507406251059219562094063040979961948627615833005737666162133400955453922434219004963113479215316156765440875775570055672132169372046113231541194518980065489857795586329998164834227264209450219522376127550033795749473237913509155503316123385205205600413581134306409331665154076789955685934092587457260665575870890914427894872858492491726718845721530133830910461350471632293501620237650885771070872863369720889191585272059750473714134728783131669951250086962293698564327781808485574017343798250071557475580709188031576059648494955043447028763838704115229753972986315157199104093116840145539905939547237649674491905355607372208896214243252002482283539131465144350485275795610303840970135171121899704834389761724509043069783006131588967688137656782594737320033680208790999843425918018143677363484312325785250684707618837118950078528505031956776929691049129499725156434810694789095464039673887542037612480990866178017258834314346714054632372558755288996477543651552427841987978185278746063040000511521939761468538000726161844493657027462547626895948661984337348182990596671026876872408112702483621939935919696755600594662665506018310331435148815604741841311954866058604566087095336828003270597444906375072934111007021662690774347354605947477604028215907921342569026626205923316844602084123607312300738300457804116442326713150857560287791865234072001178014838685937708281946095218941753322393003171420205667876189490857275927414026289263822480996157674750929579660318479131519017535490769704586310683955988778320224936020216230282281977066252350404690482271021298717057687326485707271991716443570814103379871757355786075817996641428649354675073570075773986590000409438648846186574239203766001969980352571668323383238353545776249024150768694242385028364867384820966266059648569489939329756829229479277609858367382770828107221507355641790026611711069491323197448166042883278045703038318976091885242706007975730398142889788995946431368052057736469094900366311090663745318063620565671349881371655135145934452226364575061160147099478924291251840762453222349703418679837030692805585282345677990256528980133144761655443593025678276798229423579948202614424129302908356968150055609357042622321337222880077549166994741789443298137941306385138760607167321529834988949635030878791883612928872620147102199391387533390207908975890209023038480727622519751345721807510091801607627375733434533389776018483007015983874882042227789404078533656765501235838477136674208961153015144977957784683618234851330199231431284582780880788309099601840522636134423856268566021712404674228982535017217223036597906166348584629476146816928227116724077415849149766435587053355360169855397631235735699869140739845239578896719476270633472259161029709907424939485673261336626659022759692939594401028653624330104699281323059609281376225344583272336564788465720346850846562768164508206792347958163037611561573757104853249183299894121993521680226684800080037047688433888214350156487288216732719847495809128153501383739504556652510984942230874237194482502226985646253373693564688681058232173547931989238532247942885825017328744624071862712470705266092600671181408834336110146240769006174157630832111934694526996678454807292813982196458480247213982120420322875086017794660882433974759392369191566124091324572282680145284124387531050398427782939139500552441442257350567726031040277241030187482213497431578095274604201749808239971524958599678085664263687145425951073372708072934512286143314332285611695219082587581511090017747607485281243735119282105747628176418773716477283291490253336264623703838555628736437706912448901677673845515095679366727314017354347558624007268857102541912145457785946583294569332350252525492312821303808994117235177447206075613617929012220770287027793624895659767413492119039585303834080659432563234359520019129174616603242789287442671022619404353195232856192047295788733061419803680683494922578502291900563703050142750508431317061737548494637052907750012189271255851137694739936532431267836845963844726398505628352225914502198849929710938366765263181070980351888896537926725001137684074191075238449859514610727877736195695972685504917407333649805677368458841750132147231691442832846408767306040868991847967577288401614153640315865873644230891953663066686707580155113978885429529801759613638414903653848496713084893869099040979562948607282471877649144384191978499383142418686189269402170661160691609445471854848288717619532940986781234129568838741011781713905893020384880006522850239949175688050516056046654974891581768225350678900466496770784175944548503267176346449129291472153675820250992492953293870493466271508080425365404018056625593801775374811230664460083087773202659597763851558050877713345483668074046337457016678857385401923751525927556574657346720615582639258704939943023533304166303665835358196539644340216619865246579894354107665557949436515282308257900303017347633721918989740767681159559555688844404467881213192700249290773854389212052313923761596435510472684953393294195238117697890000732731337061826116008153195518162702846566927430593851429607638013358161021167080120357909790519227317380428833146161587871454706851644712340955463120546558631084507603098001532172946485371940275353988932529305415016065384679715929115854724967087423246266208327601420373796877617647340027589405580158093944087624838616778380556387942724780159118247358181350341475457109773568829891527136344628323311987183713603017222029862168503741537297834155250636791154329183672647907420518953605884188610202258544479397522618981644591825418280590526542052057189818452807284767527869211654753566086398766148487782633070847843364161848643312244906523892074843463952715070347609317917049991458315865551277348851649017629773938994908746875767241626377423594931981194368983894329659439380771296989126968343648150877534601432901762424558694023749936794796601126423228166890885370138979402838428180309259005885015787984354520714403403175351215962486938294044415643055280658690096142558340643190451509028120084989927483038770369483620708900499106645822436956623934326235904776890142951341538893954630981870517090749181486200475334268080509848384912180805307073200980636175989828316825654349958798617512989170420293019502439154099170216381596020556534292357556838800624505053564673035128400111700217111050434549897027652588575644987816576900400260773519302429826702489471334565189201588902889414861828752714448955643780448475195760095666513765265385000438250893637154948865987513157016141668554927115002543242699337490632412447942394065329861338011637748331162073417771053472925110922160113074295644639865901487211475526817621012031755512300229095224816485548488958694427037830879547265983427945853033445845125506570457623934384113378133926976413369371541486187812577237885211423001831245034211712510187639102385685118894645688822195225809538727437729175157269746348524948087100127641302865227861210198203564599485239444188825738196900812092063934744107118023526619871317214267103742657795045137650316061805966719129225970798782024975785217778600011630534795934281595725459377331214112861331581049083224643210292213772546067079779210856052302039849040314630273571003181800881389434849872112204085041176471902532394620821076501350246196048766426817051520584995824719480541714759153765675956375178373561984721162108289185606487177829632774021050858571756127089601813006597577962488907709130634652743334339356279767707505539203439174115434872839095714265784978497146837074336817177295693273932575669774980637451657527716444132721057886035123795178125424237824429947655045528321118937368738148078581730698838356334964346382680170942452776680444677662402032102709720243049922430906905040797656771777766904441060549897766813315503593015363105063489761031370170823665829522421986894773348452586356644887751686392541850689663735607229240722481206667232203096532451168100878434943780269919717882187584815497239411892798914581977405696041726849556700654293665164951292985856839295188025322029742900754242586640969123291660560128548265434840345995554431880985538939089217607278228223067879031417587804660069006122436390587625375753698240490632801906756911039336906540575700708413797682108594816847819736525167145989540823762782275895381841866721172275802200631601421613680653238992295192823886116639815509680200471772727128055461219182856116583447249668563252607499182833661730990850750454404147982005062965932605774568611210386655232076635042770032613908598815629833402535192789829788101509725359647561475515957508287579401367906052036448823064078632327497005218196778918565026720093789976181240647714315946085442786795508939936279167440024142743202545165144481042319081515252647429425446924191798084761924409892968787826561651378757425953207229868007291977696810477019418149422867838445970094864378390454408462437609907849085191650143729638500330236329225561238166812996620609942192599736757507430728230669687445940807913135297447312894292417470640171703384655678202296371326948523624436897046387123642825368369382091401907062352079306804283394931799494959181986991685017276303800813349445854784499468664257305120351372120504451225400936675928524386072977714741562099453823514037754811760423355056230603346704656187986737306424828397592833844833622824689072649090673542290494588789915580996755342485843360278820755857511889554301617467682893074536939091117219474127930425412976767847971321759530787330321925710691937679426754641518331275122787396845033156813688161569080894775679799246407281346609386859489648200997293310781415399291185063113814849014370979982311237114702843507163529249028517730429414141417696133061204366132870241106855832476317380572037672986113946262656812405896420724443366580790314859414397832212487300688585648812657452843045256472307585457556466594205753725874995098299593815525244484649690339148975437490464481958471263147642226326677126599443637051636254314953442136259177627741923561929255157866465090570408935567173056902460748339819588504769228956163709487363825087937941498230247359665886243020627878931053649740222142235572378576456581051905512040092560298590609179625750553902133897955213453350379169266261033091341776719641771461556985882160146363880108608946580997194091632896534231312581981917435224002832765198532348630220808074505978969997469121879280002031074862152998650864223768187894407298002727838186256538719257545167980363454869725475744158974827253184168608330462150194462816733662200395231226992871733529840211490518687599799106875026810397760232740096987761566193197553188461177873258470058376775046315454008199292445236539967919001237693572283906420225297922317288440365423697913499979443473649359435829624271030452563342865722296010451777258678444836281715497747829626509351097203776695900876883675195703359647126827659615772933319431030543244013244813636299631337571520418107909276818465705613381642083652940914910734339506604965393974624873251391210615396225222900301092012286781192099310123280461689923357248786393578346959792067869850342101261910972285954514354788628526082755413769003021616012527327025842455895143687770027359838085773623255515497285039805651188532778238088785219120294925857075343776949334526311469365441112030820911180817316190481491905218751197551127095577059165889391606475670515602584112965276639642812751510440256566678729902225064909517105522149208724050377524854887987187787638841190050199028251555324722660440422299835921271814113925206082994501714788801495048371189526888716823221663871399466962416432339211207439103687316086157896382900110732415776941247572174111468080738619356317391513838130430661789673651823046366888862136760460199892276856936000336152874753195229347408877894276963240776839759435206013050755814138206756404853560622584166339570688448707130356358467970665059146078205809840389981964551835586249296005015385947831639120114261491737094974114701508045594416940811115365486575175989871552319364073256603779823215376440588649977953961659873608458589843879046450521063299875645533902675282506917931779948017928804040882735561644883945631403971768803894228901138825374761496945560442503426096643801683954560555003848352124024967977077197647917417201492725994426228290412138004664092621057898696281903177178873538975600539505858444813624718072957243907815539017453962592641989096417479479532080966582823567563796408349236654071944972575267196736434706898687169416489650518505304179573103878408344842502969142262670679644291480685920885771736653570740659466850664345278182451127790305741377589969047222972252477902516248351691868873017345661969277025115225828613667830310854035670384775816453978919643624245248972013262591303096824458858774404045104103487325368608304630250814065644346259872944473164269542736664498087959416616885590293371354392660656623335103758509203497029670420560960361992451032309870600956336396212888900071879356244908820389395703927625936450469761493703196311378047790379448471078265164007089045340752972956905154097160327717634737364975918624276698892150014123453832275611531408031623295228293556445124261769217170086290724763357420797927351059721904718818166029380001404844175911105421540119527057086189616937825875685219930835355951711109424811467845647853617933614251293553226560758714419068826360393207774691594433322537887269888422996355547126479857988313937089542396897809581053431862214950171877495495886671807763005234843668558075825733104592071555010564386343209094463943172467333263829347160905160056819615192551768723138580118539353153132370254602703914647366251529853154700239904431795698588718057598376104876722901180794415489315479016660962131484293194476033750770679376013497016970898224024930661498279792883061161833881409849119827504031887376366024961987028664366470520604557708553899728346499047382364151121938815346634116365376766904228976825509895003812949661248335394173345546289691924926042992024096666604490112896171362920387608318799711074229874842080668403947228214054893048436781750975606001177262931614062366721520679382129966864365857713254402139644489025313480703591246560698808934771395695816439948575849434662434763598849174524237244923737038789993788053348089620882738003082278770028850307070230225362968902603827640766146715750218216951816051217636666386123092480542051980301762090138771371025519527508831123700577263522461775071033654659962599509108229734052346943272107841173687382532813555212114746241196134686979362880299371070648914355892747963071571082207665398550005205814248992572705980765631862020327875186358735596037483822140744612845971497374580772588377538796180556489857033262515036312107109270215359811717692598746700781653717670378811238638477645532176934061096138803118278181162423522318164341826091617541078841966435276936544547111439834311224474775002112921890010020772919422903108027575928034796029673352666680259084386957827433271508280953162483829988064341458441739973603258493756101811271781457008405057108265544495571692313076869392021970517440295490794454129551663000810003162805147425763639093104298083667727068830240779261409172826950462490875021998170703907332699090749415928466620696145175575032920310194831635461597436542108830452017699185217783411935173321667362727890735095103860194359163726329073008755204953613924847039902292921978573316232179364749617872049980856737629888707257531920953672159132858269264917650358357263630614886017290721347748585987937583082677607528242804030270226273625387042308730586649742748861287211370170997106928878481130915302113869072995438101310720299896948564630558197672683218692951057827419392117963889983179881082082092988209408796570454640480772065088997224008131723001909950077896627023040024333169013085055831797569677803331453359183600896427477293797601985316064051718038807747222723504716472667904836080302938000078474460055247286279033344961412923177957685095899133701387767608408385027376191552384343068271826091237713776862457727843082313550410453788040693388962953673861518300161808846058066512965158492256778695488347767369105967090569679170049469663313038245776572441867588947733057573263689859931922788414340720039187983833139587706573359192599991682252671436857477972658314912948150625578633329483546468439606164790339297394925718284360634781039867139852451423386536322089208472448065946439099592407664499969570261205220878922635221014248440502570286510419903127543577303089776352181361475045200311992876782138678262184246957120199853642366491851524718090424195592409666077457961371926657080287392644560739474622616682293401868996318631467245222015111648102294602738323716293049015112070156256891526912818646733698300614445168676542570380788502411918829127705587814365489971479176678341355251243819709556698698032426162531885041929291072462542447794204215382132417999980490364192961707810769259997770783365281805323806429788584251656152319528154864533503517935732278777419633420716391563396472061013051814198317193836000338513830574439823440660247811022286286636639714282250881822285436868053058480834141090249592475227575068683050696567572207547006379599781317216772902255950533688653474384272254102439395615763965687270083658791006193858490634508838779087052047181832323949078890769681274734849068185315147427383833695352757646554553240258405572605645842366575242317929248325544273970869429126068306921918812085987522102364513995919283866021473900413390086095672765388800058271838957728757197929371920355264151340526279138327049866726566096424265262227792329414357949588412600632534227574834645955922750780450475987483285109187605480094526837369863288930491708775263088881695497733479790747621537109987777765705169511744365804328106423922020610766086630107879994707855915811676334599108894864731535898163681891805584199213656710359260170908739259488578969922953268588223845830018069808866508568165333768425626949259924486084984734331290713525784541241538307251550999942320623161383953216602309864163192534493644035637750318544972751062756039487153720783621244397626754897058968014874510370572908594519708477926129425983444476696819657256003785191109376289702695988272529192049893342295658774955515945423732057425536550119551471940562165434246630971296490828567160381118393084251192370737207805152677951148883445621279204607376376067646071472765917794962725256182932115789226327441018064869699934240486050695773917364655038950528624531103041188344268522209130448396692165095641012418838037089580577968507022984542074674035928433608039201628192578016037296636084174255284883124029423137211043902268279135630187978088088803190975719377433228621442060666802682797178837817608684241870304850440409526322913066566181111700317826655136422258698244921525250131046329029767325123154056782729354259132224866626066215871442470558897185091151151736227329640615943449906216737388820642286976032506337670713103526677167668752611584617118074231271098038690050608467685196323387112792035053979606480541893616143796381288134630875495235751680777407196513398662849991301424432007328271775655979184099007783147117544924152425478422738009114226981236607151009816095301193026323337456128500268863219704234608442730360385727450281076611692503029499458085724228923322467761999298568723402767535354539808107908390419856685353679800115680988250745942431122402676885803786585750671194849652466933779544468575766534180920719213658271697792738130212477593220643459501337303961969480782302223006947298400542948260903835446436939718128408852460007114701554674361010327031772099220714490856104757543927820602912669451306686232186628561746600592066940730134436955847561544905612534164814808672739527840434193329941271079124040817276006571215920578836138734035011849668419400184831787031447006812316248707146931123175737934529396852651606639736042856479066975057608712191084100361158219197524464990418395772632456362117508772937400638818095237339518649749275435914418824069916438963432756642546931671118963730949376578329551572041888724022153291166128135367814538528898227656903928750603063023409134975020610012926308480154874410899078176306453467522176721065160962461864557586982232870585856833673118366339391434493210624223480088310581757095930903475658430750350047761535852533094749640382312973880903125914194113450345617291489657648288813401962636847805291721045610622853906434293103784893988107929406913206096665222386071254954193440299691823317149653003482167944463421599265829773745445204017708535458392570613342715368283868967476112956891380989602086001687744105855939173628556597585660045416163801771133402258205246836642525932045106337494854360470537475016550319492616059321635048178600279836829061823954993210820758626351783420552298684420584408255495466837424805009011796747946489437170348049475685826934188596521794055338782304710352919711206753286444178580914126807872425906114783609825326706471656863371970058904141154990086095489274037019888387588216270944620981542104741747547239977083330939353024856559581815742070118663582361934011734292543578125599772563259302299705319828657596380870161163918080080564830356106817531482529278363948297708497003043415017666213050611945264353916536747394192753541348977230483038351356036438604617593425953281430806774369810758519977711916178526231185813058162677751881347144389472226646346696866912010130738171682340526541519096293780659389786705974975163801400825362005214694301982271103747650244276781577540425202099390381313340155330661788236103199626909510610786975032952889486762746134320679785223119704605756719821324836787827531492532522902824683757343533199628388167409561652283756605209525484306050998673059380991360145916784087885130174316949468027169435791286306612043212040566169622053282028725986213909490687485048818540514390792157196867728693760668166552176441451475360719654532052760464046998422334403919053395436475767988731388224622621434825999842293070479878603588106738440140542437336972473544247200892731659322302967248581233661438572639642495361750556194112459107308430248319007449933685113877447878628304399073457685424367899116124711614449293099917436201489988748882824663986448786806841229286905720358871464218129439515387920594137210914885088755936930656888978442149252889602222411806758985674190966538577512153329139445912610834777772089005651871993300492741308269496072792039041293346875699694591351839364231841242664549798562372120339881966112719982668317740208429813550311121527543832646144080608875877556786224936607841146587878060362719750406827438095718947073131421955955543247481495740961993328575794286822795172016033834635265261173558144144844374084261817787940832662200380322868911324009187353794976343186694383064526085159259279561478116567602277680637329660064247579821262236954934859826264748307310549578738971469745502666788543435049192930862169420642519340242461672380994996685658581083415908732153339297010373471360920026724151062514123698227296120330942296574341016846438249942841867209116139082531117889453161431489089460688328757756886702770850638156642208144309286279914558948355993747567362379246181954741020254580968116076956435730853944963312910756258406152075641821300127987193423591828457576644648494513836130999482767122870774051419082919550742026058026926542208696546789457861326295268775569850210736307448008380277807330865285271743074147482458838083775641375695184099714197589465988291388734615898716250486645698548851054776807728325771831440043694804127682589272624202589527619915742577182870559425680254095891251770544282140446022624134683908816020086788738817552535500805497773252373413427101302005948513719696163307255565168128885406688902377941140756546060330701215999109543399687582060076335006986008692191069695491394229436919302506085573005938255797802071865344776251811905566687197480016023589724772076542511037302378217289129203745160134704352464846543459764604418712649335808894419987245518732093879970056224906901122769442018738786293230891873180501152343433296442596516810748511657737551752356331224854947797307174892885394332249023578284709753694769678776656661934949360053965484189167346310133627585633899275091132290755430122075933113538034287730392664055385762296107766381842042768820309026294896654527158238862430516870020585559931091106044220982534009513060183797877629912406464741523076978851233642072597050172471796012177891863799463629666723024882121878844341602432797303465002884018034971580941812394995335809650497177448219956541685706494136691720533879235839870967714257183759337312899174933692489154009441621481185283146052350948037741969139270936616285498760813522433075434352572596285126022373119490885833305519670447132770733884379645047157695135700324748590794910044196131409960741030666463226943730152850984174061249547631831902569197236371807419710184506189284033070608515924633362089708543131964651791381550786549964850551863932292278364470367394889668343662593305122245720655835718237873170630520863827825923538412136957836805018127861096280114519770474821572762641415559336719328141212894268429311885792167224293974057848713711578045022933528356256309732452005213578796997261181627602320451076594038678725643980776737162138183081820984655351284520815364080676996365179900202181086870780581930672021075559920981219857473960141274821259029139820484627528613166126003617259744942117388592375208159630125406119756801458629944443374875064237938153002194610269427757815608875834262265112406667500833869062798857100405396872985576936368446669234060523292371276927831372935528597710777027677614763103277177206001993873325135567241156939305165497539909564832095735677389636417979952296986222718853895967731863464154356855544782473903915996872729516921205569898919114684442660260379917495270090523928761196504831256370502724568433481859711426042248749406886651471371251606362718493678717198744077652872860964392387669361883898923808505162172452187158112902607214335125833340400541129109835924224712060920260155912091078604626301073407924462809889226433129361458681391995317731019329156347582538580500640931730873543268264538207237093809481119260704948479392894162802842011167352834101981197969726513788547028466327502983927654397292297162722871650802377430924331606449486300850264973847107682009234757582076613328573257123903796394553201366133197093746494718155484581617355655573632759384029912605107589793640510149577690033438800874518260544765803235972890282553274518017821686096361320133784883113696912103027593139870807845029236047225157200989011117671370675266890282047857169189843950978962535995031948838554391261371978231446200012417669138140269657468849400707129631913963103172035433266388612754748203536096663239549487746286562219326779312450517349846677131110852901108607871972379539503953995020303532326285659908704316289031143777525941578974089605033056737722193467461248238935737719535882851964911601493778194605571153522985784366856579883221393125022912652649291855895602055548990938601228158235659348817711688513650247139296115842129812157513677189995194284250828158008967750220978549230980709083301682985567887005852071820836422017192455110688671123027071161639918763146673343597789200388834111716854210959452370376399754935701769752678695556535866661724846593250594222112779467376311018720537146477065105413127182517004186106481816321887705982276616797786153518487479235691433252745702541168198028508238396734409357189786171841033198727008822397565949274139862486283640714810465310440909869252207453867213066466226085737745031819290710898860870530303544200744787088658685638449414367094036627312780027511958486476868645892681066844759887106639580898412372895263786141175419052086208245245497546320807586908193481932526157350455220460959066089389640373724414289735381976582341374086750711754549549816552839280118967510665670338139603208118687764370107890958242111590106336561790307341604961387018307048671200217771231938127059967760654142001018408504060885958589566808410603221466681185875517246351939117383129665247881906703651201598113088801772227846028316978418426433674392347445430469189914204028840814843795297765931969892894906365973843436846251340808811917449737961212271958983155225684153486311946508199664469329684901048689301852937891537924885027721000098247155528712030433548757980777069612394514462190982760193073175421473743661568195195983793851815179840774216927522701045719345576411508898099539653065245618140582097325759609250927045808270577118135812818903348867262885730964973586240242274542487969741826851510953522286237736982827150833088654773251376068225246639587647166156475746746333666052904932818975204863715005470414682011825155354530010140111726650747013805946505857738980101138546721768748192694486744757414719630605602817442083195925131125441340806643439552714146385838021099351555574858771062055157954093877151041286298248403318361495110317821589821044678615439513598828345529532927141018597404755327032925252922517046386759295075183334027355422864152401321123840932800590285601239727856001472920874577786527348856972017114941295222776843737857933276036142544998492896579905088967789941283191730060377849446027699874695014044072166781999994987252618053843562764018947765629467828717648027961194838433280554360670320478908910870786608636823822893655563492846634780616618808590624506505983121914785118186340352951279781848094078442161143749905446526681048953525907172686753045347937370532586435322123173899238317415254100449318617363129337092728771625977831260979459598785250259828730947327349622827005830206973554051923840812356558536530793958452071452567997213678917349141977663201211186830761146524421152542238156840882647711906562473809837079747118295544719676001129481156411520073642108046125646210495856959579098432694895995197934272574482306303240363321874109410282919255950203416110064928586295354985030674326063120131256441550666732519120404967651079302572040485723023004814069415496857141189760718755066628000201453258878917846556488749984838728334196974571774621179663532147948144917588677100692873722244205621440976942843028255914733011119968378908841314409689209134701445341126992024631252418052492206134753705536396535691080136482809638347534345141263639917442918550475039731700970710947274316584134489625407676174817809784676048876564549504288006131757493017583509390950788201399144966087363670065614417598437577277603555173605961513345019067263188205685978599954467681340305398375185977971491815599142181124290425609162386555940008927680648683431094876992158181429266508327057386988712528883649683153004456805648110720820382207634859150551576667073442364557289138773654847650860425352651439159909514904246235719994379711403822679028292221691891504484813343613493815359620078592871689229737068908566185068764022931673153193695503416553303592266182577840211985527921458610871498387755311339045782048289558305958703646017730699930509654927383032144346454920902969146326696821455908293878510913405340191376280499880665983956609640687545770218192372252731491345413073596855331696863128816517928481849163291286334721757776136493632323716228538484356619228654526959342306173565861807805941508005723280327525459622412361674717057716677931169383468643802588667421404533290183960758025130994646881677287390206800766535131612591920902104825376132621239811912541771372155929272518840780218447228104532999907300813325288335371996957675122028927434532692407545619565151417924847019648839301914910819730970651202193021604412223060178162926106641712587220718591328777873852817938060143380020054899813097487052645460799893679957478003722182151416864655918093235682872590243733955869137895272021594317691836654563722497631218259681300711782583728258317961175812287331013093244858484456226704368777189047460750798457825426299990804485849427992713724439982057200157748738923008597358093183064805903685128210088243475702390414482839138563062012907131500367781881958318451648221863855081429565700981344668702588458425987061584405099555010078867635383356582091261165872006795262818537908497685880009340991347544749326324940934875245739084970807860932927630091403684950540544134502944499874896561024792905065304243521443574705770689252445813505687154593162316621864036480635175038440209241903997559551783712156270066256536369803253006345038794913859091054945310782705353760113641043239577418524989626237603971159410764852469756969773893451457304808371411058693826182469671349046205504171914130076482474513967162122720843904930402404046980564646602831181804332027580840512260953688413057204542345789818177959662752294818628323033785470276226745523852315913390552662697409865130123167197564063445843168083006068188242842550041472759327069030712003498697406486877922981738360194864711458323721961706698939447740815621950649292440548308067760919819459881416816113175584297401827309906966638047931011745881929977944126051383359994202594981587097469416850069223205358186420102529842224282655159241383402922663716656039508504072371571042779045821546670766882141493797050959052539193418214898660154354488484794775481993099709713208969486151896797135306416097876462477485690174516521991766098604986281358035072997244971116786369987796048952450385618751941399200672421148658927742841825756548100384092052606996296360228387445837027288016557114708757195635334611139071786487601428753334562811794157470017210005826153917224892870750141492392413426629120819456780538446828011878045467404075609947567896568377949903256766250765346348220697166776576602540726412783764863315117620292469918572055011457063475020135899963188629052177490257732943464833867156867886604302850190594080123324625692221660083898182934622488837448187825868713517894245726224634557763472991724726635659726711609743529673579994268889236332775382147614379584269048534818370018604955009281952185655491792244166111459057040478654697784392234194616121485110895396614621094169202882594196621355236618783710893521855936845068566077541435330438526841454076599959673936830765577332548563604840118590125232993803377409190246376620327942824589969622719804276107544955158200780893868226260940360732850468870841958568904824056993181030672458473910061757163346707940435463780586188100370524738512036095634164134050856329958318136144397727497828928184786455118453556599647181429745728425775529463414509761302691536925216633124787913727058575751455844163490041344948900444741967568605944955159274039121526337476801611986037310819650286924846464074409470801855123309847520506988669048286443642013428948654346985570422877988332129637630669477685649607375736087949116687562341331414459439967986412983090471314525984548307543723245756471396768673000629656923909620045079212186030236176075001902385744167234497983795000181618244909410141825404232853723426625951921364079508366793513934496173977560938831141815266606027895292949091633885653470397170992006597143988187587411411712528472358788510248504717417488465362469305966200607751951920099824011114110888266923973995473886286700340984569427244712123238663045961846127994353249102748751046552803155326371023016511059900026193848408035142655439109818664282458649768939378466784402255495143122858576580093693155536755427093987804332232742090040487797429486912035697528419188218166157124698554831188452597866733508933304561112069047256469167536028644579385981720196082562802303786331805393903699189437726085154839510499036798196933004925760187821362175027973352704356986180073122193986069236301027227087042734350055373941934063056745727054515044547012933541030798565687966579519318039322286350745848596267478441065867786664348352181614047473443510614160800525213529214559872061595409291269551609128657083203244159861363627275631619249933215377844435248996561386341314018877888245439516659053594458719813687678303956547783391709282893272362895853131783061279618771702442329173680159199762667966315485345272797246573258179644669873282281321536708948226265452082005297242884410112423914214350575943133530774336139376819156344813313676310566593688087866237784026328741521928246132570105152196519942793184018736064040226536934558875777709199986948673582563841715247506885244300486525520287506636519140187735318625714327090507009924446797245474774695436405481080663448622415396950716362050560458733960626038370577364671398918195795371304070632084468581064604783416665013901579866802231918611176657536997437240935402882560051786785677552391052956258116703185351782669312269820480390911677861801594459559761751321908447406833516287330678303577689114547538499398723209657466584846988549614364490825535726912270509061687359284051171129872502400622060048190627027717100927753524093875741745034588345008349841568857908632391998234021243458791965638499113986089368124503961343876455364821580440421232756024605459010908566109493406061837738231758875312796410023609780006485344630918793588459504495457109853681343079181672858152234171062720531285012229698450669780891673084738648411737760263148921973251475157945297939690300945145720451784793767188224554620316325954819988103677737823719509666982713282341391288564991869565533804125824337025713355245070078892153716762485521658619905775766690371642598641471895866751378836007517791828276583187416765756284633975202315513004176873270160235882470205311145234026748058631076054946687288929961517582547681362062423979639624924539084031046450623624092475108413156113886067550046592032364967052731990724826469234643050573122737220705576304160525598658981615978142328726782929389418686297790072562922499863151390483108052119725218444914398075865688483666054830945683548346874836734772318878054918060423474183210450929710900486785253858324420036191522431976756968337339327547472655555492841237777278477933170114814277684376442317208521276727158472153224513458002796833560024836157695747412117832657691557839290286674411091355976889693840742543905147302597075675571724347960786730755389045644140080242670413732586778329880725813079100677619966913410146318664273766122924809794144423642088059283935188006327223929361858612154597418465310156583373454869871603735957567502287328998392706798849108311830955421125396354552001787578078806534343833743222144723154948543608352143282635040613081572561029805349575770161817335233421977156649460159419650143716463314635478966608911657117154700734120711130883887545819736053777672431482364811853024710803331447104780771131922473292010003287464170605106526018998135672626432936656263858399014144815228767944020308687858752994274162257718233303289171392273513309869885994298322648232209058026072881890314504796066313626386077761841410642493399335194277806910502258812234061865918536225176490959760713300492269329944010143418652507065150458835756412430165559240521344685027797384852932866443163124076641087040283502446137629784054721489922564410381199140135306657887961500384564513377902600671056364395661915445163544250284828108696927322031995248305715722874474680023028753597610168238628403962260173766288671069882431822117910887931957664937947076716783346502060468785833737744847076064412989819609486892651490860719830803006480565834311307868495013090493188647056411784261115547886087204873558719012244725386290971725501729890758506287464690574129575779688811566851558296718403204475662815565822084991565854173833806775595701970015757279414367458319756525978683135952389247377774670142101715971403355294899822674453811725040758345121002179652090383860401200020174268243681120923229067475804620383558080900549116710681568298434006967604616047253957815969914256175657125276074533952946009662107014602717630525720672354144557167090438521418995302801830385647230682256228144979278168265775893114930851394063998447416158510404099320918213968068326653304060998659800966402635736731664432597428532180788538519999591543939578031932902262332355908628599671542955861438391539193784648613583831155131557065528490750986193356562795798175570850244291187475869103388670901674207117557966464774178216989974385771413852774752034667272902667704949959848638494404620727120049357879176867249057677920374987973902053577666877000996756897515571531654127999988400656012487616210700465686242983611745495235250547402760073938086128037297121561781826135891977666974837405577635439186742985180788194010831611741045046390243037426773448462449884894197944260322374411656189259446165580954628056254471285951112996917405354374555326565128255176421320535219154381992343665959972656449356814531160256885544064176814140072070576429668080717822940764783910178283066907993600547487769985245431928109857650250487206606290563181070881499791507524265085156313798890901727293239020419942428118606671289728164122409098671670006506074317216107284888919554246287947100045746599944294998258194984086839380372821271350956372483982197536197933508781875827687108389818596961721126986729723937748010124499482987056712508267552715123174428515817748227089327516048312880563629947137954991187178301768826106081309312078334124116968494041787307185183763824683640123163955908367463495451809890064009384011824110665700931459902660822735639886880137054222319132803084067389518770200745267734504412176724651041588875982176274311676968206564729947240667316922498562403807221198989861256984366034900269410325633135277604923885892080641785600701097599622111812233073502187428879015772426727369566813682558446718992597747784524383896431200688626387252185911746564552791109107596592710076232119861353796659469104275547167767030082919258108900520976480411884680173885662456683616704164011523300139833612287672496696975867398192357839886937583273470699558164992356382685217955218447107955198714685774817037894316948913862246877052290522334650945312752682497804365588974129561836750901562543632874616722340053481313419094914793303127041803238675998868326962865227555007731257393403763660488186730381854250111840420556910996444815197137169501438053547040570470998455293735522547115281700923684718691301601447975522877268139866201200930188727359784906620783805890069529194645756853553244239879240941009213782491248372428345541284869940892144933087786735578334271374450325935003954285731143422253180274671848489540864011218452352582964709967119274367584821124184671595940749785054166916135553807128809688237560082042247327891395371769388689545053656751757493306848108176310166560043652016140726904084406636196740845693592885109858083751170564876108993343112891529046937775093156462324432299242844370763304666334554272139707189918506974389822721454989506264652091120392779103668319589147371754800473595546855355749487348303451020566839608091152333846784119081845563742625857182278223306249411796540875213833795899582838476091440060847839906283832788478590942941049421535717699826583453065980093506597600879559242753413628246539279733953576988348099502151396653995495079705875135047598414620092652005045327170228286940224333734121216114147032683402714825593963370062955237325118511787298421826699944132871620947340731301918734839793950937780631380765098998093115418718655594254031796870088525724586838814104841220466308533970924014642367833210886587152407107618280426837924256877032750353924394557770826435369232687063004149431802292803451905060127319838335863871866048806326408378817730919246517037811430490051744220273193383217946412646241138273603208524227245676338940472266714363877683886552760221759090185810123140983138537161106105044787926528509035121037340662642601986141827443566347769419066480470074380478616377581560879942714960139335217651135075443483888402836346043143249851028736249350562622833469949527320832633737460438101238298507116052710526983316797825546594965897221017448713147701141576304483223095816224150404988983407016843071770220293061164633497665297145802240053919670243118689413779159001671502134256486894833005761529077954375107633167881333129868930385286841561045442717455698663740166191162141454903650917195246800714229958826483703225189116334697979746611726577644179158115407019824643857184179199004913780928960704779651331714489465981048229952233253995777386387841471922996346252727372348718587300492645530866106865250088414663668235310314970360349779115562106043605617038334753640916864768970947385369704681720643574083776417494268120418177641288949368135196104476204670485716259327688321099963893670639207804871558278579052486398847304304014372298588642964947658271558401911126281137348594340322498376383422585326218801736503717116210581145074580702112557955996071893848312680049639328171173990399443597106443885001487759472012807567630529404293542661989934894495264242771486120426589915712894820987225501662927446755379946909929738232181818068975003616370135639614436812046547765518459302084640373115977223293239914117118657580599857695774338215263650984434718941661519965814001539514692184588911509603481291397611810384750994628032214071338522647892158750504100696940088513887628489153934892866193045955952795711228522094230617568386670534567295435540412716104598845502363281785907758999505213068121710927088701772176706832942179015807840851355372218433357334214834218002546653581875075397517737890717831788964169766489569433280546555442709699062928991646414270665856495046724340577044550367509822580595757288031837376734498656173155774874500395145456478347736376470447846781660510196624192012895518478283592526189161079339328643876159010449303411609745785183857632185674803986954697241934606928320599494725308236028301660568144167896462995656391511815619133290267037728591604414070058539732253940448229414588418538787000291490821073547073130144061820851930208926081304728189272386144633479935155225532520545206873270616476311085304460920782709167250118826385563314500704647036140168066751279342330824422530757505950439292561440995474803599632486386128001890274884218195827375850668204497163830906304694867842361940936178393194581107668539522227437859115034699583554732320067587363075446727830848076435981650907931690646893029299650360043837587989902997837074235138947109111039254174709005062307676879807617709447879503328805908345380148343470138121193512048649922914575871230157740083874932389636081065758128531724417323829179812924660458440706485921904945421929419659703017545168532701134683499218000288594906897151818138179460752713319362735491501618775908583610282947553714315787552063068483830260721403589667764249759471731566174899451376518890720697242995096082307429630362452646910815139794412973446165120524715380244495008803447631226941175148644635180672454231840509178587709874345439255116236919493881863740953330419387096951216665125926355805027228086412603434507884184042355370241046523895616096514865132045367770783005251762271771117184948325017410154060800248204152662561974009169754964295994981896495280799576347311695090874580737955996995258708977796875803109286713814601045017758726172502599164839688157094733401274185943168606181383393649101852504190347749014142131968215305865603627754795688148411343743251702684928544850472464894132648332583420348343131536564483332994608427231011605782984943017019830773115819360637812949267929265116050166149503606883331435129891714646533637335925889855510972266010977397165403779173398737288998408009389586068485277169438631297022808860431510657326842585540605908445782238703717862986684181815687793278529421921087126562535842029092035865485190769007184183093431992314838029299536416251984385684273138413789976485244511908786596850876947804742227483922513969541758664302250064699981257829457435553424019226150522852560513426612080916616718870212247773083231534206768346964737595999045813268394080068388262375382889303843355945287785220937334954151086606157700697508468380001024635020201126686376845035561429509084203583407498387934324520426197241365600965531343651260037169422224693693763594760064080038744482810250709747490906355099024435636734544767617853394697010852603291007038384955254922109133792485555517102339644419536716883736202512228735269729596651201587119692686063928040717472567675978327909660235024888445541559014673669335689528465297060670588318172051779516294833926825436024053282081144566727019795651989974667223074313870788971113614007174950319441045492808351188607172679405206557691851356789523631576841825732244932912527627305515715955854853211914416936118354302741614262242010405408673220368364593672242407171027603070248030777750210787656554824464917167704649985058582059820956162834224472082640834398850505349294153367407516774208434837153448730331019766456894843813190417946545798524220165566229995863393918014764322542011970420909370602378301845458970216604945075073703281277479468749025655298008162823178310819404733111725020695358018452552745502138258744558504527483394440197292410005681213002630506517279882029507672288331634534507631863249908790526638384805232366330810449772834678793058525232369394120489594416779096702337194582128296474531617510263119451552346205084586093940538288565249060858508945120847847151488514942178313792174488685978737278271251063835800435384778646496162581497302376488552695227802347814729311807938253140892516591826731926188775478489775901377328725987305624652171710353513355497089779043181220092074353925781577672228168169800792446094244824049734036603388034003180410662418463125899434390905152488951448672303507233793019221259561438650543519076602178719427625484690692462332075903535072405125607156602312382485846380888943109802096974794196184277267814305498874888766202976989275203589239016557973951954578433107247926962293911226988713179594226268027532864883854056270684468801818124957910140411621224072090232377294926662137999405815164555216477486347642183329942626043542507051112954312487418693280996618168839753649341788180202367709628577803312332664742817098906713884263839437995958138910985782458764717383743567686582421749556192140741217227113182399211743111698151143233247017400349049827527958198069858545619817627545007000176726604120851856772044036470101932440346605562211322279860772958558167612113883754279050285030090010510435366103631703626303803914410661472648681177549623254255453836232640836039622728387907280944588875412594927468355061390822393524933286240450489470653180985885052577900576318366909762772876338677768643168499317942294929589645557564740752942178817149655183192231333861696564286220377549835558150335663916698770888783463355034721041449133764484252327373846894707237565259628427587737720977982262423099905825729856479205955601792938080799599454210261084236835579074428864310492795132805033562083023663866004056013619638058025814468125235241247819305899919989632227140705364835066688577227214182279057580881395554722085763787417089399705042262608366201323351470863461569722528517938661341579668854601355091628049799199938331028781500595850708321993795881683323598500327504834832511352612857604049064189746404144276217494889749966014885497198072856479711528069809540218414523723210464408036938285055680107334608507732790540295328053452230070967856600544515771877434515924684055748631653386390509355886121723687394588645171210856343611235774415396447141180610388779432644164752684749408843465061734941611417861971339582337575832668886787061961993326200859510289558483061082472147865815654223802069446202755148937416947382084601306128343573752414495397770548303315054310001736571681345977467444702684720765950701205784383510975274372715389462779650937496631393643444563232688223193770980221286719969654187376733265617896229495421629140731215747719503026632095016860785547258813509664512609597159469906320178221021426691683317412773234539912641737743023177312753478274562945797073647734916907364781345518478032634020138826019392001456976048746674110911505359306731671852660506455880234365449303633981101224997693528380554220965083003433054686253139677902303425988967796200763676465639596643811033185039531665764655058502213874651235400655631454821817929687128205341667693005156596926225356471257945052706670605016723665170360086799877630216214940218261118141601017581679134111326192066974659169362795734706081206619019810820476822575537542147352469396507931285826193597786552966672354618192909932769431515341284785843240388766555218282503148397094370081894086160195269947674208193890416241914277083330789618245834938275382456327307321196160432123287755405799329901709215798670640524387316109961009275659893699199765587369372399412867240562334059141639552886184437337631273307134812956746717663799438629824124982222862352432815430820146616244981373157558040028555832770770134927554546280924779841512425377342149393479480904173482361241427016967303662696433309277010244205461723746408863445194284692197654672794087092519018344827317733150390818454053205042414589715806188047741073634781068885509079158213151425673328402940543712177868214803935132101028172377220777881343935442553931558438645012254637028084746838403137090831289852296296798790362069870065005363749413134386351031900896671518673352459241218469531648137270088339046916235810339442603826348200643401646235579295280874176783931926136017920150323070195128401640916040353522596572487586279642636672025228479156157812531739905687865805246636492859271640904500317387874766513985161517877279850240753191211956195513634525320253249963831317900841188722856142207473656784178407089723036653711370578978826116200324097023559982621084535729475839538385760694541810696318407443294384509873607136464925148700808124219483247950732168567451196697642439771234898011688388165893321279089845022549938733674491363856255785676325939443402386158290260369507355545440412356277994407439571229958684965144823075192277662297181405748572711674319698250349292007787664443575030553282692581128040501306055297054343054639802251471768239726889146942377446579753673341364607188303917537329458912003279218532911976911927266983623048888516516862866271610336233627184997596148711767448128459094500557275571527864828689710950736623324452957393430481821565955940570244126523294386949235755028789218943292797097198018064276341157627837414053812554434439331507874837528812150860238147800416029610555154667675564593963499098880917235012415971785517638855049626769794767016588092293003956117609278722484741822442805398676120124423941257863853794592818734239090556963148849597508233117434637245761596912119861082568666472474517905399736135200983724698453658206998410329586789427623000538455217719304792427572156133788216288949029259189129884506084700499187346434371122498327791243956599320929101105601413506697520195540889419793584888641815458716386087721513816824608133742292902706306211926687643737841004883121651898952432887454174908663352554886718850514410891660562113671599603063717334853352072374325519517617999850570906695458384837437800134690884096979817273800187341805970235953050409496906967316608712774720674039241152035439224468269262899752229947607662148450140597636525504525379359741106995775623252580774361063112873504822805662535420942877187409775845816505563960413799423373231847189232475103345003986393054782088875320263004478514619539905634552700678224795186968953869779749779970564848467485233351030569776042847144522505062489171844557723839912008865677772727481876388848356222799852562342904424354424747588994675696673169419329271584272068358539590037792961735288859462381482286168256085105290514742312152245800802961036162656354955372275494627509718835813381969203476961219271894769493353627397314296214269186786318096227049140546727595780207678738250837449377817611116882853168523503041153764228362450457934241051558958526706040022521582625313525932645378432470903994465581653593267143276118787819047052635651709225120971943291291388090298862692021558070416710243489915740281276832148571411926690421208702075720660800309552941691928300841129164852957075650150976896483296830471684297926303715906092756319843367079708606602221322416813993204980424212778362674448265497508035191471928334947173803307643594116716350167314162503201619734090951642919340570679595979240716501078352308518845838448563555014398421551805069886636633225310197137416919425877499112864937674314142518927332013448422524000211308997359136163202801994321235294425995841515222243374337313330031082394086163519192957517787377842693988625521690802680580312499481765360065148246115294454154728538287866836363358337142916402593377991909099947506161277969840711089249453612640639035240883101091482105445529161284048667808399134841364750449882006921816406642247570803655326795553074858407266043546996717732462549350238133401733518158515766350435690079400652655545704554414760690989623265076036476449589033614537064299160421049074572751233552389892671397947056024299289549158254070314546472796960448482747477454938731142086551019146284806829396986022362348740631761339851467180685316451975455587828906392329628102478890229695646410851456530966063377973202391775562983984249474631403389077856234454274873002909329498001422209431657596420485150205997193743640143857008158682037343492505795925229451349591778657993840804313897874703968773674482105705381039478405293171364814695634297449955314041310307918804190358727499486502114931154481987339269196929086403884677123981194448863526311129835308952848562590682235226543121260985685891820633644578819448997433105910832909459451455812130815404752697366276150771453725615234743502597445192946674921061215790603301313400385939839470760242636712746375571019306837012672218694717770448798344095187526168113480548600867950987236018990587209102598345196904367625773674903448181406675897745221472011755601654795835149427600639910921986832768110293402400867743625412136449873930174074067732834052142002110164847101246282331686509034881274035072023562785325823486814209367248285540727481732216387464182565259706937835170043050391136586743407192071014691724842216059647214703647332296070152412726790123797029047696362837531246069000583097383195210291017011065828787685781362150427512079494916280293558065665462596313058833352713519059085017855982437566090240443862321416115223895661262064047542734518841831282066483022121264631977066750211198178420907861810696566580936596704019404212487804422912611615341562161680771254503897738332280038267715445050417285934475477581886042644408065822324981596903946309224287470631678728431322398066660297846462101364738769652937682721168928454369780796398112217288452800466718587034097925824529253911865926334496021815091386083126054317400262690137515628196483570384119608659911885836975985112116966250455227273810788377036970668336361997095782931594194886045283980483012525481307545134031858221137513763197549396537115634992877847362706515835670145301160482875394254376659541358639248948386696308461659193469427193229211323625490569326712740780227345144812158193652667405310113121436653640938534951515196426344353924124769388092954094264242908598129655117678524201500778466351083801430191887641521048116857500556305643573902941272529197797650899137832078090408897379108984793706826486355833209552078712523286962186488682935526821930484623169975587152681848873968346857635348705289190274824095071229486359460982317644605882552099893459008808999257729938513472000345284343794447402236444285739610099260088963656323058575489932928501165318929787639393262640432678707310415825568144739856592249659499238124029291820605145741580999559072860713856454882414335860994007120498999059453386255281995135448545779503712632054756398163327048836360021816186630191591971621589988428129268258183787192621431931796132472917274639938223801023074412151379160007464110204285462759832301162735711947322454246052827512131228116024970948551659348356885317018651450959508351934778411538960938756661014279900896245727133100095623711977950065359148055786736953052561388824423702423802329264251452839967484534406977798328861352784618012261680692289130213398511822297927902328871877196388833232786073741410740684039147564342033852765277220405909712002544411899161481728007040709220700278411272513292500713740971208679517579782951790211945566290925947067557804048620619288653279201719828216985205070357446495971177274763179339849344511548462640939566026300953408656797081232582279512438797409307152666411096788466479009381203600460286526087225689982102001181906567689625920299687702177140813836019835975549500248131749196594848681986807689207304650879987783802199358532933789652207040301160301674833609280811132835981352400684809974881855727019095020322279851285466458229672383247036449411350521972415199318392673415358529609945190291985472576585971963923344652286119762162862859690200246364409925963515374611249095199807791046463203796493675487497968365746358129768708986890973708752819183919504897540301627062926865398649324117501180397680180994830138521164395094143941266555581648981653240962057211564351005071250225886996375541651779573078816319496220658942037137459603633135846322625693166426630162842734045105085322993753342203554641718113032288841495553832200659603707091814179136382960894074470210872999966671721234187148843806217929179814401769211470937026600803323352068902752303297941341101712578545131518178786691225283192243274342026585606413086040568261503373313126722291334693041650529302173985273765113425514992828250231182256713689785260607212349218499463904298015836974330648620072266396217939116407514631880260416103179109136860800993659059210305272617333316198606024260705228481678574585943103857039872084785129661921513030894754414040797462904935962673297969695935227809311141060654630543654756356355559575798358345999893330208017164796962777959617638067382820058952844568778712415649472038928800523078463981248789414847598475142388696822258112996139030244043737024189180562417974068709805778551918529814986407092686439455687350598426205166213361835738183794175162436073559954713893728499647765581398529422513792779530923604716670180189195533046493602866786558315876260315749643377726481748044992324897582847704980693397888867328903940508519072294897361421039779058999416998386905910535224035417651559110066249687630936744664720075204297689589704031554637518632235428570712505947122274451567410201878447149888105464245289539571852948807798374724142651276532161033588996830513218128810746729359929599914168146151131218727485109115151302481947941193488864940826784048839254012846422480761067846246633246672933691905022586500089064345955240690525432328400906748113710433552060499439626151437033647840843772795059551777439059478509229651012747718221895087105900319705115418049658310370964605000413969314515351638123982744734607756341973907371914051473896819261638811056018244071424494505997598426139557438424450743975463075285435936559402528850216924360916653473820531619267405614966544759569484501932431057754970525900505502893849971258348838737754343688155762844277668866817403069322531039558356162283118154942097233660930775251871814696598998569673919967557319359488116052791744335027331532442809771155196481216353049474932903387389004343863084282732568787639851819082684750441143022773886633883259169945910561911483801778239840768842167263302702059030507210412427482747755778547171953675414593949271730103462890253336589847946273111007257103428112580818885400433521604884515918038875998090662675038897064324380517996185105127099874675295241644833429645629314392133544553547440288732256132056116045633226863679508869724753740399611275369025938979512012228715429781066332634102238486310633072971609176113827141721268742282517464884149371587953142615192259868312724428151312870713815761650024361456387105327908008068699349773916229974868403857388918366964472052753515714481532283341913519386797447752534594080905817263544194440478192123327138766434715187269010403364169225977830381768821309482560576021864484288080067649804652860363931288865820715047169168447802165918041427042671842821481702829742740266600185506438945073516580137247822597607224242336464308930035890356296644095970317342038586822076103263892064735396577144452445432312400410158091665790642661036030116998834872809644598084415595786309724563976069495237492033001375960419860911307126227552329584349218813954318096275052726998140875651910893519619455649996623673650583671694205214779945974138911695174805518807101797747437299662412701068117170025440470103155757966160113099479320909178921367612037339587567252686202430163338129752822248352553989809792143721789313443999470232353300593570660025417608566629428595357406351767331692608631405224178163439400172689054547533746338891764091347728268345199868393072201871499279651696828625037623203685567087119511843036534283155940510371272941870178428635200051848434535693351784223803018637510436894692498105768047314175480070849430883986911094389698275004146995640146317773237063284719675843977886665766672931470532605416275758508487576600356406322429953181374584087531658187468341793112296037739467236474721283630611668479832857813957208672744665860450943656310908155842755566350454893196736805622743503739079577539264466978359035226143961925837889074648464450938608372029537308092112697440462459130914870737425086241375768896971789904022191351057632722820212191942828971429663711921996118209046756596153414846639448113892760874552128010953868658881444023885499496135418653709031508278290417598276962305965421493500062765632119380733100681968016101956148680453856646362757344928351932906854931605823746820738878051383280586728077933661668007696365832405135233405809676029720564510899489176483928216049396912988788938172132949860630426203847074983664844530069565953511975030327468104429758293244653948124900046708630743080689827131965015579572295565127145602267665736092596053855444489033442466492413570023598601775141802770452403916219801062691895040962499503516106925615780877323069524604239162063263219080124495009784987560512131781203383247059574258843262542001579136745477771695330626869643119412087327170474247461551996007775426276788144589629668658521105348387395570325144845839973138575919265231936066097882495915669742638554238920825439607083855358596200059227957605233976959504439588089657764188156213659482959842335992922525193422425058108012162447705805552822270450632685495612644923145928678394650237396761665605578184758985792669142415127177356591049498835473790999544172566356805145825676690563445921233855336694394846195301459246683890326539421931490495960228947910593353718215870703072815493440486077229678060107383892289678396978279856680772470479944282193613765315224445943880391897467571173213673813477183723621911793866635466632533429610703554504986764077020120744995308370206673418643513332279420642556260213318741548786178612688432135459665334647046722926498611321554900895641596361833270370594572245286277568905799446729198810018939674982318381179409635288552242259343104220409005851467564786871903629374880853422495077807093643019630905940227838384370284177774825918820392249091983151090590889188167796764051416257340799695192469900634363110658357703138703865116606967053626560019576334088599722097055572994131715108301187155414957726072246081400798038354781456687449428433116483952439894369129439067368872651008942961101954983822379863648348562105706546854615468006040781436724052543992673354299914730013643085055690025235591095627050899740108446295919397286053766105948959187630908977862466050510165517434708511008677075063748150574625244317874859802525732203006448506160472200150031537029628040936292701538617621330573917216591410847202226630622502875300942427707654045340635996632794219550228410818123516628843656153392972482190437818917580428462556291379493015479406025675866724100550174936272676733639812985173761154635201214619645561977873052467042803208661463153686306916436910857764037307687515109517258176850023520141077171767313258713333909254682714709850907794879853990286892713162053730137995260904137397478051855118036013799741151330225853458284159212544200638536589160693586102039672032672165045808564863100154147531325468197467660790133306059188437125519878656312246172980176162246296126178830259205684847849747878719158690172096357595765314959496639898662388932012868902770376391142037930276401259733453086354697733268046945577313545541766265648586978084154021990700159658150395283432139254340016783461233693413417592301402100440488894693517592659890020170911532808646096502176021586880890806036533171582499028723614876175016291777308615063942519468000323041901911943996738771561628495091393369972811439464428581223338233299731160732712491702141826114440746395653848745639894062046592617955590613611350414743871948144064774138783045857398505278091093247226666680657044729336853281866288024096564654588333324037672735469825042814366797422026198090110249984628975464696092986272391975958727350492074721220135811857855477661449892732173110500625943435616673702801904458382047637450356180629044492926043763572335469668465740641707774136474103902683304886480998568322061023301346419678001539380284150789153865934750696889634479007992667055599623864149757440885965327362002669842176159794252426944069995267421303556094620262534887019312114469487573226030016402547227061106063643305764198972803507251163797751107376057320354137295031662095105841906232600109772570466496915861809149452140657177189887230545303601365767159792491512374540393128648433699199748905185948789362009699172271363378210559102724707129123471494954214523725783697375066365725860843970189885396014814975373752039128607772115672322378225280801117012274900674328338399787772977087518972093130951767857126390324976895937005867673034871002810616561663522894266985931118517924551309041196925317186109716085720188120032352153060267838635172426357101873755002101878088025941379744489936172090347238799580386919386143216631745307978230671620834559979426858058670499971240636193279277751889841774034686747546884565394887543060531039749896895608805800391060040786233394937510633146958720304584082275487377675125018014580622870683023525074294222999037294982051661584826096806900031938139540414370894107322461127377187261862029056914800343650158897088137468614157884489551705100245095713399734645935343194438111036741012872465276336849167597917466772192145252471038938655623432356892822760859011671977518566775801932610784113035147190188301906136597939252030497531643836636484344982939634099061889462489717178404394274820527211892561171681925667334819332146435738903901504629365775048393317094822159542569842365523870991957019569943947947155426195602670605498114353464270437628710725330819251864850499507185185355481929363987798393210855650975990504896657312657849239049800331242606553601091401991158855372586603444796365301954961470165883365734072411859009722952867812423707967048162982541291504414670181537986337385997066670105487011107607826832771212078229223687881932780924532688595494419578919001848040297051819405242511811690385280648075931376885711816559647571883890128620833214270717122088529241530658783356699718496311321686177888291859755180458847955846094373662436186706632672414025180491962674188018664855762873754021867956778844152264480232557035834581883435239139667058248874847104530797572822465541081252907908863631698752381427717282496309842604559825659137380865495282790016066357464722775892066266360879207453810720500991379080585026885817510211688077778371494414162350748897555425867726495888765975543938920187441046002464605571331163150744570795203522713243934820760302569458867245805186718267072077285831761900181618524224390970805313063715864524073349999333674023032815093133260557730584444374734211742491657803052201371171780958169988736874734581338654629224467655861552412445740906083440990387900115426949105101717314619614473823098605781782787083257566700698611017455487918991710779673386918299518503987067444835263988738761564698033379763578476981443164962939549232536863736834482037401223065646956880782212800134915405002034382147747551183922749465185723035855905092234116451155332275045585157785924678592495931404530616928107419310578555189775026006534466059542201214676556088382778806457566141285500924779783164322779853724137602762737548031515723936243832651243064038614006536420981933627160829123001543396376503383623897140255316418180556410159463000938455776653660326290923734912066523952359159734853870927325927177263051948753748380975463369371707320612080231465167630831725174269763593695257660932358269717124939489258009590608427395343602981599153571947949288587385213682842306134241012391778580080638037649991445134444426673684507997906566301389010251833565263554430365200866181235637922532050275130169983397979146863021616224976551755887010477442094184602644388523842336488931293612910047351334452821201829979871005567686312129764711578834552643199323547269366262793177781192877539456236851874741381668775894221341009042659631100431195256953257361126447502280250678750138106592125878344169650264089575563532170123589755425405401624980733528278418421878887918887095579924312236055036355171000784868926703746844746804161115129877076803956418879384058592472612626542718745528289422613152534803130472607860064532042101629852380802533751436743631922784550746713840496598893943781123176537251410065307219937886544461526169522264141735631081451036978481801945545346401776038841105800737557104537962784985272082564644889716065168495876272294697198702299883850834375793549428228032510340367582919642562929251103137266861688928607574816120190025663505803874371295510535263037851816875818084025286490304449390726649389982679954086363715853717720109452620027023182995718830011038389726680680345871585823970907889288010393275373502048322329742781220332425466415657181857086971780388963328027117585184588410965651256947737452417882490117279393011449903495099857081619105232271646908037659399222170596294716540000919813782498048275959756159599144757832884686843959035682772944894854520755462831785310055075573645396656293176210877503999830816455524050363075679061483518312045073322401050340755171089690976838120036972640187091826061225603390759024693257167837309753837392490003853913893614858544235063172428838054482958396320715141563460808676501606699056216962191895691191216980879923346173003692641111189117679203402657167906151327286895771715610580746983968262706281579910784338683693633299699541914762063765955108794525773069850604234754360900460607082850573494237696344051758548131865366726258655610370590895466986811934566018407922414294829423086813751744639481772001296343955193904926615219947933694684429936369439656587278298240819213215548434984375036825826030385869203018139029254878721700407638577971210661191808662344079436167241422441442732513549340417010774292728066720743271551318120362029587745666520594036614659918834513382002243991079819982723719859062353033113832110795568648802818291640389208148081386726315411002500340519882462489714354831797724589237509926524783265109963521071798798119024165576255228549173741831419722992258991714523896001482986162959862978272667642652233086606795472261565524274388742267367849640610937009257178647661988526000916102607253100343592632510251286711821052729996622550900314552303954696254547364074749661440858800122998497633722133085073229628429235953078607805778119121943465696902408131189521624444760750385460375549426630159236073218052720499326706087926061351651187531382068727205719627332316951986191601892488489139321871316446386994456508286632019970435719058623747453303341038138809672152687694683248225024995319586940943596405023798524612489614713290070410368160868015709105065052777133845000623783707422587250212708546011569215499262392062396411939843237759710285992033339246937296163064598742144536773346049700052117486760465370765486101052566793500602791364976545824003373319717511813659839024522046520891863570124326515618678222348362388517760041833011903409238159502592880922284359614461837277960472240468470008939187122223146119600091056321334077848635760705538574424967083332608160117702429762116953674141320689613148245990739014720716897427386943382796024480364461578541750459004043765559437118087553394512913012510045004598138383929930101264161135406781884577888012834892988094022386293210427988562142947292521639436864245317223195851923140017051828372987673080895361246553541396342570105599356533667101910273883762936518429517153887079321068648093877403510765856288160751596465668511037233771563895972543455188790780583351824209985003897331725754183316860805748955245835233233912089713257302470159748012827005249459459368817265915616832491494795988987129584802406266819396267162831859110642685088495737319907311897020163067667852553999756684419744166101612576414476076651882444756989503728195505729831914303540213287966265329829176014216918716328391014019538167597607301184810084654676724944832697911113683965619573722175932341844835614081648078154584877771426507787110660250370529206977668197315773654722714914959228031924282899779674983951916029424521506201130820700249847153597886295688796156628218723140575817748840638017313436615816500504468131568508669690893372121845149758636062671470852056409714231218659250850617297458061608172329743018178749967539834183896166443400348797275462716284109888900490046687230542443274011086732565290614658858092380757265149634534735615337729291059940184418926015542871640648108356715681083939431061014038720806434647711200220963881609835489475641327420351474907065616496267050690210704945836226747927972599434511962816068225580995064099217346797452550845235069312977845116486971085039061406853080217396412007919748935984578382974923157567333487506563784262187771435915672663532883200126453843330426979013246542061007921672160553086740104900343454116783755953417056400384292833128765666231950858485833915820529135072132816223367116956046116279441847561206649394514495173250476116531480986270321471120577259662357793630272075752086522968089999595718161941227277547478906004416741715587975499865069285217132220294324096974837931421865578597106593566575645193246611606840650436379385686662737749065043423912750985854015688984876494791473005040888847105033018628869419953119754795116179422951583173737291141874509712856705358292667319753350973122587462278752332640018325808276464451470902003449213201681332703331172339263116769985824287566672081613694637063043897779759136684550827207132190960818389542437687857143677244959568875266534186023709643143012182336339621319910409434669739529629696824894807535944962014510194578858325217320514663861245853154594660983720745823197716672976185199279546096360441138384364688502646250961186935481891511233373806057206468340442205239941781076393941584855998509798668723059781887441456468745508518234468408391413430725328151714178523243580261956624314954221248101161713276970962684113527797121430431835836725002201013859416075694060242847984563047345316422482601275816977142033252107300405688918244623261839681262730779656997614208377755641767860633767108140810767944322153850283854328275615767027755814186266500385674587579577024997682047293221929441590756400038790344853454474041974121702073519989373993217613218831060487447381813811981006057811154825383055515242716843887843892053065180904723032768034656175283633058623055264269784694303938256964620051029416401424199016569353926331479447378039752086673726948849448081176763392616704583015156209598455601122864645764107753048935024574022990860855557740714044857596147023880876243799399708554265281420724072037651566075021768597049234589748830553195447646488533183910189408979033535778690886258952308073467600830074126661342868296354706452856473897779619319958252776312575179349192511774837374228905241858119121926163784408959863459281598392907004562994774087247807574125445287925536502226978621213987168786918637042698325747703388546422734694325047912942936606559067096143677285399940454175070094240516905097390454139384717173075567261570671171778881194944585922857010584279140127530786673431637714266109837241374267699128554613942905265905292431936925605035102123999524438779717656292001443637996660718376388529190973028234075962928010833374450502104467011400403192662627746228887371833852443644153367779070238817980549383350986772206426880060768243914760127282834476130590457279345732458920252515546243178142106986606518861944846155416822232538911080037675373690089894125387982168044257719436212117787756427597853866538618446914772614369181153052570611827215781705232252659923702188045562741546404719186115584308792026614049392712249771939293008716041560901667448050159868767728536491916710046441512935693968367389330344627867296607201904906823778269194673388442673815955570157871146028829391977577487407651669675973543419126149627035687975202127522224527556455355212260528771276637718254084543213631435551157641178926307676926250141855385480082073920915729440819074838153642212303968934502386178535581262028146050264222178407846894784803962583635626071850198569301430171160849940050586630254972301702630526904777151528212923823309010337007217567055698405797668466872844102620019850089782419212764069048222365535736727431248411504956441570279111951509639450396527071706179564219802932008182925082312080662313719439929831500714548905853165429124001854541385064237876777163690452794629615570634609733942154033428323307575465808484603446932910831731147407110469451900205544546489969496584203306137608623178548381927951431184661411047613948315380973432626912541249409628524757709415042846501180717224013051865923196703097398356516761635285616040501808356967620441451815328970474679966694268718293185543362385966279721134336820392728691704994344780861478060314152117912625357627733852766287132175962991659899193472071209230605620403454027386104566973737514110852194664156956725981926407668841624890998625518383018349472038693656246789096639456932264177892434034720315628908970527487347541297811120685893582966740757902827999202281540922802593680583960928800527110758539475819293751448341994976942163767815143557202498763664522613345540620605443331092340869554746591119352080905762073337916990889222762798194094103627420351332587819592630009688309153988851483201585324391030205754583470294963848118072090444778234543444612533220434459863220556332600677216367631069529672185304204792798728811551265084214293744036045191883121249265121116478853334832281202899657561450187758417443357965659182812377799280467878759487726508587206117179450041709128533815527849161104528613031787061308141366536746764242527695461114896593688212700817610448042664010105086686544115386841354934418962020267173659750460999834427705206726312949973642340590649618010102303204090044767281792015779545675479429209039226421674388436047873675970851283814604724550319841115406542357400998209479417564716579315130164592041297786198496190352850482439771699049143528178837124548215464970019490524763546202737126524843963842645174759141729782597730467441577394688533915120913800180319191226956947109704573787687268126064013334468775965631467012904998596377763973981222909226777331387127968295960005245381889297359670579420181842922336134491690627985322573805781395748248475075774431114102404331592354807230882324140582227358305595517266474526969288181309149740738418341846560588788257280599920154868230853877164658816221063536463058357116798051112074221213525336785839900213585961498399509456692085133580830470200546686519511354675438848614845110630637398049385539104755351846754958862569335112006497846333451962864367990896129398622219551802539214889565987291986773788951895743680627042471196846566639733882704037671885495116676052116328187095052323421131832401368595973780669687346387236006189429225224634705277929759200745803610514890572009231975589598669806360059345480233046321140296234831386971549438733234192084710766072157617128313381382063383471460809831841260580462296052440065964424095621225588846126819450076886079802879527921063325985564417849262458457900164497672841025939492055622607122215539817736583216751115414363741662211217052106402860169186073435134613754614060040742572717107176946749349865122950548730499240075188410154311246174111068966117516996476111754495983945139992059597331728937127850694304090248929793936609768270767705758852682408044705603641281870044196374933204995461094058979341184578822447026451359176515417526667936403075165106688770063768777146932167264159618865057722126506349507154548211747463024173770152462565864239290037552708564778776521525711163969497462611891329031150906933748467591881868358799667712500968645813871136350510601818454498295120771139417835636859056322611031523217719024686821874445863476391080870337627837262208482798695723819944501526208108681068259989301962370330694424934350001614168809776823585630444786884258243400986174455443276604430669751159779155415227672234271754227041579184225609736659785500330834573643503944413501569308642494984451483650128967987198452226966841426699902778206073008405825690162211752770594083005395930579696174859355809649044350215316999114084771009762848512779620038999139723468650255262506564189916084052546190912324938430346580884942106502334056804464910488469197618241042561403010296509224405786153263399967125819351523345693796182083348099105415637656547355886860454757569240983186379010462595946324573736797974392010657500949951001290289793707903868823486620046900716304204374933749686343140498596685899686849104161012441340079665277719485578048305488877993644883521044287198268642895789335626816701322545565946931338964448940554884898365622655941074065928787019351181403939097943227240660840201493236673366935801788824495889277970420793607742841884441343882692725479621310198933201054014897297918418759822054423662262275727187296645343236562278934397524286498930738049340131295052433387470236596669442647163348189550349602243025654219215589263450633148749048000662603511449884017047727100467767615418797432161597610117689538958198997022824763501247858424742459968324023856726525722234240637612042269803123890564012517616598867663445038724233775475402342525382707911973917276834065040023874053060787850577052430369211417374877899863660636379505507747787706849503545531573500057293542738612895670204279937531102359603194514210138761754159249067578109647938958487044921990769975230080663799166127063620585661163831875224298069198635356403028661735640932637132776344061941001952907164797854936405275324039306978457940827127398771827557729706502495991287884032661285538322623080515926041282671053943320247924159158305855640154352979251889090270130999390859455448919703612798413994832980761585056291165749849221646563854834111976669979634021395468352644002180908355106553261179375148176950645465158773782289817659765697641753835156377717065231057572054955536439474842624889949285433733654529347561838557901008928475383092901302541162109147870062259787189276065694675506700994950477819461645828231805878813399091824390965929472035919901409372225865969407654621211521833403726790036186546514590545336416679487926943349188472421647079034669052716670244952326461005149802341459996983756895179325029557650445754881885179421489402110343469181499391508576089193637619047636331106995491001447696795148689972937167137904741532531870611787684805061691641308381549669914617083533393703665529634278012602319256565513176551983983728683311158244489113927217171426409985689892102379339473513983667921642676968404766219647974356969851280327482863588016677697542965272781616516195401157100071029526203555479902035523399255822695491547685419476246390688733153468393770639167951098483848269389920380176851625735438198326551649205105491990386878323117760558315229120032963823997115110114644327503263093560916404697694390173587213862567016965638968215624984250837616469161263942194087346955871475475084070404450393536684802055699826566156980702730534544541396915382933977635959444973260196356680559210657416924162991929539504927904927664494777995742106912925703080520065925706415472844846929874132659316097205492282137823812617502382026997836604072346689486498005393774459402788048829947051047377958119048163011862276866702903246595778444787784079331669267337321796847896840774359698152406469363939343241074377544429403880829699041382939605189471688933120220957040408519178820858601167144611482787013247088958882389383145070278041433210407304228728713598252633639873807538111236499415115477587977434834707130442678510952445280051527247215863725142839640226329509207504173920033817516819040228748889324078294350520368372355639156871381359939861703611571146764496959592996393752665605700489388193103564925533104064648287157492123365174868267655124414697045247351049192114430181133457428647231667285049323728726450095611348331928877513739906841900695417989840009611407191101741967970285683823233341398080735901689304788050478139279928356334446900858739402600469929851375798777346705386244564993009924553353493521569479049134429877987435469159389991058746018430252777551253568946794681499808340325559633431293651854294457370297698696869108833401585846911783764859197585274239630652611970844061766266503529247310705139674609300089674140721430246613463949844745872245387375640788742173780773565802537260735685712005182497702569794154766200368504417846451569021191369276442484550346276932267983644578589210166790219357623166870170803228625936630797137127666454337345355851021277366782533449777237020362056834731871539108674334276316181428731538341442676145666129156043626140249021514881864039886371439262421381681692811241195679438118256150600426997881798075606467002019332233415765614985920597549943581428937070661327102381616346317395005236190631046505119600433589571804468110863973862149026013421359163988668556155192211804704304292566121110016275767802317544489731085847163340061919274442757611585285020040424115858271444847469114762074760259620893319243805342486533516901499667013939951743234402849548519684356115465785936074236718379955233447713549009456363020985876383570556058243768076999920386159535451297434866321669351106185059294293255383646110818083237251611403893793763834714330945560750418304249046101774982862917076341367431732862702620358346354175206193977859941281289963182270564095435804328482808185160338603376943961851791332957662272842075670500266520971119925293812670502631372442169858920424674179950549770624430161695464847258487253079122828976800192187636253961162139298685525760457127566951672491571906179575527470637942955640376645299549370996523874982533083505301950600817166012851627309163085877415689124675776737363111809610594634502154448095863802998492614665119537912238522377966856999099181955641305525154766675369877655362648133260600187931400611865936820812217008086718957730545616834864390743120809718435657563463369818649114689748121025909174165712173058490872270516991951218230695065299102585383367534478064549898504991357085773784647806719487708301454691205198902730304984955239423582975617261335068070481205668067592304555517324402994019864162513879041852599482800281267070689243404646161776043954175024719932974972404280812827607766328721477494815513723662839922717480843148712184385561648297299839690100025453955253275346963262775713410418839307033687807774430602979120614242360851489320215122737678052168387995164213687112305466746664288563119253290215626347580404957381440028062044001131020694120486063065765524934145754168079558838172618306331086943162467325773669226528231313394125856326136872703189222483148307068597207616143225170595303818635532022050141525368826070364731763230471294009020747441878312906838311380210485717042434983155321357324627947777273313622905815208970551546725777882317063843513342335815638525117793058495367278815891158948197836701862809361441955823932503238734059161995037068182360861151034303140007461883339156177836241758468537640240209830719645674086990830344950788644014395117164808537267345516617875587700721943328998152430837348497108189804147713302359601256485081136963554031442042321128511578456878278525563438159767296737531877572676848042467473123708040036131587801431816619327233502224117103814683768194922900178863279922425264837780297622641818701786431607156526036204007183894926869443630269323661985726890489443945228418385166002413127205329220609273695439680328263884066044976421110207428716333486225318530407319643925263034655995543428363681298285628807946785981606257708330798681537162759882814255487317843596868860458011770006197341354444612674033262084072575718800988007997865578046119289604423485027968425452398960981948941757816083577399681889049839372058408702037760977575780767702835478598805156072031667871361594927759927752026025535894897819061970480159380126135001957523469251433766602990404969564071523201178044008479705026237441765001533059178714404592075835539457004689982065894023340143140381470597463788487653645734058681082456376149653295833377218845964857161494260916606569161085906505926008534808392250322350145259098124690049685186725273537615814100665248918312159558240594484689579741294584210786597131715110044014867016285790583304028252044773427622158593822226678088773547134926362798876062352688977610689696672258144248191820063382338051432252584351518177941644181400072727990800300744849340539874396084079127671486980865490021449771195655698625624724146269672854594342565084269511602507372200127088357881757077585564688474828676138832258024251938507486342900377798655240622455764617291336445640764344312390682322618076602459070241137850092988725544906209221795657743585536368936829406683832522056131545236724069498083216479578428403207508894982559611392231495544733857920729777128803167849840256295275317525113148085131024472728348885611399736727634271135143836360245477300795252910517699753150240929818611660063269069777693720472971128410411411508104753036675496669884579192997453381049151067411441224641934464881810290239509127002270673725532179046056389687394344837511495835474214193748304777840452129542979070896570467825385316881468269703855979087219128368531698352003613530181240969975389006664968275149189067140374504840875637861140895509904427910101269830446838320411036892240507206895298301267186055652611641081855849277604131729829279124540752992781072412429182965923030203112209683705693485271680261997534518189050524596821997316406443671807512632766771660651459273081246765482647368880138436012949003731216472255428135177569508225862597221887597508437492579769302918997806302303328024424026881892579515892150100888352054459601309946269885853986355803337237131886123276921892676229684513864696674321930588344102291806673820990204525273685104882420354915435269716496360707317957903356964898527285471147162329460774599686473180902461100536777010872360527252822159279562462412172921724488937251480231734796958622586979470307189883962015433060271855685854209501899733594811779505871687553910184242600664125281432522963058544713238585098199464847355304045756373038538750812758965148206615796957110894644500664562522436244484911626798876799986362829546849650618656945830502634733129202269962521899952383633420078119492304709020146557548902671502224194629876692319329643810266802313747306606952647100152055554669083905253029475907809571567507859868670808813671362094223778934851697362044304398448153252219999088131559704975394710967333593073946405725168402271818507550143073473932864139041998352241113266341821329770515930381183256406215899178715019102444162144417618787870780124395213621576867167174448897646115530041190497969487673347809601377046803789200859850492968155441739287419623801361612975492424582981352653368136105780904321762012034117320588571345526087978643030617489775717263508585916730937248225850755882752946016964730938106595790831012767685907450431104806778795353209509327531115241960356004574624793451837699511177315916106866284110559077234143923482507608399064033452655393903410546288263933346859197466575207573156602164193360610808886863109150876953163072045449981496298678649621592041391406324092256665348613280661052851969477436448640942710435305075968918664342868813473448920761542753314851644726371734667596973945157988466434862316656781067428739727780102225103753642806345946042707865351039702469921594822973901186337870918484528576250062942205984037107280938994317887210240195106284883440987704392012432866037143599927773653948774217343699298354528011418287689875738434820492027298443694521933669414872386418571473148522709141796697022081893457902073719892001737875343519208479034012806988964636234759389168719995596907254159620969156610924682140085282078185611046170144365003202481633559152161607281551381703524740701821954502121648572821979540136224706983295279663449658588041789087617342137933318506858099213543574959447021433480448039524449471176354251955018446935625792067156198111097956581375947407513634400482658573343273788633150577009946059601699066965510986558830682871443212449297032386294750546073305294052805500415558561479116681421870779551097587380636567942107615468631448836833594249912902302669007963569255761270374988928895423667541793646205781597670495763180646574896352920744339066014998357177346374136921816300455616383792789246960905548853831231143449927402057718362736548097902987836632795346883000060989980054147334855180295742235043610536613757146773930767305573783265421227762957186095405182144780985840239837923744209879509140605196940019334612747860108069071707051145101380778130469891093533891867869330780582981591612514850386510917618670485159754347797393695824418670517894074031863612738856823126754045657962695968391432466056816562327092331352679758658910802998719822496830921748940257712395971587786853760449897503305535003810580703562324037150575585549613747940630787755574644086766801016442346455316341285570637165040231151144628053216485762043606176080917741860967384050800278674740415115451866536202519573764529822185105032758477853980845947022980271345038956384992176557916646764197273805552184338734601183640136025633577973852853520127317376677651520827136417851799264486943260755860537120247479454127332937758566238172795439629094842234357675811888103886243630870217042777455423988971286706677169350121701129371984196650144784398509881363960858699892344718386992099822532464260542415386255855604681767137426765303898728399437927327524049030445729197002621168427088274262153693153949149166652333452287979529549525916044164385288362496264806689254762364522404164835808600773020446279951406442255923420356417204012036953222890865159447933023181162074942816762616019018266149150829777932458579950298287752473420052482527703266308629521808959016068087525598400891324228542471359970260376952972038689485847043788418012293512104044089442554787205384118665470097970859414386713735593271803504137226882341863236730929820045413093327565651391821372426964052185961685410393767924385789661105070005088459921086854113470900792058283199182083844584980437855983576838969471559844605915719795225211370622754319266314629730293655326622574528876129446295909455561802790522390563122167802736562987042561537052821976798615016007494576400212383557452947985212463666425287342185414847882567028007469387432230974162428442126083534560358707588472691228653868945508658373296205462372881627876879648480741637136217241052272889436989540184929163279001868748201478882949489983418294555478257025082472192448657340623911797018710192221096269964474554388265122658281491098678419626754810079339816398747461899537962686413847346156251250231671121261221663484825094774880310173439930656312720592823313741890610741146458335161998424216257549910717952522164364389325524940846756482647534657561312647725436238611820628917520323060690458962694110588548706256204069829064318570182992273948683652738240737839085808884743158419389209689474924743535487397640428951961862138963182269765499221762873924835763118953230758980132001812997768151669244994487958661019242654170091481281387543608239152973946983408731646619832951675214809499120308979321691201516227057547254103603825129133228819704184895841798408297828346923033313158950559389073764639196085252559908681098448735763372741177495535903039584998094849418256860796110288933737370620145815929286762866829010520459464365977921081220911963587887082375870771010208278403216427615063789830300390176739160673849887920954932464164606758107300276018915880070201006205223837453612773447717329561554016914625301770126783964648640272141245340263192346416285645519297015330289428081542926982170958723793109619077681159554234237015254000090359242877796939994845288299597850197641113134823681871810830559783343947940590376478792276648768977236447427500885730458426350616804046939595767196449708002167203388453888858684839964420424206175635652112466256846818093635834314267909320626386085268297813707587244358070448161453988471171085755801214873550879828516697812788909501305363341043981613745619192997645933373560208461875647493287125426960170867131791789353671437363175553411936581873376586642879312209261701350373560676535250174453962999761673361322400481057671111409120446638820380269062470425863758589673510557777053971116694761026599346803634853956132550990472787915773490812379263797046693225612842152130382332984030109944390193095652482647245676141579249160754143470423918830292367585771710022021862233675040551170108774923566187001936635850687609244034433661487463281307214700310515684330683568527333307681266348104764485020030065652164203842387726750072984026333711238743535369853862353915914364369757558086652979528950813471111377252515341899181180697917744391064882838663714793656259037339100919202660652655731282620228758837378469850163841967369611049472754391555700817070852243578592707440672987954433152909185505744499899713801786673068894092385387279885305110504280729706210588376300090335322391898477058986486200643809922042199279882721832936408197103215430194542024235047845996815192729667046179704833147655376566438217567789221937657339355724546033067126162033440109579914378849030730919220049983964832979730541400474399891212184222473840126865764949391639442419879933054531082233388308696068820936624969527439845852216946000251025996738988131153632270294954639613462224694794391768530095758416619424918040598557351020105250626830052084925905984580019058980934858876508769039299661285758408801935779707094586441137579585849262331869067600078686175016334428677680157158598682254500331742984540516638424818941757561745633094262115554958956206083965084406755562463530930670023942369001985656943734809866088524249303417059289257216542409476664612444045291332477119161438538191730443872079893228267126252533932380353258543062550604994794167400290751873308056824024135137721481781205584221134051922649755284845110742359822286169255843845964315528737655539764228925173179919283046834772899241447300356310203293829173136186844566992997362619533893679022694568302683787984465281819283211799394425922250129407281762434753279715346700047025075081639923289578633947713475130146762626731451479624704283249833496037273775735014308828961835987063792501688966313360454222677119322993335710231441467191172698927144889589838143372162807694068900956668702640313039993480163564212949479619620138906978745955802683488800139199348752539009306208011872449172267309472975949539293004051715784407114662030104081872121700686747413573271123246959569123064492240805104286547867567268062219414070267209383435693759643993465449317476872967706701972059480000074841013962549126873260890993540974202394974280876549509569860567367114510514416318916755653968494382977254775822515339839706253688573026489323506046146718479829363642670858345644086593927566154140598951213756181605844172391429881836521073177306740116929948807084626030404751017479825913473370508364693983117875592200228148830802380973988657553804289146150812547945238567191426039524094351062165567751233861335128356917298259354966194217068273065259378656403022453794356096262173106696430373568073550661964118334841695816748155414211884182448189874633876441163813535358512747823142528671301288227319806403458583597801672816201606684180157620512890701873258997263768213492615983457416120429178572211204974958545731799034650269149282161960520686579256709421435140180976889164762673503017526026464697201693350304259531441153300237027002760128240820612752608207558312187878589511677770368663844493791754427516497785622241916446261799452897541922426750058526800638746409953929427621965730415791900096312696535707997561621906369681183747034803147176637780767659533509985654199150391527750917538996297956489592729986770507749005072867227150996806410355949274864747112311706118292207555601623413659121122347923979741512941497930162920802322134659575078437701465889397597350477570819983053697710902086759900981949414804955330594314686416443958653660177244421623814454971607528690743873073703605509172018170956295152638033112889614937800409551025944290375067938076765909191604852923445527655879385126646892739504017429626314799472475309947546207038261135235830171450591956802567012980722813283096732590183333951539309785597129037525603554508493862878028333710549314444077095384995891674007737897023375690086690002531261664783099028013225715716080107906500150057429961544658451715165097886636124715558252658182533845927998028764188428373823048323725599290342334090304695364493388620519902521553390268991401411545107388211616673473612589904249881449144879704551541888498316289375599967967214489730530180396004708006357664837027084957718603499095146780567760702322000504057263957546142223008804712502679637154534912644213564468861375042808109280102713530777422604985008017848187987584734107455790253662869752622194613724609206958952187888496678394350360647651148951687206826433688321873336858682709812889927520007370164951933893848935995780993761596999141736125445855600781493202786635001255317957601995604102777839637205595133889291133421047617074860166367062483367164249962272995373027517092258711247014149752887557922425639877011781207839633160559446206657835407899370438380039527887330018880104364044553727587076894984745323316330164653955086231583292008419434581136675036637849194250946064125263964611445580685792202500325296494780956144683583545571099186362368409644628365813161629567014393405868453551972141214976718677176931861193875842129665509044214623105521581457862245358628865538672138462453949813701019141753989302363666670450089959718170968652889902507010861708373503976232184681517109425949004257807068849875695825097161047152083804225428873345334379738444815378421868797453400237942617510619542908875925751081885230697232332347119466006762291414448415836944476582920890926754765455714973284473157328442025206888247546739371249658286272103029342238100394276061077538911444924994029044320320861371991131413786326184254603788765645308697874000116169602589724106951181027464976468210134977432518836110718820589538048315272752353995615347642551807071018875989345355338664682959469596402791080926135055122770765750539796563009612486098401183952480315674409612257924619986287491036385383271565794964894291072734611819275499072805938746662399916532452452987340988148428420743543790458022780337052589084425189087645930680191324207709958675734575708843450609395511554035559263994219549663117082181573980007896445982127052632656449249550099168928191807945493128645203580634017215953221438269163672948608519047225099964642726458119065294192315649410864678921974282984053996856870583426319155815188171965145146754924286604638279623133705479404935291854730620453422861647978552879550387917385138602371131029752569116677645145921374462449039546816758223741776978354126837909433942213979624069120053289529596837349746107306427758302538575443187952954534240491756480308454698819273612408172185904109276452949363454761882503306207529293514277883546847588844087614294618484771687356723863171550898251324103653279779666638940709652295685164902312856836741937162039995131183087446825639473366820328050792782637243288696711326894225643336652969012875151935477008418553923484453751692801179974475992089668291943011792508170370924224676006508761267573973723363274617081292842850416799561593281946862452724173164749196449060624306812424638650985071050598897549356163768717194513312524681033957616135179720674932079536353313584693407278409523639648448522221536623289384690196653101264671062365077902137238463192806525680542085855899072524810184040027173200618038022992487050870968502301145662642288868912599026023787108089093749507418840041848336350207856927635419897717028414126361760201499173447786140084568977391568660221903443117562869224597551596510874110204158390291848863739514864519179772890811365777986981614436524694543602509727541010105008351615539634372907018898277574294153875411899999194720013565171471694133003610469628921563503848418839340158620659812307028629836719393903311660299333887520619057954867905049346117604419204888580514655354629775257056738255970900376644652269078145544689050814078478988493933841642202827790137838776107521185349994697116560512112150011432354249189127299361561937243213269369393004108241770950912161529700065720010499951286082292152849284410622926892139546683918544005789991768615568193611528007389728621586200453614256757950446139259853075017183336994001787042452325514613877840375726495735446706208634523469012473320565145557449210174903818576093910112966270903401993170801693773417494948960763934024512222345728424783887168952999049254556740223529289814512370969387181971777706818410877759560020858425745679566251278648991697888790927292261009873479305196475715490924411469458341718334724830473537255444097877233119192081398520230660563939992047902827069141409270822427620851275537906070161776206089134584339768406091214928900239073807462866385689843432612277050239693476363948430357939870170614112130674821360891716405870695163014789731790292227851053333840104981678013622504921929597300754754880518317762085008622009480007589710326010403786049825186962115030905745914787206768325596956407675634778335822261631548068987227252913284813967674509567417997374432989918112925281598537390764300138924742748092491097524078219793658154167880824291261233705303020004045239499933719938480269173721769839779502707985741460492172359494696328443130359852998210853851760529372882515188533377716550045611482816726833188302423987420474360827026791968502884835753579051538789124918070316439053868564564386332501415270762881242789715751207179998974185461913863159038247841733618199351724456711815468167965619687137845503184150195774341504016365114222304979076014071824041045875010568179406061951002539426127868157550989944756013171899865490297028092430155496586616069145668899066952325986076034368241690936020566397081619542391019428924363470428853800510133818433542638161063110538963739881804872013770436462367433878369626728895734054629791146271866359952495371973264803595560415761263928149064168628306587058033058845044132477878552347222851373735030992581287011823138871220971912332739014811783580078170215577742482041780914943466806417360049486838111532686786938734168144168321354175048756548899619089353491788040677289317425160178826982528604114316501056400000052347022711124396052157633428486352789618330159537671187235210405674755626070004395194219115261147696195213777249240049387562666879676763264107474582065137659004404610927373507317580929652524820712355668492871158249828353843510130382451728688596594943705670842454965737961414521022461156194828055633929407300436756352272097483073097308854196538455850178618435328631192246948682991755814615227845148501055156514589817425667170206904371964101796750012551188230109828988106494506704419535548454403589300585993843005206769484748813125744987841983974824387916007960703363963451536741319006779737727212848750023348420390483537714598770896369533276396436796480075638688933130393828529285420630842319967819245221299182967376603304993462431908478972769951231710033462713208689247388187999057047068595258558298759328622066971203755627110017119552714491256343857538101013608442929266249750770454479690970916567684577115229512303137081204179179871979405723628492131628090630282503846389444049875016869247814648754541798302693194190188954785059771105656402361280940416123896700367583612153840409171012939026674545008468553082204626965806856208516145396771318394294489924146224567213866927325539247921976573297029463798289385388689991295633186970930656894671027004310531273559731323534350641257031629917936394864261114349866384910359666684734500995610711376667321305627293298345449396246753702357769025212157433736692159284887406272762305318694614924095842341286072226604932648026925079743663265993538535893923011817385120201644021172514125532442051856370531208858130168797462182192822582075032737172920585747206391238014028753346685596741047619668131627077742681122924057883182052378267193742933848208066575761402259190992629726751840689156992593214776594401332414813679206097734422477005503123531692316741019604153515309481811220452581327964613680442949011879824718360472558758390354869901080155901609445166526146990598565351548150560210626332457898208269266741514671514265318236215437934193959906871321746866643720381417468094261270270223771527864336793937582990857779562986439779690298659948992986325681691422249619168211109669833420595793331447112284368770957523513899841379411600072474377401990779914159088492087415999336818710247512538811736805810790300196504556846534807712765655421509203950031638829930724476423641593489006502336737781148703693789697233962244312315896169968515547197491350893648541375412127575597717388986397958534137070806434617607533030490028399931833726534252713199690716211056426506226187619909062103341813173877725976222900470806083001462085129303172470265238138951447110454105449482299913580723628369364687809669229890104838175842310952277125320586674420806694888415735358116547747236324036944112924147791276783887063689239155771929668393176026114373086693067965640460991064147200976759451344385924266372424015252425353588770910374925097943276080520649996852432389175820845372011769087375135322093047831921930932875392132865010181916539651810627844944525291948494716038864347455406994920543180712799114702084506931940698124879779720280004330856582179306199530103305520906894933070084024769224506990945192501246706298743597368476388851409415482353989301895828388098800838149549152683701707626151454284529797664563263058377414520931906903906430153200107673951253656793150836281662296516441619330180921040501124461216466224581138352385192630084357570881623478164272560559251784664819934766020555715105392221194428301863503133584283282826987228110605970137537341366069199531028778017569641068810474438932658039669606125729551900248540644209858645010838569976865620985286515454439756128816318036586624047694489156698875928711578944724289693695459511580528811615269653557833891133670403504168758639868477915523632091332058913170321419481425222711425081349238045501597318325929946212295328474880604148104543541302949174857422869436991455344799989595623217208551036889831460295403579912456994610376247236841008142648058089766350149495840009253056154351077280798846352699643762372795963818137137897396883845563167968302958957124634220487633520315293332272191196090974296320673029346450009244358100260754178605327743787224991238149845232087711381638137180328627909993288777195326129414191623330912728479209988184843451259124206951908128969153275981046708390763803593120724841248878978970507836838422202138278356803357753881195257320801938415068649374608105244879511437881896312204895459922539292257215820635447792504794238370324164573339369990964944666770431150027484602860128812493495472555586415979962304646314745484464320797496064904678598034091088035603503336829144051075262563700404156083667047896195777187331937242834531647210452926805676738164365646666195766548874348519404712429637735484028188252073346773472890658749329262323918141957601970089301130542741748220130213501620507954285464494248187738260836640112899627927875482701993019395326184701789765709881475604477691622029917854517375736505384610341158775109962331853710601577078182794442957910990660688423462862806581171070087261225304438819381553384496401525456521775552328584344906152982306478069637859778509279981910169087476987769609558274460923219292967853708493569886411974464397220023202049561327386250078877267956596552770376479549653452926489076066947043185744620793682188761631259290505382868440695397658685941935187140433201926941635864741301537500973463703946732328201441085953701567982539472182750636216897466098321390541062828756874447427383136405182530560743907379920654561133435434842164107011801992084528418210755444361476455336887995225165749575990987377363657598062180806935856096510384233216007828199978501832968863969397900208156549881929121278754114594706819048167559082144767387293686944906612676514078025618335926122374415948159359180762025130814175181278667688835420876052864383599505500199499237213530781154751590136833495892162105822628598496028278967730914816618294830629576444574438298582827545435527444722604262507032042344096872483299632275609206173724490131775686464361724689580161822095669787839624856683724487574169612240972835020863746677200528180248775256592781121668790984682607857755162931536261007092697509946030600292045390840310276920776545041799419844189407868664842302711712144206408990440624306441365130032276878133519050145943316461150170822939762338186418429444863554895077427333290387347246704195249776479317666645812228071191507732783674159582957986185871239376139333362808019901110383644185324759572295892346479924927372073265120541703891268904969530313008352514512761751279690725959995550135761312194392003851525191926223570880465138155551657520498894030913146983669414252226400881350347114190210794697020119578750463798194722816029489030954007898843438959445655247331352331184573557439034246946942884054195254363818390327221062472315349229070882391871719784136699328591242372978546412659622509497614614875503087457533662405859508719381867075115647383299116611493954898848793681407992070556361526993862803482349770123941129102781902190876552694733060520878097133943524327671549882479604685465406679909960288714189436989002625106430904381653408729688314392146755616457677746191920349512826533295806676505758881299302182294852544641655829353712872973163007434854417490890017233371475313929754203614522699198586988389366697319118359097656100108041151285099926828641834879388968962155749229035684157453708375403095689474420278053736791466824518813114785829474255912283651623995198134797875109374138552686749859044028934648014742863760528514500763001632939216661590454468477499621073589206160780178408462660233961569797331775151592638798084818458519301800150180128232750004827847144475448095563268576310861738823310195928324670209127359779883230617211661544152403414034889493186929285872004104433270195780933179755323175512640155991097533716324108420898301469129355714506090624511889613769248123181154738250102226589582619165552612877378094927710216024500689726373078964608365410311491611920324348401049010675836170465086388121993354907655364277386468475727910196447673854196447112403033127260598968749812429075811562389322825454707266048587876282888885516512695752779949559380075009324535297912041352415417935747075570088541191334661350723502532031943688638356600600381137427146370759582958900492181125750787399232249686893453245220716308023232478038296436602881928746524276254990890532203441479309370524985581289942990872702996023631748746441883080550024325729066690110055711944932396293756622830580365181133460450706613036482542604877529200790971862008683568830073388763488235208724060295881041650727796786283679176316098124427010353648884274436775728060497183324652612340012565793502139487758578443250444339029247987353344951676447066555157409315843266638634941878131921488453482602319287953185076782087465193467151584792231565541269254526691422406106491024045498486201052181370954388517454303570142571198805505196944979685924303399583118823997523744238188758841398304799820610742761963322033742046276252057540433191282369777171357992603003476019122107667304236330729492427342613089484924131520954014567222131147758914200725275343585758512774850037146223478050811603130433367030973861942246024878636295657629396450974714929122580731188498027841378400486140576120539534926019341352946555088423408207351402021477924006745605174004981354998149425900311786837809728950111857521486165190872030293538520186913788821960409117183154452434346472340659051192385130123804807207672774019354278881950066120872911486560450207132075608909637090784160337765245374585309212109844210653843047121813393516250943597928448917973065142874561317035568529906878000854664864042704809366925537019977346405219117938010553235663542921167687503811940434542425551725999262833605085282904663941815502480243182750498212075909226510922212986298650294637529010485593307792549436634114577645195159700559259062970467603416445877753839374203711222207275049311323282293545964485912120964849826178887271606695773971241626780591285506170687690201170827917916627035285461719043594559895853105907065655180192182163744648377432185009286779805807891655342537347727149717520040361357149378042083050103768661788581916710145231243111366869824973430810228782375015471203130274009802249645525948210143099429077154648134697506345654820504102012962428783694634716983994998834014491731396967433370757873023489906168327980116746692192908738655994726198086084779841255161326933380413253142762054988828410193224537576354284155005971186785464401717137573618943497226613573662580991084509794287180575809323668487507412434640936559731758847977214944684782325139080756642877312480991045670433713449100982835222092695834842322854675197117017086447121076995642058747207387068791789847852879002938282209992960666404062406513829341954184549467221453592248125004633608809447337681797213415781111885723580778881420590538539813216347272552506895142524094422517264686459735564400218715963630093867625570569588157649104501121197779224181870237793446381438731331861716850814438119610583190753706745411020489588924086618269864186064535561976302724280386054514181325862408066137382600931465632474103073420611380203277939285466579321104790677233753669019446939560532028066642386403631394684398869730045012159013961972944620898923727927370691606100240701292067979842244862583256172232444420121799120441083356803965543916869415061645280383899665491205145022493437464773175812847242271369263284193758922438725698423315930713027462916390304923635314196682713127312004644350397434733754864573092057997177780993426432246182422009169117435548613289437678350500919047069650864349498781976225938997005965482554914946544756257538219597871011868813406158409577379775555407220072580987052846341137082857446694608555135927546719019175411730825736761534083774649200716111981110647798048697766964179131373569977445947759291248379128791871076635545579727650755711119337797743412218735654198499104059181544390218373558200444138934433296067137651231147013704246129917221903736680427019490492415657126673948927933034991340842550533175100256366282707638616541432598562092245545664371927656060134185403428173385091405564075331112605538600674235032032313021472372933010429590681970501360735830683041736178631412356341202362485823362630452448712976799377194048373677983021286735163024538776612511524072856716853152542267771275474223865023235312454700755939363028888624861388321500111114588051456726530368604800240939832903418615642020595872592410804634396798049435840834299249884369458197918317644577035205196651733410730625579838679435856139565558244678807003197806678386980361292969709258313940877371955796132193010023296865333893418112222296478925189138926759375805538559891702992755756061489416485791617315014503448277865403391681461410699087051725360898398293843168239291310396045934266412920193534622579340624545036116563306904718850454463471991989860507430786474907415777309023513146539794931962595174108124700113140356084135919877652873655154739635586287801113207334688579221440394434964147839160695359068077736501490515476759295586815411295624659423165971759714035175655619448546186047801098426190449852425411424857338877445208080916598143683878231836519096601864807685133951496916239483221956949052962224191720682529319443726783634999191983438537588996107886740372673270155420574170768523158542078711953446779383524906367361380723165030748304018858754405184650283882063327623640604244381368356387233563287841694116969550840664902509046123086232765237151322506349191517447927923056545762389716991153916563837079829407081298447542740084645419493833619738501101443165543212118988759107408810853348049307682775505916828848483340030817794257395125550820481259644126948603428760416560117894896176732683065786341249703022326626107403396909077248365535461612248265041641492268121988875394610030112103975719968547448853485709288051290524982356346057870982185279246150865763559573018605694384864178923513548815421045628047393384841471069001452908792375846479246696432704388479603194418494693878959563462125318153572266298039666578730879126986915222285825865563066130314693811892647441781529768713654823849117225402399711817521091500477604453410694130727484785506360852786950555540887277876958994964138633150688691828678944522904628229431083652418428310538357587709529565856111685768635493391094027233890247809970161794702145127055749365457032213636736299368147855386253860650000702524731595028956709876873750422758387968238818790268992364322113617253869242403464443940022812461629444968763897058139459241198851544700446445034450089214446339335600652692613014115586892585801096081244978657733379950088629080261378732627264100771490373871753393430921590911480666457978074285820201645018199199325323864850282250871389020041451303927361028157186206344662942001162465273657537478405571576184715735460747354482990852387482907002454255545681876445446742653920397524335201114596461908098111484386421926580378702702483312147530456971045421149025434192130647064684817824899631286249976129772732230899714443514531524557751189575840421715439404745184565765560614220524626807943324028625015967895922114508622077363400619488579811813623468854900698914988113315781829155890711403614802787959817910765719363712833425627645319186324762400593656387284984947226298301288371007725470172060357393024105628907699085427163605912611976211035974467707228698150595675668362664718408762972274942464469143484908500003781011814784654886560507781191277318526794944601205109995108135736087414412470379371274397949968074722443392365391994784008628735392512298898838408167324832792450162059666326701930763343283838352865234305901965041395388754259073721290661005301354648666051381596002114372518128075903347294184064088269089322778905897741817078135017440034727469591098752157073868089536131534407350578355161758693757368596363602605546023379580868041636911215145613224965918524570119651570176065644415283809996978684502619176787450104051945353198532953498257733583897063901220026686943943294247140213706777873438377034491984690680914144900912123317480787504841860173197532578719310391519545476858257346395324430633105806362516472087731565377654630988666193968074091992945880949020200027170987270893252968729880923602142641968090538934983716653879126616676826702022890272318033262980282035129359778858514560134611725982636328333022761045373456839230923524336051582863868729478430742867280559049582512307380249466496407566846349026865470567639200252006152381934277710022376412639112241911372544828998670800707726595894052161530534200041723198937141463753459872703687955700947018326001676029161728491804685866093769384633081104464172587079132554644563440433299197251246170425893866059262756154858818320182217792014852848686687590925267092346725521212431646720871854116015275933981989157563198188810117218336865727667663154924624222633669885907797440471054092629172838487362091318962939675815389809143013690486879757177803991124552906165549323581342841531778802782171681360955067800982881508627632790933599970522412216889721343796645768325439407636488567182061659111730896756033218171095117058137642319493714531239205995315795617288728239017626003577761509957621536943447861554648966951242667487833320727397775267176161133000947909547619267124463613069881308351495139996098779617246920955846792322961098410817007065855177415633280259423224982495676413876827067602674531536684900905487156242630644084231553830666356913384034587804476148072093974839673261200922288979034346474437219510336211322783865306507036207912271383794416162972381237436904577388134203344631061212651168929570660029106234440755916450077392246625386696849911849341543925872874829120348492239920435093609172116187263723336751407500099616448299093070648365805439598124052647957962951884455126125761879866670976570518232865568022883777288679625820757419986001292931278939620262021755116261413902279529985319976022020989774137118780764769772397862172028497356373073716238689081530717514009366003500407758601127758121606385101915228535476565649738082762078509120893326629389317432095738680710180202955811381693360319028142510688003886174679177607513426811162869670995556358378501560882073781287806680277229390182656878255808052949830823291324528562711644957079931438216824102947449532559263667035623251083434642300754899932728532484476326746377323417760519912173319682397810720495289117377902183160039702951104983078687963013761161480675548148677115859758985222720359739161021404392384992293868860661706878177739031652570572609746647888776556361818842451170787427214852178246256577884852047104667604568306547651536747825138362780906337187703554058496203600709477758383780810233285207200402008229846695739303079350480578507809723058451495521184372493066418782817455741229720403987386444017411540653546812743656242976090713929654116601934744174870676550564454828834255001504333570741939723752705173624444413383098695684447515685896905497186696500150400652366665538168462987184922324114064079812007337891439357973911712792313822506264415568995432138337073416477161421529716098581929721336342841206635422820121396922200456211860081718241795596848078934818235946707612753703168140140004906606151819654817241408174664124354002834111986660544597954146481433986208833863413042878812436543945100862271602126969219338551816120399352049093253825375396489721285597379119112553446010019661156551400167332266341661923369538154198680677539412327197954344817635799260841017893051879117543256283897549783570051012655928268918002376705032009161139299431614368633371999918772843105891112733753767562183785509937637267962183708362541594281258407469098757205463738286076817929082732361571706567919856219146176029024960100604259081477029002885552395910498037346290834666711653774436786616939547589642596277398606602424754160977725053898532085412978023800763105770763341653891192835522932099288220205837690261532225526211864807074486360590261134160354827930537627082366025018548026948823815591262234582751025452185013872164296213584292797331522938728860993844146058917937007986830784613416576462528885892307177509993070101951953162038014817679514631629357558856889943250156300481135350113411137171584429043585252891273040571583377135425972475475497252905275441940445099584013801152185066639474333237533021130252948314591414883611352390800848086984102323354531946934964441242837173273092462478793041224206668620756498019285764039970692653939914232876792179433137896098131742643367153455440631683774810243128103192444374098233788102082533204457177251414843636792096845474242848793738074153630704203792244065005757046733755691533131701632746518921961009086119746020536561903170319146250717615384540146174082984984441651633805387724604966653608801017317488616602303640448651173706246242778256421681111321606569073070800951845149022840270961206981655287135676828295661591860634131041432308237269012934471643201792838889712084294286060047095495606577642753643381334752988150961632728108487930099562536790104292484006699188994556625167577032837728484417733834515095039251042024480915862084369201004748868160709900784383242210738431842176382016991531516459924139302563814665553124183490119146110572300960115077914738731452209978197565391401847425909595027950908120310408107213530329588456761979685344042392034934274719929885455971933628598693484811897758732004514067811569422294017412957991028164035348158664760537376524391809475674804443853442810212273021737503042009991677396860082920324449110097990434632661270691864567106195251786659144131886574816415959997169508636153136639628117136520061110390751516081195997105633525993519686712380428365729414732456814591534440807969231555406848281063066522263981586221945524246246487647461852750306946751043345171650334772793122896619727104558051338791834389304523656870070169881385709837439637601002154661130553104362900049601196721285004303081937346473671898772291061498970263466823322170232099025296538636437660024241988789563061106422964844868922087122568962151717608501710476079539388373192765743930641783426946269395081146018768043650927590528157688790452667145563775746299311855960219796389983663859798303649969354651246467899725090974351496354335390620637331833344204437782823460386158927027778515671923679232501680457356526321170047601817483586758863675637736009319333671058186507800703847533510208570183154504469184756090164735280178694150567526433736082961882331544590470193338733785844915130278013920086042619953104897812063499724475102237292157714637597735239481208874832284066763897391590813283051318627756484145095606954971152971294148757119776985064381770806503008203342912896383577986744950926491303056066349460627525902486525899242164896686785292339595213091923908297213035644881518898929471444594100339380789908799938485226578436800050015791463116184312930901013046675978180136248475254783278043520855306873551801558208597949762279142328198535243634953068552970495203353867494515437235399849929249456568561753846378589135069784219218573097986625226554196701784251593358660905843554940924710795110505679125501402541501056063495118731631945042802727523224979427752826145574637151740111012459857985776920773622834773422426951672058123283194880162343350423922749956355379232119779085920367250931018133505756430033665706457353714777019848968539825785212161177920478795461299044510975558599878519331592030120237881471491439812121033589902016910203565743526836765841316669406034858383955950868916077695234697348002581436106820032465220939671283403541944122417516852054259338396666812477271405271811051148714561538343695428003650204732246420411336346116675244249984049519686804636682514518498532776400356923845161541387898393829975064693122556454346467484486924201009041198646459736043188669586048449104417359356979370086660821251449772850958635767110825355393318528785051565897684288540288039831028740899629562851979355359740094387713663744145934675386454421673904220687811368237927982543087973252459695496337127930597068298418706267784658167728641560119543157836541448244279631301130578324884794851628386912291693428291368401135486820271154867351221272887594140218342963111771978865795989821408278314976921629243363386552947269393625949907951371998897484681534989041566154790367646457156209046554733877599331333860285667683431271304065217115866995925990027368964107769534415067436432821107510366834068490510829407575460805492288518211092850351572739814188413515937227439758541066212317752276523663962310873851199925707104658719349991520449050985040199274104576141331882711670652797297817279145835108836658097329804206772385906700618854313992482964872779704606367203995007392480899218941175480849267122329221435323703842471762904660476621591944395940005750591396799994754607397690840077870743192466142885340233294392680421706236501847555061977213123322739883269874733035086502514695185585154690944368249757500477820604318129945677991974036151030150909981126671105376153191739857114959154537136474664082692285437839105491983259831061006401656722396647550892981171389490069027503455978078448873351103984930554248413595915376298164640064020742012534585137125837542095431961484445416900970574333171382271228630986368964221003516622376646651527009123032209638871549778023304349187101013003823218455845422636927146914606030955747561186195716245859568506283333324682733021387644362228246083845207982540686571020837215541217081900177420607021208725954275874684248618941730110721448646066771581282062370407684556073169287320301507962597732913830928597614515056765303022390270695026077109687376335601685673067640712004626785401779329179967086871358316381257558772054722091898701610029333246154689081866042520990838520494715539158514585210844910744792175134836174929584351528939605721511933626279480769700473935268900734867401082566262231636343402410777243218030112426621001601185639866592276342272387841948143360590000121837569908603791366787148050928848935448596714552914637291077716403761141165184758412681563484520422478703662286500549371205366130487028726398981952635969425033202238004510175894756084833649094538233023770409101610900907267111632898143971954928558281217116195855658497114398130536667394873040447138530171663016368330613519892298867318072184071803378491411353307577409404787164679554091751944800210522289096886688313896328382823264012302042353155232528651180949415899519061821116595008720231804999796152709117243040946696760221372549759236101757323834455063874628819115999398051898026339754089536492027175616414673672987890473033690462292047684297840897506019287111835828305816143033576872818019660071763839927855957431029471641274638668327599158183633434654184969841461633388575727865433839608067081744007661889210203504652392761186822185534488019919777876212721792406455577433792104938613288526793951265172545724492299590341945058173823259424797244357367991718266293265578542464770215121385028005241822693056356474655871752844004226112708074429216616255422082014199795062736008945249169107851855267852729114586035688891163496531259248002650612534561096340457677451915623847634919681891942956902928193633832216887143971642692581248610772797667219205431170058326897253598587055494310157522994992325535444678437367114297873976924388681186184197844995647768427614088937800656719742784259549976547959062803105562373166072006802511142999514512455981291816430091817493679048102133730207043082978128785902097944860020777531508153760201662190624993580997241490004702902934919756910133212684588052732848411093365367891189195138066624466738841752766610968779230186216291395282140423231904471543337340825339563754608896663742880263322599569972486251422472118893521920205508790050666778161289062232652376054638986007591748856389904402600987881935238637176748326559302367069370728311692869438163909389285040271771587396589688206956215741447249463126085657425428697014284966616451251079280360216727512282102433946537008195771632619838192178200435257921987455274996115818055342116671798727277671992161818541605261364135061575908108655004906071761310616862293448407182400277766291834027990099809506053265635569648168139474756558810656122562353068963973617970116991563656891971125457947428685229537659509270059227478133342204047070523873718639944386044323919118556729113899710392221504061529815083382707386908177321897095607357701566396218780816171896458547778247226423412652239074399477171823797581341562762675416871903461585327439176861147217970892720318777798404593409830873703464576122546669440370963839577888805931901854349142807736451493342919531896571982849544599788673237924414345520999600230209667503770930691745192405498778652814197066721669246492621532728671569583445907136829340815970548687812988453847221962053610438479139472638717652360448260483061908797099747475018021049123968225612759919016518143560067881160413287330169598022207541992721284495248561507764190502989868157309309898195217487111072248460971949483921649416299156188907579321465080322515661822994945041448452313846217559369379178189330738052469116842664755544024391502815772722889187508149632421163549892700880117293022360508352635178722353421651456345783168616373988123748361292564574779890821799521958471348946246720334615598407010609189943369115948992530767184434500746582756957685311564112976212566527471073884614067407497926862013362828620777481456178213612394120255458631102598462478134381675409857927334347271961138458851634980263918536640057226347163321329586435146119774406265518583167094917281700620405305639962286333305415833808253637683903477999346479067656735144319485057405021232164485132209786459044026345606573888930006277508483554027536938898819172169994552132534396721839786632831876266183006134408302038430367735336066556331690311754123982972527703519217029467573869849579820344266647065611846258771268723099374733385796827237153933754875249818488190140747141692426542960231257175274223763484942006746920556737194999318184837338273447757745084541361367671044234920097477195814495823296320338344692155579172713375578469856305457857600663277799277076207370653539655089623632389135005349921948016988031517669017593648801177893061986892295377026933717436326144976798780537025246824555724116151350391642033007401901557819884524212098141833083420005940880770787684884316461067586470682190560759051500285857638517223459019683998279082088190659656040592643035331657998409506816459627336375540128315290498929096303210199003644970466790939512208845171560086534759290028203708975429986601063261231936275602478784917210026871092833514126268571292105553775498498088099707647257381939122003757135393066803215341317063829831539010047372550275516490181612764710507082952209519047636148760676944568058647817749802222549481483953997568677367370224944414196188030968527004330686794573628801233801508109738811873427910765747176422035428482791990028614661135716929017142305270276163582871968990759910828755432491019564078224674325375607445263945088466788172655011151409920364170526930974659357331381997123720374925627760366438457281526239869598303497477795691170324124341253767415858034015571015055129388340574300912715045811373683864646039544766874584544221280452063513012584157383225776567553406622298195396460203585003108360415360924250142508043019112319541963351299272079226686839826622273682454317227190739648424617099189318964661304270425292430380421237456772018771411587287371288343821451169751038101254284779183813919730124382055823620566354166916037096111934268285297693142743159843764678122542784002523798611123199757707310235406901571668130847554880689827950143013478780719929731121172319369600202107657463017005180725578437814682854606544397966847289549473232382757422142188095639670243105995440958580201000143167832584067677390240087667022266488394584805140972897897698157398414891543708834349978129739002358308660311670609869602119506799948881817966334485192569953370878226088272578777331887841075475391906311975739803911646825510550520475021287080794985235945460409621023320109555674848016342255019980657092497595142213495053627005292594686257736944474951807170118701445823129405236636151085251572648849884278647103204764468702978804386287335069186271047169699573287842714618607883075464321620119601499975626251484256949273578574251634418463434954008749434311499592594944784156523369216160934649415908072942343977916430159166852677603234098333545819892083850927029477546826906363128146357421736213179038620427521426682439717383966349049647648481558395476235473696305088810810674954893201364043896381051690422864734799383860963604927828182798276474212362524352106446907116378815409079315115693707986324815209683419456197799354736680931299801813312898272758346941716318508076006340503882743206980263995174442937640882390939252481788467543887256383093877431168184429745561888569796415604277780035383164079412525895629474332936583130254158820925558634406747220231689678762802563068435065105698092156601046299172711853173550258186401119708521623936544172837749015340904855076840194743441408311175518538511230739966050115152114713453875278463097319417004013800627055993457794451558049104417260522952376808611932523751781534198724124276204465947867641186656201829739199114575925606072449306096983237037255451426255556228618512718666889924254491313223293307986755056842014105426785127391862584247157505810633192832569662412918959705659966659575738913121814983293728114446430474644659634076648189820735109689385179374404179864251454367268082049172957733731347334805720752464555817605002687186066269255141039169441236100480361465437007617476108102473523977966265880454018292129058232245449609052804303109033323358914578535346506270088747333274397925080921577800113546347018157292660585887242950578989589962352867364155082980010726896403956479061143507437281189286190825381017666353028809382739413491344790855816775582976768311168630127024847061275740436582834909992965451853299971136399348803731313220546056931297796936749375910428620041786938246480555425945514937877076209374923507736448566745537772405842079200534870049228348094288102402892536156130202262779563213485315234533831387338813791549258222241994708191050789905214854205521563075174170115482671246340124830361243695544313231539192405848362778870138008946371338502650167639336439231616539910194310185105687454714181762265743707690581652908660324857895102126198238260309817939096852825727214235609307421079509359639416379619058203493710890596520856598180167247322826718643320429852855520513782098096447925809853699379143557946002403748334697556259701327466459852189162547966045558158538478031105014313744644973966141603803037791336458205875222800151725281782266224845456406883582255699311787674887757121413028108835642772926631919424768168338210674283166551702840315168364668018223793227275941340578101373129073053224718544410148962369936112142291698140058012426929041424824157999644209251754427240975851680510791955629042083391522490624469102520800697795369352525100703318824313414829699731575726969788268535186346507578570712576632633397897622245977104876722433415570493778838600140040922083667216515267209606809462554312594510202079514914177957918341259059632236253718619304475811789986889436380944849034950896893502668755671512010353685003345518179087102859138661392641414578184041247501770671725108112685040345265435159012279206843561113251746939744751986761269978551231629826250351051973399954652990210155394874996172724789023101760482653169616659970707985808238471994220853844724429356499497479064466661141110597768041938404088552656634063554699315361873620632056481166818217802378237303729972187504126851848423276185785189090613595382865477089770749264725728553571858767709454415144792147890493398237184763877489211360618049427919701069295677250171363081175548223779246676002040204842893284332528644472087920365621110010160123837692462989691192695332225746952675864232106282886925660037649491731404164300006324273719978957308367108871306970708564547774544862577699126020528837689784288250549709940851254074073507151514746674510169563860846631069524014793028367028049680423951956701708686140297795953941224873468472362553870288252623242682967304102515201796219837821666030317439433685934333468109947745970667417584102139649214556651105358569209533041849444060741478250686112566376645086003627480689579912766324265637698331933486720953475703334759943352912654827647807719901100503057681447880773357990511567623023774318871427193881177635010353612817036201136650733481597893467171416316324708408441580048554859323801952723611794806165246907433860649245001304979618729536319426556035576748984392981149398401592790867286220427307532399925057266249172584459061610065390819476144994670757900713323423666224398205446333451160902803582776517249319273250592295078470511573324014719510993849107970287097825697903813331196387912680140196032046583048564582327748048475247459562367938235925383729059100809289296823203840366237488402525555245915783833683432536434054732823467958728839729967711426245125388517068389607775671920980898665331761330754035321742424663726245564463838253155623450422775519229540047238243156712425782702100915709010753073619042294797368922973412335275012604151327408782969149074881491559367385141716130919873081975664730849232456410146767016814985799780570997323096892901092810557108488690112337621096446687431567417179957338909565285187713971488601929157301544204338861153479906080662761237803407518290966236992235495619320726671149799419073464864738952201456526707237482394746159076239975752806642349007647616381924725819240948898923801742208148489083880238118155556908078994429025331441185859635937508941221639586952561620222706299908308804081978871782296216388305206831577978799234605713249508849208670412250660519008142650192060683924028062510549462364546491254801881548663509832009806787291547983307277816795604780778464268869260340605203940412755686973727267073858774144608402928499119693995021927630834428256192639166709652658650659165178020387046992957330750511754238338240229060781301047489772119264109994926775145864239661676316896397977236517223774214552703130031370076847595311042071130818883474427834762888089221370885484251860684782472876660580560769390831944892352079982902613063186407000103023588464541616152580795201521597228982901573371502059823803512265520032449961616979709487985429746918919326083307164784430639204242697006439129848049557748979075567106744381198120032332396094426641423251875056720714970960572904674329606199100380459242505692640959196229521410497814849304804287053303772654596413125339419425443135683753028570833691319061926447323845153120924927609039638786770980715398794322119079566379390911776960156348327133997802088786955768794520017882167556633102044700731806706743476686151685210636193576620401679696686694323905582866057539403760926734794331550872025847061497832417119319887181253920420997997505728051281036551412777715710920167369150402828020880396430038912276822076863360024217053635732272783395513927370337013674949099664839098201736654916165794198639744043234873754992693462793426647671497345946249910797444381765571642223549012026908379949657722948515605071807882023556841864928620383312933457463863460308566736003176691997819570867394532023618574762308011298785894105199719528106978149180515646328618065562996452988004077813819726265469846061148221276798148709144999919407671894583969167848626913186665864055839170483436022091693489841314534745101686029727568932424811295771888926349956517284455383924760330581062817395530628735671048897956650685771819034351706240208559684083549206714971603632359328579117875984327582157566273072019920686699906614907370659238984572794241060688602888384464824975279616853921582179966960789175940337010022789680235995886051657237522369709322137817421517426677374219589445375660665536500131538778862783234744239216504924139113583797207316310484255961147505002716483695571425534026737091105229823083094179224648476682637259035735602319894209279107856562937651849403082543067839407455057071351646774797247774222782158036380448235684223639585806734242553591335211558821404204237256123513212311049463942701724847640226032588879822195241178106513946884554575112047954202862480981651811732832170241733244313334342198705666807141554306923610649853360242133159557270603442298299294793034125160312160303807725394903442804773924133652418530173061701412636022778294601267440694904482050410650589838980956432480316319452644909456772485538188724679585599580983656004115518664803569627452782713126362718340392455489662893033537638770287182723677491232488284468289912712462332834209166324495124702911980920314256443344914223551915954893313910088679265873068265503448489554773526954177133085085088046047182495488434346239169578852731330359789862604251364715666977243819033822764131457141832849763696881663664006625706629489750849933784167693358628170261195488272023868108158014362819569369652965664730099155592094948436111826848014185201798414021653255369251812968433068717891281514268644549474711307624856846968897621582397306670746779700575671859518605484685147344256115807720008430761636648731288502676222270410301903351763170769464084903890836387214984528352974146539138678246371510090992334197876435621755830334145436681848080150055496972593457596985899023528951535248826425006863219364928488239720299863955425512356280329578327033627544480425189243523445206609315846396369993612766603270017203695408007982848010374932390692227300602067041990161016279354745952336977503339693471790594427879865843596083197087067512775926710803518442389542815887898965088042761448203165495462781015481020649578244693933600568744180329900573589096738187178901176791913630873139177037522038163041136188948602112284622990311887223363226607165557682795682887653377995524705918879539264357543307789951163086603002681706944300190382739377516165129296507211512553691250591353485610745266030919062151719085331640432409621556100635979413376617463712736644977840765231669227556467679896654790461551498267815675655175320836632751915716653610619717515315849381051893420638489070038194278221270568272530255175674549261087364833099685752674251534136703420145323196772223280210245751610484693883633803760409800669808657515981368846623673114714437426051474632814852151410440192911245755228656612396326144418313781690165830610278254718128121356050116990617892346254317203149115419377631787344619470756270208484228198624389503044293577488186788226119660739658570154680620723370068247248354529536912577294803420726638350382542012232153530812270466174951594096553186114208609432157822389365470779170703717907390244742036423095036409506205999434567345230245684246470033258074765016932587118955972860735665323310197530780748862772401874459028231739113282661736184912273145418788519917380670530025433326303514220627719258775727493534956476346915511669340947296997753649072980837766917621860030081853234900849062046429721089397978286114710120775076786237214646926014642249504068247019911454016068099737647529238862645412673272134047903976262270180468366183892363894488113373419313287417517932052530788811290305196919955814678972602920117824202818836024700450812587673231508771660588872030755667965383608106630588817507568130764162370983473092637844856888881066119715177120889991735456997994213433476700211055986941561195064669789057481808771015067414921660250124653803011104602956412371393668535887637213809140200403369009493133200923467696724588233508029263115977603809693607652359065487063038847205467923328485944959801909251207359891005445040302557974218026171120138034935852990108706485771786655102405836590430691654987968151176686615801093538520908229360493535194396803295429282911867756689855295395525626826818631951859152470082467615934288229500570862284397956369555652981003472357845178313344159396842771749142512486739985295238959432253084820715469122520169672572891828126400221787248447427620570855668298053530418111172558280022825320580084073810065872363939498164559364497079562791332725875081955827836876288155610057118861927550112323180367928835835529365417797620144913227614432294288607815297529828470059510526442544988355787503939626374598846891508331256572235326299926618749566494689116147397765560106223412247457328431668993522434494489355424740358511889582004938624816524262821307717924416271884481628883110098104357926563020121059904701668813938769997565669476838144644998106183425561998421173966631268034551589084709894867603444196734325050802772994783565545227098472385060918664330427137494447219802321150767497813804658905049610040992771164961361909276122784618023444034604861299678490117375139366405216967027197890062942591333898242565991574355513517793550547453802997061609449578989381062775955729325761072396227260703342263990912439120218588263751638048549204134290482994503144228683375989202446902616097156510305256730169237293914158285734342616598196372711418240609750095435857847283721665635534493413504308379821217744371203610239076168301376903705723534225643038226871924282415651754336044765070355475390149975134722511517103430310125045370863878910161195312961302053426388662301764348067438550930294177873208664510933759572549767143566139825516300220947304350159567598739131210630193292725153078410710506804494201645749236658815078517091249885873199382841250832542892732448853740976353873068825658636335125748097292496230027487594395047168791591388250958663112185812629458668121842350063276172188617467779918573105124798927198561620779852396619313323466401648636606476059023563865330935548272663443714116964529631621127896606047064541429227103191017845468109299742294207991034606139691553692247281712834670925923913778283487984048378736842878744001047807420484567529785299495763641714543572385665861245701304842487198353407878077721809020633545303059159111500016150475399664298306309329269266636332030841853996496399676713254913988619407215319929312896365287710350855085269039538315666476655848875205362585855354697508578781204104023282236851976781990081779460883242308213955204881362140320134263521638523552281951966997423698863716811825523805198596761310205227778817024615358423684411885570606789169901332572024935117320098557733545998540141878260276576243592367664342060004052097146200019137663536379861738344935182703300750968255136507467145769694760936642421801449175555215406213464431630737700897234590080583280449815039413603446767841674403111115262259181975008258323590539628248132369053753754575232370147320285837475847289381973090312579648797347473174282952049605888365469273364147094670481212403544867409071325606288193582023628209948691065037754483582886677354078412228762098877123917626793954139140625164587390495776682031475312668202097492051164567463131090527065865623636906764779216055840039731733087261177758591099745307348807103120347310313934498800633263984762946801215105730662371296288920007304168705826241003326225583182479289800396202052367438559093287767402302156450165544299591471550995426695175342234559097681873985340910811655187927605912033359848702313835612173928897468255242003211949537979539657515986239409758819861179513771143788172805624119138872147663920366669351986233367818401895853745550718188219439402381042027666706748215765414730898569171925614053707443145784691087277345235917871729653741497669019234003490937911508528506108918648166149107296734757793789799562485108615213539275744524379179080446207383710666123001981218948262552277831428476832918287484778286215918508549143371767955665661710150324235656994230493919455558972467565042853637994452546031013213183578696014394467197775549935320985277325964711207669861045055213847345381481239115555701257738595939054484868937310440339621318791777786225885987451940271229600140884881982739215846312803197900382360416621675863500411978560832627027378289390041908039733636853160775594169011220998043420755960247063743041238766427103549702293222040855173410526860295338212428314622776352253551930855939224701329458955612150264394649664562321340352975913741236324619728093589448571947876777455371178082948558373091160874014378011421326952603341414429630490252916027622998290066402768687782150906873786044531974583897152384562414916903939283158525539436335538716272882081846841109955415078053372331037470806636902725140786041814000869996424806362424473765299998147397008917773469652668546917100566448608178638038337750034469899630482088837904713832451290571093348917120762980022076222023489990245862700456997642743020337093656661854099736396209608987290269399121087660778014369795429951943454050523948018832057282621064765460115828202911309249968355184088514273815820475994395115713021638565506091769843477546085327407636855908825200084017877585549491792446351677585690302986020070265137964901776419935536022896527779115005660865228234200314705553808907963231642941252450113396415820299819932923617168997582967302226585269508613513225498507306071844750538436965906096013588831353442581103454845093642660735901651983189090555617534520765940304241052712997055918192901568325542852962303515120487950089603072607127634478601472547949961707074448358786411753446985205413997049949122350052918769098833837772828913197809580163694409014290679771550910342188894348818101415304008847922271351428682840391740928990215662684918230418850725078960804516727851021788737853308030324125788094926446920788887817212501529988948051733469195204898498371552303888054492292058425035613393585793879766194216102436477174748091497744726048872828889767643776837207558395823686389326760712118725487323195897905635701261956379529002151672639897978558993660834850206287573926626761769623721666278882546408238916753479532133609311421951558866610225768527892021856699115418475732148379371474723663541179812348273178542454180934978110814277062727099543563021335603290089499886385754310075943235983289801385960847979345665278357171890796024844353664628969423860175738555832548696968780669029325866920701538003741159070778439333267337217909473721210459156906137237310941556020031927399765694913167456351411715001904467568026247407418518050937287628172087837583788984281261725536638601949954677736553767801685161178000123786767959526878660946665889396852578426831819537029489254887678668776928990291113523847536836750670774845280955616521257643237973553198622652719350505702367974035584665785502018148058960505108582018164284583225704787004625944010539861499396372635877840186753527645015857769829256235985862615535308985785918421841803231549915720820503670777606397849977533328856416535933493659928968244545420630828126296876139889389704878151655840864148993657920626019752056042911177599378862534377561703863306319353254088913262632691325161066536092318049788773914340233518379102207116420452614165614349996977218261493489459773416811727437429013936664145843930644047753316129292173260419420272548700980142352322635473410725003399549758430537555299138204722245207492921460484506460507047511578060357412305175791588983997017919232322426202817908102089340662610942958481643727286564992058296442523951512414306972141518571485426578051008379143607407805808985532689593850589935987727169498076275768803827642836610744410476260715368003113887792980996786302081809486695236453108397361014445433430802732230687289797090979190622063279100594584285934005659477390380127035120829003524362720997899595130763354953117251985739154684637096490379119848619054994956626976940773313201923313800321114918648256312032733410670320384022841527652144494355868361525736027661764912539521238885704799179305018167099443225709983020217491584866855548174524319092471646462804970839587522161932424410381044387160820346091794741843028818837569258846955232462797949695552380297340257753810360564074567438063272681764358122027943841082027355856411989996208274385292583154734710239181129991945693455544354406940625159429952414734980342216297259158615797408470296715204372857076516703442408317135693343708245414747079563420481933336099584985738326115125809259139613087872840850618812156571225529105691119518308147151551547643200997476376382751222235680241148460607021021457507465636489810822665971364139009811431068883771592500999006871339044980215812213111306763146417387212338313576017027559228313945783243360970123792797326838760826237470561110973371368412428541193088636986468798346414315118107105421224806394390188122153464085733714296244356663807348852402445098612417640197149288680518242167094537480673983860694812386516592553580664358004245980321695202325823195073194917526854109005681053588310167883808727694316388828889526004688047258558513486242956783079578086167862196469644904675854252049607272534398818258915500120949095286333174188748269619356646566384878693396966644120125243884759811578759937180706777649101705236910109905370020648078070652881019914382514284630248472798284954322401889070758317832563231894889661141772526359927381621554841867263941409531578382340939021700554777781621634381836671668928134579562467922654913481950469071442009845848494850927336949440709916068598789573148877365424686698108487159626868246162321618977839776006980329160115880671030731178820530288779986374998863833314639028161574426929812102435453733042988915373157263570255451028403400494987326558203451784302253459772015434766048746721462925256556394839868834052760618738468826896472094717995764941540879290711683055167638157897625646602433827255139718677759186007946403833999320137209708438450186323890154814086427667633572152677598053644992256353368402546302379353803134632329807425860429329593032636197843440087186110736390387591948123562459697711644819508250835979548390014193149591007429086840371705632201366772221748802090714485521754212503190693801173894656120026786337191563065186073757992509610635158436629749513124696627277061184231306297614765248013128618045258094590628749910727222162728584159236988019294616864088169076995765229266732660771536416627639774296315609229512514207456799556120969705069071608094496022101660797841414550345459131553908707033379121208397458913568666853255124084093795945386120810598240131460913398289158293566230433253794882704074467056068115100033927652930407889791199498518150645770379170341979407296535733580443350240204615625494500101619265907536701870085294220054212536245893168967604533891630416679075453959039652145660703759568814747965426156834464948202538936256857766612029643216432939330317819345450285711710985439214801189351735709009174919490721098153829106399392332895023077942158323383037377858650101374965334099999359024089036224802998028598636642630145485699792960128769608102373748530523888226389286468338851775526082218579465067367368285761927048480508157044223206662132548008677757803393621056976183498380806547904088382467971629273579235240622753428823753791754284232357993759552281351568353150518460620072971018096027537768261645558613230187724574386796969514582376713469258899994688452937582839883251023462217389807065187168815936055640056164717818227071456199091859805502713088713258042850764197059882491379151900540566516927546473036440160008951824014007250214483194383796332677745929390989431267767204405666994126582629064332998617650906588821458380858469480474797625554599279973513734954291846418983361074468980640323065785385850510962864386912091395589835419479124684161968971695579621515423661215824820693564306540478270751383223353171575982141140728674604044039315226578371795078272772269184036368286390867028515168054709164003846103042187287833162117514040221036015067655823808640476856798653469799089845821463226396804035485266423415026428403821420730127182327200329987815744544343033983994238616631410836784206773113474778253723244962798056039077026082765591841407097323633105575952221861143251668541752121940768634962507051678857736648986007053633697297474726970981922963111091976040740891743504218311701073774786826649339713621728749239305288578617030954982101220195090460579829520762990918865888082443615194309545264856095165128941209429879432626732635154780906132329308333415126539815027567544218354751601366797961906354911511735682660033295620319601690140749781196992248054230138119920315457791133039822328200068132757649196709880844198501032868425711139448075940633686599266349320983319506610114903772878539889362097868362407102461035915214029866815431099917249813249340517281685284856865216387657895022695323678229487114742106534498467882675436100923146362733656641160355994387678098141359891438962692375353443162090599390056626880022362752692892052462140099445026159129788674157190233148195184216338261867377494655618353815025166705214111165599608106869540504732806993906360953756322053795582636634154912253868198190472295090460484167867096323359977300620068748198488589101832414273120226115804933289203092647386465030364898487339023534608310034180319529697250684773239241250265855679261574195616356908635371873003378079780677921282096293227358732137604244247607677964731758706773579820077559667815997833471958457462946867183998414535238726024189238095998017662687188927427076673729490541717029887969361655721924566499881951400114450417333363471478161940595652872360113951033720748334150456740340449750602795415114603125905402705178245721295145681998029138053486466378687512676801106369679764900289111209523657450959384705217180551454284368116560345372810746379385000995346337852588693518947512073193937747678229432705842879132582066569386129828273391491107528302502116722126767367336703531895231368303818160420874150439072552554597280071699648386538161805675516236764534923123221151587958246957675111358996588813830744945726057588676791796671669472759267124955034163846160331846419899912406627528776821982465641648761356179947387936205348615322381946037824148554176575945087498257458648100685384861056509230885075340478398029525969081445784164873441039712750119237412466122530422617555701835081892751359687552485107638185475995792770718061922654492160549223449261726994756576610355631718215709165398047060690608650524456958202449336154162260980183873374633680791430849061555565685459807650995946082108635218768405974448629207171890421146392099011282812922247072888817260737440655477860248774485295450000803117547157935943686488538881924010409682139033075250904996980254718756754019036771123818613912078249204830223297208937147669659763856759710231075482383802464341485480957300160391182623362307151959457421453116099215549700471672531470784447695008124857694250878826987599659313291781491530947524226049185260413314988582983057646118777924712910490575697390650707207408226821272257171507165664454873471114850940516646927514871291504985905384504021027214888835146063228337148452839169391693734546417326197378352581077287517132459763123697100116433595538596949599090280479868195208719368036977150290566355819218651220471967138483397023448314084422651125195996287798217922748587771884333748719973533708903752481913930275664619452284257833782768910673262000601780569142765157971455237934203605316521642039799303538265398708570270260869120115233961068344690254059148921156163755890574925122839754298053662258458409635862371559407448701422152860018909590122388144554087980354596474104835709896532967088877018540360897289058436636701325991239924180376504429633003725948558626736365995229443405474732569729426120933162561462584082329085684406233728178583450760193788043000969433727154795671984253483888139952308366263064767919614562064241176484681810697783171940038292170569630665672001038220934134495636538107461216016301808462775012152960291262586973938151809033805732497846276845352413122876505550509392991525589374601646881184416214576846569264292736500719199262240164996090724769225508276639191519003615247596001920487626119546396903756512404613761950576493838352315996562388399177460963814054551011734886572760848815975769924261927563501839375311857850751707307363410765834411085480025080622016151263064005204486198355969044128883930707061930768991369559077392903280149852463453285754591550526228702643436513370214386191904150079448327456890902261352070755622300747894686445442768764740844609323459253264913305896591134800367875106920821526501345047203003840347471625933703603446120398291322046171817421096058932287471866834706915276668437507506285088463056623692737683836652437273259675140535912673541364149584785605220104011936849638958027887022382596447047195058095511677149489884238290269817746973267089223234158232453111111768324212509691509257109973805547767482395358399011153990531066261601019628781208280784747432774427583283249475528558201541365452266274456531290103062204270676763682299043134331873877391495188892584949310719729575613051794789485731936493509722732860001306811033693289724932274381554011334129487990667551633828542389002660909306306394536494432712614593818051937993892987284304921006906594538915318609084308225985762722884694444604008665157908194224576818492180750794205459216263517981394142185359995469843414143686503069877900278112614807755493898820351237125128319666161036201524180528584700428537452961113210424463763410836197467335779893540247946996201916354882152289017882158729911015857006436143837628105696230162652634276897749259178458992007894418475976052193407670838775867512878979422651074366958139191222642665435288383302716432715138290501661369251745692413787456279053903687937158246393763707302018872606716642174414751050209361340859975121725595175607876752509824233354648161063980511978045955844916491235452962203360107240092300104028862174249361434974275319687099613233102707147786022047065945959657300150220838828627828863232616915640708813756467496800933340393195148308473633158026459178342209399982114991328213447983857579771072597249970752357154084658101100120008256141079430665710597509260085184611054584141765839642693539829485980864289157976864313903195072424008274047501462252325413880273564200373997047667868405373631517153252344687327800363063289803343787563566548481265347713535576088738357960399360560511368061911280572916463746331938509058474493630478762061131139511465658674577413461533914179341637211910630786977787810359766150158982962834536323451916593747705039335682148026297482237394078168895229862048990816374004213095266235613932844697170935282282049281867763903067371249773808330589227832755949336914255570051215754822701538738695665474548375806409334712943534059787940296967901015566090520792618751807912082986742986094149554878044200814923364956957743414907342264094318679973038929140461304406275950017879766703265529006100661795316476529714706590625446556703286190779324648495960688136070636041096485325493145084534362310295158746691119898960783186147446425766353518564284263698611846306037442548567637664090579921811616716476842953304866112672410130011801858220115512282670942525255671330469624943315294889848505617442438990426339670451734175534284431160488801650477059223070638858371795750943976510516170000421228861452429522600530918578863718706133530020697329633608442848435785570617400496061193727712712296319057228293995813121278115193099184393499464331440179105641541182347580039443536252796275770128987066512893723904947446362443603684466460283908438166474774263068402505850535413127363446091450935750825250072876620288846074396229326947973766407579832249526337935656828637828962400287813814489729455232783752769906584877177150991746419043442878768401505824779314650624957187709186003479965256228063530360601439282060495216770531479499632897052900220826665645673913136795118366266964066935034349596011241549525519390012041289787528504810021553440225087630879441990068740766877111077506156786026139548803449359473701284146291818822223643022532155753050571931823794243224201172519618543059906482375267051660436635599323676601751897681098235570591846691771817027121644811393697022813605204845138317223802542965980069774515344181649864732613235996317022927892071592340061706122259376569017908609625672626091519248951830194436214241749537296381748372372287830912718605465132615892304183319542545393478138698276200092670702124038289458719146036930130275757992111430237694543442085727760914877279887352613699065749258760493249403995561492306083818870699207682842392589190848635263305746984055376033687593918644010714027681097414402553590131282322089188541006001483760760451070706682878775670979794195665127629673785526368711513845154779783806496358802987993319527884897531252743684203534555532943554280970308210548354374196488000468561914397493622468957565709984210466120734306535653298047245858149685969972724024591291790796649412452837873788896398653584442582157918300974340767859643518152684287400557347019831036167091435629756144378644842418185211328306980084412436074976595044831284512453548470505212529562611292277314293798941944470312733136349764275531805624612005352550457895190569593351070862815208688688904276676111033671893448645854248751865495918919431925633089363185015044033551649841054249063652914559830474282919500951454604916360791942191068225098723735452288821164459390473814860879121820735552925312719930529292363351490621096625294243250785586554671256817810362179061032712684749432260274496483668566761035440258974029583663932749591377045403962491909827090651606167274132579206269345188502551523460264996560218731335814105375659127224387479915885643613240562525938429132129953381995824992927622461826353373513940380349290667412545445249931466675473221428532890056267660904867590415368166944670908141979057098689456534346670707456201957820719778452342840283510641316922160117319843940002453335096411901542016241434495600103923205449986033098429690517500343658649798477939766410519821481800496163123417048593208996583006150090166716742862127390889940817730125011424113990766247842462707245152173005946255217272279810794880851158798185304082589297638055660356437707677772036734202831073789730440317166225789404879218700982016672455014678725414508105385558401596182414557271941437486663648693597293433292963672390101882588449387507354907614871327849236823341390538727732090298296646308578399003012082140172992976990590978380594087513415105555192939979677719133268774960995674566044620081862530870788268095733878706417610380961340152346381520692110404196652034393394622801883297767801868769229642320501629302953702613648314467301133209546856661152020810387197361412881317950768558509821362002190741042577152494466071896275462555871283793548720753293218555284596688408026643397346442606457255065851510405885428276291992113392387811323628488426421119438292302088206406968430405203996787531166215394200799699971108955476098669613337805032413200518500814454954503826110463968751607153408425984148301008860940311084039659874408765073135906925607429184763360309856292181855928574819195442370316135754517706978524974826934171637103040000620166910632409782808463030473695168772250194407816864383530154572208791984627929137953074778255668930298601522123324883966971010123759499406302878504496975352655447107021904177072522088742726563371450003120565732318746906332274019816349036707757887214595285869698626899627913457332683321141361629053216327079963668925243914460306190955851125611707662645803661944286786373145163737838974298594475468672496792910581150782857646710516641145018583122154348677760422090893101764436689022571790209569010807552682532127246775835965058479081196159957847705913778773336104199694051738399950837591892080093230169072052684095858547249217888751259766497527940041944306752629011405108014024655539584508779997619892901971608916550918142109084317067717582357179566903965904785748973725348438439072168194741291606864310418776752429239462882761540286070659160239417701144149636187033950261905529881079616425995661299098297777337600083733087710223800374457275153416451389825239986450812873211994947343103921010407671118085312304571479296863470555508258423679651355630602081003255500176070667191889963257526159815212118050900129450464692430320106137903099027068291095157869613948796418474346013701580871772400663648175895064685273481912753847133096340873969011535814604211971585164666192139801782846949453075380731216456555222630860173009744970088536602339014635282407396937352966124206251424769008996210181094330651791870459255668948876942965191954157120221336236216549542683322693691420045841041213376546118784937973281524372300271678904869248935058274113535564676507663567031136259055368082522997164041228614589930586551071710087371285667258061998524991489887429672908225478137597103891168334709996459203016122200566520516220089995685985600671161770035467730431840438005907715491517016404771832041473180116660976903541691782399003836243882259668848267865366330994300574556494535668048903430438648475595654627555783565013511255875113373144992372931153357415226586421947767759509788787098724402565069205529270459863433335981952365297193390371242907075858194101379649525465459995825474878643698487985833504155295656280095328611245038844941663233009086996067639574696999598864713112726141583448933559153538377651216537934115154347308831962344090459963929143419823622815125829237454462879438722334710896973120912951831656625676019902614669971668490465108397001191923834939725498979145885246437174780588234650513008617982382143708847943597861782092354071216184276109125771245043776274180517904525068741772846152910601208595908897363878794435503834371379980162869559095674766248673678148510174017153763007460580964636678623364588343354063094989833108243629111927066502413488284194007692925732707830620867522262868692554822399158312652416660243075659969706212410149474751115398769543781339422236892454233735976973372972382411370026212907207705109044559193748568257165913304267623559215101948865514934694795347098350001555019007085745420212974934510367557691793046407640205378779876369152453699304302315518135932707636189306497044277307367536352366792230626030508995495778795677558721369154349317936985885580898798712468308408274832834465508978530411762518427485191602028214023829306314590524413781092773663989798209623438163679172456287307686302063028634077696275556201148776414248005268067149292721084063413268582599210020939598355892153659501855604815187153514750847825559739940843001721980940611008943415100438400503507490697843199209813212507592066048050494967066598160097059819087127951052388907047080947902651069285577313293670615616504791950021408601694118786871066660572001956704554145929722667956614500947807044529937996182828804998099161631183902599533743570233496445108468433468803139051656477171278002059962839639144835264512148912876447422619735358212627988920873847700363492731946502955174758082096409056848238296361252896144082933493994310395157040831139531742582419743664767234110758018685353347930047855835709928602242206681106958742375143201847822228622303946358986672128885636002294623840418105075071599417084369187280574876845806876580319909737945727966300636271288552231267786488618114265529450123791345859663514480129726092595236830487604033002201081721193223071047923683888019307419696565679558546537815866291472614228070397084056924440372816705892045682783239347865203952090335827568912002200872355894128059161444730386367092286892717857966957514007620988500651046655541733870806602240357333414587586213240816808989566235264750254968011839250199441971589146878049609078597791155522667173473555859826952854930013196268816456979894010750251878667075440550692050552917021274237132313713666877223797126259737013616416270758777783458203202873028717813390098467377038381674937089107665011319031960758898101392794235516495893721136918805118562966029661659432696847574103160668603725726889397239089252202787757275486726244513920995466398494922296027281656219578811528882906785396390126860415838964220271025419407032683202562335198997455269777893758375519497369324045181538182958806167026905175082049665872459927250835245893797612608108821464692845125432929710820493809672158107154929103421776011099983777988702410611309925900066565764570171452742169481222303497318236497442746145570021376693991775599545462702076815753660569606516627541768985292694703400816919128871957643892746731839998384964860590694932950809747179983352941995758034379198542657602880862926467616850044030220586418075400879800576553606750577657023392608778367442209968621657949199131796129270662709237786741431294128201189548895971701441977944203800805350755202935856864384873974665958843835638362541444860075519762923428644358323625143302220593928519208458377458288538235286864433721561725627092740827389827677074797460437352403522613194222222619404772419655868021583241668624675095283702592783812754344161736107400954905071875139793369626396631986761803566084690975052828777568112249110720436820703340425178115526562323076944816410854161343594622591005579187380275339748434906648969478040407297025920824212010269535616496478117727743187617934843508298571073680397250206351371717615461820940868324660271754327828557239601727653005195470116233941805068529187733126649516121484980635649348347075586834634933835803528736366682034190882009649464134814062497683950847285269110035203941798674639710205596813154579656279935807474843181367458895017503801398175492102922439464077785186487486921040422908738107751342610054176582619035512317597063853054066470092982166503915288174775778573500703919837471133409618535167642826606758562568111978799723147868475660605296785265615216290734273242886594001389558190303760112887777130570505640304225468044122165960556343418458281769398362014810543857877772473491967175565648358957423782462805268971614706049940472878173473894448822803317905516437486582139536075796837706326342573484874842101868172999064376430738614817848006617959619966206791001667865203355381832372355398940431520841681896260849340582780089368221204349948508015866012519713859258876663072148826607082368424348061579492317370048879745352897568934783227073361127290931444518667453481160402104083515863521194155006643641600312854370590723781009996380968916017484185972731990930599369717437335952981090893158479117107200421218651219185912223020489500083616638906893675194990891460718909365756824353253917918258711139062482606184283738208442305998645222324534141397566918337822419121296697046517917507399301972656222940681668409585822237690924982992339119245099239192510920850376722296931653117791682107531943180306501222805332704459901117506319440705144613092286627115473709444437506502167790829589419413380394293377927649757322149463054100774791489721777174769469465144513584754679871927730983024669199906858482718124358054843132166406891542548794423666167593481470319621962726075643410361327069847049876878532511846296055076395153931725704309884041790549006489939318235225352148862051506732145229991725243344503707602026258780198824094322853064182589603102476687217990370184618537818661152153201178759105329593392724797033426819185659940583164460275740137173405240447271546192958131625733687707711683513070036633319163025300382566790603644837529624702817550281384393221823065763239233592830801614053867388724032362406346489827026935243087328764418159780632723423218164485602972499819691138509555543120201250862318998075958304094311423403850785588963400789999626629030300659246176582425231636772974719580877107881048090130684311847273292761382643454862303790523668466633842458983445790074712200418383508962445978273228503869838608677366931139944785775096081663869516621164430728043514913296501272013926733237512104790391791076662096856836208499980736520318122159091673309728346225105089767201478388946419994746656891848995635172294913456292276285293635895495034042801275612774580777925228704187855073769220416809105719974724638572506400457715486688507043490788854431099625516142754157828873511748175171905764635055195023115647554506991535010865800853315967748187442722529499860746192706125214053968204444617804736361383472438066441901479366870526129824840501014198314230579975972696714984089409038767009209108860485480365766922371563650891896060876399707874469116937849228689510622858470680453885268609943611087005863633335048201274557009668277718990627288623567682806381426134263846594907842418875489276691538542586012435760799397592353323134348494878716333196799497616369903762950921670401762547766616571139753293213049148347658335106745113398645120871049814307370157721690338146930877051464276193658759558489324952665741202254146302528737261271074030096954754028449034146948904999433143164490947033348803141220802340715118283964913244103394727196585466152416449194117281145304979689120685910549509198652658257400826220393690354360787235419964390005106999716416656055607495023877568259560419271794023320426867327703793586865193362274471439994854379394409313525335908616053977538305573057705751471254127000640156320778610084341787723828803872566935703623195028132350073440944932975801631769421822365081872410065533139058067146080378082762114644836766684862957650643489111862218316563930617090206790192204373966511809184482437901417305963248928536327298985924043672257416354100094001687313595015634262827721844964246725927012024339341166365335649483029198608027541877154255588768919389369121562032723913817005151709957743164878616119898103340772023799250376164597558644562845574120922336589948735481441283245864975394260516667459534089018796588397162297585655999679739705463096513393319476135267311694601050330125386336875726694116967893307902154462321715046077833115916815422047327722172984770947447598460678641615664117081576483846635751023970396128520881950685728207921807043194566667727757039224541197915889567533240517771844130425994105549670005893688526203635202500076371231377468655743413402198569374991484609749204600523592651583423693390325519047087165160166460160312733538328667135950683538595478379659731665232424659623796628105708717255584755199651838952087420661775710134388890910543586647399342498978048319125489173559446789343813032791679492775309340337438191102816547994703443226021485631463271215459363643608454580352035143879622667854168486399720995589311647685719293016383605404475477789241007498837731428638745314389450285083189560696092239092862253540004376239777084466776446147698061795994152615433587975081449189779766263974049852817057418132893502125017395248566112172656126973378341785488516715705772602690033687909197499566531330092280129138654099984951421112559267105218693134115351820345275245192764485518591117835095159881310057208004145746365433600894494900450247942800251572122595361253812284848998342913477797672589430350251779135609976387141838509954299190307999574679628612279515248700424164686346852712245113376206883810214380873878489447884418172514999932149245897427478632714701378069019556887624536465448406907594460555301892067684510648843648628964275932937956614754773649365478181674008911058645313098117885832997582687467502361024267614600739381570196821997734743728965618468419124659782772657018775718058616396085002442018732072399062865651340061889560092533471205196454629080618476057124131018343985146037062169655353084837908473755192739657763056799303914289838410825780360825449248980852841199398246719245501658663415269053112713994214703995054048730638845910294552549382652255746801605047905054149702195374681722211244100707584710233798433967854605134110211896560575927672817292442768600924285661686533761115147199053644938012710436677329142947962125238840557264164500357082741862726559537545170029438706548233993975143642439172870735283673017820216625129938371593265775242380434217103850837555884486116224491517255832785997831852018331951467305434944771559696914637059516596803534683850630465623878062619150663562475045653202219869374674928214428538411664062416800509778975703933668283394672710764348815958712578411818297258600162015202532339579245337010935066495502280482401622726859801108019562055097629419756493676351517466370739965686133368734696799851309067042354574253370036903255460982345155974896306226270602561903057052413298927233397278476352442421232000074928581339739594960437067896688614732242671031936729956090746581170473658212376391720430448887743963578751113741304220109178724510420148193795015355676018594102199796270917924679872648427101562893347441840983911155963550751719126074173554972414714219149017146988767229265318157893786513532566400492139873965801049080404216805117520645586275299798306465958613484335211499045254644749812921095866902075996360899372450797733611886660021954069737162010552688850731669890865350760467826725520016439305762795531741557169108248179427377407385982641150422848934177690221266595075655298371810038946202836041868896738828850548498513744436899308171380334602888196359434706360632467878368290606965971769851936117186742974339377543983675298894244779817362468411153845552206502444782606265415532502702124085348575236392894435871135892461667417491674565819361942761666809155757708759988799189031292733167759644441982967833021076871316746772194472517875250138803171542172420304381708803512862965959246511298008608956371393946159247538751264403642420473891773852348174439007459134485222456925500488541221554794345639620439524440311430654746702978998518930319111976892447766329715490775851393625365130167842323365405264085820627385906034173668402341747925822702403811111808452527526472509964887896196748462115973733043382908247464022561713208831127408556545502049257443405352078621899220611913401595026147132072443416658504713747805630771873099826321257318840512972770272024266502981473961231297159265750259779269766403300872812730405922117919043199369191067916291817307463284069651061908097207859931237570637693100592077986414446870920141656146113862659022743564739957388559107730203312371971098968603745277127516020225747047925103971699354956264337099781186198288501042541292367483804605298115253853093314737261756057154559088111109195056143788915127726547986747988886785376128576879313554490920952480261650030211417152659675934200479419765371342231458327641294895941154027512659402338032970919568624730160197234175102811543324853817535205774552209700346473481117678818288530662335446041002264252617567321906438179791690810505458772194067775166602066760089393098586097937793584874758669788738697405691612753816355488687003582850282102676561631995902795799521639043075282363439054046753804270147513210348834879577285327070734881481157109198321734004014748315934377537427569105662449579083643320388943710604010095069113407269700603834404906652462059470483890672545153587468853339744421839633591863152970140928719302299617117690158436100368854077166504603729358991147935430798077961731932368722892213232241094665537987420482017994173369954367543730816795423772877174206072249470412454773687470754100601754599166866216562845122845853294296803441868863427111786770262640640188276869375018766916070492260375458303737231013697382663422308031562446730567380130177619666178930570472160717291262835685743723455210774765183830099004397721802267722536809521727193769621964892102082152552487724353054631542067890781926812353127909132070652301097150067384834927449147519996183013042550437475999180934765381835785626740115953112106581220573726914294505137537070766800796188046993939110425397647746975836135358525885346062142161334905272670935582551945580816261051644705671780722140127300557071777244215373459913649648040672034829801117025676383041416530687659640591142951552517313917891286022708852247202111690927724155012087814790380273646661131217307700188231066508588658706019681051196874578056787376653821895086332479764445766083560614627702184767664648880412720796225216091760940523330757655467929167395319659704125633232215960033792338551539921016390865423767462926960838834954780927034100297170632863630612632042437468202393252057565653127289287516456202306051789889813220832122499379231382303300922994218850929285097194342130050254494762062661058169212075344602916069556933442208523079742255700574662129681681020996004156916271982315712476526118026275116722273848667277717307925539412076497039035488961361987445561073540075536206161081469005129825312091340079247798013705242929437251814694930873562344912796213196900749301900942531754563777044968439313909795709758599770619101172889328961632360601297932485980744397003152705700840749370641933486769047362515148535443405271771451410513787760686586806918216161451035399889294544365519800054610864024790852170891928178168946727524366291111191363361065941279401992299920714632507615433768922579369471913357947123629089373104798986518758442145283441688993151248094268644507064487809417052011964945053709138114336060544920976384613539349589963956911179055085219528559931960241437731555286735959597277018698684175195517694010429240444118253997038680405181697780284105466995303609593496984191321082961194826542371015562442405004057438223803340807829354420833200893139076168085482876355761531656468448973682713642598337039645769162540605169425716137890468221923520992541902652201142214180586738115321169641072953195075288778810582038794887321946755554533452469195106050477519106829249909841303371832611688849952569551351897210937819004598478033546058616625404344902319268862758270831578666170973414971596548166879920247860791644018895108624028896609458720100253121245380086181248889372644106646601005562551391761541531691227856937495042666263883667327886452261810364735853972258754219482735034501622218086031921185832915030915388617383979080560348498797574817198633912219021958898819548063054391280645125403167300052199065789413158568218736921395969344053028981549145790784129413318714809134794229848905759163452922660794531074091085962329655789909609371392139743741661509248038105986728520412326930057887188456280489847629291283844877906080948541951059380069405279443443395294720124618097275281082487723889539531120249994254490278960836854103923904597994684064384994050284403614385815798893701854131260228913015283436229063394402050279687421855968778566130478446043129686744009494425685937254186081246627002012809110186554060315126629820420654036777018183288819325043213030010334757801895976546397048605212327787547561764521629911648809827657112972805324715088125283646602630970512420499255685055160092087007454075197801501246574658709770609846587382173642697745824393141613054727474782863107514244048363625393093901214696069575741775710781270455210307110022262104487100584785260120177928495585144371936089372340706096691384849680521940672807542943880302677040902537962154745836900878143457470796536343088959108749313958651018603398848810691482925322636194881636768153362517062102385742028794727592317502829830945051937169938411644907879049542486257545260654708351749283716084524615701783986502826253057728776234558758257832260924126162774977309089660048914254648506610419000619020424696604836547005390906215786128900264398916297726881351678349168666020099331249911333570650043969055393628349320423684410927017525120873820810936144598269486577083349734272260627571317274607281264233541334317638966228189922789310945205562525347609859676599894732118486812786280359706599256366813078092141140381224330353742337646440888423926911261070794874855656320710355657379184486326798174284787189093156197590750976068895034556505368917368567103985010507595937011140341313813871183980243262721830756586377038670534423667449724745062138533261845697153978686459196453113422929538953588991367533047698650872475726661019444948461114068323462310483824387087051133167509845099231713122524901939533306347440351707500080554989530395297881447301955393864408677227813693875876587922030153088278322737101384003065556396009024470922991457199339806810267166315466301430211134517055371588433977097888699349921266690767519734472593074840092580925635925669462011599983721618133165917793160004047269681688917795488671779343318609172754092687574913629768368341263521569510416919616350558928344024484741768649544517809544233052028329632277390993200420796351533207006327507065918298637274201200075873289198903208882620858838782625887588583373889194559629158519977835933791901902058194256106395933539251969470933328638400713122636180947253386463294789738551846214742613682714021253614713394044879444985775881511800194248243780393883394462363112765201432635287916997938552394743469979827186514416187414103400759402773226395746410321354147996854847664067160246612696657004276832101244765042626068277519245213388832249193492126403532932672391853652607044944078327911996177985371250325429546750310900112866712071452315691574308894930910582240419501967071510019074444290754489799488387872654622320986818513656629317652974167421299105249641989285491024375415505752992961824488751937656798755412218152683851027471022334451872039772335624247056990716009789998228998417105251258610482157992872257300246011031999821192943600928588952064806343795732938194947491020503013936835213885921006367248931408245081206740448145367812899060659237974641725369308536796990008590534500627971786400328703195825509300571423889811740834055086590091330039693376580491337514813107719963542209944996217416849280932008512168054228655023606007155331838166170521483868865437125756850549754694745742992415161069989117684735491429278393356723536686531497008927873528926965892959365810483397644469068304255822712474960626874113440436068476587577925048091953595985580064405149232138924570366564573889936165684613242053244865105840110240503213733468340504611922883215389418688367840296718352079548453527613379213242272202737595292809536539458846073961546670232758538277233872251680294204699043955936822233242698664723673653312139049648530558711400754320034616062642312935706867555591164783401469586164382863704467901891749992382170066062377001890692031600158152524880454678965287519315059603926022266925011394422722533436231342176890890675157767902998899612263003511790627074285449421213390445444643304069064373061989263210093301457354345228553767249741870193194118701136230130908287898379018645718263190868264406182733933112559637329438743105037443186299868563424078720789417980848007927635691972981442839337988908570569817391222274402558625818410711757417720992598390600956263089218829252960796778968692955294205674948872493432066673355606924342216356860352416531429571782830741676454892621012037922191620094141174516521384636911609472334757880366487370133765488542208736855575384987813690672456716142182912659371549699938212333711450879924259411566284651797513207338385984870658720598784030156119119398367664317137838315440144221326786037619325541512914270039186408590197578307491157680002585589592490266442019435684211083474209066466729826000321921984104862213399020607936090782967399235834194516602739039224626016594635005691761615888619892637972674354479966865168083157235069510371486228371086262096126816013182104069526499143007604988429459158050086797791164321058357772293369441029231296851351168139852823938603889785524653106846195691450010442037530641920380826820392250161286705164415927397209833716751096942779742393899896448415021151947635952818242734997844859812674480352132672578680265090499279393841269123075309827071002427201019730407491000835666627591702209032725625401710243644669553720757475697066784540718735652329002075563901260759414540015248771686600799072655363443820945627045318589976462659250579427895713202208264003116864461118431600848089484233978873511559390726695599039118184199947504313096829649682242339658488530999403542675048470175067743646641006545743389380405013700689787224873562546713108415356060771254442094916254383680546599672776858827487697853556890980432601392622513653646956535601890485813568822826051483758624936088445897399774399236635825102298794587923094021853642189203384998498912887052081736960922221223409507113728216496064122988815758923464078859030325575654501092555937350411788018589902298842316096289289580684494837394978320056862633508456417826430333074545869793724114183226914619699966322690254660962260784110872165761685301597314918920662981911316260816809381476664917222020325861510540374146323003239443440284657477235373669032889495041054491575602614102352451329316583375958040765695458416073176014731246745408109265419247827651291387374197411973078297495955882943806534783496714046693437131196056031800470203530233800815327746116205859661744504247198085137150921480575137276056031852934306098847704075669535710123007138455838925683494532269866779571421105256180422150271869952687792287161692678090228972096704719066198338738139868593447288446492673425005193353809145819445301559805669577516193658351342217879025053322724229607782818243839423878964586276851376958774089152532827756245009067836678252451343162405372663276591612232530193859675342606211890037653490451979447184835325454562466647816427837220973543183432709290772472276454017458353796467029044146249325589385370944118722376537822652854507644264919540149522630888761712424037541647600819196108116851393747723764150337901225988920084376384143836991972689312263096911338927993057202638781348934416589397426531082831558748418177260852161382128965043574724463972761515336607699760375093536477826199534041187013879208985531291832877843422450223715599596471476588018726721888492900056337673032880999245997528043522353633937294675526786927869159932328795891967519270946561757355765207195709777969645405225980391928222312970402810106198413809583676467247056061627744209314155752008167797582336735424046577555695160203964277041299040268295939750663479326255845464282546743721461260630752481777425966138578457944830386779220982400051689180230531605014572141312493913185994798566365259061720461857156387824559897475975918000992652946370023920544884347328188591167052956853277930043113648781465427035411313891258019458626152355001868185505502168365161541592205195411728819769420730229720981452807811026399752880794246604601204595886426448330323998978550309327160384454913710726247128556907673225683699798052749593780573633082983671778921735543866624148187043699444570721535261709407262532760526977426907728807353962819242875527132802548523541895890982884818306742671371581152436532599619333279119411637583464588101089510174521878586701749438737023862375639977081882097343390675616748685901785919807772002139053297020607152943622914738587422729552903607527115167162866769098168382446652290203154140624125147411550985618510458424989944338881549458462798276398148677164741339830605162430499018890949899623240305738716571449517513407218543260573120637345417280897981885557475250194781639219862413366813548212004413431675703159754768431855672794509535930010964867432732280705084378167749837444479776611592735518260780527584117471139667180295511754858159246225205272500735075186359596998682378224967019756185287758670636423600352335554181147864613825964071257914734540179172251968186360263885151936136329950375708049731962726441469314160076838613236932297396368198001232005920720798283031850875838186448428478230829071187265425124475702053159026419513541744967167471951518141823698653778457783413775435846512516295174057483051931337083942250047224545823043795150386989595069085421907889001106696207997699486505404282022978055886666966394721062123583338794912313550774279079976450907500524059675907248843276096687606716325314710700422863007193606140090673385067469708767657763588360083050572487279694540704094545586558187529333368431094195337337924687779050912259115814089534141505055263581230467459627333592418709841979142322868586749322971315889397042796963689228669458318642792456374078343541415752154415198438197513907221696468698794202182168081637322436862243561346602797085982333281477874753584515203224107499395652259801697378645881759778709390399861923665070686886117416267997134868408775128537945778931189063445499410700749606579431565670818908189749877556041425995525268114785087100962030220453155620737196922170814657969973439194658563104067048729303674884528790327059634289485858370400388682775304449536814618053899084848789863010121091804281635692087818162005410860721723856813384254629178301791976208725243162887041354229135525348269957068916861352571499575517369830754373694284157199629920252858794989636144665989521875107563803837934684162058955078158249155101578257077370741267735331869645132998563494472696015572004893327452112469238755306611620602428233947854479065612783039597295124539609968925834214029880644234102287667696043583672277650010149382709665083399009409737300442037716074311092754877844636154609266184859512443769994438009513094064985455698756327487240388930452129400331338144921317906558034905330223642538674972154225068803215578259200498144836500641192196162806997150258064232632782878688293059510845953988043663667050741617878736990423527479971927678218376168619138229351317109285881146729208470042709817165471064454818670791703106207138466330306417585985522766146383943610638844349198233649519009524519881471494822198444914722542558763237338532588192160803563377706980241567806577111899596248201485473717279953359878912676920085710670466748432359853819648272908416402052304985116797113936488926117062653214131536828386474798910591885647150647447943434746351716087292252743487769983759269670448751695300279251662499055893754917783877818930257819333350248884652196811223884140766398432183541356449514405711849484670886225758275031096957185471893010166378858607783753931060103695389442444952332751222709244337716896074143229143374661291465188236105477974046112057601564966410720600390710388190745781167687990490737732066277370440237228744089629392943081289144175127412134470755189854675753500113002670282161935299132566186625766619580612240180438267889109785600639120599168125901361474709809053229318732794877433102406169911107024319693825049534825239556023246386132057417845078028316606270679385201220504922126096278304847887455291937212657226247870402922272122415108531301299294211619055088403698788191307457397264514201359445086851528257631334663738924814373450277312681939060787448431868612613718721325805994283382460334044930659438735559108326604774747687439612978258138124708349133739734971420260104824755547528609193527146388198556188921725769161966898958586507506745734832104225159138222334681365503298002584442621795031655440646213541692852493241257181341701633218609448131602147407904528703417040896840202585277624031359804566767284069730978605654619100342574625104521947170768462683664742211195585183855564602013764414689866787772183205178386354204476001898851327700923698942413780024457727466315441107766555471001375009549639483045148140087058173140151459769333111463119424839356056565648707064643012910665039517475070604363301742373813941083894884014708374647417031558663006852358517578658479948665059431440453528970049692437019608179111625195459699627034167218427556699732806405674486752846574337661674807248864631897665094219341909332863570818913470679080017130830237401918200635070796885263323495380436079840394784412559838335983189673150784745527230113646965790711225110655054147860988602841508828447027053092472671742557642718244808473750535206841145045246046349655969687382423769543717443112501452091911623259064610685677622955319300131754239223914080066764866240790221035585314116221177999012831961307205027251759363460295583563957950209749483633411410344761171191598955174148644787704810455911199063280209520621851907723810939791683667226190288954600258347913245345750435023572412776818869910535352617238516219393456085731038707485378732454018430334003600091669556218962080464232973994743318358554081585386449542866792171169645845019619010563119634797752412574113277199292359822953892733359617147668351098678409092174927023558843875163601524978622724562476587038768135263746221827262366333900923213980793714652120160593880205876088255011459969225220257118798557487329561185318867961828809463348204376830126662445715009002784829273197540288355278025834094614465948096695474042633514341464075122120847732242336765676375218532693261095928618578368134573431602309985713928254178751567894099759419467951518550876850138242624553113841075823749522686499062133766159748689230194851969999317878465775376492459002878536254200009132409400897340283737019421191380579081108711262730398418127238408203700889104515440928325545540031533318054263783494815628538159819326739278280802020501085185884380735556117073751743634661846026730622344817127806767672400643344287021594683101176910465923997430892452806455654074786994835205545632037487732240117737826958213924807564433525309097116085780207064425120643489990639317413818574538303043254906614891416706366138995433748902858064894820777120448644088111907033427543930086952137640198569610709618658949887724587579246318575690869931319530033012602639337812485159627402286838315506388277676138004517268610480782377665872925639534224324277061928549663688919133611591649996779425047179945302114047281148184136292058756931867909165546270955070836659399922183055877996317701868768435156837661051244095633477720448706831254803427213995100520451096300343922646081163015332174538751573236279198611809285736034157344372781620741269431959443716898820606257119378122251605905505026505721923527388364603392417167559139056462488037360241015927294775370738808804349216689038718920369804699470013099446608356753652409443413291380520657838115029503850572032451322874881658034655938065519994003718111758148253032291373527563645930481642044265866734337256054463120273737880427463298391328906420616971824493030453337368469062814700027880123621871555491733521175644358090081536523613077208784196496303973211630289187395377124890047076543666752593484538319796028362004351872953684044300277340265240030994039130317978742811944371729316524658085297487828590705235728508615358699850512021583862269239205480206679063306936718845493771158141298806058617677705364171870726296040933481292988307096268329711748799256212626942591309739306279202236754700725575578892865935182049031983883792809893459792274223563893124928876701524660135552292710830653521769562838009828815762554639905159294145009507639749257909793642756727320814249917111505210416340955173497112924870996635319298781351812341631029667280323203369402652242914248382531229825090989192468704257685013022512838785908743942489224103832233174457323894743848276546329423716848594495616402458102363725580776638059149147514846023707115007493436072310187154831508694760094252490129020517201325001734160476855120431359054121766648650665676081524371132488658889916137004772511179309270222206763099549671729524409825170997803143497860650148135046236381165099548225977294049704235289692398605767145863574945311171495349512926927850029940738675297922991658595438448687558710551568205706357040584869105421930453785241152076361874728100212449285771143908686979354508307388028833350144591275920555677126037950978263259250220064144847921547940315308899870003802714121415312138778002189527683954388100381840284817286059897861172712157691474332307787577398781869452835905057553036982851765925126345841479074420761937526467139376090874135223938833602314251160494882568753362427271363746584922760628530184105332788973468612405195717873432081750530111719659187622290825069336681624519281187792165248774732942814389302106924283021444310245584166763036606417720583711472738793202626697140101779160031000022658104404754561287116384087957515997002652897686448054135165217269091672369901538342312239325627309243179283233067355246222127912702420514853377039436232875590462399981019964376409728402101023236074545914263173091790261765105851613212260643645482197360621394007527143860916371122788903850794055958584971584969298173615024429918930102801650699090723801965923231667541084841531299392611004578681632030791832152316503447577296587300910950093324207187478440725161099986178238678729745811531881759849410175697644875487301008738578679704377640266545332893164094982324095462255442960980654443711211524674775875127547901113268158959581075967090458875086533601841710257798228963420237075249717989771211688098263147693488001055279702016241612888516267987148663362518872377075434176125564290983236068977463036262245907147684280068450855252324658555512459160321906080570598435457960263233189068573055773126088137559038924775912242281383787577385071006003124674486426702825790909717397621133499488249542254547228884450025868766174872201598396518691306857303539318621512029972902243630964038834466031776609572855611823141318212771715156600345764105215074787453963148742931069535454974311637606311566233959166636162729007425048404050111807780829230084770980830205614595778459814329748672854221435808995594096966445358416150387321472737311797840082767874165424251382045346324782575296626055944340826406084242640386211503589221688979387702793978320521180012909649757855999892364609576541078850514187438695069534834481612886461590199243712614066339033138816885551838704568642126261298025031814944302008906609544909189112829013138871365470321534306070173989002296201575864279600942730493007148029922196917275998481939604509578232468877067184082822512207984655368456113272611217342081903448022797302363425698059816159241855614434653417212913160081817384649302578437022651989676465263864274720975172314692245832420996247124531517344751817331331607228956940923470186087709941257349392358399852324943995347572552916846082526981846119953400767156712926103951178543810749724517512221229298328937077754039259446268674001482134393307826458750292032889378099710409916588977033896493086762100258525322239646537681943885981805296170377357525007035970945000470412325303796561208945973997814490800879932547655821990349332878121885043856253578501797799702725927487163854330550393058243590165513269796431909028900771263090866399219101077593927163784986210703899561076951951013485351242350284228324590319233989889224481536531610218286230826848994852664857395017344027454854158081146755298226896090098612169789931363924664870572518127795986993179935949842142575183575402189993988859135708307918065085843011558378580155385904507724113265104155926122663575004738879098392090815597719143646387120762931743264744732227355339587813853405263605145319300586724742340620730784737546224613446400368118620050058727304138028260932791048976493928125265352278052176753649114859919446802765803959252550275419863970568101917004511698064414577365784914754851485360498581077799707827870648161110124913774307427588776940569143374874284456421746235021051485855855749349197574448675967500812109324937024610539844383860073715138351688926944515025963017169984087275085900974514271502739758585116550438937104632176074505166833242387293423956336093721785332780709001132640220738857955578144249713761706088629630062635937685718019677199179248945892753616386565986809229513637071710799195122360975824056747596347112269976239394299700509772320208067465050485464387648033338641397545796157865981990116000823158172458482182353793922078447118998804926191574803678282248715454632142166660952125010162482741763594345622502117331557839851978745112576722141368560869176626916884363372545059853409985406741368396622973599375533672079484819709132255149440218786719098265163965298256805670355300576327390160811187177181590682168116960950686040056262626461513144181140850892549506127893527422333429756176260062389971902422878719989930464113023197772753796470304317987938946798469127641788304766372560733539688231669404155149759874241038650011396131795782490772156710826034908135755007454588392147990640319604362342141059272291961663751099306703079144768745343208091738534012603658251150780952940098491597684870206050431057097413658264286470139696701480039576584308102316931750710603314941629224011265826159899252326926955340047262587314488390702067163920826438567568281793628510691905274244907685108536655706398039479494411487365607931453356819369933723623237191825240770233112927262211463815686812791409828759730337996008955863074493748460277027188559693000009840192969967259801067715914356734278149058306547022672536450686103743197613445741209048661390655281120397034366011045575871039777138589800640993083798937916811700081049890852077551258439581275891204321150185506527517840255127240310761352640689979021563970506980024978816091619714216483025517296885753352405787100515438865663853921893990651111512503158324646271330564808747437779258066207530828863631179287342360393423458641283885965256677553943177272571047207185280895253420543383947282321467074776573313859593527066821353296597255419848101973815023733743387756701845151118443207685987801297117925744153556186252700295720954101705603950142563804793538785730954180901475507236313031727065139307680911689170539906908428152786652872182434402536784225786296827580410200900809878130120150053105485067991608810538390521914093339567371817794607268274053336475695278432502378112952871082254637015364320822060739593545432161280518110720096303181589210066036501893159814789944552011289703245462806624583961580651316600610590272284220361162309372730505337553873873307426788917473760402893296492493259611133351040600263847677456440469359560291294361972174854974041253441291894910414651888975944035377779916155844395454747967891326385204014378273151644755246721574549668522548481988360051527114474017573571959267643714109354614661818708000478566175492079772950255322484426981688001512929565240476846239392109131995076031910119226022903333432204903455921099953828492045252756056626873105563549671443283843938785540576139640365332827385687641712107545471920408532767946850453376890891598392883554871267722451695528925098087831841958747465635644155795850130735869033039537603940421600333689811341573131023047292086336717761699445319542788545764616626848273419809159600214776674731880144940947060300931360623697967271187730181928615674113758455434259039717881807722608458415898626629475655879549771927977271969337705809347670419378073972942398223008469265175522862296170354721385935747240572067343397370850019580001890228123446256016686571977677967136509203890666731593043207195394050064356348589221291558654754630078562255900699060546661247208680005964185623331180809555270782514438101511245801792823130892357348940502270814119783495838195498053616795106231735389311487550540162688024462968823000215070417586006480254363592002745358721503818930398021164158034774873627913534254756488201171083389064106409991247529313652980565582397770488029059487539653630267115913985488440134085461356282212337546647850202186571942532402699908074867647072876775647681836229622799117656483163488583705653068285107470519644958485200655124334784583835669834673883733213250903064138299854735210266540549948529085521918740225713520174457133884819276771687508933807731479046057038377914478832583576354589254367324719101814890206887154811085913042451593354747858390842661646990867571652392890205362500280485955898561497107628955478138509907299210080951515118004738594750700336902485030159671285443311570449880782574386239665381637809664848676112596628794262609827502248280616509502508360281402367483041716630274175379045536975202744934751732264472697583544579059145219993052732295407932317562911270308117586909948963674836288030543045360840206609629887591817612517745418104981259371407486132183791983336828486916088748958280035787471736820643977493011081845348231546046881328270671008472671065496548296198766603803148381922790056136155638882342201190827673172969153687511198355659835152427346924647562503841930674835813554001696473867285307567298989024626781908991829698012834652905536536791909833036985413524921071967332367728923201965819203784732512411531496168889547794233598283965474728916566381883798434262300148551720453109764684161853280709285637605969376405563367131241314657467663951962263909754024214110052916319940110635499403353011017603731235329542854348823195093467866895925721281539559620939772740588372017790770990086521594959510017056195968293514864659377150704009119116583045180631419645686478478432823601294021834347342401527145263951008616393342695158964764999104308047706862712398741377812030026127564283747195458347430696371836270084085465887416948131318116552441532188377912252124949864364063003432790417723209949580842342361933977282146256306138834665570608520735259935655987245505432866584303394144864241942890529747886877277447580811124716484461276069732206276234589625481715338117601159127617674790639659617007340369895272358496301557623362738630345727254558678746286703303918038141215238021852639380289266504466622639770586593660107271626494767061163961968993997122551324168774254234027182587427605786831216706463350159403001857797397383285719372536468113391226488664433371593936671713610425925311344729195108302834496851554462293452674445443685994071765604771760849472995957521739496507733866840182773879858978975619663155386805593851196147043981853375782869606689551968256874081976821853239326487095573504877512357346712865754433906239929804725083560877601817446814034342030150175153007493548378019871569596815632628175428624044774845795504175786300634466989931484645515533084589359510147255810632678863456391899335714697651912578831746659651023456030304821516079486732302595555121280089997674539934454246299444413794380938733322343446529854341334990170157656577517331333581517770828301110941056491173939121393060349795758180964095252265069775077655794030085394961066133470887004520468558522133839995071619524104310591057770565143722614171287448035653244339968132746667678799877181941606168234919496231930660795188354900176812143897969047727463694842466096220859214990928718889894898063271743170192841994751790516535435486152969019840637910053227571488735167166307834903872675185433536841392848799965960834728597186203331656759419926148585695087269006229860758965861093662444507493019942823818899828157980925794129716902967830783439668583485883266166944097825095575028765577848349954523113530165995786056678964880917549196216537453210075223930311472260095044088087115738566548623160606967184149149960327896432901332867802741388782205440749884896321591204858671989895323126227559934544297472656170385759797875398877066232858211007732783015845798533373134674085972731432113980421340942414198782205569600595545266624607750467513140418456561418534773923058373302164186970297366254863075323529947644339265556421251189947683676177371109649350769811409311000871917052208794930028225975375172826869822974772123318414809160851679103383930372722865013893271307910735169749010508135720717588729577830959091965103133344254812165204785274735369722523794460593287222616139260096510803062711076812375559967134641302089103542859178584581417953079414541673929795587675684903950713909099035121684934004760675417256425479054560196010047326750200622492988805585199619356841735213596988333232285015224174465295959785023906975666636946535670630257201210707950864897405712281379224504659923127514768457059533168948603230417692876167814850941990306254620357511689557828837305878550031319733560901087665082560924599750605033594325270474942350351194730225866301312074938942793743130531476624011588122998770524340232038710049558328619555641410898976144304246698918790462543591970206986816494937717145755346979624353369486825502134312820239395058780608311375136692016613365174759356011268601671848784358838065692109461739528504341842359385790500366318826904290794739960710226237672866238899622642571121206033237273398081744498016137672728084032362801938745607169732885247266179145992039127100709573592632197075329564324373439123364021840926516204085293083166734603570442386540046387160388790713990426840501743986421351473270350777236629110262766195512349201178817695076883941064043446914470309823679608682044752922802033607891179532267333003128096928638881610002997101095469461860561612859824528556301864579301781187970419287307572318123112135428037586976048317849156472457867659237080588821539075732843613181498993890431393882919490713696726657518906829228199771613329009408716889673170794003401340191336770923339173298241062713963814802856612154003879035093909164840926367299685026648313856530500882862101698276070944329591961072907090006698318910715981761354829391298635004138597398121747776185696493868184072580729400425734531739001340602248619183273480254878221529565215539779546048060575729139280675286804470374497989175714564954325469179130581566832836208782550124467930266489253762874997190783264345775850650307953730073665167504081402094341702374435657327439136255051623292353864548397221370793651921348321369957932931347961523649309820390277705252058068446776662931324702943455915467653052543183227106122517644710608211176580302310705656253143288352702131646310206292016313292157690561276016863352966518332395657198390387069510143833110288996764189928105964586184124122834682995551419007545955182894337668668159113146981958156309088092276625571024649048244154039751260838535433421921123490266808894814622752879744588341419071655984724425370649148605189276857704809924522629375023547027250031976403233746523852249990981427456326953382334993354968478074049810548107331250261215088231264354471875294572095422633567858151579274994409304189551544832122384786761051753901190264647924061832921216320558735996025209906022480396190516230580317046850999319071221384448387813060290855073558073483072775013660413287766556042959553769583721150097068745463520670919316292280190075715993643911940518540142043388475163733529414278459133769666488906611071693678820835469179064770514117917954286985636664507237994004019952584475813729662392706485778089670871719557311191225395076232417375925379491311797532696993884584157802604578652885774326482404281411474212676292472409429772714417269780585856256864726104534945289880641880620162656397649827643938809016979507845444567336930874501969547443211930456496876697806399978430025506602304999513518882815023763302856367432491599810032241845034104733515776316931724008216604247784578945101299177750281536781805620981924154030711055308289048478633554834804812221320949939510253562119069020624401580141275910789498570990921994842161174672333972276180100005607743257053821658390784802804619379936068308640768287796686585326556804783926962817351894413345904126296127345863127917842885597672741534860447205879173478238075473223876972222943394296376367069103566192135687256901880463770970801598485938036977049092775353452245933949164480602175156449506159768104930388209231368721530444978799377535266925635101839841319213844322164538572422051627505409474183264878637187742949137858116982924989716393604928450610740501860288639220907957872743580941317571477352222095790598099556802003668603668801595309786598647910957147769161745825913207640391139497751160106922961316878897975082016063641543462074639368311239378242969806569904367900818411078011975757292945458485871219925954490374125564320490339358115484448773249863192526605451131535438362028760299353790347527240184704641065273720776936389600657066914502103281226258356463630434210223533534493676070121553480147798711821962238302700216001471356892931928602348419369969408457987295606147070052917877375142332391127019157087628727158980398624267156568296847922475216775382343531504372588330645107975517489110517208786383417114989034806026515082587358287287564040349605431599288706116405106991808325190731867434344079315783847621001108961980700742522425452310339440155008291466762891119726689866689194242135148191100885596426920081912144143728331715079263815043414127212856445317485676325332417217897686009994470831973117566634433998139645682052596664020397091319182849056734259708109170156642898211436194127255752551771725451810864216492007309557262799842094155549610677100119969965334645316398176020351938987107439857368060531985470944637498792890245522578786957186780987433311478921859286794569963265024702184479349640864474529199413193142359659922815010560623703836560601337691728686807938313838346325124939124156667960889622471096397070359365974663570838555750992216664139186056298824642448527109464359925523601384148677983553162684753136324203769985531253971654285674183210351249387926219760744986465659811789050072684157188273656623731528811742771937301593812185452088033894020333374010208069429299248764054463561398974405107200574939079303866637843970394522698394481339399588714189049038149896100596447023535597126877543569950236342584598571611525189247341610295719179999610407520840569526291661568473425713923039143305510480308432137010295121838439048481144454212363431156376344765160869809259937322681576881990900596566668967432970433423968273700252159661420990033536082696990234498686421185428560118700489815413607856185618299176722872785827890381015096376205711678459262765390497872586624077047850460919150987806110595021899717852287513905860130470452189953360572734886173316994765842433039591666600597868643686270586356764667085515290201300987534687830112422331538969005959275185539033570543491244188538814354075592163384638345170288078059644481628965793043333744257352910554342891512322867680777946457137491446519857606611890677629387787191741110291783675080517649152881839086240889945835368967328201514491832005388666690916833052769142134037662504856190633486648992768613611759851844542504697099315772079175178680103773551793783418082816504041681052905810985763839488032956218351750069239974182444169918084470695045767512472683554812962445961766424512867888933892970858541023351098468753472619395826796429209453641082029967187171738945806284771711838507467226931688826497830090124400872695300607341417450778537135770319339934646375879216877649363998786165443897533910513358110835613770279760358866037119892107692734924290992950485950720643598274600026409613836817523558013293340321035617757753591854681991188336226640267071179106783821021467703443778096143473894241947302960799304954366169084374287747111181945326036527915083564483840141214020393027208542983872817619825901920007712001938414242525986050551728641316051447000801663738697992029149544905895031940202092555152807014248345499395565313626935253938104884814067060658262881343211821480857151273564559405723808255688791342116552990416711293413170119165746340625531535575743620035405266671617021196567205583114293982227702725648202348215541735717745721240817134154174884526363918304702293725331548185401374055631093133849702881000379596134978000797986452922554450033883957124078236227513363779998677305026605438963899886138174673281478038287201087182300254074977353632460040267830809327233159709063673387783038047207261458228293002302915574461165939781194260457837001244907674757857858796363800822789754788753419490086872666845996126272823211933516429481743927923157337645697096815730494301187635953014801168338869596670130358792839341672245636442816328766535743345648778802893772504929088119692036883523401744721168122436300003769026603358782853844798539287538065318361853188445612626027931672789950162835081136842715731980513744031151799117926999907249491148210290724316839437027717805298088134765814268827445628724670282996408607499471597919956133658783887384366209735624907285194906981977070138029675950014693530893440457977236634007239061287441665911276746053784563907080792279744622685324411371105230964612825966062104738565059258869423394560798547561076812226672140953566371009789879526811847665026320376305650250560017851356285928105445884227209306670723502429948129234059547476099611932709368019697126418767892206987954931959936914440731046771986968704799848434447601856564857595196779044063676001132991063557176989922794321080720067863531969682993122237649157583236251404357128701431177903075797030212813796540186348242239420438481729847198872415726020880260914483065364768618540973684908285865714662806994429748763695592397321387090855768875592162886209249290911920165778446000304609036310714342525391486579203598983118114059603666962957666897477848736988603959968623921215670472590477559568612870716188553227057780034691956052393442541819027996937530028713406176948588795215543750100261644195212244579042158028986078953224266735100775761723707448170273904404846581385157746115827919473348742589314971689799809003506493795446558388538352879317986521667136806469151728101717409287258081295348205288336821807058528899671180044040307863789107851353074631592804103398619492694770309179623363948935917901723466736658828151623230328297673838866588942993635931513945152005689069145377233099341327967804180507680341506463837086453174141129595813932603336444564490432973003936084801099154794385616757960042729640903371622341970469099708279546602813777395741813672356314025501692160796863336977223112102740517641403832410624767660442151393258527736091679355390398701400670804908644951537429052082223389311347834058499703760724745324907884290642566644139218917138030873636024705804926413159599611382188024324641959283863464189704069806948382533053229555419231727813945688882787706841259709755403074309441952832837945370481925435234459687852332930506611447629264434056821688280953261150043715717060224388915533792659407019960969454881654905718898301783631357231672942751540216797612167257774158552485350962610441683939206198411081654578500777425086201570516869285028720405387247957357209676916316685322501316987840355369312579850859609213571001278313383186410151283275034291969827265413494981743643259916989638185711699500754007116703106942798593879821240265254147308417095090664875289355659552018799177940179112251362028084669963233362405868356399658673458542641548854128534097159205385049441006037653645383928175143321373509645901802148363102875516608666893262593608038294385622572860331937605237815350292729315053022074391688432753620135487778918162304313821231785846277614974925320062434282253893926812547456503180081381573490991204613645563724356748288583878905002671079204251263288428040229195156650593075866654814396924169274014399717364545910790797028380870117988488113204618603778005607094850325488437226756223810179597694947564723207461229858802746702190465846590966972455192113836200926208256253900799025127264859573203529812983466177639184041982638654282645160895925175161849203597142803094914121314008222550729816079323376413150192179662550002849760120204091276075823543601480094633414597719413926335632651224627739027326162218071576221882775846484184522352379943252658159077627426768936229659934876614418471714245385783592499335257073151896652857392295305990913510258587551989767610750198501956922257332582645584045233389811452887211358429695281766655858763972305594148545349776931467019662000495907652764018613325819514050175604519798758669057958752472357072006963061312232495898871162594034499875896617991683799964896146549078309709037523429219159009977764889247448003462919666691723880255851504296539853030866841405139766480622020609279337037049383228277808793059725593403932985610198971971422158168893721534843971652253014086031636523751881242303411277541490440131303896111120069470144880553781297388880875827068075476957792792747878664639921110469567520890811117734187288427853018435192387421231750491120202563416886778830766416596510808350585030740940337581010126760657567133204864093344674113048607473852521457415092762490155805273796714255233607493970356360236549564913890210400178458561319603634278350855599460458715221697670007236949248337958761586490764845106483640007443014203018846676514876384149477278959976404174779186472563196526152436038638746713035344929312144888286572915032297964866020783815306682479274733500498386326632905965331876268118128147559513930589447446112465679034163901941175662990130719725432346308220731981424394751445936412543905776432807401842255520437949890226601049410851005590643453692872658228316423232947175244046987077562133995755163306555457385718725775632387611618903313194949134781334590710066972056573156040737478180035108790750372304112830460794452058577009140074478770060526151003461035866892296782721600266683864526971825189086157210541024317952284252440452246908357614950835230360138005663518179838338336399028278547604141072469553454997742956865752791968749500253455779737824021693419137957652575062855271523907175378167408179730788879531517189648865200101714202586297554735562173881070883652983079692526553596940716646240380624401301630074634256569715982210102219101417247704573393187859530426598454104439400179192512923853952673259907635408184779453789736556772165338974825088412866731094173183708138810916588085063817748242178916807921441428656120611272832951500768407924666114865625027902936479293749034649861311934629316894479488912394670321561761642035531133159985202552598445836591975851940913895885999848773456293921099204922780955118241582614828156896298074567778629046824258042084984644386436937539781160145626255930190098346049693298774148331861005553992585933996600963197237902021135388406354844403478265451767274176591791960439878891760296725029832534861719042752875173259378877379044356003497411861235878898766970509093187748361997403459759361552341851082505208574151510176544579456642971605890375453347994852246659769397689458871541501362134053518372707849148292336051589641786970969961229792462013832578074387888264833053969947193586018205075190706984840219364619665556185743197643539695731326502787016851219472650567713019935581435280730891588073881721343758941361771048458150131061062955315556405554489085813646698484418695636958155975621276432768920608862413462001545538721926511716636625561355591983809655008436242956670797634493510009003950414458603802244358484038105530009253997630516915240304322742218554677645207261548135275791468347898122279170812992769202751068650146580392699051517905560522733764341990267287543097567147894530518688833876803860636145703146137467226645419981937974753675077028781121544674639031818671695177988668022004299140333284710916577569012349206719466465034692878696149645492928243228117899704494473377011220014076081285303292455097313733719333910254665911882804880388697315109576965782762606625889940406143795262737308105047416715045099593376479427530869626638538834975315822568944247169010257404391091246350832014288189044835808162405160791292156473291825037616085050218530038778319121602764169339582014431166745742038476987681165497537829691420191671970944162788448938118053424758469724702502182532363029816618976148425894523094718005029649622554245768115250437805335408026499261918190014791683926131347378066254462098444823508484535673766143221418699178109176929229793998787559847636145969378959179410235161342282388917565324818307119167273182429021931455681079980524062478436460476617381731595013005120971122731599073380405698111743752150377738790718587311668283089572559420584855118041210196214550239829056581262473836603295081800818002797536262661508408828645319732123657779131123241807907359704467984945935637826379592976360497859404968042440590290352017173238299835326203685328287414917390682139476408068458465774877807586263046699605137439513574096880160504769595492438140810302787758665382851787693048296704227700382845870323508831065696131062226122847105418566507075081162981743173314740221081411507363438542598481395064439379923705582398615931167780020990015601554869364460038838028628190864049032036888174115854173526302968348682496179789991311564040232315635356642582878654667737833367224163115726982315270651118929711873208323524226695585727221524689253541204290925589628573301450731750957710036206031384043647042523367267280392461750054530766661472896931396493227906604644914962609481585800774354412441633076671301634029310998600934412666712252790057417226353243168690926798997337736026636251206768473788477911973009746112260314523109882394345099633631557189702629778843018161501910902947602917148635308664894301732074512621593620315168135326963113017415747338704894586688705172154046936715068281896476476588990314012748234853418742676680315396490603373282803572250929116419181469274428706821847605240431425819666589046206543387963484777635647142608408448319402688175752599805730798838959401959672333373420972141541320816341223829920782014940207397376448060124983257435050556022132558096061683706986176890613402620395038718268154899300768068420224153827822683182988120454455549018667507945628521452922368320229681623713559871330301222980493822480965677791917160496366701138900727080484328318851074267796853035928046186174677261016626100760011004460292196395752105155138833518726608475493863989119690967783562232662466340151446405224925245240713199298312004386704365970596935904139258105447667476572790211384377740061102885261005065349098252714739389708183454034739734073673809470510478189600724005842563049197638094753824093200778638075883608913276280832859245492039887888906376962145073971878217194409772006666413759711148169952714940384524533850767131365215160636955059512243722295327786388604077458288013160553024955207345921387819998213246821463963858111252624455017574732565348077430367078794704102719138251770907909305891397791128715833535600395722931263922544175993757016699705691774297162258229597063547061569681127133946882410957075560598395277915343585844335815490477909171203430161996413336389725707608771745032431466160283573728850638685947137504304602556500704370666140818111406685634544057394766276566130529858335641447319402880923175675878840109317934719161871076462939993529962990979526226655816532025560623723750450029906023037884926289215531091683808888482821927148276108886933636853091006373217908243953886606398301303398984304250145791281208056809442624135802854941557954817825651865775769730963890115108339883813535434907324141303231479864813161564888647013915647313831004335310040428169137548724597183370107625767824495103942470281958227371999652925365198163355733396562500746846985631915367033621246886111974032946808104380936675258346115463087045424606191972460449688481094722594378361198995675924261549699432564468666835004375770301826498418164028141628999065574194506264484289185446168565440021400811094738724825344264328581809069533722376685850949455278915122964708792622258856444909937530687597220415540282933944319747036945999121890957855295735673280878573712179499063373892578920385678634678177952433918067568594941544348628305070373885234284145524220070408829409619424958409353648963281496642331241400048679675068202055830279240670566561664490604201622931169498780575266188743147401725179662062385505204541168604809889577040486010338728471162322511654325906457818180746847966139241567023811190385417055588352199558588237317140929058847160004438171587328121369127094886853179092620859789284939108199241435287646979335964931522980464455158683988547926819363293547085862322772480127161617920678747345857250237793453498499199501930185280565767144034935587043880029119289136988847984664284322519196473327038592509213437179215809535801728682388345819503783201960802170256411194352696365019905903183135323113798102610374244129899325829143662804099495827120439812047038518234304261006426103321142468452217172040480887528526898440728514748732574986475478191621924348500299229225467736707359754301662741438058880788913542885465433735671560850710895221998951788384614433255452231393144883099616336949789079182059795163301296706044221552074410591206082409668174561753042340421629910797603459105811133263280078495759134933267889654322180439178164120836504515167132091313046109991606037358734826265464970652927409807923791037100518010992740232917896911854640275831807066126840031659950150976713021982207905670347261638602067722598238648819144579044783432229611710796560269626832618295732643005284884241043348390680151090423612486929785235896416074044651159996523380907147968536984507211243057669779867271623520159517024094169838015838379663564480020610466580754724976310342783025527277575912208708871795975747919620972955551100708875808193010000486772419974846938960019983201949595344246394091163841890856244933588231682148055923440674809458808050270835541338812087602058693116515670229377706820124107965963977482918894965355342305174954766047486569216574646881714437287509814805038816381979303057021451344136790622993423347728280233527033923818623069844579470086428245094858993006358572054524526617370441022135255698777405459740143869339687766807391749651962670103544485145288823771759923641506043440192976071466674559887939472327116908566558794500761629481170670336555884552742851375276392357739704391466904295836227370117063175516081505399924501148531353482447724452899415228979576506272244056975445199384058318878101019128808587807615401625213907006816553446431045031093510785006885364954183311826903170469285484505006430740148599931670017471567899421056542909538942785560486943513631686581804970145573084993772325336156542463760436658762028198740028996724046279251565503729997801056632333157422941892161833695318438699645331050723473711598309228621959469404765287954395646556181234661966734483074594416267507074734989489868052263926009580343424706817421317490250322284591105786348719550901534628153871826230706902103112107601196901682687641081232064657208161695369507805547638543821059743543571911358502203445546856187761608727494701842588146847662436120509232379105018073186151226883315055534461831516021638331086430248055126464398204634509264140794835877188787008998833403613521563375361962067269783142362645188955598499398674383535250149998793108811549148584028774079396694420932346769986859074984129492746010866406540377794014410899205445809909378204035085773181023449903932466949099786137291007964834498088792689875705393439474263980269842226074318593380325574474498686158369982436456870058396024309044202539763331788314556993704246689117885251988477428982632354558654538930028085610978057948204810811110221356389721533066400172592450109779657297683527430791657697721155354592882000013504236029994375970781259038780100392291438079366556811935219995268926963585712005635142644605373783507435096222677773170548548709392449752360454249145275388581839226676849552294051471796749522482320203822517688734413553789059792315108631269671799466327440006060873468086249623915078087561104310683258225439394591592104458486600528795129032584274784516392855107128493005678344040846189044849968525246222363819013311826337329824991308437363032428947343174874740076827577928107342844065593008419221748950436870132587580668835913680770028660185467347988592620249129489482251533885590036696295828496500035676441665351507465648039788726501378755983000011692692196364367082045799058782239778680269676166479099238790442387379701510724003251602550786600459514956635259560769713571644974866150017961723187388583494100261302143516443139403764943024148520011026853600606075107455367752741123759402629137138909305913159359229841147398563034196929933508776650556215723994118278852031828983694652934276494793691027637662104323525236803590068037442689479567274463995195406822621843132983361150421021501689343945973209674511521932623935748541811552961450646193643403655507590060144637392428944752722073977459165677441230261965225185647592193843498911279633776595695780441633747486682354372228552547279397722340813632839408977135381070095441724855680261361847341469123788635434641694338449449963861075678048676629929088356838921883243916239357749215982888423232326670783163155735492766026746303974104247146140267576818361353785347793851253237002758840746658202880264568880341084757452989126739396572421218500358225192471196113446697221413834785709546449847981370410370969729406369998345464004086563272434055533770022377755963486805007234011753976707662497986815376032287322335227039547364177908669187462455928261697993548788870540194840365419857298694522903234832744110745853460235820963508110212834280580402626150966730052429118087561623778280140885914115929072130040975930341264417795454785789120077262285911292447373928201773866671340305343621379560010235626500644297711474981671915623280176492782414865071841334268942787041348473835055950811245554271770614006693029882860250467412744782568172440402451905469854154217451517326244975842006002809779348300105445167692728602386463909121526782375495751912957345375123264563158589291951913028986652967387321445266082291864499982349397283157551418116841533870339089215129022938554384543442089841255903060396802779938219947571209585362594127815211750116232341863799938211009875504816134936750299287019189904215128499616706222825771834094292575068473362338262750444229099915788709869398262058393358290943038851713729551195208159397488702662850999872079019287728253898377468533724889384714829749841631325476775843345701885471794683060821290124420960635456898332046212554373822869486302727742502733953297127303000979430009576904231611390288008191436017743398516187406438132818717563910104909596603087597365060815376312746443951894897789345242809631414316697220729206228195020062645914337704463112817725751350687106923871467466452823638858359524441742290366920972195993944237746927849947398889551469766852328070154524172730122363846087890905662917521889592315421637698051871087813735125155961755273643900370802211699380298605644027797124504537718674016361496311162684956917177976217095068669346827406385934244608194155081294340269844355858841290562991189811809910775989643873022753825013119405897813397835467507871161133368881961724859981411034058943797419946070924613215557919243227547625297699028872183314264157846244667131968851917671851731604804955538404416090993853279607130421041117272580430803670495489555774584429894575760597097960944707428371379355332890559471222950918544198873760987473667198365279564476966637068130111533497342437736708285502984994688153509145504672861168968922000224897829122011561115619551453397068185947265400305432164988641270058121450930016897171906745641483534670057776043329158430413135064339731482385106170971348598805832759376589630582091154891482431937339343340014989224506564074218595285508085900933934536332074790489818832787201354047230409474869731775460731799568429080371487959378208065417456536634752897664977316588700510134789670125507189065614262596280012825199589665187186450755109716590087856178940277605234881822920295961056919681365536960994567147633093777737735686244885120957012238745301390615386697390873136881854767654545875250158858251696421449602382956422186447734017110657543903001603557819258062794064763468385352035793008760944578700352077159970704838176663262086669769187070413390876511232858209548952430229412767601394928320299414294446362838135608836046104788865098737071540621523233763860366774730554884838830943147174145438325061993814864067345233989757190535487570473427369062991596564459967005077246813732735118687944461691128308242400056591565279204211281698840268858003630983196945610033029369622285695068977711255980369329691498364524377906007735909382354474013407267769799272290610953940913986742131285772396063574198132157570602262976978613660576810682673691851362633177966796229153611282823600035091304957482557816773219537247701161743475408309044797991641652486240924695859424447063305133890908511204219399269278275373005348779227434231016336341838665624063182334165711161009297391181593259420081741629185028263179675278292855474931684230340758096513029503334669113375439267998582820292138520400337006757400193239871337698180281042036069692497252707050188164300120023455420214506088271722156499500479227796011827328352411977189236478925804858368416777817093780730030162891492402382849301007496594352413907120123702152245048751132466297950870988202054551330138308557868298143681087162153313941255313599590040880924545920980963491437576645143836005551904994839396691714934765799568976619627878365871955960797857119392082352911552539997940945099181893386738025409450963088336831903500703863036275867065028258718777115947836781746988139200849189895104299657296349909146594642660557631939309628433977742586402933579811891396902021784046528922088017003524816472626222628389315166693490499640959326140434247355613555008060342464340381995231879287265465017150775624740237459065362127552225567198898343340434361483124221499440613487782053007799214158459353198708331446173500193826996276506690977615011180503932578760115653822828845364895208362586468418521703729947471546731385318854775508900036859167732963167723703038719864829003625077817762267597258915085686202619700170949977727546453533577851759773131119672018299294970693995413716224477939159798476995678666049197402358182559963525337689089139257447137656813667599837282041558982569003201375099389063026335560829370802431438648872433163337854247448063708518854507726803666971471315728899212880698667592295572804358203929932792549393096191210553635520169815247582272831526150172358356313544089722845535088758525527594904893051376127548104984192888239207721708571353361737019338732986886262131905438165267200929062589912298681263384018741912446169203076658904993707748130867303275838469626739156601326493693749350312640073114870869986327073862251373990453361923119002821730725060225978467700388025581177360203224795719234818428360928767010076524256710478310123288920216152397214748445965496042238629707266146233852151225782615277798647186824160994055477844586807320364323748853858819770214019346353808053029781023363685687634023402156201668252243029200818320021806926336740633423616277546111806204911333202911409003744925183629118639867856097963313522320355279138529454646797867760841021587271945546650342640384496754690513228239798916187757169571926750452264885024772526390338404148432632004310657139113199903620245408738932463667157409980770485754805742361011977377497617980473480817839512139107917483412386914077380531971024579395859850110414044026661449268079623127456540921958685515480632536659248980531028735383908794180263414477325038225477737509703762718347328364778175779751946098809718117801572549266868940068036793454025168942621795361570995250943568504334178450227152632881833548734507104741005926183174724173388374995275892389588356658721903472970702850159607884242443039022050042804709343625660000799751404848136837254082636129332304331913240643846960044221621514196886443389087268172278645426445149487915854935487302204230162550661167252782072136093517364689086803026351873386824959981127567032008134699020883781707609071036715788908541317094321881543514517824759589836389730798380894233527104753701740346719378330021806864566403582553545477732789250053247968905944986135726766536106461551152890138687685319529914025681271052321085791525445537034731436534114361014184700053228730315083369801510691419827094158661628071069931429475960709290666390841911110892900720135613753515268659005152087388868097758620198831836224202624881153688195660423620131599740254627516473091825753618831636798927431731997383123857777679753841769569245945922096580163621432054604281915497643122149696823531829975246760498234826978249464479122219852280016113174827254660416817905232427993205146644315772236418727423892546608939599299238387302759781152085232918509450493992496109424432408578171527497008818760570753149374450585084976983340252429858021003952632368005439224516410163305546101033223549328904707807574542682941012122328711898376542495765509771342444032785005346010533049587143344048234856951388244533395161812628697446542223696280461288793566239145837645449026319749744720375679776112290299923835412723445378397919906077326202928314904690292164974174559729821333478129089220564532800112464368637043335032648887304478136718045077670624605963258148233035341399261060962793130837059466836106660481511331932470349602150216401029367756869322679612387285443837488579038209224781741949834216625057308253233188784450006322731616659184996413448586169800227358577145673746738285562957177871062881885557453005724838783312853987205410909425355612997766003440856728385172291096118719415272719377020273325319451920682034522224454616231688887550401189323347096697898079137966081802779209726888241459118577584555932803931927534336767817554856681712298258318526970277695223713976736121978999555269301650569565373937184620942826659413919491594232165696040901180224738838227485908090303435109572046817543829790061792429504320233969886748786683280929432998208580279624566332441175681956835471334173544717065025409108613353787207945516838491112487493080145470348353539361504594908837804158075778946912594631052147081436563650773345786957910672551721065629858377228177608968001051960347947862283703231192442184022103661630037814879290281072625124394814041939993631161004690761346516765964929472401884552540873591056859023951267530656285941926263227859025621698667066844814872783930279327533747259223736679241684366276700816595265710171962130909093851096700183885863064760170570126404688214167875521517178876722486975654593371622572225057113157867792755764054778133902815285308509632546198046403439963803332363983617574719979033340422973669994561793329597398507824590523383511787111254682296845600364116220120933968832127335087343681007537739166184951975796914737223289699776208347613039299056299361215714963175270083725191762265170023622538769727993504255922311076111848417759983509987501442771078213800541136177160580582899983339097775993562057966301149143717737595166813147194204140869758750256368161737558369977383488447989642975877077631381347669339140568960832995120057557153123930463144603800462323746190763580831411114816366102976969609698143493112652007520870236508843792652315087356553685983919108327059433355724450455109089563994323285731178168943255437384628958847131518414068819948567348367809199975356037720028096050059846730313478145201243774804804556980084009652185314236647932475792587251302997628395157718673072936966457629311989523647969499861836424439057762561269025876429172625654791745641086090831032226493313119444983101224533922745971497683350686479552656912270686292448213406274564028119899219502397003318902859971839497209753838781307338108551431012507069509003771685683946283072669269969473818092388676931000651294280915661932917866822066276533228662822417988095385070835672912805757667746212086618879691150825460098194178908925497218340294644770984572106351993481479899249164562659590490404296595211913618729237189764847525606841590447466946604361991138324167151845056810202487328576730875384307215733941256605675464145320803537443365503279656472759640239621725145368274219748892277884301798994211228190890087094579793101145428665516602040293269798819009071946514099333312358444422921951840801478894411323229625493708901655956101323312931924618475538517104041644937374924124931625704682101007218516784020146265272942051187023728049822016553510187596433587400740214345415915018618988061846771884237171365676949102848292913534880896574280272977341076141445036603331619490049566877463949343355631868220698060456388070308119461843321461272084647131591109203083630223112719810773069009249693894539408100798616146681178696119790447733411137071159127531936309553469751114991209818454990126949923411978665921112590613441950204111007992932068815479195961566407523914003385382966470886977503487967615261003549327957938402012277177281323907952388340225556756930321680567502444221078850463633418771204614214444361599277911837845324020484059271428637218960382227641977799142520220478321215698285369865891500633900886208228701381616560619657112281919394449415628274045077875191367341803829465769265328164647699007455909629722868112358191137514606125499277190660232415866879885369818405375582269032140762965399240899467449190921803564007879771132692935377449135318597686344828481213043071194140174905249440264068324949059362297233610715002498584607418668221788484111844735885785165348036230261699980906142341091676400995656177259416015356260788973247525748921126122917108724825153350945762490877530778761743647012114013513190986243268449380079136694970712457954459349832311437071245470574102587959157053825435949798498998954622625798693978420374363787279695087915078710014326010431382145870803026497053117089531196759187752142951961928715197586052126499562908509321033969421621958456776271544272777470580069555529425741878512348102614266533998603085547652927979825937876019170111686854556484994753245302802551352284426984711197900196778160357539344057451955376035147142394530721680576874724723888746167729820934378652433088435327769782392839172664358074892706234976333835660787910974942217623266952599026596575472025997617841549065384181322890835421634945773971049526172466104094239789644193106344960842814995191860656404959151485930307490963180980118745457876070855560836988325047797165535429174799274427928124349116904105230010727697334544395710824726499790476733103740313219529079010784500492363523657163645203833068602143099667891201885323683685081324929034453907887233384295390386598355130387713199265506866267863411319320289806251134614255357001874314519792279693158297134618127369794647540777839725413226298810000412346540077960036015454788370164621156693524830971722054919858802959671102871723999123143930014518885137067334456698534922494925057620630141988413639550937481978443277047796260726431894498356540913583859465833277673335579361002536923057849258419810237236479259880631475781546970787348394710990531212712729387367517175586725188165705909965614573570273956453760724543901753569918148935477453458855710412435939851340231311507364133373987253657965860132304217271180937996877696326265177194706378400321081037880694159599770389089461049190423978006132257714927255146570922610569852430641603052821775523735995004364571292468536120679386000013987389243929307311606885432192038321907819244569483930493220829741948625228516131204625879347721528038975276130726187559003621573024930376749038529952864336740569205830255516468268036765886977506176076011423270936873837978497860497329761639487025051189366069087223650846008317057880558568497358560393568351344910024447775246207788455145124854060124840327937860430174680739936830275993259971968769220409563584553510409245643292636245189522471359033858271450483115949752441278977476114745411697320269444929725410091726882145087156615157647007962806336392596269474291809097923041248714889030651319966863165180344370381969406993093366566323076623971186913763653227211476213354540567055651704880121934069070058174577595809308543465702880885489265436069744409416662925296800872859752748490423104234257230174976012374135960120300862961036805250892174517375103750687124592233858714680489019391526493372219187401476932402799931618010322036191583182059603521515930659502443237644114768834608992065291955284562719636551071596538902986024985240062138674422265481919857031836775695557784625272987194580649881762350438258120975571842305060246056800180132226956417450510903865250169671746509839601138277395986417908324675586072765810284329684133840333586762575790051939853784137551923075768762662821735602224733318359761767177085407878159823635965113040073927134396381651266830547420205690993839319564118095282811753823655730623003309318099078583901774959294118360768550808543097261764496453081876704819726598340926395741317050306853681249077735410775674426122858402505391397277334434441670341278002446026264009246678814600132058548207590295391753796855964085329980620937828643036142052240051506348608780470685358374431347388874309298644266088086278601123059794259394801186191770772881236457511803321194571285627033986620055590565935406146055401038975111797979464883603440734909151738404370748585766443577261732577567634738143684847304717315386349690346048473999898536678727740512226259043834722412658876377720371445096477253824565717909046278589202613477646488554938753509449429272336968326910863359904971964650818456315494520845440297075232275410200048034640768376866982602600813238098421961786072723497968238132236039477818081196111498329552022297936121040438045564856516637593319711879468757502174824404259877723455737212519716598115376990118927077301223622176463630103004798944283621474050270361663697760732796199162303701095783327411255847527626660341775534845135140703711648696836685935033115239773360327526003388129944925592098198847377213756622866950452162212592120844694139427483445498859697779709259865103002343284324420924428062314397209938954476112362280641736464383320495424775348849404910705250858108931768905154096694248116672140750933782164312818466861505395965562729402548779189779215105148041986567948186275020346721971375053706736752559818743308950077794357804769534841205850467697358658556812677532256674813339761666856643190805462917366343259783919554602709027365428493707712587464514241677181232782277283953987618412582113905244472440722302893983996910134848270820076245157373968546865954363524180930099774189942259308114485831866541085031765547866955031797647527695563756872744555971926780338361635133446758333075927464012750885808960935616432353365321399453900768916886773755359046680255541745418078612031620320051457914085119937224458224073095759925477712867452364260456910374132865988984984131639088145216926744160726934218777279147659164972222550799743991523665037112963548385274091727288574574166750459808713803956399928008107409825878057738180433403237439944168657068485404523400158803144629419711195456856754855048267550168657973992074582117315070924593318922176426983896208362702472781536666547867674589785881136150967533812377287752220354140128481829864485620929942393316458191155132838855023063833597814149056584364090538167467623074173037288311126275265634523227309624198376747142879845342945916434504098734980531278645875629061511841349621204255201166232881781452314130511951654309382823379589487973507311495470005897047780390358729441637848364862073650165359970703337039908165898977603195691007067183220492500433979819618300698982587004681329462957772554060255069381622966888533012782302134843963591335009119718343945437015172346572405182774873781332830115855004748506026440226873741778267175106208219325116802620938272822582839423832582632964088462538695216120098054166090375944517344019333332306528046005992173066756569574842106616385211645768117707674677571627282421778634431650793284285280683716798637686321643772175245028130922774904691332646811988170363169399607815019288216843259101367355084763680308451961607543519929021033104224158200365401255003536253400426024810440639009150082739282406574225251731270716901093770226842904626941568012257373223771641331142800041419958049935937552138045525682736307529335740856193004987746744108595490223696462645025954809070726360242906446450032355672674020181739757133456740888565859153070521081193089811027757941202428437212656522522907497779417918414410147272546209156092707082050756096160694090950873407159363830275506308003991210006358717369180145555066271346296996196856062532807641965904273838039405136086209058293357688707116251782595398175316693663115243697972900812906462769519190812707188980188511875302057899196776115628432059382608020415987209477471562136856000015589736189328970305544770737945226361873331044124816961008838845896525498562612261785202479523193626852722646897565460617240588291449777875415549642543351252628515407293117089889883522274849184464028364805141641514017189780208978887774722978113070279064777205439798797518950182633249616575380810808397650927702013647574707997898255466354951003380651638271585572322119793010161897121896892014022240656187943307312539042700060630379155312135986110248662041361397470056322730152912366566650851490284749339362447759521528370882832013408220369205376755334035201434444373908276237066160436256049012312209198534735080562244647742119578665946753138547229773432768883693392344765871781054755771888983855398717354980561384167956586589308897589201993381880105080330045303114803186147916586106422547880164257816105885253654686440536510885347594777358274436934021114137391500549629970375052360078223968026853485181998669566955752682203927623802993537515653923146654750565223973258328099257754901766523838751972052800057668565420096015872428100109528668636536147761116196330886374428707096781375045709478921885793434193012394212012978387528830180705359079216557902850784380978567810894952119444449131790415781359168329326122962022178361725315774165459551788542531115243699284194128984452607738676877976910126037304171832474467166226556937350422655505622251347962304880812546636602512099139825269921647362699963191448131614826623500083038538590572831554630853996595745606735824140571973239361772221436637678646756142254208537060325659338104422507442851652533495421408997727417257168113870021866376010767885383645177833607119788084932359530700891630188005776091631616076229151412139688541498667728770545317309891431620582742412748024627753867528977608406956825881670455216971367684708231776471794178281259996331577988449563460595411280980923923291503426976687981668823389675857843941227653181924457549521149693984836162497384252485316421222087053397404181539180094568385348452959339333700394961316537130472608915487429366456352047957821715860134716702256888980703512003275002373786748958677233401176301613669890499385516581144476694719978120236167426700940692558841411336809720175520479793787740942595450752476211878593175676196189354808687540567049056335068360443304338939418670691499020705903101893757206119729498665882228849327930027700371647282575411148089859461525020609704192402851082594183949777042033574876752790644169036460887942309046172567245053008064569601315965612496471191523664743269215722225124628052230345526152554445123579468983687547028727697251388810159287219332428309962839667169079517294031603652411949438432847893237593411684707253694571698882923443446612847488001965735008380792388377254636422519212648792453738858143794537054736865891236497079650200398662373552599555892219894102272254631472310985593720464679001025100708206106132621056202826882810358545644983379257935259943513240171450279072227775850939346958980359821143814780031542275075074960620876580569603823599832948343928974807413292556233488883239108007298579159950556743134642616630876428110084093232223114066043440421736123367369020871677739608395649725661519012797373935039134734005199222843339884421518717971223689499181518348954548801526278835391432015795348080255653170208370677512029752610367021199570499072629250500991344979892253538514167917423626061039693260068363934026812364905763657805352371299690423291900600208384344585458073062658462072934080030517346644218903755428495032124259617216353106504753994455206029534417671067033650674875523489226208380578909699017159270144116523407172495258627172378411462868718239619320786938761855963105991777635128553968781470244077511446645545019012170624356421170437891447168534792210143832803186440308128942952477197910104396492624271901110817511618934271007712480335075191548374562757674170527416158317626700690740522470769806892821775182921229309990873739424795290391668398420703551615290828210170819227297349780141698292635241299644038610732145978548452695282250716412475524498632656946842173837803960340504657443413979913048871205466232474372755924980548615444620970469982780493506370450045514677369084399003766662709482870300186271237074963653399786652678474732909612005367867161273660579828049605424732056221795237442682074768524714387698216755616831185401901523545941444164533905319291997699977630458823769518822349186331343983336010826046330393420160100174782356752647827685222750295433601097453936870800098679188518616737882892318665817305049301450018647245415308541271232547823733961352271384927148825337985207505140502414449130855492159770076672568290104840005117821386491460160744719676546799115336319834950156106520744446365545900165104923087072939644351751854623025467168765658395972477909291355793019100382745069495065239359283473945594062755549637158485847159786820775004206487887965953019056667283031569615068392535788588589337923301284618873455028331300187207960506137849777587153661307324699138006815107357925844213015010863194028787057559474983991710450584365092046676544472713596059405673861222215432354883999340439866588064798247498853305423888970916738614202875441945254869015542157710239721097321146417833971623592441447248153020412903548783951857801268962045598267875597791825385833002627939865545330477618504039509919765506748922405772517344813352699098215344798727781117005698374742247818085932683509394616179715406393756298006126955362505204520399741801229566215622580870737869044649938134110170179551578914813559564130546365761099171231224942390422531203313036242349618652266421737611011262386826561842886283087248107333971054976220703954533959477564810071650324617887614050819930719938110640625223214259908288224469414252525981346787578889957451718962982211063809728254372115135907170861730533425491292945723235816645444496105082682537999144356045314841014198803510474260865870553579752606634545650490007318123780379957337704614497405009086226114344634356135990905414806877572409166591521146480185051304785462713158672753980841862729397965699608574228383569035439310973619037305278306935361557957499151917554112185704542778075887012673698222134342936281110368009461025035506543920150457999935802672856185673733307231825109388015891659820700078493713711147050889104050172084329322609653734121921400802746038933679526625625743554485415883482819014812988571674442667620431851170108460424546998258552448128170444067171746803122295562049008492259431889275943116110822950559383084665370534428402491057489614559631048199281768366355647856716348392959353658894215186566275726475937649058020952442038061836223730555984227374800091632364838716874059698639909496697423417403598592162976398499828004334519082516245483373445621204098991954755942874231873984890463795139213597132328573292045591260555785159439231901006963024233287495653603069070538818156733817269044143587595600958607626277473799465270098398991013486799690503750543317332558498234037615678435750602203203503344496053806698051612335587997929121627659698938356999769348456872718670412720263344570250672951770899058320048099448122836005838876187539698621261789110456317687792837330832605072905216639711430073900694794586290671390526968894650316151760931308614050069739490940563020127385102227847020548062176988666597577795673401230655737780626165225599853128829224354985106515561907213981235286869402791942573032544876191655901357615507096228683638732156380981932249399672024200667907613523018342339506837389932960450293582015644918275005975616056892673260731370763560863955563980283531361366941756240630977171980990880303544416005178420621435055262385842718551916106471316329380779417723935142427524553109496983544364527582032848811969878768722258347305909612146986163605670208168974583764159758850090764991217659128843828608353879496281144845491619454528045883847893339985609160725724526185740685029262541253478413411134532128164118824995929326120186939470066881279175159263351475188114288899265343086150369554289768492345894872867876984431612313132257167209630506146471954591042076142902526832096277857152053272838051337435922201120252769312719225142994495804327068019156349932245530009094693410732698423352619493688103559008290078233254444744951382512468474247400185196638062643671743606132226456640262271829890974797848034781348410195475694239505751003795697076213371053487761828719566038836318517145971923276928532093683202515391049155455328354317996654962209813810520736529310910697303324821576682767435147490021158843113268163723695397106746189317170815050111279247557155345822630760822224265889982202746235672607433213819979450248142102482851969329005330162051067845194917756457915822976164485504335236636018726752278797675910621694688592516241412089813303289097718738147679195030980050641885149185952584975207267498239737302443241252132081196706324451193721457964066621942671282154138027314906658167697292786964975387677200698885212601643437424660079930041939435812296115407403109771176695305165285609585611525163077018249320211464896704670678113754461448859320746735326770413871822825444298792902941770347027442821280556544181113995287312496667892819633429527649686386994464553046534041453107774121902566223931008296349558717720928520148644516491029253267083661307109591637916037417060600742406180977554176290766330546811148479020392609051139569011015501260240408320148174453302237425628630951830787331523524934691194729913407187829427009132909900168809794847553821536990572102457585673100890601061787787664151807793142745947086473693633622820672344362908330996126206404869791248387924559946894950744061177538033510665247499491765358476010064154391524628650724109369070048887373541994420525905471982328262992346104386292448868041879285072517244975422087002072288620888260370126317639659872750479381250538305795428051191247229256737946334798063141575335159914147290294801284214001207744439944593632522842064762834040708523002616062210245576486148046234365471121710688251477903068291557102199610748061668761481345368326937834009654703557740188556136901926751297747030496347239287132674887113730463302340249496694330570213060556999011072438233783245378786148737935135567729516604026043128697776321195178245840070737466392908865098670521376166363765287789887049378964594828546155953304290913955839059483068915043577728560334912365537554118776637118125231190609587718021397593763994796646005884744459455259841525618255341705829633340656455697866262510657112083027021509576156625368222459810403160021208040450127704426322377348896522744794868092453414260492261295297863951648854365468741533952257143354212204964934791038980951281860933598528757513014242382366784489133648337292293442417150105924245167710762486702487526270560193680320269070034412426855995007088872780369209376267019951546591184291808910354895428319680070586077942188939513037723991519291062644290822016871658903776742978175461569555382333021884152328122728439290811152548153344095473783100369316155450719590437700557316459592620278152873538859109526818150597633291174621344300765170423317780978810793706682247300899134426854410064926375879640699826804614144518045128051413088846173442782228813850251381046262891386323389110119940580938439462095393865741773664624341629482613178646582397576882627918074579323274124521541233137359634255228362387766162972737046571397372778947493911038365738098989590515106107890287837389366045393717390106464369301277055264383557451481325664240359715820262078026754924825420201417628167684979257661011147439568269563635218443556622133636166605893461855851661435372846105411183986134073926469538388483172102913953202937639188260299880132956832865284557267640472597341471292879484601343321153412035382306776960502522687813798104008034705696780016189894705283049872144071671088099957836501139826723173689069762137926059096795461297671181684180498648326570370459173767513409487107253172034583163600559980614081574040971614589210978440228869297209002176589003433026289479257161347592057805220752915708815437833845814594686927416980589125284593225373567074525318515978784747006750857881638770907778184800214773106623309939568372091315941069393710809659450403691166089030126875726164182044130218469160840105300040454700633775302484363797971742627658494743125598585680184027128497210935892364179676505783786318958667934404017399659547376883576005065228535849232776983502020429928552146742193675741631679348261282464302874466010194155026893872616998364974861822469729008539794179791815659614950679919781323321016670430089001533995888492985276795999940027805321616372057580422330892542312302683640309408912757167459718964453466259257331180667039169694653653186891465515675184418649648880925767924261127632093757411252396744296644432710773941421185295245798996970566467950229444262817058412889365009683717143974262035962915552025994322341356319737470569023184392613346431400334454682445251937218835240367058056671183218910312795880031685990820466418461939851247066811498923198201913116739011865368306895866593181440192413340599909821824255563236070925191459912161748276968894684098788009377086256418583443655533329934804290895768016775090850710342250308656223957801022068859397311489985288557297368443436860040968745592051156100498497702414102253348479573157627556129572304144231027644396045682797855455705093732076397279437108468333614659511540521462031405973921890601066418223135125863807313026606723696491770453922979630425725259498505847600722326967960323368414228364036884661827277052648508878966085457739974952824479857771968515644795042623353472803880188230462128142700789508398595221467557961378510873131013000844233158909685483010432734161316703202585890120244383999539702871080364595071183296299370542476484781793261569597991740156265847709768932036980306544882436066170823049469999385768156575389584785191017737444068101890521144000369715978041983251018156619410806612297267185553478428856614869828408108780084673534793267105684996007855920219250180362286632765614801492501532445346215727137670393295096909303048804323846832344949266752191947925254248090359746639493229081556330261098537186763146169699767260248312191337534207283672373107195457357751841749038080672384845906681112443786541584939457913521222851603728039652275026192898948695970198859123783535112564479595746022153472370949053225599786333452571425341009660247867989741974611372075428562114646037436579614650408242212561617778056965980922861250621848683569068175650761070254864954972947641769857730950529917805706789442068100814385777467104856451396440007363538584651632198289941955834193043152304433686289457109046095362509880530280422995505970933685285941077257698461655925397629035257218806748038053334222085191813621299768350961814629044882227675129007464067269672511758714444207181334029066956516674505362296215737733794152089031341211915213913273446644040897074935676406607570302134040716847267126908849642669215515618762512518922334952437577082250048527395447516914247674282351752360519422087813537605001818535883808854368946961903143471953708533541854896303150732885246326868337219867580717412183601244950425555451705302266734289252092930601175113995642523507767330483600544345992626626679963282161023427281134190863045115964149894878777407271990304414412191527725081073397706936875659965674919115032687887662650709094431938809786196801815966272342880095550064552320153251443762219939012910740975427888174212984724185861061047686664288555790472292144797760187144251610118114637451102629652772351353763945888483870641031593658324230613201832579118025501693644864382884718808224799199014901172972181813929355681016459933973386108646956356929022861840903573445712135520230665374157213450290087410687560508744665086158534095679711286765522097680992783281474962492047624788466488018708425483969798503254158526261383918168805244419575810980985660739456194370084859983319640508144065246230245590500766821031375955126989532872740211231902063296202540786022010541885742503202515170564237260216550176319680740206717074459280487186675815020809077650747215721396226489505581205478832978333372011249519110717265866268368641273365167842390813297124259686991205775995182607715485968233332686226368701002016244607466185790938713775518685012139400998409275551783677090419735510966999304088987936560413116958386740551168817092863590194542673017758348998069001621610132158331805582953012062363812163735303595672303141217757337595292162640441638148495653254318816677120094751244975798004571248326810169681979807480327852154432380017692101216849285698768860827517590466434447091164947129930621647625764243554896010190410430419421169682791595274098156755197883587324318237433756442612163124855426140821769261567342909818684734247738546285810565070131422812691086083618052863090448618923607061468400657476253146520588708548757277352354651605862054348615312037087528014006321271036300398063917677421944170519322385331262624261240682408773868513037249140247498738819783302717521191684127138420964384372903010932893278690983934801292766169171173406074381072797481025065945636314189961652252857125662942603235074195069043337073059610742859779141230347208906645740050529019970042617318373672472719148109083606112506215054012887964483000815708891998052336484413848395622030872238570276705025919432587798468359522609595851077028677379044347977486411124542637443849614633297825253374167491972664897434518562634306618510561600284959114470172795825107808676916498725690740777525051915114945128399196389189183251460613906428481193048375525275148086257719361718436117172953562496843039133656410203777967552961877603689490148365942356556895287206614284397656799773609822581842087669183886962327101981238466058725703191107922449150562870072190424905877798284631348688540466378400314816350607222497806489396428643774175309038892077394247296710770077756478322158875962308801629633640644297735305986394765531482162435113299333561054554582495545908866896099269045845748598724164617408497443380991489544199225243111994589360985613765583804529782072038243206056798064426127529284255497210465589204819968030905700194252352989768599847964227912458280130833804829820275571968991903694624155299530491340038989821683896808113086242989608177850142714926739424501992272779079685614610640541440975653575722115290663293136298716822202414546100976100211236432089969991781433594923186440777061468151728167849640023710085674740226333903644520041337788569069379629875713336515435463789196842833866744140468405380765516809549030646512368245578599423239145889188038831493524610980372847034492148416383855370154357124023303912910534826998229894853492447258332006003255555734608636413312489745105806299371061878841875287979281697940249505534203255530055898296824052703849499135362525733081718136055249273529798638529253801080518954902465343062328962122315244159439685328686589035889087377376498622288347759000695520744851451294759272219051494686548713923335818049901018479467956821290025597458833089659796217093606785712500972255116920393348749051477591454910618095173669959911592299687873325160136697676684960694472821350909840346379258101205163171179528912236952224520326452353130718741050630649264791257549082906811380814757920878499636868797019770597085200917057128757134936595961595959504204100369312023324305480932697219738567473403126409652045031298798368202455880885003938650792146325820164398862880411358911552084869430172885786843530266432145086442426583445300490151716259599540890680470618516340082412345045413919804635926698634786238849173996824217804378709923962573767982066640128826852317375519371576335267207120952237639484312634242717183992047655257078943097489419785456484372554038750696027142664801531600435000004599348795097486319808019028108684900237515116994575115218188457810658310882997469121034259783649332482945355613557666055527385320354209812281220384183202880761905598277910044474268826834971316260454490114271584366772274345649736617276080949473219819068792487019101586404599157836505623668041868377806952895141304738350812210895526152926266409942672209575760951316416731643469564878797897402924869218306256236150882227610744307376435855623195364788625500163601204303101265723944004459141801811344736674640218079471755814188935110034130152975344554678460343294614027832197500808237370827654964604914721814687989733132434197503106684583861819490052506504099798655881915087657830539694896439809729254274829019294385142344799161872035377520024669028063696333372756584168835309590017920472209023434115352592930903914162976953425205626942116075103337435103299285606892465362158165095170402307539631997292305856320508500110353011430931978696824106224691289866720546859821589366200166088547354433998830149788815777342689691366630870957979306345907843168073694360748828904556578436579057587091538698536936202813984801247247675556671160769749716614481166571646053492851975292008642252025913109628053611220322589793946464237730989900588188096619188692203643593412361682494816655111348801270927970513881925416453722540201491223078431934209647566097817530886925132942238305153276329008071363880059969610698687927148920944687342718019398184751952441385076026345732501496495181170682802528672178975756870851686455051780318718695573238501113784181190643592125460648936253874933663862193676238871022462414886788633632675407238797331033166641106432853864441358210532427075157780998577632839153185966461629001512987084368065641487915129752058613902661336163365914574040921232186786253368249207889729348171017471356381690597068952918453647329969338242354261792282052853709856235228093508248669681585491442415143797344046571919356092666169325181982301980111945936520830279053958677849189992788959400655422485867309926551383147137134390525780973423217080643870222608949801343816541112101617017321799636704862081256162295119123281337187597090823118537210878010473002370598890576971392223798723195843690767568421553887863482845346425864828546554722674111142331147200532556128607402833987151993110227031539006843247914035379463814489973956789103475670520476073407630022367074646330444553615044466621001470346046156561432185656782945453546977419032669368071068177197929640686036552232189262878890031635519074832585031029517808775126992438437265461382075244484780402410837738348960655501074085027317786135727443300521065405956299744722520621176097686831469557691326561076233537671836420749890892409760324422971628832029226984761371910471351592940762429419777850896773376374631916734110266735833825213374878386309437353345445394501194099659917047687668270063302939527262952481818125113301747025419347370702860262699329894617584809038028706191776409522417172892852296459263971392962008574218680572228957889963368787786862176730198039708761531567189868889866057876846444351035527247178503618973081956047139197244519599820540097711089838553437555222747169020570296557546191549416744462602414371358033848162104049749451674059792127892366682971449995400995303542336920146515954730359514599801207931827376738450039953132954946672890919948019285323252327359017787589212547853508329084135611310393884111421881877138240463620207594416394622949489523813333143992560619452770502264169904728404794032895035058881201183081081479488217993195465535391586495950663020887600858448712118634394357569394602365668569676849756473345900364193452024204347144241100566281926117089191685156725123990952768467890453419174487978304924232964327732014321377782427489050283140179115564745556075853221600655562624789552633949044247587835302502491452445030185413601761654214797248955316847639131440818084290778899533471196323772029792055180116682459904692080463980469275186770421213110686920188617027082021746825888644439421898956334267548239664930092452507743414800085721427986670680716378432701212932387924106733380634183778110628549795553056772426540269946198065045879854671193363940232220977518996483415208113726923877667804780058563202117289721854545017167460081995293715526867300070264720547881165346442104480868175668443990606652285394127242316763220729277329355024438094408881707940688180851131645934082620239312812420664797411617123673309266295863108601962255727690931614552675098339488836143751384444226220673355801804578711729999584736283796685883674555778539660607143764746519581238567085792730356215074688017392770524016972528274625536388136743792890249467204225123588234020207808143113953443046726710648819051278086720667757825703148824037948240121571861076075220076579115264218543564854671318968975684294114843990144096177819742200697802728676692574119104353299551193901877788362779502272368053334812180468875968415089008496272679685307083875683607346175784251457724930939489891289651513990072451701466755452467309561385748894806434605216449663039655714003003233195889582530130494049170335708533348077394591296964075562753844857615876896598829045824521030899064318101317375603712434455986909232282326704481584023320162850326834986900689180373911566364072331978584847263105917833252537448105696585442308427160574048911269430444113232830120794891108424081146601171167283946503611449169549338168563832438346177446958876996534218466119011465738158607233830189739204777074565290581812015570015782775432210484460321673678869492789211095006827424416580412195725929308136882040410567993249033556601514583458135582566630051126480297882592412251462949148210363604017664741927901954907521087614981008207853418359393214943918947765416406031969004301006203568771082148716098002683160046057675380065696243803538667927485541991722178564985279229798475951472719620216605621137415050351725347522948877955456605325117573241012521288731826566815726429001955415722049634174794747019875729981250006027185801978403037239546701921173441437535100230286143749272940750270056521811584267602339993957925236193776577273198055242012561464689296075087766916159192168602894397023562067334905158025284835342888576798815928393051000396456706207965188998551198785067485452133848657522803850343279613103879829843378900957104346372110503626871467487360125997770423222258976766210829017617826825247096330102589918572758800136121528988375742774238806123697875697207162416903990674381292687784235276713634854245945875099980602113050717256043013335682113180397268558549214486086862789019801518495293877310468909395822227567357572861100580258531576019400586101059215374246195529566140518348052613832804984568403382591239123606892347749208719309903294031457120979756316315978414607095154362663295644966786867960286973501139637132405895517606533356072305021987672998052484591721123849666332481167502572705995051463096559048994647719541418736776795210061389418112951748176541734642255078419572098096255739426327777178782903655621179991097136921569719513969340821394975867694534889049911021130977957715272777286498828520943186860208517453213022764626861151032134203485418550567862545471835735079818609576358455558363824106486899238205781688309596601073289682824783027659854358367453520546947120469181580589138158984831670036940129097642934021897518103275341095021232588801710411904553806087799715242694305762239161337634602175307008515534548552663390169649009313679009412717202780363526868474770283205893466267952502343034022290355120250925940347878646707938084824842221366512234434970650537661160460267821395424883063930312669011258395171453642276830292373005982138545097649715391362977240127959814760805874036732025471454508220678814129891454687440579810206430972772474240609067165043440248114716089658109087958062220190855174055342940063579191107192946648170849024762774257256756525800951032472307146548068305752601987558077740544298678459469621934637477796449086367554965879453566982471618149023664830926551074312017797950258933487543452724922886208399486956265548243771637411331517538673051937798747802903279224658488020044648474648440378270632967293528507179933781289547642800697324117027381470466561058161715447085401202539667187761211487449253915736024696276183701994099593792666352209623109242640422709673670599881453564209037306584602979427613463491817723370494683222903549555780451542712301220709264963699771917088090616551659797486217579774971218196906271643756151505476049941679165127529194842606095561182018350095644250682157424746763748562482624518912478575380126830354057595074201370198873512918743019577273564742700660469224423905650168841341273962583778228388120544054704356558290119391264527747878342749933876980962661387964797596398933162598654376210403760542309612645620576942814840721780367438286847816746607220883224334581608108392652427067389867204482465561216830056001569038174973509513672793356168859040147265323559812404912108476606679686813213302324581299863324842342259513696295530051681032833756596658815938860688415238719679787055020130781610060085382574208095230443972221146544113418885886500870256847105462079560994890434658839431118550268557183510365191009106162493309989454432476664877669469456451451530131203049871593493673602349508771163305607320095165442775685835980679907564742860739864672558010782667785023692741754595427041284616191804117317523809847557875505495773805004669286653633106287804966210283399994582055045102592119640086815295863922165413876346792967880509854870514194516279278399655648076324471798762921922384358828841553578462061074606323645636153982228862395623274531472276287422087786377405599805576983704767880850084308181500833639178424882635217243293858840826065548830068727579329465847938020340029702072944289236505498694466901768621621148012419616555629197699196094660387451896031762377431967259580413511930285434650292902593653243659777320165856529906531883687936919483634692151215497152704825618451910961364002209645244669127143989526972663443469460170050674532780812298700285266709250311074227286947710119732353885448871528738263129536044402364110603364374074887593838719753359457944362932309596451728580425285319565265828067854140599215575063040713534427145946253996927850509007408217587727062841460010585907108371180136378170202160991649831380450085027602163152805311683192003541136273046264751050718613540554710496252598282802240561895476055338089201098424029879445606464760625172626435782922971421762383777679896868862956894408613824891018355767659586072217838294996804676124681572188391657894051718469475919136132146388329506788253653661543042505743167052708597472811102867086108923818228513980795856217320544892735384983653649074256477383778167563645836588085952320375361694111407296186502315197836258463847167473768633169074558006805460503331812130982011468260370371597427649412983368931629537885824332258451787645875973898492716739928045457763556955485467967107108293341832845543156369840552782264529772281958406842541870649627841833311822892270529907325752660372519820120074791264477500564680362689859868210861487889458174612474921153301162627699877229450630666455592369553255638772123046649792106263205028781530812332161473041980031196834028270890729532108721974965378974025340455788322264661053014454669858276996982762602977004101837336336816568820571187808816044755631995531057163730859228314646820279942094834821313124201094314419263435717045016077360296675658061203098714860076599522477978668331993879644167570295278250811826444993212786532472695131802305391874892654754493326690310833857086516103349797627076675853119203867652980851907846636194269914210942676732822615406510878871329163616772473471490270525764580831302024163111414974275034003081312707560869547447773498605872320468106223348327744162025345914155913264504007757152935199542068339183472969628876982567898932651933867909813459545489413106284243790456369552678623362498619076003067922518668350666312086171468133151582138739478525092674542331945927799280740119798660794520743545009359490779170736888025931512607190278727059248727314950241986950971522313907878627252283535783739315192503874378934682899100449053559522544040733737526530861346699553537747616593506586326243071491456414161569144689959642052799501743156152011932228551534776016344863346799071164854602647382050342652794200981873627453642096344356084158995640145021217712255350498082849633451950646820624853061429485785588047231750215577991262388447859915918870948839886017587625466011116328010810399168533905583167807779810459148005113336860142109551603518227424638406005484254331059702237958208016210708439521114309305684902257001429057955782762232992074691956169708573515377248352997495499346724761041660547446217768993780624494714028093479249562582609049841010288740301897386155443776298025815972044354217616406744400863912069584953240581557860748322288314967326496877411122610430444576257184102841333890340626064390583964690051793962356291366978289952913719075834572504870528360217587950507280630674097736168123763564608369549010190968664616893308419415647233922672649023216797479328732393602144608124798157607447066056822423673425666093972604342966124555006861153854724694946379812502300851288940070950524148966502530948905561807329506539759339296070248531680623195692514052990070483191836528480187361677132927062609744332515921879029776452811714395521477590395454083478562616388794627937108209616606468613551086770152339538529471324577413377450470162483147544890292420110918625042833769210647107647498078603063310683839299957692637189544963200343996767198597085626039285538307110522827872809873072006646935963175933038497690271698624012830394441761224602140058256201049779467803344814764854175001090714212449567921171789088707618867356250257265700621342504065390842604825570564458221956892556219135048389291610352331368635721521848522853453055772252596762305560908758765255257001033463131973362734522894652729342212930468526616401396911928617643946035875618169811001405998212004534853763785721023874337929239121215601346016582225422465184325746446019895761649285361886287821326849942532304511565194727683283442186440072841160629505820795184090951628434623768421523816488689117571190606731529078855025515842892807690451457120322673808689507323612642361161246112316420009151344682883338268541212214148075252967573067971261401359896174113467214943915655365068335818879086921501617371500576514666007218180900486843909549560980075403632475191972427139927482813701605707757108938814946030734730484896981254637464665959468425829474247571787550526189196101296542026987958171675468797539041592055676512387462765882607123463030790389824731438680347715796702165391012926898119352303911846407237417573584491154421402321526315621852509748106078838820293214204567656197094726769050502774470988352798505225236793624617781260006547726413554114819228566974552299156819826668103182377842059179499095744235829239726420575849330216877294448277232697411586922332752705626702017769478654021237420900280308074982259353345322036571628002143685515214735308071006301949034325807306749371408637091656228076570205200572679571283183626773125708869190794635991436509093843846857419924275153335442052947338783951827634817983072801327458553543708366658875263974136124259563128095423858876048630044015893530065984085376755475618765421101471301929740845175639088531863804001383016054245611832632161792397276153557268947422445486440168974221563495956260485967155378892198003394726526825850453628135616607125883602007586977096348577908056518240278769034068802292110699712718134595342971066690893109499352307561757652974542982802708489175724321180599194456436488366260709325419856888023787331531817758333631304095447872207496984521113145241781453568731729680108094593696353887774398115934598567511433245881888652902480976059355438048306795894514615727141560503441512156350992091923404581921124383137232784893287890586789372502330643713436214211410488076052552061186795070262937872842022502801602038292746844525849844499048949528401967534736999931863506157460979901248406487406696312390756478785943577094463065739236232895694185697723742752768055337822835993242475075261027282878814943634176095310936133990764074772051454083607056841438299876810731654470863639282110278503038257016101689329369216256839760690356114749677974266468524690969506668112007586440862302296645676170294568880769073094514982780677985539028828361640566201853843596763329287289050498835323802287022705355439753108771620710774059868949395878367045851083415814959509360247858086496909844022014603900946044988908616974781287602457707124319202559274077522789836153340199297743186487530002967445881852058532445894822535849475728030385546664705594705426162104770210599849006803433071443697352393584099130904975555538704593476642990432932521905914600321570725552849880235557719273193785641636526012796610951205538554013310459676560633369573167900897748219512910942211989082404999081358321272087409915830242530923099006124158153367946372019792181263898377025812448622204296551729079993535846109686242054267559369397002518627944256173902167420937665905834530441900077314900271588624715465880700128426755789806457906918792383632097586488809060670121773569882419304724820531847267250753830766476223589829385454448100180024619458597208472014908779190708615505902163192452465715437457757850998906863512764143074640756684746277665456034394964925960038553569991012010267782558220695475700420304551498288467310608246269676593986889494424003535293279178411191875028288290817775157893434323900589012075357190593608169957503948987980818089488310844104392017576615688247113889924592336978680990797284776633828788682555172471277998519224741915534021665587446438792887881866410361613034274953524943058987016544279913899910214593007730710333966712012138545930490564562713246929315294346571660912246258937117395109021944505048943124854465344098646967642628173874193224325407309980535508087630390626363308117725647907247864258471120404551793570196416892981153431210245536266502687794040645707880998121584614176164996089628085580062615378204062829397223304887499179040957350744899044982314980891153646861460159212127433815578114303769908172351565256699698933199035209573651617112622428095700200452447879046263447993591722234789994118289892512598233904028715546872884111959663403067914645783194278688579849399164093058100357755861914890185300716314268813834234985480549577582032984818641027281893007474416112708451751205057246734889848564307055819909668558215886363137222723605612032569778814127003272367539661157234084058172610332036114879942839764676704974292079667482060864653276800877154979023977693062264002140612158311784511690972066959760255127180171682796744676714203240488921017633564583729890082940173969189090185217241820083166636611028979147211449370916516941574451009021446185639870822369057591213419798482751886731018851455584086388286508338529754632374058287552566183772698365065550639676843544164778809760407849245009398442291583009352229735625962522390037494139642457897412412441258276035699025376523495478564343431190819887003019190694609811617172663228275464793795374124905782789703784352513613137724443832286110322384412449409898887669116899426867536527293438828902657114709476180015228935315039220978332454294991589154205218067004891870852875668088040443423937325850299883408377039809666642242417180680205958029998471897049017077229879066999414431832631965027481411673413492606893739754103282631726292746116292420620199152458205509455030729027711616768166841249703996695624141669784653701997514014852081652249102797539412136683435779814871097674181006749455445046868565669787369062688374204309365359906586200519662210397342609530350591929708977065118537780361002120839343024611044092128118645437576447407835654653519734421177384927898345666768332286543931506375471468204965345039789811579512765011288169986253600332690586398822515842427055334541661713944216695370308447325582490108372426312562472009952881161201650246996703929284372896671205388404129434345401424980267585789272972199947947353977735020205104531456244190207166973613877580653491119054470928054467724721660447095635755294069195247103421605117870532758848811539467583362390167592983407251212438651845683642775098755598423571314996652384175404876019271740160970548945410996468668361328014667956324876164482626156451665584622421009033776382888642308875768166068471818230694030335158518510453294565574953391555941178958119196076966059427146849511747629298520331132580483903951315853367726421419918627605419546802758144846983415222198433821658917659027593032893980867736647069263344401307600529015218000049866173969434228749341329744181276848025608614704323860909622532645000035435810860746314246484363164700377287981254984407565558866930520477522934028100140088288544348009918517488875549400621614648058461274465650708747060823910278630280734045267624271991161906174988288216000154780498634314932811071252073008234384541774916110577251736685350318666472957506454731321839210047860525315620066774905214457999996427048777231726502655201359784168698659245861569264552710260002678663783104743039785062818695709732744527074512870101778330671816641994703591162249294108209509227830063732928364269099140355075937978206844333061872069808628575281096551845172154769112583511395856049378853771388827589214963835372445091609349176147484230125058490194479951145222118625389873772905041442018121122309112095202442504300574479591312340513565866628451044152955461605287340860666253449683030467427376486186506135357021272805422649181134496073587311679505207662617178746153226831952640318803163498840664451588766728635855505828906890677640180053957063165523377129325310513029061436000410590252550177784514307817177502101182097074217142600969732848332332746542127216946208437326149258701246810985134249053909710830969311029161966451024483498790562389390140081191660505228578050166291818463102320329893104280536856226212471568765357442651453490411435135343500734274291448910007143246412174698894156636890163027726276114887953238319028035703980147704840630770734533857298546277898980545216994117578059481351757580395251294902120216820333976094159687493117373446590749689853491486682914236471849667018010312166917377474449051593630410249231342698418836868136564059917546402674508612326032546413692498984053220215236320646165933658706644854569521424021048856608933567702200106625842790904222813763910225999897796714396616244325519103671354604909833330643034815865495427198952128474101630523885242108169845257394995516558529736019955490922637241533034633418450580731841125189559773286533116439308967113387222037720979337229534640300823922503837545132304102437076463987505416242756592725085842899324787968578776842010992068316447330045414909933958399750779615634941822082077481394066268329337554961385350684142514658935274548494599542731496647412452906629693601405565899443683755230573608088675866162918244257251307230855944744036658898010968483437554890199223762727393497197858987088253231747675081664669678920488026210771305387583441575759594023864396107531892475172267000101917747255695054597549720873581635004702244100531960216476407544478952766600820915078328829054880878592592545381596131498837821508363132225824099815785026072910194836206156828936231006639426933818046131972381928969579934037160479072650394834433576272301546386164475349311441617793666131446703591967992724399333565076697260176425847347002404296071953376656483555641514926753697946834178890843473535572770691806105658594394088781555102226094739680841682972641995307062010390406654563384237112613546223192620740404432021872960929610732982877513040581856920370103438338118317073249825197260136055137748197421049851460124593687715610584987943468901450013665442471044318423428177287717244917190858214031081525544031767497104507699811984325361808892106677436821736298179742903560751767422820725200184019904175269384476065189885582716466303536886057560446562216595740827014417591558091267527733005948901222585158902937752602164133771182202079570652541069894115301421887057076006798478381933443904902801502757117680475763691580299432303947113425503923473244348453399014323539197686731283267182252021047894073951359930339579969991691387705442455432055883724305400806582683431467314828269905413992262800191855528853869987136086286445499081616964129204530833293037272783592719489574255846207854080604862517598814856084551851993652373799790415108612369653393745482627563581214792817090738400866995186799449065660223811006117883383277111055182844932075669209371503081741382112746597374247048797435714893494150904253552447965322866449295764891316512959338094414430410624883554078523338353893190487360911762235714562525189133056311852563250941496805064383269512834274614701362408048715371465797749343403623485211846531562270699263298827875955344821560972445586510429252248081414539737576965883024210674653836912342919389119819113731718149631035284338628703379883644792210452456415178585793327316488817154506826949744625831516512028264421616591727839637663945015571333553720514666025567984884525464376557532347787621944289674844419586712620372889974624433270411100993231700123682553032235058171715290883565620098460117522705861450962233498504655189938661840015524235357847790655619032876465140004657242418471466417080028742687821896195276000122952610333027148717848313131829727030314702555679475216874937461304412741368967674691252987627320642681900959452280362994589467248982080477879517155739069893208701789002327801418728439839304625124583005304699595860499301786964813513113101061591266865158089846674263122817425051988037456164619545072718468281672931370478976600629919381475110353379952326428936465874352549104900671022957709254015681479467470090481613929264044980771600688458320599098222904786034571295807314312130004046307426735926956752821523602977002704486939035882033041540334836364147772807927919137768674050213859194283175932818627592281048271771669058882302643156226744264221444630146167517939031478929373431841244611180195214574003359168769588695381232570270180760799584887312754978236685802760075792632071511070015357129981242562960460396971421236529810221237489296945587813783944382544539561961109264579243410835790307828715702730224003887489320817582297470967860076017478251594613277280616461342189923312895471194921673751605812630654975025906883996014989237163833254514695537849136721546953601792811358205109281960893124742829495552784414943949881334359766560030197700725068101984422834690848965964084821103278399283048837559907004973586776029983325738318825128736570206029901168233455063962228374422774944021049412310276709262705264058152575307299237882476140558854106897913054588235028363154017627330395955034796792085618221717322034997584755876845414349158423425814052598927819994083066512691737988865151167878654721554778705171464031599716368957089517233984137865584103711517875237921005816485025721592346091807960194057270059937418848686475458316052440626454845666572342713867219760629808315327848086368467734858043424722994093639309936827080010367979267695868037580738277498862972827657013091270257899768725728708006457702310035528560958138792633925722549987024437056075820623090125538220898813179033987342740044928233335822890763316421343850610978297702043598133382849820414150706379459157778215831008767444165868669673311359362138583128266862545857171251021476483646321874512335450716611721531920341821628750628206566126713908767034716593047654908108505510903394431876517694192734288824868540902180538607438652123428857591655200531381105145492772878147584149084919466930465020138561591597659108393717038341315560161811447479133139316489285930998496207970931978806483046151550872676152025847430188749588308755928507256532865310207190246109398808008503349608798278693803782928706862559703054382613429589822146260736557805787479269127947545427587457047406332540326393731433218601053111411747025641154731085349683413846853100422729885853989886729764309962366318128297964284730725624671610912973268486606291216028499950334971687435829945348607760563487905150120816730236276292303000691197444275176303024144407527836626217650950675940247569231331043176545748154390157937598211313582256802421294411145611509008843120705450546931426380339826476975917078596281107378106510379755755224504602934066675757602128767198622024606278751367279496111623889972542826907196683127182103070102920229952821512238754940560680938499334430332292731863601104546892858424422062615005604619477529487904173024452810444767031052309593136472139437647663795948572473709446407034355925091377825209425320297409862730467900222910378221508283130553549654000833937405508607303357107167513880350628687110983826097739467477699417894098703504893679397838006890763710920659112880910257168467876999844428354957171933528388547237218683500732712280946575879829791754956296844203148961680508037932705038802003683935619282072067719169073027962749034819720543737398402489693377250765068818220746420563785724057373022341146507207697241269431529115248358263820406199319479274910137129195110371841505660227906389806827768581982635432197802826619228244678516791030139152458524492322652121485374212814966988656522745636538716017040284492505362306487461183098736112668235349625759433797865703685646595715104427312603238498804366866354383118415981910307237965179199624254138700827359656059029731484322022574856037089281647589777502836403082583024136113295809726216893859872517952862868520490332799641951434891232346868105567903528046715315819414305038391026881510693370849566105067237760950991825569875888990522722752841504518937252650548275782438871323104358905904195698437324653974737986565532820295487869311725365193342178005371486289699858433982768581624956073344261574052855372395469791706353665444347136206239366560695857022720191875957400779553035752873090536920882728401001016093801400497805574930756388871276253311394822367214709307149894679797288076381340813438874023472918483564718490639183785485300440696588648416719636254519594453248018213260456519039762156262497795200903824545258934252163447219394316975649372083453125256715960746405292480828483849325147700224597938561844412310661774924407994777609954580237129956716999705013021806284307792103463221576311612746953415389198305919565578906717814203010244864458174008169656655037059710271938600959221759391100295036871654807140268394660032577435185665412025863018906121135239868906635843270458485432825644538451314292242846452030428782232345549623769798922120202011807420600494854958108835393151007097752321562816101584990067476237390412411035579397745488817372705660210886832026670938654335315764684380413093438935316918965770408643623544383458278098185681758162536325072057794452338414127631468248167021997548603631944743173469655324528022250110326250480405618615666769906069534410590819083659793165970977694930004046407178941352282907023742839456934497191658824120989416941786519995237393799379804451456827395839656241915786833743252537051204278100036157903055082808468316336131587368416168754163510705004106030197423423061708640157047648693238372827047936469863395523078966610106530585734228118560354773692026947470218858844496231917592129153651490036720467519016890336440213867800860879950234556207710520795333594557151250782855280786523312861925634183120056455492258030074434693550416197315165993957132024704017444323857760727913197362790831374362271515874678543637800274343452686224510954703272083611471896638193831608588182499674740060657017736856261221368757025346840145875808995375838673840514861467785164926432894291820283883801677783381815227186890302901080564816291301285954974106255387254508688054398469758796936982934645060324452508162799339927060557396344236435537426890343751077119374309570452691588778383929653352283121005240185276898462233615890260358565727346563240170524314639557492169004936554668287012029750725383785936676944155861477539058163150002993952546108695107995737470042416077184202502132521225209230262329045139991152155130370180631716131250560682098316223210662332442361817124261000828333914968275984109369727806271386069167181652292564413919110544311759680183265472105889868948503019559926572398040850066277467729005533398492025757006250300877211344977470765465333157279087041431958143408204046862317310576393881162608739394444227010658553499579479087037609219793055031885613580464113260729033423201183760119362282129456512470705980597269466840322596167518391618269331365306682428021880718307134343553614781916877090745222800510057055123441155104022463153164721316314873684713612075316092654753715370113579994716879033939126010591011759844476354445139624189621565206540646962739536320582359900397829791339153341293499512493269653552410059639169730415013825322822530613726660310054374432504211563748942413309641831499540742249489777439980339025937455294633071904349901923225871214431755479986667319008279893938704901240808561569020736002962322021134924368758267302632751344534284574275648532870172840515481158054838880957576799486406966778225263710206368904232737040074191741002601909768027721934390443874265822823516457654834631235618179846072350434465629983870199132191352423015826632272195790018560365026862565494302415817729811566137398198054223975496038605101844735280450066622540068867375522282743393764021407545912828175499320488892656339245712123870391557508588017699689047816454673863363572230834347181547799306796825572787325533842863939652495198031720830082375207888485472316144368224023235555890422525849775639630902559509711006923563873587818512534006794469530827069010144437879861774974524627689610655507490661403928891751358550652593365522120212449563412854605468402465233711409851423746777707546577693684526362870549501159296974669681895318879622165831785639883619333791352817460117691801276814862562193190605228360043034949748240409509804920443939251881794789671805766351652072852406575177867346902317742547157433552384469828698410658222933060162506511110974441902441024959173639545780832277508694485264533519448600538876155068455286762438214557059074384879520043315008045620756555778506863902569273963240991050763133514854961699365799175630525779693202570635004695389149365201978064562754760658033151807902215938821772218655927254072551735828436531422451492090812036448885017215235602188809167770596624974955591283066755847086292650637778490814166252937063090343986644427676775501197301936686114092033756096681724303811621418177464508994147946387298810104089378902946611887873277957766339164249384876048454281637062699082182927511507365500976987698048760303011579676694806929534475447960699675392728123934218148435848233004404799732163241939178715991765702959580174844208897695418207544061969953598506339646573409352711471190488355566244902696331792468607399081435819223777134430655806512332213007107169457061724946756812023118836532498765643058100520074861788272411799854653280317554155352796355849166316092106941531623289945226172576133456871478543451371386890679983408242128532122553307587119497632009506633262165777192281921013510866617647087634747899644075439613674030455001006317155969726095226463075380754827681213830344723676608402975598098125891529612108720886510774108853072768002436551469837999417951974498271394186172219755922969464492012877438609613933606438076071690775080350323112295409697336638419013077710447185029353085097403918665069295890895789847510631138204580534845755898977976312161164736843804540802242815783985856357385290975622786266526613775892881320537310441562713758273464447652733786532508897989532761665048984866801907038325718440600438945190262693508305233817517421297990033489736616132575942610907707726065517176334858627078467664409836252013798515096593666885624417756260019865279015523620747328883946631735309211634082403690087840674860498553840480496843078454990188979029099849646518341806601971499058705344088658342635444954360355958377109538721738423527509855462242058113468821975784402262416881573788786007979103513254799644674527259817429302704251390885088657163689309307988065178977153863136230665063913460117156872202865938201580439593339427230508780828786440968436453255918679317145752519327303289100917403589834944157691435138072061913373642348310135173529421357704531120943062110497134686978564722392557706487792998707191582266821027320760996863803358061331212161615322646616688776066054376180674526062789978393426634840550420835783542580876463495130489886460367229899281275295914575684704359161221235902007361371700542094281664685593658056583291890309832663655822661841159217429400374905388079710564994862228281988242290281367681151245859747449546862265166018566898800562939327181371049338086551597022159351780359513508056620032889862178484648115688741305262133989309385766495535111168938119968690956741221057820443389968859847526670551355495305515304416026475951963862003808966718044299587928815789212305631082984010732697662243564172820325891193511050313023926275066024995263902175611035309674115833725417316541491153821631537523664581704157715085982611206826079310283199758504520056664274079345189744220545630409808476034253610622128401044254071561990839723483321241477410893541610103863541817518996690892060942943474632308098416853094770844272117048651442057944847537830019973144114770450418018913808907304762676952598001525457941464858971521689686935649243974998121236684853707183324811040749735630550906833627410453758465281630803380207668463385783369738023244955485324956072419731884432177309644663477897042188144576049513564510855235772935813479766826876471655897413515219948459746242991989662722341565930640011148514818486105817042771687248215556511937541716749227804259119789135937385642681189128684162237196137674598158368954653213457853891491981042870391072410598394968586501069356150523105485100620086372831329473073645921082126152284475714256492210296113370238002549672422740323683054405566370339230399837467073323441379379857380494758135547107359841927080418218373228099047516757926340752654315163807224742115613209871503287230052651257412703450072770089651115487033915363139075322021870184641151819817981390741442355548015500894028717674793805651687909458934903247869047692819582100801613180008896802758784581982953738535228912637847479544807268095522038477796277885745216694870380456226118990362593540663777012242660429830227810018754522221136404517580131055176698120464358122641662866906197382944728181810558795347547858182509074723991219687139925412320526940124225170711935741964705107246528442685774550544328472205629656348682365881847971864128723786978036181012511071152875616152495369996786711879309244408397978522150317764699826434270282769614307969793428707216345674222084096140901143868736217435327483628979282634730628772318269345071535216766025810073807400890236454457538888275723362257139638396067916134180785684383668877841506979143830673309206948524178909935300713392630444069820162416842965310949389787470050562165618783949911380002275392179340508298250700621269646156716291665711861164194182825533595156559248455609169875532015830311423634253538702325485704193810476247248273206883484977002772484843650445051838009256420690696274693525550395312923084446499486708660897611289186692974988673858710170064830483510504765036909422018964676770061796425791429420954397566985469830943771735564446762083841962841621413844738446160122124763585576543346222036663749532463381344209496431459488719636283834502710144067216978661389459012412191766941460148559644661582870796056713290690373349362087839808455017339382817097704977385526628392462530151463899368922434392795115883195012989743983382317314995214435380265947210893563660663012291267163362459015724032530846137981940661941364404630256419567282618336303346244359132867584347693572716515010610745432685503286785376201936148306995511929852534817816644017649544303428797220580519508959632733649134332911121281852914788705544335727937490286594471770832201096297550276688836619161820419975598424509901585012888155453384804715123359658950394947281990350348849322606198259060510841684784392789969184716280945379964234504817990989308676134405557043967298524859966250208001934855794172329345377892860196207110369416019472322904974476321498179751789336774430170107790872079681824061454707550964590119695352309322836484498587974359186862828727375242288479359055945014724723445369812216957951426336944382770011029006870093723254480473044493262752871645870586686146875072603181812337797367743325632046772203648845424982941826742979680290026719463477428247377826114978296052305051749144025355065025057792391793180505287648795919449498549027938742274449251221193304803088934594454758784442448937909250647197626650641373409555063801273840098236533620482218516406764751891003120283572943052907587522948282499743915121517632651392862682061120432250525643939257619898626073019094657825513342058749742836570833214012805408628454880363726576437840738628247837956128495843563680053576872884898843173718303291540254685193166198091582962108050323311361774906249612012749293572816758401277135367895613278387715072300433347982506711868386610565714525016965387912197876088006309921754415013283913014509071926207799431439775790924679316048599534733994017557944760125898309861559587604570405005146055352177743367026572539578623020840757885809560892281708241076848514167461477425765773350900804477180975888125166344372895011788602144244428785984311517197944573954256832103511011603774771995449059855896894229725253384644776344676602825919674550486101503171537164705371088956509536621124885778291225977880178887554529297651123890786762689972314513582787208141553895963417110526265562029942566303030066264689989675663159685695589424795065608503287253260678348542037185058822231633357392435533014263175438367667919939757300621890431779123438724876100363473589017208409962425908571089965928513761417966732712015168026168809090915335356278062843054232731415543962739870105567373143360425783675162982595182971458456566129104274038483172587801613880743654780722770308932436548656640855035079686048942616273033574548884837900924255127355349401115730424679640549178113697348882154247728426977896905373546253009536590460065669386495074217503459192777411197615528912793237349054417422295821720760048173619853115620051167860832693406722545829414920772937011538037037021657856234161555018600501237570394496136704016195363811244566198956784033904988382722323114334562266915094549249913570592539274050712572397073601097344294248444280488285854320031169961113879599536398106054526860323437351008441176205818408047728448721556146588648938485650099777096317965772621151042538477268908709093025667590048719203412612731119718151060482673837379494322947581636394348639474610912660480175966918860366853359141481365789626555343532100015399955743980328440058302535351927781764417446250061163538087323102177757202677702261734611290956484705555368988681457799544492015906719801011197841240554318719792380543386990389314707990209812033218689840180289991919718957278535148590969390723052328487047254335278206102045404732149234072534717060865497758637946447316163976414131202676821831311338439235044639209339131394385805556043206454646788310743824967623911433055297152059151077234492688286781727955407062848648407201495825527152678777255885121317114632392261235291101549043276022177874355375023328843793654773474117452005531473767070817395273363265292464471853230098067920429705479901716041439065104293437006098708032159127909590995455169356334929037637613538029120452008468908172583161703669669345001223983794449925505202588981718844039691908005816945125992859829180308840749792145819437416510128140797718948115060389687276095842180146948939908436236991003988867659457626794169800750838101740006308663244362243616607302143224061539720434225798123207271126080420900426000615428382346300766070584048262832977338077152137630872318493796372564746904727136849212066147754822416910924011399287595575261387540830060755234390535815243172133752860385767418064813893075073530485126673431384036842683515087460080977082587342929714663324184887104771456556903092403942371240014952388499721959737980721249320578844720705483490049732161934299823694834859820763003208168168016625769690299465972826374256013590909018537593972396046891557103967869798803473479229875981225529829369760105450439650306524509662033671051603003154217252562791428591861332684799677824484654879101191125822229923540788398498957081022657284200423696298275912245800911200456006437113072313614967605071913860956909926264220952161364784220364717896813357602497328724411207675718540374331191796679832638942117827075534463322380438301256252600879413759610554540509841137110067770006402883091915360263079750160741224642404207587920278866892176651731285322201969623790705196353565004072091737356991471011887289176584934054533301764265055405091573846225255809933702482407656836872051433973441784119401939831799300448870000435562733481216538775720691807068507325251565216519327226636956836203796886225971122683975560640817323488190178063771376686170521902767235025170246132606419064268042975656976735394340112930519368674433157725817305226186769488303258015657623454227587105769572226758867356153210250245058185907948030054797259559509355791488118634595417536466432214160118930692059086130260876251317952693443224329608360402312991317806705269072178494045889892305949684182695351751203334744038708270762659103441132826828753142348010186094750722479542526561344359667488458408619448907420770205526574887834310325627459996694282047746073489112804877144987770013010438690771943958499396842108194258591351397524354169246391260052778426137189352425562937494742350719274728456840100702964736405415055229175014323345381573409644418548142501877462852108863493512079122212348881544873693667241686533390649684055749070737977153714289951893826600467031192786510510325743309243292818188188852532584450781494661957748725305633874105157395767898607949574631604370787485759762724982197272580854448804721196368100652415871599401266000628735298284059000050124704801318700962679669382292010293172211201935593039283519215287444752555906298929192097952240462400702666677633230496378207332646816715800601726850774549800244106782564048655601143009030784516617162835580139171831824815800114528092962597495164901938542062366399454325823239322346755385259076481350631208395255652933478690306822709522718802611063184273410058841469670280911228999217700479215275987483864759972206857475328566845004725701786517466392783295589934719056958280831192131606816669730412062741599251257904375502343523442244959715996380020382856183646580328593290575357184109603509416631442534707683055185794656297317957767532769268692491867494655409714285932144140702329232867711682232911357872997027073500289358955415092919027782903765877839056011679688675894788537502289608066058440952670821776243542958461668023051533980531435482045224693937980997636088148145448714742944725332680061579305242478608066792351403234835063855248194509133137621993339352418708672873721578018146033790879925015780295585163424575579387840078768436246654589105501561531986388270215856576340140715878614190659431525228441524779543647872539752103412988636677001139292718420995247372964225340032197871510346828773553773980737453004349619934437679723843673555072899465927978596925281768591472656940486048041736817868567801745483590761692922637719640127802937198798754710036571151541913335752429339222809384008262527927851200017448240171943291869261040112152479316604238205530999229745705668392065785279110101404961304899623544377631324960286119722748298076538031245641356079534395296688978219900463655584595087168513308157272336073636716996901343832625905099033697032010109351201606092062109740773186908051325303866261404641424075393576880412600252047184563855833899073819906722079295396606847206629511390934213376479104805681047971352277530514995811288367649698991897133900120845910872229480369767349762440643718103769940640831878293272632743324396082587527258281975064536631724443456328365052953170566277909065351919468609173367443662902666269559739512036608276937802869516044262063183681320926238035432031251867188471252840756933856165119756298173947273393020118068028607523046438243000810439733567285051896522870352514621326961697649512677038246575015526991324726970861496517064233624505543431587861913110561798690000329831335903337365285748643875392763389486706854093286466997621715486620733053815157658887319568680658004035165370230767559912137802774220899116070197036230876807408929609023747176848388680060238368199856710547833867306578281526150751085564813471312011718607622802336841269172684508234527943069411226641979981907866146111594924830223949934163287436649506197060732223854917381889144443879003662911542823709507351503563980843500618962551041594441228815071801894105947196553347729758676484206511440560841035150177763212902610591278629184129699976157597000551500673749169078578644393058228170486510815789479562109633507829107350446179783301435797951373625864624514753272612592516359579528768850164437807700459234049794537709374861687571014209131751029314329138151457015302626180641213007816747619843195233861488056104026047882081347888405204986584364990400133588878291596972467290310543248513006063931274141358576286291776101557596920375333886479291121053458911271169382054457245964398497946671771453666644913726011559539823311529756086961928181356931276881758333861413940894844547753727310928502714589891092435070153945933766331725908837953390334068302935094811226986886877297338709780367593034096081082851087193640597706174837369364774970302666047375882821196169615370970579769512276525855905774175854985651344806323618077965117307398486814312508912109446373980745645694234704118958411591616131159273938295505737253103868388935929916190301854993819309057658783638928601207499814444788324264071639514551175211217238683258343220138528381884097202355256971970247958490913170231647208628023917083607629018063471532590206823379899547566907001420028850032144889120049696144847650046645456503384393190972243266494405298059987922449132871544294664409617073152010501483851575406543910753663520496605470797552712445203241461785588410140703624240284081385149426201952171403795766107090273259085554925458190447886976402311251481217423714265376236247411705677731957298854593635123217423804264265678808301805109570945323863945628174998822319328948899848945711253071378900137921267481897714756462545005286925133127842782133958005216095546000058461069246764549462141448766912231361991861655281281747420164144693648522148186832014074580781240007145171188007909226125397203356715301328843998541420234348871058618038779398269551587025386135410192299813874284709964962777082225204607225348671253324716544433015422120756825683507242714010284099779080720644132645660939817066283579416059145207268732692317135016874863890353038230040827783581772745950327602952091047389872883005473662034545427353717572188705957207510116142175963356163790810547069617868503405914865891656731193123402259748130341027047600898588137950548481778523282108401038292522115904910605549831651520180363218832752346305074111737201499225093266021742920425059308404046325531832173880455321597162958364060467045914140657569187595108296208273058073152646139599255098710458865666194115970195257989928037862473731607340361339855644284059198931786494149623901507255063510171503502197080894313046373155208673963859679015177300391681666639135822900998952613569613678891121690989634989695988206262907052081871418523677363070745807469153941316161873161076201296393829470920849427165011449413974342742051962539593428628409684920137033446431430837417577930816910219375129131523297855282747059537527784342539955191088644307612082565926704116081921108103660354247920695271560717040729673041685452691015878894602976143965881943787613646321853516310617895405627261088033015710103413081157053821890788586913242879309780879336395366499708586544109677388749125825795032374131090277391099087725810477601786277787290575509694141640096819838734734249291057691579871815340456815556527770118737116526665350684297278191104642352143327986619093751823343034744127738657224060717480087035163586282941430313119464947658406507337330877285244578613240896885722454791952643520052339364611947259773025201336531152187540844659607046229250073497073850044554631928263253298491038288569594971028530989825221652463573857314879441862322304579099640254608642528156544461834723890870563316363877611836788185441586670041634531261664857848084425601691439238984404084334742823950973871005970302871584880510174868191607346006970145658803200129243380557773938196208124728654792671116461824882664746071436437924865383437013002123732644554807585750123328042611471231545039180342246099544862612313209539823645104680443575275804322612850158453089695813455608116257043483238670291427541801969686985091729260118487895054995077165462840356268679396253053377575371528027241015558456097018584990036139402664502436165115341228663659642547922357070879235705295967234946160726032794638403916826923588636741677106088230872385005549328634600983292247471034263725165575039685204674670187100119589322426081571997828438864141270558256902555686221722774803380422659473666446617964695897631289828667206392783488764441861381397101377914210132853805592536300789096139087387661780557618730894597001729196278287619334981401841529964171219109810174609990972028687375662884803816107544858885032822345877591736507938977107524275531721469478276922119676687547019179424621588895961121873811900212412711563643769167322314553714631912243990784005272838729307695848696681863566987822798416290305083826099063970221020809441504300320924664075288639040599739943270025416235769951776143276406547654576541675334837050890047715674798886704131104003212949799827545033110113847783321705931749172171641311433102021796336365233930159500138900710950442941686384732253532455401106941655943952890265545057371957688146707955115584047511988631137291259009389870523784125075789120236728313408333757874005624330825824742306339767289145928088659528189859399678930606003498475697735615051699806590055799142504681639576323411262564621982412124187520695257785630355080444354452771250500867690505519550972122370690123855643228922320071807555648982763443254355777824197771861630928572134669057265801705769271577598080947265040213318197694326045210495437377132059875779297084309100370438227250818378150058343914230925024871937433635591177492185175092902260851739727384475030084588169297200519108774718214120568941513324631701279235548228719206608382648180869353548608787229123779374043254298172023843348559841487218828383437778070850125996378900950231394919697961379847512827586616458887454361062223758214304373224168024019212040390660961092403894503263939207143075128867894511632932769332803816755873792689815225829804227662087918654669193027638595252147580896193735360057217319467884301640586762559127036550089340344918887496692925539499836015129759131057226648656113883218929414592502460450483836499778801114631046238253391846446241369877825765767874519352003542577664259614395789765517825155921183575477434947243099687955186320074689001415968681531666521171379632935512367329553008350899973386877483287042169362256759104960956372214084425713858248334306438360414894887200927553598168679698228151045330881475401502373703463992425215645514228716269454393457330377732863197983327491520582334358973228276148405293077826588102808462175654645232297040782900542562677889514348403797460792817208186008231185911198232719622596188315899603142920364821154013407163133833377076665106280194629235702213756414835292444195859565577916624665957046747283148964059955666442412086150128204000478679296280111424222882238785960889939641719992014276584259394901362525581625582661017427593085501362718643175480845971584350528934749878719511562252246230738211315378856282466734240119355316926185092080346527128964272949661292491658806990019641982289605255137273174147547143570794364790579778897307560526942456403526558567001196879441819769978513322727066103929056134595243016316057348751931908275528877928978310420273342265473921100344769337686656983545724433152680885602539037845206478609186503806560238358924344197696984571244610964973034002061635248300556955582659970974393833186967477192028636806677729243932735159074070357340722653758673906696681712653164687192594059740044611398059138864908256460516225001645500922236624086417516682240739021632069424615874752567894703178339260680595660854990534671146413119395155888496375388778492241464874275877071290808970385597846126728796159392932478419894552184510067053330934952488477103662364106184665094628159089264755571508814094314102475595637469386574218422200705126274713916536515851307239250059753152219089769296052044182084174368373875526130736520041037147545062063383739454932390307535185249314275565287142281079647955677849403953763686760942791346105537802423066554848560878269694917491249273705937275126154278323219666451279005086285917905671329341528882981167413200964666967870255565219389354515187109865305666226810808489160568812030196459044007847408980327680510368090597594394437407274548077437210322085596071973223015355936318385476925231993489932559815053592561678998030321453476565426256919829508323667258239598865448867034062198680544790880948968815105930012043491385723262037473541148586344423688695006747597723809022408151487192874979666960314485266510862279399797064158557286669755277830190170204201784959579572131485538931104558174582305595589186105051973379494655500199965217143947653689398599013841041521706375291106215793928463593157453745351542731876749508390740370172847188212780932228811876640628546309748190867464405753747416769743876663519720994705558760331756171471044822991854608590071142709476624680885509276047162798778500932294592194417895740884042693495959837470223966282070640057065740170369998958450849995945340808900214230129734712635177510862423811357092645705363660790171231647344384919045370155336609292978998922767766556050791236378774672897988240721862329414075756631332773019299670692137842258022488487389739663534257761429959703119213151561205308505749661563415428936605260989919652516967351741432064441728652630379007152966497973452052263107477905671699107976242588830527656207966273641283667102434667690786312438050965130918872705936092761528578303708299947040488553268057551183274434062185508457518115365744715028586092604355870882761460076889316075686069770095949104285507975099910996427808746519862847985503445916839805152132847050107328649752286161377953483521481916467934452021071478229451596544815731728829523727062961600777482861000789830602779566584161265691897632987540691664402384632185519771173459314550162250794926902413658687723395717402094916467455049768870844509104644953713993164721272163685972577526073870273005263074676845539687478695489488029073246006414987607609522588643820929230013207468736761189957578038585884858252862372372331442459171826672141671324227571370973213056381447473146171640739422739648712125923683007083901697067360854548048990425978431063305646020574890752275422931225261425046553521296454279324134559879254204420730493698756952427224360882485223513637913165352801055491762928906381441069110610578800530290425438689744413170012394318806752562130611501099645985076163161705855231825065069757746510734329830098971722575799638609559451220470920182635440763524331578079647947690711503502069573650940511874735591967578215034043575606563990142715260880514006876204210622819886745130886856106912389844087953069123288619592743025942658682754991146212814391005171620449414962846049195119914921673093552750199304422538332207869844154294250975986728149083101923377230420214477875024992583633612030640350306976413597627575038629796887202548103212541234804133022713685162208580865708304424836100448168045957014005512516659782232008198960983691310653472284610472583982011842461585698284136713759600803526781950345425275724639830205128415046807012891267375233579236983913468723983022467763121640770370646258014887971853999786040977052125689592554659621749376291595884432815091455478540255455280136975848960495012496394921563712046902602054433620625356012794935263648246141171396444317650758556615197567541705611265353223084483903732753256214687736426661254639505833438814412779602629072972356138997145880144961167279609346996507666437157389751319338054527213532108116670187021919488237410052128543397526145456115846419318666642706916673298053785385606271231854361464729329536123712391384713697640750712185900201872729398396174017258510749993378879706760012813530365593972446427305317890658401445513231150930406744706413599455277318451947136280974905278017092715650152038993650839429706433215369510169626388216649231574913397467791606405672181377264897136301333751029196215380476645482784381939127946065786190064413238705819698919842118449890988510258105540546113197977428868812013808629811034173315959148433885274024609309855585974522767609289556096709192334371263142550109119508446444728224264718719475638842380327954182359397969627760370137921028954111188941124102794611018819012346632846307443787902559794077562550989906691054163420294284652938114536591557988343231295578025882376767693539721420872152916695914969480409810318343689542501250934313771797238544030922665634459413857223822299583482613366044396869519213068575614823082380275345832940404024501766558725269081746225399153059200130091455758078894259395243212657539330490094326064707441890509975920880585191596831646868993618087489428689145160380286246989560913050854572919185240687666911592034972379623180781160958414505694083655505156250230797499319621548426482256548049477254822241232135065076647784188316532019275856391165575197223929870062410822445696139942586204624864142464307438854726387513721944353982562861603225850775943472292863924593681072258626969571736127988264226624881473580201492913178821125742386654846430722291049088665610777020368402813614458838275200183220907467004780417099624988226713121397337295561267032263314014979231066543233114325149950724591194240176464164632328709270473172537726491250762346709808778141212830113246810061687733384188977090969456786186577495524827129861066407576768848370640850735012870750664368598194087247791489027019748494374288813151787997674823944220573682625680945963706418955826246809748048631057600443594685966607712795824484419305260886249202657613857764748694040802361347158383407441425170257523383616891122898488929932108811215478358442172316908883226709044578419612519381304429794570730864539657847469539458224638569005713550241135675839962800610184703761487102043957746437468495656593951201256700274166044831153722495130156507083668993040449210873001647054180191906691626971313177997207392705820629857339141457599240906579317150170988233439660430414511307255647170061552015947201594992351859367263775719536027512052738787429545222705527603021825792659381493244040399213309605838850203169351920824559690887895639439061724157131923814775517456248419816502345880982473147693751115023665868194581346159946027745901532826888558324581171785268979804589803986705991746703029150905769316881521403099520710490346454296279253172360667290222494560580031943691880570183649709497294023676426653956132380150431460322908831992657182159485583409359510079915892763893632810156003656024479817285394503435880559925929011284303297748165581758785255138699392004025659613903474796864392746708249707667057809225288508999735505974999860883602182448706030832194324077282627310981200675518069791754289381149302158199874807989496153993710917257765161319542161816905196046080725286550855377489119037485108316769361889328663030025280138490285531612195469089926269313358021436377074617106831111684045658452895087660285011445047594812278516089379665680746738086465845159648517235720037515591334362018755351562807841939906746236182397729151298762927064220302779197021008695433003057713752531840931136331361632943575502314009725684166031944039413992616996243526228829548551668036257244573705737043171884369716188684635740338101793377142115815399570493806241007928556564462339067668748975705830819635863432405872823873180758767233596573973816831116160790678297828489182963806343396015179018184373033364285166835560403278621864026201292577260387509565684164657042365708226358961992801805803028955816987777147278360603765341640293127954153320040174825268051447118450654593822462575784809333967925437116333160998609345833115003681860849736808006651021571296836302764513477302762878556296559828884131241316458854219465653796645403664273619623755104567220001186092263021989136896207737119455440719232141708932616477585416565251858214909894341773689720926025305178173273724040940233150276887093129743845745189854854954315525557391242590031353552806578974972438007882025770807132085158239106424234334651514548391492541188334361669829183661404628895695052755451894254063226462408139549757709962422552032862767285321896788789946980343997689883032206018989825381967611439189640628372456907404337475120936868526410138788151423270146949320417670583108173917664850632107004393930136449807253076451310467043786019767022904832437811270614119749984172155652230935773931245900293336911534266352118349759694189248057152180183593288821714083022743418692493279472617138098403105471463403699759788933311587966093147432513551186351000140571226889329839278505398404761998214128505841702401732944302901376987009372498522069020637881461550394457343229963472117644177467917184835525267733333739653273044708538230490204098317546865352038007763897986477412956846323107537305127758013865064543856384441530341851078560473078880532910384729141820631345112697186715649635678956536075256724260963530245377673771517468360410054416298816227555062634544442411234761869552875083291591735589473951873541906108667491792157719213122150193063824708895292078693522070309554161702928040545070076255460022998406310320935095450608915111119917044496920790336309103413592314853541903344238334951702739308506250324097582231780556872714854607578177813752752349071171716388539669366015101475968725367026344918010283577921617473358837201301975614039002633405959035817412027657964294509369159957943883098975040641039837997802492317874110714510121625756942916713588571030604360454319547661648628102329995464053676892532451338844891560865993863971870217142255440207872325950065667548963492126908498288038575139956153112680641094981250425119237889106640028238888190940288592598074850655572819684457056249752103605375748035854485279493732749134030435774196949037355074381788050363330250551144141677392856369728653546912357959466692243167363384997425073121186476286202517523506991901313087035456519636362855694074596918268553945483704090715345616024348749255245889915312650006822438381264693814140204522519296867561729793668534766037154925306194331820687909414882444395363065586349594025037115584768336388979378127937593320093499124247113950672989067765664659669306773195299622393439075685240760689089495990206622831799547523117186246367161424947490990847724504440492030497248148472677710239332081828018871725704315355858129948019614784043331473814584361207769859715691733103449861974277852526277235510407003515703533890585666552015237430226996435742775049962991853927255322044489598798340703537437806924941984749773238363919920727836947975829985360443962696351985913546896916394763325621541235986995254330905837991831985062934651002218494961686569217817348021589204534952508008368890774139443323511153835977812693190978367601255093685342742710124157576782444543125282516957455200575932168274104138696968885817991607100839161525415021914679226293681256957498194154827488796850813768034509790132230190086514380285369176819146752111927847960771840822773875045319828087697542121937065620010795474567307408389957950896305172397781212502416594757977803434203811253301318303611054574218463455372216737157121470900357878998895757596043657009652491546993828467390800133308605226627023188142701070955945926324365014755119827205468505665289785955699793907605556059379785187164187192978516293663616965099705230530566910575728399320484756668206964633720033491689164448117877538909990385144173164590287500425135647252116034076008332558671092755962353796793451670663214853411528314186727839706178131735774334301631377993907963130490109286231692728213924136681299843402272016026661117348820338560288513967600315192018848167507129211334732148237906097935505809065027613412012332154295669970312966435844646574675520828488280322986204919001843863195048566532720822902808395208818281253636652144859450801086849588891125536295975829516377784551624423026328387534966384881143193767973509989463187665063494666945859578621698686825454730372753066228024256089296995824393572868917303355102959073794720154168391580168728573781825259624081408552613294053280868940121619659217457095926100807879263219966934237803742126244810592221957054350108447345635622109085670018848020222793062343556609822497394069570387235617723255066606360613484401515557083912490510774804415721695473875912827692624388965153113866783150778470913337740526885819843934999672103859477005162997150817673224568307836430816930790889882177322125754190150575140085204275761908496711813136436595157651591529626043965018656304891293758690060833051429090550829034564871092648680369660098614596283786804828807082486614072024417217257335417939182993254533235869811675069046711486643560535748276100120002235530267628553851073474001356456205575564284573549562441707301991469796743781226949139949738713190387481644122879097503114590151407550604437577045716423600765086837751913750908870934799280896300336260549167003780617355891954648850398538264217092435691661904832993184856045972697502315142751185652418502686316524736388019241127530132245950824584618375506313114332586603167803975004007823739312271420424735789675567022653460924577908493958363987738938961584366234929263208554735478894656751446819959056525467591877004612999094358848445937466330315403190773038865451580265621550485175218100164999114180741904145087533116688514065338413541525093698532946468107378753863397281299822626681714585096438551792404134521190301916796152937318553433821384597493691256035954147839356605479724999516872652698393046117385154234749769033699451114908087264189521702956048790281969777770305867899316080131824574242255081647448475649159061729512525943428966825197043343212089372317475471680149450012038556339260221350659103070736176715222333236469722748166074439284377026056340302946327619402734517742471755015830249864785332177389513165916106333789352031207055050371884681740062379242485762922617412371378810351481692190117924901582945289779780635567429054724888892033929871421195765700461781091332810788006602341442886679216938816618453438972273206580522994585367930839522158103174725462961898129403873016713992270140579369173319028256724701491036973445181595676949798903415041553845159350494272422118400646772191478245274533050013101482680484272572983749983241866142744472654581298680866515313443173035082693234701860894579315033917833208253227378262013265293718780042835397147162449124507927721116400483711568028192509699377039515541785788784940261764346869440183004531949801924348622461414470167006792593134890090452663921984168845048238514965613800205101113595413601004440159532857137378641225699062285501307248827811569007621195200416859566853485515122283790804424229417608449372818122168263419167575814058489308636956959534298673992591151850201428735127107335883754375202679416820751013844607395952868903701092581126917454673015455462156085369133374546406247824924345679539951060623091087448697436660801163315079805748138411112732388639833276890722482707753435758767876127173495610835563985091767832744419944278893532466080807791543044515547696410493287536943437413399269729482461631566020053174898634623386614002811371973022068458654552553828541993381780585933491168059846149126123623519063792166017284302312382199154573539429618047821128713094388350146291979393392911678177412117877445417168970502549539286082916871987113456613384733845589256717677947220257332233738772801847398189631180492815266720835386231312551985785004354209710029124973509629151459729373559317419710841740547327902326423044560147980209009742732298775567763755607795542709426041936373711898005102267616171180097529163686017657871940967285255649263691081494172297136565521225693016500027411751994112860201276480944914164896563980700211491471341957567523935282700661415596414245564675253213426207903605316574907565048654681994475877318522825917853486496182375875827445321182688862033274677433436022597720689572652148508260327632881043760826692156711936458794555714484018692659417195191067878595181098476699454062115479993977486479950250593299577634151954960444650989378942200355855308810365041671822355159815810073025097787808388434691029304285699292113391281306472915936983690306357445955005171927514372492681295907696477433208534003343593609138749493237659705462945515708626882750539605182658910765638500042771353374144855042886444411386962620186806338514745715687112544463167415783509767485866312706126311271554661793833276066668362634144854240644131892095865518692509680364827824128698468399415970054128056148755881827395000249560479805489606202892200783152953664083361113614984930594345892533305525541234508629298590823095261019481178913204462993082491402602145995398035750078223164620266997245961860794893044797280513151981742594991710085820526157787582502117184207346101461983605324730577003034447642919569405631007132626216418563191565315829958913961170170939797439596535915216364272927886358127114764349391229881376125280660178919408864805505777852679264683215910012439779947818305145342847772635980149001106005941773136767180083053473981796954929026609146465124505731799531971805017258545524193808913863155359282628791249837825306112362852726039042395104465438437854907368028085160467772410365280708692298415460019857130244155241004031136337624195023176744583212901792956398907936871164781293446114738490189633411438112418433745426459993914614791639695615259210467595655802300866294201317583360294081626181498631839496485194297284236287925112122617857315937893515405778746215045939743206947425755037852777741639599580519869250958491816671558190312757165935710800476319899421129214362771535277826334843268998733251004539701613806119356327434654589974123691433242389952578710181132168492031948621334442826498590319305134938487664430530879665179537936463010792574938075864128166245353480914829545784119481467458549433361446171593743638246497087555830596918899387481459431356258507785849428366063742860385428896994672506927392661003955766930760637985073652143582225109184836610412745178233228501364999263734345879296990062807762867654365261102585925500294743889507185073950700447626812936371780275066759316374681311441808371966820859514113468460072533179370239562959154034147526798968310432338528610329936493203146553016584580616535547244467019754188593704515315794068050127707740663497441993240920670193055470311170516410319939704342339653724929166524786092012065396966995870300977195802683358551937933001862244390037379282004715082078714877997713262191208184838353958590438290442164321343916579101852038487177229123458962840041606003301490395420556290167855494713091761551288709158885709693634219908401072909541175518588952392637104602268342579919751414085539340087428793555949440634916736258378628148699775627832317515460259526642997014217901199177679249738046751329193056316733491663601906301567605830670214834072694808951838344253845886895340153023728905248850188501932063229807759751659851545062154415373518239640021279451784561043944161964617939124289807390775077228116411667670539925149394770808465661010189041593297430743921582712191455338090948816719753723521422754854251448933671500209642304479465529990448556161174628507698113912708717137081584959781503636391500428143849681512589879455163402777365034974318461832495286635505454428931048566132675070082202542373601847748135631521404907452489131620520699517292049690721196405629079653576427729678806723340932091343809448612869854111360646136190370537153304561832149219609188810725487102289182226270152217395288790006856777871757135232430133482062403439180171440983327897268453009320753681236179228582599639540756543473941040951589477735126762529640852756404464902928433896377912122764074170908924659372982517306855561225265469076173873538835193442149452678920771327327561545032929701890976177712615342257880773282514825356998102501141949996036133946558998753483684423361513362033553383899544890807275337829802699790856078616952550745819651515267538176242946455736423570306711463820838709841162596549943238298971768737359503770983605737777032652382444127499684942929119315385150889178697082547443472213483236423361699551054814140352818148919837947574811771934880315841613458735782812032595843892514745428496571040826751653046107767206436903233448574064116027806998096244511497922150967647528607479789666583889121409547290051564786078064205285389774553531276209486401641835261993400568578409367726804925988181899080783625052498627962168212675154464076619153406494084868201051678725286993056376839548899870625999554392951694114085199207772355748153198104872167095836713888673704980602889591043748100241905646236930739857821226535685656768015879183404027388138702817721313918436099330885848520836947001802301223330793603446315511036746015134892707511453702059335579708441015061974567536521098297771227637891202383866661314306191024296758134574796143375519171012008167503720790381457900933616057987512303932612770682752095822712085807141413864914546170289756683003416699568052742684030830241959617741290100534479492320126988284605334367000443233085227369092971445351321530473647096096111833359482182128172428879188060809385232771248177075643689703338051449234781877997855002400478614032600853316224150092810781232952611113131108011340260420852159827787551766081346328004007674003752867294030047088846367312209878825922573038163054134614074686564155425321522183010803150305208414521074024446670758817680724351522160220346899251521400490173311128707516801538808231270738551214730637172834883555144026960026106286464093874818030775905316830726810231487580009904898307512411679410243617579423706704710245040914996206734314494016749504867709184826603529367618995694487888922034809629544398700265936264303350717390790726390338142662541914012914619502941085102278959689315380616573475918967700077040105186586724540393469218608900913913700573040450527207891314953101946936594839294379762839565063126491826415050820826187334024491756644911793289572352951291195813642506571307889944030384769742895882138913623023776635776134906718153806275209091068963540312216136146856457108900266334852713258909120087700775910282215457679045967893646201921506387784085295599287352683875388836583716381481598284644403460201933918809972980218555834360445848911882510970843764437601915914960642154205089790484694207688532828570781443667298061574665272704863009327534165081008752268592382713783373179736281076451128472824603467731890955136447331788827628874744079400813599022680158551075836307985755930688575541598227403441677290041605537678360513152806798825666432534341015262611164525333338655196412111306755571717187191129130554462933157662713196755643150183389648128394627808447796845836907188991785271178851823538261425726576553991985723231573743002745547254150395962861877962187988495501379366560347823939179414274293813881492478977312767673876877928650440197754121444855350129234736036537901307315510334779059061694578446083205246177596763182647870659082174527204659822254040072021238694830983054928465058422454169285225253277437183530268334468793907701628604660205994532766150964080523757554271883264453313070666332541499150036409541134539288348051391293645548004726995367321165579869120073026735907369062365231534717677963365147158640295902143198229806648040509206508734041544500045691923624083349672889724605021109592429695507268209626963944108316329830042148640399432341166316999522656119364233849254224412992163468055739015804163553081690896600537146729451812423182735347040270015445287796711013991455917531349500393217900556260669572674492580138334888005605351575241703829413327838608595469333570974368269530710419106805447765317295317869441209881485558343314420819962334437828100073179353599146797102017771909166910703662077766545103251625106325149973907673251291389864751119089981698531534567666956328542460127001359659695421084646210834916158856710633223628707731479575345019123136482246142615003994839837553438281456808396653861599406341003149674640668643775758094422286346902758507445786638735043906417290358300083445206385616933420259211753153289154196752032508385922617301581619117343536163385730098838302484408378190059961869222377241818253297382188746269200556451312430280043544177201980869419761959446021945964507384112011717780320347819442551825197260520474181564034278369333352614914603296393326845154053091488626211732785648839758103133660973176502928900324593133636889210210124388265193516847482289288338132887412849793882666940559382312387902216505906184402245654101996282374372804524391965725067580324522506077076230348028150213453839316828154131851170523666268199159161282875600109867000221377023184334111247033095800930562437982122856951175483230376425640487524873475351516945440888841456640186898865627780012593268357794554303357285517322233013102579436587849711248736604348971864025675756312306363934916526563368023579950140221735848576637422631334089217795837099464013855883080777914015783434299495776511796947086701173848505124366096540571456826978399968416546812345151910276246958138001238172472364475320528852076909431501529034168112605286404889916809739076534598516199806270586950169542049228512602483098365749651162132887426292344668989682184716966488615604284058867091704448792407314556169096703597512020137681316842066363837559121132133587560165515682349605796563587130324616484104537239883109480135189694198246520457862721229144614454989600164133077766216348810216979980716478099058815141025114366037074955542745748924785870697894014211726856074768866087150133961734887840465245421848406814875120415198465984000387589156581132193401580792383897379918816702371647582593159592417496747342425050372045161903949046334709364420813481945887064486482428030268452405618691617570905289624693745966358392394657909698189936006780148633192419356891802460811323289582869770401285343417461878902733043848326911194062275048776805117229948357985240110329334084489450555569468568802871451337283956318968011795714771794395223482718285602697646469765463189954257688270171722550502034627422976410003804338458038709332381818054898473497998848819060823797729766074053460740431139150510126416254234033863314477617070834258104797080066052939710393968628582940993870581425402681006950618717638288728006138982345100815592368737539068093549912980841726104578860498683387411704661767200963713306598097992115995767332397128050511540576419159538711098119170628275913205900722677461710130462471397383119703785537454321351945026565181057231964910005078026732255379133158345499268390924096900087919012569613434010467134559112448211920220472977761766799211822375814558620143053332391503776676419386758755968300911327171425833961797069809225889903592735928112084437728289548239988806884710385070913303786169860593844750663962077088273452807300048686021003640231791193711883324274289687673045490249456612098160571371111811691641569104173851543774993422765232534885027740106112058583672346197487647546781959697200704236471031256778048525290042307024740798170297332281802115473689918823476970243958815761145487153585978294038522768221462567223146473917317602481547415271544148999234032795913381745944823833683682006561478425005975413617246714338568594671243875913247868990832195596266158732366340808168000573426640722386992400170398617352515887325140782776455038224941589434644980547845370752692240316464601798334708379941937494133114023166461010849257304311059559919323436910643903912501940333899385432368265845033665861575363585685332746808027145799291898238598556461249652586240598930522462621864158321624703363632224527809729332516609077285051215757415897691564350085967811883290152570462998634708321498421252109687178498591153546562460624632885289737614563029698610660923412100803380678370759710487727367315189417878117072554143961015519230356988577465092779277062612304703100033010987878654114165984750302105679689954329630721356771061637480688811318287340179015098819344324331614948131646629953453377435035677527150316147405558399624631561733297977707729475493971754549536109579034976700062272090740592459097111127148910643547040826014450455800646269136638703438905739168637516594296560294842606299926158342947956320904714366943453697239076016699847767749860187839046212305458869870757015874296260434043520357486337965661803765237654567953515171118539376141426995984181822576987946985670577755254155285510443432129555783801705111463780091729494294930181321017193124455272446708900563639574862339925347805887408849571286109152225472336020090298186539819898276135544079111630934595117728587047507855940836909553916794952016431292761826684056860797121738914578477757201174001556945061005765662666260458634064063616794379631759391895492565627407784769177739331090403681812393786228147888550751267017394405052384249626829212881427329607682460060392471353369725753778659445484100856326897882868271241205414294711570058222219526864153666555882142714791248984669530797941194350745227247547027918552602351610509577467694416042741662108962554755091976448765758811234152921931721634597982853374673797361945572873915066158268938821686673898523186362148718801808882349739600790564594170521739981948066720850896269031277154520755274819403486982898714947771713859808743904239843347319113847464219728757573149884590158646800378949480237753506300103111686894782375104017094625461408921844888620226702797360844146959946627568466733962378950275816185089306653771222968590791500121451180649223648898123699123416838956823318839442029247988559695322988378487402412597477064075916845610095647974470867296079033093021664718141822511577383171923731541812260097035619449448959622605164289921740636578178884425735605072534552581314157332927583566619962649524562407027486585335213204301992414410776646260031049390368525796178748382498494618054819619478723723006244039336329749886716450829617512503826734823581236489782295622200608699714964979193854982111337696237427612649448845668176634767760763677160936123385894798304662818729491888248608148834986610400596573059634122737754626870117037841679330920104759212464887882720328908318322913297884323656998788079064493936043668957647148820079047293159843645685488345333384578673297103229102534289552408598474905826179931809834955388800974514125347800211563070680769690400094767159263228124876372416441045201113133643831299059531967888549671841331777080504370817443025088594257565009870969446932360633786999994682523583747749628424144601839457448071174738093962366592683658823790080380824268658626233513126379131180195663395515441685318464120049105952078292384790857534191209115097994976940741984249524219448504811292615616723319258372583739132410418886016589433559137725963541825335184994133472612519205212333345130496879251470376793591071166238886247678930368710722398144563303591284168938479618484713595527336491298642946537996417219147941697588032781460751935322481320722689337088253425636321995694284081378436974736570793182077821740310910819409206364333096826780518791047212136718784107344863789849599188898376292363797357978169011423012336983605395397583661510268654232542343787421702031649155983929361084476081296927206776271857728169461395734155982091240866089636947585385569090931694623395189850884372776448966034667471497185293070585269766630986236658292398612286456169687082340870601658948624807886844536995694143689727359621405328079940299200781622784363678588962435380527599542428735479581549286297888961746051347283914371068593187171622833303269381194309704234518854728891251812089603070499340857182042275013968676002597525733334204827283497231174042291630496785048900343904081129996008815873478810018443319721961674434991514544322527988968188033128834152997707835160200662364671157054517406769535858357516954783103582270714873263924753763003010159878985215007902606238951461568127474902445544217061676648227451316043466026044491540613009574468141592387568912678652576908379913730553168683060082136316122264066501135935848026407423670815548989813411475499130356792759283275446969990848518868445528146865104414871629197220000607851753574959256483732343667806110601289988958965077870974020283017333630163688517070406992957296873451468745257184121412966967636385087291663700502333474474693925787346351553713229157904358052862962425281054576546182165966001348107068717630744290150866879742618525707169167466644436636380350551156981981136957895841250215436463528483079853376354321925120694176640241594682832170127989937152540034869725769155747133971494486586057168002015702730683963372199657696040486810908653740212519449048156428609746974473406618801829105688562929900550084436854278072028125189403135055012474466296377622798563551867273247559270113899037476152599052033101693128306222133454222392311033297588674052741907046398471932058198656978209559271591380510500246005266302036699684343880272198781557416533048495707998536017969507652388391652773784944313043972282584820778306423421619420444086736811786669657095297298459550924769679723823337818064521113330538823791307094888130253626466534771480408510972027056187392075865620253525558255563004209270508865104535558914021934511356001054634523412093392780759122166861296938475067232900045300434080325058642446677268368716878242579508564266915853159368802775381138988880455792192314447851150290185079281446567263279544537976550197237438343206564002419388174432084945853772221370948325307369433754776329666411132779592761576361448792831370251586766231688378409716318152070205146081142143675469480118175232229635059339302490946978968876443785643493746303454962067109460696358151747883653010447689639163195736304342900067580538976439257460167745720368667035373668197643606912068700169563087689878783268353763787676809733725006625542456373785394664905198184468363314807496830283449761551000965323338075415032422616281280230451075489158130933010165142643267910873986917485399044878270730978329291201907564777584723091034551403271474979431490542884584148468363717026847369119664302189864898186169492879343735073314151270490651625952071975842010215482180798058630364038712428439058575468377405151088382111698874378662132879850648655751538019587492399838296276287300668156773056089337737967303020483116561635790280371789888162181090015622875890202828641589666631142824777265428233850299566553829233033626194478506240547866308125545614695590719089913835495680219568128125640197672107222122461206111590310666810246886919715814629547187756948025641338957475648477868792924465203385941782980370024734430346567329604260082567806249319424876071280709709687875910671577072203528976764690482543218974054676632560014891661532612073238595640149720105122320267441439292078327036397926813123444369392273701065983170559211437795438335884387864516701615398961267475258431047467245860052534607269260124450872818993256017112559502841779107970863538049221698133487887917918125535971975295684582988131978673370729269209652496611421350654173749911412540737370491808618188799885203394871561387010435633011356777131576592922118299445308731069399862736424051317504836781342913977528151681694076171607371171346837941673831552586436252337259844548468623307355994228634786840344124465430957458388376818560154200480864893105509533428134134248019555923539901651178994256951653986461455315372151580083559598434042507703286580890607692120054189487102320984955292783956990433949771264979156290095738093972094061469437768569115121516165170942048292367158721747717589360056569948271193374665511341342116640183781269806216364955647939113941600893237053412547768181547066031424854023626542540880532049126938590537817209180002373723096005810894190493856053126083906293886569564054336155417917426173807761287378076086681281710087797597596347236488786102084140717431330255289809231477114472591393423278911038692961310694168688035112496545534077337570365796849755048716222047407725770289641407457433311292551843182532627043498391845575494938231163015660012601774733541908430382443666161279714947419905466443028159674959225941348622297505998065747954731991751188711304178389615981520384123493879583909420547443332005818309271255605813059822966689171379724165765832007226344436822683773828461150320010808357278818917306147414428220582607337143823677464164381882583308060575616152758882344945443783828351937662117952469547128701156744843446907517593024378092449855138296171783378436863986608587775787401320250769769178772652499275451949915968067676454850012457898467642847263892233751990056171014597588089212666404593657339870533449997667170349275594170252699337749696523914977788571882458446690660389591113278342029888854249236438371288842971909941612563341353420817288977696186087993313095007906155072827555849172106369688180076478536263978917635115184488813149911474681020029222127182970795244977638875862660111456751377305092562592390321754576214192298952401192912360866585180015566343039141336324353069112180059037690420086841517190611383370297031626571853139571634433811748840877157171846835400679446022531114695180912222787350223647761695914550300025716927925601216590221647090383052932782404562026050601607798187667927132887081866698102360282762276770448323357297609607899620582791305001649360537634166953196400165369464394723876306020334770250145749491501268562545935438584399071568371152150162559155473049037433370641182000834783614851778933036860714367856535585636307133368773647444433864737174972800897522637808975661774231241093528478302644153880310904162284294777160989278519645513948604974565454446951878756803148254421762868345434367519753049722451972632680431789748305021337902758398658156385211893595750888480965702317537392163235113663193375985905866770662066809005567923479381944904871711731161056823586011101652086681761438167920364746599068794887614115543081003487961254596316103660475376536132577907188700716163979638251283000400741553809926081599597629976863427616073428028950029406204520158087463697369112012478259134546880403754757463887763691962221857068161386635620401131727005743455295537376403963577157103774774388684750452705091741669174108263022991836354650972191051443385050652301027012132411628070107498691422388443215959797402897880300284602598277387280660293311293638343399309319750147971909758334586585309115207947974919701673398641406210571111638869269975971208339650640589771085503733199813294617593772524742948117337022591147662493529166008140408756111274720518569640456481602926434465895021093444192177420112417546081995579641285653346569111969118551884876181971275408394447993790318441074336359210200222324010294801837859581549318409141968120722159745747699887367416792150790439674835783914099614136667305032436528843401932745574063562832559881363508896893100312257210524358966019648185505489521520082252030510426756346850092148148920290389082766307559907856109326160520870562504044799186591066211891730028255411147771299664991470075839058503024504666373767460093478736746796296572430729154636496236684151251249212181403112211797972478104967128217148545104560602380899276335387203374257534428984739454169554140253232632250098889775508269346204513371004684102431133481643565197074151409544162274430301630717292716267825644614699427433643880717881881742093919959154500808259176002416719814183931699060323178299039754759698344381924957198570988757721954603293758289326366264478198016488439850934326450269930418182148729069035138681797341865342677337540902441204129956952141616313989502235345291730805719608615180509853567715045726548563940019580398070971745195811123839657846390205235871355312219483825127343519289999032913898484339932085291216158149760143593746177015591078500471864493331479696397987047823726458483819952372299639126614762853023274567830366610669634349932361291511890912566567894600839525517730047783065561175623438865915156259180396876779777294793965393247858878330308655552856540624197585786659605119621445334410873746279137262608633028601468802160794809296670176400987498761920265862759351039517343386557687681188115181708446086369187209189883168744529675411232442043174980546278729619018746633167424054014836137274464105463133589277003898621800502938786741158978207474653613688146308648964136326554559514499175431341399821339880584400986810049419003698815951869327697201410483367480503561770805092608354401165143735481875612531312992069291345738793232365324417459119139560025564358783952590465728502647630169365800054968347324897136621615703954475111188001183597989444170313576204956590096224499439764675565835917123614169701524422372062528968579239826318997436640546046581612579170970083812116946606220153656591951122926586601363216742314881157667572255298935274027755443108366485234655813564876396902146811967803495024111688671026034463702298458539696454151193041790530641161399090080692262850158129787800354196330970233795259515279993606221244186465402405136286235906635414920124258593373185943359217632831631408294882330897387024676554231333824505443121640943717727182366789664472910894254596552758515885381622653531811546395028933461108844136887670502631639372967050411792058611339287627700736938206924078189397111136622855315881837584355259012656253612443710309653665519329065878000136450735803862033486278123235794658981431149877238501892777652132786355739998799905457123347377797318018884847108196648581940465959807213980138929162266443896930633990160041306516891567823426964820853953712967485104043698657942666560530499351521236648064346728207757410629358011003043288479121566682338076896703285559963826357631491363686410604887826923669566283436200926251331948457359982594466761110842069024158002049032797261681871153742110638921452383667051486380753581765230323773163617098604902594817432011592597812455554047639666420558945404507789388856321587729823426917982882848359464586624133771706781376352737977003891171281650911374678150198284199286217256221357022532573437858795952361304053229374794961809455819284464283698857384923174845442566570368950921256032706588034382703698248074246459770972584500493633712622356334056100600607129298189624739985868891621607434005967371570259596367818130509343213426535319318229597945256428032338344633647672967627269909518667663884681803961339598355609527090366684191119635230728105459315261987669630797844386399986465848795270751907661084224165375078731586800369403223683119320977118120867933350608839997722529559763429035680318704897369329189668439854551324950488589078007556099784515536778059746426421172431161763171119633527379046983831852874172261407977673551803295419180152333305341949482861125342281216090780791751359652173783247816116772932648128666168495738495326138892689296568703614338966230399220943672322595573086738858405132850329167949089396450664528551130537675092985607627159969254371442928052930545322622447935502669807404111288664941557860415316958652776007417006592632258780615523959877244999373189732768700343776493940298984208686924597840715433501496128655804325751138503338895398964425185185973942694241401841262409930865812023480121508223977401936461706710991132372600727570773916356579137922722939657054789650110114901766839392289252071224151212802142638905446211243035369843841193497552596516186823682870379602654670819737408990972381496191267275344861004874789948587987301917332246650431258325095142152957206283972643818977712518544911619851784376244305216596570122722099743041161788304790589291070314999301158537451822120635655487411808081206548152074572264550470465237219061542801239887472936608385437394871582156739626320143892481347845760153571418789312164500117980321724162355094648704518885808537408418230002628703710812902582298293400956643807683513402425452906472875899709808110242590251591731758594177559916743416553446644685763810091144072948516161715020978631823216337900696309885398569304209981038688520427026077064076785580189558003366562147011549076070111750591066759363134974742798475979060423370896910337809278830424414450510481170505149900608690904848728572073152753194315985292233001441404306237447415199084807447516190574185646935025174389306314697341588322658439764451787630273999161922878636783313970354878694693679707718331576263655249191344483277105088183436567053218254255198608945644066712576673178245962102957086322592945682702225403030055753424945669679988148740343973154108090115412131345303938591232294115731178103550059543697157510660220539267711596302688231040203896338862262296541181188550125994300634636219156860634822410864782519277546892205659255129869700818422499681710796553621099418963329564797590649350329834192162530806774400918193506460425404030646035330575734653982274699303678768054369139629974330534690576675817967145762301542383026484649389380354699313187773973648922657546845337362478669437947932248357389714381202738980224584497636610474437925004780910568371773997859663582864108838347137418507111496893231534993842285676698904436457577859095536878117291269936793568287312879024082392561225694676728308393282791693416212570260952502508834353920506219031065887670481566327535531603019608761516635965962721763399613912970949468619161773419700880319474061018932044407343601047714000990682684618207956183375612439822892988349839294644833157123653870043838039771040164370477115411051438021743169413244223729691505770505889254083911426714276989401683785402220364393138994264051413739998923510221430398772250981738561529398955893038175645136809173831532795430912583718754245391475074505858930998763957231630721122903627534882334488866869952226573268300944107034456546316887519633820859203610675182477515894945704276280405126396202504425076824354944764495019255835998197337709053506678579825490865213312452606699699532758218826326988752667082224318151706579678405875704838369438323710229121712249394484187820145480990074952781267334710795040837783942939538116965200884200679859727821960418604809935300145023035087948208016320018261270167921671508587015196795885549017763712688312990214631986305970217411260865138408567791458871456132793337207759584704741862784945764407575011513314920094965268448787961495925640462641328990459055493753946946601222048491015826803111423429348230546412828135158705773750805612176138697698466793927109971620756128823786180722356488549914976563709190508397760275752108233972156002922495504830697967035736442382472673421953181173232770574923868346063559974163868803832050341345667441771939577370502125405710189881143871736168332534636696261982598056280802174770342890259840592302693060894834424619225212221317237747789168538389235949389511322936056321844110369115305209194028366686306439724519090127805776841210135431479560631751119527545504310162043372870096275504296186546972992244244607504179426628926101866943495597268068001146563996229857921195493616633288499267892685493271433196467658328163520695877783042017092989441021540749583377454701273661033320383146737069796758963671548772990812026981112470509022490965586405992804612426343076115738484516295157576755617053722124644905747126841343584959666474943434701169320023129157743599554839443956859906987403362354392489182538931358406673170087386004778241968094237731896035873673033359037231235749103272980862199403874868682265004367685565815623124901734200433183700049014998680908074437782077055720814160660092476783437862905436002254887252008963548305516926153729990877697966698198542511777372300414272316094086449320239697949645887578224535567394368041007747882368844126167804954381545647049516171986910188381059166264297815102371184888829420813641508132581943367039916556945522844765104071491054704864375990022543927551806545011929446436163093590672789521454590008652692430679521284002331766000635660646371610672802455948613670211851828955616327144406712200386085939982167268671924847017181332261650910761501813057694134544316755528968336772452467157597243176248889945363261189109483279900701456773799093306192609971879311580287082591655984382294497690684668151035838826420123210864984700344131532285330269925029994088363911392993064197622273208016885560670990383413238809298719711250251618130120054864427756021563170533996613110324386481868818508926465937519704984870255534963924902036891850365147617878271527167387754354577445500187392494584845472178013618389028696114652248543230345777290098916445325880651287378444966063803991390634316280458347793677773446389481721243868388153872718849508422870182854245496694722413741636635361282146275903802052149680732234135744909179187723700504480007303482823502148563605157872422840108420486444068800310505161298573433506191508278598288912134818589253131464830816915785235004506495560222251243941482827751711339244908284119475952919884582279140389324231081030380179244327841685186801864089093745302688552108577728481368862275152854763198979876720405217160056929854799490539483151525914369625443530496119249790084611744548264530182951825343422698696470409126740937093007164555178826821455865179129054665095775735007773201288280778089578066609572734025023968190548615551422694926758911212730133097674901876799202992338136070884975388671021622873665412874352640918827379663074662724077913223278306322450127925260250785360416714124546324905836977551080964061534048547899297577346067414696954843074772493568435794332971871974612770243211577941101023706689737065774361165723832789693116672378712383078448052029879209689045767751209161501405844339980847637942810933264308704382667205315442413247248107306745607040983464780003253701232926868986521084913385812877883875421128809649058351210461894758589213110854167077757507348023774745251666757277399043087647745051101786318465427129969384797125006595666513424677973689717156937462501794980223531033631726712640535191812559996137208062185416962017084118444255767468645375417510112699208273969284826379909626999916427673965765462725542221094836063732628501428402278736267728921366315839002487624510020166465989564269351758830920589679854029634692394745206577641239111515964831058481263933365441736801945630130028166647810808157227304404935991350686148260989968350076813921041713011752401741386621816873351366979195093579207671749594203233848791340970101572323952552202821840200399151675338061754021111644434858969671151673980473972468959003208443538158810440352569094974865505061132638842100663766010124539304827311016399446658347007834260489456673068810991634802154412414447277149790695506486414703745796673487689507806705010911545838655958198659637591066784483452018781612685969800595230307701203817526402288245650616454785093684002103119014479982696973100443315943410303934813291434413485792788115653879740169761516380376286158592666092532208529309693754772061153288978159936150038627385107428994979056950047058095193331207585129668128541022999227381817863989619844063177574543801031265650146774735007984948722719328434118577230478004363207353189557417697440375180211366268056240603594837049486148635456102258314798428092962626533986806697761638521763621465896224294672421015194534624528988479375462898674055179636896204663787950419294327045913664189341685963082394534381096754268119514345440353851436722917232140041227402722299233251204601880060343592018767824810856347936103279219440203685385708000668946358357023471819272600094696734546669454952305866403566270965993436847836017326523868278576449971309305152037357789837389650549280572056641184804299163696796891135212420392559884022138907626081496808641898464544518860370705007285220046624387339144840648241619795286671338439717481656893254885330858570192881324155573355960106308638011122263713802324803426900151440522757696851802218535853037769750362527893302250848288733487442847775223100869793727936433028556206452592169838001697074952423564576749289610760695179149127206257931414687543156021151383950362946966709445183090817644371128260741783822929465922860224951757174811301082815587265009114723935998273396095040965730395638960732806890058597129943450132332055205866166404694397076166922541550180780245958688456177046761157619721086067442705898206549002419739056730576438708399960157780472004975775295190117084795908539637466068688559913283181736425704783667523809162519016728046704688555462089997041340456938798648935863888002635799298693204305826237768268985605705364122988060089915553202269643929325361646099328614825027064771521731243266124672765056938523076640630045215780567608947698465645668138898342351026033953195070602393480385422829809962575552463740516232715162954075143746178970037751558359007538336552375714787549196300490390471021241955460200415998578576157329978822066791177604504388750238960576345050248030170168601180650931702817880938181464346404790378091412515947082299390023001494468059954818862751594637719781903580043309166718103633748059381083450472054086410495692860462878202734561841548297097880469881521158040556607816211161198642431248450024405384284746333761037720143846086103091276825653388633446222559238463528927939920668314341450380469005654936069978080449108750146732024157713660782409323282272398602106715130325948760799162352356936759814796908462682748092724177602759442887857345209957975295278653519152717882807918043630292314544574964285507182855504677112842771176159381194357516083252988079600601075946489872749411958667088188162201912133062614709055347481264383344178646482724112566493704027466609890219527105997083845434246999315290638727969026827404095777311136164090476890192585048749732841397446711343108586616733099664559438037035764216927960206154186517557835701813486338914286776702646057010916965589570310276364494235401706508748261990661101772105068868590985915340845252067488966899673206145511969142758637120419644543642772105298698137250017191824129779789679324849162525602741598756409356740351657257806884929154795791525045659164129314636709055662946583334840567582305439829630999302115405366127733309931476026062590663557524637776671610018604165610090261843792947008596874436647896259252187052056468858482940213396171574631978566231918242890654720922993946088907322181363522419698801371209047317054051145622353740720602416770955253654928720588349225783940479630664781960949325049851271524920058600325529228280285585020508002369183141933373861892361383982164091230482610868052874366067231833991765216742086702429752683080130977861179091102213727918661623655092106780413869351494487719573862942977957095872609982614068582499194052668227289042210716311749029143730553296686431560248856155650898887458032604437240531821683896107043720738904764115451241849867903261990231171192034920428934505366102905467924864762884083692296406809527213103859888077805476497054887549189590710419766746354964576057865770613556432065499130683093615142123894144849501710376110664003105527543502117211378638710473748761771057748877217495352514823292482114090166513661363818075601817124632814953376051489256731617194334454615264413657273675305846108570506154962264964958261885155142197688141092619441080487763012583325749092495566819139438595099922682908833323628719996514644629307634276497064525433556298874423476596203762919047097263329675540386104567656576092933640976612547284245670462541202447620162087790003864942206324743218681139953578137280920237275553907619877553169634075265518516912962665314789987168586880150137475872595176875568015863714523667605009397275022429005120397539957726477382550575459526024102743250956637682671585772272489585689537293226282717755640177178641332915933871846214434166728763230467449029020737775685294761692060477057195609958336443152096094956428401116901285791057969499126346107039485331311313775278807800280431373541167954180407567575886809455053146333376541937975177911478937965894198914076173581054931693180944779361833275183559148797326648966159365631420634028782533661462937883940151515528259986224000442426985144934506864799765212137199440798693839372217616755272942097725098929085065848389956376046916744090349619701163399254741397328696480896453095287480086589951041460563130925144266624831929401525383171478569917319131765864270519127608309705139332409166013275181050186694953908170428782734097913292879637892453448133228230427467373028044681307643393567301689150217894091614434555120555147714459148142050900308242810143646986943907535513207496700924331818132575128359646641342409403249520950348327482085985829839103394680408585562390342193394746862391209133805606863998095439028456072179241688722711294896472727696412914721663690268322165088686886021899596581023387182208345370540809521367473010591893322560725648926359849529826545674084399160323290594648398520425506610938888039580850225787829576210920597724352596148213922061411118303799566655803137759800772850636380279676597098979442640012025426912345868296458022246441357780792156661870392577457185697374072417679694388934696146365081079297940605673996493669488000391427054349327993596983742757367807731673153420690325743163448781937819910589666864287247765519197514679939687633290306678933715365499874824901501701419980505074350951261238275269783973070745151883497303867676582011888100210999013370483678754670707236827025236050791923804044943710249830978976263280008367255567008467345159917140811784332113170595765265526467672967093063355008037496765265304586548928829558894211646127375697236143243459642119886584002439476068722516391336345440240783457081788733007932259438129041412939756771046904289285988977927092093285081456110126018117613011156083422317130909136288902308748929556442270045660756110579810879666595261790055403158506765719320730742318920415314967912934611752279113885067727404317014923789631043543430439784735914457206183096608440563922649768451709219106819214727969642055990437631250988461985438719834595847901763982304329080345211339777621413871018407944476146206545003910435279564789225690101508123885514334327366709010910243655152661976436848945992332645593398007838879146306580675625715749620675138083386721285677238034851211586072923479437394045067752983005751068694539221868134348308478280475674594576023965891289117633162506016146107125963733593936084498008372030902023324149060610486843770341740748172547314010273747975263187525917236579601022566863870498645805492866480955747781850259925212030663865869663484418258206054129855167507841792944594732345415302004431981217994872304129565447758650551354069863978439996929949499222576989514845917481975216046212025214340951178494913434125104248401186689459249410312370040250840453168972861336891460150516909012673819908780817337288359282395372432186496677104312049944962598565180176381427333040830309510723352852347059614626048066162673851964983602393189483787239562555790749559863901789123085372781874568802613210544124948584037827665011591646008053155707730979839753000255108317274407881961014897182830096928446020104159699966098609832107217326747317899887778815500054988185435315910065731327742364278167115479625623699064208538533307615286712332510107556512491032753295509194628995753320108108278725399896232236467331183310049484465816613906008451605963803633069258893960262893183954553972647396125228610247430843278582782123941819728460188317866767021417664909319899445681979965651303594844965514433426746879281850576376499673853852944430260523592671539224440614712904197820347791272797570000371718697073604434124273110585222791924966127498163165289678086158601759526617787542623463200420475104829389115648379507338689797608325245997621226212254713459493337166143096955551683019959166324874393866917126838371193987408278825395552261485222534504049649681103413291022266288544740454081458473760823322603175802715378683711148676251850876527251290626296667133244227725524488692440075849210887476805923958520898194659417659951780594715665391205750265649144786349349781623291856154011895268770462377259420596080562460452154778689953510688863326949464021607103043655369375991197785718223317737708091441882236225750526318954997071686640307925068944137383284301490952339590474458211446409859500331509797535430563791152388708686523676590794460438794686271992745853883376256355439993583331877997269975307174003510557428175075756975104753352601116277019975611187639013120574754455867538062347203138594323126566763864446142459503904085733996031081883227638443176046938195582711333445031743341998001249343305502985849928211096899255683124806169938793998127554624663808370839321600159379012809537690043594221889026589709603914065050486184116964898602031368237165506974572658676805964710531482344398048811289214185565983473386267782470460392112845426117562312384845853761279700185108071915899247079139141303547019469164075716924082004790210565790723182201537987210450934796753826982989190507626680096088702061942187507797687542844000748463559918028909458491861424684816826115574537210666599688812872104368246899410000173175192502441015306018160668384872917961140542781680207871303106046413667671656815009436829614402467745593606812778502292541323587631835371883196975768937144742458283552608127929087275547134268393643972063015121828800977361361533200924859068318321415378587656853596228851704764032693824697992305715891720541606485635433455543588106076396482229246639924867593367338937490484187386084866000764035720195003240571269140064764151142099564670755775245419091457462525128686999615188706318192637697444733315180689134849134264648905487275252477893244889638945209013023466532446426196950790783209890998109202958427783884136416945943871272039224604343936632991743248076406717367846455307171884891179377561287085689578478803352570337424116633975704287116138988868966693588544983129013117639058005972872551141135902255160691728245862334427487682963294431789006255463022097188064698538927608418938404580277074954132981161820916869286747102104005600255965732025309453146516624099715425409256354356290975054538353279517513112007968635495533221130438927726609773306730631164323747831501515922038884843912311851138695610438126626268140834329998325750676520498666441878396451469430282435831261745248188667134880978533260762151756327673864350799351754955056802130284732517387093822230828858747149780798500720974464580963573857770500045563106860129436000739204305152988843601566643081752661515157173222101262282055617266029621597802134080075339436877550474998676503563250312332547703628586330691978514633906072484558024249139112941042763259420131050436684027510120225214050347113758533679658630270665888663079972887839546028407611748169910328100269373762449962770351481169406839129385681854256199019420277361452711840579087065409455157521324512472184847782151560984364647145392822048056553690229187975633774756369634502196491412691200318218639075551049944171626931322292011578334831233978769984485883915653751259944898562072315997049951232889646475407795628058997000271387461244151096560307874046837005642558012008151773014364374225021102689942463456541810444776228386046608102172256980531241780810295166107642678685728679390927189611128905081033801758352007218231959699854197731372153796272551367957211534944977909936170225942356080574125993458657790624285833394727010355455882284189013579952592114057668486535008510403575071525630887753052869561843167744001213688474246392742964112004742801919638560388668190313601967125933663467138861366012167599993618994801434590098771595926384625678044332802553501618890531353124580147380027889787048200635459134473836396211761193881725590014970265719508741789729572965574283273660492861271204477880596768943962002523696432673573092357410959141385990273309555424317462382951842825290926616403480117571655675704368523206923749354277485142958880507217660578043425547758420462256722844576986643841619113830599257443407590980125731314722108101849339961285418788635131079260753645999298324411577382545399334949454668655816239336116594522789660164083987074714896545042018818307015444972649403834989509208486391215187755831444553251489750818318316360790503453841692626424897591981651059491091213773673955862635502955171593811747238371597544153386425305999597864305130679433272595064829775680097284867728213785657075692675889326483880970675530215228876995308405651931169836636581602006199740825412895552680359585517655485110364144223553436529166693624347375589070571714762443193704751914804615081310858789228727372769234692222101788373401935095436845048264989700271854297897279789245733117787895045873685770115933931232370204820399059398951290604932128843023046060116645359630072479755169591683016675941677699830273806322635271741043555734497800542858144860405675680635660829225555826683048795395147430759414221545545494112337988936956490570626942785945104679384240401379497296111959983233328357235561883734811078326001664058389945920728982825706303153285104332260386579632963791875398647593073046451145107180697857188988563676234487535306282639760194820798340388837464813340416332612356414094484756191200073596420057866823492030171458503137986822265284300339521778797150082338702376866125487380827828183518911639909667730170924988068237731673320069772361528562250803124214244076529846866563574258866199123441958140280319864242978157576858110049271001361105688170818054761425574310055186307777890018492532038171834677639726916364317944974515962742204951723182980535021214889773805873604751801613253118820353145355161621659571755530564804318041936248470399924234028463031601481998952756814859100306145476648605163365927859236708459037168808250459759845645223236326006488883425765306380039110921337650744385774134856782943309083474265246530111603691754278764434871850006055988803044458161587229310644050132576480750411720784344821920357832380457776194513737854731775233765743953602806678333382744224586023090931916430292794379837648260090466909978454427814474069562934998292613736311224052456718575627468654941800239027531292025022637944166648724554019709735982899351486245682546571303240282626966772731636555209298665314533000980517394292440056679093846550106962311803392461930792654221998621364465048958255347064883484025304091362684158765969605616658019594740855496577319776725735378817589242528124606150916332881410711585706067676274441524502535395857558653059986110580512837386087918106982385192084143336961779852351977366023077060343649410725306722797622524749633098928544547091940336722331872014104604657098839695626433893675335811173329805359293959069503337183266694455124828649827754166597011888728203357917698118347621295556913470691266470208679463284869100498797552637503106710933756183480180739471420993279204753025546613055881200689077410183857662576707809871550258409051398282345149327629923919809425623541352154796990759931746611853668529846504666151136791527566543520081855011073878714970403986525806514080352988529507954303207917723116086264047563228896347634067409396810406822243709796576219718688712598845966647707354232969730526379653414346140000688323082823862942867411214729082914128943724413636552251490823610456537574974098213153837002528021708809165455393857164657215734051015223786798069349274790413100350440568543132239884124897496150757614274492108413150882319321041005139083128746887725350424069655870227413784479982002716265896711527660644452035269729387908684664436034172575963885416341858547051590559823422478427629349698731411210893681276294649026440796097527101148273406283655675020946237739716917125573070617186594109326740223464941799325560837942493448703120978952352918857880736055354370857701075724772723826641066015337861306624472933382712315074305992603802050685096080298417278565341383985054725486062409914081904089299973342157039947798154146526313236538195424178780782352275423662438509517856206250531844339766030027856000456883411716443728804323856203044104086153129054665095912249317793660575844233971400191299432102031817023360777094376063979028113855825343387955503903586051757670413643347174919089306389731539838224122771788687135854646384636900557835428548736013818807272322249907461632412918651888846166627323241840382083006464581855460594515173317874552658082952609925979179077484517252770216445153128894176845617933099991266046210636560762932327801555540424529536442591420650600227125393689239643435337937294264126705506544035930821406099108959626209272127077364880914755508444547654321140430431892935683346169675416973272847837355729634552200867338435414909128060014759424519039990968556241642014622576871520416745121578594530223490311764368696163310902034655956579356115026536888544327086988324397978574422182796271601107830000100442965625377032209752336733048139737384073223264816449082726594872141014307930597726300409949181379531530402556378044085449883108115342657113750539853038983568376223235582419502520967198842612949471498146742834941810509467820495460288750247382919775144415830152001896979845513510861161423281982523711916169715826491557930477421808123948635131280621825550492333910037259204761641584669024683721060117624005525529959195083072009546740802210722444976318631117790214762224454801058740621880905813183671221150612374604048523171826811435183391217562174778248662096757840610053214606319740677864043122951616120978186027077666381386974342887126922467360020446138907421188629936743640554776241974376116139194423609083542463464616028983945793364685105058484773981447456971070183555817249230175593939716714288471195367280153559734713530533203899449550603999472103118804859164444371523982409873734183404309555333859244445979705210808387528727569439682099240396211918948951822086702697158902809731946068689114087255305719298360364473083619502602494054410061731976334772131174208495249219602662143421384513128068290893970586943154672168120719358168337731506929769690597186514375237165795934303686800590489372646755640600282725713716174727205904042122615217620200367589057369436711654409995390422526340381505401731130607591369219357792849651672272548961728919360480557227452335294675673239584773980078625515088944803916615300938419159235095548383943565826256347238973649448718634968495278606353570070449333601872341467952851288812484093111918189459741267430738963800600985903814382553645162024761776875819131471263148401884276338272352812112191703734180629062393680582020960151179003854894702463169547400483121058963231192407073331487485248431024042186124438400259377222495614601539348480138878823764808769105873314338223630179784152511005045864453508776608584814687730185706025559056042724092475878417039956577920466030223986936865789582683625076913170554216970934872059718474024621815853179416485302679486431588291833771699011759272510599331568881626364812286946041337573375754911241388947601295177875945245800382217836362541117272151601551683786231308232596361643627566467590875692030594530921530953043548268371975779831352490422251969675954010423852948884430867470038561924914230219964342289318524561718830284827282230964184836301754098316650419342358789917748050824933104838504911730953253861816684111211653628097082065939407172724598397528401172112017214645753340843522250993962107652598958517697694834986290477522132105237678037476239772318782015053381990583751993100172398944811177183940005253422834855105725336647992332263851241065166159894581442464145848549534873102943968399603875422780624701882464911200513045565659237882593381119934205289221762738385611442807938040833689745661557157527810350727409621216786897924382250180126153957147628641221517625340005378363806849504022848346355375046698329515605945323355464230670264934734824829119912417413560208495379379126215937772343265830676973927381074714974458904332252606713032240790758122072699659852402449513813771934873061195475719045185333447572561217470938784622717203421453670752767882877147192846100768294952219618797618954974950677103556043379300980485616547682351684221757131586557332798090058233020084768309017844704010793783580153972195923376476134890063639027191566260448741579968598487197208279088747247250241317631811072876144312150676295826568481334405376651952429572461274422051125894839310736279218661068358416423386283206770394561751829441264135946746130707336792428029992532882848973259845976713623835802964185042238582114330822738337977492120031288834364766206637804012234572697728524727619788427774099889239257815769791634067594368486774002486380735352886825609758215575427718226876979398349311109352027638287415184094255885630310281843032263438051328498541017834118363897373364600829090750968562255634989149107532333660637254076447120800328272145994508932602042338486622826697300377046736174421998754915385299213948997540707646339669220335496218455624953646465050870835685324955629784322916828453784645470515844479590402315917110222894980347096367695507003569451545949614822250545287430839399115524145350092512158343515843794595729418456768944633623953440236020988975087069548970023305171855251246056350558568460786177983859586987995857952496397276672805181033740864755171893361067644200795101465698442120858864692721733051200347515431843240316415799576142884218490225477955524023016188463456869536594471041513040127631330917943878554118371823370108207598598245445034143797532187179290176447195298422687250429300861996696174151578988950652301281404339756677423117540883093716306702008164502509470276471508406084799432531017883651457552940196795184797148302720709676757601191949666999742322335661504921308664109303897268556966789636204108032031628579889879679265181046611298060048424897945514096931932178262100383298424265902039050818592989775843136182296821306985979432822120985739403954217475777103653233041689552100212459313809268959890391813181158276979532278518791899981845767277261652796427347490564882178867024681323848452207030834228925907120306589104071748003076784302408037888367485481219992616957056603750624577882487894417865226871179314814730414256756168413319330913711155122444786498281911223523867008278125226057450935405751559800281423069807960928284046504675018944372124302554514478015226487159969001904320495897314557676255516251279876259674626178508400125431905606139829569367286476603414384435243388279411506772174431957352990163803011876692043811132276680839187195846051306418925290798158573312481749268586160710800869379969494137015167362086997764656319405364526533780012092799161782210935738324868366429228964392314187505693646534989237851731788264517593758933794035816284327376208317369136337057179046583607402578299338860583524412619969139589237131237191842553851217750761543726594973526564043102385377562359021526517770848673679058290117216168740423288949365022243205126745751245680778687087281386839499247207634840373075569826892476377943852576616118171591728423047606431402611309333411779672200799119699526379876098970628756189633906649027853469083601198170855753772595149053138140536871064856417040313766757076313258306469059858829264451679058535916078202126703636815292091246319368114086513118005654245013727715505113546442512118178515664254995111435610339895710658262222246939909672990172554987034588255656213996740109370086564419520156765001524338060370602704034200309491242562343678712094577351525659734603106778325687882619613080730383929787675093546627719835736058780695485756305487816654881023163179244335879537127508718285781385066359894542425548009392071847177514805168118243305364544670040892773068019195158776461435463297567120788256889811718218517186047530251532656178049522543558293553358497991220066453687521215887124314070772074645911487569536628507054194731553090377017048251169656169637263891480303086826417118494212211311631852075228275003679066697836192581838434320435143507416153576870920731638935030731319195901688888556649303425896631873834111731186052826893295576696586638254912490565721782888181794070754986457712475758827093270602254806752987116721286634154460121169460009716437688735624479724886527916829690723128675874784149452016636020936534630599171749016772022674599199197616571343868014624908380401268727285872107518332574713955080360666323231751396835485340034783345564358050180222635517456289477902570242296673231269241347285379197010942159019494190022610474874056221938145157068207539519014771445770453695023459544453415405735160381368151339451188008015132326295446117578702638753769554019323345636216511914198820420052964451379384293092277016556733417700764391830969800042664533150867879241441475721108669813610170209023842146838307682907241514252958435750816000373904532346944261974677921594888977584741359438958884141224945107448556586165262985506446077295132562405497833303189010142209670204362618670447019203864010644804104795611207117284420083583436435717446329674159598114344078801016013815045383455156384903320354716566382787341508365956013613420464328476600381924571967708432364632798572641993260470637825524994564057985765564471066120772930565052069465189237640574995670158148163361048441630610419590785540367585260509260157869624215398201724722212926932139678434123184251330009451335707311689874160810737010723121473673363388064758882147971231716365877704929597318844873359985199194007687697454437546520740956139818043637524072161036260732776044936054621589661903477867412226137584478046585933724076608213053983037767763646532649108239388724699097247108860742786872295525024275935424668755506837014610574256844113665936607755828936393816287176310438125256101079595454202443584240146944851608629559088927682359949755661002300146550059188828528733927593126582652671052206608241801800199208342299522636777646779692363133238644164786023220392089578191391635185331463629401537945262629553179025759732178925062581717545769853185228351210076687591557176502578600786802170310058161589100621705345698593675465724262073506618381963633986094707237589475236850068882463852249060279283425332627588957978505304747579919351810620245597796357624215911105966065326252135985898797494722468356437193584400016482659323561327642791501250437372787457977281202416375515957430957303250288710400038772206991621234963709087102038806135429166369490028038264931240392900472544046326039766562302148571014195340548076566318389077109985313443911715447432094786752149914371318036825096204152686973433413996441752418766187285812566704014858267438136685693319219775545709109906186042634865685173522967324152037380178789405339869263480570064782911535711683720938453721667185347517567157247362795662619245269306376376684289079091840333358812480321150567510754881746264226660312441067263506955758209739221970553863416751821924375677592269060838645785925608971335076378585259019943884158203907098806989037917447624224361659295103498495805812971888531042413930552407722190179627797573451192618212023378747876600812375588212386196779179181875110836920909747627181828962330304397997249338485751084131019449665807445808057515139300753255475993629795711027879345184082390074673237896168843847119976795559056046606260518728527674755557977979298975365992223016113338302896042899024799897764299878344727511576271426150433250127243206729946673665148072758751933832835760198884554873796368060641345748130836758926246622431119022084861454834166636926449116256822442876192404542357151329194803225588450019399638087696068706292769281917044801702026723496787341415981447242748605604232180232569275163966002880814013504643947729958731913480286522740352995278099547777089641026559606638507565531405243333283355344589332729808897480889797699548229288141101812291083858250082525106060454242739777517545600419221032544089440699252142995014784525310234554384009599738962219389260503521944528930573416613258600701879449523948308729927218348877723166157025614159186783037677187188727386611683035692936005053131906586969958787957581027411985678496915010681849814636036920224348132962502724093062162328973012882296684369825060457285069248504419382637674375704746052948590377203599927456761820297874423215832690103760505185261869544096338587495686112196640126189952632380009278283978566385612693488628844090235659416056363260467922362066429150905069103728959859245056721209224603578966202123945878265061499081198311678176938890473615768956882335660225228968958290899076759239231995432086582570406274194600054765815128129391361593126778197580738811094900603252952625864515802061761317929878842778277483298334713960765448055246219754503248350729943881747271360530997517800221398872872789228376382824692914248125474190346587942903007955643609643875205353876925988157019730555111989618634813394730157562407466845702237664927680073910576113175379724454687969001276682712723920903545235843222784272901336466018835493389955685730720769486582024920347887758821175197899617668285919222909518349068378810267749348621335119318865527881265722501838083362920721538898908545145204910676112775013487240996193112231015932204432434166274811158748557640535049717315432222037983214430544131176648799693935095156807310546926425950486259466864223375610644724974686058411521572681049487378371035812143024016497003531106812442122522772129686688641297637854408458998605717163352741623038853833362271511070510919693461058815190772649905017790466560950682762292720893870198632718334627067716709150298118471229818485239649942509238528152954355743685463182634641044955976983301057351075712691205989447684108667964393983825635265818939009595831568447672274272724481818781609104540182444165653063645773819938325169529976813493102153013138205121566015456209822917635486594794383890626918963278624529031894237448600315886586061979928653003523791222232558119494777213168881400129349859105910732024487286046253818235311189858857221221196553099290734932332920600137735284696596600959896644163376806191325817858213768770121907402917346558818264825787859010194492971578170437941215337533959710072227463689797021228033553326705604267419259285619511571187228900210351887121028561143382391022059934727746025174193435866898476465000510276351749363897948979385560320790476255910133362240337211153574600357456813785679539602728417156840210828263198907441420684009583461772228214072385045459763234357887130791296716385809685590856276676750221794653030283500727169096902259821693222826441308465374502961503056277520060190920910824930882922973899639744279624392742933383236571828698628118543336361911772611588897056570405790346546297371069279373554372217200260440596113242341694649148539427641108036093159109232051151340549771989478729250998491487395892297892860007734491142525582518042094956933659953118039733219978061671576345355676581153391759836593727529456586078220208711426792300424899618803134125939014910831321240366555383250808703082456589488653615010265717984296134397961675818403346018546075933557608588910368418225399899256964759484082741674687493610856195593704334453490701073628153741645501506781772885274041273390046230268057038303409257367747296270320386245931000813856997926030416763158898022105542002329132753393956556745235327909994150491770832881140715536334816133696189154407410128374635583812587512642902189887507378325175450836217607692653831713420022789351900370053703416252383559556692864932199485975292394584100872786390041665234972053679098527760553942438537567397120379335083263583554712188768756560607728559772355635787542702052112942309634411093114648195444574036019105348791227057135685079831102952725764780098614553735640664933590677788045399486773704279567984273576101383238516605442940145581091028753370296865993136289209584851385533387081284075109935924432634141276326956617978458789765953784263376835369891603904644344584316071908907423470528932349493274654354866699381432300144615430754296142784336235559724786566009851355510511770292263149139282964481315361705397896504913660607898931999676378246862647890642528622163618716999266848773799795582963712988867044244032326888378738478096982229548996956762132892143226167552232707243423122439261000848412306812217379711191142776947778263961720952157358155066430276254313291534216645015412185025667230152790017753577990602809363465269125519600880353981004145980452893677498367152066100564719255366969575639520454463236753492530433923456278180200714949154818320743383575646538438808396474798724664186129205836603693343051291739330362771934231598267102843789151014624866572344047362821857639927411931919289745422726552739778375596691425575988912041567300012459435837799931731785698107691391962987177943698429627071949270515269536474530928678788909974722703466189082995247012117549099385978471618355185704520330630378451975675045203374091661933119444706665263355774607956929492634509481362211997442138836472406272226269525402088387918806512411290643382641916727093275656853259911532692727834730251895058073950034946838190244433473195391187448598291812304941982909164060432520898673345862787744114807581861530042371226413723417539549904601820626378413593324489262761239758226299435849873548011306551600952123598883141274938178944292182250433357307593636385744277733900465506151069774504996209422214894223213496294942682251514973721847978146880711129397392446194052803131153204862040347602983709449326403233841151329711852615245553717728635133106424251683562256971068307129691401477187538278239510159694102477785853103064042726405363903353084985850010295809494046592973998990221499990567505750969579867988056901730281277660700899426343487779776139419605090861163705569103742720838335466889959724985537145564434058783018764959457011964856576995025993045057414379929728306720224482548306873984188076157187199245170635299482628321096457271694033960978869718450160362776484765094322298616270364776616262898856866580195830838940491978480986263195545695691071223797107224405816317175607319843916064569752528978169547248907030136211674233657254252419586677315103016025526382587342876127815235909033742833753794609033344940766972936294388837303740590050945891999570100505626070017746956050053853523736784156932217855906165938103719677761455947537565756122162574639894369413923342571023401507808641384577232684611918715359372003952641139077641304540906694718892451331341475844966857748280815267372221058494315767584162080145593449658737644483044296690097545289203163532664305666603414066613299093348000120733608953735349908224238754022507227178382577760750622730739412477958934642353077940831129998877199067879600426894900517212619073005162292486237274028103045579915005675522740933097123500079994898634464755010718042761908998507087035167195851587494033141297829075959921185804616777033924053969035410803458744814331038969554768771919870875783445379617380701385908105634582580393190971621887589208857802313990877531914210559708541617046555531727797990994069911107566553223635569479055379677692308635864986470907406922246417911665443308285110435971009672653643189622085094745979300131112833076901978977308264431042717898637351048265366883933509163072281557647880642656982277645263987154841782759105203391786266145986736591065678990517800065905361469066603695739520152541669640572191779229877238593293145065684736726103326973576207387351294926053415793890835877408640106987657573062689052075700603542278842319878360389415822406899539266328391126965149420928653608298766847125555179542671574372890025762171374297895075714636532489649331334782076522382290894638269358148701372075124451225108279264399088592867650249051712429827223132941662717142833948150168531175470376308148207091644945172991031038126951619092673266299410049025895267382391094914301710268398317866561500650158635889592135972218756075327516534610246008245227378097123464311070691359080556289611978691886569085734800734279365111729012955414982564497685638342435038030921793046092567193209933484951381732304963438381756211334138182762554826382050150053770615115267826152351833515281438933716369292954439553202845684855842864379495233889908718549193566850880492749227380317243091513836125786134341250161367882297283014447391501449187703442298288181290177514678558558682426144175389081385800767615721783416664504841884696439349806113752383596137291529192215189609499335597964974391708247259730988702411607332455981526272339773843825349442144640631498694883771866573966558301095253873594091755640117482466653902145938169080711199983892114994398705832463488839329487881880084743006586764264982034328390454445613296720460012727340078247630500304772237956407300080255092171281173316429444480486412815684564806431920955933840401047671185292625623387591867856955537763617690520260836144015586089760723187528222027888454702472879545728799964680496880933822410625252878606696771207565345531778145818656525963205556823605168252698288264586596039997918386892508583350556022720529909278486801787686995010522062771289233866446456195298525570802265502126935786144323095243651163419759038286550381329091487811495173182119672454118742430604007299869050095478014849285820076051077651286060969838554745828180512589001021836671169966518224270946620420628822634797271901890472172026184573864070892287779929790153095828876189437576745090206253772856284280859569139840184987189382497973050507364475539797897225601402843605244156273207957147346367874454464374049784890755578035723744951774305678897195368868152103949645803070708970580125145964470109116701543628523244775894513504652747455548169909994740061768958887673700462038936515294546766672404477919889879191725319757538760620225965150706943173208428872788357426986356968774023689931942827181004968464949421895074853476620439291532065766122474528814815551640492124822681898552186304281759980885842476913994817854756031138935782038366562979233054384055082841208223207039846179489427610369497048697465709622231160653245470064905585705838489421197122315625248470549401528603110302220515742225158808819244103191455346762200022508621704167451889779431222705550880563228981900700031879229827559541205951359731349846545967903067145528506779966521863828731491727491708513803770807463434534596899017004807173276515522659391521019891703968652246653881970064007026778427215763855979362396092541343674950755588860760683009667080556254125946721946324333127927975683386978184934167900703857301028208853444821742617768446161636114614825541478920811241471392075008861434373380354865618476655685364919839765323903996006982749466225468928260604611074408275095947257192145686590788174669988149816545506136052277915421902086792313826427096345992960094021192500576616950186447444677560119708599725606669621333160708263746910331989265270448988656583926914417732692643032553157963752491306335513711307723553075823272452236667932041600590682649061438359573875641399554358606950440020198101640798534069044662343791511275491820684970890249419655040643910603857250358916223220080553414752567423150513959080483837778983019344258008831268543449935915631888562985885839040428230497499239474392957415861954545113199268709624925056637689163466307214538630863614975094350286362901633419040214252315510576761843519004062105879530645729925900539604914082056242710241048636549617073973187623230322069951478028704444726979883337539499294828753949115474681874995732435860349925532769931771830308308024572222024429984263095794034135286439306097877531847705165601470542444660891285954009925119648191547571114733399133279189200034232602652098208155221823365353893240878842130469608546362599453517022548049102089608679166108470658804208096940938200863433435271770339544017680333075704559785810421598467950283996742208909296005444513582899837034847739318395652492802540804647544011647582031675547611482439737977123841207492806912341676709865528223006348474118989523730826759100973851156177598960374856124197007010095548744049680456233619659541506406868324207839371735256010142062372260418615101812237378064317861775328777638721036394541467209107713389188991211483478854827926734324377634624420425832758708993596126705595859062519567622288631831157175022274518355491495885185902383320230229365758991295768481289960338858151692302661022618545483958790148212037125024081511843653575451899713918531853972804167396257960473200745455603820621898509434481647683017090098296836159427409625393059309620085505639627031614570775078804634020820079719034619977825809936425215256617127622363408757380517270932983970459868577917785901272875722468666860844717291387663003951704344891756422820386020404278952892748962687488060082758560281256791649161569136687032405344798809886400806818522219298919543810434586492777684124329084528456168678712568259108369742900386122591483587639669745921629953927180147547669000962221905033173300815549752820125214111798255448543213700098401306048901582572850876762939856929352726841283233950236692964946341867723795266913123630089582780191814326822169219465336411330993438632191063253499219252189175102631053855889990418377683533774772492190506762307317867450214686502877518697959534368611027210535968669047203699884853621841240044786187009201443714435267108297596439004493994678681995367212380295846972049568444576778318763586478206188079039251137634914580205581188468334259449237495330191105311804111931559763787430134059302515697519064726504888125642008194635873780792664689908852999158349660645980730223074822692545438238053674045819986347466469844362238761571474867781409196353557455015366365020745771189677824052717128644120146718036851126959513094156729710337515055292993364557146110309475169992631049845298301103413620689691207994737264050502482426935331609896356420027975814432303508155525838871131343162780682191225183141175497884650213371552375828925979019629587939658030382031116541624135041119602435782586115864827020599238227012744471306947843049774101302553392157853977437801385025784464432491003032362890899752791138612131888635394460807110470867570021852146495755602765413379678515866914694296835351448220021117169115862901355407409190560649692042407171402037122459154278483728442422441546089220572708512424051827898644840736128794985490659805141223293707125157918417135231259774687687370273043766963270132095524721676086728843850606188285188277461910905045609250945954781468320333208191413024120269444841211162259493416887338339869200310286807596909192879872544250921462445318888536814935527478686737641335287585187565615969310793954937490765323727453478128253845462519652944279934710006165608061837904149209468442156056806751399812331056510522610826894445416997917734587186635015290565858610971065835420734908267651729489877846854597375923169647959898875571554261509585359031948356023008374534974122173662259510225332593857628572811339174894514302440319975982651880205439452471608311643823053998149566865213575860711349583048810978223811875395942883772171136086252431707839904205301615394756132837249104620186056571181301178742297076930490665039315864981851910044410411619957992163299055882821576371168796150137257123223630415851014157116582065733910328012032463250971010471686165398650455687971644007089261725131425917089354841866209339104239594302274498443916728737650951305061027941751704307796670236139026562924857777959063857123355560041198610269399472520742674999121076250660802380818165579493174919831750872411192518750794048848590709196284384769454431910753456771251716056807239697048473475450925717474603549158745927173677106912435283612213734584459220474172383956297673145797479003052966567054717958626625195195308343562871977094175077939626160469264340113119417645899144209368282990169819123400557537325865212644765796561183951224656880994044105626293180113404177383288207083636568590483675837328326022953699853292085528670021470448580082276301473481493486278615336294647878345236791458637507957314685277980114112476486091818442375729882873468443419415438144698214929578033464352321236980303255300754301472525382632443258612161208495327208997815413854020650020662177599376000889490305321786421726930960113231012204909486326187826774495928279504958692097969517211966185370858625726236392237021669210862767615477561586556853900694825228202060413089733320607544368848123078309143269636983933677780250689234182014891499529399796644852007084884206597976524646946407816693289812044728357280718983928758718620426554980227697944383059618205504470439833956636614587129721750594025924697834026687280957839683387613963309399487928145746990177126863582918143878300323089736456359261297919687750062280996219427766808652096902847533593786616273763418799449829988698845739185445153109754688163417747421778076353084873556540784804449641937067134068298789558964397392479261573146830943892018791498631999940475929220346926552890436315331927650418078619233035145631522737732198104674902460938721894136417033247453680365346658053015297484871725197528619223803972799684017553224314313704605195740533320887928933598247183418662668444731622154748909970399757120868102720484102621780306236998008293061645414624085676219214352598453606094728792908450071165254042000430349276830092681206119357173054263010789345082566331819018168820300543829333406186804889457325338469318225206648643611763155750758894209324118519844760180891750133474713915026259774060359941625700087496675072278860205579028614047262789497925887967866919072767921935067576221650204199174664321685066837200345445469974307480505120987681074979028911769778574218031035090699203732432873201953021327918323446571668139067173179752569302867510637013812210532173130238043822301104261186560496628823542890836505756356767161512628128873647889835018966414773220462460693168558358235976729454488450925439818257048923093659755892087957643009902584884421583733642231907240876605440374581367405884437521739182551950160370044803408159403806673742572056751782771396823607554210719992205376823870612133266207112787529304761560866349125002403947983892135655771545782054771455155008047379756958168162251940845773951651076973863592402997531339292941453410541353601808851868295401967073673050310878510045204237322115275533231393697196785939230215963850718785574777175275489728481705486291940898375811990514165864525150000418730289392609182784752209516164652372706171321032788348981958616232415524490866743556126173945899605696030140849796545747731166465917037687291284587699014835341717701404477163362192927555662151774908084456379348805608043397436803355666798413959291034361746431464175736796504388473227599048072717439854965823964906604221004134920134237222457230962985854668971938967606833406983156956649491836108684261451974290762077852680578788391480781310923599373183695776359590359223262945133210825708871269855958442130072352413925494407397018885089350761583553529965724861617476360126489176773181845967046862945068762604821182912648027034660511379267478640150228816495265820024268137499443831403084671697091081821585693030377604364583985813982673180977837090281296272507929792411134931345825656051121168848021042386369932121567020588662712621889756088990120347703081526464358094603940265945111723041234737607912835072134311261470894141773503307279889895820678685803422337529758119077217523156023837540488349752586619307102895476329119165146205144708911459569880559654767147643365167606396757326745020130790294048625568278974500854746676430584478043426110513369524281269171336215268399947109496832810605602123710606503250366608381299187460761151952611473633656405724373763265954507758970541352201218863696388844911306650349931364885554593446225274051090880739797736267144747405728418843305543505425062422579444442596469113709997077042426518419271477915197778064528156065153983119030968493555422535073600308497450522069757877632772209549865239699385654092770620259404012223851090118429745453625599652485039776595193840540818610130053437621273138231420818903100898152163700067502322731649781279893958854796383927321321152066586682132644191876735125388468614748669851075166849965553581605882504411428555483586918145044925319955226166835595843861180506576103822300676666368054960022690376810393019657099537773055294764771103822684947435163898842195406086607902740476404234017904228787168256512492805676264421822498038152571490523391151467494827875148794867870429398074219886321576752877180259986380160225046088311592365797727439260747053669834237210990175255540014705631370788143304096270875381998656183627578530962376684076727892680615760003880319240366413496317549115238530312432758606242906960798106019931236731392413615519749255293029911849231664162655071474937488139885435000490427997956452260600898427701503215074525615792333572425741086185585027991410259166561742106813559972796180120281685256068434913337545394322406052529992701871248463174146198034227058016786849243744615758003960306301358113140964342191719418647753139830420138430774732884617845229220641139231733678944212442818432871717325001762755351691253623730329712571255141792564421402102862986655744213512255558579018474001494869033850557181933188861025474592968223559313070018146018323711899329267067391283062978768537567184252267634750341987014090583584949724933356097310506401036987879860467859551648225052444327988188206560170362070975242899941877496450610890529221531633426586526900272819850716933802838007823437522315318062557893858100829419917409718973949176201685951055250463579844390984740573235397118818691468693130210456587593352471390093013962974019086346088863927282067430061929212226557748317187450816699583044482484630745520662654899365560082000712092783540762459066353928072321108984858441627620280332626207163277333726683592421702871583235765579081733749244977693636962766997054247753885264331414193521384785680448487430939625540605587546062104769137664152718839036912813529872977084001884866737398339735246669014833889551578113475401921442942449231384247653503008015040741752151697387389616513630037446619322058360407637356078167132579334599478443437610534285584822050814951177243912528638270191849090123685376302764895370371955079209966144624865312292357446459839256721780320459826228648658986905584307982108867404221276019152819240310686405620184517645714549906583896251623300912411125417443665936139421500538363837991215695287818003528817731881163585098715517640734686708092972157475812049648217906508918833928913312274008886373202106935216918788469118286722834811508675472418957338111518200649983106007387023140991486413790840992208940447792233620429599282817255074668292195231600826550507783606507722864144410024328845689644843527461239389468344768848679894405096040009128933056061514578810584273563612087240649092204015288312665097264421802541214504470589637029136496294410053065276729459680244473727147399250122743285144923549750211903392361779737333275964613217906470426763080415054867446164944131234854732219273473548135847779015794827721777996252099939362772015200831548034910938474265540564618418470806574537796091975387783913234959785132534128511647251033265033648757534145871325654854038904003450391159250921572274805271545252568601875723873168770510886531450448771285360558636173850653681595633187261148670864292194546362029846718815753392404682865185514890340437764616575760751789905128332628217768835929866318612984734662927458562025368853881177584009200584170719123969266337134260071340000568836476819545142993910345337949832018728772457499452228134030741711462553910981854996855732267941665839753463009711977299548606146591358945836672638206877726883126604758112834803942663393091812932135719680261932300746634278416891957275428271358778981194963319169926501558838841807412464768546346483965693511014616139278552835046947557984001920197855385479914239804026509357525674234589434356275209535542981110224574498245874821920431349516574138653995863382667806413122626365223615543079219574925034277780500779557244093480840063342605558956844864049221186690007706990105324885659605944480679564731238776300978245514515742672719483428361676092510960597717288172844594034895188341168708557395887952268538004233647245112028313491247733440416178666165046015246070797040713303390991054165735564978860009199314145271739132871034509917131414835105342428184682129168834511809888720225925087372435283184994234763276484639238348483297330602754048691424481872309454070674291366535597399027015600677496815659551264514977963774202174342527262858479334840629535569213840316714062256194248464849407863514708784760413419339830453237655203480482328264568230608104447652625913952726262713438464407239913992490087376348864930535033037409234306786797278370253360963443061209284573898877903873813111074037679869800258257495298188507472863465138521359174286782069744066669331882845578415415291550132482825127525826896645441624910539409329123508972998529452564833105799608026220897234873395730308894621752828069741380294450361305517947244479576566195099214004989105623392797809441504424505603030323322918003274568393632307451102272710517190592059498116630958138623390299512594241428823169791877595045659148221919426302307683591713801446877802444441861524025161600514090068152335185963669908626762266750287461979724774169876132147070976378432979937868046364681924846286149495541673307913895439108588461817383720308227852628666373687649471694349166260964690275955454643034339187990939298711431617401348027557074643047605725109306900167288235619635055363994396874057928334152943131576370026652960371668990005598228421322580357067810207119076500770434284745438268309739147352259881946938572318582539784323938147113037612646734013168383806084679075909936113913604999576052014585875201171672643525550716682368784332580987820163253395725767671512014767061166841554577097180209261226115362711903757907386565904741611917176343121545133846915277872513807069308829013572000987190952400680738060690566464612078791673663669752636031982939350927323959541629639644196958601624784450694775192159344189165190328470434618496937358481398180248152709883129283756411832948592130024716973762994750926208022262282054034107177785957923925812810243643889869369622782800659445908265837558236417586164869361043746950072066251898706490371409091262286905160058155149712751194006743353759697079421778517333765317218518277126577775730533753517034163774726369675158201224143762401186773239666648770042139176792321008698011144105594206058631239310655768553973112182676339684593066631110494571573027795597710388693747167887905923809305102401403755664630844215583874174844944273322431688458656894994156493842627588868004680037591458394681985146631493530588728971363577060978054578684382240941521702625966388010852474122344901722592226612777881976072029891519244150142328862364465095676399839043027731473742170523540738831533739783454113125198872431511847034304912532550274454510561900174788352674108026294478475225358774450871971648510100275817262736648669629381037395771218887557816328186114564738445546932072553449087120566700803709622969544395764721215060300159816925021709203554377471805629753793117040519752580221859834946055922807910844233822968907539832327897790510498447223625551034227925960170562510974304680860878569549768286828978542972787902715108463014003758793889486768909975381903820465361481671656670551445342870678644435760407632984348154841436210412929555260992812504268889360117218494318080884508224320217974555595885441931662694832328482770024354954646715894753193820004274794639533117548174424195996340485869400111532989454008016715586872612550894615988857050367298805118060082561798194899671228324903431256643434114645723246915092306121860483877581479173895069446182828561426932273270950831061093423196315201772871549779803479922313600395304994430020406803357422006843603024376141463639018478437226311708286958283445312773172684539339726923818145088308749137854315002481026638577736821573181859889210709721259132650205984041168920090356808110265292663438119745150941470432386341815331036998599801514099017208326918784168674132107742279662570613611938770033050087944203537375997750332634484016478568656426485886347791208567759251684832431380025929389721422083618315930780053063122590999866743221969587751779782398146162548610974649463512596139427713129976025188236664771387744402462163457975025291633757758285748542869926026242339635881812685126555931207939901015056960721794197736786092241570697350170133429907840697135800357309416338252110030366732136085350041867542951458035711668044654587438958520154597761377118532330043657196033315495559021800765863498602334825195088756410526883787685155805677926838728241927479061354631967632871301947896467163392800034108300667442844043063451913672515705619309649852666181095852195471369540190489252164160526597417092823138867706279104490927488674419741653989143210830364490802056332649440367269431183268044342835349655556785367879835561355706605328534185853577851352720798275554276203609896908667354293905142744936226736393440519472062654251505421962675806529410440484458568860569566044916077904605537305097939669506827249153811712626960320616770594727033662850154573872171951297297467371419220037622082378534984906662300857842005417549280719570668203229257157702042989923738326554785797307827194523678507553369812469608999871393588049649436704765653628665724152887150413950712353775203175122128047029981238610650385436015639905041760634719554550785573237064659082716775349953886649451946962221131533484978875457693592276756320756663570208254332815878214528582262382984372437348585882351995602974294028223517587304483509486766922645720389251276488549703247025988205363168607859619013064738076145892997207168391887734883195978822120307202805704766440788977008715255305116217826618300989450125600012951386580790515916964573107803453965800077564725394989044731129250242761280064463054440838518757625966582379961520107964402279311068733472868458482586994097709913958689663084108837027721960680181518498151853889832692026062543787682864542841766524232843861835066762512750630694966444151195850013151743350630999016856304305241491674504265297436396868378509565658380776699956233148378537791437703788683938834197953942325572372633479543795957799912723713493244905147105886892918054684662848605453984326064039295073507808792813326359689958313251464594364601995871139749178038676548621751970840088195778739927732584748160640557712579827621728203120405232769315441104205951746930731569962785629599635839674913408111958159537859947460152110901338270916916324955451801544171579220123375084530567506334061012068038582864165557118414310442681210774143241635225722802064632645111024656240306892569040577930538032069897616547061970447899494640391253394985780359548002038464033134420390349446590568771339565636136966547433700083484665634611116219418014910218470157823865073373775500899787455514296337153589559900767080736827853325842839686372512070374694953040942761947165929908952371561444460219016196202991816533712974215586210672132288497316955156097234515995125771644541720302950815051352863830563793687489983999039896571921786480712355184228898860072695884545847516340336736723307412945938022912043465789385144274523486510829964327963761861500925228331215320965743910164904946541900011824795432424863019525890444893232531213640428288036133364976417171202403950925625778484655124852500424809046485499965130074846156098152682409158126839513117900432057082083294263466919559497570961599547385413798760694912853874886052977654547026722809223137547327482811146043939991169899888348844585371298398022829976909289115620473213971302813695289162929003481363658135038940513948495000220682899653235269749565137568709755906413654446772496794031539008503191719587013492278828595055868391910726174861838504758772902756600608858705324949362424598339893704155278063476087419383545080376645171310938994927478743327929849917268826745372655399546282189820391231811284096102738411818600523557436416321684006400380359324813045326225610032238547927030872964272146861565229792758362026892243519376878140431000616412210020104097204128194480288785300116172127583997131639495401798076678202436928605839708415444508375137582318074117249409395834728878179157146472626296879131727539243555549836797868291874352576981382958331227200661364134453506129928188972476375667159894964616238942212619000095393366516376050826471130037413227924236452151315481850417100732291031517298680639928100048004780458575604571440778008210621409642111885952869981226848663658045405734719865540229800075643785151467858801091786097003997112092798480715087275581808387234225970237561355939448668428873016892842327128502309235344824659114134432786288397771717511698587772764235683657629375507397717012573188834539656093054504410264164303082996063267987372432207002566926323069019656088036178009034394961475418846275189244508308258855571393420585090121763105326687438841135866532733277153459963861223199833425884400978809195708804278048993680361217368694304635763907503881024705023903238621211326043854670671255710849310883423411619897426281618230675440276717659153514043489460692074563622040919747088292963333721869843966897298725659951588611332919310211049038059195943462693658198934738952326164597110642988106598075017222388228345056053419837095194157066999658790358520288133127743076860886156659629540795842446461889127438564070400789745343824061734682592297115831256987328517217838452672916939270527773835917456609018112215700561346877363205677075978373836448752904769363152224003626796239840097046172313515388698632020831154515921236471284293952709504660851823005738624756530540642966613115372716108852279336671034633934632325863931491924939474755064551741410146857376249385237842482536708562433999804280249672615056871389510539174363740236551965049084866821998504811423246994550536328442118326968679378769627821171384512739688058851433266364271535021631932438092028949519112543235521535136067609439997997531904391554432603513549365205213172052619627325630845342963338118617428444652615281006952982157790244415151567963984398338303320642995970149935594747126747364655363113107848261907778268443252916132728392507416053530941342633143224829055316330922201375779150388758215845930171709079846444816671811600559277197698753847116111246627806809796215244314847732430619114420308413108630117712423498044952791799730206642556597981126034089178999876025347023759690682357940299528024173558274094226365035355839302064145329822664608684905897004986647632537112324310429768950262109498667844670574256773215310316014393249254384525045585942848327086124711583818742843907280008733097944096424910923249129324940992757961564308568289768422567781699860334015438263252054739937890076760874877655430441175908951574831717710850831863297419824210243524263670302356735558316429642279266903777413893643681869348710533405002913500006206141456627699265618484002786302599727265378309297723561805676658319483205905923428001122901491703941052866499436488374153923583373695329111725472699659484384263817971964955326312516518310133182841146942230013961819885100122482152208238022041079262689909942460393676549359205129799546853408592096878793622225994655146339653312070114542903929553180127391111233138639569551501498609213134747232769800335683702789177106568784051265385225299376613563382077745109019002551485410577033314452783231797848683302962588524933120189899299281355413717148952589129608337259429510846416361722565094719862305796713836561140185477333527281871326837234041609994406985891575089589506812880311528649185345130265600943053782953528818632568257205198715213477109664980723101350327454253900486864613757107983429223789120907567232953223259933299067083921765462501791740770938387808358407860898295525837555856733223056219048101533069705844180144671979154457864229416607113124337620269103298254134359574409136203997055193767848236305630274925832665505609434360531797962811360870193221778222244131675993438873690152030335863478734222934756655630854564023950607075641620982041364476982537224767438974345191091873267214672598472384405909223519568598061503263170824121519781135690961546682650373360870248000606121400812311946596391024569055416083443597529813428609412127396794519159316287536173235174832834969679244806991127991701868634590452187878600786869973656528423220455549657923105098755906475906394911130215038255472730336636170407287090340082905790065805322885155018360678790296650598435503711279996256022574270744330106817139553620676865163094332544742358649330443994134346448284097655010822551659474984885058602315133251138949253042845769020641082583294178987514924540408013168497924117350386786230322382331570212850785473499535740404705280258438282553407659848015021116050137321947240958517493863222358674825383241935651989077950217600029039825811505682590307869017774636492452043232285536271005066322842803443257853704698213722103077816106369506387253129017858861305518137505423390457592844261942453304828196721792520802889890835240611031690363842576420178032160194631909391872529697643084175601779662282871517035911401087732140319928951098301531205708140271248246014496858029342119635948182690108876593535253360390932465967044937953807145793411302147806307256737333056363670185412153997342134818130744966066910395153129429843182831131580571064148868196382660508971006348832503815855347720475785234883853765628671466566386805984455888189992497940634743483091906092019974118146337049223727655722815077164724900661713595707591947673402730380310183575838449141384767041637390955896126347634369863816032141302976618654474503196291512043775202274232688547940738803649407099000959617253220606109108952058357252562043852601773508530310227624295018962850270731930690939939274989006825882450899436870742073113701223346400639427327230355768488124121838271933158805234747553111777780279679374242013418612851538185362103530566900343895624492676782538748767768592254413647838776901699886096120288851556156513220268736751076315539218863408670650065433461850154213979847994745397657437168050664330786451080468206227111550795935350977283980967406341209999519259342558742085534974127767154334789599976425068416803051799350371140816948752487844785818243380789635462264171024569664719547739161381125564608565510883879349801693801702389672374174189628023623363205503104151027881115105300477521041318169718561060634930464422618512339617417205167201341131647030074874704996335331379482924436500510903281441361524710194335715173373675513550722805982269798259975390738228421660890082130497844607520492220469436025346763658930777634641847718650721003266879442747400618987449361350207692474567169928179281666139570566136897196145243527268925967541606605664164459510367720378296995289976739681355560438382112962405621357167645965983502438596518900244851494596805184966214059297871229141918707299266957943384349162794197211053390480281955109715776196936537108663517948012681756009230979079392902911991293151945434977773043926367622398085928417260932269074610244542223745603467163204112579467083693664038618134549684977025381173038055854278739181152917010200239964222806419386942158796598978449925053869621457269014701763442207009010353180926337696627701844341522161652682926958334971432554287892998158694320632338764964607371520408249512068961979580583830758803625095851964288821532695897465973903435292253105876236376516411370539440062158678215762273088131864287112123619740602258408985610490831568952790012410794773463565004058208642838734357842929293878701272994525030269994788057797892932231588520250502940110988597266064879489642465469900928655705784677835492662467084662782867203813763810088089807993421293525265565824337671164840684502373896541305670842484226036676740975220152393973487547675077528424884482306497333688741946513704670540498409662385448709443339892955614915660752942796803931087215819748871906374439922628724540752113068824237238507744336448484923238407591095854163595197941155369366329351668829498974054494444323704214324483927639008632464006142702445250916554135776150842090228052809497181028484358597459135470738412921266734232038444563860823837085958201431986989139298666385325976143342745637298344498607981505499255811257545390104484806703557326027254965763856616136534649116383698670228468115357998224718132378669200868994150147117827494850703189207678595043919207537315317333976798551680715319947873180732259678271018848436851978922140276166764824708190253856866006887965121002290977610101458971014684122995390017831460042445646711534237340794120253741695860849781183170971428975765622363721318366941980407140406233206565688872524374845103594278552824337153986532278940857564645358036403504815679516966662665709212412122106758348009392401709006017830538490464250270217179471690150024094166025905273735061201246193874706558370623485705221651029509285007870209497374425685559710667381624433712845258695072877097983313068049720948303881726865180364661803380343253981458716938652614005957992708145200152610690865197029897177964022422327116740627773237854209155614350063339170698232527180349827636869569644811232353400427659810735107697880870177272134851457330639635417968460534723913669917007075240309814186017432938204692057259698149692592096492330623308986790027686259676561334488348795609895383400607862418946934944600504569703536894208375943604109105373746917083453557940238797357491486110058062878102580980201947558140886311273292038944339185962615406081068000297569001074921196300170731096300208604898609199281871628242933888978234098818769971565387683697910413172798303194536335444153903529972628906272901047975074136998961357585499045067593257737349647066453470086497067709516737102652392383022783698907833244785002921041722258592231371762272427416298336845473033610963179084499905863439826323342063354186758758724755992892043078771729678019906424089921673556795639111930457642598824705470757687279213796377876708224738077414649372632296673235031899096320686782877851161750272492898755732819507475302902405673220135202263694616335508758163739368710437078330500879622921001370392521737456874046976957756460715312110903909741829176239246767513328558556922554258440779426109257349312638356968385848001304557251510760803688020848436042453521270588175733224404928981412783102763933030758699286331709512917083885821295339189939682608310215743092792320608536172103558414204903746545093654837820545831138798875211856173424957734424078451563033399097609846611712148434121918072288129170636423674332754910031268271903852928674966021821163348817119777683468133516156761224036205282530021410106213558736948894258521673528781386732395184182152869492293577206949935627957286741217891283309421505330245202694504915774847479420015861898357638348039918575818769692347680749355653321426010012888185882684324108183770274526446059635605874372799053156899384013794902020753743692327387569927549119702327059447716434127507916066336145992248202058187817516340946100820492821246697396512982565203934559392212817684589927492020198220527111868292516477132924881281169375816224699926871922041881072078008297865923366049159557305300927776982486640919214172076898317476733130261201259093808364134656187477980300044139652983773578232408653635072300232792519774063263008681256614608097323813776143196335131272979716454688039780887806270349493914154412931835159724576241791120573585965571275844013203428850824036306421324813041507712122624495983238210775520459240613655825428156854932376482886520740614780039377619449637721637317970107924698586034877476253934402577139486217870672809950473929028525206196685624138329737389941623263651703436047535973036493949054290623497785986194630286526687894407057225513684930382457417340426848755978919962609552836073369761070193468759323830211763125962620716128367948877811776656006879845502079427251109083506231610162765776582734357459026366159656494503951392213573836751787047932535022260592085530235124572160379641801468143509999199488606242830886676111782750851215960460558349467775951824123301452933900898689595362691698227721593299668971319200284080676182239520809554458313103937334315770550807384866742224507186446516127869053050778213342914789749450156631978766046035321447341629698956529082906461021206612619423238280020735233981044513314199466134038215126493585286602156313327551769161889551532419839688037840723033389499610683465103467940954790421563970412688396290383273387608593868321546305205075942425018403443176223084481549424884179952331600214359175956503635726578320600987632959585977186291283315040139927675680726187448804307172856313487503260382682485576803055240500436444484465347934280683046682504415795324265837627498361139207717900176061263463541109399324677926324334874749341295201555171907721790631489410967912663854053357589421628038254402987030148256068195027770454976718013740781441169502410659177622514245047859633067672032376184583954173507911873937762987593201601976524782977734489754986219593285759537854464338386820214562985983874817200285851409555541302550873065281093077049454222157873229267252772223591876899767975317745637086909114732452765288556781546723849408962475379665000682978272846784597049223131917107748749312191492884569384797741600318562865302083040251332525736098789931816250915556602035344595067750585570306443732056829166616670006753145366934714010563538307139518827160622623285499233053213267839282607877987787844145373210951946260466826890340445611458671864936280533434638886186538953037026032792859523983996633594797185527686672099588810239808411849758196585903354230518286480353282600144804869508859856936863871707123886551208126615798980809693326337513319295050930866672155930622492753187645116657889637189824502229825311502762529478788857519588174056183442835052110120567120122914822231841729785774462434009900200848396467683702558048620505928296150223601131446876595248157715652829541050987221843353004409814658869369479576119099566812029525195944345866395510169109300256212766338027058520130288562666483844740327595469648678676312570716081981607522531847702208885409212069146446188815813439389342805145593936291694730821525641460890885943927844043989354786565452934904234692204697506544738895360931829939738739290343429361306951351384028081923586136382008922118982490366788023192088892501719664327001162854858535156706598596658006156037225863815026898072246786199340256495845596983786595947356511610424599702052064247794799179589720189824475623239978698343476389197031476980369501234179056041837906550943146448166452967356127289281143409675256458378694095360541544445938916809199772478825187096607775278698170114992644643185105153948743405916670198795543498627910041322142350221271011595495138944299046128820036037705998194776876492814851187152013261887506758385950151643240921039634850373299132379174113299727146819907945855350008261880727893756253076083677169736099129410439199671054021468091997484004319444424963472648142312663309042829453440090869740730034511225838551743480144124384895637168728784920428995607383515331886133436501639660598913904634660018679829094774832108543964075996143470806193533687476667881879410652970951657224841951977291224687506756097375754578232573360810248200806370495094854461218034267321623297811603714729924716445145679783845613336291240923936215168932768878230225767078371689463950854364714992135711360099490296635425466862237319593306745482776084388988492217119635071987715536230750892533214754772588098412655813413235188547474102426759889481391880381090442800541581233596126246951604837983995966764012084372562666938210794904661997198750942425867691585111942168230307759152591374544186836810458381154042083822182714938898559733752306502240241690550805450557230204006015313634009016731493012330556035565606388961424135766970226273785378573969944947125212200592484770439334505945977576007998696285044024609992814380436520256373611763827965844759741820937845832026963737695541507156266911542164884780738995136129129667078846249619875987702728800058469618680233555694399491603620821593417641600153280131020614612607997312172708682184123410300603500343731205750095970081328212577641181161790902007366486279870758737674056028042669236989149834128181728350457915671402757235419216388318564983151128816099397992827336059700027342294219787528940237106643316483757822921581173056560568878344641721166433402266934361541689054001834969767939833701711229648976242960681560037143313775258898636004392165724179227737841257341779418723856592469385814613074392389092323363584751448262190413450549021689281745921140237455316683952756899814616515684968031477450816472209293322451324521445064735212360686288922665438389694464074838677179698019407999695527279261540343614954223647562467099951985693005998710015906842286295641894777059343798864186191029344577951982813130099688204250054723306664170624216607918244110876290072293968416354695247175809740526741188811441808164828290273786862426062262700852675889557768639051200983373969918188594029873945172092465634518387648596637914152236992408963692865778513900387208232479541833478137737457572674011449742242944941152517013133043139353573643973077609446369009023071521168433766681056823803717626997915608899938886173780172940114138019514362045976225081992361681528009829115095517097430786395924318005289032494710263139556108287496832839190761444118607726687895346297643981664054460430913168885659878744422530484994184212242227834737622523738393487875087146517998232472919642353539562557876604837138721611830529634063725759372733262628647196212236608592263116313177719164106302012639646532040130295731902535437826356092357549713522794621474482550988519578738632071684885255942832787044918057633180759221641995175308633133601002024986061480462889565011862506303870994723816041240411321898126759644403342316222259526479501057783658438047652667737360607085088859894973502520033667903684576497056021000327596286627818514150740793630732869873417283395643226362681362436936122690959427020637953962107680304865674039249276707795361857176742268491427073751807562084500471998083394321369370003733152107803355575229516528027197528686073962591048055979887814059335158406137985089996633668903533152908237051032482093957373116400609127244053732592091994291187147057204046248568562686975289684109065637054082732763316636822362459593885136245565361076587436679759303407028100249764870872683742449273524721750333527607625356033399688453805241974659051199600788530668898738237318412158918511637231579993166152911085547727339693696022192942435618046213271021721498178003715941020214186198741421778250875188184511356016160892962584678140882048943064282931170950375991289492211481671178905578614996835466654101402445926525647514446693186629467918647147602089954304126806518858222306741143737013255593054592787104980437638691245668364165503436539387976820164116888320350968354023181231553440133140607679889861229385804706522853631939809390464782666742674378416316277513692403393437009537476324663452223172312666140416288253144147846099559558002325944549279846163436807092733990761877656914446846671009911433437054368369917039120238880940903526883850108769960897777218445168033257976758538738220075782074180719267461428741646270122813466321227446526156094691359700288559655633801930105197814279660779925931152405736471688854957648458315238936109406040511195156598449739466052513849618485921863687641044381392006668423546572668766075777342873928018286177154578382730687858322759073158717929324207128563634754067110401053188087905878954453307268789240315799274877158988207108355086887352860298469234372856049988912374995238499088398158713575655952593079068557598638960544434859571167468208115474386314924728486717472113115333479762558751760834825468988955963915533891038985011257495320245167109027957287868239247095083729096720202058882168739169441219538837241409384815458675814596863221454354817382935622259167364169581643316751010024180131624293519046879218652685231736788427569881560475463100907110050951277076215555512733645251733275711294984977449108260523453152690518684314763647726084236875892235130235361907180808940345767945802882372483490653469219670557111764014006336541491828680430999022136579524845354973222836651461046924951713006097140087885823855508404721824095513928856356435453257930899204397039364063818394231990072501675580900046910254673399924206238133522748688423762724704089969154346481119717965232266895703469307213187894378399217436114953496958195673658470535497269815320500671326031145759205032858249132997561378679307017492279397374647899923591174867882833686821868617463188156065254445153725565184494089323927721146009127465849257488618296404151979591182559284441729419037040916410967597956878849845817438739553737645823934489126310268262902518789291848904988364222750732057976279535348674216041654740179241602496607440811395028549035635654147440084601816011712075266702537160117399503967080455845375224340338423504590920906321375018771375144483381214968788972839477937170916153454163225415367032527260550861210985805918520550068030336968903345894113737741247979518353370431815340256034515453413843371816177862182156026083628576937328128307169042089798410316173018603401020613374443782397894622538106294122687839674629753218333101988669929691640490068247138851671195733761470991714236583525468832535275918104007798148232384469643189697925640681595762565066151380829282179569500700304526427834092266349135781638438259442424129330767173510708178255464751812565279177368779966391746394553301841230403910973739792767975963335515789640537383083380942654732455864068735221918883651229036122160578171579185331030164461140219109761122371258488766867053837448376482558694694154013649263084352795037049099730780807156162158566914245425953015595908025751064419849539069974586884799309587510747083336870376073584802437902977172932675729819751311594307320122005782422723564607737170303786380704556945186163746228820658562447485742916984032031468097657854583165445775938045255871701513451215410321720889101269100980656500940012692180403525399703637988079698076032845337495395940442431077099409137756960209987001458173107688387297751372074847651372550807800118683082967869293712873813325393318958579706994604227187993143544822554004818560473663073335591896671453452378614630531156452665303173441850076033683939853987753117879527053282674626685934930936639279841794607405123219272232072597856320473890980037802235090460394384160591131595627435016217703763518512522825543253346897535474645984517027920369283962121852449358120214881838997241397005936669920270700362294306631370130476162540937671221350898102989994419200772172256545608927987666035894265572482230992235418233090088908272527300762227418011658969565548695103776576108753604656671838711662146200924235541720371444269496762528742626118008507523156057931711075038349880764021669497017899246377632283358570741685851067842406113058420758770850726087882772048680543430866776781910401752283453754100330854466061921837602331190127544024736181713737314112146481698560685595420821770379515252435419132773076474250849167001010595684537441268370420408353849895840780230363835916541159835376321291310232800983191593804914005232386071743625557044972867417225985886368778563133391485707738069117626840922501664065381668677870669491635634835408969843938448003974030060113732192887539103682104585136377669540937312004271599870058915353436858451698844806056956698099052474756134064437870577725938701526938282645220966613727221676778056131831884273953878279561848583510303135858971421119982583975753609534484177894596607114461521802463608372297319658686510822408790552133199627940558440156895693626493563312400998327506089712201801210086601484537162930359276718617378248892513716998216161767282351973691866400506049937688561756847972598921858378539143993521552355162385715161418122329583056540017331470790780311091160526519769494500437940045438522367156686257082658457813284433622973871885101089095650774515456115164998011186947427313585915538793244134522346628088512797565953289293981856277838422828454430966977432685696857770302908880821155598491441022731603360620235507302755142267725135491411920340201396681691775279215485080874002627114788456890623738410734541809632302890266053410150463667471378646470535435831951189116370383847251506366491179568009148310554951166137742778189480945920405703720170333452109460799788692840908457497124022142226748926120886478645227588440970068423320597738377085960934066544472575982953927380849116757374367638252235059825604783850406730420514569018417379124425342827900551966700573275281865167364777539883517316214126470724678093742051886156994729277595754008435755923668328293845602740435347159128029518442414434369050271073916047752654295146074241977854916019788457874240226934231142401940298882992296527657715646208200413553488530498419711614568493514014075613335653659244647713040213135793760249817133042403535970934753269669385058120116972930631269239335220510836698012394823133430856811408898731513623582772316533893947886308724593178583164717915910125561984848019500421151116732569829132799320248936863811391619022210770633917337427188988611961075467158873823908456818554142459286875530627073333858115251268241628438736157881050004353677348710903365623745463949604572428388280949676103738400566584520693332303696450153969312420108189900242354343579944051631871356036822552193231918311875243851938469489044873767898877817701546813975221113272072854746504107057824678937369512295813428981493134549062354530397102163405299974002769147380175833382803138538177940675408759683996782948900701779005644173776278586375140132781759168030647058040822379055113727213930953809161226957934932392058905433515294625906779714523555658281328256332943416312116525780424677264770737434536833618449254930174611615841712275440900141504182459775274514894598946985384790758290334078767088900942134439166108546975037677501037660300146519269496390100262312989429790155267646468757264146348468572891851690121583289387056744363383063401674190067343334795402269840148630730057639057495769032354858955758816227191864719803489143638804494291495433862398407946676673353674934718998341309764732125774370395509110166391097329488694618502487042102992665932632575230711514563922956560715046480402281621444384786270703931323019361956136475135926023407086386846241509787927949500651449667321934716866152632779675329990204678453329355394431698877657205553415585442826934006876845299302272225458348555206470692257530998940052521218403811609440165166472028313846396619112994183749174821841643514591984780886981823207603025921420221182033373511521155265648868020953456800588212725556498418339080160222865929229532013684174539520084975241324047648841474307973023210102329215561199777151140863237912758351027742790659956284830370450675737291411861777600041207403738930109425165964506454418176893717086338120024422058441504178504680619323516702931044979840698120893738008677146025139456000246724388247636251868690675957639867582847548457433022690476371374060179902562958885716436591173075919717631944916345058909164294825401078148454314054079947096193404085335122183890510575131162628434172899498964304274725414390933898782385860369993193588810607751408268684582875449438806416023084907584719798469699762620209931341320119198038058174782563002652526354321537971890649337715237064105446742761439661922982009733468734821915448761965266150988381013793273259566420171863153553441454297300307333127781443027427983415809191410545435124273967070572904587030207477242438759504858865482322186196947688434772001028950107937103369206208422893370170859627464531199036310106899982668709233662672303371922188020193249235557560466427649891648631037204902761503569889934787253551927046340233721694150605956524000154854647422613398509822458129777550614301592299207179553507344841422020350508577484056195755319540075775924945009351289422620991684296121298428215968376988362237835377142903643659623734583517057788195804560546184599515582192289798160787089328486485705046754078615798852947441797652712015002613511308762984599444273663156217848176296612161309094110214243745043490477374433269467652648376943933433174387814365000861140707822205513281138982237803420657044423254185829811368077139378227248418633147050491582049299571206273755311190240680520855858766060229774894006375051449417268176523132796803843249637792746144594918905819425318920857234864986050097563036422445360149221419480873797012484001075327768869119447712610373441104777458293607408595431195582075638773722890017032138347061903567255168024410842976020200405298588264082450932542669021846260245036278960741432524572351347087233377915953528540965172588363062404809850074239632544866878836517560280295840938816023177095602944578963078163222380263890214605471428206918603886301322011677422347358033496093614254261773469241813780070198080127450846994434371186229890886106661285117030818219601091867285305935785842786731679916248344616127767969247108049217160585223634685031066460739354162437956215210890558965681921297229050441804740754725290290818620901153231031618913939021934599835610346644777036718730366992722684621623345781945768506927845683544876678227496665976612627805872691085942166973719282754768066954237002131033694711224747533458045628563704955548588317041316143186117980277080775795342404013844152645240765975708059345159694765097642453106203684395383165099022093577161347336225369567945337548121373508747055618293283958058848869068300724724841388913358033245032558804897682405684348067782985964667331073641803512682201634949670299781442501451143849251711351078584976073439406986723988180071455682064308621135104148416075517042516297210591853404527478664104501842839071022211289579083306831999645868525293639668594882709474470143774565468652119915156319029488371426843987188716175499103917304050642104494733582701566285545762425927011768461678185465319224445232886913994673521622890143818530703008745404284264747675932950697843872330144355946454126298112579733766033505835250575535032380795796237564542954530509279413244365978424470940089182392788007688451047371970851179263231726029415705016283363648607642416465217058219741560887588947265459132133426621967703995153665946693539040419079974189771712491144272386459152869951260775367313660428298214016813430155545238058360455811792544402400215240554243790336850751785660732209242718731000654662451770507693693971705266143559062159173862571474554264483473392880560200556548972406605163903545664066650482738915466253042175102634468736509129539196581957488675336167334799047155573472207354610490972032559135792268935428426260115871874544042460929239575977063065839233614924045090570627524862535356852606398140134583866977291208304773272309958160598472341670177489254527935073850439766194724105694558408603898173775223284417880429939871544737670518353574172070764041127461961379826934044257491005420473817872554839092067838867990706027051106197123585355851256485237630882815790088867539037781571792951511742597927908526450647439862926408888731315614398622599651131864478411661843293310747242689505153362565132288196139372854550545917504050863598928158983419819073087109340600430953549640658155053433547749899346657342294465315020149333806071258309938985369490764326474470060941202906861529280344526319121177626319687902299250279909082379338125458278724813751165849629271222790623702495230757521367993476292134218369429565558176939745479082768311762742928296446324345914637298194328134284849350293093312412441304080426435951679838713285070167693707370382230892271969442248839210885936605408637750426839474278968082718843758758312953489824007507451670015887313086534852233588047848972649034150149510198515942385820675493187600397215734753738287114871624915614420949051358551990960327730612410007147324256809511778769212245504733970247641439863603022096859625266039141739478447542564070018286706615351121194090508536085040760371406288636328727314270819141436693244147357907012761253699671912524575235061393106688782211595922226238198198484607122463818631930778336981310674898385693238971737789099914939217885692869999840309082164229922811137224388166383979979604427536775285263106743806421109321917129622744991132037581116786880397696137513148387080862184114074333491323671533328192974344019002173811504780534764861230027964329059849392074584354126965459355184076599604595255375753844081958767764813524764555684927278261770384711093390737905908506582393392271608791347934409390198118603356067585372759175828881347237173837790094687462115508619586975608025738420682529211680772632669660434946282119628646605138731305077752663731792041947519012974301574079971211731655422551178095519027164198460800250166331145808219855941844302041119344250260570764923701573366806886005726244495080590634477071381342897410417982383827625276123993401448708760465792607134719667526084270733730750451350988436414750032128014532917030488169077684998875910964841589337545733165311702040708271836832526979147172572290012733233479773184398197474015682000192995966118719934014480616154483625653927164006837134970228632684311458606892992472590250405118729094604835712028633199566559619730275245834296419967659145865258625967797080286030206173832950415482246032048299023946056754038447933098581158916266042947198559031706780545758567572468829786993335367599345436075476186875365857845701836463790978451927728606134154354820376894816171307835369178714707249624753964528343794257730155582754383479022152364104863933118868541511810631281109262577368385966892216782703044413727302963226021428497121282594787102810488019795552278105288194044086035672702931460402241898133775764535051411354697811110649923055888511956662476147096787238246593428856000703880695672743257471963237149633850894134383467157556156491514376462642036226315353230243717480784038337438106169840010008009369207411966026475649243616207888978867701299378776345816297089492642558085796837811909032174375827266264446357738442271036383274545929296164880620420550835900548043150487181892973829541756053279396175632753611292959905217284413487690142891469402652159245771994600381493384763536409655133988859281037651789156824350259532096107766039091738635190723004733913828838503104758125925228989449320643053831388878396153697039053431780665894681220240546545036190388568649852362164588310218717957522867550022315612482096022053301173946392950142226997155338551216803969021403167873625153948235327891657065022429466544601781996318611338715051324740459444416088604961363083037830908292413997461345942390136788899973495664902144454949067288204612621652380819165866196627472094616848655535258158845546130079239382858227632794419881857373778371319944607431152781311094324425275285862369714678290587364134102911637125448920444571876069097404111745045679110430061217564020580895794792280409990682769126858441274901988394207013136087975236354452513055238528243118915208362124038694706135088415074461698289927126291612155161382603450191504733089109379835338382139437928312811331230601298487193240350230817342989050817111903355358890095165307303564776331803985196911964070688698206618417234820546618544130170424993065070713298517217105811024347301136183602805826248693235007020275997242493380029052783135488120771272941291432254117637808576027279491060331464674679465914946481180586796765831755551995771619317779440885262269687764945307726419388390815313231081389437071422959891358372454564587477371603816716600930302020979037510135686013440649685345431118301831588578148251189125296819187936530392148351863977090953282625553524870884301077647847101835401759423496351706729075150655265868348184997246959719375696399852138250374906733839878302543609353427612835664677648535550805236022097232767327084606769382729554334076896980631609304566803869118014647992122734954841450249533645736450135612120907375907136726357225900556364127924737832839300307061094220870347294589993228565217504057940956291963888378869368648737824001732022723755081428416244955857935601798435365929209283320027354466516335316360561980414841365707319331491016265771422739894229263844191705126699610831860639880241767566809177120774684013245892526518040411339777135433820243168624472556165522298058576563685117732105946584943992832739111349701757108444503599502332345353003969056667090752650901483316873598367161539949844010268468826136006285066053596821319992114600699576525701863042692880601348574570128914796764238331869277503518118558490645954359185567427896417315220151976800809580090626017660518511011407053584289151978847071160891328741428269138925267614712972131251049309739554216009167047135914999567393326953812979811679410509298852777756902707255152733535430403180818977139490073549197849168326542111828330401566886439653405406967356998592131738425234345194382802095754309531987445522661333329271173942832550423940521304783696279942120238316886671808961780891604180840284032769609609854003995956252773517020842973280176687738517981574647707386769171305095291293451035318066587787295311880682387859512374673103088816957164901399498293080819613797090400149191706055006631404079706438208118492527889868939499501634026044040272417263912189873808419282128650164003948262979000768411029816731133537990961923254904893249396090016897790594792990092082476537564158514718835753731721989060716331333624475684786978105731626549077473079839469493097670283971227709760175538917040242953013868351883868141157129628509265460552464555213228698907709530879304951092122502291097414455359183144011103411359772269432346904977260098827940976915379104736732203830103352940912607765947129863449174436928393780215495369440581532001471457418355471558510484706884196749887217898213222046229846290361107592792361474181237224676256503784011445486175453229292073379357956751030152469278429659684294600473502522673041253711454060414469868934087102121464401184320968145054136436186755008972966746400996675753661256775102198421248144433121239379016808730145090927932713039401509718160147346124865451172940643485780239378373376574299643907492789570799436279007852943043479940112234783946349766896988747887845142658523658915794335469976281147809175074310852782818056544522314378840202542112930542610879024027103266784856971615706202367121327862399049978169998350169807958971131170657977209894735162008790468888365219903598002490167996385767497779889235259037540893362651529617059365669956306266518757761117464343739321675798448216845668231324569415726585303717607965192861095904966333520090999313203165516405244521646363406896110707619234054488037949796575036159584242688106520024111228837087843975016145364336308136687767608540892923313578839288217243728176175874296707131588097689892935649441665889480577490619614749645022647100552638706330819242981890947184524586689313986337629807715938802670114651904269023831367213676508195714283062770001450780840647724706002948078781371209505021252220848275225838030316594293186252808585299649390167454504939634927971874520154851543653277224732802874470406662542165385090184077205284721687660556752676061379911504397420523983114248329918190499905304623185446057190502103204592589627241268220936662867926249865679411358094351238521589357018390484259402533434395964045334436106334064236668728060716222100216513533511707291439656657684374506291938390198357512978494628275950456699020946167053912072442315837077809413388544165778608260571042017964812405018065915058898058558111963445526618039408360101361417225646718110117235703393503689975624067124329606741190006204197528861821730615052393100220998557493960883967128787446165482260426732726858041211717133530088409467815188562864432847081836143806713498788913627095416895191755229661001948360577251338221420795463664341694655650341286228381011429219656220377498245987058084476967528202265243120606444925481507306158892559939383191008123532422591921146385937314167420430123629577051029832704207361168118549961929490236705029404140096409171320121338924127823722629978358800561488652158619964223900321442867450623909276037861563752325930277413078460968807542123335674016002699906126936308269389673396872906968556132356293871921181552350146811858661704289384929736626304097388264769936613521502783075260403752035691756416707903156858651420788505462356736268245104141568529942711162006824598029784780869656986644591263003682110963935766078306861652976741170012818542243149455770021038380779963495357476458101714397679727206681431321437312055920507108856955179432012104696422857847072532653534679777300131351013140956705467070677115009034474331508692592493239118038358490532949906796953641989110403338735238746075696222586656199517304376763111557168199111212540194517711341563291564444969371631268496785824761434122932380503269193996791020171493442475177467525565745294373033682742359668781690653979273455589103919145104560615457301361102814222274783699594944216359621500756793133685627296377899095211001086657926815953515280712568536720142770145986729351487888204860508999372678864757866378183487777836795764964635788472118594454032854651118227823297086703821850727458700644588965897554972365621544460155201351937465607400895021173268530343074469058815280567543602748873211122798321723963403026060305627715986032740201964127011250323198378490893312957337534252186497664326789424110509268215021414821330131914228072932640263175871312546119272826636604403087589267982138915018621259169648511131504379129786831186106688637856158807627109796402249466060256975103319194545302226419152560133164174673392223223148634079765148270895459380023250465607622182750154035944744772663693843013886751357819947335829139547058359282449071210368632375251848517517618339924735710166976963317694313271036352205461952577470197796843000088983402337535419189462792335669761554718204512219485627221426403938287060066392022037579269957652000970196382240662700181555676459261669789784961881111481268227391121136162289074318158908410482799335038016947781438787651498871815603352342414034502810469238065657690640689942325468160537467173916558396569474583652199625539566956400921595110360844619872407534205049593684788970786698449207486373021302181524395979337307147133313467400327619138707283039087943941910538493539152722242319597468049825233671565921209288128996329455561028223796348207498161159961225628050175876734208311613088451605511773093381525665070123983666534264623158337188249740214174737999276549955838905664484743118404740157774075128402325114879117988199448774179163110145497240622914210131901660544054781936457613941783433875173949009191204214023830762087180589799610865996110398297635465486810606068056201302224883442138838892908365376793344922551174560702424946748434986759087833537227353838455829642421153521620710836664272099899604346868309859994090417360351792595512117712692557356349050941074227375977340110858871942334909762047314091602690121992933477177293812584955960618943647487619880259757283019062386042537678786725411234233438981400786133502586500444694595574071426306610146905410861601877423916701256318405446386724436506684440104740275024163357932051367140039989839404712095745552958103720994271177584751882055310765296511683868210067108149700225879747697735795820898542493376800064565787138264456884847460683856065266633798545123403217686217829663823183706078101594332276316597541623943424390558359683978747814364804894012271884184629703037678092618144638063690445155583679001209728766938549274516612782081752130676686372433756625096738024987582209394437490914286523896992736459530211517740793897986367118988010430221213477010624098669118583973655018992419499558282279073393241823392884656612935930175325849167603606344239565339266564443994868013834579579402269963357859311614810973809313310319373954438425987429165889249282943218805128491281939649053932146784515374014869832411527395576991015454681172585814422735970814055295162868960330221124830539485969583403836742430812205434204727671173157548835991908452492072217104443959971789844647866830617372111113588348926319249017664293910236804566766157582989518036047514864867109162030848686341504929224740590236871747472719838147709338925640452134241946898277550316696531136966336095339760988203632207191595548783552909703091397705613412041870547255532225978168665565950148016182776757451098271920261055733858208125539818824894425555175168617917425843713280004378679971566714759569181384556489502086759336974510546315662455017902286008868631205711187940101259969576182194319175033274910559371577118204278790537963786621864070054450326009770065462880229260113426278463962985594087138669619066820188380903226759036092508741603426419218644723565428986137083533089786746010526400927282563046196030756485198291783332888022890339739595746030985080711105557342708512891834351507108897880717493197092467790275664334800350569971425336909160327597623793997716368502405199897784835970901272472583121206575424770503559149722560035398463980252880786478621238366298076279918141572385824154314935266808874089113284456440669801108803926077577179476632279879539556770624253643609396195808931340270475935485361620732649368886418444383892525372783086544225999577034913822986816028924093824453980225887084718087304882013746901685383549935263932518387537078311870381032894282824069770144068085734346070902644636140441029159679845712455334168962607498393103318404101148250920460951671062181644707116739549924273314137169832777240197940638996508614570558461802151239532913701809580705716176943080108510481940215646157577612307852750957056297117993279054992636393238537504491388231268420102784292003583247478730433342262553516994283382921362965613349913859039963129487617396537347666083726360025683120383954158108273393116787750855923370623570924400967636381550547461113037581117103717488163569928825171267300847353013432207952862070386104011649346479986175869696622246782028590879723586263773700704339879077870712150197554129067599537281830981466391075909425078225149090520066507222668793605622705921865892409371787762353651856697494200338836091364796240550151581495293658673974180849930574820693077151843138202604767828619579245389898942216764980310314301511600891273160073791865449304726695109733601145199441623630018684991530602096021925562641221116973426550018277567198602945877651619708145221054445704907213355304714828234423091148178537771666369491080076148796091927130541471436132232833868456208021678341474447221531753260173876967722110073281534014141980419847607088411766675126704439501585122086170521362878585679122741017033120496639663406178278861664440281017449246823644266910424217879399184292065610879504953373665199316256164553253417554187048126231526246115427876472892972581981130049715175124625876893445986334484643002458775082767012757325354298273105292798169181257198270637294582364351000650843009452487900251909847735505657519915009222149895609430337867944472519964454054016123993943367958351001328166158935168973964789795669569752098630408061797580799046132382639875213055363289902780855012391702070558842459228811365637327645900856489860288871696925488354872091304546660616460060718298765182766143673290485300296084581797640707954349124782613003982807373720469723037906938902409894738778762017775311222562691307476343984484894893425910499802782798103626115768989733964305621157800373631841037519567346503658704627192629450737994600458185451728686483334888077147829398471691391006213274360244364559688932877875102779727983480164026834988541300356482615622527755978058284944312670852294734698014826335381682975669135357452252893667169704705922695442373195012286896954974498333694737284902244893576313446387741417363280998767843585109679100147418396974232659313354989615130167398282038549985698941695373836481891654617240766573174599777773483651808778725721136217157491892184538616500531557289291066859302783214788814831795989400877518484974658851703527550146244777855893092406827168965364625463737188281556314549194606893842548245907056918752193906160778566852342498543376632743761186194512157165411448861433383163095284512764055178893516892862387558781598838610392938392232323709306735457285693253879403799494288593898745331041663911524792494431478840510080778114108323907129552442342185261296296142802918543548181573200648865227000676842333911064073317083923514877564168329911703816827543924191019700393849491848072227306759479987683081005342514103198696144043791290785130507480508172120754842518963675802548155023352635407532951891254356891583659725938553787316207227528472314072197990164203890799730258721729654679784051088077660530344021945046483722497400409603624422920066512931648543164966688362005816161909076705984578587106520007826189977834850693010042033984550283081360809941032606876842582052194748063294527559039880415577040946236390674930257840924985821098104468245684028420876660853815298176443400137005478152794088306007018062671051915452830827084894748823373360875066124096257943292911518380382904081684475448442956905772550698211812554764166547645185089423062170628661029141561061967457760598418466143630894850454332683465706894885606082781821350034540785802642343518825011933074194548570520760689077572777947543290887306893027595668655761594267834339871916160848934731159542108789963238496690967380738426325081856030129592796906190114180667723125016923754089627765227192745377003298347744383327543514162716499889391025781739039240933685565749518001712620240123817642377574069998898002045464702580318612815568024661340267083875107052440995801645378502483019605823436289044250767699721892703418131766174988253481084292084097879587734156857782996726160211193569702411148108026331978611341673847671733703544833317108468139657231348239422727512020415751346782547227515092816296742387362471405388160013465372511343749835934312927491279899403423426888379722024503768396949620072538797539112614633421898035066073807967269865169768293771719306979915205572553908686206959703836438791687247602426139501026674524542820407523658962580588441445798398750099967813532784427550462679926663598764939870755018439604421286822247836485421062897351481450441155521805388734500982881378259806875038600523379649114573736456827077414351721401762722766885969308529636164152399645350660944451809686721871080050061763087115968051026424733636077124492647814074558937184146876577065464736169069859565729590322878900180589894942947330225537461560124690252247564722344182653281658168687534632955739574034738505501399639432691027623735647144949803662845298534949622499036403133882915735249135566935195657182598166402762310449226826293073220666560982064878988326166680991809849072795819194330986840524752576810658341233471390581363202786714563088440150329262362859192347651630053170655593246659439255083970995971494419592781690415994828695776152354538316474252841236919601202431788592139288993073359863296785114367759472781806672623776256082900130561071838500923524441440027373700534238844497464559955871850317669901672772120794995875336367111040927136277001648215855439974356462912969623250528030215763569626318276235108281292561156268378510248635289361629098646767175370915317639125330910977365805136290241843628620882350913554222353842631385617309762789007424043438897993873457681612921810947484932156935449482526770279917407616868675272251812924969878157959472704774757166196413588304650681400894254924898481762535137009807419977088145607915465423141204587970694029021351636845018740485363429511956666112349342553714974394087795492007572239975922961078999405459897165009022063813426106618040949280496797234957958360732708316078803497555466853062484754820440203917142584906466501618109830407484431047229123011955581949220700833170123796264797577603383228497095005829928686680959246681857502895595295094747951973734042326818315462129700283008398635114190544662422543454856247206032023888696792342807522018639844304423475755932057175729832798860500875247701256487781243915245743275891972911022319528265300366989056425422611022811046081158201992355185790119583279061419856527235728288939892754458410836434950840158195777377450243621972187776497247116398599193676251349431242737835468061797889088944841969344855470573488082725082504778774067196337389742439217753216567873616571130109348344074870118400511279500893604204975401411900349288918689804768684796632629677893034371272026352102441719822315244776380563443720632406197359527370858228161419108081385965396609183444781337097028590775093337224901502700850298582594641483216932313698745252170812155063793258845300155464534140464500118278840341538778880603396799304476713586183380069362099792048358730377021569751391510218706570009319840088238873254064587937707378976425074150219239003114751754324269955714600805388743361236945237921042675986847213070272599576833148229283991307390977843736392542072157463424463471363879449260045375103931307104562487241700067928379418468466761922037183564193436669169625274703083491694130407164499513330772656136446685847483811912464928291544356921820713313467974557890006409936308897582029148199155788459949853856749897168082473233958633246216763226679246258779867365525695957472794646897509884733559858911575868631435827937407325686198316293717569291948386578040196845343068409526846644707618261997524362742415688955210124870221792950705163704548510569164012571686339407039462150280519328992637098357121360668205422458763987167469139503567027494640145219245685458970224938452084162641624353075648537140225425806403856789664667798205973463499909772220110045674359820734022380410748650866783750368831254120623891550340190079228758722019676527466506160836453959147720364982328684143090408344150750733481217437899759312263446704750036944382066020372912992428968558599159050830501431661205853634178991553452793365981014604791027548966738550403031822749796975743754924511648573466272172598068255013140888299587667084742029578896173878678843895354024995659096850914406041917389914410263035962131170778159160820022221583521796461841545143443374004391953042222382904562559044408457378759686983415204146034356223920709975365444292069655533245022397846593407389788732039533120701026450422068068076833618440229664597347634565981990837707966500606685871203261297815864300513386386037645718777988685751101778935891387786241909090334931853783500035899340661449440496257868279527792811667322587835727158958851942642784415617352426257562389318327196869123811048921296400686232632604746709796661898558277450382552745449477778252723351435191094126912784782739078164844044129197137233783958186482990305374772055241106043187786620829172650399943254678650614603276330586047411427445653106288070644264604676512434820743458761950987058094987485170301897983688911241740782820930179927126434533468388569023683075889115013759069110257853601660382126417468458394125736898335382572323360437510641787078324804912462883612729093323744189504970364589281876698262702357449532323619735406850120184990903789901362527448389518060059541204826386637070861417651573159731368566261702768503259214846839947148467430221916734839967572562638160050612999107455482939268675588730918511079482458028482187679817970329911116080571967156547238283359609657101641877762605271931476145870810870752809550485113690435269475497377018001670153662369868121172622654918315195734648247408173572108198203501725030106396422603104254519648946570849459740279365857247320359010442541182204885013332657826017147356139058261325387342586102773272957471684199641068777232989413310904114540872076897603059266823910335072497513722357863514200002723158763991587664932689096331473805768787120997953773485158525757484000279569055403833023284286689205792588060442969494440343744506645856368622204619248378744437600883806192249697020414888639747824988361312954286119625647958668549337804695948267869439865278225575357174798888090107572732118094004754876717814008950266503233177671429261266683745289306547186493991448960994274259150865510548678041080897481782303928936907275941006241132478334958261879900761257354798633571084533450779024232366388752632678927617295037190309939775334072783601513787810788104895826185229091930779925125161217225200474510505384100900523038700848213158981635978147550298996233604817107902387434422214154755011752118850903591338801600256783105052966390251087213934319666367763346732195247022834651919265254122346803907332071673841248099890290140766115109821861703426331965828073015333174886971527139173321528093847820510318058234745853394310908221820617163327664278567667230960749130422017756445491074065511397128079890437724913808859011354800367651447539940692856711064586335152334516412366179395316222045512619774995421474921855351053676347573747843036235557588174622626697326688273577916578727029829222909656147170666749080745107628345358486810624312900032876350467492220716380448677482179565171354047348720819069256270255728384508897947988576335319277580680388238289499335485715280723901479751676799853260830811982110686271493861272052293897354301593858376410320284248587376105887843312208753109524714374412804373175690848588635831657749868880310628057437044163412424701438154708554869394454767944268501344504419697239477856960444124211977339950862600045170686190658837205543029472271684511197379353065001505139772017016565348596600478424935541297952341024606708889455169091400362911932338495606282372850013476567372860825741108182080252281364993343430571945104876957671931033652711190383355850960069182827366462390201841527448588462994027458598376230678844189376093628532417641684493417106255317403162089190303011430219820349421190584460633504892661967464020303396451286908591792798833060969052790153435028286132479701556235636903008614238629105838144043702773825552938770129355255967370635022830282926137393824712814154632586371852687384383408645519622340818620867829505123812089769757189447987210352119561910416507990135690846633860282445443615455573335700098396826930361793077428670538801599454645062166500277333890063153075389654874185521910499787247023314706073989313492042631785077616824114493043013144727627492315624088336330171812876956321798997009741602682400068017361874314943611484942481312035031024061527242627125833194178904956067261364876450977572568869465378216308922581135533816108325035000782986670636592207870023951613100428119834998285091308770818221731399792440650932457286971083444572007931553943245425629837306027640291123132503065925447047004581406296036587380258559639008068826603004421394142550759770401648707187926588213957654913625182406365236323355588812060544157011788623789538882933451681104724114561309056978535000061391719988746996937838824679508602383468113230072475943049853119079757486459845316268386318205925086174855785400015806459538666958656657428225295578630494380398078891365046094615868005247991471153776073598195600396515095665352537393358660107873641536825327596814094087463348943517800486451819603021564235977960315433576168883722900491286746203261590151719118272963657017937395298687521813060263619418814116114999998929107493881728386708489388657803785567431721365049885801711005365985843231432998137754107201908566031437142599242696510013465194234343618234066439086977439083312236054621169771368623318785499582596845110699922037412565010391830735230004190774661831844931380507270069449158668808093905824798543667309033813762004172035934135371571801080761005986637493616274320467523766186454547763213205365402834573124685488106887915730772187027977700351633038841438580871017728090867196599693461741022402688392037902045129197536005112108758975294053186128653482632566281122897785852337296481481185592115016874971166364640143323777757183981056950364382957085191659513705986889090840420296948163086306188261070326468669794701221408780054785457610212425352609157974507351899290423065711362179328187352971028116578129541374339044788923132568271401256312602613265958307314788953400697972158043236988506672162325363598321182373202193718308650928820274993775805794668410569299107112494008465314108669095853216458591836108255259598896592030451844270410596097009890522666544765720112884833745384075537398039859202472461289295474894659798548240110295912768489635234978783742636857815836609305858650480246426916313923980366436674180573376005574828550423832963744982862156955585794582740911557347571255949595894867471442852337234516156216434616266459733329821627935957725969576545285653886854850037973615556392764338130857315584860195540909168149501988769944479682465446839272361746741815611538398588965779852471440330999249391650405540549450526787494277046228436311603939970057234555278038449099758413461120049004928779684507872202942882340516448907917989695718957486364765108972700053903486745515726015509923281894224722827763189649111602275292108246393241630354623036311989393833831345685526309276890800388881781879145706969063550837633553383375970176094718472622236262319714116328566969642449674605518894904239349497887271958593105881350101420219573736052704002954636860957691000029672652496526984979631543969022527462404677358333997674996819555986860347043686438122769867005782869402124079471357088854573992260599885411452898108140482655868791311617941218967732711601909059803642459300403878285751426613597317634182520591732927539573982261381742843138273071050493240371433148154080213698258694865720379627196906454830460157683481759056680293025617450112325641994910707144067671130121552025578383395880150778128613928007360701100337052317759209381106607834538639247182115980038890007408268171515610681322457351184379857897309036001174924699909090275653873639713089005472490961214302601558674468677541032865840442035003994245158090487344200873835163657564027902735869528392250201647343651677329888818224371396817587430113090425518971646558668332600735986048938582936873284727981437014651607361680951930426954609628858588763785656952284757832284914622031992758314327284488676191423769643207996136893842442974264541467688689536001169639515790335619288763463120577132630654517487654592675041264771100033379022855164739796975684915810388230208827512886320901052014516454484591949726098585550001946292902559558874154914595983589844221687868987492270475699407101341571279916396673217737272658014245709419814999958407659045229908024083480375553492362302234934862610373967764727094053258775878225590637792266632365050840350799308766247311166757422955116806145248457792906846470702165962303199192443294492927740047658007812104375181013222459439744220628011573513977947170918857892973546480044976131255389511172746702873617698849565425837937782699309232602462396791265972680488710185694634359576964463559432733991068006802500108984652342264323904987209882584615457789664785531575256955225662672985844415673450473418758159553195344949302227986430701532683416627559961640683308525092535120373493145863389781098382907543564527816150681164188574931302686735813117490558881500273515356310750485877472361647782963934468533873000411256724045262332609222951241552627796882095947890205890499511105810840996313111326822864958312263710890318735750326007729909633604661321062179164301229426507736184389646328335449435818752182414654378632175084510639774927643084395216296072601606032467492121680185225649499217178980324959764872044303556811805402961162364520743581536985174700453270645229331519886997695958819483031900982644654020703572055470890629985384759512846448132436099553577368011116244028372412648575578141849284314633110777043409413378327191024316958926061936973474131609824571221460602159523169103596412161001922856486114856817604104250156059994020562668319674421756778726856770539533165937109969276977813562254625979227962510219182023759921694992798957760976460106304626122824613423645572929425547363691120506919628096358716781010569502599698502765606138888310353324407029364087054429725952809528393159797837834334522133555850350214660206679794224056725492074579416684318471817438824880722538926082344591985817958509559182700884174845895977662156133137886056294463163507370565417674658537259852310189859743295666314083408665821571855700188388489992780347039427970873288340949759732967500511541170472047358033495569884289888579596293647311417017085954008614001969462075719533625789216704710163326144074788860910562185218221796130298400940575002874070275635192788076046804190030272408985919488253251948140686549362416291243257553386841935491675945246465262257671847673758562135775385574224824189515169471357637483136778516516504580676822018293978591156980900603116503385690807202052324271247507411931878081506362555390921183253891878958381449833062999208141546682961864188150187017229698881984208870225182192631898856838012343697682796084974189420624305435159282936414618111117630392683389836470329176970405435996745459557782547041976170500459883298230052015228619531469409431338326647977237463772624367056152672293178424952953595634063852116755096506820534057218601471717481299641147058366231790892025400339447031640323513026260592660522064558161164130261974996139805472126845048641298470549473069812143871517140274407638625750292090916464845140815387925384950222943149959968011937564226413435828552670885167229470659557952303167527082651870034906730752061497223328262513855285513469039898355874601341585244644001563682589935869527146671414998150668206312659046665007350339433421255346935197016006136378473376536850015570044087941047385837429527674692982462527127454264806284309319008235282109856512657802277300346866170901987846565694618818401808423017163898802516719628355471765930393720269572599890321343726998550239556016607332420800412421647765349120585366011172816020639615126905509949586383068513115013686868341184603680812323201995593943285712302093393321161485947403487066961847559001586809673492057533550844327904382284370399500151786361225630604326902674909528004827102660128810831140088638083415209191538600098652273432317262354180394396516974082494615439098547459166447856982856888879572837663548119967726218439275443210368356466535483229642064474692148938901513647124755164851419301433716469605766018933636704157195439900569662884778817417376019246637118534627644965061958023837925484032830240963465692255395831227465430902085346324449138713954352455992233818853039804924090472043741188455492459480585779864947771119538652103073437941002455052805670200381859779754950059859126980581307454423723542348903942767994966578336399260213486649866677865574789915911973496541466888340358451083853886391825072127829522723522839886661152763975301417438446712620650364659489804517475537065022594366376177382679621062858522625947031184005393789998239861063781947404162184372731787350018103961409700041064241198272414507515266497640688447463458826063291849706328921239329124719416750627932292964220733939187237741440483441654934065994896838431816475441923269277197248945708725503494697334842745034627341244817478210590908092294696609453165215993000295068474815564485442828607112625600643180989283296634873437212563558976914447025237291925944760934093872492268972979668131141767398054323712685872861672599705626041848758660868194153464743175256579023415500557554492690222972827626224428274604258366299632755263038341475463625180767544573702898841399159299945782743803580460328119390454327303035971577542681009833379794208227550937842266610042493171378796722815523286516132789494095616516140096706040067349542750221094027924552382374760529458702273954784326967544436516916049618825540870778588865509583280506528820688502940936137772482615779944221549288155211339804915999071928521384518177411814303519933751513049650595616564561580385532606489068883350163305475490919751023062465523898516236198053220044098163149063713689801284487144956995147002801583262896952245830684770343623004437824412383465226184103969554504929903811267988896721839023080555713804081918501890103526745066517179515262168523315170837106475619215406539416361055234561214361698967244335027811074666673898145015522401957307005077096947164244808831087652708900681235621185536376380882863546272182417544694090770385988755774246954699797380411003583472275343049831085522343042437418425582871917892652045559527901410904805318078156391869776868014492459753105869336285713268671259276006802247198272960738728390399725627194438227616558309859067175119731648057572695701133920772034901540474293134988038268693492970853309706236702597497784319163239926754502696408892859432284465604691112060286765646828582944419003284253118955699578186156024094149984522447631552842862053047958469194572635922406984377077714244227314851693885350588698116780462283765059907036663531695686397483655258475974314737640721725632001905887017136998987398082972539864483398088628048882649268367750901918358423891955790495240180243987991986041076867299918593011918458022427145467963223193689122501329689736572492702542318576695330654935449319662905150130521509608723205263449752375938142032443393258994713656555850012862450252628960483522297005244697791284994546300980388765616124223419203238193134752761114732548167083282691245635342640815197973127782445867241249492158956696440805657282091076865155054395230975054611054990182636889328614840476476780039992408774102945395917225700512409577422089134544202261442952622852209696652072699109813795308575153601118658176605953715841297234996377736119955089437296154820607150197166532820954255060432638634764740465291547102438480562502856189936953239579110721623505452705951126329988024059763961809343862828268549658727795302574733151430732289598831288200828544127491750336703794327224191572242311964036597172210860161602555472286345229096062793508752083701749293684143777686609991759809561934577360087053703186779380034351642844197906080204223252674508117062734598226152779670424338904892234470048071498998171725051223399127250433716698626436710710570932628705333256191460160457260551838542922402668846364924343039546390158008055799162325755375225359303444650180445877303108941348208469937555146414941347830003169328198997955042888686705011125644291955225612037358448416490983542682430237352773729927848408703569715413843818915115383845000502097994241327088837750375384298512826907107897273958443651164409623043873749722894045213470822604734480832979953530203546337665211157850518872993884670973825887947120742850496820111809802831656390167714160773848822961924345439407142045043838799633638304233772521567529132754058057517854969719886079246747941029560231172478522123117657741893609248380322698946779749555174421483916689869465264521221557248936930512705026926035723294142662170811380695079887121983870024254281877853253987216454457605873357149020911090157561776640717109795174466231814020008894276516321076106346426769003671549885174667220276505193860600529097169117070910582696602639265475721943718797834631346328202353875398538659128172219163630791633766308595988091066985593395567996754197007149123024502125885178067808949046635921304022479344971884653013566304919746690929997565632457823276066677221020588592722177884695347736199975290774737698287095604953790167192232185112286303419613826089740951054628335873478281011966650799149046052079386101484558208838599364452451686509392459604479796243398250711447270366712001586959259511977072439845235702760431299051066426690373408270746269222002906784292912235902388219312346578628355552816807347666072889295525380209290135521995802716432132046868939685831994705101768625273238035980420902199078824142113538492118557459429242074346888661699029210441547824589096550480215258928023094394612982619346870359862850374764389300059426718151201549619353702577845464897124049894792587766849056022737179945478797409417432071997202051531034798864702068771513969399255477640304007281011025073672363000477977853039980203903893687431446979858506347135764746915148229626460440952987022905518568951181297726203388075284808665709459794365776555753481991090305347877971590855651203500728380636805268817845621078245510739074676682433803258165202272198782178496532593390018692137316098536147553497978795633046006806310232202305367085339780441839969272919400677446128335105655957845024332640141411991312654863082226813367242464422703845648726519647484199981657947638974100318598282527166365291286593518993123738125604498373911030230004338598570173557619182174953175957418100711471326022039384457919672118150774726212763387509671791164630718134006149016019385180717002233007597503594860604693032038538782057331019055833693959294544935927715536058530401690556352014092694594112906864937355734237548341645028628650710687806520828468131611205705308448232745130845602772778131977216009936837566732019954563336061443005393502854100596314357868183014179157381740919940267445283943046817419773260436435234999851571969061577611069322052107186039661910451335010613415352209185897976476751632982442528385414186109668742937829756022769358703643437482898974714723305484598830754730047024790113120427792162755754288171005455239376332526746503401170098367412391448842981354369771603047108986192481542012462824263155038374505517506347082072429486456078292383689840620826635777961062035875157260791715575635793300731203896486772889876659349532271578875480479503041550831456014960342044309024409234355451041373245427673515824837117846750532778842356868364586147419350971910942407495231543357249419754263824162855978447525362948688522761061037635580155063811301271294209378906354414931130212105746513244264911396104678553737978195845833698513442541937533469056915379375705382596843082841388705158614409723303272583404564663715622184489265453346375966893009000836909955013517288327100968214170438160079947872634264500295722595846101456845829166524097829985951617375016343131346900008411951317727013172330264175452310872422978728185815704940140080937811524093751571579861718085698908542649972067047298299291457116498694437086513329867479689169092773155444381942192180161397742566032035963704175320814067770946465288416239951244359098206104094440147883925009324849701975062459406692045783851861631624971080234559175438739077910110492185242641318031135498220383411552282258856770974593498291859681801472286260334490409674643467527709487690004480029120244309478279661649674755685872715024326642272092240104039472395590721470947369033687814537688615987330883157317778624875208602308875564521489511773723222148286440935356957692426704544011355277528352579125491778926232232089486185024229046947975689114340481671502537440125775771107687816209164263937244949475257878358450842796224719336090107778109774557492726023220739532791005344596273720846638781839126740132168298646070695132194174523816624679551165817621863253170828098984703885661988474859630333632913127065839356001690938252651201325450765374528558967822528120636407050551397421035469506534951207305761436555124576194539119400572035058130119072748156194139161014173265238454565052990486053807047757452777558166239566977247332205974576507910247145111027660645941222720036015862234955565801735787053353067571012489345934662604805116991589193583894907084213564957216465699021127558562880570351881467525116640118946508198002519110560692747843337291412542981607864822535613225722859400994012827879617811590633569590929215528877205185072583290378257750072156924248611233339943055949010633115955293565492169794335651255434924643622555446752699030171297400772282108064635727546784937139533580331685218135251393526691155665188799786249053409882540596095482676281194391992490767711115330003533810595070139659338135036143187614174590335596007501223549778918358157225781612152800854614402658443470438519961013872779632017790166861877518622285681461694368105491702904684372111866494796241055954164513208063379880914710584055988282002930651934084984227133816758893075451172633104087103508002245439692376641674344784744198101380228598652309121607112211758434193488347897840091878130542246700673699184138888388909452170974351717111627519866188795792841673081123334391584819801338761172791415118718977651839200924038557558877823577979186070711700139322702192927587323141811629040319343464733453804237293036910928516990199957349020718302970875719793732273314610312376360406950300618150784500879892940770940997721322378865251413745814517034264592650842209206697212561919124246883550203268428997954023160877552745248300962098559895724900171191258970772703756215470883143658771600484567930382098162446098700527557090999375137858699552874549954885545554769178437309186209822021227427013078556315873920830987447136319978054468516341366957607558254464512530009983994067354516907301850785852274274469629875224311249925717831751115624610291002789256604614627848312627121288367371928367813634099395550162221374348415011788208439987492071452101260707397327670802182031969200228668169110023021110397543036064668868224495866409683010391743708129424794283622560000567770660232546461827963329303480172258972561574174375482943687303793257612771130101562816420249398600746096743731472255137415442784947620355585377040123448972894260024089642303694490816886395108455939030086215629078220466789551643810179761381564242792882725935713610023809320979243084677065530024357602753470585832813442383893043809263349369055314075037675025176745610620917308626438790124999976290297876107876049819539734299745622146002006774655702342413479805211031227657752497198345536907760873318439050494085649415497204133502852987663291185024357122585511887033832238875259908220478558872629957027042361914177738516586252840762408468974983327515922956834127995624057269482465866562334153650459165297694664648510736987760790695879144531337283468442943668539883069652714997705658935776922171940512136784818333426568368473367586295961565803947656714433891598306777727947536608372760445158507721412343445173326662551338032571940698301100020623621889426465952167914484840339408678462072443500698686877477955720199767841490213933443364348594612922182649049577489043895979108386534121693619896822128845663893337752475354939144641260162686412182037264657692794660756836140629242482610963529128988090260299776680090296183530129441367682563706493531280194510913769640588157465631721435873701937361389232979308042696269607709832219049972915535253894630428698493038398821166342732096759690674116038881929893286870765920004434483407665552181875898290876442401506644859124418607061182401921122489115342831616030846365177387671160492540039609493901801571957037937435333913300425540038879613561072307112453252661154720371676096092724567151354511074345692636573382131159669229706854605285001786250428743868386547416417527246498031114341265267582529384195897105461418878317853814771155596601313644205838160585828189432701202323406499109106264969059564629798257196956419477611532952247060742364734455113770325742402502269389733276671795591363386556093502314957076425722812213927028813036946433367786714607371886740826924723027680952270391132759156956199169668453142350168750413993158485508517586313202763998140378272103529879456892198295903963864617475032942604523554523835254664004440960616574748565295526779217397479597512102166156387551139233214528045582209576909474527336052373733777901923950320387929027041311859577152532090584892861204736525072216185906326154580968063290762120077900824598687073674150272000211718000456321595113094287293094275508504534374309913211015759942132201626119835956462353539304596303424008608969181218242659543638669855641306392534073806015470023449254299093115929123655552769995801255857802403279688726026561976207721299094777901119152587527883615506461409265997297515810261701948494568464112587725087620501726173601581644801893489067625189746177790386916251805299449810803343413231669820160673029676623306963795444355171048604074982348969771591667021455303563143743631152149662850604059233538770898586334364751512486383866359544188906069212274077662783189094296926289752160511514423307284389675643582499092523335140519949200882565821691570239939339908940621677471363402248854019969771624878830529239046713254134241787803566534870256581669569300638193200389610536618081055397837539257361713794551937418939948000774812814709771226295302962139480712869880612500822991060646922057616607968196331953034775874922954517124264709846376073744753216365821354354416577196543415180252792881554824896053861812609837268631920007492884561246082450146327359768909142901918444357314950289403512364384733775571406782378964988792703736794850419010017067372354335464973886730130205556555876906990616638761858381962123716210015080644243788338928763463469851449790051501070045881641929053435898061444288459595052577848302588128411601978090217689596303483574995220404617533348570087110508468128549629294935926636338699735030521317097698299892512060601458241790937247395825132087735042579548119429855707246540124809922412323372260716024388935960977558560090960971082963638734739736216854293663505927792842721872625101652369336720577523773542961641529299323675785252793916577996765098336260121428160210227011263638783027479302979892895536937873240584673840588155099995930483345956341449626409241033974669845637475650210711931380226461162361761450127123568489634870429141716333569246540594943111964665880686205609635852190182652994987365174395736909974489319948275844251976871949892840214048997837231595924927025003658496232293801149522301722867917532614391557710025713639980935005353731729510644949802758321607614205727147603655510397091675881919099143096523448429850695244112821385242658186727919636265669732136066767435972419967756203648147941907150465395303546530316398945826863423582784998548609867384461865939527527990950563921668382310356630420384774856982195152257108557028542504778004512931171174195380536162026700607671712824768815281579900923355815947085062865642380022141809992023407392272561901612963425328683721162003754796799868373854108783901678305593661180667777402774242390193449465139652391138155402979446966271849883779080659601578350896611271713610416789307770696085306301062009816450548992787792049212477449705919987179342760174447434332515575042673087575222998241741216780397189789234978357736641661074968326055466814299046792476929769739804648562893297856558500024437743980981433017780212275463815243319256870478912911912940574379073608938447549242394246520176484380112044755321971835021509210106405786753502246205569069055404819101806851433615129865361110839616416281997129748028020718414660658353773283501975993920414690422477550374775346779167813922669846197712050662557265859095928822729114310253550074002680408343190302540962207374526525562493977011283410989951914452242335222287126334140616532387525800333376534567125687916435787139837818280919803991405312955841384918854279507526171976132143515992175613858634868161948039436947459225885411835438111948656304880908614509763982351926812099149072956998783712815485116855900643818967063918324788255417608093129031394576006417218115966360846992797132795393350912703936231838317961871201999025351152486042378247855068282205940199564777762446866701187656489698117599532821600040823300920995030726990590159124577891186367310176170572450404002994055940590143152633945249754082686750512537050070120022464165543474897489472106302969567773568515491288640217096586630573744774631384591114409145947606108336349437788862407434526793710076001245044820460900199868894513949490205475887170712943612940049990748902820380841790111644222637801453845755878056365495009481661639516095998631136883216416371312088104697239727652171820808387904086279695425962868195432561349046941273399806190530985561820094554409208198824468725668059258340887135205402551457630172758841971581709818704478650549833725764705457210298958077701576136843627911424483564371620771945032028668609118390109576682090108885343417846622520319787009438501964943017440488475837786008938656727168488682882636241153797628384004544001797020541596562026869345109869011301067283375935511139734388439059119242250725634781793710263953168487765085069221356222182685946585758474317423149995077302258344607757818662050904048641888185015755329227637874604092280124003319751732014232849633688663983154113102968066783307016709310921844110782740459298857446258046446403540069520610154398289126679975503793768430020461345408796805909231238357019171458387604278072529881081155525995119725795874135036708201530419164730837109832381413059279616741721543076676686777364262364490093961689357845766738220046755074575030339993923308974384788903979587130392924043468489138159126241793861735639951116254349211207488593833763475656278212807925175744624837241739330175984017165319162927714717384313486040249261738556881833119717509744449263920037191639759266481495156601770251738170123288364446997047905560748267895522948645652250769283099689727694061429553310019705718557878263123494483438765080416616554573445757089054927241333297924991533010134373451364869580881293863445294513808470151161337746457676441052331607525140002993077408011767110767325834035553487110210642348525904855379019317320496694134561218539756479242650004037973152086686916725534596079206306031367744949496137563317626638404927440810813719284748309166698892378804726116250000787103249309668195205593192442551534204322452567757322747556285373591164730574281032618482612278485112891818931287625582452215736484240137669879532907752940522895563253669669943035253705681883923771751369620825125299107175390650884346192178157966326257501560933197893275303965585403766431001095997500730468191568314199618887376937308548628419529082665901657974125291162374104015519391497398878096053839955724801607106650220022818644719452396000609464885008170276019406762472415702128999774065144139755796905676926834700177436062241617955106776473646157647728110350340311657393215917002273329916061381096654352149452413663623970987030474747429807995629736742595287838491942442547373577826765952284637732218228252449311776360445855905018114219877405065226711046667828842237936600762429052385079912443554200344392647053264108071792908684851220463962772799940689209921994105190811726314837749610286633235661002917570104024248932275970044682608785507913802438601959082977458852552005876204371637720994712520376038514239105828769918131177245139630998698347802674451675608577208080650015869504415496486140963961066091920352145203669646826295794351318887503397479443508177192732121482021745627909954586762620983797572562347388771249274698784298566147314660250366128310636029266130668786610566063182009859452786550450712498774224026031327616356269622768663350250222355563390454209589959446923005718940317436835843851920612655616265453317385111719493593407889523620738477625295024131633625022475153951739724620410995722788410223098787298183225459303847825557267419756993933597627799218147783463903896178528089251032903559129587526574083801948367062185919550735690959273366933732176751761863423568075832967146147726308559064610689197529715475230320849296383615941337353390030746125501358919795802023049804659828370339167006405071159246005864457316188159415889701135509456239571103241354849711842339118534727737102584286844189059112179277420258596626031619039880330287547895379752918191615894462904320468783209624495345429114060575043058095527286481064702200081668081823114241719792199084023654875635003829952576530540884718731891903445051563781543968824029549574268601162556713946884304012806642631560037215354850482788996609269004301266297489473896296021165123763034600379990540796535663860850020810497768205824748445881255595025639536054552192766267473935740443477492756511624816550034269515423742620321656096344868360746255758723320193982186828147204985578400857060390769878174387022122819836529869848470778275791471247325447277942821833737463530046532461458501533937012490945469983779094136881998349565948014104560315613254171126516169446322488651997162742259713497652805777549162968968338599105042059365386720585410971367269231625593768837602309743334773221204115943636717233564513300834652865824165109951509377945509295336200877307971867321533802190175895831309958932365098201403352241958008478156237271779602967732444445721126195215527447967687229409010053010801170853563466063846918270434039759014586671553513696281844949236573766067205801288527802798752744007500485030654008716356242049966310494788349695060614267504904426731738458237841726242780334945603841788330286252059640868658189752764626060588913348476204697682894119056019045503901221037883953892179604661904637466639972497656785009753531917687085638830958261207958601098047578722012991252749959556507408065747833083313547986260174524228170559857262839626967498693535190932959427499267573735046043641852852569592839986188828454707592353755832730891004400057897953128450697976833000805420219153834963090526867955228872249990183707344739328495947551839386612154727131552325544241821780614449861233766107350678860154922520965707101231544355591712139557583625366854901318453915939807620569029692296890935744780743988880444022758439286840233212603120774523343740288050629219198708496254994429706442098589762528156323744583026597050080124186951675211716617520395374936158131604534928837908386359783865324704228486113616324081325516793918380681655404509438161055522691159979507478643303586710319555201904478464455258983363172153078717899924386482398950251010476154540153640177620765385874644866427778634489760074282865874681508358152901613965646682880261589837510351908660791062965085055765753667339257705002707880333675061176081967382146456554460936735132720775981890945741070825754206581363412256291128349925624680886474344621690778811335056179292735323044689118855182863483844305633995636536646503069663589224261786256814999571331826167231990363544170385033388362306163491035323025010754763702615857586219643060019618559169199104340660892796392100386971277665009008852572696479195590381628371287570523044092332089529506293427699444955337359772601148561306102765232536959363668173867385009462037803894737017735941649560252930119017846944793543164109740945383754204975705635426693368317077810371241874247572305602258347664531697213732397806959322288165559814908503772463743950605599242436463062873969631028212412467926731067359480518198346531169841387336329858118959243498081080013255038881648383428549944637959455486277844244922488426252067091252716042402604600858731517405840783319061986996257550258473063997476556713202450165748329658819145756337697579279810145200674360624821595957676050137263929301617709235727112428869294736617813009606682704949319599823600045217515272266171425614069966277089765023969399659326362817546519949766280901187734749481492858238093309051712684157435850329913402301176935740469795189529154225231444284490861064546548114350098547648670493414149038513706067312921525328766660762314790247644226338785863064037121864659905572115732587114520136041480738997441365596345392554912492839601905007096340288968653936819020775235293866273477542943189244551819731810142897192022734044872828274927312685438328578255023195882801286843813929283483826553118671988810211114168182043816292136407999707767986994068058995689641831591239630680763942278814295538127535810922232423825410641056330969925228003395208385088253939467096231773215735681773336367600960973056116389266845135057472496309956854661383297956400522329092598063580177593959718388646278851364521030837348491931345028868198512607331742942187461067540542137229303282900521359040045579165906527554419824603527225743834040567865236825155803027131510663107671800262935513422187497795675351022310287671432269898940916161401927502780188846070931784215740151629692121603964451204372602953682428468986958210842709879388540600317200150230112391868923224590730699869191592476346571442116819295832621055518509978156610382522693498712594200322811060841424854411354909031670536304755669513036326576645296233539148477738002030977581521037235487646108938476160322621366054549983350558442375653146977385701900122997192602511528246545107655734965041482782535681281070995273381233503260157711255534056541012007311123650681918921291296096634059786257959565452199372188387224687787453253132107016478799138372076046970253418880344790138998231922021422936759382423037001233786187556575841041105658576313273360234670479376961314419293186048132007980663079323721621019359809074695590874743158919602347139424625643470561974206958433919654830477038780037947635629782509322310851736141261961371142521993341587065027405016264918047403095460303976944909369030707912904894412179886908378858886081348709854295417094728370796795928197293411748784687761227496949664904516599739163369712951148795977587172668952665776845209851115909816541128858275211178778283415050779488752876027520023901653476917054394887681843277888705460128809570634904245602990005424346472833490431832149238817574044414558342946550795058110563915143289386330123112968377970409456124294874188785243317196449202798238208371740918464812317271614705082646592874173514664094991335808533279193561192116436043069784419617611229217959642911648163892328686255388791127384166960350453731005697426808638470097992429666757828891084430741282509884169845386394259184620918887283264209693961185522096556681160983758476934693807457232605692663090930502846210123623518752358321824487607991831741125719140362506941352806013535246744903724510861747067809392498008329339679643589284363812253976399021932654654181897419944905969985046018995967289735543847064926173711819924144194259526629183174828133023667446290752435450267611756341565805348254049620263910879818952762540301306621305693274331899785215405761730013323091313574878523078167322539082825547566999726720762450282058099412534017664009282113798034473818514650508581089297043072520633473613831504381643222131354744298645053673846243510251730196738937012976264324661838606771014244615874378642667644906245636563852849299692979965457962571174763736381783164763925571182389633781369833831612982350618992850761860458451186067878497092777567991091556926248620438732931676864594765573327046953026288779198008755460722193728565452143649629787037743775388455811910607433993975565389578722960312169645564183494441059062517019297903295463810742430932020794550918330750615949470353244486034975939977697597563223439180597891189441150954826271744502478593391642876573180854451879967359908369100899732726378902157714576245418615218598562993634927174246628074704249671908131423696613279433320241171674466096765704667568265259176068215847328700158482434207862796105649413616836338932660954756865223444823569687354676447682706308993888565018365346087159873725999855617860460039871054000613791883554097368696584026807422748392029379745333635351190886154752566960045705322325687786061252788013361459441102209834468076445997145667437263782197388021442278975603294727865127663318102554445629279845148938133147482014382968111756060456508780342164473848078391113750996102909250605237422678267825396844642211478500297433638184141807073779132729784454342827872318383720409201471944533790884398965466563443481282441381716500200294709544053939803385066502561286876611685039607766378532848583930032181123409478991913080504400835663130077163245272839438279114848255992076938322629313481880879259052521031018215266385586577819699263810602458537473307449490599345905514380973934437371145990837322506395947555793553527707887469277197701610983056267466183153517465284271791836235347185947597971410659637459660323016645181432320954629798294032865022233749670504751487136105344766138746471439771375248622144955311436721076235592599022458070756253848857138080340371623327350464778407331643191777330005229635725101543747394533966255940849120821434989129355756567166839691145489362424644831213622390418880983301422884455547336575852149804625466741182272158316887265890019300721911896320811477374624350727765383936595763374813450547192023692241556655736992534900701698387793485506164299920560318157257670120240785598607508501097094898953323209301666718661646217464124893966496433524462090304274941334193738314959128273042277335294520956725570436690812622039552226514281191264090700075329440429849441126865555141302701866637631639501959867619331680967485924218824026710019514839444322175357015440856536335282001133551170631266533650112000860411666112738349039986209613566915212175810556007813634381177378422698791100529991887558342871307548135644924195222050660047482904562782449021547408462785490950732762207408476212476985418283617878746254978541361084325942703571569892492638952361393004985277839234719379822569683083617973402813499463878051008477190055088771613752052184031336495203902944657493634579755094708474958581615581244189533215800125030412839931332277816480381562215873604926717760797702878629968275556889691315485408431419969103983763814984958961902421420075998344994725011251347604297185806009321301033092524094859759415531230206107474634773387806608772456528914192070819976186825118738244360644049754287865596206539864041216186437319764749007825429421010183865823067726848208160258037085525366795110905923882189136669525297700897359261304156075624291076857271348500071216456501788058703299742366751495701292084658616105841460245186157619334421623421672023877279774686588592404002494727701766888912384524610182336853857609336217450699921571053742801618513510892005126290657772892774755175729076553107426010703671967019874578402647238189683439129474003984790481491315991110626400564591010798971666138641400993372709111153451725257195519496528897347190206397054611047009375251851481577366855635711819776276978526001018735004623610265645930805069757443113934840530432529720193874044137823712866269011934020862659543925521998462273168801617622278691259847771510991642564840821969472251242565413739593146555811749520087911483582743383491919885457744024274241312110048086168604036536555899882676300781803174146068056251216011152099615422806753122868590101351193652320547976118331743596948724201664379188161959453919073261468883947712785208241054778597788802421790399075731706278359860637793090349378894964303816515690434326601641314638372464169559340970656842278957003554414467229828352673068820734591904422696700719884159445906450081939215257544630921191036955216240227948894688693254129599774021343693479207713271070574841401335779425568858773807692404497826286978429325146987944177856947617332994580278622685631362619284859466042895190902745298499822290401405314595064588188924298063131441163620475218050574373820432941999293512307900515319124613909061172498875103767109178650715917736887725133029488975643504066418103274761915044227654669086204714249558808238027665468573392716682456394158546209839501530802046266528970303240699480683666871776657761870270760994180534080772766378865528639744525785702994105282707722763863608959380534490045727742599550911418112825623112545749050856949474134496193568085567090599144268538663543542347434740173396679686766284807400534001555289309924890025031944941976027823157890824628279471072015626820335647352660444677507759171066572346549892234407381078393401683184152531049526788755070549993119313454331956884400621065277500542969704781935118341774252198654958745009988510966873743625695790524693465901784043748472951185367420948790009354991588623991499268987191584983323170682113492141155644984704819432861609215905682341694130817165474946752812412882775032598857910776762856378472037575397909707397754484271752890247436014038745066968329181220642750311723017423911198740482952247016673029388344922917835533415892900534111501960855500663096596633535747327283961652189866969061554674838752516517448723922475955478490529685267156165668781196698615776931955113106582862996497626202260581757959121248882179680828948287719546587110758846113750452586322854223538746963548118239558935260279506204508437558891402373130083062381339791266841555006448597963326616755882203510278779970288072815501153316399352754205355003984692255270990964263954890494980427134101149501836282568221016253165141644433321235014877980304230470365947103886545780934827321884059241786809490957083382648653787272690637433928121193672831516723486713975385768407956035966391253407049854769487718361614103195054848443189162139470131759424133676849529904457919200995340008974836554387263027382553392459507324045903595750027468965885329263873720401630813114031220299783927751151393428779851861613247388675112271827393794618804180021242718371311659961589339662742737503133442725453816165087509346429162072896754447636769888299162433273574967371784025194003306748755212976555144511114597295493686368152739626909561201518474931211621879048531479542186459543462732278116089688772240294098625610855159703327874245915230013541692731856822036999133292044160991058606091483254885558862572764626774399743201823314155019105865532387308065341536061461723227369914644510960108296392764418373098398824031831533811355200051894717869682374557960960251660377795485544225075967317301525318265662335617712913291924825906124668550472863295607481560094408736314024939095391342222894748405321376265697983354633129298080856513173562488553372423831981656747450946617532630375399225979090551970201643457108025384215169453808136072087852640763160302560090492917275399825714232612340999576431548334237476074515762415056432428355321599728754605591569393374333514158416545368733184746243923777918729082910747608447542577385967332944176223019780287220530675573376387338241716621009883203931283918033089873538510788363497773499281950025055696152601457583906352014329385176621664866751512782430222168452079324883819739105875783089070088708580949560628154991517951663975641899737419483242346090894445475531597923924930348833202650926549945421151398847634107736710240425738028319374624340980301621023474666344087506555984350738459744123104692691946903181403932075382404275211175910876543197766558191283179243626041640526898189062702390997038422809142554875321693670329242698940460733871192254550656562130614769342218487011554768229220703284573310022086260447921882609252126687572337050520260312680330423825294729940370720234815576256965228036699685138469662820197807692121749974443244026669941722584437601733293232333243087061690378737382163850625956867325064937497366453603671082450318512642423488061005365250598601144329045812285390735546110736307527137104070953707124721782616014805228388563955496904797940698399887653587003581248825223107589933747331564155409773700990893875702971410619659218712327310568444090325605054868387839258961021589686413390257972409660253837153982735819947888216918502079790003090043215351037905622631196856434957748055707308422250423822698644712507206168635625898145504846761978129189384586958238051504665374931552894416194998091129298332432145281977787948447017213938438391309454534758206267470706167678640313283027528239184659138419611355209735042240505434211636551804107425601057664584815366282573444761796014968099302568466478998637915906708271025618571573989293391753910511808445706805919134661593274919461396609450262266275728201588721781827293642647453077336750954051333122926341469473422506318617093076433921286360354740631582041544115140344036312563652281108342872625637104692306457558122450708970859316357064924191759760313916509769473336451632469714547336143872658032412033839594097755140144905067409532097710419267748439171190765662519211105481411699406332769722022920405219546233839657377102747778109186124979015229815392482878557215981309586120201155199022251037789712312616600311592080210914544339872143656243087042773444443201434685196941386595057842928354960166130463973620787521712694513847283661371892443598961888063369691163403326746693520849397057867299748394357151986429619495397420751028978813120523262474089356134523565025833265117918348665505696499482538542302368797450158522122207339796260077490764919008187711753449582788298309450175371500405893536029749129950849981860260833331495536369982445069521141915982946861683394600403693233524265904657964339460870095664801728880506008291048254071282441775884141302866973243408644264578166470172767794746071241953421386911096745224038977856329708243733902072468341249606066516574434801751685338440428324560188933168678547969624507012608908460863950933478064846661014356203314512659002467176053368147832209237337065191757115091321462590079442684354028262482885786758072965743863520359090945231508869228148618336196146480078936208217904702632134601089125021074746013716714150994861897016685864069691935130286817768154417953179915709357192427392858071427099208790619670532204707485139081118584068689591247775737484637643582021795563949728784537198199250741630238194597606506493134744409547907265425721142260726482435920408664165829340417056766654412053400668790719781708565921064996633524369470059504952140356442380763134905526109419000361089210794850169468211114775777281615297447937343657316894634839657785842691293028515914710910276433476821367073257251275433949017230776373823921140178595432849264303173834729491417067762157918364713970943375227894497056992793499238209297956709250788118661751437831649563492350849977309656224947041702586999837417246484674380338018747271321733376648892721858329157095750589233394405752805099348642394253997881291106094490318721329691491328510122173002081835582798269961904783817266273230646695084681451234295669235748941955399755247738345414816729458495862930538779555926214938768534702770941302348658047989669607355744389574347400349129037738435394539468642104990142979330759259518045340806871476134273257400187077856590671848394377355232683819631331813201794092986576250958138300425810900658786888760669006020028875003404496527400928017006351854045858963147660096229021404478638413245750133865921498852625001657946813635374903441316464808243489297482078078332083202343937610647765839758941737603482814315991529412041377511552563918509115848625462345668561941890924733713792541073729020862190664290424827244418125203140286488886418317436201395476218751824923319855652779640573943665497283700419793942704436147652294232742811477584766306615881732136112232183372971396555661456786773445933719591900453113847032407840577589468066457831921201186092571795039493328443561186640993413048025002589824924219816078934615548900794168610251695074862025868113097297890889027949498026186327449965108026993079550124677647102140977185918780806276647281903411752513682827774765091243363628368740665415624075307795675423737362682083074255931881767006905430654105822953975823124539255255289613736163758336574483913686056333240409396337230486968312907956134935011546714436088152271640555443468394713890846455152137365681384128384862566074345539540637429388672392709117701912182166319663298665212582184510154940034128362919831641696787637116938018105867385744614654244204159183485540878317888741193105179584231451783899989805434020932312307222459265722920465389624077042749957964392676480748243441032529530813908896075635517959545281704046075666299369088283254905240674442269680498894793166499039803680473563223680331253368673586151578539394770430495067837993092339944227435501501252538549423967742907149785367007235579972686730723998690006736244779842676911311267341297472745554158994486513041745464963011936800683448435288673423374440083205969411372824168488927617322828112349699015007949989918394128853135877241079539881189951882491591942440792579546138609620841479667972845676875587869375482402716147602431432341813780231629933224937178658198645851093951406757209746236683353434194994276523851943711536266550319355131362067038257854642314826736957649753213164079642195503167970472311635860138237430360657607743620111370391061607541821570536531652589328972999509823815573751952846921707915553033248506134515139604882084180516818295555565278198898652760233434880579653898184643728829594270637658270463310207802073898322899306331430396581319421628207663324206786894485602740290809008115976529828935148711741593012827246435984948517498965542896708409557097112163995407198242812051001629121623485628066663880999405889460362717910119388875037872566684395346765368827400607305901178721307592522121920171279468019078366158249710383883166870375674565018566059628453244619146111504304399448596876622114022758122346145620765613026716121645798560999487196520908487524785993636161267438087131648892283993739295307228285313615944222270229162555633376424153821247312804586705221734753439348348697924882842194547285588068694756086799693020012305487665730015388713040128512982610110287311140233026208483718285039584615484644210037287282809074694804710468216977233415486394612016870701156564029422882121063156152418477603746816964198398584933382971609462210331915673733747801132483617542077208600859213847440149712917965628491929499575081726357423243747333358573966012200499231258926666078692395450432970593666031575191600999506889975888827480093768018607143530917798442936203235173320468612423637394195487948500974924539188061226434691766798245481012790492631457383608191864769018823161214737875624833224934147574138706734897638175868836645221451020123452982340074161702338753199869323109284799519310908406942454998468459422665763561232289484042414629723708940636286185303176365116359644015582374496513155083580530658112237293707373684441964509237062312408502347130190685322303134243089909525349879487702111742165267498282816015448560748392710845635442022670187159518662811574859190945392324674650359129130249938695711494187643204774975335119844425902259696028473397728062205426716806630557698976883897851597818210688476053199235603778466196581836731061419870303966502959768224656581462955772085847415172355567780796438828159492613845283652985537688287687038337940638055507799314655628685152872616447582188078545924062190861742663886608043855439654684508074623510841485199846895202956694617221100053236077818923972923795865216701453350146975760569803297758707995060560135812432913979135679834095003061509948828142791847438706427100885796455506887749599458029472751631799191804761736480408557143611196385452528177100075802329912440197517235151049444805483459623914675178314087537649192325923357978464044964352267644670501133877081142571234594580548244615626939340651859966897672857443714143660063779966609258025761790027604353120992717626678887100860434328656087798002315140315041784520936864406900410768234102339045282231605078350625820432843406024198809722266444896456358401703132387519774427832785364099634583983607137519898362694225407634186944713951715678831667077440013959358596422569596750691686203686843736864866255098884762030941140030343329795198270944108228084137924469665671151874633784071381825978048536372570714361407187399138572984379518149789912974474034568338952643115894120355598935708151559183322035833708940017056576693325334977651213728298069630898592767096972455292576269553338506723007343793442659573369739695163261617143640684024170083785492478676272551058548525918083914306513611367563494937205297863587548263173170132511305388727502083249590348432645186962229948546597779806443700410452467014004052596844094451556243199110904025491352367396870505829377681365803588622459937460773642206584757074908061968738267439071119694681013870938834358877156024368952250705899313540002643589005223508765619652017640641601985271303415299971836205011306043739051021260083560064318384163942375272881335831740185562169848335818634434745048186442988002028639893398321365265193037033224862658023294860508067247501316273995183058821811814037969944644965609264503071358866836061227171654200505583336524981314561432134985873875891433077114131659536996186709605970158586366349473627992025982024127234403235242857169671064096768235975254980013276051888251152370394236566950313070656579850066992058215575189060934173205135506138621282428864560864816044264262244460040458876761841672475470791166691933697335797480829637489909984433891086121683959826160923502905718205513007760491332916424041368665973388760952569723430236307870755694061947158419957922033505917625537929493601472171660426337099581887731481194874709314074378930862402207616382125717175429774192716029920092898636894821169269443538572877183670429074795954753412681939838348954765780153590051050364714727135261497070430734413782545309621067643995845943061132308134467531389285040711788123685440706116710886512435341643553417767175232337232269090306376146699105141371764737224072613339239259806628162108731289200318909402327731632789120613562097961714823855087007501328796681502595201753077288795226592576327046522061487485181233327320620487727012087422248111654620339726117114656867831518380499339105153726507447169355899937039037328937737533281280785856521139696897787499936990851982611073425544543802945913586059802013262167401109137733370246536825233525597861644615969571201987331385692938770783437066218468264287723747457061282242471342078711207565025278959058753152288376683983269829927702207645546454584873346569815976595993593963074467915946652077459956607127103823286389080130721635984131709445187277277023521764139418386232184196991914466484146082008894144059969952166037336695838708819172114838973227331820986514651949498799007030106841851917652814108113241308900015938791157532779628079804157530515609940373828651827018551858220068263621581219127416124939704339821814514337593813077007016636582794877272677800960734428843022764492190791480290814156681524110569360724069773032630051426241331441929474152619905842575730134245553541813081927487889609355377256403492003409139365914715702643070968614674311841408283471819786264105485858881771019901151264731809560985682784357754853055467086930947252670074967501680027312527656919883270043951543799834151102613092843801620730216476578166085062720941162309314271223623075230878498124738564301565020028705054323173081881795965495037835053550611355540495687611484283284040255853980826869905906028677737928624113972904019900785089503140756419628794439860513945518939058810655519162752457837706882755720465741861531921039090237616456622032517866836032633459977465559456664056269413589203354216982488930646311147670682785959102348442837011993669389816241299378146362755242526105577597746535806275358778391710007878469331024320817944459737950076684151403267849974325679749166491373841349272479606333657543307156916456780327757430762411812510243281639959711074359731867072610953097461519051604198661137673167623297797969528706372647028978949098827457665079007852786973806778307183901192499311530115322896333581504151210769708506210953042627306311973573167869519443535440545634332432578156832480354626461555212294321581833786684392438372085118173800573297650127837031824293267836964045699799123548480022133436356901930220807993058486981032245187925674871661663524021773473655513393437787077097330414293890279693024846232279760037070453655570329079890563698014763514373909755385056371367020645208666637481526007868534105625144293902875635365917898555727869930338288919754716968494094984430580835802782865881248611775396858948150447310195563493435710482280289744206738857748600747590230304512813572134773729223632772567750642006458226750320959556393453721548382652472318469880879408522666643678546321085214913977333244939680539538324474786235522325691659509103680494218960151471968740599635340274326740714989260180348044579897037401154879510474784399993338860237995658420482528670526553812539435566920941881336384648944371401740384996703106906606817019512256954690332921539242527081550946658984191762028457913926680507725223213100974067016940154851402497598609424771179378170557780470933623237735549165685367009986872881931009911371963942451314737003567839152722917295261077081572384119058968443945477064243287581179274516974124739134503401840804021528695731832745489983107379511591539279409294862333197460590071065176742438343230151980355674122122822918339019955996354966064339050511403911895164781595203105973822964448166660174412356274880666441380055743191824287205905023191352871753654324951765639529367598057818503729716177165613234047851857275818842612006169432019009456911272687400302313469695945519386372743029369262899299219659984540559780142159405829085930353246168075452254437091232409231274249883702244897141883991053346479420386462578407454324264210702186050437697536863910033525968083193357290083691156844486220676838293327436606331133828165795212104043400873310563553934513531634849291322315479055502010174417866455820528670952323868778028049019089954719655269047994660910987934497205454888279899469378200472120031146444812606803349142429687441469226037590038741227638717799439467454169417942878721526649920714103988662531001365973496906487705852488588740906588848955246127366063482373047606906406060957581658302272518506113552190771792805064601719810020934264044769111284523256768251465779298362514312648294202812048290058819807934961670496810850516076541873638803686190582912826056520424386397034881760661010243057852599944799350372902457258778731095796250005343136145610924991410960710747184252864343055420032073436309848685688061983945335998313746307342734640368979153553533300789108859344880456944945818940023978046671620015992883789877324317621457490549804599309179547489279182737103137860856416836385380463152972461661158035203087122909321997525389135965537987411550444312407285242735572205007505400551476066724052282896305362264708230994320720681933760733944306932970079565776741342483388380721119327395720697681810028281373846211128576701336565888267693874251095761027711253487601696696681378158122471174982316117649214470370813399764975403164735506941557794113934678693869951057247771842422421764654854381914600437811800238355845904273874657071199430869839095977775127709508969519111578787337713219873497120703480342057968251438956105336363607452757695526332882838237088473917047601126504047510779502646375226510989116844493604615235736002442473965375212657062708877655214845734625982657695399328538869894286810575845388662688419170819576561254311964709336504894196592619212904191912898804046377619288702249433128326240969300989343352925455274321106282474900017296716616163360359433984606206189242864490943426873013328318351265695082222090482036066487089068901810413803432125106274603608815679211184817078396473697186523223604840627381873633560345230520943486076597021151561087357485757321121100135451118870145108710198495505759506675899831382252088499186167515569325725490027130428826297235369588962475236686144765843875652627879562179944401125394014221883057714867614013357920390909031240829203376466411189338281397609404901828426261122092639483521600684133968930051002766048179565790903199177419474834306522136359081978535045806104011294056370107137263640529392326758927871675885026005890561874081628555537575655202061230196206853938203807419824687513313040820093049223329680213485752559618524171395334142450888441223757831044574853972066368859395785202775720595145591809798827556834625530734541840541443191507650569934772001647401623947761190287937592618374782855233732571309601693957963942311996119004626563548024368116054671386137341120339301398559867230938633804925281270946830192792973963434508026550945511209941855061842713288859350792661475618186628572844013516946216985047494845116637884337956226865125888503437759657874989393747786403973268848760110690616379927604211579736416082595425132840922948464094675638885337955119115664886295808517666907088867101109934142125591415592640342225137988389205036937122125718883595487272908010554337912224549864604024387850282994437714272467058235843756459351603771991349294956373727815140554468436106884480948218749400432639834796895859896106992498658753459898602038115248511941574689902239204100155893400135521246016515824036824293716451563850758163336053454936474360369630349760794766254980088700574008845050463927624275607121719512830479644390186356863847301065767772501633962624402443245737979587156067615564864987175356434728226989045783742486303397400544905291486915360250064547429928176036887442232233580000698027211608917139472943528667105796366882292759665813621124233280068362834770456811838547905210853744584963069582253861659220310497337870488252568571584482528590966235717299040212467713170921772655580238689195353455919677338636063709264476512799569362332885600008518617567135197159568169169740444242694224932983386003003355599751703502687704190111174932595482386459436538827552171265352436602128509172203803141806764232721546418287454659138688138798128192801172803475949001483067776529290182758655366180222013013971755501746130162169289209540846862665207409204558910376821469462503336294788372893762041950597058378026807676400065139103183626425902075165571106005686566941469344850490688620712972362752091737663649727718579726024296633016666291818647991922004147443073238538739200202186902377570031372338778522661440853113120225120707653455274815886188402303955252120474611554860595103138410184387194962879564542230202151669017190182856522803008624178303079197011421878299441827874679929290882742958159426940174025757258053659580292268463931388489435739449043116565043795407073071056098453799013324025818553553085820732086996434036071454726498375385016631379321734227488826872746089533886390436113765208869263917125137588516435792200868127421616464187858081152422310585523693815304322192296719841380122597405371923904159223189639187301404768408741258429676930720505701912236988172004862887227090303324417593043363915694881041066475121128048210372288949859730153018320615855141699315800554565038357355445042224469293380094381469275030266081408172150579376839970822730151645394477358861700654114167770956866493699182786745718150440338729650521920197346543347224752038362639620542947329543070475996143983974783785703227442607853061206019906961338208785562693013582362646446749781215660066775220558051526552576679919442800116504932582626594232032341525300103214080394344603993152834817428441637638213481687034315779418251873795368215677688767981499227674648260452918819775490061313302499838558686319746215896646198516811919622319054198560195369124452180517377863405831430191197019324050885415178284831575057097571387525161062556866741046936566200502572341091042866928998384714691437226300302550958269405226873082001922617081412033292905909162909888933832101758908840716315804235729097717677038048303408988960258726296169836732550704278607465955599003725840927396538058073803329323630057118281600031407721591302842205096281134739680413630430691034636510100731264794000856022320199065467593928713487345566429539236794185120647107222894934297282824618417375235807700199988642971988415368896830551112066441537039142888656122540387372220375341272566043106706631593019424120363456988607085768047997652451840930046022540271095204169372054929466225955218420313041321411216310624204518379435212829458613265952209586703649554248342359719531795831164580531094604209874818666992329480215148737198483476799999463380495188353155838687095825856655871803188131170309904117851231751743541280738210842894751825176532115281217252744091736406176577147894289436602974009694594513220533483291528886104664468839583884947315986668781967246927350047943815930065704883115569548603388258049874135787939488283678812716013903283651360242907442537732155325813858897344725109882155049511357039758984688012166421704162625798760826935676798984867427459371675515606239364237264112306775308312844154579028903950035519330573396785218062295637849800508010487294893949548748843739701406645073400259648840390158386272283078994294730411738664794479211653684172168715261964961627240123425661858911848380775305981708088751409952332710033103661368805673513858356920322191741985719055945913230872177957468140305905090011832973352547717620746074794138339779194126718578974206005911209346029436508204193682604122116287268148004191060202812199874213321211564259932627063693164814229808898701872496966103997055229525453574200274057281689699695354865273550609035569525411428220829061291260624744152051031728053089511303720016722629707845217540673684342861694313319404754364967194671767982783237651485112665028330132924382460674935424999196836653020164096311820368012463526261100894152524028284690863350738381355038174298289940077425836010140921785135944827472323302062307704114087236627481689544633551524300911337592137482826468919463398187265716621840150268528150746711346105821853659837196849456124402940704185979264614691230448433409176272278700978713829882176761040901420564128363261681944204818730111662851769550982052620481053345787594423724378504412390194432739737702503432855292794802691507082362989544826616456286774193677673966591809788413720195676657949246872911309484251401271426053925626330504518571909561461988951937333229482179790179819805394857738944671790960844902207868352967501200038877323307106106809772600309434141835667442464315951387211822200267906999582364904600102698031414782795034272047660344832676148477945142064828174507712461371539940960310333104148983106606950587867601948857585064816985330795250729774628013144477083701615028217560325846347184078485597512944825774141387438893147594529169452499123023792141620870981136403075218357011357971538630348755791234343099052270598915101727722467486744604397203723453495086148797204029593359760775730230931650339811987711103853041756145306200503499078929077142609078619052085419404713419740652710336817609951105436382149917314693124515865675388511456536222274116290942048623445556877935972335045128394038221462104882969300226436695942406192500652969423717028965417844615783509435748851072454756085141044198573355767389296243898530502514631826907112120698774643269152392198531162810576852647156659942546123207353138176681817323820377675139327302431935051606889290573446622338967208275055770587355108708462960653931647199668423689769622314446959381118129901203262035566906470457466546088125820859866191561312194317369701106319035922511002524065678682580941155096184906968645732610906633028922929686018804991951088948859938926097067839154527933408787362476591376831369815624041088763927694252475182802949135335062590680999205110848598685303108052546446752717620853268729685822500114154468111924676294774153836451462033148790376496408480127815654545912548808621943492185199540991559662338501575778009450654241332613144147725203010711325797673768987288629579152869896115388287510973886105268422890628620941123483648910671373709291943542009737547778561866261581432684012809633474518238799992572936290550884697712116669217917327061993655715205785766426358105239697675711485377330845306816359139774622901230711062906442081823252594690553598328937510465051709813522589738948726925784770932772552844914520858226997701912107063668969526646268733424635621943474884845752214226909344068477700113425828674602528019690424477034280429041495742182825845334418076209525457912257140911659164280759278828835734926527058454132065987502905152326086032550630543337375488603394357417975506874777670764159220275355339454131057035455250165179640673166321953863723933977081887130284111494570486350275028909635888434422843933645040904776173459427784422496348108446331777198706242175120886022439329802675773990277861187551940402651928008861019586883505093991219734986958986891445914247716862599536525027193957498036310264789947832823838084797747816601378028633267418634997517243747182803094585658682667312896651116968536100729308163932383709845231216671078788158310007606929304075441777153646473086827772458988807418291004037332579395630102126047135918972534703855421791790543742483909602152749921573891971660627281229360920249416530590350910188725951037439685917812319523572219940800024407660798929289102462673278780848734124473951503048567273736238062729118009089612348951267041585760589910891362357177339381502518684333512686638710555964148657885376674538186713438338322133032743544316578613203862500595591866544641735993252266451330681931456800126750374954519049729725966254025497526910161408472998357978879413152868022367452944928559155065337448303601070373550173786214272708353990956209767936602129136099467084514597687393127903332170609403323713062468925794562867099474312361848067104240084460755479704985479555670222893329661236217855395126297107235595178094423143538994609098033525786577625940549395102350946475052173935819953507057630801628373282059479402111151698963377452079096710798019171045969933915161515702802546753540751790502178418067621227398417348804017346590123870219471447977823620620262329633424565577653715583493351719523903405176195916998451754944213600285940519263693358093495205421745391693419392642415626522985768015117981201985212147753360912331373047994468912283396031317851947795858100368501393353508772647280139435022230280289808317018093238744164894951589714486670590333948142217478653909270041827560381727609466788570654984563655378489958406982114555275192412371125640240546367867399179586931048882812171813826003584702509843297106881879664755047115947305055321281258336291793221942868796941573611460019515105676658816578037199235419353851090970699879097808466125477165785863343874474064892489008631151050652036007077107102405749062601066743474150816765775613239963829439333368341011929304560479270415974595097254476943284555513008635805128370041851720370175866955042555636238118694088452985872629417411128444600680894465392219864874264687665324990192173113883206777889711972665183029244246592711385728251962285441474822368873693698302781236866656838450266220902442535971015629235755911638481232994532792625634473701386733776852677369455977462592341108246913808171601557991930184355287793953209236140413699202937225198231123639355532513946976376525023601563026563864650972539295583065240795769600218457060521717423340109180125255148792087471877830271720241569230629450906039036063435425215289286120414118592483346667262042617511741038677429988477970989977795441877236213511922420085634494887560565250499048420630931440044879949116026287788959822430305540995223946746147204037549902361047073578085543726913629147350408010530498351419643376857366669770570053790707418320928165777394940785587764108641504955858371694677487124076156271216063630321948116971913492423894438788466743354284899722862978049069183750205786946519346759138779309346000223909887189498348075539065912871931798988221646614738387142209574467952244868815847525992234647603076597955851950632871240285671509781950763325264299066136337409225979163221562845621250218172059904769661338098061143509376887387026404151162265687556349613739472217641550789160516697070615352414740812164337798927888328868473625884952500581220311978110307283833316053603770709631359115194728764995206875636883062520600130610418486995473664364211799891376628082597085780139448554987098862262884262939047322047712818324933463586770467808063722589950420679103171145523934218989556058162059792136825899736890921043480844483731431798278393178507471092664863031101350568112366160881597936534989723165775243830464434185714264452002651135533083086702895719882904887249173587455224589993623709105095862142065703648997563115690423701569642435355310038631394801476492561478456637994869977658777898913933435387257792590305955694590166788488360405855698585034579525487115031188414913601371293570307306008050605418736452296269683698554414204886939193992616578109027353231448527797124517060397087008719958865967985468629394511617764158406526121949322481672139027171233993887777314360278606033937455074537255060814871240872151328908124262136689598642326017972644017187117369242726483568314836075707025985562218519295428329388488118209773694853576559933634000192502510039778746184859013769966008435699406875409753849540687370359281478397164075530076126964040042967625146686508321037448170531144271729970923957986338874554060829072608448049204552628892996803051312532921108515371004040839438513584428125512756415698613724564724218814389770990078345805947446559096259885293065811889848962675092662517454533963716296308081291673330306755237909708685821526851587952519771471548410790680898933049741888434712827014310520303468507403562221994011897986298716734062671365278580556593498807718253689628999626775688599373947432543652737056577730795377419084010647432712132384052849511844782219070136886757731511952956882951206432870769391883398285324781571650001392222822219835947632987896411794512585256932047007637913327103533347489844234087544480358547167316458222594187073330383681618122265089893987675304079715163586874808036716944698942735553051059401187290100234093163083170749031302336637871872414488839388372353031263399238578233193210024318180138682814445987102244828440974181492817334847059151982553937533356563085586966481058852060136589099076422886678788179444243899602751629721468104308119218981167293132637346372359364145969165307238524540395161893521608200278342735579256899484879068526231075850985760625606112395981194820160691091374433169221471097688914998149732340624770883904269204286630091681169011896215778783762100546836107259762930040633098651382925287417819264576396991550092823826491365844843949696349553519609673743447168898038079432634407693693473878991942425712910679453493321342705934512828761578084670492924688443642390269215369497729809443712701762096192937216887580565752605590120777595511820284218531977317784139519676438352758624687024092628546184960187416329719976711501441881287297754925298886529164115668545737367289582222701725882458609448634393773583633939036511554462544501008180587508441610161661007436495927746718868128626507974881523675279648220534266641426113516814999154990976734352127986721799397544858455524521736852444279823558362820708256797024638057877719226624466205440482338403335208151852011008841192683880740571762223914531530698177748364927692180568961085340014827642583130956086701263695792932477034330322610155240831844891684180721808688151376956725266651422200254223646496350461169470731410079705597399208879416966675935921786445276245961726286464500313370410264992304434550678952166364905015816835713800223584595203466895120859692335995937903833722982361139159667006073027461593168349315513548765661154143098026283187561214019355571136241425533117116252268779649565878184166633127421865832749231387619090733238720540452882477047566932777278472560537883492812388649097280380542591602897223292424243697463201816810423722911835861873053438172937999608638882448506549132190037172057742060850306317787770902060184065465013768600196347157350499414420463153661024832152729868476474526509435965259971756017637949039450110450619807576432649154710740696859808241345169738783303684812696570052903781778660044805321927454432749265608310112567922133933463291472954214575731922481394357791895717537896273872146080665761186175933567676894652191058277381468782638579920717379937895769389320350837250426148857773774226516468542610416996907147882268961798683580184458454807152850911589345472425974382799554916597794468881542036497543206848941279270894020302228773174069767335218233881839566703378258729300967699382907487069888057969032264975584596531901651694703269104598312878627160168767761034801976184627992362445655184482470816587047119174733441429815649973464049769187228482966150100133803189661487748660030176656583033341379920182886694546367946123381028884923565984546289974634921565107524968982463596407890247913407913221042341798354649308725503371188604624432719102625953833775788106349611847334361745289914076381846546057812156935196813080353761624865691851720843567866914841225354234477926047802075271386647556424069262240380362907164106503136652838519360629065195493209628295768046878766116090563022339240109707447323452833772320418240956933400358295589397877413046228032908752730493177152562519040010183967306758229552617066547248206495708059624143791864212285661449149873115577364640460375916497215188817065782067359193199951663058549002284397494556736216859201619984748671457971069247366228073416004477433085880101959659748775410298396224828051855909138386721374832967147357642435427267240923503390559134093573463008460918663842542013148495270953419505790357708627388283834250317941928886277644691464606802310458671941599714056176695383224857751743441023878353817054646046117994755894607856759616939238663137654924523028446417774864467528386466375524293077109582361188577116307960584707858463011820108291495923619600918192395205736849547842071695106436806931511262851994000155497769985984439799890834619873204255943879171212981721809856346365731341392406752579866448614190233131490112826221247786077481078203777972871822380900642107385327223326488290050963766258045749435943859573107795498599120263113370213654121529660992751793503562294427643479027814300313178701321533866882700244656494530037234509293264559958017354062489443493211544607339665966862933973740957134371608560605604118877449786126742373139324024098201734015189577833226213528131472496007005663515386398644180443796829412132374605882817588855293848715789026767253332245269905922654166578840896736449169177993355616254354271179781534917288998883355721760343322900373925071712447316651379387217824237362245523356759303395928009778318617925392291057378994024900913966241588764161553833360936043678049724622279976144064195786429782201873603913775022795159236181341338043592692448504839885054514902567167217274243576600478978495833618481230277368756793396401482289604044690979345530049797066408590799053879681782454828152484256559222101306916827127834135982828060159919091796984722451920105159760142992627552118771357329659827564129553012191541015604170644347160020746887840129905838752422721588822020605289096714053537685814951531766052025048990366508551321192117504905192686558393010309282161908613212432844296710758678793028835528689905250871358194565030159392244307300014606750537205204304719915661230824785859722458706521633728369856692181497018009063907296563269817292717370058774529931015974658365108810070009550935557714276412850972693596252880426577387438782412015633391546239646208209864225115435683599352567396436540376223185278761935360025231707913265959638858901862658191701715222421227548533971980567040241430593180508351235387739891470978199607619962247930053448305725219712187478978114671192196951826891158630041717964499559640083706759089949669995932620881133399915168563627870312642869921319630083427944698479181691611534996571311406690899547184433503387676626501682716045886349575166842041387050258358713864047338139524456728989033183981733351271783645622098984955002607900344373249638754928661595983488960968159216989717488474522481731290753278388427117485754173186792862665368928891142254227768245332574077313679322333748366785992309913079771118021658273031203321932033903007277658004395102421498904127368311560060815487370261306615688763956863271026589821444801487977556913529863417890454543999227188352311644960777708730621344796008125038515597981989399689771932735569278928707502120777404792881629159931264534306581950520527166929703411584793647355621853331899366180387425853829514933624788542040311043610827002428290141858746026098199879506005328384089939891894106116978137790455119884916031253091084457840700378137349545345019739427762364328124209911159634813256377157607468632503764671400769588647292559022876779835850764219426320183461051911105320021966094955584853900823970341750639391568594886824964018700531659230201135984165278211619424669852229422442536948979709761693202678016732741185486307393199248430387980458784462607676632516962902149791669053547928882489001706905360822533139150680367196867659571479981777656410223788801323377667297940673561030692460851084707188811425500395202995082355388876071928828181213720614919349461692283093221371549770120240116114697396688827117734865865931729359754257044000192736807446157657792670122391197614500115047048139725678974461529811100398805005217291405204821302541865104243763600084046767438973870552116198380229047706737673568343633181881401893719814853928566646209140284467012761536610926932627232299985727391246146804173335802719482058370175285760364017418524496560993078866796530687598360760580228743289361728712944414137484578620677478225367218069612427540493474244428969660699394973740465142143646938332005747522284045289877782577929978261375538893889426170582220141078040535736034551951833758057573254413621621145189103603041128785798861136790299839238267754974653432396583206956836380103617478897518373535025279759084325118899603642923125342027594363055996874153810703455345437558267637690838325803592963516493011120240592011623543287915794342442922747587729252381154839098377796157048144234474904621796578147536044318957048041429860769528406236051363385448523328954012245051747629348097078483179002627569132618023228389281123076007389735497892648414641489580201349448819215917277109173026682171901430938612213037797447996600496702247218295249021740985828253340428844301258715220803990161561345475982523655214540810394021232692089665026955986589768577444401440194528920605350099771247490602455333804318504179696029257183743126709339753576471455859851434815641443495115287771725132687325284430968128586693780196050124025635637455272281457854694600761701584995242539218336067589907682787956938305802636474397025979536877888802807374218408134946041888319803858860219228857013765570429261536632165916469463091199992442813285880231089657000669251904573299589929736290209589816518973162008325142950992525074351780917811994065300383866902822012075311311556546966089463610403144757398456883010715650637636304385319667822598878433243595784733573252635769727927022610975792704951886620718082956327349916267430409823991843590829843937815905874931582232752866723343864974848066201679461828964427972645576717766028626900091448405345635203841024991808968702445710369511066743835857838135010329471366102643998992504647121637904077885617307977861223540507848425814537859523632008878468572170821360260716727208166841355559646806356246537640231602625854600603728350162034403545853091363747525548558892917254758181353555063607272370091562610489587496800970626283607602793714448474483766451173810537091743375273744768478656064818824432300684673793647687221514555615591327333562104713670313106934594966821975927959922047264496110446186206890166788618953415761147767851128973209380175252752747744276274757646636338002066786669353594402025196025499837211088881382592076740246327098266641581019142499380254305934866128002690350152954889317650907476431706012122364633776079056685547880384503889961511892499726138368609371064441287665393091593598613290119573600588330616826985882590553902959211925746162955255438009003814092142262905641975823738909404320812925296344161983796324771555544878625522382886490810267287582751852278415310697538230501595242209467368022330697973626053630763314452791554902523475037330393994912928258027578066418257696891695187270373892670015725944141815205678527202769348630710264501490922039818105415744008349951045398477406911538759408544221941256350761299144683859939244988337276539449548368044504389208617581804271574991303498324853694958237584709056830870338265564483489552684425922714086684562898897180534742716233983848942858706251725403383995755479270703803221795279523211766371576101908546583854335375254657912811438030249439415631661194650557287612156858882006341654405087825057026565414214593887832187819282146879025683522942795627855120816176542182885431008767915953098497785175882702320541043981700813154383587262171886067508960049139302957349408622520088290663740708102461517797630366841483414701812479114125363531752684117972647538771068599955853252994191320579266773014135428152013326324542042176583379196066047619456954377437270264403750954701642686295993912022947655914406793603967487616809193270594363644670770891173857771423999446675787680710557534515268178460072487694064752634574560981606600091695173675549404554530455176408935163661827074832654741441198522111256668290082617209544044587479901117445197890529840178455492301688796931774141032020476107954920825955409372789471390408016017800213150944812784534816621558190461818430581531598529557781351754987763722210928698928821368422454899420230378910085714874115094556603003513143960414168078913596850345149818330492434717285022883386754088498390153730945314894183774279512803007936246676003320261095442207524557222838243198922828637505163049273649601761241231102968185546471169809101864554378456878264656380226389772552439933530212353698644177587019680213020781670938258955129506568884085765058852357932724204867038112838353063501039570174877159106078356075415191996940165443419995917914267479942868934322352446216629428037142148424281446862317310539812272845098418746763539363756075230583841400991607926327920713797907885611926770165321583959081758489761219827768693799622980101385681073632346855918920043776340044114898570705552301403746228964475277344219170201470356432022432831071265873186481570935532112902535023197365182326409593401080861126490888896288111257508739605181322228922286901589681691032348813439695315045599757316382511223280674287992465244765681791377984715908709157534100520268927615863968389223116940491783145125804003234967841670541228588220211033326587195286968380969538024774615351707612351666698344372769067890798540435012075685260597775592676419480191211503236775915323239403657441601564557937188253140715479950138906700103286120440711648935810288045144890059919919064270147697593471607048809229522809054580300595559214467759148083768665628246635357409508508102039787776246262295704286174146457285785011604659140680328566601342447396469425861956254657780410775647077185960615042039776637315626149156070102927540780085967405008471135606600873876841050477739892059785590737571874153429110338889895248132490535162800445223218711949079531955876778908622947580874306958433425835800657368928769170693598647836843674575435773853072322667504758901877726134978745236970031230999168064761039465737277254159075828861713324641110109820803905146740078602153782560601696262145323053789698740741085999120150443992581120003837393279893046173826620164400574913494523554864478945001031880790916344715002769652698944562059056429277862525949569641051100612522530644532611282619063868748580214280322524745911607674602945281303781275141328058033846482974936809351720382429651396276647487034755717026423182382837702363526611944111269120270002146213382311600113311642452928223146377183523336540137567454987648196431321814567131944144850554428865424661857767957364452227749716377581698616362677186747006159008130704314986167099743834831717811809020389891632734031597866322702339847022777947617769896508632218759303389005067736500952150824956355066881826610948971237229025192487145526444397305783676570743249918868175945001793216354303769472056470240639260165196540074737531627789138542802370184340634992458386352952324777098406622691885409498947606011301812819906895155183917012190559365338186958922550235181836109196784870641063252282934709504907191329149213202148722521943757474888551160241887652044687195469042324270325097619238962132543513044236257184762069224728751189510074620460721397264354241144381677717797607590562319817349405640850024768793859793766104919311353269130216678036836142665066706028980655707967377684119366658061876122760158477075011786913948846733466156459721336536418807133083588995343204134144246231285623690463123770553948932504517270377144043082307194762221996847042255040528190107336960755727345600698427072077276499219229641682172803454225048293748316289254648161574817650876114121588112440500333583616068962312098691336346731170498907518400114477138375121192784322386653305895457424507491303773490579761433030437284651064722688730612281361772794585894382329270990801529980731987344103681391853514316167846469565876196634007810088107968574142561041178192885985684960887456545145680234954860208160667949078627186766065568474287146842376836096828549798655638455801343285474882519382900964402821275367986160976994714429915615221079690995942732194528156222973748167504193324163725463108958787758519908373473100126004701522675325666049622928657537507287431789361875743846075930346756118264845556152352348923120407903992034379103074028666844479500192992622134235863275356139537353474077179021917561250532185823916544565605768317883461638182454981922734488668144103812931463271453459468809156582407335939125722425543989861106675639003358133285813481752370595813741671308072768435160456912164061880798405859687538840175485544499692909788794627755808405416891312862483192859290637799383380097258285049271266792501335819582642273831816179684200333616234804160807736744183285571837938544785311199172419857497662695788093729786444847769210865297117169963922850677065819539270644701386119324000652540918918498802916998621511012080809634632987786911046993026477018995183261743869374074585133074996609754450303999086801695109454993443525529375339178980896422389152045824036242607484206676773744273986591282300856936021074382146928608174069962521033711766601816961049907746929277504571438209693333028553450955463909593747565226765640626133585263069674400957470343329394308482999811672708372307062277477381431736880707769483526315974385169455525509071560697893525171432951989576773539086236566658184945953241090007261621122242893246765267448407112018395153548327380764896158106736755604598247623515719252148364452336606588799856448427353339196916136930287929751092542268511003100396215174035255959572822522180196084089654655403074146577421752843851135980488737204798100794809745588619013621509485960428245769831020112246846788377793873949525347585537622738348293129426047652595407646173543718220859629473694500568553063207418024979653300461209477536289208783357083086524093582786613476078872387709715980394290389134460641878752748126880160840105779357275763224887331981497968216895061234966546990574465490241636820191523720057894717550199171291168874838982396537045733774363020144799979037549794896158640411693605862470534709195451477432206867295031131231944107175415407429184065940193421375238130119461386697871064241510220534410504857083294614068138055615210108062068284350454220899203477462101186639286267959531006966437874009010992701093148167911477021812298548261244104093889357738683514558455675571256040535605663108258388561459024301805053064823412544308281404252419777884251794500540932563789065306502923029798375000951540061884495881393149608776572622441304340765637834377200990306092340605660979237025016193045473252318362629662130902120230821896733802216255745231231438895654678297077310981083892813958173405827749087817198759739752825275558718938521175663547673630554905759824604103201713966579728981828257251416505759425565096077921674031312102278828409635176173751627254689761710874995523643274952991289888344523403305777049391453330969415486936489735872534862736294476757521942915173539845998154289191107058541287525927043874401764332991907103616925397139760608951464245194133379892465999288345915660593210481746714230335982858153394146030496906008015505456775029120415325817019183924140969576842289671203436804437672811135182425370712717726017723854038037314539829850889667596638176675637647226123650921866595289774290428245857234320680817706109785980562330255407504032740186658222610628462891058292598512952524105898691990034964191702288473984268372029415648591225204704085969426022897715885997329606820506992646606323966723419432486418177942752583204784044829926891280361622644331774178767754864391729330977913760874314188859185146956944301469284262481716501963872263333822129238926917212504136975287608581795240062667459963030089419388693794806099935380688368608357907816639228204640705824918031089141879994126235281264667826916360687630767415277809222079187612488017839847714413591999215219108680623984042165287022205210633059842296735579945893345881920649720508343199194446423466172758920044205044308746878859311972925512543699819738594636721635457818039597214682746641176236153896083881019995965522649324582310193544679910097847217984085437227451071963594073933264586392977872265676979499531884058992142920555295525452932556060806365039968148002253795713440397786460168353991406567417313005587588306272271142076793514887624177024537457914422421369280294641838748395734399759200779446665394412469398284479968239373193180578517212994819645087850180744691902800870347704871796376996646485660250721948844805259822281649592989383669934912344736848066483633351824054127252483671248774554998835103061058258366332144548246592763094333509740277132421905607650801469393737628290006817724240087519566426231183911373993962779742781850704999838690368920710924897763354332332057534544933241090990449925772902282543695435266979242285877863085658903684960168282886174688608881159966986746284887946928867281318836756038966854178676447237017947302927304880116561154807639218521474559996886935503216794905228342669368840030551209867982099647145804410946198333141405890234167593568839688163080683018840082676314208667704314422405748152314231655131293568152327436784419259871641088842306969387834761657695013230823183590200620683710769016730588743082742325127920193032160021197002731095847303411430063109449573875169647684224271900346537980532113925697597252418914239278575522239267633666148271603152098077029209344501694355829505832754914286462022287669368268243906436594705128297262906579357804637005631088104564902001824203820612114873330737285399111785385380589278317853537735259317450336185375833311542824999092204056528037461154715196461219615195590714175456350763235250845425841726579408143029371929272106901044606447145671300396249261943881265217604873904601790150333046173313723508587514375115493447984634275936763614236546956351446113871502466252545252556074319454804067601055878170444084921246878265126689066055965099187450966308610952002652885065663037292076829258459076742455072154646353906540053563201253367056920289713176183662035980411072639681968822505462427043030874473632534486040159879393635685028971332367793209957774531218998180745486204175797538187953682413309321528442501575043515647817209736895794146314013370161592381568615635927265353006451452374276102538555463444494672735027437731185383371515502928479338324146059353103124030903359917238663627433978366968288875530909811037458747032195099558730493782469533030236705987523705433025297173634700910849457229476388903216384247148552992148290276583958035693572771945811587401861318394651658451990332993126551593575497025706607361226258317648623077731832825262207889780832771157883176661412341690430126696699663035649926921854891825169342174735538406960444495050998152737220454351346426889291864051201181107362886296605719548606925179854572997631655064590913135041776639034290070264852304285801329215047095635947554244296205302137351209173000088236797053817544021158312246317180997119080993878667591007805264420451110710242917335333881953318230870000551707505599530586321746013859813264087173735069410094227333323213225840111386354778077743055870079410373251715250296892867858266368655945719520617590710376922426617096691649445386879802857299070875806790199130533333806837827786992567416870156692299046269384945003219240097387215549279188858136247070041480346177746304815448850098537394762489410531664638019271103768839078112955515103688823022164083506436829015544940747585599014672840050094395883061326037028078138477147776446823354326000753344280403280776324989018412423385478375836515827229033485689958976725875987323600812593963671438605063748186427808784783099660500459950939439999773111239870488994183310127110831837395400336725729746107092133360016956778894120815846414550234901219321859397038497490563931397836016183285927999992402964475347373615511188931817126315552339568105713336813670477150524946917086999288951357527589650815276592042897932649440565703981567210011490354087875747320401491260285643581009031082060989430746119141677250492570590267796137952526115608528880213364291329890795235068264204551864245980088844098198851698465261781252828944050793920666283860154854282258999870176527548285182106767286736600435041940783040207069891859753072855707545572334263472326620989126818637306647186775122969037553298388399225533989908560376597878894705454832577745549964973387678965631149094689291596881051242877254945755050289548721322188360354781154366554283150560630978124615087973346329186269136618252084029139009159356351268095311267111647442243048899719701869504548167616457629096863203532713220313281330473469754930366085792088692004588927039289442216716723871295069654735445561889794256181317869345772716592493103169153169650268509095448684099407828517094351359141275860013126001038903521976880361264912053542674433249767465303810619061757974989042806796649897801557648916846722967458347359915324909727773274305792284426126662159871957243386184729862431095977262983837824265285189872100133539644674733059044228381814564956802962245723858212821575178758471916252337779775273634072644527676606644359310022351271190002748430763646556019536460686853788886713955138631014410589211981513288370746452670453701013079782959583238529132877078994089187049265631864449129439249383563364245602757416750492832215624278869836492908697013899702929909341371913009487799789929221672040881207627616205954479417088601897721264363930839678217815855547254519973259938516257861584146364179186530241942024415580420256711526821132400648693939671543463834031256164595613516708826025184797343773619711885437239798031041635467961907713239502986602314995722389446187462604782390528034433061692430112183120092789765280117640111405063065337992899218504414803735055039816119211752517015362251572885882963964236199493820060982571796191645961917290695944005039813634818147075657357020486059507867085045499479392995370167631626107181192127521604228737795175739723795101831645348008030907991939962710330008402545096020368010891402565348366148429851810245705379349137124765679104020527465527471071746201472315589951948362591094812673555535184200528224614164734795545151235192304762795064025295526941549049211665707477529940571107292002000068318041496903203679698887801151802971772829105512217918099287616536343560036178192701781301915452587880805992590514573887075514554604972268465081713350685780515785244688070542467861677935266391192309824669042371618181262717919481037966989584992256152375206918992785996202997513673254146988525102792399409781681042750402899536489454473060423678050064625618494246550826969359277633691072763213970259705777781340287042330501323736207835110334506652271989684042497107089086040524941873378189209736268141584732381941416597676457444977602933640761434351130942263113264056501986345852244889533763840308525508463913105611924498099076243834732783320959731336450430534569370284336412766028148460488383353635111635680413587905895320917955140095224398969859651423278757106420848118809465712486298504242276237997745271284273708068303540704295549580622647674271493828737628391237915717998886785382529629064348771555846605833104652944956090241647946798627285753561591831693791529586003493179523337608539822471254971219155699233604630001551789643453680242756112713151850437029438596306619841383101749629145709354258847479231926733797121542285049742351147360482640509851043653044733128781943711071545213671409808549009334090253030861633605944496151480374132643569000571235230949040368283391592063441333424178225168273306472984906180414814949357041691226297415391982131002974495011455643598342082093378616700324515949424419518221613701916629381372300478826724328637491174918144245987861531881462386947974267099380956916534208168187757800662203119446157845871351519316557981629126671002291630704687002393643753514123815195422556589212845200112313409571486668346958330008646493215025357393949710018214218262137750062933352950088439155078075581074620075358407174966551378183770577256759465191205325647019869234003094598142681010674149967981857199383834688137373252325117476501370023058794653390222675390048476902386399424974176031823642819492115197328619750822485171911064151975933358144731826301215109117511154271338289696358062023933052233329777979545631634434889490788463983305314667914568801903478275647429121003861067373563300554489456979871569892020379446192724199483520609525850307298108041072496147191375240561053074084048828829171069593139527990747279508508083171077756299422886276083978438788778369056082336390646239194914134826321251086909814749015404997581116273989602094731974173614988482975192011688702887135171935108175059919023740871515903603046019878086130132661914741459826209859370730432190408162685301931660891894212218050081169535618242469800654089044012767763577097381065155665482388873617100241970378304450176934153253853795364627853638785288668364749954385611971153994164767549109928868023115653381332736516204857561638470734521657286328677951069674903400580216183459514080181728536032416508757097387669549321848794233851243014027581298761426450763176741399376371512285970239179610150946645055329164694731096802693185212754001392349193496946864265218964661607966443444099685616252191254258184223738753345907111978715330103603861228449632768503326164989770699738699186004004187415611533854188715483410564742566588884938866498560822523673733784568130894071204636458163718411478493103422608506438188487262353284560269960019179606843254649626333934306369993300516152589826667198351263133072963089773671872775573402857612767128540806731969708910587785026844753912394664390319863515443945364245696730846497568218329144620207256156921151740011717395591770630551586976815853844443130083408699236080702390681555726567164578443953179487733808746291193103606767975675822968988976607593204964384576869387983115264859702992798670887246519564904727028892638987882295568870950543927614424263902691261093637941242718609898768538438813747496460509374907484044124844823108420034204892228156008610855859288817358061787656146612428748460231136095030570645896707323555964233260321528920450543703480749577792884437999602080302495672490035602301668117698838829798218279903761050806907302160370859495219555216624607067372296637999048007409276706005168335316228027658109910746120095783246793999629904316999122064464460732838082854826714977641003833354245699864173394375003277924244516783531479535715495677098482114308824765905857183446968036546125835994022605488828411256708151203333109212657709812427355615851218157172468095662191924784216187936678651599850037790288654012050338490412564504536832162724093833280207205835451011764417649831190249711859429906243673532209456282886974815926031588619410992408045840468396671817057381355785827859185974957515169877812887326331618654542616466014890125474276642179812195059966649511100226435204772596462169379815245518432706506591325938186673420460855977113451080649198081533536065779849924391765034520146780915398336019306113503228636600453452458051495251726295887425933415448424611303822095082617427373209955594767452685789945157204503424603233095225871717294813135643428894177813263436498940763765815838069956832905133597979181840305297265018115307655417734078491584130510557288482569783390610444057573581874539742775985043467586560524129739191643580627988974209396646140458151067945295023912454294026364163517948974250737307121351158867025922612822560993813904583216042105138092771879885937771923978266740491774759158127905489530489590544637641382648334572780576536230613368072344206007997426931058595545071753657633658711380317217372532422666457188699017786279998552412848556269491579670910425942653818935150039074104048501276711671797429271861464076102208310516694484327022325709346693581008003387702273311812062745606553100200705882352327838080009928856173554420087374367399392153048563769780718367613520500600721184982532377416429711953897491540031922709387010943636956167308867610819779375922060507829824719317623445801591565148193184457229142607815241144061542908198248069134947358800557909864238550864729558776450793521690989998554956379401477912828131225970755135398826838778829241619038342071215540427483301326992044821361621978460258083096248915931129988990737503354446900097126654941125297450916213496674832892113318543808331063804491514513144896354733700010466759290848898311544886724793608502487445911082169483044210067212926162983477427364329670546955868598366526012416627654429621290525849842709507340832627468019425225871009143681359487942196395386214169033834659938366092098741221419637523462023466118099806862321278784086136294114276565376676954157778114741015518320496947402819002523103290479729407306261299566902614336375921261051866381206665169543886558624957139145858802880214340950709778903649459456399058490727593332337326204204089184605195715652185738508021658748154730091131100159447730314575847997555011311659105490481189339004070712614484119105580226313496551216797141362432568253994420058421187831433483960803767716620225445208918856434397944503101103921255142177439068484200938637198032056158295601406512317209723335110918439617162103921215050676042954778930930329441823503429903345500535452149795304089569906918627892736221602844817072015852344542355894553986238695327339264166747949429788906507671588168453907491707860940657413223885851405716524421054369236322911705094580286136752307857566272030224462313970764365021324237812415025823987201444580886461915159198662095037555758951764808782355657881597889800633035995294596116699920779671678244206476377332986232072598360653663000545336818413773734950729266327484284054867961900747396406352018597858638806125364130086449223662564616819106633010820838246530538811033041349578861047585100603696036118008456220910311105761242300075317943182131862149221313487764441807334726648765813665768581295980361741667439898210027641070015234245740392310984286918550194441995632058731726752224818917666994320161748032524165362083386951815483478723337277846256687295742667993381549905888671847074881439173695590101555017280180232229257615410993696854646950603078541948987368975379410418301321713701100181161773080579586551371776369737710789949204422874084829464327222970830858999985412756224130897222798883293248970574642384209126600777341987853598656365046740310718613663756471415431419884295307225349278250126257618941269123292335510831286802347474115495538604214671115070661721968781376568019450662304189344961131858354048474248769058348947797943723102078482248635532302793601099078107126406407075520740751590924570061363522082186411019540530259437361332705022550693482394260151607408556039066628672205331323539301278771061637058852003628477692134377600369042018661152158088400320584682842663958952868857921776651215043571324200685793254422919953340528062006449196992357224468148007493406966830158464273319506098825790668916614935916366214469316348990384984906197371074826370109989852213879400615371752003398138819609588330350503097840033525113457814153928144051160548486513334101282784018443521367519459802123896494185754383730668435267081362289643604364995090923335540708194110222478867765450876037587802782079122788660460592574812369661567524137822637360728066682034821812267211101559998393884418535097726185624708058125496766391360908481895516907417986087318931875572246755361698898532668260541494217473568887286617418615149253467163417758935149395361253647250252439875316818250104312903954900838286419398266323139627504225136269563554650187465750931679884220594062952731070193320342890009064248486286864494650210406677153769344304768268228861367927332603025217378702611089294290249291152746214798294022630697964756375495184064500393787843577040312404538350347054966059037195446223253544964959889699815474548336422515475405456223482678682712121282213899111050430382127031955268584316331098641364363743505273878733774499714894483893034299803415979433966424811231766573348457902139957597010764811960392737648772610601203830096254893515932548119331721335809574621875619869656268980721270386103398322726400970473418353360825479383625553847726784596544374279460113613559878775328904245683198140936556433752928138544306802872543710090927369875456971726907766848031797789934253134186071281558810971968998363272633719264393504013360674988875825119584498716015085538300789848028070177823572423139380156293533282733364471274190718590679433075595544378506456469766733049930287562825099468668164502083588629333229097761420167644089970818910264101668368723341235948290883680033528987502082971218874329922034745579839181256130296713428719278696383340609552393758217766434259444174853403368117206870361086284296451579592292997061598953498186687600474113644424886607127784780217533516291425459892176912101248503707208276299325209363734184011038963858900089003702703766971437928387011437163552257851750322760621239452635238916755049855045362233480983517358073653880045536826051234018367740150877945122020060054480210903138338584056219241012637910187121889501372023414242487177321757885607497649020191751803566337080387604206476808521338414158376980349444696976702853588843621926134158155222827265653928555486951510719231550186121095995335084349772296853870235743638729870880376179752995746988068136677274669697730904850010942572407095797838195808368903951500647008543048022864787024132301036690685444138572112325245292486826957872697441215594784626066177679407366775707348884060064735387486473783382725167529420719345853488119966559638267750163300417843653297256753532759343913308326551272276803812228950311941073250696303020490205173246895329403261298329631463698109236113081674393992978349097217527011230588340401935542694012799830116358879873783818672683590460161118694059054103873323467518587870196857689531114551779868823288195112315767159131658078794805458033645215011351542356627298514282960759161893318030045700955756640404030018105732532990692501557146789606048562800716652537854028730169737480643845893177812435732512594156291705072249936684038572060141912092535464215692198944963610624741060219502108657338588320898002981246242733286023132632049599054395068359749283311706954972034814259355597928690691217585496376837980738123338788748815467753576385911172703011680766612112344528988656272873973493446521504499849892438943100777056854919777120048903763462747091066394583929112009128130694881655756669057024887759780469553092319853960070579992334879288148703849176050674287117813522206892466808134706647907931585040820603153487976592514253626398669163100342239883611430021702533958586398745135101249979439857896564770408546806168094575173326014202057902830906078949151789840672079174015557101136402170666553607838077012229075491130826605909761446818944424428194768892581845121272809227845671108436237807065660990068776729165326043291895033716541199991315143989482796889814515272305564782075932306764354411517288281425166549680485001480388402209877206470547625094165914061036218608018347638385754520609340996312361209175463013205517358989170238360231238092197867532051069516108202176669180766281439270389017221716220013661948283683799825009277285605295504189440825126967416751169176432899361727387270486854648216810888803171376777512607089658721680716409590381600937232618736685137329786196069305968576097654182193057006357950987681343332643885691021070164692992752590097069175655126528189300443612479721349852366656030025627981036284061221925212095535667106314055650725535844416401092482838363104261865420076913285807147050285270254468767439889216971086825841008330778685438864211000316801658942886389697659614083053192064387345383406865064869853708080143951696513228725572371211382001300420038911053345792537287592195830671613688749484773720357775629459383614239260652474812376340496003485140306529268732894287325254863523844512558518443536177377548726639442057402789588861344346013240894922386142110259325889225344783961706420796293302050982041092856938210825345472655085035989714497301128116776383651006988604289375218218237771431569088862837157804233611011496130045178142960483764546356030368165163482572354224543762472114421649365876848595804861332705925557935306892609080256755241822800592279611939876933816343598825935071145137736290008337151221484912784764842656736382392547797523473026403811679839656207741556130105887722586839865905163917074896541931208981911873622788226493835994087371921641575036100658855022315139389623929289078121886124964369929898638886776414771113214955307368760570515004274079249296480451120468459889013693393089834200784047701476980522959613473082392475158396696846399915945278982551683229048010512327233995843627583786480928752838044684407779308354962275025497418580233795534390870119910559936349407854856082386377191815523616391799277032855128030151068690849247488807315668312614683744799573683953430282622334751237208734638672510554819267682651830453851705007494851581853128539525734279275583797743858587581573551181282748425701437102648418153122728003413113307985090721405694780740064098666849374219823234375760096760663649409201631831123520555223032465345699416113031022141326031990553913119644731218355591634919496047847929781312476522129232480673170684668052035332393914782476717144210569532384849445363444684066074714118715121253394381303437886901133932112606165312734182082056041179130180556046475928547930541132694702823932590252486645871891740013732988508261835145365917266238837250409654415664433285168410299685039702437377813515814020101776821903194875574722056405168421108402286014426949644342903834410713038745205424759568234251264777411140066075692446730559156572429663636441275787398594626062593820668191862433769499051529842524424763423209071752610283779710303260178204254546613680277462004731982068701066386907616114979892800913171436079901402140220912708760919641797252596707667808505379751558335578651272992530913678979667661374959403117645107185080139615984182099501056049731148574198974571593684942728377829609712146796752297754924664842631819187598813846885183100586534385622428740910289590529709546374947218728776468702084468238391801601253504909216391902231095323014035099280552850303319124416561516480237943929685490047033025677969479395871331510479143630461115631501272193938575479457508031880701736995772645048143673592386107414104468225143616684059226010678745015885543746214403372732787383922844365399506291980048554929494402711370590249844032985495615864841252640969435823295198951869420421878123928550863289892565928376894664687862904265603253430636909248223219630289075087136852978896618138302659825669643354015611286705459046677743357517310134410684600620177907322525598330830410462277848245453960351417997681308499049708582640261594514353136301640596784700237376251540832023408518445470715556363240522681280580220527317922793839930110275582530209655870585797114401483037295291013950519847482492800769526388150801352226415436695679369988468574174656625867051650385994967046903348615347821091573256197686922327267243311916215873641535818169929535859619065827686224797532851361347635982852585635153665671180259360238806527513777130147805135586539038410811662525725961105574068063278139963383635570698334680187274830711549669502882383967264286577950399979789192302047647956895898666992729233327209622019699089717830931742204906016677755888116564423317905099310702897106369066601421894900905588176922209429768475955758446811326399793463989471623900695847778103431604152636090405192528952117494712869086788244142207902399867195017728811202349352238713011669351850497608554074164617301081061445815932955798508149547441925677727170367145130780008054278787347374666539772910897058156084057706242459961528211573056020908191929801258154800546798794730682530266668597066594250599877470624535272411738428813721914766131803533937507437387919101541680466661770038400501694627519600224288484107567738506804605985726359166828334169072925421103834876128573280085429412249862353847579913606678528326709216906891152733221202062145391885028978852026607135752594044446822695955364161892712731177474629673630773151813336754827699073466341359845031061224046081584820937823001777277131847495809112345287553347720245095137387000312049481883608553588166093180244043621684160538907177132905809554857438443259978927568440551977411340522526689041671253261801479473378691944614634955149683277638180213503620136706529573463115053839954429242395790093768754613637613322902157336183203966142450612255584147307031491320026297038475093388370426032839479602877963050162666624414738911718887004773621102154056949507138663891859153428344912808055671007597372736217986403673803102819719087069965992714784657807883212514469854547212574648644731904216386033815255111255465713093927267010775810468298951836738917684628939461962707017440510870746949462167246490303844703201854647127939784607404791588035691685397880231602504630747496819034069543202177412839835946102977537800242534279502438802338817375881657992224123481695871793615782699275401867674887384869940335748319032089565001799513529794981014811635875582095992222172410672008644915007590631685168668384052926881678289874008845936303594993774204095123430993915360461901709203390781730422124827991058783674374730464975574577631715311651920103098699280245131523369735241875426671997598484438748240133540884310094743100962936919952727273838901921452953909454558077647694560959544299926486520602112890617694190775710345175026443809253872809886219476319766769977021030774320367994438225710248802739436456591808891117637488193639502226695253854886427158463668878719045795314428864330210160621469401011445088786581655200300658160529109304712630069060580150649431472843983154425473599167690223010601950314588334819572976204255074944698138791655438878717941022382879076440331144208705022118096356866660551151985700114378597151255072077396044789953179952179361643177400692253315850416845768250985442522295674090068079643306487175625580823603911215350149617901259541154864550297173356830407698719699635280692904625421464310815588249322819636471856877161093865245026298895670907224043853285507030227422786238258719937987359009955708416284468945251396596513714129490287558285233590256705164213859349508178540937378460001643771483050371129101293113219943955908047305671064553361307038002569071249173711366391600539420627772641073198792865306161110569532241820077867947826400515731082696888382158732567503019456386608702404207061066487233035286259356810612023222985827947145718874771862859236470036692017521635823489076627315486406612655997956576995828215772167529753030252605330351710325487494598911789226761773338086940921253769545489907188776169755127284751043016094878406452679604239510992897303176329272157463559272783946259482448531326581647881965387830823953238624041267145257817575900203401997089148835377128167477924386584204605926950652032668209690190570426393793408738178761027300460787149312069178643469207507266872227680248883214708037361725737451741789161734782160195830052898059526979388476986003329413079622544385719938684328903853893055208485532922610209895569966020840325471355508293220539291884350539838066224285398382362125943671026273072049869501964616349794286891824715971746513903827910718057949340987934684307072498191000349167884887354280037390627025619143647740118696823698425733651267020087026548282777368171028815953113511993621859946846573415954256988420817159896226760913640314562308307090332110892851026395942250961028079819877373693765692200649431544937648145369186567094396484817640435345963809942643596428594175240099772587543653893371836490559912340425436922030769829064524836366460296403093086006152327583912381367852975198427753734738668033799868061609427812966211903554689546394830157903818303838667178266536471908902143867132264163844824092640109817380546613563654128598618591512122017162094567524940194046768584681096677825338693710246136175897511700678542598036066872474958200402505804231333898180050238040203043219481221018205951678436215017312331137221405880512460234000418616149580477089635121726338156475335214990168928497217493402605924492754372399282007046428800553153640704835108970036067541974784542971531666703211739525572873472932473803460455280015815835147105526754024358218649226745093320139443869489688276400849509763570835806228380720380062669267763147427957402758801841676227570974322949771873872316018604943764603539538731673019976729398463118175249775761554383678337747134969930982464548173287221564396500959889476198317591408711655686619186191899972512960651588243058889687325697007433187788418993903227425001395395736020338462935717828646591679958567570938331625347340995835075237986465934204866350578869615498684309796077641533672856703170163783913059844194941270982178828512173643488521698977695810112153136730639639269039867256667420119267064820651589366917949871471141328720415491385319356597625288382667022388589920783866805865869856148557426571383300090661805821674522287385222352537190700807898977720811376179964691053635419629471602115593166778630252289170768726110771487204478159853652164936490470776680359863976260728081051946564669163110947944693037894669275256634468253567520065395747248789369464697531132874418665946949014214274038033075046262877328859713920052168379765905877108152944045863283809458972735937178621927242697330381826850863852376767180088287481828266125453572334951710486291279787619784347943092377932101296617930058635426351802002160586448355373495482407653635527827845024633280901372266231834427702011602373770635655962919856668465719232850637982307476255672773864840823670146661348546032834861093420319593686186375632068996133957294169905065311908413917181573703166151276658227453556133970800780421088015104150759320733603015962550733685817880209705009911424340448350354640782867235346358341589011099895105433989742399251095261376925582002749782268653330542824742863690898706850377070198584137541845032866509867080900217887199373277511053508633334863468366930404193290552129338493637226406554616986229257980870030695422474046789055319533603831385101746931997027765152416107528650187036508332898119695406656650433006805522183311166750180218839417733584438021185145869550951232352384190174677863005866140507706399747861453306868805912904593001625288306319472928822165649113495581461100216352597688728075515953975280566689989507505555495350309850847010388727715014501306828960609419325393015910312629308533022772256381662979024560540778329263093293177685804873389227281948804735323258924301665127657528476415030902659935728625782942555727240934178467510897172326286660359482905056841631641977022648923942895288994752106835942497355298546358265246204823842627863460815440087711184487936601938746538420569610523127936488043532806652870118152758667353186940119186452092922633038844050670016777759625243578229585764111943344355942209581639755102166765733662931565988877447822981672773683471363443210863330109205336050411546657008287992903981819055177326684779959034418085703467974640146638356724147849331029222491486562840015098654393440853035760416844601300628426318950745255883489206907380481951212049203861076888059569441071990817870855012400247468409001613312836837349307763931543749972751224065079299704472537149560656424573087692720316563078369277882635588310047359814139558085429244025508702075851372235904356367179643014246057673845994023672549670760372386547507979767224548757917504357747843365649215649578205161996738634894348501958615116462301253173776817462124373629243595436851677239188180585743271945050326540108372259541883762287030787840934737713679819092811234068719663734880977826991411705495406093144620385395320850762409943312504208754550313083190078117394157498968601159339207671413736352897626699504116001281224515171840348823744760140646146822333819691116886932153426157636796149993313004892927953153077469093309303424845812660871298604928069033944766003909084135737525336119086250127066319897912286963009031447808006586486651821389819906375534761719809692693212713834349766443577727853258189011903873377768039555417693209754907978724733293904488569302943999171608911744160135122522604113401237789838460812620164034631186563491084598919673521280874475515918703274692601802768026370880522708864734109307954487806743763492384914941409699123174091044504001924575972250722241925426555615520108100542207876566667432980299948091792531099781408712001415194376509319960966327252697228153879402709467543513018095917882747703164052605579789111590622893167151406880730690837353854748330073382579816214143476554450225456450725476346838917587698580507393126740091453017941151134712293764034448803964080849632526600509577696657414808523280203682801659074604594641510006385031488114749204493254114002135259177161293686009105041053282382967484089458029442313643697793080036271356662165687809399121431162943951155541769509601503953052421120835443614905178770351208291961906453325029659079205159042172794975034454387498783852346994081912588086673209208372724803868221629178969692076048268707803526109854832527815848676569043059509288964258076661284390501605715906096862133036918200548395782924638591739641376223253673736772771554899437192880523143276803568345356968930102449621087795140743485728059804716375511229535821657653847656459102257795588074471888814738789291369356044818896874257262387938569709515461985790325845398076980122202953215452319198706852888600095018225804713387339047076240384196218271250773914113506353432825711363476225599188984393110016479442563662968082069294577187088626385273879297125656606160587821064282298536461550072103312315423587044350799780863445297323508498820354922238776136884861535097595348817612149706706788920106715484930842015175378652763604738440628200165323841118160629025142304041225905248944651535173266546043200549815621223157344938506816939585975325688240212888086913217598019202010751450857556997604056866128160136114804189729859128692661396674750496278925301849577693588708573303193400561089065706218364061986677091740154306817871677998868267289701656389864908051336126259388578610874932213665665454741859800498616231456772126911907827699210549486002686912844798110732810133131208106325996982191721070747479354234187680806348473735268281175009553359947314954742820175098314554011096251282311688423605541172954693916280082224643421810766414405896269141897015255636364835186371496264451693008743232884266499798596524240282980306955621353569762357823320324400247678695320707149404073749071327592447028125200654463737926862842154919406938886146463885554778098549415367908457374873944583058167695744638228200160374929887822459969682871936281891073439444936222957352705619319602236834905166723626910748732198184226369517126019907302403904640483736321019287648046998005811396993043648957627787334113576972755372182107900009232854690668244130736443086860121451583772776874886055902189171120958980158924982798527114792481111325563004211386620906065298536403750786322228082112027424413734446927344618042351082322155199896438233022258353235054411910455203359973779276878642398095538995438017407913794660619228822670151081332582171819961321871062364206286565620770235748608637676981629569471970615136956791264261384668296273155161124131530124417711775236296589781574837222349341188173698180202004970219974295984147444236467525717997517804124508850035961708210470945293227817982851484002061795479986988477693435465928381351735874483439226070255294371404554589088489845738690263692046090109536193838422649700335686869845347510341024866876249188150016052389259884702099548851034187133202697090922257944814058632893347429188175963039051731648338620454206407527600605986825250893348693748564254833331027557778194850330180347362486516103488023753927155298155537546254269422688873629705370904482238233707056551743018458217750939080443166837927000535379558664594226114139617113544973587348347193941584967256397613060141875033382749939492686065025838460337119543320160801400390385960825607072642193253504878950136307631353351103241833577174561312409881722464494181345924164945912588046826960705498785057699274135565313715876641139492514426064185247372493883265681939837120554528365388803693449281105901973345857556227992306411576417533065529241450013734695804870974468128638116925668513306473968148927507468691923205174453701979440845407008004999088335466390606615233702930834219970078155606043193874575742616529995565603727566232885614989140678970082753469786601032492441841587865872578270041105211841547932863455648795118695917027334328526439027195308953748955231276135737240016743855593174599474784001636113276646744590754517359183472397680878856193814171862974905559962257788968093869731311811190593861771138288369654260644166506963460266305289476136672415734693817026330855257004310105440463548361006310486489281565508259883834109819303364636087572928854771371175606423537871516883537345237257701738586928813900145728535940295966993957358875040768511752767172592968100967250925380078027524700464232063999154005379798293482457780942075867207563220362846975548143311652529899722565984390593143451209680212450525841488862143540037890710085399780168640411528020677847951169208196117522676191834965714249911845525139631572658804551731296905413240301322149705658694517676308552493643936622428366788833930757210469766256331217762359122067412048149488582030308738963350366960840947780044781199545560534044239723416357165923823374657388379328821599153076776879534497612915037761465979627082046768363017260927760086040612625865955565452967540493861643471681151659924263456350856275846142792371468883716841573469896728513514128446496769646881830877992520052749591828220981798893437358808718153727302324137502922953189916438920254248993603539961430906096657036975907389215420996534139469569179589638596436727717521778167219731583118743690311167406278287471431049417931304451820603444557471051572038786010279935604358662843465965730606274831963594185508483960885192912844704542896487891081667485638621892684044351916271329146342420973144246456360110036928411516665313234879607543611193097285772981449428166631050230876713088937225956251814847346127236373170925861419072162045303511198384259963709190693395378107532451822201507346114158935363020566027474623765300073215859069555668820242824449325253696455871014898084015872993458572988327800967140188889867485255421607171607753400417142953256922341734619327742850911371145892907745722700931964606591010670522067322518553150848546915668984224369161952834851558439482984032039327812913096733462860901972045617853004839588054549929871607073166112389744590431729724157490497056746228501253766208824439282967772614350440203649451989938732220516915682226870538480214025748334356135480753299503262190477578945036295495247457050692583027851693688149551898762122286539177936966833890233226364509757530345360720065452209483789392505954568845402772959745410794148665909323306361016232740441867386758144588636583920807091444101043506177186065465494829953189951549040912443981163962601138135794703454771619832636199077497554583877612261007014483641045904383668027634557635938690781540773335065423377276039561567767992793883996686049163807638050232498430431882594464882333522538785447388098975327085879580263681585226868692500036475871982275109477096169034884594238348505392672100684597606754862710350125831476053530050770332519614468665457308694460806119823569667414629627841234701169515712086718708998668905948852137046116040337158610509237621382300074239694963271393780057972120458353639807321866596048510830965655244880228025994412260386868358055261657823366173224882319248582942037736796887886561830766872444840280877114707155632220020874793123978632807179064936509871135876005369727590371899027593345286981084572637310994300983197032809886302281210523243553618549697073165965358991761919369242664695926030502973792390022810174632561415345793722064948905890229059476517976814713649353020871940824930657936354727003519014695464985073442003552153393701194364289873985871241230974671447086227946862436342222180488003458710115022389215961639883971416039331046364300776311314768661002692910421250686350348030128104250829445045578770587060165748698759040190282845532457537814998388279986806147507090672047988303594597191396831152613056712716443234882345981472838738455142635329976042207742637781990620530065558598639925182703059584829740111894565331524278380391386957062438496436826270060374625422023741203104016586243270845048721836793536855221078956852920020960866627425945746958168037019681976992698344648663307253701181017890985973387908696876114795672965907561652971653519499582163306595644688433947074833488515770178321124809533446387796775122658462847074192163971705009335329978135520216530809016150831097499808611875198825729307618824666483914622916549203898489593043665799283423820380760819416210428279336815893240755808503726405077757741611940052790229085801904248937787798864816887441792432777902001332785719698747202180962668397546673860695800022770754018869344155552263688522108772319796034562193166207690464071679868990111260412763191726706216664035242167132028061446443217368738018892543855425008758480348859674453488875115978419109585138084790533036096031513529344345673905337527895400343877012296128356998170040117250170123148214460145518893219134944084092795118633553811865107888186874097808926702735648516863245631496463701295180351518059591404509257749138602911031320584711396819959951673898881704500757914871526179861682088232935951039560853306189182722772526399496609191211738442416324786803405250241786598216675028634825334080373079078672455787772589937909574209921590848536581383924324132186901861777812389769421967545109272160617158841427862006213412730931175117316570927737916796636542698122231456303202841290509083032151108083729740956361014914728431398119072508072425114863137757624144680454709171302728501630934698376678253445992991684937340712484898743681479976862297619209864236568649046555202844029417503209177637675096202894603852254527432937969082259623956378296447355457953222348977305077423273499556467793124298123246287697504959672007378927331125028895712954383649499186446365157644747497499182591425442105659406703591591508301540940151945145600079481485930602901208064128240954552300618285150194108505378575178711866905276758132131438053357670161381575704905058135750279496308514632994875194788234879415560749088764894945498940530077213314655906960037084009893423975491527360601380959407273029254417009158580536870041763465354017543780686107962330413914491188843229219764049398507291210890777996873682005451605245757130946220409020270998601959780435156059797258175565458568675321980613511308087157495720736126073100346950806488797608648018034629521843872460528172529968216986146631592589126578469293853223322532488988441388506663376846578301489754570776529453352594934576262918667148999080805287659238094699436621154794690914910101319954860404329125448404922554421951978143001564437018424065490793578707853023266645645883523107924239831185738042731781324363620848895925971536443443112816271415466720686133081482699234376563953255184579434797670348864131425451985628967469130110171803052193801688553451601823020233253835316238109681538445430335368150196682451465984151131411572811713471698661554535449970237594872123595002015936241431087784364664954791569110937531221003224456594047831983821892165758953738173578665924225905207582315339964074509819528780190577659132944378632150073204142106182812282025058265091126142903036628925818927915658557753456200793524395171125296275685296605179803183950757734584665772951976873466470124615889178632106218156048711250771767085858836315091522386038592144989028165828310852287154986421466265812845903639085901937960740364432150078064139232865475698929211101649352223974867069131633142480197859133855808530000565738717826357074754897515071446956315702217239380548058321589810066506946263397531339698260890087170587084066877783624389531854507342681790700071356618138255656419625538629914365142212453378051204009320444678565855382549575838257628309668445080182733296494593935271722862688861453345117161221234114755303349939122146022489669993476293137385522395103693808416350833645429617946987096344599044667142603874500432438018388149751803420533691589715659571213117455152083369130980990690185718131249314972251386237958355219957121041775877148099443415922372759299611703952012324988336455267277626183136639558680965446500612136448145718980482144640502067949590290977109024271985481711490136553015591489824148424555616916661309881747339665229284362908241204457852218892510599241873682685786879332176966345310139542984232446726460564972570991230603117288241870492081035004733036470677027699980528413893565506865322772227579289497510730747666153971368112835179070613723661538944123923237781346973424343408319461370761623187951303028178235789987490453636834325875682471368240013501364456309938327615112288517814264948858669293493891482438169100534278037334921986419518187312000270417066903162584387897776972562453888120543161982754582595311406832380184483541784973371336653834862631346016508037244573439773759966326506916811794720002385356055546671117386145738158173438674695800945128378025929328616310042183635634736565955875103469775758945222178007234923441878883511638824610340682649534882105453196441716071268055624981285353279200556512492660643479739938988104245642239266669156317899647115934535684826112614561212570524041707365118964715351746267618466091942367082918293321849469083684002238757395169984073313254277817463680705474406801748423744307073847018629556570882676238783640925170847463288742756816929420062932390606251610590303166106397001642785539995833406978665710032978679212025987606727990434473339637633931719860951504982729708226889825001288069357042716215663264608638862044231072390855685097067453703736918879289290970166536674473031659373042380157682556218603846269732909064094318929546843590969355220847650604647410365653136240763155788798789416459502893157150154428426334740596682222414664424306446361260124539768680107756772185110569552633110149112333298510474962011960924043525742860462376227851330542442481316749952102043331045742400288545983990196808593997984832855242814416339179902479987672183125521832285454415816130561276530445166497212128893828037753096801808030768256100997179312920653517724400681892571692284132827180028430502390089599139906354742874699796791506444114038099798189335658172720200662519965303670175000181760129271319422231162600203764035034636272082068670656299294207478293696421950636615476882287456160119917802792899346172063533852206485533223837472518803780606578335192763339390304508947470426235014431930202110844234859432340890523680960862184970090620718982164360594708457488800485326989103602744020497702804484858455728933020879228747381082598184271746949525197273702387260442400480897768938748403810467876877427037774889710525763170599338197243634437314101594898235309525752695189867568296609362494619579444998295133660002241421445826951181879870156905435796541219026408195948302452445678828647740456950558255883298632798367640814021796044339829405765365990635109309767338581286049650516690747349035759707535411519688673081000972378554443791724345054017883418895901854667144452466882304972756024902263477835380552566640896140228512316994456870177672607572254046695041679021777658229054516232108815131014508817767221114981421090305843064490297788332388705645240241447163483390413886286725864216592056369062230245996434756491249311069539783924611960748180847075007312816345243276978341159345684839788706166722567005124875329603109415794403420421391837010806829680802456860683797801743097364629805449060459645423615116593270322236750018415436640041010958121479028474356980907571646336979658845580434357702676234658372234863337121814255750172257090097816932495541721561170551743892411176604041980040754236633153087097502430590888211041829262613204708199334608943588092057957577255922532940477719948469254214675061129543761469229751760520558971007903949159873713243885467959015078961361553144288852256930197661934472079200999991167892716633786653927345724274343567381600732458148194976424049929506129140607702258077104320824890059350976278379009776495772519699081739789038559823379835210770006185286086842536211422755433602533754896224941335129829865844731881715155573999637149126862850848215752223182912226776454047679463589955928804722888415098279403224980864632092934256770661730110086485985559626650712838018711682883151919370029112117242103287392859693149104190480064724199973482199072137558642271707545969541907876691632124362755605924239546909942973009064441607761022288372352150579255621260588023524900936550062573589375266024643840013867757421497447623784270587277838885990578758128434629419696766507564170799037580256406346219680442832274700912588734373149015140777030105009055460708604122144879529591275474093517890761908267112102540588190900333351939753434451035087581205981639866072724231849772144161041822876399328270515858434768892785667957195825028357594941012960367489824938334657753479019052337183648762480704849154500669510545730309644179608979528526093979304513869847113083572394069917946780729571768011033568386812191715061669026306980317388171191529254062206067850989156307387831122345659188343597189865495383130692148273855801149028856770236291589429592879622522246805601918658447385617437238159462611826270859536557662812855529688600817369950444460977922576615570463658826557570768397318730802148783250122256117674758247414838943667415801248883590866732522588355310318452259302262097143364845017203279667994125210475299101782137530490831721598241451849694193654328482085750697063497246974731362452902202683606405266012157211690166962058514097844582509506134886570473772690170269195202063425044940652581815447503038382721738226532218945681192757705772077328704962600895907842658507571723089477197525934385786750033989185262379596632872880078415660420538324085405746054251201567475148721901481038524415144859903511149409387417966588580265483183912425535460312805254847337538911952912420244333292893438561934962980102906389159084286016146404793773955380451015240157247139681885858891693163710653271768691033746627718437344691299424760385948318260410213327600668915226035498512753732440300559732873967193360829390816774560237753539147677324922175302283603485271835340960472050250208549912412916492095002473389142944929635608357104138233041931644980561072646131416665170418629617402238238884696185449913479834090419849229261962360098753097945267097638082294476633001073076628770676789828058374059073294638799240796199423071357560591262175731140833395583880667211521772224368401322943996818636876895484885947649100454899183898435491670656472515251486960144103418120587528935945113108001332886411486272498532505816846643310774654792939869898984613228463544174730133080823976782735971187556408100510034218765702560889396908307633751708959818460285925653299039599272980618999076363802018864286968303379204984500174294569899098426852567883646815465251667296860621487056369080857994608670421110979827479256831060954841183867468249000455855288348154790702826440989720033063569371876519480765488681227112804822180543446895726921648535825958563642370303236104308493378094417827155516486774822186855695649124133862818895854829351596784365962225176226452696915597319495190227339055316857900393591576671741360347094942551059665952310160640793420424347338719795134073699272940146810190683206294545230595057045500651534176014932248604367281337948219707694489527592123994276892883947393492567575891298815570619254202871915708724383325693436966943222149014348268531666902887543597529425700448484756934625757931306049644210724841987479003579078639208301464687317100262758023385701455344801916579565233807235468998250758795723178668720050862992279541392337124859226533382729551455012359305277206778796644949613865287584673161974040906860354525006766350993523294510726427570957145722392630542355633826768028509177066290781458907047797164027293532918975367549492997280966879589450565197183038393427924329704391533679404116818852345216616131493703668918287958788318823807146159982140397797734103414106074417447933734910809202558551838696209204133224146334969817904182095542080601871134150977796847240871016402094308384859693290213175852915271857263022642244413901401410416885437379613728255785399415174577116934458419572250399544849487178191346066178243013077272718479459217714678004054466490616107362796743706871166699474388501941068628314254739340736867671589047554000877091140259477350312689788937700151924950801161280361858679166847446271958549488617880140779620682951280805634836432556400419989204049794603909017418461722055208480170663439826181805659745039284196479246155674378567339162013662472723542498149224582708018129873232012811508281432348742741657362155736155620509305436046876165893828615379226671007533616565868226612835172180526493306283234185905538980123394044035204521884170868782112596675892606638238288784287813681549457052883135500401053938249033352642544396610315327200925398365147080555288817150612187450203110293455437690728218364009307493807895469388337250889168374797320682049656851105824564386005701091986097416814486772844146054936779040171922731177460598199020127507466264285633320769397076519884977691869342426324654433430144662819258229397170332800839409192378023228866836012372008678034795312767895218843379768816089861346930086436261617729956829536005401146200777145248968448182251184565437798190548720088089025306196678532346817988998411738303198657171565924057478187301597337669784645476531288054169226252333207176181974523873407670841525695118846402070471379566025776129692146204078686541500484772305263208393559952967353951501182689293222666522137733712919462429615529584081097015419069816196958300177203719243892940061973374766728867213485486702515930914310519151112665563027608304045580275751224529227747071145172638005115198724279143821990462189100537175356758042346356843372238497471154856066063550061054149658069158028521959199943517137482982057380936794766773223827663820200209330356024851999025554695839127756547755593345639761967327092903891316119074489818709612989209049447466954061901568341226322922754447928597735441018498911154652227570574274432347210082088683314061758072334761164389860670989793046423548168895319417976783429173965172792592384993773426212483133119638607433541355825711266332626879544493675621744054159052055158137862386114749582626123613806556237559333497254713448708558124588090567259830591674643815805917586018911363436991431875484740765211723093863959268728307684005823655783648992736165251094633281314823610463057229684709898787055037496255520449297311482882964226051143586313540438893149012447660642854657370071615295955129191128043777369487321853543273834155461345361057663030280227589806546716424194331163368018626148135121605463324837872225578224029055236363124466437031079338338389822462289307981903819875287089000509076707347997456714151688472497432856073627240801255341243922051179357901859587234984449212490997944987575160952008964733908695691043695562036665997313171235184855272849656236340628357103725236764841439678519980055447100485263508764380992542928196903284445561902483375743641631285356304814694628790984318719756905282760566573406457530214912695216189295141548595252493072589705834231761779793297821981963074334913981471656095996691808290224279120951077939713807933785917064632445048479430951695990176950427471006690878054685162228176063472534466128025938565743175941107247227886249509654218208694434353678042313829680039853480710752496341717051007501944729725206696218115881464571322803747649597873974656488868884375118526172029995755026582360215218764003079049292752339971020514122280696712551091834974971451158027414549280502272846784060246402017640997217301733144394649382478099559765598232560323225344212850283611977032320031753189092960840104451428807463868162476638015038082703077895456225161102946786235137914923516360907488655917154011586749396273416566138361125969759432266516273724678941750251718069092199357076532204868466405091880911201823771245316165702355294612436925354542438085468100725718929728906896410339142100652824207002430701925224926227754293165279082736382307321544844782364740863122566411793800598553400312003625081080298833275594912204515295184670626404452858216651911671815517641220110128999494307222197143029439408412979726461336404390720826278213021076641339650717000552344447004905018135798129097061599137770206281311465999486243688313307582822732502292269561705609629014375579421504551450663216716974661674114664707391712937111935540066654465148695671268002333498814572665200131617553788775093166166860861126289021615848494849505795678107574434019185759672079759242128971131949212655590061491426869570920596319622758149547715962319992802153433719529680496475954124864825682406419036322224045612468570124111758316847947100366885715893540762452429389267523405646175074563601729284524927434027142241365913202133341744830571148279365564779265646544929706714582041222428677248199015036961046314784864175444761631829688402843258914005844571289935905394421219375842926617659158866462741456845835047706191741997749932517312340017824733228619609618487868786669431730878660268407827528748018519664213051226351421274730537035720617798049614298904924427998009667054825878886541169936703625921583742877217831571838014722896027621675013586672468858101695105759999251827151159548894477497250530052573718390268206176779550250354178348112302514535253512084994554695937617731533026733506083700938298211962120324168033807087107241198210745133850966121507224087901309868807324251927217794754481474115609387870107536124340880508822797259267135244216490950222883675416180504918578707093611418029890429076637042291274660440335488133678298906533279948467442478851526759749049645322057777447025679655100161934018558866129519119957469569035304111735571244988352775902345540774122276080363959946807322199048481213374902687476258200742955536995590810723194840684287954440249695965093536427260917486197841039653793866851688007498864977843535618405390579073384069582301798019597802724185087213263102542700940628925706331257604900354127714740224764762627587346222148313604452015319366230106128690956047164287338196175516442598128730267015803108271028881044472347506571681740451272500463171282367573112946959948086118312776997036081217861699279009342097323178399316637154514333964113512047970950769925854028830213104531045576000868517100528195473801779739000241909308892004347798595933942482252198637581223014626355407446827719770523036496789102461585769674849765590466180112488929324749682659880609063279808411625211904976706449949387487909550892707777620223244547186374539773350777507306050251174221170026398571628529170294864123783262171278934757524200472280591875199772700761950291226197970660126726433609396926613335272721712983609665308942346053458826719109633834085556622096245789139837738929260517194365394214302578246964096729317608182340624925438426239591281070124337723465323013746434060560613427452414932491791225049620657403370067003912491008791256765699224306054095540821331745610612948919180161996306997689931936515551907385428892411321788856525665950813540027589821508555300097058856171632137415432550646843340176190022955172725433187978189067549808076799298667240607161461704086728619574084322892990071317326232057731064672751801540055977900168065227056486191405770231282169551747887808717868886576475773939653843586277758380437837824447541635937056009008164173831097367691813885983957149537931029937341960231040201141747091728092703449628716317355757370883448052036421932452166849809502153061730356321558618376190150585412519203482857791773253438696352747966318908014088118842193243672739612696319235831423756830837483190429291076237501923946591549377373403003769609625837358896855651286382252397187704147263163911908843236068714838196177277345032339006061898684402092262250469509199474516406540224443627178333878576505839023386471301050121025960425014579771296984577433451601222561354344876027561204642653262912227986710652046469016681824065337994485216834814778773362259739655868613976011218394257246034687895236295265245939138351286140933412206909451048724444555291723021957520024045766924385361998309671263795814043491966653130931509553598717839220577848316435787834983396340415234282419324179359243174400645946948756473556284556277854141282132985033226833247742350373831715267482996443667284309065682635653103239437421738627124544435206919423065718676947974218653779147766187565845587891814646637697240124261067888759120026986985668540507978383405292292468973028758266668714794702710455668143125098957161932005286144643184157245840630638303542893159110800050671371211166256436311499582819692208274174423402227835250622745475038789027662987768589162095506175365779053525043669634474149067520055174727655154396910003315339723888792767825539735442315153661573623938028819858364888509354546864334453033261856417100809696429217680003995507163397093831971777808664212721483804783265787340880431106714711320257758434993773802383408354197556989095735642820827107014842386855113646772831308752158672403293283338414202415549457160047363774656655769610287506612850847961650347731926033696831624730501150126478173168151919663970205977346432691083271396677702325831376109261747081462731195083353251195859474395362986499224305365633561848282222761914993853726947796912648455693328891548337606563408666893434692119617858346711150472876892801429197036743445888221328663174299537515895899822465270870960416651257823632625414881683293997646693357455295115708184988304030469548195682102437714163066754621492433077584276264415183446856220222902668456587725492622412651869700998233363926842544629683088625244258953676878655444177807557751521861027026825809013418557165923017906945047306157361745394087289630839256031630451474577615227301308722510901075404137369084676730268623406158371686004436057154571865709915163583761616735539271791583770610524006347459397651825792544731334859273368096300765298922747841753426407240809957892424244133201282035597698211382134884671445544786399772226079329884932320037619340070061097343723703101807978072098916379422974003427779397587085152814217765328241505164997951875025940973189221512662005070641691508145591639906167737089486037696890471886532346906041341659065049486979105572313728854687971308271169122089006826715497525904794380706902968661379719865125322259564702436888997703509810385612997386345753561385051105435439341959185475606092149584965343229372023507867851559496553928877355209169674949352411583041216355769063829695266168428836698044351923230591243680816018108008887940580001774161776150671280604292325814342892112043269103208597528315432745170643241891859696299889479069564642073626907758491872278274600704531308298918296729258641120539936976211628438675524196198866589896140899092517669631530290372134660393615329718676507484779249331722878616347355386004718365200177811204171504307117768284333566715562582156298257508513223810234322062797142031216724068551098511358556845834288999139546365634043181082019175601198394348538556868414538405801419466667510514106308321768329801872439028228691584464475618422656860545344738623894354174328721375675423945647887705379610188754212071161848256515258775312557252306619712715656218709194150167972109299507488992890545536346917651140763529834104942000646061427412586994925077810375908395496505487201372619645832388161820224576086114996888288206023798794578819719078425705141178019060297431695775813993017841818057501796642539706211105643787287510278844529263390197697135486780747483328619828067786978673058943540797627830034457502307748264511134641208082068728381652035592824745672814462144991049672037071275704183618637716594303071100866805742917026602157711210019829567866548251095285699496254447656352565609225033173362408172886635707808113444482937922489033335678357419330576745437014809400881153622401675023148875841486192248805203632416119975548486501462993241278049118819053653975788370320954084191195131683094522222261684889496101325968004418104368810013154730538529197647317753728517640932991478431100564254417559936403229862005522090042880114568816698914056131908052680928804582817961058505837060454121240918352616407776773104685863997924538396516973558498730912142016196687344379094092628154552685872958631896322385748970594169585187679951899280041314298544048657827719956166444690279075992829163120319948542129134606564995460103345954336064660868538415845596020760276361783555917831589616630934694592094616442144742217325291270216685481945804853196306677428859417260996016342281499350794233904242606421977362941196673892815311165547386414001580957065616338586085783747434014352758141605712623707838554324207091578573324415196868172741184476192187191645270916593804553414023651806888247222185118152910560950774221131576597077908108116018025912331466541722120973222132808097434866002199869273896015357575655299218503866748503959651957102579865246801005562409701595475687629381982610616948285110930471413508517828061584551212796778630685241259273636874458342738817702810213203626252725019660238261010749334119324182593255378307112815953499483480683868858444966970960956874855459736931970161683343798598510784925092626359152858573309676030380166934934986434756666832378509671597868209300689551008248584879581194287865022612921191838422779396474774255551913906982347141394593721821487952044992723786562240560234268840180220366283624639837282254527091011910796971500119276044232945424474413245178382060095330437285730789769381102404160574058960111657859775897891496643330531266341563799751661554751143466656606829531125888369949194351715966139626904001214829818362096662383732863361629847714119775180020994181862436171713785229452700730790139122527974529656149228485964337751052210701693592093236880182606777721867116905434674389249049086056382950152612735078049426343463544448874613442751401855279032833482839441175690829105707941433327623254757932641168394088093109769617834261258489324819653258798748498141963032913682794671532936321338290571288187206754784525654130172265938024819991551577964912721409523271119411753783536339795654090720185911660425783982210583603334714030571703097687374344704540324139076334220118416588539948968700475740648871444027982170681914889142647083251052338588707572347293714170544809586700927093462676946537173168481624177667792909034534327606487427188049080307844470489103859758624604873161396011823613744255294101803903238212987912406249082544613742619565046026409348788056873093364761825158362057279849504101247152970754062841761481389793177804670112143401916527603244865073909504831312324448518362821889585595520768865348309076862155500379928503791786665589969321281530304878294093662980619189390129468429960977877336907574156961575991497734396994285638882218180577714737656157344201582518250903496255900601880245053541187972135804656399353830755561997536390012938934932625691853503358688227343132750370738605411219278805216523767204067018630478590791996525258846761850793810407331440878982068545178259792781466851872088302570876931465848474892977553564343663177612133215823415692663324099741671155511476963721525068990679601430921247157222458287769082614730008352615204257855643814727730882224281281481525964768172855661128194718636415812789931460818879641806746222061970885319675201326685972779555026780264719418102763519634407736190937088620656331842814120675000390636248567454506376254789887673165492503693409165597457249533331397402502950705355991275781370776154062465331069922138837592721477766017105625665778485906041439744323625332636491883619513383827319268916218837939630090668131568582454998200436979246051113873489351898596249033007338847835552810896503208639841419029610535613999708831730231971078801046638003596029827574632547800076551991547799563816761843534328409217081079697661101581823678570620802443082982938534150501230188102458674377864328471871557995193625476787010326334383189122887810044411230388275465699413705571495882520348691725544320970616009862223139621222913049559573289112782437474697082603302897349468463743090107334702922395373413801818968467659688718926353229449877283379949525694461623190138677207050060738291017834541800047201819789480683911121677737471468057177496131211209588919995883098778018620760181447781597085589547833696138592384630112542375652869227992144164812400672628773046468742210742144087211340022628026747509194387325055172398256417681306443807258286195645269507435428156899491714479869521592721891439069596020527515082657414833394187889086749180519440610722788604661955381640042395674396899754058089658935851940383885300319793913808557173849662037629303202263589172594959386003897859462541179883846212170686200523586577347197545402681518191742500804678905532769059655125137859173575863035350082143936945679805910487344818344102161754833409930681650702287893980053902277271324495792189600469488178047625921219728950883505307105405758960856954420142921457629340160888622861574082454945052378914795097179755591631277964713852996463461421958342868714671287798638171363884161799299153834793259640305645642491005091973892935849509619788728649929996752027757309072983892742096479017783595055390920793782246659943643839003830272496467788979673895087594614089813375355071740442486302838172223433967431881295956158961257568464485698397201991216661361534089053175156819885337494926620052809755405294329958494360010592592445120466589140957672496232162574571785752115314659158186845943401973810731420987153590409846563249830399373363795714690722872932267647194493679826395630431788526614230650630859087014801829071529580357615628184395931944424385712263180178445161434692834390370818150348100175401497175179687534984896304457158986353309055639645096903045047960799712772052695278107139411012933115928854218769418359834999796137999918284482775394224242898159585695478788215287183479248442378988228073529386415769282236681087951544144111859148955957357586270853222775824367323584347385949242769697811042166885882685409222269717092133550769400230677877732239831955612202034769376495368211165363446975574340730632424746695819783506266766711809749387402328848295460769160735194785867386109492153118594447170860950572682369560134711028437064375496951387206914448045386780172130274325414838598662372021592083046647855254801485325727060320998250396174247719885781851825843201162657713106822860887844281087535376649270683484604292503920341546686054971582161974392191656059327971334249196035145903628743991507902094815103727499881475063129782714542287008093877919061004887530853665864144735633247197959652979820989129580336111693233350470128634911383891539107175801195829411235568829214570636918386171543437295446134252604718770550204912766336436630563246726160901921530015948412130256205847761073807085376445746501981677170435562042836542598104771002691614407330994358325057861734029989541699435850810668709012117711049294594673659279399522895848555399310961378476488195755072271641997132210398005922861847593549385486320710764544246939951339641107714394385125804255479424813713384766145535966683959486376786038577059082761599009926379667034539793880861144256203546473820795602086048005014048625621053868816317445333275078517981563146246114688357654512036322520377748070943892159660114360386698478818282540142214754007438469334058440528579407521122066172076511057352878551044324368742137790090077331256361274863901562173701114542277563322226775899911490936273650446686027010570961844907814310373717201056809140792138705221123873754167089017541358027663322479746710283502169983157053674859874754365064528042739805361126703333626155787531064106273701431636082091953719417789602427653533776991792511958571280058738797296723378311453342681954616089468715802381776136678649403621823382744617341226076674084706066417409010362405614048665873322361367515942947829351599603007686161025946603811070017217968186784760736319659204241955761285452464568598244813296508581186329682841185755651218555800135891831638502983930671750621948330343764337187177851961718956450739611359138342619393451759921569060192923929832038926932308036449045985764417586038610669268813091555368379675005600726810268586886188735863432000032106324312994080632785655189148844720098527536515984933769875688004684871986076516895074128046325070004745440603652447163566308606118348687762215946748234492229294592985744780968814073961784262326036746543426415168713653404650026833913578589374185003768556233826337884867020611144090816484922802511689691237329368628774502665415640746669015903968489074521230665209077676846110124500483300504891801652745730030504301695289950381886617652970817793137138813556103898188062151294422055479495051972182247353871671616239644391012592509514708399384834495560970923646416999266238136187059493728259221201102894363031091500097553344470830005915387924797355520192864288278459187850784324864744113805000891396792717666398552318929816397477382849123028775878018192727937165294022315437184646435330639813058716358876951072259889120224950558793966597753752697745118093559756501723997939587235071608477807277990492223975185539198222168304485291189451329382029649894636759611853925074370373434885090482866950193225228690635510485933698132197910855890898325678281260264065023208571887847663734323682334953817803415035500808365926496192275642945831628748298613785368451167818998965398807738240014456756406474698054307482430610687883169542957312721074303997414599006885602491765638992992590911581930082278395611429544264960293205016419146325669196621721211119402438001609313021240876024564662852483310691414517248925780777657493861024006427104960340659783394798376400963031843181914980985826978132446778279031999919424423552732871919751259308753036701971848408906342945249037452320624433385504032159465179882178471612799833138536009756770224673289096684487824592968539352501556388141938969002055277662008130281263743045280712184596888830951353417082820145749215195366317540986331406741709854968012513266650812836910428709658854467961440044827171706925511237125343873407673378169451291982260177150267903439334186896563892902609945506795295807871369342089802661173604968917169496107205168699335909786813122431427597964794325450310527957835557135001076951045600711356081154854212028887302875019455717782615653941797860624601507018996718339467680020772342068675297079352132467891153833831627219071182227629877536807658116659060726988217354610770421710584059970365162226784126973779035921192017509695904527310517029650947253304033374900319359582459118342392490004274216864105226763053409581870741538643441398816501676646988573479632432757943540531450230376242743459592487838923342421880929855435163521080182698992183725008600842299332958248458478922154303914850450335589932640405091544068613873909540257694691758808555485315116893081617807478098256258899889037731682841037903820159149603624171223738698229765474648472818912309617871446202941679334501991540315520676461927477224215015361252966171631199732617282936236579467498505930922379766329463038203810957704217872036176961151196235034868433106551224771976852169615746945272721072836694269622036833728031703159812293967505504822456123317587349959621759533598853253688474184242278171922384087836219052640425633139187731698042258157096212893348745696933958592010105968616810235951289477715488735739454399914176864026587557595078961660167523459182404204143248122830956757534346456199230413386176157905108313894458175500831847748136489147579183514936104158166492736584206795754182021734240250850935711182975209522106713744587168140290459298051369963181539826523053572238469003170435221648886090928642289540757514024441120742383522547593562338690620491459212068048541863934582240217720059051363744512257243622258614976263292726578797339086392009669922430071679538796231458525348627238689762702719011186141190524044177674601294147209744968931169259525075492044702244089762255650582745660062306477480438953609069458237159992078853863068300207516046661700317457589901794151418464720046570142152082466020909175433188992525680675742270160568734971762616794746711348841157754558585029004426487528852114172086133768261690083670294221003514202753752260674288321641465041692457023474434741831637862910095179217028176731097742951747398245600331609379251861553658142076807148585164276600471212096671518809665514655638803718818188509486042961970425898539986023726859675655519869470596855297645657250157091813555466308939144030174258682039453413285986302046913190261644819665275351409888095181289804334027872809266534254317043873615941517325648009052298548540991548517884293772831842152956378495369699041681563077822324571976113011628083836102430475255944974231123066892824716189579033439816504937962867410881760455333901516009301345211750587540018558074065129531476072543733390870345524865642723724059156711511116710358867401346013774110300901580500792846698274706103065285803267370649417986181310356635984741580072649863153299567151097829954715066191400798864643581815029049343903526145216760549025969426205771450476266083064070412775601709518595567631658941260606504625642884357553350761070098644228319155044829120062781291146328461050651387925838647211949811220200307789578116661101629774292182506990647784328621704229175272621555120415943053980681548714948377038959543976693366933529013988497009281014103300919094199374066560594843047936157320333229956024805811541019537063148049839353408272918606918424801742217721555142306086648897015384044651989422542509049642510044590752434833375950706316869890936054260577284141852899852397151348317892779662574066558854204327939045322924184156321244043298868178671472110136321518691157746571918528833308597449217306659659382673553924385440067806984710205877018184525926684481351693493649924985600644232568808882067254369121688013468067279891592462319741779733165217798060774936068603425575046073123081768116072717879845996392245457620027136246577787423238068233218981650833735452181609525946350802679915804236359043615631177071559847894939824935076877775831049067247587842756699824818998715503932221499164403295414976460691633646411561942568821940736573441417777464457978786077402381674137091908503580042119473365855858745536291158423792966872626060415067038490960996175981105608462260752902013491456763604364663032061530354048721036832769484224637745241768966238410876729506813818325611885018785769752752758549667034858078443208805068542101692276450681154052948147579804683026219561441909315954355735467227616294742005688544440442210415611368919617410339094992655639129259613852580914366045470753202165474443281535812005594417537226861666306730711311488603592112395697132842731135436313165434714197434241968905097595495290578902183154703726104458920739181071394940830356430827706385333194339759822949707456310614764779462001715225368173363772819787414009147886146315946963103363215531389430606548154766473766405699586679570586043544234426133159287597836171747935378331401505950417676497144306343624760071308892495810957593564664238357843483061449426879821757460729577793407142735795973117941228575718154295481184390893968264489111208086053935329684465253442399454814318292673416374762572810553154381392232064116431655766206275115322013386392908882140018895402383391778167253843856712578305258084951478273601678902747692426458414047905394441402206614869793052893208313373113182630073254339901198737017021859918351326482795079154960280122167074994443498986752931428026136407031890190887605703010606029162719990106339553283646748291119393198691411619132782490777577136534671427137328681946712425665340755395090526834602419202363363374209567458259000940820573295647771850394526306510960333276311472980718106305599317703036913782636598555732118349113238212130414736672682188693463598307563464471483319259840265748783732614348267796145821109094066467989492163957644472569349234078772762484675932359855591102119194497262018200171037811897163017657766544337846115642348968454036378899121311989826921340921079493718090423813265682764106228118735243018966783790443423745638219583306731403119772895714612193488913239451999757078328619882287161861415752285508442699338096294899314066557236602464038747136772534683337565336749280660300376535618918687578622197601526914228345501263182045200216159884023865515186999852665315382906925709805610491220174693963008037004936712330027034624651670872853950065719730419585196026706043606058080051465345456530945586619661612827114927123657193786712629431701310489362578250377058449310512360761627467460314210856260324741622939565835062134939864111777226466519456679882489572380588936611886900142076295637788738750269886855152680752705503797234220109399761250355315874311820008537533793050404519259782374674159807151057512091451477385666473040194901770633257960724622609828694079952357165116478374396107284928899433780346301962719963211473137086691148604460493310755265225732749203446648262478937115237154560944645923322827119606445474678102221607209938699998945069013061766736442653226037078292642605372090279464117537483499657130623928802833937309334512984655465873643807027238307105128600926822026610275414267689874737933971534048982429708270108029260810882221722803399332786821265245689004390702804066934972495033077432531512419238979525298111888679371275550418512792959684262329992616080138499113335856858566063780596739229572997146083322274822318350863007529821322507709577229078083144322151527064102808897548434155293596425458580998494491575506029558184394342544949623088354233702595266317240054403495985080157677065342899654700031937116031055247573533283386069994787517353965561258577127410635584434941529432662065018088949993551541151748577900187653750209416137203634910870421682713365283829703569747357933299850125394974309981498759677424983024080665600564873829705568008501759951716170092035234611079653269972096686336217719949482351208473030167288871537608838331528327922757040132012542539680280235546866838773940120989421761461756414192369319191111318462344397350034726526845293827306263485743700244488632349082102880100576690970323629454813658917210109296421101980956488810744545399558764678001029735151135284644821267717658548731616553589048412507954538063985420782732488429897985114226043479476350797941435542320998311122050833400529468768101556367648030842873129692305577831037968295576296274157742473779800895525279495899229036700272544251493022623789884581454575649087965473529829849260234200762150340811753754888943478105152749242560841038419284943212054694167087002510791966895896653592503330027820592055404903928809289477498225241805757087206259797822098709175094691766837431581492277970076802272078478742615647430663652049322324402575972843872910603248081956990838632664935478268122667950432587132710357144002886431463176068290764803095764429847739476811931859694343391264861170983301277552278810980891194954280737317511794791362793195754944448499055551369690907979372041918127883656240656092478827925969404905403655306341043260330912265831769383005634122241400546421528730031439610655006567312783783043492848474702506418721813106489957768001143416562875493487812275574524941474422871478232019304824639799049175632576876600059891616042932899804938618848573103157408793828826749693412982455868819874613039139338868062883370905923967727330319857588584885629640828159416888445480242237183854361406346290801156124140986895408155793546502025848359149489829936346778835230923466037908079777438532382289345363215431656504506636250312066094349631206701527549624951992891982252285529607156194383479318794793199212010016887776246342825314649772909877172662191978776616214088961849884735128659645716083725197490122479431071099300811299998646698080139873739102692499019768475215247366293011995062705791268534295664892110497832055636158955880637936389677414708266453113258958480943856146789400480868779231243482101957922852495108193035552144021409118827895738380352777315859724403631672186458926750731809451977364878969826617572106567804598984547957819663852870079565336379108847052509987151900804958207967346525572370257180807883852321563086905460229390458322538672641276441083336609634414129854561509913148732173878780659754051244380852603590542777355064162719304606280842350035858172704400609963039614999634210344602680423199823722269174219544029772094244131926842432254980185887041103890407165439002839528995872387469675825797579987215984049580095113940695436152701927168719943274241061359491338602103082605750641146410301077780315069892537416582798094743078520143600393691170614371963188950263910292353083470001632971615479675694444536505891775548793595130447741738843333049274693594472519026469904629655132043182768139736892184327308003824961422248368281197126186993237666622640633655490140211479037996888486583469113215727523357377223982441555973162999398501997640051251987567177499164266816374833156391151147410742353838103977379646969223273695704002644611679384089447948397008335189493748218978875746758146586903846348129446105483868039708282826902900454223899720943519899030058469560150202219592387279325096613448178019671242105538241804051933471624483739592477906254839118332661549554446072729187888219890277075448707404482597070750169858877297896329568080378713839294976919624162906986286945793547458177943911514027995723472387493630185033807376734292811278450691687675282131884179074891719288664486882376646193024837711903500242633819529130275722715153921874084664570017871860399971372167493578685823246166445294615954405225816579049888529184942518349621753474435571033824070281348569903700406003623939002413312917410730991219133697059605619061897664666011718025335297235883030329264048466914915738163716450317286867155606080851104300421727092225130354180246526152819371791247034284860637523230336911681979259298683914170550630391221092122653095544202128782884032469527309724567053136255566951982126158008713511585487657101218295501586514887887786300601098893456636427675060935010472223376960541789682680527435829221094191437999005406454711148115315064795816517534519793304914518144501444913281813193863059670086542907830212926151751631371743773199362097636046202488991650935625211040062373873916078223219810176232734775712341464809697941564620639838066951144783080784524812128922235788505201488752110077621694792697045744948894878376102550730973770264979121759729504745874344687885439700492432974273404514610224912898800249415436118206062821202018058326178665125463228418552878647370786820169775777798911178949682796410511692290719123477123742457895223030419448869080873009954656217726347007766080801997209605939317935806189817278998953354347071917775053136064752268739557697599910967065192388072708053849108040187347471664960812636669173856394228339315575803797771831932943902754398971020395352880343420090857093204984899521931477714913653857933894546689014225249472579144158028399004631482555722195165462782071833652180712412194823724179805001837010717661274147253375501265618314781418789827612084006571678267199830913926812640932172943256302795030145645846957574245174913179327712648133513275784894310393269538273240560082474804575044335743933465102238042754924130495439639923575035816669345840853110181524998406451045308258181155696394916380934375635962121842852441897636168966909717477678321236054428513216088383348626417313242390721210236887337313521206585858136571113965012401524885758884471404502241843301717787341968511867787072386166993333369856980799044287459248664153584511764869905322857209151776200924809578079739192600501290378644853459937284377563081898510123522932379959290567217301965733501208487080200586178223214779891751541140136460565145112308463460838689865644270800745400432811776297042484127117694095769013594212912619413984044877556072735213527813342243007594487266614342916657509167196576633474346602592257594234757686169405761032936022297828699194043926374590498585965264879530012795632257862924589259127057201501827126599184552878404751930714609807901293304015537330070528655002999003005628054060463075521564459764666386661571476598452214620033417427422760037493239919847995664276821056059039564695462665504723996319772304441568265737031689759447905291719358869168834980233325187286184693616600687689476441207328634818440418972484960464837901590580573466301862583518129082899931163398455337158715068952266522161594283490977436573213799309454606580077678351587343260375404398367908565012409587733452789342177395811225852569214280475544623841066763628162004759936420085362962581346678176543991237901761874472506051337288478569654881006130970903356955874755608910256359647532027730884755778830951817120488906914119164266343470663639405926984960933291022212977223267548199119885778690828449671967394741873112433448797958844270279440499042404521224142021004833022845676093210088541265293496053931338420110723358949394987021342481401933399637580453250993779289054925991351135281146846012460225949764966277270581184606530152694069835729282377358683203786637350516168428339144602114047700562016179882601680602813945241531711990149647739375252716639535749389099112138953421565073369302684196241144398953065215325892532812740172384068928217194725069569875890923076569899742917635142963047749276251608010367305571123799082492489661359692500804947604993799590935761006339624597037841054219574714000618125491916136377914715720176487152912386095589786599845120114539449048491612973473466202772319404210201149064401263701177521836487751721590847068677547106239996149705826465463243213080941957771382173591798973807536506885715766386021880212968233481820160432034575114899560452958266374486275495952697388504146009704601316923302320054132023914618515883369797776252407779113043436299053815830297298981022345533404156982290388189761383668560430756541081354301495913242794831212333422218817748561231906597007669622244598082685215097144544046763393528501876628113031245289920929252437576867494228515671726223637237170957568169941891621151745365368991671650022615637353311119827610506727053650331966486139950887225579675156707723791385278332185498680017714377589420399707055297867851341965940588432163876897672912325985262898925270518580549782437246458849288377205011955376591010832894764832761934601056897396571340966915302319222714748867176243090534876031456868938217215167752328399390261870323793568864613061225003955803666409918334388730971417693474551605998927575576013344005884490760447787635040089293589417186785144656350958201692338038359572270287548124864666517883222758252457440007281256481327500829054641009477125229207574386760483195385421866212446949037508970111757703154869576841412381070762685628840560454932169090891069214552804177237490705240800101349619965290235201390943396108834645829145967731354239689839199784547729554006614050271037969372870199592766603006352252888793221846249755846418879948602958318150235231751639522474426628411182945242658990610446185498397664012437898022714105684523814852315175534633409066675752440652600615843248620315773977277794637039173779211247516367288423229089346844023237748183602709217077024477703701445126204371478233162208912504787715759126771277896609901564387281230780804382628008169767548239998833772757517338776468758469952037417396267376956510515432304580990259337426491425182264410797421131236985295704046496211259002651321781725329984311673521970745693885608934635344853487447203158789630040366153234203565893196981616632356881805598863251460745957564300886537664050220240395322996136324845175459795255677999722415548621720557380749339614339839045101220585675948785210666522734173972921127848907383230266904422760495601622689337147825942705956376693657330384481717786852417316247684834514096464635585074233299884356521940191195530793933943379718479020156262256454220183827235914355932015496807653485849730393453126104985380772334494706498103383568939077666168047083890916004952550503402255166402697521071570683160429140917383444957436057446754392465697450725320992718764517833111967253470572095842923750457872203671517949572915488072192931228622316293640308689666136354217756398478963408507168994201989639980189619289008911347511607775814217709798478328294727732645963437422757984558583286644656911409543524455852600377952874053325828302112870326902299286780772980332762742291990196408540431891690173050715938950341036177156319375533148505084379317534806379531898052922332466799725502373036717496768202535032711330927473123002263812634241997219257551496586534995797090127781434534421762733452587815131716122443039032211711892490037411733781739419759884918420133671928722350376406321362445744631386535213701517412691353781142807448136186195857920102187659774835113027055297010034203363343090504603631555463188816481244778095462612579332251809667393073629276691191406135805657464268912688768385462036304969998653893549091374632487799633732218355854269662825189480868993158064195344887548241528916971781489223911275214408087827530816914274852834691292895078374353484132603494152189382606434127540595091110416134832026701097862655281093783155760240187795095149570389936901123644952048899237591753275492150147919034735146010804189614330980133373696543374427601896504846753199103904775363361043539704325114575797147236506313018396997310836640438960872642370944778751563199673986731243085425835186714285273933038255810420848525619377388399306713245679983842048995179869488296027378728253859166372064219853339032564701774862623249394495561889127148909801933475347706507537630152459652000427345306028813432551344376355463874043721036268260044689170179310727861448466566710777794628391756421924894437207871283461169093026193833524425952808308874685596873670039236869931562187761959986880538131704971921804811910481740846652805363869240627305365841033756793344056398930768131641637943267035624423773144227474814732319874180633883491711443391751262013470056846448285732395587180276979909876789657913004309944793544737157570792750581969308650530846748432783226040876901587217273528327336739243697394226673921151102558619303650949933596642843557794273544325662383039676377188094611403459666846845276985308098645641441573789959025156330981454822734241539783593837287786469140875698642851199076813549688013600184641407894219968130835761528289396549846777526424108007652680945248859210578373655920223149115809109853892677503095383594650997870646779633073883046207158851529747225114713743380439846223435800443063330948025349104639694634231872996375561268118608806117682492142910555580667594071993902804889466167334055961957690322210029267670854087140362132902440373109905488760567027919123477779483661331218189369372271727800693598404360277382447023827663203957873700237378689196809935734344213188813559267386453458102794929726151183845683333985108709180040874879223709112391133388392729060283205073911325579336753553526496117800052978939149005991267378537519969398039227904207549873309391515080538947438613918877891917205772882957298181715586060632054762874051411012124305814835019123426711041651017433319410927328365534495109720352108102362401980964209882950753553012269193501215883703972706502444577202071913473348599581453777402702343487136142795914564916010499996798934213216093116516315210477573528994115699437539275546017421771513622763803086497393219190480333322032931411501134882636904607578617991950498900740449283475108444387112061832826397352038996080842639125691711074202052508184090556356332070546931085805439820971584048704519189007872269832755044880322645474306788196645576174427094467305750815072408366817457010984102518721434629072070932634932155358944435015284444143225819501219750542054771295493949880236641603963355020210679549899228452938239638433209531153097880134862227110212255719015928804442276809356297723471488877905054061479807855710908163246937431913695447942675458534248478498096847671066090714074975864359431506824979027713470477225785322450430534035449667258583393443996966526941202115571861716076795697479372401918309417784070698390741312584680067726101863569412134444511932263368168488779679442165174408294617289874505428140842600895878238694825164279551616389637112401116592375501039035831139950366739037404683703767460130160604309869461728153843820284128601815147012390981110791107349947920243564368901253013242508382869665574230745014192290078836260830441544055741780951619629757422721926627145740302682334919492992825915081619303979522099289191078617798709810953593262762691432762930456481609849870560940401882662745013297671652595631984551711616158702041632769827137608464014951708806067649121877835146315331388495208430661245173205261249656984606744919360161701253710626620420424826334369011642620245552470744009359319339297138279533363514744605977541277138302312100785619766266678696718894692799843284938916871990585951143672869339721170404312722994844779777090681830637474932957323943495384046796008606198994334232693189324913819677527436567127500903595571520097962196439526618357348768238068074458251166698051968998972131705705422413336366150619483989001452079766570297207321405965533885493602990329416804195644833020379912452377189511993322362680421106251540282381571955110310285032892432172610598792007559799153570118082387922401351889228036947996454838660972545279703801831079472947418511184868899357550403041537724375478940420536042713888719548339353270510725405014804370191961308622340747880946631473358118462638446271741570529327809524956190814962396823057198100100792517085263690867557607238202040508522790648828366101720305641971568438390066336836845369819319602611869618324797728034167909990454478047929222446342059065859125018945936719690200221715219436842934194346075366231111790379608877246630802805032671466327916082174157694867208193094358506053339560892996511746455354314001326820065650457329643586178959843597895439460404499396537297009026779112667469958391155335047403470137234032075654232122358814223898568597009466360057184688721782798069581032021774040123551200272099782819619733902693992418714510227357883978903243334489323950827286435212119324052727870988990970351000032436131498409897875806568937755157128058788920847781509754202220641081536186881315426117684594214103369457754183020524972873116535895816435416002276244633224795197648119963921644562759843215601923824168377196378896815674134593985223582393476520504650874668177754131129510516061230052833470236571380765185647708379148567309568116375987331712837544832082089926792085124675007052183978904040177964890686909539172858441810425674591587152140658796932466667594698941610463148902354553880037649696697672277055199175244608836073350236020835397469107763154312642699462753476353226703777546708828471822135406863107955752149925159009457588418616544503547981417304046663277469971823110180829449694365455512569379098429860250269659792801508841566017200553966366864037908824598890806126531610328206700019010474880108339417363906285005461385140263811372789841704892565529812641629993725595450926891874450791042232446965690696054612810748647626546355787013164673424523459907534836872612192826635503076635515596338479074857615275947630212410458137525602454795395203096368321332344004815177142236802378660698098139008704329787793601287710624313016373057498353306717642747709897456481603901448962092890146159949464346179299641161361063478533746058217727288023401031287665014137905982004366410458703389973536790914630717942778258887337817504699496419206219223693423363988158280591913606101363017085363279472737119080895450267189924668674043966187336517828347960660471539583105581377756989875140390502966983909020526058131779011628711870783125993198734382867724041267442564825430791451186110480609665250717355045104645010817452163624651062153329403781495970314564658914754000442754120975751525107453126394051483029765747402128096586718098036281180713219939542567971328753157046178979438280637450464925077409302487227233340918074919138712214176703760341417847299243567065645178393976085692569764760880393273767014467796744587819061705661032165335962730141747918575729902133339268593246999563572144968206077114240237804904572210957357078038435816619527796504231543742610983790379223198727800512843517273733833476225360741058375265456338154964907787020768044654036857296923571412840458322095144982259936403007229194700203817651231912953544460538909726378847271967645198970407502142521290813951572378250971666950558633811207272470326176154146757558681290945152828485663756632924682291468948644973393513473641669287658500497339444386844220084899898790112433478144706900385591426095810343293329902978726615603816182326814599383763636204969484159636343212328974501704038503953092283063561900156679018669165726894098978015719670546815584496194400948628052419561740776898718436031675812079518767578923893802582884186038582858479675814570316029444148410086671624019987075452974352073243465867960377363819569449799418618603058878681159815309174860009966193375064733624979541489218214538617645563225722113511455380425742515567966380961946537343364931915961836104105645639799367036739699469791561439660851970603044081318560948059341497140079094821803024652533946309858564779088838499051283285380164834028960038202082963123940463977872598317311896044652481733129559040359762033733277761269499242228849055506192590536473300016246743073149214561364974484470583908516355119296051785693809313390860437890588046402039545868974823179361238331729157240501579746606400701162190990850710509179728088922381752750580306321024660487851314078607503423189166183970025074555513715437295031363364627726183935556080572284827783065183221324020366988526511275772085937589203242448448252746497535434537071510135835522408213135479228485902336796948212930073464209764962544380431046236182502815810561817101111640124255310063087322339913844087629780829265480440956919243560713130976193880287152383760089947625925392643106818490778467183502283226446273075044548310991408460743114506728766770058698323452926474747387686780845422070927719389749690433258626299103936368258243148942413884961723061638164209277072653962787786557113725240031164928469224751196701639266797986994082757194746680410205346545483326992157932113911491690901579418979801545550547154266005037186789317575872408383905504704137948395099178112514527207890321739786867202466166535854874518665096167415797723183906410515306373038878415015507566992461902180730740196106501746373370356716120296416475349668398794153316785786987858952940861693076690756230017050304397304478583490665878482464534190028873197623651577544357239588050868940777833103445161885302503199829465498979546263235730432359209040046996564162664618343592992706426387853594607098163655525294824715266289340151164546997404307661894752343670509561161539275433227680836883324583286737156992501536974639069390526221444457818004799710143205770462523114869643433766699040443793009573706213240080406463416980584108589026704269448206508602024340503979942279123666888758929735403435149880239802120412609974106291260142456413200775707477687200738960040318624899876386016171540022336131256100772294664673620755647606431347705903763382988400656289061233262645704302039473547199909524205277565671349561171010958329306789829304169084362447642251898017282355282710167707839998222770724007440198749715062477393961410280679823871848429758367313823398848047777290263147157238135248639992021747586967117309760063371185184516180788273942438941776745382167778376286495294824230813828964194540507391530621301930168198272478349285437615602409635664098939871860377977993130312716582712879322535464606304998466224819385147112467722941939156659530592388266780187605048467791512269913268518811294011613847877595157371031253560925374570591420020013853827216726588410219499721059139312766332934230909021712408910803038549992201174866952050813557367562389073758907316784691463168515544062814081721887283920533209857006872411194756613531833836205051159668249744163258659953168307919289125517413380409857974349065770906397219963293653480723497332532654340867983150784587037930358911425307257203549234983375299018873069189073853860262261334354727415349947527124065207882764441430650282345158151671323049865448435562423618664216085904440047190066808129474545569064383993156889692193684318170081235097649231593059175608872384446348189182150713719070481309811192754546289817209936016552219478723646036312664391940058061913904016800562394085161228047348468277255316166895323413179242580426131702065016724805187169281303157031385751598635396749468788576747835803799254457937993707680642316704189110063441386966390342879607257825633817560362574317248307001125620819292460151369575295717138423584172806932667673793723919343017063224394324655664149507930079190805703456767214939799651359292588475382001695876140974799843895052866179080850731866484510594043542816127266921536406051596783685333384643303282635956655662187240860939564548916621927764808272230350818483542175101180229262070529769893308802532840644182210140194160262115989809948889933965275087258559254174668643323438156221706685980509492457538463851744932064482956760701744500638695099864045802173129878689454301987903456660383101695953043077845803170250969182873735375446312555459207480684242750258590959283771039599004961122772031843709537258488878191550302327455282306459111245800601465567345741180481459563819931362144674075691051231617236676964903368830744799758954666642306475508809991045284901925113693557903571127169187921685177471206181504152475185645287620296389270274462650772593924716125352108652994489950291913397022976248136999918078928882393221605409104970219390350917466401002056214413630352796036942395971657115536138662446926076927111314548137528122739384319386046864865255377280949259044751777417725907603790261748984541812460924507852987829408246555297084065872228709169424494687248725626579234990006524851490219701711034573274763486833987981080965737372610107645708763055561526079183473644519482544915384356104564008729073735395869316285076282618245442784962835084745295200152819180386518366377665100398462314087715781599801264318783183413168476080232650257905698136327319882600052285393617084826652803422855773548968331330990214590482929821452574334598756016321575535040504356401247344661076955819185160732632231433452688580100707287373525258165540050064010716169484128399377520543172715003249458492313083505944702941819791523405528636065636511673989322306595855854790215289818655575803545301736472677445559200952735346752339992693806639029603466807835311568110515501796503469661178026502942829250695593227821812898443788521255886956109013802952909336949407934346615426153180982466152181319041655681682111459973973581716446074826931515936727036213118389142953056929979512079507616381476147411835025956408472904103686010874849170412630539826987099694264453460647219773299151389288051730194091325637520564091194043056158179458099005827485464873486063385000679188616632077949690027691436381980448820643313327765106333479186458899371261855518369674562798812016313907200628186006468503581191944014369741076459050002777715875595181210655139614989124268237676036093941815644510407137224775574582176063611355834414958050390612126321824161896141340406393874067272260721897933919334029573253693000999525357888736466817344557375140971254745005932729585324208147049214991219700942688323118745731812713802253047098659744384765010431030583658491990597833568215620290078193978753656084463066818071923091775374909408391492295726441634491360680514057376557837640953432471937424558432375519870891718571712933337670668252038123155101610846505759759755100062830660279256464136980178938409555079933403879908024943776973012320741642679847684713259295655830215324944125079939391725872355957291750412664218798810248912351939792818206822371640591756490292399261025413496253086617576367993174867548407565278676607955066339385701502705472593811286874856824515472503636278088011865382321037931990266532082812115894747372738846893928770685195066740796791487893005448152088112382838014519216287000629069503278815916783156962103106474563103386509771439379762259599576823195855355265220792229508513109314421246147359823500463879275628147260468400458199627917285888456705213950274934221141120484406915403338542012453340266839570726231969103731961252881571327762107282423763888372894602437488037057456716880245337337801400956216259812739283417151473892960504922295236147944383994539345885974060349070132946343692045082725777844776848089443757441511160756431996742214203662604541948552170277753136783234859840781563779544920864624520444083033322384087728859728654709009638525415866278180820438945145482484908900489145102144202406684554506663447071328098205632683213157890081852055611247676449385249394399216906377985801181689276353467757004441719809630456093308707797984097829314123929606580575597872262178362957339588529501648402251157936382584774760166056736253641745388971831237176410901917424240245341240323618182248270087676656501526640643599092603657051445690405666849405042019481801159795586531638755980930865036871194358110640252721173068523516983183378043965498456732642101220153038981336331805236249206220960399324848469951569709475232444671836261614794739944300080956428904949513894336658096187640634277527033561822972729668212615188375563792860936753864902487731667661856615016760028757659824996669008506796631232175142718311048389463848885697282625857444936182536806339491224442569632406402834878357260290329864375187757158380087911986001805314216140094213585844958366940140718589907565868346810393339523576606400671157949523491054768696170889795744550769442110486062400527169146330982909046564610335175725529766499411005436107952630971179127925059830046957409501436216923914658698420520715542073931010153658502596017951596854384402366954376562806574762731471247183054147321951542427886608382573581991953325658984365173785170883397767191960160762345218834194122352364745737164013365917090010980777303320832381213757330577762939147642557531295863259972809282230919418330936435150372137339926675775838822761323400217974945749067281047300387115568646287001931521944281743973763777597459321329547184765169998859467675986562982297747231266967459363734115813807369701541420366122088318033875261862311627092973251072990800609032059231193749882791975070113733725535982001690375148834186629809959090143957591646758571902772312515384535415446099133527061782400445979739682970347777804612946688659713120979288765469440033230249229188351736581705591176244735199554308525497888952910101244745909917264797492412394644665226432815540622342286020361971634453484151496377072134234787873170910316225889527721204772104092736273808561920715542657730049289587811204804968618275928999286181518953292813888620706324527999538790130944271390776484169277161371806708762062283149041428380398626191573229361079717539772235922767692383263305194415574781210852482091671798585000466359016577906506160486179815901520520318980346959371878488098092687851833054604044026429321238345980891044554239041229835507337922065032487032156068568943380540900424075944442878702729634009769152848227721033226383116287529946166196550585776806792483389985241171610130291503879727912215252448088461672307771128365937595872053271855086961937288971184919223425787519076427428389580431580725877582847972899643960179377471556366846610607469971663060610380801121240203600665711030924397653875678196069269953133830513331000332004803950570643050483971179856244581867873800175866574968998965314463940824870594711184330021601114738409925582932300703894411075320255203869247323509804324815009421968965967956063678527275076930598034986775897125905429740263085865991037620499401415171563613079480820681015433386502192706649012520805709196794333435601390863501232686576485723908699865350438461709117607475620217592752903802691496412470674693331873262782950451164595156001129680783703092777300324326122623810409315942322960392567852469160797142727720693443275209836695910827947314190298970179321079863159284342292216317234624680544894035141828704705809210792828290979162261659976131719451527485308455859274169423801830282762000226539409546450120513940070192883573522264316418722195785064105750429459115632292664636663465735700193781320798627742871478479706506689077921618703806472081366033961537913114510997088611342936460501143399516448263479637282080395836017599688268856481853348048174859008398242257939588085398451389895276049177041147785212975605806844618095029813516196233453529186232956531580096556096911901379385151697980730460234706464252701747370973808718391743168297328333505235973223805128525928903006853392081588892765816823693876036834678462138220788975486914165320579766438345093802250592899258108223796802438653967624504130286742409683486843540685284344525182653798010559942595596213701447885476308087783637462161549364942782840957473780864633874229533718855233019248302629064079437340366736930371010938883365830233493624835834447866609247347838426250834459660178337620364606555108481149471828293183985730937997971021997931756826582206140134940608011716594160205721727396826231469496869901490773964002420906644324066238240623842100468318633258874958836968341596667440658384361029152574972907661807478664522701566099609623653663371176339577352762912274417696428850076926919407478016281900915877961190132263571653714998786073892183803735919887651555471573877490717012236374763028322543475876323415078846720736614179394736139535237263445038577057601523306571563259146588202647006962779240450642787923125283204539320632340857894355636783018940630569978211855657522554159553627813780376238622836839021601463446617547811081845251539384120256326433753402854278391468889518210729766177867512273990892446457845791940257207190872249580249338840806307507059302588035733519471180171915855649563112344510926682603885230291119578234235190524385788696718048354747610635799620850493898517283734139587303028437188570879823981807361659383418152627426425506244088048913490213203940002776889938696895860395633234251065297182801667651098006532509562323194324220016148293483676133345128236316223456355745988226323877756981786513338477307137654739423400898766646163765660302255082575665024782180196434061021891524893789251414921886624661574925453937555390453561562827315840258023327868410907955314872114547010474931927752480684121241075545205016495546929634335219075495162809210211157002544319713936826995603119246607826859470275148661617386358645931720759820733042636985060124945824638376772404862620306455525096499826020394430222275336493603616277115310364767308960338024555907489505703057921401381928810345836716462865015294633264443497258512351573961652424263689752587092166058003428487478316472385331675764902787744019704634525667346319954358888196090448930395647296778628927008069837650103136286601033927752436994141045221959328030667177021402059636502402860268165815462486563055970165861264865037675858171181628014736664822238093128773142507615404775007398146966771046459714892613587230542864943519371629437457672069038079742439007777252242873036050813504433786500225619537704081494088636350788745446677889782085408273761106577135799892529342388869313731301412388635120233174152553206554173099415962222043446917541055420383517460741268113175586803630152157381784939331829023154243781845441547455921511127184485897919325797604602117660426167079607921851081609102551870929087066989138583764874670899946542934542610024576489263633363766532104840847450167680507795537321706243494220885969398278908933346706691037599486011956390255354376119215203233327623217320004326758947132136067394328348437017324220779736700518537520395097359797941728773415923646201351322822425853259305580425335367405249440227144527201928003056998319966933332477525475137940669298628375289137229434475899920221173732612115799847650394815145052786569911628752997124152734405102199457532196837749729066014850992815344746084400015286800990585133133895781461684042052102881792491780448968282713469328066530449456340582026686030899451272204318036711259964783304961581817475155754085493602216900720899070677428647671968314292867582582840302428099105229396530352228707811308236311120314967539711653539027955408874412910620006707123085174850559086528412965343268723324158380177674179660294413410498230026769267751466484190871291239580679746542062459979816840618682644334754095835724044674908845596923470072220516365347253782625237927539951685925167813050177647573884152423427333054884124060794876650810696829032670403969919189197200910276699791186064866213189243324605570063906173948952168374358016985430099471968215983098289145845953471695312926085522221275622082474868094500374101894452430149665775173917636759846632172803495787150761544556650003134741175093500540353123904871879608728372269682945278963956034150207160378415816164844610543113694731299305000535217745411233173038637063050275478450453382369352958607167041955231621891172205404589256081376947937233504867969963046226838904742742404961635108627516740062548909803097743102012077108182004200615347834219557319621261102794230204953891696022949382004241431945467814580130614775646194638974316144827124437488893919727912052650742797411883463122534542932054313775162231102578631942875003501206059162402504022093633456164346843616083590118202974053076418278860128164423069914101671848212615140615768107759961800988854114818648143142429963523023062165628147889297720986713520677603835328503812491456831863298073521387609702758498133059151322106881577202090556691733373448236857934535004279559010278017334717548877245537662907894917438743368867698495106467698900499732256987082093634087715179493429833662883751839499306977339945758844035938249349634026769928900470421132338559131031669391368610126762423325782961821655020805875433929074724547493979367038261053518504401496068592065995055936698826682883294226603757100868964009504500224445076180579756788138715082276317337890684645961618289826213149875140711620741615583076850023156691532546674993976911293964137815312638584981085603339259299234697058060451765817421537889497233784642764178312686760337621785357794575228610823948964624311759142266709485412322219743290569253069939573404315621155461713004705447183024388622992714831011859297323096758214347286730451853742927298518762891137219347769231260021374701507262748616285620419643236210970322820144824326491824072897878320843248317907906423688239578706024838716724553576686839206796533877873548126330768658377717907761422726688187086650752765879189045628149834643148648726525367856286373535191001050790061872496699197895001528608240270162439781179066618154525907482647716551127528631661915214166223528666076745611641577249424939255607690022328620537685100011685799383203785488923756811946113120514587932443293503026818333852976250525748752936447408549561434016785411745831591683305831118525298302321597547098018565163777124141243263526929110183709315675307825850415246394395979894159848526615081891336119127014374428008700089219346415469125969561214822372458302164832610088410636196923011949190791868829552461590582168096191266339360572206100036211792372867200145949353083139699376216043839904407780078315316646061902071597538252857836464988821301395539917269889576542848829770030801217185901174094585216252323888735910638968659275438691758937039120069150429864638997599193586189770920889977966624040116993876873768138751490873944886892184452352639183749557690464416668132497798717182662831450311121544242292612919717185511816958449639487094417397785196961659248012967006312232714753631294045148091184889005479895767958606374911492883787519173502438074369618209203486745768549858462503957397891125990357410333853401097748185219251770878243188403416570773829645525307808972684194216895653740035218627841929196637614779863049842533573422118304187018943024451213240783598216166420187337798704739931636999056203754943397592393273331360648642624118236765150977861609369298039013312683202373144437717294322766107915778209960353084102150615683033644674012623386363767523678071449192675443933291438446360371038766133381615465584036577437261896777173774158417472033660040756744667640034867492589432459415445717479935998313986272565448239574512022481839989902904368371213415249118668167020591015304957991365200245231014880948777815639609971400578424080408950293977370167719275610318018034688129701735981652516549766206886158263921998897830242775430720407455073634149935451237670508675316751711904178953806245767361790443469849362810714780713716679086001616357849881315945478151868799560772087660979598170564999700041893156436903553599190569192376991357753944679023599672453709158154909321212522324703449841287427655064820625712112954848167169380632251629132254382940994835587594637617344265002244961070185147787424961916410866183657936386933350869021532291447357496490311990810973425889290507241510762749667182898726004435826389080909885036581014430975703224141646537136431988148692023354404930081351545441916539970072943372837600709509467402362904282702285832560960706266469722199587960915638718024988344752069434997439348376361609797697301650880513710190815581576416269172087643116203828688913227964485419613465614583155801948264587231361480285212099340809209830644013645173039289865767037658900657144093744693815846062766016011577607643889101036712960252012710937671310961514036595036043100989712290548140711090156435470434099079155646441298237661640409888018625280945696966168637817143341233120774973649253836951786277153274769003409688011167249051153049921054478560816284587526030682942604023572413474878552515015012008138601031353693289493286642796130767419456667003926635605054646446912715786820860692523754075596129373510774528120187059804138823080560414097702154444943271872644224328170569357852983865226544570817118672753939141428916575591482615685694055507730163420251110481777530615720018364930175177872787234859189516202853849237257492627851002311535917570571329054558485261698785194383096907360600280073816077006898553690219552590808966810280331459432678698507080207136306579332154637033198753296809067471140724010402656695954008081164606198156019411288518951099013982890885263202520050241983923215941422864710758185624352735902094780537968657114750581263246903096844039397842840247931421589327458984340151612062617684940733022877950906995942725126345840124808927959932360162333557863096884719858383094118613366243604635659188269020049143998908591285414956596083819768112240184540672713752604020595901218018060431571156252364980960307993680262934038210505982474053168167550341411584222931118671667421682729748809339434645582175953558914612496709221597178750067555360460115131078359506756564699428460351311326794151820840712369260913688636141573235390772690139072454071350368147674746713020239638643389944724055491829826950263008562205282036590565228250029402804077982106544976936499340529981856587913317490523181963136145281080480564419218388792172322374321358842627615099199089858860648600435347233940801440121947331935919481075922382436105218255233680799347989039097630463406045271765027888537015170444475416008309547746022813603648722119333464914270224019392437801432882088370213460474033603300827301635768924160907401444269089616363895387398820395049036166413105694777192069353596270841262123172076199000522940612744632511500349884278032038215099008568768096837099556718606879151212478861349450035653336708278416688512583021555832617404409519932619798508893728967363792400183694175952691464044183925078035633274954250246193805179428921967330848173354789974757201775929671866990735700317698415543344807345572322615768989403545422943647559987956054150266432808110136825746093338644408628838042404692691364846857789670017871812969916423984778393948685108171509091719821073737032573020830908113842135227532104328196110952634103218706475822146841368005130487414121737988683568927035927188102360688464195809691941296493667810246760791872757993299084370195248960259718752438394682457910879259419940738438088820341168155728352313009819437980317559850880036786271263987908293670512557356111522974462647828490614051730287685334174139341508879566166976989729861942940227691385406899188117953523601038546436748711934425341806387395553759411056962008887588137995300630799162075272364540691368492514897161302443067763379510234493838947157072076771513073220235051818907559245692104027046885046550454985553104011810223680104370636610232928778785775534490564267681145789253044603469194590658441977153464897651136333494075622161634072364396910688891469106878421466451986472263042463904280164128868378795128110452402605957537091416678581317809668743791421738619129989456086170319676681745647530940911292415449506418980325914578721332763764685167981947693004666300217712302666436929247190120244916500062257510453138140898346440590105007134359462155226614702834385277246101533398194283445697032693441267881343446658866240173592575496646002013018658367441503317448599801114238491719873747050256473624928951464057112699756000400775364029279616646936878622767293982723256765107217723031684137423349960365965008400451711181484546661143211288360901738903774132748521956208323922398867730684387264488116288327050288475558729657559390781200055722258460364481399018399531218187951704245016330126358311239365924050172599920342965551020207669295844577453534600596022406937415691407514664613223142574097676912007782040503374053035279443541727088556205753346710423816817495184993975978411341364370303790342689522127684978934872525694503089238773437627199531494976517618711859034293971060333378542965492496284054724445716557015915959900198541938757713598095510756405684841847840218411870287173629686313983222518769874170028885567680506668992888771517880772685565410391089598291908962515400777492557630044123206677746301857505769088367396047851273904407806791709948949296920559208533106589114351543113439616005842950639087029447949372996641127990995292083714480586221792425039414212622661400669082787068806032794640551769586577161618112525048279656379484687514651886710941720688966865052981448787483232713960674595068016873974811395121735915548445692902498155351928145272048956144168596625430113979155538526122774478496277381188973904361296629065284124212968338035173448816132216287672254077173590205427910898845949847057279910335903115020353380555910696554892087674211757992299090404697514236243458952909454629480571512674900380940410797315109580847077533338719653852571460933685843185131425834693632743293363648709569693471841196335581140907978959548681742429212090186659080892323393841805601866541765653504695176578708958280311613736998196615434289710820911127182578673693533016241228737220507443354905917633001895998306642759343917718547964749312141651027612094258425993313813798717132989409089214142741138700100967663267600739430898832613871827189871584435736530837707455784261371427346064690809303961632727931761044746676470202455825563496981488771885325101172052718215270403299284470411186622291810199915408560423145222989975268176901647553332410097504183371606333257025964130713406644104199457715696476515580962130621673950909795266603646660804776356118186423980498717514059858715315965763350702078015626835183581597471270613832053231433048596167191360703350321076790817521960294612016613616566791195294411436725531903872817306239054032065932027610554987379269516827946220081856430079341701263116632337337664539278453068092674076093213548041690769059301978594112326379393032053794833673536560909136624475257580816729442956751025323179084450988727219406949406573883156212947818912676337491323736727055459451169425446228423647435511308018081813484988564731171446347256209176511607029266387522938146620008275166931464447311352737555950079486356699069486523609200910157720114910904896100179741454033481810955310398785928349563088539382900517465440896487447584770258583753709965376415930802143530014210384239978492634093451779436088604700650035925928028945579019310694356765340395676963466147128992233411825325408786871024873596402490145976161557754771657412086444749840356757113762321415744998519459249653962932308922433645398712167348921091002851266558395553448314140653870184958745948266278602718675293477711100264763586581330305206799037270229662908961161395722508010657656330798468855505769491944967040510671147551673172881916028991908691222083241391851666808513451983046138996850665925767950061606974002560242813523679425468683842630688142977230264099730904750364292623685806115287232893038287622643090265915360058350802061035974270423559179991458530867399308654372166620899752341542969681654608231516986931794318585996079908815290557560543376462716528882610110053758432488484785081231154138406526264882514942358116816081612930047135092860272374921472040832863480408022236129471442938912410203040053619978562357777334669905360135038287221172347802202161306916171048168667182148480120622066626096687699135543165572956763413115450081056710042609539371255902674656047327639210026727985831324285036736613257570233797202262377560388180839196130638125683306802722812073550037303725791142873640949168438241271465034792399363167071590931781475868319586308805056914953999642125210896653382634429549367267427071591808565078177090215642976716861526943858942124530239964272388694328784926586085880487538926516318069134001366948730004926166161722415961929531028297495808155340168340527031582031309576351902184097392934439578478164666304278548116229548471015469605561681332246166921622779893633290284381948737992851385986667202819480876590129602953474659312962764936246552869762315262822404455351544162262427746428218309784580701191815653205316337860736093796082099653148732487519692902577650626819480223943684467297428499091851019196085546937329065167817264088053630162136451965793399217907317741911520099820705438327822195621562294092748211036101047015501866862129153135305881066580075196633914238441269225285702017886869088472995642988586406196091130111409568091992564125899001930172474638958707896283695304875559780555006219118712948406430507208434791792241241470815336739193721619181235246377022887410523253377503609201304350244295976533132471604753600136208946283456239918175433481144950113432164722471020073865054489483685707537208277839027846275688933708980731922407333223035809986689398224722090091371002579421959975279852173922116772227800915899237715691713706004053843152592052643012162599484814799037542949919490946008057050343599665404868169417350498472789372231571605190549413603189080679569413654144111990855014191871563638572839571074515995178654371548558242828095264816214611712132438837834894041823556943330913702527428661984448375631922025128985518473117680036885423191530825087476983400397929302983725446022458206485532401529760377777386002582125250227941561679961767086699337280927840544113581021878597063217682746805422050197973543353227736408213385992084914820011544620386890843408892666411612545352507397419565186848335469377357327819346697764481903096986458966409513601651180783172839234446586450298859387911163371368560237562125073399106125765280785114668231716702235473166560219430414609138822157219262384307927989496928308357847671570178172402683424708762490919542161693529957417687495135350439314825312920255666955346852535336868363002318342487194349063224090263593961090282978651023539416783818564368372123810775964916623572606062522915643913342373375796522156469165850359813130414426049045401477233909330274589091593732644310805774304947446120908031523485728467616340980530115020293021373318388409583944203630170382715204632406394677457605816372903733248565049529051350501799315806590034935325781703333730632832372486678777301967754586877765047089480046610168246539681856696639131409480782950807019727474265444181464355053094732794168583184746856026357535171946143786090055980074618027610539069837846088442159872980583076510626911026471458435276036651868765111556201192025452191240051415803353033276235711709387396638892844251266026715816579144008048493053611827899666726994362616498179118423033245085684967839756164938280842762174436969463391810676446996107256109817067917948105808575739477949815470183203202013916867863203168303220488361855744343465594763254304124011574063735794797964805192653826063802742048821934300232616052424736384277761552576401796936389001349760408931372356776580636095544382506449736865129328999541032870088278433380036811333605665793763804894503729479515562215914760597101336229012616302122615261303351298920132896273221932528879034373084045522677825743599858442674989875578846060058445376981421419769845829323133567568505214301081365315583915735537464630692457339825350588314310996883614470522720136667902001697151994381175448878929460979622496958967743418184337583503656865949586123765054276531326340186016621075594539526202338492979425752546507858087100914751929751192236213440758940132263729366055549906926049772276684047211071103452084737184528249439263668897574819295504762337274918951435068058382913294977638741646408793538057391068014148092018950232957916671424480202167654585275534913973207573823854931554522541066577691304026686165773604111174380962630432903930104294588689283377792147796478408508974045263293728510619813021349136604404114809684885632388423025965081344660708077485769268304831878686385923532451898600657848261393204870594397584941768437330326852694983176323605280086599667992818815768030298873606724748876038827393512943538591909384139835269909630622559324402702077320787843583741857832022778203975052290463410667392739585180508251892295686461182671305359499542749379071336607012983092875331520674380495140986732939687306730100244800008187187472928484266293068515663113335115544323704385194696479856458873081670704516860946043907498963621247684425409906614060543324377869815107249290806214558141743102062405405766467254920970147884529574718690264140676895667464452751928073067397111848129299926025301492036740710853216164203259374988559582788784326602592611515301222701934113163802834471329546431932897098725065116352015899919069987496072776637030548286895424830699412173567371539783926824267117529145938482297355201400068080321592387303126016870726718725405539283427507601786397296005533208977277631867212605507544632276424661354375384404592447556263372221524979115609943908876323995148437000042093444918837593540120349639808304881431128271695452341079781915929720787480975293154652472506630908869084218883511375875818856302798448887918850503603757215042981105849539684686820863649466797408601737421379925630343557404805626411089307703208281151466029443028461985356611516038663885769434963065599539340434824239329499441565141448950290442754241986310363466483675743388464968623633837764125111430335919880590309886425565694630585991013506713588404307321753122047939586336369636409369191525176861139124824263236516441544982841661973264012166029131278322808330110471935838416513992437599822441998042939616346143820019057258926673386708539651368454338605800795350609950714624224533920444033044320101647516331761349361595499176723141564510441580047296571394193235445283440071973658979057845518260285666527191607516837683954307545484435847428363169786672949642870035089707807638040761537473913009169446499302219557047333354290898745487954341603900913602773028163149699550421291326595519666813228823140624900968631190863317092100092569531538073376600745364194685930505417156168194857324333763663418870290814565566015045515816652419831173975721695849618797155095219519246674345724420224609792808712078300668551673179236548600413072896811211898319992832066143736530220119453067403934005059363909936967889324146886820401782266837649452307727165339599185966230685655450356927267795231012388830471826972932608355428222185671289769884290452786731443853497887564944404165625562571094809984320534732480022294634918261661496378730987504340519014884680942520619252992851300176232192313088572869873887099473729072932915842696005114162733502319085427822678692897805042176686799550484019098983400770283557047146974249746190110847810639007957127601388189626531744403023911383344303157019276090771933921772388750164497589181860453155857821130041825235438166110252661804400122831160840714162942668956942788803373132062407657121730076375520564739970454442717647055959416258373665989861311190610364970709361129325315508507651250788355289050013345838026606118806627754634926027619697189533259428922267860651443406139325019576129600981554316374541792796381478066402216823495511976166082874429234243514608069298650115870269907976958947361039454553413158537360827454312653461531878145954468122793375901624596267425062312256696632180959001648300454704178508805824825361329034990715960269687190223950236321681103711672228501037407732893002330898057987333911179261061395685111456332095396916433930143367469542328530487309818602598097470028240281752753313626169693740900603766910897318761622642914150346865830189266288164305225590313835195729548179782767423222109492770171062378732832225553220392571269071417677205944925396717785367929828429346954982154438696355958829216675424079501436643777474908680958484725376418545196954407786903551431723273964840227869243307315756262794466219290340810363766068333880759990208072390273434367761307582782429421627791963923304211756018089579487189456370474468477890388004777416256743532229655924654101642739054244424440433075338338281383508140460639141632752263966136515870400525540686901348225341384960090854549627325323742081012901143983041515791821817451139722986864567869157934917620554062652173069594055309944653187478709525614919733537331912559324292212509239352342205979323301909587104823765804000638411466720631061558589617267924218780480517039932864458323843338525241216089864903048611663423205915688456268035353565434305991518456280665354164212229902186663879902841974284859255838911394207665303182638650324847872384671922383216265065002537136681862099870493744993483897789899378746247985641054211973999314484824185753213656657805543265748623164478597299678775292553735872385105628943981867627248200569251232698196079006464641822147921070440821064725736095049465628040196284233837868732759590985251574010593276968932938153823764357732279779743509807408439225088481224239367024606466692912237619508493441662955318375982683908020620637583401552014746272778964614897170412555835847950344106951760744798040016553202487757736004769680661459859420664028243274853534958435866091530534318860385507402653380611012931147838467038615766321249235096355827646657274166480379930207778132269075373340468848392327112772938815006233507278845068841828902425724482530385947043926356330458141792926426784502158385998408736582939106354195900671516962212744838056491953723972610597232286766058653611502151440426416190053111587069007651934695455529148510282643175592497244566600398955050178115021781897032251563496376863873524907607388062727305108851697292818555853110162346571607916520715584278340120740795978698443197049901593917655845299378040882061737713270016357589220600027733825245500506144335025163370027984004916811207684655284644709113381552458625308496569935762043703982111238219002576155735384351003106962890279347795531022087181648597941348815113412732750916854482504543214991826037542040182387099546600191861411664759414578344920242355569024823956813171309410612314800179613678079870795580930242651656185176543691701123542859891726160295829665471705701381014048474299000242491337712336972252443541697939899977770480239108094670733065888979132607022365991122332468525757685591750822530882685009436587664665838803386993629176159661242144364064702972384206965147256464651657553106907428581532900255689563923426532202371791135113221234019859184195735061923161251809161020057699323052352149606699224542363300813886733041636774254978816588809322362472850550813330768941511791684529529628192591448422470758998089347136600081800339136447529978993436024960594481266480990074923774959572252519607667339340537090135071659438985167579215870749045917896406392821832003651441314938165232088617307317055062457387966094977444594355407930740080356187382839807499985413696479498635526374797017543648662482568065412449270995744156010314877096738357946433341745770086743547102054488633544277725229458521715749020862802921678463834582639922366274773044918313826138857552124970310589189017733286732395910593498668687043600726469956113358433888875948111734053921405028823899540628633459029663731378818466922877116071187221943675392453936190124945776483056256741748711708130570602148603186955371271693498163918771043417849472129340057146067876068029789450056596102059857131874657076265862930142075684392590538604717593846636409878304113393799357094396752933621922171274667122170161525596023794910498364348030789123629546703766768371784279041374529367663539806428340715159877050274580563486547548090790109520207674845364158865592918973889784601227410619939434805022450855124570063813981950982185182366738012220337525844222557886527579037635827358692990232000501823119509481171954161323636374049546237883179842086884904794062050361756054905736833424098082358443158970298795223424759004212844091031331341714698541314048408370674817760984854955321064440019406906623393546847974276452269200260244938254956208595214381986574938295173036782650308492329940465746940721119463449429188032326222154724096761159870067487823321009627578046535102766416343443690670509797898824215114520497591571289070744812950695704859299200412326980585946016749856464100548485634238456612355983017539281810735479557143293631240510237901007680830394302444580797327399227011495415269811103859773333148543126133336296270361481402736569372173437106665892674708665190802001454699685804641063206759313463257181264021545760992472923748326304490498599360933725880731608386904521831144745039787777640775535340075191334840701934486046705430481911730561362049179723748536833091063760303001039427204866599939786397374534085109455709563167402634436861389284240852141296479924286227226908359785563288427043582531449129310522537435886522388201311182038991026946968893017505917539072986489302258324632459040682310170656291128723366120384404375498559244744006722445144129590542386012267562313941034845190375611738755816215787374800372702611536421488826621926607541221187603418155234480514826384835073484705717322336315286390006270395329452003931097172819956503598884707019048874090100354231078927813837322067420660046762625512502439268712900380694675157163171009402580033655277230823527758305767263860560836743827125545277473328578398053829724637506210701827171421912735604736078181132732208657569460932220273191296244270992162236688770367537475441525456440397439312057961092182432739840732363026204719349456126247586449622009446888718011680735151859321148901487750298771360116773460768881957911835471357713349034966144344026640495940776555412866388543488540399211110105552846733975405111952792392126147499504089306517976099184737532910737073164802219227493406985262818157484558538103767170767907332275919451771121327096157340310868498681786882302331864086446047584661098074478343635888389610032270792714669228011719771356780637847581684300340953853997513045559678385590453871501823358626220698117410705868281931615383795027025737772941476413352370592754333284320454064079634010495077715280446742080254678948733817537779168616274830788015705470492619363597686001188283015911289868563492869551917343380011050105302448786009401347336590299750413834909903009832016304944778277654396136958798073531663093194213264926469931577626562981918481875887791840845097703163616886095887329015258773394559291968636764678872371977745298885521779868242331418406778781371969012882666620093877686265590830887550428466821747046371837619023312647870169162907924533767697068826799012911156575140969981025035532776136003188119705239844542811711684445771099436527487824449495271468968570404222687682496689383165340782485284380269836833501662812532609116711502214240033575655225848684164817887923118764829451384654225706740897962573176840323944224599512948333882418794786433294524812030983128009937407042672619286604762712691482834622177661172060444467886741208820558285130043751402751524137913095656331587935984367340935034290839993519177923018183066352802544453703965735580185147834284150569790358215581869140050816487856466352331102316610149023205242687490649609024766388702369551925122194631030010036356670827482056150098631808532238459212694783464115722261716724003495920723086741828881297386536493049187700119982950743053244953477785840368820842331003076581464201917833514596242010735468445489945372118894906460980159825825870224724921861022460107537522175807102299883389962970983433439226482410820091650749524348517133234489675073907933471284457948575180008092248755751690775058686065645089830880023910543974380635073912986675640422203457783384850300988087548671533308227611068909106126366153664881850142396507147311980708326548373954941936721702752063166434082625766770192283768953822635105259664227911888741161997681946377309314382079505163477570764980974157146350444612831823604380888625168134987532133355265867099072765430343774045621634143131951564448839709700649085591474697343371284790523351754747823401884435473341679199582658874298841908690611089794230988105327952423677447633425819075605561801975250646663066130378979201748111431267417722167428576843664752880824568866639580617270610634199802829694895292560907863332212723962359299417329351449407142837122418158372321909512672039391345036449814551073135375334642272019129808431232889680102897563568307898713788312133515206451243811056978792605465135557598494382415101739156188753838568908007845448470051814264063176374559194233853399100533959578095480698141502531186870971694375735800999362186638190192729998667112333707575110100749125951147623788723809449220509232177453488970800384584342216285052401847107333222954359130263547229346488247034717833737439500119023527942873798076004294046425176740423456341908325657189402793747832883837202722379657028468658217353788442223629563134665778264868193301119994797261558146141675832816818556066028862622007549761638834387823527742929782689048194027670155395968161674412352415225742742506360032887896544070339242137331387973112466212100582044231411199445170749249080553754017013345808533384949457416745620331885499128308932634677928517883552408136120337137061618683330785196334220118488391537701248877201904597666886684411279297434555370267204046597342636823176510606639770006432683593930391532933777699948420153596792648689853098942563139461960745196577361616219573262089493410369291860005221527981664897093410963146428361101264601332092272077098327915505336319209536543570202923319195061486527793645202682494621258052919628798907410976287875076897102372049128329030997525759513940753906055503985950082010487510782462346415369717911599037401466727525296962909568930181858483904641037916739734387222309371626185475308176488516046458136430415184268797598992026913903548959112663983888386027118164724397765209756337823989463946721309855128279790183245842909567909920373271193199828052769989177280427323219840803519302669925732919334739390178226403795060152761214201821787325207624614862149374780113911106765784066042962272286209347851266239126435046357726621173452639139017668033798153949616836327606209177954260692253252406827898347203940305294189801711918060301204047270346226428114934178146573638282511848614904682904553923719614415455968494804351862343737617028405780536712208764900224287459893998147452505349141930051248383675438367573795956415211044924210603297494962797688413619505025553042171140565613855881769968069419495335786581920278737331330614939020406382511842083740470635471974459775768316153011353208250620235658068310947539158695868769043285342761340622689598613889667131020826725036755642660268134133286007091770745367320542227049450648229958514241381730046517130100193045032691525167084621459379939228823023506420033814945218080587281113135092802271483248198705589188271726310596100089850811555205964282423657861004108269641289893171677126217873563406143588455608460444288000943709059755310258297937230423970325196464268381564357539778602224610050520732745673524658818841895775426465384258134525810002978811184621732522514845224281039102566732048564630099214109348272316199260167026121058403147126836656085945297233967494363170404864731578555722963585213147815315926764075779048007908106379035694628695491177322031779148936571182299161804436595985743350569442128980742632898521362015848749509117886808802787389188741103154857977835434870611756667312939066089647116859929237513041137176457664684893776578774066614143540372873551253032752492678706452646890721893491556840635905348496619848805586196262264594341192231240357561061108429004288346904704037335898878713184739366353508359285986425738646648735361831792110944660335064666029935118500709049545391861558358764971725207819285354898364072168272590981603070733019880466790648436390410735381854066907616403675110381286258578283042561481898935904920538794543453268517240055893159901379543321536233631459526026020888102394603259105214111555368356420380284923616055096569261831000125671291085615778856244700392863134763729797697809856312983580327475025290723808880007625103260884000951836913652584247298650838530258196963161713076598207013052472773197054602435136782232645334263862131221412447256687979647543748707029855748516138213065354243279836394621822463960557872515093338769141355314826855795055837072819755478076446651379005110830363102163681779762548633611110278490265633478544667630274883639725376741540137160237880592554127900862410438154468393505897431805367532284998809975918514500010710006357514340830881071453395854066172114244231658466042333009113977696600933042200561495260258067861386859329453037154674163826446949278312717127702852544790757782611464936326775949052268359384347416222609775974742071606749194116024323770193542866264438895192900225968963380274772354358474915275163774899149911747195189530354177911242489463484197309711476308746696961187281342342565210457454918758729838023204130232517540253192872861049156991150224560447233980150487286744563538543977887836442566049724136407692410324845084042959904639245829252564349351090160853912845227714893413652397420268943921205371396336464510206371364280014337555156473088639001058770338054362113161188465951253120978790721684276952045555497767599894143151302418223095050536039735511004599194767467411242201764987645451925147850992123584839120751269855947544487523116132327195320627420395391766690762024054267222172707147112463226002722005943219425570089437389298834981905487832484046086153223743225919146592267302642313453434075460724629065881344121533108426033818551479308968550646944888842047978502143822590103553236082764788692867218666426511997683418697361441048839742583543172257167557061843190589843542087822923541216371778312328325105059928589726982021580446651584649645824985632538203328427326209367139125266051535677482425108413968389282210380043129710614671339550621535097047829482938952983972763625302501310059297001726959554944636808304444748515640066466210045964004098822236945551545837831963167429851667588845824069323449126469188958315501751745598748517825783045145106753222008553211487198979013038580783233865240134187321844571112348576994210613699082066297906084411869052904113182584080752515412054150930649763120910635284313080240724492417525278091658286807502413595003660928444082673717984892365461672686828344363060362910029072030843574803339676499826916638820429131935320233899267408493063230797376646347933491357191455144911735344954140987482349640419571770425739025200469672479535137306207781832727819525932964265785304064254093127918162671990949652317959899111702236162332483272503905541596051641755561416816320879452387090040446741970868775841354947299425934828831569538472610119909405390547145322944511318395057442029040456113687292266278517469143352022287276811252441918374531488773713451924156949112861074500379378430702776485273639046866084758651046046118643997555566280319140390518243969460620650050174477681503281067522297333431376042145572843855866300025544202438246123509622656167652009853014863133098128194703622392539065266224515624569922903247517026270145102592879831766148340296896096806998251746185855254356327185727301400839429757788766507099026749664871061570821288353821601081279862781678464405775763774229042131073789566151631159722748710546754856353896370575073184012783340265521572817920703787781299440448957785879608062524406440010727466889471573887120621643127973339265327082319560003041595252946743226980136019936403372718369362683445121528563067861206716025850346939740237801584004727479006347365110618817279279908539578475015043790071541887492878842654250300264179314815889702552032552273458989822522896457141903235186542506971387623406351053503111034309445233513226298850554372857039432252895042007475187096826266191512342146706362622087558768795012075546718804684026756007414204267188125687743567775624213665125902094124982486736889610852736197680336627660938947049169610957198270512627281668670714788020743742629310989753486109906075983886808389421448466000034467272240012747667721530317887221322824351743506663350866868114164368472502064273201107041682177016362300393623301079766662752129043887786435391688965225507417030103001161331261749635123246105977173782804110540142804074358484823070248347243207849034790251375431042391176680734317871103991829037961822480372022090371190965580808173463960952608021100903028179823858502103443890201847200913061061163979750545463927791152630303650229976929762543727922426827319285410164452733519565143861883818613448206339571749037034208734828466568566633593830451571289937167206408328662147637902903902836817718854274773348382285050280215435506540619628466482959878079617549985830004558069598781247485085838540142056062130335997372189254051387861751015775960740427132388124397511549102132318272161604394644645346315851254441905956644998741765475678851594862646038707630896427647785381873520656227622269795553197815667310732438820289647675192622110830355628872340819111530089278712396322026462857702460033963023039191975206627088043065219820195759843183697274825172892628663682444080316917596224354541845437225492818826790916605598936574383952716139420028591896362533096413395009124259112373375140061178178831545394291813018645729487234969864278712158474233819228418738993699640162176286334397700623166985523258060407459083241322933690878377674338681537677173380648291124993743255767491050823641145987376654795748140684841097033262771380178418755223897394939332416072546492081204120106124582627244542006231952304797758604026918301431231366478911638658100661196643116338211046044967741032238432572057864621161028335119093985626100632337256227473327094870116008307714909812341204823741159948544654724517704723944251123515490486934748571402790339838758823451972025648147008483866327048256764693656576583318364164610547521616034034973211015475382894597764597785434721839128992194791824644482527883613816692666879960458295426283659092950453482796610879850322790981719747952460041576177188700642691671530329851743726390752373428842417818863147434447159399469546768630287903771720978296755305481874864380750455859994144408581779234516271756362818401055260946685243324528679639224618552549704042081480204498975210271111839051163904516532825294408160554175807219243853136841581029391034072700411600779833616766965320083988669166824434747428815518450117095079193277078377567626444181374633641688098088824598396139958753232525848316043586924131517519018958461265664465776505457508024661421036959601202080334998623438679126338095690309651998067401720135206105915808172679179646905205624629348339466628622985397532274633477645285177018737394836611420397406491808027448537398850408327629723356244521999373871247866707196721857077151640250760451368180759243308997153631105491885762867219514036833862797867537345374733644124052423452168472689676554439269362094335513257475550275680035653274072950181167573871131486646220949259217253973663991932762038925179777804585055771826870422216748865269526972929226808849588670502777352647050438868265822668352822125751538141547203152794502625674705471183018155830910513992200549920447837139493567777340690155571891924081028616123436534149308997466227574063363831718451011167914213900046614952989485503906315463794695718873273178102415088347017891734727233776774215465157432131433148329085040745258486429596636167998934192765575773015419885887852320611752400923996121078032290177367076691052535218412664470511145288971639755611181696759215612648083392843053775006336184155059761657400487652410215845014971650192592967100751253450441481867903837328001079259822211963588798562930458841764086976285150218654928697343169520101168842744497606620429129362290862223496176977890615440116320047450207500972183598450531721298935182530555233501843757292238916217850597368195019380688967058281766631401242052248097848511091591867372870315510076776468367827198689608612645260006557652840530427516931194102663348065286260777165932189514834767100515859647039974713217557882707613710618356272623155642729463388201480996454093313871342028437395511725219325436907897691379753124078397367810613019829681685402861571483581285466071124662769834190117995918999849182391748576165994460263308178554158636178644903095442317204453370776848941716104486410676670006173973474620313468802677013525598491821199477917934234853025361137632895270127646403887635590750926803732284150480362371542900702325127824113190811931939641573733776228372198917376771244536700162651679147701008629792440825698944910434628281514374901274044858016831567013751792149083642892622054093989736438240891264228150400152847555229312566204187027820406937276364516692916309377186103512009339115416043034469189376463405425063435474859767139226512914627546206230892889354279015758703715644501023905371293030989320489854121325392709202681166865487307812046434755545551921121790812494807267794224182449811215350484562747970806737783033134796533238207613660015506562056356735629308314720244570066744190417560656495331722499528388546259537777710999511633210662275337353324447137393460338312168793922351043235445419700013222179691384291758360678887164331585668394194264915824144559786742808375721296270924502818067028249670777904470822141271318324445532392968996673738347231296859305580535813715527124255763951376846210645161711870746308035371195197842717084998660996183865392060422764508869527688365046132240011678844710677592554927263770952211244376451125604234807579207814111342325553542110355522081128238045016186127595746152588045300424622944689579048957336361169696345104999776934653355875669308229040872389030195849874146480196820722520773141883506973437753892726444299127021226751412051994527327685696144489613130044657610391327067268682095327613172614645435110993340751106743232655178142775523250033713813750183313301400501098728455401726912150048086277632375078188963708178241759735641125829941310331754642205379519955404612297496388373857435117276076377408968323681380405087553213017719599085084626495958504631035298210318090987800625160705672310462956775858665036713823982435983332676436481880943306233371071091135346245383972811163979938649423338802960348607020802162672430886201503836516717892329125783490131844044107575946208643725433885795435117135789116719370704186772541576877450176460810072120322846256106233173557924872184953203221617944672474411032515842110028831227949844694753438405346830093753151068228867249461267497317953279415841516537098836302041177930073418460521391481856025999886131443596172918270032890229028501690593058187316616931869828919914056682497855041640684947792364705472469637356174299631065919176381348658911984236017219966431103046685622661537001463773543323241055655554493459827142979289298920920834949132149195959764740237265613131777818052196554857044381358826336358403804427345686980392226000194517597336227259278464809959192616652905700409415036419627310556172293971442700423304485777308792409271751736887661092278141186860428574052191753629296906403857081345100286018298511756279045224010977592743898228830771671543715256414118370908822240257768083276234559071656075231615916178131233168153936243325623569171994159895401585462704288291548212013196060917910901293879561239777532492009032903440050300697686361142803635800732771777125911521915831989876690330812578370346160842316924337708673525677375707662404308650132871190943482749065157039234519200862168737992513264520066704357766728995968585188381629721185629860627960414756367166291461259792933176905196580585128490809952265433079642328301344787264664719393007153433499058330870545552453503623147566408958252347066103786317387386900036502778671721527527712172821916399588152708164650292556857404931370925668988260757201483412513278099868064959029116275529964266226592618405056883945396667761477907173651208611736580629074949007889426904938949190402460307331678709672398637927334619659966905193935904285941445391276439854794579204015453664882018971817710213078544896170847829593467225806589085838163139132717498697989999003252208990991845280333122813786903656043719999304072215237811841616575654847880080383882220723361772932152831359083944299261174062906100768323936646483975348607620465782221122044791542548781805752529911314702764825624668574185422616095424527696322136877794945178115942499477261986516623288112819934171463699716705290556186339639149297822153780972337889556101754211903642926958357374408356542329036721827501004442108267176642997139531638348182392402705221291561468629443838719523012817505768038851942164874664048405503988836334249065523991117806215806830428474567893456395311146262535099803753047521937626291262403217044323053944289162960477719560789008085964177472172938766583332666496670340031687018581151494616115482407052397759680038969677477011925796009692931758404973704458222178708377782272084438969658806573758254777563796575805187934824947413906350321534468044477968471071543987024493959217113952038024434929307987467612688423712802238028418947603682581197163097482061703526437587367659242639701911530571276984229200129730636284235748432274453772054254217629476608647126697405075319597866033714613269143742008347048071995044601741517278136082016144169911989658316014513383871391169776352124848446941689466994159581524865278511847565088190755327260156994070794233783480914740126896137588129609794955420517643506657720784776910351971035588496143790912763653513716489924634075351749767100679434043394305538753733812412678931535492590836743939247880538189109316218236266083527880275328875432638176321537466493401057753128340194531050862860241849885805773395907286357323396402338219781970950452812376674843259462369588649995986765846565929279023930959354920643724231039128130707472491608423050350850197680932134691187176604633654401136960276059663942797853507485384839658722072256251934379308089356653642657883626646710863805573466612507097642579053835461264667318348743000345562865957906728118082297616121567124641000673772232884901102983936056961305179129014033863958636650565893061698199456829769888830304506287804547432496328861089563493512991612036903769430221090152960533536609855008476405352937903329006016983087412579794995083968164304545074562637712238702712537813741072371058261516976648446684067661269310548440006179575543338579040408272917379155131832533360744027227857967960093660149022628226200666870581435241130765619478915199700987603188672782586408849455975000456985826837561806611819711456540214266652096008765366613100339848558781432923051345784263573474303516081017808267268576988315780894988683893530953206468564791791369842490111733072847145337658782164085205321653361946468264293302742505840571133380289863801562668478695225961538775699890642543669878011600362701689883406872026164941303701338657484084632192141061458528226997540052996026081852451906274609573144800132316713223281605709029342981696711241189237077728781004771975277539044316264489871160419036163121134106265484516609665124876069180499888172959835722360303730412386856175145792646933446904583487292530591576306333917055160709876834042991179463266811102131842623308716379250647387637691048647176272301298960605174551459573687635426240939035963368909264261951466829176137083741551193850060945780696014520716154216756867857927360129592040477132768856881258965075604475421253684900446676113774311364360806501825067498674170912179754949542093706057871318563310575524665842574911330736939469840839115894094056809024149315887766866272054314420040153615473234782457953952652810778395198103046563255621066204918803976906272004077169592525138477773669881162592098427954986549031085209681915885511862969241009943643132563098664656625908734355074935876108176231274060541209406353405880135584565231761954890641724576452699071252477172969615127783560498041524778371908798349760299556892383840160789917966470093390234821222412569338318156961138576592680781686002709915887862372354005661732672324460644583167099909929788778643979483802087904449916970898116970090385474605923666254238324785187457405739178337248884387480042210268222705350726263665294168389980204945900774825732348240787180852303571853486828441846419447091205930891893374815539377821759702640269800704443005928449354725588021995335507450487671349829266708573580370830703665594175017117117614277441156653729196913476055642755738594493821681686106201333290429767642970047940665898189668847324475780710660464860264899032432443961073875119504189472658024385628079813598338353962186645966811969199250449821427362756020078447255737861582153145831358130221534966358724691259085217690591525021086010616323718894969138879165902987531592001892548386029882732760469633145182092523618374499040548030770411622216133658707433486599491558386341071396233877219990979802867319629690383062744938172339969858992700836935710863279203316763471054777073080511876730361541793443037589016569396950840544687811588377476686870506756645724103428432013608617529338766851086688411143720669237066964426976241452054995254799812617594157318108532522120714584884168989298090978713817532067232137144233682092507655089975899764318236428184874571724843257070298824393133987232070602675687531211914984879521353595674679898240278265941318447710767126079250527696145444259553447086109628888605055908007723817217326623454944734824265634490181968165842438526428453207497464320120959788634470886461542423439083493836416165795388338255398444101810948050176197662782250989294707545621848886675370732852665147516854168902381027778411497254248041921920893682015560104203453797111943942149211185147350015089364515068562853989000128703200528185949738760242178857955219066567589170752038440158089362056419825160479181393844946225373476310351144461814470029101880314896312967664453088082360803294838348667451156703041033202992498662497710624175230893173563747412255435212588803556794817710382536557140528236385495475058247285258566098951467207698875854477274559947448799971483777522109491951545075585436376710876886456366299704666888916364021932720439869040692055669219824078098725662312842614940358328405319116708628655412544126868347824049905659921005804636403340692575929022444760169976711668246987653210767397116263238986095115289242031138922791493208487011560427429004426382992164820516465228973880529973491073615481365192959306175858070588561124743051390756860231100460350405464545788072554836400569662047309985125198708176883602959326305556383876550507067348095528261312705640887985745985910233714276250823812945755127877205938620366428393904935469629503681541611595893177402679981550196194753078570043753703232823158178198519046878807072851088583098804742409978748156232240624772800313730195891674232760389029174010174981184017805343085803239617488847266573573636280954239168942637505605064559723392578114322276198611507795765309720277511764424713949512224365892469676297366982563255680163835055803183142568972299986552341052436508830860238411010378116788044226219347174291784911328707305046396683673565115731473196671168962033154046075248884093364632257642498550049124983123223862551522329356109680292027657470279316562113541055177498527117904954698862673874905873677801192105236488624918966470570888214336661068814066317219707318973259957389408994289113434390962519371174971988686057967458499116440959438227264488773964865410537809798871336919001952581332662299224475596441493184498127998275503457193860587858727059782181393172287161304547761436025884746839478449551003261045303738350110885948277359454065247147828475813744133970651530917360448308708256308403210919584764373526019883163622590744491825388776656121566337468929940047454028021676472789149583163376462938753392185279900318683190683277026893424484927376710473935589877795321870790361305119269441303631947283136622946295278327414269093297327049718526526800865544140143858402547647548801866674179206454063438317562585210050465196423060034142775704368516271501537018408869628691119258602351091736211495444152040481903029251875022042366072881244825009038773138115978841310974714507138382211178234908971673215004001880493299950249836075086840706863449867353183083090744209460763229077980402826994451902833023406544386058618953401644648863787373943225494730969874616808546523422158848062870857069568356941433236409808635238725064706119070646752023683223512039323219264216420316654592976036960076826582514801575065295486027258734957229093581347615573964030360644663729836408134635336736989036245610647762526826285367881372671305487088787157220648870984876332139577702300639533004817943313105964305725310690753170690817238420925323352514300852438749989718007538326345922159447337919693790331143494570546610061855008071503466301116995559763062440920940261080392587000189448989569073022497577076227882762118215852710830228122509089687435677036285899169959085849054630404835139055634064833945623075501168039575857880074085260343241046257331434563615828704297312046791036886331047210879369211389518181541280584750005610190135197971537243806220018005955005694327482904299325810731970544127987305751018132168551076622349619306468347026920877855810358082023829224319165894388407775331132994988250208227716245502054658629178690758599776399949669121902326784701405548601280048821625646620310768164229663896129693423916876031936208172456224383276645872109749925465416370996618182241722362041517661299290624291045639198181564097819870853261954240826058950741441428358802461708505206953125380740672416197709601276281340002086512459149009396663987381769040852223613966161807808074871872797631813965460240831472836580581821197908096756389012213666507943834380972896147257625247450318873245691450707135173703500762759093958724479771483164949449424172273856008091801545903775989572941805580630554044182229373344290387644367105848682649136990177187946733137199812595314114313913389665116909184793488127058558834083376301308667357573631439586162192513548043143619183719833563349548364274356015624877970387716778720312916795535667011257143675661837528268167844859770789845409779267417168836389111041031997776667625217265216707321451656719040404275269027365099995798430182003388101352358961825669758100870201677225495540495486988063388779776288657662361061142432985172441331109034876507231183095997819264750541728418366541234042248762218891528420457105493412194094441992750183083908726428427552429424190371582126441047729163653232829130991351149020312856594050457159702445460957668444212330444094490105418812938658032238871935226259727517692305618585456160545133702503419802548296728121811256145437485803912043643586676789011589791350551371116734077563496693641334167796148337112846319062547745475819537019729234811243679102363386753729456976247248737072476911049312293700341353947743782393472710494652431442726693285774062948889307484257766588922354331072298709909610944530125557436366388652100201174258463558651570716596088356105566263139328986300579681368499821622527265511511607778820188041663903981657201117643288933564229819858622164928037203314443447789565177610037206788111120456060975527202324902239678877942907558040842819051182304790318109938427050097509747154009474134518349882877889393257160180035893911323977291404088319208431991943055609906364940229391310810200965562953433715834648380389268473780967009607918195330314653367886758715162688438343560409991227627478266826830835839851966512384192372586938481542701139994873586749426393212065921389083921633699195299107061812328901470300051807398386812120157253419592659548739188463108514072366213636242805782192710918845806092191852227212732720401410351068157542083996907982994887213090989388945632037826846881071081121926216385601437645368363631249221627184414411503395165501271578248851329371899648017822618616673989530637376716476975204602071558052533422789398817293472761924875079926818695180314694489931304776599146961860031911366172855996969559910513960133779167364781175067082222079049473716339476569036716963437939857171304613098732290084799054248479595619275944627632288306885900630481718725369187652901749999975598500031694527407443249337448014764250361997848725063433793360947525004108938387929805528195293684834037930561476567345644107877958195539884750133962312064283002117371298456535579815593325642331512126093189625831449393521325357374261786423301660999852977269443574437141862074053506119159739471201302351362553276976404665575271728562698118983644544939313287601079336320536153202815121426499080333236795501728015237409403470688609946148654977373000675985735964931389680427402993182304916937569607546575427717206886965716164756052274043625140115601881798118264823308771774210816971842292878605479872122296574781438477410445394139640881756941070498315741944615131458535143811063924399992634299579938183053308519626762696127317635524968355037607534702042874890444651131205089865410336278651987221923450438585423877667393825258702983438248938066134837614931511012141882728784244009662835649135587512047016754735838186761739182048290609753779723544972191718088791116234935725432802071816706790929091403400517987265299007230797466412132002763525610570655870348910814684408481757239466775724709435650296901708882666652221631730334545599455015607887694878064973174001510728503013884628481001993970143768505783349181112144292062877227841418364024246962474835861233931931078352082919750416820536363842091051986653059514064271661967583409453284782268144771334868235505480418790072943729912002860576694036332469140529783373975271523514697851805251100162098195703974516135684029511685911836894702476784954930909333150213524827701858408112461688656848839022314839783387007601785677634554124105844375953900436596497456384958596717987004380882371574745056387380595831723395257735296852061819699620844107672118100332769362900747474191871982215740261683839021392416383293109076736534070680155508856653101969886728945608538808859673853476938150899746246586230455786860371756519621139465106128480723168113682835559961868266620577161027316112140052027207405883300245728081335842189954583930778733980866253639259191981813816417536637388866622017873365688989582770911039440964134645857439585286257760914914914994834713649319507902141385887480188586692647889550275108307963836635607785358177685874448128756682462125417748168827102029189200415143682645522484355539793449612470451985416305155077660210495234316763722348595751153798226314943265692898101863185379620601073392430930193335163848811204836325661769097420918169750869111356267163157656608289616479194011797623245421977753446544263376080938825709646424333438539627287459005400544029431294951027829800761765407776149378586280223784539519641831981920537317498197517218771899163767456032694414449447390167616107853777342439150114686535239127515817203656000270907269866870647976951960865932448904935904621763733835581892091895118262783219601946017454226033077152585807745233670517588805792508926439977058886456746766656137578681117880287452640001361607217710725065723085026215184569092897825845193046397198226286904520526267490786615207304941956903564679247039291252360854390132019854115398130637463431222904286546423617799960484084755211679416675581875169324552874802368121788794433697031994002772177053957553666348962159091173319117202719205509338694864886023235482321012162333205523315923108438012866161178521251493628322685435872684750802082094896591537442343357467046902261561002542055173443465094185875138430586822049587795538540486207320235015139758218016987955547779414689834979387455313696564861303129790115037643035540501432188807312712999577107764559743285110645806750997681155584010344629770435209832881218158558861054231871740742534398921545692208209371088530846364219665162306289940116340410657600095342491290485158183493648553222958053490465293562821309079308260839585925191518564615920444670516155036299153728323234591825662856637510016227225140813193026569606628229491576140060966298930612114371125551503915464207727128568841269607050873450687272956392622349803061900896791764840154055334869056946180372913304590753738087521111285056377646094355090254778757242667874851288560556683182895674166683581575900138750489722268650179231541439563040754457163052246041171938063003804440791080501826955812894228648748045782978811432328309127968794165135157779427223141268508662683061672703912624855660305005492249490181765599333766192726643025130659084023101511697401773596523306133553230262322869743933917379985554166901696231486469301700005337254203527188974751763962711200932335703112584510059294492258411271942723124081122858237051929098494709714206518472905917858507536286679161182607794472871264231926407414948557788702185251877634421822707656002647720012792417766628315610842800606347996944917019930030457185225074616231900925414647675169840495093753299665742038940368582012071418301882919740193263913573812962029201882898093026402406042179259452041070643802622598203375419804684315548527476032039395124835981297460119287580047091115996693770771766418694452663016855555157359258573813305068320237138971072972155664516272579292446104956550223678854668888851904812100895556080585630463733333876998053895937281760725464090291882927876081831659924268150521675823159012475679915371058697553808371007115362197943065058013166923570367770361495194368483545557427718511555264312930220584372089416120343908037267217103574182968555633650006813272853791443221426170736946409841032579143688099648567384849772607265643446695642566767807908542142950089573061905416977841384744097007669366122006329041260944138439696654600379862955916442444584470006864117410427318898253307740236144189978168519458018364354295336573633742707731248914533283198964157833204503846884558116428156604589277433561987435363465179591872306786369671547734409224936309072598594230953639463453969023316629775141129477926257129543428307340203836556693122052526943408775426904224568788606266958767951750882443764083111040447940573714473947667769395398695483863994491727077531744812540338998038734715197171947811986581014450983831717760580033501364240603506354673966568180273208342202058980298482571202110182084060561021184982325755944754910749193177190413853944710449839665900302111282359434377093332684309035591649795773638259726139869951957804017554472253417400928565331991151149935731936450067029537311583389753392971426689978609419895716531941022416111364150455363018541785996329159671139073942542903179656578208266945946619598971840641293585219943401467547615653085626478091588844372487952980031940427402310350397864276494361141406542863347592276796416919714858374910303842436696383660771626070853473663620562389468424219482817916198670580408424330940099054537136097953012182116159121954815145482041420881065300696211298254138893243677259821910982808064414509284455441354740826859361775474411023949929129454269485852534360217160515122461630040885189188204269190686934702268312200153237631576276344105831839969448705445886110726023242758075747187000617629897266917639186056721490371807657346348821413921683208949962179206867817204077269707231496511515014065415463875807866629855574835913573124439903402847345396307195850800543915122217200036113035822002963964187535308375400658812534832934992116222714748027348172974179301443268187435813856288258907766929769445799339370471067437033355431014258761763632139141948261260441078824210187062811357280261674262335319619124519693203871557260782503722387287693863221249218148807979836011986346239835632854835911414572089110438802978452799990330259504314801799915125637518061235013711131294528404101447829964627125280636478503067008641601872979471287760260551251310007267613227180323342189145451863738262414217624918843554515331519059335610593548461813046246720020878840182611203218760244357846768084855136627494115206802082989406621927965904584642196552879934281045856503632734719495724398489906002869017361518904208527458357051555626037606741738822117942230508734147601862494234890822586140916821007003712353808426364709978932032586644885051305673456257156945509369690437914524634596633086498238124898355659593606091055325547827347967770184232128294104507326714601347220131025609977307899661309351322622311221445408303234165206058850272680717569316066368039637320855822207807658466047846253876676881611579756442257682250317685884088382595284306561018951611474957230969801852478067282720728296608774145443019566401406508232674699709626619447760117808836839905585311468372516058581624311629320867325570330173603090075205969368558660152648199303780362768117102153144835822979897436382793776790298538444003241501731158267064606900615998697958710468315769439188081457859679110227148919318234017256691421306795681580716082882725651971762216604124930042557390678091692702948706304386970295164063451883024232064879053883459221171521826672707605781352449922314743547799301531410581355482642439561630257590395521528409513760556632970971283851617817800953333284565913320417752278877593529652046032172932657661477919232806760447851402595131990678145561137836958216034713181658683060703025072816944635992757250063331899188028470056870225051734164643749550142904375103387961632540521019740363157941985731951661664438387244800141310810456064262030719910006451602608821903321368984655142014303141707534965643372980088948827884171396005401032506130028960216973423801755804284887111552290183839194621087061185580977453836240363842855905152071160233819845864921754144021269883072556232876569462917352393845025186112821247524342708522799501830545219839215110456815249055029297027249146110840960358298628466157410430576595511720956345259467792133112990539976655740061100267589098621406183555607547064500065531191725400829803909565401235757683335631842456975222283178200584382916668251776508114723553021275559592455293806146823686706670865317854350157767261785463583397754326581845855153197572736958530687319742423135116074153468914376506593164591215791692013979976055911114188095237740473295599552901088430994230271317812278452826173785303095162567416407928903901251565737869668597034281550219680056961160033770125714028457579499619658842165638412888799071040111161519160255184207169249927741670090826395362202230511115564269407452099170475332395646501969873634912257782796941023053369173093155134410893790748458064878821454604453579566058318026723060557831782129887689679414826583188593918289668061296117900858554994187815269518340639816537483440752902782541131374165321391705684084854014169448861834660000875020839718188789101688380321333876773648708810398476304759232552428435103001193265290411904931930149524186717730632482886413999530595554702860796225127204096653397228185646093813361179580532295898599787716056745584570648235515258373295775107371848191513932052264178813238109059872282609395138818743667815108811361585487303083683423414446011196798710454918065977108220322915425683642199179636127409247566299310142759106641155987278880185266871157806855327586218179604579347818120172755742067924558451977917977610992200414177278085197430163240853760197867773633323263837202445972797873940134770847393435992709664254801229303549747900777403289823192030872554689121262183961230782744113001849051911294996364290496082687534934989662831515052149818239515761735499143705941102522200394822752093843471541334168616291181885475435096333664076101844994099303961220223251582575402154887879611920783076478112348961447961954084310058414527500365133840051597851828282048406794737518531361238030598207466102794859853684734301193134815928272910224134222001145270591284214498234058355850149553112056103307207880555244048389211979944353727328409407370602409615457358900937966605696520279588377822991468405995113099875092475682277002856852992472721132862973603930934339055046020853626802430442403517790483665506282379082565429765891524693402159967362077617409886949596462021888303435874955382342769933643572031738763596796698337770408958141363773306200918507363907169948603385449949158195640948158828730596719152521533969890555702192639353405797869105248089061809952990877692128624627536431767984313011672900627495892199495490163289659264369025712400633051865293219806147233432517866965805299355094781113634578947051836568271279792908035322808425313830299987752001490132033016564118857802695006818238420188636929019956842020200732410043785668769779938934219931485120075459077585455552048372958794022621010004894781445751701794337494028408473970359259412851036157476576396597721801300561289866201818499164868007660520454736627325394610368000176191086325421027360877910067697269823038553536575451176197493540158830773264765760552177002937023827632022937681538090157848192016550906591223033745808181368232384469786924196021706695464106372362536361193480241056897298701705134428994709312197566355704847855352083123861216874544177092821499951298988118087306191858335181078835134397076501495915557704934835830787623961045918160821549792133695338577293713481895069321042581076330768656945924898766907299674399256386079041886064065611829272060742382311872325399093336328624079183402326952979632471336560972596962356574241318036169015247168684801508585803663014109266919813243024653798109150583535575821172762671362497487982039418654029849249860132126484179400397951389159710772720891537737723923458389722905208945064199158643960762468151620609293728143978945589360107053455701917386176562954204264048091997181098893178344467895515372214504246615109697041125494573867838960169823255880944332727225744667416158621326354715879021888529122753207885545071669070705051198660774909362799068917093353554383186486303206750453753471952876906760903929537359767992961461437751824901468178396728246931343623534852887254523494447930952037631828181613288813674814306682329150958826407612782293087679884124084761068720598569764623502640071627794207286433983903677368889085465970568098501126302457955192582986859447255321812883995559585011021400888153801649025363910930466947575625323771790650258624030452989036218536979729734862502658906312577652930247924013481488945105571946288663429530343500877095846773387227472503668231095968911094509034333206863922542715942511848562267513076467642668372089872170249407749602589497163508740787177617169415622057409262481665808098671290469293810877535289541728618752866659268445444067885459235043953675804204184232453018705009431295341447584321144286426938764196120808103201790607824593998816186650493706564856917757063608693753545351370171365300863705427216961748585711572879201042774993046757614777287560976649598545111693421318602475974640950152591750614312088190175819992166530444545138593721124382071452278318350256725353661272595824099453782483571465522604276308604717938382863357991504407396693045868060608876233511833882194435979661862363281295418904668782793323721102924721525023161428976280971661008141398502859943758124616229932381821941033961888086764126519088275165862639862583481946224428013934586917718556287833835987656787872321985755304821652324740088457917605653952995002132474289181188972881106573488150932285034931463094416995745413801225542998638340697722537903314111751142531347907162244793696933492911607052234241519241771354991604809250792141944633462207842542510124625199743538248525429544320622902075691921118562160088585082692209811729245749160692897583859954645084015012224010936632940948466205636033243067276113506019550250087791353401580153681437171041087689957196947983196692884272692059906914937291241067308043825059483288667655110815913119551802074037805781846681564061503411859055265809815387341024233459996405080278951333003627039393291705949835250544789925954024094705211581210221334744230291989196743293401562944436713676675464067325788225218173634751408380940923860871878609142152493224459777624320147088356784372722085497363180003579291210556059436335457821314559725908911383967564572017875383871105052612302408424143617456957403931752717161449383438140657002530671728380821993500213716182222447576875785949567895222210133799755096617591172433206490322082024165076875224012706156752200835487060116210340437401316385108373045191079329366971150628729669171190690101505904999972526669816205935593299454181542007206130432170109734228326499316003833599240613529521977621048131564906986451140162008807589178279865633298034293902776800111429660454863258893392250266650146671788738989355275505159614804189800561981595672687314321691703225470615595640567001258690620220930451866934247822382245743856066174464039519561914310829991809521358779975295985053187970332673726728438356928233446921817130845486703325369876837217108523906042281092080123875267062459837661907784482552320677840324915658872960384015585677028540576335102582330859608718967011895992291811541729505149003696057734412729802786627866657694565953835487531070618253196111845798534978544406242193187686157570381913323395975837950317172689367818633568166768416950913637693412477061296375845585603693808879624335667051786870299524399559256313597909005683546214845744026524513040373103876257262127781132919578611163395989498624028559788079309450528435994648856853048388942726791142971222912883318518568194127560746080205737287046874001228764169506265815554789538998042894303045686233121594043663694168109120107642168411641155560345311729865332073685629448664152591930830915268403347805090674415008236431189332339516798100540656444431333231296016119343734209045119025409202169322407542449131203117716357204819498641079713994645052760341130821260695588919993293201055354266279696622692905845846278328178543000439336664135356477450881262715327804451655233565484352657335437005342645852731244972985337573781781865754442867396194376227408618014882041949819794742609061139702358065072955190782245310835272079567376461128369805584082610269535116091508622948973245956559673374558851619641966918468595682572737839228440880185882963663996091192768231415478593419231698320301692554945480824261181835932780041794736779696624671286515477881589068896353628296210495339576137144685280028407843096162503226069869221726107334319783138719747376900989195161082508001988839337375963525069286928151763130232046448729763066418564819039848881347779688252802035321787252344498510611273304452211596599008157814877215078475776639745478165943064046285350253638622241003029027379685821132861405475123238426733791209698565182712471667015735316507539685787532257711228867946054079335057095349613129548204142256361330558955417136908746776111472860873315486127411108148159684066643512559557998337377663025728913499260133423252789151189166233871820962961199828767223013227653075103090600374596423277538404813883765671996684087293532879264673835608173866011567358648505890106428725906754947425537027748718437129152494902079638085167824669185647257445486300106785523259450355863701074462377418267291827284639194870714665463046903051861876355275539834603523000498065576229505478045880788633976986333644336212968577082831925997499798008675651248069171954987215528496450347101742233519645159512895087812807289037110929860559889956795102732775265070090800776790527497071782108474350567481804957971129495826660225512226331963608464029491153648258340894642439972243723870739140893674617521929758538984122085845805471556562462755670249168787119439469660706059619860252223902856303292530172996188269320986198400830448114751504216100435969239158802868085202567556119974489445855089920326489814606274801286559100667524602221356142849818444404203414671752970004113933969142390832011694633162220302263060501079411972546885817198155479404286649728694257581171280567050124476789289557870880231509285252197660393464104171013955573975186178725961680000841289468824357755061487351855133937685279424256840719361466915545695828170344526419899775308331427444518895592059696598916879688728914533718895809598990475873080168698903636243465536797977291717152487554431831805246093556207990113261668831725875056575460763134630477674789155570699113237122191773546757363833615039148838993140639085902341985686971449276664767367909608274156493746901627007148221015972912646904091918484482695082533856440935801374358331607159485610434452479697648473367092925604159183008489995116707031461175584901291357866424159394755370883120739188027117893642517467934790395878726165464152001195066381419308812549967136978207005405770911547859565001779722390797541029654898179108902432371070277632629294866515169916891777383937223735073611030495767955819599046105392929241876019602737126868835488663199761158042397820048394815137124984005498613095420066837047262562258214160345046310707850352814952479792218303301227668614963959654231579812831695731497141202954498531442890525232007751162676973513421514581329538298959849329421737067452049623854089051369315045824364247856023933566428327485211357245032141424211076336368087361125879881539239483075662623653433500911233706714809215593747474701409008974787607735223172676963249484192036352288194279979469698354997715968632736320239165905209328173929710070070384940457490783044622669289308455655158428064295256515344433188837966390614069769394497501806824628263562616571317061399129069265356539670227041693275244602004047461672869471517267725252708811058585013739283919933373807994493347511627765137342248471588930168268132548374829316231991660824493643681231673108497522948987114302194843488012362741481261037245259161434016964544236521923183727405728291892696464810655349970361188914331645673740029866231091901677879921769467199963761358636523506860540340269868993136198657234965154406797397954192014560516117036372698188303407228046690959544247543824604581041802214386150339222457610862574628525789728941984310833775822060611618312533416866163944128178705833897868867905091241897430087674650448078685792601065247779869806446845928298087178167484187385019392718303100246733956771821953589958326045950207541978653225757722070684908213127326467096598402582307096538938173747962218945459132862772200746780099922490173511998383586838745404087857026935374904424406102598108511997302724492993915268629782458095674240300648895386767105124180626997838386204739265444604993443449309365308080911765001538547338839982693521212168663814418866616469776543715733589618993554756405495588858478402656038933834716953532744829613436720992257839044691082819712075213351341841043296605121070937513604758995512161587946293186163792573724008001288044453247043469497990560038723705834917408013078230623364184862873991479224220447225323358886817188976894271865819915643581751745980198988650649891527169929612330938812387098015741225337212367392266640576841641563639814199537910602751671922920155680074881140493014495903476157950933771815567088541274119130829117470194081295168593235156113773952167120155961897906231253565508485765239997510074681627840486976629207661447460207432566592822741862139183047764049450946922446506170204620279599721760664571451827376214327018982976290741013737355231835650186758498835121988984158327526620594205512800054108517789403258824109695688483042775120094435022304820927819356142726106220723183155514468790260819160630423719724707380486801149325430906692913267196668318562435369210386941234853550629297615869711224819798023036936535894005056951143601344448867473683209156370588441590901918347774105665888459222194038733227587385763345559230661239018606474120248407582932381962478914138558847102090136186846299628448795690250401234707016945410973615210229581364554220700395307200975244162271536400225117896654785931561018760081388344501336056564545588429178216597750495037252828000431905403377162910372200879027755790830841777273934397725919717115391510514581276503844799371898307303494047059218453782599600980552973350172269588184087986574847485213030578835677849082161997882781362333858200911598843422697792288894132290719478608534398577937814919428894885821689161298107903291378839966711792333552663838006200460423327588715807565181809944621849104528080609148737602676086923848777544508150491527137845394574758795364920582005207299139038458894335099733618855545933076357178942271544198541070977861433370944590848323504774178114191354909270803845891106247892895288685928550215554860807445554527656549222019509185421432509321003572201963013122055549283337978018433828695832091477887762682918274821360110451971541282081741535462789722711154241845110629110376824326940345049030549043663420172756120733148044837321570594081496700084149822747498539656352804878458976004389837560716576468271407809037708499612928663257016017350230609426480102776130963084053621332866545118691586066645686660774232789570101431780171892418546064126942858320114724421291646929734810441011530454098093956153991290794753059097311877018471535214242669126160867967386330777429032137228209059255101100578066624483105470213604226772489409505439595674142203864684206152933769761374613704764677841946706020326968114422055478910120172840345511920214769749437418032826116935061562710233885628933103646403935383498468003209658729242362710231798630117971549295436173395119091229363336326642357593348909509155236456524724028998546957731087254818655849147862024778679296201649683235576677501708498538782288342123444247499522191514365147102446251130813831222188524324542222998863026646933255935297302291783821467122612753017998972206763925626015013437438870517798074313418542326606109573341498932113958415336982742375800820800359018276594558075723617042394995269998697933070135035722772851962156709660712958717797089581116929359404943282921540515760721012154206604311125555145239342582173773331305780674960445131999968855453097496053241104641963570716842036270764647351243719650644937267862266341101765892393776809046578236125180033281115425688956774566931074822855836999016910529502154563174407725655818015508433572423217732478699426683094677714155771058498612794530611352473070142858710269218282043699689418511545053490361075798642062130039930400085399406191047191754819466796943181378049461609579715430626447206917980735428570768903853130508216374178909239792440977085143910344573298287203045742814921597988724581477606826933582970962041394656847003420081915632370788525026048513263664540710194453827091230617730572603027062728090145083664271451727272868493167250822946181247130061694955164364952089066020558651947529311080427814456995334540879701573107509793338511278056131250049812302419629508078147797204239689141738642764883080038622836876788742115203123834033775555531058094667346817685577492028752366998887202374163556924588818228581582346631745525227471996975295498829719323434699323359238115197777401724958448973689185040705297000259648839217228850205313437342630831940528988978512786139416456016364167874192515027255900866583631789575837674454372196694696132084673150925156988203501079587220414997046627077970288966388516777198743018898417340425861402752411481862205716804962457743842262709830959486447403786008844142929023902455006801434180043610858077501271580908020722434903932998974372766767205637602944640674962189939878581459016019183044330402477728531854537806666285068172616901356139068791305535010868541100998833341852178804337599257152030112836502612404684579910971994074000602451178655926269656645690431285434686110367651444918227121772054880483026703162536517758177563466806050204641240022777833347431487519452914603983997262021578368047287898334839132840261011129444704378021779442658569517007695633915986453191442879339677104414828607539916476705690682113196655559751931829752991508434085502995406076802407156637165147895356789105251735362549960129431863345649187147789975814468933109148857275444912577285502320017974283396086100000032731007062717584293418173422392120537064206226594776440592763390764880984635485504318100182043572242692333277465052277046321402559172286128839743547371800531159764355796138665348735725506541684297246981757824548067860805996986234351638498364013748977245533535086718948917944600801014221434248945848337306309850577348992299628019670359121575502792896686497759810809219372521257125203423264701293726184606395755022791142563761060245136564562878412061560838079266601282167832342001712157394548008649980438451842299485523577308374653705880130562621890011531485054410779499414810869000507488166147907586693469859595425853436266861336396150872078704919163695203720433692191748708140374670451150272610593513657832772198004513191346354265109235014833524437410960128781755942132394140987565574176747186430010902308482446779359599001766245151430480427408518695576572162703416286735094159638553226307362305507755315616216829468735008829724467988957324507642630729910260439897813549188196005129719381161290916030259104038599370622117603074386310233357558886722265265398469379994899517127455406033888547579535189689532935127565003920684184546284453091839600662914490642245668229552111095681533401517567199899526627007068236005931696956631519292013994502713645719114928806384172740711305669857738562337701505338470990648719286144344256061710130797952637546528695403947783120850149723339526244864653499780570578351269251652706309457206233271624061410478428673479273104795544596684487755632836255499472404284338431047595933636380248133077756432137126803525070207613320605160749063213974849732918840664630882392176893570145595772660070300231316767114727257227623045868856455055542550381695241894542697231979013752729393207449726400482787449002614501817307435238497495315919152367562612163190330252539473308341566441894186881219102895091159795623003435874827970579438661786135253155188445061119903044402181683425264084634557168004318389001455063910847824462263336137908936990609310564807068195091784230028032359130115176411023782913822096022264713432073535177055756121354389473765868267884053965989460481438999874364076588266712346986982382118320105264782975037086883456541974644591576269886270772641392831264097533372787894635341326697487032355669489423282123727312819398793300258116497814967893021706090715142712684659508429056324825195121800946662455565763160768019817247693907298978009498760147667531527576228445000902109693011876327016925216746119068892257761017891860893403923692515644486178295324657250785488287080423394748806044100394369252736269907385350282775654299792200516650155864295732387807447686048692310747360919247003789904459337408694096125816065059677719753078067751964433208824548394757854293471469840657312984735572349198871691842164775216385602684145102122917810719825030175680237267485375697301597280265835380495728303870882401090382463284196714755269322286008232765100106439683776574305204023688794760996896132944923853752631634800610292550200436738829497470544708836677388805398165520019893221916876762374119753622235515640217919607436336527068651064084142983505710530397400584589545852024674003065466689373930336206172862368307393383664659274124542591946783947235308138644266159629486868266429885040062827959356100472396629329162819094164661872194465185571360867944751720975084395964649531629239244990791015190090440565737167701942976207568924908131900184458010285696944740901083809979423790144088892512612622788940482856455813182833706468594074273332264868510041984871495318406417400015249216699845772689391954911485386239975454259314036533307836207359436998881044519214639637039005479946349415657163549103228417588506984320187399171950756577017964573675391533970895581312167398748621144463732759736198445870130773166093172998301166530998384080887571705484685635126044357336596286243001700436188483097859395502502292196729774125715356072592386624852809256883412836527415019836043661199578311440074560584030039548507595962235263809206872525356811462152431055634505608583669749665712664178807510809423831435148995529804297276754726977952747699480004321768080074285077876808360391964080626626313512809696984015562257822939693638678113665297582913017625231477965456018895416788973470508563552320869679374481120202370718540105968827395506566680775514842693285797782473179231374941594135230030161075426417908568500513112424512408903262276249123768074284192230061444344519236434302971478665614217046145901065871895958759652904256126568564198594581509799843417078586233821998436040042730682386967421636415828674817468516174545451730013671106887241946683160961500064883675248886702413647061383150968522375517460406682781070570151039761714957096415670589779153123096587034587054881428914336989172019031834758900768379391166952737070977193558753645152876334562277273959057071408190151636260986881595161682914201330175128735331529751467423081384327389403198917863446111965336258253989258605081587802387153744447944627940500138146320688969872865012307222373612432219124743400054653746030075762539126045244968795210116699191971480385383596555302186441889751719201327947992842498566924267050299984661760372765325348168251572263400382727852593845584307933803454168689243431477610969772617150435077720837351234185761623021877810195432881701134482962869122468710571248455445651817355906761290675689897219697710332807155315006404985325134829343414162475390580139734797998092590572127126250192578460353101333831018153329687858140988161313603734620036423787022476324940701357521830625421711732127085170452479756097061853181505515026141916374856187427394733728616655785667541027558073268553025165782955540218079989319114069584324472945857274385341690896601506909336747647486139480655602412604335382158383893979997581011072826422009791781936322098946441742560182332378163430711681707410236512570740390920222147714617555704184539992034751106859273843080017089687606085216757253674849954367376618868759336238579174626817810615005711598355912740468408471030056928576197828372650863065893901952673361570219086268087661879404600068129407177107862296707095815895510820060272577655196476004970540898567911251559824911015212215976926896646833570738178092485141642260373323578621806145215273661227956196836372623742317487995555706062165264628428569714023186061049171663879704537806410002302816572364871821377618323793215361592812342118449356039733414503094930935090728899638254574403315724783023064851927036245195463982252093331481643969782849648431604800526808531378984525675635331933676652851754367022937963405436022837601282787342049513877250944110433652934427880875799571634277764099689680019176750776200379927777318986205676901344516664310718622255228064198777254991743688584685863100899509617779501452127654479061970970370776420484105914919997266834216418280053968598983980797278126026033519474609909966827737928146820179469759149360175703825785984400816823583547634905733147218847211257703385539824835466474394881690932149421511431332064370381964232329823637734150854203547373578980225964842473625710290051494429904085355355338460684060115382514593549506735136290612122553097997318661181019735290392106215854764548016053533283347277855415295843405313212836604353867289198784954455319644213789787743690690101060533532497754417475991409327136818636195575741745721465079006792392937570340683531167364791914316105180623720533245966010155969349078758969241853718435129471103044352473148472450641975189075323502366596287582210118829688187538549986506763605222394243201090389535379660943250244999372373354381046193772781819620129648284674613669472502292996142781041590742500722066276234430889351663313451251747631592394818677125058456892511736357362367425840288423760699976255357992203002185008792801396770512163286930316855411009903288254065858823473589023344170439127798765668568364133246496022249452641415864713697508033121082742188943662796534258281468706764165760057797544711930135430075574952021661020929469341786986641395895890491453636540238067546979355469679952755615521528345432333115443932770555437643574760698313946520842695555577071393765405696377751334672458182654105564134574821201933524313136471061684638016494607892579203802476147262140769886775892714463575997630941300429955990900403886163495401069584494537591354250756371178958284306543231268473437473496562193739614097500824365571371988172739700477851602008650094618754810555693184757581714349244605375289860520389411043610614974703171450718976443701939492572537853314430101135689286020110450383999751905945387586249153892610391694219421293483128888282033964801852152916503831216093165862794387505231364712547098567342349108526418962901709322976259530934114199076182807768923700325797194661941500578924858779882180927754288035481982635430675618463875488688570018906162951929347114571042222056486259916331579194650667829722225523439493756444301902348393428263925792863138690033295919355215189481704640462476122258402457208485419577824796098088729032719124147020104484294987107271116235948189072912830040458049569975430617402538014361246145446986218926115386842819056254003179665323060900260158033087167964083089051989189936856594785185250007441263788092373679147235472685222839673621481076755800761138006755310379494650237056228821279470536339618144161393418273425089385874663668745031736238016578247495473718388636460940535985397744853489611925438695891003944065790047266953455565608346562272739673537920512789541656419968205777059050364529871919483701356921005202666545300351204776768118029696915968348582403839553100841330799250207524290309438400274706946116228307275404063207030110666238511385146127489200171367304458123664737651569773571128111603687439689610110727193718554927033194567151693234211837317974510539052015555083691855728086481653123245070801686293092452438807818310755321789828716388522438152323467336013326157933235501370215097112969085567994623904249116515775456906879874493917309556061741349529151243239879042635142523868883339316057351880601511122124420174294105031244939954727732587650324467892902803791898020708466521115574549844864668351151440087231027502826387515012261030793955522395583873396812053481989295854533439511748852097681702920407609198999836344269373309689733276610180915331213192540013649166107712440887667837831260138858177654462463587167179312104403202525461164707908621609929790356116057796487162497287923858795515084815633769629672020637750336441229821364198597451627508368886232563595642358546787771968516602055122857906246604833863069968952768325057217106055283165983611389265429042977206895876344428518657761581062021726054013474902149984066864794325696796945880129137241999574749359329381981973177993956268949672964696090963601688846467811689390162287633532041014463074849344664711438279658406987240454031210672766309110952406798725398486110657493137871613389811509858422756016607271469895910476718070324863204544824572645690472687716326586550694595018311146821562238828460277575511984239728864465680343646308829406929348734503631401004203767158089487750572449883468472977992241242665800495073905930949104232371243053298965451056819060337538438685251881127537675513905466847979373048247306665375364771627651088316390371088885554322281907475534349921979371632994202118174444871445164928881740613693385898678830497542838929966598395730652099788109763450856424514832407557075676336224980067887115281140923520260219948411618595981105264760649957649827838532347809366938395768188977582253555376288664890866714063161792466530710106647627710671178881105297569375253732345170664520736105208582346817026475663054800276169227367081583143709753548167186949350888358232759969846250207104552186801476260939391777160299095558102570726284468604249111204047720689576090063642433888868752214393757927141748675149646713636535076259521236060259645883904808342038172331708935608348795785893909168131867390306388260604624132342828528921093847213392601440253367789536162088760993154459983853309703222995081576980185044287564907255753581843446215633030492160625444361570336908680622656019963990382126349121381385121685462992636153769864720694109733788454255404113854166322657445361232809177032678259615173199489233781762533315257072712455849140413726262473154234355120214184101550149782068012411598905002093030027350661645025619913023012624757296834048232236323990192050801695110343603215372653748370603148961481482809602115699348615420972241223094674723169909165902031931959646767829822335536901422576104792123377748873241441852569461413641163803110345155607924408963775756445000918768699111143358164102399818037885570813069409740436618162482694789712629096664005236696757047339938177346482366502367960345562072501788850605302536564943534171202412840094419700861103362458123463901793539005230885535692125284229239249527014412422462648147271767732010020098126583028337518460792536083034161040699603020670632162702863976707974114677678941513523130480262959093206031532930163490459398690432384920470808431118582702755279362519216144229721251302814391144961652891797925422369252416680599151553473939816444658841726299024699812861952054311853554359698262031186944378439988223920655457004413515656283537423557392431416436278224136098350998620908277351833524232205156687505821714211012099774077436663641763703525697052063911870842628030540257369186996758707308594649547695579241461348422069853828954805328999158447394441194700880411741624456077786324016154915674032353789561645579211725358823081680166579884934203863455065075486281001199710416584037138603298968330256738487238067512527959617139386380067486102934947550792827627813309255797227652465059103995740583142829165205534666620515009019440863821134774097388904013161012825342786202183848614855177151029190689956900402230919360140376919056656904256210725175375199707933895642152225755040853612982546359191964750241516445498317742415292713256851660079211614826327067536999170942385890052949023229371662761244459038317881125940915412889466078850591946478593386474254762717104511084445650248926565243596927478011426071669763424616834397760434504763198652224042220826420941318359073489751799929526920966593509158378520140072807379332379830638447568890225629849921796223776060213088753891061949112409020129553626708315955412512417980944432010274566813750547516505408779323356258532085363317474108686298413710266939877719895194122173238929862826959415061501367394625533533840224028338978053833258030620147048416699226253556321786075705055894906645754583286266490554196789975638342553306409603285986561475955391670772266930556275939910328259020048989235348966317769863690259511030542688788347559088777297277274166393443279705573321369019955291595936468431068643175368045827433035143018570883148031408905443107318128437477036527531674354326220569351851151863253477706537290539305412870652776808259426073189083886945986924957998230306736983384489480610089168034221762004904958715657920442119893364368676957841125661076917916278498740044436354498031169645742469190576538636279542486068471568163233485952100226211985635398427104845117063469230125632825547878854647427874944964424219619292570302140878380722765057016252472703643953834216285814116671019401193395466780613012220300546326781427337029205424194511433138197292398433334529511027807161645634517016312492766895921608743439129186498679482551172720955810966925511829367014430346130364257282797125648923764709830676959286277352801868590222576639619084427699142370279461031209390405634859580431427527643889851686021564743850304482575679391119229540239647051844865983789356937047542387930911853592734231041347431475961722677576271630883948585395095587805425189045160176656242516855231363476132267957080485673397122625643021802783886914909583459069861978064955591399722661725532654600392005413470749366403926469569885879361401552392155012347801250551956314803459960745700452781230865778860576225813663091879562010177329997389435617840216312011573399126350862868085443362424178170872752210379067522412797553300111355857989590962372503280043177721383952752627448439844627004825576372446448385942764217629194073509751010031741878677967864860969340052337971112217876324051179619052742328157307786568802703224659808800643619615070394344797600971601697247931995702261779029663692797340864529007014980509167827032204980302794366418806762782473024595375030887396652448411997368344409078896884050215040524953417473707380927223227913328560747984516666933268636947905468869355169806543207227019144620941362394832903053726879157691799323298028880266098040403635981911557616490598580409945707562474611853527256481945658458090314276947008102300098973042311848040315390714894415386890335858018396767184926775078018315727042672890964623412251801967416261081302870643007710961147788374530392411948682737960881300780703264526884596212107034170385814768437695876157855329720710036477167597895408376116553087615255515650927936808994586157065912342361752312679098553735529809353338269903942772296815874905288723072235969538477669791176653703972358468115554373295487606254768601995607270914797012557689680087242843905622354236407508231914044597039311769021484527508330656063690839738603847183750016229553510368961575155540190389511475040826873030832206732707034486445464587114651169433366239681460415161507848191431203160886965802276837780145770725014259732454905231976411908029802085122514136480737067361878178553705094489203563958409463662948072464718214344353690880665087612687770281413329338247797118446681698840159829962320906322789753423538744181483997867216361985118136169140516719516034173459147925293591261915948243940435486043423673428846611919771593426107618398644408493556056503736804050265092712214496778095515298581387678624139350758582856569260166977994813210364484719849239492639846356133422953124804222456193592769314127660501222364152182034081266743899351443494162013635730019783418291394178098719968308145651295145481517795829168575593797093872806437728690369099546948934597027052027998508237138287118143995918682675774548364279194202715142243312558708686128442228991295014024030142701322117093018708580661561072603667891243953870206558759034548570020672400759425052179125711834617328593929285118844940483591753348507957645673128144364364720442910595038499619437996074519194371850212043398791374815128537743178964138261102239552926401173519934441946099948861138598647229323302155540662951935836917655271184993599713628035743356023357008121756800022051640700121404422924814311232445801711556408406262729422969068029017478243238842376440769706987269825697039285930268675472336066499807813902892116009210608661242565134119118809616051642221530240824149969276788840491803352063596925016890559046348857942263128650969407828003828489411390582406079483341415263304429042627555749160548417012115758119532343212633837154940663370268873544703302938438558714464545109168505265020924062524616731062552407726767807764087735013615165330762982504240998863418105865156780025799546631716992057294029762262050338213343962406870811778012042240596556125323157772946862130409859214587595648881745662219378255856963926515519203823005032120131259901537154782278155646294377648833154204618429548629888426047059607919506873581911262810334888220858207837058867842775904716156153869886816363651498959270581661567624638968793089588528658851306253831308489211092782486275285356105617273693580674481053922840098000962338886555513764008289655738350305056455961697909288039462196096870667449768498678286941036825146141601206673021734787064136315040111238959336934079435683848511376466802246835035304412540939520741938404620092135596721890804418691615840602921190083409031698435883767745551024920310827562805185437617152101454441193207517342421125086391289245793237036871500577365351706440794372202764218717455611350805265315338346519110855611242393072174452075188476222418902950776174802008689660340434986589492055428658928999203653133841853471470360334425035246262835482280417833517015952245412903063275780034795368245645733514109561578979588381884033903532265996154779389523440259127658251362945257635169477269973680886905450044846805576852218410271473320817131728568219030492765186038663626991215727641061131558779232361323061407482922407734714820273576200001524214526090949786832505337310519040550920607088186307283286030822401151225460720083286806946341471881564828162818353440996819091168363009945960410926220796273671651577479336327837308808666822709019913480795336686723540592064580077151376935855220742302596125987562019304651462311253380105059126838897464097592095839350836151642611368008610230421526423401319337964867793607416753223546493773432044502864075468264177351366796971899114691916165962502767970285944326107946747287860270780775703419795164520939945634380279867721261501346690058261820876034567154625998052482402568899509546088703527419741270799556224308113424647930087540006976040488290009594627583196156248162411165361665360792392946679469156398571497291907718568523347789718318561872487535992290767969942149823070980312706974583150158159471872958023305372134086475009256118820987867753528880409999340273365517444093116142757194507060881825026223427027753860972479428625851015638217474502794662749662348432066831662551612425841541100502879811529542753411018229870370008764456069176803901190258635000413561067269986323552689162556333267540871088151641473737191095859229976697612885769128811486310863785129208441245076462121239340957598579480577288420849775737826697173230217246587202205601221808151359568055554510334520652656400684129168446275542417309895064701551100034364525959716195615478566073357887595345678978903973690566353374721335954061979300931977330576064671548871748519785450876070640802884471621008891561548406051219672144331575270672548717661785574881800382718949001560010929363921619964534881206031023270827931816551585539256210247351734240227334589470379610199726647826488111067620686316578436654397265438140866834426191224034933862228125617578282612113554737477304957964359036694220639025682730016356609863623604296817217899164810491924379518530919487835159992415342631218539525351688915238224590052265394018000006716319331662993094697319517603529180754486882907080958257257163195250231297394303945946483347606757297904651714783460366785941978934680575735771895726981865664823293032022143012715614838914443290551758577288632139726998329748889948864269323470844452160923832413090871642615987155216483790248423171427932968498341865808170376029172671409770004732491411168525564132628956677457133900962598399629274035075416191818519726441267966623919084259920650767360094496553466548955750548113407469359952664245146813198076265009009197374013494771384770744881912677610062379520959518545069502018102032364029078675226550678533601642486471013522300302992806529175424671080240339554627586520506109093556577780816584262428777419083177226188220102116468119389286868459378057880415378954912790472620338431045721742884705286181131997756922414352577384220598928202935759265067937870775893783695011741103927253553356206142190978534047247325015947801597257677749725716156639569506803188459514538770476049554905171971465659829020004889382891218039272998791669161695049016072944398457708612508293340962008593602812236601124365840199705178255147240235408463009944450221658435720211524396151274671065484881223970181735677322925961861282834729572664923014326125004398689797888729691108869192257653939998962024098396791385208032157986291799864838814935485779990250438281004907761301525652669528483829534938600845593279661981965891957961835366869034420057120480679142459220229650324324144732089654136909136735395600764705979222442285426833396297257536851220699669327134269713819102042926136925137850523709975027609076007121860403741825840552299420489705145888394924524120149153385922671765142221889977808418176023080100516693575765763449360838149326087105038368247064093731627300661160503567439474071362259134061141838867875546399476911313007384574969285487111369129713399283264582207115805682318580212879689731860690968727012329273485682084552783552730972050584696876024283197380878250762989479963464955835360933501912804322092275112736800250976791657039737272585045618536949435329139442554351984362010697968940126318703008604410311099096579400088407996506112268566424190313759432757887963144958251336477837587275931785021747756631125594938998556394324441074332580244555447521607092021964205026261982259648058721103310246043191276195372278665170849271926570755459893836483393760061014151857956322054345400899629894461098549266560214889146355644015660144023578062533389925475500671898874090793022575925696465630859908921999257036649128301934801705809564179804815162819696968788963075286153937261916696587048880135910649505412571350022444395989935652955204973476026845267479431851107360314309321757771480097130618512960758664782879843555352815633285138606687074167594370219355707536239581669009192717651995153881204702513569810835627014677510295782155521321462482658374648788025951627778028740507844641224802380706597719030926851901637139839630929734911034566852458903688138376788685394373543996497316910039565755367701022811961658653518647299763543424448945364424557755885261573546575901452339701880414065717398704077290071527500326719435748965435680424249364744533302312015859206998014013511049718880163690430117154834554231515600937441511322038072872631504021079888814857824779899028277967760262076756584152573690004527097420426309976254883525318936466359191030320729848008208508231346547739712607964828515157481480320580662735280299863241679574352958940112946081465420317359359287955363003682845963665087074760969742134997160862314057868928445213692947094137436706940257918464549074605536389116466676585711349073568400261541176361290087390829297790896824146258368316050550593137808853157817735281320734172197518043227652688136749497606788581926407991163390496929123732616561144634451727058472497178633358920409952064248064147898558398685729057807355636401519085617484729450610812342372807931078821569865235904183150821730337664337767982924405538101588413280538465254637631383549239314888897334279496223782767976665369386036421444501027972379770576368017360893883820576585692007514193511214144287493029770259390914311478555310393913872911552482658425835676925338327820518014884685072098013306230542601494441193940254724846599516969598306836613191419369509187546374364080999643653666477482692840788640537519573236281604088315732882056686835308631978286275354772102562504140098720022493396153869780026592051860843472112345231330273592414345020178721037054883750338357416032391107462292643987286537766365216976748047397414436769337286317467015800602091204802860611174158923172546749034458391169722374795290922523721378320419248583485186855308328705805149262239200152869503054307703226342767865364180899154624593622342863294660843151155928559454906324055087932695178434680006551751525444170900909571698573449746572708535962173786330795420517513123100999672275973722807726854280054297704417300387069152030810507720617053742326503246060893444106591147327562029093301774549630453198977401406599369551207720463461804944686078145984319044063340454414313916619004867748003774587405212634545137973919065685549968308317487062106060846801304125465511473555598686330876164629152752421073630823023293114102331353593297170457024278718295250871402988600825484259215653897410972057680143528394484580351352077779689787744945719139486491527985992325656448043903533952478674453590651148187183734258986096067195822637805271041318612207801776926797965512428139482897784810702152889879389569102811351177005487005448403326582480600828348505126022874478770471176140467341545293296140773064043782718628522796456163507024662950380794426839361550185826631709878737589365228824511208986458691474909291733529931209539446692606848119678321878167753086130555624115132090732749661862403949015743496201204335955555297675252963787775456269506812197913460159556068174767508697095880343476046622890982704738459288342921923631460937107763711985657805581527937012388676034119347941703324638682630334217237759825363241376669132948111096483073567379186832510851142785465196981623703524961755694032083179419094866309378554657819365810074681038947718882047258351485657711012879289775296097622246690722851856204403890462896569926187590994121858473970842618227667538752897940909966302047160364191779562940947990772888690036866333866464219936227562084182780330042780328773926081721159075232124763485241926000953827553136603988818884443109293732135074089026001876456254575763823530356171402577698403674029920822622487813083597437467308820327216135569101635329282524457495916729101479488144036271586679046258431565799092616952700575158094524781890324829576595493148624345449154331758786379055030742995393404704464142569834191596771268746881048921351029968223445331801308999434100394536045441201748579892777688933742343914261445891005692179767042952696832399721794884542167884079470548562086603112206868373785351137487060621882058823698387304132944583814957577164144566648776679729839976053801510418415982534616622955257979963276272371252625432092732508996445517202961558336057322832637829836720402211392082890115082711170180955752231326003087222848224448864306156237709072889246695875165736123336353218146040883328937233618519584434770263201636271556242438641876204234365101674767588423773761897079894980794327500163887838332731095209960111021882861280478975993274470655824329223475329059707844101795418978040628355487889796263592991006688832498468279689511355778479845531977250753720540852282004095537615374155842065130724156880492922806991344490826777746686697736468050044652106913111116365371738083077133611007415614545466326983567470071015914625491057921496144903329097600484877241956415972120315679630470380504853225899694334324226263942521903719229564510195730552937463740834589020134236303515967992616781889131272422542701227568098541554079492329372496793674326131350730060363603173957668740598805879562450416687606997062427002944504679376854146026198270678986543155666592905691262895519080391631378090386508202058381628226076826641468186475883317514828560013593198761524503713651469654195811528790437809928210456322386519163687967521870670399103605963756196751359089173370502652731605030586764827964974377561803396179120341911893334822487977781590310266936444322725918754638866720854310750660642329653653161958909524876287687730129543937971635612704840511327574682780078882762677469693068669012622650444416808345756012022842894225248483100607113174697101361402605764099382759179485400504273173849021393739156098286589841258750994941633053271972706590574681981459660593499381036318671171993943883126937557751886349350186057689558689612436366688516159624825400353728964576987527844646997645383476437008839681997764133683969517869175689302765187901461979407148439315486301828855184904628568277023111010589834207871798194873099121604164864640789376567773366784176559402485329743134883984302295229083597314012542983691150958819241098261621906694179849569171301063557172228194376392999845773829897691893351651541728774446925367694588681279387536312429885735590260866948330349164061269925598931065195695941077845910128794367226610850182150713059048596774861329932138392703179512826461488185797641010502189589908916108095412317298468091276565370748641474297999038757190350398556048586794767961177475525548839983922889281257474048319244013104278646869698802326099288177382830262025330422800502945523264827063229785887896186368092916639239768084014961242094755309877519609104956773903488562168790406929068274420315344348580359212866040169174273447227116488678634299702043862756161179425782648971967273858698398956613685787078872398285758078077595007155499454373893258440560100951137118686218062835203765068514955361759091170632893895931070793814895900498309865257633103406563554934894535351222599131935504305433892011146994229856341840081493632087405897522519099637906277962260583351127121835630554559474310362013956988267092312011614206477052597052761434993706214612481003523442253028624877743796498978917190671332636150167615925905542400578436069595001448922282859113383067524198330140834066465220604628423808700676925090208306047654875584644378068185676633075769912237266464814803119554555082190311220358767032970812326675629660816499223678794145112187316419424702720340906652047537271005559102333053187239886300132288976419108511227731895565757226511541793960114638414999271356647805121275928367814406107666194085701979125262500457527681725573051349655497598878744346549505782508813747499712194894109934643484969654989548039490741686631746301241114764935071562171216864239676325290399788569471915265694666330767672607932511754731271777193402448080743435980102048785298977455721602249339344981247530245761342907933734413794777645551061181223474479137768534199882009958657583651136935381870169132700230430080629823589439816014070398863086440287018144404984811568670589341419510065874561409720507787747737787630316866548741037115635901378930142501590328493643341186453522672420953300338632052296382003169443979830029558235746630214886136420242929539347972529249160188981497117964882056622388689463720294998770827068320287858663293834463542685964324034995380806471814088339626744386247077029392085605000654690855355348492937549168805768085432503828702887439300345619050789142938838872227137881509281658450224640735450474889652279002528235869963122743382346686375918461982329297364661251944746898323990635934658583465646052673886979052850640211372199276202886790702406950348868425063530211113377979432651370515400669022919876783165919775127233429679699676984486210005909982303304883443925245010259187023157309286594625090094129518470049460576278809368651275963074203787546658645442891799679488664532163148708042471008113731351279904867630093364060318841282940739029456720808515670204377304263988592330032004440082025742764847385063694822297147863407063706862862956009772627884057972515055110865911509675053324139450143957990737261510211846622434159420960056913655270884977152811088026920496919281428587966080651757684584372677130551846116719217082937041735399078671975421473519238267613267679872116531639669397759138784870038088767991219685540936350515367294571083643646087185928778210338566987278908004611499087273049517095472675974410268582446877440095012684963309426409354831946496548798925039170008923877304866963499442345053971660880463667649361228277466781026586027022179814076043838249350331906751684768989016475818231343337574400576290211917173883529451814755951478638040195610105493963333188035216490555871139251092276270897380377228516860558618026255694018241314597542632940280094981295093644528855666914307568016054316966758140814238511780004816599245646338575229931238138051349846491044237927135072463954900760542074503002548096247943439600401639033766622862792765219675618559631607544392463956394500358486723728268442613511767458675186722667089932391963350743870953167890743469036223846091571383389115513430432249527376811282797091698964568471825775166188644516670094835319580878210686450626688308547735675152026057916208732092398580215531473548378615762360141077877201974027150127893492729706903772452947713864235011848087906500260900416828528244430166372570133127099685595903864577123485331804545813166600427327243842607595793846857083816078181363098094837271608419168983679274680351233550341935343791546833310065802943043276353756082843692496983045142364543659843374724150489753765318157069642970580886003097398150056056859320318120840844205761815284750060509684205339296747684470364423073895927318449429129418907008139403672581217319553332338727845866910982485525383436686014085560646389275291906307574677086681442481736697101578229516586657675231510537131626005224024277869795224788009402342244577133320371554453816653396541104809962920754863161106485206395281123222691279260713120288504268523350176848908240534611991726878863778950715307872091438621911428234460713102584197048364889778214907599548503387052278617154322975576813831079263658229515877358528796351648398116989301232985563624494462015171733169691819311981008626271836496312192073367940710451912519619746851629081398046167329365613275428936929352850448123118474511701932945198713818503960670981201389624233420329788333589867661745165133143409100274873358948385365217995728666852766730565208149074994320750815415605476142679733311582288134892567961761140298502300427822536849666302402023463853496112407495585442517813451523954933655262495953111010983635888296532374229934420360004675066128813566643650711797039608988979373474273909636333776954338241686046625638593831854803436785175332784573041905779150759574020792438185551729123932005497396986847650157283430384616606954167177421448630416864975154353473501211908173927818207504558469406138298457709912453071176500556909788428055755504754581466307830626741092837961509447036436921339552895831666593372950300839788236944664476890748688179224294974951384583270728193430906023301569256392535179174784316190944564335893972239715758510019621351280360354182328913581538985844231621396830259894425185281290305285337303290158508066994451379578913449042105400174269927875317113675617513137794873685538064612266845750578943833776061358870250374517032961665454880510055310920601874008080300263937685200630484621196570831440042198780451956468583805615187186321949834880263260092238044851736959340909564661262691075731544369491638791546323403839431213477545692748539696407850807993230641687144186691919511797148818816242888999494195707076412386580375676736902875235040508275033487256573716537842569337786174533969558011888893574433712706864737046278019942811196692604945547342831598650162666274290800082270532023120052321397661760519051791523686302334659779099549593214111187595326071491363197047091145263093681317340657713073146989615936279215976113276720046718659353009462026568323921292540635403184769274932118775797668520662053234295951346781423973514376827287884783750933658724460488218377261420857305257933023558919681128646188768087012997922982512747988117257620842507117684467814505278185943650251242499967843319735188967663815115940803992020499636124321185231336944839846542265848949118068301809957976624228379314716363528043738728169133492741232069183085687514400127994580429357668666470440084412863620528010963329782849382166202417705607845846200893366756000442571108228803118426744832285679042425224364384995795729972550871203933521026970814616666385459124955142762548933911668582818867952986168984509258040162899299664750215881568791628833675041457616588356587204403639700210581993920191027273350828510846156874963854293104256955679358073488370256266979959358461934824656765891261830335188471179618605517240708058499852421200299371567841249568920590970780180977108074989095121041838060988179208485354171969199339293708596142115055473362054038134976206414624032280325409126234943006184687165580990219123256698395914188319711508457539350309145581226197075313300199722645157041079428712541313416555048894275356765518769937312325750837516260111885637004382605024288791825288525744671019260223958646280955776007417523241245482788209125182498975605442151570998234023069816530699936076506151639611872962310057727420559539995104975237626735449204339110369449969222855659200216128087568084291867219700759037141882188964016584396593814269046962382468011214452910135162173424060209869082152905327252264865008590453413848295673668086688766161221615767944236686048677846476061175541328489532364993237127933800281305219107961685033090750880058535559115631164225410314818599566877788732189038331606974428528750963553870592425237177961747829687209809544774808752584724333342385974830104999372963319351572586314713532358168893155963063896257287408797816421991529199584254075497140784280416943610436465561750315171500181259597072427479992236840756508687430660654513982476999177335402751410144179524323618587596482145549637798753063164851802399986151758717114048332700561584813191132789529910441575608345621321941294376591999398721763753311139977139214185051299329735766749851166341428007971184213914708756376042948206210301332274144335325060850921402594790704975048557259515279843147240996107659167424845899078854069160231325639048497263146765131382603171059594911052731044689201621482213869509827995303971691194939416485170442563061731407787730029447962164872196419913855464615686740617274998777281467838555813035919086952692562861184900943421979206204112418329613583664648784164636353110937197384031361705223821431465497164914571223762685651108069614268459564529326272551556759749509801645029293836588822759219765621005840571661280894275996410749793351594255092899834543928286396101331754180284187623002018456475136907718506169069271857520958574181018351173048181223155134462402760726338756860735755508788156756043311456132583535142557500565056900098351255541286732848216737924859411195775423663194741835235201278736128622260182709187098955526567814168326913418664083219982519476037273265885269472960582528569769810491350653407592650019239228631945009854517106771417362499051196063576609540459596376860035417065605079971017943485787179904296317006359988715339852779209546859088897072880301762421178327713442626899993048865725676651338119396222402829045034523208492135660206847956364159892286485707098848211171000107973144511091921848190391201825116079899533246788571168160354747953880130944063033713418517253291065276593442147187406598764677461650604996542741792647227010222299932199370142525937875959517617586836403817642537868334369577731681540078171574840231316976530175037198867335766756320271325888150025677011292767646384436340734350407033426088475347276042519651282936366987605151617783763563759942784604952337093090940647231375618947866505997597900327902979163038638908869941661250995302554773178873208351435341704744999427292253546097724588607304608578143231786910912009520264712605228091879013977771575107464144866936706850247168995956393107049415422837074265414354638868616747026007741199052809365174304688226100450961133502712811894991530814622540027150870212249710866599036396867665527638996055309383494166312898235887382617268256491513815470246375485863073531210090251832597871441912492319706097244556751702485226394311047153522851701585385829959681811189650175020003688120179060942830671444809476053959897764907995745331335356770110095840226220295960445520401408241702315064333136264756070807961003974851278456399419299043800925119431671595744045813970550077655488298677257127287199098955118443472623726061265380625953805259946458334192400035493497085217263434389308129862386489856118969623362800338304945633475933183906190856681061619126613451816042087956766341231098273440657578843150515012880846580026672519432158532265360680868075193171342622430322600634202283912225754815048180316373015814689657818794615367526254227953189067555710792272740472532626071500686683935712657223268274412138168942725096116853274396792603882813470117996416890599247419027103677072580455059922445563014367643407486057204402979863568921010798013593886649386744690806441642353163112696318646680697414335455618933003588754192173522315345445910166830323568413401490226955488961174640871776044150459276031317911322065986031912138970748115777161076600452720077858118559062229068095603053456050310329091588238165642373897548837185195389917120529512140772296635385089619327559473279907304991229743179897148527559904697001087512787747302357491928400566499599455178614806967195588857375243837415424795700846703634737845209909689026456739668508108525247112732895734665938865111798199671789263409494137214422880458154154744229471903091013461142063647916445669299027156033321573880743168325065242037248832950492567803239222024659524304048740965643563550002274978676762428667251128588610550833249507855041004935647360434816397691086198149213404400248267194790959194040395849066881120842568497830942409250253287265036304290529825798200179047885358954337611230411845977050941736945977453960180373938079466764161421456966047206596813716166776281333753585676909029087026849177862312811463510923359900762132802289659155961224669158057770339812659669418181176107563594919811213266929317298791877465775175665863559919779970495549427971527273473716931445210553365601442680248084462970199193517311042108327633642859563310592478767872207951340046564491940420721218119352165076735929296663650215367673935453068244065077415922953975612108058188819872451465563739097574026003232627309555445855279285744657958827718025848034725870304638663962528466876456693526928552250614141144254137225906112591211073417844726622393332856158120336516726585713412828996472782180463503013173546858143295171221883329411733705820128910075395862742093211512660484012523126798906107670295518713030822175703164573854295315760484618141787964925402752184663607530377916042528749768759429205028911807688078200411187869185898666708101557974514518108822811188606642480570730667710004422122393556711020209861547984844232807949870959691894477668163814870126973767448841126755017462621518922355165031764546794012641172779669765739044855932006358868121210715950689183627761111674423964779432727084704932362545948840967337592677632795648014952519422695191766978970386035579802653548954424749250301920124310930471779339301654398997338685722519006908132710845049467595582021362649408808375240617477051345572153467505394577860144583779803261912594873266234531458202013320557624787725729173899360276351046280675445434936068037873350190640170336392401605053710811258532013364612562782586806084147853281733495946400176522056755085779038779051157867646789611028856935838032804473706604168455413991104926955606494071481542807550789605999442020027448561919598098228134701741846142379075998535787161272511726588788425863438469291202391618646411335863860524667930360082275429806895657795843595805885729012010864676757841382771833901414747543387772016927312649665177670336349990993866462766007909464733285944462734657378707021034285018746879121238564192462103780724546019176221656332258519494603408959299007301210877690894059372394321637492011555504396851075663616081949854899696110417954766638001196876318343328250922903693683113476546924898081630062549839151028740421783893286616611103065089635465500702889772533499160059910655185196624608451706399883726620509536967905121586816775961410427982204058793689698530143196228658059806824140773462262781822861462673213200217669819095414107024784449091943362951548712399380638618104911911615183733936682989954328205698394152141563496282619277076203451825355338270251854231012106370807536488349057997807242207979995581636247505083750010440749207652625298832332550211000103668587316575269735478641102729187710403601945974213508698857716361883988268948029641168277689639650873999751114749533122207410125721940210139488526289430100669608072481752446673352790932792813114511188037725375225797805437454467040661975410019951998507404717031390181865360079746627220074744879382786529890521220678331001286059890806260438816027552891728369778932270406989157460664498161309272949409668788869629908391787143666856861400220898406489816969803200665040655306280600485369676483515658679332683490423343069990493920248643027156756759974448792320466030660111646056667512417219547778742395055144499178041779757792980742258550559038750086242319989755919266680197308131007930283095935367526004261481005796831731598878181191895533919844190157030326469177030095877800873819374441029528359358437543613113372107300857691874624897909330525105043755055072898665788739854903947720391909884435438151722675056758751599617104953414009363042531085757951889048748904088488022039105146478810322503456777305706640084765761424649692632339500240616632456098547153897624113161565871551881274274494391922881709450402558447839717865970088802713325476977923359368380237574732445909309158837256527524030061603047158906103968899996281032947622281789985298211813738939139680003411112666516841071095072884483953867923531281774216638563006106813910746455345116927364741693872930456477612375854245486192159358847997430998164205543041747637160192546007137601988463019622069939413313587135592074186392693691332946037377780628892475535504775938417788488903860733025018698895717889613472011081910188056631777046390558610242958655925446519597876591060538577618035391850545192452545201800120483469339023528764592667252106555135414921280348093732728790592203384942654423975931343426466792832007028413722678649405731840982450383251261883217919533415454335237256646305696766089788455172710925861875214040777938099469245103005422829824567172311688344761052035504064795625054177974011626655988523598190597453899423151795430969363454961416199891791712070670494335536225180451327326677105985864238233584641454947614221047763682826091173522280433945299888146118113102977543613940127331616493266868137836281045530110687040143884442373183319644084572199512572272484990536931727016723950068773343613909285231412394869500204079058543880473170395059703310968488316211107994428374666210642727662525263625492998179116424373233187135607393158052325610657544968855595455738549755239895223320636138324010667054947993897264784109706930386291216937916424120050423284980394495709317383882743296943778073322635875272051974163259899146334352582865744263317563349799844772402144260282195424141791214005068981839085637438542642742676135192446382708942085803792041924899041690176909106548106816385868454442791144215882671930759125710828552188152007486509373934313476924212257324179043295042714357473646919982647827129692788294596904975615894690215447438736031395167563273590920929026882045197461954191157384318317245476565061734731702361863348624628837197478460243909258462506408134347934035211904848815229432540412716027027795383829898839136679610474002095405665709567508322567765751928825203099266068390776312500683963689523730593337223997649366017773950516194440854967241218066595124768313574901867979766268619280150962138542925018397128808889171883378080494474581459941998349229019220670681090774049080265434143831018853420714842395795982707045870104051882152016515527113688248040648850443272584948030804358963884562721407732612371333680479555279386151298816665082869500283683473158524957030667725810485538887557176509161754545613799691836023270295131177838345757071193026755809253539464062351449072044815473817960286328578690519792170571013062423521773797374794262274436189326619286876942030835157325892945946963800689519250551600825732328230668374806755179965163366767690363488487008581480616526293816131286479635187893053414282733488241972819392777081723191417351168837640593243228474568104165151558055164972435690935471720216291916899786533452906035162870355859991230583106178192836609709657947387301379054528669112456778480369770425090152178889841576319256185308519628361283832907842139689821105986752993302775871647791810757217049627780092779249379004232762360282976987649472566475581470793514640070172203899442883598112819741189775285003505795965706089812203178606395548788692815005736329273348281131392874615019468374334310325165042213279187817028619677478047874040426720251637889046087013301567624282257847969546695864235970254446929880203692783176974352338977659874705517493666170760837583867159023237574835663130257053361470655641758758371791270030973749728243279962249811911846758067763434418114996460313509868633597033965369182005014225014813250621653235291637083259291221372938021198621143070266245213076720778497568681902106761867526850696687229401556799047564826138179157675754481935030021462530714877048754383235737084712135064195335155116130081195131046135305665853483955449481645956320279756666564431345915173037151140740300676712371839737986558812892919016493543149180547993238119006570165878179188103033833340808457313821102656441508570944315933841787060292937988438275578986815518092373802820575390539979569731244620922209533950757215583524670712498544552855799292385284223948735857803343692359332145515929237302855364433756848676723890263926559488173813679622212348772606753829112295814756331158026844520404216972670838610786687158024644951133583428501282597904340614913213425236004558333537970960753362394527069564687276138125630127833685495466376867862123211862544160784382951338056649962241107487519523522284625876837941159812859355782673689709509067851875482257028001574604445847880953376704858275205447334146426806631623134350531389717873121885088778375359721087640429356601343120206367963864006289007591100035505320175931426795536897880699005086594288626576303263122588396949155000843092901200730336638668492244542638607145889069174897472438260020678393403790501924817449170975748071107072565219834429097758873121962105810321640445363729693321796500816895164379137878927638493927795743336825379494254512101384522217606855647333199047066069806006316541792633977701627378791258678583343634239895330675805092482217036110849339668398396571313113667825855191965087360338614788572358294290268382862473877107756128379361590931163997649229920164417252632938611447356088661825615680876591335009256363496626823112958114084839561528673993868337820162657925056209732998112125673987256386308802979900265751274033301081029800074240844110191380788592126041845042466693472473235614879304912122392664868713476238999920547690777265250105734633834525480379484135445034475810855458257805845073119587353060758473349575416008239804971081373472800597864685198228380357506752892763581838066053640680222382472774071861892232789809910581201461427482539686961918898338621953994267750737022895810161035148323521278512827217187026031078889328703066533881700291409042130324211380252530410486176645769838421339449075638049799176923760053321457452624851419259072565542215862264370330576960367965500711192168025273717563302688237698484008213853272326620942223690932325251900116585269195856365410873791548044748976171528108913135684896795345113207622483881583520389235064288701868731417236012581316766073711398667169814549197861460493582544106781578907081965082067396446689772576861324273074241933498068883621549888845941315851235690086792348213785489474951056364689886769956363996435507077784675242805943585250491384844767190790793115623479843564322205785826404720136974438356075000165998218539303781654798602023011343968716135931384514239172271766339708712514850422156141230178947998545248196886294657370336141663299075518285551330102186590004344357119945980153266038331204499913357186003419351876282179063491405571987349528810084099918842734470115158488700919328000935220931756872263226016105452282894981312269341854021821258580492476281778027270645107066332739029227460382889794150391973768090735573661048723834724274458359234854988459791756582113475687514836277147635525089756653686895981267478042092949171000449747354090209675112308649218672214787163276757356355797056374246191640470397742125662279057075558510235758204237199638955097716036757292413912541210598282303560103013459424236828462421174461392377272092249813746306870553803195097889352407547577190008589061444445920299000097045186336310151046198192146145521099147268701815198684299476614404463734630742982165180110054598857944976810130448224014757248161969548684942625311319506843050365038666650790880031028225650245172522843103099763450958314757215709538252702892370772930692348071483696183377547410863228147766640731522170262665205012335700694703230408980221274469755895040182999307223430339394000758555667219188054486341040650488082078780382720185107255071513968974044456046800762779458085510826414180757215630432070292480979010743549343961615658155700169923966160048356271236820731284058994512471762257723970555595141361676433998314817257512283310735097886197418926212033438841645885407812040609870623028538030044176827702065668146884141188222532067054851722755046683026040228945062085202132868103434722194102941175006291464522739226284537062638670240082730243524559538807133187785550636420584263760721040871247729145362874790756459083513638797483751381847748384507200900563074449768453471647656005357926984857688048244698514763494805633455050348606008205599678544850383935485522965685820247887169096808466172445092917310153932560599883442080201547790968491420734358820148878982242040347738563031287688864126586863541739771440901975553831225599134501960627188404402678793656992147043082238220870629031071655160021650192561540530645809984254299310831227230213885224360087499876016320415840309662252177934594072369805734598251634231951671919755403563976893078008146371665739685886265571407527670017669244853533359712917241537038418603747751952806402163253645508181297099182477014994339825548070479127486994193814722290291490317776029442154692441969518857579168333534282489101969751412538228448378759846352297527727682438295371990248820322153727421360600926750596206242938019335541737623107889427359968746610466880849181634367357734048955435837447572587816730946151565994579107445729229371649970462329014953485234720284104758811978739391442627441324616858537254329194117123416535597920620313598967872029862681886269953109328338243226465070663463603860705840484891546070550996429223881976508026009168124128442048122768583612532486003275440834030509882195776446263223335663118659548848524108683968378139253665221653129047982071101959687862255732654953257609944290028346149072589821857146754183296739558749379343014199818036725632880666807940177828579698464864303835991242651304468985768811202872686062130354850643108142334525538999933276034170542752301857690916023796493357313293354401063107160331198355766816719162848347836166726591178940550158987944143383209159804547038019318330658281436009490021887228123042615173329547785792182565692376616807007095452320551016621695342784045185861357841787771979238875701484731801196066158597276910947294560992667465878339317396469738678364846376203818711445374564092087553878387399377770175522710408780050033882715836086934320041997130403537738129642201925611154768051356399317994516179253235299774347093642933402666385675486787686708551481123515732738121564846799815589643715049187718064608093858376892570579128663106456753830859223726919216260528750458417531057944265514755690651129341152892860701733102459359358367332241673621838321405325513360346676103604835797287065140858645115888111472535689798103342565962241811944396971010367743403706744941266525908500778171607444560033325906473817815886753409959763879220866268749201679435961684316552302506508053526747898584525577060635429459039658966404782053792348077217675019463561857419507500551867740955783312835832556617519640599738845332130041017064985533055088807479737181591489472290235702854994339178962081627517867955135320511894181488102187087175307896905426648141746974522001907528759006154353954774960808592837154555088680679847613345728768167216962057494869406751763763919341614950310274829293777049077271530863305381071421212316103804176998822406316125233027418410894063661626632112559757925791283400289589325977708357450461900171616549843513937368131347665256108420736575941812528271915899450654614996171179738561743212392489818025767796169094813869406127358612254394258148297116829176416153681097613865617920751194947653144639262619002879987725454536656909018991658853355723682734468692334281082066220675811138251133951016390990235939750639039028355026114828905328243015998596351396449404849388109045480351574078912665698449845504070140209853495140681946013153366100370312417601030497639186416427530956445741251784281749163609593720240721811417352126473693308883721543268575055654271439270573955988625278980989075801021660348660577581553626073201261339572119439670836260203238192076779184240251440885478803738844201456464728468086280759612186198013883157198068259027754696929638919106220009186221625918052503736848016083690690148750300570464524037784883709089371593461047274203776341490582974942656402369643699853725158743766736486795704020212474995647345570035963725450045497877598560798168702218075706442167438957407996332085066868874669506555342784432004816359702499416698922207334999217370744184745566387400430317848221669068945015210158090910565524322015799443488296714252763925860692526902342574417432686236641861449767336368490097874639323515068207594036699708029697522383309124249470277749389062146925708438502249676637121854935817133251194826416752394959542832729971498876995703479674071202940100479144940578852953963524248882755821270805655549798178909107098946351992615754918218366033082275604967942515909931018994273124281806858784802879382822950060770128094476111989914588017973650898221460603614607389469921850804136099953800272254722726320315775524026421217760631304296027312692633612535610479229102498474177786567797441666064753837091248700765824021699195982264635303902958036772627960400537430908911536034911703440367449526643099962474129649212472695426524093875526363909772439203312502763680192710617827343387110117789596912774055883610774208535286465895007332215229477903391491404240087374560955289982973849167822492775516859284873413586389593077879118652354185592647607893759444750226879815739475411173141184704689353963221335656402002870089413040568933781013091920261188207501692752538447699024212420527397700585851996193912817533047562878034265915542882845996739008670749008166540751686255195450878801121366942603320564042056227298967359634906847683990330922282014733641615159341566784991780738374440142266887924517014440555380323591032735979076604069664483351430870747582329063719242907029306482505734547612945362734284722158855771971409895632674971137640939218212531456543941859024556339109940975924306510673711236025282315769303830454804417847935317177617782136935874446968060239975522234266132002325775193073506393664978686057412935291522234632901656126725568881167337387556714709174585541136778153179720895746750021027071776164992919672806833937881726139298079213574232448664743419339236708929836183401385490974293868652074789343753091210823733688508952748713275139456215409266515407098897684251366575499137231779618175736278408808146608891655097032861651211215247775484246533999656962160315454788359519747347071907129718114547788987132378370660698163329809741064005342210075490336941355666589982175450705024473120972287685171505367741598343883744695978499524082489632978486963385948325512757529394575313657812831680447213273231682722520062414789636049803529328610671649984674458808101555225407571110778648832834415693508963812581536495593284282252915567168675973887792135923018644789191852718941844206194560300829883462048139267883681472381282632011280724884045297210359606561028868627509961558240878254294500065224108762738995896914851474907449498486322971599671758300545912462222597192811404730347039771621727470750266662009177762241586117112215238038840740405729373163858409473869978078120996483262227403186500135775370385602972075239176558012308885792356214285013168488519815958290441101527620796928209256986048959710916298399792464131625780354835948711767722930931777029067426191664850293927457231834819439677032892415190212733646848848521603356612783023698989053823102952521734266604599024916266055687786953993739724469461933979414041367574971644916417471846584738673719756540853883916984649768818296330280508384453969924607332310604024318280265570052657287859284113146858192521218822584944281753982493485894780929777296706437415765250566579872473391103200784970519384966805606828674488803185494529176010386244239872186252404742471974105504043989357283755509348501270276762521508723164949485513897356976782282602659215499563634972576213940245989286125877448818860959243124924015529056694046702186002926699844340186592400617444276502845439713819728015899057304055585488541454989456580583146265031495896654727930840916740185290350852165863428563474255120436619951730086619090068101805949590272375793403100838975233304727754884821136755683932366043129458134995676767964609018552158040121521302095997998558509657544884756426340024465972347042723038937553272673455684509558767140589682152029522838430519493939998403808948920604466094903900511685793174258521359986983649751452143712844195143559143379175591671500655075061790892330926823524488417497013835053473702237511381106520004973248048450087517830085189037789408441618490696404314578887219995641350022164422979629724421758575123205384883751535405043402624136620627545186593860169165913652055231927993982336876944028105942974337006310637933706774746037355271286640417806059836390866736041218099910174931621740518620639933066691210427951881817218187564045137721869325705073125760673875893093377462035767136393753544084583705820638724813681798086960542196139444060913384320612381233691344399399190592236957562367980551143636184188593957213970882223451929897319354237804315676052489084925141038695820919564264298672093269966996954407967837278136218777806357313565681174495444541709653186491668485045326017402406207482574423897108985866486804312566472914550275125217924091722154340893440758978261576695983160253742500267103323299049744363894022200560911732289431806923713795057710741962865989099385027964997031507834147769937729580953495821498269265024079871209035324075195928370807322014100992446946369353490610557972277598969470907908985577071073617124663734824116826482343542961742630041606170131285523876988841872177238620115669560056245668962288304654475149939093407040252445573139334435043213211411905926335497950788693838969090549166120774037572843993271820153511216670278502870987848814354192985579429401746383371335462324066409757192192836916003168166688031655189244733140317934768958685606568234920282625806080907424235038503050683531157026780833195297977256674088338229291337417918536668574480411949084545251229169215063967832484394106449092844509576197425451256075181173536553047068952774323619037283417043387805779391447549390806412322841132057001747839149950968139895880440093276205575668239615496293402396596539988641942746694370354345549676313581837541061639065158958936277394607548871907966801925133583002231493165414126151430712875500909830941969040208531604623542025394680434807713252078624006233940386190702086348815957792613509242295595605146345978381105653669272753686896905469428318557258396932111446052352833450313537512839217491884854660284647374336319148474811269676377443480085496949474825058780186767490145082382016104100561357163436294670907527969684245456221979776986278250016110911562379860232253333021754126941849530666733803250016080932844334400844147854357557936352136652621931853109767296755134170627638928255413087082245038465257178493543206731321261489868768105930195638292351238653262283749825421463983698312102561668113244897142281426338682789614783546779296142109761918299402268946208562058037392504593352685094737811256143807041284648214690335773553324858821249409605920492975374120995276845669149368913753658517383435752635874007446196344120628437395153411388917803184817593558344251986066201399042017234424136511571459833018818501006684940578908777426830430039198873758431882807171892766520601881715522089556909833513446811401742476988781321115195095926960661524949813404880507163007397120732295683835352625861577097336956435813548590159280135877269379937365794191721626282243322236476519477865545900005857872928091481256304910290323496042364744796557620811603713051786687913540829174177157268953365282340791820742980158636304094601881608452377480159930360040449441762427236700378120274136752709837439031065124801635071482996480791541438046593860412053533540225138358777731620492894778985654505676115901821188682802375079628998949931772664787472922377990332570888761761746147565709807462774417397995202456959768558075987568241637009794155333154258793044365100269545574936189572636586245183362240095310955664195307599270656560072594712081341192119533196501185318793152359511989240498093936268852596208230267827178683210568870220510665114426179263361173014854965245055970415630056105366926900349392236567468654281672619086687083175207052675255331284332293204783600360603778901702750072572133774143845071251497292011225739839119753851061333897492892369234924914021227647784811972275499842691629828816191945277975613041600969274394737408030884047112718047933386914252970975951256364491342667260931988634191884971570392045192576062558397107202644728113657502252607733867567512621130194562250074680674584796797154620030501131435395786358169245422850332878523027999343063185942630136631472740983548738502037637438762865819698332624874319611023003462087775076317171953444752753784228916689236121342615653017752537697674034507743085584704400557161163809506180008287016179871562048306056688619796494315865518081534329084962423299108958924127782578288784850106076753300681736053822930930329912598365081034888070430843524055236260588310274553361899187052377653502767836525844561298040444566012220689888942942504745976573866034797580822427929766615453264918598215686853629254217958902325165796089133930379480868611157649618988310678939436042300132902462691172886452300500919162768631320593510071054510952924333377514659550017181171622952336835692844506793348801327942400959460194187461547182354681878523148989433355638287285036003860700748994405893947668710243953136600556619283960439058024708500386367287782504498447271112205043833177465500424912710014835071249275831430271440780175085824290758476209245570451798114545496705533312119044641597978151521327523870688225908816650452280273394247862828493407069711229619704203088393548732641500909629961651630567075105846184650120780297110438764660753704178495079455895941069449546184790117214089836782285982433373392966360760248199572939594321659908613178867834423398320652814013768845418707277639019197058919189887333108469126975536458594754853709994362765721542558706275784601195671215591334414337060068261324934857802448197418150633900242706699671004073341378771735161762136222132642275587163638859322895689365359945446597177673232108806779986036085826852794088748427006091592761120540129433197510305907939442137282449376642844097143874605937645272793670327955278186373092769113765263225265474402369674450779336708325633884711816428036060583643616716438708110537823666572768017018742978229042915084312669177160396136346399244179417492124541598425496613151581949119022708096450491610467863879582913112650156122019868216184009822132993342652564404016156036365808447614290790398488088703645951042998668777385080164763898693720911212695077911664044937784014223383510783585160177231732725892698830251885911649925939968797594650799589577531701637957741784787698055859215622381397079896548527471762168882383531195266961228782641552831155012585769358296217301024606447621869145728408265030500527737496865486545808038150527739275188359639207423911677658341582030975472596620139914270967142413424689804545174754952097767823024509310206106349624971262143586527641496179651895591125475510617715903425080727802397928893258845062662550219323166155078701183333232116583254245563839900308704593176418433364035838347160834893275992361385147320235563546017691882180734194996843885754690970135798482871473760481323374499701034733797966070890539260232306427449371911876620942380740575479828724595144913826331034061692885552492592648196769675283209164554071837955794342076451173135095146340786653250207468468605809557238166987566383653384503691964821618189899699499032868023631042933307405511476863247712524895926786096563703101970949247624529219660912343868031177511919103176163827809181308980784119985465865860743829944336635856235137226781315908838307025300860395401318971737811797054968898152799263809423674165677427125581056133894789240231923084991224246817719442335233094497428270910381110251443037901103918743001530552851482357500649484736152090154425361993716465077172147045066566147636201853567571043084182868506048110715587408248259158916309910718042132403055896547343435627386500001043268072630409187268382903658207547236357100946119457530871006238442807323595634086344269021899029625056032835917836171803734133617834909399317734789012461568414024595728761501822460402415926921936129956750476781138975503032825787073437877499994305963488820727867351822134187105681389566703735113517814187541518486672255423152678139194030557410747191806705329752064274062483744550372045318078914667750381756321915681423193828019761756238366963888163217719746136379722661680564880525213268866678262361572519198900497391190689517908562169746833782379291207088243098126879727962573130054037248178810419997937474703732992621284933785085059779850252207230491073919415903855739598682487827452356377793035291449062636591821958306256298471402478506331097553985884283345516764001783790619814018113817636830369632597241596460126599164179274920898240527676186600414335555945404846315386934410311846315448293026231254885295032414847728763979586557018522418382561272698970364448948571597955209499217928869440156648736225405073995213618306732305560346124611617289700698723274792987207201517891280714815014379571466012257981028868014122771906001298435156469618373390501546279881283529080607290541521866939000853478277661594118584180421915509840307381604657658420200752410127607240695575367838685501622491699314889579475715522714219046995815675132066994835881230687870976451921472908272887274805243685740302097785572419854083106206363056693027640582499720247369142372999714351369330431881864184023147758964758238946847424704248423962751014490414205818617097782860196902541342417380689730085966878818116583766854371752911745762848924518197476957823274844149231137911055620553076969295216204591353248726574368837275527609385438776184498166781066615515557087151642566529907954156278551134787486468239887921187939857803506081156119642537942520586800572339429106790521773895669103480205382124573194709087114698627763848575959280669463669746688495949159380695696004965341753790124349826908541273360170058659944203007247856527086856951309036427312214415622496439076286670140662390034829393111302137131615247107164605905262279244178047436660914988330746630719939597773532590666558372215135578783189375945494767103394473699555982847576341068642951304714618373957037658442876844830580403153975301075704689575904974567520706932250519793602647219987286837045959363919500936099011585927981965354443795005360675102396912056748136299093454729665511715683964952005538880964607125027756388117306768413345890687998237555767039584204171973569817769140692499651884855633230859676838564204958781673166333194863775600576209384185382679151409851744677727277280090288428666551569882729222299122310541560612546281022750915368512912651739706402339754344660011436786047713046979927808124073113293058268218304439519777466156261618866751934021019349236768231755860929811317668426916525632975734888926693380344968985358046204087833499648182862967915653571919288319066998119893982794465961618811542341824397822696319991481219379724098615504092459881896638290777798690251227106979485457589203357436019488947714344965877534333608580158321580340719650417794287867831646686833705768917724595601077004436489122337757982744690210171330602486959191320632750509990496716595893243094558522608566554334486862622306610844373833089661250510159304996081696006198047543383312898125311401347612696435522799233402027326298187833027144822283993030810885008842270941716856396422855577547974294053072776367022797613215469633454622671618466728466299557081070764462192940832931872745716518826527506259716803324094657134240823419735950623765254745705752784703049829070078030596745691280173335594812683535408386165731252313821636261652549802144392728828393805940092483016269195815479582074962878916768833757342697673081679834684886100443848810105180606645835584091419153600283661675742402935703427501861116440025765420053498012749335334948208408116643835102190810729095806746917933490314921257304808863680880361521338397782463637096372297720718966619714231357760599790033647562772103878037829126960489498882088641882431291799660076993439256685101903229118756073377936801756539439385162320582249418823711254983579718582970876699802038037323355797088386269609454655427974239134475262503603984384385413885038583527002219513700926592717307036145458676384169733207910242857084972920358875035836986495516169430053435474908881175692932873193523714427424748390399113728741989771108530087182883837260955967957738453027168241708212565563172156513874918029559183883379374385488661335256561780412120328946723880105712363351447078737038924078619156133115565973297454984787716981910160911358029338100654304357394096842217991286168316999249166672365928231150261686914979385559804526919844490206938840339677520579800626311391902931501356957061905209492226060742938940480589007360555352450932882719760981684734642449460864870692203931858816424311126333008060079528579298937807549346934389916852683638832280898011774725351707538630580369261458865322010013522024819459034553523166957943390951915625994562243486441857833543335975555975583287236737725627357840696147425699224073056848175762010457243742338340218470991170149868390748259987506933136590142141699154776910019630999587880396167947737327629754415887807016737263912939698514529407652198957631485538910892158647073801551852838296456847942576341363771919264074647187252535845221272365761579289902483050302469749080814433674386115980920165501889349202371914900791074258586500600259439066862471093107016963706229928800292917154603395027592823005676869635800594751636556623522737243691976442583137293617797167701257953189886143459109325890554238838212866497882596978912970870128565473088669409332387448746150037353263664888928910337057683439047229656175961749980866830835656610104940446131389245927755776761016101450948106375587523601524977954501094928594591433778695992709439139806660156960282419923380765384394606149732199578216356993647979687240897129295187747472554225386422530744438728719116900100505512530664171534029102291841356296232544268969714131138516501991238558515177516481028872752351664635924434806042002770727241542745526435096711540657239989537524654059290586973842825438261466917895092112140342408276266960852137697553028289156473104063289765706722842344991538701076160744161169528865667907258025449785379249235867957929201070885542173965766035232705601732598830255764920191148585664003447299752131717639415083048514923502981047510181896133566231931007504911383901404154806750493736538087538367390745829439465237923030480961644646529312933685305933607506282555362197670818476224039238913717112181472837633147291968828502262269855614075952153740304794112389043558860703132426600089224376715110842219646557555409819856021574607339177380799858758720738054709057896094888200340497447997833380146952980724413659043581532634930338765369003870149493536181414200124510864796544613309063791815030647519983553904965496808569379926382295139395674973817063518332892704298864927932826352711536294239367280332503386557679192201954161252653519603793134804885176306518149280283171554074859409481022276452784215185109832926781310848491704102666513664116889888649179516204040697955687622507345890167077180166802572172522904790901552766509716702904367372911284412455159837448533631049202464561836532009680990142457879913013302226029011759157210099427669472353627177600427640121747613028956255440738137936526801333500524984422010495733731577663487558849958546049192096931025318944768235656018216548571046920646678978265352747799212355763739876229440192874734004482628984973107646070724318835171078757346498734797721286729122484794045770361236763329892583368602635386769811000729077490760885618781994705685328272736529092177898061444069459080796521188041112502954962179693195880732923637523692351391767091403307439908923984699176760293602873271550272801493209477802625944352243930780336111819441438724873522721478991048059938558518862639079171278493997532457456780083748483858745886423084401055999158757366283459791356708122109073019673373439182245519376769735496841714666488941943386503006430385268939311882393082837940370240298725022299152146880199712456634974375417671991240295536992781707398067091266351269289212772957390956193993315188967280408325169083955561488676199317302611270247843418704587836066831475684427513950088960538176829251399292434145022161121046266482116113589716801548915604098826581761437660638905277991487593918107144868268369833268993159301970252786276361074216776862245928576787889598239785632828026958499159244633642670253544779702482335783728954913656305318586076026979463154295589677077375402259623815314901477543048299352620372038808259448387510394877489106675012865756563428000187681458009755178625289734384818541869372646029017037273961549570632499666193003978068062980063664049851998579093794132035447011468967412806804647365268292433285209825199350245799478624067287901925243443594587928544365420217597005545446533464589798906381284024383350892085974940884370783143096530319121334121056078224964472577505241467229470424984705401181868746658109207130060746709985464835936869801067454108948250626900724448463629092504154377768191751618565716654462657711285883019937407291894548017281958095333525846032189658142821104740534293773471837678711009894285601867968320200050666510026913250138386442824336733440940829841692426265755289211491003767735526377906645545604208100598492539477448820276777337761207710602814752842345833089608867148979133042334565974442101869183355692909377562950042653715610639821221610828357664895816419030741524621077538867669627762561258425149817630640122459194820703083423963039001338617520928370452924877402110332575285754873716270631253046310095075899557168444544574990454335004830422305361570367159178709187086563776509486428570435036126137535531820797561246021834735157536308353356427714809792958169678545061300930231443062627184231063004639132850833944549472086748652275444694582850045103691806212572865652002747098499471412022514047982997865072933498844203022598577163755484797507639412780838713380929392644893555082410507780729013737664927922074402558295859499300229427939110893072890968630446591106879724468174784669735765874086779003327983227335372617642496397842493904878138154764555648326959363104144834325955262311108364673102054535030028525102312304776187168037696196112423593866033542933870386837688930710157649468132047191386740395665898435745471135108825606586691085450112785485402021332244150919642385402793050301128639931077169009357861901340721493185105856380418051749791680129231651417967554196601785974727475130035198187407092953914438940900175132567832064788025951804228820397411504856749245797005820893159983832667324847206112159879915698978227093263550806560106577098662343917627074016551823837064350426461122192599472137818214834891300338473675963946415697447249573702957175177774984849970018383847858328808743668610934713783396926824625895943594550067560522636282643915134798015853794981713035096612423354534742251181270280858268215262118373685775103865464386303938334875666387727043535771964879213707649737209902111599621968798660089844273501247607547581598382403072590022347203604411215505321851537140777107300654725784801204209181049398821416404415612925519450486382949139340256313951603448255472135237449015600918493678783977836950267333941636445633336803868533546197368268916982625913319601657634769747144579578469230222752948826775197967314517862860918566452596401172473812626604957543311985423369739407108046796567198245381626894058569087320996808664705918083446975234921344044217425110656108708059573813867647713178634661082796623235216904188846779915900994431655579068720673499204879097787288127165120991109837389869313332514704759301209770051901477231249114050007589008847511215108359488823163965515958779300767153825021999248481247017022452728729095217277344663845313081002005137918534940674589983368062074599929354852114893008067572886474538179468465324020629256097719908284506980827919242897037300619760074922174495734125565294094792659798967161056968911217466290176899303150917846443556708348602448733875424639171043997436702922281065187176668766953775001749173341196568263009044930223561247584267615526799613678687923751320719691369995589613462683354380150729865293806381033087980895715306081979678637485378872229858028254496693337050720916070059119941326814107515031673110427097048819097043482303225567728412124906281587396136277452216538523699297703431903311887746335321576298554880143485579448643790239434900916667399243506791952399055734038561187771352149219818300270867940690149793309511859749337420733371261595381040765322903730055568944473110746485066571878659727845852705951157461993048281690242389683307730276095245102430669381339003594117140570742138469064772766265442314580380067745465517011847510058904793325623602038576599806418206842864546256236621363441871784847795689127130689846261228136553446540713473632729289017033356868584615159161146419391987933596788344908939895929285671139770037246227915335230381912165702601165606726565128092674364849903993149757057881708198579988349225128571379813607526281719892111323912712517288480895693537129365995863107064430492921054826613599693564978665160068164243797600612393732427480978439802362689848181116654351125202143875376670899434621414211966532238467191234700445510417793408365081766397054208778767938933683615812718718315153713201120061384475262555774498471884049627292329877560871042711532715505865393039848326572729298443588071893907580298035630293622126758186604755653693129211370710405368674438821348552344107963548165115581035708774398590288372924706696953646198725646458006467520710867115241188377204877584460996976549363736037442368532544229333237958523050459521111164052632385962354489094704446125435402222007383061337539755930224377336011470720948124728046909001873174135702898945454281219039915431317016293140161705775556811914139658643975037973120851567007941491014995360786171005291198175686094033620460792132777271035727665891465015697900595113697556269293593935860194589464364846828894563851512960949327520292125012938484436164181895066307845560240180208813562414039853252456672012757168170564016205975875592671774944218509217486570150280125094241788769711585462909273045376147335383063249243907239691610868372444393057422430395921088308051944589228986087112878491231628562428324190377682804775884465277034921852558630603025094680003009078135912745078738689377514957388921160901931163877079912152121299870831745736997258226941536693998754643873987474935488517087684756247733687422567853191521010647035270099099725721535100764724531300917085504203598640889709049724187945002275316404487858069394328909955616190816080462851603945155795195483447717727274239745493037715554990953229011564990917891150814953276009549397448586427461696046017749583972384719146889588627315038626198190372713699098154820448250007884661866962661908995901982329592719204217047859754953097661947825775998812551328427759467676884839441314195418076960890699715719228538109538123787794671908914297033557676652536302584303013499382705608527269085590053849625941710101645174130666837334589738956524109511505233901440659929427313718518940627245313711626515245753802169389473903067861820958857899940471816302032458869477936663088138512860768123079740610209033073194619721011641889447168583441398109621059275483504234546217527498416061072349503499494374054152652563369568545138730990468627756656293150924393088554759452953356068259170451073222412880183965832866373064979900656781769854418214516495248940811314168066023541939073784950250681281043140795194744209316283382589291305971508617508093825928488186731556819005324665260281050300932201603886968234356029172203453161701160293615542713241611189761252611218755021049658019634801546101042997749977740404831123403139129164111413364846191254763277920608512641725753845775283549650520932856696504558616587810195794608382023147468532041778631422830630957219641718916047922925979097158607635723879755440134670908153204653463977171408966376913312442179559842026477266626177925102616214366384910884827193363527329823114571336041293576536082584222945235497269795255253282205063007999550045525730277719437759974532425937363764101900634567192013815345868134642873890392699888732568046275956221392989443562695929184375956772677354952177373941536535726189964162286517547756550925586200395101443658961079288361682355433835295707912825415786191305763103363999190341813098030408698399643840460119042308015919600697669075118539750080777402459099887956343647722721290542324533761635913225343168853647671342782119885583000693390865148299574043335787685119088033548443858294609924136955024354701555596792524418708483666009294514520419782169998245776050506103555694989697109666685788258776155751261322599549756456736448962544148097503699698537838259328490972626193564694927194892215473779895409633696256592990018222353489226258002088324397426807484368037976328989873318615354822828535572405449639487966506013442314142476644302056403038869655950203871155106453666152213878745306425780093305246862395595640106134622678820030267604027297901447487021880913156946412483306926362421769059654428391608832245877596674368690053637559411917468292108292934208462765934371892054378380380354729373723098826489488072864805934924326326964296657183051842591185037089067259921535002233652940574671598655561144418500761471542629898763590763918373154649978314815942924254461339030509037080888139415788610421690291480595836405027699349650709117101630936424892851029592628706123674759403546742298994082007187416209306525528147263993372929462194271230166281848180435525426320675127920685599720316581662436056998231399055734101225770067479023216386905734655583301495869405904576868338226671948149956692147935597943727058757701278295110299752909305594763064463716525559547103017137533644500775171227970683546002320343715077921726859398104312929786262024364240861054523293350852388872433014752009765813841648677109834668911669053919481401650193114267641270803002181539978296870183028279794339072179900358510930601140721226287207915626219792735600685789524601605719889622853988456064022260926868893898819319524183795324619647106945333942635293753552965249470029309062656247153246987294505144737592384852642598513198329142519695778058130257542433089759646448898664873329782335172843282038224281304498082557749701037718971822230502905186608146720332458844812183303585990302373985716657541287487718273975108246533892599516166493131946562941189332935283928722960406608379140523868242314551610113304026184012415632113186662190870955948865374298005274989407066784525311025809681890057435045537552216282048648346121221516043620970617932032202990578958502450658573928608485492444961532696267190361589818727025877551562799600280546710898396201557947942092723004120989671337374171131556444294217571101850890439512469123946535891753754106796228513285844417908028269829766764404214122624278361791209834987937419868510487273920830864136755236665621987776594194407508713354247263809407917101762903031018585184809773917541877817405916334989563745341474304670712389682157528812359097558712820814955113934157868404086728038137920354379369299702413538033046505992934127755556269743476500720189417902046972246436750957740781846812060637721580958555422536437560616385740051858720163600743979203612259432891744252793001906750687384828420526091244651912343072772038490827502967809605017603855759615766339743243699507538955303516079751773253652567115153055283038134018533167018474882802239035973285672758402753103911223478017964422963772067278095938625475230735784155823455080628051278758376677778007709094602865380164902056255855936979504974968761840873232801983501169703703570301697483559842170132243085585390959263264303032886471290151138942437340382409416753619156368859839398321838327843084340084347268154144503649947643434129655761430377581088366380511517545329686510826902141863359416762192549719661071900602959725017617987073118961659644397127140204493230294032160030809173873179996474436950296131337408456266350673976922807822103124989021468049134292930721571109557662318884300391678033543758107589201017035186024413671583924901472484126241308484340993207239653221454628425698599881911899845810782980505786180499872191133353396606237362456689641963594901580539093429462788223151573966713589891515366398628180658476988872734971667639680410347932594283939073924918419937387827882248924760314834559914979811740719628501232869319600315508786853222456126117044354298925444234190301505735634998266281588761959395623309367154692166547232521316014421793940414768330648458873474408861431274252340719167851234298492070379400440430509643204232933273916681971550121830124591205231604606650125617949579442124863507519952100131177472826354497881902871802743554254112173929292808541937706794671388458556972359917173275553312312567252749437547168563511126706885979303080847198836111441078033036461924061525848833203067673519323241245457871662745786788595618862640855078163090137404690495644171932926447400776695055741539694232278856739433953291622761507728494390426721417480814716961929232393494959945017136831162886823210403752661123650281712033759823601555494423495480641090597534291581295314345162252206890380378763537067725355917837768121595992764834926895730410348913053645481654993152739459221151617286841548987606521910584009362825238553282902851727883153792535819618605143403382510453323050145586537112406284346392013784121126679379661018489265673871451378471640030842491883339993878196587704629977821096809917158248049260739806672339714436052784162894651488558612551983185918835909328036520767924113738021890652554314605626283147764138282109962462802198788021188026286709476976687522547255049661019544642288775818642471230832348752091357551653435779383949942257695537265956659456178217851342891583892013443765670369506700353985347121674140826320068652816144213600744250227942134952060307755738123420489487850270527243321642527644534197910310416966233843493279678172857203313967051856207123442286353200222194412315554131383063375943327675781283350051085122838718890125854134521746859181977022765551564005834809701475946242822052555593419127550783141697221548981451699021406732229960116586397324352868406763245113612407656300114397031623120463606720981257714016665937166240999967344478690690189773756164296187974156690534614821947621367567710967472876443652408627887004489419014241737059426470179741316933771325361279316478125646309068271717208637739349802985954629440355295574532038078669034082869121252559618510302071336053268685539201460801306928805254810004160885101518422590116641711319000652537916307147305696249778715181902382665902018054419625232729636212230221114187894009775788916071936792133984304839883692970975866710789556311151698592779786462445698014452677898062886703030314243560632232318784240483298956810443815249966489157661351971815589228581820571073398891273985914809514277273471278483442968511254061517544217051458046619474161483612134629102376075173283102325274348876768032131020518529500063294875384218230390319007438391050484322161604888888563326931089501250433117965392633020268349671678577905315515473355189913193154348062219772788536580035675884285549284113596249140121358402706442990040222601648696528620716067545941358880614367701716736796851522086869158464568750336311373688128166498560647533062534164639763500364739044960718381262835210931008506021128644914049797596187436855319374297856605888443006495959946296198128970637230258306632504854721978987764930946413848878678143470032046456364250327773374280936786347189119975834476991127835615293378213864337941617651253254142312519754479898390719017522123650220197712106317286326788448336591345942039128222145778949012025628702785071624189790742857776245966140548346365274927979645935503684192230742112583832410574840236288107561932145102808332307436261842722048527558703574816132557535283715814669675883280663281705841626093713720361401583488538531967167351135519217098058042484487155898987143156118678723842672500524481632420414953749216659983911944665484892696846006919183924307869304381051567793708491757173033750490558418104136571392297732269889653446685749997217936688931459899720113480263080944633834656689657813305148955333278862856936153494151384572315077595479000292710506770980018354553319555566186260635415598177075625519321283048230272115996979806887496584937429481391185895132470105046081635962251261440236398824297509975816337032562391553400093746312313989697007810712130251600770062406544576930370372546045127563414468333896965726541186866492020005877587852653216994070587078191037573773193019350308149161908339521720470335153728694014718345066427525422796647688322521336582277520412290995530810366980553152950725901524308541021082541976561859862111976430185764951968806329329400478433429162531856002850380364200414319985354507919711612982821436035096356109466898741050602822290015976137474051702770964205361550274561023023969467976555859882961645872409969436413230680810178102323676837588090587507632726652741461719908003339330789911982295930643447458841059591082836601064823358984687602546901861738878939009328183271390260832010024940279063784122173870295578319106291986289849603291746228249503389551287749525483815740472846537816336685013730726856859833018126230614851114340196234796249422130943415914881393079714674647269424332804516377365016170012567158507061698761536200196619028688597013522547098319005783448519523607413661527418786077186555695969345576737865102320129384515658438072252210447086986012847793833929966733117660449986205177993334362225386932677873974318772809971940316056123474671832367968594184868269301155276397554496765029040750713709154308530913597119957519467375967858088657815737010154667731446763813282590490426925548897079807372499241249556286473386357631032731610483991000313247646899099118190047999021665029138603218515386154026163730213195618520570238630630676436390385597000457295786837350736593750582900720744804826208531922239312609262357139496634806006527859614331420634398906093873070668111175105161152614339102868760840575875741060201888008122133927764501370410974276570236479591609312036215872370376718895645799446159066222219567247586295197257348898986985837231745629043088874416165243889838284811272076669506600466496427480041536997779492218545542457955024354553362511629261902896682361518235819030995642111575581407869477458278232336240560631044816499529345667575941859178558234268056895530027630281795218767655194151643597362110092082284744914337246780982689689363654279762607670298203497742127570764385394536473201652975063871327643628497805205278405737203768137417320345887462566712659082958289162387988617892908299819402828229049817398730987957438703067718777635532106241856780716414250359917294189730805562529277504766074428015136261061502449773220545240678771705437729614594866687770440883941082619264285447103722327839246498266790383433993596077450520660512493141843967120630400269456908478187989297690421765979158561177374270147104840509967325370863843430688901044079641673922077083705409507107428095884329256419043423354569261588651666912653482338847349563841691988331678755514383397451144212301706634614827546723976998359954742427954425631726744973180225954678787132515205565338872917184981274173295013908428070374528957609812531600242538423761951213275833746252609848364194436987955591726771806823565898187332151594731270087635941964363421421060129502000086932900946695791977545102646137648589470089895788897929208653479330230706817410147344534621351828809538375897285945382382754527560482684788991733993979657558117718139185761410470978419740464260703701915035939149594819391847695255759177875300342876166175487318278184777339069669409319755489375907911485748022094843783566798142480678755880337003504871087729219688437712878175494732130232808927918562586843316415648174519818388545322626853608137160923582313550927983573810201008000708205415977400196074970276109062382995325443843365784710220411812488135535915332907934631130200529012862830436011645090520352118771938053395787133944777579172994252166141961100117866538855861792718642894510392106856153134127820796126243938289430892444281067151763708871270938861810284979386969400569068018608327920452217156641728562297378543921998245539281274188941094988558319656354349828125931651219187952822682210663741378969096677174705191843398437025152333393992418631725452791529577068345743205821760420332386235417887812945274038658755022302145606864168809700149729982627693875074534406734441705831671343667670992044571658875625343951438823677937781143173161182067028645362136125940386632924574944848162649037205570686893752983940839420153619724377790094296715358666308359231280748778326186351721907127361356464518194791935767208780301173643075373409671706329621397451052835087627943894852477101324334903576988945916833893209751566630666504886270871605728522745332110337140916727793988303500337261557424125305637225440540820636137633579106266028739772667519308600976282414842799768992347511666224349417676825821103073582989383612424542805699974120936069229285222084753578389451052934855935576006302135945506843024650023588763561000774176887130700304469768847459060198183770403863376289707232583298243917419291497754820330405112458306624752677239275036462536974394391071650400501449338716977328157533254396853165467615193856740241501226510731790341746720850430079421637365782779880902969202954738573002444253772301725188845805309824489283161700995761695502385542200769403290908018352372484108452449008741045519969135885849882485026330681814294312946907490272034901710686181861446590153203185325414404391873015071054680025857735554475602287956607695814546815750400211116297396092102097982988372686250757198531085015099355108444258302387533149459147719458614925243561564368569847454683847437920082329799765444253927221926664063956563576131712321053808746842776928450699130361339946027606125807550340122113330419145635699559032490529630086666560219161027416416025410264480352155396196692948437997079090939186281337817921705641065353616486961910443745903448835709604457189826625180616705925596019420164952161846554866986265682328643704635122279202222738991311630782860753991835085023245862863940030117723965972917432577137398029239102320750162051109619923401495590000279284677392394714322775944659948224153200447702669634890730110143894806900678269377891959781229697923200162268260356765464516448251897486112769511159580663207870847753751668354063039260866635529086277862666609420617258873066881276637464074490772817200718305838409719365176821839811003441418702386446837648424947194660098573561084684917546109811697238720677167796119396754050777715438530415620136875938722750003319406666202350673363322658701224665434729341555808909094102928503785049669296761246682613624506223862417563744338414228814032071887122662910274214353618114037227277342894048753510326630952010681250021456895534973712870820734942992831631520810385997816312601344545436314097883219974367331921058600589280043764130107745766583254912307505873225865267096128147907299375926510689249445296074843228981880929371528070425809081733125821315427605382800201616095166973706306623842557518729890701886171958400258927365068206674175929855938829842287108981002997502328325742185451131277397164785468472590642289026221038867846484768782241745687764323227077125195318655690102191133275689570370280859881161964238462819565233574001679196902116598460434857265127569968937217860273861585408489592069295299172187160091811578300364892410831809223050987263988095671169365706782566298845834148852486825552114609731617509055880784166579349269949466463109037380939066799327969863807105696800216550967671946091254988876960948323899209204672341377620563144703216196005666228786808446524344963541676614391965442842509744782963682934989377905616570965561244030852598020427955558723730828273285971006269301848759454104120919911118282704543990804205577954730688574154133744244646770033443731838019868601304179766618210419963423014338502815497261059592432073580852717487490750321549742081483525878283988431274143776467007437410844325582283053047446326518388897391772540849764840163859600012286672170149598326388519913110119531256176508719665340580678654132598715200360546120205552078927945511343342428770638473045700695934099558322765087105077500990954312894339171654667866992656373824106711628227948841871793004581547261200551644522324226716986814434518221517480573046721822121223837353823814731786201656459388835752140430077937844516909438014093761650269079445246649264046156080687946905429064199326853478078554300281979717436397332039472510896025188307323421542030389594366949846513914372095837516497988279789516141771355228528240247031221126132306195449933547324133515103798576250389603713649282786806204257275970780137872935078169434531431316811191737774262282294539758379313790371747190486952590587438156855782786405777073962329166778784058997865283122969735155542600928178195760787366768868672088500815803617454684119691434785490438097991285641076330260151113556421033018241737320310012344847615690405804573366228197375670387008901041308330422540176976411507949489068121922774505379023966639447732545909421907980504427596160432255503463623873798369612371550537253896428065659327454502868276788631697946910306377249961854748989026774216522923158742503728057709723721447261846909790398126678391886796015355322584469569049180296527727539820167698462397063293695954828561772663768533518911663543787271624726134886285281449202316598769911288638661451965091052869125241685565313352780943080998442004749694685122758259025273828637370022799884327814572265145453252694987791075866637408192712310075450741532394829279883950857536428042951251273744902514429784155391101437479177789059131440668073864279727642552272329709270577226430468783355356408771543188687365940694933413133098520094962753707148349755744882653150588259953382520368749079869895047123188651860777529043500718932598946865716247443008168863959973212923436807024496813891745587993160264769290020351009968825900379856275910099918509024705912521806091778216930188936454124139584200794458678025782068127660286718653328092496306292410269962104785727665752100645975547199837576399302223544461611407609940621442978408795102396678124297518575409188229517923135446667472682241739268054352824779752825434912807909017929431085936723556404279632359222971889804383192631811043056812786388297287340486516244516966214681797385611714937339956420237163545226880516812640490917378475720783037427401303217752141458581890750417033833985511548217765905344487578560448534181459808117959227757327719680789867374619211789045957549146171286398501349967696613805806097337193738899757471181102951224770711649021776267593309249622867776079020585319684717838423450622809371050660300533068398369969447012224712792666612581474187935406574033912104607713235324652512842887094695882718404929730827416282565087441121163350681869790985960309129171471988323917704721377247506393671859112302896943505873748192543468610791830074779288617207303169831631907532614241188871730856207762237094810364686834015820701732586920550583537841749992675446192076262582144159867312956215891656337633313806618455891031958458523615882249954090525171541330257600215429651102981589778689799361322473684611917646113734448178250084769201688839742223166820193750536973395517208184564442760867014594677477926817784044528045080602399685719678448850288413739743360680943384922944623849562152056466531131510508183422276339836676110850618640380039559426338829431517586397246151583378895684952072782719365882441340691439730226824673259234018352492384787485941061847385174641273866437282462520240529949192180002431968393725865631047133185282101994567378712913356312732338848460388746745477956046163944563744562995000520968876431450494644418521027945173507293723584897640801978740557193104524907373335463288682449530872249498476662581927128463667474203269152146341996126515659156339240714458502951022922429779754101260889890725337055786102459071959923393481888101969264950926950627738311721023316540668760660073832522196612991425934205409226805062433229797666033079768426565358865248979504402653869247753926379827461935224837459064021774264952411182305848603604229249920224708248742430376715229130450645756609132754306126083497523091033199015064494243008384541277238759487067015529067283684307246005005418101545094625356986202941042641716983571499239174535894897868115420032635663524468710561982661096589250492368345072206024150558838322247519145111003376877232946316103423617822546030810323293905017647464158933997208011706386053302680434035711164346408462048974734103235162739642266463459534953878679876132939182320634530425906456814514116571994798433983627667281614324055910565465662474064083899806542684088375412138818150780092689600720548513444296055244044742196403179333989990734455501897712940872844369636881457762378452192962210213676387391649465619327410671749519851975354070473009880630235937001169817464273407351923155990921872424422367607223316624969052442284863762356351742036651756653466712568213716828829316900311129734372553622676122973744538040572009801533362561866194508677549279398250934375326700362165198001219107921497962412916854017852227683591284456981454631153915065164676380429694549459487669896177884326285564447216827648282741999893990668927480155166811400869885496820095655807792340079904493907827116060299966978759332200003219569151964008855044203425533550268088502000119964188312501730264039709439475493453388362343639982546161967725710753622644772415440395034668935059500911064846987080905101760367021588819510565984853143741779563843246825943322373584783260720916411693631815693725895069695588522248237678950159405647306927133709017830046948390263204776786106412759744155500978504891552811586778769497389797456936868573129127194933851043380639783081305515231899685986207619274147098840187375277654519192554460257787120428544102664995303274812568793199929402794663871559655893519749317967185768890817714177192832015149202821712595731253174289255259074675866177107227309126076098801379900340857259316163868103933896245688453904227604994811832234373243229563745422779165501024046388221366327207936200440956134864251255737834288949520097897947306052284774812742598884391476590717135800542880961987654630468408926140392100838753483995679500595071658621170847660528682825111736853848412624018488496521340848854305672783157709688284223318449421810580752425013662195858671912024185010563353592064719796878268140300737389311669487669449667281443329434157584794296450094112921866000468026817129253742776361150274968076932538176652167082362006821620545564054719400462789700757403510642276928339833395375640073734372453195416928267401022294406252459241734633076347608188324730047449364524179904426335823919116458355344003319463632138313676704649369194545762905679946089660635627265807814535408366172193533991333221909900738621896762514060236456874802364139236682745673541053991293800248500559675238781706977811876202854786898107840078271889721285531211481679667838554829631836471197982378114672210419433370948628003748102844231451052951837107913805234205797171117554360384748931238952985489477803371741353253809655900022618867383474791856427603819441391380464699224605655114513138740618025252287440299544792734508673547421232557002958964016142367253094132236280762518797976355014978152893404285624030189479963180122225918307442015577885163662179183562314676094141805737414412173831537060782678716265161661610851517038454971779528599178926415030106336148642253294363122314695448539955687715272005230950648903417145515891211478411111242908233615838585957072124978678548333024318655136243715475322301118088140085613348259319434915238487309328550982292830822853778658403988214927962435806944856402890739483203497806015058876941475935862838468330610802774220475863148282004481531393235914369990428687360877730063653262901160599448982435082571719046014184038128482677149500904507176285422554563174173655347584402977975373571339794575397399011375431322279273238494560937776478709462857068113682119020467844631871447619684683392803004793917173578440772214224369602029646734205022786117494685949305821237589475699626729469591789198866719401739323599377183301978668130337909707375730285692016279404138250050544326541916967817707665836288417542110224373740021541541857858115857052115348276220756082602648003465041236283012683760956303292556409172291849686345485060089992625439612833463462756291469210178732079070936691254519908420425141061448681745277975546430590685339817466064251536349659084558102140185793190945260548289612816215265686177146942691547797442602439759252535946993865788389761366923031180878177973745259480618360140811821209165961716302844841229161289866074714558456488674456364345841238929813815328142747328385584334270431596759569533334317791818946676345226333545607682098261858868968879684156931248427129749800483945256191998525620012826177976656089933737431950227041681004768550910127305744766031228331648862836433427628758743899393421821347080221451584929927458783690517474446678408582592621268795834443563143680932891031017309789234176914323642050433733094011565267181620983470450309997594060404640848370006764272898280981767147470530361388244424068900220413146217422436728259386306757283056894658337623476074551116235683478853943924340713959911003312196195029538927837543915166057516996862498987905782597002182418006475939285399960728337646713009538410537958106502120486857731968711744981172045053324135545943811874223294620803410239665547207560593215392339745084228065403992774224958865894632397338280282571099313572053904558301751573746305388634877525431152785158346801862213426839098083710373792972224866201990571309545374363962529233514901625414117542476577294310879661469412997226426849715260672932381050232336182081345506878787136732978722620342243067028062674545576991163906889563330053739374265056662785229948867006520836779122385660787538432879254592796629596436647878322305399929070667762403579024144042507485466446504325916494599090329094554450284633721038946421586141892306377398933790150642974922472669052950810861506552612351337646751117430844845581101929913963395229932477772933184463789646313276200585078686214720154206143360879118551333674040794233167040716448587610076159080543615037167703893898817228835320702180833014198117367324799201162244370237939681827245322429660422828577698252789828663972585770484409715134164401453695328227113554895571833089146113942742661927661464665497552212292168669433049062597820169993396962480535231861889558685651840769586412784842234772355023580515886643001879793229324799444986515279088153255311645425672255408004000883972786222502168731783080181100770647698202753024691527229253622673778062820852577210305185901727425337184728479475416955141266517405936743793047269236435791225123424777545212239282793711417362842619607898005009259206101055310766343008148632997302924825402139071948564734086185398199174967147973060802222810986674367341889750764329198359972587838804946921566739789256465882674517015209156292612614940399754403674639408297515235340783114780550581814655083313213535020120995995522942601299932471699851513247832011574003978130000527361631790504764209347028611090387432080759820009481743360163827484748064439229101417423373948310819853615301052851025905453220881215639267554916223996160682387635810875034252754800158799081113838641618408624893968608115646703689952274501492855235945468496423370530462733985315588483972412673322344237857541820491051939133921629889867144863470486111044126747402375529141153786777236954438512358947108773434090924742968659686842114941927961572834537736415813494783849402518121787711029679082317054140934592295924526159748877576245892813287714167122693617950976432701896167389008169642997430993028547037608834195606778055774785586307124584230509619116137995595465492972243077383644243147851244384462689928200974384995590326643681479444457833548969359517416884536805933046789995326308624056472947790294772854728792262982620011318340318204763126589564232693238571924913789241271179009800040991518636148638451329649594603762500059819201866853260650765676176789066168415041550018736160056802821527301445118539018510177517606320251583372824957326157031213635887786919979546583377863312544498445047736075914301156224505495291686912615644036325070259148959410854803323954846419079261221135706070871708630122910178461494486201487864447615619656929999668627537706469841099947996526375591113895184276705782316255939976774673553792677948838013413246397453407110165210102868565842127723425130661282314688555945442481148379255470729679844729214897415504600002922105926925578708707483323949109015167674060720110388694959780152935005170021239511182726703132719864819621162306263872934785786428553658678789421942036437952742163303316202973936349782753868308581967797496429994914478296355832819498168474201990741988219026801609609763701925686506246532468149437278786330390629314784184416625567322344114938827220663592398441336776448093005590736403665619506283032213412384777113080119081066118257335423242177813557347405850600716940824981477011322254943345762840797401442343180442098838752901195085522820994202449866582993145807539968257418942761298942240474710393573813373547860638066640035357892334983860903590801006313990112992288995830764217632468278639877814786671127138191833446333334622469192679252043810053370084913716359730891280031831347991704496552654647498244444871388027264004022185980077741479172974631413525640046990119312352968697859045354599868713664466378984774494816801224035334695341944502215344974570901899273918660056488895873673072180842783453874398734011447744804836589067245989250938873177038092961563397248424418638331600343469567217648724927281482477279941416082392536114297742467905713533606476380907945031929187293813025653598622418382602951348085318367659493357874812024978095700658409973892400452876692667727307970035649676609446445095621848848254972115601048506127414268480119986152237928396831072123653836733273914707666199489180159379229215413623550676922113895660983060771505966484893482298463268099707529013921912875499662008650554445204986799142471429611779153055270676580050762852001033131546313901364754288565242342433379184814699807608061369305766126658703106408407396504088602366763484387518848494779152747786213770696701090960071951779165111660212949838275817438158693687652483318247906851529112326545513662767393150173602940725013299093324278292147075382019684690891803027010212257938322151629900833483670779399304297440915274472933821523911878522339151073359513165707720199062434122506553313940387461947027932266885434450735670738711669840265396009969267427038895309468018369560265370496674176913643949249913561369137694705365521938526428754214686494703766065409651121897577624803734656681269962639729055395371346168808774523958010681945550741137985649164730779851395667850338023330223989968746731233082969317454156976910612194445825086099512692937119201367575925826761744703311807474416745652455111403715298684113041884866320628728009489341487702839798738724356795970504930726087822453350194043638883829871957120287182998945478795459572334911290005655735767905802211612284064511581552181731295656354411136062498643419541010937645658277904703022970006634596982677771435674416090839792390361093188376136745558747282434151471822886750690242672785634763014489193947554656063592416526424588687726676909414721705958139421601278117537115348294378732087131337098079624217859870942517555004342787974458606988360736939832195790014012112284455279251268362540109002910804825724052955384187858177648236318036251020841849807295579331089038176514845947947823359971071600811342566612772133067679085851067376948231456326534327919455162426116584285948283952331278146421982910847445335466495456148463178826117531925376374215701999781908071650635169713771835880650218875423411322214488604717049851986826943672438246509342234504457709539412138774199940523542760268397274375535586830069453749647507367313581514619806383442805109550212955055693301408303552737814409789140239082464639809215242348795492576615182569264149688223884723155566701535101811366131367311801088436813020556995877604347945638324157638571557736634800252148269698881309278254880371905431344227695825916676821391374459965303958614523839740899201463760555562134933086531550047688993643592829306253079165133344114240983281206680311172283399150927427025202745188567772120063918933508047541929752485948135828519210263351035799487517714868465629446912103541749864767941986648472939164361465969466544220413152320412992919512026362269727672407957157525739756494812075820465681825715797039506150808953087651753578743862875259269436574114859497935964177720572885978991918726324229989462710691278120900977613459338374215740866260367234706872595383733407299615876871719870884345774305236309807564436650945648859849611807769553020919698437611891452878864722853047863042032558860607342442859338657019758557012435702699821558089908567993299649451628228511439115477933636541925950447032844995535127225998505773597368409142073303361747172450817059959820615944214980810143738341458874807527786353594031662345417555598482117280645512337090661864702579115407809416598016871191548820075113730070234403960417482105781697791503073684120029337816538271996077714471247205318707557797426192830206245316442800009855214791480076389631581352775029322982335212428461945838329610357066401161926545657833336150989861694206880539559619831636747986605328161358357808677541037944683662982299336108856845720480949057735228932555631760611235408318011370141951251149195149052046451205912877648886520757827238841145106365296203783443204364552724902647629213571295625768014894370074659357392700564464596093922185949586456259988133145892353852015522133908012544167513858192123836186699311600652557318475068616491709331256439349981159162034704724413404757272059794499466104468005949517256886515947224180280512704692371789544098312197785244368631979654530596769788206022244084268555355021584531510464522207392658865027477226033469169513478569892037824730582325384191820074952597874497913443774751188449963510833543338959446687049871432267148876572207615281728716959377360816338113836560317720487912138818776791364721615034592031246088186176597861644305696653959631494516754607796198920598252614399633610223797345289371561142301273622215687212217725052523945312050734276011389238595193406483772963609800004218607955900546290014779704167148399026339009049560736007866571128031845487512934035890645635477081968849237459109258598367738477876840993416221608411737869660484532336354414139055185471414087681355712531782315628803183473109869534136557974750482728873314527667414529617583817969216364813916233542152612088877203433644298632842481435470682103036144168611244643376632555690626034677579406376893321861421640987318576514561637619193512427224076045639346414335540508061051171891311805985242466734389633370071895352143638086850497408897212218087012325120032653496006236176230998602769808813156058713335933760213337527411691964491382337308885389677684567143658783353195258305546083006073014749835708528422201327090169690131194482074623362227803196504846723076540554433885137133353101340074607732557575906741202389695801901477315340276527840215923960416002090548905100785102852427938051815326432181654740367712942007243896048093008798325310617680508234170753068076630265166468131400434588543047839047325850451357266254013739127217021076275494739285353646887784267592630986105401315514928231778471250898618079542669538133099461233536496808690674498674931339268360663727953421387218348194940195068352000906933509687234723835540197365941638809800256259862915190823904640615542822303958843678137567086659882279127299899750007207436668204580550529228813110299110035154045385215670177758282113160909662032846294205203757006210224083628608030909606768781816705054800165295242842596132578856263438794903897013438627070811845663788029018949455158302444023664578164636560318803537786763526237098229282261780747466293033320038942147993771637606234410910253902648136157568316103530671286462186184386701525613020428269101511476234235952950043485037580208413150931925979245843802634748842723703183021250180144099319704867450249962019428013480396940419471304881378871133685009366638969670323900002365037855192323679721237282580685173441823108827972363071320862172630375761697807150901703612624405867794585075237702247751895056857069464939097873846745572045160974710857807035519348586966928731425516756708192090277843694446932215560363208286617532675711543207426217248015263677956131549463951237231328056101817757849176892928362729182914205730586603783384125380473404688851304905332040799504730496527723309306299719527628069899662599994362489022886806663543151500938077675788488738355330680153555541058994656524546895165162216470867295141615426521377531467429968575524325183926317336146404351066883033878002539399851547441146971373961065223244779861409442848304479110434084028271183484195635253923653693642656231867600806400670742786240215232230998121177338086306954344930033758620740315432270818716328163102012127630277094888558413744943323140879747444684036930490512637394091964504783379969321528751061037413221508988260737466056344069964787228977098128246392785884894381746758888105775868003559856087011232749812571571091091487280990702233679730173933596977539688849185120348600346567424499739999272908060533692860475882979761415187685745086124235230033669275806664649150821597059440199041851776185428326135855129911536587970390966278413111785751726472581304335836219481644894642126671041637872865946316550457541605939510000829870512317946266762131286600813832687336035846110722042194955703618794737769064270076259619810943419966887498350894156112560365434372770898972494728074344314163995932542807280645987650577166620282924696502257615155756571719074289874941826625995543759586037126427935978865680302852983588684806520978488446921389559971223901879732502372991687385599992949802911677942605159654690629961043665014237726163318478034308297664516242590928113399895366616269608162884275543534631417216520361573044819375258167019996927535972931260621425851334291211131964660970289576981099328262471244963314432816723652268257110553956851410327193613270695979516054731780697429129331673056492303359769002756170095858904903879826055565004249966944980622492560549653882180183889244475393357383580486769993159969106340022918461740482678915083858381453014814853661507678097242137149493295423589474799701151741150832941396998770940808238886202940288188617375851370798416144072170917221414287784565486790375571412743635740188270955957449860424967515307748277400661947157765939366792485540599123319289928286398470744443286106095994366150407802716722800752383870213668594273970650758624998026856284832458161359781785034486292735324252143517220335294738417328228671094979912147840720724396172947316721337682237215079879920814441220034098034886907810583601665437877647479404522620431291207846250453367939447280696936272718993770303227880911031056786291298345373228770162745075453737388193891501713648036042912625688663747178660496561987924201047040555186661681587202476910436289093410992698231010578069121881728406198633301104798050998028295266570049324952494005704855606896216762776400938204358086719568876062068704827911085671489300652517520849027586704617736298140619825476330570038822278353980522182951912282648483502488531798720629376650960989969246989011396799712945780959421719367132181272665465735652652735119151087739832463365900055443371164377871304318451876380038166916495231139800827967833348899960447561748940552428570295206704956363427922272738720161292406967143040336877826449307292720700210442285236923284962332048957161594945269356249446431679411558481690108450892541059970699187198580113896526811426730011607337408371124110615583231653746662691882342284915698469184131627841732958197003073882095524279231242573484292812042440693520873752821524317048511976289571961888758740325144737090119462707253110803026752073336137034273571011881956442644276275127529579143272894478148092199110377511720218047629992337430979431584676534084550233695437482049853846055841687869369589983372191464437473558814575758530727180269921539038727823176658318278470491484442466796772026928890805576945398361783828818790948637707450811808652201084463273248509311373890850424407996827662365254260674778369509783205534608458573891355280635626096228082665803694033200076235086727634845913790793240018017269601469847032174112348511324540929210685061818545643676166898900507710608432692623161615481603374471109924399197458776982326580642099585907628079633626062410721044007148001853807091094677562871100699061832003773344014816804711150811068604660993691831113430729685397740066146195838066068713077405389183243610136536529393140996944342964583991750311865391655442673405911383340354667319646492929823593608870390012325547882630107399637303409273697672080515107743926353398272493477064335173387982926198485422557076305125287300768055823445298138959713282725156094848982125610410318590702034721163447573160383215433843904299345677842773063307709720590169403883980982161621780976499288632098387829192407737520942542350028553736150201762086374640474552590446107542112271615690780311247437293193788296978354373692744257714630870802316433444529475756682794911888894298172088594481053472121395483710619358081005401332777228475324771712637833840314306116222624585911840766765289348942129383162087974233125585066788601818335730104108519644260035396443487751495862523229060188876220698939561633534513509613301713670850974153984894353650277059749124388038519671768086649291295298392071090591150797883169861055530801248498862694736736812198177565744930266103666418492044312624124943869802889978134611320682702923359570654770094895737180692497442597822151491137427255077695428546900906828162822900509614262511059029682395827567560449244743363830619515843786410479321995050750877605133210172735585562951250853427606197197407479747319087530159621694691473933506127745477510773184408463732126093575028974306644907120603978335077708875676277647387505320397598640892863560831224945392519725180390485735438784798738182077696189838130098716506589733294122067566257013841481101450032246537188903279142983543772592495564390355897772761907548754889844440818557642208144924406296892126266583465953786275267840610730838043865085352882319628186034663878363405563585451371404922463905866466027134804401044509448732151760895331530387132388145914755634174203817186522968603484310942944317806173977834987835324736978751566735246608181204609303760679597267249193734121270081268674991227661222745250954654478266580436944043422308204119731445767609540332173317740005841344397919243262047233191509443823764479659374528961728164970803592534043583140167825476725917192478837954701069686213375758663587242378501018404286081732634951905881036044334456873847385693099454785226844117670313225764927065433061622852375643781576157529870668798182046867730108077201904456701349861358570011869131036025797455441491132515010082726720498655191404711897720269233673678095577246188500186855549058545442119160207830046990603120127301341261575209588922536754149395930852216350002782374327041729822213409924734674045880949493238466194716604298739422594486240810162350233317260895287392973817322007701748198471202776926770885723685920846740383013990625630017022298401030199785008669671461121300382106640432531516662050827046093802005635183239859986403191881334533484632544908026267210973870879209706059270771161116941245960741346939970266811842155546494163083275386950922025446323092169375100828915410332371443462677147083115487273140070164871408338027784599636570220041004256517581902742675397974999177251564747919850774038608277069884173508191903258432031469368522515736290734160392175107670353223320985363864055811270292049888554023254885635388840771054894364430012786378538839545059435757965171796082217656724224657599225097740585078966331932623599618290436929625132045011753337734511781176055801289892559181129243201214620601467173872809446440239064883685666568353586251889108347822655972705969115568963175217089748829495221276713394188220846513636941801098620969357704656324866452016751167933479016064263535328302788640727657907581781055396385442076377655837312414869990502446054890324210447086201788928248199915463319395777429842800169629209683535112203843847479109503801332458440416391944657510447720929318200948175445280532332147494673138561382169968927168081758532648346577742999824374297389558547152904742387071624364465364709043843851042912819308131992798749678757855779184671435928252635697207267603021091765700162679358120633106644244909612318396205408260449785696197564477913586692199870316633501722084039542548274014939970676367855513868393723436338843281310834881133283263896430609486166537573528229698415970735187607665868606126911120515394105609317729715969293130006088709755763401764851683560793766227415049558233274306263739319841155178314696246483310611097523851989250569259645505920731324362207612912231754855786986125770121368690574334905982944153647618904816299242226467505982087313009892443442217647101110842993868899888036004431528489439038431640124042862977195424546097075684054695192045343679503942593521790395184903472095098106351865240133120105842180280834963921461065240616292514975502593894786769709981202509887323823655966698456676387411816690861630078606154749429997594578655105178375634091110778150219964599633870275162783817025655114026304667670522081517062828559429167349839343062475640773031733208087923961746317267501872544513590304533712637742728224542490164624437824239877064641875405389289509068967317478279561204628762604003120455229301751831340079862791537076006823537210448044003215500349641780019787855744345589226476248677703865521938436971936551108790910102692622235699123731174692253548016971809378586922843944160641076864222232774407947063274199645451400537043116705818387536931162311774294766793837253080837662196294966243792996234183041004144588293840557061439313614066348695212900816432158511188510907263131866852283446576647488223427110461151839216112965933934193430684629201934584997157756835433457167506048040460929693087631062399681672556595155998310881147615226614305020920783325768678744106850732646400924468891598948090128769044887820289294558667163960556999007951177764567762707063818024230638789240481614266276781192310676125268576948495490815459301051814038446113508515849986059673660550695882184588514952267574806227340550856159055101790185840513257167976407145137469285617918205556873336412078731421215730983992512270257468032352478888832577855305646031159099697779312922791124055836372678592883887428038130518473563040701787526127416556064386610464115227194339745620160837689100629860859207123364958892578608443764077035267789404621243410172042911730800690136436307692413098082422772200802046523074667306617044963416926358623435688176102202895222666708049889799359340837162039324654833654480247323792427498399354228181511667503703237170540715006100568932775838019683061389587729297618576786019198437546849978638858522806215634864219005589124610189817501120800206684372845814509477230124933905620759395016654291672281840087432279864149005373300454815218774180016164130575710629497189499837152484671414005633952630600579113606941053893782359549251441020866537303605568378723921856154498214022272511130609163032382819380211021095714410436796265049357065622769526674532469048156076689363038184743260795508295267982236932258566000366473142925297795769036093693943868652302912511412777224760862325386868712539669558190207594476741318526985669341149101506032643159066952575490654316100073731625805605405459191379802164327750880123607603959258630284339354288762159873778667921654860368527426714266214386573260138173565575158848339792020867348691721286609971761014340980523265772787447483434409426025997648086714874215604222630618920978212032477185312510415680010950057914385676405983147014915317990246084236703948412486864910612449888213445292075050638950679536547554527764748585766973828605366965710851888666873215593994854756231215664050866043960041558273419407789160480251449465641301876344965608816982934505813261512329265060743943713997638045590236432139711359051608407090839805900513483958216485854394943424921445926639125221018124844851470278150565837729257666737149322616945669570745321044215497029940357177763029694525372469099354988810956554182176864531849397072034404952657183831438344038127033463154362184968505987020725871368263986603202534159477143039155523002554042014532928827229127572786620648679966731754479089817700567709121525522278924989669481003621598152553506530438825554438530880265862042954785323771013862364489629468038376027950002840792394297708470539141913904956609038416978626556670335922428070793205722304132288402508022999590506282977326368222879252843365931724209759190153257871061900779666954038542406825226716696896205144779553940232150937833860054265840226320350658750925578012479011984009180029144487731096862525272751610803840702811282283514398504962998298996108710077550587001343244430000599018826426332754006547477047561685025806889455021835616201413822200159061122860350144022927420180496477351783009112578251079781027593709266842608035391841659989003617726636621823569587776773247842258224780178016994368388299085426843501562968523282373693267113734434887436404087539797537096974580292650082199679255540939738558903270057227108714026291622119987278225162761113061348214993537094841998386445036520727577944408748984772837484413117540756404065805021475578074855405068951778377790462133294254690298609459102691905720283908172960630376997686016275054142232808671748878887817682709959194907003840070006933973204201561144801666348584973652920845094693486655234434720582466483271795515378519806790223676359353375813978154133418388686030322340863603285279892617373359167542780102682953541474332527744132347030696668999002113843770545561980320759094194771720031911076191312253487159027885641466938739939623434931692254285531682062627131857073942812394102479461017755513119388776754165725037888660797270042186841143425154168686267343150027043606153740062126230167227782958334801533270163936434491186462073098362147348346413864426700100692346181967870447809470899233233989134223467777348599435218340820538162681666705722510134856019467114703994566222238257777934968785100717753232984862881962422966201466216695771342703340642385232573895526292295225530578098214720475788511487726999894912832019565313953310665692970872929035763940214127524565126723216380115364709027338154042982858136201147510634745008102884235619454495259334945396534420764299800957468501000820306914284255014378147960964154478921296122777714431814863049315378968058775257713895752091409922198772757674684217681710307462208929376112951100530522046261167478987990852349336628150725032076268654017218459230277732954575035639778142901964150478193024196725257402157757615828797142984033075953998110220365784437596369325736527063977585548886349494827979949763177648245036049208882493318026805206755026917149090399663197240507870377038916021700106279413123145641207308928676541895833278616342645974211418340889957913184429705750088928252262999328638157649227537254672910141970439831162012747601038582809073217172944324889990435304198787420328570531628102138777364101959377260022726705308722866598725980009909325469864070435000317760925579948441838458921252235192906252301190985759902651373952712840092949579129411705689052845938625309101810931324169707223621232268550392226945278797104992956686841838392956287293971015336601958992293161581123423246706850807060355940103085344793345851761164346886475170287555858761154982795232367099635849882188002831744101706672154290229212606297715736832379400106116692331621247510353974353210460931311006894584982272397771282542849298615174807124727136409263904337080981351624225645439488212998087883353825097380939797947199281896247139781891383267945707458802008190764158455129482608222898501124556017151364817039289144910178881570350823954097861380304292749666185721889035837234735440756398029815125108329131267010615858248476305867686362852072967145289119776608780011129650763569858885091938696729508150317061315137471036797114373619887536686703088155996798000612135485684804858059403105568325410706585134002244530885432982751873991128604724427827870843365587227018065833815163445890232649441204841570790708980894569205623240336138957608601487615349624257830784290346614358223289554600154125863433388791547861484179286618219844802309510609606499525163315641307331533056303806307600414789354663222011736625251956027561529695626115375542996879069719918599393823276656805414704402466872149975368502176289669130308985070748037953994406048704279920355917225278336792463979825468932241422241440572408520519452440800684453093640541054066876031588840712645261545356365251986136350043133647663529758004806755128216924225570793335340698121757724585171042499582448830036373516677810968170619568561328367576927041508136566433252173509910935607776712478624986146069549433017079347891617699244953040857291508242992519133761911756354000786635887933765782583729618500451371705417368620439983561901231978402023111358604198081761009529358402787323282390521983226367793433656388268629431178047285368662634203854115420446466529290915658297575424669765722462928422100924886387701701181117887799746185879682667269484118662724305446464365595371568977887967993769616069939582284184970811479924522852794681813638325604963846468886356133770649623245165087978704628701538990079560054672408280565221240860326493960427186774355843666614929631595799772444306362415862071891016267366991244605656481116995250303303835004444430672572141046736203080906290556403923090914683877333567544357334796448937963146959017248105965475578626863941744883472492300438589159945912136995417170023395010048898323161027563446421976314654436386955511292881997777581263386844043702183934760664886434962278039002621014368491489591317273974365079730416675550199751598181457829611365080334988450230840308779881940497252859270978606980666674396265355450275564682788891899886562681770274012105712238589465791656601424153257961552137281712554534296600629639378956319211658115988454553855409443041776824302311153751705321430226814148905662569315042642257582897070125197370223171935492407075865900098504029025085831792795546142300237685521088435916497823964576478285673565983831057758981303756815094437363042803392501546503719370177802668657430352364391839606529768071003789677111787638878891011862286538370482600169204519912439569716348839612892488491302598661830498463581743423424565471425348410246733081650301321645070738878252282151125501540985070957736601464916953473221108081235660389653622630979702551152282802719655124859237391144307116860676770474956116011184933086635434901341773149974500948038824207497581653926208688971226591931542304381812493332224402669119367902676153713603110080925911523320968495779974276255213745875062096379432885415723926310089204791971235056782848633055510396335128905928510988275980936394782420713596248254910709282698770398718468772695021926828517257542760775634463513779901505905373340533308462728159026923928799810286356416771674965669296116530342534661993796190172592648315434170806886667432232820907694658121866724597830038126999822819176991823470407709045029156076531085968767574414354069266003373864146974577968686850429082066258839834391971333283880035358973755710263627461606186028277488314339934879619707653779380727959337151115844790802772533050226650703098934219315278364752656304070648573469036906679856450336357170122976898799217751227318949040553987281419188529905445564792834548769194271747631867975421220002248514123242877315060662904140836131193892546757136377757642640152585180930958249304715971607632073055584879733019845820994674434392827183374022504808197625346975666639163300767668278609097077148049147065824302554339050533941071909149101895432782208359330234402442372254357834744540286456465768249876039949242018878824047071042150894686372028491731546505297665648190504099833767994655558972361317695467943401157269962767425384005714112468661303023561482932311506910087419016428979877737234395910991316889464651510616415535385731328768602955391235267914774157866023603687554231680114199740559673133493423065192804573012914045160163693116691924858579077620547017761753308850491281648650320915282896101464441299660793852360652682622060684445053870129285398092228838823982299986150343444363163782014625051526637507974406668413240143401562035497913929992772644333636638146056568553647246411239550796739334284737146165710500763270167367926891732524638022866413819354427243144168668073357724252302691624332479420408846289445610881278985641645134491408412799179247047396449406324390485148841770167924120724981529053545308616711007628216101865569169348690242663956358599112804167445814656464540030327690876210778490669855993242385368995484652020812993806194873023699750810136450737105394214609982574756483141588605064073937945208927809771463949111020663936817709375626767361503517370119570515895075599580367703088113790710800208072631979058313563672487871874125460637046362067406543179704616226793526527438695040240933875601240043368171745195669537835478120846611697205189792879348019305418047636138725261727873605902150441699390336462958617287759457001440924691472297491867522263378286921661451077378092026289823759751322139201656432961230447276640519410261281092800584922454305294933576192084125334504552672166251606733664892876231198836648061635689293396570302092273088423200467039548007810029178595000844683545710161495352185341508581297556129665340822400948522255197845175537634501993529470964136460910471692306955077836294942908355009222751940917006457398761694649298730159852158050934904123939786204226756506830330958882985661251510944771216541483832219276898892435673510031962644412697197785772978413721693133767768281762742202185398343694427474676695045075111272139189336325744015048409545417961400182602252855091286443694768548559782532730350073658803470280853724952071580055034653121605366527079317339528503053158917877799422357841706601952089944833413874773002731423055072735442526275898237002175164112532060732795710206445722284325633385666403429440510331965166277441866205994793308007751976775404029299692091582565330888940296169118494833053692368117116061231018188037978435665704070375492520363317333924568385683908761774996928177108508679245399420700397266625944458824993116699066336795566282277568133392958229077770413665664423076540256955591550295364887805550223569234228065922588314208998129665724623408286222756862810203028759656262981171528831877591575275336226554181808961656443818796786074796108653633661863545334080318940226112844295327118769969487875809063015464260139537689274739939741036615527723663682225929012956996997375417709815553931332138782086062084650790283803111782954856220647254761023951427879956662703479820427056753213296468912878661633745015695103966097401906749441791758698597667807942463125904186097212878436977677833161928049065496914264657736062080668045670224091858534174258461494706970807631338614392284884410372457543273731701888702771051629892220972905410363419814933411706769203488130469788983651505589828933765851991903360482610970738946180258492570619397118657564347759703911395164066059964051244323823913249234693997268208827674527283761145737569332863552943261515720910153216989314399774116663297310341771102165176900379712756566865070895565997023714467891657466760374639911914020927688170902626649094169565068070759217301692357200282482136379498497768136807638099044567141390242813579690256998060401508090910932631383739685286816795805090461739345835301127196570389078840728116496884751396938236964788946258769251695036984531981921142092538103041327040241021739329516607508437096534733263084950464025862228833224226897490733104501988294653994919924868484508577131684753116339292694034945694837257113552815177046441268188624558612921097459868684274344235587889156721556225839202104874834823315657375898925620716524019661059027068773057563629352467856027736081229266244763287404690946154855745852125894814102448612909022744189167654427363178559905192680810571662937802965522317777570761114614360963638220163023915860687513486040815740066107911129601736673735956635241479163175966256642607756624556782283550623511203832100301132738273486296557819989243450656727551096503141690098185668041493793488293524344237534681060829442339895948891695508632111819791334845614002724723687259768329699595487109371367280901604327292502786546231007330623548872289562190635240127627074104699920599192532310634493334059558303998212739528935099955657097942567600683750817543029085135512343598996942515347627356314880106779765326827760626723938385951671623842914084898391127236621926802639390635046788906389626688183684269101343786267912054860899425431638015596526123848930766712278335187528609576323013023306160617380616483259053439872262668172096969740479848561032287722498984610197290525778881423670739528269184445915399336750291679139875144658030487382571681636856293728010123954945956055692775914574469688675834058791538976526532655486394542417966816684972967752388929528288111345175035845506278098095187365347751504485406413613470460891050656812864596398467141868542975026147072742284836181170065549232718529131481643131242818456588422428360509209811196589727354743011484269338613018332396915334097325151795968763400078097901453376678774494761716219660047625688017683115704714566310148449133530176909874018992840673420153755865957206068102098227562520182611039995507550619412802503366403939698134556596161640833739737430816828616768786170969781167441242210283138775970212310242025111666700323743095502361810600745711964818587779857827451685264799654303132700006727347017388603139841279976346012968538964804348035813866223381185983529328449576664625771301702000903198124298755523378074540530713503814171840961539504661199837042734680228850536108362998562764553090960809020907783118766093611895403526889798959683210779463131570276919711127897344994382950682010976264854385362432392087293878522898498275527263936376230993906665143111888427327553918951751656556849662313162920577552207963346625318657414523086391524058635759883184484571121327442215133273072520541284923577459673120007195019932475535827074147307333657030003606257159882994728891934411100787291981839134549965765522696504448355343974398979820374946783850755509705025205668209662390576911870423686876486899613789896785289855862104825349941434945319894733325593768200514110775812271041523555851612082745688718141276130126942054129906194141898130509569915708545974018827307247692146104561772206042442202366528112003901012785008153801796757500130920323482809396139132841993866935780345858274934033224152816088685903092908584073239398713845593384997748277230821825755931020872132618045837521090012144848695899764377708707423543312964373005598966684394934703774529958601904327806787924404526903713468230073903915532626339494694446992705743346175992359233137159249412853642593133767018224300561290314578482302030203132248637208819276744097322901422373852195704822348642312734568663158587396405961166180733213422715815023220447984113535417800066856871840441486989672520460681569111037295054983477410014151991625840758519250683447177108761103647357966855798107061866159819971447188327833268090871315876448003267112959300656820468944140454536184502692630451242447240114826163970885379456231510326080840808990079283966043067346299197717766031702835948805652423759649589756759243872735441448158406713569476368470193627113033192881053541141290584727482680243342309204769864490528125571819714425990104858279457877078496461164387617188205235705183109466920290378158615909471424031497638645779980272968638967366406526894397290877951684724268188897669788831613962605472922522581654963825222628269222555953399465309834305959072920902456928885709433354264019968799759868600284071783109998633542797340093366192297461019056607292470295562787278823036279080337568750163952571324112063042423501904218734438757470242362197084990571123367150857418450360712392284370688588857778001989067174780332890380513188762518639581720264586966382269480139779629067025450339541884916178735502045644596756635809694270572171637253226732457014125009468474353447438053216552039215860941368798982628735970268536254037327940197776834282882106153615663315839806171374461114091971028628275779624091719777676723585238444392360996048323368398797659756588427701507980290415733568548509921312479360016361321273515441708913690693836223513234402819511148804750637503311242893615119089252458459510808485027402330523424410397446270061929848994616028660327788891820193740110606241004757209413307286246097759337410663444591168568103067172464762788740935524642395896070340975010677598002908803928422786830387981028132079741268266331572874806046637713037733866109352586867326851213076368310669838880672543932794674923505463970717319272662767998118882706174052195806536497554811998629554576192396940130329283421133126391302654133694721900090130665365120487680792942983057047848114238980473602072984594286260777467359346217280402532915618895957534334582619479404629086146804091336178965115844558971795700433403291560858493374095084645168662585902470041257439007620740587285740726768860218444309181079329188439213198577067970070135567194760019077634032166042068657365305000038751447307652642258782747979718023551468811208908689110760072608695132707060826454297096703091715430430215233921933123850580223168807153232498383039256222102561394921420009685673182501891849319124310348747085709424595686098608338885955005534709555039550737091246624079154293832983280810719678182452246386056257710609486548220757034598719455741383665602836637047483438958450865179299577893528668088283337943252266344794684449015554301995461595659225433743748674859141120184889505317484409837929684650180304447440051098649538224449708684339451471599361031142397811855354780273517017025107615109347874214107057351805908773429517155520895618213253288186642462604770860421521759124079055957177403270589475537448255886975933600819366811143070360162525807075190086902514104668836076821459477881423145795216961930252355934444025683784570366518775013273898725780310386519062649805640928877553670640525912243248671473477840540428169125892435911456129374634401905662562385683461133866609968542430659324592641809529325241342799290158696716312012892984586803560023860862569594582499919137600928839711616982753336454674513933789913325925217844531226706123457913397033041046782586118861007995692817670057028554434555251401549267863793612068019092723769702405634346279940971813617936850194248061007846441091125259894197352910562133317718825969931238808088474158563488403940276712570667286482298686226655298653050844663079013347509910855911935322122669911696594732814124078446063729468158310787400484205909638891114060836452054426537011467527086968556213333472336977723247753795710408798570750559558656735298787714224692912511844887716255016702615406174919469945751442136705858251333429799892513584272178517551034637218418410517768432965557680519283437390052665831980815473738403130520606080222763145722608849809380784768835327634706492211109053315104069930291774655756836971729635878871238974304859953587813252005634575032979059957092261621963303139047032937707762241748172773760108624015674310151638945571671741861520970047165016341812850495005310652936092245956848790300787747556280713929199502077499807690460324127259561526567974293547325169163446585786507715400860939645707194001359264972184266811424036279562677963294151056870763258972083282840429351034401212424054140582648284159590040966334568563025408395095153774555591159901653948087541247281245076218398736677601612747554661702070781929215884739751488470077339021889581905845547175106630915602421501359371234268241567309587766842313644396225405917593340464817823015858346146974648913788437407758242847412949929139232167904486283280034849318056442461578425790575056036814478496316136544850442768859238837551559739410683107245142291001658632128870419219902188107745501056810235322399791802193070157083308042029243011151551503294541025546361901407924156611160101836885993065206482125963973113760471622187120798759667546210821929816720512702428307110520658616757695793520446175206139017647868503403608594554874635297341934710126401456559769207470914207262788578648223103312837234910812611216301097994612181434561519185364465552968295640091667952202760482884956683881819541975923124789977478395589856962451383951491425322381135998684848323782035038231978925732706307969583864343369125620998318378974491979564671512623947590028849685607286991301807031620252092902566604890283237450826153037816405618235777818695163811064298313980531056980582932224246757630608703345096419381704459612367971206394813256151958522320162214996840675457589141226317818367924773154805856798691863402923724718866569596492087855090315863646530480869069318696602177995437701076270267315835322245021261711278117725346491699717826624041774647600649077103884420015915906041888734547321511634687161005774506725991924330380074185496605346234066851153449929520087458416065229136215342261727751288042253665214562827804280822473069817689363783331325469326080136531067011790665231831212875975499156960484812163783313234957949173790530016944157039726272885032124106776024914671352980317010287568671840056003024932372821714583799002678486619012732373498921939243806147294236338521684387278435255884691319361166923777133980725969491093530984579218538444474804109157211427213747291961373658688265850786200758202651154000750258162590556769163117801484994630777293921046568998711459946622328349838354045093799615582897768128053254144520035492187376354453870445377995547726647295157938158851444816944119211608694161813016436265278886478550475523030949451690834572485550816947915271541760314227950539118467313316330767351806674500201507632723845451565609978326963006614738433207494745678900153445428963358592944528102532784659742022713337079800268553545206806413101522558310027769872634691093406491650263090549732121854244042849663788983476296738181643247404535173325105415748930941266612996480541112878964989346774295739652805836046942348292179480825515303683947570968627949288387734694753361319955455737449522351614419637493070639471280941046017484801031202049652933063120543272920223742640781846898851397811855545732856807656223802019669223423165114172857133584742345878121198390565101210763854592369477649102913117406231593394032833961140793768869485380816573670566855062697201138882836004565857007819089362388068508077712757931124702259729858777158756375251385298397214620157665641796113650778873906512470681949107099004225804326214040642506091215435098266731351083632968740729343942402569362650379899118526199870638001092994721728355248816699957757834490498072444021132432160557531651642926354428990902192571559765416141592436217966274844742845800455784466154521559697267719093048357114394177939296498716323450524269949914682301834585453661123764997884393281074056599405448991373452154718767990912830293542037484354893032174972526109044991704802423749344131187386945049463978737901338284506219058344228684557171659276302262705658515014344767990405189555985442115257495501558032884925191290348240830995445602802954365144063585749013191155984622333680024204826870338026454274536200615415622932607047423577278882852293265840306546748789786682971641180215728817738861195373231148660058831150293073727412633893764887995347602030603996299634430758377823027710478215608198639411893058849996382036376279199429284588307323429842321024736524730111116825381695887496118147647789460875307026686465342929067055333873817904461219545583637786271503942505178474977274488391205570131350772665832730605070907420171528060840257486900436741694835513495021561670625150694940528890245958936401726730269196183504614841381371745241233009962823374680675946270278008244721352699804103902555985396930132705042992464859782103310171728040122008034751490875969572625190757045738494984455873089041535784731871360918437497123201379075964745495404215912366064320210391572076497739180137940246120745515432945761678718947396493938953274977277686487882949724491816647888009030016460728866722814700414093455556808353605094498679320326674177024327940412012033586134595013683553130341967952450764163595481479518031888113240019091977995077335028231997013437297937301292311845696011994342249224347404237070319267348823539987409258987671776728609000354464079206005318180721441717603728973235827066152469730177669164535874960639472749636290354089537224520500137712221035118310944641109298340275990781300550561319671980984076639386924483865390908325980988412701388437174316048932862027462378995726812402574862366906169333723516960105622580273984905285472800732712896897085288085362254504729659061931943754749751168597549937213745612530111501205357440299139629385073517330016675595142881072312389789600606336593071535714269033466610039791486770673263200415167361917067107357871187975962362700193339432282504115873464826986236105153392498194582096623884841840505489856574766062635772620763682064820049522439488137272722435488597886755570284611294283831583970926804466423581305467786866140465839308963801489906961343631603286685947553907538540315808618633540833451848051617290411681716227958008884249083664008781399396901574741190880451079236226537793843124183719488494356932679162888416854261223245509392553275602869031193544252670045568358011690609257398351635960348399909175559765721218717323520958992351619754970106491089912961684815855313614814665573017984774732926665376217339950094649538380269134380456496414220791724036311359680408544828371214069550962997670710199835096148362619565698290925461426273170442209797616222344606158770539046825552011636342004187216344487854620267478203578496728052978491991138075101042402381641834286238671921623279956538705895399089344586526472740796140821148686335022147306532946529073332872498933678102775214236861294845174411216109643312962719280520018693532041583736595461662007335210984098267911881320626897389529728516091882349903301062689261304175203385968531175019907881666287639681016688256682130548440263443283869915685356486242137852655789336829517983568101534871789780679538322808774909878083464304606519771441727681701264507507887305904131830062254123957465135169416021036727174079399392304355430089712742959043426187299997206505877759174776892479590460760620709991112542350732758166564035808985734237258249919028398103174355031813373630358211651926463554229732592727306131866542295365045853822158690678199050301171332130184686709465045002119967003640599968429426706034448409052825644187120920643048723146929175336033747499997632151832470767471755376756448448848398287786982767607786210488805495733801916790733274082302467179020032526482393727703266535767449365456667254679151512697049110151003719071733795009521836657306222584036449203898666867662199946210776666801121286981524932164650931891356303761983344771180013989930441979809397216414793815492526139773045071153149263997413575788390150204232001808776436561832381028508137291296042497743013108752927678115945767925050276299599387309897833204431931151012339960994688895642097630909415520000941061749967527032718243087985130670124569002547713757223537096221994019889819003468778496679380077736030965020542209604665198299587738738728847078310237781231528409430980547401220208891184788926541705448779893097344910331880262958019633659695299912064181998043456262380783236702257464691966895832063185407073227058922926160571201854937136158194924870261099919616778489871809536613240969384717141311560286572286024578674567169995184357102259796900140733638282206980771495622513485831303570014630731472508755881318059686832028271885690044104864452632924342691563837098143344702883001032321752914201652234859069627666731551950162359638572025956548148794767984131645379219995438962697622349336968851481122977978566021933084520477188460280315053763456284549799854023544412416245705444118416526438694782161945211884702480934763230011022927475429573058962598318062719775760725000311926880245147192214884594327269929605102017466581016747210226705183984722553978242303834697845779525406536226577037130925217276343994360160700369692476096607017844140825719436046735068040873166908182122549778955148373924297092922600921309978775338271309772001881490148501563089088953166204265737948872809907412307856610547520866619433509696207404968049583861786588308217879557167997332252828507505677149121772903881734820783697842283668464504431487864927304864580085133340709289859383758603476566012699964622795892843673103177263601622355039305137718950729452405893476195863114493980150851965725510173492017270790275622966262111854230265111651811288771090429669606399615587186720977143158354683379267524042987883963288251619132921428690438928143965673123548340774432399397112094713295758918621513175498907926016006463042495799162298680887631891676470437677202708072969437623982909799872254236920655906872122195375684929359399420504530869031703072538514010825021833128798111260872752950516478385902813200871669156804114500742699883307000323059878585047835535080465554938894528279273556331865910531286401108301816321914941186513153368732042625774617900729933013445556015715299132842336615945738070810307192867151424013327025882035191867044134425160899948561560730998725473037112751453898465657023893984820424945472278015728832655246153629727065014469574326669650192179274490984352567146740033122044993411197224492428462948593853630950224713184981326547350576102814449926039701020188563614331097283349185569171466414448152625640133193985593016206783788874943210154993794671587537792868956476011510234821390444970689285965400894947238377970412220594815336583188649120793335114268411329489455309652814262317980229993898158694157686297179937021467145317017409137780322114901259766382289623340391521959068324291495772375849340886608733579079125198315689671399152718293364497785847652791655218516406158855091372960573529383884766914109918345660147474121491021832897296186217524609012725869378097598820913719663500253106161459348721015362300195129930177568784832159643992916933263611845786578362860965893908593467478295846994350896539084152565785310866060621354134721759073856339800745442797466351006281500897287086048876316428066633483051533241037780427668814040496146132785471974799538883829220902626628397801649453728304747560413364757826643541794251116654798578917962414234250891640154116594664006984648278664352269146021183770463923990647598155531023377794917075939883486708730417973776540748580087719611418861247538892512753879594360993839753787751295852327025448531107637915270311981587886815753791679987717410291150977720705096001102476532737947280755267537214612568472337221170728382271618592917650376198819337162517350068955302553923520532325727765729636823062879080564876180757442177516007704594057668887646980080831205892369573557426672874990268821422154102934360135693812953490264988578914994533461930516313186745524131862677901116153717558326408547871137838653269406955675873751255601856150654758115204109550030317100525741706237597570926437997054309158170356607607498700538578090630468329427410317824919503658803017493132433117720416656687160314214554407441187759489613823252118949590540481053775609153373775899854524301159574203583612926444189520240850417414975160183260830586622324433915581660534554543546689478932694207046391230178393939349960765898704647033295926712397290720929057595324665232634261858531493810207367128173678055364110642929382752294894988883233945859671269934413871317284340847321995033216027546241504744251889386497977361741394428322484950947645062158137031366802379257861444739941720529075424078572399588692014439760068258683779233034571523322156553208747698917083105353179870348110484611742339055213233212643449768382376781910256238523151959906726424799308292460145909617494210360546943547376030327755388479115127323811862428531378633150332327054948245425027002775093307466347412656567582972841182245772551494021235873010428078638855928511145730002825754198840229557082847913490941754060364436642582619981810133672443556197892900163613704851285153495784107911087522603976144709627799750422690904636426284032824136558037490348121061036785173060506050792391864172488403055392620500761192194189364368849755156058569868725065587419977110794705836091836671575373746632540632508356310032030172088191305084487108146936387151194144749811696205770832558500711783308491784497358914168334736164145093833367994032935833392528796151682057328841222075661108477382476420879801864259871733511663673492511070020633087285993191391093850657074642737520280669361895123194279534344856542828936675381381171746523145690974360468558830911471023412396265735625752178149372983411828805037629235403663642335944335984465500609266642051320035746932967774138590538925479208587501435448423871135467999981258532845231407212362265648031938828888867924156813115867327706622434364796227316427566819899081049944971903353631499122334045754166437720407143705325822244663288967392363440655750186073197751524322733769941946183520357002164192493127305797381941129113683675486102567104379449758271333866048342509393281916595393384581299084064762393842511177442377424750154377097926476485623039388734978829675720541529050512035933451153286453505725308521834252320612123137332920196212601710409019536979462022979090492590071746741410323212702312203604289129739040561118780667127931218254266185548172954381881607771111581392680914015459062374831242328503971751105951995681379567611113781861441939713013081329952183218253339005722049062697075397813748288796541436831848840357793620296024844220343355441540764082346440791713989286905035497222885654039484677660373203817423188649624025537819917424528029759626686430156342217575363498164145902471254420379436185762830764969632355879717240895238444317317730389456021348126127526447819230245482336627165675729841498746271037719410471861166695263440671173118543798416837510200199412136022548774170251412522987250650175570986497428877904247679779724934798601842282305624880431108729553209467631990642468304263614227438837483613763341501543402950839308915285033042712807233888484530078870207884423225153854393966251079525679182912640264993223164509237107056159474643331733392191155290917386626004577313850902443214646770183182932783260502721421796895422909237433420913633463360391229901379853197314974104604285170867722701726766665725837487551515718572433600986901839245916904048385419489806081430641858705232441091631451607634175835820040785806727156451778848103950188936419407423138008098786022837642775095993327238760771973819937174493945198473928798902159427998459112448368179382459046957700351630220057806272373251764396059345019869263212101216133802469385579845266251281744381384917607733285199426914485952362901903125261396539920340890860630861935446349388183515964854400008133453910950618432239924551809362353366316727446093894394491719655533072652292763158669564543144626042508079629404316018028579106800440047825734354908107306590963202124813697819269278360602994959782478243891878222046052227547022458815416393531908744059652240341586696304000244575731713315116855660813565885042473242513226369271019864113174796300743656103082602547683291711025125592657194505868114188562971277850656851206151472936415651684421634539754161101941119608968635258283738586874739103600183304582792085389720447237756549185664388788411086519946276256728594291213226775060849385376644295085014625403043377750550276556898849573883488315697944432462666428360917117420417759362244365654463190411570418108169591639293476612063864083892646834221914253208146384026975420332795114777181843613086471062984530622462321053930213458472703848106535468038939712716496653837145317104294553909660190810445646328662015804926146583217923185691302509820845812072529531369565529190997642151417486617932532036741102157342129328536989870209972262599825762324150818454530992007056438337174937089684889170200328496359059966346725456752502266514572958204056904802674890978860399705053029345064055668662648773385650957989109449407355405133165577495774315603151669071498688221720375593781537272234226702069546855842748430193002146403483769215582418211038295877178935303368133882169558076060169686615552533599357903909795440310218141492200144014501126472269328068011137114690614133588934912664319020545956623277067075697178524688778664156189599649538403424362637574308769649336585397149215891073890905298577167328782665595195510381434290681065711575875848658952629496582824997649369528645983341627586298227863229166565436199263500604478458172204188029409759208809123598759366497286184531030528491311861428158663798149576707432597334795305149337589362168633750984114914631361289214386331111458859736956164158201259997519788380508885399513168114101845482721450224313523721090312480048909546060018184505084972397617571072225715105693305537411884101479149309239815494581445851071028406747043578122975683280273082386974426771224629718453678716855023032386952304012178576438717808920137623088155898787792744665941134420921144538173096009313641380379927773182226972842240426700778264189271435960361778533862317686951097112516619917592384869196021635686885647604660944952430593082879000900632862225234624786754939526158977513887224894316662182229243212490035831440739530841320102115966049738838442672240242471794759721536992726376113229339971328480372265031135265974593356144489839620299363739512430440900405982015172069403047060592979475733002286242600015127301132037947972938252870611060752937825531717324015593293921366172869094671453609458918580126116531618373797438302704450620439573674284819632832713825826684140413359914434870437147893647288718043039300397555037258368832009525623052370721968197015824584702177881899625416619444743822198062917517381089406741301490989550410246358684293362273742426561616286400274648787392252982500731459031817307847890308658824068840928732661736049439006302429918401079906330533804042549497895636062306898261352571288270105802620714070122816637567228039353924486566136999993987594482541367627518659374012244317442024264062581526786229493690748983049225444045902669866541914573616354745684889721800192996174080942991714890344074886759898439365613370079513564162838576253939379458552154321209720983478108324701357930637312106230591120608156654966344763067043330953828212223906343731885605446118290504056264165100454298392467810338420801972186336708345066440542006496172015999400680616317505717525374791355640876395413900985320034814693091687200409143865902324342573595545343691168864881778040247526592227396504940411434804602070781821023042786095445620296705882050740002944175409755133968957008097762700766062264906565947239345012629045523391129647188989980215549798975725587448560173847900391993157133397368664996570352780326866146834261763300482819021149761191229618408184796812987312205923661432447621988494754119449842449437522193042068153818007473886677167957532379701902736194478657585329485306406818235153800528232664539334611800257359010741313723818442427160519264694378683606674821466713075727633060407060928135759811696317136769745738823972769202392167681113187116834339538519534722024271015693348770874525418157617646073226985655041339400211558183334616958051665062636418193347393142808237534167250684734463365433373826491393834432008203453777347198158548577620098984723554443269667950239204462522483935166433810905984661245651565803593968250931689315650002659971773065331415247599377862520824248235847357002802305564858277351999455783797713508482409872218560779958134072641008675436601663721835881694129699738716492021958546682489093228962012193753992314301717824375964324986657401008452911197242459113523309038076419081880864498854098590948167127141361595653520428148464872868410254394901237079349930382294686889669008601159161769279362788486775332945690243580993616215703025528470753724220982626200991273641756172461863970665854513827626637221741398192123963991126307115930576443942097431567898357568048576589904131504622689934376277809760481894380257790703392455978743289521683729965454803548821298697442845290903052793386761159742476124533902726433390735931605120747115726046299318101368543903494758980321228390194516532692685051110608083592867274468588660754128571697916628142779480641363386122924144397306449167817617682747246299702240086921195922545869314007105911273616389104612258994450545237087663391577675669495796132510663043284910260959446457409012405928453768697290229630169340755489808307303174483147364797518237678291069905839880777989034622904530008271933954445327714033643533018016810628967252131590147517750105478930533273412606447504476728676914450369166951918719663913250389149409295757262002944115114173973978173982814242347839465867553451473013045130280886776068038833756100301958052949568366604529850079626484956983413827529267091500532349921589842952074156899243019315646157555458592739369243622889566862090574114976979088355633374954706831749709942030891471722201749274993737597369251781745492207501637983048937038897227056633996736962696123953152553987673522488626467863440983420309607322602458635378410734333529471263485555879827229251177781498956060369717229435036947858904278866577127539152656673240141729137493032493389392434720111021379103685406938047694985259192250470480770171073293856055824322939431488517634688870949092613403835727686104924792583590569481546345096256921785439898274849608689096724987833495436462503081648354053230614468408744310656497851503893297411623374859402720651531668185223928294911155709171002109576759600253938822432985550614843448935151526135750268266798066411033852158820300268683997713860455173242045205059304938137485800194700073201885195890680619803609071705098964967105233141374449226440693499618339299035459162466347060618738001823821536274668411251533332654052319291801275355897617884874852781433117307917413996339451911208289385181564844692203789386841927356816920328756384775940448940627690169418977678874978877510420786343093843863910000221304022051664183825597122771050455760633052404554581355685709592625988261550099973737706651835132644251410777388206777861250762588183995627286732801520384545856783326322941895195869141879450907424746718464631186917220151929157972495268855348516008049051707702655448756297215926254260525538264836450898853125897328786750722454744145610052486691823359996820953935087580033765253754354958871517350010938216133452224927108906905259199095305259296217609707976803392679379186087706398525209217029985600834028692192778793346868043109063742727220800635189135388999739659896691012586088324050457728761732705341745023289501019062041050706772003619236552825003615939671915687232083643029885762803250686354402415256625790406511049872178093598116302033912259695386205855986106593658289974029136780692270113767148094683822353786569870766543708763992222675013189282349502527683509887549846298048309800362270281986777468326045269590909594874691536361954933267066070723733216615340758394750698797590814535443854000090907255273664003548029002135277845891217911215040138547382187682545812284909299765715423917253934749621574482982453372944158118204237416996452022911000768945298735355461675207374381140996719766401452289107240737101298259072292762870360587631575665344921870019472829833080676496716689029508567960685253403348938902015837176823195059621108595849253674802828987553627557760517380822163831148751408265904343978138251101738232089737073932103992890688997949532657895177642630580019999461042686774988519909458917794711450329575634384380643716679344888086533120393268501800090234073698043822239489012694499843396056183158871862134307222834635718241139085153891632815666261443699023756437655506606616459664330207263521607547645060906902332681959137262642196514802937355517457743156776123256941073328026053694199353177320049608877565795099029915425863592836331339438275751221882487124496846305742926786357446122544801860943522865389216795039908562824216085292002893025978636250613927477210133829904052430815645347254739993405432752841890427452718440916028506057456127045573670170333633413462158426360807068907166210622247912168380485919510721023813805860608201531740011688300171302599788723487964351731923745863865095231267775577775508017920354827951310172783841437250332371503579312945342720148577107215355166921188342450208997647141656452220666636394260255587403388951492845682249066000342441181377470915061959016450479377402742175732586454323000248125586481325698093797862575163394703649749567408972862376330865566223164112421953225790330934837433921428589676763574167885677313642303640617282374537214643708603405293043723709631894332663940494201935446545154446428102280556744852950614882296476582335483571984754112152938393877691687858532910036020660334769267670104016781024488735449514656395236329743693984312790277925270046201762500339207661814966422063111103400922827778493176126701579524536651043815156087544467290815048148723104643078060660290937136951665801848608057605497026246763329696013820359291573384355121668918955910519698232672674621154539693322764411156932310353627339389542343347763117303009753819905571149967468393435333775468623721664207907628109239794482610320050005470203598805298889087341272181370373277009568827374501063347445592617425624469705726516643902875513816268097792675818684935017579017763929610501411811917718996174560486823734558859258212091040505868653102530373771623370020926854148324862634374258085470825978197376066911626785603564419025429179638381102184387198693824892118077136049111879835603162235895345024661168482603517748584944964818439049824429055730122557763912167028524859593446953287516502510777430776756101341429685003725085279825008309942002441881004640788261647568452104119944336316786269306416670913213355848903216472867237415935555190746705588083303975175583496499119376463157118787314462610829577327187124459823882928496359839164729031449540115764444318758773681876254041251194693602862600061085962663547176471561896994205030226314698831160532124476611537157550980974850514712458588939055499040424314819556106593516569506973480006957480008013746158422526213432547239922833309330981902739608258624158203485295773030916100255520016643880895873853291618309141514691963844494609881280924428545849227807295802615358788069779934549654083234774980567947427498350665379460088569795798189250364896189851580014399442883970287999064671800140040896765974359186436995234864236773579730330792172345098579917937428031752821292054633896209151678611865627736536001741884166107742118061401298828181952835086117771700775492482303977529510205686134890974490692025265746862990265859795315314484086061374724693001572532676418405238516338248769983541978781173363033570202893654263483500326848244239442435273930138745971554162160045290532872069591345459281010382476366376560845524068212380828065766722223624830491381023292042944506720320945284203190311787058735098905705033299979095749650449418973767783596646941582751945785752722151289795055034169693692195248163749040926441151734157957980470906673242513853365914410057024107496047682758080861160060800699844368008513295902384029724246217015511953979681559320976329128491428342060764409332571373220865235571452069824403905651130938366371546085978137780180742464144592836729681262282991757725063430513174866682450913072316543119279027504450615568628000136660488865017154771049117506436823442135843297112260052607162566318039701718052273423526328277904801379818008509094748894150559570546785002183430535440201211653330071947139445940160015358734104608710108826628449815928633580068161607539283250698808874367363897221174715093696511385351922227323901804560152378280986757694853099482259171841339393127556621560881982372730936130450928591441989170132214444817241645720396549199274948848423628330291335783680185387384303309494983431991992209001041427166146287230425515304707443562251657177617234273815247166564179652591194462743517176024286198103288719003783983448404447110081291208299424030634284884394122157060906402333468559048415352545438519589528313398394547276507389055097864305691153430742940793860147276585713822413458157552425716932415217156320856562389236553373281824887295592854502547782527981013552248038311180555541101744125590152422598923363481601384964949800007209607881125697151585523866100836475544326970812291385290217067662978104083064862877138401996811052603873375965854137290226921588681457036258831389043318451904374634150214488325028852379347057304330705448847552269900444604038010990787691884176857702370138143303963781606561955333012890868926343078557805680581572138711698292524369599126522338589469307873605054468217285313935123496910276442332700519059415057465353032718062616207846271001777128588702063806885047568368073757188833564541504040369704804739111460583942860839712944083324041093002197160115916257651141558353132372971950669717066174803806747639380885742659797263347823368016976238834468544769338725465201982053203049773554632226628032655792726821401381048923059772630353426378813177973819905513364784557629494928815747623547387908786863771953494193958204677790878186338523747508892336141589332447942315589734843915342115881032918058182685271687870415946857901624475872748122564122574063768010276376664760000679263115497276432910013427276325284446784424251060436778092722041100704469114405710473290867979886380453873978524756431673674175201697642321557688232808614441837401928758442388053216728266561643440307779801775412018582504782192384946619202199863962958428751829654834231530960611049237865314738341147400624364983110923154191131758859449923924536835567827225708169492400531061564051059979150409310050618182357143987518149103358149861531192135290837973895861779045524026020075471996543417984439591017323363890641597928967910331664875567423657659066898177798711557579142417117818056058568932372255866569700538487572746186733062237909892225630329844863185289352502517387235655218604101897922633813234441274823947264158058158501091510636959868162989809174953757802242533800196778413112953594440855921974471389960146012193171090982944843213978008038891948918507628463105315375971994222047901662818944608224592015069404961821956810237978697715244577096750166685735157955197208430073918864147582627496081586825774042778097316547200347439764526716124393087541315901036366276327904109451913909637027417550951424659286385077387723277800255256442145660191460491314140450038052462229185334989472630166384885571508879876142608437077925667938631486578182296341151349579661641529340347232959591600038108141919518122438879784058421313525580516529420307113374388767374660075564145567792112217864279885562822188854329455903802181529073750312195469329517090875520213570529550969470249907882371421042517513162932284004276444874928963767515066915990586219695278954776975376609453574188450514341623694596985534210827842135694480612461012035099542511608259198538837941414997555667830726161192633321058623762453461806685531920795788234737778759172490147713936929383763287947371158072037308372776733687869444033537921221028267646784281246314684808382495220529253667039384846585777162132432096895936699403766872032958405792247719944467877220036243980655252533335856674300223075605413752758148691510858480007418297497599035181339604182453142098002710500811199566852407701456849120139788196099161200406869791291991490776718670718582714524571668400039099059219880673541354646312538128688818102186390974753782576938359100753385550429035176476755409893474924826451730950743877994038098871338457922170949557026052361584699599980258276597062332727379549496902479151868847204608421452703948225129312166662007426077315878175664827233833852093992579480938467770463244358634540790303305554683137466898344063706940562941510559885965350689041828676842464344798204220624197517993846191193448206994833619513090905283043145580420000114895327140351419735061637255209316648509250995706228938540598593712914711850910443380534987921854489509793275631371792434077109036501800017543938909110787129915417956183218195026158166347344454105862542822332916199811756727755659621120992060735458557222430624798085849351920745566522447623684915119834169680953249645378157021422892674878651375975441635701444510646629847456926679273368411740310464065083768482798192759108235945151714173877655819758910709984519364533427817630670897231267780619060875947640358884588386226506435860978969698851335294197818803265546174541595014089504112920811154511326882516429574627094452951008804009300308171864376746605156752354912893826223154623531232605650982001741673179698120667732778790231669505645153830404778899707965946013027506809595261627333749727041465008317742835553603331985228077590228402885270300227861869336292414128997418640334055464714597304493171144360765593147995074150865145552605265454102970326637579734234317129200711551392972120238386800632771497857085062216484111616761716421155995566721167438840474662391129009758058717783101512920273520124027692572900626779220309576761087778136875750987526488535184224058744546550936110147314348132108092949860654813175877092179033715256685938005446675488453658091185237953863166931649705130445824243536822682118741932000245432980672755053308107779082506807045798620907938710251458660058095130454373714092962429026403730394449137469780482869104346296776468333461962402262875088538019486746977569803144239353643924010396835489374124095433451797462631550478189551627650049399670611452530992886518293205254836621960832121446082302345639980266855947695033065215856835297387600569494582223601387596525149285332106181828927088438031111349946724075441518059147510274568176303183351481365913212331920305251499006856863036439109423772993150685497585932627183311648426328210607899209680927997552076602976275676535019751367872222847011848871212948487800637882221926147288371525674847926213670483929111814067355244517202259613778354565258723645915982301958722415444118049932337951069472372411161451197018991228902205388180851909250674709923052980498566095286449129399455236597976029669908612583408794418170996584250887395800273826489882255411680665273593505047003836063329626142954406625258577195875792445061078843143327599983469092627512908182688914322613724492633812303800101858969044628640409844290993499169067277090098359565697261113099005505218287064609174673135676410209163180216891453594056189526268394161127866225517341429700194643344729994844614807650530880171594258784375799882081884811099901635653689228720398168708280534027589632008706030181301578765332823794107499052734493419192493207874014406557859756298326694961859121721382106707828357746658861950035638891956723267269637687522338784889850796978531267653649247558013250238050109817501904155973396081638455836566112056777942040339884518087615620657984574909621485228874750392735359059785891553834117554570732059540241532420576444203502658782626633879417604344287854155296684666497045963710293113090984685552924170371580831758940686258507328529601730939442761074904366863184833903863277058123919876543452220000507031961233630684088324481222453689977609863514146079778644350569999330617099150540575925846639324061844081284651465345855139628485915974067280606616913552575611957919509953359939876863907016040327444925006148592418676233769031541215466774091581278368760655013239712470008636482108687529368218455178158867105599690987370626475185010070715488788662245888229210610881220995162414397281018670218837205095990900395754095308230427665883110837736177870868575975011222042193527990868587500232586072968729552783080003994062086342073474412329464933302320764844100094786789309945339380472764749904359507503401481740798707337950318532452148556420319563725423253802045465145015121465445522988024278321023665255794517725184655180049400547500341645134134969236034892354561311552161702703920442190780267921883536370178633789065479008458657470442920118850662813398365759557698675648832918539937705167846543043510257873469522461874931380675770987720448409455639644467963577051739234945931694601818893737161434294882007280574289596177798506340654114009877515967889808425211057607565778068143700229050939804491563066657953036251726746816131333999821748925538958029002992883829861831107348751275125286478362986004356052308282339788804375614919258995332838620065186125028442156331952542905660605276972084089015837773775981455764636092126545583588713609457843081871753610663901306564238604861009688393273255153498295389971381914247142289293492364112410216967321803816646717888331059248105676535593943246586395175021169707643256663998317726578122205131000648676572922784676903642881414335499578259387060784336754317092775779976148493407988574696877047180078487783861276435643471225368671124597938524723244017849414135127134060493004652456905581598277237796519862694714966173510093860061044144793751359210068913709126979134506848557798504727687914098782418030812149824508543636601023511506615781403955264500772595785585805112737506581911802048006082391718060422648865671005007142450499760403644668895028156821646347494495338196590776509816204465418827104259092666247123671678447916920532537357881349844690802129018957388825176850442750227171209317812934977043097458191726054176654566035840386441349531437153514430488283935115520376477229620857284612800865225794391442487459187598853606293656819029662593374133517814266403482142347409344903666553998080961060827722020393646762125659154686010465140131943744254449891042193779263238598097600439237555731033980000681436335675290821569314311342879254664763439911231294496018480938652145643919334076824621332931094845511007929955066563376274076363906846677291675699346360749153106722103609024673278556373797553615819765646401526133251517812324735401928530363957196888813497089885753555657275184204135612453423706080222607629059226616714839081190344646436632829964139709272734052605810474602057212408181871678470385597494562302134049913777146161036270128222261279370897450071511987212610329311415661508146928094857663103901125224777659292166994217865031889488442235975201257318272942335957005456377378472955895305256343430106550011170003131458165694532575371353890038678910209283291408959736573356139544352514765173826735856948538541537964017618334961169919162929143573066794282535305768047784200636559117491194061609220425453722496851590121432455434632276775024244579952310024560123989320943373487203326271022905341467903930352770541260325414563489850629986993074761830170770575615339936987122580884100031591672145463666003806168292498142432689849159153111718699178503254157667091303691627744731519188107688836138706350384942326942074236488825141638649302239155081651081911771015721026019031241862587984270706941498000027145586603235962151980615690085076626244553357579643370583003045406560889848326267699975954132249339122209040255738151754785896137018953823774813577487670643303047675303925613679397843224055544183240186591840001472023727484943651042460675509267637972638942530440906967160996224796975437886981957341419700390623963012664607871559013061658393438391053359879766482929925492596669788443806302217863749049675390325727841048585422571902519793344948989952825303413758136370509996448751499814331078525192860517115536369158923973011916490231615872698017528339878214961300395427910211732568465827031259608337735148407120874279213828571543150038394437846973207048673348401929275339430226220744510608263246541379849505402978096947431134353044428295099002154692413305753382753628830694949962005405041185109388461365219499297435827441415587072710430278958349301555672540814842920331819623468574513428325135492920050401229483948037102833738932996063196470129997417703711576628679992657828788368288682705680421967328129428765153602353336766012231950082658246781999442140419820909788545705793507605851682311729675645480663765894775982276142704864695616242318033188236972978856156331043301685699232978838133378045771904408190659194079802892259457383765398745473001529089532307181642135212589508451396265087021134508810730143155903495680018070230947549755464735127496682318498750700716070893934481590418037627354635150684168004181205122872891627917626619713872469208235518174263782082716869708971367464212094074662144867435217897672860365937802392234916888480006213838605021704484832425048139863071523842362956754111981424206088610278118810490564669211817295335717261379639383772304604560407823967325131532463437066580531405832350092263700431832641431591008605881754192116802529441992413286473589374949207958417846539460551387573017395070688484313690541368310829994199507715083072035444019511303162313954067435056486261343894240207418927347901066068185523616628011932291621199690788591570228494980781212096775368268734789883331548426978311659554119116155694240473079527898301122351325593340454554434614223471586659115253481066229942480125808160287550392293674166384529488773336085129134797639881367107984440606821867347946002049029793227815801086916485609883304865217740958442671821355040477798557266908106449405396463886188709264187289898271021241170418441847343959682852746375117478570678092472279357572693022616891905720405600994216032090484687460702519224968227832864708232675943174260438056274191191486635718667726980090337027314601865381069794801455247543478794150042889628108431456112867664236684896405555857706370630719143218642403707884225912111885932257100770087244085188870706802518045272068036859617177576843412260678125492645882534016339021043646035396798622920363061174517408481350065440780670289840290838953378853389806033493288228619723042947953325172541123365201080717048797424038441315959054519533973209262890552795645986362776753242691739450733022444510745400082585078951215058079703528557362040249310645347901605494014949891841226145634513613898166688138789605987576004064213703964975506965913133081618161771387433752986946830735376404081620146240872835441330108592435936096192613964117972678285837368772422562335108446328123266990182705893676896013246368895394098305899114361530850615100865598606850200283906597074686608099892391028167523493564508900940934530620445530174192422086589442185616427411332315494138619911720432380267438423553077380690373498571623345019200056385973103391923863960155234648065971561108272962151772006980304331361713139293803852088806324371966020115130208408527175771596446053864169498846478419943783055041555667911923839256548922349922911160714476391952537524500282685720294198082151403770418264343447053723623815892688861775784632664228356812007257616781157811733979560949251168458960881667844126563888035290293037536847377860216637628591405213781144311664588120875158401515100926624598561612203841858950987915975769863307364145552118578514356998258381213698774780610865960959574787769575699125134104989956652754964368937016046929034671616778830345296103619727402098705665983218251044704639322710015645074157998743595496568846950689656336218110355172004649907937115674160940569813826125838815942541038308149364277707553453379831365355890732252415136557873810096307921088884826307884201108141998444033267868695942371242973954443815414629129104536502486800613015283501069919023687448082117388690865715345505985398462685033241583412326592266346746869018634392589721177378416778603793335350900626221495854532592639701697759994872108090162294084554879303083391234354058416286752536477586435548288792901603710837985320745854933093010435695950292328593514389671381882882608603870848431836859907790651276630927830124517410167767830654434601368236608564690053086410195931340820025406328073585203974417818495955066751344077134185931957893823293070588535636295558021381348569340267603527212327592719609732845106584872492845555301615039191683877109276907998967234796827157729175761240751556359430002778641400657544205290643857852477220292335373144437167951558417362391440885365024638669514375413440840195413139780285506497225713751686941115731087377797113189271093279708254569739943386770070099843455490997654935529150299176275589027425907420466583803299049227912873318500822538864052399514865234739926298484306418682825007477690134198837175129341227176002990492089340732195806289023700916743148896491198310710764802315598086616926046640744915247281253476440336546895705960722562802792141026017578580516557076255529590901737182690902927180407553224672307862981055802135050660576804845584428711781290888041556768484168692605548844861282866918071102360227695617618355448859134408110222289554701931676172359688253676199982872658127963157962023036479504251809187869003620187044814177310242111714996508309769671160472844948004276988093671019752455578267512119130699831329090683565817243413792257422098900887388422914817638656106091510500117539885182572472483635509814367308280357484915603136845571096395973052075332793668642818858347076403642911093060058905645214628422509969863848667409094862376435440109816163295263003879303201994019447957878766927251676636025752043179175053395702139207718066822065934728166400976808915129362146882638755956404124155215882825959580308860930096478293159873659477182812390679963624833367991324915867711937059621747703787326981741225824918924698446419836208448334373083492867521781536065650174831606904878707133139412024400819300086202837946284798280375018851420338781679493543765551743745995840547357394680369966078886605555903123216767396881958503041233043445405643106001154590284757960590881268172891116379723374648296553867682503604076210444737098213405335184851308152645801873327545842479774413228946586726574849172413923322785971892188472001725724593027512263679937533388526128816774857418079698864436667062126936418450586296327166484458014460779955151239011838571831484020515743299997431781275798485759251740908747217011391777257668993442256390589306474988112656233027323195012404553897536113283023936630586699496289288353183154035297833117474774613368022768948082852817390034334571961195431143473026743262456341834576873915960243221458388774424530191564108260940013250186470275496843328954914582122882002422445156632472069393375672881824844384931444539734759833025650621288052997168373017256223354395530258498955234040570131686917645439129407361211897646680106067189919364637200482296025592620295676557601991561259082267011312395528826691821473252996594974535435550203667475856527937287120394659443625942139068387627367663204592059130522027312622138244571218884522813682022294817882329061219813032968244098245359154580519712853538603822047807885711425430953478905310070817292603779331865599579170136834972609148942038592520428898995045981643863434051375485419360626050256303223142933929239372395015834679143185553011757387395795548034458471433312982668093673707636259029881051977658080432669958680387196461532529769394373715535328178611819281463411882717692830960813377354210140793255389362291415882549932922270877667984041138429458970772977825651712251413021234718209869907505040638616442811983203561868628838378960229639337374612276107782992111322056694746824836108762958789851920955657369651791539357712569984140352263949355686172365139539736167040153990942251380436495983939252052700294711391099423423548951755068836502878892377455324824588011985876213450322434559119967569738412561017735830989960293716812908381204316580408153655729852903611241974239717308577947748740131180474483529716493257852624266324287094484544330865596705398898385946687998463509055402742487138805855238078429907894308891733666782552713768929548988471407819204860017162601814983930638252850663504887843833972007887795481261602103234174418962403671189951623257449836890786593222762085402593895937155297179192547309889573604595311850003720357685856548971644212292576595325128307094586144713064444088817424438620051652494846607202382810438463903012851154877098501715166972522021187251312443193117436454714861226934441216764956054703186472807750376920911021404410398358082998430987356692653195136087506825434258206059286542880604061926161693966810500266415133811883423542143776225759923726081222794790218125048103376470271298000674437860602834133674595434151745739294904851505060672325008610383888679085833005073380201397140626298267480973190540387240235955665864058178780037158071124091479034148029049600257800080698741331763492849599406166472168720445416591700217670061063382282537648871900587865217312273919046007631033372916423620374731540574664654026278858822236509589630859921725892122111208346071568184721325096553351323517241590523976651994650986329473146451399721924398928513365024124610207191209918424146813038898925000499867733615313743592025305424887327026835966016150969356276869766770203074499590382307268961219636299047397344201563555983206009264924654903072352465714877138913405637607110401144438694908995644419065017816750411466835082129026809479210724944545695421861872532795925908436031450549189796305437260087473859021552589328742402772832427279399771949842197753317987623469865082845757937545813055100297176392037935483864184113760894672096906499755725210284474341295632622603401825239637409202087797333307311952486796549859437197337319768989231836144457939957554697727413400635780891638736223833827541822424646370428444093412372325133060912256417875593227203407552939801458419096190476357700847183458791740919243717597730468589382949214197870148396786019454953941771217511026034840419129965397366255980806449760552728443523005389203749428981914020620741363763103992186441211276816768885376245747737611077260973418296171112216274511384933320438585774111447546008891994663799157497628151324670639317189365501977753537261581225395264461606278781843149764857678795068981147497550116871902351375723819633021837238836553021498084242445332349110937664614009331770618541161830002900388972871808306071847475888300863568319804342980215603353219795712766031236283411767133877333585329996888904243376774102904676562628028751482759207676058520405029693446299296631994475828415729326033486684234434996142284123520442435155579177527889395384410823620014581258736289203366815748619457825112494162496702547727218219082425604953824013036052443853397715665525899549145232849899435017378583145144037228411489861004602285060711508570700560403987338665327852699748466011281373337140182812451240221393053481372670252470848904415743159250836657922131051429883079689851294910326019455284956082435566775648385938514906364473509106147488804301153826317796947587814961562525526955664920149271156091255860114193854362610722866684611244461152357823618693578572837703757325040969711403108341254446550342833873956028487548521390492274731660356436824937155562359604017824945111606264733847938304424702976572499941490602854442794390617346529759521250453546985895424234707491047572507007791543926212492022335856510713558360200321777112246242796269990098306934191546601778442074337153536966248249292459439729911869924609020874368729013534761883440068286407506370920192290981158056080053058022476725090355093241816921645932679404221579921451302375811200919789902015458488844126379530564865434225594099385967651515906884753709999155953020324630650813432420096804394325313611859919217312244544193471809328418513305786381666302320470490929873756311204460917941338049097211635229959016504437564873275052161337140111245337680831441228609019879939773132006595906465698798575733688331328552117030966045893569779090325733172748891963845853474389738125403878047565456366381836952714652071491149519108361389122119064313344800510766802756626428696904150125235322628721268668147144474206543793343776895433126812139640334327839907676650068797308023764680490804158394863171451700661729382359257797850154999646469443637067315775862307842387643643802020480342482073841104261193526809444683718906286124175567845198373650840892085387076718505602297018915181402756663496704232421956671562452510303585467082819332263849019921196077097566100278023423950879848338050483339646906774894499283232919206094038669073618231401829864426853552431650629100510042901443705930116127951051705678129177574175470006173445511917681571797637910098123651717133007159242875461574676051408141514932421026181547483722126960482741709870411876117243390854486945857759211217772439423991583077551913454295619757572617812643857707795753902271524786474487630141462302967352582336093373088451670878300578131122138744798344414558980424697991806636676128127850296476656700095535797712644942300607677586028971514139715508845673891015044548202127851866542162999831765443784150171880539708586496752581701642920206389925041760099757988334546857565834618979487774332425247234748782952681326182780037156097726866860655105920242946996223399502181809137210805912224529795705697331484513216457705584874779935048233009949123695173965893771036575814156796208884377808630253390881357784043612765670399108333747558791862647943657394772094338107163702530859588660763191444217073869684387121555522628431188080213516682749580854317534992118602136132327199285383608053157295360935678212989375179255444223018733695458823342168365729965631951950732955752106034314872675050136185365265885882555312610232361662964618366739923188598176742780297986443487077809438118363667039899563509168324752959975820889552920645377014335367396477830011490461777206756665774236486285394045546911895798923377986417427092356878690623174253575346525669763783995391260527916808877206022172358745145312741579029357587495887766426757015723677396097053350624071699828883499677691934677264332526692513405881431395623626710869120839920744639784863654589586552642932265580642353572801770178797683126396993568090643967366555334512626394233227209974135505178526162269307098240210876920962667897849304200241161468318566789371428236852589204920083520349216295032926237662816939136320892666044508550053204497470171920630877859527172672127022037485110036876246481507093643145893178144943525288706032696155855313358722996460955516041254023884707642113536178217096053420035358168769357813592463099943251130574403735168370534532724230010762266454110153227434745396816800696822650673215846838150932857489419759277469954130341135714733850622776900975014698172840457877080551268418932085890925493390022358069188655038689690418982412258791237780722601581117651953865142958116566904707853133663802367043811998745146631218947372932453085591894790014455861467799759729661197034808097782907576761724175006937965562421587658186802088073472965978056715550691954299078329420282150390285836254275189831763139200469057040856173824831809181911102526431851706033546000723538203498013666093650549979763100029813156529208691378631099302851938913570657823335530847366176364972223116562464345603818215166464847828171162190555729141395069161550442662389309735753587939831816897735955817717326831804870537182280569076920971750465013160890854331439420884242182906074030103743728098866821965429687339499328964444265658219002688702292392376287043447896762247128398843177142938729184338499921367015606637396304402224482113097702969234815748530937298809550092290096345586987961490852606242070862473416043538856748224398045391933573014159459076790754030389304558511115055851644788014615319648215551602461811181691263849312578233987879602395859298789828189576280347174451589794599844558334780751257352124991511349911382804021564265254640354702389189602542484862046547433543182363059332656447221287372182256901605480264141945626625114783061444013199152700111742183893609934619728407650937316596095814460570341243056448386110098899942558317197909743672239943282069633979176472900211848487422518565164277084642362883481412304459665122645468008770376430622547541397342397159926391614232302903377790601861831615666282410859226610705299804917790859139981930792643524408329690166458560134479970884661863215883334448037786277211040592345059355718278687435237516478730478605657835321653447168709004124475963456210558233622130846846771587762415194493789688042604760613212088628742286130566059798638786328074460583487458263418652988805065407388824339160337692570011617024375478252003587864086802999267090464317239377155513283766139529949488110078017011196026707482773501381582854357935074812505300929323558637368808686791425252400832913691406918530851748749608252540779983594512246080542119789013833979833971889205590807436261146993300136535190569279577977041568112173901368412546026481451984162967128927759512664307328592281446735704181032554879154841706064629262603102864997106529822803354501783370260624545564665926866152158887927439811029424708717152526610241180794642944792257823220313471631312478172304927226589712972461782978985686212246554028726248433297506332780205511882293882368038718419313821692787515991312957273531750230190402005045442691414736025750328257587910464161601382393994942828279896822870583381669714000251660807771097703090300792256657767735756912757303183740672978503895670843603061208147920288332365107779880425596223464956970776404978487973693349227022761089573694996286928785428901072240161518902651220900395904726161018634277622506173906570100779479294073144364558544233286311081043971696938476013780516000003186026268429908943821667408932462513374738356846525950547196563258548421683783106896486138809716813180198824386268063590420147990019165565585945002882092997806912703249288567899653346512031436275395323235995423626001809793550017690066473661522895469914512488261372149899560101471515108746696974778401558252556109327030295473628924599597625940356044909723943138955588651195622611311444945001699912731675355731585712867835902423559897611477094690785560708629828015459591674049972126325934738915685347693301864754732062232872074216175714360527014423574500191358817367472585133169351986978180415993879306471536275053249150991158227200575204612304086103526318264073084750371409236495659898855367116430754804324901224510076961404699184620175303781888912210461698731652450161886926825620256475077326833408522239140780340189420604606416523529484577825279504288208206359748565571297237787125621305738371833335784119764774787587689595891646839977133747060951321287776649484595548986303022398461640919238995157584923807627894628955461820009742086686762752749607481294881150462692182659824466096692936823988739345330831866999178982438009043937286387171092262164303858545888845607840746223540877618547407772007010015553307865427389809221415555100280910702705646776337604832692827713025015797152583787813523487080105042458984167089190513970634668236631853013720216867235136213252295746750131066661944718593082894428573277754378971677028055416556565521276278115511716288394311623408160242721750637092673732249293404373073823079456986559792856817119142657029455008000779820126619180889719686607517098533244485409322073155466499967951310905969379808786541032988595887751004243061263478258090398871903746404004707652336152190310756621754312778360656384075715087587576382438333225147442107484311799825830079395664404856353088249383362186847532678285850847695356922661356397168870065380780180476014098441432225835155093356975275093976079947521218330029302621060865129858700742086922621109100747530570258301209893887076660171681673460765416559139309766201692123595833127127005908122045395645451921971236626898781622931578899556717781974612658080559476615769125818227059405044302803448151958106043525919222163170677835547525835756121272952113917268744240019734855015216600366168558891640139249331733968148946928912008382181765490023255443146288070001979939250369361369267590587889594677372139554525550253713589209936959479878989147033018274114422870620773190574073364547670772170696583065255798233924020989046837204686640736408832530920509499550496349021387436705977987132918531243733559962455432952129698412340853153481506751263568231783263087971788754260456952096407953141354325368193131184077220834937518032263433766634397459697199674975793995641151244720907096795690353366722523998135324820068729494739612836543564799867369966202132716685413207889325917857610816186460784376794566113878009276939003840330793272146273251376784311006878102834106968904011700540815885146151929676162409304455714051078770950118436017302201547711467071286093449151995636091315624482225494287011425554033031656331348430868120794871781199667775371115833315136142062710605255267595003738529643651211153613922551532899812988383368679515337842133441950554280947235139013464006505874444525325267520269268610902925034493546192692855112443659504821696110261018241205144014269499941596850593790634615957820447685643907350951835499408942861026397469342130029807813990949983919613557105041594449374659433364437585154767813707617330128316316865535151440050369069052606003494515932816945986321928990777171510793502576382378476866830509366590639559041050866666175046026856602077237102596151420196929107087675641626719964597163262260111387082879655886556801888074012933007804719781588241344255175788637667712002308719052673187890011830054949032428246554552389943804080827772688014934550772774836192032844682802924450055579874093532077219406898586129245067371400549620958606866233284736064266162357323977411963211452812092485891124452402647907314100995670459273848748980152940968497362884054263650432905592367384387598046053796720568952749589034100514233581650888275649874147774317375140133778165017430144287481089935593124853187238680324995709892925966195538582309093574306768034245161010922684357515386000589722308265507058431107512505358654036809780754274980355566267514080567051734740878072470297267651603159912850753077344444222650528465939159096789216050819021729958333624189956812119558062006204347450099403005663247062332306016516157985774160741727093252382113844064898311158236930252016270327981662164991635964241886398944667784067620401646123990990593569962003791687544122118468121651127745185631253983579222496884296214974189122147127951123727839148785237926218394961226747269119259893410303947697420812901617238306065533393353259732319613002146556719129535392662968675291112991002212283347477599360096014868598095518904172546287360021007830243184469772108632574947294040330676792003798038041395861609091379507543649717805400862246486061948406893957438818931143551061187383392233516416930291273495333181355923925382455418540264861568408350041873518212782233320373211911543468252537250392711769062987139601471662013896740936613935686346144948152196870193329822599796911846404890356232719149400370675112113296307674430456319856490322372496743770382814902196036946029376562921915190312037135421810444083239442430800775270302208126315276057198304254458981602244677783734221524962579273361479521540825842786382000935431277038482638396127454318564187077302557912139609386257109827617996997864483812756163578221851311939948523230639491073854376336152679506558171330664906458973588500365449103467210837751504193823896449404391139806065769289555319527995326507086706515585801700361428826196406346802211241804614762285802492661765497029375855540347095350733270088581045379423092429520109243948921386003834848846230640064105409134310120410490263996380791442134796499412472366587289404484439049572504106600788592879683823201619851162307743417863930870039543572844789158752667010751297777586467754614724689632592085956970407452960313798756792621521111177277640458348294371291664657208228079734244146482472075418990561779291437131806748738069156562090613521937956415766372964057521809966999592432250489711432496034588724301589008419169143874738207218446437768349910242839227549300225230428530820814308997024247277624629533706254414627831575812036704659270750049793895397558254019018344797216516034183801872935304790799658149901268345250620527703332962532343479058846971966862548152503918758946780986779657672294221233447489716426950514001089922814514330898563201933940546714128059812426995929911932128977115970839367801950419144182736584329137545999191828839136217032570545602439729242643752311892206821451062472654672763823901175362322167453084400295337734365840366153646601898972133980502666737401868484015787935883809698852518487565593043884309045138538332279859444268158952840368696218021260526438655159432652573540741871260494764073080520564907665008522450642404552846844503898588740915527398775213193809676847327312493181012097739786896010847435756701595733799626534458483808171744097490114139739478011918886489415777071441437885700352196838783301625060421055342693238103679978333180880926198741197350978452855473676882211908707944757424047121745663574194199116363094725994806961452836782742546995714443432078300164444708119649262303814570182497191210447220516534690344469368383022618999050292851271491729328399394322413248357953337274863034779359864865932442654323675561680995280455852305077503487053107187618752219741661361548925889846680321822196635506807787985950494540742609849968591699492484235176134613524940185732403091899096482931428608763684808544856912108677688974313716113579775853535543562862340907368781876803566015891335249666298435642373678742466554688058219342756741322144381287425096899207813167460599111096363271684499692102351658666383204474518870360410809614862759406195889845258113039105128284583725822838503801126544678571802007636564146173979010908336640500615392908666312385890177750166877972826562217995884064364849213343141538689227061814412707933239650934786159288316539553029695240982586338219127005431312359950977790924130415404312971529949901936193240703749584060734451716578712296634777014526394166874314107802366444475219126308219207464462435142945491199832280345553145096913293083838155116682666236408565202155780752535035164417800210355268060113841047405028862297096304183229228174070606447738318096004731787076502264558915621125502215776118132971006558820874827087081100395069365737099713323402456060517557442761482854739512067420595680754521854950206845324416371325504815802627775266210107552769519616941693325263118054232254768061574620703447314555636029873948369674178443446664382783926768845334432654064405237754831537793203121218221409398895583764603682694288187565797498989165453610236307790134063729260005464359794039886237182166545532940763684953017262926479850172204710955823126361466880652764689954695469010930434173602366737918580767948169413920181914908557486525655860417085056696797437931390354358042754352559058244143539646230903174771641684049982727505669643748707997596300620696309234765041116004543761487066721069900631659029801042868961403378149121517090598652311980861900635481571626719123081412226469884808061712899279075657289101267793770856913692217884956315284556554670751152102062895259634647510387268867318538213914569359429190151053849112319695812201972151662874862054052781267423835095861777059967824359788442252167214284603907486900591418467882137765551527458076917694715005894938573952442361321818056210768546660492820715050948789483890841589146191426209457523225403105439925541120398967477429108688144828274283215745264816426681386593223652497274605710606484054314854279856058200493645503315060221792351726683875759381411628519867588553605291948892871647553669846684931052798935143260939333857538575918405605838297884053346566379930341721811133527946212360760032440919503563783922042553075024675512396717104228495814222221297141351533710902040665875764485908970312945466752246315599367683706188911435117951451709463924594232832254524777774015377336361581276530659443982283103923849451433470758595395381046121479666047625227413903932276279005101829410635737797425334308035238867615645633478900579668986581654100441135333317822916644475226973720714762756714490588518283305940138353214032498965542023860140131376729605231759709735650460386385341180491233058210351226820709622152406847656854576231584984983240614536236048918586084051129849507387513301785850846647711191926682682942442915447531376440148336275589173252412963380866594616693509838223186928465908808212629839100258734452727083752237532424109371804800850907664674053498533787932613048753126350666319300860137161610669813242124222413954003610427801678466819519675009448451370532369550209500732338321367547478225943690071842465468751759936983750532201706476010103838624462077554752946926462396797783847660317383821993146019894305317190606498447085771995400542678779591448738165890527371003618695660018301953253295242039288360147325493675911713005981367144826987465202691771065430315180624645366113586985938450768578793499439326742639345354774843301572853984581464922308296635230639938855973298953918117902164878857052483854582616492712947039137709803016096275906405109303622113260274270165425900943095501790372962909253616354248319336702512779589291417376088684631997387524638867032049828453523956334678086222903099138448174038457897642731656773975930355337752714922148262113824459326170602068378468382362334549774211474337732693106330958714753389021443175333839962538848138286127333040174883172525312158863103984804014560012537158678416626968418001713045557395679928861183798042336653740543419454384926791195874373660416079939826917175956119614161722671186228845444573506286246866904176206266070428140014435743935949915854695016131291281322918328630665391018281875292799749969661709315534153612089785551982186312023112195290482950756936086195617391636339485257420274234766719678605286902268860685247890879370132228921223638709410983542584689929392467686102002948047297049869703629308421739856682485224808829218791994878485689325725516064538762136347223953497484144753265114103718863803557520989126261770975566659504095762822783609679868569887084828555005505988873472848736442005142371906412114529659193385694974874133761242278340339466172333562357157262964574544545504927311043101182592613437410525219138013464280458826599598292637160910735325410910905031319877986166407518278573368556178595822989991191851666244522489808856469686675590404964306696110755955681305673806523220161790353395628781865269052144471317342603168837752085043434374485331388866561908541157357008233402302523778750188639193077782290765425429115998992612323549200043815031676738783059201455956756162108564717849467676352170438221370799320964556496513584693408532457785996215834787940660517488491162788082500448324167041190557274294277807968863800392986408774577417695776146698188104021645747843524187920544426814828995131548873201483744393712048727151629652160743125266132126692698277527951011993197357074906771201804402363639393072975356925003320023393289600468867472500129545374697907570676709270202672131256030772591060069206738911557377996009430974072948949137900635590043016677791468822483536663993193458283186495529646635621185540858666123917076368245944695603386650169752515035767064007950909241911868200945441753541750077117884203380356773812157073618401927395840669899214035161651712769307445786593479680385536814432006182249324743702665194195488854616534094384626718069659118227987641992601552417147692891101300078960771591229601434799628727264099379789310205785814878518978686415961877936355857031777165210305310055092059031987076463980092907679591434483188146959183610099496214994670515631172574537272201824584099611855412319901279593742362754520027381911222921118183270594857083965643383068304154287498196307244227993340591131109780107976924218371276659337834385808343973904993716821433856759309892578518821546400257377817745938703637844940121098540675401761165691820546853647784930212847061202719247165463132184752257044163811357389581050930261724690774476591350013996924640653260449546474754967631382452229813023933572230475424699007490931882642966324622197891646302174302300685619570543465505196574917179495041625659402080205981011427155104246334680457765646453991749890096640733209750857815228226916411172693727262107986036190768251953616731502983568101842331057661589367535979376209616354849246149470664968195905227686028228413492300000185141822057356021747023355924347540527621716053754346560980568017733052689010734301397307567463506062518435074230022500980161227355317784422771866809595006078700552412446899578752651530851712756758903750117634419417512038099160368437258128049989545823085494010151938339166706851168729733869006533814887046929958097632274389182122429908047294807832301997612565016276116557944727734457926026768052822710871519611077625148037263346031103606877166847186072672283285561012780706486770548044867740025500772408297052479993049329251688962881095753432392069925398390060762534464983503171756256297530646708092620817872348968447132889851427828982719211551111306102119157833516425198822296823528880768182116850699668247364718483828882564811582257498122329521948441078977478691866362841429077414358875223066549806579169446205805456910818419830835403359491271489171218659455983880328564758821985023678819199663169051018463929334805625250577760800865072046193409942425322910796870801555803276849699132187813243871283233195645421854836202504724062186185470284795855578312522976450675715549416049124015949049929249298790467541016165434807136341965318637453976763013301270920639446152875005988875053168122581444794651396576732918097268208511359594212412478867718701152162439838273290828079711381861562433190739353510806626767249645195020296381666116047032470051213096972194739423759318603652583388938802672046297052781170939174228793277129222478715086808616649168481167105195996418476940095874428189902427872665856844972353765200391303283595298340638240135450699136733426330297939357941973399142435624721579162839179316345396458053444248659252638455286081410359692637305761367335889208915846269960522091728370027195797267202258896811125544347256415995587000923269905301735666925086487688853279638359213984785367415122227860158411016772742410182316275033988013097744359057704645092171593203841087094697156538242114637341836016398696250353851069726845908209573150750444110425655862551412901530575289047240994592884350453994096071546619883323536345558624579291386487255093642751519122917934744101899311168243362543687521293458835277787581572291753052356106565882228491261014303818533746790286768858905462494492873136802797899520293635180437472617610687705482389446945405068123991977723778149546810455085565284995048340791368292313082178166314657730157179279007069927471344854285917684765530285610914447068657103431252189180486101109601027018477847608942627665308682257332144536028448416822111603236761238362347829216424216780972775516030787695228834048058366071660135300939782906273878074880650311458801887998868553913316142180026537632777383429959311322148052809327615057694163629352216637563603870392436965075805737853532086462998243498113735032415131009260153865243187194964943042441473590463376636681855483759984667071842455021677852123581968072772723874613056502514019265350123718406786210374853091053979635351017821029393381028778005940157379086945641080687039525688480389910892883783862696687846434876524998504965861816164982679894353650306595449477364459112539768068022994846134668012741655096252325485296059676064917268284263100897268088583620259983000228223849803698688971510987835858008091493982559066229018636951717036157795956484399202791856086419889657694449640697870641728784141336331938983109771697860481199127790429814820390406897064663814265980500303839573331091359369266067254863823071749731990825056934016588309664995612678580000883016228959793847705605828052899891414783756676507594251922474483113996503991689673934412434937127210880224510903451718382224077618476172805331424925929207550031971892804731642909237837833153133604526975838675425109629591060633726582788043347088236295010939543846714623173885266686224886847693244536643470272176264900350291508270730188986558531137330965061087706616113565190937954086768528460507884772237912131238246199913855158361901792108582024199371456928577120775088007054517101434924725532600255619261283247866304939712015589842844038929024360636421771795894636499179625792094173766082156714214051553219929652651834578193943510433697959001941839086924356840790964590858643167088497568487087051450112918946045592650024971291392700050598350910442893932494179233645650593961989794883355703113347312516692222134808204137056627228981891999710570770893684186648473489873107150637171822610134839629148902271149469600811525911153567952328423616251171870588806685280044701830294939749703118367631112691523305250291655177374304679643435111125347148755070651631924901036096106780485806073024030687914032114770091156418286171906587422814425537508972108811865216267436873456258962010538710758647912029546198508801440899689227294479597291233099135495150437281404694455783440714860608838394546440871505378025908569460201888481511678484245407840533547250106777501366665480214236576368253764965008223460555945353048095777319240209264035528686976921287182842552730398753386510350068415745882113215682989157231387053363099206375374567162794753260558808549152843907583750932840885008560183521203522116189399000860588630994661839911724305791012020535220267645048145522635498015346545026399940705181341839809141160060003349057475995199679411062091069663801032770602896344140241127487611148274320284414803334496364919767271952879506295246195320979147080163777019422505059039112219983148731314613432996922591709140808695558358508495557241578484518496843946107434203350167046776581712430762063415873086811574813515523826867531619167137751724618449465364442431389124253076664942031930498736251995229193542880355645819594283514966222957318751650444329131711921568951807026477308110717732646019474386123766245311655866413428975880200281655618826803616678964806790074509860682664820618046694735226832847444274965748498696692951429013107988741082117445843500958379596089890497961896160356939024939331359233241233208953090196507002520333549829733697597424571201239713053514373444395756018553149109463897366050198114223063802622748523566919691265312547435113027849597980318801495471380235883820596369692303585173710145840300881766102416957436737265354624048202462391529139306358669469427123518180982105857433165673610835263687736667744353656773040048340501858844569979458074010645908160887616368977502749506229607875351542365871166926381463322620657646823787083318261077789595494852307260301666706167310117321759703972159678047253023711942371813076087303306967525838637847236313400584619458617464272048484811357273377356867569404954694154260700964112068112630885083157431311160010716557986537215571661617915762376173844927100402266799644891477131694498846795919483099179993059849012861765463961012535161354570213832445422641075213884236141248571870590775986408596388219740217889216627019366261859972835119755060648960548948236589155953916606037747947861978037898347540179600173602709869963438302618781559340642166609604056200236767038014025802666952731383175100027634520217315881656483580207108111246339234447601986305001692894017617881544252094910932426754804141918283127055543676648433860881018241389699629859644655905905195890889482408133582999235025465434732268103288451038187195427887249969885830354662580353838805436325828024578285860022515584956081182228197115992905924630856422058075867501257845352047785553828704555729221119507782920770937097240331108817790914900424622246016982801795111020684203489904668359530077324259788503691138847984997964036004599495232537329955568347987511478206148370841158064373594973638912037966443598198703883377282337347962363028006436954241852599970673169828697099204983722471811057668059228098334674607170527649259161333769317371898377339052552694137925475185633822062685879310137659108412439427056160227366258859876467351949739696130027381463103496632343583882627940820579277840617329076259910050641590233447843098766824902044412924167082698248083662967760270436082401394916154937767585027381853342026988144380958045831464850159367511981037638250617720248119161350727444845577330864969262685884097494222179515613935927779137587849243379842875810792925945447774839207725096496233708276730132632152033877504881966918413803281591510588243469049223007351795788959685490704347153598249428663383618629506422045951399316745129694869661405688770492502817674613563378628334766216540095853999502730819963342784902276391791797454317778063043929888950750099216465695387551898851403744364814287062539997886911794683587199640149693750635309177047175946800472223975330529138975823410872827036743882369151584754432732488906286071351492057961436815873250642217879780118185179974080140586267978133659318515415498235721920521826116938652984558569462034199542654762161820935937118703811254322468832319955046002058900673763564005337731476670368510122205205471897329197669927549085965404393991345810015121293366332976146394608668366246655804051563380411583535304687035053558513617270791673343417083070088741502590031936276545014776351531630666151172525369711421197050974853917999077477725654647954081825785535214357727855565679871992940970428253166619320247323261102547469096513082781713622643695647870883678767616619009396897956479771145145701571240673780709321973067342491847578745823508934582555498270869711586602095461275316604929141903648351696014333344314750663429445503270242164593517813057368945709659807757657508825068205536872022931407275727455724610297739183732518988125824574004606927946174606072990271626090965953666783346461736619958065178715172550193099257425229067190620559225638034032010397496406845264740610767382941735886810342615898883695578669084008390301029642519989043019608896134637458493201697433462322162297464030667599469084862913539649617520546849945593559668219753146693550552345308349131065820371789457643440116749863323946185687421022047486761787730878254526126933793947794566579159451747307024758002864237093655264547233057913661350142651912810316564190055970879275880999984404233082950261693791600345799830099641065316712794696851389679097995698164136058917258041062263815473826143514499763871732339341988762220214431270682687387305986783808855133240936234876665852619761123679499685706383497349145900256649930436314288741239342947333172574379326684783881429517412984845700540684500757002200532168613957637191776460473252700638789623663156843026709619107760583581674418548905192320922749907150637812300570344964142334931537586415684326716240652009314954103411705217220718493021749995389214222229007453102801767506514105875026541258180745562510148368222646693172351572029925363375237620346294453218280597607656316898877647806667250755809589064436078389835486781417615353340871378638115413178316171742748856346975815646620165526704697447272579107925557124915495769397796321794659663152634755048896325407960840996568360095474591856558677362830736948366948085320529761905750120040462716836072558695231419499897406624009207228171338455351115627571954866906939140205940399112570862440287232698961828706594568518040762619873175350272066594670423965305848522060002106363962305893770731827889861975994953047295663401396487836085030847917074030648889044746032345743536346650522252290339951222983589591216002900388364028436311006362756316076023859877152933375147980771697263799269598135856783827989524020979999968509059628993327847197182482981383615908888515038826601129640369463339121974296290683555719253883318832802368410322499827764956287006058785455985465413428015680556094011118022264481276209853259863092237387299162240157055299720176166555547937164180290166828060939794093650040979180203354592005278226052079197470593452846310120575512669575309226367886340558596810078819203610891758627960438190331261139859652890043097784570758365601420762599218988623552639441671878746231041394687601840382387029216831561930818588947512622634124340927048554207196371614487112311365612078742828830971529159521927705968915451073044563523031245855424252864570846342241952816948514620347328967466047143758219128233358301830599221852145578933804286722615870045261270923837789201104197474860433826925635584651568141203485854341623127991747542577237018673512091893306702445873538306297194913010463468200794885519871492664099084431226204331932307498325433985455780465683418849664465129373410137465859128331222003187750460486301909292149579846310369580089936390375581059912185916137583714113404617232161163547398344078646605075244054167042050334317605713075827209488427689428374579291211259249618539438273618731996835193623937957996262554511580796236726842409873882434061231891091799053981733507236648729026892314311689896963458105999583746630677098135748789269533469639139636480534538285342236655769506736259572261864193412339203258737015725163032328337882944234806609454233531529416896248705633152212048229685673234762564226833676603886039722441297236092140587240881223235782208351651941157053461567871699939307111653765895904472103008202558211822807203510625770968875052335318340863239242923163562831904980157935936173417318256967789262751800511652217988982681707332464467713837102118575014977222610993644062314245011961564726127203711633552615810038359819996584254066762957944651142133153478369972022253489880980365126433014561322372708145049426006741341293503648648041912984604937595471820853663013541893762326460666128767508568899034940987317785780886851717865052581505251159609271302836705401380537482701796073718235241897902254669558650057517892285532455744564311755725260216709375806728715508123905755570710066084656095688305084478144612884964852848024303707061988471669851879826992101152886526076286729920019270974772640982387601239314291016106749324714534049127827282137184822385423562510392684319600512608741677661038600924340476575822602511842412046277258516605627976447351342256182850040473577640906677764531656296870780742535603937766087147702674139750323857107326985024864493271887744787953728373072972886288978412818462239665852869488141627275080752079083958880279621551819170744260244690167685178794442179994410437719747849770193535387563836998238958103274173498560607975843195285054772681332073783621299594512219666899045690110512404669402198595840373455762371145309632815936526877544426822729616206150955479639644412407025431369346166244193646310472120682671659716651718724583984924506122442596778180349140025124414904988533784988703822044911568067667930306829825248811880732185886161311304312174816401199803355223056250228696382317272777731754349914742382489789162776791822012831256002857053718944942616571623938778257954439237046907924652983558270164388540902887818731264941796833325269034800184228008458149430846917440188259676817243012973184215690890338775870166111716257637550588292810259404419935549497697284271386609377085931399052946658673567012433634590013253578645410045422880199640575658457789549781593883051740046729342927777994935184012970091761533621017948662254506265993378719243580535540476693284426142507570086578434878218487396344302237463805725255332122564809947670787875408835880346043102209499123368835992114097733123361136334002815497503709567535175866466920881548946718065167989561164516789839365761229540826234292340773433216353385171142446812530060137174195394641112158515282563547492448038503971866860787186693390550641761469779301348678812992958292121766334460468864462395797607720460625204947706752337294417153272942840513586559426535711308510709041369279112746524606822322235722349529418036419002563007635437491199895226086615040168860086447220513884378801116474826905646606165965551262352817761121657580840825971663679035929802613786338390358005444135511795733436459881823088439323801053249873326153506070018207311185191818922628548234321204521276767591886087545657083489607875827885048737430940212445212471710383937868977906906825771742845213412287848670730846748893136643542898161395621934071508050197391531085553767733368807741301129901288339923026597200440863911604694353249807582201466037937364160587519695181217121470394230222441792103635674147412506327630930027242843809538151743517931975944338270878770140567277224483609336580153867051726106767632726527670336646181856819077187505011714535743046934789936605025679803600217878826306516191361722765342141147685915120788895187971943960310508882418472414908847202202217109859636498994011637061687029865489736862947253849754526937187959856710989379281856378224816942993965341971870567022158634443392840598825281721158276733335238208925566159979224356607054498138328291235804046400726116689181283004151398711104252758842467748495406671249226919889036005960890344353053170130998339192133703938898346635287209572551776228041805222637537086605066099922370195279767240838751945237981869957898924032033059485576061621484285705698071848642261677785242924019026025916501985483191596366139198003974887295587254832827930592276135881378867860025901122557912996369086368685911447576568622236775538993595637863430770899356386431655095574623559313256961774445867105096565482689661611606867195620449731397021655542364206630474089362387098613259591910044869155027275437752875987953900413383506337383352406215626298421206735564094180132280890301784834163984637155418128123661593628583801943522505582247213047650993568076787359863364821637975728067959126861976043774427986882765812910567572766895529225892542076398337744143338351144448517858903189024020760673588749026077779739536999984789410617177077442234668572436942691215993373138466225856492009585920595861869002203905051655167590425675892102974165927249900057882058469507766566339506810370977477806986807480727962151086068035478062652841919988334565488494742675351772949607050945874819841738604643151889781714647769399783849349113956065817565355437558549627160966517828214481313344531379827666967723270279496601667581568162149600351964094204768250843099639314037366316001321094861794918805283178260152634980249503180139762721859928953476785319144090260266345028924935787606743741787524321574803643532388578077530810784231904224108874951768635767751804266051885475537366703595451587624821026131039131492245873799959345084965318230253838482738610501906347538703739380302048913379625187966037165830064065265520908443202512850189471416801331652260595828789825203519897336477798390256134958033013067269666110615217272854711925032331321321656790223310654598717590885626694611010823370045756544262715497476455983810453332933431471750728044743604044097690423094054539100241254135304369366950998099817315106579141784219565533689604141209517277095043608482095575363433526609944268401941371063101466783118648200730458314088854164867360784134104442888392580388663078611895390099433073368869625703547351648200750576946689252015239978509156273940563993228811986381415393143872259357854214432512471532490989629001319757337420088502398436299514879720426814081166386451748954826365917424105915415245406339559191389558157365416672176425937522545663648479274412649412933415621634117867191359895614207950665409626530436683194656416540593704550125509183532857167018127816496209486070649618075923182635330623925428541297427480733797884498159918785268696304455751411523209522452908715259380425654238641672819376201960967110106388331999218614660134082893751059475242597245628329410822258364078843571406850958654240300664457854922257914409621430390535328111594575263278463222853197464169111760352122880642595337771817775481478726849272058765082590529855955467445778643242445665691181638240108971755201556929034341114051848622070021564595372917599137584043130417174294550313918579946610445822239778508764729390777894550151454408070558977700478025618111140234112464838970064010887303558960556202101352397973381009092631420242319196461157068516570680100261960562972973343675782412074804727166100104869737332927948402342918030414717501021666698195959840931517607187272935030308783469990904008241996500316606357714899844503308263419439189204913493301026469792750450275855587623174475664694919238512852752752384300759014687453368305263790086213949439822372955567586656493601795414233001888842691827624455064605867932117478826202843905361903758703350658401612242241357699381008419134723968652579502909940969468856224204666994810145185324724307612534587288565527217826744249541278280883608807565975710442893686047876809666268091640036214593890305686264344703060716489086387755687335052710390522070518969466608458252537197579109139591984071457441489292537734263082063802422504315764367083525356885115877678065897262694013546115402474511999518717631165519290847172405842114958692796998301551694560370313575214965976862184466488293490905297194219406011076276692237438375567163485610761537665520995866236986754021113102690890119679290573731972713395300276146859461972590463377403746421694349441673561817511865059758999829564015751512121746646624659481995241187414864786727758244235160353140608288182398787211339037621442108830172918347604150919941566869050558483188147129197871920355184824951941776741201625495936911222032793937175655673542849283961545297513171851855933929598988195691669512709037638234555398402049589110990772426639699697337743464705586750764364899790572511476077414300455234813944488176619997225856203129083240024708451245637353969521453182640704490529609534743350142802552097012395579278808102512254010743966502846292865064187984566621294143368555102724718358662850919027702455905618256149126338797213589168976473887840513926502298359412018170197553485206644124950937957355949114006571709339793493548524293404339546443478120800206121715833390867455278799747095816647296473936585574336082219945056599217813335252503212367794590660224632194039416427183631066709988733810187382296856062635355519024219712555216055231398798535577141259099992321164146213444093192510963186544542836807476316179302438613923203710364544867802593122885738995963255059512741247967777684889263466598582810870220033389060606399354683655857658324568527815857049172871253463881006814292559835027330384612929663033916380095547555182966944241619685432510622678514124083969615725942477674031052589406988894680321000020135234732105667907079933081302419512408103711248355745599136006061224855793662355150577594203958245317497393875011359456917770913191338556760921239558352234604278421308771338417614442571918194008228804294774164845497193653995719201001369620808384341449672348654375290763056625895828325832187801390938029344223360855054842251692099349337457566426803738889668840148391495706524364502572000946045177396728724708861264749516878538760829599687361170476461162808948718499654834771434302233415443999979309754531921108121184627907287784004347026587215058613837899993140645455298194081522649377494833757927627802818068768487907191383671573779857729412527515057570041657070164735989443399931588094822963100714325480545207425485843767985731895788829834837845831373196938654174679749031421068172880721728343089741422441707338294639348046463496690764497035046324764278517938565751290564310902553351013484342244272421354185768746324361345382785599985454240518672684163239588493429209137078874663418878375014665136281161823043808908362845240274049137401334978816016538292056100568895359303770182145709919891690015028480947292307884909572625386483807674821640787305347461561761275200950962884747104053143357282342986108022286328832139381468985031267702084723810283474082853245298134722374686318578540731693080685587988463260708840120374547455507094613928900110560098243483685275190738648349573512569397096236430921785703045014147063513102533920263249683602188965756013179990068331283196776863456684139869675342983573460953278394462251220786879736381807631851521449875004795467612328868300691042727545968584574307610206225054566594070544814775501960181678943057088424933293848334128880159560273946495707659457184463401673829027041825071596200244635008266094576806369398631391286951522137612964023139343720414915792995981480256377274773406436468691715300956761691868131535056044720096131824418475283018272545480948108866982675385866422310615161419046480885194714853547397047612554529791688519423021451524225956228302324818854451370015710950377941641984260157994672749115366766735852782042542553345075466500901652448361619321778198761406379400441232008626791811686457982128411548589110352265191600565434397416093427777040022850226617569159290453549999087963430381086197056817895688448920918704793145092471705193292478214173895434767624327075533392066624354523682464350014923475261909540563091633079897277720487283833932677849100349444409482909442616178958177879534034973990660814232569870252338041681052036717070476747415789492820870605147441110868804442758892951452277169555261416060153560276901205332918047271057571619429892002504289364598849745922613805985828338806223605505444236629292689565487895356301456655182236980470030814501261978446848048200468886841588666014251256506701475848239453962482795460040865902663227987857056631380284166699123928323092013550531336339561237650670235773144214377593666187362571799379786653208238064212369278181465692984590166332958544446394065921130504590944121656196223404243636699640647094680163025203895474527708100582340157990396853474906742217201699876781791165281935874967800155572223105749981571002659943572150679208629053169546061519134372407326500165975643973548085436583102938168735329336837287042078388419065008416387471823604320941961470004037023824966141929065714899105009011406782857263305572963499716098757381130975974279777667164925356880442029609731363365060340350271063858157638942121784323002865951643450424563147542631834992783125152768625180053868957294297136205937135050502060691090212141969871175850618643873864294145534971440211963538551831702900800299072387627844300814484690291823817763333965578447124270846731850942777539319872965640721283065279347942671778591794765121461637057806390867910549848063746314498973528822330306439826457605623533291652466650578942204960587101598406927643824988007485399631781632537335189839065902789605726829381449116968728546053951303432286776223370168394959970294296476557557402768876682561188471505761387071166832976215471416360144911782762808141369694807681594127952893748896869300005571513330816016275885094597191777399028618367051138947076216030604341790916428592708654789265200440053400617054889336690419344264834326472953829004313259332837932991184133883737444867349954087912501434012712335960867126043694821282464100454338488612083433854775927686819784992498294021032836671775986861411854952784598305216957083165661742367297384113067785977620875772703679650781895858559788680422453354897301040637905273110648769652057476831924005115012965818367812778049000237254723898479923844134152582990228952742248813382606522883512361821586609940192964157433602881924259202530456594698520938379213203555321078461352167104513477624002504420796724130212415617340699903167694904768178374473505309184592907403337914307647062553645888813949756659351697248344890635596206350970660075042664245228197414239472811987591346212735364894227742326055330793937661195193162499174883513437219610140160508645149733372224036785237457459004765451272296990389371864115352738071259243188400864962357202178787364345156536490744134123758135580674769416356963202590854372235601397851418837998887438545987868091259249586577246077565383536192647031625572764372057630707519621317071396934026288921159430215800494176946026146724594119158205524335397074123489531034532104836184801613903222988090591729182695855093573589132643203532581052080964248490062049772824288770405965881938664088341398313966001153049475759657257002157012738889357780952811567479966200315936343944014543126730710970500260862885083661558532926501393797063632290094703166914486058187867537940196965915200696410603007118555283708622129954289201272870027846000416729506363584923704609945611894400693225199682665690026256846883342960572266218396622292196496304332515522568862222670762093091691816441006559995765200102305073363783686760370601428563883360600674421470165988908777733394903074437328634039006524581341661682973972984845889560787086631248982965140854718389977564362445819917720150443126845940630746402780897149561922351994486897958664884611339861217068499362625336345285205728753914267344052423320141682834695760978944497458743005855246404620562706029665402509672841903879409634225202699062664942715797790757310789310333783595146493525462674453494967481248281465183655433883669028190312965018321917918121332329696868753010483982589124632598298437272462428308539878056333543839839348403997101068049141737955149359608523871707589569242209370974270564174588642535910911382268920051995629490344219436518565016724242375805139848078259843857424004663170914740310300014817478554793936436407702907540258260113796837143537070616795936092910294045025216857880455133585305907719315327424671232819386204655837352707346270792778988989305656036199048056002487148777747596106343659785530782469403405373942289691269046980692157525859883854973086503094799842544709258959919116875936747232903462863644527579896899003511493158414246175716198044821329130686618058455035305408520708747192787799866543948601080439833131402739703422007946353609768273594657497434636976089673372164786087119990713863800462165192830990842727859662966160340000894391429937407792428699765624502417817663112175847113597440565562242114747190756798533630479044620382792369758318870982540501794704284788595304640536315249056062540919973975452113253759131125824895208254685985131812042855837045863931339993923812090569586141936356678661974403833726124004753076860920338053898703799481258775747858928434677768734121191788114160093992151855316485181436853013157130413829182082416771765682173395064017638368332827520776662782990921240708150170243369248236592721350379255497975263456668009729002996088823616613377304847891152357785217907923204279771882349546471191505177331063638137706143088428651622893045275450813029514615421936180530368400014889888151158804088920716641300402102331636747353381085857478112046545384730006796772351597636060111130099363347377923254543139311074790215851022603526168874320439547732162195907397158928352453673358413524797176735645185268792487438681712788061398181410930133796465746664094716360768062314848750058511486793272202262299336623785738266253570528002629146990457601969783096168354319620891503149677959958413671993335731212649632237013629300388663038541697852839264344944444487187279826728382079392771709498640562867429225129626671796688125428949856801115258720431388032054770229377213414165855973406205675656063485126671669167623164081024836383824245994335820111675698324516300199598400230874539507587897174097528609019434740387009173957202568065020164970389957681598190203776873722052544805487454180825952659011026029488827053619281854397773782255922861365692116210814180008059528873422883549595902443996764279350768001779572663243727389129785346741853036189380823613386291284663536875169916318596909626156292370140223041645847365681497609289491461944629625812495475291966635278604273718318170050937720874745308707995182052338196453922490028519187425501548104333335079118150425026887817073978235247156182863068412996597641134686827821303332110721235794844780101455517700054862778861847911459697832114738642710225396692047827524549924545433305782112713771653939883657234927631895200206036135078406840153409563586697703527343982520413715664703980600666542020168777061453596235802254475463171523599762167955848374844069894285255115173384720053156022527801061296757427726654632907252971375099496629085986726468263387839216618406309614061410895063269847725317487657064878794689299828456488031843045287374108020155559521653517910902884325268901242933956942896356547058971298491232628211135766381020040905723445937144010634636899223888384957973987527167539414953030695891121377152596267954188369106724828990878279538137856577597031118125989012717304912635513279883225680041674456107038146568388174113576304950084675789856725983473186982963047131637193913852414035763531468783313880369415846840174611723136044156065361040973531578036785381157599502837163557131363111601045275525142212331194217494366448023139607678861621642201123745855263338958859313284521558757365715720619726745797332826614091077698239439247404928834855023600486019355910818859614617544689693189240579625992297792720694648695577802089852013393873682694878331667365771338258229437829762237003902428501753179834170559990343513763976732001507667950944228283807989457617616024507576654980695652829814417591961640995286773743837811197723543197893874264204364672234903454340151753352982756674626493786335612565192715625446704051896947398375375662650539388708470574005496125749452371028612518498404345530071332781243741784028206497273007664322389350705945667860262010370951677599095897079632091886879822938587017108525004414923847869504757227519803014984707926409670336078619717624423290757286560026479456235193511666240752371931925078164263884445474323813555078872781550310463215964735651112992725891532770537100034158423227616623414211802092425578746197547069856380923662672946435424652981581312032018078594030056606826443556783064611472737931257580335888156261279955836160117938410160154870027898427646521570296987262033672169336735328404601601997164764571973351465191282466330799747204237153088247293541382645551023349153345127996114249279942435180035664136097281321439703708731529122111140260389242306761561975425541730125171053352852021766533540883547431193078681275833018080668889237776794965973084475438360108342918965923501606388642393745191418025033835393278079637053753353036436049737291078501869686022675455991559586153707152481321502674845979743072459036036854227439040983033504083694877253130192317922998334256836898663912973339249192146648203261736064617294485062494023420571195022161068710915189891095023681987511571269162649380337675921060174510090114323540096276749575473942168188103483954815380200834705816461433855404023190791543786448691762327266611004065639862563390736837695961017121091038508921460484709374116164661849759945062224679840442297547238847219033014780129744602959102294543561036420216123422969675455849401434150431808396293646673722799639083572968389334137133800435609223739550184590297801224653873334088637307063469334654532595347339021885475277586029311717672549589158270602995345542954297957772271364309835714365432953327637412735024204201556246732427109257600740648657754632793166447350028151219709436899406302336607125167082810071878333355347990932027490141947758940528854288662940709518613420788290940716357982379288420844806922289355235816491756057295384077088546846649926556067417946511389494461855059354774268900188819923258474762937721657120334047153103564688765958713594253906256957629784883950668494808399846551426152154878086936536311764736073185658544165411305191842232878749308548542197773147276195473621757244970485467766607660476019209879479218049445147573683856684116386545356450938666414350877687716956320825365228319657188587638377816535384760794316554255592779393959202170726506198616424441040408840863644807809230480637667790628901588998578404259276457926306558689924625519724859691686099215653304155788368029264249196651360438418795144128281112459143648909888068953920196364491617068881210609250131228254278723337455923671842968557702966432242823314322633054302190432906435799194333295432557911238815249059074538739159951378310895533595382728017626720447608257264219585249894896119520762308275851560553721973264504129410717064961365882023048133014171071041298619471935331925763020435418325897497840148112936489428268752997324146014812374311054390894480766254914005640482354786110260636177447954405832658689845462168881729848702490983054767495524662317058396464001524385490419675499017538391359273946098933399018387845615693482691338465601468959175336606196763811513640501446105977215191178873434525645917323727237199678083575122073010726063059262853486395270166988647657809661345065338063169907405759286303821617143546182661315056252707041599305895965898489777599481324218619558751811990561743801272013016929233592698912084568431969713512763208292407615600567469485380539302366160286552575355220744006385661486234627033055101609539396984324205656702619143222993444617051427731027042933069308089931507611110056663414719836760440847331711735333685566553145226825917601092844976709250870544975336236242884405270475505900907998443955526449451006560208858608932333763868036204387202591374273484718450761102736944805810698270763536198464437832563960626773219988738074443435349124726455421647037440385903983254432923583530239909275632966916885092832040216867796168097223987656571156300249336205379340631616973526288751886300837929719903281640190366232678711233775332943340806483873538466128549754964230072685133948227166603652919797342090935249837813389487573924925482011809405054466209845593538913097345788432390116764826096302034029743859141686087105117338322611995932501344996768337048376754263356315062828967358645302599413908097810518652548505127404698935248330157916058379955200832351767642728156827555054739758504324688916245222915057349188326214017697162897455899570928215778225977798203933377211959208055565641646706923847012060709875679693695210100854024356875160340792875182789393137088669878102902535992652773193114287502559915633107365240990314980305298777000958408680357131664961994587561598490141265163143839333697293650929679771509796599789448444251058669080227724631589490101458466391488536124504016958333004390851834984527393582991093252148582105990978714423454021550891687757124281295777721830050145368284763022102132805630035504695870279038650478120053106054477105652771876822753100000683958651445346750963493324898077789325142721842267218433613205680937671111758305892285317778627673850318433799720677477495739105275913705808965746088730473100190800162608070572287635589528914268109427411409946027984779029259516696614723114396135628857647488148205870558005571898060359766663851223422124467626290982345008249349819173907792554554848984892716956623207958410651360695312891995643058613792568614890865777866166762916637029441434626270716192627416816936704925959055048892073507017036472011322867551674653813966660716181897156790659955987078490564649032875482945435779287216403708336825193079465599703909156603111267271725080577424123570126947574368441361271394927540063919229829735115562661712215940527348762462246694000975183926748731994544333478080278829001969254395666654440544153145918623801252111558545424430589530125707037981035466603982927428943465145372888345951218025378773615948163970789671208218987832166922878432272391404756942570799261917858926188676624213705331317722491173064750725745479100617911704052465098597360312438691162032815907430387927712973085182142641055666530807486500780225778022469890449432969580309668776462341666598083909299403550507902748264100786472430776930696553027710966178310419281556307822575163835493517988937917795933126924413537389074111602950539632723391264742434430823079000202881140325850415292184467787077189027555332955152797950931377671951005656315430317632431030161221420028374545618358034700299500098637829458224430910597870114210558118728240723040517837658509277415867733660556516947524741346552719965253928586543019411577376294299659959287460081319621207878616811242126889982657695818231541736543484151019106788814536045162921241867008690949419416394882753849236213574664094313051286813351260748105155032860648432058562809021386249527646190257037701610041029220796058967566459948490806336158816714482414432350819851366135395549988595724163629778568169999691261123249304084161485077459041817535598161837372915476787568260384467662741576678014419604019935226246486076041041213651549190945353335306175335743430318604497340367170187209900208929779497748416129330163123194554347923496624602262636742338526632416786855265411380163085747286654630991062805987007327443318558857667236785796228418915762240824687968557993957649756579412583829376102139105295508523957153383716920860103504144662500202597472173360455714790999316286473524844333710104757326505259418313963526230206883230804076957646953786444986601161265765664980368601047158483779301583556394498587319099493932183582526366393497547175915608528431025861318844059423316355690441726400562241076687842461784973814729916443346274929507400510442794883160036200713222196809916079147471937766155837803792854852074659748047679529898266263228187292854600197298521048402217527332973412623334848768303091223649260637647127891865265566358384197365548087087150122746353938951177325855077383052203523588874718564614105166105763426239846419073747498288765959694055695674812436142622008191087613800178459752759633688585836716008799009317701715619180632531427431951489024082912055104263253116991673786625184039661184113642488129417604186601652985639842315964362207853556980419310236793632769582903838224884308515314228523103992616059846668745707132429437803020558097039291365123006441464004471484616127187736576932278041906774968460496067135686610584553887400735314848543180268009035597816881755524648278619983468681898984051156206624904027311622542883120985626972329061633608761487339774431034173531994762456538950148311893059257354453016448151198308301652473068988064271164853811782856360239474853899674477374240091905230723671955336810546952555714587484019846723083879745490315493763499968462951277252550476525628992179490947974716534948907368106745798920671479851276057680219381093552489736727627594341921834952031165379221405153658013672093251371757421862074063192888221775299403298529048425069739904096805937517352273365616618110309078339218199104886844296285948764236858373537861840984518206985345635403611428658280587297882123626612996477056875533027629331539819036610764572539959786146089503341417590605258994866523453386202756081280406333158381770488308102276084303609234053166282269375887816161694019120253154206605378947614715389538313685602151459787152695100628577737143225687062950015697358174357944480478045910027705333702828989858522565739718786888339897152258950093868777395543091081362953242038835746332586465066515625053919494824918307579960215737136308986078504508085257822077195180647096840934866046373323952370427497025373301600954220576121466543054483523040865927327936797183787931257167533195369183300667082255767306660303345096556111167226541210884636656861712189915841692676546711195057536854560641359483343749522006764696150831339555834046259522996203782937436871652329407747044530280138567027399822256493715700491740797910000679661789957305389069183830734440018201223962518499795514567089825844701459810592046605345328472484166785650715825881296526909618105788965881771159204611279090307919098745824832146870048044051766944477085737752690729798702769137053885603400879092882438402774132763927572334824971974540474008155347499179659848087889096382786320576167419547785775670486783020497912446078045672088083970939698710063217203680145069293116068135445315579082334617411279902221936322589991495670092790341766581739842882452001220201525456738021855173926385931512421817701365178697839728278183025642434871377561516396074234475163409393567237309469645579931548170439388660234372136826717242748588935209709229381153949795757524781397774157123194009863183047444900566864746335729569679213339061060369788922274497434377432085129825539109584008890447193562366982990621036285476650995515551317544303197940654938096440646728091808922800480011785124870580291681828224914143127262422938705640696686587858685005568239708886736522724457534132598614579233371849403264013003151519921478083437600505636736607189638081325372626112149675384879465041684737979513639187607746342114768395931774850673719228571304249221280257606371078977150296876875905646958484440246802810786279886843631348044002745307016267967500025167414974106984534782852483418055636822946662970515041435741938193842350487180118402308650007702731077060803001913771112553544609866000113140306723062255417840029096260438375958884740479732698154844317128890051218771321608288934944002952258398467429422264178473401399977572375178440910159499839223661970799608446935087701538440992343536023582677501196957481408825507210264941699902699138590917606753325218520220526733289685325191811614211017443462580282997026662457662000888498129097616063595122761150105567759207113755918285328173204904904160169675672964789909761766045072034637449784716251891969548735417028304842792047636586149943574925551887970135261335825820479679068834183920043093418312949091262040479791794698736005162548069849018017183112599209106587955729431677783525394305528714276698567650355414695412124069677304221826437388340551847254430899233705168386286024964858951063316008288682215080361006905669812705372482956978806859503273050530447941263761316187769368852943544409156530411588068390934046497890246728372222495504475768095565113024846313348104835932953329971687038706509355260572564297711840307747515092360068326557440105581672868112046902657044082461177136032055620217297097181533840135816148112329042309116797746378355708401747876271828653275697694467651808099779158736955733723702627819261978192671401279262057389717025228471288438473051912926142049984054027126007885322107344882815335682798885816939931867351364179246435631785424798115864949884844799021419974732896421525122094259393216542247150900951370360897473301781639513593506196662026094196927702191119288232681651236380089057891008068307089714520517157062045639541486377371655093021881000090267220825947687837767872317292092545658046336263439746789262847374405857486541954711260162700690280160023259613309230643270841403903746996263781926060287264895563606623502345070254128541561338691060818371976771542366070892527936695778965926923459476061591475614707310482723504757380907774843535155573898213159294819649703401460218509377002729915445549114784220431804470261767446139802539169655369913221992840218436890161968269476816260347853537421245528257738556231867410915116544338765489906219489604381267160189846217402098650241186033306673043381603640920022082380203819677503103408469148112929320871426369840165035522138241260758562197157419561163967560205284780818282165668711898035672435724099525853421622771475410217551759479384480363430163005652259682245515738334243697888019451136581440366533699433478067204857051770444757747693025319195173849492689753767474131067236017340523840447041371062909341030973319023762362160939345858461299330425404493114529073158693208013385080380466489499281186356450071792242321480200183503722649071499605397151294980823689791259202426450748289158339887074785789923586234700964417277687590515081873352021923755409164968752757448721970148980990666218520300647533885885753129894085098737663321639869449776452651698172510264055216878530492507954973693879040654216091764499204301258516410708935116831965622922668596496167852881946028086482955198274804825272623213276778203582660878808224471543664288005197492326680911956431126643679396621194135133756190811235277346458560666624957432733521835193480046253264718379090972890089687175349316053385898975727758254423737245327131052718618623702557787347694921301627637735324243647715584224648460634464710972554470691816185015364515878197822860512290310227162473906285398662258510680198084934658434858372027912180675476352956479071565025081467850082787195529620207372941917713478360563059581631573605491022513799667291595956079538706505041403983274192822816643686228352413418398091956283615166371769519278995367516707064775461635032807983727055750607423831038974432995269091519908870866138986058621219600426107998230985811102767888793690602973005128839663485210296810836761610464222925361054058214727523363557005035670344829482705561740162771744194487177507717297055898647084793134936973765114898538962468786963451021207342106195525352063654106207902650052944523992465524338402334486644884673289592664154762988005199516173862678940730072848737404294352872223909778801391949671057988686656423440578403195061231412362328180649747485906161064431525186777188983215281711933275285490896982369233861215154542843143077224173937112484480912508519474247026809272283160309175156652667415580089775154949284819143594773473917582186451971086045343899974198713967447743172568967022727933991183556941318469452039097041955496910331348251785685483873640134389858742878277300708190904157453741333486905516486430601766068273914648374391713454493430258339060302042495357161493434910832523738917983982702710855903287109823832217841800029459510421219689376824137573338352758984216157916912833543817020766522401598257323482579408944305467162739985566046769318753355970319982498049298629641106748711118809184353762276004529904227125188722176731248821611573207429881970165812971655280538578191451377125147409808464121029852290956805718881148172721474111784944884629097766519326049640963140822631955328102769995060810130863193285230191454483224372383907790860373062762482105165078701147797089956611295670455795991894276257381524285824781182489810687171407925356422660241223173049336599490495202984225590136587387654633540847945862433044479278829032851891636685475429923065050825028314590687394075970140864047002239201049182100328936097771042637154864301082607365047584368940835635052874668619160044095932928357995137041719717112876776439987189222488444259543962271280992168873061704364508386947607294258104006756163123161669926833424346617343153559523427584984523039450464307118934100522463147256585399810618621135512038611541262995983469539170237888053875563653578297882602793449167388744122239107964696969648621255246600542817862072576190714219652158547669242249652295348395148034039766103583524121497193503678823969110773939942940177484147471269159327360584462265240769566781239777047505575181606986721474467497363507589420919641121938213186453148623383712464115137202901107678169529399946641489815634992990042709388464044504261235270328166103613054559944278737580089679841343375642247578610401231609205704561338082698689435059517472884776710877786606045501343330380532586335500839752053160562793596990650187702994536704179577247006929665158844740871270083617953261510636583869432027923621666832581182414683896635864208703849690716025831117371607181300389535097580767629374980286162312358324399363224092645185312366703369942884262888117176801339244835065140871976773980543874725402573053154461672853830212961511575114866131853055057828220552380053625431272639168608766207439226980456987331791421507040579826180669813516161637883287569724358869519343700439794719582357694851388127275315731601811090244188032340386219943587522163526519095643357383697369190100741270396122429407427167767719930772501672831901978579061183036906457353972162822381540393415053038809083896616270483974893036613799599813557119942998976295769135849882517565712463398048243071199956879767588982371070468243354901035332245301948013623785592832973314960674560021573711434734288668693303988129893925105205539988582831817061879719748645036766491599728431983652677937272678120758496234721787759154870920903817772885470766710746331791437037749133888699343877118146858365222204867685733450005472806378889672816732274721506183204981998450976463229069346574078019735860070267694590660637220150930631533934306281384722535740693261101158616366621304277333659294245850164098053841301608404579318610761836610471097348641712116250294428086216477501807580932394538496509964502087909792949897808491341710920786886229154369413092181140438843899203147106026833835607857651629424435734579106507762840515688478104018095221913528652930445285000463956660632239038120513476687469805943783653057493506093685507587668604820984630328985083282309723494699065558307211428496446425637091493881181855750956530779245289094154192470610801941535685243053528343171083876539051403199730626344500477633506110852797121927862518105314021771804947323783083466236264309752482568303583350431899575475522177540624174709095283785857655581143863921174556182123575125844292874182554468269885146221499994102681122323612155982065506341013363703673408320076942710203953915772254294692507435446620320846039239793886467127747118265789496223907007362644349581285702059236172174434645209897869412831457277170823379462482249491007850867774213798530615976027198870596611242531911314252691202165102319163284064708331004556537215518576860436393440602617509539113983969183777754390517850927492697274700552949766957342094630741572268844995425164754289934410320454712237924821008917922323489080087480088249691649701789724809085950236437824318778644258037864707444596623299416306665028214259514116160040399760936641345800818470774228944414347913143419102010097177387312747003188656815368556709908889100094393117721004788808865957565666772980790911412554537241102141601728163502880023769636452433048643464989332586776163233606494708416234274752652357873245242625103514895054882703714700986593444911302558178998160533582909822171236732189070093095415596714197281617852443699471785079419903732684074490152846551774387828745147648361418727648829569571311102780045124334818523131560144049867547798512553318748912181118970781097856698290356578584358177499919557019647316614410798135442946882148786536172095313079693851199470909825485366640115654298247603354016725183863787974795811967332968374111100150983597883850366312906438453769964274054050638260889769015003513948668660940547899327508737772181129111070837358927855263252085436473655786239994312323612355924843542477542406694199591890911429155800039893966780563834598047892111600030266754822468843826665512823517729343365978529004072422587868730709887714364669513796741916604687508346407709068941919529319128864932210272673369695997828733109496772486284103644225363644832952661691553560015647375143476096108200994662139895593678397282006827854597645457505366239289249898970240493644889728767156223800174838594019390107721780038331938055583803707407872332774689278701197444651860076390395696229828542891252432919989969523463601150155280945696761173682633490002118124378427550914890637575866789343519103658038323212495001304129700456665406420274971302528408331089441303394474161360262927371019310132500819775621151877215656098274386565728003127145518632849808500259466579412590725600104415475135349631591087595275865962281047833967272659850980504203974350020946454816899412552512832542126183256605180653225046614245536264737159714184862302072132562445544187463094421047853822412733863648704463737660208839910355083240029842933295605567671288742150069744754582644701793668777487990668600703703718570608639964480106513924335848258200334305269577749130285067472957662868834081277518667065077128941898180615873836216417789667683527848529036598260155183261380001189298582182521266228843625900338829352086846600531025384190309947021395653787281199257059999695233408399960328587057909997685633690062061638156851487975643270170227135565355066471506116184206588705059334572849788624327869203079615820341678479918054900143154319388927403431676711444972832278403388028143453254434434624504181702100962929331396247757792317281103158867634063082028723088675366840591531655971527046468908144030523086321296343535547605288935215879814209957478526768507548365029450022877979713420146860788983606439974635213996268107082992311327339510628646674917672511538205080912203715469556168744785543796155161612362620388690308528036916259212957739488065586275333743165290559934332107509921144614117312470451926416032085481165561333597191048280588810191134637991878297965789572847661771638463038070530963250245941602743572063698400597397781217064202484416061060024226954950775548225165126284969409738681587890557905236566478315739665690018593251522689986525708372093827980543419800136255332004567728598555250175630602233022284194387204815816138407968592479327205447792877438151658830470444762125223484719287176963501095340208231644129685108541163682023766178819365751925029019240233997724570782913176706930703985975866894292983701896489836192537242668858965758983131452765325008841128662505553484892689502536841300150540563833399097737948720006621458430168826699838190149663002013693350948767091523896282426826944966229245047399550020121166307667737229705063341752991462715389933002123682106962506012779321137609463219271179710699707225088606722067952663853337551380453512077711439745027670540838846597688408505559009601065500107407409285990886924497421529765867597209058718864605927453297272318331930959479292320044343099021315197713911829106971271034938542159208040416874561467901481916565344127873920585896270632132009755278140246365093185171322053533840778826124299214932483388748170540404765135551576670236764995986809385822342661975654165539709731320683895041152835123732329554367586451162002421526797595979898663737684291496387088485162604387166647201511361898768240948602794387270707319049298981041383792931715758940032052594114857468780671863075058680520654166187142883604531216788257844241026508673076493977212689473966739969050709380361151483520981499813257355156091295352256108965341463874191439686803160716581694472063513352641227850634051361072725231295277679630859672206756447587367354159667635021081565224913436711259920222104695959047920941200088187978270091836418501349943305512080178272167710161613440543036381417403076240116866010052935098218603260730603175226138216956943075622928039055481723066132838705908664395632179507795803087995156911038072181938029295298274652405457094270106941495183079299766461277558605336058278731243351625451082671502651331355684181226333486149922397499010473317762474702000797386928341497367033098573278820311498075349653967297475446669878317717933663117342812639782129278903037137781517681394999254575017695303966345756671613420488840177082421063859611168468246977138907222574716347206836495321532952057302399170333731933477008540264587276174505149514804557894550333497941323943137676497139309566422165528642596635260320137385343615667088963138415302840276708896135868864614700355579864208084845860468989932864019364033826574943362556303015596007912750644174597146044770611154410347818754890255116444629784371774479806836873022871306453094256818269067207502840533244700929181261334127088878442466559166012682880876833073129701169222910720729994600463533875789748538095021938025187061621929952704166550891432526553800436940667962939143146359085890150437447398485333464270494558862509277736808622548278649699665284427089376623347916609031924152369787813001444163771516219344682554098446228237880704056931192302396946962909338378690177077244192358888182136863886665938034516942668351285887419653032818222285374996950525148189454737281068994986586565706832492511445588756289220469343380053036171890229618847607835878119360605788011445755150817194662046280150048239401457951316637161423443976553760663251868826868691963835790996784087253798672799027557691492002229119311580360748242831724889665511812248109036581096464074506555460540077616919186938635761725431177090673661970204584476499660616524091400660026163826212531529485218923373674498774634456848069620988933291287848987006352590755831050986258689468436497033811152287409489194078473491409386572941141571645348733247738641460658202467756024828996660239983343278535049090184692533155298980513309518868219093272116293404954826747482252321680059341082218106058862407257200363324513801015628681351965885485855626764471595262797845937203768661158617112245806098139034150950550932461570300117982086628666476629950761213676309345315208768351069757126515529316815511740132442843213295259373136511074524808312277353637580681505902142009134641636580271366841559111609191775787543856206857017284627629650371178855230621619238718266113599318372414890028441269402193159794362049532517522875272329455374579576132748252559001143659178337205988436359958608528228037346199607882552400610341045102473446071543421441802387825317263337414983007091706661447486870871892260630057984127419881635236197910064716895644446085788402222906306259787484067017058601351400646125507303764961924906898319392616593637710345094619592961062114526267869848296823129472563137842275516704656373505578844356371275836434438678287553425437518119275360065099702928864698371861159449149310133951955519785546915939343545479994425499164957109264753156700233248725766840342009918777592901265393624428212452060785225615817253677883856316096462487476588882731664103971039129893922326541630634249850348245556638253591522233165675257954571540751518451227797284071265096505602779548922089023534161810648639382019784868602744887371283844193650143274274860242264527319299320641291948927770116929086092768340774994813628785225632007466352423054941614897748333639576912003175093223672411320773688861768557390403081339134172235970827470869303869134270313817789993704334474949422620644436168715513541497263097445124050323029965003982948768544694779803876149339821143179462709910289432178142644838345464633007464574858485925900330824650491596102930118622980664114247026826103684242108939958277629611041299507856595056412361693792960086224581350460104214921626402446346338366653868679580068219632113026387466811201012217686144885113616471773480713256949627581080224758517225250054646515817977205207752534334369040250894454747131402856842548823708883150058725442535798638393723104761747846409567372552550634190917966529130792830625739665868701687238340883251642893769259566516589847956649081531216611583417529449212642014049646123274666063157346583629817668367563276358546408645103242340248997568856636670312679128187572075166508388691020938712110991352166925273102583640687670579118561136111218942528910807961092636895717767063774356783358151173769237648671237046897476238345934041913800511533143348696077290316334413503545241755517188968320601480617343772618165604128994985802032000339295353786875809841914988551429583136040862285941484580316278736074737693104695115076856565574812992049850853556428189027908396420185632237788447280221625391413467909465546479056740603370959721844185774428180667997305629609561677327415930043247707549899015358948393522922106044869197564598652049720394816891523072543973137931356355465936327174730263931098632207877323289702081445540820309112674241839388929953904947173282273369727668226077626185461073218774698007658420551417892487113136546385431163455174253326429244403353286072746717767679920163462602434436988317844060661598426996694734322190258564353232626200889967107464839202437635631833480874508308062776313236232074969618528906357254868057975524114034606911138934949373200323030418696156622576065326010125129561725662299803744884224353841605382259980126864907927266391487958740434087443441815761460307212735387787880292672964443692240211161064041217135521089569432569662982846307025080075205681026698464025553499957905448482199550071071713185551670651372909609812357480358077289097582092303327137638508798330229297320776796844362247237227449960032185165779085286785525166686303066495962249637214390530317637611205217234253632347078989643092106996957448061315237775502005689057834889655901144601020672053153503410288710446622531589564834131362765915111542122596770326895104904669024837115703591576969360744302634846132315992843238988561438701853628268276079563390688793536423525497057833494476909053226057343419866318540800579733480106547366545281506620446175704202495624226257650802368330714170679334935580755084707652446682046522156847705671788212698465770405701757914259443189453952367777025939654794044295407867210707176345000666694025985474792891798708693339825038796610188428043499880819068530118379058997103114684486026540256286692946061758105950908306863960132472080891954481786650565766343425657241930575546047019917460598647341451005994025695485855615632357936150400091349333512303828725793669472811080739853318499999705178859699528308713415120925863627460961446076510463618558487876257888733070934231959820736423696978461944283662772077192224945309127092639638911506571104868590871489286332599484574256569311609498347983767532998841913334146356943190105467556085787649925399661798267833528498859443154773033490480597906689561294597770729628198768556270144644809288440438650935225612691108232342664650367767606834672035314034095408952835173432498337646012755859108813775038430403383576253084082957984183215402241921757004435045408756201591034540440445801872543180760138511452794063908331206802621026614462741898603581981012512803614998546625965969077867704211072422368392374601092986406588709883644846347106146430526803942072901825898796289965387954245559630828365174950828286225358797294808634646083987798867728441489044817838432809150512500731435533985788519678273790361871052529556180339052579763764198862872777649765302702877753100551962653451043140810834179611529068282417159746917693262401847790810251042533622677501167275779624592486608465688109048021673343023613315600062178175655274516264708626657752468049404632999214945712525060204512351447188428018375654189000868054621537410963165006374120211457984354628551413436887016201428118873496205569912905753437522074296687589176383882981991412517583001118431075114544224654790612380931288158164550254174672951142730538185825256199892598030172265510123592404201470216296796253910912053479544500201672640265662516030606539729226846787008900705078638753847872016164996555103809559587374891410744064871328478602207090938756618636096002967390359087670112102373503814902980769243683134566893659478632851351707648930402476347907054366256678006381262034887903974257630885405245138832557946415033211670092629147450563970172369049451572745302438035141825660749121506013544861861750430591498068663772617471768371408166197524602005406492007610769407211763427572224527816999776553922197891300558097858630505174153229549291154017636215449876378793693697954783601223871623120274908397304372330082350182880930164405973461775485116833216759755188258415692065463496812811969576434127437462621217907344199323849240104022952621499739691488889581160871210109579815105128760464420232392245621233533656082612932743718164435776644656743115717762587852590308483532791112628797591623478225124433427078616678579673939976338269998393113330390806054855568162989433633244931982373678863859822698990596058145386043336272100745128628792980088985560950999298684734252856151765349206730274688309845711474412385055762348018109346762748941930781823990920520246418642314763167130775158008019019779482383719885489031170040516914514914901680132055324860393173648738483398945611810146433039522290344222148430034608371577315895987443814592336915395368174336936804625720141517931165321425466510176071062917373620153870143424261662782649230666044952537416195460059133253908624978514737750373015268948751669831290793795366163175066184484240034538106558845363236560299140251600825302517474601076767856117769760553851043811016975410005769277440527411745662228562934565682734454704148650321297452905214709011887888397402450526621053902089019945648636026794063676411314175491689425031413805299742155020479449499491944614453076314448508216526007905081823828599331755076077627696164834514831592276586077357905342216116903952232732597501214769915317412736004675101960553057574510280092096611373836888105129181253428011350055714857144115402564294938082549354095995774827296628991373752868833003084167179833399650353667485599958572531377068803059296611756258202689118406506119400032096589289095477471421514265356894921790733378234220736588793322025308245710914466616939094031599158006943774339234739192847769906843624416986588117744242258755884750239734338867435551402510099308823138255509424967970211471948345203730191433930711466414162177980909378321013476883467060501392048097027625387499334593004542216441083107597513519558657242941911636743272306039291351828159094334921922370283409576867582481557365308987052373863590908545348740059456524592198551651097154815429677797149115752752643777555070388656926771674784610586077559961840856847075478494688357954510040940568254692571151576975144482421745900898364088127433711012994621681386824926312343546807193334344968650273970571258990786891133061977979214375169839920102377824933355810785558093800118574172997861807721367135020234431018807677671736505012737938624543076655941516661870137225647416130962963064939904460815461381168648131909416125897634438911584195810370769014950483616626546555847158900113915962460903080901870960123564947631717758125119211655676987770215196114590779706720422418442961084574295409388482728869336255523286247072701614066731311241529646849217310430226129381086000134561668348319868888749499145753270371030325407696028162630260050282118140540440019497377391881523442771607286213391134908705310056730917930123497319274937411581867619370495208126754150570473470767534491282009401005331645015545876471158592190718613318291667630935264721410906888126366828387396666973324381946054774342188394290578456081196521862720920305412521751799046906849120513653021974136805810366286922899062283160027081619902411898754654611191629655533510929415100149725317530451765064248430282540184058584434887729529013465000769817307324822106365769960310133506037483009437947194740045493647658286948677095288272049463133374237280467295004160183056271232185779276715779640643796065751186574043778390087318936568925277242589836587690094100505948056745280814581652667399678750615962351516006883681120165654091420310954150811704822340162079901161580961582543732279213750072929348686548594929008616949350933318316956981444461917724486872808470959415339108620109039219064824757132119469687937412594285234484538383216886498124665343738567713416001419964631854035480948601713882507900602331107116372196754256142875245360708193216430558668306412010832935886279350694377228633638220164088080616875227161896663825928354139603325420761833488920306145506916281150823587948959820021314216356499821540167103925699111133757573064942752630917868908985349025897583209008182530498908691557477027052173567249104801969918759212186034236161052777369601141410715352324801173877116503829536579289895280075189169811494842907331571286695291406868337109742750867782503971030700298469258642702650283798505412339784739289440993603164466687286986498767283166772566633986758781915505140401756487213095037201591241709342430329113501265534888529890808628075686919981461041675317969950242312180304613347966083415624751293661591987647679902319258537487277557276708858417335850583218871165934360437411402881432285838945115161879724926640481507153702185608874589343806265380739239257644561046629771840195784827113080510875721708193529564888562990642961763276504913318409343630807586045184937801950640348464445803157555742111611036280843448093571721793622519187472369899224452333418601981166649706278104199624492057443391267386160177513845644583849959627502158110211679801827298983627819834975347893990452245472311774421421420355186208957507261566621213147728389692264798228960877690540260222089896902105217473521304761482251610175388678180757833766035436284741306842139923753369512548821957707780567287380886269120830731164320200700996425213522140743360507444301186618474325809842840392798702804173688694093099718638056447251568543958194410991995578804211588104888099386982771886588257212680309701470558012367193206639343060387406593753674695957683231310786970247389779827335950204998942981675009613793887803276934826899640804541272150936487474131178382011622588876905149435176672259812323699545659908090638359456834432767256902212207607020965004239177483042049013352525307201850255323408994251276700710398444060784103401882409989570070075614584150406560604378199713871286977090256864454124491999178212363485645176012354331546630585340102152223470496719168625356666417148806874636101279228004313240064310686988808782685006502466579229571568543122747982776480042390342023195628733760921230293531337157845613273924733709150900714055099503118913230752429562681226930278229993285907741047705163566112338913792027485897412497838327389475690294985932859716041837945719352618218287598678088277767431519425063608347574130767823050125529109557666519740964708155290871675143662472323831502675044692343246018081386280787801131811496553426171060130700830515764867950215979311442065782403035959120774555469067389204037227083042219822328582236688607811878886774496880403271455037240859377314943158932947503217891765602231172039088820434171740227513446283799131460211282624705793349494152700621851796791616626414281051797197252979589946240335401938495735887205068782605920257568397625409999327363704518857486662485922027204803148196485317455986720838094186610019275575738929841125459567303727727415532230421045726142424517584431423536249958054883908149984543545150196153399490153653216647989927021914229067411491632216537205755932241925241380643645880268090865730911763124007957102910913093891834500415591281515825321527402889163044968685559743335837663791007487117820853601014970710159219873909842167033386512939075501725700349986483921307638879824610736835048207059895956339212996702861498138248147354286190720948370265598894597695113812083039089149597264126610660892987119828103201011360705389530513613259418378727330937465170205043546000376869530130118241234493542226721707484088107783598941828398856575830687940991185869985490152439305179694791122982453263787379515257033075668497105689203072180548954490348628153196185871022317599426257090327255243774780929864689293300000916199265168148216531078466268220179183549748453883563444816798149929498104091649062961560347400506758281323470296602854283960564503354017455798381433799613375845803564922642248978464103374031261043816526700291716513325158905077496799438728527117264684548759542884500570127177637874860423599361730373460184749706594975983684546649461326510123074604653998689587290210267861183008068786398258780575680896960564725787771330415813927238160560471939395387324146605490998372839256685295816144526145735983255478290576842625671377776786260616304985157831116820302896408975411371993331195313184473229026966787554236250940012341096698693111080309492279740066938191152317230738540189062364574825516071068362456658582398888200028845790263707151186219503995486359704114346840808205944065494519926244142293111593470668380704281392096380533373488244726546766168228477915638211769859271278943692186711810126748695571651760021073343209261118456332311501244816920179019730695597297094791147977007827723252123811614932760120139265735285301929439271718245844270236726053690822098771140264804595018431181197916339436328565422092048512584071087379718302410129145551006947468161214750466461258759960963992728960098303015022311380056835612771578165834814998818336509354306279697231875563690555823490446019174266430184922877447877180644779037886423900362362203599564674432296146538181285080344414124986413655569975150520341954960974042582425337822337379192071880024735307553136485267730538919784949676990778541136699180303876212544663248303476569256741334253657612817137747245679728012946051324899801687459288607756205671129010860071823237755570672518040599392022547231193056301815205165641814317176556009137668902412303497365155428125355672511494108118570476528460924075568054285762903210157616073692811580071562961157194807427221398511813914607678330819074787502198902896916513566399609161592436438990671101619885486389532964490866563023668321739273986750608437575091792547319253960251815497572124746810688848627559104443691419561362518936983253498473798033150350423226206755266463610977975872257049567231217631532112128507373030427753056365766880626469096625786021283461321291937441457388321747226652986985906160688503312896412829853037682024746045717800695422558792735799187649949214647717411564040299526711894164475689256958762832968093463859195203980256387984539290555485524262487282247253742650599245410931016369133262306954491981837574554467889580302574429135002848886985371315038562116422764123985687047526130143838709264669766821410696155060801981983968749331399073691306632022538276077565640393179975667695449422648501244179134091280049069002673029763235745368998059344323606874832146396808476155145457364290227800968761246831048423771808261373845334504614957155599720386305776494835256178749402966064174099235290503794619125949779126394163745156798071523356567320148138608696981644230752199801196243148911751327289608804064730887946164468780609270866011015480576160837205308592271870266658182672431165737633815321229559013559841376740011993592048202054769911550274012560329975578061061050990520904820956292046720183573570445351375125498022970677563771360486003082085768098918666840901204853489465290064162613439866027379522299908095200507385162123259974474270234596325726767607337114808479680131905050534733686438742683620235121780905882620541937336623915329713518562517773871361854571904813124568422672093096379551896077004576849237341063390172763493562798762087862405563392882858569580435186297017978596613965890089089092411972965326502841835244223452796210493094319302133858703884620462291135346774602087920052102078932304188000720620579611454504540974681813305668920563410989531782531156318271384729561706744458979697968215608993618363662388628276751349174993455829950284183718180423860707346985381168233538247816570243811014455790834278565080293495950967673712725562340384330324232397775159229410010878359374109147269470542758570506056393819103252576595840300216782142267870388817678957408211011381591249518527694223218963274554437012229717119211061851780038202646455423421508285762847984326940352758932761798588156003478867966531455866372943160436974239104733990199498165685536536126683941218661685387169717764464960159685406735529059854304315915522136460777633003615423672902777663791397727926175171906846853384291754331060090484262845581116916448180818997875025122154138916391452575665196725423067198661766200592751108106722110106675947172293786598301290073333511132760556578276107414337214937195609639528065859802531930883351543314140031657471217310991181936802126446986116247979667813307501929738893436589909119332086907094569657244983047711545908379099554083617598367640887808529078627980894088584550075142642190951096729356081223921153504997884567452179530013344294461390383097013051641135148415599779094817229201663980994847118344063692179445516408179882518956677458439603967175923521454477328565316618615464082299639294653520926827933672307086541175486882921721482636423397187093981652353385335518532925058063637372071828717929141360318453586407032145458236076519452291817638458334031969413540029272915228663462817484610034204704612574153938523969685944635523113057901761700412446227253420173902794615509671728687393130722864449595799200588892558998874739000894752804333098781256061631628821811217682897705863842766890108831417860022768705196354380292212631699115344860500378483669974765237355285097494031397476291848653183447395859290527687804599153633817440596932703966373188897410031357390112348295717967797766148348987511076144164742580897383142691364161625607587552684298643289166021306374175127763564808441092667598819692052617531617183936839056743025663190511433681279634693288022704813334296120237029591269417749664281064647911448727157159219193578371946590443718556090764431066696364613650218099803324438604861040157886580870289613411445106018689663168293021704335125463944234717667125540585390921878021246739330565671923880358426316016051024503723708469790269457038420967005045631074218711745848659362604732648462578073318599841148817737057028797884583012528830680889373152472988548016439857479953042470875710477510285672016030116246976726931999508336095627661491386442725083162974305091021842281974094055340767943007617187445318956442129942536315154354195133684468680220146340260431277143142477337395300230748706581715418532548600968466625994423634413334152604775175895162280963173637489441634391784938368782732492027142776962967464024025957312089144499773574976522539478689499476035581486191827304976843180910093587708547047009571974058918701445227162894970676201631967292089476729377784131379837242189301478811133993071794322889072438444866131120989349295984013803964837948966420851032588776649410681417334910583590272882449220439104425738213511365262430530552465076150329107694720839842855073697107861895746553919134035373141194751612210134853408686978135195589232327330645491383041889903534477479600713653552218484635156418121398710735428812601028064813687325380677705667848250210567812763623211458879056057764037590751719348197418566584481803520508894084679624207961078128738352237913842246822334461202857985352179447309834739885304180701843439198957984534349113716829583845770501119253030791358979422782939861278711559603486289370158619723304983855651900448929649759079773037059790419072086313171947157968725369594832755505325121544400111270141600561187055018669427617045194605718167197917420941916720798264057383367062998899272072921912221312101995848260475832254253725999154728758380151954578292332509789247249034506649121882200252672016742543809930249576092366997040224116436938062709631943645294762231306051168313002234583078297468283546621905725760699150747511717115915804952247533383085626243931842430050761491200562989132411511003703440665425590227753440980095203386030867257688353600525994353427887685356135289045482994561884419559540861513325830635910181471517639521413189081999365732899885933257825648576911825962496306244313334963571114607555407601936092051349373055935063265132005429646469704678124683122935185285439819890792550856655024763967893511638046827257411571471156819071896854852216605378495156894383730786499452891951926681470285514454111390466447572995072730836381473702262101792053349252092264544650453371621288289451105387214116774291981706425208139792667465650893517415856157570670617573693601889347287118032140554242938312230244787898648790096223683244174555925934880353509226656403712590525347751282093959859119898624383601095204959644910486765654392373447495841075403617880739064310893615071768719192408676413802252949820772573385616752893908973632506803424686384796306862632828590390405205411021554348254930559707789317315547958749789571000338591325936216892097215857105092021364371971847686620540746831422672750297980627606943598094455529005563555004792793733023868151292901129771019474818030589581104119748528341160750252957246309774253533076626242436339184313008185032551990967579747221408763306168730469838504040015199963754497383180490823587027506514308565173916962180791191362814335365394560913294992384006130219325692861905729634526980082106999225452899163598034893037766708746271119392269418277920227424651221009982684811145426128854390275645533171470966428856799114813224713161483324398180232370890770179666785001392988310940031099241212411454384719800636754378246978938313721206339534840609363986579336778749940196132007633315106315731540610243670666705267115947350540999773315693635200482833688939795495100597253231750599131274420511949139015626971557057621933776797579490123943418187846097957704423519989838405970717092250867864842115352965112250896719095632722550943581103885028200296778678344644453218169087314759219522539202528836611508435497448570462742432495615143878190866684359239001941013893078832763829988786156852535390843385616333460755388312767330176866046809478914756140068055707979472549645054184987309988733311249729507802010735007402357415188084317895876181476398740208527648001450805847943652926816651857981435629019432208624289973988398879112341020856219879595231881402046010712279867296242615345318984140678163549304310622318337596954347237340728954175464013701541816432537120958523505987520551590561976955101768787947928999523902479518883654291419242099922378169046667898595087358836923578308546969005185373342338851828953936316476363367754387858950510953793288526868240787095390052884785997823484769436644669429787444252985821084064074215922627089626564450262960429766299105442811181382640179105173576943654858175111594481806760525259761432183526338775578830573889459450216429675824024657566288327198275473612838372665042522441032539697301456541883472603309785524839334173625137820830656204141673456702610967586154590453215278296567348610305394764319727279890144668978955139350893077234129657488916839161080828325932071550492261276437001685006374563385570061714619060282926632383149843901800370287149430446762103848355962020661844295442392006878627321907671330595034899511729253972638413165994533605921071160822523885599962345996644821783731405891914236148182941588032735216222843732282404324873631128098374782652204687611036008294360806550604926710747579750050019043837170296551681881257566053934031289913973963888817676968272492998762303905100351199853880191623324629442984014822997048912131994086071422180926505781586776882288111283314570791666255705802796255467438507637108732301795365123976374775019997103585553667310048720910668375655516329363341352067565199385285442985318072690545265399299889104361023590426242930716060463887598863618988979560461115730212289415303024107409260840671661370120356677311618697501755093372124582577976660385609208258698635004299261178831981103394174025225135770304466792228678028450298818099818828857526597336052811455266836878581658082380523752637152532046939484902584635886046569879027174652754329382595016207156409927792775521573507047301624411805878726237316816979988771627021506185635955182441117666211403601185681328009982348726687069257498760060463727881253397361598609687401924338608581981147522423279720568387751705990778101875292571569596141747179039619475599453258152747181900086992127797728856800242514229157881927922911773745556922216687431897540752412353695206172099810930372935677316196870958853659372443403867574100519024809511901192356935782725931130726570036815082872826871044279621185567349887302641360051231636959086910778021099427235879481555381348163629639238841187838799278324288358316373411441140413337833399201478612447898238198343418666392610960829228167327072393116430252994676571998258301668428760422623185188598430705644880724010227744980993466644065931132409526355530866117562082812568795732525362360830635705303368971125374658018463089873684714943034938806930041357876012686821599327673041075998277066906543404164118140529838642779468541317981299394583521453486365547332087238945289073459850047150698244641078800217672543471515110707220407211832223963955875432537978711844382400198473165729396151684765733429029111158114712579827053245739885757539993365182959031799829330008234735618722214854583147717787289320654391272011350616773689132101237517607123571560629473524352119279292484343600013806169748482656363530335058972639339891497879403072592646014540016913660256029827538628903066397764548944415460371469855991511235907845276891305161580066144543446387871718206975888760643185063946362928425856028736681773150256901573877314979970581180470800316912534601390614025511421680919189792555293403845543681623013594620859819719435415945480478196480598342758377227859224934591944027260886770120177223895520928794899248605811099637886105860999792958878175972596252583324022290837296048469054909178698905027093417962972525117732520551344576744295851775813248783272015107196596153537143169446892297310264951112879395908280160611925877936602467048511175389287698248397294951282935597910266041655657536784229761054800046604891611652917101972712515011160384802014029723847470469530982497713613216734612445195447091439564141373514238342058244465746968252467898750369515025020437554312675075706512963953915834822286153751470116005894300021628734776187957818766658010596535961173295377468841193934360803432240940123177348762240689779306205931448565088111212325546799122703523508718068993094479629984151503498332634135882372127178082497219609003845212083502486855946817099683660171076730011047531499489065551628958584301174917888310112120952850667354628578978970313760485990998189879785646381094988267560384720967953467387799524751500560577752110119238521761795393926920463377871026929674252117874153601250795604706445429217701834952687042056125431456567037989001679291163055880579391593339965831040041705127248721010061941415529063333687437921602041554191420483919059409917141745833471660378094295805495571808285437953846346403255676818532991002229924448046979479894099614700880797968737397736598285348974432247104283047424742746685034426756386732383170298261260522650990895699479734250867746519734477476281330268711115109347406281977065516565975398068750984586487137571217932942306562555885637623199835491112496367407511421710811431058256687660038379326013479890284522979118123766447671722541625465946463076128082547698734202147191155842628217734206851900183401421907553840773864341460488412515797852552088178544494000121185923223383557750655739518035210073043229532026410542436298071265653958137952201479783572376935505879538110935485610084735269542854105618232800155039148660242670995616959161617021971611053360704341748780042111416396138203517930942472811559335192497544534248151964727518149385459082429455639020402160052277497706077273290981672544989845198585674284771371841491716824408639151509072186425639470002389979359770441145454879178491444973855619703824573304829996825225316489651906324849489493607506828794887548848712086478622828111745168833547274549950428609225424775207712235891008653376140419885687034631257904285172573103576947195563938460128598200697339296563310030088076409848278356241149149440996599184807207603163468802732919653450549196117252105162690143139874786758521023320711076948826473920986976704512194600675363411176718854515471677532571364581208425320156899000411402588296660186137357826465304957075142233427889771351189987313485112848483532758645496656706199986963872692636998324075369821946203514273242034429864991896841524126429313105445689909368587296415133327476354667909592260609865528531399275584912097575298884596660980877408698071292030265783815776576272484778027870186799531537654134079770430154122598669619619139548202108141069143392130157487664831481902491635980801856558279987900827885991564295129965834382736621450457761202566180092310055200572147414308249393423925705289348003007882525962649513740061490748987300917358747682946678341838760759952936235711312735235689535687600138163214992009255185721210488774924579443462900122757878665670446514098956624336388463790947114446626621100118959145193729796727135637177909071814345336483495439044798160801684963156085592623196470441436702872387700529219681671191734395806756036739367714486252131176526570529999261516664408325768975248683027099207375491758124599260013894674691214406878176238149026666946248175496464862121513563899489824386147107685740046902438432628162115569431473372782686158318269583424062117015228167070155869664710221481761343159660465934799083157338952129533838612835484915997741305852954268613880271326893189538029096116079225744107856802658095661722518543910783478294640270927110034132608995820417938454147290096078978382817643435894709211092225287980425203656885264358819493030737269859588305449536781837991860973527354583586632030294176415806119171424114757370928639165936468496393784988761623393826523222136738026565408919390979257402694755377291735641346097103381427163541787746698493888926829173405145355039539939839879584651003226885775070624843846514131170449118064255023383436932837184408431359346554536713954473083514138898209925888094655706297833117992176893996556364556901064023257659717032374162050586738025606787530099148085684367498379813290906224091131658153868354227703536774268174405074831041137289292056273235981037450515188223881931960127215980962499880789637861236561944758633771316066690528127373582528493046637418552273182240921720693383577777255113440229199583979115642260403611163154493286350687292138349803489758847647299913366663198221698740045779764806316260511450119262598453494795742325012898024991653770489988406571520074805035519736269877215877264010319038444458317479267858266733254728114815905994081939925428057605971461762910423640701436954744559429680950260464713907404588161486234299189402934934237257290820252514860363100522608307106433738251449129612401997263581897609397788294121300529889525095317964935376088331354830677986267309403079656140862692200624820841577996285910556818488797712664316342440238703443639413189619923805517974367960675270454246495828707934141077210388972717989553535869892362949016348628033372243093939930526190492348528434105784688862540851807527609103124150705635175673839819956452259912697505006224385804694540225304790438648182221322255497427965344052392397135575493349483066797134267174372125016198540890330476229583394225193552740567641166562846099507464765152002185552938334810071676246959507312214195734642798390197229762947527218422122551013219076263437864445649543385684385721305261039840817122680460338969491554740283074708370420350225481704243996125589259743849104237440072087144471631970660940064628511517411533421246141183715283788854810026921384842677284951812159944727727363741878327350849440970517127257304118731654118842537705513548849345484382667422556991308145808786812487018988571368548279028944997700260932771686324091291887810839817542231964547355177152199489936121546777552425827790082541257529199716266478212327300910800854631958215109177880680419363422926527795686306106910269418078542307337679263737175704149426983285426720439301574947734162064989790333450653840389865512685871259869874840699308318421424476862932021162206122936517533845864484049244939431856471997312849074267608866793520369070463138440570648110201208840264785929384023810509597598504162033966282623235753955185066313465050294752078178353519528000981215517467535558300298716029809163766434857157285775461689044421788387789949927010535226702625782724057962461394484792941171135739290923367212772898425557576937819492040198137282643822583433965788570147100174442428379570886113537532879809596797227597774793154153741560301564553456248550709059445387289620116516350440906425173248268346384953419703068882630375940058062752480256046952067872966111973919235268655458810999267003910567824644388316990459997010251679393855294141964926857126329681359825932956466704530982199947884738872904517829308749617448929846408053411605557137378417749926306754857707756923093289177882958164310216654190334393006560888515341149857373646810280312884519583103505202764215725522057675996805840202093832190959875390454800813648045788963674182289029318765193451353819503533250607489396852544288687696828120282921917440023957686103641808816624466763749547772025841593882133195023549999333716052237911556084081951342156859965520191989966907181179346390978243155456087428117893607033610897910407809854892194053240574887237301253518061365497490292404808623212019159927792988653546340780328045329802365324890918224883723132656928907798053568976283891199300016588681892984058905764754503840161586907402896509356246365778464910682817582734108099775961939301565592276741321004231966170959562523342265839091051296101456370122987051755936765742116696741575446345808808987795269620980717372568200579034288739218078003468590186923096585762663697929002623633366354067517168924778833845537614835598769062556443931810179011669749402169932361088957129352841650808143573110893893192470464368591611179856422313423154045022179367639925973594747686287215376209545747638183322362374492173187859717493285206863615883595026323332168253221807998331355048437726419895732252013605244797174891997840247825597988556604207281603363590232886455059686175806553492170220022463887204790785471931881363697281052740970645552024742420647683955960766025842331441381823025638210732489190151731542814860244336061820763871357671121977846124566032585080685367467095024736055370534758805200151855674263589031684934373230963232348038666241914632605129455548579666338954512473540791840994165122297799620353587702415183547776427851821963874214419191241693928041442477153910896637121284142819863790220062533693547995624746633252079623752959182983451677490246700931446588426372965050924161855892628533363058000322904979028794258718212964018140765403294847322743392624808586541226879190584326851582670934832911222940530501197648854359536237598481099987034066195252462671283324116166653171559773699107106158754430289143365629793655016539292125888808195243607454598543453984141828575993007086554463174049079823326850001599165043366676754414424558525553850513748782763300592929261058673822930084567317467626631789773603780327797500230843115882594307145596397254466719677123393799508512599421043528236568736492851106805369720935000509445328180951257737930521373098225998379602776463128476654156587924819125377224968894935042240228042634320657059155626998021563323857822425174181431982508124371154857408408113170874496925235773932311369716602112551901521189400717199849153986471475190063373394621789836158001776967594633367773851031097305455659223808146238731880244900930212957907901254088203275526914712237946679886058552657612002684723494354316175266074950710386720080227138168217982847934934419455847921207951927760107124314849393118083928913366253335785027500936317751195840908601221533122288168964377544423570614318983555742221624342840323755871800963023800088487429608227730264050274067372460373780826320399409325818582033804158915286719724074788918500145071019106291404682843698278848587582749238122699971981904743917166904871429267893246192038485103456962536893634744392680073969140936798112148754230081116728448987833410890578390057987864533439321259102031586356167837559302976362892099277160602739986243443242857665987133483912646464878336239712962042077784053120106880970457130623835614622137206684861221037431593823924562001848978725652041283591720812950981577631705063842968178120221153714934379755590834054762283623785228840297554937594891741027422426759945267041337063257409151833279735800358364597362704860128642691805031189973622856928493142030630153979724753383200471375868769523438940053025242456473581639547474466531010050912202062654796664689380319315484269593594668170329998569313034145501535029340000126342665775907111213535554416210383115200041497199000358830436227261943749815252440588679578288281592950843319818766637936764634066224885470245612730926703690241536382144857553186767550564570024094985976779484495743850987233246230507753372974183495171008334370310303163958712178814011493272375284831864333017602133264707476005431801949441388968695741768767241992634362246449165565916091046917683864695593710306944439651888315988732380043076884645177938755708427094583320959831277333056299281271712076081344834010795632147864812369431359429194248035445741445928670476686761839313217914793583982008366415299452984712212023281814526774222338672457634847684515847183553148932967577442894309152531941251501345398312373927086942085842334408254253653754063978329568772995057151034083085957291037647669815881814909150643318478064826060785194586512697782806760656063730099977847415072133641476022821067127390641755888051613974275453533419895861456495161479392739900027285102391354744994620079589118095152358929450053866129020145513548290071628645797510047507625223453369823410768810282602845535800682399728170821225071209746875140329533100703414634262882422169325509900851405871227563242787395935035611980257385324303039061376382948831956438361237314088350854894208191047742002773730509537236106233317466320567681747679832957003623366570483513950436619440248593923151719404432682464667343334992947468431316869732015471193662473940382542671164346372175785580094284675614166761592282080428837723038456728506016950768124615266275517691577048981479005741231630310054898807807787542768913874642967342028309376169777869018181267156136016038429432148633491540702103627616334473841501670557252511732347940647619468326027602413570891852194988365687196324950801908232192141625067550221776639371202753974783745128538992363751992793909256317204633655013416953327036526094953119660711374044264137692683839036470909356633254922189390863313079776214997843937944235653150884355013070597295964898070753944059975802118854433581839825628886258937530096507853498896245819082002251024774375950084829747702841461120552519566583843107790548786107616897205358533982091880719927834258725197169926417136928377378172570520097010067338541778146055021566058585602071763428089443200897134187628169229330527771431788268821296510164903731019750892742056867739068994243196637053552308429477354762091752692198273750182653823183482548231160218133694251452356713268326481854768258914245114096602089990197352660902311931981697663698466841935648683820085689873710702293488794602741695468696013619953959810502032918995960435350127868093190958417406922720964640043372892051705464778390636991397103907168111383931752602591160528625360531622864206787623000949271106567445053006637327996582353662070651689707175156438136420281147492674794156204094545775086754079915758215449716708702903658263016795510073241716445217409652852211203521456119376502047587741953976955978850989012026374104189043908289050967361370455309242899403760619090186284105906865331334175101802506715864517235091234952937991426336496298646933420417695114175735762165206728681742090181499121763886772089509910869433595681656264356191197115648438268418523615368548853408916664825664531384975273268771923638326206401608139542032773397268311823475345648484072152363856774104707982437891699663153795013423868444789468888789566928473949540030482806758636212346631459884192249757374307015537463418114109135262498123785094929181420256493838570303758006484963248736257423100184094584836249074672497028155816622737654171348854257979898379115067190436265145857224275748128864924426299934045270951683502312078203661341164492932550273917188933133478150334243517562903299603468229791298046360681408210940784964780828927811491178082730178746234240548396365176250491483169759571180975092985873935953000999691353537871684369926378230178791407739091778339830239047393312248537306639191759227891617836169393875162029838818988787039851294450151197381900838583190304441182909471711874441768555401442071792803050919476541022688895509734482620579816967650920913184611513132773988924411587300539329453624795184218642249348876726460920563287405497837568040765682104123960827461246681928181389680854894698678805060547959768040657030245099088877585680587348788203121807464255096843884605746627371288264468171904457252886823828071081145089325704961501432103932792813409910601367464112466557929888409842773621291076106996652200045770106347141641230769092174515462680878096423721413642337875429547568924493735273513517199521040647250204010383005663372683426285078660343861620024624018866562237925345749904073258595361451117272125323820870962423563156599365127584068171716988051834526567513817363162105576621271291181952586369804696929981952037201777996614080358147885646932063157918579632230881093661793742430301652996454697383187101738983410076381251607074405873552998679031302882554521659539656871552939989509111358438915091304589956446919599797660947678350962507491535998830924282529049715091675773159459763945245266857935439558898697498567760457077517714062579791514372607053046708560844276418181689336352635108709316787920175365687750072458200988738907395954789956473221147777518781604266346646292953843084635968413600985751253758334375653912274991181172609066873156217406569731910622070121440989950050561406237318870871151673489341785895748178580109795612996328277376846196416614217081054825738774213124475200899043136455394621573178677462121614931228540232903672453605437604616372894986530084596833535008974530103151307157028159629313473999407698479102169839739748781315066572083638126746830075168113320471792428633637231412255273837112596231441092426612619218497972629674899141050654338363887000538071265827127645691371687451486961253503214009556697880646161826698572097789786985720278559013547984238471166192020328474760967613883253401791718488814911105674284919533579819682548304316845435586633710034875787029850190169960728899216132482966511728861754886119054143268367276703118013705381171882401034355913146776591215835873057507121226129171589121492287366484900615375382920022106171390540679611374357565946994964436484689250934742223900638652145145646498169992565403542795423940659759878262894165153619133181303460891355789597929107478291853035188644858731720107985766378419214647733962846458138137484812091651906260267772465306716968860296719969097788656213029636697242734125080451236106881499139326225320214919375547212223162573313746914880138745626874732841438873618881157291967885746013295668684319433695309144804169909406009978420262087012398965131840798314109421906761408673888812700717867583487573865241865842288184719055542777678612471542596634384569973668160480805088965147414062026921112512977494310358902013652382948801672300043799429725655643172637709156872979291841612886052641474462598436837230307171114129484914681964495571564989774299171021980185564697678108284783107422357195197228222272648678323205373538396658798699016206845832056685063172151743410385190368693430589518454887500357408956935507863432964666021470661610957550180504339024295421686144877498901801417511984918501689386062210059507253638839164182959417614700604726686622860010752928827286615429065511858537562454497556197148279563701681035635066140203446927487882295206602375765972449107629129892922718857580973033976112504354180490019367334946160055438424759091252247487127639989932979913620767889906771840289452016950632995722294994238640107413667728593512124355234815067964389919324280430819217617934940273948559042978102837532158989304993775909751994252234221380348998950733170867740134603980090524267521750212540401006727340461876118172534333828551712299766500484624983354829900180005379902910208879181025141127080162273278424802344826289863407837830272575531505853778543321186120144222263507615365861554056508584934547516278993086341274290159932563839012479805688507449883947345303956788821426724071487652800440007915199962241888501947782062103148041140514041160692406355447106984682466151664564615678017153276512465742679465382626041726421942289722803645309219842076257068647323113095538621489741581516984542925129547035837510552048487073792825952727543127530503842156451831434469158993278284836285700677635430515259347070048733797365754324565433261248862192990179360442417965824021352033296002924049900637974397121573373769399922996761258854831172760917500390771502273470356883794347483078576305784115713244454382113105271142486388326829896497363805161532899322587862234768404671580688695385656759979103327599974162423857854544559348740489604223084717283581621242466056501545586065512350619393206063223459168502032937040570877680680921004484258506048955045406988237867297318137783942660063226832451926730851965335757840838719132015978145241371785501205345806248507327486259362407701600450896283294389660667476442168659686506597255428655912266678843575516150310068418357243501224208871379108256652569294481779905422761980905980774419100160055984472963024667538478039867230813422938237343304504570235558226199598308817877641936934139820076053673685360559607775421113347192254082974951489825772889529384629288001967105322660145460615121636625289727823651389613655626646318627241137309771361384208505697384417473026969093543374392624896474130600138557034570368054683131095956671746798033175000958891032469246351620891223913006452314554147776217129893115164178360928631979166992103305710379392351464105435209758615313578926753563867231740631967937345856023447527719081295824260850122343992260903115652544099908789376528831609780761120344357690737718990770996641327682185133299626338170231501736691508700084593148296468845243503737913952544386569835091550617708335192617128788263410445857480448585637724515733515898208185898843831398889811825117827036447170613679989095676707326796242149335422235993604831597449059732643892957241580024290454177879402907729171429451134750332337286657862161780023103582418228132754296659326899016777721840568270977376908464255943837169715435958067149407336405203354124291038438627590062563426350544165617974521812689644926841611162963906499210169673301808704700996935773405606722082304422428365058579553379868030475649948904047363573953687044184414821571084549383523021494305677178276409517589582021665641012701331368721186181808423484290053980457636133924116265257027368535680253622145053081026673565611169310600703674568033059690562540580792078820861107385101830770960287536285746138962145650601213022816882051712499208062055612553971923358395262268458810042901705288016437672217185568193951624634283115708769981033289862779284231987231128756603877567932660113308858267018780778132696988787148177228073244713332792885789277131401955909234951998219814383107663128171611670064537854260974677814464889108974864593104772670482076607787628437572801959101306060489759274504786508412708912596638714284183340430744149107390214718560938484720824238267927147347327785992188365522555373066307705191619284241358678431854289089112101700831587348293422966130945992670015184765838634823279749892029107799264200902977136360063291988785687070987276419377968862747924448176660292996162191900851981154707410114524683376212476512411674368104158260843070057157475933801844616355116789406622237943516014743359750700481891774546015149325008823828912195313581304716144152604860469348976191939867725082434941976603342155434648707129745004465505756803256322519210417218903500971487933839606176317632343335125293388959536873053904887811069275214119364643957269212268323223977173771248294483280593507094126849641616310883097534869283256946534749755174524613209281438982769076484012533007174147831498528921444611049314784548228879975176059704372285570263239687407177791819831158708705954521981289895368160395594815055917585766525912672768722628043288564989631278594825864662124246949250196328257385975134115239028548659998284190509341144884957041113458289129886029152400904447996339073442928138209463516174520417105059313398650338735765728761553970058147819369010894817764319004061042191174990778780389505765433436636064661004645986933857451967032471896603692924528299860062732630923160464791112204922749989723563479570674786042218389340417079108804388432331190247392557278462814812352367359028215108915412096823310473161433416925949746520218770969566268036279859008751121594429166943971438904759462695732697455917302673448429214764105896512251612412322572688522170049424504296607001403874148709185725589089683511582874972065682052149440036437965206982059486923196387875317428849407914887651479815873016819851058057458893853995209689979719154434116039726053437341851896901353116202424295919853599568689707434964135965033306936845256074690298149367118366994335085087391442504536879802626150889855485421429947534027923971774992136701811272748194604690765201938803231684263982982955026656428760441572225721014916198513651384727545664285707115364472975800977219737720453907995736955942217776020386554192179598968712390398214966155314862349862467126981895458821190131746415118706556157855830468184347937712066790704647944544132051158932810613023109574952872302134079165622932851773192575791388317755562714159695032418602258887113716581677151850320563385182020732417526250790506842699201095496873963696679585606919613559944950636425718887993890218993469947544584975592414151859160686412344856424571051396355145179091952494725749626987919662012535137938672372703043742061147430648360538534045137760713649128382297169468022855288530174498987536971119985296067815060345686140354011745845420039650213513342414183956149330662156727679154898552915270917926034242053205650809575751806383776357208220975660212659367166837865475149405976835505753458588674551077544807009548715773954439550900854370083961892959638433779732306071778687022022724138369578194845710340512607361583913761872509035820633064390088096923578680723193290999832056691116863863306120203808621294529352368805738015747290353216591213075759871883453505719344789297843506636821182637689479150718613549336874340473287832815392046643249469173974736167951938390101688740648799619151487494875230652059484564446353411215040981300253750256534404687703598528112632850347541533143045532742422002065074404841006811096410898529187683196446526026315808156703356139473422031627564356598113184447704492902556150675181619822572030714426477721250174846048476576667649551945672813139292590713777057713165134820130293502762893225512741926378488773995494158918491489235341728629801797601172670116213342144062057684665290003458312144164261307699150670594640867783200697878150927296338712054978434070248240547172499276193549703146065620701387694612782846632830247364909543912554706363949491852007122555507856163760466614289814934753542283641570335270283428817734712519248609016758985957382299648895017555142539594757812489768516235684593483655619734312746240691811355527579525711625706014296073476922920498351868214044911005653631902170019771426645111772076416788401148010913442511577244462744924844832648515355369183303340545159007854484005495577682470198973462287302013943046310407375284359669365674897034297507676914909769227165479427179993383593072229376599705014367795848637351481672494569557498062775973126499839864377456849001307980674831153921174140031247483251396221634281439409772451405375502358179675844895423170747401217706528477730828722051129879803650345797699909446744120807098275890967701670301317669078484223660820730648616064003457870643811647289909768587245929226874845875137908398053335224139913494457241575246807029527422980963699528135184762655300627173427122600876190853123602189000028869682809417294995325042632557412916034417778296174179796254655078609487710460281441938294391656687963494780110634880491948419988914218337636592732069392555773533300737820158411505414358650238328627978616926354899068131356087951797156036621714975084673347626569010368828703656747969163976158428267132506193839894012504729514582930937850114253095524998910575371930051405687908367992898698087172200972918161085022366550195204739797798733957683516840075369057287447481572368468605904952814743721631873136985498787568882824367865563526256885511285651373868636817309997359846980804501085979503934977853402163593850654902830144945986626860004499558209184530394563332380297668954397665189615937766409937628014689436366956412124554816262866326960760319570167840893993660840520111566700091524743471451196958910723738157773547489002508992299280943624381925221380496745740447158938608425147740946906366855377138800333428565481983302630377744840847580800253745337446408008261407448098952576863933781964385263492729116086152369706663738113626961886680677091710551628933208694201557419019408546381591350670150497104939671019093053835096776773830566617203557017781714858145498654468070396689587763201250525382956294164739273397749674652731538217369357993456649659330735250223542297482121770774594411601300901938109904673483094826810255984011207297381573617795497093271484465064873845594196548411201104173380002748572199136758355246919262970080314233135027957313520763326993667596954596534387643242625809302704738914254042661915865456583213727678316229834439565252965834946559010957708251581321952021977670863035816887397039482490811258889742253735045915778647949940548963468984297803521066227607609021196518466414466932001573345696285559150652826267653430850846699205941607681285738726130309811258388074023141871248805996044621217623638501437668037182498804128466074095606588657577346881866343789199685378972164942668598630882981073161484307300342175721277880624831779756139761054123641264431350890023864220680266449338695079886742484808079061996453273583147128404856924294038375946584381995615131252320872328881057281183907357561393346871521416062235111919847745873982029727313150968847274304878116389595483866458313842954196107185517656504922656293256872724859750438246030762379459117892869482213365233792511834300505216902178511099259436755495727119640749448262813451423541296336579933608501402098792856299477013933516406851315281701214115200779677398812982877176188570061995286382657805511475877219340734898014037548129473183927859375227294921634538433244499889077843756574748569330319552155671657400586677043946114983405434125514853525254517373634717626621220818993384555973566996391842245313451609812195175925485286185294624251817250233374369554800917112594976218003927993841187312374090335564673477695734193386838941880880894570251050885358280871925293726063082327948689146956270644813055693237266616352657887606606969091915950277467142403556597771017576654988567668167397902802005421462827932819579355658734053838211201192869353789960086529540467767269958675513636236922426862833286753312776244757790205991627409073401834530459898981532982459898037781101798693812876966374775205332202574067332428212620839860237797706136527536846189673416551320028235066819057359714967722113689365552147804187602327031374543549412011045199857421901231402487328129956976741763477014028207289235678968728324669798027528949692613936516693883998785338959693562314747770229085488974391492637482208475764686054234627814376176414197861305622525313672415669703525519657425512491849343296154549659975421797694562552433486100823044482857064189258637699137649578395802616987485280441334653476412567085293159083297856432829063431651897509222428021248240170966521427075465732000339031369484080621855350663660287244623071338209047118283703007773635578402523485808248571478977160883215367414152628286323695681174976192386682492137504474633462782281047959224510891299502066419378942787868563731055109859085528537639617101893298516419852631868144533159198300116198834737488894280569492017075239909611071208007559958878228557487785885905330541433306992885175282197471802933345094866374690496666138725958709679707036486733181965110558691482380161791135233855789098804711745250380077451504901917946130022535781402387515240254878399510702271053339183841022502053878708951177925712024650323472681799994465485042065794833223537886252757831713559210370567622527219753081552542152921206810298054635906053954800573715561893141108117343690075906743323610270226819238013120953890389439656843669954099358654041075057224787862797596106805470954197716903569161256660809265831181289517531597388490506906801614467237989632801079791499223112105992038928260900353139766275411001392290144155081195913546397954297593027195724525190112903310592176237502367174299558747436702762210907346993592457103054716573581873090499218869381702714635892716732731047434656387473685214553440384312550618850213738656495218869718019094882027963785402058508713170772621215209450856716477168883157892929099866822333439477121302602082314303285129675142484697512455890418000515424688651377414264915129204144332064676809084888402704617281375600071361857192158309907702176320221162757189995543540306272150146963022821448839238820186399464072672364696874345310990113587145608477191934806359516997130305472280242280017940065634516696625228846835887761765987536308044724620341985043003980475851321741420962999929535321124613342634477686888542341290915293562022369659652989127932705679178648372282729934145616788201482967303248927930398449268765329363582621487478236252470271139642507304746223704518641755148049417606335315188859626535011617438271643711659206983585213883384401220520021384707194740574701592139800077628062013563677460368986831068122064433707770332367667547186897508141453542964498516989575676537006614848784618916762347380578948171772776864558686994029977997165145974293612859841192512792517468978325043656873887212121404577925771354313617428982324758020607985829612051757008727724174107067456835854758973006201786310698022233200697537091517112135949847620287022400520165596523982467611992843790146382635259113251400217190136221764280260366692492342324708647271715643888491543486157055116665208813189487926098794362471745754266965589994974236385631659465705420263145464845287350816569435680446921456496066762148805566958537926784644454863082841676235113787988790098328603321561891915345605414051449294291175403851024521892057053580148161105362991036934966807622939208978409583079256106549824948227373683718433033430252819661574902766155853541760282152052103802487426065431769701525717356947186018651698201485379649814184065765886435895494907430052094877726975569748459181739769264832281809737590031094214185066076143009600728871157164135405166770891947503753413987995853727077433844352896393070426808017330446181346027852253725041966339396686716075614160801369282754328265794388242392698877781599172170819373957534342773199195100456787490854448468124787566255047503689487940293659462741579134151680873789986972014417208075843759259758984644397866999417922998394088424056350965351224756913551719131466779078879339327562826452602982087752590101421089092424741250857944446674933940059009183615151548854615168711733034772143204756003958548393864587449540816892599470950080495793843115047308538598283292020781032147243124791735186107101542491084435538015772110267951105279107366976937489925820195515945471892004860293214576048824173018189498901359320357029838143042551540913095166547499396435486458478774752622533479243853765726054506392570101944415501146774694369220845046771844884962453281371084467946590354022849982322682095181882590038949213010452176527444193603249229249776617151346572841626798792638335629414087895114051807793085782195771591706934508433807372202108664520216538127842519775108741597677689153100800522325818456814228486523607847018534813509688640706619290168733014506543874178045699465085137724840817197070699830475175089064953333300005338335398543246097422227562372786636355941553989121549535403385980141850438930434655561687703386630870130231500610963447778058034491978953689156021052295247318116548973407076440655234697340888463047569063463637239956762531928521656510247365059026843422730978142277697370535727029952950884116982930790459981248509112326254726890598105164482815732291604866638418351831203412021724543275654042293546203743155202661395452690935284278927881550559491599542689448888672852897176640156535799043041930195289866455497486939618543784579958622586706079287354555463551802614403214495550403055878325903664114518653749602882215766827802966169125990253609677039914257721042673091087280772928167015780727337839847528258016081086818385584773095617819220942407567026912298168611597631859957121262671494402962757863035487765602607730669559744785624741980531695389764772835728674435035616294882318409194667713424352888340502067565732463302777338154191896624190410948802596760225476407980314300353454256216040861960392180719514410975171694749249188989655757354233344917988118739057252797753533358697936344358835237091367595904709578766954436169946382195327329649078547293839682040682158912115813498611811579260502284880051496445588056601585490583975015927140332356150514952224402702766255885301318538352449896222976295621406960947828358678102248349799800056982990430807691502783044015859136138552527173172203405722889755606942297485248659671811626959744806842565983111574261447075808696582222923773399130237713481816875731627599641772316074753036928568072999321434081835795076907787291019588240799428343392685055895607556123478802208561086364034690030114866452006214078387064319402038323763157737158312194496428404767594086352074338021902039583512163688714642733391101822432877043142508197027839027001106758907904738088492197307510209451920448026972196054303423836763328219966560886950678775708767631720539479886818205438745460847051509062406881414283151692323904864896678670362888553795433590748023009558330578373780289230881774511438106687728216286146830873297817952490672493112832682118629055736809327647380805338570295377300243510156863068689265049542252693310419830652139093346241126899758787696632052652780953847141036554925614468588098555469104147790124640629924800004305620393232780768162806951519354562408054179937417601049146452319004640477808626092554380489905244225970904838308805868274188090759390895822698488071511919924731686182032897298187174332871309120650435246048345413377490105350093332054486411269822944306040257831906553615066814145231957342311539591196646528226864378918484878390672435468794193376510158658765827354000754744489414843837931794332677438449398257616613926926286336735729683402359712561344141278871190770776585671961738063879175180630769836766586170814792324601078091153700788584704852994853763733953448272821654269893024079506919995523851898322183154355619072822219580152648853579358179409630632296709126099114761968982874311095379701237437234954014529905388646884465914491963570392753629794737563728888931194152415692979652100729198743454735613711756161868234198149808906529586027098889513781158679325823661711637438260014604708503091241067287824544511122790434552747647150101932449599819338565833348768575540830367902674728466062623770543763760685116353560287511167002685947406518661237180034711684620242898834586458542458490342012517401137439241162342398755330815051264417015494577675858466630015341639402676901382799265870978857603045180082969050030067158650880990394562929491066343100774230461041269106687788350407724545594318733477950476053899617410451326701515087557741501463808564958463232130810198526436464773745181228997720676785229733484792102118251162861564264201573922165994919525425993415123877984762007842069895598688457136026388349697316733092838671352291209100503330553552900307028175505406566216820297891881954001044006014498963866557894122699279355255841126727912193204900590076808537969658383069880013231203314756232483580005927077386838515504400656769093824801145489250162662422462311933283654068057212221071135298698984714610438394509122295931850207888849240262512380745844549665127365181592571942347748929515236150249073053365601613814987573599018691168981112043795794167186937486346461227854743767725894190163702594148819050472273363891414988204079818432510813675512275426526244851498648836304032933222605982148611185936484617237363748517520530997586100584342095623313709952991994742510057441774062156286853013966613067439940625525612527792002381144969926947820715980855821043174738852361186394398779040311351917530833984990107965912101068802432199813789324965588956387257926460916327941477771385075961349363341255558499076776298907960649768532259560662747696494678081618130756958374546631612553318476491298624660887626275380638776761475806316930072745118630019451605561389384350094391186369002278593357392029180336876214305931468715811152796845159709007652190487389188468659939665185311103897253256558365591099876220878097889919116170476288747266026805305259297565276445998551727303255576236357496203428931558074500031379123295991622648091986384113042433657498124159487395646531803185686614908778459676425563707444393020029601665228321366053559716175950592775476891884848134941614859534928307173575984798600640407928328807542427576108998375666328146084165261286385663759545673698025259543832922699043308670355848562364504708587790198439635257302372251941177433035611771665949361321601236743241607338773163144394219533147466555444705589279246341987181087347457973321036785789451089076108447969325792820788463152893421278424313166888721023408793703024968240972549074426966822404277988396601497188754869390604631879783829084628182555866472786146727925256599121338685902822673024739592793033655244219762328340899810779228246699083881840291542888585194452933800240500623253702396765230652694427137883971686037671763993147101955510921712519361592543118503898923116798920772492440106969893935458771450669232374384451073583723374385782743300746650893967959063350500179739367181199436324993912296515427842684342325249233082279711506306043656120783008562677692280880592996827656928701103045130340751493842155342982729410703264314084694648714656730743499006624134828232119213166597288112130863583811410238945601159903307019072442487905117345746296995488115879005898664028210654231725035675329885288884402863600540255736558541284380399382444189339576953997546732734660476289934584104567562887768894523974195679867261063595307149944822751980989792878939602962785886121557958212071292987486631010667597761117366456795381975316972783054477967045475472220364812323035423915936839936439931144831554786901402579217484058793157682532325415781789047219241238187101408406445743975034556778696611455138336284778172535511698726647756827524296334739056507230860834671353438636054236283559029311137652979426360697598761143228087214349918415536657822166540178451322637838554038695606529916978791849968622903637662965367059986724489290561367040241456176764252625386308650319603486551161341654281357889218239904934799822394028691542931118523610438354355010081797751277901398113039922036053376381247857710173096269046449551776498681385079520813042683908790935910390068445000664083132216878577707503656867772682303182834687635766535345602376069226853052299025515852318682895511972417515817577496870546634242126781932085194258267719049548200420171551107419839580179954208895962046366173249113756458747775799169967232134858011431103506406751191441808332983333418014081826533825787861506503313206527605589877756739829391188205156772738839197114203029912280687310029438948197956196743554254721456985452318451540053653945657246594759828982997063586082060575932043291932583047573043101011771572100222370186616302624936519562018109244689130033783948381753944552565238966236548204343158926682713313092038992784217149223904131687388137755530330071298462269100631453033200466574526191506006008816763381711703631073224936676783756267918199084870387528221898589375674452843192746524629315822066870655411472196597247443156067052576764667326008971112341931104380971700890830369294900690601319627619742467015080823202483646102018461395507460489243031796825952627696796793147925673966712814832335097746257678672748909750355534617440468740377842291217844087655637835995549220595661249453425318805696740677712198992283128962438157987616493885631732427651206293370203410277540225024615121616071399697944526628504194889164021071435071579608041928896593113991714728429219284170132321908795633350167410602574910237693392808955956768061103736868383418861453181808091552182783462805135003826578913467972979158381684887069977834941105729172581176869300863122238940878473773471516595177005817844348335998174840376433870963049569575754554402691792284039941538197041471338408542224658684848963690193356989438536592264238029276797633350941641577856944848489382517261023217974779474826393517557976835748602814131407001464001103508178694318203575022375630254647895964742644171446385313071416662314107476379839717578520337778894794254150931066172540670720521127702955409533981139572927078990015590161675065866286298048785675175177322517726071353573068550417657537287569801573218910537478336649428140971945527201234461914226152648577958219623665144690845560095351248125616291313644493268121592856398031751006274552164152046649325407963268983200483706814929416195156079416595007333288708410094710671670689579126989747670246937100645609924998547468625257304039986141564393567678515589965124914032749451192078906275700962835060577148365773313415261154491396541415771406479865847647777321378292701291770062739841838225302835644711752086236291385440276170996807153104051971156758653679931236141384701896498348583071944934320066240715858066007741475932136380043169421648630436305548496616301074710438788626673424027171103848707782222188647219550730242739728393224007215693328810639845220440149409900072174812006726334876308920091662381603628365100617936943806196134017598133320997081170139362309090364007702924597327809284096469247315883418709198737431009204372689056697119199093354587295268964404228458732472872108534940467122210727540920159216708700963513393409848934098411757869190820272718264267470059162002619952177072226316742895245377955144601774842057960606823215823200557858478302109817607685416638364462021566206191423765727498115859021588660790141677124030967020649383888817053257772716768691207371477474128496475983336439733912031551280871050563934789410001485144898444740190748095719446347615706039368027036720434724950860532012824822892057222060833759712395016343509831203262329412814687502378830029554496900245994297210110250775257211926638473720742050497439062570741500659690603713929045760688725736575066962994006387643258462485139004476709902667764814148811811454560383516118166990275191137640629408243718047642111770111403880912129502198541610198672827637801865600246838391586591108334435544832450978439092642305649335785780814183309181185554072437025332826603250449905132731300322515373493810134672150696185774147558290473332716898284976824032542635051429949216561810989201582225796087625763527505036284955272600883899563056585338605337085266357869975066360199781230899716514365293671605037533470798251952504878053228040005710877885519023811172204977238193656097955035082272727834093615669086751920253436888107322886908004240514728458892455731487139560848888119382494942849720192496397238084351358420773854983357663264825215504590103734728807642239734570215486919356713340215456141789683863134248724604176960547873528380844405125126563581697503038531833353176466148507534686597811737233030256814886234598888868899876175876642025045043833324628472345621842870307966747413953323479617415214646931013374786893068824622495755861253744625752209409503093457075428835770050711523862645659040144342850072487437846254358191224369960627060352665420559790077996184910347855646690311784399862357814100100323668851514878025156699255241574472098946601711568099333128311296571322988336020710837107135456263179578031471424402631660164267027621377560017213411602939485510219324267251278998056809613825207385180047546741584324687017514523569326084031167574201063449720346413686233174440543756968320339121797594692107750124044887462034464726682482975836983538906940346135183511736605231750031994359858557087437491632571295199320794608668320024070791365190701936775497043396482748080306603905361260318840730768459549800805339301907350576194443762899159374199126569555671823543318205577398309988457849642894519271374866332887592536832063348102280030572175815722565207014256222107220304219888175428822173618016306229786553639233793212277931612448041120564140854417512418327788416300791049023447065580565458715844820872812867057531166463174324725863766362581548568878511195950726609601479178341537091810639667899797493859161181288910836739427432854656730871026108114205871263107795480077835105137744369402482316924487804119478347541706289203237327385956253009046465703983082442240541117902205690675847178311646641884906721066901809148519836138134572470983981424481804845053320531364243329304302340972586513080617878967949089670215784468970024675067289932652495795510641049648013429169311288774640519035211541969049982278175930213374847619669109378406876430648880419517158455300245448346054908153781021723800808908996581855138645585607558896606644740437829507595745234136101680964419545705255733419859926666916758450128895671041148202635636997745969898264991594218695311763042913051953287995541806163734011953338874510461142432417788023153088813868984728221701876058072250858075705669967425508821986644132526694733422013711227337369038264438854475504046362978771764442083188628574184748384073650802310446399158739348171521682862079613384539648329115405655617023940883172675175982168989222555609176599299307685250292822926347875092626733662189652907347095547769379394511632221708771252867896257041710306877813552823984330526848455408440581675135023652141996435105456661593609732823127317286466701874787196603415666290745335395607656349841605242469806618365172940543220765667503216778310502414035389004792167508117715963191984330845960283106449125620016790668948984483724386803036142706597150519761255291513521520765951038171925773337132086682743718579245065807746151431654105798215339661087709649944982065986721350786847921832940741985747881112478906844428861837896432533559849873110123552566141356018235171343716948304955763020982382035725365771780901484685003200306151302103925202530091688655674916547409078278917832585021514693734759043711885007747840723502897200002870913563473159358154157286970156551399641746738872048186046314637489075232735545820609452931351260910142813223251581349332641867398430331637662319109844759755926463395725534927390651068478696846633730390600352095718573586860285456127386019690043671735189166599151955923282675272108455362088917069668790381800435084991589476358532446901137477699706513977790270458155604807918327402194607729299276876951110296434341282768289207817775389031931621476589318951811178689355606273624950146863742825580497741439477885058925589863982223636442039344078326861257207945883370868841668333168101414581841215922347013105699334745970485782896707556034790680978135455435772150455798333751877075619947327306148072658692107098661899876816964598853773571536769901263443821837060449186500961484533634098241900126888742438899411068911558357579968540850208017654019591200452570098651184144825915953389893908347862766475901443917165395566889528769619470034619239680420371642254781304729599287885318874764122085021852693985791669867526598597416016402137747829764760087750331376762186470050837736286385049616427800059605569945724619918440541619347810009078672845440134812729726549195599456107939230350271115663919117765679370087992140910245315127906113658554154449424326583232640476782875355690317737620030675259935593852452496827560870733358754046448558864348012116707297283654846504831558452644747186491982619934759506700087462335070343743151497001984155781478490954320596579760459258499406381880763808536981752914847459633687936523379696710611803582360988106492825257063118528275075446210322557545979616133935917201749505625980827737089417606360673469013781111147616366026316014168773649993555416452393123955554246009740539810535473848619220690720123376667847599067919334722906136098477514254876452267354511187722701085071300252486529001344597018759457648921017939458294159037380911638888167981744908668636409513264319963386426212976055594478986349463178693202784919623909397065146271477078309043925459027859447248962030638278607349043211710239958880479362247551196253914002381344627735173677398319387200469167777414524126081250980548186804709441309623810119001646228035764740970557226471571744307714291872556650140108102915087484718119076784097612364404872971853041737466338958578717288062115461542441995411017312042309838167694621435710231862417648847355629304955429904118322132231348888402092036298950816498147455527787378666805963466585419248708970679887840727788404745231940491779396732521940805123403495192046922413051621448347697654602992477157261676337510833132347751657244589506998931840745015018879251445891623273164644569639085587201054744965468989811568917385453036674192842334119080601149942571891328522509208348500681257427401997450445052600085626188173855169746325629094058936792815601584117217410178325460971833105399124679776457471321646146010537266408622891775130611575725940109995194183965311504374512151857497155332995100798899205693846077153197574759308791640677426537144451952484199897622185901341414735474875510576329409371236400604084922366394559533599855316698306989496158937039097528577213409918894390550650136937851314202758882400485289489144438995172280147678872573166755758346932165596533620436710318429072981493056852294205468244282538355470802710040359446829006385655355667113620521972315439005146633749460328627920842730111080903807340209952837360718400309420268436905184937044655496026694310948605741706444408448774712095931790776266248033719484831543078611514386194502527303707464734157693664436771655373528295195860916568057535328109574565393234127670012671125659566280325398681814087197878908458034212784983426195073442237076380551298366342652079815749538512866203509157960733066892270989041865918347562602741053052339177820526306848850057727468999684235104441166743551413227526258495608742171676766965338290056888803223569040765046775197657407469184564637800147628309721442727166660961446284436518562649516411795646556960021560956857848946571088612491072491786595682245097352127097183015621211421706432083906738159596317800173736142905964506517441799715016838927502284119875699634544157751424156985851170529996071182512703370402654881514564734150910191344761812905213661437162672847395880322282984211745491811015585928615489571406425546547929030494680573601860797411348044041270300463759575520014970425893010020145858936031783053548831122514775913472437278295458505499452941973739814954307631377740556529483581281706541675799728410143643643953013770140587139868867270245049304762392251200702620980376353421184403062480894442963180333643796167260977223618731923132597761639263375725491299017875222129757776281769405387224338137275435721677259364457522325918497937330352526975551440194320392805321471651733193180789185164928120669096627634845484546746490527708114343154332163968790233146765668166908186092646680828592342055789506684371823960006963303510636329636639318191120190067362447058542242447703520120541388620381208128699176281707848403701552269135238914917918978289235353349847761675913852141379331650461991958406245090985454445074711064412476212907862547801372565721692804619152238232785031103177450748508410073954296393891637409162660425595643119412840212789025786181407136698738281591112738757213901786010614996125960171759520309815624744430728426807092067970758100205956109746810514389639683877926523567931561771737640876254241188496813724426618694509120437733510926673175666178545687603347022993135816599448624030881264850735563757028009580646984636278541589395867794143567248142539169582734647047494053446599003669362532388116835075351894991978220195576887269163887192984376196238909696982441829450208782427757121882492896018959678748677852505600945846320088642304648413920813088528465466991471389180594329271861368929948406633295105229517040104628451145934810346043296859274483881001340418742374454194235237918101633362332461354902269327053408789525325423386005728285529177830546046609258206814827664236639460991651798256611569167154289084691728772388007578702201188675922675088765786109206278095028412171228188901594215997284689062127101988257217818734557208808968857679563829730713243286967379680574471980736256558956573806222304549324328883861496407742447821456826370601491427702520584627129017818502789204049304274893763095726079838083041066301821850738879136267742136448862739978450202242873657743374938552657384720515478484876388068911949854905956229034266393999268497849003712811428140216344048666351174606097444195115754630936704919088248849660692791283883352251881316178773029667334337010073856902459032917233529048170843657723448044592455949434011403209884146736656871755830663854305335983054933199441377016699065285307987612378762727107324980848793784353209009784222163722297742399398767148652706916771302753760593497897860033072053909383200371443310471187624628582812664968271747582839283791362104744317395703071989556411258566434473698770287022321074685646725196931946881554132826359352670874106751570561564538088590070035472927889100208895305413468652016288444994209489015543039307934770980340168257725184162918591517131921186992343745991062860723710029052828653601313190773195748985072325031931537432652023205795993845844936415219786080949529197671228972452309927034544944309008870038402864611929977540180178984834601943140756819784199899214489461095471851488842199745746292339340481049158923579366290891128838303612438799557717450897440098907607712742864430282842931798929931172417244117181133550918344862136006235194766471575819216553806889738031591165788461198509691467250368755160267521872548358943236499503207254310732541126945356690679554913339475037815895549957185005663563032325842461516224053000035097627004797098283134330200681475097775392902802441378150932746097869644668420178759920933365984263078555859612383962888032654870378454590623849526035258086978375685706073692245474895079507329753185747374220004047737759877750109138691228750324636283188128940695670126154136293679284059317272386218511894715682963797388518116499217460175754279875493558926691417972238314396879862319301307722175618438846063356567022219401939403724418830443604315442081210643622870038361347403852750515681215775561374684154001214091503949280385599069669570141552701806942318302760392300057482399936181699863904270237788343751496747183365829673058383730371282926626336260064468635614173809289665621804426970151475258773715800608301624194115796325172413699955562201053990208715342745781799576791423060143801285113127678058637270260388411855317472418657057819858166429714216635881116821199072520200633865815506650969188234325150442839493212800139566978041414170271623620411740441664230160118145149097090218811585930925242520804481414259861833073373459232369376040470777500750895553620427076489649659422558669608392562774557673129249275604415887027840789102375988521678369278479540238287134399587462764470434281484058796078176173457093542206079797807321465766380621722545713062436032377748596523349552979629821587299779885675681275160230967772330269009675510314628948752266337224169393577472652054089059569060618992499657427084362033862390737767803150325317465936545862946015162082959743398630109090123925626036923606308324888350382409604440883915490918899579319047573173814698076633457414985880156798752805351456472667883873720100530494896785273927671779873048189026347625057724352881049896058939805013843252752975243401175598875343251760394408097514241527041801753145379436423120324983701248378200188584097681024847003337281555954710438154021155172330049187313473495773950056614704468830514132111419374000476238732934535645588177269293880640864588050635730976449318068905920081915132783649917153468761839322265043830881772621019958683888137217149672995773913895751306413111371584935841353247009421405831493891570880273730418636057979122962567213426565546197995271413405678991686480586047413060669601607940894365851228708047943066168159064661242643781225588174101226451545457366341027898695972627161136611495243641236257241469045520694587404601437199454937154109828150185735107689304622180758026156187450786271101378767351403910423490999342954495923036199856834485314638582141760833450954396759153171490184798087765487637231329476556913327101598974735184258288463900023266119174551964393599853359631375299943433781242860594666209679153453881517775389258774489894541576777676928314872440653689439139898991753914576614548218726351082699308748435731045264554886043274140732412659358522338884889074374785994445451309114872420059226164545070663241927136914387115853259153467001819348939108706513243259301128762162389196785772952451825851450274769785963267517749894408448178942902266119517699101443539057185098379350735431105665833765801434684743491418942684539893290944719085160755239940491756252353178208678916482045481053934015353838896274742463060938139083713854659520239721499770518551265144102240491257372425300799530882754395549927472161135894057753201112234024066005435973376923133922937336572110170134981471114964981493748784019855436099574502284021883559576129689938980321683737373587969714996413305024285395786154379343076337528007187887099618420180820630336318744234613603011794670844751928317747036710319539612591151730943546608881504570745336137059642911991636586400189208382524522682561058229700966439076160095119850287264157348159872174318806494812438395484627573692841550687372551728026727311012207773940568406250253835929122343636679079093917270502060475192968571087285405736274679786495058284083327365770907962747527020165922840860165860135370953980998432843005943586412341503906129481189957739781000648466000017823694230864344208620801882121869211542032498063379054436287199877159059432105441838702575101744943446856290551672430004704469456711537149038102795894057681981493258902464128551042199751309989863625741744993231033534049558096681820316422974305648003250226008476950330301397171879838417469814581829965223068930133050251488147158533693613332927805088182758930406448314189221817663951240948946184073591737151922612361579392485044043968657409694899876105899983300826598305246110803664269895308494789490917457319233881801477269427724485065607152909016130608113814886937436573411331674662401934489978377598840878747882128956952070706685083185700626417707166948146302100197219210820955454161224225123618774212624283457793345969237760290357382356109029090836884113902680796636451060894967305024676695030893479150292487586060592417335359393381073480689515582711055400813422730108460363806013287001143119434706355792914801300123623064905083620750742336942993265531543477755460550156520076202679138899794453419519834230641251376302311705354651896094799978947562802425651843575015368044669102005110649848703969471219338915466023781941996550269220692399434177469285156073441485762521129500532713874372728556510462314312475794261345909969266037101165267759543485684450745252184533404569215735071284040829142704083661236011063196358508327119924905196486571245274115103110908616239676106186016160873799025554081691250036558576370020800520906842579633784144336186918062898948513941819251325628934323235645924410265542953353042391655354334291727986367258635185062057690314124325965612610609148368616502222886357313247335506946382081547268709751353277335819394767919503012721011697605279138537432427568014998648052928724101187317432743413080891473821371781631761918326771140704815296301397637317554688301941900040855947709167085793153812809304761983506492454202285086473794590671056010115199476089698381068812225819980010553370283806812004426807768885270687923704847851899860044790191991672929215580194491298112648014936029633943989345751627102490784964034153501363517171156094198167139535099741292507414967224099504143687526747896001555316986950049108568256835097067076876515440027287480916137899716275252894471838141513241422192306851485220087624866352722790097061445672995280950408968455681788969682019784673269880982666946641109152573376699910213081731082730510061237957955819099651769362219510255227856614918974882591841697219837031230431972402910076948663840271686009926559158248508051058968983573530247794248491459534088814883011975488015919562904458988216281807674071887137700149580200704164499872784706229542891243032293637265129340965892804307939925168253417353988130470348133253416842030030115344124419471564961215134417284257589243216556246985461996064133739894651813402484669259608879941844592953380084141209946153427655634860291076608179506278165884700149015868622572580410457970717131809607218094572601697517354648135217539070749162925458043987790085766873477169943985464332999441196715624146656062448273470069215041805633417631684273309478558998947153694413066864396622162761887280694495054871255206361400884246787285894586347232408288764499895582478820963921729831714201744084302340651515567896070812023267591040593734675389714702205247228777211304950467028956637379920432982342047659703641010032559663775066662312257571114777654064432479216526771566065858748864413067110200617716217820164613905736329358000985972225542263090388608050957656710441476799536745930134075535414404470446140432314554474897065197188745307683106032572033057255311435333376854970122337172540687146010201491429845181831026019744084140129994037414998245148054383321131796089408442042991462813500235284814406809308063468359246148211469533072567743769924682066486177072849564784174852628256625590445233125897933494960643949333722083644483506607141877550971608760797259194092216112429204921429800069603656583505494681698111390994539403785392534458641433314183352742442722110600015980519801649995436587372238337477388611468151054556217867723624816002346682854746214394054770451092420798559942736279479598439737064740861082945668149290310657774739547158043714122850587010412923947902557108761672259651861988253299260759275134322455180078128154076863604185242789987768243369749552597738485823159366844696854085573861584730181881094065645118931273834608045927463509937256208058943847204898192509398755755198570710071492851784397025521304590194810696628091623006601983430680007307852772644742016265256050145924507823051512865112879137279366837132907937709132794240690292251149273147604705268148602440847814768717361486173512082581871282944234492669645744631013918354606089144689358948050654036145707954574458745970634722088629646415614980077625371444182051080297745727172090859407560764106728599757248539181433412607034389655294147395959388477984094061868715426346582535585581744968533365304115306864767431589576383546237740077040838119099338065515697603319813192327196048089074275880213660576479390766573629681136831326414064205809553525236944027186361273837084833784987588626804966208802052509701279136963181219264972697835624607089966736171833658561485226348029923662208241729777625646987346215185983983827237082282831086364446036662602920264732922494510333506545902355404404467358255260541542527853648279485863085095353615234056977279471424287087864532071328013471879007608885876359821466185147590534393887290234634431899156839295988819702352357009163679609817815452633944583399400090994499571926653833460584251860636151872839373637840568569011854978814371752397139152238802395571837648708660415335304966283427944573151587967220282901158353979519426033653539494881012815498898317199413562188420409885340367525036293088537964417216160535040816028469723113780807336045631628714755031911469236322871490658006889904172597641290864290085534610743870918878662404361921248276974090412541092396530747032696565946069897258472775963256815352422940177161707201573701619050044744983380349141399768895268372995553574940427252442238115479853972186644541549883362920498205546513142327920033651390523601191702581942818322254333490439568586295291290442587404857039557884690697178891571081822908713739309753504513014371944689165823098410983425247677284394795033558244144195459767180821218718471225957094065352201206199158163030122102087716701989033224685123181051675727747103611692826340648831990496546656706449886380315170346999979397913424356166909562602465497837115965995554634794479585269892714556609167037836524954111826026175841031465073323533734083438513025457312848430036253683000203374338989215507708174274396188947854204369196327716370456425322759111158734390426348894713667012513788474604418409210416309314453764756424030838844618927926431340207296089523925282920760043666277949725379029099246306463366687883294066348421264031827890544288229868006851832547603151411444781213503398026290395330700298621375572065735296635041114034275600079145625052195819745648974960354179798710913671062155558193342984100676603522609568156940976815792187699857915120547580825670829155256070308301945522194318905213304123716887438708707999366912720619671013243130538681204287663648935042987628806884657947762817978965021166007127905957696449461018735251566961757731286816123410882001496257984243074698619258430010173531695291747156518374675152544526800374561539761192839030586201519816836787198133295334803357665710929066722703526638697212798466566165855604257446286933910312955992494378971384179326443498214662915461719192885098430655818848098036929805021780421104531009975481619598402360668747030217493080309683600003135238811484587126054647467351833203063022878654271685956831823104548351019808237293611325927326087578372624946603070156897952251184643397178020199554767567238166068713757329541054471968076640843361168942334943543004633397790307882208191233880316047525554127196908759852322855927410437504607497085509357073431627382443783451267206175575657058991533691872533406062980404074794659125447104971762814610840383354071946610474671928905948070470520751232270046836993533964703684213835972010456692861346446972535132236217175975739838800883303000411093807540816258414253822632359114061247556236864902528783142213833539898085369368759687259590860776904222469130634423561564859839667353941383135760961358523567637011701650469108471968649639486166734781625839870393568551312896411883423341039154221172947118115078496879483160641521172671688064567414952749598355648441108349450013940636998632522473366504757518149681566660363307726113782671624302446111115388003823107941141378935897689005200806492746404728425470406679520508391456056735188528592592416981464796893188915495177345636339001505356245974701327157056002919223001895369092457705162744025535445443647794534329234587546317082291264426345933525186232580607353721467377893304877993559701112155434499860493656878834703134781946670088219518466963780011360306651511545818594804699032444158917689736522610031154979898642186837798823896426414183309466168667365306457845831527148723967505639052955365932343187675490466241684803878888166699314434090979197810042386202011525051577195775958187299148507347519210107131760470773208476908477525814177116394940755608757353915795855641729353514071484378731632722244647101526991959777626675428953360422216699731539940864395671672932171024666945739503967857006474172320256760117316137992162685689969118316716729114282667480023408727034513934880263943373433011034840512756580433066045232377720076305116506198009504639540364020013291099380658759415467659644239877517593084373089799966068773330536305248381598675430484813530435508370839994186868281312816611581218688037700256284390622868866597729564428629204156611188205878603142842658523381752921483079981140650760187612993060787607662353531980860010157466351398649499818198027924448949541016276746820344464121692799524931896065183805293194302445141445787804745782992734578702513586498270575466338508991771216383378112277804023207577840926682446051341577820510067826761788784687668002428309229722127573983498886863817454931330117021227269006970264238832895497676311046238375249270434854019014816369262349965769118617701605101036739993522032844279544454290601890041582308106563617171249049046597714131008731715312252690534976909045407914679592881770694822695591403870289326826804481161307467257695783551083380457195827458742865584567113903174808183811687496017894704437353152213348736934069323242788666566703467427926156728265376856336520187622295846016209169695757437267732729149547543852282383171344132081848953726786273392458894009761509429476857763319787411855737114637969220338671867515598807670621663242393756569287872122378834110044275883198906146249172229622958145612436373004751346111567022177708581623724346783767724201878822757925153366533247184197517817638075303144408657986214758316973158658615664906994205247269904474562322782305822966552194514946326312084244184163888969500823814541723484042100350949288936160160733361122348473058391827986781548486112538087169530750528962498051683600240025833687514312262338156678380581729250068724314584841380047425971211523215026827501642084034686441217982842657454379064658642162510626568696634100349859032925239586632629476476307055122390725581982962023137284158230431661111925964468786212180952118654238363047604337542108710005741651420238051784594526095612976437043176227027380900259764697052768182416026657555130619169632915908996853936768976730289711330328196577661270823707889782558337120611391982836877396810232861371871345069943740780434144175148886219135106564090707663954596931989217344710620724660007298831465559459859879018260374190546050020438639812763714631942500603649090720741173937738543020601038178052513271538592623851827491013333591848155813873953599038368971056296370620898388358296960668130916474219062481564313973619054750379142158204732244315272785326358066547292763077106590602553345442907330313848626885315099177653937988558015903775054324165891262620486497112079596913458771785007132058272803797095612035864754292877397482396283478452814625914649029061213021764110858808393508641910208791720808447091115389190217149657373563848491912174732889794479973609104411489008163138878310021918932498371601011438605609431482911066362418232336058550942879511926316520062406949903120493519441169496555271458748741085678915092971818906116721121132008892113947927485672957568489397742476520826499037040813764905757218672804474870596305412239929179410867780061799272178446843116400403492273150193910246909077873431570621885601011170994421252158333188628881150499463214946173249713723499349149924335036273512741403084592314464857302129379529523288813418110226813959097813108812339953324389803338153041791135726622704651049604436190079766068385249750398711865350890695016351992741545428299106673207085464794579708490374020734431465041725324813388324110977477710299528958767045487555731116384722729781684817598291326043320626793068924044397357401499378509792626692634325272204888822530446780066854302016794565470085222711082905764681288016337393918431856521926165364978966887724051012112924457283102529348853407816632435591859420380487733673543645441270577415127238000273762646891456418959865697583969397166304914447951600021728290268338269568987545971876017567486962944478209107473706544172990450186672964126923887349496269380047079021133737228025630424139743392211170433048901634438558571451431704910796589206456445802575147475551707073443376733236621686346418545990912060388809967389034412487074595765140483743669255240379414289817833909942205924917928264188217338799595878438704837380338880728171359393339591708939490593720120051229442227051638231265812870351877654158957980049293105215046058277278851977634640894733901039544254679902278399494879770759725049653315338575321947643368113064942627332978186136031643678285988721979246121606095743342668110578068980890596814126158360167643089429154308816978037331095360488006576764083470713395470062999717251157415648625619346386401539755690807145928319150659861932713266677421293884944406992080466261719977651214941530029214326938171034540037939147711870611012698578461469695893542104969092823594469022754043255280852481171785399790754912977625776425367607299367078753627954115953162319145464553632964029135228073993567926806332902079892605288944791823639167278114299123333952959800769729162443166958126539494726100774859329651958234516501588331485404469598739789231958391588112349151082696382214217445655773757384447313368748802940407230196267867466292529796772119544739182677036511173991010793316407976078553788959194708969161830829700638259363239964187900398501148489839812424183035002252621428694443106301315614442684952379553394218381246997606402874903061387226132332341944686571411151304164864949548790268602822311052379621728818780838065942486255569995368964889942483181874454581110070558406356650945527126751708728841838392746875744991718069612146941105183938061032096117909503593143579476589909217969071320602525129439020629777690037816932631242591583853314237395805047832951129081265825458443682633831430253298388960831655381765905597878154536795956458315145711759290413625281524670440661017023100696419501899429693837148569917621658994864792319345380866353348363731322071567921905695298091688213342896839529446458923954247781408072850023355590927199786676880262396488626013117172178129699975729618635932536125228654348999445268009289521674502397168605711980582315540684769805148829891141488546191037859522765350775376484209201235896502006083231379172733690356871074612873031827925096400909640245592767941711540112543112812993768938813643091872957367680656806233994459013739259018117163065658189175475828064246542613783709850963150960478478844418123681937897193561160028726233445701581406129419268325303252956990356654753954973096161344183700860260006598844901610649594351415169064824767969921387919464130768029559158718697171928045384492225338323610469025695494066381937965597323636579167916357910113618255006742546170099090692207518554574828084363526822554587566269495640009084990336588012091636617243740242974489638899231668326032953961446746864908542270298344692605402204529429748014786331421138975527566762648762351609368124629356357165366635430569074095894783969672172975848675415369008845656066753512911687503169181056565118723091850916449411922016522426019382852576859167873172920108266692063160703681945463300572084860234798488796987543454718767745452674146084322509716116541658948839523641624554778425204163649939776408906727833865783081906469551144558042117092537816276620519657024049795167983133210612447048306774493521600058248420690517089801557776089744732243625796427906413429381116648235713625889763045230468224553541614562914431061479388728489874065801065985081010894195112344768042700470959918385942509264614061612159090660656073173592075940874660313431469871673246325118009269876715675253558276057673709931552994584907188929726672957464840324925693040955982025949345079166209906840502349278617006799259690255998049578720514295639512262453182784011855041969729817885564683299637086331655360873793104098230930766206814727222019311174397680324270210066539381356569505287841076350434956984994206335519660054892105477684167880902925374714423357496633911812700084094694090470775473648522800103340608034998146578196447044901179658925811236709504467089474984395915226695391055977506187295590320798809872208023685357068394999103111074557515008940366072166113352894245631016353380629504666194142143813829858323590712444102217179201356537304866597231915479313067430092303693474479822285807286322993204023141131851527230744457489631470023582038353727633102696810706946328716909496210927518628867688709600409877111652845549775603651102889097923887164497610638854010993282472755881639161212199631308521518611229048356827393807940507304624654352478231609183827410016289083359639031092058417916434548169906323429906990852739413699436970720169642602746382738112415750817457859050515407212964149658925233375872965647942483292960177546876610938682780368369519928677480651143695845413068470742083247200990526612521435863220394345586002930403554864362449301293162814352732028154296439475115497576271797174522184473495472684057855718627945289888591237592182022053748970551797705092377149600925779528320880305266078497138556311163490223886515882222419589342685256220524991448906342572420220218204487406786272438605112706704809192878415488611132940429376460549067765041510510938624586791295958035175044884049586533747061380242876372322690254184431926218294749644409877045205311541219092455597194056503894258568858884241240311149832865030591841699063339599122769172614734678878343204103474149464004405198358466050302509169466206822287325689156395007607483834315069019726021725446989790829260274836454959545079537808550499017535384664971653574746473618265159167031323065509487421345013962985810693604329514499553337633083360083274827300426052616386376905199739334123700199916245792379112019754901138293924683629918457532623059778563705153018577024935497939211260460783061517576012631388768428692577482507304702966343719275508647541599337049361304369634401472551863122268333345359578311034273228324139372512231526714453132262602687324360963364610355517381887929311150288708247747199314433771059807733097576728283017949832053892039309049615452397755012640847518820729879353686894418707330882548283493207684387634720963761066078942987701665818061402501725681695092736144728858940769291321410910566928697198271289972478963434498617803112800957528849458432455341018332764166901245833760427759638409054038519887049572022362313897309340163753056092516888348638462122652763535430581272933440403289483697263187138771355677093338237213103871985211743297373749509954887326790133039655432288139450578633680559903820653450823524793900567534291040993025136992425078359528434109842819479608276251605295145426923042220478602264879396191174517929226334102860905963995312572901786318796816733673267026738035826377079653070294204313989861519800113845461278533626564934728408204551711134073223107430840379203932540736517278011066052625701585108821237054495230894314956789462072960178081131002818557792998578300444960324409988199812194040659334541409760049914281745037309934582144395675492861775268414606896649811347477471952201897955550864335001208936942109734300180699239937244134919196686740280079299898808556183808546409922277662030793092488500297444859333732301060207805087941806365401560477278472795080070011474147920216241258200010823141086614080408353380133210507160284728542806617478966218096556025504710378756366472200711556093301324861912738005509919941269395408614214448501112486194350989014901731717087183493039924309387659031404505210881452136106678828297143809927393992096673002257855251770144455794368367135632347207058584139787114268339673169370007036500046336148322487009823963051792885128051580215602168097793556287157146731810031146382521919255128778676139088077902558737233490253179195258032545371543294273973019722538583925601391757634013215581240018309151630452152167944658124500694180107219819508325135551069263795608234215411732215248881928030213290246320653634451083502139182083425662411212692585666403354381372749847566277245215170573313083183568007598083392578751277875190460381707249984483545615825688022497882830949212578189837496339947631995186408721423512627197256286687082368536721667699965427100876431737074437034608818103517423935212913171689642818442854840866858233725071512078198272478153217761637083300361610534400783228511072524415701096152317528521762450068827156302322255881682789080593566221964990037789207932902885223183857097212090663011271957128959384684584360992451538758025648133069678980840223581809737508263315912753924690347794626832885906279613893812419687739892636945949181095013765052252561795740823552254540664998046202869290946270422231803796609226776637403117824123431760159528221531636930096939265917412615727052199463549817534042858288212815187504252188882051428407117590105589997451995762736267806445811711953764611916381775170848517827243816731634623585052323595011920095599519862663190893491998588527468837920973747780982455162912393823846141162224107715517045344969407574818447956173038823936040954148113807723028198103344046815049174129621472591705356229136437106647301744248970626654148892162187869618696826160131883411254889450844045916472270461538184132559126963237766533381887001603390049716024246637298475746170056291453575261345799364822070392028218050955703414740833758145440256922911749207110638667842284737978534553623476218737307038283066048062743704624995103304623213106823277461205593029078074161753698310788063700139017002980889756305626309376414396174978602894685627062555754867363367489073878046973029730266221586114904399139713246942990874448080832312762919892871711627033083889506372564475330611145735920219785589464375439534589685275204093546073839168451901018325209116976038422044222920107400468710257354591257335641649205763640602710264943945204526577843871446018735065054423581552521932245630456259715440336030745157075680025953709584009610578895448366565412455464369785740712642020365017100322944082592225635743463603209182300144504178835364419351685935165253259301705534880080530167539777484099969516669779287346738857030912819320351979201871915619935809868601299239080711352522704963259022841421296664062461936186387802802276742778765342115485486710207653648705645228852213061171928324533742798898146143017573645834483199004595663743461562648719812545511487986750907406522299316700002249773199497369202551697999617216476993156590857539759836961088215487693091974541707903080849587033299711045658951228142443635030951845561935802534216851487296387328329124183941006805131333546235568198471406659274538655678873653234493382939489463555429626398377266045684292000801541924569564527246963789867906446097930211864532066954621677134336435641162786753465047126700456885664648494747484128456137551104264391583612424890322553428329309363992594226998860078192928734101757535298088053849331057161587874349131511921823247146852782747191533503113698521155890846641842370595712851145901517316806235275652333506850919803160948188589049326964981256619017763107889721561614319532511009430475112544093629200075201973706167875374274026386026412425085696257421698836118355944446345462621159368112224255710979422482917285213552838107595855167358047224476556195044799436357548733864553198144221923639780369033353062213848989045678151783341181168253098144102444511358793577640362677796250527397360030145852026510596885690840686021562970736714884115694681171144648202440618384679038190963976141124335585373256425493573008983017842843379468616275362722436088343239922032588534500876853226989120960172760112254909875178972000406504189700718890535733282517323537843305126691290217097283234482595819706199861581713162925041382769766576523849220324568584328985087706985083050894941683842832745067705534624968424127014786090999422919364906340310318334257039641476728061645652662468194081730399420295939948857670065582986477702291052557919761668206370079800135129681938229232806865805422705482753582214543815345580672510983913220675066318055901455289634175212595596443359070722508298156284391926352778138061580797398689653056003454392691924259877412237726665840011963480169876798596499607218583807807073861747030663483280066904419439460350174661117542731384391414176152883773344255885205810671191549345952625969769595888304672224329574733573668058341689900870776335965258385891684331721258806730461068529239711312511364128462125367814292454372305231273627313570475544023584147512085689528766987059087545792064028702128086632436162070699186854716336999250276993651258005439803750841261460834263393196598602537945040001444378112012707084976013472054844109513777915882005552062494067388247743291826440581978592449214348569468306685494940937343278049690468283887893586427677891612762666268701564004390193409867541059316312292186158263195082155140304214860952630369966752210879325783043635048012919041793305458629952740827742564990122884238464928896355380187716067576875953338585010886486027146604090734031578556685600994515323326096699678762759242334257958276218753172245004769751595332513539954360244984618115583761843361665734324150051793560606731671831333198924918015600952294026015801764351141836016372448819732229612280411713819840355887976196348319168449150481457659317252077074211607718533559195040297246892106614772936938621959983400777757962411172950350153263622749807010597034084212981994407143309873169349594227572502832455103303105657792878743008578050533902522257487152305225873789738596327173874216820508562234095260612414991386158653477635448108486912312354724206913797570789443084315065311968435701478870282898444611829709201538913164915618584093895510502739424570358440856016443602799982782966737065508523847324860908814122954555096130193476722993820991012392765931183067523031331478275092850485475841619037737697135273638271626861123549013144770870302669552164270155385160013671555290910864070449120705321467469433157298915223200468930213250303555902317957740880360085920028432127912931660348775639760334105090963770970921670625791646338336157465866638992026132441031447204956231425879418701610090190599603382787753505599796060194618505616085984034098952132207349991135237956515814660031044459137669004136605076195341399939187240575287534675184602610836101968413248458671298610831003815625250160628447120939695620036584982306137275143539679089961608891391623370806688801426232574473829402365431309626735328248247107350306695248396150060063802678232118447043457723022600046082073527915930652170405362077026715193061587458545909728134488847475928761091157345944202894788020379611196505062892497012860946765924350673913748638366007565298956045249232856864923578462502637978558208871460525119800814979328360289738843964746787320949131847378853140366995919112413643099026808349869246829717008954649316380437130339892008389808337555810714261763242731956282258341713888126392098354027458599129538875817295954712099664661347178349544939108508690432039405694961457773260004942716803949099320176662740333885022810816958312650182044269067727479396078606015249146279006956454324526290506295725507893539617330333352611703753276833430856686538979140977313082256670825442867316705973733421316136800521632278730477325876993765587844286205149497577501880265472654110896649167140569059928608329299634730029947875669605894569048815539902172048752011995338155172922123902455335498596444379947454844152699290476995555477413478023380917182426973408969204261639406553424393218576135445069728110761686000795894515638008221981699974590733414640643613930373724956360814187327315321607577339171231700724926157808178960803200655163360920209872796083102671185332059442704473924454548830398468470778269223275955756666544165625447670374243548921077865697558373042515054523077255090235066101594656645258431934220613190973508714223866300420610459607322090466117784901463360511372505830811094438545178121863067876235199293653247624116094453350798622963879328233972400694734240463772926245555321323378749900938366996542242091058987473725613967211069544721638914534407652871040904690304990604116686790037638601224221686298107439934161458638906135539192582292107998707476336699881304453381801938976701435843239426198663942067146472956584763331065374206061696818929086347261677598883948194495565971906756430802516573979544592261627328312568165356033346000692871905723993856560337379967022428892753607226606521090965773304477603942615925896718482458855609064926126201022466615423919069238792309847549682712514218646128793040571325331422797696304849899969301015663247579906487174691624098022673293354011615933191058651839670247894653298441622932972478427652132369837646439893877723118554499517689331234742422075689198191876908675769774757314317071946635630930262659563722112551682529607622563655737431734120737061388576250457122619986447605953886655962165087742065250105720680593994392560763585614764361512363963035902759774400578367403905640950785596186033414561463139321876007464723010982117174183099076602773077260613912927690339769887215147285232870345163528782138941868566603918267717628718896678371805032435128777106869242956180207995901118871380502380879285923592473793127119260459335440279086638939056788352757383216401321960122553148169331041345318191157918296368935143856333156532561403019830964512017572443880790657960648559325587479198908435134804234138552231405433084458900439308767701756084123026612400604625684753639034119024773932332219523774896659578156445850505133718850713167213733548797486327789764374537986524404312038379174799190081285535488046940857420734669873309984801894619024898081701386300864684271200400887627945419676591978366841404352806595328771630378685221070499271867935465088428097053725422637349964103196313137981056163717971327484146287098619284184803331406288363386825748440235621502437412495121129039791858556750722519152435018313927369965146212030625790219545045270830125358883281257717964740594438075640071374559122510667045936766863840707458285223965091559810692818940461811598023154972500417340236626922078723047728161817640494071560711354027220486940270789015441965553765028408490627573878677227437112682580577022634372851939421820109005816224048893316823537280864616997525364430460196890072333199054498241053453531666431069347221643534161193515692054919180993369695757216202840671811810941369683830342141613759423496222606236263271843124269339419367073124528034365885971702801896775774678665449093715642007336358065116763836014945040754186951324051742742804330684697612057719979564199256330397272990975319195289622789144796575516753717870508968674909047633378819977864124371013861431906411144050866148263130640619283087709901612991192993075325916367400301272967466143598388283145211671569374761778372886363064743363203029191019959560457980367774832473151750786467207790201586854289134795643385087684761127979444102550918008102113804838839047207135965703162436592919961313870666974305504994714503772087940893575849278051150806203140061031541930750454447181477060917758497889017379875859925376452411900804581776090060367206139191280191885273791759218849676185605551701207734298544344844308597097924517257101511293018390360448923784026282286690394977990340563079930531429295670146471892335927311136249012550070023041804378876328659505642426421007916440697825557568597162241163426179217502038599350857336355719095658106931400437708985844305265471960363849246642611696069909802868388484865559885825307098747396643002693790832288502507724674820808484337831702435123425351380849682572381681248963074044779503358598273234914655066000937113602199601561224590241806843245659768340216757482561779035637951550480631988055767297076316640333532152642288353616024486683578955951335348950697620255512160394198217804898381423230711443787305222643581136431463276758379302605178305761995578119632439149541684749845867334462351261698747792060158337076227482291871173532998128835561747015651848983668780078544271349415439060799132452677672080025703240547199319896894824965758995643985985846771857851953498212750061793669867436819854214335123904958236007025558087217005740755871435642914228271651596156888159501056294118708691463385416938460828090865326685970916169432403732575365332645488153824287189142662713034357108056937938950852653972369211125456213415035285194594028046656511368341402600069440347948439079527492623490326604400122420493509838482917182328485460370593985249152139917677435082611995861115457798763801967789477299689304400629756501874068541041334060132070376006618850871220421729039238607093738256110361245108585266147918570756309634389994928841755271977141232676939475432149829421017641745964707342187687661382406888608741896370733414973135258654770620192906179299797119342207996452001109573755854641516001875797411561278493341202535517019476445280773048456091625564908249865756678257922785583426250230249947539526902665431318617980914911656725603914661234577561330950568422849234473044073006881028610229326951080325606152231251412439608751171688490046469722720976752897063167165516614691268120230504349402805465866750204196955322807434567760683461048593194971186152238989784826507694096669564102681290560254562966739737531137008530112563144821516579636190946694766607045982710760856243028372348120243380397565453050744788774200555350838278289718070886380739407393605109460066711517993489338815933002961489746796469314610191420406590485445073501670417494092114023422762287141403202831651043461461796564276963629088069857157540919384598508772629088764561932965430020377443994409081885173640289515715349264856664693138455348862205315631835580767924767935405595428636392799045019889688756777119332984553262209322823465623764799021435748385023081249024154819587904873758250215004056691297372408560824308472206566911890424842632040959068593428073595478623644021976019741275025734858342062680060730641310218983421842562694996377307974095152359882539600285945037339708026545465308933826846039773339757586405558776362643044916073401077607598578063329992017541892743521498661297772776209138517469545021495115724933907751252597716539978723757427774880741743323719963782353733675327824955031737703037192148262787045307640977107981495444906536625418080035002229718186895851645136028676866043551230530007010505637528233722905206659970927197696267710473930743523081873006827312710480535648263475189869633081898077557089058704715768717849947249692422053123046793231936780505093189356421784218397684353341473070291474664392666713843205250836687053462762848425633439221962509299090312401316638276683996204031882747759393603493032977535677814224660674436931444809758561622279016554898323100328737237105386581411291128089280720935179743041025975060593098231406436542010419885118056983643802887700987232328598643165367858924497703774379505876544768890629182312095276465973436381660209527078400389939405375935870350089115596035765071440858488125197245518398390273943756512371494221559319318965827341012197451084079585107539068824027258674601636720672976302642118826699776039654239219031264902209670195889739635078568633280155033065389368622693428568948765208444708236609333169458644735437760926035084847515523508212923666401655211836924401751734548637780569429995468868923523678896995627282697852329617804781363538850096383398578162006483160773444623547801016082768498116559986736534108439556710436769583251258819281247448925890715303433176498280263562986727064832554088008061830263047295126991857470549155510813039615620025385968379410558947653033176833278736695049474539164981394792330404526051170472477606274843772440876631829940262557888228485564406964182681929237899283059174414770017054405792971469155169863712911705080557493206551328106518372694129206281105638314462733371510999739634345053313845603638331155278063237717604462928214912910751397145051385954471781689754005876175480377961017788450293828237768843480285398577932956849295620303435500325086650638321449659317407216743849821252503815805096155964437197326906625247218688748314887646367217441484282366170091477590422751258538772540810928496448939911231721609103659034964101622787726211315856919176291620146738149500460874456954136467766134885864868694140140253906081333335918398771692418439289488767796075130509924746785373198181909199228288045636228973960743147811879838877127785706324430510738880839777827245023204947835814133011122990737652611437084384861977418022651678253964365312162334516423217204741206451132620755992015976776798796277045282637995950283602189239400748139166260601872823261308290778894444160713391367154534633618293299383708683431207509173236084664210294508949563444379387824075461031719936043512731246197557731229547530505762440293701894429856271409800113835902050733404239579998555322702472240297306005875244344822438005509317580246559918817774772232488662317264260759418762429668627027673080509218450074040108373158658480908284844596507841040302691453578436283338072795793457929192975981027243434216428711345727187575267050349003294688536044700330482586148993340927410889645556331853570167715661425473080625192544451708953312532722533165651003092632491659809486637864876725806503327999595572301343002915012860451333043054490815337841392436798265234821432634582848257709074404546118110081868352911325842304674420763594980624751108842450852889959853348159592111320554214791813775331073222236640602387345231395905123776909329598072627352682786103914771665412821452478755432344998104075867816382012608293076898076708041069215968844445541070177401004997239739311403806238647022252726225873862160774631591884862809037679547737748332561891877485483011039980235978011362937652740955402427696401475250124109821837119617922026606171616496634576870170947823490816120354888617249643743637416641587356342597233440555336737602418093506374753897536181841709404369953266618449376161385223657821583872042239083202834935813979257061159915757625014254352670899906700654670506519356404721529284339768537341179415203490814961121466845027045252752328830458636305602913245623639096737930508157884036824537054981416545750149697443603839970234258715032556286059316283374277522869970756015088593133574687430185830080663205762255224944818783620779743639828384611669857429275772850937203700025277420595983080262715082662656594473360560158704019070308291425624248481359890263021543930886814603205810160492021718900387005757960102821931864591275342080548714879337190568340811359818462803515857759758821978831714051322022794869090597539973848205265002711250684658898864029096844646762588016428268164877376573906130417967059265586399587876649206758021205677720919237520222303356326539257605563214741844283703146770948753655622634433541922869485729977663726461007435629038130239463192791153035327707539766675040158895671917224961732368671557474715753285210481681590624995607626327728318617454642185887384289814930820837089231053797107189952298234882947435514651770419141902280116073481481728387298584883353922840718524821164824211542893736971310411782072323429069170740619969669866058527428941937411682009567196594825943356146792559316688675745049905238474675100975469704404759379080483105732628874562521546802072992353958779529648322722764843579670252154397561148744263855908233719635543391564021710554555507495049856733553630500952082338898181289473601437728962598283176297415442362522062110387034215171514338903692497711599214344440607595434552510667185107558784076769982690478656167790434102376957830994129741149376495974861072486092836108478072238926356501701384969054994289311372320768246151846481757519124091895500042654182712146564515957212466148361032509103444408689330532810811074345789710932054609762746866513342977851018869965941843542521833687378581095556301699093082584370262106239786697449385050990040786796907535737436200962784418770160846885769858905315771825302809352812603641677051390410930225188980932804014443581759549646543925542179123658624890209982104678360549940302799401611425007607043964353099767739553690862580969145797396967210590007512925718461577437045166096364206219098219829068185433800121093033270268794046497690207037914617129230407572516992327165606743277873701762448476303346103232180247347555878676394745060279933619205938535215946623937475600409038391323681681007420161340116647436893042375429907184427867647696266779874627722356678276348312954733245232481159063314654672114137773105341499671406634295201242679378235607490263094257725355663981836434601708616145663212857199213262894333003405110791114341392305215454485073705883784037716420138118829917058095636641273615954388625900794831696860033533849250602116230665843358235522464331212812201355321782424656901304780364764573094687045258461634186052940471100482344894580869716811959290102596837743142556003393776799547590559084759371962008515145996150596023587002195446609404669343628329799443659180503353556045041975549076516264669598803545680958735495094017452227264294543030181505302083368412523577303703895640479208862996804851223512792916562858994150393453563104600673067375475427587611786775741963039822773989623720808390807571670526099671705433835218501417812141235728051288279627378555695166353810212018309109808330326581083778787244551277832843737113840896221501179401531561949372495032147052323404094723515828943699542150015489721852125436430312602110278479328139674483548877057720035355792446803602640588671179766003509275982950845939711468408976936916826378261738896904336870325641973638871342937233557600695544660400400006993378024720241966936995721219578249369206583932675726964710126778151998950840015962841914437293285790002159671128305160096418109874510730513665974272457728346224753260754117510010817758653921107782682788453768570818658794528938547912447076705450788993203622294870508557004404535943959552477027999403661704858872203468700490569434872823459687288576628985976754830719731138448720617655723587910933454671455549903273965529830176583492033212997109198708285543915580977564032345163966768952497046096660821243355474854396696639391815417550687949974530063808547625651042307926598318168725474583901792966962513282876652835175813797504336248751091294075028052539139761656043012346080999134276607011991878002858396370994556144486420977820213493929048049785441436401783474847090533975606507862390104298085393779982379886696388556159909726518979515270364758930529864507882110384976839168252222876447909900575752202839099833879126829886650616188252750661609389754871521743523802488502949535492928846633259419415097205713973115586267633707737865014706868877916031325007350429079365996533020357048497833929934407539152184914443803762157135063253921139000555628913817294531477972227909080917535385644335737630619396519711058214924089761571673437221994116399586120038493432646366683388383046198328031735715068187111152914017149873647728725745105666767313932216549712805415149187728655187424814935403175264922712016695109167151938713392833462156796273068946779589875054942653357759437408942348343478855905404348933362929675092664250599268055254716819116381548115236396679923716980384791501104378117404410885809666115607930168484464571617997439393231528954990957975442939655074724492941599211483052839406861577365821695064598704711813650114713021373220188815726243566784569905201058255382493031634197688490185861021923584567858171308832413176498032753082240197756842277618349147837211841830374226993256679668595134410283513840141922932067215441053240677006625996513370423488292570899658458655095679335547664423708970647865178751545633492803558334715811857089387208763852912534960351316246086132738958660642971912328078030783005872048944742791727001854473426868181234157198293515551072501831782507452705597134438592630416712058755445356383290190585865276668215624229735864139610636200736180754915336881085519965090077977151936872181602845597446976673361031850904048504518263675300560653079734758043320068037799199455309105033152653030888438350978583385826594117207256090627840659491249906152383426440873604407897702193959422248965041411726185484399155008297381688106067363834876615925602353113437207689448133082781580382779728730442513248095378874015076050722938924315751323825459263523495181576771580948727235682190302752494858328094436061722683941449757404518666648458177620871813252923139019916700414499637166667068883252862631856919605459782074345824304193972096472182105376037133862177467802202767460803672463902088087287490425674318267619225569194831219424624064729453649839954561571616059880466395722207812615617766775356821299711292293434721042257581728560163088030679738008305547108990607084904574760422887960397230459227936764689798640474563129838324601189074072433899975043928545554298699103956866176973410134463359464969791310840340085125314991722969742415803079242620277937463943650970646425417137757445332321087982633400634909997464821894201802999328394746391897351888617619518891651315200956920257458197830329437122936238695832684492267117780007652428819042014272226591420346312402250843374923696376696913688778185523861109826577675034358513890071482831470043444250845757844964337327141486259454437812686352531597121271853367969298591850854910270980003179938460323096979200035978694003072941854324871669669454568027501839391848594345595188571020216680424654736709600763788879967726875920683009089389857068029437071916888672354446392545475511691339143490235507951645440096829709800215696391790462341067999782556910025137181355584515477532475595238037476848224872866570491410872206871363496620592314573659790176964274090881095971869888989850962123205905705528734517939802941250105753988553233115974970722883271980186777235850271994082932695778230089438905934167902667257065963522415137642344534337939202332947572628537955302714847952579201527732990081426569273100191110353907783640207836783170090752875775148448970526467396402864335946297045343246420226571840923306651336442628551059667555426088079239050629300410600443379762927932002170974581994115967044194038318410045182684617699624959695515701381737201067768545159798776533265715240455847857846369532101786734864632476289047420520881171579194130248810728945785032864968340342104698010389317897474059410838723881650975746940369029429063580913150406680407729631279273997339082120243185009539505918608337454706256506432270337874935392319980005103459486931724832430043117263321907463891214725440694848178341601072777835615856099361745480617466453516999981634083652811421405803481121719757822243771199126527093328033263760655531487153812829911413536835786812908604189110424848807521482195879165291508828959067062400846518909516435589907022108586834463137793370544380814861542789311145092674966668040538565732999760402582803500592290423162736215750273037820609302164750991315273715435992656347192358143805682887716893079707282733379308372288746118922319975398387164211984932353855370915464045747191499641726935963324257308547298207441100304531709226487196841984340224347735237400339465732777747593825806786448385690297850318436047474681212055581404180265380191513863760582464535382276704607768168498685993400775323235305211864753420664869329978377227690931009845703461447856266267925533726519751889125235801488454384213720333310887433114076749232167406034441871570645406095536778344607310529671693211124111018573812695555199774358834182769072667252379832017479899536316326377250552603696851364682869442135838496085186808585014195738301978538630289690009577492661476979832410032367977261818968341469928797552075754203139809518949243278081916684140766531732299054623393617225385268198813237510696526103520227751926220126867157217013852458060941137253118453311952661336867129635077422833628443453048570764583303157696941214462741257310272361134363231285561174246406145273360293567306848693089164644587598009965946311799337868068765725941607730774174135633426033982497684869409330474512634512736882656694147444835094447898521120663932513006677217721623860353439396938809770417619993300676142394651447870490587871351938791203607458886812806797545601599810278434554807572856856585311790390845015317725332434087984533956008625401925965552359329870119950806367514937617571353502383349847603566834975501669404734554460773241515455838756426027335640745667719916573468047956659964584025834234213360163058651227028079557876524325008963727397083551504225276004344956079971954883110456551788464415364475304680656004477307302974245294629543449899137398412663487868178068086149516866722448327475814092181043022465944758318276380447109739488235217923414819704818384272584390910374731590500038585244959199698683380452419969631674466508802605255296118917811697010681129354500002806023025160327357034318880228549608452424400642997051117771274083777892212417451360203674183396061726132566895792258094113957042668020169288729580145300144877028562440322300596663326302318695969489481597931894358529097668033857132816755314149913200912295153701047653700930219234383710440822547015218234534723601319458076045739192325432978197798579722653633390561608143146864594470237190948775555034768099854776620251434005371252924126607134660223248457300433734850586037062477256690323751226006767316052294634737427844917787136423233340598252657191000012612248782968262955511219098292652755426346395118905949228687436491978110415257126138836498305012900466211152803983143030362329786588581965356641761214679563570022010207498834550731869384070901740122564967271622476936933427005378963987480875786528218258619385131353113891268827528144144472760080483156079255796810972695148139619065835679794938277611300756956369907346069400667393172454086515021595699481829563583054822940265319469979109616425240583134054561693833712319057991023196952079462829839424234100970830507597665039265449075360643977006545970173671561531411885013534503703923614432617409749595615223862596217598184720444436306251016164929202275978507478894395934527516027616110631841716205033494035820080070847648887617035634124051391572943307630121776416838295060560537503031913899227818873922079665207439666471630678548102866069321960931060403896879531894776423096264276686886988416758073003041565757498292364869852380673068210684676498611992067869460075974630594958425318801988270468782977488335798295564124466449772720143397836448565371168011381844174695974696096650890905935430021128417792338285133075707129315525624235586561042610424808703267614174801344534865834513255785330241248467720682562458362845971252453455422910191109961514786170701663039450839903893916921230226377393669410235039592772989194294061059806024691881215650646872814850673725735260050886328534604017138058281728663153065183393342435555919355200171229264747605020159274662801215313935370041378710347757384159707818471462210797424653559395762073718374492890476697854391573172934295364634482151990728037638312266510127157472151383078164261382296247596772149855548039181561407861168997466984600014099745755613206236841170388673115414026061015556275340008215321516224342092773748813685356000839166065776437243657760555415789205244388328139290415631054775547233446382508846809949063724978983510470164988903776820717693689761752150188086348787026086235202839642761039713905302588965474436120096843669151934892075499593786550653634713283720765464461540530787035313659452466273833144654880775443864822550052470063036395588153214195624748722425376555808808943095974169629326687273525709614227486943427468814997894778029201752807316006077206917745739561289674361469121463264211330045853564729034420302510523586899623285614474257388350490261895030395664418858514049778613994236804116370030685279126119623749562788143078252761484545461407665353870122398364410403020854614925801104143672988559530316284607487177973977260959297467838832534187476626303227838992766496319708793242950708296613370456941626925067509991496647090197577833108539821549066291188525363465201351930396969152770351980665275165136373404171537760950908327163385498431333544768666034506228056020060230393482640293968512633900604329644835004773748168811359830931117496441721522224804676422659583389991824483397776608517124710934457441668525653036149962949212790122958149387609762358025260711517169040774173555439449127338643731985991140925249676458025470772228017169182126531536981455460705254358104322169058001946323328713740099648296739353368883236740103327113130787809204487539132432603883059180931276675772844890154993418982236920734921280910835280833070953917530207032521041914233204577452715277516561543224235229078448157025093012373125154438129884621510024057657697102173899682010131266988938319857542319795946536568257895512223320864206369445542410316448128581340634109719849814265699797696163653576333817210531845006366024043196121705593069573331600101033136733655407346058025291520782612544908819667552463129718039023685091302195709535704805425475227527794577589966966941843532167751308153984991270197090094580386970546018655680936776293909995124019596549349838699359323316058274415849356896712105800963479020987795241048596775754700744409198163698148409289353609342183921336946798211194841968351284971108358173504175127573729422806160018637525535141019126350370018870682744734049267455530270439586493548587308753628400014446763686158235267637270747259829918256243856738782566394579052683079194302687772433800764689650678785986965086211169767860673953950243668516633444154842267740377255394279868551617454043876387463883370452721092378991597396297839158714467232181383866575543043225527669960343506389885563366666306284685758714523488908918458424630069627869393512140034149955535452720332284311511495964377602535959745401541106958185070377721546121276292879004949057608868938991478129060583301255231246614237005765140881738816340089168778944323666612442749959243324907256015350692750114155936250591368869516354436991332254096432912212726499355354165295254180084878144167057296576301202339409479313241691766421861684997862576575249853726373644722670855647090244439850738579787383119437129286978178443808123355562420873921903542552867206343214678045383609181672804026969019111697433118171782992600342921115716510768587777004286796289862010429361275452013551819908003827132863635424674907368951874605592676038110298018955813272048106939690395896598274812188735933387057252565193410897804383900294587576360592181675049870615395642153187007202382900058140653709839262958086504567092146374092856383185540695998903647778596917429981410764932249935784377676973633850785916645211741208141244019046543175358351862944504608171655841236886892565074241271732598168903029494472146310004142712499844028465314057662078938614669872153682905088157588891119735356490747033102932058412379562095781970724391834950680850457170854850217333799475799077053921810725047964314027807830316957956891124960528995997115021420848288576632783031449300264493348287912873085558239579718953457290432918919173720756953986270826221998911072153323182994082949717570074382496350537856343444916765534722735649579395308745714559091578545348265657379410672694200631572607153507316667965843330825024129544447628613664083646185748405607324985488080246900624304314939773805552203527567445411894040471278555735277481745078835076084033701406185751662306504229502800665961765086698215297542994438176930820050173289960141638880368273097172172072642447585077356720531879553059865959332719204273024769889460037073978225382272868661816330075302769116328787690056781921523100456447151277997054951912767271076058244866876579245939868856814397174532629421880007120237155281017235790536843782252711181966446135113388085138272458761504833701356683548782365731756395342550080746020260512914566843673507044876968157347516785704319321428988186865290930901043565262088589685050097564351717559048166494245461178722245532231257006817948724574231052402414080201315994554040640166713695710302056201512343990390209255860421845817554770433327700511477726215186462338580637644074888892012001181453397735114794118366766038276801881250154118899745137172236312057138357861306378931105153347013106542857302066402966429712477208774223974837851047937705696424975630914635702112699448917033654692444267036223359365929674352227394660423478929502341356783374681386307985390516655243473269802820716564208668424582267362075916696677325219365263150694136380855631225879118218827267967687566072461191612070666076613127456883419219134179192394736373455126373496579897197179586243398338368511858622831221323606762411531212678872910359972061627051962241117980545595877974238391274784654836591549891289425293426338514605653368345325203523922885433881091913215633342988045519686781358293269395604223857561635605134809397143377942963461463511407109843936043342601711523098827039329238433681685315747895638817236672694852109110826586902680700257349183532514050478041416188480704965618426681029537261945732296057160423908670500625862407525856039370234400984117807060242418136257112535448765558385796217855386293322335258958614109997854574361512874884566836093454253776746485664011484900553244447235924393668283290109416635445750332688569520215476568603421985254452429405111620242989196232223294669109349747397574330454560451725475625470750582566892969697194766321668230970520730995302093213038163797047285133723378417444177574388701167692247396102916739685349257298962656122776412139731549830160145886326439113637013479156898610564082052625346603186135738833537026493735461050862413846343165316574111136753627813997573894742241934611420634702508188032189627181178232408105735108707342776842596122305210356539653118067593039761507539334479454421501577367136089621604798638461442148237824119653517166949638390657391170420372605556606503914563152046399117148173396892480003928539385525247698252834204125866219203895510887017670040921727554586974343989479715449052012556339617661281079548708473761247656632884133433217296531841565876497866562821035015724265007635109875822590346162228889880922907450263107585530738215463330003972193665699487743124189641474267742779678140550506567131315787795912069247209215340886440284772240014324263850868418449721721380822871351157877084013679379952613634640565768852231646207551330507486456147066104526216170818573888309405642438601460954693128160079059778250319524471814621243085613418585331633408625342408595862917315129503082704867946315021450533963786879761340672841845395278710266795321781604904004660562046253974089214024989075078022728652521050325645883431206198446276841796428160805075454683176496933257008344845387307072340398776613672885109728407332646365177338097603179713577090823433577000261498735998805879604428960438197018859166764486659202343334420834330325420984932095687554503696457604980341994973226129210342254138830163857623090196610095150274194036310745385664002488022828392070832983980615416270163642562455322320956075882515116572842536893878798240511903701026751849943171523909882314421089089284715743920400087489515415487719747153482325291559202723979032151840195707895030276953017472948317802365171755293317274775459825485502018666890661495159482035069092835812276899313353806892763355546423113183119123851058079176254182842184985934497185200482618542497679693746113032789705984169456333726237571701474729655263117409227922417827061467788978397628912166226354398686216623649045408796118820758926943628432113695605212453895748183395247680164492416125468389411950786441186552768108196601735126104732791931069484022843345581747066181060263008121399351808613743599996494470140245163778015741820040641497839397981977796422342888441371319571176302778663434132868729383072743808407288545487219988181639746428269381279940958247013201544905314305513637555496081471293109115754166240595425396456856424509949529840980449252840921676330128712330963182334765260717277154605095074950391124908335735470348963694970336641280300828964764879302352763498393738801676139644063968180661070515159743144706622117185268404702099811260314539029158667017111775182532362291082591480879099974715814331335020428584430613836293745425005427213734862534446383617015789586049347461809644107308191415724268219554136751210217382045269220090628253662698640156707353906357729032626107200870246191425114495988264383925490790530466755892747389080133256510121714844062853422770877282121090820800617679562904891539043511185430556854079022525411483677956024658711442510213359541748114525834206031339571168454352905952216121908471291501001515910422259493198105855295094650215460751182825156153775597191602927588232821216910850740001235815594500930770395771448790539711897733109744146854826312262341445673103286255583060501797100191897809471217753178609941023299366525025529151960312470471469296379101537676925119796732052850667027105220353819763596045575220181530920255293750131445508970344775146123859775476944515687776030084278452614059608506531522745842951547622620434820748123618432340626379505533902581321294601416968562025266026116841155691126920202263275161501692258906340459622106441205099776337841291439827829828863176840604257111276124840941926232454948409019241480235699039662057086071265119282390508266049639702241377442057124229843882576335307621702404304213422309893392791417686432273760281886056347371936474311730803617888850702498773357042017658680421518927185752659734054568548199667723698414184157659281002035170373664551078541674207376019967559180899731585994902576118515822371716392177181545859068544695236318309833414608245276398024598511177597232149677340327247376365384187139430525523450236930975132586682503421275517072313828568226016332480038934092981459928964939748157862515441300522217569430973051133413237052430247918993424522843316396363503872594886850789466221958085877875265390838652065845718127463621924657294539169388498794301504713840745280213018057616131558516656221402055821831637951315231695242391488833189139001849181046744340272172915328153089575839652067194316614860352792215170306094309190922470689284319248212490118288895769352171775507135114598016861972634820530243902939664119968692441610233670084366928959825226640095023652728197846113690031030024535716062902473587507483946232339348050582067457271641843408754448035019312000973572962727550726290657364694501970121958277816811245937499340360764680610962905482222398806482068827379591427539826141607904124185860195615946879021203179509875387280529079821492659402248098178174056602718635657423920203082168959212827818440984865048393248884344921200776783001225878470516256012490358934066097077734865109614110814041838171921320234341154315097407535084122943775061892213034435403480684091520092254304938381962469264395374734025736842101187947495650214533880537668828262942068185522021721655454634624130773236469471987654100490955337974364627478508550932909780852468626417062408009988006830539685371870999010521658343281976644125207198059201303231439713016138791849241494878631619415630528414595330717396005389489134688769157796728462957207900006483949889730118897374310421588466272562437855342843770822592888800400900387440884873612215113055380140163606718283394349278253249072105494038917530666649433689711898686100946854079468276096880280266952867510538198885247884556013684416984288989069106722087521634218938666108480819973308632070155062606968740253275945099275478465005363673492493302640294208850841865575372488161527066831034725367760646957884630697930338627931455945499074241399687539545512291440374223302878366189276004427193347422624000891153001860129385863861912571718072896801236976246241733522092001985975319013930757056016685844579177099762478658760080475148685566592468608232228917849001143638952853308750232844121590361673949428504256493993906598219911758553596618279671720186004727657303452750967036144365452383885527419007455638926263379941054180011827349577927970765389441896486916369349469840988303655713558998882318631637176259186459983201223628719595903154653887097959423022421705804667055141622608786478459553407049101419544914900927969145007301022200410464838226475447107964812472863309097345498013574559847192815239558507089094285624810003112459535808883668151127798536062342234652195021338047919205913061656809790934659376922142424848244995692696426703396927046431982199938795270539569544056047902858469580685095812588782138528817831822464318165009422508726053846225769638963027077803261136196108868832211289886189895270498222848807731845729986195410446184909715670878664388864643646402207422939451970780090118756644157519862643976509062240228375671640737206461468927069649015164762768197496522012567958875257528615097627843879697358963916735414113977399955435962521764769955066537186379025741259323265207879637415406473740211575422802917355643566914891788342444320032787137686179202213946977755261737524004662072519979151357897969757196370443634318698456180942789384050427339810395763671261734340386215238968565793646886117199311035977060681956018620866113923967214716172282385047872982172164263084128637967266990824012453304393272378591191633235078979211634484672553106813105053825249673810482937642590092805965015967748022006243665736335012826963436613972810479836491702560798157357846712098868754253582318811154289635456760144617889125548318797032777473927646914992821557452206644303195798440819450954176612794984234891190852916551190128378948575853925531207589839453510655132257897677798940121874960764559289954942120719442278181485675546980104626973121297846990109919808687483350501641797018365780402250255461914163047660193484143036557782141541462422115676674363825834983462121031090585440500735003878991401367550973042309283928226093327162623784611413272988542794184505813810832410983002429734824708707182079368646472647257472119230362974918106536862101508915922893979670511535159685174491769673624351282465341320929962489854750873709914078106681836192442701644683395092473934564751594229986444282712445253874739400173730503781927107836289560650316811241714786153306647902167568691328134286674280256018279748295820504968391357400160067811190699583216718226601714796502984368651678619578762891209832986690785535953317690942046669182334477878916288197264908371914829442772962908440830955738177928288993083556000301641727475002888860247794740274347891589383460694641630573679499479913263843467255797825615304250985042671219598097619077098408270025872413222423561393218610142735385050974557311398282449678539898861952396523495275579422851016998947973870955312721087266981787967448870912267745862991089932193150579380672981444685325016302606938622299297765095577322048906946564040922145144892452090836471901936023464186895238017648082673895249455461950907347589670306044467351773764385909828644065268419046460043776229772052807201132950211274292883432871993355693379951724172951247848181568345396857813916603191981240403902823777545884742062438373156747532066097029789308968986733634382451901692966512939571062109931977833286533684966066015231359205038080846640552548274548077798247946785779650582805176555250034407774185922415051975119382090712484671084943491065011458656223838657988014680989611942969839600803579947309415751250670236660693663756317095885463848235574517339970588315086400202043746108522192345771404127155761764364757850989760259430746344030969872249938882707585544171512396546414972722053572465380997478156229144761568480238400692756062745596867681180667363848275461275131598713445919200304706054498398558978210818285170404279239729157815606774999632794458555578296474480983909711522663948369452058456829754405391614520301539030817037933486107800089707189162050711830640840481340508399072821010560171445445157214375288800217160254194593854433364228212536446819059901041221741816993358674155258666871340701514446370665419135427591715671082964213589406174152680978359915920912303385737158117535812702729509778077898067508593626073935065811669228455234608182874608089389891653811015170424102751354711335251794860813604459069634282066622616704635818006672762364844092527315322763568124994986964314750965355036715869895106835722062763019235688060636928648192618323260710261201662235071804951874770854284330402786200972188480381772220653770400728581404591631936204176561187241955095490986757452016380445768482243339445974587800520006580359975886033148724043094661427877467108335648217760184334022090147981706245367780947905126014421743228858647207937728640567904967682075474603049325029440846025811677101457911682011483780228645468885993940008178430953384009066850016847348454842398613215721718415363649474841499236100246871762176360373663974054290804934716465837413178664588859448386306753883120662693326723121693113770395877682122189052367234583281899389086070663717882462299581068179174184746552543554431772545719691336004980552536082437837817124768059189192267866764444559666938708903077827397400937691474888689883555816011168533722869152885128406930001300532763754049629437980575219468770504935367506501079850744260762453848499996421623879756717893731074007116573034038208694452081695599089721513659449590047679548688655356305307458015388170840689918227658811568021464174480108050898123961079826672240924855444025701742805375570792794829494669088275687918892741672089220255837239281678266730752970734228993723789215194507469961748658854297992482021318893382202006387086036109350496881488051989364033605960841828407505923736686796057455650961991948662904178743767285467313864788515279202087822660446670343342696832233558150737346198532757878124020547284653456671117276121884438169590225710373825782247878506674819350900489560457087907856217399795046392360938107684497096194228260359174614220754280480270216150968066086357995650573874413510335316830108476383513678428095888638453732209148896077768620831242543067612647516467351492913540705462067400752399835406272061758893529132560841731290299785968161456178291851133637677221567125319175523904953244766896268589306703492415585860669731037967055267439395268575063007296890194753168117306862500433525801995410674402581229934030095540239875474640608163614844930316918274312202196492024518408596315463681247132165147773332198291169806422614815914813047840331309016043862335041346628714188401978617597512737799099962396419412723861864068484625907587776420129715474395516710586235153195881224046981602790755523764962862895985003316224158927821128892792189255347976501457152420171381298419279301029332575994773072705961715029295462371381550279001227050626827385148176072122334661253965526894549791296864035377753781576810983235750247392768980085153032026948745871186270220496527899867653375066723696391760637136013740155020260339854793276825613704083808612457965656313088817124436014339372816427114628717401211912350808346940090865538415282107001576018545101061630367927408639160467586694630172264148720327671610361933623343338471669791650076341283130696517390393651559203638728007017190709114107572041356019649098783881245854244940922099903526432117239181946981139910939178134160213638919039716030182670568979640223321489657268446421114213790635772597317364486590644434709340357648667886313553194069498651622172727761199303560749681149538694273406966171061492509483854430362568383049453194000766839537055314826011800768968018038096723347549279176437299528391280325741749808464706656439074283148814388289010328159957787203843297479691501733034580417196632236531137223497132350010477123587297669079146893441993819746359699994327097628940105189464501521600702024605895452705935569560202536452987575038532832127738511675785656292623242938363945111515131658894613852766601470776862798949663765351099492470663001314719228778902614876338514397312399048569243475091719676046431733752806176257170975800135788654121562431987477175911811315525544591919195095488694365705914548365521659686553025723916064165911647120943261199680020733361747762761476422854135040367661466146987291403472782969659698341555800006494892962561216351218665110020514425859231647117352557841684141107187328087127972851603099204525417240375345263065853247797067066036967078158785501294572004977945207708792817160284181079703395087802544435965225611291094831739720994536774849114561972598325941905438566416806955726496299722118010400032604572206372349984277689870482424767994334028036746254882341041098864883320940409766684967216819732738715874900886593594879142303887176218372778532239217841041608554919385624684830523273451336500423818287012096654673354543071847686715238202978825900277473741511135534755613508588544593215691750866750324307439088006281365246961091130409417460019994322900019614921088731741829726619182872371764225953596563195270235436360514983345376523960580336243311457861991143056923818686527568117144726124415049331764439290696405647361589975833506378083007543098818719604466548558308409477007559505659402181023031500425575440188865495510877572713982495726743475508401281550784984022946615539836426497964454932446934337330633163575351055999990980853256558364284140683300802617377737266842279370061281321468195921254712602083356346203847840054437863944165048875936137631758288696566861975704056453113672977952415409580726928836032179570723088352226397628048796193303342819264289730274006620919041340005422807715131121296484219460557488741039909101095236514037479348686228280851439055334009461437131973313835566455049328127387180572927786996951555383865061964821305511265907262569608512055585782875406507096501278824528853831054477440335913421937237057686934383259247564413638719002308466080341429164698786336575647862106679659972794352567515487391910681175786901996152407596517107891547289280388079129884799259726859188464584268803462380478887520833662978074481787519113851672585052321035475083096168489698080770764141979963413122628074533911928539832281719456462966295057432543508091734746466591643382156831941940678574779347958475629763027766023004201098981913799026551353058598229170908022920108366641560902567682139149954335165838861503043720108503574255406455290916612297912186636196944398433836192002137209760913751944325993494164971625634250659466908736070833405442359887234190173516312136553745504049475845147493008636646367025121371324368537618766055235938223895941869504399727673774173239439724917683946570638215494810124370219758317331593562582650570732566087389352999205679094237111126545278614781593629274977365736166881035347292616151368118263912437376551565900575771080847119380877797470802944440428220201223195770958889135595546176996082514009719919607876844095065917548307381484434301767071476605353841670021075948625977086857240031062494045505025623087235479976755269581619955169338696689783658486017715420282939850000746038552670611864769902156723458214965490396913688805745439160134776304169203913543376780282032106544565320167219330133261586976534736155818497024640000254344559612260430112370779893126050263801789869526206957181955204205235803402214087469660984423116040140402992474644285457815678056198944494911917939738551503511078846154662833322095384401371035424869479682358083596409785011463717664081459947812698402892233340215740383300664706639255558232393105465187127443045550398298699709106180862076490926413046656845841747703851815561506288347795824476149183268591282197889447920084308466703579541827492253212449614259087795376864837049764842187024687455992741218991171880691324900290706465967877728912936525528788186739449764705948432312197184460271620104950246342697720436854770405514103782279034412280929670447427944418165333537595278491100107773192052601035125281520153986523448644270397770601840537052747496157984885945720496893046527318982218965105963502343211602145211639599873017200913171617107778229160771412442594882675136337171209479422641412918786244881313540524163181716237843317335776938322405777270625592016732787490850625459705373876068557635407220680098987397531335652463874784561157819918646401162656560192539479428235456156045160876354367719992782055153969212066751218160297181189275332624112387789330265330814348471457694696740666483139711655956567130432400521637059614274491960353926439081497838046472031274223824291207985799969039937180709331606894209649638081884069195243190400250901930541599453616336196057696721578492480917550470775950967888645971311219757037081267957365589401776762225539092075102783210473130628441101421849281919206740295512768500443578363745284621377475792366260555711348031068965968996865165260340025734439720068687803549156598525314610486951221023335363524989890015066392699635374024136503795148882972819302689885880303903712898177473557667522753697974605691790083084459366718154906889551680223457476676320611743176738541841206364966021509414261107570521713674132912314477579435953216853087879548697196457353578246484159196352782879915815048018268081130150871700386070360564941570726256651414115869746242952471126090284621115251751928248718758919706936906542329504663928538939125012043213163420369283868837597894839537432217555197736459300995903098069593235789461142028243248325891104927357311052651803284631239959834302352950874267354910658140979607107522661491675320555305571800001320906305610777674789808797215357150270963552215784199827446930895396187792903187555326252387667857180733087742460723739474130075478059558643061368306471559813430223159259295159311602446607935337893771498759896150745321752899180513313168210629130834091271483376596910586497166992131725479479357786550748355642819856457980823914907235403741676438668086202866194826876216674962098590318640087838913662448978959554061673011961103151876600311749984669034053067698173547469218047955255246068846280706195734097645450751514859125142223736717652963127449384768582359789356790268453933206745487829438572423578445671450016525171225472715814243136129394730640594624242246143309424139296595447766980023694912097849546861074216545604029728512529073088627661307803971041981646811733203887140942755831965439517809159050028579484121299232858683072187550205557837920323027576423292980451710502069632229244307383948546373128989161324530783134967767814496847234775292837118416040403863256869567236117214843137550480614186737749284393038026775575161261801482129011594536141058671135968846656903180190562935363110568649145302222004813377771139715691842917965848024136348338515771137927838126722621526666866827905991673371555433371500862701602043080225014514931246443834616725327674177940401087426543386382166217348331425684444709265957653594398867339520609745578916103425874418207690864861128140925168998449490634310770248490314230137272424810831892308332027444417325693568559670240775738046249769955728942294379195180171273542207403018901217262388070374259935950659608052238520500425530277665914303383824677915891721989560907372516399432211453931542679684943246690343285183824118436201785226960106248926878293528866092744465054975072047591193940604411165026564572530362165785969195584005143167020711371883899582098827370897283360459759447338189219320356786318168365681851532400665911900872054009710184699256138095888360847460540096012589195870150016271136875306962098823530736324066091027170841712984534054034141959764470630061110386444356715044501421458500049274944298556788445937114714276028423551873624313263601244489403520506568722522778884527821900067027356696128469010018355893958423439846168215770744019152483262853328665814354164138380054586405051761589509937049056957477929678473570270717175585687078340488672009716469091662917581811666151664052866533048890115910664044423942496597296695086489638705509547285928283061473371094227539355551509581275862537467154921091931800361704463472974070304755498292405945051588230246844487165990511967842283407418646022057152712363313666864176553075056741382206265413943200729111051843113361865348342571515285840424018494583247052590364405069956220550091463212535379834088410722493170318631239998457966991249377751221750781152842481629044840538053988092093975448107125312265717944591320814810478838434082903745456170295818921271373548833976512601759679500097419075140289219360869796967461546145092094858757091355043091444876788543786391608520684008991299233731437569561580527449599309120527756872803171438413395412407334968902964531189767470342874485929038118207151406566245827988502427961966854310729408747954107951460482223652579124174448298453863402424767553872316842163118159525450891927217496116413400229770678694345203232154423691464700908336808437535675512527652397131985479589725796747299348419533940618082133669427702163215845966604434571435703444369589916472728122166455612949096371950343384703626301653815084760245722053237574824872657935968821034546943804593441229282854206726962796561448275592978821563928261507182547147257168771820848544922041096822818078317227599260793759893857015496296231530921857925699796889893314681484686334019528938907551553131775957523257286168089231590777890111829555686709056662518631009360550688284902098676284102477362547854516700468259412098061040843093440074549266888598396033344612085724864677463954058181593810937694173532544237199365695783642909232753598847492789825759624537334659055296103069104452003609529219137679042968057419714713558888567444967038235247192414591692680011834352737851338294067803294110864126342398927510036716382934342811254125314318527407652893976632781541003476953228872607420753011744302143068206636908322038521989363626525053037678876046177093633161889962014906922586736645678023408179869861061247387932575054537405505643968342977867901699586704359169776451001922388199026407961805359367584014435721937110558611714052828739792686848729227725076405725394843754504862613060168570562718374016593960345707414854157477183479330448062139822730904469299140643409607243688673348638652585419133918341387414817714201525785448147925206364003896600333142536001003630519207460126392026444668718679579981584342212156163387570854223345470740733374954782688527296577331283490438371632776968414689776135764562548055828102004174811288235776012066247941299624811478571346549707255448646970867394752116509986560228233973606899640720715512466570571935751340385588609731043895879947770747066082794745864270443696669201138878980616698314401558510891427214113448525726998913201129797621182872455454274980013043640178143236603025654294533947169231586029986172638833623738175950704854168774542006085464142551329430528131781895964284052636569741178214015198678416259283225645944263178749111439182326010278982276918484620953700055122791840167994965182222230126382847655869788595487909850600794027015517604576802644042639079266815801531251067708537592661383930927886727136882423616622085527458189617965216955720409543332567787127558436606327350960475008812363527997736915840126681300164469549918198521430669382574506253353623691403639689288979499113617313941023751372267243867757700057219011481865494477441386189553670430172841567979204246399576575447760996301013456521540652923698736655882587593001424736592807266328717540426480459561652502149877524004194314240519049473352964534185186667933616110427310175111063030730661724075237897399957088698641807812797481946021814895399281391169458699184369488011902017723817197889695194783064884519703726777774292063048257908824020479083860689569241145176696460607816658712703221795407954024896569456816420860791914867523566612146258481792354155307376112708794424634841533612835649075377836869648253286541641488966569350805257096647934703357626552018430120087204886905382623243025272202718586634381495986534109245144237878677597914645798737152602412726572701993192306355329065592221633004980086544391660640115342783019766685029138718379835715739643931881666784516408462971397094528164116446068842519420608719310162341701801530677841674321018454228399777815329577704093397780802379888176274202772466371768430632219891790268059291726321038053064626612436402488105381235397123210405527767191063316563135264639044193592550488481491245526276739317785908597096798005943923798305238954400784297814021589886512887569463411805631797392805906649927545561296743781251687304947680219815621566251646859184932202561948899287362925033818959529817140091684703775111082763937449236943544164040316112534250925911305693714790304946963544269336645472070235368362621310720242911141310149230984601566451899365436446021659458569911965416639731181904660919393497835475470233545437417131956786523207214498945929982891735993899926679125270210642082556937789753907681417325929642318193528572884880331968450997634482951919426684704440812947172206428735084314101056006707979629175082612884462291322406878245554435844249907720648367699885173925499874411640349917211647602242581636869848427547797912479202068934059140975896583150038839637664752243114530755169402452484602352513685357823068327028547032499350436702796960655705321409730834241757096540409977479818166932766772213000759033380657757125697688182045568965436874768692923619174602980145848776242590979365282925659821898369646078962887195624445170554303433019182221859029060069857453040984027811226980121821270626758290056063575167426698099628373135929091304967672066677300558877517252151787957681706488847207331930364476394719822557943601029671204460289236312249448983002585127074158380100915916515056528473942823722943326029533576532187641995940698975647233161450553749604910104224945296896211057218746209346700872337329962062400214556413360079053682096790986598534092322006300247758864334932032637877752798989663637243974041777799446112164254026877991010160292633796464255585627761563000284809751717083391590839233373913965583039105515247034024643365476521315715311883606317534706576731287691749136556325057690006790113652428072391159793766086004326986796236535649842573313035125744485615561823262386963196997082769202373216025387751717792941138425674420171933215288814090468794821362020578441487499856045553169523559291608905607147320028280920119842356218925728453968430305691916493757548240643312047275413975306635147742613655577920719849819769849967804875532885873484545126248588958512682466084884531478015792950312135676439152187039318737637261753319045456732649276860514619841199353055556179341867981195307931659854932884349957676221112885707501455260927446514928285772198766538657799441195830078872472226658197578356888139427398531183308452176537785427528734884497333259122320921458668472879226045679328760201085161711725864984199662874810370752885268489137410108998839723151747096082875516073611018509477684699028354485577901772223122303981252302224791180753933626202599439810010693448220215701125737130119196949160168905111849347438205677969666107547924056142069676028281149394971037090522406700684953917150734290396114382817970714994161684644322211594373992463325387075847154845020571591863411597307001675981411102480114664661449175710998953125908039785326790500817128163334163524578774935499821341057468715403431269678522267301550273187147601673130549787001467589515151961709491767855985185271481337647924202064564448937165651884127553698366646346705918240976195995014436638677884864186945172535283220661884773816254894226266604178548681639757743286050224376246231734956225251440537127410257162502711270271576069368534398681687987973860321727283016370614862426228630733670936995765556069404886249480975937203137457872031613548024089537515194601598958980452973280445790232453781389218154527672222812499941182741638788700378737871736659245870294457351989085318743097507252805087860303021675407084742773338159883934103536057648450059766078196242298998617120970167437996241676546024835245413270208124020577632053414000621319617176587486880435340214249500744327275958490629626551990704362309228252318391893882156427509252609911269490512501925689255788187711504509839310774501322104627153645381590163109880235397837855275422332799161375690676105451975046970170718413882142295449147238282632147513163161703000719184297616107439537232084313759171231113161607847002406028790158449302480932881091498327503175544624383202537857015170223600288897922773456541266747464990721399428555344177869605546936557176650684689058658316036109219517948344878208246600937864072672290143529077754991092964104724112870512220294270883123977958524873576840774026255959179133246965711935989765772274234047635076713690482557066351320816114244574267683320193318409258984498822929997313822245572569934713163080479007085625199328809892252744499395554686171635675645833209897296820256943368529068637649722004488073528491226124149694073703463497664882667605280127342962036632232998070112546257875088932027415056673928527509075151177558098429548562517143797398438122646563506595750635419763026865730628663230421551905694005890227255811469774803893709036093357308683847262372722739460266581418217415646500874971581754240585556735396129112628550177270965069314299057858071681220608079511522914167850206593334268684384550804734777736602091390104798563724146710257560302521922436661854426646726281632415431403396709502615255939969265040973331904992971966655086400053163814166915271601832809687280016917172495095038254155297568761357756866508361329460065984567354004283910839707699764709144972114439533529877939196640116038682586164092804694455151852765682679640226988680387745108458825225039543698755684298571245478420302334576503748922305197269719361138700252076108843867053162339265651473048914056810104276148829651174544410505984058416048831634360831233143597523800575557596882856256783191889799531902910968238625256341300738860888873351381949488519689879331533051729891140604903414526559127380412679589194995688957348964954111653188210650493477447159260666729881183631624498076248305071639201358251140508922002655178375814589199142430461247042524359649862862070026697010818380470263872257951859379727429240705540741922808119468402312692563576647217072442054681583859855029662894615246537096016041994873995157403370055212345007650835206029152277285931437143873988761186098369034887016358090399954474960848027484233021549619311806200466902998345290531536530220346967291099553704179067229569112293321660948855132880799045636925202667677439203346932462747442922913627679760258734803807570183801991027430500563537103540019016760774715031344786814108820996300176446220392232541711828980301306003752966451488826734155850645243713073648520391127704638339567705300074876996646638832280969008392842888407181098588021644480349508587270403965237327049005263640886109665037062764249505990328608070138856124668373062453144867336167974831173832491173117756074218623607372592311194810108537943746000719690189623820509701178293776536134340498407413669284876674278501775501116966617798085199603617228496224276483873749360085532857389873815344727709193194738837652383416165051537552958757843869173385678654516840216534278688298051183119062433624883332107439700909202272041783707160569155419213458965215472630588629122798465090319173345885331803483439963402080486535174563382743482929298486855371238509418881236620617418417472524624499459606880503126362398911516222136863772512822779873310754391405282652098746928389519773238742687151437572793600368732712285251629611574749100980252876094120449285189615471425185685479617193063084042654722654261572772711304182200976711493315600448949294142393232508942596556340209380950412010420126954105571829329301922883893872145008579342301213415290956100193149341512393492835450362245362647071005098118079097221699389346044789259182123599750423566293866298243980905086955241725951297280136427967923610755658027855757346045591193784113282087453370914610964733942179764027775870185533943918080905103277159979270031551030689073995745241334255851872039568504706141131183357277736916055054132841877195195086205557271201186666518497791013297770956747464485352276551868801103064510914067999894069169038730965384333142796584471839304228577140467643257039109463949829766634934585952162549768772876087187688471908038695340293535952402858622287900932560706286013368716241391364531838931855692514297865114134767885519998559792635566384076825744077363734953205654152009499005093831390605203747132514891511501784250279402584946878630868098107315765135973134365196018860241673473674207971656684657050498004089712864504937355765131417250114985671649048688086841447268464193688418596843642045882376652323089436058292866969319295698213978712554983840759537393622453327957712787573005368770467730309979580761975479792088756749915021101829877007700123430964514794189797390875443453919510852718868442090123668394293571648697320643652512670561020774221575989353195555130372907339589071181794178321347555043349453435658435226570933916096203309997137052743070844679228063178450891686538495902532417742774514329729156640881052429341432321370250793592750537521894964689633800609481669656523977049586313712867038794431557851047784829405981307030777998874071624191356564233946679231714441678611979198507533238426905524942624801648594217065292487793342353328764829020067717416837560942507152980063338976998944097531837730118343643111895591949827802344888056762054597393832013390739960839472803966612331683664093020566314988764744468482508970995845172881182632947843130867190448253944859144284203802105592051412821057884867042242066728710716156543999354098914668869157846379471633769321614374564818569781987001599038308143628999523922298086044388802147498310725397396644341589559118159189712356879345035455692328232485666755174868137858391063137788899981527493804021893934533261751250224675107547054433317208058628427510343972361885334673056415923032703669809640652918667897057708407239056508439641680398613969406906568882380043552093879861091179365719930796925572432310423585737142306812776602158202398088679949620894435661334181889113411553015146266271445567510645908526209993410555298371059528397076571538571633350234175595757089072878891250368445378205567161467622695390950012889232230366752453293777642402568239353898949798388525714642974469414832845763424621657395062118459024317802008798769215406360969918553736818700868366725397772795222050327188379791285780935179390664342218724977439375042727235292276140001797286622192284297628317615818553013465195199080565156696779770645906224569786350195935454617473100997632642884459518901953817527964954370622720230497094488164158197294099438562330712642541886803166482656607967145902650764523029845430691445858877460104030104777361950731836517500587455446003088972506152454039900885107348392791532879495775671987327075878950766201870453424890737971975886752573251052670025556042986098377043477837728084025141626836461322573787130254461890484554204622065883084895724359268629183673706109883199448552705102733215144815650457838340923597278282847883527644014828682425377540390154389144787247052023515672525283374239698109688840994571899778988635822639196648086341380656261969978644934943330519072265829488811094822923089991508702519118569701238025119344090922893966971779509201887086380739507042226577728559602974867570266782900881136637234798383570277787152479763921408086724354781413457673375536889041352764161535505283696297463058311771858715974024191442375785566302203046611867373666391106434455348545345708346248743633397644745272101316455000285468606939503172550639011019662577183177146825418787444994695012828284749625457867086269975867774226639260997293575439625110792140658081161175493705864377649542568361638890468960882182507455753068361112523153127982431573888953103264208841654011549163087683709547410429113562113900956907961750839578403457678972286622742212240673331022833347687315174474750965114913302443157402352402972011007926133236591653299031777127298762916840734355648612070960343789479216214890376364024394132730155309953691076346975718540441617855166394441335450938425539630511495872478459174244166377984295124983532234091870002960117439811158153821579666482114594837314053308872710685749736051897772604258686891456532683967077306746176952430413002579669087310399279723446819115386636458226581073516162321628547439722085254511956685761649315472032399799741130995030065954059567726740325478912470731280643778207095393554556226805850492741041322037222278143200506844645013290772690133140358691564830132363553290134499514659376830866173855086386918452119234985204378508331271018436457601156634147436907912324898994018884961712915188804007345183351881928743862012685210009962165259448794044915700387250010970613942731883384011060908008090708036204350894771766321926560632617778847300002530218316819365025722625584120756648721108218494360122279010378673250905001902249186641175984630325425151680614281977499500570074022832651353815794488875617098760224143983969520910365919309041014583015413435254590507655216123429314316330775497141731625809287158507793162497392982615755087770904618326477814405000112379158373453740712257938376912657102209836554976761524692400870523585946535638350729766078127852402945654936709170760459096356522066869261704766432857635842834025354561833115123968779706107417511137597741760811277353355793637959798291815735084552608559882529772681331461264571542990073842304502951609976956916330302157081561728510962381337557942872412494096648376509727636501412897620024865232814184753989769412331792306363507325647898483913447138441775313278003076171347667993223007810275253789375538117933836840436366722343321107425788400567450461674041196620496354310013932867528132407168593468038659797294467131266851400141101777880595648282695726938287605147639504095955168588251997320913103786007907632214749159094763558278212478385731608678366834777233043221367336715762161092102629980738843061527825097317655371097304724119055627704586387847770356408020813669276856802455406747507414761855016308317794688957325843885844520879950681957383447789901666398986206777819019442582000639312384003282527764283255151613047524014714805401564806023110215605395886212339250282846445872937291038408016028842053823071681311100645973028144617523349288712533658811610741414755369646237776499455526361047052568021812078876340427333364162777070826129372056305412315191154494040442343671558535416968078432286982857609104428143525588941176647042966400630143190094759438235053926457267589005268388347739173244787479034838666879578061684115409782683201338875332933351424441547652871946722805043608129151889902972788544299799458603144147752415849346918089200443973396286288645419975990865184430773864751166889704276818974935104718719174277379795820252079304662422060602541668938048175053505520238998246241272789145364564739021548515445435378389103923509725201060699969736222129963779094388507950632400286374409300438066438346896508957337778514314841707613077919813934896107127067856402818060822881569873190466043914099655707624199732916680372755502844307511298011914506203812548836273018339181849250969857389458056043869911141457391293797825607279349068302656096476560544694015797612191221432704453218997204030458260777436422645624366419363457800760356056803222890030776533997787524652638862758370284592901514933990531878743766164932443888540968642379521697696954285030347258718336458085507155390356892683286973143166046995030002569259435807634470124311341374009207547651834569058230206110365215865829208698418071760633898357577028060699083383645955950389809665120382647327241991501993326552838026317360016740247686187353308959963421268190626014120766849428715501174514163650517671105041902400773010764130467261112405944036288516622925286950628931709548411637104784850661127308526815678754689299173021258645507574620653442073727873153505523156401953770942443865594588759198875234594471997063959369974421155196506698838606644402843312365629471188117643612366378605827643011975974791494078623470121236197905866396891242357727060912678691865607957262974990343964938585026411527421919066675484313624387690806743337937608148440773733459620221923120647051908226855580999683016814648062340735647660695028513353554267041068959486853571889954186171225480228823353427075482573987931922213389297458586414112046871289555668242014422994798846549099338615480022334824935208917866378845440581650206333036338141017696513977539889585225618259489854412994345557390280957367726436596797672661369267471302328157937247225424782147986483783818807714510849905684452327535061105068509768031767734999966944923322002808136737256128059932905443811909944639902282290973401324847357818196897364351440056820319642804577306238932023821723669369847544204692957649761179270886797990608008106801593360164685064621908166632737165270686547057094166234028742240216472966068803999455054425635461609226696462142405268253139372116436861946748480050205917880080253157714204408429665545597472824663675853081120912570588720159040341434463242312657279546908802860076208825192537853824124746182782288867565994636982374034100558996675789917942941615779823163652149219780732852146886317250001948270778586455858905640699887651076895958499222548874594196753812003434922980133382764096274472683197515938322671827159565786358900461335658394621584918978620459616028781830307004244684212361731166673734561603791757349387591796542418239882832494671864996684058602111043059455717431113064299740258290916091359947207074595176376179226949406639789033571557887481506312077413642904287371090755092184102074285790010295891480071117127068434074183544134176039405897553438757419238293976432271299923613475401844656887695874353887792560507046228631425392992185095197393107253178388766840612785497714322158486037500918174264272564775385931929792307949980568706812679741599940653212950108989243758493291712987959031309114789138002107847262961537637025181866385931151367636684655467244569666417653748311136133654202437632588413541974114723135784141588364278464861176536837289117259025393169637042276809017361817797350021208471798479234474477740526528549127063654067633102932012483650920502896035790399236639824613255242518405073438736560812491874585203127147255200027239857310185466554462902328817828344790111187659375757372154522982204157164471767057149669804801029343880226527780849056124536788908724204160634787241572453978633132312486413071454415895710571854527064021347499182796682498242286789333122315109225657025895822622996943489016820407379714985801643772806215992351667418066537286309643585035150745682827586256230564173243947272858261302703538828206474078036997576805866802370583349710764070713368866435953461353359778438372493409920509918217706126742542422457302388972454508983389270991774589209726730332678293937825041524853013761743443016442561103502724514972706013731644049026064097861539055253843886698105145645538347726112842880022065429868129102014537199473519364536248644185693039306138623003928563214762515643852969236746757005586575294042428608732713975816425682804306843465099457512248739756087490921476827555645202762688052170314773722813524041996288974100935899916578736377635118220512221634721094208108497891463114407237576438379423466557785443472605924293082730182866495192588244901733410080909533033204807630155902555127431168907735936885004118198098055148107312690373117630325982889119696334221918831552080873417316054814612236731683002669592919607727658083659920513306604539113619824010846570821402139449102485103276981316113673027220767015577167391513996233866885184307218164880717698203734285113430215982674275856280540644343046182718179373635474357678195866849509639342999708722027607803204882516066663008444602577977849050844311003094873846908206438297890166983847955746096237281865350494053415106370993946688871516779694654452253995989433835556115321089922695728339693181359886179752865090205689288613231018800537225107409438493268064917317692562751223388399911322305304390095789633413475304416891642210174758433781610495394162273621548085324917885126040848337499412212254375099050088478429700313150674936384233829181740889317026080530293685371500541176462769844871263866872723324076439954639741799492363955371908981312600027891710945800385526079497705137628032166462882423976870577493786221155127347586968357858137795128043473932371405228068925227628439068749442632771752519836282099672840171491111124814635139088194354390014799870822823370432108524470552547708836204077282660259904902504931210769953907144836563563451087674984937580670316840329057266533275157659529773212949476082813135122651205703370407991935696511490453902190531624213105902209925637901244359077791479676894910750923787906072538798131871366364078621667821216538885662054635403335368839233924146467817781591191214515617452258628122472940441887831263243360761969018640205017534817303057485883728771453651964089249926572142552551951930653394947856243261408990745061837914154148276603136717547812110483402933300946587329796430711684025315747657264668128234734787678535796843244921260116299635972156320619389149596849944684834112893403520989091543911516581822967330083039111873260366851560831942369900424047484301579150080005237790991203565950909677242374749218433282083566301287190690697795935096590065134410415261922794858512212972821638354320197060501896339487674379121150256578380981990760017709827603017394885630666611666364491551981725504766539268574395337691116251897041092297399991079410693964242672139095849752836282802690917648903211584978327758912837604845512392323271768976931308874518097871554181418469819406793738357978521492525141210958311515267296601324815203963382892845830357207645804644168480913811756315443999218962765437012940446415016690835142482618959581992932743346632439275250400338789264134218813157010758151641586399903920720671861428497129480818014164259797956771474575189716523462544870778485411424681968879663637272801772241230882372217674428148411440051090968320204156578378324011290804274751445980441518633283883972686223080399759275169207871072769200477270883168476760027984366055603107688759648262442510101705261586173953897748505483175481332753137573830342305791291183447349956671790304334157781051190638047403700120418737092917157038524676183422375113882151643451242463289656469439486736467646910695483942272609043184203216220155741964949170001588409200756094860903194753290739991819586821092608089258373410735534175766157875408149741067098260492615911333577847512484152754969234049401378576691981059277788436458302774087455539301453954412811018253699836593928644843052072488871600314764527435009836336961166021728479639938853767023576397323659037953198861567667978797889880778742440455312318144444606596677495904699748388538826485984415364725949633616184510270236056901449541219773605952098654646317288081381350564235979216129733567124331223196836617266742677306108257141373203851489633722343514277055932598443152565511744487283659801416269682486585789520287427137810493496785146273936278406910407956197192708273291271339307434977814607070687076339041172916923878084058053448953919495569654361298927696706871097590864189448004982859202468894995840735422451142488195899680580976465484026567436616728367501300131199063202601258808063512846029010538040093644168811452531995448925594222920119309167409384602557387196923586737101697823731693871556024308302708201649411609304867580391003665529251878808636862258430894261602427405427473913410415686045704397424669960835341595712791342025392816753148925993061207863791025155907520323037413419891520442929409315219922884994563134415749254224221374286102377883205873182640675811004120187981966315767675472078069174064102950355883076714696797259129663220254222370749726518394621921844358006615768177419902858554478326447624831490811839997214573837687070772150623913600207981505479247819763570262303203025299623182552706739339191692202679777762662768642382182790551786677070996245857175392055251571160581493769485069907099704885886054042355610223435210849685270915195572383289964798692349239504031494651779890447496338070801594893485945624608560085706408824882424087740320855611977085329737924831923420995267616914688591275183984277388977091039724662555106116337464656982364106025818548421830028907251948274084859081814761626245064968123965507122698882502503877335443152498048619611854319309132607075360412142015935659665369990398502216493983667303247968343911256182757675280678859373244833432752661789324073442856228066347363184255893846646674771044184915279537107151904525377735150978662570703565056305912187455886457086551073268940692770353829502177839366260140960777574492841841780877504531975010044899073092222467929713436370406306549751629781625039550398369313175605872195311985031785308797828178017005137333428802228676520647177921907954591376990961662815368201569198429238518519055771514080807248229990099156470743063722849538733819479239947747681297463530710262178832898145899681671158734249544624070459770294154717418964531634441822632429974048482892291087434029040445832382128146883182428464170495051972001603495352388365052468617083421158055572441017847263359148597979253486578154939484991178096062923904450515417873146197947661061313765209739341396505470884901417391211285726857226191543830095964759132676526505806769301829706699299961774318370829007927547821734890648139251547205109843311692476870439647474432865454101483213684370012934644531268993282064349627247053116961430109848167450670422441659909672159230342730245799353629854978385137900664443590515752804616293556161418358666240278646645031354372518301181319939425577761068255717504922020364288807873687946067634946331118379457367015921905584991886613466610447221500890410618902169541009545336881003075045780048211502522697923971369221024786743065712193059992851334702638233828425868137859936441919638879435527807531637030194326361914596748161114429404141537028205756099033414078713174493083244402858110999997575754526698308934351213309208651460398816786136691550291067888562014281718124225119379560357383277864466538586186519657566642344177464794279572113916869989331490140815970152878722975149247975007207078809542239342444065737107271172157729944050799616194360003565055411083307519074517184335935952362508584086469079570828366381687629080541236840996114400592629207170445536621606867929025385465208945779877983314601393691524366016777753533164144038868990856652408236159639584710088800252878060513612770342964262786670532355543607240361845117775690296719956351637012895130463677080130385154640875712858298461828613782698015128431076345523990360673062105943275108249354268506323422664889980280574448146077554969675786138015677142750270759945902142799025980438828610825081216926849786326918949469583321314751822133424484751212433194261199260542165785511724221059164318905669574792804963641314572996739783046375612516982782372346399786836392784503957620855516567059913684847952008960519957523369449033664563081578926651880002373683799199312430505854533836117791236252234730416911687173395423592607302738290527588991816805248696235854999825321766654334571688439247041407221141995166322618642938599781903675527137472664736215481302042363542991567426631670472178509708262255148000757874151670632552534126095686969889889838577296814690110855710144179013281012409521519977514524143362286072939568729274530142144041479539104958879506473682446491595888304896571386612471139447945103500647673555227511290055461816348700983805321981437146572009801226265218965901980150483593422399370444486010294975884159784498740222288963098014250022252035937321924903571923435446611105667664712073689050346246515844379420031728658667136508695458947413824312232209800704142633736750660781886854738516966210307553248800147303400526467787935835028353536480932706400814062000961366541306322124012062954628620545425646895911269588527908767953277209606692335003726599032528697504134124096368835856135381880926246248494538319648054217215014034693593045328216012736862549084470344921496327246860780359308958184805012558268536092918987677220629166840448712667193488470228149650618289535640425151188334559862262300965728764295195393380320440796588123805348255405752844601535240187925408650196206132591640638705024074642012586991916909154183027985863974818445544669583471340463823295660986623348871893080046242674044412177155970703717990358600190711455766379944557662065530304423249154307859672851293495864146904155665468907611381253916564644689925017361429092314429131210933974222488909618943686645613828009202004634916942250126280167327277318515660949609925994148289260697101015576567335657103684476892393287475509105418047642444062311151899870198169728719811036050948990890012688482264032612618786983692703044507451492436404835377707328008235967618297265410110013425735991913108414989640650134182857719476601957509493690530489539832397373330623219115504129805844845455175106711850941527321059797955077551624565646511073159810072201744975771486766736564638626937734470248419449237150964256245721190186408165122546793210544118915340170634313792476416719561961765294405885566075605670378358496472838582932453952774817398576031830913502870595236007573458885170346162585566811493065203491940711863663002523985390731452893841803921554052517631800105609440282970881200220933129885372409304011175179171971034010561439955407624762663776201641100795567235372660411576272391319156283838406867018191851671978966644782757784954290920546386415256395440045522598519962303271031497042610126022016185572664009452789856715908377682596184911947198437870280736869039555941536573844907874577615847490289924771370047358659189944554880053033069865222081613087834678270572563881492678676074789927530495608488619559789197785648148696769030440231193670959073284924304453333134616014117216621736621893231907274227086106447313688453328345803336257613540345199557471420491922745834442876222886676809837800740942059483517644978046709966248991483119544848518959124811081715801185465623325355356967148256695513623317336325365353313667013348417802909067746033133475356335836185121339176349473941815172649126218607075966488773052155072616760383824389955900567394325535999023871041108575465264771526711236461264498065115948018897440490737285651811585527062026978897618995592477840875467229911910548161863568572666398340358526686684646529982491700257137745734286904815299461784325095731858561700598858992702407844085693275220025489851565784328515433422490721866702348235551186405173475112506958715978001544749040451904222347973384801094501868585870132276408589124575626933764550275379966945552248166327132765120736308740755643406389659106908179778055090151295894573912662956981003200535189857819632685052473599093244415758999697846209723445465196711528609011119077645071583968668831535311902083742575933606073845927595412231193904130517331112178694659215232652544212324799993190362736048955432738465315318697377811248329248781540156066855579600408810809321250429602219993295241121257620576550782558640483231811099273120225958911467804639812310141414936271768516757269019925194946148996066485038895357275000273650439720477817930879930666068029657861802858655399066645975481531398463629342828714736139998614302011449956284092433352474190876310896812122681926752385239195936143141731832258217386265477762220912110084803000585133955671807967198822011702054972580641651687606688601910919142717433436229497476434065845198156417660454239762524167200312229337975089556087221977725791856372521585868178322814944487615217294525122626359315322181481189604005060495880144533052777266114472311167951537429095316149375213398398776055217077560644317765217336054844011481638429480427551313210336112290752244286288070405110542545065967486321787145465916997110446363532946482423748966923045986444594204988370447328071248271257051061418483968120735050937977215379176111553938785129513813417405430409176991222520230613084148345543002823293608124015460933072267389213649225163523292668610895902529081769606021939041817548530213302623201032014806142709574544582065724636267005128773072465972985768201701634972418704562732613673793391720561520562864975161894901195804415734742106529648674593268460265474955222257708010906812578125928327970072868898728761627455688371201849847352715181881082364138105824276841466103835862704006071563835036878288728252369334225168183401792547303752180047892814216720919564493078341512833443022986632894628884270774635189069369529067510720180897624917179299271635228487099486978439684022441889335773067494705039979441499867011037445969969301794829504489717413171878380397721072129010495269869988417679534007832050508579104085815521002443365938722944371896378401651419686852602222813234731631842909596300501612803434334985453304476971327462890137558561575543490321577275597145921977822929524477209161871651287142243034192441067788142869211294817914298239737514202362926156985299049104909591675093041345071721294150347805530677221671181730112541514635731799234546637038654767404703996107170213011372045311285895729714783681643167265185858703444563354419594843391259579201622883938850735064707425275365207859117051473910219649599429867344873367592939623690539702206799989436834661753669722756984134239175607632316054808356195058424620443306908279138475545609367239527964205746339127621467375888288832787437007488279512891169228485605146346125007119973007823401862221448900555126660267766582337723555528298168946660780992220242095749538902201819034855099929101754450672319732894272410393433087607902103439312483443394066387429862908727375053128700619154835189418518811810648822561215805130393073046350694191039073765487326316612110021357509302734464390876471784495798952871023703553531214043753033119376759861330250564269867426188051120308633909264347314300341353765181743866035669771148032856664479888308879047908067903333768279420428668099350034081325790625349397834560281545105691954377805033904093190945573355852531190646917321927258099522789780174884247463154295786066745324557865342844317312226883593715024777627292487741635266571645882623576117630510889717148446471976435459102694093669691430140374415048804794788341151312637217051169179333267245934358020379124097805069503242178664381143378500135731460399180461783020148724287738318266781686108181691054620129535132716444433367600004152893484330480944758907191599625526746386083549733702969250234394721927064838556083880990258180295014918809828341629155283464250212539130650965519155464913862312340576074716986415372999305220182240122896852612920417181299669230809325478595846516842008667973327397573171568795648526288242019350887952870244243308919026155914649644707413873633836696625437440096989908159139399048015421460551134480505538524449869500945367825942632161130693687338874163434668824855037926197423313538750585022217918214398486203776310220828978489539282158754803782166801931151059986622200173396689062156571938527206688467228587831785971846147697177599295304494596911478478261310691707766664224864234530077637739052049337490078962483464824668735814916092412691743311794594314765889214301809549076425268860280421688877181870516826606645601178308329446875080023352425753094932354701232526318226441323941390181669264308294028413233918469862651015980242065465979737981654584942427216858338143080939340275583418298128052713967057407241172096307005012882860956529680090256551336479286594475720380225549639836222945114785010263944621112998927713478638695298514491676096010362163325564006360669010997061323896836464959611959586165628818015637521276873388381059977014419991379315306226729176738648475714213024445831221991215693351398709121328545459250950924659050178695409758137819581516563572935176492358576247455463983120784148878987842970079929417594378850021125865564065978511374154051657995236246551898320795114683914060706336277791897030389472532297426442525581348712170671021158689346932275581654342506719023086440532346492969247998073164662419652556723087745337288021556372026944794754446449830324844984242700672530581958216996688419574437932097702570529047874201732212361988323515286216355690455497134487143863524561193325206605304400646501560397781179646346848432170888420440644204167021960968870509416408327848377530739396028005310183684806113883652237519141721168336049319104178088083761591501085099631950725445316440724128326294033127952198184756621331461671404819858418184570710120227866457579575651549764933120488280724457667245191576373127067178853290199245945993759028993546377522812074836951497874976041778343517239321809919382422268873267077962058411700699647464279291400157798132053730775809523640885401373089075486744449824572794061493240205105418434553153294776037138511192525715719710323354961331138092007890443135260002505716160013329478659646990063893867825817901204879439648799096685945530556745189285673867371287166022952490114438175669788315985990572171202714838113456557676506430597587578476122963610323042460125270478283665591502559747758239967844512766449118189535150073051001239812796466240090137697521637744594010606656711778884064234724827447844446291726522997269213561889266366968609293608794061530333774281025432931355612692764784720198268848406215820041131289741698728873702560701411530088822904548379860468218323020381201178127763741156663215614313745756656720603678924402412920239211186517607715445531137602838087055878652703203407053641845813837297827201835648368697425820410454472920756839079587110239841490756971998145627903851875568260561720164890693656489274552581177978769441369900879272303954799193574378239469234269399435320793299168338866443250773300516061176749938929455290381456541530648436767430627597822225104418831764580241841841764166118983532005680346818832541060917925944966478005329726296351581048076119873748091940492462183693491503150754505081494703355053029072552817322880071312651690098415360566822926170393499275557649496173061632556238617320649331991994724971773330023070264728320177089737873138974414790240215226439981728658514870852905242345489052259988416376589286916869175341956696518560225025904468906249777007628434525832796428335035391581440961977971781006289632269531662184697040762762483709970752736968188785796097622363047400985867930027081284214369201549824435869648553986858729693158325083748114995387286209291529776507700564692004316070373039626749344371481319014399871238496304175065572600281443802568141809168816005195782323496043816265603687375336856437494326358611010220825636305205550483277259508023175726613937638111154360581802918625493458467211259692761592878098882160980679037757302915172836372859141254660890317422963989283403604918745856054137940565933949702575316647851067901419518041128199897807510788984624925842563330679098299847088092298139522054330931981616302955421592006891365091222681671927987767123858651597962830021653137505543202889112481312144997360234543795983377698323519622426821189365739605578543928101369942323955751863910721633238152268233761147294105804577652857977034500225452904000576731126487119448272861248703874012321296760569953558305646183043615514102676777062872358070110073774530471544626047530964453275334286421433469104515068868932064287241352586484199899476975256537963948022169905866153095559550428845795572757485933772111202848164777147731150157480785704288374626581756888832941473497159981316906096276381890310522396537413773901734046365583949468834109998008486034713013720309253074275917700260306649293479728161966071253135952230372665547642043428283584241967442636727202633164475976946394188722532137789131093351616619137867134057850323713084847406576217755320981481777662417068055883279113115193226213302002772121024985116987453001814130268088723475451344956449767089113832679672157486732764751449707951911050147728370170859099668119812919659427255874700945675892838784970215967855755160436767092575315159531408176907643591743134796298607991318728564576625200255852416109210197117160525485307562520044272028553607079618362418946505931072485259082699506076577795913408145794035154755871114175794334238462953210631909721217755051502622737441330086505107107724214936145345845585338909749459932958939987682077314443862305038439539762272438700349097548610640816899410164395422475013023974522955627321831810473030961261772341010369305844246327361517850765767639859810238604314879622283756077314559482798476647729819990553673877183527012972700231112089894470333564127387649292978294358710832125869416021611520006548644752481622608984274990088265993152315323406058129610489548919923289279354752089288913625889792397637864913363923562196514023310432208330348920617139520640754297305171831753508761743564619328715057022817083117941972795415472895299517120084165615619997568997627823400565925307358893159094524550995728610053431201498088172152990144291708140347952953510493897958151353764895484172969229421487536530525813343657096409741760311767981249288540356437914208889540311378129692851652564283653784432364320765265377445491819606457910488176899136769889141608404796045570975289452008595559689829912673483885792648781783697310880854319305054772448714269049579696010082673970347779986465183783682213780031752894829330687948492830382100142674450813463678225127693359815850293447137549683595220992484834578001795138320001069686215892550029201960193226461909600677727947198777575414523250195128361996899747820889221149531715458291641077446475634194610773282090498638273481614328405573236874200524752577156804724802786798202355762969105190954063352593699891329540443441906307407066301419430621402306044729055813806209760748035091424765771731659393980911810891269609548718804218798992801588476362688306761540414822985958815558062393423475523289166335681182143776759288718800661422776273282516091592144158430830615883112612738601873482507654673779804731551676014987394078631384692039731107297555086660722891721695308178917112095708005502921177009912405545280564835269115268867823751807769043121627944513409354511169184218384725772756980776351415050686368985326151175794428607927133152245972740467886216534772481876420868478469243508272857512821957217375937823824544719044599458441246456294501600854840846543617370129038473721525818262877414458271824985720844103662014492748586318955310916133024610942348343071765602686743819668669417123851250488813004916202246680350094152108375073620988561668790321321453986112213317852233394738654552286346103947956594840773328049663144239950292366703030857958216798695037151647222420311564010405584441671789197686916124761414508899357656017961157406437974943945875527851615522018516432886277474154458360432169322561138158357288800912373872883725196339362468668182904377479082932843253510136832577255298793155824010212324941554195818237663470233398883469202336869576256020948727359006354300731592646816193107188568007727651827370047371313467702037234639109660535620896218476700823776832940004960736403082223790244556257195193523823395492022027199661119281804581862571325423126774694180344969373235959168895406890639208522238706459583681995516112953820165334351878639235513306418841852010946254112223332527023334263591129135906443224740569578371034529034193098467578847355109394368680459627875235758875159463544846347742444227112547060273188153346531521751626573736724685661822837315043963184286986790796456595258549695812991523220263836086442939821362791223945350628145637670573827561248356127831041342331793192489710102520573627406541005522780518225847337698429747529445922724503194378635502356474362466752807863067172880311191992613061746637612971109459808577722142850653575799045017276760067888824207637904254765054048531715161982855077989904947278869037425519125279519572874686379527528880383332640660332623402857941275681234822413667131007065631087184792576476484743635164729372931502493505959478064627859862842307710161159651097792455703055304412729851543348929361490889829143047153308059394870341173353955461582734225924111319143298784216633871761254768060376756381156128670896070824523056215274410684409963340696009993141122148962789270543555683321024764099547188353678483220563995727593112244603781712708198991162829020043988567719214261501868903947622720809997280654032037403767438779056711407601422161838726016511430971310152654599238631390062823946378346454488433891424316973575814975610936943178403865343566227391027220587653251162781729703000508050496998851119144327033352306368390427108925320140271647325469738742987618789941745034934084917098105122337344248063638559098222616846835068572285122606925650643670180653664069527282480655014056652126751521583574000959906455008821923230971902538537095266629251280142802654851411725885974448264996162876624614623349437524874983308184417387501571746975273461832145962337173295719124240891340016758995725238642858930501536998274879433291762025884332236176615978311567563296234321598813207244639897721490970187260303126269110922539222478278034009988401840736546752928673008762162134373603906784671228214811874482242464859583554293952344047614390707834063274138091107040243644806565560234417291818169091769453848318000811555885499675369549160186772263229832305598363616502308995965047344912657321783492014730649969257712657196496284540995190144336148426485061416262172304657491616005514980077530776461406031499855117212939438700275351033838068909483915600921242604630691946995523399287068270471281366920777975300156005546548490700986822832923304556008293998259908714957805295093224747473986240768696732032544210951464724147658260414794839952874252123925530328304011126690032068845529988483150567820088959043440306712472147331840677619236601876483610462197323107221300688729258769239774220082705337982974932958388437491944987551283552567878392170179187499985418157408742953897492157831473513481935530769894281871271359204896101931514337488066724077463920571251665684524604247951143002629456684665011091220931279521593255365732093364058282231093674938354292941370997676698273873195256960328368925212476608180379770123506740105078664811562292870877268480495290755109063336436239345636905077179438722382104573705087586577931321165753765751278085544451779497688184895805092061291732409907191267672894526867503606743396183913513034297684341694900872352095182274707096519013270978995623717459724647927883132905871195480026709827969848762690874559861617432456147767272194699173461375730759980707260334846598391963177456194967590738415331376914259327392521180583521850354025940565956066880584570753869196875473841604138112731301401207064247521885109283002367936715816867755213456603930566686382676549852812174200438368119312164381455515865789319321418188794868692132376938764765280294041642485281261604831226196284313605929957357838174998099350985296192206905687250762866677506445992038507694304518208094307640872208334164723823465920389594248615591665504064283680088393437283076907650207013403774210898055288957186388825688469588207349260235732793441581719217326993398237775721547430395079446136604069033366800852416256968574688305648094279241603478793076785006224611105787877315354570796534685270526831636077139786652000642491186110076675717655274355442025652551568822693405003806883320952789639623892312848446711689195219408112974864965849421451688550318200733301730360157451370254940522021784780968435573822996104511621658860800986785049337970514196683819259731940165335223756295916566880294057377756512755558544391212695931956962137315690033653444162479521883691574897723328910368647427157969768056091605808665609002162130882556790795951114054727707605512951816721573920068322684987811479434191819940417964287338167265948139460940030519835235718939854590492888201977165714510723732884676261625894214836635980199257555339032357613101166003135221593612750757024227163593015074056551869863571813616885592217565525875007455464887750772067662146839639546214422946752954565664140594668330395364762943139278546047728903390890809481027892348733151937050949684781304875447506055086798672900814489065777854295838788207337256777898874022185267219587445840446501600630009278971225997583240865554930950353441729907615286502361729510498955189630304642306842486675087925157821973854845251710776365218446142793776275940935449978575831617905222386863606651120247265526833269654042935163856530279734591605483930991838070376648023352330768257648877700322946210185863564529404503219829172269262110668218004341682368510592482953121457684964711371391380147176278580788749320921553271298387973966375518166497812280302384572206192962611090185193874420022380803657487519815155606487669779330705486112382083561287581625179900645724558170239061638292232615391937761106553083295216474969428696573520014808547225552750853120287555200264529504263880363311646077186675428070915465925103519758644932297493129479296409464219854420518922874940771419439384787647692996152684361926156475867364030509564082196596461409557743445817722003487059554298579586393718906280320263230099023197256582115514184987852855150853527341037267270456744018677334578642944957559484490988199140412253906905962275883776793041639069139164325491431838663471923801389954226107411364844519915515392211484776312415142787837931298278340322277181602750035581858542751357335348817632803217732786583435635888158536731171142708584998525024164698284992330519513926966366864907254194371956065781001641479328210190940658233967272014394737710442428124508923125521749635142313260625894309576331011215311869645804278753236780461185567719954563775959838300732218664021866361429508113953531574190688413528528810543743685995173448909338011787016642226326156840758263731347373392045699484193119024734351024174811742225390233884185785103720199904904390365080336826834732789703770184427905064310956925416243187504121043639306772604313578033396696515309450962968571390584945600859991412806873392375630352329649670239417081261558550315589478145448244246701421051022057905263740479571394853523478108362708681446416543648119316557880744369409241767488906337888726599103058692948452192924136649513618710972296906669543479135369760388201425993781051320730005605142362495462532483442814333130631440892821931467559878129044741833435511741658409483690463503225180384498135160131721820367659942698796047490637144656726146609722343237253269046227064942600832988445527189057479858740271875431172527118241464207109547794372481351041990646638835765610155107653647573196065038568223176273357340737381518682038523186302973757065220545630311232873378405100687516356593916025768295336167122271983839051220871367289066962606607382335057507330439240039020770363101636622907680442186719248044727457908972074368237192445475150635557787186488021137909613564957745500811419538208878902914617469912224696296872153205889473420943231586193005610924277453287736743577161946048423800893225414634362098183860567650742728132526880995990858085079388336635802863109190622282109665539392071210820620530357645632784712086483629473860554816980148645618211438752369793009777162492075431671399829954351773506516356772456198751801202773120742625057840734072525662528384717444384440731333863665147067768568629111275084258326967374464465072440484983755665480582130442609679201197277249466676732500500233455349033308937939137108926084416487356854044675385338761011373269179505386118849899371504045404747043480171099963868782496923161312885619584085769869174987607206968120728548478651788247845449630370017433791294260330246994246178386119207165301678829303943418944502826964562448497423339603778428482311965593745918653602881611825222433044831682219985808172912944321168412019184815158627585116712935936425834526520515070631361273254532914572571042040850236272950913995711589439790870870376091411095286307087223758979045220554492391784543736625583766480770423748667037905422251876949073240528614112688665638338634649979945061678701347992013211674697819256217161922898115345496051736121802697430893213802601733465036623716092002789992570814462603687595602945099922943575672343135432060654334293547755643882212892299639855753352155363099724819406228546163545737116585936051654070536623445693578983243926731338252171021184872970934020303026093279103093685520532112717237935118475622845653878858785668053807398840830122564487202333598248987232054027080488893853878828526693401655839350946714082166702106679730554366387706944713360380675555993171231577983288905954989078072698834720450846362264728706213893884846360274261151548973504896370873575490510043334997169113578914013108269636399943682707405608418771130932215100367013762324220726315537378025718583629125986032472727842586981091328608685542746518702076744854687556466921157588851617821754225940036061608524687512123830509453135036054905986618273855920940117162628231400603781220575484190792643065960547177612749459184536561773604753436281778035414258650507983961566013070509266902773054437982635634746333360881934186707588384997676408744451465250875498788802253243583784548663037639290101154593260558205787980955778771002118313281376651080866214425969990713016441364118176018308336052885113441755269213360980002221418312367074692922772504799774525097907315520558867083281624139178244201441120590125415102774684260719854519861781820797298969449176755159774744898513295649336879779426115799446651259729778848032981361603476487763824749721632614257942336356457866679912914665130610190129198194909916072873961844296366182935492338777966619586511932574449952174633503219860160625787059290454382960299940688772320376757226295426330523226797401151282907478366910082572932637561179159657865717060072165039370965069091270036893452832259051224268304500264038000499603602153767561335929814873426258307752708258079469775073942222262916157241663973451082803877642502718697854047718989137637830539707335094882573889551660257634866632201659023120609331316080521844951356603586397732942867228340934996340102133376213416521870477362245186194010084718324110147266642708143761582724564546327978366264090869567573098874346498664063337613293796976875902779407083879738408188911741975479817556756974583908156845520910710366670673619628865563813103398155939988202540962209387940082418077088725116991860243906812711123692381330864469505902897640015572435119813594684368133621689156663693052603472047804662713112704894911495081396397518912897455937594884039755757444276470222572509693866429969117077525115065557406185475140856221522193115405748520907604321858124307556815837545538273572308065665858897260043144021688063277488050932406855336173645004272064814523426653685943851119089099512625401590886238239710814851071240876149400487795141139656886912276378066380878560585962684927373997391935453661368410932563433953864192699668816116994071901918858710734770110994938536366226301373223018767600463322237790176858677943651267069827442858036339418405557955148123467553239226114450817546997971948837968076894923235952619562162280279704563936160204200408675000372137056483786587828610756596290174957670695558902582137775798163589585642518528651135843845414847875869742550051349795897882304656385936490453260526449886436055653791070670060967690690760685948131211347907288936710962694305501375767215289295530811225295431834793149037596552216951986320018017438889981993295299427889962555728039752787060465083824563633957763952879874864304904329848050557341315722869621827702875644109402584890749149377344440446562057235922322485917749874465174140669366914321695385388509568261435406844408537593194043369889637329051447297277633345853596659374484914955228459337240650651761407915523639276188794995251415054129236763127337330258457511056457296539743161638463642131776020514249542308353056569931889380888643840505217626615925917600661417429595782847084880881026387543957462417157674605260058550879288748345587418573306248354024030137065241954523800249338298738530766543577736489192334238004324966561083848005763961912604109766343246625321120391973866092740907937717914280970647621706447499836642394974938484746501762906842515479092503289691723111366040379409387030705601486235280147123644508388454683312144844584007757851017261754059995549394998677917224373876851477652969895210216339847331696854245779063722977989906901309342839441930686956252014442523536053627404900095913703629869340358584148285338059564346889803843911087344190498414055419264802811859688040805297604410801159905102343186320417455531565890916601268532122121661081531319791852301180836609788996444992730239529377927849578118218178031659463070403150557245691996586316985803652861870356195237257428607415427583318287224627367293787022058701939484377330443335057832651567650839427772188599386955444179148346525543113330889410885785847837109732515564868545169334369813811226668271602591607733540590073462788987292882596257440698970432122801925041356559610425132263745974315214452569839647767047051528608270918412856027514406807185369286519541887265852727811983100506264192446397031024912466541075209127695136984533264982823313084392367681481985067364759150474659369938269935540892778664856277627997028902403446910112095431774341975117394295691581050196456329658793351598825337334271763206859572347919459647830090691538926080911791991608511778754764891858138454831830556358072397410169290052124935942091348545145435070176120219981932885101239764157463916219606214039343097803166453439270224136911528040196253084371264611141807431119942428340415864043306666676663911527866879581212117462011507320761803794345496789053861856608967558650861401834472323171577528735205804684375849276609335887474089166139958600519387486522923432593644169944653840840985403264844886713936843494192256797616333626440162513083137775126645232826035303766826606913524532570663161785545458529475290447088649770107861807327127759984430410201623995444674261071347767658533650118250651166653804085583800242310736626345274261883980683847772106035703852337691311908169332904482822377679370220337833872202435907640899775356118616804092787332009252925235681948780087596404315216661518791837405727447404998602862269347821154727790551258798264851419674284431716657657220773457681744149903012281726457249190050452500048445696097746510680611891693523651340673471765979401395521315077910213533344355448432059363066294692182815736562066255955334280647943578128997785182013232304510474735841869198270142067685570051824459884145924749503295498552805989294303098472065118506824931472884522255193836141456384997807434145437299996913239381318006611176443140466732770654858390388985330573746330054147233625420512604949883294973424736918722980827159462703149117799942918313719571150978298269915077313137324344188183307448957850357626760546495984481579947921062933140161136656456437248047350840950942520703632472837542455306983424203998237671106270894431462999805723250930313524075518793598056242194535422846854106670338244726902797311472196491347970804353393148940749642889968673909338573160763678685464875064137361719468097389231888448738781159448196573208361277511356814213633963669420228162863116828331356879953144362701717869458674670770330621728215466933881855304084857777984877792703977966698076382624288778169009082257815708707083538969008489950142463213899562233691956742045442537850643185206206028813930074515549462317083768976689963042468900806565780156425335915761993465305242424628402373872117021309563563610547649108396111073919063623826087055651714167622250856530030279208056276479504833268525081025869869477468375990090896201857418653987857780838001442110147928595635639016863138883256212586953349724485951099845235559678215494262275194275913326865162604082254160302680335359224123437542508989657544951730464757458314224970583374799824280644539716910727389545612785345975865331611798896127815115167516043659714346099062014958213834734198220479357201560713023340057118382338077202952253090911899728020987687661270783661325921161400866121212015226541174649298303686995352886045572795917893614695587465610755607840647033565933018689987082736004126222079819141634260224860267100820896310497196018576837895976819560360508540030852948591585682257977493654566633541682179196419559744535470630407840120377881847065969818832238507957558093686785740993649372355879612924018512613880398922448065295766534603241805043816698579526837780775135602026870255170731966395722587315689341776200680784284016409975626837781041593028285648156019266404500695229237821777132940238516666243724809336098423520539696590764284983603299735951323687529195928896758558553906061328479287166088205584755579344168937427841537905298982537756734112835172355148407099632102868143305874473161185396208148053741655405534585094114444034336919577282224556232926447633964252194210542756825598571608072388767479586489123198548820412169589234849747933128087657392513702017859475683485028262375247178806022505177730990264630428627938894664394030687808404563113222253612976640108829774774315747032815644900156967274044128286590591664710581616913056286697809345764621123572256269210864156670729699260425334599023734345774199193528487855853208630158783615837313313138750561671373188008497529709586488811264082625584161700466072131976867840674912922658760711957086839990011143089792611213644559149734200163112850679354769815061556675137879625893078126164130466154296710956547830352101762509721115319297492215843350912323029330565327923405760183970560303349478913115765136911176125494834238545796967321834792940276327688475655956152842051340647347598668703419379251453891023646891729696792354467457178724780499018011896876132616449888300390605533453218321095241560058555335883172126699431529067187223078938637177637971810158317663327804722252850473940895647436417579685728060475042729374357943049732221890787204756630814296139162201238197745276533612683121337488251827142993380563402724385677769083060992430881132603157419316079316105418356281871021989112911092309840853454163658242596655952086015070618127707302833072003417445730848044475494021551314002887888808110995268035276004473834772745489023726822213934735076434130524862319037624857590901633880407077070453663510130416159131178578404096084617617904193374490834853083292701147974343361478858077120489042543752646696455442317333918139236907591065420758292986023486240995897986749414849053607999454565000263014850712274195818533052107261875106239902765867373771521827647728688915997636135787163746934435433429476625302897414141413380255487755195336230217903229785203591076586714536832640416625760748568106055432944263416432918013533008476642499765726852058494997849762294976899455440554131309461046389063264563866968020736654516046349679727991250724779867711035290118363321234602838018090536673620359668826107544178687007624957549339339950632313077743773730650841166295476737707419997437425285467591458690893797128890152853889726770475554212565320083721714588484067766634082548471001461293352697743437205959613259275398828002545262687217641021609588229882400937508593968071780318188534195140299571554947293488885868238203976373105953182275794803322468634394493446396290937958664333691555001808842682601197301864854311688188895377108933488186118053111709564817944947329542643064956950501780191184805767786812073736399106944250632036898889855934110992015647041857282605031316223010922369740480683516710136389854396360698684195294239212425673050024406745597588406266320409153988450546330117639152297755543309048126963974393430097079036319583984465017376108755255663205552423409535414095097682710316497923602179688348007623425949466796973703270639089469264478211192800013796584061059231778954555452087665098150084315263745964651504144544305720605755915908143883262101838610064740265927878505725880603886097791569334406806119239154953097258618833623741036052279100821861477053677669419510591967687178677730781917142407867431815403762950301079575830473331453335773391495301323017473127814445873910718846297968741462693371499268289085197406654931180520995709511340282482144132800769645214460886556582342423556530732393919175539357230378867786556925958144975137834935780833188292260933188224979937753310550763199837371267459203225284164537341526989011637490798407514438043576538583548747608614059616586597169701507390829531765695039332896233243476219220723195319249369982680523696870888427205600516769340904322934798619525076585267780150819617486206441179870498475911526096939430911529485406815633226026948239928718481106238519508888163738981452702769244420908751415763163224113793502555213090642859153874726296741310604210319664076225882965306200724240837882280058296111558387370981870180680577536402296751741643401521216689537852412225074668378992374451770929940333220658214213671995419970004775313966280756748084577268069776151124028913137138425613409840370722215095837079406679766773878704006213395734474897442126039385062852630248767901125073670363153542793616560835059457493426428034316561755761188859279360465632892025078493790306510721931801379579548408910067021616406470817948894271271388796818080370946155649125693503190671913933189745582971858335900966681127197338039247831513288561580569007258472248754429710104309496737756610137427313683056820269627632821462001267604794736776122210514917182335947732970598904875001366647596727776480441995435100131954839264054485004972220790428907268261874819404289135177157416709791432695565999862218203233444973862398858247044830943339400987684559060656753309955130978389723360998625396661196113757669697406883306692273392840004473294805594824513285671431483359431675126587851660925376813317681191131602406538134641125913901612977850985060771355056268798259330039661618501072237240908011686722685958583936436303643503671771580762060013409671848428637330591861073048822274620399120315223703795070731987090287565639005991252451254018476340264518800878516245353010669289781394630709977962301306947433343057302019637478278458609664292571131100050282536647614152929074602769135364837506053717295509740311228054277247783387353169866819821896520018017491692344059304817775109829465536255197078639409712350273868859298784246120526730331726016465243981999118009223012912468093411750220090913470806853755970349168693901986488534025104112040422928231087868242803787826499191203496675428912880606002911548766359961988821732067020246511378504868312071748143831692470964812295441069935158885835422216043592405000592912348092755112903378769675015008008662628983772607286750083750277659963855889909783648315272286184669127663709457233195299899561289716175666525510822225892973485969235079769078456423621029811889728776401220444932763124103563302591390508977909014254207870155341443396975426661256481011827096358470551120603933800765620463925951893772656595895075329500235292365821601646765408834860153171562165694331128170353145427589089646741946354515064530967102780846722925446903412201886634637860571330898721932473480380764851591334236435657777741680852159904780805015429713469245197849042213366890800150361161556289197701430557332047170844781258776182524456561248618888308172086324494373313234127377540038423836372459798999036718675651492185616053763627909302717680520734708028987947475302627755034535678920824630719198994437446838766804090366500659062364263374020751131242675555835343920305408045162624091350049342848466722147701234429651511709110815100057686879575493784036190604496642074192915331714548397536114332340900683164572854602163077013808599877232479290311186169042971575600272143327881352649844954901714169864101222620964480857715469294022408139896553395804213223276741252652990921464233064422628582645939861003605806717043501414088728814358006378874943085913868428253823183930165071793890474149607961803299293189085789496558257087623106372266915637619157755206732287497846832775422212404874094101876637092289694539195347570212327936829868596483400651213195538605701473546661127632209477095175104560202600211466803482316618877903911812742600340713608702123698858476072553629403170152746004283822750849811603341536682058692183142759202209774159863295546683575009040052184603605407650087056381645566907199804876891799465758229471832849761140444765773253498930786175298633332183112674329238283793226280808405232598740680192887387331135401986188962522703473556398742783657867893098270124641006587934836495423457168357313327307055241476332388698849585088967137052217165673631436303252750568142862387334839398749182750070335563968729102855999670478913970362491053975743756485222680574134040690602593261834769476665005067678138797483963826089953176019046265936106742190354796551900755652258735613559882869999414394855273247574628327770603958550240540932000226079430474575591668009179662011012955635789890037313103798411202604262546527614640984150721705797794932056042199098179041945995661188492242129732676483810464532890070101291172346020475775400709366599791956152269782543523882023766853644392924206194552987922288922229146342062231011541943362468193012886076343884479150999843317197129409626662966910069025828175882497890161748020512571298576657556795564757714925790267891208758487982455825730623655408764520116689612164694156313310753229826054710062185729714485499100519682026659048651993483856077161152144052469038270984194808744720174508367873781525818210607109344105989721558308746889322694034225085459736429718533616622821064248193378400618322993198920282388122108296612925548989242264993956527526536731892187987687528593275785029433845124901926230110320827627985415345644726778033904534651471762739884638354988398619239020615078350170090896422633868641869707487174264797410309911704179077009980003864149563516065641679646827228005199605651682526689279811572191393189963966338755750076412705428722189274321387257133232847378407500434396675814046170063216085771029400504024555171417475435615283318872094546064882054795847812472028118879340042251835478860539389088435296006176004892353274765620314775316965098828241714879620645955966835898817853647282917740785622354378161316215269144828011643198481364581090468914091783593029199721224810381866531347418292185572944473260751454775247278470536829677993199189712114198819411051582087024049965881611252532935684013588559983696590568702254773687367228333585164741589567988450163114225379703334503107349044877710655496453304661398482256226078435351155593620920405272712535382706597043879271925185487204054745350646955595711167288183122163769691799082857834898781398048295884465103541981544719210027536347456825880634752266160954238861942642101915907716561688537155173654303458885986861533911110816087391858913869312674322789872700801068257734774941878496473051889167242696696853320395924764840749418933562902962078540858720568220267626781462298403609188645389864898356147931184382230776448438314145939456008717820729552514330358396260062296693538003922111375216173696663022777161640509359583512872696682583743950043105253373902665555706746527165177658080867955107180244502653501645284263558057919599599688620654044616777727768510157835521393510562935326009757522795078494122987327251404238535439377936927528228253068670600089918292057884118293043817473508271101751286374290644626745537574030155913183072432584188370549032747708843467348470065670495126090586883348677723991314623040649585942223310918074552463221630752829625462175976195152406263167135411195486196561544933739447747069037756042958965653451614150566198271808577285973446218670710240904500478276883302040112977114822993855195910780827113719347626571321320429193793543058617186175904060217680214722078165488335177784017291205672706522745911693485127123236759899849464029755685426602198293489516172575338191652146451547653181142765283955093905425577215035422614769823488455825641219958630592043174639175754774826552924109837971323018717648074753486127182268967284855248688179352449936825967766264202324912636230250716044379150950259080404875895948287777541261875815941185692928548208238199675237032630008343793234090267874693564106453730325541389420310156925371485428409479941620764978654269589191958680960360883498273538909462464405643893317173634443718307429138771930604492678734020003435557670202977062086592422739109117917344606715357573861366381432587321519236497477252743018422396559435203198815766141490526765097931781466138288848271778674193239757423091050402286236079540276677955623456559362811089206299350479192581850330360262844473089798700230905218611266260910445684839122360543795402171289831443371695522336454772785354057612838764456702370383113252741135134362084212550242720951140193661994848278599138042760962501686845201889915049674208282193500827602886137001802691144909929737381570923744657572237923724271632215926849065057247493616983927970177641293796134660778628104235623590520748250179239863394938550482473248128929810213210286124353311239815030302062660737256515481226967758536006218897770659930361545344379209885942955017178217887750493293525625778908553465016914102924415408146834380268599752004242728629550111831481165314402804717854871942361864797631194838658815774100395785521023022439336454746736708523439761838766372530530224225062730278779114596687795808761653134258115613705708125701815193289337887691010371606353142560211832554846492827361821862395345794156418125336715172946901458479514969205107027346765148361492012088526729189689069863194626335888281937416405742825713073452390953295979147658836309075856383110129000505991438093985945201245799470619194402647822586598778660421783588592328372150594091488668509564998724880034934288485542421173987345117343406835225439409316652795320165386938405832666896715837801238374130316999232145536396329597023472154866053923946679651050354824273708480947715518880026714023586454514053938303375659288813593762966378757272169168836628095312132910528407890089637314590330646840583231558938584603226800936405118709569372880653774614219005986544971178361437339759019794290341293018857394827224640688432335527333590964575622985198953282335480456331592619852367718647834723383191095075550145820314578528273573633930498065112857151562305990697949631114728049997965390980594935241691052615519813705742985536680980580990943327754007130892443707113014264981990566383001110424400120593827946181645762732652003532875092419510108816548421737620352333144321325052960723994258316726247032087175330962524504888566640011576534906520556646227787782802755740912486595364269975609678192260497074793929775448385768781332723297377723263407289549044136976025348513064677581443339685726798771839530850709768577054949881613735760394871674456991742928223427690972157408383598305442800467341256481514082238816465138299795829778439444801508266460878362863435807622359516647360949492426882838311942267023938406920709637960489225390119507735029052271040687716057346412635479058909406662548802658222740752222279340969596191273469680540837292127064991282795503979907826680444684747425422318143776361348371000956878413188263637608540075668295135097797194034859093165885128174085817223817008573978083664117266157158921323886118338608837855513439236196885855513807655178350199873299843959511848994176155061298310392452286434723574772510329010055129667841019522240389880868728510903846849603505052513968738892098958428115247487604523915053010226773962284106082829440621558450710406107660841529566376171343317588241993866932223308374652053931818086322717979098228233810251502544963169155665572496158929514122383343779743515309737454208696453509335756582710202880961870351143530112704270239149628869872074408980631085965002943299645836348117566071611382571048575209418776173812906811580209409218697236348740501002547436426627732614650528513529450459527264802133476085706981290871253563267875663966641611635444377449686453601189812756096747304389381986834071210761215438016816154955896213862873573318678005467355622464789697913515481215026162530793075657841298693526456282223216247750631140618610798709643075857430742186290432675429309161885691966573264093863516171377317836034872684113607611794213344705578197146282177569312166968016471523024938063271150985969260777354743133406460001303297794165780056623981762959197223709577169214956077459898971556014586668950869598055478074483646040034856017812404347438421319237109210609105997239109886145743816476226974384232696061120334990531148268909096638106291881421801430855391157285800880694140400719100248806089974643661870878886862598599957244115063999758752017116842352906491807452217750380444280743952879703762463247714203965767440091092742290399482545492649128185558445299142278172965807389213017688928416592539705364173459866007893174889774432859130984279606154177767991456632763192740816329490706819391461665187655379452706571008137094551800004820674607985061991067686430950614410676380740661020819563990768069750331929073262264461875448057560751635331579467213622862467831780721677705338996045309327686518562860628009961689797483999982022487996886576052817621500703631308839442069640790520696145901640739907488492843913580478105760884983413183436117290605867860317819954655103423071316819838398908099510165479365631407458109681673613005852372692569107205341058128261549369021506422251124422803198955635946321204188458849020403640897293035065458631548382491399864229135444650804758015945383842860925073491988019877457182905777506839477352370648890514078663231797745227752895581743606757075636801150866700763064212419868989857230798367841444521804289929709975721556197183758127069158586018361160441238893448510023921243682028663081233787250285190992962766306490155644125678451021124624954504346486149821286867746423847962007439059432048903798896057428979730042153683367131843062505786935701203687651895120504061099252367701248448109520907434301132842070625533214713929649823374702271889535536813257781743094921224369542870908978989425075047539482797954468307602542345048862693617102797313268767929171799837320191958916506177815075527448289735155989498629170012738111645291984229820397756208729170004866015514082099051606449449578481653919802792615281215305433039195240823536496366401919108782836819846184954958856960061261886012243556827727548954941714526559452451334887120231536990547220731411471675546207247775259276106172971256532963668040294586800100532460728609685790277709010065203993732757332638038304494931027685646622186336239223673669065535467793678465046967928473520491225299112084317888688573018301212634091516286140024756606899160876239847232790356060677684686957070486973673791956411922034667218949406682302088401297873679887128511823813672589955283674512933807427064074078113099679199544725969185692216562468108993083492396818125298448030477488632998628874436497020043290130421402720278993891055221190205985144537328634699891191140477554200663783978425448834515158158814531528404127650196390313815148947077526453544397872154767688995162304489385875580355614520383162955875018960407208231421907601596529626433889166816147962947974148311382222918559018788541461628712158251989613946388045320006315342082908916426378834072376709505451409762436384467458626237535838158897095677618414532841767529374270385938389233210536900608021201190625899555224305652512014668402946172625986303752694006855569980870196046129583060027396965247926604561943824633216804860050967242466487028678663666710826279162340723969500377941677893717770705121172404406258985943831475101919327065338298557457741674186276709839457669150864459116151503962358451444918654556066963810982020815171073215005647043815105453763949655706032054030724948379579708711608923110525331626579587705033401790438990811904445580757293598348696249956001102276922541771171861357579579379012109866051504880553728103541711056168075534834490398355249476286143394489310824096663661262509672524980057264432706051481214803570849316952506618630558884358322573295140528093183578574217081429921014441644030480723600856146023031504532136701556872504247824878283128752076997493252806723589478817666673266223036640843852988228890141934030170647093788262465739877820774008982259292390507815489299189504184841269068171864920109268045107670723662628784316640046153270512740660178035863587704462166002273535772022952590693384450876067600839504628112958305950793710599232413065060143881532302566174085431681603207857898421082081741757028016766143063723653622064915479618635169816834201930994521518307325794426117849733026332876260539414876991920600429413662298780610127549139908277715014563542539644388618943591426040906959278478086374895973593569897780338837269639215469814069899217868429639273986151575822003257977960621017135195928532261598976777907110260448796072290046485273479719478992160174624927457694382547453201664958058128409987149387411350163795693732523585720786175360674991956675563413517373596351854409447850109382391670105640156642505411188749214391618295396381393406482093555779311229547746394046698394013273962910041147718009947969699977420028334975563585029267076978647603774405100932123352406158812025316999644566368440488745447020182753499469199739441665749871279251723017380527300145846945568423292486491639415320138968498071714509650992683516923385261198123179034020069688850533229285705800553371812761666441409614493305712604193284759279622773350015942259220312767951334623093730291532979183859584972933210492740877039414999799772218581755501429049261579955769639768038740736122868706314820196103076447977151939551755856534170249901376753348596383603377614368131299880164049289811708642048252245668922265345923934461181295508303922427763939319327789465659169228668988431892048202207180676955510155629124339469129729576899463079738016628834298012311204303081851427373241645406160684036575199631806052316388306489185679962465316097848301153906841916039765280752485563640617404047444977275671897488065662626362556183624715565358564445970494849180536514226789390721753569007850377192913681324334151143577750279930500699943751001781449151608394666474782888119520075894294396457656194077287530892632540976188927365859686420090816919662020686458384671998887440466414508732197652834661610770869521315344560379182193059753992251981818554951213625660201445103393445680179058348806342796035509902090090311228711416673802939239286042123492935716188887848225088713929362065282125378531041398192913150093674108137661484148260285035706165360077926732280813845706510085400945681505292601176297731496082102586231458417654639899268203970689867669733866761994319163089873830635280859591511249823999088625333377414950418123411486978097187073762454235440561852423826797079884478795847565657340823321604402836301337410883127845551484361210788302235603875678080719638864271330194331124528564136238070883653515109042742523779730029941312291479280147548409490447101344825016772414329550803605825661236848351535467374400662936737054933364494812480570867065909550489574595138202270526921637393789028582138158934018122901063804466069924623164148425842212475493368343758631218701712431365499540549052032976669768666158424435428719720701977807220889705290709587615003127437756962015644924120837053447720470065110819264491576077523369753778713753974855115738490979199778086240646446724742322233986099356948695885322940130923556777928735368404796016540022504093023661762739685581298419402974987999787971582621971540570421581033120837154360303197706541137331858623109653416513849490890253785200233247115479447629023070566880180346888471499363742106731135368234105724834983218341557331901404212372399064557050932448928599395519924769221584060574314167204346265187748836576175764838149051384192009172759242719205578637842626682258070617515586914335013653710650592858269803483718724606885796252369583280039228761292659076000547386548656314639607117647890787822091493314313697585884983281254833332124938576403418968705371453292959876725924269403931911701099785108969581483775294094188492269566369968919747578863930278569490052387573349591109708656735259185111972648399291943830663145975062617034260378969733940537185389670646248623248872473331590512464619340863790856075371277625092545014731304571699825171938343183566793339995910808958822419285357369071936473204329042335594608507772304344157143870163218727176617873497681905316320705819687025594857593420596862882191248784789232318966788644868702044439620898597597338677789433843496889201013718439972972529891300042651967646601267248255383726043121523063853376852286938181501912131712455790510730914558991382286327527045422422001532605057232691868750388230984569453075564853102228318131738872862420620898618937748693022840220910041221955550909284270137355976022688958719771053465043014137014767734199674899605237002414263612502128266117969211275809405786776976707937607060097881548966282192549148171435330883237598331983285195195982859661524042869434649805368999794543660902256251696445985717474124698601815088857582409048124622973990565281573546391428538407036275900606483391034703968113906300330482274658000304814034848505880198369162293569117058514417976797715018807969479571161523610362606295514930950262809557892991807923333722958936802473804392172790873652427506759848301155702022273875285149213633359136404813894607975978191750195536376544195840858147612187685066836539003809332210561002665475019763469512820364802424186765636238623101699854012167337686799339688705610677199300453339992911182331137428968249064231856687646841568138122734374185847979490399505722162518644239849585077419848312902641778027423038916360443430385081791592601639866749269612318503765939176245904626774513501026481330259996364537882983633859376537743671658277771711621466714034032897217642540166607375712494615176936963441095513666802683063272360234762174493230781416697024174502882723549170148128215974966594030927605102765964866834544683637007030696263576314619773927209359937528330698886006395983003937047017203215598041143086237501732317800367880351091041485553121353325434392471721293509259367333183741055438743934889901505547756694810679119775198918206302093183688923182258013843692606494698705577520238060456175234797223515147781602706394690387371848879397673233088636654608959708336302965463571975726148712096171047626716059187663701832905364639604607346361351321573016328920846653728775859741443373800568615044894387091676438952310883700488626934846482721983792035037920813275297963778109446361254927777718475453530577311894356926004573395231502511421693457714937214110213400887073127856193505432369454120432281769591241508044300984591222924761627489901491585920877533991942293859137228735663096902844752097607834394585540165580354840213273764634701529300240939418035961519549864779992778103911762548934394186557463462560768391973948915623957720497942524569586822106937487082632177387376521100377203234357465238977202136394875602924062928799408771861479389934801243126304341896636082226674614718309533523948026131257214969475210796568544716748817800515130513355547090120650743098546124560962301323880250784038464164211602988229647560456484925524610247174149796466426716253927106602997286474559533686278912116757276330770406697247443924758175135785198528928699410484626151711986505981613946156758740568741910782922738309575725650041463431203107997936422354763537614405324062162366940397487784968464055765752941204889873479846491101549737664536216419682287898483700741301585815400976961458586766513620520747327943564464911497704116212542822094329635510552786725538590518538260293872617378842822285847151608613673099609682928247330182460895269752944947149766292305144995349032625028178467366793614153371966260327133945346555356831819309362246107668368398005360495159297085520839559664627690479785585162553605214758842292163567787450822841601706643791934671035279163189433915521225573226550447083042802864074721878873606437515673851695426648471438747530037244044093964842953512266476545998551493932223617136539386872930407032295778400126386537028132305284013043268739637802615472062684183340253122958754273805726419804218691239465284703831639120918509078217726622180457269313926302089944776948234484734747231507129133865063298310678428832021745086219039259196790647327111293360831260879077757078888615771782280294990687814255326426060586572820027695170580521173739215287184466258172309035765133792578512189357195268079147681781203157077978129170800523917771316019411462555636429020252574821414246159435522804392785157934041894785281139269102956890570590865544097858450671993961309831689907873715835174001007748546648458769857407936670017837024027743725708047353814735585789206107147637491725798018753242249925875232790199792894262476096705490240817155458977189599089990207053819244910001246504814160823254824203145494443491046078421151352819115245871858696456345003750314947262663821164431093325466577618704653574391128254410916014974670093581017197484812952148838038436673845732330907533673833593062964348945561792098169320926841678703257189130994544170406343240526016483566832949484933293376293418840195173104053754137972457705557237324501319475613944142539946225822877093789828965958034575630257362868858339449369842655490518283216895238504933231381715664829186871097560839730074923394593935810602329195801186758839963932277250465559456337347582551512119540531951459364474031050410456321547663391387307142792900057004246509275915929510099872662689139227030196150548560495310066007890514983826198944625635282104549313767172584371665982422595413451359438520578160651774039695420102660748204997785612186066985161123230916123237558383220491999990856054807812648446157285044764055975694668457931619753567398719646818479883639913114793376638113000745148046841152123365046645100148737864510437121480182434173800338747047378145757034003101337964998645478659419121201932458861704920863182998915322613462442777987931026732407802027480280811576809227058997205721250567322673862847771267685496745708585509809629640827705115443057693812133029251125318657683963533578884919515222555194089773801919319103520603666129185461158532474160389245888388210357684429815838012442111769091682731974884128136753344145439086906153770819137841778733576146236228823297848439301464670946568248807644853676565761355694080188394314601302929499936276202689732948291349066050051550479126069630453347495326963346665729279142611763273291862572185939846763761158028405363509318532840511861741122239034458865387697387144135903368812561943238994120842549790195679342546492773564409900235712231591668107911059925833177509969106733152505855553363721135902546374229115431655897267679735071577038804588341538485495343180342172370789448591008927745290811175717970707506816353023502220436267309755231179963058750522362841652914683435237452637476589095785299516578626951562562768602432595796590902362372799825657848417177511882322518835684304374151788925481382391819343507600074626948467248310417721045223693607532084531930982469260354076590606845191354994542149137361454934728471243782268910405755745939544749714223527912985782263375933515779813765780373926392606997606654007314239030802824679419193176594684193524200253164887826614847277046429518631791324886850235263132209678405944251118694299097581701546777902608513563084294719026975670139375006395359171743484688883312063099319269655200816335531316423012372217925737750789615825386174527472945707138944091180720543052515857701843299287654920625023144700729315193124440002348047610689308165656191382700347948215950524678226906433345107689796426803470904587360637734657996031068036251308161677915865522069864659763057762156968767204817699064860944981621027330796567734989948622388552399385642346613349312413340259685839518859051870257612792871453595742295655854438391204884738785468048650734252931716269274922951572345220277561172458346142081522456184902606959230928119485494297997885011763192639985203571572970837876852800432481774287353745916761916691483586926330385401813660106485186028605045911195407708790906435557861268646617214301451418878046678897871313510081397996762247463435502448601156355842078275478328777392622349622826744682884713738562738510886089573156220472427871361007203587474260227297406651187602893815546194131905026445293157409454045485706928110877184900123134902941649350910501010025230973622618564195748440836302055336556421922659436446664792376386526260795400147978152215942838290400657473340504215202159345853894325388043233551302534222219588241057363095200026585803287979875166876196013726680218862502229422700201734522971796676258624830542249346316575726823849666198657793104455962638726196765435352517714969507605117523766390050883539016865609575423033089126569230544003034563325634879691174479682024305961309983182428691471920028207394313703343839445348085904103625583271065269573440333685623324943954374776334958706361859048861089844621880337181641343383706871128782261601435979467704415036036593112537920799269010347141688406491334897688056973882912087279478385191811069957241822734298930687032670910691215728812162864938833879026084651463654335158924654879261054743534897078977193775180654950735239792136582687392040964680130450196342623601948656336230269061769106282137939532477984396355047483827082961448768756955580144450291386495987478197575966413499605827827098157522777058357964947651908450196256440555101594293135101489104156436460166024509699910811858333382346196482766402429794627560438217798749611576401354789684920268313681180641614134280242626086699188426200112082426831930644910218411720582997815445757830610439005266856281797383275403882916720492516062599067382042446255486018261555331778064470316353485357101738856980593874592427576757648105808358105324786632703020251811907619418935269004705960842834914737822227210870061143260660110499519668002641521132994164516675399359297665114810978557205012850127557075360671440882898591863304098912103286307677109453735479660245082220842360666292711262513182601420656684542092738408916648478895089902525066315657092161290011006972376963020145303184601463976644573266608569896229507566296195305959290423535550963561289207654931994457387679915185115438000402948957374555174683553439541954146075759247288506495895237990921016693750553784906534762530814240865021473863197769251941811566832905330540401386902294989269613706727911960959950599936102604465490976033087557093909505819448807459100340098414940224487435043507924500277344890036439934287622971839323604986059749494686242190089042003608313919037205065010777916956442152474557780349344807349339507783699309955917188965165276194312466603353595509712764695483208621252541612927405545930738656490259256643908796263232488170758638162524992830018375674784803273611302404492438132918386731634807367154149691919643912548372557434680498501680328927219117636058815004012369462156909240261436648403761060242339951940936530366936077607718404525062134041980792572234556741682521675616200780023230394344360207412966164137076190974236259460645196821404090184725158489148269851572000390490688401642092953197522656179686435790602390281556003307853286427862059479419702044406012177471539301478307074212838169937440470895457366845530908552405639879262331370966637534153061893637450301576166235131710550477747963282611867488435391782145968265543672577150236241195531506488245729261934642821167450164983735865340189643235863896902764079682554817947836110172775785203405676739140556727742356544950579327134298368385667651783477516835070526926384878366460990045918126588709210517521453224858876107955632631980891242100522519334375017024956571601830938452531998574738624517098345022112802893515162145261979196681969468393392204290805576599926773641893569028427416253278072190151498699405836750827421790437877380303827566073617838675506597959705898036461072801506351006958133877817706474351211138959811066811968304056082406497506202751626600251963674260762270062517937813281889638560088610930348297620162149484686272151366764602952602996519478666327267447500554087766724095360169272816220434869275091690567203648963832690208609659515006541489726720682325838653922848833629909781155709753750791918594476231252378063520981874549116811988274794672114487799216539426115444856763988239290380621123129756072661995761368561017525783845198822511033416420698536313371384415516717948850820774921463153021573689875410585072098894694511515254818993316616213243976801780080715658354366912172519970150906245800646463174915223504568636721002106116856677779711674666579362728819972577633075058642082557446751767444989887249564759853584884497767559151965733725772195425452638844543596036423379228772170571775325902851034266717079922982665027061903672151072717192554165849826031279259460528650849386206323226538891435038753064172504306040489850237615851690908921061580360533825071111719760567527103895670880391867972710126807485995109919901316851431488262275058256160509803689801178146279838288143498768648427278380755204838770854792362340212642054514562987622860300244937647402086579010689012342554030407069164063959073942599346192033788351187728043771559456731959546628405977441609115521092916259260885992770790718833098053349686817520147827673033985804559786568353532520168394466896765374919837292179291591262479395577007166424117975063029532975441176627206939574020076531082976263649566096458850430512238856841000322382748036881073268731751479540577616970966433557563797080225300261931456975750445741485679928142983875014059958859137525244781783120650997411368866091564116562349219441639614222907546070512699763721205673666166341983876471470891011779924142392009299282969315761893462858573556017823426532327854337687263626623649119715530238050876530778052429755563647396683200463904744614946650927251680407201724100265968356480986464829977444000954810502857625821214132697397045680444236681133966942924755859972925758730077138445787582704085105475689466715824745796030289975424853320935465153832057287032358450351453858402367504591885563122613819642751932594589476486465345591025506963046958689485506370176094523813006372635939259054727990788741451411102057538436684804536324341155525545772063648115440598710180736372433221320487306561221067109142946298359897720674695299203373433390078086722601170096071281362592367216747749114682344414096137227530316190286950482088229620554395690541807388431303210390775617070693987773546298391356562121317981124577283563545773355372872340328028914116598881216923895510707819759607060052021228565864798709796319472482102787305045749543645698994799056558765000201711003962294559538188094747003851454852714972416494816094129759874971502384772293403728358515900956120698632841820835602316795817454038579330884792095354011095020023168707894586343071978626458308821979169953418906229383123549746564409820456693795844575781465674492933522698735639029489790393530418707271739929884538282613409606849311840892390569648626680173713711636082712208936306617452238795785376009241726456113156704179667385072249473571717693968013800072061084266373616215200464016314784345117346412318380645990313801580234075928015500829341736236349394871049594685203058451950900154894531212616937482355335591713676044177923306032397015686462137081572392798423665440069820922540168262776767175160819311215829612113708526785774809949295759630390035895843819416848719246299861194497704198777265468827010650465951330342537101920303643108040023852263873254830421794116475803215995296420550987867228182844549806159457656338156162821398829556693858579858475097153321604887838241363056706152144180513793482241155240626445015669690776775338743430192239458756758642785457057263723401195604550456338557547713771942487356830260506328354019635886135648728648500211431306971150619843187744022798495317378670315358654036896604019812553941484910387449747443631897677209670838412728579041444844029902257055967094525486752126063344807396573110469943389931659064737266380142331805726988975771125211514782419432470547103100093532294299520969448690185864822375879751207283764351245565609307705463136969223622781177903509225798562320375836458331269157424224260549979608250198420575354632205059446636152249174937500478996824253032041768883158644514563317432424304613938917162693723783994466645750149519375123531108714406232707088289376213768807684753782311329638418702177638460064081803319917442239430746453159446326491690956369020835750603531585092742053671380241706152608372095834434188837382562974032113493434246395219292004610730630731644777594929218476181441487525947346724151654196530474850740213157485907299025324108833465224468281582029679535118768232427688170155883118440359272482144004538042832994341881746227028999565981956199654355552961015047283057018395189480157723627247136358674960220342142465979254602488723782595721035684259428305262559551693952082311998626385057366669640596318786821639047038207373446671130932905883187622300918212001962837263078554044247742153922755624390232605255098178601338547327621889108576501783038312411750102053087372978681821016276161640948216218639828073401338209672705108614398359652105828328930998578422902238751552420399064135682602730672376293041708853522348863612194671251356398104112199949184030788507346251052543525227211394216558516210575771626598616452984195432103171308377543842365478266003629778638587991350232631318636900707574467940220518976632635831302719340478794317415326572708192438855573947669424162623858263461070659643628659862601330359206050088385221935934470006417978268544393526502054437068230597360884145193340486725988032851104088781545765703880971237691229221548711814547361994700438784201584863508231184084286586886324945246821786356551739207612887616034699083573057067302067912266742562689099615526968954380983887197138859681263160555836643951545439360024846443400399025792784638124761686214795849679660379569691171629199211262312015848530850752051611135861918254605824454221273842200087189587179993945793492000373617677672117185167025390363295629165119662406569039691464616736750624914228034989925041528194212601537253801076372281978533569960790845837107621215908163995376832413661691050863271008501029226811854887904586746432284481873692071118841969317236024591879981100540988519674764819545131388436198154320087813876089490369024733493466420926068115165704550998846029039436482099866153147964827668673654627062112808526187918863082515093517388001861864844877212883169528818664364899504654329535517059582723510694943030202329843314172865827184217174363865994992432073573046065273587204613970585505377110421541103119699987963407825614591819097245265121657999073925641951265316346078601393101864032671960177405385508833904022058664403452778615012541734791325517912029993234973937064518013346415057104868889779960981211502503639349157370193527458471671032886858885221202905429506338307095066637799600355189980117710291166918312492998381118300314498348111793053397334695812924263486353751112934335142563649413226049541332663315007911321418378015282863584689188897506885486603218361051806186570431439791534696859559574870176931275776858189300569572020783825397504371111700753112095956964118250856015347036401104483620013615193032897719492461507896921911388190584163790649024154489447041510208658585444800444713946487239515968165246742780587870828275537668243647020208010740268609781351472675450308237105471517530839652256997204855616545477013748164330262884652977304653389752231510148571375124076518882865893155916808180603829455898432845110027971412228926189434144010325879007330992664455838786565528959394171984428483236122740691424438727473420173790677191077092926499999139544441404014035002894820639689907000531638081081003611479298099163074574675956477721166311946895875528085152002928464376894704778295131216370121670021139584549610754636545814180705588055649084523254556345588316206821984426268738318977519000246110860846193123982090850501853180742470630939678463599451624185123914789521712001945618580287780809809733885744938036814664639726152630539578674216620933655147846942246892264978162081464726018252805375253536600473950622753628058183110307150684045716314588727270956639277077786507401363189721256788193597090186895075309040303910157652204053998124757550785199634159530112429470762814120953493568456853124389878583498902892649815337504232432032862156036819545810014614572050431723430410397419691372756814886664088807199053652835928491566889827374160647864807012054787956360208307121995718118390769139793346442079339901542634551942151050452664367997891358477467487521453841546116646456852425135358597931466985632498411982072309178549521319915766574023952235126565269728762742482020090525372751464503501559966063612641273105114900596732902352955751160818370086495499384247734985784370231956653542117594009135904034534631389813981665261388800674050064352735696382948309031127519926087485392547495514457426233149102700191179335982225989797975612660041873249329312420073189060308206467747475298105113594751909178041855430726413830612414546212532387900232830312375584663787069572386011940750566060383779785292460206865487574436014650273822879600709569277035443662019866761503359840154290951363461369311542061867349642028240077946180957701319267023316961466096748775365487458267015549678179640181069229475387626006806879561082114989112136597379290446992705828373680422672095052800412884449737667774977794780013214593641835191155966081280010448883945417145168674662524408676910448373335836575549905405356306252249503699939405845632788739324396925302185792178001454995323179028367812484871243932168921059739494960958838539042092706373195999809748579898813587849769231187475368894191192326507142695925170949040048895014543033814641056390596116453155772372502996644551464489894404472191953587058620099748135928897196373120249568786383344691375511764780144848055336228100251409738117165473615923194058176804373318262619081284544453690648968845795102357640118963689792922364124851741442979187170516835915105654397309227648386440155909164444315473560848087400417430881270203114272203347606672970186672646941438949317464930067475134391156660160269445482057846312403097005294967038614926562589711814979424757678541097100923283592951661342681127373467693824346889456130257371770925124198040168794521253511434971066874015445824632672775708602257120554030331355114454415430102096389894309638487073474095095878428204096324073596044127676353761035060509514860543097874366966285674988649832094209639079675342606603077745761193384643387592028677579079334996551326675410410846912651891639488900207161498118935938207125508219200844302344837930106087829519000365842512913435166290212693087675306974041084587221562175715332830573989764713151849026484320463388810001244815774426469900780634545280683080002047589101474988386164265078861543284119761459076931863777248434264796114112582970594821922691452473502475704495583319471455539743653392648449771619725417896804467775357608976581463580358756527555054870669641584721259875421068348875888555038400092494840459925876189864894855905019025438249689112430742442063473298499144517073181499028072862767649558100229749276774266765213663018586011969336378859747522054929034704490312727025663361128300021986144205909641584141988788418031482470720747061166678507867552481631846157915394230905494218355990608760360037109117711621083559624927072664053105009238844726470863479471541669391169051207772212705137112848548751965954054962875519202227562840350654046990573285999277474947089960786023988268676013874977085147199935851381447031296754135941159072357866443300606074593038471772781464672292767864490296735340319743310767445700897769446411008126060725954483423817462618274691638415593599378651472216784378390213830798059942274590778673521708567620777571357884987411041702533693620174048291590582088204935783735331579731256274940792015022538173188204949310010519111747992998801049465690339231198366154036114453526194054489437193306873187689593413500967550761635854273575946766870897423430535072433153401842681348507636036111499944586990065988591313212470042103990512323714477080936217029934701682604229765814394432556508092086641159574157514721332423666117982668694371695086724678321548162066724002953751980039649900050405952288686401492229053303245909330614962921207171645803727903866019598491034877622168249978938587550897275098464927004244613141851915537711984888055576399512869914583157247621810838728957099891788697140653719289357415329848037018798690399943044564490991671830221583397729283784100578143801513298286962441334907242883109132447719111698593316187745181521221453296768665651248745693783858529352096210244566919552372883015519767620716111599259660608130036619595338298762345536906232549160177953208821023396064826293989030807222946614139073160371907115789477167468104305391139860618932334447938836479941581507437479467361960028291255611686294867001775343075845814525940028179914929308966387214461820836422755332719408857570726864840191030854835446228807047337808951621245752179104988170110828212394460555676406871093607193416163456379511138925397353309024676669718639498425286758393748635602752254731761276717498132799982904211226263219353834890411715802927555435855443838035225809535986218963483987204000615596364266197258202342307042475655225802046671152780773481232468056723791309010748050612674974646123817846250518395508826631090534625432304420774000834928532218313460353485278001019822568053548874750984242112868867324493901948089213020017033914216825923949218312577912975837806185259539798892564978197728131832004746025382633063403008146220163111557644933713181627340587144428714687646804505115275936685960073490056975522227917270217895468558813168582112184036244410602155366562153166592363298866947901552573711318954043266981227554157963857263884832435656775218352288716152311335219886111286382762006176706220575494711725567731397794041695584479332708003296938256121294618915621131075593378061050360899665093030594167381714852673182821368670253645769020790651498154465733367950159262844012811663772378865769232563591031853607068765475872302661456005437679098322643167092310962316443984749047870730668468334942717294155041604475865428942781003113373201017877816727847977941185138277404101037214667312583760123929544194350764210357424959060345425770364644078474605963835256183343541264205488923135909182926379599241038674107214267288437071614502530934526278215058502172100609562744156454830630139775742133203624801876760128909483575502715441718921036707626139583103323885845731230054674297566566910862147594759609165657015288066071911100329118391249965090086114039784112088629802124499716177894053499009788386731073225748173478142145555717880723114044567061619320250122202614914701421441779563743674177236607894985952701512269789691164598321204412173530267103019923950209047581112956736772699102362671599786153156771987994756435933408977956538481018277276613333976640179967441562773959621963144455412407155109565620869984181591218047499071507778907052635497060454696985529367545553560094218171259630641220939959316741280011939115375702782957082384248624866512770330695343907545345533273738044169777454456614399964413437329369191221206662344782385520776495716382281379267974444096015334402937184283880695749655132182067761467204927590747863999631807172600711623450340473889690429726428703078970558989007282737256700126539610495828565666832659343463691429372173247916524536060187612284755813462186619508423549575935004783105753852987130592978926796850519719524240728851290333554484052491976778774749332029503126155153112149465889090105654332513427083779525851178503009705480681953544656788643872493990339821173686965167473605732097968692548725202703953771015148387525542610293183677886410232965320127640397145189522983693919538330225000489937073073296946742923852754826332112866645160605257081012206857590506124196143489652551130709326012022417898164767143867305561446735445398968676333172257580627352352393636826016298975123946127013486329140300117693940447682247544389851942357212577207702944969614057516795712114931043114762623798993225454107373854992141174702958351090054294003323140923210445318007663176556462352320675167076622877410596615832346710366339294504694726145531601933148872694651815663053581855883489451010628734861630721948369282761424032376374686479201292113312112552758399996644556649324150167932704616598479714654097088284379307822393377002611700622628472212591682708593850927853867030235438089953374977049626267074801154780471485002111707386198973185236473632618306465870699733798402984364607650769845918307818416926558059643865177965267472271895940432014657705866928820242973531833536520577405069519303145449497723197081118342813481756662775424728854118822060653894439700501331128251581154601519346206586948428152636405997854904511220533189363709221977277304977869184465742608057479061376798634884899820057226360104075490306906241515768831904621044939745256188172863589433129466603538094443131056262495652025432551819281867472830027956263738997088510416015657634596897584731894582050143449693233400334478357184113220820214570866556879198259498460413557579593798301919567167503314640444959927375988148590380388716256178828002541534226322392406837502011513449647453209245752592107252691857137459399959018327985515785896075535982328216606729671085576609201004902284179954334115832245178892645555052170205447395283131947148053912069726686401051784484959409594862139685830099723877042476595210721326143114489198312716404621021871500891137007181395970813724803429916134932418082069980891634109733741881879606937156651440739909785518594984891471888072763795367042442896281178362598985985950021822080712197981186505928717141935351837617402852383159042192823247755745426572568165862300913591980949056681158262897981606050516938312326719183204632503270041574459733103931131708250807848025977080339387512941437526302690476066199220605002148380446162045085039424420517339227780583137896476407421891854166163483259023379604181260664120760499839608341950766414620977065232587558982864443413801341089059953158844017375908360464309083116970468517983727527205245922247730106487290515031183031268576583868602198646815638613528177367235818902147940143991581455871956894279416026875405185371873934460245323822534099678247731678508269370479984597511756575481589464592823974211837680103385578659974144597406268962347351738905456581202394955472601128466395765121843560402162762486528343982259860563425851941734632812715477001084189785035510968449668136833989036250132834043962261297815341539000135743150313425198642682559147718780323985164319084332637599171653611969779941768564263780613383741289971964268025161433203895468205153845467874577620939449836831765182407467686087242705406371459580127979408893528223470928370035212200560468927923323186220460927502305172921709400309719437986019924990272137635889240988369853281724776180153108309596634290784927250362401598599008670754452605017296415498888153269068776007224566616371758803982560193587313628207600799600668410419107433854421554806687866439743116146185177986148530779052656097896138445093126101429148696760387571902019670695217694146499248355899959929788350252292827663986428032564329553171862008726513018064590073788258997327537681829730744800881509454698066457930231276735873498837212257434727441038877631389069725689226354903159702901168865143293585517380931400713977820408848602184763296990242554020162390661015364385157696731316060521364136546368734993531423969588324890191485434206632965597571829445219346030095811069086131944236662382789890730222622576284566990801727466270409080155871704374817413516681283647995841476028569012503700467988456243254755684286944824550131722514320176925537727209502066837707632310134812686080784745444534345522212503004046682369852588068306994195289570433956621805036949902311709238906008041885236514101079616107003318714891897713485018114690211776066420947587738085307645951977651588059224194347180454350157423404999360474779935958240056970776089316822490399973062679567166391664404576165711065569305470005646698084516916123344225275652599601379625017930733468331030816115163975098081371899894383231447507843948865413144936709112890719424947867098658543615166342466727727398804391324129671541782753583936667499587258059616560632770604759835142767407819693051846386877987200870751716962268957410040032852311216073509090074976360205720724091930969564352893601404125802632647963204502436962775285639533957044344572626936241168306262099558688897284630258505237399994092214497805552143496548293483413707658506373021647916106487952366316470262445035858285658715170606506154975981098599626855079522071446725626550769729248128496358568325984008307391062197155408080299344490731903412150968918329969651335389603431035949374130062836178269832413845582681014281581539865749706045915397876023974398972784304404851243793054074724984907329156679487298926437780740333800197812960632128485650807220474578135660534860888878648268507805687495470869544922839476839281116043619762084990885015938725687808075353440779526288013345336167260518044453581515982152958765773417731382977647556230025251473921868819825821180819297495203562614455579432422577433458559455077928968475675333715307777056664928753399094947101321044740640050682139561775566924833320512715406146898024379754375324398689067658519064498625828882837438125791974314391177162132528437784491510612430475910365329973077236954071540497086004053517059753364736934343256938275956777963381061160889306654009318385246447564126669430634543347891143702612726371828005012510127316014486609306953829698843884151892857785258300550032709999462506920985249210131412814277756369946431694096017632393889202447977418496709395676689313569704832127926051142897967699757075439090663087978490833816773511305893480476973563975816711452394040689645569280319154083851962864809823600341495061478030963659422806391913658609459050116162935689816513782984588821211622250028689518483010790648035914851010102399074689195869040999127500557332966230355617479738437545889195541458295296814844454521240862385947630685997439274994998771774842701610938442396853831701779697202964960331315662095650880524418993787367288448667807807300609395214966146548908692659550193504364199075671796755815318057666491020039055901969678132344692229374726410512695039400768998807831348116500324361474682000360755020524063919573070705929922585097826261700672434195259976453497151050663493806303576529220941079416608115773132203071337252157006684486047755623619789507413996038086814285812662204726155802076237024157915366608859044847599398407894639620352352160219175625178476875713885844253439606965875052014843293482897369262941394230133006269279014273463515885262682683583243612026111337116676485778908748549128536195126863743733348714049943845863801600797033106392669035892902061457379235296024432049882876226347319727140633180612930775572233717650624539353244302630660615227686728509771700235566251741262786767390883833046702465521818633909427414287670781105701397823717664260793694332489381044199482842519238425353897199904765492416046390608017476682616306455483397289941022736453902761265966225402887146419993487417325911160119805459651289107512980214411375174370586178718792642142697837747766044932537264139675216168601541542289394026321900921361962812205952280027979186918934265172887696180814524897038624878474078601438210016497653975896174799479209449070918767644406720109654881015174400314597989064750630254749849430631420350654043005237324304298475177265204444269749531776679524591688850946394870875170179283046600108765474171625184040015088065452442616197319529353007702672445324273555369657768333617942075055144293299997959105523150268579591028686414577112393327001260869442361823991642320890429552004857702815753269560392915188065812734481547869810450973527546023903070866813334857885510983742390194916714393229473360921374415025051736591121581973274088651405698709973092418238082096629801536640714184193225839265494522147119906843376852321877808842580310329730900627258386541275561668583834239033588747298803681966444854173768293514744027621646456795790898335101578129763738841977901688678098806867388644887346552090066446794954404091068741361874295435174383330563926603438915804623981409841277747495131836226370731983453090778918028943665053621552926087540609336134985287221153863016570140820450960785574969439915057589277852247319497648371911264057854578395525086504968766828241724650208889855251114138640656370933839883495884119288264727688242346952520063985954435502377714073433158463281437505855206274774559800728644641043779559232175214611115269902278575894059776132884517446131625029119510128891747923945764779343269199155570957252637532411729341032276441752890210120230139195316714902941760575084998230996899705917862882540073086382199205763752041675117642698916137880131798554722139778968898253643081247086813479788159917154293070061796854714849656044995363325262568122906075876699005922506183985157218644783426013096680557950777559457529543370279329661198274757835537797927591262113303008601870636595165408374401034744075004497867933726545624924486954782346236272425673519472475787121999201021945293405791060869580642041269496993904984223283147864798348370281800362959072651636314415719907319670692268207724574265650760042075096728606826870297699112665330462828924699565896942790514439963198436726468627987537070166318971537820994792370679115856935807410275624066774605870473187934721033521602512467104077437369775572165976034821273006267976205794914716387311108713510991267703375841151898557914265965290456396467524091412032368240218516337345609209357671746756465272941683692505020401544724107178596687879131601236343037937919385263363036479187609382947485374678769804713227284231281077398583311870266950277400680896885630399823412709321453188293271313483072703089329368916929644492264134911047378540257926963740066249574864449499273471281374764792651705248291317449852867497636835920208126322722490210872021903935172409224574613002777450456003419999630581626586041094830397524329479423701821732335509483077908022199810171505906335131091068613140941698843029336516414034973240080771007959459071334045873681558039082796198042543491682637429912252514342621447378356383186418184346100801533863778684472763009794400981199115160574763629180127142955648861964824767405525928557672462895158025394967618530291448105146642881433224794570822550725124086623427582725930503966297616100759850752813629425177915780535204721928020856551846474557478856083663440924055320890039208743902561394596446105494977624869992148949752916916257693496408173873940907519808829648779464895658613192446913616194281456262930733504472230861570191545626887434957197540757560804106137443168437419313012843431014886304161378075897984511023465414420144531767523743329149931860719306124461651633210792027222470841556132677657879393636329687077168651390245746801434814613089874703190577594182306680860109957304560538286474878642879568092174753249820658779076576755684119626726642988200749684409598812440756697235420146916759189776119194098347071609622283851721220438823656108904539009762734137226633973745612157023528886789482220361253089574556745649606120564244972574348869169729535748316452727666268699842259593182217109176322061092750611616951018878876483156248825392370715735980746758170062813937183234629228780358426903089582071065335819351871405341438823293954422666543013527833874175416550222285374428098090601845810626958658556055251208134827285227770686256361408239471238647724639901692392519744719132873400804262858235833163837612172885002006824504648950626004644628154548898055239045109642323176850425532455497006528725684219001740633590330397310170049562044026741581950922167983658206374398067155261605827738614862158891533590698605048266615494762081708757158231003636408389590535786222539615698832902073528300673391188676956657061729743073876931013902316029683852381468900524855481596265739264797026143461825509443441593520491913186491606288732531838241245193221438786093207034298613341572116821217067334962348304520287042297783136646465303441384818553688598983956924277771217056972711958762794553209417071772034595975332895693793624709428958352775645487031660598937670975394539301464874275797621897846723736483506154405314743118514414016375844306764421779720609381138696344779387772752352089786908397894171474714076129463698682634480012398589579319705678380134510201361284205132319785280390132396724330482947628621823380111599371845317112188579312730554351442986698890959064698348830215629834209709193680449081036067053138511556089571668550379130197696509534277063033276285219519818073887064725555722550517341318074810314802674990769263810793177912080834457012262755056133847859268873845456293433300470500918202356421356726365732890925907642293327649037641094481210764511539881373070789129407023907746330680814340160421924257179253714418592388759308366692439952864846831911413473132147268859168014185070393828567065590445791030047450261938321081746850690773675841471006681036570700585008502594559598364147934858079227565281825807489530200967565367754648104015325091481965648519377589592379712119226831657858936910768686487766319956945387949488191094137444630718293183016803832964136380590529014581135658297107275196462516161934994023432549143451505517479439402642823330485320956109943675177189266423846252978832072734143577793313946339983451440222164046055798726917281825742631552187169189875477905812558012208140811226207180975188626221128792551629322066172560644497506745427493792660114278538133199842403593342663480316747359328332966972849984288602662357994502930238775411311199634622655659159002700709998324651438246211357000861122971164266366696029569480220023221480142641847611332145539364468189449756259100694098275428028814042927789185994067873735160695830664117220403054376837157474681005399212291978958079519270719718683373121974521653338510141759936320160867058930888210369978229560613638477068778727754859224909551015585181116402007766326636113636792963439028213545629452494789600495809009655243099082353802648155810821226118618956848349913521663132853759816236618775283440125968506638451326867685686492138446001104429391578360309438219153433535784753094440229808155320654317071084191602067079892011474876921449861037392975199169412925043427176987629706146043653517512647700515630296926646166307899494754112277787024588378121073756450547603946923436803313932852071136743490876213020796188528523804850159224359604291815747297498919225772986442662694040106599811768528175364359588557603936183090894801228820936129576222720495583341090173705460612500704871890489367634544666763114127361332324431923124840579031217890498462366256462488111884171074934824018872206263351810860197384218133906146519773208729393843501721085716032115454642386292390499006011514912054064420063747295839579536070801768231046243092772373466669300072418811058540035537332638059665740456565573583437572171728302446266450566082530750616652706047427431661391236121481035084046760750672970586817405193881496674553925007516016901262646352526553338181917484349623869661761826279084696038222407920381224161556483915118188020737242751466171270728757823493059299353478313464723506435695712547947101519498313794210500390826802902011628694686550725722402483242547944054028232454677316214554009271746624777256846237795757393916433170787076084791038481772787568090597853959473109357005395969695619153562578863001577763690249450441265151485471041888692593073128742451110046724100810019217506641191198694825338375613383237598591745940431612681305756641068148670463545059818070775966152036529971885269685183071402368341488835550158069900960312066808472216576516028557375432309192093547435100186972196476142163673390350792915187346353542918317571769291209697847488883907832311301064568778122783743260584029192353522031511960258405834582630660137258282639223248159356401500924639856408598939556359790044375237692908613734633304311059740127346368720871874736928228508900317938529353954167434552566727630289144295313856204337341542030980950187551315449164799074885113531409593847347864418573596430278943319596476281383205044665387986943950079321308285201930257325347451641615908764583913579780510838437908003741961895246081872395727268341435090774797282775960805916829361766735445946838252962316489144127727336971692497535106793728552122473481902430067740577671249141705922956617360145218493532822472954928942074259787456008933390694816485115865272926160105484625624937630143189994728947806109190614303373119130799351553541525135599283967513321928886199525707815835634217938494453059018365451805410445065555613280642842262097550174527385021215088112724572430971676249030175284150948208476870691917913586930776283252963464364727376080806188909272857239188317515136081525391753021946632399626936368440617481212863203233039290423834005652339418937680567141973835185347772294008192045808043145642318874250584048495332792326056933877790051346492452387380639849083977409554704449331792554427988966013934640412153777814459661789770950024968511882100202258642728127659728415272566771100418199450848630914086614709886550262936401202617896902396737301464709166726509099141621321569083194190822608414085531936553390537266181063206547383880500335723024501995213338206877168507852329753780293763173794698029244045386784950463275441091337484997588430096204814223010917513731704800844713252113517075674334004731015611736703804149544951470521954357873534203389370677857361445378449660222691274294173395442920000907366330049752973845871856186874110045878453565553097675186480699014587495003316678082149013300218911196548605809515678777937494638780050947872425412320215853980737006144103591826263473392427845135664445755520101887299833458656539583222585946727171289020534284716717059415028770398360402466349032818714665461506710652472061909502275719016771229637119816488037168871906069330278297678132484139400760587282321268852802456503652552248165061299026766105221983198189093828599330244835222671718262674692116641602595140508184582527177754814919676228257727752917804999488645518525508629480444955885117413111392591661120434002035441987842484489023668197100951430697422030196272639934355426004904725391168966709775089210879128908721761739099756301470534421104798318633902595039600229046411685928381595402613755557980052217521566618369185475853455248588844055525929169788607313236208544331106144820284023836099125737336839070888994585597995353353280189313502014895776363210468481597816921445728483862398380065341181323068919024627969881460348552787362373368609474909364071543551568393126626755662729740152746632371730080664949578902249940825774254222457142789990318160571783822183446761080353154360958203816786513809226490901205891973175247310253988485451646828672070364983883773448734520438984736782507547043200277987666310274644998874868875787219520992962625332139508243132109511940671792054167539228935264747080271005135333591071548533925825969223218006929075955159906083986777796632896382612321442100070903398652149572158818178419167762443918236866630206849706529611770745745806194167003537128780348446522444546157957372342021153300750218293125951413321878309090005219789876624544832957497486671934398015115940432921604697534079627457601205491896349704751629373524937214594101688920381532641177957837984897699223859330121023848303050536237607724306875864838851585447221452633125599557973405583854744838850210027083399904847256374815264429878087589227673595566771045086785182973541834214839062175686583133252950817604910486235994150254126526599450630430732488407368440262338450616469844264993088521594331203558607061787667400756556613347633313273183996100663979581080551725668295365157913231252602063693367736773778491512888115571506356843086743999899441656665494909991497628221248005292252586032386042465029695669390463930332754899983564349285744531041694546169904781025560491534261585222285170551540526379629019580848641433226934719429030880530944806215868073739988887433805246461981107676665636560294858843178529180883918948981599181598870014703918587668359692954703068339656347302721216338213052426952718686259883627569048902194858722558917591992914130744211370651983692310153729225783630889635279653265162775440120351566089295499356735808466480279874682497833069818549480817931926882071540063632438871898760571877643672258161651981966838537168172817889639238022533169607756523240096004647996209705046961618113443099304820875065559784328384819461938216617315884236641994081069264964424712648954804610382707313200794746911239925335072277349271078246864106193586409318660068530425447122523709921741230763851727306563214037432481149210122045564770623964120127615967946482813347013443797325545234971901118722100203096483324300723808402747876700235506123902443059504067965715503415875486300561908357000306534163743490260311173172867269795963692408019493773668438596987580302480054873987768664855479741601779882671118372472625770739973661046025969846535586534358715251875397892160343789542430289297637988745819562450564221940134295923890917270367332030772922046332503218374364060887964722803992867973660298439863476150440797499929381717749533473039013889726386008628193213238158249175975993060067519743256340723985340414927493540676030480306786476552405627735458757368629759200741916797414470149804606353606113784296413546987253742895260849293571205918007984807334732473271461955279281402721352367233668564026134769985450224467259608377830216568449636736230929383649432290328620837429023784293127428119294261961732771507185966202540682712733085267624433950894809356784535400185302127782910379605537280567373946094509766394629528038583120492900726698640516979243566645839377802316937892178764782176268797571863260763301046463428786689724776233713378388861991344265552897392430293607699917398131596320873225640902162904823473296481131499580208039516309091518532874818219788325422537174345128635947933458871773764172537705484726547656946051745041308235878258797772126638868901930648192587727637214978405507449516920666834546953405782030596123456092736323630343773861552506320116659486713744881097129165635125350128962449387648604485652986456384220798442081317944521125123112064643395003152412645338621938554562461544084092242915674505967415059467237415579427281408158744822046932394654306886987128323414226980219582381142225988374634594499765924759147295742102041134449670138387430605162202090300913030117773831010194825021601692552877606212432513007617681793194365765258249159680802760506895803200707563982923780570253460769994034902480753755695146804442015129073980823460509484950187151399980259645122644253518203131125982015226355862654424710266360157802814248704491083547406561202028368236433355901320131675552901892256805045525867587064520134573867838796491504347578722211871993186240483399006226787702588365542183078733938882801274360750514314523313743410025629330356082845028988273495019180973752299620955031566749023496310901753361543154803462234922251263688582052865778704115271188764967730023100763284510073231737011859729725736622378247755697144853263376290729195380062668948770870084907604831500273547286655938336244516441302180613522097838351098897147085284370916687473846219507047563822150809186347561282263617395684470726586512330457521050783620340736705976397217971565340317802915431944042780323366238193920685558392495448742497429139951096336414452497079953017292279577806647187064703184625154009110694270638715058898055010470104742454280148570216109576576788773712098058530527837925869249725596127269136594118161383071336500655338175785024390776707040536505085448490035408074328826814479238115819402658423261125095094029812420601179046793619812650452302999764656101461498524085752820498586263472740425879000702605740826049130133591000482684715371025166417242108356885512290596868288156604448266166213296818488660882954114923310554368840201450331363470114484711629366070856975373365441952861710790443418985296573180801350879082767878625024945876679788725832078111382016544144413756728228035473722959310571828112179637236625226459436620669904170809806574799675387404495720343838191380908708692289138018312880418670232881972937049578508293931767909011459409890986437203766559845251226399890707299897561321166105290433580347889004789875455526444129650850847317796669188774717661304235607440822706889404607041025378415098035041199600559813678433471672013438180670114531456818216844843889358994800407808100347688039630271899780465233151332235107156536318933340111400774806952698409143880019192345985831841240678024360938467515006904815939747871810834086648721807325828910435025617010181390890390664052441972881706552152959201988364280792453780901631554970030030866177974862702295977721449423888478248021969916742889238611148258282289656087032896278810622874493600081548825998749151539273895371070962645853508960076277415873067843933621230014325596198232418594483236819613057218066040781140512650430791737220946645721905421273267117404795482603848216677259911498107710440353884100300619740099888499316536451794204544218047300993245548672336907955250030255816624628361487283312057087850328243632052191121958746508402348892722348995883624551501744527700424703644591709679336373860555884659245940639270536762860461392942684170879554667415221645240267788222942175396732351367934922241853091410946615338402253708598096275865649779057495407148591300259782429570838457706494354967560094658930948350144818114337572614400372249629929419581497127018512267250479990362188209445453898286440008546536974747633898009830532906790850369214776185612538505926898336655236179285185671173533130337772251474147200660200170146868143598555390661436293252640235556818516032491933762648093886495894795150464376029153782218279927003773185924587033564783489886126299320962742225272768179294416400597538974683105638380293821520110314899711670997872987250431013556038410037672030236570365877313837031620006953049493324344102123630258280723025243068647716026823231625774784113921154748362242451283042246267912856412732620553655713865483154605033881008457283155863190214181596648686381323115404041619943850945613185380493362644667325814071640229526511836102335933446232970387335146732034494162970091174384101215486548855174427954325385256031071960567582318375849517515864799086661222721068937492094737460902093972920953368535539061937864242698031709111594714465698120598485151120191503716665956084022170974347634003607110341026560905599918452102518970950374804401330066395756030039089901872442781364698375983905418930880097242683753496621267969298926093774945961375977995977514386459122022776863975191822228414892516587995959748602260929044485353309250336799544791607485109566518799520457485434054562774296268174981669305383408192919763864790191284587209206164906031732461191408218158423458216811911734813969587728629782128037413155054312757455323258638684950455934001756420887860831170515514849247412498677874503744237552631312919016811837991791374990837077472599532823889268942786403263508951475708804040269457827479034292604377410604207485025692208120564994635719139267865780087182256499150554946786463098274202192974689084863439124917515183585389828566049537174242744686567605056651649692343964357010906059942475060140566271929728736711926394961564930340185315760355247857567147609819114256954111778355992094512691825512646746772530420731618160471339909689112298839856394437267308306579008561130154506148988208879733625408924455958250519693698028110691181947032472214021193811410289931739094595557432658534821335469939906152017858380214591773285989721754754405154084543577600920358644941707621752081533814143055676983890417183598626439114403419517452421926286538710611939589786804434201266857857323327297932175162506836684811773594847866491016014420538912635815464085128262213916419876878743142800964532025257824943874805089182245306930288429457254287046405417197779540059449976261270148442358270770302524338821262368507325925271204161288784849692649918330612861147611708622407634887780595493474867332713795077309411281645084429069132279309811135151812833795707991588940218299627603821006034165657040867274247252316595686633473194479541963680770956835987469545706243747477271209967816472642377997115339848660950673497305228419077904196616202298552985713601576631612583858532697393960802778627669071833171848989285519313553608134838748712746223608224463265103717583759174577008732369033901103886362231138776743572456939959598681159985659880369519404661599369594623906308976837116737817178011447946198465537661289219563526673321991949683841417155614318713714758303872542087074219891660036245483934355711686899412270085430445871494744694515903736610697857897813819639192720589086749002363929261967933666387047284969483200939610083391641555141532155940468875550937575269370658847083738386152302340418150827592243995677603074256117321381445885929330371606782652858402608366950271634761968167018364679210370078121055406793011638608330443071669701793865756974574106873836391308575652044720217203833398192416427969298225488871814211048961530972473337534600941068288601690686626646669725634488744438938733975513292016052245582444951888477497195011351884202419793767891928362550895194317199537132325608579753465143595860199956700621467470959878782438399793393002017762984083175972872063745403479070112810043571424813271945681395242687285440401700333760557123954386788989897863178914025222881600368110960335463363262227775380252825399329666875743116590976351755924806695496197384379577358902269442330144705844138815639041264562697708829559746360192098475858462734113784409896591810182359160321438555082221190425318949442923502857473530737688564431386899404342293411255004826993791898768222843774976056595432705677211766131737969472216518886786995089635553897121752239835764986870671210721180273447159499718464683017339591879718457655259900792420042329769385432985203028400163055563005190117984076774246473621988147875559219386009195256420689926692849294460337765902542617726727938409502825349647468426376587183937614645113592209787040191583414515139496047081333335879309512568729806539095495833411547463918767897949920603324410128184120524104696218869029128781630952895456112447664912008720734418176651884839589388705545271491032057469068290091554492538529390002114222468717097803153223001400667629329043916706335387991975402373606838056440954342851576364944057173413827366297110495824477016415579439642392415533422215826855839826676030040228934365360704096102401658889826780248832724998607105337727353307946828890400216094625009602247939577142643152068581266065725796654378306386962205278837246023603548449501197974116312186637077786666073425472187721004753241379319647266680917993624259257496564034305221317754871251398739334891579915363096179435340761075354384926148873247758100491954142728310552892260543709568110456565267630141570106986360985259375141678950495231106249152754467088248111090502830793308702847210011982211565722508247673371182901353976975321074294519602797057098814478848410598227763022218094831643330313641276388866216895038835957860225935524114304614176378393719518741903196349134438855049704962447452302119116425833701141914820925448038169287073449328570465560716947890039683733314747375646420889956624666200194680905213944233508217872775255080936673438347558384953489217157596107779786017340052295908297740711422396652984384983249673414607084942371788670635808249264535053487173323956269067211943606488888121332321278491659708449461263601102530743109267825839539421295174484897516096019758664960328733983392164350721504284304666009987535351021083266870363740149151868394216171318390365050790960673929487808453245146516431542385743916324627038369756916985719665841818287652007573930731983855025043360427313088129273336146780532574080519651058999565668465069857837031266806289560707313718584954447460488073570208319384232036420529032826056567988046300504902905769379137252588433192842011159788416576331864162961952482960572807816115309922637164004502989761715829484518462206951588469102966136015263344713724760522846934119295593387803130493087090118370983213474197531515502416803438419593180980279642396820868711585373563399789677104713102568583341607361214537776339542912051381470714169336928150234294521435904080597130573024510403181521337151839868998182303985741059510445667117485162523254133105877303540278894425991247415777832017086079007686039597197912054917450371132849779881713962359931323305536453700256232130735163966312222279297255691614390201534555351052469729796813234922793060444028669963510533770338616029067214641397751655141476858722600053489713880498007043633148900501049283471308355429216158696712841500999579350594816448488190013645247437167590375599961307535201107563485815355406779429682179669791206168210231015220439739081133789674407429126858396026999932600084489535293583072773264825311607735956348441758015115440302936176933982549883293979818091361869476546020728980376465732853175525788145356652740687618170031343915769146143496327451583875554391512739704289992938204571442649178913094435668721233018478102369544619134847396435069856373358279342489014014018452023147921618541339666061616325096567570382900708108872767106744127768635736112496653706866639096734706834189504489491923273379619420531476758768427843055572148709831027939792302095055182100716831082430506397311299547814219637972682408108148500048701911660273278775888215683544206534113886355555964948235799725641363322082799562353717356317489158175963994350437942425755537859550133401061669018928188471563281927140623759683183462591911171675684707376004171273688407687108579530642513469580558579371117092291196545414352886047271496413982313441001290192961937743972151018799044547537696536926850373294172978883516400051319269924723952610316141279117814057903543233247565090102262706613545397329921812234321508372528643597811892284511095606710110604205799536491746740514202379100884256373190384300822937185823192526201987596749780610769670871613538829166231678213192521049328384782436873012176199960785817640076568535183058038025407197231629754862772221464906978037447932928172775764879054580590719222174853065715028305736042036375950662865067423638859710235195756753024956362438347038866756161983211129071988744719801226116337518001460032696498388601133715815526792463138930982127741672037289110361087209528202687422474637859560772185783712532959650783331398091306188205844450582447671590676263126025581195164338704029252361622513001193475032785727209375561508328500855160069041144708300777091285318122025898437421005498755725699721951221958575863410629720252693488130384423111344862238458264640629262572483875879179510740499089759811182385641984610840143142996082585827445565342296837526497664965643692911560650922159810911061054513260905137271062024094984060619752595792750982207492197052496786401344528463445435270808892592265125052761500494082825319508672956995407900456887828416981487905147097647931354313127332005935088050074676098052266199420054351793418683794842125232829412403214322118474877808820119060448122695620509630343807054257337651985712242470880114280623142377670405455193132564715157218180728274831795620858021268198194019854225866322524528307790143429006974152823465816371524802374168126110777663046286350936901539779167890490190174626637910181914820651624020409684236594932608274230179122794672876297918671684897352076108006819470807281161163211971915448854678103388573131619939274632284263153175803891025320347410096962842917962154872125410525437518603149576219523361071172622947749249514954621748309311332107995772958776026751999228777933508140106625745677914348175723372326943445141321607920486743044439997263507459288429238347678609631292224494282091067719173304908078387848386894319236353419642304730762286226432779149155713490315312121898418762816977393554239007336036972710503896732589798574024352646293286711422488001271471560748592778102129515492550846204894233363476307818822788970961904888139787971035325748162174928282513571018995637565882556509910217295299608203905143439658387705858201841961175250696297323266457957193396088980576935788741124441324119026764281357375909187074865427066358875303500172183265963055373415943748258612059245437993318500124362667126124286518551232155136137149738550474895513970291547866832243093425122845735874401347654254880476704262741435269807052979555782189190893990570329701324817832185438157365056889439246618883289864956531622503517367490093605156323513683558916191136990058271177958398961777747670130086256485953370069418741741485533622037189798001028806451509413426564513846015454870634667211104231216379744450473489714092205409346233658521395207610482204121796114952584122608326299711538249733969548136108772414190171794879417431935213718650263371578502816805980491788315905685857000602070343941814581758844271093974469009622865551948725340712476198600474405890666804706549105864699896832581373860533877426144645556116110737118492808978119782063232094708783442768960802573414362094564914643952322884729554850690735266728117850506194489467627887422036828163567617052009846425654471286532665792676352452806891395379696147543967474161517113698844997623975074305445072847736498451095453008323725714789804008652680135599518076652594052924297348731433641781916737826715531620468561827472528620638350833415106830695308073837622958849074204078425949155446167761543452801048708170776049463053494266429954909725412233286616043930930033629667156582159106239445281220736743036183094999193893677663142855108009953118636794706743470697959218283641075929137566103231102056971250565769298039271241261548079446700654333813972191608037520341241387725614884920042461673156153794816397098121782688572976198003201338795482715326998786251794330499972725033529797744169714946960704807725007927915448083586289321033722686975437855962267535916058406915769348287521739345927126031291314931642540910715372353223890363336697371563129423902033448600933114681142345090386234061202808542645607232170985024654818525528385673165682577339273778882149488981707117519587127612810815156506229253559511051937540473373068427800950637069934006776373433412290659869746627701151296230955146602083054972400118811185852334693317233037662494785163329510677938330246215817262918032740394428556494558186581364864543789090585520903400413780554783587460065226574247488289253896968239475876267539163458924270967280414528456982612684356977644073026395081147998024343419322238026664096920214818969311936610720393005928330144283281053544930269342091459146148403889869294808600089070810922199025984728058251754679599076801109767248515847243301253345993576646132297132612045775061771930907856401764612443136613644457693682094196333740574439486261770737553898225206535023748259500090606901849018861697675863136247094739476397131651313929509439965253001704037369805702640983902966823220765477903700524849736500158353340494181031412452196591614809597486069203526125032688794198118387965284047214616702155116769711157463712322131601500847717358961008895377387255293586006630916262054276496769254681080410309155540410786953686661769455349543879227803243773960850234229700979770208890138541650454625525446484562333145223693489370077444355564905488393578386492942029695024002756164600336518344173919023706747907305815687749717075010357893278515804170989139052945518935906756903095693654680432052652381719681114040729685097918043324382088169067185679698629012105455082195557698722832804330511898624389604335691086322453648524878609615146562631712741926145606156371125334229680155043051267310944754276134303631376631292912766606547452595687184625757229586421023538207316795329808743456861739470764872452072276502726698312815286391211356106810663400053986495360030539940856538471689036219125621362595073079262581069150695329635919081384269387096477404575028668274909054544504192092245323236416959221014802250128607229070044529900192513191650410416575528375787372526959113421086301621911321341477970470637748473499942065295466916268003594683733780718146240048611945979404482641170941943296344617562890340905632548647503350503585314821921536834892326672567194665761756636824807366567070794022357241085654879400271422685448280397985045010641615470382437690825027816594341612829908572221334158386489430663612418727528536954662718930096613484760793563044669794407413836213434277984325724546709677640235333849203943834060909209592387699480703062431802570105688292358330356956588782352188214524301374329081684592188444553893835660412594843948771217598994181816510358336970692231822074378886878496334848854366641711790002408778774615840339075790136138613794891703573154526154567040687018704574438559319108691710676528787845319886943921508134232879695058405397343786413465502934038869851775419769195165361271066904484540612972136964631333141700624595970551928949334971381051423979498468578478519680462270259381699817868456854203143229437517701851063974580919419307610011637697376333964550879015272740073139867500852302848682707740883407169154713187451377222402302993873806135271917365202892600727194930928569909307729663249595368616604942929079476737212640795555472940796455815634719198266983806780678281366734781684678301891573878392857473696606457402811642997175042329038177636685477622509884193496100580221701022791805719775442498508639755007619475981530469901375618958645867318652009957836586553397608857918009051256912373821018877816007814347248068017758766082268601843428201160191186763044893074967145789764788987934961503096175967232178551633718520791252471811293935699075683850316711147677338931893590363921762745370522675264276597177617894857374242360491289428637009937443275438770811491306590949077096238041115227193966103570317057263786872785555327653805750694375602782950477185448935244692371515997203615898445419658505059400811535991911429700657274564950784487993288239479600998719342668584265463831289274789424539863014760477526432291859379473615716844658174636712172425287322465339027584755576301555197747759014517769976576874785409798108075868589918148563612683940683805384993695225870237502414651751130966875598761096563762681536961583407059926472233368192786881971088465602313633261029771181422880166849790611152397773112695568744805905071409383985590287327788353697553958978286700965217016942960020570565741915712290473229036175738639995674298235254667048144835753532561594486671524365707789997798861144560338230363550529079255052300194633075459863802369996737159780462620079208683916255301223549552370018355910904249285106142164084923926772808357971612731960753795851549493386486616952818706603822102285568371765066837368014672979302908230214965745018835541986792392206974441882275094734463362614633672137927975417449263099103959486316059345139525494221272005814933357601884028845023326429346886157530515896562988035920665764871216303731378456857486843384875344191348181823382060847384565396890280233192069754017800177835611031985896979340437901084582179135798499843206061068996034639596142166330172892094786740252467542891233828184356722891332793104246044722005432539924880313930419934119435226390541909975384864479915782200788397579076818001318175640421331714047323687766432854177449671407047960379859367662973668191744131157082647645302636064053711070055464360080066816164991970386333363258474740796638783066029529474297115995907342905180573484978847119113023778169604941805795287399711956830653050978461922999318859576572144747850813010230176899757857753908394503840446912135925839159295738126239108284827342264044784552287613657939078635861014975997296453097831494551052644354797577312507075977357845442493882932470087203244161472844458750453786825467754157941551026189207167069201856480113203315875257339394180160130955292367279386736886801965061451170653032780095870059715777645366928794856772725796337920050887340769180627186170561825663292331176768172062913864848391053947624575948905871291060176825924756753137363456570400255796716180899025342331700181823294651067728795375528178921559859812293607577330180285870498211659805772432204034895725646180516872073840064809487446073190855740857956717719646328152025928711644496616453979420393609608337579652554468965307400036421303807189451552379646755204612008828426495848835683413821513070411447831386151890419614026810338571647990660997787753528181195940540741285257344057169169650066290537134139127003230559941596340988044856721314153335649129193533306561919136337162214657058251786397326686549361986379879752152877718764575083314702641860903106868888803323528193465432023410056976633281353399914217554549636781054560877128722994749324312226248299816055336151781210253517299621176287927067583639588457784332125792651307731136785872597102904913632376661587804139641704189708261446656077877918533573189324486257806689952260137714533458060690465007243546765850834412948379986537994745686623049658576717914587774781287712216060720712707105694533279064695396231935464628765367664064530635680302439122039863171002122509991916028157876917783781673062120343563927307385145613090608434180096316182042007443015464307104377481941681442873521032964307899763072959951851827840527291793505330339923563517525034427819893328290470880423141043348331609446310824141559717034594238115081228211236001977282675324493472166339465993957864672842770926277123446917178106064343092224585080695231287622367027227873998430780570980862073804049986611186903278965765669393753030348476608535817308467025156529437637434452085643031032139668581146037945850377922615081933542457164779437624317893500884395033935229876236571894867194610911017566212975793469160031212029954461185383798624125297490913868124834299342437717647231725001777897467309552145115790177980030544967001839808238323305568946200885704791095158656958091086773435118406716054592731565817587350006798004448926762786380680609677222085975299563903384142955526992940974045543905205660751557057298362953930066886702697254137348244386801619902772974608681940966401773232649258680497250519745757157022880051512743844886533150866540111756138182872435977488414312645218937441233516648928684988810410713406321578137281727544546878623913795035450379015928176405093781025646435511663329747671094012338619061020531241715546195468365204456350192488233935193493232080531470532357907772471471490627155040381970647653744894752561703291768190158248806620022186167070674278675327424308491847644812652435875538634992534016978597418002476702065334444431791685816390052351605376405833366075118761196614961927598394900154471668303883155380964936320151042936189912298225402041640888337010982782620244422922662107545506372024037608403446768494430516715750040278064509393224814134592531459989831521590579373486071029224802278461083456556846579701851382709778650853513312165048032637871982250570118484985131211787844638321212974724192902715810216629336523484314523175896501051251757191212794954254683221823319265308082926237789485014377931639604267651668622838664860522701636092329861606719918413027645033880742421305630742900310967936573742190752047590910400462064391610437897000343336978739729239937099354255069569324568221556844195500998660869364383039160617506398197049583875609191223200964952628554204708572695565176309290152221714623620648388643245149737004900181579269786440142816013128497356715231739763675830244946637868136734015822747363277793827178153089455026620215520923241691343631478417567175593136121869831084990894270837220899817200703198605577166359814053958458463121498763662731555822859380566499156685792677062931869720869550354629259596461082998379787197504297946983278048376533181136861346144962047663870257410368340742529792655474585585736207279826767871899051890107588725139043820680410726991254039549016841265300445853751238838356009674724216527918575263644663942232458213079147806879558813982364901879720644310536304275221764017800739903238836286085810707847407798976314414062639681254744020244525146389010264161347954953088301556235508053218306549652395423969668365349415541856693099728994434368133880842594211821623495558052822781101627444621893872369895667055180334034607434652301635807897429447561297121519710726265522826889130745749928782431155681855800659220994440732346515346300560349304157575406572402154126919217450715212959527005481223397710585878032273093820458070173632380042262179008981615201196601064196106564640941347913426295519505295027325814823834295529036954760147573275620431288334311013447052766079739448811267025311268126172025994538906298135019341043998030205258417762183416386514072408501655796996237277309621948279087508380995394074692006751856654230472931329808720107388554676689754160963175005742339433722485672142432660232864011526587143332319224754171938583122306472551651151384712276004111209418805827304507968036213557592536197084133984663942195728777830507912574934102767742537819679466816971114596682530969854232740234446484253592752644246445427428226730196180557483417895288247637531275222199988114522038680254975232588675979459032827883466845595149961115738795720751475228474275993826895139671644390595299357941063071107821349857063347090234358267198218110835259296714786214443720780413285688248497838870911086252986173062116438599937309930635152129793434632367166200831217217778278457923259303854393626489700990967673457747735491070741649337858988261467249608944683544183911035758471343874166713606933580281801146979973435830521498663707869438454819740453891706350316095176699108924359894773867131719955665798484002541427309611547100965416722971452041914338725501217416768973557710156396195053675360449112299997396991757241010064186782404096691319142381209604740166312279872031372571731565613459664969728595017087756634751627166065154809876907542520429630186652177658674168755633468575428400113863675001159143014839569073032370754865624538080822389903704806770454056604140653243977974186280844992862723228171696187985533608108496054128982193703958408200642104124783105560145418352463704037682028065682033147294297261573818031919283415763017907847276876623072167707396478531490174791864872673655260962883671799106759584237908665786525248545731056466655409571322231410418555679209283241586714601572822605003216360086135135926225628611963178732991957275887482706843363188990855178893842907290183280394935208055848331481377847223864803668097760921903326491250217092881374682502683813240716528248226263842436664627552760295091991103020965814578763706086586317362623154298672907988747734868321363584133833158008567382688548546962285154183837091032289516807562301269548776874351558002506221337070910082184526184878187564209744411953785354430889914273426364912896539871232495600433576254356112052137859796599555452251598633711475207530695048966135891243929963437442285542179067215282405471832659146180030549582707460213034564377578518406511867528014426512876022350305713837445777398883120083501534023858489801115893588203001292160960806366357974252372741918720870247258301306281255667773955466570934407812365924357201761498913359013026260553064076735653844370891471676909849711476975782925265574277300579495377865414517762922589100787029211008590260958581410667693965948383953284133836429492953852443325490305311850388705929406752234133531709121951870574984003029726658216422384091959625020119640357900584389950371047274548477671683623708541187390635826242599023885662053415925529682290107162611826673559923834172074625312380968223808915669327316806270787500058839706794400739406469799307593422237451114113323306901441706460974143843915985895339267413284510474082854897708670711522963607138987151202276198378668360841742228857446720948987475854862449018582348505148569069638514257973656132288622951944127120408531910675127971898234976027406500796716263272659339966924208532858777406640902482600243567640366481187414697657979147973535498166739942643857731828732698103544852034146932073718369116903849014793095572898157868353784032948671197270122502036712402204635263817719335113468604740268937868518448206409154603673346476218535869328763223293708785671160988939601941463149990991282824286568781298401471423774296255232166508306690645747246075792006158002975320785879352779201017983892767578864349365274337155259619328403783827128749511435997029120461924525502744491693939952644621987652875492643393974047393135696163308230488566645417500084031049857382225840322459320947406713569493006923362497239928714599843871113119358002593763810535195463815645688818281734326151760901385660742210411629022009709103261849344987556265396728668714661849955526395776461012464267309381319065180596078063736458505620174843865274051543029467595697069826071511787863884112394198607592884928784790605179765312656466172369412679975298703755399085804984965508686770669406390604147860494879950569260546275150472350024810776897983950471951502046873202355166534534443276758336681281373353504068561226813246883584192262425795172378922053547787503345700053591950441619605871115971120942702924241325281550553622761363602072531843129715287245319213290800444423737650585897977789426498268392224739768022108749841043078550817333839060680208716870465054631204400033132560910602958353264595265924950571143990214151075870173037992436134002448650622085859164897859425209350051550495600369247292519905750608577911411844913637148313192094934539912020281812556654457980639756613135383838396194587090460052136295264599901700467051663668615544747628336332722154015155407146743303618814745346812793930073241538763381603906548636332783093588360127418764115198578531891343699332059569309020773428760680662958195538048394642803281984065322774405475866589166462589496323027939797886204418525879512923783039930073127523342909184139518275087382045825500447011432107311445985915249230972371706671789326165825945285148884170064981428094441628322636302642630715411117704779236757951275747663285133480305525052260959634599394551942150576822538129805034530747888758043261064397323984469067104669495459230846427782992566873406722515964006492723982477575396117334891464781506904760512885949514654543684051596147692469424670607410381289491354027654730569567795202508781585554696272986692276930459956651740866519105062183482899593779749657881457502027441893686627917205617144198680870389392271922733669034980712107147984228512872165126093281096145017069715747708426681631770680284333236180223142477524100366622112310333073146017228886624411431165527662376583785578429203802884403358068120304174305513554646017202115196885210789139966604329902198396894116212082769977074476603849128572736157580866037462951485824365468941122395250432286504523842534813197300622631938698618829167473074700066180093657848844700811722509808132296346201163500866198819568941151222659787471517704945556379257147659601031475001948806330243374095397299309715734408457992872224186682564297234234490207043476927717524866187230435806513156190987864672544666237190401434031151676111912120564354811450175348510940394980420160813205193814894681409974799212074829417266326814313320889712302970310246560608133828395048841224133932586657684298183803549702098393528370436283999297649283500247108961374749779331594770504987438628745883890145138265473113260033135128270094139309692351905273310041287509645475023212207825121738798015855263940154883149058248965166346846486250719190781268678405531629561327968335622108375415516502074102592487971252205994062383562398324004648674046517737797368224575831611267500517429687944897740170012998537880419356698250285058126713255252835879626611876886926444997398565381923964002989436318712479539396019201739020142202454764799961182096597941698689320531501068417785171469754240278546408890599692664010188935928537390369258184821862170238808704499181237936155381992650841440598094920500856035200915671502397185518500706366677735542593042500921939058996729336789295235766393651483451172849563312163543248027349256159391642015214344995807012869234350727514833944596802621624945821054415227265199080789709132100779161018567719147842742747644129660456250348869186917856045334338755294441279481206849298824452435299901774345282203235280407617203626495763021955364304538648499749346236343184314847850350875893925205582409633886727296799887645766775734049469249979055561289820452683767524120588787083281451599303406332861407456838080093045807507581418557501770139516822802701020444490996577990332045526580945745074451446825846999509253239362477374989049553807233436725709756494592362669949738493557858512174131697545413834997833669827035546310545052688217126708037887158952033586316550556630151539977231622745967589477548807613240588955683796494729208925429930032748055951469542897454766427447796405987330028908123181993633842039995124894682011343593793098000404263886391085003261293826935538337660638669639819752519533984799113195451830902113373030448501541860121203771395818005227623062370971803721022468340207844803567744415626490680753204750949181306259385736617777993410234183740931362260586346831035349242858700942081103936813569335399229152356449524583286205481222673646402070117559852516322520037312366565354331875498324977782378817067120696362759613285117855232273288839994445766581870106468404512543378858578240798726391348585289500233219546884239744234140131087154753487643687756629424408594998443416338286862362273003727728689806522393310480344737736918765336116321406651460357311231572071143358129908686582096388225875864483304678034772222489028990866006916958643760332775438793753955830919546445751206632442789244938896032623817624438441174589800689460924224679547467950850560862495202605308362665254689186782215644894987052278362510259623152905185712735057141579848317909683282503369507145472541815922711166311406372951179460969248490114230449102323800996446055344545596626211229081112001979058475786688097398362981784794141016304711758069094980688493423687042171843601627543002970246648035541888599317904457814724910501345112065366148230665660073355430866463079002801672629591219869887462483893043267517771177434521254417650369298509164824335553202271585648777211629492815521067310254099408546929558331877726302560628809461450247884358199314325990804523260754335093304121970819227620933872725245265942985028351356632878187880168216723665665304676078780761495386582490287587317623379963498240575981442145831275815632345115017795134025889209101621629404492266611543431384913564204084091061466364570386621909439005173266151136021934044308901557967974661121786937171966327585925357332231188792689399736731826884204766442983361934255837131058591258949703625444293789752304247824799559900459837062600329752143313617489358153958230035906958632303501100923242143799448955366794394803107786737757581197524399438881085790935493041796290696393518163882014452169529184220917723177044496250463091175512246063761435081348537439241770519056347972822965568234574867175643885591219580101770222008017705646008226411729035920858889438857405812659842455759665620437346147186668924744746880273604401696716013009126578441254249027419457411503789755034302453726723934299930236195550494333436736456783044416297560043548012803358354100544080387145714017741574169711945454566610277024091955812621734137816597005722927236594608569989463466486120704566054714510835147828045709526219421954617638868302056733032574375469452812239551580180901248920146010103198712038907343185740117747388360853441651170130557044172153519346193698933988313441021914363996023345175040293477437520015941580081998207344457424468806740623315071734918678818008366202670846185782982965483142923241892312425409852535905254953424682933338612900908328643427326901023825875208929396520984983902658583515514779897277020226100986987453322442242214137373850600740085197372649138958040999237101590169427653705977102482981038452086573632696724271025470211454314657128067377349112857327923170144919005377041586869115631869140793322626470897551680621965457162114265509180753188317533148462396307572989258231062613517613872298453188485972978480493558142078945246123326568305048189829892069083185018597214732283218243388261179068158326375471827148313348981104091773668461594798962529497269298133838613640256870789025707037541209536699372032350850486742614921007373352298734602819421744959672944389855670891483779878810089306083182858358316891658787798503836803682396066943420902709971748283083909721026788831837576781677655061248084261976847595412745185854860355977025952861363733491692876434021119267086556776421793598617769669230454942621174986337986101656314530657659576010030848183833284647515665852879591928305746307958898135054067154332690507545733104523048571511128042960203418259988829322169849489127269405915066267241968427627217727507098866747463191328425661216761430779292662805796800695379921165680111170690445523663028466644151800009994157786757614786012847047632225089153068970904450264978255562796435493528340804179624970272896827755796691634290379818665649079522124351122760567714191799700661030719563544070928500156465685861263600234253002030710136922655103149684785575986995809665691449870482214229615648218131933759819771395730838090885943133488197588991927623770585912029083588048102200852067884423166368866788523147645509001713072430718137368876455269650673627595806310890594712421525113709998963505277341711259144973168088113781982040711874810685472454101856956907995098099567286069815286868291443098866528847219359747696968088304676915559712399999827176387805562219516143362325754682924092012305515880392448300692385665557464874752757155409024398115798439849257460521047033845527902513988423669251929882288137440287219605190614500004456537405761801384553367207772380737019272207149441494618619152175179532030784996029994196202086914498192814230257140843001732908156831613886043153010111194048451988165393526911613384696372202278598910483462130253485799669162215295484624186304688437833259710413082164903135881154707090791150700302612670509938557734405549029306764919029991475380433442339814477943109481586055074041571528393739214139243432867426134225468006109594040438786772111014800380001728079381209976643067697486292712099522565645151714686607025305751835724565994945375454610910359897904760199377911368289285223099121797817791679329593622485812583838568494666829821947843783478273297163984961181434926296355485101230689306037700815302717110583526768737393625036045555014038324365981049022852150832999133441021214963530458124763743632683495694952053839581663826453620664332682733895966351263874509103446180067866984401730799803405657159899705420769836940199502703285449993189985087916856464358370617610819847869068055282130597145480789788544989114323544524027758216777684595423535176654476362730341121132104714943535765117053542060148757517280570316142414716327585610009027001375841672825041753772629066561289728625071610076909281403618925317654520450775280109477621914804390469345692649257860175046733189683800803807028084269137368431579844056049274359646541330457922165072460650662251366489484779485809021844101558906645943848232362786876403027351432223155884893915346329098353524849014409438281871119951085007381875223681546444559280813055293614922583328821758334800095650148296003176572254167377969837060430018852066122511642084449593532121274376224389029646873953845654088027383058480472918664423260637694050186636897997584325832837098224939756328663865277497520652524535901538209351454484978661389180665661761605741253159380295221083635889989641340649250873983732207043578077434395196421100968888678660801923098320335578963403680649312970962087824947245161909048777335210019553181343390637963587538244576702141647129432342926306278574110412714074702250769970361631498283370399235893736873535588691665808522719310099884627127947057361223415814737070093639359475091705902548446970755109921371229821005284049229837170346324101597460653140816535340558661112066509735801612601186801985391351300276110282569971769515442299026638978821124248956376781425774375058558623811617492463765752301005769408122954204675495345261873489455558814569348141827672672236009830918886662865593459509066854986100773514378345549292908223553485514985829030260882996546765601025964592662891963812394487699554499129221721058558976946090379587176383916514360253130769555166208485436040771864210949699865745264791516987669556236354746745970620251348216176886997636784794864950325776548509058352282124235208460504964810041808264945202896566849314116130422556520035995591868166687881034917050479676538524948430510672500981912989095254658754984379563551100917358595559679674429658534579890574512462843597929729433464999028273532046259047315992838927001252023725675285592516664693362758287294874345064902355579370081095004561690166071014271651088081640852705930015746945773653950164289278183264095310904772605947618437000413216829635537505222095850793911643062277931081767019727841816501078981331247710299071164294954247751305439791901825819954276237552743307835269303811544524041263559312665707987632593636357606429921218351930446412959632309170321371219065818765152448158461048753074559593090850313936489344195640626204086847152926461911595367807664171319410850470189644917951285083226167956845441100119475740044759323839990046422316503899703199997951053327641980278111384116905791463640181139686943925185197651946308564380046436030380232333359238088522157475753959701022387258840660896734997364945414668263571157032694881303650915043156626556472291370609071833484271219467044262939787027862413945938961802230050743460311576428668366031627402539005611865158858568123456133599460504128237035653718138099353759787002050981463554801058734921152493841713889026316368131661832425708720344643675846759360056480677958623993205981494554834155107901095655720154880485841578439855035232461940557238982998388869737864914945631635322441279896432719509003399030317331767079957543928190189833092015298394079100604066233371797592156723716925935046637557170935330533368615846226169210701965998912806253090351381649006785443839363864640889241832920405908092059133083365897771721832603149252104837151559279948697379187487818230296677255889752140276778986643512330075355154658071074567082508896356857429926686601311080798038713408601694571070909389122826892133210449622253318686755734960435746700063286786472468846204820191678087276141396017482675594401623165081716706392258105318388380125237905636590673117853097047438807701312488653960356909865103060266102213528984447017143440974893077281694969341730690072055272895468851918312692475961512034093644317056983312028681220009770914065814862478776578860657941980649343019933226119656486622331905087782990963836828707802357847270307395362559678331588088213994725512246384507631709060655819928356885488800957243853013297786774898436840844536060410647761089423937432824103381607722616683559372364017537347928641240052740006913417010677854289260113932317526069805754123498041458547604040627069057663946098857404234821250558130958761612738224288563538911169789047941405493390884585957763292611683284963197149851150025512384931996638291392582943386237584701471903201440037928360603326107156548548155562807819777502443364632783920198689819790197204983015608539556568699241900748090842988966991613671064893405879791900056800346311256079409730785600313287470568008890387094747936296592060189086475100055311369603028623696862980925809075858502567180266074848902426229178727748401390208756315486367902148740195470452952146010827607027144532382802220175431188414881157203262934722689583293419822922145889529014709545670249726682518771003393653614647286126275931688716659456694642136766961234901920261993177251836467761286678339105432522748317068893928783107282982777885346277556470547119211096460870380462576656555312142042646263624282080842240066951970274619626308323642612755677043355585823135942418959481022824716626460923030454364097125540241817880745898432707605313194376478585579822825049580242146525767078780976542967602696553633070823270040416258172598707240889370757721007736484843906954327646617920069851209073033370911948749241445363189464069562681626951949713771496103602651473826356241805511750836742305760089458300974150407576450695326094933314804002476234959032572945166799256515870557386334015628931600372219750746034781092660226409161114895356984440523096251742315101821716603530547853961964657201447119593793851020495957289217337662626070432745019476030258009985226168842659290732535148381484744963712420483520135350842540419986608383326867953968674967372339894237221157999745732151849039035406356142135820619102016271118471412845940445468747218424063269789002500963120965672581116305583723875901169246894599091057978319649114794614526658763467481294026412175243837374164009324803321331424139879412013567380155748086298570955292840499240601235443484719471706422857609607229288524710182879308953760787678284763105866034650618138477093025371023212994353410184283968815924308568270162279353419141545698877895320946365970798530084206499590322136381400567987697824396643057384936482850960065572384001507739629341042048030588702599546393498849293054981711148767378555679415928851233048869882054924341222591427040089941215017799919825938697825424618918775531827057128374816149633873145611887347487411260986018795151163390112848225024731504885076281288782167601670269352744034845652737559978659063754578257423209046732223557393251330005551033891503264351015107838104013066743376248540267239789585041725750986075257562209298293522057056605880743164961679930640243334130980318547447270963773880945688461485620026914802270560762857977092069322727963040861384884357408299517131812404129426436111159096637456078815354316294670050644718333608904714500717842610659849103934415588573251896231039956653983393123670607756380193414114376317132117086092730002127812590796343700101371154047531512069259888496132602738495795000625467412087080818936713763949641355264816689081005127233933875389866112239714409176541566447484880782477543690618368105573395133591200655872663318834860398468973018074634493681064376516804500179193814860187935633964077520795662922280942129141197447693397678060739763268186955638458323543613823078396291300385377838600926154627545159620955879304819547704297752576761076691843874903984776365862926642521271798335307663881941320503794081397417055857773374526148804045713725255356466415778762712850743224766263147369869072488316916314930292382923687410476835442752842304003503766757973583468861762221598326082857768706121691679833860803444321489148443437446584537491850078880025070289633483032330971193101687936173546042412433381834119887679225154557083657134754736517595632560233105966758412786887172431563996234238529559116130137476243541237424600288600739052472271894397888132763257025205893119594922982937951345681583896443401153417617179244496672461928619602159555871681608951894176891171721145168986331894109476228446368316775946331203385406227313649400454847040379092610789318028844591624921615964177040234307565914684274303674850526797681565731258060356045567419976471130073183571051745388368067082233766607766332202049556913673361455101262812837108609640221494293128778113918242580576574647100511574041983682932808587249104102848335757801771889126895003603728032966743837807536468049885589579247299176699505026972350012954400635399469659145380412399234216862284791943291812893056394285777410283180393091963060621070433285405844026196929978287296913916546382114067200227935077866780226824193311105633524405368495106736879225447911087321626997455067767126494532317582836531761240870834603965765241746372551021516185947203398298469273153048512103105983498244932697328447148731827979291510369808930029014274295232348106964207275626658516206396829648643517056066591416657647480798867588989576895892309679704976106475813958721913102251627001809684495314680470964049376958465095555861746582242118840143781837508375976844075639403608443043089204232061279935110319379401054959097582394101138631187662441454096389564568741257949526509779693879350108741525722749008817759313487879971265442571259479935460821055933642940798756128638042732300344918148420350920157029905574589134919302665339715297273016302167293171642709816468518228783597246861585442791629308558280864862532947487639723352516891713377330738750555795372123109417266188323290508042045999110980615194473083746912433772511351875466129432368986170966984650983528228322679272687140584321656130030697555891833436617287697160224622562619763116960243736964862861265650419335754989828719538530346720750698182811805005150416802391842046633243420651639275551732957823380492507517875130303427819303348323098715616847688613936574567382755998579167653091918421649695429747326870165191617794503374208961332507854015841586610349341740357783071368050963328189265424117505654033080536374314242144444871920889011374758440526082385580671279284180026222400383782199020811241440403885636288286592503646058464988534998557935844877473033311050002199867894429022004669450090183127825828025642052147389762685689914278291445383969025400771691440840865717278546646350732405171767549659756559078452624595410549911688443141371520033379384864016750433135811759701624018148261865307412045556886913222946720220562473285814491551043351097377050376235191566116282648846081358740867085947487281107887254338296364466713064612597893194304650352682535556647544169115681352123748466038661964713552597460013190192166619537354686547270176004994987465597732343318324388173920420100964443169151779364491887205770173820680862778522969963508583246477088888120740642230455397836005516460522240142193920286520423331539719127645023599038883990234915814656392735948767409454314233157493415183088211725877304692864442198286775040511862130485108898593586640791362654080255374034172465524005235954254764630075592233020646385309629003511718478441775397713185240102399513601357788967708563325585172233160017921025262991698740740917239607301282153873141865568549808645884395425657770565904933785547006296142045367452875116723329195303509507637538890835277883477045019837651413042321426584131864124917697267075061672762693347766586407724008560134950481134978108424387105968715187384557412855129098754796844617261819091393562408412292035913879338368760735812532599809992469814515336586167732990411152924961945711867752983180795186475571850785980854676713569286226493017308319519858036509253638760902107519154534016944001839960497219847747708659966902304966447745648154145281973976977808010948890357434668813567096231376231909944160476362661955753411239498599100775362421064037808687105468531036232141856145889587086707234103893446870580056658734201207140457671714205146129350228860159059098148133514595421580477337070459336660440233249471504246632658822937634886950634651073676984362451229770854620900732411982421686409027285691141954995851242384773310845697542701035671332682241664013307728108510951767919312738645580363966769268332267067958963341647507483825630744774519614808442289903811944338864395781863531821405405434268988526308302708535927410454438525141655989385426334784051742055156506638443163748922524605948197524679490131385788108142264910580858686964625386582785099935276175393094162848949895038533552354292067620435180108003181131099723373448286418507314246848727358240889821037584938605422442296211394388067211772110998734703094703305948872136289004830865976567720511420536992919933546019383089449698151816456561620642550099301679921944657223042889027919893679269541187957313176769400633048387088375669358989819194378787633516184827562945921151324801039178772361143869150408332387636626569242020577567146833720589693635027521212587741419953821901131057868825356129558699023154753662741711104095158592269591644918910719230132394349771929001159239818763553064966117761621766514823864249126885924588084700839028988290826299732099674259637702387482337268942339104276957371094320158887210868213915595862654880748164281299250510562101907429825440355682866348079164200329266588453147939480534199072424333875025084589705181198614683237007036329721248634770521447212891088214751860440899385106529287331543549489056637296997198041327705504644194956843734550101924995068312641914907881223686613128308528639289707976304248247547478212657274559370800274154649246620313294046468305713575778783428804836609187128142990936782947944164463080391313569778056963524472889343887549060879097553064602324413812020438804397607977630104650266614997670885788094548194242288022079480038196436570014516144778704896702208089920560342589100237632608978362178326066345564610010624431943574792865634741838250713645450916477019298942411198627141358804890829201415880013729257636159023437337152650554586566889593678004843495055277239303920922426113869686528345573536728838616342552176832392488798926757842270472548424736401292782492807129938933880964284518767067803096468357444611700553571451347772375035372463391418920643103093804872428740087641343283022815728527103537615730802883091009823293608245745240812258787259187777951409878434009871224991663859195610097485698311946301435728620678340897019237758050730256004200971287551012335673753701310797150337260550921612528498482811887913098771954653088614351472960294783223238331357399045827590069412422211062681037302171670167299975001686362053468824877993510870199417351843893977608657775705998556554038654203789128303420848317920305552471115642057457549585263446671931340399730385738561156552380863314476372969522183918219609544413091965004082382762841509952933548721758800267233169485821743847523668656435316133948518172991950786930970614254400213364298742029853798344474792289993816149211316526669390207482579364124276019816514802511685153794905881647572512013121942687974023460252365461843388975690312286996081499858355572585453953457482382819797590775880222250289488378184482253584961715967611852833924890904046604066724261036591375640021852795063741225514430194174122180727180020453228757903748903333098650840646292049146563597426200125996290205448120932826457975018233217835614229537221810331432018908712587282042381349888259329222202063271288475687604142007429366035649920070176061926745899318063443561627316947973281721763433871075872763651735001007147367402534184437507775647430751801731195663688485249976071264599519285781570161259809781732733702820188837587291146025429801861288578156141755378616078960082697937420694848739571446579709178916941465783627869585528078115388274374265239822550128891237565584357291217151136985888653660673482788788526247883261222913614271860611699558518406470505897857718934352594416425274647473545483726859921052307702960620748697518397609047594419185619253315514907534710027936639613488861071056645150321174764514529010672171544508793906974530673214095562815776408051381258997275294428069888126611416038240610516683005099864420689389867412985156949951687349232841561292884712208157315142677695536466017063700033046453653686404064948568119100714398587425917656558866304565962701181325407456603264964676911428805331346790236524479900493559638880053964230456235394797663247005823318800182898350299530485658983544449552212867137300613276563209173222754199427376399660121490913301070592368834332638360873843299862436288723368591877969807568303495296332109209186530479662414299752264199378090436062688633883095864805027760263778612243493493861810445406681120172980716556328392129987274196076307911923348932435581555609731503705461523964001088844919174322216516602666036051175463532799145140212767598529503861424803248231333422134019615132682908700349307195206431068861563446274737028069946744155416366082980941308074978277829725423823130436718478031402122552135978668548742606850184859592559702551508990427609148529346698981155353966356514398811177937507242917820600150810574197831687249722398045781599200730283568834144120199061500773760607338942132767613478583822814783351379607970100379294155419445017272292395915898023807083449601529684053727742281254421495969399741845560518392655321755921865569928779940090328881021986644979753907130780187166763181903616989365538065642681987682327932336335559183468400939878932099603506343241416556937783490452103687050336486448207410930055694716860462090890391793479300946486622420892239986302891450179759321754138267647637852123162395779412228759732446195519484668581785120692345763191871503490366718394031007897145544347013253992460189471266907995414151855870144485190321384394607945368206973268588321461226727733963853065299461862906815779803689193322457042193361084090782421688251169563993877370765558928762950187492519524164453238237444680756751661124682210353610598027947052641449837685738804371655614869522435066864788179623256418162270557880747160939303541317921498509952791888626888365948153875716125202660602463358478806504291034480062466427969693837831811192960629642521751057507082349668748418008853098671482226914745287272640709196019098788377672036807376364716091662428360685196921924871450828510794493132148539287083127046544524998755109063227495924683478152295014763789924784386878209394798758923758434137394247921947064517572422516072146167558067652622438514206064227135873624716985054294628055536284827010076410770228896218623033427078950260306654023061215970432308650385980931016414949189312980902619932776897381108277249506810193040950808238269154947586572902836230654212063333644040009540946351038961107549835604580214788374575200592001045979123056055166754016439412999129833759594278405983814048304600847631547049097163859036859347344077808485801033553353939979286242338359560125861892763520847962017138928349681110066050421210622496167624903178482049595595427226102220311516966439686953735760817247323688682799712685390003478219156067719616221763016793685454166684349567704356173779105110586987656032861037752470109126539720927951362968150081072982025927710892398370662609258820304722084416901843969275836301913774120078616332955739004065657980785567896721103158897730181967129448114865919969946460069739344333844131911855233648728366440883246116485774153769524919239427926055311055478818474540767369815800053508169376053039068226423432650668763513145167621650835412359054795743372685149375779761468273033629917266495525278677456425827735112433828069399649064598237482794147589205904336782932878943091282560227005758173834774073050328865408913359209508835612972014472243434890103047016894076325727115626678162629186542652385048387657801321209019174939245313809964366770219699453886848185837034493568732958719010612374233681804530061617614894546964017632096035979746920745431533095705605398216137454680903134313593337991551181511470806469136367244996519573514319840669500057398273806588221709696486258113198952338139850117417392783736083664830612054872151918427146131597977037556941557960831353920926876923627343733576023005431939848807549378823886947713517555166669111627622479666681846950286497545447063267983885210379969205315708713218600402530677870558193222973691992354153263792254909752796559570029344304918990287780602354549792978217133436271566349551917278405444164843049654126989023515456019003556447368381332404828860651333376134711661320391154066950981922503862372855070020570776676962569420296704965295291658955252636839421002262647397516355075995280616933625686579374160850388746195083223583104980297347064638193453763591336186433257491676824707232404926417933543422114334425649319698172701879083032508452503909563641061814782068211723719214718548208206613486924192773164221216323964581067962371297562391250290146102428273499192992457262820441025597554104385353082169415998406669729352544178201706458225924914874977848268992439384893478398054650639675339859022292966741089374027011679337646613697614190773064367915683664682172021123685296259389566245768174848054768165271496584645117070210882720582914374135373279112563092122732777111042120108872581352533216307449225919074850730851708332349478775651505536878907298577683773434644282939759963730427838577352395948253837324007001758645300986982050137650856341558840890527228629570293284418926518520026801264757443333617703157184526274033550903281871415149122364150023189271373174604853532675988518944298200545650424572476944926126819225274619298267396524257921875601871416962162726196808708142462203278265331521551920440188512727255030953857828264311968340404585865644677245517823030930711059126544382848415676941083660144241624124404133120470865041199144462465344600276355962130580764322676050422129410611882743905224221833891747217762933655886087145132575409702488588051619624254907185638171678599118896667630887399347028719262859028385246288246033496787217927043046953527409126971601447675104978130392886574799501862657561688348396733128064451347276677391869870777756623983720012623144266772988958760758856546129436824435693014272993295804686453698595297298994909057222146146021878627179987940539473765406572605555974935510623850725174785310927051472646166168589420085520307410269659910272009631815461696522771360984908906927330989729978425074337038175336496857044027541116913500559500410903001499258459966183955502354683591087473611539522930795748339513990402430076522443637055148361638294579704691547593922503502413215425989618010372551003212743450035943800232339922602496964565795655183726081961226733386528660293744415448249592058115880068272158022883625553674798412270217144765476538241418067371121134378785066607492368318832078374500522140272943348743438757870120513078840355664496994648202952161248106973378864613588165082290733823638870713147280436358130474690052708227167750281243395851148792301019962765371475851348214224214593154982193663391128389478473851463211919079722869252926453097751501241944087061456968901400927412124429525813203094571111370301091723399501061367109900051772246874934617187886191652962708166212239845870704284509531708376087650768277557516693013144574627875499932184893911575224569864657217523580177971055638229542024223834406925750576815471059311233592776930161386303746727881023952506439822307329799547999972377928841736375218526519625016568397972351368124722724340714937541067810922769258210336892443084571569503991178564438472806431877934653554176688330931948966618152958911642345986757035302785314544174046689397840815826688106381470477628650155867362953992806658996707199830237394561986367216848182154786449493810347654165326748018392880339110173480467315384415684962966038712253869255968416875533180001028736544246001430638098851172210674720126105764306572280323434872926531724290922593622157963378416720105233058232325398047060401434353315464287729320296316228339472590393711211400696749910093949856368282944953174940762659561677264869385704746733845462762021356132053072451808950708770411563869968399742295813509645293705135192704901869718050481597318216366693534770971337249413294350683153655197846520284781909725162045253218647882828942899727285085570749189114548424740490611465884014175005333164328660487358441557606392154781566237812472260143650058292477479631976234445922875472212077004244907211013422807754837886146466387450929571124295779865453984536156325555804729227134315073198508772900898617514251237713529289416824284386970763362994900367816185175522975074291751342486107671009294914995647362049196562589269824348464718374484890888201288182696673392238053568757637567736502109691937432906236187862008952288041261936212177543213449522065639894605052128474503395269293998438347438824325738064386801456947866010861940945461499397121463383040820457356044553749298303628987898252429274014608335937690882654033528804010290268908301303450602116089060280479539347426027167019146796195853080007297493927278151736270651119422433991075605293868994235584772974113596890237999339964418562506181417357830085014363755077360384701172634486929382428380530803276534954855218177500454792295578196335136160159918303629096513575037854212870929588326600688693548056430334651150575320039641660351518525160922489328806170846686403697719764101274887966746638890965419576697796474287420126597931085836865611018182618980203771677905228581303974334347295059503316245551847785469710299054013014972254482612848979864078043985548152170378290696460715376616202519031960017044754185159598711011723596065723205261399311044532119278435019357687106315222459860207946561702724434666151393251778482014328499495372917278816746823199126615298704019966418548405670511623869871968852564939440222304262528392218117904156242094092993639915087524678910498191250172447279168855695062800952195797837876177016904096693169916832742082947146991637750762351200346339577128254025747392769747336172363821700366812081077186402325500674680660362616374143998277302995201340422705596217197376109238081130913372548951473032077985332359718133464397402210233941066674380536996571862335719997144556852212689384599781022016903983586784422442364112154512872043107607001145670482697750066979229259680763536121448298122983138870995553324097018392312335375493879990242382978860754860203997870189340715750441232866421516146273924262533561467333157045430151989241549653264558179413688189980547353320333222617428022875442637921818311399614923535096070592460920999870056122209903256656895805086822317091715053214447841977172477303978916737257808477460747092053631223881220389261879533616366224803936626213199406440148838160382601330729406152072440610724717913102861460199612192419813063527291099008011729754584304945828468574757582576014765349247613323627691507065395980130838021816146863719615227028052255561019040901265071216308358503317202457588402654574985983263981157979402960422787685440262915650677436056449499073824941401753724757915708773038414119877303097504718756325111984484117257498038533625500835235372294696314489157733963737552893127602744616647921380832531018124028869037029265594268045361787124015275761788144316958130428248107846915394684844366604714482801631141753306168113604429242414785253089135599643489453953011255192450686504180625832836939324222816749389197311091399702719259673631109331978883995241905438326466044625621595030040050000372696792314761454651426848199491781330213159829501895850979951351708019591287932609534432310437074188133213421291382147686871076881798925942868697699684523760029143976033232245770262963788932166599673089485496857598715133309108937302722265670806384142831563043976304433907570577674771334824076410254900490100712864709901081406432780356349094923002743971393052520374486345950350551449143555629140426942479258851326140303680933351347751305692190573449500222668202776339506481536257440722008298211048781389805427368672929581373882447819439383563240517582002448380316229277930409598066422332250625673873447236564959265503703670437489321388724163044606259503456657663155048363937804278801099024182285028111468830698566939294647014692198088043615368009319731644714252705462505144609030352070873609105705145971289057393424254561153688096032265077896351120092381123116162090126279174062099543987280648376117511820873593142127763369684174346890434982202538860515494381247370101923982787208705869016561886194022137856384629113998244139741565069308640991498870102449723501818044074602176556728650503405253120821285926009909715282152872343406074792277256286612270275679345316755533510855918468592755821850721596373060042254156466968986953500446509594616522106211651955578814293420359339417502858597047873760393846593325729902060093394728955110591474279854177590707535022612980343893156755885367816909579394916073183124971165480833980281294273487684205924940384031034787472878757247649681073324960830301895528009886870104133672504959669893561584274546261874251420081538300619579137406105781941047763646625903519594282362983429792214554049196979047801425893655288275508667311073004085152390468122215861216994447567221724639259883572662509359500641237158866740908999073469967524180601730100490681178083054580921926442674573753242735432372541179203618249322217320410064548885339721058071132067942948342489072223004632640793402350908468580595848248391379236668379625387531799456388651847480765207080660323431902710845768180673106664604848321464945706467875434156815038004238481756552897538556153225744706229319869606744977814258251694823820471367313620798888424501976980805254048228816852212468420015404837354222533661161027378305585121748567358929893714911826095497310213857582776022911028346491225429510749196599240915800140704744508863041028942525721369649323465142437097326887998635648102172324215990296992105753290773748680968398437778544735690667138266068178892467939676571083800811387048231934805646170325584673637174886047703077280885224212923875678274848575115246901035638531764083659581943745528803630070608403927277846709311516312741923027054694779173455293119934131876888676797025734429560328513222878636748927247390716086252890433550927281235489271218217075656677746467263524520325969408088870008971965970871763395839180010324424584054288029481576419858538928568353549560115305992467705867999959166904623828194916359402426261264495766318330462490372576991979046845160994403888768529039956086058835041272536727002435930258618762719666388985717692194115015849459104216428034947539085319245126951762383788693031733066163778856004469932564500125856949689096600608203951027643266659757235789394942924535005474674279415311815149882053578104606695189592795907792116583121098446408787667856351294233335937803556205678241136782807569270132295372735489780123323851223458506485783423197710561317590140923631245515763305469989173274988444841881767609377345495518344809413317304553048369299514544688016412884085323198039775132419803532310044748941469133329812485804601120846278891223136271379532269682973319610271053201772560223738997031657123990924297865765261269805302699668078866555280545736164394138846177296158329411147485764721684517325543084691393821318192893264907947342469436969984131678236307701949742166076480663180853985860702199445675728284351814315499123017969521483702573457248686211185449031023164203622415905532130020482956053701933411087799027654738934974067909889870485957851829997956223859038147028644076692353911225614288350575847320327535850125250954530635127796148371154966447968299428790000991787889606772083816032206936621384508949602850773756499549878104726966738624825780022880685963819311688026444739441268405828463746171638048699224969628841527064139131210705799702647025059570774403643203384499136457001191736161212911509561600086299821801766318023720263752992330925184814472658898769048535533360247579202895191259254094363990064924027134993814510630872905624734902472831335495820815980149406201689484646070821204780910487802925588849413627769492985371037955494115854046689425536053210336686079673605881280956116607064266606016100410356161024970993217362211696815803048338359615758298004710311258347202485516440284843366629259917940137008480240597888408965723740510046993440201898916894305449289777974035809151368000761324423370323529004009045151564177680176785654922657372801087659995332127362298951482919035643208774346811871793964893411805888893566157572972290229456820049501020114659677597022535745579605535542141225509296961683223559933036992697427091056336779734556414986187555504086108027842898442887786094434347003687222865504331733298879136396226820624840283909597299088436783506612963944578174726857817336206404348389178603470174815457810630407399867437603715587550350300659538423789976390368434113296913089910056530149294408246175082250827405761541072330340945035889120087953428844473101218757235065546551105926606562562556096358549180756585690311614424170670166716047900200091007344746597002911931707540781980573934722573949434124977684402456026212088075979274123519426776602008661291182695666057692112199207925765437075419356567047282907579690305818580515356126721756036388372631028155017229430902926561773760095942943096842354678585022912533804249871694575945335769573863471758396575312843247936049220595741912356517890185327222434639106623800727119771277567384519977315834363012085306646879511523535258774091840878262653832277623809628730315365119387750538725831437119510732025590882294798200851025819450401327538237797419040183622594996562591764791657858972399104624550063004563193114100927735673219944458527122742055802405498787809794671745178385502005240093907008000216477559242502893985737072389326382847911078220124605760346573787593330519711140505518963547922298283365758067718346845968178457577157248416560906162794830034388304933220068659786406840686144720483762539844708763285509352733003459561219070769279098341047894203655493721860575467726031030637598266364636508219805585582045486232953701165136205650133288513016123739575030047787928659638573825121366279988495070540184635653925247863585244554191134934552844905787795391138895717391626178069784301372068687783696912193795490564151422308712642562995714957923937515563652497120218324887366472495570443902539560380053760638721044518765790982887732522659693741569898077366417397469862495675060059689334246691537506879077705866279196098785337131574393495946404210730229882175181603335470442101041096749329121060378682768415012910116153205827751425472911837092373711082212528425344333453381383580238642173652469334751084245321875057882671505125559602029854234427947283906557498336479687080262019334310231777924967684123851942395641735478551889561465941196378167985572716768117128325948606365031674681906524218770222830751104670005938749255972701714899605791713189917306003379520892999186492299309036941069452086936713405448830682009009952258923243786014498579696560546116150406808315257261641190868772664933071065058733709390809207923351902546764185794599828287873965214340684511237712796603718000506487610564739906493292740719831087662575500561288827997246849835921486458806682561402451869040302429149522567888158909900833074539070949824044559056933922115572117055304369271368877226056354773205353250542741553333923200052479361225514165550174727905852922509125939493899528669883672264964720798011863909406076908384220776158139581386897821760821846269892459063239963639120218375258472664636458732887470346680499776416633813128682072014676007052323031236061467923614078649094648656327128792820955352200495371184453494686444620565317982109497141474078435651300735702181554264186549316728669947694823045846641299549394736242329291131659275248489067439186302406904487963319848866880580397227548900266666722825757550798085407703755026570967924701885975168408445492190198263700435160334158615543664357941332048371877319706324070336245141383338304112130427515132260389204301723043830044952439406810305600453921641000091554775681680705552812110932393040119744760897267416419963814780372561558715583177214532499569100061549712380185350341283031805325610680953043555254084515920359509180949541616207458102244334721354353691231237793685053731347806631540029162708497059406947786587256774190052216251249335164608335910717459221595903584407915949733683953504957203265017000054662647141165009334300766553452372940486989780947711294095933641457700092233464328626229070437560869162626866263162860580228817851195402836563339795028446809441419321553690672772091915227968671720244494337427004963384095041189014470798986998128305717559762953078374045989957309959506528135086598358343413392988136905747477049304479111949194857002874280473224080628156068001701636847544039678987970067729270022697883367489125371032329407986695956426431051329242835864782110242558915834826350350774651336557274657516485969364970511734323836564870184292048711121824334218610740310556634772179481855548200885268723491624954512956543408075280209071909407104981974858795171478948447265842609087026743138510597136768368245215169946044128776646625145461584129420007633112735067692970993674358936548666687189840907716763502109408533897427901659322154663318257583769074262793545998776487201894311002849114045085505724630854439253804046713528572859365371578364464924090969852351865576810776226649422782001054458495093011173118752754784148050183156043857282348766573565103061715100033611006319320719776693145846701316180154334915773468530374234145227944586287113523291952508586284900620297957819361713340001549873032173586712322256334456847590869387153628992225168133405771324878526454778845452674454188783471171715984327673456976153790421216600206652412542841157838698393167624435872568760088055553910450963883709602217635620601564888103173282167519346855764651749588752865321328212813775963939222364671598678996005995095688071620102934160438511766542142176435736592712156276884439383194505517438863268215858201861594770323369999026194056463755691643579857098358860547671610674193112998662334532255114177370339432811175295021946639154902719866879351328700169850604051472567580628772555081534773275740314420587214366268468074772116645656699945743176014903738983154340112607661715534498551231195884235252244896014918679841224486442638872596795406780806273894330920755295334306271280075405014925260002332961991555900013353221857236532409867296074548893427636722197201868202700681847255602558887468829837727597605462165216048836238776285545382760275733931909230491136337211719599092619901536392671239712065332629595566042616133666331701936169141080214706731002261747557074816704402241986931319318666571427903794965748799320281973641020735759787691360885339895581351334036714082061291396704552165895066604117145577683156332242166929540966978218738574479379841242915021924797528438848232104713078280601413282256029326139381726064494729485360930547459879342566716929987735441844484196878426848809609139734817462000195563661979301522454200938969385390036105456064891150760046964917473109478096990710992268288679834810695629714797644563200363285443625551363722202973332673920702118962764292728424681245276465263660666009390794381779003208553831994568253182324921444243654608263280682103969362541114242721763456245888398215596551594131130128128323420468400911166578448449383929564942043750419400042926506337638515110078441204488294405360454940873559403651670843352790215870389065981680491889480996179723908511948858087974099908872142223015188032598034223262408515129694536338903121549928897131806472634258030465570917223225893376146000285928947202895110870170284438040397352727702768892059797509628874224051858104231174048473264785577472285976682414563423538937155103337837454054620392261592437306252943864089649288522465847516093662534031325246364542376364707270322072210472776424106563990069909388871444688807752243069948265104334114325253168570029996794675825029945593107937680871885180620150485419399331230615072951808522346929505120845013603288242169541410711753945564918256212293368119170771571825976147152914767536610024674234794193164411188404833835477368087591790638949722096337696163807394764127674186310622891537702083205721806280043487874932522891847925018091367083412722272349648589119848641575012533197192732707579250839266429992552240153435263206774635342169124220762688208035589628259002057146011981246182934807121339882694849602993212079700593200206628598880860237489718845844490085850231919753899051111278667499924680932415735316659243613436997115928928592565691687796502208072729419188036892139019838798602192448478574557019333208024886146420567831744999279867693325948640824759514775245037299256571121873324076410058265210031008902133056159016017331348552803528143173717529956144347873339158116045379430768570300006320300692660210366824426941069366080488180075405437064080253680319433422927570260612776165938104105435736216645898494762128783018501076792097428706005729242021541179442311991210274241743181092077659436780454210077184137108250315757419327596877740668600532455692036049653740735715920877688227419498579688142215579988858678564861247399130171593747443931864360662784517050549697103884059869064093188562640175583152898607809591872427665418393170798408820650174373116964975934019424466505146943617638136783710879909535889443512041814224718900768440302948977165980278495579649020609037848514189182813290646350779740084325776166302495913335612187338112602607818278149879558315917126241176834125755929800800663280065700790022321074196800608383837722391001116993411124722085648134402052018372636272407110221733467589035528470057454741709832690362832977751152439901044823235128612762334345041844669469463812071376254861799758767954374274133026227697589757418476841913881932021177874615294333058225837803769551121107260095726692274575185129895615954611064354823216666793721138245172680541920985524943271421429146117522813696011427094638792098819109852708171573265056181392682966680699547905962685703974694592280033463053193919416452320111453687994507885333008098170450549096737763871370143428380121307213983233215427339992630230200658593577965463916064009393297455101989736227522478637881006313340047672428438218863366788644789991703288016127523181601279674794121252398680745909576153689376230982423943628892935747354087807233804892298478361988072060640029166231053796161588187807558675840792537384091050946036404500123516114747646877551272901373586512202802987393800486291283278695203042181454684083255992410574369081549536232633242369680787197535293674266176000219505630400994036551886601943935263296716994445681007645148576235931476804848231175357598111954981524770230321966995568141630960047565474580151341643601052595294651218055493248426087471548142621683585547463596836131982109895901953138045017500043023133752319690468848816578352966312412707917098592973811827715517069760218702714883418337392879234420980233074872025296177115946404965982231089758621455357019922050162842946211634053256370692917249575175261124407859169411175124850937769124016815914209692518043548316754012201043346155747658113819410050209167359128045327163217417330383358312226051173611919768408014275984714585724182659588541536055781205368209404612013025821361730889319371513331406972497546539076015010644017954981380961340527996531809042607504559487238908912198513392843316769186169663748387084436649188979289372715516347036049856617704651238302561973259298384543236378369256385040636311458501827909018285751911172256606173298047046757558736538064547026860307657733943085974341631980278007467496021420077293019572005479830730490630125934504969435563093704976481556801736646340145090388632142080776369993203039918832472593162303409157961667112014605616727307891459934075425972598225824021429721461870625732357782275846557704696971631795926511399622113316090063744886359970539334821627603371274691576989623144488648880226519676552213008089248708784985986625732945183844626190972622449029541695715954871779761033665148272682264996128972545037505170655821968523120697085678357294301164118886427417234317918771016947703314880853787047038573764701954995354803268185498562132660417943579944272949836085712162165285809702251682624418539284570030298091456904145220579028207960041218855966666241765420422797212646744955571893517932147838434756879893095753641095471241541782834744224113428857237786175090838368028613147823030007248995937954015356094276169503660503060937562164852798715437590143591330573882403110969709473125144917043760634306571437511051009020737130900930550524325645095664619821470844895921034931471902934979215913504462242424917884867631404715462050122154698899376707405949434846990029146722234129138391378727129302572720787921668844125913132852969823115414347148426262748316569624606692156379902384242331131386198025870131226217620838157758479361817030482410276806893661274164341397996611234921047749987373323003992648152102192108203284954083062577318171141828413047144990325419791352273523196680392664592332931127702034261985108125727972904034048100325239959924889025119058407223240764897161841055429554701273072877252493761141547241182362920772920316304870762429965231542458635755037904328603685356193118515971134771870767587138717682377893432505032322573863445323380890742868168881381226234009864488120940159111073523842120753970006951598957154738950441941360367526984667138015271739508354667956595852396314271739984189308072111548771425923681730288282849548689292172163236332974248924703933335855672634925760765638845349961352538396766919949598220506471675080291499033043561892715875028202301356652458877421208932849662369763283254958123591499880326756908556090278860049003474138152618956853427634143319348325037453547032467630887248822351835568764655851379165431053556015517545364723237944770258685156757542327131489211581604212452831426677817649430015990986962243247274940024532685727950483055403381006640622012358683616907768798869159987861077487414231798404055326648998762824870436171846197808751109750382513250541689787211658045881081465132277222440773464051399339461752806722371705475790322877620046744184608651540034981622532727134748111810839532198750697594556058276311180805842766454766507509880579506096349853940764912392895212894099816661471805455954158284064637150453829233290474377352749303377209298194686768576261695140615143931216404870491592577182498286306759536716409008206644746111902150446842180029919686757959004550155832781424999361962005808901983299670469813336547421496540151240833329586474987281577244560589867885300677952398393649801906860533580745723559049494678969728776886780516100445561349906816847406849499995159902606466518053509315924483134652376519164171842563963657195288551514749585941333807279571063256776628014626035178599543127871798665184128025209299481338025143364268366754274116434663634906468464807498250053119875404792748821939399983079177850277575264577495199869886654071474409200406940788861259752452480177476865022969043078975547519901391085942223016103490314727411485218211974276318427941974195342356631894090026703243084906392819749415249092836879935422375361790901772335916449733921543171832578836108169772785360998158942383803349276525852859890569496467502992116233304476599047929538824953897662010998147574288002702962273334145800422627567394872763774000694539296736621485963159410655223341809364282798288067529218140644614299842079067275185888206801183133321761764807653312975811031772292168869268247002946411296703324914967825200808887931419518002849585452663493935440528735980563191276032846944483469424014618324741242530301880296959710827261340223473502292975123046927108453217295692941050804051326146433497843597410371689808343939426826795065381165789511467275941522596045678477649446922055803565095600450147608078777824463880488523091762150059743669005441059754325613148919815008727892571502957419269899286960467159548566887431599264801892774813276122105555845048647790269244285661037762651487223460120217450805887841592801988331960500791342521581824582056173898542262616839708279927151082000411062391658968654532151272900273830429865522485735312410785871085884799922038682001267594930496559955374803134895078577389789686754292503630334353620312495603292464188314846778716429672776421095902399472606211957779293108917649227297242981080250989783844043689058712230597332835079579063879571008516275213325830250267575490343549154429383868327235024163458565603527515781666921566122219886884405743972994310565464336056955677019137221508520830116750429617216645800479347511499116883102211793158123797292809118992735172859064983987795719110868737600624929746916023759248891682175347029677586054372180699147529287354251741301980798515345934848716979736909491861940682865832065345190340528409629471786995883821900737890486609568941268275948894749700540094437639517544334458697428646706406318370335150890822084730085774596798452298325898743175239954473771869877915714907601573424786471973907713375210206822193321139783891176769631706076318500662504578143075627281154425292181718797330909100388092773206556552394090642303785740637297683826495178361819788940202839648718968187044837148730755365815539508749812614750887596077472840460751856235598146081215658268296323389904661935484787759264579019937972470366681498697956605038230161887926731559121682157922104630438151812103576197519646320155916765223651394916979487937257843943235539768426137126683329656533989110165922963575746670178798263268247022447752555877366268468916033776131787483660974967409217177529098645925938658550271708349520913667741390152240389407750341694553364084765221670010737334001981206148686249514362529388169645645064836147230308454379425656116318999016595390418904790155980440829757186345897836918270615999972197637023822796811552198638135117933051062466512577455582271372216682362164600872751191319742459606342037581812006963739638146249690691183916984988707441346058528756838670966876811484411282414477023768094736716693503763839627418367333905065311550251875644625207707551652663506175574742416000743785819808611174955030221300047980693989240270677897285776384617571187356694364205867010416656777981782135914379775987302302212073898428236313317608755719889560138550016975318059873749224379070386882064160888009511714468540132738590676868884033937571348589601486091157552622660673772217465661931151997021917177888576810998989571282741230942388947064112324568323776773601206417269480874956824200976473992265432161398108014127726663422893385348282117229796719978856466980961123831019012568320025468830690758073608336011384562045514121671541699165716227667289335595006260415529412939878643274537107125805904611618485904577242934114908020255670292331973020440977163430693311195637140017240317693916777860580867795430685101954529574935159354065683659844118372195439657131733841035386517945744188130674267223006130495139996335766211766654294068927802766750444294566343196659578335467655361421590392971582643640309744793106404706464143371246844936280542200690146580062867783062478533532503108714529986060609095077718303302449395155462885927773558319178440441569667631256602681140074759573855683883806723833599181204913926861435500858538962227790627654287995310219894897860041825195274856232102014849842411325339818055941743698927421229046227564993738707352700164504326218640826145048105116485209826991565137266483551088256180675372826146238962474311987346678034561619024992602978677200059793084609584695638177865243410837811796948762383720383772291050063657052665490929743823522815430794610418763297792549339618549619744159364608120818782667612906782370862037723548110025190107923085458080602981954815149065001710413503903046094893735681629020363514964112139064532841617300657718955710177227847522890169342693489667648042647900081664734305789144975993918794953879576018461375664387355852415151802248341428413321336437124662353892776911158160082581932538146532468467814157127677365058320186260729860857036555180981289916501599959354630704886224074755447440704653403031587353116891506010693030665911415966223522676251776294910411758785418511273170742891189136872938906424642922173416432091175752021666232045501826759297781094033412376393477679362784722182514431596152646126639312368287457806071977156656230950478095981076698570351269121827707990682865510776352697046984183491077074307992570108149921128954676892263468869167149032667959199955258921171911305219177394697038693788644552928000426515489925218421047914164441291839040634288344005421939662358368667077550652399663508873331381679408893768295195199973809070026670192099254511908976727625694339978582059307108761261279748877780785396565907351188393928279675651624522712565259559376892056814387727308991663903340708785251858005411677621702627497094839692224029940918905154596896418460556153211536123392861297328104079465499273663847025726276619296641185168111512800865626088001172591325603240744747388711821298687222243372679347606711520914395726493148733119946137259393832832748087648143982145845663199970953251965887696791227073910687662080240785491147114231427662109337616706122227486061127313769241348407206763893733928544568634725970015192315936283714334111104444070649893351288148160020434243672493774599421868476488876348307615361350116200666620340409058796643538534616129284998172109483778941223039667202826555387658890173176937381909560989660447054116690962400717521697981313880794282500839396471515672205227826903257199256637737547296273325366495566105767759551175832613715879589445181217692023300144584562315230488923113660553041668749449198863777146043381781135635232336924173587385461920513295562621879100780655063947557408791166351328167835777970235158378815444190971128276582853007540155980259206058810378668493089047498963988800141840542118983476825159342544274395902892363688227384763115565176593480549696030969648170552081180388042939298752045772784036013699174467182625207898711585862430281935891723747303744671070444679010129208662638296825115977728641084428222983700014632647873199548160812927146879646264826479873447720001644763265712305654815967278257223354699834425083300669254567336434240490322796835486459532241733972418323159507483099285087808353638547570089865325217587380038863899691452862752011842529377151848288665383109630523891464154145918922045494870617724664181530889595490057531416482017787778541596247946753901735443716020156169797353557086886215113263396368328591986164009162040039645959298920094026624586637768403566865266513385910776234598381475021982621112625875087916885288230937226022405084948629615255496087816028640277913268385257528145225571893363947329241671052064789916383425101819214857125965617082349671289783178955311216256585770404133356729686813761718360269991547102053524277172027387143715935373428435599125822513082317222183296443158620459201944424078213574063582306294853968442769644154428630495782977702784804521058215266273855292033040223084557701710460613147214744834079770764094468429307028851599712720711202615892809437098156393765144324003467326911354520762008233752241107714941451685272304485084496593748568934955355041562866453256489174422093406236077446262857341167841522905329453865774938869713127955632035619088505798171276253758542783689991421923470785333920240396489004321819966883208837796342625572184927024276221592436111536964718229638013148022629203140969486012953241709522807978769600220411655420156570993568058301542580107858567175298487440474126676441805406255263222302645270428269159989162587288550684689977998732290182293953136006603956922835161071112254216189805996539934343824798771881527809870024107805225605413218084606656853606504806159349590474677093500979016176630070528490288266339985542043475083887386544924925987534203661504527955542381800851428205536161236596220375094786496141465209908441078279505822850717361772843885748396265761834792045283167006143162575954329842705710547639749103264284117201746152592727857404603158499794621037707747642655082976568685468875461107648684394974615194183123856006427595596070532826516764448807684054315893020514591625518307497588167387553781127065909747111546529638570055931978692155596120807602188211613631459770271788256938196411831314678881277045560843185590235315365055884339279173911008193956657357246294869259283842796799527231651982912048962739052322644941601420979346751578321004849497418867144463467974627331837992361364181488496092073470282629264751404508296753247028613003018188060522534159109657888788031169935181337336536992384436694108313158422308101266917862242236858964980634083291522920449094099353213217772635843996324620846845690347240533420574321570789870572863877029764811712926490190433792705566485433612629143050009353335151348590391197668771598997160320465079866188241922121558810299389138000872993674500660873408009847057824482763768068539818359876301734395430341703031544053040792745592403290758897411405951579766541146472098969765921446319988242109628896686261915841713320543483493471429511200625667246383319759583717125046522643225189617774669550218676935291556727429464181621987098692553339001737828762659011817919903020854094602418108816269653656782493649654815752861135901155988687206391342353525997915871529027801713302907975098304758983398741763036127719550427592864667120504948067099053254116875238845168127024971441665020130739871650336033695684407950763067170999537885126617952456010474489534773465955821621475167627425911669978670233814140180956549514945953031777892383789644340363287236081024690412776530971124219731133651855954847644265736854727066621351192389615989980477898746662926502764913505909345744821053841400942169877365879550544384710274062530618066173791439531398150280503413229257752693131487965402425184187217838900418661323474543090339410788599116009851281166044940056225828745218940746796426761763496998461054333483009876009287671806061603941552818447000391013953162413065527246697882967413435200946553962078830162207664229568959313615519841140955616812676005192912954088436431255991474982609930844760377625300267975628869212914891027589695918341344984383323096384704226384574446778437643560163509190262522430187094470803626863918347046098867550901225848303744207858769008172283339708247833539565463418574786540911897054159646425132577605339487537528162098742826220540162374281269316096059127716684012181556410257064329070911689350928416258341229793095002144389189263761802078760698831512355846394594032115538570750919123341732264114149737797733823726857871433461883244819541495634630645676735865565370262569070049800773387906516243830826227793944883934280008554015429019327766154129476137765133393045367652747903159318545635078176376354091851269741096584408853745415223417607915658506421718390655087843672834686097867623156282205769846537600157185900701656668117090990840378199420889296489336151552552940438832726346373244989200238535820846581094672569579497299012014786407317968909624329930958482482276992319417579651622118414878654988143141470241326581688859564418619087952154579531766362538286297143863935279766728882118400884995911508623637255500056151625695783874144504119857394681201108129018512405207627732741766445500677414037898705063914044043764901657583913530813699065712365045391988967642571243246110622251327656904101211076004967808824452838838079141713762349474730103154483356579336733418784133573734633849903668760218310973175413764814695400236760246541204483565722241223468935032026459117134226325211564318035169996713536082941108210441426618189811840251380288846039425835028343962708044516654805603462371764308124054720424236974466876396404236522867485409649973808432748536054238744257966190237224830884851291116026444221397366197788069827995377846947574068919307433863615420763067993726489566235029836095143917018216862244631277063292175507072564774610238415321243574253962342873547213363791266065210508568567334136779977863657482053775134765522430429271417493736950420927825758077493045287234080751915653661715935690795723854416294834433105416409915139440678117813580882358990125050559809154677342970686157048146220949497039679641558843995303080791919554253698210310229807045540720014342916997402284915363210047005092634745394787081828423544125337352708068612828755519534195021059947593464854741622128579924457325814614407309754974324722567788684746061327177588688250925572034459666754209174945935083687879883041419818766549078589141733912123904843142851963526633000325853523388159472604267234440931851618329009686651802452487534076172593274844029404564059039584038600734894368844356690423213145987589367240907038941792468218860772784618496093300833507992436246577134304873393038417322626578012030498533338081866356980153126495011957580059913896992328732897635658955669364828609473566809407704965966548524543674751282870140176261628584153022992736323163603326565821084197701485057684673715221037906130400490443445986613997307907377753321080076196694575203691147640876796729392397746343127571754855629570147701838597240975995875586665493646487016228209595258717304433468684208208224600715970568477278968292733190873261953402664919844534671935904609001039563845943468860511966081253472492632657797485268339240984514944602237433253134850269306680401093824894301934357692457980202653637040735346547831981488140269835771111300046685632670665604038473730056780658314444762536731851358445841501755408071602745977971984549201340012698497191084961328473447975586162024320723041904496192058408443514822345296875005375888116689109521738932544214105527004466569478784741420435348131450295930151630432625220496336192653918327130129643016522141491114811444216936433431175363500611852070944822282246761958090008834799284996635603889993422971865949556998763871037490609268728812308664113034612929079426317322328368463593887410816239568881855985836974313810304687222755461066382750894357189240133717148530599798763050641206705336943139209510352212157228141470976117340326854767967479239844724382437924730737715215590626630236328464461757932463505005330335108783294996993167704103046948753665785324230523456929651322129950106900539659254753247818930844837862611011618101780319507775548543342851885907867611136541487106270260388361675252192389337244940964914593275311612222064791620193121743666297076446638575847014088750682626357314121727709777751006031682180660952198028627313078169494433457765996010496791288258734972911635130302068053670529661316679090670686804768351119488291123893595962131085670727032380992493992527806138077407729520756723410445131821418405303912043225168923159635451376437268265868316974540680594720239017996348206602867888458016316883543488577625780279913868781358556837353089630176778939388768409787040242554281211837721222884808561714121675053228354980086925599620743801109366716574512143677653827280904155616235477905316746899825403478584911940631292405298534840735776990959571915983322088605791798188835019655469722731296835598341619882107491502005972418125251522695873869588721622477705792063184548754967901202558363369564062120576993363361889526338968381847279942789817759153036453811248208155221672661594587848241628203616663381073238593292763683829178449938621390077887561179724761445056883455809089257394105570861223813796851455080613024049533035856380901449950288635657669720037518549083979915916357340409183323157657218834647766831401082695090073098990374953159272948444266255144493179046186888959045418048000100139995311798699774980399237624141307098176484462032603879759993694844102056271776121640058644204436578165885807721766852140496240170670952757918128592486514547406401025006629387840705825938793377493067804769848918132916803396577229335536658297626988779226618137868255968005068059507739826778234284788865463730799193404455478023649559036435745220586267031567408339131492603652110843834450379593747183749949005209384229452007529139587597740009553379845767616435455498888221549508803472636651296513443676670007539518973824062269681863691677266564372083323130505755791262894540357552150613924216030574091213321899764437392760599591430441678771546726709780387980159777480028381946154112523763897707018195471607658142236796763321581296232139957194664830720790005033291671508528036727921627661275129320614474711305126582756244494891716412535621872222721632471289040325803762437637138406362990022251397312325337442552317635783433745657047541903445042587956355592608872297833312953911214673851187298869644679074045661694820221434286407962395198577996653035926637510598193326404265826012905285602001615940406958313787862597202893952219466317058848411527325883389503064813322955579147127107998471339335636751380709170663337635883925492756950929554891783674342748978772533572327810169738308235212782777358063976722842406880468045259399303328675885774749502342702165286360891741539632685705438822272412306879543230657441105945704996423993907658386096015261848390967173311588742723140567633111858781992159380238893920767988745098045366073766106933689250416954425227645385710183392476216776200138753174609298037554735966371976382868421477620572270446663567073140573823364291029456884716431733191989698923090933406011164335141995536789372649487916280846858910180441039150664739690695673363575646357989496476954968334279407760162284857308769185413335742953946376462608070839018156201989672397009416503739590359928277632811032961000583204552567623006008358842988011772943019431697739845732450505173266079436498820231782181539736964164529666295870145013466688484973880176315150904932101233410327059520217004626144026953232357188171692556948604234161796411437749665297382268610554537815904566020162540312568548950985853942737529536891387086605339483066420781856367972786833090795630742575920227177415415484880257655152977892978801134413216037627432720934148970541010536153858943118436078225570717415172828900326367884363959124711216997042874100241433506407324382751818593070360729493470426709593783223664246907322591722369697145881796201455370569236324625634728953642222634078036493253135230172603915036926653826994695777648131601275959354041040451948635580839872385865216367700721700935213275166536534016237700590773157104382746476247559137489515833736829002482963684006972456317225964043845774491627940264025805901738847847462872307693003448580974567652302906267864124430326047476629235295389264933038736719612801311821211997640319178742512322266664827923749297495423570904508464568681485413163541524530712685479589582936508369266500019249269895397490047340254220768323107988911425989102650051153628845575151796029701399735345969872848815774391569056099102730261148952363550585932194856951949357304891796926377254314756366297694135585229762846146599235499732964639239637379153156998858906235730872383069280872615669308270453856071303539247904664235936233919213745151748253271890208951065542846480814222874033045691742097912889484299674995248953734125306384196349565245092165067445922562359677390966558749187276979522634522905563416810313675908828858939497835565388710522110413926013963056669706667421059447704393682028064555571717205022754857222138999052392576823188894734452119506893844775009059795684476452516685859539265954896480222065678759490477558908777871862389238683863556675366390735881413920500431765228048998926673021450590347080484171592573711172409540317367653627463474421141385944935035121648874966973231598178664829225907935253290886396199768188656510911324267092616436385603122355653312058787536664325310512228323577557368026702059784899265108485026233359163658633874059298994192733335354222009022324245665273978957233464019339855193406496325396082107176419746700390198390999796689769078712834046870318233134602614220776263069763551884262279063563253121632401067988047735970457780267903956144620850510418637637695177350281088955583555969687192595019194298706538757305886829017308124030731850686886661309497909124270556048654337409732391321059693547374369421993410446005725265120895850219542350232268522717551376947819652669352616890593842403853844002312041093429157553778918199290154824468323667577823970405472555836678038934538080910536099847445355839493989767229471439397611893790613755354033366464185449853918033198250328041354152589031558957376961640285889857276092580419686502489357692789328213008258040466027749204890104297901964888690602546898060747889453362106387366285383200084701998270960954260263280085944695323456971607716824127625144174777983601651985487841193132203730748002043479040984483438030602088373324135572128200267906618993554483234263950192327481073020393426112294399194252596505460265492294627768405656306329356658155205362917796435881517740505699125891745996487275957439498764392093305892710616927998554216410738090629247736563660989471020969891748050703478690678368811802130952092182395250708706803276384990635953997093551140566042784165817320454083515660944067108876032319561707607909596810452643220105502300896611004256366323216581482460679395880369987764423419570213349848835409201680894574503715555152376671770199720268120002407047647007110830811821188518836075925440022087123052359408418584944196272792802876046499759498898915378301666838685031370865165537113540340823752388650960941009073738347990479118822315937083007117662688736342747210187848050951132515052563002499894038573470150758653832784956128014036334294849067709246185772025591765024857680482039008066333716774985012812132516490030433806141129852163929406903511683591485444905176173018388903713082430654194905788068402201947993358765390677588815555127979162970616064868000856945893779333928251587487037151059961320056795391140521312517487906024431754930163636584462688624536104595817182248101567635615620190591883558267915960206534131217710309951127870191356842765878143847771601511998892600758580294614813959415138969275544822987575751248642308221151993423751699789218381696650003819634403649659924790484220145400251633294131060604783655406886285381351979876045308374056932853329100072284575400077238734550054571867802577329316647348210152991204627501645195692836965631460623971096628618761698861377131969106216458403048879084250647004069902008643617043282130365369837786904005336594358313584366850211517950486155348541856953247191739578458701801321952017703044890428451103849797321789343093043805239864252872952758842334058905095174350003447010389673835907735338043772931307671111409006023426919740612076555979688230867408881724446307407844846569757123405355505932014002218074471077360739577832811681602517098242907625150126549428048597724353897180223388644734595174631023224821874539530445071191754286934391102768229783165518531400313520648197937648958964771156180428368613304847387814972547258601212508280172576774321278299781004568322065011008512608391965815978431720624289658942861153367060474961275766971145732265707776067233412112947181722278074464957671919751308387033035950140954328557026784386502227658287848545919267752401068389292171694312689076815473481595834454500037432906345447032067509290044875141597168983979941060958654424281854702970394849498639648507208511322972108933250972394224005576397658829357205989237210566083536521328311649193026212920983097900575149078194390095706714290901287625973301957701012014297706222005683381492026533685316915446402017782301922833619957428675785779849160471008812302369846139048709208628792847549810904836103055013754182335339664755230817327164128736945853164953346404615187781099878738362667456766996530064549530496277217422426192334451749115832014178854557386328637267132653054143703814990807615454384515827222309657152775883408442054897836579388605578260860982157822364117674489183488245173486130676831282036832311848598849286625516678580294355710393125903407967074754013438512303533645058482557288256433979588296361173364563655721265595300957501568418018951394356807801665573146118967776249131468917447322798292831048674113015153578963467251495834412158171506896222631775771022791461617299734210138578549441160892810856119171033383042107348544585671735227471113559412908509267450664425813840466600038684530358080485138919286376525375283987308457671607213593338996804073110624187630316075468835490173422784716263935098825623783361118691343925394490209807253586900391509070612088566642363654850028012615800482041895912290867336729353301419537678544635759107056459820578934653109060626066243241899378759337589308025210335919473292133623955247174559208590027034872045381731273118916886961805363724280354761146988887824350061087011222426152225491001502028621852719638452194874015821405666786135013758397059053053543551701224602793347596201395238251972284134365193886498376836551516034238845446598238651644999436347775131723319010664268232280788939837403856844865035160593829064937240460217372610410357738985029645244706091251305714010024237686385226133866797619232100739753696360191645424628465501129110649384337318107188041545755814571953015647735272062063118936757267835237833274277913943261741158057586010037534108141215451966994723107068406792704634439510804198365797103835366256623091409313355607819908150597365975066923114651341629144027082158612575357660921342530317479819742320331841355106895965585565780491241396487896071925874359267009242483779032807842032767535861135425515564168849027632213960291070064251401663780149876033142814504233653642262869888863171887845748701187265001745033801693472925012556499066428058997648682401541990362887076364904678731659166500127991938601352928361562552661569271563204943876782968868735484532180761729500362118253041751298506956403189938827338702034730373124186150192689983922918108171347131866450282048358631788632952174293538097253569884535801698485336839054760112407689270586190990725099257156486839721190018462597357111672064309358687625252355311823823891046771090141259022302631592079942939845176047584549766817409655653312472593260904898254358929198546438751455834158035854964285886473996103964619826708187039069255941148638314353876285681936717155229018789998639511936109600182585809237310402404128592754166334002683117871628044244162253659916335663125549296325701927915503190930987683828194118511836229188291818174147637879239866195397808927437685262798608247157575076486155848879002918621555973557374182746359163206192557617053080182256980813973125101823651174181165069165937044106613121386633664871122121171006099331710955042478402913250524068654991073832969386370812166291425238873244064041017619214132338889185095951995704699728217740537219990245286340677954452973416748575018409567862331051232114654908240849525285955609625659929493931406763024703720368656903735018097961032544673347831992001776748227034598709662613541234925782116186235800481956729526688895877676394886645003910972806190208373075736993615978914049130697621460166241978165599868656893339668068217479950233036653867556347950269284510301743607976311194121756460519175062657776488513249358937803727302325063450166934758061566010779991704137281114928811130685993576665336296176230890488056333326965347518328094164039413106816711076539986796121094265914018981311949210742681318704367280790380005924700066015508934721667646082315707127935890883819792248132824380523382589789890290687484593999506542529000707940790298391944753956240458169440013275900390315026562899924610575454382043617178397325433715749931928028799633963903666919219653569504359920169127821668636766600410476751675586599092124857133313721987634402534087695660032175409668619906242344111655783398741159691688246734074534753165963225121081492391954906291613440574141015518157319889698975821088913770947487968668517428396156748262756880083147469723346640919969217620098912169766396872330187134771124221634817426920379863299958882244129309565828505811915639440867513531006688859562331088810210331297554033193985679999796431557658496549058200716808097643593562849243682985648770717549521090821452642201377382841140062576508048259746987648743942711793005759415897188729842592745656786697588360862285209368391882918019599394968675965599949318298641273789357482216911922339624071542974719553933085640270382005003307648070924173970712810176821170136153534482761031857859757678718343332988360616055235292557574982255994409285074094804694468226284852639665778090456807985263337213006970228772979759402597478061536032461295592641007977615352637245917071061296473765118985445833896693370080900888763655135888501312398965283150263421274308902288638357608844884282364296628119700959094260726180842920047953433019658389214505552846025544475829764510441862758684119200980413236959109284469825005291383891456821425185878769279482745565818514840907704580846451240265479407758971852177506277430170620396120951115605172542836674340188506997458857311228604002747870640938278673310250927140115683207980885878795578459878353617292440670732097180149555574160025121331349108304485624559380129909472466422412912125357724656297322551347775925349803355639838403788343895681511776466851329721073022456915263973766272330862396738224632000983471074288714089945243745322247653170820361998708137676929655888569177619180322639372049693834135093293563064304874431935395026406954901682408467513083387125125902216815426791750114350472496493106375539272937670451771008023697492939953749038776246470215613942886878446896359763801000658207689929724605280111169216653480775610378731479648637554363868690464606796929490923294487676980314572964245609544770665332629668365429286314318825294229739102025183763653512151947380939606360138673076248041838576150749380099798707721192613444396218080542496804496297414552806586228528249050240294113051189592548423732437021129821943779596726507669089485233770214845541520545317870957399639873024162059151899968539128538630826341195758550697826113034966991760910136581292835977816254230340396859531745290674367475820013214495593474991598911796419611071838536525408118275669150711015965516325232547452863691639420897775713375303160377111947266048165544588528667173749415053946407159424130128214621048535553547425207596023790729297647817263211667479030004247823858014331127128503020709056763128595614406523423082379766348390104151495103497428942987267879601884197579350721521648000087170657282464479196541905832800434984562482818292829651292138426735022278355752974350542242432511896132598170842744674302393471267206269005244755723329752245508973111153076714350051246741150857508811232642056623029487121944067028608827713191432218223800014993149245743930745758111660756431257167343321465251461342274949794001708811223894438383768995849230121472351035575258707625400580032774790686285371304352911416415376336688014657276289646538283672582155431152388101692395352847496396185406321889428332733518295423478234107280490518377766725201239182369712868036259797491150558896700305137410452214780021486269917360106186863255865503448778734811270121916665512527626086068614806380465312659406278402859741775115145630152857646260236829871839245515233701262313026163152371398456842691928457947255620251936693230378230358534472763150316305166912754840073300001488365827664441220007502745892547311998674668369727988913147302199252863496688555670306416888564962916234887287708589683907103107017670006697776962273711590314190955316116829156966300976897325509520017144493567029779495460788722297944966897873021471298332991250987158138888104357607813646842520185645896571008506162841809654264840120678516612012409587792240040067489768487905424218705442414219454003914150421266815693298703056637644410633644370080653332772448978987246802728565185951385646420296384375480075487759965922316981859578092937518219823906293130493126612412371960485616047910834163130716574911590674076444058392810575040981830062027114097628681008635608911068628907232971054465025361765352042550288096951888010500138027114294110478248024628130219597893186832401314768477708720725977142326709827270203151684634779248499487234233855707978744800995112278013953899905823854115519968315480841465429136602125209520404900417872290805120327125076877996967960687243226699800800803313447543199384150031888036492098296666776618443764063115195838440500060025543925116071733916326000115576747201129838431063832387740295563827408406441637383591990055874112605838879486910327473361280876142391971329412341785034046460610493382585670271493675867579592539470754842448476901640741927255026233106536004321196520553075171258388011813355760492644769252719916131934374027049713388311670409526084876108347182191840335033391309250276212212769217684517807569620029409409405848552533136051232263924924139621318864627792802819706646055474006610866154777865305187249652667100718205886941137769309893833376181274961396050621153604556674968933432872809007060887719533361947629770053698271456256969440356902058737112748945629056964979864083987319219880269594358153519518643121230842650988160882006938909398736753742670623831512983459849020583985205791525552282853187525474736496847683684183452607189539065341876298229032014776314912776611350954392628132553371016064613187285801565670939485408753202626646027473118679777892908451816194864929360679260920423929661661392682159652136800419804844319678359224993822230382189463596020958018994911775695449742485576682576202603615924610422661536817127599677010432350504738864877952232421075220086867668920747587046740993247400960565775648829117690632343972403824490037092847873340176059615331514784227713077062023185167418781905405948846998232502271275701936915024530344675073251966156967460170298259479140252185124308264861325731317594093393042257633793447511626995513909476629252515522633500914467855892416972387820089657240308738608252082194320859280561997982407755250570677795887748905029630095236991245683120674962280056183358774028340762150050825482744024591481789740801232381079331291420706078663490287806733275022041962570828316030784002825078599312552593134558109557595234670271803697378186483059363603871972558031286750487271870357084168903737643854811297205290638800341594447541718770918054203275876800375260091589233513179329488651660914584888971701265570355738006326343333071674292888708277982638250903566073958988887238810795378794081411127144427580118693529434492695519265193758608964704592323013192367696337004236551357188000600281114387756521255267016272297248139438001014387499974299360348069075872209540399443139597264162221275107272925137882309760159926258920980632807834851913611414731610442210941808295743267267602713831779691733568077152204699567707474182037121829688399904709224517942767893587613955058686341549735098953509845159782671435863772369539694586989157393607829937580902647306462373964430318726513579561388302828734360623491380861955801274269419042805177805940238180988335723041733758109911986794846355369786764976140878026015848415745031746966653300276414329045501023540696181309349752696122083436509840502886390953734282908893334043174851382565866812184508808957933049571588339378358009630205188518434162055747515134790746381206531357390396881816533954362306012360985714745595340797840182960591339779256239434280940325384797167444603707993737338947022640357458675766143565290526887365330949222513487977484938535526587467946836805270542916121803465281355422576043763216528770180054187155861622630780637562178975758227363386715653170386117361887553244034014358468078894117075734932902056320693990234793677850799663648946315396040184030648965606042764509523048420158287623473961340949589403216707044490151834734811679306362478504543296651142867964213940569124965087646657124833158278087196756166289402957003590955604608222827676884651997582263131310978260649593381070311705455715676677394212160367919696040997841879519092262399318982060410942831776020457577920227561564975397078817344436873184549544113481739922826457341640311754281279899083880406094116116593594001381958734483693474095991099474581565730931124912892973110824540561210049154148418024516430133708127141779128302557544283362613769966338930525521277819792649092684972875560533035058523154804664518523092537785067471105761751843654328503544028764902733176259709665104963331580912952756784449432293081692056408788473956464655371953177128703548303938343834704850560313245427393855107589492625645928307940184233487144400473533771071226591220033734838480121662706073620156889608046512276123584376954105575896894450181599135867364385294214874231324681995863840542228532384021580746729932221410970938720324998294275746602776528543361687903368863661003599612319408879161638093117221401107468515733576192545230163727602398156225492404148594033824329538871223289880277553268339190576040106306544577722251227257759549372549907528186890981159526447445116366723751632828608701126208526190548317707424251044933446008546315625300582922943005596582323860349851954211570896508559157101868080826414005054628937190485127147255584326734319067091989051455451095684579606229119706588391139403090723686988323911608750631196114244626762858632172058863103236855163745129565426692446005967637646199373825122113206519683606198072294579888059929141136540741860635044774126551583471023146624523750639932429811537922876903645865673934676898992009213150824022900064734500747971886002272088122370902427532873328937072159095464888941385308900940974259093135705670262807564349907403131505879045768859722915912877472441858093336477604668046697567944737124381645916166218770068159268135022106876775112171408825090450144450769347040329610233820737208502048754950859012197026239245755725199445432972241955516828355282625251955216120438451103084207108980737872966269048339804921061469059376903310203267606407846894449091012239591589492110024025721119200454371855666667929350584153809173682559700902955543665555376387756654926572464506681937130032064909064577198616697632493164530846154917963017743649110235163778507299323129948157753985211946547467943356689997411968485134566245824618119602097876391475347306246030811955749449928731637929785181671919755429248499434815271423936379164457714036376633405149108837967181816356265672386757319413955084161376760140311266045881317016706876084798663102467322287794596150572461948368159014478297825740865472322324219303530605496497082458949136002854220097603129967404566064094043967022575681515577478162684877320407866771092970247663616562934699913078443849529046340983957637722742048414234001664598216447295110387024961308973983558111505833463761202338499783408709333733893315779540081173777921941435725255441286743804413066465653516045731525833350069469120582299822029308411116333378513284543448838091134390479847274301300723694552980609927541653514441832147376100107784732868584049249173809102352630433702762272055408621114524716232293793368710608321131653061445210651454503258496859300148256675289018737099145339652355069187582849547226307022695915636408058580719050153448924959637193538759096354500175563807268921582749419714437100466004002584211947165474481520943600851555334437203229267924441107783850272979215263350489135258631448089218875366496213222347172417605067154274340420163199065799953326490990880102827197289286897558995706010304264126502725078481908994341539578947788984839241480890107443802489572407215934376753933213978818369984692730937249754656363332279118279734276547549960493234981513357304139634276737190165809209160007146252221880705690420880487369721149669994067270982506631961818924010715761998523321582841549639256502594076710869817124097414132230968687711300311051649370447478527166878852113612264328400291426476002539209118180055956373414632296684101548326400251021940826704119749501275681112442726574829107887720433771378337630254692874800747448121358349780013512683415737673562867867159962162846926091570386185377723567442143849588947288709361580014964950879983853493662356445779999432484352133899996116766247642522129185445998951396013490299491944823912489184951528229466209234726095272423775210408126103371780002862918583463941414853297005395572032652123857298442554603866269508291268826601325959078762343876030526969819007321317598888076393749774729514806636374469026906007150557602206217654301104070985430940819221961840043149784205274348319816522298494277831422418360608013954079624943476696136917795426250488202396678475294482759609553576259981856969159693319088080736946806327999890274591791790786668525980855659696590179332640712630102781125888757259775006573484478326749179255092515104874935641412051877895496725560157958364952189987053053712826959394455577021799559758881409260743509705642325408528069554054827756355579780968859645954601420887689716327243714946583016405891838834643887367626430895121786630979977652025226890887166302013206005501600906238346738590631554514162126711037876116498828891663503187359104514462469837530835794714123320464105439799262558957570777993266060582875970684722142996756017846606116001049832332669428955427720243210283537434536159338038889826264859477027305595327375808136383218829911322917407061670372171965846449322970271160797232797959813046472800536319442220105373296138486301922440071643116688232430016404400520569218701211354447527551750961920268913872177897654587620119611542267554715886980857543639488091702329549693345285336580586621031713805709486910399258244585659156630602844495476538456495715713622648536189140224660904264831811321742100389546571434229476118053643379889011011191755740364265751542819768084011139183683595264444814200399562344829416599399956021534601015345884927980470627489931218236091740088497424360387562574153790874120373175596250664176695444073165856346733598560117071008741915773158920464088320450803939178967470731524906142292206468070658076735918107741032434079432060333831675259195985051431386358971148332285063870134562917136873151193505117185721252228963801385414175687412575489357472273945981368966656147706155536781078702959047157899849890618010095479801680868881251692650774096509818064852365268518187700889475843964019663497066708368739676930815397605180259867906111938272446148097351851836191205797737715574925714661618268891126942040910966493938167005164347799693812370550924731895482231540896813696957489692214261645856546686284307579405241487123857686765499949837624711982334118818027747468171444982367859702036284029882222398330729366059650135326689547690075122606939604174691206570486930292235824308953133170445878092929121664256923115086357659562419490489411993022611195157555384898264965939215716497036778911835972949754392148636490592808396995586081137922371551932581042065929141424349617430193900877797830309618244984950189974147601025667375878360857637308959169539397646754787734665538303648648111618946207848580364454905528829944689400284555812971237231112517471725002015388876750967056632537239069139699407948156555122724020800927602900985186729664894808367901154547731214547937000010993860039643876378068255870152633289139577035964566708857789754123025465749655802452091861194570341171954882426007737357180066215499941527277879159993957261978960214334574865157581318469437268057324663185573065101107384552523479035724944218362697144429011143124331427973776146392067092776147008589741143950182269069315588257875218385142693788857460479877313475046183513312437744854495158095310622110160347181361462575211062333038743105954581847977619692785672101256461666869733721304338901391031973337061728118436211854605071207197499975981315364338332671518721413021948548491418005540238547834160087261137450773516060246217451184963042195331274685240449084202850202247900936873273576974661982773555790025506643686205189560426392274894620716718646296323886061926464855020378833396453287159232515317486589430927922881799548958827573398750504882874927735038172396387002768617304183743754770913320320974122229930001653131876949058185506237107488932991154011761913826655033848362190329537538624098582150173857131735337107856609485813424737679067456336868221599875519309654829852914875987869436179691131409393674664534181450650392403681557206794458915252913854338587116737188749483730451971016435149283762895696141432813086434035801536318413211546144608211902876219878182221734970490582013423879592082568365767666129678670648239674741256699802014846209948984976196504266540758808987539193765355787832867864476820149703140469390213413498772549519531547333685542835824650324448135460022496354442425770928206460011247735060346567193131106722141938817241640139094194390382530069529172898677463986625652520061805756436345093747903933542725550020804055020258874103956099199657983473631977075060977287272751152710702650399163344130393057733753396838763480149072732267927101042939084412420672484448511972607837344769163873652407278479725996850997999714409544248079802559659636329059474202114065891164043211020382389092635529314479577578951412075819927415611974433374014184054144850231212734662304926341085851409449750386121132641264637551574632660634523714963871164946360099737441420935785331948244651221904018053136956887775094232850373283616699335229308300554732169007148813332842813300725745857637173804760116335015568750281159184199995556791816361584634385560186231631031626698564499253977359259689159904767401954972436864572303087890902405470399002952119009528386476683683487829247266105234668162915194404255721669891585018802745833084058122700606320097054978146489496310807656507968866377428766016047199442907231546763768599626721848273212751487364826789568592625931130778964690627537150554773755786642450312779394364253029984018306676327171341382326917588303521011270042837420400332384365798710292623819870965712050236735801613048232906847866855160535791425774012041110929203376109794591052623148959294524507012267838222604212836755862449446705334246635939205126296992872503197953545314173339148953163012944482562879423431354303647971682834207939372993976803220856889605527193723704734091661306551671026225678227581845334101820442989185762945083402166659560535136076175389159164388281745210062092688444842854963020368253250929860705776511753700771600144558047466109091544803576321818677129824485009818604995893446357959799122794604347480211451847925507695049292393164075808221384952883270482116112807022965955087678879229717110994869181185920762116129659075115576915544194170534114223510802672079309609209812393921382918025936350740705946661276594027324426677228329163903220157746563477349055902902575964824019923415953999838132534639740708211139782029948271056636225124068055850939452580318980118442284600464254942856323949061222965650132163197829495316667779563292254862385726445944521387506502281731179838371022845315230871197463340891654010648947376521494757376781068812965897282277942830417999756315295456657086524668029712492336981396161095127509351101795631015666353326894714399124768171289983174217371890445282812230266635474980790182001667539394058064860731235770489134650398860926801580203276694829739611706541637638127748649453532011999770521981978956661809270381850552428666117144945148575275577620233221408667993528077923956117461945829312001397530577423677703308474516683963250605123619384224007551630934379548436995785348388047041203015599608769717503707767967936004111871663747648224882428761702012792714174347520630619530529775998463826196312971143396816992183163824347162725352418159415994681366412144011957504841919448909907234748495183277465224446263754594758848150390988266486109813879469192880260033883331438959654445996857656047349762593442091716664901386833182138976307429709638548261659748895583760387082498197247463699915404863798113826878092342897233789947362869612423738197131104530710592305995866837929817528434060179682816802895882963602587327346024256053417505372019621089875156242281027679729889962692638838484859035446691404440402811566977296590871379424042164979844463445450318674510209103633179345361730942227625646698239062328275263156318226266802597199358727138081942290155843637072489680232702978298056446580338678267106066082864981066045635947358193370688505875803507705652724126655463957256243030954845530937500954311274734144252056589001443498411110924426564936586520721798118685636925481346341900187256213542155125960611312886023700710200646994718969371151567237942891764042458353010460984828489540342857711619800448469086860369392215981909625036404751870475389664787717867704108096586106970033022293478537758955817382526707309407216028167360219758335618703940797189771120118113661352518820171579874687781323257970397887909218824646598513926356852852780300506707673566046106418399849846725242861259931988136525253453367390802493724884838407802078450494674359678437324689137598031279041516673604828801914316742413852631757893851902849354840579738338459100048294399292357628687204917205260884322518486127771768513340367366894543452872546907697594301300140369491695613631693587808580569028924442839360420684307706623121636142616177990704447418773184100651508925653324385671549349620470844526207905944114851698731064068194218968326277323955479294170477143154205069331624680480835089843674239436618663674649349370378903353887958161019823089505813791601087279813049170601080632220613280770616818339675768135987042208633766978060342036011205335273663419847317895470292958435456371828156187954308545663364735250228064229734035732966644983440136599305984861693257378012339199284886110008090887154776659824486358691360752862230269439467684797555012868719001728378876698232101383578680638835230195913201740643119357364168004336097897249704902464044211281373645261445437852674088757406626011068921107175412726249882697797807461273873059326015459125261844439080708918759117049932874836738505229737490409127160821518855498872657600488505080671797316465290511407209173044381120692999332352364728179582582152300404962575244716272054204163350468264987693055919378010145858161118898627188682619375714979704197911141926502252611332199823321943624951915149375621432087250233938386359253817669400280673322217049219189431288073577773826114618638304423777770611518434161029243164134016237323949609855368626734418266421018130926861905012409824461523113130375517457889437168821574738123343469166913151567154310691335048154644624055850575480047184897226695970461406400320937609011383280092276754868609629698749797581147403894669515475237585337482792717513343032870240268523974477619791817829367804842259777719440631733246148913844179752164014646162007544924901219269054770253214390063808946685495878942376019922856314701233199940347425709186172340510816699473432777216537786775914902021276365889072315157129104929662322831753666102693831622224071770253301872903649301382231071536962009237965926988004074538390867111494130532071227447954502599840232319680794258893000930342696760774525605469201362284807846224690136405751426023089440685101485684578034229577057904081308921856651028029942018540718714084939107141867421756797006316407328850622787474340216950097859031188900159812994961269897617075982437587638280640056889985476657033774268899513942982884412072298630634505505799058626867515318716030802755869445206477396061374793315971735344817520165317739042760652791281995778178699325317224990483818435471852413528656630050473416902161652073672265876463865182632263399083077800443356892394214360337480002675373278519455231265581531431188929071703703301666228559778138199255008625473466798489289552758808671224277636782222049271713900796087657626866384465448204156314228654261990398006694258282251887966432271998651774051301074677555431448330639971129831295001688397399880784771366584594960223418803045230024355961675269086973801865425014167785075921674088447914035468695251080779509491763214306202326943650232129613583467904408095873111539197054733292995107664100924863534423574493449793036620522769027887626444687738172782928639269366073436496398801971099063521365046036004569304962106818790458009871492924358847488701902630325029453005616953785630133495839057474536207670600032849975278729862733444854149802012424216716061003256328437264378482311625467117429618280162385976967493392023959870464267113918664631312023025096579694429069891126913777244675806917125337023246986352929832076011234575087371391966939529204412823065519883015354698055304858640155626362902314648886026574767312707287020071452442703138739731607119143363927516995315403427326074273366439579190461076046172246196532849045545714416975693449713468948418618815761899463035841586983000721197425475991522924144909322772473578103724210673785688796452141817587257394263706829924606329704096065832243986535047381762574785325585736612809385083781076967756806376322436123845796625749758822441586944437613518888598817387084109322593711811102302321916236420369586161770090135020713868445884910186027806009172022802166471131165404274603388110464475810241333410292900742275201143924796253724171327318378668550090843437052816884923494681156253508145861421456122809493804078226117563714555032458298578267749762088949850618345867272177200507779119455502969290183882252503659819615077549133723668849424657990288645004630772949410946673514383697958659551786014489053121961460220665173435474593407975322520709670463967175595896477607991082394179437173758179695760688233453917906645335392235393180034292065745455715190427957679194766407807449282867403696110457664885753965988053486604184579812209882254117504110328377142110540324984974094749413067831693516032349782486337181433338727327765671631722869414917454912430990588826946108931457132648950188395158897440022617772441566588637742361613373100938729597973040808895024023138068184748698925863601985294761466390867047174451248549644475732732510552194081558313259189020097401235887710654028132413699675956015060914398785741868811244315396096594466031229836040537224052339636021204201974560286612696342405546695186126481589617385197795658499429918327804101248630427911092576686403484145596954008246284573145854003223026491787400876427463832162788997956839300759470361494186748255360393446417333526309628618670897374623788605733417749104512395951823832472180407751705712099425047730897094087409464275363200660516905492948520242901007329159421802260171583832753566166830827672551438942174281017326058721071644935091438109220387321187677177940096116314924513734181240646896345313067615855275149574266093704761749680856735051493976852778692682063192350047584256647915865663198228943479081165492042585869951780944158652012894665911392687104550905492798277026802556871737151056687811265208683972653656801479280438838902002643779871585878116993477377571421826829085054414749038796076851472560632122608181665740323560401912309285496047557148526157725159177584396449924039430688621166916491825260838437605631972395090387944826745583878654983914406685465247733818454344809391733666482302090236987438301711795010480942257650376964640041263927667894100302145563297289456074915936961089130824020011712719862013419820371394066321006167804559620852355345662600994553428875631609330503962425438930948637424202697406218622749205214280376573300708412061290152658675475025943742577628412989561043811632330067677682633554413844066713018817143063273494930451927253913294598236309806837576562098722726064028954954580815533910561354018843102438181691454846070847748936189132642298496587091836280114168728211885819674429335201102942448624101867071268121626440569726713600283146615725486476277777327436112417434967608284735203652994175164338192523024873757767663284077164273466639425537670539319631729041513380920499448531973823793251525525837415705489227540384505673089369842265474042172981499820562067879116012200170131039443301884376660331457380771628595803465741488525164543421088072577534454299669614076693886156474042855926558199360170383575461703721235243442016599962012872026863802321041246082128955967304502962898256338578543157938132702225648853220944351943616129177701304496587331368623046133500212194872267688537070979396410319492775010940111389291148528806283079862239362171605576672578037362026688457529525510972038860083794751130901513007412478741443409012650014270886270475441575225151824407564038998124087587824816893232801057575873141003606035719648238755507746955378538997129191871343370909024321461666328897684234457791158525927032501230079839001094698909693586650300935641225146454923500041079670763284971333334900625170304037452749944341180891793287874596071901598401460870064744051437211962368818721655242014512388967890186678424174565076340762296863863045575019847273696229562872760955656550170953688932767019559373768842779402193225572966959278913475372753687152020432364898532437576406203735752535646486232995797754075995964479447626934841915303558551296447171046086749267122692877857769498539554350753585099309499077495520870991614198646707673134290726052895408362561768549526154678919285227753345860812163822785935244911323596167840860975184825954942685508831217293008645642370431293482345705113843487829308901389750945135108239113147173459239059675424881538018903515459276246782494256718053609470999544146845899980424020003390376300334504783046301631735338623581560641786103563428894641024707630208540358687773568475275984654700778469860036120944665890642047988864899600998165220604906404394822148016910059819709165804006428072211774134850609838609099863786911542459300543760145272381005550315399014157666594960665220993407976348425045501132491071903180464929119391931316036603572250030994274511963778231214327831106627725230464797217934171417559964597913181341328813009631222975828772567333244903251714461525270958238422217125659722810291155603252570604649163938999879823683595344144563624145816053424524505547234051999383566993936318145837526066628440413284994397358515548137066211664549469596824986335815144546752330517139120759560879012221157237298915873894566320197110439370306177949871566231649628639885168962039023713240574916386183486635811018469647690310508702425147572137414764057862277104151331002088116824622062247670340093307173975718698189087581879887322311276424263645368251893132879700176798672759744302261158494591776093778096124117194883369036661413526076039851337559581061713734706556466416386023191589072739479301478929744316751205265400643519940177474345387551001440333529314611522127799707769300333100432008786288471207041704072590925479895971796190390963353008972133892670170870237620761314608759976414899864962157163726386672570683368680478264833895562858538152886482935836257346324096562062778360625679264742196696310967363105288880236203910622769241818097916829214155529365645281255622169768932687878714598440670428397230528013005946033842929475620245088071057613339529892887719750857549451226860640258149631365183598233715046468641755530588849199185882115079051448775359326274001511664399842123315052750359760891694855665354044510979785853090690504254537107235968799208987326910641233126679444697533120720566119124001903095652780255778811821099211214084193394253158658566418734562102093443223258424171337157965371336340839252905668383282784592199845174261847908734369701813647255850906901476942805368540194179596064901990283655037957281053956688038611052065175699492243420518058467530279180052301061148160048516134275918475674941631714571003177650911030355520998450578682440057214725654634500231172799125117686811377059063825772644897297558518128409183736371060616972547277185164113232027934394077990436272876954073524416540002372966406802591368800879681489157785209197702896507674418976825290776749995639156197736041439823785562535425613224617474071691034676268241704231737368609441573886548292052188770620112393325543359402520249251075998106239453008228856399293777825037549645013055365417676503402117313797612756129807881917505355032888284247711173598482631818252700249924902853083852405736483160559917181931085538821241626159364502710372843130002717151719589612584664095779656875292470862531041885648994008460126071803545245123562614470137437420983053247741458964446133943864328746151678457064577778395600143848502668189908521221673895341908861539941453296523746368020536049267827016043228752679190203207639960655709976470034292749382002368620948481903013885946417784912446988557817534329023837312608198521181608218071852578892473556593585717937543750030107857089965749164217472518497707887883938348938490281315095287343088481010574682831177298160953290424978892644308659247909608892543397434421347160048088495267532798419855346510404738454008721455950070077325362022143983326685117106584843122239682111815179328508264794494937592855622213778810894466573837286094528929987327130284792856705911442832812000775821768332415033802051440270632642073039470872891436251217301079881419755420858770602369239511818182451783476593147760210951832520488308384323320045782562872540478146312897359892949107626092881122004850379684288679746344433841223673624756437429225715944062191412290448593453805971371329989054622331680723004106253491776674691375297101462591570983548127198149941223358166899323640851788632339314772548576774483269618754469300955478191909465439451286171851558485434158247317262434970926660725636804815152009721793018404354195478076086810927626264060966488145066499168869144269976390179387076943474055122699841525772239723412140075399073567714890264015888230800710951844219996608816304699878430961828228581094199242907665050007085213935962964893473477807373808906383044256023369768589892761232559641811417652874635958911166221299198128443411851835870527550855134366448755451282436788262810049983742097385565503127032859817279875594668533755403815138099152192521328582924277734808843300804677156862004348917543243602787156187800815740556046999111907671081526895844089868830347552701895440339161942693676638102585538880931307521200491593768499047050540156627968240201458869666081554437695295407377810882617767800959207389843811326923153488196114316227727739133084041224070620318942558393267717005253231620770279572448174260818088398821282510730779337501833338622410659282341319238253745354262083373119876637911585932857617042860295025033220261541239145077724768582763407242752497484221932805013077675224983462150635860830116140150888265422972799465622567244958775582225687998892399188775159773953066741030412448547741758576648765307708720335842235804595273269329796662855781053628066732246308352296040055784475356461238578940632945657756302033982815623827860023108433828704742010426567580095478754562656796494162966303013178710214378400597259380907950219867721173983142837391351172169692095664318745031810731603725166560692410784685634376939207755761631656240424150593000770957059319764739130231559728599633812738504545295711832404613580669356236427854967395787573269929209502509960605769728279082239796210708146587845755859850503333401646035772191691741302330889707460251627098759197034174859159759880163360377944657093340956836642266157941801202522007321620498090388465534623489656707331763656555758164380261589675134368515725921005662140123683226072025383629857971495652352362490136316487007776528548955657332104798861814170655657823032013496383654363285871764188016699538199391805586451252517801947526442106815800271315900814798001432811787017446332814044782343627547375382243560131650094409044218322496491953627098298154606488338101028919559344112271645548370422379567005871350161113259582218828817082947368690427177787111549553608689514220130903054107379675568088861544191380111938209554856967209489782796459321470309135041434203518397033961322865031793303875013210560244978809635750205097709517958935645670243051591257488969223201082446985003304307013006059711482997814378129121090274678981753715690980374454217545353409401081206697703402013720798250884459161370517290051490053483115883889440545949793572073240313598435244374278250778891195221016014376945328136312718873157015690457418249585372828747330547176599996096631631964974929028710108942829315663997753706319637960789608766356637477253976246574291091253444847860391309561207927184650404437873639810426242973089501294889613547293935480346225264120744622267126647957918436088471590301786031829154954406965810147272478495426649418871464156702989885921634583923479415473110893989301039824791416401059389524184005459109212521045463541267984198891564684522903571569782954293736985946419837480518375615271359942268044796771809007421886897990379782643245661570410773279414285191997176076536512872703916362276235724312856579763514419958880326470927388468591556794204272148680324830920408223834691445175929784456141059521669571629866930054325741540561459232500923013596060702743578636339034206626306184318981614540369323937180677362886212479905323822673935489495325230732071899490242638616030391371137324520647819647629962003539746441916052583140591743357545564498680022477902080774440290154088508443431109824583318853407488200335005711546724385008146166650502380982477964758751498806963123684090922840852802884970450964180326576320000246223187259649917552026207726628993161333412493084449720657893624377624512399992141912100551610407077311304654350367932722751724881883163861155521940432589096603238642580745255675029683793348918426951207857625786226068019124280978705999622446932457178086626431089662405750867886717034949761753128307186449611484970284504082485143450293474647667318043549194700251069388474846787155223820071362074813539098439916359988714847532235830170736234479694070181098106982053347911369753852861827918328460671672570812703120354064329964743452738215433854098751132833830823506665514622274407201302176359720132423724617194474065998234491150467306691792590070033405389168081174796048621149149115716974728130523442960365798318121197177340127851529087586545833882804624998282111250867187453462824451940095338065947616445368418299301478121559264658455941909764723995766985816005687013774888925963056842196730687185247507568370813406983157079013191642529619903050171379006136058566917766106554727086115051230852370032810546550945559994998751471991631003142173521563169819894811695006362962389881522045139400740736984207426324595077270598089309931766477711276423113326172385304157889683782156851977495855302357842402701365685698488160470460175011444266184409563926644514121708881923531718593739780795923875713503605046555383741556408778379386544472917071250477109888044354846557319221480051773447282679040865032618429174489427392470134731446834934961686286231045936122679082558719947378246105426571629078618656750045932214321913026065336706225475456664356284095577560801540390137095144672514727393027806186008552844412619429304507015344541763589016318983931029051428724418260078729245488940394441564190020722981548338138794005899324939672043547023999423042769454246585086498371386081009969550382749288722730208682979389204516979272018206329256975698046276795756706960734401729694902260787214417664186614530981519440211153173336610926373215614224016403344144744660332840222627002471023874282841915948876539051113178004258295777513146368716084267771880099070563097593472886963237444136868741395174775919209186524950461945058464028440853899025546770987399924252141802551822314257764438337318277014195878899188910020456108865824044366128072444414402724891561713754771503076701021134615260644859275020971999462652509694768345373796255599547980356522661139873313514375009902240378156262533272071341061063765684506974479891761462574617876520620377021735839674727081145360821904525126813593904627903768844436769827966880231670676592087148896316261164357103142889886129405590131367704641032677915467936137595546932627336839695184918169570980143130856434949582277784090913352786643208976046667728793068499727735412837488591225576990960996458767047509657533426573449580592637095716560610945324301540609656973569050725901097461373751774326854535868321155957281283874481417818094503209891124307151138622576253428614413323853442988472942206502026784866324030965821108504912739426930234089566243188722513240325460162690053497382551318785025658133809838036819232693822624591682225906877182034443690652374334905873816275218590986571089234315361976468647873016830981064765289797212340451428893195982236513779233173137075587152662579329331010102377453695137718822022451737079790809704500876837230193656462186166528185733127716973894226959691772960678735217578820700677407164119904036145153587827005438704490593794834670755899349677853674683220869267876744080440283853196830198853968050254842380433267278686511272425756852104740797411754750664711514329824136942189359752086044266303492152846124180396084292732941649753918079330601820374617084674130558891729231398058465122465215435178832714389698498280839181187663014096358004239559861609778288801395712699186415398084822067278673366787137281598002191185451655409983593009623193417562674157828473624655420111535694368377866337734078223116303618020464737125697054604145603291279085178255951248608736951159140453697809139979155799834279306395016738749642395246795152729101007113453437249372487418754725785358987759689496914453355291184476114547955843785282822307472527747395111558513324749940903923960036348352994413895348730430349599213846276969686498767520053538213291768792959260065661402946383816756359455391825430050640618876575572057428146282473283344896881647589479290033645036545753145528315586168241900805266584178553651849931426920034093027745266923247147880914637129511593863116570920065691694064918199036088812663972398746214612556072051876996642793936018743008944129167240798839424068811269899175821863428893395390604542554735480055283114243805326762220308058885581895176256968903362668578356099353626579722460110552845306608171029563160348300640718662941291795213399703256738038111852756438292473703197952595643741376153524870464019816301923169367937731547623049964164579257766072924914029683538961830633121965332420634045395686965637710288306342058244312773492175286395200322369638476270221320855612629686173514387826941395084971301913220368365965242535355653372374741017637159167664888594785968854440764744151758208867607661297324048948247826664050052994970583408782594012292328075748571880160675020282635218772086614088099442798379036038932209209935673168962511755556911574518215295817964440322713142709772300562639709176329269310624262843345869648547946520909158112737192761622382036389033125315057023820298047285006570063050644370081366679379465005656786956578844962711245846591957677474349464720371149320341023846710917950324030666781445036154477716202950108862687106706559592358757115320818303699853236119089671882810731767006799561291679434396266060883204646259286949417878475833748220080474863180070526206838918150601784792889494307292730369038056319827829065689762324770775630712879713524810782702722695256292752014551169027376791373879647356029240797504315314323772081238364454282129435164057125546439792654982959217298921971857856380655305102536352029102548485677940490808516162236596982780279685487231667067302619493414626578615367296354218910566660548973975115476856853381910776873288052421565563378934479590289146229792109885727935785073803790295195231934262765405125943517207372918074911533756648520144055420598503668732646429908600861118915203148459779650555878359236538674882899625690396105562289324118813075038838308641417530142206277621116214050451777646715101939689699391658712945296536956585937746775386267216035116758471075130272445079632045067636577552209656782198872839624265605382844259552265015425375116398568136031806809665436144776365491702942778809620084281757053681275202730691894914724659820597316538169768849603350207604244243088130619872897423960377998860357644872703387917317678974374261488829618205407200866303096812671863096059906208636463377617350465342486248615218203007799698149095320113765224674021747364093163488436840963784304750065865699342541661372206114099093094515277073583630076438163409387843897104854922765761805058021056557238674928208516266416315117549914702838189801360931319231545591951818811882049907379482675240928133245038945640281893699206776531194069936004457506425131455453009172093580944752302849791156496592494346909805221160733098878632379959236520098702996976169405360886122237462790596410114978532420651537687280656198589203594366096408779903122632079892169965913096690184871523895486935885565710403675630760976665799589126290966079217660418493966710570093430714458012845200473102580199154036981760453661342590058920051869156940210128184685411836204388446715875720943928623306476322074777793362967864260732225453676341566183282322287734843709677054689557245891882865133945773620950370658311481703638339151087765305425266234298873264060958794950815385676197199106900841307053449277696750538136206842147604204743906936616313766520238411925847869951222053930041140231879068487079242000924906568015552239814850182805140235772121836268386277322348154650557790831506043744700038748418090017583653864949712093391058565393570066079898452305832590962746688229010762500825347696011239912446010236263274198328803948924657339907214977275899400017223586633275587234942898546978751591934263391320343895718992434801703296826201753469918158741262459002832033765758736084394266821792424043275420505483542869256063161310998016844007022814734454587056260207269142885437514426580929410678462642162110582570788445094286271055079228345805023839468088068242096754113990781635401450244963283390202733551928369439980467965404836748850246720698674167817100330773803982595737008202508769838013771714249528367793368719485615918749859144695889426812033600358513763897179894193520226493526926540889586819496798217554817219895097881210241106249406155295951757114240882707580150094028423075609789584005619833891985945466418833082054067640774809496696574061723948901185106983876040151013089375539271477683900019266914061902131990941927893533434821056944482860198579012140244512824835879804105552573951482370875294721861115027732877605383007927493350998233074582917753162283002279709058327459382548113856690501239381064075436207091467678961870381249728535907741717414005988101004504286551182418388023158403760972597617596526149062482526280512015506620667682326351024870066336065443550144097537307706480311673854443071711600961608595936064154698947517726288795486584735712404493640292995264113208564077602518847168092895615842167582799041435990133744595822591918501539033622125949764424873724418876134588520126987276913666076503555474906272007034338923239311678175654894192959760380952616389949748410194990115927363806797546505341985059748913275661267010291789208862662645300743995757994161336063713321664321524626644665211589112332795579671181453809973363154056904779115634819188372578115871256563874871817249154710824531542388228771475149761874557200608847384440988662588924048976588163333779229262926391355921192682490761556686056142379330707738729294594842050906875111567342021342576292214688800311640995561895602236228668220150131786934731193500791548073304725555351740082929281351920713210643166363504978605615492694022850046093468750754383561103227141984850312303993564823275422172560774872692871364034497151210141710347746512422858585045408949990278359715569892996072723691729027437113166636374616824332592465915912604124789397628728806620465665764676601529932875051772773728108336314337468538596033126980983205473020353154089750294436250099650862243180094540947004199840192489444629451462801585161889964892119154785426880694971380978824498160764353637163083501557107822573847127469633614713417406376545628949062787545532496478570801216777077398126796682430007201075862500745366927537657223071927431005794256236938577287187681705493832867362990582271064661035155236523317748796628191182087137554057707195286155622496011635319564459319229815862573740690941799430832340897408837102769376458516292114440423173220824617192838208996454902082616378700530968289826484454335010672355963456289552768355055720614882927277134476032996781407250872218360361337979000525527332390064438744916518875900876708308736368381466064730912569414250819083972314113885391418084981823877470857046963769410080177866358525269070159664103489982787285209654568445211366064043178666215531870811704236500293532412576198498988743294520754572267201519944188836394996777901556754222893479296252804122199277328131938880770868665855278998559187086508203345152501929326203676090376609814426116710937766536078444864991926438136494033334320874143701728819461081107757174805621673008025843526895085710218983499186787573440134769377680043963709535015435130805579405965709684345334522177448668945440480845495632584222296843614304026085374746398692052906071148751316676958313592923841249330635499082437339846383535254200837931562569974506629829459809086608950857482659798838194205765567512579610272501813296677874834381416169344660219623749501957911602466920336928872324890710667783721465211980640430052594788610987451873647601226461583181337557678265026317074017971907899577049561464518334794358897356060559307410076844919125330364067893004573720474089485439042710594507024598931783987538459426479382719640237530948871972093993939676722444948728328380954527363963003528102788780936750800441512635058267225953095283664372383257559472121106307604771203462344760425758532156816937691840833319192211397431367717530128752326460357236470394770095937542109244482695439694581348611201392692416991266032115288121869793072607402833094237281906559258138923377216675462704981920407438211894034147084242728288114318389370886906116344604871165369113303732677972263927612272296212507114402296984385730910879507811699214564407155010511562396232778461728869995679875247089820156244673904473739937905920483336131294346885905008417391832893388027697746251185492674553261465378381047658491892649334933377736938055720636608952939711854017928159171103961514213562610442526466474420429110851128659600369904377035669289722491882334743200328277167696405003624536881703836773518139419702807385297233544008185236192956334528905861224331788201121681909978180853618356562658181346017947254163754917992676428820977633232011384387897523065737420047660955031524010503749121305746230885809843877799872333374051557400179776264570263053363715837656672281453940632840106606545935593150746161945460364576740744534200123973214419001991227354836073878128474603821731875557770819400249998702799146570749754338548932225071991189264383627278031070802321382038517029850699675014227023321193972582297089546722437558134026960172794864954418634958813308909443663326507259166983589908324615127117890465421028323577179340324408909910734103459153734741180445725607676144816542286073627045159108611054559084716365764327778977113446153240526394723199972840072865593133146891014808819086811693994788314471681969872786442634446948936230059724648643232855374023711542147108807365938838365677150674907128021561929528301391846146568947148846202744725327687173931817749251975473830124540661820332611141336801962843777618504933420659674987372747603151729044240078588877815619109399747037326748985334648076697408162417511621302737697336194690597312864394610334008159629928974493301020639224494375955281788216725094529482331184218506122687699028642675302831153553757485859806769534073509660582690690894316262440671767396696290382466321269314155842510169474980328498019929825316130878186320440762300535192875150026377501738556458895317008686471952293481741185376409723818153829474152222849764812279834257961927821733231880213580279458771734846589244903863331664818351683430279325127332027836270785758076935900685863762645236787939767276168220042182024814911606229507661231716128045519010140935178473496432225079379208295337222098125511210454416288000562519146291288631450268974946408299386738414104475977258138771354368538575936893520165245797635684217357143198551833889094394620445033444057288139554645086415336041151728365638523086460077942237721109627125313346477038915973262441411952535077346497235164285389866516976271333123987754221448690883539692020735521257253899986341062358767605262541540962346849138045761626039844833170938759183239593746532546476226914868547251207951665912141219040516708897856960215104637300581670757978718222282300311939029462508934602598014444968600629977567399573978789731986297727309151804975911519915160363356166557163798356027817771320033528184784956952721026829417192084542754601392240166370562259638034086705561371446241618983152783411017680259935772993121800851829043283995459391788197071936560987316983163381265254616934732615847503750885107186899953007786082119183244098081121478671818639923011582182860740263053328737586212512732412914744393040226066519237582386392155913446105824023474847368336219486387794678302271557013097461349587909938063926131626493924515459646440703687185893256843696398692782813788483851490111695273876662808797111449011622810650520149617294043633834462823646889557803636936229137035164713923649081122556743482787227587078695240001805074896152656901074920557544216195758060649108246339639610294199727322339138832079597660006575150850764322345627096609485927440434015311442654554342059310523109456476897330632835502133702184898609976851029637053724925205403814357313329652383482495689265121928156474180602523008545651313109153862480580585109436006265720162890582116872019737884450134789931120634707643373690739145888627537078772360508314828584209550943642119052222297948833542629745749187858843555398144039619938926448660681605050472913135214707351759301041978180956072258140544003976985893044662710312199497738759877205101516004140912971669999974093226842204812287260865985230253945906320021061616129717756910640865017103222110626996507247094860115749813967875476409105481597604731550602090910319850961998261448595179644774650952896985385712314023210941929737958494614949705841218718609885227852989222664669430598806884929629875159159837530955163146650542446427666450050090258853502672905174801505423177344459188184707586356096883030254052971543950846443888597276514269176374849085213149125816816160152838917215821371875198213279399560308587764123484400950524106648763365867145967273021676506835708942563002127105800264463524167771850066061606986233767708274850845669046374156613302994848256507947064020363355060686157358015364435864126156776262290340940699527316580615005861479028597017202465092667571761363724924265075577879269629157118454206032550673118004177698635972800362475891190215594521489539924753174183516749038874497376596214358689675787066907743490215771926474788589446558339164711563738121230465491537626874750583434092450772766438211946835084138544320989881097523950179725258184444096100564941678615224465736440713579503573962535188921343416001989595548434843880077362564467034466786140398982126505441959577768073034711101314582027736834235134961645754176139297089813093905560350613921507985951935041486696477552335270059290956035978903509267357692526027118613306360469332079139537726488471543271433531928064037046802680031161723754433936801222772139331225983828070723370456578085931449722986945064827279954618487127917410254979123990252552363456642033652735148844872602081562476084725558661699187530296301107731890896417335941506855505634207392590925234886546128913291084004745717393901017185403094452003700434923700631257505999283013622845430592280089930487763926358063379858144679988234966013227847692414438340862615808192655790212183746221674788760414425616183544012181502927838719176761434780128531103810623710882415285460689268347243054560921037241155016993715204038592395196726972395433050052770896501545951725144242481105403125064376097226844809276389913888763624112987413646009375310062202349600429795799939734656057222102625179086197741305577275307421446944906708312663209711591086038183334120285243931368418817626973287607980304033236827994917988375240529565840497264902348285472104209044601227962648712814824208436802969907076949745944923936187950742884570916660164245901877574532581504513570601625969648982505936841066760627899169825486708288970442618272472551070705653946167069704162366063236626949238015999848477885021624159399387361154640726257151416749079136348694067464428873118557149558419457566272895239453484584382677070332064393568959135091055956268619418021290678661856703708071544764514330183767102036409206127935422322479568171937094041444027340679127772150080372838074962913863043809566785897879042610157081156953523449794626090847670222063250720977532763135193717193723643481376934628062902933737397284499856797594906268355278918965615545869734187698955441552172585555559060053527149154493369164286448567100743556014997227890730568846614277313708587725378114551861154834928094644280219278236944275529844961229296052741541916279311254988828921123923372497419095295964679983652376815140687531364743280342895358983121536819704702177787135852510459393564666768196716633262068420709994899184171299457852066496538482457194715530752449155567165425401550155442682900646975988389832800150951888259805824982756111047367439893457107926272096056048286768190498175578415823951710469807202401220841570668877472099417001883828790456487362756192372724253052098919609477837080686868105142575823314982644799140887283769339951786061042310514027959670891891278493520754301464370255452423419699958401184065923881207914834327035659671907826446986526280031078393509003556494580729881769970338289117667987552818604061473149045807614719766058351429858312853807796875560777710737554942692240222650808607407172264371648179085980920939833023064542527778552382013352260054584789674177049782050459158410118226298592834153708399316599092198905761077307795886465188305400565629296097134729104067641195898932132733260292047142692762391448671198188751075133721527890205254168746880025948559861433028778612775838150593297230746812435675266182531526998639183390222234391745322676112097329794812255651164203491388067623449839623339391798915328036640416756893530638587371140879448055499047523123082133796981459866192400208311414146964862624678721499761098378496347732955178347460279578134029883895092411879261397866449588323224493538945032973411769526727946357637053484967459220575681581128288446362458412015024823949906295423644095181704198771773761611777179499255996404084131275168133622264969760331820008341337320676556709197433154408824813087184539328130581685104072414183332177286952545555485704307157380808233597494670633015663272528687491983776763174056922349269477170949531367285726204072724239775907168862168897939556510097654373938924950431179703474139747063076808935861743632872983876234266458970953893841520848489934815428405926936861731487798351637425993240017303016952047044420605801503905852679680701073452481578533657875854133008073854446278983509757101537672012383391673330020756680103296543473092917362683415004742160408792626795117210994088095556567483029714314170756426524469880129831984160686611202362609020072775016872028232989386857152878315202586089341987238195251515992149774004654597695566609371652625389726999026900273617697219994845476454307486897585917689318260100351946488843460734645781628424821655667449707904015969926647080893138074110421597183967024166054657694157595815784280263352532835512086402432519773940925465456300245842735848105871168037359240731328076745140090251337481038325897910807769554259745840603054267526931404796077298770889175223892392370332445432712979556044097761390494347877377599227777194902978602474658957472873803073575718128291263766816026385582033249862892280612835315342569477360703560554499957526651966322589527959702594324365947219692781878080027778167079583073001676164037964515915186600266280462089393527455629968056044827059024290970384882082252761281449871244533478374307095155305013271158149654933137959881099353215427073965270984641447784117792381842690077109758884043641186594848624638044272347197020885203205262710042724147167897193648944909216107627402436780076895639239281729155159296464643317853728752418133189950377683862199149939976542813630704365859665623055321107158092909569154579247181302852355344087283084467150336551564948530145334012386019239080843963913037972766822106302956896326226335324227046929014921503681038297261294195746934231199226624746914535923064786815287649981257728915930474225767329654804983331079746063974469807715554762562637926481226255140499735263278467921505173275395227549918934994481576178092333332254247124217953839042542419188459419414691288000123045319609800692934513298840333234569972205028314366416270041649358422776436476572205164178869424769291446705106148023212841421124416299281774829234306460607654164881732031739488198674555694133593742440075753560335236859384046636803895947498846478014250561144615243293956387326066509586014940070535212439152555682206785520410857007852914082119000174838684215582894847017534692635247773877466566445511824753261054899570481568476494529089275794647112388946952892112652520167051997016690420884452946511980494091745023291945986031552777641127611310105211237537466963302010558857938333783951636951119784669090527273920255784487047153456190174332942610937810652409744603258026845069564304118539326192533013953503828720137683992339105155336914421939077985483310852893519591419670254547291188253864872227712274633225031986262255425556729683668550717504162071700612781683004674506899731598460829232165260409322825362884969865596540861011331916443043505929257676443712281943260910539887902199790983019719125807386473489126315026116325941826814430493722939728749449803744910537774627755394253073339688237454464737857681208902467638858646965554295209660693760364638779016732117340211808515383592729776029453395937069698779840401178782125962050839295178259901630576274867621995867041668332762866613456674428876540179321563084215855846257348586258923974218807727666687496564838859683656994256829861125641548257862937585660598998699314736846017404352261422769958753933762109790881594205554862093647206601814705056955252183387970660572933070952480071854818073714167599973619641522705715789696113476772354338288127752201470426227682226092193214222829667699431311318311037624702254633520136275559945756516569550338898909957424776824426625698974902723390997134921342609992354415333935226022695040052032884114612808267035411285477580741477395616951426932389506438164001836840466882132711884763142368436139974726157370880067865685399152459437000780470168112161220824569928165334269476663549407241601245003179991215048943656471877172741043687081593305068930526826299727849803908858223036193671715333671663481715262653880138733961875694617883909389319125968560842144728120520893104149509208173510202709137531200631579804272317120107596346422591605818502298937359271582803334402083454591930122297502794798527980300216069620894573800731180078521661956964638855193573663053555921677663535663710041191735493996314548358973570998207151835969529088742538988886776469547069212751280645189528444965853096669949433972114041500486522740563587557666231551809312380761384039009820667409827835274227936151461063774870951286282105176188213849535894021369990013318513477689742824727986154145853267419151340569256409542038326618743451619768281621950130203706265515823202708358695704104574014625807915030384240660440906465008550877625760647063379410865998673726961242711692860866479794613075656476700027415958807461181855989642293593464891801031210068116369347413340176053793755894198868134233511279494130277016733060413798462319723798323899471293936741673871476064667511298708570809007667985012481372885008330704860886486083605960042417601320553786030102436403090859543086698831165011363152909099018791041882623750302288650251161010194045272486504593493001247015303321663185804317899433709599360898374972399952353343539066873652775573404391653472069835527247510757181880659424199095288968070062890158108187514746898259072471756631682156826534643300169668653770598465909766743740778482792166211395860216338339054080673136702126003954030470215038375869901276865004802276379526016186313720375973348963264884532972477696845926952251830965982953100339424539768111817609229164700080861180096660941532048398128118509394575276703984443758690697351438361897446997760173844972109125083039808178728921571826550082542569821348685812536904990711064442027064133206082461301115606813173119280854079789202411476684990464903943042943429130061465828020707919366481416018891475251988421459502100869393908161266676735255495118595424411847632321867449482319321988164583748513671940670385360752435996323186416350108619713716218499767873608334589113883470335000325309856610672405440586057995380216620864371145080432509622935689800953282550216183329919664327835255486108367392445630544943317061670547605553249290512048005393705414914390027824768042147417039297864218938483045737804433222904459854361472398715016936543072226507698102428970274709604660495716986123452714369647321186054041554231033939392045403110537165198227695146177618221530811368376218609045594762448783141598098585613846990303244038862772665338498045054146464687745182353607434578304162439751676831740985891090684623136166039695083476436774658331327863449016411438033430982383931552967686925568527371623539321597609816322865033067637144108461066912962294170788750961208065142841097759283962035596259531456390778053637696201400670825108910027020837703995300082132199176645703701547058688361979532237560987458448841406570602830975055231713544870679516878870217012079013481100177274818883356134109918750529213549675805001209990535665878252032856158909187867512359676738251775645162545531050097206531709356121623211261117041148325747021246843898369670239493047313594386150843486221793955238805251831371387184458320653188135276211051585872048333690257430977387952007887525769704391424963317497211814576715870985054018228611452722870440870395661903904357178354362827567220335902804494779301125240776562209895865149827938329360508054141007364355439198290736598405480691337645367587222528473407892463960151102733496021277968325460896880881320178813291112996117949939677689877187366658993496521388740455866264364766255642671195210428850726652794495302451265569482137549472660027281708697053305278442124499932397928429748285671505009132627820743010730775107948378031853916006838495796176515928614883088506367710573429656135615555999197870846059703797310701822531702096521907698113367926861792320158505858168871939870922661389935770564840541557893447327382163029157195834934741025861006626684626343775570631964434210674898489468721947001511110677251656282608980311893808013138210440321658028195174247490159437883775841269500208502809376881260268439348988197960699563994999365408675835175732650884668831354223708133835050336386000660361736798441624111924715888332327837876746602676185849207778712237921462333675269908754085669388730014392183723878975850122965519579133485361470902554885013284751750899839959253007994532929379503990660379064498518646945643286655999097351047334753120694126032178764652892161070686191436946125038758260491963989747285617102684928339622974767654496902233029450143036894107895422971172841881390403104110918998433747037157704187760388605942728602191780169714506328264140966012032078403165733889423694612478774026392113983978900612006714948592280088531761595833364220125631007772484622450664064219595600496930524676098352016079747142314792084051161681140513604268306000002153679079157519671394674805887692871588305139443900918046669749490194746609016935770558111032458893754234515642038892201254135041828143153052536976589185475340491062595221697585852368599456274767526685600438828820498564591928583267192813744255828474619219385939477184585443102180047782581696527328634415143394198765080729785938505008784701746112489709646355493443809716528193642184194202242307184111948821326932238368874111289476394718567576496866681759953950804684350189255728540336970180925678012130887866365948927083692377609603438389686525948449018587551359684127574631755413308606697142532012726462228768148004422901345387333882644570957440496871662704473192568974396602361130412365928305395108672094938248690756935767057793914506347793666677966432932096015294268559790655747031009604117489945038713293948706198342916104361333746006368544958846416918894561382036358637595006173444046504422483779062229117072664579648168274728633412113647327322443996264601779825251042618333664983250651006367021719413644336712140951917904896369148526205745552719356262568070639918531680033774008198749139010799939727252521432334132758806808705461061302052645610868536684551697453592715078867132503379845144153858639203097474919934077214503103855733096380927445987911719466324369494337000608779911212240753917919132739980670809100249771352206937977041132817927052342511589537504955797302665282009340280860254193634903486757900128388440887807834642047294444954160620084486770909979599202025064256884939838042056697944419733907437619407457462027671508536330372883808243073119013115916769324548659781769844891560955326019884809071459874272530500578489729235931522520086161872751588844117502632963298167019764105535642792366653402634708447258073694328061810956502432239115681511650624726929207816944652146619005456056966061237789233532585099477720505329758440536598655671815597796352294233426060375898083054131736533108957430626620036453727165670044872522280293013638746923154731836026656760359906211605547252069698995136607241631948797858925264539006195956825988680960497335805279182236933574134692299355457548403735106377364733193550892620976269777980630783439686121522217632675232218213183917528645050031463823552613724066012108368475375793078771958077562058483694178550345284389414821942384317290834571368474334334658281839352372950050000720790173771504743806522077777420832341282980108031840231853202705784799438934619168946605255681269422836937003626439142884423082540708662668277050391972664038718946891854902517798745833487581455079416818110699536124719385794829190107827272115578624459088943678020638797416304914367869734883394877493060048492299207743940477715086606759048336010008548192211538740313647380923984275991264086211381347238386200248617967272996394748569458112840494077519911392140570955446466631334886126042298611489201611080697102239887102437544869970401106101565249378311106931585123248945998205935864408747141180387185427935792915165068362874107598866121317872974077129321568952157604508057691482541601685430227064525048861596759118275424973013293485263543842426993615051121386846645400633310367945524887709865817714650657506620472761280931936171112630761142839181466068618274882106889410674803056578760185362842530185430611720293980230192764868453466917089508762187893863039090596234439009730218280380610912601992200774495250101978292176139503589255089809822751121245869167740150410483345391738656999816519075013440922952984083281686279456879258019538032309498742939903800243305707509108715281581960388041912473714798378633466516257848248466216656941630148666383787085738374849819742529776831569135955789683964932490291116361900096694977053372669242951556499038358371968250336558498459544475247785182510753604800153628522380634995748339071930354976619493733421897745944028986306659716726160962479465146705039599515622773769493333704841874799097325619693053722204422140851042958186364025702926170832661230181506250015386850273523562765572959087393239576353551338403721265308167094690233291591593559041397770170111438607175910223118771387555850063928861581245094443239681678382154247544099396868581555147450190032959037965287341770136779294303456497590827509437113950763284632428184558657528085089150340912302672360512914362790297060747455008281546501336445060438178119208328636185929954067308492790413444502064300211974335260857786361995445437753381991868470401904872260708026267151303129985963477242241450261941936336110378286757662581003114793379487225258124672486034141658622586468649827187757257256731440298277021288894907579886866286574245676844063031806076048309416399175297723451286045927338551853867640214817913528738692885978314405334888482457063434780248855906439695077047659330467495963340377704685865254878427503193766185177804555124342646775765046812120166411892355797253457958200075677009475888658006168086945675575115196304063761135828207037413031041548933729091131316116361981845792261260420226797938920707785036457101890858090184748085379214027986104921291158054357254536855678351877475410080750637042968377464402940103486899535099377662410742721253489288397692328774427911346835554343387731045048023669346618690274917429263234334769986066606359521041769816804326187024718181262034468117547333059826111121366994745094724836460049319890461880608449722288789712713008982184104567761841320000563403471984730264091899034321242106023903093385132792266229758537897571547286034524799677981777121448160357285777108535438870669758558938154495054381340985637169906874511079890986030136006247199057535682009680934395551911257687563876522787371740408308542415473821339773504661500850996604385592821774330961253990979341215243651568770899183297852750327703784131481015312858333987523755343245537509411752091999678864299740705874238638766212462689530369173027395185459769848525700976747840812231583909823236172874284186671647916726158494994904369924273117181014365589582865918443083796143564324677173811563943868188929296071563444339995868163701524142112886850744540307449450363910482089577910735026290201515090412749419287094654780770153202793531616995750274943187813808638088420323655985838071578153239830121514988244043114677544539472641750485126615582082480101517011094184847108536777779537220644349706644683467902088382167127351834214163864637125491291082092231122789199749087215996459307563226266700446891331420472824804621710044860230529360960646531578921963611420864364683222715159206164277082302195635455473606702677003444165788228482953789881757937856810571582457065159834536907266553830471912300754227558371619306844243338052190410257581886765518878517255650366479019433262142748118707631246913879144184628802551360850698294358693686914984355326286978635903973913732176837749896256458006522147895639536794733023394205028427951400775741173842147617690136069746600084746413806219725528791549638138176622335226086994371532152550933926100136442613205829204963210498621260080724849481209093424677551469940882936222176376987910872433811015988514065087264444273355125175373859077480190980659952537799821244329475876034453832178532018253108757744408110722670125242333861807076606414550554205484352538049164047445599298902619562263206466230164323181817151526241898989554836397712278399978900758019010721014142736772662924043073479007702461676825503242685536598918646761502041051423033932854600014103527714226453241289298562368148614472759505771951870196826782485330186843458502835320126184708138811497656806839681049950268872386425713352487831362313824336241821227153129127517745919800910045376769164301756787136760393172236014607009293299046892073738908481157028569249820899406553863589720452728547494124645129097693292971153708432592734326540830458161170436045163803017021297709166919742463757689670023670744232055170397704673968265706992427682507009550877264451628383245570305896370812241650933398362547695582925343554015965786696275514919885851087504235024985664035835117251643835553445860248301131343770429664411010214281847658236585336549248468824627120329474607946223345443551019167247158527163104975083609335140013450541305917800264264471900053031596553004987819860970286762216793869342579389029223309879812063660340937378796975238273619509267551621417731478879344589113207401449667158186108466304647299514066271610059236760810096101948772284361441703266729661788879644664423579127782629608005539701843742657719237913222011654790804664616161325748920640384606169964263789553589091837279639506406042504766822301738004621988998410052316448008360380852961078555913292924080040038110475009442879972288184599250764897135653076574223841926588551359970510277362651486911860956625776968723943921067698395390988473957431201279536215361687895048887373884230294954651065218127165066322050027227440034538078372695028649525790032055493187664520680316128379442461796179222983399946935051122286027465053123290460252308556908720695179988898551396795523835780687555464868663725214774356108760262913577049612919838013227077459563502301570818432453875215484540997492688753160254327208850714355825197125505827613324031991866878180162627269353246408952208215349419017049903657207720616187658461922150742228887972321081725673033267000691493108828955518947944905178414690060234216056878919413322521139289207669672265893357194781505186953030066844969297362893637991948958534742764851302926477412208016384472699472580210305151533317305880921101007486973328239193262194547143676819964505426371284737160108274833239517880782836180973501114663471532125534706887050454865781840745282776255658675314301687873547314841867931407347570449319171784327914630290800320396914109801742076954924211499070012114779850899009991589663696148028085642827609634365429440425061340009722884121838797730370867289711834580709109778791601547257762773945919547215151516580267490859390330693412824729306966713020381370257347414065563909409450972976673359173455871122091462133664006594435500746487170010841325552909689072518792405585500348358480540736460314562127489696594500108279786946467610243413289944747570551199951920190741629488309470703840195932075891057513799676057988782686508417447819118292717107405940681266765930488663931385252904787954506729594003875860067422931377866303455170632197453635521446270644439988969825242249541074475741211843158355470636685114207446565092495229148992970960305980476023338054141763769172190965807803878801629887813645059966922622050392351777845360768950819538935959755074127436545547616123620811006284654670326194847588716839317203324244909552718542666168734568275537449238831859243779528119196193204942460890414647097109377259854707999181289791761977402434340714134016513618857557831394568298484852524050430471159973865325188397673372303345829954149353434656306401737492948333542250038557751946950474995292730498436806488645400356976432984704786533012619033434312525388029397061551688497193083914135561993478581764075259133553041934056911106606690126930480921449608214889188983056257795895144722312145915063337245313742742719509808477008294665980998694186192814439669464292423105197719182618942023175825349037458762084098500588756218535637145770274457630250231677413254434908582246718747664266583879494837372123995864196631762440322401945282450199956236835478442101937223875624738061437050605889362380732113928090368685867786282375157194400701879038953414336780163652293777125645218991608523483960634233194401937814252243958920636523786544730800360445876559007777681952823630972090647974218286600794328998709530595511842037556937114583167634975508587687933270833371198932432786645765804626668725628474937300486765624805669253677067293847112785393669759253153830860362746397814273138964458189658900038413136617769105785312738595680121186483137130629862791762370207447344719010497225727225760305548219314178788717656894314783802717758722013054091863884888294152284102195611136278537920363242426340816844351008404314764663716333600501652722603844067218308522384047467273092253692343280236308626392762459025489453445800689895404114942227652653383416718979780893099694117576131417821757849708009375490120041950468652959099925652685159252208727735890976925951248519323250631039296833381108258052101776140802641430836222722502281555225601613678895239351467499721375061599920715033507764764896268655598977975227739975173571474700164688840309464089177616723206528051199824144330968916546115711219413822644510375993007075474664379879131595130184045967828328060063904822271237062617865422936232748278279024921412170602669937526177618565915995295835659507635177787360687249060449010785442438741804522197925581246151477699498767299484515434537492268746377346044782708316161264070394890327252610170104198695969765538030538162404165569861720164983213495967586139676893193516866829541463704262137420580316663843229974537273105185486887292190786636793855868290959311147271646010146628452513732043343767202762476956466454471858993621608228208242615063055998834419457095449500687479669378300182292845175510654956152654228636351197652745648636200981710029637816137928302628919979214839421471477718103714731320713268207820580581399032414704642763798697053432843739502031582554324676751461626614020994089336308447303287368924477685672646837067818276782156832954595961995636032321836701860605131751531750031713466346689366183662671974239320918830837609320603872468881649019414670154484096875483763182821628950085558379905042491682386939651766556320919817241948931717439828520909518984804256344277012510434837947270577220200907661712488606823792545350697857247542886526039840186286156423308609050050310393550606890251496625656952542524055741666688195271816906022429056976642947067125087805021458908037287738351733599228396048503502886171358459127221972119155445180730877582075268058099138253699367244495732806038304065912965003675542058303406609414957246623822436945487089401764873923820731540700006658965306991586209042193660007635387176500231615429896501558316653876109978328543503785790426593746441693123014196154550346434640549836129719104044968621012888340612350929836338620229537815660605505833645643234730033167900466788795894068208871465067018392958414537366361870913302418704426515992637463370591526847267179374203239131816787748400711136326711562975164938635362419091349276187753559526445777636491288321837927840990326441034811987331894125374420541646500802735575132845424360626028328606079133531487205594739488784870422321191700917431621706754991447772569901683051308728004400264952167571089918273021621071939006927268349555249632512603481049918330187249760812070176421010489782256078207028795545462275723765229931493836617423688350438303399774950039788058079038604270011833179052198064133341885607683932465011114705284584463393218674275048568595579539253874665079424720620578451691969453102624817416422406948755347280575909146032632205674495864429344777068254969440138415326906156633860636419656333304608316415438250464773381826947243278865284205683718956098276463403491887463744526252358805141305047080690568227734771115657326400332378759379447808113486850925319024473206480550055631557840498649766006517888548210788614467389863977701168608499274688988081026590466860702699255803376600770650909179061272806793987238875004325900222326123176708266887345949649165120325880593811120606689095337332100127049891468393896938874102104339922308926029138708672054303188242467090750465942521563225715539271414619457636696644764412968366976949220112972305864520186553935817215392200603653174352670052323312631491624683018635950287984139672908710065209783392084981818628102917976903927747505658423704013599532053334428567443472854068953013700004400850461085684090302822683223254071733768812385550511221128486051131755432416152472789005710167003499819612473908657503203416962750697165990506332156707403892906897759603259673240960175611247824096655136662409348823489807950435801642867381400851218679756238586011804554765455205277127867315524505120352790610037493678502984169716466511175556811390899920754674456856652594355516356521357818964486415746028184120902265382290516185345501956846244686664951695848726160468977946997459730788233684353206226712572756028824966023397659880763447616884694067521404170853479228480773137571525882558441824550334916364604768047680241939409701038499659292178269018005568740425378312342316510905160687437644783136074406221847732245505843072545770314125503535661179420177671046681481631832251760043560197962342825447585468708009153808018870645810853986014412789273217728975684337101070632676220543387201993559737065157063269610573002556972959132893140010585111555546144902193425748895428707446414435775610319125712554785129140643526652368647723325558461748190736933540851522474042693109585106875197584625711419353299992644447950560193501922461331196903826088297524122833170489473582102821631756781224508801692024102603729070391518942433821736761209139647061680182213943205926201014947068111108143690156692537409875406813278532306781252788284046305392533625912930367053507834279418095888659560974567731134526054812748795443805426312398286381721750876469313031731633503985644951320011496594156165994489611056042430033734296524771483901799819773286044034760634422702501374179290450332937738511382339289112583428970736146508307332794752798229286586065652717086000957303377121424248477883003278207175413742979081148573062410016894559687871972839312380179799847626641431655898471243146150852874327032340336483252771492472917885642881257752292206284737619541864873117835221377574467497523469671374132582044968922837508638399815717988455621580842415780563604282621815830257386587439716081224820935630441799927058650260907584746255665716529493345433978551965247067761481704252117166532199122059660157367175168644970503951170182167302934238667994324509979787850481731482675151043796331267956728480941549751867881541218759757702161687435696401704332539705425530501601534094180320448175150802051747125904089218609777162617042354658941748386388233019983482504694985415526364482857900230443411292640017924727525705366187426923735036854756451332925056293808712051132582279927570569937110034245450923397007216903163485915245592509561536486784913103209964066905336927016534733396989864275743083944241359753674987738532051457585369678299218034609782733404330100757295448954812367189161379878578647263399287056642189207040794174138547154715657680607832724844869476198561061321063033553001513977945254429829660487923286376924448375298156757334575962120665094013429074190052642593328062467247946986179514016996573124129161351989428310381352780354829358080210263226860576996896995053158509915398492626583212308750728531844631868848746832470338963973505408884909274914342443151175005058778384159032123372160789747862825681336111496634526910288889411249490008040076110217162978507784930823257610716998209831947751230416101437741468741011577018546140577853927960084127453321846555845930304683341526775263661074881258184397068203183562924756503054639115075655028499976334213123495327856792458877226866686727099818124003617201213063198643852494132791829858873202191258936685528139910368386241436584341932778423470413292584773894866932828635145397936036136703275972517511700026555820943918730290740662717065118426442740096117469293968230984048631318720165745903617754047655982133552553213435389954437710376755634865224167578067860425577677640838470399289862428337160629803538289399317209863653360056751805511210465069647385599323063271881977047351243261020603874476156527755871293098610620711946422303605347983059177127857626518555737073734100761687891921735020230713402944134757946329296209819727331677216827228629958716100014865371628547575898954450209080471709897323982812155153157386326856645550390088280040074562102629413617758063240700680541858047536170953744417802990545346508583789777335894173143117570574066723730787681465112765150387065675118620393769747545941010598087490180105645530947382719659165937699027236677318140823163938103885358910959070855741852525758729765441194636364984553782803649753489179726682506858702997256121426269788486060802221814310996974622808231616118342659380010130904573172088660380623203797666523415428903744994944482781728264726353523209126265589527637005195908519445208657763434436274274517217369492773273529146625677084719092961843213617923230222476631746616588522991517556881593142473424866163008160147912802440674883373344141549471323516300582785008809135654080353580309102579306843092729235740166108730919679959036794475301595019153461684744063298212961096270610697792866753766663662466697838202177387434527931538672791385841995959585377493982501911308094828659445415769924954621861324381230863729434236703873723964281680324909910134347902331694242528388888078316841933347405460441284334641648564292373691380846161970061410991819435601023230093543120001834082778338849919765012309749689380049580270874882520327635531286631283444361701192549626422677981414701634615675475176849088084443013919632951389709292896544410863453372451384386688894038668855269164491773404814392962311697672458985274147689771351768125020423196366980483707647236776335108907624787614562582198307937027882112777586954602816281787599407464712462434314670740938568514302703292650784077930968830212854329644214978261260362330003397117154121369964607738052977812042923291485919053802726628422284942354126884912738394258230642141437186951219493753913846759965644192733848354396332173118199615101164205407606846940094470763821445324878983445677874096281221561228540498392874340300093003109482604546633845154885507020464758044774888579459004593901935329961333298863798772250978151237503210860858692501911939347805409494662063185390286666022020337444193933207854271511532622987618178058853119732900156810597999881391913189513311942236453534223333262669707457096851627394924996515317757893719320167804435192250537328099124491553000170149202281768119952152348738442957485990001206850560289938948368563293495105166506115268741151336590089322494781106623445307005624040713736371072972564187799414101756000458722880520353074835430220332982142025158560917258844891325960383337330586602598845173249656676086149199475299597837119954115003818843536879623323754509056305957130749406914120749347916052451797363498017712514091864805053667556752467576647581062888298198271468582300495679438983692161425794212214994117371298040027521914910054882392997750607738363282346109780746414169003698167234907671470827696774086711948382357274786795702105650095413648065551107485531983589367025426190909725825937597314549746858254777262752055567283403919167282261894816523318172876356424653804974722295195806001707435488092040172659219171984678094511090379740986171199961538649980593441686817438573259827883625291716685762048621438664571191528817612879797127301345356370694039298125503730661852565264261049107187670764885985934768971587671294092569816295751199783933738289346967846870570988513536207477795828049571311460123224291483974067977248697995107313827638295838668424399344305620892663078525912942314404777756017259123386039814846548427892959793443479654637655574585815440693861606132147294470958008970963517211227399751327087221775684104205095132881033721271740130592778902276280370945588650780838650914240047132305053264939770082014759830158728370046998800646993098099412323318952898325973073484141744989727906295222880887095494016753001411728640983196468659968569313103510064287886237230942358496315534281149452975544063923373919430884775672530107016741087739006434009358082084956012084520234737259262111210948561321423541077441895084363546522999695250991421941330186358019209214931353287619269255262555470138790854038584165377890727476313038067367952913528558661867240461851905905793031417557165511901507431186030970809944891581624030302916198316120558524923475049757107902206333550637257991203674367109375292343302999343475991597059284636614304039775650014190385944898938437835668466880284188602360112715016193583125229350423939677033453256188578050700300268368418336678132761869957952718669865808034041727448867436460526703335036758076760255680412782044959234971690847347412979120396852649398027346251063467692246473866949637249718595957949158112215787880367539239612282284728968121833976824105170109320793140743414565967704073844050635157602153630264815080154901101959188294402980748817493214839071357890975641998587165045302187199931412618373702739847994100880953125933046805484375902886108968210555278790189492748155083547224464245289078074229823006481086436231628636689348104730081316834880645236859972368374325853186285138182739315125584125940170911313893363060239248940348942138255920914311705137006310255768364549283154893786880796218172434615338636869529970808678859692783339792936311014283596274015506632400707285330679054842786420189063111785769974813153826538006218536490068714313005916138368518871155477785235035517474712075392661564838873773522558667452395999267308094247105565394575189448503219059576522761690821597001356703144777370532761378964423046309049213917163151589416800251104208355686694356754669379811450343926600876207103024029484856786447127230912724664689583956744850660149814437437218757260590510800320865124408292233884536415289482400935944235177234251220947125787606551892053227939052293186692241424102299173123636517343636575810974838812161144805148555797931272906691417450010606259299603264709423719695829735617558452612103223237531624231329690689271986926699361260182618412397280457733460483713648708853996101119485949498196634171394146410218385101570128611181093898743657881086719536446261274952628112305569716574489027898960696734850579547541353888431044178005240437401303858709392520015919815705706876702145400710275218532418690735665660333281797228001420771003618265147265461723692875383546707312478813807873907533882017149163291586912079791695845995986196650736930647356759859072966739766504679249417174650188957898232462771687725124143336463870747245106717804253473631797660238937463257394305719278389763049715312669096846302722019729131079824413828922414819484599627236704361468079602687009528904296756267987715879408953998888509225476135312725524218390214707876825102214503564653988717486296458579078483154857184455684024646517674405052063091264214393476379231737117673667697527191212159476793648646261576482570526574143643933565213474932305377961546409088131197355747501416980848379224003497900030754550393755665407467835465794345685597740544131157975893407633093964110389213186391503309522587349597842208197274801698484114890290885707994745376198483758081527441854274384079156893275857520843778300233528121780253573978034961788642007179628676934304399995675593165577599749740937320828812825334089103782991471851090447610186571913617673419301666834258294675281178507496355902787790832849874449009403949683927988889942731688710938281791911301881052170217247438730809299779839762639329138536300071553467981763249230054908954361991549291110670509891230372579193089707303406566286451354882941381533672377130220119282175608197834724794463894989693372320093099942182207619078906632459218461075625137622814480300063758653541268897146327554259291595970225092171113314868201272036231178123483031844517727620232911214761579351885061095075775482790598686322442343994448385389038225697207975587589263591305966516492888917952384134077905932795264868206880067236080581100826655014533513679198250878743324230961295405164078865795128715994737721421888458943841502649796518636204763956232487967786643001310217539137049604678198194252751962994952648303901524825488469605658308239424093389424240709961407271184294688663612898568885079633088173305451763635292017049714069352312525001928086297144626047421811630566992428541853137170512502459266905065491492318223094242479276384450937161212298980674657587173860558546870970065319218879720825370572035114768738416885539525867291559034553019524480949962245612490030114773049324784791738854233526978593736737443160569899225692770719773442997258351981857511910847109528712536883482932814933640228830767690471715313821894261900681795243884688805709463265138898447903458658161868730214699495206143005199705786032153044129429885736221791695637369773615892308151541644175179078961771309537749902823132573973025565552388911921462486668071367275573644941635348787561452217160594078502373426054763596230931623941608029978469716779898087965406339288582150890647498863088051382970185042450952417391587459048014930252031275416936115291131274726310642657913851809803096912381911991266728737736289099950649475185502274093094971826872235890286277020017217397452439602834533533131686985756565124459959200758414073681612177583467777494560200210691714347236450726751656904469827415482729320576218530253987104968076892764259757510017732022577607101011400724237244166058510619308968624566223451007730152578304465589651385134260400702333144867831221930531617356701213001697205314841342453892394932398779564442536944732542820220169041099987273886310895964531105900253657710375078116046744020877935197248060596188457484173785161087416352483692089528424216160230565427265610810778060677138147199408588058357254905341680782461587652385202312923983124864424464182834623461779818032032934701675547484442567300748612466877428098564505870830665225206197666798052748220315380383155113985640540589856604836322413866189805927181595656128441598544515654710726185311387141677786872752077163588661319221804520574836650935802155358961685976219665071469805545279325492955639788492709841987863296471767322295494157535151644915276085368363059527816120445422820728695135341875011880391965140973823764109059672414780503053195742048581264874332166548529148791151027999933470433017445477289081235400440156564786011138187453324223404190184194866869847929918230519199949863038491461656088403122059621773541485147081822160246637847961099754388933597096354866096424673882603695643406743536213904370809167240907864498679340615350282990892115742140158918282587576088517691425871084339237185454041784264094716921479018342172301808099079333283515298355929365875708838868571727103137737564090279450938816659877901173296553371224540635445133798610925724275740631746773807347104452682923075983026066060997260253489704949114035349465036421329599151266057285819031861474427404515485156619654968045510857075379993470765409906188456442723353383712849581872939717995243853702229840056869929055580304727889885472741593871204384517889261955136454221675088721646450635162783740049003727544626224132389755761986244432026323779340589548449664839860604211797010926334992432535108130532329624288696996122811343187025320913036301853636120873034931519770787937337258140966342150237667715650224705864815783557079867629624469380101553123430253740150825683116932700004221840704013044330420843322227170548394187629057357791418832293075494841819477997513621564632661028813221807663581382243408011619258341034941750694575054656427955985422454703738629053249036240450826778716175930563032587266434444756769680015282170316185157209507059587644701007331486531128085017255056857613777924984230928758140159396342509340690290127224447155119249207224491812383406708967093418076796408583764068847135289854461133946523783431923390139263448315726744776247203548801281565034349014973152264077213759568946017825796177598612238280713135534344331028922790934030067719389539665829626503325441553912435322313856547206067543298192457874241363190628763642565378513004740339316184767245882931223934601085022589785789935809744160932163642522477237366199872247544090878537726132027479142131865909845499799187846357428019965979853152840547854339391140036696335126189614787535499884726750338334979818379337623202195722351710266892290648174482235978902015825720805517192276439077107369188365128809899849030328503072418581083579600838138274332656779065879325618021966877863373006365145655348320306855384914039131413109149787184392523387077257243603409123549225611133273983460159528252975301904153381795142298624614935612081031858788292386976265480492246972414046614477035844009238140462167297566700146310409364465839982957721173868889813083384122173284207045213330588511961680056842912813979075308019689071016959624177753349232448941663758682878329717697229699584975620920379678555057700998220894510393372638472528111583107805133864607180970546716400224160954001845858549176095815991460689491432765875566845095157655316140177375492020633617663668633568552046352428529124244359083494448665873510144328376550234474603194499974713529450938872570325674539249407088525928127952619696192295336890908606587047392672608898586971759588268464718891166404353393287265311417442533707835283431421059770147872654783293761808834682456621493689729144295464941864318740802686566699667983368771944815809472508790029705858985037327458404259859544601934182864922159562493012713644441994836004911234048139108473527893100659696624702762249764068955121130699811815421110187832693737995948962839370272037510403479741101768904335685237235426239573854177253409761339057952704354111366923960227962784719051716693252337800971792635194214231740859976064723580790001363567942206589718198068826339062595072652524775091672731289951922149813160986234453830110007301797581008292451179454656436356814643104868243570209188701048662313663858852697326697008991346985948356669125213171815882582370210170599859349357691680414576581591535781684924125073724511579964205972286412804734048154963231889140570124440262625138321284856821304251834410460200456231316738462182403755840482075920394038224955199417531500703961745848516892521990631933470548072843540203983808537482183052050000190012172055582016895918061303066393819217067883022432097096600221505646323990456651462638093366102240028209362520984288540073609773149805143035015608665646151785604759781268862372490997918469861534519249147794842099508544756126724597335796349484525272848079519507319287001931027275974397143442281610364443107065618270757457562810668157160106240234440988421106462363134707798681422015792371874431098949434736290151031760373090207776531302442084858052210721308212789931932389479710460007763609913364957329667815486196318936352863883608641143827088103435277951607323016200716398610936695905718623399621171006855058930280855233291828481883885828225659065566309117847702051275830785369953319568721213962181253887292969732451354783159974730628810826350210526027360971994441551107646398477438799023137234627886112279344492184601639179027972658067744982944249354054836733657725410472409891896726157527989194600267605347327872370461866388769110907791735255182215303752919471842107271219400802186055809102329308339021420043709747165152278497139652153080727905036248386523600990915899031781417148189457860187848441847091296881142036174320590745136883431203502771267615306709861104437212069413463625634935471638892259747195164893954312915223038325656952590698408005092572240213337068544711807228059942965483132130596123410422621469315281201053962141106597969088720028415345422615594359536959381087381053938947757891528213000886858649827731017342126760746780229577248339435195685151651765155604713736817226335282043363674277125092084454801685094785378293201899634469520248691557234479285584531868183152315948625040424984754621325661644100342736366228058487272621686177211401597758519869179154606356243781978776105047965662342891827794318126566920976518361701030095223996767172933937514151753759831081016909715040212626061816063426478259871985301565414249341409071246421711259973198713792548958318965919847721394391450350318059752946288456682648691957051604554860894172066980637269290767056127841953740729584083410435121741160635339276684312340602974313403865761679303757184911507858490561653625562578106413156670630709861719807675033713329300680361448305832234526285630399044631515863618458159750663772672995878220319938875376058994467164892657461606901739123093012962856502448053837511731660380804307551282911184871985950150214490354575757897725536230067352192008289632798390455501165851502394748198652997324854700302497299666399331488692566244192385360897133869890175134646486280312559963319772505473772645352573793962113491164867983565831496445876337043729365273490323997644529826499970793282377660756895666905830941719067809504360214043136615754677528689933531232083594703893783320958679121003585089242055747465941215808728756182463602130520346780439989051545004144653029007791216754069654644402379653647976074097184690840108426253945032415648914992601852520166949633067144391614510611327587664689016855900079416432316525881981486920903210150267354601249175690104973499809653608175913805755813940266672374487319418637457100267294540565717618549616975668578744439510282885096762119026802039517795903810560689415591858395154040992377706499090024651088604287343715105575513406727560088971744686501891691297066636418914512197699736811508759381993383417652024006765033404740486359749371367976621274312968203031256313381872602753067246694688475339260312111509502411952794986835693130150981214362644500454246710841368556584995072408775553004653431235382976381381287443144019460055199726020204767506026932340056784333377309450601077511765013686238978720311589606202068985818314154656131476583780977509300638681520102154499961702974824044585790024466902134764152760813274904379670121337580454705703958042170156314307647084405019588329923084154812336146348417852689099955424664326984751107143223364830410737622409834026005992562685718856817533290079474909003133401045240305318512840371314183764361266033891486761981766003943410044860522600403207758559948680271512561630370499230284328731964717626274670692107653672308116136154817559775217420625934536244892091789597867449175490946678659690818491487516397360531392556945998941364312328595982968078256911697797609775090103057962787775294023615613696154956216125877956309515760035658365185733774226747016167913492593404719727405038135837988230412399373426282522146174757236030905103241080874757803407086172806150962747377798304243443516144751173517484263683484450431192589330448223585188496695342666079873799981503539287870234842213337706280027756290045999284920260798806561585432331418288554639990147160318704182600218984845752422168635681239894106014835684760998694034208134774128741945835771109023251719004524471884352972020073215853840634998569862003469790182996668493443747941485266093692836700162277854878566147299855072002386537158192606795387092231882673336992827074465457997184457451305486122316663895403804632097343593700537647587813924495783648160805672160979218672280356810991580723423464555814907927468322577538222073112357354421195429291935061675537039859000802755944460466848298002419808899130139628378059575672999547602538660399088108433577704844188724622779163409497166223822989997618732701928835854407219821898409368940828752656528767970529354188422835380139902306190757413581006462046969407610762044807305983164781235620218710451328297078555418541500903047763549379389862073143847592485866641174808005306855887495412662695226324490762552457799744137463795614107566342731179074502658636283541316186203410050586376118681030701691166241536394616841350623409479594329673846178122155225702455364675120710923685018435771399746530850183377479982790416649504044109959214401064867064451998806503139258379459353922621231262880897433912625701935711053643402093580783514825730169142951966035723475339263878297455305828756364141607848672747676197232124088216310112275786686481215131496272786788548275344431460460718924225312536076350261924646619986533378701383896356884172065732826440465602112696912955449911314477925186732180592908410861354894331775129694357675821362170550683484507635066828182430683561313048624447338184651746370554904485386216730510623372131064610370855302571930819367487712689969431295367415493532146544377659321301237545740239990635406588218073331335366972464973966765177614793497262847027108254502010866421344761565512153622804556340359954339280651962005260840642504440488604645158706528247549246944350083274419170170574670225858498680086120150685907842556628380286973485340815567437283137141511857474706086609732271191987964985604514188349223335022404457081990009223135592565037537666144120957909717906797081018907700112239262142379674611578609441879672304064494083807882691256129569186520465147765688648103780426213434724793342449463301794950772017370889194973354352163484212311938382237169547925386249273507601641648389559613189801054639425685045197886448317581285899795448309889117299527355180699285875335703760121572145983410439526039839154145217077242111167029124748054116700408211572939402334475023674942935396736095177921616480950937736480008678425229093702660327656874917089606289209551227069848085316182978233802566441542616921805129138855510640269094544595093120032197532405577271385252430987717877638767195496071266027614558795838061108014506520694891308152632059818892322859271716892945256861337164420137117017558520193447725385835622522177288658408131199537017251969461482000739698193645698653973363077216254488588244608390174002240826644511309916097314684969671375194831442054441046911782837937630565933099748862817190676216940652309852056402084161257446952448536259217136872994417259171737127666025221657062985670044780335497824160794387087978674334769694932554309423302586998946682296335412132416182438731768959392527475143666894523780517971476723943895044314112721418799327869821456665092037009672823931434285739183989691414393790375721105420476328407805113919782691005932322921211070513085184235595171739218441596207766986818648666256947647804168439173982181118643422810779008448567737386899992837740404464167406264907855799256116013395695375934802468704586351881754543595167567745163834836548453461710587417987516142886283075437556304823119786321039813780594723668467977721095500741555643059836508343535788959317178928590455756979884863835570039961998302006145584903980444172812798485914086500586756499426571375837461796774781510419581669342677620250552705724363659803856110681575467350115975236315386707902783494302993312693995211181576646790622982864959290468978889042339154811348289444261331036714858766737781220981464549134316667141479469460124788586250468300925566529895254597767249121337139193682690444989829289662543919978144497725308876052748234885179230928057889482246927567525829221458822622627143233855912037304630986779587656707226428731073027074534137912714934182825242244545453728960403999091275236425400727448603796426298654101866650970190935364585939745406254138717253371822564580230368801453065785183962458103952288452648671989024111490342433578398903971351578017774450457301285267481130904119661645256002114475172966193067253064552299175203395801022363885817848503046021128780979717597735704106959083527145549674870164178933361178722685238396581757091551960036209301783520907089041897327092807816028917253950981248498017984082163928597542320514191441030987136352479135920602996306868984607640503835599063142545340816447087801167200059113456690870253775067202929621565589266495745298421576308526907620345062382595494344768069157057892105226205006194538877571358281980469028944824764083328134935046408097478718128911480756654664215497082582003832456449018930219054476625686938359420438370994448644696819766904723310648818871427660370799019612527912081392162955108071056839493546952836423112008554186726340906554673929486745981352274869140139732050418579661677761213068776257853747225819419525497481964695709163385949445818466741514056304743168586950196803388157716494236679553373762267455214299874135779017463265678630875453499009940753791642233625981853421787437248125508369904009974086718818457863565065973556322982423754813385268668282601886975681039778700298598081970786572616664353278628214287077611633598213157339175189213475428870580755305408469806297953956188657088113442984372077333329109738935587971473755869559558398270085958026755835958914753368955349549696993933756266737565054010639903058914783984695478435575949367553799092971869321186847018916264456280151672766539268392622753121931953132946665618820265066205089136919177076819763173322026168777862057692571136927074497285530237243266593288640004095326926347949030030574680485308918413182481009285417137882778684163150524369778855294606856082263112420602561473013952590920825863191589531712169012499088583379138545169133245426466598269846112673827866727184404722453426727297659923728304941244174258457488869839745860311326969512017518094585875724944406859903435098640773921454813703525567143392839281598510511401005101435227862478196551210440906451156516452495209941171103108874069663219166341354951394353022848021227834392245621066563014887797991884387651138118237521730410441337145345689197370725655101350883052523326805200008495236765442816840802510945955916107612123759515922325349094429665376978825488993290229758583802209254900004502090052934698048100273114919668550630644143375453553916897170393492202615121496354567978168358438401323519294522335038946530447683343845203529526018863242704572702662153862536025751115265608773257788800311209640420252432622522619073799919209207628764891508649812515509017580141199190502106872685242909013944765924687106293973115317511389139911103445848653302190596294900142465536020625827210531402539690325861318802433789213839312812752973093476866665907371388769259106808596961474455840218795068839333828943725693828312200069313784237715187963370428488420342986091375885905015869069910263442298212851498883803213248303626322841588687304138448933855666115698222996123745655476227580818035299808984555941992266705146037972823977700686669557882755352666187637926284651298037291004871643231893796371596437889423494650402848117657849836074132576599786244212045144958986907246720296999921215950291918296572118478005829165882725459710782862580628646320505485284636375916319827163328121694685454526252485330414603616846983462201095037899602615219511645976748262082446212934426589791235874998563608548733938386958501329915134160603274317516785326900849540620326919756342654633024895373972063475706228215984336224354448445204109257208703050953242768884855476107295484143074434790066393029250031163081294479264893680312759779956453603280959036711799997349468636675279536112362983287187404889304013928631740488146861051974133688175079365608998099249793615337434510319660418433609285415007843280936476219133174523694920230536768129833822218647467569295146167997892479048246430848213950284629481617635002210335700699340228493462376357291180162258337079255017955841153940768614429626246998255803662431068079269486218323226560304055303150582277966541654505531470194175326307537483379313423660060316422380557995935402241752223482694136010479362021800955223690832375669896640023524165199643284854665368104973743943590160959823138658327236164992456372706708213829564833299628932587004415860468193946882443089100914868282824832064250598529768898701434183773852133293150920610881109917263597036573623067367542233728684581747091147335368705366548724671241485965798308744379641654991198849196064910172423407346834767621699348858174367662001782716822403522274567681367608341617088273445125102788602145991239367368067547519083581328245384654197831909883044755134732913979480882428087937381552019958204454698070530091907196859716085704093563538720577482720305247590386026889553422854900313011251892259235707764317565282376876316341693823123994451283657949538654901637853963862325564213326654845071235742671749167643174802797661513578935226040343453582621757711497241259116372381858510842751005594488496621343885090233782713164812777582603587626618506377415477363903074287980378161641924654096112070082437787277874786064644210175174676177129605672911333897099332775490425407431185506301611820724861316847615840398120843543634784237210736871011265880309889707941369536326184678727721468998182533016993629868681469833033540271549042056995711214431840323452257876251204004271895323202560585503985985961181897998725103084302743478333858098445220540756342477448876456549167211590240834130163139664949732923644679467748233436798854443585792784047671259667901488017538084349202160472166080239382942575973310361700129666118797041088721082724027737001949385335644989883665698623619038466438370233826712185821043347434140616556137288210049657396218319302719898982502702166247622979234513250930872179937572405945233459653098804351635933406576938678548651998995105990291044370864405720782005438782099922321008503936670842822558902798235600893067643646864148392720447653792994652158178256205127653169440775409673836066156388094503864282232103932237801905310464406912556863863450226974651577943805742533206743822102335748887366856042866601835607598304856625546371131031415307668294804234104505527125363539347283138718768013148115428113043263285003584478099290675675268676493897361982366685198827612491890443985338616127011129522813586081517282322594245678214393291700880091578349984706644636960820441962116755811557578361198983634382155371023520001189067324093869704625247998074149724084864577634590722189340268816833612948306503566525175509105607811728290082888322964929766787963656886221401586360981921779139041283235060928903392800650963865974796876881261591840918563485595277197339864673989558043272361847814182121786261752427306969759305347587198685655751395694896300530477966659595727393324436505890288719273156890259163655891266234602554841617278246253016056140960599340013636091332584353960947121276548321328539177400658221448053897563353778232526263002125120169184823481702493216588034688277377880393143238088913889737036869038567448873806410670109221456772433464935688672409249080871796795435018301075210683623418235361051643606511285527534906929790951663377139243100765258974064760846069590791427264039300598227089899632373040510782673085677117232441556097612012382518072519827650717947931220939073856875227207385477965237095231077759415540658502725312325047300361896085334510199446745714431592122236941901246666064146178152578232760950938373763924374147075286814663230624074033936670969626300298898893930443608612246411915592334992277245135748734744380799662328671074373632514152715922049891283858775068325579969131922761698054256780832159882684692663977295492830999654359507038140587191388845797580128571333619123297592088645402871180793187966861394331560236549852403690127357079878234756966307604247552209142381664458161929039460373409299321643263245593178176676362400314979423386881766959621566496701806079661376990519991057491205814829777074695533200061067041329711899890575309127636138822088501624460687932923120908785362007994278935046362873017411673097574935550915627179911703141211678324959921312876044845339615337016403581451093821550582624017771533893773155659716425713367553260636240575503364340965649302593014608079186318632548813867812326585758691721978511960723198086046342989617642626123099844075569671750480733330069588149857653606206488445147555413397576345045322054022780815502425584238886593149850255360509644133041133259848849185718267715139808140548024221730900104056182584894910312466142098988798661483922706664433663686443192824554871907136247864995556941226583929595714438477671243966488534986982417229176210835474775929541705183374555121495943856664586244826262562326370778714040884776698899075105057159818230173162898786698047112732184564736024642199362088406876265266694219810883660002197832255677619788562456174017118723235864371063343852969962102632967144958339397024627816398947375170076610702168216886737223473522563873597741228969214500188898019971699802015900459453220391774511591016618854148843484667102293462611875756049280201395865213207564182117951595670898964067458687928536151936719979333344584365307186104342421406951175597404414124765400091356391839171430290693964717711894458878440347248086614532784269564198065410690155373245189828429322902069487807965344360403125692584651408440101318034642437848812237187665272467721725756606253174586289593497453229127239583572888571509462003748573954614996863094522301345018685282070649251235432455444224935469711372935673729637806233449817123164853185386477694915289287724611235866517153836502800492509010542773528044295814464606787235691422426541747215366959986205255163442249483016952400783993647018639078554874142317516757265299415266074615812864989257684159685683929952166029400799938585851517924860550913694187215756328660812193900179356661246272761344611360573480230261505443534385912829371630735302912184576532293151396278675675699294095120177736054647757070547446983571292655427374133388065948005554808333080673341958849393369003782896680656045367665227612947944575288754578389973258933139789414529629303734739262772175962480178817699716733757662307599475155137990545007628661705869504782227473607453978009768803241686267029671482742413083552964908916665733691458995271130093199137548875308352027443972699345611847483322175177878261076828697270184576828348935086787038915563675406564727341284943741341599029821988325033697646721990275315477800274243466639101312401820654918866345426040191447946103914923893385513415140618704251937697469536919410640856569723385990018967625860755022632648801201822884647628245269818115721035341277161962103200211328942797990402780260541810972494496712512585050224689898479936617646248001771282625810382922450359277101945823592055752743634077970400607876538821953010263819056532198019722367698480641083939854852693467447965796352771878979682982968673653939069289599565552958408919846647490038691545432760117674956070616889286360684218857179671957789781201425766175417251694438024800622271602409169239560312140293947911292305195194326183060858908908068080597525771603287284189040521246943299311825695675107291379391550806196838021032627203224688234011170796569614119952781511555579120438917758932540618317308821086671333245908178016810019664198906816638502369841560241540456129641518612612439176956471882972908947518647236575256711220074281147712171896053875730428907940796744427446220174788232538778644627259429654364250390844753640567167160586869109313753807030001942847770763718678151563868393107209099879464538031220297068588188781962509232659618820933938792668695865635917084650054148771551685400644893281848535174195891059462557513606716601366343385122779458508779393538604213293805306142930230988882284913237103105390139166112349021203693959870567263841202151189940160376521068815525562835804501986287653574166339976524835515375509922833277036187389292910041169727240325787141111407500687798390541698815134288067828263120639494300939434886794976333512691449674091812073828828230072678705345123087403056332798231348048422176935494413972480855723704787000636364669230480167337875343442500509038786016637927575917567646725697065875271367981400945220711668775970028392656968099352861805213693345323785862538744241996117020637968457209130709236106927695559479169170361998827018037011661036726384994927026751153298789281347520850704613570880566724242768766666063079992856987539484038955193477856487071872420286483533268880745103307296733029585395840186853036121548648139686242156579755020678507206527519782107476545607342964406162840013207555571588056661030173174350843348507191558020126864544014661548305961074654490168711853275420292253290449818582199225772377755976790143632881933598637523109806815535701322878839415674219887384090190111366417712585878042374484499450678043440450886711821908552531780609343525238337476421258565048810541557292755677528506026774313638148547481489061873175806083113447480740928481652924700721300301959097980305823404004229939073258725457725263482490812213651045968021350325941525109528480427416150559787855765916995492749177844257185365274622309165761466310895309985078625697727717509746183003170064514350430030708006445388287134117693009637676662506460451081775794492102741774544403617508552477791683248183569525072581879311401583344758616083608173609551987162411974812786961636751165757826520838045425963876083515745016720631804739678831393140106948765393362813157517972335225775433823869230548316868345461006076369025753124467380068911511267839288456319968349023887346434413224164105682556548599672888976593219277409869310825076509319945484624451273826271662790447499853193162368341918582065310667236368879036449087976395141745445481266845718684220336818964192199730422532172658388002609975836983746669631031743301339963861742624732586445568792410549477299244863263787883596726340413257099278298827174947779487663204995590992076441803732517369574043361402487804692792672302907573123753704954284678006038234554272590994792046655480898781959968163340034424118268311720740215521901627403707186116992871232615322259208106702727066162106525507116701352457227233731897382961502133661076031557752056389094216713692298612419177840265168237400391846009991599013111252924483210637448144822141897887994282998736526999198266484742696060669435835174525012553208168758259560551111082859882402314513143656054019090822247842033485099788404959862927795668195155428469798004786218722536609587432114940585821920850029328768639830484234094048258570903940404744722023031986339809189849802615217888959698284184200697374501613291404649840238985921744301810954828387394344361348541844727291129583563101639457362961817261756147534656042849244865025402138507269582627585233226961819851100849384356999095599612123488252238443669797890526162483236526075713683004399609702939544838628841862004838809408944575654127909985627258364425710617582383916122887914951862830102076223569857382848066365771602929312889638682333921520438394336635444159785955835093677383143726183595615744021882967710129693019055635056354409278499414216844707765941682364978611406359142204908272354929117127561656929549238799386198038099206132676553245022075444360830554059446090181366627576806305968620949693400148612599265106578835049230547453407381899776839709099548108386088832498803666298501956971306712024836922721704913189427354623683361134686517714711147927401977156305443483761277037153629807442665847666772018773343801457224422997370802797833595966649322416911791318987495361417353064492732428960954922819140052977373308417078935751685794670594321949441838607116381734887481661772420857179113296260088790510648540988630610091341987344358527393932954472573792052383613395820756304885943132181677675202580333487511164848614832982560493724451338751704310508595179886700981189807559108290435137890921325879132007983169599050851280277764323564098822912267878710717144766284775419959463707130226005486908043965307814639494600312743604722700813842194080690660962222139984961560226182131350702954963195175187143632668198928866827134551211775674744993972232946435650349110437576807394403004679399898705081939750968146989974072804837542224156884466169737241043289489567974892173662802791043067051044049833409905607107738479261341225555001123294157212980960202963454020900786759723655869988243535000838904636488380504026626041009465914551573487106290281639444667604146936587543440158258485853980561247635847256223190077289154007549837865354557589935196669910593618485152229748195882957126261760996001692282235915417438745410651511436705528839852489223451231218336755924735913373084294802673728305201298922890499183328955402966376123729097490620134394344099506778163671898657895511828332015466772818277946834551496553319983315953511792476620910149319629360907760882762417149933495773761883243984147600423035440193387462196190879357115324874762335210257585204353703170991152242570445994728219869808308652281650968442957232039967799908632239354739605372926525832830239623213692007602540966200565847971103105586893668080258803049687855597076249699522668329939128057719179273285801495594804287783356230219793401957473999628511298457837209168373043191068457855214519080610458046302411528245744230173458213091931706739127016954230491187365498600984031602586942995861397287569556516789950299945266765615089237940387657263110730714984440268359874955796112072984577347361553306491693050498975406864098654112941385382456810715706705998824766113736234145966832073700729973088806501960985480154236934566995178679494866326283295751110249468882062868744238011034284895263032747110064108908341210759689816622230958992812117806431960588170417654747753455703864896493345883800666931138608752723942425673760789510358353125305364148724843771462112086110321585924724367135474668150354110870112456502647235456352781210502201771374998883677075240261527388990249991794576537350092823843961361314528672288552763141065939604738146282888199964286279399018173805283358619263779576705539607409665890462905651668771334593494651556945144987119199460444476921564979052797277782809767111708341855287559046193943696422009980005717955248417765165251335006003035494463561883247622779677580990111839291752715740685768775110604399286865094328807086472909856898655273108252035691001857531918376772033742705974572051139891683762830196786573080695090430075874370596551245533082177961063579682830978328075076481262102092405824880609734123554166238445261631754244439457223326240329647624607043166904653800911563626779425700788760739874760626811089886609394457284714875428819425192112382784594411820124092899605485952001233310149525535589810529169846314952368732437829036664138149718932253024216252644836519049313246138015247929187445414056623789533436200044705162402012739382769219658512688283092667246786351472853280719015792103238750453117236284244982233290404946641126749385118461244070884994650025798981526971627855467237794999697976356125003110870405987353580133305987292191140806030385472732586322505671509807191619537312350611800325336934820121207077475287296767478522879563988834733375908487321406788715805208740132305451343787920158567024839282860140325693411306939769556086457815390175384412814511417104049970137901506793594019775970026041174710554264532534654253758970878125678775745556365101583196942310789480086768619554658252009407931802238362847624977199037590142367029381983838879292253406659483922242393469744578179992646994698292917472001758339597996060419520804213520039090317535253639531335937798841436300773391608033279214556527822271795360250387064668152922482198087373213023393393662303526672104349195886716640308813862120075573219475443816474043499032398546846281821473593415428333768738747670780882806859001037233214752095043424927073254548008981770982210900873468261621554749865085308634621953606307985576169861857827540034707167995491891387140268675044295699004937125035030598682200077695199113191859638621056451669656484627357202081549018090717964137262397970684812678226751198248767167113421243584518606906433474999213671904413507929270235986011914433989388624983622055303388652035511998142408098256099829827061194089591838891208789030891602998104408979045470279996309549129254863721741417803380457659752917622344924688184337797388875066989534511608577590380699562831938011695783023585333713888926986235250562451808093806435249849632407661024456425807488708317298748985484955013322938481166098849289488688058986166947181564072546299408980863581340039470140727268940067108295125750707542946960112956139924048022857137067821557738682995778931544828956702669801971794166095677253781304965109694671913153359800861916211623259603611364145096188842333637808986376820039281542278900789085771749362964930703545548967338852546618882513334171905508662825638109037832462292655665408145574658870455110201271543155692652615841284641541500320973244130663223432011328215297395620129261667654098372522908640827194124158731235968203420783636845146510219396832503487093266979838711623958176394104171306483294763427246883800316625715181457001404082229010793915850623901798668240251609716536416344945243398737208566226114435204801379263114868743249760731537505432974046150006249645093514826400908897831900158286179948247569860128910229098077127807945743696421869594179259780108455812238601772542564442291431237200284797964161721659395898020733228465779150316147579188760532798175486064991321348726543236378568867074076668697233749621730917305418930390468093661408970298284785461445767793271121581474603744284315673316100514028943901063707412564727841360363561028123807475520602973396681533642243736178268175446089194178193244510130436154520901183785228942577808725296254886005608270833693339442502889891258956403542338033620291487870317983891339201264292526298719836361201323733990073398173534688094558481941282660310736192146784576887475206102909272936764266193871081524761731237579437376409547895073456449047378416889432059924269317383367562980303549043264461858359475284322584366282488567669194749161569680684232734577816104689060069339753728557013357576424445122986510176084248310352674381730542020428324033951368730119055526850529623969242796612523941841131262456054554701471153422812149903470536571946049637948745925171712031550429735388048087219989829910237855412435133877286149425170937945229483951376876241914233245932203603021445544808101923788092246476304691834604820276579089896634288162023346861320823921010706021628599201723728916180491528599036741868290919959346558628956287032730372000026622586374295092895985217526290830229030506269388936971091325192932555428291716341914493426171113294682739281313946602362459485104063041040288680754815213776740498808940011812181232604642015312380152178969998154549702814212064496998443264721275459560929285719657127628993607962596049565777690076683873492454083397311666278423234054890497232276343524522496583696148784170443431778989571252636446936618504043203660453029939846299324282623238242826247388210033258123576582173156805289014112725808519885501618587919750271722001487937271314105391433185477449898133600889760370511709388353031516991545820940870590784626211509264826042322920847723463059306027332681779248551410980636131896250295110243476290338850823419138000437041473452623934068760577367977658290475995304185413180843149225862220270817228455113221865858553142580454668927540206032838235114738178550439759608753394600095135246443608912874680378821743063396440281234356998859419329307803560478576055136734814248162302236433011427595052792733625983462526353590604547823822606415002230274104309006905169316921264865341553059951093045055642688737503373136565194792632299460204342279489122099432225684896217398841893009842939649740263110318591641561146087055752431082565344162472221158313023412513729389471049302962588145957181711743958548251273036018997811103846954476288805256935075738858886730814939300304191532609060623377831400314860985832433178311686686593399294519221513365864091471862466270422506335135647066407763675137346278093231000851021339975654589625505523991788690425517937754244536793752688509684352924863532957523967171875389396322234700694586503124074152994222314440760504611138811890563155410294213772019426086791365876634157372423335263891697239276015153692753340164662542866279997203694983281403616418318493994798586915141406095396761083196081066981730729905727681489139004860330236547862436102579698674165311939606200744398995533326717585321341369809639209077562032361624207064294292024318594854456648480687487622952330472932489431766288053919320364116843117305965569074058166397609663743355743156949033083145083419374291381555027361457514754845984050927260875469388732984769123420528711420857270410286437193765065831693557478742993843633931868636374689638640997338365510374449939223317297437313738770933114460928608114873547328658803552246499889518480095350317772556729914046743811701751096403075032200893276910371908658958561583843864986457013613706854730947820860185031730067935020954630322768142730956086219074796451536886970288110382211784504645574539462313880105030172605866514672158494523878645594512196675125184002774394586626131040287849024641501882839327435044053391832116808040097038248857534169595750196436200733490002902268777383144394349133154293135219664395805995991552763754926187557545161515912709219055507889702661349129641678809121751441930886645550650852571824770565792259828637331720531026880065052125349284412367863864932295800446616520277744903839987815283544335504059912558843705718163410120119499348635527274555336945732748885630907592887278912148552976981725465679005597787027465355165279142631412265615257501763556496067288175511406243051000295884329114481995895133337781150107851324745637451391444399358261524655168981591881081041823215668372154119193429553180683411451828779304460171753394118617199505684252531772400687149002740918736145027246756173266570193958449259812343522771132029241145826050993323298047240279011886188226814716187945757545628649898247557833088386161509105476468436193274222735432177944071568353326280074531618629490700864460892420197474504236521140284146856172211175241293565876488529224964443007161273794862289008997369114211362938411650211650126006425451112430364095902262737385637816595424154367257792264224418958541146064193808995937965869135794417773550479061935750788747737814122041118598457894721400469797244307719044183205386858174447253414369806919407958708841870910667173358163371019546486895737658279966949351158180459086401589517214532607796009311704456603367529171174907172517393745463264919873796372407149925616384507033160244648778160453756095452025844412046534547950743894515310146314860204254515036039547082265434086221940215635102747118496161972869616185712709159604313337226691021079530026751236512064331946502399620984338707285710981113746614074824110018134693831040748148878042138267752917699661250953660621358392289594285664207953440854049999161490956863078480098911942104706066278756921315003243951032027306732949770961288187280167374408993277061481383041348971269278132458854304026558348057063675517031716213392876935579122228928006246296426069590710303114960258612021151198201549495298502893389474864994060140792690815391219992660501483830690879240273583109501850208411467428461400261645005855542692699703587288985071477369648184300531430645203817872873960171148780240709176399433172140418144280865241573847384871936367239591252184396722599290299639189098843388958510107103435147609707436586993656775165299404950342921639145324082139663284814797033364559770577548765936687623214252507704631313202401437176667630966049069115215086896622942783583267556679160625382566326345802625289284068446743842557122230388030562352537787661532988806755848397336931417299354379046798389890376421043524292107760479521056851613952264879792998627535473519411944755344420421561100619079411067414775021031619520899917246809048088763131902382555736918838746058170991851673291251096606033313217635262445022939547132198019440709218767619403527435567098909109488647289838393386573949914025544773963867772093155687489826471964140907797729370646484176626006993126822323412952783052842455452029925606431815005355492587292062284171658932330875788043997775312197900647395577600251709013600650778138635404417892413893423909066053512541031620503135948682373404400087488155016014096055862088506108988188395731811881393091138031541575259669335992125242169421174763925030733498687150480213493491307410239125688890546228096611987306006854263038539987534757795071583393423488097046438523809399484217465747710096862440407595483385301777520634629236066881584567738362372364948359049798187196871135093990311404292935952934624786319345303844786559257949368125598931286535344595302541524526127339601903572765793299198930562066385655193247036023621325202989694515162719056333439034141997230009680228153716182342939333952410044514256133187731092226052087427392040478038033355384329888131003475038871471272741951921067960371887039646924362201770983513935821762582032919151558879086564702251212418313286654628962084298885410929569167001641038866162655498956218368395987459498982915303097542588664206804429247866618071823886699386608950618986099769710657553165918887359062398503485971653824101553668685710422627456723614452483357802883983950720116151378746854418729094753849520340695469297360301114608496793634635402563600039110041047053381253434872931025607365830456994817691377164697788585782902455310874212598429526849113726127828414760915237725952020820207035788600525758958530685597618637624250225171215003735657459972423814910407334369798823899971940345691297756724428106651129087144247414194946763307126497283304790749330049903705364728709324068005039620718845064647662424504062315378714917594839295764551808095593068268007840258993353185978525292731917744101533887196669191350651939680727839293280752244508174795998411709522418247955343556808902046368062495741228294855773987107288224095987671588728637733982827118869812753605543406036402459504245220113038178209544853456020372990329059795907311459913662769124510885009072894231259166566018057043467469822586710990968916560639748453033015725268449442105152271002770773854691422189807352617534855519419392995521345905390976198475855599580080819800051568443965253471139949549830768320635428928301836387053485928331592583260087247405397737426361167372495604730961852182452768963436749045499342425220274316416231688520018265181313506949434724424947490400409972797739976862858200631500354258862571925471629629399998113973614190435216898212155206125834390222053464202113121642905299016151951813872976733738959498980511046207662313385496717419721467923293924132846904323697528941496960446077847074683889908622525168484331207996346452775854735893466125885139007425965529736740468573191504464685127639650041517499470084556555723467036181361193945607549679301099908427712136866029744552869601882911058619534290725639415118926164040290019530614725097570112573041682301406725140029534003943242842578851600366370030840169898106216030703566208375858060379950482631590494620228869913612522943138982493972746132300542535871183598681998276946994587115887171343386451481143097489469782142872195473168879487681029418839077542161089728491900063232639863192126025882989975376702435010339601606621798068268508121173498232958994963425103446343312845817741030458153394550920018959019733455452418549409799309775991449303116697368846087096638376069948256777924904901956597714890490596571689986513242589244771516056513497529179186817701775730301569271215943024895261164574387910267366068440067093334762073832526347369466035697261313750372260859795557529690915165587166601213773105480044288699202944494629353628884144256365901674370909374669419968800704938526790946294006987721603706297160885625913101131034674501396455550884508800369779253933711812362258429255641068009751740178513794391821198492625725338744175358111059147031288835381534634685427389466037181894489912929128531072050648458591512137328083949316457609189942483700821772387286592151329140330041954838149584817869457055236262606315826613879557200133880064584248288543970365388585682443853185622274085116922136104743068284315766126614343079370601828190080907671654098391052241780735942680802668799607072945139408359585936190111500818128867823328338903828214952957528536847679090066792002704840610954804605361279666110098370444953390815949462688866684345019572611586111758247108669839514616667449229823192736846668926741228985331274881238112367831210113009174916022873389744544741484516726781830431336268280161808548979541312475546829881044893800031439432727207615816337364391972841299901832472174119126869987212935511727040075889457654349713115636729905984462917775031917132148273875362929658627464074588981272063202447337482048302390556364668019113117634074029205814420966850395855716925457793800982983866798454135183431999094748764694646027109824152113134147358239364575035767688632867836107796374997349568656231087465331886191907974759401379267632040201817967075249195278085569471820783083524693323890533875051931332737912558959615905769630843464852178967574263469107837550164186989830371335365606322455883966652986237512404968510176844029713828974799006325434120534039483220532163129395998328817083374642484309784300720951921453915353070447736587105172533920419183837830695028431359360956594349354542111298903655887721582265914577752153274013563130013881753367050401348470887471822042407869202962702108043492232785707665760511631250241622920268570733693139376153625421964508210874896826920181732958787286479833794198624126604913375450365499012155783627954731391149405129340951221518223060399741146243290685333222106619816483795420381842019041140737594690818895457368702439273400705882336005563589350498700243337215404164468288402560961249969751903529374377180354875025423217351951817630636890984531082450641493652679775714082667610750552194451457776939842823340603189982053637368937789158299040301681479639741983164731148420384872512416250326531509221378593433509038465439837306306726507309294513896625002101351518386804484297065270859869691727702430312184111189262711908371569342452139078167972825512544905460533003209917114769419444032507665498815003316153963828257516174921931394941271530135435700946804637096176302101803525264113276542866136597627574688625921276266159676033616836662264118714575652705036318617713519717554854901302569551690801529229332931486067277941898291804047672957494322083917150916748399298638395482793107970294141335163039166660059002235771190977025201229760039750029735942996859569817453121781358125254870482542850740205587661134104375965487604554286583387070537211420114892692242172553992592455349906906311091283822563428013507822363041749702025697989372008965551242924025701140267048209425914172079280737516412638553652642016434317785582203155289442994150338186143493252729064359677027165009201637228007461054988278400831702002114307524397272961956584555220887971308122798960417415081832513695005949686498515088653052619435774947771051447374369821534991735473140925357385820298898938342959783431563031412664753506358747904868769463691200602739007493827101220486646676027222268439613499328189247470699420421744344933983349061361805951682834679636297215658301353494633360769889452656516629404115994706810785017220088907204181952540745426659584164216540671361486891297158796385801624011035117369767159064188834294050391980792287221089545131371165927960232126861263637677024221626273746035920498981093848845984344171931422969920337083713341949888331289961105266251881481334512888957444595718986170991408181406537389119823626039471477511533079737707687738482638145345286154545275704422130389911352741526662645173106622888789176580317094234298717058620668846886149945269427487176891927587995870641407603778695060942174821913186510542995107661174733743507747695819235400022680028618824557075777057893834705005565188443691786793242668057759873219053378500205679987490317742398654317328140377332013684842631509927936442961661771591129117926053902793373096474749058943328165679199023707471095960482898881518919064663931997129557156420748661771621155694851770562772325422639976832802759522662335856943753061191476491478302080468294892579483338344085861061753210358695262395967036642794283845430046538899513355333219432033944797711214772920571652422596160753461859681752938818612965546900088930534285358070100275441738323665448629297155657619940686447467245278695325188051334143783167528130835939448779624384089274088692675686958639962168247234165195756132509657668212435946458920044606250537604698436297548816050099226980040038222385691874022144986406800877319786415348252140167161982537434098201278000155222655272057419604855567026531152171390467813407046532200706984325638606511881932695054811610599799580873648387950016755028043036079267546274297590874864232523434200997958150883661252735475353094317994812121472251024448857570920955309043183660233046109488904197439314589630193816473947315517159694570139781894726553498484085019817362995569885890287524205790132366615398246632583168919454555926942487624727424211748023765479030486305080833728655343559026352830654978171077065912657947482728520465427954387646494921660431611513286653962200099560959375023459078918799761260492324867493942328566848082502351070938149346706968227628352174064866385243107947815628320279903340190204176048568551353728745393591084968149535603111046718886385714541385079807375561516889221609597786819033046030098072441757056019667256363505329343165926946643981032432642155711439640276676091972068120507071278128431760022025519496238489516209976891657584503389503261795585997842143317349790114004900110048540918896147049269925613488706604014627982795558010553943596539545913540432585165036118274868024172353065767585015431205791215248852700192887753847221095168561978433604872550310519009606477167998272308714217696316775009449522378777626302154899178528961940045055156103457347561607654095712158531132233827417945849126294117673674076432222468714496570916937254556416661128022499359278737892458788602480046924095489261703258668493737901056211201632070549773586570648176434575822917542791808363875220918990464308778308691016061136407597133032351583511483953323472647459950083099039986557817794509082134559424513687833055716643044200585082242778439389482395590669079742805391903066709976467458130523551868397026714512958604625512140608209075918191601561953608941641563093149873227703521486941248351719751079261444101131836068040794595450759187610203634438230994575327732897151949329185916572559103016597669468947176589870027183302062049812458136937623323540103253283104187049800999692982088626031021585850593901232463870248254726611548372575032163222919684144949803466979263305100514897083964937785846349590676000931114359943852968968326721746034179124779631066379872387029212383383127210597733049727903348619616532029871853016269368488505330800925267001962082964072277081173369104081298873232095085979423577414507842745363914034303819350880340900636417455863104710744069007636139647461360353899385475958980607667943110503689376345455273198827565380428180323058108037689898129080417692319484225061848828770429165390683947770049930746317478246310890522723840673492497348803470500321157501589907659704432671117376944716729592416730692306756075874391666481794667558296247568362669655150882498371238403398184423283699577511077541577807701313820077984520750241362950332741470557425286034221871243721630084858483941720053001023048076066630023777107893168503916800568611764003495639947677862799780794300171451017227413602294913116343586885563443023005061592474965770163971019213712658903853925574147370330340162916061382924692831694973186909185369210508834805827460513328644036126248344481829271477632877205615877969801210276058105242643466803290836520092934950438061112387809159387834112662189556816706616946585023412249449820419979380676766695620425212935192968183720008545737944053246748853662738185406029945932450893815191895265120266533631216846660974853965877777634906331881209869815008632433105076992478350704565863778338169878072091902852200362402444605370125631211527125188485865219381403336043204933334102456753855582917454933525722585835034419592972194111381584830159580838214478372905810014130751901798249908944965961061017110603227006551562170746330226418966641701036992493668997702622523716486320276405140956621175314871115136924931718992057675428063044860134710825300180210374438725205717186589314619741342209131805534932612753515326819928800725067258869182931343784604288726407561628763085587941112150468730686400972107366225442467092680249093747803662768678889805216256910683857127840795120498669668618285586259183133236643883543828315547992153802458153700865735200359542136482495900438206497359694929273762324176366592202191651780791706581456210820944580826671192235230385850544061258856485741216207118637544578307598476177946328948805290521943458797563429191607773022437834644487366754653832268019294771560052576750944884764079915495905469410058458702064039896581154984060006902843560650500218436403413585806746434469408422822583141020068855903167981158610820122424649837549119285747248536085251377070410291379360128115635778172225721662370850164126776740136923461786655736083110521836747585638605779689607410574937611658581202520296684146651897608884664806368248457406273984324369501267213711897079078240065531142049755250896957477630499418984407789289543924122776042876507154652826836986875876741860585955847924998891793861965219544940091213515582400866522180107375332584675141588504125914751363619072639025406777884152691373599733683942915370873312529398059308159744590426986893033613362524829189566228326117967914887788327177001317090861334998026439989594215832205350775556485867529439415355566957093332205087883534299737956249903653706396791033760121101254687185857218609206191389076204293013080127556114274749912054169994019802353384546332029974224823905788626362748994900021080762096715662516580678100304923969431610452903047574723190833439100696687156709324551067294465132933093982868872244590731681291426824905781807861985680247394308145511761105801810221713088713554101841370046852562662910115776529339912704864085627635805874948640644301287974465332553473381612931027999973221272329476145865837556986318163064142781986059636685877421544399208934360779279266552462007350368486971231697119227756634924260932959215097517822320077657940045310367413386516999016971287987573299849721028712065956856760005832597002319266228897641772278379885880305243873982955518015956953770085625895862293324683965323866630533971024878499750041777946068280523592241024087787197131829702709427181514214813572436751320338130591067723459113207833919376527152093521387542755491609378831968552140714869066914939395571589723900932021561489865639012559333882632757852045312548982488297966231088486235745125546405380468866612024165126087504645777690929011354520762553650974645039267182639224701486182072686212626538186884422388339524251347860563722982911706479850104471929845323881064460938998413392064670851603824450012403869656410144756877555320118226106993907926929619055172235650023156505959144611724978224761083890669767710600329040466760643814198410333379835733108812394116713291147376629683979698018777256487084774146409054812009336978267027483205514012116140308088935523999089226694155077367802882970177724843286734073353141985865532528772242167388257961234062218338869220382396943115481327612914216499232479518032648549314595932189762577431542904199197594068023617802672853651383661485970224001201317060750943468507478879056843027343370441434516203043044753802115372235488498998300019465661331644770269000980776829741673184555224724658911593848038501855222549112379597082695447118353793020957256036082868020201463985129243582497009060209072471656366685188171281980026407590361517557027918883432298710211878917953747026425749981674537600530458220256180326426609354302992924116676878977321703618644022247249656163873069248970615772274640248480910208073543744154758198616654205832315858713724460853618914173285787537203868245719633568360229664489126304840151544930781367521733011097814539695228893422602009288561723674554004575567316596796484695874048648810574051910675202541367699394679703210197969016639880138523599822025539254762361095432002911035526982735394988354538066068876314117652490707271069068805397687548660920618918843769131329268860383300149687903816483713006302872396131994740934863316838137121005017886951767462416082380915796791167264439206794721173277906310988402470503732785343413820918694169791713024990910530028247360399006394976924834005026524518448798335485658322501246862429789207472683368608327604235455571464414007046614685521264856750378637769040538429487586062724880645922682418627231016813924855653261986902167980668244702338675529413294480158485763473252545597595192151808842652294493246473335882227561257390652541321269162317639030430372937353569608507149452174664496147027149208074076283966747171765065371208205456905724478024816110378714824395954095619075775699015513202546610828020334254906759519815524837539433268886175366304189460421724300611583745275093290070910362172926616561735334117534740219262087970375658290109246294534629783699757376891992254039963472634159438025833041880107883489418369380676876858884757049092223100796658772085062434790025063122288068373428629326536267149271388451246012186892443175607774205365860785804580705720218911299858383489146401933278634471595998447979496404497537178618560171991533731796228370490768909060500226866864802468777825347390890361189668508044097268694400229853433949187664348159825369807372823885402911938843557518805834615056260557418539486417578788421243527509813675658554500164435361457900386643661306425607829464924882810663947519221153867434790661806652416879051525592476453919377497700570671247349995375347000887326407328362231633023102497037043877733697095269047588283349692289006019659902092902857793597912610732652473721120911632865274415959962604147023245589830155825531161749135718069465358986448752292115594090258419063900274750817716682545083736076546714791988694241047291833431233370276328072489934760259483638103760518686329014505357473080292357300781441682992367486664285090208749404329137525501838626069373768691340173290169603248097886617306677861483126531048970745789479700106983218944711575595213321742038993843158283932613326261003310841255623687911060039726884011730538864918893840090203785519103852407970145808043808524383993416956122909062648105896553002814754773771681203465751282972754796157796166239596044337235627687359794437402309970669074139233380005385172464413615586268041056191064039507160528937231845362412613029754752039341687370793050683674089424475335606074745687650941727802518073534928840336510904811514493559020169910142424196547273518654687099117568151956603032258409156940997624581036972577498466256259214513134298353889115717463803074145203121761995956353331198530600107087899342807309883947070601137261381052092622694972348285412283293657356943284680891276155773942791807326576453471334008591448917237761742345980458302031305288858999259419285024109338607073596188329216223280745776002689535411659741405684134722325693559818128365543745074048207993283894513578230083400140076971181381000715546322155979136330346591661923118436670862844191701942240688301943349011793564026102813022409605995352410635596894494194600948196287723694789351530739072165570197127310999306536666007880941389878753200437613423194447792415822723977071318035593101406864455560472667414573815595838086380660598067265765448620176127105771440507894289883902596096566650171879299392973396000226610924248831543792453822259499984551343498154099712550663404312588555769874492916452788819803730703442699902360097717760680353627280640839536124537285198389221583781952332421578275808644419410749876642408898987991999887749320537218782072910331455464767662591756646845468468151521635063004971657413555604628437234435517835513120140848399769206946548286043076095084763235692371471030146880813287109933263338270845868598109241813373863104705088657378051946376990522449562643549253946898236617575313249269648257475713027876463662060633246518905204192437140359488089826803799228294049974591192954668510815829609653578949198025746211442528691558574593721312747116950389498303167787195251444085351705669156468983167495722251456599902761731363341434364478547925463119532823723474268153489617904767959731846314532780382312484046578271602641158820935775397127828414613186190150234156371550910159064882726186598587150056235930277996021134538532797811612004988236244860054237849798724932523303350069960390409816243666978264949663978820812492249930966860003071206083747257715040398952028285540887295200346066133537782616243706708698263428647371309122098231212798446987901761705427730810671204554997170241219163984747833436694624121519829751427146577727591775005497066132468738798071264422872108294505173577015157124517246462120474144134296001635308045115795473930180486022585878340544160901579533499096013518368447791433255182843256419534242532369776203700938257850353365469104205071684959552377508493027326178102561876032359063961952718544001347112341725831719938549154762549799591492237583541453836728069909251832248630207950041178804003439247206406535233281749765553101329180967753377809731747226670933534071740988937474044966117421036848810743593480123083403275913440607964344605073147698474658985284666663840296723606159969772554349987826396768748328793484100031841299053475826449745210326106244558243413791172216384397329470054977384012167525905002983977991295038562245407217768164664641287051870021153914937197672245576181571466922026584545635441899870933717702402034120225786804760785021060631864531171853175276720258885382346138514682306545142755655419394607611570080574389324979473979649837763139010038082752040038458936588932379819555534284544058561155070592157532674799960563304111742682422161140293552902617992102514839539027242964960944901756660631460798623638247050294285963164515665699866676773675594321392496140887600010778887874462459355701110373099899273626039686265773811003315342300935609197162172944526867265808022902054312651107459727087974368516901555508877403967497130002477901136857667991989645754774037413281948076585484937499633011940253766577014215202857889251533776951573745974315652585033356437763314153904178686552761606141818549345114867314784411773691054155124768406921826660198930071394486929075385989843345761422362213912611503054205950144638141611358072597162003844227112831352500935401129710568166782234357637358207278402901670674421983226234792383034269362088368724923420656759812949312296445487865990780097282138765843910592565510994948925500350514516933866955929229313502675518000552128669171737646508987260535862751852860037060963038486379252992917395199378175484762630702810647200264042671975212161669228639623895840227476712623902605192448141854841899100798831526920843756125967786244932705126491704116511926439750139383201540100024663054467867111180924762865187098323157920537408152691050992440484042546643137254181518709544985405466503569621323379628712140713754800416186105000667830544426326462743243597188372898321586409922093090432539516683822562855846564904507921902457925678714784771029837573170394845924966490208377330448432477411086620308105313834572739500672897488826241539972839867094299558294791899175826153229753696288289281001574103955731789267900795913427838896667908148015154891566375003809353512563112309075975434784859436597939316890053623818122744949692476305026846861235503942292201529829998390545362394327771622468287601123995457328106568777473309914152623315764806061399519476623707530308864258730121851391443968967095616619385843075353246208520668438686790982017608570401662116008756697668953958754384145466754342242237940747032776488939826825416839294744491479680604745025367229395402149106667691618377342805550110658477333794244727306148170740445449758651582659135168945633673136712775896053017697030687912329976965393353752680582552342058978169027920886067342676159362040263057735605346355972600489760509065167667760729614171241493023970560313257374420209092785795187606354797780846899802001756390274137265584003373530856567158526317644408533514250363913609403493766678332668066461495968943717039896908249210688020712925316102482671020631446181505999124619552885918243391590065684340437401196391725965885348653412884730475861899993474256782478079198476268227306809921682132820030853439095326681307638857592021508300427907277086648387113272161814694075664427542612476878886631804364027854036214760392266869792450265494425824591964423523156319158196924538848477466923766355819215705532952211917555453960310744707331380480304604306584527718540455575193049734322759137716310108827889947728799709369590921144502717675369758767461232341139993945498871996825121547528922692963361761892712434148283145479883635152808370262585282031222073233791557163773594134273819101644929504412691324127951158659607652238850126479372870399014677063657958879358306538682850262021841196953808793448471302485195304378380492952967534098727217140360376135498799646969449301676018100904895519055964976157277197436440666109323724219721021078263364546786612896076067856212414555506802412167654276930390676915489751530511197209786732827227157148516284913691788940377602580501078019117980231989550944099499320966083728322531468219371788545067626299741397806711316358590585180394405217091638468903474005535137009285462867481035846590400607520367363854808939068771160956236602139053967666070605714852220432404711006527111877284170628830404022684126247065468844217727371741436064613913965192908007271956268523910695616210048921639686927700279342908048876380846312622920426711401990887259901951029137853770425292925843776765402478765025118808156608778368374870664045378559513394651643498910811259787368618146638720578816854438219486145748328359904860346215747531900233112854555123357852623667895069681787797531172040581053996561318249949064189760729401557438715231908915067132153608245334638727958916627179855578731101553961510646918729241581371714817688190122897442049890072911265255529357296618472070402719351055620839882080348838089173388230284591282148956501646277199538114324369784261492620267636240421674424546664679063401136051343560022161321365066405861399739251847442545174675636955288536155817962366129578985633341820275351523760558426625163365934035530923439929274965018276419020703737385713106146213954107991744492685865088894632550201560826614655214794271355503872644261511689653221169156422579173569678173444034441532646071502805838117098971402856923036211850154986555525743744169763703706349208776913786813012382056675802337864739061263366328940878081514994087919067317534769246405884998689138320574253241039474430691871628458517056209208501301673244578872936738968453661001638385043934270508463333797259104194645275089053232829011690735942589392852855855660440681768128924848058193007644503367818100310544276138390642182497630739266367419750041838507496809703325155455622954004149195856417175517164301618643841037445531620124042180579641341751632584339107275383483631541661041508253942348716983949949857077831836006694009981105666554012249923826527857140801955736337741886537665753148479029054492738362914844509154420813332029938302911499862544387517308375145833505067574307603705779173786983446064811982734036551665211526699659173326108805897712751498552040028469941606740318248686173591843024170577911311733302953145388038748877654227747523159769382783778152909807100102589053390370608942121210347259908771331712543853676206045327707017298650920650584842955916618176177001243221573544022147090628920054667423072439030564822479566441510531478274875118312928531296141381663157052181686936536957818064316478517600332436790971223376378943527286194780440777064033509313671806667064246363101973439047860230968863137678862315456503983518499966031947301764242435251956754422403077546483183674862340204597410072720893058639067314213702133679690377559326517149780488555270557630433303086785912622982111979842465277886393139112781224040645720611220798127225044324130945036193227223614052191272349563813213142125050687762037346504289429031135076547330498177696207408922292483275644828659358642320894370862999628277715044191705562185625412778256125548801736353390453929473807641844576841550317732120251551722216331725225684458853607951817218184595161873179529333316860958681229523400306423863984147159496537963767684550824050541643283185552538625855522544348391789148603082791619291969239037720972816005934683534436431313321263666483156078055568518765582616678555397450104895031820694626940651275713222219494674219876324629473289162442398087333396449230276759801028012188318256646334839229330721024056787511847753314803035801060180123721205066378550278186732469082640107458284547771589092731513151827208307011999109568345435092644149306834781083397649461572127318570823034543462898869106619154947023007401130527669300851030418187399566754199224266048442467058205032464111657944619281648045375706344708685858470584516251958758962442102542516586471725387732949085451610304431699263025748322438243874205908683675855970225560329092660202500263590836691541348559769543727023234467473634612411120278556421831394507499279935306560540679136729948371300093167208738692080312799452776568832136525728532584285087790523302517241966330717369165574451893909995219997057800524190779816009331761895300069246388529764056510351569940330749072952525402230959914658394859878146515850694350573965490506048500497101710343856467312275935560537933713535956045617891646030802140969695736229753657449894515181860558655828603062803266237465596773554909418542429038167611654925893523532817083584928669713347253877305156831637252399067709048257432044277927183120568902466330512069632224252053922632962317989055623531324644540135382381249005031731152760300080856651451921437292060971321415504109277485894246276558704944579302373894412940121638128803392993256258804295832319089206116822185242879202255053113441529477390117842067138865811536208461068490864927134323960833011678574387112179971484912879943303150413246119400154630886078016014362500972321806175983455731465848038909034681204344857193826978743124102783680749745749775145334930101064691904467187810478081550408642967438903599693710797584433843712512602648593169085457411387007070905784671174683829950802375659096071118546968405296376937592730196612091383683324902810539331045006546328118848139129319327004882112867645619682964031940738361283136445629627382084459852316296033690312221823384725136839878234065537625116875685090611580232226017787404181456496798359831898914163353201780690733512068018981171202573115153398632565300126982132744615930877712966941550122199145661963797287093608972177369605213045854461775797015518428177284800697138140992507537838604725972726861847385635933274148101169680237911945175559570465454316393885561745325316822278566996376073930352875502671346007667113742454331559332100709885454593324508515684828389159837940122931743133997079040464066634404350075854827600644678003825230643510751357478820521512183426864563044336900629579898848485815019432362724210992663095779195139059059201555763551282987809674524768963825859308686358765367147303762188008557256053541381796233377068599535990114440292582325074166589245071671855906284240205742982459861322881284726120787306671813204289457629211300205710635933358706342549232312684789012141259911018254308922439235124040872535991461130904462667447738826897465521168698353316466115995649525007073987737537703914168626240724647025228915544177368098778564738874917582385245756578188971078791171714285290979705220768880195662269865352872613213773165746048632563035468254426131788801999826934229006378137716380786804935169861090264235963991701820603349657301087567548091489466902126060617702340916898550558939430404199409197785645233117583565238483212899547187435729851137043834477657261378639332551697841317742627625690032913034530288825329846188520021775748053952969763438199252210038698806658363942106063722867412912375679963252274453545767864480379726615453956971047339112850894058224011823221998409919650974906251483195958053484407214374657181820467277423360065206340316030957256428979703776813123810839843752407858204266505399551947190346861998651352580298056218482220886541386833124727228767449171969062142384214903796065727430080208414447235246927323426444108237281092124157104191241994254198538363380526787603738242868250227643128622531111629798234656121860371571876011553175102156757247346810192212650811713496077750814908152050103125107174207254678976878473532921766961354111650949750397007841851054040793038813046039443738744798773547174704775150848088502204696572764358122423093375143295674467059142203447747812383370836364565180016573660421544739838442574188354772489729644806405589080490425642277837391887087663738899480170710824638225302178951787307513251176404290037003936887891262828412819203622551108169864906541209987787660300546376213437679866676894762756490497975397259157767147592131318738765424391387149961864856741654884637225976769829053190121095692822163404493793798968991143391268834800863813218394334497254832965160218058822844915415044066324137527413750196296225936828911796140863953957389679041481518875793162069629175742705708341759871642501342439957252597774581320238786515859553644592226059509940747683033650062318460676938127140558468800615247764528991520487830355113626840412417124028393975538418873102064090939829941071736122857328689244565408930719723242145406029181526301252986153418264516388580956502735128313201954839467598187117662227759667370814709824273066981156439210332499768830847105896681308539815113403485320735046314801215178257504650673524832952600629828761409033121474754368459353440336928916976825889056624804744671495043378184564388395730100962735477258163214596722142493284150507188372100709134981836149637707351846872553702029116910992050564851648978598461951885107580024871417750970417106141286446845483830713350922652779624899951639535511098061683668338989391609051517817603698271348087367905172702251100073006764728789979338177255398767859048285713791170756259620608791738161099912075843075390472976808788753366977879567083292598767314875589465986508992927476258632976510162481160781487206762148234420488563185969246109525022558573624029959655441081032862417663121921186804396645224674330722161557811150016172530699813856386408348483266042187345751947737557314075955310651320993938191834931078644732303248556812098094470202591216811236281614530730246658667327644158338580990355338004290392684375592767569439894566877428553287229584596528042088027045112860387996481127263024108158328189246015047422431399124262579990964375156508215657083492258432432125640228767236401789944814718363934327025503176015898374851753952922417081121813253664847932523711954591234226966036409595284562696234964958013109485962184638710500125361913031679963959028999754493196503578667965471816472151773499425344805113391000559858675185191943549178303008407649471951774559656318071914888492037081575146022578310096889481727531408370387600008001094380775726065471075113162631660705868852671109094586305383526762929440056290229831372651569621129285171752249776876970700475617363697430588034717519500157573241791092216405526116840511124320351619105425176690055041050086069878140538200396109284236621472406739167316177294458093082869239157505617475118199541590766129713664921423537884984223049895376145708867131062087014103305248804908092400248814097464428928367038324324268853000236112915774267030017803713231773750068722954637951162779024124618996160061483388353674456873746969530993041290717305370205845122541806366873477444455360845114142927067302211935138990114368301020307679479594511877655463651158706432437596922117523120080135117539044484828066865069023200844483437570336730933910624505403941100546110446199979735978703548580722925313687069624001418351362112716845345103565133870162438910305233654978686418259403730524262777532153292992521424611981244780840958222968060410683680066382476946683988759405019147977338379048077866473847109952304667730939919295829723888148110218065602975148373694697882398211106893443608472070177130796687676965263920874583670922019768811334155051071811914379540903536986411271079147154598520658810559694547365560224721931499027801962433420826235253979348228264710938168551198976611702262637509399634325510233824549905150787599189073801178042472624446892720811857132766750838054653023270598125022563530795907091203949334673464154209164497081874079046969212095902952352150301012956906747664641571150978071389186651093990782348491755550894660333660029506364305089404332185426727969166303267254123786843505789476969867749203116321528904599973151125871911825755746814173892679413936719215341627648479107381091531110185414433292844363607485087425033264109502741216415773725004285635709227250906011378612939179050724596382285057909620783819532553418653208628564928389354531549577326994151545250654339454970967910982893790622002172684532303158740246917412636940367343557936395045466831168585722912462650876039133773786407278017307251040724111757297293488818423996518902059259611207576034107385708171761894653591106254327074176702891289640000264980141803509370949047736923154771698797603836995047976748374606785676947412605637135681442112461174380465142701209588930656497098312759836325134006838281455819370154252072882846456856976508494825708367480593633145506437389733174262935064114984110576143606511709327086222951322021167936577620152567716272733770062799550922788711642170582366509065059332652642015430149610802254103675208474445767358708049031631710634839040299745077690114910864734882601405228987060955684042417286776443620501921253559215818935533618569245522532809014190546723116206451857207041775417760304537958005515546726179965316453564273382551685089129685060111343526358451994392819654530128351133087892952128822432929431996806556348441368518282322237324976601488422047513998953924485130081745585937618084435311333149302147998490239238043561070426236866245935887938588846184210616486279218972217388304324411033204806346565205821537309568604102856715761892510150293272818721182039529006947882124886579670839195780534328418685785624983964244420713510726934165671407075891334072999930458526700773372485475539072666279840188542757030820428396216950708178716373454930570999437990113251530673512269865227666449560326356225067772633221748321994412420176688371673048691691627581401989436262227023420586221085795837947118183706376199817703476080421460759745563131280897432315246397655157678992272264066827907778775740725684833061442955359242874186415933864985301761609026468781703253882532364965158905719881474064755533176143250579630711434735522836662394580072209654435652542079851413136376341258675306614327284456088823248500052590316809717376302819212622524615649465583795622368277536180148674762999023035057765866866135372327344936962805848752764545132405597950666742905003007385572880867204920710774494489413523530770299173707710333634494078256740755972040886543282550988022352530058256471761466916752151369655898519039022014184133490149526914693513193370226037416571214044362859029737191600987944134266974635581881987503889006994451321469987176286720804431922193849750765216604140433299601302342471783966732702015311856027850314687640680422763277071532574784041969097609125823625992007272656672723585635528625862257801448756059749713732819761337134018390236968538048314906243642646278540190361728748184843246078090786252154002838915263596052765622912318479366390717835083143647468768588014141678302341616904242281533831859243514729515350139658344565937826964640767542075394703409466823974853759809082095509220530353757996290870332237610382382789184279699776045430705632930235376854315091833440549166234581537783411964642453469541284561991990961460533733171153255738267187256254660793194054329054110563399059882035584478719991370958849850591488993264416249041047949216466545957511988316067644426765150687470679715166826596469775270926391681978175824316756916635228618875788053644303572834150903920188795849627489696494104219604756313577082907029307549467920092211058276697897034556483593437089252633605311781068204078801534906519096409109627857877273825035460217508151992138839537324818636443885329927066559119588975796356251269821314622569923697463484173681738400696954809455259669020949643530320685391113789367595672848020979187343538192145441821526600213381258090610387198863100363188279924582194501340981750314555418729751685927185540766475671799806982980655461884138900635125986085810315454269368958106136678411944674774092336187557572643839833925335045612886594583267023558300281140024763372307822565263672703777661164944897602000545855169146805597794567729275031593200417292004417354586826080568949588637520704409396422168618648432703965247288983169718803044083671909970441512907339719512703718452591082766062662312360596742247740425554549161767221593622461383210048243754446507419519828684192657095268826207142833821178486255862286032856045022062500719161690878179371804483432333296566322082885670554010744561381350386539388315520154830274156724932601741506809758960239356688330170639613392446731600512907638595923351539461331939932589385263144749854589848734692928457201130709139142570182444149138840028014338670902699442970422583076394991716127198061988381015801296989261854871101335817441373119883705559528418831034763301812056691153625864913470132720997835574429448002825177244667384304228908624766422136237614698640412765124077015944011636169916980364017569895879306321979651412654475312324489498501557170784930254221169029430022608631062701504725531014124001880733749560007697558680515056649965480709987628398020004016051154643590949103986545474529249285588192954759600852942355432315800074920863942959876687914711914976216787531748632735737938408787406991921108204158522556720128995332051376711883979733135138915671033630801784450211220369957027482866555192243917464496875917463815873714607384718446021483450715258528700271814871956704088664493904068983825500850651544615629639742212262714637515240777172058262699518060521309758591863041717171768806760374204869335599781586490672127956038475005785891350438098494267650997694430102325656177249244889659163222180287176609585385538474800353102248438490817842723041983394501776798279068081813887207191459731624938629318180413528998608571651738641746026943004626750784610335160262737483105138026401227041793220026930060826049593176066395068286587176290458712694043951442444206015851999586847558604130661040380504069465006731350095251328414091017569789326257001734591742785704624961816219481970173523641506339669087613335723601826943766932894718273346389628740152927153689854060396189153700499004063342100935162643936281669626934420990252921917776888867309038631433173240100551255331994676605923006443099534645541783690791830981358930864645508106343163204093826097745804489590792342350625145375677258899865134721259662270645776082779869800200407431416666323329101498421079513629156407974641863182022113595565616945309006554439939139259172074366204044010294110212470056352474972622982099482864674218203877698054827774736423001710608527959897426662047531122996188416316792959837012805910239762764892687114979400948857374628943579555245051267764772325143719528133346798682010330883602861715418399398152564475864009250514649387549677942089869475799985831277674462246605723315923875165151607349812634516309527334085902377300197537141876668667467578357307568194460020746189393865512401413533614324811008846305690207802335667167932356505493370861242749594963989598562246699041149745223348791182571218652047042525224690418499674933257758491124326052267250656183063416734806466013232806547881111099701938873210981425173661355074495665454340172115757896309824979190128016316818222831236317936701854679116643365956225982970007116210187335918599903020218225632539883825290097615942963437530358426027450081444894149735398843453566785872591294374863452134130659582452210721448551946141125578535865377391902209133206650338356338808346457735821061085640947421126256020228524196445445349559461604736838316582351939765390124412837926061627340730158988787136117121415502848410362514149867701863887146355380914504676832710403637670166955011258484434615421729378592897708688737415571561019129337328997280396814883922123899750205841210704794833516709693590530579351990600418841325259830161979627048229731414674726663464894290258160567885485907716811824570792369260702741647094896792404006239907526376401722633249779884653773071872433477429338834086183868045815588044639554667968035206061158973517543734869515021477053494522315818483913033722676640921826063868359888903300137490307033288378700203483237636442224753841994586149713159848792133261190958783045562469212202091685444590601206899397313484183250550053282341374843377801964210866879746602300797423858441002672882816091080405011885996176962603853545719985106449781355294252232765284698663977670658246836626064406484276872961939750055060693590497896626720567145952244086763592607674483116169780165875772671089421089795898617397564521001714431043504923244895555153468557600970489081434254834762743976097558886783236411915284464638229873234862072836041661170527121339461851363246443755090633918968098495660338712670709412685251219098507124698413092541490871826917804039037451624279643286978959956884593848416680072109015357007120910992928535167779623820592426365771541409427983898396713092478067432961691292345004810166419829309991091913119512051892203956319055190975525929056302807045011642218665834363197863889812186447037277374699144240380460538744163500527953951345593752086558196571839059354978460885455455773410828219690749909757744879595623760375168885077862687938758574835555132263812448832733266733714202827176719279670688363345499218925308389573987954917881568955721144703306582503678428071432946043566428700626301313411570629506750531852839747914259057730058585384180807542745268239163353378429477895774856727115730891082719932205113379079557906246841417853264903431672005148074432759635167166190591892400151687752725612411153087599627586412358596224905431063512761621103175213738948269549293827483037343691227613790909748815967999628911811862200062292841304787418795420966489095970983318316748129531257395626515419334448102117038447809430052750780414352316808146761740470157032424232776765096528290557400420925678887914867266962789165552569750532655300203916080164262690877288974427554461758074959870285656826410802691351668003160444114618823531359944611147962617563395281381421487805400564562281631116216924554069679600603916333972668027792399047681410695042158858109482280449321910635076504810005755971968048615713346946435116207352523971171943214150774036656361442926120131240422728446063045527106936699781800955464696121110834603047889181639765748465069168029606980620832067640730294103652076995852024245534987578785838393870519441625314049354861308195186508220763898127653467968724727273089109022836807411057470485209509455819329180718984775982497616723458959899072107099064083470226137097419961246552253378215595581387922111004067057400025250104601668990262874579813618873886880667445503024448955245896811824112176738350278116561195769078017480855253092141855766145000288390171643414478570499175618796028342521196211609014556055019150170578559554223544642349257377790318668902860896316196362847561714222937090986234434357051335574299992181850214976836171583410427218205846008579500983861964981839395318667088144939619341926606238556077484939114116898696998647827633195772761706464708982111082179980980754877809036093128262215815044466134301377226971976748203763634978569419693096097975813462577882423058729711125907256626160603783035016523679989728057161217004080574933578113831272329146340231281457607098613390326904279858466138200781908291957915507403544130041778683578168006846002087302480968918085195461584747473673140030772069940056816317689442895348177001162220305438939656863595895611559124727913439875224145305281768241137208976416413120086086150436138099221223546233678160184640543138566596754402756308724725397073973954499612571352758039134621766908394971428907406718478722023966394980269929963511455675636875520647818834330055130282543076098387976655333737501436095031887002663220616037064310164298121312198814992570734475231075002271617401128598322060818644520501768475532001151396376749445160715872095202936451337701978865093654940208824857865051684187014507745163829655888433047800470457157099219082082453928004097356910471154404290517069359601249132164917917737853037690322364807998410388320105020477198134026814671092577205324442591583140771912581229483926454053762635303980281336430119484416351682918015179935542926857492813949824145742597232484360740013908390484752884620995570437055416112311516520937679437814008505720841801257325909380504761437882481232170212934798624720213404702016725849944596109268538611525253474555783765219996959956119249836281183971222196359648905852848877665075208430984599415623016974897751379159217501812195659682237023924717469124339036896032321807683183655664036904792794625409674604242340363181084157093345882031440811730258828767119523530382453344308532773863447136092373489596791810031142661208765479036900232394894922396590592898812881091118978325741426918628281049319740816031020278050040485784686480050341215500595624294552163818876173182425819903790468391464514043991910499620105624206099291116357996016320359152883187370796282744951317250443344194200110476331831186231795714812147145871702111426326734469000654189123406008267134939287887767134194041858326992901553228605415694808197680532223478563808596198389189362372168922340891127513054211159315187078318674685558159879134501870265925528137428063843031408062836834587856330923450098021079675456343754824311352531715374183111362549712789586226871679922575485737008520663193738048343127054273992407695240052807926750797775495916156060668385492634104363668892842305582723204681552845201856449288478445635802122212809578192729325472911674161157866465571601886309642546438924542666970483628007966797813341972326396881748389148489775362407265640684306857851675066831313403322081139928871110904004904555969889009031720340116930190624709940778571370641165352262632142204702125125995333088940280864205349437813153766566230757080142475235696810512883269587593692678155105498010677282951773830569019359288020347365098787576734495138210772079207899459166078718826471268921688466292221542609680406062348039667883545760577882227310522265288868003592225554236476707255593829014385834917923913092216245490184145369938292108312299166044207532101336066966262409981559359876870316120647683548402670984247728743690458395939998560530754994941002179837315048426783873985176392244605535143780463295512294627667687755592430899266020634567058731778080417676771205244174616772379071238936324270056438945481034411986541662529970450198581148211907284849112137948020600934884154671624220525350205892179838197444539454144678266966709240728440011164989041702327412610745961920819632497056757265509318919907385997168497457717176987665583729608927260953952108782370336972940356818029439527886915381519380076575215185775487963815454595120092057804389842524727311876891089316496999491650324513541639375080344724761096702354525144903550449430514895304078364454995535625678529710547910182063878163215380293258511297172525235609191779392313282813962474621089073456967324834164325725238285266884466449381119955027437145154698431317869551068280483404708335941409607462201876368684563375535084256858610238761307201089744761171105220104094438141027414318432731288661846017556719558326725692402298982566727601001153532196140634143902702253398518981939114911119296285337655405869732567377440817354848670988101542213772665471464469774677046466367978541831361745166103294416225766246913163036188580914698318586957149392813104290289957623657778430579237576209781068271145630639259956388831172122216545986355867047129499640608457862865391408329080273755406881357787087594239690783521308743075850076903831532415184424298916243552416552828854571706928703784291540779232524000646994206123825206961507615725033543986653304428743522116190354927198245770619862880155737962486045051688161839144328401095509999911673337933690265206444584537117449254149485771192909084069327744109345049231022838975096635516721802993792759746032168297150877712154056751264171767622731448913754811800743169335046714254369528564610571821950685106630241145857194784648901234742224545213331271795955656967987800002453373545487698310808326780824972860156141121562158001977886156001935020874097371341714239788925977594453643731357126497959408300697711419996701618086549095374741295944702486160380117868794753844135761012771161573211558463459644363019310432015763798178256069228194351770785446949088877832779905215485630006569012272191966860464087647768836149407179198506258464089071119738932415850996688024742657174963331014175021253012053189945370564623782306661468238640381075303531291322978783173767594590833408773449628161770749601412591425693969803293373925202628000128585714791845510930629506392204725787481926454257228477293774658506265203605534779148346975733861886627269834393501532651889358040002755972858451510179964402023695823444568463878338603744547193459096875094117576617462280400604207347692120898518595002585580930872918591767326374271654317043826655072939094834793377953816270405162057433616465603686084764023936044659963824554755408221792773617606807733600341063854162140493035891755552619283005639678064683039168114877174757341579812873817000359059507026443374930650264911283191197629678269070359202621832459027304916869453044998548514247297670974786248261720168957567800325376499375790851252831085462431598389833905062935669792695288958229688303901300173327962374750120007437174971986141915241176178600850250886155673741209911196753389053008699654379866077511497090648897840954812110001846883257700951979261700921713438282455120027555052460718943087619962741403529150979124368262496332176397482959735491264446758441600503171011703092624476061094609347212095677399519708847709556163971909231839302545522175941778422733533915343683711330213060751178992167494757629192197631789347057578702830182423322317416100692009725269102881304209476924728354163948264687604330608216870596265084840598699923348198712919411117262609065977108196533432885698660053177354013200572342526394758329022577501746265435892887941973443336807255656777234056113238240468027303342628010772292760642643008369297741627505246521296581883973300617310607405561298323439476305187330066180045497344469856750783546142662910276633242313280651932799540378049380163913836925922128122535797321083784890959586340652019928645129492602830628956634912183546561492335757064572569186259650083841262947237677073046840162536420826311988709046877349912086715292326235827017231806824959397668027445883819781549255245468958705027407281009394546666586152831324203510554677219552363566229033731438255503973287469146341865174095114634758998087057331124474134524343929834512703807786502068123673734260967691646757064523609533722420265520232735956101884994313640281813066660601236215419327168753176617711228752364269397435814218980591260477977360562358714277326013863384548179379937681016296984303191216839285144846323977804047144833252921271852353730615621620661204099811438386445457564926670733379353097294050397867005852328682894055813992001223027848599748676125654756886539518549841314541774554027526498729067240424609524731317126784417946791850644282491242689577026187598183667807975315773153530064898836671521717455293503550083107549837592717683583769067049215988709770693005020889951242607286255286505697243179159251837162706389354652186349186569065186737435793817372196545437107554859081255163652603986381764456072803231665365706511365114483222296339241490064581935849096200366078270708591866131992628764817932041430237960925260670066897489144120264282882394109462127101912962020650072217983096120717467849395439205915862285069832248894686247508320421544992374552595327534776898800369637745969959236156017680220789631958687619685133716062504469859391729934932686728559621405315936188070162983052615876217610665429225846793263951330163019379570069720949926756239779777185299630283454921444898207980156003876588118188814473934303605937953658047908164275057342494460120401607347263719003647533438768676198654193109532576819024573975018361366004461643950722625193231518693197704300224509412725943436772395812808565074498935163841025126150760105328072132644166039699645893519597626053302072724149049180017382523615780160441793083293189508649553130587017315070268873116208896380608221863279616271751844202859795385766252773297764599047497885854234706761590627118213489196889478969888089685696201928827672118581392724323799195770405900084041849812798242675755075346749830678005161417948473990803817091231038067645665283439088737252865158667917301548418186119131284812222631660506878615734922316465937695842856590876716944127135935066649570601975351591757725794865153839026895456940824152601064218792353464117550474182351766813533561172066681496062258571744553912768134298950456019812813775730548680177994167000127114106058775671818294493294519503715160767259324704549134975954710045832058351212542422547219054818696842035578231528874394764340295277998572323375779276563792979322218045443601387844773230509032511009446705483868578095810076067787495625103865249812731632440395276995430848486790211728317647030207907220642310090680715410804608786366253769155858272769908415029157040281002612162741949518707072152174630176873970944615958736989231122222937470609253362288592268081568343842341353731386717470736231487663825279070886429935835635059613227336967309053230944370340119706779564196020701806150614997544170794613390113905125630781064584062347464452191867241830426801773688589152424516222113214725453183213363714222326936951793914675083157420114002149790471910817109687633265633757564464445773736565581655803139218995014147521404370188221798961365512652894911711517266951371432462035735740607700015191347779242429281481368731698457625376388544480817988466636101600539333303568275282161863740207782325575894186642993104258741454243409859158488306627998405762631173312494796488346582030932246578599272786123378299380901119265819782201851416494506636399098821985319678533512652509044852575560974821357774110879788996535540697288883031371269257620573332292565936070297198539984457495582856377777551342993380404351405302192521523856833314719556613036764647591447301642592120629125333317802849246378694062014286257112123706101183623436528107032881080657407065503404391183503201937858675311821640258622127679250892024837528723472730549413943408978359865178213179840875789281630068133108640918211406491050452743552042453650877546506554303170048392755969387805248032622698400893128477739757491060014985607944707328814378865891618763814805946849138051202906714035553576550727583851399041583790633411118935690252411656129753111678570727181121058660743605047216551566109053571228351740863265222227151014838181745560576994550880815120569129184533795651742002481775905952167632184733408571052777995674772166429774209576416107704473303079144325207025355371206516408745229987240843179271618178550161717854518363407856113815365867029292424741233904392837630795291995625588463411140058537643712033978107054302081236495844781826941873974612894693394547142692249943354900602589172875186719287857667018977721936196999796715528092229191716436689984715687348281784565346425395206918885736482821694443865257981404818059782623526714342942524016876553480480196463965745342014377734077134203667050741222627878245675394622134786332207266301908103838164363859758326156425057299291624999257312753525678478337384848597872937387033143501019761123922994640924204053071283398965652543675218339843895870937501490173413758974739708971993576079103871420695324588272278053876171161803951600811837267465066531360421310309412968631606811502050018248841702286260097577413679562990986856346215204598988891203192414362376278946859505935094071859768459370445261210410643242745076863931349699771709070185901497471140993033481108535529631275581481885845454284113194461148578500015852193618239313819819937012262518068539634693629612602777434270215236719380397163396035838941867403982309805847737061034612687245486482862133052809186072420803744314595848909256521961585019905451561600041208896532455761143953537667097840613043520931464449196771915996789285834469733550810791224266705185772774368230758007082413016349148133189696423136202110700661305583380607025120390208387174067601882784724760464968753748050693378551099025138895648987873672059178128452119164954934430059182549171921633273319860558939807588483864788326789672436660426074188280603800145884282762892695745418743645767661562503699506442874819110125064801065597812789608225690073781643923860475233824704121018133065829075358535222075250448497296361639503242369937288461244138134769892818248190217132748978832984437896953149802196271347741000518749454682093028731609591893199884955799413562175704633522246950235511135612429171715793954164882869486182133209750183547284041334981675640145495841128500042988275002867376863092435377330006893967007500251521072533890519686673261432984816868455298448733639374775641404672943626996113550691694963049782793911996177257144557706880541972792459449690514170752602645732231876604685944323846812118808523827399109714354657466365755501366999090799409501972819710462383492880751724325490778455632703555990210240155181203154223050656577720079724516175867934501826032757168205493807719543627098626149381112652110789494296845425037788228436261733492525690306639685263789306282946305514353703578506159903298813762119445042299337215183530529961138460319820435219666602257433819497436379635442709179729501544674217122714084604082900506389274086195092538628590738888707230572729793594407726806552296069965269680933298360416468060547208664908856964755172108238315580497890303083151166145621934816102907064849956285525506287929379299861842755327449860259479407512806304140616607413479084074826242157952413736855992984380483001640657830384989727410907354728080577135469829471015683384683941905625757700658631325285094966091109426996856388649244953735815408372456040509795586559867080591211712428507466169263990130958207411917387458435432224634405461169982204947488025433703087031437106243214963399351488188092952412323632533590858997643709191857332776758935790677918140546642696900702383880223562581522258868635542798250876886032272916651930550232623634118572854197002282529909590997906851398364585586846649759138860860950268470062926210900402883003666132192705269910798679122977965465422471863654981160690547442282696150475435507385481039280008702167084603506153254881617551713335879074810402944297648928415723634326248852521443001516076746557116385388540628354519431687625484645043531028858331875705662884666636653041670940504198687916264889289949626682678906424646969275813939626640260917479796164274747064116948694381945085591359661400867358460191120349040121041331010392891514201695722160152812591748261056942507513407653021861883594341600074438562758395939184529327749533271385367567033615213941438138928674296011345343322291960359815021987996131129760426631815219563536090488582135447529695481994524465156868078148475728324801192784154662946127784750940980727651339741717121015482906254778338677583907035480479021109282766078763712106731509033273843977028594091686813254434029197302185193704213838618434374561023101980219815487582948266379729875952261773621646814490269938354236923902238947229916690916169731588617118114292888656345559252846617653603391882393385463184259339394611080494483132110699873871614254726410238065375759171169945412828968304830993555001480910663839475685895129296952951489670944324363445821749692580790639188659140415706363411046964485463934493460704703348307283342337074567444559517537059573301701723961708791759342502048855407408698160251014081416489987235119180980741204137101335834388199001401982753050523043041021509702239369207417184304581801029235859166784217240751501803283328894847514479743310806813941265612914414712167194711282947683523303920216408373859177678989096191207258474199761818415520560628927084275617661216166693927777806168039549634475813149468513131358585591464197844702261635104868045577690758355326310505814458735253466542525378742419482196838844278691226537223737243014924810476007491812182971626668203140828588477309496313009987734505329813195416202137520368021716552545581871646447938947675313359506110807115787959390007713913306312538479152469774512690653981354423329853077500619428150327976584344112756613635436264981943071849699731281885845857098603518410989601494043061898824103636620134467546661336071983665724396290760146539975409874611812802363186342495719739995155945982569198991194389852289579991927097448312206253792460181160054735286590894411873722859365834079406510300663712078309596820900180011983340355396519636750689553316158345206887515118721864019979414186563343682578377747995943657980813240383602649638552219139811863118733908907383233955886065271699830931622607207669832093548190302379021247924459042220346650330864310927602504461120768977007939077625867297662115932243238056840484029051748316307925331101259135268422767016175069976325920591580438252459215399512341387900633333960937090034261151165453896231311394230410308424669441951054304666988934910523837069833509845065395541407302884385097170637295322007449796665820891820050542200001503200223611967376825462509561955292788172349529885873857443441871209405830001505801573395375287158485537163752553535050351197909029218981384520398692336152557533584775969695079336507536450382243611622007271067075765224708962213551333779359860838037653080008652194906942572508459174167659584330292986478233178695041019194446375301170571203672537808661865548274482787617573428144334300284888280970591108471212614230669669778023250135653942264948619293484345033475229099178518511401081152385316924959883730794978812196566053388331096687076513030021284027314169842315640879959848058159271769567208770990597242762232488354215177048749875687865045296195339538889754080110631136915668968890731030157347634034384732073474475039011520023891929748140226912787787898654953932163905879471932977962280527460717603100337025948548222139711848441645157813686365937071165439455937829816682644124315731073456142435827500999523245580589031483914283782522596851642544107935322137733695415252891198253793936999428214829087161354951401106948386307468087744357465039403455956097563172675696302845619293634727531780730359774398253338944143732685198163569450924879431471056467753076694549833695255405980588311334379497198777972865409636639732342405735710248225659206907349430341023314151630909373908258264959547688146465014611000020132882782185006216183652637308253277975957918233665400177520470018561363786875431079963730403915835605073412891448399747860677549259362676313367116369038856723958219782047517287983720362362256549567800696931575090233099512145698880320700363379841687567467304890262725297496757705168197223555800201536726169500694869738781219314170845345689529237480044318258704541215343011348471439202017331145874693245981624720748600908654201976686671945463182589726137680391498277455104109213716049662928341049107602594553075168242500787932185862573330975482724792470807235946210128694810445283570237208777341831026093378031783013493122109363887051661514544466284919254814948630432341519189511876877695186437029325492774656567594871485953337017357600452252619562276439201648404193070607628516253521735343578804604095505266324509662836362120667714327970922322864656078588471417749182243958539070898124550820098704016323036584350598381511950213114460521020909243879778670468588146263467839906723517890705050100643285292507379768250831276173120970989566439289802155203341255632666862099111539010164515648864786720648701654866328894227474117204798324120299807627342190741229773535086704739310342387155266703766113719160773625943847229293610019127558069834099708770069761219220980938502635113664858493527031417872486057356662814325695698327271067639800147491310406011090192236564246781257487310159606538143670045247753047285078789475922319011933008904801261959376667265742413107475559676760205214304789776547991126252868348416229215967057155589145415495302509649876963956311623171124393016546477318636309718584997922932837946786494762975198916624841569223942565309671237621005683226252177388145417957590691863196892924508536317180500317287481987414876828646416424222985613084094251768287249656626771375841120977543390001049232851110589277611287357087363928452365844310304839082901296427026298250433721782786650657701233237549770812526225544991160416229121684844634567578903575412341629866546281386270486895067246482102562179192965972647238586639523722747678295620776815679840708823012933494170635928362639285238942712751241121036455963346317075685029601574543551082842032010616146394310112282280978243419002994804093232660548306628051283118917831898246020921012084186089194233879894589257185313455391876849845420223236885531504079978779359943200628148568751756565766161299516788244142024475859243089873332544509385841796300458812516753926918127726071590614417730048595386704627092113535207091805370220874533691043982363130869542300792152842045069694083378937709484169135413079248102835088658208539495881224400588209719257737329615114798896471337645750094222623196188433587314592616012631192756396349904737262353795147205573522044097289871602705874702061074847581042954963186817221364477394738572097382202802068218868541599636628395224353518747591050721811045579227189259159732028232037326135562170133551275932284411858594143169736829279186227930236490204381493103015118827698603150583141389193274126261013357496832991652535669491138093897042752637873969693433171517259024910808180938722587843439692072443004478371585358895919595486359834595077591070516468134318843209475424269332302901871621038078642831492798804203407683696164087005741828686342271814027153220242651656547643436882010167230117588141143730606600976113273602369329571846374734905343377822799478912704604004873313765659261972892006694516418400606917668443673058250658242776931186650624576533421890924019077656182883862943744875890822845931590549849133940856019655113618842498818534340838906291898525611098652454723056009641262293492817712595173464017943919269017150826513167133160315197557031306751725282339922417556921734399987155962200933115655300282254282095385772374138567730098238562951362540150431808373636459707527232746047131535320666450957624050249801697355522699710764231761578935636046206448682992066013757819735185900215266529942530720441626497558763784427774398269702236183816970673597884514020743363345515084090841902567392371627735089645893544849255895122602752274158905757065001766227341542942507365644986540022621856461714097782158543169340161461546268056171877044632210154326856709983906689106699452312787890430287200922422924595625258011892648501081185356112098601001499160136660153290729710650614435464946516184611611238097206960936674155405391169826329493510993126946924180533393363217073772933528219935209537767332466875159044531399706977225463449903365379600455135183028496756467024979578255390487326104874325965755404079217069430779621809538442546725531073099353406738973504574956998729638893677180608508789793617452880164785092395605793106930128691242677423923337054156875666857935023134045785021180852380935290812116711955594849853397212339914718215832602475276814165643293448602797150331522794786547475541119827043619665969201730657976981424249479129585583772674127256922810948835332188073316980777866395520263351635360195579549678780414279333819468165184514517036735325911152601969170703202680330492514540334320948791024443845435667630874770789313374335914660172372914317330359063416591014328610367878190247915676338470388107149060430435432153911583167431769296475068011259005048485575993875251387219414478073861782246702669108216071572316320247152264171544612589615606947828239199396125830913768430664574846469420394388088825552752607116988726650753451478644175640396732949271834338129785020496638436931485800458145962129208273961005204367285196165593784681196353136722778043642490023342779361235968423055845690976131121747747508696838169474327148397941501632884374030196633913703232441873176075232476295129762991736152755994953129865008206528306040484751310531706592362426777035837583428258811712925096506564894159651985309579957009821780263499464612443545604342372330186002573370946502935875465468729348601352777040582897484002917981623730832502562977670397837884782467453848171132095216451404555892815947706649890038182875105321610196985377459275669172707899484381201282991863481497597740263804582549173931232814478356739634437135053603500677804687605436283451717929220861039070928329995142214847502813562564699813568959583367442947297758355476550573178727306301045107849108016949062085210853254639662296703712623089925956690536098142924075053721167605273259426490677857504123328220886880191023156553592358179974013123231339053858974622924309585438160207817401404543152841272303402044358396141169052981408190703426330842978843755852293019330786967371675696261050844917632317742340200720947842480301452289293317171798600869746890310636135404436025932656183323622437356617894139194921289473535041317130621789807167173155779774869641521423774348930939925231352742448104832538465380532110163979755229543665979301488332834186218943150123982738204535558114181873833482669280988854171492061575256239566575115952334479924449381650451564168721199868364578411973599285058638178006396187648796950301161819029798674655064783877000688673463632417468669324439520765737577233621200978720044981660618065947382618605760293815750521320072570036551534739977862877623755644769275653081946419839709927223812271056290105658576917408768363895942123486391889246042624006887174093931949236157019921723165631736240737056532625460039656302691200851826535705736147309238736179691633582342749739205894236276933611610492337907105317614457944003414286249578275559177413301723603426036661178173398473126514120388891033028017973772142474380611541612720218960763465603556999223009341398350245499252594126728583495550491567183665436768651565682064797623032455878210585509190454782843934654884734252012655058267560781329819979024471120070288038533272222734950067014279296644499055983669026541281656408722337120342399534167606015434742085500717678713833806618193638115288709957520975594992244129573012368814968316273179333062293006269214531925598540581143967248711693588116286829219209284382737044159705757719772102800558047432883480913709130755657438896300015550540577440788075120582043515217329989519940164435485300311056004663193785546518012460156343142835823859558419387014056016388256828486924357900949454324893860287268745865979800380329504346773549224225321526540695182207809816870971596860817336202404180000042198085532374981821761366540855299311755936777830582587058142668718668473809740245856898138427403371286126250278751431193082976306621600954654082539942951865615010060549427933161710005038422279487027269101742362899248020983003077570908301600040994915616037617046774136116091125424812533001566988633089890462888392099153113195581579752775387957769720068327218942482096562301320838739170262416118534533692163510933018296498718072613062976332167394312486055445305928242509580238005511682117538162003798317192710260644602171459926479266407386684075659170826257061777310123272011125349602312119021612092179956663153141797535470262297627542622957947249022275853703362942100310275819699421438979306729503463173025270781672622662635809582527803207229953754084292186484716501975798726432499384372101500532474344385002339063139595855525940486044033577225853538650573852919364005812454815630897154311646153832625608082921494107703045017908368649592392317157378445713883095162218855924136282208032074140511612880737067638334706422882149548393993093390322622928465597249587225776982726263794943473040510457297793946826568054810470966153544347077256570978547748706221611298228985181810747196957828975429567035289358888697128425430551929117205243381642829601858591798080303285573366850124855325786699293846592498310126218527274511259778477053752089411593242217713842628479330265714383784073578583733439524663560283935801249041223925890570627010017061498619668109930737727193912461765946466181255271615827944988751653792208019644455149590245614707130161272433458725764878415954939961717205413569076208209944099381159245745977463953465299493373331094227285379824924201851884278868249541398643462375087644509644200150427968079872798354923937530915238054916534929481703328612427687431162703569604445080971619012403577233154053067600900095690567572067630488321937089136668256894519007513754561541102963370609957699130834097338051208041367947571165032374875744994635548940878634481728308510301047722360325156787881499649484146025665155126984464655469584575411396574108154080939359504075561174952691688005622738561413408702991324175508203233413246217804670833320778346320031527411945324818991133008548469555952540688232986679552918730679984800828782383863148729613519079547399133298170851633555820477905214186726861011995084645398925194278669679724567242225593623039923812967755721219182589108978676144939067268038777212319607902858204769148711275472726226593579439439543559086480679301340826818876724751127668785848921103494009376813703077309426732809973380866780176384506530292018836986932701714971213705041126323025059974096585697583244656533398173302210730810771872569004695392445541085111276936726877404177503880708963271129570487495934197147929631019222829701147954011248982953436203613284038015818842972806279496226094094876777541120056714699011570279445873722057494657773027596741378168155572042072438622607945383520417846809267876738005203984335707941483942181335454611293098020473720299685594612768155175362904724457797508083886532253019133027850382002322185390131068615535084103876260713708263783430479080715259835889572228926170332725952104252054482580735414204926874116153931785526797336375530512076152321279520634716098225802455057839227481517431207035102387566968223083669877990234822384731870327630758393822523339366392187183491160092382629262314892591782546966071690416995851228717785028261256179985487160846065297699974828356997980733031059436986860860572193328690175771194692823026961139010393804780702302905214890347097176975605900911868546566808270631094076473318232422272422975240863694251245963695958296683006204884837582804713627856234737253104535206300470041842667643528418050263106555455276878458166217568856772847628191196547706976590417558187838508255979224028110550910393413916364995879257025781455289077778091501880292674028428085822674682946566309545759614575694314298704234067361123665139160745438341508238358688241131478494512950432417973504186383224948504611063182097062444188378856756852481897650994172915728289754514465889493730327153307059685644387451075678184907344578453266279544968467348626323801369743452585666797024571812741260245429179428259835000262970750428697909505158289934096444233036516371930671060387083584888633304319364513765117867601649821340170221896329128570681541442132126167199219444661983953810810149695862228183841175841469262333254525926897376171108212037589360082074866207507646130440718958508353093596420862939632071784855230344727324009310716293715619004189416184016906173941911493157124498921653518174275736642612541416244062512395444767020243312534659179005889713043046828670203005262492855239352163752611865136395224143471417972128792513460869115398826341112979470647340751050689505230685343403101709096475051599787002445103342244376750769936569852396590818184370941239283444071097763424530913040398668375764566260807450542279628834104134957632910307465914717095388367966133335180385681515971167535903141501015286324241488872617548206654308263627602218558999301851124909609993033623858137346986858947877008725284414497887745559019045288042451160132123145169444444817712778275036090560715427376474517841549175627972495020683618794867619169933812917674085054879475112631818299756962728846845241028363934052750780763809509894020247158855959116366987753755185539996733370844583020745873276913862701408758050540718157837689995302480474694306453248868689707480315576409849100207499895814559963228233837390094922751014230035024167660717442323914643156888046252518939223885710574812164728742821672333104662575427364675149024991883759739170586026677437984930437437878169001990081887174418492743704168043062922895152780305565227021354587033714173945149807289160671809785275563618861277369873150211091089057795985485808251741774441795256281487846598836595677080619003981925625937002961039130437407473010035045331809189431913080209015835091745705750546664658810605723152790280959850853768448558875346919356816702999014016193071642134125313517780279292266389980575965761055266243136914348334981403787201249815825586899247509089983615449784454085270834045372344408975069298758305333203957293341166846617155591821729289229436346658837656620704334425391099520623862987414491707434481180680485545370570796129481158428408221776437916646808291071276614912706203450464889484999856426419047671041655151510653036339852880000987132618298999329074843674766209947159576895040222899388148366865398600401708865032867002334703067242913768512299000361988008592109280712772249946862321269327515127555383484146408913183556339788297493292191322914512175114336856230485502486729168834380175202239321985228147762964497331397338030794369552535620487154487009907403676477368691605380188086961979888796371022231325594510205537756011546050558904725297723072415671762468751063912200148425846124941008895663208297929002948067962056813459387666316443329754725040468153557738926453990254363957512120887397303319872182877242842220008934709621932331018435628503272622925603040808007630983544216628488656197585498338584509240567252472014344638615812719298156391997737127538923041106554652574467526912031327843227312048266777768465578270507224474324077621272587170847652331680523677715269338924788496127644089998894730958302082645385159994450166733366442084904936680354994207290347952795242302565858223312017022480231177366308725834635770055482021281263682083619615121574707155972948458059290334304095443897889541046989937050894960052644858771266431856637418217666618590564883500641205102205257931952034931586796576123487483053940013670915134915414996159228666903222269196352429419649355639660101098407422363231103908296940516539405191030832392789439434327804105056789177280417784646238345341475620420514336511041648139069679463238085439108937406036355951339884138206068216020528992191620759374784213811860849115481757072726695019504114240764139973785187186212000767653122446336571706445126426855435587778697565921180125041559025138180999100428953690556373203166481263248392844613976148000606953102023207292650458319472086250110099733619983055843447787002325996565137876804523655240282238449436419244090307566569168998282918313267977244499988025783449440044749874529005891413898317703254559749482970613705124597017980070609328590003177366553389480282924125479468786483568788366843819762087333791531681255457292299733926894370815429643356039097672911220633009981243477987584227732265022921426285054831059558580019839218033136393020927921301541282187257290245045858859689455820781904519239419766686998537223272941040821482499861868588321313404819983131636310706367088319502191601507626580454191751160202853579209158694153531208935986689054244417071525933605929234575336310029446723687308870288304877284720185772190596272101548749704488373857220985969682335595317857636966446914396263728525633234620486690723435777062631198285675201280393607999541767302181303878973700403082213850790413521945244063166404748054294548828641083708428673201758862915484314655603825907499789872176408438710288617468187859001511538703875186950202311945020772640791521840052567636666960955518012633026464526468492393389660830885136085829684129995639925320419516774895231487252616225939401138397784145324771314071261639863547677966082681093728375657769039378512413072590098301128315282865066117192551081020584891783118151449576320797417296221708031239224436622564918815551125538606504776744320016448513485162539440458811842495541166412504178124080943094266760776418907331391511514212710212750042023801037864422434646185739377731636642258302457858567801289989505933890809284935365563928453670818360867461770267781504931132633949231922922681152089240254309125145574779153390255673788332801911581700984167115893511763868131774117320389772767681577305194357932983951777833981182185260983699227927846830474128723075038249834108739657390397585330045380203578062037330201780728903465850167076616164081599237591143597811409764088650315659417648424381164968445166537815973112113860729313644622490610293096940196424878467923574625019926622713716962476616541979113349995967752020102022216601277455787607339163545818803071089340031670381331110574761791708124606929224565544421894478939548413746473280384479563876147047321475849008561677189689031206508886389561415728444427600412169532204452321361659428189514600056497393256691907137174577523324385819947585522447823387991360490680926184910428245113233293566155943907211374863020662884652650798765743088020183962905494389129735659106454122295729328623974725870385929951410105386139473382985855969164958694164365107076705069624455174632997587844334683869418930863810612186045544998502006955365730021538121475723440937964035893497337219477079927623449348931605914001141016961276044253456011159643884196531865553346275748618170219181458709180424648773564652226715319770595520191359968345645822328337934918511288407995722801828726652348087613240395181663164605041222940736368411012258923678042542831608435913237908007238554464987864571392030361862531605651856652440843193854505631352826255301412623451004950660502116888099199762095336079492348300014583347179347551861385299084570894929967574775948371040953620777296698716207799608530977261624143231243339354886774676372242561427424183597619400994086594406752839554859479941641648597250994899659049541508670265671537541026024989568175488651013005209318005880285917014508713779447365748909783749048816631653932150221514264318808638368001679896140760196347074196953351012424684369438272193479355465534313645406448324271825505125844382738597793584041781873858193243788511521589796988521545383315064553284464647795941878891024086541852951080725886140541770831529140973749822614798475258570875329299708565277427095812165009382111434192629391476480353155690054626158895782756545468237479758992887332808478283410272762635016051309793616155463085102161817607915911370279666536452805589311754916324711268571638183453397533238739932237311007187220101360223872010141133848842898146625119415362789734076324825935298024896287024129937885967432229282530190384015584518084081081217022839645629167655605813984479186219907011634618559277533551590913498392738123986108846027244094889086421660845430121107158513491262995032424102159491992855895657765384543397960511309915603940298143572884338380492134425723509408867765899882435723778432287782574188464628701959458974544383184861101903786724194664880663909035067734028585746617028226753550732814574963483412057989516059909356017005842746635954553814932977940794408947392420151246017782257237195082424185454619549319569189581005067329144512645223186895116924824401571600391934523387415934121219761448576648448387808743167027299646539981313974836117916451579907424298300557277519008747714130446114310217429497396902035907163620431316209471699247003112197078678373065320055658556112054673798215389452169179327098298774130581667991694486748227903469222602853994552842908698918987279730026168535950000995592753475241718360399253280162012153547113917908911219545678397291720841466111750045999896158698358470416814090629002415732082193799320639489838763690228796239684754923833941499798594463848740788203772666388793061581234493125287257709517131211095590859999239297905069244207478999384078886939041812414110572768866194301697057006249253490175314743374220838388402795497918858337150206608519800513303566254090631450697935231305539271584032244656425860239639298540523374078056391328074314752725395610393865781499833702269180281068914811114420772986742511622174566825797388102656869230405969883942264048728519698416797217925584375226475095383931212620790117004023615610245220499848331824023590467616903564143586711326553255240958467165516928479240235063282043752339430843684299916973897341245383132064782533659671486680099644542571831038396672517670685696555522385790051681278204841851355413845866730156347149577512755243641043230968411321680523526987390071590518172520242352048837216541567874513090689665763416233064399800683288114971206204484943814357670136896696691157660244572267141637532637186069391838847556412943924847512355805485092115189647900607470146980273730721902064433753287297248614947388719491176591323443963122268655627207126705839689053576053156023912612085560028715285381592828556722342237360549517981073965714602929008547599221693285320039180892211119260882476204966589427750361003367621183923147895692387061525133397443517979648928476872869839001838167468968304000812982516535547351101222894452994784911190134403778358846987621303995418556312834948964891532932025753864511299687489338880123327688288680538119413219537820048887371037526837248241845946227303992186062923077045674877574064654703817021445145984331038727772017404394505616628809527653809036189194756087904342980159313475689955141418907100132860506553190125910499277656689844763258281705244219988203570424435446367537210674847498972016664351574836510998996916212168149171613323999380167152499525298408047321655504772639514351361219990807326668472386729555599476479555442238863845085738726602948021650360914851919019115894135419324665381161052638336364984743461365387111783309147470541104045594353727640123049874912196517922205869746610549922775242181241991936876796096645530271869121831986725584830479433273648263366867525969958743528839380833043619321754032395479736911510764924725487332845769719889453406694722248806145149854626719561730161235692444143528072527291858467843999182163474151346875186845814946260231139947210278773360120155292360251095817988945956299360764155524152772349528581847775355186415186058421923213720508047306845377816687348566920573958528312144479992407084530194568761045801225556837152475101300390286928872719924216353439754739114587711300745755002230103976705175094215611261745942054722372495112957478905603839899508525287885963787779533339601266175331536334734886882246497126295672803995313074663032455533090387671569660896449133430412489798562766146179499216230692605983341535658244864741831229279935746366325342758678936641287367301653361125974461817092902966330563296517605271435258536300699273500582288047746319285155925089815343191036743289465780142849887904806904712615429446583162171253074772823480561193191872770765784017822016970301838495909144906985257717742638551391174004614958625693748726636208791262922995360787562174794194344371842898016088046953672872550774281691945970924407680666242354791001415356766839276360035687693968127613188377219987050385057178917562053134654186543092119364693128461964992602734397221874018882216016051362567848215559521604905602587738687335258542551655543224291148848878087387401259636644542486748851186213152525462722491658949469834538551597379582474954696350773038356907857999822137327931538876938542559065791412742172876405398314532728125571741427252044189116581081006228380105780402637773251739647887584101258886987496763885056222951217591488570268569610812425282989937448673567461824546228040391676039693125081888835653124408593301434085122914375077504416557713041112276997313338867795381584464892453499424548885824027995747789177424306571147964506683951830358199387846515190827729511132310156742792805677654318910241913178886096943663106113507983722689143061946059864027361094878610742460682742452596858120715061491077970688533789333909378560669948711707726739557717472356672683248862831783256221239307315434408300136522861847213543117236784406141237096672406077466017360058291325219637455498282824624480625357328669242066541091503138850104475389915042392391463851689907447980505051968766352550858674770462387902863918011640584285888866942627312975804781645763347579829105246548821770668060713744020134446709295902960211797567860413495060601599735913537230904138574642086060585519405576954013514921712757748383563571552724529737661961241443840020669209044879713492441744267855994861326447477659424117896980722150994702496125185689576082910189171562406726688998399628539699349699104630745415889023991777303049313037776844934466015678478393878123816603721457684477817706416355962622434628472497638636880583517812931904516114443553215030570969031088352446515356140877623098344415003643349527633378891035511161004927021563303236600036212610084789182490118581013253570282793296079827396077045970333353091808674216433032242843128886036715205938187474566182503785572937214522182052320568672578580366380294748675998232276918935888445060474779336441737715747878748256678230938227851797894719656524490998113029728458195636710464109245214286157880157605264964691469757753356089313311902530715375827930537562452951436483606261555797956897583032675030262573569096608926856145821158252606837961882228468478440167374160950989922051031918126989226863923049915560389251071188051609534334831651428773522617883018239349156865625986455255523445144820444584719591164223381119412152496358598442684028583528457614996566253816113087120655545303337775926960954604280903898873695392851895932384410265665037555402300276301241969663455516220151598938435223077738171123446893057492572564868669737516526008121905179841198826526654643320996884515998415187736583193807876203976916776595717461176027836411874169832239288759956663236525839596164754323794230077257545162763419950626236862222959684197091255328381315913233499461119651332538911507246413715996194122368073894525657344406493645183977100903658400918157774337761623144048715972869628782119124553243622361839939737182567898514238748649497986632597880293813545790782231272950117223876232629713286852668695816023838729553957235811037976116086696297931077520365263646362311068861158877183879175476161584172351891128657457423732673869137894004100673407866604578033178533854615650405328210502310023557173370709947107869950034826675543519194890218065852590678876378877603332169511620749813988467559404213638676260672137386036212500706850414055085331120393341355427817040937640136466231430932658748672668625061520747116145052695768620612701887838965093032798890241752744489001824154493875854850413335868803160338717023932502289341678537821422092887351127917357993468384814661119984602794645621366460448885388140576963327954000264094002329385421492321147604277774108814304506338746355947231312255417972734841938612592508429652431442423937031450485563841448438517614733670869719581058576598340066101697515258652025666516149933462193278001621802590456289758378595711870795868147216878345093011171210415032051102604875372837522306728694421736350105365282459431734067205788083421629353971566914702235907365394816390155262900636789971571372096756162499091520862519827777738980106457415988483229248564183510441270569595643339516035011262534736299495866061903600580907414509784736070227029244677385072343010081918739085552107076205114406625623219000902876910396515264413585472510095174702589414231471019243980269656801933339828545997368545444572760669706475804209779017327003296039725356809225065670693167873300914884863363831531727800733287499562719506581043572297193018084184490906092218625037494799065625091893830993055044979892185128561635732957420595917908938192525626299438615456697577605843006607916183818614857756094997676060815100415362358030108353377397950333661945999137714489007571562201210365153433008968146047111258423828336620420652858034810884803372445374927230772884920366346651028580556506788342566067319128905644747883754168043624129970472487174294516032443083713983941610536555423198369314742058633103216759284001913713642074772036588529669922170213275527913807059395984397930413876621997639518184329480391493432205583217895124178405349363672502314131988735739672007143618086675726911791021818109332769714164661208727802728299318011628008759024920544846596897212847876750873103753716687501898576198214894089785345159124188663408706855168752055577621328193890597133586860869408633477510025660031921814143745730480511124484103003910315772335984303418138470392411107072684532313019618658542044402091644147038151589425654617053487220520046462384956928457913116327226781984261772327134131670434242661710922961148306357962103747881857793474011060999654695702831172424356060129871671290248853375036838333628992321537880603392202579815214521425609715666038450549035130859143309132958799958582468097477242818795656495618840477539571628907411066945525878053264233168222351134833945021239297908515654861471775063447506164007995716825699895895947533054814730123130132159029488058295266918751953711067990714290393960324140120607805056745649713865564850526289534493165265174160381423010990266891174441908189134639911465885991448861926253282317433895780446196773807780679748337802132093065316369453773785402145042291524308608246347685063803841791377073410838329472918732872371689881240026074213756197595843768864641037210164778941918610170221921469785524378333570076260548635912668564672735108302118541007051898921095738372892625681715933619909657123375297511608519912041144129782934006795701203643888412566751751016144612048042875023834802805525368672582146157942141898727575655123902077889181086286643459316148595497758526304885933628843170140603547919735820466655571507888651396117122450828664684363797007624625791842014610286474127775674864605834273029111239853284531433496290950863073452416887169769143696812423088174909008968492776221060937030347521199662769884477899192434865348187697795029798379476486528306109170943894261157350644477718589801020812747164998396479478804298244955627675099635083161658498093155096036620113096682002470351805310283791421983979237247341882042711825192359323789339437361128655472723592362046634295496922564097641504296525828490829293910346113111500006337775083630948462595485288104868121478480377189203928442098950423887084354606410388721736063561293271276860679006243328122440255344336249310602669519907096108702669031058268433945879077501381770841396264801474622022378091614308338704972826802689295767358120165147647358135949864126983768352428739907710206007943537916285534152065821589862434393982846187501533445564267458396459536286894175692880412625440742945184564114105980003465102051992639353723917307560097535019545042437289857840549509661485176473969043455524870203025910264846647127391463705955228439567732133885161786798592069151727402006945177217352254962149612111446073254009750943617539111137491777570045797106114165794577439563239718790965187123306170482401101728115940420056828101151475368564664087050076369175652849646988949722097756409797898969023158641740804037041916679127230748440596965711827813641472200731559762127875142852325138696398509330192809743805646684082532866003612024552185782541491653755658770732578275947906302488224277593295411200272286303448642986451188660392833803666331861662641948003313481410258070470617039375547355121022105694202875239718873665474328449264605275762609168680975814666470219201897904978900278023945937071556734037364466280084888523344517598832560137265189310034125848392722665368488984844907454031528769368249228644068027470749245211630191009784601931501664749772784562803000964719442989404670256244208823286749893175198762184024341308457964333691486896813078564681780718268420359127408069179046220806123935879401036501770608397125947615422807716618136322626823195020709357734742789420277856518661513193233385690940893823493899786876771193208212401618570352231027167736026230837732915963931176544054347423443120945798026538876112742302416250756547983516456252454728441562530103861800314093152257526544523430472198933649048239407393811480817387679213238783039404805534217329346211401491449603847388038706522685400274452431091515798581007888437383250218755429516102869943197050216938300782275429680581530114780074325199506790678096133559635384141978645973411461841483194081082282036790063155044198035507840482251142786203381041597828975837387150546279138590768405685631508853008212519873228931260480477229606583990713568402706852635483313392545157787757481647425628341318486778160583345794231841903917282958829695008064388045764699836919034024209416628612170262769507720456474607480413777139537839568261323142760352149189225340869071912417633649517401473494496012058809386430087091810980247747180762319061246916688276532863243199756565265617932865507201483292061286239430338068746706145088897198110743821585602479246405196470729772953816397644100339115184441250342396383585031772007817676468494143618760454735923143084255308941561794269128089426670619593292171544029051263063750408044844116019272119847772863898004199099090463083623200741396186147205642815577093189837813584363783618156470451534691572402566244217125904967387073056457839740002469677933892185784381446084789894774995363044455172813806713724080268956858944356787531915459767953294234502945227233759604725570406245767250732625091366393968406455647292849436773478035126846334292944863039106197607844991130249149581347861093537980823857764938649000168764380647282452135685575705813095606345745627465984685324828542375364540529625783387327787571789216628801046997498037260187534310596792971252610967172088194248664216569873153698609941562254600840204708511453539737751199949288346358781065764063004261395766911568535354407778128434703277723304109807835788474136162340700126026459023984825642073327242064412536201342601500712761998021544564342304044396847581573577567783688451463646290201358317786379427986032324635067573142998781373498404867638122745854493350363732426006697696467110030579013676596924848789074027667461626562703322004731366788157611663443368455661115817963195780348510855296842034196387486145840108113181857409284657268514316386597166286050963674116208495694635464977449915957267022211807101219026817258294445732388971577678238699648353633317272953193162412933971938583127631007698871127767691852800081728145136997264997841352496418505688103000661290267083125370874585575840354986738066114811033191168194903751388874313387914579437018935448357409916467319740219389601712953008386337212386927699616223863251442668026719186268741667692943704156665340934144828683187302441031665355410758345905288415291041955627929100912833637527978816158218788547136063029932212770669706345798481726340211935407998324521573645825831875021297212080235260971764857573103657723175364800058543339957373858598451782744331527833058125713839568615225348485692231480188636130935575845046817920361627344384096950870817770066987415726681637577559555204402348588649537166732745347697491996163604679421119698397080305761809567846372053224852776921362774274593592384292173654551066897532112370545968965927205657093044874838146346369778716094542336752383629050386327853500075473558345299092680885745506023698315124568533050510641798482140789156132368117096229248768561487023233138279241199581369825402722039872814975913416168866225251103074610082243043415083511380135647473390828178833641766834154630013549913626701031543613419692761922080569428793093478595419783405410105851821724978295578796081635549471456198937782099540566954218527336606784676669455301409648816795219575925669339049193683693400403599037221531066654047196764005729991619602458673819689535551462085933491177527098822396718526384811276516033837506793760845558645070557945758843801559696341454451271978645949569800869642241090776608079987793936661866967413938261594328729954289401406284345864444376785913359105725802282315805580052570467118948612785893837515964847672033114013668842210884629270811836814644158087705937981417100422734392148044371959006999408455118456893644774973825208003988402320438062624230074040345050088863100306930539369498038590871043592508718962401669006729358469467604893741746964029708103352979540244043708549195221053334597414980348125625617220293315437623914350183177292073545763333329230036372433022458338667157870768739490539072124437440168116320036961054502880538811943693637670016474405471944518632930671899030115606037895521037886011319002263680978444790656289196776796238203605679624334593139145914011158289375661993929916355279274453048401688122627586737205683546622327297674685843114484059243595323467748284657230103358160186258836522194860334311289460864163978524718713703164551720146247806865595834967213697381796380211912651908433084814465117220145704713529639115825963331102045710513717328102589680206874916423437454778122565116855580411599129355702901841918944301552391434854427237152668791067404164074245084251747431325108224961484158730151278915946654583649251477287727536261650707443301077194998360062617458955439636689558324122816166461652040421794327505347105053518338951347576861150663265959423183410146212729974974955787764394479790781438250982750625299027325735385377123605976120236266665187485557774910125938287645621233426675804934956350562582134513540910752411891234645833748299727216932505813911487280241414669557853257382337291424271253818861790901728617221548327915903758786392179912551494969878299299667223499551224739736342623972164385183150389595697082843246738609591622447948265104519589398003556433538748380849332722964230793983713319887975436554066522041720964585896294740552668895994846868462369792813708487148429459549882799514316996767397351068911046281967962204808178623984209247384170866538430732251891969840979573882817339936711671563643551651009584302785154789740689225040214389286648283271617389531885950206753839833142004664470168590057763689661805049609677772474205611529411901522138638966027472870965721231458229348559503965962321671653171322268892975528388276339197657291209548905144709534237383351491442498820405680709019591854088611973309308597987131000178640906254707772689138964877151609896194489312239284029133923093402377861156116005559000168335172290224405285172909230105622671444376428224462852952961917380738742294208867720059361855487273113486731362886594334350703325343485592674625917820964962280874251775659736254925758699210771039164607094223524626149779254875637036885946319078024049384251665242356290824464720448577343573733137595722956948183740563514600034748412794825126079288667360686580104942530098493986986026830440476420161390360987296293811778934846353123043904935721940507967523384510721696069369662447273739558872991076689657510781717695550873698423488539029830934307226793102260045499884657795034633670004609740438144135112838080948349093305119117264000899965814637232221483923369791323605975427506004513180995995498675851342921112174892832686507331469290723167747686094319397139510981420377290580566396492457500780453191506526639899621651990681121901396533769932276172913943698743258073017467781802105817113590101101463890010863863399802453759767293532970159587404340384121746472340979727477884358831287897621889193613824240897290203891660091511579557419987437549445814949550884249754603060173674876438921336767337820697072528209820400895234118863027346798316089326521755788540660910963350470824334066257046634497811296111354885068567202956055024778023333636626832495733889430099424924208830154876668018064940437035186993562711169239995922013031596493066819691955450516892946773729309690102840707456310154608704799813663326536242673531564473593405039663956512304146043678506178748162101108208481525396359186990940073861285052330968905115423274651078072015350504115867485362457262684579041705133102992388996535716139535562588726622318034004180361006548803945471871156253696699002094120936002359661730051229728736029256475076407419475218781953799436164722630371398216927107020746385585003672314240211398654804388031829734718917367120476697135233067044007334863192535243867853051372553409412065009467806542250713828545605476778679166682134018316281135666726546051025331235692609000836733500563061547819260503215057460657597201011341382311911806172174232953571107651675357896625047949044442412558246798626954834008242504189395352352217799971169647146125560030188692018426773959399908590709244285993547860937607884595783598556297283730924328389639624884310532552733557211149763730777224756501613185810766750932879385241216927277966511537803963008052001041761511771819194010208288241972354556235955370659882516718520426639286264088067576308517420067544580342301786267763205454279851961409273180603894611817528230980994364634369524232057371578024764278434623626050065342097457608689207149196532224034007850680481539388522260734994893795785516930196241281827459349957484766447371903614228177267284354419179084068968033002884875434107703917827961298236993146197702666424851742616638060887813414279414322784864902458297178939914174337764884248773204233695019820562319032096896478769076845301756717337018388704208621539702116201277955003856603688237545461906527643235063572155431599551004646671849751683723397836914065601568782190276662414044999032476168411402558340743577744305040278633289081222491229118954925169765750391146427690509846220842790282439388762397880072104768579547732561690206191534138478801274670979618321494411308716493972765737751750672731132875748115056002867067511966806562392934048372872872892712346441427325056999744982004644898738333057469801796308097683629121627870313063453981912194202806454795415092211551360079956537642826318259330470014860965285558981609946554447144959638499145480792920004113374158794662057499472412195619336934494558662319209515614475272811417697275342500890195565017673078805260056867428160077887983602007657234797402955423733422261205045376292553683030551642579062478719525322474150920716103569973262550681063297943196306261947156931187759496066270965955938746993562587822735428611907245616051484505957819342991290662420855726472046362002008388355370398031080548977780856432312139771913603951368451255810469646985193659359432156831050959205998746896298531553571746162304919865188220014049553206723212230432828531606525211207575412083014540272277910808291287917622556939647181237201231178267985350295866974731090001014095653718356984530386779406170116175089568646270412455955439116747983757350179702044108088271140098785147684471486327099412125898115243639109834887969337206446281942212207434051518485057499979686710957823053585312508831145872367637733796271695690568129444809859073547430876035983124240738217661197838280003262490775954645704583461097761484039630094893266373128710816688695476571480525076513611432725229555022509844915234379161371140463550841166855895252502272145688444354888212738036695095467190206441649300021520446198598062923343504891724949748770458576250457317202485657792526007387307665380311111202694640833458610208417579496969132235470413901957337136463334524283069028406247165273888731980347996668361351940969275880688978256681567781191249169867093472714780755445596057556117258879679610608173727494122087613369702492200541469246125299008155437792905231079497600554061570672366186238857896076211796019713386535980126366504363254539976503279682351498113368678052738957968203334222703386900326486374194893359470710973016552810520808369544527907381285363528829068315854474043085981361633969104906673937199276420354925650782919264416470323369754998469722825161799866550468014913467759406011439891270041307651208722531379267979438391912155030103711352668145662937365420791417829052452600854434499411775378874268592020560810958628702996475002008588103129119963518421681401094091135942919010344868885225421420087069254122661757219539929954159759291179231136606244178142016186072228910584194719029861329388717048530019811166737944599562464682594657849631001344896174599856273164518531727172989349769878930084012652450773802595877422058583592734708725881637429037081554669440435827391705105604864621812653305483043456872969260804258137249028934850531901572183296999789848783333450759637640329725202886961789482744145413461636623428472036932476632973076449558398186777870724550840445491836043145747669381399052835258259948266485946558961834207916869513278340497002381871926305057480877457230820940095340312556834199360698006468373717836561191776690338073316515190203308855908496410278042936847719309548692476300812002836702766438574714814171885305993266477055762131505155750590218431186274435871186337660300031832358876726723307807670385429072309334864506746862662796503000993110676601466670038467885565998039690143818910810708413222342912357733507534313718717200919252785038638221661918222964954424819368922540897141459767070303867830502744330076965528602777654421711909714966211280316870505609434847729570661463518852249301753444310119393533232873744138314931989155522789520611094155646524246791540251000901428292548027050928048423312142168347542789564583737569211201746636262775306409745986370384748145836450676651001057274893479851723384733377003822792037755192948401183300102749059217815908456872309103619210863383492534427921433339282847649589759226065876432973556180001017392579458316205232950784790456604401378666100515153798997942809266104086483203446752694060427895478445060276943591052325460568223724384579869680525251687064192455259819480124582765501201195779167695894769079004304691470072250055930213172368505993239593528480923588558841164835061777090430354362944942558799437720679361784531162312556273076358167546110983768524281549880972726491042490389771060904313599810024217217915761021314810217887203071936842036466128463268695389527283387884478951704464925545417086480381081411876819834095907681998374296710986710101854235707423040540223758448686292309688544775471036229404818480881867421374997673978704602922730607321885008837093440647062314351899713944468421486199912486502988747702320738705051751256958648466408429696701383739444500996692093716424676676474958714812318773794128758530313221253349522643180789853700044860397061526314677767085341083934654855257284345991437170393251730973927417083113349899246268134151059465474401420953351922388132608590074974019027206275943805346790317148156840131505541393469196644360133909514154490934075338424688275569068980784733739209318760188649783310125041340878772759442493746013752403057973543391882050836798737593198984443776170586582532563740660351174834645870025600164325548873766428573438502372890340116633392700347723326889981000888279719259857182321448849189391231009322833146154650009102026127345248942860070271236092695240910330666784923431166110382394158384825644878095520519179676021510424497283345035399100995016975984397561379216745255100260489877758145020249452375224547169563077913143939475752396958282972339102919104971417676738191276724824690864254933315885094308572206483503671358265592431566796947244420681224678985847132710368944330525310471568954016010634669229172073283610421311105434061376900371715400266543675707779533170042249524618739264744556548605158911831542801242668875599179397713258883917496606226691617253535335385196195157252404253779174771755999013956380373006298013062376107679904410191619476260367452045512923538911234779702234244626479101696199653435953919980085929523138956762965041040368830083075684782959503917739086983960342906501213310826127174774755130341838521607415485074820634517344953021514838398250787368858507833802398914037083102695622306737951695635590446509689621493430019779636102393331722000630905522487720810369281891544056729570009511496091528574313995222908415439452788000347726548859656286663233557386922979290350351791742352993929700714178631471273407071141349665374224182923106711054479524783795501894540997285542715004455088351864402331905809028991217972347169925328431458469205541436830315984166079510984383300953622681998664568891940739769731839500718103105636506534711263450425838026915143094766711559214234642531659607275094005634842597433396039216096004305063344984457644342811389478538848798235105270641563706867236371094953819552729674456655282098172274229119378098130647757736239301553220867425544165973876155407241905451458448673370457306147188147848600542948683325648847703323973144954579534641709694309012205125385551919927480717594027741323752606615829430077086976536867725446882091330448463741929980494566267058283223117791427455917044252988014229143257775958499357438362229355626205228209352887967427331846516853858277297080328536230395173851116576930067086943330653029571587791806234863959982366990036483209365043799190317985889956674941643600270989130993640242550076641487869984302908706830016697041862868456862323535938579275157074331162829324456775943529523402594978824328989897217916016097099090057259274791583526895347319624967088331261765215596206296353142908190331792945805708702997366930594527280219233709998590859015065522902815695908021461673058918606533766704929082979734843210706116981710873992252459050331306976003691997097567458976473674891439050262355447806470310795635166409251245647379612423296183657199897800413891744085501111847642031356380852981288980137849540819096944460374844997610808835315102002273601780527486623157960131998205370776245210946987216079229068370612453954201253814815052533631107349329256252482665393704293908482568642108981026107578132555529852268056220919883897968516638099591960603541125231361213819406946059414842990152697075265140883608851971263644515957753239306108456140854856433609759529791367692712552920886465564501679305048970106886479305389480146021334614422576844972174005935756236915735879927260273157493283405957804886942484806369482076246539780111425041790851110826073777608737522398472705443161946751356695235312343573509945806154471702039831832505613778880879159060813633682831702796972781571424712137434103678795982082995241409516313067294998198956092441918808943288734904362662058882155349095040391446020396807545437566439665782486400846702926297156220294431122506346249295056165908144929689611181243043491294172444101448326100674588281048403085245566994887492768503183461327700708129849158504545464010354099574067186568272577708703613296631136534345540060014989048896881945382759358763865429005627192372830705736411840950573108567152413422538532631634866888990879393436279237774603069621397755449310483972465253511123917575500523727040378814177707883320172298379280263075084382722584444938102914168205855421387011987967482375507379456411607852308990963967932764852528992450847652632685425995734665632747772629922268606645838167107030594806683830752636344881270134407330639318107840225353901118912411441159455081395073990160153068303503105892549778328090057998943721205075179640817062572396781872623509615056898887891701090232535584530256566641015681314328988982521524302119968164349806496086564274349643678180116076505250568258886224806621115377384040866856425027514224585346215086569038968627986874830311909187531352253559428375384565809564291934107055170109075104507563861655264696610792063443613122938562320304021290474645218043824163778303040698360263697738102494240536455047271235558954810920223525234969612711282819875928623329194735727905536730030132084845218144568390372756524664663636392191243159379586353533832163909333033564527961006619116729436521633988258876356174495850706350657614944054779310790955646097812207998294208658453675506321023896802121524457891249164934957302793045809970709088179650507353691481370031632199309068251797233976189294873248640264780951545276784769932612004640716982289380037650843233473074945972446647672950652500676695930190003632528440652458117827951684569336933820112358581900115673087171452795066273948244102664546023188917532851615269446534496133771146130117066254226819613336976114609943557108031293259499925719825805596661167510720112327634203935175106518331595571153380026771211362034880584848855275114547927854539150645294617063020351613723059023251044814231131232333965293970746615301776807391083100606078857839416386520407099009286516239360666556257139044509382095699032822629070889076608287135716577694792400739758920311829275716487223656968212468391876264562900941378292685654544519608745705264077005346403896976883803162372351149725617218290093463390440276406874574055784136180476975083836056474956756040664464922786093923238209796933937334715052232248168996516914357301982802455944916971850360926456962828999833530012863295409693393957952571622154593390964902349962670242299063043746330953572962400775191963422170641301015012678903993724161827527906632746662228438625014832785042076282671240957618343750247015259606744300601089077724967245893511728605974158502649497892653552586602691321418290371020315462989660858203200830276455840932769354479165297510187633397146421675981511284586677050567300143722872851723388736295906916415169141666869442760071313962899610257813557672264991247166397512410522122459583312087166668416277711745645708224589373991565426543062098094066972253134994362914450395803624361746066378750415038135187227846871688454057246608535608181958215223846432279172772143419352021273039130813939335647659845802188541935163277588510049945595435052511128277475299722619283586612775930849738270979667133712944956222714138032054454584462309225271260900935600035204769536580255123269064684305715753426009376992243016744397702632806084613555963963505121188919032605510214379955710684540562850116736252525434546982040781784286770446271472844523280751198932687474559114974263539844044581522516786131074989561957591601352278863101510557659223060782435291640186091824884490642815259553073669809913149210710593119047331092332394812484093724836556758786737815895626567210075493291580628249156684172050916734345670992192653505174198182574597283480485866616133588730284625335108550681518405276479080509340375976067545177675099282084136284277529174882484182681500225689617168164730373932034907261556709580415455905910190485302754624197589303685470897771229397212426951367611286081306249618864440565085894941048073037499491344198364223810683131514821633390472767928712094596378714817372855757551888946254265351147877150622989380200086806157231441849059322205274248092942909178421249925884788276770236948140275744644792394935244408629256431707055652496445734892200738128452250405544816632723219147008095500513854482729715904290243240423484586102755024368561064947179498538843742344414670061971553269185653664345749917938572916980308900140074180587585162299620831730819048245006690824903595142264582493126602152571260158672252642124762776328983399733726239125114111613498286682328015698633657589246779010758302053200946971968285632890416206312800936420113022936842044462183828138008800162847331361088493605662210427910773615957927549135913278057385309780160241125407805253545029776003011970035496609421380629109128790275675037776703857963672416293607460991129081395880526911887100969864872997016720900844928699128155470321342964900554642352043335578903936436886037588470686802873684318544227647151450674246158480040124974960491284052659476384086225266928710067634909937590298121150176877621809615984569977528739641042113678326726982393334596824096198850473200137585975021572248321367939201268503765548026218747292927673464673461167176333519438780784528087765274680050585396170045640224149142084180561596140967419927265865951432071236235137136339879951369247769307900671048104488059210329139244739460321311522218286722029441411012097987534435221400199583591189996617703600508617308474278492101334961306422884458337365227489715417505228745074671829631203785690332506075173347038651321802094748439219315531108938938470767424807189251785301063691150400092309146337771312348180471300405231707640862928739712599341983812233438876998727164185142635298083099436201399725003975573320180340917312693320827444434892251443441591081177534255851993567208967256280725591618686781616598309289908940621679699824022729101436003165799782774541046471668968774356118165959223723249666946342504668576736855023650972691293063277944059187393918752394477894031361371932281706302844553762602914097714537855803265628736752505711364847814354114873821595602628487344205422932847423734621450781642189369308850661929301865829987418069530929545487115790013859004531259692170792719145471578214296702291749994529047369054125188946601369204271802986004847983783833971740868701442163852357461529074935867494489370538128463765269747024360632308069242798730324118801441843034581117492962621789355092584358625798734847629055592254256700073707510408636782981350601194565790742636506721766355639757701759953498184896704255649645870167402594902083709699495942126924839811161697183566181547475246421441096998117785958516075475338122041558228257784285677383063141146890572510070742350088133609140171689570662675704666304041183588835466990584925718091832313459324126952774484597856284390661324766011680585811371866882352338202783840033891613349302498661693672036454501027895780815657847782175559158100246853354309497058083561320740752158956514890219965387922675511485039294817369757377897651797977742398625301371584519802009381629356420937501762760670177307211246097689203551039655777689722956397099807415032583695967501018043281703961306637435554179932813784360277311498036506972823604319620239937039793477438109685305382220852503588004911764902416788074916401201944808741479602695618663314580925280788165111762707421319654110285718928834691256834338906333289896966098910115525879189432141278955937045216230836259376952911571467843860277502252019526193163939189910309507458429696783951780778728285100544081835457644086132357103639050494833425407456231713871218275694125218723945476027374192066350950736351085329126584891889249973817328893019426497265924996277108856672588803570811659781156831604819917249673180423695613222993996023659387123921613157933630664438122077192418404585368139795540803882874518300133422090222107049524414437465457755405968482465855635584765470217392930726317175866213319450138454942216142343440741088450105749230599711001616188495147682141221604625922297907326885584260088359253320605421661389099980570270676854528001698522293575866423749931313481287171576760998066965136183848139077235678840295094704005927716208041527541964370053964774493147912030129411192017586243912498991291937439516487879951828179112859726772847116158351926358305246400017820070810469719194579399060525541026680467505576449335198046532090309374180697686112630092747820152152869244404898049407855552654012448088997382849207515360661208365497102042924404564583101469045799670223235662736965791398003619788175325115309781850949412141288899388704076549093000870827733333877102569636981693060423339932567613651852004402738794638590138256811587876440652109364961650679505369040828756573609593163889587952819247706783313957601241071946835871170092829733025464813347907368986777015420307895968199567396499673676907879823404689642606855597745906579335326700505748179117202666527129441222801331308376413386801681377443018401678738818219693074799310428454738259927877990313909813533930877597741651955299697458657892044025495358200188504437143342207300447483657074863465106078287887944331540740862677254079893546690640242786146831833131979659816378938712815677897546283747686872308548949670605133164861839430342772494523961358484230252718275441458972691557122553525532030201621347539911422702096187529023220234091704787068456963411717354639463502163724779816196923648776865405764586029002950331411808185365985849561319144594931904320810083759456357524794265040932633790014234748404059809655503173264651739561535740130373024673915495446117009438888518145352255693024922367339459724345249064211021121801666220866737066264459617704232272768675624075549102910808256607597808851566386515168944801931065232937052373027427181226026429109372214999591280179848489658201806101904225769900340232913486514048464863881983850450270460279310736068447455531505443614769658881278572141986049707461838472619414611042445348280537245908332272551879010401983537915932393285104913903567820689353241031292518149757986928816800788459715315297070317148166095285949236886556532635819432846993360049342364067687424825731806057504425060265131557289318721070301924745113493578606635811977283264346110395530192530169078897183691790213589041704589739034464511810807150490589879416835786287078617636404803264618339795912750498732110383760974721257577233574770364215190283097205560686808950198937776726172622021033579038167936546210528904722172507642800889143438034916770721182492707506886004078346172047793904626346457401650888970259319312784076737707820367166380644600815033965166592725141645368551815957970499030555276105472198629635442169766660137862637043120439811266735765263511604103394548123204819838121334416635327970447096150838201586627870104991430347508157270280867334436969850135301290175397015457679108986789091775414123399842472152715799602865256047609401061953263666909339190620868001872014356009985604496404954026942740528054335064756163381959746932091420262860376257317324352917095953206175702657131058242776733813783738170949465983986651383141786501453887047042166408488987944818575711029736777006594669328407404605082212122453830480042370355635398856174936093323488755315349649684536342974137828330430797512462806338286403217607175782967265174484040154933872078515554324522650365711399836999739429630773377703057129388424125531344461563688580486966531999731686529138974306160747127248330569323156647666846682748011227367007160280994288290369295638730497825158777058593047192172521479971343376111486941636369963680927962188272367723285666106036221064266235555733263473232708837897084390701584490449900699281039951146945149876890134981353542830012998710570215212065676347377040920048595368858711268752297734826978392122982930863716823876563507514244875112981751219359658459298765351526222398113668833006988645594157065269291957278353452992332527169235837945154041756121455718373899909091627930784200796484523374422161598677946327415824036222809128297851218440177080084949761889697433975142349273526137477730341824934057300253915307614555105083668643265179855433916243630955980295786741902600399077525015775230487096712784785886335277859604755219217321909291633350828353959389345015925732535721261776863310926226117274360350611238220525968393467223790223166190705062728117977636130018656738062615636873311143559505015624092374644550007730718386511239019805537891063611272082026522883718492623919515836449383070188542453042579948030179556551702547331435626310469276151888582704591312665699994137845861882139074595929199198749663110863645728205920007351776045129135039320795332468391205148961137450397796056942981576153469147691705627433496049667968609843705988428493916085546263837045386952686196190374087492484952240269953162688412585878580380672736021398267932294554098298416600338833158610509607082023282616319141989180029618478046014549707938657230686297829022421759544988991975914616988139854028729662506034803881721883127370832065234690828913859273054888075794506000856260102543647615553463913100950011878118272464389269067315002747035587483315095959423292160922264233675713062415797258107497163697581415428122320845450378393655628707018526207790031472596625207918028655168653237270834967699368951044682706446412213940007035645972724993647798317027306942020700877152995150684570229501467973236654141718315160076963966412857548430037455756528958770699431574912797204534852891382576764901493024363515828920050912475776548829354220170403075537144209203287264287959539871202675265114782190573552144933999481134362003034043384239092137283041616007852958351109064520304409063294969063197484055243517532323706224860037461390892529191407575229363936580540962586479045905175842468430735433769557358055915816084614784612410872994071041551455388063108945593416199518330760183830923316937108864981597107406762895443188597179351290836826698541492727070989654600834294585893542870381613184230101279853127473361520184475975630848167398466041054898242143738594130019694044158268049809553468803133181684019356319769182267044528394669244721432166683089934642460521764557863733327016597860907758446675081867648703023050023492654992212723168001068082490473565167376414769767110932165001624057816719360169860418501810502603685810362595112943761927772825909035042731298719901094812093932628358905687262346584426245843505616838715024356721064518788567981170154106493618242603035956078576681590192786136441299677477419275286051198528368176205022530411076070283948517809182311746104263801047527843710978167797806167204503795140094911542405463923142324841406575066698547512315606085487084516289422787286442936101668500718769916025877201703715858169896185606961644887140452518026838598962287083468983177250039292946097913370668591059377164932546478731126453865869201710700126625421797544876618873676941291730684620926192317515433595200833040680110986851565095998781955110217000908324050743724367076893302935675212059856002488153809343151327871317722755370912925607373179880903689861676799476759446859821830306449678150050767872717349355929729148764009124198922986708606553581880139341182449986736900615910038659148881120491250145374415913369840554341620427226843686453017389923494620693697003862511693616040425425282113512129689260149035842578784328363515331818306573937477770346423917267956376558526958079955030994573369935016225815209832269246134061350337875940499031264060660380777224600188478389877227953218166319779569998066882662970236274276474548311725637788768665396031760669237917289454107911084869181902237953402597545795129167086906595499057911478978305322370495444216537194191043527958421507913630326111809093071242974720644639168073553646449700915020236330789967723214115723821304334691042292397385193123384026560916419018507772242525169713791166667980154914242309722930174837348557345924702766380589386078526103726851167273541331324360342143166651059109459897634807078591397148633792647149460008103782360460705631083219115858411700526376501221131036351407780512344636014214793923171397455997590648405889158860423542292853285797485807287707762668585143481652224367477155440036423010388269347291293183161045613953924593588064819712770558271093240307933987589440278785785173925783651405842236403888976465673830854797700820584776734593513052156613981495624210783230098475930499134480797450697589680854032012991574541806060593153527800688601722106210407523277434646680613398095594521636349361319160308704510368071037450763409713455146468903106922944416417238252973868797459051009722283370949968736711211043712972486821365768513456127869448027513254816855955977507666705136463787798473273219868759659285821344036759320874968824000610083228702570392658062773650447033633117954908075293727549013872786416214255418076791001009870682898745548043228564019432619203121734104685869897247391354432953192040702099664501904559129842496648459044659363489891123529775797463129328820626282038557791195477431959219325229724092410413342738809446626688540246730514306726638933762670692087251814340951249580095477009303377466848709487342345820904549151144995416651734624031003196043430139400425488207106307978507317935525165816609234742634784146943631483389620997392338271329159414261090390133870485250743510041867237245715175053591448466931724431694923787969139431059841388042282135908745701668491378766636685254383395476682395408131285371043284084747357872674371743478924582118158493659513952741294567192129720531273812913186054383614068092166550306027924176877070629525358204372216773137778860331179867959959395142843824534330190741987486989364997932223770859988674157711312250867421671500960318455673478538597555566128730560377019240819339324367966734028962095494328361504143333013533271735614714192273920168204516711400499592129193082409019987896565795494732405763802788289370341341513165484938290380399407008892886047706540359969875375975489565105032310157443953126572692553099035658083358595544508704257832896804633810987699359250227038660778628232158965093016621732615235381055445302499561387658996223122938239890003999703280089275870272448390280987057017502768180215514736721586377765279222029083016776218042091962123310680721696365827772269236455857722000537169127636585772306142358275564391081133783500837509196860522980187484704391006428886693116470604982113287000679323956431264600298956764715547228584140815005045336406851591383827363155124947634917016168953309343356077835811129290009131701534919111835483975194100166684138764754045239139656021437973747869700233060124835714112955214380459382625062770093625675538418739235133863784580525524011412698493680108623035893504490129775579094972457797524129818260768348758483053333815306967603428963752488349247869160882226643450172618300324967190257255795390582246920466328889247184234591253820215946735283728489519779197686899064884601299661940316157148513825263864065339011001580308824681848299827383949846853120020801517377495310788760184530797172986598570552982277823500176941750364784753900336752862332066790019764378219950072906702730493992122908726561034764758689556168753896542554677978303343777232062856719789611574646127763841782124755605114543353930927356512364900806938845849560408736616164365671333374738879813968036252486218153690733172059509441622112338087122764555085691714371510862492844553880597842506784993720042567902620161924336941008333147733243741724781983676345236229543866255447145732558866745049354414764678783187872943967155288441550915599560787862821112605743218235273639034294141284080346078270179586900400691191616883577357693275754249435677469186447841840599791083338380996985882040986961568078114506711406036069833458497460306794574989548300388581885735231635780173945050901300024109471039480569390298083708852527194302231492091135728440583094503475166329879404306146641086597101086012399891175048903844364890652923964513085462542611647935517305772914727329809978242204320583527847037774814953255187382803758725403334261640428304546856562466161919954964498797086085579881664057580399800562870063655468047648062098835650244507732171188888827912665385612916567834809242024602003618763165300317089363284568566083892142394292689359351763196582361780420603801223559295839355075671812357128695930561581965745700991772011588729661305276094722683475428700189863820200557096390351675654079042047986975128962928650619096012158617836494247407529911896527038513522645149147336945190777562504892997863817355995959849548734374077596902469244198361738163160645342589018209331597381892650673793262552915752724231888474207210829373604299115449514381427681651110877620470772169761098137211809060903324011182293673159176228436405059843170591590608125581322606582992782469293230840907082020556863896880316268869143554448817558370199864964413849145069375918015163713459039410011144161880580826744823492310713163519669502169231663513979984416830573452553128593261732120208390715312257700253231029183849243275347470161882897878665564350921924949341598849056559997138189741763084543182592263509598065917747694670640429584331942391125424394550769764775986053164248249076072739178386260742997186264122800396441753386315685307161085878144872364727404232403450624818738728937479295179317660121979927223765998870364999373935326424161892328921253892144253560977584121198494269061140320851218530590345952293402365867345292585892283437855801203771320207072724441901051010192352353329920315092787221964868447078971349177578033587787901731384983760139238228027884162205837979978492105232107588585369098324714877802212340549108025388759436452694508473878469197718268311425240229685830691723251968366518186014302812739130786471945075478890656271722875665844004972874477494759346221948862422422651235848904216242416119178852154087730953645690683446979003378724672618298727385756107417299720538660760489885313383036451286172957979003672910324461914948488469975025491003863800789942426351517656403157330033498687108630403018746652286357239319241650177243810820423729630236088190385240204344628434649643718499258324234292487313903049827481524398177663893120180329205441429937165459663642733010492181784200891422273697083620391256038386345028835067861040801258375885173028251508279628080625225114996023148980441568014334887834317844013451425475543442246552859151443065848274020055920148793694771330218301377108298621998896433102973209336520917726270534442379473815216166996940661488955110832205372182369019726225377778937294443249360471486835485325477982462455222165671217885754543203609539182652791493898716518399127985209889339551471908680988302636530532297665487148254818409163828148944707647969931812988634762658270659140204962633815237246441857363137392000395006761147199905515706308601046166527800899260691101019986408172822317201039903357260332999282925085601164280384698975953982441063071945593230659545310487258934291920676068012825214807962200453138479587246670494227138867706347002912346132037710921548917385487715831077644303435975116468043317779360120843409851544925824601833590904968308248819699123623087766622637378430574882084408765055055529476275419211452667162340062960281327986675855683760388751337001768831280890870532573184601860399861219903055960767960629548056079832962433430993622624798040160178514512936336259449428540245848911395155644533835570690894585080848213713999969914519513845194565499893399619783085572863451318454381318615056644164127608130400591894143789876058670401454131511656382118911806292270038843555432872431887075959290787611829809588129759296824924746957062950369563878603300445774757539502524536811652772409767338675767939022409585847006785222565694099033304731401196813778929100546545407202745030422820693391594985608954521691024251937373968878236676205804127985498863194025153815363241781937267720725800143322941325053153587830806320538307449389077469362196269585053278578461730811111002199839804270531307495170238956656952487680241557458161617152510583834880453940680709673680812633670267385221701143653878624664823882544506806002837734774546455967499185835639159585687999293862970909297852097138971862271114494998854437446289013628750126309013085540394098545605329799825776285235055497252668978818622260930577586156148981195474103538778290638523429643626173048474237205092260405676177081309723895497814527469200347550260135892885364201619344173733794754257677934880283473659886434540602615524148199566907254405532314237598804295978334536520614033327314723762547678357538502880086823657312375395823478970560247172027867057155996334736964136798603941835966585494276549130016453272668386996895497623088540256245917886989418941498844456117241365183244104580588752009186902475618218058791919085965275597762744074935517697136374919254728944750901387881213270996542689621693599858257639701045838573897703256894040090413053642442174228419933533719743565545903358941693080431617223507055754862745297128084920619319652895319965468956872128448715956909476782407173088794167341461102663135000477713884434641295102533844323739064624936349879244402298522066149843291383116170512287033722867875831384133028687104878961347708868680989005699683001890812295686493437836939610415526898114224542361878727196309634552485682221233219406181977276685506591241588452237812012853946867944032965773092801110994829548669440332127295587082733168593726550950175969954167741515509786819011954152904093713987607885993264758502325912378555096545452497988465667140362202267287387814216725320780833957731228063770932246800506387990602107834913142443440922350318143322697528226034148140804786656735919860483512756147144927356000909503038294812568078686693993595534384657829288980192103627545775927643709526754255520834986151392073498150221814647710852244541334638616604700338239408158314426928100297507149490539754970124096007139424830681687514654461156397043473555029453835829170228191854334630827312680139949728055970917657646060744428730915289161955535858156918968396957345432342786695364605455362891165429167885611209863343674519716023923082129704727452808344484563060115163658323830765488804220948398926736643965762194018527697732371139518432431605241119572535320468223167513048770173892044432018150743101324078805419824922554387361544309217829312167892116765809374287741216130502829071001305427698519557363762610342943581119374876354076532878579283551194895282407472191059104715792308384170311105619825182065620442060885594069264275748488248109581354763799427968728585507443654636520627590362872541225182551311248539245581020779942254518795625208550265749050053502774227551104804762565686441195240496579647396070387328371201212850727246782728667069720317635580129590905090105453621815630866643712058687319430304478979459132455327297813818957357154423015451021745167376963539811719105386392439363179918826526373288299102835882670873570462658235104240623244295497196016612093326813243319117689640237451218546690730656864923887568929910856204981029715840332138917886467061481764880516909921668024587986481516593225062144756847507241177709627530949220710445380783492118518424845955482965449001628296804392770178772637629560317478554121097267119075701645045838294030054566529128596653346977965892835105888171474402307706184739726146617781804985760050828382693295379366203845069849468698767202825797906858975112628243241945811520354532815543425124266565883159723278780538974426047608627439936808351146455539461151557970725987618026925845089025445950365578631443962402803437358604306894611091095011529702130806283774727795053045349233433572087479894439560542208501779802789251500068903404941951694295475958378754813360897154933704013538074145739882427332529968166903365259922909167602233561651480115047223913424584855589302764838177053772547429381313432337615259476331586880096639249069372352872414718859697024430885544769600312431555504424618877903644219536375148287671482084934242559291045457330991188010174555128447754413988074265805110586844768443035268850259132661016576725847059258317115044866976766429255402954518731959513660782886514324624877990282484081991203499217067678218385494540658565026133318299922381038488097534087547707432799846010792718116799278949148104545293630626228445395856741209718489493667644578263629442249731779884619801101751446731524929443613667817570564648585937146703711375976708704653587106884051886319802708187960092773746332446256412811701994162599003964211154296909945381510489621237270967624336288887523944054743001685580354464155752249472002279404675250380942793200191384664183605410150508164560532949470347345304492507122985303447638153924137045990337943158832501360725569226337178340890296300362104381608403440712332585140731999143523904356439959169611223901550547849567723012645689022330108385240524784570060199454069803936959582831274962802263561336730269189614142412958343771072479933197784837235499120812658750086390664003401147638344191840146618038223218175480294388447578042273435644360519224351357811853901786774154536233241441641446586879228627884347851662752426092258324798730884172082413841975868301742977976273355433257677808292750716436710304617563368034103049163497628852207685954456985946313912595508345768115081289025156619338947268320470171875041441065208226316261202531487105410726383238402902246203048393597055586349995629744632763192182506818404298200207225496827065219651348869300981517899932756178523430040070143792239847166600262881212824296108186328975484897376497569991262366919776557359440683604943306197214556142394355653061295307040607373288986559798436989373296774582776404989147257088443675417296005516716855390983147412205574291512086999144009986394092287672207680554714190185771104509938715207060105169485311683964145346190884649344208020118916517828408767225204192799366593205224138114527547767970497293053814498507007424110990058468088593535848655891198958987484889787028967661131061010242001020043229835018317006046164717523068666270618737235813056468009708654272180448830062308211516388766417772960649957084092979816054040388368686800420170553647725081980041222238761284941360389605424878559666422905069406944691332180479512581252390458866774198976788876771943876708305687128488879112452403023580990809479658164999696869697918464616715133621561111136378901902459768569315527236190788159514368222509348352675165075546253535339447011505667120669008868817709146711313704157972900346838383778036935348778094406604383563298069921855760329827044403180238196901165149591111721640690238086406434284282755054170069803600143694057545014562055850220787393283273765818880304943175728503543799195707137491084233261913376811633113526878901025920760839589071233882635775198252474465846141234844111973045072919629478340091391913542853363468016584195148611077583223365239485044207218385850018556052990957664305448832958053722621125998008916208163562975814384669231275227433168155744512176285147713429215568281097663494533374007439499831258761035655915470659397539982081003401942118446316486874380655113278687194490120280704518690963942838635935885430327053410041001111334836370264859088496522650849771532062764470224171536153827204145411925630898094285844307304160386633152965825880387027526387243165969746258740427124695793467641109192798187329458139437407121361633442222866314321903144956669493104167248391401015290053259493688982563439720187875641797669425406680861759490701289626734640849998392495816279053930242321854195905651844792203971656481150855075133062061037038514130674907993120159096913955077274831702725234562390324226994700509208011541335970920555862843445730093724780062568725958820406835120808190693648596445738554477282430600286487174744361118528652181250220878707692846034336699043591670999225156063671684967846057924538581644523748684791801657480583792746544627980107174824451840402436293712294286530209368881744192194709856637861631802527957175913188135240202891266997477205099006638511406280400792072900608398627722907712692412071139383058178410191363881308665568941364689803678999003543589465543387486355535263860872207445052321140691210905165406346676009241226487462273379915475769781942287874793751254007385563896738934186677642427739082433132689453525517600563183421287690759508573988267478324674184520971854702268268477505740536477975091318905269914832125182129458506162176377606770170293931906003763588157007719571537153754448576305799831249789141007872642056745541313083708792349474207263519776725943107012386542242123352331605642009203984916157862776627834215034132947664674138381052683562061104263748873418744915822578742261689417755069389469294779889729873618413054120778401741857663849216262011680666949649319733365815873623867690847079206614410506009569756922455142883133432264184960879536561439012390805932575988416997130975605446425188511666460516507909469174241212940750212134908750867437106091409219251758346887325490175974769828208434240641431368750185279831406516098264893904796528399451064827443014038309464537261395480935822547337007993465215910341418229354902810042014417247465067816980194994514404482758548790769331635207338155680294668621521556423270850757546211334245012101352678142483335485157861384716895567432827219702939644400159170509557870812768044255705726860443243369577928227394560117106707992112315926443581792970890864544799989413761764246500286523263047000297667999346283564890106652456678697247783773736844304822150436790207520687477810060155538646615456474672167427233199525717390906226025646819361281501528313966624787379630023337172964918629589908798281920881360262747781293701510131732165864885769533867394058159161933011108672130629787523935620296350893763727289821439249908768966827280917469455521790692745445700906472510227676453400553015206002836297140676399187748817834725196940751490935273849980937264434792464938681515170687741612930573221358501602459511561802151702427912870784663853735639142536781861487994581801902573220194084003351858526551835635327449228242600033787006128582820480079077693506185272225704090973553292630473327161990989741133661311459422638870226611905610526043809870533554993675048170406661693518367721077536912837344886431365633327344962602233648766877204962583989246095338068348676357511958971031582210663407858606699572851955494380525320953877440757315435896690968936244192783768353606090351733031832847080559186539917712898679465627034692662222087454745064519418935573551979933775393774995005919053164309298458637878483844254572892333719342331951153698321302983501059583254699874246336110736485865430976328131519258826745185097219878328747317297046694427705464329740828057902366829411640462517457995691430744427107406171314364160755453379474092642661580398897246131072236525701515762768006096745422878850291084459170195895312355899844954601869629715983415158380128185416183907326383487422161222999380429505920028989773607571584812185889416098833591055391668298357622159795141420621682885544098461167976452286926995626739312209820007944852028622016164654393849917912648684494119568532725975988248083225177496169641294275685859082027345736122353023249358886733758203156942171474962944886018523294178304649537342715708257619352273093772185173741035523074341855320557732326177526333138069149552934057459976251026639513760639727166590032854509532331570724847082223201458442212207642540225331086885792549685768122521813194806831678577765070839504737566047253793070794544115602116145555782784131626410916777602838990553706183024068309032944421574893506558103077282544932873108548271049437100295486905918142100760174051125456177891306578777664072114358744599271350286086819912389227822975735421746415195554490812805960781590271826473166371394511957223924493360721652200005205779857707715990206944167998149448597379639168102312439936333721091216928269585627026285818404533757724930781318405613902160040572912806976686069660806149368094080419771645010665613706091728638219787938496358416752806122268477401068147243286143193328626241265302462728549484785744291172949179107051618370252278146487369717625078401874083604616604612627559555785704666635228685821883270676367610726957673103354655121193635277036281248099293104104780896172211820553781913365396772051705795840565993222286331847326138804140601067268008824607379378970367952411448637858909401987272175499891430346013894940648028202223364274150843403715571195294487159011471786649372495000261713429186867452609199626447414095166951787488904941909577207399295363381944770062113164551028340536602093453279095512515736523403695421665150283889181745778941327278208662004473367058464407268552714491161121992306374464283933596225784653086890120817785858308500282632484965547916003342052369997715418767812680901120176144205585025532943097696579118318593896937076401548635276814307592151950873653192533362597997200698099915304386385048782152048775860578922940608896199116373911965067186022417898401187444414743850024979022482522876074688406699482936984654700718449298503025335819896833758158210483584387516700477977119021011303311895660729221637666455024031452566917783775461838323625383897572225804824484364772406509627794888213580111744865206985988148387656719490631915638787249172902803975762581042836054756069588858144481266865409014664356795657744760045860576442175049264791627672082994949163434112826228202130829250267827800196485030353589551053687972581700761798532340687023302368125196996676250793620640340421725558331519492590615056005216062379226485220143311864044703878094459924218127849281153885755379314663904899602646981943079512289507153441369511172489204160520204573265230284779197965776597550996733434741123363406211110835111179927044725607130901857298871619229503722060411005040376606856541356272300592658159745048792167620255307452034712189723451855959180635914944700534493293895285127054080280669558134518077425543001133269894581590665656842586817076479381084891834296534483405296958266726489496847374942026195782387261687558844749980819992459922100180344759778191844045088659229586175171775641546113552333099784636020465595206570485822581468370597291990938841369327624245165529240777560439395982947955376100860947383687264714620749779407738030779656535152247063620285319951931610816672696683571590553655835908540348544621463548213513406218466353407249148752722695097584712471659378487032953231094856740399252923414945234101415922309208036002020950183702365704496613627159374608798003762928722588281394994616272284651521195298234283174339032095197817438883837242053902470137698160291609405870532448093335001878940102912059627081112577737221863122546833113025467683847539069965115742508540203395240085204677087272989558945638002675256806880856415824971018741112858114029343984113123847561334632042442229282471420022814269203746447741111840353239211653269799489461469116242666755097854490823704977173764482785294967011395549212484298503792155816580648601386074127380946091865971763518355834372869014530412609319583353030302053662626212093396420847715922355280860008228075730055037559998587413286708676487511599704773347301647342553013840436483802634041284464649607773769222997750805897024460446975654449345038812783535334495410396876895925430930368086249820376433433599975124214463202818942690940281202408209437238107764730575377457314606459239832688821716163525278899665793047837325829637850975331588964672158433429828492906665213263085513215335028805838802098992854817623108191651648800094734860461282101728097728208335246369816349800112576603376233543122196807687841075394790011075701245883037670154622305883850031033412044966693756890731804172054430837519252272867219762920643635990006510039627086038463760135102253957387680195305645456595994839506018380340938179049629755907600726463194759214237355893361511154468351765675532763230238965686929326982101643378850280258987701026388492502582824422095657535484761233287547052465329207406813652933104063984641431209967064990848663230675275653972614763529740364152735791439354615028711554192219309526400220976552098301541535307021796407702478151470313915595660878257923815540760786584159649134522802063726766346367423848278944397084674666109895025697435273863208294598523142688009221951148977292145222271659897447080228800612190889609654017563035176618621431180743731271769464358231649561260133907599069204518338018951659010551106060534306809350538103698834165163394154564428704540876984801943144883129990303573082175588499042852437660153294506541851182850906655764838547708623614191138091495440726322791570085757313197054932543498836559004389798819397271034401910668846406576541228306524250325684812259512420194614512242870808032016002736134285983900615435937217744075591389237256222851067261727139310064227861398703429659415304142417688601943871636689286058113470933186766098565724152826335588665958171530627353078455996919576292598215758277699432470065838598415167866460728313871201309345047598567979535003852683397918359971523421756003421528803314874329799508213683020360837450489881827411631716544199338083933949787080303348880253515330312786083516051383181022967505885402454992368295177575610589567344849594673724962222812247551892369888571719568424940991678018119012741635255518082674278949074309705718316941218162146148455859585095289075472165969381378435444747614247995705365788450068088549010160691157298951766027829007191157595045038578530078202222658906611563808014172301333938525761018656829099103289652118658424842911718592611405268297416344630875470988169543225781989630969199144510760464227730415355148556049240185891669077417076964753886871151179724616036515233274483080831599298944189427742685401231913768895055444412846034814946423778084429450477142086931071329301384469621668345666149320952240311295818311466671978179830482144600640157060015945995527736968452561454063413119763200969094401169978993527907595372717383741364647174233758814453750979352100625068000377369768386139097444505457430635973237324280542496512791835959400282070019486085972573234079541653506531734730831079009258867808558882268153045689014663461993839893983196940061222083018266970076256708600218402137348647810645518503925673056149785927512579655670915110350750867500811783119653539907857994489536121448332075764948895249111611165647188459435210511110080559685913925270498126559899771001660137491896817120613057106143489942469754136074030005360655143509814071857988888084242317566330744536426841755690868781447981257443312565100909568710637683829570759664017234087383742677277111517511750285147091415112212987797831116858072488236634925940965725091782691247127562396193048104158059285119267186648728259306007625570305644625709514809167407571820799044427098454889590458379365824162466519749257007528191726634890112914968210614039033225229605006637063839007675009524070802299479323425465873829011729895989212846102892185240074792558945803220232696762489773658838903929389357406555452388238390094170620151230579645853242043165098329064903699775102062041644809493960591682276366302013237693794967157093177685476788558893232349564866118991981345697176026315534318444759442674884134604942189505981177250113940456214919448010991341696292278429444691101548664187809113146513410271704579102051865327157855014932342291928131524547410801680298100683149270523694970476561637757176856322077013166279129885468985379312682910658227531003402712456116379068595694702376465089970811982640759026284533775337261663259984258294666581146938852843958089917394532686780330589601205931914494907881585648589450595641275045675186191156923983781174762044910392949294798228659840110260976952816099589577293168480885638173353558963543450247807807344617343609404791677252473950035062696089080886658363630484391728093996590285626344326193458441719746913255420750428016252016325241340463269690837064902851064174201889976049588376085208278123471688869022274475795632321951224912542095067883712249762143119225603922750618388411247535232103603347834026513818451344965776642985843433121716787511063848815387334466969911943528217012385573788743755689784358651343190937987744129537700189184847409300191861302355754150485158814914164062997963325543776947262296686169047946015457178217939261749180363690229875739171539689657139887853594603540326213482328029900673394634074083053944283170059412952713803258963432131179744840075092998411631284633150609681532322660217994146376818009212752198991993979006105785123605643003561838621076337473505157763774285711171378309768065891614555581033945599587709543891671047544868341504884955732319725974821306980303695088830806706462777411926551640527817733928784541072266682441763214710233686421307032182917679639621765085656940180482504674129209002654458286793815984394187583469528639002569470353853048157315861868904347098739823449645310406323186247378982494915078454243489209162417361386562442139571812021437027983500832122671657290787878278248212308068426412154528286856445467807711980313424859537070733288405343126476601412274209854694180312536396784501476967261117949764317038482206755776500775377325509056554156096080362162507933637500047128370141455769191819787442157892438687641447420921512040202471853280550725008895336883463585391975892255042760441301249005895865525466649322510262185598343820115112756511609804029842861296507866577712825666943646376627432100518816539031506697401883926301788156348763833102772160026767221455189866332569242872824757950062784387258089537377671555897837290410471960217073635884377300881031492414654266841188452569646557477996764811780946643203796089552726797724615605121052432444755821859087922569124389153344649098589483294644895087572042326049188683797760207066074455150958356912342310519364127288690412013481725807389949151226307331439809160735739320933720397631884292452815486553226762829219323779661292411300538469984134314600461792041745861198223920074353638301405130168218044414533706100263054016354650816394349954906026346398899154997511766874987973420213193179202447220420851649038037888320133356986534968564800288694851224496125236751965418840073386600268510438824707382273150966457508464097732996990240180267483183698710044754280314069003197148617466961481426298717822897568390693835881977559406390585495649651055642712076914661325243579159518029059951196329137952477859514111072112470607779639499553449837201862964500897189099124513812183693375001169757207850980311993497963239497845931761417691365261318108678615232154707773382189507368790110019112475286454284652361790465044280643634388376551923840773775013170409142994037609202458073990215623164236334098806382463436544498743451232236618384095725636961507527587496726314126996634855504865963421388620380531396692276546915789035463658965485623111703014880389451275885157996320318509801985336339905590730954880516983711127361159843652645279250956141244813140569949712150128425966367548341299741602925796221628656321380157994486434419968866580189905172252959127942110541250881654405872754192452723902246365423722183888207733120383260249464064051004534438755329929962063148137767029659666677354520726007086416275160283533735889854719130843196848650186890080801008387554591342575190202807549260092245618738378241044962914850655298622782997084427196001225728473856412595899117417940343448630482969715235814179288872157272219403006199269811771449388278055867329291165530855589165356768881216814428354184967964329221061396879495026861019602789935613258254568954913786669745402807117035469554692790405977371440789268547630713213836767763629324552548400775099097102687460832008061544465498215888454501354571886342635990297279162021323605248125328497176255107410230961147007308541030837492749032088253264206427574472673143769478762037563124987155558325275430594594840780641728134580308608072804241517215118992454538203053158253605405950282004915317214985052445486685403302943832016446162651273684257735648281541440771265984431588435992594367501144993778051061227076009771267340374802604975008204481297333366815186984856924730354214211552962789170845933966844783457288540678312002583965348993054161601296910501107922273838247114345288970178164344401891431143352888241856030581701956786089508266537572270301993913738518556362437425286873973750156224046552765934393431499151538042911993683038885291125568155133176914136218320614813402672403324457143031242251449875796030048559393622125464501279963793779777360771473494174792271553235804448503348966525978467876010877245829690637403856046570625277826929419860988179802099706388188649667328614201754068341909611335137174643860109062624588434727863937545240410067566897386725349788845976542028363972863315190344008612612239606194392393735389713504565001016215114019470263905411256254093844826012180444250833888335462447964319129337122390853388040389377691981746766629609491780818494413317062120211736476684080822859965550136119785683721610141174196013116149306061599820136097054500325408345973900634880783336126494347354596766539463472976343087565016168666609271359851320783776447207599487288020026476217100709340493684468957822662712625664083649511675292405417667079645604742999994357388285518856464307835775826727954193257458859399929007753226369422703179949561755741621221846616089613766101390444860635543006440115637450075372245686582198507288384217776552862417316088733972405362072997582594137727517838275412979723219671946675015450869646757571740394826753392641012262654860992682231516330717999568171291804060041528022911841805935519958923940895779730841798036515859273315832587740167957100299247925326398738582104265176794890083356233237914991287684220198653396775879228271620331821767293848529889574818474197140585707733289578792333105203682766217826066096601050557387094998630550447456752441280132884475128687059154508001584728580045714408680773926274672507526057965275382618486049694670434958681141189238719707589792039346576351302491520060496647084588482323584424871185960825703411247250962732488886697606758545757439183032759374768047305240302892313787654567925137707634680252983268831599767377718511994819789743839828362248256492460960139283193543028220484056590388461140122113664326579821204226683901281774525911269702989260136574195867109126409825365694730210142577916815912288531434172766357572494261227639958801912913087687991219333337358586205159706424949725126954068910344386147429261414774674470909284204305725454573758004239391238240164094660538839248256928577314166917508857807004310827315032894729946047493751492497468257374971429823404588812065313909990317962383300834876698789390915557054568625559623854825532631758662893039040218776253918453835209482928836514303522475224145440253100230176710435667334051833703708823433730753639522767826359536102289747120728079206260339918677768816943747030587889565092687261895359109401203969099199326691799712513916018807463429866112918297471436888585141579950868295989346218953873408131197879675860463619574859034858255305615200149946216166579072345920649540941413493616986583742681516731817942108730695881799111134275980933130496676671477520809329864371438913625948392849669534503848403958293594170859158106873246734429368203962240822425537228283202384397136737179043759509196167175880969948532326666972147079609601427316487993715870906141129599128614780526709203721421157863350161117640816366216416290763631067862990703373337533965835674263326599028259713534602901933977924505229138472213384121625864652671527154841055813365084118498621793015241682614988644261061168986579969267581296386736933448171430550974675277726306604960409796000488371028092453800673894006456315257474770475872156025233876932574095782941338801638231292346812014923959903394317678624308460408947856259420508480939126528277322667352556156488977420656580346687990852528132613680741060537490677258102301500773618980179546682306259583534649229067092299980218417083626730245188298723656753617632081138707558743347096148146962473966045263131422180647105395500314558137303921740367708796799115731351480459388879056848310035938000525523400095177380506709230877569503797318288671813904887472423126356863246027786185893589274253585534914365356521260757557646655941882532005828463520424064819663381644805952396781071685752776590943151266556737313051630655651847621294383579103387861185723922134590085697580972746031642975820830208851187431815668498439394309695264454668085780901059229882250411589946747777758599398554440488765532610081345452108179387068035286548029666399924858077932191653670334145035995025830028997020762370350545116772315241998332008733335195494736929339422150874257629850069949733293199292523944841705769103841962119178168626300192553063039041851445262847744262200949828820913936883036928393775428033396259768602713763855411434118815513129181707333160421244394790490899754986104200845448995099642794904235260540004830303340422027360878301523692106759358948211855012548899449664395355525523784683750860286347997914171695821278137003234358572314703360932396996211608560210597643212426386964358822794893325893332619254177923564905778865593866205959196326079820273341131402280177493959259862346659435559069747866710604105908615205094077053339216637443638015136465905421303443201941007666079621742053542494348625611048581044326648470906482247472325756742444070327453966746742982791494635738010650050478648317778435848639064236994295492438780962859780399410478177252335933149897224648364778901283362513269074404169341377592748465706150226894700879086396065048049466143683156874792396826655220451607246882853904046429200860898056775394153028116738444087247836557689596784925686080016101243658769167903064901140063937130679628822126586532231953547012227021277016995449190501668230296015300199845260625755141259099090593333332757406007384010909684144066972483387549641724871542797415357857032796567340814067004958829541425693260277268809236520026031499146154337279908808336553998729714137196969214080942865070202236822654946397712214810692769342782617351513827224707808930732357891405494756043957496928007202327099454464859461552004437727250231543860721327143168573568898563081494454114028947269326628485077084335566336450580462195575216311548497302346328983938747849961965714134415539251144486307033467300083286484252623875917752938420681633101511149757260059311487099438823940096352330174938401856808769351854254942182615675223978525971166392023879230007866517401540924340771350434076642814705456538609642226113676172136325083517043144531328449080852954296735945033134242362717845728551604603981305158156791586389526025994012739334488980850629399564268372529410826826049578051542165409131232839149749786572180124978103548228109544188413576615924054635490061096615218867549887749985803407248132438820352960287776776614479609037199219978061104541403468203419272259343805948992201141364991697270171646950724026595402688383744880746158559141373728384837350012405064784313368929567280817644491961360896438232438402463728703983951374128674950328466763943699731397858923003402589631322133427027243843173394211474495037968529121069884431550893324732290428396871205640749233617995010991856969076176395216174848448908148440029622077561673428981462693915405932999533133544192391789224534156660105491194585517375784772154452795788148707445639801541908213483604672634172766836337417271538049133484894671262711802039146261696086943620167833664743845265164903476142615823304959460795483837464622768767276231522772558529005355702194047455833995030410350007880815972216946815856066162893759769136410645606927507142483740915501751684735098898083329316470206832322540838517182219201530198293611670764057716979374073057435348730370026870264335403950207639061600567451813456859786044050123146982816793027742308264789719560345995294498058198397099360915435381746483778946527663333446201008421369488651095559180158741426376125693493256387718904638063979371044386592301140167875831054759328033848324338622007347758810487978530567245642458286414305165715721498791910226591418415149322941044405707274867826718196294527146287129011719508941507572917967625692817173895976277766676011182507248580178783301747312519478343350062821223107225312206294770348363664112607428568902081407273382443151790408229206622381717806067005176207517971348241767910974416027254063790168672900740913201384973765691054901013642051440078129123770458730056407791280005670109331001719351605552810992416714477218535227770142730676105435180365816661896868997859224999161817711912896877300012869645698420532981677697777133253020025421355240963556946584019195538049009551710015777273464156019826416521540006347540386844714991488665890260358179993519727935776400348969688820343902412540477785324643533255533208796768134672416606767348371754630977820389982980090812688680930613196132597352072778172644667009311939165917367716111392226871684466933770383562201178913829802358916353342112904585779154231499749331651370097992725027529190168002640018573755328329415266622458988361213391235575853732588602028004235953452775186139527331533464281553200633741201522279917895204913828696204802918002144536076238313253827685805395902773033980263149752794384355038314544542133459773489304821658789297015431492000413723762765885491497874028647870904392105713933195331158061815990471395252162968694526937537694019882457858889258386292092477591458826759155225861314038371150617982112479685998333116354300549012801424534930236433354165595126783446652051240273893060358664344481529119362571569714684862205944048754459330799940757082183445544357580489669254567749840258166294980918247801047952118978256913595047545512913126339576375507603975017258386961388953863794905025777893310009937403598477785522145764132523847115610487398469868309241567367879614953037379061762155907826095445446942624377476403481142449775369135487156369097976453164629245155294097525396052806478915690543678346263442974664537092829502485399996514074812159786020677377613734861458806917318133714387704142589420795416207092468456498257215828138091219071424938783156352057114116025743039304329669948393245075083333511965506050295305071204554367928204313633194392576758610822741434037258477627147433902042844670825662104166788034723152139285865008669444522273766164095623401111686509443045093140652134391968885139773172210082613091030816134409431923297668068388875710692877787162295920552233595958091483424306996963550049426266074858134088711767118316957527160269097120926434467744136911657090085077660748133162721251356977923108536100434953997235023442261632846690623423091567951107307381543814470151186682756167706010092661402784047567870953076770272027313527491873738045202563027427549541047432052508305866358349623987802008166522392069621309513897076150932148537612611706288860561226442787446528149207823053173420869844386592692318742078473030033932169077113540476036275957414485239467710204733709456067683969866408628388492526528617301135004862030632768951778311761980886759474582407087098611378367730769265273490301085339016289588420783208487265969257463096098882044785792528305097539322890378462827520959095030788001654788616042260027240269878718733555323505549907578726804838913601030591811631003019496912833152836260198584175034069506554982687129007701228378364468599671673759446775819919116970437881533525602839880362494090253678985775971550044316160106773080977879748744460977792259715063723386025452494829946214028824504657533160542468723861591880595573004842315347114346061650967292988154553121209773829102592434961412216953530496633195640349498051902716553445817697724595335393588006920853139140439127459606132473876342116529628984954105314812336445789442661109613580252102263388303886935829486062930852175309955618943596432221291108713614376147945283871410229593946923313987514616114615557778646897760486357556550069861482628443277873758816140308906249067714625979462043239544379157241884938382234039281104038617203113144170579657064255561463552943304053005095710784244794080922685362433379418908982022937284518526542386706583746958476053632004270997290139142422916922120613751176394684481756708874851534518019231022157881302273795978252844255565164743031353106264177617651248964760453640162442617511483659905348485232044790286559363041340162354731699137876962263254698827524425182186339269788111953237387136012319924594138674372312216107508707354890825934413948072510777279020929626939661110568542543493838483517173935039751273827066814385987323506647806534502654409925468525530444109752820835650845147731207672793975477754828263007452963651696648650493474948816281510661172019638729531890967067985194211891966985418184338598933806042762143305703254749224241313949844209292067454467913293776537686925106750594789153067988539619903050570919824172156933629521240663237239413497918014609108388746044579737173492297775912505788176052710293526012504791097271843590827105357075576727074534492218596561276781994659347605876487757067993800801660722830884942930068695731248399912515320182335650986275403377692881816188394591989840109174633290557541241612184206353025898118533416104500804660218717988090091303437879446138717969621670907626888293005939461634896801891580816575784798339644754782643321533353621911085539573221083432739018261766126019910938308717849694934387732537301359604303850363643427791207832161644440815488518337626189134812110884060503407781574554159868030040516102880438678710559334325776724275937106350833876658105644349452361422755279723568907015806300801705919986431709663563237389430254860879997425019825367482910066176912808157109087872075543647828524271194211776668132027719996060995486311708633739446208571280420885771674645865012014491634006023691428332139106409424281229003955889815217428736158678133097707127840041589222399203411288520980313619498291146445944867551371244010933804774038182356442767399268399441769564860280818983947385378724722406640592257029568646833894775512249249216873412675018018481715075173658727749603232965391901014507340026120557950670620931309919634748496761757911006293138347257306465473407173989238854486269373094208317984035407396725391087384470784228194801175800695517567667959752225508889143201497889367210987118932342769930633392482023981467217420840447515973390150212927057951035023714294702600806713985043391585841110811539064786791968849767291293513490197442120305259224787263635985272420821821925478199401153667894713181096553182849533378206924373513496990987840591459435311838260255006322787157735007585798170314942097977064037592769884767948839046166154664547827132898214242465717444031598601264745646367618603214052794470203518797001218034614301384143739811622574540719518796464174743137413455230004139741909946027713344922359061941205781136991525835940433650533185648480783052804708730017385036081726698654002687751955564483539157255485339662980369153845869126624926821903516193024582379635394209189311171351468896422640924066959774778784207061715775186691925830661269882152405774222914978356729632116431519327172591350847527743120330743086959867589897419215970645553511666276848493914072861913446384143964104452565106920637749599995991100542048751765128564511010144135968111502034830135022066179913678278867787388733787092449556622856138050366341725187036107782332443129552984995029389780104433158777819498679629009616680222415043649310406034867963870690380627394752622966330922884765484250992527346613073948644975972032555382831774823843980285415151214242235253464532794638450917787193796191104826752366526672197402784781599718977017757202645145727865535142270967275741364158173365202642219283953701934083979245771565182170714536444739833017911905155288502986817802673255475881553118556925586527525029625361057849709902907152455933853691431380103128494932947300780300290659199832101269586089778552257029165016568490341615571863054891371754680713003455593422199288827369658513620791322467319184601242233361494302045409107669311091037924766987303867820880661564685785674437384608752896254059283617771391640797314719848081253014115507034515174325552164046527151524900220131150529968244725726447750886496508053185967423609717621532865324825423015366076772849259451377164282782906774579799728187672790796089821705292796687548225908821158037038697295543140686932299984621779935125993045136733659566925794135313097336232191516960055371651700536013559235159135713829740655478438821956892427279454446948450154801830080768675476241242624567034490181087552725628400624172389820439736710854111371113147939499485328712844040326042268658617298462915662646090630973405676435255025347618625022781842508818775387921843350177032161961442581792249295825776292574625023615697558191825485295287380288087689203002625257848151337677871978256841315314487838676441769260107205587421727726241560057358380888058349537699122279959080484028553915768629018463624080939339708941788993962501415718994178016003222110120562016865759645074363301829018852666262227263205598475018250244458569727779197536491780702980603027644570712414604334856001306233823409989549310870434464509270283065843815196460558916381147236820820931649054839407341782519863055430317772198476354316740057004672157616115020333574386060429202644891438751246708652803740857890809916757086343265976663678990656875435483070228120702631582658235388452443661135260453592528230092957652643086385014396420895133500315551381520813709079961976222380023673341454358215591532346674969977004248869604372826087391648884128595763045842787133190532941845227390228705770764047092821971594232414158772200831254663826213570584345839346067331791762052334716220952982154896143908817433051697415154941993650692186586743525607389950274134605276174829159378355558599696105016300847585007204839419979191217925058942008825412337951464966220384272055149179291829686019383736829240196307519714148822550766144529633690501694547392873018686602764681720208505451546321441815927574829159357060685361446611840374177876601285007012974464633453558550265484573475770247403756855836585989649199352305856605801718440862523257670975745505062067511883995022642232998339512859122818390778688829085569423122691018217953447379616874095450000073082710837070535332460366953198306476355670904598331036666384304386895724808657435475303936049673284505435015402199240312124794086288375418388821896201892010217045276222981460846866213195032028331809665669775210170594317357249756040290849981483284620602233847696613572175683554687085101915428748303028850747419882589804789363075559264224537642693687188590398385258770646669802670535850668908977950084447147463293378658168011283858233504262446436956733204054800343521195760621685757122373511267687982107345642640618659892740177398637001633892429862648664161112649299408920814941744749531896354647093886912498372673986824640828784270874841267807825466898394655166544419263910472373476239661880630214503554465563469866043016502907047270502560136154623081763979113774092329224767704302079178451033404477381693617952401322376077554862703736456998348757229936389073450785954164945360600495554827577244612031565784725459532342418626064701715283236162878528134143776931693354451735623080377864536746583932854962574206908720497915935600094087379557924788217201552236889432706260629283504916073758514133228493930980467859899333098755299985833377301813769031209324728528160902236190322108727613724108884475705348544243632012350390519175287966006416311777309734046133605749886700314616688713202143048297031429160661873526743621187083012199741311731687001831664897985601205609540378748148393324842411574415007115040073220438844511290773968613512254962413761144494809711947541993022665694334403386041505815850566660838019716512687863473309510706835454774016278241528168895750079349827664805635525261103060732807975542663876910048118962404583339093667294679551636687434566188844261256205653673170537686536818405555840093972909211791286856033677629674581630890780247293656923106762233242225856146043738684264249426553133170374653905827001612287251915018861033846463255435630294999448788884149919706751112811014564419747150209526865213368487785134293824519993997983032964970445804225032168017280466904907206374638424829902522130309104436584085392828749675530853878845385593300843729551676926343640229130564489602944425047366162597916781727503907825796035059304861395399456745766755373217867512112384330625988119599183374326055359166479960770250525150365238795943371236458940762762217572085820641058853061808624692761222504339935978698423943495448316086628733794939486900593713482276316845625890562118437521645507260408724782145453828852547874981312706714208511179205132239141242835580333890999792497538365488530965334625294829756703676188427145643532561795101658134683188549132107028543482062190712102141545859712578361221540491570344731983550641753616709177723699656275310196236395400613512583218443629925585795703281215731799338905986687755550760270889240596532873178827631255557774051803171504913681773815697564591063081308368972278264539829760352673852295179813893748716678095332872170030412972446141756750218907934209386361613888927210667260408113498774218732389366973363470260189628854776688381326570433073204433580434696365363904493182082218551666737353040087251944995731513549950263254390911378235620292967694929110634911219826123540381645378650366242642624424987267246479429682647883336600573731516749346777704645193872654835212740383639698348195130104860592457241757256682435152252415149831237199368854389261147712854846800649703175899494644701371447974873587228472733106006184183665303820166188057517379739094565662485204870717745474153889883173167100246227597940438825975241479343970017390709120430919612051285153428174978324319949513431339980910796890557624844487451287381203569810385969559986193370822682011903672385761168118820304690740135020042967167525995351354086074492021208487107100425800219054551962078949399702556100778054340116727531029452927529184337533728633405560512208050013840704687752097551492780796657385357958885511069527530192688096412400474410436346791410426420954359685180285975584207996907775480655292098667613050797174545064196630854898943692900901454834487657249080843278862215678166695464257616887116360938435203968221585154144746272806692465025656890986251662057725725467644710554014155092255391435637831587113560915275050648512666959032927391182288554992860108757436201714845297452098253848447640704301735480065439815391951308505084744958858776314791521214066623914328301978832553587319377168052263398001927499229319387677550908579881786863354807208306704132670578635298138830819388577326799519969992819576389844738696127151902449343912199692302018163807396522300318329685176961391203920722013489494382189027588873880496680820360630455316881913845002619242897933679736076837581816720761102146787672242643822925105353871780457252268334707989735805869128101667953568116861990798771191262764731856957404154602228649737501834745632640730743451955482999763277795826594338176281268387767124742697494990277919099315215998292154765528677927796085023777621878392877846235887304704113720191413539469354279785419418715826992402137463478813493187390439790291379353757125801541590171636190725670645879980869636589950060880959206818453342162324092687616541671901651720325517620009865420398953096103383269814599703096599680020621031986419140436186910474348848425156505625431979824057100311265540394154824635924639835728058307243830786491956068355402968628504477630754083579849002218898717318617002104623144539322755562625023569084213356258368624218858211553913642206688389649876181082925843862682521515027951459747261754404223657795003266789512382157769189544744419439764055475917122305468751238194160865811672556523534313993699288823064068984480749090226735843961965766201528593523669481984885354587298173698863487581903317559540580101124147407856398112164935561855098032755252991951691550518934893402750957437969801152259206803060899924713896800637248438986041461257831053858110578881803857344384820535681031432239799936975103055461580175779834799006037772796133863114460867283157233247406869408631489117401881108883282702215890697444125987224225456670702614600020796562607970113703833646294466624236765420529574685595225945583332982897682395856190454325178122598648106855139902201386339789485499200276598397905784323194272174519541012731072488234235985752828381808178675475071596109267481393155918412651776551357485169655651387810660682929542576945968550098640299482167998623158122897076196929902888362714177884590257627116812427947024754994957094713608935150098240053411662084905955855166019022968674945988664422431970830547624277144926739293558493562200747145247154446514807850892455654131997358465142263324058283833542548239022370078110253442512360905643785872912802845768139973755978473201055939432536605443147769957505454260720316059860105298577355428196008938016499740236928285556603214469878311080208519092575868510706965502082209494706245812570584077690223998400139532428866885591054896519569647840271637943299558073048696592027678520815719396445383062812631705642382850222628109336475876668148831685323551654558410732509152719518512545483309450946229816699656533352393134587945817875713965412494335868778979817286056767038185869266621542605875962423765936962940040007663558603269795355329793510592276230866925926015955542483413358104833883896943492777974055909792925024256566083775526208048419557879837733809204217693096219136333091012391240067459164219942053176279548380698648019460070000641675129281404810614762298441885268690738466433705873184622722865410494366466525002335031782377641764010741931887977853932334004373048632848688688408013836916263990171831107487289235579652251379584670682736812639570338633800987860665313886590534569479409589858225187875253332071658079680399640966533795794274556175601812377085594180082994327981455621297572106434610581936158619326011282926678585937886087266316131391096916071051547826606561069952585359725294001756856384860765553199209774687504495228631190016154006751828567958679904620884100489459832858364299733272756613366064382402571796332579520334116411130035889407152657243716025250722154881642172508882036013933777111434433567126102672044922095213072862935404856772952319072682873582292915326047570273699492853446009170439137623035221525369555803008385372104806381302969731207888662391383867821201725428444428451471190232919139526206644226499327740537691993979247766738892771010490684750033758186288769720207626412745645509349451655686780957864725911058974037798259552258396848685853520313508731111991410353333734018625556885949212257335681792663951325382289905759315923790095342771383530171683531573357773574622688860606653055101689081175336263750930414545845987521033579400778987800001313139391079761303358680906691544497422388067354515449495823703368845834483347290805935202520226542849005638967674259128081088986862954597910547586212325739459717024630646406553764500496942307472236746700459827504815629993723422779505450158985925382720322405619775565995052592799597450361750499703423909915193416143765154020693267332532367189166749120984963685634363195473899762966632182809886502474782588535053666758001766772325894482979989225121815734569216328019964869822434098089011362885698561696847273548219347545098569852960576474731723209395997928558511379611271177034656974682531345503149875317023280447162320760445481528265548274283372553583443460361693770342893707512522244956031913887943691980417629325991836560794595358767996454793399208980488452088721961986680009980469882119564263300194098833568932058054982550788892564712332458008478277035556981553281852358089844317599783145016665274595244292568684891319240247268393879780070185840731683105777205002445021886735938845356758104874626826348739011248013619182448382474010056383145745940114300855535024332841893906348571558228700890699138879575262592985831485278691351508984671069688870393766425963927533040140853698713340417766191327335059835592328117388440787920485541840219982602439500107923293710087927116798351733566206271906771540322945975332880572340705525835425106017345239900410169830952259330147265511539772521093132469440063597617188611902086743664787033485107200018474681218424057996657955280050646711752598108403182547653765383286722627720610812276324672474085584432184816339908015096829425053126185963696282790233637819918841455459697663285182635986438751594039574950293623976133889646290781881044976275485753993609741443851086041057666322332490772843130037378887974568658768179036813443201628689579674059125492954261351801788898186157966657903447725021438759203224217484187149743724723643903322057360124165862234804619231961382809630056628152890558281402551206502806773579173526092577226178282087945851069530866347560225487538021404045500086143318673630834348269469597812233166329223493846593606582662600024205653275868140227245980488090389734188377468542958046730911459350440496484965594093120294679177171472596708072907848826475592418222814547138572894708114755269568903062780347528268992387341156287444539257546438830854477194133351429286106681903796792528484343781647595425722761631235604480665859641718558782770242615994452458618385457405959226070905433103007800681068986413869702868560993698092587486096533060528437485967852740619593348580858493382083976923686953024689033370647609825238638232395600398506901823323774006932679811433413292168020195888644267855487626999163495018312179472269456583243501281916234522406962320611175247758369027645901038862540139242630419155338826086718792940320442229469283598452359250584404176574924550324367267540379072549715982266085019405948472172484509467933017703958945301029771957340724238828698760412515092408878717043741543875886209333164520803413021581563196951436957686866874212996039306114205496873656269778361252115639985017728527138979446677457235517942032743644135469741401986320416704381859764794145295368246902095616644972761843188068077755559691591028618002735887903812995128985547037730923819257009882652262698751238148113389048879541144685920338656357503879444183547999491148746762500945412976150778205228154454711776930325563740042501390028214890716762233143292396793847564179395713792817973973146334441168757877371337051425875543925508150898962862958168271834304721938338286287326335532058854795439838551893406426843776937456010359867422990438452178238063134316473651050841948474930416286441159053006334136834778111163764723539419444344134789622777384040630101808230727431992104150716460332722502546911372622190526838309392464442734997455697807859557706904848226604396861862931388888675422812504665521535632198235206829609997412462460580603443352950814416739494951950963106872565595915764659522855147483792958093403944473180434643501797568393716746302600160321169493861074666129789436593652332536366232826382686349738345034940169747901961250926088311351883760529667089326783730593186363418785723620253880008624668269610154063227392391893908137942430081512276843811022404770430677542794832651055219559397593044629256835449193971351438566838908872196781165552417432780966738625468408339840763618698613899231963520322785597838490779781864828120269827970198782207336081988311470678782539755343980124384746052117287195903969990668587733932261581895582968356186766520206600009869666090939784775583039142215993752451385007222503533972787746080332380917771629086834446477519077108499236051808437154302166443835629245003276814031628332501416972452902072533351028598137112713136535663220794004276793151868264288816195912006318005560024727723167605022232107091999005569474774522408393637352333709261517528546918396923238030583234805910596861635121043373107782501721428689490781532541210692261388954025283577523310317928939644313559284922289299873025394920417193028758089845341861751586766858394184325700984132320497899523174164456517640267479733123210523832452086335404572281261119961616961354478903472035365356354927854943579544364204416807063204192727509903211508776596036744677509793092789925028264542403838843847721014870478580333925017044377356211344957266227300198398516069589617188177588669404100012031447483093171024412952446607500887436987041729916501280261606266573085065214310433475828671151065083579764651191963194584652710589203666457913884717745303787048989965953069526114191929791096143215538603515066965345845975975539174112207418943427145375829142787863601864107386757526557003131912581642238717382817648629571723148654429791711369842373335406151889278791710321002732809419541719200262977700927362990342793637535792557537470744512026600258201576608047804235886935871330951214559894140556561372853445123091308220538992454839702339108074666409483757944378362647326749352078816763847661460468777942556467819932133385653948988445367597712509173656574187266519720947057513988538429383701357706917451096579235435394748349400687594163995803947068029663731340945280690790795254472659236907677690037344155553464514497783872252394688018403989793488914992777180733948419610710015487177464275901409589753883230548515830332101477700848847612158904522443505470881269457674684525121968322505715154523427513914771877180155954094064104373500159214569091009591155731973053430634962914674687431511219323103220694198559964461511212629005692750148129578258815743366420907655792322716434637752075113769167700854820512414491842968872792883542180147002254214215998334148326590202751152934527305015466081397987767990237499698302787030082377668146458397903856751052322162917430218286764563236892222942365762388889516587902033539639265564084849613074755227984119783928044473092991591837291810024037994573717868026402085656829354550788889962155880273905963480627700274066910147867902115403927753948611396742064830474410911654360646777837825417666399582895607269208084847288908297453426491251979927116702466403905204844093208427680438125237455222931077072106410154354726648298685016787470014066660605077161388136749189602509013784176590409119659157014012949169850393006949534015854421701719959884810886798936272879694280916855756869012950539441086881542873108179025305841447909360995296300237786204456587095904129549714333378480324770669889284220083888163016475787818747714165010387815492742855868259410354261584597534800577785891186213036829816956666639600777795285460365697171137087409175808682369103888243606230175233569962895474344337692763119101008567329675424470463611818709915810925898673625784663886962916759073295206695299526297027918722330786789892394731124880001248108869277280155850063453306787389685855465704365146167255573515971140168579911103221512509208738739789248174370950255592169425773422476439448150714926058376976014190329731723592632518729278660189781862145130740189179423767539151333322898116955304753128357730005408883358060480938259875703729340638799100612752812680877309785326526101430293504809973019050047799913201671908873861455415435262223153867791333042104773276567715380845080610636570275985096822388488048503476158005608643465185827773986977763118643200223232309846293769853628188126060978109860140858840197848965236466213484071950151218061486639419604060954624004912337846810768841721309539422254747666879206921252153940465193628777312206687912180857036896020416192120666759753198383190285720951719909652484740465722664545781654181626376320105713336825108849244156586823314945695833973734743820169400898477617350093813496832976271589803630785042006162216227962799428702489891221936364920755570439923457582358698086613307537735282035399697233108923657806008694040847981495818134741852205065352680864806066346448673979640288459181724102942940365889955956095028882889105083463927110000951332832615844498061082344416930693788000540774050049658305542967961699235811891121643632373627412000469303642672145860377312306424010728203768932862947576255585890046900778416614470644317163951028481357335969193382039548506823408006133512606737411759433042043941079018107705401586329381234391679469786199691840364802141721477521343440336230899343874217929656326369778573906204786419367789305984694495809392112647676895887084314905379458269767630025423298293601748728822854353015856401793991850122931114062366980786376906310410504693762967270172384540420952122145637595790879760455513647476055937982419859933699971682047711897321378068133178498877101777694393835912068727710783045357966741547455317811069044741533066981012347451248881321133720325400946360845358034012598358601298569876657369697061031547366234475461633765369127942130535046409865519668658636065102515183562432868265805455981150225213701654981431566458731253054414894110714453125541379453432859929417373930624439276194512459848265502832327330834253778226188228925878889866271486063948599932376982490880113284398199817471908595587701150630988819527475416829035068492261851879869790259024672094950371768467838750042168087102896008585305671904324440682463722252964240099635495589084540806700278155595246403163149934659552715789631548249447247778105652379120472058111494359533286138819738309427894291418514977068390446240829380345374245123138816451091743108987657915280805652586242587058052245542296774133209467560088213392162848145464236144342616192469863464345387382579498964710505122375297087617517706475415392800315466994889665271442307983070277860722571031727132224841853698070347107281603834018991839132308903916408431085936888552533192602195492758908300376205773708243740982690799119716555009421943287714865737156931677551501613708515246234325142094867708989494565813299942247815808258085280441574053561168451537281080723370754074663731236739009311782050197189140490153280969222408570666575216887843212472186614281277786881592158155915590549565269136586502697700885412845459211971161330887431565152129523402662414953487913777436692224909818268598467106010919329187068755718111216965530340626155626014913632507165977908377887484914486983186465626558081038315854404039510155910424042054427306492258610278651889043851160305773209379815691740942495964636781442845991828868893031118891225583835608895856086083937337022774987409738013186891924762001616957590132387572023713307668029237601577084436621566973224966841406299777854731027519851360999628139434146758429174844829262796040370622965793091642198474504082999840471809100073585189753179826188251194862326492657098520545874516341134864759247416347465560843050962465902927087478000843990342446384464269219019085481873878216744365763179590625161163174258932709569314409623581918029856918650455442063435370400299016697601985258982884135100954467189238976348661529619840509929576060664669658320707526628720958106451080314911389476540755972005457789244200921752448004882689484757078195043847774200037807830114611528051770361948593379324358762703407218610390119625880887259786733293508189409259197191417857750747211938015226116428157933028755619631876661140195077300704007838839956228779197990837287720878758046750917476514890564321941944983669515516312522475135077581822482159659716593243548205916938021046778054231253278755813002894633772871724525197635035741365251483441404299227533488643486755992349737839477001647155015193999626882112904707146735855484289165287236632754210348767659103575533176891529846921219097291054979782696982562066669446069944945632450207816217477609311088115515677519871331025265253714815839079661926621379901246997496393934956496536804102361069307701639345899277323821797086485149477430332879264080396934527081338979395297706654560189377968556719090485443816349365888715576900780332611231788250438259623254312903777336061397128396110523579269634312777019989458890108404440171953988166981306601886811260242749959594745651510729488026480976879133892022299477403453708570359068826075361165243782195886983196188693693827095498370459611238879160987056461587464856641258711649902519551920916350590180227904370012549013553877296747339964628208648147910062278166956187952308623007776075894996071192324121613560719427684765207095079008311674206877674426544474889437504435659684468471951107777493685197563027980093574729169551942547512603722545474777857817458364794539776545715365318075206026344577259169716416334815027921109309177472813093072639398146307071244770927314269471209746246771479914013465959743678383856809109713281388373422690980901926978905867771889857242590170815030691431677346345377263518007426263617892368365349592074109457725678627064818139892089316218619292293230000586923410277235931840456755873277582685604625960027815875203487281685115985422863008784407093845130896713450116613620904012935364468403213962559511136937236899429518663502016268434123026946574229928862267699348710335196263286528530754586713110744327087574872814074851071903017924757019439280960705024659955744274546648133517056802100991821293306003655534977188872074456830940263885599289186271500645990857261745668263783698371482811717546956264611669254925446742142060841131242104424552854117472748681665592476666164211280855404136379914068935503207525175457295162796199790259534998667044286065206090133901269472881048403396219074453666046995582468086974427006167160783077237016834772997397709398164859551887035266240962181040432280678706787083263508622566441106397281036850425297766686458068425648417009836045072513641961979323101321257177942943428411816024846089093512607057316383986122544686285830627069569285033123192257347628493641767875340512230912370615085023200013177245572063162872675434707371174786881457367490801875903028420540108381833055732474564253214784791112981271663374349438518320646680398448158492695701328857359701015842497119419475053961382603753171099915675464665349689922928577143691134401355486502197761749381215675995006033131671630907902238429095297713720128474577943947271660183761727775066632634551913788639964985126156218906932339821966473275289078235626086944973463777652567083265911130195980696406606856808027294059293112223347941926141031181475674481597118627892180907112143127015412182750196947340511096975233302256067824453455474470450990699411755225530675529501357874494696484997416660358077775945194161670221238346637927371916711635210972903238016807411968224902687278924092971612611837518160952063652388925839400891048154688162615649310279605237656185587068595411748170757748860284317223552322788907188371659382615860392441366552317608873680960093231893997355274017455751193488211569216936081768165261963768731798124410554694175933400868451684759774125405028437826579758257843214639275089855786539495126944351201396601408784511571945567737923110908225601223788160935555387259327227557785723408746319856593968811800790240127289530316572238488878341634550434516973658381435663558702461937496672350546793486887151119253095390907240069953111794742308503981393208046089961428209633317916250263116656827366289287071411550536348768920792221498886450751802232923306357035079826348543927645547661825801089020892175567460532539952173680940534685961614104041923708526850310471703759938033915989520124867145952836752804736758991982293138654445764234119983767977726565077737887169597561753719385416629827324278113517429381014518629281470975119567285725439728023147624446022683768555092647037492908780261219480678836158916205058991444898095863800221553938852635363839979714925599987407816069783047363092843373902626115664890332464774531175898379708765389979480302193418251527435377830091518523094974133839740221891140004621982056586835414535923515156955583402134607619952475093789666289778966217891448086245145397247567347882624340969712452076588643791921919946195094402889358342211486520167518850158763490509884776854516945554884015632406231568777989154759138611687578833075896327768187878289756335741222663370910177167294018626034099761957757637519270274339698671068285279341227132644827779076859613220171033166112074012929079669064283819453638540768363181212678220533614053762191530260961955337755210309650464327984703550761778323061914799280628912149614442693244103264849489779564110058400387016543811676276500101283238967978207934807530199391580703775236717630172805003196555034895257862320104770160366460369150155182988070712681304110542838568888748705019537988579671517830267065004049504603750792997810461442783438680316218045314302706211170018318257970275318167439200602448641572503652159065280402420583985374218308145275335979936512513796780079279267108976665052536056063269373271748015516580841189142006455168091503828000014947001299541801361562719892422604152022074240634719588558826576004029821787993200293984253305368115784154795483307653428851902596411233747663876536560959885683075247659386968288943930542875562567752891740355174089722157280395313129239380175214605508437002742744663346786072757165235803384147702866152163860710077992552687287443535079160011367718288995143200952288917709390516545232029327831092773840529435394287731266412261254318072552806332094609918944152172261319189218584476384421369948445469257097217918648001791486101699138748083490340124988633170166767432846714425492845575678221257062364745172525324240299695023272576252638711848305897558314761534298022858551161235203036375145151429552614092016790937619320533804862514371686117018169270717568144682156345379154282548778628115757346964377485370636963704752983873087757695003208980574149542591371332524668581855682222684198018888900555593379132889933688996511494916251127493042817544441211589262486849275129365626969132517720075600091501783592936949432665768371352785118517773075186947543190518252060277028762798120935071510169235974159751245751230971999173369440193175665511380476997515616328360066989396253613084368200419426369905560328842924972679007698951606565652270026626446567913352264082791897142184284399287542393312255701538405024572989544446356856970351943317639997756145020471053940755567337712532913041488842949451351684247588144116794340554624802730332093753291644374789903997685048322965223178911243010805270109885476896220665824311671228801762164992745309986329057284084471243671166866883160006035558665649821131570587979801875379802057930329012376934855338472287278354006942395540537767000684901750915117817023809885985099428744064600236316279311636000549619773584403681746332066396181597258990668262767257196501268060086047826374831659062865150876954824121104748854624292213441087795975979056435730472459158442206964458532134686548985434037427488574877858330272348465091295333402205681562629407759945213502568784689125642054021327751260212917175716707575135252357871415589446091842225778479303065359082534648766017788745838454848160420255058743796625771241790123987221565582250563971648804482271391258941723094665438770863205727608687113488168790796100781225828509078351887925905946816187438298568313016907424665243203965516987028406114716348956513646610433925835798987466805230264909398745569621304030427773781225913697956244983195971868649609923202163059888541690978644285904978944312359358460468511866221961601679863647144961947704090574365368702207172265097096846097715812684895699872504782666886906215143195611142088867157583185025331622678893343962489228002824193998487158568688962555540860708738283101541902372148636384358103690482303719506731375987400735582489883106093480829763438617381652604776953587712936880586908771690609567376741572239977732988916718541420276474923753590362680185166343276667364537026437992647035787038417522450692130677587888884276220497195798006129605133457264288965537056019075017274559456080470247766324346727497857889223374047327516475076639228265216683946758757812094079125688439197243522468085850541240487985599763279860323492846032624237353770416110293500207460631909233592016022136153015992179763824416811031788978258391464781516858306211384893837319976755270268423798667480522956231853985431286811367274875684298690219197666748288729985900493806965542585027931557870391112717676311613053598764829392107951500578272641874763240025590382815524615849617095919549762058513076602172086580729085872660634425563612375669889935080835509259226389402330410284159694968015333360700463411558090944058737005613887197867408043206228081441881712055346986345398850609393290112725288594249890713254691551859835992026646266422439939959795892084962041133794406340346264531911726881588825912768358251559477058960301566152078223636351771267568826108834300564688314262070191861103227219445586376449334452440395779518314799464538046736561313494673357799215809662459615832323707951577120508287177059402279395690672011088272855027584532901270931297284577781295820110693893762134000567189540946397463353857101872762182994602121044029919896220216869819785744939169270399607633720415679562118252890392750272174287705296427859348837179530424296338061347391317046416277319380863441760334902976120173317508786177817786464028670139857964109947753510984431075707868168614431475174211703535051679853601533706827778472606634324784926422061128614234788088388285328005774171775885814914340575634102006200428290522393167207816161942346282044397600833730391185566875261257521183625557893887639108636393701570929456939847526462149754760310445680183144413407124146579680995748499572494021225141071555894784010028438924167407524649875755805310266764903210944532690379298617103328680191810521612441777897484403177245024700042571259644041564987461026970939295983078167153010977238648355576423317820404110177034174622923939417900394922986105204542323825202604337046678759341431617497088044063421465184415476822550581327585790840461747612175418847334261261703261903944704777347107598802712179045147940963810440957793330082227594634795920239243146625725009020808076859919904583180617027342690774639760730469412921886688279951766882707210100823599140650643119846176599835738153514210585364653053538881336673880748645883206321286598242313881957803943626470288154939364979362663915473404048128000167436634599223712335151643741029406273262255026197328353060163090746853278578620717099224838308280232930534449359461846221623010364123270854924854243761805525045011537046752797544354964886351584544773806761703179358755546197783294551036785335582281844311624317974315466936663400976217021526097645187400452983032484660800825761002204982229183167132114239074149932555339513554335832164062014535842462710646423930069498908659090846881674015144027210108746534729234733359717135210604815907720674141985894414036610566354461704807776857763185802454647572168339432354162989488073058409170903447114492958089547251986699541632941200951575856465846263016759669358206472882087486461513208827080555061437707006980001657809445135651789112760353184258781689966461666716085875765390506421198502202334043933492065399959264012869322536573760365908779145622193969863848091699563109961440443499151107957156040018646776397250281679010019738469028673927947794942602740956636807966000013960471376413659636466439186721852367964990736396159213021874724676173341267251599452685862679014437067432846694952912140465023199886431086615140833048590624988211771873902823821737270640601118543300380634898291292312863552019146147956160450274860068586275724535881763499043219784525243845507036961609801499962423369153250322880311537969117098403430648972505732338759871453396499310178741416853814002049276143977054900352965591042972029426493007131950458334862055560095959069180273769385172592352449080288138052685295114819490487296415793812738857652458309918523522801609962340720422377041488558885048018215412994062650381354888693488668312040817300654635430751324417777251451477761724073045291676932676910930724089501673526906927240504876335487766560362738354324479318094688939205870468366336547655455910861464055693397210464757117918243567195055428929925159367927699280931740655261803215414894128715168906650755660271957072286544885298020414786605124292314076868068775891524902916803783550682290276139131611172856302724276347368337188607381581890824772762662780737755349933618630412365763860964610250038737128689794939138474551482957445794236768313103358863867944836639217370485774400916400776564062956558209907333459949992840794654400429795195472604241207302601939839617121417936528846156401293236318197361547707302095044661795921211197162499524987492685837171034595569700656758632617630643043610484743880773791944852397973304879859127664323140919600622800028070551863051146362057269753172682017033180914110495404940370081800009978531302294116175467382734688398095796287905648561912325587112879227570870229579272783430923290174228748075246416518767626365169397248132084304450313036254240615647728172069444428654683164154774044412013963730621930230136372384191771594897521176578979519269913472391172292366935984733456217402966214800188697793782298369221086454237500595939973982405529423114840251035493457197435366596707407972745399263922507965238879470167612889694604488739140340876359114442665028408796759589352627694011764553926416434885936611546383560234417765188260643334916985797325149450626909435888317645412689416752926116673395408009906128652978642895933021530184984882143240251512225513623551932890961291513457938481685787737708542349808732634925580351786979283186532100459072273747180212162828115072776152695631954235346739592257221391826323113615411990937631870032634642376722187387245843495644081017974040725514627429595119814248475712429342324068346741615268178871222981643257741988153920457340422659857534675919931774449580524728411291427625242619774586048748167276515105120510490605578015667717354606007918869742823483000445915903371196684897383660019494947410739102065988782230623929885481722006557003850943279392610055890517204319762267078172092994291711706551514060786469480454989985643461211334651704319341894325653226488218842494268747853870450144958382439991891666269536276413696098618168518846910664437728357374968801863819727208183294689540972401036269742414633050942506503762978972278865934751961137962401850986341482925767058648906559856245220881314402299918238814610990120413337290711964835418912525601026993534115845116116981291111514765843636367309334441225100805498603076389038619937385135236477690782841750738823862622505017807165902562091793867148476749976859421668844434233319431391580971906734553320779203203122198305340723433466062504598254612461324928811107457062466490437002539095199940043843948033174236250331177625794133944055095145186751339323974234837915532763709102817974170860021127157831604414823825930813753488566935974826359002979933602163135890356251101699308753208970660837541973336913068303251623939444347253871173375447741068172707186258211753171335190924584085818832731691307116710494718003844173798742128291003157495300459269340983347753436578843216839361310704466962147800859973911895106635321466434888626581335549194633751178898274843005949039028929533583490936195457875351039892201333680450280905824395350013861257593088165084214073040486457637631595597218559861524402918510860472753642440876320086767279209556845769659883411648002729554084830468855637114896613586470242459740769790041148777560842439470437122756961131197855846030453678864044995146723628878991612341534829903176149951887848312973532921243258014051967859280537593413719994533962700106236799076214932868784374769901406115086002165864597185038294252197697554347740300353186969232241206756342541026782580803389568327477890464970346018546092830588987544683051233064099742614659264133417588586998241519928643274740125775910331989913070025244429719418990697540627812860383189567333325477186586817243194623495306935075050489570058148881713270078508447144663273577797587080448741099260329129010985297291337481183017449063414948024753137588206060607089234277225440966980256559558054163024396885603740107742159715078355634638748964836483251157783273362552135529360696136006019502317623112225538550680127235927587208977547227895140531814988678857993912354533518365602806192541343884727434660191504331451882477409180266858047552792406357381237435599073192103037585962682379787068575694527661876691543620230044397897385269504507326485003602547758341898409352595478127823181685702422918377343738053859674246046746040774206695581868087525928656505658464282419880466295213999461467679758114710192984291822045034716486283721371166707884352778807119884243449481618449998476896743233858045796314744822257472880433401077612489363764166561817190777281335595023976225807347765074282273067116320136300728022481728233282415714253243160240030751687883115010906911613135892746887269066853658237766216007563196746189083752715908265025381548204691756359287699086424518343515931768670692771475754860667245898339143901750675238786745544976160237723370542335993304385078138325093824089204392004261591482521865950139732155378269893183435835639825734864119342948732793718378874788103238087884974363775713201180299852328207996214905201686128136308279499760596090474488090547583307533344011231813716075517371103039781652166476312545090778821963374377284978320804481280342624158461649609347386122304168643657162816848881827899809240345960660918317812597383410130022835911668834573736908734652963931630645883259242427785612477918609566585536504930328739318972331125356259446749541719918235996799659459150413524866759674792774274425955366682175881677406021987389541564465241463375032487649606974634624972064358385628038302587620957011131072570019622811728271713053459051096663496853725828233089394440730842375287923697822215903013376102977889305893318562854324400672668702524096386630561699524685570442895035876417675238170057346815413564451898453468627782075009962740542665198580454350918740700187641035751837225566527774062625839052250118809478904340935290838480004367094550314366313955992696654112171990328452999562725738409831643960306480056778988935735454773530418318813445033120181399804687483663979734177573609705512752356075525459123802487814524089753513057741221164837346517077071144642972463523134301409101376947901529027499687379235873296811314138653847811062615493271084726407859942295925901252710591198515503011119939298407907011012078577787342023414898776565955568561235699645701969576026000156486586151128014446347273004937990734475886597999548767537918602055464517143175156937849385839336884169481692860630786162029011417717908500951425674192703996165090533756181106787327659465028827499404939575794948496438663423083579025368853768002248086328787197227276530277834749574643336814730797025337721100186034056310428782600692584876754791656838445431137962886054528782972953637567979909026165145027951415886515364317587743165140359499231896691379160182287442866930346329412732935364348711902196266079642957968825179496229990022036466264675445691234383468247131245494549406209776077364465729064222030959444474051804303802980865881311480905861516730594821092038076217592905453249527283616911533024047146795509164246698910211569212418266692424026946101331512718561909474993172092335029639785200903236947352198532567744505328526051775052001749440455900825507241342352935316807994448372919077711252966261287792544858474298941724525237280747638637672672963221957449462629164350053824444750302227563202803645614927897111818755571781754748607400050987788690614702347271270696577036462817685970900574745759236178068286936483905844540187046886796715726370790122492306436241078377513340906113683004909854532034235688281008925408689900856742173194406304143203718908758232538294476750877647754194832217123296777783222731971107100427627928966039230992300166793973663583631881483597318505814892292261946005198827902302707809910209932685299289773304558952598077881066895041691870159045468372818802213898716278874850946840705007786818617104873327860329151628939845806299090794401115974525289792664257358950066071038309419688119426824985125142834524785805365139827179533716440424493323976657783731378745696729475949378676681531481624112302497146164568285502508874940970663666372335429406371703177828728640592636583095784071770416749185279671798806036631220756083989178034686710756964622430162093012986782117100581575983471669140874531274246365331008792620577974845272179297069264708981906956394212170914420472338183679767404629372219679456945821550344745752474658024510732559349875554409610611048820050560951638677322239526701372739434652575222466614530954634436166100330148996300019557070678681385560487574703363066208965084416095892772607943220016081762346172173788920939053841766160263395534742506853430274047346793829312788501390911949609497708308866375225404112632661569485874649225978122248163550341904584594614675145619710629184448675202193253236549231345256468600620994033668235939480575953804648975729138581242245382784252614443431533714284226232449979793092162623594890240533208079746255033499115109666246916725312972074469714117938767756553499787346419328518133580084202311301725935560544787098106313851563919512023801996151727994741156792961838849693479542195814276648100270719513077979199122573464473896015346962336891750304417314613440780254434926369337245093206824768757849609211349128828678744274666362845665061432773937958360326784354180605841440445933084368678969921413543652254425416318672265860436574326972401048098560596350091088496822389731768686280592517202510808657029650183841399000231537575820284770474714489920391709554631318712805129923944519008600873288141943072784839637168682967050651247270455223003151180258094611689687470969282796417087781502051773902577631751810851646022411525466020342608091182335861759978873395045093717571919330991773224702392475377929001853462151040763208093775356760555501864153506997114164798172511667902869818899791132391776638837262665468325228181334328178617038439585134808647203983051841780679237463167068739787855839017766143962857045922468073225063162450622329325477173409336222799015978597154995352570492187576704682062753161137757716765087053456207511721280872449625904020382473050533004380101987673067019777256953607759670890628166222429537092763109647766471246635844820946367385607718748861313959322883250099021964139486297109533158538828438035468964972860710951243865036647667960250432243541554241851021309764513096001467658989421340768595765819785041668742957493232725545402328227624840216558509291728689474451804574753907312118140424119848994019966817325481041847699585027177553808500327959739660297174214656625707485617459013176171322172382917908671107231932687301885633342250461162687354731065393790206162434228260922569200406495834763441443624413052370323164994800402804436088377492711067821728414479055464953819282625937476177521992470561439754762318328641790828874911674790607275925232055778773109727496458956002634733439300736047340812372433339064167899158794727732710826097527592159649767124014444105478280868650851805652425624193362523333392467716396708933522053958808137151916678683687405603300174535906428422958156220505217479030507041876906979380353153778714996866223093467895389233156259588653684566528542243521729277609264892418820599849626612274947859299452585942089562001839956253499953575413994035679099043737237779183717559224119145288821197759806947510401760546189222495107126083500717984539122446920773046007738686222300423401831842746793204474238468876355160525765598122015985880371696714051067237420610833680685461480613591858776985731028774450660186596377157039804225502498914315256805360299328936274956523307083273311646262817914664104646675846383711578558870853464809403667051610885373707272782990397182413568467261318221335819440448735546451835955179931260823747825196322841890331743159345773078696597975673656482679488666835918269702858668918165488840418059198665416056510325146091283720535946370441627432952074298138019844271415229844673251028152601034764432529659379328001342764440506930982635167880172450435783339974333250210684773629214048607076621855728397466258026731901555107343150087759935128681812054654567757947889237754754829478976863696169363879757693637715098576167416496481133457607040518653633999461383454183538370968566594376218791293501524256828455653377018549338121350962502360435040340350122850904322144553068705083569105824254424330137734129942003099352859464123744503142067999915877210936067516632207185846726664349440505778411612541386090627100661907570191086297465772437965268179798559213133845592486591652140607506350882988318394052468622477072846954596163075996505625272293582259483428310002365385256094123847744297852111209419000862981869598310358108882427481984115350149302700388159343798849812322401370833638561481364982774410744503514607261569327169423524245547243560678218028936841365565446188056689865728386051272112422570119551800997421012320105810920754391833630860656565422101060020385577637274694405330729662464743843743521258539611089851983294056964571499231688574912071330435098452725940646226032088936895887714647923426209381181905509603118073863727508008308497991445951943503119707134090803697685639658294795143696413487259299897963197314347705015202605123670913499876520363003795218180173091222026330940389562525170522421321623766057789545411279988866450564192770816283695541646163415033198544029267548030646738913455599500953904030325905233906327037141558735485582717857504762923429398616481639355861451400067924671186759708602774935090706661986756511652734638479387409592886420473104781426512992401554743014541867569436055061690572483767340927709422790154014925081119131896761978954779343351595635335591662950934044469915111651774292826598112031883946123220114972417366357017108407325589267960789313478793373450994432822230921487313355042814100458353698726734611640536471671172729119080229551922674016344535638911120771809613047715223097243852236363613790394483586368451204330065021782231220089242544973249823331365872020459252424342481658591374431721719900391218087033411871648343049365907212534232679125763314205490335942837399868979250959931352608750512185921627761059693577252492603631977790705514852265919513125459538262332436202621058015039537794234763013599462556711313437342293382512246893966440047364703249936456485609807489081096803059062407037090203032104122516301715049928352218092551867159136330341470041882817354286921796525200733035087016170643019927765188004355337980846906968862805750617674693626076782205772548442563363691273229424480799411397566386021121092594897417969507581000946457931001315562809363072396911832082713637433439009478647374240542852068078885307533566137000017171158666231069954590787569542971930029267269031505312554058771059639999279982402233519529714007727537166711911509818325950302690821284706122231655615397298515306440748038556092226459423961094976060478536275813641881652264224781417526813737597451278496958770265718346764848401706992941022974383108907569575555795087123759349775196344604946228076906900865076795119026401723308593422587341354447631407982246543133873053332896246721051162120796860786165903810524458422672354440102354718983594669981362608106906101930821708810721174449002888481237624365947073474680306873011203298005229080826796407165537856588954394671789767722343247539876068278832945013172690968176310688950573144722445311034902937205271611943955541621284676419486215308835514394626904953969471125758768682151291735152808834190845549186223165097315189405046057136608318093649826572095006006989645157270149959769398817573946181509348946648907332051818617892407819988175237999611928440757267088591891808384374458909967943360161155638454698063126557100443152564742573654194771406595079305741637099154088863931420411973739140809911138436639417780472051906814860969818973405239016740562936309874063735773799958090857135782852487008543910329354214381677166947233307239897790039869504195413451267859209874366268794548899309199861669890869400053181771049741312659966815178568201202186024216592800419673455940369742106058270336613121087999402322327732890432205171968631179109069904422926566064860217297999420626287011136551551800214514961767601535956908479858153444455568007178539429756862553567738268427455965960865657445039121891965526584790697105598145899995697400252785910451863817529986018139024831156966105755674367990146165631120879944016841839789115781127440050546921997876111270599946111308013130567295922578670571145650472025649521077640022022334391895628546188817017483833582134383081504105578042363686680745668248311847277533042508936345167542662924427197682408382250059325534217140065249658435755042663579541106293078568459426889913254301066231975129569608883582425833809239424542419502959300057161559701719550330996430994335535608270676004761744669349287690019771354150292496530817106775300068344006151749009396985443476437987066169397123839017756855658497991684013817394616874119269165641037834574750117859346177980341967388538730668175184323547615640363329158009244949318765446071234839136707951528524119903302796703624636118915617780473887115211357138275803738252224927779551095880373845081421954722051709761336383574954972479930310242935604043631492538137174531476702023050290548875869692594435263534335998823036587048307335724199326854610647814260817890629013046276580621298143393732587249757026215873190573793960340174629900518452022491930940043200723848178094373916177325079996666174320024048195290815201711939934923588046464742284711816252624097820910686788466612205678667625069606898989457029270239392080846721617709169844542277552380129230718816071168934942527907538588437694933985857603889695457342080665248889901188175928324138514123252330085443575084591932113518697178973926237501024262485988887895268610448630838982239564487981361006295789082106279014919989438694587663207675965931206785380013559050474417522759439361583980648915661147391021431393971282557360647701776599122933588706995482782073833130969515731090213349701946509808160941187251322387239256712509438724864184716808104558205818956536680225697050429867672952673968833084620702109585897450604085527009012952738826893097278978294902305639056936818671886237830388583364540952129734609170116206852331969180189148330429503014539938810360624162038657449690008401471769105310870637322517447629848510839927253155646722912931864538532994007587262443293462083522429523855444214795782852657715191508666441587976210465175872091319662202211506022595699455157932972093122718875446198208646183852798845090665033250036593240266710777713026482604877421131960576118057109989753468625517108855628886463128598852333987870859123564437101979145160607477477297346780384329271077119690384510830867262369846487826925184797277575814211870034817410051346306558296949696643740461993591078545485924615003844192116253855504357196753143876688677352374985117335434327998488557225763154632989118338277845039930351205380373587387568550135100046682534966705785517430485264660091316638517794519534563185949452964211154801992276951825396139683873289080753165789252337807328373045072683152805577255747981387939193078113700390064567837249215177886350660935672447046550520507048670376506900264723897552275301885952297741331776730388715737563469755648791466121059940371383734998344224331430211825940402292964974742164232669602135263264181950001073512478837657798463085835576668970784077087418478233178422569216946385244081896895059092951529284240571413723692294758187602507559955933342973218552515527595476955143622307557447345952045993875435469783863267631936115542220401673021747506367151974208453814598833921945854154892524678880763408434563963208278617546173612824006003410207742950571253761961398406736931011156393286837644984705754149634317399819121758755586050886225205953868299659110553691517969180222053134048576859527630291260128942560906072516019183822258878310576176672040342710632257060166230416501926962241870858388400888668790061152214174691024269284363380869498370974816771339333414366284146517176438846014339050165344616669824261253664216278037973784836696864864533968624776507631941769007742456152066836556788967556380677338395964836015769640004881419962742645480594515344212046773832303370187496630824496628342133226304886740710899462584566984809000236824667175073269093303441443039621815321287695644066267288832263691911675044281877900930186563744111139780053906013335476767378519812337867313775599519744372566279153334383657747219885636037967677522530448600464185333343578005480297633216739829021975964455942712138086207835217015948001250470720481508503285004799563642790504468515939109705842210291195956687745211619014785819386935696054297519236731014796761169469942028326687018251791544665222629024648274540245810035531711069847421309322274560376180310022070728458679506990104443928411638030436939576947999477866500708452044097106125101599201224386264770652968349590473050559188874305637272057912797283989741588520575497183182527895256624858183155493773324904630910184640305335930043229441381639903815168593684353454054642471397953981298458189411277519448661434369041786983319411338434786062683626006297133480506265883762470283912139443254957238617089985341601546792632953278171535322767883121281510134681783576311188041803010864434076475282670992146368276693145126324935309949580448571835579520330521021833957745862732957564214612537059671717454612861089735415318560513051888607165377087568616041568074136153813546068795510916731786640613488879716111372842944934972758706849197997822253423520401098071431362300253546287908972060346371417466726414741291780680228500963774363367333235169060241962682166422629089236515393245100542980245527619886482288947942754633427601066567986068306894899922179408645295605306140113727804848611604087532064643290180122715009618607422955336904395501525941752838220871887478140446914135386260323243277028160196668729512408031833816078764875937349114019508846346791488723685152675923452248579591711917213487404017326795369390347719498424432659005536793464135420235127127647638755501482430898103776335781617214542688244289077581861191940355607789247745737940692791950301400948378553074744983129221637597989733193454760385130052610995630288557253700388838989074851058173265269591500846303797804214160723975352474150171477528637961501390499824761630469414296968738802648645008521743426496364462230125386391360564008948520892180294054071473887361979327648081571908517058436232593059991916645494662227465006455659376448116363935713287953533167695586449131081125307703156441511595143599956526730291997462891178217870841179772077703635441809855240884014049901423101596302166127402110541881431603986370466333493321376709315543347328462526632768901173678591791795400657686731990141347262161044428782781267360266842733676586097590929543351992673920037959674459920368409484605450325692222239576802324615143611227876883228335564989160658006936830642146910553772049284991209973291144626316842000157366355810542762980483236848837255994642905737288402673174535449486812811104530009093115939119605933635775133210460680348627260287514798389204419411683676825965535539298976610664394653951127521770952384813937127290324122744565494042143283609123157117049433706510473060458127086882014374431801684089835532702734402266547064909416236136090329647515929618520733408274550984267331342418409018252068911181128345734365909626740116400110061186962072407122208030180451337467552468713226732428000252403065285971502172452266713079476256460384622164145435596612335290050587915578016683788159287015803365357443508384041187251138022399465343642659678824451906248533093339440687276932359254854050046579080767781103709171859194451167269645997224939727168734976302977462796790027368144334844389241662178363933327204431286339026423012442518568530632328291529367737123721147665510211733508073447761113177686904846844590352256008641982207026821210483319150262392735414307450581858006660828030677770053324190007712623752959297404204601925016100905901265921030164928236850162668537045724004331786128260428623043938890854989941285641672819920800428471789095849002070921540241106179934796600731976831775447984539325344335133342400587389867255623959101787067295107105368504431715768274876193291127446044355468437405029827392182079977531892283769767223130200894553320545354443001977599799241516897321616263870973670767784426497495513192148490768283124860762816611781545635243038411195732398436230057418857977286924610700033629649871037419810294206674698295209027880026614112337780334408563589207761779992336832860553151754360744964941779887462810943600639652820393763615242860903943291829487160474791439895033895152002253108594243961614175992815053684014460553065659560454923490843727854433619096071513682210400431677206393790633153229720062743195653903858488119788852363438487251700199604493445153651783851138685727687999226225989246312851813216329462310228162465960397414307635310522120001461331475669928013261120687584292693054958215219817129042376798628346265286786998547365745579893581020904304477258982311238496072330267618664586433246428028416804681658257384684849800609128776741582467897062730474177231086962449219404448793708321801894735182585860629259721721255481546189450662390472378659742968940790900924276357425415187301020806110378309794069529887832264973704767691433457963476170405935281025767614534580152219090650509748339561947787418456219733039748258866213514307565156681206167014031798817936954793758272920850314451918864810762462523754221920404445018329816588376183507177112142726428701950588676569939315862482215967134781346809498727347503124470668890705335430836321678065612485694351584134578408868758826483059897537604481505118589362908241187503191784268643297482829994247682402238304490712846790354537636052289527712466250590763858985711732112883386482146647309833916534656811115230758327683863679267077180661568552017568382339401503516161084733001939528379618362746356448410359358561025122909128963838774973745042885547771982847433643148736500468884352171945870547097487001152415339055752512830677881538624288702222139859313981859187143848066885944920920559698619723422313735282554856702005067467950514401232288722113852039108890364213161158561378499172901994537899525895044520168128560616069795900373724582155026676777214103502518394553501141486088125907740650065150698673979602672309378167496371874789463489390500987689572228518035188016732428185272197056593071315805051303279549668183124881351069430421286627463519793649624282346535274081546455765099275624690644455163005153031873211550576395224999091087144397128011161346225430571681705851891825181821246088174146978122101510737515306038740052983575982999289726208322375205883171963518362226710266713378541787286418290440243887907026656022848371512180078293516495999464981396584938032946849571366022285810476720843859081460943244536187225921103514721986966133216204269566527310348003622380665712910996941492107847315930577891408854504551012294601783160010193160645758653881013370498966191650235663381283572704534064629338262043317653779269150280700768156282550483482199868320885139727166441994314876137996474952724880954722324965790016265224940859339743988730653403317672077305049384607750021222633275275232544210412092368304677435315374718473629645649613388002834944415714187081664300934797687672773296314071748119017762289732284225396334964590903920966983399321797335038270425705564198084966034120705845721938744694973724611195224015496337741319202735355176805585046036659224727050651866660802861939242457948480425016914398071769241099477449960246594681631969681224875813111998804380476820303484552154201865834042512306893606792077418444931410525385757624352361177457293638241835505089611931834587038252895696196980670565878034916061973775874052556110658433826252430341094635452867266232651301802368477279203256839771875643529249591042912345568475605024892198011962708541571847651064023598225234764073581684866455603173347239271021646400330262540832380394924493171901601103441701411256522203644673128237212190476908116286802777485757773374240197916610742123545694395362578639066568989277717655234169814380465675305347778085245877931449323838746982342507500310905138577037973313652638450021174886918366008707855250698930957707818825052411511444507001517866412813710153658249577980807953143125645935004067880152108498643109324198330097392782352741854197949998523592962801936126628582437282429762130821392111117282383844849690482644098600344256618466574861255241605426995034839478611563326024801794881355547829679794669225541007456983542335516712579645205287122302497877975855329169679964074439605083958834751650582635113187345368778646839485969033294853716705325755680991102161903213476742701649466031416520689089499773073388540982958625402842243423911117102305059641611970871394899972766241459056634978457442385533640146986815743845184211096075833332091175014485200350283676173309726237424092040157843253024911854437454589715476026657990967330353245612082060726018147731520407260212701284461617516071127693839611573167175486747097801969773961306806150491966176228098611741842921538081935730660698616272426553629198202235922359191744052359142469086949895611381091537883186067437697179902770174800426878692349387964775300925725983027458032924973256140267080788712891470081280701326364433627114295164205790281009031704445885750787842892342426182938233653385301837014142006172633265953135994402287484172502588471253665554199833281429443100284121742997724959940858663042009463270099285775126514488983831907865468293022873071986964129230660734986877402307964128965494795176463910507400028224901807499789118967346784119464879768500791913564534306679306495046689969236787492631501893288920502832267502105355467455789008512918712582814797116179639563551034333330640200551504613516127891281508628368613958347514705267084137298082286502628328059929233417421460805633164952387253658556936153985853205280763459643009908717951544310586909097923841603524004268773566801172901827378870286926789247922212461741231582117651590172857783032710660918761070652650044589780679533362615588841410331275684426025962893932460062267216475488134113085283036405934744894544955734482051570728362884306607227629454461331156017758116881002661284101797160011115808928143163454210704223840067060170703925958826232165370866389543591996897847483402314960777661099258639666053737215848548718030352507048885125630592898122601968548306230519617389688120867923048231222186284396681796100067521903850969382998660050269878691150654627162967355707226987857966424886406264552966491643827168393330812941839937258375886374447165787593691271341734509803813503305149708452231116180704152147731098578147026438898368051223017203506744862455234173834795658998063240400595435973813561069200857675618695402010811389732902920518041539601001732248807626830691699260363485589621082549410830103793628696074010429098988663376794763089794369508451623100249628017938677335996544707958584611838982498399403999094787987323657756356960307548906759192076491162974973169191092926173992669221642103081409978843180879063566711191762370643628282064595598378877646733847094752695841641627567996405278620985267424066153135050252491270595019806291290911594870348104543086892384124054715222682387872993714611817471543123382567515967240210574529774854981546018461666319759617916464044836150910977138170121195265082723079746624377504582079952888661561290339637426672745187050328838323884685023538752393130149000475678377072747901207271965897429058089878854950425584609119995682988466162558068054316095869088829895410181096232033060387814072176113267705781844609820498773493943912218630753346757652974190064849612648821404196000624895196745717375787095205230302259733829826533893716225949046742979125873284506555571774251696699561361245065509222882597215834908483097045683521530565548550052614441018080573662428928057849125930594582977783346879778327852423198405274706948150543397731143707379067038752477368967577529727526071638077228482533361459837383636306296356938387851839369689688070532477017724744051363909762253100724901012779007168018501484617681383214869843028750093900818838482008148487063703099556496783482345806733575727119278734866313578566365763790713732743710871406114062769232998662217384410363174946536980420168033042056675256966214180340493880838727403226735602728717489715071070786830469125429913274858274637749749030574539015128134525845190896977003534247628739666182042287617429161404261910100432163843580631107579335036741556970873283478544187762006532570343927368204041110144668940173739162417710854038013947577718335988066190277912356208004482817973077292721172560002434352187758699094888719741495613854436685954944611017111091369500929692924616926720892972503546289501349386155412536610706596231215577380424203550383657360884639345032967648335273939728582636961361877366568916492750553650877978978314029471023958029457655538457654199103688870196993313779997612389533499323003966694743561420519977290094811344049970888111768784185073655377629025482630626362928192521939562330019445095223361671814416933504775603806265511762378922415640410102933016784639765773871122705399570415150454080704222047220814619702356154038595641458116609746943690607391317730184004896239567657650876755343866141295097337784031082844671640870267345077219779814362454003573745214612725217109508492526937368977839749675584063829394826623047704441967538220428105806260377795225922312732940012209756518135446339355354684360647497388612213286986397975406994431573275398193122055423496492029036821168337233873701846276462586004210698182580584996109262204774427706399024281337432317177234351365129205527364805905739744788995263701721849830327090614830559211776880620323666934769506227022363805314381962680184479685636709016619215492583422784040358126414411627770413724079995970530527176958351193488648141747561201073437112047403398485075373815452628137715049623311879011113079345425539600834959024714213585976127025146676138349121570251934584898879788597775860118260389990263211523083591577061244584529519501604708951510177125605969004502226479872926834033679952842910590759889353644837874222467066803200275668953181601429855873674769600721598401023102189930935124086234051515341160216475984295795068974712155406093432556985642876594462591601147060570494273354553789336094633395239065753903903452732533834637399950814468289458190604021036002573611646621294525870029541328711797608625619259503184744738288411301186116346275251351891047302259838091658838044207590914602502727317497656628326587353682619396720495641223563538303464808779291965494151681781944811909425307609404882569795841586170393773840164883112973359530768556888986763286930988000683135425189213434623215877568827715348998504708330592801896693577494834205387559413867610959336931703237263242563266067742341788474244190504610861046658423490231105161215804079844977276433571366330514385960654391587175700306825125556488151744099985544701301946435571436114621947799225965108758845410565530501906195773567553559973369033203576955035663541222863845181750389282583565244079497563425332690736892435287084461404098312732120813320255477798640574397390818600669602191592341441005993679505098400819923572946735095498378424182953928574247001193868339929217834731550615662252236913913709205496795890585334079630950482581990222648862509025267266771034715984302032744338962358262408963696520226230465173751415677064408338020308420752915472522692236568165586746003027791859675681334884074253133672582894408078048418860327696602621871363183367999534784182303151628993647242083939401461210942597667837075259104151842612483150849006689542505241703490588773973671441593541558248153054615630137276775856202542676788192510586182116526204445715585069284591024833676035169483476348678063138322270935713862313296702816963137380264197791472070181508154393151750580523655920330863758401052339376284583541588677437937978181669815912550180778014643905490708304611365893095040618353645078241009728243427032528986425992420920961175461250125302114953665390365234594590381302912414302650417888600315146748147536000374936947014112635266780082178505723030635591599089048133969231857702779042733396528770718895355955078410337479332560627398220478912606950248300292589002887806791510858713816345248722906361742008763063964019265192737308433585853593280021437757476767576279996489982313831105004728363883207800880997520268798031711018760415338625659554959703123176712821268479194537334529616274519234951322616025277511641969752048717945592371339938577004452984774635057358132888465363173117180110512719150832653860242328455760757314349923744734204116433250549195282235204295376937265800787645012731992866826182517224768320962393693637689103677029941697689013622917395141778422228320285431732897156156156072637003170050629094196668772628664456123465673672929353543822987691581620328707070835339966317373525488890434999199608291791260307584520805212623493546000333101578291409708575876721250919031370704180650663681548553425271782381908175688779918436478828883334003046698603554714175735701354045763399429625697300809224392274165042493742024193706819499093087206684960832135704760366767945404553446212204546441649969405855805819024494257694056463173311516900800812458306111434452253703838567238563066402843641820508661251949595085995925699393890611110328897051876165207356003336287922988236320755426022793264595597349396203206830965425718536048144955446815005912496164167300229105266177727180368461017210236712544098048217739230763949674921637564163186758501915758244155341431340011244613424296070668375645032989437142336799204201005182947740821250026272537295070218875392767970339691511667066498563401257433481643846767377202964037035645354620029491100733910589154374833912579055515976672157961224730163267772481817999443595903578004836858031028629938424728807311541466524439380998470231231543672963206651701792141714236035562250096487409466803818156180530292442357406290177860098095616297226627353066980283488463077258953390407722822288839475286637322910151381275484836928524620850168998638435121640462965858037983658401253324390314729603200444541745411547052706036812262536157801678886753941336190141385641229010417643460209796920318966242599595264606832530073099432972829090740442302843848498964319192648656510083808837527960834835052239340900771723581946634347544933199912319940667901964307050682893652832852030127271054893856311482657720501539468457085404855972960699630906600957432898452959872790189473925420655264397741715145060888814461904622311284629166133023834932602067943628465700803504892656219973002259153153062741332229268823291305181823697250527254604387532628242984390250605243223838993981772970344301649261308047303549091301486545300310401760207486014646945377607924232347628113571303768149401630601559623824911088789667179602779785378514601999423725751451780593082291560219628984494997206985923600036283508354387119412580633113038395168999201041099471889076822505419137350625761263465790613911308151898754470733432321241691390552044596998660655546563365154169828982529565992818996829208385882967277595551897266955401489049604982864316916427668954896409066645000037829058511553371362243839387486973203849070176177181124146887528802138602490749658133540701512302217153477682789949748129737751062473072061740953748757582820531507288573477375849333682345534046038642537979371425716844450448828344116799326485841176821887214880687959975722950568060891338803504230713636316565250250224352458590044746672112012267643173061468049269514314626578949578421278457942244126692514363977072454502743708743665399599775443549644669988939521708164129447425172480675277931767080094973186348942582155997753743342402949505724709607857400503189660984638859488506670000753073691744811538749097988978616605197989879185863233403545935467421043306379566937911424134946759176845626229262457299095587800877489887997556936082450420362838533511832560393442293538769862087887494904697193538810306514716813734528492026978329426443348476718454495731856166595860319435998817585522560440329830592969193145317868579770600677476990004229706793194827774553984383354921563741982050086988821108455187773006981855507348147653059687490356748487888446012131052116243487976845624870377590226856120601482320641824138576002082980017714564061051929096961407168026262165969535820022067119361752291385940410058987413269746161113750603704975657501527514962460043576285176201808742354385823926796905478111746876448391258226976291535261555797299967150218200619214729733246275005081681610395076358678317721035424174128239671318152155244554350087643485075104587115621216710619139435306521399744905183318835553606474626516825250432190404430528778714903667829630657390961053205892494536657015480431670539933182342960854323790820337092221356025160474801605643652035745421831709329460970977532312460968202965226707739244164556935019394789289602267518977631482165612281584920238659648235860075556597373711637069623638982372442004307970741709024188176148696914981874470181159966339219525861987615893087090148428354242550157340164640452035767494377767245378291567449953687491439810021421599790692389059565673402907217574058067811863300812164594339552018853433286193358002023230463320497121130400104829449560357979800338248642846927774730454075551652530648415899924247896844421407774614713584370600803096221427127890734499464761549439624610768644837277983891862781317181698621258240889597007437166271024823461734173139153345781367251511774995610841785882988953661408564797654248757129325834023469686448570951083818260472088642207811544757619830806320516220334685811479127364229300871351014371438097607542995985681692505577253355673036637138406185655554235582907806002420685356792845047345011128045138517214261087263687071344569874573410625707686083820551013592023554353682398904979858857944794969476442428462925274735710090501312361933625597545458245838763376895210877578079741289272297923498103219999435065482030690836425562708021407549153733129708062409667289580820612896493098259047182055200841001321621675695870643557865171667032738825511617096167897591327669617740410704868877802641055939458546266464768498030952945604815380467451523294823017945046485549321421383402743568355134592658990949463529028856479522949912837706996753120769788933467344087086178286005690917972786267191785795857658920373239055218254944167303191873819353421727312134500636771210358890011746493489980345023894508381474723588814735406907724467700600525640871420619081670001874069095090599729390119512035820030066813362013196170597180608914127596565583109916725578381148924194949589543569689067948136143556850589781962919357865820813955125702555697632305770672248585581510091777732353524726997724508171066326131304847744233988137397398417671553952985614479099488682768902198834612023663355675661891841132062529864838023640450403920773783485656698158614525895515116654682559826623086117263570250727194446590672721756551990722370595537616450781411921971379732626136101068460924882800210495451242490266999409013993663289338062221117756888394119598039560822685882606414946043212347753343141261969191197728178417964167476305643778078193519180398605069763074685854817625237378419394618322973434902221507617157568419382453010683849440196209679093235403199172476433734354066009357110641561790822992153280618409627986781462403397903051499137384960021268764719666671744622082398342219467670859615902539934825494831978300018848552204460337092706142159836413584904882866891666128489133403174196825697750007747691451360250647241596877720901759832195562005127743874395284160444550660281037103121459050801455468043813677137879524983409178905800192703699418294113315716762396096522585970515234513302800004132426745171260420517701187576696428222620195664245624173653503485973873840247515613543037506434364032471531543729926421915429881037400243103080812832632146892226523879564336492034626893621756437697975597446867661339528320558794718708911402722261680064166237323420756598707396807241475141244447986374869412984469180609237462601290376992444436037805241608040608982001494505282088654842455747969210537652767307839004763540449698980365514533194739345035359362734007998296217319290939949676291110934844576932188678913472237783439383689105498995575779359189765372601983662018076020024155295150126085051687462832071690774299230477455584138438029126097077739533097126570506175091157118771125566807060674422548298318129740074774318413174125211018616971054264563315929674101448441884733974253667157131551680887934669797686434467983555753828628742623372173785346334282658470143413772955909600456946597212749083006770183714199698243140446338826931118591548982180957810324628669503672904753648126217587141036658222394943333644044093316701797463408418887771552082088540373617117560954021193166519978370812163888759083863690749611086836587865763581023352599444298615146019800124048670926147726924039611971838498912359471543595388199942347352336615116591575059018691956988189304397049713676926885308035362600566328069280874080210611318275984549157862647629699110204420611240660268996097850425099029831892410562567681342649146000979404366987352486022293274295236500038536763910146756473299101051202636610641270911314715559110591926162724544769217754265498979664035520253546788864721066918045856886331107944662443558612089495633856408868705332225105699779092618422510891839160299140347778410328912037140786854158800300809729883134621435090548430159009830883644655201655775070309471259951094286521026894370931249871468034489186317250073879705153819553033496228445124380956199864815932509775699951631817829335951739294162490365961340913819537035236600166131021554436949775316240791384259300798556530616354496675889790597401297522250123031756527228938901416108740027219640305518716413191774315060185852078767371545656780553941776005719403155223158604529913675159000225152641581339596603335097495154885283741746956342063763477008552677577433388579000698097734762680871151555823496938400393217166109219726827046911549754353312246419564125483701050689355589059343102223856758426471231895431895593327049396728898166575981855726725243404763150046937633183211014197260795522756765325651704599519521189968023000003961688812902249632406250007808172149073221075218437116899858089058290101600196988429326817611743607060952134052012963126776211477245109874084082201124656170412732460835859534459565827671501374645686493904240387186831441838620700514064766509235181589199594226406902082217553656482980030987124444304054470493598425042613939245716164752283875745513209891233285537534432482235734949272531419539474347076072815658468017088291059173684150553971843165629410148127426527339434692517685956410337773090052075113842929543881903527055890930735776636156334489511542673175491469900061926277262577930644479632569642768832488717333894504382131111540565880069897111438880703463401254775960546980638853125513735841393628633340860504690849410540780506255726043687097274579242196441037650937203626043793802141967529133717918698560975414439315884053253050132966745071284283549740556838045344027198297862897399232956433259580215556269243850648036939144387687585155901737877348012968712375793894981556281046682066254196211073242074565099116618508687358024251591930921398696722251288905800807621393465950866598478345455915841330024384102771171711405789589886546998186032365878447069238786662473315849465403789696257236401426612022944032141565819857491300937292808629807224826722137082693030540032277675891513305442735379243657779880208296382368333450521428525057138652120940770937689263199392774568453761230152238095407796284297095494547282357110017855333016490376726026968311284529785618862615297000604082077033918223103140233219120178227500212809587188276180652388935320103488846600869190587549902890365094225577500574045501711757135372634048637584512521320106787788035252638669693784972339760571353919437327424238071878558440601678311367564713498567757315106403395040701240007096994429199985021144153310860931853093387430828552206086195219580243836010293048172467024496512199184660429029059001887336817806024920441092565961849939176790855864314253617687186978776294237955649247757710757469778568195523583000693966388624507804953593283319446726391217902123071144379759905497638039533174666380198882622573638644483532442942472164075282750462798145935677460317093221359770082705449666030106623559098424466982204862927912069611626789314918187182087902814340023152596714944537693116217346934718344070793522432633202516846389462441564251631739498163314043114543621271706034814664415588057570871326343011521697549260240246802217371619843034306129305507305102408321983266612776238138292928953108856208058941747031444984589812878320949186137375546311992844618871583619449784059211190968803549595119512362819942582027120814145296198178371410109032983131715747406313739100916221382100277593513730851160986765036578894071806346408842737605890948471150052439355508126018053126746723577712610727662068537386112778319766355969141658846324067021625412395915160716112486054216887462380305148255402742511942141033409705890055967032541629594299971900348441793830368094629563126682661554331601342240039298345506175366809076910832584330820498357298989286076467331285568079769948748528095938516406404370405784207157590808977074632808180374776355698321318704731341049365546784568726043042345773630160934841988747831961303274048249831639123525279727822422732973382438891625832986678700348786001245461312469238468104585256383372842572221654443197727869790360893289810766305963089852801214939538850477279682569792537600778148372202176526802986357063506122925214794674244337891378809444913997296881955814286208198555710716898333773521283265297457880709636986022964100854951603015422278150992224928839882599220841528667171927796228866146084747919478745768410047869001653384041324472330183328452481262039881003652006189729992526118799615702498808392502559234055845951184398717365121336178283696974519602527830805541936521181481517542111846018381415013671802770145053094249891323981784487017844959211205909677271934998267539153285603019525342503430083786803099195621638520581440168789009515647807629644888219439146442138201833420987723317051641473949756463474971189074385257583608166701264195667242307455915771686228134744251401965296404974313754684541928108287176029407121947054575456923988800503895134752040090922196415868046177113103299864098392047586801401445589729291719570412336577469192658021375531316370939846649311520255399154695839602514952195572319258945275420076647108619422852168882888850222603690596637685388293980769619326583513466693435646432465252857567110663980611260392224105326912496662669474060680788801545173764302793160176962351315402773301906926354601696632947299630914020706493001606608624505604049186766424019819317231988850650330734646300846032108926660728496239867214718604775823020372043642455633179082262250652756757850766106886975647503110777465905428453591732253958356478888977462510044147469331777291618513596089618352188813253228991127554976367272880679071948890686862467118370732014313537062077678700551231926967287400872569014884328683125978946372484254028370210495132417534189062061862297393439559123748478524066115496947462402948850659619800228878865480092132250793678510364954633395264545005548592913611905545407199510137537439058933241273528502025687814356166728505320896270775517024234784193812501654175405915349216923388613848780645102136433393503895200844950031634043755687782357264712050079763160775394900868267523938982429095860466718671901856784181230354499950550238490479575515027230740428072537691390374195399791836616979270062463991696030332031155643964030291713515542799812067718412726875367701598501517767282291028927239876070253025594167479556668495761888895108616941120519794596451532424009635933328898995145752281192373451699365188211303130770143950149458722551884001223932732170787738298769332622250537762332151799682751034668275566261813671196353305659160318716798805597246460898200163473217070823032791316712349737239387554385629839375425334110663775290571082856287422467295836327350149522899796273989083678004025095727738853586758860413951557787050921573950129396234594934513209401881456291646428945019532139869372036660485174147914290137348380983458272620921020841540737669993818881688333501977444422125704920720174788279654742033728418612213844053790360748226256086717298371481215136972357650296127930649001509946445341392930241752194889958626394131468423896124260523775608635047539954341249346485105529854250519443869243528338789856247371033375034892822643204829797029278990366497940951724078878539352345491525263135845645054872433438602734870816051970912448832389934023885491501252262301542770246857173456995817476236371994400666180059119720881195906109033929945447903982497832951374388393789116372767048553757767944209514815271751784350285937953219241319648843638527637477844569329580816337709703950784868582485534301577930885619639453095956034917072312038586723613285611739419793613978081730292163868764359551419458918665029152259927448374405949391767398597648694227229496698429308329125464173816430665673012584343655792302215168680604785299929666707873790905649460430803636991003139417026809583282592747242451968110888596941195828287461273149945841067216208284196663442524437378197273305284113354140706498674745135593407713909656746454095226979075457611646036542906271598975759408148512753605905037697963443456547339979803178723206729529040149653233211524115036774532716365895039722713912924851062272841619978003316106785506513862731848240536217714737538806281095003257019167057942093555423854600935420128112799102740338152582907843445136450466233735726626867886207359156742745107296523766907944055731859587443800968991955261335195866800053093800982160275510430788375254566727151176307534508612735976744376085176478701987945327208144376300304754974365849457539212150339892392778417056841148260253334491705681134566651538318675736644850080011376098490373698580204793501037798703862111102915824241775134245475047815911985428169584403166771806820215443810375757659843322648311436873429213033372992252399479427931946471139682923960045592860507967770214233889474577931459825276926793172934140509603535675897224008980393050416126993652880126048847963295775531033376953863163340658658522541369035277933745390766875566999819219956230521551444182099806283137253855419112709391022772980869989083683601684056652051163515934908713926345578516204607663041984560545518308084949203774968741967098885692037549888330266824068585471497911275480512847122306255142689636418957942350263743606400106665276236246875513719606011649240847168144817058647650652108814065944853591864447713084461594112675927433825203216720031093680261737980434094885525257067081565598060779236206296937072808759186501146115795822957935545187852308334504068054222108869107288480571107465920930909344613693894906856685693166088157724642021390077181484985473927783205679536929868893751299743333513337462243939226437281980597132687717113420095167831531445511539424389789413817619572721915603768323810957526550099508056188705449364739214610594482624416277568040732450220574351675705277689730416017761781874816411371602407998491352098630735601616020274863205836303996800749768700708469026234622926295337173780101561579702077948489725123109945403853409892059721080748371256021013094172172445300501221727664370776253994259113122720572188452197632372360627670703631668611910369448726014049610231533247286404091634380811874742206830799977219507645741005399705986756434099828640480910697857349211505570951724738449970387789395977859384625192365482105611782370445943633510713626926041996145238030323227393200287244403746214488336058935884300166647051642467831469153242583790027366226408359839811145278465405376634141145380249146075678648971561505170488089956997173085393963280860827974893886366292514834607009896311967115428548771828177346713346627213820163063581752768655750948404807059008773914602640939182867171718325543780464036509608140748061163033095971125121999843713523015778537962721514809299364250156717937170269309226363433056687373308140767593694483763758978880357190684907719288472183129405814745328020964208705858256351511025698768354183992626693603509881940219420918991616285583767845715740421970133357852005798762543258484078512770060638983316716754454284212945370600617537915707371222210766889756836760607124232306159284289672130615230121004728030249694567765233071336163790717778069263468333995180058204774429721724132948504818231862186703002373041201142017064124153226193089425240303402430211250452074473372205855646185107556229159558187560912322619914598048921509432584347615726772210133145341602530564680445345157237541103675488420248867677144146270582214652650376623726382510173789712454801861334346690001713429220433806976017160546740105363797818925151701240949516556072967871915168650622937973687096047797123918465271161155353752151713430914473718016143414240440634510166097334461104441013783503692102018756284615016239562538373673076523271285162563761356814272542445984230012045147498953134165381481505431066083828659991676332481104810017666617327219886002574296106226347058371183355140765693616538593130696957741500078367691611921185399239719323194746978005918799745848529514603775008146998463386674266723311819400847528009155104397961277741795305388167241595022016951590622450617280624787192110968348064821134120173529776122284187183158612065793201928832395593427130233273669986038831723564073189006564739544341701469072583799786417430038472575952556420846655109249053581931124153288288677831138386980457500139988387302623145930707053463755819942391119895035919896041587327706818130414101316659571728925264033478476119728851346794709030412260573744110734792289127605965919534221551984601757992595482214556869157347591911239167877484857645407941689009861379414244741551667779303632986059326031339630902555199134578433698989918282115663904395685388585970495655249168769869198465369230746230320558558698669587579251453340592573287633673951616442035274499223689700417243096375049005877773235847237013434452517043858445218861612939817655570287450492183436774332333026561789463609295985003666220584792529238093447949901405161573803570715670725100721286387602134737868681037615199375541309073926783136691349968421390056616844170421084890083449569455148331254512030521128413561298030709983534000981948588611805493078635651624172625477415721988526303733436149144648831454994749082426543204062852660443162030108865050944138497449647353693306488504756007802879629618614840615084107553000819772737846184077309903490545566326109901039566588067163840593672426585487282427601628148207825395602648655597486414276483113056608333343754270316304641290410736870152309846996844978693313145656603484334244240324469190282993521139308955217157989674607296008471585241575095524784107711981367187210966662343511282530478723378445140028668004605359313673276910566300133350772567173905746781886977210113919492074089385610654064559467992700499577079185362089353998600805955572030655732453650504088453154392441805911430316979022788388430824458086690648856508418160758610911264039112269484673598031469499534624625736411691530717193482021796921532148096033009149086369037671222513713338839863432813783724160630113677287053466440647945896585727016506829287512756263758542629269432969635679334971638716128467604430961510253842010586791673181655722021805043909769964181158832152673343134807178749431832379384819814070839156558103530028079539097934140599435567797610242410531276452926170548154942435924168510936705079777196571191086897561862423144554086852006031192036042271712261280821654437718071968750504394449250926888867345435073093940327145514225917015091950093094453518014837900103395854545641529110334803597070935851580776145231355104024823509582458454065539122649915580640750264779090375778033628042788125301961907187908499174525809501403245033979779043938564063921646281321500935053388286826043017859229413658918147567262702108768727670273654393232707199798592704345926381441318407214267645998429462094331541276362886968738901640808870111575678015263381621807414572379544373175404760998926830517389080263651824650986009523014840677246120954279862369653570027333537706598858139989572329351354773558190380456751220849511656974762677603077732974295291093045984220864192659937972910293618987396160693233228335697308313571111884766423037335153019513508507715433814666590813350378741066489968282735238135291508982412801405195076472926566253368692760433268562833077110621655912066485800605731104889795910122378885529510300919383098579527513172525794029803168079176077631110637767286641337658541949997027571941057793914261047329372562220910347818000450463454054743108833077031329188170557554933223740612046799595315466908149052332575606956203612281414065126066803169688807012030902721027304190092501620516391244184643347518008020553005153931030116683926969068411361627582939509092009106101466077364052470533499774419059330535911642487159936761081835723973788726661846431244600919212570811310694912211817604886588986276287214234462556598538483930955645685897475504033237605456221667353855324479205862099616951071093635270321861284658299888898833043830541498376121759687228382748913733335962157487597795690737458372346188970102071241237399800492115126030697168679875839915707127167671525632292528306068780879245484800083240227328008882848753507698365014657484186514793761991705660944013223341811224209355012676722949309361663082334950415648180719312640931062044585995604451467572241429183315070801310856960694094564369286152432561673795880034507807751771657556378047954539565551794632651456222865875180845358713576514859679772877139190569678714073802805945327886992888313113221223640202705644696737191842484564910109864755667182282968604330746441984560846009853303613021098120983303356669807261234115079571180196942701184191374724481459513392512090433332536831594841112963814176793946143232177947045899894189596141159071047847198716158450896804437792118364919852502349764225555760691243927214336976164344015921820624171818831174091636908111124643004129792625550535137996673077375980965451484093520304800080861021100659205732049389315948072080683704025800618368706383315387535532760171562773915357335393948860572736414990224415278689700595547856908500028846990143089505035226781894678992623959186724991898675935126803357006292732618135042099984115075068420392072131339177279244887823425833633964737036729187660901556109521199727763932906466693836278680222735449435690609164695913426492641648689289282395324897502414072188568212380615562388278111757802815202361196432017170465224474873178901829418750351364978008026976140816742570595324350484792535610658080684181418108224457621856470821311039915666094176471899526909046704998063992396445300007492172319419705404250277465129460202718953762298895557534996791357421579555395847730742295692782263509737818661355286288311480168847880531303739634006584454384280671498146997992808451629599928617375880313274606262757867741956563213452784278928203427732522902807832890388798381251825141432327658434340745451037924102214826377803263245965436553228366279676020173085476852744764155425859132436524322345147385268185095129449428088739063343646908172255153833655604328413274459027784423317002145804819491657144388804070412530341751285171775961445186604636588907301313814888125556525603688939777556762802305689730203791417250512995382191017066525677045610521880072022296845390450330482413070854726675298166155382738316899685016430924206964368214649426012300443458134085575202244255212127775852560746922207254373388058425970669433831667401325450356476357262438414531651685548718046335259424409993208148331915206690829586164976716508298663683926934110885321874226785603788276002194015413680504362395065431890863801633968511744673165477424670016577528060220540933469423608214399850664754866912049272748599173256045499754698817926860445407958555040374624666944228063538663452356308749168159090137246673365690557120272610918275728855607624420472402963712110380173737337606677473288533840804668495589701154332728155777568166193813969473843472106343452342817564711123138327697872646661756505292744385465457021035490069141819236501561977344646478288917380391183364232973090852285602127907092911198346706593815136307760503899213797446068587706727330875613953427906909336025142859560319366987995230967213404800988237743905635772287141575729069221218400021335224458144405359131790924986310318391400841419146619352623544728313964620336024919762335640937977646723087935736921618148217082244045152624780069515474437171940947798379667229843310820848871232943322961006300157930020818696664404213231348431928879322803813950907632916177040384129615806826453750099726648299720266094092556287593846167416387131885879956340759564169541969906458106574602456533319371800134660962128758269050261393393485308940246202081017314247305729752059833255383651196042069472543738491567890714993072538828313952956748876389437602193564574487723532187955095835753619473636105515903675368713004805441106415687355761361248614087401054683126195954594136024418985096897767004424297315863728683840556473079661164305626753703972567759008302882483935118627391121966847360347919822488304129553541489741952742979274117926316750052724132112594934876274502013689268285322822299225546505335589196482434384598019615524368240907267364802678704803957225064625293569748268480174860255972294183767300024809256618302664038432734448515028336306605468873041057266941207046493150751661886982180247822121466237747925768036903833266396105121055743022201281011616580000827079691069975435644945167615114251440130809597125660664148678666977385322046721867015454779420243256384601233906203108830345623626838101868342998957120997254958197005713208369459242106494098108272633948411123753204433781285881225471776990680780580277291529358787827012504296335253252572737244877837479447243576547571896478431532667391789858393727260662352508616790895089933359133140405539462043187367152947570008941900620219377741764256375205705922992595426319159407795769702304162818821524938965969302710574944948019534259692677914412789715031600228384643003368653278968330693317433545895738938960851665148837615491507457117289132422127704612360363758084776100114579508038305282710599158768815387969715469779219640593136157129380465177927856247043177560497262284335309253867546921891301309530896062100450491829085750048423165374903237420545534721951755262609783841915068635436011964750145855232273244605504807473561737161719532139622346290473817125522469077724919954802740421980292754945894268296113746146429046321536172211826717289038499852136898829293229242027565689844997467169942174969352499755792074022433002800306782186906513360338790367963361962309087564997508905233127876788079955057193264240844622326022091155148111374818177213313625881569317545209196898994608662590571407687793937629422079976548131390265721782343263536678700444838290184430218243414754688719023561950081138803170949024414990627976860647800076421245461812482024384774526450124067195922240038915996532171457018237417626930053471069031487631363817930510850052669123679804672883436127774151175632303935005667511076054504605506533914417001393302466632105692483390209301901449667256902778326609814223784189573047558344037910720684777719752561628900166392845545350826715380908297009586357034988366131085439246726435575989568921396918687982937870407843691017511746799804813367587279098412320743093642577898776684373302198492716896165876299818802301183218318779619211703685458941447340816081993868000305371040293094155771621069925927354889308132111431150970683027873587874323204868397930571729432274079322981766489440858591003379020595915140270877759179192387126478447954959153241918253187923706876516754922157875781451304861912154818036687811606353663078133745551992112571849407412741662034885194788144078569638660390159213806322087353390912678973834665414829478662408012241861123258839188518308469832789388109278369999219267724185465688541767659142870600081139877137535244841571793673801857497998922169567462939305474428420986482670283569563919652118535020108026199676653905592119732731508833485105337803608511872491750802437449548098865754194453241038003583939400683073929030715615448057832557796610687189449104193572462235898452404439736173801355207443347961226617532174292737685801252055269578503593134636276569993962430249441750556058864648952006229287585421500911611584295037382715207040656372738057229639353670603494268316099571657525017963693452542526125707307805829796366895594681523257041784028665030605046832129952861923931805686008205516224252567087711954501075409801848223720971117908637586516724148827491705044187820504211979092355521212445651752666998740484838035035570465566614756226321323692879062349436977668136119024896440383126679472177589305788358110152106388599714810530591986601491790074458002035488637093923582684341790408984176964769943255403938214096705323634352527620768901392081086313130839381223212862734952111126865143740198797222130661684184029858121822394011226314203804341437007900506203725793726627264281078207128898827100581599233007311098541658071104833273017689083388707644976794910580954694880901090413944218019484014147935860702164820509025064413372436656977609045069726595750209885616369497013721137659174888304832962753761138982500233234156397939212493080628736180223108984637659389938682895366069732571485569143773778699469424113693097425598236477948058757187301397320263286453899534246945359332285758347161100785436988222175118038249817584276868942899401590765498569665012473269043536008124324266826484866030508843468389880621224005403355476755016615638742318493326902655556297141196643205868089597681805433912981396180026482930423289637496066912150798163016241495952145630440296045892531846741574561668143983677335249788393229813294426955607783549329343221264750661376995094641004963338286861163072678982676393351157684815669970121430025767398832661545514642637032447231798516637540892332962683746776251636024883513944333180640372195334744223809608805987570710312427807991229485629114397616611088464466323655846339482073268792907481237109970693619303420227321142126297033712880420941339746698781837902765281030828654702733024267056364394758754162774887544269744131532073577284165342674585840677236161783451115385873258856234214992279175720415476819731313606863412074604252052372995774700515406019038987076361151815281274108334565381485227782232945916454266853252759144189524127202868554452385236983714867969841572376589762013426200355534956490676456450031979183240934667000645763708399418807721177072923997923068617271787255483876499840446710162486704711791879629177338795732366136028271850159031617210358788866481027520586557211911896023440598547558977010954816743639229177210786184813173612166190460043053189679575427367081589270077410674077045365009572695512942746374855119965787063282127199179205036353240612599532182740752999788898503030170016491365843729645692639716258610844222946595397418431971627330937571722703000650808660631099494969958278582023739759207883009851149078191928951621163887959352229111259086811104225316427865600534800164854779208430044216345533102155058110015210406715193263441082221276312080005191172939594292236805503135695929671475276131377593650526452702521677294650958250225854047018885982710961048082906144510788356282415872285587901224695559464010339053961336096768418839000744785570846734022433866395708197240080207658035518850667286486701911371685945649220257510437782780412892196510424106438496516848636493291293434307466863951554879519345176530804647533815515336057794711520748051206346864227499877176539027256589223825146763120965814321738458397908224173069943311151696293974572982054317781741065849159588846718538383647900222185529192987887935973987235344436970783719218814442858716254312881325212189438691889905714786938690486911519067087277279905660542833838488138928062820279980616413017505280421550435895047623298634663112092289086870701705439684453872612982017439062727061011907800700889173768609778803790082947622947680240282591291436325996140442611642850802819531731088319196496156838872620712229607984962423287596403637812371418763265978584601538318294168202355089382205366831115476860855444378306130600736575479178050179236090477231888921208981563543993094332428379402276196668521446304760834777484435638602071219054787048990240025293855307447469717385520144047177722399120998115038756319837946006210057787332392873145714420213118725647657453052612820388933301041188934583369698360126389419332785823180112784862584040088981984313935293313522545952039360219398421950023014564701457647496304761165664678652512361821508904201748742628623601636143960992436767576550831092064907002162548397582954279143077068757963482006001931935972388857366556715005856847690050101330205342831922717645443013786580245047335717802704498750669601920426179682523027454405348202867084531330750476389148058227008536142612575797559397518159916296737021371724176716986380719692652485746884120652987122894527280070633614302386393452402562495427043330897751632610081033590781050414227237012875371672153023561357176949407044845454970319999202731995810427579444141281163616343206184230609956503591358425606908453804101184986749375201088277546391679056688937846024427137657325768242113104074264458811010700487825981449607698883831330892233732774231834667675974369852554015413617029811503556645992089502253263569690840303029523808934698554408617784429543195232351909076353081251162731138433534057528990086289976548621978064750807396484732743112516224117708099543775910475892723736148252600024861388343357815326850847258425808479645552638576934917590569700075479276745945772388268846695808772947041945976806997290247107628931850966765081111958198668674867720295025809333646241142641164820248602896720208978756476171469660424155031504693644599781016124573628509932576353799925664667599464271184828956529407007821146514541279953476225187279392256818568615412056603848053459787123429552506419847785567102685361747524839290861210262477893690555844830769337396305309228249675357095486283305641018453565329651880939853701400624502034561190716448942586972526414975306622053692032260951486115475433867180399542211130593946594483188063517858902368707314039571721501210760375243418951938767712601266870429107690901908499487696550011485534319392996711961400590192968004330580016628557454847555117351714240134779071873114749977255602902695400006639879236136947500062154169339327575977707866820210575770535783565755346957322538246915903747359668483908821344530568790201606598405737252037721825095957693622665927248543644047306297692676953582921814004117719885934970709175091153138298812642300396953735842512279793407412183093113644304727829528749871029532539537442730911643055866422269274844403613806429201746327309141009902581771853610267603049156236119902542713745869055049963005298022832942080990715224917199306341573031575187419027184192451742855662268324199466342719531766037678319723445707887255186778696370604954963664796469819751956494563642110254043978904427989688190718838356022661641331323741287842598765582988939480220910496837757375784004590746362219434095855456454224964263606350454374184990901176582088189784194724932931349253948271961028939510242574091504179084629050408591533456316142223002828742528827326876280146927004502878583963146243921064564575472727329582584236382917487767093862587664439147656784948892589335859402770752490501449063718600147036145318229184867644871632616554385743412162906717270036662953769217033316510766707994184046122204009119338293265323282728403552803718182722437114462638455129195474381471315439750368480498562898145453485950559674863438975256135659902231622759793178727998144440651958730661926609292319368827329969230827383297697940722769483827714338024203907877812725448376496104134492703244643770195515495713983857746433952600197791012479927423135254477975503324821258512995093420485820654913350698622324899138390657650832664691381356732402652726225723576119045892862258505178745206618185359833792351421380048406322016182303162047070419133436744115028689026536227603269429270273388266821882331061944803087587156192277755829369304933762004685000426683405676084489833156437810755072657645507904646886468904040411921908313733659549067339732757571678962571263844476403288712954526344473645655545966519563483143768119886195025864650618457687964472438471302310538517602489294428582847936212133268301600033757293019419733738237052441195181134270346815164015260999876388830993606221670706594161707795434365853346692822326189385256617115703828658350942906112787637144045047869064860640197380754605503639342558799665863895473727243221772250097538571871586600966960607594595944044253938531421811487523685155474562041648407613916889032220565117173641383963494124384554733037259747103776017516773680593814063965067631028461492356526012394603807447790405163284579623287677018091449710903009540746238410321548140011270497856644807533799050395724734464593424060929709036456092604723474065738461137656341352073955010606373538356789375334373797577734462942382339561040541984727576284864668497874272146492734448932741490015390311999520632498084667336902826665846209021966816599729980291063469253324155420086256243762007591988754480544339828768213226161929302586593244681644457347651544865155895423763718004457670993251801724879934460078670556100740431294611722178358835584799360006084814161817786206106288086321275268457260415927071907672861558530042633996577710835014369561523471783044239054730909458676828614194784670289974160308231477656889187578966952211317208606275528453136480852753206520516693704000024946766560459933923722412873996740661429992035698767678099136953467399348170678862757172975005874447075491665917616481989851200211764632272486453066029552361520785651462559464366780510873664458882873951984962415438976521754564602354785575450346148841285414020001699335175423478310147733631472611274275834641582067417208538446720771974585108650631738966462707947216241935639337052363562674590515866290556300077302472729380251525691809513418046086762715965115272754405431007454442194343190844476764748530893493578240768944264817397148713832949746744462651294346955287334739384235318008390365459481872212680675278992894616422776499746471889689448125229916880681501444592724855030670208934101128664772706560964839819048638858521023627132602522505471496165701455772851413723014710639719887560002914211430001926888165862807655385379108931395707535890829578830642715743752587264127821677882061904800105194791653994881951460372112761123805274023890831012439616038802252342409678116296043167862298840190874605874764102573338816851959599534494820344225377927315429207384603431260899492064286987377504057630340153268833515951576363321188791921278973679044024560906042068590924439481527167904946537465115180921022711702788115556916776612968347581256130794245333460677531443047428631580781003911900112315066044558956200533855988279902469532866798040625798488701018340425181667762579804616445375721593424218666640365344300412788269139641037559731518009775980165167187337890096166017853746703817459099796537345426247401995654318870407956732182501541247915219114852570244318406905149466775856132245634776464080844190509057114868070284470061165559576508960043046363667882437396665256681278654143260519160766961013946677230030287348561282705645430677372194621391822149005226858540639476740456268242494958100315105808298792220219953592636656760751283548227541320158286428551489000248492828338306799916818768834339320739416973775328263752906147156305356749843552421838177592070315053733110039380558400775177322654635357363442308169876031325104436666689846907754367982475427218993604502432159158930818106809743849860455379968076317546978402182705964888581456446605686367853170457640269272533797905081518323041712993119706663031462999580938116321162992009552574722082737708811444452239492233379309145078105128766276483510685648440192220876664516955192600357034221834372951499674549541867325494595828764658956178959742324271600564810955441029894243460643450935803686562013202225422049598851558647255802485306984472291489351403025305448598228956108670691119805477894845226146170081186294795072695724789098068329346187307622041660162999251252205174289394677593455422851118508829876891963915822399971299210141248225633786824765409583877919345383065299020765059894586633024241183481022479003228292696137066219547786137675735762579863626605881330228840757786595490111429520818444615585711607164450739473585479945269896988646353601048031768570273157256276294677062190218939985013748685178725881051584273079418018137282343185293414155481311428855294654574645260710722773806306378842117948671151461979551972550519055158095789889718370934938292175548795842118832198791023038165974421735729494460012960877179579321725177010187246026593014607673954624038195992985262171937113934769389685956835273538451520294928236149678218986596246068317855411010062828765055286135791667290581930262558418559429152041877225004554502233375460251149705468680856764259613468144657135746293354465703823012683988118758916557427673724540247731928647166392600341565432271646510872474806080780217598938079311908820805790090724997160876269752613442941357067961696780553568437455343309374679140628622511711166193996212501154080687602053159508705763038564787144826463293484318023803769206248086475707860862931080429012259124326946219418082085225781518995504401474141230250812659291960498223176708724127824284034638258448279777207196296531276895934141313450974358226831078786336701439449614134976219581367881759853936898160150253486159273561688791611699840779847499935858819972586894104565301312034995131794204040325529520691539509202778883079325246932302242875565116624962687964862167675725033542391947690164346853468716908002345365098243970059894667996576857986584584502578630622079612317830385154577519405844885249196690661561747235387072053904831080932683889958385220848455666391604857570807875629372100105192684643901661858660578126525421719764003157198545007378463317867719100539183631372883284081825884296664640432055022903374240094657302240083737447384240113539076937977381280057101151700971979483983617907467199686698044697843509606957262309849749793439304332248933538053256535897515262082732624927124336647033505037856161225614422271493530124477161328270488359805736454461124722695633565759814929380599170476467972033445894606669495472820095965947197684014912531680215303245536741358980753783229098572181648297853779007643669640880177692902051090138617399019034372460650898332470261163226178921026570094847422914501680880959960907131288997331658614798935441281470607560259184162236263678163082262915451469972727468758731978611298153055059130221444683514346957318008729593275016853989908177323970348609004790053702551393615993607320913416070550626167013797724340337918354659808504219907994992345437064207474648751718795766237753707105200211095176102891508663326397656121932511398381799479179604617072063068543173736512622782822858681474860122709260297652972515538270071944274540435477972001849951709133127363820044443939511261015824768392365058885750190541727695838741826903781270907283211138480026984996189787009511862115317592196761553378156802482739817492081743778312270773860270246149780732400829423194955925840496421458153751497693951549794737302226446019360755477315887502480566259004441831346705929630626610120033349380008170450474354009526833170917955431436679457336286583664808333580929116833209476160048651950921891836534201569882364392529768757440707591198068910467884495504193377274082608654871823844157418903693438296852968711785999359011296693047226632204900960550896918842468328101578323105552318003551835724011223211506753722520906580669363532102417836118131552762490370438078493204487148756900229628889556260386515057992624948650793817960175729819821328007410456337360672711353672378362776700509030970891827081622313241849736812664788614280509778200458220250935197020896001444656429676452834103992747623958275566174579976873344777715882837768513409455933894733111217431654118651443266915145212254185033657751514413993221594614915030710110835490288514543406239038401729999838553336205290938569619439446543832897577786788940243829731400456641553729345654889108331947065214845428862920475482724145617784539170539088796218349861390506893573121441226764491891374233744729253065722748471657129575457304206435044017175671246821363940239755999286610913383181529966168078529226044924636902864125424573607283936601299814738298995496945500726174430188888099636948954814931472235402589385439164201232122107899996068208354816735521158833492851785352756773495911547428426345316171606554011211348757438158069728931216298583693594697893677543705956166817599142584239656824475329296721312141888061261203944816298048927949252504060684282302657122706907686488498105037248320024417097348863874614814047294550020830271350053058409714654809955919028128965119982458864148420464240170801222394405063645657081977186067306790239052280479782327788973001020231231633163489476696464944605747186088313230420832477080402535337680554126093444780590866829714772672451684764483386799587304366787038119557479351185217721609141214116527440289528534293983641290215095473035018923397279501070601287518965801879924307456370636631844839728669566224786682045215245933757256275936303547469505180894321877379946486476290460537267139823312258979970948965509206227653772884993955207454152921706589804465111080053368677797056308962703603543852583643754956472793778979516362397421355047270232041889619248338552300439427215240914862433343151939940890601765840859236475061980734617942701056453690987277478569191901644565137292100666321301772228064106262108150861122193023076411843843074627361723620307564247337048922065838466412550316879550439687684819033897498913291025223818259344834539923493636324844985007924923321543491637367191908717957099476636887920144428295685436821230357323964245356483158516629892518694104143224302489648672776225700875863804688278505546577182075266805269184055017891116816871092507281296109179306309595841542656117517777830759949547247785645243996331757846292111709789192582967137921396837249160970956430683387109351683632914316073792239970050073757193297462403467339434317208288810282787483161359378195338118259556414439411740178479139212757749883597480296636172935069139695000759553270529030520878549513509374508708001632772119461705364635121036022304125666482822624257494636368183778086613166774559612392035465198413008297003720677827429229744654068038100962608479229747942889841623271788693581818688026156139510799822988091638597486480534161308525292793285531692788960086579783583857039986814268097831936691567888025327311535391049908883474313719415971189475996008412877252643290268041614271567388854791015498178046547669884097019126290542285213144028959049946887046564196234420153361702459156571767153385305243385135985005287456894817684577674660382866479346813293081617695139152488199396960227424687183447607057775343998728498440892245736965899034586992481022143826590522627735669022708944647400216335218946134438275011772407370081740073288407504502255776368568511540099021794729778616301858041851789660532245608286853049947515570954728056537394252765122759303018375762102272371441165713705925989514012064089675126211276383376261555558637306426642819185092116345711801011407967412222358280103191091168671613461441955309989983999822360023110996557006175679923725960650275860664259865173068494537569750473600730340973966897136663623936286709415352995855498529168917195881426411174891352863630379225300023724056768058983864653976223676095293946895837189871690451084088312108774366616114929213770694106848829467581701909895606461025535538304986728838274430569680182604022462032117350426417850787674271343111786374184137890179721801258877457875806808890172413627436524299356403778411309459752596231112757512273320193085929394446304729792571960343695717358362203710801194643899483772672906760234310120078853748509277163764496875080002921413325251282325070697151684356794751847906400690305048788089450590194592583539216458203605830459101659879222260065976411000348635085718063408303148521563228255377721422467266086732687249464246178662987082011817342135357110344591823774465270094658094562634210445697556760128694920325054110423483041660394953158458505741934420508192796789920335036241036323395326885486410208577108363636334221144995422414176440459264356675158022745286704347426857869187160433226660854777908436608952223989969690860217285363037848598762882578032448432082900998069464508224937326299081910295736129591502148232370191958674901418958006678566957416723004360994168678149906807904024838255412199927445417868871884840066946697450077206424845434274451106671768422325480579028600575462011934890402874147865332307076642642624308690534931840082218446784514553939529484535231467821795804299027010536476699019817258398190907267637878010132791591506395435595380536346745709525150279074980586826296783375765469870616603508892983659412340518177073044941951337481849394371846580777251049436305222283314957088787809224682521381081372201092755927099713913719685367122048269065153988316540897176283119462302893047732436164540770173839590060755653810120578014053513269851336244887014796786899428224875355890098686692386322061972124789793967579235951008849381499022858680771842685412014354757641062184461579483638614549216570250196383348047790535655571510624672424040542421298114383840462626469140303253493047840112600658731700389995043343833968335680006055373453063491632675456652376266689167260995387936995235666984906157205518310775472970920653798284953298781412705610694872465931696438500001760338423523103745940123760618649798964319499556967663761476212447755387901433589594820819635692780166922923742812974812841673463424021908443521928643671815560139781869266001599391989945864286103177984315242034745701089673967515824786318197904707802462797464687521373574575928641719345615647008079370938403964800136202366037202281276270288528250090586960328781152815803301846526963307395196305215385655917337400242179930280455871657971551502836876357374426931106824080846909703671935565578588122295919571665729017921484231299252223305000087842488910921158292467372051983546320001866639933070514334121058445824145456132760151099985722174322723631679801395452235732546374219385167580631382497615297630530253019338424697171947684333325109204646925077460296491574321478035998522851931932294239278956601574784287968283960777949541060210642864445913616169008001058700390139834732586273903411514233085031721103404364678624886980273943773391821532843266596532302406249379326528487631582186643918056865584510124131459814824202295521143656292879923112533104843993331504868351238042704193505721637867683706666534631446334718664257740039549331802252237407302663575132891274461223887431567098773745194491432843984061630710061625097070001961525304882478470696778148181738809866540188402539957894410452356881311435567072435682395498964156150091298695128793316127070792642297115303214454345596999652961211571868473947279033140143333308318387526965693290058046365248721835331023921144534534925581448107015220695109738855772576614133978048546917485042824604497107129487628217780697130518764760400250683235255817243730104069742513736666389137073225212598107229491562022699020608985393415476157169327838852903835607639828045318606096124130704095524166121595774081589636182272504454821843474920181553388728193786463524710742258789798241256102155225254634982944110799998499950028721431498690142349579952906333957169312602123737194447604206317248921263446427412037382132072150075193495251205780786995585208601302754881313828404124380324828089695399964030237862061173042095086638119341798050410599328168192150504961139307796986037879066195296713464709838903180841214462038532324300095589331360043641632696783298291114230758583092498768262698200682122180871275310255964754837585518854372186349295925280924451939942581913777866207873093972127107117290715783584156035984889624228288806776601272692567274992647454309620992333691965071060145107649957547134989691105589088452559210597782998588352356853764229696318948431076251719934264161565261801183708241300139538078506867613917026653027142029728627521092643420640176841670869272150895450626750694398278140740446747287353732431271320622815431391386530399690667190779310579579235658266525622344284986248435667749413732515293591471577836611544272614288144377402228396700472711487400005102266630252274062005883112194602836084168543552742139534461318220061182883732460007235720457158734590697030531149772384037000415928859574408915574011191014169388879380138814640964196692487756421356791446929965004723039383758491304212345040945961811587114179136315368161325082406542441061216075545026386457571003985848710426334968848609944058072386119100089189234766812054075340767240906565518762361235302016244499094793189407451476825452854075021705832342635599777086335771560204477688237133150665894382075240943116350305565921160527340615693521815965894244329297079174949078608299512628918347351219015402451866121199874337534684748585198459144501881869268620127222663853670000399614760839039988760808922133334357106391581456474566985612016420470429616884181879820010781578049884113013978746616111705008589781635954122354661320663390618381082353730110304550513035399432653313556972053908138516561628752543990527844444967760095595295955048656333663549922833359970818220107364150513586991701574986507797656419546306356005970544470736746982688379772326038196176076878706013145266199873368235468868078861317956525260647757766828690458796538622262967014920577398628756402116244214535550575139394817471243244634041776859484645499746114276481862138001281413820578956860020957449951386748457659918279581398965917822432991159827794118431894875803329014722332802548425577317030706955326302219515936904146451633506002262499805906232972322633938136211869984101908175692223122752589192569787017846191152737118686038170912398045074069063748129625796138591715359132434628357643080451496891613419416476006254587858790739372459872462042883445283375738820239921764738886025527866174887586739289833683512073443559898447621891286025203104937246026640306641973846762868307490416855390625952028315201936112619240304574982505946723822366291417733369811393254508445064808992929502976553396034376133816258835148188449578993566666528232906640172099389004057602789187442591452324073637909419890550838442006161862588672654385368635359265358117014852828667828037516535294166328543354345271738944667960250606917744374116343637261918182695999120511062018274838041156627874517542059127341103096982035738637117830761820717822205608721112066577373058739340903222254187958450715736487120091776751476520585397649584177077117728111656531919802759830819255527086283149520642548903029388646572710280299923775937059945836347010191951862387906233865553326951978955248913207369265702091973100584842349549496782904302596195225769744431550812592367974554499716344708157646166748187188171126290164022675181854371723804500141893939206430829441107960578585161799940954164325578475383360792607184434949217080304367568101900730153434570990070040597849627102891062230411158079499908498143691936809604844616060864140912735553932088848224522135888420912168999798928386451083237039232735976242699469747030022820354573075451052204688382077272852927247903978834502082418264959442815096582899389425921248197397005523877490010733669943211352810309046458487355721023856084809864294460223562841113094849649128503700562829965593509805287404041985861921216529796407182675462218152794129376376301550239033909788122662164641668145065674548981001123275247102799291119308840712711274052611052866346077087437862613101067379965512669091084832668107335214916683421093699761066206503026256621970281049622145888751055848703488740160549871021672986539055538819112029687666444013782990038991432414910025332827047905727782399268389200441721378103554374244735052019004933123065279772619033070324521534759816003155620902199324676804364611934377565701189717512446066968365728870351814665705443175215394379034701903233462786706284796891675337595643991444849465696068887452751364134302068793875399271844539177359437097977099256279543874366759230112339635425747624322307821180852128226168646685433866208292272983124886049789110617979598276503513862272007882802593280142898681630315574518227344362306985153219625442087763513225363772990395625164779661223208136191930633847217603128828323346019295739875683796582710649206126842746915679626035914999928519342392184699354658262043287299292974731430142746987541775407127037443102803241323767031025931699895578185294148269203869777663323425242805421789624429993399064688289269805571819227190883294589107823620217014467577646082981760181637828250211909734875534620102845264545766766667821376276139164493685676779404179288109057382926428175197519294312155806571942271776582605942602558275080590337951239633478472451688973828203999033198294843176364972980583675844958187739676574426676425045761606194418654711545138284880514584147519544143530596185891262334543542250846389584130811361210914079909475403318699456316461895840007207627554651024603175912236101995162120872298392049120399569697477523921280019369188500785264033518630569493744623819257265442687132004683388157386078177981692552201664439722703621795743448610517188083832378805988142174567762492753334068113630013905286331393486398680525712737210941354750896848704342473581456869039695025660925802566904915539329984412030046625139498051556998960481335120824251656144653506140404178496957031736530056929275881699160363311453117153065951027052403892968188276070084662508779894687066257879229588752385753197644842707622128308169237325097589929958555901357877268863728693148384667772842248692257385528389275227183960563098341417051388285248483137427306033929178509304818117028488156937628971500513213425062878519216644111201759616893757192375225429562862259555641882840902267832786060049342798599799242587775980539804130679415698125462142219061054488619701724494890399596344310064405541089490710853546639485513396818257605884793931798632153749045316790974978114581995785244731559907583986869690136654247735702293755100620764009845097637458420886790063198813569348342760719594376035009857843914724426764290481632247623603214529254905678805643461122860155822041074907668939436121817807737025318494026304818398220755990925718413675517222131853863552931120152553827406130315009957210151663307847557312984275649270832300280961228790352291081986938389724778435971789744224683128068300625853450765151065726757599028175319027217554597563434082691329403378588743958647470230583019886158550370358540737472470860269105042517402487810956817278744324532973897972100071973653813475605544396645363277605992663292961866172127596468905403995409674994920847530814775064862021454852386698481093996926541614798806712967953197782652365672651190120682623649562222240619531764117972234319702457203932984055673603210648218700166907762140576122477975762046051809874192463855761652368804163136321928674062695514750674755398525096068046069964810496019662771915625090538882011201016107171044284432990279652759887141468451939842830757501464221864402709493871537864315277882323317343838396997739396489354321349207074708610286387896416415438630497607067869368250907361565890688805729867625298816596868516507925198255436290269746587439571340162590584781191366579486426444905990841284891592989780947178249239052012728371931094334418378105576624346517912502661962581796014121588430324881676217334326521143879510663468244520174695983228727079562556327808055718055837767762273501972626790616383447129967757718496726304398578065953352497013757363127445842909202644395632351894628673739525557746138193470621330112014838010922767568018888794702900605438812322624737800545183026414458089019367109113768686498521665347048715801325924389034050039543533955911829447621555531643467921490684103681426767609807163881380634631469865736953473095556309498412660628797985077694188725570936517124372940979070470750934814312811067592940914224166668228716149409821959001778949059193318007781782517397606115300046732738136477736284513501626382780360045630305156298101589317143976373772425558194529422944724390987991492667501508308456106138707166802847099526240454146414411447027006796498912047113170607783709747261305587821611247903759099862401751954374224172088423798456130071441701497362047305667057538683142754394512768062941506029212107399946187041494350029157218977609299456119436021633141167634567937826184311888306982008961211225816570925826108446537410992189849145635011833806828110897380325460106011310264303592637523016744370764354577596262718353024619199754920134222070339456439666768695548109399607381773788646070202180631583593963908872438816054322140434090905226856662582192191700030524869568510749050097072212025031659179625711135250226074320274130810841307590945933834969119277296940832326778257360576913451201751105988130613295528092652750726896532788711173502022827970601798047956709050327856666725775193322353842258484900149318228161874710324018710092898172372691351980924133221693601273523886125312478597064846814167358833188834370376225759848558715439595028962795616847787901556356502086686537986756547318019658328127939815408375695558626278448060790555488895537790926510957549899676157613799335623250908765093257278760369222646696066657241140684771638268594634607410714480829025475645403454948576063808993523944350602647419948817040758249570029863838097127929765231683219137174381142325168821326912104297649884074743024762132285616904711907360510745042438229445091601245914827459598542320409791883230617772293133923909072999248624552777155043707695051358147634340548532333533805118984472042566635329736137765319172650772910665344924132948347559090827791398603090991430003552996846652422552296880457360669360452284717581810809457761787709966583473094967703386747758806389662190565239448799650186148750377143436340629936383255319081251821291681184834045285937223783171002983604092876408283158385608015880500398302341810394013202740462417319095311480561413999082789551382106355268600211097489560723521192557659467208464975429492905322590622760187878326950528280047501280877481123236168545528420792552401325332162207587036066095733794636998492655830337835385673724280970043634940851873111463022926571583665473691922831700717597329908826192005002953217419165500603568927146526379426293435422976542337100125695998424624233068431452376174924415655324864659616930339822125209131866698957584262369774464046812161849713564654138957611380247217325246709779332299081434516014873208769899956151849793310307570919428632231532743163251653267531433773602397037144013550953822214439933044060149771732462906584394867706919157359555759249567029816705015951216439805997529198975955393602310205358089448468842783001883817057736477871571872383988967795035558101019268751528657492784293890779368321824721161864110242104914796451962144054093998069579559455891076714247304308018257693275804134568864740386047461968476224505522468762652411959419543530388142624790324157330496292163748978778111916323452980837587277632365735266895639462432333510727416108119913897247527756265320881101001477328167145152875342411865340728364255086061055608979646709325242206642474889684837043994497858874783031445402530209853829290227609709669967129118239067376452414851770062229716255883884334710019555991317944366801131524457761464469538174538037517421983054236908823437038263811891319089956500570213449166133636511201244308323581609954144604023639693341332252827702901323846061931242033601503611055128669880940132681727343508241246162119562844512447495179476417972557613669417329292642202998839087557877163198194405154387777319236976505836812566654948663317056277780839132705075536816364786478226662376446373346053845805077494214309351976208032723512022358159603995195593814172726746800976643357045506746374330342411108926379112230088980621596066799434403455087563247087333527449936741675987126665178244956106977332885912228802267340524045617460115479418079916570643138802632389119058239640319219924470659734535976851889142986635344144218368955543226402816438427946568091171440999474913372786094084220059771581801044529680572939922563715958520918320616861445515559456408066945247061988382286693437115762415351881665542573250594930831746601976275677773624285356853139255412747112712605496794032602732958367172302807203359766348651304675392877993953884968946176528424727044079652566857215036039396087835997455299463721437936629895574542948235742379804061391107144620422515222199516076999208001879182168751617926456921114150100864316456402606469889806628363333085371361040731805148094540964074612678507234922664947547794971766542418756491347821446332821451589391794691814557991607132981869906678925642976052923938724503646679407496220168506808096642355474281733822078163926158911311127924253356974371284541595292618175092999356791538696469819532663088666366918830759885913844936998333952244083514404646725149204782622060669443999002729402631962739546805132033319005645283958456530983267171045230113301965367341620281839753536261617594602711271520582749025475309298298805731962707178620570659735210009066036466954760437179687200055090655541378104486028688261539235628341192904608340026382455620323954915115130334946183734941500880855209411484953613679361627032115942470248258177537808626626849385451045275548021573103092165000091158487622353786563244147929445594847497065324511528908717461183206997164980408602298113495862950695162832744011338426308719476202666619879477877155927451781812771815687746409308386059493317706071896970880379191827998094354571393572687812306345093547568094039562111492406282507595656873701944742624664757589935961312789525388554664396603897763553286461182292777428082949442553920429219736100781034052085291583501715423164470867491904742818683365813771768268355941552719743951084821860933815433041036560575121823959019796720886634896898137883465628079942655483812519425595433044287500579932168432818481602058398583171722322587215575015089858339749236887558258006811029671092338757333457465079206517390369955708395725028001764489805333748084844567165390274794052539396574585849029314090917185383831776117833797407490517237050162259242247078344803447241685583266218027187845829020620426470654651152392885579299683831359585977824243315277755696001187461223433592024948742203275198322197083906184495313092926656560312259664428134078181862333290210688876378732116916015792962347726539390569974718165851774139280481748501886761386233300461865275200691807282274692102058276122855165871320079277803406743836711545588111601608098995721987637848544710994202663379770309440028816055518758225578843828237794485693283897356835693986829722765893357844302741419369896340023300489740368018972550691250851922993170608462139139371817563748250289394759661389911714126882121093262109447999757290286631218484281627159434226636689321087425633930859409397183763014803880653602128241320786445550254043222061792817308570641937122111406690032039878338418736404012059318955061148125638974258120767842853054138150360119303608573395778331987017239151588877354220887148868627319747373629119792164199562323983462787916810294108892688732525479760076888525356392862605383302188506241684565593234611137538617218485471532415271512076404560984614902552116032281987246821646094576528856986684269649416067214825209327059327201971718361296845549116977064698703207710745221919184264084312648047512388357928692747014433426450099294923410988292336874584568007584435494082215207929695620753337499241623987984241641676986222655396841893431185409442044754578490194091597625347595205819227832915515882032262576123660324198082630548383912060469303759821677510085301081223538995413416735423596279710124829125646575174800218027894519795384508061970092861240502309885183075384804943006714700723698375497988904252260439846291624411281776318028331802107238008927411585307507850761320313802126984708926226651909412107973394760405064005328265572941018854439326115305399122096912064903641403202206743062198084271370642471751020125617023195560322506264202159934698174558243376964784505308226311718405456438205166652668322281575119648627679795010635755464889246130518533921579020844273879915241642193740973036325773766353713087094126446534786435875860093404888054324996330016512038412630919588901874880156716694593873253931796923690773765102686810436103852666209610258189591589656164189692580932893814030513578787770967230400784078058499145034869943725547421640237643442338183702317517008407614878567598576926471235853452698518817642563430172428150466479824906733788022774704212267665504891236786262366387652039604610782689369514708417861356639220692083337269977540156357681516218138485418753365164099948677277579789346250350292311155634951541799712028399620972925710681644543861625134975019617453680975104705275031068178902702209804550555361291589139966716484463774657653308887087660090520052205519861688054390483875167041419955162223650140936306567344810875671628582230391162120533028828929302165435254019751399393185834066315573030752422478371216034429617867801528824168079488397944657247245866446524117962249905291749348139033952644529099088747136019397452896694798792971425114167798905387237336228349872002082302993819784241228373933487606220887851190715076266461365215620063418509656050213506447950877513662351638150061898779173185992408742518752547600649883712849990794131218783396650192997383642780671629324497775319697267415076958005477638615780389919723676216323024359022339673617161985791127641964850997561245489573609311365427576224221660264224551355068810408326446918057248849601911653124780677986956332560097392707097448606478528548530426910210935211230149227556327060429935297334082068059063397552363500525846671927332250076284768395235311876043022967840241180272639011105630974890319307137590356203715403870490947146001583824359660739293778777791905820423169199837885952802240937072488448293783932736448073124279466631239174445350988983530878590074882292817026642666431172646936685691144810927589693035071069072318416848512777561585544440541272658665869565584161255360139548912619845030326074525201659384189968547475596253320899351047183423624346367975721032082576409163874189075260033677067337093167191311257350755636002694687688851889272297960869676179799033732647354032319395707058147909324618263548410553420095416351557526776140328723309456705495423290832422138090578156597350014261635539781594571259484692709448955100770815327358017679396275585739448306932876238960769567018195611036948197559326952330308601795236367916839110943329781407207450428036316957507907844622029739107592803887425465569554434972600606629671864814030557363053739419055941192782997065830995981975387019432069027650406780297057397409221371214731856926883395428585933385225683194403104605635888933935744918752902905800674750240194271532779749534648825285876886611163768202924814394037821377392400334046808334948676140201873978759227701224565492516098028407483597160066430552410261782292624257350354742204444704973543465901280502979500686810178853199281917966559221282512595339556222646500908762427993108071961212035922182006887710728560059007978749677052920644451030050602614073021705950615849148887218023442722848394459193050775343609104807216675506793850441360901616136867434307746928931267713003368827715065057440527415887609303616615625894753161211297550768986376443404653641527844686848722518716848082966715207418186448737679042301328771068310956712590616385849726608848755584303350133200159472093598810209354966610894541242919296277496076953167751343311603339077918139220593114111779168765199105052969629051141227588278361207567472463449971392148026058520043636827149045258103716075566153401285721551289051985508990344162695738632190011179298773504832515845701111979723895274608897372304733356308463326508718679189365431284081099458352887668344542792043180594099933430216184522103225822084604319679054041698758003589168412540529035696185784930440399425761878707110731721130450756455289469077706292948779789050500544498128255883454646337503547869510872592098660750569350774127577636780103285323455415745042328969176997116636890947534820242575449798539054583539170803009501384317404509712559815805352344861759408614666896035883986198415133657681795181477151436676402321127182467150956682581561976918987853277450048485981395304138328938757518563449204061482610942747025052982983969141042870981423815916171649876414271476252731657480408539681748502839838546172112333192516441609938315010607888574557071529018910990925522266716807335683499012405480001193316865040941959463185564655848464281766038721409427214629861014237600883807418003503813591802871078192487450638248087058515498623861791358335564714124670174435876575625127581750735015083346033849283647977369698067054245206122759704215250649561019481283666211638493947699949242983785467964697347988421223333709345672446982138909532545977046158713795759911457590995937411089826799352385504535416052667770856645653864155739587390919623519549369211597604179135264094141364385708449083747397876717797078689869121369393447120422286114289313492715624360602746552780662701647403679450470439162465704963786726232642642231203619676482533748701498492459367276387607848298936889907034184956036522998125253786876489490816833141488402885340085589826420648279698825353032479442314622944637138116407854341060184484837508212900930878186724209478139331355330452572758106929168917729868196981951227291695989417800703140219130631518222846930636380067279916708902104850890511015272227349653022819156489696066275648177440199168204703638735991070902354845630678631831698999252933094513494401536823593774271469549547538295361180647053924503298699848640993260889783656114996210268379272549738864330007578293713496706823000459213747445241049636119142593644863375824196151540980618054912572388369099732898937835290346037539818963205137113108101855122096615867786783582161030269163556352655019899554028683198402319462392218239156316999861414393223726658139780912306013204442225421712838412872263326838117277287488839112458397475066865509636580291953346837839993173825612807939527789089401313599547616216992294156874978447771136593009183693287925948511256662331635285425935977152900841772424666466544531387438116156442467129551984965135519777271719931318898019443621478642706598923622047903643869675217602204035615835217724827715626318787135295738858932013639635932366467966991033149623223350699164559210976613762013631519579219144361034314023739533125825637517927985127711112966204338291292300754546749437561165471884982255195266218376969323780785231398772995796638145495787923431818722128572231707842422652415231815125674439933863404494691324395102035402514402564950613538059637481675771207538504440866066153780552702314402398954710251336548191252809434951355927871221160283608087309172047374782235844680187426628677300360672905750278389716310407067615478478460074928145072023490803728443101657073566369113348466449490400780232984528496121718405956846365416188476738920944553809719351422338805272891784646647995770178684789580105265402561052360228571259774714792184763301916250254789707390256037615371000291292440177125062058216784673237717832871489510108164935779291231575141112430583545891649366407364894819053545394042641090054765559042334212216306937334051376113843090190506614106138370544972056605641973362016649220132542635713280714019635661780178690429492590123040932871162594405590005927488813980319288055404862539007074283624945738786904988524066443945917920996610282574266473229378820823109133719310333946864010477454566294129529873447443920380608061698786505734816667474801696455459478629803588265101112956720722410000229504252738701514113096546771218546283048345913792502521342033649022985009540605735847417386596448800565395786189940935716807583671564939537515686678187590448664561787138489759149841898026679871793505499752813742303373907661211350189882948221034097142087269430525884030394939120340808520494714636096435139469534462376048555221037852077516708672758606638447431364930760377095498600693506808317579237458014491252482286620383676357856887617061502140001256690828987239474685370231314863685342427738964428169888489495997824511177675084961306169653354978088921033257157453336595698374414678167707308794513509003781991099685881750029401276914828974597143701438221905640583551980418628940746867884221193355614614795620632852024388250081348855527546615844046411290709746085641620246081468076246443405445826456696384001953436878802572951789510644422246428828491101952076638301060822996486006232981530305478206735091120057908371880638602335764015506685916736350306933702944891495904645138568340039760266437381195534395211801826323224694487124847485238522636688977041901927382581445051618881989444030518574206295988583335707848682233786561207664541180729016155171869278140731382949870900059944290009861984339504001489393968665183503735044193439632572883537463249424646194270038608622619884490654273744763806999652011757153785102721432762386056998456583164893963244012423425424113227223585051433419194974260883363302064305018241128521419152369852252637420343478037131711595037986522652470029219372266837608980226331396327273953495223791701976513438879884552330260066889001081626339835413037496429323491807747071918567191653847515041326669182082452940056997368963600736115638779836266198827502503931635339429714380230812563838283599743473496280069622359731196781912356987557976349003643816284692851797511791121675600260915912758421125853599475471956680210591525044139417290409121372145857138061352741233516689249536689799490982992492934499701424708084730736746169843871866846786668513656198644350936256064385983521836915893008358995791428745794060349021650006783840407313013344052265140782787066833660144146967181932440131244942229390251190669862493635702768585026648386165606614726442979209435772698782861524479209528941013637529284563036313987870880354119694454367858424848045197916508463690127490037836857293015341332493231131260246097242034481866139643978706856878861244931303248683740218809963603205189595058651114901785520525034741555825258707087258286619864086632503063159473116331422663324080425675674345252470066034169566476761773275223865955058412794319297542607587275692955441920309825347531621463036907697550732704655083821120113521495130319603182943894309975238409807845925882028102867664678989807651989582026490020809076113044743973115391361389694355577394939772431258953969741716071625277539064450052191932750068900506724190765955915905320549496723096405596165826140029343945653653950389181367492691745922609314389198587244010226380916296245526115071453293807140481993049686741292754481528029876850628565317393473835142656040253270384218027131389859057628039365351443330961415289693521053183929510894191126520950678241397243770399504560279566610178783843250369211395771823060888918205891180942241765057213603395543017168919585172401103429152733681733236536554791679495378156181655214083357818912320100876928951510822523155386059973055947344498973124984896019823613759863842334936310991723869583776152875163640478982848242281461368618855314353763034492705373385865734800831103703907059119909224516047494069426195490551004396495395974500313707227081954842645330293076117737680739628444839354160117140761757117767696296842867674765062098987388785139264566299605984889933347252229083057587449107149516829635804192664322124949163920260965883237001395277672908623458143719221383120865336245921236468992607667574240599163810528773179632788485536140662763430386809334151465921136829215832003596748556389785170733291002429813990000750958075404902755604428411078550292085050735075114788703415616950956584807843811706426491311749957177550444381007331469619777123131148549393848722624244953374386792878701822386242463756867817357064052683816602938243386260110106438100091584121169567084725490528368420299838810266932972591441788445320166618382126649600051816551711898075047226478613532126378124949154241113381642169302796975013113703942775965115591344715365025704214289785322093577327399187970965224276470569946604180716097315786402050614204383895327023228732044315109399070856067937577553209565836258211373609778526386504139825893178787382561157688899680751900380025252547670736266785454638029502046540472472801136656308593377366426268300713772813709072127969823980601331149236638107824886727780319340112809387999894993056044960667631084073791725351125795618431773063757042411837940083210686191577956544845952697591360901511357896273593900748587040177410295924998834485871828879436476482002478522546068317536239761924255755733970583286040329847154577330360068356735590487141507232545828980391443861081699317897512652629625711109023905932975028133030595792631653864710580436874859245050740693669793937091490309488714963630102113722941456199360404852930150677091998956655560666828680128530929204682942161678640185008106569411681990117846372680842954353795635970268056238968988729653819829134008562659038256358980386513039839454468412261846747882105472691682377845871913007142484074023176441782337394487466379544553905658797457802573362141434996819120876469965402472431042671463331453025185264271833088902256673145710418266442378766895948777058055490292980049281636254011624748607425695696665927539566656229050053133460857413181940813361656784761581801335143138260271732315765029267833854362834300270797371987799248002310603458432212777275536125387950702898459137052186050365383480425507142402467338227359080089199617790668745636781054203835107960792138128181941883630016182873866355416783100869675311205028985638574505113229251170291044489087376569499058042479389092799545435427543678477902451516666180373274404020997288217777133640734438037314489750073094895516729910781484747658977618934027591555542549721014852873543287366842072852294663001129736892522432339329486770138563887657875444893300919006131309888575610124467056639030321555761484110215563583565559027245270056132383491791380585099215773103778116276369998580558571315973641472626693476301878015413604967267919410307225498790715604009305832394570037206078926905325101495466819586182470853675574853725023683291171772076316720101231493403400478182727349004003015841622497915256950050183048074858696635917963580970286656983401895677043483535710981625107959080977101220083294167742478526648101995903042484803417767200521774526774677565217106619692519172926818460998201901631212791436386080012257141572382545571169691357792153281980529324310468430236813343136355702192632343946641224039072320368216355133084798409553206749569288473920443059923560177726853105553909500701325664624784493069640291707784840129850083896500288083494333096572284565881106207783333822386680996285637713039510847318892723121162340634601313405533354323297063073299995836097789290996650490779448949024783475093311986273571628073775683279544226056153524623198985182067937168829915556127941680525099025949740962191053608041297800204782773798389081885439800153627349946268629422212059784792560584672935458531032530850732051510260533061022271138212630412672100461567661821474306447791743248725507359905358792109588640537473199046095494472197630300323474612464095493938610838286856490881581166897483799310875514016154451703162793022849551687037584686407100572544313398363942266250307932708300622142654184028999292122454337302448672730956918694042685913015167929055678647484019173191073472152978091084526822130924433685538613883271504408824724999982273472002700743502572393269151930299402988980602043889436695068112088494391461763501398153306108231709996143065881174179846415599976201880032006322654545984893721721536185815385599693005285329208036662743302970922134313413687139449020069640605625035456902345013754010544967615694976089367321589440092883407997309339841121615463168170237161949991244734966815254697234705705449521611713431482066238986125488021227729553026503361343020371049179402285918435962473358000814918294521047222079819073760625160700801659300958937653748005352431029255896704799501365488224713068870719284302561886066051920530952910576660765092634898448020715953892529059703926795276405949185240028347086689239027758509915348246185520537308233257867187990322432779151653554592853364470168150063310351025249835937934779774775415111579318009826070524627127462099288143984120143129266425543006306908951660729904539255247285515749083758111307807218332616178087777118719177839480471176092585823249255347164773801517063035910854709469239429778403595631354228258002261618207693615420594487547981353318186234813224827056680876207057534260492770752150147147340503077581996678091748079666738782391937736744275626090188389051177512998987198752879042732405779996421138031074105185836470795477008370663600001996228073642327832168570006005238308423626753043466793684389268467814408877012462049123727560692510183335729177675677885277604370261366611159292084192094581828109495321498555889557427229577586213948617564050466860493947800685723622354920545104802159976728708882730578165966601947765170741613869653045006623443340159356990285444178568531883347345435264589478921732636228314906872123041027073595400772326200081530715506895850420392380740490728673972367426081453129786366675504528534719330340738432929635345460945733255893458388006456719897240163158411734067587848828952619609143212984328336461340985352538778947178216441577657001146288373465498599059170010127649397718556294362844994927325571645677168152480540459022817425466193001469455229009551806918855279079741873550948326815836652247172504978354557548392150197286411669619580875448096193011865844522172189855194976699623709117726437139815150149790030433156208504414353547721083507053876461415942821118486373884235031905114595699532917841422930709692839493878217457428278988580767721830324018537416531174725367429453305812249395830364265798402986249517735462540315849296954887175910272827454748603465438925755650500027023769283920202510294646954945933132620348087298894029273031129026707792665046293149434064789307003507331225909920844013349923898528934893794700282439098578721921991614188052497378717619761101961185335390766160201261634017585070908882210569450690887020942600834828612723636109193566971053931437226242592720030455084507432050487497664069540053131284323033015294646065826450141372724393880528827412095457982071447001208797040436696777452985972977829118695103309221797622617016188381152989107896919116486160334932674026554147668094447501783636199138036666965658963503284142128000954909143899978931053651985890090712124224404212548677009064419749229794811604653775881397192919895275648214730431158996540389683699712503199085405242445636067837411200026142847117174917052642260544468802039367613446424950380544403924060653906124334518211401243690884099787670637979422147665991444744199997361654487022352602315133791848382524410193618194830857072855381805105879202293649108078231153477201126401648468626597393015225893282056272125622355357959814484955708129672174258525978706310898405895203010733995893915743824818263687984801338799457921784958492239173434822688046096970628458660924095461036404251626141197038975880260855906285386914536805693846198006767754921634799510217022661447183880578748873977967449102189113619009577802544944706554171461470106536826233657860118120018187739211506959053255334438416598484791893814403778913972023757198732744667808901937523475614691840531873313747397217549753709076846508140395938143647808792615882601918599639267728778688114879355722793904517689216521562710303545252891044746382933280674670640872987905486796685494885233274219168704172745840775977196839419755493419928056689964977559245603644735125195818612203410239041071714246940433959048480620305424271414594728066880467025929925886866230336547734476238387806645157138071692496217793564590813709240432967789264265746471952160243706367214822120224647810472939391280643627145822790640422183002216079442332429958816133828256103248517860462500135273379633985242273149594825566386327050097596460280755392554396373815998090265183983403661070325991383357652291918526948348579386222885157432379190812369960801291437711267644815800999285131234005621415082523544113245672784068440754224621468667475176430104397289493431857531643194405636367195831918017191615332459285549032516163786932976709087002231844417748437937871439520811389216357228817132037246719123157400765300819933603447792543776404610402025457084272649204107894864121075618371080667015010451404288894720261055120600384187939005436542826194124705679415476227574912851615995230619434001658512079747164272427487943121858207825671727718406496929203856838312963210056900475954484806772693438044553264575513900935052740090142204574387445731494273183462335291379734711013554004019788246077861855928417089551781884384361349857602570605801471787302864117290853381932076860668848536105442584024051535297601476762284229825824078779852555572492366085772384366971182749338728721453945385258485665700470530456022407042217621294408363774763912109306638154009888080578271118713293154009388711627391731177204590731691713279965405645554701562567383848102181228494789316390956708705891409754722398311205221269127982174113321625058113496568563015947654464597863456205447777978619094742448110201100762035304253318538165021622968272199040223878424366792413817322474295679097144808947858697503978043987243400914704021992483140469643795474048038752038150836887482884156917832249241585661144293548618362071027589413003601294483681124237498658780888283009490347684866346016670676324381567845309003030977613851097001237058271317772497942919505668859893487310249303894754630225781140900360135297140219656862999048254183105303618648495002530505524154627912505131221474860614375710748963955685675325130599706050505833889373411157481117167150682007903165828358221414463643416579574400110936181351314685048001577497858054110231071949696567899871446263127332890713898225304876867057982088279174807557397491102165620731126338108912485167928996690015017021570808789162236593479991829821151525075006228195280195148709818721747451709077935265781264216710127215532487523397476881989673754161554331829313609033513621805615501487868536542647247146062552893489480456640446438993043327868400472784107213400973769684456112589745251241293874716726548228060340692473129659669127612261885111344046121909580162343047383604671625605773736649827257464182976756157427754743111060116565204301090188194028342519258488778279366595156720853652961904224221994918840237294031737670615144945824463927711665209776159011847030362816026182668011519123113274643603663052697154218455592445911635704350030716357390825093125043968748742691615678691890342261168778875314104716612284019389412620151953910576892497913588463928195417182534333562274049563594446662458572677069945438486177245383748403632207484839495058573747106596724272952158007351782573108396346410832254507980482770823551606217030803163433508467682572775427127856382616662184013065857084940930120618434008849898665274710994221954134586714456222700942309671693055781829063387752726280812433802299822116626507012038269664945370536877543594649756079407223289717008185125760088487436586924721636913342835256814483876255122187117353205371454174339132797286038532887550353436574005604291802646158549262365374280062471737841628213751002979588398538911845844495267594787878517607209271300943883240886573955559822941733578396674454840805869040894492585527697582072935718286492187479081930527349185075961237525589459820691910487877045357656725281009083145897148715884077827470757591910360604472967211431126484562734049495249554024569049585986862183259984083747343336988843484869081690137015666516353018560856275007458596644161457670446282393649545126739729355041827713086846236026222265612942244032706645966516914278197902590264101315786539539297011054109461414412519549851776559058607930357641280499663718892775738952656217665453768130739673808924739357141589233207056058013550320605600753899287042509568655535601470350293242578366195363515618252053537363798102021222537326822639082446093476156931118160605973041515299353088450090915620183348819667492232418493617295667109576372641807752644549612687003547743629123126770585487528454349429906311321692006447413080363490297044779915903307031541638671309216260436422848547768804884340050673410107063212684653164725822066258769569733218649576239115219203027975599942025224398093398096089267723341023044050378055817262808447643876899345180184081544545890610451136202605695353923167266443421376033732237941662831499308148995129899512959810508368152222481046951624555116885571828770716308759819270034040899161452795338327277917859942122404951041706379554280588037560481220401437525219814227521523473646808019923015692609147473900547521435505307986604102990720046315632576360071111145550363799917002021740841373248694478841611680595480385988018287409576888431881169699831742709243084850013664316602915802008086366214034450455814249937274624113302234717412490857379084617181218130011934988967818445170564126166185488939167208060506773801898605331849404025955324323612305769703160092007739724131944980987366878604261158395239635457045041514742168923219591283126880843508801991164589654338599021220911022206108504751243591490897313212829967962251570856827006122755786287751642520674211282964537277387870093457442539176235223179182182111627729713940049330291866578463364960540900486150915418322822317797968425416730841766818200203572947285556341090696844038116624166067125042909972959605057327331608728338610939047834477718128040677593021331929998831325598996940978298024845355569738840576880284198292561404251960994128137451982865885221222935904489733228271919601916343745550312807193666148005184565204175749196147276564337381370167966776501226138495920985167394379793389701672849148002275064397863595987569361776332234653454438020211290353589322551403315363383570033229407877440960786298679555429417141696408512315790730583194638433404436488106315382770541681681820278189717133243352888785260590556017809610479470007162446045250245780938227585273142351069092384398201988807289767667923228469199395926347855064112003106497587029907809739555329513580380516095563974461424109082800755073507347198671600581610965471720242195484941653632905517358001623839500071100906518557115359279473039128772510218611015804001119831519989210987435805989504748463886997173276313941719170428813207646783426707233200536908632846607840770474596102963025819915067845113013406276123067519339477129255428025080853445202105713329539283578661254814435859140041233569923588706970967577460871539988577540617476896035231125335386483151088237472502003145222928196377101673781238223573834922355917519853570003087176487115693618410863599938845962522800386455502650600049979936588594467074148371352770194200779523933240814877284960280563713428655474606292014712563775001833824168956383455299197683372915432767606988923786980112013388401877628641254106537313337538825898458630696687031046664466263719700781375903817806344745140050158403848802764036354445140152786550590293417511809336649200294767280734502860481023261750624526368038299577037746350888671708117097121825061339291377133413246868861006202546007681516674418023038821415895125327828356121300079427735038983365950511536620160098331342527525759873130792140529290590811512400155484388087100970088672816530537298174934633644474307628626268597170208357011474368025105544127281375208944536811598090664219670866354088697589012787921886939306744276725899285469501504949004568452830523242860795180679841416999036444980058765718177645097468078195173553484221992265837228743440602272976605620007015220022606858556801056897418664867953748514194966662735264414617168195297255721108123516038340054202150633157569159160511147724272951713857967948933901164009433972646571438053147610718700707105960041994683017631400024855334070854038269509578458418846468390462078749437117750283692144343188824538886488767499070979432375799593161645766795319045503001502005226376314198547515447501340000088567723831327325614718132763298777264187779038684081108499029126669987203603821513918930956165024316139035612146471740906075813283467114125988262595231036403033732234908410720510660304035719732942437645453299006837852612139155419153248174358695440590301800864453951122449419457651292254061455478946933146819688669800599899102813641302888725065096282363596990574148180138600289604569655233623595867634922423971555691643583000058407544287761297442253731533281978016465443340872343245748125323379808719750530189888735103132596856492625361064020968632673039949517291613092053309630658798296698886231085629868182589298589158606510961377098059720126636170633338752747915805790549043169614334658632608048384445456840218951865160550309204274615915292355100348145114026625497990386914199649774205526474918895956503944856596799659194232490209823564227501668281303726111740448927046259121359851647359570815822272795122821162860095301675098067545384034015038560036567738256599883674516292104700963337562330353044714231481648584925855691483937568296179712502348722032587190631716264183554522786997976456522910924783865489983790714770754926751880952969133391072036443526640586328246311226785314367671111799059972787459862116870156132080551174426630038882569210810202262175528945602506347051488927810098440030951042662957233430243302424682846229559693084884314489896057042555310961643317117003220013325334314098092526518259105140793570301734472936891835744977688119024636666684140559449142355995929623904936106422184045885973532423385738717303102186761532389942578434041914571302995825785469032848016573694149742266812342240941143212788337720766133282391786232367307620311054252002038104201719000259502248180503518382874759575490400233672888394068197402761010104192463312381331418460787929063073577072547646061495465076324678433351892578095535610776559957862743115018556111701554176433940964503874613449794818647536743610803000993873899873196692066255812588330206196986262506654012470785210851307020354155141892274546193710606410587403798536987711365350982514617060376664611094937924008299575552840329864164220486892336329022939417434689463085376030051319735927927455964743080837669786237494169702237107585151850616161927881084959134330300100066213114751871835058917555596021549558736554327520946904492918712208835190566941749511985138709604324280675341195971604348370288086443923772299887511821684223770619975933592978446427008783741998122787584807641982377960133993396371852270076751365286521695020787074257441430817182510812071847542328957656067401894617490525616357562177689918401379121156317436076832993064795952347854468371490724500836387942095540401617442827222158073895127168430268890438197567242447504357786488429460703936636285035709120901368873828271483039745919578833170858452654450134414408529632221266343413221888472703412097444635152515327257666730945492557832238913286409526131516236751103667554208584681740675891992704034575155026993508274279983153319448188537470620346003880877465843512799539028197476410214776106535217998740884493179305652276297056788128350071881177199630850433954927236345008742722116784655567667088185113658788221073533514073592298116857323619397445739047272591203978387886656013184336309349449103121950088272687592903786570084866646608460271218058413917306051577719930827757706152963801663522872922289653559006051923776058952838233166879181675752966294466918002400495543807571998001008393716107613141312777267973183219614848221856562953662823158638201996597376913688696712846749965373505833694675037596751209729890821832252162598884466998129708456089181899057280872070253754014708236786336071547071906942551187372522991986824409052259727872986730888436802830837204160372321864790728421984022383587201367806229286744009346929489769615975149582460846878648376097336321608463235762999736391183246734663523103925309904584521917744450348316729440498632795503586819860919265432939927762160243421093110656457586087937859466393067773214015662719594647651963898442595218073311600194384403657270990985107548391156557952875871004155385255511704815615765271822838060159492717440610902836764177846420233854037156266758106065837534156284499801010116231679840509516148163193340982729529541884677700731176873974344707902150452938899309884841810958049235986174934251776446345805851697646919655731752090735990281043275550872066972219064604146963888741839631437510300820185787863841830767287283356945611646723681720388511193042371673770864315935125002905947161474148632968392612617078617391196500685783473748474126564424344917863697503679525603278721997781324054962377066317365377760237918940261036152706319239782853198429516291773443862868013191763030411450703512773746809907130378527766282193875680217508628526943548775036390182802029820306693142373182974498672795095114149869685660797482804056271466635038909337542438116297122741744308880533244572783419166995994200724777884173527133644805280488550340924076400343170439788224534761343761246173177842521874618087429204999000212569701971172471123529426800195155219208579392516771924187750608631675087839411559235104577937383066057609802707822398075068497452338077922344523329343761041606763008317117317345887423709657947523244240954346379102479249773617529217316452038305087990972451319899871687675256032491819721381302128234929346129118236096509317984452100265470039718256107643139415239942109054908197574634795727786149098340214451644293249815818612250112654970984744078280120916951144975940482943240141393348905942386469307150179537412273035033452204101283182237999814729236798767892830976803432515343380788367027764372347130615988986822804515073624661638352326651373389152957739417149818219152259562265465946434963387280045850693024739771319663497486079695688217966811162419497485846090134847000555149506417205600318412367055007538656653712052460664313179703277382622697928312387012714407758902377748149068687929051381433661674563076298617999398981064044259883555500277350037259119952280351406126406161528704126553357831825468656185098451537025300749907538311087516344297562024529672622379395336354937499680411359017464717207215375171362531129353825458364007501966905346655512296367730151211213606998848494868690962167671838636783543494714958852772628620767466102474006645473509637586316330068705508104707655076317066072445454571971350836311414444580795421977312953542863701662496458445407003823356928353823727159070659051450679186826381332692778374457099815164802648905580103319694221334477104289803812404763501352242665125629900672511323288419954835768078004864848878082042673101453679354959802591948363557328785641580762262391607042915157365674097195986254467211481861257132837629686895455914691474264022374222500864367647371675373061929593711018282169848512341472247262427621277522814650946559349974240455892816374731269612983507145074408275531072811084198013785664410519313699501997529697573910429178744776734987961728171497056027978026672106945270288841100157960356503787452721399966540463230389428189986077169827285630325993070486944201436455975520482131239422489229119457680673126825567823149392583962538904360453113355388699535893869565973932583983484886145327818959184760177638819210922659696194474618287277741639556187671027587369467821789082385156897922987159908105423954390206214968600007030352825890787149167265180690868590741746505765344618062050934341762279888026200940691488138471894953305518724683566699079488195191790617855274873940929161469761726112847487928057888662503227857157702708225857110717993997888199388275779096592024953947977741008883426346527075948000020027391694706762460412375322566521077518465367353241401384563491472504677590309778620204411889553548039880831325245023174652212186235343505587377650794093476153683963997972729195739763327187218900465088893823299034831094950598565972094484633274035028068845473808091925459057736515837134209770289467679798540987236836564447986333725678948750872669281101907276311749380120823823483686156606385593498699211294172834801670612086489801681821419537780590254004137444840274866844057675933885059606671364567797963772081169923153083368295946774912569755212957946117782958946222973818548244305045823327346139855391741282603947808516399233225746511076585335698625012085057515761238126200371057098466595021992121637514569457081819221697594086511893152282794026156726524648206116561575051537658619998793146772120545303528942324810910267341837144981311219363834661674293488503596790677974947263106012703901293779758831581232315732679013915656534259699432041282060538339678307517135114562654518150146967932810687268551119945950435455869266174393593896030008503117905244645568422069107771143830856533896705928607081247127266134100760347189615565085403859531578738152122115562869049445346535644438357737074570407605101914565744865638064061688332419500106393984980011627690946348560873703488139954418258349928650590638551584226014445765439691453758886988866332111813711401489407989986131184772635430350068697962314989587463601084867857447225942212030463507461955679634337218172285528388701923927319675038754805854109425399338437461996505708681096691869055395098227194485360931516405125164724352412804153753631728174534760933220528232777648204507504533425837559931275063301694105506787468560018105259744520239778542716920574126329832948610535151300024772738008173431485060390462603548839499981194000786373450206075613574216010095797866876972582436600729742255958377212806753131533808131962183786669805690801139304149746019058933375730694468761470703789638283381980772822296918710863746531198573433598235019341350762550971669943408991484460931804864586103383589817387986206166269290332109627692438485417520136865033233922315114517527401974916200434584159460812370099022060639397055639487220952069839048262618252516141523723847453477111578446983763624562436256757773605913724836366322144535410724896500880728932870989151385548845445963814715910744928899328472503107685616541290567006581060441062024650558131646319152500119546406059809611896814180991301423064297973558758763828740417789238335052428545124210220396850910572984159153271518696540641797679199487825973636073116820612639420922885195299254018814869048233221671450598809248067895542135807557594577378996804614492113774291577377835193728204425129419247093769878783199122341983036966076558468639312976981262080325957082319953753792196392842000833186451497090564345916539583062773363449201725989281685225249401285437473729549062924065203476739265213360983739750318978071526236379887650271254516300344349997925050587784700790176992070640692460263026337284455808928798861085098705491319606643351721916891781680724782679419300460802112270936070924232921850684491499628808130085155219502643423284529679266887885149723399264136460708407199537438470530102186295186810571156450176289949989864554240412668330658895855042341848161703292690879046966745615613675195754763918630440388042918082531146048742415316498671417245738592479272539479384837025285657323997544309701897202392867329680254998314726782988553780428124799466506317514166421572445627412518340556007384691500657117305921282637434215823517956660695923899838206280870876745956615245680852581578119880208463079704690058554082692331129673263620304137308026111528531989245308961555348072096491449839802024444752795452516576785879336286864203415743154206592328895044131730790998989719079456855461873782401822393534801766478319933440121664662861698408700528248053612354128790531746916987740375279661121818250383923142942232645883324253619145482838227495992409319492417677628500516770632853415021608648422990400925300521995700679003905805639504788764277804835469961363716155151973272356606850480692850246881668160272200312118985687632869826917211526644600830811148373113935254707171729545965610409548931163492919129837255336849808470927515063046909137373866369141123807065522165140881154378205262349013554002174442159265785852830549159951633058400642073395950919664235111833067744037468542299641354761960448239105764487693613707034318076568844510493189746641003164137682700036812753650977754768519656616080957106933310600476346746790145806946988104785892190940962775157627672594587815087180572241478140303703580844484792055937427224850964041362671844768664841605847698790005492883519227655469881885994465935410614857145873481023753686623525090694448290812638029213397030493577925803714717344725511282731240703412980064704619152034051002682785385568151952556119236317497679805442705071585779437228672419150843864891298374384718601724779950054963960790822176527680067858141502190263846592735096370074587517349792178869222096024755899080177045841654429151361859594442611625097541836316700238847085832093822005700346979398575724172469528253365909267672064560232658124261541226756614646615652774066294571783716274139159278153468170366179784825398135582868986892987172253859854199749812879315940164255379734201587980956559644177245346531559503052394511548512288334072293609884530713748904059123664872525342255340499361187575733859217414965032258955965698869357439854656744822185735514062983482930014997485388935999431458542879906981569974270688718971349838579887863366263840048786385697225118088915395957605998493699233301870331940606634821752208234076516877823947498288293314294128193928717915565803510734038353502844555624305825774250317101596399910453625705242206944159903139201182680647922002381309499218846717423976499238015492360793222489393984052240529520737289047242425526648511833852491381591582290377537495306946479572628564278734495744295327000008329949492156209527670677190371898761918935992671748965465711905993928965648633586168372032470051601368436437665059000787984290760301288559645223223262622017871792398915677305149108999100712410910892021261473514269939216486894327394963493968987709533810422816857056479245889776458273680660427535776120504089122749092352811920517193331642703477393159052392999222079809814350153341231010579911315195321125447316305658331677379742288745698307727752907098652220105929966957136728119699822078289162196926548585411722229020652311274037061636402233225726042971756448606637149390924311097501260523408056754266548741084814272855425957043345495057516193975233989912845952983933279192319833504724552046893785072003743263470400811504638621715856237669143905075158367828530955156210230140928268544398275006348661439022331584444241123498509190387061121119502752669643910951582504532810005472160707262316757503127537492869970420328217800400082769783511481564546957174892168733558684245295392614261134027521725491296076505950007002211370784269053146422940655858793146894074206498643114329085822880288371590681087112839976148217288691164506810041971342313023596322938019362469182720344926841589525013872089073822159019310811351274158255499824133985966538078927476565667177898934965980073801812795472364607549566149274468540016394326151013188766592198856942813767721256157378742733572457889502008732746414696806415243949222787411181033439343795411430524781209688278771563000487493056867561923798180479632477695921180357588429141238025465695929826112929529890708854362491584471584063137143275995188240116841339047940539645563955852194130090249621189006161562439129784196406163662727143589003128473037018101492678538041347318661085605344987909512860073764723445211464580753208114475690495098615124210726911793389916122619027241147022168732475143056407623027415908830452877197133609647956074932029095506333562385093193251926252562271141535710333006461674610496249591082413158966599554785178091168374216010951507616727956312509246327212928665924432586908541062973660239426658041852347827480162564655387491128710234543822326593627625302355188477739664077004957898428534463606622477881774269174992175994639869211949574764220410063537013677549061802352577497290664166566483861311671218932179116699417511675936615966253476533488173774413682181558956008213929187560697524560614279107266420863081990028375631951790064317093935937746591335330101411895238229429045939987859063907613900440337433141767845824274722656482522605576357899338488747362063512048405284644209707580364497923631529989896966510893500518029004474418542284246335185631010397637254018776380243918927512147264172928830319369955245810079723469774663031889568868679625784432255743381053202221544386251433745643000265528741236873240931072722061703449095187934974764318202658936013130809197952087989572954606029173949364774723381318125409788400878935461344327350949927094111741886257259060575765441680064652646047772990583017703669214507215503284330682863475638103562204162037245705874950519226904852112101631073504109526359100400669325776242126598837706977101039707586485846241095095116223197504544761992839454019159229793301672844545474104377617679866957333737023752367166413104043744000351434322570623575089493941817514388547521498133480940887072506892823100447506205831988502356506864122180097320924881517151252366517858474651805943780481628765775487837368159965734912577042562669997973191052596640870702150249037104252868746678733541816528215252508701111591569428301221619462720861205589787539807191943120256801104272404002972492783205539107759911963129925706711261186542270667241965235713914145147786627321224269445652965630293369144983495965867469030072240844617394807048724120063093036736461754258752010223801044511230176457843151911810621407875148427111280413819291160559608559992790444473657350229818134484244826507536457288557562881614713783215465426912932134960165632847504058605667434380479702019269678960769494774518165562652968555858098806866562772500402016223778046379982981924089423637322058138958856605929958229703945368574935867300728855766458281072039485805501880242828620741064760022918639864291247373402494968555350400609357973814511353956123562559622562333713823659485441729847231352339936970122469493709609755536570033830615329464344720168689209181424425767505360586700279133047418887962556839011265423629267416796648727576288482563057303436620023781365913904361004653749235863486938770146516941636430747785269014836101305021311423252270871430770769337719486044880920655103652140943794885564246677666944499338419563801699602274325510087949466452822957158026786153854113360474728013026602069517514942297407409407361437867340242780132934267744685734600215743456883716123886301359310822567487986698222135748730654036796598433980424558726407181990173038172456726442660182115957115968502756214083867794231693093935894240565449084023286936133703755988205732827495164598209502300112940365996182108188504697605040271823275993275871361576012162667139932293388698135294198697741399067259894248422493669206773681997858148334268397551760467913451914329934285946881842674386758496741008048148036841922183038532693443392986028124999659105052916617220898158480331588267868853200453875641920719912728988005734501740199242857797406243907081438287362503552189843408106845522071652935840110550679908284266821354896622361007716692016553803714457702285671888435434555749620187920112220864309838670276185635842748967995728660355484380219056692961349300508851286058497430585145082826358463253097115211806089716365703466011188732827714005472045177327824030253787232969718154460957791229211703486405132275062652298136685193427183408183560446310024282628148021053226248853112745241527974551723205271956707384689982884569855243735423070228631042523808263903775957211861149425393170598392231057217199440167261564797758021203648970988985232860226153191622742542786043364110114506252681993437491297346756759489346851943077124526446151068720786672840457927688115321398680051644309858384965265691920240846495768977911780762454393041184489520362361718436994518116152245994469174720024327475692862297706565685292038143260624566293753810674697231517710063184176638860752753851131204432695977271321120094456299796444841050247435133477089671056237481962402053149688057705845586401443998318235970249411902841301324022271868333991259039959635832056874799489982212211917491537145781846446264842285821714535086994872144455476006629921837835590702768551780427858073755741397566733803789937068701181466368877916713975106559614177239569840826979026442907075308917135531852371017583241840729233200040653954490830078064967971831305632369681953174191520955286918884778907624366293806455407839160687051881438850104767442433584222612272392143171939029142784866834218456729007248852619547689012931670147558200786215706800882612663679588154251130444762898195076916741081242794292718730442854047087543993552448882264917246319033798746730897930558808243577338168294245455161467901451548556330216853717450879299883067120399472486662610206534185185558960013203976580867934987780364648005735924665675137942956008464588795485182138141152309139103569684764332220582061542673453985194711218919354630613551077620531302935052169767215325265301267853109001515631725299173260582348377769649376978472484512069637452146979148773801678539535033562035394891045708300617835508465898354995475952888838002218606320730930303943054861035611508886405961185094371711422123879349990068546351640325718576871721849753573009395548930068537683499785315011225226778646474064265957667999691350565085480735735444737819738021005918359646322822886735334656563839512816650221130259124973635486508741141954262873277183458767845073518317043309665500281697700798267089718489974025384405159773237604761763161614422007117899687465866079266966286746825559477967655927633721236937880760405747324149107794564590073186837187647625744094790534263142122227280393009171449626813653304638600979147406619156281435500146447238550051782637159508596651069116638789078822049382053450930529119680348500838929378584449017726045804583353588607846322562902975849299302203561887743501748885230069760776675741811546791270439675573922578787919671647886955453110003552857187053743311160707924931999839049218453009860799507283355186619826464363585026282979581896745218087923856787020433016012710480222891035828496564700097140777769231902597846764285758267917650701463627719873800511741458205647942720086035486541184354993332196263039178418802974940635374071066866944056534972966367083966911799593245930571201396931721859208947358120910610793078098265535487228444638314611636784596617834180796330939979088159389765629769171219749228638480391102594026317251754147194800032599040636518354663506985875964090528107150835313128356169774345152750350959697798320303527318224621854582836899349056202962082660727178486792494574312820582439591024581800680222993598137269118368850824747381735409340438165766417524210974216756592711063550211411295691914908828478673346599843417603825417133933113311092994259920660046234826164485045576903070888386028935787606795245041039612938283869520622855130900375806070977344552957928623350123997671630588183869770689431515622330652355498638640820566599028958274439571422935383434711260832468378554763552306469434692648307279030496887399934051605637073340101787081903608990759405891545433386136265410955105694118286960397584315892972848038256171365682563195452369987806448942613292227695216545054699186814989557208240087672321649338767181009996791443956299168112034755435047738661691217698161960310106719503727382145820451596407297713529340482301235692294857684618716347633930849448930365105638043367493843541645462298692155885582813641830024834581788371299515162643785385146008742061127421978540954706245768471151699844484174863953595101336844917484492636629496620865844272945498948644077748522555996675805150749940691510746159211398223026841538537376760558955810237072021360354756120747363678401304070281797543324469781831712832755812419017509206723856385421323793410900945631179390340961489259129894801275124308289662988040375515803834067162025482510027287481211147717961141338442171762112195913029878929416760503422030445782361060159084953990228200313664080355292767370586185409716938615070437105140292309263258392330587925999135198738556267894972417008855177855364108989674748142344585714253726672313850033808101582097943733477084132354598715004456028471718954694439457440842047530895761316781749852693281505177498981390436832452250626238505321758551623010023725587139430942388732306600935797646038406479076450138682154424191281803494409040991603108117817575962557803934807884312835477844051490409704040315451515832181084982161970429920158459184105710114392774816933836666140466379238313060989787740572689776715341351772712604716425914841364025356437606234890651660307974764398060759051857240824809965146995190738593681906450624593533996657673425186837007141781620772446777571324528341298083687437116795602697997366969816909422163651920472958929470356314099904761927729465945044467420083713001235863007838401319989034187236005365932170266166937806862680677298987094258286067976832805916920826570786006397629647064494864786316319848793558002837173594335777861107698450701988427093698867502477025029680233410837840494070659507033155003970494421474797904410813322468326455598224926197996896530235602081157219439937071385419020772395256166586205702692771763758628590455064588858332814641349442039886588748039957437829738018230051179095912968265355476227861167476100458834244611603517346292000293488242052719737690469329875004745428907157829396740689122828503964548202664521588243676139982335758479428738230336842013434746448215299740802459747048855105960530582727523205930211250450083962462345570852669019123196926334005466500991229010192906321822186910989285734635482136077941890285853770434333634347956786210518206635116085559165286055429428475444781018933805354277869857665975567266145790775387237892891494598287690736572009306380498333925009942211506765287188190401962693836581418036383225157025576899829050020484427731801560290932820826499642299523424317497498090754512023960721470007826994274951827393114873452064966584129758576409398421137565232722139314887499860650428781489646396077407081749041386643253898782824806215438426718973515177924917769450710595467812655065856492099764135682448250229644869850196948066002596630986750796620767704045307701791595721126668924845374594433582953412351653076535064057081663467304509642245883483163095905008471269468889447152611017085176545878375484391306240687214704177981209459330213060554659244820036635527915838689242055663748862677657540138989196612611502727020888699627235928870703246263623849896052242975242124480859027421859051990000754730057060435733696073811702022366881953995981935825696204663887176372435919717597988609953821490002762893177095551150480322596479719211633334674615146240134701638394136077900447357943741984098240176068322320151702884376074868355345272791220664051069611274587478301486096167513080143022806334288185527599389374732779996911901887942685245726166523779253722738322007347001095323978743389718027288495424843311112758675320452367241644698027500018805110145167229910626270392461605969528489712767636581176179469620361567295597615598717444704035170662861550906536307086291799353828440823465225589141313014766809785411254881070253653468322358835458757372675620704843413903557443437052506516567033288064625839023205592518941944353397189098208502149586361414513814053161730265436620474459633322269380500270294485409261291636293337817186336025934115159429247986071866850095404784661655212293357437027349389896149854735093501481519194658432594781775242068245665784785984138179540523976113958073077260682599946259710644568517292438175871745381817571440071279801916003603130245743364371007258760501952953163259290495402988851932152102922883504093598633731941205593810899565308400137547179872582169027131857428716431625862972914240204184034105276328161652179501840258477634933242537279422693964602711545124022513690252480291901676868644902600573310222913684390373536247232254608785402616080921285477634736085241809098457359517363270052465068924962635334937544541052169929963967775390281435177667208961152820255112453027652409596923274852490506411661687638272521947892562972704300276002935219213308330949614968710098121201362915321279971075669568018337411662589872455900076189576925777757733374231419443333749454960857687178136184421930145477812234537077315819422763130550370503083491230802581510675173222940896336246119731592563749242404700720845932293287058121780545690268290257173972631658641083497822177082827925261778179658116196127940115279254843053431458413671705858883053771066455990734367145675454526662350710426151892746021568908942752018386048902390607825402074963039351444250900454426630920831343032552823397464191468452570872238677481577931403685471470693164480241621970933997425102243442456522285032559556378381499770362914974480829309520001710756936473125913251044796666034948803936786351559685263828585649405288210579353335990151881954318350913503261496384281503236177756927727952651584321200800515434776346470880479032242352160560770769752668933644007207177599237251638865323048991116671576500367718789268159872107701242222057896995238491307993361564036618705548171104865745456997357320500296219262461722050920879755217666361275909498126555148099977884595650171431853197021236774374276144595134729131998695933258066587414643155374062273127997760776382343898421160313829596844619176494360531053332524548353787057893265042709130661260040754374941124629888080146755019804109860127010465946002405018261030039320539677689192145445856888957298536084693708473663511111417994636520342833371187624759157638707704103314656883554664295400936513622022562268956016961947795437014619805667469631254191513444017266461895155529212156610524276605477396382364383838604792230918480092354001862620488471168556463558698289080392138635205222411557221408760192915141056494319153731935860729396804633667396171633014630271952560425797088088758912206198620192235781590305990457530019859973797588950165354174715197479718210174728988684276913168642402473313482672624749231769115395357239093450094426933947593365293333515478967075356421513460896571229082515916204005320889705794093380465655630896322656471185442293439244148958393162314163379602074997887264482208487262551379145524436569593786796950364849799378888355214490560585521768541348343451516553514943169044857043435184300229164838650646822252531149232997363697039576632232684633402860265196121131380156074345881470146977954384162730005838288697481734359339049845779637133924432887264921126510885733279822326609418338721275387224880556297686583640573164895442774329184388091414299531323902344207542611490751628038478102274656235998383653259120128485771174706626341694193118943403517568544171091415154128239335409608555083930637694292126945348361002205185717266479685720952987111463315801467519498559034351669613518911532709298501019533830100703006842765226480480738085492519956923511367301885536178060838112644999862704958053583990854743630679396398514692309277862700412327344812992731867921264629354282782260708274531889197457202180409968885537657559009702867427834909084309005699270164435784342118323550295374551604344720445832297584879596375513389075596839831341689803624225143806485489716470384412283317761999183054691947218208456620579034168860267681165833148197204973960446221209442749857067961897897796984766588991760423490758670153231420359382217345092695904281238151172788611995508093230355858440177581479298718305253223305244513930358991109530606188261529854665160591907513719077846957458541128444996736010166520351339689253487881935173474658207270242153734212693914522657086358440372258760392010044527658736919798727918031793106142050177565125071800741862362913187725174990907382238923204763961691217822136016043665482716901626287612518827339109574106487963301223010820362522558312540828012277447362158022298536584269672219125796897796547738218066069314638617240593570027680854586209805349731546981307615407804392846881881639395504395779722852242192639133394566097551818753750264624099970450911612376713461345330237932686108823067173247671088652513065573513006011317028243064350642412039328901942289022015035282808132485435840559975132546708856154205921590915844059776768595578494711855609080485406887295229930591673767635069971310850803538533568172504619242177287760947533581185777693172360346279407987043505034104190638710813175404090602496717438724022032000529464152459730503094130696853403058346722640418039306501479765769951555266957937436669984780647669268554539953570006791759741266002137096083362850824344645521795816568591754162462104178698521535024756086065473700666543942039395054348582990594441529740054934611595426818533451351676347448325557160722528559607473197168322274107698707326975324180149980281358500016739450834479483430490251880667231574533360130295301463424623508538719620965329509842039618442490167702531848685440872264201194169025571263625240111028178256431495085488215527488076544587961618008080919692744911255086635570189646324675235861348059782982447618943180772282969647164510052559595438986040020286750618706767834734775167227832625215450346191518696642061532021932053602085476911410503474633429435658663197550042101211620891399028473775398310904008521028294328464250684940790575629546467663013643305908362969844138578131041069433982909628827946360729645014786766895474929482548712042882775783881184766679187582213765858582579830281754259819917866243393056866865498065517592164095986682321132927488152451491838341270471577489466863045771570329284648009120973080420670959490276855276747645953462637088067369205924649751204926209005028875030445819555000182052682626560240013953469415419050035798354963949951615135458250708214895495895204387243320568214181981791533959932957561893394812027848993569047630965934283241178108660988850420363008829479906605047818914260390128678356600067367105798972281170786897581088932725432110624626619638629879096118770361349378967491820184546300884138209635770902340802475582301014178563132215169943128239983630846185685609822363523277882308445684837931812922746303002251322271577645981438981923465859671402361141352147781449221317590178076802462880273184717010946134983948871973870003208422533473893052997801865531278370882952210976380953696459364719055735098330466818115240110436520703073148589170287060345340075641012960865603397437108078604772880178730262334100340752173866011073810076364503955066297840493072572866283080068032196804768749262940822713396609383221567076254140093481684950800589677485691993832583040113640976651226304586278183555826635022110088809419981254084693096388750352921175591876267879008366302783613543006161911637009753103529377136488670124271783701496508934104029610897511787811861408929785249912379919496933827817399730418743406677253625723746686253497924461530646636037865031722119538076830023193009539475497326012647737197215612738485751384111274912940592229581762683444129058327014445551159736524578803102817681286584843293562425210394989507679274101678949052149177704967547814577128774947101237878733122499377773121764855379555730230150801528289001844130480034179568626658841468185515971420621081670131652200888118313592512609423455017278018291238589396458901970324285129505625654155101570389549213070812037550865529166358288222348318026890935996004770151425666098284388571576914204868517045202584950193791382159590160897425380903525895924553849651155022613602175602279438578332546310488281339113515859090242224832767298492765785075323050813555845682971537025371304878655324805260472127736770630706742802640000152482495996354620778119052192837561046116032031837362640450341831083027047450460180940076080748065857025938792991137307458672870375436952464272727652713215029579290669686741750854457051851634392243302497429679531397513960672140430397733188252497414410492203582049069711065249671570007181020348853238565118449637495515951761763850534378515263943862259681303895559005831173957222128632192658778883533735382678113450450835127613753019121646361427867483149484465407482975759905255318487486352198585619522897850024885716904270190794842954647339018462601630721837021446530895856160337418318866596033569060395490174355432928283564373756155656617123688733292949912233204260801287526264563184520835179636539403682391806404801064670130543222759120639727859825531187238271938513901727059135999369635174591126360269052068004732560768799947745643576127709732888693206855562900855292778845573552696961334985795435165451829153655229650050474697310859933313655508994649902628110204755972909979327350631613770425649877980364214163858671591765284590930018836168167388175811586848711816791252687073513192112654359521178863142410533924314656306521923519783113306313821982251870324482884396577234509152418692719704094837184757760899818264873837640863202491329995653286418067097720930102771879413494697394556048076999441628802071988475972103069641593172465576328347274937940075439114079191404005488479161133199804451217605243447248213778692916775039441662666932679435743041031105466561982755122493771092950346714153855226313051834767520507901307228350394177214074756844060109931462076967373005008865827040724864898878745654535209147825611559955004949118810930502570586363779202120897439467889221887047426476465670303804619888733383655125102271424963440360766756898885360242960524879250541502295072082674542860927367010007358925407843595568333582449811870934239011032672543996380658258061337654719885396538141773486005596478916847031787972806046485226751128373931092605549193660920519989873023636192840198922337937890563296511022843951861525704863596524611604554592269717841745676527238739428403577273512554152685692649800051363093315639445740697213529909699870235533893820590500788494884510491698592037944731403987690656824906442192308921330890147509224839171365303964198413556257625624000907951416864270467702747111359101897737510824903198667153997779461658980788099776792904713718265328557814796967654340759366526969771083979535239444974248151545780079956658431054240604153219057386021418475659316221169883773353413726370027130749205603637042289183843147732606310048611332897968303410357201221917586261728960714141441539261400865893135911120313586584781749439102840000095237984269981892231886817259339818027692910311141089313848708845011374735013837639363200868310186952823143969970950290070081303998720921214333220940483824178240993279738166861157842474014036045010616074876290671065230716998869219731058196200838715054392815594599407495382158102323735434460263149739620616888010200094893185139418575438874281277391516299412146580983199398124406754598636220947444029618084014290037006256670551972119915712764673613682639097297514875522911366988050307936087074385554046310286861356927634216212225930695126530781995232417897542249670077038027507505505362000771099446236013893213759135562666220017096281241935915603175975863608109726056700881192840642776498355001674106355760178129425140281166986073374291882583669491851870723756600053902133147533269332580836775598178869035629717908204575079001417890933969840952679529515075682109466394765582820903438942441774640501410986837828560086973147285839706602616056282680922813261883979401965687404920388678237726402964718730665299442430930426100280019913530643296404215158981995521424593056795854229412018041376744759907844409341005918048808811929501479969694847799672313636806742946676086756016591964141710301779766464719775492501618240558293945201945309286857513709935083037986416580754635586543634007055197493220645764843876672620095831365778287192964134168793281642086023558546156595018305394767345594261574156283539868524251345956572467103060764709270780249394478753496690818270884263411784522007482426954302185665072075965661852420750557357731843891797273000909725084809305127484055092621135539003412785857581449837594444498268956638337275928012830912151319343306647820578313920871738242523397085104522177625736982935257447002046180884334091819373438216067160785060046878972279644608756804143982517512779957692265226509144687233259706981600524400590823131136648995967598192641532359185229806518717485863682460981975338385826600566706104265562876127344603139135328097143848915225864508503739484621697106834125670651658848353325317003213226730941784331452252576733033208483994502396675082818260743183396651655119226894094008676866155937329584045150132548951792019917284414522955355969435937520931140133874055237978402357085590679134652280259876825276423125151351467373707405353089628895687329930088145984009210674651758838778340019017005320386757595159239794543809931575629525121422689455700793178969002769475977852073729599913168312078776860583765313527175552971786824163783096081958791942077290198652575306011892634814118265812392822582729193920996158309952298134346956671066908071996686804790472638454348032742135743302168160235841936991071948170520263213705577527737327171134130447318700911538590288987806893553008195051814642032259063984626973688737079715585112981257471258958890425376611907277939188655335847206488596832855875405963462301476388674836547527331563449429260418019751216350105616974720835240962285209870440441961290942039457474309358059636626104647567071172101204978355280300545454411092527971426616609600657810737991057654907757783334312360514647138163967977587143531346451096073872191937500409067185961813591611000419641635660699853868729659635330819783418292571691729265611078413818652625613720079644350969584131542970824797438921775914018544871266204843260237063622284507577513551025150117616016868480559472817738196157555595332950903887450066175879032872013641593321265747067559871352029425353824541841545726010125225064523100866493552615319581894511092576521662324903419463432277091024712099491114338199383148774151453821470499799023671702150691946429690803724535231605889203801834243081751659896548847899833403781126325325415297532738359220795766667708996227358017239730162313310791860218256831238798345790458769406925353925252948130609388631097026494522704982865579689171948345283810485841510551367913119579343221314149939997102913542751909552389152522925032062856206683761581099977375792717148435690829811441386153236576968898222483098711677321507139159578051449756583334451924948525005539112600582033914463386218005854071722857003135050130685615890480298032671691286524089698374490111508292867380098082665616594039270799199490310219515861978228070833521020151652988821825991657780587162580876695777109339028051545175571266586303169926862586731345091772701749654398538632626128214231349372153651067618718657263676748098990278721096696188779118616110603457812479278085843209995033694797920385435428483324271024599364567712196588842589941085378315750249806640735467065931312931487714801327562982527834400228774211779039377332929204825941661490722576910650229231636174722691498136712172321132875612609623311695144727373639367423857008072690651098043543448789148568998805436225021161587036516720875274493059161373989416811919713279879709325527394051625804731408324667360892594130182189483347324119252178653329626422584887282252781801110472151251036490113396814855736840582907898940639441780479766601588912591297934523131129883577794588306821600848969002908097145267716056616578661273267952135501359868632429883895104575416674430516556638559929931515043607541647986565529033010370729854775283788872676310385550558552125439491208260940052656323824929195243489285020775895554384021223567369042939270058169466847057994611413833328930087523368223105006151050851545464702796055019574883711378405778800923698796919068932567452234624658909902844524895381774689419528681681789750155390490758679704375608929722487719801024526929055387657668730221631787594542022802952466569839287742807322685119403989552669323804239666706125006404314463675331744287067079921332855871762213200364843637754802825229921610610161289524183070438767145060563290960573027148548190301096191200507220308067082817031345662116723336034857619330166279250284412185551909349188813166922821847881893276137632269087191397015130023924487582175289438759128072836569837767125549623322590433256455328890264482135670844466551746326197224307323241656933512237660137607768628472385431365119591601906412008428557367262156210261208337907343817705691328191232539587989189026124868997004553071438470975252298775203595407151519610732270419012790499503491714523974651436949919236017137171230228061388813912580639442186289007214466603241070196998111452814267266669771133107762740244318803138767830683265347696389926555239256740104894472147455204283292306307666598386788843993624672209615551619809789339688719040378104535361269927447715076682222747294150082346141037331197457823154974806644714147085212023999880710822605475446134953674529945122180706153237642063994479108606359854483423078884603321843056022705374703125032885781658322683687511230672040430782947057274922908223131555326600314729137741080833939642529226248337014264775325390043565732739504938385970686441411561286469034752695418520032351095295217088364605167537260598819446792494666277725092756385043576327938793175633230491512288263615186717468101854800408801855731345149527414589920417299196774116623049458941580621991063574650526444626868275944267341817661665820210761192450680170999034661073211023144669318433681972897103833599473289991097543073279777274849676880905212368223199229492768379862725224887018581278557300185063895014073034968156010544397922998562086294664471591076575758488369048862034632539661065089832531205380751703919591795374805900363770586889170566839336312068396062210681184378246107664694319277057937820185963167455833987278768305939014705029109740083521955963265688816331288945802165809272042919486112285060197241401348870632038890939152053348458905800343599623964240025168328576367695022052337813726140270353271742768735165318765567755085699402456348084884299628988784756556569127588398832457971037886311813982792448974835870634605222742103024105025307075594726092811384822184739527227687446986987887135491534171057565609511068587739401903948329676808709668691976313823978420229375885917375250534989172634622951482088694624326223572149937344796319927324593679640393440841149578603162479118373960090910677354471495402762115194758097064597276672683806144831545070690875563018174536976468094649820849670723047412231224073571040813415719998083418344288419038920659592033190216290606629784738781180668975010534016847769053514888782266943682189876076378182600052131662353268683368035085502933876939869203602902396753850815173072535764148201489755557319565164468024650395632494420415992521771896136776707024578212845434289290104148506688824628548838997172356175412495059061133213583350854713499662350944827419392694315432410072385316855667645897815342366266984315225333936104664700516755283773047133994551097513109753836724442406945904764281603334926197111772618918185931073654536685144760852158945573009199821256359418924242916335598180790238948031312008181787320156566666032898588617329693983210309459703452766133813530022488694673818746514587867202610758582350199193035733917219752470727816409402421178442248340258453546828387221942840754639181058911602094401816898264650049829620822161806673084667546911268327890306261701697040809582716319197325566170339023674618241870615021637862013675152654584071227316021889464533593645389924862886802637801822835965077816370112710105845533842205564482626116270764878433282267812428519710144438441136234907272753957354346624229148348470445951850575288964973223196538399359443202058085774102730446407468499036916744941982812202972492556423410157015008219017938535697919013130568499934787372219186222509410491414871898044629785111903044524954738897278213903517286792003337532201546623240760353029857571219757590316960595795016201122319604320628130778784577675088628213964598617869059735916582197914089521726010939680541479798486907071546148211393616564883930578473283400004001280225991281172092265149240898554410053265575715380976193561377731357359322230625394589128948042957194038685133131359048706294536928447075116130369264218353076080513807364658698125986409460545140264215451161708623949722397560891461442529189281601060247435542229391740051802841143465877247603927740954716035569902687705889072244323488858582259342970913721943754443697361512740896754410396806532898302928915049853554424595055866623476638537954939467896670467190063467584590207218982430856061822284439402263817909165559418616775069908186007124286400656137416998506063271410544213419986334640048748464968964587382456709946349610137016979087595234815534623343482910274199984838985774474831207172953761885208528984126408752317316356377154557252524958058902107587403525218636043089305352102069709765201458250278467963702941112328344136829388226066830356243598059383234496167384219382455585932573564352555446836955425520542000354257897102444018159164929209477703715395851846387081528836696668119135293530747574841303803521581168759435049438498442516216666535382813417422906381621161686551969558132779664601505377568099106022728514070049985265628539933258145713179096106031825982159152106046847005149109338646711256304728205329440416115530831776810822476673454704606855938716047307430790921709667552972338225837208147803747963841603512518460475387215002841653232267806908405889762175675629799673372186935415125404100178510816007662521602787209376720078137948326634038150603589821584660065171718436154590956064104598205641732609157892144782941220142447514653694461259834952266898052308453119151212251438918818689094357392067109344374315056849187896726536218076765722463746138962059294486873526903175504733713857446218727044546549518922471364927351069566688688323733296564521879849915906223362278711706937588579177446040115698533792357751638690295461841076178303102149282637269308567366519099416302496977716440998796327153765132907732999571096080426552195927798027456737802193011097276109636262137213070003878698156335968827225133632872216555337523837934309195045809310645727645150811283249765821687523908358082518725061614379487882449221697264906798843429366049952688149683175166461392722304879150418460464666549543755647889310669535060431526227453192703878753222004652788207561508323362583391409853457987013843010102003468264687099030278072616831924413069219907051734029321373412760318296303348853774126724476470108286861107939212391676054636705180897208044906190030250999453151285870123729734696562745694798671922227801994136929038392635582657578265967728720655900185670616765760182173152588840619147274369378014636063599648414976216097813467482574925965745285372715288880347233891016186143615250653173865938739639030348184632957382335354299470336598291534172258570264554106427605843952311814897147911827865738766530322452122427344177397211459971101837532008171595360421946504670775950535444723534076551635908850513243156354360315213059432570782179489421493776322240606258229197771005298125159180561664906899003445109753382178046855182054659865947300381194325028643633120014967441336626310383722974478565027307137983274696503670800375766130593606631772640661488757056411207403041135609928864118632062868931517195511730026427948301870460010179515954344084817375765408772270361906849898114451256337304758273288789155030419886751960261139811656724558282949427227655131426075309018309088517917813063245413073555775092056916414966458520570042211422290673484397812137014660209777124872485138001107657612963246404958142770872620838484607417379134996331317169189456928538439310233276294461388176646344548924896914780031448868591609261273070220659589109405395322947384579951737169525974556676449726615310477817778850671297075512910881861037018335368862727634383017265238359763062240703001344117728865357520053631796477024045938847952812389408561377357731228166406142327015258046995722338319941052735382508764475499889979341988639342433965610028462974756575158788430210688960157534680431207467750002055709536072601149134334891431998845932789424807707591407978419476178665907624797903626360507605577996414157367441653600707591815452108212899607997303041056347177426064862982894171890645806252325773202516036494286653209047323735098585977826873122367959799244541391387702327264874332039183779270909827683458842152996370329904030116087318771897541835216330831205599794396474161593707564569931286403291482229774929904487931469106128377520112760975547436250525021174234990911216310234143724772838329610158770403526622159311816066126661664917104629627365990425134247183672957641386940633171585829291761834726066559529709323029517957190675885487726521868039292243151848584670865901741103729474001457774001736611342965244262591950548094755701711931961762090504862840114825152308104994170379540132933505859894163686648419198993856329051278345820660742447880143084276313833125066624687474267013634938684969097268183073261129886542439250185589759818273881677815943360066219586144918215115812770390253106482688943046516837836881411150206946374545692911281513168157236066856868846470283435358670869669001601267338386131635916913510646185393805670443310935562393796857262412042312467210851460715636456576487930448216501741148289473560958662440159258254168100055537391607840495029514907230580497507288966132712462323303847235485609270979713687871828810146141827350519500357126859566710720421059597260150398931896974300016868362791463101469280141632005869316382303800170643858968778780155430646837310691470299658494039736393378579632604551224598238639001873419107603104362247326511450462915847289893216596940871786700276544233625004546639672050367274811362825277808457824954792110513438083801252611052147309267225124104888445176162153721905485833641237593183648215858051998942135326410795416976213931878718078484886886823103014366817133191881513263883720850907547357004264850430995080229685093534096874006059547056847261172122763788950122082771902087130014576213255648986324567951226785226206069770383061705448371437148740059636470235615330062095275075960373038897493035230302583973422391462333246735214989330744687703210988646524028657406106851033436501739509841206570638606776078078809721090551533293193463548263010684669761840519976392088734406207951030704344016298173021031724960973212555856633176748746734092621888439399900354654210887947021546338137361718679210887425191026037372142265173117773893493633874645924777657995378788497487750399311445330162932114954408283233833803045409317963999356354944456860411176451036771554777736024659741393734358088018104544950843945313545946429330940081527164614220057718279663478359790664203245082881028415261668863256273622644967451330620353162529138619696453589830722651189548692794159257731388054396548837466808276496634379749735402549063368506122862004256204987358033211824064313065980201478975272331599386105623728236047450290925211925922757848240884905128788212571339729891544472837841969466374271233529306082254237154458663258779521221962158774583653418599993153615719614329754281770271399454285089845546245592323918690628253738851131308457862531753624071744039939583402213852344848832271489376394034445780306111355018076579821366185121581794308337548491075862231514646062456997033893167379186280894110937761553062968167187258755990288765003598394954875023918754734710949712581392630290654854289765389952909601406109884826080942509116930908087869508853926869344388853339511468651133373752065901032741906927676146672216572575299294618076485045014911637941149089006133304475154083130024991749053267660744262192007521360346931590667716967729585359353795731873121309930361961114925883991189756156442424742662860992777451285319360035453756828938108511686842731192716611858546941595175746988383218412635077263384533386382823192711462063379828844500738188518913497124472768003063172529626607851705176370404569420620401253406130879967443656381763516874441885163688062102533614624882058804286416841369423827750042090569613487308157563525048938133703860149363422614837985267428819565449905541912294655332197989434171564317992560596995377464475566319808082572739072403106712350345053696314892265129696587657910713141151825030191402096990159607120778634687992953064310017234574418191643113584358004518056119474916235620714054655461611125644212626239228205691703997750414441337940934132810418811845357758964414072344009996020713453993597111918257626214419393282701156035978296506548223003154139448543549584968227248764497897855121470377739318117283165594958353314546116936051873510606445051762783993600415719191231053606924367345419332953377494160417073803547009642204498146582239258805505032722696907633342759432025520788291245264015084735543774770140695200249880181474306308248036488330112314057581417448125675100799250387178828704234226761143943771576732962160407772424279103925315530920594419009606164870852057314104448270789463714300689668915177148473466522182886324052051117982052850550324489189465300940647497267736927223938677216787891111460802187896982990649759700115090937521752523011435772848309877580512825227488151502851588433004270420087630021833642918065728560334112662070793872138137637358047688768315987804266682194556839219281344571988397870954881476359290355038529302221534377950102806790931427613357560256907328683650463173467655844565970919350048082132166985148255930534254819290967982120748827768090857335624120644386088844223377570690289068024130582148513717584640200598604781069886463485820403709006389670290829314252557593020515646764387038296511939200133890245225691937220821003377049242082209104941524904137900197407438797405262441758271703008264599670389774159450626034144785459852218621669664829668622628135656457267558949680122478780278319817133063004498978785699718883681710686965064919470788830038428644867682515940799292789547482163693660173038649220357854427774925657897416884831721698931430185749813799047937699585739131633189269004792502641999775379035072852356526898552913297157960166632165127115930048453315889410144466844020051905371108028502728717706112831991591024693010578288197634018842163076131178754645071500852261152768420251522842189064281395221084223375764719124199518373566434029912774770861076647355595078727152457972267677428092126755776756118588080550429384746502191182587422093150417979333033286206810562290999999311778751775652029220175896546529562726805784287817993527742755985862095598672366621577817833822486499017218919675121280194493786774672398174498473692090448483155958424751352815543952386444700090620030397455554596473143148744861874537142626122218106001307561877042479377726480933061621695475540550490488539247314435169540177288837134279619707511028957415849692288195284415893045220349730763783228383811220272097245406197570564930516416517758198079290157485635566753160629169806672980293598644367018995399052144813814989130878844643610340695661399072757610771677761720862031374515212291414406297755762243819933136617983751516801980586961020595224818750515121066036793134943991811788411369602448645239588917308089945725661449992922039552945924387866778605077791056317561617935252438231881415798446553603182232709551657443798552738797686416997501775485586817790911136783118895516317620899275113267866481514120733585678294108140345227841529796612634596430562109565134443674745985016779895753461612023442067450654763475902986107653357934523753448986321095028438210779034571824920593018375042927208202099546602817746764908962168051019898618423499418417724959144020724729371849130724278588668220262554392983009438060239894772355917484994333463960110392569821249591331396343372950293962447239535864205338601188218449428110646728768010359896505700461062381488539585137724550972405652149267776889767686526943563523027835753669124529819606604513227694072505087167003324480622883475552850444225737632119547110323538762823175268205462528526763296862557852892016148766380156710732323730380221468456054784451577756913824557779484489741416658023303019595428207953190276664622780479050599520286422226858517971805774727389054783779501568423156506389832870652251665050973969975305686047975799104046022859449814928927255156182760078315410772601584343209166324145751129668727635103200608254978433965577973450489282721574426806905860933321292175235411884493328215134175205203238908728960759036738933889503843596066657399671428000170753187530789654008109327212743903356161036105358005239586462669201567325350934408169610224218820259969465962556012720587181212331637551317555581146194133017606361525304841904935452218836574279117900202126618438583986602196789190702656514280178512519390593131276019864066122677925189161321099801754886935057355082156883815061548430927215025793020070637721851948210997773478434066799723013721597627482980019486927686637121455468743104732945274196552501095169931106240248326306047035418152605888581043656046020831131423637767571051167652078819130928647645194875162011093317468045798149803811951499364498230493941107592205383588536753635517434213685324054472573562084211314712923108062904063035570672657449542182294430742203506914463324744375036836957794379864383051636598779324416204725950888293605107560673320490978161116813091250217090105226575476338066291005429945909779070219734592339187527401249470517494579212003014148423655778223969685811321091026034473638134432854045386654057036203097418703310685705179780707302614028489239722976600090912886178696522798405117573909344912173113847284928260785445520963029453349401328311157460603272561673183986934973292929358270326961624573363881361267855369314270131686331544430418253767615380342727371859749314384095590734055428864650554432243220670084935940873243724400223215360860269483470476323661969340586530098241856255845521813295573594274322339479841375929140468367799717056913362373291804317090368487384502895758883249926377457610242215965983140675788466701422086186669886798547251236521430934210093125457317364880787104182776226657301042432348812448357429086230708666513794793267739366572092880968156552772557954427366697072357887619925731165096087851277374626010184236198469355856898496590851140460863784724854754684929003240547029922830748544725091550957750571625282247360820320447282011577678787439633474874460045985220569663977006125272137989014549688329616751203423382004254700757308691463095103981602153992886386942410703623811249858778154108327005739148448247326055756724935766572174296662742153758013397934126992715441594141246904368114130830632379197511738414396611044336644372758684918705183436281560754972570130116425414999382009893970243940023518325538816173648472610118775761411132181290565560757752740433391096315062522240460752241663647380605871239837282092840808537517100457779295026170481579437745318841348130271432076356875678173005969690775321606816567558748701219087488717978563092049797444460899121213473566780713601726582444851485474044483300659475564320795298286764800897592773342732489097509689028306491002227239826937482776545712954794881364206896213467940982843374522440574960174017643011832791274915881596405518192952169064861222713215884536703793570832390208964528903792485879187877142676550808019687888845486039141188441342239788700719748811281069170116115592411957519476128856184945220892573253887284072562249718215737668465403237619021012917785483972726483822561268629818446837423400587002219746746560958623588700394267085392368670940635522360502139251748474857669155910931312129941312505852886014151245937043547274110810001555297753113301404813272925493133085939640671903316836748799396168503479189446669045757085710897450611415277322035347002040662570216402599948761908225432567673085077374502018521447720110916390233990022182329982957451039245665934759102094301063798474540641818122174574574841757817362307630693917428614776599617818524187814928500192184182906721381297894970697380114775745535362894273910516859497768705617532461048700692846655907936601040257121278701067059669864366820057962056465451169521310234259430598865653957404243821634465912338436558748991277925471550150121471921702342524847371232287208592660115046111960896293049946737508587295082086778399692222362051996625813718389592844389274965625597419381674573618184718747676292083864778586542563583904103982794452835561398051178801303995706962936847506037103143174843179233111791131250390116350522129817857371636462473819819660706549144895540120280480402430684067813900060090939077169536007632568938640068755587706220220498215138792572138319661456057380099866052971936749069508917446972898213349143123912280942898008416518369213792353300993164217154812546278759751068510537116305049255651029539341448063941389009226968943144196227464010315632210965670236254566160743609984298254215058476506846191708468117942096129680470175127019463220165219410599351145268224812082466681695552031840552615839604709237369123227458167964327322937545624822649586109738605779019302454095200023158189443414487809240042404657568912644584268793907679598448663186774128988380637849134444009090966243658972338648172593845283184441521654806940373243439096170593028184304809448143695978698282270191754784868073603077053091470941514973952344913010571434222176229585113235177923098349976949447619956870734670282396756835561282738426446806560199062689555587664438312409459195974196208299994447660154942109650912474021610497535655211862540119043664335402605139911601648499320227532171784094845483729778905731504945376079568518944767005334165618640469830729595237031473274553999818291365324354579590850145665328732981937621625552564861573669021870705679646664101892723104616046603313405993952746989246554430722598418884354216336748755232684983804284831060580103733949359204027074809403658559190271073223771744588597514991801079168661417374427073505609192166066312239643230322305683266576000053939014230665917863807272075017143041508845128675274324669931406246439118581815076750804184930663463555221171034462721032885825266104967549573903298228242636478770937537471751563636286184224120601255338721552168713213133122928585220133539257698010904264168093841292322835554193888985304698141876194140310859763321034565616177158408095181026275075118216418634206941369311077560265803475370741822791155689845604042534101858399076027380244218825190811994411366043501183759405700316925344308944609150461291463761533983344710780234305748681068793954126417683190213212101396749140795992931476734008403685784485509365349404268620046603198793359068742581286436315896475708795450706165348613482504787968509570806011009314981327544335572545468574651498142758543152433962150872598878014327863440460128269996874516484721412990905483307092869937356659786363512608876117947433627877195487831598062070858466348797493380024473216267897605757696963092235689899987267647179693232953771493297248842020882928265799588815897809537981564934430525959499975823571461748955066756087878137484166753645071699711995732608439888399732407556188009843038712930858486105292005161881190746870018281364977753871792328622445509698777382812099229562158634028439579575634231862668128421479645186409155934430455007626044845038586261802203743151661011615208836597636369601984276734879288131130463560825295703101201980417832406434126151074523466210055481825288947695031130005776858228823561268763037763524354872067051798931858617723298622823441476977404722811883543542382307319820040500917755996492201964922454616071155841951247682418746747100642547768071060855785153543901929360238548732211793519163048678947468481847443686995241871758406894705287903250755770981439650714837736620644007329596640529221077413275930592522177185872353113695721083073975012777583505150475280659237279301326745265970707564211281708720887599371993277027472950907364262001866601668851254076626162886806020468958914548705827175403345911438174942551838862342948994901016655417868822432485302315963696750263209730786593157644175168495123455421984320829039689978720623233474758565294937027599388089883013088509432460773681142884017048552171617435496523329419621541215463150728868194255418050893758434308579411170382610748002778245753998669492629526056728402891274332669592053683166743960059626907077084164704597871012809344969210362471126336771675125847157190030262449981752616929927002313745443931517577619901405499628424980853290955156349850212441426872136048462134350040156248578315025364530089203720702903095590519571440992304546628995265198945183299442914824826913371999501916598984143857986039557851680543150416463149117868558049514034784686719102143578799073660139731818622490100184873444978343967239262387457332191302021686487017385541828462642834407989843782160879859159457821058556686741486983439110445725335442329207628745636867539809050906863792811437007678844026245727213959468235192356141927392949428618355994322132978326799453025577289153254004851750049014789561908324243172010452529678801908595173985116688266114122821834428818548319765367498473354672301030920842020530893832692257994564328860770874105093239240516054286727540423584615912157799478864190683742611273292559537046837812059638437055365382301422280773953950891217687781168229589154156338671883275663081834558331667867172164330157385698794111681712569124600348160893497128766528479401110792847808782002138571376033292137762059572266959123262864207911224783509781869593258456482502507189042559207784283608767692187206442079326492949678681545643570573940668726816903845597207224141272984345439410725873235085320112489367760056835746909823793526058831658623489696549695283896134144175111746113821489758635773167245703740756284612135079464572599257372979178661651868562720009533866029945948666786174648614294880688384964254146010034841517652632290092106301580678363304712861165372978659421179800057310507195041889863845095057271120114245029621398194055635653506122422116864272550523843271061582881219072793841922000960721559239092003039465668273875534205522227339422522414322922035478798859756726241883934588414271444245220362849252101650070977416620601100948022553549408252029041912946960502442582280488669724357094292684602683841659125405549704122974352885691777985077954795973512373934747507219967677920541121998684879406525317863357749224117219795988183052666814446727896602158744875118533064241163311918549408121291823268076308181185943265841811498153586778702219829967149337397041402229499502265515711087835795232289595804580113347775187077557757796484980913252689658376544920804344047862976122715755934856608821588089520616562279070654316756821806352503641494136884176904695497270481743310605991556432148368012989869286142347619996833903381832696675581960693191638211525923677127802481323867442472332373599232524448297933920542335457435781042066907345756255610862560050020212129607008571609443109567061187612841498585353504096921361685182950306049160471406423881485150832320874612998966683981151244131753851474245123257874398624383340965298433952801550926892112774657630363103580784766976953395303660029482572202653639574575701455883863170112333257595149294472944340802148511180214940852295380784132802765515557028087864300817123579858742237078270748133510924074858862266298363827600376618812959644075173201432655857192208799712485710372604263847571269575808518633974858276842451230227885151927985165914290215811813700940641653732527655566376014163105127660976061287642494410399367872358322409495350181452747797044983330238739952422981608186775543019438240956068354006223373579734491583970086844178576963637865676671654313665582418144054477100757731615250667098531447937379226262933576080623471377053939099618059733136587412798208034994666573177535640972721095378272762340664533932925217853902894641922692297295162842358310054981333512704635636690229463572253577236965115207637005374595740251558238359276016201979416257220642553555836984899873072900089691103509019458072270131206086372282140720658486032765257584518626043066314676216690460051724339188703851401017411227797749948256536818295456794544006189223668959321668478310544740716274528354516718242838964324276350504996001625118549843381227019076152528346996316413937453543765819752633859516118506278889318144389379700862120802480089059978247834334747029314330778958471785893324950149388760628166834824967032334338222002955666172283698854590750366117170063337646181200807919940616867419361004325364864371088679256696434254018460665599435156650219917645052149219006319601002781218761646047323642071636572657795191559436318085042992239181070490036731850620548290346136684536423812294931996123108336107415216444014232328215703263153638656557881507901063615717868049339179187522936288160532222422698860649820936420913566367564797850274051674705661611227421217214317879361413223821785751998418997319946025309365383891537083299306075608718135389430898308518455158127016618682568290041729479924836502793572444834911038811264482698888325863259429969356727673783539189339545408557937672545337566679906565033656481321957805340252879369112027573494650749808781654326519283696557876972360473085502969030506365680809343139716585861649113644487330707548327168438934317106655176217887371251226289292683543583658152112685739443194133476293848196557444317764508598741552409256627782362675849399544190557924296700291637653976168918729924753323851064797564375769405724690444822896905775645446707727208524144049782008220543410311511909087375822529300672642642095084823223001731956584646289401549212465361549806693584527458651833394451813542750221665182838943023193241113866880098037788452109515178085374417630844213623232609273295277116442693066544512558682232673931979402544486193399264400722590517584562962521951309558469765254130360323947465734484928008004328863038780278369168139277885460173221430115103469355870093575244865777673289251785874285046846252806792604715353186018376749501858639588461217421496265948379351027824416506765853520806548194668870140922689404837235005437726318636953442012406464825212149886953012955549643327725792661844229150848251828541328057197885438623818906846870388661454404551851930532660363565735178998461002288298264468769031952161524811565773089090771991703184686827266783339193101904446474771479216930996515535228007788895321755654321126759833242534183746156237173446973528026662678506605957792664721128241483785228192739972138915967789569811574962023059802815588481982162226804216723217100171010691573234177883847683935864671451545353985440209741653040020716563611505666471427637402258770730329965318478529914144150111632163106341889522166535202373661829618549023077138903244661412879609769172605377690932984122502910190702381975105397348829474131317504325144626153441772694718285512485226423615032772778005756866162495107827416587177783491826087098204999255143757612366117436367874609575448384945321060050504188512225421936080834739183546955580443757973510413137530505164479001871281641301115979179332391302673661143917962428450358625552286664854091082302709768818023254503701793400731687538010593877314378550928701178879781607115612548969228769063417712193671566030234478740686958945805880486022997539334795459883854671755403263495035017353354813977669071988307934794052111190934416255638459387295412645278464943788828415658578927163897698619790184676803704110394549823540890183466516799569766455475051522346796687777545748565608558706247386555192023390871042469202258076219096845395983954027256991091536513137119706629072509145829638103614599327218099396018848656542845174684973657131615058315033443560682596727633008693500298595486223160330201387718756278445048868062202509177132737532199503705415423044631476030457993255358596778960554082086641734097007576943736342639774678761738783020927831784334308158620028302090534921880146428530563840122111649475040614176874192500138858479593285779044009280337399308868676535756272332664490324618864179350750979319418218559269803139439402351861383214716219056151284324022281047844435553046421768537575532496935186094862644569476983388273324338430520755494170362567651736493265058986216018684062074438435124787629697856494952801518009008980546758117323898403953320680840497104690882312363868814889659724453958875534209851813482788568731042553705515347551943701787673432932567243632663952482310343305863288224395249784880554329759844628429097126768113400006188401288216899854681006456584238612401976574247877050935137657582182255526211181878784105011866255345807303780042250447556419011293499580622485483838303680459011440516945111322262372759832111612533973298936637771561929035166854595012848916917408768350494297590616568424256177724858775298388553776450201209613325042075893005251446750739674014017080477930166896126047220080364011816606280044396690888037465087885378760393487017318967213186109154037562237714360100204188779386846028343593985384044094661294004101851220086101924137338718955237921471110635194564465275430934964495421107778927657422841146027329081162409501558287597318732969670107520178212746817081361963866493786524839082826345109093343032152645925868603411275387968337577389456426565536722922818676910780224271474799179496455229044959035371565275913852949914961547673011681095502590393350682265953460114977809843836618381260182462858735787918279421832819739986783928293807757435994914387519749583617669526414833342845993424309061663654487437259404433593051332048475055803879554186457302122640309334896856379928168906532530416767062089356930623145167640407732093676434178315189885727137948990025224483380514831627109672155863231145512217436467370941017896568406446636889575044784317548801897294062785982755983352395252285921886675322886802790068927842424904728747275765368644587430931323255187217364582327527647571343059875452901620283774513667268670254463762652581649166757159932061184915461427491367128878696185209129995807377292530907690429823507215960211785536974506147130648361306690997268728025390169269275516133897122511562135501564252372909742350840549316917623699104465910874491572353669585266415301585519065305141747790642118397792678274680007778589690820032090900441680729380600122976291827047938454258287965548730089807927699794977060358262256027707086329729446978459743015337497048687108754703534817607751978060898327483151675738166007953283280886382370006220963363798831580506816289607517472436605761367817852294580340047185811514995312025769297404409612509322372720147888368000092109573550024811404811083094819153968847339304930972192417044105997672866482657552031258271747271018928710849251988045012260598505337493406893462497779125125907317830312626616222851576903912662248980725733769952769612639240160344053661227009053244337070597266038975772345877085564475367056654793548203078739314074144365682752010530650195467874227646943987795522601075707438631631392382792761059720522798870763313515097430926031632658837837363320711755794245953717342429229016458167730799148973008049090905407937235033542359395362297724993716913531023775334690733414432903165513711582643710781645589782900546648866549697522752026076041974267920161095953244084976407451641309555416639299860839843210275941372849155709439997295017112677995695147311162336226294325034800199620731137966266093953084002188057575725368716335635571835124000157581744411440550880533548462699518352097832044955411297752621763414702570080388179093223075924450820846132806325756839023440484295954645100135533821560962118926395253319474624153268576845615198366229214956111266427927732521514625192640929694395330056028489527387458123249063330011826315981549177259623183099118726841438049647598857218881236520241546627514644448645885951277376798644158409338692652585945518669559694611985813553269773963943186202491496026807112676757120148470271268243854189129075948285368971750093588750923038633549013435834792543952357811326174200748673285760931988194359059757394625223345258020375661007204231386566087519717240650522759177365151128860322323082684648091776229426229730809243412077157600512236261923389998988524549315336864473099929814687309799292927558197025924367884020159936423620000012414084193170218758376301528041401937745726487179198005791360525107410822282546116732752920725719407392072656750003650717195534094984437998555113626004074164431537652960397040455545254494584504276273170522901409305896574294801253963463732594175676767852521830931878614140248194688751435546307055329942901757015932061032359402635481944062825015111569593909987552487846440325826718680674152733775541218983770486625718181549909627978342567727285774111768076371693405608117482513623614175507616067494757399835607749652429869391015632067936553596686479078631525723131734760198120482846934299914395447062857366530171373347510566860452233089211335472247603759359104839210697467143090445983786719196550559641779819415764142143541024315529617985632260251446550173185348302532039563619627443100017796065359072919870452641814287649212460249337272068876613463217261977701556557346298559189960054239229175587552958408904721283878449828344312742394523712383258869368551005044829407713875198839742454912056210671074129457009138030696649400452004319659361191484223180197749976083833397391097372139296125290376485599600365156018009945627226468275639106448539958439251889848034596252635651519683071664095030222267093437503227696108307989820959913325476516671529409458556915261784391100835580824093858097021506283886936760925250965073716692146744495370310967602074144147853740039555378217645774167570552116658012496102723516725607164018507384346443146640374653420028471733029176710918452182776641748575416941457917577160057781037956470040057255385776320082414781056926996467424155685907431941569862687301833348174758644446101964086284430408038116545797842018445158713237308148703737028089586336911844513796768904015639667302590734385008169700664894294327217664895743873933504971326876295552137486380244199628878466493781564390385916553613950714409158267475183148448751903373300564487492461664751994974183779733551722874013833478040292727896924824536950605547430425496558686381040138415800282440625498581720574877177969314819429315820889377279476526749823662245249649308211484028613258939238808989804912790852029461396732739736469874023693235588847406352414762318992120288699681537048187686961100090411923292243515936326853764787541316851351694293523299828500541434932437559008373816537643354283324058186748021600433150249144188185553054354247852767056883816240262035827643884884512670119287945812961283965311284616518385936988648129531874965720231344997615165449231166138269467418179701207791266437607339291535667764896692647011430164258210595607626494941126700046240399023562040080976828678692209074796485863549238173211165030218214850792400113232640244785811431743996614614374586895906126720405032532623987015164740143561908128072953503430423796135253287430540432780708208310267733103458284707737536953975039838791691995035051061471150392106928596360910991366129711084936504472996847742714752263768761000716982084842584735873712310219982250605907066225123854858273520718914691714037689933425334809761177329863508260085333096341525771599277110587512800389989613038931590100389728871981201920295803934759193106066175375145973304591205681811023740331271870406304027840013905497329324114856177107317841578566932445627045866758339532564803973097844345691293340379862796620293286463717068048541162209631760028986003194315571630072541940986129892839592359070227619843512547572744131103584165258781646899933346262707803535302008644485913936773400630490011286397720024936515174971026359728929391406926582852024471416836039438983375807846132631604586284329982907486946146144696436237333431602071331702726500348533011212294394280965908796908285301495030119425089367372663252935832530114533683121274411901591860925332100166576937483189564753220552770463656666095357724291570476802763358228102419710437723690248130387240745597872892447139977581468736542567807621413242678295426672061853325260961664916198763153579217374563253926770293027941423048536764985284850650049926738634117316067838137868578084891422724080281958265164403899686764209036086132747958118791467449887016584852456980543370853795370440474872853942658809139073543276231183302795276700367774922654376858497947296035700521892468573115729717337043866901623152112517744494594345656033735788261974789992938300582524946183483317830183829589489563636762320814405767602316320259365993385197904920067921646525596019005922580678220420486316393453428894327903951993260303140774898595248942546560230785217313834781962808239800843531550123010760909706236567451245403929070168996623680461996186534745970612828612261092729251016739561474751935780899313134590804029765635928128584590806137658943769723922170530959460772806066175302531336783964987661568052872508976707697321987865797490714353863846618267014293654812577084714900553157998025331568803844507088676687668400240556898125979065409912365550814185764101781064078402239892578046696212304373661914445475078726467787683709183890757901322919307961100127895524009344795792090040010432440805635078744104251395964940653829706633533844983953848237894805691829574385122982128421789411610621888998756015841048664118412628970651121167067506291063258277132611776421962221387100191112117018110595394755161473709672927381998111915822731173587705301250894275845087684734290845891860213258886753954658705430490448047915545697887753635398986803499350177300549752111681450028800041074245108636230443065837446646807157215683721803903637597637146744141962028309183532946449874958845744231181971731057005594175367088808981650539060508928988166830333355010687583566421485814440537535785897348999989867756493728140897734448020289914277839087712176647223132181551136660501281408424897013929551480265607574976339657613627449494354809189896129408963164034636137781931064434967708685015945879890816090071466423971034190327830910012646288247724955908104909733728356061749029287798361011728206597002348292047484165266232266898654564401930048567543943000395608264725137563363314195974907314480082603789619502301038113045049736081478947726099396931509134290408305120914701597144470149583973764453163491721630909634335718172902032658457614589334250176939982412528706124688453381177365587149864673956580939835486345580568658998755044508785460534814094157220927589411905288476749073166642597471548690651001483788194586734282120633685024712196345730952515846951285386038619212756680202621164566894377852181101477730018128179036802393305840077232916592238018046622991464223892456513459264122294800230014295191439141393893898140750159559400921654539342367048631384945691832669536868344102137149942179434732621688647005241315089502815546561676702839282549875470856542521449329318897448306010795343281413879974076239815782367616521983845106768687594308499493683295837746670891088442367434973208776249320200500412667307436771007392531295085283103497214052272166349187904078336301351121243031559240760595198940808507234677936164772900281776402471556792338982499619606148915415349334302176185196042765395198824255146339345659558641337473765871602579759768354384166772327145059878918478387031137208847916147992614824585394733199671798985806480355740846734618162763989158533873774828092474189383642085427287958215890376745840634069597542542600488300145216582480788235580671870562935205890879076436063147231198388110910411567856149102328304989177268554558831209407920645814112216168749294193259865691084348743620834510423804128203909109629829837921169577729569790262455436273846363252959375867301694785792327329275663243069150603383400715963063204443175386682286876562761730339580911058269981893040249026338744652941960796451276054426712367094079357618993748530155598096079793176871208667216648784356671342286735857035073944992467159688104361203910651804037888329356038843168636275907364457144708048095302254414864482675209680233660960229304434212603785890318363283510619923334494313969359771165247551834824631862212542756697228913801776702379522809743613135388245347556483523999368473772845614561143102042985863546564309312587282025758742177665022743831652308461627536973147231331800135747941256713327719714389641314620651479396021611383679900907567519356819609169585127772032346887222335820785862027914297228449300171400140307463113681062108503431007422491754787467630040101063972617151311204676818705514861794972661087598121353015343160199312112915237821968556392083198112828038832169436057737840746265843961173424758470039959715864786416570028735507885939826098891836189977565811370539820160001294800065671443924253590698483103612600076422089619722697375546923747669189849671619737569745682060922440615671425149751561795667216440568866529019489496398688937800161030537748221408396890064444668393588200388901444374333120832432252922483762803291698588903302852195887687080144447849351978870520058424963046436472230251872042980507401478410028938150491095814001006198816908568774271760673573592422952327713230276049124946182811287268270999409603591680124616595557624808888312413919596417111107680708121117874220452006432139935713197322518411851581758934510979219214594348933355239216547730340058227335730678664402608272942071617562134341777560980401207425447516723662183550037731871634186204164446718159004293460276575970947181985377543706587280648060224760229815891966236629537726255917917624463499503511662264530010155897856869543411725339837677056924983926321477172692455520623881303586915858368482513011153256815740318076130388100943804452885296605537749149431534312559953007082943049777224623526373247959492654272139846628534587217889404504252882569531745007779715187777089758728970028011834110363481669338795005680394481126335142986946152139170614130279338153175510590172079807931603809006406495551232464496336186115298001440193097868210214372018756774907151567153103936752311617970888343343907556686293391413865858743103455594582786662069631355034575073343647349409395594320634558625704103212532047359691288051813195303085341235283869576130642857705013226366065801906889498890400698871063631615221088581516253064179488963128710012987775472932951756209587358013484961723562181861117828948895194678372437285736627848572061854844309618756333750611661692756793634329963664046767569384297096539854213210323872729628210801054638245746569594814533309272862433125049266399283510664365503454823569898849389506752293215760314117582274298374503565210239699304641828466531606890481146227581018594539084453709848274601247865056030016408324283741390015673465374329040665160608051210386950933625711455020723438825462839812738689626869928305554289556625202672167730788894509431989474922344293676868155933896923064619263360716855994796151186478916473278637789807937731133852739902199431671322417659491348616233373221710309626308386492575810626307409836631344308543777849512145652352151792511844772202590455232783817513750709187323320877547297226049561729101339785322021861224306971277237665845612466506264382383704776759525636967669503184996446542806443758089610270709085265526493092901342448359765568953549757226849347888394698980184816378203692875796670574491941508201623208150864878107501517398632212184219846940319547365705533089224598811012718702393701702932536913168070413877214397889144225207219430576605159164390947363168668166692415885126233539420654693114232962841865808153533720108593688989439181717192617201250352289941122480304072589493796391558139211627673389034025391314219646947451258107191951764222578920084618407555347305718443906358584770609420910919009348916236357341841312968007592846217816355526878459467684264164206981758423917494729849027809713770960296350860818708748780747582733252193027581004121830951453609221520598350748623297319218208149859459654538655844050388229247798819727291972582831553071775784626828311223017227538363913100396345417159082517378198939421361431987131818037020576059172159986754133307982759399325034322194486395397747112655563450586666400452249945900480259599515843049550202348569363880493071269688901917387049725791528056020983535962895074727494895030951578053609481922309531835923084786485838698180650899574079401401503418666316988903320817820505040888883098415583646499248668782170614784586165860232417227190330098396189579268666504086378284160603861565346428503448232885597782691853364684486748057973611349619906720947893185209563436542700923237862236526500361910498397283745137875267261037955583354220857103738798832144560641856323239014530471539451868939992296689539226033841472150306498951327291842260943144858224993502535703156989564406599583921621069678394282776332528935817867191927694315534772409925210026740290532734626093312051068561855904426415620914390458224892118097856359837711130933171490547274294264365123177330936060543299329870978736226329331617378466408674355746908972045407435686365326209189765330501004442283951468902150834858087620062242007113599793001629234413033659156677505438095220954684791127128638896798562023657287814917657502371182536151555381179960022649506316202340919477665263683333087376217540771729295742172558338285292816088042445747939673049129025703587004864512458366139296586341126046247026925758741247817541195454135051008444611564374661903714203775596758954895185254062250526356862101906749787414937248151628084078823234451345375154085368863700496098914848181819972966445160928018791398346932259599103278463147322599225217373684167213644754656642263146327582861744601907145745882582832008428800824649801171988821659623223093608555375818760943324605278054696576073036863105859124132721325260427375884526041441996362462068672131716328989920192378273653582248484274182567885176260600828466786323615567810104281304474947709895242550177284762146898033799433902177808695480512160775487413665300361617968161171115831542512865044885706247684840184734170959604744858479136440105112833584828920628741738325516866871970635831082955692801241803752844063538086311830647967741684734753144823872087798399691758747889781230064333680649783829621706914153407235413642130668370236904072812900685815988550807182262874354954128180057441326185903001764886490109979198420861218122545280506971012561585092945586424895515340205422787278191244521958341441570356309738858000659598100857942342866836868855900004437421194357183982525545558675175014163790703164372955935641301486087232419707179856141657238090290135905165204267227627618884248479811924715641960560390405983879070354937372529970710890047162233908087274229005408299320386823476112135371170136610050985818334938734771127747849350689786509124095295910873851934450159832149869030061380587450805822703796472149304208305013952719973305610111890472754069395863955830500008333779094786924789345257427132211499925531009699115079079689263171585369337497159899535458851743370407266629884956668371809346572857538355354183419032135616813318838686643180691978869878198375586278519826651954875869876922777914185786356856780738920010430911524027062110823587251971239103198654801763971511785510908712529163333374129297121640744983096171227456107760578182261213561833475757279693703896081337170574907191902502028974965715001250118664110768358701079047451423521763800015182740325999410699202553766128967809041409787360317981678790705528702764184597361667532197218819368314059514706683805062645714205212111279898168741150735557352789736563227995401406894914981615503035253537496359331218358433720242653315680806586863632146481303440491395609513736174297304010131970391715910447315270239536808445447236996951596178364706672333013382923344437263968495554098500230365139651887227775666776954621399973241263467974163560951989144514964387139647565618372405342955230990944648064076070861929002795420648371991092724650527183560104616790210293508064391619883308358407652192365275808212112097012462250968353167346786973148440994385071941765617395169235210129332556186811599220248309557483924985785740723302683946657410213574266267696431810106938245575921095609300729989628444068163366217354020098736724153881614167455058273450511448780415167759998261737235986989994578435040120919789057224481263215873228752749385833426919829242809477900056304609233227708180831328321605052914357848530642716324640192801271031930421554631074343847062469476700739697571937119137955533773520650085445024749979977967676278832348808300589035362239532013973999941068167992015525919258318039629950086867573623162286855420882293146470003898958192475116487246716780853165825487991216585376665674170797231045969004680957245208199310023488152270332909120117036527699619082117259162327697862597751485885835108920146701843596064046408044574545693077078246236824048745470163499937342290118991422401130888142930237758774159777829340660793790232314175619479299125011911211334728638977503745454185081721665135282411186041562245691333603898200628941538504183417582310390464407262336790185056728508921551370819715929187636631253459998115376771023193059661016065663989592671023585095860827199561981242252302103019411451144892411806231595264224003242801825518592834361300346531791017447635639467510179108396919881269077666117079264330090418066716647014235058214694437573190005465930152418534240051877725030582189772744103752919598693660919666558236007936509306217342171932728048430528188588381780123335489534066797195637445137440199547530204574917222647421493339491987297414913430411624090126816112433374522382274537947472221310165948191080418303174289121742857367484652717855472870177893556515342161875177341666849162355947544921570311821733178407691673191427393609267280363079047800822405418525812891826561019277528670119156719259255736770338005331125065399687776526073522398687075342528541428919443987295656663819058984222927006131019880811603932469151732555181883763959689660845215026614523141440853324176512687940611419780299220142468967992616173497008589126989105998167722795023295533326031275713573127650092696052047133854388624103526094580639923488079589633669691748082934130647116714286851833537502241952455025255137429779822116334207905078566736701508489676354371547989768303906807075122249705750711510722803012266979852363070820019430801033160312810968423642133336011630028516157196497366920405381020166047075373547519051091451924012584588519572873713103467620411650533580545639158043735055354987097460269780707174366262431942035458742899033746638869633295745750582802606647112417781933274643135281885547726528307769067932305846728310518599163132334594417926239297240230987187919402640215033420016865657606515659301786811709863163331532650598873709157673774314019641849034910772977526234713584461281843853247830089710161007181499914612564581550058337851151223989403269175502839918853762058388255348531149455603606662343078810485755465789459730324627502056076718686645519925384085225265137678022574594558850273169804006503528122550024756155326250472914048944454923281832097290323241818042657187239889266399546977725822615472802959394432935082744746269577329556053004544760426047267862259475260749096216599325896666639855204290106008986058616000955220407761402681343400201511730142516151240501765726416245755495461717266379943853187448663235262631490931293817733106280035331937492503418751985084095571557095381936611391277182392240666994485998889641144617718622229216995345463076942778122626476488435295921390369130558753980604875624735483203260245040837894986634972898797988767672911369861862120464525677600189728712954137231714725153672455533902526604838783378761434163318593233967632213665426084661398506426686016469357193965698754843741605569771283833052011472814009521509651523826630342318621696442838697410415068686450453849358104229286577273105220386691502792112600951781441058008252463656361368708467058501664337469755735939706187751797511640638431531308891750081451125738973754664456344122858696778460758683202661915022688163605616335560949120817039844172702553406884168444660827723696684280782345086817007413582883977903869625338292881848271225993717552964089847256758686160205081419438088547210716778196320328908352435404170824548217673137200201986415993793257762142889640030180374553775172750676924758814703454161740731724547451093352339553144132932045371692496110631153179414297665284222663135997085050548812325375343071039430639561291512623171306940598173674000234478000735711460157360332564611597750572029030827870739842643523445095012244519554345325547423157919148704606910746274632293969932122289636119263519255937427728555269572425840869877442672140593831443453065092564933714096023460388156777075579619796168110592758802922360232720255903709266772090014346991223684696248148109616110900571176956297458401138970652024158801590565345260805943071289026754093463138568893934343621365583989069421107279961661500111276983895721981831305489222138368858830219324299095504919749525607551767823834765291180281313451818591752422514100858088906627393527789928093233300422481964046329760128456447347338784112765610865682598031454645053878175009952672418072510047957677273112989118552234736785060264718239882894893963688702007585770160770482165676407428325834999441973720641652265694790048074079413360209385534828669357246392925708627153054021011178810576080526604124629988617525222404248139912892415816889805124853383704830055448759981550292626092700090633243812302658795300909425628758874041805358940287697037541378782922891690167448144522003550455444104409411758204639508138501461518588586899291831412606207797710830543997392538132467582912096029834141767146849446227769789735226401798853720455698545552163399231818324180647844512613387473740075679038781759870463585504287594422372860447491382901359852525238502167762988967842858628505655183992826817214707859017888231949360193865498073565851488063047894806261888339196473559396276082836973217113125189205515262373032582947076263514185259914843613215752830418629158843050900708966142841169516991496426600983824632697488626912574714406396984864711193693054808818011225237278376207377296728598510162518516124772840789798817124853223922359738237082402630843790739355415617035824666589997955733208767006847727862873617010277854799635193933177988376218137013959964452847271145059745810926884492007957267601040954848952952843615272820586539047411964882879653335181205041760539414342053619838623708387959573835870778905503586283267590404735429135707610508935505268703021012302639465583967587031949737499645438345646808607603491170860022180231209413168084085634937184416198583672367672799833478484213844443280732424040350752603410293553193786142412369831445882871299824678435989449929657385138784594786499717906554794421000939104412577272654198800694000161354320642968099041848889853548959165366368558025847674349549178966602024437409248221875863369396477745007457108814676167294932259485799778348355967389855324532532247373527900266696217568443086302015896638320174538788264462678596626725469716071971019145348899776143063252870690771339848460285465907230909637621007881786814877824071278561294798266694607081813860861792618104917170021013601398647599311198228501536109188822810635543575906499941845723037700493672697514245751165845030662532700468574561542577161078273541209729304803487408215332751785347987947853310818217566061555869735346044391694921198587056004599204041271007523454219354629522299868241176916919858747757299679375285719015086049440798673395725420293652616017343013023331599027847806564916960672878538919152970613334494144914811533805496897872820125508154311595103833312727509474585562555059491689449377639889453924298166461146293078556809392213240587097110582465844311104117164456285258097211536170650097978300676606458602427283844321623271662797890607789414535340001133054848074272338667390181188675969302277039585515051560119349711984795775317255290585519452143196825894737194823846055390884513074665338720696513516962212005401353319601538146177834895352791488867700741944969897460642641394319373973262020006270241057562544393898684181109173212987148888542088253752072998522366591480725416940446888265537179816099490832811789976781902814429545203531434213059738086755057925943654700602284566234654527946857255299267363697831824042259514802278532638410001021062139513245365631727586366739116127202781254578071445100949506209083222506218092913927334686837291171292380234160917886965934172695334118179388855992866172035666975110013186053530983348939606799196385844020860178397599951830850287554711604036118043699853943604338130787951655152504673746613458572432812741190032165662632455195876677087457902517112128526209880854805112611613815912708372736061809607593185678163581449733662907434046302605166993747420749433405145533013073527692057604172928723517725346871815963886429023941133989941845533083818480450828461642651777843054085455138171765742793702043081388842705313079729126278239439928519903816867449497563768556077583095389940677335070541101880843917539442139432026864770143459180391534971577311778091952433109586931244785487396293241069807770468886334824800326244572112535469416623285668740893169101056523658954102978929820673485700251285668328993766302219739223392675221341496292977897477690004069087877878071480073012373549672366166484267659113981429716236580186971055200501999934778322118377312945868567705602934615593967429080619073010932102061668669034416050066599827105114833673856000829291515595269307727170438826258843358348868996533048113056837484667317922729431356981352580827088678638554668247291031012435924327035350791568613827425481258868794490232425228939665387959677000492163318943096912588835844131869470357080571059300076498985607194595686098318050519524041359341597840933575079730269545958035308738783259333380410913099036873918269671863654731359657386983133839293509801735416428973400256124058431401950532836664888525374906208469753520850223365813088914550492988022689380921072751506918161046698998479263484275957551116447015506970647145131372492208676466460583753828863045134479479187781318705909653846338194386407900312447332567478717431444051523600593696902901683590461340481155834994554603157345619642164232399022942159687347052141455626316176909357050272067141598686017826169827041339960420744721637876704528876058753716286207045765091095474754345603465647146582819205167299647687286223586128469744630616253790178224595618445509833282228487985617356992743783949470662644018802997337606086828763005233653693120577820438964312570634780180530192509277174325227244868684587811310536002109017206085670475639236050922442882985254368652915211902803088662392803941301129522128515828312230805197404169709987850848337234614661464959392901989468721341905135295569793000440800565009277585966550096233403247872122990126829204792451727310057967994914050097427906346584186278643729058412356258385840345016431275774340676766111894205573189452259392301076679119557669463616866469127525552554197351999440770000187508044960887662226738577470373305247110011242088633756063787747322471077632074780753843833655643015881195146854904833336161117586555659783310379691804952320791110022967374661404010313946902311813972388734693773256130054650536303779940350975291221783961831589436402049300835017712623689674427416726662892019791704782811193057503009339288490911363460885132655262821248202667317650153144776658301738985954436850021477419254240016502805190568038375936396858101709683332725007363119466780903409357549837052064189133867471466016638014216832367937832534490829075939531738778587838746595270847728813189001594747611054452896303027977379803510175882278312550896507832971651082684004686900151205513837495868877900913172903585577318013286707066900140295168327595075889145307197641130325551280741664733006249288453921818909413107638658963493565982954162664099084597778703178930706924088298145181953388433148653658630500272739377683785602039257782784334960858422596202544373406136575866602846127293619458297496964293923968302497075721409287691863481640052924142042838439919969996860182321272860359182892595579913601142007915292746761861625407389146321278066001028612982228046510164052588611415482228694765457235902493789142328267726186570785303726296396609352937920086130401346907670606083939379342667369485914649381853538602190227551260145981865509835600583644524353725112519530093433037782901396780873366135154760153274546601437574480513688853000779145427783171584727360730617127875747868363166133734057323271581453921732065152346044745167946431162487275028763696953038749265580542274196482234553808363259264730516040610649519970676602305345438774707217257795681239020868276735490672958325566017356708098007211192944958359221220440631395224431068671493496100805623019150658035236933082336661262631199262333749504917860334738598355849522430833000385747153307796491220944673581996438285459663903638196472012408317703777008717726947494420651594583105567863698165276365898218544844857886069383920364861180099327608124947346923169398256291687515735816487927760380276275664820791961856644058284003330558785524551688359915928124142244075677965735066785454325439453264054545024593987398320226075182944567529030600444261495926655694863622482647982460647175271336194970000822486549215596979931039880716998003310869845887685279216880132928440921034445046831528204800860532814339756985223161256234782866183253124945186826519853543832729266298208471814562318579787759524854002326099471355649132005341108087069878860310800672122040392630411628677067671203081847026659311123611098141457654532145992780621641426239712802907665136367321935488676327995067879290304288068902732536829439783567005536353628461500266700209583980398952445996150944622370873048287457504595270143710057846580385932385053000990584539345440102919751324556838225975546101497374735658877285022689776951163395060920183055800693984079003572439833734459131798240110384835439856849950359303266621246056743648113528940188509624857941038733187227640045683814461330000413051536359957502338873062341574301536508778511890971079646531021813665910691552874258213402122060105803514119666271142479669561554973643072422982239841970537981442702999320000133043998443870086488464689280357845134725228812127321732014304929004301122955079989872574576395511641110922911529686786375030172863744828150190679278698366114790634775242294364674675229641289208154037985976100638269570418088208977495133865782563102554732435762035444019944611957576211685535629721583630897854474533465400929021493272694740875151449005068429149273490320447563974331894077657148595208300315067885564833108609048046872848923547607299483602222567770538128015617502074583359404289595551910231265655571006838537506807317704565745849494888704024718661124239348102940804055464412377791013913031555477725277279570140664811467097598386464318053582947139652733435061941342045602842780392768461350470948291069265315102438780268845828135025480808369593127005610604310419872186912865820490594604060693136099110310662143013785712248612860438644296352885099784900019536640868729722494710067615705852076481384503107308160708914541431150364040633685843662102355510233830427206371486658508063405607040995529980805118740569891995652442005110766631927735470930470667557408501948067980545519902116854644615701437115776831281231269127465753793355536272193240990473390293527668692502815161115454540785088510061358084473470787434852274696125059288806996776478806908408980109781895427973753521467296447115696695308016932721331854190990802449691479415633388515289502517694400612388455506295723127618613615168002785918512285635305969862769479718485640459813543244357827724309868318391721375368624293344662678101265483233871235782050575206152136068484927282273435141902763264756573942532486776905040723581445040687884863230887870118723232093452311392811937849885171692233219662432041583648415680033028970504455622142780106130028079361621708189610597328881300168265172832235418188177161040637108488396844496637168234240266107026596174205575209633406794710790884658768544411874209443219223560756784633271977297136056284152185092864298263696860990452703543431335879655351604021551587686261403574139591660990168552974329635288659944467613836249989383958859166092069924240738950878251481185678230000692281346104414020254597401771833906183404600593508074379551044186031918566479548993537927587895228150281408230611982490843800032535533334236842376699134411586333582618237926146193270708982338620185476172953116903730568814246859897587279663581776668368842094073962787680284399787463171216975804878212849429231145178865638796840067682894991349193447186029392818612803671338690692203783637247251689045883314234338406054281975929846255117253108567180266835435319848119855584070221148111834678238589814399663271374922897531782637593789898224892536040315681132209337741697614929734072116921173163974422353490738677653532276676046818204190431105605626011775642346749677679085989307199209320483110730484827516480332009571290165428866761254608431175504879420353198731465306361568195859853480363907865449610563888539470188763675310493885809485535733216794967509595718931381461780891078553357924049445480654105117418897909600701856801969119377675705346479254330039023595002680362658532696020019797999803124944173438380251070102247646043971179310696630959910256678454808617629440838827448182262216668450471093387719754175922336637654488499637396625517323511599655623490695942978053630449381049175465880877263291337525231208378872839026006483263346266364690602219138979947519665845000387233446469190522209032181974997561962369869286965002325028136514092032348443828789187941711746425698731262712076889908496653198833420662361444426252133581681351002879131991082237452406066239838448906843022531751626766237332156276862252587305548017197834543931835451015308880139302996505302206664239545842440837994270318732620035375254137446316093155157012517320135003233282213846294250228358821888950657675726983730917215411983969156816329785358369420173912964100891110180582612997667158569759416324085060373296915501776099882158791337068969266001723704707923359790485597033623766387274369248841502405593325320946340952592563002204099669274436716441697914358159832219975283556018726225172159286026705417370720164794481470641888607240844359841524265756827654886113487626334071859993882718007966265404309529521926189559707093501683987563212799842957670792538722333201616635500346512528161153086465280056721952420611187348368800252685394275550296324168743746129685771167574368838963642946544872575902397151635211877442232542432687708613445279782690322259461662814207464715719281748464177235551793186552501857856957004533982393019406816559696217823846197047606229865795946026345557011902535325430074417304653292723480210933586675225508506214656257518280378062617540564899790465057809268288171928546867876749468538132962897377609357872859564979018893595379401869322332894237647896892981490976597674204288973573187880909490697011554407702909889285421609793944625295242076112481208279252304895471641096898098895851176373762120419534648217815559882280282274485784805465629411753419556239392489044962075901936926194544520411694186421544069926940033230751710186189700408564208206511386686002930259358625810038512213362796884039419715032695752320779481531315386066482585128013036440376446050086714370005301899988530454695813465408535174969902516137787372307157777654263829516465711352031248874047851198663388668813119940231294418764275879671157016176357277441076603016961529784089823944248711723051362978935817676367565933844540590725593272896735112264435615018293339373167412089889259755271777080274741583438145764108013119774465051862109390498618020310341072814569469212372714344952495866439964756660400135609156993336368772118551162942259848392125167406596194359875977844372942934499179517616002767594059837978412190586282887391850602204673081072943054854942365278769414580047755673683465349755962359238943924397189059184007644892577807847471044704085128239302783255143863331506612787299483481510635172444306164041114226444079962746096403888798922519809262478456637273915099208129172938028019492005021946796190624320816042978011080270715346110932667178261319077905700386479900454877537073723342610379472229223486651830205153786787914933638766336197899289269836070170139805696393048123283729662839196293905992022351134709483348121291980826923332968117544150653910291531225864224081801872699490738809862472162573798175862454391758295700352331045375951474368734361326464604821521454549656636686220505594595632391062636195235978681232872821257088529544869624474680251975335782135110274280243934006612923891110117927459950802897980062564059537552769121623410583400635574918855765153514685800012500920767401227487930628216656827205079645258467069621033733238126600164324444726766538159880573554835260186598893023039702634548627545259672221887309219134131870322749207261197293289497884496150978288996643342285591987131470637060088478132106197908421368156252039027006941487272792109828228352798180090001490904064142176383363234390603102224029599591120305978407430528259806394395067247201216275992779249711731474073673333336721842389472962961414819612064379000553923041427438710865150567624972139259361557990380043330181123668019727166607384830620731182099714748705533273978505728909389320749563623742317530559349704131015152116093404965452132531747191645268124840554463571930323442284209286568679968127437531262773001357690915618567548305802016401085909462710288985807562390118885930430723242321793230385914246874604267776589919395904945440572454894788797329077642166308077426629673506554793489688061786293308855150635793908576557372910965752907827718933748136104816236256214150844242890224625688027334210165916277069387612234814064942786444322972919174480923813603761367481405053822338141707601225696486922044343967326327526484555518504298723877622701839776744957036466154131107477296797424919800995864730010797295343363454247088873802546427245768297528615623371841270549457719870116434878029914747418030971069816249706119334475175212080492495750182908717469073423619509341910135370698762591749228650395273815527514032663319840693220752344005480387622738221827537845406872798480334861979359985732421613002839298774384826527374546702190463839279275346019919797543888133697262348204498997341371986522008041615387384334962074448041970053809948977365424068077911484646273962745507133925346168024831122779594048608037192571548312083448551330709184322488960678775932631941195860758504088942164992101131597384063069089755707027935052062997891506399624487137853784408889254640692002379597307527483122626367823864666226698984466018563128798115819878142722208503318504654997701706786752020233790837277874141197320143881154291464771373022699941463426326044414763372981033603628645364418526488761926017872703542369916537675148606611706688680440989501458085973542554866482263530193908142256057456508294660209982647786108299274091936917202435316159269403859489610608231857714916571368631450053630449029859674665456937118276880549572315010043491832336914535023039112317851925294657055733907837962058067097490014984580486482948655116151546959037373328717330307519346056964129085790044913151178323193510381278626471790246236209464540080753285118559343609610166470696644446315032235541693209895465896961535761379647272688200783631056560538694839641981913584660167805193193465993185976688708374300263359526489693289279774679369289078723222150375769506067645597886266858530957421746845269318152593272093644016884726223376529140156904465473014784777457629251881196993924241565482587961766467525333498387747405984476843286887171660389536585433298682089122706025667581815196382274271448910403193248353356013258225805557379200014128776902816695941714979600053160929976676938447740402358083344581949018134113708522907942628547803870621392158312491091508225315899956222395595754448482888409353437017391732774020570641821176022038764781136371020772359559297941450262177607662171247443002777295892066894889612272216185120477469585053062306046897421934915204146178297218529640404856781068261642084788074809623278664053053477040407180116776010239445953550370478632687857067457144552784520313572905316514704562464476138510555843518864545064369882042948170454780471138980129417244445329507676792618619643960261953386175294298467771837041789697617512333845022074491628244594164588483110899782271251572837271805124618863383502965160475566744395218327518208896529853737283698289061252987358576326786235226764155106091134732630939759079946277026476244346789733415281203738833196138751301271407592259653267055135782051493160584690782185635207762301429594293644176821767375158719570287262647225916392099701671557499436522832997814728978295517530527564712963509142197674264293552983069218075485966244756390733380115084595401756709465212446880556207975673061938854082062352483311124013738565349733619406391633298495352465447171154864722493720232795424115451369400989882122681844643317482947659111240517728304789437993354112177867869680239727696684846675854352998820816521050748487836265270530313554469305193147165538556001717064002011834484050734105100737086789833652727387923636062175346313924259204311784156924847387249680276790850057012425672401774463182431037777437262905470096078264756849429004361517888208314464372477290639536356844803137280563705658825478432173745973009060353490409473616292384471016771825099608002364223725891946940455419149926257309750225420872168684186191392156697652841313721288048004899161575543518031143574086049122350384451236637791453778985356812757573917548862406699208046509565555192030076687585172607916518859309936014232194073037002454778509294620728130583281012922530130716706625566748747516409952626874520813154620999594222862702938928542460241652058326286012006388711550821933539266827560923483501315857015833779038935953232117740330938952235023378852373611754068094031977587592393042639246365893803909436778008293843430153500130847344595505367230348698355845417722349225154151303541419553824852610264232511594774531261097736143286667804821875936808237836469969790147595397706780281390511108828637704605225977743929442300705377999066430390766656796744892795023554486910655724768245602012656544087988986238454313182035076458228954248453578622257566454076373582877424474487381960382904854325581441356503411532419087672277026118086344566314262920392474232749668154514194284625174539386229909091557609948646184130516788150019204595812707392078453572198530553512533966483694070604998049703743669173780835277620641169539023956461049626131499709923218138365639421951974990241280659960956442403989561671827516931270804811518250717370975889287988604711465593038943065965479149978733315586582996251454052251421822640817489939678756141115175049440708458939021772537025786200374838293943359890681936083361655469166443884319666444377109828263628845407524774362229156673440585856258335576545439975567131149012038014871612637803294204492705388179894566331953269525260429974254099682602820833653428057984652155477503351737360901246614945224457205272007865697795886431750008096163215091355961167978617514878231558492040681184720094123833568497344968907567097869097372117506813827192867772613124058076982716468543206514555687712448717106465064362096392751991001955971858610796216384765043954705807545401524135723902943106635740991783079493326475485646580828004409693641571828816189298724701519690449087449780921894035672358939332150128319098713129901302081477069951367675998817942442297435708491966656425152394824112482730115595640285800195614332774964324387146727999382398421850781502126493295105687821786792883598705427437153888574485301982895919154996264761346585884908652883998772307673794587188538545588266645838207807872979947499300924750517191637860715071239123654912738299076194745233316458767413400662278903786488980301123924063304121443795165473799960843198038821704939479490394624652327558710114531803770140585940956281033813361157729227511611255434191133523901461030271267547026689824506753417802992589494732582721288370058276186911742720690726345555796312075761460245564614012556080114208068922931339605605903245902505071912216397664896280712020337681036099772121511910313447619739509330426197557395004695801469047406541001888215404842589031247063895800137880128064915054271739511935184319191856211321108534813362180922951082470062822620364750771878836667260763490412713623046007215656456967716502709893243510856717351230669345334064439309494692332328219249524789341434641999902400544558535522954595499744227998541496520363979795792490849955614254084340271114267430079388585923018924432987416359729978963115365840856583454980561081489216286049789857199403961444430151720117433257734210955662800539584566032475294859802069108560285079109064008255092357186543702587476680712953142872277610997356919146136404515147104769014877775279651417665450477380681530456833185054899727784407359983648461161643776588833345117310193712934995315958500597225699656395659662001013367585183303281681775733165891245142135121870681953471973508456813293701576801463951379994302944572743813441538733529711661334558522830588870281101727569652291716244875340921614280401455561755206831713616078749585039880160834339813618223381719456138563753269876309742100951411802472736009391896755993984017980165347658453558589666186182481584014619100248823603372754613018212114197366330880613493160995693506161906212726999151809983615704979047073775404480566811429689703586227523419956204927220629777837261287707009378403138305935143705439236719350021657787740312965354232728092246759577248718664292713322860019408677366897949899109038999632993645224591847169341119407595618461676399051226995802669495863328426150366002022303762020179280884038227255001919577204152465009751888588615296075397450447138280023207250242537608985526029103516521763917709252868189784965333652120863889478352298680314891026206998826693789617665576214913428108975985841215694815362688249300300103996418224604891507128751236139409629310390860784088782856800839596773274206931027178108421267183941412367941354668682526964557516748781527671388856676621881098641017969544908296476708013277142749569153177400586780272532633464836780141224153931173847014930372461480604775922915971151176615580825797742157993937606332298124291113619049240417196600389181406436630283207021161567029623502063672377151211204225452356568653395031724370136907034628782069184564902478147580387986348855015909134942963354577325274014852771359826938219444125837047629692208417392965001327114234141989346631460480468404551119370994522094485351134577919754087757063935645412772093640615314841458954881738766894960224545872771787481967670129737190449176135077756549790314055725150931410334648807562995587876928364134059905061338716781604021303552439589111453290137835228981786339757253589235281974157286253930650441422739060955958742836750935083481328074335724213232921032921769459158091834962941552087967189557816198474741778548206393808104555570362813047585998345851871205799409761458527594099835598261686478997978145640515448256521414001830374164084094078981485881412876614536290448167512031003010306206990517838877179058508333415648953084144047322189926674368881261463176818164802536538680074424620077074533910262773096036232652701606130789830027619762048271738390466858668116888756102680927381566297871590407366973239510606826932564130961241492805863734678107187540227078487895344512983753387090628568766839519857397679792789579261786938289314017535294176662359083285891936871854623140866547042392357501795962480023143196085248982782503272232976270149400936496352142035784754412533440709709789322683513912000329265698838727270381891573664497461551897063648033589576909095463517018600926318037880355587833081555415142576141465137577751410092617589587805192874727493365536525439176974077199750721264539408348169391939707371507719921086476568382495330301715955133585027568179546146698777477775952392226734126770281476053113585454263704886248693099154086068516202193605997146043186627640777563932395216193523486458125325730421086667327848682215171175193187511544797833953709719331074965385177339371505064222718916361061042416137563771665932201866224611554753776041581602959857809493900533150586101248737949871932487190111853559572246092504478278480403463084594822626278865289348273751141883489871979344022381591166303249047807971848566911791717830402576543540833896358230855891190536558893002488320569838859575063229049683780603811941869624284757089605608906896847370438152259851585870859680316717689258133771472969304731445359562542885724732309267436728504270189215285571561444406682280602986308397197952212332467774011651408740854188250215249774041566740141516734854415027960718094282907636768006205789987278366442610628879665658976270662639768046500553650379328452080381960219989269989053290284553078551821219419912274958956511392851417955087589959793856893379171986525256188761073824264335622772957421730990682606999984766157857117350562753507828676969466343902896488201447972157329243268309466314556526953305093765957872564828937002937825499340153101605080958998313322982345257202165264509677290334320155011941664715504044072020081226471807334986184501468794281764108180642391896909615627086828625884065633513139888260331744031406289244137399349144809734772263721812303335984058104640338619107985717681392994412639489247206039074055571447241273216835976959271941388093746100592795043991000235453652016239983107552325666672481078797552055918487533745496965487632548185003141219846705113583814481167431876895563994244777986156358714112161300205864322951886288875786509846342190620010794194412195335965793206772073560711830050446349575544438810789522600617463342108549638589156476192817631450195628266326469844239340313195002126523910504956919484810672985646082790757689777295463449619907483802849487427995913852965937210282024442583498536476918773381354119669828815165239256002104800476780657591786118888248291551089716247278395343124612632148563072936233934572566382920716692025932028484087644978567769115857319011570429850592930973919194606232920363881378906646946606498161494472839818477913428080396273435391230207945675064253313069871620062707743922312984550403005803992035945500020751777653374511772067270348432795418689439102183548630827683478519315132162094787925967333521105754747853782858808175289569076910658179798893533890398247446010618308912036593045291000203445343735716145938545771617238801896215603398369012904890708630417258813243114408403580502101380223383029783092870010696362967716206814832824595400249731396167370790721022454250180845188595367840621634954184215323943481726906683693196866054204272713101906349614465162967754571365446978323285252102626547852632932790467414135853203357294474110458818549538343083652754935055973219709656781927826844225782622012135060739394329759240346296526986254225280149021679500039606525538833090932690889711038629036201212019115195367322322617197631753999213986277799556689891127870509502963511401205496500050314264116769431693677226173744882767888311342501349137332490008063151131325724300939124585659439410202903401515354147287644899288570000273777801739772384413447972224219168522611348241082185836180117980658727153083571174723673186768378966608532839887020937533793828613299775575563575373059500333089564103121194128453592643915521975667648050702379277065279249001258138634850257587845024846157913101837195300703976842816212774333324638846061236799821104059624353396580677831764935936233344812381059007552310248314988583478966645860421792414566441809375715043657421466948620585629346678493144945966380750335195551352339627356888373571132758226895574337880971593057093152633768305902621350749276626913239599360188284492860894462767994181917040239790726402735787337420305928139564281453962455294936353119046945782200992999225103573851795377630624888121793119785610687325207005524463473952528516436021301172702197313983208690018275004262399280205739473412446930023367503445891226299653531619588237800912765230658210518833325598456790925348107948701991351393768484755178327991929763971951201122762773447474174406989464353700533366043768426018941057616651969457426081431157107988220392230130677265677825729603392632231689096339476293987370685328552815049516533146191793081505331090151119893793516606089552177406404649158482522851046403405556067001592089131468969566309760107718151846276827297094732105241086180355749777413969728089951443319319416556956885213645247137659807217467214038946718259742440264821074177773873792406794036251815408168132441260810651421004242727009631219334038263055187699108709447688527197651481979985353361107816645626521967193206212853720476211026130220272106732066455587726709377232828813769075481241289419487530924870032575930107671064460604958699396993093836042101676788072483225068762721940834539035856866032931075771168306896408649863560314269528114560766758582839431906113065531556029097912909718662487355345813856061043714684008189228340401787975360051306440239774294338890403374278930776560537520861655205781431940319784480839648233517485750588861904164615289950483737650373880532620034003970589550313685540518655557196058721309763652888610757960201394458970317651393727490658150536101750241165076108891954353833788111076855768232941652965505600726744819899932323472874287193998718711416810843185193796787280285939030106399458610042205338202072463287985261596276095241399355874782901858058345262015854479470182700452762300591139381102409861329851062146666440686566354171727193101662735407218976271713383497873212818972462613247417954755133243784047225482397315799048616429543079356373810247889068032138891409802266962935881495723871434716345256788924786931665477442275734352926447466852125282118197381106977895582905276925389032252906736863932678962502257154005172849061678143359568895981026119017769025405201887955789136079825706365448376358138634332191618972192354780921846640869433734200111674000086762891969080405169441488865116617123935489878492017747919144194923065856021490328385624148582636416175923138518384784983446978976093008811598533176812501232861078118933078454894300308252759349768866560372584736020009825582403915426625967396895879000350096343599833206753467684187255852303751005123462767299359244913512536971727012375324545256104451391784343587231194587968837876879789670424319542194962168464787195889695748422734359250442046401557829407700087608952187292279583880637020495683799487875257082797943725091315330781112455307189902572909242529084858985153602974129551256194655280115752407177780825226907975977090133557524461157008658126804104352585963517755797742461820074217352372622670503423950359834657008090440615548097858185015695581712439587791553003709707099293298484443771210714601730167851002792794705772237445415129978107001234003294204815304393291873628223385630650359566119066387655332999051963705760988610193459396299910413026826189379200721811148246142220019121493531942434823366151501674963473217372468739855971120746491295763074767983382534861448135789269142985277231181084384901470557727456942087572147161930830520309585960471017181991320056704284150329070714806990541643266051824027589071477756068283912172096064113399678779826103150023454060873825288539538747897685211751679105109890669605883487979391574096447238068168848373803479965951741279958451029225789028205642237253934733328314794561976872185072400747792052564065940528115558316670156063708401812040615787739554782177437192099803424166398783277825746152131405746151134760926189806848021635313212556022352528578336507797327559897988049622362212615906556988155193653518015876975495689533509116085690863330556992453579960611619019846333758622215527975287929749204398614464973783134827671348119201225209684881401711459026836605016168148670073386416638781155023661481174514158073532596750591330002254877324606011425186612351146788018326427308467153478770544641700855778156459310756017814220054305015537862003050700872796764545257938819006662831311374017722176008691336613209445165923336103803094864040324580008494154776046229448934147320845430687393904675977369629228321689108321579369897194646999696525389746587802489451761357999888672093937272382549154432312461349998011421435640837190151559220134382544797160056771401653040527598137176708149242427420033704331193520021454701033928613256705537210410960849162785626213507311970938757744165713037950497285607364486730815984015068769529203663327440453534770595621517408079051428803444504978980868079408937934179605259272593790609483587291772091345029616469736202783620478013120174784342836309706397521320782815983805175768105420022245881827493123483396772906197776358633684892616596106993036628368499903665852272583187405479790601874913155724671791598305279382606298048703593787495912199640863144967709680165989736313699432724677728740681110440400453074155897543838925847643057620651861718998786825829085968741360997454537370019800137770414263933836469312209068704915690465095552871895382216991979836500517525924807997646642119388984568186799126664018633096246646703110565250470155317978324193314498742594112542591220382240022138055739106100890444684297863308098465444008147207261251594997601923753256702686965151544130893483234890085295922970139396478090983752807287350673576414436143590030044240459280743954971235563280790254758469267440768166072416242160972005233259351523164077471039654639197061802359286730168228635149447816946710644341719434050597408885981659208312752318737493601653041104030904063863534418263870326261577824677685213368249308666172887446997356866595101969271905899431080423788203459207096162097902615604008265749160957042030886835260336417118640085847224641968842637748665130073742481930622711950358040916032952338464420556209963617297459687014443093641951333608909607985246289909088297079675835959834075506454016274340678109666396056642235739294795417184277856531720654324937687808876084722129311981991698808429029002029214649451751968252676699103333930065126186901247187120742383670675930108364282664376762533939015466842396566961208915525340598456186991505459467163684083188441290940255703698128579283711293269620704396010119892083721950578494490552447477026598366299346347278357104670855544182479285783837527424460052160886124771575494241243853040340688130863668218217380406994477085276134608558728753035271464383371365860628028633651692029606692187808178478150696111429826422378729086385969002153369837946270835974658850223238778984383446892390396429633916593884942348632183323339798523905043051507517353034977915966917411727853308654517240254848069991330782794103744541204786152053347766030847143782798266532285127805200133366570672535545379124883542451125014677099824779533626838306484320992448197589531945033909230203530231347311240125586886390493786664223357773337480990822771041905703063526410787715335432486364294911336153595044376596730995925605228333417476020312980100209679578615798922295695577760697450934133059462051297978522100068500994887781565931939982447669620827481910878813025952980197244002859525034998126213019814520212856131617573175733224286509056404236959076254460809104536679562052634457119042745496094439868419790919634653317892248536277850206181958454224865656913156801489915591106304372454276772954848460881456397887482486101176992698243398263875025318600177823359752890815467713484692791035432855793063456307473316773032341172937057670879244117305159103059132432151896481859994861110460814440105942236689078549899680671557261303925576047469645948874756103141849448208319881957180291033242549472450532122538180194556128668562840619734820721874765153034528907961609287071383187043123249341027537272495201058794079566398840702045904427930811149165824541774152762937616340576590836700012668407377029151802104271674903582160994098449704683248094148267483513626839240151806566902182780090104101031781391270330052302452069844534017057164551370540518302197147292473263513574220934150406003086249335202239880285068629290391191474640817306693713359652966754345413783807914518924844373089904550409746079136833546006502406096020096132754335536687403753486821176642521730396646552413254334116324771832938352031624722943680273814673649778382104474923561395428690667391881802448023029751027285027381707156617231814140729527286929807293087403041827678940387670129058249155699010730982470410879796225347584349311258745464818685608289794167580166051473843203976955928079759948128752683603232607701147785618862224299265112984640677653722476583093626432079058108782536332095220197729489656005231858404363047351983847626414698869432877085505224964118083703686363116821874618309313279861058147324592536757880640555821143729739221353770637614607199250696516638478921990608981498732494709560658922906547807626604364278585718700109662704121331120663043547611208312172554927171336281033376276260901200664387547626307965608965757879684335233763591134755864430685827077122228877022504199629382090636099422197316938144720801788209879666154020909589997315575059137376084231124166162743564760913403572115319367326389506036466826106113322947718758786580756210449088754724822424413949360542451145132367083211306093356725567160243953032473367530122370702195215167947818410118684645281903861072637767319269244070510333058109244788618573268194973844783762894564326286780000580652472135366958232673282758298554631256812890033673284069445012057071585061410840890401788566837504831457737855993662462085136570293481136460468067558639657965717973674853191691000217402021084980650721550111725836121531296239061544073296507308370001651330102957827910464356045559711679821622874632731500982104904333198003382949282822081635863374696892734836745997229662154230590683750103246729739548285788459869219458695804380601242056778706173850652901511692699988826589571376172285369856660578097176198311099225604595088529098516880953596969208773360091977027223947528102531954683586158664092467627527402882451592651681511258643032632536140898367151006787206367456492513866943033211145097477780199015608668423442109021689561776069625072443979941113602872596724650090470005103450079560204885491632754948639536834828010020768554947590334942754532264477527451163514792405893023739291468385105010019570711887585835794434045168972481177493519479083555479087411347655986277333209109177906188083080442444369562984590209856051334762612714421247002656243379834033689057192595078949013729415148608659936891802050584239221131291295290679195568696911517109025562651913223522501931419522679035940687036965285205993426468942714068007601923213980859862478369100964697130742845786748788926249566312986972376601914622906445725138300165611326893942724048577165415796154919030877230908347795654410950696388769201662091766466974277253832753870403528072387500957021643128810375394234397689103919355139306373823051394834991131484517128372761677043297066569249644526555154728909340256632026806646662027457076311588063973473204300549237439749081514216996151452823576240390177366178178806613896295551469718590318315963891731294188378682613199962439924733310746411293427668017577508126308302267275019825580963828476954209248099872638412821940855034324930916785221715951528852960983341709855695705116632527035546119420597517072425175945952287253722705023504824315087313431448612444047722833137341965050285483753715786074340015010205973573495718553020837833704734556299815179044576659289089081906211124490181745863527864553966955758808484857407401046384482449674924683488906253539313708812741101632387860804731446559439727653090669848189009565153742087158844631466847261612858618996150221408612407630906856737883239343761764530290945973246726224005267625244239576219203367301333293719833526093178527689041045960986250620965971494331615778043988268465680393243142645614392460909922275629436662598418571400340151456402000026099575897661482052485494048311453602092088413436770160828958898677311094477439805960878851996613869427499730194234385205813705904809173812333124299321063419815108619817383291552399517996537060928194991418664368703843239039931780579777090133707526043626287633150004548802809235985385951166727254203111453225092473459723049208964068768190325527519982371666317818553818167108460423594282956443163031789370308775044459196603917160800811438058146746237896389082099424776300656086594902525947996980507401005538257684955400315903416520743878847558542925337876886802290113480063636048440669248510567851676637247032100845553874080612774121268901137177479505391462352005634985058775107176150228990549051660666468344312161070664955861344266283904991946301222650681268387967874389645589665659592831612132134226043081809923984315477267649534436714659841468924197077580171601212912291202053280568516703362128967670598749576538124691299135593243993915367149301172255406860130566944638973510693838342838601913801317910005085939598743615303895936393697860294136506601950156938796463395230880997946270601937043878490225624088556517014409023098278491344869635565425845055151337889641935926971033411384384038085535578611536422908283535087041481203272722190853126121490328028575756345691717344952455930635779380843975356279400877970074902639095941688168378793993762102018380985467429630238365344807718872426107852433147179581685105282688719147735604026486903237033454808332296505370569506026505339697804109520782068017254560810461042312294995676215132691869042927396527510443180762217537068057651200689557353920356141036705435386526864829211627661787779467051230321993685550415314398064867453000662173963898376038515743889161327856989344974064999776922346386827595137741272233644742591528844497222544584142803577478537723066254155735094712275626997959208473511522023677078029774768278176537973961958396334946780138827174455699460288187904774270029599763798961191274429837345488334631513791654246491369412192949431217449535662316746618409979098000649211586284527162546290183462993345654710007231329303372016666820020416014403285653279649978119278545250991919051244120469355795988452986326800378226190845107267223659012882395399284191482855689259966220524684344250013965014892705507876359174807538734949166481095843646640752739736331835725899531343619872923214494474786911470056653841726445267162561286897211269136414119858553596975598434867899214559993373090079924749100851084422917118880522196602153826441703616793201212619533942298152448569373087598141842637364039888699765153681722888530552216658891346676046060687491145987933943059025282012778175206570072856492311578832703622711432628376300942302812735927714444952787596676859177466474388682376295691825201201503677596399074759559911947839954805038068745086690293661592233244077718736326756070441812800883877149912595090215409058038000987723614350834077351740260388963671126909446398900957550388332393423866216536586083171197650606810517765366418641546568370401054771753326633821564908906799178460379996680917276517695908098042444682609616353865076568163498428566855407023787479490215071714678529516806207659540888132045087294154595719106557292868257791784422125265952645393030792708746232758835684535252636347074648404183627520803908101435151238543241617665667295260761866743049862837710843679085515141720126620110348453397270175067049447169477477097173613318802282045893034046359644510563378955079914626571326924392008588293349516774262311157365101349242698092236593311488006733689332079456605962631512473978219778482231469886668985304422180125636140132226231834625425758064960314329949326005840103148485896160042386102552020954466846888078582637959794345522881060267307983287056417442894458532199759358479333949047115120393035255864909239310579971403422305371401288964498660007268259447749148097356024709337466040631999026103875596324223458323439265782581349097923639492173614685902397872551697255635523287637152954786360138353917337789011558588493370547352178770715739888111257710110180748598177468338190337539924279451788321138599874254968291260937876669891995629585847010531795771785950470395516923829564611037130557928366891415380081358398866014580862539666319757852580965542086005536843282274205998707652197166140885020269060677426401526673109976558241448778496029687586216617521544936367341694767481888811451810853579967430754980880372194705917320888854455066019634000301214520768143779861354865206589151310216908622323740779652810600191746273871834214747565028479816433073068749856005559128145517298369593551346215167529791888766996573508285528169169306124841053861143502972805951685905201125553872465024386144506454177530179977973376388796398924774085748161967056650859413491163600240279027484921244921206398446675213028825090308839808946041462399507225858746227767083709340741027336748519098285796273978210233004409930157396461610539510822236090022033076212462196680095103496262920025632096144427928198131516008167020347501576247282108619029819891724922149226464860647515244848913231685938821109250056836787560141555139062509718100076610966380138188497780569312603640790872670903517610218753260227066382293327633373607309396518494711778279139732572748518758364685396261210959839773655680121145294051067228884037771427164958653460879550160111457200704286090753963228643400184699353045829735685257175201389352666169157778777139098051164615766057243410016608777455202078662183792443309622314489129378888754667966752369143091683945088340166638791716188611088903514895490494930280102846911969379897075178459100618633832327699373710710257074128165746990282804319043688273051662507582788174318350160057552223653501344384999560542182508221991919588023818372169374909021810635268347391689280859508240709197042306799955246753155584375335613245200725618944449827609779896728409345980671376984243758159288702468180512804420779819476204132327385616798568468121780757985298139924661220327331953874622555082371210729962083814154389903830305299614250176151920454772674751646119998505298225992363372791645368552920108059476831989751061631426038490091264027701486979953854913267366554806338747899563627812638648820666927617727564845773908045628352048144222566007835565707919850975639603117779623740230441066123367566197208320281528741787129749096769465902431737866728426195038862197688577239414738596074517989537918738302974415616343562632393279312139918879327023977980745981173674082578233660308648633301861969171200184380279756295591736939831085476230441169865792433139610081610141516118084058607756220959673860133317830648806121820643930202783325178090933234428270758456156396367064731809952535800398977823681730388967579510296839336585981677716080490708611705285169530188940772911155289415311822361747181474299451629892822984465296031314441727089294277413772601155040921020249876215118754287121002189663827696115820928635328552354292745625575629513834449001403973349185468990215833258262494715414210437012830484859790243888291684774357008415814606570860408925502934668984749206381553872027522069383239924573748364358226826546962852357202410165673193489885196998842588814827061227570882988083103802721445481804733030095069961533457260318029012208771879952817012246683813623878449522323250456939309915127425268514706080192274274743936866485265524009786312335331803184799188976123469806109386532622583389397227741659557481302311239824658139448013047812761266395759775591833691318136557807779457220159526953653570819986473217592135867331137892017024201969587560426169811009333717885276489164987846955607023019549630367089375184217823298420346177095326297761270944377817520704646463103063596456971731530194171035013564555862038708900358575148952226820052489643451285519954231974982297595851134363118797397887004119158761285407251785376571384013324105117652504375863897711653776019176403191679222158003137035266571209437232532127848082896336729350890772987977038955222782647790543026007666473925881805704563729786289116702659873626702172489305772347074999390178509301828848707614758064285419525835160498197814303980297559735017070475135753016399945334963056285337269924361809639752308601910019306577385361591803884989028301498207057400596278304776110224667569403280034012537471007541748353990787893453404150878319887473997254388922225366321952196003359833548927612579135690709682158211496830875700646936451585847177111076224880243401307704350680850667050781318846822608146962428394675671598082485921010503047850927574887009341524656426556649664892915845033248685375677096644798970481206329969659388706501555265771416316441545293679205850767647367845100449625284915310888623634207877428481565182573884973451535095005214054843815769765077227925931204812801730887701438814252498416509363251911514520315890528022269576698666856561696961238800073620529930531882261141056704668600872872805582457117673166686261786248797709247364459245793835999984061410402515956504622543927037519720114576404654836320085067232831527905290477979398545079545419167101175457386309636698664099731103276001753704615527523417960003311862729767053256608583631485667703002602898842631635068766236612204093378729574918242873266138985144656257971989036556310143996782409471032964672027448285975251476743195382142884182378087690855823567370160879664600125382442834335420447189474144257151171191900101058494988322966756129503092466846342338093991832983081720624610086085729762007730256801944632417295940508815227168395468165959450278227560329803516313074728797415947057057563326928075822148982977932531893504457438342899794382349173470181470034447286219685702685025589774054155316900639371484711591764705070546074299866730647846878174705496651682456672460510879259769650833967289714012784004037222959293428326319333687042851283332032917316000875715095682081898042458620775821921915597518229794380924353401641206842516893656817009424641677805894520986816757588546070871817600260115778870192258157038090255004645376129899798266575439448575701601907102583332191323730819107953861137881716320404325082394457826849774442300230688084720903642719770536028819270768769151100952372210546666154284694903281819384897921998086234311749055090698574835418011118599489632103520460045508400184060343676641346423530709619796158677604994960198711579293363136881901074030242487519574832125987571122558574698142164030776712068203971667184694824735657600806973728280652759471960130571138948312756095849719601236353902052177884879894948327669017941775101904636403666845398282348487779583520938450406684508343488301365952902167231353985495780916762558339283328487768175566251360256052603569954050035621043141830312943892193924199888290367908780110595754289037468199402734309772366005749260362845423127970853116825925727564005083447956647010947147027247900437481597509562764382023893926021323073505743728338842248463539557069934196010860938004142161569352826687784251142236721932664774955901025519808404312458326685103688221793622233026102247860507050009264387008212955738010969295464385346559150806090085694434496758441909853964839595735090529530170033084590501323446408842967777312998479748249432603811218123720665620470133491939524818675889861252983616472424648941525277452343145564126032472500874629701809329023118152602641969551999370322484793359825859609256112084616875342563688481166371908533710904508639857470512901279331860695287358887075632969711187806404783194190731609017754683075878499342615167241781611643583235997226909484933755138477278194460030161939338804721285776318467401217753525508494931002650668397215819176413978677723233866376396426722580583109618181775983204753005438774480735810370523152149276653197542813041299891705252594186448464198166017577615786293198577614558804460328684311260196707326672562496378063222736955886251010787088282119178295903835498309838156041567462649391347260979090793371821095685884590018277557253249049970160600480782503534063962758265719482565868284988492421054798552219546601477652477703582963148178045602349369065437005010296546099549300144930811294535447756978648705212747526233711987531647470145342219537764998582541617232777929576836857286413069735401091021763404757376290668779676716670363507882618402144801893861107195113681348213046491066236691811774900084464100822814015655839756230683645028472487578387002061433809826905861394578180948757269822080745573151229416021756962378624542718839167131077070329061380553973581795234612493582683996520316315949840641945857706104485605095199939861013641541018139303414192479687956413993594093350248684323952956403662123918894564087023266305165399415181503750552672598965883318850252375280991868702119614773846266607993549631538547634062823223779189520465192121054747531942869018242249237733591197639573765757427333438298092758255739980386386954048429189635739787644157026030479106867014245137931455574090946310165174192843138411604420798675911297481341056788571113543444210432901923598321013882196162808565714890534483016036137188108619863448864471297096149970242285485060182836150439326928487176605605805646962803607368643314167835049173000531776332422203545557859578898023714050097052790254539011191413244684788208158142689601237303067450895133405397649410467991553398610723123223886590986131191686851650155122344233884915769853579411921675212148267829479939909498116680867759171705813275464316273211460709140879127068482082108161765016362691556307562366119586016508599952430786571804786172596432952934216111410781815523809662470612933476093840759985209009760302509836000334263970022450502806879587465770485086585987374075643765051976285854391901422773826164871187080365303793410251279437481365572921349415727583307994849020864001520362842222013900216285452518900146823483231983518080762593326744747275518362000720764921674700206436898177931026198994892205034294116768743563087320076104952972862725789446562568486246782424611684782399650060722885161593902163957369123666466828264279425164250168597452011725024105869325260725682959498816266764856732132083585483029715201629333914625938020861136491981838440715376249383701643504784703522513950690165325237826462508744860493574441094647525062794883716750558698623116732829475270542408814153288074041428707562850041925686826227006649044077469670953283313099176135121607466383570963174446727586987023554123645237613732135534367159871907362749988919247739833119432648093866904880703540789921112919528464787615004669099107939234151933869066535607487999295810019955198324291388914547391702671565242857539817456957946980692066962852517479565465030882574621127828264372593071321460738831078398176465764788569373998155279759730919857867112227356440982773398308415966023471957299762985132330143165418735470908625765190690412427518232741375497931642163650498720540991732782968715020378997318953135852276973843418303129364947824098004327071744553347155877860960797728520824177937609397379231015629041297314634845330077859180458577368042987467517938495808669906301022167475894299479525119179906702877560227116148745305181463979411953323948541549674386326308372428855902540357994135288210922021328909240636598214860458839984130906515937503767669727151459367001976355581442317614821969477106366342103035767769526443759307319358430346438972820686572599942062889587497692707188884670224000200057959103295806911352534957939013674689187541145962312490748947564416666634843484600482781204974700669717530020750596337204176197526760346184537973142026992517812483221511188514985686828379949624239473960254910622818647486897548923119777932041876185798113715670288828725891518380428817488878125145008078375592612070529774156437115052539017411563304869749532265303769386184957843358315052862614206157155809087367738897929511613272592746820172272813767804500226273997234937219418114269403708122629115621752112695025583664721320217416003891433880827072822562838479006490724448645538298307594103470918511181549577745047416311402716874404212567648292347959167942350212256048186925602093518110765359701983297669761520122780177874022394102933799566047596970156033902671943241533118000007262735442796215456461115595229541415813907785198521308366621205901580681651764720324863001804606854255685153735890724543367003615278461727025126634116712925492257851898602058388315776027657079973668980542935458351245859606427409924376323517668983483676460787796619704228674186812067411268983390759850076636605993559261465044736535359448536541839857637383815049417865889696753824057050627746156201940013446223696821646108597954108958319323276058470092261072080347747603216053073954601082710222756664896218911150303310407684845817960425926651184828759371289667377863339773613631750452514919811963068312557375063037665046859568384862608550324295757287971225886127874755489406504365127810052495240582164726685838807857746577284790122715085175106130445478151979748678449008075276778005838707993837563802871922855620407124512306783432588177245689784757461356179174261890929639366453573003371349277797739812359712241366299810711122182611541362198186338147417040215126311751491436217447154577556555615258963143713251417080886334524770358898922233302753513998949109937052791968178629726005250434495056773807816802155970305514038560265422264996488998763834846213404491590475010418218421098162560242012462823730295276332463576746813110080642564027123747433186425054405753489311677739109397549881474180003452005208492426479094973374337788060425667308608610291624038079347616372533991573477376503479501371725746033458383029976414028022838821060480466939054020274745391883594767249187409928993179544187740138317782635531469470315756258986138614057094413981940738572778509183102109077670985535307384758723013391667373689442432490640483983820024112887561334288154129782693222711940611221799617509030879008606727692313443581840071277618091809173310123662199354530354748278498791372398300644229306146853760560756978609263044819839702677117704348065359746055413318230046081183807612511348442770386586699499818453237987143056363944659072639176913674825243706325978215257867218893823287891462290494215992430299967017445863860250319645362913599398096768850997858542299036581638606135970371731587810771776649118610930712695107616470762058446422652931512940326714112955735527552910216492075221701625169068453878541948081279467318193978312413947159701808657396013927363617195431570772752640300216420932582645048526890162300484100864937318540534283086571434667749001235541805956692787524878245284479835169997231459562091035721429503065739624297203405157577803845922963530643910588745834038884239683528523447815937883026868064371539068968058800116505713832933243911109179951814843966143191191690514294450525997516038790074537312444342021348157730649747348395984515784687633883327654475023053787260147399297627816620244235309330534141223885539012646681148651710545629096331700169308460672394683807381465383604623058283537992243831905204804254794119833395749527728129416097854305636891689785836726332847852822553978811047789506947299889389445623586221453154549458046420312438991697940252056225283219636393512672752513870792695943778342821763610097294226616780083138186415074669850839342704008160535717326285241230786010950525056806844984936643446600213747280056771136005280215988206659591486020144957103824105328709201287901146834757278912230619309915417043587977602375870718900363995738789872522464812149599789393995438354576480289632957372882379179036471260931639867604051914682957599000332634097746804775725885411359305067093000245566338506452796949796896601961935518456096522322942384034185349040294576371217924156281435976442205343486842293496226445359266407515923980679448129316412819300948324477044098739301273033934304970696677123427712549859400612887844696270587409537167179011627166468217110019561774057243376489344300602374951661642931734631735459219640602778808109945129128977605665118814942347193276635677644492062904039217550720034631472430107208674425477429449991163434564749587837722236716035212040556135731318111459089079316103116651410159088073996501353295794836387967135064278826882455161678114911920740237223980133651250978595122090524818481414568632526107619435124157659930705579229702657085620070910618886878675977807029573384274184574497395001133972753345256945902519514446864418445311813901290581112825073417519610263935457121011323150061154394486773125103479453439516477558773955299515643856637003948273907499762021439703055582759963905416793014272163907237006162833969560993547933413456360056669452717078119649041457724664040905756012434841261688739957156119819692244577988515505258748100742503813227886538569184791373298297165583968894351734581416933560872256777014704816846284878194701827375318072853594131157804226531165058104443129072307001382822411365326492952936297800439903480791742574389262764158422947488699028904456269581053413297027819493057245940765777703908590998471830996508112818847197585318704288649938927607515877245667217121936831084046183075577892106258574569213974730836548447743958571237497029056290543158672231051705203346334491881241380311611418557872119248174839964712292091097580231343954170914152388351929032885865924329067159093399457693569683837984377243080623077624767357931328465592510590933566986523913431901657561674428439444938771628956533437309170339551323301871996672200292149790408436465607087449696967053678416679370816208564518588590201026366768828876708685448311117626508426024879949870839782364631527091175394405246814582588897928741193421009610587769445674666589716095869882437775163030309168788711383240638418637873882748373727769850852216574705607879235870307992896770524025795682726366229587749111826753067938212481480851534938021062546535510334958421403146074626175311121634362046549298797512323970970348801218984269056455580512454452610423428207780603831293294322088727150581521285046594360357472291667013179109040180854765141401619738475396385800314115236276506189813232104471690561490529179455623583070224544869915554888025168975876989590472640194467976139441465070199031557749397281648452762601326628438956223137407557452953400471958056064270312642624323662148385542355447356984804058641583450841099144985002969485749088385001027885342674681558401589740380959422751329853229039739209609746774346742229455199900318317716161150802356705483392452754889761236420203134348798889371899393604427068308143758242961884955419131973509834382476289612488623202662022811475158630294889766341758896611456240892706846289006195537455140372244179894905404725659369651095445652091278170856740781735412169062371447187868906073669230762224093267218738701923834614640832976231592568100576888752094552885924509036801903169604952297065248902117991526428990151454560933871192274137713991806321086353047581827565835272887395245981883518554641262791443755970012620853209325436708859752755270520106774067260208615029369109115599699301297685919039428748294665545944841274396037823847820113984528546895491681354328089506863376232357339127225708922676745510762962458941706540259556621375620891979841828084268215248437949202755216766190943233076079834932291370241429267842851217849577469358825360436772936281734123363064947929942855153896411979352828683672851686192685570075865907953558326074188178319240057445775597698373528369560489765760329595356706129634345303295084098743784762741350113439962584271297399189183962997608241869511264405005548867268685476378723882265791427327764913975704578671697526547495483002060635650283339214440557260058558589610521347523342663143200920044547381667935207152824665415738982382455791457464621222499440396719770620449293668473228097709589891050085644851694673220466741823754378378092084716346135035382315524693125595350360980234563338061532833909778329941276118551031281216204032390711023571703941690181051342323918295831394306509704918436148180297919065689070253568591824944731457045424689241250029876849442909811344959188209057091860997646962474437299894770384121743276941557735929404359200990764513430094988754301953317196289802024029150765543761402631664410184749046861080688866925442522003476811396248672200809263590681385207839426048788999911517301703005937739075810868715082288267433195216211277355676441780276620790879520362388660047889995203881983250033454166902416248710235675636544975360915114976902860506037136517070598947284513224909009371892303726363253032734369435326834786230147222725677037740904420860378173991029864572165396012415885802467209490121189478516377937244061797871346771948227743296597224657293739606181493462736685785276635467092502179285618599813442961155275775983479572104384796457200696949287898204979804848331382697007687444742917892527222692315775972906226006844508974935042354826851111060870818402354819644655050643301170502810501942322110339617290076745506147040720176425269033719517274503879268902615094762158892049313375709745433814684500701125696756269361092011277139150709089112887607903697532904217921654408077495647092894141426676388204104575819485623524804267378241623791413343803152624383681133336613347580637012527206798937008452544161811459428228290894163785152094953189169650855912162517935889568811524629717520732567525526443543152094291222999981421630646143203537717353224366433015534827558286695318097308913042079798076175863293564656808924165400746894953701680719192526904465964627324094905419015371566653336772668213716608166247399238033840710693849792242204274431371307332193535829154758556800482449512762560942414199009233274712943925035835223991545830459429018555227584573407313053465292390050360983991912714680130123990056225849437154308905526788795281234740693661237800303557958443275672194464525610273425995488859839812317381580437856888002811183717104573944106255079855971889123018122223695491439564720772228205754120162656036178903564267951136621620483925017157023167126631621528069739076792509709656580152178957327397740296870024105842570696382324519396271706360825461209846607327356521214480745829839315716989466967084197536015598738666020637039678961699653352135182643432586389507259512799917097221481751223614718597402062293755944979628848168452541059394758420783413351648371224280826179454683791345391849461249713999335620944631459942682457897500641359419766176902370635007565878527739457779767808853082237307097655585967174678428693563180180206515589854732408347937658732413954993682664388804417304403183303604339325067118172032125985659558841683904687547823503387682778825577801129692687534993688784599015331630918162157067831398105669633588319730933125624568566818890669729221087737055773414410836705126232048283664669773793406581497086024299560039372751165330123862620125161347782886060722020218994858018130745322704872527159443676885245981102469176546452098528180703711617699935083524887096208760569280446809924650782504013124861348120277774848127365006837088546406364082860750947424300210919177791882831012536763749650022005852785297254995739767811407969845576228559325214109756170239799289278234071565017146189327501450102014771194975933137798746262700804647329582255286693667811626383756272183917202992341926969238618417729433862058597330173156231066848605471356833711868342120897030255634977646589777898004232668589475072999348146317687760445459099231370126989264366947826954561486272072682335406311014148809954229213028209691325164179844981175931696523231088013874000094735555950094429400140550377561956522876807158508479380782186466405785536366367932175656586473098873093387997492947593147975381391098206707932269853136263503866547779862076928136639611704921507575339233248145426537927874901329965673227510323719756665028068223499768800876351219066340843194380290228524715492969831063886423010903939582717220026607631837966283579791987124282404108206236970231516145296181595473364440791189214831602901780374617655672702574712849902108815393771774210162933377511267445746041312582822159109945537954597467315990101562790680644887051768210304857574700701830008336070134981890323194459530183977292513942911669693098250751677956904924059373731255998153961454171679912801453323808764294211703672679505385625190609194176000235872616022193341275484872338894844163690380470019804176788433492589115095596532027368810670357383433763499126268726923922391828993746514023646100978876750951673158685897128490453424001006181913099028195806128901834724480462272553215962694623456110309950591104194010984835007933125954603529332189175423232063138721928059210080995721066061569831844985638161817346532805135848916320133855604719464357222764960770749800009071372741447739723695937399178881891113041416426669825232752682006980779429166860682397162000379609542100420989799443171025452120799922572074610329745410158384493945453203914459416496796123364043466510673478306148067125337084480241296619571715561619067764371850262794127338760334280324062040265514759807458273271989910123827839372165932255763071052731571444052881480155837737765895234681055861246877827356830131610123755748699055242948133272568908700003942767940607505635822245358408320615011272538879950167533670658978266900852986444482763381230811799366447669528238430737081674548430854590450455369270057141849957892832278273465123235696348475334207702193901580066234630639346552276742568639303830264109808796259584876812526303685687973529443064548691756807478226997461014621159770684748658981255420295757155693422251630410362906772546457071307706386058991133821928045888064189816118540647576170782058414741446400172692661497024541899152909578389832973638084643732759782492031961272557792498436028739007467996363611709432622912331509235560467135923433371680294330011607207805087913800198092591544017752107645716755940517920026910242411633119673436437049701208256834290376775806631331012835767779404547073117929378136738251359384282548934621511770011112191130666258866947023858265295113613684944232400016049829532072013064055341605959596254445542008881060950714609495971704678937298022497917405459027229034673405995826343574342282244883721085809462750076258498183544468679105665840013760123639408473154339301394808604589303161726787410330590072335623303336951573690148201964094743251645107868927825349151556184077704186793065962706197723545376403972203642894645453612669183877765179250591523225465208996465201685902225154143993629474669457255044721585831548346243801567917343165943830530074349266335475141200148265593707965079552034206315715701797066552337876835190092592016706777010335034357065236514822444703856810953225515486325897049915327660676474641527404916852419726209757955061125158738139250651994347492577241187305289386842079035862276701527486754214408445266035896318837316244294105738216616400095645930825151948424262061885394850454909234907369889261589600202503951951339300558603536887755779869005448035682342228801736528373890488360868464047888695900409645532236133365763289836444775134349012297998080420270115356014863747133259376431799865447918035495025642413787840633340143893306949620326123626231764410987260104894533302266631650441275247446419794078258942087094093812028523979343060470830277970188677508674896946484062123369671072479157805358028834091870916556268886733227147753200396329781930437685376157705549659197530387418533853349834915463985886644912680321111191150916804312501065184547102511834817974838582208239836814904582244088354634187194652337659735062561205792498987886270565922886505423535779274835260949728763897493070118812740474848787825073144771277476738089369043132505835756238630605417082088380014273068234888500809752740175175548875419050144796175495538348616457716605023098286347186946514984185594625203123779360826904043383796761686695482978340083061891641783907148038414449379971082332047928777737119920080661336665923527418866104341692199896175906801609929860218931895238295739150382430777551008001800598819755975959744823528327661926190648868447626177206890590119726844139586181712320098218820547800862970557098782740449744287470222373526628990871704067225331359420044977699844368091030037445250169180726409051565095999193129292372586070699999962434868803596431816139801608351658733360877023837111385046998541466489064005224168775097933648643876593267495587034977963408417465866867534943970045175029830848816839440462825716730520226434848177584631631615181377376322007675782997065891784313716618816739616997438854887926973979878345803084270433776817840371550257741705279877818884657974034384869826380321543034476560155913798439424775482266036451381729592690479657441705481162710469930300497824687341836276325202335375337214748382506900208583070136254543068543673037782309055825830722865154039786258381533714694941300994555086732068109616917320791690683376523652608807983915032312932181994902005118631936366812249356386507873728856979369731168863745617323695119441102629861345526925239918013998783141722644347359358606091088702189947726703125077022530875668856842054272502227415769357274027734088765706341657364774952436817320442097060497974069552724296279658631239756009789726122188999284050758976015911887291832616631626345966849977620918314062051818177553369402338019839076090141426150777324198717057144709003610454866655026039338418907943808835440322771750485694033840613978269207871975476128475074880011399820402173558058703390814771172308685114595647560220334858686026132974116050127329126944701104601598693623930952115704182323635429282257225387824330804893842280384846413342984225336674810443546908288352455761267743912283039685619323012105575390970813507018324673010383781467185481393369271878679290702385688495998706160003516897257526389109078608853760513644112274662912228800658919298211653865129534000363865963250034419475804149339603356846075959501448550854644214197076576959090314789804736471256354195676931243048898753948598809486515292495612491765748298923216316448530004655923676392027716983624052455986879692222241035770305934979905615059009584559343641584254066503630836694386070660043288774650573948537042556084534027043133537431502466334345279224559479077560215767182331508980652906374090051784699027215280761186878361412447201958648820318618803277272372066622363833735993400845827015950012386797044538125888998317360401786055867175861736831719651642152432737760641128480979973311488527807203540386260550142534388546971235315471478650685858066775543653883450786806196723963622752510414109741809314531815040690116454708214102476015095117643976460809222697600174641629875984286635765905080875808454684132771415393745100155435725103385000271277302765398567647112648251816741670597486609516289090593239226733012305364528628156416424801695896215252707566526595039249469164443774332414785972975248654451684689739740489882296956489352503068153263049699389131409559972481401350091936863303914527522911765868224805252190602556755469982232318135789037683466046608534360489683920438373466860001361236741394750232069958775914295085035229734437014597011059407501328611098576848276186843700584483004880897579510846972845472049957490299210893725078233019030176294356689715606855624407985970940511035500870533258202446715489328254030027962444906836163764278826373998411173067407732865631962241389472823190608829998433867586774113193276207129300877930088005066344992386037692781653914438426100126904525866085234061085587304460889484701596436502131768619513280836539750431541950705936685035837092978375158471073204829671796249999054566319798799471301790632047627039660633373080582805686237965285692357771070399537511662760597155587333124550186024795395677043770508775224864320010526594962707387646910701945816565074797906707558489684077881503134634338887305300201473827903895127040749800041926239259728700512332437206480992816733096460192644018825878847871166096192051838255111568144488823256080642499196441644664141466969433778677945006000934163012993000640918033325931056118588651162800510879186495537584653990251798854219837872430327317996030448671100502289046309154966672598124315179597409664183203550638158385894634181118499871385035425512841042329271986446697754270822451847993081711884345332864194674617188467368468015615568411377712062811905680253409783882489130552408777904302266179069446304706436145958613252550555281485304873128760415858853895674273469336190064810389620950743955763451504674594714727549225467099552930594250041179366119494074807696142878970983144710379728766781215535115233691846625016656186970124936531803197098304010554268000582374720549335853543444555326212479407383755664615464886368055177897773573335627558501965799753538566991991239295903730892220460921836553096333120810145415008519484943044417447074432940474588218714693451505184983609034075320274407335457698261655269853983192926602399245001369973293516642794874414338472071391349504454926569904456447102373551342130259137716184420704254745312678723078361851785622681562962258784634466700153601894494997417905750955480428723798867368498138887760478029804308746508842275813509727048353408276868953390708567934169351422890012918111714761775784270958170344875587022870327270655985362502069259136484307764682852831094965579967509191868437270526736367253634782359859301239228617373712662622388388888551570308630760409058733322811883715454877463665057584373206393289789705144595735237799120777748091330635848051757717773045019272836242476440291798069691432959891166042580738370525024826497453336328364316597498991963934795461668305836040712248167808076885655998925523278931712635662226385550600692753097616384268143458131178849986852447851715649818435060038919752905383339861704365111490111033732391680970454028686631266361508246747740268851867206081316829608369407214489568863147054976331337203911737505170523558015834270193002155303635464392779335267340803238040897887201162901392547652851692705302392699135617841684630067618418605986865292909116751432330702432794878122473418875339869200116626868492138596417778028114999496278639913300052736590203327669617087758867592574327279344900126521298294649775779626972311459229646541721335871157939109662843731536949339607200845237695514162620208685261993148603054838402305505209863254676761147779690015323280910253279821695970565251432639437426710712108701041621819824699751983066452446720062314694877936084650081704611288965805794797347638273809580500875035607125226220370064418728308658057891465419237417748185716190263451350328300473696873197825550508542451370031768710425857372825772905212928426523708540116495718207605068620748989848287915401493619684647013478915203997002459318898818731644376240372661585885262510675097485713272764055102520330070205995790260201847266764806473167818028735707653723404629078657053601254825821060583734491860130841289237445695547167699254666204283884868761719537328890942691297456546432412490060305116786790408776377184500138509517804429052053541097631058366163764254762863972682452670708288177850727690685016437197307824176270613374769221804280975240465380234879403252939349845397363424548216170254456032752119233429285360868641001819557523982390276944052903732443226367743631234331596252369542587860861521135389851245546426030490013585062078357502991187801213137594903504087617734338905753622630061818960974547076013443558466374058341342102014862377932394511445228511310623916247939569988454208972213153022363013069267876477521690173017193302624501522092820401687971039981192687939851217016705956972775927422090738859113555398106408799522172957733951120207337162151025332946569976081435217723674943288157782148865244521333717231710613461140983218390221227987465326750247673022814045228469349150911902771044166484798183762763886755513381128752732695291296466946105928643966284406940826114116846712449818089632735442554193784433201013905485826353956735881105642263818142308594110072017685647647081935241396197336851773287853216864167647784475385410337298838950652431078349968703609334121240346275313795369890144458037765293368096091028369589775111305368550225735394577951439255962766574301746811314743363492891193091874578560387774902891309134462540272186809785566596670126717554458631642237808195530791570011680716017179666174000376879659784982311779606662309021516093714648028417846108103067808340328334310832473741398266195389188275349766685813669735021284481842331639726922372094467788740518158710927943811454358502381633656798093228516760525949107165907785526523869772037582172343590807672697056498687211216193764529879307793758842199824166338926420971425295451415230580706015131336405529935477357440399597286097456137450855457704724217993846270057363315889001190724203381042812230541130182944977174793878257770171190810177291470045332250574428588555253367139133037445337868299567255847085197001922488610842437452006728593942197969367529428041913033739841015110013080352103022050639572895689106075333001907703250212156407057937940324496548907438111279606844376653094937609133048410784219959071815843952810868474475354174804019350220335986551808114429462354332925529961878094053888255838477745453980356285161751941406583704799485328795105900940498216229124461033763424745715251757345265504289153659664423612066050893540574335770635944089315788522467388179795055285401202184069378968078230955904812283668235428144655775997236597065442200158775989837448899246648668322642047766745728014162861001223338811331900337163014929288219317981919258495628869271845272674444003236306470574253280518399369326788795088880493822668866196274716773257663977399538894388125198249618064810170061814829377064414627511322807955506787031989754503799247827323278851282996712308695151135046536578453273234852755948033152353940095439978579464790914877200636562052157261914186156933520285874528478842211541415169430692943746677319567979424614002236836246080153646145361246811115595893589226726679224991696610814638173649516063003382742415032926905959421745551706041531596974452195420483253918696253429618610175111702026587770252625936313992088538145761455031279029604884738024785105852542179263851715786651378729814710535161232189705587487091321023518161948862030420940316423672417933131965094898896806955729383370215215137022927357204114771119454522238565399399125214345951694371018680557183870203227825393963236112316809367490958107333675058619229881293220687855932998278090719470233800963870155505305235959728260593765676778857702539246311230431315700568295780725277679675529106543334813776806467578893501760684730829006063289085889627227439900457596602031243163821564333120721294323675614247560707040983878480318232694803609711284065444311682776347191272252333063475831644152158612654686094785258748939550090909400592062903124397049358532162895712191458804042205809072445101215462753073900776755611744387661154955847806621967439921426938941483080000158455767625681133330280654546016393555002923600898416106284826035061213384571245911865300860093809253864323800381711985501002366920938566242588239039964136853165056299269210373255471583720637665600763467951294937199648486499908726169697061816718993120069903732957989338126858086313090132775086254173199702731448335474145678021505507055675646597846131070884273548972109289224994452961627692603457303150889333285031119143780701119014714879268820244853395725467789666856412956126548165918098762196235731406435786998335579448755606355331439765376957794974789536897809631983177151503042993676983623102189139519634127271425851694078450054634377131972719647385070376952118452459215693545063917479818798368021231288334637701378267046422684710544400773764781358434383433724125829538807513715482084563775109615525471491028606724466611983261400969775269812801985059811108746167185708790004202199603253561589532592173961218355849759628741232045844874035532806712523191538947266440233389414710786303006279169727621353113450405560565705795467729343069190934259433330481802045648864673404760597127121377302057220483016882764326094733337891773203964447062075115564917593801755505586118019962095695395870730665520541073078789990987546566271721664413835372313752467333141404840093832821499585644147263123983169667575591170041377809518941974509825950140258934435157484749239103035621110511814548436590023675343497412241538836337224487610911854280354582299492100734820362749496143344637683457420938841056441449016827158431600986638960995089749880020336908237719419005969185099839461469182614837463892708743032438360446526679304305917079868176442314009804110951077304271762838602570506214892203394336151535621229054391519111665154979393932542536780199559383264798489196081965283013119073662375407527780997898523376337142066745348601429860694276419073818947687228774985402425416162378816712499749533101697612804090396444669642112888512521183560583294151646443218096347156805504713906156149253808502478769242529256009245274443973368578205480394574405718293964810723818083334606487393094124089997155332942128254930146926416501457957398815505527097856313554170946090231631976151764810818214420072702868911585959388598879310934628782069965165609325736952922271087117932855445006457584886383991867226218992622499882207001969630036487639582532200161166725039511639847251400309767732007802066732877993289931273375862368693193895054931035510978287748571305891758080583196277943253640149287929750729039548530622572142798899195618160417400398987906701351474295657315070051915381168051649045488781788396669238692377857222435919833272329568934284448874734355214852842732319578282769538246697052837815891392526466679548828819449835532797722759616875514440477314090352537303959285160953311649073305790621790314556734834758067773422027940039581283926557047966588582838631569961631575293781263043745981820331396585098568508513544895987888822391524163298463136782861056855437208362160253028277472691989108934070760950000430053542375386236472361522589515522808041667070230262553809663185265168632284850148111228576154391331548380478185386941002698089918464721893766491228125752570767690973400282037257625790844245294294674700266251906880235456470546450089159617408020087884630022404196957273030349642054434375248337325877404698668549535792012059075527558664284508384967030130837970378775525137606686982406621153207358213865231344275398302740559926819326009437129384374197793784825435432299175766413115394902280538711520708963357380984780655485616947684958389069184243572924703684171103686739710286232598230363489292443885396635532309344456689625799431052436401485973954455372151925470763275598600679182607999306964249940732555517297825411790224166233280033254450979494298911315493256943409538138174518359580308249851022123615974334321846945394473130783084486990886878706987817157003299149916098188831534228630184350876387153800234968152000043861693047441781924945402268291653888787908106678043602959581430544778194572056493213821374533760520423813404868575515039097148106434571948986585002959647831456078353942462027131700307618675211714229364955933424958004427571583681587030042765957022943773467247941254875009873947395696777554595587997238156113324946955629345301384162469262849131637557298896721261960635619958476997138827527288874189914046607059457334491638990535571889171977256948729570901068978110715072361789020902331615625545540054212496176768848952865366521127404916505369257097491243589257892459980504552571637773685279416916876325502695172990150810731673511720699781784707588053527746535419111426016583536228976449898470465891895071521872971917537243687953867713336004411980544205797568168975163790577098066382753272682412313093198865537582257316408513320078705617323451876789057155118998620704481277719857645344862569662306437932958756591872238414424072085343339802355301251809443440727173297459607169397257280520329836746220039950700799959246607589930644701582449593481049420367028105684018066966504339193130408800537051456380439508451411077355083431684966805804964082382887451977909900845473600293229321019040677077875865413997515882172836346263527769924185526996125745350448077883640787416720537701032183208876478170908489123422373839058765376410771442767172196909174926472018776662304438657565806213496857865590764389002366368038016312927564827305226739262889557397571558182380035863991687334082162194759041680603267223466464017654838130421261883009311788919787961247813073439757580505656939255015015895187871763315622446269182820588960870951813207322567163171214365813420143721257363675025925858893352748063644588940300353276204739474666982797222886871916344949255151985236769642817674458016414154759932900517669557178880052788886377704655769150518573471070293564496158807526576066393665181110861916579331958311465198005752037422473253003859290936677720695866094566045694950789833773354294088209706837002777787421368451701277224027445618453924014528541712967025191087884905985130153163154512602876451281009917766613649064231740663149967691142006865670586228918944957036972431818796320109663728961679906792061517001359814917940329823908483984253626006602792733042464729758763014601789415290961511303052569427388202874315009460158299463028361934282987143705836906451092707258660516907225036780132155929893444984504058909294058478193484664947409396038989300238306671452449928150644364584498694962692184692305302292851877711943994354473937585572727838919451727936127370469274535963280933285887999969076874003889295598857713516200312587362458974194716442177495134431994810718473598063778473191283062373917396152940363205391473448706103946849373013244323818898783147742570394163523735575374597375139695695739224541387823408134394166987573700901408570251061830308661941070244117688206495148463515709292988803555143029257782175510421291327686988484544551887005639582648168036994699424885005886468164012954796839651159280242752831590321865658250621814888861254158397963929025796661444768867020728444569049335191397712632977278580685162466531589384914739544017041648714890404747091256111389918501876666494875672322872280960712860270440615160112779818497085107892135880296007803529088915627894514810527192698084408479219373871204193049872549177604800573337336699224227163479444455638453151489284323039968415311954491258378114105725277669645391174232912381081695560426034785456351646819245105497419301509144007123722356605028915195497326683230250268284014613625429281031107797123603260196001269983929435393629842724584229081108796600775179309534800104214368070668151500754960691590435847858795338006611839451945037518415972433549228131337480884896894462882956371985026599732248599708285871584855441124146626777651449368039018514043971523553850006940740199783898909132279197082840688868303141561462082609271894965968193379291436306687500115575271716673719280653288795666655449524867098710692998806784343041676434889183257677610217481787583396024112635333208172571451698468324218220815585765595654371123313667206209102638232111695227844813276115500854264683866168333268064998138477161193634902911287678318751790317419203540610499180890597763246985469368161833525664617537765675043278373762114444814528763090870220114578080231751288677691450262535500302489516037331010256374475730298739794581612817190029579229497986646559717680908864510599885854479186918013033603338347872006475732335048606662263041833109480233660189149313173040508960773322182845842418473960081812436375845562922524234769326278452956538752114381380999964563718683864382132514604414801363061697837042493177643241016781733548151222927149678257415960065138107152960031452909143018531233491959136208597786968399952929938292545438883371696073621407583847178603509306843333066105280337675014019559682351691933711562921270021601164698719300993533419974970456597789469278207054823664357581951845828612124392177469683800235599104379147742293658411297913371219850090170678980942005107033882440958676955892969397489595953720450219783072869732151674668468418293543940497355282978022677657620087171856434660548013857770301727996661003457369305712695052529861123100157464596899762392752753398580377162909876313784941044310724104588802615449960965911470570780477596786061658266369719741814879112567538981788835110024809429348896906114128378630097669192244479235179824777692268131593260179492324732035014589588750682854986801560772675357986441165183804246306540261843354996106159001567978078200859809448634737617049575206997187295003212289708830363503098584940676226253668575910974109087070561505309608802072597086708015012998290379120493236871458879066453753911536511702538309546968837683222462893034911710006402049615919141853018340722326889108380193453425783790819708660383915391548489807867078292986187338009974348229611520228385116621110020655934568523894905890673902804334283512642746632653183941114061701244871570859171980281940310927898530445829605003485745309038659679645172794348901209894519496316442084288589565769889857390330322547275492365328637350814280234674500724722974303448058435526449695484920544625583939413687198438137918939777824991380881784926011494468146526186928156174500742899394457112836453755353909788328202298540569879815368287577922882274217896884642142009060889341615291695809737529024768172308083367943706595760554684602629298463508916878183798849787108104335895879098680769810309291615793937354335107279816952083882026090323681735807837403237477152446306864214112478074508957995854918532368843853090367422201113828680492182779831996216709429480970765159162660116465385082613095478043923092474796320352050494653535171648315913110038194226466066104825290764630136782865651447708977807792154267479885716680006283731319782406664361627621062355387896605259641487673635726728343914911610722214034068399997335213527666990312258861000658178986054751799202443056173409109315995434867749729120689763403864131012364822250051753281393190080707822964149908502578836578476627040021496286612768186102080964746029213646430363034224095935400534767703644198066181234671120746831227641610601457133386204298431519625551917284581890782515548700354813763258845315494783614629600310050232999716667114113805069195430706545538866416147405819501728788394439873710385238901127030578380483096495356061046309516595152107585850418090238347565108977375344891184748823736819273047954510425000612891959964309190831723649949520862789686287680862676504209349033646039875804489826348662449823998711705841993531989647928785535010453276789620083359686922048510051456524787175914226222141327512718077378783412749665047759764240808444838411458703787079405525479322041653703127616565864933440521539386446050917847544384640634178546510856444052418428241759417483641807197763046659984019590434047568766943139480850975154075103768473375155548028572902509915747829355024929105429077759589103402152643566032980362367744458603921047254791600231556499954443471317287395403300396804425626566578411006022295004113480785558131896229037640739555832855979275089105245079288387126929581476754129782185927910262248556327142637482720098598957590418501625861257763658710232411645148863342393247417615228977168376105481940647154790537205522475553458821174506057242625283052951306403113706228953206394517809951285127137297156685084842238611699472196028777384341540841811934732009513440949208255236000274327121650817165709333278303255662440196612190233448664016102518270989243515803311191689037099167741232844444515573552509259265970046137139521574429074454367286236465979230796470178991286577006505669707217294133102326924610299091128776600637051739770314503569831143514750008851388953564309370515504565254753649578427670054962641598617675707908386454145887718930227095667339433008614514860773223447196892979234250761143552313519922336482997818564991122872994571522682061763246391195407175168827704564590454928809917795117341017781222591766992583443300574604332819465607461835066371616291194297225583162927024028937685322550870047602129622929562430623742068606253514656156036964543403684827752861939889709004663176003386293120061250606094812414163659698088834622872275538711008267563113662010031196724420145143780222132398511716988296907060959324037373672729586570625741672634497502671515860434459694872771674381121105212078009446741080920697920433036671296643736630176287081672004070993473999055464614146651707976744703009350284654704937659107298629916428957049129382258955155140350937579615459363465744499780197094304753354207327633596635600721075457115867013990738286404403403883970458781614766101650323536847894319932096311818464286767577900592789633774860215926583434617400093490167694394965206152879850994010584574273127194990638837280984848528614498780460961109197539423911521184381096778299761871188539891256792208727585185100734055314817696102885527267830744564350444802410889812150311574512766678730371069399432566265067740077594192779650421938019490317098262298635631318334301626394715189353884855324857483287516014550675288787236305732420917376885133820070026125566492354299804835099924842204076754664342459500090706394706642981572928256688426583191017452597399523567109836860632541035622600075276907166822666818596066611418340666569466352744116509890293532054151051643759881540051959706181705059442539813825898388996882981970607397752669808458330089371045797310362375197733404666991643106266185835362177580611965133653858021352732165726757995773521780106991483778617007148590804474878765119161730550911974441121698023500476485418211403593369444028514249653993866565919956413909159535216689252773101659612268472767062656993528716257044870534424716303147048479452131005174106080916741153666252602130866334442613270368446730128808383851228205990506829286215363049425582401578155542456075842958771295294375317910274262481301909491459009498253098951016805756038247828440818167805959133207123389129466558354638487919215610434197362140641990602860335029784917578925030791428085304866611950452542764142951914788735838253281900226502686777619034579660000954839925130481857169222995374424600924075918667094133427274498774990535653896483168942955333734408028069227820731130725513233521012929716145733998997407197365836351246286256221943937692917736196811868999204248499089103269165420578774081053412676681791857510804120684702931323825369958046263619122418506414395827803665215350487452607473334591344133357245555201316307341816641123422099599395253017020296802466888188872056642523425793371718433114666716185865275936021524801230568016648213339216019846835421152168207757179721040078732279273036344610303243734065747588609758217668803891723264621255086762002093542094997183128989217569646666872760724229770718732020108835710114803731817904981498867114452181866580335274585106037314999983997256852074124632829106948254943330491303105384923746690689344180964372621138987323134839071815330216534659562607673081317361774693191462032117709479280395786738086246100334226289934115114061855379052924022202879009830550120625499984461460828537706600099469591365241191843758511645703894178213518318943489982071925111887920979290361427835080922355927789341418162760116926303593127684379625888841080363469393494838215303303793843619482954257281891753387980629556409181680600062342341423114611727588142940753058598900643818949763632211132745463259051852039846753456984961086145680701346498967488316759518093215926911759258803497119386575091491652442009970157593817499058416515737543953611767607053839908214769351028943216484529077842776030707704081168862782931046518803684074404156634750401958641278956745404603799084552056095554089844604338887786481407438960501505407011152920935868449753878571108639406124843189723039672137241541264841784629445042205915193237040105826040016622359322511115190222507286828243603555340959502046466101864434559335962255449634747964621121216494714823287098509712943635258672510501032597258655127309643053157644834316504368618253290900404345627457109840550317657616568002563369015968569871831607565239658387532600530399072165093519008284889299278413057402518193891798358900299372316088520974643726861629416704259391000701425538360364981758706329721296154316191294234972241544904028189204153651130684626010635460670105063915446520460271425312837921605890335532567669346555420098040888729634841385457848705603975187708239483643177261922376905073119945093780726929300569194000113515819501844900668786981403818890135626763610481497917263274213671721955755972829356982056529312287789701703075052565141649697797629031358017203248907806468837039344444274120219155781140053686695418483694565872195484476984026184894609020922554197506868423156234386727385380066644746396527491894885080822002130941206616653611561452382694220475881074180117669569627819272859403506766807910184315939565679875530918161987668270224554550568495853913866088125791004196577784053344488982773057338003081037524088489631807958435829030208352060791060691258864958938896247534386716802209436801570913472257198044133183142488948102749127840858418461466461792200756952829193285208183182298378015997853278936536059155213406879019741087761020021233474462873561332826938215050693033083921525394283562957711640973258775095074780786154412960874957297312543218735901375022200376160993280226304219711651336130262214994516431792264915227194142930477429119415715374005774818711071256596417766281096849533330681244983014063368957463185678665045599075040413990757908573969391714483557667745255138352362387018835167400094263290155031059522100293077895643110066456785694608368178438047102141720496647472686560383450234201061619787203461695107498677763598888393447457625654880989920846763459551119456101783037188699608082547822318931991419051888577724271455761112026842100270068932729601105897500817472652719602943482787155059076979896766986626603854958520098372788414252555467146305740638303988883371442444784830765670290831013331383483196555693962899531882289291870303564429749121590068144443165722148117905133782241834394499991076774865707240194259177943526498864110049338262880887593193016922755512074030085870505297327450251566690404691365163113894357748447306395936025200075365088328097485703543384512028824039722630492366618217061739598300454446332847778040856413896708581428805307795083698480348003413202540956028619659288339216503683782445572747458293984465582768005746631401831552325378255715700993239546053146560083866315738710816038602216332072128399473028365641703134725136192182239535445110406516363296166592349409492005368378431898615458642552505128915409583711276260117991755856796077646298274769203872135372049073956934376447418111831219349168839729490342705168279222840971030518442179968287292639496806523844734924485628277818934830429046367690724568591587040668802996719344364717444275798257014272092543047313740338988998908134080204668523601083809074172409426395806367258714522044213015539729903525955247012934934236123197411791793368671636448630640500803988720762013115419751198836350796767426792955392023066841153550474971714805041675562143978628501337797579842434325931354612681651200041231280213718882839220765251427502207785400381644546571102124417610055758838068842880324819778472157331605372890677534064585228031201094417085906589859627237942992382109475671324078428680306109715022868989142710606325640953596958329324626806741071016510382178742820933166826551965664520283055309695963984863307426449015355781602070303041516500642550814089710447220509887539841415888732148649058152014217799655736891002013803673242824682022776224733148970141790418309895204915553027131788035957281269802793482509090224413899806981285903528451194030863477248516724420392891954187387380232366191656708049212702865227060592651271648053500898324865838704354645642731391744514993406743363806355382766533644446477244960738055499288578457527696327924103309456403417075552871963536780153472845831901074095630710736468142711219226179986116173531735232491844618932867045256083236037164654288117515130018106925832153853975339131332913796960068138603726785916103871469112638874739597046265098074330842089204982046904537062427986822996824196788035722058020777411736670134088773180955533405027282343722926298260590132530180136092983009651368441767380726037064082797152877774204111893266415348759930726676030154419275119753870238394882303611529141762300262627224124070584929847178965221273760332234200298026573192271954598410869751941867155905078987775328373448655721443934162390805865046365783747256334425587960133443034501245473266236340991038861362479540102907351724298980890129539483588101521694901611368831923980304242731719174656257723700991640082123953490413166999432789446367895646532936811310594720303651395713116035692200388553250659422222525660708798566039868893851316419667218672881149987996883943856238270183042782789735069386372931405209444651980758632741911012448427680414885373888091766302280232157871204620288397820241497413257818681972947372234955936444519038309050714737249818234438277509158335015231285593039182940527632771740434144728609670113004844191184515695734331703872621174691616120201450102172694139463684479264023383778043964623561122504654596415227982508923505237592641673158708562511399436780989973842418239897719383343945592679682783785324505928438712055104632843500006611103700429101846212714227186540345040706139561100636137703580476917272268917172306420219552568821057861812917491497309180606443856226132684974830176165172212318515934227138778039625804197378295696424963702197445709885674727866328267818508646912870245443121136649302243427877559462187796173994002907575604551243284626162742277147834029188961175741007257372539034150286416895284185780220370242679869627111037363669040894633338145183651834569648880655077720354648830071519941821234598879787724307228881735604485083552033547851020547252622022587745051571112472469518571033719681895874468892629453168033302100050062042856750177058251440991009796079671189429823780130947441351453944389287746139122393506363869087716779712603162239248572487892422240966363449312895336531855969808159930254151529423630430934749537170372682884227554424811127431264956271613857231353520454209037612083452786809757508994444548567497265007883544054651151201525374575851792097803586923168884743872243911301422110831535362170274511700838269883987251880300380057315387797213003718676199046632839699110030051409927163699752749407898164696464353818259958486877418695718664523556743755565655733572949158774447226372456487992742500957411737772351790789308418103327669978104573099286626538863641246631024421601049779023629148292035529016044019079170565181026707674908877033645180487070624150646524091577155930694900627721477024414892206827977799433602568170058869196397159462323899465497046677868917182462944294325959749418965314948562744356859533023624081260803835275598181945025903070935925343434806287295163177509134568517941069472386606357296549866768204237479210051323593328537787565361518978973742712209984056127700207555043017981654608510581864466857156319964492696385184215949408603772645889678910106698358741756510334399007283935892422846436832341180758191380872036531985311948649910000177128125693642750360530740427264733033785479781374286167376552895469787461287402031706564082737617479067090176107335158230718676703655580231353695428087254490158522289113873404385728229209695890463615000104149699646679216774196214121418561431134512305494039125388869749349251655468150439939332050257764103839900943253701215095856781953364321162369621995839218434394617640202338752236229844653991001560411707515654647373634790513510760433711939643750749315759138041330948009528380862112756882113209730627634140060476333988350096499716243569280826483980949933701937123950566560904086593593237666341491741125086990831320488533003949975514083339344674919282382550058798039776111408613284910826042316669006594858333993898765919511943480932472782183996113064947864941694018389857790608516592564218818745140084768456549280561908980141335915318301400661426929167452938871703951417798731239249247780168288109670289909610099220450649682051298688009820260980903499075480877019048012498253823629884112214929452391279348647702899631858418206039445771667051007009921505325425287608532750376313156090926561170358547925057662183343709180374895018350144369607189510504619844975135980138527079598872523291551430591225695097700648544690679314986567480897073249397154916824951411997739293882583935200420871936344359691437193616120887822709455434496258275426117591901538788841821933854236262435596420200347276964390070667646396433384792887762047386830451413173119729584049438089727135156803952128581057263272194653020122776986461483971827663426108470783222643784695519396874312067365312174121822918867221760049008238761023542886088728045023414312613814287521430392580643449305456633961043354320149354134478006668539176403955288596331394538745282722655640141994209421114241510967857283505545925390576364714264202871488539802629423550265308425771956019565398292717195478737940437051326541139271371668886066571519112943333362861340744342008071833365749788029609077210958534729182905487742368612288797006989919341993534851360257807588311779290866154288712903320106066075830101517769313850213328982310953706407636300313128235214269799210556014476325363330135029051554023843384074736466816218464997110753996802680504658955031364558219466106383429493915920390111778866820937063134922128401828131839284399405322012036194168801905225385391488026319990857933679233936903127443423086065768150044763757811911530454084907379722853783878993022528096709911017554076653435324548020936421249624386836430376877093087325172686194670894571563724512266474010524376746909687471200064099784703327117565652010352985827698873724284146488432783257681028710718802444598451657647387794991458675825704724780308794531267369623080581183831836379396063157211200127586752352455061665156276666897572403142352495637145730265297613088481316983371333129956331253290660022845870988740916559121118838959971800131626955654610697462104601086030921050435534535603051260101815105676244635499140226538502212496766054088764980312650839204723666909454980850817461091762391239239207739753364186890992415448425439406944921146222678377104462893896603219602977530996346254915881229448117988636947564431450144851452011465197510310401162322804229852168612081436983998175555638604442818142006969580024682609639512277063109879172713670228984576613382136835565653662167873713524499854192348711240352432055650190069566000393135414080994720676955692305740422314185035382082728963609464411711152317636020407419445818012229827959197587424472729277476930725921898703830351752209350514935030655311749261006453011258239203544104594171131283859064660773367998155738672357876814652731170019440770724993482670477908888395107800083629159352566484770388126304245404291386996682905353898173731692540755779099078678155612964642065242130038032451985431282357707526499401757348925164900193578296961231571164968728729332847952941158795612872168457361674856878246675030245117832736188111056679103134789494909068654111311877221072397340547843690034870535912248101380938221825281229426816354174858839140870368134296354592663839470007506281864160061144598064538644861360703509416690542100379132495134282864813476514236297759983552477231117780735526065388570214073686229893125782562472400581070384220302259920261574140658517098312471223287420239780210727171450272370479768869842973693208050981544410292675411362553617951722639972170738082563844056749011145997186224946751975326552528385747269682604436502056415534112181635867615149039380472582321334158450017092159461093956752024375040482391456900265636235539575314683740594408271463457229832130443845607990985414826750404134498273248318213265179715152845091897302200471382979798309271949962658262600294611080105164041782164311229130670166371264083827325160708773376812847231295218612731872145349422225754155209892385069971228250208397397202842472534836242782629234056574181788119360329280374573263248663726447311061261974840784345377254840580408354098896495529766444350242847126400254801708631880619865942976713258656456451019226591811582441449796817162930340006820563220299583207659431058366607240311043858225600586936545499244894892949704724612703141791650085783777521568749185831786311236036715190734329217531923119744306119449036482610105042699989947254696313068836180738694558600574347370067000613056798425840991423128339741383963848335552172456843243617241038306648866310969077586453436567235363413100191367772787983533505237797717966990005080097593171091704408961520465960082346059047529890695999336307959796449377936010843065463703222087880585526455469769357206056112024064605599937531737896798167163000595551678050164311164202044013434676728409388422114047600073524338566568536861978505554273099129206544935068263879068868946436423736894425936224811109996292888024607959117341669830983597522172989638784286910635791721716696802923456431241295854990716149563820768025441548379660286044366939680039217422174380651797353366467336860911858137667910543035146757397787940306850544202806218748638809801353302871979384867151707537582844120332605674351408409246011354823983172274901019327590831945216139175691541848545851793356846732398529057408733467658423865277941773283688331513202843125878442843973536773121587511640354776974212104134341791021512477953431369924230630490283211970013882057001791887227859444082840546684764889484182771516280092998220206937210829391277928060905068829914325143836895972243298515929201953536159711555204605103549518008810040960941427429842345330030530655873885856911186606161294286818630802579576758562052095199577720376040888820847069536517835006505728907744403842152156221605335853783799499525384448019739289573012967394306607073640919814484422437868726050722270136368499937287012633094186770585660042301562928551748743056151938580594147986021559857090477364649232283960352456624782507058976605888648325494440317518963294081174304733277699038501058790869972583824861903527447026790394912241591950353784175659698027747324027117769695838752454520987307070251849302670755635404784239703169034950453544780653263268767556891117852963259073274908643804925807374545615140500431848142321297466302130536429519354944470749505921070587854592510117810055356964651016413735221761144264990361919793887602673998146288160234119068954016693111212774099441701373696194794658880905275534722478920076787809222969908098433232677085855954764231073034346656465986873448331777411487202277598991282674272701228264604113481573061468529743292900437281645587404187193968078869766264031702674686365336044155558995737012013927112252971008416627224214409251984672194980609405014521733109964612023343205178375252744484983911911011035211111053938988238042337512219171830243564676285486144237552109110882484607996107102197634075672695261844246732653241856519245048247174937240840923379240041613526980015891298381830802880433584814832382034683861129810718269735802854006523397407519076970809092332892313914426403252212727858954816672968893117643213804542691495325815526919686468001331417136122985475932851689028955355719855256601690456291009275977250059364178492739318695856661745059769527449511040324755309942795278678349755599311106632347046877162040236106418401284954768267889599270771083592638506892502390628037741285585280349130925450450989149849252387270044545260449892709116487053573860847584873633190261235293753024480071850121956444272169345996288028244816832483052006660796472829836319434779239061828609433432845216929844489945799577848803969581329689264021837862730799707902914412855049385749717446079532397852520994575218860654463594176743206471482529326828380203782540536565829663243989624293808536295764039688726570494612906077810347862491860097690518106937316887029812064897475851731804362954668241296189650757421893790566910699613697570745575989860398231054452436372604041136175823034831796669383207252015665408658972462449160429598960513327235986990858234726009158411936253877984876142052271903464894061542743635474510411763001867986410956609014843944377392271184506421968849343445842859205716543442433224317398576011965264473491614907948194652370163887762696003326925162804535531621799170665463556845765166124500646537324691489496562175991179997918056793493174145432246955929884044940734036526666396713275013574113386372605929972000651313306591443724564155165880035435541836547272323546310610635189240404827860178544304432605818588186992969025623265408471908133310644885167704141468985623991745446649807659845679193391000003022895040514436962250908521791603817298686179020172616186937569140257740705594756758695091371276263854343287300484656850204228895310470523536485157514747759318164058916336660176584805064755620760228777225444484767521980190431618649701003586448972804077634278511912289034032521930814400820621441676148544908274538808874158069412812720643580689410243843785902869896862899204478956144464228138868745214571614044776959385963306347801130631750581026029951853765013779602695221541796686164165678011818740079338944492736886207587607335499224373975579730184801872877693412552008742215199764023439921135006878284275012961465118887215652900242350338421266309866925934524601152080127216019551155722263822285795546769534276605939163016098085497603250164474902416798609904021045907244803040927549385306138758734259148753702775964444072863445375899460675227728438371803268126416874497712743772768327961822083061806039301822501011679476508423260493310707778312540303142728179643223735941559371958467243667197955371733953978660336914513421057901283648657740030005771643678504344871069193222373748272568914262917778081249389645417451527731320514854737153903151297630614146661844579207927483610829998399522151479768645247512307805302880199950657828469491250093051595271105744299864363933433143038657348370595028504776060435313350254856718998142175784849646494926189915532272918428630719658051281801081393100184320893643017002739033865644607181288774716339617797340301117666325360497916415616912788705735125309821447765348771631340441727052695758466304464440811338356698053352158166890346735459804309771999437559430551131276912164332589158761442290378481068700880993946578474370991248987653541860198629621305412535144250151609037267154722113480764490845699734969072579774399978204771722374228750413132546742514355323335083545022996995917805994093151597084760412463326504218588611976338503131134735163457811354356077516715756985808337648724532668119513650431545661870983712372936443213339239361460794177200102343922542990803261956267545169070465226180077998339771436934439631066794016994815945201690810102747331310124098991554815208181838354828825514784225745249410430566053098023430340642028252710499412901109464416758286411153392706206967618561059525776031647759068617719434579222562448069651872316108864676722364662142429105960943591512280080735257223762979149829089287202097812408681254893228908066975063064885797894885293990480470181455596648920141831910393296139010634896480285892909539144653102176000175147088404286591563567840640658225556115471355889981572093164989040356169796400309578339838953958849040963073594608955663069237798497571517337658577085158541746256799856967946926335393247262891415523072692726649628910818575881153024273123175494718719017178999180240077488988324807733891337102037314262446647652636505542158941576166582840710456622170006176263069326210669756351215779153815493448052473006898091750168526146112114336592186047113190759040949986113705036161465732178045155307210860762412087591507261468399150472864504289879354066668339188830730777825334161835283076698096395144682020419288516060409244970644460227033006742729709501049959512479024925755638442553045641938640196908846612890929700906478759877688086073440784526587596246572647594243120238715334438850384916647160011138484997587796845974997393920951045773691834956462224037437697440042818283314958667324456679973730432433260618375530590332877882559246924293358015499734698753924298514525287636365287415259501960291987235305967007274015061681040243870116306698752610739208927777872760501052911413701298106930892195874789646534685229779775401429084498355580791280557027009962031566679066118399332382302499475186385253279962141775852157855180818371644129501894887350209270980089382806166062462485424581694998576589936349111250167656475288658277856805443888304724806031020267396199245367146468728148292016400814294882801520271590082912547368979395090885719076373148336112495474408776513504739009944059103320695631545874993499977175638045835650553503929715421866349360635496585730070655287089276266680181850604739219068886077558046982947282659289956489654913182432917888741121854964154612060006005967080521071812358819969168840893954665461172658351464665078518285852250035756750159408434501777023796750456236213204915758559677669422778067478376198376020871545839156178240542424491110754862207544550137812816553872627838825420609237417010003826596382385329913877494864732350969054965929415313355556365387107629089053095258164926166920366878850558040559108613449800240112732108140292925713156398743626145071379216809354064037151560145771851338635677055528093811095792053957792214976750941281656375223269756750386254187347965332646342985646146247913290550793556419011044802919254304655325376451966059437731001109796186040364875339964379006023110445216395934144531369276286318998901247722569416353808051069297649155505236204224207102456260636167889273730553003131849494963989597697404251919149204458353751002553216495228214407429761952477024742628253498113252999976960861913689202234672799445761790043224357943491644675887399025790039740431299391095972407011656011784257935929636946466969331029680506077586666410711598131973175324963902310545807443410678985421649471816532572194704050488780398532241484557070811858097841144312168964474809158462512394005062758589044906256673480289512015329587405043134648404171578560794376640557312581269406084091801072549251713155190339347756608133024102106225850921138780969652891251032803595683647941527887414786381636812707436287647365487037670012371953883353636281741166690899956230070736805714576741343260358566151866852674995937419192817152885922949943050651995077968637874544076782806056428058822934498851377992789910873160706793600332363846375005442978370220834009127446387372911059733221542276982250172184698929443519444157108540229423031762771673065227383713229217665021888100545975471108710362921289722961214765097551784418797423294741146408340914239832512274013943911260348323531865893199685075715885954638256327491467832992849799125980270147222959876134554687943927108609863023477186782671815040636406830817332456253953935048203736246006187615687632610835379506655389277963248196901387631873923859571243105581649612159832558465592054193718673841060150541079483305184423111141128105757648276927298176330873246373612375099074900858918305967839596939942608294337019227754040649036547648120608906138611507575899644437578362921320013496285908344068630302988955224273277662815620823370512167556874341601485188100543579737253365551127969805832826231173868897192205407211894930015911483090950789627267551986996449944389766766707125481745173898136738689620515889368351684944557970555422892739865313547203661466831307663367628070528748953960536528122627869633383839638588148824205831502368748361277409228433052877872160028262803382097609940119651121561076961867108441503558882807107560801140586600054765723049301238310177658608795328493608094845083528356000269668028372644163407143684198657064916551950896775547580746191064412577461215424158128603106059110485929171110063415759640485476500173768355348543926132617695715640052426765206606872068252080850889900289513295383855675615347984271278173635025649770248057295905261206494184411473228589713628765937056062841105228525613595054587850287315541664178668517220594827767367434234175373148615682626509892041892294646569966070295417142096611729000318509431324715281094717267614861226161028769176222827447989681213091170261268411285055289603673940304218291184570314887235458342221003414635059256026979916333204180071461401952250870450945409056415139763572819327592164167976936888659105394201744208591597571952780174760559476111759721438148378642621347245425677319965101612279514081856133503357708130277619029777607888902423801801110090001836712333484789170072015962328701015523381196459177737267078085101411897886657947303190679308978572492367705001516195159356621984666507637764901597130765638220891049641094439424250644276512865106166559545979058003585021255926624429082149599564760450558395083731412599128939675337466974374474432157403257166269415638146627487997942853207845290971692810301968296525751947796631493950590603317218913717533080466960500470974733172463021328913085595949002696477488891230445262846055129149420181822858852491136854041370911274230333723132992369158853161501600465203803228210473108508609276684706312623187951766621080835185895376429276599617317391410474088714412883144180579830626529198611212243886237303714472658708991618692970905448612035873958900542641213533267629784114081761468865270748381090846873866732746514504658921968497007616055306814167484258955619072466360334068805180143510203710451480800051924266782258200970999769336564182220180223486677845051084471905446340793415889794941268034545979102375977781318530609409343358927255492436097511344213379376572938137495404226634753280456351706198263968711197503695989066663724434365508104992032115247772982790937627276668402693677365349119366325827564981879285439463066206870689803555530727635258612998043763319369610387500836260541900758196416712601535178277377912634608646820790284122594946984379837236342500702869183484835304963974106243620101537671598705280905368473341052529435118652294713490123191244437200954919750717691949184904105762800518481912564683243641853785426153668459852305623465677495252143698280755091788334650070201556491362475739498703546214686958554910144382110426423511513409686891690737321085235677479784067725454726858869914512687581297354306801023125215692724083943368109739472492741810977952646911408152071220701406661550131424152312865784729284216775672820535775916901590970441903117662158624220592005226536079255303852141143947679628269008456412872810268431945932897669054726544907811074687621658043677455020684501928539913993299687129702370024112987677982398000560623541164643036498926809132444057122044565465971726263519608319929100890112672701212252748099957513109139679704681062193344916983282746598061342058456578061627298173139469139445301909210221899874935922603613625929852520532885636832960808560232576701283780372930696745223826980560584006440240166340497884741086506178516760019881919586574607005497998702559345030090366943867151514911904578165796977894401672183862860997947841026882426315357492465901450306857409214626526743027134747563125766009995374187873588011510095100600324638791746904574650421689213023874543662732120997230044823725684745655783677360935943339001980575137676188048164396669037610569285939320649267103638050157205624997014329171044356971917577924551668702409896642671676327019424625710195636158389220676260664231997038485095938269779666621975955142309843098033959675016185143586268336622948351712389980401978425684727979686966192534224747573956735412840345026162662846818456731520468155820294813897151028519780836022401245111001314493683379915218408897457994830446944699756273573472139038630697475530948611011742384516038721204735616816236862904361740128774078376020689411587807222391869825693144660576178068223144198080937166855935566874892680458092071533534053902197218873940940346627076438092273297147504626823584681275988084767258318062035802150897032501673092878603843635628788223190894214205131949084420251988148815592407981133627220327983423140351814791046656521723509162472619244588447054125164512230547114620565787957623666429091108429416439982934554111583110071208177305142271777269319650168728002868459855063507941603058851827362491928414756790599902034229180138316312162007479170856913742275133226994013904860884889434453153943271643183567601692493086373845610761384297150821013320881327887017069298681896860226840822272991594277722452586315360732266824863355010662224569515821741423678122838779231511250280691928295202249893141103915553636096082160828847094336478488559064711186366859594979437601045806643714451182397945241919776222669812776116946501620582678520775461384620104869661841527075210343831925306332277430779377872327114477080818399855996936860117458738180329688819934909023972798478682654701260407357078312909128194886408593794585051605183364448875309274947104310921226649284695875093937891191704112434022459877823289971960124390089719351070705894141296394384643326993623849043656625467520139813397782786730046290065255824297101108540507001541408634655065420394581057019768611217316097179737399656934928793328101832203503425611320204223219783159602225986028500801951062152879212603376235621701939786844386911689760329180027456293249722586984030921812135134350175141600860196998983651027212038668490238920796323484291342835151128846887507447761360149818521254448048964408789095679962601186302585383989870322420276543432498891230667031969920475407961075380343519784486700681293116596828854044033033098071730847323623257494904529965566131258486323945253704835643747428831420144676359675226196736028598336788404366759640959438233470677888522599852334603784258989068979289929073908518745510083504459135252541746858436981372369212114401308164788802998442000847569907955503627284505758576709855027206893136128851055266887703642793406366298543482319273579354474321346470627894228501036685996425900616810037656438748424110478391194229483153333887866273160646152725243121162505035530313370615943871262081134763973441266181027358983816570733515304058993543777404802308565073470524932870217281079839740973376273455002217562234236259823634727231558078412249473949493511480519717484261641937119491830783778671610216393389027950257764204471326282580380754923858587066630536148739394025309501729520520558681227039063293241768571148159756700396033900034516870797787829875749861016193408078697874727445142062968841794200224489343622688441468866275774575175223722561215953543521301713235229559404686756369061687580789905329982880828986774866919222499740389579961263697213726249450737630693124762606871122620027127540214810933516157600773596005222866966579127520247614048731337689022684450321450818580666830248490794387267583653699012668457149422494551588714023939535576839532444699734745830051466506314505602191218738714859598857477060652079637133635723938412500435139547959842962974055050288107129899503804635795514499119230252692732855995298406130500210017722489336840197067935665758100457832899498832206429734223387472279914738917116015900577642755422284833261061973519814985510793202968286138398274344556933195105348822925804992984864871642919803878652059932978936398393549507564771256617372312467586765263036937862582418100552588700906913320140725309816840949958406186777506385634005923783097979428289695616516343655803695869189925129814254588168534514093317028885552043634440655915910951056204922653597062268320812152721360756702015225006430679526356368380882303221366772068848429862332736571652677907661894693846174413211207655130488247799126017971142889833106025264204770220798044800552690470503526130490635546336227188381675801846447321096559827803544509260545628579880239674268238724693154235093684164055804323570041078857068074451779459120366530583329881685586542207308697781021356556076195542982386644097430946932691224354831093875508115948958283890427778753150304154368768687720900775279979286619088627005054267432690693530042914094667379940978281633850488456642624283492767842020092717899152865215724497970413686816788989746606274684189014351145991490769302620426392722579133709964122542265130376651265343700538019812266158637198690518295983647621010384225715428939911838847534225419424190636399693889589251804690732299900146663820795527984495037350311110613518316741570405606068876694659379815101755800763502358707043671405404181896591977760582720121551519424632288713780896412270961014560016744696344146946128967153928745434307024363905591558811251710835768585240795009549407838839279211027710185496699609453782133064123568619221157140345286249819960876696739682564675009405756058840760842552708204453881720436618243206207459522591199442118979487786705234977256603228262616457425302805678634872104716209699439123401818432312020384747685010301879909220500024414484297298064167529962273440217831103724899263832262312253619376057619043424834460860569596063601903456932847011428871722679963664757130371582063031201036522602549635398228962288077175650860736708439504641311758345480313795705297243995581481184366878338628184620133237555566808780034731111641428810078901773678156333672839191635805284609562470515671632111854388271944544198439784181030026022677163700140852875151614657879959716791993858798187881914168989769372268653522380032253511469412731909955895913380994033275327386541979060140160821868204038330354466914028995970422892312333488768032447784874768718929237495306138521848907960472090770838386606333115169170718158794778108583757316082919903739754258366665419932842259904376865870321331821318125791641788713233934954038957474459292758078003439315054381072283368483874879734613985066633027450677815850075515625516084847663617149209613619301652234185668276434039754523680330377293734787975287123345222226402824126295842860193716030822808503858473619770898582394924442913319038158343221344720575404289291644960125868955606440463091327232837607444346465746599563486519294622454444130358148279325722672397462573027573625646731391740740732932006542339816852567622567727227157126743499823291195038207284873301431455599337507579159412636425703484526389454550557334077930361086334240472980959614387006192811628865965075395500342507164963087608073918986119797917664152778440265725171544757350724648418738462326458087755283348764376602929822736265818008413220070869630924913538854901305826471479075366017068800533027292231497103743226216332826512882818915002595479715287169682150688954515591980831069349919858705004245862668503248562272642123703997454726474231584634979901577630213211623799136594507644647944308008047031241869123117242569169200222041230300493726937047694590215575389042957205322345934684612691116318816075835003516722602833119527353422593051809875996162619072733325774338249670159298400576969841958816895009103975206561413718022070582500682342160376687935419946920427326846259432853169224600963822601140523420935480005070107322185065029787108815204821246291391918848204923661333662605859547515467801298079989994528751838557352050160830589997907036903470597552543990816009383342339198270839104783560399984205654451721901776608869986459858936073002039096181788408868407154115939640751326628984106336409327160300702081942584691222553194654829284637469768576771613391774110699486384874747144882476589912086545423165424650841415369735088447035651918336945901482034095146567413359600414234663668283177658900121733401801613230165701738166229999870878063380339518094984768998169267587527021640613243995972994615153908861841042333170515445121217276187015265746035733401380783413878305734881301230982972885181924423055059034835829474116433388690138667790749578676750179385382587074765894792868384597320780212510984804556653583546756588509790441657949763517627219471004470619337076835363016196377889883953490692711333734818278058251789191175138268509823989533496382006382976473518290962897247129300672990259135886414252826565046081037448702614797423506890504298340312771076633765746027468438624858929707326729461679055155634460652352438281879084153392837596182328981296877270009756853446407837202821017862480747597468150618676628484079388029933308421928534166513053051391831753720148076786270575992463538309656367606243306323131320882291352700295599178950295784887199314606353897393231169163262905593466671295436661524088364012310317254331410746776918458142021824420203429819881206342175595893688645091821011959496270067109936908792175070771219183879962470927053744541027983776099732097846535831075460567061028572072479747601496211922955292137475469172656759383622982872362194201845038505960231616557062695526650619396637625059985113133885318125361425348367977174628678237883859092822545417091696990486103820354928028648795635769454664182437091709519026791907972864451492270117403261266198232501193445581434722327431214625173416145837990385252882304945327274872209140932694321246405688738294968614572522724699868454299343572067159026497945723703366840831130400375157199855869838954107801742919210431728158678854275264349672266064797258872154765490614887436827699976573931760343293979542289370276974104039009408614074841282027432707343692252826793207174494618549239605655882842499973635377446650521575047959984049075609401968541615250047621337974112214175049900952569391326307327994239602753531367950768016260223419717284439003826478543488057988549405679410865502427026035958114868294036489258438819888878695828654283288600059116808269204049230564682675495173509566014204944563185564173270313756064680388739222594409120740094244291191593275655016575544383743736931945694655105807678126485845668109224956055059728631954838824277063211799626377590451379896716640440072816252313581170196598795014474041358745798235547613589854854850919531537599239376510760790052999098757914098591232451958523074660679763534873143932807563781244781423509009069862556068745080202423778401174464856629918249734050702840711170652322000100503506242768094933718169345564962552847836967314564236569423613790674730539507350061028174468990511418897487806008462880440477579398362920983442043496684208315537683591108310471414282414402298930178134518554673226449786006620644753623522524508738527433078309772288219158451877709483861167001628399409997413908039349132576031194736793694830145756393116972429577793195471150792533575446609737019774842212342144097455847018067067318880722410425839082110437251794269671645045735476690629410506102171461492010132253639144372828260678793393009521725678187786945942849007772904168178809227389525854775084137381958303967862659352509494454195181213724131636213269689546453638854094086226923509871513693156902365846124920118047086367439073734907226476094132615599589556650553519184644920741992283661264804621368145271626993275691683378640024580671612325814854311162763999124349758209168179043176506217423878181004946284065977399706099580083855209835744130128322242256459989327844009131842218172209973764378343188186154065191887983738954027536764623314128697329505843812039787464140675531849365960626896223643890398840675369521588377886277671211365482608989377821038027340275904200888034739634187719368241262197743338142076636665401068736254722003413711212272967438858624351106194284591579175627099774689391800779847279540089500330579365568366274530642109704248577511502259855300408450240126706244436689127533162263571463361661389630881639547881244753563287881453778406499099351011108735397837241226668109824496216903587291903188852888575024857881219954960319775080059798019672721295882339385890598425731972792625808021987688314322674880991745053726280771153885696204434375930918586788284321105545142361809816756175524745222065809551406839102767819799537806637618574699825618252026271438686012908576287805588472118596661206923762878629678966473834893657289303020182088933119665955083631165208301912009690986367515015612273379737616784793835858430890916130479413267139374785983659895860122125077444579396930164145211127284255677523604575485094771177380721942282279174161427724721534200748411331882549069345383785999503374022969740752000840141918944334318405381614389746713233525457585342365760611962116146361276446685288892528045672833602629872136468926357199677598241346009290337306854755181294030986649338257337775751304404880475191772596452002595303897454900244169024490788373122867958039757718805984726008239561424400751717774597876959860920491161905776757979132113907655065243067912350521278412777988008137013138036516617175700874336108892075131930916967655858465701876323986455167076585338243984742156606932727204982540795811451874647487206656528485778364816657401809450582136952103707253876332708926331023694531595007739169038180707135807246083294612794718217448616979070488787936843436971349457026398603118604662291991948081698018720128587976369547857015458348147730775595714875356234581702598368387752961964775042348659187234819713907741082723040863527383231927089639434350725557493489852717207077289372729023971310628034745625964279772954077095748682481219909467208260781616126286704126018385460656891340138346210575744409440066641742479100257952337353829585335878750018537243591732740189130222073284769468599863146938379676265265389477078254831998958215869652545402277718423358076679385996594518941634810156330095450316061135898414719283912821572935097009241623986928122601339017248110316976766120850120382483215504804621045966773261232637659263884830726929683565184391557122223384434667155667846916163312083093461651669315284282831019227305670498858895218489585352319527741343870240339513087191274710498771361287377578155387969146608699130559062583294569684449029949062622746931710550958543237200344813412916017837215253688796423356893095045581180029027553405276773311510437877762451375437612874233421926788535850130810689621591058858451114820864886941070986850466953186536374458338868873715133602649754676476380151912455859183033707160636038448318326928275421505428953332560340954484520601690731625625490428265461460531408701673246161203738611240384751512912748601462822850920890380177858006900373423075653685869740270513868932812959946713871023000308614867817344275735561604125093959322738604942174090453097286463297042934334922875937734816479985272144450357892305232446258608737558360806027535612999228898690043726841798133636819939888905565297428441625618818480394647302609035071751736739159801193090892028876556826441405434802260792869170357553082022313206989342374677970653094452769374293646704854133251525924300878310250972395342591745881272667419137959921476987151424016911758651315753726699408522873901911081217752911148008416791097191520934708189755311695962624241761233331284395112556739572468440516140179073513438936230559840021439759948864610642696534501251494916354918817794631516280082315663433952430915847532252719210112562262217471071601689143391322460481689708946483118636368878525590986782513835350878511640794484820096240111565855566547410194406675311562067693283494825846394432547246798467629495471899414469342357686748926768043192381906093014670618592016779334252108600172987232644432436494767344696085995794977591382476239207406545750784014418259888083479693962994318662453578733847076675771615768580921050126151695250824787102342065067098373652285514763189903845765323420816282345243039014208854644269699894756814348176884703168895170025582412271153832169645588407185532735710397857864219366496699924219868692818186407995837148358701846911183434992109763318818582894032467016415358718651761678750631523660527962258927306217933091216009920498130893362024284425240080720241204725063390971396180436600868660287122082695132611772368708518719118970928974589371917818321627804089570516372919414953048958761153490845046812889663947413403677939378949828858069931058968087346182108009686068510932073157595458567090549904695295652919449080964476829566966937993110885329837681622110158940511381219753347592260508833566650010340329505774029110472990746645069185957438694338381200907565985673427135836001298240431955014129320196495404681086303077596775019996507986176503053253073361648373482068722475163658578947807005900441522495026034951927317826502006811071973114809454007764240007149950315468535428105400001972629759195688158364371004968464216803156578427387565700385689694303907375465418043576482049900711307031937316517230670326456603167713356825361835116322232147966158959846901303737530016230203486745208987865161167429579054342067018801809907800772074083695196531445087732539120355857899304309254500226420048420380377677263033450663583439725512317543411885480659700013926558881400499460611254687694413356354398123834443387142049680251825369635907111013079922261516545338774753168673943597389441904601639585616927253756020862761872983079567647738553078187620541108650992799320324487213369889076461419278645718628092385928319448966813589004281785145149363725307814877698468215561243082279076492830044300221274706319391928886894474481341929840719942615681572296832029850177754946417094126804087551643194414072477572300253484546721790908483630983832827729103447906969577606627710638908047726360675200454649267497742449630291109938390469155747677493632393530057418778775405399985610512828494485857584868398013461219292505570700602261846876123022472602599453041475275983762702413655334602483505736245643197316450963378349292031377478137265805990590761981956491587379727822528247967053595534792949228854630368330454619912025855553481404497732471350218460332561499343754919126442864572111299811739205252077841893430224888290683824606671616116566520779347458462201487030148945950785061941572567267316455282806702862143724739486554565684817795478227585554162881597792513299374035422657366011172122608689457380918334515168550789546724383817109150155831551321215702837907014711417715223709855515467736825803844040306988257056151795033060688110515271803538772632344989673396677376624906248855737460110221087907441718270996035962388532062772687859077271094934203822488535805964202300658656488603433428216528796177219570841996263121615211203263851991798791195261209026936823545054866995007817954057403359363890883254565258751526243347903516362565160212326180493620682392376845953267802989560716858359191783726630948647205067861091021230726557533985884777708625176328452284510507597043488908102070845942422454704554863543736281516078880433696498434137323967622471095646422812637658355289156723511152603342762875542709762396034972940085875819212946437639929692118831142791042018848002035263529128671952205374255336202345244796609054042429669585164734135707622210244747229912739923966658993891679099529299055100195184005571120960998338395532596532194875827774391188836944015436031961744121966745557139918200225690698423747734431480964811941820243500880389542198302553218079658662390937998856304595004317348184154748975483780377168389537127668018617172244722402706476652746009157345658781907089036507426423287299051164189242797489531574233896160239070476441670006852504858435251424163963019392949013903162624883725834130370872961417058112670933279194324038330594527168864795522900295963251972323039478955944074123722251803776028854042755741820210633590406935519550238410317105883804852238310323196599370864092330294018858166336011594788851966333713037008796450507859510592019899819244958400601035742946008328184554428924133272275701977973595424923927141054280798942407062953819533214972007803372809100049022269098173003038874469519983184321814286705274878489022070070987177442132600947961548784927023624313537034203376783037987807611667172970850574575706057092363328589127292254474461762268293678663201382835068824052855398541885046527300649960878433792470579842700537243071138804302526516114953544970666651404582082653953512530553510091569614919252706232576931773813078176118181445540026120574739956715397956971352927573488525181160821159407581756390397752188837397419598733093785946899715696346186166072297119148986821411489346477521691902308223144725297830694461440638626131337595721460501029554845425429636715897859261022575653703808122147799601513680728967005987796177869738461268299783096117399519334232848763761296821582536880142186900964574024954069889333711989416380873034671394340504959640180080755486258768573660653020087925294894162796317009084576574305016548588699609039978623330064367091505597202944448146742110247597326044166555834073972906211776445473019581221093242054424405377138380677417347342104140980942798726805978320772168586546872292274363371696960007863286076529111618782748683870394984019589462898892366390089765378470938488499414993858649614159557973826569636430693664593188243044062377974456820331793399924174640463562174070460239405338594925859709900470397416463955910654266408933796297803254309622199071368012507714659195240951872413834820547498592162092268173193942100970898946368861028467389000734799801537094548020894343510889231097162376290504485460859034080975343711273244536779222417542608422011066589459904402839496816805006534831321611133879044683872728699238646950194660140037696820449085748755021059067403060975053517771358342723274346427984358824414814425424603983122295548383399908193424546876551590147027646445038704144858748809790268817613895113357905265251488295499966025150047151512059002483454278679557111530617583760514993213589795575515455759364629371126230263760868252125211832306912889874352510731095915318390200060478330137496948801171288306078178015593138926652340857023186702698886879586693645562380460611438077469436624978721542021307970452873960373340003843045403400235778353005605909392970332494682044988663033295248486070135873052124411885730636922182721361042692560759492230562928310881965177682460451771434300395432108215491220932285157108639632725902074252823952142064474399649525262198277798580610550655906191891150705545620801697084578015151298341280164372058539704968272991187235851132145995356247308119767073997339170267086165550139093577295548386143265630326338275725499011158315550815587215259744436449517637600386385565169581114664531859732694577928061647968282266008801332080747985105056497309698417829112626933072620282230103679312250141658483015508504693880685066842506894667899873396078797499759448270492168892631507297927653447390732969439111595099365162587261741174756536453545180983365570835250927353267765241395719527301692468093283343501118194411921668609169592609114608539948778138213494166223281451159931435486001759689452586910928841517839094543255552036691724390287944677414827028636311711833918878394621265173388920115389293596683667955356947887176690120122621170482785938361647680715620529450054954261898572677089268682330939623733871137087049514438892595402797384322723732915229939818090103295272469171195965618251779541114106082875521243284232440267378324559368465730381947519535528197050299062507103919264464826822554684065198717954941653124944385186083979848597565659605289301979460567354180500629789044997864294777252042069350031185983472112188681588982309331560880318132680510216591854961405540459085057020482063658072227806567053285454121522725162019101230976185341606193316314259583134703849395102954419527697407230290632270156314625467716062519189707811450231684176618594934301241199250810248655838301182164612348705544727018820760759716784338412861287357881323096911638820370213614040524196366991778244833821122067485356876925166192940270228429323145798935666732212865423681502747500259772670660028146777167761187275994056205158679478870361835591638418292900512409029032841264696890295205440209362157614993723300307739035748079716960315167367934380153730165749312384090544184344504370903405883723392621951133380265008454674010329593500434111360720486284076279765508578733501317021521542354199442716865473958221343779395469612337797323415243848051631180648677118439593142061065735302819238224493500955969729081837130432823736140757580173394769676894524036314009686159846131344591688978053432032673334586760385982121609082908972748149610624436965304343658314813973074886915582319259813887890320477599120394389935202969102517805813407510762295072675967847266401632113885118258600112077988500995378373338296898792355306929669668796957616869807861114319644783841496279351675681684605336261903055040932143003040597184247807197783777210523370299285062372987960489252433802600400968358379977971821107879890096566815382705351597824970284929857318273913746147887906323132454948390879302807917807685891567114074160935833159804942737655652998543127632412801678594402464001544056788236456557543806109497730172365955173881762077891034430037178872669023373655802512518492613879975073869945271762035289934790295585188365377665261673595030370722811988510131059308800206016877409305062849700498719157484665913225043938467010689731465592246993766841732368889436374262572152640611173029088480608208313209016128971911780658295167703412671378598684915571666301533553025034751563008085895345298923134292241613011303118760883842073521588309316454795757802067860547432070435339233165324329587969119911027358689252823585077305561031892148485492500563550016082901603568150036324061566465739077914254895362587435160543697452239043960215484788101909998913915582781785575450404958689497794126826877968100853591055284702785313029171625460091348868310613105955795091448808192192835655291344672521124361312033643523275737082726065049936968325360292638255326926276855754187677887365473709415881552898830816904820631867984536276659666817456786775228458545783123009486036941820166362398755931385564976619676491496137896875162872466165571942869407633893370524496977903408666969924754034593869099870997715909431353387982219212032374984892527364585159308102978719797518043790789320835678397094733721433683337251637350125411784229679595413553199372747098401351623993021467772593641404041362074568237740226858846516319292434550566539449952679842802653062016854612620489355392819169945135426340145296779904040297854128732757897046785181194093741187861893822621377930531091513406534457802638611090841053349829136909208845331587639760464634237007342843669730502540485853553128087956093516323512690409251755838272636023199920487497421342617617463672243215879963139675173335916562229979605697722697237351076790975379615547777886472730984393116627904996635620711702035125072044021295390578012391027484726622861605550686778203224565740960195189454170297014124201253776403047313517042961738151754960463652642430822428481298736243666357553875673374873984098528341196475841077640548583253588820569885925542901500638537604004506137925462430386081944507242329947535178268507548585622621963536392345070392231492170222073188972493668250772035723570786753177174679522180233383884201081094555819010644911222699021882693710887658688002005968406954296837420109495119611945077796744221010332473537793558308899184276451875631642003971225441673789649922514213901849103145709993566948765884417904486462187944034845849343927070941633446643724900386091471346554602672072549806947324084956625395319666967357429256939427444600567018859846557519203251832028024209976968847169964814068557292458741359478550667447988425107992760119952079175920481576476270931407246269645642500753220240706121452864791534772733687206988822643528866583240625778873759736546107712891350659961180255689009486822764470827338797973997290433412510969181522188443514830681360755575690471041648456726063538946532615997573663271783460512495476843536892705140800084615817038455246736437159696130502696812479032726358858574997069507183687922261429873438212611222813400645070087071770530764389286091960539063232276158212013354879329367635624787739032282306174244869868781788134287730511236903952029599028045440436430115732860249674581325466755397738733224008611073160032783218047488213550628467768080092965063952286498879206612473025767872478215406631894985949834347291317484788521421402873903947642695229709789496657998347827404459900455465566098707697594613111269455867923022955645291240618758854888422143889982029859484842002477874385092269716481622284421731468570931288913895922765874766101342691714500990374829922740543760490594062197914845956071925012336848301423244953831688866778433601384232386251811583339398548737082295409666015143062908692414866981666006690514515391791080930654804280186372141008677299465368731502294967277439214620932863827292338174749625223449205824200420496311018601400129532806915225975532318049493733862026901617401229086222755855625772750200972840568910292790460294067386381337367100735060653933355421024350102900557501433137350523511600509870273743646723645342107971353039593728095011188561704829022670611847244181212862460096326582305920239267578091919224315027482633258647608348971831284420859272167949236982663564700762976272659698220189932057782341478533023322981788464085773575536586081288933429375645180004869733223326745688925795428496309996902172633871864015963002324122721591609311475101828808680033687288951024001139414234055582184367019951960963657588252508497225032614634147591921786370246280306031058386951537444000751830811417146179598026786168383394393575698174263395412969561038752735641883921244229504868785437529323701982538781912708939631804851617514700511414514415107676197222653087583765028234372253324501945927833283900930008067496928384312795853523774200029563945049578521332681172150744097081190486763808259538814978655971729788396165544302018200398505958812832848450217600974191810312131531985778347447745173442528393305393847728041456068565774223090243565204029139800067569393133186088202579995066852720385130101365814362680826698707638081141112201114546070751528377832053664924157566289463033715473482785537739249910262963414909243542386914949748980020002060031784519690169282530631373314412204276146460590813426229654046486381720582948352725567313089946291004059939750645952380633434158105623202075127654767135325754919813057169931169435025006797186738931261632319012307012438160466494835265107769583270635675576191153969956449688981774671418042903373867204954803522887056767588651633225757808938197563955843429721083018715079950781414503804646403344948491879617804816008803073790369286859359514384999872781626789668743898462529368905596041726512522636165582860619386449916404752915635830921261617329902734587424099079364547795643807097960166224136896829609056081754773737425727724001190102296355196261520174834293599636228837473433689175244951991146934998281690222485717377185290408163889945237063112948962568459776536233170737007431000758369565026733850202986941138290753483299685293120193013612343051233318708557817024369983294768333744869882252781858688207807888526124205346617085445334477939110753505486125601108807838446829966620322579740314997253254996746828419894295374294040500564095792505720346098566256732912841325075169060463536905171742261872709068749287395881008004102577487819355257125929674915992993095731155827473099202267004275513986364242437938215665563600553518779731175923985202651457154348949158575140373756415160039681699287618928017999107745818981319017310399676082486839031648078051272702099213520223565977071269847041486329059434329344156580045739290911883235407111055225344607657052320166759762685040986019451542432700481216801511304263625024280691661994939491956042560357659744655961061185641104025942280512236154271482579914415579554362494598154232368302340608199015777882945467015839639655428163449557379128629504104899878961821879998759329985677334125026196142622825961142844644280901083850988270969455116691640022421915771605378403340513172397657606229428210518167129978151529010014131329907684524574064467400709376763623172372477665209203238693544637736512048413326506769227181536921095954225562799762292117036708800368856497549343316419925195149613075625415767181005877909067546931817485215021405140008219886972381336342046129261551585156606488959859388909598112966011371253050707052847714685979957400473176186548458376464120008516169570887542506674278105835872908392620107004822708296846857630680788674275241247363158418140735826167140924672211127192884156826098051307219841467682008600579074685582217021474334029246471231240771737564541402173104989111649164225467029611832094091598245902585622489377008082015728177275274295408730721905236489251975282148221737670102926449501164401927705383330710645170545403367608220241872422199429442898815921483667611578955761746702041048409662905956174793931261917524685578735092622941490488143427574727511080175914498462734631034536084328793737666562861261933520672712459958478131828436594244039008149982590722489386590378684032478437021673093452781199678836678752117960815316838760896862394182634682019807304794449349974151994635792166547562435758486314804510753657889275820530423756053456273771617260887854557893073566873862785526300023888648383613290450821079815000722332668473573411495158916138294351663774300439034323970446377419251359032500579521686793416544024686688919048204723152217927797388590146811913709760598579127599492025969894946505064444416679982519879876517148573268313456083723380961710894800106550983972042637259804592999996278317893423695221097221074110291272999109185061312301091267851136363077006197573947786646839080976527660652040604641008809883960903790940410984723228158633994999391320324438129941808414599426434515814887670225697342356948499427107222291602422533118178407007952840592378471386531970499152859055618282073899896821349158029828148963768264379969929236193055223167166955729479419013070091453643835958143680996126118892022747078392487497397757498270180746536462423618680990472101497070986389812837153776964491483701126639178435401013812791127960065145631125534618913945030094343164846708153156584336254496843287978005341635863076842936831106332793625927160948360585636114870024645368854753723139869056929375673545489148628463187457343350999028182633575727167040083979504374292935284096617315555972168600393577823518835232467662468284677715298684739469953087613203638255688117331483103601987465949899777445066711652310400135199518282300434622627127266454267910176219402163322040840717694558626938771568505755291762862983658298646802094789610560404582075396146386548271944022343428333455627516515520881487217917553079257001399856847697485711694556480742637545775821668203853024531429806556936287204852901168469012059173733155871454984665327632756846857410719640373553296274252010835531514001738568750425924113985289354978804929962387315373341980221890906413679293679015994950158204310863654774720640832234889688448425661156331328095671127457141265730671673521620334667204345354939081647009417219688212716826852136025136650826459638688295771264977767041363477734052054271164346912010789353997448048068015661784205282746452583478550405938658411034193846761821962045764597309857280074684579724282312073982584845213690155857181305649921029343813550661882296412083497246904267654065951146808734236699910810504886236114060980184857335684063940350796942210014399515664402045604049267881900711511057019535392124574511916615077824079611337659779123064132441625387147523529737029845934829247255637902475791221827897005211798675929468475678842500252795398770607898403461428219303631613644517683254627237049931334169742002451416022761053539048847394247353491005152648720600268032811678655227163895040981089261788960829359443569584788610127802683814541651522485481061882604215943675862113255626883523482252062985137719093819504881918451984123048350871172180051729645060832306749279839718160379373455994717982270807498061364220214966468779092859707619471603199167080806404322217265786980338142642611506302623128465558719549580176938624825534712992873413764567991585104999441817438005802716199906712591523146808652411739083796178526483285497348986078464228057590282376833462912911554828953998948250274030308018446634307507761683623982037730301993293922864240043707847936195948599760432630362937275084649268934860746536846926690766124705493538337088209471455578314051401730535083718965860760900399167044677607320178570261970735375510718319513947843068776643924850419733131441181917241462247917129606966920922935817018896731957813199466942768070903138985191629209404218824943636057049599956231393874388637069987671548480248614097671362388185299806038506333336794184917374070539858026098287918723712551927207648328664565904333729716680378459596537060310791652611500574150002978488111708749818436267562213291525765233974318581375935229876974710658714082673478304565684105853423544901738436356104316057792143586570587714756998182201760225975652142595000583975500597227631532604393193731239208860478819797835239547942813507666808518966975338420923493819660805147520280882252151795832045252011628512761623105742109212773187233024396232974049517971986718434355659055895740793564431078756909090359439400531536713316067634511685729407813641419535968539854880629291982314467052078664775935525091127010059789681850128035771893465938567487705392851157688622989339502530917680597918786259554976406697855386506301608640171735165592305168733505662345625462074578884490989897118704950294879232456776137391991576146381672992360782019676461261303403945952655747951596248741018619600064268098945736129262132607021696232386013366971474030347687994143321207539211301730521269771152820482869734671750001178841512589230036936915304203846700873855099515946046246236723213292041686912279755866892516116131108396249359513104026596352168599156947516785594366791834641057631220582655236652920329702543708017017606873016859542634554597811817576804189171843252998177985016265054149151713172520541960830402578035681816063082421462323121895655120201446262389400607028369537494814371694423083014634606311020147775785507617643747931490768135203912676565159963546503312008288444640181371745580224835188424710010974168586544776176395085729153914998144924573221647505807781398157855212831210817457609696981481297165681779980604009812979616125143780113980598363312104736479446520590047474472798323211666065790551197526290849397124370512633637657346219550571627807774344856929126792822891776803168230260432028014787595964530043475003227861809993651578801448237521330822698293622642018777868204671325275718456487184818376756268060940640760469355820588409913899056834377663783116142241137856097049046613350557793103653040378347884726607518673069596011093551125670827122829869706798374577844423618970770838002916608297330429370444402504454697483254816838250052020411717263406367422213302312328799691227743104468383923647207058501218422653143177961730308316647077266201662935566462348748702256170240647786011361666982884380989757247808233801578876034246685426933555098477997730039789693923886937002041673687511517002008885918707545615607673089508434937138126818699292394824880352739973274481355986404225144425605495395573971448674745092858769705462642409385280082738464435525539946097357838242787661928826547562802012798502765456214337097382571077151352048884618091461276626426599198093090868214020295326771835479492597269328565760474693258320806145075667515865382134329980936254819384649285085119322535772057884889100382169306414675680966152372858575858056510051760194258499924910253596849757746780859478656396183263690081929995712938705533200432039746319754594505163436627807660805635018105599280266395388061509210169477701321869987551135791874844935819976205706731970386892921484816536488104746961140991732780077689591132268589003746664374118157705537759230017219631345963752785765240802914968374318674613884172650916202898073923886010059507298129532582548186818129596659845338903742843245027314606705319636707524051885994753148588675481389245476583138601604970996896771787001619680593203083362406340562194800601485859154870402417843983155179453907810531096978516829163301780792341566989843806280072817466587957117350812076306067177022902833094773704442084680677492779109943438998474063537573915752534530800092717507245379626165449198992336898882106199246758424584993431084931045864033179387877417627525797014212358937511355227920188681925701215129070243556327632602280895617290511392988432334332624913791271482450657785142952238761069965128414921844274269489818024083265159878749389863611892131784833848276109178158367241367162082249231787226872428689212124689067698050998224837007916747402994384424830583858410063943032676984963724738005766308069456555726067440620410108548207273478399052938724782448804266806082621318573934005250954248040653217040359761519087746932391953417904811707135226423046322196463921291985457292184989818547365410185409638292577742317942653478836937972852992171014170386875795432908057709289377746381232160045668006943225988253764664441770353381451710778770623668614098684589506114366690660652474367789070521718348053086648311444630689763704818454741610490740367248797791120300562431682844337561541224631274135194988265397762691186023300541931498895338947723509335659734149394407102664671281049021416457140923378117233001403260794432934107007110489672170854218185613545972880071378400897354730917724319571646437426418399938917157010004233161682530765490987231286208695363573889220029699360506252400890817872182769192535977229290430482611324737535387155085532685371937988639599362184087932042925570687486203650155556095213597464600578740115455201317393876582257121624135374305397391348477648122079053875901355093040767164346336604542526435356933055761678120283189629845448037810184585011918801954769017452560841824323248179074099935193361756476269964651382994938341014008948709412481038859677973057851950684232155244708657059984769999819684322189295459657171717698609872785038080775042644332992666105337669035577141283469659408227852022759798259710571141331285910420778637654139985601090551894013551784034551883958504931966805373774511328316888230203340071986150090370177172654070156474913182494535138010426026988846069539691861379463802375657176138580724980505659368071878453940257712195182730857616732097747885451793284731434319643408706829933244731989152114728364762523665580180531364134052012559413561804046814311364701107997763545407312801124093743444476234101968348423281083840548718067841742405775707970968348649788839824804043429395850971827995101452842347484927135073089705608931728607860038267911580458868358316897560040544082369933691809042574196467271072428184046600207406119073973294453094975151791058411857704542743343427843433651889247765876064565340253250289204046968012031131785732581347658413232084207946533784950354038103571355629841501410342772327553926862923985085906990116859972719592204004059419994489642954098478178500423062681902032020549707644556100391238516567184028488325979220317034518674751354058285712886576052441442646505768336338718220998256494030144651593140530062100337179067608858408505989449695889239316743427947004338103960692293559084213342512431580991590809178954504814328567998476811627735313589003541665972350588545023254487467016272017714217603402092708029424278785822617381055626357142676646048676316019130111413238169317987760678257233804257199359830724723006174402362965609458125830000399646383208091430618600592471495391331299244695897034319317360508738692145177756562845952567432243696772536957395081383141686625211384449457097669710905612177331912053559923429034130091274208962272318135848016209564922350659113372991086648448423211722725214718798533822552689229452222694128434170910826534888726340841701507176208633660849022976744119917733527970150960131185841697067193204024510220977050743233149943697382099972092009138246996925024079878381763205896519364047060651033645655581147003172275727423881287876050897489399481604390815094810821616181478348939285229135046933977154081859595265160934159849194207932078805511327305192394600797652588671179218421540122928223337108103083256476058356073172949574385350969246483499618588984278561045123794071766325464897101935273401286939460161812340230414468289988228263558196505929246579676291694110433992992287532988963197864946931097485442088961729652914620337589959145961389251008739736353605014634218570140301755950865774809373810173406418276333699197837368563421578616057294760618029028099679572749128047248616100728842955871814602339287897204206881744287155707812091814691788465511733761788355819857408017139627519661892846726502442737990148883646019637169515023890071802547468478385460580873730204063616911184048367753388188597795125607208555312499426917467248979150662266057917559779593728543022591280499488796119747964691798345779208768263876302622652091057179674201152843642886303936584928394399589190553191442502203397992678923018025881668558174860482542140496345622314775903327905836108090464636662122991074413243877208962341468472557081033683823060537001377151761757473310665802862514252713070763817103220178370436770940171303850161157510173094385283611383216774345931619572709242612683364583001606923660437466210615487983766746139467990065371454286160505633568770764128384338801815992041489746961339650822757449338389471905992512727163592748771878174347261832898889643831095607143587361033628908864389122137781635710184644486694290527036172777692380957504260761461551839102345336708310036630197477701361542316399022838984806818468159090937909376757837707964792202812130527792450942764394058696375375019459829291448609197714753686691710371095154552174960478849103550489188324465996657343481119337292536315590783527504245691309092739779863307093266574628950856269198603274785165879210029041808487384770000168033323984442905595337860881720876445647915067924667127350972790446165913196685645953490172467412795850164283208630667705532089766078822520601508480534314517806534547957196263212068251796804983668451204976790595729458415496490989778885816670394860259490114409212712857322494527428413508407862511891432268938711464212700832435898997477065352246224562048467057123717887287856469138297565090327233917032299011531274281028470433229695763588277891171899544214131374325998694823338522246086703200083032026999437245575361041277387093426437793445729383635628656872040012399903049988198204973530696530324495105718807351060151293745731754677557018288286504849991306377874358296557588460291844160073489808854447118498815960310442819812495015911444088517511411971041293612256342927378835735804546820091067458562277566965489611515436609861400935571216541267223490072644351456922659962796441175935194343576421092423968629706734705505828821925107629802936797557417588329823359098256501395584376400212821618061484889311089820685156518218178739462212437395016367003387915732403545321163109602308708361395894467318133623628010519555750250683357000528594936513492467976081233712303324093667607019528448758914046761972157575599748939445218217326102459944116960745822962630017543935824652316165607052283855921817833184484825216736994554836289115560134368959775134196839935948839857662718466169378925071841056329809043604819555717487131269878591642050787587391926541921323912035240790455604956121428893286856784081932855147013174175533239603042636491880670028750003984849874829900160842306362739516665422953195983442691250498970676982124281587737523347734073809596435322842267901102404164365311560495259653565706667623371536369903720297520735128976806010907416914878508559637630235095798297767327275604109776264994060967811636596670138614351851716198967271817124813673207424464773487364455828157200209865113598384316728744621511746436387785327191632262069834695165496475859019760902640930554735561394189788346843264674951190924692963101136916125201742035533338697080715828666666271098044138993112491804257139081424314344859130486535930340208216559701607266974875214796922707751991702067136026071849477917774820830443712119842368537234675573169601185332367824210070934038642065173192590454645037068019605146919992740618632276789450803469038544976093750315014228768514848030404830910266682788048698279330715808740177515812761883613133496168481760194384095238952354903431005437953185863090255810424430054416708107851220705977707518302868612047936508441688467318652203736405533085431692120461691358340874559262603189876322091393771655398959536928584609879942854642724328905045003918608916599081613306147853415411274746124423647438851641996147049006640231425877168053644941790896546974391880663831725724349116249009298528394462727353920890760510248314231640682089302131004660898927760272230041875900402159893190495432929002356475301631263107536856779492222062783943928390133233339722674106681463994029253658566851617641149697279541509015388891074624964309017724755112772527703561692111822435880630437983978980800565772669152061546025752531058934863220061347946559300237769431970600701391070627970070477683406339456778611005708645604634948973595282095438252470525178276866970426303937119906441357558041665276255187867503793698560776054053896594804829011675774499774057345696535719918348381367152001379818108216083825403340608771503753125810161089414923534136956664803814299303295957113043417535808495420975669151695459191152361721386689556894565099687281533759028647339859587222582173498232458719821458247943470323999376787909095076909853604652155125408983440239152620271495029546294462284525388533551611505553804116976957195868442517652777988402518892344106682905540129034187108167182048533871553596257895362993684313976807801575241131246481451751235070811862512821367180474074261539258663112566324975719186279026565086766436067604681935632107168518703018560545049749629158381595365773788738929693339459887781379733553299162190441173453501227708274035942904474659041481167921368739792071632384499542269338129455452154941354534769018524153915992306390043910764723679652806075567310664706926972701150280621262904019137824362132002434830046550403960791320051541936819023367103851727302616284597492303072871606995491348966806416436809326526632579681985838523359929955964482432699912413453668313586101085719921947070074043910968763675023120788251272047592631127030998032821922029325432931740541205757650095706678248927810078776226796148036242334914997091125376968937425267011098165581018049253253012635443599454474555038835818354603930206317184069492116440126599645127474361386846572538329009890000522234733547752193284816542431509189841461403143926414428262445510256870517184451958453103788595035640813360640986447942186746879189584776521663961963627894330641548902893200616205711806579784183993997492924807066571519069153071027586274354382690456682305947419487469357170675371218933712710886514418847905552437118997276283972533099775806848802463256622438767149390310733815585783374974366967175247541507826125276431790529878893060786173686531002438255607066000154355406460131667290257863063909287712598227058279419232855643705598710628492947905440176974819380445374492464903655852915470971185345340484726152422029084745072065499347641753343640461444833325759243510061052187620467474248198993931636252855201208376622366753173801806291564889673218068226155543750570557944373512834185979932778633972117836012144150664689079144476351663778725983816628548773936189898341450534046288914909256508726698371785309423014531257750367492910435088305334990076732022184435503336159800839270293649362775950965346582735396847053439319473728186344664189914125047964198623047953837303827327853662826480595782930348197382718678535292536714395481866644468662387065784633624151484624280347180920409672967293325472540902306044633252133648464800010213549469586704323987480721197824664679412097880438737875265963153304711638062029041264372861353149013423458236091665147405377482842327013305907416673844044814187102062517896997524979147638289669318464993920749435174452621559477960310161516072298172302847000145476876887729578143062350687392050837267344865841189345498147025785704348224408693470405469950108298852342255790843474127784401899043272393109736144993677357319606048547855465706360341396372458850671651922941889185176765254674667939534775185502817265314688235878781322804778251433529108782054318890390387544267439033445985521545150693004981862051151609987266339866177759859416959827606910848041126002607688351162129264719604141927688757083711029738380006204547449472012973763185619393103969983350679640848146862541800298388665386095393789219836925650593597194994336437207887852257152682488482971570761289066526440396205450452076458195001881858628340311906784564088197541638865199961244078084379532530827571675869566423623397200328018311411175569577294567827597856386333392572578198115813509228818948283457016162068073825628169562877127080470300668309917708217922118358012634701728300817859056356348713913654594247874635257474771685484061223705416088963537199238362165509817603674149750928487390174772301004753987639539796267668744180940604242730822801980031482787996719925502319974143307944753497768998009776577723140846133584812027534443245090127093645606571297942996856231931239631951661845665613289312912398819937898526053408565132645297980980217892495740695235797632409614924463104283643587795491640193129292268423910050651416942456210388577389231652676040890054752339745571525127430140518347987071565118334194677367023852484561916479617107587691271254404223762035903357453707646799327174059244724600251297621843735699098799483849667275913738251229270528228985811954700233867365751507079701362949294329319248337560279256017187508190385523747275087592844537878544214247711893028875120462229275252355723613390012885706296407319247604730816143804143347941263913713010832259840300809666033872806300763136531447744933414431223611411877817639597327198827072315555929951927588881524218703138741842017310541275707001566701474298060233550028343213379104488823184234158826474101959811386850947184134346532935225791158587012397767107557686487809448751256000299242874250272418909423143278032437891417907913938981584793530900624435434870550718703891874196093203063064462829294128316954194989418142787214358692762903286154646045389749356651680381761963322109030846570185998097160446918000311999192454569136202070653560715843807777199544138586526138777896168142306696574591038060019057540962632610860339196812673325721943864903151469830722291840656430588811993024235887431611793427156168334641608718361289576018912379283262370313565115171150792638483904936257653879672493511315473667132106601231062419381063430708478912941515855605855614614440640425981492154776400547714000771271712306014805169630392382844459163096137596245985420991084477838701971194114085186427511170774583706759239422858320173747593080345561886093542887637735862965084486416438589649298874941835100116016208973743593984133556105829126597169772613202023598818784011045143028051111948797737736384290785820479264373079122556667368904942968996946538670893227143067533747534761607407443324384524447639818014117083829727955437527251489950073035268683233460409757202444580246813992348216033664687354493623256743262565137644998275146467194781611658849600554562473221894831983147621076168272582164613861667529685896595619687104181882966029020901584991340643659636908833475588485088256861795574335714754664394070197676686895942827807491572452308963817595987618450717757652412211364864470889908559720323685937050793428052343810249409576819040303834722785436898728270781454283378128101066050089049765515770904394947380680038975407863473118719550553156339956442700584587381205280853105309967424155749218053037116615883543462162169371456420142015623385107144727300749880570682922941730399936033093561522053707475182151274867198789936965728744390322786107291752350379960915094756131448072639128965327942665675498403233853085777481084425558167606555258346888002925451067733059698186460636625619908839085626148596342776495661235961592061485144688360031460287106854987439177859230813419980253185260836278547623601551372229903749560170472479769336337819810952590577638288722227028361943234648277210619274811465885442147290871953550935486468536144601018960124867806901510225543204715511071523374506350072916933592434625323960337618061220650803615741882337306049111654725242298013569582767624197493287013999165303982228827247267440969320450531328191820760362160788118417289886349911791579997674374320480403598937345045970422119610906232847087426580674795447123280105931102442134437647048081244607588981106973775993260365387674898332502081908171284364834258633070079595846912842472121719401223152069285758024474879288787068933604015531578720546733457069746005781694796849565698471213003098230776224109470449191058301981007534255085354693702106104431912262125317731182324036933553668746037167505002512791927550496815537693448924825361211147261442945146229724049156221883056604815121275274151889212885925650505677648741146174143017209396807332889834191240458487512605621647879377924015834258134552819571341437110470399460199037126860972336221757389121124622647832878207033955762453370969844239058595942282466728661479474709517066600398824652669503070465395075122096345424376418689974645437241956212061220753780893655749544375910554910159538986955596742014320366572950103528730981563948675157301416097298735346679234639347010270163213767127943798029028342152478272329176603193464906874925583598427170532191707771117659859639594247007208408110752563376317961226619771959515057608691279706438977480656759041882071472962727012409355328525804944515955755236597952005581345213125961549940617376855979114959527060737341118011005174418944084925471630485837468745432750447961796093952442092658335704739651568378091103314679360155346542014622346783009222416545517186891701880987319524549076638380362887625951256192189637228491909562018210287904870530418092262635720201482229441737941999265080228891011171154750042150083739436016359963703463401941673483714087233346661477882619655633788889739724921439470259427398207579350558610945713723664317332968404750065945230858993791048096977094830765962434498112797878880220042446757366184828759162021929320815223688122116522256576647437384486120363840294728772696884371818368774513639215548801396182803599191613607468811902611575819068323176688611896540707412879603084797031973425723872444716750114406602418996023685883632136623431004637167970309472212961395871362079138774231731239883915775466513276707657683175625449098433636739946792648673459818523110619598053693943354132732131842360506765431185309785416283710501590020203674359994856294618156973746890160059310671342739876786485108876355676662274245710275836921433916088309280463892204768057341342023599740443870768861647772417666321565846074004048488846499771287557413655806170988191262585656751232256484536335701315427048425181817599404439364251152860337320741365670436358651983216325427720494483870411793561369073352382513381100995340447214495327644835496017401558198697882903225370919293854038589921377905060682067388109468404957683256973221975829817804372922619886608029235536930983966323646800984437982134443588509407153147308878607558041928945959206969275771612305797048213906695663305162066218711924194396296617541411356137461033375741192057287036930241154971879113842588792243782694280319770416500374056379894594011977857920038909099718315445653817078183503002039625766197337715322769892560588770207335695523080032517742371621521072630219050098141649306061823403712941597442319532718135437952337825785838600672536122510141140067782019056767847827067212166784012838247419624244093558860366996360660205813624203852714010133011630041322972850530158208241362079353196374146014772376246959729070007554209578899617942609008505844288519527743153540246351351395541862631938408891799767727006149571399952076221902696937247709802513356911223471088600626101704325176166630811399689144380720906976261981947756931980082110169612114656662090357932683510592891594318357975271384770494854177318128772851043520257991770292712075797510622110740293885432461193111847198288742791397457257663111745446057718468893491034381654207857713732824950357212048566472208963315030134339625469518129239909168906700410407377691598349444747666614057059158696039744392705319010985925392749303412262727088012093356560071546043833412336614864475474438950422244395782099173416298438215210592628699548035326877297418735156378628932546828369306680432203525090507190384491216198260112986008028111010030175091751782269364733998995578701687404406939824023704965548280022407365472835255615272876957260458773101247315518136253473506702038494328505877994917705941181295535596608720214725938589570580304971975699929685471575968804634837014457895983129165599218637833937115793266865133288393743560413672660151285491575792125945074981959452944770246397420091916903354022364850976340345089535270565504097094106215859684451677722853702565280754134011528105092367875692411132445332321116725458607249526941841548795670825861218008006386470448272962349385827350987560903354050354426718622012423009636490484968853935919629255763934293468774382709402923249636140670532123209777770483665153044601817692214603029397021456452243579469614838670245931248271173059427235174025370286091436813603054916904054630633854698046066670697340351260883351660445068759717859664634217939736817459323838999873518890500655426237617974881980319030550858926104922608334604180195533139536817611048028342289745869774825241337267381265563379841344894831513891198704809712476060407193957687903169803706195330401707678272835456118659983582995230036993770855604185619883291936995878837207543926911567045622376328468538574242699004968304247477607868246909065743186286401735331440041853089386371950733760203988118157161907216605749730413478124639757978230179859983781529000735289801476182002385468487586587916492564489746886754526664183339480257168467666592724407325239841595862807603565007894668282793208984967048997063608340909837143507126063536312916209562918882871993528916241012330257474567405937683266154232276231931797911197209903504562745879685693124394994988123842014909840249711877710529796672318797548120406410153545656513370891436123363440528098927145014678183660249748238545041217485608823262748059597614455562406467930233546582712410108503450692890344149419351743021107716075757182046157849868250193196377739448324063675649347095112123554165163890872039264757340110051674757855030638325046899711181900277042673239506146588175459243062419723554189614117362364331892156694022962403360755238330943274416360139067594606871731108133508999332184565965401845343390024991265245539209229385631068123901610084536302825701354339463741343685968632861122696161262684465857271772479804968147430361512688261957637402072432601864574495090470886540362426949239000921900121840321306609507272715367369558198637371704681968200726351497972618363503009475146000639368119104249814937344345618444501696581816767509375268935760261314983458747954886898418741813329647355190850353813896345313287274889792903378863542266436394794256096029162490007900393026992349058739770193937640041723602056327012036965791693647133956401166091294973524657148463502937934539191966445853824958226086384352712649854701988621202766150508360152566819808206119736034487483262173203691245186081696309545853202755346814963047727482510094225108296403718647392849495428329704307336558542460833802214871243448594722004667384738484192282474654607660250515577548698863753057446027913891307257960785670188654522308611516805164221740795464987428533597533307534776623269044900818405085403330996853890830624952659782168827589823612701256601473707249358698149902248223033134630781094400150734909547288412647730351751718281905689618859093956639397669077075491144169178349995396333270971078760564300602866105628034055070842106044124192608087578235331814896668417061862031327941458114673863169325159752399322740092682045161839075380721872206735777974679491854167281657082384218722317422852740777037670250889177278757533574135900382989783035886831818043892773386343137357618987231297377356362371829976398816676548982346905839648414220631650255951921743596640898849931370921593535966521054709379077067864493601349966067128637434463566655076549132941698589151892939862198905164901071811632211448497288880648779288665231130586722767328842191082855104900791995377151259466911569872876862770256372065648272794266657821357937855732778076105596648845763434978039767656759494999157751752569402523096299354448919067782088418564802219764707453362482060600585804078231288964785988527459991034992424318310648830395648998712359071694491409743401974066730454306473209947143050369859247348727664219630139513654591703265186043621206896701283808856791802440918016137108058696523131489328302070235455139490628829996817706800134296985204727002625781639975188232918378296090510806302769387082432895408666139458019415475490735836840945485624717159316605189074420726382085351881471156626822377660019601114438614470209140675497121034301099788478616098711578557465998996243995070772093768463201174219579144017880076564131643257217915196111766317174426069975572008103707149785512683025166620088142335230664613922767346167981167010704615704039859260550228604766549836558520261225897074872885137662834084280134257601097054982631021319223673433338701302880164219899524755450734558717004612891684863394929852014127600193723877030492324372771074003974009415104471812096840392425769103222761686649856834834152280851066787568948345554858656061559815842270513526007175594587500313027394817375718445132431794175137772289288828641683334856948183031203787014602526846277888395448813997081289743170890644939810790253140927768522221807306887947935143026955395352091021752562789556742926093681822188612680093500285256414918727366958572608555089064774292356443072942350335208034818907719856909561282260866778131157951650939562187052559678079749843121564700964217982651469241857726382187090007932396106665743950713971903114600449322578938173089943384158556627442529110268689094987312300106393676190879296897597633461116032532025565178265846884743851867370633242768940608625680219205469073502271810975715622676384179701820004909918153751327334813311394680521753664207704434425607184020024166216336079388079824168875791090353932523866710330072276959148538498716626039642474082014835097120660924997362125698127415545064648704246622839256376623529893190491760739082795369618699431414913559563769472008185034508926320781207726398513399846140844819992273444502888007164120870257703757962330109242495296103030727995330164676285976551935852312836753457650043971313533359117401695149114484827378479244044682853460531947263998857606187163528722683452090984688068638557042329415266302531471146890845241781797228823877165905389599572632010729481117198186718149218867986275496220485301974343640849270727404120781815171544081518940423480451808169593805191385232329932410324111384282067613675903843009526753518766768813535552309358395010792361290055383713409832485356135947608557725062075363909575666645465303447742069257179067265737566079373545645926490519254565588766334201446166751686045550521469307868384391369673262870694545507226412362630317904274729771167639664459318432598269561302878583852794328291291333600706343063180632647039505204049729099595667296849334610909138579901390709674604866910969851081571850375028158388000867682379530839290981693288194298056368061418537342640344699796889345628717562056489590922563865943590418363504019145945993348369368446148542173870584641263618397057987288889349805112065468075872871922785255221431737521061001329270322985180258716977291960175976454570916091427571617317780477466841405786223204553380947108035456146386650999094673827443982423164204446357938559740547729800069636560779855448708873356490664666231755356298429153845528498161982142490476191557554290907946608549001517509001288652889774273179323134523677176748526890589877986288999855882074105196836393170086555015811600165919643289777462313047679465976254852054167667733543123598744239538470511471687014100701312336475879301894024188629106805429371003214983864562468736609348451171047398100715542326250713055495571517124773794436413658347121831594881326842378783277238879243730763353000509715237165988251606484197417326319452207225080301506750954565378435843378973992283700748523736648859281639177287100896376891723242712059195763133189132661940482526666224227841866767152826698725369000462424719607431803302312429839944312080991330418018084417828258171562725010671820071908482545369257936067253120655474386837816299941599317750007771317438991098717343201830675566630815988215473838942130201335045348373530356081661690135528740636607112691573617341281560002085257515179653566367036076503290410712448180478771534999644994328943928810701609275066019883908488757147304231813791807394168634306570932551986833305110356441009750419038873737673891780156959922816375749257572037647065902070241279083099817093467354051508380531407526463179863313065458018607346235907801062299546050812589300698698003346187238912496526584085867395451977881483737898118974295081053293251154764753455038169923859694134848246314960318996995405893794114719114096813629568043122755221955670099887581204485732501596337852139020300493421312827851040472891049291029376790229847436769321545975447723626252557366970773726596568433619527031256244072794177033822969407003495842348129359931383019590286350374456545121598707577382508413174171022858866827031044202832578767104896944193313833256123128539063089653524546315935583721906282520926797947840975257176802877856778744228697259874821081589837126455846689186487006128326235907158268360253183561844925995365210146530592705015347845691823616524607282012324505094932679310195063875943608903083306918511325029585855806373873636768628624382606956730598833056345332390415240454810716409394046672678910623996507099480858847325627252606898153104640274422399665486629784112171220917556953454027298339231301066839467879664572116011325848315467103206695722905325647091977956088983809371254748801404093783899328014175524198423926834660138377657066647311040500028545595863236012201762329715144471323072646425900912696477600611634652550525394631130665256989919895199457073212025747854606923110878173444323281809923036062383550883260593171423321587551567814102960359077406946457471853700393612909331319278496834427783611222612392735051992118092494888620009902389855397338924548278360401742040225476360887806398668302633202601857172753173885975383696171294907214840567540140483434938548007798423331689039940892187432698028219250152198628394173292539065065695392126699485163349529597082697061301900800079209718833657663281907545278579858539877939040391449951582182955795596941966904361412053634889009005356389714239742323208742469383973795207094882992877677671526301611752574420156571503538236681246154272446719084032401699859050512689327946161508501834115308849692260037244665346027992847366890749408729178770293054108308245774583206151010513966342364710165818530368019765618142224576649500399212085814701266432250045687904739119903976430015636415791129561520603887286664401777175014776218451004210127192599908461046988319127999658535543560271655642925393414331796098697826027010233167614810669988969668990888224537547121462463879369000244813747192455351586995813223780883840845495346586681590447988944906706602887838099329651435785368610740140964709153517423566844635027868125675761523847871516350750161176619800557875265584070486105644365414321680212795009137046821707222569203530812468936001409404974104374467445052830432698981639726606194518622357826425378039688412600509372371562698368482527406169325418983717380445779734026112358465810486886121883450768092787607230165856828093207777831392612967568467154186537336174861699265493141455923264237573133952297649064596846675028471015068479110366074969590672935265957464600737955125699387819207201935930897988490900339579179399736796277549562835464900602524381112241153826127282877563021954345936563339715256411306813801895810995187332904317385913776414895476536369402758038528360561225688397129308417492544401433089993406490611866493072194774575662666739086693347333013557361013514426676704990827254508306853401035555992727447936969194282492682942591812568945903882492004782079875152071673472337777686297366870650312191675184661182683674222790238954216311900325954527489060212042063504664406601691401143807700605699203856333095997365198844102851221009831250229260058568879699587529825462024603340211628675045042086418565953880702406288886436985606641568895542671379545954838186539619772970331900952604466807962543105344803858816938198555781623032144563879350247750677066887797806944027136842259456636139469990990547367803185963242460828814364172324024086802108733056256924477680887306353378307007411065583039371314326610369838936287628222986646896628048126967630665268191867429871040820120636647705452643774054523859620736195010599029792391528224959840617042473439688109367520695230949916706759046968069821443634216964536199957565214978029833329803765196868178930300281985985419226826102820186009146767111239276179524733527418608082524634864272760354778852247712318969791965884383406760190125283474879004461666347658470717940101227655188240214706839695155612518070235628120540698473860924745784223367209801750867531079015989000644647402280326809886736936606271343298372755411713150642245269418403610511546803801886487899048940949377804360976244693736138430799090201303845735477904084220756737094757954049534131400375031328007001408142523246532436499023947262226479084288472674537559498743062232541409488641726901416409731185145957827298647050128663578816350391138176286210999505017521964939529673711958457448240500422444095736357338863549226905607190582995701482436895979162356099378094094053968399904305598305247458469964696925466413571187157436317849737100039833195655397319864593411096093118083908744159256862502255343085769377851240081331121949315593354643944601547428363302999396405756525060772370602044590588269478497860272535208562839945470571469730188716712090381026690708693726959039732011034523604738819177060802455187906577720529973038786636438234275844001565385940280656080428111379494558083698735962496859585313399994671517189193343896467659514356858316086439746605381805675431094879217734469903189771227394431632991857186635030355185486604511236528688507438503561891724952927520534639035039795337028631205354352546693841437227512163303407426653822859946950098489564243697878440946165354622523650433867424733479198695539786425355493444356834736214901185262675550244195068236071931933761277849753200502978893837349592806523870276052297386156879975021281143034065564002796555092793838522765591866814015051709229405360058446258230121163998086451358678082261789013728743676342053927591611576196635823367342525321998302581016710116968477052185994936136088459912644628630235982250005222151320397937596097920256304604149959665828019147042036931218799533679585135972704627465287444582081317053537266091215361693486912777367110461906380069759478581904087335739769371923271230613356243642809654893074340809996638499887755584087664518897494382915675254783089903660035356164775039601337579940921838797293393787407698584132819387043503384064532364017725742399610776361955741910161195742669112953208782865749037658691688433586975053983568818892009313333771623923823077592269162133173832301243509004737570334774875766673546183268831210522057500130579704521538928488034341325584268047400156717751698001431547683586060735769311626131450498093082122715460462836532575881805206266587462337524985762711199500941610114812035139712516086295337204789053957083874216328438618868919803803375658104904376636282488713305616331969450538677310942225893006560946598796619659650650428939637305707744788053372719583189296263012678813441492672250468674980720711981573063417751927367801935210245309876017699746275712812133229628636956128489275936937432455247413204590130430366839758337459399692171628799469636341282315664275419590518976374422943909255966512917403544153256023788696924287843945832107056779724947559111672863760315805348714848402013152188673314760190612143284597947153906558200803523211827000641153680182321624103973743042061928899082166298511469411365568659967346808498738433814286622641660768636747082484195053451071558421226446323910430602855512060165956822548168845721032007327643674695963681384879924828881142424581445776909327471075356166496883941525100162931058545894667738312013858050071309337187884001818582816569732416111424272138638254023571265026120983689374077358615771630542741670169941892080792364911526839716624106475271095358202982610894920816445227128113640583147891409223438618076695832714281981198124148555256317453209497458083622403353680247377682281221152722818454000323359932231101376491826053878148954856226972369717295551235148936450093221897055040755493423403949611585886613318976501228460613058478666349273696487731523722469309957338089779167005586993012857768781853158205191981339243240262109964028141927844039163293860360314252002171706806433041280117730771965803400507928744687613211040006458017103677653283004633310879336739466929047784013243484125869642743261108648208605556419559450948338326222049587141245193423999884731584867300814583000737257242504625945947422422133039860908345119974349462746317682833775350193400119793556459259683450068430976786773528884147871260694388010879642193441545693303566672739869818926474334493555944749802473923953424620516904022362949070251110029630047790374753651700967994349369893660685262783609509513867641560494965479939893485056123035262975697930378199008071407132960926717950121714472745150278152709262378204738301183242667642270857091671828507371640729044422517739234485667182268099147254717327198183809832222783857446603819427523639700876832549519453125615174265979939013053464545244665875924794461249212575047198240117365128827095126770121999556447766626947835735807083663360328567843057108640781771250471845669646724054221971948715874384479805710290795369288363978181103905334752461585743066591048466193864530348940651220970696166080715348728786551132174172830884959089976242514938874308316569801085828367594780979365277176154204589845346149209203474369627217158555854050402125171364561839689611357354232279500451578662775450728131860978332846951629166200894018454386392908997143398662913349041160641535251265719351045323468043301855326570845031372402332109754554872915310305613972741930756384771064704259130091526525174629393080124091383211290404105571966978735258570672708697269132479613249733643085717125739864086093127917010526122713163289470447559653407663201424581303220870132952161632359813545045133816521476103125987710513452953699981155441363823646122802289306917230941753236827742847863701122892578734599605516842379837895199654063030420102765709314188104838497347777237582139897410732351241646286453689706507394145252725886381731817923745536494349160321757130664681863723107445349886212926208093533931125558113499646180443388669877135063233325654796228247026158687338153005418200366401054066562633067858096431531536236139422158178804830207300711479649659730280980566758495343002505068529988737744204846910883883602111689464625923015262308747473482293075184438919868837964909238301264939581484016652782268869488997517604767397855627147061556171023780192958555745678301486786429537826720648679366845936460195145524559959041334634602999558869840162669043835669176453334315901968593054879363817309092674467400780057897534598204453892060215127113825902379193043983908120961120755197763018017031841348050902085055610875977778992089430392469691219614933416497303789297170899625740703493345823159448433485729917013853230301803680769222498846722204624793162381067530433271730365960181439836310147265272573361430172897355830819196126173246199379042773409767885315756815964815041435219567538975393754649323858657635058788815515871957662430348294373913289893980243416372180816209371435330053109920118484868555491244976880072467780042013700124551955238748734868373504067054456267082872004388662304584565770044017456648278442530312121549170041310705015506959180846744926440102017352097782622900415453910074207187286742764783916731125818469781016355506963168327318845135471371959657493676028926656962473747864653793124953156294568542884824761788595533472712726803139817561436149640898499690175018316714269855652849545905092033089354343182514614910256704421778449611818409989190840144267168237060486527246354996282233598577159913287479630626744493088065437425095181974536696499633523689387066984628495202521149503099665271917782451087874031100201958767500161024080100012884048745849183118655922794905933760039163455331355915838321001855170990179868831747405414343034443141559868208831052010001217041299602075262919292369974902614681969928573362477161241590527776605398817440417356651960635530728255003817021246599923617390824589659263864570232991289510812284046208966734870913136606759599362257251324510681661863111125365832655061192802638496836993695486687857851433544244554447530200027979333812725803002200753618762766541953917398205793000217666322939531650056371856944783387820432498820236388994723271491590257671521578162092946178693072497519951361350292940682811662729675961216667385078752244415481423656096021683066130727018505164465923514918592958888575728533410885668259724703072638984113490295462809134446590218963777006972991646010038247312544801393035670409835107318746146072515926691946945839072333047704077436606439234609933474947221808208132504875738074571447822801017497223774584472598312386257273467746102742944235884449502307561229710065653983240070537860976500475452698992752144866721670069018390658120937719416696302650533164344276910913262294308944547827002089936707663500921559734383719019582757467307310994941382441053904569426571787148011038817680264360031058175503775988070482545236536403755453268793034167013256579145997928934745914077973839495864798402910067209243430658432591499932752923530920872885217455476579501145458579582087502590597006407530395428435040234246452453732668157054166734625237816549149248075960056703823586476948368092432566187345951503358826941574673443221274029319575196755629512311318610143903725202552121850944623135394287501136586793071875510776040448817703572627282899708436137965597362279653243011363758136002409256166107928487442020303419096670344900889358062467774490008551209054356979898903358845136685998656963148354842869358782644561207588583791382895097739983640197761011945768007044555148965145682735707387482645494681092539158301911722234682686934226355668749053452193702885965891522617406557556908804044990606597590289222670086470191900701041766865071991853036904983681848185790946630073598555756699002259035629423984412853427394369000075164299134856516708520067554455681454592368395397853552883024805671850017618775803907537595144044287578491205869946216633059120178140953928398358760959635728499169360195390566503104870926403095540565367298581916975022995340616819455752016826997830754369706554221870750593984719689712696990334746980915468316091023223555339576685789660879605148588417348206472125274613127829469465979712968095466163538529704815299406988309704165352699137802643618961258430423043412591365010209221361807763972249580499950395834905439490841841698655095893757667755286606631322674741221745210290496794105624701515204559170597417068994351650113763805030583774362995651693136114268369071173866808093616295914060952597758426497128404512742116549226461224666390360407486082764042901862433393394386300620006761695649244020213933758521895101389309033974265768981679497323672794941967325862480699774399868070789768489905673220467699452757880339726403104888791968152531616815123964384324507636167609782073018330597440755762057956933879054427592303705581945035825769117822131940882713236018774028797074540931979284357483003633272050400447777894442633084826301118240945661772757563247453970484735108622133969973775733939202567158392933004101449817482518319076941040795307713579708436756743277435722372295234451604348071423169258402966897177963450454369389542620381205877815692194711846181035394084539245712298177134260839069122111725517803253814097851395121649966090952007152623402047485404783662710216105707675976479502615885770895872714346218327802941593855898541142826907098378227204183457933851293293866526192257251644517502128141445692659785407197860487341447560637171332977397269855227588935079035946009339634674539153910389444689528151360389503363313992496485203267801124600268356298500656304576424096132104350630462149944835858412904819881623554608880701288581899165689681466374146071962370307821193806711368158948183827056934884442309967150752604886964911054814758463143283443112465418338181631738998873877110791483193378914184393088688570359230143809439803639005552545152048546446468311739539156109587879580113962131499841648101041235533916888808561626825599231361372400182824383593549008619698453356415113879283384961670124509819447213958311976813805138407828104420275120194357205476315721262599326914386556251954234867255991978631285571784450571439575968082009652721545423045817355973983333611282399189331264234825305985969814787198123518112521984740602924402502781353927027035281654871700542386705729224787468340428416537810415233783728977454927614199203905700140157580381071517135357425664561732407190527884616892253346230006146911263642537389232409419643695753238125607747534570334338046531391462958203060609672031799155615471227801119013527508748013190843195096676342145518161155681171758219783729180379481428686402330703746179186221941455005621291823661981506746454828139756510907083633121449360376229812263270380071791942736725608000665775208308103107468622247833076441452971308537346124037144740264883117025326952610028403948369235188604795583432900762769459490114819220907443102435254195400982016805846911580541518266117661313170133228432125400775016923690278373087423473739250781728049277239302137026787325514642290141740908237697427297470100991794222144195319899630976734428156705398324586461826478599456579367412674568788002650985800331707409614638481036757569575311280108514193413174376828355092992176530862985710785990735400546186255688459428678616027647129309967263691364872545583037533780210200949542996419999054071134716614494177230200725466427834000833865915003357008925629895833667460230377215972865815702930112015297403381601675376462559078785639159248430920853684310829186900623913707911646110888110888213814098081980785022240099121290956872047891143815704007823252296447190239571173171164237779810880205845130579562178100199648430732307005719564042449243173275656929720734540145176038335386377817107231835103994953271041118562835356898646407206206458800198043032360292269080977967586006311836758151677289216988504505674126222513609551975118015030969517101171763399181223630374835884031526998343875771620077545989930197223797375513063571159133826656061966082449154513884762808462273506323431089087134479462000351645685097985641419057840092160036796946733750698539250442285378739594713377544311091454445805747433189927909110391084783834107453724992746327263161362126061759396719022447999841214138329371243093106950465737815946878556092224815834344020654373594815779281397611527187213385582035818154849495480979081701402479886993064485771491826991627847283159516175778754544197396908901439943554027175380053052049911995923283482462752758296450696723951182254935524919506150740013506023356134275153532210434909487625603140209504394978813951001842997422342031160675489475890826757395857360576859019674119572878906729442735363891897524924061292228575151500978940917491595181382916570646602939309609394860383439561810001551720614660775314485910157743468305277319627257928372728583320913602517342288160258051033896184379563358355165426232504031648394342636199291749784985073657145110329755060553336676833712066572647942658970735666966226203208131011295164211354265690264178312060225827641282738676271528869472122630675465599622394096940271815061229222296831848783673165317351770784545635773610867263543307705083461669351772483649291777282104009064265241812918449895982072517300048498469755970002659832849119372915220686892225766346828917731701867633835154888996289487461908060107203988621404178241681265347414350654236879245422984692282473950771776395448247565091048499771993237898658392378154632179368663148132154415805732463443084976595201864582676249038560326949525553110575672437468912495075012843177541953059164745269543286420074894872918056636022042714225944727521821275160331623037965911542068683897912577719763208040936142895230802132597428116740950928581783589255174790907893254667162215903582413627178566407404907655912884595113690192656455734204559171601201239846794938153519972687613416806398703311892116855331851224591848811623634088565797567090601843892201917939896687801672982638941806013728523571839788306837465963117088526354713276705262442001952598957885749939057757360415031641203828629682684687727647677307140127953106123550124301990427953976072414594109930858989382098388352974135275165564560134041967701978349650250884440410360975090369840144850866292478632657850862403777967819696930300180258840750794450670279860706305002888276147286151019119099692135519399372343492187593484463708883598648757511962307536847503560751925751786567361627237720084768721273894498386867975552053406253364791276798421106516110663298578904017628777710552395099662747247820188610184666277864789060473373873734471281331788139234437919539515905836762658231769666111997239180853013100990010207859258164261962793810187618454315927874030243346584485069605674377400706860650570718711763678971890447687231804088568318862082348792559792667405342246483705098140765184693727227294712197512853373175292120798279963264658226366664211148820068038258403023947809410124344525905495220582646180216749762896940549066781295738327969876172272531321890176595400760612054674890370429209655346690626166599029013486813969131687849601556037466101295034657132141877111241687889707461909691599124664452092041813145936480969112862571844806306940489588303986787421201242135102782295432901070559660583338937332502294169506374342390033028868766140586014649444391127932439137664153612205002046116910518889370743704917072819407726980790856250495634848897367337810153442479651204574986559277492642124324378525961542967587922307243771057377962746354539287343551888685983046847046401158723655819066604995517320406927435972390188507329766478633245176421119751115998226023234831001275839284743272313930330128274953571490220770942190405105275386274312584804864842805813824159230895098877064709359254863124070258754238577318740776663807238021051347943225630695589113179325610344558608100230025171161070138508050873672608008708391767861902296414436542251222172910365569666313214207521830998051089177934492726452685789951330808631165877442128391395366364742207646178433875762037836265990231235528510037418791292492356534795489111358466318612989598778807941608007885120862697263496120342677143505671374715516338823520183811315728361042131160008696185650956681068486239910966478113211541274643395986205298612478597321471612273739862547188670062386554152088071333569976511663531964182366345109588853184318234409797203775277515280443436508516859088392961188983485553537075022862684700006021114236388379972866372606988690771612379191289091932840028672734764310242362537621065607149244328412383516811110317955409353881704567601834035731283727267156162074093193237449243605462317928151148077419466784390707020766843227922089626374327415524257037656500787444517237734568011465674616217279277329834911835969767614623986279275508189860873143185243043305274132231686239346346234037701115360351558842135193777165673655152766695165626390554919869340492573564888103012795120262824348493049943749738978974367023387156103053851103524836882489651388545691381369075845905270944968225631816524968179509324934993787379599115402069966815100969808534471746290549918965739206188021876955930418219346022275261607443279703341274886222381547471028320564248045730579415998373101503332500423727191947651127616116162610772929226853291659409082218807456468973504670799370501857659543922537527037515997532054866780480066436880933845989770467057051757528970369994413477523703845283381420427652191025154078149296749242805640140640456651609791159343250049290353555862458438858189107681044163360237436590660414091738700220834388130582415630756542166361547972033520542629052734517408193350895847884417178248917563237853253900801600521989895024442489378639644006624585865082826009953650378840004596075992328969976927157419527669267501556766394779073857519165056234240581052704626073393847495033258100191878326221571237356676208085310159485143904270524560835529732200617549238429466029606178163607749602367682770342493881532145485944895723045361768992715150662505437083610805888519697898524587075002652943220404359120996269468317183485232427251880882514018352356316674218880278672239385392718614972106843057783319021970879326222240386860346279214657208630547981873811117622243911631545873029190164696903171142127273956377109849953692437757087468065760577786732351208400746339081064999952523435873267946219309234039461642696099261689870470534856283821962406815831717661590590983170431150183034026635945486040191105540701376234913536308307074153593303950988748951709953513073060655885706181474088922586151392769339402690770058365205499900637867709741946546685072411783978347832399742268613704201407586037455059991960314195668586028681609991214341477768979326189434454829082776253691220359865870361295686232911751866189502077222562505262024521825751275153332314372242484173333503204932842927687827666486172371322163807784053771680603818253791497936887298774326527865073024405706431759865228262765423011967164116415588097897049373883330211134075622268389622672561575053528177323453316835711555245818329109416861487840559273860118256865469272670737886648600078722705274473287514827678537605924125942292350984949627064792472130018487728877124744220455731768312534734493344204851399374613574034772619600985664829047196311479779537920125701256800065228368643074637468881414057651687287994054627851917169909124978586048873001621079021710755027080044264400436930623414527377631270821241616279213494762728178909612890756004346357714479851790243250839513687927871625682958919390389543705425090808394641722245664714039499808079182728473544917597550254389880719463309084189198520203936310927701711518526018418218625922164537670123588387668193098608748547041315006415869890261229573844026867283792586981112175690448371592228270261458255075444562300329328359266958466075664989609476379852397872195596404133941880449465532686702747614283024575490502419441606413654369202109291656190584518766225481624328847180942001381248256145802099807960132469894944122570046307863322023245456589735444306413144161047492060697210839795002181269295139411347680117495679115342352662761839933527712288409818001349496373030489244284265356175846443139488398856763223149896412373735180631572718294303771916772566509650956135583691093284002291011451828106880450342870341310306775988000108131078105196430289707630636766001770649505360795962619269787021662409409495801416791796954947187035393537913791652240729812541228973910098970084004187349002713408789971653684502965741445165080201970972294244986423185292966179604238499023526679993223836714604972041353671506437567587086520269254399897862076234744737574028779362097193360828790299015415260522166098788838236769726362003661192934788507835190787780335328896625058409896717267634924874873694424089006567616921957024696323259927159488884407047330008477353913686651156037963921678149225876139347717090073977891944159916560074057200840543118194684108782919590531294511673289965419980517397571545517560790603042605108143552526014202362351501708690773408660303132600232979605406600991334798338768851807061600357268067067785582837145402366932714381456421790592277248070612700854126876765674256437495605009853292611016263501332355942794411671144665146834277874348249879886926576031337168343006070679639229969008307354618174374395444131134083114097022927560009482722392521922535521896575249239631142000329014770784786180041587738574834476834426015653422400808008724533163784431926998928607021737252918052147947550697168288138893773217318796384965364892139596875163183973144773704713417343875531989368562281433423814749948137763567694786473126553797597866236803420676424387468985972376609564120332742219005026249295270668387839766667028073361820766231100267466120541686124887099928322739384566911351952279559995469783069958823854833411151040541793859471976141371446267937300990213026135767110648495002765468548990972737321676354760993701723605133513225760100628048646482157548105945477344176066934466228297424688248647784281589485058733358438226656827150873867302094706302371591193473009805909817802206412095428745601480721363828361502900696789507175802258094247044550795712360265368970865689212563937060304763864991689920336737518655600134673824626093027147664571026839162029095350778394221844463731493888272210220944059427188786439036938856361577151199693134677831560765390552956999729650930974051748377903836850014229537658416560747182512872435512096356946815089187711876218787032178096734326069210664703833202518611259003549330305712927032834825025103264156819371689165135551129075939370798267015285961264931937760789831702429963613344732447548434838250197827896350834793048818008830750237279088316472220030060103497404486685948629494567953326525854038226814255772453768975961674117299808416989799830819862722615267289888157496069824106240453079744425640257684818532628063980014133629281387748475006116755393599054698691236301497422936438527072154864442228110423337560150865521667645993580565755380857072569019400612032481950775413788034621596090555843788292915755987297290331239233984585750430687992152947378499683331404605189254540991508081971908777534283713529973054795634693062065792641956323512265968842102655156180617400184166331490393829668363804058330271981056391778555847546615049788466262715909245393177663157209740585397045827433373772671914020601957706492033811690315362790544321362293003886543985669740509532954974464939642919128813772541846485315033900903957626558791508708463561015516799818291066740087365609644154465811943000575985176623834334954747940345922295556885620473046440861944379767251620037863347035174890038224913255784568926679013242705335750702431623234311967437873540936966746871033825521904179577430173286380084132074083386292668352773652555949714627271854851055046762034267033123400231685342406550898317282904714088747841786921151299433917973975526401947815278586179820157596141725382197549340498346682371369400665057508577977666828700730063539239093155471398002966225757460675240562596116401136966694093092373769298117583614251040384531661026728862676555525383939830234695022534017271428491014578344877929741407839926347211978931903829565324822938462085809704686819195691022539911301670054907836402421834963267721166116575836309281545169652116633856059389584834019775347463269916938574047677377101797840509470470418024700836249840191303188493573290331826584713025600765040161482663369332515361917691804910287129137824712664234457222734287811330005865882094975397443121099685553997496299782577153770483685021349298134993862130903614248753394321757418440748752579527061887721504743579881897197785890265492078178823326700134223446847417090833725326842676590660044130686357621058832574747724710038881618264037360280039104405814886804373336493864054979655834298965021080393653056664686191579427154582508180360830201368461529201448525101683420716543126067099589691458444439800335498296656900329847373796799611705244939645887826776530451287041356354453698188275064546949148573190846950480219898996236396027459404199025802041208911840048061315326850217613505555611146586878732225958779716837291976758259879526478217802383786253142753824253708829753312259575758619583479459037550672426269444455839873676801844020919255316534395303277837962349275213313536263051455700103414749337349108355787319767589793773773632352905174450407861912619935910073689195129269352236706503726286263414253743959474580637245887804583378021613387819899274223271755542830953434435863766514349956419409959153194628319743477809190562788929951690958816371158541519195622712943057262348661715745836831729057504257306842356880588111863584494845608151222260360054241909262127941222581508515161199272604083327878635425874966073047948255627744028483408139564421963180123462825943589965699652568232403377012017839312693799999834886353516629301898826658709863997903382412114751545584741941718468435286927791959650819046993900681217241646173898854268738388091503453932897511785410685475870347291715970784951585781026007229301003186808488032353932263618644024684052599939120667607680600061526318859779593686800808949920916205463564665709635533052004516026583139190840762417135257450355910039987847051843170086947421071473547067725061350361062464960063010533688361741757441030761933328121577741579173390626765936900593632209044162944632143018510421375176357814715190208763298193632388254030842504371944154074765522061774671354801772883481170211253352556265467727416670236353992615304820079774210885361738120900724593339826959644428352708527711504366897975360751294030336540126349029162191467305465757322892676760287456396695275170833875258066386079025795454661896607997695237157328569539234670138988041172388930782070694821817672086771482874591488168205246075555600691574855396305277515077406439091190690948723213382652682556279921664306329543276800727163227957332197493200778211452311122256952902319943526440348893180507331927389300673801165061944643908945223407288747468955196700855830793165622839174287651264925629698101683401898380137434000482628454423703835440370653503930624087582609389918323176294231754007789612043924694817953812629854425215751795565762214564949554946748605624292485090994165992749704827068759163152327922346074337827209961768637720496605854188139739176740840338600300324278144273382725376805144120907403724246300839086876976856775031996153779474734664077081632746604797778313991215319519174543416639517327472185520020281921810259735047478212048523133467790703684337926588591923667439152170714197027693623018126405148786638785032040144530524371245538886985015398960669274450512551939180898686951806542751819063164005361235422702837505644387710549783758197301987311901050389916725060965537799620011111119714125250218900090705120600315450620883853855956949225431098277634988238600368640757234549994536618079684982694852961713689284115771390193663189253217846666212357108002480526048521245600358052712393965594377842593738522917569580237018756008989691283114367171380319280531055510440559657049556448889229549918356299113373457988792375295353081904135297090455007709107728412907165875462883132709592278141970926376865350138901069548364754654746099883231356358749512522526848104482075065967510937929042434942541945100182117966475947602585066923169452737077881723361279871369975542086158969085670852530668030746661364492553629509308894067064143355890098891188515937278292153730438501697209339317663144739710478853967074169880601291914888107256279912347909927056894517352058139165823407204946536952288715373973844410740280684295388298258094100429497695860384697914779125338675740018685611862312215155110487762717597152626059543207899671658790452350747223291686150915447116248721706321879769141914255555191479752260165461580782376106482153654048051713259110843334473808733590204582734921903753031290443187438107801932703797875970152426383142543561617211870866256461766887460700445257365251942564129494116460920607019471420123552590450126570189377049476601242741525680247154649446390084932217029023352291310809539628529717699329664402413229764595702997813798496782261947617441769802758641698649639475459449075393340897524560882006043540692180807658822248203992173528015916119005347317375879487715144370012391521877987202151826989887195713813212140446982304698693662919761960223298480392355357058671069880328949299656360639181018675577451719439058776290639037122847646678283819947930784591391337951142073781121446102893551087206284371406565437065093383952450467874301924959229897614177684918447640129631215683051047207588254576312005941645466249836785839142554288107919065006970915446733756001122953240384660299007139016903191099636020713592848261335286618547231183670065966288320502644043139165783088961947993351533433186097714873826865605653104087908420417452747473901861245593054805532489371884708567300885781533046441572593962092088783167307773768565283690506419665991285700199785794551950972612240137443431422737477306169332403560274999089612249224592339535037109672393715696666780901796931828297113005972588946216577030175158701592458774415561088208008697489034132599468570976634932713263010703363584128909989739144372240423028270569679363733880879428720990718283703283304494430487693945554182478453407804458077727246295673454118142825120543850623896692652533063334250398913864268105373866633923759406727814540459795818816570065386635023718017559321442613245443618306473596678333120434464481212372755478393370043191280455024174688335442725383156031555244128113397880109103264464623186687895210230596313425176143922508976216903332664527366221663393332715196327175813749450754830779695576839540465233191694529273204940286270484788996178264337223239946254070867764600242923328423295756249422335100352545766272365740663339120464357750307191738887228908779747970588828226307411935676670106853289757191095321906018648169202957323404331609922277553865479319305246031140378623273978987442898491426546313459957011188732712481800047835852594764740625438246007977445778726984496061102602663520106823786640611694308394999447556742733251024398052956077321312569428593822784925330672619848463997196366603482955418756507154425841639641832726511184213079219548438895046779411125401524776871783146801535919277563615615568744867555019627380816255898014792513374104353016628410880413425508351771399039784808690571972817859500755387762743766564922466648860330712793466632739125418292700276014511414573521419620647526685757481308158827861074502323870981786677308257929989953441067780536586397469257672603568798765537930732160441405924770455817792308825263298330937616261428783165578033645530131901482844156971577142374346337270972225533584407987111103165408867143107160414629558151716516932111312339991576369454230103664754097436799361347614864672607752579657921539154417066446801567460316138573894894957777941361231654543506416565232804474900037573144603327522577153668169329931236581065859002357533043485405539225993268007305189805339167842616047748916822370288150096130410584550848376815786511067137994505741892034160727360019811952018476515068001043700210735451520336566434549945616242468122583453631956460815583512603418731144711624930735221779238467315720752524994833091105595801750681765210757921175335692084958390281721331904798154279408730446061817508460796397331622760277209900375841737369465362962200295571764452152355673078871200619631647911189598379779762788404756818531508833809795562622689860329710934230438783916275496214017882821404094436727160608423647565324190080056403162167502937244235234374004084774702665759314315409691098246674881736240326650200049108168499245370676296766718163581840678192924503604627238236187133780962369630935187694625493292454002538146929075959620011467022731124653725454448415401231260846225391764978383231250497100420725294000198532105281755854824735309118356556294075323919429426642443688438046479443210305171335756250625460644009076655643200796287216455837070156812728930762307864209274363707746672850543041308464959920339112008319252526518152785775605159256932098888470891904066285508681898453587370633582547117501541732817195551788487415041369408496003268927323414593853952101652514754419682607042646331819747513476530702519872439312026010867143206060547259997587630434582382471808866043146346965537178545195181382763839876964695747939345399668278537494789584675688001040017781080318455748760658722501370137245134128457920734824538559108489028647200825361640757573408124929338763583958019420417553655511931797174412810515295652323038616802620420433344825691991144392561877121903865518195061626653413748903657499389281491212946055041372370598363593561318700948606567862475081426032289862517842188815013827929378144685555237725786992228263693899281424770982676819636166707990653305865428725003297867620194551405406246461157146069490830036420871500766314484793857891842672422867709756977029989808931524193382273522359258770153473199771417369967077753611665775374448679248655785699104341747145263111357496784473039766899070240601965466778034223937025688040365089308380190643899544815889649389619623059998030748458627090127001899243516161409864666462745419477278196002243654706737813074672440487910645866123165489205851952118785464742505934179493081645760492247141771985268788368751318355632555743494241915361129711065143217278838085602043805384396849349834053359165802075804287056861827403053853623245480258094903921633709928089095623568171502689403460290684236987824413039486162776311704948925676647411597902545370671653911075157083829045004447500473881189927799052429581379466016619573845701850112431294748338145906986733065475834980110914080968932799446063502134313436771497495419627416972760782729660327685178981046271847984116126154650297017838858473074037547455689142532556531383929420873731746772029422457907116103415741659352030404008216174224559332612493049329499626454440288699249420814462548156739520035167375368184671834849746244490258084621521437068629623081314210885527932302271164609344156237250959176682703193109181593808049002034003727321599659464398266642682063566360632157481670780616674305553569950910186755439865538123956863943336949731278789517974986258182990886506540201704639306280069785493349330872678826789800413137787516395699711854920174875861504330959543353490143937404023455813988884206976347591742880225668365392705346716791108596553544744160434025103409706370666940556678640912865573124986001306284436385005819516739259252025217178657855959501796326123529956528399310195819898722803281605620302094705067095849944731151274516608064743887896098710719759443106209334119520957535230973699758676904525922574652713171030488322554701159423082309372397844136721109855768268804979758426783400422108527127692271421410098952910994089883964133958193051018598475879780324392970281262786412899625123509645949991503294740771154472454180695972426632774722786207762036544192136146556783406344493140311149061646009693906401936243224456318595124502244063899363288318057928447169430557137277779581637680424343317304371374534574814820819672967888766321349676993940419479407324167352294413141107828735305874413802223101780903460551685250475482966987610806012591339528469848846254584364427697221048347260784096559533482649319420523891164257141247177891064430376544885636219582002001133399214401653932789270976155008332006417581567376892345507647095106118906735632043752332839218888924396935371729279465640675994332612152233996852345769295111766429200284043770539841446857249952505033011912510807294328107000752537254883838768279164135620425701908395442852652826777910423638137796743620328983894683743540024088414178351624154865962972793040178543447065216890825335666476700735470819049611047719540451599064060972455621918459963999335673522937783497500329701073571141912865088986739725394482379549025908829713973102504913805084063808929184914105444197925550019194865199451351630581866850867808401871848793392444674206393935798184223672333937284940805080080866121214599197042955478883121187992799734338707822814736961024540490741599049356501552624409685179982710224867741351043495739348186223000776197816319594519431166876052988899169064996352695619568421683355315044230378937389384449329407948271996311415267606475240970493683464189213194864702218552593989996050955359064791269316625640428055297739059627454424847764681109337610127380861828180959097334561471643781979361833092278428242399758215688287033890906925426245864451248824409146446715733733681072307013218869559826939344571261585594352266732405120336950076662801833480205100957066037946939644423791739215065719392601578494967571499906281476060059880053653697836127271491673319177868695068454406923797928099226373226887172432345235156348667166519551317182191970886850911933020065872611004774655934450060259444255098160127612314434336769719130719066925723017616333482156598058772178483223236467469215497985055483074912528344177419382231972044022746758598444406826608838050914807724596720230827056756053611039099916823460013558829798826983170597929561782370541665189487067104700832795947461254228039534440819410079696848080690706462715975455841961734690850374159324629729760365256166777922503116894622358566554190778385234253805455077365004530410672156059944086664522148395660005932911837543070373653453889032550843631177838745758433779752236144882121568974695594883387765737909738311870850176048300188797319594306472211265969947013382283121226324498294727542962240757471683721223023265084868002481023200819594549887342962312002670034716243654964594623824492093609211268946561821575831766539692631755270988914485451089958959306368804037340767314643568999947095675505298622110711459834459660001418010109566837112164434114479698519603605644789765943895168456995273379853180402864734780526925366417757551298817821945077075880845757281195077755621835018602339665333307662179087601481427921129793736365920938392123013943951018778859175569882259017130433664309786235515816572986301901910870717453918410320671187598878713235126956513389047561444874871436365349190955069658506487146776688905330811182034753694622977137319778840731645384694010232473715827859142993858338471734836878331343812046344976768829221824118197467860192490978304785329143276514776940980123055452453831780695410468599357489653640326614887354010775565246995162319135235087902516701724586888138704474222422984882814937711037648872041892109742661749341635012146783387768871108504435569383595766589745608727342140810544379601174056566943737161451104785881270197275650828197718683108027335842491242205761906581898981015214408407722068200258660736624856098126051396852013335243851365941041108249882238866339415966178792081629238445714317235274143305733817923340132560274926218112879589999003843140693290929128803349800268170290990399743170360995959625467977864591580903634988964062439318600270494743719884903908371145129038728780561738212300124097640402507769646886458118230560577827045727962595919773309727498477172289656765613004352007661948954316355965615505762732996800109851311668992980456820243426187726500255825280459198754636068114624792824879764038890275638000141857297610951810373221113484747881243996340708535288785014395676915445318636836726690374811770562815320559754707207585842807048092840902998261947084334861296836716880543117173608458973510973755502719182392585805813296998976590362252854077083617323645470173705612188245513928618020224311541689878510576504024371015812260772844257393675557666326996620806281757319266747935721315981396193162977285577095531396098704972517995282788398195821516477094822771821793646140883264259378118564262506085149270746827237022050462732362489028773360298719432144886398238600930111709386070854478033799657119355611946215877646653257031017997631138256749802679111200575013150754669912283583161867477839228879730516478752974550559037034480050791185339945747163761670655674740334251008928006015545266810383473708203542576454006483761085715745510615600683205767177566595960118938700094563194478915477857622426741401078224325316953506686110538439755467420969535387119111176927388486699887752830183741035276029832396050361943882799833376603778052141973161320730375263079632108850081947276015854774799537705770693852294199340202322846131404213950137690227313127051109756123979941720840963180306784062777930229897531704687887742209444883810086147106918846304200305537313540379125679815844424673665925775852879780958132993354850097976474313179326146416569151003196300257973152755130073256952280316432648019634573923676094777498005434462709016576416879767349552641067347993203161123820571367834244705973426076333187028031177467348940368471972166117297212890271129413535998251819295523905057961645228823087762871520251347505791874814648945688925825907413392571179170822246421831968596994373563677138043731431498020012553510420112577474468195581851705386525985591595761590612021407973273803504280363832648272484191553964891341990445341986124929314306120368534188605427455594040348452795195444638644115159289118143902372145231084949465368000260828137361291620137356546526290208978616816130927503350590998976956388319172879752746405298128620259573316560456454169990894652891562983047936631979721984944661901522100103967228859256761595988395027045437130037398264846485956974858868738872472341245873353880064450044310726871726291745773989251658680097755641263975493203760510142920066739014931542942885533401114164812646714984454214148993303136689975945237680959497779951361883933264952666124281516512654422554183890651969407640916226250861854452832510972476392763901791504257221962920227730504073642717713964732065777636836707727625019280716095058776072043830297211295084653338104606892101591763911006824180243646801964391735685797682052681371855470987357713049714141835576380615074474506013840934646733191300210674334973990373057421973608796051182411337589987236994444397730189501919451819172925198854354690093526008501322368353799158990379120070665052229198368887078113547031086777035246853404863031966361670646106284488851097129699468070101051075001786121537465011783819790054405912195691860715348219740909351675664049264276965311887730804098186014671352653505149005556356365560754411695169723650518515397812987482971311339156268275431683053244074921065910351757571517088013502205435344430414797983735748526891003752796862709096807614593435665000911515884031716237607086342868815510345102745327575110404743884805593027299032060884053956525471532649936300025738797688020469784876069241719350567376570837109259660312288442761910668197035591601410587309812568197359177246230896338926648968620017736882607750696916329893685677049694674494060584313734581117658897875227128697034362711008848714392117536684244665275421018759613104537301712925560034364581951752642563902197876552987630831824380306621608016999811162504025987552367910782552709377537998091215856930207887999600261256579410516419393144455679242835877763961885279799791344560799569563034164910327698252979093770682721071971752175802124664940855376297013091362353761733821928577606648479398680336930524604975124683469447766638984812004425129093723012206146249505956910052037513851851520607780097332530389744815175730606408314236287517236177807391828561838180119545849010009147018808137814420781472222534082730219818301311039845197297252911494976049887366366946993460814734553912090882520288001945284020573262770550864925818707891789139528621893566024157710538558076641254681489178902392107527076327486466964112817952403060512205592115030141769745660166487253767689423046553287745359840470538099312199793951370933380081516021270627384588926837574874473735232759989684428714230898783088706431190808138857720881230948978357007303707261522517754927955710952337146932417057623031198043342004347921582379135373932382347820919474034363757837145369407601745863387750031850078778721039915496667724346650620296033942806308756442808692471486505362711564284985023687978373609296251673572781227138850568185575514408586625698657189714702603908203580667418916156079168473157339675803804216916213342527405779177801654704843911541506861444450631025612006965106458802404511691181867726433651358251082817135527093275618983066452529332347566003897786165618455998814717588328553226625348840775780319002398163861994711011893351876206860088835679738080960935684457072770970098157516279146377324510724149664223824195830248452724330712528934716344554002609838493344069248521554695004309046544684685920727555817324340487398395081035224314819610205841392724967665592189620759971385955934329748250825152638775243775976985431323920016440302697034284746809765278928565835706030585736655274357313863382184015862951633375064991067778301027752688794225676900797056123771852833655827418107747761186132966571758134683854610228741004007536201258902701601822133451676995276884854236671414389143416446363652860814302269397680986780532597164643985166912104494963884702837291903293239297811777350577933042182344463544980040150669104945456016740897377439766055620756482861141136990511322286164617482491310454104766036146204676543183382706621072091300489073288605731922637654635069672613051499336708920297378375134869499307799467225087523753228570263603382246782829502274522776115141796149203268391494195168230329990741352015739276176764190924632726617494932057686225809134088229739224962124100136670189297056271169692965102243180528471785638577838044844377966226069777978044066114916806980237177603811140251814478053240795884903532583497413044973959484597822918414473901417713466324610182843938734983956647939068904824440514462550007964901047118788702542484392296615889624770875973649062662054718458218442898091088722636436307446986946017076270778874769762704740864885513988287411832650187092417774941300658639314831075011214014142975853466186705050087665043032327276155641898339726534407026330749519493647215975387089030519318992792776034803377497725455859125318626734689294999996676670467955797363457345480859190250171661989503611724861459900254487683206923925741487785398452191150217344601817290545214668599545701382247412900396769914178311045861266794189148993197996852663192429535331553821512570281393788869936193099241176159951864968986633656472444207041187001770198351320104216075627092371368368624572547515507706638450278071342270836392379964254243137078857705861898314485169565638836525054709385746397111991811941680235615490440257376060626357033098906165376132188455205595370988332486507649119370731252658912609595897585132061795854720616706156585443149533665238784102465127553560384811749654411013108525087440694082920887200723802788511742431680780649130233664201745542202908746398082916520241077721993314744474202971250299440881624069501255245587587780663083202706057800668137120873537360090047456277679268769238825379825453340543732405149250655440194425102808875167560459615775978464065568957751741805824260613933909515899348501943165768668870422023023492380756271626786229738790424998368309628831787146008038211916147876978578111456883410525648842908510087947178749991331328619335711439029865690369796705711972911858533552579127080272006489542863316105314405681537425525374079332192856303753641690549059357912727010617666441916612899907204661600407218872571140028768627680299227157033957735151921897501515190325062710672232990738199949124812298285792034512273930393278597146906879578576715614675634366374900720941069652415237476857814781902632378641438617288254126197729912222982235956734062303183452663973994248391718809758811771518962244191251984575278770720934217770247030999573861346610059209031158277462677567811589038169720681292401455390098784387224894131075848164323860795466641148131093540692407202504498126344733886296828528932349976235441810296567834281417126682985736042210232547136155278993744075375282521145722637118910363911992670955658016720026863146914743274773769551411046126066709018267419383542079282280450102739750104452598625006775973326871314914064405086292019121124956335525913749976661734674213260940795802263281754203046694332547673018708982455191886518919750841626345541755448431570358245679903789501635441057269349652753728330338314623288095161338264512876552883892690814377554669342044736111438539511819410076100853968089752643598104662107682185592995546218476341019322652844012746836386079913317052242236751698205500815821473821764443243751950737974181148485514932744479590126086234265300869249109102869534778192239077690202765082344058578164580813581408860385868677807114502943574026892943226150255785962815830434822763656204619592175555104767193062782974240691438418400582862755089142752391479080293393194663158219396452428066331202034632860835892679554793540043623571786582737191733344054695592250582052603868507645580082153425294617900166590405432581678406374657255096230983339360080770038832386442400965156328361620758352521339943926814288122957299061678552807519040134935279190372015246840531971691108231567999268557636719310883643177515179570304032476345702219189339464951567487789725091589635620935982102179353080349060063175728926617567191032437468059824001646716965323531670058861283035498620815867750981060615115700186637907203235212234193724207260195576378252287516930184980450275470977847362449215067739069142312420781155289722607881939721912004737504716616123585152862347241937022141356718308559606623928398323235112935504054887382076264980198064769963209791922751118168596089381110674486526077378456491947464400879643582126320807927642746442728428442385784922394189497820818875586764960903837368904678147311436858656342549019300550728568068914297270491034910538600007168436247831781174829471812189462155787989926472414298004171298267317680731787759197009773638037102644710856694802628214236886625375811347964731244185227041899651724120521542157019872907695653723524621514577796808249974599007140770690854438018265162602488381775848732271971953339462817361017102098174987156868227360410739690385171551185447795318406119450189708549947447721560707664650816563188799078711826139285553136979708611663311646171926072151157555463072035718097590989873513579499080450343003854934006932621246347637771545785351528809954701891065435418460669778653450449732156411562637366507019548170133817984719158304854257496032558942468473118270615182535991163144337911142396410744342264868617357492923509939825882497540790112110323645427049106875154942710752064682413388222354372555153139335864678744834550331158555591271143001590617469515859746227470420695272542139545757371793890698578051462103913508063844036951252949024134519213870728170435615488573735800177048991657596765990812349186207568903037475242831276082786169653620010252429761977872294653194925849973475869964208420289808272626055946417631488551115098863992611710926463235718005083759728512367651470294103639541861812072444378294976850591372807722228343434934001260160289800443095767936372886472472920998685802771454350492544033881092797107729207251704726316701439734727299193376568560391315452052704776011394091286931668772573944840551597842102811628862629747911658280035649233376340793113874012862766814610031759694111596749256040495228492800670350640451685115592029774895814780350806661688028262431279272093584031478371023730427527819277941840622668739161619910960241247092497653066467894868263967439050151181956565711594155540289845470127719153183024647707644927707838983290665909186794643275269048746075713860170192668366494374878726234620926722290321704720031648449189319350555445362307163035049506073423531599721450189638973681045749297453104467254660209157062127207351376199848027953931474181037017368686468553300971666824536708565627247350301060864687723092742072262479017111263121776974899478285349895454113340256089847407179588394255763883350228475822907574458594388204174606034420341086204678929857361467722579867476733707281036237668417230521172896777043845816949217470832636861419518607781690126692356658907604324218029842609108597471067331692177546383461658494751639567368260322596785703352382078857345851689426627646873582949698994162005534934109753734804942624488779583337548751295676799009827119130052671730495634530420886201828553755212187794200824023910462703946390615258692755197800369872269020753543685444228910448171331034072255565191927368416089570823679331600920598609515058915817790875382374044996056150570220859798273973553382614944523863454194688690422996375804722306384721852843953849309689844201522953982201595237412788859720312194334156085383000650414562037368685568582263703913075398437994640046915809413223698077224289988613526686999245448742841768589901558419131994790384192515675091641939483961009717048465159037157044973774859793166817148059166593905196549432529418067386482697504942546121991443164890268344432576674838938590925385519944071040449900898084258995829463301284372846939575824652302128646256345041219017959377897839893145517768440046171892750246373160211086742468741204534356966458052463653804667929564718301359529553099344048449023286256655695798048169216523701067380079361823495711146268112874666811064846211157128438589016960504957685555427794409853239035247875447077530876420492658063099324458616774125096050197003955464659349789420389423728617626055383570206228657674391523182896868816692735698215582415040481797139824815937754324844012204687460981493511703410910207912889101729700317157705514798468790103320122818056821872679500903322264876685587841078383826264435306385661373406068720947266597933834112644725934095920726247487110488207672707994075348382918244595710050013884653648147936588557102641602783297364604948855243507648293306336305654868207849645895630292422417787938008575734950255506428808778003708380301664615107415324983167069811527721761394141102268804730016187043596418686562339138076706253314955063171255210548142022025509882488710416462651434476757785930028839377655796433825641043617199629168566949184661113406029342398916533788219847773340930176013678193140523289184125731162328003201966220458807197298376475868746960510996592659006963663644577452242764617743594292225054025454225664855168736684705014710819565488305302475179534533878574405074346905279565025347681661966317339019706587015103326586382716121928408235994815134747425156033703447796533345269863675125789544089510792170537345961708857893258892785896925229061480169764527271443371048354183106260434915671503879134236580818858830947252393976652012466184845913694687914226840151703489118534895924206085637102315408293524962917009732299923890023662115518232517469737319036685077530612982602824224093294236857316108085656127037620229373887558363227541939504632216174693559960483942514866102711370109717231832623445668379168279188701977762964470747524184687609013516493070221889258268719460654715639501403367647995762306765738845162721073810676402633646378503737786246764524928830587376797156291595920881312735109058666074939505716590969469247784216389706636447681210852258409858170836351524204241068187431419335395850824291412930043162042315346950683042833638608737002954886986065578853499008814771161984351388144809106145346860688734954296012861593940149518619674148689838380942081759503459994883072803463422822911606426713086166631741914013140071130543060034606085267043943297033272102904786050363586059205266105341362502213853228349089321503765645391407410028598120169984486149700719785725731693818334028461324884389596361011955477987507109907378802626401108515583158762945369190205951046852294393918911984216101075407781732254353893988715153256016587482362044348727035449628393358869485273980509259866386516542275795250058281345215825593353603764704468074552760476557172072301865136812071098821514317271886659927935423333285133401958915396399343714504880322791641467970286881288877793703048289884767364251046752076797806560817320859532010897766362564117433693330125081576716581708463087654062187930973920059919209432790167750337889875267267523656248895331750413150234555579039972085071765611079794146926356834148588636403892591206389490509765362817290292372593232961631671298720770637636345346985187411556585507922069619211226816365110453779420072757393327100375678672726245866968062211037716391304673123488113716701164198930988524966463602047100494900744396379844398653818525451408378428675674828729362194709226514968944648370489469297876738108701836845254377277262465808981183397842619581068438285311368510754347409295774534156361243246623600728207865474322218089170042284436063907144455881453865827963268657315400874685796459083591745721259924153182434605544261218323283207609886018379162965144193296232374857014087390652493172342017277678928039739915938568102400585199403479468816667862143518819884361222635395491244250589541712333683687000618329000487527682953347212878754216875307729940903676992240333333385118052390652590291880862458698318100330131936105137490843875642700252633589140066860306976176915966793395153897941558126140394192170697996532044054170410964691533732627296525183244238529296093106645770215733096116769582946190825409289178119933447104964870764711433983945921360343851198453194771808287446280343102597718014550011892605288404101603893114856880433569660669247912117898579982695675750060498758901706786381170831032468682884596490675754970152684913815427351452140584280508027391757645612310944113721801629164901551694839909068458424880629418937747340041853664679825258060693830257078264999744659872115651318421198721959593981397448823142491334888235359011695168736861184510455172297028269328134991635682079104814586002474838605876610604118425799486613526958881230695226871825073742795308042017148309044958789021974310483933111916691372692875363767192286792016440079696313734943753016188138058018415471303181108014394023397887228575469413506763678711982300399352224074824932724279447761747557335965910882554090864095495826960471572817896288322698635335224707120061668372116824197984902741425857972339327390750717403442286493450200659646469923466369124653514601063942276307228825564680422674388581288775373864582509334216872424531067245347069919235595732659840378390508052651761111058767153842938488259370886079714523616820275653854375486099142124336159257054572964500255984438756744905649915251748318858602569601653949898309604071221902009229265589997570463742259039031548895782330282776700703160371644955296120060864505428404957202078297318202764274458796986632067972531230251419989493054174872862491375055212292999335762353259702819038435294528140857527943211024517046359121946300823703928785390125348339453170458596789844077701926660396711021392181431558485487008638247255543422977128457026727440988452957131170002970771096851555774313246636920150102920475891333891874347185329427325360712808459064961152059152114478642019462588390451649419135837203176317115680176985758586320667160122241986270161573715398810147867987953923380604696318141956363962446750343327393223109816491699168170408936861166683893106610750314073195536511723178421770067403022459997785288376235145862591509098494521610043727264073125402613678858274820671212585409892359187108590554555075419679410172762722191952883783757590483709343225930426711200613412921048734987173705898654331003239460496003806653276955450916380220741009671977598604056072672477849742999730981742250052156454685373876409986804271396007620508422405134587708360338125762831150173653088141877916683270294059355131496009758441786876632583088370943430358183257466844608406802258662440026532386320644575773455464688606683072127529087000635103346852905841599180501096698129627279842161732057834364714296444594275484541201257878657270434882722943477631245033438229308221744246323961293765637851262852379715426113053883452311086925148459292935818075415772335585191037258957660357165089377395566750237475841587170505644974013662519084054678628984695475459401543009662758287462458935999162314272387070284220210465060842707191673761827416025935476675959522248194651152587158598117018908750223741037310710845214472650272290415837453781498798409363960439867390636489942028437334321991266945057098531702305017556698598037720339833077325369114532235279148600327732658480648370797441940625630098390889922608869881268959652897914750412647704880900330502333004012007767207975033417435661553768858777182200572562310759350233132372151150950746637608699262545916915393220697378497426420658995713897111997323557429432326005805076839652323405004096643885041081410356530222783615841086516033182719570305542329243184740670720922746531146962902797682899688498689464071521761631861015983877080384525215047790721430731608337816087651557090173296258836579655424864658558115634575296076466550591573067679047735230391617945085101338545559105373144225983934361346290895445679079017612135566910815003327609644043073611335778878655718608289997645722835423349664671998235324578821894246661459734737984499611021477240970998566993001878634044549959587518142799403837808891082821212202865100303985248942803169689565843536539710741223297356672624500957213457872348416949130448723160901790594456569504511772028563505205071413918145987958763185602923205977020525375880357777894062696009176706535213284650384200492619113513742646259074684707567965510729899231404946909331996652331750626811593615819579107701524822696527771953233686042602087072212237381900117341362960745771776009658983083029578229862713570184824253663917082259303345871330599091829376435869105643821017954593142009957185337718980792521684845747102041679025656089717616288659108876095673881414154239651746173192386584893142110553055248510535480879752273509108470956845734478204943219614377976894896347566395828965902896803589115760990397632519101899965275033360976455744967450572411748867231975382822517727757629619431687126340899042741867546073951202146569843860102225824342042411095077985721527351011627640137741752781606422785840370683551046025005992710620226339989365845562992022610670094894913285945727474943907192850939283357693801038503637358263627980385352651612784473555268125014133546340585669134881069415133946113303566116975242510359220968578610661388252948429880445444907268500648448170001690645900928870049448482318584440666599088610070007092822496665707101622604066184340176214244118374665234417640138156808149622367863409431136910338118707196012465723613401939224233000088924203526002903770224300490757405520605615252973852424953908385160525323165794599472013079070791216589376369388001601625948991022298955905532423328008505247788094524021214161104503499859897912440910110447808536928289904351194322156941646616760068313234262915096006795744996386349690583957282880680985740851667751197253042010612875771366652093900434070247081963106855938637152966389409208016485867363967271537338569180719127797066793703393302770800602449042276681110723508948624482504637073212996903981372641325197297857603592617287257940714388152616096098444234845105588229205341914088983427427199475983109769288552194889585073498833168050176861966383537162821270027321678095639455550156068632460551389361896117705646486548074070171388658023848713542360018723944329494449809780109014603390812963182182097685375747286927029523376400469186223908816978947000563573419843075641260481459538038411126735570697874900724778353005234932732890832610970140171429199214650246113456826782268929254987486985142920465376609828414528923037317887066388739298824647109027611152210341258119911690152272000824658709991230117495288953464843606226998577499670001067003578500362677578052243684214687377091333588015613668660210835063046677373692883639110286692759526316196831908787094157047567821624840796562595376658489537196824835473135807860176500622061593700973042366890669484007786160447096376089182825695412811926666838248818741099474173239191377776953699748712029675701838820758637837052218371372970033412687269728346347361365952024827401270991310301810013515720700027814965981746301798845870383044053853053527811097148229278814035131579818569758867889827630718025383027674791785584659684692315153062351974395921409886123533761925594449995062019804205346853455181064018974373676587137362907984829999084173851600558499558849448468918627344432975986395994004423626213157704891682567692482691691675889856828113976844838877578703694100909173574886236886983805643668014448442250256448211088799910135717695138648036462177262175016209354186221649570718667245337429422096743689750705886940570452832015593574143477590976212441243708773505365756107536873350606147388851707075153332847475829227736591310406140999047074120580611198584255635510009299690699793809845384746335686408020140739542378702742531336566046310058188055151276675513135112422937546200109394801321955475447374117146426121005561608052760030895374659480694286397049349149793739418573602619942117855712984399457698071445570048383482464470901384618450574841148523005516713555654487189048450124126686902017958248591597334512439581024335013866254807385694025663981545429735976019754097525303880127484157759336111142687690087183724571562469453152359840772345591920946179328647994510735285990656084308644505907160737555712037763484428871086155524867020195368421989640491110642810882918042991122186662442292811726856736968510099789574674690043630615784382412721522579509832563028886195668860649161018446702934760701691915904744586763532744654690453374348339897146709289721104576077957058818031714544936716200688787135099396082681649840942014626256472403489014193378520171822648984745490637249906609348847727759861166170976423307923916947338586669160600284229153218255038206647133419625322274471590010344081978544865466203575344573743789171130072516658713133389391244468117782674661413410623944718346824323517630641805796370184867497437805382159563062700526677431302434182945192201197696051587961155077704702209881102640729260845872350715097335386210015250803184196726242359787187084413793836427998445886841939946158159336956434248997577643787521022566364049053377007274622202757274116700078614953137387797682494165156452538025190139209321436900463095443018842740409311113930583797650194513922590906289308105644639603603581693607355184865871341679013390932337883331484691866756635622061595901275998657667257823717385919726195452650694202293256103659929710122089412727043173518426193010057027225045532903940511624390755539687101396234128732322722241908495656615529192467162341094151652940531246070790204154573383517018326018362052977020434446826232915730919714714584575357549245229422331114291324096139683505924563159347571211362891768974114395134215934716260643810293982029687161059891978681914868208394607896776743815279313929652968212502416251516427754599094790759627332921575541395339315453268251284492003676879294151404518934822618286035050279571703986792839178260708325099676218453039582376719769178099644604728305921341674984620602003399599132942964782240361737376089978761553618231820734522315791991779862927811138577596230353486096326153774089323094712960751757583282238728813583529302584196935236715294482600674436383380563625604119017282852232935545393160838040566305155563448451647116803943199216229300689013627547304497857593901121646028506668373546135578115079253445769709918561983767716108674112141566590929930002081077201054593143446354321699574299606693783788540753016261827863476472563592343276270335511159230353413772712770910506468552787618584721551337658210234938970398855004254100381848427451422800643275272278558773367385573037211850935397708944006535659667117860054849833862300787835552736217494093456436380718269553579771514964456115515331711282475442510545456508686518902086635092940436157737025404780463055969604360233037521785212183311942639755418042335582002145514595345846103594207907826904844057263146648848168720611549216527532159248896018340441413412829680128522415404032823766784223985985509207532317924734019158163790668564965035924777514083540433511621199349397187213253029686687468555274949367900453749512767706349303232229274619610074692018917857102927414564469933078298581496820752039466506135844815225291492757993987944560416933242540584634640748558853766091598755178904555176037737086754862992701140935739500477468116699806157778944710196680533289663115619565282395020991701956803429861373635141727153596923208879178147374863912688683093674297392665428605180720849349664762686710400212853276164834911645026761552958691051162545518796743684557535168013523603068389062590047034582688668187881157910352865080615271036406911905830441997343064161525192939822515374604474933563425999357657010621366971984737281135514160673713327815647223552705267594553063881343108537892377493530443295708528118188606820418937741126843030448627062082164576166401450858018532471773262786209555297867059982081382398987578694141929527069367753188234915311637335114109462004925758059272759111582625367060356090534836103180825499328005676457723865489396888312062950692140048626006081610176649675413823097697546419974709966769380349345967215885192238174550611516877878305273283507578230877143509682591012540542691689506230383770436987956752057662516451623466134371371823495527989212527539678449560390877378235308959862036556976136230053203255233591432724913278116562686587290735443854577627472198829793120434206782045353666108656996217016126161097645819981257091686093093553969612035360501298779126056018953431904995460989960322406397153083927621168965135849004322369673129166488232063726932960591373087566046931556639765587653400549514475729208318773283996152008122760675089424200446061991873227620584291962474633019822858755902243181925297845123880817694703723086787128341773695023712367304662044979079738449442041129421954871294546506102878298052457160894930911715062059947972954194063797525241092851964046488536925682620537491453519382685353079521364750655740790396237032863070657291245635367997793548732463813655501939813521323320741521539763367112980492984126528931642627526695605607314631096413218277122030752179400769414918041604744663440772091769614592684240335759464726808007201266356638864156969201736550786246535353107443938234563271664662871191947594702267424338458161833775283551044840848403739080728400117446519555304853233988015929837756295621828979750136385444908758455100234226481698830916041473574840644551776677977068559283741675953468140100306983954089729178809939349123082415213967861949546982106787398440722893293649582915863124140779950496902950408374018298269214762324671266359359510748110138372519246881957575899370168383189991568543687625950703074987818012874642341717839400196120618882596439300797735507183199729148506739299080388127319763325139602042058136092032866598602697133254317641834955693383896347563754586465175954287467686110531737887071843349368112553867462987265970702171234946255553148252518232421435233333154177472919050708130559974460928300652032343482036783947053549865325338103282089117625318859686660140176438286553247063106844155226694693271010179044794536270921206685689716425717800381712609055902725974539131312127729218242546452171781814317326256896646656463111532330927261520161412456284796018446298231068688612380986724566391449951228633956256503722509462673769134482883786403121247201968216378755230323028056253003781147417866893153799710829858624523348707209011957809465093152855607837403056173321693279053397869464770998870456830417415150705186307149133385464897951826840609893592893756594235338707910483626222467458837544563741591300526230302210548109297314469719904874831151342280873274199097200715528173588099043109383488720269049605210946830805150541958739038329037998346151586936012257546293349656710462359676530580034633441702542018971120725158884743338908560480498425178226874134636019187674223012847637780689967700517558824698675924783736746248119746665944412307930708595543485593093916885477134679891967965074694159131859828677847264672905848765254144667583077683345180009821997283171272699625065146112160911963818651508271899250666836886739104787997280625323735988037450496492639818672033743646391326692029873565551169562439273172448203298245782364349910797656805643339279240080488787374833862555179967250029186631465281026181466131562779728002459524895310183081948161323904284805437246735039283787931655177578011835057319475022053017530878122128566763772454538629110992386872140219111794663712587187152507369926574288256823863477174304023223440966117300271700886864063462828479472739614541017645264394988511129839083390705529208843040720769505879833538872098756939908637596029761502684805298348767801798886050672903531442259502306341635226876521401970680547707003955288170732021548683300197838334140186189375650400859270177558827127933100393783007228782034840415397438675950586616713121739331617292951795088937433244213732108313408018039832954251261924336617530270282490709426278565464414669288655648724527090233117700447677761392135809054494095867475741671390028040392092114221858229739953327912325389583685022440864040603069249675720738479627480133758406148691154357329651603037514961869865884606902682946781814887974357992948788617872212089597365552234002821650811170491177698080698073297625114509367698785131727457947588969520901937034022191323824628900628382055972588209241440767970780343623662040553720526932688353841413908911992829470163133969446739730578670042845079079655933807122002588719876511588442419361949620493426211455787175712355658177406484326553134542915525043277391897694463635299534310798792476086735197225064907151086175234164240761657820770490323172702926570840755828691629492827632102732091076904901241345442080166565423205640201052535299166359291708048869564910728275278290433416350995834705993857374689461275714744627601033412238131100159090897649725288571853959949375077304972707416507091426743605672248592326108110247182155699090014302537523932192043894008127250466281387432736150641186764793052216773866366290052477296568447803497261720535439574855772441124891763648863725664877098273093101415809235345493903327514724436422300465451042630787641056430129919096315330600437837147994857131157870035758342726741393850698860093728631380815695096583965688313497798348649991037149773376924908134916519853608785617360561470896026113166248095826895373640435791151815957692173111548224497673160368455698419825493791632550014767472771043196200423173494803303116028835965744633753530381823948850650283450639624814910012390821146292107011844520816508610173846581994396671837996867018343514644415552674275309706470179720036029651863855993988654745641412269549589564641969783677675356952162835169175362127232244354973088273499155077578753816955617909550831185846016457607966176109950214863487451408140776449377580515791528947453339625542053675043225851221175656574564834615669408208437663160789938229314346922900909987431647089524083148173012549638450325345196281237972511762790526935770997061199368672063530349973361761240330345946539895427491006414890094597548666737619720025582650296327928033866308526892671725905864249523782392318231627275975453577395155555573722983117146649063555711617997696269409236037975559740016302954202725980782616569178343408299552803157935764008988404108153325148247616657632888212808659969232622738551750008856478460691140440551446567637590030187524501353513327201940499849793805589467178347052095715109889072316729601087981385461932606638235074676505783922467476556687251041991596861013209011205824127010042736959874139843963353281384763044031398770093710947775675177116128642583917655641908814155801502918316286989379244823174776372100767783719020249429247596905707777961004157202571842959742734378590307225156691714631394384820153713784553824380213219095639361263300684949471906332914784155231208209485003623627527354312722312530474441638086188576702195092890381648837066749664075750634739030756483140378376384313990823925796676574886154921710210783721383300451036061969109449717341187929793562467175457945397777555937323654720219314994288696583854818021792977630404631031825104572642949319392253557926077114238620013528763737514594591472651810427433228551671390216475331619272416355810062147462395597577886544392519215281091886936811700327509237251455660466257912071249199400138931634786512213902061284790425136873315051627429154421325027523050251481940451857530385083490455293741058443902547029326619747129626109599968124059803044825208066924728319562032087775705185279879652044654808517003413249248480793287257636906383775741866606395083357799789270465954069935674228358211534853852229292849633700739047659963445143218354014991321675446956701467765951887951656978931467991375159820676901481112438566158344933195931243978169855027266713620867470832544030236743959614724924636057203988742816805493150490941120329313807734813821577201698323524592687832872101470367371474752155113841454913127466095346221397310070208288586669594304337374759799152167176593791310576785020625780291871136386221915223115788560974564189191414756043441546296946788762421325025720199699556531417212998795736257298452171238268805044073666370933372496337185638985370721221983453400170801708290644721155095756830354179556964309655357246216613915280897632149300641730709530849815373540613738490924993336904413944877159988599418390679080490130347980421652584221416046036165410148103405644245668297486857341357878092984287870584310792748541297303688720937777852090478425383528918814174794534211859126735481062238837295527186545639550279870027818189746167585540823719147789728476707040058556877801716421715183879373999179747285494961795465785873457302168353881900995107828246625090238942600409588819997295983977305159316811749169726205504618317875379425175335108929834377379601556025448460942607918985498190362437865518548176309745360841884970686417438776202252724463748996952227031566579116630756299087228498358516191645782558312598076803367588329968306854992545599948577185213691839343220309795533730930536593278808779981039319369272034811212962032810687225892465571862144443763981511972330244956522777293331898258975752011237006682150530479568807114472842419757412251930917418635398867191223817828105881187531080897188086692359659629850732254835187002385008134229523907875405214991585439470648774733532215861945252715876117407133910529638206551579010250396093231478790261900771345871015941133926922394171382894432569131483500833444923465020334717650466062371942610464494484070982975179190523419044348755715545427851162827890080199734781170942303729874363098368400443429125980118557897359628257385807598079967393722051277532509734556644383352376668257962181167565179285320611657350670434573103088929400063271635767068251351362977418860788624473177368133551820322209031574133993049247671816004635569378339762559583232468125208013351125829781121096344768045543090518653845511492908317160445885519054591285403647890794696120558735197900613595618202634720010334003018386431381796891570533168017659039613847752186063646214723964627715682538756998931687963691545317320320635588501369379877672165481278227207692102623733280213952566548126673642892485403745203035490819191195967229373271020698860176104787291260540158655153830364254038390357210612628755249709685095255274895782089988766333636935196101529597738216363694756140547696700632396984726525888649458826177744556655451979221936838412033114018704405410387462426540177796924851315874518317733319122243733798801223873529500874052216349220274521442379973941786779520375803676631016726641687020103750853692977826594083266385116092982982338302643239700801480780992007970104896904330571901958849902476486826905489702340779773474721779784458053414355889988048009304128525146002274702733878983789082145156118801187403354368283587364174097229882726283961625932598551097352955938966129999750383361534302722211473638717416150486068375837642614610856758107689720277196493368120567854420796004501543056975671771908598534392552753978376258254760443997811840468435852597118903445185294985929641641702314240781980901100616437736376749012727392780065201912220409467536420614443644368824256474594856266179423819598849558675630557461357360417022281607025391853958841698214387432447697601143561229112018462868517122074412594563201297263768940490286056905193504575139188273776717022113132540339313961360734019461480806165224337624553555443885380299558357866924193976056846835023323232933180364460114487232929089887440340332932232379722339814854099257182450519567390228500086561549112243168935994073829787398152521487849409354556371978258915281853579415637340430416428251942316553706118572378082658610433868579001526527804131807203119396792867043764518591953755588258830962663988964218013880171858541603196138269506878124344574005592548378948567474409129450315631116312865257680904801982124631891822217908820761816522437432607227213568407304152759173202498312869150393733016846274930412404469520697024836290886804039823923116584443026564045569894277095229944541827878155691826920693927845152603131606329011134420575681471003652553748371823942395778565475525299749182126568517374323255506791404922639370728432197061723641187008684003034874053928492001438221653260854620087535093127044612129788832030317923523637388888861712296883018111253864403416482187935356830234771592516925101378996495129885321643525960894897914111705031565261460711886826798641338298162109180121256051726772612676299781130139814162274200395098305949571817525333500288046131928186385366460604454259596516759054160145663833306014917238883597610385886224830343794032931600520164163051721211135186630798543101528204220479493250588128360987420351206582056475302083265677271197349799443939058800080701878385592591479859065587419045897132721626242695179277251294954049680189603188745682337101737420230468034578658156350143144181251804807341937425075566368063702054652577850291522829223908293566547142859125339953866603213854495244906734528431086047680491937567774417823236710678065895129469341985638617910298155812169267575122592776417656037996236611211954060330552524676432644888255503967152989865300041606550384302818272160558122392134494102177581117548727793303233867875542186881042531175424180378719114928523272869244297747521916650636825549984048425145348049282313819339259755003444743581841389961545375758934481886495471997156521855262795958195914206675270667350811909017165418611052647091831097848250239604854238036714976991532788701229187812846244401603433439077554351985462379656395372540662410945002739153537711888015198144704936860844018370471052148197751068906603206209414568033727789985860914455030641864012097981982374483535204185848765834124744491326912592155251690748324749924935930594672320249727834506184686489296665088664240181744652622933309008365890460785070382307765549218097217453974519328983592408368030214713012012556300267835638497496388824915624690456738101829876307173174358348251755603145963803576888192835432302339578812969852034972066852689603317616246517958300353413503121285418454473511973298905051183325910767543452772003198818567673830758914193089862556706844905925437970590388218415951488046129874533099885700011548446153840142608072613408343169152652076096053940111928244055946183763459927138778481870208459923468126451361492743515651422524224446915884410580655092287348672283527836943786360054259516202010351297171369469677051926006064453646640772269712882419807536629224095580178911297866861857111760568454734108147747310130164665353398968783964895208946961278630437535077218116121857789851000474218846708617803816137466131946268062451640733067239139236625796281495209478766493499528492568026579050626400463089225023813077540428820623620673775486924020207134116446154768453887652307725829844080080870071124607698225463252843848874661794197651645310148295366332980301460336964158211357635406450298342056338879076672000829481298993691335774026771081772800460976883790893213758145051154603925849353066796163598845655655524280488024930921346057727512166538599622313825526147230331931484933993127185401383814112400763695775043496919891563220119965503156620586261538595302344108341278001690997048060002036029690870293920894271605806258575219624314223578076001112549497760529377720883822581409991354459386703128194032699858048555632509103119443505205272013071691323976075198650853587801219611896007699772421146194882679622024074680767377974643736247970098492663359150452521407935968573364780255435173618483426759012254237415237117678732109496462698933588024261908435413465236820209627833785880390421686773904134805874798944595304661653752968032219241440462232410487409461083707585452081555965997233940820455502540925109633584840575331987189037729797785322598880575657534814903921657349697888690095203364250465936623258194748756086442031152956351781078259486592736305807863722432162892240256561310041372529796278270770847898533413244684999909566910431308720989227939949646841583003463480283889454654252036909712318145778465040102752439356382998868898345868064818301877733543881748873557107539881931489929724560648521340958092678162904370986540949314609068207084831872924519340376267857107514185723552238731268110783445324898776822352508525630304796656051696709833559551331959387635080554316575080315418615420295137181285351364462744981805161199093347630067283996537603028114587362711617000507449919402945771749178950270280800412401425319499454747244921765988778366725429527296033182879226048932567489227604907098147330002298445583525458168926937821682731456219538142265376110628112601690861952131434355050198654742950447370356775724819897525917365712241335965550330785254772009426571758878035334705226788539087152353007878979520302216076402195664258763740136635123889207487387104422150195344590931125294047479364178276571392940786484942318218991814362118896840152261899172409075398195088499509452068758052987056208183191141214157482628791922555540428322426261183280708355713816013834552291518489599385108073656349876633015241309961626402433434180231787321684894320503828768506797403519006653362451973770178979488102817917843612233888328928308046949763431731246774588074165782035169721106103115711875699913151334261075379175675905422612850407055068061892920507813569413747377457900090415663676486679933952666556969383235810288279849050449956700326144185585993582440252041358113497187839787205591978085503920252746476236464887975589067018813398704953466500988828158086220373015319306395905200471363551192603361843796285763462236001448742139160816900684275061777510328925385298477146630605082776715013443827872846042966316413364294544621937331734481692562611352977753534039591357549861852616100587008629571855392521285672330677359770473510784671769420766106095357534279767669493541041510353711251011085017102918525283165590598902478757923670351726958329824638577522940275751581454044445013835182865780751408910671787685181751337640453698319406918547285129685409586559809092957033625901219320322302821806795298002079327142835148206716045116995436108665589594264574263249582902185029694217638215874736155794813765255803869811292800559474736425885395078155512662118754817486015089076497377753464213492041648530682230618141903279479850563513730340027565786391981310944619287423031500036543820152804544647741178344197663925548981178436704968222901289979091435482805751853754793056165576869837432934284013064359982241859059926458264935994369818408798966587955163881453224371798195617357769412436539387159773322342069481228313805647133995937715089531665212623222612405909534417702406746873511072142762918787779364854769681781048130219872984942776073324742119030101029213298833094780498153868914765695652785104131690792064050997575777777003706939956666887391069498209299592737017166536569331225063252405838853716899866175345386541927085181728048535188660351239923003559218879055847149341197953848092635051030679423070803899413217854006194077535771301019707995749049576351262528622482875889748515318751491884781270647152631714289330023421152612865048077010375303055640055320755927006037680174677940202506308070756614843704118408249153881555732133517335904913955847748727209364413667563896196394262696504442870038450455203136212902301938807990002806331906438480885282224237798469539399858577258230446903226691513957163637165355087220583861560934838124861044901501909335008365070972989416429976755558880644285509328595829470647667288740965272236745076257353786677473342481145715369135246947635825498119577492740835880649519841994356257317973625691255224150301903696917120971886615223686749537725358694340266764754717409830320291453915614230547575320044122710909903198754156616007811755546945367325393968670408492870145763337664619718407436129539925069688647944448218118269691041893361881712087148027071925936877447142731971362025325172822103326593145644115652504757014749093816785608477132599749419519145559295928551681208727845493029040226146222471962935493343648914062259410955717797421921152619326317553675119685258431552098593018656831300447213184957465018105004677091845797436822054028679574766453579109091794835051990781189435749514479709545018555317685063229179796018738651206865666327462581256956607755642549032228871993355319415809670804130415536202636324478487970475623516370250124908089248063803098649968867730922745391910968468364271614761139124617352500598765477188695335437751223761368325876297708986705706082260602013113931401890246109250615472908590205033789406618941837196551004284886768951358782890870571172297901413151714102227727366549488286413236777321206923790368779307742539343292069401949752983881587063613579290148340119511467877259986915018419987610323642063668663277741620156748068317496928877962742170514172918074408452808270553920079506111743485866487368845420217452997033852126353652224945141939049830087370621028159453657805183907792828392295516277176803374640448906292438607792596024351049520031575866883967718286511605707262576545718237814900585702361229606322973212681707113918009037717652393192839685437537418304808973368237681233713476060542667674793742837022105284429525028673070780174206495568628539371246136108508908197704801327888184577530597677886457898284362293751583833369025146147461906871217714151132659883064797514215300543437640060301830331148147975984196176304181218404235134457262720189966054306104430505202775301999171874729339976578357614159283666658506254635009353036139726794950981277010758517412987807115404556169725096071730836577403026765068016798575564371534243796928492330538674912988400834713856770610479890520302034962963431455263364277949388455384868263613611116921760518510878059877263812169841226252963988320379255116415967990487918275394565444297163887030545635730362267235963116365179502774609427432561844497051625993241133346768152501395834476928340181854601948392868891523880920344568522765679322512577385888420392708349205617563671873402706550729953972887486320561418124000197611239813435469511835180370748953262175153433700940698362182728089227272311367111047802150025850588411688582069650390966153637691665011554680882096311910259409868117634302377949837889120509900408321004441995880749334601482838044000330751704035016236803658440091055829551941851748465053863316208538829338494736311218545780312717806716962276439156329994787570996423402860346450853324898171631199413553073403485163315248023502715447389786295635558803065251306004832483868388297315839611463806210981017759779958802324631290959598645425747516744653089713543379016134838205379477262533879548426512568819779069305655800112837527080849273038225764788820242138224870759133224257481132951351986585350376494658538482448609492734188694389827246058866359050843104037260424074371948456646142644861602411842555695670865631285423335396850722946160210602690129245935542872407881112445745583886024740915434960069517443409922247756284053441833661442348621102421923923107235523814109354071745086633512799285898819795398568984240964185550330338792644641109727640536337507565831044403333488766627264646523299006761057688254461531092592079278710486926053073368420382072177161148861924210121464249145026521291411085421479062282016647814575694504482956836322577765980099905170944073406137528371279530422228546339020053903874467121256832790567865517793839486623586335175128641786462657349957975943016464434353194629215161471223391781448736740637040349532386178027828408225585364476581728205300827769749973475483647768918208157685275327764962169280321154002787082705844743684254782473942734303289563339528145281111541347952286524271143352354407173185225755269036274771898972006017995677952333308454300954605848795857406177565121721680566794514247367801463788242814163987456414922417950406598645710348340269850635941122712443120041269470980561076180377862750039813014461351601422908161873697223129244899325156923599720202792498784394237054844821157961543014987245422872689343129074232581451824307415278939505077073073199313785533509626857071167426952676401200661782898201747912490077332197484512305469485901132307025865258517297644437164996771523434708235000477945540039123480107949504072816907308227056954354102348347951783263826527780532111988577853189512081428200176431432142035098163392315209844170657402423332643872718572205856073605902039756327249489190855116290117967120563769237208135492706027611638071879618862703221043587930967025166318193497095208362450751672296220362512251717941171198404200286323243640936066644577988655619501867499571585221617795824039884891912346680598815405447040982094802942222639495694242469898196704574477429282718971237244546604585739723693802846558963021699479068520488957925204928228726783036636381394062047366496699759698472276833235699404276835789159357430257043043648260719084369239029013695559268017568460475863689749956098276373400011077449981151064207423239213153932471534724530020049246921965154700148922600291869400293127263313165090417262112288770604011228283984882780498687458402676526435547408859615907900225635301666525700157939265638892053766293328302130573585761465134202425849042379577911536887501518838830046807028462428698349115146619859893313751590715894518238648466417227539282299401069568610663624482083870897521576761846394035287218124533922740284390443345383278702369259581076386054365527428416063934853809748092133632899075238842195609768232850214400959726908673228527749157080359415794530576252719842833701100334962058343164068348399497596375836070806088023400559128140546445932687967331188024090257388147967615109421602940151615276827255347436094622110703412421601821014148385779520533116420256965155586899793074487815506626793474912581207690293383851218790761758682344652422949735383776585697949227238797711471345330684177899112943411835260609400327412670791416875888990797036792481282330267777139650233907468160457289155398952758164510211836003394082163497841950139888314257859864398431945365207990572178690467145021501950396031046288116940040238144904935422586177019000627529139236042365834033916979657184122856665498279272329267477342327179797237385654193152956014054649660770323873317213554798983591652882579669052199967149276660229311677396937857505337234798787388386445713325774502869504599611980715855906006970212702767912576607953627338968377071957846263671997560788856354544597732281929239542661822714015827315006221720114742059318880537794825731262676283812481476133920106971849334021089260034958373949132306479494868753473694596188030468955393953620740915836632700930524650375650541737535060163297939729654112095079471468269424363612293208371822544981781832204534325467796466827950829863202594282738180648040017320146388684166766267757861764352336558055955048669078655193337574847756637794411649068309574368979736768644717009298704323471694000306313172969400543704647041936326185207082104539358661014718807523652716258061791360603319988107954831346267195403285546896478515324291563281181662418157317448059370290619012277812632479561545722359654494332852653649903707443181892798877707271903443227595989710645225757553299903054067943191530584837031920417839835449937649676726116242591701398221875059174243051686143184567784756725647803729675410153400725439559028074906562387566548578090415562920059691729548574593483504759042434478478948111150843160602631413374882385792450221694033887209824093697393600070815934681547400203977994469669822221030578761801075800194782174695386846583097762188683072051618760198522631780143316002659896654063835092583221571620967664742049056991259161903113846067661055117574516181733160290359734058594583513438954748817589340657157884380478324298305100252852159187915718521340282454067547907417378530597864795457464314205644255472856473095874858327207984020875492778733750535649485571742968792584231517314902038867688696186178088519500058805457341055851751066268206204157660382731695572735124076223313757120544793231329402871436258402866897247813236062817854983885456054646010323289876479986841434669411821978413769512717135791498563803717426994542929697046578552963822314814151132391340281530843033374153521927505311782345214206875262879973929905449332360231210740997446765667322615963227320797423893040406813950155738983267417629949638427690623497059502244476339075516628922258274413299365551397751977993176661244169517651325812563946307042897118105392603768130984414637657415609717862634690778380267569184172521967648971700924776787725223605856206010443163412877000297053035037816944276469933780964589699254418428722604935423763548675871344526397330367728065377702401188527490172163701488752934310476160626449153291650480459458002638135497442442875561825005119652985418617628908900068172202927882680285101489481597045859835007108301909633115453376317137116968325788005711709646902260262759911204211354825246771716687050813333638112664612906959849117379965784846312717519103493451583912524355553840712692434306200140714476232875123424179406808489803541306056092416088456822142880816013571163629480226323178055495973363695968244287913799028381520467803029458709844786147127597120957229938857703406071444127775459266247972754390967942061239491605104664027936356251270336533360498397716170869880123636178642872141173869389139731745851130173114378417717735453544210028848722031102569136345777528498929331068409841543587373752242877320753827667490961037543941625083609817806762799832335456707742046868402175019887552623856860612039798224039966776560629821804798753218835125068335598049926976925504519768937549929196640936012428159703126642475979139935954303331115394235200210690282595633842871475730012284684862166543386130027184246289386022593098108323989169260203742824637759162867571486900634807674096211471494289527277717785040473831133410550408424597997186196624503720529975147563398124172382584196126757907393285854152914644242817614023023536119332772180037524923287886933957146437789407247406944195367898660383143569640703688948149510102954110795570418962017190856588869332805926187522936518530525731721791747489880278174056826516409840056047665801407922223979769160384837055361030061214195493984053643390528372084504054885289958967720437279103849505169669663094637913141854370572039616769200172064412108752388956036686198172491677983859275621461880622061622489308795541960908941875663876030084854234711729723468826405973141354087812233219797724294473903724245572444494041530613014846291369649893888009632684013420946798046101946579015678381786624359663310848974009737051515449624909789935672197398393068960097495531631978370198205944676916128326683587837465359619344153924965743469061405778018239831845926097348111108901511677608459947825767954105775218928193092200383588547023267202459028856025151111671223297541444057401817685643826389728043526886157203582704291376311277648857276377338763009180012747502145253342442804264011470042388741094290084821162463647006705658034131708130142790392942964284103813954916274697467086414784564289315949888218980952595491147977701924466625828001424705088381736193897078750795527637855260441775334010655981363831603762013857166623821681348457900805556078071124648284685389261154927454258272983264522278699485571168521589112842444612853293689673031079020101691534952910214175895179104561027581270257504011721080102876298645096658795749018669589082808308191928192751129061833208391521055421475267000274178173309039345429114525611598943963295819285388919075434062571857149248925100445752076296545154707155196077020098601806350240356284793915756869552490715975242209240132397775214191105232398693420486070140489068889965497059577453138197120048696550641877784805516766820153442705204497837161833274520166646249030902715588659854717015085580101142477120887960454359085539625257444839647845784260036773818068603374264611222586655610315514031798675109351525100164405321148670102185945761643913797669393482550991646594887737690854737226211834690220195340669171742522214375828216137837577851498773430345201054415746916918208344386001450019827323577171952094189284944323352774988129239339243946918304728204929859790259185908171891906915926188124064061473148795005254868805923501013562962163194721541446850957458540153711592367495379533117551718428388473327323746849889400523465757404653175625970644592899658566156904464295696870679808542213096523650560553011719052753664285122475919595076103768360595539466424762698540288525485642080485162241587240724424925506150732433475546462882726190859559918886808479115929447533863282202956126450536821817883620797638684239680689414151276708587769074143622894971020196087607583926538400089900354892071179245138255289504654627939243512553734833449161010722660554062222653207316176251850585288787799824402659249505375932360750189009401434722705473023810799992434473725356504740167619333706278748782424396203511604510469534521034928567386887414625389489965333650931934802771407745546280492038866482610962145513891289886450241727338482522694324876198768880510208788487761130411761935177555038572391087877989076977970641617386961161643252808344687752657714730250142073845139976696145930631999316690890943371787313420004855827256557854593103705830007202328373687585973799937227144831630949148666682889544936274311506965738977197896137859821085995631816197818144908604219180431397714079622411878487538092806391131962285434529490580261281063133703213030978348406968437787290707132914862112543638030047184554224075472007449918839338337478296450132896526615111021009878990936251779991279891943998232605897178738259515891802918273965527753119144846091666469144327112586483947978589125039533270489257464180692547465614354314151262287540195049362924793154297056728638332170254133090247053479557330738706734510607290505018941310843034130457809657946909136791967191273543459784910931571678900353340563707383997334098379703838911465883305076722365557516266394099391324868953932445550988844349957080324480613539882080517600632504511698226458780977734444955648596124304064780431029587901194488479829893844721032607288848818806755607169358547621852982471713271476742901496638319373866141253020462213332401831304042381815979762972125794229257320587539969468274993725441883192832056485352941649982180559479154633544559778146961866367782799091754104546642814769849733308002411640928996801792431162468583135996322699390929533724282204263411745840815585715156332913845859697685177795350597856433915330444632739083691108424596301813721210329285138098119356621645875003223559188952921353363080283547009103758303783724209922051812559444653436229380914964708915977824870844695454609508577425600819434141629450702900846395665244980218673474927340459633077710837734589371897738027302761732617389591272761723417834127775253679990266079238661318798543333311706777746249725802235483714945877474123393498234896361167453277216142679458973008776986188137022725340376193218321677486482864280615878987224830697118741391037028448079365244005062720072706252854453560235995816592860090205680730486163169229982925513653614653615166445185512022000302629263133810720877179056983665478068055743504606520667623338329449822546729179796701697349338703540614450100943183314438074883284057441876360072203319092219553941792293074794167593767760245663467174215308074871715325995091329302095467092143428820386825505583483478544916801332328889660518914917049052085526933243019784271064005958152106556708978916464756967479426619029963374023225067898540740644303974569116578266833011576579846469992301632883901239533571070667123669472011756427233713649248617238464105368573902869337806409277544019706016733026348726699536009035714989071363558642908778654247789137140749428753919786248915680376729050705647330659431853839266972750066793939264745433036544483253759355817108343496498707645944636340616590162349474983333864362546931919999091752048001903507123894031359271205593894316412166868571853307638759110389299242388046728290149710389355154452299388836925672487809250193326823522554548935536278363739576454910385245501402574187036045094326381949327856872281586885459915051826111593138699661278155100674394057703838872319611480193510272122557334085430132539287416603112370180057998202946548600780406573061296968755132212782407879327832787969305109029669677851972701722057311746471860911111402614382578165432229977911248872127248553565159619590465432469046953616889287884990789794892812676710268754421608322571816580520358101854579028966089329615838376280080586404899329713789369892355020966293110323231081830115479619415129651719733775381591985816848192041285812562499275261559140690780364970528333488396263991184101570302122911743198385087922620118672880600463285007296485266226124737931602611683762930201053189899876774173040618100367148582473351459100800846286755133637625837187558916768436267098646329251149891776465425534174848853413707788821830901029519190796462012230724442830818432687467527782963848263216564957621553361439234969265567611252007753974175056136566199101901174966257553037750554764320224750957774567872656955964621757350259313529109325784350396136024045412625622256759032662709674555641615156057328675320950183195581693554546718033379080615821592767176513089702977436640097238814379552083516844754866767163406023345744388156569822448325341189911173164444170206184670242522835480655334409670770948376302336710279272839632018455939130016568740564245003468761284031155231676285754756533859761150747932690319149118797288251824537737476246984635805991095096045441634011020567336775440088961696535583670098340637001199215741633145644932465595797873501876166166693054205375802993577297822990774390044904374848930983430170637689960781202922258478295041283212930491387590448298700482548540000491043501030206592866641536359126056446419965705930125973216109330396727522092976887646893680099265298082906763521208355562147110663056704273109872171058068209700735522063591139773928137705124868110295300538750538836300708796977667727018870197303832593839783433651856682457205082740483733050692405238966942650672572109131584117038914917663139991692192402401573330544883807112498341739957536614260711572523683031247226814301344418153043163002659778070659592711347525642608685168857654730836028848427179490764253225615038148248467479849527185426659096501541797362964953501270769133013004676635539912666031726358872729949378709954234134199084045513570275776856905744507828071641951703440228142218517318688420564300405240445105646486597600747639287751070912234649082899774926203072208501033187774208185086464050845449502339372390107048710114796553451239135641508887050108189888720451612574387657705552852552916284043397990452312770813619972900657776439144147428589082960810842118523704147988665985465031934223827482174636781270512050435905498791037417081367607904753678291391624590368832375637744190429641483165123547140055340756001852984472626378897519207781436617069638925243041826464035900160462091905101897829365366646072541637428507479761981571860328220463392791820271465219858788656668922352803027574711814830479425494624224706851912619642357851251518058443845179915890735954033895945266504234761646682282611434407236453890725858053509221193189272902353473085802658114372065136686516053137340552591948671448585507795650006444366299316540480588014981028823621438727411133894461920171485289966018569659192140931470732702384085464030124523551233152811977555738297434123601771065115479025048950301875562113526822870727125054599247440401700231409981868445417745795946864344123869332531486888438235086720486578887510197641716126918266247936435376110684153241676516983252728926547329136147003320836778538441707897336417583644392376077863399796594570320620782286954097530940924830198344619040182845096486353554097658960548177696603434118011395349353645605433720130623984269376654706037370917226129292291688420940271940921619427598335040180999379023661045118832452683099339058901656998232354053210293521376870531860790940556066631623316713818958080867755117211127011846324199355584024718790418141982226148427789273941894128120415472657944842175273285942184703722222732864580447865906628506998395587358047490165608583635695513578467942387615112342332767433198396102814836975157446904814373557246102752218134016961949538791827479354194370517138340185234513645364923637033847772490692738475155224681584700691397585184206859488516231320229337808725711159481676683557303714421235793937015626265193759884897650005898115185895373617624201372559785383280448411157347497074539966080777685924724161483018062907839719612052554684392752952485444730017427662680443179467532142120418757255359130464215867495677183228119610229440207285618691308588630471444832693780220087327673280644116814479740024552046766364606512231274723407133013284894893662399791231319464147393376549442209963686583605147790433135623222274191645969707546440952037507056022778179510960700854304244658002541562698759789023726729040075867806119865830577420219529847201386263815716471923292851880592360993102046464886819276964082259131264296507878170229631946322110143629140132584454262951009294837554472934480223260094417455613774646785996192725938479700134485695430449176435512487596579848332508883222251508415227056962215625940864946402082750834992004699054121181082927176029311554982363557568846935548465377258077915496136718242084642587829870998429965835875994013414997344238073297150794501409450017328749223027808373063826506227791311129087312946397527476507113336537052141838935133954980845732893114965819982267086105153511633784321773805273781070586494541003368826018756908725522363239742920229299592453179507931972815493635677818530690838183339564488246120776960526095124638769332774031963225324664021643113768767367773108105440675592221918341138439364257820895260614464804004410758999510656857235781738818524749188547191354788001274681304287079687448155280225883860876570119676109185975616554331551898643888476967587943542783909977679018801879458307833477168166279150572543343474394993645009841117251286966981403558464314295691586435887119221669726491129443114531575271489749462724450613421497508126935956469043403018300849263529492212033175539550952531304062425064258356197373722902169576329630475577959007090748027220918584346250684888143717037558502994363276822743998488806489393201825924961783261599445436360298087353306878968080819971092845378276457141746210146145558939038293929721215655325417960626155141942670547567610985682291280133998411684815286065066626988467083590750388645175601969751553693758993335707261946810274184668471017155823483753546575529719139224891870507216981572718010336367420551823900338399705394445719529059275205398032737694381697052649824902476028692050913689437122192267537246707682567407222426544151725269756359668476068224783215724807974752969741564908792677618827195457802838659357536807627832669061297496571115774388399428891396540028427453739145630421066898375259350389318416736086406695231690690023917688316073389519612273423946718084116716505607723279335866346649254613901331341062890201506841543968024301708035722746696701175653900114623641636602281316212640087738027164465148413662511514752503213960944673583864269702013701799208767559429971802296450882243505628171129105044017668694668418115569476772155718898183871448653282487176535591351155269699183287378749161569156320441255237875227199521542756303358642573972490992238902193774437413445767370260850681912892920379755888444847815222376451215642272216253038374218559424486541071950827743220340760421295683355544482239853746314902410112498622462146275001458848914088561825166901436303297086401375640077677121622602609069450956009521331568270616448414089721982168494355080641885632664171293108212369309414131843958518381896651912865969786832167953244477420782599771608330194471811611809307587896440893062506905271090981910788899483790864667536817470356244907243443914756224175714827193274667569357549431614553999131772194747205350514546603489057897983673467247652817450625490887263525615356257588752221548425432585088186122678179835579889122740083480919829591683495945891736153307097587165287448612534162186769651212206826358685368519862816130861824484068073442417726524018716748523910531978678776122688884816184911333041945040557920974939240097652754430708418082045947471278398197477173381528571164448179690959055168315141215492692510910686516998602805121293732203134968183420780643974837421050193012515071522800133515664923461984437075368239249064303339817329969371729621596947564048547656521088146333079451289234630386626010182769193997317865010755832550259858381644234973931889231759336341991670771132662818181061276446829822168555590386104291285079384796245282903691357559824761653903036505086847068357456857182994428008395008073229184029928541595000783774906300026698168331851805571558588504178728109376323576439798739105564439159771481439954943532729442802337341195604517816675574146344021045894711473829070021369874552640899905839506986879683029675048933531864525488890496216492162770238401767091548439289557540688923782086904149205684288589450900775497079157435161145911096867705887527170071510531650383296328564142586759457248434795009741580932489761970234686153768183982945524191290613415088869387803410757920808846141178118266691780966405808384343937611827139892766819605935829879255668535459708134493369518991764614380822244306094970449475584859801018760891831510815762803850051388452401125575768694645176632199411135616164051290068303118063982465714154060063389988558230043205879598875749202443366030969949103373512923047189897405462618106546604935092125383109635257849894597896363690831730862008968467767559614586750764753303456519732227857266778111082205763316450753669424766525252687110025994285078403669989023679893864165750129456378047531186205290010889382551201943352868425136879555598573092009964078301605349124113540264407119007247588107811180570831541164293697020787107283898498410010515959860469451686008329514671033614376514553716275016855613725970358004961367388600450078140373282288108696199327905221837599161156974949613518893206224875817002885201463231747000358082230282841842491190388178416604442294517875346954581155147984088020050958533918777375457436166590166470855800365670987180160810087828059446373251769698227716028830537217141616258443634801572265422405125790930979851153987738412067013086171586889558353984969823926451949082293371638106821210117603845849163793615508082464239321666915452719390277630975854905379168867979051863367077503387270032803060171856772231016475055012323113378214566006455755500965612653120766348060297232119448413294413503589415209434037412627260917282849438010338436603229607573557440515337644823669594494930719335965382164849304614919753934944809251929471926861195786579147776515138293050969380250165376867398822797975071444288101352229535374093613509555295932550428280432863119795152508179117099143075785063258855689027612400088046532276960437246258543046316413952302163974758327729224984374114496711367232170030001658763481014948478737859139385650600857051614382192069185216522958130725634902319658529052531232919848283722340647325645841796290768419545514628645579111369319361455343572817761552660696292568848800697718810029302367709392254304466289368813181391347928569472655134146195865964335739719432896539623428530465099550054542421138715734666202309271703176640810991374430389736544936244199953653347002220680301710473272984200076654614102282784193039579649757664382267957056143524955335307893995071879222991144055468697074252145546994946458968884626012587620031518035756945786652683899429244202405483843044377260739344846243103182595520816949267242088922278622430190521013384124952185104433433827321224311006219596707610479648584729926814694081045159846954870933654236494983446534023536306671349495217858233034675096561831461677528705357757660056620972875675341193626437379879454449463986759581455429278684084908372386468665142733872432028515760833099699035733349676142631570310249825501273428400800369122003022726144236912156527844100988105496240273699267505527988033564792074526071135424965122814355284632235174508630393408939675181157415874676218002139059257054530101381460970249464016339713441205916072384711886379119033648084429438551045703946178024786630955042066921168376489157435049079410941654290125785342534698420498096219318673813622694325170774297299027273980718481919165195235131117810756828858359521569360084658139066269206914336736050577756022722869798423879776739300127265381814912427169240092231621097873710797435122473990779292347718318710733439051970811336052583526098377033434530604209890910163792630346939139700297874301931408616300908853277023321366158751574614356802815718846223837832445408849048013294350305099951841249283098439944323576860285217522791891824093153362256959031505662195524345153244838564161145246813208678604079608905282592974215376444495064802995006356384885104348795598829165517173132582589949892082861876021073239425755472561124381559417881373040914998314174811697774286299252804605950501476170004384164876371083416988996118737364544147058640802626644392843663947766931898189396782332824650696578811820170831749154879046938774138360735364166669742700818023262110792778888961052094957249680212482821220007055306602948152036145360182215916986184536271680616316529147527885029820666873321354481585823581078223705271862071725736770630409823218250364421775708920662477935227393577969304014624082300484128821102955789048234627534123201537469243016710995461977529136025366275102825167854581121715021678540186422419157420355052260471861074470406178220118792620596761893159639218824139715051767291549644938302255982531119915517989144394808643277334249813465028867381494966296362409430186023402131081638952481609392594014833178913244725680636215507058108999505045423920983938065984214905078876764269387272344161476115143178503331093287066825030844542466250827173841327984405867121583322084510051978978101596332591730915986128739916625115560457246547444039126231266498953228736319645906835156522009717889324651735302472067371159359855313049192129510894205460480065611136795218400714403050817236184287793067216161796094169486627081305562620067865700897100790070471083745488485558373664432200043549707103000332083255407302161775547537786668287456400805670404157086646442045829970951050152257851124795607149699527298928382644765395240073669729006333832037085798194108408678868273017930464274384181831188777220014400133904080978140978101508275956287258233917221984322141473099863895738501389246030993261572563365271374487434392305360470838013984720656809526408649748320038888517312499653501482684535462497802000111007515566868291370598478313766933363981159521623615199822029446210822102092182635822525841499539929280958999355085054484159610557678263258673575041115639394355131371519684193364580235668812783851818428591972934357195995711297765698185926726927789940332064297577840078444882188990909791090508323454436387508509595521175175728666246674293566710427228566536970546075587992448478264401346220748835336214659347164222082990546949057934238700663395193347001386992270972546729213239439290238200532390170861160795148565085441553315240920209002680083690715039477071322575078111961282951838613373970903664832553388028651018622414181055512152987229642910357280693969781462390087286612193620945925990421845469079711945271627510876955759087874248157559243625074523791503439977179830411061028210364457720042900679835749684554842239680688714371209963078885780797309075263482488792861217177464826383230765941290821583333937801636457418905153385983768996800012176826606594255513583642173769674119832999256671879738593997980322235857693489356371049610100078758996335407133995268533834031816456986911862375152277552422463085322321928934924277533746121777150505583880112093083183759373660057318418913480388157343556992234752060141845074741502160023904622129964081256290215624165203736259843888119445133071246967923017333784973721921032582534714890997747856712751132571710911282962531840379747517831190538993406687956383427247461111874997102457848850481201832842274545177266608828213228912422366028955015549506451639140532520205059082371511945607768756455621836303179135257984204844282785737210245574909167388518807843678505490428824045483812983956148544709008140567339506940980346345448246008514370703520374075262224506058532582813456964571564854440790456171389862436510436459325780305103674717142137644720206474894278315278032587306797374139722218000320539753031666091968524693104803384766540179535160361979687864445993186818460994117351279663146639129843128597817017835687122647354684491910119346607802727134658985782405786875771132275130002366557971536639752952344161493355630460635326904191684101392106963889501533232656242551446085996319344383946702814965212696121126056788852565456182184426547091729321812206885916086667285282944452542515391953437351163231315491394899279954275778624155769495932842728356610040298792139411561033553817576932899124056296317831047556636151261067089314784671190200454322516760639696743381454656320496456361010123153974401816924670748229684044260131288859785274013581626897569733953751793178486972506987117353416629531686474535615974743222117589850158809110944629790996042685095932562693516065056420562509497798463873616060077052369539621824540913773935154322460109356996113366567378576484460043838997676330760019949858266042422272671208315272840124438210607091245316755787518261920238676148951889473944028105653200508669393589889264424478716825175788776821506646534607728368601320014666309413883413452041709619721408537273913690838784211906899566539786376290759228219559632706968610266407711375156869721488597687314625744609537917645629238081910429787781982170633482093685097267061986336910831488773100293378891861326493144749811691915371618881507027039982468271817605603638985781771456613756099255765672237309396567787226443857425797953066008274968805474540589810023427761695096602416383374213020177779376544405765218598243054962719918393483821143647936853054212850349695666189562946967006871999173120792084641916050614435759892145563562833171721681823743924686913686851886029179288878270980899785132534463622513269493635576275705819624147824653562989373326592709133286789326895039685693817266847153777716877662386014873910445450811497513250208131588343922724417954944811468460455942504221971397560344538546683032617928001369137481347418993783607889603833539913397194364809108392677736452652984833821470745658023852186204798447681427359150883930457461635798686493400254810733979786165968148563322342261688796595512179665798342716659316274425680197446062594741101639055937954849344035110293038892295849514634776818147195646755894175605540799304118691094398640757234267839846611260902889735263222594425208401401263681027666312853900252937340327965048652497522427996174954561864280637015390373091081883477721178494016048556368106994715279595777263354570388558114064822993885801171928120313430843702352605663400141582176161616946559015946989153864732552756163388659890142232213766572256885949583836576246150228336826435033854787083720896875965140825401966577474525829911990848961206345235141877962424574408649991972329775873812094493839177055771874985134950197172486094076816822104065519832290370466217604828066795421030340006545343148790777160750584472336426304602468826821085774688604040715290543771967661916203901770817906059967789970258082416526471221929699034285287830062749254316295838241534875692808458691530766615706783397212411060497437815732358895204387106217766413267591604862747552896379968315105182761391003590972566228191706289117511605077141750257717219021284521438337290353128002556355131073735445926166576260500371907984563956962583251963906830931965594386913827676949592537802062105378602849482195070568885437063445737495493064471173713226152268580799303524103756645407148015556057609236945212090415006380621554121505546302484634684365077819950171072218949192867657093498336419418065982174136419235213011583180503721631119734904736791253594240273641892160759860155077474168442098755662326738487358599909831879897038329708424154886552630763609914689393282211509162570691129946206242340564351053923209913880373065070635067347545396102900659461745773758383675760180777549037492493413141804012905326515056305633177321374437074427883627604916553325683727221315693952279010507692444507696623324108099147955218788142319883211016614081445596417432183386269632690851819374875140355891434078377283018702488702136060257171080298647017461445618759238044451129196874546556793356089152754883948108808217668048844668056555904955649547663483828637756124575964843550414554835101103724231078702705146180235350844369800834413659167019575945376297537721240904883243337772790566918445225897837611316037233107855549799261462389413599301888944503074638281317849414791519532599913271150011182326038929368247454436696895232145151452273101113786831620162305050088560293084821446336194432374071835897025394143536809944185136421934244154894745619885665021973446729941878143326281605446483332066470041300234606076084586557652474010263285041564505107810525638851577953814058976967699613314379233904836158384936834871360064196448406044857628458312825463006430558548718147465320016526987991167325982823105176942179503317860343404872618646802573078927691377963693537393345957950514588185790451770049214830291679589781344136697031150936601372861290112962884615167710427426825182502508235561802698600344300135279742526891684119090657447958094545261976544040259564547990538899842323846284830441223754653410979867953556219839736021942767575389326368854994328605100901470039036355269872592574180400040720620109424321946936507315731235583169774831479207117436051567801750203406414944132648741174844214924975433930973609688268555100899465178556722237131853013835703707609709681820926089338475578627072991501471898539774493309521231683306597462291383203710940692258589842741651841772231937890485046961648472082954431983789096151687589108272927768308843105914134429403504169012810771375593530011405528957389880689249869125463042968429103465626728323597591475989688457929885088850057478578590888313347987249171737468234646021151587014675301671498253108993691612602525949411093678182736880106723543295599157489520566473054667529577104173786170914758491358589487254096101903983150078332543971018690941363332276836500974425758748070740457106948034525450413556146380499370983193552380986008967753191348143086041536467584184811848284346118843134172758419551333582626701167299877035386487202080355827136579142326035214180242699573186046525843527744817447373204289311408833077038609412812974819927000540575284498451682257298772602963832956560453893198609006109130477054997071983650942792192354765681051991040009852795848165445579340779124237119085292257607356396946389838553087445421320176890338430563995777141269162345442962589225140271484610818098682844133637772839274731444042310474550915047050942603852842715290179805340236133671367168412147271830136491659616233035906562488292965316898808714376304269322200509996146727247111772882429528692541560256481242305137123372670824162774885432302406635985420140983433066576762877236383662624553641600805030212040505991226804484978720263394863836272621677584779377942563204605928686877079764139198107541146205886682264784287014036773822338485249520801404371471121903728551120342527043325113551681744656673029474508001187116400906211282831958035779874490371553334587103400122400394731033157296713868383738704769773042729305567169555641281723503337632673536253109684793119005706775062795679978181452599266499981609867970340613318306731616080716548873423011911159983300403096200208687506283671357985690943247135707548397353013338566484068725770779876581986169744400211269267924347406043411394070188638632396911782241499075864940510148265979530086664688062840647686872805195723436571188448220305908792498204147083058284334579166045327373168242080025824518364063045822318996840328575282371890291656620225870793241392034801356071559436012648369800175079735772895960909433609239609897081563825727235039696535481193620089950978430967380908305478326597868993645041699133541361471532184593165293535708300569460204403933431855113680402892505436089355594177710329027013994819386331649965672525152885779904350782830653755429598261413606792100543001252794827930309928513830192452625934312793403505038354920885632531312994446753895751561683807334118634482518358486699015218584837772440006420080401920947124545530793004664326553348115536263075636426486563289100242792472741075757875740611329602623607689164267214963198832886558844975420590652701133969993737968769133789511354574876011608231657499127519779955348908190916022705091965088456818567456679340691977357005874935172529640093872227469505642849252831970694137333822543694302233123167275886196624203521799706984224733982590577731681276102608812017540451250020420498636549227484291061711422381814748314060706453009543669892072729428414904487287894378307675255489522250100328924562419650602290406527906864287607951966454135077577880403224992480665795417372963810326865955912183414635426015291391661039225712775074321759226495333044250786209083882310061539095178883097267160054974717990335749175022305610806890364332112044395442471737905921809641558022789093137107030762082009128510688232576189188698867587041284278349750082544139032846734493921025650736542050512055550904738678315661474832291039910603462071565296909242204831981799246753758077890925323617153236179395155933901859136865885381936496652631645624902991068635779376024271775789863729343821979997973657087677202263315086822914253463826904422464673357806438340998078031416966155751078879996785817289770187464744400339427046163956112855560904063383177124202762667508812450935687809681817143311486533470879731242275974109066804829186822623031521729891768952295184012208485707146653010395067572391605226632099798958047575554884311603176131079163978777892609651708070693627048960995488369834711777823206231091092649546593340395068582898461154260250479813665856190937001596783649354400098922591046748981255313170710176070804748050718362616302017238730358406917595974686073802899987099480097366641247413156768258588443122676376347666883431920698513666125531552500331284086258786088102381358869594605978251943442897526384773741573655062613042129194469510676079033696158091259798632449912666486783122944146124202877264288704729637500607155708458273710066322354995137077628951071745057641568435120565480974273932468593083888438519206075007233764724924936010086682538825488310392005301155539655851825645950781758469190837498188886632497122249949162535322805310562870008939375189614288723759040881729328359615341141285558558625389726168659326152938601553638381036453965648227713543272337682340077590420802832379141336863743427225678180639918314753518842678844120282923590042461480117458578534590425545556018512742703220604367685062795382649829461393552338431027812061835335795202647808695191254976506525893268042016079282185902440216097213566986905062284918051923459311302911756376873576441728807940524687181226449242492223694091685872985249623590227871834296277102271371935042173397038687094931141948424548414751167624316202592585407535970129230903661760065763931495701122751761392188553966889673616086562562763296009746503562815718639365741906803139404546906819885727878243627925603931083148615909936908667244403582859513061155662662949896999391228429567417914769823450064581541193109992326721396543401556135279171816651131379598676526844075699543269544538731814943524534915552242650766892623043009526062739649526412869191899340394962121663825209095762013494860221662224573548368251579381473478339803664499567941763540658945470281316206783040813602958420499125723775248699694105329251616850288439528914899215187173417476480600903725603774533899991254559506829867270075443980807955224998444633951754779040072041478295272187498753933065495356768588723415321465054878191267099689103559282362362501130805116932798371197798080838879197995416428552093799774516873284331364555488233764318166140154771154779784500309147950985794976876360511262902045945858291089676482797160196691497707875358963985087629383535283930711863879317182515434167580494067427529573714750963126809258095978547552870140777269489243064800925571701461228013114260009606439875370809616611034025746962011059858974282554149543736661409748377892244350866691773995688483459517277472267994903525857446863659954473549208172892920525473491109544457005304130086125843687222036431379842878458448266803797092255497567980584538545771749362125929615425121699715893272232084907734675548290970616728401157661074604354028961818772950138958357428659258911725312936509426274171399531428093088212790152285077306856648246463223681057336463726603001319282744094260749066910291137153655529848997789070614476553596255864657391906358669129768766194221352724257672236809833941964523149210649629323318618699499520193152019876707157020277141234572797943285446895159647687709922187287620025692053762179904056475796635347974519715858791249853843997724478082149298527825018473823291611944808967800860606192273376285666269805520300197196303912584936982841177049972466069297716519449858488194196725831882750293234233141897083128099121993426347281736518266391317117991206098763139700891140157159193538576895196903368819718971923267465801088128010220911418758140270194008851932561297909322017583930254057297418819601923602136619447622427187709943641029146148064006372935743308602598472947268756244345349204966256363440669711813012647248549338409582172826616710251063664722341008257472110780439965596586877583801664307138656094780284231751338344627857221466762526784554447667153546538193860933907222387082585125401206560512194237772118405916573912942901878395776773438760663569134676366769230835226068573301704469187654361930763505096680032373107047763874176803383921032702128290930961430858286900959541093379125780895440671552445582069646719123258040639548584333744424975539880070820686961452058657225427884995508203098626842179730890951727941737183080122088807385006062752412055243889272493148686859597762632538713538197078874342826843507892038365403818485323331637418534486019236422131514526037633659201743671044628105181726602411131331049177538137514609420000790474770122409319776029317043574655503187905969112469675251153169115897736509705674641887732042638532896508785795701267615945330537167515756387144829815887606293823377943801392067462573246010067818588319653235500243014029992340803421635285997918805638090636905308595638745826379839417900577065125362341931198214060412110230763875654534108761771313190784670917849936839728982223328904745181217729445682357246021390430453449790865356999366387945336488483034300818381630755253481284586002871500407678910408376044387851497312827869654726244293920659300562935637461414610940653368877983659874036238591029326798121222575481157933117419826422675084440649486352892059616490089226241853032900910402515854901336569789167950816704609287017538928339553890035219228808098761668523673793407272702520543384036182827609034348767772885316050619272095159234238202260411897174653698449050939157410008778837870779198405510988424451970701354227308806913742206275752857206264226243604042320222759212373002765717359530416443243000968670806360990275886965009790395959853887069674469563837028029922315582476961177335308256790057310595334477791910593232690970376447512687916050462361955684973998459152767283040032468189525398801549506077578062082967122079783569355589886735047570888750444560571646417852354952692122539486966534333578810542643883251531647753533253297035424327908405474849247978023556657704462988558553049256763719297164401505561397630317393551352473915218890463405747063074253943429026111345516463188286781697398760726043091000659325615694962956108808810420297569620016811260801564518455518499423069245639595604123567136199186578747662542971929444120755877690638374588182537604285574820413447145485447284877990572019702108966776934204270843352678483030815485630094616486882336824045748845696569196922743766495433484853416579395792538654081136267954557656150039020577220874607604261120270763436064949890190287791521446254327980084874595563337980569552646171811974596825137412724961547271348397869124692806107434911414661615490507744556191866073412500634466693109186674866550207667282900006111873717626986775659442758359359364707040293988317638473201177214844106507996059090960154427245249915052258776733447702543481108688468289714044361835987988727278154620645937923408528566088464710037658565134387276910372976077643340129664439125615373765717176503611601143356514114090257361371335502313348761635549525248436801713302190005906940764687208860196905161046182671682493636527024442494119663682418956564821324602596237078584382602558933709718464953617706880638001907328948072790296660487852963262842440032736148588065690767715349891302693879060944522112611301450697120948828481595504217383188363209772718610705487327360939434080258367401089874574464977948047093330483090029384370614974527879782999073059434042276411221487539257998467430992998059341201828157995679355796538354459295351765414291921811341039399360070932973309088726597555347567793787852048791687771134228506827039288516263271033717634127440391551778227009304863171310511672818494232940959698231499811814706197620627428288991361606686379474121255042757879751033686971661247760662617541457674212164486021881370443887718149723742154242089893129448964750219120381858103475093238072249939632825979126817069149978130487264873296814488106326423523883044755242568034939599182414535116214492359445649789646012674639349770132024551267613470946241748933732783807109435409022937158729673306295462405784683333095483561328827228566442279467968581126465915141949604888212381509064094175358306674344458730580407004360992144009539755425085692514613398448921261380159474587118216180462885502443173428023512344646510866187933242574226061526190383920257158218075626795313627615517183921009459345397642957429028509557022495113635289837596429690174105067954490784562735687032751402141314604760444565084861919008839327348012028656696935861405204013449359800771816988898480118405453125528795413227556227831251801433037810212817172669890500685989337878646400405104555958123042755969655813496220748441335169369860152984594113272888291431057655834519532659395814198365409919751751400337175568812177941602443856698362914191580210848585502093085423291611908554330548655464002054120751340605629133381558165785966591690361541958309009869343354571205114338087284949775944564399124097324885765124155124865898283089865973554673594211012421850453505764195552521470356317801699248428824462048860380864117079562542664359915259121041435480060808259622591968756836819973555388166372924340952389530152332484743288722104614397493715975511843374813300124586379955049415287982460349342312852386674690123333261418024367873719221853431508964639250003881375038713061893661563014220699314256104194377271654972193536219556728948383662466591195537573606210812915631053729462995021436168522922410106744623574372498777259634148824798004589805915539810657656939314730064492297205248825645246591640669123634027777924778023913663400491032618600147278649306874391054704852596856578908013342397145038467551608469010677509511826614431978904841487699682874808887936954907018211790342183908756522145133901331015224938301021201055870717533644305614880997510133807578487792211963790039009485092531722925108057335239707667388825376420329371090986092525489434461362804488962589591044666703018659114765571314165846136544136657821705946105076854089138159694860626092752074775974672410959292593705025361268639989293332668032594238344880434642056938892306785217781044803120500069409148038664940422618996698771952960802589594700746273436826582602453024227643257609109846399760980016887594478950708389143356939641617472011531278774935514338804617462517153561383858835688554374383668773404758229629251893195597291312473890997395472692309943828380307232031805040966544984665236199286818818114235308035621013240823017210001979190980806960385260902976801724719987667094450778418733212777996890254847008565218797668083453466601963845109201288346085746834707574621444650599037903832131200339886360468952987242344335584076896603307692364914872699129677267079314031508214159691770166691774052383544516198077840952369093626120830994454368916358988051866720357017826337660309375378281506052483363377670329410613452373376339009097136436376977604695482515072188070045208439593436507155129826329893920619470923002267632922790518346808182567146953636548714349432460440888104970360549781135876001762692031025072177333645394106896375286807663787568082776893661801471276569126071373935457989673017446110185131979536937900950493366460502122590754980145304689784883171075995323381947237644040654614482651155127254415349615392482941311715279332462058138745101423156338057673084481528369983196114092343387257086545632570445820067312666871514085451208856934763944945940775017681117061924591796304746462189536809487354349548358051873492618855831638984781454937826933515710451290151037632849947297635571512203777451135880975546570518570593594181804066364681283231885210949709197010356709548928283421756047296626980115302843739727387000274618745089073639381300890509091943926167492217820310821987362382792068944241500012516810103788281273062429225589668902319203593027587880662785092224700615601060989910766491098901721124053608453262909802376697109504606097925128715819231550539875267630979994224785589658480263814384590938439235986876707699035372263754485859799841674199477867395207824697001276310764314716416473533551897818286151889700402800521799170382610394308064799166788409886737338576789905247085400304149526747731514936700471347159159034979816138594052418210275870027408017960868408776084224320444130200082601797168316623978529423092908891925058998530755062612508569516079520678725048893791397184829614226412556001179403266261202070072916248997157895633867875258806454751980156891102673735185201312807997320026998535847536224754900914326917242773202860593287057139648458530720798797965735570275985888744467939654650587158440359400921218927501857498595168931583898341403532605969942593900738718295227870390598821956383249640160763610860682790852062036304485366549966254633299730921920722675486760655370202432338418906986493229126569260783411388614008229579323488335040385465270271794028564708248201338994068063765819502667777570183409487898438547020353271322809388863617229936785727712044992999148947440498909604302430961063346373080421684900149916743077497496261791438481590172541556622906323196557418641569967164927833688071781865408654193463304028209505609299741990807334722426647446907385916911767986408078913933222652779566602737544456887801622903163920463693645519524059201167315529782951929216028105705370457981555974311609811127984018556525825840147381141383858963864680579348879230699053317324385198406600683062537934057034043280130081832284779127311140559683392742294498438693615185229807803255240659856619092087235162574348481976993681435189198426217084489572840142225548301060073363340983104812618792976867555866847536858444074993750763677896569200737374650772360536969016614836908242977252446041073589253106388799192531227462216838112837822974416474377762311851600508771295474586468063944051777876270768174160622162514227092138215821782982392288078842882649734709936908590342967339823123847360310247157806751994585849843840155561295052452713018283723665437582251115589510307460598307472284960300368992485099876249740614851322503604740751718619549357153767991294737331846211175903364678326653001838357502566168436358518037246926661528556704008765412099159151453889643620951845516188062171380062611281924535172086192561852674850010481806183840799756543451126823021878885439931659690368268744912090439145629575297324867015852903030204317834318238643111653458090272420232152208637512261251306627261771880896539964092701598344922918542128429239219805401691541491155545316985654972994781837951508852589707180225695416847314137424342308384162562537165415771600867718938444092010027653781801982422361510889334310784236952159158939311012195831321876272939393551707716533264915362345831691825461546743981293691298697184570219298241382952991227309519179796309971487266292161709402891966123395119313566925917620691407019562716839817152467734613238033398960310812700982966318856561069834046488375583864647388708456337893407797215109512137997999161140585792714204489833016672569501340152962536349278334951374600155847124195275520490208217272576304954676125535116424438397601960963735539273792887526092119363751148886795199953509853666284544441706988842431540162892888176510647868582474563964031445672915465650555844763300209337613032427602586249700326679338841764552901519097742125808114558658637854048823703932508889987924471691586898206408486704655497263528400732894861398411883506010630571137783248638508145906915418711339363901184571957819208495931301135741215321245733797208776684699788730469215223159468481984830409230926051489710270974153023478524884737472242292824850473309979097297240118916669418475869113439283269131269348806377039755974263722611387149033537554917377064635227009777476445574530938614699046277453577650833624279070324633749136772981300637680372763171013131703322063082476762595953812828753897562056065669058108329739894631597678805050131445041113226688592966188556781661830952396058774231223608470346066139005451229018620628698409699901602709299849615338053193564825368080230730592781658646545984709326225023914497403862403485191210146312029836961482396286919519923689424538453171642396193518094799822554160394895253106062642689851210577540316891582729670565638518143342205549963614377497520351704563365578490514819602080994787809202004744799869830066234872054802223289795113793051840405136601337262615418637522114277970903366502422356691400216172045916601961991367356895445085350561907705362474102475690216514349636636037160981410179060854266142515677129063521469192267280626253690187015708447977474648408008574227354686984812806650560751295304757434326036994560315940530578869091628010782578978293319637455311298511566864822056653620776004838090527087753393837254615039554285877860121747048733452119503065401498087052345949243273248275108306368198912941970783475065614003699831869521705776293067886497580604253520354826868152577413572390707805251157691788204089790399532133777499138307900390683308981348070245084018502332241798380173442765345094270686410760191923418544587879740119926065278917597036133800473436393583358981664556575327086323203640102099568903043261577138940662173740104355978064297641518920958039145570345012686525893142466356861724951905079648599313768403238253389537444731575114143013928965171806272561200284472638222778979635894777116209334723149585476728929744285904401142603183916955428952948467831338896622083876673065983711322963363520847371856737657011125595562074201307341785766423574044826881024183483341537555261668515297504930951041599274194776884859031409768127543012256848842647333687442330631773238948378350621332710078822525937003158074300355828567281313855725438007156603389753122139070664740474011572692652362308471809864006799386787439450799097447281581449812872210439363155038970720351961350014181369786918327142696437271104898270469615258449367307541778109272211501177918727871615708373197336464432036826154991476876175206734555018775273862282004388920632231172535938350806481376629168381798789679008515343258758349415933672549680525823714295733647391488377932176785130579854488423290588391496942910321719250212196750068411667052623381955991641241183963383154563488362474132725284276704971277635317138977978148324190216988998698827358653305183120558313764412021769364503377740096323249689991145201111451429621321603898561228948782625177048210197298002169716577705190286042301781235936356967790874035425649877623050295270697332876796425422914317117209988052682374196680719981709051436605180217863541564728776069720377332006052698929867671210663405567555144649140927863024472129572641777322546299732814392889899335681237016686519783924280784850874197389309712310194084209376704128168418994960675649323487980596010074126505492377861402155384666015401664495400437301346117529949190198883008149551990926110836019751752601879917737687034189250722939227911307978561060386923110280215281378022796395827127919840501034830044824256590564613701688406370812614673756364310276261801319701218142994400131010501909450023259441361389214584942046576396250835311270408131319353801075185221481883849547970447793010352709564383144338137318551080368020650865409066588651741338477188752192517378914581716808234994801258117590568401753639476308732395037258214463376434720668221587500322190818179888698753776507004629462454300804890035367160282089369292758242186654352549213158292044590050044063626692663676120213335790932300069433144407884252044165635943432462552278867775075404774934580012701153981560406039841248401449048209948140715788144976647596509735512619877083277546855263764549534499168606295784582470851709685750321744642641224704603383873376211110042201755931315932789624480019748468926440157763047689904364176520506674343078968206114522461825682824820254463173410033176202242544353507525024484285799789992175576354830141538302612822130782372969599862306248298555490240546223040174634231757522377361473623722172809228939522568507706720723367639692306997546553416514864707946697240783349569521266692735550093529256710702474434020770105517490672651844424411350004420265298895658987492802777838854943900953632803808431705611746617768887585915680714298908505501864712538814940308276708572418212147564419253262458714070741211820173858888006350954279006465021029507551581368665485708309585911930026298825303176426788398763142451933557532932102658112412305585999060618513096375282396707351134653480017185841414218630790118110187559385763395244312443150152075797717903699571898081292989996933250464469266780064754174543412394351549344679653706912992471068583967070758760781127196350813910418035533962240855866894748430587005679346693419815121300277700880700162223629344195210177949961089495658025737622050386948462150084046000150988134255013112242062645353575953088774944663715042292233295342943611170866313242761965620006008409379940727000879998679781364218024184009419984124040136870146998362034751314024974458305578401128747358514217950177243205813408016218224947561191910423705681018753271479212333603559690591020618922768670686694064143352073762100276268068660657057293939300088590646221693569670681337047010371943819219232423070383612885156935844306100500578818060842788074135257158175775729210653247932154485212478510697642570750366968493455776645526912876656240044387651567583545989096727735593350666289483777541549065667848953109754671878714545782975725230822210814787114363357781159911284009465929190340201323286863279732987822434105002866461804186000576366550824855536298041192202824693813944053152610034794183052339666947534546814670769546270385958254757127850914103952706679902743022124221328981961260592546686363247897537219569785070980448014903176198982688329435601979099835447613673776277616703270014136064380394236114419798263020535206461598953277079154275829540063121975230410206351007156689185623426955628513375663826342948101293940637986800958470477967648658735985542209885591862182695854126832862082479878548678004283805252629617573215208829437773678787774210932850507558857975498313827946812003333228972028396863950002447605817458068465004701860876942486049725308378125731816490590032866517465513952961162116779187348332590598864117380930704014634159318932525481303789380523925674072900998801524295196991745659136000771318945550549896327439354114211969206859216141110745613670334965249353147746763944777149656560255916672351365693277708313841805618143726803784246189651399147489461302670453576005872592126250292768596493083071116170605571032500562541957972291773433544209558191647513786586008943377738561295922910095304688995822114139797459323368825199900145394373525160365662395710141742184148772900910673677979000489993856491250734079189105603461531559669327428805743188507001910380367410283028881169121515373491806954832737152070024487435862724733966803807514283957823724381432562550369458210184045602687460377404868415008352143835926003532041901203401182475830141142139544761376512477030048766512428058723867507741895001034106145507724831839231986365435012301516090200241783350595704382802154851654748009203202849029016606203658771330622087215414149267047682300865204568542333421791769339071375528409959108936667268026817355668304464510979374130960580021459792728714928353197941992815980456496511427803654203156181693830513767483605525162840430393845406055760617416253892853355665149180666501875041647430666326276513891434191374580853510370020929208616669028793844640824928998795606333644354838680889799186477588227954891009678055253401538753875412151047687668024870882966227327816908952949688038674244921712303291723696942041062799410383758318660686625960346677071061947516301074830038671472138795644866149028108612101618578476236038589090915771855963094116220590359830480541532646359030178455405213898530278213709956034716026857207834576649798463335868796354279111016146558901806249992103631046793596512183657950374179389275546485947352120119930013912255287614873931259115837414984372767357664578909399617223105068730527784282213962877989629899139456465109360211630160103037906114222408790542322279796150857446281960319686999630310256107142299635796876649692044752792119615513714571958174372012057343407480868703832759536159890479453291981970866985040537506560341778511013615410630958437185842448711052077435162017443309474307739009817538818392975766413491192584956185351023362896174904973187672761582880006442231511969950754931411711313864477854876064188867802868184057692103744321004419827662965830036390831219555681653877472884359910427578491658228255474074383573375538615514375954694971353546164929019329275417528382738005341601563209623935381731566039304977185275909747462306895594383786079128538132343852455179241209863433617590509999342704007648135242487165906002338055590119842034804793667179700435987567696527416028383694427817201002105999786166905678104236467452631943949421299335837884961097145877780365373970334934725373756606494039520799748113739568137704329364312129873916398851775780005805138376977472365881790310907189194508493679239956794889427442628899757222013601184451499115187623320904593026624343530001100234916886316936614554536533857065782468669142123539140212608690136235908223809748175976967879847312584659874054182354740438024797751651482949351027507436455177755485061658004757229752263597407061208397956500959989115701439461647465934034493336722975014125132516459583440811646997939894421674109748388062747165455563948363389693723133735856988093609763926792091522196649004925997911324563545153275315259955007976134783028626110507973330515055600085409995195345045187158875375864143705934015637769079830283474563862765183053159825463868322425809576221975503169528142302246295456888197764405803137349219850747650568364784640863396382660704856968557369358571788107950485289011515878584834548484738271817159804653055039453484876882095965620458526111295126007583379892720570439617647636435635775940164196113726041186059946265343766451921960020871336653079682396045498466760103424221548454994405925171979730070871843041797193808507052886164383401700305982018758546142874098018955114140415522659433992044149808406822807781878750564160116466071676638447973702276880520957004031630813536973513973593228317910673974152875606055172817233782824034736153468915049359060106478290733058798157750691847002110187059908304714102105492199244700038936647787731268532166755873135976248308462703003176003223126014602913388720460163220907571181585821280520434522691040794010634600066205681670400698502130883805677320306042165718777666646300948967173706814155542384940795111561541888723437257433595989272841651522406522723558161192443872656102144998993642368410016953192656465659834382770510138510575112366773677708176640093897213965348370153675364844800696476687382223712191749766854557868337970836224272598389678587511637692484496044549391659004823221265793980951908496164433446055598682100052510702820223121469443019989655749577219971474304895700889544522868840460875023855981809445668112266259795791925070696487176596998639266277026082587108809400389100899985757120042078826390351020511320141374295466925911661062172067563173090524858524469611034640074382612078250082287890635810959117224878868793294128774457225977105613888964439117146466291330820563555783090366819127091296160018656757401365510717606155680927511636843627346935821122275391243144915606270054150308295774556320870563089475113093145918375985053714880952325855256730642074282959254385522424497836932867433742733677391279919823042126926667296092571492953657429965268507673342508786949364273686978537825740612208897194682483290112374209724108818855117000942722325730003917560707935976876800495449724684819787793380381793111710166814225734862387294493879583613200908265377934668905304571639545146557529109912253422073515199325256696832805563495769272428495550922811471957531019514784608798295436013201316901319985712743503347796209996166900529193081821827991062134857073666441326016543952717199435946298677094501271336522526639509695159777242544344656120806930826885532825024308382303618891740612714575309616346582425814442036865036114766147698603175754107027292043782185866857543938372346286548771129532553660102611081147319935477201019836975771725328136785409154936541983188780733082684082561283241281159576604618708706636724398316099116960896929561391626525990781606135774698970323250127939505579084419206878546335341116648707047655170822324152063705107886509010409566010650172564067189617418450911438944261230519707432936159172199281961743462974139812826394781227275617870501314771437542362834322621587980111068298299688671846063941104588079269366020760064188319119601717709560017975393334329509351659452419239340707219101712827701667851039520097230426220432561117549809178000012280620486492679043099111440273506356901933878829193293971826908863235732621399952056817876892738698971322332742559569257444119190981212721010631892904675812034939130055020589878405193285128948119847630474578811205644419928983199594829782153262336927959547694395867612405532128113065019599504408353726660234963842932263450393962010435200470402749546758608103373472227270825772028385334011933369692473226123645767493688990863290239026966158735411735298867570430726238974681398257895117702690454924135526184950802566531536757055274591670063185225929720370705666778041215341934554825710471208224240287766462231314176603270386337794907149158528697097763707393848097873272948320002842971211209293347729035218493913374470191604648182192072132682266555884992896334490799289157708426402468258497930194024778210958779321886996685469527006152571323551040328334856228693814399108904769477362894145075574293067184103656234723184233290534781959867195150198880484727104297797726034795105689102228140416837886378856701552068909289712137509942157766015172495338998590516044695550154643218501255921895177336200596964787782529704675320950089535694457803071555953818741465677871484947290157859543340468438646238439177482502944328021394610234452759308937875134000654132702747017226488202724620888875203771926161162171174635035595325957791354393030271652959318191668690085446935630796596902946976929735051133638410976642369047729762111411793820975299101863523618599224181045887562040518716533467038284049517075406130678005929241872363092528961283804706878500413462511283481662652867931805906098260350036017887537222860060541053308858481563408147958339855409708770783761141616652256495173159001454680888636668822185877421338496565344286608423454254086305785051594250948284944110096102633162851766266999726823933728299798977967914377927640312928682967206460208981906626824534189999726598102959955821224470633050680696164852460118745985737278468152397903887312037645996338994940513390022310430165171467771571146068247027472488135825843586935809400137797236852181841125626566746832108232575553888487291809535967431850709955752984394713985484934163631850357469765355636280777219471505879264686305363455011239436218899064282966456971184539632943732689621718234395944863691222361295843119963790574556760703863158057807221212845902405401135267442790094670332609750984504465741924426258418328268465198975412326991820109351665862043323024386558139704242788952164500983514459060013217745638803453376400541125942420989666850146040521305408168587888036964922424948047134922470524789576726339267590359364959503146522078524913520823404659932010509614458860414333102990608366338072090269272275969820408842298152444837165322733911330485348160357282454433554845302750766438172015943386142105122729199999986361560794353361974487932297310294799552025501314507022681446675672355600768372305768231381319293080374294417407090299766460910058523487505530979766162056857482320532691946476623298130919765652360615883172689041343229805319072277361592977809030695612188545261630993618058015698874746995988568334115228721654735806124784108685845193482543466813379285886245656592216133510260897398368910877416868224820786187602140914353238487810462344667404801749079940142933550140461862423073378611303027675181731957296074754617317620820223328973370542931529238491768875707952294180896845767802264972078761942596000554879791041872359224260165574970238458945560237999473284597540495359175025426053301690057656493822023347637624464463481978773826729936517447903553291590726403068303556350870029638698504932995836800728444035163257377973725411106141047399028322864401682847944645971566719586302064730182693735695209157800342159323164142808747638620435718053420348064067374792399420883361900954071136224989944691815130327790294143543813723529570826638271900610186174186696642894445599647820363637562316427278571753983986457344392536319695036995177671956651213060308240954337713004107934089658032791462228977693702463414715073126914282689496620134308228010077410549319354401617786539843010102180250928048173507947511764812294123537767724510844606284428991741902000038631332514007478422935588560776507677048688350532339697273941617436534515825188445508515423712032001964900335936705119287048468463489947891352246560789740721601194598519088711320659202519815234357574348752227649847955679175907316633721456924585988010016463967534673378000650851335692989842927946771272030326198741878415934632601143841755231528688829740887948317806630171439139137192692729316995391686791276762564469236688344020952580896835533864471599353227015033209707124348058993152720344679542574386008678440751724780260829535525584266083204173341646111312369608159576932368188303388877877826817570394551132379218417625940654315954112764184204334219871591397775300930618879334637098532231872090512013726333300535378408873111297800706835150132488283024988863486370142099631032125191510099549167368974415284631380776805240169623721119256763917066339564977183044505947371562627250345360113911884086849345000524887221755843700971379837552236639698948678900638768851801324683090063989248452053380851365534056184439679142851749895998526270891889973455042417798272340846974010331780819462272023506795409700998123035955239232526648443847334612941653599167005395086842953023543923043419672559825848732584813363856633343132879537715231508712145249361873931269873441658418901668741277828697366391965982723140600539506926704740956209005249498579436131534947472676784274752172363710239003431314069357766376015172191694688631065827741688322421792465417645948981205546394722564757131364939405043750173825211116775858899656158459984005791110505954275864597735158345507445597918370960066474700643690384527184293740974637953359384223274195486561277092023006423087303535716097136144460308235115938049682984191493741553546601360066756410810703138822087858454538500291149578191646582048746913390269138216126691636613959606522463278857795349916539922771626372188595539602013744770864649613618694495918229606015496397323571292096470216444393648969647565104801005989018934553599757562978721149801659597389784961561341906137658910662049532487629455736102555658306974024518916047708307073302641249680307132528314504275485207110470427683355646171087281528902012994727289087006623772219411532616500131063002020923112223635465721546235941751031650786361643402457428060647121029545373111343141378821214314149842704983477407069921547797500798755495694289422499810757527182711770644383245238975507781131754815822263609597442456285525982122241995076283481578180941283537941657141288096015745141379140373176093060904243380376304505510424439820510257786745131072313369324203890878649012137459487323570500784984037797818968350595836367812786874552810805267237030797203032188104579284539687930228263478041898129112906877645261208985595836806325914549716880784586384472181736156040352826381618199182765464236458127603711722657223106459444008791127202177481345831648807407246272417677361753533956235454451434433040920592221352023977592016732675653653091387265763482775128538343243216621749481873039958525966913825133576825721998773171634067223417031083212585369912293306574496273078973128353842562530877483096340506468009157907170743942434641855359575962673637964635265961554126526253549161199945973935835022495379408389081679815694690586868562828066074283356903876643987556893446065918983011488510670369934936515456053840394605684344584705988835733553162454502842041488043925925964299449039975629529193950646732099430710963690289521488061715452069257170011060753173502438703447767258748791556998277093910944373003369275239785017270142043501647509002803478952845038662766707937597225420153533415712855910974167132717456626474294457231850893328931675762733880011181943341799272239578389911055180885310363911211850015146250886451490932197733868833877511880010429593102349923429456109743625043204544248901932247864468257727078085436545876946209967824297289727921124923994755591119245455411198171825180562503141210431127049681528146103509037734210221028074389747496057993465763972037618439480092352228337662732761258173503443393733196026546929538380773366349765734058471930619402116133923535486176806528601200074031984936933748707171001214168061988107193099088833155470685534636616570430534606953825682419429633390336433682887124838003006181211319323225435883461830267507312181602783185931223684946779066847510376225992734533809790205210653331204622676063529798419314376404263543338833934899530723661002719677025770899448859662131001941949223709214117855036694518244178855006702711606015990465895435479045953305425083702641662480054219700063919296993422620073172156693292888236867095031786219338333923875625439323434615729931364089112074065434594698311686834132509892029023992904701690160954633140131081068570033857329862418198909877358449782743613812803797568670411784215077815148617994437652101429096304214316222501776374747699663479459382467510531441378071903574783594567184312431483159100612167046262789006409634419482050925493459349643898481143970690172385266843730397313381681536289700393314892078021963846953504371693088399463160339771718149650250459978394370718200608135011979296090233152171703914354539459967334221972659215280053731212960666309392158300611125802108764945797638185732852503431604152876368331929923960912281486467184473350638632853460693239545895388051799614023428296689178274756179984660085009603015733646797647723179272379258200506542371344564963238899210471364613762022358901753143739803995128920815675742816436944707625896646650636523425377056846851740623682157203667253326088852261005051764841179086465679135130912719348916194440710533076839898105031369292297626966644072874981685374259466059466587606848823306914508556983009467035367298541996331098947251911094999756325883009456177230026544212515024389928239510869810599152239999398319617515745324910076206115881653091485938915157794346494998615614723634582870497391946477755137766989252463962060419137478379989920073228493103448222900903839412824673364283233959673603659718322063759103928385452700579342695916152200669450410656902896167779458462386173475474919963883840898606388565958823988743842375680309189643111875124950926645051511982196089747728130278225833146068160955962392552818743286967207025516062404505531767994002385659476433386829154416404629940495022808803738386869708879650359915598467885687199091471435715465126517667121795682324371071305522080505692492192327710092723602866960763993974121989263597988127142085615887690207514608994166175071631635503155158514788941447545511483313346878707210285005514808940241646910622022492996659509835880150091974426009656562557323792364172229071086054342214206633763795507248257077128298234028963965112580486806655649018661614087667073803694253616301021973389509817306324558765676511880162478771832514653174856475018917004239478445724863214830127705388249943811289560321850959247792953012036679834350071863677604817763373005067622779871091455016215363902714099227533307055942455718942581500352636499243716487235600533043424748455308952828920268081033054678398176586065895192369431587260433391225015345547661237555321655718721226788185255955981125191266040244122394572458149857508537196160611891125290189032928695086450801792445834979065630012337283081398301720394830347164722535650694673475393040805188498790659482257331609243943019022156805918101171687564169040040586572865113065595218585611539043022923477592020014659201681317010106083760752336325695668479669800970497815274570073688105437422555643505983142784535471242827000948165915971983043933707522128635200684572962405902085830776972375104865885323889792008299583732996959889488093664761125254165565825006383165125306366406403661057574623839061985403039233020558741831634706371664593800036544765932425039980767758823564746488596976874262580462906613714688572984892037458929644605327199778500143483740963980067755321986693205962165587565908343924780471496016414996564918500617145266489307988579928423497992210197898115176824102766768313437979829945336608672434964688921563442645346798440800693758212252605520030485507604920120448850206600109999173642100092464662225850761979796118470510292007269510353668287071301714956431333897463637497084010771853490185125585845613852098090491751260593994098699027677152874345582261953671074976529641320850498999862838001913075827630930095770465768382515387902065091306727369789259949139426633013579683607844536001563429507442440386197923856253404310387166298004985109727668870467448469515982106625839360114634246244331579530248647915416914433452300002014482396159989329542076012787762453312758331991343206403162186002411104562725360881849409240640024384898698736661011015506928739653532244659442454250641442932115456633877490926981309767142298913692743000831296624513958283704419649324315713920736254625854215764062788358533761902778935655705780264871775682240917133616410152775634982536683132288366548862489231338697947758097410623277536576962573583228016837037047253347578202036881087800395868954813680482795386241650041481766278378392659106059041138382539966965288256192220934809092361309445178638985323166147627268953385304777518080558635575597238372806978706266592330635527387979577694074888847608699941287925540900645253536051131972105801198816993549618293862022020444087789013922613118930980665924966639721335191980333974475188586110626804400755639469634781014662996279868327744001171179257534906288908591601095701821486873982241122668703374646586156942039934482723991009025380303487384230663489244670897650953128858641124068252840699374733520631281087386667907799603613785434995934348883033250067485195007094784797781661711371478007209226540526733630178462728201087689317905215843006603651705364582856732454349275748275552113942207810138461238957678603811063112445797127506132181900571870949453266432461704125494869212948265817924340644947690759948330903861856876664541434641730883542026679501465583440166573366317587022898560827721887874043028566136175399254446468355395323947165215866043036417610175719614995972719866448674945197567839054347626699160511742437017281753856619391497230966472981893730239071217538871537182526242501330271766778749139275924738912511090019013269166908660616873106239315089103837543029089161281391339255621781888787721867555034460842676749314658224044723759232194949154226428222786191299027568185152892962827373135540237874981883806083917603022983889316191977986587236612375988750035075279493230388308316179634089803687848016567593855233978961486548892287972060580847682942196428192770703960945495157160053141881858901302147465779377072855940411568335257336024566329815536076358441258112586561570034975062370705866256255738179792658531663116492644383667378732936396824178891204875629240282551980828375057725930801126256734341941003967511985849816459448402931642203194068305153031238932818209880654147609002064636992324185617568569129800165078530644123609362173522506084337314295262579723341938935018457662300545917364984549263985671532979000676474625105206982922008126612086090734248034527872314838789616717458608589253245088437543848815694460542451784033463285279549318726222328470155354168614882301253534082397582289690612994895852942080098063196279272087035257183168295535184360086781144192427240623211688411809434680542520066547335086988433075045165624570498157206986768397773378143169705089415555720945546388410945297649550871474704683605393803153465338165265946349179892330979773160642041751624116246853371656037879810922949619589755118434236873869664922912389358798289809684537044591708624923550358013907414698452079436890211082273501949004815776065790124655492311628701215160253689832056897958351826442218108062080022266948854551442244333020622448655197339386638222470615653257195263073477442250598934858101103155499900869426682210449945028849185518852995414693427972220734072106649138017659701162737954849143737934743298194937931122332895143272665790743442801774465929072853758509878750043422257817790943771000587599697461664795284954428095313824118744743476978702299870455224388877408371840141326720967951258673474099306825483286877825639057961086860837245878977304618952403988456921120055021099267557248777937288893354545301378795823671548151511037244113373849337551780488407918299046104168696291027208447331454407799111061857124318947186800444805191753516873101094309699829280187106372106505005346287240120661871092781432151864959903238381580905245263259127771852201975336129379914118779022247739502642870760125020459783535817690136855810709359966304314733177379807214645749585486224970041520261434118161763902678258545861374349762716791334046423938990954791203159079764975313381703858248181143659811612097451090655911727111828885357311785188620451553828526122927352627659976933863596648570714763497302870687922412109860856302774916732176813187442261358526252003748040278853468723760107032068399928940871761712264740843859350165937383545322725584117945488101679412614117235034870208869891952726146767065825553664417368743057387223561157086342538714192376441610992634666207779015242081628014693635267932817166696284928577285361027409104993138665850111068193270746773586741537951873691260691776160757687304020569612787076083786331749310941553235929029662969039490606452455592230411279769448611685256736809962535232312459966523372215842869622425871214408156955592199481735851282936639197769540150842197262632026143479708978857016175568911928773280030385370709778678580513748746519236215774880518820944526864765500109073891055607562216669865852457053555678757338828952619469372387094789957602228111767422195066925301027767780186196991818879634944312769489796569647929561683697034452141200391391408371553943769508430974352712054893798515431563381715716693108362654284504146751482004971952333168334206073999409452149633482690573239455594996610590915841098073717355086973559662794288151374343248463780359252181244850773611698271908048185250589459318779489336268954997604438576390745091301029274596062858730578166657927180186110401057202300837804031412197969096584056009143951131206902546220940197278211425352249508039016400016452642914142070202364051358820566781085596717685474520716436060437454912975679839209099760238074187015518451637787033927309483501752719763479102847990075044220806416857556705927277900195019829356368390751427331437081659756638522189545493257177759911230311568012141168178741302854104700363456592601706731844799191538345109068359932760517273659906735138117589040069370028087981006393887782046976202660447324213164601143966490072027609729485110194344234704571793509713256907068301862414667402970768201280841646331394369145545309985984160162490100320467321526029960580601556706743033226494017608503824185325392189442776610196588675691913175459106195651176942000321616429120651138506933594663935653450112726009828021944762913578615401946320670861413526614664759091436744168574219503182352792101240214097878633646850490276427480961261993159585594705222566710427492098422805234310133119155847856251663925324184372345651534361259014250890966751269332654367750474761805023379818314696516731983633581185593286196214170462495303333836387395221770490610715174273627455311354545348800805435683925737754352809817855533187063189390861601593724686425319348081882290314126178312577339038633919311377216116931042039057726253062510900814987014792551256716756852362116922447839507025350545151129468435885426613212398008634862334306259481930625880823990186567092975005589865088985688250920547662087155178016498707872172587896345317087221697934003178428869426825284228413832844826412023615981767369930179694345571365943035522365416685570690941570337491145920385450770127216137997431181017550610412684354084464421829233680939719815027554063609901890118564835013946306743459124875724390608977107038769259900104772249219467498666780744508816823393028553105214785524565904313448743606750930903386729000669997801937923252431121821925967520665491970136171015222550731390109792555129809729345834918346437797638854865323257927097931364704542619651544993843365873751507613122784055304822551482434707971662790623332611933992948261138495289674452995746985957242768229026713843937615753003741465793758452547537996517002603733825314392862551170034906435189554726717843198529513717335803055634663653612004560247838713216559584424761332674524793950779411017456046057859307252290318160964031549450272240186650541699972397101216914511657653963840285844049680433122978005445626316295733150179602692504959402186733131064168009773182838641370168593415152716735963878756308827800885040189564926901657032833888122589932135192639734302921285016587489485509419912171696179264858408045191090265770890453613868721675485303522044810500585371860564286360654723304929463079030960665350015556255995404567061298358155423479882206982453408679843565017184895759428930398793314375072449011654521141255010122109988189682062424515223374390387083651138935673419612286561964148694654404731947952384931161396084616873666179818374014633785933949147214308129918753273780967129079045122455741185148283022223308265955994180261567671163347960759927107653281111735135156111023146431286587636033842899084139894566749228325616640993460714489317376514703275250930350889838273860414359185968436605143921168074678005586372426075941460931231041315326315813350472577901049152238155782741693952465222220117501404125869217516516841859093405399752110263172934100450379805580225072165052868115268358936260048825199401312335556863312555354441099072986988012815308568485969439413294211871269814503514162715734814909394496096937036374373782658588733412714850999094750881252550047404898494727736683159882577703440525331599902292578999192129478443928072384649512081680205615470985604617016088989551586194939762043924599206237221686678290235703727638845536557323663532003627151338206465982337831925932044562108841797898749396740287324145604183887810438128758714206563778861547178292026087086499404719236547425030538287081951632330397296465539499992030932270493454717444656428680774689490001659791869923782022052509096192897558154696111812702735397562572276338183073353866514033856477674955112022015036751724961484065255565372823203950092571392336723129934257378405493219581022981875044804366583793348352681074684192725816559973487371805086274391827633309192032207884117890294960955059427066554511696513788420301852114380045384543738610887691064700556758171181587338850278003484239529183065427080073479487080209230295237081354448303626769887628613469934817994815215626491379646403966000891674054455409204266614653345802365545258078906014369612802344342779786395035473227209228917392188186089207243373213993620545871493857826862040470399105135086567719983156224667435519255010380077260057160202230461700830911412482877911766671309069129354946600257573657471068344524430064986369587929893014071344960962461637430557079339458634327731128599261388519515512297275580741595407441437381490221968172894479001111071636941949206647854449602332405489952803649689442778169679004174993955966570865285491151374436956531798415911466418275821849720175817631670971215563725015541765215881508198016895649497542965186471935441904878302012926770699923146018965544931596269609397156513501766495713381260332365775982014001226944282628681546086320187082479077727070926727992480261505058679454686105639709156238574746717588749261601615605684498744496381502215179979578370204045284640942017576919044642143587030308966842201310360071219850897087734940381929786893144375999457049385313555012559199447583965309464816110034128159657031125869649027295900155796104901261541820905949629451558490081947894732144190394884409990351468845607154002901087896146782797671900723149761026996176816271120574172007972550710638289083307345432504047579500911022603670916763207423018297237059223374098797371444667479368417019467451923859203902112251641959083610971249418990644283904500236125970094315398943031397267926276738809105560122785642850112713098858173236244190834828762066455415187189567046140754418370341492327845888946456363059273960406149196444983901253207410541917340731244296598421557472542431880516955265339696161176041686643928801092120840680338366355974503628371077151291920654467500859610392950091273296779531969707053400739095772376629479536044452013785913604072051683583055073512515884999812933830546612842836871748886403023235555491346120190331521027172370195334516779181513624392778223599586946596044982854566993929545427294486881071940289237802091318950611162941834924820946920362370662411263962514483468642332971757704813942664053245768307765301716212876688385906720598610121564249636872492744689062010446485572403620826494819461539337688999284305734566627385545788501215527788793151601837758266056233813529962726594562867017499452750262039219946739399473378457896075156035060271193639842950441840379171376033741628453520510213698642373401637565816224434806034005411961557453081175605687977931592402137061256423006840116750862967113867238436244164711015154557530187213629332958036254985142502029063608622889193669662351397513389245910694607578507075417514679114066201508179785747864661572705390436075149073767973492014487246310873158071557641105255472826124389586849208349059775479000886695592816500762824841381195587819357364232674987800641526108681184592148207473736962558373552194947288650094029198107721319322967348991720574146673877881613948839049651592604747985942011450683585995246999569227029756506322496455624170336117101926892518694736092053892616718976010092698335945298654274276507943864042027131594366843787759168631531878250046343149385442129496557004559813049648996205778648560359267959825940784101010599409342646557449508814885364619485159577433370752177347186003706886041084775000074564225460470552839319636190535644574386850328603900408721177318936328587426418205527146725869132842116622698379985865172017118086507221027966426671199534776423954773504147970229953192339386928689520564516188172845358860745901457111001912053949516553108345340575293992333191646757870844605897145557213652435119982798020784947369966023991731784690771338017994927727418399520733903638644206001130249370998725110340327118001154168960893635749354143557393493743003850319530177082575310413960857471216700888613280264691569214509041444730588361806507422152343007807797183158371016267497601658082498121580334757892643896097455181016196391447424023400341791174819956586330135775454709056480255422701870403592874747135540785532793129280481223803673469040225361353633241728114200008164596676032988341142758721691778425183265468375229828762066747407517286607403178119009616267498504695898201762314785177786148881844710188885737122497184424165685382566681535510865945387082102363762248908316249229734744788836709961346004748104986695504823946422516360023193525048590304747153260595422349455076286514208754429830144912141683144806298983223095602955688523944103569807237565568310901871615225987610926748866631796326414057504138616476504538330803134355235402865322495785263094739072082949138198686095327357829283239746603375709173743584581304722279896037362450046688811715861873109440151038124499642858794530949644433702711903299568453409514675420080941982611696506636886327510540196471231338411360807160335323853239095343132623530400119867982655691576033617996913143277687670306495553910985301763715603081034108474553606744538186689144264620874711481143236892180043818329829320951582619554891099967192915733699855808589414453698233054885327404281531836320662373632446556093790589538860658981440487082285459231612894626580715236593656084323728778830756516783446201054903116086329546022898296570197952410456711491262534069037452735743781136524824728164598374403218588640555553321423254208081445761432051112051121405973375722393460034284770787922799578008917919785361865384917838021420825400822989748476120863827764517763794463353807711794708182495150206945168113433445775821511935527532865180204437206438509138788365143614938409531826696889967264806862353384211000128361058704998900506305288643069773967898753677949828966993189365201581264765887283460668770256956895791694461141409622940161055816765351619683665768912209802092445422530132454259425798516708673015018205071126563983732044220884725516287646520613322751004660941486780792643441837343062357741972052610176089223556406635365070721606085910288107358069776932061760096787201647667875807001755013797969099816804913089583255531244520076796823718557588984070162271086781711986653906035846920524488530446319177572730756144915879099910045905893591820717078231445226106324545044046988807495490887235755874253523944822899877251727545896324850924255213429292815071875680881688345269892175214933051694227472399557439463833231318717027539712129777785495422717218163989998887174686169711737471573570434599454893543530183642746869469992173377448466761890419923398380900582667192261351174046765781267006748718937116045136643729276710218022865750590597992535062230834269521762553952290378525485064487783890692911597837158763857977682546920773226046770196679704372442869690468394239288208916470314186923997249823467098910337125050628562044867269018604584133298041027238624648047782377089882327396788901842046161958652826051531105980731095804852386359206867070726164740828479301485842374288715172321579941188329776016306622997912704177186582689317391234951443038033715636366195365963029257288783547148425782744388609556050303263633328170767389568881690974976593882517594134220108787493040353437047881242275548053192299470848867393413844271288074805704088111187843926680029038168428067173373075377094535936894448660746128479678205361406045433284089653759149122542836285692541890427184077432715695462332790884559257097929469666949646310363311852032050869163018098334075213730061589678648667641414070650086503661637279387959082047873258496541999832375322909905143441994148659501952605668039779453765663135179729081028444208334935113736145342418619679645487828114436261588114981251739441937230253722594566055584336819551152015501483993790024721212721000237203816027251504902801846822565386529707932195544714064974543899007739036445594714278469667289941897069550778490750522648636271657374050254481893025607975126682216995956248502964017491887203790187902341137643592073953898979111472759348766884291122936986568636419730081185768398812677825257583305049416999080684158546481611243072449164662617790342197057802825022452892089534297045125395858590130508033480034968294014412259390910137388261621060440217614799195196452072030225311421650457268348194862742163230189565431321587537217059710331215192008187990392285165111200270980715917091753765245968462137010584750219083381041970245910173860777145859175264447904728034395955544032096456159394398018936290618990945717772457011497056260375498250069470585209836196173029984951113129774079535363585672934016101768240798684095359663132365130350950220379577956171432937593384143632857949103628230665957487213815757452927952131601432199499657885991692500400625031112624218375932732255421793614977159115320935083441534192581885993549819062459376094219046709138894856571663663711534626913532884047667190145332427682937026574963528005516067811877474705068867816700650029153679857097376859916960618302210444368307714078565349892908492120487358882532271728381701927322922141831800711646812969468325841941813344150396257108190519149683320425868511471154819140072458292604034924170233061604886193165774616920459145285405195083348070522934888277646546054572496235168174429313192881038765341362761288596043043949234909572963835633877702000366971640308563936073291120277793175754290156956778102940888040359926707596043518811893586590721099434425749526294533950086388654274439544138264460471011186336992549196153916025353277696778016906332798663573597165932164407137664645211752394622803106314046392389739517909075333844719504491119279233873812725636685607361686861972849670719153120841673481669978477402730462522113763815264136738613326205646691178031696790155891307806283195981979326934688412838859399295465664712524273394133957721861704235247463825791868571566251348025998037209600307587366638832720755597962348597451689189502179905059149328520129923298917429335599864364339038399018053442997035715470146011601842098022570251802033100344827239609885713064681347009134057169770641845636402877531529887052316373597356015760147839607281776237668566712580498166888698050337473475807238026448992289782925308734233873264363685028902283966968341696326448046658096346543957397529124339196845683608555381609818284991181251916094538499919977522497989323886582656445284636457376930494912699379934323956275578457310218147905454660144841554650312828437673145805686861579583458502818449742439310276682185060811559366352550724600791101603157618438723874204898065959841707554137229769818508379008467682915356835603972512856517975622910524498264837611740531815113676137433243194181900448649379012115680467420105849281347468386306869633116891426635775096867945112108747419315643621517112110435116480847627885566110671291551668925479829560727587979685832686583792469769789336956329111768379372594269491964916340543215734225715389154293851457730718285425914094434066805017680077265077095834750266031071043951699600340990694113167241793948892874772829178839725943580821240274821897006413829144531594977275984729606217456115326915243216085542740415017229890663843681375132099974689365585349340595289039919956363842181474979142765219394287187095337958380659877718442830745462775469518945740436182409802648758601663747322725065934125423209641615384793438719431981745394546002800412428070616816916440124804520446320229221056087825476927682021900482253952634361599931556821867332776507170510660934688935137178150407277269109771417840360197383281214745095785424999778093507586269584583179110193172444562994121801954330168667983024329831552501284652995491809375094060814845706670407448993622813408308049467388607622606218767014782400994282320817118424398102039863074627973702704258813462159294788614036737199580566155811143029951652755669678231688210227416444848643618921385525777576918262110963346546083081457739579008830865435419844003124421529222810487938533645474274564527725514756736829461109289285072657402425321860564393485280612929904594802288447562805267670599190174359506025348341072865088842182552652128357382435548283460435601179218715654425699779748124281778318948044222620940009596124007593308165914934094290450527934487344563204763401273980375244912828969340670932392672262416914502850559036107435329427588643552812371448960944411977596355574754791976334098060709544609042389271637084958180021601774719029916597514185309061880273169562670834297964003151228980544823492856425623898000201744964157136238022294394655157000611383335181581842184119164332643610735488046179473682988257819200772193121719413846872839181790460379113610052310640667840267670018030867306799060338083244587012366096932936033865761544002458419682624487721550214240838907145804008766799858502336839532796918812902930601976547169775272149856507305179261697541111643444293532487566056011445634199707041063973487045064307806381001036822369195995407097965276018917783205017515540162486152659806791908149079446894020109523395769667968083103363463979971673946829816427033359591103463721946970502106242515724297065645065150753662314560241953062500143786333104054331015198431300511927778953140714185891054697484275201056908912432029305506598119045195898685243799467273735815478135335851631860343278897151283259965324634476955562304356483421703906116115887572621066209719228580567895120682080806843813733664701484388509467333865849500218050991261378307729777711942942694020380646833926073815311273288821797375690841291280325881155670748866209657417600640931914375594805926237325705821210474316804647714992479742608213056533767938197929570567823762871693700678351124863642092507288354746708532826841439762396954656660312138446768412910197775716743189029562955936288585817377002468101668021296352889725761234226143140556328216094000977201202274403016995087937180562309587808226424575122197390598540140032794390736211305332776005087595144794330751951867344838006312543221020470054765016189117914016595419667738974383130286273826659848229153212204764580428904430925149026747285937006723489838703470161310147236476960093020506139265862912721197416033509317741609264287419383664200875055325517052671295390744746371933510976967178834143297527706206609174021754959546988390547260549200918528050090885955894605691082215274459795300980245964746943774431672190837663942414609642494874718639451035850265126387041356938880367432933381240898056217326946760832535338854754602139956611490137701816080333968622757911007673371905547444397698297307823119548661864632302870724850592504256482586823113068213012040480280267095232610490195240352231327243889129582910294244021185242576981751757972534512601060967053280436004909869162555238242045154232039358411459126778502243962022494604925361632592105357778081925028909840905371933301835758705239370846613680321287647551817005507407758083767747646497743823972666237922268490161434528641736674366600195750259546644902944209264829423307145361222310888455405206713242329630464496654989670501079143138145400724621176134483739917802664547073074668599543026282008399432914894689908449014809436020617684194031412365076745630556485793224113139518223030939606289678966180480555388152244935372074453890885868625108384751993617571985196437025019205026775672279585009066182753843016001057636319148453140982089942271200849341785514937622184579014257790414039687810902307448086587893259493302542436183495313790335949901950790842446440409158387070834893239098169520396614808164599843233634019395273651787029757405511946819087445733851799297434710197695372517130933383931747726392789829964206543999146658317135012451671516401274367796172857474205789183851604183066841086149820673714377455524381583534456451370922887000268576199585963001213522815444638019803415872770547009582284906511187790254654832733344299231407772751027351621513575435349170670516926720306833885586811165017992750226520949796526180764560402671515636753790795920298727865160095504140625431807240613358656612685969060891751209159119747167277714552287962229542952216761868571530219944953957191721234178046150299854461707688620290385448168615612034253556284930822096941911929615530227705576291703209129167386575497866151628199115498126774993527371757415193630213781090644970602698949049774879632745218804625919923934450530276512222371520267318171484761779807907454659717783917392272481588232697114404838199891010437973411982628129116748798132768499650881988922716317901638706200853894251397303830679824775026714541835261542424419599232772164374519803044131806094474869076813832747016336266271434932422266288170443257025306253758308306363701590875803005042469574871211298895431226855303772337524617346804990353173801572583476925874885596496619881785165066270353574741393682552456864618451026805058987795238715316481756432514800537514634280149669123533004042367933273254445678474576027049230255157119380116109611753357241194179261319526330710051034146856506080135826415054011648580123680052169049670516010236243538802973649772051943462246658068188888331049099894875158472615819520290811039257369272976342362493716280532120505386988826501137204405056466541692303982402171630602758602011721542663505111804284825361849746435632139320268938103742730795730102492501962277059617758011279946947894494068821846165651805089270865523954265093237533557467830485127981116144171099151262737532009063990373073441031268756847614331812710214283234737258071641348359776985958045185200227127629080198552109961520738157782675256651536218990064192085805722346244933265624838853049200480064209569292225587977538853955301119307739756036580348706972067197857240563305051915059542049971377005515130304987859975383388391762003474012858546305060548398421562589716284941153266126568720796180214498234324930230294564805707643224670079839410403327823833642410941351665818787999930614077968188048417043064013687373889871603349019738196290523827273536769936777925980930263638277659562041675451084845270042102779710010812067801378014129734427278595371927731984408069979564031176570748597517516201811621685014518922428578789031674062194677944087578406295527442092837275099725626383877955986950923578126655300809103325921664252361593796748498090415972077164972881996261094937069323434648103350131774116186958635469586658751741324652498863431690804602741737649168300211980249812810113168727492102619602704279028288246392693026261482200443978557915404128109891429640774568815985933273226077010896621100818873576004130850253066975520778074605066644233868097970843062678500457485198778634689804339146065443834082936457939947898781856240749005295132825382873192146044430070750653532035770734581915563428769461862894664733649040479243657439822824160008274092530227789657424418405419008388809485922783611274674779156994057018097701440998097599669123558371670622029278092754189956468279680800907552572524137881428332094666852455759875577313114212955065873747195711760259323419779771312319020238541479265454711388671174672463591822086825188867381781380836200329000160187977455549014005377333064080228111793300320908858255094686007441080682553601966328517808157373066921915968699659747166931408359903984281435134305089824146841874948400091226081107669094728379255244029906927802892616952990247120125270691242445458149207872068728309269675543225888207155568496418680968973728726965548491244758064709719090435640496842368404515093948232370541771955506899707197900805821017707165483852090944862211431074674987179141607311234339536500559241855067482080741085951250543339907245012466810899413189154169578638838316076226865544219331401122163809034913366973551548702003853790577469380983339390634501472915764695440058477517533001795925368981631284487623691632523728623643767864993386220846812314632192710136890401944065114226706785137945852344915014612067223248193346751616158892009256197926792274711024591150060988633365687022778965847905349273995471708068258518852348786829656733410782348506641469526582803373362917962285274076549869545542271916360485426022352544408202186287299620506430075569752272686181605344567390078312774883410522962221274070073580146225848582858561816337688140189650608403993254142867229205387117167701995857634160925213574175213252132101251619110616919828493408522259311373260337359459297215529546996955866902868020487704658768154797720548686184037884538761520087208188548612422923723274361737103232713088274504430645102675784969888530467184935086980184658670161445176713600089944108490634378548079957277228836405173160874515711860169540091119029547701538493877574721767962596814418020861062566993000009087119000118538042216451433703927953227917608520412930145751241604489147979765511330425119254769121953962461641499005675271200243140508549117382722767260195546390935041514206625899026034822284452919039426953776678078838813046185856276107216243925496129917343709429082579349232417209952224562516253609387951898443817010915276978386024012740812824168294600715933572934432402736120656555066375757707784670989886628389113773354342039271795402585191515834893990664668336425417410555799432236195288137890047897315981179522633076155567359367353088522370771645835364748453773138850076461283967590961240121497191901570193966198544602110023659798667826925368559666570690607067011133662151190194664925914060469259842859415153760148347412892100938458746057912713856710444584428511638845867071721347780108690378542480343156859291983969820757788050116885762087820290987966901203840969106669345404754724565058505781216026179192542041994311537210164824128650961535369987963943671023648756312493256200622968510664542919297064992052026249737295462890412252376864328315772536705056357662376636951783032296484161571281522715659470339537728108400252701370769478190117337254305921176253042580389053703326310513906879475303681577598568966950594086550641192112188174443208476480524005482585732749937986590043090725930792161165205556866204364437121044427451351519289438824678269096374605287237943978400576029583983462371503258120777484733645875909846792663027398680875590807224216448700942644031550161114203315458792695643705890615772838134064566282455235068437473109590878570701781985942540662067889860061415070986248478039087159936853240521165483130251085792421074551810485968305250975852944256445982652414159218312152936316283840329745961657999663398391438302704232456447986970118572344483176886540297723846664678701283907994680186848373708285835992810158136919401521772056958378839007485754102338859281302216914337053577897228455713076266901154939368755423084247425304755064148398858461365021821164630763193832892706120313607398740220279770388330910955168297241595438963546949975457462301826737191397332977769887401945995983636411536314312818246614216415035143777720796237471441641949368015865763939882246377149744445038444827985697478824661006811957079430586884838722562088497925152624475481864085470231526524378868683854752420394279483891472766434800258994931999959828711129780587165323128271180822935159545250819856353699948197282902551100032024601867596127595602649054811046783832246207166316107629933430862414714113979613644781378952774129608895964647547411788323249097181610255230607167933608001713178166018125440901550938356408817778353819825531991672774757062280493972000298867836865895694621579829306512676098409018299275213805063990651638531765325617188747422051963385110845641793417959862390740940709185903805984699512541629745646415735326970264907448740890564567353596550882779494212921775630647703442993627393357506730359542992202094488817925469734063585916480428110182681050543721665510710128701353447490567999265204917188485277564502675835288641079535837776469297809176019836227488623412470256395579684123252669369846970472588670053450709240156511280009050918711472210699608470601527650306669700070082603703022353622232338461664983855150115722461366322850936345634284976995904954729388309694934392317996547925542931598796119578044417293326910080158309006262438229835628488827861310560177422680182935311876062917838900105606235573938226043437275654099588329958950605930873011579334364813299493922391071741795441474648457272100149763354818510647252288245648562726315618307596657908418417172150918014505821915748612277529714543517755277658976309940804173361334097752281114038342458464127857076158467560835292656659555411892094256007257612873815513849264300727691235251114400616374800404113489677830593426098806777024116317419878159670393175115434843050428219825901806247348720148964403523845980630164041209933625040110913778472677141328924500963558512508075326022117239069876049996902040192384856259625300205965294161532988335958810941814022936044984181625916304755062107509983711191528953444618159368293023830347634537816117094792902223464137939114721487423571089110632736493476150321333909428959930320737028228996801221992286273765941521461119119769538498736602417872841720687793730019401901557599233147507684517587272610961219455150516436353823077712389646383125985206326524773612059873165745479511525337487876032403644473716136752229758049649671932373416408030905485769664302340733404952413745961569858891499881164010076986226436368983871865980116808610093564593200860516567140158187112221934662805536369263022017687623399382117522330030536370667817987498799353174013918990430696924809537903601873498973540733525925064830396974143810365283006461322073929197931458641461363417249244161735050225861936421766655149285354969096793648115999846590902382123132376393583749642687227081058889831210949212568491142213964222520643758581474602634452276207833917543553276213902670724386928338397136980232864248958790682682039005675987887418418204118127545015786239501173833876298593330246977850199764494074886968717930677292194424945577556265101529646043009911033040297578490513262705465535435149136618708699136442101436739372738019147679136385684037739263555636415797443618230239429496943897437687042935339321598847865972875052043070671779645682683468970166342545978031142369297689560799621306005294636359505780276716568708373647701991908746109912801665436193919010006650026663750039850238727864773087781819834419417510006890700973071422274703050605139664320030414494717288299819475366112342335691818548425259598188677579177116781476076780865895320532103327440139009610054763336348427376829070617197503067143430792805245815137706460393811845159599190254502771440659126447675491536032789416980695698126380439665436678108951692918195122715658213088470156406944166768473155664347384799055565813056395576750934519638081964564204443992920823181636287774235410036037708357736121658788989283990447864363335790273019089037577464948452151121222005912622453053186980619641821551128071295614705767536222172277341932584760706932449104515624791455253108206247930671901511809296358154334726251512450310829278493708699005991376154238789474811142629586422671787181155296563403916141062016951516176816421611017860142491504234432699528072546562593788582073750763154695784772862493106498666276608361585176996964224033433296505445403681852102069223245870287437156992668523358432304938250549073128998345339079831284421330635553648593415824425362810319583309207122227125748303740985168133188477583280604474715818711648387515021994234374707111310364734439261162292883153173705667904990238533050083881281763274078540066118615031729800283615954150898105701702047115799446463450274060791249560323008743814273027028795502419437501100353478501307831487755557758005374548458579162719037220456068914498584528982266208008499816805241929290582798422191420679985056883655372734116902115955847346732509341761769969786874316008127701531333424201713134306908819593878249896229792435213512349410755337464432647352459461039756282927794758958133151170941488343643540583548258014602010707101038979329098290688413528646719173114624413229640897002861637391111149692326245070523897446078908966731565242430260639181145272262460394620786838908779391063435575068265346781024268572687017905481963835831418440969417440107471474822868359389100890112003383697210500044063593249283617814231963865214887136347726723503110163215851247068387959319697402080401155864127435893604422043965870783732575810361656785782217911725868290312195239477211972276966667182307498755293717565474778679928425919849341078485608210602553449851756375195098083931431891286142562000120426749491320803503608439418964581314759618581183973598690973477454516266430841383351257999274316041285006411695740519640842687259588720493390546074990826873582552105201732895618422300781887235554519633374077921372650506257468114742130126827861841618470798715098756855541377654157235516849743605945384101935946522817302289022500407118258472598703896240458186185429753467146840030139014336695503481900772336771324146173765916471174083740863655178870416236799671809247634104827612859906589406958880857560994045647431353586254050258108078303274899168071897615771896035017787714263320936895075209636859062374822153069298448014576244889414935126887912146765515717430438025191472861781936795406696328569269808952590454106673217641895652538288295553661171347295613854760228925925047458710554023320276793868279676160472273117704727276069993831434813989826878845410794142690287652652270868649733728013786920361449292239730660336156944662754225083171377742893506606886682882308550135219662667103263047742861509182152295629953435068265640711345626982878890529276118434613304115020211985582853667970001548644961706885449516470393025438542833374588344856755488397788231583680543273372908918952074950979763726770540427016442503337846909686046853907540772317609326208667940546102058262688605105750552424465969140102156367827390868856719878030237987683276430156484908775768109862173925490014784879895306969993382678435128970026252736460265702581385490190448675222591451870955138061550955316704527160522956148869008862197176741912614692947133028562164755383300439882737738374169201058717103427629188495696959171375714242562990878079015140272630337757973142043499570507662156510412495523843056383184715478303407744490620854055946320689309694366504989937782196260736849449591991045424753179573256895672485615415999975485911612586835732022333864420409590770067358732839752407735098048724959938319688714649122315464917082497919633576242143405323658350389641151430367550378203113792970872749378070145549590049890475755802494702823572497984149642448870962756547819480285785088462403067441539994158983517882027700840771646080093676758235627906118553847146953886839327805321511802401559167239149092955926328239859987098395490233295474129169647736033378212312411609229873963491398852988578484643986406349677535412093918538366785600382099596636817043191041862857095337631814733851032028826603360693625902004538117064433583400955317376340524701298010051746433302672029568946865791741308697164690658550415194935046745064650483009071192813386082332453812944049509937966053048348053293974967852442604472125700265803258127387823826200135264010252146321270360087796049755023062970191954301202493295612789056536889043026180381834039420834521666969835642287287065645441771896260964903099463281232720806128320687941772111605186667092799659660216966407499127453366808155492339308953938560539591434406324023923885223927460810933116688750495069104586497302550780156861931160001315789514017804653371058113126715946957546847176332941569653366463570121812647141107482291572060642754988458544600065665480533925453108204973879757462319479056991878489190251365751102424411419942837506952811485956684288569135878459616319527099101051805372830364734026498192858844811759144426687812637948294594737399222563834014455371952194193658697435450428422135355816095381381204878392846948019405726096338667174993622948049600267376554075592666728484678977106821628973661950701311516738337118334233619279946421855687330247642023034561808974327746488527710812942789976417940813730946414756566495076720845183340240689039242678134373082655349339047302990305727674120445800067398660498423269792125758754897670767822350310144733001485580997346627352727046747310765374098416894811245059001793722953713968513559672956240895051322384498691772938531012065824024939289677925934663260588511426183576710762988905455483590292668815350770204078577758663359832056644244950063681680261084327310010233813194092527757019322881669102048507705000193106879958183324723236166199205617892081836007320349504668968775740457260555580524332129607657804990830458389618072154552395879654102113648396733278391358745744815567598952654223153365168642002495135930496696327723428373503993177000393997852543295672409041789682710964154993706835978058357133525389777820976568111908289172219491198597161967598222066771173688176294992043428099415494328522347475655136254699873590832310622185883610772272580797584790026339664302630529457453788752147662593981967951394340477798285624427304881152083321006033341411341848109396976615557781935308501741882118965572634726385568704728574066231329528447198359864571870304057506008801663026592745780960127916654551704828716268986108928695699183732282526852375014154859679575695611867845925737639186132398501785795337937694768392140042953301450817174771768937881320703677746942565066627118573262477909112359532795798981701484299197086075600008839115850506716196106712331064687170998551726554817712093907677371407736847554086306462379808481509174134440544117295282296990687507365071044519761229866561321042858951779786808100590880814400603851270193259376057283262124164359734759437296361165148461181928448062214306494917887991046486863308251227492060972425009649775064239011591151253700834110902246334318750558389729515992785364466867268153181783645879315255662114601819959172989034977879850659596851328387914483132876597550522684451777122705641228042001409395285529967739250715428765809531969081647042600928623072370390467555676965358548302990122543182856518912537883705719912313446376407970450468017064409797099527489941301228980494524903952098106066410018109329413345357944069720339617643456211218781931113212561922002002193498085196163339167145241040999514323124739072902736657514825606120333046816429483103675401722295825497106683002974445424318929013897466498055943359297183788195910102100675917828484958451648092100689637536129044453276279992827657082808590664605582738701678341140307505706055663180583492853604275636664489719124871918013013722076521428027016810210925857626646668327039532199573611435272966251517444687784705892905930898670552679848233903774594703712813487171393471002598334645996133913988786312250354882638336680015544552013858863259478413659944488488156371624747202987466088497373624515688830113034823791894553719643027469491651632872997809285982480906391967804270867079023810480379717989709659389820608713189164406835243949954407056384458482236737688338495218707461596987942767937824239002596744601534405885888786770641618534321640594831678903137324869125935148088176486294969333173275383471248947685131662452266130262021935754413716637663979309128830039306212092443024728698082932773136444204188788846811619130520471563375232076769283074674016303327007543781560438420355695625541703933240809274223779195559550718738121066629802659638610844782632564606297308424962244864658038136100254594116777394652166493097932219454823078000003308724386345934488286255298876831382013850598360492865011199725312760659746844695491175204467937766091301326043094096237708822590334520552724862221341946578060505948656899771340222424173848154497354090874513800994928688216418545253118868340100455777590351132067621832055031035159727538920359073962617220626867178849932455768859355780808591253579653570022662989631667244978361677734173521911663695306642826098514595746007047176186246331040338257699038919405882503109784479978538840905521866710328549939730728815650975893619422651791778547962938050216347266391185036423381955615162666418036180551735463778338834839010624698647070680021155092180274585182870871865818185654429451663762924897820676863237809412285943119923673131728746048681275579922784057112038261358901956154854158921120107848166366287023176907711338850699474790112945550191554294403377508289231887347449323953349937610897526730832757363964288127926052860940230558618946917505439728578439451417371568659845745409332147778207319748708393207715058508134759321504541902832239973170372117951897456713260722134940940921707175810157545498531929763599145419613518492546108680974294087415940017047452670611115462161985554429845917425444657060977847502124930785006818988087714921585714991943086978647079289864544411444769716212860420557680739206069136511722719265562720843274661486715129095954537558460331426873679031421373308394802474514417453931805519319431855685614810341736789477061444673462619334451194854612064458135948606147406191277652755236610631395198230847365155351347850996663411483422348732976234437749829502985734207411910754285344529597548338786661071707831669168757480605710755113106096162642852396668287859264142269990427021786753948003459602947212284254007252384515648193409353024470184976210850567845397815595918451024012122578188320214160228748838168736194239226482924730207420706601202534928313932542434208953856502389405461358153373266800729526418993797811864073947233337211184289995431396419891036990970182002742789021294627145119430016037842610256554281629173797031763450711648079855346810802880508987543088158313278288934002393824716682575742457475738495083373136329175241448729884488013503990979970367611655278062272920548830302664899518060768569051465432757722501660388501421700220895624107476613013550735099491164745182128289624898372706432444504666615206269869810467366112058752685823559302116156166144518388212109465373802156293289653075969304179641377498752129646468827478361169811874733793048208976907236996918221716492133029090290987589934439604263487924207307357062909660374869893202611544635064468459864622901353592138562074356742494358170565772554427893065406365590390481493321923433403882570395586921117584523998261317176415389928499858818890126026671133123009637917612850824825372971948763860117366941225305004832975749447183038258334175620486815229235469339948349441351807958375149737486009781398748468837233428725981272968479752969612002416227585635579102664970607417582231520729908364867288029531665941982058983454295390191651314739134290371031874970188615639879426588438210035022237120982733265919894254642337221802477859399004026086174025600032342823399257830581371105414371804978906455429861382423878323671844764881790138604970557527981718427644501708126620681778133715154796398246186742845891509640903426605529263434254855558458892974196331872303666543217749301373474452339694653349778479301175724439689380788044521206225602854134365138561496958942628138023123204141930564928452996822730158925150476289429843833000958494342763557438939642583133248935923143463697945149046225347469767579144696738596841111544750520945966685922118320370401725703900036618172706568040849982059879211377236787053069380726317919529473572494558304426476650851674998920963802181840486860766621698997501822213789366025898705792713048182846229942287856288279157985411361678966914783213415642517519057830434359303017937566251369802969055703813659672368688000389951629274138081060505343734072256493307913569764540799952007197541250317228555584407311792002679032264390029257844012718319380168279112406466009152198426910268055317442182675332978215944974552150207278747223184424199108285214548458377130027759608688106286817028849527648068480916160634985677312453916929132503686085928472691182959852601085271044576343866871787899292849461923039289939474408365992001072091073374700400257475995980767945823201675293228090321138701077399070754318126909969140272558975878416481490399015116264566392186203421408769101688463351998493490401128848854685147062635705254584050370909107969952035525609475239049124672272006737697426669313142651924361654074961571454645732467842192226057269921738702938672452597849469023962461336672682030326563658918528285035801429282533782210095711031951660999627044203297599671306128511220448338055276814235008768492781530075671497708484316296911953034585679861627139805998045676608614226671086756379096490916037344792471630091557227692260956641566173072476009987346168766773448576355535541933767248846702218409881315051899496567736424875618882399941692026531682928782897177784101918908653555462317616302461948978768363845960197101966486612263162501977968557113059021482748859847977476596974460445215464120557428182264662682141114593849143795662284204236279927835352621296853825033967879803297723622222917669893264826231059385614774637768140473640430417744096268836661126098704181093113124089940216718001233452404955733017729740094181164921282242237104162012868199945064806084510774324445163406899897747380988117288559860432414294545310656801570787339966011943694653849241723106426587914599700979222891828850164747714433032241382970877315360635594405104043779451979752288150675977937858600203452469632806744513720512443634233911868456476111802789896710626097670824089920189195320192582107229056136467849279226625958101301011292335001639927765831218923049376246186113440534158913237797450029038544066257790646143376138415154246245225717008994273306619731436333370916405204902550070839242271118217495953191935491189955449833630369218301595216197505918994189200927042578862517537918677296616341783761414826115932925234323064373206171661145349522279533038028898519437655595142228329029163186493521896695580511280378670415884277219228145685226048691672213661593132042611715100521568457007177724206429212523475570495485400441086749916289158747182928896494346304259768376566646485560264955438935320636062632311431396108939919115300451707160014091553200613894115336998977400152593872926449426303555720828549150153107191781577664926782727139278302939517564522164602960130704209567109446375884569076209322150576038231903770828766066555244415763976039667582395881231661990282632690341364438792330228807275906440574389187790024472386567185919032607399055307617209283393158284169414570302563836942844552499524946643011101043292186394206931139531631674873441454395034901642509919176781817696404863034360908301761165840193183805594858684737541965098368788939310612813426228201962544405346099668071320639920725090052339971135571497416999495359413107845727000215293811814746210527938442315366528830006113160560892955373717613441844312230161247928401424826534210822816888499352635660247377247479895360994250393894554165676285809810347031540646468231940220931934607985780636285117257340316087649201673477956243388132736344717279691030241575528952727178752762913918302337959472565486083339748474345296021376741207891588489446533625249406174513191701114856638059274580881463464679902944248733360031501154109612337051835693209996594909816087537169158798649351580230760911855765266946993751711317973631993807135002440619504223668913718202204046251578170264674404102096471513071246478601992531129921612622959780587774109282255860000441332252830442646755249967340521182679589548624160373881929247114931277202504189422104811539699791892134163505322515128926499441987264302239936470126787006376230776770502988385810322041563052126615105039514026302762400191143592090866754651820265438484224881486337145453591531136495020430526923807618448799592323839307240587607464376816211510013097378316608569362599468193859478386476932258924477930431694962068514441157933794340404428315690901445099874247128967428398311611123762919798105096958612188359219337876197824504353888019404870566914502408211532007900264264341487167230423466498964185870899875353336990343031799939693505237080098993843384352556109694132773202759260849348619127669127086183823081454891115773098256962208448701251716632655735178109917719067390485034935012852042007544186492956511997646587508544883607264650225812158138329302061947339033878332239807126387913910671354199328489114147452278049706421611320776759981100432094020615324847028452556514570533744460243127559473426706519352361587106447517093948706756640690879084142156733728163320557695616075370442802655004822658042474117591163991415014127842320579189306579564183443457228459329411514897987486623542706915175830584843507305773104425864323561419736921913442559673937105534702655684892272839569648431790668727610954879427597964956424552850455514459768882865968720388145416932950817500748550443838600119073797081702620134866048427681572512448532960733016948897655478175926773149754116434026598746038770500088035789105851249465830542078798277072053897438169874872961705989650136924627784353495688110674580511021778277385829602053472487923146776499073019497025802089648110206444862705622416840110900909094873349833728249698299236952839613038736133729661760506321635788969840689186451381876494187063788999795933287980470885198986370095361594574118995158826321422103283858868611134433880105206320132066934822760874216329902789426524409498101558104643699170801652816057453874783684114084359727819017215770720470310978354558031509886309421203757036292698389381038962226630462839476894214836932121383312610279831746052393553295523113812826246225257671782055917974887998495787867774580796965509018765632858003710817811395700193064237970233869359547798522182843327160465401519159898948498333119148174506440360863205148713598264932197668518761834371749776102728007782372375569039170357349632320083670871350059586606734312362443979285085959684596663318129311699215602199433915319317723873951590835131625965014614430490449891140124875262390920069248805851163341257788163121914052663688163147298615990273889993703087640194086628672748340037398747075256727332905182312809886681561213560723247045470324850168654907768468620800016309667209238262263930159660630212655203858999726520713433537875271257953398363368056382091242418500621278874466847642328712324140937662461021428018983881457327413926954509125434144828121398309072709959489455886013571078531277855377092226742243782336743447601931768086683706676320936327460024151168507784598673903575598975733489165268608204383561896068911882220628798757373815329176544952316122161604567123282779860601130507258338115645507312914287308941642203289216229433215015114953744638464219289042612052479206798485554948953906250419054791416120000636712983713574918476614427622271420821005712054854689142383706034433240385575349902616262736147464444343849149413630014609466927869855865296879552730443993263778865585489290978658532726302575274496562558515228837558176974830481758365377974656441503122491140842572010597862147686894687952983168050221063612113902170163140858159689166320381726029096942480635024364961426180622248040675341297074529105258617289788667673782148135178993337193395536382597924349408005750731297211894037511061243348617431894268783285978097650340759543878306415869585536264192045236569212576712933195109285270058550234518791867027502008885053763900415790852725174490375208706724154857192872801816176338640617663219274227563177145306089218697962588637079562924856614105717747848035016983865084923043131636517584024026633236318464100678574630464158684869596919315758450741595555369502843940965699379537353304323905734717482051633872104060436768291157987373642765560663432283743795927331022440553964241800592668214511939971209499440011106553159853860039328365695832731863005817913002850015318600893185994434770504913672153065253631493177013982812829920806662913340776762731767326801921358980885267459984850503908484713797777250518899286072319528367645900980803103265123951886281080941690874762900732230407209678674101377551640189358496056088049091186508202782636885078080849228131194285017067292727895415153086415700212006649727892050909653769756731703609781489332515370564564743480130574733715351355728620915941178680809329520302902628750683723876284476430924683498732052436724561114949580133678492309369428794937978572938635872346571368271763956699854411571405646813248042883633518445937261956184594861564001898367094509123022096813221968504086890154508733593272650736097887463828028940128499544124484675773113584576444545766970260267122365008654160394031969616038032529570359926914389576230551502756288939016978503477130461251892184914842879657335261694134649429931105079526646926928513873739363455685114468938814976465623542564966579952518841729078504640548050432404955796858154487893185630308706534706378426017324287043435950670176759462723413478856290709715539031568755267162593928510636417436020429264098856747577213695567219414057198451372244184409728145035447457750104963323844550526649395115746429304750327918937002347550853224190041360826271653929802360606367507491032557316990375076696850814091010258185830388973935644771264828141718340746805799550312123475438909891421443039739521911152694400945332570363090801410541520490774143476538473116306441254126143942165913672263377163043457339717846091216922050881389941107693748822874839681018837878239049889617650672629584780407818843514515567335301898313312510929959418172775725142795292381873037291476048746218128161654883931318439201696651467884013030713599927142197095266077479865537537232999471101238655838432515514760095312613790095105252568849950830652726024160848249017253661384625776183791871666477923477856305119612973930070388917348292027280188093515835453518099475140341259247625047080824592791825418970544703312321918183555188313902979310839131293035358434117579426096894639515604129723229599179236149987868676462880938018113257034851183135911283963813413378091511431226727463474831365208417409093361328235808974321882075952289337541163278857349038158525343650198050920363209198766063254511213462903758022726380004972050293612528683955598976172047932555865596743488059836422984842015315967454445985087653672553400794251247212465546280093148363118023396463857686707808311629058540327005443225351179596125880480621900589282731409250433953094759385708921950491338276490264267200399700035515011729520015215440975573500254588137108937201667388465478529748983873635369276199070492166730052139087004533092613693343407644955699476827753853686040751089833646135072431684606899950253510691319049870572203774443725299557500032744646254918752354116003246337839645425543219126456872187476637785278782945932114147622849931154971786002846965262230019359604927122940630104227270652306926989704162795553191699108075622768606538743719163995690159650898734882808237845973951853577018379736921863780571522739826021386130639869348077264728512669568993901321349411242114562745972784081982648539072528252591918798704658707115274990330379254905691855700652824491772374851252632478076290075003350594441917128506717376439239568292879900440338838854334740390670706489818627124678115821291670888155696104792877466844695375790708592322547014484949712928150573125701612561879526473016404600511477555338927038278008980144575806874961643095679061557685696934223474082396375073850894766376661354317938920488784344577365098961851084056240256496752069477051469186694418743681485473667891589493575150314419989847707410617457290113939016944192923684474318944933991658698228304208245315609069685386111096411132165749540491487619209873368600587518953102140608670866919531866675979165216838144695344062737158797065749012485037281505833709473235515166040907589123325588576397416964765631898288875740672494939327505346322297780928072887945161481174250884211000820144293829157998089270520494190241181424295707870611334055188813830300927106752898832711428985296191153623856129996884368372760671901688207160067744359260862788650792432210529384692773108604484174407739258308601085038384874588297985481234812592449829927591965140890894036819876352697194993708071168472195008369160006830392910121101208810516502510677926170472780881978627840007124781053412982746576356010980400043662535674411962332984077786166825514856279740872405382307774675685811487488295162028158067625274243235512565180887390432600197710815092448391974446506205177446623826619140137670763997017795814122496384596929267603251841343712211036421965173369638438160124880782999923415445193755483553877240122868864408338519423094137923637755939225491189087037769799852418199812102376194663964434501769457421712063465869016388176937960328656762304152166061776522169393212415818388413141966879607886231736007851169698007264682315167689155381606855082056642065593674210336741319020047341316978710907387823174880233117335162141653376137289205236851516563610442434864861197521503073284514491176792781805733193131143807856393071490818961018532226428462335010229375172909599304684727783605868757863358642563965707901952377326348599224714194389585929027680166100244627639311317340533453356758215402830807678825211252878815078956162327063340610944811674521298452033406447407157203014008545698615728984345718016175025835533802018371288342029670999362860419381306754545151360002139911911778898069573270404450931490438905165322663772021622632190678299635922586017626253922712887343953593688417743926764386204403224719030518266735451920160674641629601409078450212473591556024055220415807381998965852518373817689442892482309914732965544972016151354543781995353649545679667266354898901596217941877097228094126683073724517219377681393231919163489808741894023456825244262547911804683344131633009119367703029573879283556744024220339819332510411097789873557731897062513609677765713977995923437927400610974101917118266197429901536927978494855142041589531529059228612017634239110240920999364852162056577959276958896148810661944267413450950380530034317282605851320384590439424897115367175198235026599597600758784177186047773708246910263152433166352050754089116654842784082300712204788504122457070704419889202976713010042539815125552467671186933693129388528011149937794282325167378744609322005668552711372698569736422609531289978663503351130818061052528590427505827552626933723464272764575199687017488880252929252198217242438435690972835002677374793617808883158656719851117575746963342314973017341776828158423060018255407142925313284539096066053287436753424621623660912014805349142882536427959729515011450213558722409452755511660523686412609959182007122344159746112946890571566437920843112586965189243751505207020020048246425611252785598561649373996989069816912378154205054732075880157188965101630685834141599475206730740380976235527349996098305632904833999628836594179047357816623037459657345858168097443625355305470409119951281849708977305573908044173455543598714310657292538997936989614587878573405994548007473915120320987033312106079006676400448894019186520809313850034185242006778857294056779251330355193505961286604998477165716672647957722544627254306378357735630544382071582848478045931871459367018036655438908607598996540646126918015007109054023667773314854294311019882258768136708571553394629511595784407614614495712031941031729869451050416568553034719568167073723252210154645868406371042347744000122225020729744839713681496351564379295955296457458493247330359655179161482959623217836015027176920848949837995044914984977708800687076568367490293854502026881492749876430834406968474514756038267694995620141854461523876531534113909968152357915728651636886850571806554960740167276989078876483692852719501318466451180544342836451531319020787236975956598959494197612131205622385271313277758604119298608737675287210815629734854315500907141729239137534027362792956774877877192618372465162505550145174192378569486139613476628498407204093978032960376614969711269355402350024737614119823170864657132120587187875917264633503269593804901434220387566770343178950868824249378861384477560112298541946468751668030183933783335097041024276597066155034478883919251520941383200327614058346343803556474173813831155180955133061478480713634057578730191955166896944034723601808030022696164161891429283896963950412028870653933562751367819539725423096892845447168495357541396729067015146978574462783735289207395871549258698845020460089618193471492618653826084486350607609486237475394571095527888402897637221158221635613894933952964406080522764112988708206902060790257267130887529363402165935760705747756742250344162668583332013072186612287401009080177538228641150212118097667622780077883812062220903303591379210378861011409273154210396159530738572478957937714584802403498987342338157361311742194276395154622506861945848193583954673804547742765299127229988735095274165076000776469355245528110340477805462174689824678828644351791423132914999055576411417257394439040007013600028752687847591892375133792337825986203694129852612442250593066016888145463270338143716427425639816008518203532717933631458481511986608995085075756981088409539004999234342143067609559176800819557544427232633896195935344244835300170836441498471691223933601362380957488339739914696379929532414266175461459385183682257300288989477363196362985969312819519240470111966966940765196380432863479674363080281792927046654119318290052364413920174912710404281779965826724177003482610285929624731773311429649526038525137241827417164535394594165542696325276087669692000614364527885886242845972026783326037954436052924801462333146976142370828688769194553558205369725545528393717587086716003157804634328151415913561325085633557181238641093848988068117105788053459413543086743513499296243064444108749597102629637636696549152536675446518478130164281459650451239852928236175190132435443271940582199203718236767549189520147624322558453117686217033029148403295627105910285935039772044247816394312819989617527082815498772865510221963582669501503845796670517743811916824484936009106237654870925807693165680351077234731651002804406617139876541766039820142160995321037226455678912637822582581719425922813998359904116539439390510858447403618667032978210511177076633707297348246530172497158477557386196638050923705429180800848160407123913543604601254673379994775926682719940717658094951127572938830656521181886056959886939404051211037410751570505499277058004291856772412786553054451892275828879412421766450104641944496086724126343102608826417024553865413194140474468225121830696228623000170971425675795075091677983565805292559239347566283399296218760090860689355408722060265861121271740008389440083611281626404306203838719277069190508978683514016646121842162987706073491153384353263718096316936531105346620780954433886087521356274000811594392547492546164322070414257478207420469115454320336883785050052652044716352469254222418937102196279848134262185586443805374951474652434663811800773955735037600117133850340627345661646240928229623012480445875525162832231559407567025832008713443129355534385038000409653160485361901866352085159221488356561994983376052177300883687607154906637508675494073465844397608900475003830281044695375530973483569736800218976146705294867110371838370816504268399532843804864092200546502397815124088758781616533373819540528334823266760109458582794274098584466197097393873814175903435920733376996796641650892195025125715737129346839425873787247377135535783337355368736901449980013232606261881910893572966031206690036669642492950077592390037170884065915876049497008544409161459813289627759476372876823109922518136707812606887610138185978570668418529538721282162588285392483969185708109503350585837185446826051546262832554198431716666586800864536400077851655863182757841643030000155918450536640420576902917879800907940443711237877547938715283096827505734464929923028571894335938647335348746004449384339368565272648705201431474476072023232558114079656349274375769778805692046371186777854619884813179877345131319799094592686483773800989943999258067536536705904331277862246330151132699773920958691127373616638812580798416506061295170982950914445729554341424485866433294228564486699855853140851835206552099402625987222701072082557623424696635765057195046868831336114067830165486321463001102591220133063154342480918261759733894040391166611805500352401456430208037255131155723720982039415680661871738579980415077535241722139636629181678663359787271291788116994408000695648031908289885721320542677592438801679096409506430378362527601416583654705017768696132408827703260335014450914545135283319400034536193843378177174472425210023761974053523190644182786122365684768217024257547723677336506164200092127518169890516576404211386569496529211789144303521764439224431145997178488936737386607096637152589252443598544179335482284076742085739090607033478854948991804729588666899291027372343398955709554053041550209983665467130371300819759433567094970991398383621283868968667209324624867531410680081750197622871837785127506451991706210204227135344657140688234642751543929907429832933956777794430564971312024297447766644030245243721550035695841899664731290121771695179538902121586666254311448116399470055634159871114680073507335941073989483311692269932655718210841129073633462173783865448336720931578425552485154449486883126396176233691893702413256003298180281330794533238067708421688612855913022281639088349621816781316197113660097407343377834930629846540870292529198436980074061554579360744791373507485658586333673288149645322295794026724508082921845590224477225877118002812257942804009358371920133900808983012081864066478583251918797463687010466989540100813881764362118121719018081040381324242751375840422934738922195277424897791701133236996057382258299334870895652617932329745054991406282568250115350753522381421673223769288731408974271783779106324182392300454898663292618588887457938696866715677436260241670910262949695894603528733039208002320875248813789452525187034676774090069792379591580789347975846478362045907113293095892385966485891586329361555740775464008616361974832162921757847646748350564902328613226354386339782290201683004396264617509020924391369108281766737777293658712701301166859887417805030482373422362140304860626754457969619509404088054839043270426653219645831907265512234181106728151498677071152917382964529460107399435870670051076664489762441351688196976679558208425987838745838773776964884741011310470490298895523193235427657237604042415232278091900350580515370103884818471212192722244593777012014711676319856257118279246065962659721812813283770008861110612017856812945520205896228951480259355970548927076146148180618001831181070898291178079636187085934392318449016605655057521833301465019976499205250531322882724941628947961864505939130138787806344579524807440539561812060147364783081718125200435697891142884888888412693508064215933108425319302244475755031117966518226229870346541187928500526956708197479464250598220905249138334873237973660334678090370295438108090580868073360278591919647553249933579977685064734790684313303739809352566596542146956394482165622315907643002861069186228069427130423673883431938468156782809467694200214297466949992211126821233993278104752957444149731600502587078586978980315078825069234079536840371761184700749172365455369961927226500560073684362132750198350466014203304409807049822047838562737532030203788553409165293761036556858925084388029757768676588576552962581952449534553890332606143755447372700155004700307864463947046559330284916715040208971379874487376292517513010695697372702104388808356594053402103162258878144479989850816459640185591470496058010184652459120489066712660875643532466031622471819687017833965618539744373314998513936479683865185290090338551697728777350092489584118814854822923559714893184208913412416914924082280336970882119359131253029273663670772084327257686503885938327422361954918176997531771494356829409822097694386121035803083314168660816019852935396181950183141004617923142190330545155668795021618591267124959647767740109952245196833967025504522035558141016565226173911253895522375488056473027652950506908608259017468186542533630434338102510797469720885326740723080070725108512838862318554249370611674135115381014208798814884892926848419584346043965927186931985132306547009239454028051936679945122118234931461250656834739191751583603439125450539359404924329752788105677503656679788148640788255559394408415512931730619846324984800327051357190193914139272713350510222488208877941794573091283239284764856614758607588468996705731789242629652015820000017579951357186877400788976692799939482292466535174131884882168514324483385462917427326067905330184656215837599576419464358714909443766155976872048006639557819287785250830856753940872634268863992544390663527434610668418709434422843591664540686797903427286486789907454780262610644670070332623839721026333980001037622148689682653226544512109510377964982836718078719042835057001416673296780162556491475881636197966486635395841282551439863690216604301407453676289190519812228114615853940580572042889424571397029808345702981508528859509759933453257484278071950519161732351262052266255217660151921657110775452963273109669419567956551185022421387229464747575326127606706497444100302172656536280694510793952545154975861396822980524279157693668681649330227218569666056687466103857687302779764794556973892016925619348305628811923798760947378346266225032314626449305380682195572505874516536931726346975258731021184389311481369152376785466432486610593807646470263547385359906316655207961598489676357509940852285599544203709663823121025512664247258810932977297291566380201170246392513674400059788385322332594407446095045232036426744729111790290154429859899292363162354837412164305077715434846912793207941619644098369642178084406230261504912172432873670605848795292112222112289340364809918629474255928845815003771596619011444471599635856293960779397332922404727012564656536529610141657291535396950036433227556831612611185411200623943251621061624649875855408486511754415357488274737675895829772525458480339218370763419342454553097766298454639847922063128291610168295360337961810793764156822942968860418961259476005599387243725626237206070181967688876517876314767291314089627428085533593563486935445378679552778470338505729076303806084437380195818782550068850998547700860199853899194358075221898344805948503696902095078169530851287155839454479250964388886913814145219118316087238638645594516344521801513430428701445371116141360725475484371461301574610149630507925202477691380335758812995660368008153938247665509634926209209286039609399166889089081602343835720002689262188092313337389000702862663965640056061152592910816074973522377751067351900346380946548135841107480340630554842338957353165459521886126347913188247880628592182995103108045296389621952050150776197065506322201070355544578196726244303688621787168308544383140640774772349084540294064245477862836229812974798811506010660019957919024608798050483478413811391214113708566430469334561461875927228652298871568003703589885633035975581947986333619462411999055887091298375298149516096218106045513102294512607817332620632064229802661864317623481047917623794623344623322289362158141789864244486476558181981215317343433486542102084176577894348297162747061672179364511520892742599860580584549244638277041172310241989195570794813742606811572102706203188808986977740832812265083099698643094990139316748903610019429277252394568811290334328148496084987351949932053766658413447233020155031555562084360141355941178616955880600396303206972660489954963558577707041819202829974123504012971753815603312628814380569030408638445627617395416961792542939694470724165416157421933927537404757947793723420216408151743641253830047462291428982120132932107494844775674443945172165837845668432224513796448651130735092136606866242750323262605555788947552433014103379361736324367964431663613463908355546767868443954480923794245344047481310150976141700486750763718547633682791448642844814783097474393319655795536327385291482160126645961723183443970835785027642975188262268287691275391911972580202627343305604231405031017682971349909778455301847114455059158625620148469242820940642347616508108790836299118520276754328511753054245456451481386157887842285637291386523164052464856007174125850387124751776030465151372227416816692412103771477221823108893675831960924395833049034501908809847091605843837943012237887074111400473239245914290749789715945861750826694022359437536169755929310348162804514316314505340345007507313651716296640962186712500490220603785644490064133448073413507250211909493892770118626431386887008976841880778060147219427779574171838147001094359264165700169926296690503177731118287650001585628111150828464871458052979396163170808689104315229025766569817413381248983025316462135495629691026453020153385542880048718833112542386704834310503040816515939605372418187476537869586191375534364558067871095058738266698447584583443010780393934918856868803284749621066249183513222807748753852958620490714659336202055422745911239627433340606920749613659866229903117347756056627486512110918886860124281564318209122555893951382004903756665264912082067710225016547174508207470908289756527547675056386511131188413021371392269341121328957558228535639669922605143051214051092241365762881070660874110234348323552535151984512346543145692098629623752775239254250980096393546583132602120533805713599030925099242278018072029273452374726645765952791388629789499775711291884755986661316249426504416753308957647310908818197640947403160580516468223599986807459948728771044401280647367924160193708900747737483614250057876168382150991092253562934435948165613813309211095369326814058176055656537890231116088325357805593953278558033302290767688222382973499954283040182836698519009063422761493811007364294095396912082553635040601859326074472868419372329490189704385127615162264399122448293408818467310034943239638540012960334252088229731862924047279349417142838635959942467025153364900682125059847650188330523437745148736408110226131132976817727687025882517804904360965550999120385662185541812858035819407082276838319244313749206287160277794446867642271047680322397253983128787113761697679793358955688123081039468582980471793483550972920020643743222284493370717033383661286481023305076172301598006394454100515553516497970262189221993106813188230034862755944135307676597433637571687691968384240658811966197888298250130927079198170463644808047438216313373886873463900395907765114516924922252475072797076903727237550641770753017146126545110994763412782920099351858042243928134556491935245305958189257765036248611529428510770934864211980278787886637980343643925686541907491574337968068152723458898652500733014208215690009293434538868554226716963643845331066778078712441464127059659053721380299801035416371433836652808599591236871263171043888053038821847374162903749468514108678534106912525494831521830023061786088465156253770086260392793845535742477883397822461157841118188048931148365813612836435873363476516843470104310317976480302585000487765272663318645990508954787558692102179002907809494471048398760587792770499455319586177323753107285878282216506661453397004702881378897988496627039274856286439932614518962258509574641890156447087850784364885368674914531727365764039204408525232069001829185486859238397401316306181701153341139168306888812248872068014321076126323363623763013398237562576613108887984246645198180751174503092151619919213121906076254850952573674353246513174625695239070884239654812726531385507413159323618591942630017846061780093511825270345404812916537405265747816401255517511612182748876273580017354886973669003099203406430420379690434268585544366307846969138068932540153731362702415621999424137185471733448634019056368877612159493025411876798316630338210640675551757876780782990390839775411043155039039705489743454686988318783662333143909017920904011081739181249288315438604678803707724234275276924361755404010199663719191735436543768719503177937985269015527172137068129276355430742130105725251952540444580047953255670032735297437423790852978448483603112331681624120868399469976542127149097109402777883869096778985902821536339853800792958609468157265507984367296616090707631983648533671344247145574487923265206522470025915281406423497573627050364939302456284424043562164737414754502448379041597349348529875824885162240942243455766976699870145315069377785839885732818724281951288894704071073501100655031172194810230812495631058901317472303233850639200240058322587240629486102425502664053980630108977575899294097769901851984764270551351392439937464364263357464350925004334923324383844912614674695775474322155975905521573585523014488107108749183773646378770827721072715032042581733102655518217888343841367489063564323004086438409207095086270329618347825896593879200616417735598795204835495446273759240050528747478520542648294850748589095749933871826338407289502369641932065208273549809174850778358196719516617326764895103393672751402904541719367358730351463197803288855331590919580724984863044353441992017904652305773006434388332971070097601463303855160777602230139151165464838276559116470081664880584342375508206502589013368808362482971749188839849431838861073631282008405589340505535309347686819589893384134216002907281404918093057844555127183091391642817675013592414280858223610846354075472810147018230999279989499968943650980782258651804371302439276579000606328653669915589392243925278362199470273892397542514414003852977582646891447579387651456553669414647184005880276535018248693705963755808276316118357911429403712777284772972546197507766189906757549286891339044821897442779682973404688348577239793981856355652019253928257012944032274485097616369322445407956652085202625991667569397639167727574825724314364778682882684598124871538924568853155950438901380332063668701087600294878493667678850369817174598150568074855560355078866542548198511405278989846439434526306681006467661021053414144432382965383484860937744360171545852235160164143452631667047965021415440829428732018007483104010086934238194386570612853368217919672725940718947823018418742885877392491274282351569743753161194357540251689409721799617204452495096150194351807131964367887796735193020317505803037582559684685473610269175860776224176583127043521699866875060652399367189608841838396763961979389696344902445713214654833173794669929503456356214906753513639841734357151149078269157837874743999526757134757387170277413454919534019731105936568602924176694437412426313588107802998204673728261263111103039452171989674047161135935805287917575733869221382920555646206432948812298154839882938049461923746578596767803040271790815526969328280188848425752977248051043795643556592750338228271365302069891256096355804880390680928859119331794611473114215127668341446269067213820897128149341853008937123020328947888830381475642166074571681526389534808277130597265781004663251342648769617583175336132159249611887007973568587845865491454024984858933347816299994922244594911711278165845154392195665556252299668908980777857667279160071962634784399295270379822553339680846597393261219855229334528226361353374860196213626427488776658799441492707716909457627468858552542199482965057697154809866042622650887345284702056114054181557662105138459400666566421774730025246177471306125787418032983720787693300963268380686873078248119295498829191371610758912401685359500976150603278831556513842053305111589166746472693795572161179365337793655322621742303273714818172657705988787343118261961995135831815067458599451013738804028311194662588478384980054116994326220693750943094216849958599577172119408577618575176397802534322763834589363048831617240359850529336627070977935536124154117198391040053590944946075728435173115386167391905476754764357466414872880308343662682697783723778145773716048277444764528469985065423336069785644042377677014921734090543912753833824284367967621676599012585984049197579558464978189894162821699507340167720848115011949141556882522552209161483165423662178820882111496097002986404380167724661641469597775896498995833563680739638710145656291315452894314886272946596190087669761058070187520520588237209409421558835392878404575867696139835762604285784859916202760124931643130904512132921887058913240241382368885547516345320824445523447185364352512948699216516973520472805301891458782549452476035819428966494219563854186712476326547357216068816270129789876777878193034556438860147056379367278860301866465364763994269989970435689021623048391723563548045465708928358252713184427861356294811652174615747184174457263522321235326858932844165540223218931377127008346968186074896869678661414892810612769403639763738726053618638216264206407295855751648663409353497052220537893087066785931419488730651530363662517276970448492083095034476634064070424556949588645810632240297909640528135286485502293843131234365263167820402346684198120842843022760838760270249622107548491301567601833321858974185315895527074864710151666422294171373867744091325469364681856738042904969142532678372031316797515496538601557868984990731031405040372062100621564507395966806548376701302917915161250617158578640676719900382168676609085493196641702453082775258518885597490789715254894639203576425656687715067044448154656454256697137443653372481850384581116135337135829616969339349230163004868173713161599591199014501555011004721312837929215179557478111220591048176731747530298541573174618334260157694234915562493654689413804317481611068007034265691509279883087044579440147599669504400771769739976569709463768848714073636742590625975842068210709072390204138689409886709924118918466727149178559531119372090131102406852652567525306767922627088547343917884683144572477973249773533859294995756680727806076413114923028658837315611271747485231060561344956760792490592037303574989664816178136944883648707156115790887200135255265137239611047588801072589335953450707141157814005833908905932524457406276209908849905116301912696526333252278847672959523588250591878174714286020449209803961229609816401636788476212351303516669124927719129886849058341620637851015845511151895519293654684018572463042739481935303714338086189810147389024237942058377982750616281385758880969411897852755497871640672721356657724413573781234872018969585448852831796762304503711478578065577076048243428705508727059932378661165752816716794405263305580185900734000940044548891344003464758970325680856103669289316077507056899845811658935665289160023909299625901194527602787143271131963945153007324363859026689618950988998792236159913065034400845144433300591150934482875549909058144127440004357543288898769396868904046117411309597079583994387848511353087848683085468278890426831544999831094889198786971241643843834660619435314836263761042789116108862630222253697424385098943938885929231308472993785332735059806795807351214406926154033202655707242285837609958032689337463947870722744758798357910580486329315487666684124268903670923058493997159455133796414505464385489831489457171607938983466249469479254899783379282759319175864024860841931400170353129630410461092119915852188460084810559253539425159149211423012966545545590501797810368795493435782846209863967634536971113330990343802613268295227605782835038581603155987909378450579462468417780300861235390493903855983129139206858687215619169708828616127928174929794587800552757885590655166313912634935878764735257092401670275674181349229063230194579777928531713528795812574825271165259982550414189104366971434357491623341694594672126720516158118890761910806210827025609766979793966030072390082790631926488768523905485865094559241433537801975204761095312951534712739027924646713966930563157544551568408736513992250763661796347070068198330100141153862927595845524407741292696235698808793621393120909789062402201763441800826449111394877029936782981024269724297237190470808973258699901771446960179139777730881022544144188087221199033698451823645862431405143746117691811665909224105294709415150649636800446614515665929994464517077473447648249756406474477215404960945071134463894711482433269562458037146373831815621807757856077765177762330519210695324261336328090100279575534465698567518355158237032492959391507151367026181762674069268135763657728519411367988409986719664827245799628580539679356907873865785963571774294462596845099432006702340765631992190665310267010460333054594316875398982816654644179917687215142153855866602252569597933968502811976076272196367318075018529104711422948870585018459381179172866495482866709531520604828998913358682528604629519993287232472713565952996590965079722787288723438888412926209771631195407975181838839986317356627594498028369462271750391186175636332821175594730899571665739643020723079193985929753650719420319913805561436362286456064706097832192427928565371426128275340861561903390853192044569460856383336077999470899387418613479396557217202135238820113775404360778994776982435341327179483130358591118621738888531336430436550658191396632135111122344612889287232751654640550429538738561389442106023468928471443055941640259057470535780253784358135179682757187071703975376072462764462544489945527695429497041584353025067056360753403651546994911552025773398687107895898451280908431703589391689297971636637917201969224219341374479546954058003924954427689548372007733205057840920964438896694868644345018080536214663453978710064834507401864093586994251811376632973292412270545450266606941173818111053190584717942092667439281619022415028733487919551607754998979347849510833857218509361125918878916436541551242213853253186197312096204405048569628114859663765099559569197644257279101775395188620466205911357929405748174985048506203753858193888664979359003512253086822951001537345584024067668572334232933622790623809990559166183783160042645456755123509640722002587469627443179643539225516377322139617296903657129909453140199639228315955126232539171169033719265986586165689089127558543386267231498366424374357346243549050178995436241677547596505880994006605704345719679115337244914814450344490678041860060846271873045137756256135921961930182759905539978219425508639083289289049461521214802529983932459980698126840294415751544032204004769602234856589419284212841746613850391298720909525463580171505428661475290731520108072164476822449988004526271588625476083469081103580142865933716489847417576308996762716025265025502948627766646718318647504643953765027352583533061728974517090865253123671343392987298006316734692745050639835111565788625657775912038897018374206222311015835484605533433175361788480622748548286878932190974724404438372008854800342191630094515557843008034182119809758774891511708286501930021544048117967730463311381494520467279527117614167313432243322042056613246830125434898170385834402669857526547851093726750514940878641796900521455575697328582655560588650105626015840220855599812668871330681216218158202799485490602744084241529147271319499841337383645192195882024306926835417248282535731005340407792169737758104477190283407051562054748106536342337711537844966063975314673087031807765806802806278814007925272164698393218076514059449186069122301021333148132964422488284266067732385757743087695180827977798622908658879229761730331204993692531502889817431277864281319338337648821192807749203297523044160927126199132927576293549820852214154226573379315529454004640384646954430075291435753831352677104078646854277292923272078631916289163068771553611778457507196306365959861389131972449861268911277544566711429403984324384857326680052205252680268450269902008619322852461445597186378289993163416165325809513270833531945073876963257399862162904766184196871650595208673855762938566330411781173549550961852692872080327724285267229846842525657309986871310097551437388223907099027109314462756401334505813291220511311966545632120259924580825378541585302131305437602020436257151743312283138404921745999382520086747772952138842122713153521486745779363082308291127283520577382642708443872974374079828169270196789658548402351453659907919519890751099988481746379427792900975400549459631885870834298368944956659024286696871736958718566975016382158714605535326859820039274753291413462064466028464043494702485813722539545696299976249614090958387832887511717001990852695071717192664995663726928423521038646090165543320883594011193555489263792442351187803315002419896662989007658360803398372416849739000890507070737305416883500212535639603772773873235350657017916524058770302407390590314058077999697189309405859014627375046191900277815525417891196012408408332761545945639420381578432741811455209134690583726332037912588028499118101490304486108035892545186485219253474371088122769728314445081381314801652762601067115986913606281777039170042802652607146657024293910605275136341013134592176270433608166562517086964845212868844301955194970356441274396784596424474132940494552165029612836213861288283280175336170315933121296880370333528130196421559640114577159002047979040717694761338430642515629822147882390328747614013838288527759167129028688539288342506683645318111101564792673937072176062619924011852080189110282226834124769669490074034719969720217885917309341962423998427277001100716712721255120892492389940813193751786316081685931393630629638776083409154369095336107570637293088566159385858638753054699881041102462357302290490234832167572051205532983022840193148132794920073925884865456652297697688533836626088417766199429228236961116112966811161791228480126257376609762160976863231408743785903962163608194988516689592767999632064787167380571715243816590286358081949875858389829510849172707135572786628108375104090740639533496663084286474707493675401750801533847170056874425092104336470559550891678865088673407464642310704811036541252106641726943572732338099616116486957673678505873597676625006754509118292626441079651060774609651646366821136818367097827153819672242324795167450637955692606231649020773988663666491177730791299669723629975400171729253046033463397473370180103924607604046490660323589965816009433758571804677763752174064160588197607160016871837634107940800579209354314901792929911017150909050678575268060851736158282126980387757404213748296807654001302897094592295821394547197676796619168503093607565825395343495082585396344746838017588190702573265525330644545008142279269052228885885719997149092060213353002409020309237800313541948484430796409477930323977150518146698071647623682733415645167004624152566472433340256577339031660699624543516911749212908546307702798638981641704822188893470371101488234573972179741277148889534854725685239280287913338278464534671229340506640200070838005674971568018165787174179899253359848629365618632464303710018551378449253106641431278830973670185543244414849660867761235870620875064050830808983463416619593979731927434417642010206851931652358109363116395171217272201500541651620609755158636738042366159824489490929415724187373017054745074470753427012208094663447015970709635381907058288446503834550300096613793651038203771586874695898041444455964480254195390892993047092479637333528799750090137156342866514758745482859303837249025321266503248408190889009783459238137799507142051482896767548550939579688964297661510268055217919343110207725296930614080800289266147524660091752665552373005545842316625998115937206240049464277445370928365626517688924799556134645530943694790937199529146046612657133462567361429143191540894325792609801673028124401458664912951132869344640133090311622311900456853145497267633641421929852325538338416562517664458073251165070428823514252999528909597245877337170645206874434333504764724232622953011673168234394295218302171827684154953731446357988672468989182153294259947824383848817739841685399307374531822468755532159369245435507501691966304601358833579651188570492154602306770702023083654120755258146442203762687645344129943464688321531609131553969987115012412390045296250962765510479082009203565494538826935019626724427379181489955226772596662087799086091021769791422472007164759221092722279358255838247571233795116176975157783952131179594207723179816846785248220336068639950150053516179131119658570575703141165347558904101659354762462664132712432601867438778972048920043329004195185012677658577608650863575129836374583968628713366096196531520380442830942595827657529882173633159056635994433288352753833574174888980488243835458489914540648309547343626322639212745972637522681137553144799921239035178996096324721299124859691965714827472114702676682459390493716497958579498728760406658667271152336986676390702187052935313066721832609164390221398463951475098626701561458459342355192867534019009676377539016480858292519388397413256175976748067072289579956919717733636121971016985215511084994765581279627160587208088907754449816091356117070232379681133488543336954699893842668393115966300816247685901130159405015186396700500947709401829288789993135558883135746818068627880144907142701608679253293213054913344800598467829074827023316616473521142602245110548757429217853677488602005967882950433046656160324896687322056439244531146555219903827376146224534790334987593608394273062363749955777121443017912609843391591548995576309693035345374757413209848818657247818450454372925132022034162159213158744597640040832659068131289289260505665174574299154742018843222590782367395203195856895081521445212998922397319699723346153095444268303515047008660066808529268198528094831306964284822935919350040050112069632156211200615425332946129584437219631237353572769324046939763823644580663363200522888742036326335511933922738038388305288640400513950063889724950173579548668812708540256135973469936662856166757531454034004418445059899952860462038051580132159238464321165442219266245138960153290110673749289914275061149762505415794645367656637984145686697082516017799658819815561281260758645072015487509875563416987185589734835744379808733543563852849912345294763856370664392558633295772115647186115271528302841815992547512411182360414160627788819391980424756339767416189771827839568156749995281024112905024423391028418542187904198705867930427696941863444487652577521067289649593738581688829282033168295853798243314589560504951313220627929517150377102965624175854761513767936759910016382338037183280532796250307694243054242165604144346220861421755865198645486508381709962130512759084720841876370006644946443808959022012974530298167007278491536177556073568607161024345706025900352784079730239930123592032801644310960123195978224538385192275064220114870622262821114342622777045909854813761673571202112078000230365996334378949530273163597111125235088255202001077222824670152855462556070578243036089520781291274491240149903314963499474977116104437410301574912053372899898725045150082195113685903540521731329678367170340298454628540025490118999472476588126413078869699850523119854597006559551125833149155100088056081197813024584795702464495444493243612535596948666936845439803247300078371050983943174191007617933491725079279228988686087218127984260064778681492085115613146452572182409816102220841113524357564936940104856815219240069000903640215397240112133380137841584949007957154364544615303518226407672489019792669683076667273068055935483674588133666617438100076643180092313221664288741336804864718780980154385326298235782449350365211010837008191882040164630006354003624707955040640787057408690817553035065947923270145245719311776810932412537106523135542941287681751818552558995724887889681043312781061775806674532745974366075808636382387930930447735601923379125147408853624043904864393644407114985238532133462943382895551367339557311006591973335715693556451552922134134921253623762905061380099749652314530470323948143109352385284593699077531213745409325756683492754373632139176448493808919066474106447303199017733023070952725441999257612885493219752776183804018144452622736091256467406447364282748794921344971957912971359690849000745923804263107713784581013250757947010880153392270318607713764442799276559890230127591037726541560477756335928555260591401723724284284246941795772941482928331662954966594459914823921388316405601485114406082408056582464279935713733874471746387703672538854409262433614219785883650252442924308230366519475821059856392305426061539057426272257918117282968597298218678294788773686953843930758780526454743480371451810671541264833439205140556316051038179282973227184660747409841445995172633611583331177843109655239865539544761621129241997957061098440898026530203147655696542009485327796315055178791208718594722273290130741337103001781683309101211060188138429768131145168261295761197569767893255837637173730456963772780700307548547287174002084771988519354761457454942993339617896619895903015660345906766655185014288811339639844874712280603917669640345147833898865509534124299102711172737880429443407168859678766945775844556404361928553589247528076922836732237250058616531166676212886955574412533130856147669736721824452088919057670478057606044268924055813700188209877882818988506343820736147071097991321594958538163538677062621229632800112049818404691622363969715009104251124516184925499151972672835198321211486582197200083948098886265858106872767886615328304598976684789264908434837486722074886825673311311256818462042457744725129075640272424597886407695589712332483177671574279669743149838804990662187916326669141337058585810939276131550504915844767833190500470975272655199866900851905037640773888234551942259490203221860280538033857839687225182261145089111801886672372571261441827627022462157912493385348581064847548968917252864545822545403521933809289633726899251759388060736746674239097490122814918397905818903285140595429390190227812465043354137717538116994659441479135715279976474505009397459863645926271827887450376193626859406373606455435911261775466629270472521257420512044203333719504027976242061779459104852425260437740015955925081472549051350114373956287323475132287116655486420758412598637292220108969034368618087423248694230302620266231159336554841206741410723647125912210498966035142672105688618507810174927886466924855738547936380294049563128323696646460989322268164600708840374482971149865029625825268458745671481590382098516434669370242222524219111999947207857916512902079710287848538778074357327149375523319302742963258117135341990058940996823078532418093104017361609162948031313939933725456769770050696656063529545170655034054575320029808470605237857366488355651504775014934956847751344435890257740599890850496443320989699874187975344978928615134431307836052383029768165638688820550898529391164685905091508489493572040159344234880203301187196845902374923781815838324108470895296785531182389173790268462980117829655793119690975388111491864629349704833499193451633298629957712960359252970881304845862467675659939510809799993805311523889666185762677803173590892630735509870684061687706594456639320002035061659346649952582530529005539919810185139070735488032145602780293734198051514554490817549951509402000698603388569783335578804047183156676531307102590397902388227174592642724338675969641829828944849227307132809333996572670727708749849537179824340063552024758425535241495560599310091111752477607632087461301602396312523118696307925060743397263057479594204789190035399749281962655360569541042130311166239192627617661725658879602303940225014934412369876209482910190999128202155493873988430618849786718527245799403852967642927826654040266132087222668194462778241009902748079060975628245601493406825777705627081318254650795401768124325238655497871785968690851146882378845877526576058777462017476313902399545196035828993449763300301094657995355510645810395635879193675601736565553434563084544485502416331944270738512635388965580917951395847425190227975853029486029249461286440059264388677566038297268858650422167328410477806924751066145078513169804947895244983044335392447360613088170728969257518292151380477253487637353407417914394396980222759667627671370898849490231149658033371278575036524790680048762177767015214226650341775732946807889352844679767459911289053609536903381675148610030523755465158434651178013217164630293259072768609900017822157340270854568088946628032271715721592449027929738362626837941282357224343325011993351734434557876902987931125426293484975086408719253231341183628855556239497604879454260793330580533813681895673938834357865538461305451088554128939529898121064688468951479322511417893464715408342321547791773801676471186960817690099306942327102834272154060024326925553043263363433790687247999390980171714751891503172661436826571494618520694391985527673428469935798259296210954507478147334714715938628776722338203656853406493955560060257009089725940738540342483590275019763539406272311050166833703855288194712452980358196905122520829034763384854912092425228661121749752840268250022706065366929633678900158396171644850664569689647099280780817037851316772469783943268990598332879531952588224547313875195114328935148328772192777174855606175347845720138410129834926792847534510760353676139557782982882217989667464243026698006147423049072077626165920030651618682334803333450075858494823950745871681023962019395747067097123875661630395098910486199986563468328723240626953731710094885494340752843955375820586208924544573785115306387650357018451877471871557503157993010577997560512271506843795349546455829066394356257494500681591382319212442444430713429140586447846883814628370385955323195133912985208799621445138696640513761605427937838628274888071268283496782793019180548131331345643891518935291609401495287936071069240757806712220287585418504500802937448578124753568129657355743464625062180337641270877830303103590388556246674177119511689377619715461776636834413188641438012199948585009218087020537100374506275629172775549045446478122723489421722068842605870868224212892923330927457621452845223216941203907709675631186934392231778007026958150850723299856971784515367360325661248702391996578285620568997906609472399499866360609859127875426359976934673459597742846115262899687247210863862261338172672123578504781041299039638719150811493773747225816892544442719438377695889565985054483492814099254145196700625117340366459166929801990619367612986868245107103973530295653876935889591855400570261111420454547913379826835562552534748039801813868266440867092069115175636655874491424103726576436378328783847470794979838404345853003525315349372508963568858949096625249064536362357235477808287800704584105488755914830498148158746102380657347977423074185305515133466992824211587735953559189715969077577842477188199549598553621572848223606629502360707759805763076364068466215222852897524597589670128644360947071870915189791301736534444372709957057313935581144536936618709243492744826003775767892167766636335492750825638199301467180203303858387758868356259955685941270946706440374287781052267433704836462598386312927624198772464532822674299182895213979835301722395923439115911325306488646115091687045242396748499181043489447805085169510668041071139641463659523236523209473237508242758253460779636839698978125716641096496152007198974184658579128731408842284147868570458075208849537076810487340460596573217872480860086275885960444901869216336845050397243679908225886386320147700572840865337113835843834099892485519828212899265088199449718605460706690014791471754490448932858591642938143891198419314289538766873034100613098340270201009505226856431396126229961003328193815263663814664680056506723404535501232265012351669287774106280313947253295840297302826640246315347918774451263058838855631928456876774350394789646238482115980930714700560110212698858401188270206394381174165884767955301286000922525740972261578035608052052622985442803339359436344634403656054291367778497367891548492463714587913831910325203408512046514255984733135305491255506597968150342479604830334263636219608585301901352087144705859235502886107546612023777917611364211374786684241542467292135527114981358980367102977517531762858337408306425466483636537789899721612684131956277651310804825923395318478564977657763257499751419143692057919889625484499192469009669489168153072892862541196361139417377367647502968470326409277675426999245769854746963022975254993858004552822650953204231179452226295557257035700565184073832787462189666933454197338525076768306843870372758189633027476629921321696371853745190070949088775641813829340648854305152131787108623006092152797297922962697893732413540623118282064481154259349629448129043533409792064159111906526549520596449011046738354893849898390405670232900977508443056131228327971385736376243083882754551773617013056669277345727280837506141371457935348338334341189143763570487766176679649536453593939100134569885211521609005487167513087903061846801558162161098677789363908341771998717857855211208968963687397517180348287665192690073895639969869731191313908364392654761470575244232524525006436291737403832305830661732117544324920681363064107248144119537144281699669922288269645150745386285636151818417810002677047031156362022030402151746187922018556726199043208316176844591934184871605996562292455651751747977089116042721387531153165972196817788340268396145063443346334385184111291560210177022899105247715044796661409963309810867405271030659696173514340332073207798242873585024753151238295439906717945760012147933155102090138712073807367157116265101090387859279823441577039443603677712987783875010753524200896893729184915637844002429106948408614899714950159912675465130963093420363029106682171902949283965120086382456835046564194846757814829585853281530901077400699722585218116085348644361143318126539709621540493465481754167065747206259301228697924933354721019517479478370286766898288762297249158958875922703153549595759015268994759282470945541144086238772285233295871946114412604329453549201120359536960096109391198329514816446441588462283457192154062329856276716347909648568878077101813432215578472321395612273487379029536752440481794341251807764519035831376053088310725586264664724233970132795046281260460539711166734424256794634217253798662241493331000312003207829438563589504602700980832111401058518763693470130577768488586461331261594851135116457585482510764502808186763008717048616808054877269265812117554422459161406223835948162743718822822823014554323932560700624619790093207434174352944551910359537463933173092197376503764400602020004219029672393270690283003781564638832426667236235626097986769571158736417439431799006021446690956231672300240295384615028472143375202172304550437710198057002684556682941891375664130445319214177808918607191146141737480190819626319603559713704318619488221255629571751075014156325359607645814484984799404321223730371265879019171018213842731151435882423630575054383358642556983022672516621930398457384985267238842406796970641010360194163253628341330540135993512954098960487732590820467081731470829098228331683869469406755083632954693512298917760519140778497008094110677732581621561915784078110568573881717694580462630498932002610044417505111118118019764593484242362634402295687570957427585015189600534323948365153080829938410694779489192482882075268181193948705079313632868860651611369016929883928522734079929582634523220219388942663455697772486046991617869984676581299816453290488673706740379394669837147900112127701226501327449733963429415966795105355564256132298733758325983281264787563661048061764610021440106455041710779593423787830436802762472134187145558669554002410830758437391532566044962696325991876873189840709771219188450998968996277495735859797399885188079264896789602022681921666735589900239021878262867731451793570455817728547763609414692074807432155193869106462516620761748015525299527830772654412918539444817719895358151939099104587767768311396798615419972873101643748507238164551790634032003301329431059401243817892740269404400423956530352387401379309456050667027415160590680776188070575757199005190376273549067129771505414678374180572610276127612492479648188855180463108998560291013019928233680432342292194489070752178839223421050944143694423521840338212814336257106168647765712591312184659011978865043372342106578991317195888615566694785891159001697763120038947445449605006178028676472595996397398076746223552941711753480922421281679920706934700042955391636018454311627127921029733724839996092958031573499225079773191679204493541455263734852699238778278163035517869593744037097660925317685931249046831046960807736424413284579321653226889387063472110987884508640329392167971756043395944811011926057195967601843124867612858307999314504189454213350214171628709066169513623706484132997505762195627434695564326487689169340651654977151657776571473847383679784304477469255550961361655076427341914121479413365741909721906321807679364163344681376655393479399663203658276995163212526985600208803861873391786604651332023022945279188016396292473025995675565158541907024806409693317727908903198517262995379758300164849136260636319556400570561580344996894822927292076735959251013740263472686647327035703408999926475948266415579705095202512126068118751492177969107565517034513150311333601344802132322033524779877664655514031051407253597983484402568171554538003340506756445432273800792428748375166195282561928263512330676794635063523966321607484740622684939137324413489756964758669660308602354206271425220426971859449702265652066082987624825859667856333175337969297451687623867980288604279325253792676910812047147136360859087677261103329834400586119560896674699986339396657683019071205858192130188992107049389047537856694311195651735711063794476857446303787310252367695785807414660571075804423210964550214997796509608353484122214993224008523487101446996002853520671201365274207779085761483408333024343761233192395791423811842592661965078376461874857820790121556593849144519615392201192058191994626638017598020935756784232473864951655979781825213987169381404298055430623274558340266154452297619363827781729602591495693262424801550383728252493305980607302967618555818300087664415966860297987198484701287273862192817134184741614901303020479261855244008557994134615225400662285610731626870776319425425586239666054817130462215542625695760727327016953401280753871843656300034569962472211207198346761536660611707726990261673288901539323925382209147043805222083847981224894834194261176296152371300951863581634377950995051337600824401472157935763980511553772863814321395904468854426380268811991093657264133779773002952721335189671811040797384300020580047571490996188345990545292740841066205241276931058980648072303246095824068583108701613034701271754807653672823740943414082998968153728204881888433290982397581058161408381522499696237532822426283215567168069403659784851861585457302080188772825783256769297364453437959066533161498493037843342138398988379255756190254113695029063291289481970366216091049968074209031292973761403409359594799607642036167867400807288329208020410697267049163034193560025738820673219198844790967701748261408063334605504154047543503675213969838308712875783552384157001584392455797785752562386616160077374041354189466921169962300995469888419550506053973602564824601453379569729953336972120261744936031183849992635237699640559197915711574966454800131544633484150037647885410795237513976006926830547783866773880157872767976923321652790527137567486190351817078447890465296325954499187103765494419374896930561662475195587867511809112367772282813995528758098507750707814195745840845713409180192234194720736200877853713000436150118380040196848823592111111476358678826186610923120462248925221054248658060992398050545941941159024854482611258848048270825775280432732499156865752756676748565182106564175111047048628911663660876096125560290702535388071870690687686857361761936813351410644588412937630163045318381012480197832564476725115918723043692450831097268686146370059987122001816923598853414982714322509200651810593753795706063190294652552773642106438711884280851081250701995190196360870425628924084705408046229012181728343836846314285038601701562516272861131896208636726098968396344369443625567120597344646354047363818948612179255675440563937768798500662433764470486897274768905598433999025115935212753132711206990470539254419031865886040895237453403009119586724027614529809899075649517673003295030751504566447723632628458187363579143694790996587797557685202045627997856696250319434877510502913660735252262180257137948792864207571143444396356331329285523083621247862332422226080786212967211761419776485560273460053494051360301745405924255440578999751192745938538838532978265790741174381839446754420829191679224930859931863405509497333210230045048409579097256733014252430970995892512069573698143868857542799419517169815359788872066788577625734322315545753394021564817184210516683010567215670918252435685571134688151089623038527190283663433466251982533803628739981591167513305973973569200546800000722332731810998855960600364997757916412369654363755790821812688843096642121468027617044413926190553253433347526946380172119735123244228773479382983942180806939898989147756090489646730636599427299855462322363757241371481909540309625522795211010818200552054323123843677040084561926388202140266965769140281343601924260701851147139697762941820008689501567200339223111778037769331828683077732678713877999288371223922888012604546792665134373259043709784109954651901345004418430535528517077759159249765763983109732907963324213441227956920354085240485869323427986286348307717828690859882348000476379690376273062971981322704432785565901355951801434374528520169243676388044389357605655413969394641064654628520743129738482476865771082046586090101499975363685257097169617936581688508126720425272069783130974135856314267280031387840210952879431646738499415336680483101951059178924238143234622517939048216924372982555027541224669490519496009547320428810428853685123275355282467222997674852136816118130752448467660798903989021671574617798362384060799571564722452438941153565630889026366559237080514809669679894227099438981143098139050746252535158054099452505956986065086595534712504472549858916837987184906544889331905168562385615382198928440214565828646333730800901003255006086960002767738128120317593016317932638494472968244592774121818728045089404513267838621916510640263517624834599673259499272301179119524327305359908626845179419813597915163354722665301714098577556733485925421406318204908028070190391338361672967244235121560978975386119104772755894845743201735616343400709313579506640949632685746289698762083345116945372688199299265142357264461994741246738574709615045046159378334025594247921583705702109567304434993767020795013258347549263937026383196364350228334284344011481494756903029725362965919495393766383979913147179118774677569717460880948409499464867504726799362338197753567689409598565089140000972603636061971485413919864266170552619289504040023554338903316348437722694928951011550025539182546076826064350546072044490120198966805096743787509169423351010489203689531783062819293168601607761481551755745020152525308606113690171661133425590039171152307464511021828649242270435749196361561114197060834265682680450743954593340631930145749048522579326021993359733282319950322111937063319873854717338504518044951075660248234712727626576905736966315343515339866615726813367839048874493376707627874579621934609863805471155547814665815406786540608839321505211528117340222180901077845511237042041443795445664968512423414624700460193908238944240123111566337432216248153590634174797821302043110565043080430176297908897961849115941865817131890961313309143593169695388521708649103878544979240555635084214379450279163837070531236649286433663206637644878992007365768647041415521092952662207695130334744096968361051686628354819656005153537004120764029850553522260606982939797377947934333983860721114045117835477886142493182919965741306153615296788320947179693872015439906743523569493968613534568526633446155719000691009028627287454671412694691419850518713972346984631644860504204169363170835663422222050800804518593014890771838856099627982398294988013302347863553742684414291709704899958637157269158678371937766595238513610946299628968141937835678781268071933068008861163818000115958099443065208570380632798674302439885558122477403518772254699390923135517511186270909706739239102046617212435737460305166828962248309178360802293414874600838843404448334849534505519340543016619876877612607576000526507921028297504217459161602495417857420773285286093854500518365770297662255696274023139270512226960759602004345014926944409082002705231851705401184181140787359772944325336174846912256605810392671044588053183332012427922300730763399098580574773015052313324825094340779537700957683724412055233081531824958176699954366653073071440310737707597909174795668280084276411415484054565620005772813050078801936911429719950658583194851287022412439917329065458629191327823465150037009054185732401180537554429069811438645938541510002072179630759134628332661754277567512663764589727673840703199034239754153829199910705213533225817852463148856666134494820611606044978747332706354302635723222169220556788787120168039692426749562552751138644543470246522525362699819074637478900878880354631553021244719639500193206471688050940788028559274242973140757818649729489357400631557881136879424915879391321809424606715019727936880586697924950428133521514088762339027256921912207868921559330803757878389048677332100315831524892653340037912990328021032603539697780254949096244430186699003107869509160787376527862057326411411737188654522408489430099628359142919919655988831569110025311241991715858908953060809451626948161174027930136200042725835332453476793595908784295226543129311987312579477309973189622933154108170872759241014037057193977118994315833527639151213813098292873745062108834906053693964594611032189486831833865899052431101398434346981712250012188008622700137543457897732725760869680909657668170076979898610816713120140274215406482724773750168521543566796595745071435294519745067435646917921681496556528064163928221255486041430870254436170402068493643277517408173696823252366658886302241513740137439728036880394812494529520634282805224487141141241477664797293188113513289819480737787845695068194224981133186250901775803381581030022616258873614396281711027681647693336807584470678539523050914492619335573724272066885032360362990098335546149692619290624884334025029631840692286320537098909918365000150622595741469518659233489753593503167431867463672358813014803285072132228406769234176539490771810515855835998225856439184245477024315563902095951596388632975435622792781649123828557770333533565113597466222611244359977047214747824342431627179920548962524879202031774368686001075185272673859323021748048358395512364192116688797828929084497885033208717130090600158619353284586336646079030990453675206342339065323441351534685552562601852277201791213301347979915434881226998921437212783149228121737517414319021420249377888668850073199628777414325304117371432986876434311362086358360859842552633421500170131662810341130488008028309308238873653909603231787199644731996976908207793586007806277515985979798302191608586225272745896191922162667897113682417507902172374191828209355620702130706638784105928540689215415155027729606312188973550922659179306278380431676888096837594548996456500447712917032527964406649282716454226862028169956952654209090128129692474291598222721412659418615969367687360367456653531811993536881223454324663828957106739942515244682695301611791520973640024626314480255131280230526030552109496080933503735846106013667009562956105578053195773285220552061990603512920617933616004515639112878903585046673397552958732498381012198944532165052377646093090120095453572590816947163002247057671013017233196641376014911916372146737927610051089441539071740134485024106754190257039036119768736262496734207286318681317158139812114036070254082889485924974317417387070285041033880915337487037991456587993749874972363765927141118109614805567362992273978734409489511729795262177353436350380948350865448819715486543860473843120956655029918488667190990826191461237109454836038044126426515525589377771550926981972495832739410015849213865811710385714267465795526327551149189768144205635635046719729129123960510274120782903939012459125325232668026605622077645263242092220443549778651974997185107407842427666717018205664641930710161888591619033023704686945880277312585267149730885366334789122284478917316838453233451791002532042430403296147173423209741948265059568315430575150611393188581619022990693018424169013264170159864369260059142281112394754111540694234597213873885879166015238207579337570989062507190689125578041070102946552701057278162953202651510115690864430240857270798200753649137424825443942961519373304673200069594990788559976047686749355076767971601732573379361052832661090900150065599472895521117618058736599094766090361397945951782166724161325529910139969973473163791343170735791764659598808361408218204373447555646504170705469390759336026552409348121363004351402461057031238875809200493960571288371058709661307064754337174528366409182201876718698704461701796823166934201143505475351366665569357113686669083667938737987657244691991911606185446305988283892173937465850717367398101003364527750437474962988137076745924026195649460961174294849190593841706304141531972641886175201487522951380019480582054260907661940451105267052197327469383223524126287972431190376311127295400577823892403867871552392514485437247127524345837492060290128822992817878822903968121142900431761378371068088819775689678121865433609975514064957938581001856483327894892167741369992480797237994691635925468837395869659230490545100091992877458833778091643410925225526745218020943408407161678156408521761775715947380226497719834207830182841153269801630002478521177574035517955449805829752631449357744990824461728991830648417781640922249588822688809931789769258269364240271019423402936416308145176878443446901513800766844854363733808649194751506592228030801136893812821080841568969191712538306641211644447295216004211706641624609932303300370578516484936180749072775574757079304028334755241168717675139902826343454750534121979640083334701165769864912422194263940700874194607511086989097811177375816551539814449317882246999433158444235368481407039702001903026858156542242692553845907614937419858083859257137657237060725100336459426018880731497293726142837031689453848570265235472721433291411703938987682470863479628074199976492125969041809932548094835610744695263327103064098910828132096594633559553760673178706165786365172467754656783716135947051219694289185586600495645566417398546947898654354824991010973933685056183793833850042805901260727629795577804513818393249526954424535485650286987845656176604310776147561511259655728219807417807830461596989080778450701352154428848546718494027083922372679947905663196197849990461347944450523022723903602949534160516319826011852301712139587382391616393424906364688696257372835692327166200576209103563708528426943475414612670858538563582463023596537086471961992585188074176807296594563666668233172429104795230130527021464877837008206756037300625545205388764674399178643184005708281976600735782111836509344012286590195721063582488771554644685460322392870844769082359738090384288839446189360890760382101446447697732052717743989288331890965114565121605925765133686109016343399229992225901126691647400776552192603191396659807423399635131183023273519596852676384078818457917880769637208680481402537208032967523305340874327620686694341660701986912797671129360239128180955552095605547008568619916526239052474588030550084485218040021788605648954493892660029300721989842106017617910982903547711192244143092410222083198153942303985458358149739849451560690800944355301556721473550915401034831812823251145760400652336651641926795460525969499491610058979871409123833835777152815004284426768579522384511099312274155887207111446062842908358921085115899233924526287285125170004215141477537958933362239003162903862593751263930467858994507888380277497100068770976937593460631632866416262369484022246827747363146107712987983186868210007985610452191286270064451484849336697643576055851538584749142940334201793791714761608116607970564676114076318011514894246835901887793910201429394703434836789733962643564920106576751403291541303677424831003074124118179879905429965268520443701825367305263052801610026140703435541613592393329537807842602253321941129779389589542499228957588743138804693973951711154985925657557322597399128028788460808205033870895249481686892147576478824182839112626261501798787927505273494031914328173718132408267574046082294977792707461635726040676984903290478088155214954501369518796894733705931114068968745983247866496791903669931776233950881245304884597308097362956055903402550919168987422193462184186588032316943850362845989813247752170793074614849660531583627953061848978538886369664991485640460926042809302648961434092959885549007944874268417666856588184687507901921888928025246100760727022731253179887978048861724283922106760173428935706069295037383527749586814713500251270658898793939061949689094832037972482476739578149194081136539208695722680982335523298109970548442373426344447131815323483763899257060538934210245815269041001761916452789794498483822555327720602325618261282457857628213887991350203491286264483992003134616894236253296650005634568325089765496709355022500224377210507613977146891124261141580417655065602401862272284509777033579090812262449585670370763990848237590343436209213385839937629186587936401750398566069957356961109075415048324780094460244307337256946833811032106822075645547147632768589096987150335360493985872271669278773055459978282584287005193920255498691740711645176220278566563552198860994443423293240257597543602940669883925652403264469062191475222553545287696599307855420785446724484852540993390096446688016861245887815884777894029679730081419312368564558085492490910999084043328222398450581286982242009511372452832054080942007069075636931811274466129726027522027789958036338687120910995760654906743144658409212927501048271591615770180813268961128320956474020205479277808678129905100747972293819756698991515760652204125159447780467880379005566778470962295727710217455735815402723727129775161537468252391931396613259825639959990646817176980030270700488899828731387395640625076885437899937687981658535905083849284488580349199330098892919465093416285289414798668963245377239100485577955535585104493344292148172361726224038025245399673142613064820062643588194820899634095899762360889262978272610144706756041007409904520369294997319708570640695858062638747401994569898981416247445113326523857063435173492186475051204280440363786646158713535813751596071944711787634649022400646299750222441470654462215399996220667624460624420915465500458034811301494071632109726240153720951931959198262987996781060327416661826199968071646494357483379438819847209473385364439018191812297879718761708045019145124415953349990954673850724318976888520825315921733801557950538682310365324461094692690154303243752173356719128805467016216653652118802600593033620400189214403472179499230481850539956935087555716800538593253911845708443433922368064783432069552932399063442730604344096327119639978537545166499789073723346199867953032890256602631367682555434716835697212336174144112898151127143977590090208009169220541237955230988177542187919167694509784469142959450274922044314653811721882535996871118807138082460295412786749060592784485781539155887088327892892904894721917334362679658472483602510643879825126623960306430389223602596237966323020571870055296944139285809963042382785076313613265966112383531019095611856202101042102459442807411698428611599409759215402697929827477906520296284743484646778133119899693024280069055173658056582922060489631780010594760352547253710121222483947796692077797172830379637169028189810905443463073479181749014383407671249270248081372080331921877922709739059001111569529145558377512276957934556096780091872453619123171752252226907034734891629303527795390054766412121183087080675531465922551185744604190589537927943715320009430786149069869756432184221539644626897868756239548684437598279374372289214140130389053961087061725263971603333293496678034560997484348609523738257686888929585928415214147022363207202864676343134067660653396932075386295177361594544500645828757380149886934614594723231163832247933083793999625229007074455843150177991465522087585126550421479783617851556817266959788034108055870724092778809070538616814464430147796272190472412435778915535475544634797831087810626400678189812104466650936953097019415792423998161471152515883845683021123649449195470630998948703435104710659979649258450438378936812229525696080061579770512461844374595572221048279739582397008990817466180774474782829130946555196054506834097326371796386012669114723195115513623372882367059468423173306144964826486076076435471512308002122964671510814910581394916312369898286482027858256016871016890659178755771133381841413009306419017847447262492855036475519221703574320456166656949645711516865246502444627321033197895226631848826100928441236226341661457280344403393953666621414875884855057266278630578974182282930774563184447550268420552455459508186280120508175194284209452307025259620895122671133877444877344951129757353032876492331826895359161819727913577914775013532924319475538301938632037279359178494567919843834148844697463847518447438732502865901681974581272088434765907645105259024873930247059946483459521345514588949446836175223393735157470920078821938664790513534677734842708547750487079833789971522208432049655546450043292327677508781902706687120615830012701891864532124490148944392484662830480400384570676875274908615489616064949262960610506094809492876156807398091489245516774373161865574963366215063497575120215419693390997574010052761896281346455330895910216189486218170949351177743269785685939148694693029047756747416846331674301044043759959956269956537277721970757025542487999100007549666767172581987174524844365758219130456537829505666123200300802731389915995947090236140276722474940211474633636332889379366855180542998902052213736933276188093707981402699340916593431259251077361417748317718204738021815837062653439379675145836815671913027766867429822051928235852381803695557741600838381845383983197883496056376432086966334661296168717348760945046609146559440041808727646876213079093800084220617540604390100333542603282470838247866302448634255784915809202461393787916814126932133798267422535437966902233718790920806769372583912958515553553460680032977908549587358683924989982805132723276348261751194901326665209206940296482742357940202708271297829322156308886750981549777384050478662760545425710069283971438984600780031608197007583500373497860686126891610598504220114960770833574913652091092230175566076158068550297848030695217311385462667938230286527541095493339776875668599830525229171434970472454950097962531853375138408113561593333808955786366321755945722633334586627774372789594043897611892691331073002274100395465720357248913959235199118139405469827464159839287816133219391584735914092627402691655357722194172149444090180310964631770147139775668786772168497313429356420228143480937307854791746016399499461318435554096454540027250011757071173136864843125563005869513324525138354287336181097172526382508218167466399271645309777454187097280926674811104316922082137132669323012227189430703937121295713651945162949606551911318766461820078216282036852069955427763136729518546057262432148021802741869930047677734177352057582889804835154862014508744412390292131671031868683010098228521480609075311729138105451197008379686912561430655369199092801418259182030436597083857766462999318092097902799651368405833330022440439126332748351979563199033144025698847305550237770335589837188421848447763899142457966602179180540053857777409956987501784693693933350703932135447974802872381553063037828106139886562453219802509302781813040034319472994181330516971972653324906887609015471869863729728449604913657235868072521741906628248091453556108532894893131583986341621577538105276203306810353725730786811448061958511439215921191766839009031912222895084701557054207353329635702856985763661164512714069189756004890479041649354623318049864083621184688153218875668345261572005287591141554573503026845988112316863089696982754893356383085187066626232055553135373883436998254147639679492020527823902333012331229887240743050840110957096161830731078531305434515296748992730699548994025454308185620120755146554563946527619580212354129997296147768332973747927271728171448540366291373760532683559883509582498340613437985095729099989043085975043933211917044109292137309469470456501049467353574259088493030939792205824909746020100093846805430926858346433457854091779181421329444970502304245574003698779675427955669997688148804094270340727358239936606771811083133910242015011832298331032329386067714304267499001442600626398062910594932898212971214439683398805699463889228905546018431059689093025596748143343338015215386161345383663045278986154539002307085935702535360983601528976158265671050179851764198784515577858654024940300507231185144004335306813430060267155454276802448753505249841028478133400171880041161995220910830561263679623761924890748033556695593472790955389111572957927778663671709510017709730097945389689463689607164815788404279382307229908403830823103020762198097017819345987616109157928244392274990005111124813378445144883902705636127935128815809540504836112983136801243570547357596340261667111113101463458870927951927221660921092256508978628707803726788713549861366113276042115055246924305248440508496714331581986162793645951510257685814954718602835328164607087421848597982310000867151744917887768053733322259074048166215936788808468337242553441685814098225733002756708352569937410290915718259109765966070902982547445523652412909029039173770777274232186193200295404057867723686246231481873134803130174457693297763757673508355435377949961602407139509590003264431410200811869915362488237494935640434791642694958973256372037258559012049187400904197196330289820438809657587102188939812075138764824173758411655025023995588649384658656010411383371764734400271675825705112619592460165851678318357877511983566029403917493004162489651217369174497816181867762114786481403386143487113333077990273890384777600725499697558235907966807683046833835553930088135435246311619036888910191444706483811206981420397630061367613823266499713037567200939676349099398744821175896839808407833597371021022662341362999148929566553270309322248080666482909331819253931541105370827838728957531524665098132772027084441510296087154745884502426431956605094526329745334745722715385153942001928419378402207317077342044716509926743443160318666795556859357558408281847939862718336339042657682604913191130858676255891566090951980074848624036670302503568635785518514652831519466670147331129559016940979150916978943412075141327940866985513462234341828410231564276725414392041250929498234905948454785386595637492383832273561733976931273983291724933416652510202329255434746384906429532671783783023544114174541988768476010661513239332593211156920762051751479031785932543019852805969663881587627360857421290493527186536543048709132573345921304128460779772230088223924749869466353328899876390935790331904779887028988699176926706378632480954132975135081477012683029350648615055016769925703517346893966900274272011055490403055807256852841143096201614425678421252211290567781609935550250455523097658195203129537771904938727470761461260986156289857209854874035674407416693498978835068335303798335793554803885064516536016000654622377421046767655780511586400151260692360867503585245258009556929456317948629290368406170828164328913138350918702203909958934415878196482504856070736900270800049773707872797022508604957034708508423261045459544029213497130542160009326768881017515630669418340174096905912211447027174902219466779031930910398572519377230741968531165921319614042330734007883156161311844986103291674843831051525949259467719372223825458166232942319733811765784409237123544115969025058877762755922901329381833440533071505486974821954049217190418690124693884227923551236818948259207544716490478576290991116844245689562143873202090609195626523272819908667929087188162070771529463948003183980572865185371066122005145440845124930521410583399312822792300925599132330266172162297262727619612648317027400107927204158245815830033536677908409273338603927043793271494373885359069171299565562470511969569620589566012581311622500662996705864222696245928487150026139155843962093165252965429907409754594311588649632959469430819309813681534018525999930949458949276308841915103880399781429799293352554469841405946825282279088789522325737248513255888513521675918273702365849951591726662339526630822177604469123043371722070902667623394039319153816536238924085251367595114486505516886638648268720450992110694847548202690695492630059992164403081782539195073299342701873655594191021277867505390590723636838698198424238226694309661326881577414690959514377822566963008572088785250022277096440096291067903434616736514739160288558001533485100900517369879001898994500252707538366296275066193759678612560350874774299066170871189579949842226311533684760636834817194983707416912723939854972064444042918913067916908343348361194048565980626003393623890548966303577412902088238461744925968853470763341852441403184148295037054800434428634699015768133672754262723400678299082521734583705097153777853253674422545701749278083444431991578988413450589901171245421089641056134871907549352285358356535022376175753337116612124168852017037910106236326388213901381070808844353449992043160246551045675040392936627261443206472607258040501185887337138460273974189175060221057712503871918500072791879482665295554534162460275120859372930228797304997954166562618813116067346528911224468159714679634530333246799371597519440562061689424277611346626888927140008752456522375050924969717348506527434059289303864313098291599419453539293634066180442532638833730981979852777438498876377721194861619421992231262745943488360126382917324289031675676941722193489800740924454931737046857521254154318466753029501603732158612089443971273827330322117789994570936878616094545095741219346548804679074020721438542528992417209640969557632693648683747920617033702147455453956739543974433539249861738159327400801113697559744760875358642818935638123958341580517550675196054707524642736069772335043527871299850494686504609274844691849240214445131855554640752332597435613719631524105410176260311783416730337096683531311796899162621411762713417461977089303172972830599597909135568782151529607628803597412194314229672353193347600724829774597206600479855197657835468884753673120340315254334052438947154854806803521471328421505133755579604586279840892517133732823871955337492537354133558001822383886823808457345099755893947227678860715405580747235692868481786814683607706021244347172540483680327297002719589823124830972396520854920810067385547276359465963971340867411833341622995958629873703179990943462973493159695214048444313485176723958332757349807374915083931732795963370962392264588691554501378941468806327711379034654478908652260669287126499085282465268064526028437270550643980155650371822400656293108368470315268487529366211313646359844500361580468240380148050182345752643512155803162169880636936887473100729037723894354674829616175058219718733061029737562433117825752745605420173391551219528481212402596992067229062567903588963646072270160585567064969125745179114157920239672104035405176786106851484046473209944024700840755597728413603166758723068149497213929458504104418099333853492635543657652769474023826616112456659654523127479446845012607612296175282433725382871023492397170223834384681364180685486079829124524017769244521773562267491924983268957020312090067693352989451569288476655234509536503873580754309823170546421566602520773303569395898087934250335919800430734882356727372379335433961075322059435355244635722770932690838712422469485698275060879010627062606219508231293082575921842559263376278210936659276256713832355939187288488334463980613596442279244787308775591450926942443345882106810283915684599511339404033551543070947283398798290971510721351767740717815777337081377384637281689635700003340762247176140213471645024907952910667164515499063803729068947058492232232018015467461369431979974701404624722525628745727896246205877006951296480449472850988938468393460551895393381438282000265982690046535845087074301219362818163670234210840361239387335238137884464089001241485031954329713595914767193365918763216114924175346617948072804825862071537515964590993868315437307741614041747307553080758856854762894789658415636662713559625737834877468198859646232146384515115836214104084071135158869014835580262355321636944556222733539532011257660955386989686408760229927448714497688324545811158760782702962141144081704703215558510971072299812400890819291624873771160151665966334547725873773692334586466153932024878502985497598592209949115783403188666589109998055176214633755237486831694596889455396107470991821772073438789758276443357413584584478911360170960574398868730069838283365315649784749642420602021791378474318088236206893444822666184344898141555800451648209230076716216277303381037536633252622490202407676473832651518625201194051812284117855960420188516947427020432181476757973264350133158742034139060359687207173888556809955118610941549380085843683264419593039260571196095766901622999190504888726428456747635139006356386748208072340084254723490614051705319156302174262535572433371448896928865212395471346131316139800928260323434150267490427334420810241002475303484904127544766995876956796791110533935868128715563518458610725281630137953163098426784112287977240218792143960320416204618694230093455170137223069802900141987432126974835682111498387869004359440757712974670797779179629400856464581694170701813911395018439150741771100571153467177630672877608624528679299082526764246698921082429769319312057388942180816632308006961517448293496164272746232491979948459847455740459788116510816125977748237462814694151075945599090148237807413060460544434210017313770860990513598141904965475528543563484611440407680770914886584941603581427446389900966618306814443631146756171789494520837583305173424999385278745278412735444537176301954321028996046522325620010415393175516766445540226015738700082930047956936129312127410260586892960071814115169372486601469123159461157420834205221001571983743432990834912468297868055529359307290085375536997534880060687394986868604303321098754587160417139039858004258632660616715921849952357749736263240109329793802537944290568546551806292192712735121794421766203669362106257091823688118005251904240361261090587671763241370862709770346144408976313723368751614583894265614325080556914546469301624653274617510876078931509063712948278619838749141018070536234095075251746394840822360857419218300705383187785805993156022917683086323216986939563966284907981604000033387258202001126832235224753318127403134778742682415638673205234569343315413826844992407277108564619086322511098389107141655052102942235567250111117731500414467964888758476111688415310551624625074873140811589038377199198469788013508511832671496647540811632953264881516893663054854563369110149170082708300870300141398055389631613394947248487373135007430525852464989992499843611071769913782893905375773418825682578457909080008580306022137062348370224775881915151831470150300995125792558776136470975300444115060290584818442531982493950598534584978903436195520067602832278118908173038036910687511246209486012823936416008304021778844304220206560676172822569578642996971262651135094069388626330813439427520604184866580129124159848166424859629723695487149387517508283437474672521287682011822064229767628412229038336412574043902135632430361562665797137474167511773347341929032134727056769834072927582375042722904443779874943979422841704195566863543463688996046009451659957566654819232080905419388906574705126902373781045781767057205803837958379254665360562981107450343295319075945624006658876081369986973453962466922738774320817854878680099267307664464431792620273662862122687773018434467347778183859894232388736514111569156683857326879247884170202369146462557969084383522603037326408319244307221411674182824590552421297457946562039706162794531817588427539350559513066743401251675447013118333020891756244314043273010058828453063597148143065396205582724232212786029122369128792874607439100928445376919230025586109819248806763043169149914107253773705969924140562681255833335544373562876822659269543153481425635031783990736572059147340606806250850942963505180553743449067431394264267404137757540337030444024162381430524502009665231327007357959066156252492642066118196950311492318458615208294420316780498239842952283624853686922101294876459535786904755371250100348247343565088312774819121556029015354449583245920228756022742072318253916563106255877871007794079446597467592495037573837435623048521977589703935510777373875645982213354676743443536662430412132397561666908861313524673859540525760639493581317762348958606528316493278160901336176620695008064266547983914624809305128910371004561112044622321680645861566050843745343633386171382455501637556893588834222653712970341449106741547565955904935632012127963363919660291661329829569613336949863507449526384585191452381718973397740880901789324171630450136011668569601590481590226788303115680812468653289441540838583329815141654294304945051123552757062510435381216611110711028490935031096713463960701650232014689189237509494186866373461179486026260782402119078075440866233909237785950217222376640556033786666346227882759775955532752445383530516999989107806102149416762949073555655370645708574496905984562138057513365708456044140862530323706072929240958535312478516338041443427895470221915344682312468525197290230280834666529313513895343720815893826590097453419848425932546497779329984539978246459487433126681312588196335001655837179576571416592941542389383349816883121053181794230874380628243226072846747874445918509477397330449409202632425228213173813279521029812796471737579139945719277813526855417538288172380858248639003719960580728467062571526174685717923175663577905812029582550375907002505324282705413797850708385893045594292251573513733556956960729901466115542285861660219401246088932855204542981843562139563524075541099089762329283121723876083683261405018679920886629586381823010340493874768700148524828476856993411413435590498952942095995101252435194054175807505137440200873961816808490190330824205614413112564387403161621548526107340730065032180257970502138838521795823492620783256199663076984569609104136110585028978094069672356948236703728615569912035819760843827165187344474316818605667153127129967020069663483883519978539414974347514556161050493894318097902055128538576090795023528540248288585661466529043559111321658237740595186465841232616395429856380694100701650208866345246708398074442687684719808290496661765901099019947779507121101663529928392864019362028956086222892715116757011902210752848968117307890623242269102306169713117968667034382895418288848578758233487343238219687474273168763146177992909814260317103352419403476733953528737467692637289716690844735714380289394902748978409735254195129700126885893017113510215043536190644749505711421283593489551367472212540661399469158886943584386182886164838855337215356529497558117235391503718716176496876695790747779779285762702602344942009149280777517364080574921926537292184909719131736556428633747945518479278847916463399744123705897241874778794131281859200839801875694962467049121384252918689373960647078573117076420002582010716738836384696647966596135412418007046897701882653907508161524279625359957296770828195449884858919931414367213525045905495140845160985819663974477488947619441342405222223846896994133991038966504483326382772012797666645883822222146159264477665099070661048021919577452577889300210818091909298933403712724987757393892265780084015975926776496599690975814029330305546725338891466768420202469862058211881946682563845535070412540796080585893542786364727953171686292279436821360635303486658201839642911242551164163106453617030313042589797985315501024227876268854647944214154610518392567696881732436569452345652533166197924723939287514971010721846573412828322222572993126777194490800889611985296806085261315552830352207584982876786732981069599347630260476770966646620006335726039481581502796216197121993631383206688954537707120095546706477510907919720677278722416387257296545926431779374010335276512014872471296901848317811130698498802565560596891576488778083840229815670586246231837924897710080250696266994091407943343255296811927721918608797663459208244492135631617378521176848071738949215630530627248304406155958198890911655811270212999730295749371598649477991270378252268991744290828359566816268107610128850617383971878528426360816757152122718471500652873481501425935123785772548862791081579598132077146428644110267474480055371041037917339837085189703164426715108801475394501288223028616910436040377728208576172718272569489841751821079385062689554993131784113961689220745372529346308682388458874452889494486412577045653830874603617708971534950666791100004324462218454164042342280020466666564016790140539777690866430851160543113095447842725260747318376689294158135845019348290232740164252072745396988581979540327385651516834649975253474291884973906078439580972033699697999735690365339248459377244827833968379849393413909165487499043142772768392916438686793812926259998572746318896631850003436821003721877624803638714737880754486137154766420835526437842893874889591605368709197599610976540425274101723439623862488408116691840910118038831703244900856220494922110217577243357678831727281760216448279554109421057143461708445465377225498347578709943176803998409080520011110739033532565744469348882521335187857058277048229819653839859569104496525390859147451816132409260270438161291764545393190276866690245019987918828593223374475371487099353075334005874769920914309422099552674503326002961301956925296565957040292494022133638223856420684696911701080737013882139972805394726231317795312682390545849488275616602798742336031490806109415187899999876365940846018797898612046841390428721205006562440144526536838400549215386047444391645264266818711095293676710674745635881039926898102834480567820165457548573807921948924120030545898666711501881319115640417884332365368775593547897753048264862053549505296176284929699117375605578629226522117577444148300117498404287283338122479468003285316714906888144864189445475571253816159100227374329844782237052107370470276687806036159824761888488595879415020023452853215311148111455923589680858202342342521570630123752880310393487593546574945736202428647405511926769969582236076086267440579773852999472878943965611813908322031261388397314779164703367570967578542178727781320181663911598430304201284302987296594953465803893304564406958666713450208367842124060195958669614348160946855831919793426329376290905574174975307284812773964097934051837783189050788868364474406650144435870967130079828526392291631674157653550206758827517990777688683246579179526251717017818566938996961640062730720190011876425537541656477253135328701599159297877952664599593787224943097830310072218212787623819604402933719888750959414837790218842708982557604496548718848861606219782899135454692524402400668233917412206919106990385918925993121327223972226547839086982494717209713007004960576129460826252083207978607672881305305978170961959541336854369604223466095206566510814501229341895929044431404085265719453176925831025912093845089585136485012371119081948957268544746854461010564315993608024857437757752023253383528677224978789942637275792212214770075407579143288888157929494842500958997420126273489004990634801216912353108120704876715389522405979092300783270428866342134097152347971265559164734456766174032852056465300362444997701169280483238647858673220597885457171396362701949938112792880226498012725318571677935877420501467023711664812275422683988364336077942699389425291807362314345586578992841403870118766448574799543461353411679017610216788520327135434009470827807895576532330418848577600432808699826979044792502808126424119188818593433699562801982081049818070670899938354425591609379879927380190855957690921844535079823650861266675658773102479122609064716879582454041341445418060495084499800282872434135106337284516970277485516577017518717910342556514761325334862885113482119682474912701074867720957822239005403976423225172035595093196418240917836741634348728457541913955645000598575994028816466011048234597473594144293806140205525339054301678376398150741745437565787993639098867693764325686251379863974383626192633464020314163020761402764592154624282833443485772198882291415612286908972944564738936644295713515330747829864819642619737062687726974745889008502752572325161213487343258186862144094012013766210724986784073881461794746180740965713889727857364929989391212471153910289007020687498438799563406076116252800711488981073502655005861808675218728797951174520403710560740224010275862087976225692050466786646117339619612891157544838267038989632977509964747482223412115609498303715632069602195645326765983465192069279721160070778595774654396093670367914905685836032602770782917352688431007104851921197573841255579878710771361965845414408336290006013940700218900356978604785396390537398236449192401696053216729155172175563870790508177154200973398648031946591609648057543578516902643079936547897996194073840105854544765954075349579384779595168752075117532725145622601972361598286361081796805151126728052995792522278764111272853058008035323140328491529541347605827515158203284407009326825376240924068878289029490556616720910596757841688137856863349564496364609573997798379565930220183982620113078317399127536220405364213513678030973725809909763007709892340366435357765710078537576598155059594520954949362167430761497503598621975179098712734733285158243555542918557638808073345684726721837628628711285233934788893079012903680599995065984428355572501831467955991093107282862706025256962321494350485526208418910388160958447796954058591005610738881369441391359745766981287791198785515025003898236629403213575624098801987571289585706945798605081385725153559035112942829351291986785320236809227375180538631819752218156296272252019073605897075484368469273783420936837589342992177660876333176008578708097296731157853993637447911995453973455150117039236518187212379882008323413859392994156936398008899150838528086405951789372056170233926852994517928212738905944128393811191953508127065864651038030749763699615801966792239063464177481514692821194480879451428747857331655098257748683913686719815914269951641246748034728123045915607008479071103999390474030680758901504388771989598100127144650214996103273830858761670529320425184796956670276989171148875334035982219258573803771714756725687755188754989809016056666623907173543273656268939893711372226677650960517292907664042425218237575202995426058028491887481463590838514814985430567549580597692051572244209657774688427568483228483045148181959626954181882249005431543371119584439681684909457801680806663621299741925890255721608724720878862858708541015945411823864680337064706211492538761018618044137002172908662481237015900933418611926078126641122926132048688821512633178641196737161887130851975267765422694717093301091121908456088471327205904162140744891877926822365014963595267168153467423080698145342935188230451389827478400534189331787821686857629686596786659939646195841097254261606968081367610552943045770634221489147096674512716749784373648117816571758391065535408756737287971848892098102758509765054222816308904956263866806613743513800081967723036553845688015467962146907476168125063912211421063112540312470213578717922752063137049053249504613667450726039267759481474534870785120705318035868355413143723804474605077413321093301745815465248604265264673172115234762684670096247546029024192704437773375578763132406968373472117528962072169677481480381582919812892992664358294309871657897160587166192210508666113927849956976578682552584949759692341201996772671667675035459932653358658398061309984742943629083876618460155524506889250454927496700387049495578414321470357245151376519972960391205333134787116891326757286590214495421668128360804449108055186250081117923276796866231645992025658662002249545100955121787039371870690458829483192478120688804869600548332711568027489132066343568259618362201407730692177147227290409140875918313981940533867346663185675473622459580062476381860540669926865861789287648281075834696298718739843819688574685164068506265118847371033882894269849835785174447706692757564178609444071792680632288220395615624798123594614884324705634251512911200261834737988390095994846882002809961071740478621740344653680660496126635166736672255807544036784071574862236481383648023766545337654501862070833210411437426694867179316218890833573734098546979102695488970737884333404428414500376906962352222494695935890446462275526842392768573291992514841992820142636023785969656462024518035211142350332795728943525365244037775778078569534394123393001141879805795395227943316977549455615904723972020564825159166392203047555875139410083977715343625275744183529655334676107679253268091434976014475107641990581357158164836949203852514001314769933403019663042239547734412554698539856107955867802227249046891786277886314849050089150286900749172155077099760569610761886358649773474720310701179926648672809602530328481024692711191995324379216126653415191597198185247354876348044838327412938909396477720824362062076096599709175448869674992457549070017312949652887479015426354423822108421391140039280655253248397500946567697701810523665841673932302924426377170246971852168391983956077893687241777469828272949750131669873637762771060281656165992811977215770062738282754684506013808566489068047994934343899930392247777775004675961950284890889878640316290291740413781883838156355690079599594445020305948921151013355077642947197903043167668768685384309826011626459923101765889977476488052016835631097706530077926484007452785347361094638653861703680473443468047776299742190301966203991605820699908971630870224270688812909678720157253693016438043158169413327319512009110691730252395357486972891088161489593880981324857287701665716063300784545268295432584660841098447386592473377578344943724579035029924072590083649163529208799637761779840531341864705257215475950681521927820908548345969611432711258112528191331905133675166763978265439153384209528432275199251117157524479065926682411840370007079909763896090783312951456882416484425104033557060996724339982285377840984389474530445027717006771132330115361320585759310736817024308046087797308021266710680541408057799039375309141992982166690109283798187252811167939860153545233518517450188415353054325615091811068177059470916889153980556969138293364242793781857409966104429094363482201163108480213889584001948700112435514610871504306187826156481442285020970601736103438334684333948114452814523627045376874009286385619900735647768611927573900365209921420561344011497374612995640975996366981710496131956441723376262160646663334803033426116997555797898511620879965372934200747157877767804589665622359827284769697844331705353430208079585442084011717831026064457107190019349856068747988872742117049495297213028180582658371145991087207508503386779086126203668489162656109607991680509461030946714932927073985405511228306106920422351280779555378039973379721857715103466750440069298453463163119656562160990874511199248346834803201389723321472021143603718309426477006536612636531174855679618357455373439812477230425994683342891413129698960343137507444891271623556038964276852353423974709227838514749239773024901410417201187949743423681643015365069206417889363865500578032065226663110912606480672299806371716617981958174524188777958166024395799485071885298844595205696900376587728612244513187532750089551373664349931874185320432442821751761229404117317434655452969644391080077570558305125194375146703781272613889531870755144291486117709606861132192947580433304347656954693222881857959483455057935983030983886675768824703539716053780692547209788365486646205388945115958688082635897615445296929306882133945039650814420449475787561984354183242917357562084198722442574600171966900208621336138355337663880961364848237615836199981295061421969696627538137121351081006080665062725635369260157755839738902702916446725928900358220741390012084258623781779033665217686149756350031935832700117977411871320642272607474967805037215638130034724561046850991678178746508953785908812744568404845260767438314359943326249648518041209954323019577002633598268749152902164873506810795725787104958185660003454903572453164172242530932066440653434558531035037670540387187464193267075522403704065160467974944829581270154697456229152812989608442545661136321915225827459072145976841203784941295101889467052774928214514539703973734906787504125277603828363582748721263720708604538282163663634345871367375551906008850328591432635698361288608202446347517093379548224214539992068412399010293844181576529588123655588085560098709870698523111791902633923638461257668858090167072191975127300888355212678408358665268629682382741381835833836522704684693222948587904182581098915123590282478570710209099673346651302180946948180639520386406307061101323013222163509784642714763676962656916559963764479942761793315838290063600109064603448127589150260880023663295338617290595289265996319962902391795457722346100271720772935315722921850562621033971087465909498984182553625793470502742891500906600154480499028217709604993944970418477015014582117680191002889646926381144684642846473902685642426282382664403444934863308499714655384642106843424337642536346093396062870525126442408754156745060016189548857089479347977113516805985275675312486605289874811261756649153689433126995989555449843657730716630534125421484637470919707110036858740930584542088216994259047618740827422852568263146916040402285458590072330344435807518051814480009472560470279865808141592204841449892970247498565825415387772038839174666134067567641257055473397685124525808665922460820865647568107486370268745275056838897064379269008135506694647083696680679322789549878773255034149953474977443808549276178396500032315422521378867943849801344088206970601203711828763969435597930551279753035887007071893229793387989082355247953028718605109697101233215967577490809411052672557632696542705505868049494452653270043658022366813600750023006248827731000851168129102485094884634405286891352340810041032023100071635488257868737541923384982633709596883449119358015211196538322580232962814439649185760934070916078992322624366856720811585277447078935312960522595279691122459922844865733373845771055235223838275317275113269843132548073767237792093395054844212030356260210602332239162053090217164648596999097750344928173977172515552281382024359989113248319792379229355889949173419021968957508014510805107926030920427881279048204073752072609035716072597256242172782166685581656324170637742444635366402408769686815932656586844671748905186798428117445745188457558608085443379660534769190987407598233109974325495985221982462346334254534873501960596894505137147745408787602179806101435105719574246982809052212110595662353519710332181065134979246039789623175574369393147630610055358834883255357021735241510703100663892005459293681998993616096541208185325913276090158970834089126478413368361069260342876742573736710997020933385254241346830846981774994650343765325242526237888968831618544184461928997344269641688069849363568256009298829268669278622401772277274555787902012987161913616879066335249543206025279119416507906638906719362339833074122798531605419083793793043878348947178415963457772315116164728380188122593586046216278596092571249968667956139595471852328101356890740474427279016628486690804547213381419932015389089222149594954426867646591408023788116984253472877027102466535405747873322610469206755929195719651046027199871460576839458118848329388661676609802674209119187862776928582774692795699997695378450551820641868146706571928999000689449208501935427247886866271771487569812975194205158453866934466378173592585223328188403801050339730737986516306921832853949309245980211136803465918036403746650175220678519678261357494899467582390046166304055223635540780619776725725890383209461206959446205664910009023200683532826008122671536373174931190877626464328120399558382154354991221182612907064087723874109814086157422672815729511482585275585961908452620547976059210184367191619980240921421904556183802206380387048443555068444425496448421126115104825438475639054190436673792408204915398977452097326539409364155895617042972250445536016700399782936744356152475712004231557101671880199316557395478334316615161072542655151629466962295925001587118739001055090880039963196116042503661852818470271349446567747599970410935641166320941997451462044583910528787469187224665322889625593910789673429412110611515423984588565966150488509529252415802580694768471699994763122408653670994390492562065076679000390130042025680996461326826919710490879775773472054272235477543782576710581496863570370337549620037958387926331031898256414850410155812847640573714757862538337415251258950562456241043060105601969797836590078661707753631979281454390526479395128585759469353048912412266065996981243616246593969061140908241342579958322086097012552587562367936923200806658104649005804021715616021198266994845168025768466335711916334271326537787448099308438008738781048760083852090185099346943837806446077606082941706316444877323615803722502385241454834639018739099550764888029943218204919554358344218088029617999540238180848669981534319569568623068849673260681166461874521329452924973851119436893460691393407931527925793346759157435100673707656495861171717199702347677381024340336610787731904807807319699357191175033983076452927822370503654833782314041828652585382933553657494435786211142822956704274798669858491507046170803021495039744832758689160575100062476381735236174215953434914699804613409225976127072050943259217211153767809287450280289477494703258148687471359408091695829551049223803045661162489089826549046608612150590347640691287732831226922127287899252140378023149650953595016906203917317643377308433894104426749159627272018099995819958591354326856734129092530666634209687378892504713574531477851857531944318348494434081113236452374935885323573742972844498885746395836979596508936913395625616083073046257827968027444664711541676938476052165655137452001323688893645585977189796410694888054250150903522244778943519893754331310230236043882230758726519596496633278700472445795410608179779039955175792075688297517856616521198614153102003023181606245916868767740494511426215906504197437225598041695446644898457362885075439504861539209762199246887671978322124473965774044536443176006817641513016514692269327080924009641817109809190617828456910062208984468348241891945525999542439962331979522090582814846260471655797481509532804041367680665480972208475153051121328364089383408768056878440286164734089563671823745487640664367035585817179215244371948729680530493413078249013127476804860563071104531956247449898359041889159559354784106608113404670320366788809291562135233795017602201693992567072648364632951095068143559739200847645085161683244990339127093427614382019668116790332404061759915115531599940730248462826110144721723342937641788886974484661787972708202512378004938462876913021587478514263528539107091350865327585457545743113123323040067411838410473465847736739928481371027524864542318286865140849577961763833923100094951411763645698338616390301545332010969188662403025911889034924477478679967727711974331486739714823227625141271629654628034762293133449752510445441648497358629613007948799115474731977961438799730392438119773806378941126623475390103500893128033833222373116767826300250090947992726436533419110901651198809687077718297828529151714877391263007556770981657614475998431016338487222382675617290191252626000533089666559693256731360160618972389390388759843236800717661968017147330754030028716416866469692709866779296343413056968476892563030881575248596855647677305968288483032998641925891600986220327168802734508947896897908786068578894315475466295839799800541334041973488205054870927982185160052659195580222769256566233100572666151082469709318646793649950254496750163269693565714545967891826853787067682351280764615597151970938952780202048742031869952021842373919665000420074988959916087348977946985581772717081519860263959144157168338109336507239676796698422372981655989507252601463125351024799480101633635590305266175040839670115731244023780867252043473791101709969946789279933604462472131792161871433526179358490506747588577307407484531681629943220604663220951327109915150631027387476990155125150156552512041174555301452545570081625008992175897276513775938146484210821535517463302023944864591439987708662648694943500266274837741321046055969818900296517115586887137439328396085715742188760410963642809601388632642925183134580739390143213154349218346246412627238998262045184392041777163946132927784383802465733713856702830396965982280374320345645839273970346342497222879897616308498894791224366919349086841377004864976849842294257811732488885779451777955276862662012756807357651402437775890261047086638921528600597155713777577549238845761706228606171548028493811098186696518312812406064203050816426208886324146717353672631992849500281355081039769612644142212723116915109582096027305168401935268443456725492181811265062159679218625095659198774871383591639408517253697005621230192567452619823260823187097119414696412695763514849515554497030587565480443706200147766226877530964430258252564353423601350999976339732196901576163421180887246717461096466541650730263913133333964586001545169015486802334775373938621808561317929217353527148350592371625089470002325195867982513785331643123740371186410441554499992508514382822965563439285338790756249444803867495361412819794405696767414050353601726748693928070707219130374642260674873585012411420489303150395424007249841979800801277670660028214872424262992861055755752734751935464494518688177371484601937357483400190217151352779500329318778358829133847129459852333927739059500106369939932458020480352147777993752632484465520759442640868932915075669876804603375485572513414048833274826346526103327843378998046698163182215370295994794550353383642220647901071722718745892910539777693201553877207345129843425259969121685158739149190734474543154641305306823737950356669457615870537274736222347781185523783578347402094855290388969168942938161407856337239440619011825885849917176007804496750606105418564086909974974789233223246657212507057799805138833000149317382726286194938849954625110961370509899671353713747729088987494203290788719184718164160005574799559992013999839343473966190423773382465759375834025380634003215710135167516881486722209644571040288453059609938884702999913295281918190876650912278943121365956483503503982647067409552965258741700134375962718701178607642542778244462907353313378179693985476129485356064724265423809891351381091948547476677606261625545250994128296242912329152816414274695343466202095859419110367026798863975908504576486870286795010001576736445881490898958290406735343891387215644253465069678538369600230720859442860179655467228670267869025463278971691298684437620548454393829755676966660241631846393044816279236255560996270779794859060402432901500980240668454494654010190563618471408784059651550037370428752480949600299862890901841547064020634871491224149678415135993880845519850897074452334564624928627049194584912244285721178713491105381953180505759351193435637129753184521375087410547830888484553780983952527150353948560223757857627403681468914231105637053369621045970573347396869552212164434181477688761245588722757377398610982712340624234664179661637164870008212449557533105150931719356421480726678276667746533619565495213280205741573465292865522152222788523494037340592390638038935262889117377858058769363546000841869633916010860601721757654216541089319570033583607594885984838414507541312241427713477891122556989502428274324724400992992443098700278873678241878099104008737547874361558152918315728324967636004107460823208733097430389457241981108189697120913600052593100849948255371742426689176270078918527610123414425657769003771815543326907091392725624699999781316751358357435852306775532356255565344703738500903854140766507062385339034597153972626406999619603250012351285055221117694716314917411134704133502597289271958488291954737453542231297227364590369840715541064220156290949291284572659569917083116378235138413318514042335513491073374087461672202525500869355041334986132486512978316794041878549193745744182195703891558620424512690352122872237843122111511340571015506919892214719764535755180323852292751737455251010123780391436283644566196100436507406580465540166297723739107838244431068008047036052239188368801229145331467487762097675746086873053995577916319114039775269855391403356358474110332714112357467772367468678457294438900887816508131614138643978713707482588321810068325151798193481531800071015550503442318035856270009071537194575369910342434940178661056476123851542211032243938277951577458313035442050250996049167127713895320725228729236644086343344540529797648982728240254582012071652755767747106092023612940267026119999642370296503109617215115757163583196789315184446567754339409834659664370171709178091241061173039943486864244698132661624474661837006215606845261961271298637083494395691244042786103618188896332643267880932820313873980096285067271265266598244509932590961547676777806924410312445169465670747161650561556085186709641907229462312332760956069037998750299426833209118376601469674408468923079010267764378462016876190349082722567829902569497696176517645001173823867348689919172931731092445716908565098946480611763439441100130865233118826609479379690909798429254977287920360195519375280624622155229620863742054049839326192421106507005116982419164396967233366707341562081370118271751031694680178804684095708459766233849050565446285805213280509052853523902364360935721427177855121446543840499173470920386552116094930390737041449306306696301346227926451403713052416917720104252358423431620598919385725653275131715965856154518413666882539821615996030094268716336567164718551040938125499334810928385940569210988661423554864284036841731689787838248853233724443026048522613404228888890315642147079326357763395415156333405549638986456926728254082713650516606232075004717005349500211508083738467149106966720047167222035839849494555280995833968799801659448145024618962924196256628714999310328478644778294320788826535054916311916605441887977120661225523372484332246284667180695739578266099203371825834115209392026111757550231558925043357438752231922211381585268763365389807016912792780410631746991628337253746676671226824470799355944005692036283680881767756436468119898605923328537423550094796670020019831969931819591366840865878206049016677846916206146899370648408815044880819694959550557071171264406595702326417815989651386715055485123937078763021603335551184154018983962068664795679988059720228929919742227400808424328987902704470958592238278012141845006637031429553669499998919303114704078009660623619607475281627870699742326896786359562061419177069751131652218187464287905126537122758599043551822427715599791145239620794001879121965595404546981486787892492220417234179537972339949904479452644006594638607997325595154861100183276132811486853069656420926280415864641278240250072931795404876527991954174505422276018037485261376058461975055905614278229917573724001498789868299980372471066726233354041460930231242594321336970315211489017739175362658742515517546562695779005049389599570828355052523909433219504976169234865216685035116466415600975465406105652574075310008276779131437466067799647308442576417471333749153373614247864132717584984392364664819380382283086127390390435739456327150890536691307970182812120428321636475350977358484109717116684373766844143275740006289421252631966556517248666590206652703903365332561000226515570565777276959934517442382227940685394816349154994640780110979522770959970982642369954256131178603445790378558875281568690618771227027545530863153417076915477517598020179146977150583816957415974917420491956205547621828021418280831451027746541233262460318379512332567046079502482085793608732209372718120187963110980289289685549519071750572462512790540093064302846047337800076438852492790245471651523690472391093218313702779598595000665123905318876833068193072550355455436843100628273670935626531814881354217154914377462622978629987167044858001008869986020782521908345334489509955453782214721448755616996473534942214518082174888100950649695947406555227114982341327266746360646020868196697791756029407118179872655336041827628691703672283695141944929692593096308480642838702125962288546038199120113340509705342327521009228774404531705208098916167703262203680926354084249794899330644505216110934033896983583355385922128928416883973822482326864592808256330971136788546646907689028921737628159082463723304279855962180056585602104590387415377650125202313983742114783503053949794849321833418087846144112756013269419603124602262032552158514932620131494958330075814028753407216447056193647320557318043908975678030861692474909514340155667744806019624027805845645952034719974994125825985805855461239812344684771045727773310214186946936001662702188438581440850027290159333824505346496818297654231450696902780182582805972728143628130293338515091822293513031162804659254338409320747913941926184593016587359304290982113019474771988923117525010967397489882159315642866045513904644564199701335470116736362422362168576145399497705063221905079139592402441641460372121900887267336540768160130442550010452143137029171519767958272321884106625232916536885483101737849110300392282287103235599960659701490740643724803368251826245712633623186876529090864319978154179323936681467936711726426769951846596459103450132847234923573912763881444378134192181895211227725397603488090143389185388369123582573907053931075262303374528486651085616312763888454383200615919813634858659110885497494568173118873443926109578029780185364657833137373845607780016451845933241366805222188928077328598027522665693969446172306397044591751160401543804805610390798275996590050979695404270342632961189632805784715093959433808728619073045709394952889342989958872427881116084980706524771935903124021775604918065665937414910406859428740728301229922503224341016140173033770070292946022470793518696778385808599722378158713573914853079300580525491469006638446265434091419260260452260284654683232214933825986041985326673553016059626678229989881277394006299795535638769714158580171905969227461371365043948269598581183646883497548255513768802915841239803619721602769750690527222609020321058988296509379608571055259143598285598759433080490837282444324101339882920154283625048879945055760506982449180065879026414578023186944717370542272356094290510822051734952660508582944302802488385709798676419163593052090767147771785982124735617702268514700001900677101906215354565443067076270034892815040682562615852129901012651440527808012611898090544294236648378802405779744106510398167408350817630803295948177742329091182809128072746455425528318862878927344610406305244868063998113529332023713441506590015171747349116517022253256936412320877770392373098644733265664990800567073041254076746820686077532344093221269263378369955908531950384527245579407252669870108846532966097277741856994906951686576087556605234052356894960598899595587870153471356090652323146525715728570344220278293680640745744740028620964617489820289433011241478625727151559468538484397727765464947390773840143798267851837721974753296751912152938224538242355975642384947428018356224847214421757100062673086126636785822294098379651826251151168338745453295697644164211194156862315240664250709913863707908592121434532010549731314551607053703545121373284241399381667245722409377398912187132847016664803664987083326522414363011756615370458386364127777718488893047397936804773174702294462094993632223848477748044546037653126451046624351178668163280466896884275836894390342053522662725652748222423856793101310214649649303345680783114951581008505774975634103833472446608776740195254393615023859301305497685638830403431322238747173651853037815402029017703171237867676229333244514551930902706802408923854329423548011440812033339955909139434648380453037979262999659702198996182043601629719573311517250121896832737685099798890389051212080400648165289445001260548408039302319187914942118128408089271293559955826650846713869739748934771270790616034326326465049480573718309948119737365610312938304144233986163274357592741925571423584430964636421175978997446026061976194812770784351932238539648447396584478265828786825781803514121148683239055916927454058469585840159232111605640517779090001394363413749865527676016767259819714390993173760166852207601804313757742214140725331968296011993417631064957967137729920905093036954296211934466433218567307200133574219491512107231561086283050087690877215357958089261856606880557764837900800636755306825528924496539661495357725916809808879377378956270035848462557108152590111604469514819813109138065092910313115639878402122494579441247626995675736794037149263697575835786346830956704124639827840943981237427788074585436410594305369692646305348185902523564518154064062381243498481863907360681774408868553976916595074484223082779827823541236075605377455406450736209419745411450299622572215038962516241561481975699033140059606114955442850001022776148570891587533052596071434783107930493512054569488178299361129379339583185702998220493497049152802118985123204608877114607767412479966409635928484864627208534781233560518591293163943019375037618977952140337465119277380917718594033399247807278711442700970036773905921384176785483453986885427789636775109433628636394199201671964713897988881501610485512598943582614424181203473781587079426110461852311771738453466937411376032935241382965204951454183013349709779674200922789336359973338881388569939593263207361073458735976288359115685911351703641065794068572764015384072327163937902527047016607977024617423963690520668039499272288039267515844987595968162829335149784625692975050706374306699734086133842514378358682851213721430198213495602663138616773302188371032895305766546378267606579325124002209737610724296994078498867566047035500949923244124206165666655642734468968081506347640340820269067208534975411406669896200226535545872815032717251382410985513781555197696337797380483896655335882524251044935664934961614596584905686226661527577539683423643287381855807263628180674734004014210170958842581958126552740709466742107363410904774101687752141516608558294906114165735160208833795132164337589502720040463527844618843343808953514678192302322884920561795989052754700453538788525754948198285264994593632865233943376154519410224048990345308478090345896792705741607854752690518398821833694151442416227838864574912338583086352605679064483327257729206586117397090529844682722451635523159262924052089925327925715251926676396607867906707030650618651388948810023070164751717666598086533004211514659497352721902540126191567348520237516404812741570710792743761871589562261999702995975641172007196079251012806451864068377024442670201338958607295777055726844610594859595848233430182593586883563657041459401456876321851661974760650065724533397568322511378365091602941316309906676876735934973961435356392699391037047365722272032330065941184004605052386446067435279196407705424724181475578836814598450195261343813721308391522779929321845191899893949580303892357508192766566384855769265951644921979586863600823867626831796339362051055815038436691424000180414709515256940022211414573973445171836795685441133181088943887467062427694802733236209318414690407804378814144854789716134413791557782679038820072261995708080065673909672297854568947612210267867992641761722208021030693800580843271878231604892434303937453412495392360688381127845408196266536390442985289809882565893109582446624357192680649068226566524955937019017652505027157653277227615662193462826726589177361391410032874431443129253471054579131834260936941377047215081327494929412309339867005773870759500107528238507381593658246592264608192126036254331336061815337487250095395600784676262121932414502164472400688549888484509479963437179793621870996038693607552943226088434688806419042109628320382745175602820234618790041085753207016398795250554806785757043532897259253101119316362654649604963381115089412466717128412169915963670538562117028588472813200829585991410868871860942734561420152579235591096921332427636534786321977438510237683640762557770218957161390469862094578821561223652184760827786800136451102937584226567406480322655898388134974702185588861828813180905493179903798923720554121700088317700527024978171066856420784806385242922265549250496504367145326596330759036146098282773219258899188955627694914349389492717153288811339930875809390612747810348665871388090487766095970594680206153539209006807645315750419537310529455856342359991798172048133436127177029179215633053222290525550539470188587512543254624941695610497062099730282918652498711263060346722184292711932812380430050319505618800132379422352548370139251879552645973091148793832235699302515025802838360721639791963105672048370480108927851595008479411660544953695454495059434637416695339226549360635360279700824451944879609475269533005007882568851601939001739541796403126403123746114339397006411911170451298943828782825995999187351000986702403405998153620315760598573599015108155358788279265633890074825590450586150911856215465528594950095174784092082553063859945157973607514402797912472865808594211258578075488103780101569280569158910432042991446766451917835539822086437039706417824354865639766513620053246781413363083901633667841829040254899068911099632884279256569520001993388561069183822216715393841123482492300870436279148690039757427420060024418680882437855122406594007190345769872486329813321258976697394376107027422172489363701692750347794454147141819093711914602703315382970365396657210795386412118483281127590428555338414560787465583387298531009725739335557598504779932502061780056878912781445642390041356425203337008826329192182089483427858372277266022339587513779289505762924973219173314495940289858701407609504749376175001238602513267836569121545384710794041772034282544468370071694166722629478415584122369630273555955957998963947534484754981716564062922656028280858071170119019842624009934667848964320420556854071306022956439236251149966263278717411115103458561229977251413434553314458093863227582193542520384082819844576663697680569315014135772047085906593845564023490063348444896450663456191116713243032845796821067897146654701352601489965721860525015760455056677784355758301222650002006023517217613963405568203965846970743928975957236927893233301558114057683577172544725513167711431159524015308200677616855432377938123903141852666646444114515834718821872215357774967360318928712219253742408676933595422763857680507568055942309520753179645027657686697817422514081540858773186766576717228840045094321276239455612443408911460113311086229903028239109177605550725745614988636209015041907639737394704369411832319945720609780092961572933220524948464756748515840122007265715020111842156413639893322682916104256838456924320845567147805856961119167465076863737365061653798505321186395608296102720496917687172107067736703904849337012541949106487930391515103553750626117525587770593277006710162721831469850448234146389716326340965075594923134184375491026858915832931897084968604318207090608053566287562431631784654995372383905924328084586725226492034757429601525351696085010444013640259099803564963066873667557133420517643798918794585126259670657899784872858354142923207399972477169890440138944383046380677562077144283381508389814990818007063348334852430983568635984980557294821856421326749732488606161524566372513044333993698862011290762323812632210889550684744304358969145682939350253430476978591651256073372190877073776693161978008081907368729288731407427390356935343528736007175020453897037780050721159114066138648072319268009682606819867519923653700648379526684762804228264983049710360241955472348676090169781889033737166144651706931979064962167312674947108893286728573270075135862944846060187443651788895654445132742189474619069627025932113957972301875124739014432986533198390358735158636467049848802165007325931030472230413221896901325158356461452493514273865602899082744402271710055155088788269205617759773655526843338994610040799433474766816124634420048073790405128515173936054117009859153602094294985927697824280922614719502843049990865260576683476788083970802973600311538694431513459800451498264456765861742869236736139509178155017691200359998923558764498109795105618033390644402248934989180516573475509110795717034093004232938328905330907937725038037807366198825833329798828929607736851733383150669908587177246389507156119456088869154897313716014731531026415393077436987484968427028660937172218934464479607559198623442285704758848765368620892841443522023433689719516460342195416784370213705932269744911296120651277142382207399883380724903181012315549213273073037298009361600411134871571192842889739487430378187780152860983681307463024510851036945734778247925025228123379516395223653276187454950220159710241714991306010558508401441228378687671378708356008258873584452530877957969622677071675112083248870907054702485744863794532845881200012974834403349543527261801176524020981201557415086669457747977103289828043518442501220085134121911666569911237158841886279337746299391075495198267346543223669549609168289698563771036152448298426925342263824035160520548090297140356788996520482110814765918199173629792847973560343492986531552661890352871642370143581758964772422085454079766862313518643290298254259077562451805595864938292146618037326355031753571119476068321649976063205791255071974650505513351063887751075902756709131275910409184718694903513005814970191074613510352803677880966748142233215405263688042180465987877448403125166725552675310248995168979310071594347865236162910420183255899283293640415961027857723078400016791178215514863331882522277601302345846616082490082099338453808554619684430863569739344921248848417389091050059732122992658510043696632480499744345532182010974398185510361905927542640595035220628601109968125797720805780544283123735455413908941609547967133369711105734164092766304434143965902507689029545275994646088878388231321068176197576738752485048902579364129410579779929409842598889810906770868504971372945077073842478499357277094222674194037100867759119430228108724672105269737845460254962068599118165200337320173770123607954664732462516148890487834785555404222433630558869522804854729436445128768011434728499460902472637574437452020423343734355722847270540871236443789666752280863740506797990284362514267243254492212838914256712535690778078484636122642700011031429853730202737595841802088161392248668248773358006531168433975322782644704515748563653183796592130197983659850071410893169357613788654611529557254044975997941172258750317482716850891916495155873346325884677118865454906738872622866167488616641399906295132066517332883367427192600470847532630647440298852882770811766567852948516033772486216397456425576176459360527131617655306134281842156537442439786663492859923126582542437736561311977865341377654634158269876139952595438151869932151854607183909549605049786449950794147795859664451888822633234518477260037011180923637968503846996988008930743520346397892456361569494489929846371894423141785557639726991534075371527768828607026470732171136680496515642398486217874135906676856309558800163478860859428533155495458320294871411673268353655117702931975351441644814339802012180215169503508348733067941744983970821955487107183033088459818405652713808967250996766697910408215820668983965306814335393429880239777603686146845730874012674102688685743149064684280754637730926843874454715072579421722731088728547843017740435544000510372824081991768319366939750858945877010955290117977478146427767080138588392936108427327541952506379367797527224564963718968808052389842529744246453638610844191403234626529832348155763859166464404357469193131828829325666338951744864774441850119043190391584198841704262869972685981301586556065882113485807565273319956953205897993301323379234577723616885423446261024222964252944283735530752629607323955932539109036880156440641547452224083286359235707071469356322229821729676084675108292201863185760425402627597183559390921933575352666541110226286233535755576313726358601955974329349410418761582009627985781520680823685125167865659757992217913647645672084522020530856776369950484146164735934645623667987007671880415756419717236680258162174926588177849698404348153176991024735406279364386676533866497734593325703720247239553562542068233460740448514931657852339912411160814441961007382337660405529317825102764601329157034925154574537261278479707357255019917129463946274642316641408787188720360455251868944194011936099901042056145107737725213224254643766439821883205967022018608687744623388145032801646708377757743134146692681334226790257174608933358038272211445164655994075732944460545855807673237004096431325926561969397215411128690075427031060184406193957171315591583701912225502801407376185621837981737324884343014048108039794920517607589129733250283836487927770282666081435904499305020088614434545338485904185991586922672249616949089403330345380376228692620843626161770117797481978325748298363372129422893272096514843776697548979067797920243589969915407065902167083562576526159455374912317600241573730502716472517891888694726432687379849121675199901686905588820396129023625441495492782241640943056341522777878465212955964063511379095703736909756103771329258827267790286561707072839559541966956178460655641389689380792384699482956279392312128317155464267431845161835669632525916949066981935306293791690816480657718570904336628125116913137093346741730135724672062364936752852997724833924632106149830108545692203940283922073147736451826871187739199075237443682483315860161884696797131332285711630326780751600785659255229442161675423549125966067986429528539710081688076551212097226339108497632818284936180203707328517643372575969824137632142266157276873152585449749146386578836366910905299365988582116218152698349664476953381319620857112562892924795077712068315525373197436132304838707429011955263186103206053943516368757859187945066949350183922528495590572300786413723926898100043239676177916133083136766907856490939350031756475822394662994195247704505421212992175361650015227527416029955680274095545646709989964758783228670182801164888616284382041225628031768421538534985514584986258838564053097372505882659982283792063028122804284993790387764505503290637970516791301943415337797267036638721048315514767983889165798767706613154354131010337575136675309900865130610881840802095932481804117435938918610747524440991235880813499500639171764940394601020974973823562770193446443661894589211108271535418344144374540561426849775077834383053812474305764883281649400970230044867505968563839131545485023604390952224131164774401048164370376620408485006589795056676075383876919096325937832377355162909404310784092099369037558094016840616128104280898611792548115629449621601607677441171876357950626158922410919321716673654027518702362884676512287757781221416824071796181646490224262850873486532657315344741543913105039517326345824491315404173049969006367289202837560378678542390960862547703890707134646469853452049326928795393970798879844613159257795539370920802136546326800931694992972971203110832315723179408186986664167507135030258994241707091489189692425661287793695832640932960733414990557828201205008652513456179287216041138371919516398275345635445541577193905102790793052573735047711782867278817321771542800561891463297003334307387635971272486599603910866522497481031826850451066213662387861864194006878179902055612933916190658146940493949809713587710021419420205085133100200269024336049246549724447866320184685105751956901412288808992149261727530525587049295691192308448933891167956308652440975919803702128533621724097223439799146228937348379882691743011406006028424073809322667237092275858367608370258531747452207304388489828828204876811987239103638082635134313392148759765031686838025691863226599562630479093825552607068437368876385694389463075562733144238571012594492412952593122980652902066473796795951771741512017175657155960324680303229990064836872384459409188430840762074811072577091320478324186512561422113107874708667681746855431787087493202140829587680004743949164334195213772877320147200290535415421098112422445895886768960680770591401799397852717901263290892022338785559902298929364073097160185515235803106880371418731263044326104078829073396816942265678847209311532367515259255220587551996757260760852462656116262091239864072532236656098254847060388031153277035676448761161913372290812035458585528492445998532060548723977694165305475195286499060522507747865609612232882984765988005866812154957694854809013049188182223191458382951121232128971279088957175876035769939228163282914601484666646510898853332711377388962626889138459367446961587744908480261384176422149910698408331088058845449852891265233480310533622257237781615779563740749538654004576237695774732749165566655322418901712403478765807498412737633544855065029844191142523269861327647661678188359684181682616846923959405187894435515933677337729055417315854041194649020803839450615638454613345770728873168295850565549585984676369707754088338808987289738897253389985572644847219615423207008783721908359365291867783324790899249112582127033224857593328615476868738763492442097964203582204974907658502326838735064769108550281872779561364291859789948618589151773950469132692438656783337957204699578490580971863300811286702510674090791073989327397703711670276273884410564940627827905316970697673657380543359344010140966110746487545772086863953085743873872335808186693530407472107814243679627333578814307803370798496983317728891225174217816119294799331230481826842347216203301325841261672411955270935987591680338350560641698297487345268091590692884275463078291498317141601917062111592939882348249630303157976671709728755831622406744852608121725994757138860906112982744935097375909866357122371486925534017518239208001492470455379074879801725589768733156678981354458006344680781697670359143684127606190209609091508155263478571660175597888386577513552309040258406174807335031424105629034928672297593901698235146206923392347427612914277264575967334862395580206406684990087432907603170563705955860975642959634951297303342021566885382894194920396765059549699752959570095129858307413532167969678299944271950129661956253797061177372009851291733614115781632830462887350420510972445433925810271932106855769510020160667684612695620841463327960501639408490679229832696985822383128451906314330217783408313043265662597605672667595507505267954270500965985474820157786402935714163337435068650779476816235125192660726039608006729476915951121258276767532069032025398452934452350607885079682643132479712019206080079562701960529662813918031380510546572296372278694984098123509302612202635476417572723847191524340770166503057214949677623900503640598616725056166454749994594315994061592315477606183179776684664067625148354602951843795307609591299429691746396212486144300371807395646629345120002957590590269102646213178245414328086478111927583452521766139909013972849679749879364657936707109378243283946817627692530143769259338518621594865324684148496757085070532246502321617480737897005154624777017775043421284693731978106500996372927737592895113105779975616223575469396643560638337904618322176592346570699251587367938676882445544220361908760820139232922331296480607938549780275446914012380889513089883207835751097426182262793175688180187641249590630546974495893191997099551476793618658773143310487372543474273993254355238065804196364896187020955299302572570420497238381924685485457107631094710298137226001711147994648691859684050168946171084553924242065499397847712948907478903207392528302186513542838403409964423771490913246724493823321594774238083850965360444873850321164965155204797543725969069806615926985211634858968889944579584838979212344524905931195480098000164037985158040823985079158667093895386422263767108014097875019355005368491664033805527126242247418589958330979947349190216995517684310761935198308624828184509277939332224117947332387754218985501876000152260244002640184898002621215098753668898150764747111941094667420333944147045004267959049002340805571786868525653675435784519816967631097828550237169514832813416939719521837424128169728591838981124663879356421044193561512128890639854443201485136371058895999093469454687097357279409397800910219908933371282455601684254663886443377780402552068661696975902676533394182829139641231689177459717279742836875355522596787794681148202655429129498796128092657757658770843334548420949504316039075342219501192730783985547889463230996459434670402971025214586639320708823791393537577297145533704790315390698548665707175516150009387785464833765287809004959916148072054444412718998972963150788566985337472805996250274882035034395952889052805006891153478072893119816757368857321194190376151684055596016960159666989948849670884038901368243409010437401751319718751258782063837913727080948194724426634119845300617430652553097011512898415270078170350603246399834068181739588639818638988541581748791524658328944714318549245154755138864525246946681686349079277263255974878515459860344386584626100504135118912729516615395654265036318325514347379432725299802930452956208596879684869768108845345820343013141695990107772146332833745769597639244942759835042824037497764725918622964489559812505555562260344374471869602111226330948456296511670392663762663574717660957366357815214619018036636783808560897567890696197735769274164136337330940294870536831714759429525691785399477246494224609218568991194724686130354661438399695638649488717113661028771971475923514575004081661465136460696809369445376292347539045666405845192102192647943506098968942294133493679448512025418926474524142213970911123000533089311182866233594806227066689713339826240042964353250503073006474243613574774720892915910169586528627402082917946722448506328812693566828134138585305303522457162554949811585165915277450433895622882363087420111223544363779523703808208694148338045686126145837606206546636881239773797339878274872962013137992300560563374465616024502406109559639147588456103967350454438128715982478405661729916736230722848650616598098263404256611528507099346080059638123132512577523889091259323012564283676322697682298497138990681403307343772296500098837237196111133210669515359317734718431143846050145800815233129776531958851570735434995385010657115175795689661426088785286018192973058281753464734556396945248223210708813820926635388383764389300106355861160159100924230736718005966364005599541803431584010227681903465384483226730219028666425762052519406408357945689473731516136257412852649649152045044965870426067847888932007876285282731945454795364148643094643281522065389521530674649635153333368562863578688514887732937503651819553709263813499105737521194813555563348923529077583768279493923863808478181534215326100680552292828137572141459336185640730424840582128262901396379715822518606787252928957679100839765798448433207634881472090681666637190448562175228062427120099521745050868270907884741501887476660645181605768934525644101377704955070170109792799662758316603736348046545047475322576361090319632072387744078202767155220456931564997562563212990645076910219248418068317254619110770210538130384935354871707527336044731296853826404065475285917222260929253676413197174608734641485634934595882797566983148591118295411440910213989872487123647991073325214290081859192897073736635195768830132110914050676862055315620302370653177410341964466927586681758529059061250734128323803802490050063571796647347948320718794705194337871457698761572296412279737903743861744793558063968545744184376663116459519681320257357870854830398444809800988652159553671979250610772083230607631218391384978677876430213983818859919714126997576682303589753807143196889472608658053975817591409175896387613143749694032045147006887127859084808315115468907066513097790834807361149688130094233301191948960218932778289499538589708510871769717294352578152803599104680312571340051662749511450194763593160376376497802409267070247169559643012714527731178412529302610163185317653975050922078789611710562564147411131096449842332083040122074049893824890649984307112243663403198607243154156642060560285027261836782196070077917081719440084996306630104575870313080718090127095537376370745773936954313177825655521071275682422793366117387203024279398040961659762023499656759002867010440409790537388703572089225894343681086624386983312769349268797539198969746029197554391175056242065282637639799240132235870624305928939703224812034565413306564188447258458260833463756580065225338243600080636546462200739544880954667415473683405136381584674789495376817437857597327723550766124049258007935956122554119775434213710670192964145297804730790909640127754146198481927248777121564802624774293504383623608317752747418452495490878805049319993719317834757921541113759765019713123791061681181417341580569101778021519362342887299235663845851748594644807192134496865866247245240704960739697012182077128376081178771626667680120387819572073349239159365705741262203792516852646364474881265818892815890074618358269801642781114361636050848372273964934757105731782378503991461534494498759757925440467577214828224969777071121531881655663335540235152434909839539774479938875541027894317135131924560499419036538306894444978842964553161262926756631186068383683460251059952861771833657609969055088505465949945785078660344228133817005975629886290801173468292819405673644377238621757575539494312840903006824269736035218858272241491200752178001432371338142123981793091255922329731855337797974740236314875222284102526956991258956838044528159077210830067155949983820756739439335752244144222979318043557503828039946681395793590753837462899463584153221005254285127465466316121066606954713741816860354192604970981078333414767431007474590098817057539963976925227508717725898279400021369088034341514056367087759960921888032431213461943228995393879492992153691806719326881157443151817026832566272869398153224710382044076587476302474204980772562779838406211743204833362493462350012768375411451123878318006572932748640520065252527725747821659127677522576545540513667252940768050002009890716355785710754568003555775739132324892842706072534816377005028827785403670850158053035215826905886995874063144613638292479826257146711248613184680966540856938231659234122855106133679111448466725803967107068250251272833099396597328258785752097552471205761982049606751629204271365344044262324305136383003406129815392453751271323418540989245659425656009896614084702170964933415534529143802044072447493735552444174661021371939826625051188332564113200491204523308807328266766061546007947075882641806136960248964332739744064361933669465448027787326357958658309133136571162256714040813610370923553394491438403295502153126363713952851881123633279460702431469816914924859123676527388056677593701619195662856395182263482114439548622059826846784706200625834235827592796774949108493744951530754503302218645269209070839052792066347339161339255156878428388606303691557973293146999486414549097809270883670976998387600261277472737042364776929518080637636095156097997104571219360636847867343930824493790898543743771217014690922761481596594452421815972856522822214691997698982418384974836267813996277103972925740768578323652204423437813968915130743056352225613361431749740947547583221780992360337156765937900981337556509598497749098908428557170226324176908878163919055901501770095009226107913719119731344422228170629597021279432087563772554151911497922214136517455939091169967935014364117961258679550096401834118955448222336387001972096903016862566571090929055243456601925395012844285837751650813773048302484167572425922260180697634360013053589499398661825274830590683913279395248098147340511637596700705086580185917339882923876851788655746052363096304437296299108401370035135317852316573847744743908081886322075704680785573307562786163696360205941892591718451295112139008734448199934235356974626000654435066815904137240390781869445611948980701948510384874559635952565001391919995303018445266714546072382562652741275814284483963440341728497411861264012349835601298032507977128246359377987160911078984692238089630359053373868836545616567212578597622356133442516340562264594312552375194775077817219587397474541148080848332421188394683017996255740963062108758784305522840094171586579969387536023834709864550999300961873151729239828014428115878675350664054195774859838774950578468857533293700492845834954486274992000258987776089089105209660428933789078691232456269333638478199301762445662675895121822019541849839179385055309943212299227861497022318118524979407579490438409851288095977311981015148205373077557778710562431098659518192539878333054135466973547184170745203327170719499456892817012637449675969838733141318215123291577715678834217807367137283720971201269536193251360720417867397984657780561223823307237007222143640350572494585010249247235260726207996361914213743291918086030152978797495644304235529564927503784209243165863744919688713774279424516310013534773840285196986091829813260409084165539152868452145204377151921952687603579352465186255620551222167459595284726588841197694753103752462196972463100820467246216828668438905540845935495532059613792758924222476299405615547456254850625149327022818047932248550037413570099695515938744148242600904542743955866333952113349574760425142513400264768839275503680889632747337150814636605987907350031920090322804007973093135616609881490293528334118487973374577959518320219351323092544202320979766071545902414162728383767702923278826081130008110780592384827475740311686767542641615089531024757965226003849592756459506459078209798588643204346206349426441802294951328070594108138647108281041421801144116175884485256494667000303037362343192808632087759922787592729822475786268815949024298908257693607067863564376592097178711077511452614902638372903073335306115515279084683516969855408636741853009996131604848543267150782775204959971116781958980385997996109909767052990861011204309921851410968882385795820543082401098265155737807349420719512548313898189774868389569427642488559698563180727727456732159957420035207307910031329331747723008823065359904808237017707140573960924303514033240139696655030664195463930539422974988798628033835316692103420344511870224033677344598026815786258187035135445814175108003019966348161993616167026004753229817007533167050573299145696702959678854489848161178541064479514640447036629962323534870451287183919825737348718141792345944448905935294830532557201164402039979985352979415879513891430600107777511270644595059030908311792425219827923983276594226238495599443813304832198421044528358735582403535939833427142250265409726326520627893819679207241102613871559502282278405725844252062570273942883534105523468689336911726561169088257110729450077952729622817510770450874003735368795724104538898357485458754807582031748608245796755473011582025498580410452080733995039896008253269989548846127729595223927197636539601188985692496446650291371246070874211196699942044442704606793867724613591701360632644773801116803453642560778189135102668985716213867133655764725578747382716951139458168845471275958832335740805401911184841494214804404360575969612141677414935621760435614212673035046576093282044136427721967454410395941924954590642376169953545192999530878348238870704726603934995603214520967311395295913081700490109010778997747703665120476707809419967831263931336019807773301610685245412627757100916644014475153824351985267355440562015235965429062398015398937683717389745052700685515379812205728056309495816599922477305303658949336687029218427656977699323258313687591614280008167315514553468061464033704952585942033149596549745257241190957265545977436772801043637443668560269447076982102894981479248661582593049456328208373364874762370480916395509845606901525172355149457419498139385419342797117233128052616618229486544156862661082136780437832436633757693326793751273431575476385976955427046180025524926782418088453947786388927067610995732646683036541765104757996406970230221928334124270596612475689499319786475661139090654342214994783144308411012756736154731774037792216108832049019775423209058885210629911916232490294342435198771401648619636474631537500784193921820128759110181893732198350143277773871975484873347370111935416789049067697861945957727426191969448173762800467265888037167706237049405517201484848184688678096855303821709233479574011111019185772157907507486965979336143448121736940422892965900903623620358420649669545242809851884198154973605487119765234946456071470246328919537987018140260052010010233766288346118031430327569316649350579462104026247825682915926313889139491548037129720667379554040760684187455881356472914837021438013918669903701171636745181066415896229899510224724495242192503444332690923433199391582587701600419242156581494911487351006781701110704404659210633246642174561783845926676532608314990590590103158057744615414737316508954199195513236169945753067751630302950677217956296465361615956931621049344086446336861013451670008404885808793957010804589067535049851308878939375519896873999652241953475683674005688736147366353522248979420377277038555096737458610165072026043859816554655744004160474263784931896416615132438143630344496582474101416592712763531384246595629385873597829153614191550060220772473143933534811931879443049014107033992577902607919273345934698674183672629108070816075132833478248751986407274085620667437845279386332313284423216437354505259533507781537006988299832196648451061111995832677337744342275291065114250863387596366166940443921887640252624026498344841852522783530426249782466691164967196337673644954840840675282188946657371578920303526842271978991804917449679993537445118186926910542853323233516248850921079794972267364330654274348296536478732426538274153965423546195847497171204184727248127964794947633697763025760202532698069091696632999570604153487163874316115186121042277948211550379600158712369241356477754245896221958496593184270537723084013331240733705352582514208754736644777728874453791942363301874124518287047130367550555803348243909978896440120534676191061674241196633099673216389006965700875577757061842811804036061087919136484031814414220227973121668174770036470706421392607260699234563466147192381541509740435709198525437018584236677170518583594715008959043714297795731404490328019383868888730251351910184932873226374159378565543894979049930859971578571617077820682304620941302717650451962512601912937230008343609609210061537414482393930743345960832527483885604579786021706342671306092363708801181121033458255888118569102584301165419719533998034770958294319306291324314694493432623025808598032557113674455392538353376595130191720962701908432193419694893109173249286875209095909317335856878292574808867975119639397158601775736172746144094614692606186796140305254400761821030676919221056501718781427153619033027384379965991593727765562095773325314213129347634660210968286664932594774998060181712034702305806469615929872467825065765825210595512968420624624014402409368124000790226002397508051174505400639276842394772717163533739130583314085145334594266873505420627837291361135755545608162401724841019791913621700625647875424412773462742039706567111129325752208163405006113551280107412237912839206617275858023684387118345732090330941014058925764116422847373593165449480042132842182746937095163424931141532786318003399069592248625897022167835591661385383485888283906822455381053560518524314710850221303794538648815242380782226340355385839508517725754378960354377175582335202151792870076723685808358547191352159959416551309217486113455016489806315312861327321562223138009282875502167373597581834837426642985831193836748913171206692061853292529346934131192323941346613963249305286402499314777300124427300124666879974670376143032221912281225443108860036142450608493447591601211770018243743129872962925749740055638417441972897939024601334909126684455201035332613127392907696207064943089599473764122830027303413181657041068700797041188855880591592941740766351484660314592849173129329088568363233471381350975245929544922669570471695623626811165701995980451126084983353003544734551475700194151355292010181024683455013779737597277474153043732720517239685811749301144579268772717643541942488115057355500929379839408201525615450973951543530144785973043178622027212510105645092671153136428077369245684932405476380322010384026394642398897965201800560368149130871719838815456231232409889768444066003734364838637340162608899373683018405360934437727267892584462424881468612770272851929036647008998780448328067356249013855089777846614478184768696505077384228042169107458970215135148573313405423784256415310242040711068521497399678000031313165790464389337955025173080035211639283930286023921879604752769041685051539050471806443987442550426259827689032024890782059422531457380494762166111444637600231890668164151658628648883185473845453176122698482739973879950894819721120151362511408012464335860903423860207131541559741394859151425026461603667471439553413622735943065769559494359179591363556924772128434024127123260363760048478111835030129798381538461427327782042205613396889602722237935861263572885209407695097973959825794109379330978080691048337429492278579332616947127269099241921767999556326927402614755524347864913662321314456858070994000873397369500597513921634604609073328394667145109762420031803937191104992873514495559794741747733338833205930024902667544914742886858084183595123287065567704648927273378381312746649000546522824505587681717176127214127580522613784249091603036697143589752382031820546725305506561928951055288408804647350461370463516029641126552071885719382542908985041402966487410860833522567328905443741211786390718233587518325489234774467871577761950057644834908401574241227763176450069652440668764000922522050350642334692616119912560296754013024244595829724701444807854270824193239610015884275518357030306520776673864825978031118081455465258778627982270537805863729854019811024793567341911779102866477513004480305340458318525214332631498652551882691555682734514801831825145263329541633589367300329356255274039223089920430312860365647771836810812543432321584199053450103093074101706589162028520945383621797471138789923674141352870643997895802466628518226402376930935325964926148585182946312542193527388743548035423093063795406233604090856940298864681124070143023774345425070605750980431924131681461040134917558833676664626762319693876614514799388878947992690125803089473632314442754633313936767683717462697813838652351818522295199859403568012482610748597505993200141304442625029858147101697876495284457695461116356814256703567836066225430877104179832418132375816220802693895495364078297563176366169726671483194220951230149758992681675131096274907525213045033512545273693214410463441407839885854265220207688584863260935003423873938577319405510521929243509598995634159536606702751544924809643188014645378448570643862534633076880597422024009134939948349639498860780981385611909570143800272079424730412898846852683309736746348880530340631836039855869772474979955820646360801582768816099447510950172652990720548162648324541201198610044596049873275916022117851953648022586222864244719974782398703694596052543423510288277471738260270398501490191158810394343695671253852614354584765558280152499214352219299815350703671282295342713447570938172752914497631165475830974793148512189275013997506786418428209143187605610461692955268675388562460355331837537213745216571470682517673971284603356386033087606696204680064801868952183128964743777880432765766894757485440141794042578170602245200627536669108515797703412628122896606686536211417451736754788249199200762376349765362005237744622143503611520537932694816896235919075558545274947536051134035393462766394909309695795569138755021575883113394232407380390440129516991007492326973078918198858306150634643916768459088807877965349723426192535056925339982277127115354751910648411791948296338369637609159480602239201002660954395866035268154366954012606631278595091070745981663685588932324736602540814312300170790152945752408363003167281418642839357733447650020357724731170818416430911150515789725042755020856593561473506225224051946324947233515333352947393766869946501416762815555820896320372872576402581249799611888285365337002596053866142891118284846649102807269126457240978539786322571586129459742710672759785122987153706032741352487173003219028184549488091154388360713512243259162449771046394732211102373114503561714975784381771398103727118315732773395501753958825097725907225733513815257823784616894977120100189855382258261194273232199438288768057922298189206274149179502505012900486495591275277217299053430827898694651711553485816579353542110370133863728394301383694586070977164288556732367824782720000512062143133543127552027019878133101573424226665528093508337863518753045649023453238301466197001269998094215254767243273339448354376187622767891081155665669851719957965119703258893135513547622495572402053905504075268158830695746094001115617296818542800990866059798414745871143595108268688483231025353268301517770415726900419020817455100651965897730744926874320339840661154792109243537757607541321851670482378753132976147258797480240430298960243881987495391032605944254385860539334874208540983484478511081049048945322404227963035958475112135317584432072858829908749874445495123332110205290547401343643121172762637334369905145684294338321897953407814417918958432312264854542454052060702586617735010159958701716622253403464106960624583925020391194279527706819604569639953495069503408163104724904929134666803767385779423690756157023381883619818333411937237340209374512961917143552586227654939987020371295465387443064666363721508854611529257379792780778040901695551817449929836411671689096112480800691812630447169798706111679857096313149303832216690432386058969019028400050301639892518031846306159502021892275434663771602863900448580521219257191182779675957719240312941901877176360528483420586233476610229318297750365861850801809120369618369136516079961298968647720615291691671752158072949165786180876411705188826498851285663805440894779686060686673152881538729328617749054261832340332177230002031256563161240093487466245379593711101365408523226411879724689830269665802752681684873476530202831997917208162820799885998559288738180113821038805498954517826690237176858545181656594753978851363063871241665867840592190391723725112796312955455828741276914671850591834348792059470604288959508133325371660342004819417169128344406580811212454571493254916790041908643302320114150888862862375487953842863283867693878198277984607012657853490253960395713882395583184655330356860237322319781747751781260454348387176144109915302396803952333759321807332476620233518534398948089761987544969958134400510601891487507299704298798549066081081551766321663807616955743675320171942459109983228867362740528863617724180667627439517599952703186841699669446120523038529932033244728097621239935128745913268042660559197546601373204741682834341906347377683437864481630372967253589578856409737443159054407038426236471914166032146369906286734406762303184350623165527552641722719039814177328193287155846448010832969180713624247254670437692443580114125894318584530984755659588814769524345983745044660789115673579776817939864384823104297833426971600820242932288484805445258184087969703101959435891620363362391462528245731954785517571810578833942722406844186889625337920038285875421299538684676175233494911405349089577499970172068327175552637085746104235742190553898900685329080904398285865544140513698761112102632887965183466710374961180724422409450180422414133040250954738422819705963486855995810710805308997461705164557973487494154311660444743495087754763142271585897891843152878040746237930006431858364801823723374160193695262390221073442278558115154313977173468466743561968997263720209543830676490653151706665792170656881529077216038845232764030815427680170153469457340423576044695969343846674301224761194577984580711224850266110840890955223848292592455869858514890706954251903075406223085924686179242979815074112625000160682512115223738724042544559129732491880432930152661454611463569742996529027933260576888654823572574186256867806933567161082126917438746001324159172257473211234643644949804438520811669589861771177940673148652705795514637439963955009906257438180184565736275106849032981542721033439340442919707989228231640741984387147323781079671244390091979117722864329778261338744489791103098394876693250216741797063705420626932119758249765001044935970356314495566928844716276649548778682779606922258851601050239489260835713739550823476049055074085971836606089477486278462439081769104529284116570664639948525186052710570907736600560895170338396832162847959472413424554678955991776216883161265448916348967857393412956150836591248395154232703582391325832074787009818103778048785378594496103618542973241979315012009862177854240271772958298313884069100339575118596145856091610198214506815460522310442529802805860024334907638646979665998417512930498104609647612258984550453260161753105877981159632816391853654783147414157523308285982386884892042885302669406721191363049421998244534289891682752221872632024880165838985314673191788504846386913274387485144147605451105815775523768168670572936609320439586708676791031167068345744598715798940117636021827879748435796945088439062496408248494134206862330192809868136558986245097030014997468636561881997246553816387357669257985703589643326354391749141305046170451949009875527033180139504656612423302646463208621596689499589632409735166284057714125110981995585625315963964591294919044534655893216253713574410398672664294360374264413876797572991736255073829887005130441429433859251425576340202972561239264524491650902687994027703453893537275960724665537523285442406803611925563286323742858219146100601385105958518740206201365744258601072007116191221434861865789729546275217598364413617397088877281028281697656647294009717707680624562360197075685617890871104106075138326086250943704520127455597691881516084050630422915007939694376491097806796018213234108872969067346408555019487493684222441158793983404855898456406673012027297076254421758180433048313643549080219559316577062700499507359828086815755705351160526642533579318919641799885912040480873700221832433563802178123904075453743578542499643713750149047350912718641512680078318057827460916266314304949008166354584381373018369881891957414931185710838774120964121022419299484905562917683437382350463706759310597640806343106765101654145820953635922981276872549107357436008718048482015966467254603168581562272415277312648992972785186526414591276432350393760724374455418843320492658001310474561718203951797064989698380875756064897187588343768339437962501671816762528372958731448381010435301985710516160630517746189971045260263046364526670053766378745446403280346234842113988941662769127096527705283240576691933510050673105461484534220799339734150851681399969127136012768985136734006040325560204951230725546552947524030214670350021189723581235945943278944174456662303545547072437773716598474055836178304857919105476382453306377665760039075410094514376791809759975666816517243050438042877594332537363403428177991183429438600545049757525118725774940272700968671501325235098665066770479882664061316975886358616120519315845590215047415775443911152449558165732179139168047635828964899545688502016143514127158775999445122499953643987974062455873333357530986072194104517148146856705171779486363188149555039485424309041823841657752821958341584182821734373823162681847000938475419864534636418143757177325757195178128200295231960467288001159309099407849257020022467210587517482969618712365706426946136061113523489967666363267594126962194895938796988513851016880513777562123767336389982006149501697414270187809948336604005263304164946764354128708319091538978916426605027178785896776846986121728424257732002117781765577487820455392677865171272377554250382158298365147958906935323773604847575523359817120518378198289687068244398685744801320973868354455351098187665150604401497984840132693760871632325323312369239785446817058048545657917456747255331586071949966226266510533845609233924483853079103336841612160075669776128151371752236040337284661359879323762597702584022907871363226038175109840598154437053824648627523999144477106549089371751948523510022861414360021059288885382447009121330425056034312595308474365874825471324648186937156642523518296813000543101707327750402392201245318695149273909434441313555945121661616578845432330485784215223644470814758454162973291268168703989607618385801306300738071940664409257444448182513331954041047740909470739041333748411386910515432230091782950730367254302683582717924903590946946653995813626758097019821377240552442684482393261081841584142565874391606624159899556586629246753207889790167671467280715822486300486758802765567594282779597289448084599853424251407969309598164435073412131640774005495345284740996279818456736526897832081760776981714210703691054388664364304644255634817359023911766266151590039965157606736277155590141132783671414276783617034472214400870382581161823502670513379304223055602118996192618054098828299440332940331035030042626638205840352201056156032636865049766448126163338657080896045229396649653505501990045313882107772547190342283365136348654694911158726426219777728744683608510387375875879789974351556084589357300470600148542384164824495852301576705156420204397699507390634939882507725128199465709146069840438082671242747619468265868357789381261440988059372718515124086982058610527023691108102774759171254050347775264615964282344222482268748963813150846494147280873035535090608818433816689631757171677110814787306697332743989962545019074636849358349772982936587824763001084413223526929769574761345768878274020010285992321008947487898761923592677215200272007108401624635631204263431055410099649776721255960294642854345018312005820678968475041014662651957323892435963858809064719716988118145566648585132190482910330301855114719313083173945044268485006981326438634063098204759910139232761548561768461756547409410151496065519130827984330988662698726909163944500217971658192502852017543392466984826206154070194800376571466687305871336312030901412312886614884529441615895747677251050997420609208202017398486897631365838064028621156960877376712563444678344352523726733422881978452374727098582312530740442513231503851607276235480718820460536464523566863983193062801200726363493242699123090049601657764190387306819445430391099933628727825381706940972482911039832335406284090829428760347540070331560832366118044234305374889454357082207857799321787356677692333953987805794212403991199537141239850486928767677108341548799181280821175055312385034686670620534295650808783261208977321535797142073244972651436081481960530109199228528457297567252414055783307276111234510906673857421157201068777060671443706032400242168837871216340856037777216465126748587285579466221729657599275335045495601038048920476964853370476144631434755882696935069104879856210176802160293515948858275367602710253185912565730855502976059186194744843092808379609525624527073554633900749181207451060177271845279384785628018156911372951696002503128564009882208434250205707769477689855361625307035238009952459987544727639248228822792199191149312047026784164724225880237707818143241121597409528261222205004834333762006757649646948355745143852577068538997710547850813417917222109573309195769174181370275273811302552816065910232148064796408169539694651335261966530540462676369733621457572875550189122441078989536902105203812804095672866745222972017930937140253486476489764071865609659353558794851666965793799871015873344381907941720386501551725810156322626437315161322048795962826227240463708556658259802359233913174735933239050949071640585443036777079778953993618181694752977911741608121924857421679605694470039706813423375905629013977661762002249601960856033550581790048081674539807556481204810724424968409724894249409833217533965261523525732005918683706936938543886732102492354912184999957118534890547871058226299129127374448003187987163320727148566162618254524244710767501280867191279243164282945674806089473407458412561652472619456005087849135888966126504711191801001983334731565585101392584411432793111186995737903028898983966861625054231672444960820121649101444966378359736188449810961728756203063486148711686514174004105328205422367925707444616753764551601132915428760874278777575448521140874866248887769458285900459767676065038986518468597417990346139111002525696600426180912854934196678709658200499584448635807693434940786700834634293488489592362098510231535702525753927441926266891729168596250631031775414867483932438509358268080976448923765660858644731101642267478735571775606888346459384687692397755021803229294756889418994227101862267564397954277892679987853538832545652033562577493110278567834904332487012979406119734133253396969756083123094281636655441983254196080149619486215853950017393312174558393091212606907800519184936002115424889549290717294028221868956970861938606397744487816181617289631042751406177542174620437651092133587603224147228196572667124792595777286886973908268586569851938543900032003107088818873277224760160969399700352825749848765883272098012155125692726063985928629264634319815195329298856993075706938848596432283958164481383503543380886525044866524371593738322792611735866844420800778852715493052812471923570478369388524574881685019846549765516175836452053650113969150611203378983957611282583124041229491796428219143689455324872336434721187629514367325799586997305921282635881355982431535742878283567533762877867189834389160132999905879283344543233936930244732823014178531864482170215906054507334193694666758181901710178190867240984225502114074757477401034695770390019986642945997010373902689990250885543020276190432694009969333184153870760007077222703176477772513737361075267389835227780889905966122395321867824606585583383841578397552944557197114417850025707548116921666982761764716239955042041686811202113377323521993506210758375718850440195717104756372049346784663621811688902515957253301988144620436754062060235300311300157521586916733253271660249734586390941485762362534693130319910255251502379773252934565241187383017531291799657921120027439712914532701806893268554524862210652761182213895482719213765470537795141988290720956692820043770059189712962052271570164709825789763632666632319528062604242569196111845444417645786790221445575541548757944134179494446102492591755055430282113765892091833169289986673862313120815943596701102391436007289930913165917460932221011537207167668925750266364817594385315117772137116171022855389245500664818709174547884966614785271392395750450531564595624178315291072751256001774930469853661405313762966458953576510506511781515294590784655253913511394903264334221973218303797704529885003923174719378775201437927206756344818424022827120312202101121489467410241986976507833377820925849498703754832073026877629399355948895512545534782770496089212699748242126241019446240084720304289980282630691377723661689773569544119274709061675349105611917816337122619075067651434714339852177658103550828496609100507850509093814495398785202112906428289079739002311594095396570743555476317355772784108322248326353389005842438164351203259411873422960751174048147161365469642669061484927410885403271929146212154966636063393684095476389381120569712237876817878946724878467556543396567417536199955453990283068119308231678853145409787866507935256419739187749703877609402495254776531827218233985866254660498627392641295373313011707518875042416512097449246636704514088532250814164198506208429825973173563155134776355517804085588647705933185628048354678713708231812987248837589525672773696073573033388121447473946907243507652850892934544365074633812904234593298786209071233675188891452953736999179637364963976346730287314488598964430397483945536992715887125178149139658957327746865935275865583181991563869288041899078034114323828558360479582392070607388018216744359074940451737320713527583764109539137827690013094603163369697916717288003964595513159727679742913589930113792564969053529309826040324261257351163725534770167639807207092414931725505081639061597012292224078404227016742062307961747076787438958238255002156209035075880610246925941911976828360620122798426748362202848754914819296307980777549031369349978776445834067246154266286075613527847298088768407820490208751396422009309892346437727339139163623426276160971725259014258498146179108528707963356599126597663444433831124541301014900280631561082123629072209564928920363018382026736959858272689574852937376687540777986001324542636788101503667467880577444142890874234402146919774604955329787270261186611709214497809752843040801401151413358529556932210026228988891259866990205403744259896613599227119943657038245087492644892369341079857574704190791037916305825308656715678558613662143386007837167889440719981385903395018876919729937751590846229821876447345568480496620955300439262958585216377391135646794725384979070578384140814889435898681019071124960192277987719782830181431526768827632362142992837989649933805153840850519545118523632312459401688213121609121976176972581084594552375786265350234892752930714225406618609900565588740251534722362759015547413988244877922176864373323648918096072235489362093746135660608753083611119282465726956460126910362944503221905132238750125179987488549870582175355814111344958105496760013336234420012577048397976038906428317949773984541287219832530015827288008107828417851934391075016225409929607670176266423008579127267759312543137028387212009484530501743094113102332136947049648066497571942206679448786028975914920118843062080566914431198388537107434351305148410420263644488403440483896431471571919290084253967659513423652473220136250967652472110360472352700498665988319396885159581077960290015982135153007191949309194982793743169997545986100479335000169496244249957402815027447346873890639599025718913651339057486221941650403696142037406111745842764183999920516462427273872652626685493873657473333070457690507405385666880406996436168776803760935746248750157376168829893181398208825989651504397583992806254223098681838909479868070745753011716868262845657290405475432795081383903580439503606326083033079587478891085363579117490083578081734869331344078032992311695773823976053131542099234201600664740020979058740977946361415170581384114048623240388696635771873154905650456708071702293709689648983925665466141995335483777062127429311544789392409217915694258753405428272610124474832230233335473368491316356828386729339149326814798681636307486345578155522822332573946045081371141345064711737944999172433846127003679489954010533089554731988365328195934193203495047162713587521661585995297776857055115658140800294243102162166711956340618906954249487835222526537922451440223514034968871639116252328866646679654794689782909681118334455474398540683639174051192615821958446456158020090036412437742649370160106548201204353922594866873724342679804868449894962780983195751425454406433467377041042799996582902644918499058300207541702639897685106850331744993493446422873380074135876250531810826623195891552223514706070351216549671971556865928931906291155230155161718778432185998411724297882996857308658386983666339254504995227352330040732872532782070613058947297515873390029505135528667403326505138192400539153330782603166203441411835691018634428215571532456769098703303857858576058784155382467388530981292243121536055102564873675580353689314758601867010967759827450747028854336728823320031743052528988924328597889719034156388691598805177129949796966778996759320882871187022252176893067919665693699393485672656408356983705382016229551006695839196680178984767781440364797918065329259681457958654748286739859687636884792474934534558740129121709021907837187749463573938067724001745083642449150553339064907310339245031904643712639962046899354688309962358914477693604717149781325281580926355852621645355020694980642131953532504911831841779539622440662108078189839983426042518252286332800321313929296405113093016122311231805994970393190286420313575438049624872722812811093837769193301319066346143777611409936511932565548890401593923452411596076995775061621948193727425680550015291252809312485714771439628842780817358214921170837630828163105867960182195912818034115059130361534917726998173958612143811055216920501323539342129148213379933536003452275675772729156445286026309710203086559485213540452257287951195437395276659740899137829732862303196647333150364696967651481154614928155495501017274635365964067551512281591717058899706707395968816222504055361107785297450458470070127178617240789438653985360193860320937317225549027648989829846052367904853453733140935092275012215352355748533738688568926238939173423745850103877797668022214509822179215086319835280704528014532749163244564821596609442637558481711179916967430067001591866682222475132224804578942010249540417027781176002223799114292599135375324887453445636220164499521924260180623180440113798655709239419658808077321214178201518023663155473670326112915718766359221263200630507018963190444496016678671567614884432206931975163423619674440570521460296934035798265391573015820175929006188139228918070995011707114353114500003766723749335842658409836121707572292687771130852014572044882028086380102336425894633033891707136195322445221719227006886676805083943545815828476014753072065255710344658139631558774126151086876300254045820584820837919942542495745138679595029070986793117050940205069270191670873236344001325717686777190998609749195620981094238636528210820748839999603982936877381090050832267151424508887554018566922666661211763209507832973346272229128437514207789100314717782754778350852603366730180060279458948969108789004040687244045364052671425580779176492998204169260291051409446154388159273219914102444198572862336921337432403226438624417749284513595174759724465548579002443345251051600652932523030612477211809848268239865235265606546872255304871215416369160242278789655267222405950034222107434057733551074466895612935631160427700929546250625427433364408501607872797418298809873566840198378149654556116705095950356481422439883082890697308466367125734617621234829944258057054980285906195695806570456573926309272071111517210574773048312518006002968753863205098430581452407233096145930063789513454128591964076813650360923742310799722711055834763677881188946299730029438195052070638489421383438984164917942096730446645948233793499228295955794005176229021827508831744086611126344818361937765253444021033253246918406432645197225655907845389336181597331849471617255030080693975913915313040618305934508647802643751390804947180685000583321711394787897344332382799089545661043588814493548332277727749925127317218495703547471506146086840799331176767670357311110680388684302489185154584440436639966828158902672538530475837939844660005550833454475654160434330692350087615366922353201469663702621314078346182817990852642687343450574535224733674110959688060633119605220862917690248351988969865852586860196953119256231770467631806778569310269248629103601366804983925259448736810516649003166966983309150502952637562062886931154810669517546794822781126369368271155991371835993834034007926868045802240539265377156823612454874083186638425422748439425120587272251171961204327803216824652653614862198712662737354207296812432255292783903774762755607665457060456458695887277694749337807599773193466725167649737796234116136197624886623044640877215493671918360788223307173603028359190413534524974878886441638813440502907898743516414740554111596658171965487819768694164785317914851920549857124282219152182296744754918208129982829236404345409844792534508927509213827823306632284451861136341332235920404650527206326221705822159048332471230500250682053001445224870308483216338603446181711879519684570872496567216600855416552864518188490057830261532439148505397355181348283737727852645925301209591255855772527048962187073023599841757937992549949649175449780918434096844947264417624280464965439442035112564979967364406533246618156551729901508764340849525276813314716054246734786753898555844628757101773090012271065583201628560787954995354845750858343933264905327227243733781685817617543712551620796345979223329589589764928822190688281953644942491263126522010410335983497571195723847613257970656073585925127545451639889623405634795180025620683371818372693039480736253013968048297199819861311833267766424887342619135007620600216613184967623823303524198984783715991055704318680447762123454468210463359268271865952329108650503413788508720036381406478880954846902428912692999913037851559412918432090374724470067296445820068311324689256525821088669479963829382850839091320083783568558844538136011118591236368980297434858335323057606003362889845243153079464672441959434390128920316051364676490015863838919151030894870434285406637911870093269106005300106180435483106843113061217923888701965636735420808430615062087993829959887140756372461899573626329214621477502294579040690600793717252114719033243790457030046471963996977219667242811027960774128201136197729543329730801843796129770138907087667381092889540701461436664724443156622427645407770950980944228120742431315335698275915581159560700320272924294223722633147320434922946902032969506995856707573217063975949365779780317708906193475975142113767027371931748446795612046337950718068758586811476329889136272264775249041259310555694848598044102421566374097396548711177060220610201407851306540887463227297901424210001022677702066170446341359117824992374409583109928236956833932986382014009435399049427688282868928517445042190590912463966902015082238212589384818914675170032370733659569471750656096079780128027277096577855615195940995966533391744205948729557140877928763839753625141899881890247112780257602938742742215441722597500329016409174180867824669828888466313910771345392657186218108508012001291636579400015419155134860356702285930213142298774210503378338741905203016520594084499213924546901115204788832032048474391394509758104665924616727241169464581626152830055658220535639560900269513150027095195555907933514120956270179273146800439190188709659868256716462570863070843211361581422082074488640617145796072634701063489078908519927412772729197986883077501952776733807108958762005150400826848427789345888265010691000107213127999303649522650263628970946970157602770817251630112491846248269645262180850517028097017343549712141166951702875454588194468483711302711897082267832785928853871996619698872235952242471556392522555814154528272351731419498649102429677917991657122864911707715461294492650056179459286384330198494779438504437205727575840130568845302170034954535447238196218192217614624482239009351753827029643983496309349128748539966406863589014935352152813872996233050229423338214067951175063298361498587595703461592866040989543933345766543690221522697287730541302188893795796281454548160897078999916529649910582122915412860368699474608823216896853202323518866704111472939247649410330583635376856162203651425999134223781407610592598607462298359469431724571384974123177769340368042185389227287932338290644195474872072173337594999253133810024521046689783549196691191967199705383010072486173307683998439092928212173028805078893661139470881017515029684143915877554134941488943001561486114230977799766888356938985511368849671160836264958129244273422508413705920397585675850498584285445679019759338600944176704300220580399138448035567567746088690861128960182822851553783956321858761718434465905595400314840108705845504488757462447008132466008014589327213949592840941752830639124740795184017170582863327179599623988020413194009575034883327885579999334831086880670580934380598606126407548364551708725635479992117111000977338581155076166191598535292536030673151880035416804519032408217191958979550835365661313925047120526148848413113324357467423847592569713989900880961288368324679801359838027732118289667451476498009430469185023165111222919501424127944856204592725474884104340584256567773726568734445510681836611829623062118145847860439417087406310708796030904420988654334145928693468659052561895530259790398491944698082776703723118692284911430629506800160697180315428305682976441049137614608306664976689664489680583575149237789816863579447948036947208695785811223447028507143711226568164901541191072457334092463774051689837763006748339394383978361290956912252164747207447956606662271313480739755843068674101532450881570465421787407010434588618944450666241738890509753636140119500377879830869230666208651022737248636016115835047108324856983523317935622681920517334964060148459694082961158328975718748864967430527873162528502009826623380624982656859309669905421634407733255431019042555648605668834429192962088350097404013778357795665513780843198447919048254304774854154207938600945006521384899282218931585599965168958543966834078218105939056137053428850507118156965341257927801476185179804771827586823097457584350942124735857025198524695944430635577005494538657644046305086647730791343884794702440101527702110905604103908449208446842719500581397497359880718715186802320439220191495591569627627707352897177331126796025441197263807407667944773839760024271437377371746665600909755841257367302096252996036377616834613407032210787456599088914658394823011774030855903736950361589770041206604461467146142085434898653500924212146581144648976102571144593751688254124897169966839750453215011059519286130369052683956128186922869989697377677031816359365622192786784041608253028211050307028213268265406450248637568882848501843301279455472967000889184984944913222448732537851409162459471095057220447322193034710547164877017073750067071311930721720394533938350419787503765692670204480605169511357301762216505154534177314278587174450373493140971870434850054205841425126881708991211047653794939645410005380211627486335270849605682132137503668258140273909789485359931951296555764790995201321392728510046151239441252053871874518415011256871176219414776206426462014902161118281029902038051091704840463145547576211695651816549287855110261950802511842661135959409480651104071047511571749652845021089342173157635817265207665517550264343917271751309869966387868015197825384069880580598627237369966107563299485083263290137983954769819830707123148641015785074604319668178534976495223913366610633438781096584003590240988033606406569107165099410308508948437481872681852861372959234602297436410201409363140792000984432934079868634728491902313111571634207180563050288648835720596077011119434582171849543303786366526581778464464757634933500247047696696198376347816560059845621906835556158721112785341325948067865271073185217045974119730187382655117409310463553032622173043459520253803604958793851928604243114069369808414233519615274693740258014795712255296908675808201552216532173641203056963553675182102352330966544585800837016085006717442581616082167204542652530458075532842728276277190203090765418953303332477237643315708954310871362623077004777187983803087704799135906171279070978909106503216416474662883783495398826608364493434913972998284345013786880223641307163122320817119782250084619440102287283069789248843877353674540188168012723319252876431713326616049903421458673184393381551370828931620851475402241789399391844818636306400744259280198336897026500761494981762121398454804574446563319782842863900376072867570797410828903431635284870451896571122359202937756440412531139581805340380634045525663435068286055561573671901375504780638650022843988713300307310714003772880351076089924811982354557452873285489188330744493790672569067717413456874650414591338270195472426182959798315623331812384746549684316944431552775991948642987985591001162896828987271714987725700407166608942384425471450183146487409785551405140784012305048854943655631951392335257343073961989170907470244146538633851143396107764200558381005136711436141388795548492439346074885352222762728277415944525702450617899179578120222378096001912275827007952921416682322247461250935194024169391333363094784630351097882145625299183308378415930810044426174573878040479637933197235699850337225369230438574777744555017813034334898270807382001540029426418636730918856743474841658496339626349107843357195468145176799135632929659046466624195752758298100254794179967118837111523415466186366712550394711125969694052465726246075442234222449954941354644295686402926728661109296397842829893750199045483768898603702967673521001344577811886607339220073919865117848719305288287672515752097549614469049615478668719589925281424238140322532043266063169874723707045056084504597958674936053912654400950501039379604934347582434102831731382619989838713406175226150647112876924010443163390931500265789757646480156322714878898896054973371278983438923848131620783056265382545489758804373691979411838500753371397304328441283827241844172371827760650005941890606282839280990388000898384816680853404112931279797776055462376201368343895922179322865666963003384180804753026098220433016283190087842390963065310746246781455329360250574937162988987109260235974341485191404248749877709892893143084442721259214782053600117705529074042618977307154420155906160707762100920326515745691523190026422701782381647881362814958915274332382670380835328215666503138138329938850302195692292090377979853005165241124369403455224514932000468943569890631520823722988646382698162250733098787281928448487486259668457856776615795595320355793331398761783161041047226366009113748162713345621830360285217144218330580038635126817459961651090523426609094327333746197378230129187324470405830416565347635988696283055614222486926924143747444099482073292224850776146840196818893140852454646806832448521976738710377022517978123650066376465491371117322420442084179087759871228431046922908196203998532830094421893015158985118317138291055205724061209905070984588329110073607157371117883029604826480138774413598208250669917083666491742717392005319942448425353823252998801347906086079682347711880826690207050298037261649230204019106113782273288504495231112534099410205952645809180049022768913032802671928943164810375520856020613620131816246329299620647873619621025889208559831062410469054924695740910494523540012928930833680747066241914428719770194374784382120277540093800184710604004906058598118539001846030637343722996816004276675947211328998633788207871709818965919629611142404619904691884981597086504548579486233154895502617775467288184348425868826347291779998385926968776463299729949323674976029936941051625011519934458359177088021455336273234645517543775044538516016863296487836308691931660875874677542528942929073560492813677646672480921617971736204668229657493291028076713042161174793037156301244332063843820085590367928017544582665549320248023390950968180586298100605630980588007135202567756261742527030136064199437747718787444272360454680685417273793616943640748825438163582662206315072263764986294420967306251257999114902228870689281373132146288917343319211170531195503463813528337489360529291412007593880381555020272593728826030361801052142708306836693213550757257874762569391838012719407303190250543820212341095538864346728133421810624791883777031232147928080176221924984981366301044870085650982277070789803826933006383710141080531314107853685420929049673357289347559956339580908257828993948444981703768319381614567940211706481608511363280667355139902663361974448671309893495444104371997500772084198154362861241250722560882031555637435172000020311985657090008590551319215585758947235191622331686816132095178682328611121843556323960587867304767609307101026993148132751971719423697430757049840001279227586773285403233826451917562716377343469362628224472142025667344999602678579158370514727246128406228144424571140945887770208240177378739943924299157257585172091837593590311578827102527838671532457271433184840865914903208854277892396952538894650445374867464695667593488265610514660759461753123690134770013313504980490393630337132467556148504891875003470237061159941632556158168567476396460784590465477107854400420487523081882440927067851403534377826888090325311247090777495328254916422601741823456625591554640351703695109417593198794308568800456179426087588006495343446632707225435569292689501549112089307642234960317359174523562544974638691127821903886758672104167290627690702385786061446498545458054718503165521243308183911492022449689215431020601259673929463194437393614918034420949084959665326115429101236178583764573977713156682426711062276369654211773264634584908528794609504463115421684117781069164942418629985324291912473603176413082998363229082830628135526017710386338946271492878900637204461559559715000567828202461591092979945250947334504487674032421020208015307223069313028665991088488312568872548152418998851049250242881369147355113462951119403306265849647304971288312139047953911567125904822537318496219678491089915872867487163522576752772821139414385452858155224247934949453197902779289349069894752949482285123353461662942476215943282401405371234677500624414113968694770979874720548530036524230123205449813978516052822507546042729510156969937361770132910455611559215128153275841030289862881193042006515948712105768016596154124600162896887360151705541220618210032317753520074618644463499593308012399124138666512048957769140362533007570064908516978327339688393021932118172117455099357797875067789667283581475493104091487303214377466414384117044802293127980968469343404977280415800419242223472819332591824292012477992263238584870811995694122632893220797521695412449947163467188219840567582910069455755327423090734661337198657489858394971730952826459959079978565141987099563279673323652778575826723334933855042799918538688246220828378947262611541562012619436700419856359932114474037807595350304234583755430532008787273382821981723873666856045301835528556062801325261043885161397554647503116445456676682691007486443632339043372629127365615803429384637575250227734321042476152511939337947632508630934648290946536649507981027214061428257247006215832492217058746890574069554700166533799005643858487161752909415080060381285404767787220822840159646179357399608417827837603422481430474184384725272028483333718423650402483388485341860703366927427044498907666664581909937067149359902751007790989858886384044042854817568381391184013132103337209682580118713956793964529143018679990536226480310551664786607417977560291216352427411501751643168125935078968215083749974315765118636282817137887437236921490761681645112232879877082459598058953648137777846990156988186866948019786558437156519507832580361013404472339715414555468502801656836448658714609595142087744928283311095808060511491609203193140628257937570441331887909016607135434484304657954364282495812518810223966716493589437651715213906612862660419460100429622468538574209078882041358401019510281287453323642613736841669826101187579437754292536084353741461468878602699835560628957981301379342112436729778329844979299114918745067256028984840490109295054827006917090790118991398165024354229795764921195938202850630048931454441371067705819241610953327395728368454812810032562469165047930789537357688852852709374321449654839199038299739464951543736453158585735224528182476274702931038043937837071408970200373249008570153806397421192570458144246629878182712985188815008205578667120911991385066139791380356502891423965426930814795000338696647489554749749946807221986498145803319336687658408703296501406471517321101063086786986978349003315422451267433327499632274452621915729517256247788352770174890725905298027278465923879259362270002844830299230312764584156290443363531346003641999785141560820273839566533485623115119397173582545967842736746231969943090340725185174669654873923243451445211794117471697687247334387238588643163456281683594068888344600047234737968600569482206498413665328123447443991949284295227855513296290323983613145677013139171124705171900002648649807638674735648225679607614609795111029382696867710782515804385217421977721767906473102024875959222155075348221405054413115862584620571939230436206212801049073021011077172546328472332530080257898840534607669092638144632344681986329798572512400090847878257614228012163112666563288666298990146630583628755497372225963701898738581503476562362015169375124819612211711638995371993342268136787339839767400384239295707965112290895842084404233742837835537982699558100949651325050389923342419856668676447947411498512015384848504392414934954331954355162799831719563634009012166985254172531935904230141278702738763262721971375925689605483629698283962376252829509363685936137788683125711622460533122308304583240411808158671668654608673047527832057712475287456926121908401481452881466690168731968151839278399901388741118662972095722117401912893718883132846113311821723776306395574952227292134605185103173002942716263885507353354955936739745399175952030771720052695531813395374097883349145695721894607855507710776282641175734834915748261262029762183623035176159267041686736173389736562332038034690862846971831674253158532298184310007326962228184770265978714214633541972793042701594917529585187932203273787554855775944814673975276827039032023648181564855858857475176483117672983242317845651770807153047159468965439099205398646399658629086982975857269323955589711846531526149201128854679404950779036801699958160818178265582647621437175355489301342470959395798706635819856857842079399228062954591627732422913029673659602000352781815588491018418543419113528370944835006664078651840597031989695978174016201451929866583927438836304152074008738031830970310236387866523277128817824452462716511316829082721539450300179454275549088811218892383493023795211234682101929390578395580038619425086412062156075632231177597973034637925876516325593403297929835933414325785759757826282268670076018541659804977955557514846290766318028186981983104290722135386215065410164631991540913442568914040123962012233124587943608292364113627940502797090424594526901629305739061638915793261030688261784443226179348254594254551381988195414645788209619738546846799534862185668902074159125327892962379902985231011931715333312201766530134285603127252823483627981381133206900762292641237061263330570671979670089966501645315335971429622155005844709924890226758607937221677792965905841704056245955967013195667876922614539343110245418675865556748165717844389674104279401457885532876012383525602410091364897719938194490125518395899590313668507147112310625465554766301438261132199132791274340126315032637468615470155661985503352167685113238494781067668100866246569338968801257722572181817986652046164479451831792578446430736612921231763985643995928595876490297135611818847188338970215807634767880291956408041955933331011881617588633225765756753525251830604197344049833144710303048649152600830548072624074119704846138575318137878160815719723106074633859358677288345134058052036415346763559684556245695501799971339269280489987372916353916217147905794506069363151135104072407665519261417064515512448936705841786812813178877288501295998605294454754316949817861995268068623127214708863463130672988689347345048033826476749791616325311760527270676109660863262492736541701280109444912399277973597949339153992784046480936292531169568883921802757485771619095036751670929593665711327105436475589241497902129490749289528321232411237581697340825937973707166338068970583349379853283548995627274075596600748771258717983262989815073417950148872944993075276520647801293066039565370110510276412943277116804319705811879922593554436972297081469368003644869684892026115555389736658343843808923226048244131273288093720900577074870605637090742340514799345098880992423331361073258607647964112382671333492410235416195380779096719046270818105902411974219148108878270812969666740444773019577914437833283034678810075135830944448700298422785980800490852980984954353435638358375843786538019630114153183816612139311214337565344255980571086152649028173015607243512619600998739126925126158738333674381220423137810351974408462056753565440882406900484607178553901945722776940436650238479341000088964254750480597972512861375004068839258254941368537788135345751728312211172022213219405341681543841543124515066918220529514759646210171774186478166091608003504654572992901065768894469235305461966223322589838818179046319682949544416768936193186086264262485743614338266369585503461318032457986642384913192862378364832491965995672325581627464801895282607482645742603329555886169003872401630266622197052691447522930296196334961596086243822459807087775615729890056443100649416418171708428464438119032635276564100534579437289058857479650079545452183548858134387080853191515061845991453307222146619614089886351075245091599340895460530769398786669666254059630568084479570217973049460919652313033300170912959934770582681294240647122188288932291195967398058960957053186034479710472747994257824483643257979697552162464754077498390541903171413722982256300088360859308981389315337757261667878585210777418024263857781257409768667287908343815015679217260982451144553604496088124622851592583158354399088818993081211212147387526044049148067798757045338912002674850632987353163774047829628415619857606468408133466737409746594396951559219987408719564124026136756308037366859421239247626630025517307941642120790633981800892702629272815021464491165488045609111926518272432352467245785519733290810478520198019594488534904933281457655383249666909547765994952281991042372434744850576690657043297834714430786482397998911890154776803404043505353795084553238687696714555081439375822204918721115190352363827098066020329252784332563982701482390709699769432667927694219853419252112665743815975546969018012444952050926134294794671614096600033009146699169361679739621644190703318591229062641027551894407804515282335273999897836929295663813783979701580552113604972280659796017627656910932474356236302695552833506949067400006941466255743066265461685846824773489675730008509999147060229330194516013287595456120835042518512438573102678736026825457886748814302216714075029545361359939861822177575363232687218916117190849784551033614455822292321865211364617397879830108186480230172331449787763133750965228022692170292940441491006985574503699200017853373009591846200598506446725693505825568324035208528595480969345718116023762832934071172395584106733583682824260034253342799442387046510237236432919712947374081298314506685457077300196481193683417851635676782946935676982211571353714413582530444986208567445880304920789432777891986726010845494513157254254965802316034501963743605827878244223930095242554819997440950949077794118608460773821007423798184308339865012759139428428803605640033331171278665387052378599715770927843731580725576925804131452166339356328940499895500009423744098671076081667198051225641211041323448836538202815797203405267560884119023172389845289432890610840559054223428515392569026135758231919972807163698944656862804287498728352230622472358562699271611050173838678372831620496253236696144041068918881862984809604153375325692837797438856927626648968870795847437784568470291696857086006086391623576974921598002085685255777955148529023007521773031768339336876762429992824675448353259581169699477713433357011858086823849484480952378952025725553658093794727147181757816649337816118422663828738741264509936939046460514658662674909804060447890829411897459894647999059397460348326334984281350462163798511703564955802297177519574707130789818081084776981556570892671043508822591128682770689536564804837770725454633218281126298847181362255622347297214133711310900062424849246891913535883928355111801083880709630238658433735472525620245495921076146246150690182275685774139964092922698467339192307461907093049735351414928795149709544282014715351161860560025313693482063449159247657014783369064904212209428208830415440310227410563017056326644044407775176303548338981241379542050881159130856006326386158250317177495957065840172269835067572830677170049827719680583450959815149373019008725772562026491455109603624015555906724829649014665306409030073615143916503126882648829713645130076146822686187882340519103998114214955873878682603875592614925727381935519484247300047538146480170499964784665991764862586001804961331847773482013200800769684099380816393243478132472425603395077703089634106765652622592411281937290250535877507461391523535193090854084635998931682344659248239720649743916428257611578701601219684364795913534523382441805018606796639181445745726513306451955760182852693820872588874390948284852866787857763022530942390059416801083043211351980647640234403334543667605056383979667896776139436668225623213479436258473952215408767533741094305628811388956448614960662382123039530714803742676283421386794979490878866440855694354052339636196176703083386815688090001384620724312616229112399452844863581809740108079352130699778113171875321940667412425863278954344142625417558435887354185474898782954252387379473420098133489857692603107103189603781164139677459362403388778694361717379090025962772444217286563769321200357887148804255652243639564388280175566773598528750746492231860025765919106444590882799154760901187146713920974361259629285633636500204236544297968782488623141781363688375666414686271824297899307234758544530499642556543945739928488686232855748906387751379832384705205083506170064984290808245086420458184720644119676747720079437939532296961353384057956211223104104481580231999267056493934392001034294792625305550259563826961390823833017453974185365838245391717639961695240040205828895961093931381507264009191097790180219560947615906242111948839733997833792136143825812264599737339756053768992443428324214506011727211430373182614667133364454265926443929289764146995425848583291912813069057194815917708210877029321039197267433385216192140115231391234876568363199166502825198200666030472343580370794801138436522731855425530371917997195030483828471059991298832468035294218708936323087357166774420098368476292173406481011783178837389982905470689074911896797202306112780098509536822283609155503770255960624784568484734992586882116816058253313554435066804641230171032531266505977844728478217795724277853670540351133650861513450007529238068449958028159906293842706775608799605046725716047838825467965512432147415526204274671794764520101850804877129740923058403129771692981702952297022812488683053208274876561068253894527573429628504652937380207153178962601545050898777665778980359682752270051890738082437380546500968862990783195083937637235124938852738414865848237167958163357859791104956348505901079018353874952038445653225409110328502066144371251806342044581116816612418544226172686289768503228465451476210557100932231767402108444094273637373801911380751009108453880026642467325673713049112060006890205870923039549027143374924002894149741764498676876341443379932540804215193448965914770392082436752236455224065905691242803508987038396311061679360636407352723837755500366602891720590645975871722626032352878404124623898024349142135285570025422980136045898822143530613679956389046612242424060790368492731235389931830461445805420912115192419210435955808975888141155956540557951206850755210375139675743392766471015059423565264700591166252228546569227944624849518700902468342784331416416141253392444985426643033429456393133468716185928044951608373027244372118129324166575600183202287368168497721396477375590334983925173151910133512471550235880984895781850532395829665890029920771079411311689293483137621901382127424738531731945502995367216279342396807110713962781953580348830416715016021105374343416994207518271733574209583462581312531756627977239792302167872699198845303103892585799212424122155191767943281062271839273872736907793967749261136911952956182635646518114880240704055245478946863910914063394037274057579101182483799475915309910032052884620557204591239559712598224863885569344834338519992240736172370163116135783418918724107590923424096589750167017779290708452329840616080027159524517809117054670040361708902858723715064568432129834220740392705122044843744626434389119227073518793111359113117498182723596145372227140733815348698590622680098324315956462047949275435991579884242684082090629501070227878494765383991651076377515592711457071990875180209494032422993042827306323896626336610690229331275403678753479347354893524025590152377000729814707001997989101746790579610663359288516751607756548863820090936801851305042283402350106780339311990193160590370761552539970115930809910881118452424562593847757493678225822250557752419681504395119070391014242999495692287147142277829506069741233699111897840374357144671328177122041361813099682932725107623787554381764608836362783413496059138055023775848533544364809025022841325131421094355430930212907239440178555400722887340676710088209510199424014447286895120841960490853685919661090605855512301136713000568213251391761016935708762858341683302536331976886410918282940138694243029188278727953697834204119530994515510290298391253512910653436149267673834563421440161910210507698925791879747957848095685725104544979324944468383296991791207186770842139922927576679365911286470320594112209948838639454101176776877642755665259985380473566699941955004494495838641901696602697219540477988895496344142987309550801292198964180772991780018920283659408209685338071943770023534316354425108178579606808475075201119659457050826070439351334247256353526257761468401064324651213772896422416359731957942923913353362459548061592964598480694670060431822842922862822175850604363501284069282281349451528492646183966577396445213137397903891233773233764140310569509655910221547046758501660900269573680538594345132924608224371931073080425349863175064170681308994680582165063199131268275188189773571138497681854542161977178582504128784643994407551638365296209175819920236748291735076687416817081821065224455920318110809201166142211542667352472810839565015988393197565732828648249555788077455334165887353481540882298841013305121317405480925688239316006167941325782697405218142017330882288754454171686583243987064876171413630903511239678516512770548119585170773716923183322350422767959836682060350666914038393166470513087720378400179984697872407620712116160268637225570026990624633775154907770715032721431191139536368913880670677340581918867453937660035633455433326766570783896687071617488084668819813432296340498846819237444547937829505410250645437507570823488026971121841273295359459271540028569499038826972116663212139341860781722215021097271909599771106767305162572198382878894691875844959860410794026953525608130544007662587568594022212450784741837255209327692553075640840066866213997262314971088419029825949367292231204515275528784628628511098358639658080720071053024265993874634109788740030747658953900608946396915280858086380439012136282948334329066554752783528417871741887661838654128488569801748196934696878041490233463544268704618324683788194601021769658115860524947213530049991167882190826561003138524386428744537809270214376731570107892627596580517468078852840415901894372110418849399223713807251225849433281199322726797578644149210052568069080403184490667570988773657601551321907716241481240817237371789040599552591075236681559632455878018870440293329213240783914196955667708128048248459929236414794490580281029634007038590627253652060777400451834315733797511943582952461582032513827565647622573581783431155149478193650109409895827770752525987852800696938620662753652142166237341567002235626383111043574213801358254791359874232761610781855110318007484199953158312725944433955465538107702249296308506415498223301457495800224031097104326709933351924195075824977833632362329216626810204617108259126888271339196132469128518674801849701461255726153671292014163148462918782867412970415835035449215387790279897261241865813397985562546677726330763605253905639090877507541076815247940983559520246147789001911301889591763170763827015111585562124988797800369849787700263924354654768084982694508292877482962149399136561206525072010334286954629160236313991639165891904977596124261612832773001396219741622913731381573028587425178210433783345863280233350569998516594869149746679656571476667471209188801464339728157398032625712333246490916389768692353300385342280911418553961098525128387580182742913252520683722831823680681220980379096392362506079507822687164660162943075806159501580020482248375794658805562184284553066737656089483835303801947462513189193566841433683899874442776443769830046990152709818368924918294012441447574329735178986136808308331569494825956889765170751872782969149601273410510655670875665465340301598016278860419738805870096502656254260114756153039377620006323996252372048132433270623910053971210947546567693688576532092053664237974418133348569857740820626149592493093917585246429610397810751225791878901672785978140790262011422574417502824367077404343608895753274295924418729177873478091471393602083368526959111264319164137682310635086849706569449340687570666326846316812941510897012388681006688212097986295827308186777267415792123874496805514738082917619825660912161872896440247936230929815802997788690106727390458506315841726803278977619528947102691276142945659137269719633403420465260263978221379583120878557428984977447941149978537909084189967258101864941143501494069677852583365410232361976046755469014606949263095927963488531555640784534585142755963282445616023460909394085264692369683587407297139219951234893755694988156735511737178013354636609770303159398722535322977237496756205679201529622619157635182291662864811560744477370602256746468815290823323718354582254999286504261674573651401645951161513321924386771534459726345002602759944144358643724958869168347367416796950718856470856022723603593196603699221003387208094973555111026066072690347447165185638274978179756235840641442113578663000707811218652621307983293379712759007085975203345637202979726136350404956089125662089274546080288391083711616887526696997394423212986277120022047222902355396045533752285645273399057249500740159398677384239653566779300992681511068679371136005549495676676619090417529578930667918494050646033553065930593566485470459397869156562774627780070227080732758151277084067004072093107093704709256131431465615848813810012419801675945538988450583451771341555627779932395128372116280521741576537539712286340236007292373875605016061060152801521794418510887540263764580811729403707743911156624923912328620056233025197379982164220067869311711121755915161384888428429275624887088073643351838154706132359589250532634967882735366368184946419086222243803899182395275346741090733656683790651510715221861309160356093364256352672984426622804869742754267712332362712237517936923481182724174724329372632606903221587317442451345657812057305886301668395631340841535791293081492174135947868593702779352484734641274645237295340208071772245609202840691837163348955391195264751619396156153961586949330111037611909757980796219138604304678360906966907893143611866838413556616042763972496917999608596029876677572010431984876857142234463968069883552029942072750634159508304771624898396654186247978802278596246941011152845683782927740616270481459040015146442736700362670949993796042855720642499548562543278788391464002567297032648782738744137534323589731670792190011090573193847275179616413888260726680145078931970591907453444706800927847355101310125858286840378112164612601682652177447010301075111242058944189631492501562785950193973414024782210432312693772749094016752949580567356104273067194514416250856427193683424698338400285320072007824069588137356883544301806591557814967986175095783279670027863880584695792139151876804760712185934308237540471163374058837115869050840855119619879918182967162673060495649921011575729520207984449785495600181867652417607146777482864612544535407297160856450589268657938400987488744438174111031929572698081735061675384319808473147733101593381873955327586628621579528944607516175938384883203170636087105752708180192132600851292504701414238210442765940409479114874762510245568723277426535720603496653114593047047151807485257753847654392350218420595786769428211219984549831551797849148207124479912174609789766949489204480171088785301275525261185043197345672869571457790327625977494146545189002263961751566726230799627608350924797164365394300755552124037123401240879539960627073511283585906872121517040122676380033430033953119236311694173440255537170978873604790081915035820169984957440381222863791779498306992263004286935214562689501812809142188379993171781397925694268162984110713110493255475091179984628492625338457268269586526435278631579774232496361064644583584729016190825325904391457723344972726471365330026672445183371864220674166663833963446719476302961488109759681897600913126985311618944210517330816379390220896849385892279036961232721710340005132150023672440704161218369284097540489390074122578415075151074776706053486626017785150765839386713579965771600501238018173233743378589975876900301580865318571104145876981964662419595249965659194782285040784027726154542576227294686174938289186959815787560437697356501652299498855238512845492435326726604916083923973375370152005704896585414381229049517662471515599505160187106772152746773724973985815378418722276296230878934905798946590931412665450654961091595491473219793942378299484523153988855315151097041569213518272479932187527080765094649570405683263437876776439909110273655047296202344649544370168692045109622716938639199519208137024073207844130528628186797779710111404929285149096036392260642526114654272129890571301090283585507217107288854423723139914948850964128857869794891032209456335194148544819810949683562396544996942605328493639135331183987109281959679729802462614776328081604785545938023770529949265988800180615454646870053526178501183639678371603525196953853971133786764440779944147886473033341681149016704999816795851764699246227721432780320345245857638881726950948236294452589866079753324145832833873329869028901203627805591295712841826571552313732165540354486993967585719611214151965079588390040166353954314474490569878009308902871753175159784078527353346733430106823915550408334473940205462167520944136922413480184282799417915937071159494542011672864141837741699588486857011908789853741039079706454607061847745827363132490313124486076560408387829729367627125657427927655401684085982156501538866026577283934048303967708425896364576366402426178423682782890718235738887137772145365229717221099492697584996432737598155151337537879232639717856037715444638268884313237093046781137190239953662994292559062124456658159089226148197572816087301525958573548990648729008823940331510805726060350165660050886571357341644169203586271540656108341122320861141565734336431432275449408021707769757984252025380193880942932438398262518249072231010723559832967269824819929412372052256815476078014278804582264864466961405151543545780312883202513597646018167330446139317954118289741922276151067345057183468429155195518933042889490075076659256782776829317349365969609808947598894101447604443862190433633208021378457878928228961837147950832149022726828537985780622367782359346382621646639114769072999139241688247338259792699722745247139462795957391479016751756994365658172994229759996858498194335396037376348398278424369845859047106915570755209625672821575218752818621551789732652263895733797211388249082528292010925658985166799911832637695095333623542020353295694475334375022084973175512489369365758159095391579811766203568776554917776972755968036520650102648316165239550600402520284806408880333285947591398700757606396001147224374995875824712521544066732025533619010728827601720163963077243619775436548532021413630179640904360194939722171236808544284275888353749282801803237505629599897135670172720765662194083326481624497093244714629960489389584649604587946739264869575678782498196096806205910935184979739782700370478299007702795917172488053225716553682687491902086641496981200155464053153613162241527671508242725910311455524814097781273066491061107453746393965927352551658004388493168566286164941779351760844930614839578851058689598629461863656567559272901448536115624346238231006125779559155921920383777724395291408489265332151926383757268081628940766198872262406512562187212497225857808084970112206616011020502095537921786949663093391750308940243070850440026167482268139390859935909507870142963196664419774680017458290491777537138447456215571919579051242286228247713113456369721751281724133497291830143745382768788702734983118358820571134919450901579474967212442787183702455101886966218866646645237113357477085134480749042164076804174367771159816306067070905263159424628301040107380824010846603815393588188735198610932758503299892693512016040475718954359948868290576389332874566039212259749696126951951161366247838505512816159735199928806389206858073476040502497096751255691118915072458597533140436061007466276704476759041098098144636413528855030395548215655961916446771967113587771588487462202515538000139105912640581893255306131934176151562314987693409281991975875821637372842416107984262749566900537452775637823222625044587012275058907568457214133410109165190289324962075025953904537799754502011069250104177901422166568189214904201565117321998159499835396800151057366594851434188598966449321860627695736698584705719178959972600958969952889703459915368090123904649878062775278174771687222889552256413288938837113426922480508914190937932075282958840489149383129062545722362323389991583392143061733051322547138234756237654155914107659487377316816402593320495683816869681014997042873291372164032593789280404052198561859098029020090976711744670240826302402939117892680126340992148353362892823438087205660858791696073090344935802294534238739618072220874253639748715268286290802679583881115285997425524710901842781943064112099614636859439747066595872964704077162561413259466169347156286937416446594451670391943216030625294226088575658884584514531624301222879827500105065718435794698623327478249175590170451247591036687990494838111465466319795122690968230420661628406367696181766681522958300971283386980789247554725351680157283927939999216045317144923983551171829044361292807538405359838968616523229414886595360542357301603048117726905046316138492313753697075616300490649048402320491999321814636065251455613664151428104936820719602430049616580947070561062798292428766967987910629593917739125474023803148317412292776107733830621405410315094101255719414008323995761880048991631681359309491543853004227135762577000962076629669366450506421293526299934913948544451669062449914922787219863721437679895042343448165851948552984155323891802756576155887634295172650438015806526578337404145715976199894012970252397312086565955913747143493013547284041493990329977743901976475071426982299518811129029809998873449219907318306255192049704035751995687126952884306930278423063704374190518105211357921949296140995857234055242622577020700674565693901671284460757962445189065602391931715739752951755177199044767166515032817829840476719737656418743847318497049390829951262609220931357863066186771872274431458596127236563186650932605904920413830654108853475617603030946075945190593163961211609188568611868887307673970485791762460590408231126715485980387267476307985920531918268731605021824125036626863206004388599402363852714598487864380903716378896489758996384559227629245009318378452756483505903328737923836111527406480772967273236246074222919254915649474978987621211501180927053498753877575789689881235835876338787287955247435098404126941154141215140350628027517532494468731389026167416643024381867096673517512888774935655465963103674789921025139856410464683976723145585003029033990274098446411806511651340167038245040445665920080441055268548893725937639595414461231576610115512502966393264132987145557053930130487598782980860849071918391677313272289932157914548632391232348189722080849019682131958234560887001138423691047516245358706067041027375984423527113208180059260042347572786842928302171107753387576310604368909703578169688469092415063747285070985301480666312497209613068164216622752326820063542784266058550875092277729484801731933070759751592675998128002395419720783023904483923798430872858098579375090820418548712457267408718600702234670725302440094903101480522106737951069928877284222671273032256256930342726366705217818084101225798805737261141158129800155541157372230289518137728286798869879175241855630781072274281103710440930341792839065647626471013332432455493356532915882186024402391251823129404615462638796849573538990842838930812071412062337644428346553556037177402800996260877888538765318769235923385005504515993617168918818071428465210540335021192288875662933550741779186803082556683764789617540908325861527550702903422506960803284861053390942999348697545723218930802538411572193845342669288433965867634336367637967333650862366766551644083431981175151973122775677128344746333960664014305915942814391600723327701086517673449210131748919317374585889256071815071059127115592847112205111026252672755413042287019290958475814484897642703296624644872606663343102617047110363711801010986101308030136251102526601197919163816019845312820961426022481840487251528798966738949707893560603026741296558995144224194353437143832044256189896819012332736192247838804267517146619145518794071311934636975835873881531675904517351216432995163691791093134926166378017152626161700808829174827189601800071315250314144980007698561803294846773085556068226425521882268788763510788534276952365726880023331141042083355111597958870179796373218506323231706401067944335661892796544278457565462888242911729715003415075150911340029299963689860473646403973125035541609098609080829088561204240626018975922435167890163418432725701478082674380810324360977305336452202025184598046570079490598831607829469850299625483318816787953968206430898505549297794002459417364358062130233007852892933753185952206712850001873976736838577638284390025365736163404149093299414257661524913914537182201646541127013596398325890928439050460593135547352505839226108368588269328121997055106956031384624774473859981816383104114641968128049062559367708952949596833075807030595194663641824572146096486468069694123687423105518323049920713018527019958339327714548757370096396626563094859571379270169668285145379799758504804723374747834440041719194312072496114690953780718332450262248751248895006034102535695893664376512467548668957295193129229299820228091711040961179036770185629964287505168666834784370775454187502781954051128228121210800878414763090851029928434050745833003346537665559248080961159629728664892573724164506834846885036191974497432924856664600286007828204684250784057990842791530240550718151193768519964454338571889438879384340526721052013226493422116462806721978683352576387517068070168352635311362237327190593723781654186977075698214961107966643093911157573063890928350506637847655221979501683929828114086532168244689640365022786558509931408988053182856158849535651632113553033653318733143751275172998308645588794840292345625569125467229978942092597977976627837066983672303684736259247873204098713219641656284114594948311897605192660577477241910722676059130696485343809258777133078970721429636372729613626254012886316684907818895526717230797633417699268188192819895535417346714698382125515080316342410909283390921557315409421673565085290176620534244901421953330150789532304350378243499251226030577154700233864103418625937339542423255583093912802372741149600178286384161010918333158062545651573691707463582724310626273458057630083061002493384465575101526719020414828741687901015090362756176868043071633110832225902645549417048344755749030569644495454327880960623656289050454653198780055825372931482054160629267380263690170857469828049813266223651659934059926725027629052389209052443773071683668126840196399164323932496073627721709604664273305812388065261400858036294989349147513805085018351995363824848575026001882986050189208161649587396291447072101199767947103807336121397427188408564665752173187372348059289737026009553042592956767458985643830118019705772983748025167183836337715375927422963370623980386634349296816702709460790944603347449513809861808431674125123518598727611131138542445036631150961064561177854589789815282900731327835447375258298146516985564147297083525293988481975330918506960763625640059209724278420645036374105354334992489141783530803288402239385403690800983901219630858051216814919104374719610131403404046892260730383018312673763405364328858412483855933343581559030422462331958574497498190900207011241795750522876795638613824016521371963560030147031911030836526399958733846621137158442461910555504490585482640562311605021624706108048136551430080630243723381800073787133524175062955134848759008548813786796948696163925451720847752519933522132967308265975534231349422370620770131097754422007988800557518636122325960314398513435688694755393514768621381398573374892857110071275842476632613557561301290728331219553659544172805674423120124512094711667140476878746064535147520346239215405411611433909258164316890569836010277051664080903836222870191686545760210878287521188041977077672726082413939282562846319716598546454122214349522146122679412584762224776614141761528117297572349242179187322195854733239383722958360947154237651141097026336535067618081114245048891917114982676071854121243523667104577300633856920030062803935285767829844944803381916155137569705193339635605924839599729630124366296065074820504278231671080216233415835404102435739965347738689103459115275726692337212955242155281915797976070767247488300940974213755967442968181858119527092541788737099591686477588434354161779560991626930916114891815834013975333459838389359116999772015623102436503627031091855470516506368633255675448542658417710687741077568277386615586482790258818812431702364788671604991005364216793606260186149132511250318267140264504078175263786734922583242889988625586644144219376748655728465912976390453152713719908155113412696252435305316418053978694110597135478363384607870992718032444188796383971778432869929003973920741413140402881995963203877640099142794143980517346602516868447061709878625628651575700665206853520827704631516320857318018074762126040953476528010211493491215696384242879748673252634929857968976432644786032843723377823848371328592822351023832794010848708917364356177331517893767278289247170342356286301985124267872050636771007014699580384798909265643589956698667489217495449415255045046745232499052399563272830142455059796988072082256884233731172038841085482800756546520059597043697519172864887482397235471924975023992954724206131491358576117248465302305942947186894399151228998349312592061428727973602097852741427212047644241625249572133323112225001799183790589895598045374127873731887665792426699287611130985406122932732867166085483398026152832702070839457689188763373589093084656498925748456611000997103853734712513820408451999640123674977439096924797660271416298380406286828590907708076936509173056793190742083170697819191266052063039452921921279270818962454224426042886212948690360152469573347654671697637232568583805603668452127960106907062225818946642093703754286953639664217553107222535824509521614359358046342130365143447750740167739982114120755133508729679839092629973760632827357010127004331400845246770436713822829074343237404984210974749267683830861255090520228751495554765515008307237678954336629147667572221016939381457842690865806681453674153286989831868354247700039931109339673207352117819346681553588513685520380149470876879123704740717906739971366862065819063299378418248234213741756009331122919276342774489266158708274831758886492837318759979826250961600651015227317333457672517436391669384184225273576131623164285042859283023722904987652542244757130306156778732558825657107903615445650357059356931297862892579420783276679113005728641383412629724811569561614867906325364490139090646412938057007446852553916009092528275142299687978870145568230309628280997831606207758305712179505274241093575981880533070130295020276084064304769851363559070914780529748141884383759397747358702789599441737037773541087382729825745414045989163761768166751974971868208886311352575181130126703850670599102449511521689743010068855223350598069257681165942913346484942423222198588396125834933957685665323098286281897975502624434160226788049166819358079466287056280161263776321767041362302955385007602436489018334657253669540013368870302536421807579034856023018670536358517311493481968746291565292226509076699020845089274049998596923602293307787283045387097209211916273972447746409181765479335922408939741851516981844696476918886720468057078814122798184828975678815118455330405354151664496757097550537720663741275734545107984819940785815112956906285320435472486777293512139689139561165484307922512463564510668608009099935216757325134843247989994148438437603194192770012907309180347607440984037169845942878890281254291976109355920124734834099127025489793819135781000984312777837529925216246782546815361713198734340891480806208032651854195395319308019246064760593740248620105382986011927789205027184057585159012647138947006781109307337402010302536805895827940372016716697527355004817864289244316292348254272928068780006668660843979261675587888510286759772433070565395917719453621800658580819332750704773768782085908246240888909090469698578977423939058105658588898053399126224023362466415187875739416149353315815563801212261973619572942745477845232694108897527056338196234963848735358267617763922912321013680413501823013108476664846762989557623624225634883111820657133547885723291502411600232899896814132853064115007463504586477455439579510352614846882531427841993275331436489336210887042612184190739385374554496286464329505448413868830482418222526613259310577773800612716018155150353797547995839238875974279915808615825311914244512676578733876333183691292886906625729508219923415603051678558879669134507468260366105882318778679805989486299034023420495459993947949860064708968231990850369058014858781620876462991362384793199999836662020096895571267528059103856717669651270239732311932676916289012031077971819232386564051209184302189792839013085214966157049819580955535768675705861714640820674553306808256015292617379093241864393611982995127912741271393497111610457186767323234172865739350562708812012603145572079277238922187086945135216127607375765766833325056844212375682566593230829769229816070003095457360114929302564997527200992501123604528186317515483522460787395691274290494955731609818929463657545198692124603916328969345798687670702681900126831879070053131735705582139022143618533401425656346975937753452894717520920173137700824008030943636280172227635721998811821081630727568558366791608251840755836939239736921866440132968024783076817600028351319538200202698561997929769452670775523564197879061999644560863442418932661148948355891224147861686315376352372137354948329464980174776372364661617479375757270758813196772081698118322534923785823255947738930123457906468658977740842462727762129997879684133462510473956851612261046251074082600985676153856449553209243151653435027561862206146744292096114239283255578750858105876173921647135146177730256422759628049506008402401793257843431568838971533935925237390432839007474361861719761715076132420567127935423927133772178074064625759970579099204565437837424437835278971893476593053013695920488032813496772217941723095184735147988475074715195638398524984060632254019012556549880534030224410417980656325685436419116204595849547219346488066309335055076296617346289375387413567663239268654303292689810000176121475504603897901088134784706036555860385487753086565736658392146018353413242652082124098131151413272399739328598194716507184356391150487658660256870989755822366399205074720093401906022871308484170600363509342592613528016433326985660576354387505475341541011732327182599658205765127894159967454420532754282447467954180773955307760903906297127684215039852252702302120145704939157665722846490394422396462476807400116800672418452314211847545821388416007710522102447565993428348539955102914806774686767501971314216753013296922335022954880723060287075564544607550867949296132948609694242176386015552464468228794503819023751865239603982712652282516360157477415747430338787598602423284116167526422475598363359109344575107475848240921376642169253295196003684430190416141495055018923067844393874314033190387537564775167743184274932497207579464730131238811983902927674007230436227197527696621612550870255001786856655015134370147118209842336223216277229282242093100721270046048871326026019657117841450463207455186070598605120426133725033751475122865828025706858954314566143740795811263679152080376130264541781996073611639423058588997625359426923837968642128374513003859342009454446683583053468777436858509532738896410502500059126676191265457488143393269232062727874444822986377248139688654274265044737094774424689233883559714134968292940006475362957227665651294865906575106992335984980868273339807094877023025259020811656351441546703958542713577154620081404535343394325358227147598045876065940526869430491714296345998094014696761904413607291769485635588558644587601147644433968503308651100307098547797361016517718597886537659308595293178785084690218995481814443825255357119283453225441059240070980062126168013242235146807591852507552953330683567625549183183683533625699876117764740349713293669094312810577884412083738319600939572535825727499298023012019800924030030980848678956706242583685404554846625362971817752186655539525304623619930169812944186140781512807221812840749771842873459371265480239045872325974139459079709702066528151739019687098282343189317394922847577438272899569576461202696965162816339162725242595990052363288183974407747287749129068310732106117379624476692909893299285842893777936974662421691106378183840083002626453613566936831163024051204723406644312900514691603489553229542313841512294154555158074712498704096610980774399592652988890177524546894399202122573899338945468165025595393478943834947931335652543413499102270091576320668530393420310314941343646587302653334720083289973537073468078187907764283022429137187164721143458550667407678813580238798126840272509398561910359977550862262321704798658856436364593865698234642616723242839205421009273988003099489567739806142331359024768586770331633642722994271035058499391596018746692109912685071006988369567754682253035685509306866217975707906044874367108873206048511737890288493464706121847316122027414756442932815156405049976207786140144466115691368424453698110519717539495901147704127983941968916895498950290364978882979128329778337590018757731817952867013250433565245207942601004846977860690440700725383847632345174845532987655872565020271359686835124874158065183714102559246251073367576206367211830790929944273871108400377002088114438428974539701292063842432549892241109582203345355068782822578505003382693574481095376367554358394428839861636707481189489777751776658315357471856697235478288696674428918916999376591858035893280888347830674377355520129758727366562224734374565404701316335750136140878252336198826423133148072271558763961731767911806346662033276611217081286238551557970538457048348495305169639668735886817340851917068554879938061555447228157828626187261525772013947755546142750132952138875888402874236125161398506009506038386904481293307796957243742955465433068568467052059744402896177237240245149940426584044742067058353643925016054383677283456940883869777577592696415364319857786846984692965136526810876748136956616989331519885631925376695334314627603230871479912076658607058133652259808104345230052787028277413689268419158748492967428471781995291540841601404830033211709719502869178187351384300984638089558383423009924296996338284593851723791683275749845559105745521284293854856769737171727612398174526451157996072967698106486157852521883085796728138918753112771232570962093255081975003699644246992676813156204887224966327156244113941938974511224710548116454863875972477492180031952942258981898407853465396794371069511419694781691935687422224290470922321473463971540905597361463081794932380926106770605846458126246754647898635024391072461297721131518649578069230391870654542404720250725864249640493209950724092629164455035188864181826939648373569031456045441559957580239669797207030643994838329214018121988935077781716444768824326209362335107437264514444575248775082128015563246621775683138305926524536606996531000074405411637460719133712770128671904197296897946009466180398496003186392223842649264443537383967710260429150367478414852347069896386503350256329595848394957980894988469476987960716918192346599488242084414945797429036762365124744238997300062387407863529405886658611183156599863595797125173631917496582076662570496604165603502812947102331590879151897180504832239804514662027156783384446392045738087414436551746509255948513754307632155045256514939992017982273549720676854480365061648853082457953253018735353989011062209558473312849865171693866415487835262361306461000642102804836288460331938593664800004532728197395092507467646554840511437450435269452895922117244711918170423960939256917703212367768765177530143546987072521850780696062346003367452284058723711220806362167951045603735304854106772324028378481982003881916736495478215382673032247810156475124399766229832236067291064936900758007432430315815749629655989168385681735264973987234390451526334581297338378871164793726343025959298979721170051948054090157907292606789413130110206797721488702887098471712671220137083644793035208496175329292328787485448186461589994716305235966577661107151279663013250772637441367693373917847990996906773037201277851334086127538268220939287105003870070614309082409674228665206919998809226828176659200175317865372654251123097188533507263689836998988896911499561636732000009811892746058634657890505968405746175798000843681837853931490825476280480123084037022839577777158494003572167559999662564431981345858144876245768596914740517637653606683748378983340860675450282184460359633350598121520087757808890120947476807254859906420668779064888982344185609250566104585284254008718425689271493236396191436678854826243698698843931654772270124327497840054587007805985185725755663221932261196060128729960243893114215291838472363333114041880812032970296904107788030774649461220410219836175353540969933057191528710918249840092080197121793821552799390717403929768332817064826235548460833055665000641771073185602884002066499115816802479127206985087908383134065189356254843310841587028904869870829107725703572215033461029385762507026877402583517574294473771376542134346417075712789639190268923458439326575791304860967599120931262450207886553564911785207104017180830303418964954890863404713077498880490847802830629573150283761195707196789657741178271313247696280062356350127423343009252586260376980252557427537333307966472419482991930950642175543523318967160005574339447481469150312425104868788237913772418237371388403569838694644003797377269527708192390584518640010081962948729618011504222987071361502068595651682190315846778685989358876709721644741040087872330945674670887195725463170134204275262299389393079465367165499386276380721684528620052822535687447437211539082627695238757264552598347961745467881798987035134464861205725156085051324126396341653906228031167516124325815051595219804353249171161430372052535811388535989075463222572280343019161886258676752739408786014041225997955852485750957654871836794823793736508253949044746789095657019318709392528577381612899984908302731418533344990524329189463500216730592810769712917278212794553337013205667348748756265285084917449076605515291468476068320998622907505192089891961281431972864060891699644095628302995546746192204648593662224336281011962402094154626416979416995230349863464325733664556766522181282362170547501859115502240377379711268380612414947411597167317039350388177827455408008144404709575331952440712749999973627629522337012741687299395612600946197284123063326032392946959453832792899815647801446853684201198577438912660959505686254501085606419229960625329520938111243585938442371196542813532372152902854308655273526566794152271476509762146372785478493074743852171900036566805844216548317021176294840143530071585520499635287080159872942225228773296161251052895763430698316320654455430625380728353143264385969771780235362988683852717882773783174761690953260395112573823490646910795358614072807609721139667307284188515290970949119592447500804049657266973938125560630438804639947676130843234277860660693555481804544146055121948748111543007319736705827328411717108551666018815254979500029134394793916255758754743443453622641951532977970218319461330212534844666401403954304458451527714191381776115477713461495701689634875915095702693674441407265733401486534436163526903385453603791679633363063953601651219803360207422366030477700870277606462077172115637723755995369015150444384420858378997890767739352836672656110349337051263268454066291482441934690539150773894033478916606756970883720378470420063884254088405509394260299164147999748784501917698752036549341488799372900612365008540411524550517451645483703721275325499886448770092730028371184019701599260220509562439441687879222450994996852925732002449025805951532676015300030755115644864910438578012126590359991353873989264340177534104659538847168527660261080926621252364797269627592759487958704175566818046671534384197172203914389931661687067884897000507854904587251546074892200882433901574868314980092920864602353666827600242861261183724976178838556410486498606040252140233597461433763379229819977457407819991368554001655662783479569474055614874094779400340371572430799084190589970842035232896410564192660457413909414143104820185989434648518492835200131325760427880432790004417201032178357248870163318995986752763934494255351383590993678760171001452582492540736003633721847735508300631902232621332545419828825971817376668383102045606871322733181483517545449750519888237689861947501782644096842058081331964411777525357048552381894552390726700774426468419261529003481774253888563571697875418683824856814462584497381732833981053594767371811438355998758120937415362081040801857751419669711573911128257414450230793468742017809034888287229778613869582376514788609078819172979947174796209151792352938721722956652308701479887194111220783691680981957945417911797187156559321990341527744726243943645646826124293272467775007899694516044389480906494582403398957672179324410124600663014536504820506851415236515921963505328107098771598486322382397060491066585647872767464272201082800684823752661173289676124888549901369095427244978857444903335509626910476188202938942566517968536334357539463607004386823956901414172254317674578350884828250359799404594911918149737501641617158694943270038220577851959632446682077227322042547273072168679351630775561802964899322542099181111931837417115677231303208972421767626673914735595212808694624064211795762197158850765093612569526781668029793637631398483905602538390638047297431398064741217306102344906312109659661714155023289851321755040050909382760817376911603000584257199925495029974491605739016420894850191124129489758301183474805602998133399400018089137174465533216857589667722894898439609477128255526481543405414892513393756659384721772820481410981635848420722038962244263806160525399733867349392259856483438825157436268707859484783530416719575190432487945504396428968360234639895010671615840176783726777484848002674532898174854621013558641895478479222251326101602098507035170125559987521840323691260525532336091176520194020503642789766449632848167871096280362910176602911281230371614739085899796395713378322882221297639190253779213728457522402139195095699163114509829063808624291243705946730754978740944619385512515017879695797103964469573026293714724400803083399839675870037710259572413317025668491002753178456650350780970522101849266635987136482741231392494193204027410875641885185186345863779683415649314466245312300568323419922574793305703620733398868409878307235801629083420409798834647349733888181911635386958991659515890319977071022237756028974211346956445276645017008092065293967978733785203224577047093374339869725771193602440702833062459427797383426390912697910846736479550295688662537283548919239980381730062416781295778461661676232645663774144100562284864404407542410005945646406599439242737917334540493477697090463155412030971440545723520496930397890891958110943825101726148299122666078209768341718040540911728708156776320903574054404792639220684491525988260423047647782054079830862792863776556858747737187763370218804319784721333772101354724838168209488492067618059263603287627881693555741998170002674805550641386505704936064192834470888566884374727245068920773197085843720947487799627753688303697712564906430272635494408377934046687657420668456711220147857669540498900180081996558736423972906884436171025163990267652818875696747514517881309745219138212997791507606491383103462078159152473566876173873771760980763354544032520223333894072200437716348333605374715960760323414238645580602390119205957340764065295184097604963436319677962061395230634718889349465964461086134725671919576780037032448103155021497358766014071884480347241032388220742944580285573967363304868070283971962468386379237795156227123782958192236704175962218283248274505516753768708832161683226713907048534461854789261815928559278944544982972328203497147756395712897755459858588002452570321529206694431395595607863133491007724258485182438566358813968865101094629340596416090927703980658523157246035943998020918677529033011986844980655500486990914075109451193947763773515734106807341727481589586327947856780769862183840030396971717680931273483170150528913056122754522224117181558613724696024154944094140735154292723540182225141735728034068473428096314323256387561397498907775335633269122134591600391889845812150208698708283171790160873366001785650308877715931400221027584860478134102158086329542688159748364525418519832756428406899627077424354394258029484672507565321820963312971228283560616966036610720585338857334839378708080638577424988039317359249657628258827647590079631669171885896421688028086867967448078965384009244144066270198756109725088451079053743594815231493282243689016026634629229574562047608233743871607221474044544858565853680468886517431645478846490734582408603210155893223465233477492277265547987894594846288031701321895539569355017269130908119174506581400310938286426548367739486929516868807289132832673934029919026415283624655753120836188422759866673378299534584547458575329068000703454277646675820379865158991557717537325424206031806808930094857446190323576295519234112545132264562013439255744380671084414219022418354574037682788472352734828861039102475649831897685321198522100603304282859311223961008893484046504578641140641421575057982756419519042755975030873825094684884083283055197523043659243660450699120445554768767133772823798723786040397265509316359386333989085155616874504303514670475220198010225794054012444475204467675234887926290186787032493986090543714708262634368398894082267886787260304473858869414328343937220627905557585684948114775672520145794552356857153856875396991767605411560198626561054195041463906224772839723214886456703078596587454517880626035192522945811531827507900040018331102401915521090443829135816713878446123407162662618212201828586045593181879290003736305747446526304595011479378003610472554766311325860502736002539574033538619901540750809708920203624718259099413618889186017070224659703113051719282242390281698524417678690814000283450582579757307186420245309160251681341698817194049652936432239647135122017504339015125706520012072226295883315404196815334687512682147881279286647021561550830970809997191726761137124662083129548367735962235213517086960056755610309392690512107886201093920560833318642562359003895141249126363650564924105306886401765038097389376090845204559804325401485816115157615477175395662992830628180854506901951999923914822583726998648479961425608486065214632692389975724514890583899731628903300707058789691261375542916378374877983610681252019406424775447353233611267784563182062099930318188216950218473583251725872977575121202842142336733374855303798220440966349718204112486386624283710179211455081466205403852204439027472511359432997639505084333837731287723393001560569006078969867231933412669645525959973181094895271854923804597648399143536579369567027523212813638630263067536100668398375669535357369157945210205561911909327266754448679273013880894492517013869646932020302477928492607140218311336072971401661591234995706267566113800024003051951397663249011776403843751626352779977685429807158743853556549271610738522650474896996244782114191968642050099586445320791522617211526540630070233334947243172021660828016329877512829434581471398419670160093960764822751942611973364685115522850314168274324114297753372944265113889988247759426613183239825529663351924113274250535901987077118703681413460694377645594831368453171676471781552285205867924883384154938283556269307004681832260574493278128507503935853900027298194621102187108653633207666719949120056646299995103866727720297703856334672908111129542290270471162863045615939140397926858110953816611801823741446125583904723702988259124714866959253531763067012276769508571360547832770054611865993519105344127607603765380492542575262390301003667759816303775033819911730667201332605784818578739513358953914542710388396426365500930754655396158564693255934038235404893207166076141322706375840906741941222717720383620099211788013057494451337288952010402125745082902040145904494808904244620747246026663576647220708664045473582469571526011004240533476934841047289882044521884791553839386481399539205221032684653318096429799640171359695046165582135723310588328622129663496636420674495501920876178187982065606978971649586604323630443354776156148401741446343905125253632330461951311352976377004868738245444918753869358221089428859327724083393163733379211888858694507425243532092176270635268626254435823519412470243094321759501309713873786948734440072376592637801474369472310624556616870132831180845151977615323829489270140050644822474241896182682008285416173533023700944508660202535073341416767180589210628635967704185025161849652922485950431704067044956550704486508340612939176089742541965314949969530150844674091806820682853273726624236240111368553278624036379196393563680591108372700943025303087801659684568406992583230399051928095139951376644543064033980602343660558983650610695324203387252818152753157824571573581244267518978013827307478628298187359654234540056857239158759863934522918299546129464145850127248214846767740586159064133739704849728533669014445713048121984305896014566405981992713952208769837563119622253569562697863345190495165848333375337136180265865732006496313339484293375516598812796373793148467477371970338282727899842101739241723665914828594977537189522641249878370958531271800883294063150620329316598153173371440952688379350420365400855183797912744300522930167500176419247658800310842648465706111100370436223642879220002159854499010926209371630568737268110742587496709966655133518032451213577911807631093206162378582501203806835360178714206534118035808190800139096467739125910015681736021973564204392808372401365215789714175545313285214130591807028764715479545861309905694361591952008066856404052989403906087860850402226268567754230736438633999969024700152243837336501814073167388531455826176191892624667272581202807934976376590199667006991455209973582428594792892794701071037830075423110396983943982790452121454328824863415002362068587327874802530857078696122739628114891339869653121459083182443465039481194974185412360221103541534151385745011807683179185261302331953103547446788197452184911466007496249796097519852945490985773113521500971466086674131148636433818134628448755089066735449142135168324745270810500509256613027159714535174929113189771244407914905287516522994646239523401901239060622923559575330538218883251878536294588748905614656245333493025066184756210974760137671774731728758956244708046594994818979260909053601425356166609059270362518093727924726891972925547925372800509418673392182193304817947021324158913513095204093044696955386389566013893209807235682220854512383297317172759293134023123306441343111570701622509038802030458660775034107907708408747567761704733536992321784305166400542796463497828947839647086057093690822457632295691786283812260471576439480713427754512836188675572358127229302773914829926911950035718344762620118209249563459157323275609569567744482998943347718120441844410816738635281138706034907075488002475821638677160225438535162366044675072262559472530268920971196111654981633195084608059193307283677869739130793303054773719997323737204760224586411372700372975065104282261575009159376956723763620630468870945198661938482848297780319560488323252962695976191754238198720940060789380898613142310812634898724477991497579952534397470423854520324917169220041193241370615021578501228208806942158552919276362028112017873593717903736380403704420532921401998309916919055511055529759390959394472436306253934887534626188155969085269771255661361202657619627290209506081981673394464637463980437778163394795840763574210470609570951135449843735368025629496789397488721104936950634669418613158401645295152757826396864069749459085081029351614070248776730088682405879097918019655981901796777929002506512457084088156234869994634706551026198534380430190674055527172788836021673011117990941578852944887654972518208594310990447641785138751043737335872283870797307105578983320869229046500332593464254226912803124205086380515283929370768017752481815077464574832274739196665331894930450046421430242745859925968710974682737722838828217403676453776487105353263012938220914764248461620671043509969189427743074668686699213963702464921235656861715246540519054985403595615440971118198346056184718363484817520735603348849343205177096463520490852136326774613995032775140323827323720304610466681412045604682612649706063216176107225915016462261291437330544456651906852706153182807417439560205549047512901745204724186259553509426364518640747490206897883138104624232227978850734168436659246932369310646442614068797418332009655855834212176713087984902973846056170770054255441871527429093063397789269735169604328256299717576075777662500481558477772999882796450174368788828080470717195556449182847865679340756499747984781471741846998302793694991633343462416927264165326695736347270261029733217847356426386003041487536471823058260985050789867589336642979283741223633149512615809873542248210525324640924735034329702846738279451377721661618403107185307937977022220079500778618212416925291512553091780341667519830314421084837847296362772995957122498404513697330332671621499564511051764273341650300785473747374575391681172857513700679252202912398312838398210940876185435108766104187729227361135920359963907710441925656334140874715838872994879251041385885628463360036390596378415147404385178541955889163943758916385670070768050835721580472499402158292399068492019784020742480801705697674862508244292737788163499043893015852420196999096798217757373238301031907671073258585689679737019386704201577511992673398388101840128873165530075079828146515566737096023594649434282005910393085257882770924289568601990749890031276061145060294075611468312101958415066754723810779521171992729746405683450326518874674451505121342101495999928209300295118241319237195531747312867123553777720628360655011281108742425299060010494217456764616676360666654580236612713309691259286019905504133107584732996245278904655177650773522027069613466961997122153107459986757602490366299192895130807447785880584034989785855105026951208351341591431758695874234787857097483595822721951942264864119752024139231904683529040430092038116680564303613937981237241263716400252179389566693025339852463176464319801420157787637397325723623417939236142796387276080077246817428255949184896765724911686242777512514859981497053411544055314976817645807221613752185365874000347431937655866785705529242547724115887475345179234006193423890106896201141564638833379185250931241100902597362617255760489055584374745208253397865339406691139355449965970737921743015666881123633408870576565140234711145016589873299625357372535959849409587659149341511757616989414458152286088548232545857528582861771330369110544525014200795658076967384375076819081280027793223934163783275619595652888467177287866156491737568252999036029068597306364253594313091269257924718004001004775707354436999102530553233348441368891391353770745423899645446959826534784254301011287787175081370657659230508584215663335425360354005596630518778473816234340214675231346416022913573209024546996629977669038530201408168515362449539490451555122196052458092719811085435498026388846104299587605966334180872364590382339122343198895124524982260635059083691734091472876773896524937247229535117048279978604832332459718909812278533416704180823976018278117763073851556045016394681497757178494432014900679518914721247264898732131220141331634885066293966994249862943985075242190066498992949009183244400948825855203613568830255219014218230417188692821311609014199486359468992886390111706624931476554146335851654775621550411118681214771283088810528010831480209803367954481412292166255247903989437338956068111723708040751364711543912556727903051960899287862054513004480389272894313186464169561529959077956949657339621293804733329334871743809764371217594828478458605318138147728848799643685763712523767796529945384514860162119418476636727021992711253060596984746038379936188728150816756009927201212988326896376168388206462646542369228139197467299143517617793135784063468629635313775952190473015124369679783690450012803639602831768504533349022465087774736274489624449890460704310445118820332841272946824596046175262321582511416531297017572738482556428865568134969339706623564541460524033705185716589994534992958243055951908426428367723620912738652817277913526758261927652600305254390975053516259500131418186183433513152147796865477317953278196539275218074374134341520578080031165937224436061623645172948104610901742175634308554325436939210450779710301152641064783781914357924291044441878028833407992908427957473089124060920458067104298413426113468350692697731833494534356859675501283598835646049084667790516452196287314581605767656777905597472767423725046408298203904425514894915635639059724154796203511910119049468060392620173759839730877431396460544863560050240288290022512381085781808788331372888925744980721569346945062811002237430815606737424103994775924334000713438944455222623765037333981547565460824744817695750253131494392017083759559618524850584100782095368735663602471599162491115151580729550533943606070075586004383918278047947723678473427556029732582813271622196382500591182631042933427080687481730003794644882202761472539248162474826014750329949504677827517081206617414467297716792923090375144139859148707786013122728253016178674107480954779314496099403904297047424085773077208739668395996882709388117205189574482085934065491707668390149708330950438341012977205365509213158321573069938543151789040038545660842168223375256179486957853984496335310221275921502292471013958848477977795460498163601781586973946739398801654766025248133789445836061296761666800379551736246784372832273629540267564797417270420164989094981343504296492770458651978742706373808546057019064409517318592279892778156366645197435038257605225961588156417570263421358167480363623793833850447517730324121084399644072370918427244182330710854999299967428261392785719953454100213632571146454626649154105198701747182272008006416417751214456296172506958132558969302339627362622897037448686231662257407898415090065321769161662657056446083733207602558832060529223302522847666115890484279784366776875656939411309185638430183826717934504985017805434445076650942458809674984687879387178870566184935100190340086507744191171569509918453999047842267505474141303523646189461271667138145530461141206129940967429353734279090033095414903995927896352356862966167214609274804650044555953258547811348208345056986213349726865682053717580337773394115980560149776121588614267046408552093796061127718252430336030624791944272558076374362810867545898416740173074349721126893839329895824761778917465929486787940166179699813656476025001009560325997619657594823758775308494025933050385258538099616200636016264036612039053316100225357808317534515949093293895444332570244639753874410006480694744299367492466386778591988366575699425959657443454097298063621358799356803789873962378958997540416740735139444339982975586252134477278282345954978653564808873872770694780508655298694722662186533546915480029392592285879771217838385014639412998060777749749135187792609956198527221459260164586055315932133862341607482036681406173290060267715768033016658955304547871821551309328641194169382542563718081079627310693901495147991325243623683260606045793449194676243208947093168979579529909436854807971093898438055226582971142192816586210511964116634637330376666607330454370467635737042623197589616308631076372915228139380824132131409223879786267925626297167559173286871692784006379390930450165389244249905054329702609201878584957318550101882406412780887077806404108752300710610015061572939826258493034362064098134029826958696571959091056255613108086564967819052686645352989644131380127970704924901341423128324165825653705131424781012501419661202892098214601773337164459606318626246277106809264558936631644571855268712108261809629467249302953787856352774045392585109573716444746609653060978415553475354533534557937659334853957914837624284701270550628961718532967496904345747494545526625818046995166773757905158619566461081858054976530486463164564377110904942154931042044734433201195921022911146531442906264817521364093116355922072447735860090875010367484828465652173158174987483136052003329323668848787869380503816153929051851245963943543443445207625179766940403938710369371263909772297198223225791380674836880073945535032815600651445206964832488732103735056394664827774967433797914839857229935600344774791073419425751037363252316864022951907413792420013710984428755765918562462522602455560815017781248950260477144716576260404860069182726402266130021904197211598160719550877289973481882931630452288420077493805492112451169739949038016625524701985881476275078193534400370322814821800092917724054730332776050466702153262994400710391802246433777366340842760334651170202919315158445179427133265228477233909441557265500926279177322963502351490091068851074922348308922202934808429850312102886148216046709954017659914313321677173244780763423410305671013266336436890248214351348847328952621257477768019338973824556292699761862053224238739915861972358145487514187625700120775346115117360822532897044354516004859023709712323124506287792858281786627988949470580193225880757026422249444036692154684051433169809560836290808587702774573060010638375287984234591367585860507404622469454963598843769356892574282451815723954207394888981101341868856401068439109430264940519910243923272216258885515752565167610893447231444924427796181805977199641752505970754655232073044146672764356226477690109276827829283217897520994332146299768041831119504503813619268973455964678345314630642299424117532961050209788989723667007984445519535271545363813571742631853994834987577460994260658877215584565342344652991210884056937788438053496277946734710411983623782156915013509504788359569198476708160416842478360207419828472529224668420512168013920824012893398957147206346192641073431296176833262873025378316357057777306108057053733114793172577980886810280665920678985488964676348120374365265944269669746671642691312727754491279957724397093003843201154097868113934635229074478623831856766922161058970417579317460739623517104840311131640158371070390089762371339091485533496416532326344613524372425336412703866759831939666162861858382211569524972297276509699727369763677489238983763545955396791877294005662956488400757026753316426500033032165387739184401746711576925369643681398470815626505217052401379478800436922170294381855228963096372654917515605789872213959327637557099822524545558793285888146425056506522127638824430451913094586565579147339048297760983353458901433456721954454665672531114137265588335634163152787671588677912135407014813786706149424165736461549809838981118071412197324256784935890074158807928184004512027933693566547821010058106464528118455840465801664265329033013140076589018454366727009404557789945442881567281471428071536022412308295471967615530517287281031041580867702407146537292036720827554214038083637833509104056826905840597637253107722853644373698282355332099342751315874912868998786285748043757830210597678183403364689149347381099305343273362505046113047380443354924028593546700734666509178038842198078997249726092357219015517928952761336303817675412518386969209539373868959518802224284416013058691572716893091735770663433641586430117381477168110521328825649245811150342450199213280244775151917024733364810499683181439997421145957944644916049560166043940737563932404055098544944003284518268849600403373394518162910163603779736362604087033981980591358342553787296666302617594067557203275119951023530227544630524835983539062845142557867699325838477466892369413191263729345664788789833419145098737200437118094350429129617887318462536436026987561438398723378518739501942688569521545817368440560984772438401250751308094111441795506134891160080718326873092730961858419512602850985017005082392378086955659174747653356279558016460139666752403665376100623322080978816076871893249863313629270779344422476850733729125000245363665456754853441254112147675463478110353276995477665817327608573707299449788654906737632375732887332816050830796123175353182333374801658997491263429114604761395722751377835064208273101867255124037328372281012408101067012095466120052454617757509252941620571305566115362354059883123115684830483711629902076413360123963512758506720558378989936983317522116544966168353246141603137064755690993811918628666413595402365148306330123480317976626429037855509199345382900976235730956062160965602489279794462554818137959330198601746195609521490272863627176986210723552011921809285781272254956329957621456263187265248903212892604876416274094905434666344076966563810003262091726031373351165761593660976085514294868808513124506441615022089222396200574125802391390250097314651280356947704575719812998196814035788918546786772518646898566543864673726157196035047081029288209663009641610126017649380955605854733663197005183263342926337505589538635180560666846206721568309575040893016096627702452837067957756820662612135363793960213033962432528557161049236060833267964074731211025077165061324306451982333020346331759948502460459352312295509235251187428413479179321357094510828342688755179078293257385136767833218811441203808158590528646667694277907560013186965190395267796374991088088024864276194264976857700968252641268885113990504166073123920641308304905637510395112880390748213452280138271151671211263649508825034785219705536211887123814319671404562086555050342821917208267852983321685761076970343973231573879835354338582392339084445864970780827900746006604569421243063254380935729729360878293106097486043982039361938722093756910699484830147607477518498558297708858238029653819047624040905979792933921256048513074324496596460428872200698118944778923992268491092241868726186633133387292699014170364549251294866350332059694881254403786834418436051138975987969174539653735561138814265704278945346087274114598166131838566962504998782897765431783969790482482244233674450460224292669955813282875640078767064862462142982075462231196403845195658208144662211753499017345633799539207569864621608151144605859752824853492889019664390401851919436347025058163577406094857507399169910542068911197590459876725614410401138117377980118117073409278819962487166782433611441642537800008952872330974708519960102743408556878328934035439389414363540002321610563638600523994456152250596434983813849312921188419338930205927774609843298033192099102334161301808377247294662757215025498368365860353542680263227648038806863349862320983695560420265332325210635796646861940393299778484297647924521020164606542235633413575594440771785093662060373731640381917248071575898059473075103490327232293211398656221836573738652664741407392552602438229707934617029153279037298068084049922799494083982150770577356985206728698403509342606109476784576650112462219932103931780797950776346531086691382363061241636134742922389460695421993714399354997602606394731386379293878322060604151608465567053216519485639484636409525917191617794628439088065841422814339574830952428885488429313609580923196717462307395837624027696625355053862735480108808284090940992965236071990368916883860344994993382155049746302117761817006304791068370726207202001119924311152443700274805427033793477615088213275510972224561983769198213888441727750831635089050687185932787550509088834019475957498056759767068500126636907763180053304235741260663141708897954776955373739842743548319614817418181578454457271007955749238111115184450577964152121058036526360520440408554914586364511594349637969001565748647489590128563055103166529650387760153566228645763345247546300608435744108378228263167830124977125512346760843920631964876312883973457330269602820273106018753674873102062653398299958340265881635580040677247036416016909731146042443679792176152744320328403090715188679696608237342335929210724402172328475346611391587455078925958391633791258551766298523354343573854137613309816049540398011059318069856068216876612197828546378451530806076809729885687750132963525692682195174015737076543731631945474360346344441264370364217215447682350955618540317658295875054803079969361747025763262210975277940511848900649525396028917482653544166407911916541296861923538277719401045325374755541239678945818243104695923024159692501021514553935929619847818448614159981935283436317298377813439806960077367821715099886753041792569163643041997021806690273105455114455453388150411123166981452143231123049635121669869438091029703724619775414582840803719230163906803810215041859317496775076624363719096578060744206993838629079316077949519837242865659952204654812009665247463129827831699327753755602090092036339802386540182726485427470476017616268132784967452787444224492506992541493682655476614112009542390651911400811719181774477583688375146833421776678895670637642366932598706112700839288424861448836986678351812623631804905187441178464419408407550302695715100018009156479329822495956029656809917631520467211359065676971230919065702562115704103045109086165093327361132114065740723916285435178150332828970295398906163335887238515791385777714100108425370332099762089029569449752584948298440751268798596805381783780943900258918543771978079451484494609843125138811226712106370699227094488502865839432939465465849124523817957924952708556043478087850843659960221051740214554228497017015179531673014650848837791788875873377875445843005224508572429732559621076618607719005930718323065416115504461555234561390270982920572566068871732916165200115654823880309763393495396471475140381610058291908146073094709716725201977759428287292624893933013694803688733661514130744045419973493378874029148501228868036194905523442640633402297208119970488112490053063398252555473646241210612626989097258451640053041051850906862207262415143438013039298665636091906237233270057511147098025000190596909299631525314183988502413106771826189364825857859395859715076091186891890300384207362758880492635280123768508422007715795048343986357201045276774349273901882145150688511212520645593272135798762372434115193434401359098699047430963553284894356387755567431223833961000167018482667278971480667562261582755050237822192880520966671718592459457506147371096602756555597822006074795798459621446330676042931054756054954743462095985226301177460060047681795006252147844572724762787152172585242901418620962541855517076649230511624780025740517147647583172378001621489000004010872383709883772771178819004968007832063439208220888099841628168901521640434598699544470181233053095476870783292646676515484911849243178084206376663795334529364351868125278818129164081400913927785812406871988182302120088704835082941977482869496802512413689547928078399256934455318268901340963383277682996608620440135382299427369409909974957919630157871522184295081726099529168235637112070919709692844225782395505321556832249409439988054238619208614666240840190640183948399268570329420799502666502021858529354439975882417897685334216414923137919565109049279098187776871953911128096282479974368359760901184643068357830569683647820603950512840397403747222171942981894853213256179287525725318668557103067616452519168745131556477591611061240656514671424790759639252303398289924876453500426889920791075115997472351263698720029684066217086495389756794509221649733709788110502577310416133787220588574990525340437969756321208159775121401930806578305423697981671835431873097650826278040007039090194213251715258901060778838390262792204169740054468020311730808724015443427113111673954301461314714602876752568042616311030536534806057693765368168940039037477524380025042793670165343589201304366207497410501535932047637023097875010158612541100664734384072084562888377972389038055249775265559174217766994908760287872507422262151993896033373680028906119947490464391960771563434255877432289286697335191160153181538441939259068397124882432317000717019360204575468181051043217568851710787426245173229205063991095343775486415776698082922409698838064785225580043692675544971858778383205993611783490436416190361397620043516745973991750025963781115690503330517493186054589751272683651032538706645809675015162383810471918495547702822884240175059612451968251055694802382118734937540400254359914275041521043160598837118294050982146913179509117355158928163849688991510363232252232810135558442546205045674683329951303878433393183528200021145546237566618116971967753530594692457208352052077296400233347586015350566400144299803473729109128602561850761600555677905375493299058173560984484676331228324656614774219222341867426314080678750624047850569277602401238163389783001682363746272814691160129710508294572087031906753250469912865274255254382961296904369347446168315209413619155398280441389169703770886963243501887026634620240345501268762445576051483095604989601137808468300884358156769215499814232196218039132075550561026254682266698545841762571766920668178946449400942008314675815093231131866914625877635445442222464608291834616897324644358111255506601364790588942772750438095829076961611639450420429322588496647300483584572326490534510493991400860738761301666349567329377367655534670781723597259334430787755247632087341661795811107649309773481526549109028455387042814224243660713699223505193978842716075547185435781532869102194174273687580198311117605995052553244307332597493460319494010548232679983810586054849368393177059953759522841485862690975412703073488278199055431090314542479163307900010200793937799265398804751922421077926230725656092861384190381495146187325802350204720580441369060528485861049385953187126355290996887213704375599705796974755571370352802060610848230778846129086395397881399397931373278334751664346712022147121200667645383932538629543451614971286909359903291540237480454452993636132561589062834251275083370988725471179635983692994278506815340307230744448221003280341838396025529328417481163845427531908020854496557177547206154685044376872558287840178203481738621448045427887101579557893562286402219000004549847752272141442329780147952256263151830075684385737344247633182938891201364282670193332353830710863390877656691774337974296190991406907535098463498953321895764503906194264013283986034134554565768899166934985943853980010348874576222674451174430991795745873243204034443328957147541498595528149418306714429911530596584593738741537806115803153568672526264729823190917151743926943702967595589469163250065524142623935227639161434929319090313874561988323411304547908903967650605892717636381798916168776192171376772071187663416275507804097246035479958957020629042575199795159358172898174774097444083244962593043147913690050637958488335225285112221206780288119119282277524645795123156872915308305329227075460084486791715604032415609859991211183792094957448002611610133830950407090161936655130394330679440642320334624396615544856647451245458611142081976942605922110519930855453872669956088647737793546264661255815261187899337927984521837608421618614873383037314928878991775704911831309505173838383367226824554694636137190161598623551576062798382404737606860709558516089742097839620660762569673011330789181216211386958620213546016800371294782907261825878216334921712869615074988165443863615928725632615567913466873338195742979307188701283882247721225227082648912704101120197482392951151980472942872735271755245032419781044593206128245086144780720108976478150709665072453782407431567501023457464430608185452247386150173470511916746343032364061560802232352155117740775629153688283990083549631234761470838426568505174590881694613971747026879021938718773433819424792362036920066748291528520575070516408699709677426562749741816160050839426119732023399204424597444323068951628765041267612070435765790929816856652070475542094216963311280995246929260146270549776628920600548351034430163923250715338555652574061019296689005759666088588923686533713551641490529530657250858681673305646004749755286152584693480680690165575279103127835707722121619976063083958125844192404724453817169422919019710413972571414309467888007816936961397129630782928553026040346526929827781125283260763779256140838361532706190408994696942854009233921406542625374581962968811768228481684869560672168801938455487192713776390066984508445288425685128312145395022525950420973134900947777639066461130796578484763651320251719208231788761130101275825172833365612257619170785947299506424173570857905011014389752124602277417790297502202244870518270978429241517363005019012874876880134526671150985519308093601094507678679144934757765387756341630866827102859181100942333352992426538514326050458971960471268834696617397756015018580357496215814629519614898179359506607030588483429134252135890463066378150116347937395327619166219574140145364897680304611200484636062230648768506874167085208339523727570665169426425171378740329961854019213503230738617974686485333052634369788828916602435177388893942459430201816122808728737941574360575840054875346966747239727199549523317680832683274970774692723423803336459464687557085614412338463041740171384771719509736675279006932660868477622756496321361794688386020123064551150166317926212140669895930743710801561000236533332330150172271267943674038562143335595563170227626462903952680011864396470555678570291442589215208919767818725374679946013608065877672415429043875590164756026966869508270216102355700307063036489183926223963750192682807942009964488152256948115987745852906059011350792449911278883311487812006428068406863869301874550364030281246414239896962720734328734218215795753297925313246503553826846950403027374529484870178218785552211572682497908360928721413698090149645060802842849012999438513286522794704378425409188653013549972415487544152847646519350308684274675755887335068949608472786886882533004499656688954962673711778489274027703304447438316659296872677209045090133547339751927887935731317750992061179347783291793600030549657955707321249432716324203101899789435013403236010035347282694285548894479075612414208717667817697237197487781338995589154956960066034143838929710980290558682266478479594984135467936034734404282966317081992203753890254358571857959728990004090271105764328212552298992513681014998951248484021021410361787653318363148596092871071832523840619049643581012345272581819222876016836003631711162944251354742193082455891362036574886032581383094204540018805260001441444634042159865889275918964396118279730680968510972350570013917160153193790625500958541184839934536096507235645275973461457508171043033623713514646417958545027051847501841425342019556124576926133412528507071519045462661405528666124742966192908571989974364424205841564490491036451818761548406390819509341039316368928316517279602609204825518941257528787910143272279284825593992127521769414791084849538820761025272795291500979673593758739624385072352044783553433404131287657667509391006398815603146559738580203122922845909660763374576288090448104924661565912818052355082252757670690709307560201776875212661293012173982108209801063941245790202542246073656330612016449824771947755511624382934505566501209355052015989917867557797777557372032379515709309131510006166128940513251032973655230569305825442605901454823677873250657904538040263978094179977463770490753804431953464276248420006734742330118624427575794433432621459215294534891294978404301197987108890291294597986274999378467491577527708549017455407585953490374696389601525327083639261811738119550916129860509023692352654777943808919116632532186386604245426068500934762485749745755816013904663031053520177155585366042554336205706403497913607244276454397063162996416531397633773836394743481450077625195443515413500324473788204286757355517719544651584610083934952100746244341923577933997713387860642256259825969508645164084422796938266810024268169228074492452871307629573100648166958466701310172956779855619639297051862109276891563613017251228491713279546207004121503518464940993970663537322940757313161507686238780427207558433541421521413931064580775003627874078510714866137417254473187365223091344801495465454133108102761531003923836734020278058302883851816625975027962933602226001917235988702730338821094575297789603545762630238859474466850882502002182945728843687758858269780919042377339957006670824151176169789574380032117408005497470724718941921709970545323161199057678604975154124856507720408714998022187554777074068577227948335052301325347779561496307821356944428424799398115581236168633307399023912682995815190976665422151083296156509095873873255502971670740374035215802404900549782408466872138395134681663102303263233423503205693978254220209043773822469812693909798653134854403487394703086013527812351014341908095314084934742958480393850543354745736787243527345239772772130300011589259626305047971021917736735042048658353441040559366777606002284079660433476097071094484704438087079823111897347252933854519649665619547293098301605210400948308286371331383301412184135740662579060411585001220639857327728802370904896793297152596883494396994840196819488322636240270260493764643494417493714948825694215360978174626275740672504732613258340101905861939687692728072494087738774209041738286143389843879393583304644282040577391007674686885529014561532297682068899279134366151401089018096587837008762505755460967561838051517863043529563482860028138218157117909965566300503078044808812723319425557721947498101900235087169491127265820282061997521875696857359776339126437486701083530817879593912945606246055780114307346662048663496586664592446566182063722983613001090106559608217895668659193535849953900860403595891352458772481817282508287802777665841356445839314147826034435084182334079138729104640466666625847132991521345234028207107745686099129481055815407677218545495267051924892239773282706226569768887341882591933123651000713233893574781460371938857071036143413125631962890873575277889414589032993917365857946865377490620734106815244082548640761439919021289486276509688898396899149894416191124460316153341391539983793765141878530933153628829815759924652329061342982639557925808466370794107986297070584376865973494860180089327987006175361629605309715236251043403447661412265955098602064943349100529255175892486477894226470324961957322409758275175929096022754538501712114451365576626740887743614416618037210066610282478694339861912387416041042799477600458531189426062354104038180212971531443038303245524039262438820814112078588952215786937411494731607742511540356247025886488358818341193197731890624364952852090746334694818813219604031614294369288907870591779847624772875714887938240104041724245896115289662703441328438578373688652800837769532870376756576462199428484972479040157933672481070758180509806901909269851987168578097280002117721028310754710112150733051827312424887307965234050058319764459212803255443107995620491535472100414009207793509654683604091696415725720857130084512289570314022791006714958399446419424036830257870050648712244452483089326847179912834266791705069471532034346779350964572251320465555960294038204786058871780856933564965226769798925082401834381855127417818355303402228719827044860436327439907041547664307178665631667017732451787498672654735839823890112708151659049851443664301895379979854822734968615690588413342398393277808453202405532638054378334178087099420083864012701685257840700641084273374830247555789472948812056438080066076775594343635584280928833948521069507944191985016053694188228054079011901865706307275502125830316840374051908469710177312199389063981559520906342772820819578869133322105629009484411131925906805800574964157333152917890580351254765266803289422982241982424689378094999397227580245565581265859165128043163795166246581382616615643618050011211918860223925310586827440534974788164381149718102995148521152576470828502146630223580392046623063729306108656039024770839163465907753929324039232815691677175301040228385443667195739008895574517233887838675785796351976080378752464215605793353177548495776941806004582577417345813649264635832288577436493119903121500027873414232195649364600642280851109925182484040935112878829841342039302103054102733696389905671245385542612570670356666363732952461273353742228057761391660061325200463692367338001232202432378439306168707991391966508160157168235765028787260396944644993018610157563435840848649167594552854776232293442490446964979989029586185219053050570034599358096836458096824466140268300887073968052244542814383397275869491461380476773594551528202561173774078029889262141301509087890130433610059496744999452855538353429067555612426762221683964700476495076193143084268080346561902218931734549081657462652964436980987084282139792078468177781550117483295774413431136001849590529596050440059617196061201638462524700288843063309355590063992495775206542128605033365185024889362157842412480510532370543116280144621513328245994565062690272222169982512754882835783722150693355816620803282229797822831887707764001256635170352796933527865962826988887819260943878830960028646029097359493670056836353642376094271103336946662563204692395448592532108250689676608658787661983966768468077133048807650447518400594172948567446134595865939117376226769173120593828393097236160105826822174422758275863822237878955520153997222910633178551814958629991988045345447288404605235277960496878298185833478861296464492092159885607891124098575353592288181999818699292955623389559921317950808157469491272536310576424964504313793213344014364166389541318844169475617369173662612029677879751896306403395452829875057158903456059824408934955531374156807703405735871695385386789896788839476132163985538948109867554900578106737973037357367431357431856843722636094803105414849927578890676870777052453667389134562231649916754785712360201222247960965159673227506519362006104792637308390473423686950635343435340581703142862234926743722393821354153312592655384390970196124263276125525211328800860043436835049625579289724392675972337049149699665508522512416414901987017223505153280595904744623887066481289616163549414035721673495153596190162317964224608502768506407402984489648981880286700816762058996657673910829296059364758756495779045008820861417249635603609692606008961931069350339938934104461554469184208375113018677765947408671490870634908853312032806571126918015090489230145105401203719973099479959757733887573215031654861089183375076476910829207213858158048300102316700309050575652058519758606920648010668661777055774834188082556302671042707319844665650563564072401366106333944346583402613339850678522525242715827426239078611029080657162344770676506533985924453932987382702589450090390041574961371750922562999156436082656274860259845012340857020514530627150287043339350101203995069756929321338625523404024678492558898021844163489684185541572113340687981358355825619487323433008090073030815981822015470215523443953156894730596262890721503183245693590435556697753683627343019187181086756022895543617380316398245093359112178664207120512427560403276966418260758387175615487867285434576499129710161240324085860813428882931841620570943168133800281889548469129109035942730290464551768306364609455893869859830257637285298302930018305192152037581057469219120804813455578105715959576041238435114510687872466500334885479204294643163679082617333782598936622299956193652515272957753825351383897658147405412861385087718061912319818123132696726403952448990072850300823213662116962734695150058210489140918584358792621461517255377971872534234327056674392699649174991914639587264209209775169159309029719469382323605028026132769189602812174798325273864948359664236777728232874174479865894032972683635146194310400556114765141193181093004597111586114878379670455386108149697137218786312723048230524436229184911687437834827605337937221400370005470037741821588135802186404595726262472253080535743713565374823992547859895287903215307691525011202339866579921499380836851496273178288447429127122481103054449677510319939768367216061378585954253098744504036404169048439353101556623664746506550797727368360476888575551726762944367298873026616684679313456111779294402670910368365327206815623410095425450519152900190905477783481801322413303414836704337554695264692302782445907039532872611382866032158971657388600928717442267186273210146229866842281629380237379104726126249678009924746270458406013811471136549253086636163231933816178798892307763501970957061141397909886784174993478963841263163551961060008455156029694230753255310688414777234813139182969502265458042556220902179312827662386115974782292319572097465965053528587532507479891158409500270865645216635516096972129896459918239097749341346810487677068911817522530058894543338052259891745860625656778377666204706065203274909203479599682235528373921357718559547333460698670925430021192706368021331386428507317424636526783182799835154367144932686746092048158195691854447109179687609411725875648457726925039425399104922477514578830154119730566916188789880879719172729878326983606499007418419398109695907018656231677119080658586885934462769960132890244097223814012264588218078723934303192978164363128776379147979792593872557866565068273204307295627239258161578742352426642333218707324805121881714408100097345316760056754947686907053752499317594106002958404543802279811359741593430645519693420920470555237602743981692259704598815517826175686510214043394414902090232758347517025779007360142582148162734085270207772949364749208417809735803385293404899472642445608424574674264665059726816382450226758905804831712113782974446424660836832249456035389811804600767387674439153292161524587174730095660046324923904664673358842205203409832569188313742556516250677419778847727600009429938383700274257809232073210781880002580573870872207873480394019771319716595643002798867909228345059754171283456562151257238601089202197310556919412544178511862162725548980905649425596411164216363967818473611915971422681164624666217424417295923524653952751064958301146698900766300152607049465897278716807355817927472465787325449187674089611133604560696284256724077833931972077272718735732204737757092449146262107258228199578743024680345433784058839720118733300612775786173478280560435300461344924604198557472842779525904776034316998351211638724762644806623763270895448882703646347310657807908967343704002109853615218335110052642671417530795182239138246494436281839606299010615973762002561702348972750008016933954364819914881732362747477229843704868082977253379683197850594770364564968372981699458310482566677050449883984615423407317744272829576714397197441065114364249554975432919985783038865700026151461848499194802114213266103986006705601898642160073448830252491767292610054433187229296601289172528299280425084601478071412072247907078486848384719161105867696058575787175236348892530418666694731581232890865695221811977947602794347349006411413866687318918623460937826575116434672664963984436813046759633070760012224027118869058633215032881068159217624287760609136348094566297582061053955967621283451492244271315430000811615787313809236215979691049648446304107207393943830786121032414726847323407060746018248040381295436049820855626871869618052688899374566223472788919741633839150892833511051189923026911469512989235308921547847157227317642409222966318409884603135335180885892354681481176338503380775564249953735126724436192844576895325925051481250481989310119052799374145618846840512005161571780432461564302161381888422316784209417536144584390369366276953248587888333561119453356941573376316956856531832918120379446623941407459876256294885540841851590469382330320767485630012818850623845803362369662125028710443125183444480349276890275483432740498961119550564024221762214484079908705352650246096875291416191892209167012329128315733825626683536190767560901148862430169724334898275924388678894164294442892119115608803248050981759563350322312375256693619467357314426271603708838520656616232204134086255287613708328163855481146262119212409710859110892986571563217227013871484693576216539947394889304483666871518359485384796643970220123043529759837484891234979236418308005045644630317689685559020901808327925049992321116292098108699503918384005380212337556294944834697352591131575135111140486738363949978226196361098805845866158107501085786787347233619428621662792279261749815270195815880385654291051512192912934799859615908824122580863157554540536532154151066514128754019212564325358976850254761614908058171425806309223739888689253395458674551723851397567673926904753952366466024299895027919313101747620876888117673207398077238807353244473548557658928579261601155090042053169828310029584123320663080853440764171548524779860474031807092370595927410172227022204211763564859793068030220375534917480185852322956918827435458407360322902091717844090009399123140061962151603897337682336347678544232991705975795733328945849625597384194117712292288322619212770904873946932403849704311151785050786321014105031210305853431509226493593537786053935218022987419159295910370646885081191070547976595726182366032247278007995406153905026988528699749335074865927588396214166867555502410741907626595036964653220547608399258808365062496587325553205025138495090446624930114966316079507611792788828873800063120282046116800678971757199224600260770949657428996113116045956365728763865575806275282143969109843514756245639035279640316140029002781626559046687613437151553584975514326216045318287770803844286883565674801551797799665562076478298178967799762805807175799585681952800399257411633452909680665424390286154199352131858880333100780753811618378250193230690661331700464622321004353730333502993218034930621349391176637644922872723985563210438018137167358936665976605917216848618936768707460426617372333266983592495351443982728966063234401042766546907667469473328771869241556786187655576295001274880260282117089067174068924083120934704669820488348628625430804095307119499125134614993401605672679100904164811639750668244954850448965184180752594922330446392310039904327632631020183242403735421535479526679483930228977467556378341786408183474653631890063004301173819502765161123454382081467661414814231181490492188099687090506232046246615476685883265456557139091800526030681440742464049729278317458793326224360939759228258072531768712025964468027923538968950373591290399521354477967916049582219308782909029279504678471810403038309688934916277798869186394810449924893642373372016035783436096264253188461453950242033060373198880647044123719536100572828374428431734154528115707776618850016388389866477390900358470437024338450702048442252238763285486289443150459032576692789672296769454269153954665660549374277657011379516031036303473049641417753234847294044348109579472468801672713178796109739435901728916991182672860260497489639098943882750095618095683750991228773477261912684124739748179710258633708685303929032298522045700183903306340389699344034354957024806688111582360935583512274316766129292377471836469656703734218861501358188363477315590068850866161748780597142965926558164963332393777855997063172823312035367254661434264689802397008482362007750309576371397644417879135848252548967563888999962781973148869178397128142076635876873635873659801782405912744133792547439884296301437836054106678567107589722134737168334148061331263010767385741125659510283814840164104968438551192856635494636119738913664150211685540839563716819243271055934853771228081879152603705503278430860483151953248382303952613847093416702585833109666209463503864140069398491834624722016331271807724342856335488937194564347694272050555763989444767616265802112262115959686814071662441240472069933661731843221417348592163757158548094847728181885813026832046479047226378831376304236156807089078950628076325248646786381915775364110646534686437626425752806145922089888017677507366975898980882193374696708983600086903677973310189600187597469258399485285165741049359532490502612636787998009147297874259688029022428513203890043286978641988177066830254393315951113291190539419981704972271308976764440673075145318914280251810471665327841981828230663883072635741799170787566970123252069299436870168566208785403418803837427022108975860814054223474832520358918627282243068766454598536871529942896331949982385498360863608832690348923856681403600626237495951980149100324328840814334904367944690385568674811311121747202218833239596529871980755606042588442037476056124484672338710032942296043497156112906044718493252732850429473307519926650590197240085527306313435878494932472986035217582101132054803574485960162308523253786167646930669442868732879452095235662696985044334715868055126834400842014597208355094837416475556128034186465790939080365795869184248625719548014893216208450055518713609431675451517445047277610849853199879198956424296062674036946261071076879212188904600879450651031432315631992477761200203118122403329136353080783066179190419011856325844390282946148352778792756381517225701726999163968597703488851252394272159522634144039640260001724504866964516844139219381658620397162616455932448265043613041219335663919026627803452616589111497848258437732666457403989832241861073966816322713872434679232596545741489345228978691114584438188056019985712044025134115343674154447483797217108171619237981423284947756011549112581347216304506295540588138148932459258660925607397071028122922873381371479142625924796765861614241608030344955286147928615733680784389095265587387830535500653519520153118260812102645234409132260938197108004317753265021025060417539785149246791049072532826793059059499060181592708696420051270931212655183600883121784742431393023697453783404204489687400311408916038928576912680745410479753779792990425680408602294406075954114117514856587522033686812728367320005829473181099481633152413930450738464051287936636664060927816793699640405517683684770990177950292074034234932138042903915777048192523314189837604706274712500001223520984140627572972417133943310875391419304897099789305214752374134377816329754600695397840485064437609707599042889196593051195902991287773306188945905577722147702559107612974252706686544071915113861829448102148934364349357848289069079735562351215082383644360264309001765200536955076995679403431471927626710402597416817273924724203848900689150491356152255650438192626568819986378276651339774232085506019164751431741744042941378525992448166911359408546177867313885427338893617511879173613372686248523546462571922318226569036203223831279529642246653994529614416804344642414204449560184841797502904527007463627976821653609005435838509026696573288066876318814179814052092863137298956312117518145282523267170572106185133663314952289411943460722855383742967413063312542080833737060200421810212278711063294333466855636817177013861160683285738124226005179858465342728879490788399980151776652037359043871701199033832789986214079638286600055791204584505929262899335481820769792983459401561130674423688309807048135210395164292247172557561399446477508950934833919473614203544373464698684793448041663887132630774445031449265815257104323525657755874359534609354782103512084507781545263984463930772587987517637287024650331749651746997342614220174801809518760814281725935576337239916135659499686183405852973271059075465640340503047597666821949942350474245462925372873706393482844185971874279929772824426468653177978218504155595493288908454609512038204874902243196731724996200106604930402716331029031483809877870259539782291796025344767130642449162451189338000340134877452792834247858320273846368087015474964045736768977536196843690015162326656183302863490193474182891182467626929551995525596085133920859498700271620602951190826537777627665999609385620412270717230451110998865830239418969197444750682975603397278837821728024058232637111178812883283720077013065492666404676194115130814823721900786993736851765969166895539929503283786407478918056247248779137536589529872974389947394249289409911422034985337010135500471559141127057477006577160953321290568691032073198470180534989091360552338045791165384050640520636692690650516045104922605378392519055435952678589344324871710689209802396885170696331206410230822391140071661199483481613455227028772530140026841796055734515690493873896637094466754079120110733101692305679208927364890377759088833314712259990166196504624674370973201555242869500338837385976898413698288969361853320102776695954169960103459352429616980353279045657704453030317249187710756220399097990584659884005818170649621753041488430837328823881951642506166480274053936062517669070628381888849245012118035389198146814899100921030340153673205463970756382379552483459454916935966676104103262390299179580415014854529860712434300859623673925281437495250787869459576531527319958102043587278305066313822576650759340910460024587270547643720164950394798711149923162306224243354966348147890479611576689074738990916686782208124272072073872082554918602984734352251631954901944643492921712060823006795311053024296727009092323925872312658380878937157137084771667519231809156927133326805756977288309626479195925664037266412772920716587958669979284230849626576829008029265526583670563905846001651148448439783715948013268618345627467492499485919933585887759384234072557137906983915439419043787557258249076849361419094190831663775654724519274858969276340857755593707419809201433555070340496516821325818630076088242777075812513097601982890711729107591647877265777594847257935876590613266509701941611020973666803427615733491440780943425266087663846007904579951651662951283461559571848257991009211964868474233651129566293432662281458521536085486505941710511918489711529355755586275485333656918185347087089101176466862894966784595267034316087789026212107728926769055210932975410683796939608862599975570454288963120490452523854312530684746664802961975901879378469670290994706129603257430741777352616821151240147700858678968077647201241869263016695001039443483012987232974463707100286683538095929578642841330751139440630113432092188732129191438371878880664610325155116200663383897114413559802200839676353942315334177945449751665218280974777854969222050986658734802615741607559968497743039369610221043371389868812326921320816472287178673604294556476890459658848869183594114863471018942200739020126324590117594317373137392340812474967919165913344806655229866239801764063695527380045786397586698533253190370891852071592653050712106861886744038769352775869932952125705844019600090655529987972917670415532942915808494292691035953760047496779367495421471102603466326618104040180869199214261476767418538925423853713893121760075123919305159232360829442993193994470220587988959930541646351228039940066259750339412954047692200737711014846974820488140893852056953902193919616621843932324539970165785998067707043192628131255608006758620621159490731995379691746680426563612560094227223092288645694777542814216825005304424265755488377224965768583819944971375832969308552305616012495802545224858531941228213054207947112365882440067107658201896557323363207332357020861259323501878019104431028119410985395332425971089779577329677675092946557680669195589065309348537894679925822505222899791195671008324304762673839314712014135562583391047502156421878146279471435034311303448837580984653249647558890628832302238824559551087767797714449676157169547113921156537692669954324705949846359988821783177099434435886874191706196285412040926659080763390027187832923443545779709418268906193440169507844554984086999547795645580823892147549056727451671307483451611688316377873349499423910895638746883379962114350269062928457618431498880577013784677445654627638701270326093286501738584543140149745102075427683044844510821529857071642531231956078969772808126177974215018064733159192508272092185245830845473598547654989046119389805521683709755036298872828616450223848108203835736351509788695363125235253597720955688192164052686744376827265160657620679930780974035171343968507497423175294958489565398602574463672077234525857273486429661790721707870900545571463425337752205400110481963617573577438581323970825312222922230619450105403608185968389458305259306444403172980186038994953211207577172480763841578758113670729775507973561299115866050605547280180831206426656341348711483049150398641515641897627296986705537715202031373483926685986656532859944756891343410178440745568960973043507466532492844092333604931861654398405544212650624640664446384607195719848751740162434072535242351676337319397118131269779598372684303876431858533105161917182379756662756448030847729743741812071356269934946857417136442985938557113863323755151389301063178032352258011836257157181316773688807824917691396832305594754912124817474099109608021165670950729838653498200210108166261457325287467583575783504528979264032881697688172490936618044830515155583781857496812446196029004971142102490678101767067781041160424087717579761456168473384343376604988176112155873356327979496999124985074347320696319977347340802517390753602839708177580468383081408649438929302624320867824972716896685468329287268466694234735204338729612034544642074831192189011274885484519679269039140003985397183448795121037291330925188526319586992148235645480663179213914650531796190677162853029276074056906450622895688836511224655092565063183361313512243648372267892065136224464980126749701722445522292881388452111410700227547294885060542775412441484680862960574249670412269870903461580106871908203618923161672918426115336314578604536851161712178782186049849131050297531312362705409908759321791868395929326789013428242891550924366473298019364691392716381369583342351936826497361318321836438959283856060162483534320297239909613101354365165697217519393421774425096607494710256977819264512157004719463382237727115012517259848781880295174526119250829724328170651958792197103232343349192265214189785961545991966864981694226435688747934522623031136435996358209214479326729890798295216212454742167527542236432060956041781622600882965712596463007575998301620249313318689108630274567310812017995165220586546102794745176872490208934156186165661875478178446667373215932156134881080854121135221735140928206290397382861075102777540160208577959567897320089711310520164089333500771643681021273131196939501526491465635282089105763397198522066263444743499827862700053963750107680946652023029123260965749707318418972950715359849638687025237690932622370274895627078648135355270837968126180929840037847640154240834503188412855129110070685432593704698889448833174374881399001516643844670520735382869258802626403490498304359700775721854445942367644135096544938153922185748312882352760886028184020408830245591616233999280086549999177060123052258470850086815814439637414174340106898344490695448784039238406113624562085869483155629933607369337460355516692679628259755476413773553538075495953292750489502468423388950279444887548506781922026596240767499483612670026002370047266852773240849051106835022239124381618398811412307940173779668446999210096337650717227228752773908997920489691619278506527716471617736713650329975485395535326216799850158187503834978223105721806475307429670108895978483267686252727557084410439982357163736052759279785902465849532065244793596667042507401086137938663244627995950985938490673275880105083931467322659086051071219507527147074324012765872957368719982358379656182810879091181676288773225655649627822079022014383587456611563306046747869817832347835511089691162073277562627519479626975539498575427399787418937535018852868497637340477871662457466636301149551737829971522785921848388125262742653133631439818002157205351333526429569970327260746837643867490190081034754242084693894923758349018755795384611227495444277202529225803403720964317999188300453913644372301209321909943801167092480098178349242432456545817223458934191396611172513465247175904381323080870070705041699736176253896681619869406569612791256321922226089877142836050763954153097287151652535791567771215878147206538199455933100126828353380826043509480917347807355008904901167997590563566346635103636251705306184316540207287705520963259412961626485145707196783107368199146000843328439064193999808724257627836942614938321553697304674397595049092871601519957019843526280131467429308748422632452530436695943891379960991235894792208913003608168783929728131466138096990185278272964114051841598430855349655408165509912608179624448849500255485633433208886052611879224485522193583627272466870058400846447098835922901765352679100635312024985658349347946689461886304652193064748418326454456653524099669095086577288678305786504762400097526091349357683410939599164354853983874996613595905405758674184781005473234146228974641833679927742486480645261805085050891694238024072221763464606492614445658871090010587093761706669009821536875499655021034555270667878620561525461774037386941499296509394412943605466774198280608943043808472121581301410791473006007609355165913735445007293644733211946543551345653823610324123151138033070536906185209433084802787228391832224057983167139645122173492208766630487534924337820401954031352934724863499053725391527780958673419345736723611331016381834950427288501754716902593212755052924180318505028535081971920230935020723108705545673774082003874732925657032713597988938407409189313840281939791612041822597200901388155417756752478297263755237570497611589083346763336123273471107762114160654154093146381476639324964301425086319362900648493113210655916941812102798153948931133552195472935710802517027229826625317535871741433022261472100214578080748803089111773094956514765439936687937047146574706924927571445028180625326082858174153592423306217898516891079685329950677649223232286605050302572062853094486101763348799211334644612451686913490365259583155791106865320946881938129328873782269205607001279467279181140043151335117957867329631610231122901877750961086422881750535291573889786019334067846997684973772250795894716563973308027265473871423415971957849360701481812230062327573326552099479068848375731327466753774493326867755185152693692610612641474673557202797616521476395265677467630931771104688862413781966077258881302277998905914417098875214352650315386386221157655893916993610602959894678351160856604811677667440207552257956665873745208474610762559794439078814474527820931903573620174169397001623665140395658143536812107341754141181688701586360113003220119144406420695767691658231672288495011944360669125251173514178317600706938477248903027277044172783956738043074184180961705025020672341125478823188039025228462581734258110551812741511706326028690502869327773703750918736448084364813944922612111123315178181947263853098679594858891621405430177517686393896303515509843274403153324232589953005785011112072218033850481925524035717895969572136085942420846907611429072502908122412052416670984903967352005480119421645385201479931179912891321190492347587948464951137588708477154111523135123284909438612607282434064490929460827275814311512706576778187454443863251492813432607142418538038444359130834169997580109741067796928495512932199517005453940419549221445611517789823061325005814119803174297798481175307255196698855771160572322250883035726366038666015758181643651467312857800033307657855111354931879596446527790699526303881179736621968383567984529451879648686071151370162995365060142938265051765782404087528653549626927151175656119314346500882228972638448883690641081412329544771346881104835297739060934569832893120645688132889907028723899372584652242519700192264494240646179358126257303334478000628873301907992173445786050627146657483149397813841957944576966841525756308774608881866310076921107004926974225754823913097489302573466954517633305370288719202898545256513318336583715009348126896952782043126645595303569870069971308748228473263983713008690906945301395282747707734930849355563131373159640952910070142186108167778171737168003369372518197695863134999134996027845520565506416390646116730841795421069000656390259520173251354353204006801341331850647737277757710654077448461637004139235047832113658270614308358808296690929290531175475214437789197735858623972395476673037125620357195942463598378694375621945184249450190653788712130271343832299210725953916463049698128082023355539192191456932409958806283578887092625181010339557744514058986408013926853770726632876106097224593627823873347803786943989412347101629149293239340146947352769413981612028581821128398087901451065657846371674919526766083972031765370148140077698601126052279789276399647719317923502994824290920975615862334848495529268582022694583961868749174244564798262047585093570426192487728689951916832111103584474938426147160848544191481849602494582406575944211937281566379354027032195765835132195839371375427007646236236993049774749185008052053353837275211030137567369764683031682709809682873515959938572890779709343181755737599433368711625696264178715540265350989450656770752672535066183269225966820484132954181494168907582398438094985102479932914104845374862238203457133623671499452160978301671503979071053916941397852700204936417707688228106054093801918056718078784184528174973414988020781439998911894081683057481296055423651905020561441308019304680723576367924298157952764480218978280451180360140418000190192563238552442481173179297574640709560948996594605902452720141764152904984687843952860088432882470304918638102945214001251816649555925254757402301708310215807037948569904027147455612622550826979942182329299226597550738220464505315147292707986006395275156092361236328753028626136100404142531828554616117884291556728516932560051329818520008968238973339589074498444416992963906416577474747776686049813104754516907489779527450964423405864836331249630103433376941814091223931696912787356633509422727625307541261935973984406436356838690473047735707977366185944329696148626454738578499693631201582914306588863081762783620279026734305612261831523284847520698027021586988538501939144899712144619364103029890246110043626690775179208434897892869025103870088160643322703189092009334091268937891411904567036351964012496095554162846104825672416055583763228790017054218065018295968564881521194282641348490532015755070682429362358917178546006898460328921021642720721570973954223006036436257662068915716525391920633267657806220591393369422833933287522077921122214210934135368784776959959693156047822555646885020144133715580474289259818233854310746411684561608497923965544131442489853744421128784458678971561796148421414101778487588155318536600766659646526475160576523462168194505384230647708071308607923054942856104799456672039866570354480431845386063850794173420516400535121791056787267826143108491518030311355833727722685242041109047432352548892261165236702809675019062261492263019397984951785224987007285208963698341713972171523878028441175861693460672681431093069832299544738065666773097520162343042506155974140134837621860919710585181803216525807835242247012948785792108354906598423348182837465894973698497785772464196978366602250880109377374114634143614464971898207986775656842550605514794977651857913982440629397266515971419939785224564824020404886468660346636716474318457224579300619707485791902398358958869188676019171479942696820035421213622483669830848258234887750547183500165011054390344425141020752123597880448227366025590716660891163816612114741413767455780575516322577596347273587672157133719360656717803533015126343492729759981236637403109025206036593568137198397235986494166298169848359296899981105193942855884042335160813756860451697671533688374756547025414235400620982936125730013529037945908449229661105861765105669380160873473737867627176714231566255091825315303988864360955273930223219336146706352433090101801174241027862179971564879615742679083889995028590178111436674203450180169708245974939630365069283967269881216689577468120291611536872123287018280705540262861993939704574401393104440306338747567178780584807857224574285618803132313522491900112623625723121749882616563313394755724392681278488498638118405064592974682546961141498660373819011432356168931964258186495082148636092487415942497192874764170408945811131587746397051897593069211295972820376026201018658011904800813997847464741274062914985940177972623530186780900049946584573680212155397186680689885545784618780904918641619644677599126123351516751680055970310847889060089512904919891489015125540563061712256819293561215921381354738294658151839492898766605711173314342349540820034508808873688121386466183051518802417514257711664701289743493177542044349875475369026125381023910359950384384720906999617663017705460009843095508260922329914465014354465220062032665142171109767843776660446163191920852629532962277302938658538634350458405339673391239147110970827957454373095714485405568765932322079220734605541607375469585861872449907266726078244499365898755920014177927149174088760113584758467349454536029933895865135658591067382464026179184482286856584895431044261744249144442089199925714721879513442172117010036815242027588105510488068070931688282202751793268635546262766128246191837723515129977254640673526215312482112482177419981473170625540170039610982223488578740641694283333550598145452605720992456131425993067993246392191519360997140187505905000094259850154857234340955962135445067508576400344872244752450918348068769376282596152406502620755923092966253832563433858181143265340174116819924910774905276076586452950778235593352284488077378333399176396647063361024803077751026468732285204224410929319511484010924760451258604638782430639596325521573875485293099019378835199235863836383785515312111285842732308686254154801922119532224939284564790085708292688973857070218937598952925998901236626048505152602746659400878516710856213385760877771618782704075421799923926189560724441505204966963073891858181905334161377067444702519702060050829390150494368916619094626376737110496512253846699353397608385062745330770040980274773629916457299559392768318922019476495346289748719897028628738195458285999539772643496792414436836112931008552385493076375704387656953701946750305433913695941277586069658526144691269698899764778985407573568121240839700369457075964877443692044141836059500510561351216438532809185726632175491048536245158818375241528481559899427033316819544495987699569607643250118503895534611850561690650277649199313101398517625796699082579098993756689197437984726983602065355980081272019302406171054968478599265708966963517176697007033334313742426399616625093105624112864997540459300150535958545259572202190259677694202358069054852719199195966897501922093312887082312617744775079940758845976053004519126623814707518412675575489045229678180196766395221368449708595675932039091380998623748146720027169851086091236912708193941853222597853629015733491374146079928585995178320522463864195361721617216570396177329708189637692024288191176796912249892719857174311998990348051267425470666962027364219176387202256352016389930638061076232934548759108606843763572767330630637810654676825099898259532943103073379699047983316454217982071548037804618471765019820732966715216711122144714155120089562143089769327471703109647689867328178902021219352487295556830970526412218569123510759142543947475344650496021571077714945542187855962568009011176012644483483380728683769764730989731332967896872346655624859038579130206653761454547110349217994635629531069219624960853825830428757112716984296615885490898645603403001087671500377095733046092720965037833279886757574923980199246194274777616804393486349267934355677618676877580016776515485783186995181929779015891748158119995567007488351834555742401035567418178295689180432769943166532288818789026090911451029621737017798114891992952993582441393566552346176298301657764612453300397911836280946351191531406054066650893031804926061952635231365215229700505808923694666876762585151109003965370258522622908274254358014531502161075318987892182316593188801502700592434970312410586570409079642048625267362515318277830370157357129489274051164025725471722078195327943450657538576147003644226697138341914375843688100814311534209752938971978231149431360139375794522206883517652586722051978130749353483399296300810395688652020810513290874486101531170100626852176668757482290663292842014672847062367737676906862565253549916251314516648014601041331402760803387652839584145452207612372547331959732194293366459381101541456060891416080235164363790460708043905932980329662928123781027925859447868137595834428174232232543934679248264142191921147992138083823141042994569962193442593743973363265239892340377408885436131118989840388489932407999745534896294354110064737130192522979669697143883172643910913463604542194016357240413282151519876928967548686422520487683701374359785004968337290703982318049239477719697516931282921421455085242759390057820069376251170837287352776946706503028912680627456761741714753713596896696536797135091411715888976116860709955991275906906124057482075666676635817718205436722943390993430347716964444164091700836305903171975277628284219697409755902559215300723827135158177024601246917029433853336481204198957454290483181578556466592068283274957122644257086089898458002626244062181214899676254423895403410444347251900246403916372034243851714183613625031705176162982363771241505127587485194274295800061649718895246361763720208764207515455250886236237294203249812590949719079790122471038116192688491964362088450642010984112441721776553969764018148214188204148193726341153040060370765804113058618332475615136641415277105466755453303607357496460752774253395315109077165763950285386211732057723385820521155309620313668370961593533969293765381375147326248714904762333775194600026611832899032620836111878059981898065367539430806160665360500159681713620209668530385053174741553415001661613207325579691968883256363880325728284419023471207109319914788505446102623724349346312724642170744980605745234475083111292951967103629684529231771707997571227770925442091923219298019143258156623006401575652620420610827230492668649288878533392818816247406959754686747436384500570557755868605257175816195817739368937296144549018828921354085024020553091039828164372423111525863763921324183967526263109137025522493390743849110983404923338710783332408347654165925709775048405930758238388092933127390249365509528985617112644895837885767447859678234384314743280909914103646182931744458191273889591483744443192311724586107309396169099724703530800803241138254204920118443632413442687963427125370962888073753734728618355957009654814173756356249994097210168213695581323990782892426667773779341773236965832333868773040194440532103536991807389238408916017788371720934019919788117810346892237919588765335937544785690806244964806329340763334959663500416055020706727693031426769766633894456408473359289754904332861648915898065998561715293823596670087951779622233753759560389655481370167798100051832851465698881519599876462404898062791283944799049722246051133008374008345497476557337825576165861311508689626330705226716741569845382937291169143623449255812602612637618405352046846841228539802804244365446232314266610407482962569979421090862274051351836809135714082714110614606349822345589742404046383108229912691582542988747541775393372191015766681046729396299405036181111326053224127020692789591517710250260898880339892985168748546834317306449359513444792993340138561722557438544508230677306703385879751146026003627636064961205728263418132368180936611404093171785798407989983823413717745926090032339130832553500290043278355023863880824243140453084469613625431009895804914664128880350961053366492441066037928506579177242327739570622894563092477150299128104914226686003335245653701351380428643988683090054416985268452459630469219181369884040725238659959296355869690116990130207920187619224524185492385490665733960388573407114578738681683737634494387444314207865279259701639066926530946457484113699612824151360273744729854313161587636505952953882767896284370642228871331982325607545280029855540671036710785765323654473597077391927335399960297245602892416027741048313074331659435765458107379419352194921763978885298072152907946001568809787287233627520070059513998151911504526204924079122455110005684868189317022227706042075099054566945345012237576654108726016163218894399901392700216871927798786005284079516722204171233016212248505581583683906460547797893995117970568047426940056974239908760250013552597648087449249125276589126500219982580430093729825420747165866364832968168455223475011314876240734702892912721174608755534319269409971965822894620271718123012327284851334403190533076322211892449228416590841214385033154276507920215050535060223451057826802854562228410070090533505825889695368305251829098004656914706831221399797462822626969186576733825227397522324535175427387300756982568747269487505963406529771513637663410391127666526621196562487913487211816248779562217145563987369529812741202287959000667788513139383640980466209116171345840261138728462572648181495242690103349318834492330241364448151453219114546287224088332584837581988158234642496743100241644581188022527982454431655665689668799237464465161666451100719223050912942397816725760465545448538122920254775781829874765825357238889153254183331609070117534302754822213039514191872811598345715485369894838447803974406470730680566005190113507017448901431209086165610584683807174447936194992195749719191370720477797282067312296032310186925296155212681397170959313012390050862949304986528808660559694099067474496158971253546248935165461536821412550004991421745969116729415927770369638821907584661915900485376133571901009630083608560179667524617141906731983874776146027696481254241592133963959263794024946930788061560250971217251293287709229546080588717525023127708670728130717222175363054203701892600076815787035214416502769455716214691720081226754517604557051732885184035692914893553079277227140073722748885710299863657133510527415799962048858769185942140495024446155161039251552089088289851621684492396926746431353993781463465470061279319409500874657055706266619636069123981863586708704174413909692800260133918708625865595186204688850120767298457760742528339289149911172496649287271190265696065514284711235873294841870569680627018510927011090730491046139587792074207495159319512557898609223408124430612963502216964182672648645252651983037543088872422601699603947926625260917385120597636900636085654422884740427611129036720365689309245223414379891634193758338506650447994576360580342660326278469449595664910914556039428310271985985856333488870189721526364083400935738089110484052573166125346207907326017847715919740685127819686566936181932103021017692429940674191556095163538720305601449179205972186751433978659228187859002654398657360770044569424423683972911609036210655195739956159125632956822752575469261390374073887519495717420087627030535404331950659453426039512619426451586559238561219741954552448724272219048926650306279005494754346361038459196837248295505974436567966972172722630596791511556732973060820518102105818046007760110278397184470858144269358466999121768194608460357778586796757332396339895449125024340427310819253257231610885254629187163217214625642345387269905548908351059528192441689081248844821469897769080064562557234742396643544269840218283380710133911012025354421430176272044284056085806943387166869591226856641483306070893780634388993988056836623336027196557748898061099278631171939382048997674957725691175673483569119704440118922942179246667265175154826132580565943688937306823005905152854707304910255966073825145691571778321419280822255784196733005391526165384976376551084733406228003558238630818318379509877488293876134716225802751824533679669551633552074982495803155956323792209263525045469546819699971485955147534488083562054047851100605658259247654476429156658838801428281714096838148689835554571388922822922238827704593737935027662761326271280757016938653289647721300333916138528356530431198117649111776845782565323334500707089777635826279523151486666490246537727402467070005024895297923545726218835731328484633771342819652619516123675695803874823189563490273656409958778006477464666850969068049680391184703752699247779789140623159763522560412715900254120806617432955948287625628360873221794337703123962892738071611427772354538011530082998988731927070465384817971818486532645578007903904804741030075576007068560154972382600243018389888285553123288145379663373542773806385449855427419529323436737808385417569777884839247576821507777870020539283084199858009803540767998330031386986913776548764515931456658936760781175230222844244509788316985057395113530338904593626792570756600139645930914547856189513508397093698992172585533028248932879154632280075847061850022548431679429731394862085731801698256995170464070623504421494816683440491484457097503167607547801981368570267402130420890372198723757583461615137425605417121552904573200652718312528354135083535939583291227279712266458317027776322112726157205468569351398490455973190109308329914574491030529335599487295839961187960614728402552518365048734990525524312135796895126476747473176643067769671415667264166975978133450473469073596474349768624042254026612174235998894401919483874649261323153256462457381122595730045407042285261117739814770926164033211967630178424657515225046412661303032620045837063480825606494591139426510016195239752316014147704393281704449831152689804082951905470847546042895796499263617395645500867632743412452759935121612954990517036535390961341802163405412428456095200288816143257634342543472651621106058894558600443456507045818682577849279514881543721059869548295379185746629025595944901132066082217262066853953014953802255289708387554201346249118571949887060833482302308807114098120807434587604351992104059457826188206033337884492136130133957204716029045882594317721737004064744051356609926869074897027135425087854400374448326878954179685082100711253607510458574951610401884881206363726821559601492773896010044672646194698863508359608098969879251201853582825829022765140298292018383411948283354424483412356520637424675772011376452250058408708627092089618441148147342898793514735822896411257039678002000715727486192811621242916170644800944616416462792652930464463851182499670785967126333347716053515543851004867354658032021944527085730356706413823721299162770217349323900550453725952707194140267628583549261326583386747886822916483018164885560744572628329890651896679128149095691745940699817048103619050169408127255011800237865592173755253806635084225978057708702586698140886854717226377164066411313015040703058375873142621215860266408252288135344619166594544791681080738044933176688903009114594975488414652653887653687040403335978533783391231460278143115480970875675237840218922668477610628283753250657764337129072581862003519211808684991714137820050219450259267951187287567652660996810517874182427372519165379493184485359482224034958279646606759359665597371644944621476761462650571802231347144894339049870484303720905641191573825525992186057597022911798016606406968080351118036836969380207685987949125804138408172368845378844564374306821839896051790343898574070438473793420699498860732577929075067438256442668969153728773432484813674852659210058778576142373412176906609372831863653010076167125306062393332294025364566049394091514693471178220148131128943264680133344223661317455844753389854899291204631940040621851127679197982992964252765647157224635019848996263173382493946435048250246364377838266817921747138891472043934048725659917355801634891654617014344812968874539192225984540059924946983703465132700249053286408161456855064295260296925911345294308249642162725173365218107775788795918702490884626294621112667159226557518328809308815598740026441646041355801999060298517754780926666601675125074091327861856274075715642435146284716841696101472248229347077221957720634673264804690444890446601816944837864445311962567697550893762141977949082391562455717149280213068247764215523752044649438780101775193601960293617323884821184834469422136483102500048478985189348450641597226386644413055878958535583620440214378067440687193130775232914980970036025857971344767027108627792088432205882583253229171954028200714223298026175444197856304233070214726654859149872790268669659560672692951437029303461135254887009947500814700676936983556138551004855764893608373904405995428667355144763436664054130174501199267514243697982255448550203176894418769850771309580177500944177319239262240874177970864164773811098222956237075508739077126830692259817054806905166724635780796570394124880416413596391630860633506439476145908466943967313945157522576898478579141879254727942625201483815679546633010570883974480204927404442475732995978121622234546397888639748541979659432187906615416571803810225012686848132980704803647622982309285556402862521366146505348845041958072352691238115145774987329908811386982238279623187608635701349814255634020784622601688746100150199669373337503390027711882222471901736692168615764885716675220742313018418778512015413288552753278230424041490442698947852825345325239127055319710397944511595787506776052203738142892934318992989474524761223888011813779521395334711654656406685410948873299071245909950855886707170399142119099618977071903415935160119023223724692423736785138251661573033065982614270844893172874351477780044220264594612631131904209387262057424703815577975588743231868957606860850099469123736592176706494756079387591332838487468264498958585046716706641448203374455294477272803914864217422328887554357930409003019104541170158684656840405575180698210813761319013261643909856813774352648597136760066320624660466204639975604433643009456505696590238468960971386728504289742344103167822568333373754188732054955825467787879330588830452724231966433393244842322525251439312234628687304626130821230358592864766842287791260106679797295848491449741358308073507283181499435004022120769087228742216241383036937915572999808451418168845871695001354197527767761747391128457253221244208470984451867504647833055578850718615750582472991866100592908661559558431171507045879190154251655955146933958401780886050042642490147211997013324489923516466354906766632140057424219905884240510758364475608348833665164795273175170769631138007559792743371953324545062993926941147245082663608169570247906573926310119249637331228885077745382309309765545992182506530738706515017885259539260002333399421508478462505875403262341217585402894351202508607092192494627312524666894699974331294550990885690502318083055726225077856489600158531551274089712361802618848681451939784853944832191862363921969636873042353472221121368707806663462245971264729667975453487613615058766646497804453701483805367580619150041889693975025511236538244688754171020861880217890198979132952066801449596340839493357085377439865590745600525895016906910757370855042958070546782879003778896734764169960286099100040957381399911550952856719193013827342476470382530372855224760136159935347828954417679732826492749298774641470848357308554527181099437840973367140682991398467709147575457097886268616161949287068437511454628851339122824132572945516193238401082259186783822903998696506840937982491056095971080024914266040525300255601010098196424714198590340078633291963297936984477701820114362868774685781209144949648406248763784827984788208392942902905153460628392048964745674756707721333622766135833540662904289813350329531607135400675617666110033324141869345221257025118442405228026411861503507110626021620190947259851528244414056923476507344047950931804592321450153033976244874636136903602231134637526127130002086722763998343864604048045136625418648847976999894745914582005651213263581643131555315021063776117566516420035673861983144489243690884918638758239209842950637474443232555410633633703104189501093201323383305797661856335599348080733518087025498286267793494873031475143329962166777525704149081396807079003704329905534966912706581671540095200839778688306672778041193366450188029705667583944198496022187829829506486333315259318929511307722713795763767495605871991694934196134392410442867897967828616874136382758223348441247983178064472964775895176825433907401421178203614249158178954153270120273328011779114470122642235331059907246791004409087604201675315496253983545783179721565977757606395824279659703591569347370463415904382420620477544134630489025389726882741587271298547374425683591986634201134925469745455957531502538017694686655711817954231707508957540979210794263020321537545419159220679521381083907273498611397020069206534694919011805082913359446437246435341315404275355872553177528746077437778353232484502593800301631207625307838728208206843324384007339599126700986907904001808265075961332149892215820458904640279109473136150130261617814111738149374458201990480621984671264792113279560405977773090740167571258249453951145835316101624208540427339836223134006787002520770479278342398263572127204488949802512275136195961659172960425341528297294750808511091755326645672411828708622840919258433439837435120730802817337353109801804758015044154257719288476281061260444477197950154320646269166595962641456645131692267477873399910646379907767818607265404875317847724417100295281685356051441899370419263888742228148272355236551731390709267114718325458899633676869260511030888219464329177898087720475506018774236468981848109293633053787546477524788680033302046326581555149357641092118498372878980616411490529150633586218346215654752576679378311492367104163883514797628971376302180006789231435309551411238600915853232084496762918157348405526551948921060803298166987428693810377879760706591470836092701620693230090460184714924917219563233628605836167163810730412456209771804922644042981052015605061296989173577022143470571038431172581193073048126916516117120334354987701332711217391201579604915064755357476685697209953480652646205041414869281000152045556915395948309731375111542423582726008595930157504272201339584681625712820243095804499623092099293298830791169283717624542593868686527632055232056015133001028773148913376861967802520506257238950635419267008027415711474985494132071705546268102224927573415438754893986992825946190544397552469400725379447032754070229213845357042418270051495749886631050265719030995837148547374816984091012811190625085529093780939716188752026337097656348827395740959231680671307001411689763960705214743871781556386137247039246354038851343922559084489742864687868697797975800594511109027083570691652750703037378177643039264676362006330859277126412458422095324210102843919963934605424307410957416732970509542870956013255413785498583910466734966036771345061401714804040258642537067130255988134414828118707033671992413406758023050536579880885578962880984554660519014427263572244541301757358347667482374434221318915573789741602005256368531657346172510376947359790069308261300264393512465123005876763928699923508363557591179619208729439308605884095893183229769257425776239739668044367035998030539657780255542097364559312356100115338460565300626843366346629338304599653736009840386373066504060652032387795610924626930862765689251497551721152060127877974890357346851392618549995013758265347502242244880193598251019759619092038074852872325041795890694887885489885328434066718336879297478827485422191958500109736325262803388141454415141236899519045880026787561704534623162289509683220035618743138717866755273722819914917786053695594252893911338157312048333104043448568841057873354883349737618529498843838331832849230404802977834107566077577923237084028549944311803788763511792694705127743130897294827879549639553243203973253397266046447364622505761332839267137938927765838243551131234532637690917250459042366114650492271204024880039258590032779237548845431852203264992668287751137889262391643160236693024228698833238497182375433648686720634167191456413172987208371689077755454184050154190655327779448815001342145807738075828752326059100108918942256565958113186855971076675708522348875370602295148828021993281735201619234337495912471421137959465966339468663169783156272760572176260682726869168704408771971366014398366842909268765244274209879402246495394784888337309019326017558826262749716012532883428991001714677910181048035982235235248095985339092214853430088072326847244844169758495648104937679342117304314804872461413136977801138862532591569316300869660772572482501214297648646253966238112251576928718796188266326458029822772458261197607187131087596910841634632193734586600390977476200424904121662254533716887554069811857950504097601797952038361736587016734065594683809476454839441788219104723940543539803808458845858452052126621310362625578360934623974300551272972726801663855497786281008933215375572427682766871373986108853907166050836666414011449936414306151226147106417411094833506648158355759630341882947398002942360208872620237688681916182462030233502495846256452225318976912684042451716767811708709808932993846996096660345685789549185374726605306593078265161109116393354218955825474231774020717195129755164333287035547066258250735040383589536648416476759210450221626976628913350020576964759426774040824805767350706144869497806769243913491156485092396651807602046809051806368718954734412730023706628331961316823254163595907879835274282271974948331568618740109165612846667101361817374722502798435049216814936461412353471914551982228755575073431609373044160498791559080185648717931936893231058560473311908910954576368287760771294845200919260906601941618395770316767828695446364359452850883810795491471921858498294229991560033570846855072407276884294401173261053153010671968539551913348357387343599168661397205249631214772350565266059416089655117624577081281377850001918551488626566985827551272876306359256913031857350356579125441842302885893279637180653298112337623880534042446370831450472684587512019377513817238762676916549326267524370308465508288615894237040036993921769103353242820233141861609258087403110806957924365366020944092435331202518519498755379225978533420050007860801907377220466894809290042349421449096492415609079810655329702889132627507231491379786829903528676366674599286974875047177560420562002474105081134282044012625318830634313712357287936967447657660969687636065849400287146592484539287835801329275555136048346201932529911901685137090484999535239467794178293746290189849181369239795484474886142149730788450785104036762437451342206195317379559676594083978442395370960095662817305004650395374276325033554546555922830084407238902039036579548883935836953678959622176920175836574539075553107744112896605203693060485101560480054806117949729456838033691682476619621571617828986391054024998163159863208349559215085812161831553452349596989559358865082794234116596608103465603742282699496093696150216167878452790712585347701630158987320935825607501363340772840659739959603006900663205019489745624996064751684051047648765608674994845565313926859170289109730765690819093321808166580730922409030958835508597368847154449086262784526839223317155742237799840996507197977253785599982393733500454449912772333381855652859787034561997830139684916059710522108242507613532333580100553233654270149211679113080172908555099283821565869368075663065437039260441236536652202974487639903136677663732339154238890511460718793292137360412271941282107017463294895731224931002988625044795221357535401425800356832003664957351449672656038093204240368711961719873294468135835140870695017124652446368634497546664768068540962111018549871238095757939844489758720429381471252867630636836183641348804985702411748859335346996225597448413071177599685224480011792884628600478273719109441929049904684334646473905710051666541568934026478801596750979901164027597854158579783328638563554770943032980730579234750046042740311031594555187476740228489813399353194106399606422951500757171718773119833537360058573239044747050652733828415697261773166391815088078054995890205918574164767236471453124482279217500282587778229534702749346291710157877316301184237481677465071451318083906759744258902503764082844877213419874869809423661737738565043006713048546436822814672304054191438237067872218067102406413726572216942275939010069448820220873179759162500799243744847743537833597733054738156379974312471566893635774828702952089687575742364070372646577133150334639689368085890558672878335205360687902405586802575897171516272772472160406514391004091421724297786621578924072809409000853401956708971316320767499026614598899381766202830024820915906238845148272635911051089957939303172391761879168106560028720086693573455380971603496378628640649695395812324163789077052697257014249510321541966297918085734367215632089602371727145659222827240006792464852619233658218083167153101624801136369996484761533090409073132558360738928537439101317335360072793177973482147848697976612620446971133445076270144922085675682042157759257166017935275870412140823314869407100731996433966081847869639125758306353419953476459726577577967542932586887722372190234315406995462039138968927631382434113838787785691032178050947244035536188626754923848230428797964789924543743082275248149826490122183893671559887543673798278321278910570496389223368849685566057552082004366771372344885033593231270405238208188549803142612068967504096621776630290064976511419855908895771954386379290669558521533222196137431306786222434988887044514322988187394211566165424082747096943399002124877064404356453017923616969681920633682720401541387910687184306764644738934135198012423080593609207414631070850102626914549136636716128900602537814636195537085978158215358078549712662619884022283176495340257736065736980336104773006795898564472996190681224831224295831002357113354333569805400736020963400758970517489811292042951349100837349427364056917325186291919783692562400453057869285118418372080773965103321923075033726092024960591405986936180717277678122222444434078521364041699084334484937584835830609979153597581449348455252680993392987531515691832904282709154332319670936469071247467570902709837337969525395153536951880813167491930952544385196187949395236523887706998267839805897578764112566176959996774742168593183896445146963512039192589020020786665533791781502921767177284632116467644502204451564750900860051894181849030690176040594852569111511693994709453458170502999893513000638205004871273765423553209695545126108239052387307692973860811476974017307923659373736413825835381435041279508265902150496330155497549631126281513669335648571139078612953391400712318806752835596755798772728724888669184046912225970738965175156299168964792310974034077197642979546348583413379776192732920440851558450085120719064477375650723605870213459925819893350389262202648591156029602402755369803383766826011592469365576008680537536544879710639912193894024109492999559535154658948387995006037497676501850435333680150172588065938039024482252717513178666909169121472421699543094514351472641557077794208652690774362279876523461326683264291329190265313536946459310280693146965304071660149587905788081407993370323231825034901086846629867243052568848188190250735054125416063521756421877519526847094153832206152620654200923106954363220967006936334675715689787835388974183972903096691835336130198592135785967750304504063121624182252123079915861515259919925744276419464586313083023494739078108749451842249987020631827250963812339179415915775555989109180432123437721630798781825965350463394123420005082715474950076325760436131553984225920844249780847562756855809516727639132072999786823496681090806232514389811823979564743232811658626309235638780399754457287143745315962168667336837148304258377437082940440568676366392523115545039814558986050706765268620350518005855456203531453659435498944555105894962152407063068929619502912032653249607291475774425004347375405112007515361568916976267170937096475967301686122553442915042782319150098630149211372636901286451634291989726079746914313713305184631666553727653036497096257130039198346894953223692464183844219418382096491235245461561078401094420361106005273355300168664055539351536069122439883250757899450197830417572243322221380318345292253228419822497053049657111954474535419610729044028044335322464617234890247286725229289855847960351617260448137924763780096309796879518503627663317448433441698958355717991091810254113176017516499081536916591735461481971114862902510592264659512102592135357493643537996249904431325679103475298730449053032758547479380640665783238975307148028554996725404724966509974990686078742742167060937054616695323972985432128515762257435168992276212837648289743770573893205773454311973579406298660655305709323442870630966385470568271155468854396572275361869947865726297075769744613371299334456354065475497509443579020761119250531458554201267010897302468327177983568332141073045101549719660940853943996485967872865212186930022221492815910590995435969115070450156106173295836486036190060693011061625617620814173468642990862485953854670007387445971723026976169181910088151637728890810574902929691425162949963524597191409580605915734687937015006172988376594356082494093637331551800519725132137655969760633694001128570572467940866980278433966117620842190718442505606257254211907118951702007609428132631198253549788468895893312072893623847944708346171796110146925292628274135295270569049798406983653429698600088177146309292124987840325381268487311267222874161152696215023286802527496486626862695476163182947054699101575093873557451956624496370551592936673921923778164654534119250499549788049619870408058769460018222663266062645346350772317627338501681879693688083569770166503517320559985287147368206440499911760445507032294835863328660155939798376661858415293921297423223562601737079782721864606207453937180877885874323800733413051285901741764552170401943499622466970990587793899872693554219463922953709514723400108274363522079061316199663119631034543742039902420876742597127212395940955444040131020157451102502805773512581004478808888656111806771654183140553430157787673605235366490179332382909422317551420234396018948206567694697530314253018448546586865148547562576690882544004660944904362956509989722349891524593909597406084624599967109893026994014161870419610613352113450960880934584784013783613120527881557379894346384040085189296328249042049029463907980548148621721996569888105909242485569702195365512305202375486121449401564249580333967538574288040056772455305498084777563857586716024416457262676191205625468185199315487094639608082160190814738751235660466375831755135591034477799698576317861678174388538430466719010948511703975248514302948128402446579610098582516600328839473068545353619662774956884636313590650058342021576112458280229373914562747840751506714597071159883521357702989340042341953396802862123380977410951402433739089910035203055266280520294195636808762119768231584406484323142122856972153860561876845439799431667263581655570337258417231335669384948875591890489295690755171988272510002429206523036254677439628168806623978430194591565635099277663438167342257247753918298006411838609715198172551407796836976477116714400082835504303962979234759742129979273716305956009737796333619560725772187609344857576753283974933962768910491200403188817334969615841475249826220018826444837012905475573896923370081691683514509730259074862660796872639777089743935039331766130206740018488386265306860613561903622764396090584487917816313614217588823840398216365655902500367494280031729010484874633393458696976558214032662720717218215952953400729109868727843192713934712937573602357520718775026096442170002966630870254087069321736500868135764592146695786287007380394878706408099955646863898118681863416847603292197218011364282456106828221917075324142743202207567918519830308016962718007586065653365784031555996837697763877324055641464086436814757039649952344173767869539131564097386315430811755334668827990638444845890233231644778700073568811149545623918664347407928768754124282397313838532492041197684116188777700204856728069829413190228021730197396485629139447716622949796946905343104830770420616564514767948011958064425523629910486664263852908271630317836280844548919236846796243951117892133796569332092231965733609148514504971284730714901919313659683059484542023044410992888213353800645627624995516561967298728504948439590240636750474399173535294082283019465864344445255697991177224531456102289930602500283164661070091025217328438799141769249945717621564910274602186223742713612681869362514092983553238568260411783052049090222874059304821958614484439546389404420430578897611820777135179904360100417474783377279932542005439287286794857714839769673013715606381355202449968121668821435445144751425839155098493290398581873173491227298939647988273760420931802553432562470662379531525995914744254039232803097636106270741717158295987835733706314771389271369092717344357137284609791756479175391303150801301024448040166390159611613716446192553468824305702383824002805677567188151545257576634888384136229595461132490774770788772406989062738988458701965129816060254875856420335576023420820596831478623866865471646026368932719912340809313613909109132930051538736036518734413601684562744830884720710919302179098919453378780042623308918473492831865993066694452080967643536023803470181715257565134482270002613019949091764854249219130287045721127033514569118926073660961868032947448947516730045874750725380746913035262962196882283501695405382553030494446159501215721232869526463685227141075896854228390266493644176379842585078270230867211444783104714229329113965528276058964629540747338797679022461125517161949563184481651343916555353478473820043486535747178326284226404441498801688214039970204630105584908124718524997035449920555750081744306291090849151751487333255330962739216899793768601109395781901179146091263290374280811852921259147737602096046867769762796834596753164430564142083120689931420814656680244700275407056322487485700829734798575069466696938039014380000564524646729227129859635245588843747351349351776784148696771844185043338927584356305491680114541681579852555981806721607435036757784522149124851973523586197115552000226814286415332166466022253817410615097530075253605403944949395929301768554846576328470622529560947760550943398095176537270774521891130485156009353686300543457257854735060789255919963786211701162299199370763153113552067406632822004857551670335920876666440077036477940365736236920600868898048035131033793705236694971988426022987589748463270054330912388960890934714026285755217229023409029964711192571731422717266297972634135473456866253484782999141028706798487573480512806963055828904386047757138911605233979381537021803424144435349833992928749608890551396177087624361108806987900230634823726862466933515625836962935344220138772873040831058293288980832957887035257861878228889109059389495178982106865723183375689187998436287065467337119540842014077468658689806089831652800284730916648627978178609557439819578189584534010377366193386273695553587637409709111362464124569316037589761867698405832310971800462854158361252447661484224628336914621289469160504099165682576017593152717644721202090756796012528130288387696205236973664750002718590604890103393541093120647390866809649327509656426614051924261783965033237039306668434447561447777914657271844173756613996631466386787218038778581135644503567799717242389940900581189496891874577369350266109020429057146812259804623126327970540834231383087279359105293825714004560496289642973191915748608514161398519752491826831056359559210531926606813592432510233298665589542185522608722519145864909289954929515955168441451166034832619953670847601037028219617337963457857459354941152346381877599447237274820978737823538917010463523100364717959030655960052869871784874041407247064333730975603817769344299436216238092067504050160892814049409618722724493876820934954103276732252540161316272884893653297958166769192860430957629271345764484875366753951445728300495454676877898177599514653468334671034892882547057426798374088630464785220895485166228859114572940249727936911467217391669363361185735999013075932461090527792548846300704014670800640393648156837863381813688969560233223118804466889339612544398997101336846588909949437004468467728026057508218972898691401049607390667289930211455949455222058280708191504273178797195766123442849909802548285918972817972429821044945072822353079792543312725299611908024023078100881051049468264032902376692953684127837947656665451346515513246409943914004355917821933584325091672216399007860054299701154536726321956091963733605201367295976037356536196044271690232043348165593806734720121539530008287877946073106657099271569142506752181638939045506472096623234813535320463968299710981925092699204061595608316552079686134808303281577720934613977926297759218408824386291703490050060715301097107256632330306449788823558344167065963617993153432487247365641891496237575665822748175831752082499564088902985236387351063141687137748138381588505492585465278900688404184293157946876339097162632470960075426073801703786783928040500787553540587080848025491476902443115435570583094459512851971056461853056024842736543969661513477914454942312969597069195312639100483715630203191072403667707904732666904984206143074861032056564263318510400811584826698108777709391947030329692253335436680652036509483731920396781970539308341187244035009107234959179176863923675782888663281650035620163883193691057774764955926137078253259932084347409898510866836449684895637741904421409526361456933762237745504896749724850134214078728737152995154556866181049263722760553258573834028929473556380186973537632334915819798634740116134776190619210007699249379182541882271137171956735988121434477616359197116284812549970631792868663066464017572347115418230165974657642453595922519326051311058439035004848695370226000364663595310636474518468980312667566033033458948552873769471651211027412393840424340199789901849956457707565312005205639028998682673425517218230426114748250172502614380702111951562507364312931509394520709011152328399774444748280641083477586887161132347914792715814610900300239425678613035849808954214944864235048665215669790408876626054917258577079010275451351181962995678509295303906698036429407524703210111269892336623107208916442053546314373383330353651982442794803698592415217903748735758522966916452474740675748690655894491131044627520352991225097177577203991537534434354950151599408730951656151815446028433663264527134251332574837909678628904136296946519526193588117158246015094857869559992983372306694467618456483394323712647540977604572068928962131854440529040053647194440170351627868413833668622903304465746160080722662132895339670967145163069057636113753798578604842313802427829474091172477625018318079102004596036873860394655082382532409888330945510347403956245785170675071840523039597840147014206745788859112534870087236032255895351541463321623457644970443419561264636297860025950825712491240008385984947650701649341161265749493289548151938110616784672481219637981887023623445913942756756942464608886663232017395395640288123019891422334089990281044023203828211308631301551871481661278867351642956278562341665830501121510712334553750459929329249924285673332966114756926535986843039019165639319821738669421811602784318496428014172281231447864422657326614748470193357695318124950053755506514733012090151894374496262298138081888757476224601967861035372793542527885208840390933987765657063945051845744930518081760365003812244582185371427756502698004378128752364422092301180878610813328649083790713411498460791522795268462193033126462668310714303852332269879693994073616607910257803007095291475812272399471419848643879020463033533260323896685342302808236938772111931006339031633225002715899849792548114559041191523565800875982541862277520432284699578466500250122024849604414959768998193804303911569939940679311708357976546552271032290843766508511557562316788816894178312505991184490351503408091373108024198914776253016337776517065407145435552272583148890247783330282229945246020830547448288649113460817720147667276587753595408665189747033632106766000843576590858514476424030497353175571662886045640480391287841114146106864256251598144116758710308746841272844668408745698050733228133085135477714348913925933333000210525118877904483521390965144916306188905645862417340051519816261249850379706795281542696100081433205898293165390991861762997627750484791433395277567780564087515476771953811871647110675615287343025045520371885557029725898841009252289774091525953899852117956050172326397835666418382661712878393624115520935295695515006027128328493774077101652040358332578041045623609327550802555773205964675111929407812074020764480996801174178982683085581359736806074043601458636927930318683380453217083179695610200134386602963774099448415074679908927669225783068241960381397370322848385898371890334981545322618833957143168247881643833981592605493062970053857358489279944543412367313166125132154132029896604703335485322143965255095694699373723641657800454423701124413724137317583982159882810902664027765987988898429795516641892540653781452943741855203387096383763399128733999675791032411285699278944510607934589595278563248018722541791279718713741689228691915416627796187616328164748776139331209385616207734122974839429917127263353667900362595161997079807261463253092296381253293416039765216431040959117671723230090123760801691524847757390350662696084964611624763770032948506747881381009443991248653924590146945927985059723534884223645525327522807762996804698354308815968501873673351816884580300449578298585528194414220751672436110003854367991694111808438148846698945115759352326623421708034925807627799167179030595196476894070184690244040296825610002478605200834874689778112334310529591117225354088573530982212649931756959014368967398757760875500661181638015870712187830373964832573784478909874314092309832801667772859638763736626389655734843447143045936503484567045409648091240593146883122286339532188986401781433435957863560407015809701906446492433805822338171211033844934807038370474695228108174798635445841840964359922711323718379745112128440133689110185262311697296849074336966140987376670988498395485670660007698307477840231677389084252621095589428446040550866135080865734606661160565418314306007517285341868265921849498089295288825443851303974242699256429007222085973663339027156383971755748582027974356894801013556968280292842272763835605884195024523285940294368732473159358084049998885706894572356833855791727772045363308409198828047796900920671886284223237572627938275575105557302176290408439225423090144445780855475737477761528694285995430637852559344547712299586186553296764467771395943075580684249513248175837432373489963557158392297110547756516961917244732108206784697991203161295820061815738619438579366373316431275105788796624218772062306786676354145220508465355827871860168121107025465558333551436487377121208108639738150371723027017352052184208983124060602294743602330562222152841046776354158554337350314200698252537457877053702787592296700888779335294525906983427691432998743639660036403586506363354571063102144294326406270357748535763037402768215844840164477042609571416154581747670927155688247936167858147605763709587600156899179744784744249970154770684561005258358946591585000211938910131315118368720833112886325676870031315952682403328245398005706699776516130404487050050740960389474156186440188387639986885976528956730175858787692121861250204334522348542960330496574713896801851402896254501904479094366712024878569500011515025145466118919957757871811625151878148633872370729989114803808552032314994764731807185494411761897346133378308874977940821953207810024163109927949286143224082751668796548609787981034061082521337236176800169244038442835125771216189613240677970281554050503789051497191280073645793450305316024862790704474551803651828742149340878751391102129748672909899326966801516943239185571107050153084404326710170529840352189943483830476463374642555042001784811479394207300926900344436695190323178439936790435273384852304424998734930574269126523580938789242733339329184193271989996506339143786253128892870819388073047489637737156489692966216782206114609368087308908313977890309492624887357505802703315073631415795584801901163575130626043264512479486721212680786017102016401958521786347531461655008637804974380445448315824314342265551671273687929364053066655938425138716575529680428060862336578659617296691103804208286145050765768669305354953360110425345482851973477161307307905039232351694880744969626375993404303934543152397071220836205636544893345329603444291148927388213544862098743340933852929701652403258266690597222844223121073986066385926957770187222924763145461328256961904478281281326598816117823287278550064388060709329004448211326161601710609985799891374906907849549888221843683133732893479310041183152451279074637500628481149411108596606274405376788260896122761637467796293821579868669419991550523868227746979147855500406302300438187658755444124682900028184972096033478556774824344176437023613482139470195358467496089497868577184682561948162845844267376864925911134233799249999265873072196656526425828842723218683188060353394756430766665595107356213242744786278022636804086000341959678723480525237980913511968817473733422175150137079651725604864363700910935482807081828890677059579218481875994565129356907216215708312138760261706935921575450369681580347634330640262100156545576665590480021670707565164398106714131146448823656373619761805880984977697843395114501283239580561198635035413585899102666885676110891172891181684189226957216810604031015937210169057765002098851886441946266698433198352800168332865484211478388991113822606260551640573138764110265461503648328332494784483626101950909714392537476905156969597566398670012110224345339211834622083764327107312835811484282109664330347858210531270634352410150934953480294132817282400057921528830135836109439117793700708751883902793484586640909001838208052324537005633077188618197689459337476194018952780591407932788213141616998926377640478504504973078740051952696302129828999930868499768819477779082682272419288668139593350290665825721879472980564699454284527525111044955716593749199118827665351114212451698389924879520532610914914826657739109531772693079908768060396281940299016150680871352728162912845607358157217467177222443137712659889903501200678917710435632838144626046115984741289118233329444819055915457421838285837338396911338404554001340776707538516035205378459677065486680748863979378889161064091968872691852143762571753646371118199900943484083181565881360578843419781071710290559690379935600110346324100515289842805701231076109030232816070773904643266559635537392608098019846135591864550041598907606568599617722130123202699820147160774006884619156871838623649670629102738377115402722972697791295148841421797726112163333142574941586411247161340928413898032682399603425095524366314890048688695516146110956417483596126746702228088803515135598067138043195213574048510942427054786525582634191613163717651342327724702235584213952552456082155413675337090849647737372101963173602749718014506329219430000561822552205463543854192368738486646825124866931911110201064915093016742298186087590927634750980614160533174603800677599054326774601477963137389282966682741297896492430494287274797344120745807093973438312986075144918066524031224526246014691815607481194875663367887168394225984956248804165227122701956505499434594030953055183558021477123576130687969902483484636698668936840216750816604685975887756145884975064961533982851909458663917708600734787044024958866710445960416728509697076843235112867885790656634515096867562727611604029841957956674423220360153063435412479831790141427289759694308746277001071980494153826171183778492686934524980159030176332605346807476181764700763253149345272860024612154134270530249235062880597848204203747877974098424487808818300834042551914024295860809975843280792438229894954463043271239981126378843289538895974252601389676016741165593704438594592525330968143374566200665145154729404802974626409744453110809211953486567247150100075866599187892812501341329633614539582271022899873884428520179515782302836072646897459055063333535534615249278120689243136512064803185981554949179244088039710946098895194260773901210683077270609287290189532433623157947000179693443313779397216464111521626939471018497126609050161602063797840094562483965253970204656076095160721178693044540331476437144090710926655856169877909010982551075267579375993169658822097939368391739570839640469585108831025854465065595838779640796214714462557100099978503734661264455203613869409224122798474937856731055861769525806560047506169193917412903608610461942098809499027866049185401788371102101253562775280012232713297633755094835751724106736439992040130272239942247657066922109077086847274896517997870216108357630007087556502648206700637699757458302616114954751842508533366781957065910207313774976371999939266847170502922735471869928593020223508833648935385041681313014752094049261771602593782136779179436145632790942560069674595851097814072402746148823920179828358835711758104488275097989841371505381097258239792959749451383715790060643797605685002974771710112091291604280415889308493547933299583823493237597796304917113330998150230662625112212556568953171918974435461695072682691142657980227303312565108803377754190590006189876370528483154390462932401237805524272217975991758672898291304909446711033161221420249564249187137343635219163303591112334911808463463230664663014913013245667852647036403160977831861670975605778294405019046026799732691814989322728552273989903140510935288995306285179583358894167039110214280844691793444892805991126280261260717598197319316932871782625473185335083365442339406286066133440478738577254979709866775276222984327597363508811711319046781246068274926014924661904794843801566119008457029767485930078455815073591111429381508783692858089802285744033499043328248994527498896789321961855470933440210519384116312821953327465582884816417609207855030873430363291867607899258390356658345178985012499137193897891075069626495312018220171815604477951064729144598345340201153052126327896281274017255689189544322636765199552979191403951787245443848373275070855274869807842099931803637596037141289589785996886441784468351258767838312000748620860329877600345295986156352886852830397939213366712045206797367121520555560660281749066404420937049600539492767345736061769797952157863749334095788679854842470230028674045497347636187832631728269352879090106634255455054317772487917285455969527915227263163691534328940694975170907577504696323829903292454885942153782021184681667391118885862093569467386331081751458841536687863828383759356486436411456392281788998980975237067746341460720840482794369198753886544696946668599729158544566857688626401215356949770799812006677247226441697169432242238723785646897060530436917018354881235170898794158648466488693793837118881229305692690502181872844149008593498279777919165917081632926669489848464370998550104794287164312866186066734849976380113451126765217700961468501544471663545230864990142997744053018231874880390529996320524787776650968759360939945429087820452503978191516801365049846545802556970476447968755676752590668308004176115406652891796165527248902062216095582373708991657854041495470496296666490008982508000958981008597713788990935354954144553735292217714092113406699738405421353613135043516819028230319914675477366486438794287586409029022424777615103427579457165290311798790226799596430866015609386963386794453279675781931638118616228790102653647139321550653191956600948412361570620415386762327403883814920327690450891994474837271696097510054461167304881544877974125176735806285879043218946315621510268205190869060880922456808039535413000104545496416137235450468246557830168551145966985165673304819666673834517851734589858921444004252686486543136753870512627494891208013463416976003161750294957230717947942678139917833842768045659166206599945849178520501216214485970429199932910255943789298992356562073982030496769554433702034717633973419493923315989756318682635578954923370285794979040502822659110890604196568202894703598040924655852514115484737400017405762607658307124684682541775221796438978635789348892585414439385868707398310679190447287429033559171236403720355013532857520631651551342262038871463899724123528532563188963987893043274610018392167414925655874415668148910264433503809906280301222473557223420830767426187808508573491475577745382838368509774819581623732649455098398555222427067495922284088656589859403987858167081655801312629971934245102330994682373437484645556293316572937764157967376681419940941093076959314698112208504179769340783548230482958967593260647883275039295767640391216599443676683534213967245739504629710359301014147169023141722470552791788527195267788998952953987155098075105313819967397887693849885313435821198015492983715427592934208896008741514760151421652099427994066542043994808540379342988059818754342282902384456489071735943080511531667313761766253514518806551562406916792063449838491505939639239153963566399996373770060272596141448471342838527314678810041874772246006804733561789763213653720959531661498962717344918170829763965385985938293401364413912501297029279292662955857138496611796740219807769715967112432066296506266658262392620901243455337162052736289798773021471094499698135009444617094976045777747256969079841259761768433335117641914910192306833743097742559034555462163844715152655205762201336440647244532602159751290241959169338758407267360951199225760321504477283208484863332899311775366808016684408608398945658253604363359650912414952038015787312569330395237723506650430065092718491910935673728710148870696899277708751103170904167835323836679370947667222498875374916528356417491276557714845498090205150972079286785211396713895785020946508710758693878034293189231286355791658018333895156268661987550773901472007468612572822844785603526383625988429713770348731863507720711970402249140533709548513697338440154213351402536055677564199619827522574111653541690794454489760017245045983251179175211265210465715245819625571831146428758577907980312765985748622024490641452178689600534684148382272919647361571655892798757988206116330622317838258508269173936862948531263400743662337075428920421068646673046398731682262179235876502675355209911593073375077438022234445766556320206335915631325261014796466435842918472570365784873209254425909950922000908415672112582021700508709792454946045424500753262261050181907842644055156878650469050925151181570123257201302658130767499877530874692090700118424682751286376298234022856554699170789519272761141735673108282051848305226267262299431120385717935696580129247611997990242617174418796878333509213433046815330562348279588445384843872853999369666480299654073437647919026634838715436799475612488127732073108051262152954510975263843486233956689114916732442211490707888142094177169245771034823541596514848794108385852144704170744027996303960428773154664706203868503571626572901229843184053899542733754150760300647087986570001565839136407721100403013925513789640142829215727483628511318585375346381098923907522053190389846077876010219017603766779474627620391711045188316112461482999108317815975059088464749901798582573266002385491349828077387561891035896075695064039796003446553132753938236401220469278351243108186490436144566744348829440918634669366699731357801595039135439782661732684063687679162427742220065242527113839750868732621535474514786790255512074195278257148313820848390934947218602323156040120904332542119017639895276232509078011990224769174833676873893615280391317866771843004631120483132759157664337188479565693593764574949878857597228839017465211784729899974821545009429360448491301923030923197551864343551142939485121258532304644305009828122542971816552600856960912813520080297163630198281066517046565993678066173814073090675469647570654318384192818210479253261661873868369519417722386937696568317296021651412004989007272702673425551395193810693931464141307201857514627619745774463962819512849396347531660486854331623205437372560258808302657871345939728900095495234029480346819535160960710311769532845007255238946646646644688872270251729868141561838953227107309995206253627245414040355616349661011773119165908168699038456122853401582044144749718003259865953271470277599000993459163277908491378808358742035712846746517601015067391552740860484100460249554461513233342944259444454943521125119405970158143968386089332773880402406675669030422693459032618090981218021164807794114755593437933727547851668854665229152309645884407423757178139563818150636908785827917474054927848677793263250015683865305212458666287632507490143254010793496150971467531922816553634354106295153622036210928590495170883454611735041972341837497909122969283460773018308557172556537350332548905882302910942023271799928757494406281424547648358547445129488269488300418231535126133814436513380409695768925708720705759060846401418125969125931873020287051356879813485722874564253347248504267934111933678657781522231363731882736384936813244870740901184899745353598660759752650855404494079858231240280698398556451753926844255906324185957137979347953400141928717284562093451062113778330263978822877675598263441967001291867554714974073506927139290968971747220489108260588080027190238962628392715823371440663635230438544079292601820627647783578013818276744069592354687296191157583050420381728858896387455794881903972263377552207095471053231611497863699802272613793285613280353599578063321934409542641553381638563785990784048759602472041213919239696675130544391655731228596540034737765356181214367460902973487943229011103400960321941148524237351423623389439585417905058388724782713852000280918183061966359070293745216855411901118156385984948176561345891331403544955826493578206340122547864838912639631241248081322316173127597181605059917888305675441817548432860034342946900670872378201799106798681837451314036408428878222176126209631807756548227784965731008178433447846023919181931563353176967120757891944380088828051803132249262619821204415885201762962846931105320564928650687370451702236438874218306739840489697437396621739606849636006669753621195610839700498746688407012530539582846652055892279997361582920033838686988370075822728542255170711958592839190344608375196960619331254507213317018301422903964247145020864242796269798001845945785175333511748471965373926274345777800874453495543399272794770685036916819080500434957329185527218700494190686060720143405166887524373176936053683387971702116824577588803517256298026611894133749160529054912366231440001946207063982864564141919505839302609735692954436350167895927113717479810061292025664986198557718759778491280095177171841239321783330296612429429892462742559096298938902701250352538866867605739138608991643702499445163210035862379742310689438338634027049561625329973481655632151655723201944739145691054605216259554085423342984672742063267463981918066347587442530897486641881057298542455371464616909226181332579577514791069402236049354140138969968864325024508035485356258915401148987935250843048257247897378743733324693012526006984764095815176903021491830640850029533493618858848087837438083558369681663720052152496301346390508237349709393561242239659151262605785676347678166220310912073846873355256256568696886071509110851324420221434213459514893595699121115492922775658000659961544563818102819035070669304084518538542884484413129447737074516070588340463825211490950754605809225329588127027691424061148894129510715251628196091402802183421314355914736851819890500559695940469100329077591380758264887538567406988993844285058000337935745406187318811360297510468891821765670033305351436506684480575856087951479819430427243579684800838367271999730035472528621388738653467567347108991184374763873089709976001835226806159178478908038287000571742549479719807530563083927212545446816541806368654729513558879794469434208350052509898126774511762518899292188940313153558755162787042347780686550905954176429190448280955107872902845599353614491844204528685575855950865384496197775939425707969685823690071413186286776184157596778084654023921299996326563366042362038614979712392791396879802363113606617870502326952533654590049984796879187983747253092443119940364627400353473708360907163885293342151479759837316570307308103461288127305729628804816418532484188006104624165659781186976189393189982751371756520663122593471520606316325158926217017958147684513719225285859645000759234461746700538898106948129063115171062907962880816981946201630482680968688198217212337599476963782287635968448352182350542812050872415323611591337567754108919089575245562819096999812881142515078811226017344510222135672063518832514647292315000126358858534051656399920371486233610434969144273385126900658793629525776194861654188944226311297235889699937054053519948058009619096844211507056251409044339201712352582709108986226800595652700238350541674637948896045061262281241555973422535755600961418041444856868191775216667723048653656407827000540134715742854355428634764296433066193062948781622017598206455410605749628665009061234503351045807843949808437563060455481430632512996580599942918812973844666827725826132778013396013625608088764890325806635899414406686122134160657404561438168610149353024365618034901839378814070991470652605832693675930210694860179860493582456261742920568647780331142062327591415659767390818722275655274785265703807214025733984838292432266018921975299705669977579502329033962944558384184097956944799900051300105404655908551597023234977951277532767125930421766550570398142808496803457488031964509397147577220707984503322270485224847367631093839435725390705147499077174477676736203752254683046045601853024072528591308779017753595508698274766231681918008916758198728848169460113969432222616749485992568845120605095310523171801247083015246624651283774529111117444387955501138142127034295055065300396973891943153717254278889385383035365848062149829923995681998163895221102806103573584753001277904987349370198613966608011709959094760992356560956837320544184843789521599031215976280876856056241854605547687239273212501904616105554737443819306362867955814281866900103919938516318227797549976313995280565502255725938123910506571674832198723095690658901037876428866778059700464277191500786423896068573781832940522872008560978016746017724316099483291955312976608683197073790155094598500244591494747817664639532350241842039422951256523654146249773428072525681061454925057356886569688262390244153246264533159909850321108631239304889743301830941260987667297631280785995911290638784934792714417778378152076951545367043002667953192241894366637594991605252405632664509684753148254937753373677168604803869214600820009760959624263812558185188955273536487180802141735955303394875350581979331374520145004152196845407664562328596077131606067682347353741052089887546565636818796659245832731594830157391583242325509348616097927239097775481458773423374387088455387406727172561592371850339647310928957697060259619794575606337730288140419605455242313827242472200987902909528005511347155392398159696716423675502268864340537876849250408371326677928054224616461466383792225155580091093851366295356575763008952512875856960425486238617772878114483059848330033710883062887568593342291760132668297829914313397478112336707560059572365018992907493434007728679223930682141646858944277837420760635960298044010515173399313097008631873766473636255933903530590492212655488367212161028110793940428811445725842886480457730091108470284433609345635463189123420078222672783079156896716456407365531786229123256449413812727744155057127782680526914091705722850620633986535909218891959030132734179017575505048318471721870524791187028755197062444979644192009842285722518278338837605587304174691986032879404856611163604448611637666436684098133593130453555907693067030309335918099829651905931100778989632017211923300044733940432187178923778003582961674196307581569269581658354123817627964716107868894789052836500581294448792963670929597142062252601702641216779510783912009190237483772827845799334396676021930399811885179471490452076645886261405265691276218487852954602953492939011276335103590538033815641508352309133811482621869795962234156049849907128306296538555363728766430739500292507287262078685385843499698121812689756029025155329934961887693134623829160867296153801559607267274585892233707552522323297003146103176079628176506251111470541408895985447391792552439377673663765551827126602151154122854997626800858956762563447982834213597676932094151490386560569926767751080882633834429449740662731139531644985297119824713921354496796879767222310789759081951135503516778912587561174292993892422960215755754387824952534741985639242010070973307468434266194748587340618544273602270279390274959930270564960560056108811664878300515267181214265248263489943242806371725529278577442019162894749752626652959062113243790702945797762453353182431347916472993664089910420650880062234792512446512040237798953183655109026446935820923482959498900115348416242247724452246643550697583249421157498144027452438135987071903964472851837969898928803237803108428281029817746898430035894653336941738959673855696654946484540871834033454724954022459544727689534978871586806421489592721479649658329187226518212856765201476272240305464057351901802667189283351973685304795438526678023510772600018174618015219409488094957210192295390959596712388970361208840023621132630579356553419172475099789510214620605793171917496102691696684282410779379976662913868391147634717368908016817851478233365239231789581411568667600721380415440366065769175309688266140844747587771314082356599644226393439750290839021946167651695052576341849843258534037057787028653917375916006536143244225421765910728928691442362334969033913606485539486572191216263992036025395512038439344250086803215653559261894892734623658901502265984167857715714672255350431911257127358204077888443867496680975651543751473920987570950667017640051299947849525981470426733954130086998187388189620322064737167321248070313309538308878978895393175116695743345277423604253886072407621611934154754788334129473826610454894897418230429829182491107673386127850535735034144019575493135823894542126246718347671516785319119027844635132898019180501805285053307288220945349286446711926949720046476816614978942416644246127792587167602481853612641282795857027123460873751908726971480590648958241231337992157558000864324228041016276331784126600700232880204026204280353627187068757232154792639443298862086421543831956079606945234041453128009554573363863053069961819810744346655521306852310045729497467753599843235154006129095756246318050069278730311923512832047918221904705459301446193484859841446115984151552490043167398484335709576569854806453068396010503575027009266862181352493276820928517630050617200541878418605006481823022879574400441268951710099992740969171328380111554428563028581628726670695200712814872369827202883343977985389951266290575308629399323511396630509624545981297320234751817356082598116723829090967611613215901678286917757217998241565844794411693051797349796107478137555318035422152677185656811984729761772172012826971052601125097571664844066139469716356681258601669546173822465138782613900226785857391470875709649608092396542445705522722220808760853430587475611770913919286171512330815955643036094452911860480335352783199685358904100165290692300739079706768915624962945903439341604450633148911513029232365525139914557730387439692878399897214417930195127152325810240919154206266572808364149446303896231542121978886422492652969899524588277692536414439337205142578015497253163694666983382797794768166505192522678548374029515533998640904974987552725252211803078881480835868735118456752128550305060564752292863460519901841447452286291020279665274574390060124782975549603246895515940207792088503960778892523826005115287376355548001064437492522296390384666130457224833689509438118223775846337622686702342436303473411265434403353310855678503794889594539285095019402450585825822873696521766403111452690990459041694579603321043878324166991918104808551227729462591658572839813275678434395733820888858581297110466206549033089494135566007729868793344508206505471593075022179324667433153736089060062138852040686768898865714116656754129512922631612431870835102408910688670795272994823103791187613223654381882709155354058506675754350479089647200271973736294267433183605587642197457755961795804707669137976132937495642980769462865342569120386880631121637114728526144684644044392450950550278693381987577590719502032608620717437210488924902867823863439807249108109317003949346442680650151909023217762011609628376831935240238678637429195169115900605824881844453761003080737461104376442085031804079877689248518561307321459130094732155165322108666983720824967217879946927832895686863712289634518150237455820292376491771393945945915802559937713458344921886992651220954610745077773550201454359307243772154796494890172237510635826490985575445311481286754835132212739863130416546454839460449959414677100773080620044641648114430321146426079058883069047998334209938122036372006563824794363201755210648149494110118913030051928099828367362245328038038683124123911780705441783887520562825097535825887141253526169858723728565022391349565449222933103420280589171482425882830639173113260315808023795472137683676933191254531463623267436794017272999896338427015982006750105699786048857072169126195904960706057010535495515801072781699918211818918360181763634384408529894071926652367435837175201435305994738659903059740145310455747641772209803552327157447171230564321357327005080170371264495257944088814422468515532146683176288163031256702267625449000278501688364524558954699469265533538578430163991131423399254387758354258218324612799173559791314828685050387967312326258601689962167454079957350985052432001711036487513417533734368027076987605660601360744808421129498098109336397531563979811355366386312853937686037888977628574087833155140076626813451376439064323560391438397210987279014953406540799092563528802833740085639621514261631183881424581355499618323954368422705197000752974185779194011790207957180975449239454657279553803389961437749575754375229325453788801137732372633334428102871747587585206617782849607037539140185566587317620006707693672670774245258742429131005307762978069564975212361011245642117426013002111000098910623838938688601017844359934693677959432468574651605177364372008509703420711462756929935978558886450214516367210269057229226628006786776592708897109206556133562547086798142897798509319373832489894680691535815647479434919168517144558663360886907839722797086889917591180060355842988681015044023907589844401877891150530061481768668516221861201392145338637266655291934897592530822694066926335710863871609477962884935752820830923822715549871027140495728948621462339442377933015880773118599798234712774183996158922093465024732396088156811520855313119289984196818914390235997755164746556991992760641868004507295183164343898816697710321276636118858650082280704441883465801007930131600136082792613555970310721928079463233426113020528156196782622806589185258664812688054962221062732453488773690348306530302840630754772002966242839273535769893545021358767563220771180242293286470267704730531723091514430048748308394418366257199876743891328745510933136811016504466705007587672175414065029574335662063491235147163515943503027477978672684887170462708269755706980931267734118523833321242042177524864520404167817834929794194176687590640364832942832378636253598021435829451151197471730674396548041970063301262178194306488397607306921668007145455131231832484413315451211592438709558527599227055830611613189949455500961133025884001587461427007445174915539300020406406896198405855521375138393535193876754265269452783054734829261447315101695607607046247377427750814382430843618893037257705501567288836464978393789468894484802347885608339597359570541827780911057522617609620325517714402569482005326611561211854136296165726075625271167652722511006636236693099552075767548396373404771037884473495942640039003129430539943468610595772428696667894581110054582806671465747749975127428374236392941125055979588616485861493044029110804277328171234456903111667572514797679340755691326159030908521766451082816773916922573958404198454274527357245920463528088538689782424528776364696886882275312939359002089777937499828693737067731999799320297557397215130430488641813386598988748619287986964349842477873214665611823891605358269145318731094671855663594611869226596477553550204159080091361286572067059259664234583074372123104470736348346211676671306222927996814087553314404308347337236209051093345570985961441008311318660029974375798015331075240242285125921007539058963356832595983742627923008704911039754389801426077507700602617338434438854609135990362586362920191008117667253381555171019678562487041841332449794779544239019704996840428630788685841310993141933228631292758950859796137570412036600476017825300397123892944895592243007188806612377845192262004807300281305354361642061762083987372545713872165999484072432388062093426746255491689802677830878503371707010055300435774218433630718478519236144797962204264055167972814233813037219431199671638947533630809343793978116567483219539859894985263650734367319486719699591326184031671227994914360558997694620094955517701679026789088624012406669426862507859906397913799125667788035086705991951437096340209724683420166662544347875962104191626179307208729078213862390740872986360401916507425290112548051975180324521747979031142750267213711997478007008008744449158069976029099773136851231281078588118385133857910497138218835407169295578600878762488727327712060296996509410238622004398525386212150967225319588653299182675370333574708262329356001175364358389373085822764258407365727451737084771059144367850633197805061861128827399812950044744535800372376138402255667716769762728629946321170301239916259434450511384908245119440268930402605235458555808596825181511344648080929634945387159059172754069469686081580197690179333030360794566948686863145898068925979118133250168008866675592331447889527486151798227797601285177663075001464993004559096687086829868195696744825849759360955479459562648262844110867416439105493440148912793660341987312068897640804240936216113755547927053845959076460314439302149882618465001021032446876557707756655307674117411898372451070992838712935682673543905586525355603390146958138679872821739483962964849528904060713203147728672781259826423930406526502931168520600705754972988691205399405517959670999636849726181156138887493987893190397466999306171410107421385606574820480290059116187943319877408655772634189352217878288194357876997984685188961153046088358480284479803061930914475735234702535621583591211979748788200778346495520823986297130275762857230986289603582554162154157088237061155402641014153618250301529903581171699796759743935593029252171278702657055133199100550005143119715670712634758580306552423187817706185012767954385144408409810885972606161626791362668817250076989686326112068037717460711051991760116527995610507896118950349621625920424050225834722004171880783986199078517149478070122546402579018338921419532552505660441421123498425037312525228226403959868827972745196358970322422888185050289042648835294747676329159388361316149771413347469246828513989264954644779531405894288018082051008516390066181092021350845232120009399420477365960605422105301712633274461986603177091550898862630928897771464460944320338888624900868894554602516884746791994719914688810842495959510215104269047189322684758007152046533541899249258243163523071025654715549717048396287938394303622291627450028846956229039243554321825408970862571735054494093114867278298045581965232341562015962191661001049438180893986026833382121614146013682992683274428278786681393412199694432694098787462369845370547729071828226791748777717670917918371750203532749658866036257918382034341332636123953376746120480184315450424612733839823582125134745671851664782815907216829587611115074553781301498789633084480398263539524982020628511383149434314103694983875572137345834085600860055288299267011668156472668117319870147101191498482129308436376040505633803360360395584112708949344700805311939182349974407695236041241301543990387576547042513547630164924102032543259328069453963126596086721538601461595584169811281290872561147219636132729385289832940089732792615576666902975887986508328482360872622912682185106206632215619790443838399869433634654350967221705662588913486814576424617967026232603951753532225212510329084185944391435107216054699972551726746915108696383688822132774565477324021609643231811879403307258299090795692049215006216020324417769529816953342814734610413831145575705781359686491000660834487939447622640066005899931600487036919986363888480370567637511090208455917696420725503089314000840084743445239854569588378964553637506565198236619709500672361407820449229403537924826923532790716951651689791128218742990054815651555040799159806868073711519315255682197772191617519026017580186106637365388679999184043527719265659694097335644401316197151924898890625708035269043678357674950485109000816681462520536435803013013534443116439937166048808669609707211725088823569843703564867603136412258337359811563536498900062655007761160891505113372381090295866845204469964428312186912249085886250003189897251558001057900476236774611558130585316963061699202090039056557641710348393267724478793935686963854675417199066524807073579535160383466659408255399863359704959536402274981232837329728693554116810812349680188771643537312897973597166981515427136373602050608377776519197170448180579188457025276072857448117132765485432776048895679685794998101538202840458265458841162990684308746179781756326904587080042592322924821671199608454464248682594874832327519700800512373400765347017530448282406327128074677346575614843563194079204836706843033484285296435510902397109137968594734329372590673200002995466486529618300714323989498342665816179972754415619171797253290452382151401818377245341925708295391499518304107009323517164313652366624806469554231215164816486270975469946622143315499745608017439799894490342340871297915648016761691767810429893256240145008047030734819229673186838958597187683168519102305341212510992171948624814942752247784037950275426517329764496174957143944982758494906082788591717747582766574505115218860416956204578962746630924215893737954077576101205919138059026836811823761007566114025952284522042839651332345619900378228657771423278559483985175142613352225722949224587398379929074070042391133205249762525777316141454190470693149472944728268016148009661549191867856803133508478360969734605058261381038292739286773256201544019187969297865997247569454727934772287017957217918474483964258462301064505798826446550623730007982456065953871207884483624368811621592498195487270251332740856159972861507380176664609260344202759113577846120731451188193809101787953085172157638736608611899721767277919672412520335360141376363961926637204162169405635969425569748389119664817742958422666830535096886700911378413102079281300073275735035987977739615396025203781082919972166507752449629483036449330266081674065762082652289597218536123304288335804946130226992392543507565858682323934068851498355734620624387665661017568242853576522569541599926063238044332551071406185598472497158488418534318353380818585757019872946527300403735796566904075947929921381468943990732592987228853182601590859767560579998656890274267760845477404402431869283908250624096392398149118616541890973527421969023242554521677908711812881075264460645010229396016360417043522553497301999913742217851150680705709247730495003219884668595399903446536095484723568911285317644917147036454159145704888983118671018502035074022930359786008467357585723914055157084151005067638884232277789330294903033131768538113387938570335989873534505621176606938408056209142757024567338304828838273575821186486139516356428118659323719078940049676738803678244950885691292075309132403740164789314323018634642576655326537545503130574594510276244615581177573159180203511882071266904009450565429270343959209904758364840110015966815008565811520498991747911044271288523899502946076597824510768773845008093446122774825367412202863955828309846946665035581877893498747460483763308417486140563523381622122287535094867064441222007303659040436491964266327009521005795965631316552487998701887589861332883081543161300421831908769340886022808543461182856962238581556898512012719293215366492711098983333742552355892854329499402683736032605359043554913213625564917277797711123165232724600372472305130792117685368933618530669069770214801267324778360423614851147373209000415440597185835490431655478631463922686603730682537563334472323711352223880861986579486679188668301965081732108516353039113492684973369302612223118623950050078289146173821437027890955341058257782432871512224611064326510153018845872163136157326934619710449669536081297719981405125486640284225253927723124029798180476388873098331637078952350421646462512544803079337904476088125841348172117392233652084246176062524935611365266495136560814003313885407024757888241832131205276407193527723480492758878003258252526817053601118164232304695842082262963161858138091183051775008442657388225695883566878543747893540389884386120094494257737391800983118890720677757928323303237193281031442004630913530757048250791879712195841796549359362598669304939377825120025027224693428281130695879794519317742695315950575840875228354557936476019129590932416545507855450578295313002288572509835771442457121151606516123407833874243741230645998065240054926976769392142451635188810997919892147373681497147037254349434980503945137177368781037790367018711571060309033458015996776506097304583200474918888507928571508718541414178483788506723495134137377291777103264093216470503852584177460781450929902166921210566377864417023732466844136269361600627579879987382602338681222328128613998336492347333084949399434484004765900316461235022873620734862876383768864525956594168319689586663028192026807922666716398903027894657581453572476474474758323924127852953876917639517249189361258640179594855434505923792876727818093764147589295257682635493039919727834339812742818140902020425325454765292459542768437370852783055475317105170358760739666624952062231308892439070018604297281715826236840423057366214380873902619383801583530415208774746554655392608486919210624440176275317431514692887346568684247936570671861521218568292331232951998910212965907220567879196562510322055853950556374431284192405593935502896126202104682863999853527222715479381568081391333864878777516749310546439354869063858714570005282440041251790288463866411233505250993065386641624763151661564517328433707236251357582856574060381109432518504811919613217300383894481596276532734227041588610711881305776390497348937208008406908510046110567551381330803733898032987933635151076279937715350708628484535477382958115103644549658268639460295635986995339467069947043848203944688863085826345539547808033042637693243086363368666225957937266160883641497898331961054372728709102257416387780174735129572513322431187104507637673135884074192037547711051136384959028193174586864076239124993444190448565826743278429159203918688185784340248154198932427468476446208541993636084486167071962999361159936744966029341844469820649316995840375573526132225357355521775949481184343285260198377430561708928276908905706438744640590359445319789439914655263034130227856865726413965593178673573219915302578969256360233334496340042528309550366020025747403930138101183152029986007780521754214149474027287487195460202070137867124595979168918734228040883057188939471198934975434387134804439193979782548877462823048423917797382205011921702759489777496173245151496381216286277507143097549387630504177861591949335853138900181182744809308125207579881414190366237568891546910364761351981149826359607908450501533304567598950521853490016982482600972162833259955597063150768176985228170431206454823964852787880766654425383790643371357765665616235778048303228725425940973510181338377452412912817388076442617556318576123964824417562745233544572280184953705697115852516972800228720463745487928242841368009757962587870142163585480359499683812840410612461235375391296548493775555734215753605867370484271246507838514987927937698931194753394086729687461886110776889217679431683928636821892679302273485588075811934306070019477836957202637577923130785391079554469157659913767270343885437573475302164566730176225385366252555168551405057374729985271755022136766929419143698784487183103728636343611343221446752331923184236032231349515629223519199693380262587548784332573147334923885308833062285406230652461747400176965812965657916041242514928052267587929997980970974649630422714961678677283102474108461349547545684890847835222547123186631540767277794578129079259513600509604189119651644261098397694162275357043071158046395848131114607320959420423454469384024606884898056870026102265718284319532516229701623996203183693411886532874173323916815600592250348923131733866766474740423730826822862820545109633247060403000496514522948271244958431504426122238653904394202504351195138187380289120500087944519749664149376958201733680208988866511820696639206887244263995527695728254128381695543444948484151090301591613871192984157321590166784982198362024154687604927707974005197116814185611710707286274559225115015300175714497796167954706632238604876859060310281137086562243971349812088050007263629506371907103426143933293180997389929219281603625906962974796911744814477223873271628560813045089425309442457076740531904356886740387793471901435001503076375764652204695380516235687997915989786219273587599620174228964914334937542309796657853674652092183393471421807929145978188959736378559998472905441119828062286109808779290832782597749131102507131979418064333245931399090414342269445505571449146641062067180024004059833733110290706938683462629337634534979241091975846879540975232000353484197405696074604014408557545482246478234747560667025626047193445720656785820145349533146028442142230381281656738562540042528811797084113439417736761868938730853996689647769416852196761944638962151023834521221590653054667076723232921944834698472164905210002070467819476493875940679347753444914452577650116009495422984410657560774963617187675011861969289296790739459077818439023518046149275710655468529746905820570602849848449078980034835122526241531347496376780013848551922016100805187838649055969722784414304281043130503043860693014842194571746359805351150231099448407851657773042419260808695948349959392024506047587566545580690929956501026808730264766819486317974024904749933526485835205593455425927512870201467256425022331683383190251611146187873919056826114599368369569179145924278006669849405287059675649391641572736070299116096636912455754575324526511968682242187260419683175929852320016448138660074516113171591937946164900972691933556719252685468495617746154411727861755893870764720576451085429774849098896901007856549603498410612253050234009955112338447006831517859508717606240815771080266331870529954540455088083691953790131434367138695040551904015701128866439607790318811165806017705585342983356548507968273365772029257084161924829278360097615249915702287872345887769710401108908486059697083447389485028620401725540069236491544103761052115438914878363771672519867556824397284239494693438351040568808065187962384214417549606626739350793755544788405018384094796046975489704394161414256028303261411720918024246950222930156505126329582954623469124755399398450094029338600411938697312706554142107777868100609140706246192041181285118663845858761435014466066956108988497577245391526544711424679532013335849731303118287966640401424478371551468865512501466261158611614061004983812505061088481341959989012892920133999134323919565356322977986073814865368137047605931287029995763039471548881669632975515328234209154117698846582306735470475822820701895591648620350774361101971749945075631780772059350425647466334647146755553876113073980085927782464539144148530082866515023759187999386092440449213491662659117115062623505075094929360555915928256501367170133508014934979644003788842070843606588429040452407791961927410629596715068911303131889697225095451255915272634216545040625279027053571984860269883742864144232086312126687165592302093446039222331217496149718158711705667060482463069865575985632202305214633479205303867758677961919430166696118920767561266015741173695732938604828174287480388742044671577118615040051584466393045958478543376121004745211624475264219640594149577476269343776074537822895546571268665078395419618567471039483644018850812205110704701087336030131269446363875535766663389624243379028759422002673512556024130112997340253142480027871887929744221151540030643737311986216948858583093758500604414957014233622620626248513423794315422471641140706850780913135233550080623358016786100968492244289078437875724911079929324957681824153159091081714413933384299993742793196399889168566790653727098429673605859762935304716435014277146816593227615883867967234114150221252863694595513346736170534986674769819153965009580357414794234932713271491467233870734433786881651388611130603675877979688201225276428705804092300950809311111630531489224895736918756641570391814809002877197768583955931790195030158521280269710188525822730619091264033342176740224936568584410589596794028069685490967902492611952041342138479169205959579882018609526126203895991549386193649511563661384431783340260240088158397372326460057888953848769836308908701661909543421611483968723434325085028808243062521456842430600250492316017217253164195314127632681509135835554896941340159197450777949478448666226753573202431924404028210419458386586372793957625744456927968000029371607831104745264703078953705438532661434751471002484410433082987751344922080543795145848783952448649217808626634583684442154323476041086567034209808542420657303438385016618335696490914995899194871620688585542444695193453537474213877503744844210380800946704299749144925242671812570930204386893027743819952391691965551838316264750740944114821236293304791829462581585828058771554169420221699790911860054837083671457402021475502378896701716165312718418257300218321253012424024116747267689919236959394753084119185629220486093188174277235766175895833969954284741297738614463122431782468556819403502446009128401587151920292348599661856916049207059713782220633494348043991468992043777181204950192787859230672971688912962611032375777740167832711665932983838036431676001276725583923248560575329968136889414657004355374993793212051335088225967930028041094400575592425868656330925804774802713789083888007273863188996786553718665921587405332301293447748718022309996616410186642463027280494301865771045345571336329098897011167187481160195193723986182068784872685337638726859657633071813724392236985870393431511573177696916594420322791743593617108489127383479567162085714634854568701198837423122463231336696808084362616681878122568940046702861323602444705449704132104068342793401670995771676658108486466226925697185814151934592590000921461079603367593327412061677785319679110927261922427611545480984779598175362792926359865122925393911035398148039185511816678445958970687014268932659503290648546368808754288786426774185685419966758374525897643320369458086875838638201265526584693864839831408271212733543240367223944317263159191269579024120662251119461140402392215765231101619845470602700529822079521808920674190656165317300546747115002605920081829950129394117611137230519643170182453420862047955351046101044910884562064626948280177730508399071357378180834914423437692000207781747818814466484456846585780565120635284257167012506868045631086354884037248151981132207731136675476084149014513569881341796174851150283046944112077732040970137332113957481922129753724982044105160614107484429401954825612668152506832704194862973481120939727537791440722181585669176195166278380305921255033786707196573157279241655297954846606467968929897649426364870842519000757899442243694924354358616435387786354682077048406247101671963558805246681473096338139029114430475657561266909584678943471490312149115966825308149624077984792479735128660312132925138776201527199781181712132462376570931822577836889651450653198330794868364105917187265202472938931030381119101361360441411861787125482924479707231532595864173879633121115056640663550666268385452236678253238496246818939913312349302998277538093398834738544621861299776650693850917099929842555263630762503067774222863388512379386229722950315644748874743296072285799156479630447312946148619778165186924015494645059861787088509404167715410026540481757171278691994361247044725694940253561080664949573890511096079838400789373613167518018380607023111308707129291725364006737590179961906261550354490956430006513202543146153280769142085410912831968136832873950104421014039546985941201434839676533120206494466115678486527703679207256420006148650448684426884991545794556450963986327543241512496027732766593281268761709420638511903081539026891861075681337509736425035105483430360331979060986027672139099065744195749793413147051263535601781198272159921546116792908823323355626398218203169045802352501815305667955594788317800583530299355551772776647174897270922231433188176654794500258006388337542163108652233512634505341070472435191381194779653653393379432840093813899465025420920241090209263352212467410421040453009920525838076395125842029999941214462774574922163225175588083939197206195832610073421222027883217533047938227998819094935522771643784476532679193396597032770183144762775122041711935698957370184030046475764507712909465913981548778319355502045448485249034152959979789702615335786330094247978137458796495818518245146143730674192540167691502725386670621071313858237635894896470235922473739090235183420154114999599629322810128663660912246096606486233597072649993230815228296408625455096668401840341242933436952373521574840636568257198028513160564660527188593353682774264921469217953647381270154821448261548251090398837910375845437529540243705028987393929042903983851260618840984895927412336308749925437912267392068650754728214675190650067996064831799039508815858751580484267758916016021344590123162726724158771267436313652468287638196480505922691257543656529040812850981256343949037666107502468215908720804265023422437649283543308206113776801715666750483243840066129484394351418519425835342367487361879738609400945768417847530829456975171874110535883084355745225931402115763118829922423627019891805070981494285662294499632613461928410042126203429396147119099727226399965418638568544262672029273819104273062812000125954804193841175417457509384074981213205474576516338738191678927508870260999944280578363299112524059745486478269377648155192079725976358903488291144628677363938203999635534208869322874452932602519795412977448585037332611166491042402164696195271511547238262124659219860314530134907093634360321148655524044428522620749399923927591024073576568423237438320474178403632015495069774194291202835133294306631424532298903649399343900724772453517281446966146249761628583404119567791827285598497986863471423729490636041520730960539263801024074109365838641604945756626442625093267902309269096067320084055532380570021224781767553252049411106371763273533450225745134874244888742320621897555261393475139785687453525096703027069566246752556019149401978700273440537970152888044011527303075225309873561906311280131379155557113022112503103787537087214330271937012824138621763221463471189213497394970384971630696918743768794892878966968198353132829368742286909285909411285907057795432461365506338825435994593414004655536625670526370082037660205688909359316833203690803927528465109199441195998202024405264192999225975149200959214117366958094954996785486309647711974422205216732341122322599272093411638726333262150136613045871094949985015052423376156598577542420772965604732970919251185296568016637901091371593872889129557428005368977134010088075100205767019727004299880442563999584860230938331833701973591268689957107676714689632965685269083871000994321486569135178495808239212448540505957698637377997055523654045950492462158230397849809011628807865265183104630222241009409391322659096852767650911455708184582793980350948527026467603674775053274404658549855346076434428673545127675687450471358542366441485731049175828257044051702950465713630131821044483088483590952690905603765791244534306133783625431989574321714489837553106719813199923587936972361278590192187922534339801812192975596856620823254130547872853400038933717274992853899315165481938305314894137186353723250742237561524221590841393885576698635643047696075422261298552227564643011538009082892578044731623974666040889217734551708658522718130138421199707230324538983622263255212479837297596579467859550631174648319058770025159114327265516366503748367648016245313286785138079310474072457109920522689335806028074318448114567714401643221965911038101119442785550191308298010232983507257106831663852582352561274572377675815657467041864467764020494140592565374172865416371470429449218742330565974725646445062942573731067933874871582244329534952903370434781032228045502440806260690151360274261353321136055888848982498710041607364515947352569575351228309605332127084766254028894242875578821179509603827748120542074666239982411888119499551402500722253796560677272613486497244507886583521389888491276681717133126152162646378152913276134155086652592307571683501157513299448249437451957589786137461143356851188315950288513255323828019512857134429176489706786488333176219456868195930822322161807246983355075363062153594095098389843094036954090945376044086432188609070744930625674230331680327513528665511695275340936429791284467343442770133345598266387122497171902050725378149277430441103437261549564166190113970447256304398255341261036255117668921258423787367021250308801396919762196731275713380632866727898823046115000975486573877373195480199650171228323283526109361301115373799869599474332051091725827547805356802100882780178046372377578625715175471556325702197095484126103600207537342984310200157552683118770011234988848986155401692305206694402913845883180486951148852857664722600610862285061258376392793222736121419079504456645037383919995592689949243745568698153572205894752634494090503309090965184350586200538124179246271822710645516968759545307362462901268754065198741619222964387122525856129543989890614092535326400200162351150331437218731538768110462379763805336174118911942053188689483284874272413887905416546460388869630397559882480306700548873406640546842177267574691141120541080865147547929108669048319151106446288898780934303314134229176206561989697214170475814347276065580581370746841227914035227970235216870364165300480088883499964642829756976928206206982498007348863665831100396435445082755485403537133178305384636602649479383433050223014719953239933252595453747584848880901739254018481150671541173033282126540221870658120144785930592016539537483501999198506605605856410254858923679308862222021493698147722137606880777981992419747255005680330096026937317012753424244685796797400937653149012164868135368869834067219143822676613290047076692666148764174789991803824140799884462423176252086700512886510942403802034544731487254077576716625954684616819453243192207359248020980648074787183169626397885340797772014825768515594756164754020831365080496357788462226146997573015837237154507897841842012905276040010845557053765757812656239473173609070817654930056160761974053806669288205342111539223913934001833268260795120518087862136828981590165072949829426027966089870121836880538147305269873293124409018347938275743290970011179247181167782246415260673771099124105185551805683607300195227694870691512880011167741303574968068136482022939015282194984685380257425688188957605262329256816977030296671852829293005548340293807589102949384990115251109355161577415625308357082254454695561699311148230668233371347953820681927589968593376700250160277112622931496255125258861795724885106271207236643994589183639393921769349125317087803750010456413530882729327673384811668882267956237849927360076674741436912139953779591101935323570714495891708200206301724386220429118982124906030138238482848534410969695602774354609926735020955270761378792319833185775854736464255733482666038850168683846387498124778428714406682492229812156819988070180725800627698239417332220916909475990137117717614144779920983474389162415799205971639121589107558059569663620816023763588241782353785172802972948062933182996468757380783014210678413261742523001169232405259153666919225849379626712800944260459294668946313467230938647442537049526677107501837633976126707522376367800888209647609555117684295770179373072870060713699063508961001479573315193589764691759684297440623716649923549443694810709813428532349388525307974560585273570076011048364304569220511948260235512156514624360933314062131095442360712220098095142923039418871776095701188530030277188711577354639476895855564210326823826790762838659947299204159617265071985247650473337658616211407400397804390532114229617129183478025921573033638889094215613027163448121407175096219599266867386381156637892383272504313302698818864870165983464141150066195720482656222643712916082143237891515274286374674833466306675026087253418099141387224623429189270129802165566739110855270637690488194275505331599152420065431665764113305826955830081765739955611483536367442031255257418903639497880996878009428533736810113519074770900725197652065425587276294912098318693364485587604449133035975631050192022809994980423608699797583339748438885479596399997449259932427156556270428979763132944127761182618691964134821349937634004309278435339675896131226601694391398173843493480193513213170051334042394934863511826450328063882804999419133811675241259937639854672455874241637966804538171140373421190884992245081319323863156797465324188109378105852318317024385223838039994102812727547593062940766685362217731756203044712151137918304585663842406797891129730071181686113022316223219878459313515164207955534026767582650021289114131384085314312940583925258449366980581710633030338449692736627173172957929601444250084310560425867305895150263714531053008376728484369031119412860672746176686295077806925780260312999950183457080920558288595058318789461900150789505699978661860141501711204950890563357547577912803369567967231155995522119223943353947745440648085321431865921534076561966968603033912806672050418265758567398349312689258339708405406142664439634432674409413849132492454333547466888881825743007182864558871282858015007999672809737832805605795463618639699260948287422300054128233667963789561504236400522090579756816070167517920639790386640870671374292918506570289202869021310794340529695483706120818008374557610992123709919738700373407762237021711192312652938090150666821814759408919675660958278287231832544495127117041879175104715249543119079275212284160133754885834447954687820041779307565891169832881631011380814619756750074910661683535521396014789099457094358107844163114248618202068369930405109216085908641537556459712560796262739999303139885991644618937827585015624628362403462204490551573235951065856055935055702255295780352314886450513687081015377130402373875801457637969829027269251326210840690168853016666143461798710559033125006564383860977293198638843666473368288197031698307408468993672356281409378009058114573266906583215815481555336837604301303640665946713070105621111812920449223422228122887316780636159776316089063518842275020911352748529696443527210233014511432299746648226038672723936965854602699501111636432552951920922284803305210459879001599430495062836137249265670274850025390312539292005377782178643477045510307020470660681995939545262959122660432128345348975004585156258388967410249211558884779491115830293249345292559541039642110264615312044748874074852656703546149349288763915672558695136670916041246346952860938467070540989365881172923268174500038148594311081593091139652515813113132414893533430067083188284798399257298638153946687384147762838996490660716611028901050078254749244621661368992488106579027725322712823848113653686701005634834015405972882417182434559948742993589213904956974955400148405104039803425281370912253821456144619700142023886097674268769417032238441562820409358953703626020129417378343770830255381603733801410996677964830599381896023367490297354199845999790453675319911491846980250852340208707007770061328617583158147844442066217545340582018469156187977516980759162125471259757205023243290520435754031516942598510637005780183724651219413077833202557563832568652784928827697429425886377812371526935721367109427223799012294558580650719478769905800957744551496168225447786623184225974427412128327545598293864812628077838914602868938197638054124752700810447470154412301567962823063032178366726403197790781861107757738434770755530576978974902841808328514885311585302225124058430901724955629646241659367845480187437452653518798408760367012587273392475630108686855212519086371567867995786899285315421284131888806987766873045737038887309532398781123621097561492815374723033353758806336864054929088290945953901688462124563237428712564770212405638078053231584137924864672129109455449925016509226409661219664273122182572156482612843170309586751120319473917988075857214598736953652089328186116000461712273552746042603585648276715086617882309943277153639794348996279939406441966374932265795716932468542198044782750802521896188648427591989304018171178472660745915482858162382593075216279038389167913985047267672660515891966502766395152280426272186463519543450951788953660985844485676627131538349642418965188340553080731722496006809603023894271044359399407222212695555980835022730312177530066999478971557744495995941616994977891401886936421629772737057178117245707015591949938104828991673854921148991445323047099251769279023315003303463701215303682203208774709319331908672073421584713677927045556623145108408311972951927266485266396456394439791984719588803422821644524498747293407646536113627781299938894064532659090778067104385093071800601307585874092088723338818004584573763864531013899411739196658691010813103414452988604226460694058844231263227030862752774531919208247604883863479682256344694367227322910005250674015365326412784492843387222735875048622451277739665814301330547581028135802193459669311483514057974268546821235196005013050892666886416544573675615788291671172867823503544004323602727683386424328876519123818593871295888794911480377441615402529373549527883073240952403845876313595256036308330045270786317915988197499924828162089534170473316048388071521245196398807756503309129327930420641236789440394190356107746548020479638954105484014326306050011246493108166457827140739913483444016927314906566800231250573303465624042185024367899711585986770883432724893366596642221037008405791228878130515810254878824744139029102668273204199052504372848184828437069148206389823587752238407568921676357163975695990364202190061643277356424758013284142411584624587996768957934646506044063063292566162069417184363047604763821145214574760067719447417968557655267389691937170079288871056349888297690595648743867939898019943052599052341833590114925354244086486584255066712111766556395709009920805500790331195255559017377588608190676630892752354444954638305615058871443887057084019794656507759281534759706298193600159570478026317105658647103157326158162929612730547731216106140068449832668139368097303800648139254517412084724995229345309755648473214056034171177841895743298462043716033883238055312173589365012309258882063182347857230335887048865067677367875830695802259549599674578443785741375904297241781281525467165829929857646464472697892051215810811436881295643987420500822166952388492158271942022019169004537690710077301162468057549166074079443258906015313200767380097525151606904069972445043130138346171853594395364352139037331319795474010800234086722781547689442350065173750876204750644446077578454679258675533555909201999172780725975328268797432449359807674071255638250774088476121485778753724584818729643690374238152739086597498324463334090381703340958425932511017624378912733997424433490048916565767966227404903460752460397493481244457165941446649540751980800777631716318021355243783409581847617640836440043063792655424983982452817729564652509456384669224504981607115311477052415167231096152373061164829071158853327223326627810301126027532427140646052922753447983305768164272902861398728831207046396237960107419819250312553770053472735512969404333417488895861294177883899677011769676304977795601942632048641863976057722705597978647437590708322186555119344610118385521826959174571942727150609057288051939788438273264216156967702730284403174804101370592345918500279740555346763220393019609184811511202644967644642319578016924886207042615243671434039770643451748471108268433935067260506203602866439804245147616578794209253878768662736184197174493689508222267395257653438371756784358110567368744748204234976070142150488371818920847795520573527108900311649669557865963434392092020015989037962865292683705961828995789848773516696540367841137948129054732912616521467278678639090890956758128310850016868407446257351001211338606188605829941397599170451057554631379325609564562821040052461255720763280889144216812695607412835744744237107488054947490405820476928465526343039085698773109145888834313418477540771821785152575984876475203682739842006111897180705166555216831591402382441950476754783579179541997688533674048224725898667475619744608213543354253674484592263983300928175328015245884440328559248509615173559285602694508649341119265153699467449661854110301613026507099408016572175903659923068192588139370327023230359794064332351381731537566470634500008351748272976176093544234814263499249191082448104091248522796795243221554055023848751805959145587162426906266538389069623168800276264720861672032913381740511260151707230558626159073548041284848973970849656108678883911012355438048653119565073547539588332519754989271544266649867179300850711741436722546977567249592285501848970840174123101997343540584729974063141207881164409351437904102927196509941330684974603884234697354875790367666736633528559861912113671046533994637066930385746656003916838326872491706572318852041192841822064377649856446724470939347223318960416742404027249117165600412861632068358270856386827171718439448719266055361474334819646000193219806648428931667458648162963975228621172916365704321170101676539474812793723890299582586197030180344466305367723666820833089198478419090351534201984860213868622630955761884030760831505979198362542413477373532238210515587080827977071314377411219935911109759825398891252261750278240044387211732707011878336068344327564518944060456616632074695765778210591345647335812696875982783726695181839039999781850609167002005636864141053114978283875968110422905946434412617942625957155922997413753495617730264106536687787568348081714784054040915456525063896406172332503756707246763787065822092373945104963191434318853065665377476218783192858603884817845348643578921664411395336803112279445916701336009137241006824861045279911718314982145370798494606650231608605209612855702722845980725804337357977238640284175310417648334471399496705594210138555299442274173356121333129103324857338041794824216837569254758757469804374818125925006667229972865589839282624541315320488602867028948485934979097090278358280361974494175115348157249208832697142216525629135825125830472887136236065138902869903979369713539207183856005332955964141668522123113490470117160650131576054870571355723977724386490538949756719088381028009758585428705175374692139902148950958982588915789661649791733095708135392019917721065533988650532036288941354165318143344243354430355793421943874650552911359748497619434287350396922563272413320408813821060064409204807807832369571556818245215911580432009856981142106541897613776630810472691714039890564150636857734149805291686460058716075039576381063620887541277245944093719498693565382711679597884349481458901813993384071169588626588594411536171309886888282237270141677297118236657193882638617410479644923981224695813043970436819972242068593937036393559241212838609364274165962782835863827125456061097380544580530085325090277945648696430655310257646915017363022692010583137547956742889063431013851807081147363233884522837886696695130422526667404960700217838755535832959436406214387177068845240863878101238031240251625591715445187796235302396587755193379737327522386732181097112679743127251516592244516698615965760652327944176297921687610686390532414400415856793885181078511142551904413500662959385258156664120393327722505637615392402599520550155255746798685440689335300044445363259897238069860416121751097147644181538539739163544866126673964494795040133717820285921736596249167789706416093585995255161705249741054192249445848174032935210214115372892878444983779220394708946106680113329239142564819587562720073314099291792016950531636346851600174702221124535384923399256246006482881511439952413907641812906696005745575098793248413622738408754371127308181736118700502655762167989475858252439956361946285384294639860757479765651886300217260899456302429914134228521574060860065260250540760114925018210878459325717116937000580854412862487586209526795937142485599913927862008818240929078628182154900667138742312575954310235581032583449544238404688541793199094692800895305758039128087121019759718930400383111083264516937915553378522142656533583647127496310167816721227897400017474141260636926739514641405212812930762757636090922641195823436319995002507081546795634304800181171174690809352992451288936086463599313355954343096122136455753598595508884775848335957857008981983734201437913857584412664104651113885168373331100320912023464028049962871332602614900833095542997793363141957534655967708271809777591946694569697578551347659381401795729619588604772666110201814725334851946214572914946697810673559124527307762372958279456970013425449091931343217065663222572807315195015280085281303135829032918354388640580619329082952294153738416121145352435788862865497655723811084106526830016373625848978734463303068839380369447830318374501894125781687404738372820367862520163308222643424045805095102665653911188688475198824563289252116259644778332977054313143659340412841901335999471614011822000370100523787827629497049161018480811158971622055478265527431175252468792236126316957461720497687393283119776747542577511008854876103409155761139570855779018477099728903706101337267141107919868166225201076193882878967251654275014893128740416368778586792112465186634920984012053261370071780690833149934529504471358418523679196187322522050581935649432533742150755406096300892653221814915279647958189687388398834318287869328404852853376103974036419942631104731084289848287191392840045693395581424624990794203644673556323693716968292953284510267822384750244477374184177366731587075341044981818641467865863514009463596438435453002008018417998465256950498002061253231972602359056902067526815352535345877360100741675706467891082776214594507194238125472737241787989460461434294368554123201848401833746611112327979439435399162112733168900158863478689554594438062765262544971213182679053040229297651929756858661816403214390979965340827170497240378641112597877418799272914247926864661365923192080255337904529778920272151799475194354757293758623821676227004278463932465040299263573284863843002626117753792423669793580769692856248087836289254516274059305114999936568753320658856480762787999734374666756345366017183958054230789550211471418593485755616022669178764099014821130970565447336155319352457262537218314333602242756134113861755985024818719706170149436963852240281400582359326005556852934367067737741037020989083696749242592236065154151926790088245400606638157707948991669816555168659214675984799683758206158032243675870483757563850731381187184754547193230574632587455229876315465978445759150496640891372538701779165052319235885637567965336024544227814488101316149916287079838280934939325326350831207064806823527640748582942077481772880634985722421306042747246392302044753506585151906151079874251714139749532453048980786941442022759331930078925967553999747219114787191801757045274604283167065271674122365332832839096063763255422161685993932479876714269888320746040465282458124211768080720810383203852796102757865057259883372284713609675205983690402341705437375799065842315262688268478005865973301996989337803761512853954927914422623201818482069576947651328924878372971102296215023086956005389719547090754472296172204143800971045027791662525314753496065157626262949346668129422055100622501349490361816203081972749184124024956452270671245601739398631700006812033656452100034325920999205728105565526178924183061823470156088490911534748777449609575601926650664725394212594467489851599412964060050521592386132653229343292213798190433667008569641468927076440572142293641082126998254361797160171205411452632607017052186417744759849573657465575680993660721910191243578909762687803044030451916256504495681302574202126455308394510669160306602114603235771679625230827162772984498805114589494626382668544114728491565843332408845993803715044081979414144382764624980879812263983795792193966263474255792797911208334001388766960644722864443214758266073738122139175797021728169737650669999817533186986584227276761465120384387988311605278131023008000981308042969989927742882157061761811482225724356802165196736872264656592346971151412130147869184022118793486528435653152112862447393904895034523823366348466051924760606628059305813757228628511493941399661062300733486563592772616586558067332151173668917723686268701762898725811621361381603096735203051543339608851890800230831377918662544317487595127966425312001461458537582051937751037619578769868470440959279744074536369935688383928120427672731175062620643012811501106634188859813603774109953632683341820662232546118294730384619348818526115331786062260510628155933977988414126887261240960326808342958200424978193999347981500880545613271671862278604345080522833438607716525343699905568849845633255231530778919599119351675505560841132391628556774838877404214024656352778283514786899555511786898497976213622529340947168218701054793410682777477559149281351610119314984759433476360340619187526788806782281618923565222827204650712555867826658938923434601503604840302273631873094644420878691033521600252204745854593778722973986755458978829526068501571015476495957406708113275209963448883956665352008144203065214871095273074803055473839814009690846881587649918066670549063541703890867466766941117412974849461661102706910233919487983733007174653155405448224972522856143180042877160859699376486457411925982806369882957005224973215780708552637717992153065886926614063779455450997974311404011594517228486491670091769780762797468878386253351789317740876142168458962951974984093524522420310058168734304826104315882252656534532614501441819575839977871728609043158004995731002561837903029470375512703822704182550683612375383006172372830690004409662443007998367865003515974126517334001165375388396247560417463017994355070858030160486785206533502901179497332830047589747440839571537544566322680483140997462959975615713249244689003080071507534193728746311858958101994663204810939383290564323244579981283327604766661982137531400213867018842637790482532040312073046770977208535441035195280187089111530801157625130127833106425187083968662499618008192570498676374535155371076193646578233993221422393622100331737294560131248304562161636112046868013840327673952386966127364001662107865918316964745046019212893174098270617032972402563446222715899179549932914461942575714443017608499670185871850173421858644519858081997242891621648179789292363020975117901941854288972999821378376696581442877283730294232985955887559858552849230093178108580601244137084538170991381119851119997091689745291866485454347458838924954327029610059681200896703107432648539592017645024095111066114855192799244701856069592102752066477933448732762715798611129579829602315826532217695551632663576632541962785560083719082284602229287510262919248466606779798265172336070380169408696293734855507998694554240051774506758174936460815318181696040404896395671440085224581461738655604027475698175917941109327059137829752340168225934131836818007574125704687404315063101533811116495530919124362175232723369261612219392291415392997160226695261817832106504616142196618813125190722015092995284806520573291280354680871767290760966868934062270483041429006031655542853239293138393080872352865529902116144848324080681936568240972503152578928167826690386967663141377090454780561976023027711277866324488449115254905456645739510307886083053202765766603090845065566592443869788418175689848373830563925272660906149918965614954751547253336603202802057892526962515661491883187799148927070876846380877485963758376895658952589515096551866604210496436809644180126093618712901751617328948059956228513820296319441578107302027163087166527400150451425810392594522698690489120638731231626941701098295871950958709100004076381485558425345485240595782993470558363980697318159882207915690746816322442192534778893517213626981647432100717508463872075869884907945460594589493225796638289423549586935035028705124293691047214397975261932594870579899098368829144030119139584284954491660032794649695771594961286992689117853019060364834996586007453732759501900946516326062043234072544425004662664904264472047370739570233997299606236160853338854098649513042070054614858286534696386529849786927833997051399298850028455026314519153166630497630566023274328199162120048592989419509010780657229089564339377481547907178085123552190442415961687453907521402917152124025415182621099654510935742332160170121063256885082896164857208461525704637114146780893125079182774798010909564466274785159644205007318765951857357731538939142691083566047801639977173678984919593322526567222837110208660071636030962635610991601280250615734418902882182801246388865389638293199968997909488168727165315598692885507975035263424676266221634813180569741405577776373622154426170782412130200128679381332933690334234016744502727003647408273912814646628575201675442536938827953706013463893885482710400520026324457663477738107880897710393655732302709123075405006459492341320942976705169027298634154404908444196609133813271633565592415936753308149034743277672609754707284142148716577283345319890631800679231915297427992910986402374575979170638998124839543842766025109841633433576247117762298225672690367086556670266162094890856124866540537120930113594147903345645417425741832712672794819875610065912967316465960527653857727795038595690875665821136023925833376298371188104083703792080710802525444245790061485383658039897450220753654694649761414242885648797755657360503348209039205070536457213111018261742737054115375995521644188841357544120551083525145816005701139185964993778667628161504103415107694846340288200841507042583042879752805957539362569954578123761205398238997509706624212632777580050379888546011264219569849841008720234225296050049976941995872202835502065756721240013833578777505160099514227042038252893288910611849997005389352972816872936903343975325487971148457809546611458233007294584254431534341757448008047894856103834551791643929428978986429832697639922374511959945110169305748002993638999928881036811031232208708012148220251182169912167691367040002506898462172170246616636453784267338316766535140024995620432566557941354447681219999815342678374058233258633517838878180997152582623505397936813405732010592444195069036106602308502224556443899596977927352258878814222631085379421656308008009069779964382300222279169243910608856514243932716074592406911248047811727035198807449582776470878080523546967280283125286501688135657964935654707403554488712803368850601436584129096929373464638529731368699805467486806998811313375368608613235219351737111899129540803605397786956361917329636791706894866810726153558969202173396919270948083946604273285585618014188735749437009187573907117845662394888729767438466950659100709310987085493090811753217673841077707612485585567889737785390645652723129059440869693064642594613745112101166276107071626563142287961544720689561810319620555891829207033565326739616151383885741107136201741102406418327669297200635388665078548374928813650688370127034173114498461560454302862801390193011879384671604051324306354214276107159075124718631541317425820833751453787824929192726600753291950877268568099054013364539973878190334533607934360574476129013469193334338894963120750301480037241603404226267358698273310805762509159665374756430224086368862945136331395782974496665351408171374630426882171015029709726787791081001618322204452099025968009382290530958983957598687378267594330896661629580981994795770621669827288096505895655868916749538299857311510731952515788699608443055506099505544476869714617441199714620397966267273947599866485493252082209037564428161045342093234018621928653144415897087978987555722848988676577786902187224205804096472967812003270263929339068874626117157496941682671454324689592266836961320554853789153424459882534002120187307984544882756095545376614610879679435036239004385712422138373673952917977330032450013654889309843087736301635330387301431644610493148313353792933257250261081895660401332026542379888068696050300153007612600055263590114184712357454163885048999339537369805101791788489071670084922664636509814001696540961355474857190388390215277167822895920292981482394586720681469523963153755205926886179287281623272656744922841668098162940603841252766225261107806535468551940109375837264474036813870388886982214706180622828147135248994374580789774655649590816519598693111647705546361380627723758750529502143675466017257090327438831429096016893078253030583121978487421208958633620348357466389961222737585052191341897556101577317976319430845232491179675722104924270941572647545342504591107099830885590355135340547285046452343479121172010724691042113818525286424465151625951464943746930095348597498534922562474636436326939454627827835039651328362927682195313378271196700151024295448921767810438715012440441133879123306610025701531231292032257040190774377062073436934082733896749933479502488695742402995204421039067630483859483730292203215021015245920348853703630432307015405140289076500826178342590276747029214796118936215447941669501356634189863233104221877652449675035898916442006931058815145050257022265028223470385777707715403466884150024828032739028000357479746344690232454853426782948755447806854485296466250932127793885225780952969232236451354531752432964993231487424556353681792434180749525859831595904035760956977079842860816017633880768969175406690518734960609631581846106228980393730165335369227731013449793974809524153607230518944303143400908493665564487447085117305902536258133923980602753420486684047079469664178021774163928163964365105134294578320281505006060603394014233483462099656239690045339390994572250392472171978668823437223255198111572400501690576297758694899858210775454674921761979764707310345218963889727483653105449381451667236183094190509192885292354019634501310018707391291356197150565923029522010152830268895828559813986886459994937775013255688543153992005220200344376406362872385791889007675903375232556186774627963158399810147462988245957893414955019064545748377737746516649568923207481674552293878283917366267110207481410340523704413229782257944482181727184453946722568160747527820587038346727718384752043421838578488270595307347122612260034136510011394454949064740531894013836574873882472291672732340457310598222762821328243556897699108721811220336465803977913469859996493248689334760493827588648666090943417920614092711275296100665516936453522782705204308039158014648792122807076150409656601041892644515152162017909855744566290535309698526164804726068191178055851018603178793379190228507131366941155452797992762381266110106682399489696544241678655539129087287297099008461214171136437186930561212186815257357875604459937821116134253754084229682526015790257967981349970765365002243256431826461030355344250737654984041465115779450952089593111180469461140064145285796619702392918926045536740141780429767832473114798108543572186749250461520108330491062647319961891023746904075933017735995386580882521046399818065476088746205871540977124634486997742016618569127673939367503982788749502279570133348510648788740910968225830552927360550566183872329883799465804711749281222987394108817376472516027895964651911434616551718242796760141916868513333790779661988429756146144720372186946346033148531186273960148658935542119978933466314682468686737974570048020165150514220983531570653422897522951731424739869189625372701825720807124823416200935608209102256552403871412760512539959429596289226169574517374007809552604928925132735666397483094856160766727064575100273113208998421102807605722120138776405499509235583279154140260906249747550337483777850281191802388957122993359863809869591258078470622669400723503662908050174478867712840950808107934772034425406470503038977069762120128500086732244571714434883527497517417124534219136819757980663451624014688530434010664806319834310468473686798430225952304596651419556489934792378222996998570540430390888365386097074466318981734540321336738742214320006886766714591001561443480531356839545566041176073001495800552949335011991368784467301513019331075119673641344118797797422789372788095017135651542151211270530236687520564893556875637038260710130432653511862820392760052802970370491286422171905858740816541708894522167442693366930111292395765567592164359117600334756145986689099997972797554245250012576688233636971308890757346591082102278021222825505838488481700473036636320594248530262700487016018088422377818586525192587528545070526167026668166968405082785345884874003561183662249426173445564868999044387549685187756711087278322735107752814386108721572044580765877136846386630060756332351670929441033438331391062284949819068303513778789578448716966073945202652990840386496546953109817969978250679922160295616797745096091835777860735188720967166120764680777157746240699934873770759864370943421430535212111826023341973508393567092024078486122816632640551217996835757922036585720435528052353610712621563636020555268668090570785194596025788809122557585083403183069552439375817817413990022300099429216460796255894551051506943165099713472615060255407352580825688275943375206601882641702823508762094342631662925004327573692957839908498732126561944195903817423314173122177733111064858554686672085534264126281516314233395230096275281102095578239742986523088364385055211119426576559960484057540106219686589563671629965976167005318226950269843671836140235813806488749207848412967340544327583909918790927362904127375179533072321463362416163885965631333153976087569246292417967176862401953527212858507852332873991267167580158330739967449372090756792099241123801631746990429821904514936876059290960116575187251065793442710708145488742547100427495632112317206131607432780478741388573150818617218398846958495591021378723125334337921464806254349419634739134876164065543610386910811468374106262599717515291049670324575007471077354381573164719661732747647443212244572179013353377814818059223539895778756728906663642131824561752332158644073042383086487110460345220194077632057778012665992248757215028183100132558998191850773030428491664416078072073280252873173859693497694704377667979600890208343262542930250704742974260576118406587177263441106723272055949425732245402902470436464312622396597940252111172141290744092905254402622884668569555332288238267207529026612457487476600420138794276800039294392382006655815615341497825447338812470286048882336231158135038485680540035322227797576949624889971004041199095530089288827548870302994916247336483944770323951805132710669372840428947716506634298357342615580849233732280990033571608028196397484745785678373826020568778109296339550012363908702939215900755862460218407674719182957365882261428067430869919915384677762655036840162078374840815710681918681346204841205941905086436255099064457594326474261357417340624153860746630851493198143185259859244770847301078882398685545537290690444500290970789050561345154800739985063588774405742618025546335861291587941535254230460221084074681806858785750194685976496992188909867510416721367410907628927982639000656536861267748787498667899978075797820904654853391911381000755359819406332882319962701247351237864334148491877120228863523278885133497260018967711168219645848064018179836101830573730714622577346489510868713787540435626683226421043187379887557991020626797436366390412149744013140306026055307346369192258520284439024514840134949463980648758730592390108307297894252997710727391297299004748895871811631409672412007431883175890994925509473048969287239278686305843171206188954266986216337557499047326401651621407152768696888059340228802243042680613659814419339866048281742422953464582801873718020986993222293601437186319108298251547706583305640421368083784726143875694964048212603277119299579235252279728754735501797480651345414137185202420591498060955084360743025315914639244780813880756862081566321443897574493848362159224695434616075923377860562122113653659450632638031432724543152929429030795014450196870676728151133914431912114514578621167674220005189005738380109887910470653072728339000435170830143821534589252954738935393897316780680834037248786464511434773922385184226008482350520018735994714628650731191871331485125453913165948192290614313029777125295100290768169777068953491573363416899696559811079684008347088667992730469512642534008036080921332749674902975973777419088334166979327593034202139752287650977668510900314512668733525154735828739993708906525958596518518206811669526455124350706843889488801503707063410725075370000380400785996587160022446333450937060821230028587299136603492036005823756856267181001212770379717684502951866874844322383784216293894527167835708403827223669523331045922829862479313070209734259326882103641552515921827582836992659756313312634328973884807608901713943971387558825218610352244095451509183217733571889693016439847383081453353494444468078328788060853902824797535775645969665183942694638337215657606313116059815190871666961112635657960533945513774360359797948698355505048240961906227373529048389888987965306693151753119918261780856514633885313443684871089489346267385602345971610750006865048765717084567147565735419954888369919417814606690408042301097100092970796167844418728371942366433573603914389463065317391818196063015156534423543515021977568619416265850340761484666583502784954075644293788618176520652833867590587593106555490676307151679865061334950129395141905886907425409852464074167744630810572103316016390181959079817790946832339567178182385232014167083174984220488217543662424503340720813845086751340316635330542001827764242321258309160237812486381214339379955384838901647696607735049359328758840385523555715634432557876079233614459553915972055861868787191034572241033556517259815573474221896183805689221544687796737378993102353279121220909466409500837261920935664568387998946310838771238127397139719306566343635802997035293552053352190297880446538429290291708033146207396192541629118393876172219840710381597290296442560672288772222220165043576332065206062455264827696696235852795773876754996869647307656230337463948658103192540587121574275133988061922849721611972362973084352618612514780656194666646979918085879422765389969714196258684031675164467245543854060872482314275174389582030990341856528634923374763323484872947662908796999237264762774511998857288544038687357229808777656422941779807836383686698104356700628940787767253442082155741846191685739339275785023384730183590490136275544088281171035821191771601451800289739951814505140992158414618832551522627474598314458838836281650827870335703690034180540894773299301899026144896511753752565854094448393551860249597802810881014359343404378221530423727709732876115677117936654520391577532802113839573590132450859516197523723940986029469017589391369304266181472280357443842408965290754976961737488386489283020472680817335180954577101848908769389515234841173164453526599125502731633536074352416797980003791442192399949034516206772287621158305503580781704511475440879024822706183784973504343752333965870056829949638039826763852614360025973717694519118238439375298555000254786734087636676470114635462493073865176138171743269884312567751914067167825202888045701179319144012434203804147060885477149132254496475723104173829074632514945618981822960667761440061841242327281152353483123016742250915767542955551330459340902844428581615033716244705753317102634293879542831653412660345280939192093515273965256199180326891997367140274848733587801233345590319147413639301988115191269507886439351899810101964413518390304329910311914735061373785060358298100736506932760421710328661675856770853836683186712062577454328329889443285167310576524594765159174388779938882109948730789889252785824615005925933612213972070513260466226038302359031866802978803311023449501693337236606385016775541499294263458984155514173799868820092253652073620869620271872937770686011253967081114770419325080456263081914388042285225567952212140955829534403357255721673642995509053081283441275287531039058527132291876912624850225791933649208716476670764945168636562110138402195824101753162150958684628853172322859667537677816910351029131636431800015610197185761597120154823403960633990999549124477494531941158557164557915386761563835766749043191499708226897929504944582725742391662230720996441236768791968709770173610080847101002117439615989714036375613664043795432677261793997448982645959917757502068765197542332184213825631624830381105847069361093776965786034853455959760848994866932624839753449698284369183557354817267156962896267281606220341062276073188748320338543087089971644641173171822479656797069186274097305490306130261036489006172006859994428130071408082942322523165550547736359596084285547300192868351494549518937735559684527742120885116672015923889277952461740230697619318313974168449962384981571046056811835158724019711179207987546318024923713494986158164567294726884274507845128025373897013066155114019152814277997999747394458777081833866415655903936388236913098889721144703401500354900270384279497104516269890627850803724726992173801397175908697296371336207717947303624996815578580145969512412017385934137533269296056615384824230518898429442925332424681500734165949041825115150271825866443915792933874266797462403511242249841284797754415969777782007796578594055133230870484430626221241334001467303471397794628270906681662593270301754753602141352415667211920006717580841032339092472214028829981842499786284482942369469652899330551088900581920416940270903163870919632174099837581144009429195070119486437577235997732535485718516131448668453222397648960147212579349714106302036427430225586867252806438194986714124240404362773702281845176626074278366002722767464462598992194821863475528586863835075401420050059556636974986930741749019256441640254231383393526608217412715449625226624856264558439990017224816099932161180701208210508386710021634834525149103951070412677425206354613998126403097690886624950743238476620762439761735094610141354618986208530627719217690839097846039703233257286815105729307652458713921861481304332935155864952102360231057291444140138200232217295198841019277565504964601637077546320571570457621732845016655469818308337757782162689350849447290192455701976990552367900328526769731394083567175332984698127621623210508686698857137995808995123875120356373552329280626470992304532822998249640942536064570950706081440434795085452153372219756156699416399412574079157688722912446212790735827057747074944570148490625552507909449324842853479174098144256564609037018542495088861144652246939822543787613159253149187402790476315440847664390000771398155449589343515910822512581518703420894874416041441223428195354387899019526170767606808364046851517302139648507306996135093957587753834276716038955621281666455163081163429893981026739570312361176306295795556660429971377380965748523821535072465111078694907900839845940340643248777085123490341064696321065891208121068919375558040527372809536974875360372283869737380939087007157296902139366334658195298645284820536505063009582683454562427850497090609966539867897654971251867108319627314417470014204628737740483314432815473669892229850037897691172272341933018593605913665214127960306417614041012236318387893879639742442628602406178878507628117404810106499642708470278958445985119306209105573518795925121569093644692660907138830784687736392868984826315679685482716416216727182554091534736885019180254971917376029504581963967960463096406949861110655605687967243239875724669161290719668217116464268059756962371091524454875952406434043867422868008117779332240601402595941605816645654329741879718404499542426724102199959706432144436169125132812491781269789690981587355121156400789832774558004549454445014851647248679300269322085599353171841535711750921570858194782862534239875753655251177575741067184292760200394763631913677493768823068251605477933054321122287792205171625319297710166184232577475469954804045269078870069958232597257337741308926664025168397015305123088238498608052334897029239462236711951280851967473012057477507264754162940642405248761202223378336735116513252956466284547774840707944289349439409997088324103009122120933886261101549727736606231757802107977607711253750427083492932638983417184903429913423221499809768716465925609118233335680413102961839627937110087883626615111262377312547697575093435979235614220414311307507151110907963088488331391592019905401502121584746922223954172365212118661077369960581465726647824053218886366831380661033930600809298398783863051843210823219732589346910892013415230014133387337430445554101732543247409799844715482140575167066814310108982482373613865965805592617581290116327032281389255854872337472791796812883937723510672797555296143330380646151206379393350384150949967370027164825269860650982629605591452814103914814033683077029156200816376672625138884359903093537807979815014628658677937910277661514494111888631285994534642733868827415164130466350430629289995790696490862836928063564411051366818958549493736430462923512441223583734354768789987711811511250170681940418194999204682467741384478139088354367865988298150417441637863341699861448902433277719760930466165199089660900764513308617273424085883508283482039947851878926204672102764422528429895059460830239479336661387886418108621806619631966986517109995076799941240376289575077651232866280321755922878091193290449380053868948636463825515454692847469173516678899900316045349068626561248873565651315249566814424837355601290463524219750927207100027856948097846222683825328981943903142310289872968000851747129215064673018267649170462994201569119096681609481109864763904453141584750678868845651429881275921521503793649823747201766131333519272480910954555349322757523380803194551291090720309428149331251309053142865150482563492957033013153299003036279699960297462622398624575360055393479476467896326558530419347709789311556253730332445784167335827087848191649788656505749861906318760551501520934975161647830390767301473563252332881298398689421762667127305339724412675395262700221867924747756595561006883654349985985290484351214294949681066578482818216257598888204922733619653366763709179600449261058627464278739702769159374727035707752915752045525769234266616077479091407396910016301182327325310058679756934854024197607269176697360123716272004984254479598506815733319120526206121033448077573494316174736301769399875612330670300435558236485234033904857813560865046435068111186202257495517456199513054029962162638189168274414976052539237044520800486212901381974118005367619929928561664468817054087746229192958015026154747084455011495970153505883409580578470274177446704104678010002972642925104559907764199462593418516470741784373506605776117923113116680769667404609649281319220424505300884732411193890848369520212685440650757039798250966865543346869536282312658180827188978673298626057460850733448544945375754762254896011629191208587891414134114712100225443501687597627988055580947159180023109982686665119100443864381762617665889293692393084588288001740272609863847152762434896821359550472249214353658880407810917228539704633989645088185686304292296434084140875813179444323114711367486137589484334570354459533140583902191627004802465308742226017854338932785105014041704182605001859566851538638636633446172318337240048062924824689422403520618166239985278601209945070848130771063316877632357171522590673337591388747879591668478061165407166172967401906519599513523379582858974811303103265168792030617854686446031060966455602985890256643464695167288268287518486686689390141080632843437861830921638544135850969104128764776085503457272955920222578467552539026131445276956750155681687867572854369152841687677609770188076523572719363764913518711506630862670201675567319782756245430457966594428424016586810023827036060262706590630012432411977623460951997953766809286077349132466567874387192609144229289010071299169733890563305737152805588302354493421897184825500114779630337585796598311824812730011303882937576358360330181513911713735932538598467859189173338456758937699174721268229987793788971248791511974011810252149862928363893859081963789640409929183255777155544877138169569082488022321517628142023715024916766219925357558508792635533523020788443909775231165039154853384487420945371083577829896666884953416063396607973359543057612685530389922824490858106301036419012798087517144009862054596606050118884496131338766039246752454097222362843947323241060331098839937961299443109922462204343291196291740868956149011664032443819125161825122077845623847334142099234802129570842297136556724248077335151891139666073415026160489210417548059251004544286701731325754957971728601445286637026047165793694308113425045476623153425780552168358276857569797121973032671270817343201868211202549025537469313365692944931582744765334420569369181170861648125089410295678183277013483622700148991145950018574606406142984132319423050006154295241553281818284804372227982951104979419190205149344527157830118326173062420423317468272005481627007987456506696090070228032311573216432875087590256266388500595870069954491058853285772122664481167638847110317215696009428517319282417613077453944726035451692161207094833592318849350350323127624192305157259020426020224167950841083177225600501949317088755403461909472860530957388871745300148773471300424595618790100810997691976345723993460118328800408449128919384074085306602633221420491945553809272090354780001040674022324641686899476858683689213803650444187203804347794390986266643865153036059058529687268468416199383362835533126377549916532751971750361506720614590980876509946089433706796066313916390331467895159941132779345728767964185711901086549766745373397334814667646165805588404728520669541895466853053858870887541862215251687245422501415701706686105409413937501505882596158705922969815159863630630872066236735897118802269036746039012527054717996834881917492715029219656303286873070920476286185808808894301539948559950478178775516923080764714155623775714895195659576540958651688096237324610038297228421680825657227304413316920230652740784284265925019733596033009169700629439709977015844229044610932396849579377082248380555286894564457891071216403040839688383090441882045720048901589615806641075458955377383015169451196586909003221015611026563622848280137242106052413791267278380811733598838917070506030195742294681204632336062392925135858872548350608612298761342500888930214279818419593144162560447215299091507066370097867775589509620519514476953638828916135080770245630029543941346593898693500500873800689460687125349044699117719055433443787305914837914385028954670946951847135233127278367286514206230536849665740925732593132584812063563008351909404785587729598594224962142332524190394429811847993917936918783471405558971577912402323610482034383298239311111479129887179412652951439451245264321315464801905709588664334881899819616905079656533526789341162166897482031597154771966518012272044457407436491699913283061227325655107660924637906698201902161478936160742180810055333685121380130110887732171761735980998009392880585402100778771328740190811924499476508703284309412379806190239883424857511664346047972617149527421814717425195004609578247516357385253490037299442772312900978353674999123366205331311121255810878882856242871629258762082964214525387328373853082794890833918261836296117417351949440334377184704727250188623622457486214128873999725089991309326894236977440363893113557552177448068948738960300269723630375716391134224130024245385267823689760154803484916719391125752243415237738960378298629489111929734601605170442820722077128058833473704137729084466130123005597485895636738449828508831888884898145916794544210717042738134781837747063498812544998094514901273988395962728894611283979338306731367517335781351683595048651663635037777724994577272803539069820065179170786870424261345188880896441742158035427355959601059235008458009128534646380408310094877567753388418150011793351075137179207510262315921664110421829940169732635375830846889990219184393238283927073452270446521444733956866616106588234089333920623056610754754844602844181041026876041050207878596165912462100502882854373479904422335330279997160087227024373998057653598453574836295190250104519159761434451532263425144733871368918899234223933659295217289356897361501537678315398001793666992293250498802000453698191421141808624868586410069953725921774983067358920027467943857871428042846038385366362050312386992010972550828058618990915675425064033947445029580109714027805864061115737165666126708323169210721311405664647217782882637082441247886062453868732504099417820795616971081609991529163123578548101612055227848629268099811103303418095095672298993552247237909626745470935141684142005271923398838011692191002138906471228810134965880492039793369756733457242086210936079164258350109344366118867726713994143874826715700938934303837264469675841828038567644536839403221197032870004048651070679606443763476295443325571707757011794636911925317827957349883103791327174330133257937324609925241261254994750333149704848255419323459766699585621935288222156660945319826565208517663990700550645307726274169774132279412526384300178674098557741954430757013826668618289844729824079808478649418695491641092226586635093859799807628099953451509910082152407176508515790356775242229429993894933964838110736641406034969732902547258227396355425368158893143392515215804668098059431385891335296649623117511477756683877967690796539099783480900305296650227281595049686585092345429104431463664552894295858384272394948713275888547606795561228458758228536370160737953667717637442965863831767941240945084993778065266632284058275565048937870935101858601921277011674590051566280440149100794680602807261284691621051649382022210397677130564612700466235442200061260583072621695656255317358282851757450024030775928974878729402902025656334489033832459804483415022020766782497841041706917389224211655054524435914502404334058882199435012947845025570415181560221827005407217749935957311349173737537177854198402259964109449253262058540564292721159387637787660745814656767413462077224096704761517780152142657655766773581808329093035856632347642042890303927302157114917483126393339701675191263151415163503540890445511554040941139723175583330750762941716930861410511417370322614240290245083990906910501060245381615423503040495359580538871225495369002390593295644296608263804649260905640566610892418138008308852860405389631082394069967681610875792952402574957634493203610970712622006621521852815684514337024670326760277648769658081514452657155983090111227878464160903756460742012648105009546768060399888451137092231985569208705659817440325088174830935754766744725747684397957377040600973796343620576214748588442667928643316404121279434065516123372046372361871250811090211934943159984208636253783455560934323671986676914737966049689464822918016931176687235935577405776072684445749271469141661772361000778552022931520351312717727655020457580235782205100964641077362854326732950087455889452783395813910087534477707575310147225339257124810876799064851704128949295414320176211666189903235632708937578751074001911110212907281540282749716759800699021007159349199737675161253645409494485898590320902250878909312025080974096448762204973328395173472371721999532127397711571824858000084176280886977486890607419091449264243725406415045789114221682920841956460995111671312784608285678320622717481568291496753154827757696835752464122384350791158289496963014544198647590440286706041422641332800063220374921654519449887212612847926923670713672725642765794985534830868912976460532534761434088579051010998893186790861729971586466248326581893500051118648951029513193689549575525733133409626328642676860235887567214257447424037575953034153563776002221815486218062407797623373233549868028639738395870031315399183309555647572270544439939364537724915418793729081323596368878624241660213196842147598615398467049846004142806594007230449546032758287546544649929131483127383569660096529543999447970707032514349264513537640590177659623549851693849192178645987099028513708785283666646165368050900497685283476568360867660569651203397450563564364468837091186559316999837974572290560022984153437509635399861348253904635071676344262570902496392060322868876662975432733410434401655827361628772011675619013662041929348844232324337612688356372444634497517209397975937032157917140716608423117351127060979411117289685875247689030141650805166075978941478922386120415748418440079846247821721228703790832085191348558214439812884417110261714452318132544132026899686236228040664827158988950301264108770527289617618015137230664685085331645568091820771056284837550781392400259741224538505884721747444714366682850158355202964184695930419131573470850481700522784960252501422036774520663139027344581928146616099119884231243362504126278199808351531901662174578420221488084600436273031381735494157831773410278207651817111662645861827232306021239284624922043196332132736981813639616099242604473768752791644501298566525770500977073482390161945703081653455096483494097890628969666983259780760400194688161270691147998421462633300965964806771999000481148515070380809511408289107525571376665289970010990754758634620517856158201063640119876005709297850914932484390039367648962459853409569167352828200514650066894917294599706507434573917853543965045254989653413696996890425253382821964050946958366520461181926401176006921531342700110897350441802445959984444637051489420657925724586033338529251372245144680089794960757187431598651905972862847926633696451131501358782688419940233658963210042443828634439866193745717944378615384297024494495841992359943225839276558703131113088528458139999835862664246759416665740767239899578601789408175714163602003900937678465577349630519453756835230217515448593202473127992296525460895520974980467629498710769109789660028685920305305601547771159773791030032874280162662886790448792549246852389124955409193828338069263132358148709689170576694315279318641242984529150104740563933512358892813052423350898020803432102789631958215184759250763673505956059305166658916562228056036582556161832706947428542177735942907787236522666059156241546545730734847512222693912629082709100230774051673465639838069438699031868111355329120368500926878532216587148050496401967164987626491852322639657924664404607626050578183818080066590266079243845042547786808665451859521533275242168557853007253533020214742622178826155229693841754654808056180260464156413642947971777203016134883093852125977432436889092078489086123724701645583402248988243440868427598141606700477772576286468615843568654044783545982756544955218424050426704680917359292394319804649188561483830524592288009191534004716486285696138944271809046777068030104112373030839210266306124145082583107517198636558704356576100675204219155945926049838439986084870483952514624913705977620317795190466295089143012063823705956917704278576221813602324764006353636812868964282675727684609833752504969353347965258449786127037885391450720734859001690303434975387422854659688902973102145547332574340997714548275047986446527163235525782608330787161027484377023810136637087794126708541461273651753650752084173904522269120686563472765801331196152120202087751289196655955529441128485999459747864395390246227551081606426190074010460167887792899837665455629951151135912204439784305064010112429941514666444124357232012508511783830764590397288249257216342288365627797741383637947872991630165689841074335659170811801626337781023341102438573174177131052053109783391538274053904923019437568720628412619100761102715789946988043192387113312806405039390387923531988464854139816060562267937371561833253736302785253072050390220807236456321858315059982437960026677048964690696089934495312871550437366238213377785792224366193959791055963051687683383709171035372823092397346002851567445896625816254487762860659057543730609888378988813258262728829776182067865002610673281185412759740377005371971867537251849494685030807113890071623171394310463210496292976413794890828549054591629936358175826230525251421027531103704560445310374936943202261642270876428526347701133980046476935133773972668636882544844838928307111997156699046540301667863609609410947255159962168441475322703874590574499303211381220701246488011881563326399497751782273655264145797791315904481302547506932953848541500289684955527561483170862356136131622796486285233641030847107818429217754922225137029209721631800308177295544960795521387948005716795501991544589982399991470891333825185770876507421578916590843731392111381226394460984844752727491252885220445615267279038768087120663347548938058766434133841055398243766914537418584954396630351292910315219714528872969783132169912695694408381910104180519178022123206851782181963570698821464411784219412537625163814692985638259953168220771470175634160314368305475404891200746586432170866563839206679342443038879041108805739461060072350889947001900367628206902189231232973406714352072831751543177741841792631722944357747702033613005914860899260957018915350507246493735587038437962691363243128994673925918902362168662895162011880074645276658372081628367144186591264533986933980539219399603911751415428661567338354349098191474042492578233465423954282425921424119182671131756818216464658857398114364805812416841946968967252400147686592630809696523627286561121233550240031174995172756514349356921308554757422812943739654008819426990620759375489886055702299612103338855190612412952006479920121252221088076148899177339962522986283128465315085606640880732522142214238855526270642735398177251405777540852475390662495532722597952533013429101246575593253829281862680521873181469963021545646358084500267247784831980889743966422293488605207789376411506517022598711172376928812617692492550417165282034773566066477295732419432055706833672865853186113852718367027629223624828470538418162460769705366498692987825492658541666048849587440648154770718746649233449760470057322622127298075705201541137230316648169826686731806154481145937917448459276421072439129156434318148212321844917843210255841319236184923971028977678625816083938795390515359759695229914805033190900860784592263463929774372916196995204614769610954000663277823380036225130842340252534055414675990547371993587051820165215005937018375203106181738942458253797872230512892317908118131425744475804835681117454923491395290817145848902351669953128926257693451500191047452169967183418672964180029903495565781176193887737767490541563096530360101344490951289571042843611437783016653514225619136199332319217817887475635823342252014963461304986966825000007934909034009755452010331221665892911862370775925775703550895475966867369377917491250026937700651325700123291604936128556939807702897767769787980309581158230272244452804725392990599410614687433125209248151684375126314920737229174256052436036811207799127687654520402515597315451054399312524445879668250625999808098867274499593799830934022790046933358203064591428115537818561176693369120732806404830203776179287237249221243492327963910763529928571648930695947511866200977411365064243048088392302341688349505412437928459051963631733929757702187522456053900203667070911388875561584403613659611841676747657142843497107853896297498954597888717906207266816018886752803594782198961857699105445275085963539053154561217591443105257739267676294392098390161784986829849243404751927009010187574888767820384133646742964251213534953221571796037073800846119309088268920073398410834169806760198021201995239585864157002081093475490992973644680447931173088532293297458161275343664215751573491977522332989280515104443155569403279112540615779210973407453449894658969243679919585752870241286342232320946524947038796733771467683282591665514511069672672766248202741226296142759593916448380380005563609336579044349783234754815070870740174361479454281726942240778807260687847686211440055881697483112549182654319321000672592813520348763790097100569912440767414960766728138514073354736090432389825135411623727559021764461972934637517506416872945281294063678243528183321746248773784027143615511580831888082516322901780043627094098899498671865035374866217565802396752189787098188728474515005944758134862171199168319993147652225224113185666387149998161966469652127576942903682799529517296433849614062436291573604839762732944130957441453322997364559317642356636419714162665083898103219797525157568715230130094373269838810849775085111509198096663024101709650449198469724009621631292421492498036019886839784559287835971277620618662848825972125107065965947522323024794515408202949897048099546278365446026935635737128288747467204620808538552551265675342809011257039578382388788090496972484246028098793752873441218309660739896088237345807573091567293120774696798374596797671974457654945390614035412914163747031364720417952177433652624573247384701147680869903052392488320727503230892757238899994893180087746910641590250060366358390681461804383700267730342597887054328686972071931444676930696545613384168444563604346009800612118797161760018993776300506986867136300228125475123185199578551990283108327662292859450645286273281467522205439963033613278856750371862186075388722315884417475970768848061818385237980695628875748450087471916114088131884408466439314618423850655925290407644223597736574436967398575702488169181598248088923739667195861730335153873790276006736594924969789917684077784272832118933271350584946290852363528150602620593552455064653557998489978165071021464568383669724413922827354053037900112210782106652454348178987909818424590884897472302524638639998599184961768745048813536588317887006839692186524330891456232671743172509246010073171337371519637677556820155883141172885698087147027583146224355236246270357541362171851767762629541619975778091502422233376819931606217555841751666683982527925813010321755619094022715148231481873690732235243285050224251644601971998257398008409581960039716139095493647521478412353108202392623013918371899984966635221130140830656439489393753317639557348970587694826997988238700818895772964536337859387419136703455674375035236096464829469170503654732562792457516451178657550978855462630409150897941572351600373372950003759355898871264219001491724607134045044954958845399423320674003732212572310300854323462845424921188823605170558235920882862147765631340688547670258534625257429484933937885459832179346168859307354883189300317039619080233572929927536590919607313987061279623748673009400112184771434622038224929957815825901270194234595201486887040669025956302485679083144511156911995842540743728749992530817796129023584508343987526258309559928518144393413585389446825534145611413736965856592043081667228989565614137370525162448205606125037239054448633706728711937367984276854268159040839670610281534470933355054223658886209687614967140536218715425030504218445937542214030774874436127113325792665687404407327187143537911445244054627677842235229666762227977438872625576685187120335699747022450087581005294296999624999748082822936235559649773017736974038988578441503484621446726773116599390020506604612447333947156137467151244427049107971600583824514069049730421322238291752756731959227697860680294301053088297760753881747266831635971030748214226861729253512536984027985309941341331701545721856255530331016120101526133689236437770270722172366848013684652907151246688673948371387457392696648728983321120794712770643904354035105375006703493364178595643567826106608152210076013990122939847550945968904289913831634336795622250066328252828572026193551624947483273040652234742349877899190426521688761466197451022455863539356528491422187680366347042923149382871076324078153981638101802103234755236370878339918225969560962783136170525445345259998628710624737546576482704994140361874828979820814261167662824131671423027636783402896035768233511917260013150717553860506772677947502459038309708547945519179162395554281743154025005139355790640581389519491081406316213960572303818041230875057902520380517395930225320320935131752879253428486607375460024513130187081139442171973818226449178713400323878489521945835170571140282063429556289178316587886004812900169414817078947678200742273759404719916765448916029630986184002053615077391888524607281134810983147684542864625004515398072927448384563663248513137916769864244034947004387365474165827563875137869406427123692587140913416549968504625969967968222874407089603510193084630039352852928858207539811422663068498091419943182618568918834825603178103244329555255930389014065054744269845933402510749968077969212316465340917509480020442721692919291922944312832974482923731186748156566118348654937760559932319858078280986389228614561563210858476222458646375603166222334095932677332754092362026421708180307776969721528770789100611046648501025955354665335814414155846550838117277004443949460495891243858772773292207384011835234621701476558256954231373930719883169915691569508816978583681965984599078682512614798230009008648446639484515200158052072498566261141290364907524800492159196512663898520693461176343920915043197642560124705939679571624443458351130714711114851415694831810761657134758753587853319638926599143506993804131603609188318376226216054877657550094362037902320636011268181184909615303491358573827673208822888570140543603456423047781478477289244046628653406901086488129866174039822406615037864579919354631523891928539418995243192307331686123358804324800488745680527851460293493631340440745561327245557800777309223690385039251762245303491149302881826442251571550271346325780789396910387380703384963398410982596591141295242385443347047587043745881721951695097455826249781636251048573534716096986508345999112372099315001968924303917582179200307777831765964498425590246944291221932619876873020018173602508757093290984957856121068434925426431400215662257024139822554248406549940443341613321244884027849751840612304205865498677546537678936652589974160937551907081397412174276747557100392372335188449180547552298268144207411989180005975909846419658653510236332569727006654372168093186802169884865932071478189924580108081349345505889288940939063676354539469596973692874691651147411273951993443024415574394419851865869230186711273020805462593848746646437026115023166065148036169478172378835629866771730920664219634180536331556444972879501582104758445438384997486094980980548775262662070030125140954812234655811433321294199846197355556157528301564072987231338915295678713298115746062329411411995854744665375323814493213530140453254708567525640601850132973412993634762503205059318908694950815905759984242024222471090979592086104501892600669152008079696255177325283852165490780423703797879076411666305469574239981224241220885270432388883393778488700503781839847962429949558491782700620861459333865367149925021064390928115700518904505384293391986618890336134691126440683037232130571625728796101758046887950200440443424097983206344911542885165387634559493573043486937064639470550169319577071473751656594474045281314140761088653762082040447963750519348943217635459101137632413599004037203376235141342523480051753713230695876106589891047812582026645825842055457851583826265268033207285284570287725115802536228923115834598225333589411454213846469293558355710741654720928865237127381529298326531749338864954168794980508873682031089219177365893176072673361016115086838354895258288052003280932279622336351366548476824403243230733508966865001258184218100124908747736515171694123685840544195216398469021372361416082367702571773843165379338149816696667473702828902338009759594899163096492896520537895246988512763295701187480253548669804092016457233694154470140583866251766060335182962134978957160083108744314354624213350905104955491125088578201015839833784281055941776910556372669018786177740213100196958263716670103409409040666737670245492064321449941870771812784394155248488340360130017240514000132602048940872869657691374116074193123313187796325946200526188925112832144715517979409894147190261783598861279040201398024593929637734832611970542710009668516752381488349021976579564652680088425818089337430245824768823537510534194609377943811242872752178474938230070774268556344304886692252358518222929041099056533357631074920308308160296519210800416779249997245140772678977515468823120136575095650755634408530170366641368452755092894044400200885290825946451094536046708343404753019244211550911435333901460220189626015174366627293059383479989035614415131307503159336426632522585290823232513305523289578820140930756364090478327775452319426049636843911181731858137194363595785360872612699643552526150456342252656902848182371271574190884324917742879489103804399506411092867427892843518568881611613690031732822290065949113753971542540016558562542538633380591459611552804941918039864876112527684590615196321960175386910977770194650095021583780317994421186438379842071692131786925029870696089072030568553949700404713145404009007798354473864060013158477005476720887784906250419967293152091548504481504485788170022965082654643115111044635400039543683541104894686301404662664654600890091794571719669274009153661475349966806436835654477317169091634394181153834332716907220509504647912090810523522006727012152788647854022377348388188821919410623301063029634275963408485629083534705001871674579973827360840321767440131327137859263661197673065651895485921598316514392166264789551575443425596640584621564487669154296578828681214227348237965530209343442413628416291214390887565965612974943331811345663929928124095891996588843074192707928526629586906278248775836675105455563294688568440839356743405412601892753422745377394697538583310867379317796985287562404270477969224906014610928109681642148372315471962088763068035345018630356741668865904099321208369695395370316746385424842300923869144555918365145031771931333128647576980982949774285049609526666418911632344638041695484672023529873918848717534205872360509778161717697696433577092881086076744372324621729341931147431209263097601410874578477433676489929980326847970553627341803428284104379893240860101087911302454714720164375142960653959755617343896642969325081143378843710042353421943157006578894941078497390993959060715606191045649842110831635627528374940061724882407989985737184744133291559859446583900018587121278197429608538677430536740879972510550589026670351523646771388880791374138172986531735619039875774165781343122502405792723541989563231055818128709029819200114563038618027775278843846995019400747854464970653026813645583796176660878851571404389326425018964698574643188638355204000791114942582259265457975892307843472487164283144166203670223434759170629613930436058287568089214845101940402620115261175445779650403838797783096174026083745577163076204364886621968349332637644036089739171744754858859754600549897298175747849243927667834604306138251766305190443394509769411712271232112015568013258017812723632311280219745117183373464387497118752078273343506619106061617711895736072277819904936771317455774280627391721695595187069737851942682794714432382885381992135654380267832430671038229873452086520138827754559549661201747430032693948962251297102225769081933681803669566771038710349707821128946806948056515163509002291940606502214177344723821632881680588150162574831514665290801240055064820589495018807165375312981738758380614425755839439501898030684556573652432365790086025468033869565339371969897260223499536003985344168317950592740608220062832942836130470723106589082359114289194727718566817954253837347207029081868457625396570862400922057201389139305532958396177296250134431396589504857856151922000096581463333196583736368815020168927108251012572646667661806916660173950113290354187978385156004373951922616711033020167053382779718842735068536490692977767611633264522682469026401074704890234095852933170066686232511118132060823016799169599607810873420484455251325334583775465569736272940603177284907848731920149412899627963699399645717397450294834155656559766377728183312971436843599321808975717443796105908658858162536819600072796813473904743600106860214266497189142646622182944759502695389131053392328456006629165412097048519283142869500928666994673552192830291736127369739652543947534258703932022862507036952379459543620336430502362376892025166453520214721968673909784295097889868956510156233994530016017939065985697841279995473726741605727621207488667549358298821183356722274830546107985404457818390090592835780356204891165308463019408809102580065906655211645929754424003091737774335610544668672698578671026363228343146277805780421203989356184016043032619787735616252895988986251533462044958985150654899522543486752587860140910715220933755944272291253417971935200850840745953603506968812607314022699956965163611581203844890227199279455021613957387990636258550110614577932016383506868875926720934927571630526501323793452384449962374380766559033674084196168218552754202148985394232710414230555070000598578082870613678233539071200482739026059815334369804064960706864221838976548279804069148425075574532716683622327082566359753938921246850999304701922163407646432225650972477031403153009463372789870680878308864670052544459378365274002387651461773756274828123550468214746225757107977440793944119875972419490092585925242842049783885562585241237926365542408192335757373430280094526014866621223342284012463951116752008711113052577914714948916219114861117521367451690808713760431135209496966998947755273168429366165842190378601722183951444160227147240584196705026632293782537587792491701562928852515756737803200075454305045811440767932784599951361101687057291217185591943182472629148472118292726127572852697928535027572263234511452125579746732919646983925761386384870817397423401336015236561393185350465546133309373761854990786278518523249086673142877490471273302251617790540901522236986366883704167315448906312099738138856786107739862945542173080532566026208860568836360531734300725906777821427838539616052232395980797603174690641156797543447645695081325070797400272546451744265509337695009763460843944474305831227658299233941576165478517238280924813656548414146323028915608439821668719372145236384933860452782588898108263614680882122150037275653176035241660018279555393425403328845475108017790171369825790243409774463428763835787169876519688761082465473651717125506471357191784245693478235993060644149902439244846855801466226540037073065729955243762736351013187565393478880259113469510266742373578680550758178170460431624272296790348988290596340671956858621040629819352625682654538503773767918972265160373631290126468397125380005426603046497069032973276873606703176944216450317388184166905977952236284724326933548674230539775241488937729744592332073802823497914530489667394947572377027926060445793850872559175118987469982551508966086746474164946098329556833876313371850129080883523051323143930005674277809485429331412434018963849692232500927280013345666552658009725837941481822520386952563289427751489797084834433569475087773293537245687784250358622648965294706560384082752647401135538286195122847499235653469710824269391518296093936018204285076707785359260687726262616155108744737225204932291042150790725667396926297749114342406001967241911384065734911860152410113748656601638364451210415852183159807806025951389382667958474069681779929588005691874971113576556787437923211404943405422236239228547535698217976308798793361767061436385443206588364392273103268380919672936542946877164084619420738915211600193442559848465491473144317272629233284298779684519694309816443791285654149412720328567493452848133601563931296317468136253900280716454328028124927789711185263469781013385254143048842672910570289609336242635184346006770769734868025538029333282995578532433957812805995334637217849958070535594659846069534795814250721513545906290835046471226642478885490163268265081515371922080914561853519314777517529737903823735795350260002762597223026070880427284132004728115209742089502135571085105642261864833281846157942787035464561630949169186525621129150677040262314079432537729008866663689835721000734247405101843581126609042184465986749187550013262970948011349019624553975606523482740537586848750685888193449723378399245008676808631669104671395926199103984593904240208169037875620888319372129836455201284591841097365446895418373250194654004090000056396700256777667988604937733698020947575889685800734654169039703643249102537204388047046329713314411793186217407257146510160249687104251056854777167175701963940591306548033930953457656854756499056993867572779548874378987123868919702651919180389802952226816261439956853778100466643799624315551490137880326166029724332703229140391058407860555625526757591756692365924533554144714652082568727183904024711532441576217824264399485677654659545876778334601790392809565837472523592753275136465029744598618448906591603233218234766263419556602602814018808935944752857638645882682504131803472080443826223477596981834564970385469403393423824355117164443060213414291875459145883911146813358207996669465608386136239052497496204763084749530039598078936087134526823935897118298263659060719482390558741011173275575305023658823304568306207297009591583629243651122672988526931346128440159390486318289462874187706613674459329310987098220145273573642348372152546189238638246299866095783860051860236268005358343666417598762713502346826258388374952851011839420220169138421507031369624870525492067363063287328253740306908325439766583141135953723221840778927176978764588991519694156295207137075110735669665065583076907178248724086307914695446364446870347157029309878301513434877823927722849193196506615150768523754974535939536485950420152640069383305383058123022162832684065672565087914184297209015617439747100382401513490837123625433451583446436849813830128447510473655500725036159799078720566059732115684584670810782431510551674555446470390055858607476763577147213372688732637077469932045488205776741256181305222068770287943488402960041052187653783958175536842101328919879922953657555986904360292063129835401088382116922557432817792632591931976986789330845095505254188978488992482270087148384077085185472603481213651109038106436134950916497357197347159160399434331863569444295941887340042687843836474047038250532234549636704263419753483471395670241560508689062369376910385596089835501670418484614931701867135795983724044677861223638634494807118331354921393581518788631912670119404599484691837905663030969109419142749833843121154581506181523914377348683845651419533282823348381075170916158354909919195975717896968178317531871122539009458889199048171665771014155119010551332203473067331689657774130868069259502202533383055455627722501737167222911653816670028896834822067566282997843050614496133293738042874154648114552032994402800022352597970126742362696091908439971168734784563788730773247754410238772959219438890918958279653896000467872216300690382929194592685460295235973757530800602218877863800987704628504665677902759405954848970628529077914304830608138432797856900829979772049371591166594238841566941925898956397718798173302930662720331434321406279527855193798803633180661181669917253896462921408770689790501699835585627910349382839374840524569944853181929585234583696201338137171165672245049310548274656367933452308722775617941620376316289104415270243473721969553695122828594390823615343901351592627417727941534334838538469762448482313067737191255769590950347224475832483200406531672456242599343733601401982050912692942686618252782616707786212715749715010278358869224241808039091292179290635691065377938720796487684763599288467458761756963077067138442231742885509482719301018648229349116359182260448357807990989942454510455889075959556252653095868148436384994773530547322741009948596132993186965574094497077443131924381120926322573306006785405164776210195156328452935876013839080274606218972138087894109292127953378308216963997827210698840826028148283995744815619582908823798833885851875379943020906584099435556366017052066751835707881285505425312007767864065319299181305901950806434396428118165415837357939526783617645642700651108678136321754253383627985290427670308121504033899817530472415422473732170985143208277277783304522237098430228777434467760869117377654539385380866846467200584849522289063404146265285355497409109116409561853305625129030883691812509225471909202436701019266300636281965625415601681233463520333037257414829149036119967728125179064790108752590375608614594372351125187366097651690985955660433512691772231771616593486333725666684311526369433059197108079629582889614721331954663111451227655096912431760112732982516073184807146429096961860525033795230476508642707918762679138741813862694951870903712444247319778052199479364142386732733256523964548417747419429888639660308649826904818293629831866328680939878755036395060897891677432018319717030673194720929768401791693438731590591018887662555039511886227639781797684259357019583010702567641404646003448836166458246271553673954625754580389165451421854671462725067152202525724513811369441293349295037359347638234035775752535659069975304269949577527699492444637483789334662450717348357513058970278820822127025915973303191837806846664523301036673181708164170367653993305215219011390461274399775813518720803241090963840642119329591862272075754874073429372282812286484355168383924190629865172428012245990367046684000249261529447448868626907281806354944233924936194895358103181609171851878406776818586263825089497776638423328865705986417938794640258215726173898287553824711968816846217250726308973995604290741272235149446367045161588696557255529606181984219471804115704884677710458446074744931963792152100908006474198394105006674304597649698562050498623929570557510920058398460167551808599613163577467827377791155665329955046254353363515300823288150681276717649561650658432105675676457771009621693536157266634860638826383669440257367418263861811016939948247678768331687590889263518650576848555149734878034030928035173031591664062243292739097903013213776884244094859528063088726259864483679944127005959931416283018188396225389147876000535283332362093211063244986300874682676967911207542091185839348395560125340089645059065225998602021460762621613915376321100547529773100352243209433128477273597060925390688067470229031259433054982109923110907128338824897334963597066180167994045921740667215350039060095429678192294107707428170568929557958084196227316688849989435853725266261808981810100468972910801014874162711927894948939337503117288208072282260628619175869006771646440604037428973963997645565090178167620337204164293687045252435779144922324020315382918990190751462670633986149133916781303392157171922287937114151183393403039237546967909301641956228911737709711409909443212859690287503651600023721649200952147735490961253820911859508048086125112234639762829052514264504976079782618691960571001018167922783352406782509152208183275561558759863340055593501854070486558774390190577099727920349858754842999148737553068444307775514059857219739419427384877424643397207117702891407774757758855180787598232715611747624724636874263901320618946509869163324292464284582304007141138224059206527425334453256463551811631864601448520433259143318268041857306923403414120688912200665740978690934385189428321829641397494461708310009001125198117282626997505492609168989435000809198887689008355716553177624145665795830913353189303471380621547966570977548244063407951956143977970640178589308714714018195323513331215707556998254587310079918777009005589255399306181941599243151637837502575609815798827444920856006142241399509103647643959768733481047244464062887681887826633078844927753650412414447664850881097736903326592651605369520286974685664118917318187447189445875607748401825338061105340203037012454234252785718467285381011647215191333552299513749395449415778352599923799591567275657416625213255625257993459800917101677344160614982402281774752615028453210905557320070784962976774655139512588726067014088034447786025992944462935179366872685092741630346683374055002717574347248964665868763904974476913180086740252077061480709745339833779815833157042024478667135959796276935322841284498069563930620907415899806072867195545831948943165428625284989039065931449263303080690089320708252072877118297461459840158400178137497353559278647712960553268761886043194686382801033516570886637291407885570672762606372434391796544335967876172695210540570057614946655960739792166036880541763484090642912776375434938026671079820765016034999786414294525991618135310903418936301197544014693372932014261795967434245542275971870429767134557833432155412771150406379225017631595089282062500809217952686685119747517582310210908013730298688004903270723560027197587777025533491826228648871091506486489423305118416390990635857660516816546050925539585551314502555485179420006395153257263348513978867625189298048678497605028761330356610288626224631854937916675017880106442612565352092857190786659152190518600644384185426953930634563774540663693259882132478229654262282087813270545444292085692501324947195976603428707247914712327268754314780610595900406354221140197069323907329029247838443287316674540428237462370546110620556363240143306895878421160420292726739999482439872967250540716673233550242755341345461648169986564620354151859025458132285162260114013083084565922449285523177744790287533437399856246173700433591752999924998246646164608591916809813963209464883896501798797456306155377892147122999440357002269898952155976357439458040126520914880395867968455869641506673144084010989681958982604153104156632564698290308319559186137339156107434799452128982464994460671587140978067497939417286003448018177257295551894955634589257372551893603426348326959382893502679866422706705016255513265191311548019093471965721365779811815586163217654906052498850510327337187247433114773815891969365998574206963151816655837827937599230827990206454862963699144784809126688577666534552513227026621530932258774484038889599773551269226400682704609603475544090401349518196258391502774311667912448378894634562713538872214638175841225974751907001011521377481072637208441466937091286270418193688080247263004164506869787369716157257041628368463782285246319035434039639475265838831826278616571657429147764286630172371958034026276285240795994651456986992480469122769144874483901235158459127267633161261567544906768247865998180922535334498890742509428957914750626148355213306599923018216031696826990104672672113093212086115677668934912069717150732930017820901688249597355604053094758146482596648488310222891038365272631142629005789984087009161523712113869416364385341792859028722438927716624839597735605583067132424814622664728518473871649031717686364407100341704552660590674270426569792593699083530921749796340584584208303121550783613156216691842726362073045430740179800613747896490462649964603084435632188897443042824455471224058675510019118677776325545449859635152010944212849984875338505030256030527517276412274985400830166406091662851771619799816902765438655040199958739143909023113799371480411323449488623531893447595933307733143108141941603013826761237635518707684892962095025109227094251473955184530661031026575352614793166197491353515164361550645585904850912175664920422494450704258998188500088986535482430152944125651468208386364587969118614899740743846135346586881708066042076325457073236229078787946853408070717259773617581197037264148378197386377603907915430883961541058767097179648152904926078586620477905775001514670775317962660876818136017693791211952450699703548300904979069912337633003663995511329779584344811277262321021046946258849309439234778759513333427323454268707344348294539472666763817542330689011277355534974747969532714006377989763085252178320443662758051720455079781675041015855387412810078411756326487142426093540959046358062168628864614457927142034585181913111081009299886285713499337257780982226589416266315986630220321139425800443298999384987619118850672639185013784327392109478459637657191836256665365359987190921193232578064452290517043964160301530145314483501307886896246246166972841647066271267646510458520615716707768226345567276675593617647681654690024360551385911455984567327180788886282730414967617138190542669245585741703040066044348839918867008331094537296944531376226193928383691632910707756023342439257797878421847398881383024127482755770934833394764764478462445765666956992713055690280731247270042476246463507179832063444567919505047785395119313381211625487479753544640999331269135043834541192123013527845287808943617006390313826580459460231363168757680074554112470946343386143923311500349478701332640841607182306449205765951246057438242150103922123527179654119672158656432655990844994182009692291778293315804973673339629997355789011543353127062123916959586058759317169680373316093338966805830165185095113379704337750306228877387351784495134618463853500585227593053240250023639679338357875823478560361275441469483129194023226828885672818613776353843160983386708961155090337957632773147329671204165060251605978861105906363889820872140848049731055372641441699685164881514723424410301712294363321515685811153842544440800499489652948395790507813909421878134492385722424502040932154448782522798501616649093419080261330876629105325899742443623542301840593390952552744526568352326730306605126300591081289344755625901306736864293821960368017221414319312529989475255413217226202261014491879702368092728277033119367581530238491208195850949180972148425794577966569384751516632319410496932659331753216637625526325633717020599001631430021280282024456780173332743322357950681699804290451954166254001371544691711230487820622616049311017091463570019329392758920620227068026566419177920385661289001930490620252687378462093095947692350855634874834107152982037599689154258888530683792807711317566432572155873697271073130949760643899760779179543428793634561737865065612489051926242824695277068525574318033297461512237665931996417677651352986757997913996500829377937836218441542778343511727980338811513036657501928752832139263871053579567965904892502113384760461564610716277809754811719506945644393145330773869510333499624231835553090337156542771031103581810232838174009440777129257268703964514108313267551293524197389487884268736043387620683011630565941955520432054562452020842472212892846962949308657486548290073276047591924881210962558507258744474156753609209836103712472241487867146563254325500815372991469584043730077597306029483257518245439446239145223533793789462757066121820594732193781040024009567890421888897018648421992847042604695472140487340089672606775388855860915596243253322042253824024685373672580674821669336317829879498197343396538074882592710184714644928608261331212512909916099627280339710551011606550790115313369245563637791518543788826568378025792847064615294832888878439166834940646689743149192994998179341103722921794574639912430354861006674394816387076968681627858716638929289374223815728384061999851564248363335339172041374025256185311747359138502588598955656750036395951011793304483206321970936920211563176522253232144375303756961770779704225708847706676818715598511087191635670629832933925704355996743226798024192331620695067534086947888777694538471731107922327013701235583895629821181132828279136663396682169961938569753168665003333891584304245603458391988531954823780630159782987227635864394464899669612766976879922164883615998049190297159697902299674204406307818802631231527843437173502172039026007360367623106198499668421121495889841083389458528347972762538482801402070075101969351439162052066143782705182964868152655173785229591421284078406322558793498599533837003575604863535671128934748697104368212936508312260027796161912919396565869158826901495196098994534481403061892991666314270889211240135428842016730670223287008573928397601748960956042685098212143216729076155487840201229495305965258091289484051958662178551749862014362917329611686022672362101280302819549540966280048013548699835644578790605532079317873913500591623455412153531392167095538418864878893971228278325774807859171241310320783610814681000135065987623935980046867937369700144323746277838125357744516356600137837319458544150821352086120644209101336525927284405898336340365729345253622826917586407582619747645254740242383106213969765637531850402430114372816430969479831089926856425162275335200317275391037224923814142397222162110966576294444514314766195159487035808388451047707334634052964215559814715431213477408125318301223298936281330736117493033719388965104414894832534755147934847128190635891276906044871169936962195858530657816430831103932589741883699293572590092724278140136047329152972455111431766893190461863132503555285113093854539527483102042062410420497556921272723290141436455743473150263775494541731790338713783253523620753962109115184715857175170939071856180533139979181951831500919031713017291690229860922533533334071726354988101579342719643265838721772760929747191537291381046812222480404749074159279945670205193585889793400937274923102425169027284096660943357962217957516397492336815191973854638424958628992610448508640978154833362464050906410291127879380104732171689650876700092411861301283727264540689394496459291836016470488274618173364756644022217147966032794624158583571642196345545338394206210084970420660054566178694171908298852381248572790015150222816193864063831135823747459814702328155486790931103906178404006383389539719889420985852595378578434040393145648317758361531877975386243137582869896744280786418321931682932969482275204172072531094072231678096218221532677738122020364620338904561955551370450206619498116666682153353744969666161782330883065271524517610434442630481669398480900675548323264561407031790542732097080077006298355037889931364076446808927742436980381445290289188209353826523451938430124398658578859307582322337259668875243960472405782596938531295157221049610443523076687117894285181963457896800889951771387029036401001540764290336120127354076658564888212191619598159289943216453722961311518922712702441812609998534214354513632568151515333890635561124244317490512717314246070293678672470013218866376527088043731854189205740621266319678410640781132786732224198965059750984981535698987874390880600260949184078612883522509888171003052251584073309259053760088673103413466500270868824535716316170094365528692601186859736140054588099386148484194797706604882741898586019636347443475122881392784367941187256331480568575650705628640944218475621491218134048393325120269929469881714919141541288867923532102438754982674157775513891267740942044460263576136516869622292991137113892182320155499798626383046739341326924607916142045908936516499905363165447744686277881558817382315708391047504378572142800675695286147519273299463581264962669124135388760041542655417690083957962273342165053521740486814740554538675576222396523738639430084434426007900526427703452476110705279318737727151426885189672082762278744289263369348276738215724323869049213913050994353044434856132895234359677586329859413957685998138555017667862717050859876146244069575627659887959004055042733197699582607344931228736877893345173629205253459439760851936414550341619187693432836004213442518732842967238327797702472638116035406543468048016179350097448693642128778819579915307933413366648532118416875307666763051573812909207180523312556311057357191746098768516142996621982225196875360383274641621502246323617927900094719835049234833396392357627102835405559895762837348755742645552248967595766392161213323217210899593442941409944962755370526560487822738383071761980860881382434323515648131798144078274101859466756928485447436242698047176785985478273706201953082260963681284452509070647531526280893755024311870301051933281860556038050336171080394525979689049196006746416834585709018289107878635210092037846146009739215706960388650966393247766492167676342627174376227737953046212082592997650304477015676799424597211269123004229893367437410647266071364310934455752357418264495158735609301863440043205504441097382474712717415217294420109545260317535839167876660290040939114090955793623747125505676991629700409600517248243292082912102784334563728312781880052107560417310701914141225719505726188230216438023877267265173505494657178465589029868695703232006894731362681493554112022764634412188159739607668899278997208230716651118979140058873753940410941648084172719461912548534620663740619629494175635040234732701315852075511246512454102039802586445675408071172063872273745187399403238613361718214554836149345875777004187024648629393122246187388537536024227927854584208721069546791615189419986130307635732578136738162123297880596274137146252632251078170217646302411654224975983623127305818921609676012681890176360818289174419047494627574201163816754030808436804098815023595518911409215739293119415806196787080466077401401490035500115937946559717153392933221474701980952109308550543689449339328672994567565680056517668116637561745142249303654686886565299386435717366484326235327781076452227108038812194517412406640348550388341855867169956975923147414381281568168226842990883305414403623389770241409233253381655912390864772212821317344265923032000249428080706214785556877045904300774278120149282983916786131446106698700309598330900430260518072551723093006954616470949741870018065285771290556664806299883007789777116916102930484782683785717934262239044467986268175723572930973303006806774972149408908403247290116614864938061652366324027504574976724122817907579748907003936465405676212385703789283530664545432627346992909888098934473571520318525349352406966975786420991707206323118881101455661730085261893549587978297704130526985148319964066892854405869536838999168780892933480200016860179558418709451587830407755151758459079083735570516839739864891490402353613738801406405844146862802154318034909569674811346815376226785833555441828134884007109922924720507785539234375159677190777220491118433263665268770410866671616956042681181690506972849895250853570347746551122360270074936698695603551720792749563671752427055158716021796191932545455012935476423658660005259009630363754451996094275179016293497431766067513952758544955624312497963656107468476552783384509785657583131743500877758184906772021013804998412610909280194883453182399486564055600948096997725552386405632251894582158654994210550159254464736807181949856578627265700856548185992555434630619423261569182881340138292983558037189669312752652650606927537611913802675359842236621307266553540366749813435177426592300582686362957965170786515509204269891514399454817157957460890863671228742375706762716463669042484253094135332606139013300063900394784895009712446848256112601457502147523963996838234698270537164482894924146834785335050436860952958026410113253339468515508851246771747526210528394426890762245411006752652225852877720787096439713082449308244672410494965837758505724574438008962917697673880201844951784746839907530355922641454050432684741224377919869743501603261366289915284205985956791811601898219247207490430746836996663269055432164186696017252613409308677682936176816715935397269366377960030488056675910035984910214934941048010080355286183227815827910300711798125793165079923506572310189877101193151449061548764507393290211460646669784208114849172236707648387979202181815215431490448002527884256254684944048336354355503871776144367337538793766431079454857281750828671854013539151374772731416335692553564443305520386310040308837482359255069126217395755845352606502321458800854805691849467528133841571657992837368363332337931206380764907656501317956430627967769009833547308304434940954268424589653361727729259239195887594561366411223396008721587595423919742021309679913759078110925451687520790050133929349990409697932969252769584734436651934658429861805361613416336118684080260501174216235175016654649915564629332487104303726431814767286528109486973838165558753087453864584867350009555739349221482153230097754114417772404870763063331861638141289016236722071227418534750258937551670638161834537293883630681609145720933305767127615750354745900961268779584227980440554456030696602075055878183810802026924922342186859110541691328102751454586221891399841858872139707425311762215785233919558204304012043535343066771561032955223134501002801226587742042903530208519224154791491427993304830524323445063307077805501923401904409385824102718707997577252176505055635681873026125786060223493361211030104590024355085965030693985025937256769891488746565689326582840073760834430239690954337780918798740986893718687536521147075016329432151017128961294336222980768954837019189997876345903521915345160791394468677913457533773620160535661298921858827435142028727821108992854886158926526042373178048201092720655139072352797016609492611658360063302174004033140161259537201342036901128973222727134646939316413244182619978155740920657775882485054113144968569759948613262074580124039426966227377071836831296256844787915648523174723588951003595879828350367239106099621369136830051378466180316054214106385430752606850946195751903389481145523026138499612623484512046887483741871480874811726544339839396041756222839924728827192626158714004403841596891524530376302333580646843070144905890507928407658437780577498518393050879662814874058456308915134642340718394166748395436578205351027749605594452717944494368653724096924738304553948544811932125669115233473013884940469059218412460916672927104590952419922851756753804661323579464046961517782361514487230349591136663658736877085184618965817687731284664093355254365381651966225830528040166184454008898659081469193452329911852745219219596413973663110616604854299413091198086655657248214621783114477712291664316686849523477766373250069793121959159208503848296632210794008143352402285809338982151482793311076228166411159779544537578812217494925244817328249111775537404564313242597221234740199875101944950011479980526215686189661064549873494570543487556690377646120090859593847078924869199333898403207378309857560516242045121454717311747497787636025894179619370509962608548969576402943590115458070517196882922706629271609830364801025596648456730384426821795869254544016567311348853333876343557514380647316806309978920255853479955426497048795956908996252059494583982603808521161746127205240610699105483556985754193869463163408914005630001712141863836407226462221922594970194009027991178241945384297040538090203888516727734164160972726271291983433274692886733545188556456862856002725508764385584338853768104179376814205257155062464369765187113180968719166315775817418434944198661331882666161355302241269758326408251245312308598855649134434551762158442301075102946428382380893060365699349169726933957745207132480019711419370442908292726232741835016810139705540395505745256587792993648923862715585770193645509079265642662783190083481881073441603405380587459006948374034263301653102837910332299517339225862265339525727038658222389231026597148959529655404971875644710533692256917657206886984920383956571735034985464077286673411592801795835087914718644388689097489590437591813976170074038253699563993008841122318653648468804567085444858818863158448855507965170620344631755382631399545204048086715670536575976899291828655525684199215751807338974568942676868525722564716166689067837047896501195979458136848103781300446229118453274440257672363689824573684462826626504183934085166332683005595666302899833773529718502768047518098848054348592483307241588221939263519575356143463790841318957610686116493476125720327482365591062851088068492916513930409702419957995267651374577455974393660377357061135639386303644463831503560609338417504520477408438179752626111676304634652126206237289686639414550522334309262684926790645614627056953926421505028262015959273812605942670677357162357603421482015889440447681166411249871180428354578217282999785273629929861874134142189310213669296461791829902040037050366307249803374970436452480975132137568121668686856422815817641853426467677520947593222937853399456069917219640526268663641239482409159585685003006321549373503254133193771333215190954498383901947006321592281589649824660586123932392825136862563146380484078784977992902363576359651241112716637350219726780313485704398955869666551411534568631074855577469456933048014068546132867085964358952631406251802112676583691162812285896666813712901452870246780037707821325373136567434649862499908144882918135889265462398570979180698226809348573994383365744767033019501788430894838312108536401587641298954597906530257899944023073651095661127733957238571435615186088143208911962865498501780973585394696960151752635948937319348511830776001638472796752982174835819927499142579326812917745517703767564064482011046012491833056753680702453752632731826564871932479334428497686723981858001376716409566831676733977922001464770275989963022215973404617937186698153482347409818685357698072391654930881550535423567961339795117559332854799372306387131768139016043067244145353823450037595088054944074498797195657083529045677210289211862803191687594112238745367971712878244683231007484222823066208490995715022033246326161059417085999006091431781333521173037263470855682043879669064217686498954917934373013463873418897419696763602652931021738643238867311852584686670737491822991365570825168681895497092014319340778564690516399529409343476560428081630229228998126639411502858820975736797729556643039614376719179867627395661297948603500578991680322351524831307849447552957827444607127482825752751752165424760342529649717380326253650979163146619564404976179485936417341507790057730971730196256314716233010325321598582018788708982081836223460345236221334076430348612122582914058015491543742352950621142439314180423774580984455216743703222677099690425190634565193663746554957967849998872029325518011599485520618595912697352533566874920983366520261399540627534321782237476140861188515324929361222945969132505473223517754049626891408124873162696704943024530031920103789889237778030706581478646337683181547533491889415131563822445653176385428418654192353511767839391348459558693653310667919572946320744323324872584856598481099552015084791752421452183858717177399878214321803146983649072470004226576664197734402086481727869907460777595999588391921633082370547080953460889615040590139254087723458043547684207409701493659784139170330420303787179446940557487299927749819648698399342124267821062685097154877304506736770748411680820333287555308725749037259988593122866855838718735390395051853297003458645525204512716050530938900147680448899378609539008240252743069766795235312004114617157009361720921841947223537211358953373863858798554780972115065730988760190327036330947248879828137753892992905723704230520225255337734117848372350555275901879257470839689192742774076943788774043838206992076969884217540031524220592457836872074877358823750624059873271997689782307430590055814602261613560017648108415819867159749106963030719040462280978824278815489062153948313572773203205147859361074957216606394863618631043822967255897610654441832374402088666282003384165248320439948970525198845943079810950337168437504401436114416903189688405447099775251651832141675808356646045600409105136468024500834390622399818165095769569707418725403286548331760299564931207355512560963268035556534031962648556128433797193587417239595470384453371404917982323196913616513587087774364182800257398330307060985754666529217793093229613928206179173087727506493313302840593992672748254550017515381266378629768399640058261229772630542120277687664204544121763251470222906010603324981262035231837136662382691425624133865558096903652907560743147918209105845205197396145166107167629528231202212003039113324466486758859632370930073706186712753834323288864155425224424166180675948726437059946822214772469846967899765118576271256080163266754683838081532560504765619733853003777980172477855670166422594458148391327990831156355916407915980132647508650636727201617691338670383618948918249887928159282779998627318266002344306348916896827702571537765508795084575994434592738303296969901045993283162656783438827247925857734783540140623533908132925966307452331359526545413909163502861471146873268612212818817114378073614965755063639048773706606860977960079853705373882178999426634688932258232992492497563907206074645578929902469528434467735861762321236049440128077560156068973471786232934620345285359330726733812978425339483193869212617376704227385235152967648864212618179306150604629190298158002491271921485010078172547782215171601492270109784468216251499927512133894711224763552807818098377561877215372186129591021434812357330060052050035715370973316488933472244468542808245793745868173925715167296847150223732794089338647432294489083318086638077349489302821929820994126204560114843578076846923201264250630596783613839913117698388393282835711297746563723180463686580613948415292037059518027004845158714967762725894580191914906231582436798613357815920119377403026217943912302771493921550864165072645085206059276337674228951151629505122414118543825629917536098108655321293252294500333428832361596434872534431645181796923315686567067346012159997726342657919282109922940174000249690354194646237927033000314519851252659869380047461524899325103149647015169937485850249431476346922097458374489134085539186520845243892390556840707199826625688762300671240112251211750632779032399083040491893621676151201035847923822037364026208466834104351564419744563152357815494752526209932039657933499131180186841918492656688824404911957489355732133351013415147241122462573763982882527485057048227096460612980447267350985228865455957325932427279205071997964724305026101162876500653578846373305764317111092597109355724057628930179682050461344995240125491333610683894908101520210954813195744058981321683465767004158962516962178664955117422002384206296122457258450894097757418958249996305164831518818914968614958589706175309270296952764963991032955290889834605865482700586855577626692089138889209196261401228901993091457966776167705164316781315431262584093120584082126542652379195670144381085992288596492251651840163899160598883420676518512789953383221538448165416917184318858961326981534428432828551843319440304926141580349483529304407317073527559514889215828520520564849963328501810767908464227639462305468120408059291694287023786721425820468517186872682479354713357073153869104250833352128561459233585727010928542799621407153267470618918020728210198594826078268643842909163158657330409950057946035712420809569147355401832941389318139598418100251937719098991898620889542894728492476259385209176388499254563517230128958293934023561582734825068641094051112339968117352496633217417032702075092457317093014234140120564816543883056504084894435454067359089489377957648303238526944847038748453131646976280060582065139028186532451712752053116564869429119167622450823601873351508154039449468173564348874618813250650435307782542053029782521275128756357020052833139870056309197019399963858106884024555459408714720429702197172169440341856398053953041089576030465995380425767185966565251298734462090037837832837122354611476127766979929357139974961276018483057736150475599285545517532244896506889109938373369447525740760963054740842585782520327930190199410579135662245495042649982324242422235724048016978421986471248392641005194117455702590099891073568447533628189911623582843852248798346622156399136082295706384981409319386828239979313996715241349969076277192195815139422737509086295669915090653154479480749809354007292009550750482267995132560331397858155480605629685236033371557104633832550445629433564805480271012021097702339750979769134280821214139031936351080516355526372911028676265333234657157795115203005234663030005516232334471394855566204204154205452183247435321389691942081250755248845604417060649487623493559652898760129026661585660319129293697595219766283871050167161624245830400240612185476132302708883152947692452804738728898049246645512563715077044317992521206883426650986474600223447153322923204241794883272494881507670513828807203819543016418752012878178534389050040117579111734602868466955335759854143488367974738846495143374740310545258818672536462091845457897530730104581528487925944185954041977734587658889385439293843766094572519033016377648782192687492085548542330212693600863078323157130307593206658386633327740720076879508465390031348582860647739569715900693870950517211769296562882128304030437533332771916123689402391427838471783157376558367884693939857998160436018421612337250721894489173280095297440328239644545762722909306060985568135853057859225270509442563456351501098683799488523965820706529413207289754053718234560174923593633920283335080534778462961368810769535630784174774608675665668982794955088480480030095034763752739857718238752538353999153140529852343679638437929334370187148288064387704851337621151724693417412891792223263161799913946699091047612348521411022176683067791506415920236123149027042945113011382330387790199214633925663650794404840648859129383520650320283614906980456162246621082848227346095401621792803670130652318904925039254519007225990116667987715273829333132616525085686925137555794122586338851163296425526497916810977109240386510697085776682940826855658370284929596059716093727473280428310817670094136146447948914813438068207110063706279105510019403803851926499752986041595644554875624012159786282711153460603255386084698396417001610313524137698835975570636829033819487844867056598571637569164885000841057439650266184705921883472640828748258769197137622661504568791073999261520314739067623468105416382560531102449665127566018409950952013552837324702280157358356139576363803903512184485627191320516765600483161110547992066004918244105485720352134520299898748917050529650589987125111422313505094107222958900358504434070172718483368787291502180257943917311385390885313534676967935445894147446261422891205100704020564973114536258399809785750488979608449645479842876905331370039488630091831318081201742898502316390702027898287713903786710369973944979962684908061984819518146209391032876552880136559546729910756932997822650673658971353186357451247761806538845541238613634995694756231386525759104841140775806140077127946652175525764144313059989360427917525330520746498590456421397864152840032429332609161187281919133087742454714861952492037531792955590733397657711422489528177154494092045461038672794196802384674154874405186697611346784911324140949036578845069026722260708949108565628077837221984159307610171863201926641686247116624179436116966196330175241476214755939337644148423344401299464178200969897452438981354739465603550253754054492088384399751269144802500508447995456928422440616204107661020687461424166185040239144715572867645678456902259860551656889493619514768943898018598185312013231973240763287757382782817068971906713968321413069603233687859798983888126860371791466865552545595194642650462547554638687678152322099962323766597275062297569245833944776361268141347094929233162652214252847019163090748122515701549967559185957404682378425678601841663033232289351482452288504764300449029196289193949712383213573949826539404841252488119134829428457878150070428811528902400860513556728610147977525691462980453700760130623133705200722549765562632596195267894349924445816275485872659516077585444172552464961544766042040457855669241614898860846132531290039957547364830228566225656688123583360835580827139046585895632554806840084039221779890483267655640747617600190249439667836967155876638825595124938681807561429669831124780841449642558971178905487040176495264748506468939148833288623594983848990572008008201554479492526792708404482677489934468474571395731108834369075308942381114197824550554465419369546796502890033080923898630988198360250537520188221080827946859719346046461203297048366291948372019298645755164134089281006171115397910630374788281764102264780370961883465884412164195534420593265094339299892543992654908280515337392892373275116472719134160913232359677117343754591216428494872355581376637880220228778408271970144857386495091875039876762735863916603179015852394251110983710135342940755570392892061149820233346019125137900110026583091866919922406862013237096951643966133401044261173853420515990422705449657755528469884152656292075682918933059905892820995114029027070557655123457894699471392718371937271230695793634526171189858977972072380132897311294026153095748464278734702481554895968663230156466985251089448168990273758875952397027096548620820189256338689545366956670782759840684581262746612496781831420747307194538408805541985181328505564042930869079004654387538956670228311241683974639095785141380706115301314698456655231845084762334544531830259265754600398344266120617649528697851604961089658087278832110531487165181228641395149873525277610218862815224239463947478828950060576900544126248808638859445172989219113932993560068406374065161967572201218697809727259544546713951250146788744285945297983924907226396349592463129739399372931304591139182821112873793724914428620303824597214071297162498373197065479831888719314859070853089433027440723552738548731420931451248280626509276994412717318358585633515326851321427660251332203443366652781134968811833323252403422315827520954020734230950363759448169150524020300291796365848626220365557001648754198180696603222220303600540589109157514382395371550913731142931964680417264306394787417778028145614274486665471832020480606248525470018565306336883476318238638273155187195999927866613205720297212399810146124840098987598355667178107208692703737331951814338822775988576549686281390994704904261003589727142792267552837659994538522318569561111305306648419039499357345936939595470129520558817644154045118557079202753425402181082112498031106789428355225880452405644907530948492462514275115193837081222854376400860178194286888263823232921628125311175000971730659536455102842145401670160636995640604018824818195179528370354412369594437983203374690813971841459762673600769571868323676889463182377460903195712429929741579505813021194111247855599146947563654474605039779137536509526018246240737351304515870346129638037466195013879893168464320825056572242813010140739626677886012150040539574529291777067642150353374979842662791835260991771127469166943761857068652833843925541513494722513736109424202223930390434947641409924651339505951701108421047250410871522372558699410035988492830116540369974636699984748308960701211854820807496088738912559071488066528094379845623806169325925045777602907545618760926715910259837726617722765631045980926126638841147981513352354370820508375189313654778189754973347114511879754494528248655287466395857695934500165296543400849348081023014847673459900343096128221983894863794288086486714270321501926404703689173662383891517101788872112712821204230037504897398340298220398746637241198709442747826321975663945891478720951146850285375915449922326785767684966652489903002477477155524934032000124392328829643643989342471040550565874285300676966006174235818445433820456616951323767712672817206720280088094744737716856406981352272564467824853353454775658916095735565362910112470622744869949140042633132215804019451623835802611611414502539340846273465526855016368903267417398265341085171545953366154647227921474693053718973802560695733026940937121048326385339810825338852044020652564653599180089891308298791023991251712489138292725136621695309268324017760513860517020343832235777625615398562120185784790794066717484309294262543428872336745230753953623637770680336356682914790766948882938130994299763194215976646008733598814220156203816752489378858106989077461683281077888474672838517010273686870575482097961357594578460901996609221948701205788156584362554366933185937504597572524487366744794720663997638493113457184336219369151980534730529485661043106723200642968561753370266999708939014191662793373876142937937696488273878432236315782384485388854174970974001394219133644736971912931979570602892984927682420659470667761571626003367593085972571037448297081859809869915666112899531553553575393285386671569682020682519483254258531970881933051750621811124461092162826758073902507673669828202005329388579957711510074825146197512923424074547372673728274352108213119225757764573434164036077135481602552390845104154283470562358007722912506736762996327900495484116741550670274811635955001544104396911632670072724187499083241611361438450508856963430988964788716596690138112295018673488552829613781245587315776348482926836000235782456358566832844340991847446763885111548323956298697757691947717624449139715915911040267533937781345651402859166470508184396683235508704863466617277058943660752086578951242581926779296995861853159262463729440740507360090391581034956525514000770784503799920891478473159752708349253616426477061438212867171522856305595563100351495384909320988997952539819929245555326519002768378422442691943404688744366441023647617406047315275588114979756760903946772082498232889960545536998786667393578649045586210106967718724043431214188782247652415243953305811261528629854187272780468514299732536287328758817999897653920515854700309411889132065173564333243097381125538585146353457870719399759154250730182747687964726053527087593144168310271768733061631433022120528027650722247275731973700780916482778456091925949990469945828427623642271488080796836354435721082718353279739836810546595934428829056820466275491893737504786357491849910402975569121310715736294524035207210027850342048485635959028857392902431579274365082518894047180359018673543199058736012811389317215492125975040616072345856701884224455756817536335679462998855201716790243705600957056295408426864060087646174916193247727310167200714348056759570307722182258064743116909251528033475619232749182352541535910890696140318130589131755713129876548733397964298374371013823471092348905068112204965133883978688684111664640276685099877208461671966597621549974683114768303417209149408079445128088951119610279425996343596032553836363649435355052882544369708964159473224157026126217363302970496212913186725491812995809970334576781660320232318700810285997740059798284942667398900651035669630414939985833416007620227787552002446859866630233866449649223867935245985221899557585701273174422925763892275419923131219491941965830957064129815608228107301218560283423801067220773347821550692629127105354441452822663577620684717640421091670920785377690019596832853621303879428742965215750811932180217391252885183865729155603815816151699028727368096031643695416283329609699809321102647915919573967540404477085179300291799917815980099166264324197333783406969591403802240682945535400850875517180456184452798781415394398574065702898551211865623885952614417447543891154394578320540230620507466283702467797182919394089950933652505987589618560178693472954053907361026428664441617129908826450973941407069561703947209746886176757345222177097627779340757424360987784301678014547435459217036404595101032045594599676007967453680451906114707452640616135183459950008689644402858581653907753598558372217850287282777500905133930807754181996455147429660317888537265437326288369979219644525817365634525030285460880093347724451330245896707224274388090176495799271799297541739783733298245411241043282217174742116095203295689562459145963394729276538099598530721173098638017786103822898735947762994784333458567779934026562667996603303398566763161833464559550477338541432206087334340625113285006996934117785783635455252634827611462155322001875391280890148333997756672369216154441218247041999908828272134750444925591142970365785473732930081349255424624358231681076409257202262316687133584688172598074682957923118371498637061414082410418422137889908730274327039038224916415697566390882404364833022824728374534614719005525174792198250201449930229195501790019140609348756538335601476754693103530155656935391784031362000110523794317426537337019251732686158238621796618364536037437414000960308029877199127732118659447507092294286633708728449869604402120127724386004488227523875956561045183924090710041418376942075566873989626944710853747155177934367033797402031907044095988353702717599117555551356954238037035283203791250711266702719822718397836645656770576667149847222793567542473968777678804664947890998956337894551609216726583773371238870872189011312057396805989408601729511431982106648585796160591553116114178198142242146958763941837851216013135435957493162502093217047083860932237603409262648704290207615891729820123651951927552387846540095910970636256055573873005606706070052196569011556327923380330173554153139836581108563715314489469614521127852120916245145942303754942462592534557317395597999175442764312870390503989683907858370635852924455470769585723150548721179334072763225809999894775983157952725367467956030779074491494607593828111961222451437967507801937704627329856231047460074371702758197186956269385499537675201076161192282244493566266193756084964126280605242464433223609644533858932076313938137378277596365172608673298776425114264590601637657022018931258419152893694008714469807803198951396374805453094520932627925079897275594709194157932605554413163227673730975719371631783961906164624574941921561701278611647923202120379837980196127617541038392697389581844754193742776970125090902513770969260894209462722695079921906865115264073345791159707686627437553647239687312245225318344351102538789763913460337348958792371887805418588529965984217573375196219300891586745677082068993686727439774780038019102859230053530054350057242526698552035039733966411716282234588061441348956097665408749074332459319823041040036867156744151318855031376754975082836526711642163911535084936014702809942540848435959488054910871825613956405644198274336424060556261060005593714470948739732308128475128084632186587186486232629786022325025119325852317773672825580813332040773903645754486780709810755665596642784629719081928233250974734703839209968935566867596655446805732181593520512073311395946475616578504182513897647093410062041204579483848304445010929067985732960979268154084933271139334061999606546107803727489899435405700544460203794911764235700328107893253074549893728692149078228284274082435472104168837120905899793442452753185864457173027465128549351040493313494087919534137134546162983800669310644215245223010738360475157819917981727042807904816767401994866949464323782222762546480378875898535259865043745666417935441644157903002529792779689932114400124831635296573157472819644536767274251463219511833850651337702770324055833943254821836141323042697584616061007353150050421081941809374523132253882629497532026820509505105827649205703008156089073425327268114609623423844541727966990234503933195206411791776171787322718704565116307804179453148394828287785675305481986172387690160725927564228312085996839293362107091193570004422729453080236920490510558771166482835974207857948576316938851550812123884726839956031789705765911334411955754364615449248924584055156946834731136384001486466830350892608258987572047527495848456162248853081769388447302049313553639072348636830194442389399935990185799167257237600967301061611958016582310763975239916691010716971711145357861590791412944224412455420529556869753973545229503921692496934261868803700846276160102766680002258348688859746702257252687243950939834735931424576940004942540317073550209744766844829737006004980285949956287776525633488268352218753976449975291732404911181216907254805043206020369577129597039862996877966175571443773433965414461523860675659817610751929109631373643391453911796342217835289026792103605285357070178037851680614903669265163978424040036847856092059399795611447063824733965143223144311719773939631940130930871397393700516955943338819051916030579586295333973270040645944688568749098125598127500136880199383065295073688384673937101091979682775959167860653293085878827067085301437329938955063961008328444686176236418326739195617789341026690952187855302746218073692892558148110285295697580434985676853135840785740267885943865186797893845005548009488535821841954330428064264364876701133238761624061961268720117826600532575548606793223150036560565639025985126654673396904995672494807239085984649830758707763693455186361599377814985181431920332343047205577806822142322086264594954273583348729701398276846133727372161016777770097555033179956326037929376562441007093997499618330622681538849313784199367095690328431636123507338009947291994085646210902684648630342154012307014641453325255749948368923638037266395153862231556589521321438997595994538497004888438830949359767143321713232939355954737502410202834015964667849431205846201476033963866853590249889093230679921158817989792865381700845976780308376321884843849277661333533874167334498126699385544736197774544315086213821718924849528113988653407407017065930803658965535508480841001966566558265037208294810013974528326856265801878245275115898156575770171261899813261501405244964040475709488071493046326538115568343889070493250258568527671391463087587971399082955263161441732769687747327525489211664439573390863945490989752533594918962423551329356444822700608312656237775300030191064984303700204049470228168819460384282726218242338076892986288963780356356016581205737989171835508326643544028740647719486535250822200872528783717389735081881474655722087501178783290223420870253699237565556974183138489214504374919969717786305157293610004479712950551898798373340735792387659415951333844158784732538480500297112653432736595635028855927759386615801614750580479253776313035802894645758995654748276240278877432666836494725795870576733353678453447845189071230567048440387120100906082695988403630821104517274021968642320819553889461280475302067073673382327952201755823632754375847563601286938505929664671579601866850130412159612508897705494382674066679444366884625534605537071701992656521369345216662764179363423919655976739350379177408956093980278814847394418976530000950274817527530386867368140571661532243528614804170903408813878372768645390980405498319767460670674952481067618470703585238373089859338234454781481087256536366011564588713344861524930439342949476300251513121559973093020437164430177532118166977125825495132986917404960000965128968544870422172819380701684740900448145768363463575510254843197392116170940343553862117365174153711644526475185620658665989507547722901157953974586461265586538143674199023242544116452828983931355638733044111287601139598649423737158533360181230392909635135391326243841807907390891688509046517720423975165327520829536804251829333858484154272535664748292318077753996063772189340004273982521606831057783436492007697618455641074474234346614345923426968110238727637926959613541173952726655277713881313141956081662310664545616179177173317061517240293305027889758955489038461452268428611940378432191367269498432891928666297825968683519301608925666442791875585434958530312973393677747209445115208678203107798712256559597579697476671404641476845410323798439471682993373019509579148220408126425979063266995739453128585348521923004312750370992047750084636368176189196042441322391147610432248403609523275973718440075560088244404044919211839517661735139070678592108996557444403108773035472611833566578400044548148728490177094981714940657768892189369605682184598807480101113060869939178684670220020534950074198881204438515840254337644464875193205932731651825197125332642066342082942364831506288748948277636812622635441275635010880855516383478462139871284585196556314137647855781247182891453482979663549469261358642109982104650155235393382239667761002498818023099518227142320376971724625957941858662647079476512156297107879863497563319373365363489318550766749175823383376064779066240195590983529394962901819361907053126445332031734592432251078717702789555316238567879222392305867514864151397015435502379220443371735749010517233333934742143852088966564786225611559583061405441325810403461431132712470814436762457402694682086897404407132056198509802065150977095404258300135504598824016203851940592569422015487050051266006352458918174510878307001949541015816308721334130746002571052664976369408591545622827362250718203954395282791451025175076422401322789867276758900124333423679147951922656486119780357995283422738424768811620291079724484013916725972057524999567077718941368592132655634558481448859996996548027898246480955761750304616374345894201959565532890026226629903336897980283029099259328404371725678154206732099547262696728102175199282732519549538885170693432734896708213180219907844721504734545003503274820297512145236531675640859631794590617336617891742228184758463933173980306990940265956135563099807837199383830711679191243513602482901935324749048282389584352518212864768305630356950094513316499354252183057752882962796179047009254770430471203301695017325044942898877908596188897969206232965295220402670857082333479465242548062627986492098507392277230662849389230547863006867621126015016097247006277528823656282567853873869945224694069463868051619743989403600754678175330722925251691479544938901538442011128798507154918175743872485521442869746414732945596183767379517907625857822352195200127187156779259298536788647393814913184123305090011275045912570176930057671757648341775984921212443462664749960253244331555826367201340680105489761928317473172519054041167891936067318257254865749894953583496441291136130277743171074284948369301927717795603642875447464729576508917668366725097247356813617153831896198844776416384015180023289203586038744680860635996618917612497509781058787125349950748626674479243499252138081404177856602002546275452865757235307869664431123514811239882776345149005579207336912941730605432386624340659982376392406178546032775462538442218656157993269364481368547196907024885332880996940577225177139120889181541847404126622676945160485654285852789966255695599149742013106140989575989684784309637307734217898111065004734742891441173694882036180847380828122798518535963543767970763811237650167812802743627098064186279282838185287806837498926524969994950919419054983737932045515951498984598314354348863236537849459130621421330944190090690519333985894883973034449262253165887944608151694823475943707623999589625882637033717516915893832216753656137687608154462646096150227140862107596558105100294733033590492366743228664965087444906865775085989072987590167825699272186887539577040450613018777051636173522956712187412770829211181383214460239073026379979071175003236618570385483335441138383520082947122531820027930518779853589781540745644028929830293973001753448445862900822967586697548853529962202442578553133357875137743660981711559466901960358782260372874688940702362807264922184674638343074988776979222721698767726651683123531073278741822494564353346017345240302495461048746009401067692477948943151043027461351672782965612333036249852403466418158239997926214241788164296091552112951316040039499665451005314463709521928883656086644565209088225541356480190326074780222729426770603350989895300744526765678237400503222530400267871846232597281723090400910121094900152254699743618608407996549793442895102809854125605038859208775707008715725411500675853912234185256989573890334395667561677291786947410188381464961183937199752522366231810207122815280416956121299354235927261993118600410465833260539554189839956184939331731476670261018405960401719156451889057054426186634933506249764545182092212892573805862232840864905622801690657997703650971561524358507926582472673436376757761254241431028736508797835030486980693853976676121503427057380301488306665883010575995360220276654152678815335878797392156756993212080799323308559216129269732696711904426096356328507296742901887724795017797752139768249179295289555323738905897800271967377196091403072598340858501449189905499611674910599593714435143374452117180876283040633872130533993024177777020012461834085005874761912960067038497484709451389758281790548140814397680677889479881186794153947686826357193667138769516928349808259682300108989385314054480653251249965092989506686526672708275412820687326699809150836293646990626068164083975348679307075002310915321411892670263771249597235831994509806548532610304754953531994678993700418024213719805453408856411095482508543624594358079378318957527599278820929353711549115079260181811900050692319148346000878959561613308224712417203313995846698222451236858280260887513450504426091425882083600849232047953312273166392393969630049096066610628956238999735590274091747683680476304481368743669962178542932796389299438914974532693172618409138779548219144448179177490791185136100511148726037139784287444497458814953847494351061323819603299497200794815527605942127934583645244439206469218523584792019418364501841285826298338232399594290461609039641296239415597015461744804962652030656757535405791773838844879007065123426437119062143522856695304981247221368356545385088495252382834694451603761277521659479195061889613898323195682194369674234873487358112076306542409489123617101819771643248901035702203188740319430790846137560248656743733846625424915744327502461447887762211307132395205748867778968266264092260233674883536619358506785204345993934643208796164038829303492970246036838949648187445000489429695263574992056775339572333488673379167908407891307156305119976162756969127102469585750261585055741162226559576130670316396083255327958754330048246736249960899859117827534464657554506328910532766659594281365467892979705208799273734154422867809357914161967514029808530518423870928613935203233761114873042243859458243546820993462609508737274188818316907497449044943416331583187550623241136506581862673107924600571647596465623570521893598478069282759719380869581164174499773847886249131914661128257206654094820435151178374228638288494775381896581504699064292536457685041744576516647173517399418182841469942163099493456898155351785123166504258088456111217833216681087557161942050644093054603945449499757651465961360950791944078434063019528972688510200250473266958702195527848173884739868828204148379270166236722807330547826855090894280014242029989261567682295281542250926342477322548998563132516383758920199091433708838662159250274118152330798600503153601826938529789681619942779139014973963832313824533719944092763805438779851135978820164777800248742204829577677869980779495594626228364230207001878437540896682056639860929334791402045319868497418393656925015551269473194449303764219147013516683330098617658436567465561611136380898196174757630013672423166712500205897679793720830375668437844304255880651266152861073375789430927648711158383499080052807291899559756027182544535007015974926042350516399389382537505232012279739593747685619486506447161084136707027889394396301577040481101568206622089543097940344992396992086247914778214429920129724163112665665197945135814421314347456484972581396725636951194535503893354703272320798135057978463700970982624680565548968075521465132941801666589092956644623096931083415862128254660461901614679408447085681738437224045301562816825811885038409354556230771566699482380730463275831099529631292620152565628599585084097315593408627801501725664845192304752413479392186193424544700007735439923826506269136242865675994047497011979179377158507915941619992545960735497786588566618872798131743167051199928376572729344331716279033136884976425324775211588104895985129287970184604872403416326688337002952769287896182582432203928870100481561484208679865059581840178784198440716591134390530258284961904275652061215304091026796293480925219703778206689918955614043797529347831231893998980883874893420853060027341591272747936990883133630685577302490650038805121614004587812619840202973379259531815189175096303458559258430541202428358541241978059546383897034253678456625375652839974470810735806663713411465402603974003462515112914101761205658109830314903812200742945777816342026865932225583599607207875838687627462696161060888393536653514999515416429781384374862974359144507887667231501596689347520805535902749189831958758723349794456236036394126169239960798373310778605880111064958762735325217920604938487860657419099603989474658512369808264966655702023963721488893829768929131624380381138636202816193903086323086541395972031991739589407302985347254281535810368005108842655828159865285983585927821419592850506595375124630233807816093453000515364800519553751216063323270618892675726406779095144314319260415816342572540765571175496142764808114397268934606726497001792167546140619168044263064515747562529215935068884813094343824083438065887835808116287662778933682539698542619301751169379671251638082985081777334984580256264391144340901183957134905738317174929224157816001116909827017405326117047354299085596210167979417217672243519256503536912255148975607768932278392376462855295150024268354878305490653282437305357673653015417873263005500035405467601550258715095919343539670387375281681328175327414816767109306839873548918760390635650555671841251825424149066775618500638844850181055819762896610740620286218582551963475204078558359524398045564577591998934290348328860558343640415293077709923399429431569278523377412487739261174543383862962436800029556295618722404974267495192853890046632878462957019586200801746708272669406309450208480182770968751723247438840038723262279852211540670551057198530743178990111013495996471509513076454406603673532186754632883664943786806979583212038580911964967818699959932916518262262310738058323048661689885616405283596018702785028986929077701085465912221684265270666339085680665007236080043195306267512663418043174501514134581766535205020621449070908675841005851144570987334083138188321168005773399569898825684841993451477014145505912748890610105891845383143708419575689125922248359713922732722763563413910200928526830432711083086107625113234669683353131540068400687897813929287082415244002443650173150383974075976559427399518133972156859293518397164348877716980391764853315420967973331811572195078117721724172131314730324456054767623889830545022094941950384520268618713649429621918944158351611906513547099319520156297899075979160392184004880957524093322368650015573737313257747800458985775120537033120176329053063641791245381418611056215953388336820518818465703341978020577929827399241838696744311217855979947574919408803675806440175853696964773653738732150343244544435708861089916982090662919753293116926047038166211463643578179095808552117072169061562736759651674039923967808893613236253275601119692035796013215370237829168713384846093498555640004032001082424381812456567186572300470760604839243117604478908903404098776809734221129189454411518208507169319055340714957018948486761248880420847691925689981061926234583410016966755556060005242218443741124940540581062983678756119859793412797882059458129744717568508426846189508946648357012808600541916343621472423133100794260031564774449807020194772077440882975621761667496498249443830472232149097823163148513248407895355413197134545765827984222721856131409668475186532093268404913836631127425277566635700676709065426668432258110833167672553198372118918525433969784327881635621470420798539012539017287340221836732385316196653789311342024992388526724228855083984905641962081774007467797842154696088505326141581837926803394217964657620713324724868360980469323830975587443841941414361937387239915078181791861264662675297658502612178150560953670813710018743088846147152124257738610961377872925596673613609313283855043646348404439448244337231337421193832449477473201707088082316783517386734155698064171965259946955200725563806715090160362251586970714660149886250669489355487571276703254951579543506321814723363010334015196664764397333273613317610164877315086505373893038110352465200816339687748878395728250764232895273483944212108252886813889759456371966197529773038167294627776473382273027230038239433043755849706330838842926747386502102245514317714354917137718515490366247475186115165082586395679812905717876603601382374919536401541710636008928294409937541261710569790158937473395355717981466752623918194798110731810375277282277830878174135501526755315903914486466083557470477549739476613933803710259360335651624362351258958827382069381083746667350918750466904325539331039453084687739538209298273156526215130349854502595639108744056456724090051091116703619900687446874078724703045959637254881319571404662813599899358669737221752206309844363152104409157753453413300736183031678794583177110856887365069507920594710087345735247631606002820869535578198534963538492481121080748173710095397885239983656315949639917236278778363706138603595939631126864098187931403516079050516597452573805847185157923137598708637599918839495643791021369721910262010463645309590475457729346223803229172635569687791355492166648295202016398583927813338359365135572798179568651954621540694864599137948335272970080430547371537924852055272214850924845886651247358343348254899407106775887818517687935147473781254182276960063907685820405570125724312436871671772731200390381632637230384859756223614973177829242959363857530177239871917194771330075203442742662544842738433865139592379494907898242762023448964629873095427250172550835124369105975667534292163425604143832239574774706969412031237420978949398677860407822670503705916037837792360806049538655903175814559551440648180699410112842633020042850210259525675223953475230517406523698134707043886571541298763377808503978950263399163095039129658822062901235884595373911525654022607638046204209941387356755595757618244405982800277256946287126212168847458163870971580982886949191659945533187195139207204223310528412470279762486493912299423566248478412349810008910242066084561161214549800090269651359099702208491243415697930142422526705082386479300086643271988440003767165912330407905129227457423453009065056321412336221483543931699132084699172251889417358709610563553753511896855706857761589043425883549228940960061350476769496741756572925473282106154645190226078380696747595639644227369219320171020396008353674512895045861361262200968741933036775112903493430376455489347837331015237848663362630535442022324557094636143442517675120914495275500600777079944080753267912434438110370781872676130963333231836590839924927762731689995004093050886683344246275036029598432063728560094642719692558812266919273438686349127587359868418750898471107705412267614970833248569453276846167854012937511805625892429286873563691851342973258719022078685727109826052835864141188346655864471051566998919216906076056538007781879527712132391947738143050717016660929996253871500952255633878908382343438334889404811381308933511782191794148685560906886483798310425166142067061848781394080646981941868715478320407479597319583411153930526552694601515036365795433093834434609181059951751600537129178742988951216914126586306140604201878195157595729259564911872665078929943680018715018603575755676146064658413616428022263253149435068635889008094323160082877735842317656906931986790899909523771214533004387340683917148129203746668064684360627624471528657067145829068625195891999398633324237198355209263915095687648524394916129872263795216551578903141568032667864715842609783126904381454988097760915044217679247117139092273345475170813238008949896383292638279448488667267902866252082745420468770424424075055051020958779400630895685183380791519105953755417969386836324716788193684817426756503422220276249868451399734706863765117470354267716979994470563318594135463737804347825762262456111313819019652366215974743883551106519308399618898028976114410650229087479824338353035439726365117771381840454399583476525986152225846735560137054929192873413562823408731874010294541320089786957383652293369223678587961957939295106874689116309036639943365360221257922999676864599849056449261261454634674510347609822020133990495049465938381432265323748513093569007493057592131275395925238473151381832639963369838252505004296532796860633392305464157770664036219827791356998274337571188078843663979530278976856594271520564526879204798227502837688508460217953821120311888544720104194628281656329051512087449912777437648349475537182633413927562516285160848358445708772579417673555695196099471046396188809305244915010564332716876072746149117455933024175504164781229320639852484232174131315657858064449963457593576510682617297510493589267501424079085700852454039300985122708517412055120267228192214613033688098845063061472131910302171613228155983797336998950923818585320423903863709577698439730252235708675629180584260669767244945542719388428018978524307160412386551168452044776515974769886891648546580025959913521207257824921624980488835946550461546980423019539449879972616851243378456259313405580261286411885143019851899302552175754339419235827421038610221955083877872366221256834378340769900602829047244964581609185084401296970864836187756939163870770733110882097012604559643772038770844593448077471672979924240716458479726255278495601368445857563743625185301527284993816118253843196158850562637836565942736112677051566739149324498040184795898679781318807145018335203694010815644536169876229423767276421878903027269687944500536865624656409039657512214750907838684023748563690673535402219066235422469895983203444559317539909118062603211983630040720961367479957113504809158162647988377866253984113446308420501546752303181182597136980332059060035326677973154009926196193548551578376405326064588546829984320338744836021159917056823921306261725274873484351045064726881208449464275828017714392671041200668240683561638699582919661538261109856081901328693928660642740508117564347396048333476603929638587412105452437171456652705621501437684742566941709183482827698669965317287299874147885348193196293982780168248440389614646060065732283679982734174215732341230015314642010860414929102122585221148295012688125122674552642419720600320235410004423164037835420480530522431253152848976313685614940251269145803202119297173962811847218784202894425991498658971624822474097752395727718367062316110508970257287089652492722521851132854658259103081643774641766379767729008038457882893257570242062811279104295489126869488804715427941869111728334529560588884572896384838118490580531136336349792523373946385229116590918865269284823387011880759930272542276765784207848427627247029869221971461363706696110949248488119415846942763413927728972404809970508779012691223656777518206327374997033476796658019250372721537272053435324808516351949711592290185094443000847499607562226718893699093507070429990953054905871884927777199625638457881158048276246215534673841839616844206646935498458311441503530396749712730159453334011467285341379999729633436867124947415579491340941289669201287522308614344147915290219102189971248816784222876927969518492907441452453881495960998934032520235429939282392819486783524021711245640743703260372167581699600334214792294524258852905375479774437838030410740192040102769113580698419112961832494632840826751550224250118519638849800033396952249247312165351568361347079802912333604270673811681378058821965465953826144291618836419793786629856296270809994783714829865390305813224897706642385247102796548889793663417551283409884749569343111510067048771603943815444447961876063176620996232437884384218265117888089071576158318126007139413499550462196177477047591750927435098603298927000313572344946304386460905435763089947577155607981436160034243315745694596543587339972927699702662397838759021733792981483168828664490067851341572540464400595229425452675205426677092772874003829401143080360299448160925208360122995430535086031605910840327179050870951194587531256214359905439478417361445608437671033901023361106255147439139967382886561475264174560758219528488223023999519481954426707875505287213038370131281474726099386375388317749055835813402073050714106433522825015244312962667369762491100729609948362760249460261138222189099451382879263288494670120480738128975519786739538071015260351610640835800954167951339035104741954073225170502066777715326926442454406779311499642851095983678046501913442043939757445625743017834153457516158618393872424776620041608357775421289070511445035250508402687573098761968989013783930031034684010882990004968525478533593622337995686037557954228565897616288061276042183130028593477456112688788287120152465881484537860733383409579997367374919361951133692652234008997682861167127307129418911354840474213690198825253818013282827465921830643073344810086307137107567194178555978657368152149074583028836005191814146720762474421971032877470177483744304645807084315865137142145349234919175393477734651459188286687132446374232594743444524565346737935791832963096170997674347076079851212630661339458438692640108259600597559140085421427240688942114879154348113460240606818550905773958581845648489448206865644998553753601432201695350201401130501398651512012629502272383519692014347047496068680601543434175914647131773950282280385379109141614763997958175598936685238858513081799860087933306478168423342525984514693901939580489489283797784722909419829644021962361153984050340374070553853390929203899994678945829657190580093322247096704422727313765712299918210836914955891986722016479186171284958384058460437057907826617186337101217492234374308920159165604925912138192163822008003694320436326399618883890456092334350251550682982747226356160454003071104558616072491370883998256630206465948161058129675005441552432890427106292674431192462260875251675055860946372883492343205855428182525592861729419429392628543229200327211613277815312847418263900918295334938481714573807884990359083176562814125435640717580436039026513378065919421631785649315423067083865340436148432790611768471962423622724813703182145399107842388544115511559162464922404575043819354962003308530603547155130935755329630357821548874181241290859388457685278237354434666211870494868005580543449669948751437095356186977167306427899208080080450967235387955456105980798213794845807821810541140812763625209179246322139627818278372188508429327116420058485743680787987302645093950897544367017501524028841338827152145957727742550914828690040120249333703174395656231936344952073564345992666810693187063125126617552743633753663915561196293562212381744186758979772383692976458379498400561284177103631635103771890500162805940253994163982682437492366137877888252777778285089106643598882502936300846253362987899016656860725599181005573127122973917570700788288315403167359984190844696463498113874030217797289021077249384751061874368057464997229422692454497347633372534703054424573634011270952352705452918748962796791462608348544959175279824475996323221041453963995747803146546209161629545023820049672530484295982303286090465759231174950491031624190425682089032405796906021975089467954023809800418950621805520932012743445193556946299320043987874325992217143240854855182669376085333448091564628555220262121309041947528165863745417980403797606836130242561254083335153492457939625730196976253948778776080562133758519357708165177474701429474728037034224940195113833046356209868514005227093560152864645203828347125540918426310765417776224807427451984655766590377357692690814399015840395172311096897367246249912830026836383630625511285537042760403256729936643131598787595025681767693826992418253098222586186163776091730602092020472376972841385945640168131500997610650285766670188987578123763354222579208651898365734050832803101805144280148096389233509662650811875337356673749876197559941019873224995857705894226515725610417490694535833690567462031742251927838312882889552085745801190833801472237420223563549197388159908427727165575265667062336942904213322056583283425485865785270072251501846444816256126322798463008598176292075194979591962487136689969267036173570468497440648539950829512505345298478050498025642287978001763556215567393376659426469337314361188462399052513930721057801706807809894760522794735511798432246955472620612689145491451126284858216264498474732542718345273608917689017021203469974883056595972932491659694611432436937021821167396175738142821951353861732407864710147814621364204864774248178729504648293752738349794378683991776588276107763482327711346808326508032150849429565157697943408426980589763530577015461764380849237721838218064997483315983154070902123101314552583178176335053573454241335700025228278435043720755762858208480479553829239726173365119556918015686248788689067673747246605847592709674993166650729159269496838532911976487467134016401898564605802580655300248124403384847035162241901470773944188853972689555916063305680221270808083456456582464908584063866580024187898209237808478117688460332355859879074552212717142832607886527953682555155436239133676215699311050271032130457319767345020741556940161556100046810998575799604759124921828620183464964091004412613525093625308514335779593066378382900296555427420886771778492965916942121600395537845530586617183607150059143298651265984877459833619169636581556163636300762007810995675058765461341327989673583767512307893339109910930521550076531137476702226735590631100878718559271135657391642925882241075447419600399760847807060341949952713919090091337616881094004656366599539923223059268956437582863942022682087045871209497310626846028393106298253990689577921887368186143109395665717905931998955904273966379594219874325665153202713836009188710992329262312804583108707659474256676444396754232312910755779897929932036958541501640842218184160063359745367093080975191021084311514602413796530392824147118974395361924132884120292171179894092977684781045630832821120115924464726509558907506938846111687302342977248815044783447704310400391771048081100710357870896226759072632899711815877932043471089043398980356320368411859545691706151288629393023442225015071702410871301183729318905920748312214344225010968671895047787019482497892725567985150826676961189947874934466640341153616547548208189900291344894502832475682767960800040358543295640653173803539807275303653731636656616772580137338269197351925120409987783237608943858137283250362141713707013617791127416608394034820475640962757971852664195111534739202803847007337688373712783022242062852403854508335038799043214344431554659831161659339261784521388047804302755993690437809563686963686081747044658686148524056494041708267493952819867452832283344112011700734444401976816449661036620289559913461495149911873194686965120376317350876861644150029007549458556245464823441502878222006271055782475546690118453002856707798787227666773959387383115351028101443123513530823533143528676282021068887804358622159101633721224407463853368732927459132971584782933688409870051493798192864789412961944521901345830699737307004223556997431927165073972738608214834146703606339762814744419891157763533773670890343702100567000340557786851181346114339200062982345278705392183646963276476677740933099441668095681381752287652577813929803626781163419844031112464876021482612929978331342674933889934564261316164496635660237420254096525788471712422359909733609058704741391231115926487444103621568629862987480825752580809352154192732719745772147415891831755273611300988946911118805646649997564967612917983865329644043939265782188059283614353945194139126670625542875778798051872669057646248521996847716962093019765130215948700803317283605396325977686115073998144153836189856478986758628694914768594185689363360984948440787890279788136985884182276554951597682071899504702866456294591382074999234427588292160900596506116728406467561828298808733510322297214098450082320931692273602375576976285821172360601482815257383796567921801913422632226720371396088628089578680538019145406219473991225521498086294659784990820855936223287258977193855886268736321700378128882545796973775955851097731445137317316295247180954997150574565535949892549126425988771067269902418687817537051861651354273186771925369887859685889491999752926848042221144832100094354182022271997688732091600300908872850857595181949846064342243612810649730934612400769879573237163508261770339245626080601563152701047611862735430018611546478379184622279824127891643888272035288170638734075424962452062181833883817620021980773841735896951966231406531577948619817497220176124399202841338502978068467553725888661550189302650463798908329877784431008729743907925473813994173663245273239112990714763704674721350445029216460472198314796963643848917998463578458650881673003003760084075119256760521745309214923971526614244746711251023507593341929762975000024641961336744791241788622282927608276737548414805492489480236875834989449966436760840629896450636085802237830541737408694930835810585264341562550377105251372821420830816045119298766025770359139972243384093114768883019517786609556147144217777020818033341355947732541855491261098561417370127041386286033541012582818954871177178409391559697669687837876290874540426471223599577163070797069714314779392517291786837925222542735158571014645470300337918204488268772974456333125108023511774890809263569465455702377581778099150395049099606599147981107037677262228874930343309914744520520856522054677880515806630535966382294105407772274630984506815641502576627057902054417867717057746711973558269129457486488416128659159962010124545658386148976156598994981669302564871522534923375429251749396777654699364986610108135111163904798172638639631408787817232010650441312476592291389594983588363836896794176173315159368536837326043836617380124678674561897166449254606675051520542903203082127346306631228600588309645300925379841991985308002139500095086292371306035443703685051590519055627647360134993999927640116898969474947522431964402436390337472126919813768671845059933417627690486345776888246205979552388210439191221572162913327879266321499357492236308284119004894250338330511333519833406406519049069895101513390867739881088254462481158869571511203259158545521152077669601850430999049644879492584915114106963486249428240732147009424219177097656158795830071200867584839672855649911543368543806881087199966867328348051418670310289343635339577783163793596580624927788710886893539920637452363726774193827314464924358607461815196305750532928694112992391762971962655265916536994882945668960697036271153414133931987336892591291556654925764742715336097125866314245656219934173579946366698415952709494965291263423705604631121738642719668494449736811402851466675416645935341946864805060651443785766936232934248514341544533495848602331129903401490738537393579349161809973491357318113133055424993370872228682717252937546070149795624146672410877634457239064516907205492296565727083758524214586168101028330541899193286406374599657364345893488872598894551599906871151526646924372740705675686398181210542602993731773238023547360244468584442439602877178393566956078577983746125888730003105784788109950530856770697166567518117425858551115527483912162696203681552247803543902603540173385553695040272319762141890133323433672899010233847506495491292122420360277467796334518964424393331721081098780401073171201669393969032837334074337409765306263674070059677050510646824945737252041780497159875030748808143180921910987275536951580715273387386978761670417914911853438017580703142292867246568158680581486908495984991839266896264752818135533887549104944341855930364218126905800630086048522013634598641880402510500438739759343222732563955785412897132390288883554379077131127101704450217689115369902596418322394525818052353177293173593910222210689860679700809829355106338090026858838888363964723296382737514002621505809404512299355397790017428826874705735158381949372698491927150486633411907443080795608896256564897269252787203343214798185783375616791643068285019458779552318204528765116126538934552946826741963847838825385320862589256831108321807554899816812336406188016332811942009167368762864253637550007445274358038131188387888612922676164778899780234085034632650903280904220773801118298242696804020610553206512479430990080114965698981703919593746200886257700266074277999821503619426801511729229457481011326673053592458121405074397192555279826591881572107440858630461979116522331230130475305461307316898330097048858529215920567773902438708840377492757019314265881171002871787194180435519835945612021995788375340790879325253595065532478845383460058634348448226248280725257335306818993328471608242014274128192082839505521204215788853771555527569834956551949769389468984337219219802935136743582419917221031950215950094076566240506670777449598599548241558763586176146493989247314477555588746628013472522656392522263957238851666704389198914446055306878892335030028265358488865037320485848603771505241926917936427516853969668077955753925018312129664082254390424868315238927810031808819925474327481375206679922771001077257518110889604457891352578977237119251358687258677674598915886881008819256896540337103353435817071541744008572045914217085817760895631172409442302542949754894720766345034210442629798442907351129663212608415966694804526077829616799658588214552479840279336677320661527049900043754975122334338663462347563271948357738620086197221347914772780529493152346207104909956021504155747994219672907830413295756401338664146276531455349771558666155544672505923150770966216730106817294381988902969349254702008192107854174800036343342854695706177309371471050944570779092273364940455723606465899505862842027019500849031398583971427897924485602286816399302994736382689573085578565354935901256888902097731987825298597384824481780408948660262875548726279405400418335304091091990210316660670248651489226384979498377324786395664829689995310473743137319793117468124778301813744461703642113219426175060457219825703947884243918527511150004206026560007751642807285486815489032982777216297953225387411036387318416598161244735824879236041669056705059836956823248007924383753070525323592472496580492323317822052826302048647000647852470908985075109626103218983324259799300776839742707278709409023905770891107406941033107483162063219062731902661985761005147213724997635173279602412806909640234283420106100842907039093446529319801720600522345587831179906645770557034067477517472885350207233234293915719552924210556350190562997012382793137739840613483473264163646160733278648041345047689297687218769770606974985868803213895326564393678065673942487795026946535333438674997515231758048833746025873968961126861865354807624384779102664340889004868915200987126930053558969157460024423921456182109660669385191024299458436900435779111609334824705416180865076343702277607493586554145326100899879321854903628376902662197693540411211757566812066401880348994995951683473111411576530817205381868170010572195241036721040679297129441602614438184289492441187071641093480513450114051015738916506229110775013319860288741635367581370743291052071256332480537683555567027593515096729151281941214451242245833364849164032804770909935762200762521750617249797244458324266089813876999441971401540512596333655652151287893594204442393543603387452689147687052085280995947330242598464769513608763405726857545141556975144473177420926441867579645588006699333996920466950300998901630816984337509350135087927230437046639223365705551346940907078629900233591887995523756906858562140237651165685451824852018355983650115463785609965520182822322091632934559054638845989620937036955046073493946993956256323616362245636407184256811887229985171110687954249503252787253775258728961590373500227043290070629976931714929261049020539260971466531006736300782910927277723892682221987633474664102076034007360596214936703138720202142843583175250533114690736747352191495329640751674504005574216825822690380983755636830548334129479936127752061176006475498009072320258888586811281195287358696661063667779016030102448329259747190463827964274991137979239247906180150649766017918241363275784895505491754130899102795166431288466785257123390382098172320985529727378277225563155917307059337335298776018255626988618141409797015834239789584668231044134008418641100796058201100654955562172654383622945375403346782017960086016025525284320617691255591496511601646524751300149250951917258695110439578205597797726659647256922719179043738668158454173096601708459006943767149305346944849709910169764875892467125262754959955637292831853972637055571234964352198577168875981658161030650267020072976396313139078647161646666125978122288745357533473389118288720228627444695101373747824368437088359687289625026480079077726669123229738741131022095043405869469972779955118171721147286374709585280504868350910324316854740173592915756428548100164847936219868166941822454512523077595641244877782300077588314360019753508395068685143717303227601482016333681234998419224719839778061292787577022827658800366416356145931790370388804362584230544503650432125437615055163265589509273558215824878448935613430070484012549300664181371807086210665501469329548819095675230396045589297594914397571169895962244091004221035635180791938857707190679344562392970666081116536933585800440411293030244157505452739602056825031299446257861276412769378108510070990125888037533440759751355303474282882767988451908920238779123416743452015369415538035224489117127725711341950178903878266556078786721538567424159968112768563953837039607404967036999393989478053642066529909006067060080290265755544597720260180514647820629131473387961645051211836878873934489855021462668212271127468970043111005416068307768218224315877438555864207934899116543395947038010589649382286957861484743398853501439884344305916763707458617588533154979221853190677127584352303299192272486235773492990481578368182740598508813927017144979670743490041618052326161845258777978887931489317490818525183014751259122713325845008283121388589303707331118115641960492422092135180335958721786012247869972553973163226548104358554333322515998457008461907180460085037419343266566200303535261023611740184279800606004813341172498384378840610968404218068009377443793266946965150768337702157987290857986514719421174183083794527541512783291652771881087370596636734715947828367642614574078272067213754330493250814478999495102812784869982383023634718632053701383324083238396197290880485600564530064022542300877481374349900928258263382414953106187921053702783480685005097165196067239024989626004265824957079261377598198504632305884229284040745503410467791411436057712129195941291965026463300689648451288852519646623398451279697556535555194423003679825877687350985723044197534041048651469619725508318985289076300808122563709535210079761014175624195431336209211044088202639440443589717892887777060548649450881440353478998698829911921856408930316005895479917969415873558176781177649711205028244841255873523863166973766058878873490819511292660232930735386432488265480772121733158156359711194709090119204051652736292385159192005441177856734225157601626928467097295096741009225558377996019807114970845120118257797760382517105307932276807613632533154145418536007065225980328765212099218539875350602175541641731710698187854809966194354401686245642513540973190124397447928578398760006067380156101920379659940983814965300999737046122600288178872566234687885594057013332783856466586607881552908712060197479102565690631117226795109820528838933022564543878913627046371333542866245771558615040896936527625212145266264794332075735736963395694809701094619533134325558821886828304713006695640091221726843622164954904217729388213035028267959716754513893557455347047692177535127198200598076033201463566266492417735367723121021366339735071944832553396825248749472258464675034611260940162454361628531041351132979890235893870962132067246454896869172489917468682054938177693237036217746882512172541392477262794820339796393734571246196120985815485188489954444202043812266242943550151334790454199873960752241677062418162265635222222538992603055160408766094767477700851008432943899666212025528441618147470822800998725906257094622852906868070711520234991970530862297118264520816523635688407588781799155973448304643866716658756664867904719727281563265429028689022096100316577831096554266602311340862399196500511519778145852717537334432409885616648715946101178635517844029783437692144447961993772947736132409743456889064763150976386078849140866169244627627505267976552964850718121646923527798001503729100680364097938989807633297518190231958755200384931447955176946783013999697888521141207869722797407857959419346315293514046254116282457621982339420839098518521537264875658959595790013747534821097264275912836820379048656042300908160698470391448546956638451753034756908018239390138557479605018279611111902991843097423260076967134854748310562162841884059201232742118102409365395713081103826431840036242639670916569945548161556084593604041907643715617152209707411929863676065784542332843484696256369146526915312032276974556425568841816730632817105192310442800224656047517351501888085276104237526805807135697243090557177096096947245873349011865350459644835175092846027749278445815001509514682752918601397320529191402868335453799750154258593126019939012684454367426600361730134761896224263373191988426880858024702300984454015919164527227986197722066589274177990954357245040968222509654881361155292289179452967942808306510206207722286659284312522415703365867767584407476930425415270278475353925258348571009716474714104453714553635753236631225087566994555397654156343656931660628510576340642191178038850907250915272555905932810534576898764009077325469391377846609024399994937191347070201094508280218859463018968784899920952729330970473173163570640024140134643554394862112817474695913645357851294172823789065759812446222819289749785754164807217034270379074862943639855506095998153150398400943215677516664085658727035358332300229587836666856914972017639383876056607488141131519680500571682238155742319640834390283338498298984501567153823916567851582852642315827138641564823951462534397057065002443892032893026058864933583495618012156422720290674386035288031896428505788763056055818677584215274428645555484364096347103603359145975240013746193604150695573563534204613180402232388061698248793460967516304810695558637405382453375966013711865374043481418210480288461865306835369334998598849137518553032807012637206389419179026857233089177656230161688287482558543927473822128379746262403181302288569749249401275042994154055245374556597554613370991461143860348332463773174076681806382483841666054137361301104244241761521465059202770278815646200182129598428136227324797869508095819921295159479467505831564776231888940232107180681219472842427134219507300484296753248003393463604949108066953252303183650844841427500086139037529176086669664573627318977677883174812296167144268110677383879372686766441068304198169244376456645176115865555267283333143713569682958764293815885274235262909167024340159945585398663769920894234887622813996822262774164606751806138953947675933753471189241779288824099499212894247100717668684231066521750810372954498285778187403354201486624688876058472481253510643877029108602012663764728654429865887496004847762857509978561941622137176282108452231337059070582563841925694268949806290723799500488607128069291379393509728641858377170600128979911404917329353919759471640208304245221670438932440529495004380460732132072301975377219571210503308708031155463461497491184203338268868152562756553171920804599508679528074708982247303342764260000632262433883234855811074065054908783007775484024524722493603161659053851049554142263146799646158166481776000887776342685501891986976638449865310360328140821346737169097573283347741699912591655619751682780863551947755788525401867116876492167323329959593129405868718699171123408944983667997658030564990822028987159169767626722674705912104940822975682930437820674619623639907974687218980275783365145195273072615859293727055723694773019879621842614622920677420890618679131264227942382749919761301593759030314265861834053929546591663312917619575727045335276554848703808622872467317048481020112275855114354272445430623590903557508533662536970878979065568659915751132724499581442976237250900757344266423447146745971841813797352155991348398399072800224230723838470631345833862455365478554772113080894905407339480538070331942015281313040985469451701579969952585295244533893133264640613572346811493518868029046474687448369995941528098972722201179644775225634191791311528069335943044755408328616357173484783883906389973113815377901791974935757478229383170421022605738393952223604422892718011310458652313136303792303388356462895256732551528913366149082381780162950998981970212222037948478098131146805604920060951473284830310100081517554161641563984679096004504948023462046371199039965968610922359533539727360561567887828726174189385423210562779583881328749017292004918219346776377149427700540413385328593404124254402853278534479859262546116191355144595817123059471153658973290853735595003376329807272208145301424571455894261928124622487564842005297653728568288126557856088610347198060794080503970291550223506290038621567901281529933806213866078647024005642062002831929623508727872797727862955030978415480269988505611061723126438258451749737958560016455442601800386026268750843199783731615064629948417406156827618288258941756802484100598684782773969028008344292903724546425024631365970002694089049870950975805090811320929526612477290837498880779086209429417632109734927514934594170396810576631337789038528984958186818771733575714075400946050565740337711240736489311855823848437712528417400172926646270118542037955840491183255435210922922193356057852783448769383957105297381835835333789348560059417894063435160924630036563683891351993789767143018528999478209298921660108355524911668379482197029762066787293714014655404117130826542864879512051687512984987565895250104283677676886259904675772495417343028951382499714836986395878524828110664846387239687869608241747654675823272605289585450022374441495007819384305288627830335820771035686593680925718264564946105159795273292766057667500004914117904896017372702479547089607583609811041410182901167061661737880369979114090095094771611107773101902784884038225371933483095393354826427470606234017608694905446295335693103038858729675048181857218291916716626349162120039241200818567302397557845024081422886053776615511747180616235620750650262836968736542972292982289699727387752702391136603727459746379057788037100591145386913544015351352752613484292048079904008616028017275818798217074852694471542233075672320853596275373843495184179083032153741753766453978552461301585420453766960139098483880611919906920735244681733235123399811174638308462323058504584947607662181854559711183923283865880048781064718557130723850649925818756186719503310048494890768811497819865954650752515861951566529498449676926199553173381120655008680314215274044336956674569277216619947487502950573969678568402756308606740720751843040727373226808116706197251369663096229575279412035214295856140521423502746561931271643545951433224985699798862351331064233569693561846531304185815577274351406237556647452895615728945435953202762625656432155480418774708336064677521318222070729893792774116186866997867122974337072810496141841802132176108229992677359003970578862922166331960633395888510394592227704074941884144310992070454732942635582698326928748079033104528104693528038830080302213454321469393317055522059197585074422197087456619094176153996914954630453500847977306957790928521453923589194305374623023966331926901408121983975081069639694666706122740484641113456788142298097092264631988488226076919018121894050397755938439644517020106660529902801440919213148810007144610520664869726606333787252871402407168893883256162047896216631945277817739853703469290074094554664951523633979873792699023544620508089926572359600140311433001033817678696895483357882480948600789075533946687997192530282457194851375485184918238596478842108860677445829413986521441180537382941966372719713854346744526272055825390933512672397516704426284039232404188984687631370297699218873224348363913867737183245889233239211735705886941302902255303980927544513560439431616250618419338249600169969776517751354319475843998661310373383219509678086279594892321681875717762967805878393096521078857060468929450897605486369073269297357406851854334261388525671824094723149572603657581716169923805602874803798389774391712489608803062127233555509649694928859687440106231776597432360019681261270181985433665502952636589860802052704868532824329378489756268714083303807380089282200345834170132510424132001022428086612512443106706548942677278065902135390121125967318497955028568948973735639925352697554971431294713417808623825201122163923638271934533021600474552227260892890363312342682472245511704696716728988254116490218287693010505952943533205375127261781483477101174864566243022233674715469352037885481952336371470314572127693797814617626179542156781577034044547968767727677002539005643413962606115978101348689582899111966185014428231314787485229168630810132133261279546932682213833163608455754043079368931291283230633188433381516648301670739744265656568235429437742381117415445519262399527301758870373907310558180928772512735796982611441447750126334809603129963011436539122061519281606243051328820583263565437626016350642303656975229476390409231298366562024661666760168799388870310321149304884515092862039898509902214735045219980270115949205078204412281680175561566806273747370997248278605705336986158194456208785661673894753486764315660222507067820620667652179783626451908135801149340390969598288373568696436052586505770573443933188438850992046999403461389939633899575838552288000198410714966818044716380783249523225028572292075493142537452809467800618038633517792936909766657828953573988569553208471311229029816141975902460389356983798735929867783662394926651739873002450580817121582766001481270253834973528238110718721624318190563592615344633554677522548399510903666839891743020186053592714280350516038894170931457410885303679696204735366390081328668517093828136796937066047565799558071050776134367236751294711382631622770086115359815326611945249576759348442447218401547494358100319236501977274646562823403216944040457076368590641059647681467643362376151954135661543733049174549010474950039490556665746926214260870271172773971025727255026132474446091984483425855782837158834265447796536479257970528120930614546875818271560586913809018459216061297042720929358404161401833795802333049119293738561388961419884603572059325138955413494814108936580309969774288871823605878783109964680219847211512841882120808584800579754530694197660816270818982028364940574157786666073711930770155368399649001843034064967562299145507151952782155027372146429636874891996929634213501131385965743433652060839078673453095461984774137814901955974669140815912155938884178775296267265071811885840278713185936188691153442362071138575852910486595692278836963104023206566202670995543490096065886772006284506228084018883317695836832030102087882093280202709622045714048086862616113911817916845436114779781361702190054100765775084442087835403602556156478239823595366463273394478834828393398685069903451827125377761254700359482738398348364432202442117813596228087525301547305761212966928727903465970972303077488286015663132766211839207981940466099750025020697127778169884450161595542381063155207804825481518005861353328139907598506042601143009829382020565114620659927938053859388285430361102361379092177534576851532621936596191987978274179886241942744872599466153048492237808406039815715315756805293787879965953677424541717393556920019341817465051749143046355815656106650840250522170435983018719360882292560182146809498436001551868525736077244861631082357291313006885035513913652259981678469864458978241016384392424046144182641343799740886308446395678703063571423742980897351631019069814949924867624915222086581570138915158776415967622208081129559609814391266857487549061649042135311280014833295885781314290477783083243413795815165955971414147461477863772050991909374896206634394949821083404059822649272004831708680414470225246025084749262441850443857878870509722536751382176512863855095878064010723158921292866085072140104680319261383089828201143475983193003252723220561551344003129323091454657023892276011231375052642939938059185137093261330577693525248700249820531411655601229432367301289187338541470183165576895616412114098085101515039372992735436408853784592545012574800363177397000050462327508516914114208141800045754665215983557537047945800637969250784793440409462930645946163879992329159648503708759111230256771715897548274448744011829626445702730992389707232783356701939054346198449661271407361597415495427488756265048415949115376155880577486969659420303906236963826944983500783174652923836815897638216559659257534918812340217192260568784943354312614979411413147736445341312043310128467347794417741329887733283540292629514431332840796047585094835416732893456247849969371388854247056472736303095872854613491089391677875165150846550813477660778986001669517901991458022625504834299161285294164597176509589484923749895468942606015270548123357686095549733461687273972363413897911253992369197875919123170520864532908483792899394277618418549373533302038683042045748726973145028557760553717415179425166347386141255795095261710351036824378443536049299738270014655568172860457271603106571436059040316429532820428577897168062179201299490419127819766058054895007196434869825303020108896826674726628313264882890916051576543888934447368729489838629969867614118128591557927458787612866458244558927846021483566072381421273611425697406858743694764667412674777484805571904497114975144744671984788068466524545460624580612736728519068425948580864317030918856389033752699653753653022958076694873721541086454223460819996285592927783492153589069153342720709119661246318813527536862571829687831263723134043264346115821089220947752130207651401348217462589172832120789865565535268801601676124036107367105229139191407689377605976967710531167256429638681958436587642636508903419421038054760470793903249562172357321629325137082736661428320669966279163353428018198932323813458568880353840817323416726312368864991476799700847395707452173530601251153741054098928867284630973875578511569581463058059718435865694504312868969420625759818165229024509348001820055127756383020195543351861404173160284079645602541082922625151006995420254839647091158402615585239649382270817200314649427706773682292814865710358629396766628634005276026151274942037619368699582972955507676958057296994689672022408957484713406633328706412357920909887757630854536575697449138036741374751865201836417020037542426775873229742738101221683019768614638358704455502511891354442475859438843476684499982921333815095552572366573840536656458847440117785174478613852913179921879449095427748489782131723162604694222073019943788763242547490053036324587455519807941395743172770003130346151495245164502562630818314815942232901911680800756947398139547056515314075822325684265565907782712629904006746712909741629282914842864777306277120643802119148550425010302516205701277383584975745741295387652675579534118650890047661444883202838168276612950298311318468499150599829937072104787291561484663549005439852983754835972869874847580673779693024594579777750422882865331982797010353649300498772308635068262965821754921434812932487793115337608336241395611450650512625874711578159653022516818972827227281106894272955671888210310402418536932670502135625513339056795247232845047080087876208004645280992808207297868380616945581370039467313506856073721972388215760434678388080872999598293013374349001157912419575911039190091844857450739611031329247357329598558369092933455908760756776342658669580482819498565703229908864869492169546900551020986682190087523421317493419358791761899999905482415138278750861260316527909520758455843965727051819945825742311880557443376836191182040430249134984639020819462502227205898470308791953379175690874826589597474379605568958593260554313835178512826467400399259716314334546911014634529269507440863457956283057979957032368650191280234418241930001326271209126525630405273431210127934779581479370571002176359706625550126030306204610024997474413169648150837995434870618009212436815308526999978746775540281981054655729728260799720673870262336604453770147427260203571323344273211840790604697442425306773814758944017902436130302536411115023019848812886341996340473688706522285034949438840770388576280064184228528650310174746966837110187106650331175516235036328921526762180665135811338413390672409771213141810029163506828814910491633437530413428023618011486264045119655071711649264372068110148873005461628369944448354410939013266865561038501129150843605100289177282310489603136119742120875372892688110323137488111115014546478727417378806411526249895652754213015047662890676485087242800326437979675335208199686690587215989004476987299039591503193369900949345239024114535023052259774875901731491205552087739569465771551675985250623333753333525192640289308514308036131205305750685812316571843200394860454206308299360034610991679712789273492387709960832475759253603714229292676401085663680357717611353904445318058469875044549624709384941174268102824616731566150033017000930948935478143135592448917492074999193531285652956068055559878338036637448839712225624506740259552993554997181487505301264225213842188087096307688902839379415900196093419804952098623226565700130571376603526772354557631832130343242839591120004045854068775347535099808136476148075513624414633712541731813113740878237484381798389759384829067932521994330050850315483949306458243529257006387675928655109164755093615722415648374372129815315632303016126950772802135076195168794901255102690558416488905621335110674838308015474552771092723078801033632734392151367011680905556364906061028932917828641646655475092130342189042375830953477236659764946061945284236944625353837023199053449820165663602186796199692100185675155548178345956167300927177781715623147484537338177922687750216735737906298066228409604525684904195553083075794153020258475242489733052249072187581963484420341400550073523291890253640173405198801490425760547804858882056115990690214727516565140837414015460340469289883324860040681518659632671449524951859668880808172806412915913290311104196551063686562561222206865561795110763801775695487509297039552284400727820265672414433761299439506270999592518531310149769541770323265901923162902757709830465933906886100454600251491841750963574247438565459655030149027903565668046135427966557154768120128525837333858008615327648395406661908380788997052676695828316455330166230679594433483040760035003787562741998753580405356331269538814538975227420623996481506772213709803394424171009366568209921938772368979311244616684190733652632778376284318757943745039955533120817604289030805071340694252549070782942353470391624007662856077767182840674020173786011800098770494631390333369791739584814641067301847395535165184793067840330935014686013451958951166399184358687789618603093197058018142882881318373210365302582642790396718183427265671515029240690979566970991137073264821571437814232158823080574303658325464011385478362415211787215860519497479834067329979963556224300551015879311193840119146342868437923575245385751383168086530077991125289966418918888552441851956680652661437812340457173619861029535897983697695908453478307786522429960103428998464956315678380483326933016622456118702254509167528347827023742540570989528732290386832018060073733836940236076475469249902880331399900011407149088611262044376884270113386697148958873705833914434844500386761753022016598301070772649884284850125486956819494796175316549298266898691437661482994323179700425687273610642167846760680448121143978856638457985880778031940989189315714793787017799174368687878276670502905122380574748495900335781922581875455405507168064713050457361805127712821188875228831872251409392343419730639389299394190587061192588782902963360183534597537141346606838938401574327142845728785149314725817616672850462363098275434815559330630125973456090007424662807231251227902007073033978581401014206606281157000192855374545065632207649311054699487529958461247900320149122938368141315935421479026045247301384454435247460221194036744908808164756216298276377747495439760141137576753090037189733963855425892101273640028964339310820481732112143812767393959859030315769525526345686650244789992781376886672933595793895018232974123497489023767918584277760367453293923103870084147375938779992373715752552510152394228968211883366040905679248039106461363843107473891689499211070711926356970319156458273120129961583441107440332857358997708071742095844515345809412276002283075749708593257014982989560480125370098405152622859183913480061706763686757759174734408324544077790588729584470969989740878767189825315130639734922990304115189730235668898515181606221430050813982101736581500917473554051166538456918275119552586349672920705665006992207015972526623796300280263386422684320950527550433077752238502330798403770797860518693177270363548745031115709927351733375193437928211819646754363989222482440618876104327260883695172089447701576574183938282831217461170094059644693017063909547864083811322766356809579969018152585641312548856067874384824333024597506247107010921236800803455427696796536544487333645232411927902374993028040895252708945215165768143619795495032052451266733606751897783009888021141063165929184177667992736962726791595745125160285229014429409151680188978292798956583189570617533586554854245942794559369462048068273758725850667655462608500769015641071475968878403426700968228973530896814331135836325675391288566789899199134584869186965511693647320798882452508590213887412084541808051204916084634291205051753258884882839146005644801109992086865738488162659021443330711926925262595191684163362905022963473524753850227240428903116992384268728060792406458340065449806190448238142763251222467819305197471519218625648637870747491476411026113929097623267816292932834319554569996956170614172079318939855942345689913660212705679819266093092162737360922067848722960558058078954816049917031960905628919898510470450332411821705408255335410652762788508681414626835263004860700460053450523343924593491163234711742874817419516380188996603866687697479492089757250291851179056945951441793663446298812852592517972941832148391001420234623668143881302315254600582606919504967378912226246079835982649845305963388458814030782216440299341494702101433723892827490436932827994099718669417850001757499379185570523199543999537505602682014214914649069367591921594341360535480476737479036032447035608337270846219747028727752021250000059983901399893541033781674795112004226295739951830602138139085661443200709931563731628264516657379824278757255544377677037358911270606781404266713057856791552161721581817945090674675102266075143555622719146242395061748617367546873710490939923266327049992251660326342208284767455934031551878137464620944077456399489700799476889527415819964893614848589059083452561472681241388062534063333677854213530228528928354205805817788053445813745555026188638056283440348257628519757824064687594757282759015891374678103279515709089755390989011730899135388013647926401001949216090658139537720200852609776626407420568408549368060068600364321847978991245652905773888762393279785414818087430905393648320750041687641432047777310913231922267272651680899501564622156948463656207613246870670351783677610801653700105027020740855071427098234038310606671063361608120210557623702234048717657900319226889332312396391236203776227866306744578309810397252809063844893140897843238158100268625622857025019047146043457793161891811034205453292320188836642239085047603376062420781072663678811929554237143167814504311152160822364725923495703992414922504519881939037524133773262064312229867485937920337184822848173433572395275146666405605326132728765701694023659852762690853107450424129037069545197354692306301525180533805534554297853861496661101144080877939087687835658531220760968721636389722454999596013200518343403308485982642408022249554639590504256452832441503043725197174098272781264785281171427759848791077405165689541310960740219972615725406609914860916861058099872316973296895470309940168878475182424409708970072032690628725761465934731352570004605324759188691246451313412569163329470044688048062334572803107579903751500085544125571226268345406812570833340455387822018893039159475650317846248623942465822910713910221845282169445614147629401611084561929166716194486161103476380903811686414477420984266416992195217243214862577379943516935090334384291597240715144556232349649906910616521734032040806910420878898833155843169145569633537691971093814794195181722194080032150533247433065238081345662851820946472675211164936192179723207892955353522847641947276195616195794417481113005200143073057024470529690269396573190390625549008212233194789281334227783149252622385542883891602768344917488879040397960898149156872659820930062635679129877255948260399856703243451067620534695354071225225555843207167868455046045594883470106786443558195722402923312830187046602797482675442543668605806815082094924066521779419869641616000029746689933727341565437877509371069292315481748081136749436144411260028674960251304227067637036031132500296993014596338612576025441912038357759368691124384101005418704485608493654465686044695896294614069837142835124835770543755816627845769864755925277320080840193399898873021923651525558679082561814458744716806921275194452446860231537825588545502293409949965600478920901090461837180460140274836746984216295839129107366233616965001136143938608038158938777932122408166805654410086084861433250368316726785155400894181574526456271725043613528198679778192118679962480000997389335176573802003666786231406092436925067359897963650026866903624026762823869150525928764748409228269364717180512064387672497562954138688348309005412758825587762298949605937316244040669140487444417660824748403898177595605456419634002036316800840412627711203467625924074668627003720385785634473086614931112104222007522500521459712190741428198840453182733880624478019738911427513822228601474595572289095635606398479150476085516245032343437330579479114224098026255630963045864028238330321348394932199137955969253057203480631198000491894283243867105409861022209698563601572426582972707768446064083041271229851316382678261324886045121491453529108038040289729858684514706847751580066423567343341167094321765179638376585166160141621135613523835185228310571729813231926658756261518959383489485692243171793535525102504095509249211071573501535878738787037145701677644869956478771032605364573027946893315294667777720675589171816395672428059878724806225037551779232985748558756695746329824862736066537382469709427045098837192287996925560632619993848555951163914898156550512148779952976222429151717810296594132868821570357746335478485354810410641260460164762172113481526465634315864860541357218306769232935135812376871034469062643490893372861367615246030220708469037605554471477374862018117757663280275614118126189039871434891739935277027348693996430950655914035868001558117099427520022757696927026151076720581440187343432491545891354481046447270679155905464455692961917879710384527322204272545553903643706156186967057527626438696058691793002780060872956567780095244317362062045106817358316263943964894518120277793500507556476310503173561945553064883478064864639529325396338073511847791684775187030769817524724302973064341403860637086093390097808429520952019430860203956520351672164738631621515849929213772992922778022527566122633275738923033044521635301900369297243982451349229709517371034680893442006355529620036993757344526137791504863659854915887510101328965884279451238206712688748679453682130028908250804586178220876763631690660080840015031750707964962391112306037410299656583514207980612681975816584689721263744584815851351996711567670609670701159732422059930704558631470987265832633855131777537254643859514606316158113948435648960443905606435701314732294373769458368819109629220582524367830959524923385288626852004135380902326015871044194408793456865704081076606318100324575262587813164378673080928785133114926756342439404446103375959085945443073972265899365555163492877405202118070305420487933983069520204609057108455122701143474664005893383323517003534290337169678683676830087919220748202828875055063422608628679456482533545752968559425565649339421132174350807134610786300719421643536880219101427499074725707589764716446061298767771381243346583636379520861208281827824291909005989826589874886070800659883843009693049736819372408331470303012982126200053344491820535332795305766465570779901326121265196297172366315868595412927084443453396279048695776202696425354836835520748712649122790165718635064608374719514764364599425250561302190036074081063939801361464689600207604002156894530373054669063065976343543148422925589779881000451294845150525304802687361253231740074883644542091192052473315387757225671589087532634350712981963318151659960013870607019894214715999759203271227381230733205078845290309566594832981494924894079425032776744564471716967136645167911993629667303490222682482773361732475234120114281759856001817080305888711166701248225638858387518064591120988581889648005153136830902915533013158092569181805423081598086492691473148644853454608861480199870987959893141632617079850410591362329315128168625611015325996133329872421813559233744193324164488878050713750067469528274529963861792997584325578734143466470026399025808178354401437246297485858259531515154172981491714134259666238662714316468322067573511889184870790881782665527551529326756595134045576148326273995776080090364148326989130666627754645147280889141755546448041281918368067001916695702779946933866623996654010258645844877412698399676338656790104231484536973418615949049090370386880597289347813266796696736586553519822527574654233698969030424989546322138832392520220867367654127371510748312856295640655619834895755264125730379154008759437659020379417988758312454471802334187981011583389949292566195955612642265210011470821645605972238231062774136601506682050759309931759288550978264781459956327744338629461960364503582941958591285267447510464470984133025933240774996240337492656324951946812524866989767745247581474431063760714034183964469854077583422983430299667063604366725635538224187334632783230290688902696625746383577132232946805804461901346364318475119974874149760345895180072776673815644154534071206818362133194487471805389680969157321277156790550960255615939150483502737226488831406807169476905022459516395146571762551572199338413565518630148591352311498441247553529385198809794778714716925602758370045476573725461122963069347778476702324701119255431061754943098791690802646263538487555463329958374552779882310109969031361882369669933416091803907015047020426898039764907194607990009642112537372382829606482498593304548369651511698782692970787806621201938454092533337760786655151336063583806715177611557375474752228736465631303221755850640956458269840209632484552453351585571483997372200862313727329831939353616339669964562685573109019291232842317708439471877440456536194179057099067663953798179229224611519628100167245251048160406803110459117025661921227352003398601480766439932164877504483119453310781708265775597993857072641315855272825993732706247275250282844624446537994607403591053426542318876031662390630759508585384139498080445245229865391489161936351151151442344559267293088889245305997547845322791722060427173328831018307299399146229735482747499131615932507965261426375629018696244781181796454279234005599709259131743603137306131737920535077445793180025107512215513327844951485622325285719149720888734131621412130649205570483192856964962928405487937988002806034447015576159839367031608454160160027389253016056270709873923565603039610165840575614271020360337892766805849826325339351893144593418018119501873837897300535793801569881548872001879172860886387273452931360004743593610513314587679353457253307034090557259011688006314555079361640508571739369916985977456220618454445603227551454993929008154692476363718495407676278605779276834186421303672830617925166588693133207792724298379179733338305103472283674200865525321183465971102958016660188805958620251291288513580821624043300373415149561102868137329236458193757004839814308429048309186222428046369905981738215238736273573392100439315918291793058609247893425279510079393622790501274854849505028960325510006643043036939167734829733071447104735599006100495401318367849262980992464002898232953974884661625614175883573760677226848926172814030933356238133087272407361890739561538885958288981424204193230196484535330403895774815968037784444832506280415690048026130047137080847293456165009128832552436693232075815364004026917250819705057147565078804230601487254926092155314684635966043712600483082849401152020256731257247679334634446982286937334386623186640729045515968286563693720323317789303927736262673032499802637554311939968078880865490018368167256001231145294819385331475636317359372546163235814849127444036303850991892518398876338808226802224129895892450263554293924175670352893976398448921215185217902360497835577687234324550364802157542069077207509356531247096533260733664371344000682478425661927209109897418005629505622917091075713487684382864949079948183118589150621949206576027409193771544949941134908800022912722918722658200114713888121526088985026332641682675849424334016302344729292974826300775471583156318442138950250843708928421097627841698377687697517563158429846357362535510870655362876458793074740007704522130563828665052272217420160479283833410380893376014966593428070567423347404014147392398324339183691630996839538099443943574269713639838241186575364415631440843076929150769562282408302949476227129589879323792066404806437177160736172132481041816128796401124253114447205199468597269363513021145786047278431320719387927271800282190502061314866304055579168963532722763777475378732315535515980522875301551709571086757825840910038110402685484235941702366411846407221576660698087005275924689084657875940050269480045643795870153443911834236301758759760575627488184762584986565039021138147889985747907982973675501369437712335132948089387696016714400345945097814557198709476178602229522407441562811815253926829182743403815238966160454391323174791189214498878314859296332709694540152812878881785533277697069136486758303784869477149978165779725874682152921337687442173983980978209406752281642452617763714193292027404128257968189934673564382583490935456924760050027116321580391318530348313064593650664869579348231725650345610269041137377848264392447978162484023115558509490752075163439597517626079431897670203095393710820275409623942787238031063134800061773003725961791682255444764002612513801534398304210583587310509876717414234082486558833006201050343604841814323879748356489200212713617531204195506531438848073415192464546778132830376067953992175391161130484059128153771177506970306873551613951962041153113069615266638594215195989581035307638122313893706036630461463055993040002577302890328087242712502604680958621099470559491348206701403311951416794776080297223163883697487813407251652890201203643866541882918432091668688927999800542745950200297702545870522905515665738364796580071797003278907795083415739355685849332221389329885621226435725011355382065643154325855020041791498595145999140937902187963803591535707390427012550473756744771596168579043426266694707737600362365022688497240767636545980934833479465961061568692834097710063669487788024220167893255193002857369291856962215020421062839460460434995258340745219179142940969071135973628105315603815606554516599064409400582194379875952007403409512208426102873101888854598636254829212119174711210317538128763389114513100452061428133302645065060136147961183221535573336609904066649439025154965577609521048578232313891622754585295215792045125180689391629970699632567523513820700413546534676746294587319252851085786014671029742320566593559464165474791213396170855920041277583462370414271326586273295124141348962682710132599948784764167173027751700148580075996583116263672237998897770050370693719812964866490505093526299612437299048667085634744589889224279898778306639480470781975593969523531835096187566777416901774298804924385353218485513855712901378682177401957921601507525155849455465499510558293326151865374396692992218875716423801310838469127759764915070430230408160133862897926074049102486433149155956577539665084647984921456030334235261841862460513609717971174110560337931999917806938584196163849812482023327909214170059304863194661897983127734918927439753860726355394133812696770295545171054334066155456619794647499267582670847243970283062938741532925908981619646889903628095756842211678876456146895655177073222772555938502356508673112061433377454499361067799853184225798286882757218883634468727653632116801729808331581540749686616901135262568629251664752789270845764546489591196159196509701432077472240408686622528280762128038023966294801588536034705413214693205518463036964494032434338568952957706503718476499718210673572142112168048665023488961571146633205904026774026316962964307816869416093183413738813853164483624751021213831820712734720840351296708051856970084114543284345100498795857102316804899563489068848920033659282621600386699365017517119730709758265116298072387062673694058673438810332538141682869008843917134908494931453663621753195377436196715858977814495763307505474623954648857817945696559745810242172539520751758205673668743519141003102558193572345359960714746606753876335258445036400487901977599527015859010427762539155769046710768202249585405019204341412152308622598092430228823413004374991762649351709392339316963106620375215907600047840414912592149585850711942863169923632172571547771205240644386035872823610622199202843115020111908516446250486444844590839903069536549897329992493855590082299000195682661716976316867660545381304435338462239969292155200980970994754178211763149084382652627705262064438103283708762455755127090988131000421568001732678216349923615948654632755464963207352713434275753522276446686714757546250595925303993504687820155746681010786168722411466939750493928565858391615050689882621389750239831899621841006962390990200358696583842798271146797151545234517823336588715058931495251574185255913969437682061303296233778012293946614287031634562505963379652336238477291452012199066543759028208639608834910932720210097119571092963676612129809882136403543686489157803408014062996966752432471849933321430715967516041776059796587906172867203138651055484320164481816367395708305728958758285590448647011145055921974093680985636705698469284395927504249296587934869173556448314147464384810378405815943632930144010219623756308165204435350312587148884435135012965382625331746546947680369565863744340570030219149894676181846054778474573396567674986606221632468594463697789952396896146355390730675597315017604312407857796097746355950540535830999652162103489401655872872881837701808647766898118094119649611719815320533686214667839747786102569443370583462371766246649081743578481418667648901756894663642548832412720745176629165269253967376020856648751557840361984817816783552208458569423856773679578351219296499602261967306130343847139475957985036282468984365647738169119209300704547336751828587935979959254349409712037401071121623686582857900640896216586919204835074683379158385006711913107349660183560477729879967005604365180979497360544394420811627526474985358746434582371579406305960704130583532480696388502125149964985828902611030344308728429781432688764438677976906943282268027213141139433981166625064082557240261955526516722646128531136012047697371039894191648982452133566016368067170111686040487218839507496097409113204869731834042528937060818762897364264602593163156099238153986725215245705737832101709439899064353771796917570903195523400618564138638207089538284036742965517981916624268356988070370543370398453194583199880469712760575599645110946128275879320599984942175351536828689655381289716018585404938534615432323343288726856812278117250635287776383890108732274513469343233916479262824656660213240298118743092097618237092571902636005824653460106948080977643686571786508406049162800978651619484054164427254507415263156705314446199693019462231363903595814524139919856428301269006189895426093158851363755381055478822791401063247978922574646748414845262789942463611592517521263442852644821766134784869445346543637715883282517047905322250868535666165274828907732798259889747892728154709703109029063772039923953176742416322914913557757789117724011313559428458718822345322424384482550469816271934059989283856996037839170762412298979608060138535174010028575341619492175643624785894495733717303087607262990508398852478189543929016135899157805273865966436337909343127063015080640791407355396339580891467069192272479396560546681779349942346470483024615091783481027297137594008282064703399053315226849218035877250209292259224540153862696242631945062915685714699988497624559244178076647889779184964152878276573196892264212339966567658801964247335492212856407209859461853386343546200499298078707495941093050277691449982608774548579218534185908671862679476180597617912657365338094163351396290305444226880071229281969245867064492011601955022570094438777852503167026302265517094545564566967280184506743970694398574313353161105313455991937558713858453268130698257816765359828289262020993513848310756050156215512901126005790796798533118299823082948727185672127874777484086912548403050420493297522782695418048291135688836033934063781591901142077762238188610626416279954107323705705193979936661319621099998889783848727734161262016616559455581310209132122418786055202217373413181207741763002428621601183066645767495266169794402416782747860171788235935399864490111022815472324497557528394061535053400119431713525114470950630136164114607420472044796466126030372002202924163850621285350063386790199227519373137750872246887356120891033998886183306725115486636051763400175840105008210545043510433656603923105491646379329912837537229740399226572680870345155591585408026752804376568610606262428633548247179158414494577668245782785417040435254264259149096642570761072996062689477008703579535479703780792991413608858371710734321381338602012146058889357400811892996088297891390685649291740158884449301201709903196052978955868011474839223367966881805046500860906967684971574681362344359193151086143778467506848439183574232537340759314971293258507254406826691683027081657022195711738645184010400948692319896747825539909180748480671383184971166564613950469691979991529492200486114903940557344680974073683387036929192423669808597329456680468398475360872192532256948810066386253313662897638654254780371683706074701681637516714258358073449369187929129705820600090344947764636393457927047895627995400513120149695106270790426993793919655852809348163788373579437610761505686963847584534032214059413864168404235039870457486412988394289583942296418319470409578515990774758934674179599006207268316703526693510005168124988874998109501304275934895269903966279333553341710614316788506012105501400598075835677938727985659834123644683179204213928076717504224496455206190250130377456713294481760907750179987194676281907397249397623670481639669337982904759611446308551670529067806835987963540942882898572165813360465648580721633061880221927401639757728233611791379164078884901331891018924090250417238899357087655232290261126383100718601256568105992512920211909655009715628086756107832434783581569034142993469468352062191873589786446304955014387401321708118497733093482978094786142397465974947738353446069838505082414190184169655963664493185342978915215341134712124344506616022379322309081631990076286060505975065599718458710270026133288084213135105162301499008860008710169515691012075930633842981082604400951412904001625623134117925248176959084632836766839939063676478886559883825344306026267379220676186955445647036673914881743353277179610470810897918276151041936755364356417657784280090428588543707771091796501872573274112423311471428100232244572502809447985690915415538742146316515602520625164226984148113036443346214112651932251132710501899373343128071493776202734181715642079643607487620526915264834001609709436296398005581343600742194821737161654155213066912908278981364332730798352243864191908615642721738678044479668535363739761442197174957520722054329853447480723068880943000447353980770420479493970746756807090788916534974928290827772426340110530292837083565399027001289063260488760030339339986787614854070071232310621948666862531378529827816871483876217566500635057524623011787528288896014319253586141180740676063363865597834698310669774206340051788528081925636763127547611136494108401202957593943872408298298568181423091492881547625717682334265916083573164783701029418609702271085392392935024383668346201736515147123743015728660722295734011142466530573870280395215413530164464825740672013944235045885319637584085256415709419225934463734137044649850662971850219990602376474083836103286763393129774395164461445505476345322812629787913289532186423305297878203002896216643259994578756683259911950188618216977652380303792542078322295094959412354097760247412645518854021542214041406645672963410710686341664197312017909134061160415183631654552345574789005685533272737695621112184145084358921930527357416326914589211227864503867734969980281841545721838098942698936263815258939433378821369851672131853925609620735364551690103613619706871117334135200889902466814015031612634063416546302625863757873589993508535290436266319234191119681729653327068969690766583137997969317339756629691993307245230971584764524748749502581935487193485638629663304945776181898357014892792816810017626052725843700062108715419298491349709459874447133142790753903947416920905548433245747082064927072274803640051713545931416428958386546084137851918753170157690658101635532302766972716885449522970071409638264936413940503456212684830942274908085913575549361115094426062296631228374511839263007848379338535234340661352818914023514736981015174575710431912037343653009627442926788909084865689437777866481082253075379564380125409497195310718807479281954878836309819854214664091940412231122852993440906479451758383736671786438799337270631726682936809417468459323327519535509494730392364862916323942693987906973777113772483461907163779833773124287928545986958932738362134335556277020332413420655422865773400233356656715229335609619289533162907992487141505560220672236644005127278573002246972079389636772646744328735142127940022247242576251177485158117944949114889554057553762715331800727683809223199065558790715554886649206316631529457858261758225810562709685323368743000210953853335664433694782926437680388963351820934422481464179217770841425452672872418698630392802417123524918280180676637853498466049793722844059721790526101497959827201369510441834463795157226395455558221282730788146679387832454599411115769397988122609725449361748789605534549542466696426318418904035487622891895089765041972174054800789851447616438385810624580321079654299527128355044208326717981920156629562576598011777847785243175518118004103173920447351620566259651531480825133623988592708301759301195906362850249321330973360671925875105316727268673084439519822981345815144442063737078067898169200276256582592578325408407944876344286093065680588663313769271149445472686327244758871324442154451914691496738900572711262743581337096901681521534318011768835717218602231923035909753560433516298278966382348563232036349896379757077380090680334825444273388784473246853297783293734822297036720017835314397276242696390441190266243216052607373311629478983206059610311558293974915367390483197274976053702611913138691547873716511158203973372608240263185641702797546194803182378448089289769854191825310509881766719772565325340367942071351948791395264228639276042853513477532941443315200590036781368680305003121951101963666604591861392230562945418699067507733186569005893967262704311231409388315837605375331610783687619356192605458270644035168366832045915696342110324011504522116518861642273454812013611009667584960798578976831726687831940385416355341270687949899920547664813784447419886235429091140919479517277273534406060149524219956998506360724628346452023193201707887829825198174845371175619944622972992719400005668290578855970886902356233033131293630025145038106696857795970133881974944131564410353449778536719255919135362186454898393194011149057489626236247986252114485790818179859297003734437504369562862652680007562218040102638413980807828922791086980580135313960628854772003228491543727061810113489091191229713045973967593031329820092248325332935960440141057259199414717023541824034502774710921059867418802059754851921702035855387995408794871918967620731697715435552644510139336671364517011722456944054290386387509577651741825692913462123160518642963595803394334012577523672473438058844718595049664578043621199284948652228569932837916756879173240183888439942688056615230845646802948898996299419449164914857439096061978271925720203515837315915386250997067603820414762379080572719328844118073244978184830613516303665785459369192781629159430001017107672748320908891197801679586744576878387857162206007998077283190070430726712296089921262790004448289462349687016623116090219737886154093662380417875295627596476362429389201937165328304381301314269585513391587956861714919204596563303389947201837625057797003232663010974235873289166785710145025589577485616213020297317624384723665450083109946246246227317249481273961598514348861577158692872272723445271267980670226446319152599238919142999733592788575521783406012657414333679343297608140759918672161626319695900215593772242452376035467143650867353213577177578872499692535068509166394872981877849348358147099321146843917918348682616499802185821198576530107743519126667122441710050828880100317506083187038832445718601807991694204749987292217194448849827481986008687868949439144402486677045632904251967303416731005723772114830696171033284437144254247086389723827125448917110549974562112649675995129601847579291908456545629120757928387153109426204071383115814633035656169356233773211397551914905523986115672635015673632525121669264893030932445183413325026715367762662056863271803523710364143925704869184813482230919965085731886328283554433125275522640197019399359395509972096716537604878730865323164984467246363252683774788292348223824943513882431206762116914686788894373390371272205998400107947931795592200536649599894608347982853031068316748609957574892121688339081080493062857993917186174156351839080441273119291137597073652865881843320340190430770683533265765544985186740484106211645060484762825100276781916719019490722819280647166696082379451320325923875705223834067818843067877136475261230118089283986728861086722395025235805952743709797980684851766921554315526071209584904656620414350877560484641110840072473787038251119690366554254601135592581978612520452566734120930795858906813975564785734111758098720299832996470173082378423765740934841677637487687643182692044690706001755803185820796775210004714464990965863361277178968543719141250360271965618152624485738220679929950418067456262102719225544969887928136104550062978301101906995728916603487034361485315797190218167436413805189332541722276679723721597303576939630569101857133509156863479702541539444826001215340301030877512235159673801203039877652261901653990626865389515881827994026011741878710002976685944217682335201531823331183919605803569098227736358277452740123983028854543503403968035681185883289312827080402011619425492489202464089659276368891518974955078681803985701411371204402747326075867755367827694556265775726159625479720530807434365317045176908894016875160784320108276284303979575728377778108741947834055790510222764033570883893524460818040492556735467346137940735940461848020417306846139142820941735317066153015431039498370322787604966909014162059363941736910650480082758562094044639005154550164296602825343983096366815634230753890816266939058236009954789083453396215254161619218265774367334942164127097128391108892182974600139265955555264995292719648708170169692133611808704676330744808816624384994984567636924168943907281036686117755051217050852943195047768916856176101747405225823210102534742467591413728042622403150380971226194613194459726363100127866384676746515750129514160424513570827253316901732165065021016451684286932763763706169577582880722241627911843946996237945917879746201722925835116938099704763752024669823632229967216591718456763431394872173648841667510053257545595652650418652987397174621189429926198620185624103961012197921008360487777651712301956558343390850950087860435115853534601052956173221311344691301866893259692035643882286016611628145886505952646718752515252251101504291233701370056553542900732515717835398845232481351084547216577286843295386897337669059606756674708292094792103511149691520232967635258330464493603857675335771326878299246700572967279856869856731011120376720710943550219887914363592449713900824471889205952678198659785610479959447286823279054678505184822525521577034258027079870086704572528473797349843299147577673244361974665896275553697136046192276648837044878466831842053499558276450475137290731517528435181375711301917820823267150549498984152491182070762123617152960037335221259039503596275456658496250446220655825579711457225488565403961123195435772408656840017991801590518103889513837449061972684231798023806356236900494835356440931627671612653776501211058212513081521596888573938794991449570780316987190682979183618080717196794479308362369138126712979906346186356833001197897066868543787562204776850624456781164104947524711562476416075000052743906072913562420558576348260821253076817675699979569918145540303111370916534005518395141388925654921948886441231089466229040715934809202819139774278196782208089180748343266403546262826510093065032996881781476227061724912774726164262432925877205190825497675133150335691463275662685922206563183401530455238610321268116774045166732727179496283311176565935809784722838098813737521240379251565316276373058803623312429334033579371433702417876418866428038094026036067053816950389253350471193042149097424024746172091490917837513746418970665993271585739452058517222518924656428909384362513981847978524595958843248981200960749602051322111037402457518865537777223095112362855315545183488671371565702401066312730622721672255074703562753730482903331588821798774124404107864145703149977841563324705164329914234629908756669183720513885572539208512795223767299231016140363426582748553029309649934685094146237283954481764988462587246482409028130371032757800744283863383240594409292171507892547174708094295254929825877699852018550623622776846567785809706758571541856884274040839767400414790012873027932061502426823736501855813889077715384020799206428318177510076868210276966341375803648453376003421780224684161145907032494364215151369543767220264473452348849303240075629035111242036025045436308017952207361682054117335636577648327241412644429556494767025960906397057501490746549657880527118424332708526764056285718934675085727020196736631057855978101106268740333035517556472894737614438628741277139328593298770307231024262130308546491405628123899128584796206424385872170951804153206683140066748585968352172050168407954633398702620055325440818570194587405151200102282220303013792723929941699481290283929556711340552915993832734276077207955336366087104662818129827938030140183374531411153992743853977982223076930612361587232895171635529730449115025837071884025852172587374038571041257912839937243463196981882378626199501753434830455581811769778479776015393144881753216178171143563084643347513705791756050473794390221271838790867798364082325783853967419567542220279193719727989028578532925520314967670178027032991849118734266588399643713647911313498673966904045752059527336366382645579930865683675189781089423574468529357860173810960047983801141724652680682960758097641165203252374719781738934151738239684869027175547248722786523200670412162761758586598126842967169391977639345054294359640513930605275896439914724131815171991819840530157791724029885813278567378260532922545373924346188716969016657008521232391723151298153720865726539409292091634443074425914072128479162595010182619866432725376722279191534807197226378748834355847818550503587297738451090683218473877992863139407386838450685493100021938112223410366097427999923464580900358623937385580404643990249261993248156346350131682199703777792119334167048328191542793630529201872525759246909660613952592952639275948291567273236361897154310678096401709902415035959654222005093700177875405536301730238989041033275420884099312005334618741718439027832995068911133469825530632080724870647043672226717060166984643172694902202866997216521904261229067128640715122537864728530923780976165860223828356417814234200298885088757884779670546910295845552810839025359312220646328495558338036289000414734028943638581195096863818015787487925917287686087269507910538552426515928469360192845373968406617263713365551778171442885480900139216223512394387734208998726996919006795116876397441885210807647090236254413208563525141799283513080789627261199452915623461672186637975444652640478815845085317304567624845761274541298511493343909952279143813798965915774408004045992156310470092374295590834259008696031054243386264458611352335817775126945356015747420413355512334154128911457570965055844809722470173378718908454338870808138793869914759317266276117427608618485298868941166609728227045605595810452624242263062279187971635761491301156131555414763079975471630210312501787697443005619222032379369241138607805575388357801720936329969484843302203789839651530478837409284293754678162392683173885426295933723678053427661723003964361329890469549838161645473038864365649268067690199366318001290016685625687193267489718492493380290133637466015784570717214376255137851301241811785287173587160866654853394709739825824455939583465263399855783748177091677344675862628910731749089094030729304728262047091669335631205536744955987178261992740950499651442134795225086462628328284715398950639128810004285318752100187416509876418177731804924800927909776902208318916643424597017087363730170041725072249657232550827577217776622883521241649440348498768941319969855251258326837751490363732034898690186755434016722333304737202865860096502008385825630083498441549680775952685612214150027970357839567882259112361074347736540890054255591329765875294689680348682675743893051210595028893464425838041347189851185248775935745663630926782460554675400817445843328196360877915666980243111082989837952974844665894571627321945012740759239979786368549090403876846128368978018840175120744540200395610082912921349445667176434808208922055366588124497142401851767784670604033925698752189693281814068245678967245361289141930119273266429061989179757013808503745925249569893941295790253161435959694515937598656471382667267873549676430227903765254777475033782682295968567153945770559997571011930362352157076778776712496679673470348444307681873961342430109647689401142645053581355849600794105894898633650402081610043578888293520551212578706033501154731438820177020192284355518648778633278286419055132596229235156069758795700230667898960832866883055076536280638821162815174154711105904708004984184787236063784437940549709691483798517966042925840619635867541143158820426761082656150937784575424095099932450448156572307130305803376358330834951210370256083264975566388318426237582383624378454892329961638527136341365745274275674932393298826033504185657794943953008314263875241630551369870207133416586520797043949458088562723568130956695634176319786916596287942743006317397695046088324225854560104659256255887406502425776882080381950913620422182246735844661524565783423389013785792315029195903921801344983139457938953324731577200458109123794643105216924603038851588890860020571892247821002863305785966814998182886650982292163207235025822514265677144860570914009631700421933094478312291158417675897016427327128331646979123238941683033666057969581718656651008840673270135383774713176503963570106015892944559701076932618701264596965096022671293242986539228412650888251780393523314068016716005654512811513326548088327962523528917465579830907501438615390268152095979778398264648409280621830361962401729167944352551070198386708070056980119649211829002284055051069907087441377006505443525981196438658488083780001183557084684383752967118343581442729127722535850510268453651464828941781662895297361993889974929600866619481759537088453047987989715767498991023785874225714839833480234518097384212843790327567382001586261630385838508452934598054026047224835530757128469527309160043946014969807363601378957105139990909051666699449317830875775123605788381078979768304994508513643976974307473350428103773895069719176356333214501590876358449989252548311186778894961104772507345597674064003076325045102989212071891086016705018779674048869489011018491426029000921160990265991169397774546119377349488980212229379294889804393275772772775345260603298472920409856948327598906569622531536671522441916394413642960353298183403214747110153827869399182350175221334571329217126613456486808525898184451108203943346796744517428699385250580181930101804484677149833624506322041175329575270136129702497220934151478013174858763727128529762440892592322989159888641488821178635621811709792644318609922667783103216020806011833765350273284620553114501858338553728665442635961049467192228117983455652291433144773477862795437686564021241777804071079482546456455402209652406503187175569977968948517210339240461364199961188847951160200769178499856273227739616093004662907361216179323252391115710065709976859819699419428871430443275825975862524990139280734303057486705131177929921471075046209056330534486572231879740537332226491605491911434254835937815496947675231211769203380492474795739319473806677453671283486734532227576173339696501675081383632113385116249465114384893408828365141025292941802880185626955707025161450136427676418099742129653086612091198750619562068743083152696142906626282411542935035786279550931162708952586437704286313059832343595489118457542517976333009761728345809238333326434101937681753257656065091803490079094395920508190916382633771467507871885836254112537663503471213571853000141238000604172054427231126595542589019754548754401568697012369393171151411479926369379565204285122850186299774060393708336454838234116899032860004191932732551932800901918647563078933107137508043778751895108874881973966961200745989477998944187415191962423204495534475245351042491649468635208624444964963424181742015289718648588914803656624500339908917756949855237986163232889744810083615012403221997587733816906939374891724040604836116389584806459363918854957886965619455219358131815404231334816606544626505019786522224701589952754638087985958938316376511184625274547409962276727087323036469208132457585510142389630599424150387244575899220010625002676702499838005903684234524937740375270107639854379311789335221849767960809343759502812497202542433568813999993047086085267099878017235849730976962267918149267669154573704152550900383951792272862861415944352934804898688209972150544532889280397629953886488043072589651306467015210993618731819166913956710538745079615641571139296707791047771893383027802452683812504993281691094728684023904866754614447913920030885885603079012377301516272597144138936874637633660414305023316972173847814838214376855847283171077251804108654721704732027505146799038009472257448053540210253276989392637944985069014603244277745867328966382732923620616331685273938318284085193651629767713414975593862943442434860497391353273195545643389255495797104191147391700892278219475314527124435216428228601459239405447424564687169865464472022269765420967001086958460546072436139762240260093448862633765371920002672610122370078867421569453240992354448511560110779498565932797613165439746949173502741050321866520948033008821467281778799306226504065553502327658454586359894584844869347489995464440536076194550704854981112051987744928653414499177439003157530704106720564056697548947509934804305553075801618456902921309537979137469844644679450008403532341080459327938295394570875160591575141470650067216240391165764883574240351051875507311443872529050744548394714469705318317486173066213585521084805951423580674917151212465495927571683213763073315165062902231788295324386417397577254123014610922040875254453626927286060489107778989530855767285451038141215286659869117756649264504411617804642198464205012566232944029717754512129247533211779922739570727879189661760890128802101730537325301267972494638297815084505170384985459558632294659464061222995692996155200432931712539285145695217438851003192894226310695111567325921449073881464776871448864363350234835600573005801272630038025791180802249018502296581793149902282725427280207172569084668656923040677747436830052476925162784166281803532087958141466179326644992736342679926139845691659355377366783237606269977635109264200412495408711790942530278606497273633670244980805656888294188455000664142478126909975390714477867169925580085212794544384638104480691542157557285775283855526140106000339488570647146641343132858589944481763194300286140425456360919540151010164632234487830285428247973251114539082521959217041706218423974063070784186754108579625076124420020567057722670471996599130971934526453029516989291653676564488631425354291285805863025326351196194242666892919266213796421815096430747832605541143436820915289618498715227900884932351295180529387145332038784216704472497938128623243032131166851165099620614511211166462087044279108741488013446378430842811203480602371688512411402369203365919078249684370981410069006649873287318953726198214048061769503069428572552842140371061986435612454236518533486939160290517553984302367673453238974474941447894608937173349966871265230945404459545482196141154640082646488980045312316297637317167510550607830744226352960548112208990792221942279498080773218737544858220552312422184788038202739665226206909328253633598352594288464587203641590887929755993709294720736563153867125594107503751057663488176312548758255412075100783840256402024603795968792547951704070442907659060061630061634345707814040601144140349786720754027427992816269441517444355070452374220232941659962509894799296844280988228691321311315470145862168651617414230941081520182335141638241981140796516896535657603555243953630715878568570486611584007785058931290129578320222255391903644688521974855947122571312598257642099218998127114606316133867857307330820185264471848199673199139296585228394515222706766000824617938918694107024595676534494958954908119991611152101704807979141704057577130843769803765172542706065124719489948981421027345417843752068197008969967848013272435131127198134515857907597160887922151306160865356522564040344975127107072042062902194118558014079247740537344718317692416538805726047084818236312422086666907512703177593232705076076941805242262691230138206502934046595468795892045173146157799195639085112297890996959483068062483985360381620873811211369251148650078019934354927877052800807881420997897922450493345779406726617078284025395933540061366546413776496136385745570369368396587290228764179237814633815453799736875729008836277012351480475251702957517395279123450946996309574403514101217789407265373377809748024112908546646721321563927764687061965872563652689351818714801355238075731760044008878819547074719583550853957758452502404408839204632086897890214076311421491256507123012462515204496673107547441032891786861013472050060593477567280063161419212816160981392664311152684932714268430614714160674230661145597226494711428522194350335670945769758487431918911176423303979839878137503552071859138766065252959328183559346404910634812159987745283211122238101107986018869945546617341228575913973960079803258620772727991824563020937154103502855237206677421569804219580016071723081572871109905066663894160169941108367373608905476845612396788647232157971360399954546029039875216766383844412926765850740930229152841630294262554792282353346355363937897867279190676664160067719335679627481033797253083678828373701734767464915783698577499526356627014954352201867737961102171130859118474461586160241552599143738779829316558577344519753047968799049396380076642942300928581766639535527535241187952932832747236501432428296638725143199150672216749554199414849477151291538542266658506874310684535554074855135663919364721012679993377017908022038437855867182104279884875135582570822032376391470607038951176851683065409820038392149233640805041255562605951968153671398385277975471749729159354247452870949973952079872467210069516543956297729794069287712429494107255810513925691214622046487042841260916317715514849286065387532557403847238915165817238598178154351677291344655479109114963952784571122957251102989179268982270135022281699380959849152444521952460738333306174432770676321564598327688291925518936020408897459821266780188093700340696962991444335401117093181171615574261492043803992861612409703445186764201509114944822475958819419669426242342684280947648805517381951774966430553649112879055842901849228053785761190182934713031690668697599747288059005616392185554510864488834959884620687373104795668849717900386480088312285172585709353430306754504622448626591019097440630478413917444311214753571965223201612560067395330711066494600902175630399836791547414167034425140172579219079298880535181693216103388632458675863794278546218074490844288893658157690646178119068342871312955568152539853789845702817876601454240479246308853896739758279962119634039163964733889212418934523774026694272568166089684516971476496275417229072150321714114055983923489278369488825799345225326817579491486172447641430615838880926394339427182127236314446305404429715763905277982839995755581730606564186550683389290724701090099906017668676324394589392464268107141319268573006930075201641757290790483901790384364115421320445398700927666391449212443583695583448426760955443286680273379465998110378323727856369322536806935596536042730601946102554649526957508676348548661459227697606771471227571730387724709062072131961142328728381044567496322545862823727760481637485990835752837551999030776596413309794483353192782372531366826778999001795684302952122538494922837580900968079291123809344839445283463833399733438050265142134667551938262753978382419886028021703803040141117827592185694837048285705212701967908151963200502402856251661636124297531461435295645364281244642364598342442073806098631430393725180077523323586447514526532424883667597706707875656755720319583382531289592326811714558281206918439494353302816533519344439988161186302489872646941488471051444837196898274664110414934797323104829073078372465056210580965360653517069666846277869325608099625737858666123807021048726663665242800846433404341428326912277760051255247108167618290696532661950255332915477022570297781738927606297518461248836710109533101116489064428424424128697298097623826392547486421797130373813346607089470770965907525135853577892009361833013844772585295671347033788086234369093295987347294296881285419482610125853218694775904429340189357972119638950502101295904628881933935715529166274437339783257064763007554912017819691018400094159207848942820403227880593068466732068713987088585384567275757988784508358441967039575554653848930488689539778903117455873787865355937057723707661376073212753348937686508048868465878830220482044773380662380705865365895523675392533052224893386099457830740167577141868672833466558050647467587271983194921610610212880502541168939822073558941693979975753204023873368325040023108323725148022956483690461314214034502671747646286647664936808963604292912373008568181677236847957799759004120544168593952165844341473459244078660985613014984037489441608597342410378220009336878552487249688775996016295090962387361743876587923162010105914751893552040595692473835391380561398958634798006552516498472165692581360371397559070620500520856925866175684688862177102413071783162806296452837847130151407792134153280447348496887771420588502288706572539950303252856252927692111789129756337291431378190334731695623504724387738444975231739884509694553431803743301523929555675817095642469004876605220610080418151022026391559387372177677361364843386716697775043394295269952038269377696164614662509435667543500789946362209529981635087733902526064064448749140072523265534885538092185123367018060791185279571801976517256315905924442985847037500068666499944009594504588411482146211343703189046894965898897509670359283534372557723919738901815981040288983997778190768586469302286164523747172578625351333620054321138239959566828358238358316833669216053231143604813888674508174191271744146300588530648666613247947087590029021406750504131937204246783481998726089940581584742115469178218180104403752784427072117603560372291258152362109818217180570170763338174597895266998003488328247319235621225300493776984137312015321226943672247155057247622413713661020505881872841011028577496397238479376897784212412137281653044246019674076424195193840959280532021445093456550513357484373588765680641082186698248772255851445251279428087536495362826308886707146422073716578083212137703688295312425109301123874382573112990397991242603207168745266066834150965277986865342731821211653016801346926180468163542006330428257550191634584845565892063470792849109153915446299899487517964029467631830711360672322482895908526333112276085463587195215147490328152385507037463820881158052940618741989540353708042922184897999445093471794605434250159090751002414350684773402473872054454343833484437552202462326702981743185986901748742378755776204721964072138681479920535113560546446588898415319974618223268149543144576853374408372548524552417268185223304539400992019275167625785638191403269401603410742804547906089640173049167480901619972476038880857099459543065073709402281820158688597722370033063996973229941104977179554998427295592192166188798308414721675046340400760710042184856714864959289831306671735264242539098964110036274786483909607245394641960316493789006938046321468882745632384400076234974909360265937172057158510182636113267915931878184397624292974312136943886419760679828811945847785315281535269515854018518805064393655488602587227784062941993554663862748827393298483896024111333870693922715724438486807934125431770839023476444216372030820352889208479107328997776422122195817175679603553723226457618267509487663387217304729802903359197546320227748223032093940885533515336004613931475504233642923217461665559590781229386478549646709638607702152184657462246677635350437383105774227635039482410550260350204692515480499306194454923970099349163037998428182942640183932775318728169283887778093287233047388785795920765344202086891973028777052494840777429077044616410677810737286308500921479144845750548904434510104218594462531910441406833733585289081771325678293767775209419015033429547604576475940364541472008746512587141980332575384360511848628480851376330757891214134173171953805331711640335332715452185349162579790093376076141415421454739032190530621599772000226278770386951863236554752756084404601731255680046221035673745511033520813174118300818621242611108858485315501291289970040873680647819621271492677936917217784968775556921432510742715525890678700495974691030337257736604877156094136794008755153719570675489493258487772170341811319260286328319071518505437162714645897749168073051300070671531880874626615082844090029899939584884708426949576335439237074355015192765017429021001134333486729758082757248072950872846844985415073721797078733349753033847702857629725800389581640689579143751368319294836584173863006802329825875889185349582510695195090536677962402855589459298389619005849009018615321457687522420531740895344090457177227598869223544834250265485015333537485298214993147119772085890235671221642510066449875851165890515485649502654995130598538296420006258672813589434634504825392237736094460811803750563947016316594396912720921329248567439529780192420362740593527768572465222743432800119106909387206530337945153861024081235807533053608860888460797081656610288981441834228579714273113075846846261608682848485608296383092847663794019191382987041979641709976260491364108516583230498278525362770536348283164420161689225546549282801790149686518324368178901801386943698088607057142638562519045857495853838698575848278736960352240745694465947396242777670643398475120850794583508878538660456338110902113772625542199805135189242391329069964217826628513893132994930277739127174799315219760292312642622752494085805809386714427809598601198642127067035198166173496027152003723283314277774330102520602385275575499639919068297488010556596932858544422523861174411447968627985114231207942668472021904441991003550019538925063950011739246381723376163300291589349023599954834554605689804343770223207660208673604143375324027897443400852011533506922213391957611263617098974388133975512991040520048656672216011242816250730538956234384661745893813407565920056949844983465805081655710454418686832305735191653661619919901448488129256629656982099023728367531135884116623790776476728383650931906581251133704486581104614096545589630383028863562405064824929038692310899620637508626422266791644073189967798012840221865110402267494090544025996879938499224715781233329689114997815839081931113676131154262840653238016542077959406327212795969642278849947280203090139124307395285141647008218459833537767822986930208218499476862080390624994874388020501507262920731744807601452819951892231921874028288412457913121580457955721482042021087404795983592499573533599673177378037870476188763887618797160732856860144669045271282071234009452986832927728784492126413705668977016534263497916009372679811967524558580145877504081553665911794064731177637946430716179062329808512137174128042979291621370023760905424685305207067065814037790525789818405605571693380612813480263593273365473031759589527489971643038019046794386126025867709277119363471538547422834323748908800950837136746777912911760264538793679659535170103167377683854938054271110807294921712137408949552923602034254259245585951314265665474565047999067679894694071109444429813761183669009400482767283856550490507528541959652406192954411509931885489996277382442005996063806880251774790538697899734234360854134485684936862491195593222032467635291991505679553782584369978187992217782418262501624654349337995675492598166680724096302990829990885451544993823060554845867853796300847766081125619084232448389110606012481715176348487500863965420263325758152463295692558223436662304291006542804099902113922400451674301265525104865532533350098592471358017750264004999898188135735138322481544950715466209764541371800960177408131396287801353080196906805710361292700333721890531344507461131009710804639852193152495315704189019298608320297645120612964995261088007517703268491145877177257837860835135005812028811099263500447846239999592726818374095822172236283225045373828674787423405551435151713062395602463617521968029575451554041045280866489288520836370960382582471904717215918445526381869190296586594002371228712920852962018566904132607331268518310309785556053798787240430017381353643727163811427585330963907493486674943848954906485668852563123380519810311321705535016406429328553080153683246308452591628977774644966386833964797940650464980375286741024692291820885168298566987533545345127748449676057283827224569962592724581820250500261631537322326987516348674302677462392477777661706790045182022560332110744720457680210354101944492585642594222286977810735066488139655726707296605043392640170094472834589053433407577121007473712008978379871401980390906174926708395279884723481271845451147358893728392927840426559011233914342345135197164640239656798637387325999033695530075764063435083578245652414642533681331207600038167802890109379417962029050472841175577336089793258190761916874599192180774307478723140197480295008062997280517532172072088201522723677500010862510667547594906172362741200682593629591226651882684386766920381192469556035458696519942039216395693939510957640360030493755103333771158490020113455229991080028486452295059806291486131322953342395236468464261984051354036233997695628207884108745678576785986811968096236667932130428563208125624740431880055055141765489351307968072920361100133902699354333878415111985483183089617826903089653125280281360403561271188886951694410774550926734977072680688315650644998418910959080880630122214095203828657002300137147546286550003504325618006797224458973931063536637992073595111315144443794017153097264772338629377068560822623782159356058897781714890697007481197319171482289904364879393581540512379719296127050487515760286387111102159931298766944411666473526601789491028540306828191145957677844015538091269709754249226926304739987990260283452511897868690633200949573887090126706213008242236033392427228643128745777729719311558014776786144523318304734214377410284008060753802243353086085700655999407331632848671845234185362583719547065038605489375468646801221801577054840155682744682792480650677563152454621641477205569492541502968693320893422674908752829420385688076061253717785360417952031256928526259872193121379658370687649915989480719041840383811080820373267195585988385997386275321034794563790128233242181078346061588144052905729501530379530294209669871800192012274641900480866425296270863816915042388200936840276203375416981554913796469100420485871021333621418157614890228550730139836545576354321173774027712202056953262503383395808143038206343194020377887105256243673456194484216363161086825307399689481358320840009758528572439858012700989861218680990834095609818956305467737634354144714330903037262129140614817571848156958791598858123954503210974272370767745045969713884346334247946531654800476968722640664396615128099188491561685557023395260177093889768404678982699542480837950886996112454002153650367627577512165854094401283004613534426110524956579617335419285459114841234959369593664701697385141503239289429660711575847191411860445699793958922733969191521331583815897039612984182457509075667543504315127823755045641419246869820257415843878497085586115867038194011837073754451324635839314620789515866345597538367077754637538266707377131680599642821564402965845994837231044184469482318688564488086790475923024940351392885933500494177680392035867575650549018215340822015718228707042969388218503368039040328252611921659671719132544118654403368419149098634041395040393322135917924605737390318012954812772046573297229238160710116757765666215843987456050882587120613317444184859221619892444816819163619420059780818149798172845278405579912437671942964554370688596369905560769804870657203628621093337356349926236418165398956818187562109578352516816907348849272371719413856760840207632473980595306763245066735455005268143441129547339173755273564645631372787471726244008508415159797613787280808919624345505850325056992741035294650700779206322773975022656220927494312892308307760337500084965594805958646262202128963915210351503660919059785004682919482487075194766315804793113968416799100120711798316137782957483447284339468961341698192264366609191409998876758597658606025436801038893274945986466148647167401637878069738681940733153815102623073584561428500778740829822923825196891384257534075330003091437191276920446847899676921521899575157576315363740668885504851154058734143752318696872932166122524853210261653348277666102690053479837236335788491785841483689841825563271123810779126048000164635542275530092467276628301533800761210392535873317057561631395540351832824161096659735344120567581121041323124457178219945480602744748738196184710729144814508604130176975030781479906662485068033146569828366725491034383141484622913267563299215480233855537895577909913885032960067587215233461537609036285443622919005637342647304114956392063788900205600166867955535717620960514245820253530414766993083831719697182402038347510760554674448032662706055177661415184674360865167623188819344923878985720028282570346219086157418570458424933325762668655243232367737645352226673895512038279784749573802236459994929400473101918375050571003057707305403887630875939615490950852810078544305884112195206120199638235223047939505870887698681991783944509499627748747315114220177737789610473196545392470078031514104302237596569446940730842938140712610432842869935952776562600655235550060182611899540119406149778022592384906881867313153682775245014940046675604292553094594819697580656063026733851575463402387186395055482293389369916471728426815727113245460963463327014976353629152522968516918694323061068309886949933505259022039921028240519171203680245103760309548443369106946975242918384583959472218759718771608931789806709778943034968693316149017939310456129950718192693825329278552362142314131889602100790863264875588999001277407669726304008120458610242504883590529541881591664338372953327239976928061206424646378937807853879137694876890862569929992530122607556781947226856666382087288748331620044131968525908763350741684348315968902823049626604229102165736407567030172457486429400658656088893438373968336101141909995614015754229524202910354761380800920289570080897492707603853366424116133718012032196766513226834173132963806388503327934985738966433300218858717310884345926963896008609736259957687203772406915552677959917943842790735523414683814819918471644168751011206991949358449474570693538601877119757149909157472617990745791068758766460252805297709624789861576596704287346491158890741301462069888110366881352234324007389613658724897958279246049658053896739805168067547329167869210271962403831598429086627312575199622686130649335811049720907879957135760537020308807109052420009146762383066206055869827121545908088171650910829892266741120330617020812952985396391722358596876826759696532750332716593850318733145783193035555484347591647668741799430504308732412969724654662570502947067350171015705602695082780880466331320682012439983518246196660807051531120784537612245407101312097051500812769914547019268116683129294471383343061624319625814860224720234774715069915117613908402452810517287127662362376505574282094294521946074180979183318745642996274758874285816143950846969080719024437590719010132656738988413068699527345112934283080616093985875018805038482835050097223398089313932840691001557935498165444307959588709490369476721749093110337591805578339567806989256040235061980255944799349397143806606080500433331142471319567967485447431124562791842203348123365645505401578740418834522854313982933212672693791192470012875439910451619013103287030919954353177561942693012435379562417782415741278014773651113723923481889352095602139963123544555921240996786536850210300964783470257332353910055029060140989386682151223199175516862012489933779795363398217075951309688661082023341695770568226287270678874502546109613167488161995741647381250179957781047048686541518666437644330609683076396540211428907006500246574658894686115074774180694379714647347260639299769480606322756585238373031382969425032308976790910394962828578811285251226285658443557667920806407049262416001175903982669831354382869766311079956848434676024932122248507632528997526897889681297468382865869944951027604234699467946180884289316216541217990993501118913354024140240033979408891070498345697626277427132632117901646684729657157881972368388366633086131538565276721952325095070371998295669529982243100418767481459951205658398440493166706527070927724063631847681071912544503602261504476067122527867804012179142432931120851365805718805995342934934451314729623499302254354812610716742247319680981408689166979003424761387669543772176795720954151875706715543849680926335691003646979926868551122041597847650751156977170603793574020574647887705128126699889019926869467881549485280173018095067696241146914718964628544509903609727943775569982181953634478539441334404551587701419167089509309313768634740164507763875352857878839388035146322875015153156862408263602430712333428963184546498949619484225015444217128905789392621800459220906798044562650689885525174137450561368149285803328357834820210018506192141020032288109378619649073322143813509482098091015911543976684569876393987414762905138309236457339601410353352793172907616690958539650495275539492602221519132917086716233747794132022146840322759664472996007035813667753803627412719115955250234219373149070206113277863433910042063419281005873942534391600405217522668390198099224301197975949498208950189756661447665056838477716999784012643505099261335376843293384528178999280766161040652981080461222445572945888126704283539916544513263847782810168351532164614442802672036133088991051135665322244880176248404723475891776084149299752551858959304719278000356095620946329612809534798979542097219528242362904685373331883012738931023124586526464772552800772912057725201431122904016091925116657044133583203617067374568647618225551581159308142351442117235781983667466674631734838146329688895327604706661308571062637462567513175869962252070142405508636824721790550849020732289355393877677032592452950849810881809453177982769289872704560959722689817586053243608268079294189267128613051140819330976452000298237597159253154907361631122605785428451556548660018342729079968103162607005464158212837616559922003672640301385407580657422143558534316014303497846669288162614629010315628808134948835970080008244051263486313723020499896383953726645694971399190484822176318069441763394404289623454846171718438137474386344969589676776918954922444739939668024390669638048330144963348908284303461708600160218564324021762034431425801190978661842561662381051805847682121705757521974607824100659373638194686087692466990344586712129296574071045553382625437729951667269895488690498291879584255701893179091851603883774336638583302821201828048978321977428486941669557546172339358679218761675737586507163634504233472287360474172817061816528578856107814809182648845255433844285196762525443270907330037299628494652927906906374076731696932599416547451482892835782511213741419705472927151740315962646526849535678415619800745552438724628007738858228708645954496598600502285498301992913562535340978962460922324701553399195715323246216735790881300887328280320418485054744449216600251481459746710422363527692288101757215807708015365118905764418088113930382862315998463402353821103266657020335170275112766533984619485475424279570431350954747888372515390763739804396596061502201671251128536372110469679279131413933322407327271790273295362643610360954173077076028274564200333132103731032869319206322637047936750916037249750718910055675184072354018681249022891107230119888701288131077676360930237777518339120388544122220501466921809913334573267708174031344840406811857812671247594807859640999023569003930359402914303137411553580309148240141601432602789565620600943458885896621709880823344953267550774688395940495743236470226920579192750306735018616535778276864146188553089514638065526127972251758850097647685192891273775324904944091803006286018925138698316310234272814714113686079494856707687717436187302646996597659206902420713246589616554480954433895412299026277071098370737700547928320782562106974439310452217185587010063668886770974099940862170339642319150210709108877875018974057749969619369557324993379537584852180137325448507502964648954311865571727728487908485977733260034492361288922653248930886945422975320782992547497703135398557381665052404189338871356045526161602666240948575141171449532711241796640253977275600132880963324448119476613501321840704243959858915665819740782512894036012820043749138518565918599312129074367309056032948581378230570854547577227866816218654034653422736987545201375427513734742008997616580370904620061988301778308894104858991502004768035715930959340711414034705374639081209384121979679731377151803674620153816636906784916021703218805730092958843642613853624370337895181975113712317489691585433442320673161533542246923664201863019096731215696802413801807097447719446937338605084390084526716038981494683012310560318420058233409445943666560281758650185726262933057046760359236125738856228890097993610224346942172303136211566913673906361439454864951099183611138363590994396842107429069463092200471714507660379053456392176934843135167769234949656829157319844052029390386404013729952171410614419463899962642047513480762068673188640832081129805408043178433825705488511212933597807021026773418127561486993608543091313190949976245727769003361611408239861944002728148602100784568641215513049877490880659721259951633672488007224600071511055043640611410721925160189547431384666164183520881527032177190173032222746810515543218963600081810153987403053790356546086915051313966516196325729946378739509114358906863875385095001062046814137640927230169677818618801143685264886125818288326124385327216049095299879478450684651928526417764173731940481642179800785330636062390923914939873423441710335798787266668019272968836097249325003030277247179989926129518393397756484674547985902952414245328939084236229678949440172851127520328198721237972108327508590904284978622158911467242433445342225219016609908614732648689276920550716176699253430025583062332790993122205754265428083660573324181026860704888205506170578022514715065558383590439496755669116469220907260798544546532161074998248027359730964432659995281837698037080269815288931219057493512491410200736826351223917722492221617009941376186606131011759357353476316041649924743813596772255031093677955058890701393222849566772004794886927616442634969859225840350628956416024776237170829289783312071619144410778909623307197989652052204143749019280675198459188733847619202020642344929527688276136596517785305155661320219144277923989569681315598576340925926530069945300898972733018587722411370388241437282662718326161519084924596199323312714651835281934577068027996827946796312696715069501363303351128069671503573416035557185583790464439397526444707979605452652691958186244316701073906574286349085062101029141718284296823156585216409681417858274937012650480165814015193705764845756297815469743335124682578615126869804589766656671219353080059684904843520804165819759287861139908966786375811488407104125370945465920599440325512346821370310444344349157597790479533293853805609831574691364853256959842719068108318533883918211140092774941561542399774629481227845586224495178636691110346950085730580617108946251215193403071437194254578821740255409929451945793084435968307496571184863594657345158751147089691200715476498052073948797684379528787904370192880828048452506664382037821737554639247949116761879548279640636077602210675214338003865824288565802795310985680248550296246354819869509014160230910117648488798850509424763989062316468785201423329059921370514802160459037408256647876239495749805495670352639963657317074573227254737777501800644285621209458376532136367756589318952884082817441469568779752831976295066002542203720942292393110709308493697857945557525733825762844504315199466141537797948613212337396925240494107401663310405150301232911032966193406755222489835763050745383753444207152292573490975317111177256933110658093875777268827123557718191139673577535618089193756381288567219745504335193950310223872951244332420991966528034894888334550576233726466955528861474703497935137266357526062144238220445277324231131613224417508871380181060158038615899963760510156384718380217981385728724784401291776967446342683694045919358395604765854758643429862694631690883403289830490593570626338581369801220791390941662211718968700373251891062606436469104858743483027960139484454224094668663482626059864178352306452074716671997107868678981671609214838280786282150955596298616268631874462596578891094395971078988360402604110825859806983142498955710725671091039722403179281110233797448061878836859032415412590954835455966427356377523586853559374086235028177735185307537348715852416211409269411952617717558556265672219177107969904281843115759011084163262146256264929551641712992075695472683748565809204887406563068676465046652495831658482154853358011585563952810627096314447225058160251687876582175936721622853394323105067831331466750491903256416910582704658105417723462074630352233684498376288287080191275174754700905826404113139527716694899627116925841870609174178181791704489429802066218653220492774725206316728884864909576603551296797775911636730887358964104402311888333931617118434800409767180981978280200445294814824442829019593862108314814040045491864728390364172066133451319457798632256021361718909961506402744370826592412640386531754541322653880235721776087016941737305629893465152342914417530509544610914297732273696264711396611873959064821016786035718858815527324384346888710271352339288167115962755965479619992167204069449646035861412637533750600497665057467450299302664680015576956063061943793266625847042167501875821058301704318338396883875106271844777917209435504847035292888528315978359895355364538295694105143180023684422087690914943309924271928618410941501995740336245715841946485768160970350731539102798552264335341456615597442310681844699516130029592364537385861804803085469954844015528375412328324264242173647329075707734429158025496604343404569007389819894417311385226479576834431086756255161458326918744821222536604058698686085760419245103513771267168971262561813060899234298617633341774045402276278191570554787720494173926161410865373762667372831221323542181663208069872832580301004515680352292042565940586339877185350446925719517127902917530197262878756148209435420289033970512482942244969339333327857841191038691554428123530541906277873347501792127299868408793914162914474947085363848253869040135314498194287016056360024568813381025778075181409203973482205327803378768402606867989319121491429120085026532415639314642693209936327526764088121169724236016116712384103206813733946198306801692961569509604136224024553518878966490046167078514133986373175074505013748928047375211879570745217037434435509615267276613177487783852091022770433494624849319227682851040474583749105949476584896648488417060177230027305282938567121984479866923271291671863177631404995618105212276312247953583977465871377651148507173752628019440733253231345460336196973469522591081012566793865865907206718547927566098837306332108840258588879407678699952620605576900805744057454135298274216045444722412632459353388520513279963027002550851385671460457691134695914629792562088001737864852180094662500179406451301284874407299667494330069380362092885757005104781696034047473223519606466029876726359915738187839483434622682195833897864793471700079649364600268617233751543667427508519210734649392554530149025871366501731268874715066821086846653362397563118344535685986671463260689136988041647221338970765028112781498519120958440444032983610342824906675462106484849191156407685695523943728556848021654129118616903919286838600365574060651849656568160896696207717379912265772464589178377892403551303451062075659206867962016218658410855612787320634747736263819440190973001260917534974240972854356122269800679017770203267188483635232803522491441660784588974019724106343686033031045307122356612764970702840688814746797178443203010030416915055874227633418068751891399369776578273785858301020939755530731622014452387444796576759510677848938309612837941864025164662645134644590093738320152744819258053113204491772458632232571262871843703498143912320686692607668131000542403059461589856936303722532524579994725909984858551565142915187860470530693546002460005418535801473266901624467536039322399966354503407621542795183067989329256402161131184070004371481303469350253749456462556853396651914030996954472896857806881385332713342931246550757433287625868314983375512372009157601624702969291888691081907427470102090679345868537022703933775288342334733527955072830850295993523959156712903080835876406802122110988599043373912031230950515847950665811849817990211670298449777654300837493223516632726872403671754466369945526485194756264664278700440241313943787635185191241862692507307593616720712997912525556540525553126311459295849182178799878684167463641724632546598945257407954939865998808656562818608940112702659606769838451849512699776553424918027927415489459328300093405627589432551737877468127482063690802611637286750606283793596722472353350754365057853068087804560550956099075552944367360381704048434598770369998654539330782118626012270626916664905122057328559772139013616580853113887806996437234855445174931735396030724239955915735473468215988114123567907400713848151220148156614336539250782316867854725422439197045466205064742096081162555073788048552775965317269848170442139605944921150052804411684866472431474956462907941372502577187476455773239252281751694970745307979935035082801628697595281834659174710812773986078364701739450474255395889118340578521193383132804749902929735678376234561378420920748792052028795844608684403270894526782445911665427575512683358762387449977829402365326275719543192402614703212310998344330323324252924781305874579319274638512084832799850273098686634057797009369823092685496823455351686521327806389964383800310636565231452242234515439364128033381984635904487627222204479018231886339185035435387325958486274418790487297220257806668264960282791538035896172231958053460156162060230237051835004573315993509015531555215346120501484723672202466029794172309622870998197406875471908598485476850230693967948813686689337936939980092319189354319730385621096929815727648004101637750931750342554414578999558957368328471432565709222147815752131381163978760639265303303106535145126994320223509266029787822356031490879733796636138213738602356632854565695064372963533014723798420144827282132732770001607151174889195918042181497121509242023451228099987617805264557471405587685070162432097980892655262032310902094601810084213002202132646639993294949712226276905359697249431253525366840089350851621545145632466078487378366822224412292851468130168692827080804709130025930563204752350571525628844661100894780189384691396474601392069754444752647420863681640909969974610932489508525445200377853384146474971550935228458866956338531212337835995825047452106917136106233120836270271791762403920397863804510864693720864748680397232363946503766707293045497540817897146617487289451618571359815967949599724220279839026101908612452344698396608345161942686713049578757391209361549064773261075400915238850412629075446724387494936281002919521893382052006838401899695536720346983114492877731191283631444428374388930652887599221009113596314010256615877288141809775749320995288282813505764418571710652590399353610551499305112005564725070834815602644374371684503868967726435142155039433135084436293776572712389374181131462158794496139167609470127195453669023751878319675838525828632179846997918993315185209858106492862060261630121915029044088206144795657788853587691806397376270263220848756519015386077537396418576747365447513082571531951961117007054497157219585008532465379185660092427688194218209139935889777774387930651990181198467891750004205688919604090962444589238005466800338732139187294357698619054515659691623632768067546371388297038644127782177162708103310749807678697651644266695152367840883351531120184926921820455427586902213145177636945742468211476142724019677896675177453942342268830902244728323140672831612743126932216046857573245424436342196558302302367689196767520031889407217267199074404727838586199014073362375535649462152517287485139924324043974699710518512051509861742712173181067681620905918053672849558321372058645589593162663838261179748925127205040479534178358972423665316597321578619208771987560485341845623910466894476697613990215746056659155983212511477364553686108002058857026305026168227205536771162397496579429093487661826300505103014832196272415335359922387386667789149607777169698555673751230899425281775983992355541310220862843922289711055603341795351633057133618817943735663230288183568690673347062726578447936113255315477428822989174397841132917685783398379958364847484192301926326896782045956168345767750292361008477479889436884252404182393106444033546257713194274765250905059411945717942415381575690242105713683793972496767249129312621850965380404449904198843139040991758269427788547924733388717528984649533365488784833606869996162522510616096897701255211963875137595194506357049156364324088847974388240050170503792329844257004684389640588826024381989855176791109558267935357889545452168483861562303334614594250160779984897445819792152376833804838968678237929880967468979727582082185173577465070771194192788824252961216485626134350431552061283970244838302742037762909452229312144842093395053975014088770510887933399516778887882309273279439599913983706512765020376952831176191137003916163533780703610678733733703153164419822198507402232814499299591960623715215188018756765539524535972939957694666640356131990572315104984711536076937742138744330157346388775809495116519378729927540824486281285452358093037205990812988858039070964192013058715008287643465505482352381788580174784697758078284714547788980816413688017586023689215735676870318433922563904242031401314107598778783221998088084175347744478886657759254728781016274279681148942717989685725641715904687034216256183033784137739331547794245987430698583201511933988152692697118358522571335806223691248942669205334727078748334084267735670353763415493879494104771092204308110164151947084586703259166278348494699853314528395923247692960603092552173110714208623959233260183210908016947293727124968728125468357296142772240541849296094830219575710147940581788689756977322624233082539832377188520566329141791741840903478984106218439983878108010431921441127209923088643061172427919253430193766434378593754356227636228899190265609360906084546654521254741358985920462045123641685192195111888028100845425122914673921800101112006616609982473565782098425181912511870005753795393266876006877730090959255798256953602599503717838540592012431569458216280475186593240798361982536524889705645319582084895124130332607304820650990918997015102581150905632603676822802201069085707816656530013699137250873015378528918220304228884174489876738577487132625234636308296964244211165967041842810209296268355677158184274174301045560243735619432876403552673005064851605086803734638113687066917117470739037425677754321597032483940754666456132975357118717329642049689892197754128620745697975440460124392555674003476697931232480270329932788462730959489219167859021792963980925246038460421173588290400689320590658383583088747926298452015071262805940878659047271755069172268819995618117065390471058377956947101283923911776562182510838261228270542097222191057313101372304246472178794166272061489105161107932593807074978313589487435446942445944812696160133462988189154284074211929954093280111656862818040740415075699027229061997108505481986501804854876363560862737097151739949079084021136473948318731347466600152411183232796730926117607114759538249208331722254757572511391509672583120065454304285314118914605076349273513150141798151604871005372752796510918902693243616962011503477176991360077854355355805562264496124988019843211277945088944875242805061342767143089980107370299808580738944252180765539696714389315134029437384838987399954268931963687876486850477362638679446474006851335751181086854971889957913893380857405074488496095122250988279950207988695195498190292655835727743229577433763679052010691508287440807075926114037056535803139405093643352001673170652757074862106780594640740565960166218260419603369002052925476008043488525984891228574014493794339836932359952902624749312515593474282059080583333870717567447762743896954407937248606810644974715751930232120351744278091976774694893111588320611391875694085671646913379580278116006107481066677461807627206451971540110742663037286106650913082268509467764048946859940888452013076726960112518144659533682679703999482973543688304196483209530250618140237135026523082857674793672482508265663930134721850203810064448014706391336705181805851861982133087048026615755094228868720400160381662473727624789134558909400938725171541483567864250730792478966239363503596209217465237548850965572937310644706180313340285717765214618842841279986229022015673980672268474014233791767593549310586821963356948911817817577713929647408204949901824399158156434625526171973165736920293074874834492674594076930881472025450766291500114020873243717422446434947611032095912557973052858430280393196786107208976001791341936885897152560749936839225035045976901146307370442468276772668824524839723762810848207641853931565295433045019852980280660040688872245678803327336629910929348761283911065513927902482777359024202199761609056183574479702192367010227882745165098370309723116733919023559603710274343952710493404426290924955247450284490705774992829145074763572372792988605063475722555361650826083379025671209252652040917985662040267436875645039324398987197658433190580356998380250722752191069171465143671221536506427937972599552286411427380621618519719027901400180015839396703630809549480481723594001941121557455203153293130309500491319463236782412078696133150449121668772519126527219494880029754045202023003263549543420646467310131293448671681296337030797739676168850247472881206464963309549066171423230638198302450873623686314705102862766994930426400849675145135193921600823652614594394053657337166583295432610073523445200775348380979476532021113681304063108987001480088517880548842267441411437181522590757733488363939406681000919527570506612431179242165858864359637273468900133143141969190825703251125564679213406199645252643003926998919805142570796702390093514264564052133004384970885162668193292658615123674850345737378752982008394757617126926367978595562745256967591013236052320601571421907936370601299209703786926895294032250087678898977075024313582062591618221508326542662434329404594139167575311034381829433590101427298942811462437966149801920610037205237632787023894007583830790640346958268397958853415361655114501623659741397715936396568487029117051076964340763485060921099970929816535884364088914672814625688569277607816951348530701496935510780822268138244104574298486066095241211413221921814566863668143773834007700506285012461406452553801342871350468627953791724120447215669354573303873183409017475984097755039986448443687461686043351011567741359874255037880277949184938902760261932434127074232279751338135860973733355260199604864514488890779842153755367534249346705176477012854359169648279384456416381729274960099092992864681065796124598313773277799766544720412845247697432966738386397629401156274089197430122671804004798189616115228888014819143919640402771961481028038590891658915826306658733244751621881156281825546805058700044029876125562977872428936125717328201751615783068414289890855950666801995475314573237464374986194349221513949378367070003376656117117753141876409822653777912735551690868887699853405443211334473596531127120255148776632714857393142584552484435172059995673581951657000873524450146000585837412808345659828844062149346611928745236897795710668007425873047780236287764517878538956807336076513485637383509737320846844771241215097705669339621469123131746470126800497619989974562382341143244911453553630139156221401785740110725681172892525015892292380095176465045400275812696385360704048886477764431173474990688487557001900884256620986157204843388295534327122918577041825354999391614169652072283508704590702494022512460701485181811631605288008716474743370389854643966416422359729293317298102728816714941261403309153388991050068248783213325535029612622966667153460190663787226707365134639526962768006138082640322388350790815617564091516081809519382295839747684401293018595861394676012735759820895254510501235442232019212749229036135195960051510198855676108360499241458824579457727314821001085249726717580671974240422359984880590968237167994864979520789112282241293310172745877070786181465297033127294836707302895033328713765596788579847350435040243124024194607075870240888138185204753255093956894275586551121897591279767246894160894144339032357521660619565266223077191523235137005106472933689108964285037727205428502534047179161783278424076019821234987769175749755931871080036556646640802229525432227199378306141313214474284265055855534876873114752002888301345345252232028543147019583861160721304205844847968009467827063697050353340428381676463575310587859213224351422101974048140634555668562103381774877132880692485569720035882254759502899583157591259660615437604497057864558024868527124055958195299517923894993820687433302024040108389374517700095273013650598962345572946097870971701208774240268252363288122723062173324918203047887358764053060272083745808906602155440987124156120045540533476792696520244647447804217958986014155763976424771780403415879970377601806567119875962282871383183147693973650952988009905113854406761782446821435327476778796326372834325177323978615148054428756782950569113256035185796231144089213523845337189160034637444611434948976627589219943521206793530952992026592999770275328247842933146188347761066054593275337616827255192336737990274168016373633218679600683418787857731174308681175490514290103971987778978536914646311198601090905351739518821542101289062625303308257763421653409817186131547371941359985936272496734166038095089558857368436487076804608713491128311723837329417162810423031783534081961870834741537323066211671977290890581845075598892397343427209275584664115075557610833682897828290955510510859503757714754128710469175046522455369999478414836123087247603138023405626336308671110087695947431351284619387813864021221473897558652276938797384102268171670180683571090765716458080564059842464900313321165661464292009767827318411758623570697836558753682434203305197657838103273415117683444064732713526935374678257939472346673228993914282674695566096387546773250758616562273782225531855780963982004413769128481345055155760052132481335260874399498287103794269849856919834568180224279193962175816607221732599400064514792401058659381616337843330408840368945667475154260593539788381999230991480256106253607627893754461394633483205742009010572131673191274332679855482901156194294895019210608667742735418797535436939721759259258218289000430203483822853042844005616342979895527729867134581143099488468494617449204686927181145253776845166679160185184029316291794036285398196310071684975548906501945359129806659239461753119127970275481586694883342504807332398322024558256283382863155689193570392498196718635925263378450596940316757185922199013733653667811558922005548303971322367914275091988172402744413667470473548298168096716560765761125003173864129570040876307634855837969763651628913146043194116260640175800878766894827846031674922498404918856570697626514549262604178629051686072009549434871078897732791011535942321547463280045803355145447610212963609282198647116942804158973723133077729888466438409285623044751909800990343689302452097830433840800659333805757527047733142932403983578645854145441039811865975076857516444726327966193556040989414691810445919327776153888919332052127022254173825775114745863622892004436133817864760279024386586509883817340660619564478563140742193751835675256888920665617537981500848118863821889804720042343429664548434400380388939939437205929859910447077021020297131238808587605088272363581458861792175855699458557698861038076914988697135999732807701491055348659971397442182692005672984118103805929821121359802036605870948689936404506057887988980560822490373911604682877616305611276694380114824149196019679958303366489457906784072442571419081469908290445483168196942608889111366355824393850968548654427556383154104043776836422243119363469483461975063455278479363792045628403576128687771196540736774951129801789266728663424587910865254417646654425629222559709787451114807216861054702312318477388732906463036565001959849345989026390814846190904465454631060358201053430468169872512591901000537522812017145929900059961022279326271366073733569386148560116120972476993040750686253892882736393002448316350777821676159692381958024903911308049952764583748668454714348854486271393597418089286433077975461134767090234370815386671917511029730935356618487614934026603615665654906882708521821901774940707434035206977028597171514629548887543529342410526784005505465831957708066030379319999419242611421567702598084319897187298511837313141538079484185300907753908980715664982333049396237671549884300692420297530046276972208934871262862729732688458188611758715570780561570319096054161512808666327139515326490512346432996863203635351318659329032361880803147079032266907354635733317500788329479383874956044477916514403307735511047914819310605740822533543820897407622817894473536246610187468327742509065369322607560055687240681548265721155324040833764120215793856660008369100921233839829949036708098297423957075453461184496029999030385879566644645800708039396783455640543367807100904006327284388077643257794694441485281616588459681397616542809928035043415917074534086987474112283163221835866886425763527371345434367455367670419181867801085506522277156812732942163235688805519635257181809895122622104088355643217423719931571049342687193360467904152234207737827109877537349045631869451672579300057034873857911674054376972703138461184768630689784246025883754533158056364925969199882499568300568263659675211373286734641344534738973154385855830675284769689763190062169577930566075902647347878980067238411105304976495910361660042579555991469227296162419707390948333464341721154543697593746898932448109228163507287285118537035154446004631689302421453519956624561507654834615580557180822021921723571891476792355095503941380839695559189445695774325590054165116389341583510717776302746022199213827831930517222791062506222744485865637654997313667436696540763769652398698086391621903277810284975257405669769371519830852345837501812099809774138591350030967239656722500820189010492585603291920022926377181194282526397411368277518568170633495422983916654038103991792991586521727242972040612889434219157816464791385999355789974545788450095584467360825241237564094817849746363236936815535338724780057068595078986051033358193647182612837874405006225982147465235761586063812571713175377645344908941767797314305868586348286448939796574786037835734745086278278527081450990094149448439389842983669037084415422580281226028735866690005857773927256893977019963574867654492908023034325824382491296358479057817930249221481872983159567186803916023774836925124259835943311043266016995741290192359676166428516012509606795592737865829052314243690584369304042704351028196960554899026486647117352458241416066676003687164638614649078101172332967354723100582382950319901311520240485981711226103799281536122909265264648052639536339169364109167631917641253083465780700950320807665323679783909989911899894112683122582680114330412030574081670334551580750493287689456523033831174088399677669001118094343053918385165765884212803080493763449311875609725477252685090807357765537307730002655187865342170686944608850011279919491755626688460710667388137871214591720732407206433980336085559699588014692003282484095457794237818575101958862405686292905313328097949541258143210579268049819456226281190106671791174591725899723095131035599906134220568773580758025205134627550340248034248149593967066894907562861403898191316936637130533202836420237215299015555774132312940036012058220901324889716259100496660559866019131091110664829731065580649855792409391842028661068562352727439815088237840308273945293469424021349975364135053859571632478351235897629275169511209775144171935070340471182342585459829451977970692736677220771339872877837626762956314288719200461624994767990956382062634047682379504380381534757562834649319052596054590890813398984316115696986899001049481600922644958775135453988859005770989991974891023494207620898628098936516661086867681996271771684971512026842685538026118413258168819756969703075104521550258944860655636875187235252577169367792711642720049538939892149669129430635038234879311840502069450216792653920623981948691051785742133650518892315977646184341559744486558723986658193136914938439111201092452839187442419263076693743692745098993766542464809413067135393416182074978362199116061726898286461763936769619345656039010891237359962219930649281901904991515846325756082317026335779102358731795700196927667792577052103877726096957650070213577925611425828826439403090832110753115684392757550018597432822330911383255495347003445453317375902547382217076087612878826103871400271932210725068129460573806387882551574285321416619080200563334439016563014142299358040272219567739110380755905437743200697960138385587166081026267207323409093693052109671187779841126058402294526789770894642475978597119475635969249470042366123092915413754545582045731517799912727666142695167676859808459713585603258519336008978387053116160605623368261091508894757982939777377440284454638003235441750707536948206819310819535495000038818179193942357574079556563388746866509798308183299008919104983040095107095627605379808902659071965902524705366759335569720170638258708715232350343046307505105248433390979632413126928382879499287735968491971177910400294333116601041338150613793666713085463177407572551840517255240545609075571103128042931728226830836600243299693574781469020745437269500418946395710395769676537232228138942635840136187591560485530436523244852353000549628829698543525679617690649175627108684152597441876006475901182658126216276622962121155733715178809338533276178511188696414602819961372112393942655451412598705087628351040146245710653878575209601984164684638038814753089276030381229242928976686095289296040699654342857496670770743150407049920981674040937212001784172471616750025481135068584678777151825926097752951985627734638154330644325479660518112012194787059938387501236405012156287695451937251517074727078380884970736438692527829710261790722954582440425574084495075637944535662996093981883418928377272511856577641001552628480371315257978101675097839621138609682654190748521701945235216383621146277001286318452100110412102289821367885259635956121215763837216056690980541237676442070068572305532835149464534185202267729181335794446997282519656486884573588997807425373601586955586388915969557034242670938229748920565086675905728382265989783507626748393598464716374769673742968908385530289509492811568297728295543672517848861814670482056372275653311081203315886746470572423855626271930839122428854908142084206734112493551222678015429224840744180729681758685535916170002154525444151028502535031483726286006552626576995131586519637314419682587745278001747778046695222986305718258903710900354694730618452209246378915188500241714847926596060183606570447407173767461870851140277112111630723120765105237011950092442892385706130069855148594053302754128644684092031147690851088602306956202221254212154541459397619006103157285194903153838033692776191018109982187590596291472580318660470214633150707856602959078078927295872896464019701531525463758415773663915736512482798820283129324599331784036147697237854214045038292321485707872741679306701210693677942262400203210888623621106989992919621969946026319498801413270219801602299377578860777962738264409239819904778476973353640815478515313343143033999126675201706314420011657587589295376166980122734533158069347540728208027340697555140163242698151109015601494925868516988078526186564015606778013750438251463956335204800744272197230635255633345905363955448696234143940723546282230955039758396186929864512044726325393111325885016851206063486527894109835321632834816974405913805861622385957847172014476893723257727464082887852752751833517688274961065070527454418222056892468753929450114923839360318314007750499117583723668011190157242568193773633022513198987161425230563618008210254636101997935860814425636616759444688718504819845796046763885076714275436887145134297278643302945771997228925915103621168962844635930580098964079300606429027558581287227411390556634921344803215497836244741230248735274437068929631874128125358739419366168415099097838062213313458434357079580324716944933090846728977441951345788105952710982984805002352205856558373890697935491307725113875718290741360361127728525965306000764921815228136425638790169540731292107831744167814772771386225853014480678328291724649610450580396485601145975978489552660407802016117392510234940779325562685341302265447981624308752094076961720091180860238023924600626483649660978801241532237430026418004924670071864487686450665899201974814496407829775863821170039449221497378465187564755652742835735718729088119180513327237920306289977266908593871517293448508736667689108073575749489443430381693654200369354732464295774908268935082196995811317886294344961959150702306203176907905074961685080222970204539209154495518746533128526515091740605287360047823998360005818287299885535590711824445653477132687610287135321560269309207809328886478974080969972639450126649709787127071066139650622103115403272455066117682870966062728777271223820141111143390651795494362998563624990098119086607705425497802339658524969713255233922245689818865044371545630289521300659524744554115717244808727058920918705923075126964494380853597337920439364064136804712260485228824581013315066260055457021370297264792327716509795865207600936966489303774773315100161761757489126985182408843852860135132787899324151518692315389620088949329453125226369348176344062999101837574016944344365133324402568320999873165568967880416790482676684563028330249936144797908298823601258383205876221915062632804675093058029282382585662392504511334570478406364996814115001840902595131378725156550259247680300710789158705454940398590491824609628163100148802359053726718848327472277770478434311894595196008206623852556149758089822889069695542872990795778774581421059206010160115935718757612928735356665908475798672216714491582462285524031925740510691658995263006427562390278487348121744438354453465239764086882412947368173110885464253672573247431221154187478036958346094281936918967101696502167522356373357513954862518078529870192786006001169738977951870466249777864272306548591789814434329704231612832088315275194412107793821994541292006425518393508931675987816091079475874425162696134330343653605039247395095567825637099703820514245764487043817927700873923615625081742495693541630035143469519664672759454268848912736118843721678391886912945142238664479249206964949154264754224985484193222489529542982708602293231396343645101280581718396831907315554377627326625944394642648990856985783776662131796935641650012045198582714619606565219687203586638936599514001196295913941613996471131472020195637444624557843798991534606135038564705040262411920670217176538185760425124027773834287594632851710108773368053625150245087298845161981019400617864435080240768590561101272629308068323514480180593053613782291925109167831262735709019991584342604269968659296191690022902808407234826855410201322053571229356376331138060168488859449820370724951071280208948871678087897359837074131928816916496965161183193258602403479329332815031096662419485864190893604748804650823918820417762512810449431708602497721133829932745617849529660731428249753029696245286023599678110667318892243014805786602552150366823217503631658888802348472093457082594600722597258851935958179109371750274961534433301464983803008736381705373486560286382383050185203105735827582441254229333056854591967077667687198703850959903154459137519951899472315970890146685894297407403999193542726697562987108217552522856649770360892590818438627427538545948902103837826754247256811852485484099229838666038598546598190558039489386715472731684229623999322667879424800121270097469845925064985644005828579510434330224574576734051116538913556086880304872798894552114562124149832323547877014929974032340235553599333093985397925707672724487220066122931051887464326467589607217007483842470348030448740360099123103692594046272912011792807972577347202850850109507082880773012502838575421187119063318201975846993592922746717023000769941854841683584744012930953843056521588750700267322046725862956471090049779888441836194688918107856967409153108548133507102812981853150593246726068454203079806381848357462850530894702592135371477556048991201750390162058920366203130126819152343047679475087427924099289658685735865276693192013030735407890770065716917805013627868576368752517737176449164827761782758677980055759152924566192460441329330813888854226956454930534168926111722336066432250668095719105955134283244769436561941338457740492250707248350152323743367624704639540350837250191631219501935935231312498670877591621896350904154399505289488495848163765407939680442665014945272538486554464522967033818034831995877185185106781890619569673831616428311588229945037960368960518376651063333309995300536848180582244985195367194879795569014601206561374110064218413404690834204022744712331680388441524077728618675901170355853132837138462788749927263677896520091080754828909808713531492109246195938679532480931267658293715615689111046228478784420162343364799819187165209346638465978321013463286457574396226197794473118987453980833127421380669693402359755551748224489846388265001997529988487336533976251800793068199812960424836014297777783219203924683765958175052446022208221353268361569298986727526345062877643352060476648743991873369442091535379059890438616702174135266049370777680610038293228874807926398993974228820048481145313703013232624701470844718382811503578783349573735188983498516997628103537992830100269943438928644746185671712673228685344665524840481131710247559684108213768540279696109021914994402678797205974549998821153911998877037148273458875747867406217741037246563681132011996698903892323767650550213306773789591016242969147697372086325587135642510722818753828588066204441021746618979456351110655796649225392095104678457950035246320442846030308710279646460137044497082031329131321434186809872584001285471051191410495498739306142334803276478599653110316351072442873734609072019385459126132853943191858953837924202951114429328038085122072276660633796720940476772796334004208796096467311762298060500435314393515728480333514624415843511258618197146773817634072287848914535989422671408631435739199140370149542930228431004490366743753787605539203327803225903745890510247284153083122375017424989768651322759689803809687856419890898892592969129280765456453474096624817134146328730502013391732457955536040657936909426203555628859061791066837091942396212523770862387621669627352797159836930205469160388847274610542591005859206095356445463746249168491351701390448023418458061178741526797210051289439989657025976197465987774118108016200212810687504466467505477223259884618926552246194493872693797522329423183411271162642145358213731492377751985310191247277502056880544489843303120789706062959582412357483722738602297148009687814149169728121377132130496865492907285248791997414328535734957358942755750811155425099999942533341683816873594192491515868915896350028646716231055874357625764429861323505177924445375433979241827732957099683639960813737423221064798741532312601881020234332152342556498373949923665435758530910428033891331559001280001333122880170904289930435376376864330086889047177019735113210792004940723930872741480588232636936553114321692707809135012485918088012040225726201684683680419006744486590129846738389004247869929886715915997658729280925609464596011219549506139818047294147941971631247763170591817443001825893165863366567593396900743997095493091563711124192999932004753432794544514597933434631024172431993419408623009019027131475556122578886657922500111226651211418749244983894807396995453669655053775027041194177389344335339082182423714855575967690985495220295513788535388654328964631806765482708587168277358349680296664099851111017742671470415478508088373775286440747595303603158877343947540387896256233487185985079088034868468679232935386192364328181919742617226776595779366857088216883837725560779391021280825253763364989210493304982522379938412612417220037607053962347059783727086534515652945200508366230949380983835380619423692839634089750860946188951200273651865456844598772963828956280868171123248602459131040468444371759717001618670705556292398150958725976564304232920419213824869414970353504172172074829058106472932255345213622531022993525781165739552804407959420641106864124487765473167613910503232482877299434234514016643148496212238506175391832880710474112061775504634823367880652445790138171183066069919964132931164781867799310382259370513050184953629738572816305648471482711375775247521735905042002957179778193268479048642605695602729200645006158686206842069099628775444672987708283795926790258008521745812318273674883439764077999270236058215452466245732149566483810344913526689500607277677875928107658733309466819806366720323539529388415944907601803283557617079322909771454906733090027617655281871856847686883928305489954058973819936958702163038890265821512547752241752248672548209643073998798920138140766849797956097791765803868216812977090528511210452362538496822366155495565607701041057679567721501593835674902819716568563678134272391070861607427269061276691421532189839020966090055957110280302009900924959957256871755827324765836757279339241251586746825850709857722257404278724522177413311054727514509540670259536030009595316058725806746251060804848397069181697568764757632981598482091292154739425062936124411775786750677603242723064979737980154733444710864289412714014995956735220875634723001711982011961254987224592688609076164908014490398716605610811463614892735385884583128788547987641112053623736181093865560887725713886660080827449911309156681717349755080136346129237067513883383101664082256950526784497237804548350429335093641798459059008517807791525528737864081502113612324857122251429632343623148731281530717130213339274061926015566529119073144681722191615789683734815911908065764175093824916599256307461687977000333406573595820939446782349176341194137381737390125587329075789154769804758667881608248392480856561527478072201736946518718728827874013997002515227519164574066874547123810323698090487816975405005436007840447921273116250605183487631899847845429715342269272976546000231131474457420632014899290184508492816435254614431801000345212718948035663473167472015136302243448109210782649234576117552667312420792311151368728827899319554805838165772071600745662295720387903837126918689423783034875354983039245641405569919179538633146149108623419394786403788698361493515234404512954784227733535524547246345833135561307541047154539958517036324872313059802667287220823154968578071461247685522257894300384925297248592144283812431585307937944390253786435722333377337449119075905526592260215350042877862771791030409629580004197981406641507901352523098809256823076046291142922902323428376152093086242086848752400255067875350742061441295214520427955309967477573946181464510807322483377786605181293635030649494122970826569909360315474006502486171524004822213569972984002903175766563516389925173325984358092679709293340030386258728251682154307766611248278531178636801312890490612521480560548378220695849095652757838694308958752644240216210455278167796258284029237577480627300943350887017691589831766470963911103130929603385650305064189271331499748841816909491058593129765192388621295918414008264913366108001348509362539737408018235093694116063061529745842700492963862734248314055628326383344697814432173892032356520536322226444299848641549312161226637213150808404691290949614620629251177764813496801381973987371545440318926618086593947001676673460750158939570848804769032844127976523862214682507537801271862914323369614652208348700983782745592251414793834217165413409087698988132565254576828897890251036428616105952212168732171199044541470816365370122842578862561744883658313249355874928792508109440053692366185051238259059017719242036334966893896499470601356848431854951880944770184570142580114247222133714008434866026778555713538001514008372495124593758015615053368350611427751941938710971592584664657174948711626703991031247224400349066394902739386885055505649152293902442595701727752490685337134107677559117968289497314598410583449204547681765702499923653271409944002712332230871514320275546429635160136987093888518887977289674045002590795402029219089221602430140105958783569287410372861798991908943158127477067739580601423091072620408615917661066800771906663021192580404842325693290076356688108035475976750688213838128266474991083553077976129438501896233967876023286893829012414973984005254164913897443871829531528592666176020911676776453673971918602783645728278797566861349847410293344490794112574316162658927875320429610045761042566790810344543457284258312844652061732807957724160023407671319001088466216647178890918983582322870480573594664029855211328686894364813827776853684682058039229926555668226842454690945537578114654636467691909067050512828849769822934298571747303735074665554676345806488566495277699994922752629328735621150270237919329035333639876158718361643485077819566597153551959111460542190308473371281830607519503726340702487570285237611778706521036938067850291564467773058492064032546112223175564609795490486414840601452861653410406107782082251106967482638305797339522629864520868011810387011495409518793415093412634234241938989713111070251835890583122928429285340923732377141709729858252610268552985135541283540129414976321338448769024560611466602910286646763623305169452937491694657912574915033493458149624457404882998832723820009809883931257897072259719540592914309108833144957411292522829884396565755196083384291253714317290559155191560602135621539628910188443913290141618084851425636812220779525294654465891465966959598357145425407820327441523668170838899287731630633266745951996174278957702344743329337155217496176957454248033795640078970424273569306595689164850577764090627905594845197505342904512759563353759396253809411514189701002168777063247318732921496877326308744125572616987324070787763585488830848077296963480147774842706668594614503604913054660896034470277730591976641099178046298326455064358084172786463412595222097502056517493756783755498537114375189978331281841171534078217972057075362301143153351418814774974159632825831831013110284445122743644191941211949032301043222363726074611806798048444482599978064986878192226641091933813131930296268704363722249876224600555465137685703409233178240905195277784891036617632728164100703766433233594141938365293109696356959732446710088365051480124052044005280495524504662916400016519557690680567552801180835315399085481481671840423748880630466266917605547757244033635002495508174932383815295717062432787381268582292706652301236991805664817856617637049446708886374551989647009144092909847151455231048982568988266114656086094860803142742716979533466436548877060390272227801285130383090150014440610029606219601255683390907880226285235039934470456073394123642833889053605707199721667602938538940719214927254997988327140533265664518340919264636589825305378579912651479933423865627934898484625353445735534441032441654408353154647811046916016093175519400453492415405146706077449362119772938999185759876595400625379548448761396096411956870034678459004453842605488057810150004700407766117658150390105717794657049692391993608591301176878121987973874568612892723320520406330138122587121757542941869483201330597862149336159863983601771480648688346052015169575675126129253520698675034782211719736683618191202718744631127685723800559194150654023191473827345263150623950671923436206594840519574952987027377079874575336269499773417240982215964853489096974479269376642160595061065766902114995603734473539415039395224885261723805864723533849362463788287613911130012556031680222277170612845427266075893711372730865291841700347038287587683221216640237936539436325207218529626753233984609196684225024976535215702363007511622919083086209569660679320491537894530910946042484275710058401961233171243640137907872577918642716367346649842313413248365612809203222075406380419829624949394857631719980514463785352703134314249018723572815492976719250384453991739316865803703758455114416161660139809841491415989920079743710944428672786529999866344887365951677627419905818036275322151600845461520077486990557564643460398367393041248977360018950298379106576813411899748026314730123371683081166059490980002368910685913061646496176104811651791441709514493239751400316404628433729663756565277982997453750116149584506102387809933518450835196253200057073379071750920577581043895329806569384898540634662900116480524617539201356656486853860201838018869317352810799830730281443497679289493771801146642844119926623806454829150391671788315184435467326987516757976818942472288165621619892148942630422484213966925486852167030015425223770100963005713110952900973902978354650433899892041244921562483778800129440452178466947985048770140810384876642182691306895712324108514939752557845303366995303782348106676708777398041516173811098820721876468318000519447802768057539652663694079012876539250779541867276881414374905102528295873483391587077516334249198948532691747454828218431064456443436272904931488309297421687624074912984861085711804797214297689292117918173749740960256093462903447750022616002363285080266207344391155481855895550836028643342733764645294938518960147905819732908795649291103829441223740149729026040334897100410349545418200205429332578985138807170630056259844613034525939677111506296766624817419898040334133025287016123493900614921933792193714042360718751444977608629258763635451498712677594884665900901436958884164303930933017749993935831470024796025838759486821435190334899812254883772374260751882765987648998590890423800941930196598134494992123350403668243327591897090140001669722510632929480903464932289133280363244483447413226552338607891717432443718429492940762073510073954650642775871089807718975171723379767561710767065475159899640975464644992606938567709331922793294226762724416186396251725059485642544876090310107408986635770095034236729897678984124204455946433016090292854443084254171310755656460225356596336120775503524703418089519595198794288976536395650338677122519537126978309578166717262825776521033514962069309560075808594244993127893350466143901424612656058179912058017392435418237662768816461412518898460798686902911283772146729178543673941638620621061317495354797141753991133316680146641711227379480589271479137046954322143128608133703203314082449833729012475805628176498047167700987286882914421173366125759687855832587439616548144321066282881340648453700008748551667415216405357401814034470852977115398142999776794098789213718416133140878303147173686269164577958734632972116743773082826748730755035087634006243707659167544327991963809942167498355342333068728943585272188286171380077485398967844207197633607316328911026002539292505066502245895688495361684677955030115246356732136157535585397796423206560712936793257137684202571255600833709369591708010472511703537838868371255415811294089291807969439406430259129754268771786549348818088979396742649999060188577503708699038852327939129705506139059922681903467815377772970041877580309788762327565468357401104954446964409483154922843776433346868483046025861910322527902336333510964043104839049309970921739316313562091498459450701698536929215106618302620211587372135259978944542776771566717587259171275589913197857772023190139803925039986858498973945375981816862835584795542689830714280272824071175045949615660540302448084943430637707552544865066650506332715787739984033049492850376798679056586418318556361223786751998722723277273063525591572650720226554562651034673416010976642787324255641503981115039074050491502409788030648667004487714868243112274486923864728349393599892434491357283251234308465151582837991848778585826696336797484552181054437575801930517685477537882154749127853563867788505751903325795904889524489058635908130889481318065041016065058203948033117887859349995354851881328286070624829465489403708523278530680097694869522965048977434074297393242688386298568225653989335396037867058899663470924281220587990941646559332810851944751821985045898606041819818804756845148111769339947727283592828385420551335273531093529985689744808194840557473352555176187684935432704228813771617603860166946120754812803679605805651538437400517337333129902503125778629515584444518664074045009226694222912199275666286479127231137428730435202702427729294841182785516917676279561208887411558591096196109423454948614551296535294027829008119662254282958677325974185227908451264478325322555710759774016318527239163530346151120520669692656667199450634473653686711914169546500022098615972796320114535576968065505650708612703360284294074019515090307279485743595774420224258270742809722715460780058423657408375168930022455013671898832567210369878124653160646478211690966288799763470253461581353028278331515642733627611476466085249417461078142362548078708710473055441379456303349317902562815951146501512820437106294052599533552698199273698013525140164801050139493372360009934452495676871716128868283302719899308146819048862048808307527730618659964256250047125002216469544043179600648985844003737158333241049227397222559602652741362328705203207693244504512032845112831061864768908852841703702273474433651403207476687012435411918243371953707602361386810771472009045654097499056254190786859422861138768863396426063880787008051562856464441024890968411419635686484054323542045819958577985125902293049960538394863387104448247474334231275379783857948919830007537084368714866162604484344937629642856613731145451821510232795451371493132123945724294614921678952118252790562217843876355417601386299503948361178779391315370968166987179061394660106465799496104856618482880141294404222024780381146945286734546050562957028197886076173670517514372455419133367574572148148129755048505006945474980742240544926226781410241758845368099689051723762559663426302048407658684100874834935119070186094965806534548435337278605367641425104119147102539150442994965035035529373974024835528563487494393656746874177595504546429265559674871417164288436379291848060942042511243060647865755775703572771691355600563114391425141812968291755091215234812055932830522815852210269048815416115631684997242976646484048070601034954431924106145802659278765691742059083156338410001588504703392137815627582598519003786340902474705151823597410070885606076674558004542880054343308994003974855824003034473605865825016693438896634230930201022765803396206664111105734731636638435051988891213822330181906597338457157100756099549771969776893873796078300470013580727680243210693037906758758170594247473184243942557524773016718174816976513123886614870457935831530172423100890141492384681893746274345376129759521658994429295696720009071883297242357854778908121923805082824606047538634784664422291727628594456668853923714604765328184542444964764519909564776784825534836961309090825411505414229327160191969589656322778013381977449278687547599150249382413459184438819903962000674513795253517241186606807568089024753747548197856885244694490122018338039628830448677025813278771422510089155681304414432275535613115634581448484810344778681240876796476015243899945278405432254684428383224127871477173036657899148214377047496097733060342338007048401265500566692096046195560217194062290099142394903424687267661654330092242949241377517987457941571362721928797226934608114356602949032682093146388626933867810077880018548738148316303358640054192668373227433950931724178070692196027404439906677191060999988196021390893026913465979310070674550736555704096415030952362123228427260424283974596318310920215231539911276567479975439093065851950723799069196309151867393854050269709389352201037038412315782856692756855109826726358586498754940035816126506741697289115802798500200012050149530095135885861524229904550996838740416079499102586364901833081721198821058413892257589914274733523002261800535833140013870855179153282379807632953508860172222158848930451275111679763309512694339732415796073446199158943053896650610433863909564069174217987576523929798549904074741349247204403604255291726568441759632903014576398945665474465143500315830572721546080267745294117946190474778612942648014405976758553927476806596704995782852701308505104124670783825067476296880097455911069733552299830136239581189593273359074581453126612047258875576612056427347749958439847463179361582809602510207084999179782602061855568018206335924695227128913674102444898910938013240044083873798301594955332245724259080855246773536605061439824896093027183701453729599570603926392654439953633064033131995090009900599552974497328348468803375963569047176386098436321650000855970798655386510331006863947885123503450058710558873069322916654427100231027950211953744355783792975314391892920072601062964015566593067447305252434585012446104029021343710736485312750976439908684990237737298075644484004128928014460411388670773538939302038065813525910106891627046565008385730466736265709085210344471517993144058532930040734995405230691558672632588748957912401155776205374514880734111587384834612177172839612382991135168364385590252994321457926178266208784912759069010432966934752902376287307488624991124835225618737857873154307860452110827964587175022544931121265956719920669077120320032271199153889265992581298267205483349655135274269424492335326610777132521518449342365495147146700124060320918245806972061785695756218157217495149862668035516096841946975449493961338339868897037112556575825386561444499654401339508105773462267843921843792845883984388136658123887200658273780739459029364467914437384407285200756588999066654795593376654830125747791096039264548117268558376008887111718782710412657054354617255086872970077762001636618957288667174289989110996534608612048442254928013592520909493240734028837536718837374573493951188822836955948573782925577450832451853256687363581183176356583919682084896225248071606997805703672276062284493112965043225852729002195553285439820396197180087767478660554938089862920660494933498367160643633113255983162603443215702311225778238933064515576760489018741145308126149342976120018246552823510432033286843556567607217635434582489456141481101436344878546330375466764209561597064569336222701475059239704909749978545139919056022300537803669571160589020401116856776990406609856933136392459694749248099738635834195534095465529177845635038275765691512216617043205053049784103623328855787165648645504978710816262978226489072379754100327602858496488452368468173730487313420926428729133332864211507431035276390154925121845350438914644378459450052641133148824339384334654479460771141299244860550956499864135046938247803876706039229945533900973669143109899710069037078234215686355523093449182488825919127903046611593931953405290019800050308685120027438110457766298359041877220573174849729254944457957535536402250810630194582715710923939970432320405529613110770873459545412188428992554453598436008159648300086890850732150427044584714095459849713261698247251251234213819653488708889339914554468987517186331962025276660073862610624319848162613593670413070296908334588129463164751870275912014375649492873850144273789885600263946635801963307482898178240226906476028444399831566937832376591649486017062738946189859096503256778629475925982256836639719171674965712222418890384017142998999175535424093934154098463583071894658051710298721303800217978960083168066592270759740174796855496385730819474284142716430147083410460312829909400521822404115981642201512388771880894811684299814191068094610333715104615121715403828412710225364433343469765485373151416581217840008777803651891632569194513867835789497620608011670076470775224442646173436065318665893461016714460029263241805343484097558778531240604145165556210961236233369547579957880690755916853115201948803113949980374009396837155191075622942331976576782622532442404592290064202546951177774493104916674199926102797855192716281002618391923060892202526831778852618110454521440463299668433151422380090555111794985179343593037176576305369066704428877523069096559444627910243954416166188947594086546128037400978194527183994631021538245815584853938037653873086281456213182428225597104492029952506378100794845902291176590892510363232832696796450988371147102842426119338984441573093848285983555799125017629366942268839218195310763133765988967608913597717213178115134164799323792460335557880817217731867420028034825240387836594369426632803383548448123233832358570150451592965593079291521616664077595032708480533412909933683834080562286912175596575660565954939793791075075449086288760434527589261263823448882330661898795246363675131026931112266051657404056560262364752431253380022002271827140999033502350858580538084759793757085387857577402410009076461603332361339469631308475796011821128300161080759413563976179421091249615957537840617819302242719835686750687825562759342768620322164494609079193847179172232743615968594387324329001278366088798527721572175565760034478985132790721636430073335579133004055514234743702457320970753410167206673051983637148926033555372569990350776923937671291029041629868656574734083110716810640702977097641069534616427169978007980329423429908411741842610435836149697403756496276468794431432146769788585443568789625006592921510547149064191319362807660332700367503812798523318755441288528613476164763516642741915224418453676146700465730687700052267324938473447287384244393411341234347672177077038778081036076072811282690474067548562304865709775791785436446128756902202426066052677533152699698701872212986863712649652779478276629449760250104636783455759290495148451771510547508809401725500998735391292557749712868076463037976282629104558370123123420393144649658742168973673178867596514735778252617497950468802830469298149183309148284016339541830152948813190530439793888026811413812380390927687786427279603433321222586979798955075061027946750934753819947328783902888212156013467387661862106945469608500023162325004477411276078444520643213684666351802868169789666578370940640183737568568000519512854022309165566084668484881886329615376730029958058717876779182773892568383295480381799059458789001729939784034586969421971505910023034503376181714953504292382938435014006358021472554771827691338187559193755563809679739107139968279586535273908223259281624336967662447103156006349370658359023614040708631150338528829488982703981446388499291494042417436345108374493689295081490940901346617425615431952073183224076871436439887668764625010864377130471165666624184394367553276319555147751044937038243076794745352476285022935424840452297750221689276416337677761182075778587380253320530899296916984497542126395625564926585101031869489157270032860883691281870689187816962521344378711216604275076489097373866237642635564787082285780749366209602432704923019956279821780887480958091880592976760935646165926132192235879484171223113293531986881803662989153079144966209223845305457413714700938852146467027909949978327169795728060272199359030743334668854331704815903769613596157463764741640173467002983616199464834980771155503141981663755797919049377371997381319671493732420954556443959067875645069089541892040741039150480929331885815152469749325990919925944836030662222889705389766664933984707256466810166771292610798867408332889049461435905408906783690244360510127187824771131717214691014192468957139009115012723849096258897710212537388486203368993814320124283742460117765135498112993545666978797757113098413550031169141416628110339117066806039760156426408810483955781711459636707059846088994349211745522442235767192555512661631547727573439362671088590811930507345855025318768420695883599242942806173527655313638511422444520716176359173487302822197440690981896660174257204557756980753134601985531927535006319765486168830588518841295924420827482767768281919989800172417717677431294447855008887020975024588642157954991595396401693415962516638274388119829315830921504921361014860796513710681159086944279099462546708657239872916512587794305012703861148290713661371909800034181175100228629773290581230739170646904742282703544704010059231718086881637644476954316611476095015855802480682101743334429015932229484289215290334660954816255389321523015299873297949985503815063150224575171914733031217010126276740476438004089943638890110618339025302673332841098465248604647270495442203217933016345732036511444710216218872415560552089755570904835996656241122193570465445526677343485452963808157187517128429629097233855191249979788568492427211084805833460204197097792120147115885675536579089638923475746703755570309836917836735715498384292109874882557132044597976819411055429009388347148426321815650761078687010024006824349308482683868402109981270010370544549587682694297965262024112463781176100697484612327615496670240590611393283562008373860989986147723487453668523424329548687924888715477947673262026086659158246210121045689222372469642773322816299838016408975513712366250298072226898459582092515511606304637877256080770688906668872292155433147841709610104890722760932513435021081814983827096838879522937569760973508470272375924543554911575347456413029792101628868056324039534270785610832410878889155579351838189436918124170856512958075212869642681261343366840714213063409452835426666502767035573105418896534011216632432797001112436529013571026393450894091282409631263745621314503338741160214716221947831207387111930943327221022110355898339946914265871458098385438005006434706776476470600026851779494542654302148513769978412417980712243575178968493962502304018772487407280043592272010414911660713743928424635419701371822750180704314319479173154406867269395958898909144840045642342924409548836626120990856263965386270796341826728844077357836632699467382936736165151591670613596954913021552247408488914843868888625824816202298133392457179236476144414147097026338074452700631571198033181514941202040637895538314420862680872642772498517341426278783598512772793355895599149948800662988024114609360134732507504016632354141456502592736888986293453767979900354412914657795528258353350995399517941540753760725558917498937382261456180313512458757613054244081098996889283928296287890580009542332154544045952681593031137011173228224701634945727565931399984948115689953508443907028966283286173633318832644911270022088856684349839167041556254444165827754043574238726223981014283411080391972809900842245124594620253701950553365158336403955181654584177572486231981866907870328557947844038627711480437759353347457941913801125006985453187720804864636586498174717043691976991691960200803721749395563980265083876086526878897171046589630426422434978413941386163950909656821705398355383975201130866515632479280539212038520005843473457109538954813199011370871289947272946314821909803829841769674728204886957705928285756070135570414574283002520230822613756646683909015169387845096403972898787508407434296160872975111014169581152740879614488157515859333368723954135435143642773429583933500825231183553812309530475644795013725417002660811549621529043841833534354180735997252155437907393682961039512546549709346633297856851106826458654350668807470893131968030163060682284786822054797388097036517770186642261991209868748746125224537728756641270655218898626563207462611004935995033087058005841941484843872707036026771791529654211010310884141047258427835594875135665183486458670082525589249075622177113060943924749018952999619317885973127252387919883523697746754923446307847703321918442295933093323144105839582324805128274381940750555685650552233556592010831122722397151466831945080556447458412108126490326920047959351971656420145162135127308358376337407958772599735217019705016196731452823381078647678320416199061979125616902915242824089772523281217962345242655685956227717631111791704890771773886230525967851582524656268109273377256858302324334104727508933688707894692901712835456558370382068714859190630178448899149502487306597630444470410761536874189051982889345112474589200920456470429105306367731515470435766255653315822566330921058540413499641642576098456290004712362085166857129380942755217232822881621254165816563380059561497895293260212236968725034421128720900778579909311002459905458852716621190157306345058810797580617715042232518437033639600896179263124963944387052756917916706500200529186479893021421831127228622363916810962630967072826080939281573392982341991829286118701934683197261260935667845154361422397365219027091536350296257534302815859979175078053202108332403590087440982361669690779602780694641855035536473773028204216080576125907309859974497549795390086473175050698168760131816213809675356506334390189805928528182576825204872516217632201795157182838597474157862766215859744500247451170601691793003615167977238741783377804903400522056662451799508623208901141142679712475654649467588625471694065255549815317378624631220193364945883091053673975635816024149883793153624333345222473521170849381185030863312629428914617899729343143484401442199028342808049376117526909176587182829004761930505058814166941220411394470492560934339729427348640583379058852029143953134265835080725011229008131201382556339640886488071359805804040793005300677747650779062179694709930497397646639071690938818031503187313781993225863361500295106289605763370997441626289671394066128192061535205784259222029425671903097367767348390694993451896631362429238408121612582404498960351364851467369011533265104827424801661185966778108150840223706781522554394008285134524433578060850590994547132721021154757647980616053816901909601666242609877083496276900712210330605221117839324310394721469679495933186634591058509289391361209331280068865999190520543249790590244286674559183324111156431260844905714959958501175375371565927783450511071589366013794084178468843571478318730710664772717997479227849475958478755772476074636482830571264585992644624368133920276974831373333030679527635365336189990530975508953897309743126351371851734755612744989176469681951295532623285461114399850183385751923692377855282011105374350300764467176988010211545752839711516204744199283280030932631207960534915929930049305237730418838527387633815724499468254623340151401588245687543995008452058561901093866002110530202540792437747756772589255146683584387043311626181094893609593595611639915508565045778096259525770884648908795779849657126582301035863495915800292348961785049000028629351087377658847980874239021700272735955644037006624990985258850928483036952539224422824702161173132656116362679416596264254165448720023431643345651735293515390109538969585174269147321604430870428660376914451039700332787267215290398164234769753621593900801238152012732556413308187673794035530398093051399292779103127320765208744257084762688102560468908209127884107842125532115567062703604858505182711774643664006739482790617670974078446618327563229634358988700094897805655023875702120539463945128675492867838912893699217193858667827593035778389134519082596532991437238516542036874465281227740253788212725055382160541003621192764006765691518820655473088871335309994653292572719692317180663577200915472754867514051490108697682744563366062864419148787604820970892768253662857682142492312951750492879638912078112922096571756025865443298007793387169095446516148168154085280335078628694166277847935045564707203604037715981161950072928700837883182385927692952735994134178860106993605865694884317124647447908003942705247905856190032963901206376353314026735652580625469743341238491760702544348691666238875741848040786365893215260018414200984601167904337141082084435520153341497149531471611842151538678511508120037425514878701635686597177535074094568378610590461851202362497896840028955033515790334997433248747426489265596079408514784425016726321797303562085860705016328619525222685875876920004963448917467070185906045135481699929404575272799136774652391123891389733116538043164961437726234589226948087546358563292287057530158285739194375333400082527970122630817943486539517550049698940821706042159199807108338913063564671793030913815164013724699633390884780104175192254135987687371859969308255378326193311114692524954186400396936864949149593479648846187457270744576609237580971058342556361290219228385458164412948779600805301705166401068742154287242130387434974506148506078322626851816042242048641389806477063131693778535608083824400080637380692239826149964616824189491219277422504351074473794253324078444966241490807433258555016243109274512532116480874491665844718873994759111950553738475093669808979560492681534834422754132668371722015118680476752994248673616734030101675971371783829681976710335975383240493659872917551175952139919831585719832516342560218807448311500525519317178870212135557619980440920039136091574392511325857372722631708017009431372349710095186416813654802228894639449320652443506015758693837051994896291584233597436038531932119054868056567648768157415400058082867396040221619913718895793057194434133604172963277174121158579627894725961311699022793722137153632327189231229456412076917496900910710987588410705950911903862572180712670956338594235788265736471946324349830055889965463233255986070857485361168417626023907984953588617354524844403884205675726747326552775048407690569989844655113038610739839022319882613301839858948415615505032056778872398994493882081735851837108168412447998129344742110868511465711831200551133657039098319909749804795243438265124730277972608639902229074161216223079199692503870142798625807367992837857627005807523550512070440525107330395981505280321419810060968033868622885998973468670925180567926192704584501533126711533190846058471210775085798431834280804965406193122488478107163174889413149532971778192227052309954536289392339462188627813639468135341003143413633257704578452837620560328912855838555396791334110893977999763075751229805951059637235495950589484565674616996328770188420947631993723088951944492998383806852598733585298308374031661712178552102319824786846359959335878987580501073460462881842675562228320074497281056028365198369786288613209539494009800570145475345490543588632086565722169337497291365997569002994463143642664948273436689937578607929649820470280301992461417887791959317488370708478882897483839211167188799019212141788289460402066479338818986063357332898831570655684309835632935092692125539824153591682905214781019679819481639363555018281218682228151208139588226218480127518240827007864786461602436547748364074256713738259857215028219084018222267312683515945985881505863413664130779202619306789730343941902976078897702359188666186992530365913322506551235720232053202906025207255746981821793727491253330861817542225857268036199158328998962243359604826972150133292608888282292249716307336724872635915404145806082600045701710464976826583925348796634612176490103071348665506659039405355465938434601912427728993323550782898836206775451332275834174972343678351137312507990787945214826286887731727645829947496747511114364213931335826358989724516030217849052256908175046735565300920383883802011739953482858051081116157235504076056605577329460971836319941547979925850338658463788343486907014905354483107504596052924389793049197729881702759604174730030420477980288877712945209526119860982565231969485382886822696036356902121616704947696507673325827120734541041249756149933297951270447120643090412288584776241962085913214292913088659592729608530013636445269047215686539249658604755556018690306118590234781748618856167102011231661672800098284313254901056100372314499876923221585524638077984871593564547609828318673574380546809080779348787861945954011496440527017550387967951620090962936353311683371034397009124693915501867166179309750517783462082545735196353948990897336440865280417711173242132385182796568658410535210202680766462505603109656984051886670346090890726005325827049949125927351557736458948961879085339061978880009154193550560759874421952577462395706789143397796679680094531594503085413165094021865056593326860038794993635813526204084640787393081067427650514555060249762386080555006374445225472110866170302780363070957371060241664333956148205944268932556822874691535015445564426007530815533389873132792005981423925328105155108796397385628431203566936750047720102597289255162025612514793226388808922620437492109698644335227866412255321046785895039950594675562222615988156925776134167839436181542685793073357721988994111126520016846539349851920713202817196214846999903374969637108963173333536705167572859535802571566401949231996637190162828075422113094131914653438268816920031511804963105890177398500453750628046450554909622843141619022378892560852757732983362157602197220232548692780416224057890768990176384391433401811687021246373114761279947979570493084235649966689294443026926442264713135411236510993167434527834897035954004075648390196587500622611985448853249805276410378394693135643777514290321201783578448070419417984335481533459062897774373722738126754553450270258583685856001920808984235571864079750154949225891676434881499598308341537117560153836807117775394190496864548312238106815071794457935223766664964204382658980171410815721852231971497469003059179691177700376520256483422594591365480483590109034953082418687502355398459857278665976830687573954383480889571913790271724755621494958172231647338319472132218835358585414371884365107732625129555453577975322193072825610871336223305449922530208301968368739896732701869012871040524377736340659752664025134512773719006967904867784794666295783238093135488863827055584794114513880958002496944154539623942383764812061311459553687504602294426731997786615962151650393745388164990309565796040498388922183266530956648164550532783736317779634401898809374403458391801196508334247526551480132447358042860196162841658443500483262832993826808103814281815069531017791727365917005538234195397688048087862012780124354841188939323049826948619441891851562956532894224526715047271599303578660107954627971109467370966019601547540219945193813735591975571894775468778410858586247785706325283676268563242174652791342000221862276555309920100661049366765176429432544860487176802907562247816675623733253745163679853181043116962366660990768036108230783802317164768760588960320911146292708233037459172199226465845479454233911426574781772647130996743964198711267221693880554949823969972693131489808915082674877672581752796078444983877951041394331939691868503304528764946821060343086085142335244047115580037005275987686146869215723805159467697156451640030374275087120611241323676493553031094936741588844576192099102472867194571110760238351048358771839478719718553231304831481324667140978314090483119018511682542944449453470278534918033173751607728598001594805059346347476319317206358799744242443576128171875508479563759076796481767921539292410603199747347748230620994858424740376922548055220681222251557839798998441563985602282345656799980393082067308417671580476350811487273187712765951195955648495048271929222387662219150242970157663930291036101261358915723423218459451556117974119189454596029222874630534257427221145277658662259511585005398919751725474346379989760296955199144179627922778068874798787894209584450390981791098343528876652182257247986610186843800042488694408242200036450839299409527989598733454047489422563234490409180580975719932927381735957269016417885893845437573633837725432939065660808053443944770399755484042688689172479902394738035259157716761384366879911627788886829866099416865660435891806806379965656365280709647283715307047908467308887440854079908565474939727657835320346530434460851967909303514265436442120942198105275287705511309430079817306143838003610438971755490882032246586764837792900716528186256643199500531004595709162777710633807392433558550542485455510053360076359770235359270751586262536742904299831891494737334022306886131352829301678660553241922107547715277977041785285724995490714715978898970971346276359346819002510645041851864256001627976317943004525560736240590065090612913436291604885371002947725967716793566921430530106148045677724000011330524083177539445408507088523498212560029876133958525685902351362006438122565126527810560593895998361831277834377381829017159345104431883666678181793320844030666261109835237372861032485243943459504576663231489184476817466850572936484242740183038335913264627081562774141880947255116782330409686616419514397602015898548834130855033312867696689750372835594484583248874166806867687085019528876922369633420656796748073632783275582920432839513577296573113338564349542531139968547775711094470278850597448398405068177532917335802963879924079028271628986760526376822580236268814450451215608564053580856420446370383904445514516190078177409286538388706998403019115716179133480316973371647500932947366828312427435958571789987542794877564525925318506213204140395805624159224309104543590221772013395196278845151713897487364938152014650885178522885657968343101355705538384511742481544312379956881612111332879513100374902300526220417580387096901847488104694213894879423940014505282077408672478568195413826487730882058792013633696230168406368768203029363292307521674777364073309109093905166195800163784715085293965431350389642966750287528550251825224276425366438044560954875223616426419780758601282154030940677774231789814349420645363947405436535445957571349010693604502296037177486385127475334248270150518299101165537628250602514139111420556555702001134972538720291335041653905646826153124453219736897253876434516552304897832517268296734406233137960883257384308515036675250769771307235543243059080859146433433786753608658807645009018255298543651480569413280993576399351843920626040463538487746925194654689502821846404292853693562349460069580512134668097702086576566869833972050369911747775245488328065436842330582082852636183144173254329527442520016039840867747126449814190870031186406403922121322517850826886858816900434253400083399860034570948829952184134508682377513033323792948736304874449089250937346885352629467591531247274125580554557007581744397918635404043323521876479302040864287155435705762030760078806368123090669908198999533176221178755784426561162597307619476708122907713976264301865828722670184172316184976060353234204863022830786854686794537554489410338496198868800230176238124079177145104807602511308383726278221571497590168366672084171039098695426336807239450814182785152519198716207773506857412708101572214461441335626388219245543950709388685633829732027754101185704705782790981993409210198673970091953401873850507060809230063915051226380846992901744184886886929311893346936081058131691884419483167650487188566054407896753290933373437109475009484108480761520475377590767326441642652271231335957609219635730751963684624160624959166928388016230894632833046416987537275021848904408446686645607987624015273596945071462085269414015105753136327699978605547226101282169990298808656018967998323189302810183235014142464217136741361937016913034584542236031839562317457577148424426715652401404518540345229818150293677465708910246985274549721247883824693447805999156654014587548093369540059049860062270368517058290936741439418457519358390102330824213478986915437378788379834530380916262181694049300955623167052831707549681608827620618454226797106091146809626049917509036397286249932666150972102910353855240653335105626501707503053946599288304670120991619872858470120364519806683951884255520252467882163074136979202001816193527976380958806516945315522917145295583661448336366572851733093614211999847492207616549750086004537886762734966801823325197322941302753788573317091988456972839147264952736172098413724597929990405574598560165606413211223085561397227938172889022965453474218605929031956828484979066012099333294139677775902068164853345368638638966697362815959004092951464774825396858648322329336766345300648506086835592177293548595076017591418159994226373733256525738378438849608115951851719216713979005919566889691256399423538232123306814430731914095145194529543808000792891790709919104065290947692404369001426174649135803161445685157087888324584579026168937676446089360095229398729048794579865626387619524437278029468537655400477846029435568888445665655272780986275757550678873493497512463827619896923365917996617949146806518756289420788013172219379975415765265058157178989906040757972010505486270141853528229712014029979980610974593803638537538001212217988180615696198468640510693798206542449334950318493849569095077408517873981750404930156287476197704237549298554481815762380765964138318611614969434407249370677168827146198542324045113408633102251387180977566088849690474184366058165958229913114508655338635244281210196084958437947809895527720217354427835349058995501702936116035171384015431461919331221708506971837285707321119566357719305516054076860038153297445725468779982691386364729080876681530244095370199446666271487288399168104795598329673446198584588292221848128337508997334863780888975806277804625604185219833323443255214118980202178053081225762380582301284953049181089277545257506766494878028562466877666325647716677481168537223317229137451435607238467585216623441097043820806703817116722727085713641732787912964624927656629508380028027658930811473131814205164518339239391459080615243536214671197848228776730346037924855192068035245608236810324617661265200781885951030556212100951626719470694665123033863677084365213529045041570505707849931067378504105372485625899220455675133956131809785920768682885567170641175067839804631664377521346522684886588984776461815172155136614043044380145974736068945752721689951673850910496603211018059389864517905072340866741390920357408266239283734402290372910222277239642228170748868549482862130422068092347059702181817703087297043347836800600850039783411734531033962529344038624182795872292162470876440940663376890469450095499863746255794553691807869887146797803243639737180922643582226982381167268568504302658690939735959520304501357938332552325589504449316391972631920811290025074030942213129304865847014088903807210448434836879617905120298017239834271298434264602820852449163371688284641104554990616760588884885163203369528617061936906447865544957638635777052167034604592457673123138539058762386960075798305131154422553028903598540318195700799916682267776150850883642466671051528177121036962756261677261243555090552778195626899099815177860770412000130407779199326398019607129624036247626065207019976917888061171096027033524225761022509628073140096084637777018980276985545421199502345331927872711046933314808292537257091331430180093239329188883266431630428397664665185660346790866407726481991202165858517169346490886769037640927908970377206573923449929083894235974917417924370716635385542400031339417805822237428249129492760308148283091884497023742136603903417088686562658980271648004872371538344740512597020219817058559901899965497177120861713989597894803932220605045539915432772634321844163211821913786411562250721316857347228112848090958893111962047532479285899028890485758808440429573309045822041109031535970456037652155336275603191205922720117255180800465285860174638522037223077776428951671024502810931031471370099672481087301285180426467157308399102387596611082301122265615867485289405257197389020088882718382596957237857171847777570748974966535793440281816776558437853178927995090430948866557439325986584756710846117497208419997906694338459069497895536911975468308823313554739169610053448108479111280481613745687653156494145027159353812310330821675142884751485834081351370370383395392469374657767261199346810760116967021429213080835713376708109090441922849026607127216632679706530180397726434134904889774429223462451130734130360480292836527862154406811022652613108522676939565950637476710788555672638968213087184246973456508935046975548996475577648402877397394385579107673111237322663018174390827609996952508042345204461410173612236875871299590204065894349809262966425903596816198250179145843633933773566523788500760360215289460898852627488950159693461955641764908058789461541600513864149902984596570034271068153508275857572952304460618557768225375610035465105487821499830257948684266665097735568527645733369756347800895164731484857296232273564850648846179337103062215681066174738889874252344868726105714381182417704992377393097308408733700297027103942315040083843002222956855999427259324145830850743343586145925663440571479691224349886006320051972293273902559655178031578435040477162506258000520553692344843585690818455031756804586948249962893270302766443905645158324902484972692901092396253128373853034258165886426156244140084917832845753632508943290951939950854603258819245062069584070064424250262970112879358562360163272533942580224309702809541250601780560145267665226665498610337507991184926301972370723722213487845165434648986547689948073522890028611933070011443760627715777247060491180162366464211169009404444290554093224834701234739509096041372474360224607887199544931073621171719531850931906889985726860155128577393652990852541282486631796082042878747906472560346381673757413062809123943286640768382833267637328743284178073424592188796538596180439929000530961391132453151567232555837929196759637345487332707067314456879762388025458822956864959260357810549330421951511152976351325751931432583883086346602985216889632868620773592917009423506047564072969759623535846286185879765386978274725259893103480406866514678841170548936263515037121388369663052815086518324186188168180545831811591579284607151563754500601914817239168002085205428494960544554341741912036293234686144266098133044362542400759729866178979226002088124230764087206842348654168567419223112845965991944389028471108039589267521026989819451776533943372021309129538251501184217724058702779218024534947493083916194859733015363068197759715446205727453897824235547985279975550673392649252913028182182424979909462902947699989180170148064418101285122834889056218093064792090622191819759848472398664442578214348729689094948273067715590643530155333370193035508468750010851556258019281470019779012581855434706348950507778232983821514101446882125043732742692488336096634062636599583600707391373112864536223335505456627788939809657595938106732398748400108646019463215658550625653868987500841628630670924737315927160803874660772491558747318469228897312144835875569021692730933854855847301602004779656035856823627021077215817837090881906626048416294154819847279876009550709985002811474142861267339359516956777570420859457030056298385431409023777155676408537977602081014841150728156242510067887704816079973204233235269008051174282573180129902501895435098785663487670361483364017447208697722507460465848655736148300367857508367312112194991142311942342898758587688708558931216061683738892058982290637263665713091807783884420799388910518580896692713249094964956527463418731812991879085713957077379643566210629843673611704379408110552275075482475863250519479294271545180333007406578131763766456354450016508319113709804994895497786071973615417082847078866275485026919373006260612073658739331873972887144427476536888284138032936449478073845103894985351747052117695803764629020293419980961338424232453851926169862417288643933381005042556571905473496080841940692050021029455196316871491966764172226367769145699724840126607157294864284013623160297003223737605351633474675308932448756937170138883460056028197849566641021392022232658552677118784936185909660685538466964485948422633608036115002851134068251701409452581510394813530455230104150897300485347299440277849697897687752544999069334033456878463650488487947832289278259810900971378849803704623635564794256909256968886972571356945371412225051774356054508644307465315236937750306013676848671526431284191397764492412100636934002398301642758173670215710689305487909260046259902786332619083004046441406951328772828318181442370596932953320575842750868591710892705491771911320021928062639999398361015741322666470095040322972238460248180090666847637966817531480226015205722210964322231445082024941033777324861078441239294416736717756816480936516821267494037320148274016118280789495386735718831222837212625268073159164548102381784432039453006932847081756220359287113640284901812965757984823441461724651211017996979601395933491362126132834717531002305940274625907766288976520506573683003813723252253219619190032034937152201587567946446408371685818960682402277316691062877238546687714689515721809087594576687780455938624837497360517008534946328407603542933088439143099364883784717969060216858152301326220932377941558627256658400018248361053193129759746707652901119095092568872965555352487191180874703467711938337445721773812051340704775019572133845465938649670829350645116496037472050662607464289255977111576465285664005719775763482895955108977877372660956166500549601125629320906828545496917285005678128385777271185482683003083700665698524581432961618248194353436021518391009823906935387576798862290711159100487925589985631730688644976256300386293787586656030035930730097275213623223215049155128755175030683140652286762349245759598020676801946156414061610410478065876783678242055018742167827782288149833563791367104083916757359251740470425576272575109156178419660734824206812654203336354452645463952733501134271784774628524863583178300786051530540670022604621830390165290817535077978899496751156325316779411664795681808720166444627569605652331746831547666951757365022018754608953320002406012928741162346667130835023127674473325171745288237046379790026025864688444292662801116356368343151004378871467815607208446582689375551873564755750301756379886644013145963638449686121470299950065889445803162094281974415748985087183044326892376470492426191170093433322973891868798935162834977652961296692203524341809847100769666057957687704702681574005895421435611970105569211261821790607292066336517583588457138234718247534870854930507179949772468058959999679924629043779622074988237417951982377023816777425991238715024527848993159391024404807135946154475201219920959856847634605854603519425231875736898955849730886157644808846813590924188993674751491348836345086256309546640175033976364235112578702242274767716312524589188904757728343838510561360175458273441713475210704979708563181369149539417318345054436768375710508873743695487220377815064496086116137858153225567517088940560732107629065666200560925835418836124542111008823645905576605118594860362547953753392064816356553268840180207964269556991944059004872414343757391644264260175871738965329405179083749534613178867286249987389461210899534787605300313102437368967797324359266819721080543553517623129541223194913218690056068963849597570365629815165697078507765616725170531091616988543148959056930098408189551736928193205497654379420124291083364142288101415392607075962059835418441073339556356814332705563784254055926927385342249514978563042008829504222971148682701054221921655725768823317379712412439808192875419104273207563126361308698449412895102486703654764253036431068992180109427902095535989483310173009555640697487991211405305162851720351520122623215385752673431842998478373786219705783675595773952282484696950692157689891554581438538675372065149441600425214447170274362929556165059868821234204333826359480015752171273821869005878626950148120335160064038560824921905651571114859746181805342960866501614140976119966212207709256627783619791739537433753062507578337968312886203114151315170860587809599067085588685285052511021699254468193643067028385016395922945235773262919277225126748422286293100459985181933060769855439092937767480632601357644992414385589662905440107530374468251601350727874663779859665926917940849001295637477621572923900811598692685301736998251850753392292037818737861668982111507321121508622111499330142349565196021441810720291744496764649611430963522219730277290678009216491509242865159682034599127030513940315828495743413420263376448325464401670955904548531961399001893332410627527395291333938137869186059376304589606350479058584474733636042095967144284196754854455181757365557141953415649067117045331892114030976689291591054588536339921439738102827301914728550977409925665784580313270893348076705153162728917045586600555320200588769452457968862021835090114881651234479587710018404325668548802407758923093834837851638893378546880305919157706338349489411773450138677826846431429084647578874016333312100477765134363006691718416589869807575567925085078264587841924936245731940902072198721924101770507260635946537133864643017193510144877039764392784046381253919247915606941310815481751957215790338267423852643178541065534081647923577712420585187908946528922279082960838576035826262417088199194696040824087371779700276639563121885871277797184306830286023604586490804602530612631179416158642445071525861318843966332898987653159884813550129252054099926424138067941161858976413807420681070687283823107720143098189808434832899862699071545700780944334178435757560180990831855284500988320925260742368443533029213069990901609544275263329541508021058318068116692677988937772191139585545560282752585436229452473128926978374910684134545529217960803043995990729815084356395766998203983469123123999144245489170831330272489127934331940814095911971139336852538199660457527339000924848476966103544395898125106349698525918417448228795382412868697094347616465318457604667162424078551849804543181864485170963945110306847102136775081826097424930032006173728253873330276682483894608223656939458776280316186705928798924929197616624541256176495887709878439147103341924685162456280645485371472616367170492819608799206870443787267971378568061583644652389734953356075153314077656532534084334381049200812634452189667765163688947698131202731376969816658233349644159741753829176484278673712728015873923722236813051597595959428690500620006951710006701918025685612234171494821712971158265589599412984909704036879672213591955997625606727125713247427391205989631206800153349294645796985196150191968162940910349554587261416919979188919221920335724872754584337695393810985603100394181141075892993439531934079603257357453585722715460383472476976207872441349737796581412048488922261638584248169479288021174364029141140045978309967577633292787520662174382282661567718142213900788253915211190206649931532798494251632346762253661550953907871609774666716463516057305109733442676266859339063634103559475008427687460038967676791311204521457562236713008416704337323291476230997974182711544549049762371061253151875861261410537265684303296563610883938462552351935597646641016961653702804180599169713212184382724752457537479702426764809524323358767357905380509563868572243858478252668643568058913329795116215886557605633238339981686504506339856104325917844817660771890057842955965690547754977906332608669412040567701761352592010341474793257762405564130551032051927858228940446257045605615257831829338703025357559911185237371154628170662651350773387812493494263422728838787806964517712225596208435209158709177278726342817091697365718426451310827972898933211758721057103728412190967334096692017710715992892866828739855429122675314574071513746301152025692474465805419044445662041590152152664674136685807474943348374006717617919038680854987179959562029024824330636009893479036423794180201205491149114739771296177025275732318977191903732892895926901699066539108612734480261978659014400356983001371555212625973893251070071059321539420359582525449450450915776745393135428257729423174357821525962782608015460464832823539178924866773797286279450615750672688964528793992449183937003983341505213163828336700407133472363693389828505576318397962807962084974458730817474124467758215213300286946107994321662754674279924925575924707906972654627786206631473326001919031590344151914474758813861780946571341468641879352921299483477564496309038253717454208415193749080577185899614439590652773645054285222351250653925077010582522114848991636147105646069196658745936239822219145445253769508122792733772332866628295196776110272659048954245867990949899417692201335027078855000955782158876570235528499034734026813873282809524426526430426716557755903907607877868583283435037471571776043392713152123621586859240491793197602945301429802633809347896102150544518773525256551770208987610063357946535761458544920391398157101516535090558710928105066994618587377354397305339343093032328168217305539346054782216966770903900594303876258715857276529159736075098806845924921266884526441808502562409669942549963716351386548928581058104424030876226560745631265959115207946597644688038580326679647091396246137012754076464379808154965148243764354096771886030147716142255035941991030900630176434079928326466057769368157172433759184770647606427853309314475624250686328479715703126781991607803089126591970600905340363233129075207766426812643687889113232263446985334538466962638215822281016214398630740329285619333804806565968835864973880240980014413511536872909908372282760471428552640114067431472724137917213752343045740859890350065724284130568802915221690834269494593611323027940652017232056769048273975685238815884686578264879086246165573368120428649107402506315611140222035049645974773967388525284657938379839301650617318499427850051421997484663147433275334259242968339144859016693927428298130587103058663880787497094980935437803053097199644792251144906633534489900376631375460913401713152070476841559254699111420763245855844349820568073474391011058913382837493999323084357565490848284654633037792814631738485000281599559376974264630795667809841757562388078821876729177358533203912264732132356661742426449945806410744207551776622974830225293144764534917274799101847980199200531371825051288283951687906460260981949225284262493100391043399550797345526723477568137086353278304340742516976725124818900790489319641971428394388415643476144420223776110342261052264356904811558524172342078363147291095443625313230106774362725496648244299561593925254781019749694791066660948542234665815125019269706378215356864787583805725981870109016666696361858085780362786120968281310536564104790630461699011544175264804241805128037285677745937667376595150234270657617278702871820502996117924460371459462876019922031687863971415895868928033859452764126643081993710328903899046580499376004766819311079506841987873008416399579669523630803880951832513713561161658402746985902113405238783534475963243883458766657304874946956587946596062714107649664279751975131239142861147060483013798784863339781382401443455397122965267078659751549591110201717591561209612617014762089026230214760119971325451713400765924367123797464776685511924680443031923429939949756207139944816359794291735145426645119415438972966673965887193942178155985403921788592782251166045762156125330800888995212048167559333365925634142945993369019440096415159710161085407208599467719691472062978252327051972093590744312366359187668710821299248196736439745918669379747438738366098695428143059017212142954549601937909916285117395060539739927667796492011784321007286947183300423911984398367383433890192491168054454349749650239243116681133226389105914890442070189035788068891439503796537347768722269291494838333792502485642441929515137919437793228731902875206760374943654900101471025078017025838328006942091241793316983421240128109445410284860425018982736318078145697230634696893681776881150410228647477736068135660122322569739741924259164547144860077801713586656830923183459160992866489799819399286173735646586762478113976350304228999655421670889507666976862660291953139122724161029704200358061553156344985061222555457467260907010630935250006427045851659707592096668010387385993341466668505735999034377695093902655124029020170606504519484862623431380084288353337723162305457156130686356000378463411365583759748284883897805865656913232476978692178707799589185687788989302721951616881310832088019739308114132520366339568544480421733389411285092136899363178514699267060215328122635970360642315236359734324809331232325337350757740030960492445800643370307422548847940428673318276266901136581820173947329603533742912356014315574400240743786584938082831040810971320483882682950112248498807708106758450692073855441808371985249867106006169412643442052665311775722528670553316468781368589727779593876931239989614873733563957209904665995374878149664816557279674581358636842584491288613433192195161915248199989639576233006088582299255590721140394420519348270450310505953950718906792115100754638334680268567803564783912076266093668692855827778074012903698373184278302169997164077775649412301234822403590575254802551875393677737164452285395033321319098781573875665774361661376801934634143495594356781770590757563305136062840489185705087633059483907622217674960585406637144288041778908135939844779846631259213710040320415900234801362718315478189449575513498614735848315975589267215423698312538371177758899058919354404185631069283918785854022576400015901382045799083208650385346728463422567425333988827131257369209666117708842104274855632235896938024072944106526566709249671516110200764106500934551368643198422668346582677362647811070221249642558281136665907212094142900209388602410532846466098289767978317759167300421669724067279089140043619354456050155448808175380617209979259591810796895872504525673747796956610847385719151735571938095697668596578116894038679329749443775576779406487031937786471358271122191058977507180324630824528459932590721570617021399296441490341128162620603892827472837452876462029746558583668703295406369537914815138958669153459424228492176903618051954808780010756326315548542537283326545069705190641175216788480664124122762500043857003548736356499698141605331066503487378231466878613656686503143714719037011273556017995158916368928714322385251678985997317541613197928306570150931492648095179855027180830265795968687103973289261436888582268546135708290668111658030822391546568983290485131343766810489130983488388126316781916721608333904166664550918905794425130032540922181392623493584169804367810006517668866106212776319159695763810724433685912221982430450451709228289043015124502929139389680110773704611929104735811107953805415305443230676051748929394060781881726862571245000834430017813744451656765917190273852811275489858886333810644221028540830643704709258273210297488681584430821282389703296466665960267101177154583226652273726862950877849623138792723943672694590631903336501642776058339026828874518811352656352908993500820209167958167177048727796019406000043794153368252499479654622536091872864223417419968013569536044088023405237454643501298497695561671688912922071363587972195705596690496365753489386488324736697614022311962673087378368876316100710145564980084362208249569308588757953476802927048316948509869172895018652752816915997799215298570329607357830951893686717431452196695065894185593820966345953328733622583341513409278733226595677990102709482164636367018788072568304450457105960882167455810516661649940554570448744739982661330709134171834475430692710465468798566648505395490418535220887056132577671686326775438965983947706339050824862193672286197212430451506803009265223335528883911104376539200152558624699859629012926956801822015455113302003900720955669428612108030818808844403264395718445282893356793387147268232300437635432783466855334354173293274062787652418188803893792998083729053879297376313839479069807999257319096515689891613251090360450752784529094234578965578217238538198413186580158370032970435180517446362251839756830594936597749181861592014811322582661439128668213470782654198338233528980712700951894535381258618941640920345957095615222177934719497297246518407134898920827511782489913275523719167866618520034292144922474678266500000540891040563578082953008714712941088856023532426468457217609672216554993516285743137331089356267318510134879750844368734871317850984505011861733470595913837071709811471521988827224838048649442197693875175083550217771161009250032771119462341044921946663025979757568847800015373559141171873126730914265673699162207533935204620446070314864961490105019116342680816392661903628898976304791136727287755776646567884796018420368075236617075861688877349130619896276567729175045993033458698540895541010321789700480859718755749447415857600291729005047537151795649699173504369655018969303903850590815363472326133922659028774266931915687516852500669223456408690371933931987831165893021070805503671687303213899180312149213367387510934144048848211543342593590393167204246065423201274931876316860258798572789370125888427547023449128391412585945885743183953166271628328613286302009119443326501400847332915658611408746551364132311653018196487887732809385252717580471300205435908476695277937235301458833984366444045362415372382162110829831356679090547289912807599064133040977705621004475475451423560752452100658026217873726187649906486121071855190881204675205406034506196718875877190493429647792701926780243090923171445969506898710877735007665553258014622003713596306318069870565444447527351820723550391950129017678166457414973727958650499070091153455390931457846307841920186571389476582815399767158798434198896510919487002910067359591685248825593024745655914523596339614168769338159083247775281428950344957954395348967286409027494425592821763404148806306660455814618416516308537141349104081233300576890080694551627718441844844875465319866109832213260928219893518763558064378459394613656112258694793194606899998845673274270704999772898002678523881642790084417941795238726615981647586334678769033783450869832412521543876506844437690603482624223506545693170746288726887107600425941187749760482374876420567034578953285470800474994649765977753686430027777335385039751781825421538998555898440729836707590690634174445933555673515402664075438968967847419545112025477124633209462350335537109131202230813118235443305301522347312988414953548723329166015576830617018324238559008409849894565132852484728971414884625277467926604889446859196619760100715403586083594097384138085680830363623871614690911022715579209383846635492823264929548121319089326613700098307352348889268247101135396496215948978889700191768056125526412101654192340903536176285762119573396300618443913316611706513654112173344413204686784788121729880098333751701751927925999301097896721962209766206241212137432756217200232437532752739829384113150707276918475680781365726626373404843488689211258340587905556248855830919443576439974620005226377788032636479030337157071857169663595708532795037903718248313005473520347077394723200496071428475331981009529249226841470285655976334510293964196030861411764826255093999077979600484734906926162238142285672445010221039897582188952799685115710375331456866309421724607856369142130862262000989646626582574937150896820763922591366761560458056651029575230125223882537332088118004556127065070785758141987081642903871161536444574902574114030239453142724186820130533741223523778415401983001750497470283328391256899639832028185759636159139404027709732859333512398817064070452173258657916983452395803108580247833714422150925957813248379384285772893674775300016030896544941895818294318065796532029955264556846081018871755292383892315862439857036771388275637514757819078605233949990885083725865515891272683331222894627394019575513399845679913515298278773374826948412688471699155873032074290342193386536860940941685095853322287019044728190390917533937856842378052980019605677670255456863902599908528986979453264342288678464041528335725278538042497487339324676598822125520804270684089027824826098116893348761806064494969885147131508736769513696385866481548792494407004221788959336890539694763578170922717973289067850070279775282780295434232723180352008113634898160250893646235869050524591758047821534621072994519961239938146967401822089867347283133981278279539174407605412323567465279191970893804103442297444520887298202198230752563517029746401155856033372506652267870394851360719272334399739128482589411911373536486473338237369729583042952273092307630751490954804318989268878363010266262255176857578676116622640320330482548608570349748033654755945597796339871914891813188057925118735172291401907268272797907613850479104808617345781544113534727386614952082056911983361978487536295168721460462457995231617772645856752658451085649629716338490220243093508833182621060611914090940480553835483271764543512079840988928927735004395817663464008570141935523642674688928798497955791773188346373811741932868703650134924925726828251860668990889791219364125401264570633790419312287418806730406689270264408654922110769092177322786545170680594576273410432962644854665715770648664060565512112986300469685683235520870060590383623247698895816147990681546301163030927773810038032524749830875123444931640129820392838131913763233532543923175547012525091143175085830576629727124855976851614598852871176495558010700143771288745508484620185126151388277164109894060674647970192085209862064776746290846858650263516800191834061377986760941048169194193161377067642657350055414973259992811313401747889602173555712744457950383889804776462523036361785154145482118556364310933381129928024555937427233411575825881693177698584958781952646312717929012699129025492961815217075389497548532151675984579681660434248632604591393364370919378698386128926455994589444143944663959908108937674456320255532887499791924402141568322019032849626410543227643688099894657249592374623971648727080544750462126628260396127884886002730775669548624809088403547934869335735124668275683499417045838189587883529854764292688723310064655811538186515043816206476308120226366539449813312159017791785310699337816931609447871306126438016988626661600249399036784505382264118233564084172877230713227238441869804975403635078196289902216147798921590008012454380226689767181068946974157012951504032648951764715413688504105977019418550880289183100396852929968408085126223727003718222605843921945200444310477744031873633095377749283380757768197876196169878561494236417084929296797635841659824964830421928408580818040656691261223571568454980133456704139033599038832714224460637313000890153452183085969805994206353826469109439444744446841927182152696539671579903230828687479515484176803616218664183331139292977733913881254348357340617070514144624130628260102428119727236643809583669500209650497640253203471303422991859354720919248487745350196804806013667191788178248217957833149839486868190535010883588788270913920365440385867047091393621667093601672472718550894487331095249363039346797190869582107214309666204201478838420897151614125717906848866848514021217936820988809632505804055283881989524028387430704505018816548388948984999712499848418640382039045405634588129182394809270254342066074612829203974783101104921877404539871013479818402775467800250515607137506048031670992151797473516843709446671442505797401917827346460329922536711997181192747081250561331619764912213157054811153912136604646932956789716097849884252555595532094615788848189236700891711151119526821376453205190425651241480558396972309876070934866827926843262371478770536745033418401732786846417727504142446461567058423550787785124301349978478226975355234252183770980796796117061006641998102706561668419946733197782006642414718340476241395326714669906911277226347181974829086095543185998180492608235765938560379040727966243707781941006079980812353278576848115258355468139173636548529319841071933518729349645248153520141304587200883742075720768941764596176963000903363209575758664751786175479318818556642754742858369240152184338422819383645618224348157435202673710233992387867446619832696438948163453560351311243516207943892087843996276417449584731373866998050013954933197724176954187022419415207129893377586030109105391575855610803476189938244008658310161908091921233487636707858508480733253743939075339925047011390630640836776364705165425710313004907300054213408286741945875925177676043236042389684042964092374509868354048638059670978706768331402834252241193442836256114545623016936465633793344023115536208512862115882909519335384338821325924324826308048693508205267506917024699512800762220675449062728786169065083792957514781256835756767916561943226499117787246216276944900476574931572618200203930618104293386060279071854253483308019729259679371243406579819459174880311454232766701323477743269486348501597157806170756669807784609621534614433070892928687142126137765125592073249058725910258458713563694934286288272703131010443669690287022068639475625798213463610110897836572885343518650825547899626414571526112691453482517854414423914852745997402279904312982585010972639602883546775983346740475448738317963679967087105005266034538190361183914530772297888578479747080069794098459123502514887089796617535264637271035815842440548087448823468312179814890139560905817334668005880385754543924308129108445933818460005638759356636706227275809064347397216945904842536084081447801030989927496830443553114493505821207680693632428643952391211585951998853464796951474244333375839374622110230789726114501970858306655092380310964020893324043199775454169703583610703977454816116616705916846159025226196733263701274014798069303892885767218657602666537901394803863290398979632602289535774679708761764813119661252597717618044844465597250152871829461693735583231371910124565481852910165484944924984555667522553022881584570703762689355828566708306512319774800430159687001958069684636430365312263026643222484681451045841113493591795970773501848159044983842211946571097738225794627990741725778974045973638917086788419421867906823736478568647318991355954285669830109102874844592683831863769527876630399993037713390835614588478057891179597635837576270882033188280646128553798607970925055398757774012984196054572808122304480131022003803087258011893464372190403123118166779595104341171620635546407656745076092154331706662825731627278140029703406105154820787660361372060216422927542045180115265592441696669477263988112255573110034843261686313989646959021508746498566181943149710648587752530809600013521391557138626579260891159538920541950247879789200245771257808644297200640148894022727082417575513777302107767546591956055465536617208975203743975274596282199895922814756392306571402757334788736875351935734202564970506961163094864955403733428922518607206631625184254219810421041526490669179549934395262304145874763781841490049518898622569865790263951838280971658871259836790689965434948594861067076777442352617866074999408186106977784190468666473510068240612895838708833651619125429786648702743100759102949028915534634776181670802601590629239712189570654650346849167211460808481402400354267450846393172027479113202945104759304784994176888056393156927002494052890493717955481021779331851009006714629215624167413159406986298255541723924224221170928011188699198188337973245726944214280843911037826074488159483339318734627863571317733229391278702697237286767785131528865795189095646290190019528661989070782156424631082420550226924253444924200545823189202598025930750443822224583517872572266250735577028962945136460425874944712308963745937754638497862403189793442969254910518972782103746105710496394142367197355178976267081806675544935467992998858741070600118728998815307820774706266461454312947891136039434682011094274437420279891864892998025036634856113000444851646975858626900945400206409370359408643257333755546566327996035948752355749381775379934064586601889720168377361559514973691370270416019268798520719556078443891399407798816580362858222502617195568005076061715169803181413151798743419612288722368894371828631538791563018682866682563515888046968125918081646978579757206289364664695145065496492000004796246332794039632521199183804350347102064042738717564091059010384253985951944805166561483951940265475398139243515195838276276473642370923289698670431444920237060455744427690259278358015850953048835338110150676254237594286416812929107682025601018806366391395824635064230125054296108945380717864724083087405696005019940742736968178960333114635853765030171026480339641117893341880689419030404816803033617087447615626301003950370067416868181541526595064145921709184540840208480986167845176495577950405393676083876895517416526880198665928373151164475221723707886340937142529333623845452688825499081216436920847146862539975497933391790531757392818046638809914274772836036137453769532831263913649612674770144821558228349672627430499594778826932038511139696223166007278419011546592854995444713175138826906594330228079474471030521342115290365023881275333251450972977825445604150594624864298309914512349287375249615073969959998170704665866650532492547572437044240069310006391541932617094489499544718071218901466805512046626437004152497601611275363440773882952057431193933918983312223238957883150580545443867033980659884379094186274959592000751862791726677335991725790199176753496217916351136660310348179100043654075592907633375800833522106014759427990006052536676746923115348894467802830068676690574737209921570958670858732941164189726211626703444426846686267054440458230443945020579305718136251584972058321141526830708107879538389520826734316550215125473390909048095236790933824305642260280669836460982035622314969658484248716980860887847593138119283638534365592554038266291621992501437060057639988847280592897331092587975020343545757307161178030474692024911799117185629226144012637543849874414954032946145842855654616032531735671178187489802787025270036042399038987315982369366564108237067384282884069882551546510840584569168773543605442809900211767996156583479382961029921235566281190594278516998600717916918782095212787177082652519976217358054867817615318521657872661934769592348407693725512823020965803943190309221478344366367242336610406915870945864490628149920346136726267978018759519775734821836992027417434928045380525428348968835507388315898366525559892820835817667398413292795295294349184072819111628684412528794310620818714643485907849440695371612290627568797334390250702445170661974372628590857061184046965424416060739379391643695479402365136717666348041668612731237567316553344356841110692880333672733220554485051839090619193226530813769934411511055061887622874527108678051037136956734866887857038670109685319183642335755305730470233208882331322298850082049141294619057996296066291586122234911021182370300998295246662207773633539358391890862844286155807956879216239406826532273228926049665839409747709230679868210711914532005632209674404712156670394214800901058579498052723395008015938476983647694703473296808573491793149895260414683558819075515059394265996972545200836113593838150954160022005460824798891913193560768670441832682778622461631728736794729978078048139908069206917126522134503365571177846140881836094178937202193119141260872698315893116496759064684261807228627097343892763016913735469561892314789055133427016727896338440754153229345032609318779444368594742241631766625811938405414293058403486182959458424976170301402947091674371237976815682968544906426442146360681925591112151036662830511505045966113203558710523451438265048915555495625421340501648583453657331488749296773991272818263868202055486493533298812219646292298885343193930165790468503628723962091333518276890772854115487992135734316572341921549527641467245654008807645674381939281792003860409759015046270949646200404164509092030090494143338340729404726662268166609288635307583460407883538528602076679472592271763360913115734693345190311913195390689168059312521334188622231629471759343692434971246911300545081636392779476616308011787510680726453633525179284633992407158371969226607722958851299185629756414312071133281148379939999817076485390411937360440136553062234098709111406033394002349868398962906965900174814874957131108274302435137490993660968321491318024960041571756738402804699722367781797639449999666649271862026646795245499320951461840625623015140516923232573866066642152410186880868349008529193435579483375338846231553121292965268840943720206689957620727123905662526710909067835282546526832996181348068857729969328375849525252034733000095464452498576355894819107672344485456308104362804069565304353909962830922163218289728051621926970902680754198949622039277088694859521145460918826797026261795628940470311419039895424368226899924703713149728546443154607690482434796399893055639563663699477667133450226213352410481517497397680961013456591266721642903747744698745321223517800358892120593634865845494418227666042843729186793298243351018105647959357491414257037537255463476438121563043037771886847536165904786712579394243575276631618308692043334047641011501653055879666225325995425067260006506314692046429676214177429934811984456134704747819334064590575060266447457214776832527594523860674753708624373751718082976342074040788154652463518836020145683611639189059547551429467387327877974117970551299037162805236933158361212539125208407669315408152186870996940651426296863983379864765605494777344802291551225172002038525918492529915535930968077495901258385927474955217523394824985803519008749529176184371140299975203148167063258616827103543993606453935406457805829647946156589904084107959579627943560652597471428250475094923262445940826624317981168965265083501895294055586515748673896744913216761513657989995020838811975853464982861967164842814112667400051808724598864641826091263463483983084044708327076652920220788678157136888210670178663231069304686356383673099340347338599172307012795154246695560960986395003507429699952469640066126091004256176199567129490576844143129038259549428680316827949192532023364535640749966924721927375344203697165272545356355056950381690280230527017563666120550643260462840195181471237672975558431892032856256427179196965370879528783012174233965376701991736440702093808677280745957810968121468723585752687036670787510875245499976593061451204947055705145753607310497610509432781104288149215891644018922249631759626250745239130256806055535946274219032904128407768843713617430551550423443654343367812599244005986302238037031522697085977955488899869218918393731410748113827218919568150289627657416182535747497028391488756376933557294824887754705185052267588694601616384807663669137810176786301928210292282253638118951309510923279984190675324715224833973138923142788800434474835954773472258683012351599962474576575592454280888413679760666450425325333920901899193941123874414744982437228043033627136769705888444706733793580539855506658934607247196047218631506000937262691847695162515554391522580376309565446024463618859897038762682532972598417284766014465145326757130198903092806084157119553900835619565710775568777687007197779862032856213113610403933587873463170713596288042421948494469342991212427734913389877826592995676270039685451960233195833354933672531011265353551663261247624591895397163606033476188424400467222965654345287525654097404417461336198004587048468558767704164507505557048984202867565774616646790878146923743411740102056130662784577402082405684539691693862259056988233383299152437574620980853907874032739190879968203942232539028234739221081940313712207916771936611051823223090498438052672197853626633609414090928078995993571360734084284395668598218218439750621587659833367533797731173573138191012791752332390741523409314745227734027108539741440122487421869638561109814290364266890895102013762391679938578596549006837409305722990108623861122535280424027902977200941312595862761527071799076721607272744265953301492862162144802228615535908324096368966201084630838496927968521706402097394620021182037282061577044939068797919819228160616216939513336207779457363699319813059754960283640578402368788836627956117975080568247627938915517087897987246086601046854455191543100595897050812774639233548394758753812409794887258209039541580689788827299340730273909461511948126466663556419980688930860736138936825839055695597312861341388002859335596828217769377103762253624319778177362582044985223817742097455869418034415194936780356204848146348027775273756456745275286422208834604582732378245623867777179103408219361772075281410521120339962879786305620776010372985285471484081663332893921464457947822266179475690013542934823889129469169394368474456426067739544557170732484147245350535551555278070488043356116976401990578898146982647017659002212748314016998528275046082218027700939086981271577616597277772407978841701990510150622089037428795620940788034936397907628303906939717533588529100563898301196240646693047753806066964315927693840366299308647281841901716003775075920696258989452508687044428747027667016431088233990857751329002031552906096346483564928563300038180203920313379426927245512476992194382049286974119530046857415595359183628254213264375419601435788131103723059497882166434773865929429307279380970036714128344975934350326475661774762092732948165549586967487623944889599019701581344426077851048704126730690790258537361484708287204460017459719518921818066402796226333206210026759066067474365255192656035628832426856045294457669522861539113348481278475155106981133451684942166909136563260214624396575786987092485147562353812216224872882685470635802086675054149191681171991929039542704657265662731315141463302895704944873948651055944929296960730152614377618321077984299421681440237311979348633814891836130632153294104160949999923029646399746782265398926075674356885353670591782147749938737210512477782154592747849982025665491176073319942180296525226214187075402583348970819432513517267423038859081961260468503532826850355704316737169620614535470393360707815730136949584058714601186810451766102826705355050829595063230638061532505492558033622714225343110877547225513431851170718678214618579611173966105697158861421027343039811646143109312862232789037386746755597811594764256076824700080673563828054181848951541283665429210142108569826525202701222951651402184922598463065433193471905631635763581424178270508737326265584194631148772908819947216754178072535703879792740251273722204075109865211091102215619804832992645878939890729048987709455052774058079437285967703908269662207857358958577424585923885336562629875398024329593053625734374266893097837626865669905545258220025547548118430934506415217977630482723063914068510628109074117183280194412647746597755159897642684366773086215816493926310581403517021591563564131046718099359447143103032011819625769567436070572915440750432240522519485346200679161632096018652421738565510779895063826233299768482663131490009950080734634272713460643890415206235283974783049373233793028686611159150634829078331085386279710132792244377827576156070872735316838664893272239137068716131603781128064243051861989740848783515033291365438193990932222123976671435701161436289145062286872493261367418631705610987315212720360485429540020936751770553252207479435363626418441846604436689341830894938147272622795286802495441370858104853101068465845240284342821360841736227631460189063176019844428040918264053015189550246909901428326573236716332159554932148681991538689242754109457873106068015077873859581538990054464096157521253583015440309327400106739963195619629558918812805526636339551178846019121612948231962390790921382812339148056912755949779549305219910693006166417132860949349230368557718164108977977816655405268538177816055039692819759863597218307010286341963622384174322821221509655595938875745398766019723023072357121239246319611575988238174560898647105272939820906851676014369569258013494354538549917750774330713736360806596111382812816357844319826491457279608866691062036734532923435149276512812062204199736009836977773660542966909018546647435757546527047786970814676911695038817549099669853996715236738150290910256302326005803861030160818543996816520780800209299514134761878924627680326550411051463773186466438253790717635151357102562672016253608919258186454763978768929360974045499103087636630678032837686173843494617527425797836016287924740598012921816305204916571364287992986000938910550857403255787063546282936096098264874759625184154664524665726970693582048154671330575184946666561179286976117447117765190827545198853630687536456954101953200122496594379599487058582112289364036951063972291992430909982168861576102030256090058499948570210967640267319806138990114693376721251281336312125727503492292786264531400307882938971412239133853687134645986494537527223444685832455576378978650324585855188457460651284236176237573570289557992115545984328285646962068958059791196430268868346896696003562817957993350370706640599145753996641040049234017547184668803983998090035776051990434693176786206327185736746373530722933546755561564721242546691766595317263507231405601845296766589162908585860716341675986102002592869047513616900750336934513226736007425250520796421102099369071834359426859865185663353523725980801059673521324132562949001319079179135555664410344783109915286389662335939724902891679293172205542416160334601718488107967173681886744568613695466455462495749673470318019183354860831512749660953065411364708092295645696229132049900045360771404329154346879479947958339825691873683323566400262350360831163813532724861596260347965151648151423509456525890624562131483441043805128781163799018270696366902801979998459585580763418000508813147247191845897995437499010309650668037475708452469567702605277709512759422390146075692515408123228430578626942041996443087758659560821962429179545735788886935566131415797408782438536946196290311928565540808655060987517784522895310780193768750589775581757041446960889170004943614831156142984462257512630473212844672843918176895604999116975256110238419765199375321224675179184546364924209936455204043039160697634023777037958482148490628540078097740890469128081956999214093282478664601300260167553750643713271091904361175139722476612137226156494385388546089725218412079804025937724067478822696467798213662938841390865522375246896402383265115926904505904663857990328751306810057176997733582019298541227055909943195072900383995389846097647919412840543415938838288266589750366851166940741794122599454546553469385320410047339140710851345671078854212679367450503573041735463075784964565038027236022201776013747689860479330119741807937035710562065879030798405066770960937060256511772184488844993739988279250790353625561521213615053647133576909463390156190118442909480688169953008341772124918141931428351682878894516602592357627531791410468650880591427750472831830615064078719709119452629457713295000331700405751123218651045210213697224988412493625941695938347248110460504989642059533284483014080795915271878749603734207354203207687925755693014945014550994144218929773449295280082055776445691827028499984023695686833105901656856394895741004159073044119066891550630240295989575156152563069626281717598282190331673917449749218297131167029222263634552661068771760002766669537941863453989191794713051225615049279890172450091285900790582872028516744000946388912438845557104397851100780092347644306507386967887996162277820726432469269242588358782790351705683199986999057105716476653176906727637985281458004282736389123594668964794632680788002328302697250481531704273212346874212128578276703852222932068944570296251685463992383444834289337320187221284403080308320920615486301783454164751849002649667489592815131388141966773396882882703341941902596285786794400734431091892072342292458685782242821849252465581499864588726017463039904770437806077929979058900484498248067337475846411757315701415865173786236597356817903869635616539675924769055316575651736836815005588543543585661823398496365698841764037976699762677726381233819051018592506577668394196977648156815879450940523402480522208484097403448954635833910822294182992987776075290452071481014995058875602567518981319149270902019195430663746607841154227754621497202004631169473076579767529367804059154807606952952335206651558585350476460738464713551455624431912429588601036357716332502702382971896354888309921579089577154226879495967869063120677917491867459427068069481046145528755851625706928897088525457817224708983742141624070197455798616278104457353641694378965083066383171017761256919293285134558681333898093410402786832780747848506555973890037819579893468471687527325423489742481807899998151837614948846069695811114335440646961099817862502828357952177928405849212460036967897501176525396268776647211793854237686455226842936520315439326568974103055201849148353677617667587283222181018750861615106768724102369944283617082496240313353241090415707357747991571319779381078751827096814562273943336939022895269886146819504064329187842791647744976080977167417787919002542036545010399429010295012934931908835762954593102810413527393376296167781047704914142831277997646456073104133626427381387477942593660075034328523974195949262713822028431459425990762070583907021829571847607952970364621744976292022296835462505785258779271961682641467493716279036865882899497100486603900558896561792236249087866997336678925065406063186029804266759493096584218439278791860315664362294829161005320455885583557065535051385897080396866926257889071117322120414681714204591415624235507029740775096775525594435053947320846346063092969160789515400658972592211168200114381906126931570815611097140863738655579938824885301749119024269076994865333151570827558547218286655328221184951824807325736573516670007264214088707487599303922668129658382953734185062564184196804148372482982717795936600520170436635290927858516187343523396791041042092859088304414585760825118303458016507855332547216197980868123662950110604908474956649143805478973825467213892066684445657139220730512095415478334138053690184949530064402217991074424651956916610911710518713847622599193643578145688356240231167898605903259475490143889720622744834825724447307747752843462503894183573601858803339542278113945173140565323571465338479963431425476502752395127434736534322276970406299130880915543987276572333602046337567367104736319411621920871459019122578640553876431752607574247398119632251924275735948439085655992687888626730420362413936465324565602230115319250463532857685963634224599060520853344231872367546220732184503036322748054643643588475495278957383067568462590981544239276837779655808812724625246274765884373737364302938913617360372346251522193502736511156296729165532347334042119172232854536130636558314425299508988622038527929723603794537021105036899330412151978271081373349537370316291765114368330000447415768784997033089686857309100106231997936474355768368383186344433051256845225522111320862029265736532592547892450039651885602172204152357627001873839713725013131505188329517044884208681554948714517410376834527213020860102130015795035914923171081147673555926277058717015195105913213782427315826535211429529451290837710733295155304723906571150596000669019547426750045348613334712917637608266349963668612062457399474048108478463069584895444432213660531364907320926710856032099887035565637886032451371560096026469125456022345026550733146357248485194108111336744818918287375020034620958753074366625052299913915172500592109972295560952333693539621223794686019811906535053167794611186758482795364216933596520599364281572470520989945784475594417812482457922994940926114198328156197648071960642995353545227591137413261496885318551049134846044433431118497400418321348427876718335100423085432998317732886774805768528907373918405224145823538589509892041042230480155053722842307810121158301245783500914619221350753789459989422622822272580476381699666056301735696870214115543950812896307853585815475398375045546250473770852992811846572099414831391505070916843241538288835630938308911349813520187437608356865267374646457762158640256862623871416859691865343066787506200000009516370758341731469385522597496032433911485518953245375022553856041109471238548509649630102470945388625972541159967631375303637005071231133590185607913531124203303050900054685119388712024395878560036713559259460301479750831842570735413628435536749893595361168731732825954833643153715187031994715758326489652706511485528113253456955955700896108964034896553540796508348116304827593705842280269142661963745604681278001093449720523384754634888577772642390791489420258619316012904798988941516617718506523607717116814891765540276942031668258754348320416859044283970167474868626897306368149011556188479781100874209888828657477714847012277885058995817522831076750857753068150447352966777906159116874146589222133799097231211829615168869394126722556502789043312282405586750144819377196045031748066271599922639257683325405757310306342748276963772472965262713907764903762320425765410139273592011784188248090722431343173109466049140813528538797627024004339009329710835309914906799345613827065763861195686863580481523930562627904452577649992948363958891733588340684675441845465799447705484787438654102213063480326135677736688562584496163087670628490730914809080776343796186884008646798746766162692470771909108143944044322422737915477142904191338291003759664901905678715067707060141391677138325928038141949039045233804623607217515978936923407757970114582960328159768780946857093779997611562730211694468298232195108018822256660496091702745073730209554894625460535344327307431346207963932450249426995869519577023679699308741268176726505115234897056825335575057624223622501408484118211813702823056779396735890626206485596572609978799268455919579263137267916124680872156973396717527809266749044819814979231981917342729493220624451351416663448584780039478496808006040568838331792088580085487589628253147128094901470823430186958897813936718450145136296339343743696430382462133485530438902344732445700392915286931834717570675474597404034236705331415886419625964893744565260163154064633301839598232552738731475237160584972695136010760530650330331716847500732595356136920770982603502682279102398597442092108247449157689964539627690030360069281710126049351376504272258308293397737865459732181535312773186640049266481870772179687589463071693521520999916374423910912605686400350557324982948706985783615473174710043228426268076595831197731886188644295048626049839957997980984661535145269284893085413102469401969607550103764832083420676290622745056286081199191169751028281654445491966426962041190669280629703565550591770313260283960752529881752679319472848692958766145113612213889696724289585045174458766044853582826283701690145725316670402371894153382688241169087570854706289157902387872180781262626456520178319885598852932412642561322243630664991831557023253594081701714541964475929301026336575847363183498202411560187193596408754919524424265823801133773673797410163620348653777132496977056296744870982164181308350380300250764346072244708202579574796802028133791147843332551153908779046408265012688227309212382406879210933451299716496870173764211462317207080881619050442597490046503592832936468079565028751553741359948826482983693822622311730719162317841269577286608992242649241497449216525099014371373558060055276057808040633774350352623750221575906204726171753353900421400574707681201186370339354479516931746411164804889728457689907968156657876670557163569610969711487929317163807269621418619726735219685441922237414608687314666167384100098267301079873841176688799587488389101290552339827993561199147464021559967666461227462187511193140367779642210170082240898594700627348972399032721887869374922539247053065918404873761245866722883485747978976305047764484217529593256638392543189828782416708901471206003783667435187402480326579289966774802271029189044766974064193201554164684714457431999590968450154485984683804777010882124978347134464048503699762453532267783282616756530849704829360800746582612514037139146792991124925892861687381719869968598805410281295708835037495583911947477353990676007996109574360324636117035979058505344123231921397533519902799033478897032131151760197451729401982672271623439030655798629312394314334655308517448301370349758846562152810133017901160063872146734804251578845417927175506446292129292410099778410939606776134966434669855004867258285454201037758824248230143797293309384926320356512633312530176730230379613789460527245905692707755255566029192415930117980517898093895636605554391831814323108664424994667834731073087607988798046592264155477142152149716835145453198016251345060092503122653469659869793607910472305703478118073518533642185698553827948364520045087880674196012206200385786271029382184808319217418954056110437330087631230737404848413678519012256449372559636223711677690890899768119484077676366193980097455487769354641621616573126072531249872879399803101532827499038300155128663145318509593910042267719278181291671811654868651339889096319036631700502329207045584579528628367479320461279501816086218730369589010608274001316976743538584602334466027858180569538932709713938207165012354874873501373485980503987550928920704756471398162367213666212751098516758353509526955060496117628126171867211033456678308237425313695747485874149639278001278757085357224179773641485306963013928481082527661547086399848392037574020218509602101080449183715658871979535202482696592604507154784788396876734886705640072470700085911669692140664938382186130255963993240132994549794006602653248339693387973492147722311278843967581801095676754774933683038817081812185417648047129883498344191567399414734376131631965511323334484528756742808799444170031695991309928430108147837049852148598375178298039906782200338183275544853096079931047796717048530126528560864274870299466983457919668955752421592126323251201100298923621534215816413963946016853669203695369259424552554970200746641786800870731779227806005511241597041843533542577418421137828998672316462163390912743716195621628819304399066043447411056440216747789483889757601549356223960001219783538834124290142701992548029021700596858220146141760401919653804949668354631478467185386906802962796435559503055855835893562026561839895245458445281874082772289502033329717502901020237339543999469511956291995520089634640310330028102986048516261768468977939416950619291188740149116554155127012683022265788462672863028129838528343014164908338066737886820215063488143945361336877195817796984026894345736186533800027007963248445136277659990553159941522138052135097600254495811157788424254768835699898776140878295052297926736031659849527481153092961064403808823864878763238456453030116451109988397318323125276625996427197626508679075841373297728007566765448830292915836317679671586987966108176139861517880665035862498274258577374059043608534775279694396364810913642255062057642898580241596419401456243739416175793615131879162664767273922704316121345158807292799741711092051553027041609387565110761837785238936069669692350597356891858323671256557053217712632395207295019855735272671017018513660202280645383866905701582829294252367180116832147335704856451095044013940580019102419921950060737433786206449128020362526885534067520626377704472595991058664021195382428116918416030001827189567110924740195853348395762733878594593746950575780226067404588058099169169221188814850312385447095874291243631339826520538800255324493611431843047441420412826001510661838543605174370783468830708065863357562838319293923127561987687787716443958415289577905940555562343343130467736383151366009826216390544474016644465299595987960477144396255409252894313141144304291804596561798995228647992296130983819329309361507008664782567035032833572949231283729931604780934453898324849587364896719585403650476549176516701520142123369306559981846283125735384080573671221264368654375012659272724541615966412450716204741829966176621690837534885313170002168174404713353894088294480311245244758492688284095165971609011262866668327562779830978522342837511542089079222971698508341521817904859118227728035962877414553431641362421512682975067888598434119527887089544335164309237600766063683715870532900713137491523680424678666232687664513312735055127530194224444647096389352909763953366271069335090731957203481999623865468024898420318580832065384916262122790296534476829124919909687339946734447697793074520403339601463389584093233517085076575110920972451385903520355587050985667539119085898513692361306834677550299230640794675917923858961880378478332966508676229733078525240050921866027275474553647836947519433383354385696060920101292120560360619862928000906559912015233616575659256237095602362857913163928658244120407624340769046387886788276655364919134630935251224702120411444034235180651278021986596113971265133973167262885025979080632238712475560119487875178494951711526948858125646348249774219710038922024866533967744182617190440178780016715764464951966639692183259621036471153335970252116287488720012541091771444822302271051033603531882660912732354883177084570696535966521335066305479367111343554173227543022053480180924978954732256310667734738040177032278291616665417175579364520124955944504029293051779744967589686280882619497509452365495895233280376059591616493652565572129250410795657171887836646669848224007517161718765626984647248439727865442616698408449478373400295207923471962272304060302724437869511920379284987090994187929996772546095918893413085681930591680559343764817492482753844382912928880224827835180677231098863014215010025091243283735562481102674619674181367459452295741694377216872436668573254647661711242287613871005946539515359281011468933428060896889458461718405476445671434816821871377988709084686174509185918810801390975132536630278361253909852187574847221421941926865326648756682836722970633702532716724963160458493497477226043576624306666011130233465769683068635926282067005339250146011209489353837909948013219490076338234928848470020629579966335312448574251878111965902412607427098821340507232859890927387368938699576683558179638550025459259867642497577318745181142037934790325152112096317041217431523214823742156382791083488435472922047141207886272216771446309746472245778674565681260171817445741152484458347461606767187681590491113857108627559343231335918445644466943919149214511953921885778626054530049534567921525108771521512079427689519737987702150871327552211438578476837209378306858983750769304666236083886144688819075866970102604430756437343250152248256456523670828068890018543890669816720624703552737711876575012218810869648897271392387208500884433887204871401749465538151857119861834485072054756144878001675000268601405858384681775206878086043001886742578858633460444337443580702740310505100327350253771639452331491276112547469957305111182825987283673297857511775180785388278440141172913793093019722259081503656022767424704152466795396696351072845765224506050554256543135237308875695580498768986784610064050818276586320735659233413151183930982132136340096758403252954617935906036287752011798636317769211035779335732631166250328260338938659595062272234357363512910147290659270849724213775451777103560434142182314730491211637246028211931809945708491784859257710885028819271147772654622698707777283401736205433549200723052648551864818918181185389206401966189896285759939809048165401124700237298898530953829170963429473277127485576144346274893347290726436636366811852467139148423516218739578925829226038461181472759671161843159923009216801495889593427257385687422888896182608655619704451890965053443934733666953713069271388182941153248760135752091304670879455896011376944328531535944731620127246346556178346472736488070637246967392067070353544838445151060922699885381576714360530759815563979073134905061458914235497798236112262456146335941495848279397115607940682042745763321402375059642666207613597681079370403099251310649955316203080604255640806345483685905954557857807197712888345949251006376691196742385454331558674937862984182774527268716032409754662561258841091341005686180529687526666391547922182609698412152381007085413443203516553360225980111413275826855476798683562045879350600428542684698192417686830802601861927733702471131082391032023830730123904646351839715506922987321134703768941316932777452283304895078523365039566187320845810321611308022014759141429576117527369933186123411514013608812133657871500017423433242122114518455331534768649491816108509124545572114222041267019553471397985680368485905633668324028033021618217254548254237247818895934077417321938363802462995615088340898049260801929641040754058645328203315934251036464503631828793581307222253167767951047793603922630642572421319542416436759465934786587687052621061914254414378441309765725864841075228014994383579452462323202067464828433487383677764684969907923250233021663228058069406451185469041544107877816169334719960951593716451370125702208594557285961313763647262030792500602704576704784709194396201620311816320014820814517797730977593856376651353452635911700454788693629972299521289870360965494594285237306510311232309346494929246236175659293468814361657195680732422256448863117706802227094241924775219174280429167413732123058041708319847192946301668303733653590281819279367206590731930969175694367224551683658977349783460877436665887235623508953668956322072161919969615468708302495698492311799339747211345512388473154195181439298842769614038269817074737428941188787447178023009495094409846390481554281572887052450153085911828883299610383785782113652136189382238284313749167778255397812601746410688451842073477151649055423091471073174290381924192803974433743811086091781905974728712193408252463480845642752510659519369011729439832652673243201665901538247820517785643846846668859148820183786862138269473235238895926320083380511438019709180012556783440918616987143432707799690070733945609863383376444419889768084220168704944311648328064154622466687771101863127206298605343300642190810640577809982461993199981364588237807352521358662724413641911391048550558142839682626648298020177736059302612159887129546701576369555120878159197826044449349146968396416269463559426270184422121910710906317539597193076789905481689168910241780288293077582073963236717343440598875008497871078930642771952285126484313759857352647504789323925796176873177504932492489912863278834093779787062782287458550590390931407940816206197733779804478245768794325865499160177544625939423308231290605762428480833498160797236110248808021789282204446848490013215158664841032995751717695361920470927289587133375033905843860885338608198993152414238584991371473141197032561335519613616145920035809099033114214815564791725294722198822195588968216564332405557563237710653057278797227766221187860708246969637284863075115515217605158586850749912582221689321907868441850353760357485528296521965009235005036361046763997190906320653082661506136942211384810159184798576767393082705572026175609209176228276884578207752217955455999237036228247297109778303778541483114122126477416733476645558490896999086532955440208336603957065290132014965062979253391741886025706388220036998528269058214898671044727406450730727223275828584234508955051545754844473795646822413238496234231912216652395229526973291450500463382646368555683712007535631585196148143539613029543586655393908249903670858775447025683102105113824503097511387468530386115686077528286469830831528942194806868588585122765140920494029442252896946402760174650777643249152362708648861523822187122104667043534001608575904227574331223431146398312510960918337774844659024037233932957218231691825602069666133244686166880572565906504963151699311208254868116705666206621045138738461214854452503343662987564674344945506019614677679448323843757651052456177103477325911215685187194483544914830992110590979546475501990340452061825475083745805943586790231652351145136312577062728165219041175699653396328204553441019819550325252509938564395910171393948088090587435509715220822474551739628227320071104868653097663616847701482937936829154969805438709140931569965353317476376235388652667512279609465453853118563321176747275537445466235511264829520397323250997638081247097467303921957506374410167350033587283964023350165785702130626090052800598391661820047974574844007562608334418121545787121414442953151709153256294167990859859945826648537118114926974805230691377961903063648705730185361541494562721046059278704932604304683096899761527499548072752499444103184625288290831558210529178907292982076270110475410706741880653144746652610598797974398448194591894551757365382187817918362068045510295796319516592266146599466028455075326623989627206487579130316209825215417971703339491381726754254877981531872113578239757419607544626944554085958427215931786510085603284645898342644712329757910759483531244816372200317418381663396447448588764291115869126708744666681573754822001340194329608610187640025552474471536488439018972678133069488465566216032669069839229372882361235674563179592274872769673175039128415483958396632055086931688567416514100953183611922209666002120327474501027725056261726171953940775262046504305808747867082087033117347483092283244186989926544336236252723680610799556280189863269390615252925713803434524397964438724331361216597814999765229337563891745392486573456655163789585131730293019606152903238103047511613243274804423026712804943349751657863205655919498709567763156967286551370518150686443927937773174651643711915327496886401102183276153372022231736973284608233990907756766219417199502225987794261426123124864710214668235134078268632056863351352840272142984792975992720401844423555319722133024979275474737036096461195433004793608506745992175617788987433770483940060630411462124515918079194926900021721876577544168971883410389518320960040262402128884876946336614826765502053268728923192410225212598648979062590066835175147052601080780618115414916278509789692348776248286946560439125774783773958239843694246065542717353010747802931331962570706162853608173911677236789068449484057244573566864695046377955164950109064277377390968975823264249158626047504391099270883650009247031388843701327840416333635137275566055635605575613260336580868194852578199161650202709793284648653375353208206501479007132167170975483129421942174705502831437632441349083828333352735566842391619068234545773423915749062740499694565594193856840998363792302542405183441039889670311433025923171203735105372747831138635525475638187995262027406676387303940015128163780075300453529620352724322810815721753822977435989914149114839867101995327531657520383462141760980510252574922627241298109601991113778781404116802549935104469549662491307763785756572905515166804681284024724097581561657285493605781201946929439770852644494638490178739331460320816054845574579768915249291764114375147772742554104062890674513364568283184638492433330742583274655773702911640946817882520849744357943090060222450912527646316169361987253884884117611259005935446380345911987569315004510536431801257243216903605275936526102211698433023636553981318296166418768454347367226770296295009577780844572884978591879003282482080232523536349270847839478099920680733087563409265046689302097540275495469956710548902889819160739002640708984893912650854867673758863015474413847887531336956519532043126866742041139989462898978989458459860369077798475398853960999052402351608244276490562205844759050361793283813165483645302492852084188986080287134725771900984884790014385230254528830070482623122013928597489533093178619965484813624888017591611545206939416244233034743354936263269681004122988957138789461999708511264575521310792946043564195144182808194952120252917965719376833826085336485064869754693476463459616337556787652610608384208388878208665994796007830688125434216711130316122242214847952975159374422205526476363470026242222622615948448465803315128007933058592207581483295164933279246411771511972432490036337673314597532955946465118579699916197224459654766826496078037676073772905651065647282021221097517773462933150749727340813839513716923059995960248498089122568877597532059784284570102751719277237784137247693235420148851814890444907487817868417598061025406951165823937012384409862292353768210796788227028539558279014511391515733546984295289364973814893525824999631313758016702361901908062698995600536675168074358966172580281821295112348395781206077751723516601892791758763471972330903067346605816099166381295711361243964965004810230350903140671583600315135548221443374854516815466981530870601719337548801465822369167605234470083469765339652235964303296162432716318022053112271594635744542925744707670784509773493695263291272824013995125970127316588809891512412978713910854758511993212969114334878483754637411518581478684847854858701495282018859788727894969153857046774767872771077406333442793766828383131849829910335505431368724912972421708486653481075093389430944197002159702726540067461259046357875432133191036261625970869244454383517061405049171523381957866141450059568288742788727283902887153750066658871416749228099486651212836362965501910050932610323778756907904454885002287168040104527221159750089083852504598306304829996492250968983833708757990929969015701315108462882734772885820083649573519515148853811117473640787539861920900272594688019401379122591718343140267371427369001641452691267014369223259061487323535808062846905467841359916316623899981627861824438070406720590854548541739464327086821158924793297460898986774477569241965508359749018799115578002120030109505752219031274615499337197906051296405068828114176648723047428614138063516350063754057498077392414579573348008623414564368523307701564502787209105904158200959420816293973581332777400388895142447523617206677973816970830321499650078773863161310895836194208341393416787334818980980980336513648000211206674505389449798552869884287168930808777718992505042238396728562257227401883798668508400535171440248540232409369063362525329196031983240631661491409078580267560176062934640436174307750167577343381364444284339354398871577659158411810302035838412146354196574625385066036107762445945389223559704091045223654721485143864897510287014810433396938748860032372656437802448059015365387309254273024480535789574460260727460200588190763335051820119488115215968475077400231190758642379976938810987546644300473084666123412651284705269008612386633987163905559583135573522083342398657450605027290645415988291512718382277933049243175837251296826926956694770047737036785100210520118781763256338845196440276768506104203669219452314419962302522968466328917387127511658045494051263705338108422623040436494635411556246168465935555646234772686899180210586689349028551838713090682573771406346931787973653625570537341642714869609412625678505779947384152282572094157646292628176034215459100325733152242353269483757537476078734979629544438087403873897876754464230187058312899646584366447261182004536832361404640276291856737711641859821591509547285579371222146032097745773853435346037917302788493380863589021936581323654727631512198070832584907499907599029725929808962284649717459437198894610705787503149775312659245534050972909311982573886049018914529116098924631129734587781287123512629331303422775362963559523262663076283471231606809486518840253314043057995040523627459037803957547725462138840312758814263273337498277015496587963757346419016777372161312344130506326251463475023787599939532299845104597794327830929964918606611890581772552542343636952478267660840557324336331030391550092507452655182220799188242565427224476968017379183980917000277431673613820580106095236722883405438571371253993850117739971063490166017881731791015692385985313704921917991518600497550391078739098848752600758863827953908891179728261292292411734219314476351154819755369073870524269319027102307557668386649333709208105559184311287709024784462254597942976268843231090281101554622139715079806519432019067420749113669155234587438035912500390407122273376386184537231142541232933789970539303152566684558633800230578858607567121612742959830312711419657252373590267004228213882974920982798855020172851196013419998179188528779605323735597811660554500035502188693482579421055512426844598581937303152574721781250946966860493375320172150787321168396303282806143079511229333198194399248258975524286775004441669905113609851028266057391224963033655241792339547500825037306744875274158625173064115869056036943690101169135720485248218116982593743431321586235015795589179132965173543911535909751218177919293369323680860985605604773577406418618332046136178690179610034814575355557399985340496581122267170405814940098674230793885175879720087399609808531565844065381739906366260279582669669373517289409325446000366518679547626686180975694609565639385030790997458300167517488603521490449050810792043790385479103099908697912568308685536794272070340955586211687003446290840744055450557611472739719091534017404279330863990878354631621263314911767480714599545288511882078594139335161358766746479975820065943628542234690341407423504516836035574311199607992419396310505057150223236130561221724771182050754649011822399849707915548947997574406866506583975972658472867350660951904265937596235400585816074062300316155989379371148482513363814011368005680858455340093552487697676739045096217222706169780338993665949090022779977891639429087008223729432232937540007720225648877428591445188570129251143100336606863680373630835404943951091470191472987104191707760255973677736094732742372028336516889841440016796351719532811760034063046357973973989149820469379593241205475692612517697532217681015728360260199893100864192583985768516777929573596440583071099901538261220408757236407772701380813117092776909919095286162384924251860536651211119504934307839265449780228457933179376968310229483993005988473163956303512957064572141135023890759108147558919747062496445318977208357927415411278833024003739368948089101355701706608876163935315292889446676835936066260967001369219099541542505171884699772988052972321644377976221091902489355919174795689880414449035394691549503041919465956890014963269789181491123849524886010890883173954254662008888291043676598594190047526738970869927175431523433848543786430674934943277398559380036015439405360189774922494675864949748699715023889425596270192187143344745245436094642955424574623848702390204388383404546261919219040355943420195015753456496451118093784381209565199384288077101541079094862103384226773607636230446133670785819822592792347640957388441868912059533089798655755005105091689808679607701490262209684914956934009208456740774619992780871652010957677946058024657285670977954859304701311965213158935808842921210605871975805920856921518758830862206543421021278286384195580076822136424218565973021938039999423403729602899555431787031374244420724526113141907622608839683567612647859528271642889069864459153661738567752102276112505040896989206410925016975082040200941850953957153231149316601326210475666674351176170371028752784106257975934090718681977069397572071647663128628274684295040806943261357363184918559058633194639230399955450503632150618953169545837809346558485194550224848832886278332325381787573492857611211187378006718487263976837897269322918110658813486350932558538575500275478708599915849405941070062212848250708873373644570522785253778112324285417289370555274015553642863653530218952600110381488094321905515900133719332033009451977230982252172674989093483161818435315671466399676666714556490785837512497055807344016543886156833924283313088401368538391151504453410010966134331715555682368198410000527381137991739074939318181207516399050108163660268938691889792380627417686120883851010979227088514439551309868750883047101740071820681613359743804959863313879814948438903567572848948249411357478768613680914368863811281696836968653285275788166550365908718883338847236424067279513999052202639912400594752769586039375340802766875965551355653666917701468082835410833813320189170692719307914513277595142907604091854561266045263941373403522428010938427385675909379981982127740483667012980194628573763147202301179965958213547047393103506656283988988116838524337026164969607965052088907254438565981098808185073068931166467233874155031779615798406973218534951356012392545784188208659698966303501834809174076231554392486994407886152217552556694495856953565575951988426263458458560931023333582134675576029375306441039271189420038776050371972424466101549035372149103593573852375615867325095952592478518045297633910452695018465071284039543316576475804046407424395996689530586009339041786924660304281046200567738866439207433004689561581402053410238238894597474469354678902354421387939085489952112511336088097925030008230059621392456279307311751182933698085956930057495673231867453688218205997349201253750285753967547870027223652992134060146877225826831083473337687434677399563138413725159879499387006497628156544095172193698261502114532396032690172891147872923434061496530554960908795591280502783050887710242676031960583388670685867306264325670007367548705043841318624966606237703081133168855813878658324323824829404999092981415084005341804412213815446416317732006075846952291307595311932892272458130973001785631726020733642524844506570683666194115299769584275749641307799801111352837304608670572464964719225842056878224462233151578480486001510454075241693553665823014035941555254236505459509794394931560967477771326805976216096052160316738736527550550860752280741181669783837843628002307879159169430119219277689373395453741301448267019851360910588480835587725413487743732038583036905396416591756424772235660554276494412304623418289613814980399485465100026211174424322508084473181055240104340681182628170589853388675017263155085131599433832564565269882612407543321359952084274427615906475290338663999717890037293277333982899114705877060519776476127248639714557144945150408762380977346069769047519356659021568003889701637651580144146920820221372334371375370981307744815076032708627849732803331411122728853749512482558433718062328186055275243147855050947842900829504312556249494848923134274441155369230434385475506810848928768006035741447468684255241057057780832902862731056353332314349569169956371542910491341317902580917397779622398945277303179287287534525599305613342432989235232617996690293179554893534013786257889915865749946956900974623149764526327132384042310978769998370981008876372974801412087888456470166275430377708558602938857352609831200848071052811671124937424850318988401322936329907722171228426925121693942416596415404152361829938894693342037169031868973307061924936329362286567035099271564119445116207319312532857717692338631863212059543861779521446542041313907201327407793962727021460120493551823781468778226234435227751043254813175625836375471942750056515128313039706943696290753729932552430671790602137778468519298006055436249834631623637621077582841117952770369389399272147515653290948936124830472419097782937267476993325461258231106128129300213032926048674142285493112895282909913325975310667278692037441584459892877449896105898736786896017139750170392320546668086539849053187502399564382868309326669944136478980668319885607292428998711267023039270035244142442650826778479991870101104554015548565132223543064763883843746654683729473604996330923639508577100687709403225601560652025831803041157686754687319401351332514611819893079030232289271096679222691058604995833509183370456311176861199651042621889132066005670751457441775035973867505409366898068273342926753556237686409432251915920818228569802623268044251782011640844211034498977224978293777457821201434345032167145960149090444861934544322466578643837447412236135704575231791853639533340005116736896689896394375582217617134012310007732482761513165109320322831368634368019930605203403343393783705236067627521950095759070448634700963018634675995690973817052215528340571362139312855331967909899885496044010497356409143005503097872888856725064034812504148601241740100856256583121223079063958245680766835018789993527655705529713254625291354308623691786854971607308405291052952919755546102906683964239506920429509904618723188920632006678430942708806836551159561979176462438937676232194490708571797377636760305818168956798954066004411064755924142790811689019913454567887288425390860799352465489830886252895606476573853166111537919646921063362912944435134678011277378841963842837564248568968972641897192717721740800590178931746283667617197403541834853232953215795924667208280851407383960734485514048619367077880965741096392559106908921195166711201638206671740208048568404154276662120336042722752693379360215603610056550438682245783484476459302964110025099449134693115635621196991176733727145014478001097704980077821901043012872569057073634042562387777117190456980409812646080656295107415014638824288822950877369390867012245765727277062182245309534843229076506420053495020221066894196594589680465602915544988352983895913725627409236664680582104745160723105979664022409363052628833563138090386557457568494465769264908396828821708374702067733434431997075539002701925794594820353737237842966114071551340310791660121973661926154226945446677083248231674906699860283257317113892148985372645732090611685863358342132028164768974963478641938728707703315660565141242762395791653887362891550324405954651191274938953282799360319290853691082707705137033192887140405532612121817377792397216788354985155077249219273432267545904860895509551933287421527310087573100841377616802794934729533681073600363561035748838983398514149025889497930039807174489754292069585749288076867861845777129218326175022140060974991797352246271856586828972128116317117461648864606052525996939910832182107763154738203105564906641418418060317929582371792158097412727572837036622137635921626186541090916037878440870321070301419265290320876442389437407226293054172635076714510793486648757980070245780575052589212857920519059808744585026367053882394277691869839800104857573616424700726359193211402973961468721444228918486090377927560742820633874035527620125253905244488181224419268404758407535051383727147270902053163762249164418845050635542508712483479978204041502155971101638468705873299688539967414477852349629093881271187004772977924811245694156708461740298251351561795342900574044197035075341828698355750510109756519051497760844782972283399827613919845322236989842379899347639389473186896796313870438710752747091740450041284890854765422940389822469135692573033708785368003281093360072741077870632130019566341549093253793524595004412390369505949015124771200476374852263234273979134355327762386840744557375386658708029866171528945477368987532262160519147893454198806226429197936424605905991885438211085256801922865478709115521969864749692930249070502888783204287094169989506075658315143590124071588689449063589764546802492935696380308179988877491778858472950801214632929748391354744247419551914640479459079494254162963838028835304841822792284749687453247583070138195065910326151766499861489100289540311646907186812948103468177379087735366472482635716576272480179024870746381586160359269424761172720158061918682408908430960543916869413875593647747638466284016779948316755397157450694664009106188204613500164037488797228755440502037541141269921909398783723610881948351746335332209397146789037617431093114228490860028157715573702980348813781590738272853763804265067040924031964610550788461877721316927261258161665932320791240836247984624895394314392770810850434246174538662488166145857409199528066893596844900948587776274964763387088250573237665018966074568571232518482659360076973259530924608787553422468698929419014509860072411050706883819047849583478968664422305863386137393453811538904804417762485879997561365192645039818258866038825860889318623932573895667410167160433857386184272143624801012073762412654524735180577164925446177187189323296792335726089406190102196970107005723326193650680536759343769991538669590132727903954072774500163105710380306187934705677998567884703636774839798143687475834662587147995579617959679862944921224588638832814512633236136334408616119503527139240300607242004901770917810883677831471430463143614930809027305031656947164382537806050177610405645786835448360929048613537457429766017921502708909733755290650544040058047882385734663145440984947869715581186805862737657721423221468997504589106865567044524301062827712620988899816399591724124594331891885911109753883914092420254562945159120365310713050017625707848811740098017722166226447641971680933629474031357626376991644995879300920096988849762857769686674391890704129571430786769830910440470200269382286654510735374096664549889327043078190172785082690518112660107118350485279908782351385122032904011914047977179598467070002016551689662775693893032856618978507405813096176018828630519734959028619642678217318131604619763973312225304693447510889394853907484262941650947609148708673127404328762937616535678791063812678374658213820378750413215769914221444325220916970578215216810610173482417377724754450872463415428808680326530378155548975614026291430302343719607907782339412602068939671908004182465236474784036812838287701354567469965717543864917809911424589979885787277012580216220900910373457072012162452906082417436307162721893238923887216212437854130828781310903270173862993061272555019979894477601974287751871183141837729742440756099146299764770741503996451862817214643242950325689476964232568595617133009462012729175076465394015302272142672350151630538164678401201855566116362197491365276392773078999781757507720785255300712840643879446087303996989197442352805808362435295706303051637209006395080242778410365721311354400974263103993648086549313330717026069656115977728340414027467458091434788153611501872546822324795085133806958326268524284344368020174826334180452261821445717970327747318546091581630269517636834180973879420013913872024473053266770240384747065585075274419685547957924004394661835772733270684690825870242486366866372775934711833734646788148914080991892303098469234355428767190760935851960908608367787011898197950529206872866945000310659373350325208616380470301926455783986136602387167897515024883604066597609710787031616620899609162100133411283767295115327933698238870261413741434040599923765739461943839644648066925467810822580935228688378450725876749632701845786798178842309581947913114584268857015521961573661744026360244671095408708513419673181961952306989276863966867097354772723518136340595807540208555913834490360820449395363362855213827747859327518430197733721249367307452378612219222232304231057560751657310659968171461303161440056535264370110232442767817224883662073442220969069237562811306494447887366225418497022150466254574877416784887549526385214730050430927846166173580523477910770505000229798245729612299535505462806142028430263120760537489253124305356590594255200357661818128199534790030189697882490135777370084619915414312276170476619203320133076052250693824409607336279292629035638109772442775629548629923296426497602245186435664484996316610142057894556526626835494270611044487721262141423857780747472048355383976538944729758733443887985958316541912114161491878498749097898056645763406455733193718996359352029870631342890461317409387058158695530722118429626935056460174201852591675608195270886020582648606201266361092421342251447007087659708630074960241891170647285393117655978574671153790436104285085312569211747510330620827776245321360538131697309420082742473343129078261134045736953404257543032484783491899940351766993864661073180593273901576214009311000934390614636126533237370102228599833248638039479304389119227221269541280395851101784846777977381441024337848607503885406891532386226046586977977169306892557319787995742929836817252981747349797234777812150219769966169527394510985076679520646760106058535145207975618679306946330235369147190707145259553348517225278592348078810398533918114357376330667082786876880584397057136836217190071502974154295806864514413230265006583138759170360699324123185775917680259086923415277276418340646695178607850563094125769458113254281888863389706999547855901159372110857532821969592017412486123778070795443109871429112369218684401681434946243062670381856000621775241077713677307467609036006341624319474029997072318879335993234972966940411449678343419439709823663116679402601047729907415453387572460848515584168019314625282999918901343786769144323431960145150594897258021567915477298396677479303617170681791943852055957387094944167146923713111145938622209735537552359418152789618947989262437617072660205574677196145632405869167439790508755885334752835502388225032639680914610278065464301625054675246491755734910996957965157287875915527327286501418483429149949546810854217766722563643806790778304322942405105168470119291448627773842478622615531764819284398685055307648634650633333825415271403127361669938207164748676535486840265189093972792144401392774403936321471893509906789303698172488835899533009668791326676706657411156303657907197773828149066187078555805231003298292472402008550165506570867295902828898680467104640221533885162695284742378729671695748167347235796283347145728967092964307714412365105380703601992375401736230697277542809681644436073425149534425313068984039265559580783463897782511263551754119708124111924650871052445305643630293956558195003257263115092029029926482488199250001082868015295972269264629716283373786032296367173799027098176387551856401548243339382668197134493489735187437318671979871562052615748449728928649116911656387322222155162682925514800673733573651929308345889480569919493266674274990346994545514310875268756809353973959166004907192488242623198057523701795619700652134550627560568103775852231561144020883548883899131256834257748313395336740105402849422272470527978214178985141154874020759410384706251783296097896744615647343634171465018978541933609370127297313825220613789417824657483108009622436460001042011753752289577853845807197192527257419859773937238769697256017544484795549538706745584422344578443208736252128298595748489544347812469987402486546935553024522124141418122731821784376039444785393669723620002105009959843194765696564526165370515448668404658841191925580566696889468122737174770817957249058241471053927889963590746849156002590770488661219779474420213456588299377600320031622524023691229700629346721389804247962439448657081643628916031631909651677442449300780328852904934919145026655399302394467382970766945799804472745996756036515495515934395753188873431171625410386494459190360317018173456242338905080222171698286143278532493655206563656718573807067658387337423827390008630980955163604220338482381549998316537945944101545011427087574474210114962676895180871524437043420950243315022795823178798191186141951259733605149579406759463714280573504156838065946070480978612075574136174083550778447626789350893907349698533566947340286944724088928223784263997633753692518249523741606664512537830429119622435218840044309490154823348794574790452537588203164284080509415789094728329724635471230132812871853161264225664191481487042400087547579224614307130048732680088293314391029020922733715800493651015618023208947669713907421004359865368990061378979010505845659821955351303557335069726408248024565498526815256619891758839485814786397067621100454902223093115977315021355256296169769704320095074939015430753710484256771153796004161260927649271086685899039202046544431828311193193109301881661079351688167898765889392765940169795975679684039498363222589960210097619380609900374003658038457971884004906157849991832177416964226958480767533000985910737636811759430287624075672628651387217060509291471316588571614567849815520121039045395359841599380495957665029265743449585250836023197934446601188716929716189070491148622447015188401102695570603666540251629961680923056797842919629016119946116061600690548045952588867863137918279456084040931125728602928618339960699706452422666890008297784081425166359967903121346057394312231141065294088224627602705639366863516564971672893183997177520209094528798204416165742752247037108566395019817854714321938940451268744808002502856936571036066021619041174168083994093508416651744909593516794317619921576694151455702177908185950243391686134892129760554781586889977923488564693347382648870593924094724870666428209190262285869290154740063979568941781155278753211112252347406851697236737212545759729456470422818277260080539039647767106762141942833202791432214099320152759277299088899589995637512981056491983377139608743372353696820285207871589662081649795698838123118744480111066967346296995536447553975197665241342931406929358654663053788212526028168708329820344672928389160156351089745087246161475187211611414202430361123952442173804008140416539154247665288016453383518755671296108530345343203131125644865222753393229543473859140930120634924300098699969087571683776677205191209741534968807203148011990718823220849295720368958867292806933836257080977390519487160395790977149582963827318222185036135226741356230153716464419731884644975909232038766533611690319632998637017149673156129936002990185442640761055558098911523949062103657931596982690350050189210156234440240057972785637911024565405842790722791447137253660739046421022467006370793854979764180134557993878206510231700099964049660603451913615406936320534067514726732032780746040007306414179379028959501457217375773991904972359184583344619384060604602755439795468530763224839390923874872840814074249512161394387101307710090793527288183122717282012017310022698710929632264459167962127767100747915215513695388309424431888519643362692701905429656591393932453702711878644034377767854736352928063744108629063969926176204863403538026733821767638682113686670279517188072219349368322211001083592656679700623431272260031085194628372889741201923097269809455614117974963866148580239337694242982731457057701333460121766506781537208178306464893597646233633275602869311079601983656149454762141956669086623989041788607955365776967488406556664589792334732535275501276072232870839322982214340010551353251434761977671386725440042002424467070063267699390508217442269388701266878322248026285743558766820147159292019018619763508966455862838403010477588011709871145097180970423453540184529938520799506394927138302942582740226258460004063903647641701645500917444884784030930980958513027209854359192808438512604660587207227117452681345633401919747645558175523831208168823920651023499110674865239925175953021363712170559196003224608549544219682938318720489367600452471634074358003289130850985639791671950405734797171772644714919982434128930187937518246892301108220331466876276411223667194584369090033096654757803474294289323130108453635299074709534805386009830925017482853086168233073341569669378680632367250503424796259200272372540334130836513436936125938452459220242119979919055540813134268221549950170854115511830439330963249173387929673174249039691734088363219655886434735174960474072572534534247182296921546779300035769099471836433834469953883751338154194712510496104664100006420075086599024695221016103289404489400695972944771733003035346340027388426650197697024770148481877709623330227059064345685592177483408272484019736447272175939575797881840147780203397546917845432846062957387855649748685330862159125069704869718689221710633117886774353698880606201596349186999908456029569654333184949257320311298611028076930432853526855195164707828324365556215834883221789573681762231659714586601563884509345563458705703616575607667169454409569802676670350059475913003861452097090562544443437230100729619504243613362114881375976236917465204885198363638495311850568516998854794387850030280238742481713627824904188156259618837637963673111554306469385293803721119940490953331509662478358075053417716579219120601789586098917669551379853814729420158230931257001705968618976809175447875335629497761755520138551566198558173219098155668590802311436624819504250623634761797862271092872751909886451673509439610804388069470120960887237046057336020015106809343337821407335661326092342055927910840887644041440095745629687015781137704586107103569108039507487834654636662501029284520147548093806289177716531736923536146171285999139026288744521023673102433924504708580640864989808181627205306502453980545413345290189543602312913849360889267466248036106340640146287127257352156556700311473888260299031534545990159785726065480777553468221811441624885482607076204170075820712686290269214281726570794716240586179981696834729936561387186668821411455420619310332068144056303608112513322746247908410996087148418851388379620941725799987364864195879214176962822254110989690448481798873299568236784339721103575442146555752881444325687497620270510683015310458456822025898038998010444408451937922138380283932866006653016465685055678685161982508836426311147820986387322429330551364621652796776344697022716772894798631525810159347842522143452619160498345403906518512699399962999568859420134531458367093838860114590586386912955278845206895867733826129793745066882750209783201440513859174053451899685298666038327834276736287299104064511443756022505955734481605417344808669363128259623786619795372019675297741612836115808415463137872361144470939697065391727049036253568144738077477784006386931269879473655241177171254430132511026812792493251100796279183009148874534419540134940147430987150692071049232727762973118929130957517763991386038262732845845751466616214145602046148694914452215724195279770009778629954868733489232023203574451561999339141914341654992020915430411657235527698650488042546509861050739007665504511566040974133332463285354755957243147650410436737279077484967088033413205147004923314908592385114143927718819670842880077590846041871327688680335870794984171839785000724839067483087623247395148541844014333465012828289734047445471939298876361826812622867315183545460157328416193121233482763336524677736994570353319803288830587105377113121602935271934211397201358692489267975813559637042619759108741077465007904591825730901254846571392748319230868159740501236370295387778068543655514972109976867232076203980735505350180843479565036614417769588867296183593340674805666477344266793285430686536191652748476168861371504089867943325335107936540461847972578910654732214462399371559528390440532805338551931359369368120997681784581996597457597277947387864204812268224318105090293037297974071862550175834991877785915681868155124672164344481871569777207218708827512859840007118886120412707403724268012968992507945769943076337615433945011281890859518969557268251217044319022707485121063196320943518224311092401157265925418005985055433126209515263886718283356274111586217954326554404615471701985010609564211415525587224433175033062017736643165430588071358760338351295218700240553873455292759790926799665613849300790625643317537741888697988793089230809242274848347997584477338860466911250066349315251767852022774368095478249683443180693246365567937153862226398189893576333526219931009058647533622464320619060063090949158052010855848867630403996961005059449769030628461773890110143720806999511402287015948631193751944711841323045794391967498164878433142824051771906152890181223569164996934204607586676957405505901826281735234350257704894526455410196517653585537764904098145049208071247334287672879072312911842694778747619050464049812984856166778401692910983331152989491589406710661784975570265072443026481398528474551443132262581942064700751112754663339417537166827322099577733983130858323537942793216990799398938627387778020224544528857175579377701478483384143716265719327415261351835954412205211884839105723032509883639065332658704668424110894383584767385902261407449403313312233650668427044898619257506711666920850719580495310309713630119007308334953934379976682948516432486779691398378688543985973649090066293662477434930294463391861931529708272125767151138049147404068817213273448204874797814178376096870872021632358948408237129400166727627454245481144614727298399516995600943022741545935137924772957212663399644979415835700072646519583265855849010548468620428117182385626301875213203997796962179494629024520858522728296555920544933266443735069145288361721171611647859579985241348162092959725247549679795792734660614664327853888201510439700592612017091325122786552050754138657435603862279882443714852322523787836888871377296694347964464309401265759577558753149262464796106975180257943910852505671656417029601545523002000812435376884830565588902214857348265764182670514009553018064831585983522901603006680436077788874417536406920677719946401190478589101839495497013124136802911853859273428429329791053123634682298318894509815860419001403470312541777619929997634090363370180998911118572190294593079543656608562057575222391356549038547504123987874068972437160675509749618853023613023843065583084043300446596656658161822014962494236064136696533815575782699559028543581959465857525387410840746226787300178813487131332214479697953317807396110182268362428010102333936804054976615312177878780378114400269323876525847854058295744008351125892479742353952878054745611822734538841639514601551354415662514793132016940438978446938743673720565740278082509226628409892113182576296835753584742250969817877362046809691934468032566642150169039750194424158519404707270897993611540919122747986347871319270892698709324034434404871239406218448468373792435029939840577936257894321853308393905845104297248470624027421474601762224068161811821369750243907727365294929531202706138418053566062509113159873867502458144540023446684850611652206901735541042236226167965500698898408018636009269657791186842722823060661128122794134590100946621356692523025628832967759988775050472624138716289588741152263785295858133209448526806760146499491766280700407522530493084158950490122229627793215122503274463319866498185747774766629499194196163710506236197758926715030154618598132352768483945732804615987106326301573096907065985398098232588885791732842557208110729855044044686178043429864606503090824089377370690145818353525372497416621993678751658899873963834690962934752888070472537812245850866736879468286650986907597066509824349275522663607695361992762312305949073846588271393270476701862634761793473583559139905736641395254913512199907774594769625348672957658409928405444953460209255040544881662835647742102111053924844772019760021711463293700498193603637176296118624182078445775615166169883629432238501199179646230340204345963786738715665728678134229021548667126228518785683534305510311978676647094305195203288177962841011789895820214201411895813661252147523498206384214078033341271433495214923897672170587040210103175056991754452812819238765917810601490935745333086778730014194239571525694889123586671334083208981754266834907867909308336495741257821822301232474452787656548101280980692076631325212487083445373202157232992962505997790485793478928142040312745187831463909012359828286857359448916401418969880292322152570497550889176384062602664637388121031754435032137528164896968260963740814267842150729992821426340048943357267090159071430089442253045707099998907906746419820126152795091330119795168900945119299309033907287785060703620677146202334398099518252960206994470362111596338313403912494885071088927810885805988171791470165098292939945204234802640053689775831888115602520321836852032178011086087824306470499274598205808348001003408804847503162598165411065674367038331957935874423202072076253290344899612230730286461679033734925353867920120020664503434313822555694046017343900143068666621815711488616852675224246679604600566839975532866734451098176644315614455492716969426843654404245557581843122755934182801806419921501516852753944537400227383991844368658363614691641773176413040686200430343558533031877399352791944262235511080890503092152717019366173389140230591328033173911139638334675226390574372244279655589271666034673239713279789156303258301912584332688251556910808646609303516797526657231084065021095507019107559635788092894227313846403591571245237852910792741732361825203607667224967289018450865778519472525507516039066245085274149078161821695450709723613728025509141246391664265936494024658719768488649202208778957573531325660820749028380879253684180052336053493176957958651562377381204315154696553715806247962970666757259377192395453769122847895876594360384290996603204959930021812838199177257769283523391829908783747465670955418572571627250185445289069893017725091952981327086530545099492367079635270158350143763570839550533260307722657525645859997159638605514086149149624541420399049794681080922429616766780784963334186133737189039287628161551873505965900831521217331086657218808528958822678797177240392902358649930513119009555629375424858727781937449302879430668874076681742145300322452828435823335714212841393676912671089678562786392253733633018690227040527448297307074116954086918253571812364242652204213703776626881149490343468944011815394050415389740687798989517646404753432843024483374178018108589742921217621890985997019570390588061222565564331710845315206612571450403981102711757040555892407405425985091762929905978132210447710287436633183509452387064898782750920571236340560478087498672901196126579433689526399838442609853777921741688949734195947783187466805949725883475868691127380447954620536400324818915099858124009020580235453690958600316364523928255338672103902922065479627649297466582811323217928040563183484457363036489411193078430467626260557712645144869840953078969657044970968965942535998794275548696356406798595648070361469904286931816538119612412542117595154989426973314093980180413586252555326063593792482562390865524718287498919002137434595630942701063628272043214268580768288769169094048648509378728617915315600002179691142141758488731499544245637387527386046653687215805365926313592385336179335239769993414322646973020726394875540559882317879567678637822090893633861794168820222282509877021333387507636012986304046171884994026528648790577388275500926654426267197135256594669109950815234243582631681559281150316377342784016231183868556718858728743905228898598944891216843519334894181789107320883074221636092515093197890136304786160016946913250537731758617117685280073202374204042084167938042352197432904853878589519048830721081434236701152649487647383990646245804361444597841015912706959585075056997133699317271794444218276595179515272344578821477858142237832800658952319005923772432375012674229465070679494254003341819654271691821220538346124083032893239243599411538519939336000132012605287264517739611601993104084164460069868862686371233893691365303630445181066505239583653024479662984435553115816765577257011372644514938215605216811143839425181797021238706439484349714466319229403351249602927619546143170772993881462724903362969148382887268343477951881939437991004972464021545542268558327297719739535054099081977897629823885619156710375041471161173802494297664754285831964976084342529284735946477119516134047242943588468108818813644583172659321999093917357708314926313684703026547120026998810682788636317537829819591281251819022675185376695410398352801318739535540434899897530177582916535623396226295906590974504785212301071577115135292937400731260023297699148257761275349133127448530237551862774324213077951293717810038336681413813830552720548871408939183628685572722540623731262206639990790032461763378313593978985246392336886423038176939555288807518425434532202895621831672401530174639450837750935013599355221724016358265996863547843420960953539443630496398471623764151105886731351954358857055221730085331426304557128654704830921508372401088361329128235259368733761457452414862910232104357899537995684051053265403268071032772026741952120722495350865896407488722209123509754688289486423706350968271092848479312351112574570285589914975341975874962468702094948988788507284828521386503436278886508677780987989691527254730913500540895876105316430246658006136234209979861800555303286537597826075122950704863157114400638992822478541127990357990108021987030081731667231445139612271698892562182770739988064717214450535874523354204587879792821957191812727214022645048314174095164254117684115608264225104193523173911634555743079529286872611020668774306756511600570361678582621368391678747376724007031994763842053478532186689670042987452930177070535496901472568769677494815434189954538038314270257428204517064871201516472183188267939199732936932956045697033612880484568403504665399128511861613790225256543345994054727060772775774377806207917345925574687547736493441456598385490087535415770207635618738947551879777630150404720663200132409482843626906129727465159607065953800855337951633213607892545631650840235318909481760570685385883588048769887201856368002351336230292676908287862217181500540284456787281432992540916372317669560174486288309742403619706146350476505558017655152803791031309541955863421304143539297365079231022942483859138417130990384458908767290713814962786030754302899709944901987395020005179944525483854266343619738595515947622181952604356503427801021141062384595423788910450684884097900383401214476148447027119306665058889148123706096131122601237093880990971032577557628201272939935418098298532632285994260564157619604879448848336380239434901678998532757235454569148674532004633055193221204649540117084153366447522066968153811597763457382642119190354118123542632691373092573662074107300048171071902693873845433333781039496494122367863812224668252249440972166277813412304197516350526906080655056220581238885056897504486123158567832096706873572631476298916047498895937138379756664486114483749785494680445703588611032069579401523604586326375302706693878694453467059342852391879382899166502687722970820550308784571208024052865505626147380463519087327858052532647131111679128748499770457585047274743696904453011700137222999971465225837812874487854332565634965429044404573286657030826581291592461508015520597104358566960235044353063361732039020411826393535539837948064116854304965614911665138004735251976645338538871006114234882563296173328778813080946801421195113290695240037042746234766974511983750444884735736390288778557119335450706707612847102407011664489250341780817903446872415729149493252696141707341702638931238657938702014303465363028442678188525328745151482999151297301719342110370158998514200893407026228321679665093360051895416419265475496275316333894722028715117832685842467291634865035665549599071392161717507676418122365135093565898404797422681531597754929971563412514346331600649563535846174360756178703343160320376929580255001682623006093380991279503729728008971967874968267079184450725233452054361492593576254782647472730827727877064654407529738229408697577416609384952591059584797121285644126480367604632447964521944759107142993754615826368509413462334138132140428991394721138562530328096397995101671386433132575769823877058731943557185561335446976206477271943171333424381849453767044989424922639831296453491905615071441728598121829716474403536683492957118220970280637096125947027632504761665273492696447935928607099799329404630290705479061251202651075497474634217782216737951002170335643859569445319982534186214891269416845193274347376224937483616429642473564130454486573789829284881478407287743481646563812436712331928947400230391141990974269452482276995589448435433096396358667037839204955839421567759884865375655005481355996725300628865957174925963372868713147431499286680604330552607598474374435293299757351809113932344872003349957230529866459810354128196469396365807275235561587203168552901591720872527012764683629575731031011973024348116291802768989754937917363656864851937043383432924804254618320161786264088891080429356610683087299836043056858314478176255434332506092343690764674978299790721895105604013935813674217986860193338538278721832858601691330905529943734161187769090229457612698670808971796229487232923440331078034924359523251856513955566836822879983164651045391798168397157727857995829566557948278569380627330162657478407353884580374528984987184314185175865881156445738032824856382369358223024247658108325978911999842038035075740295681018656016279131724109398534430081906030278548773020306889328937736257813235047038150795328948815369622304497047429939789727042382051614698832070847716215353205192171147574794447335903570732329334213204259840700089413665812226390465398710582204656334505053538105629129391237814809980485324783296570071518844477591391526473089203879750894627354489864130938314243676856627088654552643514959607389536341350826857020309922725867295640316924179663279761824732998208271508695305936208147902359900865904815942287842787095642504041305756297374081096628755077453028615306432188722446912316463177310135666389000409912431041973328634803589837802130343768581831693386625470505556521094035806054945753818725318757559505559029565707542529941115553708041233702696840611286900266781986514940662716385570704850584298501393009281204747436592073680250604020642197772714799073187479838662282198041776949131493020809848062769153933028181394501050292245441461913056446841127415916583196210821418785389771498458425344536734455386966811601689862020777597143727784523099130342035731830743701414939271514410770705256112448586961863582796670247007989960998920858530305604156759518788293547392289537328958915618727817328964442271815434184458142641436519783539614914203353146757680960982046035140730317263109806985820297519099140600335856488325242616217069068802178315024867998267410042119760164573197733089315035984650802182811149679907385891155263353281455486596941218546700089228387639061193321480468747152053121262737990410982738115482742545229467198271051212713917618670175680398877852500191145498473774375003909266369358702452251416204518377479573964209797856120047677936690348983911150932629167097980865261907539313226358611590325849634496633996543932643605479668167778128187724820848434470370466689878630997741307771309997292302803203016406036886808129276856996210840847857619211275173351718513367350525744412787784098214001003626532338128972988937753693235300487224518112967233973297756227754460554888641871447399375193188315124345009286847195723923296826785995053859662178372704840731679594929928608695883631181472986926230806064551694781988686259504647516414764916502297794009680337244146015839180063639486792517082433572478383489738873346797240030452839508179449031877846186531053569100560610061062750582254921543101412034571929036388536779519711744939147137315736945272529090660012247358122584950467428717108079491819511764421892628679916950324356039374911620446172561286533582147503792246442945360389869117977939269907822898336129787146030534241267997912461998019769175425959836421542569670902753423009901035320722679549747457974901492447809658770926532803527395315820823109025537610726693104235186449565100781632241724043505602010863671415962803009347138022139294066030040009404824993560576927261433394009965987089900438662662052211037810748338026995681265683221433016936323409264181149710456750445212930645989475138469359543456571987019402782687988365575859553162303168117854631364564288909051427057324609180933673343968148406524237323096736474290745447321117562104261334959075233303817135878132528682913861275070293830677583726735005898075118311890213732722585861042507225203666729490197239889102749300784024527148122528839853209282987614448264236269434327523195958867247652292464434563214933168863857361950088903760646240771704392557795714483798112616383443891810530079721461133615553147809077243074173728742602481617574913213402691678692099617998096144942285857381092635143012192308075950122997881086800815084900257936546469337885556161684801582416052227772564889666022355489982407878756696721581766821393963862864667435921773048418107952217405819393049828102306806148818987662569231816662243141827412155844042391223019829315688307524479214466652488783468602062818887625494212707978122431683914880932590910953477526688766832395256709183177467481022444245613503575631551753996068151629842286985319751124252852593682119684560333553974495439202863156725552092589022785766719167851820003250476088584759477924324660808473542503439298763146810737072392986670808817272867453542660806997455012831387461036349519029663180354406548985016625912509278498998730579082088487073004937532497208530628666570320242154112664654658978623282934554469721062739020169249494498608469144793342292613744745721333548597431560268503552181133368654801808080665229192689269165103758225642381357120474206293955216627855203185684237866222826635284998184140031126417003363061032304856374275484835112577735919297842617626876932828275835154527625560442895550158946143885470738859541190297918052865357498085788206797261402319478432427727525341048892794427990576462971695647841503466809321919647862301851675047056151044315079956282036661502213690434844321455294690891703882531695340616576265371102679321888352462456199848543982581712880417440305263716945646655568353758592463017853489852245144225367331115870805897941455891889950084984369755640068886524248598740043283098548872431457745897963151555697712174405032462455297499368822225852315424483705556678887810740552336803556044050176452724123266416067081800278849378345469485897205550916847609714887414995196348197608574736256717872293685848781208643247390899861899119357466277441316116579054155381250471836894321803541729838180065988203386148333926224821786506983593783223204274942031333394973629801701487777241220281724406865903215531123144116205059011571984967838935284079812152265321645537163462309486638016749173416805704003393947132984609834742074157601552754262939010558264200662623896289259589734502941036742124644817507607553078512241973070411005432864340538647820890568480758011624346449558019425780332798702530785662645680647383763456725981488799710466345589392577517399231157165478350803778860472340626284141134291537269896216868108967313830483593222494913820199007407600525664845000874250832265856697163826976098773379436331886815142809654824435201622069288830803202935530314671568351917750005969591354294037202525781190872960738809942020543355081080474654039109193596893191040948856202420585838333603152554723518403179586495860164143747441193871367570821501837199428482899193160812542506880008479105451521890846292246457309013356922370032168617259331787394618088602147140806786570028257038424751009962772094188614167995258052491901045726548656587242653701019603534995680567176174807845378452795369364497167756611633028111615838628499511397595409561034848464805914777192127407576538234033100039511823446009502535807176030117258021548676854481355132430136192776337085091836785824069010196114035620894214635767240396351770591588564222525698594149897003562770681097916217554436526181642634276197878083107079650570788299048255588795047899931730356578512231184041328477286778790621588963983721909735939424502538495081263292646841271434356164976172389164086396940966510292794763085213739231460473245742320312012534479378878723287731994921468720057231615078759985189483542873157512147803150149537078147347262591215099775701555897506610653968636653351994291347485643341540527247440337220196646253947953579502168293619138806451638876970678813215875011750907501269680016971130486717565911502623579989876787944782459689291568748777563856916315651148097965841572788925419199447629034435485877609731569647025879594980036590232409047167797524477807943975711991010319020336102784664078602603765787249227288549533818307427123479402097058438170202571505569163787349781036053491497139993422341640064369057095028559302061767440854360324590033180816914008761328128679547264063342541751883995036922573768777831657431824850632829414210035096884627114103714582088773273238508466551648264431894324992927910062876110196221526777440186579849774310293821460871736880688773986354920495608742265344228903071500553667844526047838665158600138186408322287812331687452429714609109336988211413376092298612167135208793030109686172803586206139522236245699287958472487500403676075269895849370384254602323585623518838368865809879138584174875340164986658444903409629821897398394000818198631063421645593275595347144707176111071289707103162226311205138859210121788156820533746500920597281906257832519194378212632293052108079627014850487253161710295357147250616777505476716857478781934318092323232615959154620417502571466040118782137440336463562123046663786462357585162970691743251126057531059685441152984211877109188314922488778684597633606619922462447191871354289385068049369590033307368555727799370438839849319238629133742830780789359096214963209721671645267471165364510311696230892600105983156257325838510337525080969308919870006145939789403249377401127583815741963475047370913289315610784445750385164119201586740205244480046706712289054541314701182927813478470433703389339144642509465115647199740982853678251462799900008272093964343029834566960817030531402946993817655680772444169438546653009911912147551255545817741584576611787421248824376852319619637895647137712850828933858885326091484402977958179494138144563997774792731580116003480414963761478768185617691678990906110530200338552481440825386182073883939494489828654306319784063121185371298452132645545265701649200628207554326656697003070428310638811387806962735643695499927044429699313843301700569169780920043205081417145854351817937883204092712252215315736115755897373965178755842222488250366521057040837780588362314459703938929118606469585893718894776958912640031248350261811353297756465978001574206597339353308816902405518750066100332648575544607769602316464438649236013290033496419876739704473723764255034629320779445051099668917238716280391843041166799507583309174770349189540368360520707476172100489463711942471591446003957136081307459570519225777410576410285055596356846970025410888409303538813250410642587949387116811882613536733499626452917804137553346156391357844662228387917778432444479287386962984505563579498490988619402170604801023253951484068744259326883148970299344174032266265626507179612054616552950201984839780488905405216437983956369542192917058696644091082772236442094164414973520721538566180074613539867584930067521573412286185509815116118573851695705268358857986684882738528289158928201357084461302307552319926127353475280334024494417266891096312062107489904828060120101658817400705149605896293536789362721235936583579867782593067402306363334367777590291436220174808180503496300282943587072251848194645543331499012751317043959387144985317391809640459615150818980747166309539216918888242687621664503401166224796643469269762508222591980353216794018481110850372693208341037492627218655144993857949581407183010663348808953212647987881516454188186323560986702999036139823788571984901476108435057324523832525632928202139684034926912974523658295800738206779036541334661427657481240154032203114547083360740151483225623473336101828537449966180199871958502894322459330930821591612028882320059926675849342090664232841309956251224725473326652481468345587183794804930395659752314173683035266898637351902739040343237526495216702832878630299240404797205124131986915644124430304945502621808292385043057476772980848299515014184113250590197165052156140208427127983226283495252944730189086014723004435128412469476465710182588023764889465720968400657411042837221944215219093288180885451721187798366187967455231940443893679129253461238819601599070757974518797819444289433619294493105619185326689043634344208466507058603033234758896128603627480435841635682621016847190855480363311624117431092247541314556626247882868043387170201907015960225984569592811574868782018129306837881871521282608911491914005601294429341941511334113475086205899575687751051173479154865913854921525540660709914643209551669866273485091996658061853499638843438790997253207252704124917622093030118073882084191174204696236696298115634815213334686205439663364180117731423094377339185230950571254944808454259664564347716406563883152493984108995171391192796982557145266439809406071178009892488939209732238764940725361751919477220016800103700398517227979706011249024450601778455406845097203544720710527700240346207042250965558085420448731460895151972784557237430876896553538426290198204601625750232355805737819063703796490400997852569177700248830248713321119713314826729767557315076474332097276718468696319157121414149133764334637760436358221663233042061213981618081098009672255389634508326552848086457148040290045248176490767369399904067949635247417939531410811010440287433222855591479396134829231239647488084428761902548382367124349828203511361503428099962003455401686033277446944583536462760996842766755841085052283758570431143175002041763292049598134341569143345860193730543731945193188461209733248829401635380744453487773021841750441567291274101260166335096092030728635894095602003962563776623302512172077611870149135992359011367327774195534913663591355952084774157327670123974113521686400713679000668502582347687017681990697833157105212001829811327391844518657914060247001506372956648814784554877642806743932681516777488968600161370318207126702271433842959584397998737671069209124594144664037293094458624601225943411161166411717622402598105866957887870207949768229042808102894017347636625198500058022721054053603277565453070083083662568701344157964215385324646633266692841179317413742144444863029846711805823599464298881372906130308529662251902103262528844810722448869848864182771211180042422325305072404449130171069346722967380333046068470252858405004100703115754035077897438552122224895422063905713975558599423279335450458280040704573048030352578835053357357467742459782471659485443250652119142247389583190054530513594316285237872817707025233002927280239464204526339997057373732695260736687462095567151719001276096027488462384248959859748130459211004513821463704326696345614351743985150530341224796975564095872263865005177655481049231246970172450571054968160780916344444436619213385102812413889615299079303720355700491931422101941170048689851160645183372825300507993643929419301707459864469862629188255841111314220711618749491150100947769928286345893708452528378319216585477713015347915162224962784203276468171009152988721208168295144297911638158160465818963762567361363154750919419790055135810606853710351350899100858415822127744089260312667408559390983339852017201299164852265461498166977174015073105082650207460476551177914003609506409824843559757642098267144063158380977227344977094524924772013474151742032758300137902201039495805500370567482348067607965440626113353680458543940638532005529755463201654083904969710072868976968417405978740863968906505629708710107351506229317802198767198603302006224131063274569516055494700834585452794888816611610777178173693340880118199101777641634170819936365745447814031359454473902952603705335710889426785305215376537279147476280222560396637575635122496542794317930005983461800179554865624187811584250474048499944608176318785320308998790170541785643412230839186814742495359022728553122366610685709382042809089592658094126730565288313402223434408315164215527040629566415058530489877143541049893423431489861104583768044579697550950382471350275210897220268324265556825858836085312107385396751445674704763858635297421105119323504548422193985545994537598134334767960504312811346177681786570592308984723710984624652148747755683132305090575524198194372246001029002142970313387643825717061282965938004746403790524986462162123973310250510196907691699282979257342712252689475277400119421496603981786700697671856293747690128156836743397613398540511195188881609231504950942231335760694620967042270178163326005804134074968759666577651954549233179306536362861565496938382350409327852349497555918818340071443474498248520132108029319082083521757294236421063685099713567914586598646507452378894771469083097990964156052343281000308485660288461654544748045584239688583394723246427346778870144537147094927695201283215597252389303316784804699089319140414951947337627263323989338902977472312994627267834978728787403065485048652204912146209928727894516401861026660878840354291250492999850323534689477917084324908091450645384894131421226397432008274636117266241161588610334423875585790079511435728335903135574785674309797512729482503727448776087206594655778454490042993990744743721189764272651657690485290010018755253434259428249840355003534602456469214547873659274932186804178298725657579265575402805673714086106918489610591824408617109567411650237902194717617563304713562278750637498832382065476552940010741890618205402470787600448635126386524610761308342445492570229497692949840844642555450374083846619950666644463048894071387621302588285114029174569875008312399197042279537261702768492830220795018287763428135215246246467756836041539682972207729119180265169360637651319945401682735455328715088716047353045007982381841794228214211105717545659348436785406326674040257424191027550115693420575310025931006521485670641751763974071072166979488515630234228695392594894491019169201120903159239127720908494767261556336782016535595996688945140415538030921176880099248031831710050223601458085575970750508982682679892358956930913541698190231072156969457417456352767551037556407258603264131380591776402742558590201666451493589784435006901140408497638180916581064156523111368428469395936139320449349190672091885334336129455674715854227677046679220947499558833393578533098021094409394830737050780049981034876953102407736686034082607623869388736309754901272535403414217605677037087269152879640658773616742134711350355840129707811593933954809277538992373676302416363393512311247404174709833435761326152764700574244497927826350599526562923861856322219015779602927464077871594142271267571028532634129843053821114961680232250455913800077197342773818328746229280204161782854615421616842366813200826939278845489037917963706986817540255330468337643709984463007668511817215102761759901386978275939237514437609935238712156906442100700770814105064790716663487488497518112322992641160325045755007581859635292450778420907068246938213222606195420808581200811453948902586209903557800842990453099230204615509772710677695939491403169382161473949100309903945542160600263865670057270147474830803258801312255721445884511419172238650638761518322121053606359304201598006799246750780628089565718262881543721936168628245994196329226878059131278738358546556049131664435902366709372792629622323933588522802348512139427404862087292029629831613113852076703377065490603027699735212381128302870121280530343258620718470454494902267173328174479956529957060642888662985147162375018779748182752779607201072229885064255922330478954858198421411451280182480010667066797847100446722343400967869805411869083028037722927578501149528820793923475204967206601278233658599875196938444556088589481909567950788208301581099821444205977624496304352246992512070981122052364864647048892258685864770328136406164505119771962530884469195827361696752291407629264853613941340501326427682305421082868436625740660658336670557989954292547602812870218275527693849441327720543977079833574228826692329346573099002900267599140291743531877476822776589906837879404071803232237622916424034666842453678750605134292477361854543467037508090602573190201836982069466087666217753210418074937081111587661621370391279717558736048032716575636508681649776604931770665297360778275849987467755906239294914067711507149593958923511970681560585596184972567534917745746709558505503684156731282680163054590196317550976309441803226956856773567590487626027698737214367844722007995314985558268505544486492008734402504978084359866565128499264725657738895873237558886296659889959142908357566110911072751307856356699840402491900758097838005702216660182497251217105401121765117198441691034068228048200209489408375261896283411250446076239017657819646306845710584812466482888918644837331592875576769680735755624268771852222755794710148177683896402274145294468365572561284109733090590683977575296550491139112711239090595344870587796380206979776925382614201097892431992474277445174977600221771460979636949922249227678184255466080889475545104865725102527256218535556038045929857893195077538653988595048238124390784636848888779350420078609953925635096063921017155434929915118063064036121995633747070713469479429436452559721780638745365773829544412792771302864221542210911770319058272309800358810054851780697629963347132295621104331883696617487970111614932271988244757805286949542012442704566287476682387449731338637696237358892565879397865004567937558663141600718879989966233907348472159143298456465098703035840551196954334506411629599954940708063868436451687003542019146560786973309577197764709155355591719439237960669204486954792822827357763890940158616464144641418077148689021864475140154785627075924905009781505792445335762960570893592674186266049249139400932201239715436719490900035403894862575609574982066712779314865173917034039472076590396668876491904009161023213848431641322925860503406759273087004133345883991505678672601991299558223629703883800285256930514347742049776074649322314687689023377273993599319748832889805810826157733085867801890682747061199720163691517863775610731979333673187400053238310559845294439965631471012916305343928571214504409862350736444656949907627202404813053137355116828098575486409299660784568765206015632868661559724109038780390256829263506695744925696016979644728103876209106570424336950631842868711676652636857420704336975988462865471901022208014727730894972272567464160608735738697120790407307040862956075637210051559114833019892528067077147180649801637632305111160100876950262307574475766642711347516330940371470856865842539098681740813219937850985548577562853727715725196483532472267953871950694310279728023120673569670165291972350904715746619732099990708137968559604685244436957033870243922600485525419409564296473494976041435803507220915283337057014442390273897640254465080111836752934762979203313218473550537762131000746535451300851450296510495974527138568729538141648468494156638998351297282046996824789736908488902334621399101545855283768435121770514529891376474966207034162169686033889319538030505888671410286331561528307407937488314416331098969912282207234056508876934686280750478694474449035042296348942614481507506897728629318209247746629768785352418099780655275800936523006556127073958243535597604472881898159848264669945500624867923617471380531317745539739061470280103992042465056628335227477920506348219197352644414504672127356711961313299601952717630913699363209789936403431694269493609927537494445495545487763550739079010574480034310629313012311243363940234259662296160873508864260848881276575696109335321420960641477625327874449719449935795393373323170897544127983187687214394106083710102214993279766414714935828543365719837306275082674148234180481101971046076136861691971559557053699708947821592383992448926844050172389395211961108671935653632973279583976543555328230498070909458207324348766578139322713954033714870278809176546780803973297920972557913728437677129205906029087477127226616453921061759137446932608604701967062765850402009385459464073113014640453377381529235837004992212900077017118529371488470315107632341451161201018846353413316287074746562957042918920070770828302053251553400333967379049195465663648761584285907592258973263868743804495831079721860250029454436349045986577778802668028759274336267273902338851022517064057799561079821659393268228140544186160337014031044684663953031111576410696520527925730423913623263337054743461118502788382445819401889181068052357154787881093612940797910284816910996157717334490965129330103853679894551048385759899467640708084426297909631857428379506548815980025449285407661007492775602212134246436026704267779128740626270809390019216794131071393910930914021749985304397693452579996442357338608087704653336751111284259992480524886776700252854972847267338089149448085523513806272692608457078552174965237029892894225185582414690645412373221472304845338752201030450451551524072773913449795962713945124655983194618738273628844418998176227299677265192535954588266973846714642338761225950353203292258145770165766567569827938093594876223300639956393379969190410966547509350849311854297108205817135053466545330275395056008384834533661454794977270985693169843346613420487355639317657633848422882810264375691865666153927781377799226288050348607210935672492959462650397592767425909580193033132359004044912399825059864793088804011014310738360891047415089370039674876720445576337214971708243863899156216525798937066404757410903020893994990887193267466039121886359365055030874353667463103876925179519689402897187265503413889099113750024917718425714521784175835917800576284647487246610029952276971438196711351838372882648142833598347511302702914691758606903820009011227264898312749933463417267109902501398117694281576857747552820374873624384335130264715816013493579268491057575982811882677129356627192649912907788583146707945935923073904772622775039356483367200445465528259545177596065474938674158731430762722766520500163553989468833500934796144006823431525271492202164764390463122759354319367157418460087826680114804416434231609123210547203829471735862407815712402224452792462319364259869400728873527097579435062787560291571485517347668597217091815136092251678032267404750212590836396066438465335186078709140253138346745266781951555297775730574890809959392907717657921155384524423099648006766243743465710865458235042270431008046158956537718309552353669217156741034911538896095613339219032294852822456127491445907401781259173987529719587401882796785110447750233484283321677571675735985025563676341988523792340770948332895970421384077072961308993202266951486997860409323423557127948973528848792643881347089007862155037183827807979795344615780220245037013646139755344509222499868620293578326411936589612171435086739607092757139793550010052853890712147549715951850625105185711763504919273675872287509665386506782716997357518167703563525578677915007383858273622904506130891521845950443306975003817300911442904526259341598164199136931391551431082222260697791654461283055753446376374636300836220119215432426799959701175586673659369179439377187497878071499181534253094445658888855286896761599511313962638345312430812773661525954245825460122330026069686134974034542035389881866243821220533973589086574134854436089095669797643241935412109022838846321384464402821999408931869284954853943674732295007582774975789635163988922476662341491126616573046082962495555428803565657430311599410545236627388697777341091733671702097242809054511460117515081551012441595079956193795078935676657491554141202925768117498069348621687552011659479965820238694853634173054887122323758176926869248175586861319225308472962012955877908220333344996246447599604960719396116091559507538057547933651756223546654359500565387855216336222052872236573424104993306097006239780136638105720315963850709070480461083983592419851363564779126466494863019144970395636108488888439484154568167051089979165825924149019981825336903011911480406221637100016141730387180347074175433450042873155785274169742817657897737988125652937860065220799036681805165875144540106911688240381394631917537669774108338397295133372517431855577974305668266511479965155672160135903429794565143751331370312189168095976901080000766392333466239431621290989292684913128728178901219114351625344990739998258504459298005680733359360049611886398270953443128475681795203178792798814475853644303809705626504765217576447497315478395449912916476902369255237809464631733530399009875414937398945847856464985430162730470410683538627735283746448260363564039823146184405129920118881268658049962044104000213417877290814195030813242475671764904537022226290685930202574304521908367303489597182358906613573877122751912398380869253089679065902462414677372034462051740055199934386880310924025118126776388456956061772252355909623635698144338353103039547226205405209819426657641263794020991692205498008511291126147788017591081600905727193373198377716222889135274052506762889134818464458897697909090758141837364838685843010761545621183894182357805767718300520593669460284412170675728065476368402548461548230641383494159356561280912451687198622739933724351838233672382276839280236711794993648552147983978665825549277589064129540712520200311362186702606083089051808912501205895730640382363651361714655821146387178956528060521459800906585617262536331935877413550093556784347232029238648832045476037959811064430006234485813657651239873396754711711784550016948556527751143362945294017780982909527997509336739254700316606020752871514832717455553581780045040427466573117551354860634374831306395918762703374902421034548273523597852872559450624119084196075408320682795738603426552812830560372115411316910553790484205970640081044442817440708845086629451698619353986514619383716975331302813166128717898763026248596459715319784225474656791793697307026128014109854934180424947681358991444168166309886866416645419631117027627722002285164739208105185124319274244265104011011428524288407691421205378948890062100329603269568871456815854372198925970442856520756586123042049901103049724331783345286929030215266516056824474735482749440665238473955604435444189139903986620663909886102662021458036764897225143447499201881219082186363018378326984943926855686403174127560427858608388671416665630545997676879898501580454823117893908709739606188484991099703767105505225818943641024450232611137394365540925798793213346363075032389357843102698082291151380420890287703296185022217117825886203005686447326430668857456214458788828431303956181315235008822766387837016307686226905679575984649681115480346686480690896246183070498396182519194867604658013106357574406124396801008858269490180270374878030094059109916212354449332564610028119786744310289534848045534024045590339137028704148078852964832606569490878607949805659384229613600062079308305544019880924385975745918037848059718805828130205888037021002129626078406535259271786691022460950733565418008406054543779276823342427410375134809465196492810777639938610642456483054960994156009445963828383581933045265056280324042665127183088931118654518470841375810006287148823165426560916901591104120722153229785492913271985178649580049177609505257221685815006384390266569600139310238067615709551795169775039762041544610934431182532651599620038004483049064520081186008148283473232910270520569107029723636400727916913163531800321586983515655808100236994923102094924281990610644079752229837267266072248973753565399067148780696639945176094243569762122066046651231895429485499687267085180042855723303081723164462940858332863869893354384623923746652127543984427935237702193904787172603638097667658461838380151750915026578582804666354397486035727851866225748115391455181852789108726470372863974429000370927482949345122066815988636344389015993069261303759880443449231340041814342612898726983144835524167823307221837070335895129440431457176844259715085854177001410440200246431752516284436692129846406050381392742707395242604350585508663983602455499068833801271437799919579900242638293126286837026685240753585264257790256095308402892927038826606161939497100104958808584118635077548565995049274464821098223562796057810523332125485475557603680057923075014675786683055865991549845834418816564133637933390284594034083613459075914061601754053955308337456717244567405774619674017975195949899728778468213518876693835374073296329120747281488131996269445336934694589269029479383672930097075843631716014140071485022542826052985073212396637620885426660747231879258522194639133090747566811455226071732251793900394441072503174707181596268348643199453421716902437489074392108016793439950489283550646613386678889579790342983540109948550220685907301010224855395904497756955738167172228277364711758645905253715260732056302129465882698653403966414311996144697106242008909951575325670903453144970917979507362958819300384704076061190512982453130307615348214551573325273282021830687905307470693956600940585152937755684504852219861391549668918896009891030148141339674610720826147635582240887964631611945576807227015603617562665025162010927731939304204685437405364897372344127776604725219182605431994237392217256535633615462995871111813874377566602445498683457754530008633405652639644351252952560406530508687222096941752179723186951750245969840525265330490019361933420301279071583396211450595132347748803947691314730993649231875449215485480030998327563080475116561071322243415982281447577829414177699889389255470651987546374570501319737403033980228373877597346829044099032988474066585480385150394143356180709717245174202458051252006283717445698317174874169129369665450734791606983243010104490233412903618096142517314206460811619819165208086310814590590012045304022309262714852826710498481220342234797318845295328749808001006656954114232617963301223072187333177470616544405768551679783969523232758109473402712249488011111042318503933747205473493430911944781035165594781961735650241130657325810111745939701419786639816451572069125218130079952900421856309810996397035694700735360215586170872924687268967757145601494505209923396608439891592123598391277425753309283704524919766114423028350592146271662970399927905446148019275628154506966697302230136857812689417666851281269963342215903527097940253160938699983743992010853434187447686190076264452907427158313545673794904788990802544626581925619028941376897495506356919332778675992215960160541517106978868535577131567252156981357557856920642461587052102729015320265998367581302051340124581459009381600116910657342739992457191739966572122323751876950448151922719334054010617953468094164796079412114209416393515290582191139302343360619688795765400148764561703765900894856527964494434874820395211742977342622387872876620835069713838829873473193730674364254686745181702694924111559023929378316382328395027445195479430820274667010277228116784119433949872006257427040578304866084939208975091492543238273247549933955265399376969745835096563534247056041127270028796803092729207417014127888000715603382008300938930568396810456287172969673030670325159672468406558044745782925420034471347785741394155055326048451789953284657402138786784479111805123455711548516728565030494610073096565749693286978602162115082408441032198607543742740643829170869542574338214332628466258969051350046668451282033959769075106834242557843139362919994379704623605009328644480711133445593325669431488003001177906484804735038475003404953158007240133820690211780452909367884231664123844396493560607028720479715526437156677835408593068246316436348360365946512381390501559647521313775910481994072682282531181257429371632370536074843140315818647180349354458277855146626917156063730049648886711512341470021911454335853315368911135361020746508900121407726159742898141964099734411159720072858709772185484039380273099720335760562717901747312162946904359601280388079885869075315508890358695451154399706363251357306742328795899575110918307371045863953916460420796976186516401889026836604273409292015330669781833842175723484979361336931828768802432113484932444532870619459530785747578740951102514618408600127954593176421660118619126282952027868256348182638014894659628499806650311506799780101374327983901276738369212158898674895448619732273782360765306229835518215529495483932545017298147938685713672628645054892661506973540976624621765359558416652709179203443530086896544750180915548680461867876897280434990695427499430598186464401664083003828766398194398588344966247850150650259515685571784941230963409820952755567139380193048639675304650021531511766538001148041600360865338575988420705841493096735291356761829797716058526260765186486579194421417542112360241195085897220561717692106788505562643312386941850359645304463901516670661721346606716816324414190716767871491091320860979820086601834245268693172317571930110695494545563607254834023104140509920316604446294922280692895422663794273442099493823560652765661659274079469946260037441289612411555422612015295668033215366550011173576233727605016179654148029079289467503589665614758906191213213296092742125634841934954304400360833589668697918976135126771525152775250959462368903357555708024966115120312307070784023722288668459682473256181950388841046891838569095909893403417641071517462482815868079375439361714149146963307696385061689075442753620070113758186164813933444237956151205776205841321430946612898776219988166551648640379371071521228571084909472319248322102215085911910474843607777223230721747110431797100722056673746986294675875827381272993716909878241234449359092779732535940108344829856981046478111734835349560472985126845894351274109456302590809035603283009717269352224336393499927810216691616216725639901844585415739141183875425714265706866223059951977339338159574861952986870729512808655724331150388080714970268305656239007535047998394719359382452792481066091284686962293486464383771247060267350128663437174837308181719408249911221882517209687244074797312830778413471623978289658660668528448272401470964583698513780072000933057977317634049260423664088720330128963101270873436815268110610811267759178137841669374200615138734712401761444195764607020436872174674336970882840779745139671590636272791579179317242367896490760612024802779622751643981554430962055350454971060723594205057107619818863970937513202842207075340399884122673567047418375671672789118089720379339843004839999754760455482455373226694190629512539189880777480754744215791346235051435180825392523748722441394055107576834848725899227352132256363411804989904831572136654547654687971905235786280471751709362634879425918510502663766387859609941363978176451948469117386328220026946945726134545579051455036757763095046503329706914696598982856722042670701181074165756176224969770404959071353733307477767226528720314430823972149149086711040975524159332952874557085582373748371120236289756461852996678957165825678040511309149672823588794796831761299495051922017945415430630016510968746684240489501394924075036163771051842493577593914878882616800506309592099538094893750183586666463169255877109164445141297020331674969389943600985750036192422430229945368327711695322505339071403133082136229492773302655143422528728377507326144575535461544637210142877790487329548482355211568938008470880805493941367788360509630557625291558649643446518851791163795607890640702738194436077047129984475299127541180935451195851728921373937539462057395788577447663849568440495752649665987227297296065589358891267652053490911465260439275810687230431458968759672919981803835423328120658406598798337655102998044042108808116640912354900348115569902738242143032765830013529909977723668237488687677885021945998643500035442099222059892379534272221481509498840790760617543801657241456141882517968705099860491970552734311889884420377860014790640469209636180526706401417838484684305761546560456376799248151248459173272243548500696814666515866599151821310083445992421730208927571473487886624040816453974104605502236168418272184938372089188237413891160568900571058266734377136906778783075638079388801793199912222044999625015494301883260022592436413826563664111361625903279183535952035767409697016607947124485876249436494932655468842380325894712836292185517914427429972641304535949080903619272218683890626389053570053342550782875652886779123092136872555224381716118682790414413203890652901833829710059181755587884239422603492468751376280889685255357825300241538315164633352221718934597160485392884232442509580066658602859854921877246908879329084277839932344183399732063761522407765188840670326753017771881373603100503602533224166253704644185987298478446096843181724418239502883815642091055077487173626038700495940008991969428065813185897048442400122273522611274451578388691874240609085172576516721624344157030611418455263106177523612247769364733488016474041110072454556449364277995261507680967541264312279230183464610011950073106859542377397993098559893417420886528696202417167716715027799854193835394642896158073041781152737624495131456387780753899153848968315114045135044067203036404412291110678897433099280317546638834217590876743159065341016571946588785518068914437554481776807384069217144600123215142958779707513551199981022134628157425654208010426854063783062901206631080397313838700044206784123489006346480515531247301962820836543240960485018878621835829962489995532895317914550641158700295834606686340720057552817420225580796619658938187439400148126995923406131655279313044303463429754380208467819087800277358305472367764234653965043259006238738599504820821006959606179969511494845269091985866683276041120520198288472517743310970787551441955612978518099647836878359332045694961764376589713546084006624485146589176957456874575896768893227501732894825021632230472055250708654444968706888701962229979699867274618766253572084998199271802340190319475801981560625690336473649068094952586880286241390925539093635340890975387921583985239346319705417070188595309537944359354317685933741389089269603493768000245637281747371613013430449161362535545892152652499478549856518963698293642566933567481655323440140112297583341310507577963958356145554727233169243893694771433534613575071504689731145272870442373541904279078017463711884941510677444344518830310332299845690044359860932558013257576436542882593332771931915634749001177949691914082439861903392525564333862641275436047118709404623290281538400725793888082061411623269539498992272628817663375769051411830312559616429906685441985501411810799962073250939146136789134022234559096066239239194502930372158243860030952252154095012942027836837188227776449045335918960329149391970816047253872009379742299688171636283056143168931786311405965601402272743380528467262683796686509946082757757892244761780628387606839640310122282135674976202667822892289143671528005872386418218512293940676678028550308072087688033722472944269039932724039694487267982419281777648080917897029405623006906574845948766721047980938003578994492645077710097598449519214418374068385559252458620871765604419779122171310438192768820118962818387270743789407526227706018734481451918049630962472513006657183578359571514582285689823848807157514665308344282878089093601470993690520021449855582986550955623280096020384245809271895896016164175551259133678503999098800991774148183918865041438194454881276424566175922981308491164256601366582626199029953256145811283978412128973598336348470680842051384581172626425423019183299918949733698032843021634533588581414663282017002683546236516401627000381457921572403524228039778164389510525960551716108482985582938320826225996171205731923708258180937614346562189792931118382514205882527105356080689831436094320323154587065333674128956654505647918051658608461978965051215209544248260565301611575036429402249663447185232639289075243616797670235285106485556379090457776127599141873166028690475463058140081946696027332906888334493890911147189594945226889661319534199849311171379279887620484290809519065051681933646199467257424712649800718508544553623091198991460533608182347819361454954834954485699238162325150419498680198058235600313023506323541411101544707910761682711424923350762876858417272936657425980118265229651100450937785873977795327709650337639162622116992518255103832281685381516369451849490198866783741386396018851829926140653689978169973512586792878033414872354212591303922228407882234367908621163227708802449570885624518693631414810304117668740008482703158303334193211231075029236939549122343208041756743691639351496374841261970772344376757461237188810194135088280085754226953455155786283206253672651701751777871325353251594026392752112182490867942389183835118559271532265566004083829671185850438876388907768678577431123560081103052640257626281067935283290808713147942753679404997957976008947342313870485185594173786500364867677672837214926102487066537617959944276724390609975325387374208983917506473687699225801976822616212583320828519372786422196295790087996628014762334579468370523173214904884982225655530728430185637994215630083143722233583133998181493265591736951911739593523356628827922622536881855311533143004381759817797616128334147069347622112857314217682287227616481889658525644268663496217482357581639962030081416040787984123440602740112080594824991825559327210267111133091805350286417339512519042877433041935482744643249915452463192019188911962805189992873831706372667454144496429658627269431622637565849201575066143064143655546475609139937571777797607238518602353232751315069212794611051212961881828305754941043414173456162228051022832387352575308072791235987950226447151841664235687555244568826358880507191648838978424360393437678040708174571415106848004979138835604441400752966217683306447892804506266216996889301212106285552670198110179070023858648955017393580540878768282354368416714359527833927444593379219802198034286609173451521875304309683865572516272025246362909029234169999120894763365136934775432544366061292496655202348788074163524811701534538899631871713831427650806168734336717745841453961344605560230899577426581211311346740084020652933693477353157033929248610786983821093813654845022679291065140659961975101837968492280681550264851619604068561373380068789844639914253802985835750081977163784342966056051771272339042862382717951803183946903110963368094306419258399324182543505266045120615218051062597406561959349600437356932261907065563758334590562815781299480913823005881310584186857548395489187483157389875065694764669213819353740977526373968189657929520715668659217613804859966519011427257538201122714711857917891286509378628265757424241038151903882505211111135273889897936474063202780003239355438670484915103932781883011902964397652081313796942622901645618131894206087207324227234377668399167944958756922666047598659210383499102626262752991956813286355552566444766369442142845757417700880563282091286149630942087868162307123684359239353535026815407391997130867013572484614979340032603254662986138521610407911457529218123010587382189874926898214342669270467023642300901669776792420955593747866662722533153661532424618649011873345721923745236391716197325668640366766680392837550366878740339878663946422007964495724027130313951851810257123326486037083730002582794537338524344416047303127766885032288557211303802467979189098018641108917630011474426754790788881588359935762779305179195185996171093846130060567825288932654840301956258197711704813697793190961923663520132717235684749872353602578846304923232643979976349877884845477317556947780773914739230586302697817831685587902964887191100072204197637012191231234159065476974176848560010957460486612742045713046807630326038099948084250998167561535607166272562168213757400724610273957419574517091080311565312223232658513016064033539751196762329112334432637055644804847295843589249364490869173999272140920819231105689820026057819911793539537371185382931941195601181125288331587438604978494482078349272849372365001380058798722024001273240653335481318833322520151635017433966995349271563502231501644803864984031001316690975661199894035192440651902605179748482650115404583848181714768581696334540345753630032334967652198519418508863532203306626795464878063264045510950641826304054243708879950613033459013291946140835356537378618837658250478594372515667322202004114913593130401968561271061268091887171763649063835352919847836283197250802072507839401845421206411489085739184768625120939800736016808693439847979336409390015313811407508760753896980824456594368429437264936752781628622846241729718191943652695506412617647729182295937672473417178507136920380288281965157002306990000051466969609300522758343229964514549596434095016866238053228010934540460064068577346970673822352643002932864860610557001817739042932545643478789204199903048133109034700374722230862035748914623437063481413157094392902426110515307065160985641364541743515911399890287284373124921443873829904412230261058234422398768443025421443210670036755697819542366692703558632792487788773277782141249235304703798967162565224060391236972787275161908524683271232129216739062926409928903633828355528311835352606524670308973027579450079096440622051421373661688962370899694633570111136336827769747824709272272547779917183472942349191327951180584163852343802756047656235361269476488764608940543896700437624382607198565481221957219740351268672128592361411483794049124970544848224083199353694322605970471148644666031253422843947057153742343264152367474630513572026105196896211259051350808433853592409125231166647634737429838970968299865013807836443308950445318503165963169522884851747760472520264501010578830614634918063391316479035080151245680231792233811730995445882032628966314302400968916152867196585471000243276443992257504078333558469006409069029711146623304757837680428049469022781711062856715121945082255575826318169363615824108770995204299136688871115972032867062070268317190435041788676452731662930593802427508648002482919779943696529512872806389887165469239904287319370090906956888719120112104481922817230268066587441010117972746831074873384915069838189830364961080451211819694043157872776347847867858609459432006103788341720735528237934195676234803540091069592080429429576465919805031135266147726800526427349834033687714166302014137364778698945273664325935428769954549077990769559323595996727842630199020557987028812207500668984753222082345264571667056612876769654906492453915273897631289978129121884585451068390280341747693849802122083898790359798926933004710173140789948534170048210138907410783002070906427581222276099483510693082737214443577211122998755018892778729322514144437680707823003830763375891984136720954847925881981914491108816304548927205304001655322349179064999128110615945921554813396839241183632644051408003092151172517748722843241397078055638464599035362131500767288760445824399301009072826639891558814297971752317269641952009539379699126066091405172821797327114765923262857098059866295319428023994153551299235303994210994213006647517413808689706285711997725897717996812205369647790864954553454752672817629795913892061816523597518501600098245306724108105625115253708978198872107221605246139099761841294762749740731954269052820702979998636501812033170977488290966008853382679363706981994955970098801972559446374766765563119405915138977711365886887901379916546013460820736762269114255330939149598055356098042626490615280504039599300822267846260855681066344524576660979487258907303419025077974618468995022055636337336463023244022228785130095985204315386951758381385917437504760361550404227359693400216593709151168232416197038754926494112039395214776184918784017921557200808289974681977949939638936091640034666203491410271807737561262827409018675175782932040042818891193940368365382142109736169491147817351493635880416439383759231465177270330176191933310366942747571992094950005914754869580943496287670927088127379923143364373134107977483253158525132139073832732606991573781603509863411640213537711460968046989533063146287714415116759243137891274360756955389462522934996586340627285097043228788521339619196659873948462621906981180918162842981369802422507251881402515428022128834381168202018896883482417124113787334647454179922101104561614016338143086834957752178358037076171402879707867673754426024932012791045132544152908445059371693529824795809337204553370985063744023566226724149633147077614971252518216965048800787303718205737938369847656569076060615587631199798950581073615202674938085886470647348872597431864080867227006759095791056307608230689212975977821657506992954042602355367885734739752213199440892366186906092077765559177993197785022443518145472018916645296902825556092299495092018278079098403029150663397862463848854933505987232093076007932811630987177399523465353091351735991071119451914850589012519605679565100633018845294961551032773745967726943919917520647854800751423149118717867558613766455550020426715782345188688105642808545826268571182736673080196305866384466284841212511119395226323973880551698197288791296220510326197400821579954094883421961556924100683180269344601947746540660259714227301391698092752856501710872323723056873102960593936862321411932501323184832559980111021110368887386477064017088122331573138275581993642417857695410652478926730941460003352349750062033404667837045861900186017130358183538093134397943455216343651743987129175806554533270076278405924027085413641302925693209734825407297914101620032658638400486819045582700814781559461992129048602922337125687388054155880425409205158887471016983425980193251173563878142234799865925887733210120348045263165457511355660208913761124486022032477394045077493531385644789197841424371773210773651585727375316692842043009377884822371155821029059609717879054366677041042209987771579356071766985937122480203382071421138693657304805157065848945866100417003778526168139330687574111157662730072253867883450732366295880745584241452791225266622403027196369902891277820412708627133516435840741012088529007869491826209868648855136000584006724121939183399031468552683831621167833109161341769783981361294157470386174900335638953193569139739525206397611200824684290679919611318583535055619681120932863024149790587346534294706030603178464850016444921053458121552438007271465201746073364099779670102096993997636823839351108438948267473758423355667880177581830562676738232521060223013756576990717082457693282290336880702753455660913397783813914512901867379341837414730102436192797761139758244306434726845965492565495793832685234339556661215010030039422844296640716088604913277318469984104947038603443164196613879527329915792159923450836413880958972351337268710318356985146686147091895645041254207300125645681997978943190383271606141509304867394317705713487729876404784193587411959440233646248335422285836007556110814155043289170451155819968814207001343441502313957393607324185176131588872602930973864535309341365264726047413059537269590104866662388661825762444344044081461781861688919246635049127449943956081199810399717938369110381320616993097976570351763285724116355271764534518919424925363690613639415681812980949169327331825603322462414379142257333526726946782401778179299730641719497710328919999718057118372470045253920769371797561851774816849152944182431879774057040231629423336402904541948037163621138268754857882513320846775315371474777081022198568216910948092063180587294217645505183961647847530134987018021467647310903719024369682561762238854142457418395047244582298234482081792531138303636926666821798889698792994480213669396713689547319177163397168502119051272821837512002412305592109557451216431673052755938246493997019366876268156243572137119248007259392274797463315625472839205788908691730030825628206030426082665083682190448268910092700161923268111524999470407297188414247199240605011065406290898244406171950442325438753000459431659290809478004753742621901607364728360465683718371806503709834246251657442853869841295062257883979975384561185312985259474712099113393516016295290254191271255277713504582390274871707807553134702063561425694694454634046047151128284833480641750973306443453130832712832131758637659752419420590716312806532537833264177494442110031404320680539892894209104463747919162101577668794849173376253138731217504321192140538215295251493094012922885695472800853495695533691714429639866059941976409210562564862798436469259412403746016046496561822886943777004411864344521949423031808593450742747642495392921124991686344843180054722034851303771918281290891796550634229328678568660081117864305711770289290732485456757187893195623397300761173204277466853048742544138217873066355492763136331011357017922379104283407001696614755253065901776931774711055841753022756302568931455136418758141032948532107042002242132885236587390530527221608787061770933252392225425358286478432861623908131037568202664648005742548069915921930969624552453650556055865729244285621126091964736522282021149331718547250257347910485304449694106476210863860343146724980929576452409372954647860196016058343796459402859746005389454454812297864503189934807730310780243734758452419414278768206988847841697448267824113652566534634569326302449205528626972950856803352805956988806188075136730898169664985382790663981025547790984043012816469325224719548641264280399920334003707660101886742239033587520098513513305561593919927360728677356280549693047772512481822337890760029789898511383636083088916561871165702523815132223813103456762341966991436131996842245185103390933683812953235032453162953358081398681213778431792973164063750378844656753085352372533895495221343320509026170554000273861630049467279045512556000864846680418870053963520121744746400447538000203678267809215082351755748577622603303276770400561431236392561856385625910844557608782716865185652819431440595214379773843045834680982390317327393168489490487268136170365949867731638374369217678131138915549223948546708781586815942558470006151248257111100546462864097669695631876627837966207405320578743996466916886872439402427700443541147971623110498017297637277578500578289126893659080440721631875698966722614344649312164547164031974548277621499556042741547001520089355263133284807061490029043772954108822397836054050311389864702042613759540010930875528929275619310422038696772003590558208347283087424423516486224247364588199263740351524554780179918605159704455720658471599745766189597452371379548594058014669640329109515680275320225631603220755347253335616125865963089225183978379303179077013482454209253565446128329827142024312310157901536026981829168444383721784968280118548996860266907420473308044867721874215674515286552584503947078601186133739059595840782335324562454796939476465271943242492128361050638365651681600268372655113438892481621686613265407921827139644647290587179006777566371473540010247393743103434062456822636756663592683769953322828997806313543702829830737233958964937519035548180072073438309767924783462849872490725842987209796094806308996513180076833949017467398024297414650923653101602556888761551839897108069317259093248654599366571723952636390556171106713085337614097390112329695864912442310587665831140618073551198317235072581834762481655410026236538378454822791965431891933058031676907346132772414410559854140231859872248421315319266243719475847031136369971972479169721207631625514151977384544421988447728258165039335911121163876398362891660868091633988161420131759708762738437449527602751844422303211835420818570183809143263879751794782937147322549070815676422908180073829808193026722480725965884964618974656840775805939802737383560433467551123456250898162212644142959940171999506004115326265022648657461172621567782016584488586964851733882903065413104587983236351713188981238049377774619369141636720794903594676019284324442693461440836784991351725232304504640086135129939124480347523908939876413500053451829660106474253733203896884371363160967502539258043348028793025887371032046091814387306957146098308220442823892711644219751547400171281622602701239690532733940143235068266791540653131641364420876093435598052306932639075347244421455709769285594068189636878878980792484802277425211941986965964251843364126623505318181691711600266099028096643245706006391779946388622679133050179652195203495970167271930104357291392442066395507759794904771440377372365438734451882567702246982789638129217604401126469960725126657482520503875334649255442854293148243428773213220897241022251426519355105665268815437466319352556953797198402659870575119052278440610547517499966923873334802593948240666101463123370736400428213143971871219140910345417802930601314011402483938247416746582087990927273892340878621871587153390735645111984571799279773614173009079858397296250153533893931049723034963780079688414021872803211218886929395919398339140243594752813085570157160205905932194687949162427800589888914509618179872384554922167775563065014799481556975251428773404822000303540445377772372490599806859544042222756113988558163140981483428582550942917839613010443028440641659791305996180324235811683658205737979569338963575127112328679404296021263229278776422374258494660253635672314801808303063662319429702660063794908686933615455917470468729237822045085559332879270156710415364361812411475560211778845511278145086799667983327926807209313396230893352709436303812986354463122046402917213743622055156067294977829885049446421912387728430268555228811814963515579919707766833129764700044257729644745263477661379367519484242676409190353425014901153341509093454486371143533399690380708139830646118351832751769914320880304169701936731599936717860454549635819755499876475433218494515432434089108512573259643412134954968204836179780890657095578430137987997396640228875985698074604587213237333476727544354951773304007047957413810824740695625164924958676150628544769302085631824929504916713584112919961477662088170095454586319651784802061189475995485120637928789067327083555573621432735632651387345434243693223013565335537399119812275570804507577700845217619531055483210039865132089635885373939940935226746146105774584892785433873355191696802559503841026749792027175666040913748359137803434455273498974432995771276922562658584179260000304217205444103063128786677192084067877654188575639206041355121506767214916489840285113281143733346465080766577471738160859176006271301540515535041238383032886688995144277796759139095172575762017316085178782848370649402105185348619314763070814108754945803113863228278629831495494392594873886896072282568792092101223687105475086213258355335453162800554093161382629986927726280190641959064618844032164904963819191923074657375700908405239955456187179349497684020778514035042516717411574771881967650159064553113305755358417695162669590795913433615547089889033328406150131283970000078396400626356732337589246693085684757449386662753679729988750453285642339298165782795310419849658417820178815089121379614891968299542769567935786074227963526318193812561706267581364424458045972127643824237969978862453043740895801561045399623757756728961946070294797415250678471009458506555206515443141577679058585815237753691503802414351862790030725270276990620220119806208502777359561142439536350545954988689495760045760892203735328141765276804062742004860226780181478763486955802351665496783445706796018745811614618373134206924168772674466794014679602891235819037897388024377577137159012609687392555452163699719056263922008982940688639519094488911958037127542875447238650253951363430735409437890022677893453244279291933472916204645939890251070595016233726719211153969969008262778677458948070384407580085673392806230198931430299781035262938900990377718245241678905159464554136354284086651886048190622827655269288642124388860323385390389160919510536446434676971610852930768125026637160328017913699739782523541930018753295938631778305064811857988211683343156935783071995870635969606126138446483103648832376627019732926611034952793197183723651624991488911696111835119241693615447780517942239122175660644640028320891713130756485848397360957139014312537777443528605985951953517959575419348518258544035061590628391456636810166334689371103946153751593015143497399634241086616308759998386114864096270913926194477094380442262528344861336296908719703490784694433764486500489379929536640874285524859353194329558151482652504852005213178951289061155762901987999063224702961282401316489820490320802545170825998142959540573294859688869345488388207082839550537469019685736113727740807014711906550308453451337386702717753557001111641075848008076444144228431004872130143587823581684769755663112684214449242842913789993470369987904941373675819576380493068519282653522644109957257230062344203804319139670653741153132665970852330733048252754326415299471491197410278890333180614057921188303278865386117654523724535099770583997370188339735164263680629193273472041156939735178768191515818098696961531766970174532899196817469565584685310886689375103539814194516679556507198470926216524883291202163852650651017534457748579927602047356248735633961859157320929939002938525687102269236924500022840528338246932945037715404645233882475367795859802874423011460752765496490982747965120535589169978098207671118892978288445123494352208185137572135980998819273605302287042431185959737155187441987133585286693161649219202254652747665755277706385551062121455543094488812224105557240702546236255230166941655234986333860934273754001164463382566464115064252889994509125434943151383264760090253467815599409159915232026482593264887572716994592352918327022362566460266802335596086796528936421305401710190795145138882221202419576360537143756872361950004055108985611392392897256276287914208968891857217143031611626824415151093700593588059378654590984190973512490193259256714730828142055074092919332331780583427342891674509733372221678774071703939554843600782377883997347017163250081703005590373072503228261581539481621923552984713235400851756472778855582292349079714680380555505774047596026790489057678736308093234029217930433804838269712676773326861416894768331174551490937653081644201787853130128641266274591128272967806408662316154158340720740517651999360307643223365844981232423724145128003753043954019663927624221598851804406250265094714437443149865659605826232529676290906700304441504227839886300238000058023494672460959638859425452847954382852834579037526601048355373681319638099078634747556923101750435123331529283729243340983347023670391344161355191937684749998310811307303657378631460317922303427348776275987953850775844107081409102632246313725360634900253349624999809392816135696486974329652062041926125109996479698109986398094829220083653263878260205755075262253733990623964879568463998448178310119801613978960724353096449061926129962054690926700874294513399851370341500213225925673861268843281296674249068053377342949958882556061468618818813194492768788714041110963888941842186976580751870724205389018885748173430821414831958888077629723318843170534894732543176308435421777927381795789889170571803047882696055992997306100170662007597154758449995347559609691640036258408737799744399847257483840794810253105646260834611109567909958116929491090130159760898442161381964843126106977241944024962873455127494983265949100398276070751637355130905019481625794908848954919183139484600386988210361129917989429763812374600798822562107634148221998031627237918857746177680285800195108761022832853687848646273487711289158752472342695035973784946171346349744842341722764655707366532451154692303922749983398080587625057118919686936891808815698121311103009432522082578450620908974980592001822914741401523576839160445560400033954160944044391749519969512315499752159533544397435974758056399616628495396707285354161438360310206225080919680487319443831512052359543904795021544473849383733958769482086241693318862057185658443135207870691181330343453192103328482050051634890131409439288268142769751616818919320895628568660923816153624342756591174694592101760674827393521249384852171694141725311389472774650648881405544704097320723874749724463009564737867666737604972238476148275684426918670551756503987873533973951623217380136163504435853444149181806114546522785388255535748146616741581356284379146580458849346542685397250492551085551909161881329703048082053619082577073950943476116548028585479921268021839723007916376347441376168528327676150592730141408206099884067739873635253588533176890222434188433869824788799815072326805050626802203607122473556586193788443322580293189177882136585534588476276374156849577103105544686949245554217888762329087844108066026822528892306629120332918522012342141784567683439353676208296289776723123304037497219281612513308223368160373710409165873040786978996840623672524816200342600507267702869139574514282364463506381778648558990794206911596853170169449206127842270632627995828828919137675083788179242007449234379640369306119372155671949599353946642525175035146245898914336303031573135823435663378691276939420406044552580809367794408055609885655260876894019943889964550218716078972972383868814981686779852041734988426719318373569965551920599934066579041049700990892887306914468293750318467101566306848682476515970730782596833371243438211741143241180230616075188284370260715692505490783070447750454686552177034251786509909979413129073072803435755761506877391043451576081662425392968347573325876120914515165297936850893691358480376992820569150074777315036835415873641842471477240171840129814781219543754407988655833174756194776281420899367632068413322972517510832442154561205762927368309211386425291848900006896948834652567834654527206092560826437151876433051423881204701657110179554814532622436390015203881509755652525194262092330168536720474227939829833776222467929074745460382262829254763588522629415622991757070145836786608148841275987510210870825307743888780717691695486776675500369686453757891668798853987697033609712814480669663855899356369192569404110685192503881319473753230525006425064291991122525336069616448112194107150716689244821123709330788626858429898626666785899002860806967365568216998975034917983617595897619859323472446721291135667279905064026812599971372510313570711781698643018696672852846923546522252684100927216692662291077901155141183911036704293225245165102788242452224948125590195496155801603059691393223307192770240023178026264404302147790991689620274591236094532292877506035424016837166968925324498419149167171213048919255089876696827790854638213932257755171137333655551162867067307665900754638635246604867600830110466625379605161514566406704105753331233685690448051323772232883413131330364238747783223625966268848036323684101284602264268668932590889685446844350929006740739136322029972961803284899396290361269088568697048287473041796058134665405099283292417298104832124946084154987562898619527139747143213603654483575593099976779365468942562315892387787582747918668682087192570162228587836308671705572182928993121462458740961014220263831561990120604061418267819563963568303620247593994143064091380293736539291089337487525852712900050341746936042538752373893047170379178494637702505856327752017919636073745615085573113694869057387734001249852420134133885126822057346188778565545447180552319193741654583372824144019282539235701121856762183472396954785476115911773620123150022011153221261281166784471307016520391293462203480478067645018889398005931313190655634224357939361089432634399395536748826645122985736066793090167750540668470678168360999776162111692512084172800872716937120369945653604687910656985991133110079911533167812895587753289714912455423635541906762079491291941629967103359573902912617903739609049388193212132264298912878028377647667245671965000978937716730130333141118640225398343978254634351059274574066719333822696465844996353815577449505208297275613428151146909440369366266534070443978664144453334423655228645661475554792305940547909574362200889138598593767606712910880015935573578047460882502359934416666911501652761549453896382201484493920044681006877454175497158812661650733919771310478659143538868251354106056958933404270034300634001184073668218769846183449616135105498261004383553454967176668570637700776865861214158575428788207635841215467508857747303334042552231910615354854286868924938812535873541284199458616924893909362513843824459245424629839497204299136101345323752609561964570224573644411029923820724178554231149480658810332338950054242404224253500859225076458140396844425325512584084956510751935291143384292029604115282202358220741069978028111200647998654567162787204962650614848932941280230762361162481464098796015302282273948307931676813303343939144805626897498129309458262336034658286526254645703062438032014791817095787415255245604973578715052085786753373479161744409233476958881115904168739662676949316571402733001438740825625907508569522007671901588776781901869103973438286731583862450804209962056590345389719681163562447290125561219209353482390417482449010949363255168133336031914934365913376160110221998708244165753795308712043189463583066057473239529902977535786550083481940591337484780976210900853515314606624908245132353175837642534929268005356001457884693587029806036201406183858342387343085669943135168315021721122571421033028977565096908603941071499535921926051050353850066000705866450311433226130983880136227845100560621211553637698376617271427784455155966784616250709498964661384833551852657600472925554620834257449686314688645180874586441527960829891015114217893649739845721173178563284769586573523118234232174064662090251612209416020004896888016399959236201003904305267207928529345444250410175198570851524916829318468270269774421126676005457066379155885142444537264528590191778194278475480441238481571928697200082874528726907148282220533607773059011570231160409930361983205387585998231218389328893860138324382151319633320260857665907716018828920959286418480228790569913899748683764856704098996934911588783327811801831774166719365229929429584581794224031666045593608945154391832055139269481874010877573406877180877294088794119729550807598637745204886834671886891350281611541564059515706233399549092015520079654875814894179957362230180258371276151282444174137709254036504880861034085927603173151824893160606060704259290372812493622801797109727301374449128452888606804486359683568565211281003172348047815109726486715595416353419604807194342993693429979814294815218564814662995739416106610311579556015541700795117182441468711707479278445939919330188969738530326378702178443403353014357580928859533199979108934679057582842925882753370406839386179411184923554910035832566220805400363501984580508521374776947282374559420995704226253405000671635832923586449540557635423051392253466920239646298606244860137231897793921791524004781450437002821129453323484775126983405910997805840887683773790865610694721237139287569151960740970923497126947554865708908605375475851080656963932295524838841227743191983200834636831098597843727051768666460015625358703292271636405316657649638179082019411593880135496777341736929316953037576113611349577825831864872125457682323266826080144778914975129589534964671524715892619043956121601902577616768320042745234094363854461360855189603239244326185625996429783466076683818385331930688371851363281287021516863258048590029988881623981251976551742856808158930275339330487055461691245067881688580407317338079490564276465051536960971301277481675563433424969739056375736629913368493165165655004116399129113435412819650134170772230389057687633640667221643050836830044519942743999561272559293916557159678064147809685456789475674797680748487817836094095961103351603574939260306411783682855166298543100658678158995277507248085683362164197815307220818829183404300177549673010032503637746232408051329802043124066323306066805052526145882842767144417458043965082360535588596871876764579594190235612035428137556440080251645792684186766919305329435644308159136445020280168421373760163261918969528927432787065962729083415398317199862005767581280776968378184333433065454217933001986540990503544345910359989199864632103744764597907588885491051036211118686618153678953950210303605351368548893171991511715844867689167035671346322359051601558628220826858946404571479998783636535418161374534555544017284722750034911149902732261052380331557404617848060533746750886915209375576095847190057559968670770361465439453758918109630459801225768935786422105611235942020321880459875914019023265635365076058103167136569390981703784763930120598947603713621578000376032705110785548998572257203067311707271671060469682799310419484151308292817257833791432267217029689693868595681553090428708809429014296741040566936804102491774137454214969581505228165866146293039970149331112816571194290202289007737272872304616876760382767286310015976433915148207381673439011109229265179410427791136436035464876092289428552285384048046343635673556634966165923477543799806223033045971979171414016497066807619220741994155919096937573888746518127995900400589857865319582118036373434004045306540809101032320725533258321848731460037885308635751038652679328539704809142013596858903252881671830823091608245429190391374895145486637081278731746405665591902514893518099552843810013640371243036966668061601960022628350038408662772281989116736644764983660029735839634624105123337683881913598949652815114304885167705364183125644761027293647517398245083490033786383568056042882885378432636715279213296398653737787226399666479923182186565059964495299326760454340190081141643503531104099843921468615846439399486791591473937400194920371533711482734147741771181986579887192517874769392633985060537906167666306531258831716218087340838116507786029983914153732679089704173233007281638870956146591178787533733365507853434739737914667224491752028741449598220236269356567236344967349874726393727899364684882556483212460861234270001592691815302413760172384982955103019817399816664086986814784110910923670259931840865599708462476136992809518056602770115451993970961788321104277616720368336656824085481962075493185684666456067339093427199767130082749336532464150729311571249781568659340374263285263191830925370846207233573294733217490329725150805651872803137316586723102349851425877657951544336376034128835864644209716383478602827538831026531180052622702841126816770662549804561001225603668493467702495753412086853965126487455944344937112189011295221484569435167544650547756173558230591088266018680473613612417986342070139826282210838938856525566131256240497488182978133523992627506040639834197995116798517102871037428371744704627814504240962751531006770956466702995102641344582988894651417487156994565271883878452980963470965471258357861213143270985071752406744035096514265107219625085404585162161090782292080803188103015746572149608227602978783972179798286422218644031650082756123844521037359997997367760456671910408755464294275684424352870037930557288846672435817149151928637729215263925132244793102244137587234354325374127474600423573422914706834192063476674063744181805342376983142192334881076743143174549629271964906144806250814208499700232762106606809111027078100537831081911121239928682383859106167727712263478371698793115098187913996348840239724211540118475194795975892385838259794810180742705258736429881816850022320903502091620729941433590613118345548300525063826120643428785475677434045994048847294475437672404703125433102263527659050033553381776855713235608501849930656039425365769828559623966410978516855613935655279980619690934427878419775599787476510895039438960497717708383005890204924259875031757978214184198963923772118786340801377934104068594069540607601400146671666300908986474330796778952147536255759318604883478590178531751436914860234822072243754168739085486109594678077196668365089920621651058030775231466618332785116928144312782896794588825352952969895958357688235928420856707703042723812355359957084465491244752563609241625479949108762847058055632749180528106496618401174311088781887296812090610686524488503223809680961539256643290531784774923078267271554213555108019984225660274893645756349310959989112617015243178492210208123118795667464240871499564349781618852189144033797148313746157970193507475755755540363310755965086183725166013649827257349959971265273691235714711102750352106860964920291823525669989257906313984673377530290489559739897474587370672118919948965031595572760794357029609039428386899562374587607489160632306270267282421717353540839987197229948716199077689669128126774305736420986779878202801884135921068391243882049423835737772441247183301548387280420491569022921579937231830831829619748038353258685212212105055474632754714904214912787547923073831347119563100714974932954774096182696517644709706806669128098795642744342533792460447609631213418779234341101030858598018900011516876111856791819355023287903730229901157611667585534313428214597836133019838353013832635149385689254487884633151068389396368973016094950375231183049910171716576386331746233414352978521098735640590991881720131665811937102525552537547127453224555098019801070676984700581144366858944609778092481576241958145836848796756512792775683513359280203597783906420777417532559709145105199324331623733546486510156901659517640073093352629602648854950265684933774978485575978778394436408264415540007380193385605936859973110714869892253546033658458671845385558468688680378713485603356819262227392637976778319712729356232916160074605220066570159522073526631331829851112168220796916071672344305043051830764514576476164196736838413216558562029973173607232921006563911049233972483152384171321832731758505777005303459420628541768863400150046855544040905983421093298690779283794373204450826248141833561164887122423444141728401575442027066035073725423216186076795040999222043938431549075825315334836399270057483217486514882099452758884832407961360645898941718202504469117487698200401767415046545802162881239844129623557906483561636665605294356481416326732788373210305816986951344159949629765253872904579773786425945613897241523236479212994655846898941653341283919751364985450205600061847703106563320716693799480037913172593866514901207381467301098130607239629054453621924705477421828103724942776613939143245632756998385562312987753825045274667093434812818843660560755991408603712515525495728695813585122341124236069357248089842049190832154632820862510776701131972445086836669649315951084518408309650161884517169084642090274474028020001740798757751217655338856025809525085711002626692394814666186588593534773296564009172188804614334730195374511169766853923340011859191849978561864451073246314938228664026701598057100892722852891541541932412091389912933057215279827263046897683516051828337853058391417237241483776418734253369198837918582363876211035626771932246388224958875581399869453273475498891945445707525991864836033512185502700423766143152033332544173681206098793273239655643148578665808831057013681955040539784368616420192065423978845260647625474117086283783320687378474673677160259496159640245526487236708870962856204558768361947961008287485695618786544220732442019280039494207574472459227992084183221986288458853202696132493618878880632486760784427085965296348828860307201696405876152873676314299436528403732935888338887915670445906245562196930449709111030557653927800341037228805719358284344047454027148428357985473560243674409745462168714529662544520897415368328350042930684790419989669912830940260648861315749189072452901492774762758163478625020981393900548082802219179526289244832257664825006111655922287679210655370521942774792804925208298082296481941888419867496216883267755399748039845622094634221374704559554170055151623720638197997155612820143177815731275526223693443492297514038056059088380287285345643044667666780889881991239415731227052511765824428731152911619153826794515286272122636013363746146376670315511746148978190022720244483939707223337836537269062369684454668631202966017196664215341025486002631282552847722088333723637184723214521941184323509138776843361579943268764761046324918564696036615042426618214794018953706913481555562010585321830537506054548836939393491114310364316024940013819816084109073676369421039188885772272238705757163964794528405902378525894958996586938941537959894565089515528332338187793621058135115272695518773836963588017576461808303096802271041295762320148059289586505948578353807585674266211042918178870085606379758414820949418083549181030725796865183071593892369015543153326369085009365665545856213398132008472758880895336203612865272726464661465748301877397305179314499877188991843367731395257292000654931719533145320065684398245939780087757038201449726355255253366119482271854956049788958208144175128501154402524960336743112740441981008271490211813125746571982421165441019986017019115357681960828153535706865165337895922770888500732998195904042042466694678773541209315581527816009615948149706993130924684764251271637032998049182564107387264485384732986643279005918105356569352056490879163186748324652139656063939328071113768789721928298276240338248518782289881755855732069833921035106584057007705819063534586254834524880403288894693752063247578839745930226426505390591230097700541969000702947052322578602889151451341178086879561187169454396179326476885044094870565327395674080851774549263171504556610367216382430115727500098000994790564789708420652566775368293993653134848853783067505283655780311892104829110443921945790789092850399591265435361048168152551411351388148600402890097748826529060894548616903026175034990090247415561017143383401243218098936546088343085344199061366425867059943620131000293773636891531106714356002995449830545618717369741328674502117034977155068621580152325609061011763888198330717813701909042652161634047854121731534969689849706282455909195591306734532286459309936726109858656107006983336424011290416487417531873460795727024272772469207778145964046376823040484655528547395700294437806571776591492492863818470209178225673717392695345599096780681115832068960685179851167998623597773252813757379270033295853073391364590662086280526221885489013469666978475219264375030467823748617635464423119239584689373265389916020547185739484745301857640222263516573292313558986472004125161933121033405817696265921288787671883378858748909271518057023425313941691009932313115692354354295868371522639754110731989558999640909405613305714623124884023355055295292906500250599730018590963889451897048702665719839805933462682271231541083778375200729425081366537965410889456858257364140023106988133784476469103287225948706307161005976161695272769452416355946183567722254746941992183083568838302289254399588761465205584200827086357804754148635438995162553562403479503620566860670747761550441148845089008206835565009595193831631952802995412861811210400256280166743485237378477057312924760990228464364623341457543210368673377527761177830465405952583701589973781034298247245003533153026206100162081378495068186110943398092369638857592067194341375789896877368332485911042156093847484188554069802321409877654718062090020391141192712316833886201245844942381712241337139141995810432520638648254645912994601492341490456354122136023377110260036231537165059713046504450872794981002683195515822765375089974264150889337115291045504018384747325554472936329632270134265058960322524715770834245819128346044503336633704636067426107679813064211778085232565726751311612042091316937664412069109192427211513409370169871682236344548593221695837803447415175541073754252817856034078749436429995365095802868766275773186524819707928619177605982524431276598454128788767756738907643171779251094928226279945660246325095560863181803773337322441179564236586222491569185150457914836273834530770809804998257453225413028267572627510143776279689618376715624906237288097198754102411634647468492011790865311492992801787896594586819584475646003830529001282830167484087092387899512589832575834274767933608554069702841205533425058308104957598624998003645097791826556259989840580469118770934680239776568706747124987520081863677270902952167216047464125662984479485963901480815348610350380388805533292075109118492780001912197538035709601677314473509829008865717316549741619393153750845149446460963399909324888090731798618698013197611564031264424100199320377606279306193230340446316025808499146098099306972901248339689049446377824849536264258977877481220930012964892879792050976495909695590191065544052479529642127249273695274029399415568224357428407050731896311061051130898619236147142256739358799592212514534927503838017220976570252768358601572882673276842521452967565250666237463294246522082680039063943388650023469050866786588351384724522836865649282927751093711184652579050191577665764412760738561443579015056421628817527931322045068197007927922797082695238017145587593286230946488742211051702650917413828770937970458993563435032032334055133562001541616905063753860350579946963947891286761528636084737160013638476876646811135798453900852950363613310774358079346295117486782725158763538637840165130685589959115484207470980920294065636361746244204719838282322824714192562527335571081577500803379495000604119221920172682933720104375222569698777201259479681884583368381115381001648061511407504558190202156008570963707022949049447079157825493920789701973324172616871277192081890587363611289699961518864208092278954455311772060784911697227209514830894637091495935569759484620803196315433455119957755139769376056905100623311333336642388064064847550375021906715699978053491111249595869796884777155603362066178325261036500485763678282899628581350149592456666535012875463558580169020749600199105567340145868965309975068023371506191288179673775792618264087596252374735974269697028051586136864220067002476522245186025569624372651311421827266664450308504399648974204827723271396293279424704243033091653659005776781029339178693698834186227570942841552703146696266717350240928106446856176928287102280838765762828699990732200461727117457877086827595323073317587470992594080275021024592260795286673834740503112292426264778212955965457987802488866864704209667898171387458723388735335531433876907413194209201064523506401768138799874321940283367995807116521737043080830960982688446140282155445949526843063492309620981215297411087052491437016056853185144107341108602862073176333845976685509577411203570358718855879464436937541962432533203742713214610428328148984984147893491078660300321903326613951734719621312515302404084237236084333616860051473736993345911384271832142062759546816734185764946447175522523403672649157318230330647313307576466519282165107313363022060062157916853463445011456109872561973992644371211257550387715978749253235806584079419054336853793287282524737681379149610673464291633234962906561700363505152008667867710018097810526758212772804379393524834413324676290726196775441743324291531692549904203127404379881922301552954493464858922324740959851013866838128961371179392859042957428409072259873049247011422686815292178587351053533904006644551782705772910142879312547422533594631028909351597517008588497399577223585215156266243500483338329620754723962138253298956736915944780049926423231839551420080369010372185524824435523586279571991635138862210885167227261988108857318045284790204398344405533066906498733606028151648656815482112935276774021803795341377029207506025136861511476927020918001263585764435254007444626541661600446823478095453815923892994349601811861887872294174276078454829781559354936562557099691023923275651152052646955097851717028241402350953882777569808086091978814971002435773337120152961062545443684582824022306280611168946461457695088261333725254708863326724626699635548469016954402177398915698559863233907661776311676373944158793998742803251872795999335917349086789247891230873076700737676936122037936917168342156514131879092371724851773841062578742959384018521697639759515136036028596982712258139090194170559939505107751638467946544801081990623149353525386490919081937528179180992257926526515966663477210128558581385633334214177777787524757168028621018701896086281246830758201655170927019660999578141263078015475811422952424525946173082316145171871165394539925316404240203533535065431073721364433879111321743661113221041359706706160512780306651922298279368519594803964556092474149122293796467001923941335193606111234809634702001345933785249719283328901683519079464272176050104180369099296929175820704450928577763627019682752900756559335143964432875194224805443288551123687283720437888667890027939918447097578860693216453463060395673790825940706411915477771138621661271339051226273296886861339599627983068930133174724268048200580669621012422927696404091150041905861207591331245825932697645799576127701167016741046144495583866686901919386093533362061572141859065215360859073946707410272960559242368892367515692746438695690746384362945061865864225097192166670008945366320158400300381631076359000374703848611686921188100660080130587060603299697952873662291197771367885010618688518504783327000639477855033609244180901541828144674231068616638535656153932884122521137333621349497204720719210695857161882345279246412528097780508329518091644617155285488260854576266084834328430384508060311345229301883555401677801371291637277776979021743314868435077351935526376978917269092231659484653825126363841573441326574715345698633281248407651905998615021781008621156767557825554162652151337995821386065699005838417550299482533066913766602236081581638501377212065189583211384288453437054014802773383068110375426633053982859516574529164758622698669352715681985301968541445633552133403436807606125271891358402437797674067171059983206751240373072303596008115087356398768306294790029449131142685019215022127853577608992136753411283558431022122560703156454188935047417975236693051609363839649399021914814813432845105277426836001884861819808679366277450889982445510255058977426031940874842890646146998707527495515731026093298953533304642886748458313727945602344304873261623391602022211106570092149534720978785388024404193555926522352590851313972987442252702986190583153083770320911854526304374059250455281352323461172872179381359899131718401904814635229161661154143654007049167114839722108926645495373646911489410792541239391628635722899753674971404088610318157376779129225758800665066397340840880652161697987216636208802314521158813643893412933520683992303941510445530113807880229354177957257175106496564214889446717432024957084133027501107255820393298488128322617817364411689064928803879174852771432926359781985995192026877787207862923703462226357345180647598822515079176965506038530316174806894490624850382625884183373817003224254007048233684740862609134899747410921559010302058656811171227677741878416852194080321968289901347490505427542639418697532031561468983287421457106166602042947792088898606719805647926173466228628988990841006868609907306970684076786342548098139851389819376450786303795418076171063623804326588886706869698381060703978906550067130270879800319154758724458542644310121712220768445408759045346587278091826656641977990356897464155972105521930243510975434477461547675047123759819736576784929420269608310104412774191149927149906634911858965158151378710936045942630443798172824923299744109737766012161107352350095619523098200642209850192560310505250825072983859208715104976379195318884522531771215410846814677094076432183537418418683600544421512581319295025851862923581379356757979692172349160902572858678977441847225819210921438765389822003958590118186081617588570389948664671350744132771684479045133258262384911253564677332363788561552178534866701068480358287549196250500010893152833755125761625500939281317169426672101346879798870677380644608601522627204167249733362914256247378400892506324759788847135577379833085520508052965530126825952051651677477963096425903222666635147596964029651553535168074496782554711776245293813106346638023108029658832973447007246367043158584912572841665880110032488300038421656037537501847749250500738927259034095159568813507843973518092599113226146377104582032334671718065725177831420748256720523649757844385784826602936656921418350383577367389077937274632134113358206505187936821021442893645682735213194049342168207335103412796601753066582481621005200145291975610410950937075681685154712772756078536058884901814246231624355780750520941090900811864816103354168876402302567460097354835400024740631815117417103224441538002397840323553109039550602603322840649177505717211482914283121312402571254076010847256012134671145601533697752567756337146226964741808986550492808434492321467973627656353954436177225538141439875831254256057802494613829138908660594898588031440642766846358079303706312392625430902842383420230547566360218986109182281141683717937515138448520224068267610627486025318692094189863432073844168008403133185826444111314224756000623213852623677421203039641014121754924317663176415473271045233030251131754222733332591954925848999903213472657690669232825410159109346857281212675624848939344574113987931315168574011002022569175033656918700015347570522048134619359122419460665848984858687102956342072736241113167845382278242213199644737352564014588818318820066306283399214690721190812981668570913038767203141099605741622757689730893045668601399607452824211176994031676532641925758984624422447810417562743638321044436486258041829146145798348409345159542546927320260065152875597320588387126226972522773141099072342172544657193889949028956177040596750774871636980771608547699252499697184463269209522227182880708994557067543620012441852222697007862281071687581543062601146032785438806215226123185651565076910959691708282648736273620601277927733069447249913807789606001646864526750048038255376485936931077221761660064132843514975504494795097597056800040279057942525747482711892309286479672486957410832834902685394938872708669933603648280298276225968294032013277299615789316070841650770916421646764280062105103421539660113369798002362063296182466660796094931818536811282331158158888927650035672032749118031201078356643056481715482501809673778403366674008628647644409911474134253324454910749829198974341629039127547458870174158104079471906947954615295220664785941808390363021977521076427947954676212945379650525513975584019315817572060358558114419083857235593707915199279348163014552369509648958546135507409106946752198875829672647740765681957304142027201445314238451972364761331444595637210114863448788054736098975841415487122062816266154038647882848407152158133114263235826401949523114392952102068066918616578983451128205883230595337480010396308514798232514574430174997504856151087640120040336072146510023061226951449384538259907327765529683327151984560327082859303429295878063379421528276741952804888312370062705934687719974169553574829972352966619899386274745799195433490026660706066738460922317314238982705283341712995926126353025348221703087799884565409091233133400853484045483255177250484078304485608723084381707368420413022433505092787777743438315642817671288808745355588149587956974479110135666946326380811614609496802590347878237836737012297611751654016239321539904432055756277435138576475260565387910352534889934995158420143687114687111482444969580052021938201469679783251860826974687552402446568976516164046395357164150585965674731914190100398199032402968129332112305146384702573335355964717026671617253559309755827211203521327115296781706955254596674499703200711185583475646976501410618658794152675204723629369749732454511540641215569693775829729400244887328012432348970733991953898206299007000416427440620569966260060427358951711879974872087251393504970200472993474661370135828538921421129333032381208682549843567798336210044534415345055917182682831087858304501336938828487586208868786444023531556852045130139312561647275705543053840031690924084384597338339083456941273036497308205237460716063233345829351267861854277796131956234912952372213161330518842081487320296258331351221392649126026207981452834740161581717946163680727249232072112471388626490193742261192828102475136908787325807244098435930061105750783313075434297691337103778078565717836171486231935296889733367448717768447614619900808727420772353755494796672074926251153314172728563604690631815620723408878421471648605144437058226655317658394546911490602760320290994121511023542020109936378836957168056840973699263901091231725006404647886777066125716258771036742138269251554017507023929428072123904045826562237025993606664830997991915120478774270154124764650626856448123843082122846061041880382415207069980386755547425626386943196030961629243672198071028249992903657788396543171870479188464055098035331210338865929694020038933389851502621716729671216220029249751796255297709574836631846974786706200634583440582555370434421633835845524463385764041935051825216031008781505054521972675956978548893787179462089198282056397872219481829531119495444878801761749702025796428595861797820346805870858449026021127022100346887964415859024725766036562459008702315082458242389181320159583306726218953697071143195683957449020458405807012478266966077951841467750512304915422183469563243940040876419821786723555778055433097686544715872904807639234141707073235226058127238495204198088156925474714319507495106639384355787470802428025053866834931441261824749317923027692607774714276083149778439510941400784985691247990026387715517185688928507851772411165715109367678058055767988648391221167595220476645620081382577468581838958880740037271233395938720077720452074685703656276754852264569910271992009282999617600901090005795511807815698770046841570164677663489020893547852970724765008386363487563785551634593485363184842027460060764874488673080637376165233936900746644446907363646457780813123087976260036938752779503057252110340171092030838900267582777937699187653845822328905726706606053710371593911066399207465577478266010514825932874890919805734352177725043216454815350385465719873935533248072097854174227206487128812227106905420689210307878660583255739416713154921032142331418266218005779149186807632837982780900019517182268097289506818970430165103121230233203117126905917292254546370697259468998991748979776333284618993006572661638291461490431813993521336956981460903007693056315684329824343420127317313041319728201558180376080445327553910781506224821242416959791015047126089234704455273133879514452537770588296839316818507998253744860933235810817305839037047089250230267588779079767573828555697370778919478352588919991833787885535888666468959170204025853200168420823914549709962090189779666239171141823478129316058900934476522827316907828729519198171073825667632765056953950229775951963701578850853517963583857159281796967962785554745952479188785100250296491266502275522196033180011474907499825777657000733607632860107602390953797505197699357053802766768927064323501542683269289877032166462812931301833247052654891573505518035159822377689017189819036173563671783408911296593141784830310445758416603013042628072845703123119434353511617338907109109449106781928151824762925309295209637653280739076179993772170471536502573844355635700675898366145227533316763892671552994696354106623653628642483612508725681567373213890140352310858054244401323811585317930734298792564972401247014746769222212292306780662511014533706463657974507582260118654232039328554524726544732508690779356607255936374136871147808301016495895713852127466968984240812897495004002782428002765966117046168885601382752884147340438039771164070072944954969624404134950336269903278312398341767366349651351783363462701341725162518876888224298583209986448502906436078671468351329921923231357360818595071173106746243499294286503718207965891535288030401467257675801802469047428070803961642209071592305778175308158652198420976762517938127042743796150482874203182359131736884352092104824475359504054842709526670574259374159030174243783016340566455656745769029786053852718877659210888718225473215496300208941047375167702625022746005158709317043462796774377084154041837564332554823854968621151806590481136384951187591328500753866035677181736984851626472123017603548751226997806502738447636693924619905884518501927133165998066846197015131113189671079204974360516350118482149098779951121104490755912977354575942655646365961423547984223045850588756342214627766387498659089403436426607683398079519032531690891784617333508647096878818498592207231751267369413529618557241146598870414381862729282309654148802439724166404538525057855458116277647434029616783439501531015844095526917898634562574827799736447050070061812564070059794652525461968324723984439804427399657633210471642287468518335271219332125128797689602976549470275500240751975592109365371174318198136354612679652205959144212419283537598744617899987118791441416718100395381549196048407531855585174362349748756466099352651556917416450183538803799048110679236105142594829134704147417617808318048370186369069779791342151292642504188674626458239390503637207321878444616971612112281484362802875760448131372045841308878882523324493331369560728059467052149980283235095344038002950499947522288681485954374759308171913262440664004633459371221395952318239233475771762122709858041766928551307038011901133786858444829106928864358424951871773358236105379716459078793566765710404551308132210975673060522755542635000307557328827917138831060774233676138061782522106131062685434690077742216513100820830758079456665337000895555446235953106760978805129208247126738383061656330867764917538066183522299012319126289453962403169723712040246585572932148388106504055316043332978583286906764344888890132259347581762550520540473990663569205506865038752950744369159776006493372337165815751386100319415923351763105189075631164522690310023589576811753195060769169491690197173309293564667297111889279518619065421008282635775917849979721708441325500476726475842382339402761933851431620075484509730810908606517774609211108819197732215680998228984985040513384855639670429443455342923776818584222505023272103047640876163930412988500970936733892885107061159527786810877806881058304903947179361291766811281323515354013509876433537200125925186743755124052045109147112572524669213094400402607400292043690874284277559712276100517237567868976253832641068679487668829425120163062089893469396589670047174255143111179081595711291395348598554319575809862565054328299437206160959416485626943607385808781635262870223119416783514875959468551204684696350775468290716774503009036369585258131490751694130262506261004940766777888381824848088511841070151116220023257198170595270471946003462390674992323016417027101146910238167901884482656731373618413156967013326916202424740187873285657453284915938428502811631748135426605391944242514956485839345222059016704517062630601688464641454659924666931259825373747513005062118951421865338191654359138386343470778731431917045075827718446824924350053717528527438128702518187644139988355908882540053474996607473522683071950881978980613389522054818388292784452225220619306527022603504157003712738573448858329992551704103723275010712392926778059314978684657038018506990052819673955659389451115207571762686953252551532505843057170593987273613307409346819452171659993770710542108336605000365321531743035638976155505302299139210159924365434974742539173763963572280784270573204153405918056223412663387363209563816884180294536138564974502430679126314484439517033578785056271583726548752639660322740593645878117751183833823545372777787986022582221416106625661830729447514625997468849529848136903372515472821898412946419879755645356293434421467833655675269716701714140048913303233393831892280934100544927116259905494384826989518612945576700671998975255902860167229755387297341162422567099339417824097790768525542455283371775973660302099355091583946337006673145101519198178157550132414998180462020562503252862596282650316809818927086409473253830347287143695283824604331896056960664991447279673839536852281391910548117841110731541018108053829307126114645941141647789275039718126158135389013683186988299188477225273246529553648628160510534266920083821740192643314089096424838663389273131981002817236343730929749171899105687110248527105461086578803365467230686179618369617227890346516600209992474785203105657780375563959583002164929853595794446851756414997224987452802277560058157849771254333852464323620658760370165921705530720867764866946702984679974435943481539398144074382987037414924454282604025522983370633920407382190812780397210094725592855886516365334917698737801235672782582771722231625961571784649012136025118210379880798597221263833658272246749861626083352808245054935128966341131572609725579069765885763638554073559057572926739670999407065706510056035548529399906317589113813991465498895974184859134904647826761754281496847844622135566678176852871728842239348149877480374672366149040133294400153084382667139448704084924678190165955963322721990383997521876495522898940518278204066489826939461309856209959890945078258153034115588179339024563792621488859147183925875053762721227090563169367932408666211218849444224361262519925747289913174579896204863385133026895760349953071263601759462257779719757099161568345716733976859973656762628242975658777439953737284775445805290838744350948170465113438325614960650353949181339298540074485627913986197483699352124675640993187843977346299772185315297362249428297423963721084921172148682375811732158264924069706269398067004859975541119327559774062721168154318864043428723559317930994752003030197674739354985400404668957871604914113347866867151503589442081946104366626364802545852522729633569849470035878086019708123704369131057461394367135014183660488979061383339108368517044864091939461348950620960712159010279786409433603152181400603693777686025016523215835774936251990227160075699150672964585844736413651636348588168076353225348722641624410908787224247998117171091398930692600191195295083291360675327938434609307873893421940223068935632849582101900265355162906571780302489892477896734670632356541481990600249047403152001893362051210672920061921293184939173340229730742284986625279229099553356885867178032304328012419924129246576435048771777547238464296468754267871941471870932569610979942222586986718000781722933122031017702761433237144505316008294787450086397794937080578247846321394157152619418602064038410031578250250658469928957003208076131324380981323343974002148211669215835663452166377479349257160127554886452297753268416983650481061046179286472992962661990540099519178184429522512685451193436213441475682708811295883840215844024761114868261941161092862143622902733808525094587212927094646663795243358700075910572065313918735231431034648474629409526826194438469919572551574154882126186874497677025411363170943538049253452788669588004356704012867880848115601234934041640953885339019652150449611037337636361040229476821655045890764701318660583765157678394344490182292570520828330320476453836105314539733928606542263057517772753233701377409519235748271657336165095940933868511206994381210552320617623278068684263416620814726036081651398999482011337010724627444248927562020557249292170057789733748986681361651262019532165682295739179385398992295135355966082121773993187800305745677916190742187238344301876647491828270801678167427499781469669225295755652887148450782468354514753228902929779185913855667103434681161548146948669555119846702121774907018494474079500725363985001812336989694812771685712400615848175216434182793746213520086017545060849200825948164869132936752430331946646961626055105602972828035909876727870103073936402845170628623859075539852204597526567415021926247306374950352851063176427780975172269523228953436092958375385037825626169149847345745829236379890435786488157984453240652453062777637908412812346342495582248606640819714970295408545602281766498595681034308695740963869650817195576915399000868895706596413628467618410843413173754745371927080375214321205592250920517439307782938017186015777080662143980141052365499501379426190891997854354032787817627949948968129017379619541783366845397111715590414292894076414833012233955754484095935427010566453643799918698030362466903017135131033073027517427837099793959368493808267353775116412821167771162639463263325204949338259393185516200676888735554952800158664585866360328796756697653745523054819264842628536954412248265650675259043109226030341348646414156187543125366179097723939496954608782560869335875950499489300511481746778151054458403470899462450335667746810990644887584900646833392179413761152893969136035962715753713681180670143861037321033057881944014841726852100073299734525209283490088664583924142493624956442003285239284525824570375157172177025144202770049838575541651069578662102645565562187600291881479648429392791370021887164816337023916694544061377484689611749757172811672080363081825332621997578058430949695016163775081785181282717219896933205331944416871082082169874825553002590332830482392325408581775191857997014508607143428037212500355371439224329595720785713014173589483376057835069868686043819794871084529484632683524290273061343293798497791179389192893011548214183940334582848814419247068638329790030483381397400230401589247551199499266678816145772224153515155643801104763819563100003130772125568557868922686337391553464942294597497520383343797183859144660072232302762797467359474295776685312833635243899356610786858937465135610683106283909725255211811618508757885053339864050270549967977872674479586550434154123823394311356382048477471931566389253096011929799262619028253933100831012521705622898250386302030249758942506213960162468414235833717980863449888513074588908423757738440814295570501241015119820079698029225502950919071827232646047960800703656436179579048033489291550543039270889169277483922779322024019021055543482364786966082767847871803158023449536366928325034847886569745262869556077090830613684330099708836378335294718935441584878383430858378601646577512858277632274286509042534126924711357384646925535174640970818940548996148162546710728127929275620239633505200397094793317725703919852633257901240269585448631827729252623310380104179516451818069707137661727121978771256425571926569375506952278770375875203502613225661284239906227183787655021844988988685745228778956068258318627768846036342485864034929499992693113929703700259761707794116199507597170144252654578612388192405583359089349768209253309033950046384443644625762788261570212944106377776391133427672880665239682638937868661174419980904229316414770444307143923613518995227038642139510946148041938290246414924562941858067808308523614984851364526810942815328441739260519877072865679863419026222627081619777443470586531191125595961567800689807571619989458499210627199636109580634887152425750736871656847662023256124868956975996077254872164610748972685181898316810754242040822869026604006999773145921683711918492127274989395823319137239830483246759662143145471613262540945100909511946130862291170904062389476323017915504157248109761507694133023537954895793904395043593417450034210202703047116243511528751516940013169306586497930280758458184230843320909509545554962517662351873091571853384797993467765225532455448267331719592716016685982499151891125522191737239295061955877781755582422995044557052616590160676094061908178211090921176403036193488770690805696621960060111686751863250773377816251295514309601094821034836766035080863763981165546342158698423432205950790113573133171373532499959019043039228544238650604555700729587222869740511490811463935327252610396298556788263174788118186642928369799708230624290432322792321736908918077501087442705273271642001720461255573162952673316791844161989141454667147777552095278383567960053387906043230352501853245352983408983797799323059705533400400144231610954381176236255820317098616955188861052872428804326615862440451225053578046858717586425765121977375446325860762368294795321015000031294128734578097808001654105345006014176423048470160804070055607622814083935051137438171627542227615624989497751318767160944100420896029955453345269523846727514966382593398768643699776202554858654448306140235601951184831126365445655131224364912312560457573872612562907333682740912289827720212949362683165621834342252840060105061780338695532873029732546285531632362465389336473280761539910336881066522063004940731397759482461698117733922536427984630251004815818328452481573159521120759419006056977621010659461099150729059417968747545084947371760905730637824779423251770091915318842693666293296821894343336172232047670869952794868271845991638479864690801613777004550575523559592542666136720347563155954344810998689399361911350051355901860612294970792181304167777546135334243206046642146661345968410440852453320007035653407518352775965556057886312974050356645895397191037220789707907145549708388084543013562515340951666232261749574896102732961158358255416895307434467802713755125212732645801991848441808283372447294767243053362119219200884539208997605873210850182835006738204985054840502366263838682698208969455620613558814590687739539334288073141876023664568537352051713590248359674859378193768184040391728879938071421788084311926476050108228586983977859168047001404615960075128650353954338792163625018729526805026024660321031086271622039262575481898852585572882571131798979344246885631956732197199102373024621776558676406559958634907189572588134654228878012668797094381428433845738640215006394020414336896096044963529167542398925158395441510369233513937254257191134501752592337496985801298771293597576689411699880836373420551120818808466170571829106250745258666113038647103397785704010574545674025028029283219152778819219942016468569784064115533934500661685414777378514453045780084135588665197269554857367443488711087842775423823803054626537573096285143548777396261458225364144979577595684198599110105559007372199928319616790299835591034472590920324325162655052725261050165603810511353512790284610319239554366886617895679110475399428100931969891157168992705045968287362441402081855424050371846206651740526472999980801223429946381760649570305003322031437052027853885344987121146526530222329210551670187706956589563145514971819826692650869740033724085219041622804902969382997626520790232253400739230382824778829996900612731953227143026712471982416336229092996775794217506563460618924866105083988533114086603029323595470854332155725600714956403360664666724204070845782486502719013553526459621343023898366811682333074219940184954173818265959476439163986973133979490701387533679012102131200795546231473756969492827229109560158437883643859880385480661085770608175766508761279064184346482871003155188780585818486140530998831862376253749744476589436986009529613342453192469710452188963133361273414964047981087661537589169962176452234980673346349631214583728592766342979733780572257150474855175183735651549268375196443985588891259402015176441618927917229411028332091174405389843865359345520933291060489885889520995041887767928278858508708212952276913539799672091179931355760607734290387357211707918632694120672679560632960922008784799470312959439800392296513905363473110580816652332194701265273642106702203698977858095994728187728763522787173372897878571750635197974762028009569139743683043610965232843023904807628897573017616813573988083249748061299963824503888702688850686115166342690740458698642575069819604092033418574846079361068868433711726025260748229550447724582866799639429880312023036097760007308864262823938604252856609699400841091974983167610670624032027168620954617888173435044355744970382640853926407531193288852173249911279414729283040436499334152901165160839046230216776769012455812868126599968643887360439073218149393695603785396568585027497780868265100522110039806861376312676615260173819240479390337356529125573973739501092328423071226361205099392879434676741513816681382523036592896270222047716951553083097665652903062037656920760213009534438841136648036336529266508465220502710479254696046464613161843410515783252796793289469846310784493615511080170515226503264758037691424234182612971296511702120660806496994229424545798522632379761059329962975869486363930992053063270195979874138921520659168632550926176462872841498806659880024191161031819135314248585800037271205545756574217950127000670442253461541113087061681771363587065448757711466175335309731434266544812124410195385153745384995959029900439831237275620083374909574800006600252449935622551956379170754352033209040443809026807232583709381232986257150194950937078288648123465072442832847417942784348244311574271534666717396217072218644162533690223101619940558864500011758054293751775034266018237921323763859170183448993847239722542371251496540215427169450030989869974324001992692600030191970954361654809419988880979894053372490695046866766311374341835021100927442511923194435034108304679046957961573624343089192696109447787413543240226164307487043828760418935248067415894270091098952905301630377233572653841238762326979284391378760409123211024463146562579055994423482012250614727036480604263932263845599699454033293222914377297900429954909637433793296311249438537676926790573181016609300075561923124975394790008292786395701793048621198168854922737939539969164087573735717366522948278163348463628175411955882958501646779070520784896534622173182083987388883976968186308694342155385249062510512867369534691442696872061490185466561281778188173359619763135316422471175961909237149785429774638110999180573186551744214339177603825462692328908801007583581406347648428705461321836704183895983106433576130359982136878560079591939626548635985491815626162300154847446011338544002949684211847635626962549222659716224830605813933864954848647044463884997390903878196509985674107210329669996525121460400221707288102614789186199951931190865854913202950842950551420022385992946186490713911697005651374967665047895771818338459941539041955638011763401861673884540651160323686134988065595947428716502918952945799426210237535425447549505139392473312887182480539769885947133189055359820200971040576358864725850896213037733934824635321663770522515118554478793764154883693234743238301454509730153415606790932774649146697919956381195063660596278524363903654431704197769716288626307603811363581940968221265315963102114500658482558092798307641093984093106671264300742616784478449362451287512989202493502359303470585193167273183233490565648150186656873469768343210741598325541236795676950438756328858124490361830010007030124611489212101206336674479001625085684336830495612814665260529010554369602917279197748997651476162794266760048904109209005463289770159907557995205433847765265220084131672741727613283731925606140459195145134177791206822019489702436028283735003951716780450030280022120713513265348194728397268422757525825473268939407590764056193491775555968005327141093534545012293910619024406505665421088363600437179386186831411991261716972558235178543750597918278004044837109761695233687766025559368860958310787489067570141463493540119968253268271830990834015024401174497465206705247803068382278039464618611273848911394607817019977535129631161820766598361673353773171513477582237598650235969154593977725039208491382090816703748256530759348441362580964724014790383689189074320587097343148668929229184823316277477843160736145027323729324306416311688788767922781334106382698582253992641646202044459582526537454691733718776450476539326085899405847202094325369403796510041778264595734046232470548481815095026464535027386288650882834791619143554965963589322522582205569632659806427296029086373971550146051245991988018408437682890233316536832408228290684190239064579533246949708960865690486821581782233921368679640277805945129515571151262554727578257777384348131908293784587575993979331780774513629950827742001645575461281496139879754735561028345647012609580379420480422418689580711785088346373796856277166315212178722898481637299586915586464490030892740181209336548306595975403163438217367257481482550324143954470655118041439524149451474217637207656287896589158063736980977755301062207443293459956168379739258959837349316746697728315171377989467250774435890837178485001829553757023750773386962645848856370753137563646940879804974901890026955711350530808118209517649364087629542149130457825628122696794030801224620475823007624148379462094921141443078993563662765351667547812154565886514126863287374534828397159222444175517636271416818101585038586396113192944013750426106945707853871627046001775742279060379933223208279033592425695003051018072067822245297683490442067675156112185462710004449767150066666081339028967513785083613533281412570713635810931463539320823129143246008296831873529874402509754172438290586934280186282180272633002639188582237320321716054522514450090623746226955623236834560435060207608680956856680318222940849559599414209964573953897412536604132176148521424497673611906277985298391072079622226881805768078812834415981789703916061880517294888159941776354555368106907109501024570074348312505090988438146086382871512716844599724910554605990339316391733342478589312818208286476873209428647861324378475958999846083768566126668171321301831727225142637879647576254574298302635728292674642025918686697935970627258144192404668171564808301280658231774189332740293600092104752545890889760882391140795806406141334188741021541973723173524066939192587233484817423545280438304305862832733346758182089569653745080197467131733519515583928113541297203411955171139194083356908322130427040621887648856175403902675443523389228739411892607188966434140867964124324606149132512851138519847905611633950969735316722296306866100195600110971800885386105104042140418992479816531274473764747365831442962104583636902873892483070589224425187376934973737371987602245855162391833092337753125993207416510994578074452854944669375260316119433136773975199614517336105377520574902571518497892967824311182001979129042388952393548190297502789315178685994805510302269727280539826699940414261347680750564076884212935123491308046797095044373601551223313576328464308994265517161007718350871832206659858046174034994099391457903209702001344224791025522671274502017684820047553510390545311264718939243894125240086161007207695417877588088736434172976913883292687104058062276511252931039742893968605011408262254024665545617149195853427456006692306197844905958856095215237745330217457636317904988405755292839495207179465380917189395864579122297103401803266054470305072733225149281123746606127641353220299632190457229093518694735588222145364700378873244130282471527476017024022268405370109307528416936929431130501250265994645784608305495782130809575531848372515972182333991338916509836233005294826661646648979344192822699784488494344863498271470723293604399782397322952321104267337743088640399945665642607496962879830205317648343996350696797216974407935058679009277228420763548269312066850381838296289815830900612222563904453016222949225388647296409870993747910146495890779868864381993748088609430183040826717708776834185278600231026059207440906481699967320052308411063498809871317689387399891040687612391649969304512543166560969483192150628803725979575596183599840703005168593463622012540958267835382465009152737605443365701467457509658440289020625276208213626611047585177390602141525352124779123574745629138979406232850084354972628291925567940438238372914400141977174572053706568624210043745586536455323894874774649448321635448185321454985849988304032162354608122958895009180608639520911824715502180519654862903319990666519038171495663512806747223576620995469020432656754774680795273808382137844644700068673316516407742794198596729751715799065786095241727196869158487434044158242423290344081009943510969468778033055050883628509127551737701915907468650731321054594593947128693237801994841882186217188652074919214028851807520550429567067584402890233866994048827007009589897030096719387350113536090562229501617787433538338433871467611963217613963568169307888340408836570362831168368261204375676676211426235158865006680816181438682757318057042159402618666805400856434060617786611744283939716277835273083308429225385297853227019674031059364167702556623661293515518820486203275540595892567650240942943273399197876119480779336489171791255846024448252240553855530213152041465319551024482016254096297941720892147641993388823179087005540901385605032815179959124625701719595843374524787690095776104906641615493406314613652744660741426127493216940783618689534767507653457621142466958764946241278921757243480229955860797715340000236334705399217434164490375594431597200323695877200957071702629736559801400211709871412502845397713192348747308763094637324858026128914198562586384833521292740429877899277230529436806915973279039902998904025662766937087607663811827714466270739482774105329403405251398020339320739559042175065364506102454328142035893228255269091731182338692613365033555365802017021549618941444610790999154219338462540055850355808221692539945847399040096343744780748294180209140172436888200561335441984098910653377036448483034994716850106698354675582769244027421266073730742248579720620543095874811508485162220646621491820421531408811175375420401084511564319228570651665499895363611273309005942733484443122511231323306538410886236976942008514029680068843827509483674971803111462685419562896887370211788281343584181091272015218010094045921480800420033712511950879660396835080696392741773177946715290902699527620796352255257727069722210509470603772526377732852096777959150768251209071066130330845374187584092681744988125685065403493503634535685061367690210142467527257474445480068835286371646084413568171632525254392129049071827851529672887277099986476418961822938451159060592007055764364705482218299827421215294693195228500224558345437856419008588399160985709619386706384993622535495950256504960650752013720650345607889068874545662156945695523667371074266353458110861421299698018077128443689111213520939756750697200996648911017882121655763661213247195396475335763855329763343705896910313092396582476184309765442125928377504378784509828336159954406720722770311332695162346222274228038614005847430001204846307415154083170987371801808298990306818629668415343916285153382107556287688731342358610305892763908962595188448705962776136700323411540903592838748632455522712621986175005065397947381455545741872103419370500794347570159766366038412746986612079922295622012506309915346088964798530295392835603151105793697721285939284105384905295865268277122207078726983048115619436413513501991542602358369719988422192634076967698426677370975464213600930291673644359226008299335797148442175850645157710337897007887346248418801826524463225440975476235482317634497028665614329326488900809924970918413048357990859586487144278067872580890778428948318618024861807266358897028367964440107864045569043971378221986180196235646996014197751883884807381783449665891725633098415990109134876173132495437657884942390439494549127579853285095822802771498738863927561268522181122397655265776444638014280809875686167625872798589059487687213215491111625349597515552481154226369154951130966065197631280020781119089121439136150311531009731555454535895030393798854154364533274151094919750718183219527785181299773561548565332282510835646873549290963153754735711303373380397102122492407337606318955384865138896656782638738211697377790195501124028550664377647562696562488573416281195066366467404284892422973747860274558184133197883015452701424009374943742930371368065068240677720449131964588258792320797642616128079537106996554962787319415962870444500512469088936082430905544358554310171996554396718367189616747875899980810452771353234434007575811765939554306520419258444039562233688100349397205349506285014733832100326187950953815976662773899432532584033290061957167682417445541222121033308558457570751357440672928937949723368981632794769056048274019191059953639262252846649566007309840498011463392035755599421271474825323188743306709448334675842587199230754306924472078364376811532762361059835472275905337086416155018422499215369169780227111844150332211395106311665376290828522028756918532008057191973210798756858832237063293115902936518866507272369843638550006111449878669946524041309942932227337894407724825838064235837527734166571377435907629997219564582169320544421158299917756312157614461852406723471941127822158023815608224730488663977611660910817075156333935187499903447944411675660954356715234748983904749370388855348554567578568328543018047256026192097938988445589542096448138472130730452466464434897979942703223130237790454602761640222088831371938977173022695286454957033520935780444674646919476799648711740682966705587265629645724005530467758793478338163284289007643034519803067398837473743136476543118055861264809950140380322678576675996060073956941047377729809591262044817448245254680931357306252951429963966120524252333389134419558585044863845166617600991669474641178678154832429731884606852906541243755202304963304331639031968768300174203392793876775890538001834515858888883665057010198934740554949162293088954627353036910967775194891384978023077535922979456535696153135813577401317864228394925454577771320499298840457780404319807923063062084788450690115249210024608908006535028079976828327899156261938556832516594974679004658010466871806989225663884277398895091996532823084724099335229529661849972424443658752433290885952625768237538768973266526406168820680446289262276762585650594698508661590547754367902455589368117548645068501715038965909573938705420365726045654042813806836923030768949176858061154257664591954265573916823703704810313168612816358766865600461407785507112105080248352110526108568915628808363806402966047735838322898420091741318389263826077200931691942264966324226515617052758758309787799045516263775087583527793354678146328355372397432579842998598687558891591116664928862933858938745277335738491619873130449228403652055005507114359537473541041584084635678125632532823158604433713001660571850895367947866247092111762182988910053294156942195844472225740955653924167650051722889796126432960311546938805359599300227379757020376449083433161913713073557977026407451647230612406572727180986827825788301573516634181224141359493905147639796855329005087195478307605095770466536823139172108012242199835306633213292437994503148249259797097066037858476416411239258059424635327807417475311817675082155621262752459849944193833029789172885988243668060228629463136774799732207393734639165935901618786969183200280845307948526231014218062655913817325204066241354167312827209306590894972090454350212259250587224137853349683885205567915944650716858369124503197614755125698468662021305260341716123581756028280379673358877158002723116460102253816400540968175118175030469208149399132000371314443355905543642387700525281828714421865458468902947667421637314265527344377917738937146850100856217792540419497199367181374470870361796060812978078963472162526386939915680228216866177668091048718430693550990878031095343969130902126369955676926733589901037827228921308826709582404460977937966837682096137521156363603872470872969709673119872175835801695548237737076920719756316238063484504250154284469556596868773878055828902686575076728763187876156988226305994054036166951967694757968389718877903703491940780807922280905408312820936591863149484284650635740149281135240981141423008466028426681864062036405123232711953389287912613023221818521535847682365801705286968150594215829503318113798818996240419823373175838858322894380111030513351624115262932580443193983149697657542845716951497589554788049538144775946364485383903391484765734480806453730178955170791294261751366233764278775641140049592957751551445761089619705854220678595933716133935286214228535137173419520147718112590771942993556726526909456757405420585422576610205103456180815606304563638544817669890592379234603563422823455282212770967997621676474203776686216500749421993729257312793004013260366517961207554695711041429246670776740949802646190553820077541554730505838560243412567239037294730167090348175740880397614538537530792068823453177679712554370061319118930036218854454699855514336087704255495574177759315577102790992229106204389197184923574456061267004865067669520495171209605783303628009161888659256254575113851509240032604606541594864871924939769227633284886739390067376434220695340602247858739889227425618606846682406111232972026403853105306901584056604053902286489152167268109608413942646740914519849469021180892772733532132314086992679532354379170335285816573712390404010921579077140352855422969647339353028917497264431315443842736367039837031165488950499953406705994540839897573985956008690552518355017245114788123222044893955923528707299981136638064152617794892546763476982228824030925272673478124710674597389119554079601727455790014057352443506156665805003785478327425812449427007761561495071428684792382498063882355469619953891282198699631910124351579933284239277460196319529936093836691640733196842749963334088615191015488996023978723369313812764623297201112210763611794774814690527225178455109596185555399551400108840831620161138642026639510503159115780845383080590149479241073467677231851053151278520155044986376827456022680600191629769919926987508475082689152933727959338131459859752647599114745735366623424032932270962828049696503711185025329621706079414510205598192626790270104097128251901143004937310610037626188165839903666601884431032680944935519513491629575094551363788186915055694960965200689615944757068005334724417619848841773799168782175463726831626980396262034937663369276226906043208129342148041046813502383247358209880426688897541717339990370789485381639728468428629391338112378209653656385064444846261633177552170904850505167712908756542017167332437693423701081064786201191318028351335511070569483877001491642917905558162130619015138124299267711538675152575688556408499408885164564964472627143974508964048522858584853636500184130242227514600490543527616762558472409542684985657296678689276018326452461535572863307702825255509080798176676661347846256978203748740676748476310411102169985281665199218169836285363636616186731463848953279313592923483219320142968254784319246496292253870212149522322041701304950054464311931029666463142182041731868414960821480854201115229060069369531711336568342568178619132866812839889049945684762816807563203699578680646757191359394219415531049854392138531013291943113885021985453658580031592759414436834501539988956837480465481183736704209285291333272038223179718661420309886487570749434994674958719805127720624631812469452057351150989941207556574107131871742402398816443680104164862795573618068113420420383285387749131924611157638271301574471053090177045719611945237466328321217151565159509181662279579175277589419286565756714101665817853647981809823780164811059172967995841217034103652139661726026703337893816639986236601239690634746039384959857471962623629477822848721081136796211392825138441306821012266787741136526560373435129378684371311409512798586047131219468593479740404026238980114334694073212100868913762260394161849387947358332636096456494042935990835386987929894640098161935760247207329774555412244387727927890524731768592112208035312133165487220994990169994533725484628746481992985815169635410546012397328592203841449668556371079722479069761169144717767326629138603035718436033998390758378568115347405129231725602239160034619102141199161769603675043013611872259047614171534576615169315861835252445136711677407898137913108968558376133879851272216212077538433983459272009399792892796392912929322085767141427829661450963660201391564142496850362404051490115031320289869261951536247183869373180124234654182950332557857488536705614751535460062214290903472991671704379464948842064910574497729967412987648206169000458185241671669199334495384587324137929878003079930382154912605333972830908858320440968532534108555109196292346925598329823260777963302616627556405866052580877242190552724301178311744042729425092492112523397444806649740800109342758386719071357567474654378712022713392422056894046381369874985063348735939683717597003822609355916298948381759116808400272737442866001541971581493724215718376948541534549808242428704593956213385192812929459601915180763195961980641534090453243620180377842279704731438015078298948448518194698813769291510213857917451675473757883138679810777820686983852018969715374512164415300262683688687218789500746749557792393398341213895307955594438558679249753732703966282136593909652426059266610632569584805470471067535163914589819744543896905730539232035735459404077392983143457298960303755993126025770334385936501949258743806715129596144883070921947954979063194828228207011650956915372475092983336509670367304995235498252155881711566281450603364074109420883700086782229976638991997039947415712376191932813439591712974776724058799202274867700843472379237295104210315277201665023358918359601850437680924708253226122458948316204069994382965062262606612258683505347091129178812924155874914455220254757461280067969750411375118909925069259711548343957383890659656433119323263984939512597142089533191660243547283870430091279002426944643326399377700110330184320304438195534275643991998680784823593711694179879409166992927358791860031544261684537044613920359197808729941485464025099002913865031013600533797446539514293653530635558353393759016911248189520571253512526240529644108838375813891421446312275251250135254943988524005770339916906168928836773217596120766497357666336948154184808797613385928551024303685798328606064388197236482846400772869169940574226192254488446353628623140145825760351805804310361715498858427739709806850500735663112332256376380978531486801948015631284017096205920868941497808100986007159479961295106734592177248628267076410472117880831589936033463119757379658720376120150692763595982081898684980883635998869314905797950976335190084653843663211883717284549567589673180532206864230303796932916895073184095668199024491734821628880616250482646340319989661006991232599562059028399749749521711265566096647418856504541637396149460905012120322648762468015615701010911924540381586069861512355233776503883187778555420443363376155940988120826715693273171182969044617701699162402842644536959762652887651731804294417428524586562801817785641524662399412747700622998115875143473796403885034945536676439889674078897282647332872784825524527024946084480357589319758487690428767033577323998639040559601138219637927754770317587975068263478261434435419530009155573479536293358984538603749550906942102826715568099404133498830607578180038441721658923659578639034435897594141011760730960343585058077017674118889273031890588347079601117647312306353707979095169957915255218206082980239227451064069044828598327347830261850330076873050451150509998984674930412778581512357997472357143374112174183427469058015922621848486275780373258464186155235766995636532841756319595640960745906475738567916431676984385354942365830285495227787113563536590227103171883886385066270909814105045949656618817214557586443459573024489500413696257435673732614941243981425912673155128358999136636228112045561673990521283634359517247059370187467564971565636286235587765038921076450424770297854550569759372308069876847373399124915446819460832848679991922147564465040212852780213738836222200255463608661679793077556980398668664303736809491526344088303414758422680022697405502163317922815651144791723976598172123526421722823248842172203357238798932126896955062604126279603441487465077556648055911441470965734715766649300873724147419289272115865207104088886129116872739647350612422845729691208242559016052468810813863505354545173162081001188292241177916659502824298355624084799454685896814047869794266171965028096145790887406672297300702623761613976633308378214732732682099944064150851343338873775542018346937037903293875992996645938673391308285708475738443472591405756094946627990127955885980068361532520134251314748968057069988893800689845804530169985826535549342573457275343908034424041610147193851016588626279280522187069876246850780781999667869306998893326951901331748734756697178349118971386873264118076270349733712412228819428604389642797047467834398101147696222175698217869995898166449672145119539491009579989075933626913782171098891272187654128758709035699185883572503057736272649642931201738706178144307814883824627171656566728556231197272623550762694805840930727668774070989331245814942801061279272699999910584831806439524324122851245328556217474582262199072052276033760668068912598808857178685013437198637893666793049724488056595503616753008519514667095187989733492584848920806582119616311145670041130546629423712705462775654401691293829793479205494515404644436035134759680838771959320002170317798529351807001942488583872348555023194959794606656592753223012077931008239382886567623020148195768933759839206213374340761702056094235693897099615248537098601179450183411447077794229110281871539388728894257568195887202651916127961455212217527023746413854609531925296177634588226862096590037217717883785028998919580178486075259844969419982063827313356363917609333367911877816394168105804864059260794057842187588937571841551238556851477994431600617243879432191260104780390207461850453015322127654166566777794595150392445115713654961413951203705278191354815583301729668025781994423026712601213516076356483919254264734528895001155000775791176595934730920255508638336174120025723634705596068314805937647071601001979166545546522474488418085667009585298512254892241343381934331313944125316288879704426758530438350206667326657834376424127072271027957335370539762804501479259491375453662371035216101395861693705044167403193088921325437007482535239970605924076927877523546388667142650780777925012410258083153883245121825583132813707655723795621754192463682105097812651178270095275371331475978451168860970539325635258483121817334518744193323367331380436379082033096553178039338680171988647825429176613309479368829688190663274284100003514044181071576512755849801172116195667574463722998369074437650396407712315413766891241398038734702870303163664828713890306857400093870924117066851802416628066040451859315240715941733529818095384531565428135365351783964309053224816431352958589327335881087061859157516617133464985585612362900588998889654365727739135065382226458066647539969911705274905456546474048031001449907308887433408389840894132973395384654931787484135829110576379248545934015836321289925761595716044020806324793968331131472693258361918350534596207581148106640146036595137333061993526248084327234070171814134106764655415467846737275445163666847742799661092781215155895846515614390691088913995924057311740394475155460136233352192417159141754416723923184071694490806433219575453672680895275463483238253226277893169662187301464163087490356395350605624220884607834037443402705339992440474517931920601973850923709843708415719683114341655504490325307976957565605210381945241442255814229398525107885098984886088938404739790306384456827344834203447446458747412583060962573157180052211505435173502330150360771200293968645386234741674076905656808306909352753714385297681347570783749650608797758193873510657718118530108489118492953536497825311422512827085022232605819582972747991474615009252346122301061394849142376009567792594359939780990223878886371432614376174727249712583856413581186273864624610410129106321146043437943161160840520406237611218802260326392489749930647210467870782167436733672158474934504054667394007956164704096767703441649525204477106085998586399584360389924789717168044832127317041297860732531112031711799605684115477723412001503215949200801408176319504813002338973597455234582200918924810918406078792813802857524634512971080350808851562823513889080798623114442779011838532190233451990773115374953596788907725328762254022697215927305584101902263680874349488237604085612797416695587559546699085936967701522818865362418325080719823796144274974330608938434520600073337235157766547906223678749541861241681268448598128970618623651883817249990688271479045103812542962078717410356102232079307935474327227355310281979703822852109773409525464878506770910156842935852093041638461799795288543990172232986919140141189002228762169775057553243603257115876279660989623991430001394170223115765638131741386239729980614322254047467413087934901532422266070836819657625675464725404775176737643353352021749741503269070286129896780184097716360120340600827424255471469853818904607738596661799084294024592567865462759760669081072623127261714477187558884883810423237157605412853208441450127596977757991849028922318907505674506503735559931631257225298768855581073869364970246550444357229489656943172624569795754187983737743911114752425114228910986011077326132786680753706708623984980426697131435895729564133589758598020542152042136114251093614978078399627925326725090204765771660480642050842673739835645106802124530156637133672811148010075219750968259926660784847256482421756885989549135891217031716674016526712763967376640461073390420377637359831130185178350920455137231788712791356161031090651688057241368484483010569319617370808547685596836482453490296947512641936436763035201048343863492240909654708961932683868269211078792449394014931103831793381682176263918147784328235391080601733559331686572932816292347618555693258650336768658990126654344447843639716507717070833075331921045765760651723854553373934326634638734862219249233267908825186070959459030301972281968263969982191411794137546753435887925944863698309781179803536806538865230004370388850845832383507094838098247471325588278621926931661360643973759877531244597927311505260080476649490537386292660154549681443108765267751518019339049106545921811853745412516681702850299503719697270288365887982366204862446408649729665902500745781867916978619847965875232525773384089950302145155808444302528669471045915894822642312239465174514622375806956792207955499069582635744504170688045415162531369197077658603991996274113534707930443351710319640052925709296194256508097052694640463561176540761503652620320024764052669395924905755900561772000977015587961676998639806621457659940542034185250331398169581701266892223277339314752397364807650719096894277832550871261475277233652733413075303327623031731590885785557281968036662271502707240613926945012403540776152731942054301281697737472565748384857781722844958321389413099043963775713979409338783108192557696555186780985585841719045251423507823445223502553035708476680717827894664095167815806920469719798069828729139614565642449426749968800667246258782532752560838094968893956361764497541198035815599665188006898020679832015687680961829796679642735451119259206730998486155008280973678052401127892383050516754006203273232388673206554961347156430881110605431096698927850944125037992278962750940379431685874562256414158648952949022955811699707205011785615414273693266095216166015080311614048572492741176324978644538538571059935902785178661857714037059962999485539756669119782128112852061972580404006635379596405889014918562291266840772224528605857199206043505452541451556253154919811210397371875700133462524622459468796760981057591245455470603608780684466492416851922412913140904230109491641772341329278913648941396941295299600028582395287196932735724212786364392620992455069562296373142442665546223245186407665106426329542708517218970095152804574010086515568971376125222936876006191357955666234262740525266329140314588880490921739135692078362943601747921906742085478117485256644513513911410899037926896582932147934129937314796952492847850833858195492302102365033490672422262074880644797302292908263895693064997124566744474847035389806951782860428716235180601045079125038703001337531868855713935510347968638896732810201228481246388339940032629143819186477542595573567541443435005305801752696053371466180499894888611979061582908851215994727322659683862742970734343413892131783223947813573201599378875314984251721646024898773251435809804454308817188326247915680071854199425072570238815313734862090513709806534053693905045817929937761921089513722336093795544972112002839272730558788945084199800711633272638946367409095280131644258859070402508042509498075574413582837339993746854309683868737790467491870108590269866110554329090518603390390506126678851380572154539493470022640754957869999011566611400998242298483455320725659573754558058164005615327978086923648174330221399541662763396241938535359946245089563409740873669982318008832338345265809143241934374087499070035978980756540552321884014631418407873038186595413901347413334469376442853069210042322433570166188773240828636922880212038282578697983106910766021038265011160306135382713530072573325300526857164377445333619718037266980017977295135857355840388195649081896907858717089667447222319852795044709923576130270157457956624867883296565276489199141672542984470297650746604674576406929235789993437756324303003441240495576502677723004769131871161844177588052137589811030585353319523664566629512088151290940467139096125371509518581248014113249331937686317998349385212536794928154123897717319805321668895124731037233185087247979206393567846910426630387869835297386173779396460566905567969473892503047973672114127036671694975914480190447502626401649891579650534300872210847326708028760243175520306616349607860919585430968790216955533253124738027692611293995315334202420296937657741758256653753792846254000626705263831464949987161026529309508433805138347139021897145639804627667905857294018332623638605765947976093543464071967847528324305100510204569599748906081514216411729589188434249853375729927452168059306876087603048261542522536485449128487969619483307592120898551647495021948804695906139952574098503795370040799457733739736874466877808868360055080515602449479657453063460391418581177435509443631868899517928518275572562768542477558041427323157806269144214738067966885917927111852119535679854871968387184948778513488179002992514267528623205546856387564294996362877737552429829766355721098768035085578267169670538704866749188467306992336980770421601284325738646070741867927405450495253128547051880853753992050282932451982926524735653753943066332305633240879618194468006062031960340735671095629384583496539730875056675812677880815019410935869962097419077981344091454582546597002219017431377292710544202091783741679773900643904727057109236284012276358789176251299072033982031452183269193083408210002231983931312164831188492742072105300779371625730064582306098486460270730871218103927039569605283715276426739495306959336706433261082996209039669514558997818807954935279810080973279797724599181696974134661354672826116324895719215925027128859128039022816331173882227285320393762458904489423026664839676540873602965603695057406862050202831235354597312925068585773728653299440621428766261193773859853869952955192163324998862555558021314207670496251962037712966424409287863138449692036982174508110232241300166065471438250658179962994626653736226957539598147813830183576396489438987908388175516120914024417291436814974645929514442825140839288138163136485865761522225245430302862767650365253649387829547374587631655549623513945094220303288046116296777980017590413737462660437228069322392459159123352978477104249573492416438500003698670444170714968301631990550101961859811607337342285701568925915823314457592892328098743034721360365371611337299715272781160616178782530372329968021121744923858217040703641182451782334830965984803420720684811223133428929220915704244983760442121728262708103387458917575336633509412400340243182685681015188111488948375589905526306888097797598473466873492963323348438887270826417157471797852814846485801751422878039437374182175451935642225680614307293890027603443297419696787978511870065029355594625689124060126990829127527326226221591736473176174153945932452912810461504191540876480802791354546802389616911160389076562835221156509825975761446030041020133315986324180873322026244129997361880077081298679093448707874994613647052045971601460225192926049679106324690140304600067047032127876086926910517764688732377903255736052624949554359276359988992307892434344274044253438096346669247673127854930318819553448936108485352651495878114636171279142705811457302228224073775536434688253446079936263910970508978282180330834761680140592322499679806542067451587789017786328666989574813902237143348434772540886772789475075603967087697446697266832639293879146654553432389575137899351261746479378000159757890340045788936183678966155252186201274755068204251882791175868790141273197178135728500154448698658532853674812849221550879177592631601827783425908757339517749652522963242748562572698907658701569804714297506314541827228480120306283037817828187553013329138856243613400218445983452716432508893607064399947654762370551235710525546556461222169512471541534928500546871855420020325753464742361410445332925942678303064827295496947930190356367808423757324912006285539085316869548129795524047995973352314824046068960518999435072059015928471040632469831996056772985297628937865877567432428359314620053178490893851317790094363256872255627719130028426447302481939397103154798715362344679236183141753322417917981160506754869179333610563678902528731590012372891776137695581084182576005308937216158582095314394383551103494946396290267681772621242124621881577079654092166746741373163863118100760757148943146263381241414654703704124866194755828043149370210025203782084251659232534090808919761142980202731590826320429916664454374551963031045856060973174126538215752661177376637749564834211935659842946727583134971501013050270761345179775064550193784110788098590428650277009042687168224991630684847764667197603813208850504120062229615312336828863986908473648410921190805529614640627797354605936121891358626845053412350611945657016742447823258724352271552819527486664437137744670675579781452934081314853368410914158451959127989961056086675821666369786541300459080810825999243455854170106071097348613727846957983922077192201484039224514693718572742466040672498783470075819133124394208948148884011480747484216656008766326561970532618667681865133698752155675347180204867968998448278593640103728015239621729001442652416137275676475066331704860745166387433728968228689666993643205305766413448480428890523086760043292280204242547414332644963699299855034040521849956654091127967451496809886439577299825583498547568619632988153335762064343225014475221145617080644475109579546639465220158812098222365795619134719975123415974265505996178227841989230796949907768860747629529566769197027445556788695561173477131388594283763770164766186647124998555080309922013506225092234988803339668511654906913579678008826242971564185900740451207019254656196283314197641496754175428383322774416290722007986628524730937292419551794552430900136247332722129894267718391929508449136444770591147426336728522125919542290012880866184598826463542541996629608322616544695970617656869792694004348355077718492284453553027206561328210219371341807240913875361779986053616597418552094014346912917055223237559893356382519159796844709272195572903767735433783587026215575722125253885325926817569639176359207427633714285063812567759558398025836486793336488684762233155692446255803464132753680447906011386339083203448699893078452992772005572682520003913030080424641566431320979807090639642003432702001083820551316635649177187330388008012481082848090020706760505568573226874241389791852249167923201898999577251040501149241544455823962387247328384396543419829755324601507853556812320770430490143167100712724265377381682068186990543561521049614705382044944211472586988868613450180237849285666050353645365722336773046703089255790022437161675867470764281746586587240196280459362015498863881214280378412540188718506397791484586093098431901291727793399449933406377843937196416027384469486446444214965233081851773198460938704150740749500572824237627624813494022737627870098084091588783019021462233248197461667432148973802414893566435541963681756763030025794231580366935357225722230324598373458674897604326476617574558268244515769709442133209480917218541714229997067021018325744228533389835022920271057694246426345253048712724561294175095241304352161508663262657041896417619714241980523428579304198815359853715770030147420384831343483137951298380609220432311375648457153777386217085165537188816749562021380191392759872165467973665584666480290037783664442516292554468169429764150479109048561028589952608592663432883092290282947811508227149029199861322032717246222942083838451002625969029847824030874776157493637974067134399511137433498026377227853994797861549350446705057533212147985893371521987550412979501093357998000440159301396474652562784790598041443387846779000052413221435212060794675734413043872194110419357222339507231614522319350437875276359363758719376518239530274372701454637011894324624867390300296242297705544076854032041441723164054096545374903837839758326322613391563513406937602552386149479412766345495850604039011319247277266211440827676534465639083846061761079300020326299074069911189426699846126220362098660709367376089037563513913223262239600621617782364783267661193207960259574727277274102488959424206642173218736577210821348000774936933004258515227855150833901878850731958089691403218080237890423499613632694420877508280852601103784728220170452733169722621741699913865700207803983614304034037278708326262810331902038417153016389020043963053173915791625585831744468583100618184659327620974848932575673818751192344798969345709345912504857148928041761810178890777746238095724346487188511859536120519065082983190900633561024208579174235971225806784831515812305020939471960609415511135161993066072509170816603795839055469263408722771701095653143152198237547833512436078933446266212647531932886761609705787268144799817590281746672801439675534124659038648729575604049176714491346192504281827630284496623441335189184616962230540519892437073595476738868258324295613934138317309838385515900585977164045583065341522950795984081583977804162502425849614555446848816171391102316740150740699479636022889610748051946884533947433891741692375194846077990244616816072639495722943582541662431242751715241163585960885708292087453064889838304883972237356220808924696887652053661786031634486118775976188518426742566640064523925349762722377805703138017509571451101715533471062570151375750953152154868827348548908885376961540018991795587325105130601092716136536774474919382383933523372011609321283353673257159478925979917339465127861143941843055868293859057492258898785323879269911665326837151368325981323938967583754522966593886567389451713232085750562397449002062253318970857911210339673345737361209704524161108072692332007803933454038895876345076465415615665237227548210618260997450056660122629992303090133592717623512454494097186038937253800419436334388189200352108267127117790221982273863638551408056365496100045981787779226411903776466941263068092484880074578635268290406438840713470417833511562347385918993034632726090851795762970103933186006965143031111401547970026275751314698055492337164198423860730288194569850659576056050161009189718344302375614895982202875125106395823861013091566795574938658424479819792612045603803086309463036907716844039635463013830132797679850431302750477637584567366075668166268758107871396199897913788016178884071575665026966675574197970375638594840659647833956086488083172575344864725773645780327859425853974819158422179866645893518708516394592295351231344013181868867909103345943046683238726772923782932296859748011387567777677609009674301610742015182421150823398977152291840498923399075899076277754792341867420661295297289023713729325346445845359109254286719858122475935898391018962220826338162229265866645509786449688358147515650516515055991257227266380625741863672377727866619903440057853916635156383136605697704871164120659842981959976613778959864488517789367356398247878015532457010425838748582489464581949022205177210871499194107848880104439212528762804577426772301049753267014741336567321845785325769466425808788543924249442851552621867643272327059785414086213679407420747877233720119425673896907173675554394147698452847156740572216001120060106816905609119476151997273427158469806060970725866129001249736728995172289109106371003782350052740493407604427034233449577915966899694768204159600709831264970353980504383911083734877531494677610161806197288739425289956526461701659333694215069107621441448576969849784164301295848602017685955653645012088392160480996415635628301559087683699272354316195244089021662037365259137260062950705494554478205133188752274102857526912374258367440185590181967782309760385210160430176147872533278506974229749108184241259405623147842827163917257368014877985025823348322661536042420682178222588753102794801691302803136998203901159087891582473227797057638525259624507215882608756614536457500747966281504020784759145870595795029124203405120481576965719702208948991739758026680399285686334897177711115468692588346183373450009898871815160393344349563358506306720961872507362739087859009090212393718481729580351670902310696999096649069403262315564303306161729180200110249453459379763600109784897924862366995192314735245140140221905467051164616227769866523722223947648269473987134525634780330985795901226837622602891634640656852655379928835776535457797136518660386545128858893896187525548736029843136690265178458959500777803628216387903485345188929884883650856941114243684530068342944309693250980797428189535330093998577910678973122418396648067238881218845592651960417371013476146810533926617661543894175499364319397225984026817259467617441183875795532912280799617148064396533479522426017342860792416009210558885782332950085279124372249240940866148818213669772026594572904390929547561743095631385318580874671800082764318751550052809275530492428580144624850277890308886945988379866592996469348693768306306633978902725645534056942598336609311045014172758182638055211216009050824274383092064138497796859700881281895009271186118226059811127027570404028579963907530637133145173699832839132168703659114933507319997500271619561485442878758497212668343577852599881472451564845480262572481811294589212569333436703460911642605071412095481719629593377765628898552730187200135632521417859433856950109451735743326998981853726898125430075444420836613196212269213864100465317751816354229118924225874547444072498596398928762541762144002851086991703627028704524584295585992856156400134819358642477768182012489081127872908156901556473097048699196154919300194628347630933701420699951666084876790048501739658603401754455457210894727310611809903374914952257199655903964556569885410863872366354783937226403710534924317946164944909903903356621688317790413035753077933690640573437969502935926374527519578919990153049937840294944513714156367338452071642774491146589771311333986612027523741829794275063007614918746882052072693594591027716052760191324062806958126811155911047896493653298336763794381711577501546068201765613777330315733259801075335414441461797963518444015031762480353163450604005817542417201940055444800578354950401420756666173795720616400567447679010061541271574013316404864017377893291045325893600876469151015306151909797172998979687015112344620251886586972285040201333081367038447933505844198100190222934248969703676606031682682842318550654756017709660947878976562859162356335363343340202912796677768990529447737241810095033655282176220607083659649607068380351828412347828450494617813576822943113064112305586497461685301973830406738409927122423210466472967858230252030793802683596670343102701148973194139295938823768043714926276642908593204749426353024361011204992488668295048886432666341345217080215060980543746635876670541256162729217053105719502304959897845066252900804658228900826440383971730310379493153252649305908660019610212080368231586481867660496442898881514991913673259735779324487503829848599115943251448739520586441293094663158425504497905871377511753723782010053543117992530947601098319710611675985917498316160348955153868528052668323826557778566602235185975853661235317680176215958296144293808555551097141359797339348890437612688270040655794579152865763614111413801578804045413931004686849917482475424586674547906514069153111779027439920378001409827961115793783727324780654834397456861999386267184147891756857277474806063511543644983505769960339405088272256471166403337984986810428753959893943548767231075166522638518863090674679204591492002309735587861746314404059486262263137570722121759540675373258879288848137028141064107547488003455763308198314938834971258744112793707183878668685615889752410014693349367569635382439720006394431429441381867774877818447241845338357515331397376745375095057535560857525673985849393892884954007787178316611629164110524603936080033252520589551551474470364384569003843902358165398225522059969157940142120280900222991561779012006342400510948340981176229153881267585914054771606360605238713274942977987855395176815835253343359371753263584426569136798050966182947274657214166083227595112180734651944225480715020339047458026511653201967374331746698011379895846487253827891091740273830275586752824823969987683072285762005831572577683904202455121429159287582584787022409833117641290403606178777593091834367168889793134162490199919411304390884123171071648100913779167200652859258186494822103807078808796142756234831017732718378078398298208029848129683233398101962644372240067437974295371998195937754167628340440552442840501950247631322775323732974491011141179323707847779501104829782831532218240417130902689848833200790927013134419173369447163982509594002278459252230728652706669216406058434347486352846501828767390350688046338169937676116429949375515906300130420522201410718472821927230282485204650877321309559903848872403395044324113133116339587189613881275486706898113920332845861367305493821915885537706193082813743502529980829461568292683572196538908682344086516139868531558413791361463447362633896079858190991156022921672563000985483720625858569561803176737065286853225832878804786194980076242761041937321269547689945383812294173449924659232224097497033094120678341291121434569571227509413699170515648338122216068080294921165871824797694148422937173864347716046172509195282459643892645590322799135150630094997770500471083601419547621078310117233257894079698552195080955597297603862515443280777405929803902144724284376509160061800826995208324819822389895247685934981733799568416924070550443161199530550616908067180740693814822017850884253362469447240532025817664682209706721175337399457840945694088821025975961643372787666504832055033195511374577267946096346145195131331477724415555001023635038147587611801639905353072466688629926598855464285309691588165146465326141940619865490410498257066911829171728916225994015279463487930162130391665846832069365899779050850949766036083802738478624673555549993834044635700345314021781182112570454865425146801984930684097745717377296612325426986139742767925842298042319750645173762236797081369013756759936364397376850377974764623636362556131565484725281707443526390488056300424570161812105884350817979586555103039199686633122335113894635113932096326325974322038048805633257118734086974230467649923225593840127343380546561645203832935459854093184785762956149989293773865539691824225571759562184667905172033515744926493100421654332486184783524963338221736046240060733175899819945883852264513218055583707565066290251556015969397223459148576305767907417233324218451909506554518264350787907167723429509000333171111740692044632583658268142215736195426595076664063302370076340195655260840525392237065781922897800055003047840375675960292598961742999965451235810053953084870899048233835819953974038623607631225237215706576982203126113469237540728501931126369055762817843279346205423199398325847029333239546235803018444458356699323145151765252615392216030335490504739830449757674427195562634023568666488999769418580303565636035377386097196895928864194417929955030903578302503302131183073566047924413507259108602255256396267349315248150827221165046449305635425876750722312543887532115579625166565461151922411692846566906764149444069622934916176447543964116105644996748290332020710542255518440774761542174867689376188922904128071825868148386429710659581617901532315988023594409088775194804718313900374389807708927747208411872751477429524823519197554377270820248042355519294237713810772121161128909170253694953553057554946740817231964981053499294099102751922412879929319242701780850458563650427125604602264660639008391277082745277452339540415059399660529108710370871900548667192159856091065132780508356437190532102545265462295006068604376516454354899183488638454691136217790364352888203757808869234732670747761538098251158070726157098819395484845210331619827064517393891376655436997615655274987598542873182160965478636850876419299869403446067752247080213381772369477405849306411963117042129637831132771894136149826676478914391219190712506893164670290633311137446398745118264817159343815609016817174483981089759028619118278574073786554492947813216293388720653369961119851319183886615483593110642331654618685776436918207450941451932904534756886842123088885364368700338332662583943446483623600775248515664777971912444108270953047237477966161203822516237249969667826534831284114360339458512925659621816815481359576657544342153274953513987866688129888737634224169738988044774031150080707877356108573622760049427977090423053785484277754190736055385836884681360688613161225437857636918074150950975634765603983805686003192040075488261168948105414707707119128206386158278148922602785389264878354881940834811810205283498603745664050724408967843273856979077533671493270846677388304798118468796061754497999617056513473122222614732884254854689744858950536519391398489403712746089126798231760846965284364170281336372660659115707902739107203685420586285500429269297687794310861106029997626023602002503553267700393421899612906405886183191310225067684794161265276578621494619017561983532731739946374697951286070449599578637675003040956017215073059150005084735259028894546451214250176862434449844849750885677564261079949842810147962016612440775346643484872057839860950292733893010300265629101010634161147120753862013273141439999027681108851720621471232325681369770542832979715535140040920562952382427952475901800722658321521360722992283300739711842620961899312388262885962699852465294964407792173438160179390327035962556685486485754876503383232528626470078637825494274392732947857904989284219197715169535073051340725295510048519883288751824900108582102976487146850056700599086236305454777503191326931299479839971767065733264350144376918992058478966023423822632865063343068436671928474400510092022674442050109973044022266245793512948091696401255314175925192343118566435211468399556797374857153499727144210045307882588735405604191464913236843636464191375144857763886856172074739617380279476110506486327015383535057351634178900979896501300819721082040481592509247612903862446226045667762743389308421315921576359473654390016665375311806837887541022326643648372177362576534256199615711975503987419087254490746634719892501722982347449423460040389243160513285781739582480453382276309286145170221404501405044968985795051006636592168381978422756384672910542528922951416084605283488358104147768245886262626360392233981705188089871050402385876859667310639133044883558983987589537987449094040065316045419601407629427707985511327359656393071109968096360262417808895288773626214057030308980578785973082682327509452766901415492868512597431831843643775140891962381066881194965835402988227223803601001257941239838637509224064822439935915966275551632884919569125332959905972175481173954041716781713248436157551310635172978166201489431344508575945865855107603895840212164520357459222680734818305744609745497834200248370948675765015214019634919929574971133601041555158202707031891504477789670244134031409056584573979126428347226655341843477639623425117172269408139677928987108179765478085215809972284155224807289317366468370353316450516105668182319426844696145720124495444851230212562082917039325191566652345994077307082406968128235772902477091246077213295394851379792464713323700691133371898467016600552725388938564920077857106666144814015122874215388163742562034394973337742686388278322180892453546627964453626341338965936765880159404889293081380385987955926202655554843966187453996707213030273630441434560581089214157723170769420945749908408022655976040617953082266958169194387526455782089267633927077889944241315842506235527010866700154878725575843204671517540338714289709079998334463701766205032097091613589803935150328111083826323124207646750440843942819845478284916731476403420429216019165372192251922424423026650594120337289764634447063466794440301279308134690536569924306690469985411986951398712948873991011305450332501859401375628333341189655003370204074848345986794758967605534289336477018610260892318947787092290544706638565676026366257155775799278588623096206124578651810474368367376403149151936293480719997329619504217525171902299902169062030043355748903825816923620605001224197307260888529117193325238337862521104569766382300903679274163139770453283408201340602928131009407939962410382942846608254397678890726391631767901327938439841582803914296357027216211375797278256478978768867085695617579367995171940770663816753871835602196235158450944778799959382183914013487395215951509322077347850386565378889592218600905029888123529603592584986928871973685890326561470182306800136591937401476198026879097139527305187027528575605805546613257721738402220632415296517907135337175390202503315930123367750283072518692759150782035348624335803533307810843792668249735828603352623311289775376468725029413429078731325265203308738484160204118227873652433670279420229603409702854873561936253849079483413548803955973913095106823571776492663618769238686000933365301587964488557625202756947082540139946274883399338001449293236647229635132857128607149372882060857405962305731203710187135477011502964213060631872210233990954916017502910843099228295881027075450177349736435714516538686529732368830710049410408495713134337330970954369527076636661210576585238872054962026183601492753089336154811880505007090161099325305899195444851922687860156795673459969315013912450279423525262439496035851250277248208776044882274025016155843450747323521772576690286941886772224829530308174606585653728285628908676257829471678934172402725888487323208133971625934228332599485754223050776608593979968901567163465317168248632759036121481516955418331126743771544015029704837510439795317066653445554828145707030116283153959722457188408159585527633161877826883939621456547942316060783207194009341690143603854030006607505520286287348441796119772013373359306060656753896654349376881430979541060630831226119417322465780544686166746518998850579755654347976582164198116076482155629500842626305506057869843159048870933366122892826114061032679329167361482202389363970867013769985998183468114770353330333523827598220496414757881159263296563009512259568198565797284748609713348941905374323192698767230628191425949420051929285748531429630613447965541866263210962526174573673651517410270793561560574830924702977862035242775348873861540547420734353606026700221876866150708657433750341308979287369657472083719854829469158403510634075967341154650310869003940711319568177910593451681272118431114434089497163639434304675274338713322858227647400073833519910906073678551899864391536341312956356947883115484077124640979733796434415355112083275714248654923540678106444089996257149346148248676650231386976000442600365052114249602594498371790082054902680359944901996448397807195612698195888026098093107357707556402138232202683548786287287018196510961424543913033500559814094594122144805054065382300693036968334186978144601979671299478866970723629936317765676028025087952246938679435085739108095166084391974029027326802555292976217306934170660950164579440131494960346525645432017591754220810076142256022661289319329574646470196347214971795626458216264597467154851499241065317304692460600347030299002834104756322739346394859719231958686263099127741893707173824596760545079059476755488015065253654377267825342654207124776098227933151092596684479219528883308169747934092494762445245019779624045820636472650354067602672290642355452082329784246342058887991649817929191212983485675580441183585907981857151363615417222812517121222443358022059159601658355298899709580356993769903526271477344933615193253740180606714716532285028927934086221022041834708555082035145153625588708133419947276892938821572724904635073113667758926709153428026556226418624632642217161515945444981042916202374854292479701946215380312661676563053000742070510361705685922355473824568888620147917484227965848082875210078996015442328662286905768852315632563427147921304047616456339980006174394388412632793529096483599200308378637559055946367639680705390448840203022440044006057194623564334126146305069130393954612361617285143697410042124864176126326484858343877715178413638757081674968031441178331117058347596540063400399213913575058930852082295961904120882431879136609527497145956463992074353190830609600878595050517719758334284030451492704473465477867401611510590475328760141895460972187101374612150139948507763060801707559118357936385749656550020710592134342571585512128779784802917844100691180479201434069255386467498027247106667803911969623088010652422156918482552423982326015940022908766160670811935922555357612174259627388365036617729875097623253897947728499536869076572281215369504418430634195516515729401090824474228557319915833980845900225005153480093196410703318885611547285694527176148272372603009452371493103010134925227874223155128615639458612115679100691127413412037247097357826808556194939527664310172109562622936251377165371097669714066433661131229732936786967790188712929432873337760133035822947111931168441939487319626839298716910886978119068522742669712174249361977170197562305511929671911241744378121754927471164259479781486985592107121066441144902420412565503478353697608258511998833711826810624613713985295499130219787876097318000568009107086917024731227514482706122471786173342337459119882005792647872450497526940375235686984232319837237062309580400470487790071232400545423853127075565797081100936817321077053741406284328345227712081019971268301320250491458347039218812511749786362352314891175136904634187249142258367942115603346357130084128810040657990507127513513402505622596146338738567296621232683888705881910969014509064155750707501622412428434170732992748694123333682970474726021525210027819715394516621534009883734401344581098489968642059014082310926405504115175421838558688220871571957484963736871368689031603481668292473449419832188512613487595705788366379809133250135205613468569944555672965466444498865187562636331149719665492777949870648694909751875048041951626605095602939427591029237936437616320684553549731211778757730434949145484904442288805933423586341168020195589292237514560944370150129568721851612741619071569077402278238519038627335538319411821281971077649354762572764823377721190700461150257353429061060811894005034272560715496647877658444630395424780385737363555649295364103273233578949982584831036838459942907892796035065432783774174795207931112514611089603646526193280754742092029657193538321459945021457837296418950646867199187023051365979516453878656790766518918675189365407526648513426210835977713422124454858474068757011518130225438940963500283481692091719244135403740416891152351765599923810151215329891490508767600448216457118999777023844633194356479242888411722388656721102698108784600629416466384231511834145888634886760396428813432142169542185095575489389021026507777745907416217496038363625879950292933641874603384414037899172234971286452039120452017568150276265490609127441805396461413718337055839793537122210807631099724648876653717716455910688323130618226355797324087362536441937535147587919685669688903093347643468821506051057477540147704228703578862836695595304624779891873306968690241800854221777716894742881877408802118783868023873932273703627313202699973249403515623782327351612994823139133321913650100060828868193255019697790134788567789316622887067069692021238438411111938973025396487842218473320195075058734968470493886470890620393230841111144924590502416143012005092291986142006434406631881841284797747183499456034134250498912599987225755981393179120097874062183628067991168888129946368352612218245706916639711579699031933701292939453799951822667398794379361157391574727526864978297694178870692200195016027049719942823787338941868843037091045395482461390530369517911594163087548795435901169363554521536345081850763286215990766879481867250644667515456412197943777183071445832092275913576065475612691345200053415821665701269775503921801033938338112086687814650745167479324496321022292179212113887323942156352753357034667150779652366284237208683567172597340606663091371915731415848560026650108386844121551527724232183518202124273305816351995317233339221808416960922929600934143880287970517040569331237234852575908821332265004568662855062821429866698021174885423409813884495725839394664476855335751250542833187702172645477071670834213622061941945876009465759507801877921283554951867964588849718327705953173807850624075214453652562964346786240744442941030561982265541365992074596789757007306451737336921322302145242378169864329840724347496665836100367193471950433126835130160745325990490563476415113561539352186600399714005076202449594306609590390938752796551074448526629215283090303294577188840309941126900831246337326818887343524642463032551027883945811577517525947414101949410706934236457611839009876121320861886967712016406520659280037088917055074156688705876829286483319132410775793639056679171275300779118187986982655239014781726153533568699438879389196797635264017076348582212056947309303189421353515106840667838769373519017848795296349481269647588779037561338886680886167312850411698393674968566991749413294097032432770339143772708301091821659857148580620375256387634900406469624954211196531083705604367036001044558262813533474073405602375536363967619064938096814611062707180862005064932078497011150225853352095051775914632679790361946411722273254477298410967246113711020029144389982981395339643887888912350128913401527963131448826190435652145907432327234108449508015894004664762464076257046444547983413143383015218358054251914603490913723608738933628465243795604552445486553811574900329803524833170986769697436487591320380432264618076495388163968835081791708920207017784249374129279915591312081882731844561472323509833394309039211488833043794548224570519030556133309422672388925168421629906379008218223266008825584272462906680015112951571648839940349775184233023795285499465712635174377178256335722236166224849760576490387977237175095101452501829165934200888806843427019002475573810215529817241499242219274148359947365381361273194168282460450947228997162714779272114263873518427154151163923537719122590305646137209876674164251116157681238472533661938929705767932148620703650527871715343815788869065131680681721665886638575978308706569381560060944820012985003675438722171252133946918201403035438094474056327494423402459025852208677368434412865400627941942580422997280102750374621416052172674309595660719735189143407487437292239613556693120408522960173877770468733368092648958961242743702093443219555331382567917688787659062947086286075460224572096023146802318057583333905592819249331666480182078644901337118840397008404181710295609785244902373014531495213335388925921924153287875038651629923145490787379224974722032233838837425795687684760293294400119749433140473834830379061126166433121981441789290688248780051423908232699279446482114802403105282145096963842652956706245846402809621747587268933032269061266267896729054950126740298745523022388809989466354099511246169251125442919234673324675062243016945544259062967438529308767856155357616266450728714912310392622090867355948857402229279080542917237620578236686593453161183863384315635075103943395660227086714856273098091780882470992228713374012495009559929275529701118161632639726708595746116858854820892900470739508709520384280739612843476470220948561984167380275292332871878195093753943137147235942724410204872724550929827492275701228916939622078433964695158894468495114954674895869054951234198054999736078945453302875015627356061895712063235274201081682090709751353465069395241402093215077407903073164582514961839817951810390211478342829645211509115797722506580072687581437966520816456800665210634278622508958522768615016388323281282470988625870879319412712663119036215852670960609674067994893234974340064969514556523700848284684687312693925298156617173632382082397226887747760255389794282594272854249815538803049664522971583814265810806721780205680073971831750142930700929837628173092223843520961595099548743540523613449431775829509855282190067430982244841477972245992261658571862965362644046888095355896778300072093780922426488916326095427280735973068999798731951691636020884892085411215887365450484591104060194461025878703937257602269659776306987897869590405723752938764311124011819271576533665881061904650104686815562333731004085185726456608773686704400088323013779285356942266501107328268666132044473614746435174422102359908802436407815833027852423299324357604085034484562020711208021425266843236550539532282351775026105631119910581659165573503115146748584336846781763822093549771181217064320742846418919755968943631996472279302886602444523960643699140627657229203897229129131311609757018100043202554024364475655333440983609672750025791138602996795721356621802587609395747072035703591847131516031042755227982751344198998711503376506316301634075504924039018621447486471388795910262550113726863775711035255919547952370976529132314158684740007979656447647475749855649733263124689886443217268023314339614253263806649907974076265876567112688310584319245478219021466700010209807050062329319182269395288733793671585361381515979544951873362314315035533478882181087368824300790885068617582192955035359705508492538704365078424767623040700785465465688397382754108655636866035411168465376958332587211588736090015570193340648805055539382357366211078107631468260682035744692855072546614017945563786899111824785952483157839000844148720610370752961818487613968202723831538832336248130665671571829915529249993640126822155632736592996661027835340710435510897338668847559500769097238005237485554245228317672416933378473155031389195525846049592400861335507928243035442346934399703577779501958497358168574130347851564202251415506318220473770169776576705299738985772282487691634930080888390221250672377216600402689619730022158780254642894481732993874583413794331780929875224480044429275668459477198992182343618150741149464584608216224119399350632008663460400984216596161486515312349107783718790118479193104420131866821272842936362749668412166467691544469597022352251054063726567225235133084102453914965084509949354610343076495016492134666696046968412919410960453307115713936708042677171064039396100758464692853969231447087871109274037747877887169712562202620829513438156614322865521134324398247759731463248521953216485650660920329567782858233821878017085068693708265202991770034214355754589420653853123580667234489173403604052273795135400085488627325354710595615411920100105171543238823536174673949623447274537282030647458979469696431941237080763598314049604334644791129680216887767550478597037568784855932749909864012742144520896553159508721834415140712239030036333753944922871050049219573154658803378650597583059229085612064204445469895800139865660399233316114757785242421541922807794740289306436468166396225607239272974252755916870891275253797628905949964262538253823295334421457182353955850535648646726981266281950025087111829600320325491262223494537403218021033851462349932455678150222368966609376659853544419303153805914200343739779784224840915395482191333412758119249833763665471935280301876114619156706450082255278652974870999925876575897573918197266672499374515302440276696098819850832623293930455898300335168614857251755294148151154476220774836414860900807558858051113228071239160483406664925827561037610563405538831666509212930019434188469381295946060108598770180633733422551572446412150814531023174062443511915178105615984005837957406160587815486756572764987434169295006887208416927156685506837956994615763773748067670355927315427816830516423013943604166075067067763153447062755042974128074394949014907383423334768440453545014551960462443402406085850536154698706337774490446839719574963281209118687393143798186144749277311797964242813753943167027313056981709495590278022823926705011299466143293439857789220699528244470446263823141246699475465120744166956241482096123587701810533689182423918096116873014088304976841652329756218559721479531565622153412295054074157040825085571738992524271995675680936159510184034728557244796257525073291754961425571498059468108789736925017626498934559137757081763215637121828372023909866373796417334664623865019678470227216175679399678745477632548797867204396001424080191482206068739639100378160317771508382547481350166970277004940744706599841112551284268282857960231200049642549236209541616169341550537828510617119273390426843756150094613074992000202541216812722195785539931620340059518896171362390995577116949515305534930808074991139103375571770606596223843184434626789810231151302329427402189758974279006297499904989585323957320426938677903525751730722097039504859778660466618241677390251967618516810643618033244727263339766199444896849972684376789951117596379401120474661665846995218001826941280936366241151237274926781370247957887596818215503163377008653866094833595207061360715939329468740454275008529233408581621459907677294988905484598952363533702507195274997518324306166094211589389854810936918876194952448826583176158836950418048963498568177351919925986739168671985385699638842583590879257543849284982817464034339619186509744678654755856371624246357817643282010571911229362030627762996606676786554171833242270506933307435619421930577493095038766078526773358406262047867405462989252085191116713600834252180133084502762725533962152817490054007750452433898978079531092670582399895998867383319706383667788164261376786497464885663640256448715596968169545549009109483121823468305300562643193635610239939969473107625275222791732402988795705314914925860159953719974613567392179401992743246707035658958638487833408377470496401089287566159673146414262968451466449110182803558612988766828122807235230394901724365415548215673331551439223501094178355526128932870536508584480665741886533115496684205684635953244248257497230777141111838798839272225925351307841710940491819349038089811555545907474637662512488461538369305105466387661890052082164411407303903289542871271507319903379882620634590582760300624227356181906577729470189367326670283005428191180090294111606303154434471143209001534896089478715515192851938123715653679694142032628828041651469873738493110876197066857232389240548051172787657399152518717045059426634831933408901696297764175502128902680288903210762524305400138523013437469139374671192929245552988203879028548399105004936453470582711799976989941251220885083179595944959877777775617084864574419702015159263994721869663937318834553049098643226910783154235059710538636064708570591304313835304259158488372425885048408678804679934234384435242222567095934779144155497589095415829797107741226134016540390542670596606351183890543931000366482682360429351883470479909898205916657277071532508463309562978160904478340552155767917176319539987957874725705739439437523164861414326534310870032830298308279166286473334003063975472937573622683747390608476881807650983789784981803869317270113826078604071789261598402007228536394205830829654564149801220049230997788272207018196733014435818560898857549651930066912476948787192332892397589654260534868430834839057127497600799562550623162624630406182354213010956367175416085104354698510960697541150493494146966020236366972135106415365347789147097772864975252244989313718922737824986314430074515179917652277069056187566745250914082465442855657168624293545582768847943293879561141419457584060585516761527260147702593577178713025576840512792448064991031157586088746891152140609141225372408407319660244327082555047758955881016417704610339583906147096504506141734240970417709904897434626963336332436586210543835013717664964199978213504529988721003115753815293903949975427690920950476251453543582347140366333112583742052774876974531014587805834893362640576066047654979290756911678053552878377644111232267975939269120172377848155406098363619093030201003977193916244142412538169613389587364172964999190506439745899302180541184837832124881290688197041264023508045983264885084221966496976513905914188568984444611555077302261747114161605459680318748962697087741463844755027456652625706541173480077836982510868883112469682621142715596859465545178647072216931199231842170073690763071501500146042418451415919516188353683614695125613851021645489779121212475533954519154579929746639938706191873933761578790829502253382663781331559342154601022470209503947636406718590249373379166112234570376324818667320194441059075193231837770441954668903751955416470806350884273666875690743143007396946742439975584422603425704963885285206136281267146902143439302702215842826486620124062150461602840916737237680938737037131989758702191038928743080269236855755233903288463954882921388204793326226498817960225539953252135345570005141815142765086015180447302824762278291786014917704395622831084065642601470931813945361579904305555623551923842981631931391416840937714600154796992437033198654734789451744116276233148304737857781176444192151452756480846450462493015550061376770544530730966938709228868779822084441455953213488644819235361342640662580690256887533138385825014170546020312032882848363347038674773364384725712069337860808443108823898979079187705285886394971663918711804471304468713241505413473070353691847893864886211665035158365474178042860633980223275967139731681961301136740154453516028855068881757847784948285470082277096227574217203231632835298923957823018122524870223449094804799242613297731892820150979269797933094835312845872157903082571557539408537063100547478492835251934020020295286657625120982324942936083127279780332792552588895783928406553262983108611591289950877631746422374396799496489844596720455089221252656459483828933573998639016147888330181245776245750075904901429387450451347550613354948841027954806636467413213370872627284802355148281840065045112039090481826350985067766817369595071431293813478055509927426214267944533352315343989799311358072060078064619919284289677623804178260463466996949596305807593206513759198883143917107075527951895377040344711754183435175352756202505527715016924308327630285646080492732071309310627592243748588586089137909348618404536207739551805856243103213893773676588377741729568520455179590759125443132292187622990090215024697424841861280799337932696368362282742616221212289202142252449920486539305575642119804004304281339536551829032028006570314039673949305906334884817415644855248225596362602834180260275542618820607597817388827965378551567877208777228622119765795666750046081283775073164686337395042399991536170816350546654575664041825365769882828681103024536024293863099248452276052282097151893132987776672196584682738974813622761699592386292454845863455522186947856845950486686647713729568976852304721972922417710563386107211739004210154708958618831687862418534128362921588057924129083650556455920067896275305821454930033020014554968995111578412137273350423672768359348806388211564166180781185156885089952368720828792434210111295279331498666525501072594544723548850012867131281651032692941912451149331048336826461745608166288830629075311682169249232783473508461029470706415439323208769531789821978121193909276390494925246128330181769188471864792730329494156859260003517336419078365428466897214267534866774775968444976593385267955030624162474031072026036944850171721439493248416037854373432037484953273392183999031492105014950576775027037699869983175871913149738968691110028512682225836043345695806305855251145961778779545420048444858991404910682653963701302445408295925607986699220286493423390601404999148544898638489934527386247217734703532957877574340211995467555562135012701504185475743137503585737203759087723512503959743071707952170758010764642490812474748882202443814288397152614001051437612558311335154765577136433898258271189117476578848821276741061370992660898994236199386460609717162277208382843593161613894925196927753717583398236968834925066478217770099029219279107894653632447116991191656915290216484376630263651201098212774254654312372971385159397416289835909945082125633739451204428800997228610353057490250894180976487734899251360332689704716502090901478207328943359804924022883175255693124218786897767125785033968178078202205481557396798406776053700177960156053035340966778951423070985036406714513864343427724624160284806539428390487418403049601571984936333327856826534172468355783015269528930520671473544166579272144453800131083522174050546585560322271658657801103850750014507684337336634252539858456521901401107821623656781468866427116191672831118395015255958630779712823778589559696869594438997819619109775809706130974105030123260861947296612618856481809928595228213037936128155482749341855511161039175450167005505604822009988054157235873522069800014233819789255514597829508387860521533938831026846578909999374410416207235832654036102255167851567872577843190015357581756795829168872793882186881334099442862921712192646275912676454312441249958155062951224155235804241497249948444626084237318451299168832883162584437437195544713699027496469086044107242680381579154674995396601218901202261230752319166437903146879021224896162083732640619712797661959235149683748370803911096304306952270851109616258723972281950434903506976568197202687062602803019932484331989236518081120116022258291387233639624455721827033165918031514851534509565635840639067373338813360912317928766920936947542360376166837766232330170746936391478891820736618381568737437332949217356070091312266760449619132716406325576132097655660484776364281137131063889889713120944189164756321313213994112011271211398959718246815083316338359382962799443241424488167462605404924962435690821764847219892283942714976981372546237995628578475202857784125217393995417421734528420837590368620198229681829858938869616866229686395551900723508976888839088407513644831538780230741436002878908266765147294820516154398885677552584331034106019346334120598978769187455075388874016257468235280040614981929913128992626395918856426163231322606743798338231136673856195645483751268891784577957384225261132844666340233320890310031847752657554264598828713300013929225409483317790114997466648349970113236209441654100443272025711334578623103972698807183455038190490185004759684918070306706814209757203133960433525085880528083365413309083638607629669299388874814024227327825237587272748233650672274107397937565726612639941709016381380096157062946236111745929288974472987802257009169867957316633407347698084568092378877299442385595861991549487375372173326362578628095763076890420433061729456234855114810799415259186798170753180007675453401048093557556405203547877122425769547574755018162425693003751558831255415440220558253828519835509103053110969455479991983280210332231797055406526591373576087658709738889503756509860894736665389556642285325876252888651603718603696516261258591922141814547614853210117584454736876207470553592523367040083973812543579406082330736711208590792694575599672420360203799036980046988260266750153821399891691327257330289871353015205979967972452040275583505465155145922055931312512966155228653719763442063488898614365585836021973867692273763362598606558673988404382840297595000767235546541762047934226099142282054509095767498321047073446377606224391552030118773699898978277358714124641084506544515292640088414158225829490319468513057809252126593552736737753670880536780310759189548457071375886256927469517962676324503592313018730588177700826118385702577622810525636615595670448213712098893282680364660700197168987744949221361869070359947937067199305282821395758374689447991684089715654895821404561440777136724199769595262562239076462524046680255065324110801652465741883387359950393753022913470665401437900058823537020794973131100554577183935376273539350628895360659295582319287957027065930370573925824334091775781661763313369840683752363908019231709530741414495696232936734426980083656654511012738910932879184710027932622162319273321747758997172764263391698120917749370638888338636723295934113079786589742600684653154727156576337026888545221811448258450889634111513862067493387204793598366030063048833296091497032395309411657818957550097630918380955310439900957838014194055704141770251474137617051672091905416606815492381739966853994920636652951790700039444237774236910518743311958345710391443312656309659186891920141407983715573705805348598613941662119329901206465789481019763173501707540990523974018142466260116832312460734113949913760406966718645870532755692176268694469018951302356193454437209428152563727112580809756991235450911048913300170179281561548189143844199320026154468386263500970360029843038050424279291270642120197655979494552996528577280206270016258462029046204536817217653092160958449639519879609212477385072330761694874677837972425471541515157147362769148631817151402481209127118246490225616159610081395060474708409621535100904959324682509854620340920015623204306417954792392700937209868570769974864442090434062424547868704173669912359854110389906632119266536890040235340534031925293079182308052990912523298979345644926495855600883759961232512643140579089884897030715453636010886816397135191465560908613430913566724880229296838960863561521394305061267290866869796021074158581639565075640029085234386028183095507167675701303963260689982356706068477595453887736946050963981275901593069326269401817965763019806261764954532328882648561376908919083533592536663971576840917022317162259496345048118983585005091493639826169763626380861442509315644301099331548217964290599827668135540214413438193814860411900025802147906916867766233699449754940948095600670851570013256011805634009717051918372764970348362301912780340936221076951715094117883969237466081235881266216959355115198964937971838529059153714746113045790110181921989290713341619303239354826423022970439422389681071137334036278322966702789246104667272720090940266682600406032867761791422586730499086686010496394690114095633988162967878790435426188777475098404497525703394427032664463023675130758626854480749327367237576180427964481347088122086042190474440424155425289661696214058242756311587265755219766833617882737919257839441481340015329614903893388678700768084952631134610627223057075677287807639325929325395636812225550154002479886854599394647814088279364999108179215114510827710586684447664645864331702437312265793959497667304553525200396526608268323624368427603080090761400175358875211846592177964843533496704873126472535603238075539811285279262904966085213857985170145065184860387693997482011980561193754106012569465244168256044028597126978571413796471506649775176552737151496437770145896105912804398310941047040011025887106764628446780922371259961021281742381286390361624116774756521436087265549085751867094034439078418045270520963774799840667206418987156931580682216514580607103385275021058462109056464700006935373291231758660961668385604037119282236115105748736961725684684911627867462520110767228577982620081278693349066705104253936299091380117527291829364701030824294211671424571043594548393831136255900150928122365029341375552008552550141662842415599673721599195425293600508981032433753105657655139696159695821484316301187859935278631811263655325491772743900111342613034098294187772050898014043411770097047316764804289840923533210514244784935760833367498473153381415597240612558088859562918599214890740295014238567370145837493434565028889132337015996194734942013966131714128000430058123014504347272779546458633965325080062270000309715322203388164407996390560648020647341927546528739250813774159965743155803193430901411383176977471458747682141467871334081081335897357798277781107480034687270011023829659502039211620824735430099247695459681842369050724428965887680822071042893381149778131658770614790917209231563940180079201302461357476903168054671938325824535666510743771203535084621733696486498231723417573704114138031749308844884627625952958394123755348972555963085544135230820820623232557685000710586027535935741751340494166391890942898247584763831319421712214750328468712495226896528623275009428084248990782462607998227698082617990203783944319992059228001306660402156420187440612726584255242287114181675538516100394962461331467234384578733850954873349842898418094598790798669677421749185430698542716039929190183951782757802425029453414469443062930478089453245779921619699776171806449529105198492526016227077051431398331649068185666412690760321519763274321068269838575939324548396822939041538475939790326957747639884201390007557475934726143529175987768062580769755092697128208011273657574103004312788194898460488874023284159342953089456785776367603777636048103469537614441749125034436018342029360989153422297305062531204003313716619044315113871700802929647751469515900738927889236261448809717926918833283538257751452363641877939165797012839999300693773193534819162759892529146553452924981802538903267693281876299920664149893455349908674367883646866527021073004027618505508494070639611924408105748127170427565670889141509698310361546169981245198489690991642570274184298282640803735907863329076875087268679559361613897760994577238709674085799661852182152534634338982723729100441761590941957588313397905377855864526753146208469679209194081668628630160652621194298638895142001363370072584092645983131253045240031311018400698313806594099956534054288571369476429948387080462706852101605778056746981144464804283802005639882911484718584127967369228377129695854933984501774442409346761042068028893393499455087351343767250035968453107852476072448466922464171993596376937625391040075478463744205534127452978544451741954721786374769436226216381327248006222116933542303995272569571046799189764238465974858025728742198343670892611856920277810635678837382295903757580897324450332413983377881728610625892357121249408497950762775896363138336031420568872487097190609169408614114977086149003456049192090059741746600180200829432716128781251237218648417461767905387562918075962406539911245749261004774529803021135677766469095104671377644579491660731331475793181622949019351352934468297738582927450149673958685300089533116987029288117598815295236141795597006269008456253494558660049673674801650549363625604594668544062700909545460599036666982051732177717262690465262959785115575071475107450746796940623477518161711417108986717862035531365132215625901499017019594962485231540849311241948247602755867011814766005477659224645017644509572422414655415413563501186797648173434853591039432634737644517952367466187124005365348424875457757046090910972419245612095475787680761106960728807828885190374795025275077154226018388759987608449478417858686801031192610230330456196917327169966174367011468211076743151145480285653609512028276902082101771253589293686915659730854367555893147573397884872028781968509176960933676519137999595792795610954239498179268644059644989293196604283145948040294604846212984987805716971670491578191717587423196946544809124182479974855939157992802572837240534247565334651111673632198954533976673466120830263897401463907250449960952766665730659071281786645152316537916862696674554900406907687744701524947786688115825862669862629625936423707612692768744571602131254483467725950633603871916147229531025619745890086306447366660498842788760759615880768338958658856099259320658986071327246926213824420349235965815714787214022428703782984759437105030776263351765285341370329460574187187565026477990615961935752565395428655157899859187420670716007468380660569894424786968219250889310606372548935626865332255316491727910807157028824517842295550635027351699772906149694815817163633363321565155554733273923721823015145684809870585135037352226884080778753895177251606355804525958832811331981142414395757969441023755789896005019765136574658411105153214619832729446667548727883353628292062250593965714251258394273840467117073545856285599696239397942382701825236392052661026951533284591233755421621463436923367773365750153809841497643894307031036418092414249527146574209616945353783180994161717445796067974058541265026471477315277800348086454141153665051577068046803068753985804231240647124193880158339440103814143051631375693595957729176053771474367164748229236240745703584726510596193723779557505288056058941135523422636687081643728462960425328035895956427069547338924114506759134806154094018154402884999041402457903355905392696215626464079400394958567931613441870153730079121020871063840745592065017377858564391556757304476441699060378152182149278815136230234131997985517550963063642454811982311123278157077022138005666563352525134318742274368506176852414760471500350278197322297733884051330842226016623369523658678952815288948407230952398471003004624505770813001031958551475846788227357334356019462693226086152805683170311590558668753187232712944827392837479894382203556323348539366457859211187588175784005785349816446385455668867358537107638610806029226093692462239047608151077243244727811312300852400321181245153183971934519064427865134428136121480393949391699148925019653297724286517858767299899989743364675306683907821782807373016117321020869649806525619802422499710011337273039489714201324935027233248758693954689532350605668027176767866569603024326034514381454999388821428758310518264595382766647682466025143986051220572126065343746155922984166860081481052175019382360839291150774246513866854257922640800778569179962739691563231836630329427986511656189425441608207834168962182902654239858582401593768216405213042571024744029089482179510336848597826628977050043148262451471240351513513384886825362476821670691130308481476154878621458032439279969516658694145578695605987190572710739860797258082760022632754030631674126694511883605213902931901308162338477310211895648601698597245783882330765513247391496119759573522164915092542256548238859466374418274975443433980818131007232466332484515740660842588959963695233725258197959067884688237002792130666653577522972623383593214184082600855717562646480819237049762789137375292797450897679455228136235040022884347960259333223168162446746843038890414573614185753012419485684571108482636618147157607907116778044585464018723598299801961954394415340769276659879633503188345883152619073322661138505111437360048663145301105039772880170419087642868196253889715346961442171579795840441249095492637141289955942581149240101715221508140527506884666468351856651943176303657293848672674661830329668418552045377307890669310915869462313359081737243865410246899548116332914831083674771072738311121428402198003089510576318947618460398455375860463989420011193455608267645911148150810079722518217825613217305469455421801109090391130452623961174777004059946062360118804833130934786543990825661945979599602417938332267360081954365952771343826292879160872531186933534079203868103810778640851199151217114597424285161453018511866970020060291159944131908166668904540496958394353635566489013010335223971580400277282899136486788470416067138465337054997709673924321074219594550107877508257750683532080002370806924959434817381162907084172915711655042420463582463058552468346911650576602557890124670224981236210171321658217722226751705174733794764573970471381693468249454897191697502376963747558127694278216686827468278257944185619936394146322749590515176256540457858475677058049215947798925806704201175222794363875893152635580187745592358834426745596992459409340773808148646482570679191761858021121088900816644480659642248458266737605261567425784629618504509542763915399963997212318087064770373764378130277641338230896278814943695792720265492774250912871967812769764516496017930250080239434413739156012826649833082447972573505807639447607276321168223132022181117976187694521308843099374882460373303956526884267658858324004426408653060793525078607739972804548018758520915703181914893120361200426139037784084503414570722166358636883882912521796875371148901320920103135246938888548024708153446663215137168235011621678456896412140084675801084360537994438337728282529428692807798620387288827876292546119681869527176237282013949955341565235083233758001239192043185328757218411179747137673985066488902612627267171381144106074827243608555543696710007595723654773485920653166328900531874450453902021269541090571996672919939853262172107550027451756058499377324600528837149018027938740071238885569843243160016200526549378847255348611039742137581447118020183247672708886924188600892392600205512100501543524826029156393961077500648070996815958197997918308054955477650465547133700714359226048017274100061508503219597549893563725862506563777919105906677307733768160174105373896836168398505582546001363177408034020243693766591593147513959760441736118791164047420961109984495760734243010541799997065103005625583462878700270459002897367176219558995891409752699173958075510254897314555891229537949744449339408066929127044676691543444207992877746510679035031393730220033248469017411259376500745921288690369389670085512750627562829606473797218231753251219378305986429824573597878945697415395562264918938930810974875774126243066417120367413052143707272455447924042052816276574513580579314112479712498340287359204669008659077377813276546719348799753393758174548312495017780989644500285311777539408368628112379477761379492506688653664621446487307169141892889217943452648949114898125905108614839358100378471816839849147862137737975209491593496525363566109004597656868372722724420625167023458285966098376907314595460555569650411328748654910033240960721071851150692205736151187711692293895875438405551807640330096659693938478616049361427446448445827809681482136166289944345385618565842868286678193429892502011003161243267395441769859723864240944416126409698985329177295681763348913988001982259505835966263217561354580116672662520368747902533524577447750863894867848905305527719824775653640563592325980613269733742367418536847628468112693305574400417398391754259193619188983801016111894906012423688414146514756327432413537364537147587095095958032335047058889954909660435230915160655171138266458647533063505190389033292743674977129839101324479910251747398066794143865013932450305742381748969706739110838824021124637035010169086439954687272232553231500644249045843268899444989459772892389471452282821785522022910451162270900821969687021554366291205579232948970584584711332971398612254077324284645426164043585708132038677650871548959902462527130885795047474984701571451488000519435470388780038328396724961528390522821266265445812642038305832281829604186331766441568159019677128780274050476737880371733720745033858713167277306989437787039561042377630257644568650285804441932538436473805531652165230192376915464610366491821971881525466184530673296479460150848271722940303831397731752103076744419636410082033534550018926022912044779637031186696712227068520360331069350633399808577404680646079927794150258412705112613267453316120661488301416891937571632126380870936947934173324660548806770786939105447685682059800019159498690273827752208993464776934991771546316906753219862603128612040535340358490786751970439079280966186069514495179432622271363258244215617457243522106619133733123500776322207736286495240435593165081655715809588656074131755988041825171873168619914168354849979854138802182026256411392035679321850235187234294532211603712408483018913952877042079716493396855672241201447928086580675631171065263951186591319482566247871385688626251504202799917993591695620117816573600546959548340566409283020275182694406509705978107325660789815412307161763351930747253168548935897517522273012283428507117342250008683396594860109220572636568651794063064341726342228779703047075283399281487228426031109047098042098540975954238405239123516122216083104399581040685425186401962526490270529112795720803907236699482440717796652938996811759365232810991488351082166244462805556834798018205864654915667978286503411282610783059197472694304549731003383260414281652083608795304930432666106493800959187942996149608536984081830140623332647922814828922815348898203962127865387523029410650497540324422722065833169674763717318981853408883875351932556329343117129466357591013634604364418566528542117913826751253864202694887221249393121064897007649073639171512038094987594123330225790991101510080368429660103108799240283784775604799673009354701105662521664400726664254342134478311901175493310677997390420483353943933037396370035129168674901848519247691852738480245342438812600445709571175661966475884752276235520630599782543930436576998768593959450666722797918872691998011666065669786685291384980503534629947362284947901248653024892813409720602000661874058034022691515221200793525748766411825864565855953126933899646965281934699358237477465499689440203401872234198115201193891372680149509419079556498235815916006149141696772842960775339829149506848346910189241769679624717487513210861907602991432444448975073779575622529046505518996186628271751737162259914236456700913151534620255810699458326079950736866246150851422091526149342421142603168776986527021509797750404378995413796261912198458159190952798714656090777410469737231042582857673440031658401713899920889658426852988830666201346641365761708664653606847932803013387546592439819222232364564821353721220127271740112744289079096426196724858282290942431239352136108260877853174468360190756202041958647197597004631145742769171994584457667425927788735294621841253856228375875045745931594258152002644952097682958028378255560928712726218835836956607200858810322469984017935612332820679037229831238300600928673568679493029257724547979458756553247445922972465796540607377708276323126784413349470825732087180668765854308115194345444285956473193055269039965368006642850170969378030807650533425809342521392673001932349317366163628600485164062653345610068920036713800170711162450714204170894031699238604938019261069297248175656410334867989782592338547276063320965484633734088376707899547278082316207075648196242633002805051110332124670474786286428849212314387030444458619315108833216552836495282806883264271849740841022473164709918520099736641187310553699768647024086287424430120328654879013544644498590472857834868624772227656218469801069931028626993345592705038416574233689867525550521823327890847922366836817153518099624666847698761723567095104413666808220018087041687631448066578459533948813041546205874181662995483204917113051947535125720181996737779272680154720651890788359602467323101110394765750554682308505449337869631786502453918906673505991805600926026054070775526436794455026647400209111317244921680412492733432944495604594037995528569467543407375727371745581186285266302392708945624884419291947279128363007960292671610923348354961932425174648704272161770944869091798277457316724143885378603614244865638535656974442377035590922008152097453583615543115251551677388417779859530782764531496629779449891309190748189143602129816379722926282358440082142194283233304978878241915145937931076945319244029960830121182893247640838200655536829150678543729512625284753881168626665037218855914670347103848493441751254649830273561808576122248012414714451017354609370196795241711357869819166170762516602303421147539893871765152149681141627947277430381639255930319736274620614718979639489358010885271395484673611407879297916040396271837387973717686859547131144863710853964485832718684128554960172609423912291710313644210027295259784796788715579702677057257824299418536384893866993065590108266138604349878838246421835617065640618772430559332650933352949973856895110171401693797614787508008227350375348046827901106751958014889033050222260170580983814128270679291355346710604366718303915608375100599828755659114943314009616379089214860478990687191333704976779014591805808407571811805239447774478471125910613191093806396953770293382648212654927483253423056417694438736788002856801597854088451749376033523323845358646537939282523079193419855541002884701718453578709172781214093889856103944202075168453940994947164152923585601706295711431562795794565568159473288340661398759443425269805131975343198519785879120492540301607892717571775018461003519204300512575854877857489895103667005139840203430791694537794739480358388710261453563478581540763709479313720816732802804336874335535595282600554688915294516299822291628963282130180717218273766235532848463003979478370207096356475648805808169516284395153825846587338784467654461356457523805238384613222225296110014315807513060663460031280226889745601555805435288397271858956504479160293349355583260517043516631362702728128147376853023475524243001443638104654341397006837067939368239847956998060946775770804408978670737055039523639990007786613640679608186813234051112490445546615541577617913875577144189222489594013610474542122132671180594367135016800042623780305792443701646659553051415532006278990022053123150336129479174465697418730405975402172394450155312851909457768203751367797663789482670653216410733762345432187651931876960701119616886151808644275604249610075009814542848849014067661940833497926966619077882871490310136009140329542539862156517751305877172575926863598860689370567434423551206313678756170268018161527159287333361159003858096688502020996404614931983084399679054624000477262411783519832119611069122288215962517475791590441648685856850988082320211919587969032786868937881581356329187226102852559443317325682317780107336432241811231474968194155400382173927880119549789007663723156788812321836682067913205903181123415047732802520250513967434743141298341650087570197984863034690248899412553239967433731967054752232164488673733212325753647168693069129673653126183095212846294041932027553420446774864375509559110279935394481422264941711963445925770137911591733204522743185036120754541706992274119012940190717021363160525155214316003518879897082319504010086998879113670567294179258532571989683823882986014678138873645942212665966051752796290993785471334983951418258860950062741424053663572517979486964923010375462109033141196210206466856401616786782790756271879724944925457894537006627393170019925557125550516198024116961161995516177885446972246693458591162735315051115230035388234311841875096289838519430612187315579498791441968342355491350935960264805721383743560114109306611397748191073846897728631676555017673202399839758689093544215743422697411693008436975481036643148676939298257809620881324501361262121511227707529803081435657317194291584044888674611512683334947290612280694206648413852586903153638354046477725167340740594869241760412589443262362197791980804900678570388166726920407300103446861535186224416784894484749515803627692976487039501690483389947640782010369883003963537555537585927439403254358877687416509810092505959999530455961123003061879334244333062858195545945787730010526220566691364215216786230027977796716749016354172624851110976255592140431947845829565465243380301417361580899904004557698437515768649758023835256022658479685491125257461554922296971921352736920102594918251115954376448436400921476924171814285512918194204178958307470256077450870600093680411523614303376721356467464905121352179674374903300113682489034956371894569272270575552224891934814560931359619854649268753574395778495396014145399123620554491509357407762751952893819382407532656258062451201155181269721593739787582441917840281363999758507254361413312343409366370042619270726353235196507043140929314649712099387092287588637695089641248456401965231213924348507389716217175529928104410021181403291844952415807476538234543884780689263828374889307938522404541163158530509194196507036079401517580379580827277003033829857514506773456748550391525050374884763870812719663786545464362891741001035687093913031960533661669256566297409913684778569813617333986894100415993058164419779911015145907729134081441978223605918718763901464119530442537825322503345120703087182364074068756157598777787966178052696659401925242461409961989010505640537196162323295580678897305604222401052409107877266612698705711340887669209008062790974546778944606859653749820891466516357541346658151869747885622591394650514563613179417198422700815830442513809138876702388810561096116125261853271762669941444994062805868371830122805555983419415791325205731603563646523877722730506635560186115787776900642594599323994998941588560313644017760946516634394244599703816937717757224134495541272792341217681516907741778945697041185051239116560741919018387920995427374382579313862017639492302503189227148593278081941808932687837098999137490294904694065617412391484500383140009209814467807152627107661357054321944908501860918906971083331034914713756099673051087138498061873815042403427835494111030746388442097399951038718082440946998603573945791433848378857276381235051424727456470490855034521323479461349824969196943060424167245991752068429106703530724859219132924195124664364669721463475420646265516840886710420810883076985462994909668683401156165178371189291106159491533379417774441869694366512523992321677189353181563129981270364026399542078868366977152419929294922193007790911628123810826585804392272549908828497508706948555160476085608033782871120027545132328010710456425754360738822486357611094046789888657968890441876897423114592541836403744392299879715116819324289071679266920956645750858853393236022143062677299427304588135069270510803145796363260807367901122839995728644488656906584321740400176891920181638345667923593231686187013561972411809451499568906673614025874629365258899448921792381992342405953868055684849217166361348794220695898650911630707077927334996995584321962094325217349805526549361503644447432595140900621508895775782051157669165562456224077936437389627112986406974671751886686895973076497873056574290836104849475431244716856936479185147946696563534603652943778968463225442324968788391063754455273365315864588170901395746416967440072117072476843687166737277813496352986710502619094268880684177218825924943177220287030635806482470380176020545506795842754223985659422874113309723627989041772046045711663135878524783930273044542632230729233988242618065101247976164019883341336603879914291394872246998667760407346174076501587559661110464549688722800132776923203293113273297215004174741113341834610453825836933877243447666141727126573623231915981122493505955193740383591232201995754309579122896008102592950471357347235484553213816389409715844314490516294182478493981667998826499595070701045015773748331835142609098429747033682693740025489538556079442389279003129793439702109953770731858365669758380982515061442676345143583243317868915787723201595541734778203459461621115622660906324997645814863676039989168183827691624795377725958368389315112650558836127048324446622358406060377698688708996122299445857976195607634055083402890095111703627106854144769724255611945972009024385456787092565263066759812846047119310911057850853617552649298421692791193883250226674351318046185831826970118154180149715614407619192107392460079524155808630374224816781580600693454777519267026859367925988833346244623279489086997425120884542042947520753322394246078272865516506898078797369488271670908726034249157723465734226385500097123741373588373251793922017618810425573337976011770635095847380471422377963617845541048916022217790352785310010503304681118988068929713495591726274398341601483492019376913542989175147327987862480819678290076830377369355913780134018069455680886567628467357732469093013333246888989177354164688517416598263793711320100732205463903747513527335059046538692222062985738117915817262734638430215925110904471084733317878295761687563259100929742651496361001503455168609709648513323294703293861744497843242233679564049873967671929358329660321005979634040873676670587455490771153131642963178228489334988568268417286394452860974698048719938621182905969233519489650026536901829956668758015845790933926667591231423924221214768660751985896642976623545474039174137626015799210368542680057073618920929811373784393156448942102100206968887778660587596514759668375557970448003105905828961329987208303308552270518261564936742370974719660580195769712754915517036031068817727908164883094150889767632796803706186117288560777479678124749636562425788619839929040662936552871215941302396303138796811501200260200210357663793374015873444747601338936286241083330285250920367538928831727973780047733003227890464046494435868440559124991762363792324758764666675710155169455200305040096283929475711281051794028156453794872164549734075589584040736360179588064317323999119205400901292068479980275286564008495773614230093432282827456510238887380320982519403480378271260353896836014388537085787880124650989602695199259856634620273594854366269813697633589242990797309741580538975534833148747613824904198542973533800303651536866139582613916091970228346104977311511746463915554359954306532523431874868948302138726045590781902900679241784713725675456023477813397221688006058436356572018249382449552686921403593562799929822132241645341934064976896862493784857462655185598661180137733167361590573238671843443297502109918529966447942647270857859889297996138094237064300492254766448391575511431172543111365301461117284340915794488521954790609532277775889616277427888407660968026507626297188218880046075513170133550117586983944390511728832126233718600444502617673670490592267484239164677332966696910755028940926175609214626294146573483512436321766732051482209960237474250729898531934281344556690652434881039076516041796781140178095382210326365669157979348156860590712741496630746654984440659355374669589905295584594844625626651143830839555066278108402219691117838239978895832946361892987239506369388400725852116148335169430269457275587323845597535695179471893189999844425719470534460906854320844466582778344353581929428679412197194501047028390285599840981002407009657525905328699227763577360832326720222318166260675968698801565141935095908244420978479101438188792759867371869215420207274725173519135208082409361608942369472755286358706020190482687513669656163092012802430028264226125786499151703730178908675392331130722561765052633868466560722018473541733163256592641561692943468713267671866718910388870310789739144865287880898585247656900264949944066894849439387996286236772554871838035489551783476874737318413284583533997983106066828653223303445883765760329341446229938366271192618102245987591884115265240255731708230798473842194437156883336470990320942209769750238079617886084464306595973038271957070336285540167462725806258937424282331803289486480361353024461067900586621075520063010277337276136594691487140434826446316691024838847305984579501467394509489830547222018330799406102768805165721956944752070097120660507144430425852161008697489468314794832890466455375070684491011109497189131808644499463988688720641744339913217722250354792979993306905051209752854640788178103769183104920208726169582319675028800700349800478945593093783308450233247548848789150975069327256184439320283502479448597326455192713594848760516875776700586408540494107988950350418302160006940556771827289517060189716046524427631785148477847585890973286470662627434360625341104202627462927786438608424096714852262913514633405194398530492608930286424111958781194439776365213965655967012140462469617969758891061481963474311241716576364391239051684140104914210508859147617065941028958033004990594690782270691512750848587852891011425687316677035723487595561632792056837253432944554591755369560799325649880377276826459784951901983149842080522387492939562793387112713505966713301415674726924379460377809085007813244217071526867311728185302851019260564024288825360710425028588577726183803512738393813921546663054180667718746772197744059325541518836134307582923769271920229182400423735733701777987346756911657924997688641691099644932563202658825724901673394213780404990536718747912520875168711096939270382557846053122677371306213388388294925665858513963687987985642083207040188934351439879089655169559505525002989615286168581412276822986838056394372907291199545515082020754967567730152457330791465136358429374799407384179225395073281028988513502544425057363537697230553545831791357282057865836974895730902843364854907320284784255279585467837359470032142882430537109756831965286533653769224305315509729607638450125590763781681664205142250103566132143277957017616735737908248982349234048393904352921467090276507221735125608307483792383116856050070688735483857936134403901950984988791200163345601680484148488705857211951065746696075830235464861112099053108031713682850249489892687759723381360885580270613486201144693391901308515170900746001500733609772945847304822808343929851482541718688923853658833852541661336194858480171596518599236712036489359270351062850132299131679377637402269955432607209318427164290503931392184132439979660421231443866749905732491655954002307653088652725943202785924754936934306581284317951230389440217188154242335922110014948509520924961752190800855164529886687290681415265142838135072153261265968604007060320390649216615404021047247442920496640982781674799977970343494747955295216248927697016999463700323675169625197315675121085022454746686338947469126470127998223192834273980644249587395118079043078012257331538645489667166446925739037627549221452739177922626265068092489895219718287941467320488134020372283015653293198007486637225770865110659344303117233160979092680218388239725226939785096500182270691921802894808432952909060212964935958094763635977327829575214288517956644029723471359141126137492674451448250861726885342257787371323745365703800504835579911066527517546284430779290563226272667467557788264609224482245664874785610475638468197371325205048292940913464607003243834367619164733625498499143063331079807979859654433221245202660901336513529877538934064973610028148535617988315878815741199886872489119528444371747100610331555219185300232472654097972450119436714285967449973109157511837405140689250827158034624328934725208296162335340404541402618174197770417997089088056255508420303256119863910323276965969949129328276140254310731929381322388633801926078548816648698076833010264333949635837215176408974976385057628580484132278627662346660577604365785521234066703574906643066459348942900091881615570531443020185935336444633617653489997982299834428063843692497555991605998270129661318598973385235529798425707499695394366196225834109223062579274102518918326009523726335685993815466358750818899878806285738988173744668817333078107614672060171982038179864479743493466236826660263275327513310385500871157350811961792873083947559790588302829961707518945795967493413947388679964265157199536990720458165025798826104352371027203910826185042274780125696624912356625807130034157900886092034995967730243064134719224960491791690812167616182782206247165605142343142496703926129516084241952889930588953358562235715639176432223965985139416092924633029673220403582859904387617588051697973048760325712265027923579492154792696114108905377781503236604234168374198421951960722911268296192488781424354466080997789529825198883974533353544545751599640708506945982589488595172393990221051589816643568836639366429829841390413708457854547877769124335639176379796193081839689578374040231303983108540413399234331152892569910400952382354276187526567442573896251650794367107040923989855349578155388580901819759233040756242068620708231016890110445586887336684690822540962173999413283580316261304335093850936921586193133913553231962553609713090468639241354669951538592297913441332479996751194650037751534054720106670815789593426029477487758669246874527642196703833930902951325394989871704978396040961707140783801395149407044676239757916237693626258453716346601298442584922838428655690966636211905814133341046213030764408816452416794771938969975024541466015291751839010564904788082180672725171784399604231784385762489402851139744346461339919258435498599754611260953606338065451036541565133921067036876645154265522087693513427097026869006405683150791394145801101492678833399064983112831585176126938630085127116834626541210422342510103333849558521489788577093798743942927504802438822876750148807308353861363687171512513829190413158682394081907665273128696306678723713053799492778130302852430499444892115093214859207852046639467020867000474683012864633491888566903717713042973404279513333114441295684874377429693691066494789281119939797099681731664303105478019973792679147254171748303671493510630209147697074805811949374510913345102651380317956730815714576436892051659018428930043149412809601703341957773858907815737360065334128605923999369618954023159508893438375464531668614750296277286330148953208179559622126489287382507106291337814499096325862033187619846572844560572280081207025246964915066198001650774110846326391333856829910820657185882077482208325017924966905697870210823337936512711406822518468672534180868244432650580161965941252545680018638944857965615911661002626611657203654813563012326416522595933524150172272142041653102881868649451957733652942284097238558452037459678796936697173010721646782366279943577918578858256719544910915323244281360529658829353186509620536424115513694290585904630136457123811852330989417119968278067006562601903320957943632760097740508985953684100249428793336993756626108746114350349261787464752841636042509548352407559766840898821596857527955182771231300468408918286858991946614090142376259588458221748191414517484775147445659434506902694690586226183233290593983502220594963962552072140835371333897996793462333485601459477680928984774735519887010326891778828117744416754233660697030102499032561999560823655726611953540747642551472555923557985384269046449040588310431881960070386532708978576654672464470241307014283278293705961057898330272238377355448847332882031673609718176685815891503509773257139945616512224405957658161728160116638092906236048251291759970206246734679812309523476016481233820046230265915577159706374752466170514365874447719027493095642301728970553960937347548645911649360882269652242365971410366985733186426690899339651566145653127837598736821384607391268231027298172167455381745205319756068111450479457972543704809423372922561035437664206474045607513767037641515045336823825254955498647013939967458159307467745212654033607942937655586116432477854877027172411231278952118092627856827998800274819999052676439949054033268597904207048368316228015642401858795710780528008362759290845019998165929433271517213883018418638573974300019129286540193480915615164085152693662035526532318245436097570930799319258729971800155206900427803228625886613804862061710830822247869603749373433444011951675933990290859929869878006474764981913065655258720505997457397096703427176412370603551232762668443169978172166953580312595415181687050502019911162880881127270567649653917445864016890989257667428221624674149934348907649669752702031364774237545376386780895814457140082514519163417651251639814503622679304799780158126162707574703999048410523041870636791368006670699016444756300812904214022762400339833601230097109365821923146991135029587188325413323313978717340932714155399660547858837862014782133642358678501694750454269435697270028206307189946439866026159101132294078637977907541913578871556520096435719278257429032073467216264502666942583161617154397797510847429813046270345161400896119974989281999759920159692836161845018061329048091274985833982679840556539896226642217946059914849204116505780038044463059928106621334791595731065588163305442399027242644378993098888568020830160244370971542411366959371357243517019355650043366897485431744598668304398182113752122027670546366491266734404835905755501734774495921693786526322983843373949502530844815165418805767068296671397340910587462930105804539006376574579592097620487928876038255424983219319155033527010272902252598075654586436238687968405026839777006477221250527461091477029110138212213300952044216988342244988564689879693535730124809358715077958552482773072636506174074493925619520784927054585767378270352289744560015309114179747682973127670974126486457313509846473341662804305500985954700268406037476788597143996272239273897446790931529868468471116565226707581136599910696954976878364753915032353070515415325100289236414999650911335382201192526745335608269956438033802054011604869205788781806085618425532968858482485956969059860587966355231210577610827447757668995146275648865788933280079556514518518703897300388439186113895279853326617868795294504029512180872037651456300906515044386590127668993181033342254154896850340255239521438028688660329085932170049982492833704632253184770263474557617460211842879512643282583105899799007105963465565862463114085284843977183971430657029074221410287359620255995981520742129259055019931225422958082312829780292770483022561499615784854872662990155238932629929759508674798000701573316581629403230553460104157866958067307002639426224720768755022322155428249001166317822183544148548893516796673937744897317595177656978405345732602614273840946728693824579490189072342004040964961792890112321702961082240444552738031199988377879496714140427544727431042584071873209151572156311591340068462345199611388641934723293247350359008142844939415152263366423294914993106880078098970489277636914660993216414315522264947477977106236872811161619335432260849037881393288172106286437575533423645538971868962687206933913277631698700847059738377196761909989716100473426478007396027894324419779304982693187504796918977995682062484486992522322638454042208603435293863871401693208110024564805215146822041262284129390390912099727642330521863231145719415111793269360111045837748812260310526274981866256305363043236209064458638177397159866085620394600429182385725580435837155607481716808132786139759112105714837745647176554967783367338592571945938391317382907668855028050537052738252926557559674822061412897187430044538995273592068061022281945962543410286716065641684993379169819783702215017101319286142823074400720658204081815040680293863882983592489827726904870079778027047468281673225849179797259924435526648759794554598613327160730361979725964173875299685578214239997160828473598027358177745254250427437259350419026240590973531880392501323353901736212546031377828042790949476991034494639700150232585982341904979400331967749129206546718333727753511541416044288521755446210416186325069761564473167152636854565447452586985574713034505368501608780861045851632211698978517409865929796701276428897236767835258458610633884308269702610993838432673313649408826864514543643460920116641534773413478614665130659648931994672906526367827820424483974389088040552615257648823163394335969404062444361660759537881587610559510884691818937909420183267987405414661715352344756829576093888405732286753914395044563628186091963294530595221310805706492021623998703308744334879600560468441306771973241172576018103834241929591055237407143192117702755149341990401431988650093788022132208932109833873899943615046079089440459473355946258172946632066855035140597631511647550816012165370939147390215931827212149168787110883750089354670754239247492556794487797353962233240463306198535584916754039865371784083095809046258741767400708277167742218698690214966508496575507195920972765090703367568685625138995705727902374476412065506883546625705295161933495180367422641861330131154276507682145726841553908528118042018973795211836551576727345489153386656646274904462850825496251104955903925384912634149622030159128852110658005279389786729721745267127425470480284759823417063820998857117379085544477314255815810055918598580103083083633742531882133065263340720608190224612236442488771193681021459483303758379154501012140230754576736944562552079491300134433341103651470339520627476770896763162323276991156820247354964873339238500615948459698679241126248624624316378538582817286464161686289398389730241331885605768270541740794103606905658022083438690155622873741088987081766414311343117179020987395326337310862762069862520540430498938039079600714400410006915307943703775210520699348950411700193965963559046231103639089175774726153092141398661922964709096379227874832421569614782737941730310303337427903722252926756882684871697562155898690537056661659538492522831463067224057980627051831707744153531844226797680801971370861409316440273591269529267634977086289627020632137194201324272066842081382213149448704485347074827276258430303277359091851979687345619015217089160941937602416338976828140698946759733744194487470340103295058749411849902684457062690117752658779277948580122629273891475944246136463257225907979057884337747131992353476755728844915518012774476561501085114949221735045329719592066664216395756159458917693536613896907308578969548940701085476232331765307744667987550971759403498565305434000755541771801007222226648938969479480499408421276326940695432893078356626425511696106685239061411360654187915279868235147206958431927110818865751353710743164692248136806245988587132720629221698982788756797876774782733537119190510664598311618048473773654253491439523112868515284476196158750265318067122524918939228201102153722890620456974739613168133232508330775042500363426230103243535265620310352980434392723123814431139337438203734138098226749447344080642110632274771318551042071523959226396009043396713630749469746796745060788545733887482443786429888668150966956667094814082368225758069335942513981494566075917804625935555263958499149673810544808860250126204996429241337636360253638946269609840645234251667047813672268099604828362160145314030531804789516306925323399385227586547521978548199871181746179945336269290894109750573766609764850562008327130131396891688067703195727122152579098170907412302803023221635615456674764024339328041352294649873867440749204064058752711328137466837924483953309527317259214239040259223267624964561077914965115114276345307825646377162394223115397113856932984710407677519806501917675940776849040502043509877956201330160776096206738948565884294384343494828655732802326390221184295321814464001291700490418548118887333183515172417468560118214798154684802545340798004154623711567693203896270468402103598458591136399826555690013341788867839037287323909692778250418130271500566086775342017935569838645639225723792528707625493219724982416088066926476594343184949216015410480713804544419195605092666941289676372003629409736151078075651865439281074527745517882053704512064749833093545711423127830809626375134750510459262330982226776682443294794213010312670638632224813713057226273003173829000974864612029816261846149453005200271420772043616997167111213655635147148918005664916000741028774403412249029474161602960920059287399492097596025267713674677030340683854798024683658432329137695444496573683002133570208181343064547497575110737264874523084456449135829858838191009644597937126065950462884470745839297941035333338680081063255966021893243035302969916911072218214222022902876036760678723654152799149445235630780870264100065217246963524622754829420958149012022657943051239602331134293969717987155261751260399555259587536852181499320412546380999886101573750747939548142385410155492605054039612836055812433442054307996233975164765538697697900747195726394078286517807843121144176234486894350489936047823433079298635018478427549258915865500076272437911633464707028939193082473636265866407795256268433542791733085951977984906496441415028192911142065583857849287378301242922787802872596445594562051971107982118878495095611507709727160686203120301962100465371007321187805857898357170271167720477078350621774262616769687084473517564102676232338460363944194377614417374754726100764713348648708760870810939738183904761448632429288792423804475302488140307218228956178492682501589148005181204441110542791757882558207657965971119904082734597912995847923959989272945989357917662054916755317677939193022803395758917631067477617954582777515003518170021280810639799421929995353171102840386817253375244067037102904224857857544793660749936427074508751676031624211440582646504147206177480317313194654598441911259525420590738150309765401365044346593271730285953618993215755738067670700588501407640057294860203469454708684935774846093019996976523350197918906532672550963763679632894301463204916844769597740179635692343971652455619849589261797252178717379343487255238622895541226563117102219448689505261922345650739817267364720470029878683025568242584323671393188901830942403652328817413535156798115754231566998353338970431809967960721131313923408016583733097040695699313228761057348079224170325415786096642833828707059956895349700397572042043843645197644014221635261889079989732257852200960675841087013035444936014593634549064490193214659752362836680503218904247867004143282821894090157818089747683293022991280073345696783519312079121202683632290384200466068966687617283078192085297901310889864612859726777551939298939334543202896900127668279762826315399127449981484353354954895184759112627833179848807937529718055096301363297653883422309772633150936761994363947781147971476659995524114157798869965513630476735463121402306183259302034496380287329619668599825230303995961060932869872012059437202319655611533976102615452616046131091350647242272758858978291146934710679768090310658364248061124399682747088074058890155863367951621758306615162224687308101489545839110194028220480985029740309081814119183118944699329035212046107023640910946876743774647646454587383613383917263858226510253035031374729166991331117905656694467493647414293651395271502892195519732617694740297506273970947383314673832598347781510139551481083676131183622557331662686479582575992445079232649210825824975534965234855722758634293226614101897819173190627930464912796981887581307141928680289451850177661341537953569877610136629424107637858395002768655693960223110480332887839443026271939027460155499645261511175952745997890589512894535898446434216502511156477942333030452499010987370214457514700962253551485854950611708768171000882897560958973740508769770828548152256521171559961320575593079426382213664691101922996848778477390124647764805208346604543974941878222308946273710306939239931291856132354059078613632406207022293975792037082451048505132619463350065823289978110520518930842331219945017743983254155265967304556378792484891124490283511861174565577404252041376691682796019044780583864922678693498546767457927611858716365112583525522337363765315329551049469361972569962630840565123158282217264228718098521799502641444845648227067388097233575959492145691611228373538234065248261753980363057580348745869438005962364973561899442442705178604570641888659924456546949076568470625398017442787297330542768421044855630794644364882356461796321155323721650593144691771970291720934230445739144309729232838114572253206770393183092574373421567399304458751244555384744079605082463856775598867832206284656776079486646667379967655535692411708522944406901425728770061949978137993883481959374321049377286990976963053151772613379013378756638602780081128896969731510900244949883788112598630201778357041627351065016250023178778666511938524127476425716107827277464758370464934360325031199554963316121499933461209543798962739684659458788967273860529922597736016025142992931765649873781982263852581455709353490105686376628704321005913633370562549922720831713024374789458854005404340532343501721636891843043380320159412402417063445115552445979232013307596064216762311720020102113685349551382844935437753217733276450848026610655905712248853989848539361215302814611443293067934576900559276954616367659121675618803705294041429184260814711901451885112515565579020598851820540629011621918962416059200392557631163135613869075381953498965926999091130738060299540922610609998599675494486685715836305187611578470076339818859654324543131625978652212740151125846366421453797709334196703027880861621218548239452818276032950648394777331354915776105458321290514320564903433330757061215688731917255645827817180665410348656482230593166645777784804049993817654360616309679360313448699077997538057277840498691049110378812034033246156529485647897195016821504970444427205281521265965611290319875850127121772688368964345537949257334177226555677451995318352681387134349050588821170703579074863588041502428494285242628363687333608349659561067872553977179848715893588834861098564709693499604138438372020087750754826493818597784111886881528728332900044934124284520193666243358397357823911468026263566989655962270847588005074742367824126214741619591933219035846282458923697504341947993861691765161568886275473821158605492447205543419752501725387025205950340446340512771134338867899403136210353060917914330375347688235822132934047150159208536959654286805145266306502045288869995911695253264579050436056008049000988067575879105708853148646974591733279019229111568248353473481410060745839001747156531053423143255389428285584916837009382830258506720727221677153420113652422759253631960455816137088398996190616123081899190659050359257754572975427143838433529293212993712776451266226225938720943412530282326066500831034410305163936235346928149194878241819093561583483007984479296956294529238143674336022532704186961213219908768327574907552431791797419574263266409562673021734492546059827566004434553753664336236229073370091247969454536316720944894498970393431372729960413906946721527301816384148761990614749100446765515338173267933617392054436009645257774339012457213866805650525444842791181647270156540866980051167897742124589631208803664717624914787910992423644449191041370427191466907993942255485208712380148433621098193561727564513545885912817827084537788369754758018213941847354230876671147639561815122893297336360327067951857684645889001767529323170595591008877986849042617088998789085007165673152734375521080055753079386018109380135363903190079393213385644152691902111388036770712027992148875886908707927676886329643444236741744572536104594556742212996694124278635364062956680631089354497079748240210382015677064387535606128582472784662386586141884055539813360700216213210427972948282691250694793956839550627239990099769303574424043345639526826490730816741292749222505116694028444195470236144227391496389791944891121298575925377853680611003473704649158490057373027262200979385822991661786936500649173911130265141826872001001813420125083880680500014565450059217701389622912197642872368341439584542709597371196753361822787431923723919331790379026642637537649798895706089244982246425705103298503772351969771448184935809879008319297162909284915597458927323848994849396150683612919622387749737636093368268801572739085614165629831233808582020663182629209101369738763306512126925182004030091780918972141565137398513893372735799870197934970120109189811646784997933379920583750332253175804855642683433268189657883611683790698482693382916808039982722186611225421784180226899908141061319612883541676787887964044304219662674604103370780129819630775373423890531870734761346892522261144199628450705748463681388074468139603793622511291273439133135565252830031336604329547441573346961892621421817691021079366426653905559841400083403855262576717098572222280713839167289161926921187249526065838904320865820717368386292004049631681679840387396822545201860575269630441994094835485607677266700284237973750890630760885615447912196464314567305848901357568267161490495591627821304908817912373416437999762175597092057867700909013174140850388206799755949514080818790899792415054368331845407394309410342198482979771954057974739887302481242511654065105257121388967702751173681807773652283262099417644213573443947844059644816486489417824576789425525540884079814210158898547729268701849705977249959584591474450582796196026805157026292193629134409986573612041989310117057578627564935129347267535532088063780582792704042714169032241962514932285039856170822282186680137274096399393766016009222155992201023272022315523275305105130774127381892204097696515384239936602658961071049369053508293432576041441897792244392511691446938881258047349273889641445515505919414210015601850429163322593444812662339986180450041642190551055742731434713368273159058872399104242164235168385851607249914497581308216626038270439643025572627465348633749116362173340179778005329339306229142605751042914755940581453611183550993289824879758844946485119936934156553613345503698218373839575995639678896079962270706306109476656931569808532806099069098775106546832821124751435427569477369769064754853476456909064254449490223667444428981442508750103570233653984593601566441503370041093629438439291682805953576374674062480387240879674619092318365533562361453015513229511450513981897127269712334870017615368791768286430710843446513415803536200716237506922754345020584696902695793038710153707613313806577662108826369217947470119323300988436619051568946378967782528158678444897714684485976445391119989698950838048901025285772514217871193907953193110926327885175197168219354194664962444897992819655510186024532584275003414913158036217983639753655008754167972961439572733533661214249725079602437353168620025020086030370634372305818047547777900391176050805083190731562482338382300956493784268217505839099843600920754294992289414533704433417581638067883617114486914709145352735805174943129942059212742879705926432017940989892810784903383257076929398093739816127757083022274362501590345929389517854487972293468588891057830839379486789427220644994111251541410445019263505307113254221085539690847848915909671269840553140568292473470697761802105786399292009246008437037634247769206039290556315724965600780127770155221911387909860893705511842079870919014222966550599105491121361199805321428183855356881591239914843981767823912376702284760261454917055370643341481810099882104932219561089315894613350122472215012583478153027111871804820524397617944010542878900504704758004134883764476959513701473813146504797248477478464115554795696922322136302252675989016379052381636920546165176598457421459973901428443247723559101307610640127366415101674033853515423818684288535445497119547835369555082036625469913242146191106612632603136485555570650783371757177832313749599699275955501444152013264327397459215306858200437287181983859646389717489418274182940504539263668729940190134818410499944851780349408596415466569905365364265705832750305287111241970154042149014933578371647686185390342842584593484714714418043596632862962191372329766237924114768499782788148889323950040298786889220155852298236932749741738009172169788362659347383486189624454914355992496735047972032356054419511252449818748942833959991888629702733356074563563299610720613599989686751540327142508624083976613277722429764393682295053614910261769678453995439444894573605938968771758608617000195935874270594861762437860280317798114390775994877131509626373979852379413557077980411545112918985657456012437182228018499183699945443889566588839751094140825472811560099579387624188079711141287524847499962821192829628481416449434194870448654851661731211868579677048085981817990362134229511594623670497224757928878644888161725972553483249017117447633594938382399061371890818021801590248813224027648297520200486749543006706498669467344998300330475443518038511182200875693127196075918398945518952220562833135572467278889057515903971902036947843675889093995364680604058507095730432324358213227569177307571023739146407023216922957484635253236537481465499397367338158942111127335875770983330259117195127757157643505926190592562044715134249638394832913711309800072636628779350119753527587582290746981343563056523429188441228144205832469034958279279686894344405379470740987876699361066541888752838136819793530937867982756214634020276801824910186956701947315978715568303713271165201631727284515885066133991978994041549066689988425473679072009350812426049886032622055456700132531989090202800923091289583338417762120132019286890806407676355312281145444696401096848630329774007695269357340774371753731874454524448667503294542204692288033723649762191884011375051610536202209051468014117951422099203668837085404781971829232996133829961029488667875035231140742429549248136854575598025134731795941684034053967696822938271569056039816318748332783743246884124326674532034502019160210278905632990238423230674099574298297879175307181920311001274431954885458481605358944498309260125546494559054754385222094743854402103322378469114046482089577389606598788205098494889925091154941271623892230507850089703268839368902589134615464400355952145800920259256256868280286032028654108669549023086200869028237265825332127443361823183857158273309996530117618794594423958758455277901134784657794516732546840268879035353249325974887778189459558985193560541185478114099924763002302322012975464498574806174673644232824225338872805970970882255277485239429658007714320408670440488695755475464983413349634422732008391700433336376236649818818098175541243866498553693656615869574303865723365068695299044871861562604689298142759035042959057260234960459877505271315869976050987057664100876735981789054332605223318792534996643753676414284090161828713591726577636386992432170422797644715754783500479030484931504687419011282252015319251136035665277573316821800153609209772953978457899585720084109819059944627428092238216499219090505490053253845813089322058960427985578677138496341354891392243206883964728864128635243431093169655845554286345214514726622421790003163066814409995175751277977763467405157974430677530632032926392392835457959746863451210371647270396197735130341106613841988824098093124619644951289066859686953299612525067234164040639848510240195920257226314730766014868337978918599956988717132561224108936017648995135970564003422038994563663665521716082661962262309615612637493299571446244131208190481453177503800483182702853870743044220568146753072738764178143130733713646410633270149717441431055543870897565020663518953519774802266190117312714346768108842386450689547164293310241588230702183140099016875669050168722947599542285958755435757148768500323113980598098435195195774731278281581893239246009088766252027399823974277923632233897872701384085305768408243612748021732957032527595954615610378765381036857787288780869935489152232187590112262722506181914769335435407593146013783943386225632915540818002465167989912243833466659982204166236635152929248345973032001591685450820952462468973802878264415167477361011005816588939715793954189595469050070318013429180763876129674320674117960946046270968990915237961620782541768663478383229687467309762519878995678875940277451776283026067523146464760296800522080187660984502426174395577749111101240221629647004157239805122063384584183470750607272797899309325945294366241577849523743569979042443862200041708361617831218492918372898869058073850079679502493032468471022278938755975149907810305161074226835222023487070800467003457493989895160440345530526994486216900486057345542717051774742861275003326541714864964975347228833617384790471660569956524290148346997956322474209497885001889216960710040109955789609095957604078701169009797228958174385616065974324123596569127068316610188106658843325791341485236222375589335973078335590162243264985721108572009539042305835664797387944227638953688956435542375267725685530441726807423250043974971837956733608535352459743668273168151081413290740109465455458759223647948330875612623800111488054077462159665479789508963814475492085714721502395764634720668801473149382995253663004871584814555462840176836602677166304008872080351341200147837579421830821723759779215548997772782592036320184856299060888789271244875891980721907711986921147994819085307546227433065323569551401007244243074977395472371675566611628588880292694094734439416727362401728055678337431619020251652798599006806585675826982692354685938572346048159311587724804421474549732135976783299199306217198372289320209091216939487559373709134638323787387213040146617055984936270738806357601961095336447201190491051809307817960493936708936573212271723340864304954833222229182160022869379104342206449345781404006173542874876892661080638986898727009318210786054829281211860402620147598601721562749817672640658229129649756064711102955593128901212392659125061898629999844238695915354423846109468011388813457783890677232663434094075301581076251546603893813375366236168269068509248279826538627628382764548697067712353997880278467257925790530725071252842942417401300139375513362398469912757659392836455889886430597250549881747801108356765208647480863958154340737561873929880905579104310756668344014790499898527024863273855498022418392785578005546513942280476098376649156581825777884700865637135460280118331465201815097900468713427081514876900133180928623212777903275508385775504928018073272353662689972387958733622201175223906199458910501712128689646117284957267997099543988845348144658418776499194259837862215796831038201039726034639918542961834122283406196728137735651107581904747762396485346521498639310128251316429090053934168620718993911218209228395178300189851836034390364596053840546869709436782209131009487833138163096228967982194689700477056586662148665008296950885672298647569690491316302859550300078531248861739792719424400055723849299511825062017308769885608974327872295429102771027914833897891724962885657839329181159192963789968600526218190716308189697485704794733965096486044545219765522643700062720676819457432947435269176253797422144200151591658760469323583400703936219868603712964642939794090559647876268286068619916358642658448501789468972242871224501284697920397306693034072389691455146656693677305304189040279727220625634103575330125938830171087666757012518086932463567034076972184913047041637574504371934234167032967342421210174613933278597193817585089984659013647047652924272484556404414258686518235862971219372257582620189201712116571502418975155862533815899765917160106156397474342273641028815867196198341737185101808260448682471633081337154226170419116151465358557411320066942675594052339690798924774646482758549939217564788648753421510710304735515258657881566649023559039327577002690756111376186269638709700148279971875342734670916160495165957968890141912364197820983554559724393509772170647616356807167324826847605320142684586203948213782436178197084659159994355960086787955679906710839946597761869029840624577835146379908383123068286874285799588637396481937615567650272887592424104867283217795033522407018649481394291363002541951213058021595468230187818098118127955359902972019990153713794445749057210472062746476987525778370210004414522118399352367823573665380239139331596950595681201283928662697559731689181419746308571466849501503286021037282635681497240074799314887216391811112758692875551038613792559513658854687499692440240507908991233820429041021878072674087334028291657920078279553404109128686422649500442717172650850840705294288106920619822180361951547406387934804013284167454914966067838737708286696944326478648120768164710706429884217835244113839116671343682601886790786086117264223040997114143137546530887176101782166209123982524901633898782828581503006571119511728444169376596278154801548662843475493740261904993791407806051292663592597286231852917190175673367588076840401639769611564588530465030947766431470652685052415500370395625321767868315154228520978237219551253787331594509831381483133123818485544729686672041900699923913499517895419876157687428831218058181324144078894714683028493322528698160109448271029330125939659938238144761605820630788177794589121256725881452393715214732707894509801505517838864594359214143231808112694235455696081315834696617028138218105241110036373703204628219732768317936269237145579038929410862092260849575437783946436221849736670781165283525697446276279324613690845562903359746359738255960857669598515771620137303266448037458818314347505691758965432519712518900199949065235460192121780353712365420935361402595076270139009428440558886292213031920769372806356711702747338118699156753774497735591461201467733807110820199969646017724533701131430940378447893869053060200003029244456273428928835994802985285065299628149528334088948490174812261571087001929886889706780196842097113066743732967196288204534395478118713686494180057496277957446521114230394329089270072642333506581984586220732943256858139060419109236018947763253977420433731539853716479574598391732302745334577149375111997004525138956259405047812244138228871048988009025758818598880185342248197658856015990027210053517718314971428521070071072929759644821814605283781355135759863742035337116478740256495065868033259950091510664432291974649425814866873663085182818322252423319036779766064271073586492321330227921058769114392719076397096302161936177969060007468354124297145470828249781493721177156817209843322982828146925609675138429538455277802881326201706372510877274610169831464420158846705141948461539560575240350382290743586536436504202802826999880303677590004641377987421832672871363229156272430484833407780999462210136983454548469384440765776867856259229765996503554782491280207346674021321712932615042865155027364320231230294332611689522770589722778836143845759616042734855590235954787185195911130689668193801653496873398578881332862201648259935511017410404828585180095146145987936393865206966205020510553011786048224425131944206197152590031917650812972146306726070461680320915565682155975620881673898282814797823400454368292955326806987557184311701129135724618047256274261286855969385745607425584888866103902497918147308657559554515820804779654179951874544004653237214266978932254938707283438015229391155049348367583549188812687962268030012597286213790727215716107131230049831003175368437947379869741582704629299258349968554026123368400438272821834517203187137505072798901745528575978953440126370665466093081066292151690721397213837034686487443965759556219523546172718367174389327460602744509606384956692499918503620596712560843855508269922186326302867306211787426176011514300533729862979864409467361662163889256970419688645474060745945400839188099492417597594693058454112875040327127916062447060921961780101907767109186459692374445215083352562935953186895047361183861796231983376108676122160489020315323614286248989231435118208893603794636129993430494657353530154439693851658388997591017513830670526347332128231493987168714926982433620542969434188063141829065744483635956177067942944681624103180832921653584494424159339330366546341236832007682442580468713907027104617495445747846564653704178446244109193668809125908750008566284569071905793046008845286716511129587200227777491187424230721381787339864553075020540917871851119716798955948240785750726996426379778474635593872172255663250173903513531360576722797436981164440541666396469659892298881637702520586937348037878773107800637699649760530554955877541196689990071310402061408854674587372503932359915061306485682080933071834027485942999316225437586186889245468344785549503377695981832314526685430754125380377112952836896037586528327346673999273137100972392212038215166792088866992124892073377838959208949299959863462625411883469958616706153790401160923331335104690704756413645764152856552986506546078789971822438154318033633974404457980313273540481975822499281636673002004121349215703696468533185565825380098473596496313014636493764281947834760949874072382541859710732674272799902940053138377124504066584102400764694886512527580903057319992890358378442649169877816284662817964925612898092120190814078625447838820880800560663920606360322578705463410993872472780952571087507318013333970727581236954490145637121535025309197828445888233380649000948866194317831369039773084420186410459101851086330924555251668227969734506033334455125256210573412935670340571904653755163124400875903531546511781191023122202692257093717956235852759594124280137423325237776889300292120019591873204318192337626866392723308488648510592671290568534514462628481055545346457737118865878111270579789670640477848829323560452862230572027546176093395311128221512886936121541632698504528205324471563502235837809547336448923787536545788453830929625697751633644920179018600529528789458717480806965607742110373473901602969526738121771101294820135405618213378277090672481098087750903625422697230575484879890928187330714230060427489677493503227614488886672003110547322071422122378520733277467466282559979130770547693260475072849100281714846246017401885407205141218627540731884811059238521014945733767818226909775860164338489990356335635937729159867321205890305418990401050252556073961810971186613660613346813984697346735471328608373480574465575091890921514397447606055182292582547621876979642097436761268181846883362563165827140528012282766183667034697313048043672724583509803362765297512651287523605646280930865014271848253221150789351595227266932190192973889641618261242810225855166767657679730444561625337664121095515266997838207658170312369894674032342634486328904634713046050293690985057802891337066603550978676169275606161530753576801381533756414287966855812598904865474233738978308264448984393324482581854501496815392697932369678179035978846599754436237072625185693358723494082143710305753708945099094076961552294030903319170532916450699784597889997302300731905874319537835489193060791337988809644890722042237853079018266166106280627542130951019409174770759035121004964171477422230708886250076769660026531698553285330005951884616263181662496886976452271502830773664928704801132225702526591594731389353664676608865209356281261419469758595567921541593434545361657112154738213983772574844833408997832887685027612742207696217731506553894116673254425039099042899735447346955705710655457295589494471824888771347222609632096291172499761382446894346601204439971943569257369043630197191493758565902461355076668457683819153731014298365292253598614170440273697496423119184151485881453318833548442627357592736979767948102123196746453698342611188366783323272726411058160725903485410954942686754070866290860537455073930604128799726760365220837786726728839439195531958927012250631183914797726953547475911328657721631687760950435312959458989761190887752936024363430014896554931606351042578567951231497264526325640125664467905439741336948976003816069703250016873517938252861063432363336285949566441477574650204530273877507962572893298752646078552995715520124946994847083962422139052283987392978717986105446493149349098294630347071271728728304799444229347903457106776037997990858803425690618261743142062760053462185700188232587079230716180436445934018088566061078127715724282257562605600984290042689747548536146486376517968603998880572760475068301178646184687669342072681055946530136595394553955749058367207110742396018545895933308030092038141135311441529514276626551919051221298219616454324584548982200467112008487418710571790802067091026608881277076077634900757096715705643473445117543658696864992595450307582623178141136847437116178300140341472004232307358420783971271910560623938228729507800219739308408150364552847845763565425371369913990319834821134881432057796560577167864162663441400442540559316581021484766285156501505264274762839062450840877758271205950874575578726188704079680899258678675941193071551509889697135678349037726488010262716567096363135457311099547803067401706617162089464118747388404310315445163963382903144715014648038246767446976321073857264420254779233572035484259131103369699760047881022465829127859737548075190623113770893829471778138685759438965703392477952771074156861105553749783905004818731724375377753120221465846551738682981485592362055602330399123997736950909903088235818716225477053712051585161342860185380010058266557204548309681533056552335579572318277641106494217031249256262034525569860714193344983374553283124073655633048724068646495800948299804379417976628093682494680553913466162879786407777353799698547507800578245499502396602056767134308928632751725551916245623228738876919516570743251624094853373883855003424651151639521500976725964931750599047235024359383559094523221603190516635072264123755783253805392073828063107898311413340782864073427864405138037249129474386425653347388736146033925097186320733703110359736685877352165526713090764331616992806676274594510357233345293647664283802330022431767404508836688239646509261591775591671468698244167334363659447069703977784320649423209575121765086760664540674688563827083314017051485019617819759437636084339023663615788300797952209197098941843002212452403181776800602510533150594043281369358530237406996041193156364717748651477672686114092505213431621479884353556869774520540165348700122055119330342523077759780468456853782558459323007273380942969908593949594953016981018610542770698474295216140806811285119486918280795980610248762583184085242143290181081701699304018321310243630840070383101908763193648773247922192687833044105080656161838097875880848160724566803594765164542611520363598805076324902779515534518831594079243150437300193484485463111782860279734990719405267102662715703388844216379985151154086767561568852781796729232569367595376839056804174111111628269920850933889450226902695428482521956562138764238021158586708862699307522762663137414731905863115649348269933228397639891370444030409839745718614415264515032873315227416007019388073053886038065397244635006400163604199761641636788590825736177294090157981492193559317382220862180601701204650107588454466575874722748702959057629526553723122051159294400451531187502169296962824210823136500257171428322064150254039974003184388088936517814051144442288545483023828538528816557267292311598789578145787947527112321765407629721740777899645488014134078723214207305172048422121108576391902526953537558838306014633194611935464845835290503570477699507184303121567747071800560390631245934886515536206068449151819153702892725229693865150027952867175357108015743760395169309723957675789347998094461440078304446730482339435921191879206571936176034940891231819810009637141693405184000745349826945951429072607062590783497986062774593031202949177164732151472248323825231377989353713025214798988914441493928517430539151500138977956145272825892914370747690841232592805287441609134965845843776298440281597877283685145647373515187577228038228115963608619024803780015356203786545800873228963951569682259621029036349915779702902856988170457508368976250158390368808210081917525912129281685915390725856296379544985759601224571969858229324522535943622937412478062089330506867741101212837500239688439243631598418730314630471033743541163150712151850984831541701464915531061533297834943910036441633341918269810117845358869572357350553407450827182532071799928296403319375653932769092837104604565108874554056380307886337154999358338649593860555649503799907260605437176577384076938509413347481250969683860435964319852004045975327085411120902078291645879127213147905089568277736680109717923040331736298290357209420692018903319198426387645368719964655121254868004437666897926913813171197651637242314186422934421271481698877846832701193646677472032789988871238542878914730139853402605720954168506596358931058728793286274960462792287345868497653822932349740301561231256404663487984130791026378706312424135738678966369063175110638797324029325133992011635953109636523161630278426784819678419223779570809078160464737034145787245712232014565269857666739789622471718776827397154884595980926487632969635673524777614323462316874041444180959962999911632545439872242466358512607822261893014733209057611064656562773197303429742945941973128225674952690242456742805920090794837482740260871641134679407863512350157501530024795324578214040273536304258680907971335147039326177282854160024259897807107526247511620225013701455865206876887371150110830209413567454627259751335458246071611447926514571876728603869131615451187819645918713265473643195020634273796824385000216909041261630433187230409435539606446587309377458599946484235841712071961197556976180307713988818798115374870679246011473115392424651424351512771350619994239287674031520601046421469729166180219875932463210485222035664966560016413465240588610232473273979160562369653236429060663089719441534852970621034156892195562868514507747688219057871986744968244012191807057534867441849071589328106237673928499083013706297428644837328492334439812121841855243523706541656548562274878846736787753244964990495644951376704053621783532792842416039250778557078172726779660423491120703081665975633054687240779929637986708957181364613807243242992299030180875952384785805653752285482394530463313289750175564269691466439599899198170144059738677041287663202269153155544273838958339300825524327363041610106132176216551470655856120564212749410674853997122232741281382590634955780214399594051111777748453234511382889410306962205468168459452336450620031989093252984409435510433114418439301822657020086738023156345566421227448223340172256502538048720345222529403600417850603752782493545157058655505883942899636119803997042855765279816230424946828307365583945508396233179167898735212475157089268142088157731679847830483016254228502202168717764573314071721332575824289699217642443245233327207896712509263683040170211524114830120863241581463508664396386111422113938324024628898709529692864327583680465618775773746784280280786220522567043303731635844563984445449829407788337307897402372099637271809085646271997539525956160439610401833062204154446786703250771972593188511392123066563854937790496865796249129031202242298165960086351653287041983129203677180563338482402000749760204341104219162474312955058076830470041531142778299053118527079916623143082911191429111923171277250720512465837791195384418307277694789856439134462835102726124475996748994785824861239099197652100489243743238604474501335538140597525730219754765150885196089706272281039985382476645522829311137271971752338280915181274114072574158611896967741247006456881578807574138497497387499676322033190496131324353292570761711908905840064265157668211845917786967564075589382936511121901684707737001958469342381224056349345790743577200596310123480195309404588378742732911105721280881787079430055481950162167067075832493301729471956924751085398461766208041739515986704211832751835902838426765916683073422309868104534326584972897045971533507858702456417584787840127076325466093719329950444711603077680808525978547947643347294217659165195474469746268602824073080046865802947722089651951645927310649649129708787039905107725035301705241565566313971650232807651383283110108477983914801762920270143089364377011270268030684630914924884953645399423913737854079629292056739094323081991265993535394448293575260451356739471150050862406067534453611126605176706519067068059244670451012756276214367846124777383504230612504360981473485970606846295230043719513053657087077396550383992477732848352486624615359019891964131621412723589932491134630477497152318555495455995934242108667501877129155350349031957181815942930506083143008857143739736666203227822070157414228682352078041175043180925726508250259810202167382343948434523494530673600544704379266315835260885797492255437535852548487248163487819634354287973432737018482601792089469341956405575647939595775677333400845415140246072471709889701811702673419398933267743668910452146053514315239248371048668292767021885419559282231805652125822776716557604521630486830099484404459154728100286204090330916539868417057897819061396633928993628084908046800220810733889607554733096877755142379337168028112625577253410165592295938073330230462024563074016588213233936437281651570160129708030607203669081239615920758080072886852260408406155741201138260654605202032392093163791253404113974726337567336097131182366326090886060990539871000913293332622824078899146631511426137496729566310908923523562518779841081989845279842505167232232922684656047739417173762163066704462250722175968119242003346647148556996405436041498460389532754744295516355185222312242275490803686155482999072921039169100422895917494081553482891785521767727831753890149458994209076999144491770297909803608473217021688990574954395526521778325041424130343124708680471563108618681376314770828786041312083620508401268537069301138876810717999753790894433050758078027821520292828768107323667969270856839738609478620959539684965068434609238025127574218237842802494174939796690502556717379839782469513895993298876986155345448773272417476135995021605665640020224843754402645248251799584791329536226768198072375002992868234353608967559583290992625758461814076495111125114618219782753664447339376484321452248852394538514946559047939233822600156863182396152620048588475615771590319855664564767708803228528277980899015895254719020350752584720766277638161343714935395235018057624737254568636447852592208613992832464758257134451550907342242916122406314806329918309783065748877164605706373203105914714881137928845471685333386933569166006356390967601344823621259176025954696357517120325691338745328065297877911793339485925629607943058694092441882414847622363056418792096201157371924324627330924061817610896484260451476296734347188826559951907582649817527652925461842053329142303606133068180716332098996392849787284041892939358530913928799840629937786919961731362079586595417578516023018959911538879095199255899588625808303927835672373694702628937652938540031382273705756218578571565300786288135454183257213322748259489524580237933864518172381419467578024161796089322579758492694489969241552084682109890808573324669068449038179520173160907747228812925970098818657105435952377549901512619849200097569395927399407015835779336604022520105152477274351198446396215341173880783812678460103711533522436327900601271096030903735811020128905179286600438063854866740831046806047549641241825341908141885384775540034716151879423318473999352828350488186311008923301894092393500424714911400957924723944100730224330916675033761313746419232744386578908729973626551855312743846828688173186429971804526267064649006044213922472005822022564324503034167712433640301671051147718771777937096423531280918497092281968957930639516117246220337137218585725579631885643005772299755147311027313484386194801225194668087069575885926254542132680939740041596788928602822092361116935902065008529346582171691166664484304862710040562007940751110288272989607642648046439900521493574413877777923493110558163197240632588723981010770580938448759312483642557171305019464116197825488865312774332051937573490082602472496133750404094799774387051251631800594848106066305485353770560127841511337216619235599293304515261625618301954454058136796155949905225940530497860431769848471038509768729802168470217804523952149784532262207836109513050491370083015361228414951068647897301184951668680378175661856032469972167871061882075873931872744472547035725932345299130713788566298653744739734529012399990877177627914665933395456104076164800523548016551980387138053239893254624395788804188745316214659958704842212784666737053626623900378715183338875421379328102798963292942434356167034484471616896535300566909789241452262826627795309907829565926388126364724289313124021643210388950187196985193441745871164886526836278083922775707715118670038496252939125792769396390165979401974814525261391220205297614522903955546542311517615877243983132279220536338559944952661014198214572398591710455571482928952648695879650318880911748136708500538718619378559251274086441189947610729067494643727656692177422397821239342507951721030227492337123251692442363047223487694867656540513719374244455525627182544994694072273562428075981891745588603911899284772063439557224327687059235897744160869931249694305768775126976168402718337748018436340571876569638674663988388608242674917957891122187383238438899361994762212688957989211936674387837523677587352377274907568257029484261656522790737748250057866279960835232279606691705136877770770517194185561815707796917073268369736917424169495006934770149540770307710929506635791677062605118874100970252896284023654983331615482149843247831264168634864103199959458585195669329462222286264583386527022051148532980135849239527644679740005008518703376446963710528115825159314149171492212136321568878424674065910621631176183868948425398526049159733753726573191006291296148415209823735414034733107425182318145140572118833819672664221850586600938580332480383007784835409551073348964699353724822939299435281298336435283420600882421953213443559938285820219055834094514198817009379412470821706557589649654779840080904142608325469907554476253761003973993083572405240034537779348838877201222433943367701328487843759932814110875728685223975490421745950159999108025831063698325676747157245313424943813502955859260933135067301795086005000404989273167320255689710083104587486125570686860669175316308923513897107555134726688633357792505767693739330153430105999310000734462140104795033563462044465732962953046225099537360522033436402450979852036626733573006182874796776375003075278632419202500897716819593650992949625174792282173449769418224321070453701516149597855270774081878474187352997980038840956488133746179075535085815649689563556652044612075221189212405310146687137100519937266839035651869627190438727811589071856802449110172254440180096014163394255441338126171964479211392332738527586020556541424624549718067049775429592262928007296335032700511755145727416446474972724878691483094776842989542124842525130626354206769856053936587125556455548685943259050869776300083212617362317880740619769881047120002274439950852253986436142321724967878532967322618451897181219489469097374035291592389618112277373001898171701713356260757940466883823286121995138692063190574762298281120458946646569213155741917328504137048134751330013177607675622084181838143138538799156523994747125939768270075638182178791009086063337128828177517645459729440717005576364480069885637454165838473863453931774211638445447841358077201894456768309324951062527201698095332624859970738837689787363372801349422332142716630686226601671147357890097699030179907660947811838952155278588871358296250208482353203430737856434972267467873179197189165758669181602536951874639764501057366862036590354016842708541334499722463486813447026990655176554048912872734038560370181677683894586971784295790708726793318605417694045245593524450833263230907249815725752941069164931686982549467498518028160100898027252809303692634274662876895852296373289501512970214875797958390782250407154582777755040476706856929198963483353904289405267519569403362378961645475987600452580570172984488646463792429590032008937806861347211123221288222042024204618516645539964976813059507586144286768899805001332219673990813235275476285362583159044781714725059885010302670011872758646385385704309388023250809348697920868963084478243799446993380179228946569855101325425325729948542227391119585283085449338201291186911049801062527620373866263746392063703058907126216967633946395396447226020539467706785968463929528418432162881833079029111047210248102889752074731424139598885188040503671838982284887898685978618370384605386616644826088671070104327803245931387189261665440694049368089778763668682898417631922363490218066498470806978565761408428321813336527811090999825611440315184980269741421274458956278897602708945826313994144246442190451919039183951499321713137390304516988776705617047214654573340154195504997435778496363539778516713959833174290386748679930472779444367604166415634825742808622225321725125125612981134632790449943362615641530927179460706212564861491192972865632203638383004227087703201722790891398537310042274272579569757753117782306717076323829520109808360503521432776747182255179904949958171023576789313244824284317490500071196499337129814604035691152351202455697305796479800942183199199176828579898388598625271394801913870559851248912823435964686332725951333335383646895646439016430793632206164829565892987540475864535587095751524540484367495058789950251953430716803784233267474394625061791732377109935599054008107526408893108929959202820987513607915003590143443517231665322463601172861812388277038364748784399079096723815474188206361159476137632587507555282242430281040384475402134945119922694774857594199797502617889935824621608840453587800602197988670420858536335124204698454237740776964969627328018616371089529937551267378842937553405161173389979273969518950247599297698081349341442501958098965771610274404391450746131169630053408370405263044696661923044998478029847524233182634917271244825641779962508811428191835694149021984333171197696999554847644162944589284807154212698279254848171045471973948149797766612972183361464416105874547412418254428449038391948364120490335782256607943662785800640272923834163459420452132993430951546714279872344658054874879821494967838403336553280426466878499162056358126694660940827766473673275192319096571838256610350956838557012175744361722236029028117860232802308947524098320639567448772740921205904201930888338131492689801097924997498029963306328828204917536783991386943539045566479028931618977667258789059031794699695156828044010709980826745477045740891140935606460779042058777234462911734886280316909128780736262113256035138715379268715771884704714630807905854380841730033031142169369940464652674159367222187922283999674308161277382996305392373484425583672096137487846501285697820069651581734253550089163751113794313147152220574933287995689781096499544682364937409632441544303413395500238056051459020372759226217257591559847424037590769395194581192416337777368456461096934259950120624814513945213102918101071986224069870462263610388555927601857715276828917370187323445284093243474578680345486555741120767370170798049801684845045548103696440319217968456653372690052841889216587148291469235026363456594735194845502023373112006662626989817497830771443026103610023597461428129106151428370830324670397681117664174320876587715870510197241630850495426552849096339439730367461550724885717216792567189017558360704734086591440930091514339392467803143043202282239257941931142565205358041554240577699451084692036674600395362385626894643933601946451227495133295303161739715307929842411238847497049289178018144143118571015641819991330618572470387002879473999005492436272434472470357987397967580638518139486310574541836449235805408665344632723249450651448993942772953940825123999973485128899077273861392576375878700857152385118499440362126568481614459892685251613359498744916444948425446623155025340511515057493322919702119017413614247335120078610717580523736860388112397199759536971455297419410195890515683681848968834462896857086180745014168182317458524292700970422902641822441465371482118579681760265183040694763904881719673949924039967140431496909848139299954543158043593411913536938914857453481290666208185842972553508417194632618959659706452692175344143766916698200976299083661983878766554733229259303412246080818447390535124283751347952406353195686070812109095132554415774757662860483404630185290990908342843580961057658755915219414752261438661045695647937173993043046884802705648821402456791159195701681025398092527413282090289168827686767694998977757269028951251788906391559752814775940841682816691927343548856102776157194129060493789734582762681661431243813393523303380917930712517794043361667258350913913077718163367419886790661670549781726100468898819101728440964636485995547582053961881800625476402886066905919926872712319825775206624784649029826930307452089361605440340056026095060522975182309246459404030444637313391771264758218578218126509325234189580078716589213738642801601146808150353927347383608090137240755878536407194965987230964975012076116367200134154004722566705884686651140273645977427699392154825516869457049581439729509170948983627070219609621791942528131714834802296407439328084420258199360573441391478630006765784339415981765945032477641816119618438915406874403305142705546867844798736827075399822748226088347757669219783321756524033107955440229632032134717052456317250287544589439603239081310750522231551430561577983852601809030637546579498058775216671473661427850603977913136729527495126406089654260815716633306685235817250622992249855832275109481458078228491309453307051072505143359114086155315478752755219731753289569205438285377715809838709763926573622771085261812034797547380790909992811562251708641505771447860360421424718977290123963190465559784601609022565652185741520614600174857480937595280119472002732531931787849138884495356510867842658351925214561213311936448111090929965281338328527977131876890051226199560066501961253929231004736496655179244973090238864280880255629340788260209811065881860944010427411540617559180717535424753700488987108655662865406011746104548898581010974014008404422244417037148732216763395183674940893046197033865356858837947094955852940121726473343980874906208747550969115849557331189480278143123897473327156428861738282040553572333350543216071128242683881802817169782960583415566043011880194461037087574801672438893628105598070176418615244347098181119741389971017246156028394729655287003214273476741553268604491653394009051512752941991553497621313285478635562178591708627036209689551317470526573131485598762366809826264300957616840962436884578477459704888266266015235704213075924845214791516745569700966846226899350047596873333556051941862774783989938775322809213839118655301890756237541785616737768743997374599021044907232047596581478833135890395139754266519909435486851953594268754149572355848276035438244775790903487559485433265858108604494161460742298121333043247168627632908752691531255881165631402383853057503060424374328507251081420496030252571364506788699242407858851436831869779837235450172731724209699802788497978844145278097207029677158471985208541198109457142655492448311222931735696827013216194303206666519570618543846840574022272299996750406922707222093772669134190265834374842676670238522635267510737391093135857724984749131098416692963796251977579223759192029564608384338903171194303930657432902967172698647553796112938209297303236857011706782214696498681256116254804630579547874427682196865858280329255614858018210728461212454953171017652974350077469971571698593143063363845495666560057902518727417362446679349770972399323174449624350225535099117116787109109808696708854243208864384006333730713208810887219081716491426370346256425910230081948666298862751474747889383572445708594916723626117007022163976987760258846835049024499990177378866223460972123110489419111367347444551774701600061714417114748921342938535218046380457847707162983653056610817826778145826459829519884347215842771990858438759711109525398964865997471096464256381121719047304927910368069742809212107265263791879090585400751393060283763381592728989065178763954778850952581329644038451003005467553674089566298836401670333543878930685382368435493777236095503491700387068468669436528563277964134212695777080846650762041238144493049433896205163493297352390490512917034101658225999611492002065867179414976944934462403968055325507294876686986486798252412739386793987517065692287856995081713429297139890240720475847988409985327935325617660880510666081979644359831067825166767980126102361735619925417331133521245562230223272303734545902476052490157913200130522438528533399391226068668275837604723207676535502548437567467790373292374224882184246242952119835526778903040355182954317582696861290903474676052133647117940387572530877401048432909681353344349178368985305366302051565831013008805664635866365348208659703260024332897255379722856272481997312998560634685014386754046079191064523055296068095935695222675990919296763181750629976878430482908906714476750628686683488036880823803683640506571520894451505689789679447702905419072628063912032116636461428064924682635228648439519753014286937581699833474979895625876653024520248524079126871380211154811568265328664918178625470131307545952305583107673073532279050814982570109310576171242066430616802419544335638502530099825672772843826909979636503759244648463203938062678200494975472530391886428365440382116726064778385399760513080825133091110749314236849415328240424961760566718355811355174343855825868000829959081107821973220429732406598664963934583790879549803555405989515365083222418502496531398249424845998769085750279703391431830408486823034435822792803632807685868854006218135169757808423719244115300634665491812143999611567674804357735115103709772177223996338592497103883598150412876672175756979988181029586384001992352566916710516981568417185757887707461223403810241604085506562548998847604064450818660391567240135546544894225014654556867253047205743293172348955352115211334207360890659701866912108269244450319699959659835918420851060724807964997860249073570101192272923824827892776429870072479308241563794698509059786799006680957413829551932079591455993455163553967153344112276934084806129290946184399513171507710554937103041678063513516938798681811422200110546950026787023508477468382887055369024616579526984553438189258816239919400690844818911616658328353157830332450004023536450277262586942169501908895427428389394363800336032051201285055676628101050134518017064111221018954822787434440950496421250715921687299977661959598291050024890499323555696763358118615836815812539780340708558293225596623790556183675803765025639168638377803701684879461349595167436386969437661331797037090759190918522253535670159043533556224161588545297454357187294482588410207743492300704246470770561785370507952860315740214045950551294375493685997808706887256900946801479618073534517536502531882159752584821668941553702094061334032443349298151990160319289902593032253391518060419465185298541126727898084686189525678536588716095731391496202088855579521439528698812876741013995762085573390345095543620757059213213951126351808250165398699969248531213399670843718600077192266263660267086843586210335309791071125412750307254991481774506927837689372763847551222563992252602744427002086115799192783092747601772169119338059725042113644429592490527820856176246251654920162969778477726888495114160928781281009562722644852534375006648483579371520346013119656114724687137789143866674163300313329250795485961718398324152097282815305398432312811179135347616437615014726351837743397317433966726532788419765431637599215073360693677342121925894555977562231978514406542628331127673068100057297935642590995553351395129433818199351007510457694338882512953995476534057577879667593229217881850356196457452361784861314578875863766499413510715388971377467238069162304828910644525905642802858366823330939537822388743791264365265585233289159957786948528359993171977683002996662237238338278819558127051595218147110743480585903315127612300059685284668060434234396497602956569025219522906379588747787251744272594775987310047163847786228374938404354248364359394179683528001272949445490987012662494397944644526080578140903125931028644093661604386116851230723027497638716327605161482956790168927726346168859985609720171726990356727820539762619182521365011468695271435558905965503838800877814219802873303092951558466355255949496176140204178054963658021048078091897819295301058639846454704708483523430908743159351853759497537088798138089430976004146772742939784166548938275937493746851093699656434937721962327582167740430153488759778151117714625297073133620900554531600353195551120368722159717944751142004859707638130952847923073874328263239808961737987191493128512826830664424856307002511636533841759528615717893986711198175859597108447520090152758437148221129519822423294521758308192448732048390211530147142319671145625832955055032120311111740077896025198797036560029869992604396242839625159259702223337505901185059332871574345643356671004849654110184034104275938626003655785345463862057703088540774849560453401541850343610806079603627080271619348873659389699446981981992834378962726451135171372266209955060870357788665270728903090692844661173797720894891756233970076319001290292287708335625210174528707759202453132137227114419220060595340867471840062855310511203017096477700884206272243297022038636013199306969812012080716668842526355338254045140854656442837849451225158996402823727579725019973618194123612469157971784207904520852879832982758849408903553276158966952645743942233289019789415903715946663303773191642820172039866785180327429475958338497516371936682789411260807977724538868266786054401686076092799793001741403607827666963300984021688999537686642795944359289487615521598100057230297374099006759990782305490009966461256281991201530372061500782296657299438196631839125903829197348193672240185859882374315288331666583760317467795231942603410883233309283242413034178113613449697147552798114352781554377075799032752504588295167090803073276420102270104710017814609268913703692330047635122336589081457972474164758516768467154421774191456678964772444334498731663373694783289088782098967511280668353484660924705712413253251423446544034856647069073895360905979652313878316851257584227917798434504104441143796697035635226148869949245954699420849760911744489943467008699677973103111484379296816174670945580023317019308586571711773054517245236323504593059032532081660968928052646505522702921556604617772395925768414567711967524099887101915122104404755621128002056751281592716608764297636402771110912978683031615536320996444969155241082881470182964889601034317785228429509873963268894910338947696240860866174600761950582412663984246125614146688218168261012447097836764611405235510324980581282207129497970017467975911717857209369003526199871170592356226031394021906552040655059831510302901539490455195099610389887384698133968850030165076662419652993714476050503061494532368706925660008659780146696541195447725627610635634548553965415194626230443751595469491646625732828310049484718171582235350509111521950219102586729072111266185971089004632877532620995349873613467393860875550174927737705543866793184746927183135234534356851092949372371256686090958048367184577552071555016914245545894617689401440200744840012856284809146261925384156617041091836083638124121207003921894160553565205907636068019403645169595076029694654839617333578867476516025773557157831819534703157081806910745827172968597859246327603818697593587199131342277092812683448941660105773618582553676094538014811859851836391287118701621151856079699159041207143970207149986950891137180360773783762097789613890138109110303097578069825093012629846967379240842420046038187895499552248906005705898744398291577011079864155593425663126840648600853720872805949985861103209320033709815827817251253741291017215793886216444979275052613784155130840338925278081093528903795233738514352995161706784630632575975324335994645516750259476109542727789403485330223403674602103661492262969222004303031520546229209279860561917266794650187698269277726014223111750330793609494442378293830875736422232613506649668603843798464775240461966562804672287270829184106466634420646837558096312586287996379434921988592220738854115694466677385320822191397360289066920241972566094165474020322912259789675822521740020646118525762404346895995691638849309214058418499801084386354478560030726226660865210937656908045866221395300461447464846399655287351593306935351189358827286792726443711742724092960633957642242621504145047598018993357841760312143245359300933976186877368485272993121617096196873808668383605974691687776759736440657906693269586984067889751485305627794598761467654893427985186576773594802579987103150277302629352058251416727588608467924602999024228711927923270689175139564404703947863438523746232811061104823561941568487766109222889108287957901932543559649049653648486979594777236014435356710756304781021548059860902340094088715819373722619440722440960941049618562571205934098094270409002789205888046930219947461300906801179179663162671107739259665576952459168811643353792567595166002285516347381120249601723471957237546945958775230301175160348223389706642341332173383390971208178097597781220831929625831311002003900882548540832519410342430507024047830570595081494409461777234736050134989647150566901821624503455500480869060839595654648823450483230722928475745595683102726827825874209359683502935491158488221612025292025826733380946208954311291087573823745693669021830859052029972401264848188497304377342380520064816500126955581173655597310568829824408447925178845433309949819675819423862163080932112741974207340775896357181568849897759819823607912736112192146185102002248434417791386756307699510410380708614391734441461205584531720441746463951671618109432867052414491987972774736106808613508102662589996388175751545521154048212840000594422794302396529989626209305907069175604645026302218038861165093922490732897472282787041922406722548827069830784911880510388413754664095261388258693840700466658081652528772639127707027219655165091096858411780288303325848017059949193659949051738447180324713385101982415904065895673183396209834629928262606904491455049456131290980257668301759060578732243775681964963618545017560375160994939615457895771683661684412736765845292947960952882353237779003628189040615043308426890883834699772742161401183144832121794086779610461310067357446455825087899426752641360143411987787179222128814796962470475310038657717716406402020077102416488806418363162561501803246177283011739818091204167819746705410725932270796740195402975183656257319331466353487786787300132656835753794812766152596225890423302953981866965580870432844972394381096406459521802235373987235341775419230852904901717068013912668863646013204486269358357303119995656896198159995018183747776165567260614787927906718314899663797739860233007179488615379085867702610334598414797051082983061414162343592601426442335005193226439206325625967980814552961629031999136844330742709356161773760313680072327515714192300146756248250954740799077549406441286136713320346920660676062735022606524304757918261528539838416171672949628639641534263955154586756775033512317831511407500881966741212968721420339986895042353269716497663177310464444261752851499749086925788648751938865266468609279278781924539977963570100660144774083228437778002658263863633812771121100364523278826576832317310560836656734980732972379452897373330371933304896196824905006651743285812636673045079657515809810553477619868818347838609501449545423893432752042789934479194840930661986112524161844158411825039065253378926402563654105312300754178360929345719302405254233681142980875282820239633598559340779862030568398928695644208850640648102261970196543381317448090429408552792679298810296667452752767256959146652732849161648660508100014411483265542853395200798082425363737839042642874917799516225796601152680332394766516871035407572096415214622537962334668633379621872546952121051249479177690846810176673803158533472455134384111520142971325109892355755082621474231742108035568559234651074182637622545022370630429561955592864878660448222040751148011305606243786005498444626331448416015002372710617429868179742002531430059471815466960348153105232501338813759911443785314371509997651289584335786178019298491313518965080086454754898102929570076976321235929392736317281471704548649541444099783327422824355906583919924986303155485564527107880084371612632401927340867263708679511681733030862561063384725695440605405386215204771186143639144699469902012092194367448591606734465831080182840407411868265584345214002956973336107403133157939712193247539256828667480705480130236872052831980315029732545440792258374827481693071708567435631454637441406652415061281023420210686223796041321883784741212952770573348059190981149422225367272066600284430312732379909274338156034303464910825739651376362384709441736157722572528502166463026053679316309964738040885695475843241625881236857695042087665832819429774465366252835033859521629821150410790824875681864294608405778021740259957950357263265832153614970766867323269641242854570440798331194420044261915225686277650867568112400062960990776798192448270595072348318384312716605354863480799327827589609768293957361700278914192945948861213324158178698888263211064399469346667850514137741100780823276037264246647222471980335713603800598402465655638807581790862706771020475880493124880193513737650329023029981690613278948288398164805492870585229063718015686305926242402156593119399467871014608575568249306682701862436323862342446687073218857277853188456040191394506499379760673319927443102227889170349912710697822619161902693377665361581403757003553081673590202684429032522462790335189374471603421792598705468466918710559541429499003895554700598095997360617709270713807770658934305130945938562283073831499599723720175252009791103863576937930665065637650376997891235596387761503729951525141526131988803526754431305428601955678562850888039015197108158348953633179276417867102541742329962130441943593467046359045567388121736226010879198465693119343461405603790342527519693319644789439732146776962736194662796743188123385171761106170226832280045123630619127799149810963818927327292963309382448416858679799177211388157782394680166214248778646975856565874314304132328539121859365245334333596928136227734063853996715326048689743473846006938612748136000985103380075748140214536077765893152902125372960600632865965031531968419658493663596101027625300620299583592812953635043353015037275580549552681284672075189359210740553491221816833027475153930988139376484159006815760446215550114018561861150120563881349574360321971194741482800589760308625297267746562204746069196421737925417053142477976718452776567348636391333342539290006828707156586131837130982993952261549556976009591980698725660548962706578432402194740645533271855646986063165020084319547996201075055545940390735631896951161356872247460686753616426056912246219749952747493165575208757369481424105287789277668155784718098105940192404204897313316460966632612670860614999912649411383985804345119769481155918146369373849482794612779160778382550274988303256926146150618484547588761071379441619362364480598707749239104539240981415978332955644462638928842737888485603806620665894273358100685353757990143043607516472527825584697807567326095674430074147718459765334355735494775195298199546216262856285340484112581805323999974445608794246239414409966134246306686535746686739397866271359309205412623952180897144089134480331271895138256382735046732068622875537460448728234626747314910072881624995522506058127768985634529722687329605591227752772164829716086557775176917923664439663029391255939477091396748536332403628683454867247902349409443857127891269252094052207324361069911106470797975700175390417544702113864869771501461471862392837040389332184800434248922257767958861752509073052593966265811992547315021812777102169404922065944328062892327577608570997368061829630977939637654099334108680454232262514343794991978253712386779836293368576789136280981485435207726106094099322522584088990405937088306094115861763499137774316027155193142223633327450362701725057024251358071654672147095747314787362063470459251772422062031636882947190328048725089138961906472661834731704970231674349957047905022380536796785733621718246621163676469520179707717207985832250578504671375106773586747741390365937029753410883278228864244567669483283356789934933207975697287617244403687600720564294169682922959331928220845910401713784123528124713205328132312134147280643596730344381014387683371514344589754729465368870724908866027396750300278484450359186573264153988850707435468784156924526488140113271381668084222428898781735661142576746641616777087540514240545330229323358463722922805840020960348899631375822840735511597911642204613006869962140053662817931200654574993745428599298028005930650334484481659080371814903857379579531535825237779675313228160290428976511863373430504238311337191365083478660284859476395140756737801972247701976785168097303554655026925529072527272871433536918685921573011211419143502039263166679683934840201720285095142573721562393439288820873006205386174092575872096949406226054541923292531916852390978815224983499201825010945259655858605323838537004635182178503035740103863792259992963544418338563183463680585564211883775518491836450716514145543529024017300979619312194213847332860413179592300466440775634399076623199261634858076053232286562445912976796707510677407236142938597495258245063735956877959663599014905055930269910058150421981877649448700758573937119852102102719993537956374532269546612729800393700221440908214397858685625878811848587003924324416847367047236755593772933030461930634808626933461857722725191739860483773732219212720614291401497347037873338071962026714443130365287320921789132286594369555557664642083491464886853305131824433676312191041711398147003537847061293499447662972773435721035253177596127115945231384598650941233002001031875705481346586335768866947872954324072331255217497073337589226243920063296320517657682839191824995507082042299736708772456213148326091086369521268297040746072781084786346522245346740215899729455692140380724904673933450488925317496319066539567397028919811338649837774610449146678756717274865638012270874911321131309398914626963551441526932136742011755951056409581507747126926379742846904379574521563945580824295881564424638273828298720064648481044357979178580586213060559665813315195179993586699352880626166249989756073422096486811846802640840455371859064205442909321992138445202712127292553755077324935762273371984558372607101881960707704900965253753508804829305338355615377458969809470891722306403663073544989278152808241924422929184950151513720262922804499843205612267675498830170525553486969107555579087560543838388136297719199220544529400735648763615091627650026640554531807349477797503286302272653993061252987035379164087200933822904344083359202490239280802718985773627391735962544079421225366133881777244024269040276631347141031657910677817302837545105354663276858932457452730889007561816569985598715023682786478024771523378255610708994869135203084942443769096608042541605717957246771380717490469676510034877569412709208531835000597032650581253473301580293538546209492136045785538849318668027374228473505610589357919134175658325909085952287381894830125026228733249627811450691406677093311153360749830401301006711549628798626604589495623544899397072370316734822013237822152854302270237327243983863946294253408244769337927228043873688028211194748404899371772053127531772504599841392427206777662259876736643392731877106488215700567774928640880686307127011996232702552177389490778171210032638447679181002338457155756049757262817934919924319203990617106524240274978960170002805554271701974503413565771976129455602109759038309000888013440086305608048166711387271006405163861018430840006486974954559180485679720878137978417859735101883971496673818423941456930680665153053647678877412239586016676013110040365121921695107637295934099700756555370835094157058594902029863321350545485665561921349824176074078096522895955467729788288691581110757583696023486965454796032634281130500093188890892272842687033266366100486003945116604147301230900463218280004392350920967046966355545066224997846840841902247865726159812721139813162005407010253034161199507066476117935580217154236479348248793466219850637309384438198816910807205783652787715775460232096042369158439701130108667521476011425986675942727129763067972636346988502555313224908760319820031872127741367001917782630835500776707276100864020262104239653635526281655913223365939965925417008290088449092600267313702261989234357674282685735368240708040134569850751761206100345669058702705254367995431729480333931440782026663097608894100616371333325020403441423186989776292133288868684473136249503696337570577790301196425911763165144238808419300496450943038214270055376899616658711596299438963919649721562860002355086306376659403195412842048414339097884549793823193256719201187583800121698442557903444876534545988060896454383807597263784213734604301549793470651015634194360352013404571238337564170553871934793934850659571035047730891048431862069254942957042817656245456269651110604153363952098569840928088886788662389284474909662894731131687691680807392536003903401459119590810887095342987043327027035180029336629052856007334653128002267701728188200543561622155605955213648529094673502619301696829365381933283554427428395003847380832596198373633777998485413397709952846317194700190886641970234030619160991499118157141802348374479001932096073104715090040313021492675228229144284131458098274499549519956208044049554947406278454568716793553817240401887054436450897230316290050966893700669020374856474561727009420349677610798173365995017028581523851637744215747963597324627554073493655889413545162775662743682082788509522243830675295603038925382103506969025857263954606059126259936216713430254690289575337984573802195259339264793363883736934332447953753653980136975492313064356102066601677416533775837568435485192439654022536047472052692777489622748837155023144278133446377328061312631077238789583322641212152824521467416029936427427253953671090129446166175807055382734033455550174566681146176699724589969444395531204331356746794922180810531977997066272384014364923467581477113983708279870720466685046112539599848421842177861100647388362761910379456341024066259404094802340861871579103855888584167314670666476238123796921286878251370596048220437442359007842170826587067397399689767522252364724114843594533121261606956397778675093630123520896166047181129930982577140947154195879765938413676474953912242717524390247847730008943890421610916069373432160448141868472689451724354391134144489274332925896876376290190030129839678044187042606089369374849743502199964302331696733063472878321956723582682718471451719964939241868073534095105555097997460318452506702053382255511321276786277738571666061206182470003970427143057032481644061074163953060239529479747800479229410992136427617596895676901713208015021595082523712668847847847768510217955573635695225674011231100827806214037605289947547025303232931381498173039310063248800415360128526297118461535678532501265546874842565503368580670219557667224888044777087012567022722669208385264757347259395633434918637350532822415825304992059320066502540395098895754328437414579749961187876879181432480855962666374365279841994984270703408878257615311623238271515579039355257917530034032009480833446728033969230532968852488510195449078927223980949493971704075714753398361353843069519124599366558587234154399480738093270036983195101163105002706066637082031366207420986822104286527952444439323248833926849473046679347334681505626282100871347267301064379537385224825950237884598848283406559962756873478983258841156516350614178097762140916487553829647691972546977850411437908224334784092147715745536888104299096768875193737274700878728716537119263657332940611478335587398179992403335176957792223613376345070066831511988423806502712565701080744060939816054588531515857488736942679281544122460328307792101886134096369340021049766680843991595517092748672302557338535611691880866513515105899286245495767093314183476860039361639209246411747528564820637673732924050146628490618137133028631416654918503436962900533591715335307357076940068240932743033819421377014187102665079903062334418127913032020910545917177102741399819357023228981505943158517399178804562932185875787403318587835696687113664282541615690513628273321396971581252617540704609268517094962609455682118842555731437121775240932362156342547335334034934018282137697012322471678278588603356788109174351782443173101405039369069071065755417825936648857209405070469047834953790300389361447928866036222567469122805576936171956850579138616650741067580057949806404569802157970537839910675290369282838561502732830251642314869904116417102929484538963940581416891676414680115796030108001819111549952639471298576117173849039320909373421789105294835057344529586971984747322812899045184538332503494860040943095113153524585013070316170881123633584380951089598310641766146105480321104017435980561491698351036667785977015093577265524672178078068350961124520741012511471928506315463471294866190140038249028474713863772504985805192763371728826555203267353029929349862488564455899807848494497148997732963467218789163568472584180708525277823171747139585085865621513229020796605079551213335381451846060020541449039470622825672801276814698127295383048638012369509035034981679246483090677954260206678187028231087543933155484978177432927188030290213895077409302006480832576762106411124682298929332971083975963696326249639780070109130461817556897643774784863214313127100451468200801763918409307604203338277783209671619512965106966180030061486474173081386574854260882171514281830811144775060093933362361944007792218750200412048409846264563047108933689976569499923049914415543649301246750593420382349281615915336002342415261901186537203610089457673421544468018424008590816182672254677685401529811256561141074528173789303879178552701992880982482992997051572158024848908680348472896714054623711197361252942955431254380716611331207605811775835925925043278429370599511920747660416284784104596973186584434514904471976171462199054325732397410221142962296162811432728836350838902210788051406145598890961519769670094402958717868589248729368985329532454703900114581161253842516421562179417423949932827069592784411800419950683441458010366644681717179029542418875850164872363831505707767695456042573382881516717120915272313960582595011132417808107681731480862453474081484521501958639442598757872197043843169414845273043198634640591434677261692390437504726739398932450066858822997148946811900158487613308877001020107732464864557851501928208729768691312767912230432158408869358926312208712160709625505189790065096672256259220848031647089767981686673378995358733203106408664047234817652632091880700389111699801436891896620713993526938625537876507355394284783941350495150565084759190454935452267053423840019051543424011393281566985994838664605092417415187099319743954066026093816480558484942689112075933102820983707284398840280594411874774899782571933040211716281062116292723186747554387743829178520171314348799176240683923197812372917257500685133613596947091896506047903251029111215804435355287012770838489486930093377012251722318188878071189702598920411346364651654981466838635620826314311242871610352945635223905821424142171105686899337904981058031347949307547522003743120496401227466247907489432439078355410189602346566208551258235876424700292948643908682602050430310419151019517307696554455421821107440574888008908634929326358376544794621527851896912122749878802235275880080246409699551054582651906628971946575696375712739123081286442479727389869684076670691122190943662054120557870166482212169824194192227613710940851077535368448602751402984945015164997627159685604382749270685872086267176782300084989015427199378950254520733500926202104448967400661668991070377288326748255230431838508688811758379261318618398257965021002576202337844919741567375292572100479979832469788993940325985971148144863654185674082086399496831892872176488151404291462942054777304483144758141053371902404946311475650884066156078443354829374571691645146210348504237051195106509984174440655745782882670159582559974625077479449297615954262360240707020951414852377252858904349511980525569741546998946614334634632262110373655707668790777894220780751586535410205923154335539318827878604415683653724206588475454787736685398606900965185969189392179760895243349268187143067332288328042930789475425452113192371330594311082576603737379560461894503843243975196463445870335575640925448876262800165815964370229519365940379456738865774893674316261858282426688284596591113878126395610720007488455450900388886493374333702370582829902889598566915618956187775001230820675666613749314086159518605973090390821384228725118919964634584995618815167816352036343384453821320268696555319076655607710218576791909617040782475432541518861945129258402785621828626580829851588509103994209136653740281179234351397066452880532116889256152290764603045949602293845672014597477551167505282489263508124298154681604364594283771275086024175374724128835812919260346729750908115984919258355735762198708954314951154037407653691417941810058185253057738402209004239364024283816760046539318616350295973031039376566441934118977024465656260929940963214167323746868334404368725331189769098088139511506433798570981607956755524575275826590332921714655620302291013601121116016521851452689865929036650331872704510107974859286417773661643728637977538434664198527350556973863106853180005076794430445257755970949757209229431762076407617771238211378050234262540353127930506065422430932715993186843342000940986392622844243814845991986249370598901260656273526548868351204764858651901361709315712244782165792531287501700751958455455759465040027003021605686981454050026478143408432825544195457039057310436304949905438502005875845700974067413216893326181148728602173946170942433749950122926989034008990060624632054690054865058447023836782964951016139842588964392740168929712517212044752392894201205778691938266424997852550007381705667250937316491432306584895567848352708712473922425043637780391318946687295854065691747230068012610804334305838331096496357072926210494113011870143819562669862771204913202746854212832627028327959953554674357044882551945914376731650816776019563522242614675879160770125113352475112857997386943764543234545405094851582699707457831646295763104351687303785766190224726925695794071395839682513112636085247724568515585794913782718258640242223509663705859175613057324082162343794978081960336403999145973130294896002818404461168643355366303967938278047807029029090385718003399799907533141650356560040928519948999603388814005889092237478944644515630641218750918456027982182908515844672263811097534871020048696619862570628658463577834387415652950187028605137248443661372088375461014378675044086789769986969712266761083501248295803112241100088565913711089579433762062976227073093519197252727466027995364784295563117917403152733504165714155472477046259450616813685501577166297167853604231427794074759772383972681520090088276145648483561407497892855775308111538482039727857671033935680353786961700520160343717537613675185463699483913515496162943295933664065053906634245005035856290289799619145401005118006206332073415130807988449754868141527542614592667042352846908464526092298994924620735198667733430234001195218508764634547959869178919541181826287755424135430843483543120785620933368998648672766126759592806204136289609477029963756007660677228785966358030804571882302114286040799376943843383995535147591386790194378078710087416616375045903235991174705692166913216903303151165222085916704695242951379531619626345689120946580071410855552028129943924595203080879425792145865592806831326179433916660580947993114587936821501406822713340232231277978516807054842393296769835455603702146921799087164864170253765299593762995098118764821777752774355516248086848070837038654936834411976086896130794784189062728800454224875234977492136701083426875027864035402430893038115006107446083744688354525125123381033982624144897700875636552594954065787195577666610439837132272277502211972203875173515048635099677724032991362102851958550531912212732982080933256934760105463530130533702763372122092404124285721567441945620279459488684011667835184472707472121792978833107700889777953289489370782655587222406544364743838489923667460647741969966287183625978958793885985663017238294763600008200093796362345602271710532241088070062115466966953996301426173680207929537749341035654197196447471541408240208507301155189681453874944602413239027879906879249757701295798245922193610356459382498005226552137738314469921514958752771580270064266181652068765117435655295675793154449864042997255125990891648531414874380314274725898410498953355731782768802989781792715956148201351008308066306991911107613543712400182701446989740051626103750225252390913408549230787705199445584941863484119060577154353906971052434982102335140215956856993605321528600614183868782620511862914178398048093870332132115767199120525893711037758647198786871917571437163169804590479666659905707851331879752843485278315816241265498148953358544119089563319016832225505941402036535132696178829653573057059118768507767322284548069996482664919526250738213830128911355860779232078252371931786661131896455292184700724700500493679485664691568749193053368963383677150036131537043319060791534303695856676484110950169839874886460128066346078620374191558027044808304880498145377715139080134669124589046621412152806769882480922047743517066314539996090834837856448524506960717475899954993605020120418489543709660133732374172362849532934264042912811276082767223887724630271558014180045462807876987623635002765082523625845877008966056654721890942039517956578290912573879401551165441399601714931208367311535174930401429755733492004614902806758245584735227726192413947426430440003349764293908534293657010167710936601281852993588943838975205426645047726640711815950762363789487683328768038408383967103270961510227827485428596318566245280603103094309266720680872145438999306145660943016168419484578733419658201511830077466553176090947593527865351292614395977488668564694152839993602590165063422848694985854565818070117876838465677440041108488439788674918835914975880934126227650235328313877999072799744101047213343079831340906334630731302803290111347347973540188256823898681717987931861956279829314989943820523847216325424337065208333111524676888315432179645403719521770219065480871632511866933405351022960604462390412170764034687756977764194300130343356225213812828427415995404887996511417211552664970836825793893460470687727561528195799722047402165081570164419585855318428802509009424400641389353879447579998815776127681732097085697790348146135300546546564774722964388331778573977375151942603019358069640907414598697812808236359192733938475130870223113254128549416482089483684207521830942226812101115673484256069442341494782578077693643443398557594476669603925113748254522129260468460146637326721077870542261918744200932217619196207337151391180289529588115593573871998005479665496246440186053843946049182203118246687946214249004657835297324289518743423155863189912523104515901858780630311154856967674391308047789044154194493141929103727124139513856962205768774743735494365627480756515850172332697873026443647220665738187544191171486516751564436949650009187565702793295159005324306288029199509559367613960118620168351056461382392913685291912561024850646504760128011834895747256366078217042269823574729425543909423715098459159259864490007666061376804069031008158149704889010783702370652027718143378738943434876122336293661906304666830882768650261110533609331584426350179388074298038707990809392188182674824463937406886011919941911203956369018133190476062157672108114370526921842419602865357467357673366874501588844025100742783531491968229509760580958054593368677767262638486299315755015353686944098966802273074412041633651399384601863048623610944700202814071501336686648392378251350724542067334898835815059870482283479699656536144591079233339680891297028490335379634602581010035070523730304605182712934225702485067139605164289365122602435191321666943876978883737241242084503865382404120020198931103029373598809809542014974742310554289707813234132291072188390912741736077678720397934221298934801408432380704732922173346475750282198586915394830577145059481067727836737199427663319582751436272380670917350343946896273719417448787120037073743549744594440547500808103774877683056538907219202509900811380403395743840983046737044525488306348546786084254975564050550376027098282473208831860208081540314240331882049203075254896707528034695108798175927204650020180236623177723048111502259390134085051267168729216653944332717892229362082368609816910142222097881634401077852575198934234641300617311567091267780364531540400081539222646976131002976419832126718273482254762469167645322317148800089988392701994033540891558000820067602928597424439947006907609720905640232436907709153734660240022520004072763715490968034955480316631338341372309311607566478984238029637262236465410853786470080977163221879016523886021304285289867623232329030143921140248931320785121362236167658230789027502483011725761139536712749742906064787012475971591966309615697292143520055012146107730178341186903087453227333076535386475096434558021644991286651412386053851177279932467016551216719740974629810755855950603316126355051555694081749571347441074073487158115978988782367055770441213659925991891486828470922759138628515039905081690158692289704990981109925952225485282783210921495711899146368169836403187780818888262325348592120876243410946287459163494500318992367375414349158329739860148654744846875036689927639308620215574398599658740213214844821756207933589767950960500532466587052895730301833148883151873866607936664305111215439266225847980262951429517435313460579866592622155660352207155923828616540130747331261058367672508307540970946952219180441091285180526099427264226623659022394822382042315440372064816549476530051993825097297311296236867560267284911256118965884158984007419280957202871306163563048713673463417988267006964034621377376770194781605939405718577861955700802627054789013471381803789371791766032184277748117460430639389586108979986011544582296927990292668669962099214672548315898341429387919449665249820020077939269933254722980345464436885965819019860402540600115248006982234803596771017021456804546021645400652075835650461909193310769127520563940102754438744839528799860645787725933265442754129435165621740272230942319915264233005774430368693604310561400020015072459166683898899312725345391097287680029700622683021588199028568432816881901483309389783507269030682691334091162757486693419955018539784409507647226880970377534076508508408211967158511377570134415541478829815642118381276712022475232497825633271206893436698076746771487278491816861501545568870651231233393543643720242444236211118085168871020567448053077640907776855288220501759487087803403371544169124843604844109312550052324476455124283738700403973052298294241589514451528875982029802014073599997202502006815414386347750158509339699771325063581406344028347606720934185849072571255817708646862941309170941115553213226941504637126725503995695743001856260751308807119188686513794385847330496443253090393262692451051036084803631090992505419566212211767065412910080855934483810816889773453946835442487612779983439647684167201564836970622195675657942323332764956027653758840551527383654174048570580285229577427135538440331620691259587891962341685342651139051238437151944084471842651536318817348605082431128815020304406492717819684688143448669898335104734739152092096775455734389262187146125872490525675571568022774982256569530903050443972291472605057638909172953402732298487063491764348016029724273792203567379449370108022849993116177423508975557206677142761189337376588178381245914852482056635028586840975644462825494187507203797055201824114169805058630680694181853535328718718776615804169098227570158474460836235837091017682717107037887291006148128789123266164120712141391755410319816635358723382857692867967023598611386356930562550388977735745155246225966350064288516767775421625934838181413250312883157070322726980877107520830680730934338674082465325473627958993148019932618907387233152917910381884050311303742916273081648213432554023002541031113862568380749960170341845087113931037878476800724620101213786307536911892888111350243415920691537535352442545741881947917465220008290624553819599566024254740731785361152042042593659946960059582550067848135312506562604165674108982749840170374111599040697222090622698853203847485075084261973117587971067930829859815872320079123273896336894793338459524075093630491502305273864739180418197133621315592346035915991040767520009401815223881039252490214765904350436707608015301216339459113130617918037347831172169770053885661597340690634046907470739768234575983804430447416586299990361523416766937031680131580388992455883859666101970471614738805224334782345924451147283468002054319979090849636594343297581079722906379915808801843432710581986010130915659840322450369547583321501129794583486065487266380040258361334083946642297972969579649522726772540887189957276560611689309072514897743961180240564883380476732711279274548267843845565895729582629217814567696871371263711359238850108125563252905664657682331789509013966843372962147494028935319482701117968482236302364920006238456902539359075259840332489810264961368785894968237317288520229389267045835998466301461877435153230171937812346236010438844609877596925695687352372185052784165442503368832173239726162715656169953294013519978390098115269110159213683582791034505091750911547431930606999193473300443994807092650138158543604647813740226739776126755650108705704581158645590192358077620825266672590781143193614744907120284173160715979746067257031976656030647267349450600177542366216732442571578638432997712304643427387792558787362689538065300466570434967381739805276316305124932725168297154189679786791662707064991843050866828422687561275371419985333272929196585098249734773615908087833224988525075903317821949344676722721225387714456743057088810602554810891535145473387221061880618388987918892112751728916773829509721490882525869813219534213461466625431218334988646990150282118380520233172680262343820487242828824421238803367918685478779361415136555557128214161558871834901047307775851234418073056677683351126134589422447257752164361911217072312343521006222455973198170209246239412689699637584458531453022648730785960189516046423775215675541331193724049190518621796786884299970359836852257103135023055234892337043729717771610147271603715789152798416223109669856191797930185021496457283259856096591333842773025335106617414261514369833551039314264619672430031531862704477701905917679569195462136806925239757091904208888668093555329410091751197301001349405418625508976032904237790183684970509557378660679533837880802210182283547254556565821647780939135038193302889029747156868468701371288553795827719463965272452421415264466388836215637902508192955660050331721964929493648063308284885748793998340585756219082524057745192723697919680770236401261842418295873568763008259016606077680031310319285567231190192379918308981940610694675734659489628089520671745463718436813662973983925480496949838895992267336910886270182404332592998184149310590002690283814261312454697536599816301251128647449340809214386793722483891871759781973039848554871361038130367022409380083595883953075948098026832517209323611921204449148829805050324499637739288559830025004647908233874240357611699244360793439804374131305249309830710630261415132851028306395945062914011204184474850411169178697933633590698326753268529058553839622391794473325594180178358542008296747033807633342435489115040299391467716585436150106914610838627606295761462974828756213644407206666843476895331250765056275221922442087393611796457397889418067672662939934368642287413684181719822325995571453675530095616746285720315305425493452600576358346124270418784112828145007090578619463496451177818462788829791231421405872211261841708087450238254837199493347821606244943546903507128436960324907465834928860742528325215203808070416053512481866442511135051651196778520098004743503913369670186358350675313331642621414132176668297689625425914541276982661319735578303871921823766376268016728362680664303153713367296719079392454076451059552485679145682013117135306274874333688300260162765147911233870249916115657548952587238399770784686282023935345649254942558738507373130586227599729967184016929967878791652330271226548462563313087727613649677509952243708056709139643189336239012657608010691227764801132875853687526677569231603204689467853303157457347663539398381794589313541274664794593958045301984499381549825404611198145684361898927632242693344704076767426531331404216173160783786673320312546225838804921815678012170642778034850195644406315365577234901304633059414341417509224060808543549735572126065720328744434884393614836516350772524332311641878743352125264008014404058252229524291052620947630720492653469210968508518927183126780988535683643775449716130289394817496011771098304278520180987043071663933641484530815217376925305249485709001282458736405206639201903427733096711440909144370850165356697226386966845106106888679864587317975476733894318418892946681791753231925681792053050158083125885299950290165695141971622631155586428745654406478460593694425600184061425034287465432776931981359293361831314251757898836875600292089962978115155025617819294024404444530039200437332959663624985834292581527992752412487082948235540405658509610152088299564043264716942399451550575191090867273417385647382807812981048384638408869966767735208972688722849049724188858400624385954035749293077608824722286455336655130605463469052698310395067697794906334060067901827633092885185614375385876403805724198242892351266464916823061996122465363941999038426432654525616412205082794778790387834488210079203601601961512283618590643443110198490789334721405742485547450911055244936521683271374792388321982882342299246690740770195081317164426555096744690918003320125974678053531141400073164858856710822131860562381273167779673311361830930424962481222991628539733112706293962532142729662552261957836072517430332694542096504948005556262104005117423538841022126012168768168685952933270869627635165953576173345549767344993760385977086735140982793918865216579928293304583301536483139894394617777626513205079139084485039703375190759502665361079004267685452770678206348225038166962744237618106518613265638459960555795471002406831994083615900043013794349407351737718564281776835341008296372850395756309570701844231664713356151303795075576093070801077526701868661098225059776381101083171356530406534253093512593388687915904439161388894432057338561196035475794755020108607805419531157294125370339144079537557408969748302891502743954768344498030040070367509249921058907272123308601510672829438558823233984218300407686012856164755046698606513342405648013192064852300257535836003683312006645520029594908051096773591655565706347083937040644229462680446110903216829180045521658073518952165777600294564318532181071663012447590682975522450525080502358344567955477599211044235877374252379726765605179215483693019913162824724364748398778003339498731468774609104296263448076395347733296123984396160818435540457153984525332945259216891188771953671117332781123710621780309744227361620178566235554465826294194287175794902947264485060364130210288889378695067996865459868737377434983995713890383307390545168236369265656666437662236428730493915676421732426488051121907969538257292317405081033148750087058829769674890151719708505473090084847938410038349109461910687252541933106082828465389813301395560002905483800565502530046412982039100941119315605399433367151182697758405536604714550943469589877201111765770537240728948320065520543185723540650257746313954811410556901369000032501677431952112294413602488178066978517389853969221517851170920237852729113744288739306490435749318661566428663311229766502336024339194677257569530261044669741107193855800455124271379814617109464023268975392992281177271397594279470142073172745402314431860358107210126742023466831678655801642364019517303187850415236260525201779593969375752389374809885104499070641194880325457957822420918096985381324046328978223648663777613408074627177994600719751783991811726949646125899321353058550338562722430559442947647384139234655975805485928577388113641441103088235383619341543309452986857171222816319408314764657211178360482789225030928407287839282103038755978112900458382524686492221708237127698732053029856450534976187529732273847942689215246416153995502211725761551938338063358183645821885370536208805031541213702899484217294964244996187219664428734908052085223242793902123592984305000825117090652974490396375618595144822884579203441950742174793129102942638970657311781230325063709243028969150394922651997339524871002747735842504613165901320985235132466068137366135932367586399995048621319552075972338535269854684820824924258879935530408298674808453961481561828545181114616539037646963206121489764073733352589290411530910857936084728943846088172116236257827716618975225879421899267379387265731271027557096125994450790218804852304140197916472203332866699162292951455867388163736575308794735261324271925164184403258020380947066466089850265801454411195359026627911157638774507286021639717291527239686309693642202103922102473686257222000759439616984437623778281896370119717440865172865598456395370235152503890695279372573498929449991678239739939864245658316645628433337773349890251402366962976928541207406806270737934504904581127935253616328628843835054134732567723040750989516976042468575078629941074100538804131117914700393675346435357832302655234572801145729042774116948662340526986336155380976191849652534070939480584299648914209620511841104771817224689503931879405785239498741888662032357521436464004780230972262005067011106954593985876656975141722486284306853796663740925904393846562718973732764596551998112810637812522639721441105131092496977480999230843127985311051883268399077791827801223866595907058077747172610703438049399812309998771569889208397008465507917297886742739678374432706630553841357485574733870692920315534970085122767190201155801817347734986672535026600412424616616327618563838323610382526659527967438237735744744551683007675334110808811462184892849883305053907782397144837738823798684088907208179417771625199123746242909592017703698900554206289157576095017792752832811460567386227500554556123371385364908888664723420038670941582429270622368327354250408460840478019485120787083648105953406693994833153354074010997592340452679930575574152982859226245287483054213399873045963125108786567138184698222598925501040464585055409680690138495624656876134956642062691287204797324064549897438231571019414808713234636918179539046460833504092673578779819923080172913866380124035856648931837084847217284189296578163835970153463614580673807868885286587834532371207952123359453914268455593811798970650945419558028483225333441283654615153337930949953781276787118107996408816229075388316030505010146885015836564998471926443330276870303212073665180399557180124590926235125007974968325758505158323879467129642557099646605486715483779215731479005543876681684889840685812228217999897651571729579244427473662206400311942224644744558943207501794927373890633618404906684778164077968402181929137948288715325822382401171424385935472911941289040994168412810769981877379596821624779917193205440093124666226015732660643789088649286923363289672263544129400651475547083900580078069886793271252121589043188952743617066366497428531291118820300634647475061869556707218284006107353438791513105099625345498806581803320445797482828947334531882964213076056059569490773645747705219465369256570818341399810216330453796775141725100532220747259491406381583224068256489697456848924553489660818154564066869979640578513770880231621660638146393093344419171989255793324647087077386560506919405768607215202456231902742327068263231799894058474461092489474817874296893975400558629300800675226106258333943081856268705076311518729828492695594578873140007983048489526315292540085286031565041442883866394319910921621517793751279530286921987737328794503081132468279700844426572001724832732061362724264401163377858946433778578184107699106494270580195120621281860736623302749400839445193283203937277162811187142965389036258252937284456128690772900998178211564650622138202989189430355222668409671561969601957184467803776192856995857650929915590077432868456621213750564423263207248457918297460747373747031842324318549305397190489120081077198425868611982851467278960071706373923039676136283064416922484253564526174844217391073987798525026211680379013357327251963260771609386247183324549723863281814777195814477403985124829342193424289251903687966966167613946916918572332822868021793036269784712308277257991033341905169342349895111495463949997508077129001018065080596484105754132357794177315116381762667666467337182228381832529607419939354647262744825834229277356311128016043320182673748637512372045864484355494102463142255837088848529545305332279562378104020631267886260625173589467363731140230442703346993174608105151688061548623318024670998023356420974035938143390655605488118179415911351044703677659263397764009683688517609253089009467804053016149296257425990268028541767777201905199412280570721978471655415455055626291414948585321262520564556533220227631634873653810420314237643618838074055057706106818673082721804261782869718374097476081773793012763265618083996767592216447369113103218327249776583208388518437931063037378049354760132317095468785691313178958327659644621446995889418516282650051992642604060144917443780942896834305696020473515585118790577268648514924034686277553128935186665966424638207625700704966617081423645551190746523252340608283968167322852139639948133194994696588859825666668506648873554551730657506818100554428736287194768941455890040485911954521553437771776842918411431402706984708082098010092898743915570530326435296898198752336477182664700441552532493712452286205764545747264016939091484281712613875907441712807469243034829237391172568374937466909147735529935175117588352108943752459325419390841642477323760464822019743488103107704473214659845372186046150654197745073093223674727160459011145646061637080608761399130986012401380159145742866060097461712602721912979538335385485828432476809487873361614213188607667561914546656653159330606993728022304505018002957166462035209163286066219504266567648962774741794667359030860236159547374944140070467797006099569494544943359179288956643637967395577836572325955745219082249475616536196988687999882028036007370632919549649725127924868016856048926280943567112964062200803331289365088765463281167367447568765246838494913384225455748498431890650698332945746619745654155781333481685600772644889422727664863838100172555189979152378899168277607345475596594015630319189277099759697454071534106984028552359776874666911338532021420471630231477149405664423959330875461258253620458109979213021734124044535528551233554185896473538521061022398361150576629269038187839086061116988552973472146685340344387281027733694484385449825508101124649791518368916759546281238897102883274171974953552427274547869309161900302349576916510906407754964970573403818686806885209949057702808749760587000678046173931300000461472921086546950755197805573252530412733059502441850011969309098054363462763710076278738855216318956981134881067521393843471083582858539091320900273786250450151633624717284197761271609242832863978240678024136278334487760754719833525899898148145715705383791193209214437227687444583086261448355733906181049992843301239429683247249541994691728864457006924003974007414835533220077445232768912035891329042172062860213371021303529545909504777979539075226563867743220874332721053107424789321658712805016040713194555748643916495000772670867897015483533027553332519999520918858647810724679739785502964664053852922785158228086270525632933477843074726174877829210754837080567004666122359143075248861672687946913750909740891028004205888928591784275364390280096210116696852778389887842446987774755214094605668880617368907102461356695772968344099296271599973807709693028231327120455014063771439610761267571311646897237197325988042442168189037483696906192321044312625492679896594744091370757481830666670887170117625062375472171941424920055634537491449452181482522350003507807187508877174103258164161750606066170323349727291609991343924522973715176387799703376726111539257496974652752384102455254646869667591043725442797982251518297007364583838786195144245897090000241889431825289236932337205577013656439026552752541205008878234301537352365451095183498285750283330313536760263051235176438473827584251247845544652981654137947071342707855711836050792930271790803687364229291657483983942115408356543198957002157762152021535190366593960210870296636807619255202940897349001200346514704108704493191760284890075167598116619578819050886724965296418818234692108589617679466825827647620925052063694384200601379816112409455882349768237276567121590473340596963899647285142387114057951409367570420001182847880026118514635108401051278143814462024291712392337288011441335521276593157436589415817165700735903542977370824119002789479877592793006920739286021295436758699716152351043396621379009268124052331132165792113865552996446275727194537801621535202439890345261941132168859493632473992274883110393621233515061286798372921780732946117944842525504549314636535638694999168784260560746323645410072473565593979383766416323935624364510890621137748194398093095419974155208121369996820735557286309962162906938827825394776673149547016071203466047331634126868885376805715966774010966287187382064721765751953022822697331849381017731334202320678081333921586448657832022722364095160958081748728960933089174169668590394325615664259652660677749288448368787959183202115203072251332146913855001210339430502151259451997210154957529047949307136429262173794299197721463438629411663886770474346507114540313687933799505753908107871792660538553738715772355832691406199212643730275210231901255086234568637602905407054727406974380650783644772697102886067427911687771757518015298127983077728546236857813806352262728105979244375665096813010352308630822240422611121843222070706783969378541404178283611134634117095461138713786968135647987404112073127454403478303223179377077786958770359215771853330272476949648250187023554952826308184014469990038766868036212756794194569222245459578928654181986935045902424262460497182977290846050100495413967083349876702283466188932448649981151148939705163433630359709654975142639558338976915817444339239893528926529301848151980301854510411590132566808393694426061329011147879244101649812544894838778127877018906755143672872278743267202790937675388405511112899039665637880046071986391598407497438860996668449337977406252072440787467559704941470737339300613387229542917998044093667006234222807357495932681954775093709006751335456084907665239242092009372946213140088022411876162070218621016008460383027693280513276150787298165147012199705588210110334156450057778198704693458332847430358031313954282277918543047504630026673870882292284496146077678553735564378555468560316696499942133512935369690954939676929723642711671189712733912802770045932013010682284642233331873664804083871506403621911796409233223246654934401939433462718982622558318916223378093006590034794276661174362262341436044009491880779089268841002099653122759459342426760399256328474835821062752016610098556868405255993834366765525861067324718311090160833986916987395781087171626235873440321082217930100621112530094875788513810882008927778161984560201274308972574891984207645060906112210449482919854036417245677862700158179700827686908078367130211050959617818049259968810822891448103995180332490931538879259679822869315530159146953204293737357300341074498541998544941178238762032551497090421730954184872469508413362221796899496643357790139174318750210074225430096201015666757625415797392668429884209237221911818551407523454794253374726567955341178160929296613895416241086202342294404914169092707754888540512037187754563217378222801956377217897655487206168334662239520252559989706026981684914048599004055782727933613883878945002310192035864552808827755509524528096646950820678587680475486604127600052028699789211009568355137136998074450180298671983782124735459154756951272245674959876747005935070243506824079809674474906179660248626442984763064787963177112298202899036666007754182591796246933671588162980691127938169703408522996963096952662241632329693379029488219362635155633845099894458287181822591163267032609374396288432886222839311946865238966701465743711630701978257155740285022201283556509766575634519990563346036310950130437526016670372423479333603617195418663283756479310949856068231485562896377221017609453225479461047345729124013167881908470362372554961269090170327107056902653778945787612010777050576417088990562232617960124533540383561237963754790991733294117818674469691828844448413348536641943766659415096404147918475029353273147949764491081497900776779007423947838948310517167409349240689427931552934713073914735324187811071483964495476323016567252195348107159292043960485826254474329159016573913846051481731067955840892153630083517513303216658926718173826651679180296459940012043741563219157610574798143150939995092643664906877323832597334953668312399345947375438127342433970512264378100382910717939396746147354283392361394572224586442497099726395437887302062504407938618007285045760887933929288074141382059524716508841851230146409170585497714127188808173935459016183130788673828481781841074040497915612166759235272079900909291178991589497398748798965433748017150411990672294992502450334594397427608411007938999190777788529751122425176827417187289017176462681868873443953727094598788838568257045689547176927460391828707918070243201374746969539621742897736924248090305848534604304410783852299614851831396213468534340408445594045657980764573624001915307602497085338440823945666639028353123852691128707118699610372411892954881115398609390017348436450098125237798497540163852166568946804122291165254961863298982203397281731141659358031252684153170064103557591995787561006277185377265694445725670717220975127928003455228658461369219219233869241383418480087700100734042505621635752312237905391988990530905928138952161658739564384956890649733956876084594076318671728159476980616982946322448823392832896823052162365678518852521489459001636119689804977229911540702831918873823111520391907524488502399341503218434775214766048839509847382638883789691264343013948141887474583969976921942294458546758926380551609526944329921046151950277524698707802923221022347647523130487728017332896946432353354768291932365608981634361836078810337694546457615805433731075871425800541729050949246651792130970147144680361808752230515570094680959532510015631679531920456489813432033537768386167648182886981669241005080751562072864487302615495347176593616736150458685832825914479236788113372846142887464351329519480793552391280465515925256067676542880389710140944940606030307916583672964354144164668974676178178856839285723470874747361660725368102684098830130445189312009028733798215586682280305446507124760837821156118363401436799664198302393696191492090218552052727572913812457710603133555923555231084987559345859424658259496052933096369636622167597890115699531105847314811382779197334367586366537741804802185048773307585248730240463172418268141601087138328701014448633821099181125784785570897397077064577220053551526175987124544299729935905489701153876781208802285160804294365702312326337559392316712351692550555563337848178052314034033091618224947782290250280914351303834936224414681870846550099319651428617570215080658634171824348554194577687442783145264715348489905452067729777487707322415924551569173776638484733456470052162423711172919034481189765982915246919128725873072883179641206130667610667523649105101474457401590535864290093486467402932101628354214066199851144828480993969680589272581947827226969817394918700402508350125766675567109080059123355732820919695999023952873321428119411495708631052667394711794777573421101406782828298351343502117820953387882085884309478069153564002898045054694673064415734413189885877817273350417477470184025527400102357962051534617709611924977953169946414297108479165321046347887480281313740558877700107424355548942199311352536992892741782603604921368548967818778043797920869631485298816967661398418126063408421711112899568000222899033631079699262648999753281498890914910941995484994567499193914466943454575510664058457683628933583039929691061754434257993034954436985613257550460326747663302688399970405746551286604590239261124790947518954996610063565047555851608371469863504544417821405185002483400086984996347772121215808014615521464140172816517823037793923486992754313291260942713740694816510645258823331596526043303206219173805254950970725810178827832452807374173026805981609660291640340352752955488242811048110160506437625622419040739036234339290318106112427268747523387074226966348196895312749890938695321685407547877790629527571102290681496971946381987505389397869696517985796693391830596153464743901761838707361678356454475814486159209876842727021384468335799030756412356572138213486350352448108990473096108162959954407005354375499576160965010068008810002367444534015495542321629123220612933045514885161258713507718507074359945712467842147624278751045733113138171819978559350871336717496947558321360321648883863956448463670396977539658572229253857162861216677683091796747135546058172317756304971769463221922492143602174653255312841607478899699688208702873463649466486615890222445715566142060471385256047928191029300171878708764947307188042386426445970748349693888672671956762657101993210035320332924348680438586904496061645356263429221330170059740867073759790938860397881462617547135496862835182305648359293050646835808558742059693755756930974163758554989583129848048695044157764847969804098518039592750296141255294886977365396685646439429442126954111490029090057752336101220530588032558128117297619742064750543719665120215609237916299357122932972757458370129234895380217529416223538540969346329692281121145618646717133519536729771081997325708964279689291947433572891235330016687900837732321608361833209719514201309848007357283278796626273623009258243405371507590445207674043008579819855671900294546335252992385788714257256817326154385378971644641519272700719194263661699994989484227650215194081119992715146208532699004370314984673736910382561361224084975678612093235503496273889301976880404324735337553551304924239710045200678394424980486197644129725013457403099489515628441362188099548307453373877012475710162015969490498765929968072552017070812003406637554738215781770862514062690206354582214856190559331898268699745910495136823263448840722453857656530275421863527296075678822396984993614401889156465650993444625370680726736618799940048999837707988339145153193564245679477897662320172196222741050271741995806653409839114223757602002363921673177287905913239975897978737490018525894047155417672772826467771981000120390170384933018292851109501325493000731670571037791319377485505464710935201021726226485754372164499188980142451302427351560468179064167872923991163834043491588488273350320437147741874151373319567496709470691793228195973245118059884612245030029554312384365664097293819478318338918103670029536933447815487544378728829728914815900313244778964803893348965143246851374077307720726175679045702929662670458845283960175823190480404816266571594977493514559613908318239646778390959697064237715055024387812245998224352705453844965236265876889872654262382822979340437906711228439186342680404081271257914732879159944903515087156384737055044234066975710390984083414448222083977130097669200932794899577419366080681532342009082446979878113457553699983312954784197062722998236676180303643744644311150102359159840172942657404118938484258694798244572378266632923438843868670102033185229880270929179471666530345776509050838327092094724042339826657144309210686489586832784968332176097715189467315599614879314043638535524614058771733581586382356443856758445759021291676022257622091231120039540211244075979916509258802069162327238311005567061929663408594183804070440149800629634402776173081750653512724476182907773238402393130339099810642579125260054043437377641414292957982974503425810941862686122001150608374160871697900773037317155673249367018629742140052076946309199995424702498831118573044459963556209621462562542924313440701447848586297313515502630168570598829314664976452636846622253257381816561607528162719333877723685477960439060248569564315989845168966151349630070667986164608530896789903864400593919004200712576327123706854533844512672940126266588297590768589608334407939602254424399884071074420407225913909549069659032710223784326967057195538738431301244860092604182548848827117519787447881352414721438272568700554848408444952719244834404429548181092989109544168489792815981044556927671073806501635441225645426262508893899634403202861805448864058602321431998523570508901118337645407141031479734315513156888673284217669745369709257664682414965341214543926032052657225284289391881574888548430279505072644867916707121744852429996803669585261512613443576983078096920586944547143624171545784557092112688118701793966845737975263352543928069224707724017015150222390126657615121557563449603142794487441054557426708790052819975572992942598685070978118586329048794535478362862807217183410294225882104101983669196599265913187783285829974166822810423505353355474651854239654928319016577250468775016294561106000413079104476026686996780236004419510454081239571591523978093510287516614771512994101684247315692472453254537887862010094306632828453149203235097330081210588869803719692063689223237012572857574243551406966561042272500292530512165494531337769746745800514596401861799155274610974069261147323177692770829623102308872168298214642770228770514546002226867125836740497865369771780532441045588406514049941978251526316350540559589707809733816853187576629214835856967326889760420137542118990759719141103571392893498602208434414729523709482971170198887361400090030527085186704755175172925516355809055811276280919224922308612143000032300156399083334775343987440185895823187813657148260344729168952237665308886288035088529421812916020345900690000195226233488328631858144549631979365542233035094749925545264136807656167813817715317813771774932739197452557095694530938440992180680100759635692691138523705515590455177169994409050692324076564604581959519565010814210107881576589870800227119382165192723499521566506448088358148615714462232011777468538307770303817527026482279131988696145156633133191294948183007888223921807076678634121680691440634410636751502916825843530361366802525234722378304536796224829719102669307382496577187774772083653928739614506085505519958207594163849710766085985719209811288572383429811515191755074066583174033503649240570092950448632177798684887652462095985730162161999387529263323220104361397265489904751472714781064688711574356616475304758084757582917219779621773316152307910347645383593895735361335599976167234566347067407533262927528475068790277399314365709036722770139816749166808818621293358498556012759833419778186763799058702167773957386458731350430339614602384740180942195579162811063427857743625631475415023232413406736551187041605036348116678952809707270651771609352063628934574285404747374623412724032144962387293173864435994097480621329665528053108757681168060596780711417515958680533117021218165127003530770016181350600495765116747443043124369912231864395015248015779545271512745778895831611435308958008089922822657593390751647972552874090437221861629219032201867757432805664977903958158800696148136551914255934462800828552095049639191138157748296049488745889548595375681667503993887490726691100561834994694553953792947620006886465410914076064848272175186794166514060242774763382562862794558954559744360613208626562135312739342283773975909737971607551465635940433924882763596109636005899477903660636487230259143774941313307503700221518340293747142869231629693649611526085818686243339004026643865720626232976890542501948815162558051680947542242968949905857595252707134714359847475823654009642173872655817827345585899179674228259111876254033032142051706796393489407344811681953669886875863499277242539524204730013018450016237858321802681827763507940641553632608878361780792600882193775868721980967227594309117009724324675644743579259820518396989498413042950940572711848636615792248334364210717638092672086368912304335070544580837747316545908910236572027136650343128449197295135059100574208073180873282548857380989243049825020536450988578656870280580709002972735291864188056527243691671425961544516871682075448320343510297661885145565769775769336258842273163600230466888227250657752739002742607581344387702913708868576539685762362078128863759130484626951951248034075678357419449179835874805917953614283861716661464254841969870873941540522994552605660478438154139948314347676880256063740063811588836314452580398354094911803755795378205849613135803864016271678451971606746186454157973283029993834582825952784524002016623625622453009626100798147379363708550266956797147937977886405898825116084326084529003167933320255076018820340187780864175406417062452119806759819588162252878193183106424420543045120963335738080966154877238460237208531235043830433248441775623500247834029674270079994932167973348352858358059523001661418933210702360846399222867860431458563775650137685593528485335925266319304559586310466110041943418801978813571476093404161757150731438906215152385132829953798220721791063326715253625541785641299800776432704033620242000343882785919292918563347589924391906402942918920644886785926760191622271534304280891309202509788641026502432407510212965051656975109888673959821463142870009677758025141893540106905820349182052425330870473493427411092934909809352542283760351385931157734679270763202202148929685082073785538940307477364608192447848235230983861707497983727429752124838491170106405205759259796826280161309647123468764377340696888809760723455413771623801921946722159100264318703874814366949743308346772907243651304171489953007095423667507500270817652074206293718588109070893714311904722576236229904065411294644140291275961847080349871701540483267080662697473993375616438746682898208688602314151473257547257043645605679125955066604469748854915120702635848349328426554922377068281136192439943804169215708475844364838514338637794226318494377425700760451567957399762648544371231796998437028036549031152494271325879859742530417634404783035733103196090823295023003336035430203769608164693680537807371268206830931642731540342165719713289127433106325931789281313947908698104999216059882426826654979785192218239334905623676003251471150062148521626347570527710906313084423051227491923125896804792557525820408809788447292193377779197911564854303100345740358624158040818156527569228533249816862337259567759289737822012454891821389470457769120730321080168251635897018194716986715555171343944955335531613452972316847534623936276991558004156460354797116901249354414684371315748852253432663101450128995936164829289809871331777068399779983174364186468784909290753860594030388621850388317601591304487064712874964590325161156178211624813489380025446882667977697009990976433190406755677943239029542023286880776375466263210962420759604529832928867912370473024387286002900318059053153913206971264819501173181693704984093438289334002088986614168278325648535355698045455938479643000092904688484181203671211667047209133132672581512009396294310467129604059029697499825641123194236434326111760283454692708500289173752241637534493363605236155403814859244604959847089096076265389279226264554838729297883149372966882003041780788030317207546965582873099502342502392296516751691036885275143794034637963406751380840545308797165247362110844994916114291403938658016686276732944614287279302259802416334218439354903820902436476393689119990801968595363091411420930725179074527658087274305947017296240150765224693353305529715167975420157982994627715161143991535563480385494390313541295726720659351404370561335031325540594146899321198065344488172016521779086459329255264669147678787481542724576670819938201795949320393079191575613254724838131915298056189953365868077163969592885459487065751974460229664205131240784030124548025581702022825590564241939036162539203692495625170701144432221540595918964935573634586867205723558487349580177864119437465354594814788949117244299270195256197193630334577195822019111397291303108925800424459850972401474060167424214064728380059408860137438870737870839849045144891757849671523039710317389987623277102319562836586973439093199793514179197047914662556821307100507161406701333070593835489701227537067950724165498476642037619290841769180804053639767978889011556525347088757635160289981613229824357137031961638112819701047574615618101130488634832195535172999275379321620860909898926874542694631398803975164109900622166360675924738926879568016261218406683735154959812535863009618829881689884747827389016476365518658354927618803609109465091129250025133419985622173232512008188091438975659174531757824532832837129598156742915308696723383395184537141805641607645563575831065722263682946710860793297336188726807528136124931430346960588207022605678929008105480440434085232303867252094861285478215154424114485737212790742604738836047172455743555342040046632158776671798134127107028985712567237399954794667079955594849216063232606847909416484156088508488600308566451869353823464568218042601418524044510022100055255158952545307593320948620815025480375405200023061229757209975026111735145209206133649828531591445174278062520526697035835913860110037783163810330987152326690266565457956395260889670115488635662567870804705207691298062486836411766411103462370257445910700332150551515481980731462505686827199828102640043635952643825014849541111264476212038333929541646890271785591217253401939831917214540693743429758504222399158784931204762890737364702447108437466980314198199377144846522872136770075670834542461210014688460694547521835038710091071633740465636089540033592077835560992104280889592910103995379495354567824065034837902834526505198265460682394414463793471528495156715390842534772299012137550812985739869594064850448700465657962961172959392821678132659055820545464455545489444310989834591478659886719372401052749953267953060688434727162030905485505381901403664735212098851446798432426202803995168363327181073752006755918761389680827635880333034288122639349946806655195148266219749617612952912816752751956622904455161399618489049599792532495102363544410421303416180522394681453628222804421234470293793421647191090499928815073639854124973611853781789194996886534855116943896560048995486832232747378752912923758395088471136883595154032444303393501017098461032871603135513926425226360210359974410149411067625545173083897432769676561136229123861175266456436026174134963833013681222898677298340617233009853508031985138869576647499011046277337834252457520176061037968800147299001757768832335993915135608471089521258198937530026811941733057906074773990970804421794108685420353157064501099858183797420530321203144144549952434926682878234372165814901854614207154189903822371455351165530619245594492571048649151043032256698453232880934349940611666702744668976719238936599332018641301723598704083661302505183662179624715245710225131210301901568867457896875016232753365713845663204905694450781814064436194524708052739809975306671462488300688210768805964021050682266073429791569885249139019378712663414033003240840174113746300332461948465224603244487730137447377492844702777551689783620640901395109862883444385994267683339572997479580569020706746717080951795902988993825664838398204087931148516933851388331129831204512163416478472229475865096295192211837602144234201386833367309890571477278167194313945260464206019492941769360670281205900260986639180007935223269522448999386937151112965598472307862922404333752106384503509254472138851188841855157905248240545651678588784733428521248247911120278697713705962641489584981728367877899710698015972996938449440716308772743843387214916879614082114957660185232411646438765207686772806505680942101943156489346468570003063853253057270786431894397771022724647442936347340794455415615303010194974093994218624405474739354669454809033117104940429861841434289648007918318642607935920243040913008011343769161638843779914461193289101615748171003321100395278220195696352408290880038961642630920189841724586366241700764115677319495698083722689772422399474757173768139919193142523265523917586618316899112235903535787709073105704771581318361282423605011546719455721103519663132663250872819472289844836927850877464020297424664927890107413367863625716249507141760030872976797184418236237232357174963106247993207736859036572834476238004484450487778884943851722316139338414284905124035702966003362868772296124937960800143580804377028999968717258363213072973660032662413284071383475826204877440166917535885357772025861999580894888803105032609879401980500261500675342949570777471368402991345906585803732448425535391589820868259479564985580586087134069323179881532506188262565794239118422006008351183055418393862178920046450482374223563698233780063274550951211839532896525818219369491828902118462915410324537751399074357658855121814211380290347840662721427991908368924283942585022389635207328665735338727725823277734290636587140751975292606317799658772541789926063565520685021060810315709845809384003457015938783127008523789683844415437438964246132077237097797302705826915072369410567695747186654668967566049719903749905847401152023186876975813882302863439260419590528888062871516586016343612613205130101470100867037085640705237737046699407789785583936125982133408751556643901475197411756767661495356354649431100150223911529928738776222970447620341605297780841492164050396655373926168636715388106653019898643859569735736504017771365758176861731073477805041919652110118260965960381147340732640347044733091546764325661700403158322782964329871876887289702373541200941372782504389543706942998036481683536553576681443074694181529025386330804842613902781211134061835290424290356653748939116993619851877633708067696007841365973611681883444261955714592116223797371489747680550877357571174374253105788753078260260502547849071963579598888998684854359232358856452907617382553520575432660293125959620769408240719468187344135787598118289368715728646131614831152341241452563085614993392100850392160827239827318854255605710937462169475301320386065361352169993560759318467439933152891908202753381638623948337363271037814613281482868197976177078705505205383993520204008975331203499708417059596066901293664508519393442276145306773755791261164956201802470082562242157542567535740244411708089171888046975109416883263958347551697892910278632596378053269938457750514245071555034219692195637916800421859541822216155372343092773530048943094606110506962259992905913946777057367590590774142968997416225125671805478879591713087974657062196252592303298139911282280039307509622910668331570289610924979858919939604761420393078762987006250549055445856283163026669229585285389368464142153579827147423271578703539343520585272660534371123168225885144982845501282172888757781376987426752368842843326049185171070605078575222190595631779856530801198558015717523893837830218269986791437922685003150857754573436730943502885287122167117433422398142392463401457696794148302511289159546378880693336054542855566840788776820285412166498979588940520277193427690447410015099663212858814189410282753853019780905633048173517929994117044425080456597406329076148632463516538913777443274717798071522254869488449472046760363568785196002338944863078330637503592109560022455203171910574417060936879085881865832662025306276430687731722305470363573512895989126850927277633527444656251932244866486794812066378168600474017426559195238021278352669354752368814965452769405694098809866049650578208869138183884266368656947415673697675563972463391799787043257189346129094430166573232571284047901792482539333378118808674140704686595933877317936647860362928740981181175200463079900058404200639676075981605744423250827663001370549626839765219613912377246059565569439891319876068838456667884406080588807842537727500155160975978991618124751450057766246713143066127667850563576210766260528152098149137790241572966421926261869072998404663019976718225282230204816639574663129273904815518371300884557089001859114822696064188584209253539129621648563639588032477376957705656311952129853712526013176702228179861694746298937453297268122088805473228541014229944687916547718359970213130325394831352253505499096446885469890309920093452911234106348038164663919241539561038932631857624324081910395656847114865548157585888793037376357185987892308668292038891046377301634429052725277695299824536871506692052928071626824591295004068540657596139960389057592020173990767596375205810940744337416786896336063935208219584385253234402042463815894059917755349971561334800769577914111620851629885677120604620764735864780697899176728462973874264543729104579842160683584546513627880742600610903287833587081718470811531287453790725989286616691640729035988051946218451201359339906407415581905497756555038125972129236155488054919683436848185908290377125905960092612415139083940492455817661390653899888294818191626409634301170554783053921644105096717411736763034337177041643201443394634514521771070364631231786285847664691134767236283669705613871454782290122706130298066380026895761101133146909850951943262314485267880132705923720053504462190805222979887262326377288146279346112090777712739096283630828193641669422536980590832597046686571857938627950159726566047381676359388297361775011991652532019428739016639178318910812373746630442836257249094626423179210279830207705741488332249657290183124509436066120747328416906043904582886136360864626732266728731255194591136828942124401860382095271110111952417645656937114742019627048467141374077755889400763373015413389073822751236628694679356962148104181880904563887244186585715044908118389307615760335990424256225379693610041979839607075520018406262613553355148758085093093372625905021296291799105946992587817170111144375488019066768313774428134882764365162907977824513317399383498757702435413985289236512082544637939099999570940786546121078843318640446197260026463844544674988465982517811990997730871558128451824172132772238997996908102653527712089199628928254060589596575140396608950547808483433823908697083707431249836049470798227647653479557424146954767261386424172775442941040422367810025569278972409696745716576274040752249815112037413443001698741740338106475826019094979497211781605399736758057977041513626528653330454859902566092416946064315703177999175915181240878434085676802218892053536550561278758251907970097836529261350003745498424025259262040709060027486918213959181166124447042545820295107802053807569191272123455821044927836947652825194631098646649706663015674699771584889930638799342287906266755942083810187930663957347368099310963163232676775375340147983419933082151423590239704423209174638889942400329850216337296461324601569029929148843928247012003338120698232746515323153857735551261220769392838498197434016493594742576645413783357809824955526953532926094163765363177553741387548549984551372139263760991560093266357152862606767787391610412193655265321945500367585252986340991513561197076659494963897969796550263852913029176373796808245799809597255548392225290920155494902806033850671851575429456998474141630882017869429100000880947732688256388633597453063965222847496611284875040642475984299206664179793565491023296320761585165378181497691532682613552737383648970938364804907265356895028048174823896991582920081908798872785413508963909512720597083411495806369283341257572672738089491400076888952798765078941175115532230175150890662619133948430550127700715107505527785148272698450876963487051895026594658419780855017919578421729303488094135217801785376672668613758243318001123629477170116195413200409390130163276193829332190618362355047102227046294467786555598894243833051585528592764545821536718756059363087367933462220487577560712952355660872251748592287309115253273560493699792216056339493722607572181598324157687441630727975671209353807651086755716922098876488300002919653082603367877810419218074441126928762703447178138243540415278179908162347734460444214101594329474923137775504630556841768210133584790603709806116657970948008079937692104128721245467155951356731719980899678220364982978393092672137817444604645687052369772094464879017718696229758556067891839514367052717792366977539618835415541197598381750814723154656376124511223453999642520715261461533757232013634637496127162282317759920443980832391166427228493241835719354385829116228673118177444358308515801811663690726789911034394538966353564237016298889651192977694727700357623223044047197067236559541286999404367515099352932185342079940054485744268876181696385459419392345710945781976177436407774041553263509134891673885610460553459280895444461145641741828246827633715965812605745474414874472546356460904589855798177717836131227776223131513106480273467823625027227602690052770933006498243648881492937735538009718452659028691310645347605850922275102898667896303426908038191982868949167808066782597266648188387033032583885564159325319994576564813063888988807733980011234899421912831070840344447340250489405520129554352252816845048205592702874309246787988618960431456770279155713584113868941910194830114087551232785396173786965041857992338606402696392254692700875367467850919255705192485104389509203393333688562733251965394183421568887305015893328602298664146283054307946544544499478352232493144960991975270016603078975634348328850952795776869854880083374110979833841362345858548509224792799535830303159412004860582570712828638899324994843059295194108418740401233203781864647094105734999745779079490244599598280848386177562269758607346899722709013137655632675551192697346737075514413611091781075655164801498886670385583469461997548896051627560628707020070589011939283396279348250947911413218338104114371932198041794897469800999015926028338678688914149245381014353547173255125075105055571252937717378474460143045303888329586178565392561785583688659457471958092605250555475384437864981523444322766275866469117298634781742039046082264844764156613250604789469163864142863300277295910061728278986192474714814158108604852720625023803249219117423305204581556692488371826261147598972257631993895463277223420640442405317672798218889578263341542915355133374335037137839857574593928369290188464651223222817558363754362951972471770253668486009296945796140620160984953409324692142332858836257830228266527397956682964631504905297985074965077119367449387651507964592021344091328871957756001407244268679862086424608985293478877736238419361571444231259491456569318688316851618386634986808904256444003171224826135018427253040625015930439578024498567173606577731176496777775944691806689061530528653326499883379573515105632629167274263971584042084697165434309945619358561574908147044569390750853281417037977051663286459271943894222642155039019846625880256009933033051596543279135132692264704979041802366627676500982171251286531325456848360756154109818038096233085836783075489661901882362522613005763788016380653411597145499519601828487374079571058692613221270767407839011040821897455371680952557754607169880616414740467722290926740498834847662068844997028668392252598021944175845169627009159379034208099634219670290799053015718363774464111768681887940695708838910222485186000945576488926247776466401131347446279511879532325714079311016826988428828508810160766653632912026455903152026011589377153562430465034246483824950739550028918380914045818963936730533540383187122562323876812198104617743489065859409359308435034911980781330780401047667274438473481747873102680364067167382272337415872728619095224433949684639935393741998843622020804228480880364634958836233121899749610541392350997711803612065940904072739863771201043846622394727843017676686709731715888752397091169874882863350189125817792535069773100303805274874936106995873115496549545843476118064152689623712722662855310850372268979128388899021517758849853403688004048722646491899588498278295903355979858777558896754123644451929801167419539051736818087666010754371895801078113082184968597723944256007037738303791098102133010727312937438339543110621874503476493427187169963801005958484651432053401173727131704712516433788020308835992165302864837539759553073641733458880042459237479676039592933134692735950905970962229922570797723213908575413675096670569968002323750521972540630538578078059349553187806613893747722627442087310206828013551295137291781320144265587750555121566705255907804813531548075840551256930195030638714143536341376172143216170169044111637071033579427338152746352689415714490986362826596593033152755709731642741845373365234868153228411004223664138658733551152363076989501355050865484947217495914032473842479491658679269980304726618509653044258932072227924577242176072543478191082886751593948657310179478979376234773150366063817779200572332705188525649753917862063045905201799365818779970786870015180417079715999361714683549572809242174566772341935257278087538059197832283386927584344041476824274784874892283204205508233058822393640684974115352339264621758495351500942641745578494090408903226895518588794075924552672734984125427355580085969849746194963660557402661102680721251620728519151132207049486726857395169836080274290884873518024412974251631461097248130823166677435488980538635166267238418501761151300487305476789187184919987549871945678401429887683385478880266747615165935751980096532839835458372097530477808096504947168205987571940522398433402291817940948548700376769291221232481320308546724243495009427972129023644213604532642444765374210736501599968139118913412108956689956710057224554155621440716199499701642863692798540950249419452458986337672004085159947922167090071372531468085192038326153936009019567003941930274787866378359534819109724917028682957159788590870973306752775039249326122403796043812201159653643364040435923763031815477786236311598846697539093384957301647103467614564960782538523400405873736124724732125461569485422941126641513066455534207085429670036317300096807185066338728627192639567841756445013394529963068265794975313661360354374096224761564350567704552163827080688300549207788967811546133949709701036143752699841238488416483331137200262302317611521032044781430118312520430572188664095855902559258839193645928831876053563573764874801496433840228698891469095674939191343704835595023476811191130127360820429930717393845685067733654232993143723444353112996013815867690273059261236735191099824877808786249018515992974239206737043088683425256144848092937921783020023751531913702091375684219854327182501091331292187936515770183428262068780995747718166037430205779881506777971492859506853116439700683209998200363024682623239739851912040557199336187306910562623903709645249512538832425267884965170869159671879802209905134899123329550042618864243327676926992808373757219782014919813238006288971743527785022540885157685152598889355800187035713763241868108576898870247767555892690756876871140185164596193834383210485541479330695410738763351085030856705277497770313862694096814945333318741015865220255794479582634889087212757324537637662095632650134778559398007851119241119011373429801135791561690290910908931498062180818991790093836456902647041890889662820168744311816827010856827296322487571991041529434278514201036624625973499785069209908140960293452605469207535426126893813911893283925263187312410159435315439640246051742996192355764413465872377588269314581429717267524219516037971378145703899937836916552655889439887408747167913163952931039191521937775177174352658059897768939022480562900979206553879315654281900806430757591136321007959904459296012341515370029957918279376386236997506510586426504214930714057217819143744728868912038550711149228922644899168160352761808560284705686274289681549476826965861247632519617145088152110856231154212554894229392635548750807470421238178390365985061562431854960957920151435745864598073767349148980358765624655752946124328496868017715444961341943167162033199196160865865480697979712954984375714206295589738027281309322085856302482203927165370429428447486474921429430745240647180034575398571616612537344162604273626957097665933545809780869999709139883740958980437669279202400206728146923475432974399662656113991227979781668565279711976738075099412759544212367582484204351531062094904733140809745735686396621191042737765756969007691759518031259703791084428039757323668512514320126540923796962723658838537118145583761756661831081805318846028822182497278216761520009877139850045600597695896451347206426880798190294084231255748116719294388203886731823031493951675312519396812499920189167720782146720223549807489253466822723621799608512325082896982116734057981262469642773840390353025940233524507503810358485585040012434170507799103750303338320528254986737398358556390850347135022025738177195894087399832145546150845012383615010075132362762693805327930716802994226630788455374890636305850949044163713849525331954155513483124881604525454384632171835629877336565208176758777120058677753028331660324325139461304290181852449753165546032947949417761357475243023142140612693845426902992543054065496143062324967913058467102181843339842497497102608685342495132951273686117569680939923770129777159683933922998351352934338407834715031740079298036524773482552227156507505241219696788971766085822015634025946814543513435738403213653146573857257709842932948931696580171953446795010467906553920782236592633549278068297467974283636699973594532629608766260486752771202542851895751596899988509085010084918661166735329552761760324873871644255649858892388629163222606769406922377007684460990703531658807766380622510393549592900535357995027952263817322683482102723878420097551451481548416932969378641505501499516706808810720430066626897578318211566687517170245266146348668080245805598661824567470622139450209887178107528692379641578991639226870510292013728544742493185278490885750128684827090377630352302685978989365385899187386788363796661160944904201603992154201382780849235466953124428740831654236877669710445656704341087484194714301263810988004971438528376551179016639686235440912674202043786709237278230067940910382195215432652812652348662791364236857269858966798051870489581159585112636530439514395164555373120084508806402245000380048156128248978242837177327689389472333164215074659580755265081277829281806683492536029783796917734356652652122023408461274812228456945726027094788350538202157051679920541995685184059628223079233777518020833152996639587080570789991445577289104187380792207218584322548178575408026118044206991121618658125651311148642966389958249934120367046420270451734074063530700292451050107082721040179246458113848078228561803695431358163506800621964912614780155735846257518914356186751117557075554862190346411842183953782488702230135882379001368825970859188456632400764274447951325228885484030171117449386550637184838699834418131987996776310975074071570198755502689318720270256461169906379920331601760924302249874717376749018366577828053773730687692021007330995533698389396458540691284745204805734464679439421478568569543483820712437369633696976882830808407050299753743893425124524421863510259105798852068761934838361802135013850027152817724602975249593643199615328235554234354943598851042584328233831440637738517185971759707548087418396012396375000330942620934390796290952098207841835650546732681679310704733813848764259262584998403496906142402520351430310017495348940095618742690707144481860016706199338678506383845257948028396783150301237653074240481629857060031949076776892479734981272127030440003099454691478249053223283828225912650622299389363959547071796818843472932087479481823566187993087792836564945734883012604065853432722085737931676438806976915525459581932978904639707043680698114865237897443026158634161389130237580098153215346739838102460015349574946081229618848966233142211570095773859229950511757262144765384633713349034234264168691283652087538350105051212717420445643548192419173019080221864889624309857581240130200158283669989020906468853710823513231765443159950195446346855431385109133698224443025342453358137352837261805477774196515797544279773681634759087990890202136118623170102812057753717265293975500277485828565601604717761591823800198384181429478404000016339014792484700626015971133469583518765397275672200983177956286530199591962251290890234275491829598981418012316060506299416759297380821719416988084445524751327717663033378111753641286061813828779614233457919926218065509327484343610497226220678764166532494888348753236674827389688874177841350854424138709514630457950529100220498741257824319003875855361013004801119063080325387396680177528597129090021747607257676870260496930802944559853775164066263183552638579882907568774004406126687630566554471139290707477123543806812119743918278634240046722951029683815953735262868302112973279798752067506850439365050320894450676327741189705715438094673316709297239301761660401667621145344466556532716379313405050376349662081717578934061462961211574887551057070201517546845409264176587171749135950529161809582321709194208045125722351454139849680039575524558456848058395750898105813618214812484953634402913058396682468708828434946063070336702783805038701440577730007523530364915527661717331129871801565747523835353410094374491433905092328729640288322564530754005018319572305145060136859402216213841442280655321895530605229824948965466976413414784503949579116566955741371912440588200677527249181570214756396044817649593588499852486380859817095267340219604985795999126877907311673127462655258360847730435101674850793039227809928294970292382588296515119562519923393533071004978539079765910821172529868954758657171188354731646804527534014676824723516357265294916948463542409430619052860592711419514798334188554790375392701882161699528329981841180032404514052487937890923791507552955924565904450358973077215820371279688608347864614430559131633666175014859881575115264946568625894520178713624315017355709409768809749830065870736423989947883471742724725178978465057688066949352689968704929787368020613118965858507378031677657178485192762567470210713230730327558399513204021770712408244958639974300913052791641435850824484901593468655328752815927776806281117420842441205412854612315573926688462549030052799987717520241754441200420674122682895881304873676638192753546758698654524287707432088045116151580320230977981199905567392154746723249753167218197233559725160076799999917244807812143678393262905216216547459784469975129585917193796206383890332562750235108886421976052558140258675418598863568639826097756381951174239467365518342258416735585337301616066265205568645979703696136439343217240039336033428436346848463658064421818363178508206030380130914063487790446047687312979926036805409065006087745479867071501463897779863552137358256369042138292365020243099944368864395766661791714637756004634636042655251388342274667513784873935172102227674547105266331383776344112356438320853650284293557957083532667757145808295158554878586495435426640986765555587732863050180533952462081549854323375941572486812524713016675099012863026704869829974551601827337804904700855997853618573050985041143272113802253262337097814433955544537821131352455258793371158505645129513076115053817477145222833034849258900283408155537221377361238426459987387799356333911753558650986396306294029193266139374039298847163721640789956754327633738345130299970040638824486015548023934644756888544016283928537518008908752817980301918822521791702332345221284621072011155130322661206211022108893734555052146814554551112728961043494469006287899517109461448042131561375083039786150214403690911349800824712907164964970634436783912739574808906443400062802150920754550489042561785160149763398687820613501033779927216385504180415094943457553814925915848387875323522924752024886693863492326614796247185363700285156549720318286217147212778808147853806587324217082920794260647613685431366365920358772956378844171995737073434783085414086651085954379706685160552653004989647872041306168495048910601250435327590438005407201738399959286118203180316496482045002447234606123448042779767331030523461766420858890429158317966619615508152368519131817229951275914420842011252158040243835958266487547457448351182720478694855468569411132477066264962485983553279910301002600068180718061481441619922492747562206783146669760309647600849852935405953869740904204583864983117797170584692086413138964899135579392967181916047795039066482043113264821364969996517819181114603013413421504824409711093688964050768816681508265720438793864833105411636182601124355785914459691471968982351185227144010291164362682469237814012038765096213393365645017968985048775282310969155379898548113132285509267102262645091858313311853348986371590329168770901136069653240520064463699300904025945874675337919964652504707407681551024518655863016305597990661121758221461111776869895451016183441318616188571280624138652764699159632269736377203655943828882883169732929206999963129525562893734904311290644257581644043684642071035065237323594612544191016880153665696342233578348725372580293027802608640097119432313909848882585941120745116728089166896149141896631452744423066315906180447058777870394142791714039170736081515389434833647051653904196638207503282701622925138316205032136958909507828325430329955538501758916320119457520752142733351338206825107891198959033692767230952567238797865605929912500816996540751845853746584770179981516980426971682646991203679511455701756763233577823580524349694857548800424669493795884570362960518900606938208451002474328486271427621561584100567334164912827280008720433206864238945245595830636972052295103233109300644091374879087724418203603334144023043144280820416179075244416668184082441011738903216611090329419617357057821417317817495238433046511176492413100582036101765685986114955220894353842345140835637813759915499626782219139844182624020360388689905451381037584094713374335762374347738909708924774633623691403674828988557762582181522255666810743427748166619051910858395432643466659836563030653910419602279014021787331538676645465968838051881395474514570528624687711062380263045144081496257912296869450668394871669340146247978132330996085099930881120072914045184146505732401167468802138636952581193740399103912981180940756495306019715111105478442411549995813040822531792339010313273916565830842159627604874959165748362886256680755468312471412172894517270154006606737001375800486820861386920751415161363011535625851308529270463202244771397615461622040684642100714887055038296459159170400455641361581068888758263939668824583099626428163216819177038481411485141260025262528766761831638783240906802004781986776715036916107940988848071932369824271950368416566754214219305239628112533221717858533071363073619990460218327115740876971290328293553688744571725864825885628156171601755618592227526187436543783452454110373513747272954548488217337462398469915152508189345712892224933734336007719775722998105224792622232481426779714738231917225647710439845936415238216989824346606591806533371005212290650313568749265053617239781417704918273065918421578982092021753197491247050318879379761187748205735008032971350163796157562005303549722749659579621648361692959808884692496790284702511758331994346216124725555198046608435742103336273215252829253937033559855253901379057557552544606476166396187120562501806734550693791914814085722739043259460152775910399689921734706308755713465640845273945202011534373065793739148311858842717222731177710380593865751176004039259882006897588853584348785381344740543836880633236863144726392852560038851097445139705398172841431537246320351332813615838088432933726100902339886809733835041297550804437907894609393790850327067243065032570649568007353037868407070020699017976234892590937239847655969765154044300284584026815836471478205922692125713238411465173575763256220983263528428554822103499505518388721566752892860809629136608621085692674195308437256638976602819583315487203376261874998323333076298214510731734972592841930407266141098338922430305470703703206247859652390683386695555055574326890727064076580303702123737068610767207234928986364106537495383447740923717829932603215835221861181869081557143302098292910676985889945437864888602649744004247091239293153897851113280472141605283890853574976433521477319313844672192456274348874548244452073951577940456958383843802722027154013438893924866551702363517284753417531362694368114905621981399882363338596435379556743944903341364225699796839789398560778202578389105203731102766615775091966461160952702339077774046486691369361877621333736571245760143307983754363669464090307135864700687855731105757137313326214595912707217836040451456822235854839905351897118389299512052704483581820814455393525809688996145866066485209193654147233896503270881971904938144100820905326558487382594641392119982300491017151333137866523995844587954005802586930125939248307101889987730131701522674446912304186558014537321833360531582612451585940109041729308857552443875882939667911173401617187973214580553387414795820243651361870138340341462899251326830986387371501244436111180667863541341344539079882429309122524871889083454090040827490251359245453830887903267466311242630356144906420615006189491086819758603881871926972369178090751984546641295589972311847656618258438501304097942557890646001995285486318810504371170233228805939068818026928958890062138435498821127127897235117659411768415089773192530320733164820798697070349368398571559041095413393065042771398139398402708033471533211073949847123662981757647407148885378966240506682447726470934676184703297625193459946035350693765363096994371198696972614315612972294415410859653379763757346809970701459916768320091366456339926756279499632926010249576671716807358626640799930574795154364902295122653252386957920350274185646456722799437143891180315125625302585139549111742914955832709260033252453397838885677136015318507955308266454313372422252654238324525592275205575409246597980813841337297310992157135024379659625991677960378886512532782028000646250051955313773305819729683929132476922394445920509146941001702530701254915490982421087749388518585632862593995085391948767453666673064001149159117555762622975086612921235604521083134521418235849237379589035276602962488830681650077010035908146344484943964291315207037167248252650391454394829031376174990571002315892743794530837042292416205507890460003070737926799854928882377878076255735496258383077507042640316828458204104864790213767180606040691428214329273196719811088219274499610463473957944784315358437928338861581826875580682660938445075908467755873884289149586222951880323344043001190951089066579591608486800233998981488664849598036603415563921125570693272125796259088751253118366465029819093995226451111719163408912013729700338582752421267729723775372077753413036628834674609520495157752765660976055192798464800096242138336431107411830185930353589526840814342227108066649365899355330877934100389880737243578523453368537577693739595248694923618874247233652316423523364012808064250517398405216476295734347172886605221450113203967993285209838876803342130485172842850776098530330218766193893664072698772264761301544741559612185763129262392904588695783934062470855054759132095764323876651791053725527362785017959246902030661000227658715035293417083780224864844317066953511630808035483799632719265788520824188557194547543581154044977482658280074403475089148620533058891544080287520034616825202681576407297961981227133397253161890187823188793263131676534749001657629406808515302245365631492901642568275754174108811167667106247782152881559136611547539665533097897912840767079601422010890681434356250141861101488734280511295021813543482438244336332888261846742372013442951585247879513757693629601815870980850915446041147174868073987305550731991434790845301321932519003897987880555550784560699026868731410812079677497809904749515910558652130488503701182898184800202222233807685450383672933684417157134989642728328966941084436009733017173143978458962671390469269942974997066017115047532425271153201624843985066124577888465480742491599631999375687923716536089190882348778893448330173373520307051386029812496140989138403973654360537466478525208155011207931288256385558832553055557527220905812934904207198312281069700960343175716236443868369297129045721511985378322047765281554909862985406389683681437485518158541295980911607142249095187032025184198060244142929223672293076625492456036794269618417958871416988913134163126446943015597303834039427401944027829381790994275188517558767397984242552836468914147278534934953176532228118842810567593657746527714316571797047663799678604282903424008288491139236215769288110872394245222217601394734585705144324422425634090660724922714403518742969054194326805918771883061647946974912495286468240503942130548143382091260476892443141458665775564276904953571142684669898278532999094486669938773836504152783767434754191925159768755081856644895988274508025570292546870914425129038935226510368587511081030093527459414158595794273514485097327979208520500295887027029759362701178969489196141712575316114643864443125844262773103057674592586675107583778279119096597588490077220403884630721328127948640935572495196105662039803768943026498468246952107351272079106520582983029179407409229039330565926289393747828811750864828196609916875333572629743187924103215935494823684087803817838751544122316041951997720253166414917270943205942000837248277456473625822178060663661876891815438290265353340908687346762002267886909698548805752467641717276302332115561253747428942337333483142826281395319003590848275566794347900166107581770153744318497869512930465544271999621235151265355940364906212842798293979523493211855735005370509350011534496416673541192091833370874877935187679657421037629377112193913300516638174268825138568849341263670176460452980931266306987070684242280093485830587821752031946175823002911540941678183230226102282972935730707628093737610123215335593063572501855081175843469710521047412111062681503254950104640292864895153276852341516478405921786762410375467579574686149473613667315769469740449632457800743344070624079343375570351444834754658550594621148756627230646494753784894454233454797068466411042035958879667682712089848669331419783507164302778984188778957983754156670169892312018705233977210765848031238900531157514499214894374842711184154819265086996772375023653252975237536377508230697206347229575289761905261385187088358208271414287034551599776882266035628860321307459880789860508106308393830856633444173483584754786667387750435264603933462993170027336060960126188693348509755425737753782788906736836431606957275269932195560735065037478218652993400228320028514150490908204742811392360595756932743995573651383690185693389584907939456476838510293704753708839565559810156312128525171381806204168789072410845347447402529640708689177463643672839498681348740480816429576873809702974181198298674926441912764672322791912510736083407271859986643225416069115661247162730284224225627762088448054918265956065315555025354307991947012629152411348981883212632594839165643689999065052222940025103818313377644402886493226333824925190346561828510295877842463715251774556818425605510899414509747397054048867891137453412745237135315735031118079243863629320629654688000006509870557019138859644756660748139678807087767794859142068123030433998423127401342646967551301455615829907811735930238794164432500913426017509794171549902016167313403162538031427321041969219366765847987592460601087945972221608746639247914725214341953679551687428682171069460462110669227134839186771173452383350272320595709954062814246333810123612444765067787539949892629426341043680205576469492002352467258962772572921862394866433861975301816911572399688464392739576304007473892583168658033700528874412222355685054832459538143494591052249747207284862861832778550457264300847113638393431700131389134741359770217035575294352679402589822312716740442853870048486100777019933829788185595601721272829343344662254535772279702626325251508474265994528775442447776181701380267577787633801354819976654672173538156426045762954154238884930365101870335702722801389872804059493898163982026454248361377534903171245326280179355558774999430184229402868611342022959572894156300508504627057800609259365354027781967400616900894969104398303715626518804504034635317345033710075788744332369673271368395591972712719683140799625874401433088128176365608824330623704270422362627168892238388661884751703562944829107585288021617643618896229874174450870775170095024803615285706668545577506829290587692126419750104248652899764903208530792338463086171484820488455032768833680681873434241356247135330806561933902598543459440256997613318822977018745457757273570115778448699136376208759681138760218756557211952101128565742846549695223526657772350332567226652089168398646524011569841354364313199642833883565324338739029193074070191254476743294597715404797455014044818754172958370144512945894857948336593310361579434294143151094374186430722614181926500135651469709423051653166577989698045956469946866038053605561736255968517196942107478127004597800152193426384327341246734502533697466987612529997959478792934035820004217295264514491762943257682110969389037023237117931007172775542375544385457015960381480633451751481192490639464921976403758847960605063885557938757779049886620189922503212183708957750959035438854928659858398021660711121217501912850903170983074674338573926824187888966624232630583506826936650911941486591350865079050236691347620067342519587013709293929648838711464807772603134803895042135248241628150447226076593573296603680931779794456157153538970300996595286628267259049003999518798497526883080019528616826794811145408087882390753528399634613803301240445951390925165048487048275540605164041785806517907062645168270725439060547196667302847941925004112876816569702864659275649792276741756413446592052532646776127660474665416701552346656345870813980321230455818066984124526877586901106250907814578313571600423157625526313441755127768556571513991739362965911818225563710713256876312384561601214866469204750572812905872589608539091172651260649086925219238145810159352887983490221538686669310187955213575836716055450837081575707248879076637091487949180930275051775162508373488312154814183328654328146536738250136097501089157509914631807742500696761856494141974331925680196121516645236996930508874103602838196040864781847472480419883314657594083873087763027956023258590672383366543002373323453388244443166105977030719197285481234467270530097314638970223073691576618380905612884084705648357378910311102028114388384789045425823710118641832605182680416607566433059674189032436704209279628188933588310499615735932865884250282557320485850586437694954390901544734273631368944523008718218378523042467227762347746609172919039587059024359780743978363599226637717071388448045289683865636212462925424970578158986652686198040140298602225914991615979897820948369411064617425524959405623874207678936387668517457375519291885747213586113285149866805508521188625013801426064893808390527140173999510275729056245338151910866331601389710639050611130751661777462169910909631465851039902039881896508275409255537703864369759429332580905965838923110679447078197714144800747898931159533641047646916347372412798826119015102030523146336276331650573305605122269494926874888508331548023712062729796339466572038544824447305826518711335382849763260579498134505187858140340832087911311777243350494153364500656971849011619696905192044123642225840886439091893483546398862705619057104097675951298230317201721686493601309582823337516450714099178879877842972726434846682024541293803837272728744641798384931960277106144082470390450561671150307389211528507351236235910415664993037768450262624756643566548767790500219970065898985542422874017855371924782970987680822245549814359294686843674271507073514039604978087447790403333391294402466252973941362595007817846954485899804861536959532007850566022049221367446440111110657868234823733347280132911600291974477332301692321520699348389132304823209604308812183625710407945341933569767420235788785072154143598578378139015490600952738163083252124245701374429377988882019866550914074367637397682777175768598651142630378917665503459694155137858322558274419394657236527016064284213900142700025053474169004612475269169025280563263052898459323076532026382412692663544882934761075402923482697380606328545559056934724651443358019329587079914149038803640441172653788390461736095331258460281465512723174508958538664513455286363738049860304600902979973145027484233529293629740365612595810957442429485013649957406851614763618722730904103460035750389470325175715554509333253037647163132998292011950674066289397639061501196986672845399791294978520106746866139547449769449667495639193965453392048749312413299206496291860393819842716656891490486103521851078353052308339220194445377353400437059710600549768073192401854027003635464974680741881843840334243079323401703122513493919389326230380140143043591575101549860677588321146919253666464608417803148860396908127173376212991657837043358255077423209562468076280399208261148698054188502910047913133041236328172421949405308203351933924238334679975485080582238566466370733288826600342004966854562211138334840717287488640008183689346819658290276917834567351625394783333118670963370941786534250052996738254297395285781100394609653288146945944412260433501116561128000841150726739471836023806452500459230842160561285174748200868797275892410417135220374752485401550453345883221168637489436796215202536600028364244083492339219007611986221007643538363750120021695318897707511198846443241349661098581832568102954078753055502783419240252635668181099823268917075966203751567581788562428009047767262394478200859964223249862850891703920353851263519118696461434750069277812032577212469028155854039960551271991990804977609711517116636507764134584476631422821802980958243214887438406440333215581149647087325810101129035387366273844102161487583955660635278830884383708025883107952412646066151736568673083807155881537932085664405926972574418259574350489736902376870589463519663520288103057019200076218285108571330512336630603307376078264481647067799517397347776850350135970094151908823028206230291651715911233432300339386924557483136337224966912042581512006969690318031552344735024562641619805644779868178550135944271501569182294216407631973803462609446965491256356521213861402040396955050249755344407993618334361652851763854294626123935890369218993862406777474800844581719903448938182379857181128851763591168441471531092389754517864967046486027228896299734804677626827675263566472956374424829763555122620183431748942715619973193777193008434676098407793119628105075543233634137784677393601355993362443638805073776991910974666078712670995075168129360488404747985385454428578288770634964463544089321454080325541804974755156658274614106381920859724245281150726407083945939259013019964522362362172764367774410009081659559155518113407369210873351711857342129054508260593317350388513365750890966045628086729046807532760062210159394738502402946476302492131546307700157897483551047736014809077289347441029196415376606305843344402257969168343193467762626590153712470383849029907891471363629610321413687309839782800155414951986962840568450117509796502297710406732858696351427654135433943126234623964984528480888905237401569964991375532949451105003284714800276974686089268248909763933781247984067459160074962020549281363440275411221247497112164910438832318746432828565189346436041991431249629702624133648500629741370375255274876157525933206872718103512779137433178139451790024668798736918572708946998519960597200179826072223059141298190807469772139445141262589410912140310474751696001832935957208683529898148612726569525382243624955078717832983718358341391431875799539364499017026056649081263078788583235733000065243085453112941871008803096390097106078411660640156104181189458293949777531895825607583296748416666434618771393550601126935492478958164404912732542556727491919535505363263379568193665198171560238928387011865249317574153398843889465320685661312406664505315107778632255745148939666201470590535250181864015412142983882926829331076350114569402910510344517043767740818590435812152583570362455895971367488978240994400456985644480680787282683584935851387969292984555921757918447238816213934377299769648671643034779661426417657067169379437093470033000511096246709178385223079865479317005385280960801243007619743479958389911682833723487077321817780016020874008232346559959107192452180894302843217331608561773526594471981609415508904584144840655870525712030857625294414484774167309124355442602328657466343667658434048133462013858483266512485317675502125900993735195521369365541883719546893671621221331361375218455012814702283726336396490050738481443359459897694476815908760246051410646830201436987506953814607543795166130294419266254171799830444029891845601200044426085597009925094186940677551576707911890730601580237628916483966859337100259371195702975198526346743579645953851660546794900581817138318338711931509392796864280596534250241016247217509197833451445937522927821973373690275586831485356832647315285833908495899091044500467720794792216551200693896233836979447205992819934444221881440992428666291589933190847934175594129598836112816197248112115564573120400949962546109291939063583303609599043926103836741930261306961941486515482318979121790998023445806443811386374970203494170000997028460290101775217742565764749253864565499965014806297555394915072303806323621552373199119840938368025046076924147594793647687819492084724482892999836432145228296546980047989429137251513298886451669516582797248718569975515116969741293830796004570886337403126503801317982468613536138864302796238265448249859984849855823681254944084454027438682005995031767395426147337827342121313314106578204534775839528360564235344258508856736018613524964581001121147876425324513493559260044269437897510793904874668206004587423081187121768462688447801172940067193188165579902050614708510547560687938759445694460694921227890909921471837830254742131748624095687797798746635665432940845413525149013608482941033230771783899525411321970616987978477589750109726879772940700160607713632212494928460381126848381484274878414420737639651347731322420976731152234261084751839442095917227654034766380597486315846261949350570328204174236723370073292717581336906598411258510793757487220549779647377727214446273672483076357275729931581387536204604223508021965255154163487891486374321529055743525187423967673359947563100761316908060892347124265268547800779865780411852633745250033968392243258152887962623663098901990057409522533837736410371301393046618386365049039061268603455758861161967285561260099132665678462346368756254893033362602730123780266831256955839101421208680436584992286819201034331811777569005854556096978303837925465067482155355215968999033228579143576584206498999880636922545734830845507843776215758159074564652715072993266025678451467986776376999932249716235989803004424987225968212464037397003526997892172603218376571130299461690951318560928945062265577948640616431964536800500642725650192718718112729472620929183304942769630314529081382496862129690159322981679433286045407941133543118362645748870549258535315610870007335120393843820552085775975746182692516025151515884487295153733078906713301744021327634514053267474802275629122181468704618242271121660114908124731423422249650323632938341320455732228018863432872619044915305367443804215545273753992330178283582767094259902061456732917918649720962453683760693043766015083566534085557617584474701660076704184935771774961103289100388449589759713155659101024240553306628380693203988673190277462608003226140952566594585062528459343095562434739025739348944051624052823203678485707415093354709111910128195326736880674683079669954484563554454018659899102383228423479533962015021489405021168864986836160244827298992681151569220956883252306302799168485258516101419739932141397189135450289236758922398992916437096807874089280499588408232703492317550841557562278766295939206046034840138832041592933838634520855303276857263805464705087881834870980721716131627372579642022501601455720246603779284895159852848432192649196572003808059572424324694964552251822885657318782442063592716612799526167596854527303844125267873836401978473099268015976527130807262737366281518934730929816070075533498543956791300418120683353323598269383440662814522938036365904191639607025839159828232236493754368937752561968515317683767559700056955597454944985748711965804934490137843308340439994851155736812799747923850930703362356443808477479985583835443604359105951505824159284914488120230399177242416197404588176297536926482802136942791673084167712613548675946738749860590463378518810675489079115947458440116653744124199559018863292592332684458812211052644249158634212445818443425067091503321697129939133610438141381806105561430508889378927669593749726031074326607253829035261450610205892077843512011362416698746816319091878122122290274579979366486002452068746295119253016252859772817407433464080338661269270909509216882261198990877076023710960425910217710021873992739167548705990474504713814775198955089558176765487431406291716431180721635431097592287610698384189639373164257249536277852456189193348407530532056164196851627706059035259560642318010736671590802315370530856236596226174913779190230702236054720574318974394865220163998912660559737568195118843332538991669514695617993363683648557856426693381966509627679873484386584990598736517951851112606475111834149586734589426267486592401512461984447148538942478784190698779843754379875191127729206521666522035620617639534447956639115337203145970489010270557335606586701974821177948047410738141246314906775966887719230145472654505540757645060320668164714764274153716446286181683380201687545806369938820246190558316385792645273782506453980557705333317470045698747975012961838965200591825320478124374666584327915597548769100161558288024409316255123890919492811007532413150211693452611867007197464750911379959576382726964669457274900594456317383737811250515610796970723614806436325005228538026868519388940171735268892911852607042552393879330158215662763448451024723558836703429637617254861194964660258916540040930042579478168444642761676284429495762486908762954056000772079245364537097843461092374044763589226787933776175450488283310015055271052721256899056720398570685187538178581334407802899660167536022322287923809119857548611767697660524076448299505985062703740782727180105920526375392937816994380577005275542566283569943391114961910594101240912559409174091072594131988431472300905677028294471065350523031516335112335719539836940163046035694324467331096758973442787324323417732013572457835078670593452152108177774251034593418504101190263452134866507325063375916940887804712560743179596152155117739269073614738009614658198600748919854346786963286197122661615951630469991610246297263631578735311538487468083925599447982813463149373874707422705703676650732140961474609508629672198976866413769525393644018679487668134046899792988206394350034535247022052095103363369032037789737648324104181395409633489375901986571712576028503944636355684481497612736780187788753811442244120954270565401166084761363752534712476015992688632133107137458096553234771400954687716976860514095218226221377962950629978588595661024589287220922056441907147506657967968531059398064226358416558487540879517858361136266389482654787395888037406204496598597118942799066318992603564691410829281044622106493663008824831205857981461544399507179053792622253033391756522081184146243526575705294624018668664217698403998715976517826467633760234262645594411933683892971723662774878635953740468870926249956363741959230253203813327904607740373595208658153590024755263130694789659417952541979907681195948677004494799693128728930180166950846785388587510267317955064442881324414371818966181084979761858692926103285933002339885343916306161150282719861208682793322564495513866568583089697692896119942179678247666620060772503594053558141020847586322653693853625699420054523064247057989890250117457601646381138696941529878044379035431647805060163328073106363246017888524747169190712656411366297890709900382034196400822645450417641394886759606776932248130244040068852742766766481416832695453468700783224969952815320249833748562760970700541272767010695232558978637475176568879021759394401596146233259023952880927248068223894369096565031088802557019567174941997836396441467284599097402673708136882814512546446662225115070143852950431018412617272844173447855102652324247958319760781074836801215458313941780254856148913005842152026118318685925339807166246118543512069048067078701757586612343506096284511067994689404946230335270980429212474408541113732971246995037421584826596318039927350397619581695846184516525030020383313559430329461380927310474940716900265864623415410062386811993689588697616549870400468012119291932574231336614076632119734070752399814604329910502238743690346138901787916503201787291818214567378634986837998338631160155599232931037164272559604758581791186219495995586851170991955959734601153578456715648475340595007066735830604494594264164749984601021881036799519580093836505844790757497834919475240695788113186190939606056098850111239579844757248456291132409107736906670900747334208441780438823797944429136075512890941187371976205892458879502947566965813356226594980457105456949004885765385896716716823654748358987038295378838472515365820665124569043670579786139808200218722064623326971435652590280261210146624096411606690913821995886457187358338665901339234621418185726574542980083018846452600561671883445043700019122849845979051119792114787225719070167472363319517594907198562422548462831924747121150525122373232403661914430208034505590999205927910113852031485463131920615132190854075185784459383396591020429960493879591294632967044842637404643386276569792758295097868801924804835675355492615843592221227727697461775461915008581479608858695804550895296877497309668937277748279411206684181765522490426693538709002814213273207507291657798583400819891412013772797869656796909685805868269533702598727376860583959069923730826438078758670827054627755132856381125954588833132295036792665641623869263714444978994881929724281998988737713620702709861909910666710703722974617646707813374722531660795682768263576895985404006188301556968964249628603341703422225655247821345073006152497762881353472581145237525427884667418421968259451656479413066796412847713730925356478247761108060511995709006734817552999310485522423934885390047410147891925125426438941906213530290022445682349468857485243729246104950844015930633693065611576756858862341060050615439737098425816391591703064573804087850324428551847513446608340727752121928327851619107831353875773320924179583389332470303312095146385125399939166242038016123563194531154695634124749628685040858937768318336852498282179533679722352602006701502504541774144713953669033854327211837389142565184773826061868806957730652539496931303634713504118587269085073947292108410154630520460146418436315420686796369200859282773575632754421738631145576357941573916451371699096087439106309846027641589100455537709453881107866074825929640528316228064917269173453362490361646979703131509785615893321682414710113392580475763727006467086817886913664826784322613475110858426187926906980339126874138435039645678060533303669539915161411807795326883888022200654053822466244186020203880229547760540682854093954219899897726069172956302102615060449203709611396464230418180877437795956503009140186662657808183897490816999707039254636340336221184195514820712075911564959120905645010989398020569275715750575115619060586101594628605043375964930922081891814675279893384035974187522405716662320317238493133585767812657595246266218809029602131633279330553049837625458806993140668739261469775392856853286755858249368294370122267783258017068770689950173311186753404867236727554547722041515326331172490238032951767544418921071529909598745911523329553387671749866798334046536589964654482000428163363017780112912620466491028743689391145009224288776589007018206834577809742625221160381669791443558986135153579810394029287998954692993677968228989784920658753987071195498492568449074445174999114811030214347670711425284843770382758330272823557631448941024983255925295285958230523051573168791261442889698212433852219829313831702198175487417943354590553084377620416813773515062520394814784470711527655422245153665063305731810058949649423116920875872325025907086056490218539042187045747199028212565508611793887688572825204814493068902580595894887296509189376759509300890518102109768833432079701179701666786027103201852989143267674103587870697487139728815960575665919613491195094317038336896777856957713889598185697223334327669053955207358035100430314222022660606122551247113154166056665945170085464796163059373312473324685665913984064636054221132697537873513573442928508829505301343108201691094032447009521919371712867991764157450208148942823150785781678487144412853994078704326293428807224706764420234571364154839170640162800722768478093739764527468608043768096052307122664315632234280097756773530616684910314020195850788795279863906849464171621792363597712692183433175045639063778281002610306422766363440529467580774829296846494667712539282178740582865664540063300860402122215155825425880212509312760444929146614317575074091801170485566100014285813705303077390283005773734315082688259043350256918867208327680946032950795367014972488432262301405947547908974399009029677059082503643431562371693155878554088522569988864702055178344503642115223240221028893372947945146503941798955138258515506388573721355461799163198904732043379440904772458486169075016953845149317140268493491415580742851075803702079210033381133824167955850205398264014289346431459154218016682434465847845510828754823418890495011716224876947275618242343070820161150478364184521074967133788771216613560305729753874453770440707501588735081045182428841808596608714865820763955277678444252083272776392546400776402315884667811730824149098659709707990137793209979430579558216565255523099913300866259193505593437604610020413314849085041737073142998500381143396282290209136973374034559476811270230452683720647832848455867911652051600869336066177368716223447563055543581084970853273458854485214189309104042173715559676047948968743806935000132713485175621433384622745203456414197206853778926894098696527056379787023376979356957178910219704503643521034579574009244445003573440572103148816136252140969896119123466955656594236359212276555236131788672245057969181524757597769549305059472994773417779407034230385264639903995736117089594228638912392235508993406870288117858156596116592064509342731489181276884231681398671586654845127616053876325097978748227535392168051183869527085087389925366198758105086199938999877506515012761238678844369063024529938558076925086755319136789251224910886005072101454473314840013895257048730813124162437781861668418386397211059794688042715318689697436845982211466052524134080114484987632560855633091517442377695726463047119879348973272387444897875816472895322077085954426040903393925218503040421214161359409124990070501327305307418371349599619996855665717916111282354348804565155788866627126525088842155569859441891153580311412958499497374602515406126539587372230777472437624037410580043540277476706137567950331962719890272386301076678407960271266862328958485467752350945828328504423629172513769737522140891786138043755420056325504846081886912925560434536003921664054717415148850847567600597524375695812458398653853420914249880108766210169063886497156378972811053133154941022277094494641426156989954046712986407787570391686347543042336454077224314225982335887119735219249064224742742704563620318818837439982421506593665022608518320557480374907800420386161439167423974877272723037448021618187017233205172695716132827917356025408421938991323419387811046662423325056434305677309561690248747078622510870712572753816101986278976793062820153323055190844019182325402442235938493728372154096085923221377072457414712786980211538488907194932626979192046554047494038076499627394422859188201927467245713862662957637723578571718752028860535120373064322204811984430924866757388348584819664064480787824415367443533212872134073039280954579041159244124394724008293066158642157125680605203418216416070751773898171360704415657741964995687888045671041517223661045095653227634471219226974006769595796380966031855932560830716175123740615378039441377155266134285492839360950307164744756296107724466588684992927824431159557661540961569670833629760407753280892697994942013537617822188414103636711269076648807486699358579524078470923454059712226972631169339104685888199028151400006436372463564524038044226367011924191062840621337007392497059547069312234839462876873914839011150815132271707426060043296252704580043546260846102492061425940792636486858956204612787670552293149074446760647636824221667374299347367154753918748056728974015780341627197374864027005067776710100852553677054628938658958587198316478677290570868548849047923549395701488102988257824377452553901830282485844580984725416891563991961025201576317231961133582994106594779881785154970701455083087834859988173037440245062691781764237402412496566614389351776152254214434355595330044895472019256739601542173428018893406404024910393296096688106196232525156266674563619416590023557589826284257498144812089229178384953708980817990674679753080481811176988804583106447131334199341538780134097799424405565830747164762856630418033041887745649628925448655182268422937474107564927657668619085738012103006899095442542841148304135752708695239295921551291805216889145358367208401963572242002101489844292831301364405912125242200636656756380452545278559528793776890048090566049655289085751959432453770361461033903895554084545394712695954160803693890561454972228462667344891802648190238220859735016892258725467302378897354158129765617631094400782858257507397236935273169187782052600890271646967266184317196447810140639666334354766929106102780580345939311566710262135280007922052732624146583155969950089308113891758708202943482892944539617320456513218411629415669178168643865154666109621616855871223795958503834139216649583086490737636528041080509359651661887964832331736803766634025257138857584722167961111158408055348803837908271826011426577851958367084207935070680386192533781951927811750059122420370889882143709932889505908719099356191232178793431126512228301930664356053913805777571510591110147000306286545938183106155651128470643321656598861610772003614691317567286090712977693862740960476684778357144054591890897862093123747847636437303753041390413206682819952165987094438183686229104335971261312239566155661660472172782304369736206542631490649340871812617940694089905508034949648771582889842906384155700883543164568967691741224735206767305378158400167154994932446525827190172938452413102640373236987690325778557635049996408116329236719224987755541597816974909774085578116241668564198572968089468363959137031093173086179262895569091397153052705694091413275038455435869566621311635689819736972434622501442821623881043923966400235950924824487544602462669432899232288823462192619975851121917205296250407592525160097165226375860663692045645279444804083700328242690588969112920380006919000567046254784878710106610118791933371994730490493513463104006480032625047800908345371364847487546653556497000775767335843806557558053501879000489924105246577655265102099619831225804773290569170239707182665518198735927880449410756530400274773364573495611136100639786901477994987720985184256962861003034159379457907037322714809921502072361495397405708806537574361687043692506529895930257375691872117869241988037766939771403368593868660710219092699486036067568895780783735928747978660315378449210373649497590246581569281701167592648259966934268084429683637178486985963607431461911949305633287134654964863045372742753309130629990079794524917407761494622584574914245264654663017682212386749423856416936613641972725179956838332203999713508624961180165190700848108337238744829338727345121716851992459411178233643680628147316214440085047135126566363891305296083165769552949835912744860734074553649060572634135976618119575713885664215493188613687093246140033278759679255516779257092441538485782483931398142624967168862712103304326639045301990243942810788602683993893690415580919537233009669124989623237472314246361248386913435276196165682821399286927578139515674080867856584646810941955830766538361520874344366286910505263582102117319659453735510190253484406892288535777973507121675947685779205307793156072348638767233033157599226256423824503835217612014055260201699008920742487139363745350810491947399145201754039772617294687461798464645223109212343960073933089616047213035366405248992828763259514366809965814322458317115677620764707452041923229278995757904633402696414416378081696072754285192866289898424640597287597108264237417475224760084225419238385610863815747648333501636756787704177320735220623418917810504687130643495765237489432478091827948834917816514089742430050579138249581070491422394810533585801682090548644203597363324782321537426498144762971520450596822733134604436087424790878854051377287540438268236252128977467205037741422373599220588129016019831214559657924578112599113994976586313236828515624264599089498067662794965628752573510882609913388719582620540383877821048646727081521641235662221125840651572884225214142428023197075241059247985043111818973109582544235309689595715658379485972496484205870992396336417925081083154136287902458549686821420555936476813296823426998375226749902216995111223479389682655817710326546955257593902265717090386073151307733236777135098368362390639414853421153179588048470774333202811978510177072785306973519006907530073558400549988360096454156364837811998933436985159232689523202631312611301406652176220233424952906001978941444535480513566512912625994708625098091976496456268243294924911308481503300564966010505885368465629788369128334472351094742115991302436308808189124037223736137273243538384092604678533762805911302439543311675900413709505685807565946639430783152898690117686893074278544374433420702833536735415561457971539041920809370157585985540973872227970714528508463685447462501130478221911457610281015609812954256070580273006390606394407627057216913072811686239003393579609588199978894104082559062438009296937959057015799710357122458016674542991914605152572135447849117915665141726300393233402938313413005629108118577097413897881202974121875089024763985877525295564459019845030161840034077715965883152297170474609002754488728185646530878208192080124205816986406418694245434559810941504273534448880804349582812053879400218502677208457584859331381351728847550889287660345714499169443308221668429288797401897911571985572840469898034276658209154985115747744844838700221314624885723440127150310912616361674806311163547703161113540616874773872367961714908069895254975618534487899949861118905681640503312121585236224998834267965693259736852036371198286419674608960316977118202740125992317614434539091322634559684616717253124922271259847989297525373070341609946164032283198594728638105379653952111445216190808239506628289318730122611779748631232157506825969507071399677036742300649304954070242018151975539745429540285163975299993572388100568236569715046547724724659596511205984363212093798035201888998109185827008410205569172608025014175360214071421480317153835454070384030725466960945629858157388390341687109456566714977629591997098143563922631448857426004099719931852645499450176606086961985099099749501239016472446944322892032502204152318929913269980806341950860897007400945634818585998840073697768184615327777165739097373190022649273966079923288052761284581413834259835936418332672066083830373226924791770836667733676774379277960995715776018710391408729685762923495893878773172936719675348451035101515158190575029001362834245552028476337850997276309433985505871184373173240681175780493317186701511136021586581371886313934283268142016669345887205676615679097623213591331538179249878494917404563909650300665752041870693229408711945739336585006587027883244514928826548835954193818236854839442932937144547714903551600037188539204142170415769063287806041716326292409269076053557962657455103339379663758518294310750269625653397723383703112815605847797042943567425495109051803778308934097216873292164431666382167327097155099407999576027761493074760818866218254139032687923641067067817146921439682014721446125866732082539049296954734690903148912236612265699544585534401820761950137712793658995960943052092371165444531023479511674347832230719371665557681073728565168843302791148215097127967393172718388230201090288797210253253278208354773753706813167675788467524887865654343398802496264540849400660717767256647082462726937606985203793454020877429458950449557012870944297179645801106832505313261412080910147295294123069877061212929440626620288099595270531339645347067254697539637644127383149850032953562263846394547245138956378942639622954799555661114765313674650113932450174186720711626553549952074566313979209361793114873092988397855057316356216050525292843605829415178841729526194039349429009372862704689316824268541056448412330018862224635116532763714641920574390801364326176786544900076330133861820357963898092256404764383880113106797765590809408641710082535112241929805123604712828385893280471044224117487421116869370286959079489248245785798086330062286609761843787448563456802152825803251379879307953480166204662630752110924037630872898543090701172006929089242267606668557440013553209610429643540341994163940892683779278005476517815423893300173897650424519727378192499620550143521937745280710180149139458330505978244824734633326570408266379176395855808963885906313638272919821400681721360287069811576811729484926899125404877120760529358171584055817412785680473020848418786487372693743334491902384667922006581019882808070445179775555029085359229305232889665002683442395041463855676018198284230008610587840075606394878444313713478368599869494980858714589449636463304883046632506525326502038940228616577576014367502827385567781725631592621058683093512671088872567349424605269980044042036360885988197158486124048189220587159021661238637378326363447536656821772867628498199006604427823207927175825280040378573674115500572950238757575999705161928178047248493540056841267041075742621937814079059461776311211734656462079362505852117304226100461716583674133197017433712324861507290960837667259432283249284747602596756171280675110431407888740767036861701794367203737983567983810107018911685844102693566866317001289739930294643193758459420625093857285542290869757839071523161073563850965908449865793772682840822160179623237976038846605914988776362447489954846504688775470455633000921716611283226603613189553460039452641692436265468021624852792387980165621699621163109275217504800933485626565524434160403221616988991942864435121121155676706264090398334344964453593052692678630421204819048434445589317431594263038147558090934257562099348859599572510861739439599615442333118497375109329439850974285056471582264735187034333679949231978102432735998050332808162470012673758404610757434789961608824889501411999674025721367684986107084289122440289265706192311512001029670034924791101115501007258158922481665447605314528683801942820093191459548126161636993871579704475137632511320514584878796693580738504054629228483819029323298629042529527275380518491035566018215605737381369674963470985618239240775304838706893115321497665262598809323344031163609391496355420776034960907509830605689022024511597255868003794404169545058780573053147554511232125643222728870279825360205982200137874475393761235171214733696964380426158385010219645328674031756062475311857229352986003389855110114547876203357480897125911505854429167948262134081793122699699451049858866718365530500470605555864095330093383650205512866618261723894585676199596357643954725907196371244422366528827086962421841378647010790316077333299287104737150883142437449989915587231468771388908821677203711021981391460685927870657746219341937980840348711003486520975795051780825939261850299413877284592475507970203724448871634979648463958453072593476291266952981262346635905260614088033057461436903739789013441407388149410652774129444209976357116481113871474307376761663209848953078227382635556451998828425657131436584037179846196641413000575545719714331243597610329108416424323319312809916596325181962554160535890870464198341634930432167084301982725472929475923434063971293245273948411771077013722795964307142414229952988671554987881825660541095816551650434102062716109868195325624880700202651384613418176493072269899166982497467842877969454801396279861501317015472065832093564895864611961378196010131394630276794253589340230153023384593214765943933600046374027810952193071399170645671119346988688028356687728034656010175325247078646305380730113085583352566266206768799848878722650256777181445945884856645173219451702364985907694873443089756420592984502004231934819467631974841528041333142297613431875599503620445944154063561653628640752853946929965939308035541212681680918242261170534912507673220826669155766526662234388834585053306839318747122239447713322537340534361451632110697593481982512812120336664269153771034250441046315469389822504586530790072977773851513514843183039407084807979668895742587594513680967615768698794157713487818938069434426734911282200209024985311989014759218479404564435158953998827279461138725699877988399840678256527624062120614767087269103805022900526436312362865980454355376998071892885988326626150578988135052138585860053352495779501934651104018601081799665438584675144041081835682818424667096967416277399770112225494039368919551427061271247978259217230063690718147457424654217596567628927858449772481981950573333396609020677393259324746741643737527355925417996117945036378174091357082664797339869597652366065441659664304865883370981512820792961606853901448968471661255273911573600728349627808190526557722275353577719780070888666974788125172407449898035271100134027925838229820251736882315357732001817699191503883811811508010617850499710386555483227571284810188336758616008715508818499648824408323364109681959609631539413028852795703654141679083442339875192088490679700629967964630325393566868404058734541278636600935231315156025914251892547438935659068125919041417695365777495487185629691439378378568905999477227363366984874131034278486491845305692033073764621816430293956227034260254203558395740214988982630633436909466155720036299667397160133098212748040107052814810156434395959885225510740334452672296714495551997716553145122227722857341535960394309751728524048884153175799430186008549035886248587767672093920655922745243923408014731871351220494131252209905913110297872269710396687955914975207606018262476510441300368634020352265111578878736941453399999142752862645399539237281589150860730059256876091667952386538917927297911815803150861173426117419948789201056823355989022021571935988251937121210170717352302207696026624333263188875154892395174412458127414071457599545952603399211741274741590866707878163002784578156011977203566199610442882666905561233158527851256451437380665051241849995647901831035549970713065576078736955095629048908651917068502876933055933339638738140792698914856953393998611796788528954064506919035809734931536681064118345195278489785677333739802689296582975498814892176264234305055029215129401011835166105025757194276209070925225578887011038773982412712151248343910043108527569230198142079733569426094527262879603743270434041520696399318848111296956652130738986810159198515917250237699280255887509159632977814894693669785915027487299016143915082124745249372450762763407351837935125729354756087174816348880099692957389919643552595193157843271791306231147718493493969866306361301972965814388169020268514696356084846552516821972725821889669330456029734096202555251305750274720254904996036850645600728559059104700950981052719189362683454325041065287556426855717444735785893742096028959030465547066849581190498557437017423327572380241462186996884986716220719064680805955944333606412865629283710995150271036338606867603133850008067733498340867712586840143140507628671385521982118366607063271780468464841583976458183093555111209195064868840249979016926324944897243409937739758855043071382892042099455976714002039715948730048735914637825916811057807495176511135968122834726163893397344490934121412459717965025377989689027172330796438746427270545646843800901696833857608644360606233417200349176884324587764583267421816053421815011134474073522628122422003769573417392921344414407467890459946821279894784174208755066124306482665579838443641194745408724274499798283515501779834044027071951114816587335688803087551584160274715361927265689248170558073403836759217349898381164417102670581306853414945619441001999457422556712788808777578254344250036030605631991483392829791794885554432482587520169437794005320651540865961071764520180404493101150023004365040423829843393883393581011258872794157142204318425242102883727302826550137653241471907043944632156715121981350296943763657273845912837983582446703845338825218876306208780132701082248052279402386138667392067490463265188278943891670891484317498826749454035968058903608687322903736599177867421103186836107570524973091521874788472838035130361566885644811424898328948072514126423564129982402337700793778849322322591208636427778926504922444687954637994948989748324190412963834707669814443218444421845917797585800250093607744799287404534980714748161975756869902875195001702144799347053655984891154034022051763533172803564366930852479041704559777798681464732061155350495684960811443489272202593975874613985925770787022571942107346950255801975828686976954895146216279466774814112976712964580139509495742183527454449219741619541715466985988865955019841706763960745300380873361920735495124560169100993488741803636167560429989229189068489690284570571679629687366073663322992505922365284737009731961564096651547556438018670314428846220575102148175842675093826685184833057940570682505586609965169794075021089126792175211206847254307635082198665554783886790489498952204936380899386480915450360929765559863672445966544271045403818320769043332152845168467607512857460452275672989863022528308559862730555449223774092798663541607705270693619835276729476452931197387929825738269092475931746278625189378189158494726044235732328360666361387047180798411781661078064065616739714327584695504082496236504064316620448774536402405604536908241299397782172400722166108920114815543968196798841268286518207483687390035994377584112468028028528885861883269365422437038902117921437456070191909939963555094001954886574602057864248386626939662484534223115363690276195607904810031974291451583792311190998559136533185851652857089256386897778796866101666306553580185148194971211161553118419624387878887426149619812813238744911684538311162113709537462055429168123463875508146117325055342138044669366003287040708889711750447909940210781866753958913648415605338168450238254266246430518490099961617762503863364773218614664181993221844345552154857465594028832019051182059533812738836822904085995332306095178487604443516917586671174683889258023120485275676731989610229962863508213067991133733796626988308978927008045533536011325155270608955604084207090070134355550327611684313611138941576287174911775702779192750040147524833496823260026326309284538610946009055671574515443294595110340008253239793851424522149070290113259034301446455700060242333188382026775887830339008229920899301602634938893665731020175930981903163398858085870371471115698288937388641886292930369806403573542664194262482292939472684402488997015851018448735232870705265471232656230103694214296859577431201731909214811648488601096209841944809624900361183478476019041726841775003445475490817925855284797545494698838894321978701814814588782645088306339252161281841738296814817523490470540416875931561129427506615671153669438344025563724108001026309700445768420194879451439379402383048689878371013122046174383095566553783894394859530771925513691581029994454881492390131757627470212390922258998587650610927356523795393781131885856211829307346345417574132417323167624630735261271325579471149441904504466259400762970279981701147259114604226505847304023251862505368805650639390544181904840107784404416997500438135996991122977766451264492951734765065773143748460713718390431271131022794256586941280626463409067513727954965119578069200893889667518710788834345265435878532259161747941883144442986640634070749454880280971954189792611745588612319225570425286161640550623555960467086359642812335268267050180793096350780381731585958079826314885250714283095230871610024173295299860434552709750174738210028339460449937808503213092732264538656445504966142494398544903366006402161073757332915051913317397074919329363462675571894892130114617043663168663023158356092142380720852016188408704080117897982171780882369721136278801330370648341831485491287394144041187917362518668490631936041333169273862555302731520802748959042536348851188461698168297814159074495369321050373916134633095569074984541403561809057596728387796828767784019116199162606408305690792461123342176927638088718127800761212253849516628345434673807416739900622202443772003579263665324026302649036964275932826291478877394645741744146851710529663239086206481323317436807707266315634923978078290687346336826329653932192886593537156301464471138735110390823792363993455646456904544820434831583549947555887781178221614738972106816965918487871385597480520909294531578934726968917570815755497574710677269484959358449602638713713115409793153846958523823487747224104788844224835995603640144777753101279919896749520917351521960722770663051216328120034612758888876447967343942614369502965205593726222820555410477267499799944189030170142182063108042454204783247503948919347803713121299358121458586964724078793561867915025401976442984670511986088036069923669491424933896497496010735354565126465786084174754326218553353084661760684603959414529668492444622922707816029544888225026485558883221562209023590095428527996898310507927523722131041016964056573668050848978876960662758842942342467474026899445600040021267431218872121903734759523936013994094944269169317034674426772713499030804772469079865966629066719378584591011060777520920488543969664926716452879519671686547124007816583341523123246393430697345294212966428489157319803940216018090371153698668204660867905189987030724560263515938324145920492422190781755851613851830845319677634729941995924531604549436629808422743714527760675841272347196066783077954042197757240736650802029347787051369191074310967434418245618835653654320868612624177657602959965683990725942824308201411715671769441465580331271375551187368989776873110282819957185503150335241266798699060867211118140510617784359883428872523906150120202433649842546255053959831307736031787204150492370726064587562054837536096183102063084008849331133371841075572185603090454048326788106946303148108880756106830430592186822242689210386820466413699782590069622867632378598156334391939308764769461307891573535284027273257023307166663172663461013997285284609943633265118413850387096320657027679468969122437533465115225066061084044833581234122017525078266605181677707426536053047404407298614072106731304836064884983429922611280726603410549144867631350188921868792038250023445149585690979023496977647946251830344405378059162325781399265960104527028068442216777325383932428172162930278982814214899056475152139658852216179233875409473520105284883860671359190741413773249861569970967748096268880341543077140807881236779483328997064361339389938980287025592169220001412187855750328134052969828862260729945137928310751467779348270605482049397595173163374879932553559422467897776000758490883617969517705674151963637353140252645083058537772264152626671890223340722831248980843456353595793560159259085988623315747750704687961590029011277983387144961846272944032249327477185299976485335075473404363053661515509568248433363348816779454433843392984953196518211542297117853863392087506739031373948606777902407985679795357347402053867779148656508516750977678829980783019206935875010594904226225961259208309135128645862659737963446452170906288487966426430928811074323230102927523947648482544595051263244283068290360454937822966226966415979946797863188059493886537274719322131828885484224692164862617010591683427676562010909143898339321693396196842626679634914050891373546962148064901733185273414898410840942134370681332508298563876343528381829790679905034007858656562172892993921144115993762242761125074359841352501591760874629701442372023357192600396150839981983205752561129376876450116928337955850978473185789420608005665337151477001206458719612672193597912137356813087776680849623125944415216816787251799753650037050254563292221543802300729624683956024750513459938942279151641899126438972668512358892439404832411308348866917313240852695368952534377743078510134330123316850062685118061985778572269335022011412047181215732835942622080849038137393063815066434065514049251260646498771285518014223414852813842934210681161343320195038320034058065992407810973331384421052190604688460071730717093091494184216362371668617879741305009877910160613212529596907803970714586570833517667681786108668526475131069386188387402444699274317306546235081870958537659798162953187489573941809939117530197238458175138539371431326862556352570912149925538595570268264473987901738214359280134654599797791166118316372178009088214463398231053766443527530431780633570446362188812125736996402016634307420973959137160748016898904083307413661063160793756072878379176430390677252091615757959214041557138063386381516898400390633466431126920725673398989807893249718547594832950522561361348159541051247891508607373003427712451984374873841664065229548587457645290404052766103326052680344610246768490384268148261201676519868441809608066928298325191650734899101525398541252298395096103477761102097381941750143396160306003632350287084909373589344333834157871989198198235090675979165972465853613411315366704009154636205590852820376189054386350457567622320798628498711868740458708557153248990359226636718391218564828355046915002139449558520242579126485183268076219759967667259405408537517428711387656706449272157857872925403545122003575366247702811110921433359643536400481672523232782961628982991326187131818655819826676550996450312933477226410399946875941452651267565290827272940194742967888016009050809149974312973243929850215682033962314886331211648158872680132837894672336539276316093058822614772994792081464744819909867556463134544805205073009343036667722613462098763005862579146748110379999708885668178733051195575755590665697750486041021041982190273925137066898950058444310214764947600372137650067345501162208619102573001282714894828780073544362291654878758619670446149319402245072082925275597770218583504891862710442202188340266532395352242919975295191798601859728515055714414941385529458896217537491697840769940928185981274637424460006159998365563110270647614455349586763980737922055692565095275307682292751510003828031604656483988490640616395623488834698689498976116873469777423272558002604384610527713951911592370374000015078088129209033335321303873565778604109294602646300483427325637212426025005839660017382647402078304059773429536576783067946473547356105600659964072518518789738758013599940966475505200317343027746481805037917611845479440398885652476069160116204867845253465436322154259590192343347884720367469232175299341623111731851088926150222567406003567682422940251118269509807278724164769757409995728780707424744134238361590870474791289184184392078809256092885020803832923579365898574069463905799136264049593964935266645740627959963888966021907025574726717567952984406060239960902573804642360380493525192482678378126775941394390123222817104507164391980427623220776624638679485782964846714498512230879092939046512097007959984947102503916867602224196172641673583849666175303685762212097660318875266362424645456825965249198278341674237989815718847347434586261820492208797637210536705607046662322040075174637286235377267655880337997972526826249977020263137334752050051188380112224869230639213676333313510944168983199540532252257709470416796285671462592529502505466073489368177316433028282801130862725556835611889863877284609420679869669653104925505544231563902227305653910032543740168046901388481846263855149415277419444640946259189204454287824823471818254772959233524752756754306580706004729312972539297469220642232018902465882135217535688134211083979420845918632047924972630307484839492770319154140473558047356940460458351973113860069221994666838207374134262591798191058320693954058459559859688842760530633414655017317884353638722195108455014913942171508881942151643203376808436224577043585060254908965981475308745663138218584720262368802324651827425009820920081025972300968200510083924542110479749605250565004987014015394320452996464939550927530058037039894974804009062595016365448680495304329736338929966227593541258571636571902538685391473325710594782327639349192625521877427108688844780208685210934090049254317773529728667442877823651105928069442237294524287670836873062745702499851865984472855523018065964074255699506529431363590114911012473948690515593854876516523195711237316396751391805338590711470800935920402660413183658685145683738232955488581717895738124968571654743023821735327752743828899320121967817621283652402390283934361307253476114313992665280183593712258583580957052394297783396296377869368329570851097184410608494527670275928199441718959064736516965173098748825492475405996233915124841407474602007639806719791888023807727297603796726189458718795533085590630334397196319276362064032447375908559668095853923253880555037461750373199095308106242601573243329751617709688654776762847091214564279496208935964526561711646012577838992394963562177299315899777971530768179453448069301076406370416210706599207899305287835644084764367078682261653981627373583376422539897367115879065783164647346454523339913404233033042453090059832098182522641366730916289931703199216389698219852289647980093788404657278363974843606689709398159362078713947170089614752851683659014205997534097071441796972483697103552884468722511836485422792552772850785960523094315582312345096750093346372252102968344830102084652759834400071173268749060083604014012804031772643458266941034702470238399263170950922341427088331900261923009489300386736901939107484291909800380023944641731846150063324614250447128508179240905175481287406159619380892784875625840698067603218041757214385392681396022724310330652651220882363905410817709414853551492715990341823260555661401425068629399814494662178222335661511873536565805509082091224027066436835957891402251597990103642984991690128119730079135932366105440380302345636582968614010203627781263441378491679749416327338605672377334075187880814366814057265482796630750117033870798039938525369602067496775577547447637878112578759289792481176646638620023837901594154836966705708011751327324448278303523839434935555098400085400292819544469486929912302984021022053452664033902602554372030763459035079530055587237799706671498158840568794043238653220093115298293926929546775491971976655044508261862276484329787023655432209666546125737412903846918460472640454160306207691767603631488862885515218513168512469384806342198942555972173603092267733579098306905765825315865530791064023206480475915581558939670393035997038665091831136033965989779650601374659239870228894993525534282125076947812111888774670553156768325812045770635151908295104041922694421305282984071311541896596893305993227985733674377746233938384053962702802697340193524953562598066679679197105163591406448571273178261121472722528230094950663810179849498121489132202620829200395087828782977542990482987303762905525565156871913729711785205405307369379050600580503862842980360361395546591160424797159459015691496875128780744195014144621697405098115861656464554358171229279259631871509400615610989023373102218440046675846178320181552776853901174196993778768422159605465013728874374297423066420214858659951868675932176254795047221864448205353621988417230126331931414613132738673059804321648338977336880554048951333893233574929680509724398579734179588386712166652105526323074502777066955450823825385941618424854299026692095161978474941214398364945485914153006828625124338980590902999418982228318834625339991882433517586893696576259386025203868349660783006028740249275093648239969151873043019289591072484202984188212811344268111501324606497108541720501384825669107595632070948277544103122311476806458751848913962012771525754959096822531115378181641779943745905962075702268225821537176909334126275665027404247634904489633169748128783854773865082361006050320514350752261371525046982192841742772355830337856091072786347169049610124534568548193190314927362132224719188865761483132613369444325448650248348760798499972492402284248508359142950693877018496943235188476257539931304974134359591019804924930962194307717973571217004325630116858572587220343583423110533165449020486768265644710869624010055609247008053375232376944117355970008341704622484179104681554344157186459666496160833167484794449246507249786482771190216542246886516327427586583388821817374220981697841003886835779887061109138790023986799454133792456923314248231529049921153513222578226729241576976575736548228349688011611385527351160014652175313830157146868756298287291912263958425840033843800135197209282394524331238577808769596663773907903877191866573548599162988539777878479335436167849701151150480798012062686037951979396174681755223571639691814291400228703021084379311575579401812850021867572657086973285933253433230760484954563933784740650233815526926516041898355758521714788689389824889767723027362865925859677891189567976078805402448720905688559242229438508442786982262729060199211446802929246091349559991068588211221962332978606305062851390999138501956147294968956672013333988304360598478378224379289837471218304453377564035078609557752983533991645420443191554044433395279571003968503877266673647052188191573475356643610648811831205395903697835925163465066700044620934096196995424455989488795353220220134325417339293523318449679831021035422113137972406379423002853195330905114879782495489299483882958376030720894098407345070006543764905360404058268506927209060083398560103453794317476889111046591101987391334890004543792702489299881243132234685331517063370526637799314958235350145020466292893072668234248769362679278136057473639908194910673802909153824322041680457250639799692790767500250385337209976147468451197829922355191545954141865019804756285087537327324585246503876113998172495380626711249289912068551096281885195768285086781843389707762847437755336582788818872864368605068330016650571484098067271451430849888750544535551420199676834910976451965975132295884893579243002223732404830697270322328205626619850581980752606109328387748023978440892101767549465500706893325722449664464936047587689525660991047702820380745137070043404983235588401472741929052273773841693919837522682303207990423977518153538759304653007622096110901943884326325926366922980257948582057497192645490598710601655338204244975621280083591733393246567674174598984076461332461601482173250417836069231290020300892044526426604394102537651187737234232953041231039792365896684573753032261780412105318397891888081371803278507224635802295103440526281752041323611856296869477147846324515071235591863739677946321052552895979600118488518899781356850619938589982137809836196452214544804318574453961137079046918025735007217951723703141890189379745260579603159960633756047056350457857966820398396373001802476549403622384118420183488007774335049364201803755814284146878540895743082158057837123778591462937567975288152322525243425952955669337995178030093702965893764072801766302670234395392062894866170374847568177874022610177710487753694112865766236167888769280316082407106810366287809080866083698984508445526301034868804725856945707752363948877204011342614347017922652031907646021982943142543421178535532871910123928861780423942816442404167377152529024301802537816324102056032558734156633046096960403194326680271050123632183272152454452307273064646908405577239198269717243900418146746805025554211872448279465558774963175212499457122996004640886848116085850410795094891319352950161602010564273215485143650430556170220875348419363453347828525901719158480222703398105237194515139133788854844887333574438214439141967956912411153741000646286556158514466281202838533615405806110821141430606084771274862665053710082984462968965256353762960950453110561052326548673421845295504711508396925682568740741019651588439449216781246519564634180355543176025482977336186625309424912901303984149552761863375665790154025317031832910355658361465345314576543200000168533945168390018020418382832934546765228421461109603486858578352571829795030063502569058441039412420940772584974872618956863954822532889153866705854924963646304327979834783983532060983712062852167480774295075634799058068375431646423176256975538308466097023907514391280151342887145773170051347750633177490902236311526545565221208740007045147859685157177024960236762204797097507741710935248942925547580365525826329118145199179580437341505454812191676778326131871619862514026509902570638472084755292558690845956462689580252838390588307338313632642028828919595785252631522804047107930188663853121406911553079888532897770456021985049169579005574668802564614898882448623443366721487491816158530279342695801773346367110607714772006495150121946978606308738923558016291643639093612655038188320238190339573216497109824408593625086746813603439777359013280265775766626031040438109848412624841587644954746347258634874101948913306971293329481689237237537865440655256683544859797332737526316775309412151143538807652693688944536261308834878118011932202280273452873963441639046328399585134412933705156214872949440868676251762688416381383036734844110699493219942985585540364092403517411621463576246614605639577547749920506991410339146146311937940749741886655286060872435561216512179675661678797723523122966221797580037826851139861113854129606000192189510789887877362501361454021723980999214550731323079852910202400024491657124558584926565724444711493456882855391784671702009977842947296633220545947037068812062452670624335081033710844617059931011955053411073619881795397090528277862653268936786953240174577941758959652223223002899896545319817011703422387967956870851934183393116343837710774982652786493574016952219638892478969578703285870781707571401345848274453855640594059049680156655231579665707093356413352207477644729964057888845864319823938746690452346531332315014554004762985883899443000522181044747612306534491142124179841105976289136655550705522402774508962746878795138270718912476830592646982410003586719484833367786657981812995577603279342485914122965362477396877843661119593366611343059591255656607923342766387801158511712855211196095770430183821296279517624201887297356048620189482542043781601082216866171452913296535351211497569929670541273557723196248466104334853254890606384430939079204353388589469372801561830486972886536585115965998590853182073132345685019280486639886892436539020100697367876219060482673048730605963205605425680519063885715552374120858496371864444007682595407579867088817063334754804766653140246309729226107927915885547660601914788600113519184535070950395160136115103907999989980762650545035779256557903999616234675754843111115840422228275594243093456521201033197382981212216537107661725708338017956307901906559624963148587064147067774725560742156131456594128381887924868270295407820735593607360443425199335501696098941960155972185840433384490996479884199420209636226964511870860970017936075003680970993812977584852456850215383617978702879928389237207953300332599729916613030257041399972517228579415618309158940541346434672821991877304883039209034978950896378926036878072921591153104636024996543979356731249119132980129765746932030901275281361613519134251725739701360584721101353461072874491698947033906590709222270481456223951260344411274967762105494933179926077562429881402071146067998101122694046865982368347509609556082420334468470484962199763854024267893582099320439762606509984472449908745035446907960266950060576375589781064460767506289260903199366548448242326885947505022635889025310474937652836237309501159767527974373064806189083027496554967967952322793529527449236857282180003136061723252247991434797815637874671315428695669761509078135854386902759094148247310708494612009527521549741697443960616322553347666166181241935303131336645110167249897392388454046597041967620695744829635623445765395633251360902251880296111514282011867468973558867466857973327311804560283808611380513303173044506773718457135177266029315085362069164488373382364645481153246900859283628247715386531612873840034531763192115241218309761251792106921151773451259378503590184059269995936557492527635036435241668925831902178987964121965915534416081138477359165284726046080690104590875048452680758598561820279003998809548983576451487810378341559788284752539436054250884687315900011971850146723122743137887960851361587728887219919545221680897289696085425079532003092498461648036731040283554447821153050041667771991552427914678311565172276746000570710832362948445690389652298674016291646831373818410916284814339861253910383092242810743752418136884580540774591087187506449732323822594439470370232975133196102124378933162674962612970825085781173060065147509176934125017986638136920584355087382304684095825168079055806639573077312483809237749573511402177123882530256047731615795170953787127546550115704381274545748237091611358489843359858117707795450438205133145833966562175838858376986149706494203882115480907627685654346217497679174460502418320364989081422382275512762085439886453930826059978240546425706169752548391816422823967148724514092836896509811937958993549579071761865277611061436211152315252248179649530634788364158835339126755514854469181352335336276542804163361803745027149227072212644393083709394932884719942327096918883002561767698019556093793447916400145209755082287376291901491539023222656119832395346354904260535196640265149510721717817293295615058744041588843379657977645046528023119326035905305159251158859199292156878698916909120661625769606980620246196099061824535694890241509759565193459251295432336369906497642223633724429018001906308950203382307296562766572831349022640065317199484030155771260620551879644890717764287816147309798671897017689611353720980964298870788919335334775151194828417057537254208243665662762612375998020507184916928684721021422955367738085067433509964923624976300050808702022072631310434979987834918185857700591824089287517414969065003148442016078976593625297644266501096611761556795852258510857639035061513733707330389121594626854652891578861047725662919677049235818629006620168216605011577770519514888503284138549712259068650977803377191040396846016678581598968446152713544964697984086183320458357828415785329248014954058429918078472344068752063855219068797381665337459477510478176308192940307672668006570132596585428924665954858721173746382835377936818766933122525631081451368182336765196511383029142509537596867184458364197093778670846770342185231275487385787454874651741739080507778390438355099367130252555271870111344294576907481833311382462995137272343993400036009905372023282912114290604771104114375288048714100842203952858296888887350128041584850944617655960129910416422540835077485093973120263084995764593441435699021318264782569383239078588702790767412833788689852856207458711537066536002686511562718149965819636641696300665215240548033551743920987843892350583243035210752365080075470675379322077799367087609414103776780734688397944445982330380908744540320112698681313250060508595613183750599855606692685638237936425660565742421810611758209271808498062156965653194453209624102151246416091811770327172496834131596830038687799518445546612118343167877582239035573717538546941197675049211994526068613085462739662973188310475135023595506424427109121879807648575200581504933113865627543835839947922567628339518190687669765373174962242471927429642973311208827094325052822496040352694298833628203461153856192925321779738383553707797259356192685510557115089452241912050587690774910615919230177027634160176868026121712841367829890459086586187507451521008977915056170563711820754863606878851282798014791653256167525603721800661587415254121948707145211652512851215903090712861873852230648889191943466621093261050290080939686725918613802598831652512547168712805343571933730046093388258206142320026308635575850511565521036713792430882556471643447760046272292195997922734906960225906200345957258112953070621913246436396598515502714543309395999079731918831063947136389343251750160099350794301769955595374025723865562296665978160055875492655837238874658975990355888433828821703184716665226899991903190231366044726426816560770581489342950971137954360840339753261008130291696185692028139679530153003438970573460507180332457600039068825713079679103915572868040045894914758475895316548004663415299988519000119833138054850674539252568282749650360346400761213220921713197389258854830341967031348500813079080648403992929554158010330732695051266216905605372529113228559196031772487174186981265775219340807545297509192071088934659584217750071622980796872360299480789397379843067444288000171749256245845601490620816547631909147082876728637205724088269320653709634360047082071333447316190780989901834168961748422036484609303684737386009443688294981869071329883288141064326012813088408456282554766874040889860309291397136182694449202195439645315363466414110782623153183886213780678793245883617977169306781275300244406079470276360707305768027348476185710627190195958026423724537029325922423504783143344801383275483607709080343597701915853235336009927459201122052317580382455465501433642564001310090286775444397065781838928488982613503419673569954548820132126397470043497742343511909752430310261724772719601639648894451388687941694807531680811573729326571485910455833399831641579988684309916743720919198613370498567532133666690648887177590083577056595865347963071362405893556374467945571259801015075916970476252448024768297539182972103494470032198959580883162474220868543406110797120404979566478031930278070867297802401073675447823074028542550105674898230100276925405962371496272339193277313204521033858801227577829081956522728696892488245303946451181597651565449633201844775462251403745659750367266784608702696760725340164714027119243725640036658449173286864983696736703022603654327373938224849938306975027242126397494726657985936032048246809486709153692367981120747414549750636441108549878583007388166284569211310135642497432374905246966501002756629212474936848090223691550448103159743106445679178854175086777200176022139875520996288882889959893854398465343067433683017153947575815502921112775520245024425945900962054284438908362624713550227193792020368774776805901822786313122250204528994223958368029536978439856566364589827066839833683238357800563283597096219418432276310126731187493522404723339227946616440736044362609067342497755655019230111736336029238802468815771935030600655887234506614547012145896965516367354590979734764306844787515795933234373783567845950584306393263427016318328462312119157514469928637681986164906220190539860551425376303099435194029952210970826418464354503724740105340375961460194928150703123453479215088223414002804073946444499029608254022949995748231730437059940680926220706954543192137590557067064046123582080501961126837117230066608486891364962382554183429805604735156100662802683834080550730801012452999314984649193184189686570896199134751653490720725314187820118265500293252941253820637062970682712262056917459503920858586233345613829758934311997685839987526763410085664234964827206691916739746763128057087749573897872728858716667235477590471455472036846984050228899433801821105030126343610054091016166779669172568969079553245540278213608788538897050771426442114176706266868794810981968831714707818292401545724018523556406255790702084707130310605012638260272064120292791903612397471606986683648119173805320324690853043549026840305419236113401036311550190349870463876347275878458078869524781100938318593944608251511434940580913049285332372499638596981813929586967648636338474972570744305255640296028588201563646854925753120218918535161162323381362771366362682093082518391884045090419400810446542300839263855746111896615364134115619173244873099705838046726110093310557828625951591309916299688653455552395866332423589152088282498369375955627044058290523038552754773981003184884988722174870549236776948222499851539988616514603512756089304258228546401268450687207469205305603134634419998101600874912596628206789579138815837225834573040897479421867363369542215489461149970423642124373506144688640504841404441467244716465315420068804792123749839028476926320541660206921125442064747541072918802939728280681149936242924559772016926586633018824570978293054447615101091746827158824327517598994120278630212779559353657090590548146632483418658926306538522726830877217859188492046580008203131896653714711212767169396939554755675713996974747155418774321446570332509981863935346495296619124119944259647490922561347354777580857448252273073974541413186121478202020717625886166989540728412043679297141788020469137240618562526694257177578438775970262591450752422284368856532119819517447346731467837860404299416087724692486125520921560292662293203746391291309189880441569564177314130886558475361629854837406873750207486076666514210107829761714219965423930905829496100345828694923455208171302836484610239532085660707302236307040548472275050987464732972762629080484997134129135689531126628913181064477111029674949368933930328787154359506886929295305288729770051844312815744492347920434558837200131097904140532271605784777831286405911572864921600145411872749861021667950009196433012071892542861043919782795955104918783076959376326286264743024122532071072776994941395473870440344147743990091608472517356847368682811819400278768058824920286211341588722649320701827224700478939404635782989795337553603448166686228386193278951691354146535137187400897209238516867776134739802365463666429221215309091800597115855067159267732541451280367338402877780043183947765506579081442425230770394474409684528024483001093588731090024457428061300082715460463506317577372601549667415423182263603986293974401803796884455187596271640839691955683505998639092543591745057259674736065544368189829763519016868438144088607218914417588805359623533084426323980508665206662161563208992710276232711049187759037763886796758360587393790890677704297701591719730138293290113012419849296663873140617376674557811778195281999694496693660973882479129573437690500392257040867045917795796487499522404080209928744510553916698349055270259168064115268876769071326977155683332429048721908960588394652798854612758912640597571831156570023542005872568003806495254285587397651858451303477732907041325182367778435554000843452324334975434392479694122605216704621208327207614990689364335428321474956533087547377370982139023408568371156232577155826471901405883018023462094474461662328248424474251599763978293865965648067659042561058640301407043205396644483111635433769785117969446157105827971852232788322924322083627876047275964140021629874184468969225047728020240610055756670300884815920543010431283002598312836292310074618340959564121024019360011801590735174217063810850682294749703414009630303728304906892696816847906670161165098917195742071139777824513899660901328796747871112595870151857458416656899839670373758313902919042409820824481008187947768074199597396180569347255886939176998508413174046953874333749481148311538664304934099545896613203360850090268639786557419463981948513490280169931207504482949836111173474989076570681666515805680316288026480690688816437002667699788281486658037147711971366027062572906785693696392930592466645883118862339843185783739108296766370408740527214472310735261118180183796951588228553246284144689483972825923539044233187503325274729488458721104561961999193795068268356874527795663055392670210387982750032738541001205648953754290311252577200213211335998995451961600842132418143573163478552421195857049265011194059203665568556269487858390249395991369884525984341170183994829073436430919551934550426914020386882181258512199828409156049353541449531047586125735633139427712114150672831012024810604776023194190790484373676331506914154503742913255044785417490027340137800207416364784722656310673799734691044031841701534718825750285173297755099449127742036535769922546752984744480193221870300540914212152044189621465676009304631036427607938817348754109551561615849442549480772538011537124866835239408380389621711246477753963946554259765735330163211567565890420771248854392429731281538860871426440739000272633381372739338850215764887542376230198236120396238157222689694003711334629921887558180862730078520467697608073754957848385791167364648180771083739578049523715577284926556348985665383050023904097519333854265199711054604824811200719404854694678691185534155148738607085867807222703214193107914833697196755928913555709754494290188218736952536483985234527339054845849795280544202209274257924478581172301564737128147613992894323240827549399998873398552156220890998963066296887469970154071440863102061123440446659400064487520785160995601862335829282742327063468971375424901687859548113063988433223874367530480892746750017148843028941738480887355786453054217173638552885535596162355768275768230882008104053969452978788271737263663413884635916709252555587039913415472089598759009573303591238606133261979458299497234778197380955563957097195874362312942374538855891701740857589031585244539895053358035966070944853259201034381124195118067315039065526736043573973088669645890974072247508221488060355938796250128529453325120733792876887299675440381695725027688905073092306126677085663922797114430594834449185573329515268509881217433994209540983372123256580512920527405293178313278892141446018885528450536646199677506247551309338519226974066260450968816636772969344192472589609131420230425520709222111319635999476933903218053070081069891933268038122187479658137151060742770862458889562010475928117143278774556482778077405437267069505917599603174946501725587850961897966997598255508830895723289316005417390027700946783552808079428619023549089117958679761543571607760120235772281644764006222299600368211070534440230999909355456366400806833522951944740391620001885664840690100059554592056056548837398279765004199742265518684006362686626124830698791108851129508353185131503514254957173150056772718772193209832618114660846572775672152908690054213769104984249283513952286509004386796971550578945017133535698926113177935767062902426267056508152889906265695534609929485438109950542255698584269574474952642421370378620715669927641100950155959484393805893353247430649431866434708346167536331819126299118481490258493320539316866631024386495419115456837818622717539919947390904390817140513260281081916982181886989849449404306750769742925339957962786870671485703147769855877238157430508807095675304870466202555662380407262118254308256022578258500862276478008133303885243195960556969858851115417081024858543056428313531008885631539830897897510560880940654774693434167425906970409856483990807569524793012348311830404561658269843984883309046249194886177042382966002431688372992316227245771638990857474737743882385674916912262081653276859262898287553625090008216932303733879010133030332921456412155442580057107638727488918678216555702259169731333117444127859977087966600285352827307654963313199987071314841804698386556377843152480752411113249259113810951228347580861526494685697118687411852050236646209718274914262232718730049244631853135391851770205115991222286430173954104264864484965339246960049462494582865794153099224614599654369045359228115510395115231048074801035049426854077687229042555095288664557515505176114611347910489800808258442274194092455714465359457570672782212233196831837919518380980735608393474950914839454347948516481917271666179084050831197106090338113139863553715695965459412493014101188498514470180039178430899202443363019798035029716459354231128371419772749913695373191295637827726908372830801253772242922549362242865990808833093819264615065268173785611844272954836917443952901265874342179946560950171452849273431762275923518359834974125599718157657513204175656638619498160681462601113326123000507410316128602860357616675222660796824375443096580514804961627437746206929950041871746776119569283120346778970195187638327607951338753826778631231617907074444939190132551303283398458662766094495829777361910338485205373912318980059480325574764896560820159233608977499391146661236923773989431109917601344651586303451976636253701685971631647737594943551680973794877951993660720164254770977917156108764902939767799366418143900023946555245598480711638040685124685497610953366960989539811525042017298996642080308190063149905541883683477603431398856496726478309165289819885953024672606383899709896402666957248486943847214814768302401478316745954282489828221487426761305661532716269328957699444137208131615328049862670001454766380010957307165633176118498764593515119781077732596876520114196302890932982495889124268818904591175634194577193082727469867520799819352834979195875062236153761092992098126702445161056831075238094281730589682844918675122088933553029023779061309277757803479219623463880814270006752488187371402502951629592691432159643602488774699568289997574382089871855576270269241783875890575388092577128622912586618873256375767247246019850758142759348025720687817438479603731010630384748288407707418104337810243065973625773998701015309360620105467765576982299911149675345321717229985544101153443831978574724039655168162614951540198200471410733937031182581433379094298996008019335527801632937166369156104631180834056006743643402732155244785591493300037657569433698048562690279195660786680050681666331761795562743092533120100178441180937586503219825436809497763882334980303958519314331510813004898098130528861873767106942906302113626865794591894894148254776810764032123666313198673659701824422871452874435916345516049575943700837367150257134747732601995076704817237114375596637233248865009704315143763507166120046314719763208925051372553759707849100428446648585668245750425013706317899449520235909782661286939336368114362670342981426304108856746390831670386182262903262907563629310069694035861459074016477247285787880312981652658937049493075781391909398307991538343677467453410077147358852038366541530179170765260058965981773905449428933252929476288347710126586011025392239675924269219163853799683066718124922163168490634573847176674557934533521567745953723714463382273992854529633427908005761771040678317146744338742975420968045847318048482443382322465445003999773663755404287340835161412981082291686646789272497134369718410881669966820458727694333524081638756339807241953251833244593747152295545151714708960202248948688441909441197058954230479306470243152066567749548823758963385729388761700077759741487598391534282156459907803562573133382220164654852369408047069361556277422916832268966644849201778403177278068762047882936207723584608082478462449840359087446979890424576957287944822375162990573737369240303791221737848223548833981739417854270041642802208232528507202389715341954550155536177832692917165567779894850171740140099883020805018713612947611196054589770034625607142375120329131654447331432837198810649402150585619364490304925607478665502269903383579367381051681478208804590551701266700914742371440359158638505948527525483054988704528296300311177959200745593503075534454441286168044535462601799414204370396217699292802819408624310145429993985818440752660912420500935779977691424506646659904525357809195183280219093086762731332293908468755811370571377363083703391737683604480396657421826054725793666520776365801994242563295203448896718594540923016431075214786546073334772825408170749549282507742959049266306419769101579498214071104528335042473293874654208731332222808304548865586418021183879519701628505851087157841624138346241134095207956424596689489773561419049639864452238109326339917128435969699242559859645784501654921208849371232254599284072755265923938955209900333761156407254314975935476180027449728671205284872987981221258969601798950454122661512896568325042505094297573778977659186996070233519660905904141631225135463313754303512231292250626141640905283731885588974010744041321667299132008455449763978593179659735820187086796592029005452344472701496537819158016115560013057583960340891099234919779048076140900457819278204954767091158516039583971916701957500791037923786671527646000044859819939509362309984146828683855007378467957086880064636445416201062968308245887844346957673336144920246232397134989478389506287398102073963920113489041980504222006980593024160817976075589777524207140980798970816883443957479765969978864974049109127351705489640575168111688917838601656015074580837512936237870704581567436170488516375291556609825844911446445465502747583174196060828152661622075544448896446423250585459782665651002355144389856487976783920025670143743950469110186689479461411153615626635491705436933138971302056010797553205669618512448377429597332063542979858009707267540170773647143616258997174170519502387696745350068959587403539088022299681299347293564637407880657101892824768098069659176564744522134089481266980983997794848466300278997109273040008609606978645111997538138524393788916507471208944082590167522168667715397100896407606986068091845555362790310890335224341283146641877090460632022352970502299404062845358005475353219660468779085098054481391973334408530495729042015747930137622955653374629267933095325326663840206650306466910624844242772521777766367492718459159299706238241627316041029496017336646501618503622157669880008213723238844060947136601890098746862059049954350284943172074850805135321841094756536539173496345892645364355097384878597121823272068898386325853085464695704651138771467285350711878204297488517441774535459583027378509540510778864363223594162937578034988440664018375351641265912863355153193788862374952016949064006504784492273091327856288589728403699482938037988174236422455938521333221568267801266795520769223973750669154169538596514206143885939069595653341201067751900331664633427516454259053404408191240737450471994433488621809107273977020996440118687848270702173341463748724776523217497965110992241909030872143919702343653691253542799290307368300236405126926773503004442135402197973761733053694506989781110010801830273781372198438573904254045382221591286681761251744062055469015153536497179916096971533079887007863775740270895034875190004431960299400977700727279027321718487858639092446345269832644112009129989512110864879654714027189326463617909044687157252755128924996231753065690251882931244399274544252663201352409221781075672279886350628340717616862178960920809862102193755627029787428921099739052075713083620053606589458963881072712023879337321051487358188873845713474432368147532868871939238446804552503436933911989626288360765241975009689142115807357080183049512656743529612168861096445459151014667886252092245069304681900647262799426454288948904673049890034683102770794758053946791144363315977767349798944036185695618714714726216556955944552732209489995331686213915930983267205846207072019178150081452222952805974550050519194665042711172039707609707689766414863086944719657096711012911885761407270863763657313285537620209454129965287391298702419621407786703652198050696843794166381871131963578627085219409171509161445034864992781202168138798255341336953608658121918387303404604711529959906798617838533089533143074955618563683710850667502531644031788597789622078714754387425139209663765796113294408333100398533061845159896232881524610584598406770357743329825902867907019690583060731996173282498836607161859743662143793441922060901074262045345187587207350322949587925222603274199333474181099276918432402782167465503117342754714494619013223155288398076803431744514527380108193549339098143566440162150245903835501176217007875140339527716015170437337169903158402182197542038840572825515774150348679559954478202411147669648034695935269900110530211667120711034545726327911240473048861077249214140748314305435809128475845275125116014771477619362153739896985356787019542861073585676651470422918776662941964822411489283002609058463718802573762630548826508156843828609802856186702032599853794062079047671682698460324708393473180283166151745753175513195969047527801121771089784434346362245027691915933651615441267697524582685612768365774018511779299519562216633193233649010582849923639596110215857054947912075826230924430570047839822736295477459709118752333478521481415462589297071010499903939642474797825402450942140863589393263849590697257802014474690314003996654629301183433659591827541860315549599460000938483392149070820971826577377624693667210956072301200583495286591320930099728167202533604102368975216683778359836237434832940639969323958686514481749900003325846011794829243552533696456974750310590728348788305347469556370966561370789934380331375007289950873466978995491892035818069481492203057939300329647689889103303462468701773886772463740346294597207393385731296022641520720461353844976893617519420718560278413800297689334846500759627472081550980784273725468318203602799779304385934227373103250384997531333590705258923080251218134960786440273836713212285822497111913554478513700155817467921893295895068156063607601217844809852258914607275341405481766390465811294678193091898944861101688851533370157849470438374947966180111025624538559386456857399369485879512329735365994967756339898748955541287795860813379660075309085946468852263608858168632571012539320314647717514855957028042440653315893261618113784113546816541690038942751845676876290746210985550319415510387531367932979476268974850460045521600372665013958828345372459382439306551943443813884089077041510813489694458629173975292293604385144955776219684266043076742825149581648108700225895384853272651151190685304092696402035840876605574083984057768217674271091247039907087741678506266910319492654861343884380062051119729018394235115426979839314895192763832519989809910300056875340330426070351175522456445092828417151455612180491576739218333977896891536614825262745688122661328324492035621456238571784132121505008804392813605682914286467533475533783373921520075012519389026650914840493953371018357111671509086662886577687694862421116504779572896558527807293545163354794050315752423518935690655879376898048045684845461539233707515141077634397324484013447240590601839369859300860183128945109832781725139798496095685196643868536633376059291518842397508635152615242709565020996504279602446994449192535737398592474306180148924024313646410703468785174589451672233204191249862843092289357160973294349291479847533300980902462223810728011820926683474514339558769868521244627206419480019039972866069244454992081898554982549498308092595765877121744147106593279783263960019009806701699852524503961226788001252202107109442897751863995703872202176957071141723049245486388050446191544687486585927305654550512364789562837199583350876536025240117907214317337281277204988892746420692881351204139255441532750900969953932573127855566056603215910140292450575391440624205356795549828306031075846113511671440607596049414305554703064697994340867501771444117153631591825007520672309208053719786160224371431575961698104458340523107013842996463767918302456103590093349803772878639218498746442290020968238711646254330809378937934722894479482988434019804151098335444806060249824356203232794714752246383853089108260408781998926160374807897244594554936355591506264903798185048715734502145346698529872412703110926376579075263607459778157495290681915190114011640764379774362653822139448391565413188961973149965940609435062318809771885344631600148341709204228968617074286687146703513435891258479765801263195206038672618915443272703177883339803223981945642068917129533012794085518251123430166703146153730744565673100832903301427526093723696463861595888641624460280238161977649567139696722020663957829261881421966890938664424482930962286714985967144386666716827722140427834264842964025219663227484535951325440863349140460350557862676848256015742536577522346477750773792802759962739706365884552721863578158071681748011522878325401653855558635756126532036651602376343787827489470581733656899369135764548419457124457551953785984980122804417375539076041429806780975181854170708633879718452543231801275181002436729823901860068754709235219835530670241843428356060757648621484083751165656889151412924814745206354487491367295312640145241005006483600150485325409448182123509900344250777966275187751338505066920331549525746402564249606427837618649134110835558835765629644576713905425528390599005473403535698354881632544707622817765699820573534338608494948482022948383550283906081353738957020867375091703982221359990731425630312145179663696505608519693688300687724218415798559135277464080104678711701183296668472071617042782989642972904239703575545767877525327923797682483978437264210501301615359938890228993908052439180235405327215713412608506020007107551437032608522348700701488118598462954223688639424535370319326164383888294665214642639649871668870500322415446261638160146718723135687711367716815038158979556987325658357161117968331367257758962568309601504938398013281534556514192310923656750609972591092259357957275538691055050997640121387712151405786307641244153571724183386556436850463322285294203438585946398404542868192801303898253153438627279671720804377179934346187888266469327008586009603911392561347190722041774046625553405839572849642576934657047261046272838443991701509586937208358144888418485821498318896443697920196478657208712436772075836619923704437673685897733485682136339519682015163159726661750962448221646212296928018550721566637044250762748708733021364660482941438114279645038207675267797304846874305834646039380161657729663507752893498080241447799837722972213813599775007981411736939677070286093585751711933875261766497269741978565465665125659779559150489669416731545620741271643898028075959366478461575617907992818702391935908382500000572562268257710523642107308757714604245583203326939874137521475304169721093447355435971755685190241085188080392562066715899761731105261386787510579799617566813275704692352497800366616910789935348939947465365407398414584479789786875277239416900035468251531766661228674365430967858898029490409758802498409640241425541303342994350423113315266084885370324740920603285335084888987720298326518112759238208062620053138676559090428378330311299180248896621446749878202702076089752044374682752724923650605041580736356234814403029340118910744739198060105885601562105505741713360104235481945978217938522699519800813795297192674104687033864451408908803568231513133444354700540753401262315133878613938625793576851194661535406077200213150633294998370830837982860065966654030489998686559382370436512083154947186834750312220005117180973556967772158764771257839503665165583191329352057447653712960065234479465114288523694124571034265264852281497943659182700649071970140555937686795515677311465388200470128585933829211954279831184139412170427030912007182087654618668930211683426305589544280294422441229629034632842610132142914926566631149566779549116886119310239193592107905256103162397910558375657215899550135398657676612586915830328413304543632290142497953716599437173698601132491590905572184249423618198223493678043172245517359198544627151312973998699909982554395779689165822763541318607584292717570211660395927101901574099756300149005975350144183107725704467928454131617040716828538334511417070632578479039467267409844678273149403999485723057135640173947836218860337697446364810211142124909359754245417985506205595803483108599518861341915826575567107644072726015225047381465341279700446323221678912641276837848397244553417625341457689326740824562404910078911402137036773512337772759472960759621904061966352356212967283796461775809032442201970359865632193497736314099544923254634730496847718952698580330982446164700913535066535977801085601465213400418163016064465861262218411861028712976707518632694612613223709697340405879350967079768996015610817968888474286204629933517206143099417481660768972745408672048335424165802124988004935934948194740712946906719172464564837761833366493985051213630648014743282916643768063124049501325491319450955290720686179636225511323761893634141249079589739891359333851130437050035178365888488632599953305912084610722433193723249019489028602611996047731284201725460243489135823617419936533636164018836773827257919500260213526169413468165605383553832686407815080713607704308003200885189677927083330596628467975318452297637848897253589740179139117518105318449367042439915547776890770106214152188127009303476609633045787444764134850066934211277865676868969154302415007639228863183599211857762116387029237554488727014551014542056387578191212309685742555595491200621145724149797846338771582485268175056220815274173962727170781530844937106033529418337626544258768790648432116952131167160846351843997823876485326237493552065851742099695391305831068801783232645588570157464059934049270911697976128042207791883247835457515202206787528293003708568727914460302983541950129079728706937430640967720108173384633525394527635105884508838143261160148338404420216132976177944830104606676605933726331976813890890991359074739967688520178262487618456885051194206646809316168691432876384366039810654366793623465483727513787198212715532611000794070396387576853978831246595908989220373893503331439409944448481732398983395946339606271861218908872823076832350323712362614510771700830149816789651738891251592802672576876641573378448155987737297308420596596414817825852390486002819661148266912302834457056841251851473973077991377756362959372444232100926989142442203139260392904024887296904099037267927973288230529991552930255803647567373979939604255371739648068867373578230581263207179239000245523736718057408884635534000215071034603468189072256789517815732598658906590909546071390583863710804876423435126051687427251061418397000934660315922268210483232689955489270873699114071102362959682493326490823855066795040112516422569934047643743962738343238501510262225691726857322429096704318181735310451156865025289892762229447439502318243084388586067329399627361227160890329279128769220294146661983458447037193440877186220409686991305988023211050754331053325516549080371310408503011268928060123505612020637894870967319284863900548192132051913291935674668571684710281952467482312651242343630714797889974887149837068584258878657151932683670210123986616085114999794618149183610221490346948265640957514615419811157406394336386034976744355824345909933776372566708202721310120042133312160393716553131039412004828183835318411910546187289826361771354440263866130228744258229514756969087582221654873093107630993989215090481879042409921374957610056248998211586264271538316999500646745197154963242896532488548005164047407630492135782534363656738915961982685560392198580281900089567399703168030742028208127957730768418820206287101815186062174738123633550165226871560041488729997957829601700003975543371569022410704577996184128607915256363568221498018380359110588704130400445998713597574142727497644545723267325411799778554848132682293224447242221157577726269419193507158573019941483229590034801969441512278180308671255108760107459122014977404555903242965477225532402605033718466725940390063318601459962241864687362500973534481247104428416609261026098030479814506904809389974266808581610286105122704191386908104550858400484484681988073469209097759458993705237410918684556883603088399465035108773705423257930963003852637206690420264207487543711581433881471972735481350956417369863558430987577853285886057299010744056196885874837818131978370825615702096226771643883592247985874878450304398292426485470086833557141624071433210441028169338908111811300838847324998593992571765873296372273629040829159082278323864880664173040349983025947754196742890024241313436707476378607391554084103142530615830892288209316756495667748889771775020604247614396423996001691671417520958420386253532096977338927008238164174422871468367221450281643682900070841914196818875500849430369965177264782991063408094040823871380636380106343099661680093541866803958962596866060300381469053379227630211330698865822214002602708122997987934229010266944309804172437414668406723023408921996838752292496601906078058394327293479554101715607996352199202881373745536378146499910823342763790799077504419271719467892954536883453466672829030270089012777471221816332330649887188483359413517390392292549776243943468889942267312201402462575236466064007795811290490528258099521291060039678599244337803940792767737590407943667112511122263456606856323040644056830698078678692228288176535009975836861137459911949670589855668575025098251251821557242553532045532658286724010980438580227580452739574947829702642875963806728841697668203984628842578803331074203874783290879247686758393224791169448673684797877721923951984253400155026651981512218106926135770459745880143754260132104811365684420528266530643149794400301443496905812236901466125038957544488151749264658234930831482845055357270066402490842960456751400683802910704264693885526473016586250646081670341065332445882445952186848870362147012036215149355053360791477670065959107569576994891504903183474934633694042541479274571411831101067477517397746538723938577038466693314048059377105323892289863514293294495230004081827440624561396268552552632617750030351630986233104968548753004679104036458602826721042726317476874255471928008570843024126439010400054307290225460285040790424330382541699362474080229639686389538289775204019933885826138410407598731685725962210830900423945094713145158120892306413279701524157425942489875778676687775495130893417097126090213869441842832623354234789438981211741397036681861890801246140516787967392678530271634995688731763055825737354114932546558871899864502211013676498701040918037580493400525652835582653639264845853443410241696796393905599477039874755380250735874852895141481455776408913645263679377009920105865083724630279143072768621719845424121324664674186903839291732668965197665692066598224855731391714252718104524776185846752619399232451303731009626491072753958971677955461550956533378244794834874632750156240858312596943277115381128929787501612064780201182503733410273257280051817951225852437809534431073356780758393454411102594182189962617763106662087133121210940006496552680321610231444673594969111752678209844918179923902955282831985388259751219490698642232707808019093014471788503684202205510356705531539347007916506929980524402547923632114071499637900952426066627940142425121567254945902391145898404529082224831325270755902541701509980058897375550994462960841075517654223662921252250409899917207290671764785994437334949765710921613583571493130953603524687850488557145820629370453813125024079246894937031391968658726572844255941394853420511361611873754851400667579525077716366497284686208071360279520019925968504455305096369956981671856740863884669992236748182295559634525120887554523080740443883807977081959974716974109577071640965111447958469154054889157773837371551770116680439995554692667557426530165187021111121117866688788231113485952412119884640795424474885265481418257614912044728933661045865374442053201530130622255506924069071710763191578667267527067012374204816006441009450861676209793565908462187441291739881486337053683499248408861813156562748672953799073896745996063751876707980613871752994622362672748831695020407602680836354629651251788702791722761186129576099800350868369241769099057755972347409406670649125896413016783113608064951055104244411995845401940360722040512726109318484940920713156377794666841207265196539046761813617911952538097376147069900754322416543044023919769333333162831953917535555833701396330516171333495320891383866173694663017021134712600106720590444724411533505839816526748562287398752590746502897243406156920085630541691101906445407821946214278236436381911055343402550904819965533342495009344627462015799248499028000200354567515630931565247945645682463170497185918243420133582358189326521543574433042195836982719369488640922116431679564097531864189355284567822012032797004824912044710127558519517810039652392294527380993186894727157375601379044779811315590570602358741868237225474197872701567270604343819224304928262868742070505140520619251944963099918576004504623021783174349404107942372032520543738540658110871199424616835599594665341758991259592046014718056781680793693565714021175021959574452560086512243989760722213119782643055599588644040313596012981910849277885925883824344059137749364219609073863215396402559376399348873438471714730397956322942210251688721420527847978845150111117418902187874844935037709258838248502209819679553908368778140814413797624514760411999930687506293637401745375684066174617485972620599102973605909386441253676871248919207845379591837121080484914889687858125453290461691743598645018843346816251312491407867909555720823587201397055363306645079758403183956039085834778421373431357470619648976128249542656462671883101248292890800809816088953955781864154835680574854321466517172847689567378269402130261135285469583133666821351362580619672027203108405992053553697071526902290748487172877982339107318324829960763941882506027092233410376087071972424037323740494297256163931362865273197477763170931751599502519478634107904884282366526779593333453070921283865680471346019119444815060134763524838401130441278452398812247075240451720285555559699352582388666497146942073652206785278813783698447566038694614784563400640280731870847552657129276284985546186675829412628962344105994892549200438526989603836384132962846777498277887772097044105130355908164792186358851188809467512567429644093292803557493986228637036673863410794767101901346458609660056780634622499486963417460914475028287525980872149036522491975586719675784612512698463464178925077872925834494733585363450984226857496038872810569856920352952840606331695170101698680686637810057888256085824316943894101265411017284847174639925351175984703952927370761469561455707411371549992023313868104114633588545321041033705772611270749719676487083006717432875920719589618991969924019130490546454787774606634958542348515527320183298538320269716280182371873453877039770395226370771673625889221537499402661229666635466252837088506284783514860493669249420621496892763500019261172823566571124228481097326204606123209535244389110972622567168931123900285448032333336397223946913813719575009729792375807201759860095251271134668363037055947029449851678849898406445301019054730451743009832046641441156977757572116595423632232408735899654977625409003738917715171550130471957664985433955131399962416253178657367064648584183726545877763768215835060194028653991396550229315531760016125845173759672914885861018277692621231239407317427846165553643623351980125034256970514301404877647312451488637108280770571798187259339675311452055326095911656772215661362051615288805289855148617125491435302372315088563904016565930744724144770224339550173258729519010125202792227116124897312682592935562084073965404562494438405078207515800793752118342049215041613783287116787474596724569328554376532654238014231347935504449835304689472103199017788660990650465706278367409911163747427746979187770748255452229879368593294862372986700906250462908385248760299336044134104574727710575192458687793553899262953294663135542161279308560508386135862411466822849641393251410244505482075583252307144103940516615185297297978545362694999499894513024972244543981061757584774292638604606348908994711448214973324299408510633385737711307934227118881702880869120052476889243838642252818832874148250579178822978790141294052463918665903760590677734713427992765479836752768896579392667833334128268779287748587004231032999526437447966714483232288268480119828114705956501018223692271207984373622377500991778299607590747477128965700511376956647784976760488552184610105690402698266577109610649010390211320171997009874070090943409476728068068376730905757012250709437882418345324897333908909000500595746650433218389761009234886296891262988570165855529334898297748953457118681890539370327543490800208144771005330630089108384921137019980622015283920136571463327307272773546019608595717764241054308390329563736166335996704122017057489023465831880709621004158368818234578680686988668772655813701625442907481650411596874827901437473548781000927683716381506534273490222541374451751642848460309825088906873009910721917064708049594826988479040618235415662562411024190497103650935432471111816211846101697628893334727355345786250014686268289952664084907640890003201231860819520336659829836357936158865703387553658387843854200003435034509605263369823202957825682868938881785298871523825828208738878473166550770578936765760381385754736905970151543115379148504813697565528362473718993465618128187391365090693237318815506501280104638993999025007034229286344837304544741325579063299049957639520874645672960390738989999519959281126773203416698155986935600287183769751922147102932501237252010860397936910710577786819185503325426042008988272525463923168060834616174902908885963242034446254984789504348566324741761805410226432196570954020491384219553388047012162941069526775941638068865786611133374495108687767152360479639711906010449291579847476481941497090907093491052788542899796846361485650139829101454718229042332794033543459788558302229111645625653180085137348494972141802348423490266339086843538449806647787937224023202193234467293199488744485836680520429423992850266365905569650287745247697365925285716852653812602523579061318433869054977063840213826826650832249393908993266921976213964194558018537106831165900065044978071785953298560127189196196239106142701030980296361793505803938863038522208296346116935255513028520730081926561079125100912497254681797095457988450308689328381910938089788944328006506856174624179322208081410544387250085980430209565126389494884996050350023241752366016564736659183734257699276492493997902001610026301134664174577824114948952997622134282623864586378660779293767426732968476332539687891055761874327717317029011680740921103581143711974196998846446337709954445854215762246334966069373220241177424407824822660266792612585742278809613480251785288009014238574969053929763511167121406028583608603083572347102227744246354542320769207159659108213213086252474750307377099424671481942610853579714017388243890000134249885224339204315345117777188987291319881415054786060811154859092786646875249395374214269980599007834621486110252142943682134494098989439812778090318974181878006707953591937776062198365211962908418851777201466029880622160700283542586055927819330339412604112525884322553052220752192294888445626525823785073313625281117439001933008746818236839067648712384310129307845565977221612535689983047942944582362634901340749585169790879167846068229005891426375917600934085833499701660098148554401330217633742142004991008159804804676453603094528724834932223144422876196924135403124110272794651802579667422150571025595864832397242635040884080064298267996826165779880821993818003054062328885548559547058092485079328403453125049310046744267366623372139105919362810943812614147071300214286834099292730147095345177493324430080419587300382840000314309838867664535082134796469660083869442124099837484696065043683116512375642653783068354308101042353090410609675275549405711685211636170683332246623150476177418123456766120568868819302680605065628885070593783316044003610987752965991960096869208423543821894241504014956790922004349381543579311482691374492455198045548190909817890909920879015164862869234698232204688276306690994802515908140337753243271720012663003301007921094744018989355453947071923887638232213697321212993166415589728825550541188765933871979960128097823971930539863842120054096801922153085664583640338535331316870271254670575891316972123788430779363376041960133566473562150398906937035073308612595310100095805861209521599725212479556159799573579497461031361925378494187731009338437969952136272663596598416028455790722534493044270409928712954381829467180277819829201604413880287493942879004928036153625916899956970151599959262170248631186542341417367607512756710056039890588463204503769905174411067077860838821094458277396918103744592571191154242343995638188755557248389157712132227368803589460419603620089975919629159049810515290470745160812714540146017765011328446886882470933968908810565817454044422385678148820047089340772812572832565985368135936495512216465728256218465471443378243303291450388964454217976353266621714561846524074646132686966575789188829817727400278487554409025354761061962695389682468951910587173904115655137009718777259439966553000517299367216278591464247006723959384453304402344019773593624396738638432012385372961509121657120253579252875243235859432609348504570439414747830790130469199447047592070345446761675284210655664602555953035955268545912719387718565527170430099319823989091393505901840859809430495040220831910267900421894488868799046466725577539351631960532238795768005887825596598449220579379677035415058640040305501887590687215156557788150697661704568569954544570357367108814767863872467296120492212060666178350004494886157999060569290656164903370997823848667497369395913829854120995255382975626643418458041630387045080388192538072479030152256043856321623451756790988673942484802120023477195655120935964044577764740572375121046375718914361516326455754749647388022268427278651183636722557671706886870050203845044580311005935669491644798465136855429364861353581343717091977883053754500839368894236999733715465171167212903403222372288213833242082374831736789652037917913038378589372495410937116718038057577993332010020991324794351581570409528459748288992441839793692124380516304084855644765850878252746021807292840971411671031805476795223112148837871074543302266143022832564027629508429569850472578000208814836947295344073124995476601439814868670154564629859562325650336057314890357252228390898510404200800409201125816653167457024337963729667548196902151821435485868639585272047941950560075194591559743547063598738736646513810066113933100817913396640589151996814070185504183014787335834853016523839354763265931069858054940582251905879643893649354803021071608399452955395693881515880451903938788362817437942705844961802232444653776599486789037443662468271070076680129527317155196377495629899283010448656340404889778291907518658846924791036727487152881302505712646608037463205335195751086320051498376778376280283830390696500936422340600463318029569565492570081536815957576048045957906736629580243470448858090869238826747992571343315160648151810693892081040424007982655952451142637591492529662143088125455482035740377267051708330700875327663633523771931915292679171247261679147661745210497312033925152581340766748741652759524182260638496586281973427121084859113071024067965601350439722357102717560322799253148853924799958590925725322635897391131106221250996830627165291703971556252976744113198409861649879117091669274402612668644332532885309755654113274614038055018145231671456628141882905869370122655238753269342090850345666624195005176275434156329638881059087907784871201878190377052350012669274832339761925940709852463066885939273295127831896329779067078240927070263993033477057074829808311225291947547168409344056134912406410440849886232102444578631234403616678462247100430792933557062481115309318656306318641200572652761998859255725054333310782011800430432235680404905575830318785186573510241664212976515967131945835272591401447480902731454137315041717798079379260878255759251315604064303866785991697818206460375214069973351292628971029951216843126311626203568219471726991776448864542397850983004064890881835758014464120951698439477274064977460936292110337296434214975272965923325413010337466667692152669840916456522472505068934131503270573574298471688750828882473553731770039287204116647672145547201630617024898799578226263365247308267635015696626170218455069738405692697088425672598924572751677882285878130187164494245011380321620693953586818160965681905304182740209251756663994944226393203944986467188489654809077304122742607162826587963824031411465683047688026994243681216941707892128357879083414249972754352590108665103839170673033913310643300080718792083308333646631057459060281062132791008320435811224576899239318364933974598903858202184807141549280115604664440408463864604942363498966684027191898436440679266727750785711579081641243145115536302710982855438226992170200119889466675180790616671855388746762383426269796452882689329705974034732529455123204635220757826325373626914206837539193017640294440091922933938050432752544980959687131641630189121443459505500796402762941177331285484028265881965055998651263877810674868205106448175017390262482918750125293966831554362881058224510895187753312072649983170441338283741058988819966165075989386124053484898189792571588441641858381953138247488601299055691386617744173256182132452879547219741956893905706712772904391518281277874121334073786421181052101646129417222670261658947874406603762998978512923278467020228181063743963336010539006401625514895705582725513979788775395105073314440238581230348018122639881622628669084690794032878739140325645504214795017464931817941622618683337438800371171693295767677436893538402979027644428254239576170941649835853613758134480574045162621821077727621354294865011118745567690638098461677756007386491548074692561677108896816491476807070639037707412171252181400627002626200164089716679976447177580288863501260079503947528910704069140670978659408236577688153715417815924337809280591505983011902742718163051544368028256462716488466581092380182533568787776473284156809863659675590002204297074278418495784443031684830040041861162713035097297254862256821285640750943821562940275732273269002441053053649567742756698030912750979767238926621599489196875671030555628381734324688482254720456382813771453808683125124555737094952028251597913242884606344510216113045953398049148003912306277022170856129042705016771744185156654758915787931858153870688656728266367684594506035676887389084024661811853392475732779365467353446282632824035905640555321389785425919941561723677576226652401793857739224671225463780805270804587870047460347072979156535267049817181579708567290226977432700334930425137116855093029736254240641552910231956694974208732730455312335269188330425723693608731927918735181520235467369779619626853946410005602302595440677331230571182510738013882126956211615021921226125523857039779850403765248951509906670550650569849599316380519272895971811571764169830825584264760322637898011230614562544288952582017332170241439248393867696902472878602021956316115184436249490811560317779000950673454628274936787034729316302337091391250637317618919833914335418145124744889488561232144137589480673992153856657079402861469054693857003709036756695957170638713087507334889697456462499358242434943965478127909602065665401423700044484828412860330111068113579513532674821098323395900060753431694517661548923376757358786550605642972376301383382903343365359647441393393985338707551123879023523286920047995593782466707500427468715986475380303400951917854279016401671841432013802685411183321268815995832943457326246962043451498228679467659701287558478955824747167154654429470734838297833219437070199880584642598805648234914976037190339269768746225107656938106202165277603439239227224619744426120354440404608713290787734196587025679513299023896780511003454148620345145362181355432599999376276278560312660420881773556165673965118656571485717978427320722675100786257521040165175556396110758016895228892838998453786088801678347109274767047485031323435120115558557237585230783415824097533083938800475059573804881586655434133203809297264706553818769857220546905162537143891006769147217583051687221924694063985380083630547906479073272995069462323511676411640997810626773410327127303828104040565159231817335160094027122578797750263831791324801640655118296412886826250152316362417833709523382645276696995829044203541644223189394771332858998986027152876604605344194976623291966146463836174926108816853770405961522890921865332536797255267776819374562324808778693235652884372793862891357515338450553674226138009643120907817612589187567404584237533437072994551784018569659112929019200950390013517090008678665323776581778726883954991892689057875780870272129040971883436666921098293192412444471918064493241944747601709385637238350338796539775464672598922220488678836902959156857587112067644095916824174873322896684818436594921689398436836784653472882718657495396399439043161849307087027464155693836205236022821124946380017128610438434099746923457331918352219622881738890688808526822769787876984171144376359620953124103804590005994654279418154888494328906447628188703898967857031631623587280038205308839567328022343113442875416680144798620707227303326295080186679731436096177815126596255508134761502496513281732842993406555513557222772784488086427402380031231656083139195263121750948434607710732263330538401994280574955150499342989647632490061278360613478783943286101354963026567896482882034246878487752639410230641637674141098035464877768830403030078023443027858457289586932597916621630928290449237020852484991179539544730963174853639482046654524183864147550347623958587026846262136638137470169719011450912565202919947822266294970425238171278136459784497261311562320493660772925321212756407815976509503083683926131819053473296733637492954480469571604328030905837584898671674213596109029455258875500935081773268579604455713567463591575467480936815807601761599623780761074507592368844559681044429409428638690258457054273292107105701286347973955692328495230531153990272099306555087899727345473296044528421986062263092808755941328957408229005048401187935740734207944627780262542717346267127664900077992363740826552095067832856602825091887210826195346838700841591106242887584369401891524397267640767415445481619182560594540969297087495270430698605209038939478621351566324358273899956393736449461340321460759486842150009337313770372850946097896219537463512247406659940797875607358647327284131678502927363551538126978561627300184224684326971871633884164764594224006701938532136412294997251950779620717655972396554244129408327096023364662919697947705357265344933325417373595883995360221163014640733091433930694656582269784639123924601952348674883469284645607587938777585683700874341202646111045938467501267365410548141650978430427716711357955359919087778377368951395929487848740195517909625439405755110171948574641057508969110699811204725988762380623665830708862824952063195217479975049032855238234739903119977724739143100452531828614782502368067723085853680471576776016645882009066881188162977132227466386040408404466465986806766314757222293862686550972923830606780935527928871022763578862550294140585906739038615446298491891005270897241946998235749238846465706750783504729185188928912922146335807812742146712776635229402079434622839409806592456504581450943313947030940661966687665759850855104705980332512832805642632325277303916266051917778577785239477731055877852658112679691437991082136009527249473637411333096131045216883547842893608680699570487409800365773387779598558885737849953531322168159102018614047191311322590227116849655749656872150842294479429069073818759413123506635443976479960149336731881452739238201975617724950826074811989435645443642740554791702792577530115075054821966317308872449424250287894433957866360219125930988740569889648032493637056107534636109074052894537331707938216845163260268050037266215964852015345476339566463675134840223820255731719668162832682101981584361871278131920364213900040441957010690345277613988417424380011675801428221160683592353043044544455492550282202574836188112995415246462033751381344833287466129143383891169920137693049548873592351567495189456357445700815276022728519307942928396254853512447944005198621873670368516995713596702584673083024594116512459075838012350849479865442867000081502133580711551863268654140846723519418012042433292246842948760084639771668902954201680086483077299186311173379236399672119733783498531965676399377438199366775106231223815549350521297978192910185415467306386287860975486912271481306089862909021907191204572362270498195280895192691169798662798857309037404140603711078043915950363945030438841178004187466683407833956509153727053193177304546435777929124618704686642941434446586521860822279177122728891493395531528426577809980322031603706331819403063593359387200645287698637563980516469125370095372213627665468130539281985916054260813503101021529696242559446338149858519780936165361215146538809433749552940426675558821814310178554734439824132625418309974187650793965177734837800607405599316431662912742169106642555426941602189588500668978109674639394055089350210316254777158121621045527173805841574897863384848382001389330285810280824517455492249613275732043864338679712886358155158582645659098565230370633029644503608463075240003389893095676257930926767172373105054342635352462704448046796724836021622267948206595853197905655212286757283053562486691018575700592359556478565264586328181376438219576802100378742625593257250145350802844351734541598428299011051502365737944976727247660595961511941075239741479126726949369528331822295548736652572294697773097328272570381313902899839368785939274336534503339207788898920643536725236888116873422151712974464700939789891401566746953230711165220058254428092506477060435364166071706949933375341898452787541961485319760557445709441563803602747737547091333091221755922449708919071018466072574547767532828483692561803304260154272854051950252468134885214772545529821198434291302768650106312266995890433041755899364005875849713504713671242243612259060446288973472561389072115026946032162750915684005499402861941275481166017088435696893212330948570971655999283263246162502954436362241229887447374883461681308711062047194984269890913365155951123132814898997026166476667597391896207476502663714382824509994163101289904319570106886883831904977255676791253841918071602897136963795370185103154542863619018020985188614335447049804905216866245011183343662735690226877661257572256230058332360397536185536067667632864979901165778252511363590601566449870075535797365646901592836534363795948608058356539561933259822808312589301086644555578648182281128521205159383586628172764490453870421810082673778152492535972649385282745546969653643616629654681306767907082748068764871466344917070130744157460827485255461932470289253251577872887036305271277302788627349612849260022894048487039600010920238493177534251087898336234701787442809037845024151422053122196032295226425786159742052203631480112019833160117874057792164394787831816536761312773933246568222965205791149463783176342053454991579223930439430069726113669901358776667012348255302115478297874427051375086143277320872464847973245283659298524780553620770539245852004784090842345257696992716495119668708192984692798479713428634316511743875895386727170257978519427975779693900397550448660275062522497393254853518828568342514978189862787509523927984929637470072066151878928039332349657973034014488112830515915541404915385857601046267496168004510234570326781853140982164894090190166344918688105264348974770324243963058646537280198290247558853900248869098311867956339341318103063405692103077897627722419414706341351039379319755848894685597975152494613420004461320232811864245281646647938229230034805560447694267548065942146849365413181362324920312802605803953241593221166905034225785012084179711423927228690826872277166735220187090680088607348392597097403158210885976679605495438222495163348836740223660801027280475243911021021813133149134589484903858326413600290819274939191015938245272658914883248337855670307697124132948465526722030132622747322832195838018804951085101930019147079672645581019166114101595540953616652424843147520587492107163174400758876521579655152919297640275102603089014060384275757643919103256262004853819905348922081877606870352736970753349994229737872366462023345490887972124771189857819579255732807761192219414736478279409877113958995516477250938551807663067487392710440804144643878089124075332040041966540721814647414749649434736765575201893707379852275959965587328341992080962482903557980805547035419975818475028548278772084491240905205574710686633834498284305136182773648109178102162177974209872082429292300052688365983644989370690904107196961646543330108939838105745576686425964774211028581161664873329918705589303114919017983278252113332557643569568013197956006887394128756797469583343724275724303080409540100121575856589609552489511815331720321607560447848471494552324829588137717565594000611394004335762506181604453539729511380738346234337710718167752321433306560185716857710539544866791553338119413031722365616837254208527087425228806010748397826046971424562095656066928135414094842697231946518317170044731565040127439108575538031199138142254457961404937665785586194083097956927545636029932326523128574093893092130007448548275274340900889876045143568819325951688280716495585925326410313825583765975608213593986691101583968949160564957831156048683861230733351275314616006202868058630699534206657839968045644517935479440466833848493534042683937374708698007230968147137055157849878863911403765094656360528963246142268007220793534189141482167881612354292717677028154116250721476598950718796126820967983364673157346298849391838624276154023405793999700094589655588960556200529269239522024650513250530092404369856049384859369811562649739156913653836451636063603123064446930292445578734636496683284612627810908355689249310420866799233555101136366120932260305677507702015282592920026721677334100540742277376084565383965374637653381824827847542910746497387996141648006491720384668254493283179590898452953630740460380938681309794706615083660244718670989822442091988806737942484706635704811815937521384665549241415880398635082087307121662397525200171281965256668239064049116273211289833347476154641086690840180842012231407995933024393853995811409184963804903997900424688099576735509126941126269576966282670753345127273722940959422496479455464170933220100751987079657273860743860631101603711656975191652812535426819163696313502888149545662601215241947920595908911618592578022224659125422369686702556587819774124835353260301822997375577734594798371344421449992142884598467781064339556684797454993249448960637680889067020632949201083572618428889530947280365240530897341275603881445983594110408396254103863033981335219578739667239034242254322101322645796954652774184104587834277778707445282123282340698659693567924508107381772675709244598937800466608093970633246585642874425872993081308063372337978755040717888704253566538929707922127928922100119769488670028012321638922088750233035396234813120946161062317327675813446362030814507362102423729170154918546227861808432873570671754042783805306171633101222663339362267223935459380426468365742703280552208991447946643471336807051338153644939610107492829420467466919405654020964009734261657329772545996396878021354684986056776290820835218743367479821373360609530126043750362526980422766392145617414764162019945388848114762250405819743009386908471686920183027795575180679499569298648179563046274181518350610119310643728522278299745195982101776423445947217419142654983579860763200762946939843840648532968935560820505598663108598380556485408730947718203449540407708901764173463618311670697976512823026347334643471563374938353865126433509889687112762584376385989720171268674473165514597168226478019396530500403019616685968640035795630393617510757167985471176483623918580582711632592814290246858775430138196902192886565849381161502127395496446158974468789069218077728233455915711721387997171638403729827421068715935419307971090784016223793703663525815605545489567063590443467765177019423471013015007055392435881353743637387659318377275906524642809444704367302110811258227775727891127740898400462309100886556117372521084161374016070290100995829974038271697229564825530621923575324691085747167747535921736571271993961823534676337052477938849515150602162141022772146617350861262287231821605449351761978282460726245015549220383491021162991969338217513171769844558415461111841800618438749210484784567996417097210640913074667012358244568948830999711176226296642265835964545697450145361883107874310100027433000817312214628577883106824378422628168264350511702773047017831048923615462642634410397111968946245520222911582504164986006707101298918299775428395100643381683691805641588542356856896078647268659728924426654911756442366818889945973138484875819125901719426289678201663804789448367530523040013082641540026116202101331783362590807396362233784726704256586565010899762230246744582626243532006425403482719816863071790245574408129582777084650176688832409744099398913992614853949469108186839451695749742726666748400281636493239723566152822679700367097710627300014058725540167177660116499889253424326626657966126085835297453297414541521921007277483039705714757218334660959450862475668185453978972088316961621370670167669506911376807871740862191954783159157867480288962728141191848199163907827946386356669045181712666566797794598531627061392766827766593704117670250286433450641529871364776126068631302659878499568871757024944464831456400289097343088454038062327515756679042991905449908961900583020048615595844959849069907354432310793822500269102375637307364354570875468695417319472919798135144417760996102047501203646529487923326581907178635736850122441904128708640616012454612327776413048868775671289142357595102320961121827084627689915939678078113910503911117888546482612779465737205133419769875715163395947309870000549025605649797105435556394620779330691334163014998958130942743717322894317580353942942575356157886854384692166751668344794001674491157967135527384169860631186090022419840410063077555492864060047901883946462800737707002420742480795819447901936054189433720391867158944702068642386980463607623116198666628151944251713873526597043578605171746827558768984151101865142535275269119683040113311817589835656726784760529783653445220371249429893694073645441980791461203536614145728038372974428167906295622925871341354051252206454253600589847337157992612009167633284541609308428903842506860819732864028516025398770662780551800878611365240541162752063348693755068947128847501178488139185745229841567289903325796221577755400700719939554197675740595549030454073985435196624460098369262190296180936365776750324108906848695330209820535571300150828685390462563837739877941184736885659451209269210810178696458575990187790209363936395227770626834370746360807140143443015309858317234547029990316568287734887123632112867651495836907834514615966737061783268067113493208007612823330738030463849316272404845622540046326963006630252440184148941631358611806035815763486935994364016883491694494684896863082694272181271779271051333192015804649342826637358037168656029101333957990113797049437926913452153850652198572670771690467337392862611386092963843177296557058073540260726174666728948245715896584632997308983659676478819412048689445672620278870889834172136819292140772048112097669427007358687055715823811471302750443244154430496578546629600681748592304727823915517141602114816271594286577497498994560224486642982615176077655036097406778632771559489963226155076785831052174937306438454143409898558565509872056954337813822391561624899609262525720515077945728740298583954006567944094422266684762005971960059596787195266946922002608957049875516354266755382011477193124385990786745533562560660034664596136640329335732464824633923422645042101076222920776507960298636742887460730051031041523212646819519336102513587107591371265795310793089714346605225361905019986591584784774073415291443491059572389123697158869534528405807645376768814431298340170175451732912495427101472089428194680981902675578385635673417640824945654659485967837120909586427751057877886884528945232223520058342248134938212941485100411881776875808604978614454760773237650684713538644652602971300186267197696768432472959644711226697804777479599035504528387098866965662498446139330109065104178332606275529374780639402903142381169534769674680996740708956162319370949243824724496512522208276616936442265719548523398185372427316769100790754728901431915059688686615400991667691506664713809521652808501279905784393699177185384195985876311115377595587307303190780892563728613659704623017685133502564210972773900868338032692527946807287934252394064879016473286410204954280229987536376571582331345117539898626524709415055653289548213521352244031208724580589115242943315914429889763266484709287764325721547318944307291265855905430674093664504907790915922583738087217286290197394805133243401935129910099105747709535325304356153146203171545675464097198726019233635002108716076697929033494624341455286963519881842255152622285822892090321876637630689543210626025796219653635384704385807990692532216228795731203653230659595319767408121073549629588173887941444261935518531584891229745191444199388995670221941863998346562142012513350278155284680019280757110901944009511257789484779017065628928477752400714867773145224510176190028964343961722387279845507409078931183389558032139735958598431834066292378628809011145712023254199792608797883263554805021264047833757372206137902432863093687596417837075912271856893488080256544199132841397507164919198755444418246430795313932683881494297703460557635535250849525865585199509029740283963064638230676263527266763324668459009350093876894436995610893142745671481688298406014055786615540864958718050895799603955038563324623201229329542731676048309357417947836465310259885382168511136125960323954255491997561131235021895393794413901728992771538711805558630354223336430305009888374413504858410607860803530377003508842440988022368505283246047055701118274264807570487679805671619209004158488363769892311318785158417958808484061880071585985358899767450335166110540375575935956573321402739510575526028437022173120422107141317884968638054008178477018969754616547023785545839007120254576764785366292009219410688039339737284225835225144566012212445047326224143729468933007210991244212236873738011552747322344193467653272331657997214707738381115505770021927604458642425894341035193133088480196665527256145309022054215259680164813208483906299885582392964997395493057826613803003944318669770908611910606859902077174678834119434658269990955974058699436799206523931509529873789549725759133242876797157303770567279048921760351827065685308618824171792248259670428403124114295601760265379574109475290909242221170161505218804294287944250565704819872102233478811792134510923220177715425931908356524981212871248321780962468370580100059564537221552470791896647324875946172874696979275293998611039091346538001959112298365175349163654210529315608980290758156756661286251950491297205248323246423713879632955118048543012927239688535929834069965505440023171293305474415831841991951076733249691882367038974165292580604899907135202586549866152426254191854464312780120689524398573419107751159866868778030766150238889074208726163536497065560148072911853024334437958116275692289043198666638567814752741670453268405606629476916032094190283213936137985803279203596973656373250707152175131216057914485794487072070777746361809083158015567582632142290990426124445043398005441398176982102201174773175126868531289996398558797235928900370678846516196707198486600230617523134901229742367663464072661292559747629043230214971885472100730301169599566846977288455610193487368333078809230830654301735390865360344738109438586585588104198020665140658471261458483990952564678969591115714561975835681281988274500828870955743299256183203846079289861151734242577706178674908936022556768212218431987618671321222709458324054205212889617053277066402638210097760524452103359696948636863221727098510507418683353737200041962883312354643920332930239488397396647351656904182269996117623421231697002938243255858741512710710841233430314703484165957742258656697425417350705412630056675900681059456861801710355886653137861840237862174662447757295208932635715086736768605837422647755990574424183836443441140129902100641430906026926934185022186305166573690485560707280607453361047231345314793954189181957996419179078807161662252802159069942575617022226841400999947412525444577043669107832543325501041879091165843652741421249657035497006296925401688570455695629767240858086430960013831212866945112410126259547528341194162274974016639318755653751861990352537803078083093650460247438264521789144500258074801326425394610739475851862856902718923554711863128526659666399639297622930689626359179133968424358150356351924755585379530602525088166657755555876741786532406596138479013712325332201293163900728103657214677602756208882008410086619070334966470412978479190054071323827693374764490087778053550699107273977951865036820251414938481462616303043342086742886510275266484470567186674142388297405617869170476251316109505533085177514874341988695877508644966515823941224137637964467698880049593764031480132846835035867044528875248495050962376815357615194840823733466464626461783662240535335732374869417416067797109069557747317137386936564499799750042541871975138622691784969670370838118776289367588202721223789524235451828853538813137745216600482362602074179738394451117186875200056138726910774644423006152390220025747900736711757193898342931388445816770281565519999857153632466592951520623108973238246601210940374164549239911807314196448613279057271415858203174278208313218164083234032345592758635437587275188737130832239216201034785089938844973458652938944242518449783180650034799835526696381244661064021744968239307890015154026639142703024265637086589953129382312587613598057710958074137533668806911511848159134999962922087787443902230143515862498424130245142777650360261450619400502168811588448300225648566279868126032771276222200611586859150207921435388998730098209059109981214022049285965909614513821388930123305181719730376297538027746237435150020044817735696329938665285484170821788204403138191108177598025262940436782300724684439540307675446829979183809517997399427663528678393533346261477085528169156067079338367200380087767832477078689625268962459829420156527569852381773711972601295970401137304380119076160884514300044866063832564186046018149550510690181349506232084227184545901753048426946201772395377468041698156437680986890707039569466883897949300661567411093041153845186146786487379240514873153387766380182361135613844417118618126454108101772878273806556434199028009350654723335340663045633972547289166760179669121381670848698816981631476830172161294731788178081688179351011334099258072580493111499417893832927096839976901153587841966575601245322879786953420961907105842864856886891445214706713826144095063936153929882260627819227961665533165974858691689202339488306335753662606615113729691713542165131038450959401649397147195853382693981756531696188511760547700881095865580932435274733872721896776669500372349813267758399437002283997061810217466461029850378206254177584418211179640906228719796866026077760137649796981910264027334146438921284808005623054188286418052091709351157502892841303689798932130080852059033559404459657562454596661859969933465376772355565217933188909439730606668253193065832359324129177253790594708925625826311911115977724867267665126557127856751144896393715283925382446280712319097962692732933313390079578163794636190325183692869805926502227736795669574662594975188639871015419878755790801722409068136445541055538327391723585798806086874743898595019342654807565106331321472612110962040400093853743160028290301597549050517682504226488457965594665385992018795144100420915056488737408901458646049807904307040645624679845374283208144207769571009887292641804445042373514174548645565689407640147268080524477543340529652198207557633826228123557875612736442152804132923908423935346178938048818205787835115412418089995923044507127724375756247213059664762838809177427957482248824908461358826975947626036414857715045526769400322933968097983499725444757246730751397963378008190545207053082201210355247659488776276422741672938496105336100986821293454566711774847319612429051399715060164950550732062858101136501517697743542633943644312618325503225532488604517822360817630115965638705287052845248709239192291309101646251702884792840444230182653900230644875666754771801414152195834068854400181271767403129675778071233187844979429857228597095395249129155415793051952429065969182338402221601000683332928680582395420508103136197058140955416227459100381313057195239200705693753593194378110559239294421978530730125895507046525812709726298269945342396079019401384094190046252757205588029900271057754513725812814653515127662329125514372098055891244246117700702421621706161099123064091301022592325496301346598062363596301309225883679616967772750671436631352523404167356603480062854828471705633500299505318606920923683683884909615436514370164892364652125686717253985304129024134476530091871276886033018839889761589688878556776131495687860037036460119551980561689796630458456234290465986121705915343796904058089706832311128911040766883468830313924607841576389815735361427311641578176649128191300177601367359295811322076237429841865111791004340766050857014956238866770356747604930084393956019592469375771286689133292729670132736763651748459109214949020093014400677444507852299530931585960155781276692764852862678010016015352368137728299975193256849401607404294651844062590811294174716029280125907038353148683068145325544333266452033530827620258784655563644214357101300341568783594954691652205940426906749516729993737578657098366869882929696823737594021610547533539717758625895367476628921893098182054693311264801710267649415258025278335749110763112490575055953486849593270823539626312118092311551358759750633795756666098501262945153793271860525891119077681604479782368988129158940288720882475371035477215524530474509948352668472114914724304118481644149382847221937766312417837915634023268007814215540633608839422826641040372307111361660616700334473400155124375550717643678169735358851768690201342607431017800144696459103874955228384960821981600844144703772141792240335142469130310811839178959077409747962276394046683262883373366949274372536452896605099052362777682648370404228953011269997862304284152133989365831344675485767049579084431672540958972081755245871487161138204521473568674872318340496093191896847830504783495602496802284163634841123067632359570408067519682457384319807865989408259688819481556597156172013279019702229537535294557489261003474561434136782511857966612427565845512037048839647211125264675260067809077467638263774603146316908094740126262203242644862013809223320249084317425571583399711766372697046254084335168176875194812338996402056412461506944704760880280712679205300881632720585844401254610501723600442136844817697111389303420032326676082947666570856755602064193612197190863404575404349835731410378070990226523120069712822196956514467601372422552855476460325208114491357600815938974819537990182379371859165141942256790275034497242190079267564146147384606136536659240052594644697563758384532171187114263931303806737183109499670610682736319812476626624037703966187901772879740554415953982330840493864367588412878832959722701581589907945330448626301332893466166204372076824808955811236027275910890677831001959085248587732889716658680866339219342378844310725514907365686739760981472289460688942646513194949193228816685568825848636576102115569331180755840085119475386325219224300169852957777610162583132573988672321661998516311154665599500289559208777920276629559069455096838503676256292562183583900963239566913113803142723295511518096164667543561271497107759568819847532719716421999395018101976027571227807778412400297255665667467711595455613797610980560122509741317575127978605721923721313229803480021896446336928404624723762445452906687954700942067267782645791264691180207245431800318373438767214100478256765413202094163442454926456341153269135962239663814047804343990316316138662796682400182998495852541957698593582060342926450530388932193518301612246225555668819224176363973920443170796157253555740666532523188714794477851053088255678086236740442751631006996957503837380419967583971814211855045772401270852844918915982041588755162116493119515953410783083354094185561059603653067849185491746701228302868848569871731786559394762806573921563144909868660946761449081636583959420742975518158333560352498223846449299010591644002012816474929927393216906411687189877845162208503590579246716469877315770343213146055661467746294890453714441045847976978886474719146000911203011066072680053094100917883195222878242171175994207036031494918188210317866092698597525855679440285989781637068339605680769086265458345621259144006756105210942628976037534600604335427502502506018593606886413408379883702300957908677405389759912827040948734030882875027634757998866075478590308751566729097910138529855376616647266681596943914114288559713664179880669111895365410831500239796885387713749110122486958994876818675797909270536847418395693611687104296525631897647550419454138548192042581511584575729760883120504034538767019700802046294682233843714621702182428729918685987134007389778715932672915077237026845975517445721037192629385581610977290093104119673731355558337144181366538040351425669371317807049247511408853514231492696164299293188242122287216493194524803949605532395082739185610380703726854820362247123848715578899613325239731286342869373281725511874827679616546315282733395045985723060542543885497635463860034719496085666051664309173116018028346897856988254596864915577931362672855417203616290885984640348281087211030447240768859713475323173884930029707140498192079838707109048612351257576963307109938803870120415970205350115890077566995862779030848436338006124367112179390459157919897570672261937834085949386419976464510727992365800542681982860121722594132233053267087381835251348265461170797032847989891754917209522452962709876738666177297542282679459391448034964370724264705929188701590358145881446906987437326911420042549917079842640404655011764033190454001679757534763245152322530432314803197974008181613928274590899655786621562174142350673884781826850333458165626207152725669325687992113838807191567434012443816416796904655243349224672066337562322728640594230354709605271738847186012997973401461134638388867360789726136577875564998215077126421930200199135046971349159518401739338770250295101705480721818379561564451506673941564922770796045619996139457637446524430465164859713331676544511767393724967416574591625594750030488194281438579132086075681125933529140182549456168797804259391623627173732522091781300782705730384597103203412542799555954797136991387962176986346643899450699196979326619641277197413401313777464394206278393822773633498299740067275922655280942452020690396343984104017461210494469057667052960251095524107694741581543838611563665667299393686146073620762508574225154286387625879020996566957970887972593378684188701721778068105168498516624575661813678789656033912787503454320099693222412439074624009016908126188563394956254039038471400357327925009632375748226458038580928428418444733316090793043501179039100224320654343298815385280307223736957511764096717882771138279910339180461699116209351756958811943795297255336760876576127362189039667870296663605083865986355570302193028818235448715014248515167156605190751038994520276994173899275258467236408048389965133008390131930513741396066282509103751925168960329124097495358682716972699170124532956744390627633216409571236417982509421171959169400755794924327202046211844336970953464888359566738079783099875723036840173535767735680858951359931293194920329418361590514759141284064221063487052151285160025973675459304690418564937890638754524634245464726005523995453205403353629995144805229206042624507010392823364097711926631772495336294839005997456894325225968965431375553973752366549064538316706857375750696553991718631296891463766405822598208821843044488590536957871734061565890567837540928922116937344493093587724578885161407320415817963941333670075797896649494341875659201283889518363033362390675465627879463978850740881913557062924886672333038617141454837043142547895367629988014068651797815888318249674385884659391827112011525798635695954230986486403172371102248202809195802589767644334348534592566426514783048502752823942070142243550278308511357987266730058156074343565707859391744849008946635107001219621465811446126014949301774267346152656120185118586610055467791886685456225299558751622427539986652091156750861915931621208720805073268182463654407231734588439732393087684868874554799572324115949841979080583619967643553041352787487649175904065749715049223334931048152768526329901392595433049644245927858299437978542050180318810932236012339209963443913103116183026184791953464068821947765915806158998403977771821758543128668797965369300250256625459231513421672158559845042053965951065330254907953074788375038678914214323315930227780433100807362851809139608293729351150869880637656563491576104260321084478122843533410956581722115254232658646084564445680460861324830270156531801465479599676705635746608712028306013930857110717398598438321303065793799618631190062310878166440737360812660753314525728233448127067325240678176160564012340215389580911890551240864709258487644666612639855023957864040215000940544525676016039387695777466893505501711376287787482919775014244254555579454092842384234336977954136291157919762304367180713012944963162460196359140122960255895895019649490499200901130772096422755919183465823216752813257556899875187280311058952194657357482396197146980249277857236005445291239457110648557283295482579176074183217319341456434662366699250667176228766093302618198011148285448770717389333405989315257826952828456270248394177251785997289379792062877059418660504270135221835413023009533020158455715036601996054574512309895278648836741863689211951701513990151751406820297375526948662840652869529659388669988006032986596803091435100959289522938203312343088449095007046786583118158565071206186099105812591823106640714104950298237717057500917663626327845054216778459319852366237320891289356713550954370222441953023699771174414137435063952712295620634332761436354261383993342891507150368320360891177319037270118254781167379362177346767332479279117426874304977491152935123547767524274917331437095574035689698245607429621798864894543683617249977712792981520496470630193695441510615858779620851744776607916858348377095646584788025777070058048507929070884263814951903693128207334291961618030637300788308200032205102143918865760606457232912131628210623291729346582810017980699525064313212965175532803295407705510862899686317364262806916381455306229397379592992362569815289864489480217722656900074192517635594624922345777420055375550020577111097301848421539469201356577015902605605216804785421269266707175573381313847612668898813950810917362404478090908180811689679152667601886275048162988242245417874287702884037068687223914928788590609637221986153361941576869783433673422853555329271956765715344559135664672319081713237492563416418027857459211271985433261094451458600610106003404469761852560688698471240154761771091620173434139525011448562060749992229734392781464059684844063795908813623951503312453560449158729726484208971094007944033453465898472453287405525226635302723088087242341645209356082036942210804767273524218199759000703489203666541929861450025064143104541128009059984485678357181348324697933214575284750325739815743841985657161514214702656089082560911267335906104353729398128964963107338496426266993479213074653032650648088752360587693467547435383713725927186689256923283262683901839864323469257512722267072981222624442942239763348220746324039988594160956592695991091629010121167558329185840720315549785591925791892223863394692070917630083212927814162482823250594653032622009376479530340718693586218186702709062060524472958638634291863807587589049178529792498155207010930151135580723143748433756261670987875113644905186560548460834627103351586947053096076322236755080433480938806158579144364989805835966458933205078700068545221314994532491748629632899778295948621099089685421245830773559987865400669067888747372405482506290516134449357619316874022115201988351980350254477547209164169922953117246640018816363059482141804657957736856967827119534121931478026000275091994800028840900237287274055715283767100297300686047963051062161152067368483040190371790524206639387362736558702819338542870376840289186732123577834462709234155448013184845577468761135944339513291393932572494825983008989016756020751800160146471993284106059249405616855494318702265313174255549479648799074320163116001087114500176633324814084907773375108191109107735938961657598027753880206999572997491244025177109845493704362294042870526811585917232852508735086799272616411739261682739679506508372661908716148201612488138405454678543860264776214759105643983431749002162522915370939652893623969858027417048623272357665070672532278923556717671351545628804725710115441838519310101621700732867695075047272666947798889083984684230764729567992916438324598182801478749987343693892963247897895471256852017736479368632798598584515004868907665013039463491145172064338323616072537568232598813931811154113514417940652346789514015745936745023887809440221889308802020697186562104135658965439637912738373636739637248950238418020754724884583779984979118436073619270010499571039718478738643587087921763741371173494967249568038727675184723512210525033732289826536272286569154824230192873672325329765596726947691633965495123250779895110017594860329946553474319648846946279024487294568195303869150040576266799730494759496625296607668665213053123708668610162284417115657561669328179731196328215167458090155953434473368589494467745342820780437563078001094864742970840113697466976323793320324215401466356043275954523162742942609472197436917872745206874156302100964521879240567010619749428262800628265817907469872285991022628412613612282225212690517081491464277537543345290093314733069688947489531091103224016262413442943750893546828569174398447454070021057961976634871674180907165225289281366323916497228398228500249682599984024778491898472000029932223953297512808789640103061016607321451059728550784685124531406128263152485632862960539084226107154892102754462344546575632925139276348653765983594650378186265394423313822088844913796164573894912738566066278938790532480878155820891896373621850045849763457236842754257463379309841840633373205885726976697749739658803003498083407870236639772715925624415052850538487996884794480609611006169407382198279171385050769056206606613972562340393172338493317194544119157921691060483738687626254139144374949374344319649154461088441012095029502212584381248125689314598112057457811785894499280666224786984957909711695656033161777038573004484223589352714303444840074902604197589401044601678258794632125195370750616203065165052003953719764249198699238983585755535049106731515296815008327581707666009934547778600471935026968747734383616953772852667572391072957785888681700966658409779691872327747991554855773481620319993086685816380230085212252954916194122467511427447371407643257258006714527259871576957127306261151431522155337956984389137204731068339519179211525477053481110746424913929080685652381092008585897045018661454627533408820676544524889380027831085223243961821527945065701832714394170731610089075243166809181670685368632732990430053954516798595592897039029584100694372063448810383603860394240860170960043288376062496746593970587026938380594647527400304203164232884580892099309121885137450833982667583176537054581721363430457039052666016555103510135852461298564401246473999424345037366957589521534977187109742960271192315121097969632270451943834444413382913135777011689214923185041734351779717386734622369443486284566174054245549479059462906410437889215518314432915180884816915256270608815096858743087753388025553256709899606479063977827018124070206331646601543698015565950080605760628157001341634072349025449617049612979518922722066356162011824521073703981488361953136009851672526221494169054522334332647027736589603535399506350571415806414052822391192163207653045352836510777926681809512403911860118962938442324183696606548461562634838667177612064226170880316591328733673422095127554273560308415270914411221467867109367093514677845265810024448264064865619007815599730175341363689926854519546502633326310021929100194743721677457861997907436249044150389423053822596464291554150787639508937833220588190240243729625259150326363648723479308242997187318900619050326374642753395680343725922598424166522896927100244617434286326538587862096725632083313464643913517648415371986336926381977425500675684156024200436228046833844858539168107101958015050436337604817129721806553240424401455952840007131561425682222886241104063850636555971791047389568977380176682499066180236014469318827298969771233670457620788420054383294533886986043392685900409981087174988074896721462874108095441221476452607068208780692486322169564754367276395386381107774571830278547922668888384437841300088501711268977007135612558738086367853740038735721142251317789447450519903506085141038000194003239116534810565322099443668953920072944269657380651233271644260401718411728854845851063858741439049967320004043510688547881373555603715550396315846441546503324708605730716988160150803366718844140379008956918621833057841184041102556406424721440647512013332722701359495347710688737662791576411535580183825621446975401115867567668681281939585909992800514862786310325646451447234326304738062619258820161844578813464461264079305692708673533621376030617985758210564298077929635370175226387603085438621686753518366132839467001257746853575227573667830741928205625051707976300118634995213988161528472757690011560917580726302377785396624044963603420125930679202032099170303636590814569508080862308940158336853317227491871669192374553863341188561091530420964428635692037572225207747274908047809257939306955547295892961912324731062776895061042187090246021972570133228100738417621535289185474634496543076799861944329586739308445378061175713150465233124229312789127191412505356059192360659018754670621840373815151660460391564024061649823160821817600485908194569268248296094753200246456327405774499976065138211009733165301326370449649363377834831314082434442149917081884872080107436285599945742684434132360304539718504647352122511985605752466552960784374681449352822429233259610267026949446813811796048040900766373311089329861081020075038910971512173307983914011527711689109193171264636597650437717632168965357934820917243093261160333428965693273630220850932289183428988279644816767165216755133976325123637284633081335473650241362661104119347815073590648060599235093108521299997915988764878719653568688244115345119965449620490313682834511814280542227594854875352355623136717450647993295520469867442018010707604477552432768853838092789657619812139582344365965040442854450863351450468672976126284308637536045273133678608653872982688726685577570874264231250914800925746693887731221565542116185034267849218068567250481924554306908472519822599764292357679688238478516528386911307440604837460113647699082298967759207083915550943088544589627211390328969084477456506523117059031850453263681290432661126762045250373896362139429385834639570097951294109935105309487292654608892170678866939562798210722155287615422866435833366324298129258518318248571599298695056419015143082543912303843699251797758685487618257623885528348444487790026873083943454125505849237458827108140476147306507693956045267893729126283986032423590512444641001512194826100464487560643091989707590208655589937978974577379725995583614315029060173369046178694259702153284506895678259940292599094994682644108944476522310932123411635929852570368804338082215025834560955977972002895911137705614262749240567506409493486515270861070679255911064755888996097842785786106352754610985340843796466762435327564487621865621150825406592344193453107042101699535382249996507110296338633981334614493644599208167881955666155274514375058611719504029487945243930227314774531448146841691998892494892798178091054997728082592805791161802958419150320016217067734972940026552969731125327261404348029622384088641935060101665706067677606349700416326737114626753761128351654368754973612536922730523438039877024089341329219408868996698546408819397292142245642975465313653636135744220205295074046073784174920428895128979753967339090563144680737526382343406127320175499851807445343668788353201459669649027147586217796577977621509441380233157083703989387629734982301429717052781610899803680423295113007272393607305672158342219970318839860941585929839215981570479483361457213813777710903705223731873914791685066939297980212011174166995125133220095872241484238127087855095424368455013050697905193842427189309766763100081442421763497319232936314412142295282858394017741056479736763923573973463560248059778315627474174671643130993476105659893767787478250821004554998198688057736682791056055503146908507072401063720382800990484494758589839715585935586899988685925346267026403806930847301491207428201602988189005309369888868150448900124473845315505266504176024589459740595349120969284361453728116630288413870265152355012394132163602138969474219981309036327625513929299293088264760576605080626217294468395462787597544579565680606259916228169407377740032177940610444415505122691277990606266533088587969448847372044661483492385624764968623593759936920265578119137547523055320107693995339472076823476279056435215479910682038452744199377764122842752638819881521765231933796463261709504085871326884874445901513696776917809073110269468353948240501481547869723616423808409446350078596327068927944711370968058345856891389039635838009442613161010159071132980974897176009106275640729528903967552548845568192595617393610937582680826490747095809075322721148854162627543249568168567195363550907601788952979304711040259642909750041139782132063886407369230452607996270006584055452101753312652925744354692143387720362412726023099989383092913285942435607145267282241331460286449578331575402667757182924868979831936296760326558334442294232823254923027426343821935768174459325722180455245977468324178538603572952984161832110751383182139897504658418411971070768458124349250475954597279553414105077737919495144493592290987128399971346218596734780480948585380335878839255250363785658338288173751122421499602833017465358806595479081489167780476023126190501281168413975510171183673410399377808703241641279589172785106326667369159593415086232242405857707892018797254300704405976728311589757523258963824534757857273737266874980765843980384378776052313358611486072877532135458226355861704633209057074195869736902557178416458154855666872360749867452300999338759352719910629065662804159624658723761818323217274369447078926672952683387041496509581640314013721729446410289388466577687510327211053682590996279310578978915604582250590351196438134809937501666398815746275756328061633325718121623416122034033651038763529770303185528730100622219622752911263171596513878407630363110546715641494349380069743788383984727051883542763505273860942588475854869513405242999842276362568815257731406477482393584076777265570622070483378820541167414860029598630719465028632118946731253733292193032115674428256560973361527200090043709437321198588553287250468486349468679552088554255314516643446978636889365947115920108633148004419765892446900288284119564972826774846808988311364197001757205697371803704070861562068401566937321862720215250820500369069261342378582607645559185657713106103122312929687120474432390784155555353788657879198907860694343713284040933258126668836796617080575989169396093233538263440293210578457040599192776799620762405444065730212410123215131217522793412916513995336724558418559439051465114226259977146920790495044328464350476358484427588651097845394475762899354328981960458962951610391302427270814153992413743335648137324888038246843647063402077886923664666290932107651023321641947363233933525585060662364089448241192898275930207156513031039814722798353171137531340889212417903896146267950026438739766594709095397533103370165994564585488314879723544803462145567214410442544713228167506302249613410635064431384106850343118597976178933032778076030668173643635863683158521824388340439715439702429114067198114236048704479907344929198632725931390742720260086797135647228081229920006362417393646964772301894983694977854145211952762247763659354276596837647199676802139886908118973640276571647956822050932322159301986511305835026078235799372178703090162678356075514013321056745844781983629823732319515622547869198974880814361778084450941002183749609656324089988063489314836504170593898093178456108971228998615706233027294544333191030273444865995384983724864840922148680065801755551404520730376264830759111413645984969493111809115006304407020196857622102697908057621417622174023292050718891228817444554004390506189701070047644340470779487537216398945847007943267385812214128219761793545973022433246953939332908585326473887392133723762281658183077918616842715180516339134178708579183214025814233931805988872966876828659322270073289663175783809352402231125767032695290948082502328992348632965121097593358672535067835386337498745189897746587360489235745379562729462330128647951657229750730176577711136405249460488489942882123695743967930198653315838701304047164520295994907607647572174268646639586076729351710663955977391307332470134778293184022769806109689050056010765476276084038263146005542514063615048097101010979910092768570009569033905749514510724451818335463612372801554512739580853557882052626781619049784478125367899286969984413463298041314688455605487400976904321306574623938832699413188130886555813181334911598040278349985924716065864294154019282172347242883780066366513090242980181650168462292088944736047740626961495480651046200790079743802046694587553197517206568280841519678887652223510343135787891357809883097489886547823725465221942376645913374186013427358481992412279020150018067446943298452970518493466967928052594650831225206718022474035155382961055456208654092942118144381906784380065616803129079569777673114842199077019899169767159187821447925375039241430759091577238103599604042776228750861726591514004593941758032931343847296835336359182371787261853575243685900048555734142402679727137815513910236176079938502224482566275386491228084581884948801703911587516216894402602692289351702263059882028161873861006029037034985103245800182073233910231172693431108947408812928944757181671496415834666399595890085841202450341830998832342597615529361810169214328349090034099814372880953617963066307037393440459044930172850124587949475870861559776606467882207989982386516931889863475845922802676352407329479388450743945427911458307881825366848755450801463888802443476834215309258978459127195419574057007272436546589384184651440626806895971398660727348858226870354477243625036338244801136031103014484538686304992545658521367738933637126890825473364216420303257432546948341105154035220412918803856449926092458172596858193758920289929210877313945188245017666341253012588837077866113365233580071161770486840007066479320050173956335748013162399068160611035214640671477282595724751770934720696603316146614152405916505148069530565024362080442097824569184779059043595050009651211892770355446375023490979046518579470183547946070250496821423597418877240939321123935832780945161044296534166194939580161687805745415045817140341660125211791589272904898207184256959903212116684020854858144880643195897489874227245116009543132228563315170786232690437448836202307977398709829246189601048321672737484332972756519843730801671046239428515410903912856408611015642580897335259318233592401748728161362155104725739243982666521377044311952447388305289474508144381530483622072108581297994104246409481000466422407706948772627943312820804589435682118467578623809666721808463773626961985734821905499529984534444465101277474488480178673780736757221284551454664746323108112369212046881918346271072246384011586296102634451652981697516213788375525902506627176678565156585731671005463748653145143340026483361620033449800943715489919248046146740298509988559421244625396960596002472425654778525998860504089878799914567303547937747911773998470475043789275226453693160151297762455206318048943611911027160606686276482162569926362422123877382132116252638020114011971749568428223345066515969804971704096974806556660144127564422638769325101373306179328418243486545635460739132723071418311234241979721519656079804099310769072263220694615242751843037185962932956308730079408390122316911966386089175069993564416869135702606067981359777833973422745218659424593828819597499492934110372955730476667342041914655860583346315674124703302632901114365540420330441185580265385901638661814818871922205890544006551524869030193643101701314600735858789557401268478596382845167167740336865813971437771145654170955584572046179776402791395578759677181212523229484977799983328806996142254402443778562763476494684946496470250217117856580625172553354227521513474712579242887015219382980735915237016449990076317220374924861268119779108371543784560710844382462060254103400380562887909780638944856623856852729624400875315066302086630804031802587786805795757104342027041888661900475754237953849048746143749497925387043855693334754920109491545099249976825130107717393899127107219475052153133476718143469965753968189379002839254215148982650733809569112168010280837016869893055038530807308039779868655495386434365105201326015911859307310358598726593286004240001460356984639612637297436043447015892999002220567157450494274162266674385641209778173229394341954253827777852634530315126914765310404157725824007200773361512508157923789275632747865746349050474011952363776856661475742880526435421357162547940716389664454330169365647517492197157683117005602570257263051314301065531607989876050458212111192773171493133965011028057739635159444874269265314283958617084257640462148555328598174720332109256072525474972751629223573406990841476144083789149320357941293393752277928519366934887244000008922011302793213071879459381636876716191607276770327506759990261315849048178360308285479802048692960052355622820991461985131915150363766109863249053478984263383915620289739498714181610972740901861149396153991508127497561414050757589799651009731914540317205680727243132191643569316742775488322292596269052369459243485379311711277958867283723781258821652796298637753049920153668849120930042493919796197301133601946481374722811944094470752214617442238200450867700786188391367202265100261612608135703721450825040861996503472182974499018369332605211003941926212908792969075030905690251071611889735170355030321355924797801506835262738461787465101240494952164490435442114016349893710864038576110429369698988790647304267520357639716964563345620249597622586509666077319824467298215500311022236252542992609625680908157277358199534136762789587986122042612089337520654317438898858068905354228544505817359320138566723017078863768268590738056994317514402027395493186779374370834699950877537101044990953777605454200168151739829268023395558880652359873106258693341541807355013751597483135613545773732331365013258688241371030309119561999471447888891083038695244726160242933123614864134596337404872665230173351495554757154182354565120025532255043774540046366781428504736091857725786944496332518791798309050188708143737435281456157971431748946568225166273273364836667803254475228624552886069132377470398706515861927125522736481704414699832802519357784197130759653452782390817607192040113479738674264873267242102111616411698798514653110985613969582751537501987549440903296161540593886298897134230245349828371771410927641380523201710838532355763835198633359417632630766588589842763801524487302537693030285437360346627494204622640068728013784042813457938059317640532018300197181114782284314081112284926289376086343557724670992027452735253523518253950588462864299205204131084496628022215784377809145248310741456607847569000538728979820446329293080369082564100477035297397651593493042654373780182456324307878065774105997090192558068864448900516770995688238522862434891650967068734458691061777716479382530124977015888158454249951444141319675007400033150325294664438837497235354997847861855505456242487108530677567553632617433706325556354176996113748689027224891278159330895082658117120751059200211570455750993950777681146638710447431954428012769499990517586827141587553382515573613724790975791048767632160778509164894459785668488141560410928820513234094673602685859885816953904070703231059791388206286553313964529761284014528795362983286052086724088961287103132001944523861441506953707019018619084876026886052432450976557830631448867799465443340660682588572086553192301749940564389373918287044383080405077217934131948742685250909765936726770872060977361753855145594181477989089050382435605400757453091497488448762966170644047662663887515135294408160916053084829623878282460465741402477088592439275860012971668847429281755476893463234363273495649434659320961354532384938250820120001665218061485123618755369782767299730806185997706057350629828020413896899025101957479960537541543200615456492935350033327602068138287147128347450908633387404016885065361363863233381316164948107609034040070795018050256126691683356066504502585983826520807936657739044924823133609526546669320649213128006648193468451294358455145258477860620024308684473421667297407609841480756244686688809995023196918893175803765673458326166839808823725325019591127799424700825525570775286188906427458095650578414877837612080288944960640397589279439976935122786634083854927497467527112687553984643423006213537659483083039047659015805751408937673128816116856287051632068645159713016775858406830963032372338563873211748632465822691469485028245719518406897938738022675673392811375028879713084955523908342873909244511123684534365239048049504141538529326748597440311543899511141313798117913459885172600133266636276341031383708930766178979379031228282866237729339218759638734186793933936444439718047012649671276499567756201593822229542491279906812238427974373095076597041940057431781834575734540011053420813670236651585028282009616895922381815717714914449115969524341397569951453393156035351775175485038874308969525019968052873695535016023612214877467338284594223118883541251504795566671169319458695654596547958281723788056972625400584182169739430362101218465537848821538398135663295361769196827288819579601926490455243260715275420463587977896042116957494740123358719042453798654274994792670350093774509002673913635894272195795102011511576714415536627004139025028873847943811950263836023223784018944947071194282760810767147940411769866067578840520240600139334869673525631383017678109383517173510949797863241840911877262777064608427976846485678674210010786140353891019364989813711952193513098750588518343845691930096317309309128057548567096297139365530926429469843263502363218078499653564186320758383429347637206393182608430773323447642457210165278760980857316052570695083284009329431148432657286984005274254136731994251629710837491753237674932068355961123668377071716189953598862852465440842741954784320425660141270735122034343350364024980467916151266514370333748349563860981337533137812956919392179845896042110036694971282570213772670593588708112029653052628067798624166577483094640874413460098832314232245626392274531270157433183506301383650202878038597125999920475477780340600723315933881942776614077575830541803488444996937455116131025315118063313279176043566831195083721423662170540707311166113214814533731381083947870017244085823123787030055568752140007923730369601361312864906939008850825475614653672418477347590755590331333995859351188338904484514815888049096291161689372985181721923601903577334755530832342567486262118049015301511164116940339386008262280243672612476878991940894188145603854351891517909908154609833239617984182577375491557459925410012425616126199667226407935144109166792861342372108354959906654521555398211372282202967325370629202666268344852136108434371029929410268763559256077952630692498992057528482695428749705322382506585255006848268672867391950086063461765113231423468611902234275811223956212580268656627738867912980446078063410224057507813038981532391801229904924947459892399236100662386259664280176662516192212196843569626277043526707057450968935031426212131825960678737844323085750003586830918440329250424983923510826262146332695963469001392319069123092295194924642450245269172675102724567334343251859603890048179585381453022205489585460814653530337964758223812132518855787613983593250542387901164854546055151631208677445770366899835315692592175654142901286213579815131229551854992083327777117122456982984710062654194540078807473053113426514059026236448672790654137782458848605582469279848697446930377985793816820206530676642932407211729571587190382273535194342431858638070850415329134654829599708537830846293306030198609142380385692894033688216799143856326818394966105158158095527808685926143468569520220423185617853136206736898895108739644873579048500189086647221387431294204376463646497977059793750119016862457242659401283907325723416281471041667393661501758503182525680152271124806162267395688234644333601567945085355270649981670574713041654192975131036854514961668026868528537163268470007205070393326336314926293657000840950880980176023261936572730466779428944362768912830305113538544866883390471324006044630136011926411872655595897520807141734512929569314520829054496114027159209344493344837127447592186567298401667233617642501439821824748709179665568426028689908495324267659789104077301334263022546887413940412796737922489593902943787652901643538178955738152049200442742625598030151163328581688997852222672742526605588451676874170743933385612270534798531716608175227940007362447124518754803313950566392382257969362890595743964687008856778310112033179615257720729142656562970306184180472211912505383423287644630830047275241492807189437377693309264449844828861104905495420787387337626866661469274722451978195416114043722572785879918027020102213844942737698961585219729395877252150885965138681785453998926232400730194192847684496455791448350942469392363794845661397976392302029319813430171622656978581154122523858131058955556731739079079898199971717166778312504197234307906920942105133902824834710212935458911498889154085025997845427308563492291577046589616225410825271782997364663375518967471885863913418909752805471396667407471448652251093936753014883907916786848460261462904266536043629263816874340153741583039340764948532463241293700207228213836265998686645553782142846628128452090347588167964192923929487457563123098731739211348721193298897587959906517293239431939874143728232500493476047601397979693789041357767232058531504557393281834860164988369543292284122857153031824561693860306552713656565225099687180598701796949288138953255469499264844745678987121521440192361193063012629267400970385939202310971298824830886925148233393853380205211600723286178414967729286306248574661904963173520977266648374552042920829182838965909047792986145130257996799813577537228503751983652934792945352229937840053135367311442278862174788534415862342318932507034677220110269713284783864930955940226401650300050314628048873123243348072219393822682272842785218318656997481585188975713294399155214424125774289705226825461746420211913636884367732386503217286800507992504559809789682756217014330433383740063315503464053783332422346678572188817305943168169919850261951573942421401417049371882815408402618581157382479090692563002395041468331723534211266282370309048231170017183539130600287674380696254331010712872291935548772250050207988924632350037650379722630167365448179584386103528690162887978900134062198530785250667878060604404374759125984282811238667906004468516896805895855479574691007557040993801455954453804341347670999405052507059207521351651281297096664045085304603606893214715236261269849772014437509074525890105794264263518543016032933262923225305602973833127547445149632194478275810219308549048277407513150067646567099997438861316213581952293024072906011004335306958556456947450788238257207644705326829799534468463591216478165435874174532652928085611259878648845189507067302929931244614807597705312593238470316258792225819432231627530938342594715593069722489894064694420752784434154267347248811286342504140099534946252086124994903156033315088397571106826723045743791651792653365470739810379545794085230404147627966495254723302441057588872706981384735082110914600825945769878116426780535757507956639909629877044839204286746104201628726223545670694909199301919286520613108167632718587851805735842546966330270066055994570031312047342931855022685306832729505499365356827631909688542442185634978524770522640772778842995937176624178161799982826045994198522479420552445136800847543040132601570199002430149384109165610731434016726453312134794797549577955493827420989804748615846483087608197294999078063845769758426712094126221103756555458304834149616542098192899666946426746756271914080554365010433952701077797011924967736091769582221530800090123888327280659663668169031762916042066574275444942205415537225559325363833156535876111275124093372022401200383377048149175458121079622288147523010327660710622698494541883992361351289591074366683128794084434668533015612284700240237973088956954432831177621279178691218086018469372933533726857722902399352726438012992332830226746477405423076125606162537556049703240150759290941062191182040185479047760147555181222509213579605789594640893902634497754529620619825536055346864062425008336202867482243818581834703068848446815512454116013797459813088667779237342526071412591313377464953166645989576614197053551197009366439326765260816943170282337142979707178903696609989744196974701865233191008595218307505366852213838359857105475647563073538584324538296823010548634232986825022145140660870564307369301880002401771982702927326727801918429014330213762890171015314681216255723939521944503908431615955861839341692613861865655991224538933371656731724814993866270306826305242787492690678979056868048415449262469293005092996833087963800029739015548008286270464003644005795560434343109044224058497773671754673842199725512427239378519104732345022812398839646932113527813615240242418061222386816441873131035923973632959031140022692495327922305382669017588938119265044269952871257790619461872630749228590780690431674051753653793259975492455751093182255416979423621267883300887233915737576431735446599043586301530626335528688045018534755058273856119648712388550755397781933586310800852185618216378063004044044741210976523549619595755343807988214996064129141310894897222837456746328689706906177657124463674119046673770060977076695956697294760243150426377423538923007804354007017087490501435124778249144448053270313095658815718464782047232652199944611560024666905073746881495486403420890773751249206021191276306618774463899953552149582058702481612978031467872970028083196834415151203338921943407122438919577140551451182161023537505173233868724398157432885245676037777119090544488302672981290091742130401862399133326794685994255109081565236364214288816609501694446930122570867050340878460370478214799176420492364874338506689024423926263964549480635466875906726961090060383759603057047454258144578633596597320702110931515908875501697943279978306406721474667555226071983726921622430768916607478606989078873103179060832442249773349186555149318463787919108363649544139616420091100248270726655560765330739212524741099060505905889895316740633780334865304724378955282260925787480074405334079988638335395327251749784905370168959435878023196551790006357441354658591499269154917408356505294625554568208224594368167349446933751670041874387262495915540435507307130848732445800177613837650620199608916515418731660983198540582144948169148090952996157511279602242811584274971044214836129768894957979563747179384832647012527619406998070815489082563377813920980271394329605819608384205714961806171312628530293971976731863048577057446249062661401610931080144753383487693471302657299052097634424409036305178052600780605779594657787368247231552340810333500519189808572484769860629317646903060476318794468653219725452887977116208206827678910087964065077678862256318657544091911287134587695118851557040892852743157524087160577494759292804242491706774465622011432920358686734871628407972894063337613851008535646099348310411883035644393416783352745898791495642222701705676498870382236025835884610212728738056145751239425477868548845482861843987991683815527858821308665103160983179192704287857382004628161914067957842559865533438430976048636612649736742305154090932319079142664620250532398906565184298721820608728824903540866331232560934877800925146325743296385839122348798504580969274959616067766477279043884441933296797124214564553900519458768792807902410134821395112980274578524351578393497112960648512281721961988589572108003936745128163049231239995868167791850946532297585058188224027517662794184550322997219147313197890031145140892909348887690382160168983156804023392129931969794230910858868582111739611744785783403685204503494344386579705056999422649970199405069991123629576138841660866641186267141473167667365137479069199905133632772779076817304358320651596220876740405134143003397293661040688939822329430737525478241633192485760426873713818378847981261298565157082504610943953961008528810319287059134488323599529341371695867698261796962098642097795867986117487170907045528681555179171065450849485043718547887560417133321455137296190750797529456473432453976825759379425470554716578814222480647848393230638429608967950418659541382081832463962852983580028603696208334142830267093077727594111653157890628529241732647202337380526173453066393831815678092401391874206534824901277316582994104693859959719570733439717014189445430834143650080636812005096669400796783495356607469786615257555208685396732313663551112264406819964113435395456958872295765886778531682109898473622054556886376745855507313553262513171408451093352067822388845034817377495030709564442390334463301183496997365386565355670628599437378610879219004187555114414449366366457437196002248245331856177119541185816500375791836948797530693808734962505392972964608628294681448961447608223844983246352572170838772779078905690658506466686604569575180670926349900076661687201446663641008313051777254626250803235642723881532257248929914924472011764156818546133767820206780393374702852435201320639065766392569229331873474573647796819300411284936106376626073377691243249388711104507621128769596603749079083661001449045923524528288147761088199109259570567978623121584431315194188312636575737293531977493967436821217027866673128155299073992641285581867878961097936737882311389695754520367316479385535210676437006401303719112928084033780210696220270460620593039866178693999447938455755119645882114259468476340239514613383822859543236528924899134009629001113984430817710335363716258527210969272566884879338438188395601752452325407699160593681992865544625715211959081277057814073514308387719689404638976697026600579573833158722479856493288645887447481914862986938898830523434806058229076588184608327673400710951192284641802508223330793256493114942317356922659262264749590826850168427894068698178216002914887708117276997248429846655650238926216888425111203118713871486288920333890338731525155071542324155647085542160174393768834830012262404444131041696249038007894276695935799338109294020859320949758834250259180759696059495826468473732817812499906486115130158804006511333076824860370364423383513859967536491893698692794904884330456059919237703764056570084539074073725214395118857205537935196309040948609034619875825511082622599600865038048807971836874443470852094309375109556572651910722055340083088474548782505868007683732033723633937066062126448663253597211256285968731846983752153648392931807543728801931161790489708588616530359161691400460405681304403853549414120710910998634494543138012863705046824448272629392993898890416142674348032452892845685200366509507035480599959470268287788623321923301635607705578462108570146382944283209142278196399412805159214312977818640586502704263059520255150364423706934293696648183903191090052299618781156803320638770122019777956734975063781402830680068124709960357541382694161457174586258139571872217462682651619364095322065250133150396434568975289613310054903853168953343242825127459910086937422936895104493422919894372762922017812079742181982632758371602495712761825329311617687890113371853138407208895678474605326421142353117509968164562066033128525631113059487864568391080877331156592537344430106868325974385003466544588041208297460509540243321465458008381797867709366521019565242789062522298659162911026893773108336347718393966577955384386755217249645885591427149026294419773971169271320831644152224862236599309559294470677070981624586816974491353697535644899691568113399407553394568098505662662885327080211677296597732030953112311273402390436293504638474535077031784654452286048785840225964352295009125220757296830943005525938216612982345170157915750331098033031707830716111160363258829661208627058798284549388843894000919349142012294336989658591145001020994358639598000071183245771292397387707218138580966486892802081633883482374686560943905275485558702758567157745319468424766627440514407861621845548813650255408980898564881436182675660082409930300288092660707632184006517184134332340840948243505056876664892159682242340377033228932811804369893248439650561414349487674379593012654741763323439455685020280921378565469414854855179625096948962276738415795289680560878898473206446209672621171874727637225143637639174893833017894487985208896048267340781690972709875397666598817479490384238341928688017552575312464793902029656680579230887629542842472808922089219447884201241897490178235165976078104747079740477906291016145326279755837217678821929852778899945424869667987479688327224421378197639635693143773667993673672555046437072476484133732565258657134338204540525228121089787331571005503418485565891690914673717722157905422573739716319301155396449034325721161597192745380373270960379458299365335808393312244840551360361996311551789734156027552488218474804390302939656008498611541678625378079779171335854817570685390808830784836370199224671587795489946691860338118873039526492395929956021696633418159612818997792939793436021354162901910834590380862734144268684127561327304529323189608935672847926682845231624339653521134158347160303553711291317339332502763201358545915854455888002347549875415441603415026721829685202341421873540032821037616767079372693596473415490985949866001952981412171030909096021393374536686384716532695936293061386996668539703290427141614955182546136666680404013658825553980193485299090587629094454879330063730825461888414921507595297178358340138476305922200487483570929889793415930849957137169437793019551761318576958555489683785862868754851848812649649459328165990526776542310739759202573258544265454725641668842320714703736429838059564063260544142870484816714272364426571179055988096401679710353398196477768917782527071034452612976129539569169365520156004782127504968176639917032854841809724668422913018140530257522360342344371400106865628317827152355813301807379652295362726866649290950405944658857916115631514196350211723512508282121821483856605305581897562705039556833639986085867408016739636403184542035618066276475437316775024715206409289462962538081848394131722741314229617874960112192833771349306438354400910553556889845581001172577028788420759565706703075627925885622510447668697483566288709219054671658426538865254637476661177426461768137863602790919650798954411791689021526231022850434569570642424743602311939268443763190273534490760659498652177622345538752818967025926130101408985971062912389816736295776713475891759986523980310088579330998659202007501975963989133804404039258094291199690763561228495844170509401266264145462815261574399075592959909451898319441286586508947016156028136594505631085630432674873147094381649197248474358388252743315128960984976165724099960468325508885349683049110492943453879066549670894572114332475231850808677641116413082784045653570385444986468013789042885779077035984933841371492135560143470319263323675709545909497588945253769561767362232015139124275921812452281273042773716792976351962431565832105739826413605747524524377089329782053411075429882537563436510520710328466491083010026695004727941607609928023105791626962134695467282167662762052933218343303345874864362243883903004976441184016169677818814281400812453311268126154778596359857325563924402903230735928150616857466424668266874375234528402677740605314613507469227011326994942367017995064209528026061133800659519416553450710546499499040434183561366036205627630605883718320951018462072652495539340834182374122693941650548399021370048177629912780973535097427402199234067468649311496466940449777883492577773960591066978924017223970776089932390333297701676774606463114787159768018628339265383096909666612337442175894500193344101615254641925259391277385979832900372283615445046291359994582390381055237595717067121952207542881855244802454313092520832672869880076273368187246471731052521708565399910793045373160839760829464758960939266660414970493311644796646735474727735426627290257704017623492284985260392676059772571395945967250691464955528394156094283712427472523153879883317926767405463777511950204442963093962832217615398363196494149922186983921122305840203783967850876716071432597032324434525717526659086785132167536714934003996100489045929734053341445807226278486537169050173944335849813953232865274669827411215224900456473466214503918297650352537602595571622828776254804143495463872746201551561656923951578934740840360651210783958838736345075990689396367159358920943726900530377449493701021686641388478055638434715454371792045955845133859188910674433269611075563584228663931771560658186668608406749155551239568474549507534411868602404579961902094756117768810311127086896313841272426742799354098206723180309376209214176003331045073447611785193758079024379086851916115425829887732451613564517549430020908353872711921560057835374309221876100892043120345145344887832609599490513548213282833808409301208365632114869995532773052155691211261653428234077584293795062416547637334273294913984197354011608314352353677769862995609924829496373587714971376469980898391094325018742162235701303418801567822043000708010873780400247010561560686387511968727640870167341777381660356157180887838112214667757841719374551707121347289446742928260746752349856159906837701134705219732845615738621539237291321898196426693105548668122703676748085896940365802670632684730110250863634784225145756723639401019306660210625328514231753662872824433885121150077814307191449023758610150868560320886146921499729398247231238819293640733149345977827706818753530932435481881764970339689221943672274262382557494506600091868059804835180337321919962749445364663763290380593973103249831681496447362644690216141155298843500749626137345631771442851417930479678793763343263189648982063215411769555224243360861295956694071498562645034010728414500233919859289703486208452377139670780259965439131124086168865661558080789239341507946156868371251024350973256350253964170918374638562946720387958529285029218305562281324288911308428981227867893353013860893132265090916515418712661558334083643958057369249503029017707774835751728514566482627198644518439747231874201526166176668708281954857527360817426170525715962329460751095244295022077640860142102995632170648988192434488559262616779932419995184338107867093423476015572581467362975318090083212699351705091526758705598477685613270978025365818254445799711966018869120702691662352956870572805122191313562197011507696925514613623458491925481493927652144117035109934913196506991237775049920135418701783335989465880850953836257274115267576630285574152406333842402406689911709109984248093050428695428579710470687484413609396696378623477590279095578384374225828689362030138897598878441131782781617283840638183834319679156117802373462883564004574231951186335395390527769791080063062893172825286048899867682425164028816883232662765187404776835541438454275175335707434306397096766568364977714961237840172965200997667902497724832942393832442228743468553512313245398290485632884596969982543363458286552403150136841166983001575814121586531830002308265950702200717260324322441511593219132257285648064889821561346806674832675289933512923129352061182798942405028042327572934492245550606863054786674698302304472175973796807384282959063456682781785415512691508043963158453464075607509415212078774496433413613259429877334126729716365210335090591741683914645831844066416253663638386224721365618885762055032787786367846104591150775514242570975679638649725448298313856721424885617496327992157467890880688642592299026257901410466389997682210934277508489541676016042363453466083668988269262747473718510941060786226540210979757953584777280844379488822777749412661915296345161914614268839516646872560207211477890147692765627394643255277366308036976924459741067063240363119535549797256627809368711124368258330879526310979980334752375283613414019078591330742661263130829944876191485854500899807664659791409722404671031591281259978169163885486456730137037423925549998631159618229801303896857674733612511804811617523499693895597172917150321012696430226485163813048750052132639049306733784685980821020318785035800542672137491354606344877982167983483479575464074501095109507752426561494607279343841189749286779000846422004604308553297144377823781869404208351281759883838539434132669835697415652468433930260967012723292672712478318853338529178231725621123685412849815726547522707863782387153929110673325306383313699059336447283619968440371462890258925638033368614867218850834620695031124381347325010537587924815562116448086670917066871699615938597571808818595669894364979320869662290027069448493453661967564367149367214178261670116674077377010766424227167647776711951045902981244365172804396403232563315515961440777004525837710427117413573565315987354398350069924708207810637323152634013352297895887928436188558356563661414761517112470283937308852788960034278227862901908810848481397543959741835189991916801224257479495126986298451547384872184228427939590072847070141235366588919011128012951052266853313810836628809149065400843286825848099955566700634115174398967104666705546055874430268176493441220222231857798410183549897131162893187012348861913135593344406654316641592409060784836482343509491700646902062717694187831500446782185695718438966096285925077296212529757403255382462829107795918266269718757949743769078415916490777767596431436247618578467771557741808907004303192338000819822664914747288771206371176055832921791870786275793665107590133024690573995554171163122750864160220213243417535594722056723811824275196582129482048776163157296765056135281534117683396476164526993682303924641562425925278772031595798443958153789025151043121809300714506355999431269978223298911183257331290571404285431419232236335405621650518031820281984285503509791571585280239877800476160224686685809868997253903857343918712657196554835137124705135767338072281047438224115839064773504212881889209651508551526920314929657469327745824985054638505384276094731508321382004403961029759283103823725557220202513346346056364808404979702664573960704348994039385758203411793123818960550871025355070931130714772838413822767482369712561136733872158056979091799166949352629697581201883917912891077772906091590662227253443823355447677295264564286769138553909670073310705104890858764440960292734905641000910925139389896265015681740946885203945516996480533963317198531857022384482202856769905854126732714568645280613220663217422057318262543457482082645347098289604948756630863764524749130916568916050386224037972007941056891909406387908651772452448812597867316050655558586516250353716270067222396446681528315244727302702754025312981025761087910591553142891471420943713068188960002623387235994396212976347887906669636391102204220345792568168974237010555443839186196294475253937829954031387424421862552890738901790493638401049744852778328940343216930291737307481765399529693879788137955425744336954933837774192779074751044693858257122723170725629214842856421537188151315762664978337109968858231809781225373882594202686237674516554037784251052999263169112249711534025652215969321824232917919397456500714058576805012603919247549091446403591957896449503869085119566792281873180823676006723303343583144325775657536274744895845243991333828229698706442015471495062759573728477259464385511787141672371441136608864969054723785656110163848894274219891515712339613904909877303280617034219553697784406855794911648869128525142358095123892690844929590633383308771403461639755147464917949618312811790548071377644148187760418272550122722180427745742361435891125315370012897476218845503558522521696646331244958946544897734045502990010876055984216572987240757024254992140228537480745039195623342336933718919387790304199278923659519205070497178509939387860893321418493633220669652715006674745010742025299754006908081498745657788338193115054038792157045548156335013199008201328657262730527909776002350416225012769131462880932648377559378990117279109662788640945096937637008863781101002847168732630652999384958078604222886276944760147337573378897123748617208526685079019820607931888048526786554943687210761481161307610747399837009438294660296944986602909770488585401496630376336767707849898402686295233492596036905523639824148939228581219012977155175002761288638091454894473396359834926581976171112051577445599888000658645939814832885806809368265576047028081540440596892718288888399590231969873074553783326468623780309287946449078303728880547393422521060608067647418335631035801006014343490072212187992602022601642401331925070018751681420423995463713895016905731206754220527037549292216139692619806348973037697500689836900884158738560642555907464785228872565080690404304021474679968059555450468998444653060278830104199548042101190026560890332477396937024129861868351859657354951105433425320761256835353565817135562393520811641855944795416376204144318979661368272764238828033382974905368509663112676885357098963957082761047679281852069842630464832004340577410548278800694699475059472458953439804567707594709603330628032441324649025910428004859979506127195980371189621377331999408839487816688922122945334779244837811028335504483375284559763683563213431967268956296193769568765086436567806083597291951329431087390265102513843517137313736930186722619526432077998597452915683935300678363055185341280843351244949175010918123902186712541702192406661599176523665311440145949185867534686874295063372732897068611722985365638662301899766847738354910488028472256191357433303988962588942205053562982444855120339641627933212257508147488147725866622972996672683112446114606251043961570232481829362537263701311027033240399686090354885381177709565184056029745614868035368614838457997459962192995848686987808698958228445843337425260193477478471898226115596447119839891350340669807184916645562544722381225898571885882045508232838488622701843636462896101588005051297987532057198421951963554794330782542423978779325547679227158012269064996865555809350953843643906569792673621041511373237781813983429026218272452860686902641959526616955891471468458375312619447578990423241140334542942050294908184407159377360965037394996542871792872214454019342853826272649134711927038207900039541566716847524861027141795442439786291266163824729830410326180182573763468046748427217301946107689429070631077304806928545108100401141290914803697042577795925100404829521604159912198415552607620209135926617075500803113478304915616435955263920215947686076469658141547933887523990523009953201475509082122674545763341275593678610151498483937864070116809703521978187239313861000395396560845537687885571318060960527314130725708950469275977153775503554206876744447104697444862038915028373944529199619621296533862868023187891455033518635010395687976094213365967722111337875635480060607502159238314846020237976850910212581978277728453352088093097277895404716789708136131058639333064774844168418564500353555964552253335305827574901322988961230758007780247636038260026131725654261124259934867551230716541235105032673226378899716635324538797865788571332848154340465724850246260165372678456931438503222049437962022655654545443138381717488548629634888588970788378491192409328308846466820207545370823571636732299171365248503181314312441437197313282051738631072283491393368975298215209163779013975508753063941034611006100975668803953466548327860856664666908485094590219032804110671949646405064865548565742052207456614673334968476647583771228013919650201352467879429771899335920516192920021256952066061516625939203760106044245701038341191225129279018967181603550564705737262067640959240172977793906313009812862898479156363667768639476802810574777519645423781739364661338717079175628131365306186437417229447427307504200274317897366282537557760046509828302181820833780579777550116228994639645410215589302307482024324986191828149069479331683535859551826718456303572328245636595051574240719212013450866292446516887307860515158081929015080758275291793244693602953429212846487055507960599511330569809171978292424451705870061595441873815086122630585037798724120691016650913330413079522237775148649688006406546967250833778212009361680224418545380675749629014648539162062380979135212990122545235282713772307348673891070074026131096305945567552055751231063184751081622068426943235007949823943085863939340341243648045336715878059617854852467241787372507229246978923791632021692613706502920738132468447920211602810792231712272901403560566062277518151308011028822169422832593987652928199431102678531094520800304578780064631738188869403008854210345080934631457632232381291341919093726689925423372257170677224849714174344127107504522570261643154778241493786770445687118113549687786971546760592686522308190621198081490717675763721768231885670111472419716166431314822488138203917949060640646113438106125135464083842389149429837959996045028593402484344668573641914499138609933840893236316355869896020007307664908863846736848498001562475983917152836934561223397886120074438673632218604523374986382472343742560209058896646750346418352930799874255532339747816479738015587184613768395292582829138075199491894240224572865774232478375911917227577495367610400160938788965895671721739401838225482498149445879000317924929079959712003010114261243649882398086202474755258323341489392352195817431702875244469964367468445993177274816896131336524893461136056545741261327169607030044276073100323743679705821657291178109921127138435521637703677009914016568711278764391933279396190860029096080438274123999302544672718890321764371255089854552404522844451457087680506785398954372539797406688254855137807169076511634809980222853692841131183288470523673538003426020510098064491894121505104104095076709515908317641176133252550284173674122539860732816603401606581395251774146125385718451859043890046264213240838038979125928974571866567768603285661416965620335853359441839049719551318478128986029650568158678505208423161559498770216901495519133553187482674668603004900818933460921202369540923834555120776844798723695388308161136974705860640616902614280267150284395556829788394909615265863580673354855482972027084315305905323815813725516113269217316507691631834100804910875351405206661733956664995061037332860508526294145763297393552977439801230682244371712228624279790643561384521006693300585056103100811419171212003387268095381955024242316068159370107499252667019912098474286739874903862296716492370636507143901017463666128654483392211488696798210675692869893326527298638466588453123362451997669324470283838032539499331531154095094572655761915397554905211753909534626123785589809322218028353223792373918939831776787056991850831131769554887569533749487379022498141046565721319301695376506482959192113675911259836647392095401945693516160503394627442073094281805355164067096277893781057121635356491087497849531587770107146935961875069065215432170615480926019897792968483137340199108405395821595013037875745029266040110919125123058557083673930095061564989625939709925142531892552531245866663282294801763664548019751444271675050396558210383622309594939508670919590878792415677168757333083684999279297230492739648491033951533945627450375361617683867046607030116937428995959625065612777683081522783768106708461848023774012814775039537806064740876645055214928338837635700632070148291121842194085834297738864519259910163254507901903693892695009785861469244783907164617162207280993517439785995805091292657273924730587017943922522571147970835315308391471213735551403866434816446256362609661471292696937544779321446619242112520772906877587257721318547843489799217504306653666201506618306324877815896693489845417621056731810300141396859026386732625769169026483138551391605476481621898083894472089227101509167478869050878453720145828563039111217574599860890087645211818739271381410875193902425236986462874604261774850194488922989426947889512454896460224908374906633543936853474593178617594595561682008104598557621276534136085273491486165307623876285271290297510067171046813669348942896205769224118287956824149114534985567095045275024560357866839893435842383199360768250246072981811022202691398714605018939152370875828392430232825923395399900576821970552899221781293476549389235614190120239453625578216094021928082362889335883448189729026235151625488631387076819913811337932479593340167298893434599304696284430332841782935546762111526971322972592849480766429200307787494520530987841125834289520016033736132219377149771551933393892107655744906974142192421593545853884458256284409567597331346256960771604068353921822337704140077321034113889593594758980522632133713677331137980004556830790322097420637871972002104362667035755061884407735896902137850243107625820022999734977598552657534414344670624948499893926167084985914166452372971443611304614386418639588711978606515541079112549144135108066484542080354289861938204955439623203195371000472240570057938018055994325945151311694836975771382237405489630880990335804790481772633844253637506687805609781566720108692477062460015672245146599726563921568848716035543593591039760197384793430784339357261679616558293714791629218443387038263939881872092125385671059465264520417008679578565154345731920945646688928549426994541732784868465715606543436483712030491423446987519361375315470060037302020636106980698871105402204715015446996891752959772726407860090262836009855573207555011728275332615702745549639972008196443359447704004573189079211470739681506633855422493963868807356226931926735174041722825624166001237720921527029792333972250813139196962536858432018284636578671693200604970947465213067263203877457906252991320175121331856670563667002551189308582680650619310659486676486841874113073037966371200232009786216238907974618038664318016824461147997578983401090872742173866312513698888290927702389317015070178413412730173103845920788620071710374662869668731529165658455994810935297040329992061708307159825145916008490183556774258447082860617502899589056003583613051102758331846393555331433315139280408787217941593411431111126211816587148475357592359737643165375059522113899833708336626654469749938504070808672433183875909555666214073408264985102865731629399070027008917066687931477506704793646336481187934948827555526552391934110786880664781950004620916860354815950889207309325102305299453054881754631553752069795744985458381662167444862676553288623447825208840903023826582250208142744453106315552301825757863388292870730553409864923481506828860030767483352176370695904805071424163065478839694380888352788348037843016297303984509041323866639128915597526381719239175152800382535237443876944452931145800178347825071753466638407290096832393177296229797929107276046582819023916156543592770893175219790372370022429850618640786963786487405773562321956575503859622411390972652181104055854263416012161941164581849479074226243956333821429553004618528251073439314692049305300580453099281181623241375948131448027543808112234395306041510174927069015899270861704276546527203221328019837828714417590285363884438994732648654195824205062756348255905866527935619073997424996067690123472300592197914477945002988563623717762442896658604380126400811317627628440133803345559236838693094617482141430594383753885080804970344707502624153610742535407641657577026598847255241099260788253249427468411499949278405788440367273835104683757059351597483233873094504559151657132381480784897196749384584887373886786289507735673430020243910861530953746917878630622226968411404020478007262640112093447722328493200785748898072530997538763256060720700466755524945657012981889857466479398195106521557934404014589729519368944415491485861136274392382732513373913667035048409472352151290579917840798897450808643462310395806560630635969403585464920216947601802150116469451729612058021457608732531192359594398969557311568230528485823754186021293156548600144843888395465951570447985359430152686406191497215256032016341531744238849289734452234420714946423014406458679736436444227421300798376686468948781666370989535993990097739011246497303600048607196536207546584172940003015114211070964561417016055382495201555560907049224553907366463437493339465845186282389696976221339558698909695484775990092803479159615678714774166686707039294719414181831066005104309056870362319748260173218351793976175105915614095205905014116523248738215650534059723255780045028211270315960818007287719809887211360351993634102654629802859184312699919185909246606106781732796499406439279677209998540002211744096203887328856893948244308656402403695948885507412422695569740707661688603766637176421342976227543412470142392681073558974491875182504836598276655740774930078974861113608718793263371351970602727480444173659450276532117279319750537914582810177297033281167069873276886104846358508474632152446378871768577801232792324076155380248762568352894610203627845731966279220073618557420841986379972157241396153412963280389527339607206222221211643506863933835377993462773453196481024341908745144008794291888567215554734261847349573716251857033612793781173764546600328535800505361330212064875873078215739213096230612735311940464586423361409827005969387323819734908248220783410888099845386919063548847016882388691816152736291437506510419308235882004468208241798501928328562270830245309106529570063518443347729976615373891854918931149652457675267514622422281171793295879663204561906416524957447457617141841665902540487458393610042257367703166635138353702299073109934328136640320682220451725028308036491766766847795883567860592753195629946386458849456801850602706097508459765854157480499055195952585580305738923294221470733513855531528797804237029398903441334628530061702779093552037683694063541034115524419314205009240610894871689859060463396350996773203598591174617912503715123613813455303492960148239471712669021555065116926104555219692611552042184835473099903769332479633448990106911518438140360112179047923080194963646589812187589482974384176178920177026065454560684024666341891525969473255084350066728503035654775311648577210876149650660116156440973574848010593897619513294099024205389222318868519591534816628404295845880647450465333152566960972238850150136569810098107850168143034018296714901995206399204843590322010828813020469360773505571423504285779621351886796718829176498623968426970533942208413991588964807842717572213989523355177587935962751569960344070452544718203501808397765425537226655377421745391045979648268755676605671912317931876345108081615182204374436496156527310866920339685818574986700588970519477890057291136105177911278264259173245526261945383176675455443087964169778992563633982894701631780517937149333692423044369606681313909282664943591275435924469749720834813201463857727510208511231567860791254328506385596932155377717106843722963971267283979690852943915906952470175620561779540820567801841553110550651089720597844171740453646038446459525844595806968259343971314414451588028895479135175316165623537343916903564919330305457274868525517911643007319831644527684681475130023384897274042029081478977608358380393991126896685191000050039692283233968831457320739483358887262798354815662798664026994164985706125910174019630977387312559566010587064124611842630110389199091532455289833002060546470668109813515446278596241921765929226347232119471978299572477636979122687838026950994124643405374085390682702316267506017292868844005928515390461604806943824624439976282422384620922983078902166805785343467571503005793216948776515817167748573161783599665401933776112261693030190885341220388903807234276986904675180275778837807802434495418397055153185084053495610682173686053359548008341572892408892316179692745349815455505389386192882382854087578604806883726532204968615309114168250159659772401300963139422407502518117657491297151760730620921046433991089728652278003967270633337341369044612841993945913153369099613063299841667503458460957048625870304920964460256038957920241478527852849245317292359837083820776376417412114569234359609615538725073377483735675623840227255043190304796476827674689277185067442137192436804290872975978802665014633444039032044016685977663197113839693992664956494477781017063457601174253842185620469828744934899678964679935577181135725198042909710974290419772096854100227701766779076711043356564592242941633854384058333397839144726408840320943376437895145458279330630194810329098536662985990849455426881114091908442025748610448038842280741761509576660468657550734267536073263064088276007212198130700388396626177842295738713607750400521963571489814705969526518580952018701842403053573907176148223575548115949699387892402987545714642199121674832746043375055931840362132091512833627163256685682081234361990103895317572287764201239050064541290347708119870341986858327888680847572466057208043177692688435236919608862560324917732930010934899140091563279440165856651654261584027361263299033981125042598052010472061474898742427432975163568294400964236937632119870292708748669344308991199941619902976250473484413426555972498156016418404302223904654896988479935847262581093825195158903706813713102118911302595839794509786140150326669544286194551113550089587812420187530500152789995717109176720252933845210737823907123552308794434747783388800784997661161234348239763753739818638349281825701799803766934997565000982155525743819914130072003638989169557069193460984788019494273284971598862812243288325973422900161042763306737760216809817671687519351424816786556109484152382924334801296949171762137258454358493524732926779653585760029530688129970953270580165500153879507881513294693829948456623597938828744484538619408988810922221349703722585046131372748235601596940153990208781976429733006730492470875784131716975890940420792106264230981951011855070364576307888931515098421644724143852428759617148860457725559954593496211863996407070146735877385542990285536543253703802043571637589540740670002554385794782967240307221355953205965953793208160288229890279245872835179236021074064351445062513835571522653172185505254926312267939076107454741860933442801940823552805260731917819227661841906644844816699898650502133638398018555348013695173807696311201900772393255428633762701292760388515415715916228279771218228745972855336952203640268160747719285238645730095782193227847758187837919873037318045460378789471643099572802150750003402246377912085801077656903069631969121290537172771198313667578953687072747328610879222042145033522532712088259467343214780639998526446449681587938833140597404063973994376288011882492508300626869105612090967538941531242657520353596804057078117809430914564138546684057159437828685540479956165181732302318105452413550159587537609409407105616759728861176049417432014988235065398007649363349833794652869984223039393888468681814623672258262157100248468025582008461927873875193527339357661872144968216525377946259602794839547802046257767753035771632794230793060759961060898129888594047826461669223796616381530172151291964811811045990172558920563740991444887265351110269158427379326890015906248592023912262578711313407261044600366528573179080714444771415617420646056547719675543645825155215751436642948060846304923634873672496125450795365278138070454022152952909839045863177150325950284447391037304531062062054259484749735057765111408326420834055952684938439587076110993724144427650127959400462495392809001563071484843699692906474139650401578286621120240496861788362872368458516309525530939479531583756649604420788032735557814511025573250680064539315747767653130732810911675870392992348686439161790733738700698857076365720626058114909399853615789078970263092657938952219541626918313434375516871248630707132042466115730191983887832350094831560704443562492912365408240683644913941291354629352354558478513219871872243926738049729766759035249630080957727035703504878604322301879015570790452206985600387556562873193658443523022092969003836149901823716343107908394546281669202474117719080072666680535954218616618944820701125355716758013096594643724711541351357035874910459138286218967629157335725701092851268710281603610849066777067411320267852843807485671311731538506425759668249669092598455444858686448454346041023441781122802931123614526695250822259333223845704603666290929492596351737361443779443646200096922324434015233558376384682245873336827560889899733147109696240262992736450880041162607276788640020355949513179201570318581952035760617941121762073562058972470093051619979521860464956358399199224751372609893204885990881663307282495598668954331841535375050484090774443553021806430266251448385053052060435841305649231048672723183860273596339609962354908258197300405062559128485212485554716150095915815840318116152437659516600505214373488962518151787819608751540611184196195108261253928159386963808527169103990987709315694552178106313931322584603549464845318538274672245112277258577309348146206529744561601604473162685685167594282511348669816297444283633109361454776481051217335781464587480656207763998235154003854115420870407623691987303362755859340853479275614137813762703429204463763143205748001471469970569239124925027639269383732386438554280912548289032033547888573987115552198153331850456825446740499293661942781649585771009269783773323743159648949123290505860574579855724515588771625164689051198206783963100991466240865184310017744053341836814651719789012222893029265419939971142461867847719915282924158733262653654863895636659771724876836960417458161624345570780489799892177217800136735788653538648267276785730816730469425237772197165465364754285347278212868673314422717313337365237492241084126422418967416470696195199549256456944046160376478533772914960690172013046821614998426870146840501539273306802309124363644635207178554794216383795802780072214219662927041458809490355130577301118373546828068953632975581560082070172812429710472241817718501703887811703123032365035508755424308177329588784870861493457371777287555146902856747585456085446811514851072911919637910944237950024615190055603934875461476968839120589264825585062239642081078268893513215722835779909263132690255008985232730423130429001688704707791697615965743007847571578412744825173594621508212586669223645518203067426162887788079195702734211718930643302694943913592179012640005621576538292591329380400063271569745675488302646691442153110598214327581168736625067116433640045662081830452129497554490413118206984354845571049599752293617792692562356272066022976928454954154290366435237233420771960638066381104786861246412122332963782368077937806028851952393133998822452057849437406575127320403679953763407163478085112022852254047845124364896151993119547974220502788788886951638625624741883753730637839917843228788556378374939858226207212973419191418995026590025537836884492859422136841272746950797348986234812148993016293835230025189246607424272067233692488002439827600259408613944671719949131367906869365560517086695360090466152746196694842111451619654761280175524203515584528980118251145747213248811609590776540370661186720309151034671570194779595669330567862290988413832513673838847998933755654065222646215580542895620561042812614704726726588776949393520018043982577842291562168507191552177626797036664538611945700322564794119206560890430938944908557266249927248449900792550325863565260840806570700385574765197064034451284517653534274601192381941977658618068346203224217706244292830965350853026566832642148378266686274836498839068106670026140582644459191339148097011431620853697974317328893875420932338426180031998430906753510742495067980646355711066481551458738992519062481482276479592868166734890536891749122226019315564595243310801659422788601369332871272388466439400431329321227816819540985526986969009683078511497445647823389261400559219030138175914481192817367568528432798142643991856985946707025945591430493335128939741580386797390806636897272240813302954826617971306951746050498439335574016851525503696761531611128069154739688698889756920720676325476673355785300421546752674457164826683114222720963553418643310735402256096631009841302568341762236765197391882671469898808383827665737791071772890404288936007591185778601883698761489446353439842786455216513732047440153311318544395794873587640214728569608102368256528823546273836498053749101690177329316456959044241793035425565506094096008818398779949390250867709660946770444277960004508968859405545564159298757707059886469323194217778992267057222936495688887145001138848857982093653388721786260653405196310425661343355646365442819511879579448783637520702051841952039641634725499468858735964189785470734731117661694317066471592770622110919762811299595475198738783170131008275457024450742883662050105631276010790890693038781126964151820610615975535393065215677973041667810563637801321032722273669985623774343181800595790838636846288169963844307818104669305665671231788994742098685676614093260278618559099261059127545932024967225962158192254953597130895195613527765744972531595944551702192242069939106236031402122645177569545439931254953374104512427845345267782103978282210862304778225578073244955661244439826069056376517417287363771339669620920623204082513511823769565337608372407328142469420607364324316121527410707193742704443147870130996213930777345905033262991805970117632768890025312667654270767029573044694912412838771936250505264288941766502141640517842346663286071192391210099648451121352404179434484702818033933194209002722034142601882745316287897018932082760498006508178005652324628710344081546331019668516915825412193437878292492615524041255759534800344301641024167271743898618180399339291531484278784260032469515833509936035447994677548846269905158195494248565356005577122831064381409713982253741674941728286107149062938796411943674852327924123378473277943065705861116948202383793780561480291452883594756762355978676952287406113711156419396337974445820342806599518199005465477278107750498836575051893871999562829448923926877230648336304588769882868900306108933415656084225340373250668616700425173146701723151125598208640995867618500496264232387852908783057662131871774995787787757399343235101087736067016890429532570019268061943280976950202882647968858063242664691806398079384914223659326055175431242674277192663209452279214571224463161195646299434832676304872373504425627011857372388885295140309008127906570267725938740956974176888544877881184173055435678840015236289873778858303358174432450078881125415908726462554741671489736176281097708412652080671325638804922766393266234457246771578862909761788815611462056518772511902618635251164165346756569247705589876966043088687750611633807348090191523140855045902240386868197022420558239520398110441117025318084606106042089362157886722759899840935620040952661909545569125278257825443028505179843500622225472535024308258944523625313432483321501298798398979574779723925596852160242370517469254782838631655999441695740367922871583759119831314265054704684371499515337582205407341083713322728832881613667283079657718889042766943170535459251440435702049580448635712209749300013205583352926699730032765609655820271247995672086834018926792899091578042152005224744740651072573717746377881375778297962297357336854399031966043106995963662647401191871946908888747080497125633772768687379158313811324517170991659091068486945550543859601492300734189343220197508470633920013238103555167605749571715171046124771119612582140837368445324504892869625695302480378354900787029820903400816336232777348568160998083638832154434277504379949951952900891367190949484644042693982080696105776524343764238957321786604039271050619918310187821104864548272258422283245862260491887379899922231221227624690324072363223323377804128259189276438441293615632130170049188803904148991802140344976162293497567839810159426927318004181844900917812505020983547692691355766209806571121187186386969815571748730873933699719351741252813981468947154003617376038120512616951228858393846599706497610233935131084935304488334713972349362857693579161080342742063546055064387188649917520009824648044185400880610595694827284188681420066858098404176494359861854552930829035836624393252970249285590782164638592386480785635134465172013276214524785583395762773574525615851789997671612691381499459864051253448335086073314820338088662395823396587787891118815483476019661856690783419328240221451998261170897943076735415484531166812965311916251800482061788162876295900787143412252118994081836378883683926480458763341928911933243900116662610973226195381424231610659048097187348120009804800595102733194073650396143818543724682464276088664253978604996901221800282282063923843500685594823960967599606872958894212237371322038658891652932734225808705088282640540222366565828909462948050262993231449262128971417778891861491607745991951577109172461144918871235587775984166114725584276642947572912946313280190985988592422884663940596392067892074578239050029511156195693764097803285361535399211350144575073094297426556931186640019300057332442861863305835355320149973052355278794026316682097591885976624599542837863672875679092281077480162476704790294911801520420352519263001166793798771030983949533236105257507367916041094064082928840035969308167800130328069962032046395330799418847323006116209823172998110114248959580425951968455060940386545374811981107719669714110500552613126018631689397273939183429718865314606192942357517312220117388278226454989152597228768862671139968052596892145815266258980852646226861430027365712923917363576277619749613128246312127738957341673647692579000471395376654226033821113058781926926304569331055499133057600724931032618583032115529933176728811030971620026976349113072567409658614209104903567587301387368994375748554252980925747054880006784328502297120793938263326558794894627260893694881157337773820659906573700525880382880167821643220950728617775386257191408515924928615637830357395384059064099944015933717520185750314196747911156696311652092830251084306150161371540340147746908083070601386312518267476886610326209432318342218606660996519357152555828730618695667444222606759492209392827430895863904575716626645756718147882586689917285795990891727950826806515281496087982497892899541100628991373654394047607207175490037403263338008409286891219993105423508795547822143783454898493841842142172493673948560177480090624033955902929759824703165030764728613422829619554107739303198386595704672995624435760956777502074799459499523292593449584889492490163385568723497359130382079071646552431219530276702852461330474044823645699306098272387112176499484427626023982588824059962205141657370806861490716702820414196027356349387563973748736115892855798909610649562450387479554862991469695251582127717521495485901193582438477164731143093360657952095123902421100564973616985850342335178459435807783726569245071214056273592968649475610818635082957485363946712715414205882225010470600634733580682453087489601005809819159078459107647503265739063253142837982459849451111523355328642067500666388420062983130209678032355363134877958699899551763180156808966342212777405280794465690738223246968908973119960808660157196167657824054815041108465927974136353335062709407419637816396791450270806532574700064590003197631020556441794563435956909482717994873737167558232866976914197142635812867128609547769939515749582396073678228676983371375609556830386232067821852620114220790843631761745272098048503136259522489372273733803506052369265281066294811787320439206099770532130435538797733792011732227012137081518686597450228644819291330523660180878943210414911432417017665697896727497802276612028260775539890139918627038255333276325361832074352309390824025813981646558509947921994979043208497681298331495253517633907182170148151733507315944272431596864125570004142180660017169264981372472459079105569780967635444860436453983596067564140758844703657365741676114252872678222539911655128617784004961349621316074356601236385320887348808500853606349453156867082275990671083585126577598923567611725991879608793555002973452756730395441220202130582818593000184061407430890412356419776290926756932239552165017459843391574409538992783585683445499008486891591508424281858036429901914508660189372461641686554225781731081309160530340034919889319923998236592342604000758337187999330377099989798033128119344989831828593485727477856174443290156328193251194437822841651131165971207385748795093356411786218105274549387397424170581425999613904413441597281420752960521727777425560797189142773632282586834413746041251245053029947926374386482096060791800358796340816189311019112324939761107291738412724194867005007256480753083453766489236016655493129121990229756931460938821660244190276965301196063897368596111436689196566581590034738638842526974524014562018909248624310727640070734193726656515350511671072445383344935394884616964120088731579254703805623176608305319400248150222176657008835174165288736405914323957527846284375475377327434204418998835997114950292553799332212381954858809842934407002291738687393022300687054506593965981258438088354346810373484381225572425126496705464404630169554663069154572951794386233764922320224837814585388116635222655637823272232882849884267842732996397994416816666905617467547794596398655038992957840245633282334803754057075405999612860114681311944983395054186989105994773398609802475590922537807543133235177850802172919260835632820443727945330307163120827044234922100292703255427214519005859766776190907366634027062404905093400285530831608357161582999567265825352035230476756453297079780050894584650686447957137472251660576651338044788644364996546631636822357027239295339765020339659933936554009001892400849320417254647509796880572965924989857114969956121889084637083360875777516196177650662830950998286714613733261987121553296290259339636968801326572894446221658238232877755497588279137519544765455590389449368784544747711637014155815641548630592538606583560866924210689068026763630728382219044890128803010379888702591103643101348666870158037679158145809837587150144713357008532266997554526840597627983097708283507114862278888584905499553632999248036192816784000278006155410970187085535314864716841274488293280137515086775301958325870098051858956567368271079683439512227275808541644920004062112677625505081834979719699203391498176270962670194496606238822078926257745648597734347594896640481792970103283232914637069846545163384870896759491890170733314356098498719275592899196502078118891117955960489751082049168994818715663105548431522940628221432019097653087196971704582216296444243141873589802043348012283574622381144178611719695014066839855981498972730892379981764621637918227079239482098247091199058570701908280199066425413704786729359734673353533609353344098485618508319131864064521917596741626778802875649508544240930746822424486829370455530166503002955543839688283714138483995018319339618570995813018775702048235497919388283576945745869378767493709702730938163813503264674573528859721475548469494132697041771850072056885552360809260228452795908669899348059961081574886162054887307588231561696321742347419609381160020706094901722203870963670179520190403649994182995063606552184886936187878161308269601870146286476967390507058600774771307761343718767911255573824817478484702604568567343243644436983725613478558905866675358367574082841907707449897748334189607338917619086983563509795435625208661275888762768415409842726341993564650939491338585733563221252907464898842781632408791881848910668524157366187789684655479635385584117410577562852039065848198055078577386556605988499346310175593807339870064571250823972458857749595964495779760197543884033071731613025868372423732537844307109286796394691625962205495134773433011271802069943265993843895603989046587445251627774548461828270652249719291382214955334683445255467963646172495895032997155757642467096052259714433997238884579691929033931855792700200370585379243386510354658608275752496870488919772332543682181979128620076613064243356861074290015490593631136266997460858121873532133054749442057486403359661551526350517514070008081977225397776796946586316894292787702400897379709700330231358544497527803056736407555238916351606486181087903565502990233600511386097177527356673961746095010375254948969117177653260831690254252336435945558668626771368486602200090724028294517471495232229143937649788937748160345902246721419703190983862841449297219446409188860911594113832153469199060025650016512391690803348503375899753843568794303924033301370226037079025121166896485315671269346294645288768389190337392284991521825452693235298732822532185877449866661977874203278478043746392456695449105085603194925032099331271309129800024790426035537490787883128644880829504109625892198585075082768643900968806968209827072957313015124793606133291334772149566147332805983522495344819822637010242075187198854620046155905620835779960958756426277977832588456870223303693841493483095477764653965206452558973037585327382936767266349725095031150341863787251511230428580302024770936390490118482338846032563382023472161745920972833992686412011342665785708414519640889680748227223342456386663895880018198026436444687306484751509660726823401740213920341826073374181589525723723087540362705498420609331120569233747400101784774961017101020326805246602794290042625507540283605929266437723994757505870884475666383503477490947395089602876537990038116009101679733970878614248226603880382082260451637147679989734058012882421525227565525781893408040442704629926784797842840777256503596238730939935870755351318262790809936403803444127922635644908445493186445085325882704939412910376583825333176492831072462738654901648608716914920482084218488107607304785565658242183446229422032540889649958482861746529170475384935128664742788006708054744138504502287408398337533176659971008616073305542203504580033107332531902043015501519568208988087852667271602704750078045932801530103587272022931146466374281708205060224772098884927073149999779693657345813179934050416667852755697815310708870913347798128398292668129535839714918157683913751368360981830516778034762925512599562780657067369677054006563617320909634439063966452536227339240671181889819385004457121406817896291592217441430739652243426910391019152803738367415106645886458567726165596699668365709272573557176246992125551410368477649792603357574140772193985310432318719280405085055852262631016265280327062566513351497653466553927042189074128639105182140036866306123943239766699723431870121260154898810882596970508894030738243467270165322137762109126273625271523680927807545135683146447244451235548491662287964124718636454123342597389367915431188660824063226294605437036950125648421779277328415347024580194744922820376971349781141259821435205063297532456968167604292305491969586158506260487467487647839292178714994008057990881877411539638522791939197314864912914219632326691127167840277547685209079153240629207718089123227195904090053539751667588503479130443012401826944687744752545593429233452756604733008003628938272802686404856525744926285574114211511238118230356424127742810320413243949809093197505744886942853040083397734457542489935991537306151615105283038479657032173583476766386938408344591333930280056415244140110665550983728189430842183262575926544091921493929399097577957798980229798488639155756023680692217937764247784984694933222072262501446318242479748413755931894166540422111282604224540500143106116399584228479370629240050168672867611582254459457531587914876999380251027817402908725730809382745279996943108855276194420497517419557132311526711746967860317087459471915275653548870031925805993273913787176292233355932887734506347739671062239021286169556829468802333521957712392157993464221545747453252827707519003757219719315330591336906391912285994689991878663704625815499708098958073225202258097166609561766837563110659838541432935904997057941652497865993558927446187159606640864851016476739320326479239891966571128974997400198005816266817453105863560397904975343518761746182029649881165090296266080118941469501969903280302429410070903600990290549450701646496839242973105246417328563579562871471113594519282426003032581529815610037840022915530193938143030268243353053992142903424253865234042411017366461037884320500652162303083714473271741840412763948334551925550154899867066624213461432670598803753655596498085334915078001726799276308098959795851335429140884882560699044765522943702693981493465667011758017874843288021879978908692453482935860828110289296700908005148085736953189089870155973531493477496802435128023746195393747214588349595293074352247880569610644169240312643586251128519378731491714401982774021948268506601505217122050890999559282858676101611772726006143211986538385493185635521059123771813122227171883059979024760518023411862286863303664790691233032815447886929230795834689652728801204979185445934880245428668385529041550990222124084354506966331732449441197645581442395401772341723422433472124707730516308447568201353170812630576066698047352059988013688940289279458123298124624363975651571279018694440953438058297410146795978112216722248706112019842119542935870017632638889086219138980938736059582377753037494036113747256603984910579939280581066404205957097241914199954486804486999822724612492737601918793674287156317081179467849886118701236731457875198770547023610964987414505450334364020351319867697472974717389410627345311824230096537839480703888299916965884975979591070900192621648093677346755053813750380811090519982305523003632188493687759819720429015915287843870025568062979614049586741342366836120080129266761531360302372499206417994384670434188303192411681167672556469339590302179018608949048857328380942250274684266544626278611999544044713550839352745445943326774913224171332775366586371543994248026292809505880330081132364009635884952720471034376238579400379335135271086433840235417231689476833993559933349998884759666253707494558796443504337473713901151681733988496462117646990312609472857910120919144622004020721486984004274028939247241245324026843475464026238816168436340203545060453716926772749094099810884707079739586648142109398762986824071336505536424490741620281005016663149370191616517730830000560826483090460192415419112178389947452150238206349860147755663948433267889766337960370498937104335590149101666945934774454079151763789087679419640250946435410855817932349193804083828951555828494875863504841718177274079588865532372231496616600856296309506780509125684702261849305970553647536029440650340815105518931568010863677260196282447556835440845870991350648845201550898168333390357635324196911332380612197926288650986357494254721410032382836477527762555801470658502516720676792125539113643287201305405559493112992570453006975613755917236983420682210934898539956017558541788334197778466902496973493199116537570902445121868745375299322244669006395020017447073512762808275490091397578462650810419382777950962958879413217883419932909721038745353443899150138704987185886459325367986492148896301363174096520225621896995156737599582131741640556273827457962718874501209066621464302465711424716283672033658650287300481792103500914525413880240857995453450008107242263446217497300014702654447318621632849051114006291165947370094270696745978981589324813810936583265194806729949092354831081950779057295990649440684683743782111114709238488316095861751464422606155561135806649313383384048848912740211761416056059086666997760035576401703160279614685065312692686711776496262048738833293059370965309287073742140022028529907388527854325060909019006316796939393293957507619436412278397204207589871506823799154147848610724761060349358529190102528707088553083189188664270356530190754058143100852747942286142000583923121653377235925522043341594735546929587335572643478072943850733937292052310571192228236538335499722586458944352622597953363171306573892603972790722504254125134357951688848065671293834771867741702719123672366585651053150390575064143660948213879160095661306885128503847653973697217028205870965146843684181875581572765598885130286525933215298689225375032162406228131831260434444982036764495709218216099234825472517784016059063724701275488285726102133536643023042074480014298838896222757375438447659343576270889831343155180438686860950660083282709185721422633902595978661458567160185114845405485414707167740051439224290452186068123952758383790597591066438082804727557060650029576309215415295934316683521431109514518141496797491088772513725406235560691992467599107237948886501670324569088701278955505605688131156155599571082675689516944573459236921873015557008181472163065424772757835533429776769930812364144968522652673382157107921521000443989330531844349764730152609799219065542064364098265250784242326648954032704319656242229674639349129812911740683766874655322908312310584773777333740404806215643154222031673229385359033217296411129757469272780977458563618310660920226676937356474318270661485454687356274621090595251240260224878988585088558279996773734064417031562392386460864667540655652377323961195488961459854674000398095843808067191746506179441024437479310222133206790164056029707835356148375243843310698082153183397158053376037712444846054128662740264551344194728994022106361433432031880793435829161313275581317921014017722099234282313999968475629323131243857595330890014449934565372313517649236046993738919008327298260912547182854731142598586664340475923830776374795909249274939292912879182273627832903851051681552981771436170739076336837349085032167018388662621092930142171451582855832805631542077812477909363554407754343735860124170286468411104468974329950688064575540227012997365844095680762572945391229895758407830652846368872781765840978955551994472917828288422293054030918282948996499205281902446545837099097344613166548102984659300793788824447962087513557053115721899198400366139202621758900773823370372568038403862868147091006033934027688967635857096641312250348801588922616397541093659754974697055946500616432700993975387682958757027398571734801751111802163727777036152821787171012104340377962843528293674944391367129101850778227094455703306060248729508061966358978154086317438751128890975983672164739442497396363522183025140490902701803109928241476429955854580524798205950345535856666324841334069974837250361105815338266718332772603541330167087091444700916368394358053919215984677010353581501491414727896819922961666188469288606371404441516079396801050972170683368088939609764453351062927709859496157696773509138613964408357696738524077593866781309957113723103136923732380291239805651794598868014249303077145534535514115583932929424751105471197450545279355992683983378920736392199607950169309437869076190497386304412266401913013829717236475104271303724113911868910865378978850442536081347924259856090537138175209196878341665615274773924570618285003250010462869550212333045107649136011794919778449618629684141845269481255292859000325839955586322445569647626710817638557420512178717203402112689980777505853869896051435235533940122371808463760144114603602428723162753220890071328210729374741579095970706310478226048310891085295772038557967728407083560534819401516118650972374643741893447917203857384424323710056406354992814641509679021440180831449535968717336456887216226346457135637600843766505732549546259992128374860992493114175659989479378027099018036602061247758655188565894973778987543501148919779699267102781118956179584148360037498898703044435730065538268064383968253745029930730300706853577064402698936723777845571483882313259199971517000339994796063791647055621972571877531613526135683078140916725477667633667179125504980714929919035433798534488158256309682523716649548937738483347872497799429934024675121161159124222200974080468124398550362528693168552020642821696098143762756037145337437501934268637100562166107099326141892122388179707408991115234619906773095758145883329822729099741549961876338770849039344390175690921687512713304319676288660755940269317296977463232041183567007880526108796709572348135053669780446425588337159023376492987539652860799063202265756781939774726334947056419765069177910850220569827461219636354879839018565766532010801129599738886297798374891716725932669593191086585544075806684852287124473250543123135542885975261613102816930918078480997975870629778854106082554974780733774003117991806448035646658921855821743338434591495002607252034616837352658066945063070927243452165849560386295333058818259474934447283527329198760481495930973238344469467337174870826003501313695517729599183078591718790023892935787299597357011255805063435051422116475146344182220870343207382178791551243288330303983909863993447785461593576849930839919428680466353641176194298718620064159878286031711546180528855644295152909986044076231820454289249778200594152610754654668281611507168977860323260069431611553547943461230471112200915660411827491193362052679672680212259755343413257350274110716820722263882190415082515959065982252749470195702521000164355126243191043302766799746599802119098650583331416180730768692814573113073751890737784718500253892377314883508132501567380319453869891334163555808751074655170618584695913121640923736377648168872967443561617477925296502966291963276746094353459408340489088967320886436825131504822651865400409215631282083153629286294838617687991303730993079063190477933921202172937788305278762397195525985213624377362656289104710642600879614401034022494383030888021865973729033116608780833967910862241064314205217982912253719856067926402862074719499424936937114065684418628132259037148230127066214460719418106401777662064697038214597064233253071086764769601606302849376175665505219219618155867984695269345926848112486379483764807747475264179525910051698926722185100946253286155704676010200335577395263033803674702054111865624212085884263767592780683941884426038207566790546687257995545872909828518164362691350241132531467603569156813065700503379856244172699306915875629434566627847838870896903229053859674897936181721805556056684502422347002220192552697455669272366743524814319834493185637912933532471117970163601472131151251649602894619175143414580747392550379243780371530514882724948825546540436673796565099730024655860977261175069811219611232032799406232861875791284872584650276767285664272505030950310218089577983789589140135035332675945157505997376576693804164032453271446232158330861008580053005803676770091356392812806779431463202834203606970191532227932640803514387732023016313185463225855676172032267061207611555726021035516861105645554256550144894261111667681201642547339470342887003327568834271861364353800284749702225827418663237247969841578888040300831227438281843323983674219704303365167661153330811802265093975828726516726540179833042183310780896280231603963489451196488754927837814548705142413274101125059292403307003475538167815102163828796081973874973201955653485243668694119210333646980989352733035678776977419847584221692462100537958771125563660658787047401059368403868862063903537305254280371863705346435730569419341887153223204968429362555524468326254021927934041978370778764689456842274580863049331067383522984273632813641914893214718810610796701136621406189254458952515647352089857414573878180523253908194299666327365917975934988488942108231035325164935164837986531673244933318589095691937224446807614889280831604347793630607574476925682277728652391913825907235099172636477009989873373994191890539415450380319126316318955900951496011974284288547687209169139609334331756015229463241579351416966614302062494405430873513575784525868807611386771545017705752490105772177611244486271588169064324779263767084324597687161281345770689110725917961992493748031238676139987717541074784992710402582560473069262622399555150480415597702390015862561285018795835106442989471349091616723841127431154473128676419842540285464137890389359146726787049996089519501115855177775223403923948769203130604106612831361770151630758767401674532857797167925151662697255211651617765878509347163541327002974465183231918070315254575227517975305824701840107628702304852071620922057152803778100426724846934754172040297554468216680168346659938876601156977413320384562335618592108730231348704288852020309734551083710524150584440120610881801773562384478761882084106291727581261246923917493528937219906538897780634623795052166638499650429254579279529351311189180750618833073114669053447233023099026098568866024377924532357636279415556281076617668090323228081044753466589839894786669894235536758405748782113247281482157135250682136731574248288432654287960655823076314469905511746060276314893315477002456787576900579012020026886742466311216141504874875864272540486336328327064968945384880329460456890663437220519178449392134017058855758550567351377348279162110724646813431067735426669217022819693017689974029024650719568924440103031130369507335370698227533587280916086357917313336460547613062503230519953044519292828233103292816316399323995414687696644610814444240544248515121245869155055662550501608023581932052022216733685408365263952370657674236876456320744127245345585945402049983972492705387120785114992058443425685221716025515344065499088838980413294285864990963409162882028203256076190138326678315782764643768306791586520163524738095682265540355904060356598649123717829313417352043490189371857042388266362650605130059656807565117403922037606468082216794892892141954015913266505070343272317300884160755169969766975698050946682348788079631209804775470726643681882532208662424432633212568271183094437480580879176336077125207834563476163171171699925277777133536687785961762595738311360488377593905845391290960194070377707982303841649052697603296466262548341773906516277065317621289877097375385034144054239320227771709666691474988789449289921005987765700224027714088207980814395658575505473282311425191390166851720633483124260791746672062428108031431302739477827007564945575766286121381115577400629064617552786560634544090258197707131968017161737334739647888499347107556345909979289137540876281799502505615476556002794381981455538123411140297899078571661133413147305907012741253742690051556640564022537685220181816159916314989156104434084973684519509026673143738056969183742665302097200710281171080893490628403196005818328734860929840781726356739668132415718120689373482806835176217043469044048350918556232291165967494894060371883382078845657950587888417582678626012382932612580094503578491002531245496692507972202396945972523345384876926811988118763963767043329146442565571971425520817159926064031757064184557816336735345397812255539546925424965771495204169831867490386144231938565969239395387294000850110651859855689841279641374006463670914853060197621239352550935990223313575066112566132375153847926305965815541929310253333959913839209603482079885092571225701820204252299199926603812308214436416421531302843760305835486486091665370601912183557758541315884201178818435194872834265743835491368663038086747155582408339994614073847934464773898392051873706518838916210502831133744517983851893068256585200793105478258240001062035420661210347870421265983484815238391370806925664369171589755739265365603364224399351989569252771130630936020016806303268524973229855054277585018984286871095313367625367825822209288705847233782152494547554618244552255206914409166303940092606297732473227627561062934445859047355781311196874396585131472171340329637508593104473127701759314297028093929101208505983326639429585981640709560664484784144654566203084015283565751666527640406582583472462133919157892942671595280235898621885616954073146620948672368025177846734599607086532157119041969383308222020814412055389986143887545263108986783620971793940853855562135709830789308341440147593727367919230153473636511753988140893147813197024336173311533977932911501485567475636020662394356086236687375041519713536840871599156976607413259600814415125916580897285687360082231245450554421642161960110332338385044438241170626135375311978804499722654888916002745344447291201350323595092011897590998324252579061611642815816608970270622664824700714923242219781444462940646270346326266971292733604731080951320861027393052303607494536713915186539412758290693102151224461777215546716766512794560803927462262608444934134518242794388413109734167610675376949922917127602438826241473449218988819296935966516343223974354045880915508181449263693319317133633428826568164896101628872587047675835947822020492105578476974286002159882056232896680392823222720490062971292362394212246076063125222033664220813258048930200693571910955589124037279345554168840226291837734162963273352359604051061123593073243109063054724336448030207829955293079123851490935494994997537294674877230419840074880666190771450091985902195837823646607233563139586906322148176892816019299100248716155662758668805997564328435400311942048377087735106856985527584792311778299666900678851587308385210124545832528727825204129708844084064088964673159333833982968138053576699569595725884681065824825186361659907877823706490934507591741975916550057951246529614014167423163458570071187771856260834822797428488531994962362287940371639775299613805766699686355327131106994463785429425991516204417946578094493243342139082358076131631454267214369765225453515128727369331498191889876648230461082103667493044932880342474593257154922547265671809854930518586796805369045880613259579010693593432495164643993291594334544214728151041645509793744908010938639359691808283430510716321329533268553998622351469110991828359807305712554637704527527060772646970887461062614774826400735244638732674557275041805171978576278199583169666668340845309491187841840972030276925303624975836678944986629237819543690113702729295250307935866207844439134199668798263369352479943941122581469215381368589902045626330930438211554915353200445141916356968506704343007473599185463493500800844002799056447255858425448544608092811631360764453593133608456828242413882336860487799068857532712798459436622403064952383826066604826366583159917629885721156285146834425146916356770715326874931509731810926493121121213573949109146067993472333859318298451209373580941800384422816335937624175858851322721158663571837359245808990716004063994047557980514494650531433334416720583385663412146574618180507291565094041694917685312361074748666381866175593664941089797520977719427595865143047228450615038806015985337099723687334717508971546482970920727897717879144204495387538307767243489007593132263930953869860996207135554018439361536157022589096734759044862233664899508013906948511834477426415111143617492242171111396141985342646763947423699204811399470278453649336603120103101268297179738470548902645454330208041934138406615916660948977045849581122518737721007236102880359616593796478485713048050041922168267286548019665484719003678193510758838188718053920733058789658481280468118940953626142402087400589542807651918358700338381237309542936596024701206464795135778309574121212612693673023768837256964711467683530535864496413007357807104121489023959552152690954202369235133157038821296646039720729096992420312672911271607978158144994034208792253330554298724863655235832064499893463777023511813418843344140323102282305005419332350007767249280310351623132250377719574336430677086033208830599584066812699715837787813562362388851660520938722830667246370638993368526569639803849683006394660045459938494710421016347236245708015779875589560344572761060607492655927108790711322446861434174859220250314109817007230331886119617662086680532924297692711235368391688786409480298270403709632049259160806392856806019814526273233291302262841405383393794311739016382656111694033367292254083890818162121439653488445468875756905511447594890362061172518601869337042436718122707462679887089149465422208091531567171300125089166991493692181208564671056851704114442515258806427087819804743884364786318130775935359350723360881674932386072109013337553233569247260712182642691753357931174231082770265612465710331468159621895144724575248391192418968267459436531607268060509837462172150910214830593152611456884436307743617428279086267051370393117887493745090432046932392739497097707215871208158550022895024433852482674185259919569867380706084764964744477269950151445055350596480273561083221396478025744049226030671338338296919086574779663854174648310098155242968779615396407220563820905313427788407347646541553233477925730563075927836117971080380733639435005567336915263079708832918389502120007854840819948031104552768899333894561860619682820852470353873967186585690881577374487596163241613177481735189064789552539764194831181636589661335649288800016207115493409037450170854033362405403485084298929434535622257428014658566130868738392356244389301167667375251225723013954238079631186506318804915545712596857267295621140700422658546145114622564923101110687890699880478427410470279112575202972624736944830514258593631485843705753601875555129907616246938228299166088611226849016900360654398987012059898676679033227943842223779060526745103241897860508413312898613245765213475450150678657601668505506806382215494376719822649710296506327985501139925074970287502760532744431005957672261185516862970278575522749442341991562601823670261943082035615998201483600109021364914375062401736380851404640943839204701558390169882234989298840787523214752070773008120478405523107605593291962588653333629643013032406232239432053131334096138094347815296979265032605768423932591059102819310856363232132036213572491434654913839742382604542852781011771661000729925143197708482367132527005464854972921092693355007729454617680814731597780663170989984408390594226007588669258501015231977101606005039271309819958809958871641651466167486376795799812234048566976483508935367453337419860719789591050477182933832484379669161637418707977359916841275482596565362996909584389351825649881498047569870357834364318287270338737553000005976056300151948748219747184114646664656738332780057321211047378214304692978308869916865750197254611242083215239819057495923725698389352203242590120613104669560367016063289659981573612857928422203324295178302088628520980633248774044442403371000993041686911983301140396851112279871695026518352622924575707455044822169952375230679861886918465146029337625197557262964925545700572018767862481597299103241343762593987362043933087247104221406621355010294496623409686695191100525327089310626743861234917086289948836119335577481755643106678096094277766174269716204940746820756563400119381511003228545103789922749652147045198179685441681819322662056776618513296434256131021375359204198218077452347942583828575939690302014988602725942093336996727778820835417013821746841552228324873731445076971097565351136975446261655948686807074942119766568700193617849536039546015989412006566728884945837007197293477593910060602032629430095274887014907436485725010955543420618548980927435351532873122019164909916698250214267945608680412950481365301895826455022707226941493613475798822779105620819501810741889372033615937164214362623189836606574118680504068791828632528837794073318271762919995298388334428133855213726988179055864188276302924677025351373487589167391905167892498611198136460910576808619073662713598597192180229120317674218645206983483636774440413655783704042025956027973232371688080669357441379551502065726302759828383668068499888276052722991579527448274792938426249427361107056498831033913290725445107219737693706854580508631486953026060126670243699406030711182329352817115463068252342493154732995114728246363971222054385533877343627585044987387770840383623518943682115779871853266249900305615175462515569990836152033257487441939893824135600929859938302983428085039283048530039025427917085743906578198797656992410564291153899554526075532597807795597493004458611272605653872324541451637608764895581709955091584631330385220090657804397373448721265317679139896198609801061522412675456415291212222460977366642495218442831444801141330659276870076905471592614701983620292020742932819320043297223644814601574217661515393660087908007135170152114369476001194795723442704774067857745391059433377506987529054577030482516156336998033224658110200991776473064223410205423397137693150904055596335457852475006510726777623249979980522746749980599663047489801879224651725374165422528336679192501701451007304223785814351129014142587861415006067036002688965788373921093054905218454542141629549585552081720701682737332860627818457072032712636241802859095454291795786835459094470730630988089304261936062682493595604429432851577360357587650632188804740684199713199749774999662416829966630930889715043501034201554992514647050194069705245596706366917179531759755834298888210245510274377671463581566449420032607669037342279785675058763131560041727967039453223022871631760428898165999484881157119720479332624754494306575546089429215398000726190895646954158290171498937354171567715979383720159355270523555475983323767955591877328416851754884309213982108589239780544227204284046996700541987943031583162506170226557249805223019117608814690345069430208441133366020176805423322126785865129553477491027963975521641121025686931070056772624485877865104223856742939896453737519344479062461775526853117405254091881930352973165634487627504767669091911346253516423736599330222165383097432800819212164204393415329385952880430149415633206435967946489869614421873573714444127188695182161001607951534478121687689157463831421987060661516460217578698778417646733283325153196737779495907031133583400019937762166855763567184893481035316151433125377631631107972813531606072843950139148756094673930544997040680882422265299804964206948354659938261649962129966196406877309282144122789948842005967941902698249450272131098488154526994241078178336002560426144758226526689840399369312656535392733936032902195990902227258354274715484132214473409196272970347739316244421347018796866321901389612897087099110747561894648686800007080823942323073765597029296023516685779880138255163020325071426674514616370667873584204824133719155446905596410375816075322213166254577279006960397201955269449000078663734638192705222555328134451802806515337514170839943439816874019844104125516681801707895294503748985742928353690079279460301690846510357260233346684947154153442022849859119505603362186020664454028737788515497426057802281894016646549924710332080478402336346173903122531141231057153142730614313216091598416155489999182772503872706960767402066298874570413151073599456898361523682559656890325370225787809496996252170981845697084726358406770245538245905696704728381101710955585221849250941205959327274730893925154868272882821098595088133906366179074985812766269171784770780337445678351243400328638929993613720363751337879342547657530628827120653992561712784901521946818355626857363614201867749053928264416167739470139762194563081747613513134969330047149703192559753099599544468224674059252476667311695305028035170165309460011659014301188332493804288278209715254120277408338056110238937195215293243241962101771470001791148501789676336053335602030667121073480944293673715384675127032793204223555542499468668940922516184610001261991821429831558991499744557444074174005471913395880701134923366606056851980762811041704272961013850452365758601280698037237411764506886769926610023573698860195001516105994188010693542489487848483242207299008983325027613402700802160965363743711385721342310076598900743592454161422682087689456038770362991294388061757003400598573056427901573957603465759556593131737007435781397670217118374159134235027025960377985305886529289482910558624668860930561316785192793852893039362541506515353380907977301339257525223356522438371227410481075413796206654094642929362639272752836007089912509856386102449704405104172097334678174723493510687301332622535948426263779124598955351376139027709955810591443792540559049775541252982154169716145648726763052238604359080508657974468569889130679890051362254292376313221829436308528345265916869804213255748970843201967735574578565239405670450778884740087359359831338826254653802451700915573981506951984983490891340845300446598812833977499615376154850399940890404761783822416209414360241202177874970412516243288792219101153450192026165023297218162272281087682784806714877769817988563711252778789429314840266690774802661212749647573423541925264869420146052113726540693092153966447252590087676798815285791050426946488416636607055070241203060674442226938248623192438347219605959624677277460137047352508636816230357695698168264557187425507518596605153785381059733963918464398886264974308964550961353511812079812566530665696417212904659920026917586487833398057658393961526129604507909601994773782990080470126296799746917160384590072881776672976282291832278294308057467967013931082575766532866587666625079336555443127345703304362568198533886809148824988498119727827339396570431224244480693449961725747599956695549016628286333817546108633759722830976448483643399657435609005992760887381698335339596005976791282895728112161302522855594908452605755471432699345845661483286176464660083991728673550887691505592323100084871528467710228278715522372167599316548631488967191514770381062600405115879589533010559224148595723947897701433190695176758914716391190360606191410372257434457362178716670208509652034239527039558062476967835086622287885455397731618512730426329545434352807397673064065463191113714432775560533945665133826065704328762703373631711827385298424750975628204520519163618166281569615291479592692704410504362603960720851606704545058527824245639208803544161854914645345971773095890613294816281344597196771794767419502124179758696042246133660030266772753955473271830567126988496801458610836044118291418897301458494469515931421777123804341163063800203402623674683092882712285168652446299095042225180577001001457379212492457044603582408701863606680123731288239486145947666258838408852545523341918519582253971713303420873350833742058706295586899232186030921546949209582910751152366751088219673631122999513585728921034593840512613056798872505318097800321076707416616759268343241777235449433225951011362183689360572247842032766841386811003951829253115091525772292953640184114997845282014521717997973781953961914937840491042457594061443142663410198482510495487424847270352265370714135050411778174011407848846765258083685947609998976350070958117756863317805246192451781130574702652341442248619506673627942316468297996850778131003479050346818776796902163342113940575719056561221646496056719913777367039934597324334294485826389414082034526883892054181299933223877524542597626723283298432701713787817749731934825400845007103613282816649620822696620779359631595426858432771387327403287060848930800833178484173521076300773917633373393879576362691089389304215399911174140464816830541626972220434816260093545346789810015267172494746847982786140929137774538350184924819804491021477276290237416243154723294551174702844342856874346175087445530770204318470814276470154103117197887445583262180336953782143478252882843426748132987614076557874196296331471361907315578875193554790478359230538202202714042537375356848001181914697523443980020752002444707026459765490432344223660617749186892931396608653757825404963632557974257603304904364604000150937117021449632766090250242416179871699981517800193022090118601726541361230778002153861986988448106104237989491074618290932229767122180684527100019476717687091495729965912200609722687135184029343089394980650425204313341598731369410616564695137332928620760840012273978650305158344211268509661569230538307345590216539194621793313883690763759388377513907000234574382948938191612301682644708394813506810046784461044383319752709508454219343413400332373979972577340308051966630145116126706626945775054658727801757330567584857447459631241488438516586015375750125448480478493391461518021253016460557574168725899950519180963877297951648684302508558413243093136033943841961693377008907276707885288500245982022153975824828225329719238990363565105701774002842120640803667654522086986800156087569782067113367342493067627934719867697900776723057466197608283643033994599949951301131158920200059822637730124790218664437084880952495039326682274624240268061927011026039265913492640054916577949702058814844181968847457011595061871503197737451759166232138190901807261481369071126814494096069453090910393083109239722782562555896629649609141854271057781767441543444397776447008577092086781193379694840056302592987806141708171961284796155648618828203226252550182886053322742380758303411021727577768504756278095215351279379446378426155586561670375031551061526228761670481017496190904884152873017221160293554865481348174706926115752462115144342131248465533417490709150036965481100086856195664298450851426212381648547002978924746804940646850578283190568065379047632882180424680727532662043108994623865022216201224823067129692909632286580370306479495285876232631628451085753515972061613529611599794058229352676747326289883697877978517939960842384024005460443847686445562255698735090505699771306428560909732290965874733970102520377144976620329965796294236398245033257621011841178466165700339618046097477363384708607540027677653471345802914036068679127031795047646071856149495501539509193740171047941919127474005195733388366298477728819379896596886794095289946970594266921412831351245611282676990286153828152533980439747477965171851418489838571664130896575486649351189404434928958222864276733590992805738398042413501078346286558873040952169777180415921110511686329974415677644544092078574002482772774636642540941985226825376089905555195483920882543075286802971172219547708645687483746727854688346942196035269296918919145602397618706657833908958089808652349655609227066857462712739145476671122211795808197879119403559551074819175227646336055512047538839778659960858925830725368390897712007065548825449149154574571360834724422310959752465563034879565397692255128116003450301065873586785323008468254796309660662580639689767353239462992749777234431276573464320218021036215570660811068116814515828414714210258808576521194578642898533013049957594527646916172968831369426642605342613324236052707973608018280398734204210285831508164042064874698317797295462472637476584932306519598379309201565790894473288431519267972070242871027721031219232745308550379419857746889913254491699598569254586623663692508626139565145434723045649279652232858312902496146024547524676780048617425623589642795811929071431198204185722131456651300379255079053863054292663881163576372204579914953416915495817008716014023255195828092594979586255003977780819541828737837673756636768267105594789262937478065223837024408276263216301169024161590309542765940303409921381578730714246944607074727902579490280189407215581332178463903959342820092238016315684537385803763476490576265138729548732717582343449549897983327026653718559685229429564273038388447095336703249956982814176360189578168146205385556778164322126977072768094391318898086714992826584419812961964763305105017692863306942758750122876425606041706720899155273879861732494123813293854819462342277032032487786884214971028980053231976439719728920667092619853292745449554146544987495335352825713022605280459843243774694926339177484125076453903539523655384888737950764370373557332556736708795221932417321831288291211133139590912753066478405505537651637393011938254650761593336400545112216721460236779109209344478663741503516760013260996938749622043926488334404962470943648000761059197994684455926167734154878529071826397872542358951455418598978733558251532055215828626634721131013317880507213026626348412860654850194515366463701561562150782977073057768780720029682206228957705448685832412763435395576017474019390316069477308078533988212270479554390592332095024041092442054107100773231826012348211501116036979298877900829191949338656603563207609060643824568916120723718328660717008410894291111009026988381368859777257303883213179142179079364721878337499571737891054484358833403182348156990108431831140523857309770856412709878037767258842616614948907042457724295750582991349118557906963899287919746642183793268745112245036977775054236428757746736517821362566262368490890753290351087474874794358786966857888617981861141730334883196458669933222730904509051666678587003828847784146399473659910064566141224183754924766485268996568318127631930753596012700128099223279809167079455160033322639522610546823097475502209083595961222354567363337277733322648921056713518680836796172950113172224787899000892623101420084188502031102564448605007789141392948274259676692756114214891493471158987024798227474452452521466466974614066355068236332263764248809030796363012826600278414371592947513237112057926958615024165243899918755671457841168740938293051824767924159393187534414736534798550006951805548108375143052009123232465376017185902179055625626861529978646669955727894645536138674932916567811284535710914021735877740151186907584792644826425519047156988075945957348661494370652496504378615260704889011835641661048170048897200080294832275621738050479861868421222800466088331625677044239138585718636270775131829124287273690859129217476054476780338531780713809023853165110061161552625763575775841574278943684247681093305933147944668964498975844053828922446440841176727066613125469036127379261789908933778009584384358891746405317473719577355436670565597143363219519238301733739270942025794851864151490190816397675817252011713799894105508884125772198077076893788945304510382612628577179369271519805176291705418391545794991132375752757296895350066396067247184680918130717322828247148691380430314673030119211461815180265434108300597795203606625048571616546461588986103234163936262131676267674865764909302213321496026038839631475715848582157718422667518836829445788815418843473442097826324184126154278877157321612205548915120022415411826237234622699476690177396524495148202737504442092706557615764741429059886866579751544767934443354017184876272513281094389380615525883115825310071558898536897148991695103521239197239402601563642882825597930537455062630606936771114770924626909079014293144546247189551073163088791021864951447238073484990830642478257222271875558508993224568598207275745257469286190283376063932093097095169135437283015403174120767589210407552053788389749815244172263523064007026341411732307009098207026074624049699225119016215669872146652698626068075966369926481146902962482836059138411182143830736383841735902443734237113821097303347377442210550550164219095734336451760207405648904082993717177295470760680450288673886236312846030831261477917286126654489685584141707349185768493482696354919073262989691295714721099001764895961514784647336530268667157126402665709772620345436602523770453966315606846880751064684442540414958326992807713736919091121334856047695844143281903016616301764964224389845804492148965471455651315270299839044581701439977840936520605505577327723924196239073258602494993539299591617011671588029023173848422015844984801711444047800405930253493356301214258803605616474457456065778910987730353598204356201292851472337866713507594532721991980828384379456235980847299962632238223163825373571178474241972158341515474666680210865556881867293481740916142003267436160233069727411821871681335920172994571641255502115002659845246144337878677733253406987983296634760173605814885658773901884432982737376755769815962202631564887768293685109981134360788147332794365186974150729084708510531982120714719113564836353373011990498553177106750916515903913856435325962116641421269672204596319837819985268974687353041368765261110044901617977644674668466913417158005323354160154586915228163762535762075867176150381285592496339295504342281498105828534569124503001555922252938794242951484382268561035134674649885439039846392621557118251717794034593164518116951949511247955761190297856428499443416653798571202857855352409811615530419249513543506732555430020962575032551133930923320989581418871988829881854671399235960796334549676862820691085955436317784053981953974338965410751777506233315418454493886646901025503904196142471715670538160111536053502906456646005752276956869534233575036487518254183470058524508206580081932359071474774272560869016546159519146623963027082250077533324801941487111452289842194865110395001429160703535370287957834653802640679674365191199111391010494814088472879810279695896530297584554595323363710460218404128377213433776340901329148120569238933638336523073761056604228818065899586085785022699000122509631402101365577422092715335842655305192765722871870857250189950733457812412079246653902804308339974988593910225939211819601026641689739753740126602100265292825953607810402081584415397796480965996936168600413080953879465744900121790744318503502930739587222030060352984918590563665405627923946753230942058449647589299954573384999831992591424380132261726998849169182844467213261910972575143519059494811102285080883395711698521788193931196462109210083101395841788815493868078575801922804394230107715623646427726367364014888362471673040539860247839368104480307117214303456526127693471721695779216636849545555386663281070689299362787986986389623397930283924858779382414085444823850106635891705612609783887644778124024068570171348381894643230115826741631259920790327219335592797825358546551945729962704560839675818001201273478815639408619983777019941425907050562421760653520385416996400554872972105267785396565776649181464054470788753829919514168466549661418768391638729902275210084887480236735320425333694554748117040637883603886405638020607709611548239784328454425000414174143527442920980867183527243466477944825525029934855429898163445674123211150901439405630437497357783473965619417487085420703146408991706931496600682209272010773157813973190123201835345523929041302895226372072308802781060766841557100999138350209813116342203378248656991393761614206932450688558913969063618601531984703187082520115923521245804112614581338426195555518365749136669409597704059628192628446676534596697091178264216148594697193981314429818741918423527977182169365557741844477672842690507695829465676688658735383600026133134100113346413455232610349722359099817005639073219630463701671343493087646862897523851210688665362673024597511636950305067627937556140702191186426262828145156462554920718720576647879801910137519345056327050453587357406749807505534399882868107642173301572874412826694630914075789340787524406099641551260524730233966080731561667804015688232781036264667954081614363491831905536655734697199722945746105808331195434860742883974805841566111153109403727692749701854188637186120237531632267245881136054851309394074018946179570645552377658657068281694152762142393817726828259548179115858248121966983572891363132964996512025027324820172141147733066788691177213917336738050844968738449311116326604868689793676914808869745924419015664117841025685522344222294740278025647722546008995489695524695592803963363946956418169512603744615848302166260663021531407083151259876306208338522213003771807633552870740790812323080972833501438028620351505156988128069989488217718415005058664339730159893991350552406235789885377787548813844894333702298904958024506350041037219480238065159374281147248277348254198976175679240855159545429397505083498133057999350847893084649527085105101899250955716112646070225201210025202433864241813248095669905186394628365307774967948893853322290289291711709446880697465243401735200394131732284903747110795140480256799777510897333051199581791762598200359784785321118863528191893660618822879460969301577711940836439026859498650308891396312808670793233277525438798494637569305366867166527247494799582227522437380397464140172210014128048696053161904797489036585715337040522323820166722930111155445600634475316234005855118689561002114057845212546109415129445115251839916207573612237305754010582482210782271175764328497240438245326355152861890403917986087797752294573500340355608802984045363757501097429608573589565222762217321734289833256203573084388017136876847200911206991399749034655134903776613452462850489023546660335317789045321504171212916616735141473475401328167603260281458940984033469072567132438060748957586432741990045287599024170360431524226050629990521508217554313968773472661716863226128847558533947134512933867134429400456784509837332061342622187741563521604449060696324610205526354000903372025533492284081730458627671246092508905330160010475154757989082575932266021541645403875408818316330573141478495529916102015225801930616164606619347319656876164337548837377646529670623762297430271052331550944555586663100365296461585207042176173054247024774185925398040082886624883458449688884191785738380158369081185248658653713608502786395085232909902127455473010573592406853246984010495186940245428355695390044786118820586691975748975913048006156964347802825205093482556404186548436891703345723276332902958681698490940758820601825280171954408969473495169283665565636034477336126880320452078237316687188399362553026202848642692142330793899493114908063605973920560679670433389581173104600352258167525168147677287540954216368519520118750961505578631205233089916197868018715480458964728619799366971574349648397337446159581341087773337544975497425585890804725827400183084716683192448906167479733628464790722547896997029004086798202615242983020872923242532978923183176866209213084346263945930439770766292467659851641212083419192103311342859275670901166664671040514678980291083558901314197885469717557860302780419107128192667207042351781656679705643128209416135378000799236865258458056699798645487107502831849467590824647630171372231637235619455658687525544511185530059709763436018614190952325574864143371505684380627096545721727052799007849833790027915845968978087509805010959868914425849353253222662918061729017839383829886747581045880457486899975270274164928190681862111800734276724853052253661467862143914204106547651768680555279797667425037710749494395452655260471099692544286936186625840905926629783271190488139327452122902157126376032026070110647999545196989865439897798378930708136742891001512008683412299651346775314172647925821425634370832262115267977368243666663925814507995424157066532907915462272216329069323052043094717411437731056416413517821456199943772303663807719367370121635880361758736314072440172218774344745895663576903481826258069290056175908785027861288222979040286115651943563168663394201777342885514681148032308371443933820102655387610117093537906375332606531042676799972456897401514412810783806316761892231836460480152559379885258500794545855155492520725993230836572718038630621676959035314533804321033519691135634099575690743100131794889692017213103827301780611477375766200382911247929291240423722974675434129060911110999436990578658741951994879537265483978303495609800325286161279444126297080420894698695067795624858532292495300131102390889857423822797720857389389291585235644775042783050792644353063655490206758511123000121129671243457026680765016284191192115999178519402708908629089345584340935542861652040220395466632707386561311641814649352781470179967740304069676018645999002411622269915768429219284312707530883904985723548909672070177986787371496899440337527129727613519041074174166189833717677998083730234941332948568959221181589762455057990976724039055086556213036236071297943441561570284663295148542629140392741499647429982274225218541962236199680271738794856304392875426910426036737196084686918126306015189595713851332042977867667229281499337533544167334396175599488472251003356631825144354577188739199615221551641736519421819198140997624134365643520667900801112199206592366243360226586183467862723064865791827070750572708661889611035417967584516914733974195551950623353441658649728464453487531624813875194056783905092695910835830203825221957588900977710640491108276178941711668712674494510770007657658831831724247417411521590515187903253146297416939709815995875313794090538019749974846721585120553424706176298325993681384319033627807910636932957949908757539002061911345054551296370837401600706662417996178761537188323478220054988773470734337673893446791931024138617645425461012737927119962595105066788075603603524375570361176493984043881187012042103647533441613721567372556006658277755428303939833588258749414761197752463085051118855857810021475440755866199112356346245309577639859926054833025801715799045333061009899229326996367281611684470373441457949493977328806667966959344968421327490224280236735432775321847088581433200284759402092511096963183385177492465624761483453409389345257359075849392386194831927859417932604949156317177878844004888234391204518858455800252395801308511615241947433522236422387893965370785783773889290881007622378067732430973006401365907028227599154194327297663517136605742729145053558834422542775908492496529767312742076090656672785655566607014433585479475931532913633871387594758701016622146777618600936123581793331671920378908284069674228479795684941794801255692435672895369193577609007040016745465967209986284364977778575395264831089665584495242892073934753715522797349113896491211141632837130007508504231345975172594587226195211422528273524924554409808010071574131394897827913722158050294605303035120983767083067882911631440159621506664174866666652913094804997816812690612451763898880753335796526494840752512099523550031351855431558260063590544244862921923825810084598331784905827256320554220644380713608927004072795119117327170064387631764369307501564411316617474734810608302248039569516388437334674760291804053660303861974619071729275704906890884945020263601250953072192219618279933736582401421578309459210592920413735894366880816416898946736353369233386725568677996980938193568705271647558053782943257915304571117175349111397512986038187880478790269337476894502616560947173459211636015813674139027859460092789556853002866414070432602249330055954468448645933393964456904441734448948503436904362197290707543810930683783402522482321874834137959341914500242418165860225057178268146899328681445713432978422467941056579119703865756090976499127334957541794900873724901137992684633093835571966491357770785765798521638971532012370766803109638293877825473932636717811358291864556800885859614841061741334116192004362628489680631984575885415733741623399613665257699563195992396932191645629747227531447483909987585458116807045788748837224488249239379142688527612986740529098813527598479920333382935871612506397319573253573879143613203960076037095745348053097660103623176123237316901303190091152138048722658600871368487039166577725415500832440221127839951185412875771821975113753395152638865798414265202727769785458061716744594574533510348359726326748023705477498010932925389919444082845286465644354011041806344094358998956970938494029697931677092580485626273309275439849783651848984086417675563810940866181422259739057621053413949243456089934341141464177805113092726075388441787228988292868600324941930032114211209611162692156303468983909820005912807920238060125769396832875456919127205111615624831644882247447298741913495029554749306764190833215554361829502017284731062117946614074341763809756122349842513394230322255016135949993081326963592471046692183153972399441342891049668473862009864005067103375739181710446477653158256586348721371073442323711468747727181154033066070889590945662829195987122920893865085328533005579582313116144584145842851030035950290222373896688914889787062403906096190566108679935748112584840638909145517850897866951346018909839911620584371899522711625038132470426423828136341607668982659240911055133939268361297834146054010656732990947242892135890162117284538306579647647982156030019726356215140033428031651941941735266870303245723792677168762216578165197824045432809904214734573674575894768965362696213488571528903704367591498026653941099751861571471029495797520445809957057635616728738414164417359138971514652902664222901245021149483040426645786165803466908222224123120311127977938116500959288563266443965299101964012559273878783139832302879085567821114942817345271214367969430868602352955159240024722290133051332950260946336258205266496575755991156648292507642809926649627591384888570880478089727846298465870155873649377150901495268897228125202363901923347002118624401028780654307766869697702176136636025488264015902694259937888054699352069320431750622599580252613358250812049333077894656295539048748435426065332647516133373938591517809403479065805168023940508034700769597816696268177459204030228298324150053933965764589142294847643230621976798364319611146155458046023066828003604954318191198037146204095242579474137494388989263334077594281633397490161140887149182922741396821825227486861908467607345651553159230747341170012776924435832337335111187552437423704166624275065049514008240236352897836710000572074908324509567459279122347058698707722874022415736588137137091781832768342589258778873501402046937277185138537727366376231848922583386064920836060350128519249590696930353836203509613823442561334564899372739103277301141357711100971337989022587516540911855911701114585915640403850232648026764376620399351279232611884439769594134771609849789520183285862220229574756027497766635017113271035760761074099485625464612802242181841042634872863074484895336998053766872403977695378596142369780109837042077347898377403103344810146434214153232246711722008665734529695351737805402700848549908483427350581497523204119420078423260110113481392090988196365762712753712823949955318813824483461053012013392342385295431067034548560194883216176257777020886933818608933596379975964607679270713690222677068761347667226294353031652917994504131357161966427172642314948845644179669334490964693446412973561877898620072851722215947479301384099064807630317363918066284368456597882408225426794799114179062846788797704211444302458876022241289374173146519663283277479952212362094979344021759116049317150963170829051498177923604457289665919333599420117321821995435376176740472494281851927297879107740156453761656862762264595658739072773509550498828111500516101153258464361732538218766011985977836980039829020531151789885755280206964926846548312616460167760670851982412712718461342852315159085172753803022576814023474713838151706288561415311179019219470375005731635107472402262844163648505908396409152492964476045416324810655614064851337612724596752013358085654237081804824999090202549441137896195318395808819410536809992003255445907610105765592175723917302341803831269006818075459273927131626861716812409488705107083869154352685642476537209081796312338358018906901428346825149181759160024936410427090757094115581769399162161783821993955148510641955732484080469567610063088122145276107891452881740703773194413131597777193092664720222308895543012933817962818293496121019285899269905036761456445863190453956870953479449711295274393249320930503621365483081347778849108169923716375528488852386823641983734995819697210921602766625414757058151591129452327075789731124194328050581171175735544606512319914381909443551597850608796820039459292794449700412184889215130556776444922935249271008594545526366847142442072091626243296423126422259626584168408548503761774775099459336578685307785318164699414822216817414632445548828542984255944512923986104350732387553443434236549346072796062719553652588979092771926628011359957229108781559027281700696437387399574280279158000701795860618076753150119536759110541608065942489318754251562834752986225316967053617893032417470619717980937615714294783792128067889923788554628639059155841316596005806326441722505671266285388675520821722647900900886139464781232796707502910359030872365746503777689145516520673600321176725961734030149031599323018102817600863449482673224164858797323003037868960579298040773539986854498744614074503382762701853438769269977117646865875581220304210991031734350255117643576820730529196985455989556479332254454059027506782099183469172774056435944049344518211774894409054709385675670534077482504369471021192424214748747288174642051353605164789541918458375493040632784259492267147064862767620834986411092266566765319453484942863346002484905078225876074023814768772594068692991981457186713452083565770372477021410660653925736003987053158586921842148884819473812441756894029465999867346748471766947761861230429625631917470839452740880896454284601825662752266985719308558896090775599533022512508579706812925996832966500181283735589815456945754404058816169047943261979918227153334047316670513900250599188716601879472540533162241952977423246555167043547422112177729747358181724310642867173116258273400392931055040702455257412536493353315939206258185982157275555329130957685877212090833821830564842022814638560092563360232943132189786379360660463681108390801723002967993569150357762989701067937511395856752206617867816053502560689640054113170430794127610325720532028144267178186151142515691967990386447738992922101967659701151481441819064938488789382443726861098355092556877625393535298969586078518478078642943199452790959082943912014489823601900768969113950956595846181145504641333249916882106092608249259190622343222138696517454095540211794678958287150864780662633932465230952568374114679797915922813151521370509611794625687806487685168563822900497147608126890695266773166754608670327932682766613000441028696700815568059366596980387791768192963942279077017371443555858833667465726362885591294396708301502331285328512323534125380818020898695179473011010374145321332011414646188104917035879245820348592741538406315498855466838736999359606266031839533102899783610907299644972330288740567903877249047162285560992755752648610010437494280758043498211484156459900646697755658818003189989846881720854582800394172340932895255465086377361166955282247350672081285277303272980022665421216239909735836502839132265347010699881754527841909164248518274221919343261188593052966032597718006690562717737317659534865645434079830857232359439913206025707334933815984781213758496432565577340515334090533268194740533545846685612462650888613588248295780577157391732393755099123506980665244491986945845339577004964733872200228455386672353494106288092730755024407737063674136012497314367781716414952343388321008126857889535127053530831738631258358045657641350889737029099005444230292684753541026825004558212823946808317501186525318886055049812331840819235372341851963931812902316624330590209107082105714686781299527421822200946505088747779721470239048890862520451687790509594243107477180797267417060945940699197132977012802790411984137913072823694903765415477717629705000536830646219686138037369199030388852177254378727589284987974857183579476039737450444066298609242746534551998305664877138308963932477336791117988838623079531535631134178544394330135163674535570229286629504008922032039031958796708779927086643008336214850723576755909007516721994707002788287133133147740978424404332677430778417895892279298381426298407947028581247605563357286033969470641692478636258693562544886111267439567221781739484819140713148742021749108368922655905420795463337660715989346149338883556243573098556261162930411317940512635951464573309146056677461200235199944520620603531649295958914770674063075432835685608902743723759379148661312594653657946372491118301391816702787662908653543413452387471930251716742778764903400847920980491212459494992474904800738826647090051294863057496571556784400910806439156649298831997443199671696187871454046520798294308315636827407725391250446101902210490217301451464373090522915553232316859751772047480314848075326152870192679210171180416859563337130311971997047394128729055868523791479854511907763726470359925210054163546780695244790361053667049453970076676119774678124935478582648770000622192205084117782441115191642765697048876826680392280647232143396064476038753602288264146528165968085182357519721935784124413639543240983204796234680196632011893244464153131538951759899395532078295478997443150048758072424827546062315292560493890007485945734294835166766071498416399549951335113341232245696948878082729363199474730621709027413767265408107927989279069927451850716113844156261681661733470036112498921205237009681363222296927377370620412980777929779142211239346255835440582766637294393675590892223525117314226823870790028742082911719685507947203336424272651114632940424137186452913662581580919870327032268945313943086093758368334258329822029401457251407694154272775623195006638382106179286832295053913299033565247726516880270325176911858101430531000773813586246989783365277755956919214851357279832380426457637069792143966573638766760647113794384560126291150985909276301172368899383576421317356059701935659204797665205104602652261092451340008421397979571421330440572627389496695190791419288188428600475248816453102445602130879912706044889728312547988223602590349098767265891080308506529812706081566534938122187569693856053597864490453301323112641047733703690283716388555981702552161223073314837310304221718095280343385443648817249951178428779285281709992341797558322846087483340280275058927937504736252976462711417679166821558696113858694835828218626287647160649834491723787914488706179931471992318871509163588587939784916157809699871065252466420216671162580529002707365955704673178763563910490507926782170970246158599260004129648525835397884539383031955995872952638854468645037769499635626776309907736862518569217416699234566739823875554706322973900078172648021603251773054969600382706500854574869517220467330100224814376883803254461870963631865068676926066401117949176163004996986270250246434142515924282931205930351865757199541416229584307829581028394364405228406753657987897896128286032902081613779855497050608142882423008955636092741015013949854022280059960222445438975809463208131966440934616448130405360051664278427448732501523287701509504706493794606227635657276375559088614728118397096884944047580286983288009829342861531135226000204620093755196023262407298574770106138249384213451341179144543235417744601187506217331103419748988316106460802741804085448755915549732327070652156320019602668414168074923705176565777577392875739199927312414310381894511367986379639194092002235301313269634073091133080596161105732109976981971798284191663695223132095353815738858152900343701106391365263703165187953419922186208614940907819131964542458634695131605472536272700637029257797550591708091417324835130904582591780520182603268713253899907745468062438801740365778333770258765615606846293476490072365806373286117337935262668191758564435907190990096440529026683463512016931671228207672050948985239770691568487977624397446091691875122943797136662137665137948021565877467535960705081529562199198453577194817749565474495805336277658972616625580700860259003270491236123524246984015060029054313910244809209307947046108517557692030726163448851400843504317910529486700431747981705638128873320879222885335845258270845591136970530618101212983932330871351919893390273684159676644809477583719670844561644649464840511454569985207345882424581788907924828059200947901875820976032211942318486771654170167169355511923984089319512454059807796036297454609737547179230404686368878418368543058029165684699370453856282536212381935081889543009943625926884015065275948988204291891359538812094104794188399472205481373003687601642484364923123060593984153613165619515046883314479853181214808811992917934498517323799648043940448840612208185881671793430002284246995853600211830066900580131257815863340757141113033678064331329554472142245202849327592425003122123297439141765865483703995240094852951760758032678419661332839949664259496749073282247782197253030951921336538648986276898769330367251921085422801308042871792147596374814367721406228988302516815793000431427780089195993259193808606949598323430876542624378356170052412364415918039765775698577529919738634351767639044303360994992536014176589396049532348921822852065016510486550580366831390636469444444397289704123504466497261361215474810979930643334803824498288434799529154223125300197740935445683704919894444532724661822334877067923184595048063604750392738106141098106327751087237997565944403843909768513276758410483783679975752192549806494882753095937470409987281392690862904424628598830397075598385278466542363097535920415628574286198907670932507151721484461062360951900474636138535867170822281799878451839051830459263950956159268420019326434985503414814843563163991104628512454229125853998663312529890783491149333398799251157991346374301500676296707704464904373803718785851657314964468295481247540624023435870665700904305920275725994700867441601540375760555784467258158850056873914451507570523161618773665039918225085887706695859855666556982451261534894903637373345131860781672266002058996348467223868615953363410264197767485863649810150074737887069028494084178570174858844152968081800769523879334962861802549351522073831551853442337222129080219306801313307786179159967760324461197194874995647931851007903383928687952133910668099439055667867018876310754596806573484165100853467438328244965888063352965846970009954194779135435795546462040871207868944636470873241165168310719886105610073978378183684104909451002550530510992910291758101235646488155518850383518453363577111260212711227765705208536662250341555382747267276004447424355143915537177256362207301681977902787576897357285108017890730360828921222377804571472360591178574877471432084108231880628536112401368670125354860091849089635125700007657534072360101282212263511474647131081428782611207818949723480561150889886327117597085895449854447204186818050995764106201702066839501118296525410120961480302508262678940552566904758569310828884796501650111339086263794501061591341858528800702624820280505247947377978796434843353428094678664263178183266235725407070410158770695786332096713220455090417195030850261354842495523009432464503497590124037982154250003551919644612377091022116812518006248039710803672143421675313141809138560263752721498890011493604350354394936775821152167526513236632533322237323014222309997948371952225749504730933162757070268247244870974647725530979285792131095878682625759731235210561998973769739329920452028373478830195307809303867488166261892422707998864221710065108752419511415143299307756896381442251683316362743063459231740797273939722989210888437948797088487553609356451159764838599164443235584726711070520499586098168308874094466050063974676556820520394555110445835567756904104713068779127425830951843927665612764085697348425918892829373271655515362901235527957200070821520973939684058193711822312089628341212828223514633560515126247835670233930803997558607178887631936581304521278824983446741067072447183748107968153051385977410507681018166011091614039365072319808765233585105049202081342807772288990268506364053968096746873679299261811375946703489230647401286643765862043355611084521164389504354085081042999672412846760285249833473712292765323046894453951898179851141625567717785442171894325099746126082844190439152898347057363955357654674578336605737432184392834521726116335069247597439021911774728459171773069551590115817074923410044853500348983265889743721379122237952831739893683159726377646555039901864727855266101505269551847134510630944600105503165113370960919871031420999333845312128920370342539098813010763718544117270516612367490509819511047243448934054228726694086015500184824035555787496441420749724810299874560021056920259435974083577770555645789371170007647102707861330333313822226983487255658469784385659682931887537748584512008179637098385378993745377622905545451244890239798444983936761892838824979608338708913084079288640374694148165008334829325108476672362205481704832157994016681986403756271104746477837023427285965363933335082193796432935131263853984174617715321193686111689964276746696092844036794437749857417145227310379233021524096929583625114193953544063236934970626714026389300978730243708681669149786676856561192188812346854311051330735827267761805357434869775084895980483940558215249846967665175521790472218697802018293984368084224541547674015238042025492598373876587742544139141056788346759707221423602472367694009868856268109874641479135887211341404715668970570704400410442845998434456885975205893916256279996419611146541787755416322155011015339582113946229531733704868937448828444022493758992569020788196933136623834885976193024374979909010932634396304406005728708844217558022911594611466196318850477626582048027535500996423914631635111521804529915305258662604872222862484115248754113563106798614543886033320431554146921155994543983139139309245014235666781079603926978086125805364572497085867707908294862329480411944363307452362076618318237381133841474401353824128152378709990161734637645474809444049389553960462976967058897811214003631827465217440411749936759566104411793562990103439206332687772761528717400629036700397005950756482388641059288390542517039333805654609590329441071088764420502702181470067680340569209354636846060207158300461425959391474076643330760630964248459558280756851128370657222556538212361400701966609856476140935021925377058501653937287750166863379394905334194223882072833920471844066098310021496859614615559834972053642983779918066615902173297824145992334177621702027338160437790706603265815212909573190085380345186464392818135926518464320026430557198493940800208489602131734223010101991194451518091814797194651368089419328547488581125525836415034322163547295580353033020715044636811866861515049025184223545998660790022210433995878963377197554783345095538880081967933715346953791685450634050693053780204334447094676480236638406892031904807932491972299796981739926867264722727964027820288023719592431153650449371337243939897193392215100851469838687977285205587618747529325447322430394086475529946970194943998624067891791529928407395315592758976725032634796108123639903357468291736763456888434879491890864564319089188653971405490728345510003320439609229970035089155112198600232943890768191605866684308204724257179574664502130849698323482116835591889593210645380392174943405305676085928082516692186203534645579053534600595164431165459593504031407713629409175673205498402770602922346676586961160490041153565492864022552543154337508796251746084304990752427014806265236428032195967953669785278740091654223185720209663653391857600807785527431173679822622566441635380122623507467957685997264153774265784855897847280970968866599784115019574721024785757889076739741768161716621542177043134124501125001779077260067966270102275868442237132990324732571081403349793153512085879691637113929307820134414184766774408991833941611008790797538637971474629026348319503902470451810378400276393959292962649411971725980420971687600749220775904259323227434109371092968773802349498941977127396118772124239928113903791889699211583668142880578789837229824726266064268700954723503170721349281179984685912841987249612490429321022919605216927269715849491468575682421312120019516413890210230245054323168145103956885653760355250552217411658560116310110364289432614118329382520231335004574400622214018350435312096609337836293916806095324093860179749460445381287412133412696613206866731498665933977250468415070327012988781548680990185225028254254144035286408699397281937817964125908294553704103204082180842135467418191527543716064987253158828487125841378917755920126804082332414845309893763883738041034171135665171545383959884416283113825647391062034700102481910024737656797249359105936374425192934257924611902907810275407282664107160674686988918808103143562921133645805695336115644565381708083300395281864540056232826437525662259422246270946876813204080772714345848457591786552026852714805481232319373974038218730303184188426352782655082545627495496559467802616114994246378804673059545359499049789271233365562941253174171602273579531280542354785227906394919901656418915751297545608286435603858670483705118177920632193249243627756716970055162024462513402647342830859407619380884805661098230577585495722127943532192998311874758125696362805649547480895776104462817122604739974241035079462457056092774226648977815438209796950635558211395924606743594223718044619436098689945942051915963845100977934708131914670643449682973154513901082693848446923899027238392830436922064688053483320821718147371996817347760147131260428409375020062225420223821484641855053062927294999809025289644504347065246074117173881678694028223423497824382125385146979787926477203383379219435839568377270712030364785348449839023777412312996263339020850299667435469545816796186611697236811846051678000274028426846751290116826384612796875001129174099269981475813142553350239069269511208045329497835690799483011626772539863872645729676700969524437788949570376921264508578824343317149885351739499856070643009188333694698141484920377059294964550294971338763641753268654953268673576991527112390769641111602516904974548311396162437396376543742795623250304617261597753357661551550895188600318155694479369342274283569506824833835141548277041338768346103123883672937436702739249022169201677967375717665328284013584456674767112258365914162316263507153772372631366729696682671549504241875951915511218204874878181267882315276393126331630953271155932451618902635263442774685283627685896703284654628819843956687277822656626024120539398505232260033054986576727831179538826432252248453671417705853367855953072679215290602656513727280942396640498143440385328513452038198071752745396187366727786426534665085056154953971749778100676423863969349989125579005029260548100758859715331688358364296871957138261139988986033127200667415250199303569066181775843290880095493877403006436564455794083272118952338151532318662248788309291285128840775230928455742376800860580533165172361082808154618850728050069055613264840703879984150462406858354047680559314182561412499257547835294111914570709378847371723600985981028925900232967905089823675766275177732703798902882589360027519933222724114039645207815401786540971861411183415483248706064386752106839383828506006286997622655694244109994993980282612760371848496331028129776410009460081513457548510852349482654867407387042848749627143653695513385679817502972715668543819476616464912644571736968986756101773010557036765832465823047224061338257994237766233642006278489293013235557221020530094390977111750807904056394989581704473029614729569591878653202701433399583940445283242183800098182478201795257653395727283169770841051299979186828663161420405136051140864527937099212784577258645434565750945748752415362345472871118274266703511676693269402251150541216205642967024001077227078190499926537246575239968235860834301405080747386517667568217935157005871234525363538823900196544854346914593802082272568675244982571128887290864874607274739099219401300409777256508558329432581010492544508879463683503734098069998443345808146761898256327252375251116975687625427045665376091734046336933215821677486221344977429971928337164943614051760788988937627358566172590991802413391826835312388772846568786464941264352490212842556435243991648535966770849258886296386974447062634435499993007031993305460193592130082003153819375322400091724480371372686040786398041203939877043801099613297809568212560449383640826317062396530032604717104342106184879190819566734782934182362604373961111508622463674849359086764549822654516893469162661179569535864785550231723005503291821788538368192767662596385676112164616790642558722681971862116201031019007400557760249533068343135611432356795623591799922295124898113800233486955181553367215307488813683125434486998555744162898999581878763583667578328938266115004769772743707242977393147956852157425736779996539135219518304850755913830891738978128920562938458363246602929307010935330490907110995462013166316333758634482780918007979995741651177759407449244083398264635698665032239185565933833037620264348473969715327493379662823316920585539055482728053376061689847631281341560878486671668994504515570091775155671885103661949444695862150050188108336173398884282998094619792394856393158849982899298062214966340383288051005224180683191156050053521819340561522608950558202633725646400474959477240586478651237091247641903657926196257691298003513342496159146594917842248953316283731582196477330426236260274674836347548085775653473402065537477234291224326126952827350272429720720408201305786669662000729521575453665570757208674966512235923418752819167173394063371887923674468224263301587744923900165483137071965874062500411424746565964427513480097011511999647777015263311685576262718211481703816644978444532554281615708214842252547381078891708613775517939809013341231026405725454966524432952452775607618339757520445483142299282209058369534072556518784421286146893973397726359590664564517752106444264833019155601199947915048783459151771082688647169626585092054955837091147575672729592061371590094300610819556347616005654302359086552720145105332143197647344215355147407711168318090525509784599015423662012409520768639722403460716794861787800960159724823254250291237987951002279898243421700566613715008849599548883611441456691752519572433492925252322091743776260656261381139163991990746228568117840266554980389332417804423376743632396357134079791488213187444255011106906268355098344235638247971917064810133404474835697643774540576702459122122322612376759197323770026943929765045734560136951020752194127123061762902628897098843447268018432997047590898791453313997105187345602229772005491078891778258138408479843629243503424103947333044012217880032560983349418702695819788756679138134006220290703279531280999508408974698711953773451961349817983392279856614843868705464905782472748654797236293380690517025484541291576264628401190408357925496200023256605522102441672284672388447648615629365662714577634823188326074342182008632380202610574005913869245414603570122702589818753528837806669783610815040357963255569691218318121497542450154818505897474159270759570511133904451221724290980602802619046499789542520360222052513804045301561237789620982757352076037120032196169619238608299385817370320295640433595455509615709141711593933956126578177942871532275216305254482596455465998315065450149828759379258961253268913629091734269380914082032934102186439829491812222716707473747045145825736171635773031021464370154903006959766008520386780429444224328872947855246204705377818054725270235875430424968760430832251011966340695451027208722205666610462065764462973636460880038436003941661351899618077126408864877727465734975708627708059202630918134918505020215368123368599944158733246275997055491961026427693771318024048967929356936137517396698969509239930322452180781128042494943817594028940648935250937502333946720219383918237026334277530542366388385404736177244906078837904165300837573207645429785005632673772386318286891167120403062669896510803338857069068170343770589708817057260508407576333411501974852609511977162154815633549720437489857900571097411570937055695921339328373431566213226852685650775124162058822768483900682568829498235165977975248935355933888946555525716313387836256287506369227299233520299713790511187881166845992502260078044891031601103986655650994351190901104503293256920571733320735457274712004808696385255807686544766264060328923965566020375081253780982797272220886128406557659610699148345150540153173863853757924075763391319630291130327684954347222663027076315393635608384859330115939114728062792715956008980355204652156228626272672513556686202745342284119390104498953401524542196684864180637730231089246547516699082550472653970504884108595166656550087760653785881871051873068028100115654092798177620672421771558377730001597971744267170942738167986443085192427420746665572016595172281177631265663198141023054178413945773949833283762605719543143852282987609316038325600927679919435943260317917739098821311837996221702758879360460987104183496888719809894946320627257248534849943501565012451668086349843163442624119631428689188443774964723184000711666489369535163996408661298661288028377792370462982601131908539271785655521173819930395267471827433270884291216746726575553152679918937020495672802997222248031802220534542552083213340959582664592920536751088516712160665741648531116370697340653773414346829937335440706086901901361162876472455428635694627344483060445202839082072597005648682661039739585779573606848246458235438231680293222870907190821146571566520287339249531497778964873066324212801627847897368513126198904958872773948550738134702063908026623886277094932395694278244866969456676649208772328488625626800051082094387947235164364728672324551362444206913243464365293417790621724184852712991649329366549403407217619622339680319857483462069719188485800194276000283170145944214451811174196048294445458514412842337894373397591954788489916631578467382025074554232171346029357394986489413605573490019809469646234340150874312248166755987236910912376276586002756527855079586579062881913517857280174622676074125658665122456336647854259946974392451857030333613820066528979545538147393502411132752045451166891685409640146478654901889382306273047928052403781731875042341929411521323717527079420875399172041696773313197382492535743031581524446293442154316256121164602919689642324670885908477888089739502332079128551497303651997154997515075325121118624928692215895155517609661635713938121996621945543537596813244047059429715689494542424105143455357392752783197775424052967066893858092135377193511888603923020783914855636013909107575820892534685078342721207970581689648889972767975505040717236469308716708103865921483232117167216105300920397395139854677492174494366127112732226317343359707940377934672230770807712660970928697708854542907855046682247470900333837182519573535885621356020466850328418260636917389751936705241938343744823705937860456565207721930399848786407949435650121673478353071280884204413206365355009193334583536190099073634984413344407350922307055743931467955747392949050100984898539492661438026951308417945760276267052102935429338218531136780934851688244231889789691486255958434064116182719018655145536277113111116068025648995101732204402459557503802059123325362104262321450149622523970827986984572042193170062805579760092506289561906158168901688334937313205027442873181476871275398285536601583436782650322231740391142955287891055722891737384335501525000060452918338365279125836031855140336252285390952227359475195068697424075125667692541193584128683168042697133436459832977314218334001179043763254843329178225193189452843453579002565760310123087648201979510596787144941921685841736501393434870092511489501897156771930265710378001420279329687532477297869984181215925892295027509960648012273539565371422627922914960830819111719930932291093999484947184209601385498109976985967389636278009378830733938639014670964503880674902059947361154082787938201757999288957375213769866170832556920214095997941082531734131330835252318689209033448327544277509198615899051672422414920292082165024428606868829903945377983686609652958539949999078490068596626269663082217081474710558262730131616482893155929915539475689547282753491154840156697139813022547341093183774267532949512625641497592555339440753691772039796356143671910343744386009266056008578846370123125920465247019179409063433987921925020729146800346044534220458789944354224545760045456652165290379771514067490221933755609420737959078822357463524951029217787820335729723248936574273706853744923193934657686876232294384969277461203458067316182700423706668847326815935815082015587691433369629379968400115470316796316978899827026600829446095207080401737189761759905731852918835005757607856120405531326956608026368501669861744828084066773619814667498535972511682234923093123853379226858440413888395660779369897131586269916690301291814345954699145228119598277368550691526652797837499747696292729614574863373406900686169688978019164363417300307254326427309874222959226421262268535879237820931183852268086537648771905811935467402890743169127568366562014837381548721199376095032923267224955053624177106112697744005807970799581118732876209477277667085748529067035430195526944742889272588450021828868454071671665397532225417915410303705435204224906374794544132920112968907072627015410536788942817151152764788168694815693343017919923697226205545628973752893260058218718150268629897812595275703540791463041072596734591225808273533838020217937908509469169505290485951854704807114466743628146715492009503088522364811468430096485642199556397886332953328424685924920713306275587460486729977213527207134330030436240079003479714110866277682585931741965941387561945674410169015574548805342151962500725554426160835088982809140029137617147331519259446711832946157539930652449546031516507869862974702646118662748989905315195909974125404932822246053144713276902228859846638100782015821790656239612671013380337380535799310832691438868592668317102580028935395135628797890902611866299625677818859172203471682824169262135568793227379438398951287887571401981729356730784934023125174823142166107583963075926010793549993265609655999507284814524224854880934809773662321452133219399498181466509495488641846064785397044873457043680427258327478358887564622448054341228021673766502369671545754570209787533922430917485217457909798343331316449709357973651542466650420392567360338335196346558577995804392828036962161589052002332559927336344784990615468347158942103637912900818025148191943802574222580259892948803334355499893420659912867420437081163571045892251400889010641570554746741697671599419219476510069857818730211522176431858235728790852278494813048080155213897280220748348483683759739660633982922612149121033771575245237110413580731671143172433416857548711443056545432056764701665000779465575410873844597936024931829014023564455926100420183725508745541754293515295003819710855384861119216049440336485001493224626129466269066443800474196804285522669791422772857031703761466871024470343182869100073916989374193067114648803470371654220808920810650775666486931179785013734681596110713554496047528564750824440536773546311898914598388674875650610584968445876400669596886608775191588889748743073079791648598279675383109783837688633605711309620041529232606251392113284366102210735855804057700348850746336764743549851314545247839062116649241558938704150712102886206484412969355922730128757810805805072325823203451732514909359198260659724365747934524697907640092863047021075806653551651386460770624885997422718789463134414472312900364899019154688039489835851797042644556849476544361641697477478147371883553569537103450612710527341668727859897110661829377928555156337913678199414913464915591332169775934303127921230829914159060612840131697842606039516130624442200765306916185542415642579632310079426186111863275024563597537487452611011750605584743862415019082603725467054588207133551463365897665277064459939131402068469511875592361009911217800674867764278738941129613467571209566448570861058931962882936492355333861529529362979179804749990960369855874193291089433051743549454788518827104101409320280488848537811522569317934452572302700127812828114018144141625517923321800142490356134430818146596179351103831158665243495598726402728744435524098950079679383242865004474133702403981838851160508215799911414260942282025040104032826968973989460569427938541474892888244656270245215542538393218814940864740852130271277940804251419382376171394232223830492908599718408503990725026538468004716142183167956072396401001197967942741376050204241784181839430005071019478139802493075147366140154986625138761433355256000868075837991390502806246060609513922916950595990353346026968411720596900290155153983260918240152154901091905963608224010457174633545736175291172630060874707886809682361782369912352270265749901534241057764902674179071204548511497114143869231574560462490293856433315886067376479580438660230476153343868372165715714159470568308130066632381650321025071338109057125749739498922758676475189199426967947573238322306149301951795022660686239794321913198691322582064347569341494953567735491059607875149099540508956575597283088059936538019016524773462551009970854528898130417108526315731283220013369457258022905404037163510564389887685724717492212410613524644429727186191010209154230058584853206191077444765724332715423244334732695182622689844237168210318971494456790067626846450227185107679185120763110209424658847586223478891628483653307019987338726709186657710527662695404853095621339648804630141954912446161373751360664058309971284459024325334478289982644771249780907346241100739116660226869179054867972595919934477240483639156178955709047611909783009094215520597865593976256107296972213199092939688206428919815665386158416335326518696964322698575050925924308717667782073882441817172696464921500279371330733688137354936928835355899163115165634000007481647946131844563648290394883049852189885567290554038591674962542811092807936802647792767977811979777912857459793840415070056059714799508503506765947999200710186576503156010905496937911645222335707666637884579458296473050143237302216560377887291990111912009801278372816473218813557397315610594070005894978182814147955971254212949936086115620095820924187600418448177165030672423281815398968233140851455801393358549039421736681030336467384446583826484057770126950553825491041407298704643869911407735858120057338095640575678010318510984050351100988673055272394014799892010181830286741292253253317521062517636373363762360415294463220247421455825869993897259749402168517982470628720169046881858360338231176993988174055237696533319295722449817881175749416132113429975651594278441219883302467497417858501875925920635757457794051991316129717253282996302913062819495822902899656425817467990213391578753985251626701501941121655417665774754590533542231163020030370843176278807361099840978076645264564829881974807222506005458209205173211816345991060909098121913291923037878927870972690853089299785196030917827818447168836451844092110060693549116913061277908041404180810037187889673530539510737391259095177394426692426452498649487964727980765872075027130505957652624128571224333699766370132625199433991513405401593103501046543025058875493611096580047442119254911682400146118765337638717693239214167450343028419780277142152754915526085161842418932778748310602820420553807188624021791224214617919617384930214980898279586412510072763490807585891583669538935608964891895424448975388403929997395512328022320335134789305247452293322830936439460204619364469961379713715183902863663726569020648203425800621374258574132766305747650861889185515779143754899316826686615977731524137479315314705175061703393791649601538211602440109805538580968135392619754234719283478621525340296970585595321779302160261349173154722986187090467808936966365029349528781120014664272095947007022469978920275206594123063531994777641011990338797584099450196246944759715079171629874033386726530157166356358698924172928017123165853507414618594644697481418056432338767658216630060304457536577801537150470971033055678715218736576354225770994370993839793986667774776294081744526958941579998447494050686457460612247273116114211272059250945823075483255992261076128773903992081502952842702684811459961147909810217301637679917423381341330627818349927371841888021093548092941888588888231921472304049311603937172909244555988641552635085011771049912436573641399356960940903862847034749720639463935904013222681973398646632345260918064328043651478659712028432486645011276878542619745035680271049519694416083399779463142528996748250010853110603028769396304773415904211608975337423703150426000594700998910183859503469542522461409244288452785026076341867013487497842006487556718905744216398823400942471816847742955493680758528613955917573465305112335858510617374213760169422479239687844869533348203211559598863628187403136815064567581504513606051687511372308589470813451748994080664667608155066762019293513153448970582671767654544582512834578289048931058178514213444984175236420802120643782339873346080887727204099858900461275822329713736684737200728830846708058576166600287808007029350336028116119891556015233437360994537238684332676522671956455388321201516603111084118445020916699641953247157224366906404085259360418845162523603065624582268136951275010689612271809982088566294735988249783120647080419118779815427275800819595850444150465516367537502308199758608911248714724290241579183058748185509135604616589420844678048274866669703311465144525369727864745061346034309825654269439452546831102484763984262778571573499361747317647749418707327742899112146696203310174471825147425886507794046469435397093524901491673011756634861468191647515644925235099774576029384644260605532238442389975142339997729469749154319195515421416025234416444045957797987906788203683986971668952016830677596159293288496520322461628178140951663641207773072431520481271762234888193577723725211981042528096725650600901516186377812021099773263258129245859387901992338772840521782116175354480458226941570180828526857453387953734584216006529445874000965084649110908773135571912512226175015936656906778456764670875474724518641263369637395817442269500069743831715804027778832626576882219040594265778247943609003968423215603177903001134128766651640187732540868566623456088545946823598410550413157856098532313244816638121913397155753847036041363058319911401071429236637434161444646128744697121022986264254064121805854045030735991051892735000012867772760576878087085594127173159647684400441455143421590723925625107086258919498990296825433384629438285414402033567543970869537236214592603518485265371858161725344992182903473625870032199288151439260607221993229528267218052524501909471888082773200971299279733936147465279865002078114987126529985565675515955585091906636438326722184222215067677374798306642533781982256578127427407223664070613943501241232508735558560922131706703903461965665331627023109063437820843405451317141545348335716899712568156171695938710778566306036601687577656634774761094098225323830208711729425639876691810364638373595861371868306778583517265337732849313416948575305359921334832644325703851996587380090639649491697143864932644551271483259670077270466944060117645175518903431314095519774024655962329558473614704649549619511203041391685037029936989464057875719162766120654582799541431230902144659789380723371988415089984606558628076872878073076954423574829865961021277749951621674013772890814085163433189745318472346972320985466601514878402022319893139966241685762027445824011221446256803707093949370199830637009806569588785590980739245072667925639988529063242851953974464714212881771327372440223295404004600154225456947238912087378510158528142822822768877979232704021411207153183566540376158152479519693122802743604215670550970034595849726462650645976526490419939537392790030209194998141415155145559349328686930552535672763321560721919435134194198818358438571622464781864281533164972246144708934542041421689470437161981212427354996226563311462829121441583490494718033152844460625462171045540496865086252673372120089583932154187729311594427559277228174070175086693077004011182330540736807680135583957717223728277432103103168632599181549086284560164803829452103829420342342472160311669140148521418093996110534611291311807827266841932164872349809182268002806123932790108655748544393926530145385516856247192679226443368378208131956414739290143237245910055628437739841431988646381340031270048210427189053614379908804228921355179691466202771385934780447338734822265251775123125283349306175934580254509085555170629400283888592404833100866687076964883291222990305461729135253636598078479585564214261730692627649856503115539855934740301114829182739464158654481572251817533681723199819113220962117052451403778116617991902735949805882596710454158326631516669744362961169700796661047877025118274366909639568549015498934924207839892808063510902610323971922511402730765521628911124894473036864650317201659492258377716912151351389269137736888501406856813853205718963905838298582003507519099842809213890411885797539023205043704857474421296751040930547131997539189991534140906470666025714218506335695224976668602002276534574842421314749863898119156763074372787090030263488103616395366963248398977220247129009060045421033023610581289182217949191011335774964343364931635809047537381434902763050085390154449883607675475533719085667027514327745445439180443020684526056167241786098174168617562745452121206386883676688912130557580996865248834504416044956990644408909473395707743856216268769875354331877148674695098001931939463893978602516496062915833563524070367206581233455738348588372648965115290838561702800957925164708040888129226230559068552742910553294129913596778366050987370371361639420575317071355082146006784879413708947320974469035343742928981278404075341913927301457533170755556470706082473215911352594547217375176728960863159480156040066124122092382357473823514154211590498185216096779902391400428804275019802558278883033467496460795920839525707117712450266508210864855647718370367562700470802904781447172973275959187862221065384950671061174969977417352488289075292234043352945136362801907371474983070446875246572967421910395958235952356271715584425465912543750992667347898008267467686094284590501004941941631100290105565663608643247831075927739572254738496467316299047402855511768333686658630376028539001913118522304259168636225013716662296085792007548915984697520532398072771211053430150481491110835727088346759689770468511695376823572341280647140518039848174377532887214969676362874815704950418814834144054027598666429986512697292475187865457736083879375560643533166246943030597044739130985026934270187173861887911807611083041799479730566082385578390730993658806727695986406145498315056835106371759001276230328285754382479258031622636059443997440959752814803806238518614687229734586161521685411317813571235825444500729899464501549099729075006076966416643286951828743214976003990399381848831628687285123523912949162613528745288869105938296870388678942028897749833965529494083406936484252259461686395284192515270379266274467924435893117943444546098425142864178019572238802199015063524770390963530706979719838630960918826407025197608488550977892437477555247966799494431385312734929015453888337735340932616930737571289481615161899176083888811458335909950097140640533411050378868273991593332834884608993854647296475873720504132791138650329556032541793079382367199800174737167124737796924685419857228515466864812675139344722545462377975251205100503127750317236696956258050855267694325095472010545763109852520253226488277732680590348292078686006786610372631319537919831655825264065564255831273260504699225205672533864005221713990013385197436195238709744960242310717396695507471128315394210608078035920103326678309885588547327159558423817950197429165029731924493417524121593396073608253380256053565431861314955719459928868652811656726762625351581218232917971022752350530147690824263206259866084987093262819324129168421555027931169457066534268818149107504017862497295424145521331547997664683805028867492852206385962599266663192103126445601824105007175264686845686810548914450898610803245990727098195195951367604237117580268279757163879204289819715940392566355867253601354062940011094973803481139348204245750339419392096057600299909232753697364795701067916901352673718575972058310349891172967582254772556350922936875436561933704803047193652742437053469196856783643010417784588134242571550041771951603762009423005251258609177261639130197778199210398320426749129029161491571545059730037008474366815636262116903556302039109675279461233574151532328426875083034545794173717064938888042295507581292772983560728500700096725468365607475660754520358187292514465421666531611164309329192362674486233527050444594721034953189375352907123570555509908666303170476737722415124907948679463579761289502425032647081473921148025583177360253110278534839886316902488349862840355872902332984135070203224120332458643737560854037421350318594337894982442423967274813918294740152454770549470946563053816794148856103441441346361451926031938163373909244019275957992725473486905816771913017175752541183641230274145624012971407777110416697660978148951886553028568655335435774487683126584430101414239554745258923689360533952870440315258049033347521334900684990459903621401738014995833390950362008030184445553030511698873468936027999970161616019547035592298034268855227844001551644428141320683727592067908822143241210865815842674374981244069025339234799757514547280476833110561088626572987460372818602006127070436036912011875661755789466706888741732333587489406181929748115828900006499547758320369805951960194852985096888557765881263069981402064442217463400354047062459635201761122632076526811244092080072787604657479237511682806964725431925780863915839182158491491267585123779565319951699100667383863028818903863900183909338516210298069633898012394108583803102514278567451939471731527197824593320169013221609863402990074914390656621085223986609722063603664538892655570078475606713315578856114593118140592319206459054156124886745345348477666311879046491543281252569238873817640223584481786400232268720187617801996226968997196460296158632526254208742700308199122166419828705708517192532872095832169079287983366206531835263256662604162632455945704571171024246029966858018069978478218759234227179106931667536955049707560422401769981764539037072707385807108374223506735449017888788228923902255265612244414253787683718516495390158820944579970440314256750837196127435449300119117264660476655487038843035308962930554544512130800790758721664867512588573398216455831434192655556671104798689681384403998209090428330073642859954918101579438834113059125382087386396523864926579468867128458671622160587721507547095196434674716722364549161260181035653365677798780650468539206123306247298617008797065845737250440135074179508363419326020578886108246291858307346653208656338929156472399514152363696731121750693915458770470703828382085981580281125686816199998273496837724249631584181211191173300040265106445408569904145220482339015463284015567461233663862197559964002029785739598341554293156531790445955128259652323811328153526496043256133210018973883687706189105711284266151842744914843711775717047021394787976823869653482051094240297285869525409042461815785491308709762958561321645699222672642390713253387386637509467487454316790356618482165013436877562683817028099022117704456876214154816248244969496915485448735938482397854126099739334460401474889522754506357300702548912379292862340125299053548671849196175757087194562599990255262072908829054633714866205007067378816400353234068620691933857248149200563754517731459478523145324812187076154646256341121782715197065563838562536629635570126480659227057436857129202259679610887954627540381494804413638485823657502848692111628062557636736089216963599572756573984402838648719827063331792743470892297110771431921319498385595453157796622953148143762886951678074093673816067491186322128733573545021700875011495832942468217939913241934783024154693012102003357784823207122291005284737104285836424621088562676229225227420311763998562538826756839261609970735565682549995609293629506083205741766280813558218845225130096389026783365715471184410253430512208490707675782512575596783286435240771952987220318200788232705812869388198792559521168079334793771773316024777924385669282502719772698598894741938308148882393859227794951204308049087169997019842990319436282504253491454820170103267593433951309307338052229951971183681357509955189475038000874762074012581949037339825784293522623149364928011966426137761990535739976107497701355805095202754848965575307232906127729745067653219222868125371248887728162350031777625864958197579360191816092697307781352939552471039922260866385941713023800085453408875847546351031340339095528902152326645807489853696859639258545523603486135012631296052646836533710596978147423498670190284867530496389138330019445168328199583119930283953795352224888819193519274170614571736999989682306186578995479910769315909832810273225336488027257713355586720882534382123934434254066446821405389689896883192816138831725264443586112060524992546221671012566188380742089590212524311931424097276690360094538010822982839974523945858867129334061982453978779824847554490800755021772407553860230801126618585513993672053896283205096412893682047100998850584248233744674793769395119783664906082100207718244496692381316367058709787269755921038005399837771179606972849919495357883851076740318109749707809682816127409658685304047255414997950222529028057692865747623180806660087048355832412177127354939337628205593077149776960106689277375725595463503308525107573348056743242505110649161850535430753390375656138534246391755981667238960761536906832030665112279505650460993845935119154306746337802371281586234247120285343489051265674395809056622367776186262177093345155339726439855321512080589365409832411130565264528227213526222562704412162610638805625577192516387808564221852776007913692597520223343818070261168409177177437685185097652101018947164006998512896549398896343973134990465488929505246903632617949312007234351165754044702467681644847391451364265242173583822239377883816529961475156702325498282048107983347515053186065877542921572927087002628963828362990970504640976263669899468070268127704760438587570651396301470246457004150253541091723241969911576965479739817135863972424800151700353651627139889443708877774951749644546878393553208176865765289703591678508354992424992420855864972065241224326421165730148179603831909690460610748432225958903636079472469369952232638981299551068722873497833513295604026622122916939974772820450086452897226686695266678680867485178023908913100351689273162582629360580219487445534038771166227372982181609999695817427372611380381948596925310216376942670168435677898336794535912886695691016776383471323161881966578567476686983902041901180976997038965077176340763823874527554652699105194428943190443537198175063123714307765480718138219823448019159881620398769953816228602557349394915385516306344874527471951012259470980523292290136737550973936772543241636675607001173015900958132483768469496403695542478482125187102047501240531502964845102352364766416895596885638697056109151088392022460270355624664026720331564508081938955164358708780536615438270835175960447705911599564100563658843594531997587637851810661670823962279911824107281536363236789893808495878018498116336840488186785717434961474290549851993093159894648222244957636780026514083675771856570236715446920114481247116546808395263331791624884507094842173578179857777197716676988327472826387989110412051936890233474473622705125670509975141016017855287287166025637692444837678521675003006759565985380636489168902126850411097720214181192364354448747861118743758499508826452014910922870166360592719804169105451700207388151745254872252345412266972273949463388200875947431915868452887846451501774894314295372730715566826477383748532168782293873059828553227756853567364646490161364506161199795411134330325566173157751365419312921969127216680999585994234102052479183924469537807382226079104775024922647216891791659969828335338536174191813931764318816688894342175351675286824377836577050471120495504775656983525583829164742443075927107434602926789203704262537778926699014571200729898139632319552206099650505555746071256803012015515054861547965741132720837171618381383569200210989923215729378902613564882252775757778850505049159020538077974213733264456171350583096169155328635096268432564469810450755877117269983400816373548769637785846341179456235920172213884280045309893290369041557413187753812836284708460502628127331747590791660878022625039606913920154181570126607177982863113010074686861854961417154443576463977570024406107170111821416696138056497783376790467904156023696358227725967068307555949428721373680520741254462734563928329156600325464511030451707869424507618287182853292119841588416935490394459932509062835536094776216323981611870551798266997350706518142789030831968805942116135514299594748294111337479092001979726019152307337031984044385503556024481096663077266462732595275812924454789437785784940613879833122486846729674039609231381429159753013488778138248826844154635624163745786124165338556798797705509288474331659393764379754322856519975577038394869979665610212701713265360015017039747284374283953315353029931643564389567334794519655202670252506965171340488119119646457385295001976609953790086499589653951990811554520921976584471881719689467598494806300690900667488252632072363764021656123640162996889735944089208652432263360884648893150057768370923079929710355534818466631296373757615733488685235423790545373367333797445097284009080751751606065091753347480471980698956979327266838440066900263449525980214874735411451130187827661705711032852150497951832732871585072468190050934258618748496576658668149798729430289994834325960671952508385762674998864833386464095874922796103484179692732814688569160867441068550889832696726740040549732844857490729488458860284897847363109521266131813874166860020117279118089559601430071352923986197098158737025500597815271414489694166331707286266281770843687051990912192645403372264188737741646272035697458463164756533433032129702135555991436829988357885355852848995205063001137589650630361275967887680390243735130625219259915350198293507610032277933443130838699866956278021678555136450846916297254591907992497226781711664036534933233036616392701267354828379511462048723216273454981943298800284854607632822389377753539339544112274544617964772582622053765236097440993506364042273590655274401483133442770300678807598926364458055123376002109469141690401688727193737969518143457898726244396494825835502650572761364606655472775091662151674083624050038245388093718130190166479277616585033058464311403180886610726774269534785615974144813674097366980387492360523024073283143894289976816521801280024441329900172619238495641300545184613553754962277914541748574466583647150225100636425818649958388765657013014563190234413531777338068221087358487067181248025654109316559206928767770078297707635087569597788500361277755184238346874228087694784297123346226374703476469665450335791334472496519836715717811789541149113566425089192464028935859311384077529542947441172459397506921241036404580659003415446518441261820652909862613425749705078649761196711861645574919375167078326147814833645849695261536045250607362021456201124005538346219984793731684013175407512495258937110102725345880662277294657705713559036645619639685949235056974411335344802776729058131425489734805142831991221183352217685112778997921101726403140401313165249252029797703860603109560866229350840134520177896900820676229707803366491547381783743044927450707530865711947441175133343678684551394095073289320138767097407313476681391982975577199133360859776388803655975636208486534213990369536601552631768974511619791584377718980927781216407494838103954041071796508226856768452805943041364243901716526793898875648476668298017233084700684755145299267920154380525477055514030437453667825193932043469183916573299221352784385914247626633402725465824691855505492928142056785696680362042434515276923224476014336547216592299473541093068966626897211603738358343334076207298181847509704414883738951469053143847843188498636857691064943938206760974907527153669420804568850083237753524535836828078442518854704005387759929305578831912958968933906933792613086825617893035717511918898507947650088521298126591748687970761376606259624840051725643943727000250016312801659734788751098741842456576149831961640513560904332936190467488219881388702591687296276851811420722658214600498718375486703785694416315299327142560607765253406337668011290339034420910920966918796136771880719103210325672320706890587622841126595698466770456467592710546921237842284761541937030358068211095646189070006321738548993781136649113716103265514477703753333609624722319540987050232733924016530068922678463140498423748390271469839155864239168156350145034145689342401271964482594937685066958944295672523834747280717590580186431500872924973071914538939591184411121358014469926157155556404519277671570426343058657273587010606134335585461641182725759015487092383021121429198537051407461872295814451631587851023542459711251943532799883862495542497307687096628690140494542819263970674200565924398038826788223335441698209194052264212695959043135033745774399736776641375348790061204478825996544143921377407046004219459497209657709133936220113608543496361175748521416785329895546620310825079332213635490658888240377954289382272979567181309290788977780296617159510293418936543808146467350173588981902688379123921705432884265830020833358005284639603591878971580011527056726034032086607112350980880558530070283401835490345244054913909821754558439560683400905825532388149890610514767585607761786001740783756497900759562967854848140038110494385803071080023106270510092531461261434196653677739685930841013434450047034816077870885876424278916638639928799153000032939308997928631103744282438120186112708682261977663108613319854359932599827855215257670604134918597261585005172616696125829593437183617403729579631077721553096206055804272431516944811539713443960316697392224890397744470538213731150441716488277540418543992387759432457779879933809692571149639586881875301683482560731964160360979534072899405493998391545371371300359216811300170712824409530154952435315955237231525320641398491059694627974786774456228132647389125667535064445887276734071141311969268021850515910082211531458501497928167783001400769223941679628683277856282421639990186821506427852145694310554739948177931163042406065414738650970721515739467004905016247528792622961592879507120000106470431491640354356079791049936651575884936146177314945650404472523233009979395255812385952661925804150907114005564669565133325522678515211749873555265332487271318715224575161623197862000989948577695848761706367068420953155525297032482101313341291420427862307350543745816561836468631006737961190525557694848807793313887998269208238111349207231764953257531546989591687188108485252267012003598566221105919000518115632698707163793977410544239883292060647509049934378260890811865352177876076733610272608977245636780501697210205906057487768152823196557930148279705362177897562224971997082404817241908275139221290099560313880287726464377684499461573577165322296846813954468147368100138303717146781048020224741578624976751835575096204216276181885074898381844320204111357573670633502565039989656231486503892375977836660699771838004345043851650237633037979593924484927814950617342464183380947780137022439630358224786719134340585584868839575813630887144080942331503426829151230276330240714635549620445481795560411631339644192261782369947396635975798969068442986231431642682908499175399239432098942859570139269352248160063702572925641808845161246790953053694846000502272468045314365517565649939387957839104963671785411128079199541569984465409870396118417566178825836512715732562446544838304125067464286822703118852961412842778188924359657654626118534542050181261664347771672979805486325034485061784691545893422492563101117172628343005712677132841353664876913021809158683677808664688936364363914527254158629617077878276319578881895844586831426718594146581951357111217252454292089018001726821683658661361264464764364832916995795449466012832801497835868631467210746280812525233282656921128791893043516086003510501777600824328720598321421880755387508022700221772147605074786427777536371665953583832926243238435246985203713658020585044754015926228654843599530248001732361399172466507541106060558541203618678109657846927845688815694154916255950794615618201505382221760353114651685036107829879929245286761130706987485380818667543518477682576234714671736000926059862576171525086651188039651709871090544485449168623752082354434944411958664273096386171222335473006619176748059884454542866940841767740438938332252388331370920566730512499999413299511403680121489250268132193642106015517424614398159346381512031847661891929078405161022577504594509331037860680564630850587499807997750751316036239424380868044879847463570632619634185197188076679571424090852714090725319414866369895960675255424786762632108270839542681291168513877154968836626341433128666253170503537371471935273563698167843825755984643317154851732963530657932482554878763150123544002101775962353331367179767579589555274646884070288707812577962885101164800568700407936216768839623063676290243828426688793460184003075903248011364585379624262524848940872555211598110023367724098714629246176973088736403957117348341199164395411188058008849133913342385355629777943243258316483191760089526680607362656721574023450368528232096140659159486093771898191466777402683930832967700177485148925607959157300204492826054238210070971884104348939512021411024155212219607848848825128238640986159661010053644597993634141546391583339669886300399468865843224173127815146137758214476964602362892120213508536706341949533562590964015581912455995054057783514051433355785573792254828919811038367671047146424958122410007760875170222445412771468907965226476401076367208806978954847029143524683448448656015544870918779796723850026335538787330206630074850307968654561038478665566324054955962680315707038177138800245381284600369314842363445047700101969457921489629068410107861368830640562890307692812214286067010437828396442962753321040790462677681927382052420656005720281302898024798634034362497063221691298820455025219023458145186888760147292420798102869210634184524532983875897718986845847380484225668612987775013219728679915777589686372072922603533043141958582865778521302900763177515651087075438338624598043953828926632154363619906138882339437821690104752957537355146188835786381459153421534354872066028946290564112434226806495936415397678707437401941531006461985961182360226685437665155360362741021092561203461752315947038106049030126103182136581541250127035216110684421268943613932189612100775502985798283828418986156670149391060257029152847661856687933990981177597189832170063405995081539341655619656773875214811241213941829728004334493284036331623857125013191668048736430768086229855139111263849723475939273281488938386242593856140327936697479576060314843486643232415845111112833890123488999408134706828904133242198198392089945205289059641248027529840378189630184110721798011041048264147595596657135924514020967411554983877168352914222709787060345408839749922457002231510164435876565567096124320109005584880168139806015364808470555945190393077410543343550379613646669689791769339411550624048370128451664812932479227779635481113193302854240331690065015149938901755124269371585470065440127713145978186086225731044831598420789587163882793788069226698328410663507127148343092198773456135180526820124763737201521066105792525304269681228365502277668552541869097200568423711417393225313910273122854231777954985254009819373019073322815000924797757997549837918121069767922758394970451034257998109585130114881313552433737615471964057223584757044902895382471266915148874454500771204553170495639957685751463286410108617349862523167563568045704139637423312810901413103146118433985250673905552068871582129568314576641748578273009044103614785401857705651720797350229368546317091240509919902974820988844047406210497474046341437500554818900652629999584823976040713988805113380906472488972428055256912259772001336483504883405760465784850755557187539514980598115608776645957876510587252081396921688596852289918089561819787209969097480478900471213899609426308526499318519151239964751336531084131926250329848942218066286191628168390886421643075778404453304958602949884795014643875207439364206422773300749992606883293998141160686740950677665449111471120576826302586762264159062532308424371974375032361797891488744190542898442006860698227239765684035489455018706276703534148501029096306853647562071218995398342087808397114193434496342545088878460360860634421817803362255029398329786220407384289478379856841414183055471711867221405902177879761568317909862228635397641286211602571575789465980901057405337357134057415780180923242776221060953546810740434153092162711683570648903098965378256693344827979183160502005866026206294297486142232505242626120873118579501975726794329589491704470013989326634483876849646217994621654173598253904965944000471457132551837485823597513716935513636740108220046172334569534832081558082976581816780809020417373877251278986436557537528657918940938183666260974263567555312561137569841372945035547593457670215531750347071901171572634688946766717490942748176916569276672925415495899749884384207646248562849204112145961402264363861121654485515832050076242120311288703417388217581641303012817931679411130741498909004361832795000008606002165745903712812453158917807259482058749345180553619246763976804905854125275675181227721999126101384250887514680474083301146601032793348479663406004383929569175631773346125000861042192176750046546377931299117511895986899743607661390320915823494202209484876799713848359833435297347870004679063197442152472386327770409970409256589218300556134555094787498333181082578119039462552026890350257050984758615221499895822840142053253166847984317530165416753257475373868775478054232616257784822380942390257851408033729496144495811938637234430816084235107761655233196869767859415024234966196778337686335581507926454720960872991915881502379702570083066763388192621816213167663084553567469910050256165761264816212894029597619685251142530652473564308055096242839189279803577797343749910610826754252197128352708169745573188960767163596136016229457054345173696160506914694061950588299366036537705962728481601532447488663192331689495416385375373244246848709425663929883772383149324046779097731864912980372006617385605922712007706875780773336086528023660660768347407181093930711190475786024242226479243207730789223310066184830297281665847704481617140633680994331846478275683085399466512624851829465302217488719506894184639337795752497193370700858019693196903189697060489064966258390597904108876009817828558605994245392689485684031486934119457365607264353592682970565299287698821691828608384967003370068649417233081090929317833939634140873123842184976042576183741356392876146218853382879939757676295541984452551992386641270632764667756177752870916408118572303499942913590280683327292054906828639696219290596890988556423038727814374791173112565368731157711549335358747526998550604542708732300602985597360280802128022012133568847677029244533169202600191715254323530275022575179997860341685004129787486513854833911934434972329112495666845954920108071011859963773238500334964506891983590108516685911394907480976617673548776282753884419319270050210848899417552423336138671085082971324227546671949656119908532388668483648466380773134366957993150153085634866501944751300308450012883884996616390930112499831294681679525283927643736543995576005487617244483946343542556256190518377116983135184699948983027712306618040582675678575027045048453809708141408277902027359981853545204962511751220987365274078217552414375541192024697676643475833223110914573713947129757565155416655006004717735924722454890241620450441014510637573313415615925631957531834405618547960082391233498007232834647532703461955861222444227786783108697455119848307995382737019608261367026293139226956042096791366002472338675725573714544669211277142457334896654062133555867680434730273077098522369675482030571361976468425625100048858986724502056668234794976750490586352651564656940434172655887885890960725045239755814034763607252511827628453564326472322956571149672801131409120387155006768822507329949536127309879745569662559953867953850692665854361204600302421020862533826655623386992753504932464885259915845442218238124914661412471163100893477129319589472330160198040431033684246330667970015437415011528103680049589728250495407098146254426487298237331213987298128069090281209243393184304517112316958369339570071439683171437334158023196488347496270720043873861626631941151048049706111929046099632748240241316119567841176189370368169900092087082377188224555711775840478907569280938000581803614580422922777776697523684386880314602840898542580868216169226326160882075001143310689216019362214833557928237445784571305423760780964904101852814310955880277896650903235022679010657861995282404944192286736101226567340622565526889042653938688439149986716599359423584557467214359469058064140347170379076646371110431476076302442853201566458375909116623541451953731173038857360549347665135686058407460482166631992502617840912170972713804730961479887931876254960886337432238063543634408103958035392825377667556315624331154415873003897203118090102876090899106280076458345521647541300492781579723390969167675178266801082509723851168976732589913551350005291639759111009582192993010155797980872376534232378969572381111119922691768813333164015121059408773499023718371816005996974324264405446844824482870731758473964602010938764239885622595900620285530762114036078351953908775396638757860311920243536564322068339283851651411557959135687969307388429674082756710242076473899660936862436676556359650733523225731273542054099255171884540937885925966550829322972188136138993367809385872693109983275906525170122469492138818435826059067172028542057138943195255321488100914514284923746929327259846446635871237520261373996190393057248034109998008486365775802793450944740412421276343564206708732699927994308492231473443171724406822910015486025449739758418245443387220398878328998019450410945303464853508440906199852919349958027009557515216328516848025237753978897406417791677857459601870611000636190907206916369976215072224793119019718145849705543556566508646042109152838700867568748565275880615824478540060364439366995628836732256081069169985191839234298805485372585752421037630851376106211466353120060250780882925130907721111456508139510422203329261390920376475284776698392383580825342212582598898903499592516663195259303211999258317953708556547006891499027608152120114620880413024203633676829491479946306306861444691907882100544989674211803648409127534891475182529534494999286762889457332620249244486261342141732243266996152962388004679706126250544882468204713456942277919663615290784405950090735065442190044276625599738575258371439702216678182893910396852456360315498483043652124691118871906011425513891595005684854282268041652185814070921488539161484012166726660653394450527186721571245088479322871594995110128916860225482281196450476726634363497181985312702975523797979011482751335427454573064559274165144357423316288470566296181750861215565949250263501727838632129643953148473387919699694623899347284535358620650135816460980979990935670601753267568329950622793190441823551986247890668327254825911728588345734701778007426074394346661307847969812178272646668726525983437201653411746299538943129104579686763742153272717865379957515788508394899638232019835398302723953787751636611627016758201335797834527999253133861664665760209039432679520188385097727373949192506915465993642261495376612128125065298729404227757437419263274861004424034661538468932854886629695288551968319467390239370722423345021270340731788811768108401292702523017468107557091359639901973757061904643062507005330482248252132043338169323701207998957641940628152135973316967408693648923731643586752846425009639314270994892415733544810208017832328636655039597692976570591768865286914969190678015332214241042128764870403425193971826008890375111118380372952274688189603892972950485154973231478010829247752947343095628491839241038523314891926398292197994055652409380550163899578765123832977057200666914920053997661746636717242075318705893022338283071049386352582478057805838480785355802038491938383650841520965985239154689865347194261683960857178443385493799244069151145428174298107069238921362732194842124677901449810790238503147052671659054244480734981971652271176220319474102053944226657471458632793634695791846378207201889319775293466014804986651415222934589627953660765618405349309264733505309844620913845916277838126344353555493619277090711709967910557424893531954382671888124368286123986080911191339108916910760421518433517153118560333579980519636125492410149047649951782332742834647761426126264505230302202714787172221511476402702378935491190678499838545736304319141451202850797810862425640789884896956853681240455913456800419429794591063783217339716466288436114905728331189979067498749716779340218605322901415771184113254266028727627079373849702316370645916839564732316236357170551398844294592010195822040326868928079057432303639261253853545189330029151873134239109569002587607486576693044076739633678042926130795503482667084849007716204532511796276470788114360660051336281834170662330233537224469985556118300551667328353262307536417289136562133564871548332374462601134296723835529094720570948676812693301056010161127639154115703942477071770533010503352556731715346784672958424753553814525956017449288479143005532012482547750159096665756199944095681885437351116984876921686179574021954861022087783468352417369729268650043795003937215471182743842393714478410767761754981727289770262689044272233684949512221226546918854418915956557905568857149699368882405785117586565367865118581563175244251478956709929757095124603957106352050188902737055961213674985346566363711007561361357648993692465644075707013821488565303980711900949178175210612144173215319802470489608093433041419569003717962879340386409807522840482416458797528680249559070425449464343187644404200064346155914395079526671903786845229998931830882582591430705702771779224112464407706813512378244062908388743194029508774434171322528541165188648910904462980657640919749064747109852983117823287731616935589056528461979078818259970295487532021729459620025518063637799002387433763780589982517342644723557088351775150169734049457429416928940381183865872556035243467152273349007500763047780409907432479790976708751290021229426260515045250340585057091911895122523391166230665988619742485533202564466878082411426894313977566158058623836688824640411721577652681892871143184648217019912348971660998341681082553654542307158081019193591752410496460391694415553941728797888523307282385729750031807925887742969805795266508286699502589519251503049045479636124346357351081144786950016204502620500717498596655135602334215235384918654025290958514561833332403416697625599295253846382021234814848769585165493194778103071719494138355167178220593372386751684016295782158367343107973115071612439196673293270488134430731902557468231415416857464103938868953523848454122928167600659241504174359255697528645696096399742710294678002096808073022996104445084390240878648096243868655618093913476970251019528585748308395348106180411462926544833624849264068656707065975409076331076695044036272711992587894552886031027067795973801040242899435654067281735658723189970218108541606875906343354694338265451624389780954416677945758919496737494262480326226770482488530039795041934970342302794393583876433808780847883166175991661785883279227884049237522266266984819834388548604483421887472242250089158107344720104512443638963931920554561601310829007641556446732048016962021424438871556054389228179631299716784778026089115769133658906680862185361341703891579668636114296517273394637159593701085128720137449646089284267123901178447675688039390223846359727419984028371140282634321472429510366317163549078291196231629652530835311395391820360873543402341380421618808349831726983376928775523099664574267572235612883516125410425760104864911052269911988269041626160112047857747620354508286602152774183017330614025837690648519351312042267419953430164143081890308971093422367765845563828937312462244346438478864996860417240983216711875769935134802502532996786887468468407284964884845365738472468248717343667016145881102275023223268817234695977299261689853141332046252858024442917326823887329909076663650840941720147970636303492374926771660956057715881276032468781860740876685780044186254935223490463476347050356476837746574569989577491315170086401360569619351561704548281224929572649896845456822094501587904721114077509471935973962143141710989239945796110310467519942944584591874763783674288810704091349799416859305290798713319550576923817781337881201123433233089191184910183128248096922400466433131305097089827340570098723280140363530845483608326441016755098405963542389869239335739702818535314054313956057770175837078905770239449140681447856746661273953542763455767082396863988855591988169713750646486624208639225416817326214331856661574216183892299659330839423926092977520211066325034733830579621465701464816243188202110164693167247504437028988371999424744019537640292859094261947142372712767758278454823235077339580629125061210024801670563481499026304002896165263578335079997533560093041481816250154139844794849445507741688649615681560218337219397620950349191593376393735920430846881371892597032890769420328442411378549533597346878811650086947916829859776520996755447719561477644187166801891284940722962304740385007834522209411073082021989087772248527394135901769286846872964205616384951081671625859853209672412255073753044991666793571222289374922893226758789119992491827498751850453908730136917240577720355350788540219541383285676321628927012103852916423315585036948249970041810698437441023878551716378341365241691818603099510889105057438050479968380864010216265402819250468606855249337728686981064002924404170613958345889239313170007966941291275077081366145012609874641773831998020145666326259993101356909169284795223835120030013631325988648342676224758032855436013873281213952624719453211621139864201645114180759349398488313047936827280542672016248582580309349666421600348958227010434436927100947137208049190316574015930572998106551064020616231957639683673955536203473216476925079694456325635399861758871976995608055152726541506344382995068124585952895103826850439574715490855593862662904428327882395876248875311645546939069606476697142291338939425761547333881874590145874124321600594742596871679300823580550564758927920560884662980309876331353211001408681217584623828583572973302979842692434692816018738586290772521571305755678220273501956178455910588861298632354949973327873632927393426178322986140870446764000913628785399316462173862892458703956892727906525072358272913975284429745522767670007928191646660911302829208359792605363378185342683006527123015348954703866319153969418373279599502627228983163818099099923552411918731989024660174320232186465922349925826560270759265957059131316231806175248979132301014156051245547141717662941153814256649184013103563930513845109065067282740723129679017090078552174179745322623760086037730694809696723927907744343217954030430618583583024096617970084455067920412304780290929420211685861473697535672237594122568699955567297314888151292031389498357115439042247649165480315695657225454161084905531388564411895421640122694675624693662765525025149078466866599870684765052719153147227179853068254706919012794288034428255956654364827611201052385245309616319806834261626549333014746155090267617812319804698342480855450430970718659333702005497373490333315295011699459747898193189468109785555148470652451522769349273790341405504683946219467466244166410559498521108438035783073301983277854974971039865248186098373420582974132316925089081461045835584502488373438598089486852249521784395793520032869025992475996348269560967605953438652370671243946385313459533687857484396959002824931176455071358586599162794619466912831566239988010638772918828983445383118929448986114835486754099721540313768311046732784732582745608318953397002069878152143482577925783586394466526636619205213473342915519011854390049441630729811979105532104464139513559837210508441406200506567856663462331263681040570858690677424935284378071176581301128106155058769183179639442446470631654377624010866863414219312740799888838725453601584049179065254035378252623111745652371130826543242687347704940394536830335058707944283069435003943184777847339676249393473120025216689051773582727394331518197934523912776791198007743205146827600718168139298236486205149340790653040076060293998063272779326232962762278400401271069135523216361138776656739582116057651992086020665304660325377772150415654663892271863389166819622630420409873473993676224995747637570490390471393120050602546323634591347568747364048182623249116604287308715500217793144580584120228171757839628575354740194734173547822799484118883831936098457541304003073579951178206159783716685366557289988854451353723433805004754730489920589503351361787093462554913867705228252100002122454872957697300712416478785432369885562510201459341274039801764388937856955855099424052545869987165948593979133867134861788925153095259963999441963388806764368600763230486447429665200856121810143017735601057913893107328470756736729501731513696159969031207370613940032038339731621642821125990039542664037554965130007051973225430727474507070933349153599242429812225220509650779293045358481330097335459505390989898394906948992890004523168072497404596292598245522106758665269126270995548578448757685785149214756274688623957328866306713531410547078620542177083002654728813184977492056465456171888595360075862044354718450635562685171296110326047548041697373673561581786700427540365410105285081320955703916827727860676793161648936528082348463694702019627674479029288294192949376516017949469358482334676171647531853763261021184084639914258563051557481202589504910171473675577882164653140366594851737188953937537868367876862191206292591255388072644022844925014835077987009543986886692921641106902399976739588187157789320974628156720375107216290133094108966791221283045072146998354857345336639443155442650633769009057742652057529899317766514960163363735847740924764897253345567655569536456139904127494364069019916398092735189835208545980279522875680052738822815146261742608001646296873669030667665352103848900435146640740826215125761133238558189685900624539135551104238756979764454662479772461394519495003001857847362311116409359526780467868612954575250662507983323500832050640709455307259798584777715226952687628002189182905756390074475434430077234234267745942765219421774632643954658545626139778152459419794054562544930290603555310809282264927807298089223884040537508166950859496465289855852408263684267195563823070167214592852803137173008053384454497967154794535936735628432273324608865874431075697342895843813166566293265718017561151336331859416347170727320771036710990506877915301854938432169694187612674344363586092252362041576348147081021264813792181438325977673400279009809150172344033148261863436184040710265609772710455437984953014091661858306382532957057104533106109915234468269270429034740500254803376359181010797214978982228744398527709141421272480137113338442872881580897510051905341516220635209261633754537554658381886039506409204279077537640130929852401710531254647878633222773352991920225754850239167441457794506113001299597329930550844442403620247035079874014061327721745296939882951427242758851077674840273153869466867518398223426628330628730704517681059459682904317493145522497896391784625633668488418170553844485335250367823408529357929588089831786312179726484420058199541510007432264286670423190977208066333385658423291253875583806474831341877559889885244548423672171248693888970286892130487882691597009948107876530073665128412436715004351135042598174273998145022555353273448737328403438378959267119012703157336122921331630190719818609456969011835447267032541112204153486381948380939630420907937885341807915650670815916436128431187154316822846500328791678303664149513150385546867890276750369677962070485259625159083059374405767783367155091725660650103415285469770408254035303016265870648306191097356736425119478269049374454554064878985669525515581693605958528159786093223138542195409600177866263926863563918654278752542003772840931638910524689699573658361049831257788160070459654397918765255251144683055727334988977965071987257851129167642391696451649209208485558707646671816546973997477049571281155307277788505877971777324472955902812738746495637497744157966216788444512625487497723808765234768167829167492548637031494295483082573260996578063069590317836785990018743692344856890347770440574029923042949064611067590510760498969845898949774784303468245090109775746827609827996580258263053869675011979345401101227294345256636355106495548556046788869968962350091147542886623499501916538539497598695916289182478655326248992540971984321745256978886095588715742114040629830702816585589453164070128415589490895157568424588811463126803496952152101387029659277351339015279304378410931476191347083428081961821603920727968380261594433583237141543461370683318461054663826022785508260345350326930684847087559124207170295268831751734857989672983080664432395188159530539749144345929761400324963368790821703793290766924226970293115896968384029636148804018774425023690249617790261157034779534375441933090328589914835438939086670341183520121438849237495331615756486637476456842706145987339856374018597202507951047893263696176937699246600101592324489238217864244597796294902616525219920909492851450378110621668757227956098855872067974757286403956613730731218175434382818879601016709398529469451666333752919873025966364885684546931990784699565362899210045823045386495429461131445484637751248493530377735673024267599066058774307467032074034542354814453951047797831999255483754480769074094751283659146310722136473094666565439609529741002494057426029778643067883101077928157495997869506901803186653188552299093086674851780901467735565274509704418849260031250376972718846580998122405707626867176401732159604669349552698230631543231606380929374599309516257246391972015929675306718914147564602866543173180327019114184815831961642840022390729920451238371561153178954189992780211228892192595927431598768247350041555580140867099263256757986215518168817103896909739353334187328520562146943629385714198739639361297144322719498527545922199332682579575019074807367063208284717250138289076238350557936830401134206518048022501837971139038362247438874393210313764381105006032618364891181827055960789821103657889389792713463547954220255726204016853767560369254688830029819866506852846298730443751534713346633942620944671709893372855039425323553294635484629114385271554395244324193103514192681389950115488562626378538913847929453839376697286296520986259248083355450076185242475027391926145093429379823797527068539703996369324144032247139965320207158758071465263093143654739939753351622509122936476224392308565483273494923576136074583982077263552810382112294260305860443600306117260248520353406608320068701120287450392696907036145418108531242902432312067271992574865459412527201480809742209593657647582951444636014187022091860719741587594187226384472576704704869092437052273642962815823323790535581865428479697274414860633208625694587568724549500937935698324974440815818501726633362381826993596283931649723009190555105620022404600200611544967487210314053422519521370480372633492026523558450697094903246765324534202760922904304224037842607164704353766104744822126931835697096714792896776639615490106861652460831341289129555555776562071080692446521751196161273464827434659823460872128104985623412306768183583685396217929493576040864256580962600502579560255293135370167215179849358471262395397301139829842399828479301290473808127820279833592632417444902120764608779658979712843727789743855445674887222402213517907192788362708199582169871909284600030010665396319505890244196730407627687579732264864030428926828631342348021817733479301603969639045657614038814181777706334058003411674761347873954135205060094631764226259479900027631847011174025591740773309540335892451547636811542164390874893464878434556442738466017871652219578540230986600569611696791704327604300489522761267002306872311470282706442430808456167978820456122762522644234451295132338495358713003789662003700733145513863769713184488086381961770091721929369607898461514844366638663039338340990260760668222829029338067271499995151957601890762012768346340814993815574982737329091868563443725036354929497342870718469734801729383397384800124373602575552857741712884143188645934094906969126334916747249622354154732763025121024981373392169794064468907581172169684476544795261198510494316467615053351427161992865209556201510603149335901761374525218786060267648951382288589873881361894883114890307166952970563410882097455889827180485269696757100513844312912200388842897846149408121708937154342395986338434849955886184088682397800751547003825754994459954792451060947585375099218507731269535439044521049000926807105523466314808864925172654518205916686940632206214551869908198118303750099538612128961695132904088356405024060561283499282539054916257778801749938794569681959644110270370982645946349163033171501852211286405064219767694048772955029833638362819642661791522324853695345462021686508603329282772538298110435304233316535639813931583949205735990069953452770912788642041980300690889919488908992400399184162716171222324591048702008189554281183424231326100624889945500221147753756449202550831968081997836840171580149286432718217898985592083918238713206273986344042179345447292790144818443272178201742903621628947283651542176212446974913652563774948574575967633503733309119127219435130123120761404491386944946416782456346316495112375905643042886241794271348914858443189277350261418107826325298651999581917470444276322202594527206488765274884885199890985466571919643020909942446166009410194154414951267925570291094507893430485617992895373153684450316464582391769590699958856071511977965023403745115131590358463807254504883201074419022205336356340037188733469405301027690645581714085201166632399579370634531676508677660174056374640194199712079107184758188631695381473360014215730336869545903884019140630576597449512410184541148179776924984680190136215502452741602572202651760027325700859316496856495463718035393566676211647944504670595032117911684312873773371225978527212277220241904899244537481715667859010229756598907282338525223270747535497168509926499602102107091768847684600099924803719708502761851794163591273346638928240135658734981421121847761579242459865471957563022111998825379068834304375675922677043901222721224144874245421961513568842318896353756355593811988072002492149056516268312222217341458640348660606845662803109436237865544637987925214221406892581284788518394667810476496531804683345098138343446301314346651020277783336437174428596136004971785923230079677348218929709019656939530709379159210469591800869658286576530220993971530547453752584942974511442299396407581046009867398505899466904024184406993520100678105944085486692054735843008170858500872018780193001124235391537367321844892306873164347773751338546202177473624159151247625279511620313061098570704996813860586982681175481330541514071441529325730030762898800474628361213500308001004139687816766608980782958510857737567120636634907327690076348525995697055763214470166917963348117278363338327730793161350225647348868823941821233223630573249372131279069921189520596046875908792703443161127260334958275744722074424427155952301162936808902156330505919373543937870291299499346153375312033224249765749502676850310916728676275910906650580403166759403578493904835122665451251185498686814084236079394164157046576361286625767238429950866527610496886278824486123648539193353630066490877349529979498563890918160934710174064465699599133813672485312591278946516351986856448861329896819651008345870860407131249879261171162174358791642102373848342050418358372272113440918239969158448869845616114101014793458885552596366620086640875259379440906309417636972576183939001845618079045425458296461352532017792123829180547508257139851058249479094125137336821546588729212539357777111644681726900525324141229848758934402288422144431693762139522690251639365951252760310778090880072079785265870757236107508569138506163446872884494324090761466623019420333037697797493176559207896277055694760404334764655961260245073320678553357498289831307876077991462398699199378845799531609208069658028075695170868580105762597490989096056481501403785015055169634812105919300711898777465616289845953390527001517232336227271600215660059577568470773029768964603593639509143666381869740705085416491978316681384369005426989830997526007149423669217935132408970866434134216376258690825067629683858586131877857101791055635669581444574123361125795555074889506547444115901036535262012324765131450540502221448495228007293072288585274746102222951798769699508137044068156388149221425997539875739336066469527958066743528220501654764595853108602969249971030888724739727532657005564723969198939263208461712669617340180670105533033572188899173332030513251386014923108671173117651684185723458644862808379535174352302127204649091711789816145304950947225897338500510442597326754155005560975150093749204220344654303705741481827590336474171783714640216813347594121720609197954568491791736894349952855582553775957891855675086521554978093493194122437064640198665625215045264942892356029225362534339668903036048864262387552449455067920448826662500167000985439506506709008843179809297272247850907668227457649834912893230104980688007908747728033909029052613925291301850469078700506844231185346129015542408352574862141166240170460041044195541740202429980591617231155034118958219176845156304065988216575508743378796811666990118882739167719558929246362756335787372256799966486452766244399367818024126793292596933019631773529928454798671175068145668397316159042050882510888772346780738443821164456016761059333388161343476507053407446632884132885927942062549584549899292359340440841281499665090490433631255457899682875484089381107563889082663086569622652385057767615316793182799958516917254819104485239512097498770655326238232306978343708660629863785322682294697619158247416391393176447240993501150078404716643492961105278470963710918033963005445284912801244312874020415759901506975425254606824419453628551802379958282366407219746976228945091470484346005130302652162580467974476336659299360347552318119326448208250906747965578156521773488367405824044246688692542295775973714823968857191769074427525253261620005521724442996915076844837164265050374409120111856886055404336464921181571403104933380090729923723989239976500152576895306871710546240281913794423145608651233965865677166558634987122295210973054352885371727365316889823676158634709219694733149808552829822607596370633718416843090694376622649706518286925550931141936513189158389610931176283164869195263124643798749237357509927065769715781897881601742968614031669854799585344133449971484907696356886423513728773900573883328045011641319801421218539183239720030025055556063765871595009069327888755550695413906354471128217942271922296677551802367021723676224775698537967999190455698068042924564748651328952261834223070516583155441225272044450457488530573536366786699655952066135823379461074905422664499543011144825377042281742838710716300393743357899376501930756690618323638098146611768136416306567117265919691005150270328412116582931665307968904159665884806578697437178782611207771557537328591206435504108266944103866271993107723891092243216868700996518680546881654257300066260320166467383520709907645643472294250786045250088571276089128176788175031069444063218204132503634867593366079951486658051986310614487053571516541109447701725699531555372450039690904046391785850848464996043376109706676016364317554502003041193279980344883337356903391096085083217295912905561002081018826573761964281189124643462917781527242595458485473824858685473309619355164030787605940079065516590852873566509021664887703148929603780669809264365971088706615688255147147034867405512080255563239956489245022202930350508820042562639345280649331676435086591588601957748348958066918289844452015161585197665534688633435422466640809323206382726281613489797287228478514313973005942547595222825060989455522780267877855590435288620358538229628744575596894632752663073268833878155316018112759035726765719296140827143159743073968354076131657014419994401485044067270406348041001738751206136006344699872193390607058606977995799370795969678002528730418274072220247842441376866585606105295321847100016016461994951832387941183267770225616585371203967191703617564394950078757761631069940437314200609192768295265167904879934334090077707697894773855458386638058139674411408280356406364245051861256910269078445560455882397970269410631628141120442408807009091313930502351813718162116437106568237387961971654119953457480056527486358362606876092142829725959385512084438838353968812731442522519526389796848746638763656952791938955746708791612335948695594024604734289931655649812896760683835423159520738650734090738554933365955525763718876609394721572377427040305047405557392036563228975189196295821429954900139049529014745957062330627302717872840700776558649257046824517007641091601206478372799711450090325103608159483040065034547872475653404433887484235940763066673632648821429110179299578621641053383716831228085828585169409149327287936687135705549562856170837184614261517181435768179672226156986892222415745579439831178767245955979310442287554909750184928720316117528931403168882590879152300985603519569166614628453432731117502436712198589212420627168204373054288928092079313143159999567957502252141335795312932412999270111063022443863014334571165613172912351498998124745711662054216060740768251742821139943570868841713991879030668068370448484958703412038188153171916242132142254681730274226254847159756694467137422902574005731001745365124631946822709235710264259245583463980568653612509013416342619751432297933809381269606754259968779644872354063861348624262690236790985954262736853855130786712180126850703650691647166833186369988251854613759626361774446465410426814073436905795917170611079892411821452412066287533694235892177276506317166579549894691665982200736550889615136481714003779743447840230846385657245528218082828003257169007794529327991041281289241698393573166688179797423745280671930687212839991974800194742789341428902652416581203061958258964128588386301661399588119131105260963728083047906025356271199071740425391718753054679572546058236557762239611114681617306652948646395329893091925734782483087262422179861089873254810009293754511107995869304983643017380829168225031582451836041593830099254303054857021758408494317324542655201462233306925194802980074104369822643094008781850397811842266549715462365957748925988865113742969252630777104209613504062533750840955260166381037522756255709983340780010886318961205447384505830507407463087877192074208675188977417588555476427131800900396215533469244404192573749231144669503264422498912482525723742175672636161109526099855060384013968989095550164834688552330857406278999825984694753851476288105322952561172324427658036125382828969096269013973778223561839536045329872618004557513684394100247312885227278265476942277322293693928106451977648124862355146947872719936025200281624000677417637817204418506610192574022787680531476296097786586384065363584980987120745615312320490591638933966575408564877918120298477182939685822276444496920071026421496669539273608561864612974149503463670741732953146954743853984858124745771178724919916449942780081330428371800798647166401552704944228848613990439936117743560551078616351493226967878352716133531718976798719662780519914837448897560357426102047668374526051929175938406686822126601014612064032323062718407576451894361971755813569797670496304190109605929592244857208200118044150468270799161187530457221694622780854228987235493701761839227359746397030785808354950634311405950280004096153557956003826541857368857304543176415905651015812057748057781922744678226299429137106155808990768628853115977939068857905300558901654337802072992736277529658747069754020121797906914689985301505639004097371382349837423524756388445828187789393290499223276457479781053093260577767846275396492358115117975803323883833991805053485088285042851130654602204836336900505359478409917085156630107504766501667281649260188724874237903152970164532890544134108835478331076262396159853908356867538213371188644584993715771137661569820450362446669307414522117417438905410737123114405721637099184805577234097147280513626756986307901549824463038832847036357029426965835246152114404974124610509421787635017539590419287516232386563768297521351947047650014359867507188453912040985611225951112523595493855218350059848808255531942099421124283056943599155105006375688354572822261814464839065437088523790830600658373392126562736620142089650968839456739162142682536783245073570456686304736621510058467585938882581939128924138578996217754211272555797916001150935104720846195305721044634192048448625111871252093679942803771898112288562892025723612847811869762340334549432541646061184221757439232278119456728354324606988739884369668340536807277311882642840635181433504110941882242756590610054509731722328557563208183818806252908953274030912544160131945136678278977047309227232857023689154205335443424784019817839018841413269237081973537290886485732063894075798867383215130379784622955657371944211187868917451601559366652082713145967431043322248473218631212101281021939418585376930916409610043543388338782795652318994273749026847967042957634944085075735759602667992026645051307264729703410272337305012745806825717918276838081512670757804440188936509178840078284817290623827743071619137641788796801325267085548777595631522299758193790721852061877362837629103577185850502881237590576444051514815684933573093114862620582636980091773754993812885649436335546243992849128021174298082818615595489305148306209499408666099297897138527145253562729487336547617376683464293073011193432704230261164520612861512568020310816527060294345376164627946649237029698475941894157475573126992626243615431180581085665894345379012304750221308128555403168367770330873684739339635141916455674801692297936154535189700999611961050966701089982766042300724042616013141703165129338029329804016380439921143493100824229647881853577364069064738843810496341584817092515290003694432498321482572567588793630921885349625034580806825811684949953657392869961750031740768268949543649502053363895347200841418189397876524328357772108866154505700693469738240737762793964146990749746589965370319700985250110564181519482238403779113700746181807120030806873141799987456579874943877789836505918487862445459171871085175692713030802685870368774297513183357685072069486822231368672761174963352786260957090182485377697076862957470537218267186444140038667729295683600478533911970839608798584631349440981911452455698892469934549988647023386074763287837317763268609688442876733476267242190250712281590377228192903258839655232350869602795271587910432033005925774045176552186844149063859802677284851435918943236580585049646239854604655249007055424863290363026844419595375207465231687342654149737726805651059123407485253532565602238061561224081460363088497861422198197948097667819454622141737900696793230224434217687005789503748833299486798368488165909420166630629470045432401130414409462309923555337746417407414580664508711843472601572734937742896925198626889537195150604232545774661291840012713232009476165550362202981577396589812351905333379060848424615689925377162946638606096176478625032760400904823609135725246349143966458964626853417510506515417657869872663917953316504061532802510558833736620086255380869049250877398265681260943416708756993583122199084573405120369572515286295995607202695480949609952857546921175706073643927455255146792263527730338788877994249538872476534404506768989970662911102540768618810179629004196953315471818336911222647002008796386151569867898670079663327305210744305669117616034810012034387210695950914092054026173032810498960986231056431220741637055641414730868207584934713294728552234231240882633292282401710155571983748331838876805060938106888682292570143804575788087260066264161711159178633496276341319662366969531894857331807771534543443910575461676026397379974672081478280251440738511804601922849649222476786564031610614227932525738883176717827078739742726446126611842534651445710991621621040583684665739185910713296711276354290134585097493710638727889665054449689007813409790607477545534032079212586491698549383689273406856941729663757337748274066278846046684993938202916315955492243892485269985671110656461706469850486206121243276853867314104880229618610143672606599200619540656626658199648135882239058119250005670090899986279614797238015546172679180047221114137936033247830028036091843573434824771469399918619707657502630308768866077744019330359460103558021106912517688104918014181777599231636453529789461258989241122372169056416292324494143801794320667586525232122750753582573053751701348960299614404348341696244629175373135200643427451197136170571362378905446167741552158039229379471300599746492824154914163050988017126713234210834050228199030087353456315541862803284766473487276661829184348471460263207952553723501846125345151971589352569323539922108082894541405375739263675112385118989703822166182985335811625745663016574744695013391859484879233698660113683025719431871431518472589966621133130300473806581857107239279287055895315950154735400316094713372295891846465225926755839682271579529832521833366375470494099551831353680800385508876908415206253225585923216942079754830975782631688207547639038626532463388233393919149623771275296874241325673285873945232459229341454123521790682356453886946088902163748258894531948555705846823198987856673100161208000483609895414577778733146630481503343710491889655411886537710073481569144064720459663509389772769845356328554257052912448968413323048915475165790683682533694539335928210812776358765953951503778578039566341747456627949302056099229804849425327389566368084077412095123997197499181531823067500719816558004195179622936859661409276148345979925784494995468746847064012062648934499625982247674822967202782903517667708561909375724553847083232328837577296864439834628733636400188654744813824111319735648597885704208906847310634454929225955666076263158279955437102377455658454657259332578339430210634957098043629804683932987349326416414624751612430501025796979854563828919483092817875906680456397630937001730264114801052949771824502195257795362820774235643296177837330823301796559150178328890874747420241889110093029674069886458512481935329412087962185768075160065676250011920770259688042937014253742099616102602848217718664683478913997456431182226581816129331606341528944011908190064217070385768998065221831561839584888993458523938616396197298991843791840181248594490377765255544655697622097383264016216569020285690626816694502594432895630999113078085842541233085237590770485548126794869678505915620792973739670981939516786404807437304544291207763234026043428641954088964801365867973862252974532758447536528778903273624221699466248348379824317387604467300258800931417759519137980895475668521999353444686173626149230114109267050726096715031678218437712741423999339393564087956139124800394107761662559103992183258399978860083324968922829773185327504131705479601992276293157464380172273750672174347812915439922200279252600372785110277474366098137196832471508122539304228614156427375444284698624189942519927823020514387219020870361023170515996110106098394647857694236933445563887139363900889877483225345938237510652387938034647934801374538197934455301820130623252811121459473089109906150643815114957368187068039654559251346573629899645866330433671603048604329607512394499199718899791587506435592986771784013221392532805705468733867657356075313650641057173663517124722753930724652377134833172948816191610146761300925772081955219235307902058013443719979268467460202470421784844593074818312476009021699997288638535959696667813297419481566537391169344138946881566822716564766729343992199984411153151618201812688782069290393009062156432209392971850513510586110645979282723516413346808076926811378739908948117802294066154105872656371933102094094432343572821903626204877667713967326298973867587423813738040056799678689419048679957485714408525277862439878456974523245500823250355226860815163309729701088836757567418963611661748125536645886117137207049265809791730422167175205143482380412826592138340615401993612617580575127162722461570664037466401929357854550134961887379921714868202329119100517047345301965344069104624000219127950889121318740859984211679684160051163995924467033075604091460280564364252702775504231437412327203941457180344635711640162410799760347952130185199584861375446142261305461568254720129962732959498444255457623563745072510499116206613925699477348626043768199999238745207929057762990128628513219019706282830345184672859834513573265813214288127905749816116278586824975150535015851434241318141715948614949634998503825060145482655436426358461739037413362452863983258968014494962731336152140693355960778490802175326382767207184957975002897410838526118998478870496321955060406406951470762690477013670517942707711727315230860248800250858575365892021910580026226080283107466636900875141435461053276365979073661599140925591744279000802457856403934005072390575240738580288067313154157805109399642292106770369276548710588182834685531174577103961176718319148884623078152248184728243157446229874508399257026498052650919218308328834748479926225105447401249795568675936332229702059318979685703860896141373356834209509448555349318207560633691399017250793943988398209914432469650728273432527959099127095019424076143375295188254241738282747036056479480371779145911507372509553628298889955525392190383152073910902859144315314331502291985101082764485646768128011976340072421493622965555210464537597731739201128406530330189093379786892605692612196906533661464820127326593395061899128625727579930702418447466841305540388214837529199672753852465199547349851132170442782253146604686549878907882713092096749444700666430755240100142443737468158939483662250572590360981395239249622913868720482301933716730802031901674248163276436912792141147651585590609018646719651132973924249467596392043635109473845139683707766745861915135191105989727433240802419774977554380184118785586338264805803863266907022681626907537144729872947377037977849637081500877008041562450153697733170630672063567003852484345274866225504320637195995908283144134587601974934208935062558604978762991741843730602338976933301390049794238454553535214972056234848331706014399505277309342270251503751661339888596575425567435881716366742659851510472407544937987487289009689841784984034818823139541609623882452185988680294317253173463092050383954255499312694586809521645271283559025847596506713972170336574546156103897952272541059464223547503343643650252786893784456230362904997091261730622092078518465778983532199227669576247673895401352180570609452415968382222069169816101357556170095214290999674624112838520560283130826732504223509813752127526690546817414289118431913954137383801455813335050744751034891216069984263850135445836701968387426189741113786842374170987013896510964298111525972320380514377144104590329462248596591794426148963944457331624001003816138406910668265487115251057371632067251276127146142670348967522729893657891453896244561395726561934426753536602320681130213879944283452365487437880584491350463216442269334212413376317344902279193987957197884076564943548786855824307238015320496074086830792457545348612173014719562270395932832657524159352596177625455234043945780211241194794418863890469646805934576255721466961516107576312214254780614019310075920936965249304636031360584345268766069843769387914918090539661484939397610214138338792810312746815421732100600379711809645573622662658338276515085102842861668439419593668103691909164064545567892746071758763750036833989621307402908317004753049008881695377165729012179069282606935989382815933363011265905226869315145758579334284178655048470812108536671503040981353793022024726034472883383192925212095302288909089998680505529812850306757654817319437956566562318704077701784017505093669793538436816611515692444318827097435067737557294641415467876675385543934564776877436077284902171169476827689251453655136810087910274941947465688565426264952174204530367565310547505952910052373534456184818109756554600427093469765180851150125534889399802052887832492005430548120917755714488076833400769315590548008327701168370892014749731919165110423982038759969815656511569765390869869603198660184538391656760114483191824643412734607480309767610325394722557762593802019501599078642901467428486494310326298919865533890557523214136994409822186664864145734201405030354520666207212261830850678066448929126244526844525116177389108100271670733660780907149771831214193851212670754665985579297048932745330949436030994406883186119778127011856074260943237350383245200076850852222227743075839608435486331593683152358837664290723359086049387065417125817706738272663044024490596762293673173308731490481118241358943777077574247870036431857540162660094277028334463429083290398725151112554394540938073280845401119497926168149840247923189145274024078699306710844434307507482075336472115443298445560999931699792853373643124157154451578030711512315606465462603904352854005314190061972603651192074095866264401231422872647028856170076715810874888291596927917861883446042970523704798816274857904695517209296389013917923267245925315571558302987014355604237753394216546242489502475571427817400996041304140010903879534316532635343720478935600120517446041284794678823803261894908391150629786590117767468388453537031403042502726564769443508379244176044577922389687202382798731309259467124032460591816228400000624944731990265961553193098334967063828379091226861693249849470326774191082006468269529915620914360803644482004725734764348994419228512838404335101607727433180450680189667420104003117731616584200532504811768685357279817555304459394199004962663087401389262349790402591149857584794176144643445953960079071013066684263208630758695990004559860670907294275479275682177480326904229219375167299111200439706394872734902464840480375410211410450284960040176917094231344889137008280297920243859333657297241790247404683334724277118357788946557602681892163046840107702598398102276992105415610911649300692451303198492294174133624791987241503403627009131881863402379689280154949945910669744030554204779996721526773435414992794788746167704015256824085692965648295060564752827048255471264406484617793053303599897416545721484964038588321055369954831585464779285909776526406830776685387953188216193376275404981472931941177326517033444681767712372383612733927254427467103003200042233336112705708438523797730817090727990179333022097872692669272079922931606069495852867588139971213480239615301017229360872822302771740565005848057316991985772823879872771214332759895929428191920489385575962702489230968504204849992484850263364549832459095000610483128366892415998843017415907267251808161912349325179124191329805118992125543303569489184148923234624883380972793126317852191688075877276917056768311066816735345554315646810456153949255864398922063441302011584098017435521745273042206419473557144575679522642094053759699343297300356485348463413330385259149911418164530738717655596542368321884003157169015459273029285898743912531761540848467972759450358862551758466120794787521516645891996737864733312320335119634939238820170484858772163945705581184403685800800362698076339865623331937159058450591950744260749141840166859410030523207323664704631485530624063109500136579240231638455012557968748882712644963317684793706771141976335086102225827342652370733038398946595727036393883068691659491456286118532900154476311200791099305006013136243505849749245498980089262437948183268210076877046030265364400052181027367275563268741373349356009410258846228086473301048057789246356166628103096123678695929698913982775319140072401517152117733669374595124493542048648191691402300150840950531664667185861803111333958790568234029396715956739769562257464263214241056871966315973545264412412507913124244854495616589639960050910403546750571902314838027792763696381125049927956262740014709295830268326802656319376781372878287668501736958439203261375686586435675441928241753257714913340788118120558927098310102517079317759467651016394279381153029730556016204536725822216294602118390933721845966914548175096211190261776677687117840119494500308949235216936427854487526417445792069497939218982712205022575441928552139240282111001720837966741333387567818158185295987696956224364980810578171242465609592373263915558346953016748564310144072153136819373448735703841620624144973030591342443833280145893680789783434054857938931973719749603526028343184770014766183317796613623880031873351229479087606768438092276299473293480981819515413301736802050753226904911683591870181415289970334707510978987335060372389414466515876408599483131349450975652524327682350888550523767406833753276487040214834930293149413287176341012495904597167315496145307100791444347975611830573533852232820329604314630558970578354329407488860031196537120786762171709954918982620155194077311069591816540052860711946533610201032359527032990368997050534842606436562195056506156995503160431438342544871579112955403084028602084746963712464767425264020195541904045246021178945466236036368502938338073453476343774345999409833824675425889963219626336927901978156443886336210436087504542567660284871928249341279815680151023233092604267179870651096899373784929878831238075647758762072045552130915992524336896607017205464980121226317712107633695163611405152936492616240995810377238909929815598259458698851827058253494657326307442782164957202284951978998771069957887958419426993635551833264077945810296796912864824164307016820753985760581421792133487605438845933588480677245455121163487356921876569605070543971265314745270951160825000007908711556510775827976693474021001440845066278794708471852639100697479300945684660835411007668752714711344595577409188426926433586174696779878193124903868713755296439933360124595067721374265286102370524853526452365871930049920987178474063635256049931722066891576660619169406551828353683272659615403773494880990406323957862682401113015396809945533697404627535309439542042177314720535679962085301310208107054639163873009201188640794437703038211884330432809500597247259786284403980525794400490612475295796436105768517912299369508570178260747255573474964588584542224620197189148188755160556391602621657755001910787430880179098887399052587996248490031294044629053374227183805602935372085709667174746351431108232843474621698448960084382420513616140755157790454197349351865838192602276443131243554056642296559323679224112358041754911833578930518314273387592119176703029383632156884007336555418479592214199098661615037934278313596175674712828985736571101735858589829272306408507937293945393485919698158826987086941444702189804676598047290405682900792001223526856296673412297530709616303495983834171672981194649127489455406272711674479274157512319511939290817720847382644028785521119204108964789425578971490137316198811759590736911598872662408513965030846663073544256423537587161525699150462939267913089738066478915127742478267922925809341945707159787447778785066481765391989647842883128148987313015695264984158633949855887069062814424911482120943649192263019052182063058314300657616661407078797213556023723748843030277234138231732730579922095388266517596835331430434085402005736432602799751540501488606081262951149738046137674650032203104664138590224088394059410960752191845069601879430310842343054518171752770575090454132515267050494919783266772048788779645930844165976957581146459126763122652015661081891135718517242799889531484134915342403426350700719606848151413581250381599425165681304864022204445220816704385557902697973854701521096766638294051209993215290914391893969260356716905175368123834148153112711128975785139259405774117315705241823494210420718985887797919858439226661439878424806418696003181408425383502475953181068197774095739281968741426964994884087208527428858057749691507496725988200516900948112791444810289038725725982118441010295236821956680290724339780120938005147448397813786046906784072076525082622141597258261562193277811022417439666431860139216516006965139340037971197731179270268128828530122962326861848582814385454364400578776287662581417044148893204159572192928216960035392561962141685018720261699557804200834159225080377407477417116731080194151473579315245479380490097622769136572601139672533215407320437020381657639239289656983754771100109183490185835447653249055056148574664818051181791155934995082002228518203875652788158171073513245426598422274181938004008096182116868721832950358264962823136495483143554692839953200469738777091971448576310630930884085313223317792522460748425001048986941695099820285973026364173741513954791378269720428927911793963486192777688965083742554414030148151395951675494049751062656734368274928650477643185429744495279381333216868200497458840328147921833668869487024861748595440159433856057948132858879154036565887879445926702769019214333887732235441980024084195762981414970193560423528466767288789334159321565209930803931058511326526725014482715976291537948876599229508443266562030800508391434033756530510820360924185727189233326510857517751759896422575732464341067642313132099154807910418840393525160668594924896523180636602716610051983783346971469804423984703361883145053023894221928247860105899298886368515394127799627409323263174748033515904962607413246833304144116218588698580821283918248448921825966685869896641462337419780639448378433136104767167761882014488584342344375380068397744010535561979318828068955220388601202843953108990169670656480528401955556457256114336005765897387234352424478944988419795675055076460237389260663784462456498294133885333466248175694634245316235980565530093544137124578430762148114191932822327747537118620122157059348837017748172799314416978594489742299564587348379259138507802938533500417686406092717893235521725168746416011236470224951345489024328350835888285889790325413376817972593520584519085059964779211521559080022476092624054515791059574532518224388161865511311379003482990774960010349093572808984527067756433476028427005864151531694823733191854568021052777845373347815982425783823900116310936364287809789712059551067349981714468798635464835544798679019594150388315084654748256001417218296081442051166283840065577303739428494882650930180300733432951787583090147682874640910247857895380710403989136625907250630040044434668081990238966723146455461487469763932004155067666923334586324498930700537889132945113956242423729183620438173580801844446920379824971904503575867966250622496795854609504524177827652536691805933610492351760350725937386441908315736727619631943114351189786914721693407917237919737722888368205492312588976283970150739227528698453087918327222131436528223973486817857060619710308237999640726415311223264854153490891034259770015249384928724185749726220788755027981203175997505099950502238366768913505611836963446326556030206167232643281251155613014905349504809298786510298842689132404934074907045485616279086875148074068114318669336770584524411279216974063415160320484811195687786739191662581385847140569715564178754885747469700663140904100259119712376191340267946437031322051624413113201918185082283627324172940077472330629404486193624364777054605914007836011530965260413942727957369767733774023019523720888889497781918787878403796338555276964325566683801396709809822208360945630132701546251298644719909593385280478534291992991940519180972632557156288716684024352733980305832659165957493315076923713993247289549729141093892500166617706562530682382947297751806666915848001826403775071825697773480197707392377838007385600980891392695281006776588807798041237036163872649343438182718554734959761354185631988389880110494080563127890491135522628047134363549793667412817427082724739573013812501142921694762221379861391151001941040629235471450492868718136160422729704313422840604585470239678014097424377500157524826618323640181606331181900077942784090938992298824728603957288737925329727281860982446591034909926286053644866947667275463207174940991767800666195431314817141630958624974772018882096386899669295531014662126845608932997797521768798156575209729247967340592835296649275120031046553391300046595070976280802692903740835101103166560277262185597870515894408558559622893167701150291143896843491142386642383767765838961889375810066623964407848270125162603535270255281355928285513733030145794979539058733555746481318364098159777931519793550443789099961694631285750121148238014423676240270036015381572534572677403136156840561029672799019394789084180911537248859542065905797978202796141426872025800916419238737032744385094156170817543828001350679219757095096614482166628281938113963657755346366602464055902153726795216615012297371592242393787011052386324836566529207619289796155118372103500775818383784234435315020325469152028714304815611481925037111391300941638591198612486572422074814076459102276021867549126499117762252941345253863970612432030829656023272060557463085681708081553730583618187195476672422915956083996114886136288775444058757432925868430282982477097168379005967756929055335793901981276105996875578596611398571626972250104853014747861867423036593352680098222453420331407103988739772251036900221435355241069359614648459788103292103694252411330703590961815647613533613880795766157815096146733615991605142774960757677220192470802824922774515429722912270762238891584848829950603544491006590878640924114518390458278975633554760905131146347535896749743223246302055717598567615273347835057289762444729718898781742940701555910696552115384513283908489375680952289719411661020398796066710117887882393190260091267416575177947701099935033147616456685059704225758843439002192661387011668239064916956794394319249745574173092034718048461796930528469005999425397142569119741588039155418072561715084807609136765807912652652029003219463166672872053011954444157068637910983751913708405444401192823682367686011789792524228380925934648623161864854507035039435741674847200500866727630787485173325533349884317848685955228414406708518399118014548082244783715941668995322698046962201986695601208554876548112934615879093796867173840630466354962858697468749386550008635173491656469380139924848132851737232350303968994566562583110297616701344864701744345236871921309852322784222535478366624591812068796098406616277620895664815594441886948135542129673923923094359039803182640891525085894432817555017818540502368145960761715180242411202748572207428772712844049420952979814022464014680744895115621672356057460488476321082454788386512649006654536649778743366883256132724877404765293121499827279451080564943350246664433410923826595403630673327795903424179092485377907473575350049377765109187607580551453709051664891546847182757711315586642698940733919874704546546731213116390025738678069782870765776928462783101348808981303424049839692126075156834478836989371534673099918232569458322685794939395555501237523856264227319994547262859586830356757133099385360480087789343352840395097249860741194001597453007894244255888195511590519816949812720632422102418801677289006273914189807735612318431773898620504945783353515091844268493481433901937517130608092136654895981704962077205149807266573957879394049278492115196171278267517078539844433293319646208146850910779668767073480084900970362776261918112718054119422569876779400915638436528021299869487481696003374840243871193186653269677909241013009497533860748733003896375924514778681296731614320092548723919731804027160172341200700855640948911111883440621720405484376790228403654429791983936814040673649556497312538684716721991241554775145771134951073010955570585601802722963030299349211586625250543132898863281933899628863842294281266395559314852459847063678652549396703373743471237474569135036905388076306346952923348660087783477625807129553273261324321900336059346193089906779906736139076360208207551801957409966117079973609339128467584398960120671991248840197666787394421279214393613178533594690541852334958032019785079809785953695121177209562939657799976407004352533506310035358496466679606322825162289213129103935036129326056741073145888793334154418044438831897505525559142190275505177231397170551705938804017366037378492225386811948902789905138875088497273239291168260891715251224801591589251133643466594665402281131433954364466986760288859671543339794947731749330348640891378683971579606425795257460780645598160028828139846325845083245887524478982631447574189626512157333649400386500581073963779477919965518829922587496876606298396132255242336250401959295522683668111606281953530065668874133794268775041486610058851143787873740025797979065604925833330684274798692267079398226174036981327264525090872563213326885258419316807090246280467037476826882081500760690470384181324056260429381994761084255986717252436695250803208831965332424706991590140285893520613396785454791259483657886076316768288735091550286735682237637299900459941687950719471201935655931441748749711077970028575550658097620780495184988295405910087507693266328992153829410718082705050555614550444641842021330641604107590317237975090616780480450866055766986241957638539803371731444803583272525606004171848302861071696832530455739579121251227765748601571542749394955772059652419940076250553406055478753254044790110877772360665548714237745310352985490942321448089947195936382500952356213039905005318441495517189921477471207726576124702022863151203685440686245557272646266397333820370377028662690711893154929844718781852143290021671500944831773405813480854950496214643813290531450438909026688671177942617809847195966428660638191511478420059325750759292462361769432521060565914739944002547549078415548849035381290935093878402727620753746048824290804012740689855645309616448001832386794884094308559395398523291461323691695161109833960680136900040131675937253237794636050274192780863856279225621238469380635632221531089145088788364865548503361029301467137031765907033343308086928607460425567338529660723877953183447005661410605543874032873421453851501998435897026460799995955888917690726171854741873340035664138288419155650057284833265805431013477087081163599041095678911432978207335241495988037115839669980210230629833612819659385595182109966736659978491074522643623040674373925697131188103001697436625769228396174363277615202862436242644700136439456338137564121451390399196056137369376826536238522423487107516313612622776126967894284648467371620182239325545496758033245849201797098127027692570954120507327939799295734821391600703173947378100955401627616100729849376226984660196144860212128907787764865562545109237365753060999692544882587069480628414120001289941884826284137403057082431901789463003577783868842946481292089582423128756949426696947356738080322220136150105841262649574789428298357475528590186111794521793551753396104318052347602626531475562674455833402556795297597586827112011038281298313573264358539219699065015294377173807499036612571413785503199284783720693616771829830201156312536749349487945349648838714925840828796265957489761673872747277198780244846529019649081598413292385558244927773537932155684327091297660728342511794814380447616425821689621653621454881874735706449554478097765442313561559755732301954930078342741507629162508052750716880755040494837359088321495674729614064687565130566918309584759574663648185349436436605765062424421299458241290637756410486063287953703996326932842034422088920804954218008677704744085946018211655563015147122346289083218938552782787706233307498769227780974956748220326698105681097458171369725393011352069724642655202372860840260868997030698665710381996880236262357310796323020235034534865745841709489111790200080040341735244242121829626779023533072125861224972839615441821293299783276784313776870761335168229542652890329620859349473640578030840205418124240810227831847101887791381158044524734594231454507372875227291965315546556567698028744384267705210822018660643330410672041273200467369483309565214927714433313244119780430529310367621477135121865732757713309311453397482894004471407359873123957720740065345192296561378481342013919437084375330862745343749654380929710893178441733504027426235504931535269886036275041878712060367910870990619124651850444038407827017402878779249681424776536046037913288703364825626160954765947905905744010330326244795269227435543358269535064404762478637299184081497919281214100428608023736971142842428376009892201061916626689618030335417119937158675353205710402400591171228956688697558087055093298465871467086358301966949760155087938673837720465986110839214462267259282003169501317887670192240883670774461173083059905853424297808240811190195207929806397862525893093707214298462252594396940410695203287542992378057441009447881698114585143197415369958486299925781999848945400897992896852721846674507797252302588485937148786274526385323929441531711048082333747874360656902088527450171718227511093147951047549706218158009586884390433633487598781803916762466176088801863594920441583673774700596925655680079646175080120707864235410488422437503972147597202035190885703453493714328656611841280518456933371696168240668574649232146499695259121190517188246702768197839851988060008688685240593349637633997557486266990386765723968106335405051167877524076964818155283444946736578600840064965656451137568108437762400090265451721902282805823839589351537048627626795227015929769564148637062198832423867719564775938547944584350730264094578145734954776213003690792868280935430571778292296318154958684219230474728838014760595684884966995182522168653030315932315710986378279676835763059685453586608127921066443691485866011002366214261414539952059992393611329174121605227515492910819349949256666352999439580537464005834049425203464400493258281676383995469642821001115736034149104537492187839006387625315237036599246695660116734150703067554749740790331539110476863147257999918781196742435543694892546845766829654997170965231446806987866940116369888174550490047002345028704615986576611184468854783231340220102986217904595423414376157065650876259666903085787187312249089518563919766678438051095060284120141257916225791979836742818326463368203251407606656945125035629736385265202833532244021179542080578172282957060514670286591288189880614780466506351424552839099476758690130465942704445136824346964265418924389437508674377841275908340087490665417950888431642055709640514516611922765159069996475073762378304519944524476897469318613214889961572148100078720763043353536770140712401729644668726830385867682273678633414189738383191913096077879005600262951172283225336869991705921915635416460012280684574937430230937750298158138692979066826630929801012533643905764521462986915287271364663844026381169933633650249971502133518316801839034004120349471822589544032827924654848004828094704447922656343083226381827394358874470557553938367337055363530233991824426733673042046184852359056095854931574944122814710347728993514900295020725962522813492891080544712339351984040176077270166085116457189906533926982659740479153445273510913904712352997262674378427978016628025120177245531576889687031118425496782453589712602184535598456664912465298656008591425328349830403180055512999141455192712834219374363106310517341037367785327898335357204972603777204815968072599570795831195611965784875371827946669975251794455582441690631905437110027379512346384431171603874092953265886409348547992592517639020425355585635122881358068385171273480129080545362635506392658844674248944759322055099518830771737230119098412297371966948098445397653243625863869361252626656999030646477502189327812431133505762146172365264858725187085307551119068231955891062420571224830850417819281075629739570262860931722062914505415130877481180878221936019036965842875992950005576831172832834739144803356901247329466506782688485615461300906711166338614562800733130625067639287241429647548369751587327335129034026525048677929855249093881464592044892256014594268601222839567770148665773649081939735275008003958797800279778523682902092608645115475570654271422107196871543486107262201153145395682974715909559779718903098669276762869390498606996500865255313232881910105867971844708744808811076897768781622048794059615382893736099394238870378757737619761256111158627391154425370939534146072461900255499736297079131831036658469063791203461608125459951881165807859629977442691760108201665670813029312660169609316870144733182914271403675298331976158483236341000341875461979618628498897513074373471288302043403950599037872687017991178700430805519472706809248019013808672300504002724246439602570257113347037553445349719518150748883204876971000805729807594571740473823759008880589901386815140940778862444717127331818518971276892046615335381643238151548652090914809451981552675112999940257244262056712515437998553128632719060748492089568844802970623543722642075487208067723299136716407362817535590311530070715667490802470854039339414645240929782082294340185743151540048205382309186033623519443719174745174394483056424451052484187527529644535580341780136475636484122296372595583389514909048387701348527466404840056512123856606938589459763444362087546890644354726111309076100109876655869479563978595420988252020304294522407837872986693281101087881894678869554467517091324997002351694583994015273974927168253732351238794998812967421234625770973354460265354523634345596413268273372103460995948715111401209122112679590476533581844956049199705889810559076875446859636724056671232861813990993844970676061187943570277943807917891423091817075703716909152628141508913683702157413795972936965463574132457330826904810436471240184406332698102863905354599416948006551820458884491496621766924382248351690647098109108499314685354732811441594390859187743140578366393336125682134241810975782048682566634537190713825390715021619165282749910358898879319483166446025229069923416997484353737215880747845035459248811625367292833663430305036357882440177853503570486026975405410768256129239081763266323086013604782522981354286837543031649334971897242003167267966227615669333937474007233187896706558405818634577418676541720935094465892838606315951900564564991530781766560562736864311544587002784235568564644432863388781194573911742109047282164164033433504915709533588563085498014006911768364723533680985063486168674568635549048730059530518311090848208880912855461772350345082210625732624873746600638359799636208688344774451017662732928160166554814727184570713878045590688873109338186719587548992706352676718834939601396797667114829191263999159647745165046459688755312970926449348304396255163031265688236110106188634254819022212803929961694995608705604450222940065555114736271489418144220920159343592562876276870043760161155222620186768277180912153097389853021981148173011896558126051164369391691821068992853446395446180772378153386735105135874652885934441478286987308954318795527227944181451190258890181805434435006425160884983327111722042821708676478485109553859583071070198469952075412561263394294665521273605757206401332197654882189399169807059760083443136166517811221182877246801073433953252944467171244568690450449696403432317508732862529304107455944654902287120282114064497581295496445093042096552438630823757028137481349399416701592542649739870487778406876551226712882011043165055847261513235647752111186338937110068215677634384458465464528730578781884953845599338789437475455300274862690419622535732435715684014178955846843966768882260542742866748326748376283304372606290628676450116731912764561295764702020502457206025899348916125734687103277852985579470075760801155398408055287227827674431148371985940994515639672406858955681557677166503341303264352296429128979952732154894311370740155918453623300035065123464518487662517414276642433223520728734571178469024887210298373798711933410194872122509327897643248702851441364205470092600929459601841101888379805569709974244332384716362235589457138119011419330270283663437200334023393308610095380082886362194566025193287482626639742555457888113768721403019043122707347565905591235170961381358750968935451341474751524734872916708281100974711829337274695278114624514555354592239933594865351779311672781407307487988809718126394448238533523633411043797455397218322060573818186503342503642567580613276298398350343605255781393482378903557849459831417373432935415712923305950797619105088606442982680013854072464567004179192113744242687601161905544357734698746461259329903987680219583237536946777237445326394839128201353771896194073640940998614737041097781675066235787802147989370511972521091707378680960170695957151848764684156677942061640420457919174899396798087829177686670114080045749483839172546288297848432787781266455760967045176213778159938803855879388761050097620183673829929724627858150549098627394683154233686209706415847397345430048026208647196126078429749594293774622654701608641459164835389545297216795147347523465970363211859600217087590730326806916716930174796169901391153296079262755704158452067443780279884064247310897345748756663710748833957516153258782886893186688446203270499564478523092759324230369553202843809580987287056214114652266193627733463626002051228786804245983243647340615458472070270129599570015387724339377342406731576086814403548296453168765683571450290590893511913182422152685881536986519694986547941246271977594023009777013434685967590897506645195180150874455596536207841086506910283184318457223438289242213934430746347365754976519683940860810106743461014016266930868979399351096087882566735022465500728520566842275639724744827223522852589571579371616136746408756603713216821028395163179588929070014005369566541195882804510699527767532400002960225886300465949488836306444852988399862657925481510772115086345607822596713095099308404973174313349046602398690391498981668645997899433047191364316756642815016917114323698967589018034947755819006978203304103840533709035012723342514883294259864415824455463541710735282733288168896546953923336614557791935476333500435834251627263228054642125807268875959885563147411162097241245462651913065508527096356574860353302668563166538905939437152457398843967870273500842736746342965138464280409988511960229975617532764599242942180271261792163140723748053593214299069769600805649625677613953366526246308448387143125236048382629890995032526716000617590955619380175692917696116783396050463481192845697266872986315369839838109426200800392301286401900559337713861380220233454558121022576808265798305725923641949895704722319327885053698151251871159534074232628527728976873948661209585743620692090108456409547236243242005683177468586983740269077618715201943175571301417796087341827934504134550611061724888709370281764973336245800693252251153320052296771154613674935279963522949962272391636493400801655673869171104032504305212837501501757574100551903979841932433426078989748217972775438574980230728872151588674239729349873181835691376896976338392580108847269737985446605333499494297725410163520647567265873516123689641346810734549236181592636148608670313707425414522214551163093392351673687696103060518376264044918911037212626152995779031964998496765074176929249030596562669936471910210126881743169871760410786611121448565937044728436545582314113261375909357698454951093626160489202659274875728911327031389086459376829969609311835297764025357328247496681564211184825344825841037161092217961000539600375373580593234597541203781994252281714458440914713527618437707544729533484860176198358157321713000069292216095097900222930906886912804817681445863507907446601555039950900121492003932783113159900102561647722718284342450683663296508331493828949973706255213338506626304120922422572025511133414464427881204132132553857418122026769562262693837372033618618638221943681095478480164925498155881512133134043801186986567135343992325057506901943690299884672204686302029522787770277517024956169654595965251742254517121296584492529442025259807640608022048862387578119187335721693664411343813719752169189262865681206727491465168311528482486431088696970958011160838302953638088570777241490682876275642014525781445385290078609084657423509090415098719340046652884706243029037011557414130453296587957242794923555771390846237564463194609092272607459777233447960359386960258520509751887955969425818597569909242959017438618390924217848778441058595309647561078658919968049918657609959075001164303540708066388206670543652078907591280156083641810934998029462314670498184633699078312099944860460151447466911322575911663756367026536860415455921910494012223373435139185539985548520588770576490388305208970169275462328801834930785854712678044011537734287468069504974065087569996478580565456081997690583405666144482946343805134311360041176434471106333918487417948807319288132869468346740102163819448904742482827147338440985065409808703559287996690899145015127441481865796908920864734298085444546452932638964019428813588799002348124065547004608036187322548808876490424276207197349154570992022492062500545888517969553209444269650259342265000068639887866857845859043715336843532934148002043694319746054254563884703976634336357905919351339024493037053132795137650272801283106621356318350543004251487270764717137494913933405048680820123024920110612645156154447951315786400678483663610684664651016988224966885059472375947145560856204123457582325715127146195532028218105251782635369956193191438673494118334011417696912841900957239084635306044352677398862532592280769003594975333716879841316057039484049511517373781981198718043825583474904517040714223895215070621700805269157540823400333362347660227592172764402702062152552543938980588201306840080516106947182822573342216676608928036680353637344737557541588433934315613910632781055362823813189438788502208660290799251349299121113434636580018864743239652249350210799623957207799183065064913336442656738384796933604931567685500959638069049527688172787632649670546843663396775627785362054561001315369681392912099715577789855379523777983028550623210249016981794090711317782563343157471970531023551036761643290865667552647333898597233409718138536270714003224982163863381870637711873630717861776622593764949549345165989785653893079305749240789367334435354240709887305560605414242388960282064967400972496750177606265092127810660705444093537957385784723797241996307952550950966533424777015996282077747641357491405758168292170594392114807485858405994719436486666786532164908745108378314754263804321897019088427597598919534159120340748757848533861823577330732255894953865982758565110845176873645921096123002864752184595057754233711355279823248987288418000831376472603932140788008186465831118340414412642284508280388647435310314304980969734456002072582164470708545421281523701963756381656447014894833694034705675898021363195054711898461585985816727155720834009900628374072054209009222641231578544111091368542703950602114192060137142180380304133886190746836251405189189425184926433955164957743670046085153718909395337253845042623105431825950851162205649811956665425155664527033629550488851582023668245373453518394763029712524480607207346179015556261275735504790225177733629958438874696205443370696092945987649111356817574448423679838253757254967459761453238076697264591878876720796426788402172327887138275968798705563625204726691372684445595707794739618294450433226143094309266626160315857193777944069856831332305908009360237807154929780449360773346798878198347094771068625012802477718969808936769472994656250659780413221739371208084927116078653055585816775506573377830450408918975207136407283976917462311967794269125110556632029064648272970911164569745273830382501742080483706504868147514119143281549468778661490367045693420183909323528858120505711484025459157892047170108847443583589817711791184270921679757831758373181576516510254469242991127614284686992303696182144678072748719487949799444524886776599566977354334290499576380332129219938961990407774009740985116374792034425640845780581444950379426041508502053975647372132523156824246292076811343112938681788649750099593583038913840304388784000574415229556513034603336825568910765917403087791392138790876958024980699573670044796912823328930339829394860119550737163908650329202835337092964436071253924111036450337559547667724362829604839126599450783377591222385109812503570529049310953045255628550997071790823459977453286663512606848411414811608449424517256620302480495260526891587687542958142543279151998398268244646753040974893169872106001119963821989201053135699437817054092153438955068628344972298913745956465719813681916455492209855174461559237139322011452742596385551761878884078800450321447591004545320641936127954112890409673905633968648162257797647977241533841633470460604299881089061673223916410016882919705688280064210892828594647035453317220062255412820610218341300373096338630242329287647035943266968886994691600405593709890606106571550024972231654543573896871054173105767306733262907109007783645665605960266145927700917403875724964145923881226886976214361680711662053585882282058138901697973190775283826221049782312297504213465493345553667897345018790447509250112307343155910282410946975290870551280593591373124278039874839490842564691382992237312581631144667422958442137380528362415888809705063540470906259230931090441346295013884675758884154398814267835594566042448371355516335301230836187314281635686527234753899992749770521425922318581868186226197276814251503865345495253002582532481470580760996531353111221795952529259477579210185909535709503286213415569521339700764002769082443744342394806340563895109182538769689237346160575268152993607711594265319784916653260197052578404695976046723166737885599141898042753857374761801504085320697029513602883142452765921176368707691385293966600698386886393835080370970167892663010191679194622733698298898285377017447514756115878757907004677813047476962651652889642753514413232595633883079644438031806206108919401888794110730314824107469268469143024556745011063027377057611903041633832331020728716023675339425941786585936710759196061989742900959649603877766233045517056241195550369579719651567446859623210145957896182877493927347894458489872813915897291023535934643018602253512360102021130217864940047019650636346217445031220208905820633953034762302468306775180671492888109545344665627200030754528234430738556422951621017872653859294563077452335897721670584646746958748374448204714253009537721479008354164684296095069777480200455258846891196432394419136062709196816915108062657364564664944285149827539068632715346541444102591524838105503189487432023043132794259933957346557760832391103960344937046300022115398030976955942973591373363057249355721442022035783509742567329454622628475414874282609131197878971819654148535583816213165045771269206622198483200045915823719613785301390067593052253704014453292920442208411217609305266137987333865533586759557302639014244372042302620646079264118278356302354049048604124217484443011287764839487516505279578681011114274563426097615256290029240313248891076389543163407520224224236281040655604025980741024802018948431470339596271011460516742911440685987452850830343162028010453516282437142583191356029360645559294343656610651082333471906845514656690055712569601796000178690669469606043277114227222581571163730981776933644295658168220176301038554966170532842992488871230295215359984980611856013090286127018698831948185970782917487189837437026518864112458629680431565962837278144939579443026701317542108775970323898349662293047241994064123751430717915092971021750735055133238324509629747756532171624474175061297508356874139741517776506392905382730573118208030564324018607292733418071209665671867799454556347334417408791242445383128039741862886900417300762845865125422170012950562775523235102875172584298169915230576446284962893228488936951638459879545675530105866164397671481183638568153029863577872573737717140031605578146784242951191424441216354246453427717076690365042018100821359853688768924253707121937985564398107650484839363501970255702049108837008661641318572127151235797235172086228828900411093835247257185539969968765904189350265901150265829722915081803818096975942892693662723921306797824806022838252620471599154622793686418445820545046850207849084423917933329326710081277685727200329484181616963459035170471292266011424638174206067086269427225891708066112143023992633103469453438985478962081257111587660639908358174802987101875730206433916614486889240861647534554115846106259816661151474581117463286541678053548626774314463459428795095625728896795920549001496171320502758653577651279359533264754455431693469629040518368036784595611228983140688390254228251030498683656788384237431645961327660629803298480725264974223006353705505141109498929246970539987517625352382340137017163098247246914080193997965502162083119252775004278373486865358549753419705537501277578205107271376850267865418727324806704128238220851865503000461139595722919307284289591978510282489475638485993377484630225713177267690604599608338006955056384306971482379455850411298937787202805828162077714078358665249246268668738816334719703227520767432153973148511835913727173300809250840843406737931138807174654820544945530518404616468731813810538124634180906596010411941313563389844612900504338664464972006544832788679464557651151715753908413727417499429156699143615655987971330068447459894456752088724403213301930158366403433160804042516735739362244980529290344109874018323500404187795966247370293976274680382821217826288729165363793097198014742031125923284892010285630402682776048305289021768419932507775867584057062368429667844634984729538706750636109347863750577019565680491473132396083159181904403766525046335250676180508158740281452300735617714010773030769565120564078412184679362393913523201170214872919755146568287462957742472272307927845636399601242444273280062825850997814765935707265554502655856313746238594502799834132768267797780893102071694688731209186366507995077477149980365824909606741838801264427460418831712095296138490295656430307555225537881430938467931103288714716470909750113376320318499154256120043100891214112086124623306498336285581248939158016574368205630636779441188273384474910863137302358248688478908567613706640730497636329692906479552322371602397683161469217733020646257975934959071240216083447289461493290356849913198692353874666843681373736848770184687329303116394752311354490992390952138409671659731547959333825799192462221483951580556388767295459422223897598618206369120232034080915374694040362189602411057005475052107969665960377937975899646353880393628819462990819332518157057465758182044815247429892615397753834638069564129003381395053490244588322301301353956030166729990558280110806328502239883683404937221951139493686618690380608800948733427461092131520447137323919431589259426886422305781077219714025323380385858834226255282970660759692917435208553951413665203933831243166404624361855379893151668552596160864386393748134968024912517544604534965202466689310458913561019239415138612145848081199756475795096687255210351980283896852664423947433210511621621427916841141586221310466565603076331802323573832609596588193885375444873388500444047427956893417692111423758423184576750234945708229272538077272113230837775714624196680444880452018432765479311399259614909953972353719707243401993777243808326551258564036087576302982101827684398572685617758312443955217706470325321554090074149234935707911011960819383989347188531648312687731985945604045434673105333189292730989805763231142416480723119948215919827511443714319125164573443354819845690291475079580437299522725398008689777367214844807253867812196538277405967707703168202180664970174030708348271534066610845627727435203205560200245489559617297958549086727381331362895414936837565379211540995857983725488434609943033855034368691681025669737264942585049080018911017115146713918407726509511741708672960134844059549603157986202898100996326059463662624926178721111263629808905724206230257660605437340879178292494470908402693253414497511448876121923066559846549036521809851282661349425441509599157711760172279009049443457945229073194403079917442388114246570195292617731353010252063120575029876277205709548870217826559769990296366582347711927768730236322277686484170730036858393073133619401028155360580363717655730785082460837412552752882814474565412768564205434358510177374026382424190989656398280814751812359009339138226079358248547260769797790380773221084763785862971905130797657113265273728572434008974034179817844310058814868929324364299991094402210876406687321265403719463021621751381337100497766574585474413775988042225968531696560434491821961965237234861086891179155588146433875951814937378326830662907431269112282429593512453897973065347144161151421611294429864119556770718442575973320279255558296721888996433717270187194644299142490818668023323925148438317977153417970611836157013426331008189186968226178932461874942017104231345960146496842419860621168313053939959236110230594795382018364104578718708044419763416442280301521631175853630488683193852737054284822769980885344569882138874570889716980175928279635799165454775120297523663155233185673755267229812451511863814160809005337383256854766384193269590650675790794530734928991598212837796297994200177572902828116166404928665220035384277516713826373535192903693795030049649046385275192125082958383122966922186153457769646983612233724505299593328943820901774175176364093648641742166947182433833051156432923041790361601777863557461122559647037404453734797907390223990861590477960876276891446746162128628921624339890326873506354112123688003047116262427664124997487348059879024954616556743976783580279582656550949764993161157604079829400033652054583003016114069467591504304818400349283230388671356929120389198343853855459721787502029943981357443263738433433211077508211098632845849588254696889642542743877199537400770723910544528039046588869066404965198603004201880108622927290530723423170602511801777941142997237165080312993083530338823459749306003785792050034523933036913268132408062656102649119778401458280560276213816330213980837185920080065979859040342092353197927138780016322621279394922250601270835346646886680714885404970051537193020939583447345458189089210136473065896789910587664842634317116181996935536376032884508314807627788722654785351357615092211028693141713059741990858888980968122663225119428909220413678604398816301967509509018226741700228485186364215677323423938059457941947354624273976154764370614367611071853177250585195389379682739367986930477780149221115664231947860309235986422266552202076105713862241710181358170668686513185261618764237698992263866091157027671510753801291015062359092013985862744043380483368570403740678323237006709378983437462654258350191155708362202896617846404199964027787288914009761805196732866404954611641590086094412449481653366520557031386504490048732463653949345799466969587600690027422340584203395563650851355045112672878159083222731786759126541783866337163963301467712957851046949688972048135550294330645680130349062555029885515622977697295983717639775709451739723145430615233488341118475813405860921273028993818747186534310186573418972618812108113396947155491418517483721523510580966924660225925119759912407516554634962582075770388498352838589934500664825468175681782936125159291626582832021393679887052861546045808680832014412848580330998822633247065353626916496438596807983774364121908270683766004600623371606892002927041850461280925568938921802787830323514968512271737988289648895272823244768663558674807341745335198720932434976473870655294151526772804587140278890112361630912695149952731071264174807952911534444655304893524555152220237119543461692571076649781457024220551873470851957960515464585237776179022788030704749249099970120816117447748405890586082261392213945456452334765393195831104039942139835864589098776153979262400042069351513017571465668882857083102332579070441043905420947441235067317813848269866517330056472424044584466160151715711334285858057728126646357238822105834129425947720366962300649495918766357168632193613288622633253612757812379848377319419030189560989597856580870308456034155451253145055895614829221601657650869550905428507206415455742817138261210815115233037728851596434368848279105302976245373266749245247321261300500157256715523884774383838686951737954493456858222875156795558392714648634280759837863603304721588467583733830217144581367312659295457849273264067963007705358680714010466875969369909545639510686488790233308222611419449120256988823471041937329826047264214496298605974078386902347393805364011596371731960429539419487598028847171149361777347068846446355984022138867154491014894529981924426009426363197491666504904995076380090801611416892826181553338308860574786381082302601983322376934897999356483344767309368674363121589201015633862900697999342882194428873555322325410048001094293409820143018696217582460132268451813994598085027511364510245766094726482621546063615669173474102629270318096578106441533765170024326459680956143900662526566684540296033491795148868353006353654223932229184947991680042344440978049014918380381210605870909881399143815477918706328605728386011341073557700762917381169107875245687681826960863061490009879832127211095784560438332889928543473272012639704397832423898540421901746066589238697984030830575464194088787815282095274519167634509224255965072384911553223723435148970741865493075040040765403965060794398141812480516626320211084592410010165790602663080515192336563309611612182552790329943337743867698603756196093594302362470029606758080269891512402461418286630393924453059806661683778937227483069296757369184269763417863868996129601623868238438499285011745755119889039525619752336157065835547276704074981173748311773771087733069911039769796210171540880576387018647974683807831245779231062755768017892090926963608917226754558001438719053577624689023792235412250737345435520508223797175780817839584357099067512454066907597622462542333740499162410407594599546074755081134063304908305398165344247307499151304101654931909363948119651275123295852624797265870360912535773982445685216894640604291324575392038265512872976816835163643858500163593789414945160424716555310175392472398620327563721904813515319237718266087228971916481497616346071962882739250564480247697064283231316422978719995623463335620600894618783392006045669364373537392863497951700950613774102803122386030325548903175722638134550717013059380140606258034305495134609067080616826671924982249697267945087261345641959710810291207221253181037079866164342569430108064272636571692104444354620169411889316262941806908815255539427543900090295459343360202650279493804464724699010318771698523025158757291772595056432662911127669794185127127003530095559839603248641052460937337717295331088663355275812181792394316473833377541743845711129100871095953353822417667766922717177861952900918341568855037007987765228566581841648928588131357792634622974100155557605121841308324012198089622099693061080347409268531417184257289748568942481659526723341259991916536848081174338245536315350532376553669575907573978317089212638970015572788928230971060946113004132332267449071065804963434054204800040215483602978536765815424168091360079524709869344865678468081510869536521324968598881920335228591513307661782089361922357559609018747143010868994040177392576232836675642173675229193957851108846677689401758008602423026341866792959773383799319253346224538927591959106329752006843556177460408640378743846209135647501836831288456835840754795946684543630704365968067208127877060819791202908641105740534657443535426301181235674051657963849559102231388151492448834202699099867309518101701281743240841986392748282876072715759885795692180478657582668597143525810293587939447069630886047326243174745440012725126457290050871813641321645772472812977648374822852613897173892832860345302466295879928173005273151579750811867375135558406008488146141297312355319895630341456559148825226418050472644252929512224416137356264293953342268846365045598395435972377062085013514754661730447835900591265472766600332066229473604523409204640119965388787830481132073038797911527225415424612860360189020212271274627200033531049905645647004656529772078694887062825561473147407257799066229193212077860062663613378360298489387104582704828087943403214786490436992954547919058787295887484889050998636922455938169381222266617394826525693030398337775097182220559515271069589876237591291754076584289569535014681041570907772960442968805965719071834760376609177027327308260623188658302597318573786703209159450661745627333296452777167526354382251091322961213609223278288532515777968097277661320959492656423817153290651535168668930319887155189500703188687143666242071563875724228210250280089252665504852445542246181232509067845132467549210665199174314227978011943382955388760908168111161061243789595764001423824625815478545835506229997575527191973436065085980582954725185638915917750389317819947179087647526124052090713458648981879855736638935951594181682630708376344651832047017925914017487940850119749288100806192610144306712468298764680662067297079016412278188381490022879091420585014272750317748662418764704004908350250589096853854673889811364564346819744075010640079258752569688929098388748124938041590081068821769852074613196142679201839726231013746139383315531494006003394653467050183127275471452441500448147720274860254822077954227636026583555673086134440089907980116428303698234206962650650793658866685713576026545079076402528545564683798733371523486609287353331296597364319888945129404824371770919247782074851426737698483317355626861148412566567699615160444600188512563492781864326574928834904689151181654533015694297719897897515724820693295820397818487871708342167980532370111115524298905278105390672424918136688270894963590614968387950702828191205994223535202597536296955198870118681968087210137105235840082440815645345737451847632259152157957053989011139947744261672455543772479019560752235341949536967675576367267365490142856823312583924383430110570524287021957447026441086382599220186435345658555265897947158310669321806391467149574497532307319506585147235812983014908560643899417371084432165210347870464514009115530526385817964625653178811032967572966569141965347569767213605086343994995906136981393201509486649987609145308739747733085400142605262115124317972533238068407409908303925340344024300584097754299184816590266261717958560210154369897626555318532099776135864247831502194566829687661970808957660483938677938128975794348154590243998979260107996589001533827555357985087426457069050689167465801702642571130640959025631119176439445162274226655201990857773822599591883410057320100370402466173683437178905300892775709427854927901574106624583477770217702248521119361614476234828077710058339529521374460135163058905862286498713726734040887347208527681953843327935742683583287263841114254848681704678440271781752242656611349109700593007359464245865997779921422876092421492224751304392166643437761301122900872245286557722480841661361554453034511245585074095007878004415242768627742616060048541505176487710499542004350555129120875326542954373880158430232895963913073161035269736817757387140630888644057543006803239446350501718312477188880257962901854091772856491738766492157330390333042683615112860754021003604665215775461853621880833242111844334444181763275245287508335807406137936348990833285899100029455105145710849891063315619312058466342211290129834511059142137329123678525728198759478071129781021365560795423911941594606734231171816625428658771547369085647425846305296351746990266922674095712130907784808918284238678040767034468476698887124615003202219912126332511245603603834370386359323832348103088510714080534049632458764125163471427327628606190647723572481228794954116807279314748367274181656430079742503351772606300729151072100286927778454631158713670457572450845397131591340295735474301857116830599442625917663664006676059636793105401399433367988094511369044532993474764265231274147676392254350053731198198399754003505303736607172452925117506615506468780762938055469605399259212274437773994044130217600964935415760703417888358366725374264258176821553729079000603685101074431712170588243809172227761057607137259459811932772511575480101565323392917479295593820345653567809370053659554084482036314066632734833270506141277633307421682969920577746078138047947355712461397537214103979615237486495693303669849468898584584443095400622670845425562075461102022227915015285524813576788929128900370846982332279509673735626256988812847098094162266381305609765754647120150001875098794075728638878883118332883892528417519812212509653784986557671151950079821623823316096009111941813577804727813941624263907769674417391381344300779541710463128057015067259348267569845513930801385203422401338915784445683993380224560345263207942790630440747002323837831658326392649285749242930072795042365302175099407081877744731421924466992601019226612845266987298367358865105785198585444471849040920749701953363230903941326306375251038420363789398064819960159185836622744482356556137334660245217372531703805855275802479875930965756537273930595656595878033822322427161962380252216025787254314258791432221761742284598182205955359849652724748754440921075465151546594358980492803156082894054178351208489135303799298083858327292243786728849195294210032035947614346615201334819869895952256940424483249201411655545880674453733012528347915042111323665213437858707153229555127488794307655429748244317812871980104746973516606651905623934250076036984477471953823612820312570034460505509812051993982959090407733241371272151291830239354253491887300641622532225765394216259598931529947167956956219188879959958939558703437084384469819299587661548133395547902282036299468075859871545049651041692200262012828869560940795787542094481719046966864524659156782142774388817811885643936972720957057319860797001840247772890550905875578386470356579285792399771125190232919241185771769601107974702579411833632962621558042196756934954728692308919468104980122243336952968808847477067521044326590000728159131911008438864304812643299631502656908515479452603551658667726810379018204629882580646195512466408065586272634030183922242761667095440913447003309376440962997974147594414401152793311996306045895423801971778998890183479576581168448289578131847781069339925986836514003169591622050566803566438810954120250347826426294541721890373757731851230062232116654907130161475543137020289982862952971084467381178634987572912164583118429353151549601777393570806299849841260949496104305238949517339748377181831454596657891843358108135678964340380108860803154209937244078175981342087823771410741352152324431762353433780860336815966390943028550530407398536603220859326861086000792361427512592354361287881604724840703645037517101676175285679825585095721094209503201980808545433918113325077416899982614096714140180948302021858527157438239551731723821440058611468181071194882558625950993862794904362243592069366606633066297346481077197585909204252802552064254333899928660367481905724535558393975859469495955259443117853530032093368879949249565862120916410414493662193177176914410141416642971003992171634728933976681580354676039182897856413633785881296437629407015067397902598700570090115897593148040671590479979117152098777450728067409236604839591158932337020876240082909885830972420537656901287729194764559856827760931248672727351489941172703522677408675417450328403397391544505829564409622484669340695494940257502538227277307830196480987601219363626837871178921386081732621259331297388347865017858241736647514916307866368006883895784569183091880526613353036781482187672029327218163550619354304090374430771690722512287559824359051315536211611728453702932847981544163354898206433688808129778800232807116999022471287084767193133183456035585806617264115547073214137802893469839479043219982384008284020071431867759871040295203564668608910140727123055109626772511112291101473858429419406314653844122794968343427679902192715269609446426299747593400617096628351375220107447968053349513018451636463922436538150331657711618859938306740636949209289347235409841421714772630136111783844893934341036049898895816321810820215708667720172355311506184909929860722070811909632431821535876025186196493154935869164716618154050101199212744240182854637943053540865163768047798933168417167895561776431836858717275657800101481044764881788926001298672703791232608160175637813122523671666321804296833922160920243772995252060552394812115345369382851498243640614951332977921814763870637976427878059228701467404160536303552126894295506328976796551662803196336464106124859211912343511257600967765109344422418294203874631262475340855845802600894767049728952891180252398175507936119413706944907853168453628393890612249752116136366802345003008458346034987578317367364706679550986146767607521926352635871549345352955117076116892948374731290828316523277956142789452217357513484666194245376586006422253257363045553605224709793931543626621526853262229045719226350409019979916424912298784244143897258374354116197774835566371202883614905228677189483254508479801353589155511476320265396557822315606080031917056529414207598508459313147754164946099022471567756405344823841725764579381446249036852700855058835037267733662576248563250418239035825695772960718745968683812370318123078969213306100509008108227364766323752431096013625138480000596518562981104552452040416910280713361319922045404287138416899638855716970441114461699652794462974839260253231592629977776694910371438237339315889476088292740958463277493071287890486755277230772748936188161808124666783940635699371335801341450083237383165116890829651232414139628881863033238347295910392421743668360556352192459028200263653493485069145205996412572834777128088337614204933138311658543950899859965338246225476614952051047353431766843588980101080060952245523201773891745518992575940960301139536241094898306301905549559884174525438563730964198844969937829045365446868797556628074397450686624166536748954097649584128632736374992372302097501699128667842623047643293862118986988718198841430852754878557419157131323782008549765448800848318799927990459849192239717847493583725496097057038104895197350426889649093819563554341081124909489229779665751860349667899960637742183368726574470533766101999735450166578835819209244197514636359284772935054952674198724363157241090033589304727425486476825870346394765216547145642132736537672866281844237254791315015152331774760155755345683350151217021347014637421627370229603740661267741236379577666976922509325251255455979875149435436948636274857099006101939599170712546022425368674754768214933424797771116392056493761309964272759746261670706048017669675008924488183995526172378952968451925502698642861823389483138244173771344617023903287870106913649490885578890014500875849533536122641109829267691692546436304701373624313168726854017035991199331007209254315067962580798907585653149336261986107040976869791940787119736069644968328572630842986166761573671421025718060102859739809037543637160559607409085281577476277266413513076386686233090522571472766902699265785221490563235025010262598037863556867657217610339695346192085001070605271927664483181213834505195843984214434900636369866133297995855414986196186021375354480705613714160326014744250251039327201694421557607001036784468000830475866734092169385254752768345417159592854189327244529305101953428343706598783645905671888464749114949576781823653521944050288642218180963009657643707867441995191011191485026785601766285247905381233318276072455963402011003851392334595329594417388131099437999658341162077001937679241350482848920257792437603602428378392873428322778512463365826093954711300351398676306538247003337834280253697270863746306963420747001274864096081784965354960019143499250636386268046595462758765966654897998722753627678270771496407589480165715971510374275914760965268839088067338813152789062101430406359578786326375206633611037755008616940360204435338726259937951592190975160385958039252325646159345794589948506838155404929415864150319628090972377735403630020862005335483377016935531306513626892418782432783856692542273323540177245153343716766889374644772054315590757485914069479034229577287591437700369068846189834596126599008016092361204387869916500567946113493238368231689677063286970845198332255355221887282778391948198640104828334561512759374342076048855273126975678909023926691576047561274550226544256027702193665818328456943431306402498324584694169646268390163320910036389446204022911706011411975670010988969068480728626634124720916881327939824097917131324103806942086708078558041302600071053854491944030963922172658826296361415726690347833170187783146769786039116543930171442720699635146378842499010027972453344096168449547336565581026276530702088624472310174590904204315601924079601032637787206556753794265269482429147746047017769166859672411439776386654766006618963163798342184059214557362251419115008429264106569664545628349506016614309153978653930937584758058260572410200594648479827497325257217412058799727022180725403044961664560183438470439165449376002868714070708291440188475931172181421933162563714526412740554489085930362286953994760118764160978611281458593148363305362399820721661494336639400134843017401797964392494013166814018043042971929668492259223747040323501212266502357049262965745745560495472213120692991242503182458937873071032756236956938144689676264135831214143298787025302994663494712315092807924231134791045434107754484745667286917803524307955692852237842611822276329472751539950536052715482389761668579670440276214495985334768346186072272877151268536982273770923171911660008659281264845974150738646504927164447212754825658415889860540817439607558200954838200981670740985228176682512961987308921223042720190467101586739167001699342674011274690566442156906892752478413240805226248594354461328678405715851893057038555144785760854592306881856804105960639792419277102486365976989756609583222637540508137099890437065222486752789407110115832758578259672771580873841926678909803169165786067570416856599012637862126504599874973050493861026952884573057459134949309324691076779900038246573351583333628657405447867719995955077138102873508079552341753894430910448614786452479201200895845104844792489720834057754141536857302410475118978984299977666704296821903943222868048482510186688038029711638351633707326526142817086720912464663623129272752050354600614348473588267785804364806380962062866688901379149684389448591373384866368982269822319216668981788494028691454324765745369616602808402035527591318185217455975969508881664404001928426600092086136325294222663916021640072903403102682668214407782658581985440308305100359954249746293739026552452074951761363585463860032720269998197699198638643124714844884607208647843601601532795042447592403739403201370147886933775838005184431800142507545391470875644429933380661921003207552757642718451431290363457178863009415303305705287784743156097597217868224030850835537383983170309083809771024998525919522594641746439583386801754027963335394871576324321015568021985964653709976450195169049951580014215907771936862298562614490080149417721344320378351624687058859774546525019986617938783863236295079372209969351629130068004983021423796908141386173686458391567196779000994716916855634557417931841610361259266211207563097320179284367936395025335076204529714675268263855366102514295512955884381380816335341077121982391643485752122087280488712786597698116212177432119540150524257879574896845565917210807091428414764239112140391247203919631062967657549207180410405541701403732934532823234876064051890826542653826023078871681334596384237181894221231715550921366473662138420733625204406714188610328841181721091869034930947853536487730396645196919601416907207119854866968917151554994317282451364534444066484256750244809713348189627010964016066080973682367150045813483428612508073293810825464923460340520815094713569611297787009954404437093853400636929143254325039095452667330147259469612359152575648909875086815260583094612621895212895637972213270124883040039374918907983701645662053442579935575371939577718984112488303801655115214073452968780005614809657578485100465135574464887617814949371194465375676937670663740666966223576681531562677090820939234273807426034398602200516240831120304939631407073290883254394323140707770699492597028708966364748066312155621737461991463712669204859406007451225003318330504261134859603958618328238057607235521909674216434813665385378713374466300917211054874067592705871316520497677560908955189490811468924979464637379405505115589660188819266051069520792621888820126239688719468315418975804810082613104198371318187997184015194204227108160122582910547657326244929281558249006831166962416283664856059059475252761655698579812924491794091254139472343290646521904470926925219210200620924383638146132608671596859906784583249577648896675090899461485837723020107666825168277736799784234312620194822966777091461982834084632327735763119501684486559178463607792546967246195587657584273084063755196679028038963853264762792471981081940530056946336709771818710587151792215614559167664594731345165350590685694998491106982536447647884894185323047933502616735429218997201514069489876484974805126329279634196467502551502805054203814079326257449779534457880450254888319766250530382743665014723508121680353602207016668277321404224121660480123230609903352693027356322678962289439799693408768930668714218302280968294698880928019369821757418205318040611773128048151430193952420949777866682209195728066982283053185654788543136119827851852584977263622388943202989207260800697138061352356003442893224016327280800304769075026081128657930467515909736395358753418363436582081203861345167322309565561551800766148088862508349756308356550883016087770255308290426788455904353161534006143260532884144219902457374724919635621376493986023323115208399168424747586697764443740765480936320447823705836859750810333782645218926202538321697524354947607732660948593318460333434350978680854955878376829571165766024914256586693996163325432152722633762074351648629543723821017533577670345887008850158578478020934566483159606470809220827240417634351071094476999720163684267288954502531111035507316148487404662850188449422290480212829648665519898310526515770143125466267807785351538850256239196089940977234063265565218579306236328510283896538995213609762242861487515271550303138383522890175739544147605716620806162778289544533903007562482065195243279095862937568768386262762728623210237519389168044454648522060149902538813981662042137884973385741382150386249638522564936606917139430494233515064631293501291459907089933469118376009919170116654742716162561490393796221328544711420445612607904003422415331724274093220470963952642740722662482319371923131269090294223982331608512415288035739125480285332697057923313280542150930654806747184728148678736260951636987175800057193307517862031469965085719083821244155666487007887626989683338414977886415195738729025172175996747588547710524273228089720249374919486380805890631146107486211555230188663562084144371047161138167898867470033311376375718873204803060920225248983625345430798127133214884032879691761423891580464031826307924173827025782252597598221350535003827021718804053134074587033314249676510760407662597732955092554000610879291118665333762051763200058273730051414337781539742932342411767014097612027078359420414150076429168685493406166982881323024022083630955221649861931309246922488102636082048832387236389201517958058926736153379143641998591415768811383238609788708216863433973982920818149628531072157560982790610273685748209311716470899767954287880431673350780039329700489762752577319085830527585278461395794947956810322689197734905329573053212445360707615406876786244513548216447016575573976803443476300945053661464741633393595361979607251390550540812951301923146143892719417624991091740671049578944962431752475595436392847801878153863148048980739441088045669047610638703888276326181815792225795159106412501035608221916592221461277547655394342322424803439146147890794221218238578874314455803442758464408954891787488441344951984627561426182903994745647569242499186953007333640081355317092467471381612412193470725182558703138641373208429272301012350748058652413974869020575277136350073442832478404654917171586375427133511374895466298460305522722665861252418666451946300765338958934232266092981548849163286424015159396271519825476570693048773545479750645939075603694245319932899806531614254640243903236535568084227350745298137929436659263963630115866966948898046074785045598806345484323805032928122778919556130930286792573851690359755741078608936968178510909926590856192029698496778180246906762226005279457031608694896390360335690426224159027194285176417696532001810130932478963511712104663490738679107908780024669003503428530810559794487502219953995545645814175519171567448011613977953877624675528942856475360084743001630882103368648062563518580741565432447448677203425104527841987158555910773273501941399410943141613820743306689567687169092643556833323512051303541594500979146773460828860173847182222047136130296110924994078501898942736580971800298050536954983211352624496745741076513415812731122054753910717852177757398835856076841533392591242035670154141869063283457641239011612893807013961760831412470445039471779639591655143010728100748231756933948078878879825221423800834095602577105927924107134753818464661183977224047388844308812427548498287530612550040322951962411925648043032808184164612419618007456517600081990026867684877727391288943120650815996277216779178379237696278589791600087242914439344944705763429625710430433405664023283919216102623414521164486674023682169956994200965364106581475161986507061778522569401174713271230517587324086592438275515596750173267132057287365920266066124609758631795928592479977823287998377972268210258506611027781615711811328515849114232986323280853456941154757793877223101236373577025081083045339317226306376513027305496336292969091574054034656982862547630314701240772943422837000737799821877548397143672401101466843803842385264984394406520688871608363947884186199489432372791756901143449020458186404419098192455959553729787215402497412199824758324640331620548253613720001559523291454733597208523070131161775296866393916863412682047826048916241729716999316125257981426590905160940680708740723770267074407494245005026400315846979569814585717996091209926584996320028483190139514234299907826480376173647385594724269854602875999000974702695269770287547792941214092016185001122152477410238750306951238505071002533234382999508055097613512518403890706443827295253637826602953863360782934152071335077556303880189695048526730933086414670255575038292331927889218983293308087130793874176740781068758028589941643462444475210548222876995060545258233725418832825534104658827213140430072641650521383870283533052581864496537790151127828528112629049601861352217457266280587377690473106591505770130176706086009485340092661594003972745449506347515083207988251774554887762623076846106670214444857495366454776961297596103534174391837933521670551824627781631114785105612938650386472162891407288603217528743416325657567513877418811151902611564972393544042866005646971117064763648243778458804248137352060064471066595683015677878913274206263319073796917541213012917792978514216225948271956805629697892130990976279938373146368435594920716361061352364819531361726978684700056656405200091493584437994988545428171696646453603544978880007230777404100662913915530945643446823672289406473636634901336653483763305743199909742498457604055670392605138836144098849755519912063680355995382520441725274050869146394328910569932135113412532624887199084246318082211857601750407971313508391778457527240992862773863986846795174699645480677364490763595894817022653191836205415808431354765398531702502226349634088835193723956926520736701520670541321347841094216961379443939430330397293408208751445664592069844472803938090820984373971574179686924004871837950302873639627912581650374763203143873788902145809683399225961001608253358509932381455248453876694844300799733417533146406440055778700889321550320879524259888760646176376224872572451743244880720396573618494555747131833953173713062201311813629491335378357442021300023943829251641403336586593297487571538108754923204664163826217947853621743792247832834647070509389164532867793621217646291536833766220657922015600938944686315265415025702427610898731539594870662655326038886728020879292728696181702005014615658294642202990691810019867101425103684481038005752763963673782596173016676488254586104414556143373146671166295690858418850379601473375064356638135402851695473495892279378468587185469628054438870839912770744618063841806078820181213624221254110028351251748420334712178766281343548540943963934699331189603008131198729660267706955514523533498521574142686693798496644675098243212867502022096014764408600794368964861375922851726772123763758046690840087370488147839163332085217251168385048661187058627982950362505805834848054762409978787556877931763484514765217119813342518628081174474821761781470300727964726211750021163252937349901679841503969902978570218353456150292406353492949982560482946102958440327136820264678714462494498635682720590368730517058143834580379814670369480611870754928088358673933529253033550736470917949056540809201297987121795230987375388109284812886715321273754333608719745004490678106351036177013172257689424503910657570060887680589848294027509526886472559287414861126114137522674439970362912598910364300385562997061088305705816898155219456306458500029850169749997042801435210631410467119456999809806538216707872308432205449048560311626598022749430117912300213863809735387427182305454163365933613751573807714391969337204813077440945527153748312409278066701413334208665229233724579119501807235909163301363314760882967453865004102966850747619869335159136129579046454040674607679966916788442416994195763812935872012844630132889761136179894765595454206518393264651026431702942284134420271381052647232483318007104049449471270256234054648951812002155218292439900392867763329716205812386075997400941963591312594260268627013094893173449761794169527264774757161719316633425938015153733488657420485133586629154689664429929836787598859476437419046623070855400926316005668004146223483531755320536495964020104680196137086193991265341805001711786957569510340089615014115242503306115210992373801700552481750930890512310158420674896126524786997939360880610718232944221163834284522220317624389103815676905803795630071355014466857094252953088613832060007503649261075789858780747798324535638405481978964829295903032176057539999139464024351642392221491036319753303013722976414103964889072275662897290941225044771159962259982889161613618515219416231437472516951630575615214611410531109990699158088655281666873091709065285384721852883164172800661799087437545752864496925487953808830327200611807396165849469072610009817607963486730985570463727312390562822119070054748831576788238876626020584821389216274130992358781221475294560026722833264545385121123565923968025638512610404762348370652893997206782000260600762654923370905215949750543430197394268011087514886763246827464595265564117127504324249962966292842134736699256063442110986603755314881986609328360726339828045457523592227496314976222935934903307814577817972013931305949859522878371060253335538308506500745689923525966913774704174088697992596187216075474432256245346208529304306275265536805126017249576834806632215649213439529396661335763947745382230257579612658421882705104919752675074019486100232057646487744908176760205910283569819118068682573776614892862983213569813187046195689165260336355836053039080452817606615079188747292113565754284321912785979405397604320290839930051630940209179193491797724017121251368661537314691742395056967204013260840169588565661180386521906195597839471255651110486541667122341337210493670361697707286343805892622411364586220610667855923858651260499682742767662705136261699316855692517779011039351549179287809110210373531984863116415336411040351406063627232301969019117445765923582419112355992964959712886155321543555223872451520527280548723282574270699311505358416021465772664266609539291598189002865125768220254105081147537299039946435920269068619113367484459683329802028746055393407660926924933249064993447497405195790627850599630944207873686633561482137838312881955801235336254358830503028057697853775479402847571205053455501095559038445494688043512786707259192219164588008645116789798095084320416537483718926613081751626064178505918047424500293121537966295028125573708703693573284610827419792237097655807852322521227016854457577647244829236700830148797172107932182989661178578828028478865567537115554804706150858870885651488067316596393434399728705282044725140468638672802842312341290317333604421963857003289399664131583058385788759382690370982031570642348326888755796172075311739055437757290140850422459867744633661685220911525781675282964618586351852429216701112417871960716497413418826746567292995017925862818519103764187483644275172189769397603703059204747422348367026468701924154405882328898373271454765517743039108375079583678880788038818433980483625019517764923085537544940154771331511291499091247888207995105995820930278450060419875101124383932609966853666690567538883776575791179528380973716383438736541604514484197302709178417906039279243485867540293324599859143589478319613995493155264255507275170724508621032204223123664074125062766045747910437020948043686759299238323966044578948499024348099924912582271683869338096145362641881157430520409839749222309749219445751474817739554993413010871788175674685897963144033543299890595457915553188745979956527934491531896045736078384691802218769444569005130600162306890349451473330613197246920717300380226052397448909523596061122945438080622197866671817841447868116573555346819595009868403964494111588544176344290119374931696889196945990870540580852954059000858740425151199446916431303179077281718265266051898047629890581216962710632255706713931349995561590562215062004390203468577857829662478876671375441652717347770878027511655567504694811010028596615161247666404734662041960595987557219258262004899844862581121079511702181156970538370160906782817460386699341948303895658642859246994416445095167264208675136137264363790226868341704261377770933097114402650688319521554017669139868241195314451862712885085092078295014662941653467304841986044529117914373340891115106591308866324494976279076917710483201259663788417794980370808100324305628675346000773550394475947587024344188947019987456945258118904023433224421415433830210032200852427117696619218530717777722190018823567534489266928207777742319229896122783900472612980018220697292494633291784359142106138497995850502516990745230991323086722336903348883241668911821983916032427106320983448572591058858670777572986486737898283756041427226815483805873982100704976223093541293183907382767734734261748968991746013590186091152705923511973280157792674580753779369854849899870492992268609672367386084455718848624102545253620816540865091805684912732473797453541427397521260519377054616116079907112820372046559721559217598089997282649798303900477086548426637754542009129055467814925058918222376730216418033945708487413288390825310700331977421243136244304272000242125553553540423612070688790017894687119451258396145471476002870297288985917243925518222083267967528398421476256755610917940542325873263563348434288628178123714701856240844460569221540717453910179807695241535401439024754820813103955428325489139982536081739002842330805084573485562696910890522560642056816653875057157912120283748942879756376052907855664846483687396000685373736728261712302482602551134197593742935155410841562538423332850964589394021250832948765044957857247171322755747315862595135921762664019186802314958498687224062119011563544994023384837457834830020153693118503957895644411155717267447890589265098321199558243583465881757214653414315476343150741979992575794587288254513955306199525973114041109587819375543084309120335682902040285571433021715899761568149296272250434339457937113456532001892554161573370503608823811168205649421955849995952253341099842136680254816999648148329258477839172676052112109273010221607352534971300355444151723650328484622153906016693118619219694821923285287996797026380363831007967318302401035139892867041052444695178168599892223114680891233451334845977159412176964571650346639174629505496887158887968971131012350435937832443686149917002443311714868187873624129238801238156368931073273622734656260423569697219715574672581085197375303224970005133736810072857024854236829657635892413736140809769000187938837668234018821648322496229350540691551599547221701591381334325644193496633369976835918942196842599349645913836774620433536474026282404708691844230909997758995461246816827364400485316366148801896294908103407893581471370548454702760847957049217521971174320865288833228259590936259728221973755044687228478796052559211217178129730455429705997894179048872009008158985915928546740830023307094225831415549094987227947796396007927473963183148035695513657326824283380841071693907262617413073834210199778258167635955649091869111130955999124279926217942996539527820207020273642716681614868989492248502114585839562143706683846227123050322742989905445754135737529823919692469290796241171842625315658943673660345900434405721725829496267573441201121517454960139506273313006068311927416686137863792681511948574516813734003720765901764951319615042554972990468780652845578599002696866123882062001739953105661561339975070227486195051786710390514222827104022321822569485262753875926254109322896388301909086945062956873276817850772418892523153818338729513606041533310974814961244736163468637822453202702069972373762177691399539054058936680458466708312993294129003746201214650434219918126226037601260192548379631359098512604554889547767523562422426721865694692347079091598183634896544263329227002993857040015697157415793574414133206869987987804864189394604425257085330000092092531706553640867756518463760027429097786884264045895331404741063511789273439127471942719269682583870720841429128990186063676650982261140548138320052226289537497107342066157991526353322566643408281613407537449429026586643599082321962127068116488961208732367295725899636685666445069591671833944300610028528671699316806136213977501060607014643832681417613683902416099332939601611039322001654653796139681954784555509098624425773295742543847864423025646914227427317387722598552047275629229066820649903522336177794805936995296019249911836649998343642137592168712443003958171823007190579692539799247634099007627097478672508150789353955737386246696092435278022080515842352642704359359321577773328815589196376335892451791626329570315215610792209288255729154621777875483568564611773279704235146740199672333866308237881468549245465911087500094664880505530356785454264354686556988660824947463659383091528375500944626945369819769914588317738767065725680646632425000887503644810631243914032109859373472871294009283348862326862991946011016134686346606069944962067609405780711542825734956582915905970462097011212439044086979947103671887185967154909984494131992814061359813533901662519428588130661882533129191933141181874275386803704881970050894422479144500522583135967384277770410502482103686025930894990344247759489409931080212838949300258054794711406505406743214664208003341492400029499542224319729618698218778527854379025831839096322698246540021493254927420836107970545169380774509841180704290544857813869978165171827251759830510933717738869608760178617733115920185720601344186215094257873276294654818998048090077386619930761816792678791633855289226720600399301398735415693366239372316191301476577269640516473289382957597155725273844171969370047408921448906597049075994974123494327234344821700471259274413182125348407935644381351024855737856174637595962440373414115162263222276887736907590552770037408476654940957446582726776035230520301325253903230567416816734108457236949769747893926764883748476401310645818132620037219795496301678717509949953517063747662314376194155903068242898897343157356083420092384854961022159596949364960610134081201196142835807120302717962226666454417497189307228311710373225030260652862410002596547364730595828743438872718563056006045599271010222594382757171331228641176564066077743098468674741368347145540488473338724611825500544984154578293675582835753059113717800730276383435992343635492208772352174771210396945499749127810687260541056264964173005316811000172352582386698425986402768568301624665840964610420123818768660253430072849038560241955016935711976403826287218123198380393084294697267668662982917051652718446040640060314888771083127610448810410905243312272963976789682477424076242699452757380807949107155117068938009528271442831235680792514892670813617093770816303818233852393362475983853797811333119640673218362010165177012839618776321374036543303047597020268878875784985066398088706449752550942280952330096574419636445878452885189821595504248468888403306161091444743542721605873007578287275996483462059576558831804929091097898799198296960493939254100133972928508383531927953435898590892436614176608320861032374995033709783457799323171528468410277188158756140066123939291392560623709855882958519972745776060001191299390070956186065458394972234130601232332739931513760997711819550116502076361485365527885017578552421303084382377709933202602315699250383142901853182981091734864033828848377041382488945490698552072102457031214703894331998684445135871870767011447829475931622456469215636613723177461442993327364587277906841334041633601674772820955355396114487274019491134222736676723703852621522079510095340421353479778644303483554659361484671969018044450320760185337067697245951743262042573346875521048753647870859456358683452093482304656593756740489346352872872927090018476680042013340588661365820182364126890562425779211784400937982799570124073844567621719358406020991036160424231861718957164507881548534940028492483892486584593131106104889532742932680562764035310542075795604572854335866718315080572405164647493853778737557671048766356258039658538889502906861291036013990961377154758173417798651464527939514350257124144703324819434366476899819194772834020356054389883474036077549402221059475233412193312435730523334596050795011400187542449650458973730070891806582256593854503433227155931091919433340832644513184066154836743287188273669883468636222568665554016330652411575460870038008750935721857686569104736625196466335510415210668891010819036129283676600039361748968309400968840530065304643567827172130315074164085576991275059248441538637130429425685905373724734410896263325084846375952516433082436744536985814534314795299588458532595956331906366796335869676102694632538270420865134976513499577002474465445691287823663226388960863918462552763067215635649832518909851607579506847882550450565831004243166597041706573467941433840304337056484893970377971529033980367584987615459907473577959833563576994635683384892234410810123164458092744368461074043304613669434930357853013424161814669872913125530837430497403800053376045106079530666890147511931651307426219087596628315057828758624377628474570597816834159442416118611868144518536845160928574000522897241439450666731621095285798002801991737039349909351758669554227982448636581636844851462199987562849761564677708183970417154236934893635215742829227631185573035386402958667723399726092351606887969586956692631224330998155593882626635298122747814434262198441316705630119981121933031393810526065651976139810514817014079860130246718819249665770452541288418653328474911847761576286961238646048162369956491416092210688572998394813088652811531814261571678172552901527977841964054284510552011452881532331702730851566623427369432434486105568437651098957021836902742294409505185522307929400545867512665543493016005693518727162782758202564445188895264488318656921969770297209605458198812980999965888526073768100593803313387508447292561776780964758840112304222833786618371656565057867049289567623769757113462692664504010859085377950231571637691826380775780509654688202830277098440349678309088609014182776298542167622471926051625286284834146667580143645745594691982497404999325120603482789732573319254126600287571444511766910041726204857179091595028477200219569622430501055802589507469963234604198942084137035198039217692785600887183771149788691112184133810109088680350996725903379159964524689399111067442501735563576839678137342704992086825772168426704649475359958311253173078487711807838704013300527873524124062659368024229219172191699054969316057168444628336017476771806883395760270718692733038171763799236793678655852735078930996101645302282757768679992601239016890012557186210237736597477186469255900298938466985304610165604661629862022296269860675275774579829339011718244148089531027944055801629096731603589706109082585954229464936131447277068682924174655351688171006868092854945669394150377154520168111416637714341723794126533490392733881467129624432425473087116093307102713732129213642093662978856495037275376716787885494548683808307377977086106608180980512174330131103629512536414351152467659643446178109148168212388927619991105144274301074304088134132916458942477470590745959427456508671401067038150667095403831872124535376984832966306223879251172349797889764836610692823363289833994687741132318999043718581665052483444199501676254008893867799099173391620855586730898953552603812039664474447151636850854258770669010255342179481173707977186460590290486600634002463500281532152301428959725483898378271969379976087231375458324130861506270314979551224166345011933137288167833085048127995372115023446139178072328641608909288946506555401197796779396509026531749345031790170139309033514857980547341285923535364590635403426892051350561428681097732890053653070827471046707511983286712130100830145425543054261392804857996079077984284835463574522791756961795525940404346787213640723615375329414584620806833681741505804110639919842211429274890201474958659395794823112932527370561180581427560871851724235709709935764383648044400594832567952120989331370325689155057843241196953131201075268339746953477887053122564324125104559160613245065079151564376598372853823769737296615232791610018818385766191965700428494172650601245337538512204107352024343391279554704124961996348379284404231497869034897765439155161803675762169433795283071304570855832167948102567722976623621791716030123853376034877598451442126892403691459776596538009269609727019306059956953350434568656946082442429952958240936685619537609896853085157625314869145586562239673236568106552526324983549687663892343628941823536229473308317303147634140977136002220996260666573988562835274061727338531473975474806455618329568226547396336621348509699871490472733171184134247041609001412792716995947755863874582232482668413654974959957681540450724777243816388710109002447598142803420158795075815210471290278645733122362255160179291002358193186886405289997028784870579432462157098347058271999059837252865036989497416719859438268318668782127666552234202292356542765747404397749367660882988616235206580906342052754362445587726666664675528273181433755995320942226535763757976689157396380568186401936822496961861345501826402564197204617744233216110958045652495903946099597009680629112839221011041816567810130729877661234350499755560595037759860370109092559346679505122344447432989753278313380668761077012730944923202620858536005700013362619759157481477794262405710438365706067512281352620831234015431436995541623699685123851075313476500080323792603674777527645692545558115911196284250962271329475985441527194305553077495624347863999864955132052519090716342179167249266762384768566383776298018812208880184628295786031454941319821690159812134072410329625480140081602814512394828531048523070573148757650008302844157089670694541024342010674839879131438245643929217625694926918464668189307133732518422920665955214168803594049215120850065698602094175447038363878196918040313183510098114614441961202144566155191107914634835045486053649898965497476251441987233854792260724713856966239792173219211150700019271894867780273834333711845208277319407505029065056426993318239211361922064489256669696199878244374863838028184021867823899322013106160531618724358570898056684548813568983473064450960634026866046104387575807351322996354457072947601842626929272957107922831679238645819382620273622759366702138722001151607302949812373616085934859381252583309031783783649036171737019660748298908869312942002886955645637319876625318549821295364954749916271735303901552442977769225634275845572124603987851254951980058947883774502466359705631404045278776461846295684875892213286136972631477307243957621985959657068960827215728871634167451890338124376437154010638611023975399159038380218039567121220632845744784010800971094590310836580386627585569147603725657208822698252251594525481464921528922205689187812348001903106957814163721900265971853620686692407888526578311697891169424736080939605308663257178071478541663577371754708268428793357528587928143188681636133675969209442901937535503588301152510163604419630262155249217761532864280246360193728730588656623102604626631179821246225045962986432557392142968704483782065775677528192263230979176311098049943725112403851544378951659035854509902989837384044929553272338965358818423993482290155446111600649888444035999545039863091041750752321100372056380393918959026723534753225620668120863009903430671278456215899113488650866589093249427138617040131635540253044319913682478906753722591566552920155723695216217534677875281579434021534583065786023555873682498473704128562656332452841478381242263381265969533980061935180757282967531241144863092855972562916045168522356202816643181607733175549483303453284660111090960146763837261507651498532395409258536779476409054514325951434594933895625707996852373660874351445737577770504898302207864586757950173267292209881815204460049989248270704275598006565042806373770264266562635939784292309283494859070793208560233979442316535424796711918266348745776425660423368156330396113625499704711285618150035540383591558820148258562338870570478165874637512702391641811949090295445891073603510844481675275860603221424725458858973295796830479011620056760895271424195693218502739946020757608175014036104223066588024987085686641558397333173578770032227253196866112329376949404073592530780548459708749502605119887810650933691322251546086456172159588690595359862490800696809243523816756433823088211001402727335837251415502629774230652863507482840281438802915210928710410756647862951733728804325610943841293353153249244502381893724718371503129883170354135429447145307419224613412372690190580435972202047408488715596534768709451244666446520648835790530918999914260547260582004551191602524304449553871654774731189842180745774647082609851202792007296009027821191388646182559142747344521502990320829415026194352955222234834952703378762187620413493251828794026259380402003902313926801466475588828275717785126838373064214818198497691045562230861741569118388268582570536890463843450248949901133933673444880386465397941424026642648792197125516768447053727551032429710013606942009126996400367381439004597848993158621134892840749660304487839686639983227767279595777688031709851624314324783609222219024308509529718079312462413900523827532362609872345569509147545308263674003264080301524307669002833716279564179664709019927043995001002798844358002483045152305795918592767071558618292762673528571660258886958048923377383470742139746790037783792643978629509564943548230068407829025887243426261681256771664155873229952073486133716143107793688248425639325417249728092060181183678046153524905823339038927788654208235402894180221663647005058229508760332008784738411787511074942914931627261483110052823817997420988845288079981807654108465439119931875654201863014950078537041268877336243222379614476958134008578175046289596446674282613562443971723980925995796844154821406928437950408624733625398091870681119358207717686676566063548480432040892526957921714991540123051193192890910239414334982410246232938441753048892700318278849853787160464016839976617612852284017673965564233937267084984124630169771496838666050707852905634149057133133061067333691144307797535272785025037043934955542721899602360100751430920106456437706177611107998192983309380379293556658666522995519374759907064704921865323094003239888866352864637497164695737232362206327777079256408724554316436244771260533501991814383373026060231087531791402467196391157486400172371770814619600848196660860459973722040094745481429373717226217121236733115511393776466153884794772704586499395793459598132860201390962525658937088029369891404309205380147340297620116929446831567612290736604449149418632246941558807467400689111840598220201321130715286154466182749656120911670208265121300772121284705799524089913136250666083192539460185103894966210861649783484267164046357094374273792838228935395330087777740895388279980721329611002313848440396676516618157196280269841622847241916591310759197296023236443879598619673921423140944850062739320273114133944990096350539275210008355301453878225627085514271253343587978259917366673539130491378353825788032924228931648239202742814245671664534397512868687724896011971601638320187361104490553916017673789088361252210132657469480828265204419886894456581740597776178170357970332731688699978471307268375716082853262891835496101127381524195912870452441540436308503468910337577975380954855209613977282135320088242448565711368768734422084069452867339485982485184342950293572755418173929980735121976860143733085621206844554349031947338007368712406689901406380561288710586885774688968650289152341679505822386899442802501482792094788836454759258361898760982822480763749442467071441318859052317749306353951742504327547580999992726482692160962617587588096043110180448897119017177095898043004782999980301956337709712664059091969747124997380006013831778119963983442205217423638037192413363566940830700617529467487474116891527518272225415162968678667995735325855735926862528008908736852000550453975986939383836312042048744546226993791975486381553003880481934452145382443085025760722593218557164138416132335746055186733351893845851229127287013897384863642850501637468198919403351357396070613822082746782684475056289860586815022720843285190066280928576840754163838412778742316462169394187683777907398018334585801653132521804222236480830193797695614382305556874972488170342826154254922125170189112459667121995202504393941010761722435183053734537700425744497953229263559489464781222206371960185666840345503761155520507499479033398969560446539674173964187798134735059081122245302362661030298155780343446438018536793184836809672587576277897614142370494099803543759403878700755443238595873643380915986882844935967745160651621923157558293522283585845513695661379043146014480079318145779427410621202768986360224529852564318713903339776237613244272721514559891418796986616228600848748998455107257204650654841671061888497497295407843111394554048540526487830977282020749779535648796382500815395625172662660859612312830714361191741180531911134670934935678726175180528261538626922802226015425780576808250211498878082459759526188762834990450175479984961152018920466482941764509860688151047138135939216222057096208400761179613543019186762483451180716484727062801800290118812767278085368274828143963640703211836885100559850341148119563347034125286398183619421546836980924440361527234863872433056024585283739554568015120166569299922433119192208464825773795937911365308582166696616479077544221117780559509883733064267146041548710833553161356591689230749084332227568012061763519112414728950876590089233557194856817107521975492586987591237432718471794575549705417791132037435259915035580242949050219186037599106681673510033035366442074455500964892896617987190143785479464752726315763224954214646209726915872651247719160471662867815651424458241361097968538671614429262970044295212907913364322659248349534863881604832668106269414466060968086212160461291525224192572825877116831665067547449642102136284779365515111215800780227283719900767564304403765828945297364193335133139886690661858533048490511041757692626666466452297369267444849458858760812486143025516366458071711129326172202517663300389494517749548877191244492301402234592999371225323567299820178996878831904986415999508669937076268194978788786118044950339974620780169798255141232535419907981874564759860933240211300410652535776277977337481938031258409111224853049109431542283958555664045737342201753712990489624725836132976609499928649415156400438478120445460439874819177367822530354468504685921847549902806074726021828809241422064370681236350487911326851512600394744149470216363793580959299209582934697514019018092385836223505907529091548028656500222921289423973240805215030243901335660205217023734003597639349823648098966615404498475699060440409220336991754068798956508214086427672130996372833368522180849116115847261107206175512910088484204030761162467144885030088848801050963257511140982877245664182558748585149138651653658663387824806805397924244634884598180984939664689279574924655205520911074088595403116660126108388280824324722366886085110992733395654657484030296247315605435438494434559793421096879113923368259502714511900399950040053040185608271265867339042494353357105358384968987694751080316106168943748241969636078278934421869840494884253993469930573913229016693788709427773850972776839605675116633034673012070131849273500979991808164034837895899473961174859153101790280664666152123727686923371730675858312033182871739266003327473421975607488995590872399347832587856432570761473185017365371282710037349159344596988625403830900006728884199746480898889468297455860136975744691864531017648936283520321140812641810700819418239470097796799184222314819565838674050746777165491596216074553847293017259983727265258904719330872180304932030028161913056858993547135720097951502594043633246784509149389148461459139236920310831560062337887031256387062602140198069655667773475064440425317914326230068213281660470965443208636956068676182333494469035591466544312701677365263836255451676696873932808454227914055441517491746851834514442059196542644405621180027977535102483451574411404548753398336176841640716283538825415577054452710657396253448019636385618009673861953748897842842463012871966123297560044373875968703611300476794311186344958642053222991487816856007327106477462219061141147506627531071408165331751587477671567583283504831912127083152367307558828579406003057640415385525449274898787929227562685932927240346497692563919240538675490607275227500000180352142648942617670059344839650118293580889351943635777467091835875154107455281417210316305597754658423858537462639242994607068764926952771212045576887512800017067081787895120857170072852232902623280670954473964819726135044877641735604686415161670277545701347472341904209873986773993434615602518313869838653280296992500911510946030700417363838980233424149169001722251730577002859493427365899665418809281154721055594981055281965050376120975729482666758293723927261342434079562367984797814392529666573313092442338769196092680466565337932291621727929473887609698691080739497383510804124337715160824313275016063121178050018900940883203121781257617165619438439094733866764580623754203347908757293044737031399085632820242189335644588743974113230543561067459302998881158735673596526945776273757194898407235417961542888268264290135910038906250223458302435996492730487861241689729248211836572915634076858314216459298253088121380298392688354274853367784103846238142655200976585456331932373864655277186187446445555928945143468021516345456350810940398923385135257200568898265677736570394571634488509170218763238687721980586012640483881179470885670305902677090181315116572578550553256300240944562789166457358256731699338037604299171854994975537150343966728184251175068907977567401624075417349140511250354607024975442849533402751990029711206970074997791742893092789886327592383519656536337637643145637314536464703863305174696980123574616436750022676557448614743218505902806832136035731727086708134827802437416910934802048586545048550375582475635438938140606827153620270881706419458716453920330964461219162156361850476189460979311652623461208508852108858068761604270063395706015995502382018525801851637080371911505533357604676982751953289213337720784350387726312732949603217331397284997494169429772137050941763207342045431650840993889221296572512279266969928259718864290631292482121565912541055324807927756994500915810592742236277332871977999195966089206367166320885880530717355703995399748386331369692184687978596488809997211914167545417122933406461056128826292920986242248141359994619379220297070188894582614332779755681565163404811196293457082847466661205949172400997227813162556987930482501627814691388734666991227305300707990631726684315076800702292967971188799820111156142040902441045341015952024857418328889945149673954702497849842260957691852786620576021704870889878122692154707604125437761342147301449211241620853107028596023624494279576916004059116376042709147195367812750207026656670973198651053049291108448528854329395778448859481931919562607506609973352257704411799854193455393602968064552571327629555092506250084038036451823657668371811545258687082470952471404829730926034396078737159974706792134248956530685566667586308824539343433639340127782940978393715311326657250708892131547305505720554289534305370694848575959686243776604719495021120095887753156083747207916142228990080848850623123697522954098025561633170574696664606014663204652507317168661654549955327559954527755738057023577306225834764693520373871043330851386806457929044478053378009945376730800241700770637206777503472512542239200855304783311770203105797240332085403854994706696025542144461081639410877375217253708287345787077569938763703091335257645154420710077816937678272666436201219896899703262712098825633820367646877209009442818503104359422082342200321892188238065475760360005241960991082110296848670951025050504407891880715389156555181408520145163764678677218526484374811232036096097250773387580670995930412451187164411164863590874466731020120189023622818345797945544079457827114211665290904535503058907531766025730772250650688349437588969839694062951379667910765626382620916995934294977506517696183409889275450705288119614500865664435158142773961594544195808299342516899810099109259767809735349666954057477801576736164330916371243653548838501283937937388170489340595804568040842019188347284828494521213304207812293129046555013563408876643556661182748926518725928644014522613592459065348143093622072866298050398087081904408886421654875268505841499573453626723521746570626712628440202320860529386582811442505276356210128787479658221908327698362324637302831753604522986262459622564180266343566379865763543177550480856958859292828230211163439626745595063657651680269995635353717773222362525635859728188599893669934090524584969125253738181817327490052746857455337614428132427518284265046922860770841900420497387745579603686440046632728470540843893290260078915298767096058472956178114028030083029292060651579433024776310562000844511954358681977394064526458312317095416450239653485651970082355112416230931447880365474457333979704446267215244179839848848831831593445891985491044185945476487355563888635747049348089359733175791884176576061579760567200700593161459194021414734706141096719539387758066496396260059219348436289495338667733037006369234278988865916682071783077337726689712863237473090871253589598062411663624390620948234115325340220520072463590666640569756932080319290546758597772100433274468935632173214875807278923693932972630258516097104096065028628695774159368101822230971904191680995002105748469783045157688835359698793320760098311069846023859509589545928107017953106006135599270841774660068990472694991417843156804549390961298127159088652031521498542798832644534951598819298898126001765829024817397237702134361769879251848040129508612817296135425822437288700252078915493309450878857501273912243516792636456723289227835192650232718865509501217666386761966923188452840293683482474267987829949098065401754309031537574209744062342025294282537179578811371655773993373658644994783762150145105451951555784332834067161607313716110825295112034623815910911805933835436195845462565020114910108785073621830850008138261278807290466838436402528018672857326425759574117783586179941106960417501349532456579539116785123712447161473544042509991295351086153700907909365819869791397208774221558606676560966663199153634447221714296668212163778018098787046790037822079537821669586349754414723797354688271133804122496632805898009498513956162220346636126992684424929382359317207996473241423402705537562280306377808027696279423829774948733621934659362456768600820994503084567618678035633379689337904282229822225502012802654102909779853714826795380434298348901026030169775922984284724982385092660058701907394863027215666737040787982581674561503572211762795620831402134370631087663222304660865841928337393545643418003677928146047419915441053765418485265180381897068817450116180283965242832503018742689386424513372279891987215362772888090781235482911719310459835707383558809241783535211661059617945193689002033033193226641022033419130121523203724289767719155530541378185902909671316693246124180560706054262994409620386799932361275339360140146858630207713819349871901218987365140153700349661832561819294890416545230215064501434379868014323334411938342819078602078787515061070057313461458733378873531912478181974721761443663932083321863635725136152844833322216007744057008826376199206484791242521504236292624372983394156530165355678577505488126723457506273642978047813808904865267121345778230217895718769275112962615220402396974214808119222060068499188296831831436671584144839505849293966463588396055805606246804716396214515836036747053034869989140642316880582598948028001112783611381136665188430133052859093732522261733199451201620677733858924432663375137399679619435974902569869610373399499469309041946694887874192428841643578528413762784259955426264356007752189679237210718644678428576166763621287212537426691903385260962519982907042334809499051717883954310433948796978184440779573399334156236223964819903574182851466127995259530259835387330076375955950754243239394275586071586026859163614516524880810912067395316696435880633013786949822144097612384759587511384831343975067308414611518975594210980431564585526981066030166410037781593469310194885367236667181943582267817116561768087811720002160964258646321811128915262668844872610394913612801860571085620295364042030798189885622960283250013815222563676963527822169389834470709975932085937117648213319912075148953082328311846376324141164939317483531004155355305945140801269701141458368392234274722486592734943828262109338218064953350849842377483254701787576688513769069056107064800900022447739046477173550369326523249204352332516495794524032310504493029102604393176744180307700574037318826404615944580649034710028946937607597432006369122750745130905067940217672082705832480058866472611206170698295668520892515526190362263481964798493354708445327223913271408800339509332565170385169436387346242574665493081191243853045022210923790806239269575221939207645645513766352420808200356401642253238716782690427515063153567148971225283582927404738540268285845595125483277614047392677450682968599687492785091375417022721003031470655244442718684533409927910909234449812352981529498368936236283648727682773569437973276880243554965832836627158608983907231218576644950657574207451293393850795034835116365432122522492113705561798824955738620859132603050923169032892869645108124652806994320543106094848026007774842810061030118400847979957905908807043572474180651936090828383830414680071872102143185970540303203897308179509942850563746677256201742366483676139267121780340706119115824276280686308155775890023470220570799110790177331500152103346675824932853637340900982174930518882107491882435577904465769894961175068873154056187075592454400095214418978925154992747348452703109397207478952617556358216470648960051883276974650910323387823563780710630039073536357838612733138036073074822819302561451796442167572775064892118282090964671259299296415408168292517839372696143596172038957103883470312633000813690645348704263344065444659962695864221364404036896521457972404623768821961537460400109566773777538411077399738939234474254558081281040525869243951934519769973631783772582103900728272389841585659280862206834861910161345326348814912050537380010236025883624489427580432399082062386443782798656973866223813146993994013735899745381727562138055903075671030542495795911155070477426582019082142212233284963288408597346912595947561551626226806713152440509892086062188527126441328154127525684739511721942212968771756531519468674675634344568552844530878773836027066067050157414631729440967185494620571681306531023561776017579110621143910924265389278647522328188529459519945568833297036760364852379394101175639677620446442576686768775867207048906549963159944481302803203637061832300364724222460885940515059942110654490233336688336940914009215956086304010295291012217656741189401034854149408006588628120037664922002294828554872918299348155036468158398675207343261274635520220078618856535853945996822903735388265448966591564493318044186411413643272084759764455146005362448462079831267609537021806923693389553613582424382117587220200563326692241544928955491767432181258349202583751801536495847378671895606140433075133288366796540536194228796704312150239527519819892201257862080060005110212205093664062566418540929885437196308135788364650657056223730284647497695394676523845985452354487673235228051322347123527113131055933270019611493705520617926509226580321371772246429708623481979440396961838900900558696397571395425103077895766203099687967652779532719955084315563096761920110558508516973050925769902463155911574513324606987316132757339847268599316362409069484076593774088565129003910433108447202739497790953614313095716969992974186153262954415415302780263969305640194475185409591895856176725598493934663886728529910677115202843569296002733027843745016613760953453376644427600644008333240419952115838146810984838431308913852175374129091805321362095904449367158839979018205138363974344047741423620356534903880591450425195584171943536607379664893812020425696232980592383399233078302569250243144280902906357732868182280890279090094464802246886141902542218416608711110193732532907275792902083534099731012701849927964408882441353560876595516103402160955198521193319028383530259317094292014509158987556030708737915716650216951938073310193033053466594896467505556867401890684695632497820557889754444087919917192934662926353328747339437918067323564762512767948327857727860384543153731412288191663082123190852844625700215058042228840355152054918538728123374586579232546155216301004458768054515238036282237321471203181026107003358292180546315713507302203260963429460228747627506740132767938274687629654177083070473284656165837934726708986383242270778476228403505260860767034216258319664266059171544539320673960782447042907333354227425465226761100381884450956395920946080271309092368809621696669490052095559586839900362423853472466572753517146880191766502407566685495704516863191893390081401760205334872597625509382352136954281160792081350601827461176974777437949175970025498262443374560117312640779129892508643450634608781689620900090023741012026625124659776670509082731244760206228507611147249311003092362599188301267730370631133846867696248595303103457032293168271125485074413515363920300619200089296033422587061987985125137303896418206738420148076766577308111176556749800878554840667324248047373288022926824666133388460521885216333253197649899896237420701503353721590774996590961415300937778691803173957855421444734216388266425580629619525551615079317709229273986452017761091370136407411943594077344075000975391451388480080158345588188630536715300743188412944150449264445114197357223906476512599211394619334105342650637256874345102884692484751394367151967372060188458491637237485179362197971092458554733388673477973250014281600880295452904567838815617432388623835056759474183378048002548930660797973372117714072070720298892536105163242090591178891364216098543296270381708405816433382156450343130463854250119484205183776029399936494144626999513593079188548141120035422652425711975309280379379276320449955095545147249399495282951889771429965048978692851272821115332928387642373020141632371244548450572220765856339932297749274917652482432718904392664283565069962356682908567189606240219256199723857392850840923252033291709268431391468906142869407500135677898290975136030301917917851735304339199817593875946206955922247484064920447202834380106411964045649607373147921232986112705056698483034236261416765736165822311939279977427177286778970665792940981947532723340185010082271094234142503157021926663479547461667072827805530745781499124674190412383067024288588228233103460767865701907191107478834010448190486888750831825342485766884971357369159010551433462549009653655375212426034709930590049329556690704856109506684918532038621762930081653460511503589606408444735623889386120602576255714378820660906798033238878205303218160392019932164093443093525934759319417345874250470858721016134176497244424244097369683498605203394702051636474092990087878703164507984320614277363199042189020136022661385084230011565309303607845285884062190869886771646598321489724155154166236390687702288228261555202252555147634983694616705573938650890836871998574935891623976997260172481166643870321429549906481843363796910721764614702968999422675467775323839867477910368382192283070828116860221175587546100371560250233328278582990520806048362974338612801672700297294399133715060744031802036430669008012799616070307359980085299730433377252472198865166726293001751119625123570493973451017514885191676402073212482273520373316731594346617637672952685395548303116198937199528427798120867357666762223172951951240879949965073437636230258512334730519617771762581497325657273217868399813992211608177773230924217350951334512767291684731973714227912720499332097441052059023838310445523774039585421963008260921720044104986660637891661711161025835183885647528677037907201474206912118052897171045731856919892008309013202506807223991260862288488229173159700957283269709597499864561118986853683503689568022061214920156000532995379305827805324968891045792286653635634538045362431840559118178593517393656777251711291905339469282223097652268846919359682320174474152094820110220073256088788131952358430192886060472534919425667571848714574182242701001441825727324047598350963169188969676748679543293038478610569643205293248217166905448877219823269974030021231914291589303061630931360893225548081856376980844961724643632437413258299154614484842044542701399653936544386761896725220164784786239004025459175320406126879690620390737849818755038137558636642960475259268757861275080626833936421766265050001092782139138958235580250411526134412240934692682130483308224379063062954616141206897720805700927416156235484113810928850191642661651324573503869432775347765171841117686091883814712079023535389600803610566800615251321230680672001824683041496498371608327410244231137914213258563784499761291085506162986127543420043815291770604915421056474945646548225566254101128464466748580299300760345836354648272388068145408549810978053977838866376375818790696360979067714708728859273897966904544881916206558986122097316082212800084626317884194120621114956029915879457421957073244874224226975386896110256620801253058894464953631006592112277301038670471367009498885881033535295641304899600653217459895200495738947271159497204888653263904749496144442391709515250456120814793002146245203357221484797911978086808918792199793134508241742668531177314446082287713410559391418462653253842950106082522365534545443250339442677961778157234730916252194356948188005144087663509352292913588841819221717496075889722299714767562212046218229517981819996451585488527609488632311142914075868791323027555035603080396048597532907129232055458994502842751969472353530056728607416132299606121635959313793697760126010210673504148641412216533392115580035773164230397701975002284294633643356762787345139812872036928218790583450817283672407208061673205721555332471876766410024404232684177782499806277659691382750992486345855690652594574260758776232989420735298280096519917083905163883757760715688324564529215754212296124585448968212021485115874980652145951176818333041419693631896928752551082170385785819317781517336957411642865655190302320181920127117781495213599923359388847879749360230605838539326982034682167613573490715894845698323340290787213447753691283325988152512690968646205254960771996314631854259210026578540873040367617479316680986433316799911887645907536819579092275523553324074070848923368673474373539016971090378524709588367443625423156737716822198671368010276470708069559000307173119874986099840625876758187702098476263950992896584100702565536670081734247281649275880348893653197997142141169259523659255322366561897946938772852328628812239604525781569331362521054606461765283096017731857475461113959722684005726625291249995380113483557677383885116176491114122351751982468470525407196279219643231975926557591657281497515734290001160137327419273371942824680372401627158125538556231401894869271046730124293884600394116076408474210646119728468815087666370351853337282454260282463800086047533150409556489613552220645677562897806173090965888525392557964637884986681508091725203523277422503981883547826439618105744599756127404342960726217543285112226267020522318421719645280402633124946062254404253322454289789952394503534451707194938112245026998985342365287080204070249732632750649461591491403306169083917235569950617387725798254758639158779604223210334298602208073231737481574591796939054251754900604321862521709459674757001752614550632479609198833609729934451593484693586347147650953433599981813724126365932332302227895881480485511726656358996716743252780541117776908847735847233447702210765403069566981424797900992205496983989448982735922819974973673308890168796261781855829350081396737543124052110086567053509453785820048602778076393130112833775656258373278167901782090234893059100818950161845002485677389439639745344737186307673594966813179748525350313277394228505372963963942166812932311220234799418663314505284250439309535330870958944608159346663080114173286468820382264554314688354915728321508219120117067948827370123606972507718498510388305332284701764408380173934416833910559388732326607255346591273134461197113115486612149596455150181829122190279177116638396961156041814271702598880846331033453867043411069449481264275290110753513746773478565598039158867317697646820093598099849546228478459184836244764659455750384988406156203202161140612205439419485982880216179120357094042203933640907798058660023907905352772611622224731843165865599795591113443699642688088009177243544872832896423551576614680373387407062793701831192582520705282375093356703102684802715501841077332751127637536648704923048167714131728882721967692522041972511968159670388603440316279918178512554377627206516740741825655236718926033392440725227998509387551723482701551599357663767430432773257364876466637635637625241080634833219658243166513873820196429859805353930242215141642614868563588010986088582550557681263674496994817750737260606298040335924093747029489169914710026693639163297682118564214317546977903402109352402586666450700584355563925257551694808413515374707411286895360944341030242964042958561254289067969472152292278889015474251370867092723508519014568177477638372682847923366576320166663248948164037245153011163723554919019266918129333746030630101236730198108663716390141090216827726883840169972022330008747097470124335645779357744031159129532880514953907051083667364242401218332601045171256869031040517454123468252700928951516682580182560727865678147818693573110384395046284503329370729306162980478635069719392662140393115984259210605570232562853143430993376041782063306113062614380517167055381169926135611976300006474593299031525767140941695424650055603599856846339319415762506401087517278811190214241483197459485069982904405739066940924273531649979428194659686603103320289041862770111505013631735115170727140020735361537521562367501960343356345572386902637922238660948202455645477935873470572370880956106307320505322753127298488617954874106782679223227272523287215028206446372982074829446080676283594348116468522529591084698221297144969096423452589364164212748636176146955506266915919872938274072684805748592896679876402662049128068186449358093485618205583301234743748517523933808211570913232263188019416612100181432556722710203416056371696786708778468971235722139906848810299040998192644246850677770299195223697288790793364870389280368527292721766072356742767155397077702432371944937558458818173073854333581249514362134415501966015581014784376495740389604234302794981577702503355185018420359237754576713682128604231919322398431948133715049214998857854559155355045415983556777236257615951055973474011181431038931819952675674591064495915111353260028415326976219969126984969315926001148670628624801655330110688587170311781580013158250891905765887256857578049656721565773784563115391698728571510254493825089534972743333321039054722669106477955444176304319737324693927212143231240159191215597753207162664417885260335271286985495611246409630238593730050810545787070388147584578183065060645895527518006406770462193270045832236935071303030868979164558206124192543942664778463531330188768499718582182858457062498491262650073421787430158248099478023419377849187208156862397797322689046823416031613781718584349014390075717177620185977951543305979444581590658474971064463640566643315950219047471983038127254613485165053468079039059658789439905230706317663530114605627550712237510781996027859048226201927917940925616994415464925235498743668315042125014769754419963673855317923435204800733029553223956954259263176300560260305837570307499550545753469581755367210561176157082735004440630293888187502148832988693863225887790167411823627243426114177308473280878047392056189999282722647737056585607784822253583028255958676020423347234964688340926240875058218211334165165686944315876049927064456900602446535279709772112348011341463312433546814006869229013935375605117886007828554508848202469224731550244596276494837995891103214497191866137157666950529385233072729741932122868166393159419191626429134794168879203316621052635815585043136663366608776613427024958897385577209322676152827860736009714548437963182338487793933748362178790214338291772347677926127236523813260762779700271736807010101268975268591718101315304521302007288125163478649580241640090817033259910349082758176217112904016650113469869875776168860714700722349160875593064959740421954267242214999647982473721760439108458313590757456386151881361836761270374777339395871816879653994593583270514252496930936601129881700950405781017769764603195662804583679117328504363151519460447454119025365413391411217938962964170337714364967832406295475872820357715399515590872100378015640064136633267437721993783646209032068127385206391380048088882222557333119689148764250846070052627447362973199368788320815528298821585532573993358130932154461608140641407744263396805686923314670295095651296808016626902902131316466698354770334938955482298618408213231868487740199280712480011436248087441805141481324549274691323140856006820017619411958101577025795109760657111769682424746234599205453218583462220615782979528753482080206738016864656698750061944874688009930429269595002692375765756706468719784370328971853641747721874879563454657579506457013025378872534592704317485080319714400193240145542563049972193905048903792739378143515186900020662762088524913641415411106057650796997462756337515636594049102757854579449784858753386761357027697112267826719738949913368327158136154351152310845913240180073250051681840340590833261693388306168169444335129315046507301690863597877116572193288498547082728510149392948623430176928326594101410121373031105959290052154163909923531706670789655149098330092193692952143625755530492060441552173412698585540448626027783130169765519923869730945575820301150270471196229555878551579194218764187300398914722417926624801308090013111037701701104556849510572095598284671291175486325550077707273284490491085054267931020417585419448144923408880829888138086569811773051858742574951115868776664803322501007661902187069473771313393327853864859004725538068288886168709576870127458516337336958757860028231919031678773126145286629527938513151015948470586612519785473669036682147742198540348265929721335035897130398249781202528601657836688726773129667312219838110878400296230960106256769158126957248016385218030825024020073026718382433017453702455872528012661065595179970804483401883582000348094825578597681836767565387201292591718404356074922763481731002275778221344308374066025291066777074881547435299402326347452165495749334567725388247799933202402656792516965235225280694451088738790381797924307144284898540170544846240954560253201775968770327506206303634627121799611438536657369278586908954623325460478412991056009514048891666693866250113489283946385707276046254941355288771653990426370655506949610237553156094451955711309281421907179017598157241473488558215355571583382307244392902391916556940669043421054232984626635088379700576772720602661898630515071999606939715638393855857338560306197138767022628543013365099211502776605004085662328993419859153292286586220968187843875390025194894793498787181262273466766943013002645879918584143036424617843495063966983586812286516512381237941350520611723559130275185566826155090052081031882533563941124540111595336156738136021849704988843903824802934008447025093375856626289814597902314481321745713736166411704744712400735287510238356276297484153898611702841745544223923740962459931076771687977565274437614031339273894994377884924901718534058768206757061431305521732971176822070030407509479492442798690734023257396618543472782893342334005432693617575217318653831799957377972179288823990178686026511342995908717786871956249717465207936213377834932584682671437731334520741130064148706564281940398058691986548811775264690924442782286623174025894966795619688180776097151203460920861419415251260603056997884651246583805523542668993054938187464848685449008996684200913748855700877945938864555070448060599594737466943632684152379991915941197313303523922806751719244243713511565666454628429128125577170034822931462325781656083701135244761659476414999313838726066138214462164184151950510378925809460961956750804638622602801833668459074122415966352714087786618520760030964865347559883349620111319738330059212075816952683025752472615920761736189179873102601060208448305082240776936322814964627157992090044362554979514932709680143926659113492183953972229944943285324382873068343731300466725465633639516338185794858260261728745765149446750195711416953970643176857293477163340655388172293191581553681927557565402660253106804840993878845412447443789371735212333860043204933639485382792642112126472507282040029415250478557129548974404617047876964288452702836005397884779105743722350825671497161499675513018189562621102420305271063810738592536079946880419786382041423711791991706923600338728153023039084776279614917057684402189596101514519033637275197668867941378997673593026751975808750123719909348758784466406490849848989680150404110331094375224553396420188987063234901090968108264352814159091461712408977126531458527096839781566433694479126463939231194525796137070655485287868528314202587527652346425797013197457880407929664277729763950007401216031068553913271318856384924489977864685960614053394774014472401692391786434863680904670017586704781269521678812885819407383687209343528605437033714045507192863376752120298851594397548862526163164507102693069876887753767108429710466296572272008966653281014071245880471969219771522227628903050267507159257945854618686417916155574952623440016423941159095428973580072189263581528988243585496660405885672397685946734472092364573013228840370952570973547901037358510291982856256514032086720991032112191849024395414523949522096210810993172316325540152924958595548293207283342427541644737863421792352788433401608474883010441645140744388973737830176851609388327218901449604848206901445261581517728667917449858321236537205361130752287752243496559072391472952765125221347243132808640990856272480020903465804128489211156742535087529924491412846208549815597980613753570940709313640513851992551919036171899228824075545912866238943579045057887639226487418316790940447026524814501222366186926434977620494516204564160147067130193694927793571667641922309728273617411257758752351430989979108360219050168890945987122556007155228606368695380097711950404064258966347926944101504846076337407754662458373916248502470424738159415234700127826651963026906617027452226311236124470743356773947410347206236907063609702878491273287185162869255610825783945387441375593601101852056331984551318617026257969057615447334645801477551217854387714878793263561172715522941765169637173782293349348149131809181077514163924200145234746742372717280040205151757514382148528868966304151948684005079172420080178290209202520119405576324630641489122697201041906608835394238379558033638747945449357890850058592551915089916206297055804591652881162445492406905895574365237562880997510416150574745396348351134573970445591957180106663889788617789382993153932442513625641463707162693626244472787803266073564303185569125355028751508819555637172192404733110575876987796228239765024588173505365573897941028245403327358587075987713235445075883352722488557951900514334893645780440026451412085408224272072961979718445256419133386028051283882823582743938382357066887275389587157094386958212980948926175462410170058961695222833220369103068307762386037667447696076394680702348146871424726319647913295520081908516229540607280174399635499532021845909308410632961458096786847165750570937570713522434660516438808297013213346910112243342741108632087737729912595722612051292365303717030552727594639977344662437651413789154881291054073218232827655023103731437946600751716542379426733376047401994492427523528627846198893185718761202991336348346022629425743894373003531137868566837117088148271131569136768500524368636358748513006438839922630133767486228913096570201712058174301433557068833929753516389676753879402234589833701129861708560189956770151218232930713266201949231195840819930538413442068568258661649143219410575014404369847652591052987747032139780511292893195476007717205935817817922796407040149204986970656764223428172528963091724550193749339298199501609529470673122865510330797031531574153880271679669701589442289280919084618038594231760244978128130199389028833890061455308743741525345196223709918918355325685828784356591695156885754476172642180445368917220804554735721805191990096246253647240002135765850606009649732925233269026063275523186369551813419794843091083238124036451805249919435676626045143738899071666230432425151998576600100554142042117400482422528515412232317295871890833631787028143488674184061778152032646301861439065332253381746134367773929635299257622989188846679896017684421896243807923184042945125741950856785214050889438180594948347324995334699406722444148311721220567783316623260120369070983969132518120740608359303948729040336896960395701446859302780295258723470005846167797464171222549271889238857972126850828993913689183598508152133650796482390731131474600692682045675243028972810753527146729495758963974653643779655460939621448962762169124288665775885494955757178639752423605816886841677337448161311022930988047381916607563657617524306859818576991521671864518439766034397714204425874475539715052959868275454049419362368346634485942204319583814231277266642731689042437514268369216594917272701046326402173047993017990959959568259989138333493416872955352938810082671425095541295460562612249203534192505676659284573102652470086696738733612746849827410870842830996170612589259718129683875317284784912468840471191037132091792255181695216922520338035305188215982818931579789752697033205182269300223552067625935374122853204022180560675257736509210617364240580195171055131465147614451190307825279113534987381279991009427610502408764977008987496773886552186016778782252611883914092908966174211891456454588922288538278404150562288729519842273105887807150599437123007256895462562434127643552430353042992454046234732248922946383481650953596279187687762246990450382873438350837230495448823073448858750281492522547112304692692432772801398079572690148668372738535178045560854983581560275043809602213581153140350763781096802529648078897647692676016651479252449384308688506337228036913239935701319643698584669434529707372619708080883027542270749935476572771486775472272600808096762623644406946242935179345537276908378844550041548063587951535290980162200566564005711183515106219788882675178176065333975857807149255079592624084195142037280482918944877241986017057110437859004220575355904648001316358687916016055419554636704334523273569700459518949071286188835981034351152051489690133156423117150213867631535592160349264438177864269504407987569715015969596351494850865700194810417852148284146650699825891515572670858288187169121782563342661810226271883098823482673650469482062377952595683901028049192221637383730715703965235365754999315555284663274414887289653770029612359136687029030278901875380752530763164568732254590047836522626374674978291004243012959153893516566960199126522881940042308236791292771800154324684367276064061175625180224124419891849878347636995867767950249829913414472954090162019340928407757593657337168802236738987165556589553700328988071038638959361184069279759238638791242409771737518873432144634147844886791629330825897538078552124916242017486210292974765322438887410576145740233072735362710584717232119845881538601535054647985969528711249983400323288982012679170667879706769756068258516763678703942667899787950290406715910615994772249587786862678454737727984404751427003405490578728523533978666906881675216186498193591188525629781075880406786740268019540538809439501113200714525553900016797445486393633787779207120629149398200524120135099931983341627066891564647005820629818761833549814626477731601221670377060525150165623399424180413279162486001953214528032280687264288814691576986890614051476246819198260610635905704144112136748167326073875937046931042770317512036530881554500279093585292093586643386854255520402630462307465154146758864932927479888490057407049482088147143987950435171633092270184829633470530035846374910315193462194984965840147876313241741880815849827661138466833183700844988341951344726588730038382566970279456500671184750119755903077940887410453771391445210114846514890349688146755102812335742067042973853118816308295989541879719222177915164338530168833538912334259503773255032698000436003273781857681932157967647964279119582067367756373168650611503660621441048037650980512104028329909149042884999919271279824920454996361153616451149913688378672880280035672830015296730010065810351360387484885154105873440507922870864086220432492061646472961892770229551498578426764617991828803421895652611171207920828619428347772628139451950694002101108570807630807033805426898642627398597689580317212813997415618844023697193117287696356173706067228315630968646741401742831410632612325673834485633008137785383503413524305391785794581246585693307304010040549534284611855056378156698868071514649661061945492643211663640284302451406896739653884238793626667230276112564178153718860504719933207510196229149930844441682779922058411401599496047287879007733190113339831395505898995082228319787779179916099388727167570774741887743107220748578024896624772177995624395560438926543455034589242697609619685159634451191610041898149906854821186167276233530044358624476577398854947173986560219066823911224961281048979181081391671302660806465596019281158824862148711526725821001422590610777764983915765938895011252195311169227157468927182935557635918084745964627422316324041261482752851749395511497993848392801084989312106607441293559064129307944477284401848013176887763540937312250308952424803593248280598934651959714275958883601465903855524114031661342591633103689317350988051078124774057030331056065059921578645529585836444368090877530500229944608631431827798673453178963464808426356003648407938186524523729864783248736476354688416865994676397054750374202397132848105526742682677864607478285404657607273849514158340711667321238751162509030096934510135489937201240890743328569624072831742744919600025442791780722770811201991321099203670385242835224181312917949477862656841536610208416573081773531938968839570842094699653209343578811245339827012877606943889948097943362107277636575910823787420265051666392685923951722613242841353435799660515001436556643758490333548070695573672889628167458354089790976806876830134571092170372341768201025449952465109499739048858956886979009790632532181632566299939483494819962763507015833043581698745576980052712195428235079850876673062433629570392491351246600241101461360264953691546818158217663451572250401551703432572581524721410736309511710883308405913593959071412200944270039216608483610289610942630808937930412720945070126606624451899334593422171503590239625705879397559436808376446030421599454301229902128139487974473991286934029308993999977052398563721307964925585448250707713308034715390466946227198322818544901156351371285502630586085028534250898702163267046925803512129101955713056413200764252956652083487157142077919122758190472579726106966504712100901799256476429442822051815795252377355836202769185059303793593181669736623014640290238234990953614366175108878058238554100378674993977448181019485454674356628087374701709774232966812372170645144665609557988674311260344221926674736962262367001117589175465094083984749336778967043322945573280624770676886964540429253147781981094360456900864736604183420278110905428777921134184902203516025417559085273902304258758106930828315785329562377165821033965713998043798168340670545432520391367807309861780788314029425938093451768310252936326925234232974633190821513772523761432692555539880748938202456670651734139909514416121210101109106896612472453271329582246859109268022734868438653445071405178906361190270467301067822930846471322349365858060794879262074179719988092603341270486062354565688792017554797847297633070480022532892197395578661660441571360064101636446673728780788897348365456982465194315707647105354031762125681594925133774168746292097271872578449778293282340107826843100575847752263674274323361480829117173113366034075752332699095115047235671632341999354601036176498893269213507891691420086874742006693528748396341410925107288077510294705392559005622667707621940199600819116825232967311713139397610249473674612140774943389424231880484756592461970233149887959230495175778543958218784017059803911442087546783076925877734662362414868514783776708188682504912241765600596741210221953644967857000817506731731706011934783357883263747232368635190550974207077299957302761156654378700429313076633136252540518311406566019351204245077079144350321165809096289026958107359501429248285404778606563302279705125117864709530809990879657883711662956900021322048452867693271015120177878792193404143768004400944234536020235620216561374564660538363496794650625192087514061103025378731904153254605045708638908736097416158707739610705599990051885942978492328254796122796530329290514359273027806495543434132930745016610279008252658687961029897778851345033119849968025137859909177572344494938348660021465469626834938174337781648753395341699857133954945377836345511485313095102907319408190241382298580705185839853805063330043534896826452277999100947091061158228076175077208052979531963723444313140896769326180031620275855430532153564787612127082319004970005745977442204291469710382741260544613421301648568706870334106803978922468471023152510942420806020030108490249134938124728372664915295406898444859554891488860878243322206256838294388281454013107973167093682963032143103371550636020672150078475148990905660507260268408094596180588428309912366879307388259204463883690066384007752736611124410254509407211718630924517064467704931614592538745093843312390074252508618571448088140221039878689115026666567234593802109827088725655306015665837324374765834734756023007397794679987258643764474169558268179401350498436239037448424812955928355362394042128396822462640761408419740883170863556648534824970718416493685740159636150867049305826942855937604587498415434864705129673436679626190659895503022378335587102489057256694314081642446334577404444300727418926542003052668647384868034735764075831353695173746925982508947468983454674906373515614472290283391124750721503542238415405873791467748668360216239874112084473231640261650544227182565089910020315952525076466297247005095476025761094439990820183351734904730545298979687285620451908023709569021668733637946582256869319777520405934339841225862672518939199101738518703065191589963197887044464977053316256743889482918548813198252055571480764168871276079407444150222277636940777689224985180496759924118361631448458349123275070466624984245648316509774403577623266378690225531700791319429380038835210955480875680597370126380578508230481935991929053758094056806777992470777246188706376794010970082059834348112961698060419151852921149651760198517722736856115886659086354025569457489363704928559807483537000596925811662301734635393905579881084280330057717024879250284846291230162794267194312727430497785791668260417565604928868150255305959328551816257907128025500935399684037026400414601619492140036887528103979378991112076602421493903125996876418789619591140348252631959766301858846621107344254126627851152650262218353529033791328859313748976611989753802560390125928144591182822452790029993841058006512861723880399821226487405284157988078132462852946122677865158056327885183102408092531446405823723949553346888997542449526345882907530153039882583320189616720080137831689299788320536360424288918043959556338623061195069819477837503201048908058900675287498704465754415298783778518158985962016721909618828590595318844362508861765485023566860007455562714583707446710123137590823495681828313606886132597456653393216560201116525797995770489430807991898234954050131553156091863112201202431617921832085206631880275943382508412191198333042871665476184509920956184007967560705624937192497605047048047818083709261068632460633316332150033133332511283674296292201507491538127237541940070597882044172130572266873382261961483986109412139249548829619696528314994353294419162732192471938125792086016777308125927868973133108269862855344990432486721406716588014852662952632471463656242304001915394846576555343708906323780282947336436668765087704047655751005944793326207683430609009615469611406239993246279957807883755715967118302386433869270514275838303856882863437170641648865104628861202835485846157438042474661245441307611953629898312762581800184932568215630937352734273701305072203135165174308306537650488590984581851015660326871660996337186384501477994148038183449195007744508966381929900279589597105585840035047768072731073902813330335024019300531787929716147030792718413548661403235584885540913042742757752872772263979023810114810746198861100070016895293372690153601086811357022189216304695507193238540034504730957760679445115404317173732003358269491716376873866503502218684116204438676885571312468349364441425340064820779048777141573220718786721082847900504927428606435626445374983587256360781730341413448578035368952247032366624802749928676118495978830466232175302765113419791534744201853571183426084952863635758777668345211161543787528288116061510449322043413596638489423897427153579301190179720496897390770154023571719333010443749833309454105105027360667374907746811210398241910297677467663831339024321275187885259975318025534554109177583433205934829589147907708348684617159527131345046989067797357446347760770003881763058595802054180616967986957414766733953350969515675749530940164132911843681054654613882720858275984211216253555638654298898540676806361111408344478611201183241869942240686248472782173117452263199076820213004396189492301488103001644698557284483245021300593158268222164820249982128229635000780674581477738922590446988926027599011807341198145273033272034657673000112647265710070535508632870869315651692502700678265995495966465290061451739419203690499043748161119153568329205317560785674773339445739670727381998667081443278869959574566546924547164634166607841742119057486458803157285666233258029273510033204928725327347452978891184122696460348866535563572949842029003253051804772097150644429548061936406667688472912328729879018114897706726249510243279886588085933351340781256739828905902924844822964981193184987839915355737947188972052044016699294532758282302937586201339131365360268300798385055592657868446873824810485326798485363040445226428827113313400428176341110484570686802375561755539685389507001725235065510451349526844914147526562920802051328695123075009546317352744263164254051429183174411403628042089154903058172340630578183784319657283306388522558148622826510779156815419320599149810359965036802593164283075909866022648319721232999812333982763162281540896037536346157384674709485081303342505319722392162960530936009924685069228770214893339837471308530124814289960746359018227411833969812378273219976447582289005822089338551540044483447940987426764173599426326942201186721758898932830067488036069072460280923751761506688977597170386740717197686788164788325467121717931583582379806684969332822221028338226908250161238313641736861375044157995334466218403741714084599278421483423978870771470511170824799892468191170529017475993102024967893447735758684574409997581687605086824813797811795381268463119347209788879758860619926136136539364785007692789237362508044358950046746814750161628645119692962024186996673198974629620272068192762249120605498231900651991060068017636233481276807392881054285421495476553784635893815511651615059595387384302301550185034856997733211621715094314721762866575674229328094285487108123732918864237306004480427530455254687530344959124666638008314532442014977005292408291040817491357087425392634795417252643114757174003816231302480551122636552677812620202898235782390955224386201343605624377627217835507827791975115832098156927914547448295869889316786512235460700540086864029326388536373345222083206110473668051016401783497558092109716559144608352037609038077493027613898278583682170212225116178331212398653624153607084092141131989729043468469524732815019816705689929486500739772202786969028362599438495355596296688283788644463581196330861258236689876385062218146737310441863887435714156464289641030958681032876462104405227208217452884397754898251000647660388357601492655733374625067549940748532537682271284057075226572687895361262864293551843950661739893996957658880625502962804886941222247355805792629256411758617441473004470707897423614261250653734338587393047647459042530589390090207443911040940222293147482482468437320991465409828333257594377089803992211407078379794491364264502151962327557386237393213938441695471596172106315336519727483165026667131470670969790266820355785403490496492864457746012112607054725964651768220351014828009650545809967432337525511808531533215918468720817603906240617404616746920871112834778114754525645395058479220476160072732986694328927887025785081848542957377636102250575936167176346614767394296678000035905644853375039740064295336378178579852844452903071541045416247665964230653083186799805954532484757413636846869841641534527798241127310170045003854192191111025962389729010264527068906988534450842078825324234071190036568076858494660570814825163667624260193145608346913352827500911690470797145122462049334249765480337643386241804855726494156809696292662748576643039365269527184789215017037331807474227796638855875155574323129884988018747181232083009745210820841524817661759055757588357310057822586473424647530279010104727733918498597200165035654636577447937134644951804677684824180297123503218876004866354353511414106013967185505287934402666441289651735639156119509536964215217776790500399871412794457154003433879935638325466316780225012544397059871743064210575111188378028553860597295435443607877834168563445412890359357544219340598677214361612389815436330539743544828054351310963868488115208222625640385372077221244205525383674941199546971657012680823212679568931051179957569234287405359433159584175915578055977626435415503682638515114220237658859847673324966961591216323040710390759380145927182221453558412892528729838173764829018339289255086873687887614346793365869609937361118949268908572012549128490009661407883514052459456226815278705624346478415785976246065771122384749241210494039184420248703113575610150935806591933645109571946680705826495301297530492469162235013772386411188720857457759117567618335774561996346101431630983348529574063528986194905806804035431287576495083857604120801219520328774800004561994795400230468807889598744467056574604724428160249770240765493491947692610059273469000673459333361852945770182213070368809018958632339540679344764860592511421017549381380029513666697893530784006444824900732317515277299490830773215269034744580191787130358817885077931817574747381883611942310439554874736210456756932415805633145813766988954323693364880718203306980562821117909391391188254927733548441250701253159390799659450373787757012626070694315247156625285303825058709478707809975731809136395904218263354672031467774620775403705527690324959065798022509376356719191559116561199050164618656708446249030467159810053993600560724316777180982925298640492469008765974649736335509145047823550097437587550763835221855572494961008684378431538186928023205593701386271561465133309086083523891865198780008030051302089136149773754497191838540474376267038149529646903130588134944390547746019230584368061078692582427056861248366548558894091816440580439187018325051336645125620583333176312275917266026769693466002817382979077305545986397952103347695673050967497698726811450641605325769694736788511140506431730591487853683637017329155508193157031166977324116919312651853344100906529835790306748472694910035420166987586248999222118460760803693650273034206849433912118887021592413268678201694955017153802409820407922176809344401968859875548551019740387495819745377867830434493592289173503725155375701741809563268675118801986087714142920644711632247779665244414510456538675806463389461336773838174664512734655753656534737441063095269612635980363402120029383399560248594435053222326258162582685025508879955885566669317282128207434173948643992406817848363893916533112731456114525022625250133772321897711325723836847593950592610468564090814121451064816717520044573902186365808937050323503536900214359511156955598866786138210388832363990828737070828639857413961958938921839483032550081715860322255662689767544043539485882132653651905700338274248224982358593766588674046241060221716046330818813518055188122411974790706569406361386421762661721412426642589229745131453075303448752955799535889124556903633829050690032678529669043425869385131823189288108493834226636288898394262875988596908454993852245690099995575506509410241485570399873184453690451600943363700518858501607358630397992525754689079947244228510480385428037235233347040738567535960292001011527160192500271073700085741473889331392605827572433279833913092704865612749718736477250924634873681842196061245585118772563319878388399783621112611714260372631720268137754958662197642381065060950390238202397741437516744465595322316661356278792966901695076693532282120517188284661133499121071286077341014814392158756781636929227313601456735499723969610330368623183328795974543485494406315225160792118779714055644141426181384077250437333361825674565818717520720612750843608744307936454025620235954173430692727566705528816893965508270949610156154928107983165620630177474212930297074195162592063455855177693782559503473114061280419557665224893239106379317887788414584913762354364777219941253100811993827320988203563104339952840360801441254718878240506563871324292109003348573701511581386362401893104348101086433664005209759426063014712612080401289442421358562220362616741483245405640942611032557661180137067447737683216854361225338357144114731481040151284495897120118452327019859868405323701374743536102082884228636847745312928232994147376623436131333418923510159396485215373414517581558729772166553011335094722213357659459227414948925469595892031752866523368792142170213845157627076713938246049056626659150283388080664558676738728877293177170000023443514857888078958013804710447647673140953312583538954054303146714545526165218955173000668327330189118191796917719146697887563354946082869122757600467922224778878854026823781484060617459586875025237837973682033369407499414919819525691767621006414841320201094374712256498582875083507072788067553623665155207353121537646503566256438312494506688819724004758969256266165629989367294377924035173430943879472751760507354430914044663339212012993867362155990829795605412541718885364465992522022230191017574583639361468965447275897098479360720981776369640349315334033776261691008429688434818988189363019848774199449141032032501568178243546239083989409704944724801021243074503049827807901406608869137268937464149992831514798229562719120504348522511600664494214200041673438194664826779117874913900928190464007002113751590224689740469271936855406381998262453833215593224660880911148737716468166893848092295271900291216590887871574530212745294955052108262181432883678072191563465091226259741947283337054173143541524769913765973238072546471400570749064212934045428163913237924208632414261316195471675572631599684286229968869039155463445643039512402751434636220329817067891924520902502994020750002688971454201449724371080194156609960563470876922823037125873401792258476044654226070456870662188273721917550309947621699831359218686921094459621778199527847177704719044294000089493484191275150053244472049633747293482878868966575529303369164316766069409874512144347907587085630957724581781894570116183518641534352322695400401004143331692634617912499388661736912201148661484682033609688369973404378929397822871828284541473964126149118419197715712873969221257160286207106876999292390512859130359011378791749234667614756597300478530457455038761771655381245258310479672569283670361515226623999267490659845203370263929659914046297048635105571807445019511970128718679112926922248244836199475962333788209117521440795542240873273547167357028388351244580422258635248178650517588859551826639847504633827372035344003773600822725521359024768370416294337754556966972367260599791107180534230856913032691649008971631549047357023898052416454853884364161791068059223956418431546121796239749534385024535464683434813870536207760910782140065915582906053500453908720837832147446836190977613848586335197214858364839501103550576109542198513935478058487423574749600729262095221359884546865704852253748652879447530094021220371610053975706437219938455185650855156554009246100984242822611052699286806535263311635141260340908958915655665853453827797227016283812298191263752113269922890131930363111463587080464089723467924530549897715770893447953502022366693594209412799200659835791131774588652044007761658948280589151794675378358035131560145916223442367729836023235626083091683915324932379028880895950939080865482686997981721035035703632751671698297208260303493460230729873600211173867269835573601970129490643976407401265022052413061317224055813858979772138583607956152129972893506049461637284595615098556209542037121690278080898214173182119563232636168784678940640344444694548662158503925224004804157383607608166268344964505372216475266256631978853746873105077425345977996364176932448398990836647381651841133862194415396373607701985590170572590489717698655328975327898550248461211999169715609609859334382404760847875517397339443896323247372067463997012819166896251461619407562342253451799662744294720830345195817361119761004410823099374472867625377141593362503377445704345935491873686248291780363102978785572219818917591041358425755022135095000071996547954618486281364971458214856693436556689222771129532087122268467353835536635437851376091488688511404689911054377427642378578764593029612735756132234042997778243748093572021259165111632663829073002411324795388169507969365673812702138730130349731032775623795087532965726674185742702528902784536784654471653911409236280092021974191868786589248642170077064414923528204089525401475487449367637684340126826439479493229492979420140090417586625191965965943808590783087511236756879062147288112948217374719397821161385793087069258708968050950481828641672516652044004792710621129058660520562390129897169063723224765466214076666201143851971898680953503164639505349499839564357464480737015825808307633497389094211780244879092465065681149283748388234249233940464253643976254385010578039284848360137072111274301765155437241060530097354128011549600636546831062757814609523097254707437351600519711453986727481458511313786272784257851032359348194532404575218307928073475095563940426267735363614885731233060126444761454785939886835596792312540061346476586521126424858742691652191744546517234245336399973365618753571542054463729268021384378487475612638179004372348993127414029566729480943250979373085666999062849464443002331708432336779652376796857430698274303499394756401521001060834018748078093698668586115955600131224993155657997544394025237561056236328438913796282809479526420397665728518557965244025050843418975216343345034740115382742148915878902215860774870198856157745123565196473914092705732433469645303537216597917991790968696597951744111922328807970251303311307807082775992954109961388103687145128952027558446933538815441779966044939330809636093636259604650081322627973312848063433364375095262626008076187132254302766171058659112170635883092169305060351383826529284159154299999597175076667123116405159650458085272518394875108271969447995127824976912885449785647427791289286594635938482148536581748985232433625211692056113057527541941875184875997499607408229888472066281481428145886500756588771423112621293763769603415650210324406204126182521589556993728103401246535656255181986668760875120560976167418636882903614130851371366294678350734868356561220801238946430791902719741159485292686690205155485426535127119804519049513868662867611485884322487721464496185075735852187692994052118338447162852762968651074193493486500014684195363467817280301916729618159554440780478890304865370615043835431086628469491690211551236416659824973345625495653950794371358149247458402525127442472536623291815589363654359067396071105571753272011275551157692210941633955945739172604711349762994197940426305005254872776101864995977140966878597618101733001779611588433001398311745943199141515015517691767155763985107658276692173914274606395960347155797664247776087052458252289673646496331208707825504195150500568012859191205888052288158995199907103971180564651936551992442686796688311060065023944606439469536828051995477780920308449326908879386024576048369667059855353147559119607609417122680720069840291735681928781165102309819317856949738582817146440832304282087799227844353631495956647726725004853724147028972571894907172577942032746679624136459915632968518547745279184538298622004180752281771309203764681114542700981168868455369724031359660954657178857190443574833398891523527636247598008193842099597325387066870100014137467005304432405384611271891342798331022840207810571849099942425561848635578995441678993597395385856763731117355699635078736568750749890529628781693152379954567888044434827116013788737096613884781895325478229421610516966472798661649159796328641692121671509136447439864318206531397528813399591439796808968620461136873824481591843989523810767916277844219780780102350741675374196085828442360971269091767127177355518342892363131539731226473811424322769171477245132028970465421455469485773183196644716202542654853777478143772457701035379908905150168715366607495038775971361870737621992669935113320582160223297375547374021650631025429757109669931812279359223120046461662096782106516139743415049215968528207097725030385547168793305778561074128856729106818596380289604961300137911236331346211447941500263509958585570795273844006924029032541967561517308717145957085751375730238807710498598263263969862299814604466003699869278112878227243448850064093820164035421204464369310966580379292584992231936707556408776330310348771193135116880856363433834470858888072187515439849840400938094544627591136181556267651847806361327673770127774683388463744162478286850601746114271294230265044535804093458743214242739811119172679710451420303227135279266639157096042751833487389854626271049755572967600363588245714274352185976939631934692428593534204724388610724857607140479555268754536593691511205606862192267039523150297695235996440482943370217860179949684068762316389794726830106995018102888820014584818462487981884751719304004564537782911048935694513825806895596146475171976676369085405823339281708114246166159701457167343601483854610279907058796532888305025926356574112350615186829689635944242693685317042167493250847346394103269970004494690029675524048773011102326860398751934753296957908826489933565021375051876580015296480265481726432736098325635743148097704939109735716606541605846078441290639602928481352557625197136072568608522697206110757137064636684285107171691597123438621189315649790143432271922122584056154765991999904062259005524208802176488689686816508169175123934729541113778501719087685503244624088254189475168737452973509937538783408216457539871229818866827219850879645423273897808592150315385723448972136131947654044805086591972882617904615167512857372184625220508883811325799772184203308873983192103737202775615847637574547588833163791739425347635454749976759943107040278963362190326049958014440897290931425561976857163250498830601857100765745713818166725308376885858645054456169238409217006805566088132934440598265982589746521964098866241437312655236902805705561694278793851790392308188375732606018300746519744795442548044792006390507346754345934944438010866831895474619804568223544123747877371065280241568050406353392743940894295226391435844169007106784394043827161423342080375942281595594433573653801351158779014806860242857478196358169113397580236180785283345545245919352073181679956237533609801512612652791254932554995899922651837722276977386754379881403641859832693004279454034122783441874348218286640538560624117843347730500790823229595255532471610990127679882284035074071633105673101391284584968566638996594789736192828423418692141292001388310416180825379378965122308778469043254597220420031863032930156655600795539457748567060673201649709975268376877735007459377020568418312032858219507429657991643043825971512964416785758458957959506256209662405462437553106262891609180839496383236208380098516537179191325679772585673475306459814082922939686794356444293034077188522189456114420203757106685572320863156152811595025805620161642576369457116552362192242558977297938908495547832797060082276101706163544220217581552545050639980578655794633850549761938564187188017404483412096396850401272522908840950746538041690528650818378878455283784431911668459946823168165730686088117537559456678678175767746457264161033803686695594491401261599801595998800363033365257756500431784589542719405834771736275857301616818919024963544779618969749631678993280746694020192430833818122163689579867042393977467779124765735708071959738323281043461072573686529550825286874048096922638733296574485024053219478725303857750467714361231096881560147302217150017376621926249762080156045888444927381899210937587590630229883443481361389424896781394020943474456307389669680701813644614645453403440070559166013598733176434764789506273062984110788420947106702801683827158932536585684486156312510788030420802247441943345813364001671861204291787820049341058180259909507509061787603451343509281956923900692091059812535842792592527175121811222703907389060826354057180815565036825421309701307599273986015289574934528404437942776814914431726808243949900522319222349955608637517675526421732294649636554557637423026560916887780020918575881505232758366200583366719923923879022005204807094173359215511367884402943232510475691441307441829847967401960098867696242815295715016320425745016492278550640686924597689639916530188751482615041495309332298589534073916645648363944742689098046029117415722591630541910362516369388820458287974018033492083170572093449040216451588132391075616029828043717863621815546657713216119015012499363101010816375876175076765093092002212480983396529317329007784669532651811080236295501634372962699646614162525560209536736271130211360955925437399624848852850461806928731952980815172218743578832441059781370501301525915259286083781468446000701184683046543840726775969029347812405827794737256791022623136088862903140988707751095895694704370628931176473886728721324045346963758186914083642493210645286210343270691303570030700702061891207686651876357609826214401299126192405992192835387202845542887247824064606449576323694778286739447350401011646091326152761104538624956169882603694789381466115867982368773442830823894479215663832443684909932159706685137775460184264001744712318622261948914111345939213953790116029191141352305808320777153312184931992503124381160430918547390063240019004022414272493163617434695235107003943058291400844105194269206041125729984862493609304021054457671553706668473512114853090068443251354082642200699120521826998180785018622667973636033412644520966543172143365879585781377629000120535658568988450853386813360250993192399676497522628473818904695526926811602494632939563653493520103580186105152386986789908565530358618840799348579998242345662119280393110696985825665893283359741359408951197453568704247339956831064197685027708065922545495539451095111613124284315985951225233048818377040075495074428865646200621262511104214840841873245232030469209602879131981442212016432851357247002318220083155225255897828838994430231176677295831129117891983791435110511984771009997619450388412761832182613902199290626891338956465796513267864139110537710000264186686904308375982116903376128920657652827118479965877692679308950172776553329844472364229973562434488149271875253858092944319324526639994077786890690103908133138683098046667092324332248316249385580348401122138652250385288339914235708703328470706522966196388854514949175396220597517546725847204910316136261089063676240784419942383130603497471022599872255096524307951668026400155456621394088014962319655101459521197250052620292161416496431538873191447107911193993244855459033805762348259429957418054684072405020231312846415845545986075365847585114961259525407474305930999474370360945670639297495488728630479984211091286335368988103621218297005616070783632338526338989138223212063969910905115603062893227274897632316724031290255485734210814997494249260732521209327315228112058973948934574195395054946888576369462268876591822645879627502491223296022836367675573617516687234937221826999512035006110146730173495784081685742778028444461462215417281706076553045511662254390678691257124700054208410065232756355396922720300592253589441839527163878835926390411164504674172457048276575011306304230045277531844584836183439113274803819171424398094923069991206901457295291438303874800369590672753997972561585521344357322470405284653743939230376240688312687119545526327356724782517336995447294785237299527714234940985843007926702291000873231853426723119119470189020915047866770024515845637698229774387619029916738139173244122649575669739408896783181876905262533862944427700032467029289656505800576978484019014691121996844432306725301737075585741596199265672538259045444524932224222213926989910242972043589042033062551360767817374664205997117434725987928261286608629810051399287014488303098698970399871969701467816567071474813882299150321216341033316615494701913586336812275043892235165803986439580269965339647467757258006875363303550176281318074407197315909196615752540726717200675293249087715460459838486576982383141835452898522650916394219407034749637081933513673870365256118687597481808895875652862847684709618189452547583614847592375439747527944377437726475564994655739771625508045506142026122661724084756868688131879015828697439165100577512214708916333893585521355648425958837360183180840464577064584586631369332594606210243977475758791002400811978861396002745566491698861052707930107129033564660144328855713748832663559119905285215007822950348600857897167044517650420841973392298499862888407064168249128203372395728789543232561085494033636964425225212942469157173158106433316196929736498136867798226576278808683802689992821614640898795151386390940156279642358553637680451537349650459714007346247827865935514030979467264258319223759331209542426247947774717554424652462357347493830891097797727522833688903696998144692083283952037767122207816754675509502883454693443788743683943533157087184970788101547167718378539179839389642793845981016475511247184290295128134104654594653615582271989824434886265629519026503095206249862166732872821545810596278456044183041900780839819013124943968649182701125875843748582481516250254610659739424497391037864122937864809647054894042367129869256868649331404907721492434279708507979539967915774885449183529039480393929590587000052544373775052551714899305618403459112847278412316024235130156900725564192694984359298577666656568267819907312889742625507264444517528866597642975659155776786274147515667109928157121935255361100093070786664728027864625594853184239665612671480097850407702931090469683594937572318619168532079329504170845870023392288947292986175454973192023791124977551241304986697461641230715443854231612772616313261198880478414538711919861752894114746125643446066720586339076555445930328709794353949374019809250107999818694163012890105392903345533888319071275319289105560728318275553408776804024081962266329089870811067366257344658600650573319554852004135050872939393747325462448529322833367821584342670841040203268097473500660247377396365375646357041534897958057949125445939310005913068674488925293104949050686863730916026301419661769643112252901305766216001273813310107944734520453531899618403310965201356482646358243407454219698582951836019815541473513569573200048369716267569244851351608007599414833808276372150229057378801162706228204577861684345452891977241970841482973910362050567292275953188503526969919391150618840296147256960429732760449537100515568593122472074115578951905224122317354992634861398466002829424125102703949737032479436065126518427382921242467577023474978358157083814784636641961130570529261781312078140318865431749928286180678996041886805368897041916271023224871117552686768355495559691620221411843770467098212481811267527202327588919606296406482893654904488451099312789315448934125861343249031916209726306620398604805323411924388143055051964479506039048092266321426002771584773564543496606082770529009807592364912803999788122344838057725823328467405070676844871672759196433871139264880061427480130590106158365932525688853027124050076893785037148969299824761590350612421937841564366810394238244626550588725024826192119686038597861705757866144455381146604557792824256918821161609767908856395468785485659715400650233541908651931046477593313424173271323449938325959379194363030402487584398892492640063418174708146193410717859359869614859893105122567626292900162077623379626316798563705587122968763257374955416673249681863184828070574760148582583967491745899371763081174769673757215528146614632152139908832982045335635288751121562234456397928330736229075948722153268311438291736245456284463321989598641289658282735588175736489521692693047074392838419665833476977469476626087131558206875516491922526129728506309371280050742682142675745062412424987550370520034903882668992692031335368031079998958629113775948668424863726408365834117858899047170334906945459315735733457516758425656143536416761859151056655431441966993365489039501108387951689667435350547015762517579803411372009749878991246815159830880589019132482172196743470133755522182702932893371153153288136011915198539933258576931172215062250540059973467376003248253078823657852708375216263441426703434711543084621063642771746956610480507791006208438128096164562127872791743525809854409609498699860214402281033172805502652472727463680277491474862492811968454392156094144609979253092791556786686874521533904514364634784605080170361397134401360739428395843706512433709908753947671836223027670391068638267101514809928798596739727406714108534978814099928214905804074550875696362802549703599120395920235241457049606613744336175383133025805650017041696408396528745965825475141481388446705276696192581624989134670840497783184070040423556358920648420598563014879316986790008976129062898482574304883403166233200387326355229482013142596028382090279104931511941772338659702932757552091183036693267464052096449815664194424414083056822134452581793926518530759746279148808173442228121787710264219803641221101186548023245727980906415642673387016900864060125931406774285376716985387408793370660472349682157577883060174783661181596776662492569975009656674013194090769759527764420223354797152913951063485405500934733130437595752514422134646031350771530087290546175384605769834518315595560382843795765604773620436350672063691042891004789694531680864563125523524050224040191091712167573318280461818769653525089975660167705366174458581869677491341648112675011858181414574621736977571091433360455296094182201253936896139218556490334331577625250491552687681914506861772774033107366610998632179923020627101066650088644627003473639076472160602703632146499480771788281593245051285855071087189424257032763973474035616834329175411391061614178483538654097396554533707814205604135667137759899017909720275064844149667687248521425182395959210347397857285246116175135799562407307767736050104712233663361175246185013633399572876725137284022790698329139079482726350084683197543968113664320601895698564887310483548574011807564685173137606039096771408859164631125139356951513597697111615074537376300067888475360358634494966546972917044776528767369013221338797992531636452604390335027298618570076396546587587311550340608105214445509614210081597955482315485423162463433582917198539186852373559072760381589036730036573252136259876811198145032851164311701643400927147849805785468052459445293901725367295913024131366400218060963032444179079846948968748367245307589464049627918120816343227427379284887118004222007083169518207994913946493451843237615620430332992840064940952646764037280310575990529909934227347463010813574449440816604086327309696098606603023755235356744597759295198448706388964025408029314829356079126611982200662964637037056156049606521451198180507828000250772271502430106691491564847299166109780446550376543036696581938471848468759287731406948740338921462344668785184134555600054297129877250174763699458375000184496836145413829695180692852173455950544061671814382152134587687213809487009501327360617742996583531532406047951746354358818339089511064637138191298323496303302317503015550953866995818167198893255930654062759441065736242276651288719712941835595615760048352010183469062373294834922343104522102794825809470077539461760698910458662907834922905169263021482900992356306270107320494107388212909224821918195501629365293550619911615654111598314039579205554963953294129847247069332765689890339669002557852823000138317147115800992390331182851017014378436869414478708567095779547365896525738975219579920536798722510072200753392044491817848679039607359079014075442767702321498715467603399202205738791685273569892233219803133774655370041115299899450200758799998141057699418525795234077993539111599259319848395682507524314310330082556127521444828147239885831712867955841286261055697846360603914668825674888787365984839597916156928527823465401898160642096061942277124670581208795863765811537255117257135901593424227617966038754367204783173259998600731710581852943142905882010286478837243344619899522430741951387585248201744613669264125999125107393703291884181902922234297249966997668918654105740597408252226125293389878271614125389832178271738243457667456368811019797285703608703247500618230577940324586129534478901967015183172671993913685132979501584259707188090329550143428554026643819744921443516392673412671349412119939091829611575431256806897853890020413172379516000702689538446995204068776826552907950869894508319557793586759900998549053177632534252471053997116579243707301207312039249660429073490275447206089652241259486473740756681936138232427036281030444986999073409038157092657003849441330535751549156375588678676187322453709322522645750816022257104650576617374843310273886038413244713910976942873032807768521575565205927559149585673073558854072810197471445621887751382803041431518313251936879012741395516284647467700171898339744483806262824063457790329031056004528570427076585289167478790384660663225225686532407327343559247211629352929577111239910647626336377056887348592771053498659066362570712205113630504028835456162383548479520830044758263339396708591576945690983818602439453340115715386132909122755664002550205550480023627236740895863499313332426236700723776330126166413644680994700425970977075040673575101655117749820611727132317135725249272929509631887755017227052472853312089768653390183244679657569381221224130654302944939924668908242145341586311726931450934542659168165506115919418089579511625964171770089296047330560414235074942096539209570810524344142265508836932525720603048827651019565854009797547125495018596331272731544973478670178218272551386495092804927396502226854581777196771786437190491427522641844243526255004886442459220404437102051833996522993138173812635315236440140721979536459002196051569280655543891508705885624798667504491228354218350028706433231906887699234771008787776662395270671897736594947623427327037458047377775300112850064344636083010048548765838370131516237487354837459734247057475842351301189299007792442917959001630001218410805124841743989580503770418880777345082541022426063497860860691793652011505657449219495155382998327656797782040464903847532162864622505010430458148854722838730090243440753118335373112729931767361726597268973355954112128570974998689176292799387973827642246337546012686695182711630036597516868361961989395961080900780335374247995863550836209622936717421232708688258639209405996866155692195539057486608983888101846752413828629927873211262929366522189420002178606373574182433920873615166815784700386081405590611425442086052613632852923489869876309273572889227959787465116305082076566443705333860292509174884971110265535101911104438924978542707375011879727077710575492046791654755260293716263669852407841750496611285203687171029876837742513337232301260256003181804000201053594559909600327010772787450841300997130546985908458740609977612982680145775200234404679446139942471755449016365494296785717531199075191896037249818588945636091859822760584079003636590900993242237338279199955929954165232261584006095877244847198296330391625610202710155418869983901090534199958898326527446192487233191142584186977365193403705015303251914174221724060074285146998875454767980037333829497294110720765358783989558713049819627940068403931538719702367049708641350121405643470569366958724978725425407875561281680898458311550891213594367460142167346799653434215595493841079125474473969976223077583650276677546258881520864901782469152189717805392314972629674977610908205675723161651616803589626632860724116877491400250623892298868476345923545047923300423946127174593531064381495356389266207017887034551675159556055275400742034419758832004584364597388493953597860058816211343546834126523124360065416860449098500585746534076941513265375959061075135294908363340864459900619438670952488805647213209901805531397242337547681826805981036650394160739512000744104995670036252465086216652845809602790033043129596328790299414537689640092066827808558753632118434671684860815246319016876667515481162514026579058786044745339681488748457672994768254022626707267228372007470631087821655626277399213343732254583223772247764091140798203178125553562376213501163065157042315655162573948820842579171666932495337336041285796171333067039149662517315245998197567824661417556936703716351241184844721112395364484904344020711861571934479209412802858625342066432142531350203130177250007435188419429405822458246374294385891479546391831573835385754586954946046400871365900691677186965786617906076729482748556616608082911907466211941840048948358667405704735315120944897045406230257285927509003703217257280143404139460693587973915925428519834254421634056148803682157311171833210376735462267607043757047991430364730797151876851240926796104348673921005439385597413467558953108762416424726630436029170868238863197527503488637162314227587075982211907825670231611723944526357908391221013441436644101383532217252980258622968475011790418035206978096088386344857699702976665416220073143511827265876921799785642094802914957734083367346289415724390409703353720897898280602508028178080305099378716033183752281673191605938472581747524684685804235081800965614646796966656730353588104112587546743765184078171350484549684881052064358777025774130190291635360621818843280546481928668352237035099022272031838961085382083496789132264532029070101187607635176173664625228889264169215448433655931583850585769389991120267004655369817511584709257309540617373872609928776219195815787510330023235381026884845926351352601840049354139709858252451558498430925743591208542571104044865299315816820132297511252251735037734064351614124767539839759774677467629802518844156949971460968938890573881982111859919923269372033080181122810263387514491569269996318691582816332576283976609339942188533216123820863768386648447230492526053431710503456117705056335629930336179653829397032041238408265943606996839614841114847794286874656116488785027996591727385880147006285139815249490012647002983416013831879788612350299694272942526578069006199731940163131036854496883983433848277004260085474168539787640316124662769697574881028539578100101019031584028162092021757690988327495019046160190861584496480368190888688081214682781250022301667796563075762854233079198315067548788444571531789322671824988257375746257462574026767627881086568687896632057300852631299939898550253686161654827806979159374135492500605370492373469077719542369700435398097876340027470766843498410497547584207735247894391025584591499281174396396774072561197123445374894769158576412043168275469496239995335478012287495890992170567080102780165132933107524754383497519167119429057520763001244096756999377147472062893756538207961681401252416736471224662912278190745284597502047584479295175793181762429343636039454636531422025733888691265065377318307010783246282352095411974746300743491505775298198587367209638642256799261706508880264653911847455797951248404557222138196746549075971529539069189721804832156770561112429036605703205529451189135915170999633112975334588336604976470153182011472104123069691421781948918638663237452335920512757204631014384759337706587746865321519292209163155928905981504374924216449885908200005648087801896418827524569086435338718213450048413028771737989915569127512174693296534373489191571376389786865602690584331383854763569990318980631573739857532203986092071410706673503853284312764282944057957458937719508222691423651260394407708862889999062609861907760363882638168409582909299127582019256833358578942524389166438848576220301893123231646956399568730846902729154456247898716061598320218867541782228136876567283223601945240473469572404385965830959308458928480991468869951872317768248430313259060236778563709789978643641707094038059102393599180857901188177187537949175739753615646784395642090831469966808878600707328074091296028161809700067180834621602911698272480722201477423325830767707337758527630111830647607019807735162959865161918901503736325905734253099730184705576827642708108476743444769061927594056601324220180124025771914918687367513163006546229988667876239489441320551270442935506748765949776483132810751058535293207988856022361450527177885518252414818024479765104250920769815337195785005696426279749385669338672348357783410295207306275009614477339430621888313465737492288864567331856666894200869899367015849486076115341559614779225126719838215197594242657157067838017988260661193456735191601912120365775484733354267902850028655911880469725945077826559406916444603520576752244762279748402650278058104517869204593731726388770779167344882136948955784307083442497445579434406587690511621937005001383437303097628369111797915378089556703457134143323754948514831995144801727936348796535756955646356514915709570325227148288385141370145815053482525453603025913840097533771481302012098898489065194291406518014515216473451282478262016116853601350643348368023138181133256251023432350677246945593249454507353539940908715339030301011732178294287939865302587195955337664788713926974169505916921530588694811617131744953467745264511332522000823325168575822522491941925316622056025785940989893412227879322786610665494206525397800105048230790819680228104811426116414998977360293678292879791214171213897002104104866160724799897051709520148268758616155142070894149718578041000868954131479355110831769851282808427937377997080384461345393003934335849250202869287118878555184643183895960341415568061112355695621081858426472363261790536606316296324465090518809575949401655008210673544024744778544493864185433704264292519773882339299080000202507721461749539940226028503387311786206880729815157006638959606218837282447559336544398433294876734671999011754757182843690085936595454790685734144782211754710673620460758191933980149227777858559841040272377249271288995629501681852744429045568241672214917590795004391307054681431708714679044640497285379970323603707706981152167001432497114310727200101105831616737845799020276131158845580183128674656292160547017021937203909587000777216746710859722980231893736596086464550828949234208134695870224237626322421071623819834351763777745885378916548980774728260281089290722225715325172035527798687720414718167729926025444533346059970209943677087975627558816320457245293621837336284930728668299966718810658950301187662752540693247289557052680388842998670359868500165252926604822506541519730068110705512723337400075367466180664793427404742330994962829870200891662746084961967905999634802120148036466093207989075017879475234023599762873966182894251887462223865869248387125182791451726019221839544656488595528962623813217937248962345781520512153897215441817973078921524065430035829381043304646788348758467946296836532007399064562146300409943608627352372978147121814605982294077268888004501605336465386196688678332424258968930198367480551591535879747405311828055006048772791386490779780499850655264890810159509547682092837820880447666441380400400846589693852030511666741768609960938615959277195644676519399011117152601545469780356533168361261761941036837353044878644019887622039558325241337570906990668369765753385989422816524357385226833569511291314074456121487773400120775375359098274664774791891364675808471557504629932921536991118072752223202699043315431394117196554619391362574118710641344693158328610556987367569860932575835944526675475187240070386685178650113808299352286253484963444655040095438638540143537463380599579118858754531184070728891660311678572673985386504413844982828909313700101534471213743726950561724418209068710358420542488282766625015680340126835289313018653563740809220796553278931424067687277446945597413504594675523029376779946788111580128407368734739553934151654181605266830552911708916115912157831152520244164806320430827237119848968403794224803222438356693105699306488293208633188037327252156747233047920693232836930386233583174645908829506846018981818742811881411512460379871782138766357433489565821038959614378918672816827823110061390995091255040398227971137638469410932414493956433792138908009705074925340985301642573681486201730196965094501982560316529347347144767597886542638476109744976133189136609726665918671935571621309110129083987406424161116536395739758905034142880748626212191652840295640638096270973152064050684499150718649915387328740283612028898209933198968371108347363803672519759378030073581470890131577767166404750080969706156503270449767556371355721737840751514037689496303177333819476652125790224491463563130445200557198236724436292163517543085360028706857026537739282958980123574323665673816786351781797805210120816737625536323639225595548174005747675284612500665088612245481474939994790516010425144761668888761487675160649655892114809487739200052432773763261692620420353722352940421932089365633723396946947037143164209909979917423692473919036133326189973232133717149111658598656551995867139515535523901509010013915654094610561652283228800376872397572882728847482570216754466246875541032551607787527917561966887717438015539927551443921891489950750024436155489403090174519050805678061815874972925450029740170277437917543680958839433585131450925692628901932707227025693056276441798398236162094429385880170573324049719511912244073916553294019038601679161248619208723914923659058271969656709259221124720088607100994345820077501738374352575107144585070242525275377117462600073640819484972556664369898851940984418593163103957894511680422847527225827224430467148211724104999865204856605574165385826564814567773255944087595679827209775127647455307852870100310764813456590150652705583250195096322429573631745378613439203022117461740316503802609248662036717573688239628266045577949349543404636237739524858272876562555414425062037315228342721650024474851665412609183789773249033724156684543785882040300712769477438969841846745760546574484162721272410928316294872743629490031500429559700967673094533531388686257051870488943975470074754891307957921071080852348981089902544417989775810762806668993459898575150929811309505437465904162992165021497600951360178005239346521835589113105433814064647125385258763619190384746270655426659321551107608545613063626336065634678345248025300565228994486464649630747662911967099170743603851984974019211471244220446111243890480059877755488978632927619510391600549512379127566320932383892720251372676684716263943239251871023526520466586630487139503929509796982297753425193530568334935832337282647530288304059414333152817128403404253159655921239115513027456641340198313723420983796308016686053620421062926544202021674763043511135386005978241329484529606783757184639079344940782842988640863368786169912760481680600945517889459615191647355667291549449754041876266013220387525321724352650292568710174120022872761169576912897792442570554916458155648796232769682090294832972023106695324866277953829021836678752666343780857068452796398928639031497488818109165276132609488801680220005512049986445621921772427843160645715450619796909979201007112356697674782682931175467593647562473346450242497557354343354126061969528075354359348456520286277806551456286049858984446948191263324254661692253280821225439794886167811593916198680674222058682295360928582221540289879632391042004343363970717071551046517040280202311239858825457825097305588625037061242831144207325351715620281377721231156704670766699309929969533655087828034515912558094105536035876379791407207933581663375880664120033919486631285742502742498769249312236690425534603285519267597956610371960761653064684560963695532713122600314953292329403257334455829551543628645014744029076841436106292941707927501037372102563911225633903137007089769996487575606515056737860083568868861757671049284077343765349745551600556210550061374809986235936571468920017640924734077713030667978761284133629086238387585416054352984861863815864912165852652193591717838056930007821907326611764363323121648956180079400485462041969062691951381203473416110248180968141956391566975167179343936075884843667010334711948644951205945438070381625203765997408587998018417152678471993138341818846916227685955988965572482180543788268816688007047085756220452248663157003934652030858414567800290866221078053140586863350702683133628947753351155721313513153941789375215501750971335946683113264023996354606076443726746556000957322944996894135601277268666631111290080701880658496196356823849591774911814629389992271506268594839403332823568923348129744734867623834581173853623346682624970843289397755056460910741317726103797051237774074568719267063444230429818069454116611676244472214360964818878673170369161663439275674401755480145707717230592341512699335266795958883756919831069341677765848464038103414089941789514605279163127600706111082675512195998392982609298031398869838650461885939413282878367897051971849609332137865010387968079381963388451080002171986910851781183654925338251139022578664447175164450130483699243802156786193594330902596641688222080898340930411490068610342565533704339982315912130242836826964753282103863805309265321711699916156608592015534412130010353595051466563124955584690742320023284948463029635425804315961770500091037126293043083692014170501957759504295903630280165423299819735424385319304876444654112766638025533611702083450247699158903058728538662891873835102023078552077410759422559026117999818450555731083215035525618724461829327099517091637018365244299319946691474087910606518932947412863390767805223596864903813085277383312108705951176480043698200747602526785248361394846372105422972337094697022531818684740329385738657170782645612608905341724917590210134242117480612952021396142676903743357769378730907248064796943959793549370429990234009464210727940672642552991914045204872404608074190708108838998148958440722886417627421849021594232323775118088692298335915836605479381442360767790793681531113584296785869762355552539187471417764196863269215990840334717148398820449013742004973458938080107114168312532413004876509226449356728454103301497188012770494208009964275829772553559866296065461936694411831240657183644587326636279229185585939673919456673894533247688797526095010376833917339152376485974619281587987656298572485929924715082212577726500476152337627187717540737752458026258594665278057916932519491922558861929766891915666057948094600860548944647325804027840514195650599467712865164021356847077979193775045246940375228524166107354272395587806256588098015366077977615415692936833971073042987630063999217254857787034571625562401330872572077848479071998346641690014463037078260740839060888056835735938044584507002481318720225792633135766586858743701064520617320288682706914202993403291691141072649870531833852973632389674922302776943896064903728366071813508260681111668214721119237355670917292427687979533573171753605887107675117584832574229663404773550384187387713293733225459592191022878247559792593835122434272370662504451530291459442112487146153056771683042696066416772107036224928697017036719751278393251151800587962369946473748199313938646471630223941168688987423370882086343735009681451353030623032360508600576810642532836374213176832584180772137367468989187322390841796046356778589128719673991792942903925140230124868213162939043651639251166833623394842081861100652911103777587866744500072171834032996610559104740107470451261806548770624337438738869310674127877534580385707385951887654404757525101712631805710134519012643157948140980954548198069195417432505779229119644790428570087883906641727702462070496391026725819589973748664422498365626057764092890661418012192516348205779260142279532370009365063093384533009349480895861823267461925413657526673777055860003847598957166156108642870366697870423015847590639969010390574550916892437219382236557536441730385937499212268109487973337094428864401223432110458897682315433246488912084332362585570673381645044620627489997622615223463955633529703684329847256879847930666667727502668428983117870658643679840376825556823311702399025773311463684973199068436539756077837423199075858468910205556891774214158940589683874932051001429153641977780956604746799282594146355162714405174993906632217452600076230070563074892456733536420162387719739962960839279720885933137138721113223578368512341298818255858709599070204752846711328144105244699729396610153051458997947989290093863516091540444203281250729725075118422999692008563505352461720832178540087449501466333563486905582634502516469170086559425015112603407628831809990686609302513790119294822407366563330833663974422542742292669350293021215845557106046051710566242180773935704231416044178307274488666840843724545684625760956584479825469116823938336648376113891730869898188083675089112278559594730679800340396404712450115720536297003109281530328241474231210939008712726028153521042063829732815741355124298318023799626868996543554287957247724260481810228193575963491115595384644877801520043619740871648679576749282643421709408133431414989025876071946662741734944279504548120477337013963823354321703226275703010159493709075279001998544972988669336924027394950085466507833450033931011482048972242160217694603628266458716256658753787269686489302042654911258370910210242383810339295158552922686951636472848576453355977299589963439426191802683479564989990959820905116725427283087789055007298131879043502011660861763215750283601613142700815032287557204067902537031342749382186316230745101683845262489824557157215756515181743102551610438475946861724614424092985575243009228439546749171335400061744798955965259473761191836874299528805673962952989772406116038539788238618522408114446729363246121398610424572548126763030955839168154340054138266456624605690274750821453332009006008618556075076727781330826872335484782739624732413610075882518704453663212759426511691175214579025873622364884536088633728093541803704887332577497925571847787842187672110205382321264501454662929001929169429207079366642169380896773902848728595628304353629822759719274039495666135168742202457507611276629584340297275450688012513030042672322076314519888711074859280637866356325109575087714997858911476858897598531439106591965903773592318784058018860570165105429042947848182793362986499052615723960334647666567350441417543193255228561898786085572696228279407036985086597958780469941270073467634278464445059426506370740842976398068083592039420542584359959043770992509450922160145161199565681345611383057311764501452101360258912315793149281908497322278152182869515364212257315960312491560826243744312049934242052755352854453149084945994230239637254840369991132379650907340735438778226181103199980114046485045918418255577733352483509942692980486891887767049982925589503528504974443892212943816510332028968286422307083646843538761241649600445335514860009300135075222957739419329449906935663306640198091643134077105682118638972164810830648936228643563742562532930881850484999569594347571828553501506198039131602017018499332479365955857374420101168843442461361977399180938994261440491578941176509663986639194445836425555974263773831106420668948895726452534947953316407995902194384124518362483918720715624645225142819020839904830711998881502737246257619835611391547905736040936074640242949645150531733551166109757414105984006287102954747099879295846296377956055405870122206045408257512315401820122176284363087746726172385543116270910876654694191917323397277773176064361801583828076119625706651944667845827192581624285510130059163331729736378617365888729436665171494874163316518363207036344060518528115751016085686566936811108349667675507714282076392110529878006277806959447085739927984276196079147064947482273303044008131700501882352100213141908485164916904455171433400338447782382173180571861805648089261960482319000484089810805992911683821319272554281148924510960073142046305348183849313535657435018389230549869161146591029446810789477388462857626622332599376550466801460821317607283423901832249180341731239738541310445589233625434711687454768318578764426609221868112713272916845346267328387834464713843311345535032209635033855322342327827508830069184423888416678080689211887731065146240958791467143103792371831561442958280211862780704562850096857669294203711333995345614491474022534877579144911252993868257217725226684935252239498100740865264958179225221305839632876538239811714917529596276068752078344838950944600546574018019013713423623885700321998477554278957866655376977630542709714615744517825172541182944525815901063688353963080277082680880194357591129824193816109105321009365958887760309962968975524717373483996673446544021936288814332421534636759827771358118929110759757682749254155800380483371915605055225274375687936723573540833317723488612058244200239120572705187517209873534389766639820595321908226106961758062166394806375194575641974747550939760554013649219435651302512872158759642850715768147317821296769575645456335658541181839142859683680851857449512012379836353079398253807113115294242131195718634823402064881470252383125823409917455636908128667039432631504307611247323028558809924228901778952554426438985004339710481783547660670379115963914496093231358892617331736712107616950130599590724306270201672935548387337430632475906478937607335295357945032160305348645899843555760990798556133275727593344631757700220063329032643998360084074485442177089822875804539824295786950660947654965159141066010985448276389242468555610735323139431235152019791127903347929752788780202760553720691050088413158624738173632961449826435564459640663907121254760329389597752770125946442770034068804760823301002097688336250743627529765173038590566648917118451487839351409638141559984307725947099819755441614590629486045618730745255812507810005285047998345731315390914113918703999527030915430598039996256973258449539070497002920865080454529333585975086185430906032317622138283895647257860317153605091218429780163691634309249098144949054712541816280110456311818129235587260709557585960899187894194520527657590642156516052000306697623527141081544939641773412467116675061995236863411558283166123251534814981509886970033660750453347055262466909658522008334329243142680175160240941590733506272697342914887392994733181200762499396005212490200675345315991939250157746609590585584446372289595103693098006968189315555588018489622107717652675583622406084705255583097837844886344324182314520264083828232579185409447130784624349125817362382563907048404865250796563160544477072743084506546043088746032883434107158982879964082225891430893012051983252288777268473217002324080702911416982215061462636532844188163030491413875474557947276135445546034721685831094334219075532020706395193067388928171818993765143293872465680869488643435895784698208295143488629629783160799665821169314236927683432969187031019907041201049560538556957704788610408727072147086413740611962360380855814149507525765002241269722033502322941500116652957943253809017230395335788080987243661833328371698452959802052712235774853624423523448968722860185867324119987637444260925860592143386535481567608861549803798285778095011750957861601234781625461395234055512788279700389278925823227725754737171881705399216204496905328244438137751033302568801948472064286477381693347133306082576151713931423926005104229487949033169862201506062019830753621609449953980498187310100251096394062879499134630598736736201621028500452331060382574778651526516183229409344764257603360442536623878394837667880087407528542134842539711533986303723908909327304099820902456285406426797962848468628182726365124825414465365373267031908365995330736875584380019745483811430064734519298105898791302194013213391684048731719164427383985387076392559992481947430258633569554866731853233687339270992479014571479002307287957231678462794168989651591067719907686291422132939514311164898899703263300076663425218204029026967676180374296333616246774994270731056304351830518495223733978676883993557849317625602445683328295192695744717529612931624968113417167454430146429507727965853858384375078476717091951937352609474358714734839789770709515023489656649687774285011466584370461000825732929807139578819354227468579591593373234653571510846685772671468239281202171092104452520142388865390784636011961358171531083513150927074603893097522574045602235183876531666130255526533918040261698710659656427776446988820030611806152395428231000255058067764333530653375271227758245553388742629981061324292754593870088712497096204074227390332269290702978851881185097146968762683961662976072906253426000654621755182404797701149026943183031325519585782435578858723738719135213640591494532879177508209406127115171202018746700038686205034618696880832879808200713557186420074472372109003006242946959257199286142621974463202646438287565521608409825497907485365544040951295003224075037297420373966098819871043490118104976295624069875847495305386358567001050145042511235100090854204140303239813852970790397768137338772320683431343431475925897777941609583558982584818110549979493570293618275980202320589796024248946425626034994279213377918046537363779702082513005069371448346541367107658686717942913596398835296709512957662048434669575979158327231845882303447121030458888074025005786643222166089727062672692809238816048270799258478539456636692180911367741706387102934970311816509235039601103595430172534816214523117888964103330367505771088554256011844024100750687747532354795333649933093222156621638344392299404982226980115168592057669706451529586117010577025804383613622105832859735187989048875977862391954190859359705138915894712583981186193837844097250681014939939857071946982571286466583667503272117819502014997817153967048861166243788234968473919144589301169159218240267442934178387535240895902992748405078858696279156323217178948176456106471269430504715957765366451952005645881955721761103603083213217483454934189688247317567518627908273694180404678765160288589381366383116629670977843460123876293194918542152051824401252144077521180880669278793176126691530004783766454515022448289698409256830319098907089822222817577872612432794530048767326443098006269371795630366992209926615384448304020076727249783306414317872068063455750892109009788612198425710457313677154065516057597440126713767742694849068337718594452033025027715923273155664776985579337689081461256615342985695793023543142232498035066212182390056242391871376507729522921127152469038908155026292636057831413624406904351783886856746698537930612930126957766491633457258378194701667172234019939339566203414976172154655993650095904292423166141206695095147719983266673205780957175949184262226232808245139863402540061854744473274503484337391672992730926263345899792112134370145363921377697242607366314295135964376060710409940516199968725023980558751378258367305966681698948822203695782591064743349742187531030036428174426906582222519176121854185118799604938668129887659642007698170224362967243104362137886170671498848134791352001201056484966896539619519743480161927899713001450716846312995539323350161425641086780191812582243625701683403641169980713871617326131390113893027407954843986703506773933942855113055284771573599527451159544053865486853845022568348926995336661580712437438027118839258493604007792471524271399169392603782400635395531916319924463966884805249181753439429222855482960798989938518790816348848058277299826568963641461864455236130827031763769968822387780230659111685744996228103270946377425523215547594447175041650522269647898689634015684339541697039395996992701310051071479571087650006623869226191554182800813711187884624796253948876199598395364439589415057686569677428151142473892730331197107710167511968613608575190743694469240321856016447957069311080735692858862518106536337397188578875454454527005306328928456783464442182213065073101230234331922212654877370324502580775286144361956486521059661438513937832265447530926909525533272712272974329396152391957271581965129652616992071793364774353495386505417327869430435957410550799534327222296325369237302300907701871245567778861068212361261176999693674969548675453029682003797693990725019802298483267155426718897778638540081385865082148101999613505623925874231755658301326106296232616056796840138455711851741424587204306004392383837408436668727942907214368906922808465877850773276913776763634497870861511405196109292255473616454847152958902898910980115906749593019525605665842404543068707178635157225060157154729507562783362072923598790111083166685708677153081138819980877633004307472278526576946849283336946929025335074403492339065509623636424812802811747120045364810749450484407635137652080497007666214348525514960114840335044425579597663478245360779700425148435832394723602626361673607278001689152037186662480344375890256495189864319463475876114641478595226705994839233460458198108551948079445875685810615470892436674033374820574670547158443481284341627108241049211876974533235162831503993783632744125735574694801753324487384280477360209894505393060673041441892678991721413013957156901474428237945128435508108070959962890578233862617084519380102791697364022979851044184443997543125628952081970368362659501054159406526121474127342725104397064077513836288978546459548852645313770444759626914565656614140732291377576703190102641990487009637458317253999895441517605496985127650358003728218016973727551753835015189741917127454819720778801553715026458744047912454191134372124494726284330851403013012533796781597786848486886714640312558049185923007048110260361856651670257754706105696707219747860137762629193154651245380426697933051212333759227818059303641162287927831331218411744222259256576485700151688586866357946532989896582370748490916538196357886288839592584831274545928341093014231665416188326943204819702106941593749974208770661934145048199738228095257616376405344922986713545736954352922895491603205782189571109974990436959486064101255332847397256586129545750860651413117591118441031484968369071275115140948645967131063309589505185935540975447600023730330898876342213119006572823786457541910226135903930419380391528796560122122877888998517500535333372935074106997671203422882531869798282768524498289245659106964576609582736123108721323768995687073272981264623002143731713756848817464921186626179526170606856297321575798555208557083156102453512518267537964707665574986761498940382593011885716104822157084190158303969734919409468516079480191498454209339544404476735669429981986581381215352731622020639485159331237076813083161853436990361656111739762980911280194556822536579189981571047166819356159829402184441391808772807698847557878354657198223895023279012804037133962375824098323870678157162742860086963001006881516057152946360619258866715993823909615748851264079526807132694165185347726867754461491114962027795911674172986848574806140101805783419969446300572892186978153943292615773583623683011843156523810800379289871232952914081255714245392810705499265490847075385737582120759164491209565439947882938162052289506003776892617346522156163666524486827140437948848000790189666061793190440117396749066860756342939875285283219928986239689380114468762176151755591479270429952034837138838921648484987446052846192243870767476540038443859188811871199083164514819319164248360862053488674561281103718151826154481210706572667704939713646633924268344056748421363531760013729734702262650746522706586251897378630858357433527937847739099114447455634610426088335191078903714943730625580617155016832403047262411725948765004605130990965748797580556019952065119134890621648406764686603774945276293997062621754878864064426146822559643083731072494706933505568597367572166857733016617639946026004786427285959726592920345390937676120326386420192216396158993396385654889322332680040887534588460320168391256212660930743348361746684091344199854148477464735460191626722220287121104268359238805253908382269726877515024446222435501556854395094285805344588425371150685436624194490755284867121972460535388091150124297063924054964435005913811687805883282674576147336567810556549456978727828507175678550625601604632514022056447895665461736183312232776978058838835203252308338634493516257072315367220075208221724385558031448702977670957295352809676479738839081877115458525366047870890824258512047527181362610143016859436694448561994668244694439771281419914841862278870298639007896214470564308868544743195446459445023658266434013640102117140721482900737957877895279083117471341295369009278852051374506955237374881703795372866799046578264031790811081493683352128013023422891496082111075050795173235624253038255203924931666030557587885408997341377222651821276867893629458464461372133469599099280559638333654779197975174863487825161577663678604421398175244961913687111182191347610586272527891695479395100394651185711503452207294379786885045458485726905312276035764921118551998066046039313797131831908124501385624372178859072558987400033352116462980699253081764750030383599941653418212470064159569797155387585796829597983450665481029975438757630121677200599863025439654994314431120356232211674154813511331779583716320738994429034434394641748440614288943703581972928819256581248984183096955075888281707117417089526239475788384899062706643235933625800731842305094101127628954028969059864092956529139473465289473749438540694118349000785716448097689724348466311097089109681639003511663101073625737076224080364522260524216720282565783310626081380322154543884713212035272064243154148420824296827425178201630189920727443475053611240570419824551582893524783480744847169713018360527869197278922135689361317344516376760361507360202063668746852611936888687636050970259468886986392050542174158810410233025535960910257170192396496053657290218394626553997316431813179003306239968514168466413506191543625394252054106744454377922922328792364775525545425323683533488273585871862872123263970928170699531392304264687934380447327424882113166839299172939287111834660457960980503380048797907069874909584251815479770151457184121013825004322878888048788012065440202833748165908938771416195674818125288854177767123860004357054126913305669526677764447014538094545187360806356486499553395373362071159041158818125783821449746479212748622929195051845478419183872225896828957957776829191051793468558119956172803782911760814700472039818316800469747304524613509210713625865828851268650996255551314260247443111542258598349321560218266029062111444850564358872437170246803234708548202366638165101538254607242335374180392353831008704743550974523866431299116399702795968732075029817758075387762244898224887796827241553686032090167389966979888185645790473529339007368207252991462080632198666077582332528887636143392653549962834693763749137286130768835113246152954426164518823980322365967400536784894465033014503629567072958646043687404796864942265406163915193308311035889293561476915412689626747958665798886798278464300126382196752248271317278160487616990871477173555579026606602721380518256186305209948921797963057904017715071344123686554110321269015717110783677534403877286674872084729599824278137737486227339822272687287166373295600096003632430094835432484369915042113282448431428069906432888145571558251520739745141733129985806018438148991632306426875259777329180181608813053295250014023730222724179125978814568441229745766304322557746525548668234219093259006736393219952972280136689981000885973623814077740264189049774422263966900278304850111845633299696789546116155811058623946970739437866644972455823118959502040320860478332224908929692127121311522965159842512737706365811021914856354816905224596824546501397660379780525477960879103775419622038851920472696718768712245186983063971403742002285651519362728218596093827330242081431018482564060739711039818908257784915893470003223420726949341767516110902645487329728722890246134275669353586365078241054808400709870830326348048692547595601658175448309249119175951200616237510059652268370204202246642576003087940491134667968479640671292431758184695300320404600755643321601297757802570524975700331591247488063816615276555829600011317290767954257535197205190550930651235334587200106116538446816189078222092803033915155950518309146844459414666350271907787481333366952132308926999068046286069231400670746799159301411333588187117633589177160512467922330131362576637851992916552243645927224626123012034409033849053739476396992904599434553216369425747709318041314508692577518338559674708705806402967543803131151388618697074828042114663860422311092271322295775950902793197008818056324889602837852356126680198743350795834020901251082332307085692210559795123985441735717184603515150434769374472205503024600256375604571351703185898222941674595790446610042989824798152293530867221073087584629823792268341667828190050796717445755603317047776071204917523504525164972458615479670028807189588592004729139874937486536275850619327819720556165503138845578630584805241855525341666251670308837806237221846591454391069384127829633361825797428861036722917658891015676332775212635919981619124028278400345247544306762447829967872105885141243634671291309592302262493677680355634956504254998728381236792008437566814369415161838146426789478217380340019172807011248430136537825881947580976706719133412595926375533203409390045544805671037509893958700381089078124431984804507386264080877284004429721919108450467665108196695173029091979843530547177551111605126258627231459624409971638320712082631774261470555802545986099222888485676634725585598559203421811431554431598442446335962243182216917329380738379512579026024918714161850067878664936416572478518048885288461359655093715305275427574546623452108418445662621493045066431002119415205282272864879498152348544498933545656088392996324886382147670216269618099245236374810463824511047922951710806120169597738816743965103494169383720437173970342495122526895268854987084900344382137753018676945359778449735345492106112604531254038234914099159062135125125499332598927573664492548038869686563597661115671337725165878240466175100183340943810045454286691815455377587266324616472686896868090656590983514967079180508026705714160376714434057011077866656857649298024506163553183985955046741410081682101151031912551858638484727197083508187365177891142765983678379237486198688196809560732073570301846037963612729280087450831047629628988381860585268230011149195680176765644828128793838730059750440518845177855659267859506752047899926193910877707632750637580142863402852781088955738318293939814419094779186978649143658685898837662683991761090366443720802711843027829587858380300055828144341642174719882890158233018300357027247224401429917429121154818345195829858175003041267472270816560246021582399310439522718294931187689561660682249118226547443002963014032373072275420309823993521209036122122756846927417186647557452763561734998938571805505612614094135850787363209415530508621399242676387652832023619867994208532216955615087717733924207465359107064627223202993457998574319762821058896041306745492475363937140039397333346914118978158617494280893408139786626232389677629850430227581723931512698386722133057095451012051474376016361170219556857875637136590164435975498591307235690917830255809006960010122868888984882844449079243235222758812025324710913550548704951090291727107126379059465932282747834748297157495605807269481096967337003457311286509862354288250624254907486174903065039549312582891798310466449724972900376277371975027628603442076928241901191169745132781383413806012263960704037468392669119317818816323591561697626715324260591426786773549895185315508681735687803085414124062897251881388877157644153709218934352763465892913952976114524650750379470291254166763929376949763605476687728230958850048881422493034313803578990545571696089658693159683963114977130624450096679935448524020126779267601131732665100912933965024244547773479293837210155045851948221911464816577756224082407721009193469612479276909539026432854583459223449235947706616627885156998746923467694343589440993265286400149987515666377759060782669072697532362227194700940861404181295682961070958312106413152735311631894967958976355871281760636496166639998392190800088744047383852863074285855482252119947388589692911157834482398419048174182565949820662109943842499229288002649999426327172727979252923690365440085493528185901410729841324742014718953864335846088831155001699278127139829189378752591900438743873155434235039897402973648011643005770592128835165657296433944596979196863083658862788132014167631150808464961975993469812386165923873088903915097242038499512590164047351763995278603539494441229981042381003408372462399521787776176816984941453322904105573858697947501095667268521605417463390346223835421749710278732022514634979551171199398235523562729586226589054856117482923907857355439933139770271298305271699274951092215691563864346390178461304088397695626018599483352681743819732753783528445410430889583262918354922779088958583983268172804020981929526229997404160727403211748319886661131077940822105298181027110248622918652870343384141842295876228377659896362715182101216617544431642307981124527122876879614194290644117488172971349737416248627932161664776740075586933640151453593643794264470148165767445273807135069787390749772492313820526128651822388394470286819161804305641045319989675538048704243676110683661084408698459971741774134347284580987437396011797261289422871574634303791069106946346050626919933445589114794638428062866149108400997577463658458506361571537982878170275573968894347178088939291322882430354838114976016922380028209966117228784168137296335503485811501814155619156962838437408415214430897168131848090602001662805566275417513277568406247605020538768431279786181829334549273849806074071323933714308998484441441382786542965462930718642338298875377245042006732021859068910583299838866054268377920765012664104889508869058118327249140984568014125711700689802193944596816872056239182828258517019154119376712286026185168610920226899368435295077184213246401709448029731912851632380650128276724158981945228606929164107813874363292019401840484591796808574683404569216979976911329526591481501257478909315895369272357602643508914328670591997984952380724915072992854409051554447607828345527164662427418351003925525048497204945546915530968153862342864263541238972644788984966697103250202874735665283824527564163130035201648171832208460012654934134957801775385100689622723811221393133253502003652051214908536080064590545268128317129372574930151257679592008775732182711959526010029279610467480594413377612129073661803275836142690183205596423997082356627217796900671439545240978530192073945149604279202467895006865459488718871470039757785784428175738980280871924418221993321482833584789607074558441097457819231298529017086126754951037203423300848516234240364447777105522848474244356642867348017849359195370950673453574974191955781421739059463429386083076895912383789924599584117627228619677886754778302626777607056470593146243975765429673763319604882883793336541111987650331953364016911608542404396071146083181301551799847642626222570496037381044765200594009040402546715102595772723687147567279404806650320122034504625245152998097881588608499588838256491184206799642243011547804692670191178844102477056657838108577104799466590988952872438431852894278973273385485898285698524220612709275329835031983979023292089579903018804828096756817744947702183007252599967843627611247060418261454928898553912201685851000055640833817545253662085714455384271958496032070072872858602257040821053712215347892607786161517787652863026735073724233071398700648908374041589198267958433409599887875804763882228921805927707130991231053690095732765331787997326837554117064788879051081991164434941675342973893458827242534618096126283429355155972885307023131333461358370454505933005246233068693919759513011579622260094293384395641308507786622729724135833659737662964354118087478946443744903293789212952888198718519904596087894110820741443770092191999637232544209911597186032267309167384496797251862606430523949431157247830407598471944487759602418074344238464185754319759442097807777628372067792203586546667418548182999507962137057404388895589841238348508638851619954143694718402234766414690625100796586807240117221142244432273608467847160692610151415622706630101863450564751562980969625257157822331154847789905186642736626902609839820530314914734930858506437185222190451034126337926711429074822415756667122257672259288738234571775024224255284844052861781718707660603499689941402288658041532689441786517822911795485106235339847205044122983475966282967683096317460848437877427304092815667677038725079148110951464135184138899552055005971922709615235636347538772530484659597552586013698830683592307759754357896076018846094668279511779133379421653812329565934764881374027724661346361714389389909394343677308291037583021543323430895631353215189651622518656426848093870436183496365754473120940955592045257719391186454919638794004447665347213122750242406957778962326489238615007819847862134996332695256941456285906825372717683569046286824361457984522892034743408463569186501693463536227796071881080551819906552236646190036519101186935245253424509260716375329317932520361642519764172027408114394660910949594008870743809778079728099848597408757742248513607092454121819773220512433557286690466540914555993731440718156653383016942876586319390141874072457165383567855042226290815956155491820911378184402609503271988726968728952088338272770650264933240094440822154241464549521913901414955115841810408614622183392501647302112075885587608217276060032553046381675767119324039288275832454119359697355381492658091181038942503567894529341175508445389481217758443422646160764586886967636887786693629338071861594627343227560343839377442149805094188051176828726237287944834105458619116548926094346848539557947060195955456690875698280131230539678756943024538774583489771636509310930274887826367492557812902393856367177989606617445211750804281368275769021500895862798001535179326297568707878456601693487424322922484599921541788346942858606174098852446829797745769546056697054941771284843437398451473856407917637635154273437749692430335232982655220411295922903877534805192759204229025193788252313102056231794676866107080830321017826212393187034154722794469540521928024426052842529657941591491022100693882823271310821302280949707569973961665673377655767007618172307471410008275759501703408396883237320240183719224740393480637049831505375492178914564709368610881709557032970808589779147025310447061911105302623151260813644470336379452558072936721984194240678453053650557182575829737054094746412386411096859300861575069941666475620626481074617842053218981343674970558255727689913190920347625687429937142296703860486832543112393934821276769791873936348729179241398689259078796939857789694631750196594306374161806371110889542641143316215211741276342233682025426420291470981120887157444509333689595688843042735454015665635599938654721993637648967663357156969641224798891467527452974531258941203371507685660000483128545817394609096412281240164208139877639211531994982825665288959730881611972698349140498760442794923838318329739799284048996308532961624418891323740958183954170528686066355570496825283923306104705273568781564735952979414848894864408330388207888726322389523456135344639984083765286572030488741614022827403371951444670392559298171836180142566185772546547932330465182720764233016985390036563047321046120957707368600176946214387460094587431471376895297154708118047772110361517514476718476924738247282405985122545426509514696158312103156310412524767365260189257356746034510034793558361237260272997000803334326146421424862613817316121565617110507424177561874499161251567598619610680051177512174368313830965491803262916156956788124003250679112654932973351132688287211207094261320664833871679061086460550292477423495720568797628025810148546351563644807881895198455043334812770382596297796246713888046146778563329532594625350909179391543520712121383992470730737362886860426333594991814795530360179207475183446360409785405503507608322124556554239598871790139653104933632834548880887767985046235945372935955950687607788823882584061203913208627834426256679338263183389718961140061208082157831725749004760443370341355339301209389465885775797039414331022512349277744514189425646229365485479733149805116849274645668899837221117806136658774040510743076325961745197348337876631675754124062761046247138881216214661731201486724732298661304376301258913279418082383799197388237330984468481301970570690397141353516576693048868576576292481398709529773748985621310794751999250957456307360029901530549684945242911433564226982787632581611054572712044682920864374307216251046001689438803689897529536532327045869305692273521304200403856657999739679493243867461498484011584964067904149654052740522026984652321123466827209399799979581868364969824970442131723674829014537314715143103703848118707085009728006453388809883074765542661405981285004353902595591701159874222036625136882568860671908045158445602925547407062284292147442324035989811235700757037680309108535568461777422897530704965362165096628345260826356250756682427850582099848236555719424301164851829787474195806779477043858660196380590252076133487726231267613722339825459003956484873971226378949578206756710403706183555427152731649256130278808198004709385371327809336309294270586814002655302150387127647911780978001978666534434464946269932923373835590511895023723208312031281867386519223642506165544307841407805935546143436234360498517281605169765314855496993558237900633377715034385867633511300326374595783091622654654111684689329982823783627875213482301846979899843956024774885580559378209621508337234504479222831976053034292394096892610785288703662272123293237418026593771465658893342128562601521492374308962225669526054600060185772125178101267006995589746069568004339287356081449813981011336039980892798110891915317184513997548142993104095945506719595982380459431802200654072573809643236648566661563319014439589382714177686733025032076443149540595681558429312844139760613943673163091632182049647966528790671638415425051620282860632698914141141868667918695576211978049397775064410217809188939330859431960547918582727046921398914690842283931715818380067915259783710111314606630115245183258413050600072162737424854720712862449460070270218132304342308262080465952410650183548740298391364807698114396543051265872565744778128740280581054740822215211544311071057927198323586473885059068337253329278897049762616100284625164330250647243088712060456601364068752442150184711141508132499280300275194094299166710261326317055421906624007807054480916453764996763735538209234967715011761544750176221848697208723725926751610908152504168212729247628731228136495186549286355434769876234833164572494407188385818777186746786952934812490517287385389607806981722502035968648884397272121322490570857125215377943792919512054198121590476799755922182856158214943281045987900204668715017427362649558225176930783698184272480489125203686297694539811897056652093228796991510571954569648480624688205384364944182506202156843341689341809941458585621087753600680040907508226860367081720597507459562715130276794037348575107112512828584819425871919665043564307410773424029686372890462289923998382967849573690203251338926643544637492737504374741356008667018665498171650167769804564876007382919670087325321363284605009860727646360693575634269047010826037796617302583008142676613010457259199137101674933172923027223288077662551707279007862618279509879097551992788895723700387507476561695176809686966290919986817942326262716207665334084070170283812879424564625141322013724757619017924545321113164666131051971889460405894972430550381083000867354845072327695097512894258207561462746749986826976782983388915020661553420523039295105724855760245966776425279857768940834348333241518896195361096075777957375448370785605128591711208504979417211476371698174393383897672549913170118432213586557174644386156376675967847456991256180151346465123969579785934764020775898661802358814545762280797705266167797789881321828066591458342504617035228443738000599843286060678860945458232411115812324531033872519244938595072247465440062240745795071110499851866338619426401992429344114864920844991863511057675717035135637556412755082043581763644043308621552415350118377809406367953278392848273758248729058979786591863444332123400444463124666650221302699302363529488306089246334207651782228186176643375818381196782613055881365385363013465322924106016061112643995729879648341117285805485773437512910537743663232011334563232839597895628251715703056608645260519237201621518855163148096933779847915535425872996517269398264664038531226240482849992079681682115300173913703833374664680490345367888390959951978772345816214061747906281839648287487024814250813648731494855106000166864377597332341029739848769899677994804372210263102752828842444040266112780505989120317375169385704396632916435262602654067919852234230652670607546863139194230099124941245845551038408237374196596023602419242945651496941668074214764009232646782864863411114374289610561009997133213439280183909687979156476317798670563842262506480051452008712958262071717163141921819996737397281061004769967159537034301467367234680361534668965716582656401733663145688514940909044715619453813262916988130607491056931383115229969668038847901066939663149512622638560474778694812732943475710207401711972951938041773030245360527623710329861249962805516435442984476624896655147157824222036250219616180766165776181607091505039340001770084995850043653743052971492566664628583527449937718123176653408327965412996331456088294386967884146944467375363669467124185633649468040925316263270171843371434732448450348971244617907780434699346917167649665714657704713891454314951922485826841848514748844334290138084772834688310883538711200812981281165606680273664373589890241460201377799448986930703034848780995882308465228732460239935658353902418989305750224841761721538355950907526972801103283000255663633811544007572229283737144113210256674409943438776513076022086415963006037961494864654764447576168175494672369484643339203954137715708873470629972013129575320644018816162352677706216698621031446774897045899371427426307802112304226301932629210253411340012421525150990294951490779798786527236197359628662227351705972445209571155907093126765747720053745010417708735545862051352828537159527348969118346328662122479275399595360759004110508878750732608277881466915805799661889481495961464940122545524899007626307385335730948693003538141219599066331097121145594115144785811570405035681803216475548266829297697481823546020390757419501853271879526154119778813717276011197353478108430434958131053397067520732561855527158033585674228082552613562907846809130182392186020292848496493514005363453702676508193276529980178786457583353125146570453591024381147321819048641090334863754428623520611452600480471671003716887701012033806187776681413287542222173891356437281006449036056837942036905586674505915795519769533881119731610927664336515786083124485659816164079093343210853452551816545498671444215017129672153149196947166712327087688940243317891825193080242959247339001737013508967776251567067178968969556606990906262269204152635388365856288255525419130710703848002905077577695930010823240554881906696373088647395717612483020607422797490977882403505925818469049834903448247055806994544100401052086317740223818290127630595768116767977368077472096563654228446514670244833597622733440535801544397829513636035970576668682473046645292556795953959605047840708258841519669988007736375430481217474941123702757977643855013894486391444465212649520390136878664363377289157926355464945612797291975464808212712394686427437901764588916487163348493941275318058763987687207073499930139469759846298146303354208697106084977220183572846258266049773713071358043261453551276669999258047383984321232120503669140287592391215443843944939573742303558706428022736375890892437627471457255721852066139314475044201592035423363243606361804741089382813495392500797050627520588264159292555343021126187491631565253838295026048407963695606797886003839545991259658509083980747640032766526072937540594695689755139188106302696943615670478495866131743943885760623891941524519380129914791817388751559285113562499077838804246477689866778557353372401571743537568026637269000693403396076678326622119074916257761414991713425520360780446166916322600348019924627132629442985844057747404427828367689549729401320119700099643075304133679817309792489963341662533224023193598008614461782037391905036311515576622593810198112349472807710271471855515818547413781416488251004959047516727429590892721205509319562958844887158272550684188575010516081385523253768397383205649935341639354014257187467642129451344076397693622829571787589959673521461507168408331572116501075244686142321313510432142036543694291696057121033809956988931654150135081998161950298508161369613769810485063453986644617310019527088208248940994457668252645278806033954688288287256226022678098832723814450212986487369723536297975366597026808954707239467033586923510383677519210268367710366310608961859929686677901117833824506032923383370155063388676841991194954703243972112779763556060648864918070057981624367242724107507627387319816009045598689599817438380229174614270430350591883295843868068854583187132280571915668405099687873704423769740118802564221407859332308263738780967827142352482553131440717718934160717886224813585617846394432061924346248307483792213827807662720264689468005766176414505300178559273775251329025692692174935303179128655892098680039216554641649378326970578085574940109433165096286778439071969595068072511004357021637669105078750421868763456511414208340151177849690396260722138133547563466141603321373756638778104045750160769923065204831751861742534456230709040368613442709090419103323930013067517858180211339526643010482450853708342017869588119001438039732837193362381643060083865688750386030940288507846924006139549285806282524461393962192746860857132945729546691494029458822344970472527234071505212921578418570520165767850673183306470756723924852875089340815324027562121016723710039734770323507963153879585917051238109324647769343676715802518329600805955993526875245848718176258716494986373954218462556020892905711268196095403436299514263426275127505502064548693154358126718546581452382774653671118861780770230636125515443519594760258792340518249035724407206696272902120562637077273235785190636279654655050732684194573095923875335351483306804736672629303546815547203313084307558037678007812934107635258486626680169634610964416572926977545108038106700011303958258840625972981355000127011418539754753110074881637717990391083781862591283440869413685496298444901042827108443322197653512452113697670270741190164431501230156172994427314297979979157777495866721723059506192131544608768901101716699304685862833843776696535181489743649523880941160633762891639466562740632058444047130831234464498951627637609344894419860996789146837567353626020240222671728263231790113814489142133747658225845780395255824907142493695604934329518566304714812324834249147729738118468824616343199021476639755225187775765675721790306867148194406198058528553318715103955124018757882293657236662410004701615783413637268606208371533161514490618074442451377485259269134706456799104627316394745709781385228840894504092633433108477724710520671003398618334455145055290234768633405829363917407772068430417777221984191405660720074278981083001558393375013265180083247096067132275677380573422049678564592881841087686363271373456142207797560523338366086169350584815631924294349113104921603047501031692822384349966365687835304132906543642209877137678143311445285320394711505106987453305204295037051953546793345045761627725801810651643686343870596601778754107595631210840730419666762818917397141488770133293339467578581878219585107668762784441790710892737957535399672270412819435257930069835897891876185361687856647654618674602255177831427118323200890572279031995867326580273315268482313875045886892218976685509551432173189803785402399468829071712638077939116699416987355644831502193920065031926496924042849963757011909376842505174445856584109979496493861831877084020243997108096916811512106796052729968149593012102809944606445496521312003462598621108189684356504926075622401021267345196060475623045594260279162814234811050166257452779600720481124749892760303661700963744017091689155157155513635656318228746333573463053051384295042689526788125808354142019968470170868396659943551027971677796280472004274441496529310229915873546633464007073900064341850629598855598605257214431626660681830450840746369716215954228650759707055967833445549054136409108931614130600942354271553621103456360844587611101826796668520267607747309329634713244123073296026238522875817775881842020283900642952820527834358542485420767114834186111454173973944661472080185487384519056260083524264700988431842457372111802684941555383056935599578513037418493055114775422138087876193337096668122653091750987557349292858049512494040960690783068173110648049081036030305172730947928283542832673447506009016810429219274975680913553759526239211415940780466718915485814051547247498801129948806137910274716142309235284176405227318969950437149203906575219276415257095827886996360797906966537228116680634406561334008997166660228810206326670871191152190906501188402681596950476751057247165911411436086921456613873460391764491242735340833261960494772748626969218675367016305995478309476691097660587230360445299186447636330549869404634476429117810814642509745011223231811652086078273367876596919799113860663339748999645857565300038003342601923183172658465264193329086030811440862546741823369996162334723354259745791189446258556056600916099464801377226457730676230472044452953554158176077373137391983612865970034870217171391493225859725029350563575986939303763718462717170305558032277482881833157065290647836907595959865323021098710834900143019979997007891545221929316506144344694502884994062506076885736202093674464756879404081205413152970693926615300855947861723199697685135303425626827548638361507556573419985394913496149190121235268438106526307678948846617155089791454189027325911624555998966918896841311632329674944360822889782972579318824675458520079235398348949550990566535604251210819663941562188330672158346006287631537626831496960902978285825126554677470330311444138807587225252902479296385678437780312467196661291229636616658437878671766574527457016101013493174601453589654661927667988142406843484320415974968386936229096466695740640139681869954741836169403030103300837747940088517885742925953061330094940229472072347267981555141034686928028933526033874388046990551219049038662907401396418977351261673740565233143122812231127093005231418849397656760052875183402796440347256416660839295941884931163138520657703592465192951806776851179980015310319353947742014371216059207909940418443255975677042247225264441744418223861942441353589438702978330546038705409767696947363775760608461782167768129375399246822313359687241336983952025668220176951774628458662158820329182850878744982341199556378793837376287666673512862110109849158446548547627922694981707928833409680832043612339677045768151393928274280386904558064872849568708377189558321845852371452373872361770082862805911698812957809696700941244865191283139544750846507837988688308550414691045990405907871292560883439203953690774501131319974370411808327774182240504826503485331866183876619388167458629247498818069684669285149883384979756924758648507823353463198589520076716810374306309320987248924636027309758233834698432479413120834470795470087344408054157577999723002316156366624343649983552498996153136615787826528658939994468797788819728077678270499047226486216073621853994427266659279868537600777939717772632459561983520974572205699413086177757892128771192159911162587017344741457740876040113051266113522033229927335554821050143511963221166940539478246254196101564130955828588405237296408149935188135741946517800004643741313852092716898672924598417955020452437663124743436934125148361643289847735802968588334100735261557442416505071335491066770509275845158743867550924770641481172436915120730492721617171669940706707280243107499590671247895537912489007632722865963339618712233760819244837903942759867654407098639470391306638085004820080911100128584678658773782877729039768238599919078797971661781348693756309422448993985234156870463699470045184549186584587436691636916090374777534167063320076573493589925978608464407944567474669281386600702019466353651117247925615540718416658209044335728255205240021069600009872244704167306959602883523794688498604884349288868419933065652265118737648734290127117115295381926369069215891038725762492427885717732286934956497275272952149475542109541054084391122696673091128538332942770681532626588874714373023361085386035711452880606237060661654908556109336967482095954480971324840830890234563604804043284412330272396092330989345679297219236573015831707137793444426895722574301705415994224167296023454858192155448893609708059106628072496039186964356242409872875755155639826578025649248335051863549690271661945798761120186479321869114869561442011446407349476203186702487757378053317925407303024137545723601952638792719088604438425525119279318525390956405190811471461015833120467545852715020185669145978399904651875028603192167025414385103989094005519414735265497852083724363487512002927631883061939668407977648739907090724046405127610307032114909448063494060014464500641608557864405853547114413291079584298140965250592649028585477019912748894374788987443362972086948073063909110785567791729351928492274595807851904155206392889130420497523684000512019185086145466482281351810267249466997016332380821401278858802135282359237650141847170926900721815139862418947738766703278863996410002842301205682312902145437278208845850267029384215817432102972504129948051099137163620623933158188805944494833736550347217051635742753100397903462513509192930380988739566611149766421396970195469494186560320339554844115585356067694805193563674801091994442025410848484700130845462826010433951494606238835604236282498580835186124676343335084695576664808166383793036396866121405028477652391377595769043421492099111118105547376186221171151612031759778071577173778828965130183961489833653684988698537402836194201677565712849606220259061147213902738658609224030153579468054693714582585282046823064326087019852196416114452678814254481713448230661680816267408625919755376451403475051740330832788307564006514058755988221783735726335947810607647196999965523949244387381151080462899947007715067507348030330349025199173633579686429704759797807205724391302829485242803221834806278176813590105365623546796342001063043152398342614638173855366954588078618002826245295878489655333855184059380079775938374555289681019059559273226406719583633642903901369859870277133723089489639818987668932069248064856293396377474618698660300604666092897467773478177287652842309404279798288642938821598721154501057432891826249707966799401737191533440194104725396908452089538578967852257886193229345653700521772315825038278663985853595976805476945754196312854613936172516028884088005390696065937972826866155510232511114515069681967862011325379254863332515370746873445769094608046467291709588537701439180891931159578106556989440509735476622981837021676557152595675177399277128982905080753396449242133172138271295314219149784911691519373577150990727981623042126710936330446030982984791537567090271362722521412012888210856699200362168188470105260036607542104905824020616862758695154294950619725314483343951325155397482040960454921840036239138033406520236643250827046484264763880319008123433707833907022735529601502363034936830137506556891643884840760547850294380651999560756862377037281005137411923447400801748007418822419992847433132945315621947973094406574067889736832533720989031178523006040205381184744615160118801821761478583964211757928142943628235034148285343641201451246917773592397311374055212490617376526564884163173703259649811675343988224421903786209771946102826331180869264987906706001100119036504293886031941586317170729273711960654811188846576249533337561207860587028548080446928730213396824957684494993055050664869974839752360399506336990622728942769732458035207887554861361311281180726439423660652068215017273142316629768761099672771813504926482544341283786191012776101706591825394421872995280981009209658587972154940455869948086701827562435094247147287298255909709350714978138251190082245945899077945807616451533729605052540420494642921284524888358300437773679454795896214470341992427055127390221386790192447447980942609298629287073040877689477037012329109201498460516761309125796694832407218840665578529630708703739441184515588047410630450372131323428506748782416247574238036577667222211309548911195652898058251557782948737834509115582632507067401518106794142783946242634249936355556815183277984048092519510279057934155790432339349618599226714514964173382575232366147571854317860104122531227984511339721442737480675318975738833942003386608943340986693806079572488564327647510848819423099285600411493457023457099490842634988015091823918194972510575222245385578867033885012288011941102159333082871307186804367497484630655487532303708234780318326857418773093185005224428253892744798769738874418113768111822054056756280459993951478292666967855268519716486724776021712921113236819407864211341266297198200655507683202150713813866109535389225812062461391419877197750757263918887940824215913186655747989929151787301981945996955513870898250862598934663846637430064324538708542000731016237913031317404646169132440535955112196612883229085529310136644244807691969549622699895444219666374245481593334992173508809791694396796867281138491099991807315684694410266631627613805148931267262922000632336941818639722624011079052460936186257794089862946569651945923213310586158947045765256268910721691264210100923449784467172352359020879492279358711580907420142609874966541259043926138184589383917510761478897666413588124092743775862840085293576122807081337840364550786898702659780616599514867317337794757024795564959485918309122287633177839206061535915299707254374337980287842845286249525575957424270664293344861121027826715819091738265800605880019924213461390675734838153943120900964654079332237436341838988867306817572343842932036547390045150749234579929331934083799502224756250973344796032683840267626380775315605616642954628547140645801687371685529934895123565845321847894581937410973255172700875284246385955025966427860980468918786976204730452533198890359151298822906999516793902536366900486007149385538461193789014359855770329535513087747838181708019449100860537310795817474662448763694537544631924743864259921191384126939104411676330515457968640996243218214816383024452212474490197279423077390984378413140664072754389206538961587224582502265906526988374187536163968523745576384044763257242604212197378002063954682696395967751372336064010605947879993171305302686727023296821118086455336055473564500565952552771901323533558398106991527891490553798520684571651791303029266153321148714262278998545260277657850643018816987484327893660460097055037039167865195254385267318459932532948308039105401289109907556928571758237891009639339569403854182463831147563647603699969955646254527485368349038916935152423027223700160514631384626949755668401895659431069255894869618486059145308738665047618281896472104174398210888857207087200143102660760716568508338610872588754257807998257132615474163165966716507042960295808586645681413170144020576339487892844820260627477479295627646190220494934754124381897373185042300543439994686018241437758533913971265129067620082952891536474058992665093545256249864469757774507838536178341743867608801504434724224337335990012859508965445809429312696971085187503144269720426532273636986548896047025054555131211894002080166175158683196613375112247909280963524804218777987718292332267309027856919236975495042092587815715316567992613707952823924844870747301487160785106862485070697411245059480880426436008899828961719206812700023839466656344750606190130705260432568065354989711733331970170397756673339794538413724103584886244538711202456682667210305969456682940395454584007551127638346519859933800709408242627480222377368033917729027264645498854627611251492187941327911206866999372347638875860645748774160894898095139283666150824860569860915052861629152244976063066524793049892701892407389247607497684201579250096684992983627203444630468419015112742994490714516441416832953584041177594197945065195776796166201106508364000933865229840478474744885301686364306749909880078415443044108106489053263421860634222334779193485563948170296617560241405083141500557643831944681005805401736861219123866266253605752782600336268531882811510344708066177025030985727355070047643644881457509851998344257010992616628665879276559286459479527758759111181784258779093494475377790843457113838949383322414917300679737802479427417194093810771888219266135412630854748698392325935899781895086262976433180869446532546271339990347918012439734784367553014215141473497483832892857448418540846494871276889661172251067483286311879924744588572403694738668602307384448765321658719712425534865815900005072885654778934272663029376758106123865578048739119817373280895962933640855779180583369059242971841300256154469160730104185554023067743306688868851288274039839237430489899850876183104792790268470047518314089639941848088490648675243963895721838097434132943226274303625782046437748181903770966920315042905273114502709720833753542505579998687463455578676762687192760427060642865824275685283137939796428020763512688531022140604308607184818040361420053004148967894846957893913262752729515921238802817816071255632713991344020513793155066498831618503734077727976008451724924703000689151959708308452222872509751737184577466274286625120261516754292573970362032816662007736029291626290278321945692488406540934615403677666144748902277156652724223989049432808855371573354919098689174470539870617337979544631201428458175033840993010208870145327504661569940034176850417452659673988974244244265387200822680523606150630212933918678127185629113046614623514842751460672015047801329062551512637319968792942381623484977299380196493145901816743703144959971378123126248428707296222254167606033728151504826863453890270850636208302474916052933954515199335760166058394508619842953094331694865215618447079989139328565288368513908972844204684343461821112175293167463864403559495878364885543660227021750734259394332740151235504324863508746610872670966152172254910574342593192708695351132380552978735396756338893985798889016230573634015990168646533564888054914624344863727880747816870429633521159775211067856956709396684335005936212737441169220813653491918092363294059678576702569929755440633114840458523583642120312469294022419578213654305910481878710681940606981062957766391510541255049519834947763344041072630804158008616174893249906504464151897478210429373456922855575685088045807505094343282313744401554648432200280647713822014507712548145340809213066561440934271199597083115106308564363116082389893760323770220298287344907689372873271867041891360973283704286290661909511719284288871487452997950126431464321820626603518137955512092714072099314996600763260599704638407175666955253571409639698546123221134344632162760397914744349077235252369986147539780734037762567343483241553674900192117298126636388417373105176608863561603252096725407950477363758282646670398784252255392342766759299029206717009219721958149147598281973167797199707792843262130281050952121609524225608219532514038062451104067977982972661388361336590086669110763233987933280321226468627066865583578626520357125500086503192193394445456676838165904152968381974109412849485579393953981811131189654192583319504850443024685001303519183518260164101385838586875892166845739125191064784660366802276323299863316171133272630847857653732576852537774223656556917889754994517119529240606385699714230469607691134583258547291869413762548974585084279738160880747118900098144657416643109703439538824591449371565974123333615269837514369284470525080658039456068622632426861708616115682427789476567821048264028300966824340684527163779261922076759971196930494179779640035161766729040216641507060150101246626040781425915085760676345705503648290309078886368335001608427187820573695081504753261119947045580676774948986768252192516062049208892084080319276877549562805284631257950108492394917318185387024950164082333012725462608041313406300596277296872113366995293273531768847724748777058114577893296516830248755914239398771562032617410800955259511146425029595689094876276086784306446202187371056963869772465476480203734480957954989350567001785658697174683398527552436008941055962302639641023973894320189532754842589073678200320142712241918666484754348936511332929237792403259498156230371895343086453407871063286720817542020421037671114917127571315977014346314419457125057292495283466940278338033359223055245093178538889726047929614995053615211530791590736276093471153184515562046914868985988605907471112508239192676401888233366390268046371523915739510853374644309026499888163915059549665861242424733186853205973299240091999742079138357028640296269690152435679662075925825796713059249702004832659467551396865701552692307903382269745596912931835330501137712627230123196838381729373958943545964115195084646316048446263899722311435150987001069226995117698462282437155700785189396697142586788312482504462370292519177731084538747621362114633399653729291082755267589569939640596343491251959248318746722650122163347665003317656574422009164372350278850130325823513114252781806260396272038472142518152367708486860411301382296860435442990819027568702265328022713155778588475179798939410552474789447863022140105480886086673919347803846594442678576781439034726942623939440215096381220367544349002307257024217960000771822383088295151830837122304885304282741995734221085325894734712765719031672471033406050107248124952145695906318298757381324919876858310600148259743789586121915511892983688894680191032322347641767383414320595838522867833408537295804589806617061339454520752162761262371978281705143648904577930959426623728048382939100116833886618105924987429702788561136994361481315256283497512378972652165690545076243701525935197261551494845732252483621890234938011473771709969150349218137692339128776843078107087623725851089792386655756133174440755388324739848641971063415398289143872835111550539017308071796860191062463179324115709122394647201782986018528641913368381074526186306638058925091428795572619315190208655368352010058559988489057641578838413258508784466079516540073201656126590157406630809250197657268555839698203026037776731681164917460662935383928293972672648473890694204066916901642570156864021714730735083114081848196184178233154610896840298923598494845812150601950146571733854018013126705075874715889696517561086541493435403090837528603753374002735255017994430203417548759116332792657383400270262790277709023353233438272039948523314472164143798172083718173493491093469968942918327031655964586424326751267037518926576929588173179464822886915768370304109393945927045934768565377173244499855113460533856976959155829567270012576441332880659909044672871838349355581079405714258393334127553190974167856828443412394370426330358931918079393750822512095078077097151239032790902565172224890127618316372994818438017390442166232884926393491848503287393462543038570248058794531202214829381828304172186202920387819348199147264999527854288839970757930525591820135211626734497412922052842863093325154215718185970274822534331467279148072737579095199736651363251838137183895229143987125970911780707005287914780997566026082807315293985158573441923859979808961677593454900920459448331409730087686321899515029224389387050741972334850064431663891634233750407415060319023617522941073570360727602413174276924034289465713376447829833290380581790621762826119697829439675540300144817388609735968336609644579668931901406257516931475146897033042197338408432366792504639599281443233063645608654003274437288122754121769776346286734943150513993979065305150524167602468014110752150475907571382028253103516545131004993713603833008028901853169950109817746941051066540538799238042168819146081536730506137402545889046632419032757401535133922695747611476165060181638900469825073097457179967443251569817443950405080260089236743479960002267970737722903795986508486915468386345522037312438788796558441643706108153129771031508361775834674301040329662493115767917016750535995934508427244643758292791580746013399724739785072037980842499445541595934679100623629976009165636896065029590503989808901240853514972318930123851720011400110522838623000235231104040853124351950111716988590485924590020111169751355599007663794226186551410621225556591352426773872967550368571546315365536843301999719537813177816839877641711172145230827610479113655371600534760370989451297323210397086631834377224480255956938986372376007931384611485051475356405240479215956047169047419342409396203629188421534439277743313958015264509431293285534268384096264582691902934353814544876177458978404979841996302045647529707028247157730469183461955680675829620180235959591174372877474279532931085892361660402674446289335431086105642523657522999941556126012458685579641367865501171134887819908848856537179725540374695225476587278891679051485720726463787242769518881951731081593991129386364385309052873689138039627801717402040868089478358144695135119102351598991943780324025005374455018064914734672957391075591338162934987294478124735211977209571223073777209726492181483152998023579660839825755138817508571997887858763717347744148304946163228218297170649371298495962705987281236301619704504272629990267853462652080297600322781229086637607856714806876154279197994991799668481863833929686529829166539420078204598059358136327183941811642874198749463688186434307467945514617437926113414820961074989763316393516953601190403306797912398546934485986489510852919983698359858479363742182835758267420809003665548839704916696490860824458349697167780578483273862233821594303084752930403149587752846232603300633205041334627226383619024871596579844506064613923648033346098960531927104828914208367791021475619695732579748573056726712831526490436220559500587973613521531463289202742243810509270252744604600936029734177666882984191108283621439083755511030357256555561859032224189221646316509012936480360366244436934317499125214573787279668286824225523488394631699101387849114169477796352358672922767772725762578856823099219673185120658141904446580252987516645613380151751171985317611503505869183666074199170114907442737012340913149630078427853263350966221584622449171928036379735711047183839863689807540958564969026811519217978414056595734862330538725005314661869930652364528144312013023852637625897419115360970388510705142558665903730742150575910818687174139485713962571371945898402916747631202443858667053194177293261610060498145862765185083778020839530615070229381337652860463867644449020091469521340796362595140037101241491465884719173410458586837170164738412561989561695846473118209433789564563259573569882895033398430908442214944121735657854043968983934839483653360699489536201299156467385628030937653425916418103745173609125291342424960226717886011636773520485988049334298054505655059166869293973203684783907607363468226779375805282599417989313471198344725675596432630337094734013288953817623436797124774292146353632866496953692620095639728237126010584537079563826040126294220608345024130731098242059188230218650074305584940967143353465320122356488629729979030316493943535668618482975616075752110020487345347918420401432111523425180376868431644719915098963830324305976811763635602748329656348694615947006059056348107365777333918784932909800885044281671763798788306461410876685888030789958587519672340266136225124948684933196636365859454236192124254154784860478632063013157518429386570535476487180135206104964746273162055090456617671588397241876438248383914741609801498084513967787783159781255418079118883031974274811181780314151760144972306020484522997100891756632749118352284441762502598490646149458021571085248832832091952715800578564967873274758755885477804322525736818440398207067500336218156540285806946779411110280774794528397142657015279591736566350400366988386309508848947838609579966355345087460067659261473311777337226257688836732600613231947540929912999563366075929338335712487379481388871426306162746019120287744296991722041469382312812909614253771398756672616809233362191893967539832525145426176680456437692695562887101179427168646547819717612706248203982642692444513455105964823270275076283484337276951949216450914841090547469672877816049838737012239810128445457361179783066009545331412748173611016381791739106764144296022902758283531164849948687679983531316885635195766738840227453026901126126898091332976022020568983262768949550706488535869474100367708002338417260560000106268306651408277317254956932384925142498476165919186489113888477294558930539720779657677035126135292616277472658330069219684390617360329477192499435481509892440861462495127543457428477947180286128789863194827396419200284874235305937069882788610397458398348598384204640504299717976026077801812210701598510877305024707835520737326915124223133371825419912635381168221287691335694146145324404605301943142754531008540785309303827182721503973849643707403178685806148604605011068252431427769130485114628866978306821996687899261661694697132820034723637607422838190695559906637049472271731534160014209626377880043631804122389119699289661991947393414035657501815006153498461698723036593236878558829942216976753756333623822659835130506601532019744381819518322246515059335102163460826140341398111696897444021183035564179298642644450233578426303214463703336137873618419696456103558405566543008103409555398940058191688735896403559742512569899736621835664444553460635974597331746917702330624038898108122140904360262781512090300894565427469924811061720347732111805937233520325276880356593762474297981831267361990928545972847698840940449678337923206767262377959899103904143271314263719727376441667047461312316820199471349394953824542361120679123945383608404782496875611775434349340903965781148283740712799224193145236484706403160199049463703789842006964814272303231312351188403920106015234658601780485586119923658250791953198794966355367361789024964661847648000619353137498126843147006000134664054315156426660514945693310898421223740538847096818161989151474803878299687270545000400881632941202883353213541138398078390184041789109290605427603514458871125936000950120887506931534979229960786605405447024896630897712229990858881268710895317754191405488085487419688944575452385379881383709285550192842258390185856237607615714474521402707280502664715598274262759334895022962556628013213095389727339093845794694121490166448334788697538604994887668322827989781243954231386490273696331548446108325347115579973312179739830475824420385702084655133437486896658809912570978649135016294217312806943460495140954272531914647903719035897418461920791122614348069828840819848250010894615704537121616971253841798571518857146697130888526068169725318627266582589925984243342424825450510117336005075901514099966353572334077153787915438873977127135164379442123574339880039159912166313104453153515766682486643779652579997726677839713853038139621948297296085984521260384032527278124358793235067361016711562997525511171843495501028847225733304734200644622182664087600586285452469677585659391542053600951398273100088416052564731329316020577802494532870264087301264743739472608612717941847675006340494480251973535184431922358186783280026281356208028424090222410918761628285465469559729429966223657860937723128271676914715813385550783769808337572088530908763321018833225220050715975241290227051743155243326860469195040302053716966071299339709172377579845113010316292129164578232076876703843775543839641240081101800714885935938598469793142123052750901667049304239526190013858981595587620058895630941236995639761279680234921334395436427484831834749076507764008172086793254725449241749117434571758389276488184617678931920843135687385307377344864722784655623992260362910838895689445551162744100946491245162630405463036058691971249435646109567856263783429659129227360954911914430242957155852290493899260613419021293806634036167100676355285123449191143142012759053655813357240606632860895058906213134086108763339234795498807176952091075267370529482929134237125646015420359626060279334389509746216262765959387384925993936648761965887292316671870005372253398100559963721249739499509301743699739834765310367694443841260035227490822806674066402983932628150592173840241689069065287531313170836495244515913552468017099976520237472953472437370522525994944868945869879015596949653034013014562036800507666836510913543524190586903430857669517694867955383951761932473220274813273182111400919737153311712992540568968114417378160085720075070396788107651160658329971886625505051123637500774893847043769124319017901366670768846308472963986884115771401971447749623650746658070462675195846484977257361495504213252356620994224699069480006339953737510220883482745178024978345071420125250309881037504788783072107096845493308686713512386213027137791813505969683860581317317013325432552669872040623918874312588147554562741328473979405537940435786205716084603618827723122106634964119396521039999935998542876489134096938785333980922619054269852422903923037979130806862321862725853405258759437082443496835631011123380629109655782539793582615122618470860379534033000905297258299385778947494260733448084091240528219607957230862704570030266413623827213475035637574150664510555123770249363814658434691061948666183111606417050243665482031504571180158228384165854792848103419135154917089541604652113779798430289957614844928103605683807865466725338616283013368709124667612959108357306762288597198538327025932079951911662675600232108690015661830018816296463020276334445780736157460796837813831891870741572313296569516595014764928420239153590115005343106189555705286159659181985147571742161399388718921937344346438979212190061306729755730277527967065723772572866361625408023776704828188545053644203870706704794503865970626637220012847016484403510985357057244340294044536251645974645092168983679116267026516084541484422584343969297210559122414162518440689005879910443333304342317482815011604367244875715355186214232441379709457139054011564142261946745059707180585318508716222427178036099803617446569768895411231183791609972580311499328765962356564507053528493926386696084333994047438658607515794297495244204609356212024638454431894906730123522834144956448899813326226642717576717686724123647863234038100668527670950152892821138041961182270260854526743900218501640187067849637620443017979512071389292012776838242552101869008071817469744556649155144291546767924826347450269963944152247094131223429268295293351067066972730442769371180594334936368767899254518174466269803906933610250555832571832598173706478560216202056623992518920068233903562232417141329024880762823332196066940487510998660523045297416096138132250170380889153810567518190769754016235733292656834151178320243528091105348809558497952991403724811013804655770421118021559906732176847342940231821666235080547570464837499815532275034100719567376744037210558275248877436067165712940904835286040429593929202774825597253037723605296364301590107879305415242511909827220732169523304976531812903546786330591779132824913187622888043842967623785887710358883036801889960850842959618171693191041421324254404757671752138185716853499146697071802285158926997417360729372766870142560586132627653281666665073472110185236655097654910237763272763883116800831388190020934499187106382712762078896608912037328067571600734133984572528537961098043216609240175245030586696287368692342137395437678996508478252642857432563429408235460995938502579656247401948369596989221041857108513469283868241049015448069476202823958787177080939539748654775809368517300534100214007012937927768098431006246285840737626779341725092035801709037560767223806951078047438925159408618489561647566885773311940118134543813747229666573527106708133155836541034849084803679558629552433647062351342121339105977437007902042648324567024644005156329052387217718565651008572494014024266719286797302291483741720252404493010720486903183097199761414865318111681575536690374716653174304775369191397028324400740117766551844508058296211163636903117801768594487320616504872534728590792634560562143846249249070424832524937889253524014953507740009884995550938688741862053600618280568504088870962094816923619890026546738116289536259963847344314929421867188483280832315172199944279669683462994217529486725004835103541534813189005935744971222190771332103111619471720980445637422086847791302911888825422349984795305308901348682606908482430158461404923080030041857936077609074466926091370699043535672725226431037665435629399839199436411589989724442222468464005268475487197342246240918311300455951168821991402278759198471473279916574450183906372589395820509019123929891807956960722541067085546963728481448852046025941366179773898900788355960135500109228423672870895912477702187835167475036573750751530907561035991501623586489003329483203167833159035832445111193444712303080222484291659305625443713084491041187158434534993435150054071143236159307098168301395852429318043519978892820619485640850939625338385621445474167205766238503611143584482293422943499245149595755282897370276117774893977668250827746470971932499257515925246192242768968456055431381591433805705389348963306691996313205824422581708206015641065627696805380501421195780929107007789334518171854284231221469202658430768595970965474763770650775428004253421188765995751813591660715537181687286175184505052214570676141528710438195516862224100717873117075560063518564853250726687778642178613482415894154591844247591941657127582097268193388415777882727299579762463800462651022835766381189955729942330053979961026242669504369435815901370077811761860325977407020170880469790445650482160320088681334942785350692468337181044934659572365608054335909359607118764729286760423498881393339941355385599223924346950342523722102735202899759262254750481719761209455369048047521229116840396603376559292047637965910184951630242252605203273236056755413330393945408255776741848373616536093372791944452308183539204937803456957933504784663409438450592547901394814187531078024842338403839771316831927885721303174907819100373574317387068902996439181800018294758738995491330243401357892717463262274290671266742449594925451877555693661985053238947378334593099259255928521045448380525859211714916240897483447382066105109270305363888905687492279988494619332693767858128608642192014059166881568125344335720872629759494602503840375458547368494350546518015805746557137153935155270495953854596864170667134150290700477555919214396880981817338373640922359494921127613323719267226392320921993813085439079746007755823462453543031194228812480405834905571070590638880557294074088832338258345586248026497758542279372852363214052522742301839664952764728253656546788449996681923779866844866810657759062490967087065675552568266058901963168000680179230338575957625118611788222012437165006397695528669790605325655986887771033909434965328782289597060599412454477373860314743397877168319171060330610427951763060288431601200915289503426782608440748312787623223543896435898202256956879778984140793419748597917970390652541515388165865047521704776222211861662491654771607071139799704785432639942119422011016574153880897332775142719562239499142421097737366015281442125136064150500646241500924265444894076760103176026093701704461414265052837067983577983407550060407826975263715484960043107028234475915841236458490393370205863053061070824399378771968104615231666747202651606613730548462158538623149939583043360751814702367623745428806527690032787901854511822045672155163034751852589003177625384383457320299219668075691732132422064909594995554022052998796598089274359759746886011612004833167857299236896974455153670937045616910388894089813579733362838833334149378896494937246274353011455045003972593716345468411343813050618774380731189400859732500063184451513403050305420334665342536146716857288003420405149999344655602548045453771571272084306330719799744657237152147161533685779242556653945675203091795698148188305938828008356451108411660752042295897155963594009853797521293367899287018790312770466196350638714069881068527048860659291226828896284585145448360257203993456794788930672551623872627925844459264496455364569640025405044961574583060856023116963046287256932827567099584024690793038096205474090501454830493796724549078642675438015565321516212764519393438552872969933325016337739942046288484874097225975780260494415391813029455736618244380899518563879932609614145415703131356778315112436108221471973005640843405373653203678688186795254437485551256436869145576688413403055931916739819613602964021044945876354847697741766408717746771970901427265691885767946950920748881874326938571439328392596528938642069617742586159554169243195326617207800552757647652939902920173667985259734097425197984747715416555549977706617033032590381167649924236314834194368617155018435705945701694302927247202619475056156037440394128467173784295158919137500343989640466489375016754905303300850196049717994711197978117560705548493445582743778535866050055012750720489975539982044332634256393121518584032410680980933589595538653294873144427314143134421641742957877719595347045060914793587438642319773692860986241098194636284653794300017434247555989664332164052801249902971921765844045829754612551242186944744481547802257714034493343791113351835283739054266434488885570640082587816691228973176201641498404195557023698523208832707632650041711349075785125932699774631713755089376938129923551783071493191934089689771643451152731685492369675049939206548418055820465700413228676532060437339976256185455254607797457400920544274073949232839849408569104017359019371146325289545672316463801017296948137050734943271247988213666714969710023045578268841603979684789736281820012414381621417322708688412158938808839405512562473468641297137539949021326929109822251193558722874053157109360123408890108633583662313798015579641810033785080036847113129694230094753928275192378129105994176472719952571777223513570600042522973961620194603105214028835804653077185283246339470634096739903868210649829547140754750176585423593394720000539821917985885043753860027848657367352134865153960343958410354601986366028462222799404070108634199877710965087490372802523211527037619303381057985255176281943300173335706860078084150426229478888145795878475779693602060865379426023788501508403803018172938289089662763162461998876890482423516768585009840391238450343871302568146153844973893848498190761529859122663701990954229690033264573926339330697015987607976563060309423337658321883631377652950543360791411930936864312629413560362739854610799345790279971975635202613530381790504338595457875074897017925511095696509602608116327304662256417501377045719282372345611019598596812099654876115801647934769744053348838354299197821619709585546826403706893573291003691492405743558566818658246787625444044861994481102130964463568101183389612866398801121702451787972894282831992369034454214897594292256671182038865495384502885207230828647038684021841318362612494610052813900643282229995974013734419288181960624610582328568437570486174101622477470750793361119053207860983869599857622316519563506140211392229774754194441473356397134198406665889817975860631567679889572599489470850242081263465697309024368249945840778044362794545493271855139786105873715099669493914104082451924970940967132855712199084946703081300490596808054283563386603117981713198474848467816815104851425665815068968150871718839913556595819799529351759446435115559656129092518284639600408006562650299103106353427025564679102952867343646796646272014132986463149814368858629687229953779337367561978817904054391264629484694711272896683790717636718039572864087835035644415619732903232321142179140269362639001274973862317370728327567376218891181670617141909320290541148579531267843516067445839963834622048468657251542169506502695183816273650331095977278808331159558085082242635144789871530433351209871298445318997342333587642773684146019560190556336704229499367431121353225112647902404273485206352345809238498031168283265821752252601409757578482249934564152468214765629179316770886833508871571001463200629792847924929833343016722535273860204396664520385173841082243052679179468781776347766043706126459868798462938677167382913505058577685895753378075933942083629821968447973309676141125426990331860874423963085859884516682767796271600228696486939859433513544388871578327101732990909986728514288808183722648358169266553156030906839739464374133670947409773537542740198658125396023077860505147782435960177931960881529642728412958455765118784112803401394351754684261103866825626871013863739399707691354525790264831753535519634822680212000801147126590637512510571372930948991757511199430482784111554191987265945126659481438543970411849083258438063208603285404039357462225621847964965074060198357964171129457730200016535033042938281514187575011868436277129158070668738275271185189409760412350482584709565714236745998106062404504574088703216515269398608141038676912942968803029750361186871557784118911965503927435501554151241439045530807414375533560478705287634502110062184669748484748214165519066577495084004101791133195840300608867134709608891494353901794660658792880915291936968236868839558881192852421353160537834941335971807711341197355111602662302054320757972057989328375857766049630378817993892982965181568910205520478198875229013472972914583342140122520410480442475028840869485588371261283529242757664064013847252531302965399307786358998078705437734424367432102706042095962037648345424942259446565540932153725684782418899351129913771875429301921727615811274017215538035655110898473021745338780563983294635171049773705532714470934076585029076766575864856486264912160019503171851584751662820816475466688709110569280750678414214785066602777183163164951759036840833727920389328789403634462449821728205811270319698557560717678720089238731681389226511724774963387667814369424621546183044243742507671291627017076108354781843383569818482010028175885664059472358850296079482116794156391395998983560395767313306056833545099941838484578521165200449607438223569658328964164133557465728288587502952395342893239358476037443190831791771467255107026447192844346699944369992987768307541804547593979625949123953985917084176703380051014961253107717512377492644049746602068702003306592795652721347394953803301753484423948472623462389474504438389147235439611966156507556462225192583141983839222553916293496760702492033363628378894421212553153205048372108362837520284732049539781121154777282433557320206713389764760271836265469438157152508967368434748711886107385782969101933506495070606309661052091181452375883128897562613647722214894595865102231287820512008893800722749052289355610940407208934105210345120708784071577800925220796686645016777541005122819990449841383769413149476565576109556069477118809257909183243913116552231950443857696051651942665293919519923273445272713517094772570055715956215079918371214177334206956409413259632656786039710205722149970934801977657179849668869679344204335806242832355926367712957059838512030987299952128901776929857465925942562760657069376175060043949487602237190766054317126566894509995464770629044350633866255625894336845671552703567971715186634483839738166091596941977500294796992884816213834721979559306521815475402901180531543446815783581530688960541091245116634832550129835636570622694588466478059467267574729425432896907771599453145934736612176779556167358742754285621413157198265852532194368115454330219030141072985607844375154173043239863440007071196731979851844437950864577800878944720629938046655368242254311407631860583665005655860656064224590600010564769731625266746132796189068249661917823565752745762287374433913457194449837378190292892198516300520931494199825322413434072913306979574553499973923531324306363848886904163583360048487005814847156649949053914826886690171607625108132655641605625912358651651981931258475961739546070634757510704944466353885989281917823484122307352603394816515137671462254122087901128955384429805956775272407532292239881916863679002248343699616861971904462559866029144262995361591038446232009854894124366729172395304667886008980748307380444360906550715125497914751295815940562186420276633707965900552666556697995644263261557536727729137364126955164088983989419878478640521829697529968593574218742802192532700388577734066500431269926333190495118073849280111481096437829846450109723543003181836371119486645743570221922281964618512791024187110849736476170669634944768234394162926225799477472987991843196183108064965638472600839103172221045142649287834823720011018675917435649268858264304054566512690781183454723920672007348779007203737557288270608955265261133441150286032025288329905980598101107025734788696849804938300443133898008362710221886223028610449247805800616907119296970755636335730211354097287477636041468713621516588229924488290140674648728309578285877843324666904792064921541973686340411628463502483249218966533238792573125243543935990878151776381905402721653968385023587266204319038359992574063898773604838206644891403950374286851874577465062027684582638199109446680063200884979843969376835743611445536822472911162492588873506937282484073669665823833967566574900326354406589727627394160406524743185318268615336052333466899168981311340832984460342443896216519364817375956200194663055544808085780713032556830677134364896657024285565945088496311043550510308828791250466040696343719125271628841850802926919182969752671203849314763133699613298895404545796007810424553354405159111039978278933974510959437457490428131625164308806202255112711537135804162564237641677038405403147038936710386784708844704179909174673564828427925430073018363391913887818700843996618173830038713423737255481056476188497533773281175001905009775168743411661181085332356295049561339248239304394469344289542590322186537128457452589901610350422012124416684885971601349958731158919742622278247760615116846272187332430016017341114410765046116734104646681344867080884018192330332604498310089443325427016173016386468616759990827222965333050582216843269696613152510712301985614205676895275476780249280446671566467191330159785911799441180148127053756120641224490405874102083889334325236473700966216179591698822161440486889670583728800372391456170004102631449432488204961588761307258787039357930228038299789724804933232700110021614422118233637204935797695113138906472071686599363805317141532670711204286322998115034040583169873447420830213474743290767351619809934671260637633983344354204479317956926350783630474985547594754993513788057253730999337781448409571940217246824761079630276979357149806674614270215248571933066392600205938975623017648618146392474999358493450131603093907045187457571841638327383645600292927661542160720876402108480302525396043117362315936780462606707127117273586768857374349280942203717633878143905720665223470053468651735711692158991258238488823698326168566383898313949342124786527697660458229148090683528006890896620551919439552260625930571222347673693600130093403928692914077034649829770558532052683557034340659176706875178383989990145253513479302223054027451419033631694553000358381288560713242803451666335431590634504594590797376433859409668717506625101780719535918878004047890492047316837811657551335772703780157128184959889628558296173863638458000293848311034437001347664034028482871106171948409906152277293198719250077386203839656868135237316024940119553612412774817110109036211386802949982676271687594402399393085855176287443925894287289589871557086458968141803047950790538538895818949868491498142261875150099961858295587567181332655138317870604161108301030986072112782473687149265209670910494008476322886154184823524491627903254231273025346720664205566074840402268265021880478845252792653051495388632439829009269244884912344831874625509514089855357453039217831332280003529360505686290150845012906830761588446863328643581003042251886156391138117617766307485617132346256633995924494294719584279764083623973468577609498099019042627162627249688233618970855715295703217677530803564780584580406294531543053407178589133068364250890127715604524106876349513894732464516782484475681847677483514161055949242448120893015030552727975231125452792683116808836340781004985423637725828190675520827748180385306157618128374175899945114749401632679019545649077439015389226221452449596542600431995400815201102461638971029135096675557690849806697965797039940264826722742597073525597115724535808992389952815381938989900583500407355837601721457303274974516157665371870386361436713327679404987851293799918184218738920507216975297068985523806521988258273628026611168358558041963074235854891828993026579580581507648070581751025107422576220139844645747292256828360655619946874017568116391404673232312740350416356628954118451800165914065716965921045228128571339306408344861018317263063351918852715924106064585699282734737851316571659642334473177831758154483222341702209041048792526898531204379962504434115916696426874678978519360465289646914744651169130978225162327601660601815472967375007303355390474932479002141532334550758389840178244281692602127148197060881059090665246946352005701487238829342382734925615836788293774970433281676175825354549511176696252135011561445155121611129049036800289284827037522291840879366196201779734014708767305329846113603513836199412824536242800377538740638994408909646994152756404749806094962780414204868189005434969287892145992820363081693919582102284454763957874133228205012993840417265277989838518497102710368079411271677111000354982569233069111441736695326250537212836398298070065520602504860682156260147423327615332964281374604015750198435870208450495607562324791418842267919640205249713576649471164673963207312917080603684712635905977292449952797342252226699333212340905807306960990572513239810235716824664162237752801700779185539132053514812001149431341267655673073651509240296375007708113577178364324126982789459305198777193733301838731955084610378217302864140841356306204460422746650134580566656641746122292152232061450203076444701796627226971865651919708814089434426850360299794587243359415968017620075601420573960396854624287198963103844154885038937758527149309668425295686338115212176851759332454885669342062537952671521194271286274826791400357649954308315833604142714546288941423041221516858003943333159116137085504953414116827837452025323674401159709714980323051103474972423871584226410679007906939348231238339588020825133441987861893754908877055602546788417475860800757448445378452075086402905890957731869869277790531788551078534050726817691063188466936712930819289560701204026447487034438682349499407716193428392713505273029494030819758662064404105033469358108183423702349860195281843916710993387117788073903003948977210922687342567432145576358734378191590784875598406963507819128312473094117449561616255215607418454760046075541354050100726651661280289968622298103495498160461713023176343165799947774773292561354979604566481065047862710638953990652549034972579133535069566047385639232984097150179458674496608783701639163421010950661413878949967678539912989899574797230091429395059837723569172356170222981020649928152745451283065882970535302480603906112912790066896647701282053081071646040029142257883352332946938170383846454125215264754505280058452226453049637851752478625401962782078527175401782945584589194156926008340874172938439332084256599581936622046817629419390927385482368673167546129914296432208581578689312459020286498141419586171043433054183524597719350581471231388087587678749741460929440641797916183413220055955651672806193447407122240638882747775337646260429129731860256747626476471081121963668270045011973941504746023637837528809601207911245179362047052912072015905790898725423962770368645323309209360623052769696643158113566714567670999850904278289706616172696047787195509561433079180926968050975845757723347499188886221181743792121424159097733624683109403706319795679088717747747439399999121459484197233954881296755932496613903051447674511958941226606081601639175763871306668652920733733214714224336037566874814417278248092834103930836534704299662885583706256414836821786390034916480788802644765479222666151560968313034217518178803304701207798663640288515047283368050792165567258826179756614240875196017127418151137667347795672759931896728901333444755837157456602909881356940851983282203364865645449051213120431100311297022192076599139717505507363114620038728083289498006918068841241781361811661789717474001954770042195859187981233862132847513641639825760281402924649444955670037393645447778250482540136222638783696218665405347860451879965664135630111716805559529111290868876103590442243954111784681112827423287901073520854529037638801707583590305602795941901324287775474170896398701214165356704994204070045034787481205788080673817472530234086971813713215340320562717973189072621893176219836571971465075814490435641904914728363967892679052043470260672516461851171176305353890704413934748828823574677855976337286879370089334954193186942316488769584744170810718869092305489996700408894643326370233127674111784948566100759712932971861015325040174171982312945925621658293689475903607202875401245909736547758589331606825148526784009500161113784904040395683431838523109728352903456848022033431056030604396323367694523979747588299808896137790203845311528773076449860388017975753122702547052002212839456534135551009144882312415936358108868374162624846372895507983456235668853484358293143130202496063861184322770128559329140055352337483370438130727299948137533141305516416105084075438593118103125750478003326935191278878208355846819511503453923211806709257528086112167861030770558036189258839263556938637031388412748802449905687909424142336353219379422462470251045007364221085343540324575897487896893840838899356528222543389744284453872551603555097158838063938153692871052758049326888456242558526916174640483024025694888571921790342271174820657321108481301736413860891240950799344963645386219286691525312343444216191271108613948429339821025993326017291202995982640025113404954153950320230248979776657422779320036145132225126058136344843828243960548436078039390731381910383496219698156090924902596087899828566371051240283004277370894734545891545066911743151015768405313414142820626570828713502314548767729796274605249213189598295766396589328737018013894030554866280080838581777214834000835424262944476394455042948130814771938685063268711017636746786757825422758299812681628372244394849964324889430080851375303141592817948700693227080529965003260062444942731759169108536442809784244015037023735041970833176592217579201090365723725463121881992069171168680646404402975603603087449341909289633253797004295928425913491243000516824860480057444165360118304900446212607934848386219933399273072222236733469932584438473347849447975404202212146678816725803593862700641259959861923953269415354825421761467295006967880075148728167410343504896929025344106818127222921194558086505576770144690225693619951312275246157916059085118004709353650786817521234686875316086798721552486947914156427568488546235582479626590559206151633057823443725358702067080797995569968633176132413835120744473986259875277035853437044711118447813129410025052990318291854283518613452313172583632447541450191965344794663922365980725052260961961058410202194091845171154778191072118373949110912577353003354741078072016377269795318204727837720787907684266551509436944416799124889061184279125297017453575662047944109534379983692734123990968347705927248614766336326056141216432002688557733795333240233674757190895343724971148401032969445149275508983970797503076615607635001055084699896465259041761018026903224359929459914397915764227606139416369643305594736205027452329524242399403347455584766922660622165586854279500199389467380159094120395462501333357819628838295224988090561168352674673657352838710204014501968838723910688517647263021393974061819679500816405405192186732430603613580549133387815934019028008582835470456130173403250049700189483450458970559346878810796725590263303396454827285169872561889969166181569182456742791464700390094244304799801509392096820609964340064115589862787417931988511668615883565070127885413180279279395792330962411938706847969134306770630414851674079902786979255146119087594427344717842630248209937309509423383701628592924179691542402737746509721800487542020669210874483605755843827221487308503906496626509673307971937823873761919931317159438172303047962895617310946325861529504077954875252822543088643697853039112349529757511634210475872943587631366982238808235198710179549869737128745378077406499443343830712616693367072983007069787700887111671100331038122230750275804606801512793307411721129600668865914788260693084038658311707849463225267656883260445575881451059814613112070452008039145348770796141502435603103006459535085697358789876507695225227089600176169177342492295328710339250191212146813531349066696303116535108896419567528908170300426581708930458828319780236938489794627079395094647543088502816447810361055985827659451440574217177414827808393722429344869788442566823649268551731828342858532662056087437605676353943208766021395653101893556672684573097450457590076611829279337571260781138748622738751255438084564569588007579262050787699219657032272796481200406425938493278558697550296991770879314727242528197118571322375678026145415624412016615870827918848453432477222507207102966011937856019817622510977711085863501934893852838013492733107152101365409526551624579975862905973294865448160194106733719244824797520137631123816288001998852740398798738958990990805296981140574120243398479290850628367419494554093475820054661130744212276933549763107277598013983923248468309027613304680434617551109227691835700719065514397341925133764603815604512684616620175712592145039124930385498105390878492683045324906301586988875375517154293499099190389474484589126526634327475099029404787391789263333478271775281670585209864850626559084943046428020112641634690787513667318169139587855499238902794022271763262370377724070303631098187340965301458450859162479255050913344308257263433073236837596204520533638012800620197393598918901426704086756656441491855946196636625128242888652796396131992175348690879017483505945191025298370735072792933363706380705363118516793013767010191812226602179611011149762345821959807445258234269255910424239397466556729284015860087424864753541706343497751466612500817502216720968385260232300754976418334090801527350829055901709232910928822578238785857673641763324969223492632352384117982276175698622421134585816020301649455666372417295007758210086210201057093860065731135309593961182339503177443350486983484992946270052059773200427588382697343045437546501459413031306809120524574070465360438057071804901895551443155331933060498526286463107281572631474665782618637716498271225223053312747229942624017967531177275658416495407101995550128248576933584603482064527114541483654516925943418027133544822721330112788222010048902874537811915068066125438771964639490559453254766179270092199972412140841013625343786359764620484739515413141548776572162174857703475695553066263411271096246522057651299775005086930072323450365627599302609813163584940053685283913465678588229528299142320480260737008730808101978596822083177579734095549075338828111252502544775381979288372188844646730793179224370854885421780510937378923305240001246307642742831654302867379826640947791504259312287293498006297151496457998372556442204791802191812535605761532160534918638754171576275165450079457212420632270432596451022531391730007338030066922276757184206003974068342599965448744985405897757774777433847228284091359042323143682833165104062631253567708449261915802634652362064444322962128801715786611835655172425705689246513716233560215939529068277777877920259389028304560028691180251218693945426017290045515218072508903572921902074611194596230379385979603041757859148373831032322696130378286525455719391282365259869442389443289353817241651383011900055874752898605664749131762355463003263293744947450825629134958053885509515189154723963727937273737670601301880403095138944795463558125022324318386092372526398991005868156802208524203055753227909292630452256516023584110866596903804346148270055251571722977653502474247942260849533616987386745398645703368569380947916676486455292834545105765731606866409524506711628147796918546923952112144564280690448919027187579862651585067384429301240607800046362887354166578291242730120026150956609173460050513441958387753101695229026647508469633361844762244110394975869267914320586740712978668158662494386610334843283157567477090325963084470584359033164115020430726088729620079313406995520384557588074646247853030141022380833698658675717208322990152478613764110339758549413286565727127989803255746055852397098869104391638577181936972246960379221855526917136232301796361568271937254912458864821290485254596431971518108287640399810120771001559781031771303203526770714989733792399105321430546900437430323284680851979409887367426273073770094678739212716490989637216869969297986998713821722279060498843417053356125455055305762645898300738933918441041689949056069691540665607756383641190967190497550981609777402099968968775714203910940847104307986803331652944346272819601113532891293021713847506882916972086470773703238990835458583526610536392697912617272576609365750789009155178076532147807960639153041055717874764046647629846521945017564884187179353418484521466227138364920616646679878265526094081900597214775025686333250544817231082438682492738490087295833388637777743356090727984722885473219079022436058572723518661305642817587059929850470104033299588551255025485889335983274762130731236123015445484280679502870381988502276423606335189825318098237662634515785848618978461813703843765665009205110456105774647897427959932216986625781511179014991494929600537887124199983942462868161009773023016348642074360318728497146391370263446223380552236118293813017257315262810792016613039996771153408667340421835964278240491128973810433592538465682268428202046454224381696226631493461036875162970228685994024430730115354205671780280641645238398073503670164799087733624402412273904429180257174625984951383863126169655925620205737550144632127813728534259461622754555217947626684606667648836079102615591049894238544087575819454667529206374698110335989110250974652331245636086640866932777976159704164655100387651292179408213611371678187497774021808649211609825921962157550159360989684921441514655918481979605509890278012695233161379273923901503454372961543487461493743314876851774381857992615182810571106071657543220253625344237488409693435891614641702453950065079634431841397092866886845709219830602541633959293175653628842669144442910517358473540993493486658057467357560347720145783822546881311742914402144528123527108447101846227800196968091380986624909371186496598975282769318431804349983739356170513301274703023677501956083016470274961597548467007818158853563867717910143337682894111881901700184424086112216000238543051597647441324878687748054756350583680311311326724838797206204155887610923091374517455662449630009388054636633900529208440678230155769151143675065678838942446435371783424153241294397102726966988075754657625729433598686882657293067687015455870906074849149064441040967840842817986687049491897792785942803269849058058581577947431049933628736989132438394569447965413062922400697500653249858957310067139461111974348905718765956990915517948508917218581673072441074019457567900616221839182334419098402708940576847341556987988407684301160285748675192262507169715257525972613342622300688505354141534263425404230689481092416639523614599226853179214951025860976304355477456353695856813299469854165878506417597832418361268650222097100136554374811106271931852899055237217556505107694819078381608930544955143162335905670508649805471864294700474756625053632437570209198318536926311637449730643280161853563494712746666865884460489041147977329825370180444605545368611644122627998033468243218221215682602148437270108733287954194852669136346567624464561899136830950838659447722146810250124105754052341462009424495518897743357335452484803147563646836528412688970220450507466888429455037278581157060444670185260756026698136496069315736666019284396526512916358255260379166776665837578482992400501623580188516024967568050024352262342896307449750195358348319809136103194940977425537831114285928093043001071925741959746972811337464070022052240655500247610252826828772455382282472970045042771048292058592780394501013351263190734882437805323687617829932827661530993150536328444602891753764907136206343354216296060286595552433822740908231431616011210753978085726650768052508823594848545090934337758986524370421462043797209855434807053974772572475864313360012767677479759895697545709737422795017853645892375597088917378269576136410837573605581577147592508131541953837547835348403425760246598682551144247100823847150589777889726009208862507347393499946035855841069237432677596806441451922234589471235531560601798989132552690548492767805762119374983262154747413182998371189064400208620570747936528392085938003963766711799588892658664505657817351353020778690412021110577413651032589319591465021916236176459486689208022760543352046384483437954967372796804908769951772019197745232525639209843460188805039879016528085088743950229127856100869664350945578262695491119586024580387183073243705666936696834119472717283891048916258799566097270621798467353129773074136462228278733968674401124307983157444032077652200761668218076339261316640679731030860615423949917632642543135843845806074601412748317576073258021569694434617615056641272073826771530772738410927784637519620813735421250340384448371537290637761960378221747587658185733425744773387521840560523170973502760511435882538008689329255368896816625522503844247031343770765517149491069491516485711392555703034723321161184928705066519952626547479946717302242007224435481640738726278066991140034444307030281310270334750413729174655679596956898577407789996393975050951978505868970123656956426901824978041681261802072007846009656411004656502851020407331089261052778535193912053890236697779730970025033212036800776053168801745766842905447716861359061389597456479981901516602162336464968145264450710829685517599255138504291293009457041687478462531183020060792055539617760520914699392159705230243365493587778785822210161102508212120991927898713081074658708090762269087789913473141016892425148833093929545604548087387744410355373466246588256405064705006019281189517264103860188252462846020504084104363448678177070025348781133521745987097650812666914231939242284656729878995262399966255211731747910282582802414894987521184105127447458281428615781773245512484572457759092584345045992675936122284856931666308803602705008648598666037359447538164180381486577304561906265937903993078144457174511937568348203470662449332728357463701245546666998349742996183573122113351152445318223710630115035801832161139856199120100945621253661370291987992567106055665879795005362942166906925652362882800952754994093307472431437564158039666889374393869869720636934462462897270241444037031323103324807417154007967804801475280021212934823932111682862151915795217125100456318506893043412353680605744994422750940619268889027841982378130925520708333169026351487302576357261252015310693102053417663982594296921538361893109422478572175627127086373085253775829031722856404661783747458135093973245545168234662333518327791502626993204830245613750781199429374738136951083337606826311931100988119802714002646825412522635646601538677650918604230562201948957364249621180222557662360301504445993361736026513804552055978187325532793079186688446519369096954554065493571016247156648875245771893207381791249698402900913850996543925528049003179818557793396332530510075001803736527089454048714456138481059458765079520851926200627768642059990151312330687725709479332665996187430948020363208179459420091565636296268612552847886370842836458686321326873742347934272954310108841288390143844150117753547548999071991780665184142032392919113228089692024269450942538495490110210447507558503860097922911138353617592502528515342967332519917064218035249191846588008834502786393967223927742146177031466946044200192697771777223448447412546382007044651857712920630554154488720733906634002947255960947363383887712149114516429252194570117090611571026278471824013004234171037944384765942468380720377844805218392575991516585308827519852155152999398588510978959935385839185669383684760171308933629822563356658841109498780029909404400249995390858589629277455431018503297497045811643396019598765218527044648388132374023657308348430398310807359349939661137260956621112896753233103082083320757877081891208862828332580694787354523268313011185702535865443758529225867858654513432302423764268096342923045931183827030773455749992596918407806045549096677477543830503492894365729838258440797988169109316670285626485781658650538316997984005967949767998876428170085343543561952748719630955900805400654345850606521931912628436206309247211901417665351670707330460471132548030632915680353876397587367202420862828427245131270644766417071786490928906535472320269571548031215074142646147356987334207722066297138417020413292223759604613483242324862240037045886190380307765317945147456119801906824119244181722547709132576984875920924748643176515494268626887486365253958489039773082056112047967572647821800551049852486516599986563481252965063323189963395526951002377986985522059957511381916416069290232958979573823155256678890214339465368604699737965849363674106524112865163343714178801447984302273979865358655305812606149674769159383919890755753157320873344073306338788572092395600733677584531170251580849287581488494114222337768399859704565175594043138909044847398236595679831491896928208010990657013278623439055747510145869252858977043865215033175384501091723391981752063073046985209810988647564720005851301158809039671049943678234131285236114033669767383973123239131340151071759098826758323518053547049093321775901324559156470467142362260700132317346750314771184272908399221005538244493714837560721251776551240517977760228191186627313926392641460580665493127949341100547846572374402874314457096725369165143668357878492986802193234798297797968684237035695536851789162848000077042607428915648900322508136505294350039865910097099616755073491667883951029048098508016342692327703762837098089879915485081529593912597455589666981840550986951019827376171486810996436364274935035161495823455560785012054221991504387137341381191882187591169234861255358496060205643329125644422697365451152338691415042547061460616568276509000921146602581310145386947601735605706184683294520830871644752266996886683931558831733916545783140745705658188249307079249907158215341834809029314296677511242137215270094819957040073951298850703957444356568560152339633368490108667418291317866935312540274369697841920939464046801699071465819249135095132131515605465499025180319559578377556139342827915742150743390629574463941661739830162302176064595587120152733298271028097135731647838416240326037237108315893126879870419269697723641003554400382278368393462492116554404620349519685635944966295874314176393464489905334357916593844641536775241301097062875770192329808879380161820549955266778395513108531813437435581923937207706369818013344876616308601310471374564940963567992427092354893493050922656287226075629005279268991025782135035748058641579893149943823904777632129729157053330280534853556785941059527501892562379617482362745208402915431159988689337313953757818006379031669568936544742730918266612489049478911674791989136205287727768987654066217711177432688343315903101755403941003138830031577832608565760135512133225889643957059749695875586538819255402467960678199678521697796111270197704264059099523071895766490792903455709001630299855128329550755318039414172846841413409323954354606369738194239822633940609054884884055972487179224656570475505471771877120314538781360503057500293608896581461978871686521211190380489559967579774789981646598552659966231693866670754453043549494281042022825905847805270690571987633887312096986788509490720980674216552600578054906699234661529371446774235044338305686012742075350911773133486989480547708313710859345697274742876088854512690480968661257375150662915948297521615898839338128520145623611169942736779925087375522773300602377700219579041896259560963289560302503254367884638006671947329091361451038527095150363885236624676036330091097740361509890578256654805989738559941233122151193901646409350464744234992721084824981342528166544158085761726967890624937040740247559724053877598794545766930181265931437069548004639609996926353240113585587761495853213580866664392682324255556289046851691048709588853570341130230421801583349123392029164886885703485668585722409543538184937982864056298065309325231843455666400951643978963650988873303638620539966591628637299853312688425501207608416586325913060159196062305269132037816216914880115036222213666017794319323539959694140639381644913500705747563848552481961439095689530419186554809373063114226719723175869836970009702232569542245939975581363839007035827494001041642461493148520460624116054717320018087166007071966765319419780273358604654297096251664896333011451940383376428369210814789263140867204875364273570038796061773825948454851553362063693219530605945096572417158723034026232556052722420825503441100157973812115030838202825949718292730179714298190207916752881950871034632640879407291656857170695386045337827872985359848163283115827109138367329679500394240729787555410177134776300381540969119447744445752379673557546806073501139670946040021848019300308386460277532156124563513365600510053718931791212693889421350911490352454440725442938090412007925285344432001474801143764964453859580276354355246838225964281896559517057326462968865030876276213891518614315555659375820215621753107764887158874710477337289575418045614369448678989927227148571208069971523574173021172970881311001630337943881814926158059880464359549997202074560113641317396057476995059171539252519757391070953040049660182836393950600911211153022062429596167862595828040119777010697613164810629262424602182770250935157181385383694587819648038777290554356621226065823615954378836624300376771629600110996574289759695111780428474684141176535465384291247501316368167224012547845467412495168897019581578733952491228969126489171038141953226794262547178223324513354645103417558110646618880131086429034086736219723291790477817514126636737428560192031294345531204658108031316077063736636305794097240791252441670048737880624853085187720100502481895592154096298013796180886900531503347596221157567987729593422243638501159868903975294236878938361849822782378405014305074106833886398392476788358239742821540772522334282133680804623146011184826142218350922201822693452874442141836525190726672317943800235529158373206338990544813587013053602098042446897888678883622074380514568067269388800312938225756110711912371894121316932367959702316128539797702159319140525088616691066732044577238497656089190716050316288488189127195754690613420935598363057105713007587549101355540165814305410624404988322464211210889964398201504113971275793472093360727157288649934213619207814468556751578575803549674788923982750379725449644678858577451165684737659490246401426883498951560136420342315933318220096866250211910455535797385854843916977708905432251720257688790231121628748862311922708672456618458584755163394058411467366504850632268992232353945079881814378352214486421385723281980390067438264004090957962585273685056908368544957325309749799961683182276338635532616162073263633926595040510111706125382187639327100977549388405192551971607091565056509788143572545476948242775527370000994704719967137140208172087632256699206675590327053105660717722177022414057268273274788254132792952625151616682300887871247571413848366568119264898112780668135042143049359540637148645946560175659438405686316795419102594290107034423125785923026701673699426776976001401479059238468011240898209183363981924035132560019670598163531434172790404898301426718380155193289265494888096991498581271584344637163865884428890678161476052580124462873982149109940680874801256933715883686391593990193599874064928679881235435212604473668365835427234854207807759559801622131591817141060610721432035782402262069932838789241123740140262722663028887764987322873349124779036934392020183753356299272558140838043753233180387364828359861859798258053872354436239174344109379063967409590422461382415632008037197978041529698894157976638869219092543849253216781967788620793641899449737012239767708645685626160663970229677627855306870583776282279144799960042263981536006955703056892342509205115866972119073562119303136383306400978615873074633663635091006992034651092830238564210735192842228316432299971627863581072068211329948597349811532891223459281767240171514079963175696653412817564400771094262537866279359619094748320879179439913552818016428858303907901227577640808249961734386630684704626580404961095115409869823650250330760032417267102334240823960114921548232700477521007337120802154479230212615383973652647346492517744775977418599188049329980775505465385655856470905679588229549660386426523296689196334243747558242451504430387218555179367127465679850270841180042163335547506795170342258090825422068084935108731393258272306573842639587849235837930001280184381883176969193569466822971277313522222699535065996528427866702447548518346182732421687115727540008855793179642399613215745886448917176213046655392464352321869455346759935063020648671667214714114851509748660326554171796945430787233468691883583439429721271989571557072392969755136746004375178102908625194595788323229292444946997235374481541666279509653917517460204997790018392567854356623883876217611207409943898357454199774730243560572179938662991155126574637312697913670267441397078577257035175344256610630548249411932951595792687084522841026038706577854577303543081136470871615817521317374965296969435858607009134487214120780438780391727888768288557368485528165206283405677930700447472634547559598246608962724687137328913131070167515085379159904664181151624549902615129512828686534510254685254366889742894392340696798563887127507776396420980133581720393900760822945578538107743875352581548498195095764179740660094514052688533315349355937704035917740270133273518265866136439622945131813107615304263586133124691841194212508981823230367840324564306627738535637645809888231975355806853280250266332250853313348806528175890567537428389849675343908857528428209072833790656376393561352000041821695395019370506959901907916953327535413567488131190341272806689410880883097662188434611923282095379542009903928809532440187769016400126694543165522252141547334845723701169513286544546287881966490783872193300768531840410661675505870979344498458948721753051789706038391740043840977591156888272903723767080524528221437853157523006017151970324847399919224835185129086808714160676229203516013347399199766174805082635776887313769544443772959398015007405196891266305211265857036366520131222074118702686142832220469613071908187732135631283097141680773810385920464422880593476187051064530665357706551793383268028883772084294288473225354619035153244348679861736591460876822437605877497948611637217338619921114727628471681165744448697790781422401394822003096605796313081975415184170936506654645686500351500302526892071685744827730153665973252905004801905206006183824386338691676574805204663814259138033138403593651493384148407998488362810651969189273313088556452423610798895626888708032869078312928982686131998786843658074302311832305147516266012820858613552336513083662109096982757647241153509993794852543029929803326581033416294922661314306549525799043432788732528555922336029206017679041715169364361086694043738142566682911779636104530350941910953083288908559557896758214365575259212244769402517358616756947200074939055183319959412755317925245102519336400462307099106165475493853407648687602989751782120008859585848532813832017792815334400961659827218798921120988263562038331110909673404327856394029103424341217497829832618268578376763096692228208068840766327952089854130548335350870430960715809415543078188547569870768581567849596737046808000604277050316583615063998862494763996156231657579620780870006800331571041985844788643922101262253847888610297365113462309406582471473894787353776319717043934498910277849539371191601150892209093538809172943079780985499178884856839123278456962448623964553848181173087278847377980964873246064079366143225797551278025730101630148578921312828944899479077886990269931130369853189042986730619383980702201879165404797217535668145863250773369943639361093477700261506416279065480057881444554527755769658510191780173499059851302938845700023241681279374195582560550943732275429501936350038150608655738541378329233977639018925613534806036266152362706822177460751244165258880803969389901717855377763008948078731762364146196176280558513944375564292071473439056773269102620895927439387182749241685043174914835181341098819078256268864528533392519412138234279638738068495888932255902437933180892301157651961867757217189422033936140810772416126404486389250389916385015952052391242326395976911866987733042585812734789441503870843711137797197695897985085993021699405302144224406051976180361206454127253712275330978514235898855633798261552029361098367248983735303595283064087554113508003670748072961846234828038574982712948823127848757464085092721361848654638227215971347453446424712499424151994228041599829492124264603966107833859525936721759922006165421513420912886651651554162304109346765624684255997484303725153494443935921805921495219497393036781283743493337671153833417231499803491919682171546449139038552084793738500460159130451575044756358952739848765858261425636559624426139354072928025094968078296216842759540725615701344517322871980103202439717606409181047819855581836261461644193017165071814937243699698617689671532006349586329271172477578026182400161970792805657829671734911376458698673204247611513161726226224563348462533240249615874119274185426707941642947378803996372112134757427780990715922089900985321467618794806030744312446355630904453148958313561230051991728379567747596398763710658428652863480473928394377725819592915694632769410471562453618530540569521155927749792852809358159268739864198418675384339360940781206099770203136543611448361618559222250031428633834882335155087465408496913942524098230204905200590827955767460702989856090188273779358473689801217362488567631466948875875921979833634967936209340406514337214658010284639063519282328494173192169614703388875897011536457772721940032511243903619556888873862566007884109508578379845125129037383080862916548241640946473237002445655819587050542311289427661901465188893717912253136276382027800883260358397228961085340382326618849566660417164115457448067964822611977583269680107288647290671860050667440497695240355496045745529103264585622243670732041882149722043910525689931881597724624697178697202992739524779450654525764001043792781162361400292485911273126451358380383000608957986523007355617496026831883188104054864321120764173434053922906278658844625739897751473713769829808290544814878144775248642767614448115381166469438481504748134768454016580912735026989474745189914199002450440708761886965827647892601810046660908393973562218242792050959372501783359543344348818286548828737266751866580302937478645482340663311025483360967005530640250714782020883004857779738038060276833428086689909451162100589479318641613137380767264317966494176875606543057529108129947180104668490403207904979474721782450362970006614216184525520268976459604785324406263318927159707752642450822372215073141882993439285105150174010506659360992477651257100079678196520482943251179139025811589627639189389038642535267567668164645202169590735416942640854409701769310180710142191541078376679495727711733568166164526560059902680121794980879913357159135916002195433484663798198198161876981393668881059986893456276300673736249133202068020499594993956525782123519703049239675307659374055741111490045945125009065921488757074002866116030560937531170854172093149344327397425117272062840734089674793116989859739725043648656471659875198314801557394881863182366244346713547959025229881968912610436065839295831749222069420614902552649300274901630826739894196760777295594396577182622627148345849233609850425573153632414056917407458424115670243073169983696744405806678309948775879180074441502528261639637705643262994938854331036901138940484445784560646292575304420881198357800292829871457046401269821283670971347576619184821772836368133339232243348020242745192820070050166595247630118397220278494009817104260258359778810956440595584287233668013853599207395380040220876232229605595274584787358145105917278501468783044984271070585561471720922568760000704990418507037164127057758131602615304170266267749334765238227222328627057530445687402307994387154568629421454160057814783685323828514214427384125749631349711388035051417054762554693228681843288212624372513890846414462233000898217256444110504661089216747508917530938060748888770893032696007720316191257088699999504881144434499187672558068851019387128759770625518950117010283169940006120009061565465780520114545510052300585776148112379515120207360085500606043167283490227866779314416319878701485399098664504903150813115502230641798249445986694457545873107088176277920827794707023470798554831453097496966957863177043525691346422326220398228044955651612353531626344721035866202965168387027654964229699453444461313769594238183284051828200279179334704119580860107254748018077677228234862118509065749068967153461219396867755540824085077534193360436710989727420197097249261876141138055102249995036224195209762096239616005271312798842577746844323755625535673534008010544636714483173729258642038158703774521624475188673663601553668042045910917561173996785147543097167524900880744488501818363723384701710337031350574704505801363466434446301337798716204592493997081279501804096920571554329493761536889911084023417776582689667547716468998103821783466079463423497827656382673793517063151359747542453602565248160456737384152463192148528427090101507484069490555832624840412748767513352470451022698914251386680510409791251678403862531320714146622723182489259677034619938645581287896569872226112340909873412449515677986785459197174326393465434961666482984868157478136524706303852625241340358597732852450564030934817406797510214201683388284229365272991045703585102812234897235338722206596437295175801185472416913825158526551576188300864741266178345216320618844684014594749374025288976150514055961578469267473305980461824213810922158531166810607998651413763279524834265988119760368523158204579647943587203519962012905270759346055060668513900417248650851863243870185438397500370912700357247078525596275905122340808933252380832656974129136710842589427912963537738893539987555772858169143842943897781346053449460446473960095750761280748456234208207407258736324368993969759692848616299346208063951008289319855311452579851460406186478357774449436684928984607810490803227525311421813931261778137337069723524786780350953025180528245757389420633922257544122427300070940806730736661210771739295080257154286671659091299920129089688092902323919775059848324555687091451945752616522705784168503057465153867691920677829431018603230315645545459208386640911156536300867915135109111396705852372215565691410290231662163476167657031975176356082353091771611086923144507615513681070135736414374784053139587550236524030685851932743884417032660498339799379506378070549518069527885176438913312918565680775253790229213436611977011485884494749917332799902650865682763503293138835596464124232004089574514159162722111619437732673245040951377786520202669130118824299380676145436832271511223814832080419431288897711885796596740357931912032768245250941746096098724116503424422610280510200564081354270649172770843138020585807074110557378535319828268080165840903481219422441588507253173402739953146348392405414565930962259771110970824738322529415687830326851929747060754705047021726515999030059972609766522809881758160998255395700150145058318037860184551715116546651227356272991297726774686423700226808791734485610702991251845596491397924607461273179483948676231761007428031887928001620189794373292264334583632021817665975015258941918009538243030689764944056648621985425822076177071404531726831098177493414022854597592434248537182887721544648343514708462319831612895170266314836452736643527045328275848497685757079800588680959655094823561213472754573229370942815933729514706992778883076222297084548808867456280610919529194374239812264435778733717602287252139330556124721191066173451726381076466665135246317814238982499158890331021450610578532709849339543047979441890614379739625006733106935033751386189847568727544467897124767116288308072309238210535448117944939785126202213316519338522296464763998663457142459717224705174173270557551273168769626247052299384082404122457418310275712959802067993974708254127125272277560105579789191758405005743579113607311917887643977235119268732921289033135210397791447390787880191468703868249234369486714393022140621021577668183716603841619921375948378046871887754853316327256188809015562332925803415272949377400556459309403188313759824383635566649491040674262214737727561835393702703437064547186896570297125033848217808655206945112073180265451913178397999488427152372121489929843941597268424712956700312636849671406498447916715036403598751131284299604274935734677810428593326605444338630375910844961839353316580394389663593579724518640092080496301506328531094913054155698639835264910237936359517382634465279073043235616523178724217744480401103244572622610332592154921281353297759491455718957631441214499032371535726960453074544483729848591944489571917742900527368982023567258513478774280495615388900190813691733886032495634418711685765816646776980992475804677408657719252470995940805126627539579861405015274005554215931955643452382438923017428557856410945022445701568583744449826549749137046261428248073576454224270778738661393697965781518445885397934323783392951588966431814980831585737563226953248982467329325529407683679528754405598125422734811929416202719648065989952574446867396089004782487975006704421744323524079135073003607828807732380748315589310946662036143405449039655869706941579729996192568041321045424164348150793667049804870777767772950623537201327848419772325698929420238700295931561154253043214741494655417461917992370239527449528055025432109134577086295440061027150706393682995146183636966924524423603319739131723545460799209220862127676473929140965271290958314079048781608591824193268445570780655599535390103564650275870389553106288380296597584833076190191948695661563883302608228062644507560480466786996156186194486613788678651112114334856324308382373405958124296337251739863958393958987757719755137222586342325903830668867365350882148291350243392380457707884889317853689930016008945421532369893525268258025324967645722634357491015418754643432445145983324924518336670375367250551336073461251341540976034639432993016251378459516544438810647117621285202442125755820205051124485605611815476514353025732500692207317016234691895195989377764945002646305956170940620135411010001637526990708047562178949214416423424555601355293426790217156401487406361354764764089616986098961517949806326167988673520714296808882791634095014200633801834311585530824212332274227133943916174582287637104196251700393343157142876844013937733161806226136949826014211079643693206983051253670587363953641708365792191733543605868911629187409484219131854034395339713589948904692960970264972549073325805965289153620493246086711024171557201253660334992446504585180550887669254755404863384740045852357287329222711796758079795986067077853485388587181263585896544404959938327561341834982006470778994597912677981068843501586437370832081970132361763017068685898149998247242188160237507039693384780878766593337680511789241851922440227228923070908658443326511815486284094293439380961336269350642096061200898440781619481654535128974997528425472276965967342903702315333579515238155077723221861195330255084479891569281813556989931714833175089894655231217753207144458165075370677943198252533807802091356369040128714196040268036736358823827635329525615512414726311962672065425880601318324881400791679412585597564527458072809283009146303279213037881639656152310342169963208410730331656017427302222324094392042452330981423856182857070523448770181915548844453622514341941802597764817497950587790995303390806890114122372722444635194994001809062049522272678548153678815445363379190040687617730069655023058023255816607270933554430416955799080812187822071041565947704843060215218628948643711098687199282452414517028440676404441195493796666319473064590244769193433636869954489602942144437209061665359209813244452619512058169260284126971853144854479349733575623389921027767112793583653576170059283884658691045544516353524846288215874200001966497673039452991805001402330170967115107695951024925240777697205797314283114753686851720491154993792016933882392288981819343329624773749773230250510200799297627330055167271678946671828576764783051635499510254680487121650244569880170692588377052381957810203965398440921190046682696026063443842678897044371103146930124169767993596493129293371710297953133634879214467090871256228886931911975804439451449093966799615467902612410162315952996618668433732576485117796711895487516350255649447745071478587954129183161041117244057953405253814708346055113132556247229963441071628911942046281984506054657779174050009732963598791460208505293649979356818855181764586529444503561395360743089811170548362389103101631907619786641557143644319323856553347126947831896993986924209067724713130880205594508759542877573072196978325547929091591713979674046442826751834240351704443246702388836163456097280678304396545835412521396383521158734068433941247350741960766430812208677038125061053560969064613566851202337741443454929301198163040967077749203754661718909122361872304544320829982607450299476602779536165863031703118552793951960465084929468195805550998188451292918833241494584059356182827062136521178595104380415403122083625316196485878462457007056277234764994007977839089911438121007156405687174324274622657608211991137833637285103518634330232556983723398443424024417998618826150853784128236056536440283548359041030871147014518997401095448298758672548401352541381815065236973440753650245236387248170898476355773966107078138839127428549328314637730602339455536836024877371331017604112761746970915275110904668508852563183524784886588476970439105393116677697760897917089147298013611392699694629090944054471065126791554988309359090328307083575448319304310339576317750741720232463283013494374606119206709138792029260720256223598229855197655554279416848523007394056290953267533119590240364006388543761684013760485476670077106356872399042718234240424841910473715535867484304491608824863351838010045516675213041359022070774471716218969223478487981617507324010864368527927982533064105757565776009590403787132947697452168759931472893692421555340514306634828282142627849672590216859045340812094247263553277421834250582603970311032388775252333233079643093803624576148833134320351114990916148929269748780060157716490792281255667296891015133249225506317676697305817399080231929435052440193341055422863544609733132865884917130530266648391870110478485668050625086537695463412853979729262543561722624894754987880963354516134058302373490744982495027579695632809604098718707406548981973173049739910844936330086403003786911870226491211999914385237277901214886622429796642196814575680716483668409686704617067585028046802031504917570577965297967100210385779567092647240330382956178067201423770155608877186450170077647940788934648922015077756962313542718962249846546121524571166625160739273206836711648152904447606817762371645659844824761544303677660661795748447298391104441727610051224610749990073024925910952716683618292266812931756087280394302490883668673058471540000947635853247437449081405373291570963766097930048817372174885057135949491180438627531456157168143866365943969602988445198126054602968445199085773148437470552274900821157282351965142122133191046457750126206915173630520778033655515182272909045936587518415496328127376024219297429014957673990303587500640369495635466136504258134735827743899239083780448687981518269053627903966271915986837974382811513658529553009687241431869803545243352474671477839554414115247668143168231534635198424664942504153189442788502523933376070190306886561864323663592151384144911437982044728348893872948807280102978446511050722468008217051868823676529123253831640955265164538498771227685966198376790360885691362718349700513266226552308373226631927357695279705187889550566200357736248546100909799853181655064093642695972564846555332929562929562312490377117250918974966226340785640944939711253829172392566462393975656816879188648756929645002380646643161114305008829439031329826788590641552568097608857579210942316091724166240607231885392857349109039410300390232077218702456031972205498861180962348552956534680934463147089077676518919947841227160059483748982528586414165696729040256071958918580244528827416397913548615224220860245015294556556033084635155844670672206819975644051419091970693669486513886970685159881973729259167776105840861459733653558864730347338962264049774614068398108860468807237345938888644997395491297262722594091724319878303380151287492458632486701265908949811446098410637999177249280024763691631195469103037490020903997852092620185409680289597919623439217864192862865452700015965908865921081987367532061165204771960256804315229290161571496635907913674446534798223845385213821122213095238347386041693028894470134850962884082491345315346366842049654284496948021968803824928699646895835708885258429735217679345605770272699350078808955367325332711495016257427348077818644235496739043047836447320244870273776303857682211382881058513885270411345373704654346895791270855054536587201819378104033148473205357372962909160010593343569189867952521492149896061490837309050726055478904885544833920812439923616843368031677698095249492428330275683433509893272669784746827238742840048392788368224824311828640130509348532773011770334793459278127106614336850541556052642326546904500433313934612585927746592895709736255607924630517719673214139551578082247033850915583912224121604263341271675577483896017629935635682526684066353298196548516212459297376589122850936586173971623238802895941198507992889548376288169758743132818556993334958611618885103646617616758733517092692312465499293472266433806420234405306537456382778797882946180383109640927588876737924571598588098607446962224812995888679575946077527930213477009934308727151747040539946007159720883955367959199091194753455159864562836762880170919429307047434322290556399482828779689668440550433909000393581000711239799251790280651507589283285955855545050901179284927928268702463567221914171474937057817936932450051530707940590104731515667821693120263001507376817061572288264058373741864308286720099404373580785136142097384686172575946810766539045933598565583834125755275328265437267312059604802520461915315014307180478584465544797007957331693148820434830574903189581266375864252967022240617196921927171589594874732038462357856894237218582393103270180452867896272158712870974950469840946794180909880340884490460590602168778317785852416707203092104963919472844863942409723605052467143004312019458745037295915036686718986431362790111815898188378541491085260139011969665985760988263065736625652324363424157627641426868060158274690398489836126254434663794691683351196651383907257336316034303831630810534935519131165683616099928666102594272496628426843240084655419321142401483516725964346784722972090302254438715702370299167445132192335132986666423963865906415279019383329759139700686860572796316600051762703667520878465806736161769697500404091017351402458776392388990849469778358242962751460707963158573115553687754357737455476277933081153088172341547744663556688285364081343384733363447114814333954972553689868590834694264265419402158704524800332187178473210940226149752339127243838835288835588293590945930249362542218238929491264065555334325928382359304808578359458673182400921119939638179093545192218137824855291023607070818001652826133023667891452962559710859971889275325754517777537762690701074147238327398789065998970885014268425206764844936112632910938526502912609829542212090107907971581625622755210036305497706261772182976713533726380579123249825971972093805737358093076778065753607679637644031726426807939224404275851689448894300666365156714598161726408125779521942790375168620010771293306317878247324300794334278236630190104011048037545955652534024455829299099317226768720395200172236916468085851802798062906310397693535286220419899236356733492188353816703047398642782830750801863793273880508276811824285205575400950491368942898997508122003239001089988469881926312812101196052651657464695048881450160853125196851079835778574948441732688801177391208977231919090776266204189622681263594907246426236073993087807489770714102767935729258697527762435330708587796453176110605100559497114844675407892707932661318807663459439261532118778335193082169553264603222168067284834913107520053450985221705751360955150778331359101594764318976905990666306876523246526085605393815899215771399490241015032820612786315912226228377566522395582650041256004574731641344084595763767046054295945878136415029385069889353208414408875030860600428134617468548310355819272558732805078102261256884627161674627787303910393181710702900568659284217049127263416944839053799671689994398574908920973415565855070767059069769880958367160850037075408643174300201042803378313996158342172539691725973549724263337396975799809950210271473057435365402611384564815414544864990065010116839074358907603757885593464750153436349714196852117746277720024908899665621492019054000278380705428833763075950677681258990889168477270086999197981059720660414621752893025907591715733386216205336001954828832769574815328778417510201250317947552461988976341434732809818405594110325987701076676896379032770918618018676730161011259719692941637427747526925959817387042588453749106932531242570700389480209529599729747939568004641505029660964911768362851520380864661483194039847327205327581402775021805036822198355133916093149911529078739139776927050758911423068572767912160381826673453379498820755858474566556669913915556580087994098505842370679243433769826756562190559548156407475983850522205561556424406011916060628802347610641846917210109833054572079372020728951975833179222887568246813536156804246200137618204176399153408348079866608774942943554270370182701258605316412957700998135643029758344502117498163632552455221352721298838465629932263346568303819502651007784364111455294982972347124884264282978967195232668034218872162467084620185419842363729250192792047151078014441635497847158800546079565023431493466819154733172955639557424874337061147786575957554789699624782742795604739605897385913101961236098904046103157745925237777929529579809073120817758854978043072144333364792707273831161177340040549878568331906029875257934691178145241274896085594748905135411077406650263224030433598299150297218028545888815888240804420794151498499600089095499587285594757136489824750664752840030799936901653690044632186955009989471341619746448250134187757715437877750343213468775434846230721664780931239959146435268210152400997548462166508372354810379194498032767322706190827757645118622805646696723065235204548150354714817141007972147029654979906000942499416594912749435216756184333466463904371292834900601354167205290940129720554261008461505206841479966850073681929992863550150889609046919371553798990356289915119899857007625162153061575693467593285039912902372699445514342641054861013708361219466484933119256809687428627606436959211361264140049627327841698435259672437568142672445242780218714730961753988130638162260718680519974323942481355020462261454858057381557439631089074843758005340192004928078270300511915067282809780620333188123362464580388742966060432789999194130830961060693974928694804182443105808420827505845116568307410355402486535276627747072178104783920248906779569078422195776208321624895881529617545174908272829868342109557643451457498730740222944887461047864060072407706618427225986062455978351340535435884666893934190027326967118873411602998978139152772064845930325893820491507741731309753706196674206268329865454687311621322639819605121924670548355288140667577763836040070996826682987551357563336373667808549132137052747121948538599053392982562805446553570342480804028353112664067464080231324536431302637341808047525231665987414032763445992052882386747267159602318967973480210024978605446894683568056901935658572311943930139158024453565006610781835540944888352230945888326932256562139148236839094418971956087597267192944728601423865929929218848314940872374743534911002665445615684657852182703324564067506690601790828753750559505686774270009025668136458741625652711523060774834315329463849442013080427472200067467602342092974399183598449178271996594016354628991205885393324295652335213775506810657375830675335182193342306159986503574734886210116292010713966102099618200995140399233540013251982901281180397450450994807768434353084267929133694420505297531558405543657665289879985795613025740207326308889121221601929050926125211061225668968570592453865358505126543509932233361645055255540216719545808648375254351068000626082609892777379295129425559652853229664581974109588966569934348931397848177688938677022012792683051266765441267258601362906045343891983326529305658711892241719280349985567322934062050979904990637638467833365543365215288999630711630790296849291009202039014864192303871646986435812480002065119341053971289847569543644462527216827654972400018473149652657997753251950433901964127763718869919955137483511637720997419472235580735138998317495949406404489182921043983883005056287497186012184804417712033637778553003111851745796270115718461291329347084456098580651288596576848854907040928272454473118564172096545626029419927352304453614322865399248103929904318842164621677815760989824654083373855426578090236538979466953687818866561267852367492376378023354491266571057235459627073548730327297063977179697941539024541279904123541647727906347909773270708809398213267755546818264657774626734034456595078095842311862105884404354892594736944953164920641126455317157187842403056464102474630863084298098301494187041924350780250693287083023574527334865929200346062505835798924260435979918319016363224698025176030509463585786310434817473594607397206440337111410689452246699995226607226696280781990826885090149285975089994885633219674944726553470232852095408067980701780418091144458888443491723924166701367249845156523858958271201633887040613706686371250919586425535796308291374250340972528876505621063138755814637647107377063325895598273283977675463754554240921761733312437152243967778441249376431114559943040027352596083238242818963232975546043813868742369065552983644698896223827473927717863839502315398395399340476305430658422595638538960952235254787246340799671779378798000711098556274196294980286647156959953293120163986952039254201363015323450097670777830425276183795462704025104634991741950587195500325674058880546727276569643989973363684602287938463019088864822852906602290278690265225684741456500106388060648854314636044205730888764043912042255686348984638668753911241535474773109134802395426515446757650620829952767675321548778927378856832578545525062084346638711213390028247607943550235635041854642561576003442112188983035253439068871992038919422537912641137910939340359612962654179613642897474452204821143384394345711068576221002332834625469039966804270782568800060591639139682822403782438709928069045462042071498008209080927384188252493044023589500081662671644858157743080584562358759065776839260780126041440616894881692527376249634369387874815243553641671014209957396554858983828819214255502696122438029624972697055076167212254045739183298027348926283634325705234855519119493413670357842344239246870742330686568432065641401021559609363145511710465189251754796206263427506939931428215049363034937687042713004729880799924014539511669747458862508982927449103035072651210278151555611809641782560080797035258981955775871064187496930149603548629224587353856013865872002076492140134804675300637260312615452404372347336557539466017704934788719854228720346889185361132118656200460025358002952312709389713629003995485467410453390394397988756178644564692437702808086565248084432314508905081471697954219621782379132689091446778597717556472868904550319823286274659657929755475072746578449557160307095901451170433965554989500795386818152474901050857677677346473618516721078974030798738296331105627354950996556955364835161328852586658528656887162102995141404834806742234509185506998972733764360871589360832229826447167579642491969480254161575354123977516124694042057536961064100519737677225352715857953535452099594993537281418840206363997630105497331619591221089019978492708328895260441390411559070902876657571641370410963488616997262581012539077616993962358939743485817622954922675843104280291962442209381596148764389335757930725229042557868810624014878420096850824729827199955515591276584622327132041666526275928901262872519931007860723782318475832560435785106560168538959755322309412497006558103943331335751407929627057111247474120391967779145008630078412184071598207728778951453749080875246343056488292468468775330897117798565341394542574312539494394539999151213286340772797242683013668501960386294390078495767434330867635059500347412974167244177359615604015787682348167939616496250796775855512846360333936883651612791486269041003088649503009293909526302313150265612754676162282665174414066475779287597963004444913379654978590092562878169948060626242781575878200575119689021353719187777515622409989382749846625088447925427773116313573572071989403508224598185114485219178313787990649194912324666258355314228485280937854183215842709061143447224957007675488335030984318537352024712607683813036008806593037555209786372318424875148033213073757102175877361927851014845726223924222901014143054829939760484854461028927813150777655750182893453660402665866040327241303238606058376807652491582542827584615277132362919232201011186845179161200821339372285869742133401691155368284746728997485260907084735179474340506528050254072284872286223047165966904528099135635666575820424248545297547007794527319863908672783901786651050132090035203199148672638014335420061202062626934184264233524898384236199137981348008282432853824113655562732641874622966931907605387453586922800040674330243856660602339289569292781193946914836552886294564475261190421875893137945955271076740436059016306240342061272020374853675592031926802108958209317994968169257301346758554426969426400043962573803081546572504048149998849751530983742510965398922009812464378781668797684152061139590702015610867720049250532068073955935865598223640798775015813719799815894089705332364765100227583539156481232165552464134667578257137363685260702075005929207542694864217341436659822318596960584598251593233247935937319607987068877505396491095445358064163176439412826485203777794762825083746544156181672862017958178797260903750010150674670777391692900690124295460165694619018045553403339303613936297623333015875410031177699590805687460264094740949275210177239537487063426634504653820937900919566180920324836468174958585234073688406610379524540143193419970292470574580999023408244884158023261302991675099950998748541776422844272871626520772657150279801756080598046944028777659180003523583957989288852876521886190968080870839058005977952850114235464739853050981604561744835852854650998349789683168514568666842493723263556190170610311742845041822640602459949698107485890819032395682873464727010765302903378565404191733039416296302270074188095737244068435225390335783791246447493740655063207377457885986339977339260660369655119193859345874387781027653008562167520068217491744064030611970434715702104617315321123283022687517981188696940586121953112378159702037203975556129197938464711609892807086236175391808588404572327647414944081367377665072894740680458598520065885196900522173208093061925524870733447909830002956215908007690780830889674486665089176334502806027797149087068727253495888486233778813599896418779595932244379178688658637806799797357175459681986342671025826484543169078767241748322329337091514214767961597012914856462070401307539153384994919658562907433345275056709926240829046602805552857861676582179938591141628491330277557792421968052736586217890944497115595317940083058686651006611629764573348079715289369269327230921082610579420141650799030275225705233044982108366984976090263354064306317744734128135430695387954619459174839521908537527540907290341882393896145107413623305100605431192931320922839375752068499734785255830010372825800458519172371188365224426523513837541546310187840374340939921829578968188202325114155759812039488701953698146316867805543007205455435884558526125733029744439826127908640932198003663749759290150619820234060470498305721532385326017268270493774367185439327609620616391604614082164733382403246008106625930079782683628433331197339466874384145093925002303869438036962939234981757330561119885105488758346094752082463316691592942286225773704362024208283655051252439993234736752815082192269591884074831597933272231363836533321670890229843005198353437801041592659245079555590660090573531511444777094391723882252949580717270196833792273404715894260298424813373388747653226742399738125436689878527553410427420538433774814016302810641194976929661432298434733437396090809484061814710347599508496235717165390462010333560096086681651686289261720042542512919626440950796612176997575870108627434101779503136295433650842427194821168786198109522930248500821686675871704976211403899505903835959295923117902541707259295735748919670995744146529202602369366110056231827866842529140483580968133008459472963153191430178710834616907222525491866122144237702880535774813675707955503720986849295905896895407559899516634424407327530734560937123979700407858477833446791917375969185542163776518978469013424661153399235878243684227970637534978181232173801242884837654839569412870008751604687867734954707314130400074382086007412463594507384494798905871646114012929464287993509420343455091207150015298658638833365105137382107350714041011068994318449550544227073027313518120718028197754601329917284586349378582175917082862122412259345844436592161923575389022879284989827414967142333368487931501975872095371958526033355490632700801399285909823705925173646068683016966050971523393694536795159839249006226776335633904252925757086505686154190914356817117707713808555364816804366484776550251971323471579034504073287790150776531799518183435731397558457902791795297597060307103253107948466614935023622678768328362649979880152585712577697561786681963365119984784607664415456172463606984263949274859285710947579732580711827232325977108064060000805168412898842465097570326254142626496725029531987760743571774712726157071215786609097353812286289708889653718274225402578698776337136808002390812821124241088467950190474533118162728460312986940529772772823004552690840325239022811230617038408449672529942809909618684603563639935609712530461600897313540675686628220355376154212835594340359643667060002364624566415308613915850612719202413571265784200973343044863163127768778370823650998830544458828101579944066494404533968106372395352865611753811910818741602561581022153217836391032931529343388307954016078889489076206514473615273787957867704178196529278499952509603079017303669008642289078138244047188346386403155596742725997989670430393323429546690160269955578020942837334727761103457908823871237615246428565462318473669928454833357715853959343979169536847633566825191740038884539228590490501923904974654014976204498256526504165457202240343353720980318065350701410408510607628715490504987065682674510811955775988684309622402804210448557895499292838713827444783431857285937818314899814686532339262520275495353662226821072409869211428844967412041021897810250096636587661463539792434980365194441555314284103000657911846856399038949141193127022103343206923155041285408099157361984971202750386417720645939966057680840966575157631997399406820130388377808178113689866188775313855831077691773462530872157681728278302819930255123469414006015084655973146897095459365907529112547276312565119535125584995151825476388875985893619868702857447099332281130899522674838937042351295256536639190072963594330562597884374409226898480485766996381560523274436841024821794788654435674996224745300094113367540652444968392869215547074635269722401429995813482890946158038020059837824636121320188212348948040525146010761946821735428029914973204755669158693278493884369960280108291573546600108997287437541451207327180475837951319400561128173038389795807405103178459936666861287228616081011143647045551469773853191002722606980741814779599160470957184230458349129234369751644202754174672817617509221337031263962341651285722327034824583252793184434442179285514055175386833308413672772006546588400369257516442093818805977890637874603304625830450411951579470044076585346371707018563644152606001439893193810911507139623854091308400375241032817382186902764513088749091055280137687384396392256962728358169511939982221453378751271540947340803170595778643897729283294501209757665742511730860486274633455939416514406768747184500503527487803935634388342677093117844846152196275905375816216029440518654156966917735297926517598363283759864040825971241370085417428559513414516936510090697088249894515436736954073159253863135803558515229582729876585955709442538560881249339902401105460787500163251237671975737027869840555719263234375066336150357808078388486558774762518767691929598401820739837809975171918540771366334415435461525692292140220474423589921279157516114309961982817782954055856393471678877288082911484683351244926793201917547169511578211867453828771369621085644387534235361271702354662769306005533696437083360297909266356905940212567336129205535460710581139877298974328140034335202747454340957181224419527929025404121385468552994788275570505345728094558588230213838515853515652993769596419823921954101386378181036989942205507856824888506347768883168926679131968960096801164748868007023142011096208494808722535312102504489222041026912866351678134453511756443552862906541239162908127939705473118600644902813526090353631333582894861968830825790603156371096221876200034342986692438440962950601408441783158351181903753293929721161192933257751029996094480193632733386834495043839855678298929773923384500840464919921948994144552710575459358366748587067544519665291956487292431562678391399744634137149636643129989978783481402101486268729933763733654286910075962218728020837205929101948560729624192080535832080990195745487648364406196787076135106174764257397557813767424755411941989512686024172912617704142593976301333900768981813807914736813568966889371614409498097334517101828568137542692152358767938981025291081981540473695708677097545450516395995129686861304317484895160804728783931523500840559147402511490674880021247225106227268301469997171768238243069208054798369792161928547907185252335906561000825540068344235636603358916645152646654976073860435740567125949621229772548554800223996286073521145318079719376335339619530840156977299027796963407166581402773159365448147658932728629001598669673201074914338317765318352451752568734494513900612430171297914153259864473285366095812211705460373283592219794733000581017454366836937101564977487055787408659693238413302540809934028624097388723863114821129000654660061593297384836976465936229824939940050266260601479119622630778830587572292423136190901943093578626196703182050495516535046247402746994978125940601870299707029567248987034927740006453914640245804396243393346405180561933391818578403542967395826704247843035593300102622778861144235599293083081789988139541819456787037366429158506817094871650250791590254599584636648072560828289486794768358764690678546676411000328437771651612181043712790074116207059193833647148689676710585232727066013963141579363773497192233697419586396341164451095057257265227511760394846308982961681751737846851877048943911155282546798967156943945501759117309328663888890582208468168808207327816395576254261462337761864432155066061841612382900196157966381847878166969500494516460863832078424549207788764099626153006978403746905802679023282163598656682989042817870065697422019173369094452652073904254411880541003228999714122736326840626734908506242293660536573128615925787578304225130236421962101742830103311748355232899163352114849371428894014261652875788504118953052140582666605980617820282214014101307149608156998528223260746913366315623646422500636091401466917407494162097147931190131598125422190949985995907168197667997943825928746752949418257053404669508347631295176035948196106417860479582576710889643722819033557742593953294715401546665639542444558302573277008771635098294551847671135749782907901606113646550323476241353207124880759156203067738133673983428074998400585736282063655274358583679214000225995227503782417687997192373387221382047810426511926140823816159187889640559123358276825067748783068232373652854013087606522661476185521677340883983900718338469680720813598202676511771468748492273095078075936567905172296994624821148229754808896771907572915526733459173526875214196603478821096355241990640234699266559020687495938582169633843042922931039200372618977084092334289164593565025171339268743972976955689692997644661395719649546105847865007042283798550122636513197822406769666079789039347868241292887268970432090135356146903727935721482994964394281480325692074854807846853607727498869512609183900914167421692430587505064539974467387014355597100573421810455796143901808667149104902076319642987581136360969977375178471138251086320570136817701841023019792357604417005774396925098846051558945031512645695884005466807987601421928217909432875436584454540469498269572586418454456056122939580830526577026319011262828133484241794505266131266985472303480727811945907647056601547454881237709730217202443544347357649659160392596108740456947051879750551021640099190355879029099014544982466467889606284499860940516973193837650228466438741764427966116601970244531225595903544272532872950785688980371983928363484211066025786739796369300465605881331769310545143484752049161192919718170929780309522077663430093921505283121608653187035476526539282407213029225501425994192392862104741986263940920156478556687129610243330159397697011402556559319448217390696610037964209352101849438973142844842634059405655517514752358233035186988702901811477662334265010562055768525164147255142652844477269362371623229048469360890956775553474909672750716960871733077543421805451699715971807544924272470696977148491045629963089520766161340859957644805619828852391710211120744549622112372714517776966015001788103410427978030173625809619478640828667974320916585560994236916211258636865119640328331496829883687464640207169321289866383227411730168362874414388341034059734734438132724243277812473322206533281582440487085464760199493905243728470266649377221140750168754459827220186109820265762458606985713953843197864912841955084455849040213802015051199446233269470077166285956149175105362085880733533502517160245569686602098616520735055205574679406104688343649882692201580545101290299996755013975645176657309357768202403657128153481578838281569626369059082361425498484658371980541072438702286426240347144164668585082814753343269372828267840963921226172997183712659232964620554248146369541285517752113264848436194367700297720583518970709027765627568594614020985100102890953410004029446491053429974235434374666141201341594657234164363446499549247457445353703894891025976469707162369206408960877322838782592335705404252519421863253400253140376101911526805048201524034105741909308262366709264368755123569442630377551195385201039762177029152360051732204404418290040605174444000822794380419420853009393639180728404319662225866708742970623088676501311558101070456900729573975782333654834944597115665862512464594042731899450258748363593649660401901536038663085438028495196729815692044305862650777380060217639686242307608783304120761005434891510805131459722232419433315453992300235632706519964210387035893736719359057068451188950267712692298890909591712669438747773606692311367620354773082616286024805303818718315610449777714242965508008400134695292014128988963073550167548698412796277410943011339460495793337207157927976325743094434134472643764960239338058260105592945935037034886737260973239072329666810327491070526740783700321117916480641753161267173356952972871859781866363507799747936185844460805270011481939417208637520294133968925110133965098450466449219794469429113651034707560789939998979915120779558420833690882879345728781205607641875222903159961852998514878884029685040718535846386545045575407109465437930478581860723121259835325291684512060242650994145175939420229127887381464224884794271991911458586394142628647934591377104955293136307891791788624021241905514602005351894554211278873560167237277985397687558589642583413008518127372928170674052222123829290205065843521587084929315219993287693070309956505481908348095832645761847616128003738887722644524937351774521580339806756957353349282028313338966927870239330355341544086735883148568612973708690913048186142486998664544663591694744653561302326838811668160214287070161608559969681034999453822284641761791754423532863909866573099362781669485846495068201662816119306536654315458777215274022279433656176833025433241898755428715515580682527167474720770235686340157885609824748084242692258210360697455489203645949082624843524081827219251091713841188632039668364880133494781728406911944471880845430694529755030452423107458501282077488226599487610677513458461787551716425077538568401419700776133241470912550050007753434465205706629928013503003377064133871852233281935940056111856024041762971117467564825783645251860046891468088002016947381297758354058452707132404760327615485795688769681037208608201090333088443754822073856017790863904775390510969251650689385788491541170621800179563069237605932249619518196244481296802546023928056111612083744322250683061164060707815344672281480193670337580450769266005080716356508117613188182728694167106829488832638491481212107785375196161753309004650439897560181689083413940131984718062738339952981948209380218465384526611395899038555986928338095969138338916070843957626248865030394081670270961552423548459570110685429841535741035085334138123576240802754561918473990089094799188500855490328493014444329824137300471885422777195767851044407711357950062107765700105375004596401953650776220015979781095647404259155573328542636916448026044642068560083270348723054243266696572925510866833101311194284329131904630289351139104825425203348142458163658267251949933720010701780833241972500252172285241764365268271387708928067868414376021156255687627405336443823577264545789838917600666257386939069410436487184617566664441894321305000204941755226188745853351798916036900510265313614877412019758781416308063300787238200196975443291527987217328704429561403510733337793574389908145353784371772736308017560163930048952831100201317739776882896441773132553728992751508844662410570303945842517315356008918722820871332351529930628666994020915530870451854444676061456314276312813505173537568632569317027487467088573726229441264898233244838969404865668870256706711080735786139602024642058687478705759524797581024693410175593344086218790355797082712488546750310520708068445165411828591990843393404163801031235290332618009538914061224581842149388109575126206013382990475977001736958792221813363003903510888340735329499253178882121429363199086256404642000426817203430363550775916384534944517699229993366792002001301743453714990506366539830337990293236240954452641337710000576230779175601753100958915949959952220524045114185052514183474072391130045814965806924776476038121484073490767315009040816044453025650812439801786842045312428128753460438640056670045990785631651220278299781158421530209014478739564502360106098742355433729614271678373623097081866392820942862957746399265321252184680833410889349389824257156940747883338113533144405241998323281783222886855703295748013973036526788568955640293429581783606702541417686813835720294641758286171488738886139287902036054877309766394151950874510399808414493059767603465583956599769306746163928646582648605503116444092746019382027644726842148917305943281105378864455439979535235450939465161311404759838648340567065694077292287914739848651693031983135918182094743417780828206147067587892240220167786975346764308817572920361374185694627032204914404231685569345680022888893584792127789972037667186921298897220100871624366772869105499972366055427783434272673455288518935544362179809806379379087167389293693509875599004205399243230344602040034983458609507801880275324618662579017057659142957303529599996285101631583013708851207221774980420382411881696568032334979673856507061199445030542642899233404348212529342479816362191485728561288871192136034482700055341114116731115129587784063812678060602074305962473983704773357504660732733089451597962402038393303561744191375429618556677792758899890585267803481691957350230432995824771703871732373731787023422563812203102318787679903630476322424143407987004937981963166112781745417783937883210998790826394897496708967768434434615736417180935346969212071292503184650392667202502690941064029587756677137603637941432517093033318127496953519862551459334229491232867684424172276827443345326518774029686628773055699555891431314098126365162959159974691407547191219465386839964134379673289733285100366201424944674231480384847051516450898687370966146413110691514906314400414923253953331393607827864033886249429621425156988215321583717447474212019525364607005483747795685916197420665038445109501323702975169249553275520470778179357101756357854474708538817919138032950970592618520718963637086840027907881981457882517527815243394147567768562462581011435391351819531595429689378766346651401672096729399530578326366925844006972326100767801174623367113241846560693193907106987553955590312852088484551550981801920885155237386153533812079320508133225758151567285543500640517268147793963273358556226218426099494270951189761059440605175088553198240307836792918311337886902736916391335132769836249499762579092847164480920094115393687278846989448164159504098742313559210413812304364037623655866985646747757052222960832919301790409514994590909276576851584436729588792149452400988183435380684291131573460373072557799614880991902999073993267872144027168557839416952399245859365837100038617148399366129158320824670710937548382960411263242470457760373283338101824030334539200972276642919359490428146163550489363009229579616745550811075832230626908873992340109376823965225882352735851515290010344494247310959650045508163476086430093916195520055821674994672882613686173026012086129935343890846327613500166303591779759596728678966684437953702640682154910620859663473457577494140444192765844513931372680805944490734464890689690253953281063108213150747794327759804678770170494293818121839079600898930202538522275936291920584838453339532302001500624403060288188208857997063734941450251977246737003749837835605443043267166422916856804152502204869244543942033683974936858548767329837323505410933407954302065058566889510567713534110326396792097016188221672344409376682087224819855540477712075843039265455857781229828019143349140064392512565999673781857058131315439760034009393887986927909650950176447982365907927194557211813312453601900007544535891747547409537463506551822552611033104669740194224883504066117525791865894955352382498572316852940408015126483004078740318850134197408380888092403782870170776399041644419950004155225316259434179563912963215822704580002463819345303677602294221285692061962391230513607742146710977459602032010781675346691131482326145565294515296377659369578893623167734550827199428673693675172866759707806561438346333351919800889813827622574131306225656207473414231563388639937953339804714221665132698587041994050374644351711183916826339047049454743416942675791056238256534018049455210406821084978026643025736848771479126892982687590698954267288698202240061316015857348055691884536670166766808347264041996848069713262023288313326928899725578751408598089143728905737313748385360078737277214117026471958682901487243008388052234901654400949916147219175281045993635657968276905545452689588705397452352916853665023072876136967461880310997517082649555664036466463832674979322865014552880209913683268558844215748808757984759116504597982169278317049087443968377706788904604342225082806217982756281190249591905285763903502547999587212730996272491109536133279560170721964939905496414486888693104181318400765301237510822606996762381268863807191089225060843188786723290901396629027986330757978951824928993046019074844450981842827320713710124257666500781583583216497376232915320369566309268370263043817812465463990679413179456489857438677593982852515711961018235525947587008613932721938821419871346162406349828787728823724909701409034925609552858848263895387907971047308987146292797422397169858827560063305413767660212278293111382471421634506582984214124529245111357960049487402408747516610100108030965073519452260390278326256260432530429641601792372674899620811744635451550300129202448278129168563121665843008299033056856950426904908758671573335257032872467621565924444506211905041206201399275287411136471610282866184520441315539360660112035188270237448484057583766690638631357258229118197421664897064235783229762293666144414250759026217157389032836699531478081119904365084709966825178002483030500563263430863651325711669588162835482998913688539956695246962079594826714097650013554180872367636299481212016594005218775443215233238741290064560040364344368764067076782920476432203277353144294805267080146421061810615834523671885975579804260909065065629128164395063278569936276606925901788931042301134826327456718820830070057986407199906411576385263064797967295567468943548487845936512193755171784918130618070087943222793556856804197517084869870516213404558994102761289106989067229544321642601312997199220536458590198101491573738823672738862714002560076192213236258971469784266228446239211211473830021252233052583234141111550467381069586486892672486077597430521187079073156801468850636860201985416740141581157868042721080201337370396837060629977042633140580132549458105756249043292147291777369207132748735653034660838863275659205631434953283912739393531858606010282821076603135635723787269826015681543954441267070568045671657476462610159515431968526157724726225582935811411252752678930126013512330486854277079986848176168532019947100229921187526990721032662905245591138232263021665062219659097386029835805013225637288235555708590992729985069036515129567280716089395795084666419550679744797992371420868205058927807251908387595038762108390629871165792671574427713188683238672893415236096456016724842882193991457964758214894843421283341114657515588396787139398628198811464693575283550845018300582250561652970348340449348019144325995150512162581166260504843756560427635554538308720191271135086321694959791352952353339603227615995843395904616474899895435473740337471309840838266124739053140561995312589006031204759952462215433909565768724726298707455477156725798009285313835034963343684521207863116117732784238825462708744880721993690951149714553909013417705351845706245119766401633353422501599588001396679221744356360596553174879900068788504822397001833714595033603163680254996365023261717509500412212431678671595253766975874273705026736307398652263358830080485191049949735552446279623441343273406039416456157987303555604219620210984207255211877375580854346725727822742385945001788036919834266568248429231472590286712139042983002985534609953503968248949646645044516240306985086996701504094456313323027376377923676225596748030325344068969951701630941769916241298004059459674433057860708104644375167175952750915818262601087238150554655863199404150733251501035061623864216562215635594087548753693627591519608324134505245041284891925027872581349773115528568350882638313211861490781119707385287577881637264497547212593207612079180692093892103987321364450104675826780438881957182977662610676071566390630377523378132572139281797077749497432203756607815615330890671266500256005091653037576850474644753920466204770837499402308184367168731067661805404506817863078922133898710768216954465023128927980791435188416810958519388906738922507075082623045283857875056801315056900014218712949140257631326393296883415600338279697355307758585232068338564092508887902011803233102520482011701441245912045934604492897170986344015614315196966529896378002075256591485744480847816784803997024863569898192698237611880174817711856389862951728461269470858194752823127013592502276979045528076661067610988836296819943537055792960944915002185518826269779230847119173734028827146739958828167658543498103181545859185548752910235888428010677695878163439500487919370370581315540480680607071866222743821794661012258609469934162101882614426106596955709936717276948696605375876353382555688917282717796830832147966961726345776576578517474430000825505371484071214733048551282452592382696311706638317512144721182488203445716878020747427979444100196050527620352260582242482602285290304185025136973662714809638094068918831552702046306105413634348206501136129978662974678746287147187724041095865460327587656466233755730848985460967231326091415105851116074616549832325771424224517982000061077939766570795074843993143784447153067796945136590113074676263320773387056867360143272520048953718895761366124492748388420921139698526055847075593084114919311990746807757387360906155447770956394038364525939432646521638949921169982124037222435845773554034521499539518035000145252000625879189665051717927746323171773243180505386348372197374250905347135561614060570185933357829365414920117307463503281665790864725137314419469144595121553561947575334918966384667432699126313042020090367811259985681005419042530373011215873393728204368299490823991556571343863313878944792069986012179638432091302476715989088516899751058079439836675171805985495895842075793918493329639261614274748922484743156029059850293541832160693578589247636737109658235739166000094528723657858621252657529429340663165128429661376627071674855122911076373389833682943323181491511798574307627070755522305550351574441528297647029721437610579866625280273228679824631480508232517218552907224668869075494952131294021433131585030316538443515847676550214932434320905947453296273862241318302024527303071149639092205693134832624326751744935053523320024649985038885872288801342000380523028282497258598914834333672236265356603647173767973701081712711180314248508747125206193040415237767724458656483912328397009657742193108501349650976463102554480539447324515370406452094857999623347640862703076081164851879004592140038073873991826646445236568822147633865745617895891858422329887915784329842247708386397256440966048978197932177153564882322422668944462208048693019449154773481581411299764459763634658418890326094980664227867422284173692479268713191018532877893726672465585800112844973244527128954556181147745427129152863460851351574435627482441381679035327753298449212615733142747719800545185584072278136058985539548902545923134157406724585308035688088332182018011421822843292871769500497615847912278401863404548235999430544177745237767024475676014854597452105396112055899184677705809650955033827744051308878743782907673365948726754175286780004378987651593449496977189477558761116715083223072674492563215144889197176451740071863701793421946314134660595368714217888541244349438156840818236512754535495754857892325379145636903428350004476616661391044252271243992609916601899876675905633197116704596585991086918637137218555409893401919695031310816667384072564773019273732055648061085110341479315136518007344386415661988497511571890544379914081778618624543683928755639328656217049096672260072149341450453678632196094459029784125963765327665043521886935922732634210941299477190416317404986351158200257131843815092959903114267773749580013390032566441841290013029920780527953226189281492761367610493161622241209146378684595299112985978240816022007805629051798720469545908923402915907935626949637425812056839545207157446381565405095702383261677850754247898735887614870496076578721431889347073048374844372884194738864731975025623272422529254280066148240510561979784225875384280932093386351456693717441419343639619020489623217846706604893207454668289457216203633680845868689920546910128877399833466984512940759241848650705301493962761001940267990637281306585785748028344701932013281771303197877284803054557634405287876486238559086514221856043195144835586924355785058283957784706882918098386758326291055358089330001397465742326849544779334007178146355001334838398246353419368942951883750784640654499263786103622617223941790288571740488970063956717056529364737350469318127962801317138134540786730906686988380737557198424493765226393522550233758600860349345793734405557234125978656897851833336672502701709512588026030688688159577068534795472806914892292887568034365281736257705407980320829812187863698219317966266636484860542050959044109661519791374252355209944123781852578550271762206791911313802199935243004235999536842849417191142048504062106385018854120784732504801279358343070213710073578289967846102027526355522342641031578232026729263265188072546771125568874975995717188521290971738852210583608690545851171441966119634896932144084238579961926020215001623836344469093305480283719742461915754784657415351486630761689626224769355365023825346057401790031646650854659552436845574386107871430995933216995982059896777015628026596117864529936361426811786373965773114977654508346304921268368074321766308731698798943395350167358743086647449434592144326432797299893845204504831552110385611046202136346386662241408728856583509577964427240763289890463423052758070598026134607784981846250599475674909941812722053937725569605198672300757797775896239383859253852338503893265348549915493340326202421041059051873178797831447177823348715621493054308889451279085530177358486859072304813003412293437719285479850425778573800713386073007580080164646578869709949636933099089876334160364819700672886746287605210195568139325561176798148744261915728326940257917530169789987758838308737804094947099631431460652170431958795891146413848584468555516410203597506136267655812344553639342229430414961587223082225030889313788969174757743564449631435134521245775529009549514709341332720769462652832924220153741403083942318131507581195751994795721743266869872772083252611675424161369193408316958271385936230545752355857568663501725300076003120125946328444583800355063109194001392359485582384129909587554557067843600209718632881703832344239565466262512542929225199038370478190258036235385612504250864934950204823398981877244244249117925332032340758562767918914161993131679982001856855168040541004098740538446428526545868899992967397999277257088913415314688467641573212722464818288793603449293891624838151749055170465213047543137156957953338209921632166836259477276162216537712807551356583284544656883859659665557633921855838962106235797046675010815307000245171557511078074910703649746032100011626340715635945559322393322738528704275790470380584807453170623402227137992886351761512732889594853383973775465570114619954666667345710402349906698184648833394942348373001580773997248184298294129601823202390165374960600639319011099072289104127882505872966947399151129167648774461796029655874520359762467002176860520940835162030229761847855178450108828077306974976730184746525221178852119188493259152198996335661389300310601095866182464788168493275510187222044015118416199481670117239381870766513593254172741443354884404031941040570951605183294572660433384436992933138666878854762996096353287770791148785052722946205627662880130048716962962675393648209878334822803339725699907241679346783702884656648583071063470178893138527685162946697813508245650906138129126702960010810248007089807949300252858871883392488494695941869515140563249366298329420448075128340309565443634646995761717946444062971662325435328593528719521416102266123586071407156042593441913278894999359849682584633483131361749295164074869406194740402625249634526337786359737093731808388199281114928170586337515317933032763903797015231539297260059923660885756261480899613027046039366693929199945393600478563187483289510834298118525442381458328016941092468635127772889719028081115714734359935519983201932432150129767903404664910328901172496069527355294550793182606278114084224328281582444948098174385578081105359059539088504223822533685162837746441157945165822509828874791907239351885132274373177605162390563691719956329167283177206921109557834690380872940853161094896036070246316546891557419862356328916330890310717375274487383965377135383647659622445940087538114665216322411536998952402885843926873307335540908630281635007421485303718959708430714233166757680345568028460330426818183119050905339013592195992783083127692200622458493443146204811369092859232592254311572343816611708591070310840177410310079810782087586057929241733208757449750358532632006738269648579391613968806457528533433463061668812243025543860162803362285494257350589773789977805587800560867259533362986864156873154933102140662065387690829781444156505542334729630781605498451980579572395310925797902710248889813887697460016419614733996831138285090185264684983369361430916914348648085816578735229651823559883219878455447680155492678096230958311460463846736749928127270119589280110263773390309307447111762552688811832221966733507526956673553751647841552908297491654402993870774216525484803905615186243914001596694816790668361753477105286684181093935205434410506642917494504438111732568677619462655808882265678696951808369467955592950022581829542321705131200536812424238784829793705197634813012857769442590252306254156656850891395996547378680588274142799407718409856349994288782393491786223911432104573408288008233760371521247958229734781093497750024512362102358622240161945733484869893349578748389799676103014518450690044483274329707511788999177629111526709059811202471978528990708624465623865671596209106297944442721722294351560558587476175286494779871266725893964058839747837814444532462794840617104743145111577971531940526178775871791232936082575197267330468837959546023569053501391354156190311598037504870571052587335492661343479714201782478986813180281874743347972762632472484786750582752266189128717280946132288189864504615295440322879928244194154711297004166638302753109816460867051874824138160121807894157556132799590380931490902883016610367288897185918461509640986519636383835970940396128184846987128461957853862186459529442943577744066866721005526110461119038013770962580277956898479424638523718232672113064512877771950163788180563121989973001093115423070834024345676751127762114762857943686034756359618562198453227465792160368159068524178504782562186365286579651170137561360028256725331064628490818646962025353709032849804378545007228963384082239929477649490319437792321089904490160111362504257414033595584304053925243906405107396066851626987641669324851335939475225549120878087232063889604410599730756989955989043272207722025200458754355077734428055723870831588230997073500830055331167584543337458767438312917522853434239277057701112803619474946403428843966626818273803972167263329909918968095859733552112906142308193712901626426426240089118107344641447169168467108633047138207660286904968556889519262004642676232115652609033312869976032031766098176436859756623007738031332619469134396392547529659378165320130571416160494826395084399963506773149421840334597635351149350006745444733033138501265729094120129366120651562543021074751208272436076403391658195895680046531382645580262089418711480227695532080057713470417151124093381651454799328433480709169900189555560356220434089846976265477609311128632522986014436018216727807597102949969006448726199230383773914186003253833004518578165420373618318490553493705212315700696726855206139444443435655473123448280527947022425981041116324276022883007434747642273976190424780157834214597709078905574184824431051450713191463223843288407451894134854935602880364792403911737301436285132086804460757629982507233871496819370670057865460771693290764660529241647447187953885467803879914661973944680424152480216484450208325387063469757110667128794690008044542194869865048187910703056179576980052045076969995815210406029124853739300922307375226792805683466971309810996222608166116790464792653588903344003118107516366453305999182031763563693421674745973045675803785172145742904284956234435598400920439102594136471713549817569636505490804392983654421807588704536510151100682216729332039089751345469196062007172884619315225867411487362832700556335222943476593175711590066060793598065417450485626680390108011327544805843862976985264538104049492165668667453895847845074586167470298113367285260819882549669744328230088980129563493751739248328163393826933041927538485519451646904536316170696693098617751110837163039597074229247124326028693308271684174229005359992702325519866678395931026422028620225202969091445747630999462583140500479223224559004422108769441941239749060480482515182314766915712066529984092896454135493555001604826884580579917931766926942192632012201268009834836770038980390681407793846492587786023510758549957721699415332996275208284313428868655996988583485314327343731989771907504866634352380578934644436214681781350754255489420300594150310517666279977601529335337254172206320305117408816139790791750654215527557091139357061409020716788594399274578220295111909517214399139493741140122246413040158915083182853890999568620274758946201132953076149081414958097813112859616233068432123449434931425883272115346216582867846390370325030441473671407880967085841968970540760605480616028370338288324461148874048645194145752216682309891532733624529355878504864810055795804551552333283409972191153425755279067161995192975545004628843292425292155970030218861204501235630043837819383358227675640081385347668389314651049301801380940933021528606548313820266729910655968067927382430987594679978301021288578020075106956131866575989767120326587131083608782724460979882747254969005800119886057824366796029638160189411439791900512677936675575220777296661479570648168496307757102515895660179772658236282197158019480527881962601403412015531442911906664384795339141948268128269385634418835777189312923948802650738973875339393274032590472017053985687598928208587335328638083345613477384827657007699564572626184208290411119236773377641128739580718843389275445648742007171653212025621116216282685601801474089825789054553686237650814721107774697078480737842614879016255625932134601727764039740623233724012858735731199866792963984765795664677829595887849755886589173317686853472987118336837521443621823771167448927620791759563233846074221661823078711301693973336606128250866877441726716344010994435929790957247591146359097005482107038976461623266458325266574848957019997097465371432256547494130216589581687953005986125622367443137186830363896549840295054756889024042971272382190393649323254694803005806233840163361971418636029370572480288656030680296376189329664938406925175890406379663380563639528314833794473442541522444964758278398963893056691639669041847387742683499255146123160491050302056538521384975255979508367617625123038190463511670485724213484534204638187345724929636065571610765284587325814684817791181242788255759711981116927307119713172405313724995825849870020618630079974238879482388667341516703496210262329286683890246732256891391095045953860954610242247674988052530272271741007600450372990384115712944338583754800334308588424213629763366730926481230873678199797022835223762785978440824400813536443691170308488430899700354302957347311930574649388574357408774012507861365475324107145475219307357705918793560138620340909955289141697842321951027429877739612348091618159148103530294031751980506334733134813969729554996585509686569553828855030818226177235342041951266802831848484185729449740368714042147131903735172725690086404835656306382904070242734789145132899568981846028975355120153383054519702395461363880833420611768418111560523127637702201722921183536907984661869586093229531522145151169252065971723575076190856323803522894210097879449424699707909485327147273096236081791768736717428454392775527865272469865692045967524145915762151973854345853054315777752840477494974713234190794213897856211879654880897135549027483465491428405701729097081822140138030782272190452607645504493844307383172251434304195423418126766633223424433301811652340333850927070853535205147899934394129726925669003479348421634084463726335584831472326467201219871121312090997800679199452543634165695251443208345130562153958181878357299922431721732859496423272587437158745092770525261461011834467762865948877659987421901625623539369944497850284451068353676423483169119403110832817766073309343442624982334037085720204695301141870010983775050489178012578898072610867523039503883597993956970941927768857469350761079057440927290234823006516625935067548869227092081515532097808322264440344490136758718636281823246391648260087670940574024884609733057195912708329592160768376091448959760582382391123510129104715083352356717061209102682681593268577432907160262207498600034783038119884878904481788828636303719087613988029495509344335079141784738757971026811275637254209615475266114244424026276565289688379719041593699203030790454705826088793661061312072566252463812918876633578109878186424432725248848921718433564741622984858196355260735068237882185469492083226891748136788067219992444905101101106739646033748746644973102627269283566370636791818034042838800436759349392680653611857790462767074048609975853948567797394918648169030110033973462969841300311942001956225063038833569537458263677752416963695659830050765219115574894215085141198122942918463076189120926625550121453901606396927118135971772441690266731544883590540426736002022383406253418338317607132094205421672168903721797576186406255863361760378463871247228655914593830859574360013707441764040332848161107312946494997113451852177234790106514250829394240500869082189061828949008510710691529301281631207221996369934337000430807090485224634910757818325003597060511423315346464311888311240012497829299326938993755024122062906509313513574141036143814834136691307812225698731083351281075083176201284641143185258210037151517892884104120445285796204016652010186841884428762025581938637372656924031109279669986121439294941146508441118888570134513739571856571776485594715279225888853409776557407512261292660761321682858163880749866004893958796514075284562190900616268780860400902790905106661225153096626947158134172115008210735115876583434779381746061622836144411228434185933186644665079223814034502156082798701898411865354065442515950215538839402849781155670748080238398316485243333140876939312822043277815866986847747752534980860445836987068420565170456512426590274585950198969806010868081447763003425935930285379870977340216013279788914142629659365807221699171377636442022776570360234404702686041008543585954897768048381206726169440942488150549560887235553882241811808488355871741527076885029354146446318332350519520139877759573635129077402310256166171208879791414348019437024521022986467183242026124981844574113220758577683342934116786279350708840994029274897781793540144829558263718375863372665365677811258541483080562249058409194389606673474769402127461011060862478558726412412011745260621558534095517389413200595480792385480450421906489365906475827139287003778733455168458477776580823645396610505671862313349701702634893445856152000401192418178585880092505583490608706203640204211416047960717532066491468442015095538273483012117641996972630158350402712972538569479948027920730384739134614308944919734035757897301276102901929719547141870470262054755987578245188344961100341074293465859645383581937112695152390776173453855470596699172635585020105789077497479767684384187191277766399228553531565377907785209373314099238373655784916222798822815800708661843186537842107559196994248236305333794028038670066937389691950461302530923620662286878673750990973146654680595495548470549220051061172201760711115018156127667623485281580274660813290833766524087748986685418695789172892502566321046880318160295680036322959359609319010419176982569780026952290818654767265596257045953005489525036042247744309694811453746653263860458986964627159348042349998086579535548159836545182655523615397734576288684233849517949283274887651762190691269910842956485552853863343226682622953442171692655080401737506499230146513611394421219244881825995057813488756638133166354774505727601358127214508271025829476415144365741309622561733647347313348307115253663608247259947721487398022484673769347876124853211581223906423958259868125440904261330878732770221112042409578030215186116449782777405618223558309927623271533663454341395948212027147037970913650726059768213769228476629059652710766520344603084034981978732091016694394199374516557470788289664712137954513381396588646066374994756762851529029083924389596722766468442068180708524406633864483898667365853562359458053015329177695030964583563691255645583544254769580483668689744829438617345701979092857428851207913626159319616989676312649274583543452751229834246571084407811016925797677831420850849307761500526347757448955955996480898194650813084697740969656202918278631552867231902333613122601704997604437460537852099640146693321985943986351487981600012143033625338096868657861258465835881593929767716941230415791077992876071812999190900657622011285672613736820870987577272927210422224127131537221277978115551500153078959560896244922349962841361969207626506337473733379091715905058141637398447234648525461725697257923760952349347630840566346648675815711016682587217625327230430641002840985060201511076738088531591727101924793288299337274041282133733999034860819118176204006915662604274132173276455304179682793899886184655343880803646143736383386587475821001777429669212970180457169793407532474782382330624460537543834914287241317104635042867806771292633746955497693351972157054391330980050640900113038201495039254295268079256458606739679409622603279142911208745912369049916670843389373687460408811160327565288566102786224200779328855458713138448222574566533279862638237617955794180785942566742361547470571995408814160188417342468244385108014434874275375784955620820667334639684328647307673593903502194199144300893053906101642401486781005782296308468607329197606134080178906672642225884116581588856502906368634960189347541742601436675305374833478258372781677428902791764324709999647554102193860368557500519947651792498710420383145480439321124082236188951475018426947134034091035263010451944707762472354260859573218135216002716020133455625719331135321635528895065990938232083895585602737315079844750261387292722210137233879091940549299495040211598249870414958296807047962944039917484697093729309204069914031805171464741970051718912973428448405229300450011646035802727728023657166369216386798269352615854410604330493834693756047793072165135355628633712283501076225630246455739630589390400617601108590898416545865186083390275250441586674217952443087379630808249299976117786021441936151027245974040763865479388075330675332739412265142604882816471157031024257722763871745600766853753434759139472272692581381068103424735710021838374338282930606459037765352351238091685185882672837139766096513038718202554100156249966151341930032278545634944445925114363611546828322475751672923752641933272618542746973581059446015346119197925413469230762435021558612527719493354322117013668687742986126399457948861055794708163101648062118474828958022918346542195062302018130604838215605310898838156563893797725800434664213010894743567282130244762582899775880934470589661028356327518430114973120218302761329322676286359226586575228861448789492685857534637590185069404721854778643914133990056805230315921146428587079933328504998926911454682009073670407764330172737313374348771351957517681071328502094543022228940452727819905276209568360280671498237078217424155100328262093437587859074055744362955977010140183201177140379650789777868642106978056809526700233245179042015382616874887910237026347077380984244465144738321313378646265687542712055782105225092520520837422490093872570230255554818090354434014690565348060868900858881437300787537677108100380234726743945550880651930207697340745689075563237340479583533828820606559222585622669487933450491910995740750121601737918780646691810884280204752128565263608698161690823106355405668910332302189320238554228438477746193930232294500673838510520748699498165884824456288919570814351420810166978852101271451035425836717898352958973087021501597075505984986892918781628018535206702290318433263011513968317696311868745478877282400011898333356757127074108517611299108014081814869437064274864383651140041941481636350374373795940597676429838551625897634196493388004619705333879252270687671774778728247983815385095171947724242633404062419703572016018749633001316869706603944415058823396170300203368627673236197166084180596261225256442887944933835540234591286715301727030183882564685397880179214270934092139524956931834676742297302172324785914597124759035838344427218198779785429672027280332879851462573980189087329790440263547877159481487344230146175822258080150555526701905185465171854684088638601699790244607689669198346926702797011009717540711828966388308819133553118133932340631041257351006245791118053621531756008214088289557183811924077225822703909288454815964876871701530878013491789360409897040891926632181344417220727130671295548280701319388350657278007619388323152582020640363122354768346913780461154977159210816345961401616943774257008646735869291751074357753872490960379949497295347926108259566810511612771838957100954240186808882358254543463828833730963501614399939236855613051802200566867246042952845706592154314052165974384110380717031649562984010563572534731869261890019811297876858042752007820859869655425007132199844359242370983146816017605099754778511098281077003010980582117896043414990108912531544310951139505777104672358855411751578475760007712443276285710718637221206579601023066045680853558962564348093201936074335942622966983331654003493698366352701984737217091315254227023496614051169667307365391237788301536549060616795535961620752166353159775783331268996455551583435962602619357558009999326835609856605596042770352761435864234968109824524705445624740268525334069800936940137650953763492250809202980761288828988414985620595648216821181005647322593920853874098686942768199586741884157484407029993925315497966390654522758107298191030316357545073242859826276444131695302049583212605383224816966811114850639684005221734738866060974199898006846198526688311825062624432739414021456254683792719442794804038069084287285487273457201097494205500225024429250719566013158825875673495415099419144492321450180157921925353045985552651892543446476468629726460409758694784128962096745838071883449184717580540671248273404914634348499828563238377504623775823717704206004652306456863070944500927904799054291325831478867407325673975302156131982041015122495966924059658611894503321712191711613919793848637168755680566697912333706098903346284841814741761040257293732650724966216263370669031281010754947820726888147922366953708618168275295422404020802928719364571093895366152916106147421905583916035216197385595898765879195608060050938179296435965642997140399184540894010884845682958343074858130426465008231409401891665568713892374418014142967040764204444849828734692519433703441629307321577311947667764961755358784801041228049004808997466976373121354270450360822861855468480177349987110642928927994657298764235439195979057831498301284810589549730354060040737972233112427831457782982023994199433066059111668470279383249249863573801728496813580590087180980631961923548594470874547179250939832823422005744368949617131865175582177414111460086855709064863903655362561296818121473214432130301971612131676458643046963453250236652643473379519640110065965290175866808863885618921584644141585410049090607399716767354412416093515963443667739558473402635843095835500577937650694308050766916526423002624882036523566746169739630170794155292001871692920900979474741201958717148649575165353076894227748958432314764119702872398264467128178625617213508312569238415094348208197093561440239537201969270828864433357865310012921038087319522277644145677189965452246507043941129356904647821324086198216439418107062254958983942199811761992021799737411833749055936810291106386647739680530205416616276949355502154962994797746841696756000294825422302425582514553022308819953861591315826690903667440409237915424359937064689178676276237396989910909841283335059256432754780332922723048601837567820694919890953516490384216416071771468633065094621772017600236342942504594728067545144594726397317472482483915728464494006250672972283889456185686278498760689452592457320281394562332479586808678551778894009832290185325414582287560277367261808764793685187669338616767970296320084940688686085882657059921618481527999549658815165246814905010960967516347456719905477817855431520619905332808253555973309095397221380994813243580451368386357278723724991944675167877461165971353412460539217684566286155364547744726108619643820127344770419704471667896342973671329329071324896170206687890031800614307348730605779665454489252833372315520646150031163143263970647337160284695341388492875915240824218089309829079227971444161822537907032165170001502428547271701795415205365255145570070826294724090086339854084304288386365297061624381930812745321643059797926376123396442547438876851061380767537399019562079128787656673233858861321078343029964340100659336510830908213272401517084550012963033056703910030086223551876199352803930291028792559268491156255853023973839565738327675696068736523705641371307301332679696577558900568752880919535554453478313529305535808926194011604434226781494186292205967183724685402964678892674159102842763277222004980403058658019022919073711158193194372196543780689261706534385102602752213424904766272260730438751900449879484279019707969425433712751532804902107208352960368467497469755312758023159449189617875535497897238745106373732364153123238554114522731221896515173044734829602094161925986456053623050637824145417858713482826668595787796630652242677186009780225360521838761496095745604708729345283219059191002748610082559605993999473606709833653738693978384095975405304310386292845831549460151073648358747831930014385129164678860181075680652041464219446657233512842619914779944166082460092781098282609144714992143782331842395065064475960635005677899508048823175825618248485018620191043936833904497871740938110273361451462999616456579831550876484619307063366469632837716590366274227340153117294748442628972055139818457387432157733839839587779341488241102261777066061082282541538514129941938670505014465325827967350994084961425815688233487685334599957196396771225998266877402522979476669297330424807329063074730434525532510770370159974029079604863322000587867036116404357223336755361176647723556845355721774983818614814477567340320761130085159408954782370116341132091915486112402454646317520967849051646731446737372786211229315645919289067387788709687188575754355471646309782827879954845165820074360641795872332403608427277079314896345249495206258201921165104128718200914178910368249897074782997567798524628188141262452931940015997745029807500857091783250100187389179117144096230562565138745934962418527700474945227106511968672228306555506299592184499679953455291171386172995520067034154553469319136466232509161837869799759904289230887700516717996500875519678008164522508496536013810584998865116174180967139584324351297423456547145482000863423027015454968365984138713997826570095080162037267440201900089930243836745962623652760411616035059739903505869270472915979560320179040562845827978843686270235188475406945163032350434282265278991497134798117112266643011392823591333284406437000658845275255852824388069848233580410238790660961164150432755446410191151385546712386006855117238272828947144514431631128363234992369991922333229560921140149283978814667842832823532052669856059382688108919903929245440590755862323691964438477839808652254633623080786153634190057000286185753149157456698790521861273013761727602262257583990121539240828340942189020591858383297374010504683998820103005566821979772466033426459132509600746156831366787107621890213389521639508021619469808608804286224401344997096332169035866677268305401182310471067429943710291108231628349864258307941841975572414752485774324043081500332712590230379400000383633094020807693496225143384034510167416815722457703445674525540603632379139758685510426666398310470358743111442302363293318262462890911489058268267041940898909550826488448226832789173815262894120938809292645623603145117593500191848870226106287480468608914918262036538277108656181574378119846063214443782419898940597169208777061911585253291745471676371477519718253258338692338516308243596391572379410368635158852246068442231594599933447223078983054511434622852900982529530234025683962884814452791350569851988873445273795802900845264138787905943599158501158414509033704630027706521996046408298024738665975219196138233113123042558574855548499252437210360695334842971701401491319511525855924536552074004744842618042599575635607130910396518608762116413670166211452983458325067810230940800139448136694263225971608065694674299643663043217300741763872439867224578965654967207009717380326619153536958883215752818098795533304265566727968528041887405089652221331407614962669316500840032860618292928179586311814922989931921530733891967904128705592767384389228031761776680676635603457428496530407015657834733718127463767269896675568128637265599357176863013861301775829689026426203225743737141653967394340891344190310349011081324030994692770258582978074063927095349563809246472525328885855206515681199038124058324643505848733909046404759634568919546719235100017969954871738533840101961525688868359533214955560253363420694590996918402095009453464804561384137288290725672470486211967431818231361894375348183304205537433678730903346501241886663353053711139715678048881040448840962108315178805759862496333360163512476093539872192113474464131382082773669821205172619459818694242232533567269855937036567870228528849003324537227524861823587150387853352485857307818368498806721354668989368187899882968339721155342118244802730928873515510690640503155002213450412107088409787018879523146934323254798049599886566951162246244671728867790365131628568860798580489315438723869170072454272626633955611350332109500283259677138212388999439938277540551314587970767641992446319560675725279450605041216738252754911217964998692555903408425816883381940078125030468768724000034632751704347374872275742961225520633051088063463683209081432642540769144570940157012611814200760072696900941628000789474760200309161097735036162432418522605574714730696482865881134226751331288031857375887364274087545665834585886339702230839186783238733434283496103676502127655672755314861855383117857498701985356409223271765880183818636563054780202491271585533940582089867153944908328664380162865338706716997104961610376967225540714100034138968540805321163793421581982189120056686679411526787519778886580361086306289438095030699984430401583695025574531947931628265836740006422350833927176713705475029849197756398746414924489791239561914120669103981449333333036820614216532837930464092690889675131901711765564901791165988108943482398692671647936341932551401759804176162365530275194280673230907151358804117429527846600031689424494931272106730261061220447830505035065087510291632614386168382464795652227251416904769238597656236149292178256438533373570558793526031639118843405601423992277657114531169610863647091415228794052037299670828141774427313748439852000224761747658141128878891612588816522794687190826645503153054901772873491000523865283681333352944854816901009154769160242408078852563676876882865427347801948692106808358861873282786676702263768470704307152944002187543632327606267014465987512185740887038396991617551589042785068450115904876967882905932644497809256793025072206220693119491779464417666768080562219532647761031144761851616216448202311915512436613093331178310004125288876104242387801121881944100075328558269640597058822529564887457233101967986628052223735004078153616800854591990664099427339274828897132333798298460396497712900883509977909337073643120246244562501199382184632848514479687967877811747052920460431475425853198472049673720429100878536262899627983848223353207323144374442230661264287639050915242085841376995739380999542017772498291692969699839515544706192947496265378136213266898960338037105611216894346355367143034672358416157608105984558784460811549672181609505197895149167053853623150188017449769907209987002510920116399598410298485413204620797991715080489308938088545924758305125845730123093245750234212752065445267806398871038475972670458918681193445123451326411687638318449710678728618184364172205566384603049285155815882849974627841788136671611017354359660543822257609169946963335410964182125229470357139552909402800354210233670117083282565795586894155303212487028367858044866319167527371319184164150364760278183666722729051323269793105562133635371582400405098450116263347137267866231582692372969893170065610568892469261942990014530825408474278968922533691282927890222533014914115120503376567404938340700790992130612060942039895452354298707481741145848081367896849468787471571475574101191718533077761382607986717349816585166802303922197027836431940909704063773907142680102605580968552236935711091164004048618462653594200144186248187618884687983845537955370448340301344023763306985848176114320616890019473649470788456825519757160009278262588732867178910442804636686250099308422138746170125291626406351410656073617871698470416301322980965507540208063300890749693072149607466231135803330077636010329069073308537454166091060750739273104869127672054300225936259372539382769808337567461509063864354117292121597468343305627583221113501223087528792961331693788289072995759069788328002490615418011357156481432761688308597377531385058614059653745750153396247101607283333448477713195264456687759508716696587242537155492284917499650664450562268427793544928117198059839821300018781858348283839339019024581709142834425026472501112212602026129511529858724472082877209573433549327020410226654586444270303516373493252884806491651652445109728827109772111489524669491123772553471988601672076132346836960618117255827190088273363920432426267580390905510234570321983478631601118521114802961193943837984075117427585234073192537765017070449061736374350610117694993906365147145478666008620920569961323324296766589647929193021315269266017508961111557902071815881314655539739265598643537903982707736415503392872816657737408723402573998295604902633517437370342207335209366496571076311499369760017601044916942979853226423118238999731281193338423489596564631671313953074106847453004372713963053345824736831211691639451663744016009350983117125036173129105153772265914147248386914624601792558542875036146368261709628429870461192680034023525996256564335521762262683282228951098406060580299402271547058098104271037842178881553546181158074104709179055860226277898659103681067906893518567600772486994811173416396824360815428270545750942924068007702007921636858241332692039300788363000492937646091637041410398926556443392766318231958505155830678832303042527693896697728528028231306808915422957982139741188558466585597536684421624686427419256436481637627598479972745136831170571062141972706171991714097881230511140460433049957657606283561096152883472790822886872707102133590719168205690373765535006252443943694370908664368087074488844410836247351423444539526337850039256430702472065747256966157802916833239666417008103302437778625037343630521652639229055767937631271966604873673764536053783374111890732510943204973315344833511837433744296741096496923943710992436813221683327184571144415361761173038564486073623639115937796735996906098816610524425982992406201395934253784028843180387712445232749476804436737819315546825927053341634922318102715854141868073752161851236636982346083208580659521736010751937258655845651331033713515393775254990513859453181073510768261928340396045600231972384343823058226122079100296878283438011387193243920200223356883166982125055058420975319226367164391516542426080215376749829213235799019321585612788704901467641999271470380791125095263508164919407018461736931082610247475307576370809901352362100697416547184463015671923377460582673723665150205641024843869141936719496153137243145710007979355557414252102146792608950691780283164050225241218765972261858548888008777935055516144727142737129750234407069583816979620956383235512912518807868223356521848990932903652755314834548908496890992654178082218755835524698093349643847392597825274916632465751228092291623176748648542452986720948359686269680903927041441772924207580736688218013532912527552745604601672670052425286585011239027319559727544091807041391810193730810612690186403716187575687044139997791529580313781380293431447223744766248402177111862301618308744314377524135341063483198842344301505823735830562871116668102490832729396295050196338037845299169094105691262037672497103988563088284258051914730357167520540686205313283404008628692696527706439608792915227424104831100163525270704814747776142604588520985643417001352896296937852760039366998600399839542508516249227348949881587171907696121378684954006896642596647220794693323175274068972246051092238364104644573627887761905928468537654678392267825077781774191406140731482482571216027354784318384766380351396507830198067007406653686804612763420692131486730643548428000658538119682323287836138197745882369749952782269506769886490300589212329700582043956509756665726569332176631474259894545139789283855900972166398839082897727729865111564752711770085990311798657269918251107044331056025773678312635761651952134550649026673274089711160994029768540294671736209855137994819191838801518973102543514325284780939428252026164642714290238462868758855139308839475867416844471366820903151117721518480394322281444421316674991484553043578136930092442180639892126417999470928625603501496182773731711317316710986193519084172432655124782864101995340824523452036826853136834806767975603413404706392191033238974371625074377054707722917410080054970262302647608416401836785794659719132465251068050698877546155834601751688797375811071054816235399476316044091017102509680680363299554190175433351418279202284161254691823168449102781882787082940352833930003599907391911389224826438211004316964479435261828084540580267440478014229070377157479988976186683605427462015021462485213184271692932565800273553473074131208006166622134281373439103877512545116975983716498291744867717564395126598960853045446170829711903060289863943645888146753312966316783183062061971062859172429217395222307544265510155366618289643363185461935657884077705517438579693034396580454375281493109334957655816042228901183275457903902323481234156740484203504503169038936187160723502835591816003406575852007063300540004185826186992338093865732557900451866693758837925812608160958401075300007758016838933829930801385609026173201278243427828911375644182303889173938142966721275327899297022769638419243397589274175020323729805162123741014167795173741418076396224233382654321212997012105017002181017225359718381719345532366417314372026680540657496840937218108132376072582100061690465869438755386147837111211342347033652317623335599928185909978913331507919355039627111096096628289518405958290410803647893119048115741295056800392671190607420565423962166673850556286340917796199915180590044516843828106390402053131945250471270587357969362140239488885701459752244848843572260923407447193723627901218536435846872898829348785304649833726828487171577534940569295118694956231628036690278422914607485494659747448871375340057870595060443107309119566592371103614813083221594601256034404023117698658181010347610085166704062167458866563085347573091783615405209620889846041896720188945192440721303354659057467338875895743139505823830033406019050980048201961294032316303336941379623422727226987500991010028216890041750071448618501958086661142353630902593701111029581318569452879011550164909563902585905028430448292908434580044249010964675823185025285668802744171359671641663414017415109589157518520364428289988977377356163617935491562542765697387478974123126225666680071546016628741042379689134873161123679234640193922375018520725186863135411209738247574202292208320627187057188529837971725671421425392651638102991580903405175896208552297982640441364111768952975508885063337901402239182726137316849909489979923117917927622737674834679339605583923157310206803942675483572124085988704067955810923189231005652533802259219470418774417666369514678973420590617014232644103541044697377693749000604923043487796905599553085161074001675292961783051722613703958579559001162922894163854559378758740977840053276262925209378812824021209247379440586119148302538805833804329100585446581213497394133588310309159784396808719052281780919663150191857064684284464821452264672046574832380109435440101913153923366795792977141178726862984681043731554469688710171864076636552993628943933618026767805354546586453279947609814885799852951372887253750221951841928484501214392991347572247366878161936450003989679506509531695401624216044686747957473654826758791062396509923137355558368174658667133630712613831752213779158942663018203161867361537924047981940741525278513621599988537147227918155059275381515705741396536540062944440944283414431036615025076252879671340085401711001623687099123726502208317672140262642180800284846750239160227906817123820657880024251355321563786222379745979642228341901789584978259441074305660780396068937854700010121024467304105518589572499637196871219103198098855795571201524531570574485351120651319350093689911019427041798740746415285706779720002918594654471753736160134250470591257038895151754204636834393349318305548592554700287994038877495480685737509120069053186284331244459265868146741251116602899421536258456028525098545073431524949605941708876792076503884558695125057723060782821535575321792201844794553949475090171925337624972790384267516210219237983210171908861074171730100846724222566050665643020833205852551273866675445680294874952196067403972407623011708848097194448977298293580906711016209118370219253148000830780364846946730201260555064861199398085217990502029448460013666076793243654028368996893058848295365342326071558046602721909513862857733798029029643060631781794279329201345396815425026352241619234153091147866550626332951131864214751494477767256136139401140011050443895938850092174558167169747815641918241532590628879996230519412560647840347332741480009906919376599123320300522781433184916620078459752004026735901154426053092269831008417511505752851701221870067512618596597289861415712875220683454535189333420067606264028806634559930078035072592923428972957578554438741723680087723495946483111320484864967397520352436356255404297811013263282791300409212093734229081276693653332929022910592630083141606673063332603796044682438721652102149175956562197502707317390954721259234057358970400847419695081311763423334431436774310938651653289634424596210962532953840347831140731546808752171160564726668925323694222404513025222596734783019727000292925073814692165299489327734544262564362903857234227556449315321159466616619984308720297645730039794812511309218216842864605218088994168573851359345735823751786323399052501625449706999773752775248390167568305882306572629786657070918253173576204535267922502531223494869920487072422862359327406767136729254885222647052961657615122674273137377041280165942733526043020801426277942181017912492211731864085435409830701597366047883659191833631517465216395582295365166733725386750870863030217484475813493696569494107038250836585677324071780778247294962039488591412212169349212223879385983271636485899710484479564548130359430560363549813085131912109628470516539943783759758211305601997628637580578748636542189722642333083080591323260078874506158684301857459519000773694597157366084789201717106497236187908840450699334681361493426965686995079208044785604171156490593311282702465473944752412105883011656590037560082614985274399849135893761085034238197760130464321360140941932301838300740667785493262661193915432422178002332968589913167233345240896749483303352814288750360734143342399350334905391520814309875068287217130414405046068485298248249072628784163088268672408122862066496518911020012842506852491877986220077028648717323483945768904181289171581467806419999857401101898061857378981427268084015137495941699624006621893013647501910118332438531594865559997229826717876282761433543213586679296533641464217153600734443313573543553588116854839078076927399382846809595881683556670193626726177587648181889962136710654304062913368916071704894385213752665381576393540190094318339348177898446283183321941925974275206956215625441540539811918092969935909577457627946559649099529700472269777832888990717892024305442480054144822719003550501727596000450769947828554420558518348596953595010097223327903288106501406186913956196171383358930539384089896860441732940987374189016935566191253126105296880973390641422191316364225441719093835472752004779580572367761898142047962618170504935018781519450044828857511071954789557302862395802678623288822319329009147582098611845678048090910048923644360609188733806309625159796292978788183499774679486108690542627581489145579331614843907806197635925664046027434569050758169118377627562052282520303320514822478891561683790859289520821790444218148946585768466040691893402403335042830955719836515302190018167090616973607045593974542190289770834384863685000987749425598196192494697694852062419158755400391668850193966148424324210026416202282267827416029467694040900690800084329209567187805652749930424747416021400737642275044140181459894889126234022856979686993541071425288298803154318311023075916278163083181465439339782045164025901468382478981899342396641329272890525620205328560772038828100577848833355917288911879384288563115394714728876231231852777297382065871379048138232703013851360062471701619621440296851583155204447684453976719448381747096878924586672478312799150743271508187713090128475324517778281927750031142487180006564687809216574192394219946922767685629101583050578951441977047314682774802587334139643950532358588111250306435068143994385469205721028906611634162131699144547764650684928738151475320037597866078922377457066734366354560393108417897431162432782623448713042866341075785092463927635766790636117391067458294173422591972895039675993098800215501447651472823432852829558715609201460716994325373311598443372465720087603421715194524382810555573612958637831753450522239870080944929727359601987293285201638897029579279728768935290972538829244005515558951206338936668196697310479174013569673942064232909368766142296325716557860268844905378606261396495334135583756081659595338387848199567136614586576695940801331763796176188716936490977987286177595338899711316494402601695558260293238132238241063374555734317864511081812149786509781914272617172462136972406324364937343114641772116810852886065945766314450380520256859701896598324428584802465892607892420753932802067916415947087621680749705157718374961500954587130947345760864503840812603361563465950340180412974552667273621215986388842310556745603704350498560101340394693102011055398063670280232305874483502525873912460427434957854481963833371729564559060480229341032528479985930299432270035047991087765942911305469770416850496790786249264556173276257530354933828523287184404541329282547506813719895393928076077913199129325204834463590541055609474830862287943969770728044877546739628155694735406456624335085105466112142073619331465499124587596947262154246752790063366808120731780779493237056350577657108585309227075101172717850280727761138892803348718354562145698864728887663747482697255095573794201873891112601307190969759334143657415760843628088852346991789237229952334989610359212885586396288228176503462770306737061154955360950903226864459806958499848920672927000189845182292186617975075812868558543173382155322635465755558323845656374192867372597410525207436192116104007858790330211357470041368264811254035433932337144732006534213136850346526969984900197891009078825815529465152995313016477179639970087461174240918702575670816057191290469809628286298879606034785513282963799231897247350997899212424156564248998553800855147158721910239958073605610800896699152454318828895026102931082780120436741535204945130336062260671005612942457372385531341354930253762644459700133685545258788446497106734867195291610864398195497641371227070242069001244957949010839799039837503687054930900899612007626362145846482632492194996418523926858073571760874075600602429624095729683113602620935813798809232584916375326451515839254874248437678724079518999890847759168289608583907399386230838906482314339103449609766604395493704877607621080460636782480997503931351486805807628245005781946822001210560145619725604782991011226501139228906740661245963821839127390248972806918828883937792693905860845509321245499997786505543040310142764168037467248280492208175897163407090875524555329874808859567986987790947662173244838404478602934419499023619748444218979122670325698099577438441327542411656521259722673260431661741299915024201692893001880858431575233799202366318272627279631234057529151842698785673445866927042129572275472980291385978698053576154096073387839306561824541364871754638556247070020636916306887283206077983260559498586560669186369534540599510356896188601821624796082665172010838417726446756971394232352934996895448590691921476118298228740504094574638320417952058049715733129891128985477682296938086203915368461257464029063348408153014643701788489024374289520659990671416847656574245775502768619717826312033840653738498319577080999127136899881498717234823600539954107820015526548219347346608281695480027833272524185291177673447587704977088198182689082753940146066961441721717392218096741483888861709336574030681255830555861871350174648471549147926192575396166404304984396584382413718980320968126024452594138537796439595247103729993008412488258791859163961952412169960456652475358088202977260188526302599020778318021925869304644724924220942815076803302937900691687986831106074330928710227850642963748308845186794985437547967195400455193847151386449779076875718702550430627083650636942923836835208922895858220917108618289695727622025307351803093655623540478036235129976185472857220937622248832636766653829143730115580135146827875216549390917992445215264107692225466955406823107602435454603713949719132012264597658669329542975023284618870645249708578418458427166468055210791492517234302093637237559050605568012437457638348221126637518390967438048032907151656036015824866955744915761975048057267481221666977200012924130141719035038946200363048078266278304147156714162888877219760103866831479489004043565696802372132474177926857636512098922818432909270006667200564701769931089391598491732321780086058846672543364076914158616428209187441684279525961538191996596067848117024105151939952891723797623886422369915833925294163648771544872144813764531569312121687552767536616207874523359052733032722091290877083272753763087521153714978917594666149857123763272655969751446844632264954337452861347265495877465079110127795684793773214476471406074364301084139404926471838700135177087204210384762602574734458988582053368669085521449239331701459912738279545769102192743339862158617787348947641404239684853814985687150650259475192835358432834128538591666109335094964958375691286073043773556078592098005175285200763874672565241778976697117892790064400687358425443127286418961058840023740081591612595066875625234957460352911896260968298941561175409052647440932717919078429289403483559064694462103227967857481351599066457058058053882055413505939340861334486737481637469910213592005563645751071188186605880136165981452496123138211280096325945904335245739574446818124981650235369507156168488370797690609408448317593769322053635378490738360094074399748036643538159931374279034484001611995951967708489929663542797340075936877474527285205154273406953558247281485395036010087011296890156919383808131163719530732520670107097348039032954198477917888168671564718586856915645696138870749840038202493210809553228012794488947311168957446458528777822040055479254275343978877343567095745005886513877834630139111556346367359638514885183047613666219382610323812541625920873641027900420130450022999988626903415186932204338254547281396370484001368006006681034893971034214770607480516186207244003924619794674114215571266552713901844132127272337078804543465050920393175419771700800788491798496839721491579606338456124414202387803080590584026385110726881841311647446795145561052288135590202804733667326164896468218400472731349345917684100227825791474227035223613586885868990534447732580860876553408636340725213785479522347101277654985220709952804800006563199567138161893428073720670458347173541898327540151351860848682338424012485781245409937772497726313249274396755177775335250731768824622144441921241296747653688326098270225614833899870750490135082458915767188212078244038694711684113435535821535691103009072627218897251121393937751745453523497409398447096845318639861876562603343147040465510427727882909530664769490819625225235588743382793561754114158172600018671233131300617913303074666470536493867004963768331236819999293068392508100347631865900356591284920129635506306301979864570301715403631244813334167349504053585253400615245445548618931107364290523104846812471033011313944639841145311465475997001026048015840953228787372536411820538828784339783071194934020446407224081534205790763466575604308577866175627197581785265166512012576338162829565328704775215690489296532152971239488879354332045288689292473498211857134844711445752714966314167297461329816536181607446468693285305959504792519516644630315398032522136869417906225970794473791788030417664885002847953449983943973328217571285734871336852972088538393024755101410664640620987965624218240704485211717869953355015723758605789369545102204950667089256961387297312280555900342770463095714610978918442762646399865263680687717525208303431172873590360055270025696150587189235290153261160228405627317470747705482576314134378675511910660686541487279025987161823226130896864793904206151634572677592175034066824699697067329370488072553769837042335534131316083862453430832844720471306531060517691405709696954521912068338930638452856231087662616563072262911069883235314721965362167214427334662230626372868733092002604530497551736187063379442694554012767789872179036436692119296807681114034763501326534300160097321800520933292649312608902450271305504288887479989121966994785343033669430859070500802220137707716024090288207532778233528668301752807466714065638568528891950725560112668563167109787717677668664121948204550734435607158885895166904367972316757225762732001648250621109461811769243882194201405353363163364729665545609240812305609759163068453583187988437537850539202983672588865409107102124874214445284319270739163155532032138497390611015375253375424245325022079706631781869815955399090059116041645286082012656198866550041914672050213403586986424038396325457856960289018619598081246240545446798407239522300015560402503656624877545392912171611970688241468936698114268744329963377061017427939524468382904612812236207156776689770041242157091416168079195412979987028651125933714719878835539637101332478174102049721345285641690227297752220461353193920948328475394000665641434195116610282853479320869906896278158734879525544096786090000717950382759948775110464012872104277828036999699956979510909278956704091926083395788051959847149074674975182018703248506808470225833356888077427698606879096114872666588623423614490020375328424943091700776875336310022734311964137072305578566039736597359100968908158919844206777868418903996051622581772805958871171630716882923282943192681706197020748912041697748034036516300037063479163785061139204084965170240009027049678382054469270160134040225850941484445288575280951503763747279262226595882815692631076578750457799072758807184157398129270987421005868566211717438190344335603221778132179386231569555961659765208908979948311294870250223391895908652243720827624475995573430357748513337321693848537319539041389800110187366363105167714844382993210568964236562802710241282831352604108268382676362782403242326694757747874245296017189633939023804992421457814015623925156980886906252772168602854058954162922682450900823901350657081469966740044516328379949978482564367304927698164628283750651215423131615614233812794157726530911082554180840198089354300517367312434526490353194718325177773663010125935636417860851826932452041506277197956171900604699573406323058870972976957465290887497506484893870582392480817258574086123097865774561181413452733392452113000316740936266275198731477122433187295237376616310545537194862104349448350633635204532218347040090459574285768016096024171967804097974885387969419972317436654777792244551398852885468242376614871245171502214083247109927974149537363432666778481076334569819046099325151935699451495208008643228811988135977882042531065901572018021914277403589519632156474972768712259762350274926630585622467529159925056339376354840289056831355110364024524165868474060008409982188899937153714625141159959305052649238248609541136812892716524512225718831921564163416173544477162693751938037824731340156280676197367248266739940538238625552577721760011214890108680578382755039000056957532454648926256050348041125939560583509348214362732412505808283925526702284819380158389345925141987612844250167546949511244182460047472157608219095777178145417171156647704950560063236585643293706834081435139307266009099185066254887262879233187432730611336937756317004242856767138673976686928943308053710085205145428536332782265305410777745822984885968536089693232123332874863188695409504434033353494079573831260580943788938931622786058425152561552377351402609236420531117548764113207390463876086348799477363122085179827134105242878568186576100400174775159604513215860036140807036817355970589671249875492419204553353353513121332353110537465038300506519157707364953211123711378594033175795816927995325780891542591670772008027475976641833229625941144833615516640063515542395894291976183723201178176423112971657924761752800878312278711573429097816542068432295879295534627999795578411308095023734979738352800453327498964980988800159016898511604652673596471087364827037584030511173417462177993564610519585093606824355189413941743046026911359632418550661133329212922425809417606773453249277536088603799724823315895159564314433251287644668408471677136570236154818935773800087363323972965107456921273979842774737857096420929022247398909258032427552364837059537105265207581469125057434462478067092314244587021042431513915173684155130371823095459091431932551861797416841945019497540982239603876008110721607420684670810923086699398797970281902313476038423513244828374504846631814089911343937714068792664946552653571032743018156123210366568817917604952779636953730303572059186337038383972202077316354779988865980274375646931135824461360559352652880716501200123550510975734399760225822450957707394528379943792955439457141842227929608542547136781046054709338468225424142556912250801169690917315954354289769033294450875413216906549354095408374490709533789519972836480869850970203181489055055824844494105406661877356641201340376303934305531551683653018531731092791650957645614131742332725081070495049877957235696360946895881925480544578983134099568752864514802242504732717378146343506218120990919147820488964029234341764812875932660331536891569778188047552973527668674144108675997149971024042723698054030664732216167916141952960766573097033947606886139157191313800698958487719001435469404504921977833578666541115342234992740299422242221131835336507875549527290124684775697628471463565098596294614897364881110493771116018457560375902175622304323762647936958115072255878529941086809146298365508057546047123936740393014709046621668594400440232265868712309752347467854752121746502711370383511191702238398653730108971545451562955209958569391472580670034584917088068538566967870821875732784082211264242719007404115651824039843584125883927464961105065004738086871414413759636754482427072943894383089562815572969138111891092436469052299422877412918336815326252790319626559527713582069382860817916372803523387559140684988173012577966403361502132473762229278182594823430770177713580342045922032877222706483792097830876684119882577284061309448941603819714453628095207740247846434219778680896317631661317472400109784550597558797481943983855683902942466636748235958739869690932323895731941586047444445860194717855082759599681436538729538634596138305432331385395175136625209099255754162096444507073057591356747575924288005101749790531311444106355674139395106806448058763249109869004950649921672161863733753709051452027557589992091299408216296132949975671684514432966998814657281472797822586518889248697357556574631533626234020411466584034209185402610766007781013138267558383259027452782930422321462539304787503667425588914249878450011951589356416918855435952667675313697701500418486289053920879030013215134214966496477403904074051333298924141617343857137908584817177922772286134665968204568727017210552903885072447941386710561700368177085620881142237285762329615975437203730280815699243139079358155082892808569767543653680417467837782056238742457139092615165434261363478905932436265056841599598536311480180958636427881486922145141576076073740585688940788980600742447352654389538232333068091594961081738979717817239895901054871452030350371447500103313807569984126032159192790490362338732648992512441992977509408677641725427031682100229213714036925780109186716423965828828975021364419992146468904506794839619420625392588944814168486736671871777278135472284182699182829110392384021480199313307544977930084154347347266903515709183260492942120776797474130117070403035860815034917720800762728305086941137624628087194689732973554524573045806462143815767128875989650699791841799693780417075378307106857634852723248574449389735492469906295247301434074247780171773358745645094823696634796724498661023420571558078680941966355966487884686680744684767458892340833789437065031634632166476290730019762067260614146756602929332829538193941052995473526919951867951774193157330410249159211516102287803136305676822365275452388610208702100825389888483750577690129363950488907071983272509013989063429239949947955176505226079723237612259937880347578286344259686058444484082738087454948819208423438268645798541781549700694977014484457636522778072572701660705772797359074936116986235833486573383806215263110130643187009561733287027995131774171936590215262304422967058493044690596804996266012964172430065265750440473571111292296309392543350531077168490692612454192250420886675938379612602161012995192667475281847523778175153251883695860981697488905763646710263795313973684793895354091467425459679556965356868353070880524255233727547210761763536053609200131218533122531914008165998563171708357273651547700601459445649236115506930488272544670159334029268767127945751297773212724071076571456067785328726793190388482602298954271032394263845118188424055901404663068574450872531938061846193468585134810109219559103503490965480737356498895212069681910950293537197874429258293250410509272662324802933299981889909527054268054386904050980864076435162281982637771850365920073627246239365667189240978966512253242737939186906052762625090328542062583633058318695710455179640095598690916233785143725248424260711786583830311987771729940661778263496549956556564135741089846357818181863242066843120978014079575736899956334772021459634603760946444618928696276153711756761473487524919215385252560852320380132520504929284893903163406497894484802245312328591027191717806095332272496055985996256434769560014790382260377087061436260758246969235526316005275551297094303915844790109329829890821891720931527797826541156577919075776166671991551003123817473219792256310774796542223876250339075455684507032464534355824906282369136901960133150699645499939415891764775115768098653049667015958114049372790753438227386128694244835767118040538304912832822743372979491850384135344154097198052798529849461834446744066337106444761832277116172194496888588344919790385790231910444781085748059997948981894981620934235021646903706705270411205860523543418544515512658751179125263141480826295470958257176140241035874377633079281054334557892909983602189228249354262798851489809632101399521079707338345916155606223081117617098222391794538254259558816379885376635843153906125120851299537941929466273163362513105660078834658253781659488599946134750504203098405228364968503360076890823256258188883715275255607096564087504662359447735496885139351084345791915634203095525195996511475958443093153534227078282253941334197476675281883753659276279918005435261337155280321176410948723841099774740734550841525776313902653607214009795744358016572523240536609041206254638995020878076943205975906651629880357744260416905946208786289681412218722433709256233109415042508077219166147160955969236827493590575948312466411110695163566125094478069677830649286063477847781952064599602184228744942816658890223633962217575400210689628599573213408636523878348395080180088575763499484321216305656792449625327039018373689960466866640134214283951007266251560852854612106396361364735668108140226261441506601180947393042559659800417648900783020763638931693225037781554731708588471528843856868214458627899797842006857626411173564311400080839488652660274367757623081369224879340429668218464127343643687099890360118658163750563920471733057753444497936432586966846074762896473937017822743029927204681966996743730314260661869134469601884189374930638149501291873429819631324669988568755486217139757070189967569898450812000489441719582181256865099104568424719258234357226865863342062509513569495297622081468790954338851397502126426201854461251967389403143847716921860205056622792165711859684600955784309741991142908622826733318676210292935854154867077399146903064335640006757107156354088223845977864070992536086487012250342098691617337610110570837008666541953715499737534833984107431794962292325808066527622110214409415949934405171450226214121046776216934550154036660208703858387280971772326031226392372032232381990414118083706816023495488773588159971104244188089546669265629548602746870439965003621904315004000302842511039209611095280899987815590485170243246997034875960569357909632353772570830147295839152850881378960316837557713774052113902199047342864321472272801142815890384121816924947183972930123921972775073898397021797511694580994710471334986285344364588565253605695629225098833204655719951463516993707249575709342294873912978866880360525841004035191942666344702494828296556255505335475992705314694035080135241891084398514211296052317453672173064846600102449121459151441495583295997093333600237163636138240262233304671416679905990905637337169814592216156847081822198293630434144154310821247520389312491792937324833043773754062674387454232842439959730571454862118006444748553408842046905472933073648820678137302697595486101883584820940050120865418522515253789500116514658469457210876149857282756021776837466934798199088826170378164343248388546796422075580066949285838073478202798375513560460473001053702098213482642908906287779790823935425777622631558450516017532213337620309333892182133573912112337833979901768088050536720871464734877536476911040655486592482161029740000351191320705024024262838236492954581638127994267541719495399317038926358910083778890326364253701824780965106090193783434329755496651655450284144717861931571495807847320124286195641384533981399429527386844162465855602560048162986568273491541728731725671206073404600776960734730089964944384721894077645692868002805023039497127729396261439740774740716556219619762021579309947648633014895698370739417413732453513646882168787531343927295726063930946549182879242629141998073587359351554252944551641681028788450498296430761297357564187075467370972741238022343351367772854410152913735430822762139178471698608447026745705360968217004127054360926707469131444663648183878952198692466126021642172697930795466619020309780357803481549947627089037017235497024293883209814942335006792094159129695775215106783938964629840901769056918198231360045094243260156045871211793964817773359688571190167932205256468281034964570828623603628217284466566194548506244161413725641395810971489075557569742446303095986884243641566411114767616360229496572307887539498037520746601636933785772565929861284993978722943389144771731370550490148399527695292406723414782826486400787134853495296871187882320826933145838370506777458197919389009487363773666023937865158259972193614237171550555618696855781727758589057590713701438247264583348667481587017395979408951053500336921965234338574541749050075466963412208689708042442781803437841115197016985268430657402010094262328789040824355043803698142515536831456505578398153397909022115985022224985456308492939840403752432507796341868208699583187876735736000004113516763923501001534506972022479135469680182385246636761053604278576438046592055998442276172176852222702170249494712969035489031561078813494336803202858994435271947782771868563693958212278751626623878792517256477859746440764277324127711786695996127309079116782544324430643737636115267112073049263043138403315449933815384756209605651255649812062347903553329793147056391611472975798034450997041103707231846884810228660536810982696170984964517198075784306551724489710273485631384408170847878588898047299177016474321239974244284205377939358954578484642187734659083944550290653588033614195248542833234536904001959670570703127779024285409339689743662104868640953180483346154971787287747571683464142367981225914861469073148703399669226160318333321227487049746180390398839289912510322524816150955389799357213840749398772405137491991506613363570000645293509655841239596991898249356197039253108893002840885878370808471302741288931001298921284047611764563339158300633330492457652696952467226313405963270872748355233032094773813548577766673047189409249036489455737313526955094282831400700083619814272350894353153683179517718828902800653969046002073285890559891049025664098828129375160270667106231089397144386541498667397269975657417482144363161439423582493958276756109497491708135632822704001873566275460079024438392288573131541151566708537787620615729508434665400926343438832413227405408969671439809354339409305460028539588307550205140173474298934645045917339687649189417942800370226781992145947998453831424244438221319616897308407264176675504604647249771857669981215340922230285681446981058451971726170614866460910962475423924740438067989701621796562457158021307061528163689556495153168726374760258287951410855436753407350242217583565421843764454703161778778012654734045564261531323553491400763781027802979514368995490231468240888419955835908199940699355127187032339586671633792633200019852427144173010365908854998439158691543057203884289705346437939033629545562123908607124734062318998462740896766062316663684059612574878084827293919753308054270763325238095488226579352854227846201000249768907118524297976694052112159445196184967272765860173258631755355516112269171246347371241297801205783842348716948348933173277804433327670165429269183788359197703427361105730046255307718613044766365284237328116250699931336025823992190818982487159504709941971872906905192129992183839788070810093753392537373589810519623661785355065163138678876000086611047448360856816001192791754577091818879693464538283881280028385018619859384472216117987371422461319052823335323437326483169781528614310094479235108428771142245534009219987192613856592077634672414515603024359175561971659389433776809335958507883419747322214719047791770493906074314531025053318297679026310487726670595539973811770195718660836870120582882323158476681587884640769590835486967663764302838456834318767538925666112029219942419247968445619696904568901257103895904816093100405842699143900319610099299419605588041534199114895246576695962812600158047103518282712406860175038681113603759468447905873965528745994339006166499862573141805696507088268396811757751128222070386092056055071304829945124529776276490168289991212282879022561231678392780151495986134360910589281615806382791137381377739600278513151480891645778831028860866417142254583404817116633487983741352699293979849005503458737397493298498365326649784702850217221132783316482298933085326920792101502272687580795637567992464321913594226587369938836687518504518166966635996969013939526218674120776922103134050847612116013776686651140852810486142846690705895697720407653805345329852485558324006803623694541962658283951068001188434417428340921127684881530443558470706680396487693626291343752811095273243691008835733369051067902332465501810772103689873302364768147128157206913357117397572018371560348213769933593042256350831220029827506486103240541337001333022915873791620601635687221600905889473994610323238962686686299943297523751501269705767933121532507021680683365573627996286227727009091835837762218136418872988700319115876411430781739170864510752867644818641179729444302618363718243244907271575949695441962265925901171515384321268968831834999471677365679259950830692998612628943425494441435069908173725253985141049114571809684177945821942764918774018602423777437311532984695029496000687451607729178868935989475249513091308376959059547427528782400254644433447573578182174138831863208419619146257070937562885605765699767838197723169396688341954423621695722588504665157848779514167024562684912784285094866841270253268118025656345926912890434259115367247944726233364438842405558771583161764225980184185219005740674298365978416412837929089356252671237558057181654020588246982635759747705391222113380976318020072196989895473246906050232415693716025744303415248224434102524825001104805794301951346865629209156822970982321951506960651604111203713750865589245682789760694886079969472349761162060665558675264261805239617218655213562864225586600713654751134865247050944491733444814269843721762963759273474604011879917502935524573941451391395827946449665145272594063124440266813418442482862533827447299441583723283005411197642824031362318889431089412622654084632925121425101015821323031631061636421706614397358057444426412219556488717882029540488969439943264120963325926902039455130069774393164562175689926942682683223224888086747185326286307475670434059380235908821297914814637313127859821383168070366960153225298508652057213194328634543080349198152850520234370387835496984847880501360177203126286486782892442733266687973110945112832136062099261769931659131230124108665823192724421831785597821079020635798407471223589694662717502958624764230097844085930297046658461954583745613340280768418572454975854401656772474044068260814166489524085706327919026558019640340525548983316411452613877082257226388778617878873595323916329438252383254981459392781893976837215554029022698981133029543291318688049079795306195523349985681532200121165932036272881162405246118123113269644908535748010492784168431199755073493792240088529459075845719989525425483906922190688425396730016722864333795985821828111365796255047698514535169587169725935959584020831667071969234816934666796008821330107678823392531421135379764515193147911624151279778514008600131746214375643870343139390897938619035164253526867424071534769499685901551517209636347453982271365326699616876639779532145592850357611127472667996860857221507384771984578292849625062206657556130357114571316074316401566512805814093390608804201899878287960347075735624212548688888639484873943576187797927031274704590850968158227605945377514336532414509370273103256238148056073069022037576728105404654951724957434097411107693267202520002270083035407976862759342307518422207191132718736585883397077866924580029001054253840864972241531972056614694281515462575774502667400936318829552007424120381781249610307222442683077373479595864578483064054746243720067750007507364687295688894251048486671777041310399495537865772542390033534080193997775668144361314135814310064684939889887117571981932377154426349238046998966953524228944966408213905445931498945303225875683005731464820152017220793702920688570416223164697144406712927987918157935699301160237770547454576879131451131837012523684400039601816299612801883365323440188082522056727927924171843394545574964871285696970879284348306041738302801903441271597623078231144148834973687702102991270354120699262558876420168641308839025704296154775722150091447359458230418089182011305970396591986741790792915848513570521964156468999899610112455914522475838073313307626852739555306002933276807716970814027808072266963097685016872748553658169904187719838986758680779257056288282888965107382464781925969501050482602247390810573021890952233447722607043521844588374505611202370913391871539467046143070341312935221030274510720701116889023712014037912738902499177473465320801216388311728297278117012676097762187714917903738934617208904713028317081928800593305719639069300022517466143069994336269510218194750600340155517531151531889868730592370138945437263706654265885270030170728513954348838850719345140053042046992147797246545699224493387273906281739372252343718716435959269120941892234177837198850723868086328872729544236887949275650319339447645279351674144130373591398937769011256052965948842253551123497729041450539834040054459679133203662864202280117515657768880772842868016497135833862527806543021868381136036185162481245014983323750252678693545921601653636450378793123077799832746057138251756515421454024393112296960687389807575782916178614149549964776912653341674766267960306590757257472266466359988717425340239384865128494889053949673439246466362138782119258286686548828442690685285436613873243921982130281435513163706709993752101487268378911585874796183891771144242397186267477348688424930655430861049003986102315109050962505658601110586624899729078568623923951425992401872235994641037376473877009894957968301758169485552796818099589722646781623369699294101951900001611874631240490041709543442911071192771182158218715972865498785806173397134616480689315844423459209584567355318912149416935296748254378824434468841755977781577331153167177525719971325277189917614493816754780899270189405037297922386112914269926440513293399898737387323121184041816469466385911308907970786590667296334913510330139819700706843163969168825517267672678643579790869250831505871314130875658647947347133426536720765245456756222548029397781256720193424408317470169051341122976580277507150163927924180652762486255483035842590588516423404809901537463499635032790329221468171350944646534604385873825470936847682664318251913832182992806194701421343998148392083518837662378070999797212970780829732991877924449442378808161809695717424065786798014246705261882016743924230966232332419125788415445452613503139645432296050663453947342856593387729954889428809454863779257184255115060181847831084734998035717844101440858795387104940912607567728429886949878022635616105006520274529919884537877506328418375610640553040898512962694838256098535640429935232084013661163053884108624976474420065033711420722202298184802558534298682744823047052785344843809885257380616155608246008549415292943552190593206758968806598412443137263470304597159728350036974358477452606410280863258762741985183221777627499168428725747208603992725418240975500638889794299887409027319080049293347762193409653942788656392479243543661236246249613838402820709306561606792597560086962312701073251350694315580051207453809843382272847080932787402861491179674894817444799902489829135460345025657050198497701617945902124878694424882625408607740585805139873643360288322071436777392805593078475065069918121257251492415696136237748131832622161630407827217799600566778295229266875566723168071943268008171851547861473362978994360559603454036665472753640752423405930028210010326821401092530274478601556426783354526775459348252432069486996384387835354407758872218447072468319732359639195640376010913603884912653340029951120643162394717998548625612819370893957237531450149013883151724038924365678467459393965707864911992597765089965629179379229654948029362637748512990282149178109242678335310054690188209533198516314310329316427487030868956129762187446131224723677837425726763713930242118750865416129649133740740445289713916871448227747175076076642929094013277160925738700482995590874445448252936502603533786899471147637630121507425322215911476628670173851392228128222075784866175797742772716506655568188340237995476050301012078710681910399238604066222898342386051075675997085192155905042927736129058220337618538724819207387428501604751311687701808349108597778771191522136269070303210823565176827615678172723066932441505944333980394471205386437063728279003047196360990722232533840068572518771524377992977153593450923058489534296771847571116083324081771030825536921984946709486267302754503950528600462084306049449210241956717771373657693185899708958822034164358972031100139940835526613294627621450191331966398359186768236177731318436437493772703178351362233793430325813521263548293196821971723260547834606388359565933427043891383100928160865939097579890850793305409675861605775335456420391083719863379722081272529640689103941682335084584374034698459891568159628423899052889028023604007997340545473423297227607750944951098806251357114638110045050878449096152226496988740894212552240275699938083758755739298857422488216058345582075906904063046404736009310821163081639994793261850010646114054615803536261622642325651434543812808358770350759928990457785551801735532879598701981295295126183145780499545111737740811444843773800391091835424223929286689172848741790538594201502372323158937384907194595747498530155540312400006272965613925405872300067943934343134511385375894156961055055559448361968529655348312532880835472266052255504883293973174589171096030558950461179181899356157012287624445319986808565645365693540726550455400134058310717521572843829571179944054605971369552558865156422849324696257754547405634063959057377325729711236917500548290887559265711357673660899624393390877256922378697742058706977663114379358063014230262637934929915375020948743839988122682877262591256500593524539609212682230928039495598292951006165498144625900089345911990249070712975854782571613462311001190961316550200976931603910337471520957289086256656687290415036792091130523570568197047258012374382595042145059421066748838114061536773484479411271679907112985285062452358282232858720172452787208125060912815166206549398195947036946467063423282895908487805983433468144221442691995204061201980704595233740387078477531604374900119107388880279116437198714552284627254527591587571811646733521923626880535283433986465761729024336834277920207285750184497672943314828757910319807862553538919225492056624882287070268378944946630267738236407230682987788225251640349555020311081205886618410927649244222220703537329719849239341056157082005967320726963850043966513379471105035052744772832050681383315795078124744368132575169861932266809403144499223298833603938511159662443452611183340932914094686850462573170215519391044961874861539214749641282144926783329240012985982840532736072259384793352682140574270605784156339746551224129647844978195808300781953358499131817683413318972128516391572199898469266316342988862547170197716357568673531076172464105479890080850285966291854783956776945559738576341080231701946101099327756081662320023742306627242024962556265002140647627389695536878364543724277111971601759370387382200762431063417017879221131487500296518105824117509431402670802161307900552118194661406801740999166874757082254553695605748064960147419267420488517929315226435827481037665964704804124150568961258869664366456358383167201307789439015576082714965634736243164418818766415527955814470387229291929235802406629690080134601931159882743089620266560149728910966511563660434812469252826045773213493006072377146643344366951770355174965153128216388770703324173997520015224470859509100828485776710011945777366613565353008660038130501877029686001346828886949423662119004302047051409460213218024926319681679296859673582508538326932086290473790368172211912475342375453083690447367286197206618893630837678769412299544143748061164530261108713864378955665853379324336825209086546704107204825745229607894064788305843315999263559056928266044648547694902864644866565246692119894325504599951825211077030880888869582356561034587131349624802392806300832213489905943578430390954505880007505005254886062808989573095897138080198970809677633959173390372961722505875620205592753967386474420574983172855964819374247878658669343214302053591909910072942702567640653738949798142705474321433355498149946327799729596692316292420101522301391553901671198853980045846527510221068374313217747984496193105681850845797140703360649772022285427687478267773094709967894631568344197256747567192888693145268738964078469318291988240497260829634636262088081695738620995938697642068922481028162242430060101849365692439642252057816331474185540247774419987702434370427769014311792320498408274053530680141191294073636648573866284204463167917908340067692714804831859961066521327632744680752781195978198820413473343973079920029644581648338457267957830068410128301995472953850451636207691983320962618152483479908070456781533493905729110193510340707484361562420353570997466975627390526404137682987787584777697682967952789339974993278672701314549455236229294705201645675423801053759846198122613410787839377948868761616034746860477672894744833712805900581735281416498360110002204644888177911464654520359394160821059487971428570765628937860684994354337678777062373731488251216642076382901458495087345831922976467507872306736245019737704398183511547535099660607869402066858856450471693324947565232335659747871497479439903049491024454534349646629463843670854627843848594582737071864983713618146967258042243126093041446345016421614756686061003639010950879883345068564722508395204357613282891401439024908306546555061001555720385485514997619160415054413527278599690200691710526694068431240711920971465808617730080618628550607448885116731914361893206666531589551529247896569643535526961111413687715422953425759207309122804325758273983246533434814735766955680545856380656258786531870894169522309661964647669456773989708021338034226310068908953643984274350466835437962766783166796753462840851523797458196503671162749575226548841831108730002906918099177439967038461155957744795300068620232792758365436772955618314004398817632530911418477318494463110626391912654135681641280959770460023667663368534628011756451707412709315094007271579898104929480632779792302229837997202941200886724540938082589889532209807730543424734214198843813990761353455820205609728772324737330349278814982621880148770704412510746975837694176643571894317632729525613928650580341760234201977059387220934537016231011300004083212192664214000801846853311209534988133586860939242513860327325145822962794423168886002574667764005315696242118934042871159811990147936335359688176468096724955932793714010730642386500918354798595314854446240170086520937121310351116307040023281089594699901874913714576334576863659627210229194611322347352411126039904341932860569487428603180856849223733177394292845177176005459004696604614862747151326366048062185055694397285644981284743133690885882689739082760125210147232994165106801885040868396147737572359354724739648098308931195406280911921287353456473016664989683664482246758948019129842125639493685426620188682493253288053645726691287858149238477202276326519536065012709907901762712998035470938973675585413636585792629693922686967431434645437021170550436062902965532247357704362076455841689206946294703099269044069575438358416368337242275856832224527339411668459043571717789328173381874007419478724769765210911449451725385454580758195379297743031892335918836393613036895194866819637941753587691614791766006054141939968120834246592940111751480193247293922346203081379399315624722935567921946674027658435387109884037464657154431939622869307295183981509961223958912585021725895599270491846484042303074026180196844858467690221216933853753077541697085921793510414369220519782706239411934842325456858632321470308636173766403716568230082313419247404844089771984279569219732607757766984188598177148566070347791378412745474572744324619989961632629774187973612370592940736802291804180495469413180936692396133935869643539411827819307377952890603149686528038441777119340316112874094516728447575681593596934257055303076857423023594202290641129394018044810707826324606155177909888428294311054059543139387480915393985947322396233960039410597038066500998665007701444887038184019383923011899414829550466425526038446662886093557297239188785808881790431577027473951702134975075777604543341561936996708192163308065895221219945561731132205250831226276465559636196773689748758741910126161986196307561088125235127377151615608498565393977236038798317772775726587646055244697187602903547352085207030628863505019598156819705912678641898197065337316191402600666701235970862324138165111899502224349361901266976404993286492577341750368242269895447672184357993796998123783324117624668445795669979581550955715304994382663841592739868039722247871555629386984987325887577261415584085699319056160647145036652856177128432398393957082618333568669370529073371327541148573602235970704526799376882295596281498346679693441602587865638689873902319187784962379290274942581893186548225813733024649810779776656058981041587560623241965398347641965888017275603855666110506272424933813018597921942974020585581469024598339498992627281093254007896065516851814785744529721998222074572236082664329437994047980834310131218948302925580642579057189189609069688603934945845428239285282418180470525484412349733730633694869668013057287335206832682664865938593589368089430535764300314566683206065367262129395190629208434753452085925626841327294176778317906577467282064135088234031257251389552564139872206610109148034676919509650009818778040479617170881014597885170484314049389247713626051205582380215825306669100646875892075834157321155467638899650856324753580327679894366934743887933807301401849544382243216110507548065205446331813930145184161852387163600009823211205374850744467232749600863292975734339704346609603314539829023377935210801351807453922154522582838740844148044867859980922765584851431706739409472103152185305236651194024454883143930579476296485336117240289620568096439361162298021899934777097357670905315305290067578048439146955309861476956428741848905125362368253409655838084536588422132744521093765817681681390558852334227667223811207395479356999413209797449154347249495546621251680672572193213394728554717829764349103698081000361069724301741156539980134582995250538774459592565249495987916901421145855857683562361937631300391175783402390547009619835457139553382179262786296258055452381594206517407999285802864034846201786651591634842790937816545482294701856827918070073349746616290160693588425040427242095634827328126867748200640676676567742941770874775385461124237358733820038105558541999535848022537244849590856368992325594800136466668534918499059641331381029477314405442610976515975646618164975788224778332779704253317245329909382174529393016202074555572120493568751376724106172156777563139524215273805643013962969508361291367499756336961445078179888668594940293039098489644418717907625459823429531239413549800057324926264133658729937131804202951047770283472932030474265302498010817424038785402413056200840967205875951724650073391578754652235073973867456652478036634681756379230539093144825600647837761761229860165509472117230444409763464264349886426450584567720030409968610952342115896744540406788430973840362602033734127327165780492588815817392615010169280408582130218752943441548732685831874262413836975847669243901951964988742691897459987707359925480976066259037842142920311190584380210910789231977447110432219940204191112402575101058063481178793826188308308900971996264376081172454071919514073813845128418471513237371146244402233844162557921781129238169058062705153257713019513244799129280176641977715980160065639890194857648668943079672271218133479048693031989697896138715104140708244247250341973994017647570529058361198537677798461479928810313798158771200336262795033464705308185507973891361754513125733965928667071511137472758661492107550154779589498900160670011355484036015745805838013014353913181024312054197670077205576298356209383462751226037539732546981538403861618214766141782998873881250151845735036973090089703817947755986977121355033867503500784549799968840283290142942771157607889254865999200034880343289831347141937981734347403026988142351151348281276323824956174527095299537599257078358262713739069549867930037780559139953018444598890981092326957581984165210870069636979358236261253603705678292069227846767008672281341840457491030036987128180266562649356445712191844446222070139571606419908374533787864359040546913307822268823197011332998956152407136601692690932646216283930585266320995755242382571122773144659300443917906276140231251342007968837012082451585393460018336646104779284160076722438616258165523562777764188100112241510846436456507712275383313835448465563224338889547427048190363610529844333810724482489154616145627341340991240323297243086628904177023062115415495884961881467393977164437920894785267834356322723275373843290692513379623914570146466338921755839743976256673744474697504311184629490197122624060181444714748518058509259942666932308735068719028828156738328629554527746808872894530767948528042819374372036466920385472177440439757049723644435834009106030457873806863817299221075389506890574371927660510976629134839016627489342387850960754498491911439319253098907491250419984924317627672538228131053187443830039894292999621187093233082481150443871724972290086703707118459343120359234344793979400179679167458761529207809310020882086006724927262664108671535461139883120358555597980954914807617561440753258173657511235907946617095066549257805846399140137409725168503934019209191493742756182990923818349925643065286781954458730708764613853142889303627890177464436284033258876929110012969183847207689360633345707281101916397847356883171791555799719935306067302348463833680539171287167859790528108968746439047503295819320181903420347057570860026947444377666970578334958922028937981617866293553043970829221705738304572513146154252571261508535149097844756175671654372515936627477785448026990068850357951841883223606241138902196014567537141623860219594017613527618901934653088424399981739313868594796362350994271441956115917820857360781364406086395654417189956447835688516069661509368853992442954612562693072559485236299381094073766899444988142551634838857380250916883076802589479140734026537413329206575030524834836139847032310134869559821551083801312133681890676951009985667127359189583127463031035933753819019716477306393321047512054291219752677365653915542172085277575837625462651538040828049000662675947451269259470872957075204111859428779965474324904978432943408541113604445979964602690357110312882765011564964687742741458668220161150665283441665293340080297892306452104820036389455323683899536843253624990763261392470562985609262912008413100282023883822442302911571444244078900276536262275894979361709601977866482990561965977146414328277898901185998893359405241571611610266445885667355574532333281543557484552442106242086454706649510011709796828651863566024029774059380686863084830255178029425755556735510132976044104650912145665880246595968484252108988548458662555722258124766642343920898609680779559293144774337623532655000586551477867416666788830976614782769588248107550825030928991477534704255659063753368277755013652646704159131416132935864482630796338756595658410934124456901855729521454077912623651855735624436122796921779288551748736833644577308456740486859000466168334580592735196978847591117068986293284901905175722213532579251949287368707689076502061001580495851675843535314817065233176978372814680080731491012333815713686274921109852832071905259352892806499164577734502452030709447226802941302807663776941997837026957198757141424665619268898986601778843790232628496849902736596158725760791017065220101412148679923532478520753942439510479034337211889390701632968034088617856711100621177489513618401290120518698160144049720025397312263107337791627683316945704927868320126928268465626403728253096366194740890745747779683778928748343154506919217027554517044985058608632622269774029920071634359445023027714002089774303326700907631650064444633097603567811560931634294913433738103463487911003470616148082284086795814938906217569514062710915597997038845635460220753778528791269754951314980068340101948290845838763190447705463485009425191574917225032117317001379541156282598374777774265280330315807579550461373121573062631970182288387150591766204001667953189335571850714619288800833197769808097932793321213048538869199391298980669729388578799810271400586265764139451693728338042422720533097987997617898427352948922500201006847430996935616888752103707040351087019387579091383240298827894561258804186069373115779090226007313339635949723445253019050276763369689959645986909559345693975605354905299783027156349918457612782081094610109457735438389880728925567922293507836282013283282563911104605513667525833555185712192874358323999717738842657105085918470507751059713223143550470212118593561015201948882424185840736692988345114343633583417666652561399922988859665247679404656063968582416824366633505986059148341926091307934392758347491912702671140665937701790049246172847991865880899724234352049805769829135726519189786396977969465100035764730578321861232406855710930618996788820592600870148174463624323828167316870845015887473082072455160153772984513156985564922145847269042956230537785591969817931216950065227340729516379945780380903465283827882963517103282856934769463401454735195319252266479956270519463262027201666620520576481748334996616227164697812727047981540933393990067535152193879603874872654622749071262131901441292855784447236256844771286691047710474466740103007781158030815522065956799570608487823051177354960715837831606570692517922103369809869632367929940039091963806278364979189661219343809742266741895149393818611726385142317812953688571514814547664787692465372552330612952308928398943049553047596783187211046402801984217265376404934553356254703309406677334238058920031612144092507887772724784802721887608457826238972353142106251816159403844220894859240982038650428446495080020552080874380034075855023369336340334475799188893398184532315794084938492033770820152734643556877036348467420913371146679115973118956281521873921693784919519929009535647373655244042792473575521950338732541899878019159514076494212675659305212405761769437128141217272963261171739024752075680514912117232371866554428275813798055991793833007957647983160819936666470251508175397466202738073372599653097151317410806531824485826833387432987719452386872806754966472660386942218889970731328028165908747511122784531399651074566328942700098294017654103369973523808522987100926143075705036722061560073520170171215082921217080471562294473519666933105028357738928682692044133595872751198618503792517266716111020421617137306427714718219608392165147008813685035389821539432206882797511266726572181625822332240195984289628209421256788997362347637893119837896748839856942364848746634148848560997565523947302116456114974720895572391395385775309284785558569401060951814833528736082953340393513094160085031686041433047860149829663672867464976054558818578529503639565918427018182171386887405891388945292696271367082770757903514802482031367153115355769055071356504204788880692310541805227958250495441563503719919207128085301511638710928774522383094929425806688316115176704058307976915992417086611665722293418580718342413066257657921342382377728345611185714208865253590060654444547756480520717460898608254623974346322374547103460534457055844273152223063536728665984329632096284162289406448672902675627846012154679644348960348614638381766006014774840717810502150083975736021174679073070254725699532016565402840611720021347697339882989128708270479249215853467748682336921978964508820766917528664411763621065013102361929966758447945345229511638111519482495719017064792280214978187418594784097567805958232145744253066916912097544714592488045722684283406379561143011333949443276067342641793377091360385200856394436259660349826571490041795854138260135312816928549587871013831530110368593512238808925752960650932465838249385601205048351924185698995738421763282561558823268979343665565894618777476742720466456332598014691484219864501883123907180706213082935769823652222833550014433760872127688964459987115326749119816986448469027455282301496293637447471847251340693506178393626250656382618916625945207232947076768723094366822148120301370469997761091495022738180977326372750105073989100865036974134938144409723656895645121160322150019909587363020412457727372674004904410519631621258666227988475717055020212191392864901997174127420873209513372440687582110974661188733637498773348016083374180320819790627501486981167077796741813832113087540736380527920716687389488570056071137596523728876975670430641005575568491253922508873176703616106825791324333255312395876036796156414865999398688684995291221999885818424678212895257302916275283554935852823762119552015906995227775765911523243052992026306674254521908865929103311816918866098210987043058934150626774786863515824340651789217917067211163948161586352541248642619585599650793965748244885824714632970127117036391685455784544205121532816623154317694026204231780067955117066015890717439282944519527561136518280647480541399791206961995893653771826864817377679932957908575152625490755165603346231053534787904747715349676401357260436723976177480516711075156334531887991753372848437993537637405328696618778040293979573686894979502738763167813174067203066675045168763000569647634498153512702076705061277691193152542857403124394641939419867868173588725101084197843227549072821376999387378809805275671475505441124153854110293718420270615792727105620450390400827744107937493279382070077451633333056276690865671602557745690182292467546844358853140310200093417632942276980805582035969377222664245808421376651481567265195383565827224985814457907049723418328117536303352868757790333315546710972005015195210305321465090321410587433784907703383700269310365767664316357206840545818943707224838035169357784806180600547261167402307686776761495253477594741062396466949565358034901605484772466662077502943186531723957432092054611162918387293997749979756532490244937802889417391180771644546205771201105402391021380687717741036025011833405113190844973477104460368775583871168640936210545912526178743711430328394372777275230845610105797356775661649375719435304664100820994833965922983942774372526596240116530292071080082126637609698755010969024939574298729631955551968618009676555543003788821932757817012622785849037643948071719427685392510283394742146876506910205802175179405008025012575707408640479773608059006005037245941972203136848937141599171368444840591312248713559303442464647415027819133396162250220007575071550625957453019500773233075836419924311293927813921741725511985132376970108058508067688271822162377076556712541707236075376073091819345463848650762939351352797866513032803327394282570486635201655511256560252841020980093212006625785932230423307874637345590149904391691974576288190380476251166044773055304562752502900176220663830252151311167749658191207429336808496462128352745266696865371551057092831254851920807921020553146907136023891899492532304054259422627923400631679955521763319404772684743517045691918002600698123814281885540743775814094451037629030210040544542844267139642672721415106018191368483377387292414919078988890116394158420072601477451325125564303287324327106019283302341137667854808593247473342072225125338630746429538205459440207179923913068108489240945517341229321771339541626865474235437388442933732716849453029776199322426798528328982965027253749132484099642596154514876935512288920245438309817158583425765623962941939494874750384030290975944752511569181336865776637174925285171887840452244704341745121564237854571152149856122672930516663341899498115718882523566714527869467688122266802473707215635975099903418131359772781451721271538443003888507108765043646493994767867103365474963717364748904541678026561108470378752615423447747055119504051166946388352510501979818744830997908708955492202960825800729842559044227822900352331874563753880053073634228701984516206265943962910381483299923531173400207140712902655088046417701705708660667146050502594091316469284370520937920717733167442591147717125497212022378312185242342985288573661725804134277043138892133758923095350062532580653653609616400001523931743971184815860269574780194750400708603008788464469891057176496608186244502282539844184098043664184266018318807607953132450785572165536721618860181594979056592602349701601891537776501592583636141998744046346699011293515546674682104066310319014666288935928148796084634608414032944738056796038724282401318813230538367871693316066407898682015631790497145975622869162687703566617952167918786361836002570835742356527019467236157655173998104344614184547806895367933197889999535014623623561729679244001954536504131691154718690767555644547381519396110704711512861863151576919696442620099385759457327796154154629183186389436907080999852790086884223622739241175525273397868077128370107247393815065952099439545299870286947630517066009160602144173043640815675830900740658130309622024267298710827353700031785700705927156815265876257960546641920381092009690151830928341445459379480054189197490349587464485871987000582726266110755036709556216898587430853356487428835434287030002902060019065645744113931660878118626883679552974994601008954752734736706048849790651607441189613875694123648775341098007618874690939549883952506356770551672707344572690220414921323770317712705291625091499152491780587115757046089582042565149968588694531161089340066962084049974748365447194216250590927130752807363864723521903176392536542684909253694759358890800809959338542822674720901441338114676275836543380721464166862574882890603887110385727244685085973206104047938424919690339575873040523929786648255977771330786949108595397682530475086773362413217257686451690263912824140487214523393196083860191109899886107942736098977014897153173048146620673337052049514140615994575971665147463884130827383995582827883198072861475566660523410613579381402604069377893206656449083519244955781805142000588693784175715761701470556448218319515716323917621513564067488135367810950241154784357599060840131539225331028583493276835416752315754571553350528381483925079062401683421817604472083015532900401147433176961602119953685928320727296999493011954197710843452599487068887791820378293677094799877184565589707181603141992657677066659309632895018894662094119082734052769766329097639889828540142298096504723898044244797485854629164591469731197587971893026591783484662868311685091380214338181365883581388434009773640715816875579462103950849728216261170578618069549244164067908005861324211875955761346163961330701809541417740521000360839839103452562385594482281180806015853979826460511025063704110148428604193243382322589525430406450200481385421734819946492073168574626278160451037570470184690339305974200683067160531315559083975198744624739176432179213166267621065293458753244733014244830741639769650159907187646799867743145043987845215649412112268763667320515504351705647129987095390377960212913591522594068113340056385333124538796227268394249544483383793179329127637894158171226018001917662453778459707764686263372106117134276554821533344440131238980540440945143660231378965891041099348776138694255666384203549237363697499510446952891433394823780905701052915789467289002049806298522120406921360978937173946333205384180451178790014354267086496368680565751030211842574692815188389612578221454392561105754091966000092862202003380977784429739580611715638295009281462789411530585587581852953275521124890068953336788756708800001593246203513413273525399153666533996783144828588883340180450793124656558419672429124675830606397641489239394285619681674926524132829780257815013678378507022646759379444364609463252511542392601095065899251390354712871676875147985533876695327486693313636575385657185060294873309421559799066351612614924605641279952147720826799480392027522792003579049070934292062060730117323066455401234118178198654251507397382934690884879544909858626254934925664905453653818433287095548531666015325916478108965179404600186132184109900856087903099445504518788830750341939181908354977923231944571278574635867399276159700543136501321926606933207116912885871981495557821087499716373986754224935364382837181587766980751606622123502486464885421699877825296209446145320433117705621055717640256948942565304637690048554925624073140980183459231066264077134672020691631545899437849218527735326890923538000604861668219163858346025922644232913244949745750153254232875000272895005920055266353216491053822745670642284414138063439866994084390438024332695609205046024298525862424954367152932610187354831308033698197130857486915313873323684915434028792435413313349212671632694203978532526735706994975018066568747125848069030759917665689293533475282719578406104088244431886037010595208777931062601983157172765222669369916674121100431829586310198227602306686279026893657888609612042760422816003038389617366381267006201207088689278400171143149704968912109920122386124757682613954254358068178062054883723338800275357293782228415364455949149816718295687852010698023162362401357571924175313817448238016653823980084494446334031479774619586913946076228336166130990280939591221056441047981052375486022617012536590946128035025743162217762275096674767342593476065529494881533258324207848104136831614426034991303654591980064616167576701246679106841450089719853027343095923386785215771349646106758020253166913134470295742870607622899120429086257826432917121308069494304415936916790573867300204929331847216169516519365797679698723877804385636535419450665471848951510071545796607063980021135619333532705092508159044272315825788150031369703017377819660210581931942260602751630915279709599135338783193030781716109404199952192402321187097355783040872909159870399683924680245011380533380533297966567738736938526707699723576928118104685032518743471437591233674242400710552520031216081187512790542014319324734193000674564603027651152764826513928938451959855944886531666171120808928496773259964820269250584757302726541757424519071648926860321499519576727871636354037283528442738087661362665441753751618790738112207341666797210278686984759637111047451401620652690577665544203373158991442513546288016015926247880844210408415178200202054358367783703344996719086310331015682259837656552892234868815683512158311089585362011225346238000397279977989295797995970754779631740565863256715077491617269189438970981674164614023930467825969070080481173198329423547003536064271180757337052502127966836927755805984604833642755114544879570661196961058633953696718535618065959570571565634845730848153817406583881308602761953915189167753482762541925079717753452058349397503147525755916003839466772727294822988166761542088893306754168883669519255226134337867812054427592931296500862762835790300653746745396498568096328779115711227096689142687513902373563136258802817219644843427475619195175833784576785574071055422085863751083044518833590115735402138933246997334001164338662175479262980434371307082088120631694853937182504561031451712181049486685143052213996073977710851111090891442862401488673374982906552866768392724780765404125024546758547353858597716967617192006468177236571804471355830230541960283915341886935032358153088194238488436658499694176403056475582763381356740509409203854458547001029264244204537943567360681493187159409441294381087747064339142224179221581338388173782591874849573916187351879892188043186411592871403529846096632203319450050852541536110394718611799689876357557403939085351349746798552251788403329085105440109975787697262799025762535938005105697137628920908092332547122767773838355676359633932647141234994795176827113173649391963972853881940864644995294763236980723371739514191926262187614045176038853196420171116189363726036901572361037982928700752850030265560671487771566720532978208767831358958009261298208987974762774625434384255684918582099837818507671155459581493718659862409884342812448362131363973164950241662943622133677552901189987364795662372555213294699899139262421663738746341412596868477677842224467553917175285577268582936725852794942435210742309137767500577146424848530240150210018331536388385242092012464949770104566092724093810942218141567235885251802863861629729562197048998122716556738760234016816336132907431840261241953571723691241557981778150751238352225001292140873393006529538867462460376388330566038065935332566473361655208788767961360517468038917368135799435608703846359327854622915817902448476341163208315065784207887145909082946508394860172090716228646989692139954874558255375218844993144543714030219026763740021989356339824997967841245286470165994064675269444760408123345834603511302964697265568700368995482219570724665166788922944138811346989906990669611308999498928275032966369512743169708227631588399249847474097732723248622391708657330698508342865540710858292962706528930902081229171064546831899087619508742134477536655628609115940367632315795211222651783783827651954603312253474765157481237284716282858945982621107663803749954077207335004726248853858125847494909444329097923860650996110457916003619126494483640636654497018041063323136629566565758188856254706365982032333281201741321170744909029032170447546610397329857975877275975204262262575053343417111207205641148900334246550137966205950804937592141767331832901608951722050042632427147901166974541483694527188578067803745912306498576179591790536269971385695815879060751162757496499582907280070341348811645793005346318753170287440040006401908077369250199827876621370846481121078262574976905311963449824701262472926243612685069690196720372449629645936106117208918601768436571605179797281609253782697203332678654775412358698732207955363681622745398970321659678878896363113330396870065780640993451881806408906093357102233912960788556585647807793162671793343549866507838549852911732235451832608934860820305479169690676959871069632006134533727596638666166362158206425947145153576143416508336336704679078713870719180767871611827374530089160021664968323215940127440746257431984982435865981534337409371977261886546186896263853357482350951783304258384187680076229376474704345809988221029401448288106583819971353340548644683416067487109577999908611009388424826327405432702521804437670861276917429430224728813769835238931219650701561991098157150662320701118492350208819018620601984910244402863866611069805284645655703766792704509186519186503184436285502787462988852285577719294449794613418615892824405272390738067897500699305460531413699432309296322901051828022737266841594257958412501522973458981971619818919510388375859863395782244505254426150805549910883272517346246519264653647284762130450332773135259323770788962151730874905874848253232103943240283345882014087104213180316181247271098680255976032591210138073005343659034329915136245408571379154323913587384195868542589280375996996371896353271262163869614258059711551251315749558189286081591782728612411135346689385683689269806577083721922987037422047057523047574731984263588312717792917882042209393012199098107488681394973978147680724986693975920267107913686806885048022688271709123846199750680876377108614568676539801346748236062199808981790475304323313198009683233315407028148769078376503651131437955131764177846739833319422375643074957680679637510594510639866561720691376591948298837558467653829090440448141257131245378580813523677822688096366267422027666462371827581439271368971989066534105097198906076207481856937274373429577463590467641142844034382440148384906373166173588930060352414928815815817429435762127290725329203885324600042115766750204143626042111057285023928060412748364653587224668209028998234115461875018043719939460580820214504772110468928409693868435422821396230863123898344335693071672715430898984815323816649128174678778935488967666769769236843826668639105410026407272508883225431705934047265509526815301721901919524055438289572000051940011970188111512290375183389652148772857922900711355578082136102368165437767496606601728384101150425917383948540854727080883346162384351517427006598098648440285358218768590129465573128682829904440952329042120328982996954661283180989061980881417686255991845805625964109036202422816817061201371993670590184787050818287634780812954714861952474400158703699752526067284039196991926132294512221294892981871726919411707054366309447986652892889057577034979445950882612186915288981925345218360450150359776575362985341358178591584258297027944707170430947817722862804240107061952052850455506005899043643880553234959786385274179113935693380519775287590808188818806573977436215281009472377468848984602803340276453192901316290891936415086456093024334641539016532774598587203399919135776261160244396123782024290498909681052856857871787411384683703011404357363426711933477267649429147172405056152659520135951580653712378477847653009669919834902225865336327369486967068076179791720122048563482383217634953988749151532822831527307787594086942594986291031741279256513928068834593137580108135487557371310203514522298361278748585644782863156471532715792899485379840767266658102525739838511294105374985650594748259442405698304841914314551458883897082862311304380857180826705681157965072157953126304258875996084056950836999812699573287680111804987556274899905751891281271673097948918760757917231177366626639822112858248204745040149977870808992376556378114579262865080445424080139803236698024664935812125533097158013015290178114739827568926049144207783068220132535209335928418176431583193784521375222539304329664950383697520032760438805672073874573588688013560428353760965503870511833125697165526675584867723697279678102553517005522453101792258923997068822110316170288393961594824027305170204695514818706173388868186012672288339770597069492269626049294996377382644685685812786556490403932769355285292467106951965766192431930445256949759627427929610470537490115716859595233556428501855153343684680261323346385682588046350444678570658529324135142007302602146193719743167808056812802406250275732724015470340925969035464431455512014798248782622136328754201575707095078392067830856779703463391012963151759475609998304647052597127839596892642343274308606698921093673080955481056834591331281191912105879823849441976062631203684585912875105138210880127313834575281743649499468343659605444387341761799431133030141939192091757170600604636829910443316674135512033417021256996968528752911036083796810173483918996605714679004341592585269945714969927770174421644213140870445213107971561193241492778547769091403018401477029730313006881569620860843100204762086288306580883465528340714814670304279410471595614823760181612034106390731445346025884548788567498535447821456530652163200453088607903016653516586988590232901523690540671179123985159467359494164170746061436871627921440267607732687454508030560829356310685928839018528407461802411249784343323550861341510331486832776133120446676917990728219115261686819641252046896442649481355519240001361022036946499390737504294523402016855048883347122292061942416003934192284479551221925706410504905431977955252708779526532751828120630746352196918414176320026979676027991880833138796973807486770116269216448148708407586833958111913626037916749163267061406126173627787520786790488250149828019159866388120451042216449502466865039068988186150319196496682268161221792053457586722076135578927716358527137296693297251529052353398980781167902831999303391087574503972331228809944753276958396855720693554134092966069785282537336025912606160466202762544718104860651156673186087222466607821967088613032561148558776121746518756748329007335616412786987567694305837388034429753320929648482478967040939530135056970115692303496066908689448293513465997049761875025875860831521139002691563974421411220154590465351047252092029128740107520984822179270724135087500466081541264129513758481090971152791531220702744798297960358649905263955255256622507306665568054400087324439307684858676009237207159050476874032538449675953044959088211955282970740650411248728249313692289796378570395262120138183573196950499985875359766833751852927127193017249383755130963608628919356328473446064693474187378813004095689342516475529230131108783894150843347649918503762458685348684916830273462482415637019381360689698899828482987103789414109341889675354403371202581748507720319534969483446558346677727591543870448825575110711725628316406132131161101913072346523470610121703242915407531505695513173330598059488542652076482011216588657794989237031738772263139421266589257458710535583373231117610826659604726217568911350246157113883953734195567256569645080359595446144835316836815975445213882726575083653532184254241581615518640493078233771533209963687791982009236784920000305961604919065535555782548608244590020291442095353280969843277126357742248670323858874204352591876211105425808701422654617996673759805117821982397654067526470677992339472873867058801281139221651816425117043176835554757174343369579280420199795405922390539971792869126138295500117935484732906306644279513436712791540751767760234930798716173907116471116089876271834061773786938178782474510715628974370603059303809552750178775589448220378019346822235747147783664687605718805734541070971986004136739130825703362718885218634149038452396906508350604206902130886693274587458811590255977539140189240567635176165682210909230777027389677813423313274269060416264844585043971938470795802712133630561724898558149776337082595792965900370118668660050331045576163788443453233019975605178670847048961701542271493469739061803071452644372238049526664740470621481008530725033663709862370863351309498585715995905168554256629517687925160768257445326588910235075476118399634557407439201763875621947366306041998583664325950130775553807240898844945542269822296105461067058166289730888124675900187450812311359758998429400473826773564777151674235376531247274470173660679788404028813157051632693992130312039247649462951215919155876497450722393666729402204170948901837873859231420919405527491476710684149613861812788553522798807294682475196327203032806471090157582129522529479650984916924172011964423815408545390500713367243259196886511596736982875765392902962926336789337541603392853762775008089429125332696920149152182550211853289062659407991182263739866748363787306779938415729056809583051688597541775169194214621402160300722859497394192792499036433080142180005053325722820958530875606708992704334477961997087079882961369114760411871446733700054665871830085943640940972019595318361496678468543850338080233694236626489076649282155616655269907190639845685195933527724719795892887744475436276014210864057749026753702158213868447969512724217284082865642424226445851542019409652673361917214243179199015915502078587348035941149368233795116243420799822504063260738062358401727530279111121805936114813603202800264847526212140261122709418027640310629126119287015308162165817147163192902817285221591594084059592164965211803455304936737162271594022089393437420459052896663784039145879325761352494004162994856017873093716598513067756621023752213609412680667239943226401135322173880031443012862237003533848513642200965474439417748193395849883111328662533291295262195315249824786458299106645458685550668376680004815808425767766237184643599578152001621431130170371980595290700140491894041634105610446577297930124058686951214044784344501395683166451539432378111337419287163833850787968765204113788561953703273944652945784187312696217723610741809418618419066887703692408637510246031614925793168099237735295278797526973140669884993761658242851895459813584358687423614688613824000732102225348831402414768834978597937039981353382130052022413199080085284883116327729565418342505446704626143577824068243112027212706657166086909716769332935677372920317634276908122218175621444146484099873647033273038725412996277240738151188367719811628183359981165221444401747342632005432244281900973472758545043811953861234241700880337581946343099729036643688596506864531036503631181271085647318135674731318303096847070768919742956639593110182667211559802490110599115123144231793546618966142509759972082367961326126018499577050519720395379136462015228054867993455074485772262816228406997982350426892230344048312813749888634548941358529277344267366561389689081334864572942253304417618571452794970593525878692370917368066932298454948153429455883396057186746375882081176629098896379426758457071924246092480731584275984042555354689086003652233641847917454253592736519690778632509064680243901155033344410636081904519767471883698075932490534937400427313300635118940217061620013851194709679647485243849303600069240735331846484453687286069473621309461346878604845618761026825367232169024346574487267165687082363110108418231616574420917776769152897566627180431836519972475732705137127470534967554894919303650901640923000783953322386667004044853591205491398348144376396980961282350401245475896086670344290873242716675900615445972402488587999447256193295468458538725855320391161749741727088493575288879260226535330659808322610790727534933078479204752272490947552157577650304415813067149285450780141015125745687021604671786321609515419302717432538722988877932549175770077667224762670524867823022377860473551399620216759319689903317141512735551179645014933215289842302895701106262325648286693935104529597973365983206362352191478392730056610232624883649534894547791385885430795273883330395555096714404554905987765622032924868948167253518345457010570659810571551201738350444218208901137182249477432073169900212330902029539293037653446925469914702309280191305942984060582080235558201720850235322422227478282989675158722197623475526609489503598211753115183702108919458308910374359105197024735569542210508433132487702463677590898879725275777140575843884894516115383224510107766051992976973907299160334375824577143099414697432610374762360340166835426886184698660626948463595855228852171944784952850251963509670003357909781074317078662341718617485649904537319776648609898899993914697405002778608461047073232006314820452082122952432873471474459675514738709242253777251688878498828775748969280315113012457230824964804942074156034023638640359745240230770647603729733306251519756379282292571349968758206870219820360150126940374626560691789078945217870265061446095689827668173948383008790709338450890660414557353878671002738268813748555721056066939252134669555347056966334205741881561014757443368209164982878081362397357380957917245916606025484862698284156313238494613879140446344702540054862392590472399405930163546455582371221782477546218812401507186515791007819344506168123231161610831304547559752306797455658372957405058481969568344823604813478063126932591899993934420393001879319788276466627516834545194873101645283662690923713521378240521963840854735964712658733471272561969732416685108223019693263090475855070685927788934187133793150540584550447481739052059091567963810697367276883295876631182875759398188295412447965464565468155460448082182253219596647581097997283283365962766819226923850127845853776064697406789809609074184607577294450450004095546936284312088595961664786855902277359606176967941729465096861234965782674357296494092455269738238260206838044012627400321610889157129858460136079571183838489430617448715057525188690579855322795986151734458610579477608347108168152094364152647491364264599564188963627346214318799554827240878080503034154518278879191220631297085218285204795105628749475122787181890679989511910541200638639811235891906370431620689156158291192467030625604745318647950530249371042638838899975818708077418497684902403216649468279779346014663233854632181045306719303957378956737103335839413039923327978541619455754881296216822331128448720437392273851478518537515227018274598049360581578233698641108492775052912443866684465039810670862193572061624587104755565695073865298582694770593005325231175383651022833263088034813935232258895147002728948208958052976682400552362201312794072328323818154354880673674473141924669284829389820518851016418396061461319262050767992204274572117678284399336343704562670397357054941119658095593931445870183941561865736397231710928005311187198032285117166863266164890993477611319536559630410099463400121776378883720927705532381108903284750821653349118543501155535085080195425605286546823908572812242584001348922318915204353855187323224941840654335933129237072898474055962950385791366961580382036764703067013851278853206771492088898250179106263821551367033007906132392034563065996278994320356281797886386902418344519845824399475471160925411684251048102837067196769170460697712786668798905746601036097027285626452456122195731092465687728124634950866255078724022516063610940518559858331710387525867170876221076159043835583579925711510587111278847089236814508199539364836198029772982181999127944217316502369592259432720784074207101867268255711154040620674689380484221423626856313174171744835881828873230173945807305229914142596062071764059998373958276879234982993131913866872898970461723102710855533501557551017233391682909987540956001261163884452742750713404424662079664245711689172041852105559902832126608723217397197519459639687175680067075646083945009035508598475921542086315731411103536345746557284752612389736568072395065506863983148297493613451258627949506843641468518794194668939480047518544766055469849802266063420456883111992743286703066463417385173123346468708159306211300608137890169171200897452752637227866844251510340575532469313498850240730644811764957887159276409631610450680427396138400749474396758616682903572240789901283483753581288589712012308957802433702221054875896482073364246179417956064263655741372147726955721086381851922930604704794585701066591314590291508733474079808354775860411442224823509079269085495549353388210897562623915927058548920017914756473384103188377359389877641390210291109328918743499975947582767761268672700046769002171307318220062778008329661043743581875489610760786492332689061553498002871324005210113948894703981876675862295823759855369107796182913816810467887332701942799462583903118495989105565276870397756699279049076260632970468007414903228198848649295819033434166859948310476708370962751724320060102085191349213185124767813628743285562661086356002487371242647630736942748476670067435265882003163620574659630131046384308465826519957060889522478225415961460765589899848660950651968124009406394192803448839491190728310936192784286321266159603513315631472299577127768370607594069604770479528501473635533341092226033261324799321402315867114307867010018284740638389526776349548309891510803195751515312591136353136150339713787399651809393743234956387216571531390493545809998090376390919029941143701067534779780471744921330514291373793244147995491488679153935494349464210874236374223594945166018485870698184523158797013982288724797842843170000090682287123583974691286315405202805775695175243651211935250718479249786018186121058273287306652291862750595077635969034435858521635978513115485197979743337898848631714911156954177817864518363141276526893573866999668815690823936259853281653064816908826353197352248456492646955047641908864480197252992785335476753085796948831431872838034207624452045792363060247658324986502936025197086525006363821610339254575768240066349046759988407655168966629080770852781728689896065599507538286152955056920014861816832589336481393083639114751298050662170532111439359830450147255519569826583399847682588133551492705938348741495925566101911196392822009803002112301828852781760591065242186977450704722934382453349698619886210264276847722919017422188361871229830671473548393114600194043666227012910979878445310174093465092016280204934220504767036407742145678636548045357422392446104215020841425759256861401215200418214501603437463017920428159516683978875301262411192880248313850818715920295974077213064912662923731035400004808171622438884920404910624606691621855078930093304870464296570612805163342258752133287833502934248677718093387634122326599646855796175826458085610967902666173232014592093025774449751304825093492085241618283465062196464739943181469535874391383719827402090991501240123414146852061104270572424327706602141442969760288663450390016655368810489043448227719431947800472151649978177472139426212668301090533340528255391384453976977282014287043997669306212402668709245626524906789090456986845892347741647855475600657871526304016114237460952593478760738897860926341876988347015220580571151225534528538289674857436072392176793638107127563513258529829791264996043433102073922212471525334133720118377679139093696097320668413431076968485140723871918926240041915327431060105747771320448103789090960563802582689456748424599601729209674183174780285109457810542007641004220015985544231799724914858647651927056345633169817833756893639156344199723766612420132749974371369526370977532716292651853097111659734033349809430910414380214607838657034455265462481291050175379155974210007039151503235931883165371750030480385834686101351876548072153011476792333975539425506305147702022144790017953466062890685064512323821823248171852875518433419262224937778579174509242073154868622564142810933628903442267215984319285372042487006576841872687741963152882052018308750398723925100204232680687784517624737518096813920582896740612238312704159287974576843099861027102145327047655552682231821841711210396147261812136086903490510496135597579592676178018446606821461389286663144993056204947704631906044408080926879142618706851429823459518736297224351410440828029763002206918204234276006973847521259915327522797953712213468439311247602764847781032442860776743078244346525354419505964180175002285382573985654761082212982679465243011237295579794925062398401497450157709034702604854240915542620655826688750663891339088228866862590795084077517418875522560721423577856042576785195760601210484459764508706980804454681949898111450457267689688570031243367260607638977784664809715942266985339755080408709324553299089084715544559516140298571950042324266179935640998240871915482117846010897276663172336236781805694319183617770055548600697572177285531715617901923885041612650355258320977454707907988638036838910553592543808765435886930281688010610712617849341524130126695005482625055413652876935349401303171029862266429415685180610966645693567027983616430380710749020200011394572982704362795137203214179827844437943975479388293850224226045539146501849675273157718748948637305720770370330540711615229635962496929176033828550789093751790049067316820389616990349644088808646197146032117144756210890670761535042417702706360771279551689339122449676534503436849629257034955417408549518523967882148452463371967081447894417930389463411786440926647524987724412221562836666829606165382818334034293329917824508164252901786897028160049486425882646585364198214272763946844053155273498969562483884731241299056421906192534705082905286815118689606246349865327773970365934018743777686664595938680787741757828085720977055829585230342856287957631737152298530620335762412460994644847715340845794453222247840827011253270838797531355881008292889015129858608001569218331611764595523009537386953986408695651298306632063744155167224220828307249678001072036170647687588489328528889803909630614332963050586375508272987840709211048639534793734234139478873541519494892182933501577962780487836203929430185078387789241015040126091459636414062999567423843697998246807507806463226564455435459518900281173805233293870707587708958120480376321361168205800973979462137230415768609607717744691921070154779855180643999467859906816406767753615637102167246824094019518139361222367341537442439977751103115443164283700100728091472849676127571203613562891402709585851049806084426703108403621157862158558735503286122455839863712313581699167658366672681218909643977988552988066408258393594996725248918586661527572237043535882660485629320654853744807739868284280063177927992772839428261689560570519388063217107361164307710834315817091792391696607448740194385075306089722351293301359646104899206957676225720767655848658348097915504469666414418030567007156502843025375439116846663612829230224983778402030432547669971742455026730524529276735457276189685389167110531149507347224046276929494011350973905631927730889319891183307036647309924475555469150308748523054129229214610591879329895001041943391938895395398738204309649230163870698680195693257652215407616098917713730438786834359412449590885409455610154090407120571197712666387909222614051552627894168913097394647089963327255170249254471975174938125644793598464432998815977005641999059822121090657621816161827702144770355070798135683331084146262928371439087806485244602394659156956497727485350410905256374163053656638738737460134376074676219945208880299630644656512455669569288080575382177657774319153176437279585089921926485808795395466214304763316936586775909565493903667739122668742890326032166370031990682008087658420480486901961186867448315745204311923778137329883219210647921472100483760312858317284104476640833583389974395797499463644466637733053225827949290652266499284633590276943568715834110359669909467402706873519388902110095416702983589353888001994010891055527261444423471713074245270885070365264336629194005652248998238013423347804518695605296117555519600118808603138060408716816365136959209460656826095378298425316012713657749270025654708144753836523976025952212462208084425848177417281654578141659782414847208293083862835935758368290733078693939807076654734661659099143216145130439236392277348428184204108906498722856869293841514747385980294298386051722979800225702076216787444746855364284064529825767158992610256584369847661264443459195063774647539982498199126548402327973663549848147635377906768127470396760382285937871459918283503783410040502831781331470984964887863110008833321299604779480324792715672958934966586860163080256220080328864623013153929065651229409640243085839416228545189698436909256397615495729642892586948942269950733851837351920381726517201135381719611414974304828444743204765224266399385667486110278747253760651067731403405331434388821308158516584609078207656452247935010963753460171386225792233304888906389040524401021435739442316297645917962305943714217057245939420804443362242979295668356772683268504441501745753609535273568445480056391130750682884275363796234269262200238014157087128228592650550409155026775756364128502654501588845858395103144651006277401231071940728745507491965160375474022493294125395611559700715023598602835583173063859748160486567975656865429514220029876152532115120185095699960154655014731093122480526628409496201736122149950611136969858152419037045148475629067985316812354760615885444171899295815147789321137257167210416049721091811865827551847499293086139644670002682462407168217702074563045649896086204271658576097896341225061625212202859876309324900891152509552046664270088075087289382825586829185640927314038968939274742576944282792025925023363294836897059546837056368938468136408665888681127588671220954832317405863773685459941364286600053294778644371772758124774708329866812464576908011012403106306284046598330992195693184709433257847783569041282174914284623922667522063545109368622599628093428116891963476401570245481398624347749813610112614143695394068905637079960266961987754987048471071033517540715206524309254569495969078805926280734139006475626054797484182924619077800818533809181561518437410478066650558617820467035613372709847124860851133119000936446347641660125822586224394853111523331759807901552740938392856099490689558895191282101570286991367364917904575516235631514673750000265890208904935870044289812021222712101357058028018767535610771487041574384719182299291588160596497840867705784181130804317915206498104079225604814118153107283989364041257202065549850851631521563933356010734370916924852045333558240891180634803119232469622460351548600449309074386739161111842087944774998490087023855330946635944111372843088182451769906651321937507873888077011723736358563569771779162165536250213514720701540858909888446686177249583378478323055269250776856904978971490045257581032621970528632575954454692634373274852796053310520816534938141904202752265060608767929757520869896821640005840063521313883547837539486872401587559612235581342797172084025779271247819665812149574467301697176243860562174368857656812473305371578122537788229949764287840250373833226785511804092170817981316896669631299625805219341881180598945007857832663212004124921161876127732919531767888905134885408872471897411157867455281726536896795174763729968505067878371131893898643252417442951501995204694442344098296804761946806847217562689696103803159780990903001669037401609870759780302420134791850653573302758467151044650156702643938278759164591998167528729384900535344037728430017968601324761536637072796000673991791492638012775080006851121074664866664529533319651555595589830916597185231199456613422930214296331133777112092988015341552071208718486698796634267429711459325393196870758750229163976928697750300507413593240470590147496823983753218800472488891778997926521922876633719806268497009153844178600694109517447745103781937632129359663782536263128250562095614282280359252916297220235285819161382335944349521813218945920918321057107440686000313093477966430209836598876746214321109830275601095767467838911518034426132231742255652142114310398935810428923628821054104867596833131311983799465940199746567922872038726709183891076337969985107865291432581134765704555291542504989396430063477705812714203817991013010260616589132294523691271074621205369174359124410903667435308615721121375749983369813065455788179473082381701915640584921919168078218428656059957769536751647189473052789264889264556691764230657204937127540320924386716447868997580571694281682227802140940972787062110003396277505603134298874083376657851685010035702284928401087010824806978461747719292801211832709934048426289461009092241363869425494057507000342202420303788021401895760173623316585441974778815745889872095326749276969081817500717605510381908124762218710728283555800316669948492709472715837298821239646645417988712032585715227206318381178461681472187115901863934861601690219383438694325996417950615790785799130108664145074616850831077793668457177613890953995700819983722068922526116314693151697693064292552445302003809571730303449542689324236276917977955870319690568030461813836070253628282133595351299905443978189154116375127374981088599842167101301539624640170016604104888020510695450747499488524512537396597390170195245583364858900152939508680060581128552073750539542542681941294656363295188505561132579097902254540522248301728219216344418005620655514163335773454494930322334236043884671965971058892500758676802524054382137848847937103986576643580625119951865183659770735156151255649907136320982220914744132316349315579287384516414644500843939701227880862222271730903467689937278385616144411861545730694708903478237109983310733806262723628881751451803422673453228292135253499233906647021073146060179385063799572354229437723938905524892335924835615462164182073468448554175623712481877990874928677141120402935174530050211783164055673281384098416899910708850466668041079589033406226649923344969492013488728165610206169266990234436457756310216070837423008872578462689798990996121545424780739014854787439071625003184457036411427346137319269896187536855117708882483470011561357875592930149448951140110980765350328616902944167998911046067805401805318314708912199017763359940272532156955624114449695051601362638676445822824637718803566661532633953037445809844947278305478388238834722678221496310881811485154812681956799052636731116926919516053131476285259845179696359038567936422749685324841182645743287403388030432969150540503993606662002150625803683648704593018920045723779898933135312536297480508150046668292572036985895786798485869729468461237729106252249340756096641422062003295130014634100162469767595147228111613449269319785905345676187489247191377217214634027268346742284359924792607177953944076279473779019129341481711972885786420934399977898642587189937242098275280294075844737038692016236152756679504866233930423824971073041364417884175301361996929012720611126888734584152062270600904584026501489552907194566746076813437807856492215148168794717539913218659946928713646208184944817576460811843697298189233593578717559643488366690566282916519750181607943938193587495305635287706899905952506676306763088335586048063740947740262015236356736368338651344178610260912319540955000015754095878050582719715432120230306082401086519704790118185928857555765450651211362134492766978898732670446470108147942006272510938179847660276685889575111396291976795569347806108976664555906098396538431082612280818671447573548390215243907635398568735030580262177395647296660556390710140035717012710702612098790901082531752440093744464260749319678616439998806297587568732062748989779989768895818724513689433468064528392112454731334183370649217422224066849767183039972755362576653812450747644441222503729065889508688309413993561843462382297284969634123429807455895993401689824197511663014833232839148528818464788327748171665344028168329221983465431096994780257623794476149264988734214974651295481210302563538534874402270154687961671554815088874201288055848724705352770860312601347510017745228753714981262774565971154416842697781648986843533859736700640676849992595704689298395135150204769651728013893436548054217486329948934527903746949985645168010185993475882872039049945277083042242252707701301800700825180060388279278388602637972350559507575387227966304932388590656407681395009294366763125673902843524319221023821254479806929490473730014174625241503056564465521577135232650624735279924529676484457854154482441410104088332712433787877938496461007551832748049804814420623644513417693792653823493225219707403911006379951898168701094311903738161411172580582239068691812590132299802159012399693281230470495413063781688473479650609874700405931352285849206656410129057985606725154590561239325336805936807514119836276914769427518871488945642935652785822710516252169924479867707134611852886697429136911472153121260514160922576670961921722408940253880658598569336558090426009669202854781384529499405962641425858722090234130198991573487160702405341040501283077204212054241908061056880309662520240990575444774407850384681045897099809414047199689906764390346274650908645885709847002780714504576530241608795141587120866844306574287459576601058400553231202694363685038383290075788046701197858101896203521336325592953271142695866635867757098844274310120467592388122642498238136142894250284809410372633329273439671955393848434802167896281440458725583972199393145831224920194482654371097417636079215760994402891002077633374765267979804887621520075024848839719121128404459153851201438799538064697687890124492593474288884245541544579535710774504147218822480303393015196522529816009602229057694818209799826896364458178079987193372602341318550963919238049282711383927308860171992423142311843478552590697977745053044454161262556016907377342283015171041161170975419296505863382189732201451436735532693706078123736755763408879463847470588092978312068005726360920004459042135633912503567073194428382951478879794387468388624583353043087333110988707208216320283559552104326559153840441090210309966464168992785206122152208721756864053972687455070914409852253975050070840267876950432822168671898485225362890946120819402348270780071735696530448196893457391846951168074613690845760530799641354222388401625815856492525516094852871176155814840147347370452309044180318155476588303768182255312632537584925471354686386137636621931412465727210794085017057395048007173472910958991667884941732751047978287048341069930522535925331707091024997814971822655774131922443964385498147142002957912113535104474856273062106674007961977441933989688817990051834223417664066680764094760172202672583826994468627158929786092094744172879665456307481359497778180478262948614794464101163869856908301553560560440626368294197801028294639132681631013405108924474886759562836691263952632075614122985513821437125366226365867211173281234670637044562010382205758948987731611105551048346801342840589417863670811767943858599189506704666837069346179230933948968638486245191801734968245974975852119974897808137059156439625403332048186711466430159955789065527253420391672715145121832348601218545890991326490050863999668189613226524668129117469826402680207828947726804195325579101034086041746768826098750983121550534763849725829146572700116981737091673202518561411410686602114880891710616908984079173083304922639836036032143019720214758750881314019191703712995869993421532527247361583925406560046052774551920069177456082305846058398469743287175239158547297682792204318383017640662441159981516750299042778249241314336998033384683491895320821721472415666679595595985608641649158105962102799708266901962851168087408320373731392515413519081499826725202666291642437219759496077607764078495356774955025471704927260685775794309600268490394855356470957035653042345432906074242834498170520179610384343577497735102589193323640012891961062631222679194452387073269392580047411310402146003420377773051311600784104744995524301627663566707620663705689010159160218952885909157808178141587366668129784580487142211200443324546108213630477282098885311511757655683071496029459957430955317642380043713774397860364956609386396277628116609319094064720264898534879610059787581155543206523682775600370580677204627243814979908741721789110904627097596929353348123822804345080093186329635994168525771324790539216965905855330396961521426106956122534949824204940757822474353818756784953847464213833952532790985509918564447941690537149283060682717636943126205923687985959681300415398185674237965744731368409275413978590732751389451879669222899737557241974351758162362440680635422561347190294729815098498744848052311140810886322195240585131105037506513144562029321690060783226667822383225302660912548787485456647465134116769104341734458880646966434368585746218111806975219226347759050489344493175911792194762665660547248250295004455210690665700161902520089491702490477647457330683607533891883249730264664337652178605724308968522098447236406724779464487672318205199644427428483045654804370155331959943047480357202039597170314063390168242666710759330034244153651479869752360659433235100898778850931077101292148530396830900981589514762842630460062688490124350115641764636630660792438911345344267278824615498982833114283376885192980688094779962063554798297782607770460319871446260027049819250286515372321222268669087782073051346265877630407930177553871101603062806603570782936058580222029239504917821185182038997655355910612359847502531134144446907751895874679976386930306856062145840177669695612572529274299679169444238383922162382482369551718164312190352306035856382486917146770662764219414862001104000103365757460497694121912105017080131089013585724167081901036162336552761938686841047536247020035226791157652583010278815430211161537087846544348797336804476534312939551868837311405009463430784001625309032964138209126079480325464046339201616881019263341742695462848255651328869656555966918082327743796328326817916336931576040961840066401520455601432708544487234066748401079618864381338600571809884426453300130871999651985864048221682717540675053378573818238819270421001703507037474781849077651602986535203811397514680403174010197771923882939654782770800785549092751205894415981311439511598169021237144276632921809291120814048463040531859967699390542184268203392779310591638757609245528136771260245461421424324298594177536313086732423941051068456717314655988873499738438391392674142383162484130220253736522375023293761918780301082267418610463240282269990157947143069005114545309396476884098514171571661400913836008858377813883692754745312524223156518372779632673857892854492394957654347736201904326495125364484682100121606510068032989419941170770521547578405555419926703332575046982563124213019433768472049138667413603963636220965821110704425305593555209947314954944360229083267272071326567552085736752549186369833013995100118364353579273868381072042738277580455668394562012729209725018268085844320846679014106483659568861501986646726034525176521246519702574778673803717225653073411900813431481647989953528648312628025320105462898009792487567645597881524629550993544429058102198882307237593086113214257675748754891823414749122149459399989748784200630383945727907162648157208096555852174945831986126459538893365938432645049966011315210139120185697213991983734642415384690724507672741939330208666831557849036451090956453921367019044500580010772753661437299127458970664972889761493976755615845570160649804555573961582590304810470943888624877507009456859588224462255484182478325415108237032184248563599771146743802658361013527835394986377903289657809828900235275421802777771175617499860102999136123992187522020073307322559127022217806965760232271335251781272783153051653975965155295233763457514430090717761552183221787775963014172352595696890615127456841097366299405667585061993085728416417103302110385133341116858970680867442696539211289117196479135045547879533693085082800702382978627954241215639585585244151324162462669990181423903772284519500581733865162202638723707080232835039481386842356092206119307103729126453232342176522253682274218479272212194701469938935873500520593276851390244641809535360392901945518874944358181574749735030063046836180077741044066434120653896808649876687571562993445418601949861227576594971932552476273356887875181950898810203807797700637893920226692473541100261947145256487511983391069240160499904531308148731274246956731395599009860431785291247296861327121427200199857415318264069289304678854058597532924606284117245472232882162368570299890914079566568802598885946001026943965893342802620540242973406226625300942331412253091505068466692480117811726381718653727403508610646184403051656705092552576864809781800255372557119602807800139785404237323244216325399452503103677725092989550420752485895909265753622185639835813909041681730266979528466253177639310411303193629055102760217207392449505100999235636272890457174662498463540823822442402811122757239222607107549244797077961683205374443212522292666967935078827651152468321401813639350059653425068933239906759673701973703354395478685022213576186089060607201663505670678130275626263244254804984426854538630129607212093338904401551005302826762434799867100970609277566127673137461622919028819565958909252039175990715302222056127712915944576086412789582173368776022618828673864046213855551226871732688240642757087757979011562725688390796592400530555027002334044098447589433217932376470191090614941308171127024655763137030766932501021177197661774826901288716001123046960232019483793152233817329274434171689960415524917806524872009477154708639829140421781556912325952701482188378621043723029223511859055366173231088062375952024401273845222353837440340871654859662144078688992459813715612614108878567672990688370359713575499647569979562135739023618219587755697247077554712243770154674101859772330911899466739484875199381223548002208467329584840779021526573831440675343516581719029895837387436969556945868595980672361870806526703710401728912505904345402526554755424857575374475588976117985963534977284700659569142489919666583941226448712339427388040184172685488696902190026451385924131763438212437816857727969811749931783512652591874731346046536823630988022414724825932887251066446580315678863136743368232667575038070045399213519406225403724069435801105349909294040005143435707016125718654968965871315542168329734782814121128953561969923319025674159843849559349290095337065406109765858921122344355477080499399110651736583774528678108906725414804568188573461103038495459183530910126536505074095464598043792094692171925628373631264304963185185189814917021188319391250269248634188404461049868883207109537510388950390199456022365583755709298988327226138150503578246035066490814167968480460766140934210909831211353723410857542882720002406553107618983672471737192556269699970313975333534437815619474021536850306750651105455573963319545572804087257803915900895480575514671874998523182316263524218111115456918072503228743013467324591227311780435935198216031506086922023744983864299705660478496996318878942232744613072498231833438092478164659824244208452053648736151792496535867742668952184731746790827674380373632275802581403739630274971914884784407923389762495859016130167913642220638795143430062688321747487169347911883948036531482921968004522339237133322956056665361849588764030519249701732838320678839549896213854995079367999228347522960120831203975190600133784435858706803559464956768679046955772658810412572406105411704734252835545629079008578894373789645650245254497758539483429994772389494276889673883846989740549709774440544102167179137520747281165611892934812420493332454898564068231499788769017245876987551700566481696755556845372104158414367078403007538706666500807503640741931828247847851339746935825099158309438081039059757797442615616112712454654167327661746222255139078032679354630192146424209444520635749131436308908576696147994108246074739418665332164626504079282082284082800983925083212684378264206061555302210674192072773693873645979160076155470982766169651318103855429361556903974402615847804188362828261205066893527487853609390265695728280871040946656292766360146106225355915258347440777049649630967000843363438012909229648796956768306625179509792921376944070807358396511131326352232806387941521018359823800684810920491667533627673413716188650128269493999413702722239770910429807095290295070128629716175825839028405782000652940237895837282175907600358326224489277252029442568136308330572204105290173315835307342516477209805526591053673978090327770413448675820288379582369317152792976637157798474277803134609218754450627546138432117025015514954230746632665614584908103127341952806545430574845815150706296493193028794320844837197389859598530706245201020586494347696356150780948477194505858599384886989034109009353990421672408915770911806124262711051781261110050249911978537662535749150026573476650602265633706521668345072175240644614152284885061473267062314130973467238367088562264026761529083054103201877802082009357632917411844606642131254691038525367915268093524389651590740241176506699701326551011342156457449986158519474409082121521827534316009754705435511415335836808890170009743892910523505757601181402090513294988779338610132049860497505533899244034423879519017419662707882211298041620583611049119713664262503254222809872792060431428568423818254500792780757927358406317270368593337345266937586769596251127075669326096232000194847352094993653995391198612883750910161052945609156418622451142538864170395202260201163277911873852296018813901384746505419162761082450316270412714049873519455509313103128281347247078686599981609047698428310635606774800568220577940873867796125588702425459315800948608474394394109464332281617903310804905006458890292002689151836420110441632431982611463302451183137067344565135751190276594623715629349894112119105396126080053031361238142670012657561447409113949456104162300145395004015234483708527127733026603514174492778168098017123405370179975555113132957204497688033574857985103426952130646179312438601376501925649279733706262877230542417437703496828863421526180903992484401955677583934411003985316021147667807984804938871114591480994167164044154091143271468689837556970956859333077533887788030587423046431223345545245495412336216702266923012908563612371384679079730845639922519981244560663442681055815857169891681807195671045908597897894047873841127506494846795433368722226270352848990018905954708832848854454243961267236134916502159060654109829995130655726582283000700483851877407281750135460827792345486790303355699956570743885196095577741648606248652402326682043020222345265912715358660206426360307811441088490740914449669975816740150385824662376849457452614857749624070255935175636240002848025381104502495854609761936704802131250104322804327738785288092091169479275747322262529955680929052454915970123070131241228606575543342163423175437125895639604909265566372790888841028744773537049240765651121294336143992215765827362466456525125584579185097901137166891536710932540975592168732472104949572754705171977051084462634354948542832522696414862367956581789078427993485395321280410364739055919072006267795410425581675143713509940671961344606387890226502158256571596683801815491063580474713029280283615457398047901713492798141903945262548420871281324118862616551167230313792570861667578520401524998557132966959675240506759629161220912346527331731125300158065892329005719518968758743536183053617369110503291022327822782394307527419096216078920186599841752499081873028455709559933169648195673120065191236802614622930871161407015674910962942169490433263241761204497057947576065030059615053584537693164628098119310907419620881560385868541550047766826478422063793051194915222066352521620660583525452054200361759483403962316181140762899818728367137757560238830418100867618724763165076336470193656192445915867025054373803140380866147322605667145422591074245304037018793934061751832112442803739114047000402135361810928997512681654096045948795353938166112135465227549562843079654972035416979865131171995273021256158522861457386506199737436922498937253485666080703347860254280795510714558104498877896804711970706223777012017228375380914406714219446238077884097437738337533311116006635754781981320183945732151187129374743155334611581096761083780492225149296615396495885386362204150370755077056500241715812765356692453592892243052420726022442654436992157778498294145510653572375417614252751666236452060742300304651468586680268365965161952772324882883239193200857346054523685929445590886880377252811677701548305517889492660925640149588405535639724550135172671256981932433165212815563563934343641225855971552628344696644027325872425134397368172410502927474161558943064083453308759456054068795706327848913232923613590558299704037042435238057553536063184446196839689718488064652707800455337245165131369484708110368745776940441513091761107897640859229229075785820962042019962589747773879311545763285196236993045556815385601413755055627049839005824198036383418676619342485378199509701610080997643234570713667540298669156003372756514113888421210885000575380507971048452510178305593194114162736083823755391830776569621767118774996993435675548936056384091273041176617868595103868489725296334628559184224662650546180181529603497641743029059912578575337976071896349343338245644511168766525990737218927580825266384463122638406133669468173908854167237475746791514052493088733528097766753250584456498011405706371475415323204543683225300695769326014026122840810971064830900669820096048892973319872042940152234118989614992099838496125288091050398621887646580319094002316589430860539769472716023770801595206237511084310827374474113870141753531749884818454434933085018621538175620083109308947647789892880964253603630148236954618741571928754415571568449540953237354044368598510965171378556498769597908048458883140053033710486694540639084322079180061166383534065372117858854328193950301361023158740404579561936055645099270647115669317354900552638437451533224480576988870053936356021870248422745656321332171960825812737745585252103066571588813421549980440792052232764174194167622435647439606970606294722208995571685221120813979179132186710552298053227764920147727558802192264360705597545631799099860454832214416523554771153205415329163665657974815012315529423316860064739301403654516257060274513166949481134245262327770531102818340674929378550769908164800435427076369609139495399856182394114603384671407459381509492285872163024318728839342789097363196158938385226303044479933201560616142160645145969852114176581432452174402468674425461016689885070814268858873672811307939213842203836016809542008915071621759097770917255147616330946147719777617577611325453615049443246578895591891811011606708665848579768476154555222319133928358324550113643685853496968804225239162373271046659982885272727381921184966795337816202486018146325040368807804155101038684592720992397897056404477075021641765825379055613090484880169492238408235060014731839954208876297629680477545174484109430971675972202626583944308207914561789263398633817874979017435032289397878404843240703934965231910952038529220633061925662916168384410804088727488032837068282142369696893873175879801091068781872745371068987973974655213480257175968553090993246675040699320987074768431002298694776897699499068051265152054970839863036134162004831355586776223382846498078602670373596290314412172216211992006822014809137386408994382497896633050213684714898273332619826556939170502538523375946502807520830809176422820234561939266922140945522517428097244768434793637741516968310545090882827784331512969658012840420949679814492844282753799365232563637221769616487873416702881982889347729722851379285045955169224346182227850784035275920131823009722167262693074867913785708981330604787042472500481870361105924967684547888358320420491060954198232673844914935465163074220994089640787502733798541179678486251288552428316316259795622025037360223352048879075949772196030014044271552327673732736395779561929144927011494418497550099441673589395207919594789082163908890985483255521774340072417751852543743288229288390744013016614061472112821244038720122532359729986626041629615331034705629116633315138051192706085790447962647985116229732666542815500657637999388514233913066816715954902134701524977848668945742739385659756415215565059150415258206147055046877797527708103754932804756183628072611370463330490283488104520859173527750331631557849196259693132122398335461581844514010625846722127822876763817869537419731874022956455301624751350787802250396058427609363212319604153310594312849722493493439723407040375145765007765939313219723927496141535090780229441428001337453332505264348668959759195319038409543157098050828129625115117525036512719034789523955314638889506241005499212015821898939353356378419732834898665590204622071620095191510144220728085274450368473670999283670814368800400417074375431399856889423782075063466040292437283373869694410904408261466861631580999226029549620643057315777793982351983454301699048367704416572505227987730118406963492568202931690277124217193606247451208947322153875798176819317100175686770301335875288099242709068791550130122579564003440529358525121350112004868518770513909298704441601046570497344049457197205431325004524668129667191760250955748176307605999282928252679330115659286062354900605265481963659047790386848419070079657994492893084675813622956955703466641306917621177744432898105919731669918432684795287556575893044279681812166319157549510816491656982735351238595039104596638975265165194986553576064829993391245616019322718111298161912183073315065841464068525316401719182739507609468803669077503748055035317346438237378158882123022218192885207868751049154306722375296113359677260002533813535965061401526044788382177773897895406197203406392629044543523420815705717125828400539168590206409387619745947236662812976459557868077911469104634656942920051820363309486201323870977802228785086513906832958719057447644360318304039521288904759025621467166831335465679588602519672338881026354849003223596229782288367998140826155740223440057064060704845319977462641798186052316630721230679063344411302695087934732138815002765452543625358554039352023777707988927517935129306789889182698131826289669839394715428416602974838220731929156717694678875901419137239576171090155489873503023114858323568229133232021455475502807373878567833506407116472696451701522411414758821425284005358495436007860214958988690798161355786177346982757606815283884569391883639602858829983123020486142317257958686497070362077591715849407332693879239854691480956428385323300044473230889806891126979927844056951189871054240775721113018863751894486605902102020222567191947461263928529001102469299722738243351186475847437664581084395905897111254747332170823067434554465498448418579050966882769996631596379418445725852921722303188545744675252116647424800489836936165951580470433380722595397835461043752624714315254677321399310343337619587640086490081217983600990676239862695986072115717297415367657795722511720182426676757637893640521360085903080010985003056552582706116010400734473710825072594864185601819555043146878476779506974222843937778316448856289702325770665221904798975017785646869830556349767275696493945824194325126746348763810986971341802165527252807718362866816363994798524924424753832358792476968027281629839206576981681414284149735894247269850091130109000282317719700578372310942526009171710243466127753271163534898949570635933522594484257962608617047538545154904922538430983503186829616896704817831930994174341212137083871713100366077121225556162097419508079233849645951096742263473187146647581065100706195402190533652962113487261442574501062484927026524513913898652789127848044611077028606387799389172322923449909595893326199912680203320303937682535465423248545083432567533775983617735003949692644315471406223913100811179944719086183815899760536178955695353872910814158509804910193901255358961281084984636431649066373466214654855591214130063115075950094522304517142736010959866421505779283519803688595045003782558087813878261517778270776037041198467013940216189719603268985263360108197196269677278677865919965667987218714450740122490400788538391270313949462475191736155996612419931024894438911669118717854001267025619344872149966623731194480192620786941390237046278024951295999223119321369865183816712041272990056331326619857336745198174277957359492381838610176726645982651001563329258827594068041828230393951950098974776675061182890109238437211083182025838601311234848330672152647724562953198553285323122595149702822789688486638257705839656198855707789072640035241878280062563754828508574439111723039832610379739795057552519921541647184936770947108773512938204722088816050091569966320006240149686306605102602705583879747448398935556902070773294376038940033344416563457097910103618025388213515106750831224051429170091978861699761085081091534266426399757325719569287193707670492710330801990862853624349197201149078895067000794148348746332811060631094171113268869056975845935980576492072980525508016595423149689693158692439951407146134948938768470559533340064674679439366682200073875737927792756263887652858202209441231797624937286547054281423808741239455080752583900441897050845499459697351820720825332739290696470175712472971455819804459733435646559479171063617519388649023264356578138715207411970675537562563404724543365005380407890648695797413729418802587251099446100793722872343991024442608866857732769157297529392075490282637489705289099134219513832816358262063086221101836228087812614424851283604710196528547246575649762013395892222219499600275670775547658975313400112493280457618970277012354359545710792732856834616981168963479475005456725954182060545838557753142944656408963262804762235420860485675866802591620450214090402610219677045701845806304201794940285184020327235320939521978863574966619772292063950286964247538123132397435589702894809622535442972181457582127577021539918310044160103738278357558753049400330010403156863461637854739426644483271549375539001860908465103078396069599874360101001676970139102530829389600764724185483667397677868413741091333274795324918035530822089284054617849347790527373483516707457908224410185492649713762796011285701897597663251938207141217710551724931251365116039019611852100106448139180119588234446938846223134040935067284953583270052243913376503070362283064262447501879649528042190163373800633167847279413271963607275864960091680887067998291950697798805418322468740074217220676521423650697748405705468897015461957923031730695595991140019304910548224926533770918605026795128446477400083719617904945015516915003675970327630280263505464388299429244736407752672504430194809330456580122666965923671701678433114340644609119161531919165502949678354556922629601061156557433596066262639997393110475230469480665516975475738937933387242148835109619085457616394516445052191871654669872531882131204131072299967340082324531596056915933955471850036132941705684454160223957755976710854168437621280153071558191853816313459109007003150852532119155826673132841536554949475932162902576393375672421819558014982592327255901635091449088952556211925491498123299395644375331186123774126586490111513793175990179962873452119708387941899165446023058680504770984299659682806745027916582797189516495057189515658692629110689849263834882187969192016997400619330001481726936934781565269900162738606883262288816884580041387721722163302347074501312219912296918946917786844234003904359383855116259099356123625049676751857303628891897248964625057836090701748033402043680238844309532065650155605756611779282910996459054747811642245144166728100243928917042540904453402139905497882726324560167671326754878710369092544033280980891685295611726710928031125086276666434395315977395861588062020355400948836893252454228993479956402882386990583635932026965325849956508439133334688842883495073088529960874907390410132386530490445936476517122093118108815153851164335670052747262975333665333954367899049497942910213975697642620078859524730645279847301857966220933042933037345286619058096097097902031725447226208769570278124978623333414415842061677340185548726565945467098371482108987173662167711169135166207679394030008322956985754429939053419259410601052702932891035658351763824848927843484996991962511087207027915660065370341772330137106663801108387316615405677389429124178686514126857717202405238746826696524031287968974918013494174551486342422295289629767794505327483561329943018164086325539892002533708853430932454377112699658076182284602696775593349598068463883501825186156571311356550434030511008307791763525818693301876611360655050302640606208563664923644025019589561072082862988929369604709963148028404813870677181960245338552170889807318826712573579437061617066252973623396567731362984905578132612293447583748434901683830923579842703873002118563990514704057727403123882297440025778909333382315241997701712191087807846481246250156970069298044004663994143767763369202306105642033430415256903500506863581638088941277017024241755883006037395861313716554490772978963276038253537985363513522568616662984250826126592972148270827533055904613280244563942763076490943304766443548583343128137221028482603893092133427891854848340433262063265515646986429897584426963376058735589649541406883181456708780925785210906871983126925139106202311401923814580790638329469331975041084244937092302739466398161529746579169622444789475109860534690703044921949479306334445266195465153752826410665782534958982239360093557914406843110492320778985582330110956985613280175688568252719613877783438191474917257556164318646033070128504879833469123419920706272394775772767980785238800068433320363393357897441145910108887641328943568139209015515300484679236732652585735960891805355538565294037086857139442493089292516143732550398142138309799740774444092480168967773379662406626094656147578182600096816163219981946348256270392309762963988342473987797931311575021590706019160975636982500909617694189430651142019754448741036647948994238954836636914172217132632491745907917235449915075843081968812826267255819659890975824851664510195464700321631827115609427788768119446323456576807319055335226093740324540184343160035112431633269393470346443129271691992743348833037958690151974990701025765914235724538145325853324487216762929413292087616116367013414793870898107949985530438946419088274888898114341676970138993122837969178539597437347660467877131612775572736515083802580384441976210497614317629398919589186380235856769650051261003989219825457297030041716967575801818274519954094256538652134256067337010761689747209966265785712187480378057028816746926857553219576108882503845383190701109797847255544354619177070667349845836423464147590428420532004473665570875172749133672535173866439312924441733012525177631444368747075290406954391320314447087843145086087906124799026586098466662104081676321875742995023952567335718890461403695367982658850094167153426970948438012930395190296029570841281764168259457557498845620564034567306649925254933101808258277337283977875711217554525257965266674982671975579196153639234328419099301502193500305586350798101213099788543171233999600734559146684321737731140518713436416827452176419764036884393365049824166332569860394280679783000782588517750077801717256486224213240393021858642374286012947543419270248215864802418060482289493177864845142134569561878390344213552271631913018805887150954455004167447283454330507691749763008957959376013027742667847386123690065377643866885927576028265516938913208262799475484100372753231624661314221772333248452068038127855648155716899161631151501632351763661836238389957824256400004517730688239851698522340581195300284685175382250932969461278836046838877704426031980176322042086186889937974644086905806231317483608013459955347353994071703076486687892688492581734794570587394679839775109475537197452881206252930057113581881266052324530190188875603381522475338530570963745953060699355975019289133535286528070615661540124589236796031507674805848183436028233940812486241543141857812105516602821431123358570451290404945369989454830595679780680576358748012120577162233254894477894199116441090128932443017954759203584028955243817244559842863219492408999889767062523308809859443334774697584601309822431646927769745195019475413596396276012340135715615102948577195251935336998651680318477220887768654904767606096484220162314703675559618857137391303198837076756145406510223336229618277654517037539480979886432302674343750481935400522303787034528206836358531164390355089378182456356684963817270570157217895194451701508839388509371979685473558516648795770826616292738699734773280891888840964884485355481992396479337114795681574195004566784052905445859543649316472629733239593598765279819731809145616197702031607265035043350010725504567509856406480732689082521357069023182544175325241210367128819809518659465631527744613896670024801541946144771741533653440725489938383193002166964188780653504087908437559387894681235169643531389936578328163805478106784309575772135256968680829221578317936295516079639870967516335362530813493129345370066403720417864992555229989538725545769810754001962605531285980029195634065785095019366345645781340526805837794709048015856802952089380278308036266653113697634188441419047094949531739449906766524120676694117705512358162491991031464920717128561767291538928761825206621576922282009900113926016126580895623107468751181798881269617363218903490705964955659252233577505115545891779709858383197695953918274948905952535051828177991973081234475077233558047554693982114800171649135756057740417818951619082561215402798339433300940396848064182809676014400605820646965954523226787170030362772485641160883427298290906195644473453593518809876919068956282402750266960623006044947800562159854396703258017765114993895057153490263897437938334780820002268964461660650126166294906903263182449133020171678989864175265228664812251987756493521241724797266173891565069313572761843435577227372952432728450200373256619948499978806185850180925697631980571121551081283527130497406604935968065436222891439594931199194705124060971750400555219519247260111389853013487231545060759913852944609743803032228142071237090206974089638586236921062940257403823156350735517839613144449995455855030294741453550750663295599466944185338918424087076563046334788053559774262516569238800872165907032783545575612763039642341393418824025033064756444898037495894087599223953647416592119736103890695672485123355799005187136252989987638956873299184649110074818793729395686118154673692489464008398955146282437861440008228250610246792040692936147728106475746088998404944505113898096205703390669000904468214839242302645981662051364556459099958292099986712678406682474538375404171028830835589192956345300863023289325749444453737716828558530945361720015671434263931466487382271613452112482736367856167378563934052373704111561269350388606489547207732924758595822692700351167430020075481915721377766695159697168142062169706426291515032326058670292450574207383196217558077278011226831451334052836147689920235635935251893136702427378450058618801701585751916728369307040361364133534791142600198384426640263514045265362554387889759664797531040285844714330609681624516520807369644998240309998726737722104831888725585706968525250537024253676086503411558519839638621017744298490404113270313594159828226716915268620279973269149060148317283109584908645535082977429616461959096633118534733086993861620040396775588975674181072552208935969683584888726232430058913109751698345683387908205808777511195731237207653280912609087408229740952480696633010474647578485297630540461292552529050668895579825133988150381617449513695590665683026424062762603182638311489292148096407951440136719100382522933994497110708618078630138581222279096094991070100410090442039905768890625547395148630977375162581008742046223027397896469741374101089769492941597315083103520486367480219973418168079447645253319213799722889309628009179253490519668330959338262761482989460863174173911602311939397687674518669913885463349457370665933071291705703115486873231699435379719719056493112910850745159759685428214670480793294511889316513154446406797819230853318214930917176852194357352637846675317334284126176651074977575522368919253573324806731532106647438747084158372113995977500067161958757743651552259808662525059099278579609684320039469350616621601315419066300721772060870103947543025856911219815879399780921418077490413518947914726330639494026742561148687463011333762654351418256466603292372033759154486992068311057230956080619279351158629405001967269859563835196181133893724811030873736795985387461143651902909940351466736236855009828186032246412703802355202872484956132293361506248521584937331993514126124608874485658047687172515897033206507299552540955006830841377593465747639871728143697382095107832105299705136321411641930262947818890295005492309460314184586404557559240771620903394122205697989878031420179060729048570389289505681494526840526450610691948853174391757398122545499893456587902571711927835376955959865644050917334539327638110078286843927482964761757489993914154521994796911213382508178029403936767368215730766558869617786351827057934017575265118569320093469632607849694919184444266507418726645310350049039756872178606384488254769574500019183510234770322925182094940133984835817776556025970582575687065557957387652332585665344945047257950698465131796913782442377928483095020844027515454630390992151695284758136181806125440562435691125467928961178021107176750160069784681287872011405032035313342737732822937153849877535342449456631616707058863378449892663896124789431801067619025769711661675320487415839136069919788547695439025887540286580509692215761177617569308507738673938634061510758948882866113741105435428948137092333126822325289041582056653210031687705163166417511690317999471982364972815424240938818092881995620695284080178181813108609452232926207076403697225267898490995041130671670053476435106602800840162020706133032509513916572093856158858437577744173992488313536200667300947203884005568200429068192720585381575447179533649670430627189470754610921320987743638530564047860504704313941206720894513480119660699701691796784868154449492885704814861998154802953885214357934519046205884098939501071998709705345718701501931025267500743940809679165264967225111268593321558064439296880388133309264574631799467125450294093222922664165723036377356351157392994635662359133714056705183084618450201173255035753149157939888041986200044175681815132288684707766954973716401156259824078718563957848386638924627718001630381777008658761658712677393239991540641654096732370901260647400192936655420015224928483432857148647040691587866419795022693571239065275312576463903858997655909428600551675573532193798525749212308292964273297108898733704365070123306045111849916437074454286355060017596456602723825861680220556308793155626578876595043055075716888619224870184372892234908204843952265851292460559096316588395593185490565096502284588651276172444118135324749947926721501075584983734512635532684062461401121299535370368868670642082604103318223050395458297395819604814533971101505867477111389048796587027398303748143992322208793532581267629738472515287557259468465291919484594781486991191124645356293164537217888394315140788980055304312134649558465072796669156435610752327969523108160523092028232789587512212700657375999262027510035272426543228326107180332463865994866342651313127141388157899072696832450552325214544490501853227003798691084282888231378283107944269703250345271345216481575362843959785816011159320159897389470211864255200460661186819823101539003064211064344964174744721737990204457750416828349086844546537166087088631255693839886542721682012807666859600638793365837018057903172069028724076028517070391249394569336812040717120065430042051865270006234569465311970319344495466812923831970758600679765789212690499439927731986443782985257214757750525204104629661105339992714853754065049132318719555031693150909265115523246595933767896317320950152039059498321463295672370460120382743632140073535111149252710364953171578724641996400142247336459917153807984374074150859758809836872836581644432591338788377384384769729854738566008195451155757865614836722075562127655679917644796796386010484105038645874256647301357709276912959246897702677034708918554335440118975784151597011153622820772375750851125536691149154663078237717283282716015309791620645381735987632470500062309495540263526672355360165305209354657587225591262703830581248457641618151771024886961910434335020522777705218067496309731543774235398528990855180776028473683919959673499493950140714054934405972771737880108748209241893281647267476428271163066992980508117708011271140573971770590708615986091099920157194243465421496490046499104758117123173594627141814679325720537401174002091959531898319271991436594082275662258885409504997401174580628998617183934298257229866768314349273111178214112426671589874591081072982361913435507528819888729775540508004401034622735007285833745433718364957111696252758920527325291148528097506015092150704296133816172081433817256211536409969649494954679235394145520664659270678353406541830976853399265219316857333542045769941954371234858123315265030905482533572658419180549676689013386030520438375767101469517985304402428067859095680018833456422584875191888663982361382137736810009259945645945793841137951785657616430464730505276710680467870025713322762531565570394813515447514665042244625705776693262861580454152113108674775100902489096111001962663057248691900250700549016601129098320698319118449372683824454257874314727643455594494088824102095302841512755145488768558053143323453147319716890701524993002583755578217733554109351768621062883889950754783246352464790843132841165744787055799227277256323942595821571040593854531742920590569787484432919894867200918732554643240825127525579896147615600887942973157360232798587417524164903819206100661364771358433724844974541201664119870008274350938136534203227938016987832749067460761260848683508453523874129015496069968924871832879092754604466985232490949862372799854005231165690205905173134926785796467574191647913317655473423819919979230085023991645946071581417901489507140259282437834213309008956611303601676924308760525543959914009205809804613808322760839093200605216382025309547002852754677625935522279208528730137245030274261198974821990002956063677930619070550939563399897360403101909275665839022381521313683525216890836654226139721935550636980739426994688674643598588450972393218954280122691593295116942066391504901884687626184087703446039439909827636861791386397669072156722818365475840727214400721693917749143767440696433230094086767321846752210860853403149488267355040143865415754840490672781998534304611417187541391679310563069233651040658923594363105887140547521646565792600346973427062120253563617500491738661474388359815808006836382762613165380879359848912059219908576030350895257519163571009734727950314866357611213653234232294441949548977349224252091345778229171880803367985698376228851791119712109208891585566308020591346099897359175422344139048117968542087470713024581564072647246586335658102069780039790403362463593069869807112438576124766524718173661683677105212974511905462988411820039601448453275383545706638819541878923119224369507977077407907953880707273699897077935641399200137492021502980240692594843009291776286753685651442715258682705016038599206355940977075911974629164202783172995188160846575536479155620295235385417892103119037859562194112071345564807366819400022780186797395840110701769959184613934375480765261886274983295167025761724255038630956791421285543277492281513537306874657793141406553314801298202990088425983397038640013067832538151145009517174471793414922921029961331803896495297134127287777494645475661596675137316123939155969402309111741867701665597998736992437504763237364194070324764802431060491457804299302180266147081495223689234893524467733975892065286969609265346516635409826716457681983875297878669667188616733042630186941531017030277341560947615190526124147207068128918306298143932333817276401060544974041419535686430051948737152373999561873561647158574208469610641908392207221148427683836623673765665289937229497110546470584222832198737973080382283408688427252351622656482724367426829919294178556240697996513224654480334801561977894914345308537546390096021148975702303623110826866213399554074176618755217641471224983552401315603729987257340443181266300816030965556521007368948653556472616291046488167892055972176292051321251836164449621991420687748493231637703006518525253990030944452330777577141004347511046867572494143840885120083088476188317249433795774776299107348522649463636991637432279165104706665592066050255553198326101701310257663930952359103816918323192369456389536251065238844010483228030932217427973897484715917971721776632523305508365465588741124844790299075023939362934848562175449779339331350756156755041859731200550033041138794783575721137379921681945624265138325706271031869201763076347423983818139106082438001283726401326138408362194468771448658314658494297871571597260129623230993105829795448838969656001204288577807219498306759488358117412742861292099234889805852837253306822921454571591223166140812827492521424294339561599734784976658941429598098283184314866643858429277209881137271946741457666276434617856341387366900116450847269249991405336160538572910541049663119065665050096777144786580250709614086764776098556146607757653380145910954599686224828643255580097376967750535988184472328465149817020952030241581818023397253101008915110764181861715055733767199822371277916329589023195520736021681417938604015961928178715209598820110599125424007551997578657732207047027105305329263723855688538253227326207005301011275363684923883030282987869689265268846454381023014010007067021190095252739044954687666226978025326137231053013851659826195320679623619076710838524235104085041208973321219299272434607158273776335682599400145045955274245470567025364558118922952109403565830907376097168166767666913271507000231815666729057029936026883015315019644111143603204972832552750296564769781089063238004592457346080987735579704951984866009460610285958495522248960936875284764893136397004885348029218605928668293559297822674994242075808091244813306667769094674792113443837069050813484295825291134377776260382672145263709641506198677979743496330072380030495399774548331307783787432570606454143428242826139223452531086007230942482251113105665524861783654557831439539343372566784927266449150557958768904296824177700316308904697135860374171708357760436941598113981032723486134103749656919462968154742382768820374518185907095874379773666311989640197842277579788503831250542367383005285475283130857925690618877580844242572117451046865890894747962425402919825694969764529731788483222768323648845382332549352167056673985754278132157093085615022459676123151754825338115657676650213148270630673880550898328824227380077075038635438399548488808918822731089882767790197737735580688295706901008518338827989927533452529459096439751230365105625910557654229245534145253142599256066943647641900259671024339600749716420336898596793478180254972180702191017098957794211917643765970683726159687788342844922663739223041336374336562186370489178432837298266457110706112387986163092476443927871421274539064042927147531636897304848587326337083809413876386195737097751076534460882594635468411897426887818658159783255311978587988427297513111216930182269856689179529728146627720148633819338913851327641194230189419469514457303717894858407489982583356656524852058477627740454783216893389488171102757608674461051982325467732470100094132189026440249993860128902357406683744029395876957718229297542022931218312021634801946479743177217934628499984008712930757660659802760570764924760829396649299353840914571563208476397986316227937204789370900440608439179500868118447513971132682219948973393597584329653087855296306097071832557706238241562317584306026977049681342327190348009335975306485522215067592586322591648234809136678344756914200201355605288317079639380309256246333651929236579865941120658398671028361500579372027236403622402783200808055319273030232007823728748173889207644984295849917006832536748771825069625567132249909425407204370916764955726018406894463373292886842075940066705641539419026690270757600594794084676555016140421851132501057005750114608393753716600981432829892101340519798568858923702161391930845491209478846287198550396128531143702853908822672242286633816859347385633849615398387955953193890504657547466163033314509194250569371315692338739316128287610857765546487774935141187742656240912208482136124189335173922037463603500306919670371070296209919363347728098271210550825714301084498034708003946144855976613812873402197066730452724740105970612987908111186693238167007639141501197692346460121448421328105331598295515443264457156242130276324500769905834323393227841693952501158964486890485641772477956474532323536491015289557673180073610747634388907675351736897248563181808017972231970808671620134596739104316673561456451563740871310457812007070598370003757082091283667945630048456337910943601131300161713617863259436512662573242386251896871777945536941034996297821830346772409392233080807451795531464125362479651177608036656893589651681162986645088292715852618642006346649818887593930094215351164426804546469016110245174506718714959793659501020834617123872101890195767641477822065272098297955619723025397287681313001176090434448494035210156241488003765457710711909416531087998717598140232114282552153534725765438111098205522654801150835990218738449635240228585477607124566837856734945256989651117929861339092750951179630394458071565347692120875521087436140160834865320255296166719304746376046277819001437647630023511016147262460782450005542838068201460219762759203901740425381342317687635344364100328915747634877096879793744767114125700069238360280869547672389874987875921544121961334346281990440941560062207237206363809559837810226227402737954871201981814245475299814991801845908524003136267246757995447948694719571627390340955583593416431704157545252554808601767110144175709566520614819851414120053876651285552302554272517725785443475512279952350367980111892966117161049634308273449877006407351744777739867963873346628437427827496448264756075070724578333142000315287149069154534817751399991044867294629205150002891737287907809300577405391150642586563708346295494186402463528346769803033199860316279955918232019710547387004831061129856190456833251988750933333227834342447997416126811094629881205020842528486962243475064583707963672977527905710292014645156124639733815115992866367496109760218760716035960687869011553686143848401209800228074812258084531292807740077053676226596000513490409712965348679035539954724224392638489043523876102718678714510761734543521444863143916625232681137074806585913364025765837413835185645863004673517556108362978841690565235781914170645270947686783915468913274838403536430682059465560383948263833649185876357900198078928328812170880268473456768917226770340404823572481740811724580888632081499499177392988401685988773298645115184041383415388286050019296430963685734657378016808939500063393388921686354760937297629756740010234118394213081359329233566470923241109655737031647153282880258438953343901909886151332063902386790589725867023987979719695363077695629639479376106093439635464315943355380280075861255460366400377129558398417877298487273587607780520293152803442836407047864767906144043135509276520350087526647848997728950549305993267389983595360252920882344467535320508523873395664327969990502283261451269631113088910077735933978135237592931801434303455252810791747574610445825554296423110757846476374304246228723950086540515737978908335527811993175671069392604405469193493821667797399909923191510508985506493930025127168075998834698731126316007216171747209963644601031472231661876534400747950234620241397507864127585560722191804661967535719407082074450899252840290872407261025972670720364332487293008948786466635809446911926606499864353161893480329157531326675872526355380750810154137304719673972504497854401759878933880681641771845008668076710517345041019256694716163613443071092784885532724385426517167684646234257485878582961180659324584990720681740368368767429374048467038215196537412138156919726646678440859567445093321423537572573567139837174879307884906553976584111387188145276266584273485007946547721313492953078972467962268842624125942372412245266026943886257055294749704737908801876779246997540457139283880417860004083347583712211325811445339403217519720373945079024174844254988822544518212719333336161690848355152677225360981471464379643052486955487696589196615607304312582911688634693416560325770307745210984999175992841906385197388197580715363077889380036726092494382052599925680083288520584502476833501143915213469765771565068349618643255163776184744965481474609722172061747815538684913450964659730499223812257015313024856138056234206504188969536767996110665316943534502969242111429670560776125290364779216103522470422627064007421756571217106956123254586663736309229915891914099083770090473411878511006732011441174939110595139152732898106963851225034761691253039327028589209102542278478552523948612161667185498659248300231897485176561830924961113156749598997174110399481621612966257832870660555297820569019834388469485947896168825415037923585557416198041728616925125818830772912932174412772314685682210306525435906651612377505981371439549393548110001974201780691862718091550369947293574493225265394435881990032998736510602024600677891718899692890019681897363900078959425270482845550070509883888797160386796482677777167844607049725148650373008792216942787595930439715664356027134661154601022980348472915427836021355740578975094628781158790753275982888912073319275118365559854621879711765203651209840841512326184633086841530294714678277040242517306319735702005413988766303131410770545186898516249662970416557034753555018671641970004792386464175366213815998370165541936326322921178206684208589563957802378834421865917747432031874696320709607266537164506352120431157475142303053725884789830538554729836346825447747196579759877750828104540154368207277569161540560891222704537289639795282335192037391181785440688502604324698001758442690079957696102841554922230293521870547561682024156030079240024898504632311484329888432676801081373256538289467155903735650541359800367044009032541986376219457311122181918999716506886530808316426765606448255015795299161632426129242992235430608923277357372045387895473590104147846870166516162501340304130242773065884132296666094335855901982943322751554862922191988804067739727620064543160300746055448820969394860916743608538106840585504721082598512397567922385405289079521628217483029561728789786282561069462156364085756294095387411722683640265060178596811697245065486101996946505237389175547602137853818595285910430264067182774626125769572496063248994644223605672995582670359974235648129984842427068488323094406817541485519304345527315886517163334670869150101752540034503781197029847809960331281404847106709782284834273241756949715209764711110952838654530953201584725385703560543247460866198863117447340243371954023276392465921764271701687287805928117972317088566705895633234587132946735763173985643113904742194890527519776273824402951633596167134075369422064923897195286682782742495462936637373549095231163499714482673139675245391953871482186638088614137362390982783400180358653037566238073200231278816164395533748013110233057810686325611268379117251262357328641547193041739237585431774980638414029574282513176342109327620571966546054991314228040974228992418000376184653707407352230701158964565069834751090116589111627030682996998924537191306596962040534175705669513079347121938852170996281167538669352845947463857848179436677148991655726716876712944163762714630442199229173844921577589237389065259905741469823388666982320115978501796924863200831299672111360644135888328743331178186316802721965911426846234017672380571541586578147313532813315031698446631820709642183196081658804131025339549321540094566429536191594307748205077742810638308238780041287455834027269737571318702594525307179636845157896688331599311140816771909794493869542451880241682187820041979735832667428445114766774631303222537206045991786501426277386666191527048904179300709646976760803454650246781690604163278653679495736129228774015560103638096237242464915306654710505571281991753248307700838343524301749229457167001988799822168961519126281052315554466621417190470425229905821233194117387470109221880362394964844589524172030675772935465837417203265372522424133906869230435778348464352810777511397162108449113135238653350701545260845251363479349057183879850451482257559260938471412541866102327650739007739286030274556658551592221546029044409504324313354456104210984653511340792705386735051782078588218214234203705333819298525329705513271895451755679130930049771414579489205731216260644983218450442765189485808877295478869925762826537343623093097880263397772970197618987615031110624420834383685488881594039899551323583508045925961685740235991367966370291369151985899439084605585975165663169161002808134163384571809512764261481614631723915068756300764731670485395677952024801390357983471855214677118112732297473668148710760349531038580355168096969219845793576848117575061992679016473203105788793199724142160887481120046034086638881407068976525678853338144103495734413531611705264818516920340221692397995748360463125540995346447825274846658480487907471886853290085121709718323180238335747509770842415950826598974863089924051491896708899997657560408797369801061284329989173739164196951009207403284853053064605618850835019631446762662642008040464456393040616590175805636820321752772045471213254709858179267356145663078841916830091444547432339678801024428865291855426393819599362801926489227836642699675973448797839468132192782721196273378442841928290635189945894296781387056028022861054395751022526330328994590906042468675407252963759953469261479145708487309806901546774599305183250003441943709734387589241691251683359070943709059677949112243522312132745908828491335919736373118947723269263963134500457536040784026569804888454984326229343192549849773455719952962011580198195183283638142766125408629910415888786264364962105430580970840994995503675701933906327236297759801208988980519993131046203164703506991880439835566306397248457006493748817654888753768416005166437987573984400614273125909468166322144124499097667229900729432749516831597274645898768045381594884246464815209894538358334825960595908576513100522213099689610949142065573189235722268989258582251528006247938273235139384688513530530384125517440523459894001719121502385125546009673472061186321278045750923984038796434033867916815312784426175513305643179627939656936580321375297853247857761329257505499481695090183961002623049542552960576343431941118146784736484412969864800593852273224049407139497495412509650707950776740844577574354607026936612308549926078321754199529031967629057519377986808904629036712405260698266441333172971528963862699748942831532469915437079913734564973857999242190994848209123495615019595865637552399269933996706064374976449586719198514153701581778795543678060750122501199385700206087332932729824695530000649583626618145410173486398872327588790583686129475829300068389595762434558367036849745533224545686422291040249007545571501535466958452383611224528116648069055154770159799310809765660142372916254342880172971587984190014070863901031537363301446706002819972147565615712366904011221957717463297405730443518211624183904296505643238528940740027623340596047893209747961769802590681343231165530178839604328993175544410308972406794595752291150418187214248702701672035240342365159003334594185982855979571233626098206667548883094050877071157742482112856231259061970850646774779623550849270909233146175986757082644038295226550683591236105013172249568149098328149647186075619729040007595499178890709379110270341021210138153278790855426540386778244019694140021331414649413430192384321216591265370114704044980382594207946262409788796288702665116632989004911229527356573169230984544741135022254047499421997044412096503851862359928290436967083646715444365668905653166714373311306226634779514351007071882418617443165763735120278764607563142473006490068923986178485677180774773508057275450482191990182347692633506509287504732358449203303428021597680499337156910401824511989088003983218316029090717667729010016520519691032198304404879358024200829559287264726140725065299462020140383865709760961415411048934258258387810571415568476042939280812152789506210163828883555746182044306052388119930289098354706740638641428771267304948025600435887697418275285300261766118410019695127163723484384089539589649680614544253440821844064749638772699841334950446226678019984105173564039794047700337290475300677652714128147341291510989197571075146403383505147596406152772698062390107079267371844164962458690885469799870367063574785045033779421375192297401079206075146910584177268553442015907317755187792464797025493238762546824007337865388699748520571563161388439817314690379798747981522506965968458260570846617006003388996207100978472136123678196067131538375428252584977918194321684866268643678324264250829710993588934107731508206414079385003831005114415724611932055628577023204647256256657183892537097810775475158917341118277291946055133548850029619448410950014748447427734405170461805412146066318779303929448092370680567093075255993335237449655204991151633805181932181603159566671433544183433742080671286516250866957517134275966275176162394989756246707927361538052992034155776679171067651195901831058358019619959027525032345432700293322256307710048108331131818970937464120067493883307350065110237993643869547027264027761587575523523693368947957775349519449362792760204042503350337568017606603778949329465259636061467451442766874991656140702094490177619298757117349068901188884800340404635572008739530995137938631580231235046690830768310371436612709680875819627149256925053832824365989806186779862167660517915642715596813668826130465388671191623214564462398973466136560309950612226413210336292527331507862415101411741259128821175143796239404564407722402718922662840324890896859224104026152518994450541465421130370276946381282689421711029773713503525284135799122309192813275429394563281365902924937976410297962740858659872463476579557893366694836474773196603432939956074180201531164438190055614285580116786150680653625773054105845636218594377372794283143044278879467782517917705751409478778917466868307430071401569296328427443975882156260116209334091380937894960467697403144435566900096860822853988141182497918342689656767567765560894827265836409441649459895323693968943762851638756047875902546330140757025817759344392395860271206549147889870020192253639572314445508803554607351997528151488979779031431690890966432890429352700987963053245648961304076817620110346692585625815434076144685640322376601664991870390600029466189984471152413895150259177689843899357366368022317437908820653136098147911164519499888012714228616296045139780685079365533279850937247536857329883700835868105016829801168652329651207559923958798144795714239829994557924270768712612937384241013870933054109426333740444612552827870636796567558008940098756900850164637684671010430618108018251975739036555669321169841324471161821864898717124720292418459233948563653945225369310506009006810880152250112110859035561071198286038793911178691729775383231074851243217280111311362113810140445385866830747893375219521828180341336560873904359687276362360871208174750559578622915622831444409017438298793778677797483412915837640650057786407982363976631632499346811564842551623175554981424628092219740083710733921062655231873663400827417732907504615069849910572300441507217996036274325741106016627814506719573976731008313930720319125682310950858147063645164517559256579515525980352069743745039130013370622015885802741718662316898153066735032052173255207240532507889705779512925855554370961421897608725447227761563249081180153375377046559546683325011581639070118757258998182892239452380650662724933348747694010773868509354833970778900019357085843076355847173744302467167848973053675505691479012336685345161534513779442556603900468064705360183061609412066143334441701849004295525110354722879749271709741619094917025932497649808113520127441166521614107042558118470746708131725886129600001194418792897724937801967680395231529806562838166217270328853480379936816767447060475929337976516711005190903610035476211664188939342907059089234576703150189200839447361780966942988527758545976863390258153427777900814571688129165687710721298719534795050362529832956756639543538595377754545437235325027935181422472764362464225470600316700414818324695707224496223229616672515770432553862195523990305344437118093049993947408770583975979587868659481910992273941096419278128963593864462682179528443390623657975432311936991184087028490035325932977892621016245039251980220525764367782942343203038347778268839119476099230755567632697153383244561733152849172401548405228306400423955753665841826557119003530631991638214294540653182865565962006220267971746764425329336525442067524991537366832342943672509480141413949949200505127251324146939948327198073147659632935223482346896717881675224208848623643470151459496524446713854395183118379162367721725564697642627347434646172751650931561230997426383926883211527650611787472225957537828260172910209742654154197171193084764810432784246787145651804323489601340114903601144231039534416242499461019474581958385856090877213170795062984830513888287215858056205978326302159296951635045356782093062101802653150142324460330894448125260921428394092788338776558157670019872291496124264365219834035402932203644421031343624313100986145001111465418523352551958980319820549480334397407413631712845932849595838860479709311435460271820270582802915191473800815629599675157334795465370784951902979462776361269116624259256229004698378268367188667206867683101287177661874138505514895696056409661935265162583045152179335346644467393282551635954781581271978116426654790575894506521721246619354202568708573880920576080764918942951355493311589436101640022132488233596389691036584478993465001916316261356063189920160377796342802543969491402545512522476865303067731245342105358104802737698585485091437011357177003018645375364035732762494412780037707648853983335261108785813639009275656398476154615426326206862801334344653506774334907558909792474699456780061891543687257782680584327141919231167315131449283681705173677482632764720240184465209191199572400833975701428484981756543990960299295515517052800117005038309325521720902216137620239938195228292923494851160480093034850008230659042732116285842482899710345330415956602678058090279826660786757281895035668030594767881711170661360148200150815182127076417230429834066321686733274210150323170581793543115051260373519002722778345018208851804856253322485953167169545910227800900127658087225781652299186008295616810666250652797726058278213167158941868060899556331066900367160296010322655067185319776389318322749624309666484053168597810131174572572424381665389324610213926968824010826096803386276554184866686011853720263357646429054452471727271054853482954412579047763698912344403461774612054258379021778977895789727648731841748904730826992551902489964839065439661854502761524119206652549166830862270648137568214066780387786249759171831426607865480217000814506537013764896388474840826859292151226873513376607801242857735111137455625953951747204498112782191072753584011536144788181854217364046612552222956479762747069861334391032915659664297677686148620325916937428043208441887558085089155675372526681793268999366622427897787082573647094715639714516619962492351408035212319962026353861253271324685407422583721008436621019042269416788279535851998803486804564873354535374542159557887078453269816487758768545658859680519123779901801827800444192355427911120140607452514000573895305929916835224706245443424547027545769065595628586858205892333687551557577388876635407942673731041042344963214667196013771059855647573353900485721236879250525285547795020418911391140844075617138055026351369293040077947027191929857960172194449949294622518503525902693716349212189585500723821226210507531032979745916308729422690792350859566139031353671840032831836325274752933296282019534114812874450043099201618554714308093334588284667473591580556833890136682677662041048469217247195321369318324584181422147930764576170148378943773838794857612300878884595093826786579890601292162182774610709199583334960724096149370553516138586033834965325525416377307483531137500933689537085781180016551109270801586071076033957320332056249967807657573592965371457456596751962988841508768030902380126023166339139546122840579051983906609054795643202247419127880096574056633264238566272619210973697575163353728316327820874761127149201399818619362423312450551028284642233852288743654000521591696306653575510733103510472130304466379602408191799922585746324348954213129811863248282618885092804213873829056187763542475619217363620391378074004904801991705489356894450031870988055632886446918060006537567971050823178768140487380592198406990153898687537510631330643522057901317184673079248900931205711972359338379433217985891988521723719953697995113781461970791147832463193985859611189779191939801651936607394655257902706691754058961004738001606899258185644330024436768631393325804626392724114132330794836603655733692961385615282500906803792068367465408601724443587413192184282207670267985723804130822207266484340005081628185412369805937303003007684643991492440484050614180867395250916630705829995000654423318870503148068657621572613032041145324415102313944443111201901674269880071542003992589267022869193664135812655708623973535347657360638060898206882932718461915190613376119226647900300621019385325894107589960721359456442402784191330360041970640756283169246656579446586393833441682053017249894376944418337917983415895124651492241076715557011411484972852160053243415219932650460308821179182866687753339697656889351099515544930927487696407603116485622054790301460023838777454786340221521352959843961142033001372795190736334420957500927716084497163055799759094581983589725543295405518736686423603539551005254668884391140789679756460847391596760484185904526379789624577860665125305607286913544224669946909293141376397034676748071297440179599371215520683767300961767623967099051598212631065397034307007125797549770522378295370756915174655785879449140630826288145188274312645138810655598496326277227290151150956585152616237141363408857696150554366849361908341071229037564353615084776992902391904337116595879479128388381963928816182113295022120968991956823304800898960379035365033022877398169773250619611529178089255959632062020830667315397922662225469897350116648279249075762921743041239372176298659676380927875270627734967936397553874523112011842217030293663349506850933348786181961739636667860647387351830857343526326201852219730608056102951589108451920717657087887201223142977188978899665482937825916630018916557210456173666918107271388503119193836598889049137868871716731865109547635237408578961164718192731526852246618255994278218760078649633565897072828776072412817765791924735057973080259406081136767965888445542989718317392925496273921656293747191376512939141496480228480215027474046061575772605084504191467556971028859913506344967801597581606258540997272450027056896947615186967778753301853234325295298763579010732707260537409058218316452830038868689631614492515005228589407161384639000190925445722099429403451703565263255667465672455348230607539153553472746918255559156274841601439585715487830098927926157664776740703564030280684165485905889940032357066920101587857996853215623730690147428468921853536032440430526910571457751835960500643991757225568219971789646926587791887239591993871085361582894817075118092362912826576583281185072716015971365059146701885807741404564488977418089723922623630977931332889192369408004941640143654334663161985799351535734121055637936881696306861794139723701692580544989682327978404317122214308141193788175649046343580118910194701205751457229563771463402204451609250048452041290151491937309002719039284248517842624973173873022694631408971950727805520227337283740588747952211172989546571459513354716024185722900219227823825687048556712375823526381991598017814843809106378785349406237542727629594248592329524136392924203431719451689151524777258548988312207118971358127332705180179521880153399882887345339534453291535481554514417930759156260174119813189750179694416147088584682736920199814882260660541092852994218541408961674982283105585344519707941192499774757445977991197478153965139616807562396711541975778795529491302210878717802451898767110001031350087893230238766370375102085099138571873924934831975635138074249451430995103292799568503669766800367249584411110408270191529113454681889400911480903044333164257755055875499100095507807719930143232780380130998346428066949922631031223640712577545752823333771182247577463219563585327892674102085682184076203819936251290644233678623608826653735374355158021940526736735207640103947407388344848050414906154900589434081695327505657201135335457113216737832525655607122316035058828775995651246197703151346817661435707539301606561526031232865934778781379274506226677537535919060797452162613422983645206830257879601670844796764369230210062728169281451319486498774306549847990286787696643519859264995908011072809174019487492832731993054966388962668738290006137841010932194385152421802156399717408397171336406747010287697070082938032835460235840939036515297888499961367153346930421202203812927533103566741803592189608640940415135191140102944091966576900873402173105542814573471660474818029364078530598209117394950773098576473395642957735595160523678010914812895268857240112976559871233493562800481991000303494739525620463799273054830632941020042138038355560672580465563602928164496135534085711135655080262649176106627098874988239928671081296771163469969506254277711164726234885718078418974931430764668053701878193484886306694250868905490263692064252605871194456823124523498543379081744274025749005294385191354072969754802460344776647145359099392453888605121295915696348563381636061003680786266787131003199849406283483706408393454781269834261030909340626621881088266190907489430798230599585927156612876675402998979883121942677469507546061408448435646813862371384108977091826314116704609924803450059580455219267897136790430420392638381918526876282313349896623411296470632587551664915765267367928280112031992516290940111936560658090339885325218859902849791084502496711653507041872264022019128209134629042737642284769922607376763471330664374715051796402818228740309815165891057256566488374838382935848448152614391770554962561803311340348731745010697663125490905500814595217893538059695883195697900943707220536409306694487359860206148685602850331931661760071939340950966991045928608774323644295435921059925404822442082929319692365135115823095571482587468348797891378515527503849880812612855980963357810299598344536396721292749761564519544809076133195231106975902247504098157894632297476312577395544403483303144665832143542756273188966399250333952561048051895388966541855117478687442370173456987849937302146420821379232410961476057386729330182036185124928208882079533400511944787171041074302048912571870654823360178994138603887917820628227506693905920749678728828141228124885426047646670912739795197786600828226474836869191983088135050133425342526224386237841451518154959679162112854743508930391383241423327073530221320003347973935126305838507631128650065977082115806871976452751034068792775373569101831254781731636299611765692134603866336055938007077612976681405369498980430884293432140263783996569697098843647783528615407930714857366988999384183203399318484210365799198083131535386605742819304313425228884495416818700810609925741718809403667673319521482952601313732619086821957262889770524032901497707831847756832433938025874805329446004839825603734165392873540922194953358801113222021330399240830477487634033863857407939298704136930847287921267691531313501867951209839125933921084435645104538059744655643241093589701937498122339814319937813074781169860204312902575332205729557593589633196861357692333434687068962063323501585113261527854170043874675890991334455927270773406408740751056848313561764610266607052399258294520167898027014298915469572450896018519186901623223409725101018774503862743347101497938488280077608345662202481555088053900455435174331394815637358846466951880441666489222357421634368547932360249638119466616269683429967588391452557878769065802779892028627801626631493369122689926342779069913736039041415066260882356789157205348428078511206599017719916915745425157384968485858097860192732895836028734729821397454547476617327384962916987407621803586312969192484618555645691603376723259434059733209724032614345521406349068202407751984848324137098590781192603340981812209306448040904014573750420194842284664576890053435563405372981476695169207782837614386515811932578443558522172023691340241184106279656887249251190347563076426648225367852437548493970125985294200511935610497123585921245303061520525779793197989039825031842759840027328083366327084050626597919956389609210877809160140140587101071517221933008747487190478020233674495138608680352936226623429606969748007574290683833171443745204891893890549073047588594630334519653420428672161254496997240531595100284389689529493287294808849674492921722918820200583927558054138010428910992952327921710924248381348783270421935273721119391800060012429184498969226067029681305915270682386559930850041193991467264195775067217283959842378381149459823470783471709214287150005169158141696502683615701982379025343867250848976463957940987619814533001732993151341316864514315751445060672155650329825169052468157475407896103844411764237938310441746584818645212928141704994572013751667974399884440283134162678585331684300390294899875952333394794442204616294513681074270488626919759663375644649867447737705385498075472223062231566004073912406259849962346806083301253558856795749062742022251183611250786972019654268872090356893056098198653374485463370735964113546087189003741023102158650382614317226801623677387912624400730943847551568607584821379947714782912692214899247332575657537175717956813999302688384750022404784178517000726349592884633437295080490757336836303288493807051257812722055295123041631203931990737398342862868492153997972169054205374019966778869963191996200137541358463263560845206187661481900750503702429206342326249417886072308349821644350041485883397714514187140124584898887686051406775184330574625217959045895790474490434131640715363612071833838092295721334720630863855892261765269926877831885206532522773667946467929059252638956669504106774774637648180770787535336353096104190863250026249757126396624589801685644329699277500831100391421918358691238156368045615784069564559490038907845975377156078126098463840035837076480537943225658120404385701137369890168658205377018441100381340008689139223818043843955036096739073097699034864547461155329049827588928593364845617090042882611282115092831766996591410763567830482703708065731609849001861001900709018501622830355858132964418267779128803221217423020444515605721690849230139059025613039111479816002095218474390722113850993183530934372422551494119541118180328969601177821489307196963085162842925260900874798157155247758993505266226601859862066443712904568928581579786608192731986286689378677636836749853373323925863328659903825783457074646130295897909502291551455520332655028270908292560719845405924694291388339202850651605670151677890973419933305664484438873941075259277447993040679497062140161637998398234496450053651119606387979504568922420080430504182007476038404722540839973740726336742614756323226279386510540179131381513564947753089536517299359205578239483489354145781805915858439769643754224044423961924691393310745048037878842828984387831623910169259847417281185346672555881947197053805425109248280059934974058747235792026387938741536536411801300530622785488402850269124041002742635576972445507579141574412824188351922000349662674646022447802802563667266308753655579781439232475937304329873860738792965557300927228854686595719793724050566606494106039398674593586975917820881374579555755227731127691022482720408778909752981132514652936024652021602505616749923069113582476982564271911320585663079301288928606145308423427013303721409027410220915050159594924840677264413836376793614588860673276684586883290699602562201847611272798098796595776071154396482885453905468345672177965457766916048157558434600563053398635749478076550216125702264359260797477768298978253528157006066204549564020778383392930925747269633867289365017373364334511877062743517060190754404654206771617424458633763366636649174256205227817169960867820153985760891569823993065301094392188829435029688733109457956830168972972823743395063936332927330541831627393504853824578560866598745383326727250894864785092482323316655077029822645232384963790034924756485037065808921372209135953363227950890610659262490886008466607735673934984107890641527233154604367958388081959068375279161247831159358428653481448197145471894372939922683074386653401322646135208627687041150621433736369374372700554578956825891639523005956854784167926893872436881857058855131676303120992008166469519657711120486238954024750395624645412899079307402411206026095896928071404168515441106751376947297828299399028898908267574434220211876741498801503830900349969063001202827990244172137702005881127984949620281643555284078837975457576515891296367112675479440793946440804754801797185073311713339435197404378390509330545249982184349000605833231780820866426072135722733651604025087010255045885364342990545967686864768144221953381650613402275988704019869625348573599034025053665714580991216677608343750143138149638215008779413730800978820661743267977459993266109295741226414799102127187956288587829318291522812386483855343960137389549376429057436202964960163589707788424843031791908140420166653385314043836435277289002607187182613343137813541078427591331921450917650114081251700157428729522922452962938134180268940668910677675772650560299869691323320010617033945302781676829938953908140084127313595049631142701718587202557555970384829987599740007753158782228915139037728998401040845159334279902421950940022734169927470466439682370637665286581097333059899317871306401354690544556193282861675387158459396768557818175886273424463633520677900675926433838046971530496036490579291380435387657414490250691107443704837965742708896628271654383517638411123281847132266432320103607004069911737512292300309368584766534274000274514084672454881960088340286773917642091110205860205816380242747396755742955612147465769842423680527653515555499090651738289100379889853314292611307379391250385583472063755195496848486739361882103372269274628256924345978922040627245790163782032811824085460465092545607661088045503956279110768071142240377791962326147829424228654643785907657629182039357260898634685947286506923459671417972898130325438010714472971605387417061121691555085032007638789497984493231510760358230005520477318286799705336195809572658257615641659779004385014071954745542458873481553485828349909747702317500828971878569077973879877797788873743522059880437927390188666158322928353643967964026828587890269004230671989973056799410331651770501906842401327220017700869758597197672405570810179713836121702522923360625725740991580239115698159569768618169257000226823034275485334755009624343392062329272112215544733165040660106257411097180398021378278645660572760561846223773525805124759973064380766738099667989340895939485586096542102043266557194873649600090507606321526177957004477999512505389889147622566687039802509475650116979072276399350547450092511029750172302046013953858384925102433671203032677117434437886783438340585901714518599014802392697306806151786031170091877977111675614536482005831688499047133105882263152101432591954970866860237429330111504639337379961599532237964068925332299201037082723092879764305311454134271502565767358578681017881793645249933805152176970228145039418118832677161727956715933517249096052493181319794193789237870627029342169037139505655651688169958865781207086305802553893687465651999471300110543794495343499951615631170134930964148085859808777478611653738359697456707892449340686334924589433882455056590390790248097250492983382107730178733203700226254831631964727309192165056913768288283780895073530072697570934930369123137693912027143643011555737944298336588636102471595672411780801650219889705274998564591442513333709567761752460175109857257358772699426721303626748709257344956416390971880926053823928949280141395399065772533826296291735176135735619823877420417914951269386038315775084670608578249961670804553225415248822030534343046710259290881449861466118489672917544708167188846788998011129253334795685147738182238629472895569682274616426747223342796562921895872985398615388797492821550436812228184721846116164246703778215554286980766682859344108923235686546670506816792799156441578137303798287471689548628504310878062833391200103113971496160361453619040155901975082338883179168166774299293756887911382899956783159297188774604668578682992836246569477605979547976933675138272777297331677306499507118088637751569535941103791177740653737198977752637481656937093424578091900290959685917922006750734047632410581521593118428872867136793849941869201238155508260926023633390471365159684573357567769616040023462076114411717565117286643684865989919191512757789382934895239039938641673306869076537738192779927434536094239944697468257418854278560025944780777121686474170708448569928960525928028570972836162265823816155415062783181280605990638107882205799491254268849542906978593209100780016538248319942641107420928487646374975478189391154283512924411829110289292640656875429471195357600403895145453290006417414337207227886359466771092499080603253613784229183212096047731272706535192366723813703823400270959977732533772290501185469751698974392040047286000452921295750553359798989666992888121931784854488436182607308906272988445302768768404303903205706178212898121011697086222298835716824716078999652590253481228587904178816328825070303474976649288258657951002030165489733860700172234961921696057427373421096553912361797174210362859465049402144419681275822922640248111045664793979779594858558038095587106121566082000951626265983950508144641999299229010376286862050853709644250149718790634821680139450347642339631191749794507655254775495364142534484067509722831787323142621646034269662774088535707723931344976453231165087801755674243450162970774118054286291925547983486737851550702323736359336163712621569342641281237538382901935375487695103573275542148142667261831773892173132462472922243238756188914781437288908689763768705857138833321031949351435505986451105803413296632297451309943666051585345527039772261042534611109743751333478024907824981766040526890239356900293911136464093881667314768759731924183907135385694188634304088355578263532633349925892634148655873679879622219097031926267691335631831097644726506854234923617095343022323578094605676384946443147380735019848195064296400695615966800664912716535464948285098664455128565023723654774362520771293460634241265553914339519666456754520371174358659986226657540250175453304424943547912972532090294789102750901403350773199955898195514526654924584928283122616736960974647392108549141193710904937681494230825157368932539987428780170667337643718931792818288275851842816695664017948977719564714842734907111768820836211837096148753609145150770690820450162528979407402110805672411680420790354607839720107065864482612297663225451182964044539206899911888296926824497376198881370747466302892733083953671067304429083746754893475947805069618084307319725611647739156071074187138323299388393461864050811230616143506421971436342043908670428940605703665902091262494496387062081589627545703360665505958301809627113942515459030332231627251938454329695410818844831675096488395382403745056296716497111378417299790354592363320734298564648424195662893093894458705294302894452167706658128226166912943831621685015943828119016828733589732842862788002090478716400202910357105296010591593735520099871855840977986584747268482815169516001591531395709316445538699500372328758486940212989878396216535452871558886620838300765387167768299459412162368773534280071041547917762618463784056221791338402949894786049475140737357308117479779147782763650973141404433679589140629178017102594361869693659881594125902740759590148935365584950083341907323154721958344332080638071724903907521612480331806404551100645839561786003647529600580579515836568182963795940418828002731597937661812528213540734551126305725894236000224344732426153504567928860375564034697640357757983982352741776528377302573040360027326900573113164505516747769184671054815485892980340338294641789532649739435456044941987565444667373904259304752131034068664693247836957802213427072605350800382916083135359875704537752102274150058069822770925653036910499792054507565593740463127227885692911542625991260466785389681209367648817261005711545412474325198017577822048596814921753759979144472028511668919124263460120155163026102256711459301674218477286493480123159914839058226434476898517893951895614449110444964300667724635934011210592908910558062064233663444951870539548776052833798824314929509667078414769999758657095574274716700584924401380392734145258507316683209495109470643678268313108410972769744081290392690125378482735132664049227762060200285416272101143637373877098087389781329429020503119861540190218952728752242803041258412842584460705363267517435117674976105357286524781781925382758918930938352193547963877245616166269361716372885063185314941368438336038634013474956884536210286535424294694185832928897516947552333271992238660088909481407520519515869302182025827352056528237791428121879028324019920492886700042321658717859188428593644879904784934647157262318365638005223909244628960770397691610162707836931002554072510309049132543594030533269276130196433328520482513172473008453886203495168491634203819392046756291078305056829929732997287090427925670011660173573639444223286056910258598103814205635736434893327331612202153401309198954869882081246468905546946981181118220048651033700357230231091302235713825080591385917097032504392566143793640151512798546588555883309663504431411407750726504385129840473662887367104875118063933447168126030880743893991674785369641191262200436633923129938613981103088794442610912333190405597036619904897791916052444575023519395029834735308254686973387821249927720053480933932135685341700351203979996046112078159595791381761828207842110002114321683251140264210275039407976290209739446112629841320972207924121255171182407448061546865106157614102117613311740980256803605728906704206559452650221579942007903422808733046673040834517890908516084393361582911482214462551663189475618164493872687920582696833144732255187362195981230970264651058747834531265846450545089536713562642169608567196153853194983325615361705385177088713106659654051134239509239711449261194139042508875559421257345624741483985138883479106129546855943773788213458277969165768875518007439365996316577628171658616727573479769595616179555825560806745108227282572223424688046952286234534249602987854052190945656933061554242995650166782805736271502406056889396674157025600804653075031079759708792886159942694769074373750091834136178825296648443164786291869968854729239240667015242373627038543050118768251008085595422770253395478204609908838689377017829774459670947719513944226868865239705577707925561652631239222719702975490435576186481293873161023819716591027844025619692606631943251180289681583713674488673216028428794346526905800018480994414491706089152092890219857256446071491166541594028278714108897557756885903348620105896895695372118360145246219808294311566122390053324879104624734885813886315849290860191944817291316398570160968238625505781188079306738146293941924974803211073483710859855811916700898028761515489510462361944033871002124496079034742151149781461539477207732306810050928177036993239946364046251060458057520075295923045403605918993410180115813352437588596237117346919087697407741301718654209618605678876557154479574620552540353671748281818178088818604164524559815712568691738271114977209909295954676029982748530217591490180259758482653766217992400292179898947061168977501439923043099429418225755694952380786277131788607253148543633550986396406432488238809967376057412524595300130806865436830358001328470281505021448009668867889358028375781970289949855374742539594230911133498171050525216019166493033544127195606540957430617166121861503840379587285479673807548878133340961223246900518540487616475700014511975128146059296417855285253830608506808352109735285921110259633256474866098910175381007959587453912780210055463634404251892219377800932197221386532756173126549478349444000991867323118203782043955762724039739932747523593205703965811709388201120755919801103947487128631299247143047932237020399207878861338370478037591580066662377766529896176058466856070297249150193548224509512353916019805444203724892181964547489084565570088389622477058266370654033481082550687766057401213104692391822793260811968922229943042707770141905650158364035980166129439104079214404300784274900122217230392996942586163682309560340313383812138074827789582571671101525043226565969693440827322015582528425770628677147139732413832430866287564959533639686391395824902900052771737637644584037316902375658432496578659410606510798765181170176557018468794290838797370067429186357349143925586143141652847503146611329716174512982274630129358216565095893213742227653145442649868492161797951810141031042785278684492402809586421806004125202393776894464391869915568653660555561289130335442795494106027690059390806507309174260595373715398453149108526885157190625195938739296066748073463314777020117480169000734114248959094185498223616111973585420296609080913079567935616914326716651636703637067262530271069604705540608370414789969702759866466941508744808751603617116518557707856794781306837881299072311436622722552573365622172211825852448350007077998545652809727377242885701075639942314314877740719803325313008436910479416791997415075200342606854128756240218735420776504716434101048634298248404214157886045899343613605446352813081998585499236057458308672935215603651983457542086449101353652230242016454408904212642935918795180787137649366059761783049265759617971864940373547406487000037299504598053250732993358614472499244954441256585529683742671945793083082402693057921383843626926583514469601698902770649691434248958782564559190465824877318479997021348271721455324467399821129107709646261805364527997727724707473168740666395964263701616480893880740366516953772597666054704974221588800895985640666026808199879826294394771890232072690858637223448371082619957837839261869632683378460727759662290281014552525651322063843671764432861404979790135324529662945428686340808627873929322729261542174647010503912469210067494911003938976321853494698820354131631002793425276491556285765687759352166872280559114504494312799188853925834612758588737856788473579547723883726193896257184928655781641252531031583054599275656581193852876351595355803645904115230854076639473708030601404178581092935530764096948733120419291402255085901082296499980085623826332860978792245778795695542017301078981235614993005667956237101018725348617379801196083000124299035374480678786987223283289771483408406463986077146862283928921724250851171421419683091549434677118912579415199645379010051519842185354879181085795212343697096057915693680494169112476795681380387111915292985059450959368713970099179261740883380336245796006006062092628526001405728864549370639490274061225665904365164750111415886157321844040833631662674875542718480702419222031365094970770764579479277324532561636403374795808153161540754532046164373872794420170307850871103613334273708607015334788613013327066368528754039648862997595326560362041026803669638373430922023408804104837670422898152590791373726007683177364117990627414568418584602595370678370465615441246826593645344777641958573493644568910203587292661893826113037462701092516859372478423577859138555535415028766744325094785721136802216441461232160075743200309997648582293776785445012372700111051892121588204370637048622110288777141113087354139392806799055730790967731775645661160056783990068418481554748998699098992497930919167787225213584465401899634437144540175026243397788517405185450542225396092186948030336456040165947497108035465163657080919322576966568971943157226421445509431804256067060214032423192862778068993950767382638481645028156077464216198973095459046258070745666511486467363396955546183964240643288162264573868051003836103278629425424777444980058273170146491844377142143722466479102844262480519002187541590369254144401791543773213634994549339406534666545058560541571253021864023647060119748290937990141957173506721171574838883085586302535470735449911650273949967513599193678151324677394805261715263992617117422138875040104919669906804497001528805060271323741507330402363034528619285486868516938906736202176752512071423333972918793266793027964136945565259890632161723797026649147919467685899430420610034221955877167300222098166642337790129706899887007289277368929982853920946942649114526095224079999714215773318030843751055085875755879204748815145556157052655175671888440575247854839709338493557624592427404701545387729260275497788649916978539525790414594196039273014226432562365073311824127237446987882331393703004008867939556228338273836132100500611231434712584134654682258070725480319603697022187136353627587014742554259902146599122931793207976988369081509532214485356583766395927745116060955264983490141258799845017686964160800882120421998442170450941618427810865497570156816789133603359767519826989218435355391859187143266381889975150796860025244800979116435314947891617548226415666003304148221243866877388721668643016810921409225728167786456667397964487139204939155954756551726928860180807096427807496074397942803301207259961420992194206863714256176487567104247964309086081833077748449991457987582457437590432380937381659558339670227527725149292563369286184256294449178803032066751515507450764068191476752599598560288752128990695921613423657336072733388389107290643026913585603609632160582325891948094774049431685549175836814887602971326453068103614942017831468893781288479771739576015882905390900454756178529229582618860955357340934695635068972155846000556641958419835533660501502662769872408272814081449517112358017108115170754032328964165882240045978516558558238857878209594137054965038937194321106942151481665320575768563698680769847312182189530387913388995202823932051365945665392006090077264667187965118932246589987114083128180544317734351276303347021324733405491617640294685052169413721542548729495024890667431511962473565684387867975638870676688343085217304728193123577858141316193499886926098762206742391173915705926285208521170357405148149669656549117355340074857517715621173395407516882687450168990534810269325973907560022010984486197592730917021314133128941599149825074062921178061208358826316208053378583240838832622109296487198553047266707171770926728929989789749794045924669347078317685173047784714143612869753875085505234537758064894986544152483388773147797770821189813437408746414482156122742516434344168487434665517116987439107198027557735240364607817272008457607791154768698420509541188324163286997459628012329014213079630717687551429597279600489216787956004316732195023694436476189844414778484011058295604774260910346448080553089477817141721241413134845685350317909729943294942369928573611681191533571287495510949603919524107907357803870903343183766101168547914668929606202010593542621925414976637481911092960858614781484461401050928637724926848171107210577217086845097256343387513581119301181138866310528358082389690562015954753704155775134536642942109974123896830830534846190828975040505097032345017143668623392573291960012271177979495250125541280654263651634001742063890874952725663085958424607932638943521755258663010025336487460212848298914791414380306897248438375508343460631915345778274454356300968586106676257175798748442858552101711552848531001303300692818407693982899486096846606713893794706352152160189069943855226827971540087696448719349241927084131554314973910135982564198090114508998557011371713652307230229264567367812415391955376347054809070597547701662540658732085338939686868404296720859195043818946599776749222460801139481693028202321640478540149408961442944103819229763909627877844369675487525337246280764450151675647211384511299268857892607179695932253217076557818743082305243026501513728278026919938604962179691521154188443296362730045333469524846811847563131633093654369642087805036852225191512089349656019554426899392271841184264734732817826897739793828134697183178653014940586221829262518992419786070144127728375996662116534434690827618435798864586328020493470848489554750611328902469997664461650672313401012167125840434876290523318061725896887090081323815384897657648497064936478000818248512462043678200070888931118750795993879314427873907738385590314109678109397464366732440250273174713315009313977072703648063325050123419715815762912820006703769573850893927011378557665517348408358688920716785073459162377397341205640207211829077210140914470874094403665931675028905305445059885866123771051295329898530688140913154539821143344043833956830183442701081603448312695659514351008157214365392394869115655552315126414875987797077233819009561657120512515229906851356027053302958615537419595924475732844151034682844024482524882102083578744790787423750922033393676184057268916759906058926015994149786612362467837414602984723018352225397191981942026550773248418480305368723150855739165236084270092122246128704269543109340014596202504272116362727178517320426999229961665223428389064623784498617175377526264451274204857681575707722863491721084205318167333063383001895658500487671326431551703937053553222703555688574915792139897891466690249888902079754701850546206481780981266159349358902738236019380325102627127609833998938233962462380859196145640847550934450966838850065574009725312730067108331573138907072057953614813243914889995202704871579868431344798174323696435618697173113364857113899409031399665348702793548053327398414951639578604432837538991992207914926510424855951088050046062411125915622096636503312964641331684836329381286649955655220806308020237152181833360342618270212411307128111804908734339948666937886771994260129249022526309867130232411206017184293467709223962222053829112979659340787381403086748986054735744651923164432754389534023140280051263736637710201420412476685833147730685108189621317173718369774958536019102535156623301637560188046938578491760024293897420306126896116360798390732843956565325704643441916805844007835527126352181092773170950164042582204114686765293057117242600841663057256546072097435634152507859416986847554632440292458269358141976805877413527202599733082626795449132933242082600947552661682766147564728612977341819882476632597266377111163494609183890719769494887962640360116946526881789835744123961548670636983940981475605930425175278813460728778865184772470191112511785592984539153052010863914356388580881704029049624593221066863585948454104066338120159671044306361949877340958577627026361131662634493785761011828948586845485178674777783563880874104311483779116487491710925530785851275529338674226673488185987547137933136584701140503245630663934817795616293106953435866505217218551427384614051957057822290227720179254745578203388369291269059246740537018794398596217585548458124450948189464056045251860965024609734609156286835993283309196754641000077432567094604439573338266763253072646763424575923167892554450388936722266952764938790089294322071186825811492728750767288578949869560406867502217971732762615959876052341256242583689428502072785017819058147826961553753639426448461339651852005574136009418949718868093805384170209587747136779370491355898749642002558941958493080758070732995859686980801929953724321503158425442860367034837333141023964241151361737150787686844979231002150324981203498560809126211770585425786374419746432549389604223548409862858493988352766656884345949327183475561886633227736032220253767201705024263880713058242357092533218760894573197823120278927025267004806573459799174066512951586330703640547642896440387409407946151562648190104168847960698203467671115184337045365593359409727212717551124440184136814234385795651859746909045312037193792637285323264850219500167799733594462609768225871346303589110646540574516290963368941503965417310846077179367658560061508077835802076696657799595819849485827616550046665456710090303124875766459857524798412798499864618922588771326714408019538707939628479581424072619507255779152496975081994046972479606845126466391637174791712628518215976707314577971607188085365159615537915539428733862580813586892644872442641331908664130479814794793806364747714274607069778310782342683019492207273759951309729947463724963930969287929915163351327702885104142991590475879825423549249799259905182386253504836525311727458971750630974859891651202527697147105713736749672766790960876480568063312092844693909080038644615134552739948742779003550799532914814123481092205255250793404130628404682310906464325412965211665424068712852756826299562237365492987755602560574698860828862187413221869003172946215423640977497176203965673474712704585204865763648689029253380438194256195985100043579235245388647345419160312459107033686164013902470816930255062440153796481313703029640657111267602196021637934986325636324396948063281684227093351243427649119882791729820002838268715178510335063413067437924461380010892900554617492230825270429360389547495979206235987543110752701640435682424116418236028143491989294839614486525226300997351896027365287628935071027542887971369106209625663784942888419372766696811227146373099846333303996403220881703087109840732080345142292602750870800110338551713277094120193939649825682829847547724329295425998678855744704077226096171139507017086907776526028566497753658847977296062491542112639946915907015948379110547110282918858727450643001005586005303872737377472515822161467466315916677209600048400159153741760532884334629767673021744585186602039216050216941553991084589166082088428536071725127788104584499688990898328961132800512671510701910094832445870211394455175483265721095891821064604050648569831682643251230171006546820289151982200064777327812740874005070506688948188640443320537427556342380388707539213638125711286222651657846445819678388566643670168409913229419935808538596084346734094393041002134342048176793038446826440193297959579371669544100024379914951971545092606132046582083290952292945459364055703227110225252711943315470758091033903153080491502205315914844180891385107085584895833034849836880677095092815296192335846694059897602366615246501665602347056431547445488805105222744213696121862397142692686245543786635675222290784141063332078999293702354209359295923836349528860817222383242217079900977943141944837407967478808560218552207157551465702488238661735934007969982633886623630364580584073999537812417829648817439667350982433280900554468146237679616152738761982575988411355614408804999455857943678082340221410537130591959433026204432935668905896595821206562483610430374774847626729066633188734815281109117769195338811763194838312970488473812288416507277092341277383967911865833423858035367703954385213457614555533225910801365474718763510959100412120443348187509990276482413028182041860315417274272227577743374652956440184594761063951531680036692610453782668046732377275263909434199160677682349107534500408097983967595149065461466467875877215086751716190169966382088144133622836156337070972144288849955917385858415820136172896715257187742503802529868412816395263781567837052758117678387577780202379816359388438693937765840864197628510161252030553022416751799187885422471221323611113885065344540491837653234186693959760249676322997280302298699276679364605027007916667159937010657565166492087956967924564664955405983808543367828238788716522959080429441057112871319274967078861382655070052623453027503083045852777517069592454776329899837658251004638230853543496020638066571088325178938102947877165982741632842850948595866157685869522272447201972853094654161835746283301925876039337969666198493899831132599171949265742248024876828545870588388794376393942303376810560935751742675789772537137384807873788603998537355660061767451006255207854234593567650179687146516723165863830815836946885400130478879766578369337100119647610474048371233986469335299783032410667733238283534055796633544001948182031284428355029908420258198861718579145798511786331487983655941116255761099034757095919057417353722254583211400747123883451496354637444919097435941833809272138254898080041522719042518967895490764593483715608164886995078676244379321317653296458047818050847134776034227410344070445765524854271015684287709161189569287939230008790932931336879591758732816701047020865970466570304273633048898238475786428127303625059591444626926522390860811455178432954208197380558660324901788040961657293144674121233853450618306360178651775128804280754236495296548767490940954721863678947970967457922200239312717119140027074791827110381074601589200518909616122433560940676232892284038250919528004536783907591740882655777373536106839888665862513587345726203963596369443533331715219360614062891343673889435326334704966947039712331575457338790971524637717502820078319403769185563422407213012548183945524604444379034346212506437445086830231780299968983379669865016448037623658475322998975331902340776011743583845781982682646156524607876066087161018816388854626164999843359572515126838610580840678318220378801095106843678852361822357474657302831337306921664413453069955360791150941145370359834880181350138302982293806114239981819028317629597489832240866534402499035494661337064469660275264062303913062766604873305134297796504360867362046565282779847500272606119339399292809280507708938487534706672521814894362584265424112962582873779334282770895486181443095542739407001909329142330305462478410873835440055701790950836558242348627986386467862451569668543209885183018271192151069533119427142183792139552400803856630032112127596452591189347025186352767146630629174685217101828186855544044080030891039747929364741315796544954050892076963154752465333166741775709092071050640065431587504215172924588372300428698976657526950080513238195702384258950888655533718613583557141038288733846043828187844523098299137066914817060242739146462005789222433451629505129784205102283742211874898035368823737331652481787274237613039842533010780630620058883176699710912152485055338014587402420199414123991421293961534047902323770187094693487029937627913511003598648089918824640248268234550745512575117096775673892723177350435462900101346330926878685204361167406964054161048435219502532479774439172186113531594894413172550263466471053135980908670338941532791446898967456202440443077437710733514362333290940383087186824888226414719030379918285661378447310564828333227583627975358376206773516880051700088412426107149151838623566889093628848417576515521606051748614825438999945659594082363376823662934958540423400283022856226504667263377568711172991907186320033483467551802925349416491872063055657655239106427348304782990725786417982235107577461983111177975515613388930329624599760645088009527401340639365762338079322390076707448674566318471367795767619210773837147493626561949975540803294542747640839853001633362313319820398372201495605345725183650314785930759637421247744094344645763258777722209520626361586161152529774880476265844090137147469635995317506170602725323892249025967691848579418124286462757531353392183340840778981098650391528820906480214107310782938201519454142562189447898073887625492417688052300588149113096769359342155671841081547781648867205607685846883665704724717360171444472933398297262906689787553324842582556769471264857642086414722285813941561023801315420375459781506760879079826487658352602558493196489298270361087955004721115300424127173207688570331878499707062190437076167463655394454664499923633008167218424667800943936579842419797121753272343249421343227499384457874790725993754824776441079486816603108680002506321806171955542900116635934867291728090706458239854526169789494669773367721970671505245508361571655590909197925932353682982061000486672775313981991510345217909306479010114701853968861542303096518819335512368241287054872613569199013310009597476322384462372803408253669571987303022856452421070790887175317985988299448081346466885491502182739407942172537965802469201636783279223647416602541645050518644035368593682518726820342953859139764639393603731854598268969889873207141640544092203598734523816323149455139414438681915242515227727973896619584608425161415056016864730285467773701263673870917265942613968422889147437613458493051640997641964522317044222416344151021346629261904398292587358974970224989773980190029380143682398898576699020717438257418995969982507782202368556648805966847079229428559773699853165766980379059786132680755484764231052954871967713522074255528475145742595136380935412792877362215536009979785885916275309605618809499296884592118115251545940260855858137660394514545961342517399722784803135675932268646047348278895578834383598253439934454072136876528546608253851499316628308137521340449906534879238747544603172063804166730227295038451791420540343204111194528170189158573548200854371975318321630384751326176154807555427454467949350754489311337196949037920029324701367143134514378705488728480472337878253358488191319382102380553000093606019080710912360989506824438791736751156360015101318050499419512187421228200705636918714769309283173401896712456463976461116201127695519390765955838857772683184724177484327402427183433409232355995300430277901401428543327044064605459224227809270910471015306350559376382705473754405010918729015595154010321704818539481061449806378893730212067662899504174614461850868181194193453528007309433392636095156242521951774295954135659674124990496851385893040410082005572772217339132175799868775276422935704228274948863633845587015607746669280178842497232861271585330803500719888944679025900246641585985568577567802604484281611739364467136758920675492017143403817949158757853264527503507913236415076514330481348549386431179165895879598130746443331701898739395119356578987478208734896000454139413229058864047758351184707965218923336898677761879433190786436973130706701012428805481997240345271391823533276091524883920193667827451982474812696687178014772888780290384745052296625077980894536036787855679239356932332859706455065804094675717437250128700967925869644714026069789131632548121428007264485373176181116127353611939674353808587877600609746424231724216464941174076067717360330209279276295602854747093901664914468376123219417588358992094147440530021679058959954398540052499112262261739810844260985085638991554911888071396985629462311879961125506091047836977665206339374763949560980969673155676933102473448143600011165563183315705112793086284735522638984641391021140771467723711885348331757362807596877190254823000695860292135984467386393639374997967535005639930529994933152108823827944188975423530839123133654224238317524837130971211669269565874762666202552082531287308021931754845163646512275048474259760902441055009257892754595377001008529312592711520674540721627188357143519081983471825863855726393547498134107620798708401526281902937653518307442810415926836327699034433906249251497561362455510900796300337079109437242645546700163537620806110462894913043897491085498912481276764417577625134345129895215151337357792690085788053378538715529201249607836877770997822372292263170382559570954121799772577406003041713447446725292758374984115070104449030069982715436940016081579732118746951625577974056989727441604326524393008091490143537578733481551483027719725661276828902205477009018973033921854375135611975118411042234587281564680780685207292725879395416737682180611359057692919288974334255706801541139799358922803781480578624487787278748209767771038532525095305280484166947910225380011837044973426749876824351884253593022367467823789747967701773549010448230794186876214135788252451502269064405679333097836953747173545744958899082598850145892803524895876515066438755368248558604715497060724554345888244872642117379851976371335411871190860677247971195683343148154283768065859334160760385554794319635825469334670458110416093015407935203822243374955442927269461675303903226939894206324838039011230394220221640299764642967183262935569868940414100287457542388893518048488531727084199787265478607526824152533292959156435432031867343037134740965489845057209980601267347875991666605286536419229457753550424851569226067188368975435872642507126546218399244359134574452954117254378843847477183000347250974204951520068108633413710764244049204410252940186142957592117519920784363010197043425634397721686916410704919824500261517321918803662604165451174092072785759823927420773581789065372371891807110202841109400538463469238614007615976696355318945167636851719437133699352725190003882777443473002076085830063848378375711166941656127512012265438293207964214829346207471709817785971937187887421222011430280164296907389742075168549046264502829933612166427231159040377682557885582416749113419716564531763307152798741261620329094937403242024995989469745283444775148145582819922306488130877413507060527963676428835452014156109540245460765495497603897736579193069162904227376351663303350620652279936990192267374068443145665377672400843046462169344575509754941635994936890455697826819718452852767875528020852302176001285078149143586522371778288721517353585519426489565931510502819968101598607704296054561186723593176970968415202368224948531923656169041189664851911512253803858588450260261449072487712107716883325572954925306864606077165690695762316852870419301978939751296209930527510738226315538652490114157094519766184930384180292392128583458228998484593876466267498902787088644025501509376684116436555602228576740730390789813533645665227543774478973827511773293653450661617284648941921245455312198686156245599743362093491652526889133139049479904317303869018336259921219944140043504012289528272917845953971291934475428591684369548464012773652686808257320366205484014736381983874874421686220089713786364972541713079342795089185975111530651607949261249791077124217268396062835780591636683874034970750591425073296492256754952169352789797313992030480417573315616322213715225480075573147689149615538969045598949811476573444423355809130382198397938283420424893809899833130063007134467863751117984223506192392999640292583612162189700546874033279292230522278987479356605389059861221101368258512383635034555298880620572030301958330903848691360211898770767409239926222540127731389279021420380266957495365747655973558710604583211117965554412186829993985522345600233593777213905975648716821394398275842609589913684109515369559636484050707883291722365747101482830091515355805807626687935294052986471296370425199669378015209310538839258020369401102808617942892652613842616426353558089408790455357568898959793444509237029682961131948477816831532770920276152826097189499252669571558885012896654110732948004082601123822968751351019301402716222587351772130494264895778505959877330595646582499743599385860483207216936141771493058383198915848708606233257325016825448186302613718328031161590367652070890839056638966155604146923029085508157578840162345698067543533432629704174618963875047677523398986273478801677117380500372235890082124056393590820621798111351605175789307068717796767308841947625681286950154457459743925103205725944883682214195905810013324599927310455153673415581509810134631150857795602313745171250957952722721485147669670037667240471502536099560054287907263173792260761230716152081144773398270625227242702251513176733018094203662449473863941961374273456885915785389830598146632286568792022638665623468324999410974896668758294028192524348614019451203071091300181285151215475589736053901227839693470322808548174776242697185426394173500955038008317062610079641727543786877951526417085518471801178084054987128525804440570378239788771371764757009300111233172476637379750465908959631560523953106011124515288815378369146577162991735467946709613961367786360190883693927556716203781178130013685038876300916356001976665884034519375790796729326865714242006744424871309581689461586778231087703709812143804166244478423378382154649999014612427441931221826383094511251936889512731575915077930621423109683974023843386882941131274740745492059792594298546777999093300752470461388214749277481960847715454901202512095437113198067909066871123920333014518910838133749084954558848546100093772225940031800549810596237717928561282652795940108901733672041715929500310389473846481890849757751145703754402437048051982449860890963070017021985778914707752482896286594415255307547256716725125736960863625927760753056437600954759942592829881909545922002044447526504894866385447087330418254493439181531445946164959614680011093313501022758050543518721305346155391658084325641529176673774698819646811484049008505306899632829133205905759956492173611282492515960648222678828711694603870782987509109078500457192704414527443813303691242792690183024839815589225645877498600414913562561709387500201342459661754459532751914004070978846685723484309119974827820623468852809734888648988143325018249051743424233662027087024360094321840204568327882097804978163995469910447279496010170694728621542246769376512819277356385250926752808443429344611204492175336296947854460819115971691802512076235804616435275392493979718320583669863756891564759280792656264088165101937189548898669117750828618131183740724761169697177322131081296759278139847434480852677742286126649804084023483714196772240156509984090331547472076375859316256543130024568388690861417036262371769092769668553943928911159444946861478657627750478564603400672451484654717350285411125760229442240794486569698439040702052492872923155901735883072328521746336210417567244438352769850853860012886631368243074754290678989567013974392871111370626641265700524443131273858810024178098149245769992829319143622859966640945081750152413445521565567116760370190064406455701952873249082757858954432613087115040938462844756262920217547137983575777107411039877285887397440055593255470487649670549376474696111065992675518891371690568748889453414546128388816869804618531756041188403048244947330945123586885191225647395129603746400219207663059710851709423769706778613484742909137125334664866311471794666350965876559873358966617136904388105444163575099190897663982848295962034486395538207688311236958698165598179035325130079866341431984228713839887968619147882615871138993951903923929267746863396733116550858766667936659779715706543252694098646432506245165975566801440078017387253188379563047357755079339447550990655503369925862119510426803824811128655091852464479974070246417774346747973914055336417301571131690656632867349557954622541811283752998505255181469618689256001126070020228968067726440069394022433435585632734161615353948788309679015866290484484965049464047604062593128027068190298002769389339599222924533182745142650350787463639426384611808084015882109946033389415972951229374784166311277884781583264673251998635347592644255420618706082151341664535981046384815554195157515823304575985576109670806869543154779641851709346367548786487941288710685169543244649544646944497973019423745971102169767330359657996821024569408099355981047682183905820061470051560415331266364921768166812023300859190839247011283926902883883536197258332833970465206174769381492018275693653944428419159384467496959809543362523523679694894833562364788083655024825318738047096308503600107802519432125811268323559095779097214731992201449860028994330842657253986821101151016943159622142053151241333417271265531065502150548270488459705529875353469168757509209732622288190498090421011649753257747021730883850721839751103841490507392572663466759803732804197151055686212430488349663239702270523498250967518848069724788627823397554158824042274448205602461701457602168018537026472102539023474218058435228512507167783010243888241923224932785630102569022498435198697744927089320371879732317614009918653480047562872320564938900089734605970499911242632961843219441784725912292640452678848642820224286009086780172558894092682121423497521740328011193383871098781260534201799398006978420620274477359939139356555277013388440972505080274654693221349150513328234390628110823143068464455474540896532647947524834598772345331256679015727366698683660439731563742714855731729733437541235499076179112732235989860536975453713024345262334802867044296686309246326154152143206667484838805099253223680063144281047133430536715017943637306209461820334375530929032143196081428908937482512055177007704099167775730564494983089950325122735247569808494376935037687040766860637568043300066275194197581528264938374033887097966056013435290119029636438330065826870980800902063825190258342899361654565099022116926987367876032606003657289005936128301922687656013373709906985810300725166156620586165965212543661923260761229920661231875586823001949699266752888600811353108169238212569958592052884847942799713291319862684795492001592557697431359009239295932141061315170865871942348433907947103987220633919216890835766425096700142900333707394931793066144635407812491184487548943473063203827988823291645199333769250464055038660786758346244828056439333170069872994399704118015370292500240525472181010144989894317488454958971167153967313488784309419599077246462490344994876564525017567427600966432806616444789001320916612407451917112480348760176432469928774856272316678573249890362185246315140829346993411176867206953645092480817903954430275808094829540199206820058955185453115509902205999030600159176840750709261870510992667934100859084076969918143117943313923499652782926148216794452055278504614958139410383841718368928302331683939483255935445483064691916008456380585822421178266592101364463800217071226658307548860375251258445050536030250452824992922537288376951628294682486458158840378867542757783763701686400729664385014176893957056648175082123004559639964758876741312366239523827244735741908188867260457975375303149763985520916728270961233396462094729167538137212886014590567926021920742345997005891558759575617022367461912332560447216241524276729897801949336944831010251243847877702117226559551326983949392186315102355184153487380140283891785979402175761111024874640187700427620588989980001367843937659692654095109442885167701150452651642140373961006418024626932605077657593414923917692913027954207590563612553687315316288628223707470580434938607552485613336259930502612371621445243965218176002350738446920839673986406531709914694925527468838457815788272820247955139447439268379074672687308989155611952673353532065512010121721782626995988925525768704450951388276359053821066777461677993872449561004422045019134161684855456816604118954403372454730869146765647169184591526903043167448304853129855367464810242990453349699107837059312775334589032289600272949096632053813160730363302891047507261174557836917887348564785945956929362303133207096061927046895964097458700490832019932189769434761906981653361621696620796123853328228329543030337692680216043808948967076064617680600838209017101683919481995767927887055879210689731457394313897343663544610010845877959942515638412681884809099555694480109227017245875722355303783837625812061237756578323205654081726636832544836655603411911778381634647127834180046598674690547211315893947208016975512539233972411147615353030094571916707868469151689874886391808471785501850898823692662140180630775393334258298237045705548376862961534081268167463511678626623592042755519777696951315906540016691793984790828340210079793048001845199769788340724324993772897660010186420416690496080677446328967378917843556935620823627127283529374145767919622108660496039709582820485860147964900038045948576329247547781775082525115084536507634127929304657041748073494691141428275663579553582075990996785499692900718716899363650774888754651584369213565447532118536504506902279878104237363542869553305805794387394958978584497414769134857376301570902506196989581798815780954447830270438492238941303417741898849229446235328250805507051000808165567468184018108808986727924607458202405568679194429310896654345946871704667779301403698171258549061304753762032616641593762039377884884965612778930548120765009176439069757307044946010245847073182900515010186903724163911928413771924104816605567975783855859360804586072409506134643360462203667719685052778609556067677070325397174425372136993175574617955627888052216467462981126309373486868534291208178513868604767708145871243655057201505557993499617813564312451811136303314741621790429543865982587571366328500799346642914013785957675673874191918191088438219464411822917721573292361172079264010357061943826763718300184798305821692351446672056396504891075433944598343132483707329657905489990696819472768397060378440485620653144552424011485761972643500321804759874810402617195425087951469774828514450459233294842547004379465049042185002388460468333466678971629014327118691788274525595092769237853300758956606718541555431210840677209784241993389879817342195390327489560456347007892538514157020930874131861097632852836234756083480499377006150781761935341060855859671870912799350630571552448664234207244241692764716551341819311481960590249563162176165392484924808553180874444013798800861530962273101629595832429569979111373058371255168126408516528113212201749492098437426577429944870787641621686369582594193102634074831920360688137921262534933974062595722459993989144175842776970135999440473460270933358125861923065259252380617033802987959344089265417691474729622686953760757210460476885837828704821517824170600164915020143858833581013594449744377029953033127301872487463577444536904418311822324089203168895759565952771345417416276632614707468823811116573108030278368219443688304043072049903126931236318042960884640883035513365579052563669301086753527749544315457665833785460469807657548089497940379089616606132321545896908370745822408359993452583479067809290879723524933704410514100705573049542495523091419262033734259194896655563011315944357906633702793501056725389185307393164464065227190069238765099370370996813065769207544186839248641808946902397680010426157402121244631362686410664294589757282813456388025987132213065779430664483213764956008310932084829872657779046574062940908087634340555906059386455445303574357944051677364798759438295085498240165057096918874560746041349044648663117058721982893944681813638024553382661233182465961548621064035753546445549430259731326032703744388544194262846419533003128024814112042173337000200787319611522322905377075651957423715745309336846314291835935954442189700896224839248199974211229348801792261156784163028323490516572508427627915855568213905058817510796148613186526849890988453716287301986363733132913748985656257858483837744776516718516920083370824029287151266638411179543233988799639989820245350415919537223074264679261582486266990227979977944891119253805735216293138002702534059356790749268072447428459393506707685685435261151888669725460756174841459956361366409084153468004118359360765606500213865010840241069271354662503112910757341119447596674979401276367278768024537703006013048677602944429216777585352533732462512313771468727494530339390401852658159528671229629932774062835389811971019986052782331695413696439338907544625025152405728742904539115316687537974738156618733253533727974800657639300205568384253244211238468729017328412320736215176153540069674168125047169225107676182628358619164218217396427540760178086734129086641315356566791810308229630009277557210272505705602594360601269140915946548283221268250029481485192692025680259430263494286708906074230779072212713566955291808648357062561115006519237144948681565004449932509326229041749646433457204190014443472036204686977855807327535544642929030203864322269427306387720219744516727125380508090868169847845337396444461017401537507956536924689995236074057278603602268393292642220427140691833633123174352765470636836706248854492203867889107422112029174474432118257016155038870806951491315201167087282736908767583422743935100099946674438451021812582982431183258198542752243858827256668150589345151062751098849331843802618673121068263889702150588348974432145953697675938903801298050687153604117018928018285597260139413952064108495737793316658096279840498689504508377840149494487811833968307829990887026942566230087597238893603153818291218987254583442953065062418491833328830027598514554278282636384714826626814544948159049025909636694875636375621238657995823795400142774698787330230151053775313342552896459583181767954493991685385212917102314449550971435477897221240923033770919731935852869242362438833133072563793314528828695281441192025817228561589462524928591330076590926678220115347979051766296104438202131632464513839014219656812722137394760288137730808196057683289970484734065552879207500502227694913918863683597225852959090913284803474788068629711743003114857275498596289554787650743269320002165961718756380662332221518055709179257314005564201753659193116447740176100911051879444345461266038881001172130686714712968358021727558618482404303809426631058310494042587205380729924294279429803425675921765362056903207136002374630030433509525194165948663310793202147492296979214464303421887213699710602077350911116194844737075569750487281342021993695776496774200867190813872770561821230819390877631295544932020944344410461085195261574618559971061961676763408246487565832875589417281651004252848064970769805775954152076070430196661604684185232517266266417425556704501280464113983975225563258271138591048920140871570130603050712717974995294393936850549844768462647017631274230395018838458472042817606384173756812481725139362236228694852039424289515733708588969337117534832702685144846007365287231780984777103082298419206171724138461670133612401960437866107161689932043060681361791532419468331951717204027040882375330963181761358931734712726763633178303389410906875679252942205009689873967219982648461726549971399828996954279301455716981860258212761793318034143759180275366254250921938466399731584618722912260145997154933955855524232639870159104744047251677548967962780140978186122824360577136820078290764249386409267842492777360596093306154634848129513474472069944366989570352531382806572914403652299137184751240277295562779802593225683350164582830379275664378405730766031824187972151872355878971440755564328236272245799154424656683368536777897260201644235552603478508484251676901658488417552709090456789129200290345536616480673552884189299392442965967561445994484847040777921802656226281042201856695967897724224163483445001944218488431277098134342592447485469166028745995550596671274577239430536574346475019371105697026006283351660144101055385800973286515135981287642999011333640156015303813939007321186523764133031746908859333531131122178723374352699791153556338854305010514559200266250680770063526575233789565944602898200132240595574828572868506950280909537490753491561250408402178789078550670893360914925451733515436923000793011656462003637169743308393395452039571576251840662084263438384911456044233909481362456143507209693766352522479341473445930415821105657733426105768932282904158497126698935607821544273294215350053933125235302266440793011289863318826379244968778210347273441533003119552206478591936375181133827485474305505627087173478402806636281911434178708064383997603905798060850511989073115296128926520571133125728965238114645138260191385206703423201624452393216278842120698251845621735568353481487421292684810431047695377903391988199628800036147787327307693953131985745835628971399150810035324084262274372534376493592616300367226796423620847049030632092200348757981788846767007327743430018212365049607183090355697490835859498466504903264833437050343783108356926385857046286070785658216804878511340083948042201724190663058103798534875311381612891092019218983142999297036321912656652783041354718766664129253099115033211819597911943745763847917908308253589860342769809359965133327187870476733941954187372974137847326669172719789073758393016078196828612310534644261685123594899771137825180125599371804450067972738958030648612214630786946197977992446426338757091551638875944195143785978226438661065363440347260579893903193084775701820561649380265679213453873114431249716509471935899364926358520444487133349989294101768826672773044878927813615139622686496721647240004223061266332823014871710195763155121779422870461257498951189288445183711456215432373233727877715587607845185781232677973366017328003123999632411705581412201178794575221759401981317781501198608585442498477038618151741415674404590756532777626966122073165302063620187580870973795645755237027912119184490185262686462341822145105799682034274055343622524982754063450847089482693636946239186510976498252408575558744579326718740334021596760373863897842061713980313078167681655660886020017801746618072543368424844398943500110843159027074965093732059847458909320207052967690436966180198440016614090636048332003554176006156299948292293314659082972842249559131068916980022986106614314109297748993019100339242789113140488807636549925538187244265780078964675360503864390323322137116176473103988178578168321381699881097991045007864524858925804869580133851469345759584677249693967042938223096947710251378901843632675225337317009299866980351084228371112676415870098592868123983292915045640269165495110883510809371540233636187129792260733636915971889266112061990189795776844436375764920864233774123212425328301171308812008372950052893049991847092137766391977120013244926525164843878729648290620459752959743208857359929128284139637319748431346606120266192689548101919135782591834893911009092249181129540829243237133849927015762133096506048002032148019507250607422105546720818121771154139132904479816113719564237139469153655483745804338658119206341359658327443005935362115952837781173868400260306371967203207220759859385699099787297730107799997814741634473920479567828221255097942674080995545422219855795277292819904048588652886945166080796677460825528416333630879555265736742071983429289468441964450839070918476743926749839539636798439075368440839067628089770174277071922949552358304391768963903951081223187829924340263557053129868306416903454762598768436499345514516985955813127357193935567138830743536157167705846829196866814258680620629459055037980537172732981718234205647821626710349302600375443293393677582973264731483455251500846722849085210790551104201958872475438226472527888910422000845605780225768120030841854745264292113662296231215098585066396545829313007480718843479926143055786798447127274046166047962403253369554131093721228971241346010207782856824967161230413583929908904351064027641944328776899066266120858678466049393288978337158251600857911069174612345552471741752619664483627405067699175332225709161121229641929185627446490619049754019553454110557031346023806702327838111203982753970841139558845080429904022247475866817210140016859861737323120594598944652050895098599167103818328147505038293131128309056231806690401747605379968038111117083029071041729435544058806812678427739877104411840527788459920322436620368339119004811009100910071357495780878989108121380225212971559000578672866752853694893938346563757752980677890368315037407549430840015728771131694615336352664082777904271989983226154132992876011917736599044110561717669330227609998000456700901069073785734474943377764005852270483294206648941124064019842676929603159510989636155616914313634760002630959295192996421636187359363121680951741579246032019169054372117528251885428506365072721321819867414202497575671946958687185614625726080280309442356754676000283837167679252133032908577873583807016392362942432818160749529933699773115849414455884482377899519035045728048336672263998510450025818375165984530313808874215162569818078095457329534471047953762955683968831837003096404235764934482538722649069588508539205259855191168370414320962591941886529087898192575159107651813831290388540459951431305467413614731420108550407402718171041703723562263253368559141383737907788874479642001111474767279794794518966538466907595285233497256632543991947820676043606206699734185228701909494509584813665950052972722239690762063949040947922895740010375884144582283299931060570036019807067874338016076429292233384165873189758891455358746481660913723790067856181864594728515811065991202511901652978099418043392718259858434430603378037554045613604930734040181076062959803432004048950681214252524156127998046042236776508289545552335927720972226452707551441664073478421557654384845205623076690216421752378277707984882925616221779316253609762743623699066316412159964805518039744459411932334575033509969904386394789401902471554109408803584632287464053254067550730248416313927321040986262314650977119048666519398284415447231866270263332170195470792609347203043213515109508612479762906647016213165705786869399997098668592878267911712310992966017242972520201220082370914603935179521338238527608555194764465662203600976233179123907997617600273202787673011952285685209991755056470785455309571938636725245158992805178433188234214871101693977127249724208482840145904604427363636810799141761312165770540570148818230416837211610098728762406822431705567820314176149382189036593385952782731709992218550094394346610364421211839728357155259470435214607499882585848839475138207092494839311216449340113005754645338995353425062726660244154433802299871080128715905693708927825550615169098362345494882748624434696267827812679169971335072183403487912448045356187122520707480573648538279926283939227046027929190246415243103899331664044180745925716271067837183285676130421879571114353334175413212098526144123144660927233175288841587635046979132544988086167612327523435768907575195811571592603705278085911589118895097193842215980353047898691650142445779958934645057087126024606967235137606259520200247076776994940049243703858434746614206767101596563157155399587251843521832407434528249346384937874493928640548088209667936000333526517246036141437897600831635702752329923722380369111238935322843241130506058717422180203524352118250278093339368916365582437386554376269830184251265690791856505005181588115959677401004564494414182913162421286795954127973682472388151277497470593991297653194042181091555883891783608016197500857177909916449385271523093006927932731209745308192882211735715000443182072798141690756892221381687233504398909511215357756460038270685897694703687140512210937969017224041125097722315578466006818334828946759602127811525687600998678557029859078052307314034253636217939313977248416603863037293022129580719994210197630109917468503699443444420953721494762782301953109970566618990478336312969791541372301249110179864887843335725900446304913176790946173398985486489104201531530619437366040520688849045544350010351926133122732854009426914479055722780012040957182865099187737103374081867752923286735001880183846839760265457557950966358234835073578259866812778114104894150590237580232777537601049283517379560595181358604032147146747984085253546053037830134687507390635651674194917813929749437506875797825947425310979078473401847791311925714663587284354137855707995544135288954288077740087408397887323414512790044473404717247444047445388586554065675111968263547343794981009795968207816637999753980642827692269041960035454933177391849659802000705926686271547544636843493035128841628395749577490539232996653396670222769025626651263871301942093792506118059874128960368509709632396676290760986923856628674870315141486201771789442279339854827145096372760773561353056788262388704644223123937717737152082701862078733768880943299460136074270198925074249780217358560501716921166229557279613511379012345640656432238899445754761874296853025597581164705411439661275229135377225109890961991720646099185071905153893314965119812946898130296526601687499683261177008904345304173049737535426961003432018582387041098966068567119653009674015090523525078821914123034616978540007795672443337595649845371209000823149447922409597664151246407119403076426922035421497788827469374258806010224734313571058747847608656479266278668767688084710745100460307364523029971547604743010247948943259893055023622879123304188083060449645264001271700180793062385270161133359246248068394550529508333387648321307385706355744621887222646607331471473173535210200576513338898556710469947000670424331771122811613827235260811488458901898476761703555787076705693731657919349777405270343062727084160713695521655094778013852072193526176556785414746743753009216075222041334154570406766301434678139079958353968249537852851392007280514017623157662708682123496930980689664362494311284775130087824850348495029426419778548259007625165103272244048666353329828430567478559850296400430938818907264618154007573029202966319603995533376987856876851134452566815745633033541805290727786107203552026691347780553455686110622354533037203986336546579817213111827414670621543496466571326753859009125330169173024869357070206003931332196408942651358350842723359087328976351232257878287488360952600347066836260794227025648938326958773369675443907014268896742424127127975953463462381947816218738613407912228191669178525647451383534130112436670457508823823570424306395957671314461757320701373016248810666909828664314965763777009141471949347459871829439129012290862908219468193975851401359577655170268937715575987699353220194201811955578565850369094228455940786748591862317781069199305902402865548875820841611798974897463819904206589563513752065351506268395514319093187088462585293417207362681779743225106828978302180507274103082574165504620276195610729198855060440110806201145534052641055309043385718675590387954607748189207411687380716488119193575688666179774240832558871717488128391228267537642646025775379121256156833685050148008865019851042565927970045117434952113237668394256685078327908194766975951588840546006501078116026334895421238076001357344749892624577782867400800671573735366070373941077753950723935670776861856751114870111379930419882150615035888650273813051805545391995735734648746067286843427517000352893749490651017947538747471458581651091631366098854429725929201931335932166540765286466355020966975942025067455140470838711936395403747547701156809762571970016945187235727135658102665473751650110664176950724133887150624709416368221126385523071327538742168990380719059048257590340599648918947131347162362718740662917617116528932867082130933959800105103113064775599977708792952715928679002851756510596357622513267439991005556410612022813636945242141649959874502837399363188683172904998269151361924316217050618812411618726298941583802640764258389542250586629502440696324803024282588404828074322799824975456747089825217339859995617034165612562946832173737835961909869311460193415798368790381670957684795821260883605022333874506522969978501882063851779511913339349520661913518442541445157994300988531310804137203050508198391908759195262790982642715659795622286152467417335496201343814722756295103515795766686131440153496031969353240865996123467265306060270353370414414833814784030982796095868410099280220173806006549659789073502267224710580350910030430032775899371464678558750015221356659038189126167019740800482486840534956578500753973255509630703102665479009328378849423888992313990942050001849243625081779969241165900922906387836146270713205515016816312605439590564226167049334585196790132944940883135518121398385075082024190585048905955638482114673531687694214078277413063971394298425990384547635676367834878790733701238672195067532946104583944196386339209119423828405418750895437083428222434956878643773577034698575272849366315233122230859570111762727867630492994024461701780188474962505148436765801346727453028951036936896178421545387799490242701047711918851806804724924885566624241993020922044124544724887076568834865446182968858413898413162178390730541228585643861649701764939624179897504896474399798177483730413051193661942244543133141154776784145714884742230233480785210188347947383078068004756519152427311731663366965732483118831621864211628975428802230647757821290977880049893197558593053600307279958376861967842327226075262549645530763836495265053266061478200725028115468356285577770732189081130846527072876664791713452664290927484915963651170841757917223970871646443623709509212336127405954291996499269789902114501241675578168933568414165177422312066491052541284173621130539229614281904688784042167554009925607388894183936883613539089137231726873721384227374459820149007721303324061454651206939134479145634910425423482212990737925467996581381354478616978967131222002384555860090599103575787722856527184279751289856764497939311619271231186507927256650608808837174311953249117108273111319050187033655247289797427912904647291806461486736973945035895457393219417396375875385650542403309216042721631257893008576372928746464467386334449905336921009382081902515629210643414745848415490339681591050825902623995545245059465353891476903513239174242099024359487004648857915940715708083511725219688365367784350562342690793737171091698244498857770470144188750444154146744004540424094263430786614771813099752704961594186728569405861499256070217694299313337298072845993041866113126359750765132410126766952499332006159310780371868778631622395946924556796629307610886780391574892515030841298537332999689004563459578075410644143196754741270394045261169104379320073860978325706660028893052347201479880128969445073643541945448286028913502733153680641731660519702336169673153476459795157518220495053550923266291168134833527561172908228296141279025983727873242470703023406516275456837432472089068127655361362771402184152291631561473691504928227257593906809379520730614551956250119591263606707055150019976110300131787583543414460641399669789974760898538031847607767975765483687305377475244974577021603106623886853443088035176271273834126795135778801303819082333679164235274554914077475086550081041823120073256938685387853309928902223898608397543158239882275315157663259097001643749895653933681284566703635700766566813050584612394799047892511416337687373890262348384581733736457449574767041661484720517243805246241341405807295293837689787384500342707343103259111487889880222390485596234635286182424644849873055483728169872255544736866333736465320495937122543905770928616187934979653723505434853614712212796620660250080247343957959142384243667072673227468398038776351595527290234608313210635807960236222806979509369102755177169392402821943470156279105385254709673969252796684345366261990722507607707557430006113293844624587707262295160140867830290490649491233794945070657390545634402400712217004408787796901700288988108209905953693278956130855626221537426891818073735648657011733163638789599115062019316183495866181993918401085260404528775334235727669152310665879963741367914278116922903940186625003791585151356859707194657558827523757088038515957685899985360157553462818837117854123434779573008139687408450611666355272759363993484762699959949530711833633670901635077489981307696907850409329161813192922318898248243840811726930396734075488616389594280735182009627436628159606584177477171960402888285097741623553002335614410309529739194873855683641148017690652909297122510080036880449454874887351723288567367636605786898586645967847791301610396902641169709616069600745833011617445958334766456439294089486704973078786666457624681057841588567848549594570764898922057426425939162366643099569894127682143231248239119417249808776214689813489142599755301440485887281824961338208580932147691759722987459783403890745539447340697936538895718341442488516396057103537588385984984049802870424745451326974433917494415602009010797031801659291753408698914523971294598344525998476729075448639990358534948609778166848122495057528659218028441876108249608160699874764627953937169976106430496918935690597902520971662616311535513665482473342266282835409391910993695584481784026150670323639504926495271346442128673582410840678137098244998092945841726339820090845777878722988143555148234007880765792256096590372375103851396274701351565049459302619516251527998329426232566991172766192217168383569976537269388594769128294891399871186005903261932913624096911662917970857765709463365427139933490109277605703866979085603229961529879284923605338447890599441248620261848605506341713831484601286484172731967796400091202793766695982501418525605872351349717291013731314164373035539526134101836150918957011145709633888225432860164832011789800596783030408429247771447395613484104587817402694528123946389158012852725263308701561888375954977762052756748447816824703696379797231211390176985541847956811215654803885496141547540048975131258413556400423344633983916290779631839565690951773077821215895254590639564589624890582349743995103169848835880540037844437701211427926433018083435728275311400191769018870560000256470103105866098431158655097455478840870345792730619507033167869707058988089063010664860770083352356346583553570155077693973240348839888961767049911243439894229519352522857480125393817557184173438902398614609905558952423935407895430764272910675644904528661370226833945008363438473766533396947906508279148796207070595216078054482504842918162822115449250642379706470341767463311935577179606957719160593747857097018114460145054394838721032625769156479612033761296163458141105373319118340251692264903231635545326199964495295992727061486195153491496523703818113434455013472323327074476955396356489271092660863319467768779676337725497627160282687184915617927553311139226001030870452465718968227663489439295072189624128592269435577155718785411978189468166956582580749923311618065416276082280921667950962941478754900507615559638888322532276933004380122688794693946416446443860323867299338486532920161013370657208216283537370516094089525178305960206161766355533443628990058380307980849435414248712159550482958520620654914544066791082638877819018804747211743370557026036420772743457732455262428236658072344600930545051105486666969878563123027994675043478493488150489097991169787475210735088261648125522055559291955935555390156700748032431846856498008046539613409334155015045931687631665562822566765689559458035666010629955595472560365544733039094922879142012578149837208983809590493481210198944518277675098676366587102137945317211904900893322725925654266339650973543918152499258788507472156726800796421454984641594495549152874924640010404275166002644659727452105556465373655185242462031803242827181235338534257761574195140739185805441192050048724991231342638088638021840409399523428017322663342186070773514596451170733747322755596698855950012028241071601717100628167462088050008465792237986761411648388801208891442151621802556706859271043183604193064330421411343511257894389644823321109113950304357295630307248055356801802465890842500397554740776080759637842369052861436132834475123966812380930858702519786370965396885904721783556758545393023222439999600805803390452818536477513072785420027290726402573745255947716203951510186002242994294512549948017839939518794709067779946879903089994532229745820164597442614744101384763871612710259590987061974953960469286150166384946244185148079642913203191269324613468991439879219586214939535143370161643974023392219558734632537567940739626261506460069293980855261418979048329236269428916672125115299526928153839563880495412859305680545782209705678365273793296480201433484562558645465374916153009960290959119661499979244014300081046022628724699537512151068078786178151073171079897146957259474550384793295488030590178903741107721983475792596925234460195905641563608236080849789042133559207828663160585688497893736118512830470204836282714003428390179946276407976077115349504835956507567076946949283505704245925910640829180483774070663123680933277168256926844077485559652345515163550019067515761741779769762746702997358257034691932132279083303066361998553084491626305692560755633187587141553943293502973552903227122856348579219788320778591821214960255551361445618258721044569828739084348306600311940632972492195673222549296218177468314608096697793034973602068304302488630203533127744297659651480995323929220269830332542321137853601701865226731400047597457360659265925617880429857399489946636952052973212362062712612795332084733312942342482886991620934019768236518669045579448523771852521051181249127489805110244356994564218442903993411951108937453826331813013285562838502248304603743750514490790791868712079337526142791999764094592813953380394281498752141374835311125632623776186998019990570376736121640476262721621930769754616711670322917285125632388687601352993214486692856779641878156301708460554669832930773771790035910151880794862175038057522579685588215484586569520327315273323631937677538357395374996153557099095642905673878521967508671615845722054325501454128224220564706603411449019661191969069369798702532499134321588738591680356041964090052290310801961050815579808854394802883940090455525265781720757053987821065878847163841119427211074196152931009939891642656076442912551133238875376966755275332706747646708193536562604504148951867307391407777420871330495221377765815087228792653971527996508366155800217705810393850417136545201479038581619801404432752472066244408819809828183877474291957925876184875362513800568724308419434308319398525195422358536637985817373575112581227757812638727169779024781624424530093585431688308195900028735682835674300204407142297231924883605895177752305722381813716522992777884217664951258463184562690237587778224823674855283183398041804047424774901077015250094354362919388245587543044336232781987301360153912438173554666429199060672666567108879093435305073973761723750028580601005660940365164398709133067380195347962325745159005230336769185385823547143460875748679961054700809510262949405721498469859497614489855427750526129887285245665511835333052369806309445003829191622983675544060659795551228536175826344857389437018861246842869555200449009758963935938546202804399836693662145514084330060824683445490931483483485306910772392673736683029534247106537470801820706141877320757662878357550211147668011230233574404098602318442302733946298634626787060840781417503738248253413126330596187414651854993323978909072045571602993893528053764897111694799359848795468737019714838513032742524592052559471042411725151568326594044778624284193102473863338102107146325920732993279524043790135660208053461809481366699878962737549605439135100541086489565364380585727276133437306065352110459685932369828850200292975666401401177941809330236184906360681653139111946485391254142975469252595662813435527337709171556561522089143875729302276577215344259970623499572326951689767156613186403465561386136290040076279293572331008647520596845758459146867077665312246138317677539083520223053631812932298336081001387010644672373350143292963901074096819485179081186583450020981688544905825135910119611984771171213995852729704181999270663596768097606598947358329540820818530261618320395630974490910278037172643273706972695812690722883785968094992739099445133585166257466691007460660369745101619830449476465627618965370175266930519547102950059695718087838487167811582258498848837892458542456561393080457552929855542646241803439668594048414124651441552989622660035756709675764281110386998351316268245326631622656454454192828760828791879131271558427330728237080563341184315874873452425397939590576417597927044916659775317131197929060475361711365849418546071161480407480895732493701199192967282944518301559569291291612364363073944074472029760437703441539696024760375423167188648228893270676007806116133294330087165326976256832364104595094470609324660997741072744404184762331652179232870636298981251423969632157035495787679575638000072101224988003559319916477181847595570101133267282707282654600736392044943742426728473570826132810792592537976509189487309553686718919335550015392312470585209854962544362676609193518645338611124976423789741672241037708516142267861578729029985669196560125516973845279979673555875866920445683547346685566690415264648661587816060959983836728616634342730195352542004240125515401219092974311055228253647763491464185126616606322499546306713302076153762574285386255685179915284220328280278368833777266914262919219266200395802967568782369339767304439329419455639011684956701936525674197080956223278419808293214228332054077817175326767362707972739712227740404983363594631856018473155858595170005869587104095743370490623569181544505963961830723782669245923249922940686194458714771984360070928917948551925662545075228194566871388237865537288091872833727978051787738226449862133102948416059896382123941801886630072054699164469200967656433846687932573769153901320854391820105782481099539607081081890441234863961290063778639178686254990213766871254231735343846276494958606338241459526263713425135251898867464088509172170648055175837022221070798915167430091520511580931546037737560678975880072242125555202331874269015087996571129121447451699238476647121714545566952866339463310469449721994774554477501319482727547004122943515898790054310550284862971051499885228425985686120875875344194437609339541685785326590520684348846921491941682646814194064002340506155016602037347007637834934862025322963366129599704066923657325490289065179673966944658258990358777287457939180705647677882138409030349818208482614616806924386302923121587096693062536199095938102930421303399636696313376276493579808439080155916058464808752351943894739339731341601149363758166483530489456499528507343787264674053580048775300958746364655772851937845909121744069141721241264480462374135608133026620741704151877033887247591792424038676682178058255061913386470660023112365956984003644809396112207139071519998897573466604251095967454214593135182299818047729658381034566136920037648173962765294826089839016609680445015416089502748560118281964520473923019355702677310904417905287105589879895531903819414241670902312883349912820062861234750147276942107516203510142102359285349155224703359882356429598070721645726213627310330622849231211344097201051768849614932420421431906984150264741386642783592760605528668006168761612248911471786122349210432447152082834370609289723909637420029981344535793748885341697389216392406180567039242574246066066161068612246307254019210355401600510006972962238646003774670808228394262440902118235478886273415280996812766342450368290613033840108879744168529874723662948866194878184399564390030215472551753769737671862076532094005510896282810994325428193048943144518934679217483532857824436507730446577392970954682070994997330302966147147610431011552840028289250286186558301029862141043527535193517729972810054256804937978376697830161394110161198580910870680658292068878059929219733433430039704328169899719998298197269420912034565965184625667411466885694309819037922475342532593869716452662408729771806505286165196396066294380246063968540010080151493396357838556921811107949892563620274563842793794148866516637826616043221789016687815002137502344589404972471998620874502505322072575068217483114955517122820424330196101901068907122148987273850113333540069782520869166516083903485576964078118920614257280151802711532366769925881445294231765382356249957800147365492934302928105538368513803606707981508228693367307893770694169140115873861638274573082018569575919733779607947114263394986015670158084844125921379717118954073141806459745677385916907894502567072083761284652303792469867174137217712133141594294759460843299045114082101030002535206134229982352606814399749518838658709380298848841213402860630374845125374763228817580961443844196671081549304472414472846805620246347351615109932295016343517192827777126559795899665009016523393908926226659073927972292882615477818116180493025664718664811420157713466879520477329863078278302234454334037790886816220509195417004779455703575194218092128135121976029430263216372460903207616386588679412054239490101513852342412496343556197089870943867466947299682714187706900438835722051896574913835710783205508972211214605606184544409204613699729677535589987838161938198776153656720716133600892676600639338011104654391872666651144386681823550096830198970250142191573704647672199021975734831552647801535252712405315356592871002563261369617942117333823670796051236443875774412581896749615588373153675333759958607985734577094507713512097060571151766694557324330750339927637186434254693325955812880199094621374859854286764432188444020965227927026305271779542788613680143759228463279396783697475349955908681260987995326712208477823999239339345957252073275427279946409814287333906217346223259170069077248343894785204054073620209983882216026190763133967641764196888767315970604107963182892405851829796317282659272809304825494353276053816182127401478374058989991049244067684676093193412596226345100415868142628348580918318467198511665899121385035225963777379069216725914506223975532194524541275585759263291208606549665016339352200662406928262950871055024581813851353774610689245023754052114113368375854758454621671950226282576953331862844302834682115562004398986294651330532657859275641618122649717273032188731943117059845625774552796943156577068750716938584808291402004161128555342262396019535107277910722678998650188528934735345635665191656357175619350246354543335928752967852071310769171130402390649966044182374814131570570814246359003378447440023759451598052266293817553387844385582317978444782563660786587534910922561370061302960036022387539756375914904705407382602282279011843187855264658390882176468591298978851156371426742239783461264151616030360460342315045790959333454922095538857764251918603156192650838582427136208323591686190129852263477272788000864263185085925219982516744022193544926341324335959116632099820534721848710267669261804800773594962476267701186620553982227471110445246880981235997068100817432187541713076948810380777292487236133353901804082565233506740168003473128950280514740635519074834086068816178896552397155868328313313820834164265346373880645851239714982611434105883436569172809299521422381416516448803927100375186645057684553638921993791176038899493488190190843858856427639935705492610991897296215223486707494620174140138158911512945367345882824270348976319762758190346907506086570364721314998473694798654330959816879155069948422975201799197351745461182474537166648089872156635545409712414899153768649050161499626671991991132077609399034377127404677536746956552138449620895087302545447939476486640501414173800108869743884394327528135410013510978811314563784534915125326155886817075108294083904172496408643638853284385052274664681300190681473187510853625923622464046023100034551055465471131563914483127407790628620005602009677155736682520681509378346756596267799449024936346597484316580922851044674323107896343867549342279239746778543622464527538519876971737752655290625718322971244668007383173724660172181411495479162131690393689570198636190329487073657736498117326665362141985063175245406399665867886398489135890053187182739165000344544936435549726925188090780777600278987987433415565606839993857307675628336870081608711483463939884349563208676890343134611304054354323688989642956118103867756950394631152659250950313541280135169185234663447952192913050196236369689233844547772490087109181957975601523934250706356992241828365109582972586601663549089801665607784198741232416565604157083903597318804849039572212791091757224298206698129979983594966735018826046740982640648721175642145040169876957798673345334258809553704689937867970730791234954537601044687940168143165990408248396240039630990751193539765858637784660338583520929619973037185175204579979868652690920588019373522907793717357005272814209146748310219954418872220090814798225134911119396966321043032469726249301254975816084643682066242523508299075207622228281101958455153036571257422908706587117194371358712790373813265370481569956293542136469427875703608715511058985798068185300971799422974377643760697098779076210239128706931118257163801171177433281662174313006509368058182889512455756489249690652486688079649690866001716471357842845599977377328930979283035428533482547981311244598220206299179833786903783318068266408803214414197267955664333106491220780946590080370321457342366065221173390808497068297327777377092944761437608223050381751926630335186138584618783481858966280352317579584247195230538907008926920556387184860390167260797745415066388707251324483172183568497434779958765277219013889390676166612511782127145265322431171592057624339403676440119293567533989402166730932849268733973627241349638324586884445874389004009009616301780341370257555241958738089043561777307691083119020073647561053002439626078278054336208214226318434376697948461784832658116264757743459113814893497220611907998818702361747659844268383947026845932974017482672880206189679412421702642648070079322443133596201793267305093238603040009271544688222654512673889654718570574682810528626927635658970012868442164115846626000078525758390087940159465159259687255836969154800039505918106680613400427391093605981492184145180166909622986383330888007959279136783350254540298096120079973706522906697142399481955507494445668505753145865287024790197042139376282843491080122425619907607724667744126809127984028483471869942043809715227787069118140967136989297038310256490724907511750919364485721889607675048344647665749523840454548593903776317245835730321652729380375465527143810801616204149687419144577409076097253286744075870945013465530440062592857012301288367912015122151748944384910642448415237795788788805276429055387147980498172487996525194080085468543774383461926280846946879711537260849536329396518647069868174477454247152715103661127679995053238080983556310224296107636856326007326416164795943490500779108133754050197306723038481008100731670137201132059472692923923490085082579870674962968807931778195371120478974925876091798766659784178828325010764561438230103943572312228752298200688106283022116192479207100976018716418391029509599927813821990046673207315812692503379979941743096019037725164554642182866871312792357228559102814867330037104913350962617823782387749856431506326126172654673093103137642099725736759250805681381072379229285446407910322752780887645261818677580441320359246670011720540998748933632222181353521092677822387648739541335765185534962264149126398802731193204571595585936378312401169175470084116308766829780345939693045539743145089509230169786132764957065579258465687140803651502555414394840511698411583017938529457578504524839795047064585987632816888560291831295666989240021664714078323058885067897892508271827785430496002217200812823245689998097940946736260028773926939102102774953305408627152299109678387477376211809069598729669303283099620880013598186193433533771344581893906655327775224675932600983666407305502626208937071757423216407496477456935169156415985936618622561331431765882252677459068363530839402106552754370605441983939621372325412440870556424696127550606104319914651861707547075874071421241712437375531249257650772909399093834614445939769083122653873757830351278167980473058973432235763090392376997208208501933882476316541117399804254010055882769976520060898855425825726897465441696127606804559966370577708885310392619753461864538076262319044516457975806943634320113501150234749040944992344372456806452740774402651535879790609948177798017467565298411001976193582156820457149310130919839172640387480162534336583685476590271925091273304548244545021912666610249988476359739454350320952455298850649770363999372928115014803874386078000928904151980460651107784652655308293144748885390293453179536306244266396911352676585512289176818031731524202106143551039183875446008737641435616257599742739747596910793634128544911168896691951979095832719890959515214808599673820057429338634663310645455662896530721029280955382446603474318557559751191837484474081857608287422860788509500398398051771610032001622179947398313028602983206060852964597527822518347352766549227826963232754518512366711999607116805255224430342704665921414281184019730019177281986779821588535079124931352335234603046513751671922781131214322953479606082685067350728983896203728913924598378779046814219777181835744121385016279101176005202080014990638953510711712498887063562631216668976011887762888726957269143092130228021393639294096248336106856773568456533690315460547888680583358008743051619420509458839492842545409886412613264693066962211508568228235784975097686512645627642748081091780298866300298032019745307486472811777896687665201667244884532776739473898030015932342787885435151607672030513738560192319247680348022380109047951762092539901808774416527456278358439787167286780878334180991102079964355426366870083367118723367417493316525829560015458518114933521387235325755006615108735181459690854896804333633370424092171925001088578191595311919790324863646233170152966283207583423848364712596574036911207542938381202422459011004269281702135612541320767497492701981949794111972209883906192549320443923023727737620812862403448545701425020183365856035359212797043995079295214363509415403816174086416493621638567558775383173753048719639811819958080171120171139666926161698211977073343565726651117227147271510261830350814079165534665672225146562545335823676825932666724743519750727893323060981818019962282471542512715011263473450317470473011728683955200730827624417444252106606841641845974464127783402922019577092583344371049750264514524865784610703146442017729877888263527987928469893581584072884318226490199261302567501126614122283765354099037929710665859312949828541928103807780682335190937079037395003830871493709127863685093908820309595489528943390754065556200104916519177027959798418909955799214905266646613177178262966799315906586467212250897617581829488685092795553789803698358324814622079404045890430416042884862756348032300857716576788022400406928196755171611663997599763437529793824807500028743229798357823731549213303758785567932334009752549419283583922502682479957521236076520984469001687804879104595057832114464901920064587919363925833806671257538989201166768873113654370834581280639769550306847140071855432187878120663520359282144132880645705361501202994609360960507460441607216841755079511876966550013684242425461220132083631143639221740927549134926419171409079982648990770545434596177022199081753459310532918387970827443411683230080370046017344519886062143247539716878998916968796095204784881498735497140716927271661432230768991397132022512566892390164496940319391923952453990773522784831836856835063148998585272208624882173081846097515550834184692009630498767223626157768872750292558972264505304244637550977746435926576373998279029732162525486494598961410626533864220954819744818778853126584564906523317726080963694675397688990353397173319069588386112760461301182869972892537306316641466590282632339216284267490339433944663992455848369849069702584180286613272911082865015763932208613496802616178059167362695582207377891021241883775734925056198455854487499998863244224509243255775130403294256127818634031674394553133758633070650379632720080244961376927318523976292603680909428082960851075312613496048608945745895484318069616399772904414644423967737350971175293216871707402388855761437957840769500075959137623297207155381228623252549109802743875748895231830712169789458190395362815816448434471912108061412074018078654930610266167002526181953128975250661829862961956727892146920376290913611451652416192590068949651296704732228238793014465529305895904396051986326228767765291016013065998281169486728083688804973977040971571261876294001885343172909823457675989817195207753227589003636749654886919041729458989894883609433118378260035832754735284392239599278636009282397253099944523448292189845569024520935665051702812636358068403802191396983127120928416961225300750314593680057251965667893613686031272914252960829572398697469509078299023873954247801275427048893876242735699452521129908001413011908438789126670661524033253668738056523521746571672388978482212463654514352325453433754348554333660096425922622854342514557235301560514201327805250594302205777454477835518331106895847183481598745676203774308649313193313003106332770356807445844933538866031903937974615129131191206702450837059449655637115022903293761232912170384358192730509698857904274688809479310426900700848007885950386163136677604262100799380184497195335520513538541486443338711805820443794570799656802682990785675926692787817908170264132143205470873274309876941072523585237528110184055814529119208445159286072116353702498872457552705519395555827947953478455926708487609513578180766953197657162783102207118718708527590844161634351829969910521889381576700815777358209668026587580119583314827927970122920877572217719358831205040000763199989175577564212779041315126094236402524991594165185548472254714456653750866459615181335701008355369258405825781822001866204432092976326728632760199740485619689620448655520115787419895462681024284851730900788386234632705204105728595811924641872278235275363414928284767221865066735382900466930821934686521149024017986310952694657073916978032640120793084540491933978303938081991707298317885513404037720664039085546714539660260567216388596589866310615941013614022400535712418407452978408599851720439622075551986874946021718662768545568621475437930138750495184394374668785507472609117435391836492660596609325376715253755558109514199734375663984983400441500485766005089020872847378763942591693896171692376677845257366247739207509454252422619448227298948888797560835928189891482280906164194882405437961100253931322375224159181547015530775567994254663353982588299888480951251463653157957755144307442911920198054205144870603317278331646249719388158731589224094940104428044353371488144847554396964993733296553754164169553799919897424654927237757589761918639302262622397077789244735410466627272224938837573181875041189928462536128833865031407077795809760677945740887786303601412665512024955884999531023810395024645542877657046677733118645475917605353725690067269178878561062941660138659267281661506649911970776354640880551802460708774330799940252245764228585277789885472854125043580527898432790251936342431701694155283883503099971209168966104355239663209743844987804780611368027083328366220198520262363240630675653136602541213366406925085910947651349644882495051141039052902244056224739433396889817999401990617045865829044364866815921060776234627060461301093466355193964403294941054198286949005207523268651644516752459484664434537140860833564689836898768847100996781289533142634649671805249535542438496118709731424469437651482809020668393216156027749920778726355785472027196286459594891930327528634599665260562723392341669753586383024727561180227686359518523280098423521118279340456718196640769613232713890232283042417756744673308107798473623104437302304993290804358573309284824301397406850245889540022654501528926757966699712795917360576168784129878659118643535290965782730243610453062983757118025027035269174505874155739725186478249568623082300708396076354945365543515514462758037163513053130325844795406831339948613276948051863389089561958225622246158919526894849213853140290061242008718456430176570052342352563659823205119947940962377396143021484019769848706480321014767776565060431556797992559728666012802263631904199159257988941655585724156323450291730017135951130434580086286409058330372173149510042417857260118583552992297795131425557825980434123483205617833918401260443776750034812264741326233515365659646491516585398851791614045054947573169002858441304768261891423416891811237903719471010284079375439185661484136056137309648320097585809943878610514708204733866525198384154106239691731008979732558262451694987446406220365002422193513351081815420570380918236442315014173807646743103986801324708702814113584646622518301876528628558231494283023452452081544505755140576643753964094509058557044749755573823846450591701163255636135144131862643433588451990179404753563008235139652268640858232156520539434520276261432654299060123680867146601165235990158932850981665175743827929402391224042732583510855948381187901113461113646728144483912278278544637146289186246179723622853681078288185236213564792655011321631237279564788732170273261422941895697032122681826800888391370881110280715105466174282510460226640713809728709146436414146318326680227893251472701897558046739016658566822017139636863290669822939485479112510859577180683065703737306690132460759746446758312277320613900045512692472224506650664559549740996114479520273536575279410177768999698555330059701403169801106166227957842783568391910186374369271987474846163674094362214325746562384183003897955302731256765597436965243148909483176103257910576134194533290815188729640413561660443966687396408244399825302121778631802164860983845395025602228581383434598065796362085785583565523174672038227137050825013714294009177060032328893032283273293750710843814609057671029915477446713482154458727170424040213160222042951328703569115713052818467886633269575368500488203733890223619031123466527010834197848833004954242092514048534423496871014444698814512569604844043210353448265943054721797241801746641202725793791462216127814047306328601195945559290949905757294697360803311759507128099897709550886086730120464373682427205535079878870768010074467075754662375746047849449872624859753845595573052217436361182716848425261699108631397352830924224190271140358273662245638681607613208461956545634840749941170939359691614261127109761254308264861837993542610353698370576033505857827063406007666535871024225229739271665032398535059444424054159642767450619716134543196411755664368187972667186568077001513943261971628090470344607707442933548875419356700873838072614974494345524176881684534108767946275676257265409538078234399351649624862349169650649115080763437540363019539853941850476590805158033307804920167051179206017950522977421356166223257362763789756363910695160308001304036378267424908435933397546780741393001364555886981715158648397465707568018808980065360322422933096505097746862034370062556928667250485865050586077914380228859570275286634059365280909737716396449056090999555492692377421049348639862236047682335704182027294930170346586793667624318219608400448336713777545875474175654049312103410853073282752418401385091010904097293578020441384686280649658136774853366908334997286490777389482300930841359648147193981397422084134475414795082031547954171491262469705432459011558357369956016284604589640366918738848470759219785932882016267096424844966663999113520197957210263024569992907871234343594563554902370472939261234827811162879799531084189206798197845434319920924137101116261024863631108697583056337795171942346301172734769674034232176712014607274484921028179077303272478189762752049045206299280614539897207736025496516528574836685093456567968081126565882389685191758203776179859526175978346415376576767435731509371304742256763046298674837545789681586202547491156377601343105483218061522242800842480991381299666922213304853875468937904957597433125915873786636814837443893966454569805359114955753200766917027392632744819873791966975419304413228807961819624123323148853227102376512814557953692850846056100673058937550408117666025164258155393188155107821952948000664074198633771780573836844429115507633205268813133547085012885719659530529176716867214289235778765869723651581090550638407985846342865299909671554908199974104536873220886669247031740356932677697842896163934998196495355537579448812001330502853326966626770000376608990950145457898075272238139972579052310375818684652190137540913518040158907626360492436212403845505922899933894766747896740850674577925307133360156921952444609061450267770079375208289854604345052994975525612473340354430233944808943827707255038036826872854841710573643182377537324106316037632278604555797522602545479874244262987089541343405973508678780992747462028681778806282159785749716908563655389946010511492084808346970426561981663745509165646880327275847984230342285911407417151269849357661129331455152680789944928632359408510109208123074583061317565192585631036500782496159262566800718139795067375303796047523725821932393391892589361826731162501593739015470169968537858181612455323660696216377014729168062362549045254023412023791004721112198186503660010971944932371521415931203598235146903701922638258391741016487318500209996644942855240260887768927294993670691619777796992447810148014607532374694666435812028993695836439402769604864878030603862593593066124480939566587947571312700963553757290620542118509338362279486679253614472089125784144141457931173198993039955742637965606300584846311718319851616775142486712657663451524128701184914224781780619160939102162913481423766041928567823107107313781622166932640675657141709229818344075554107963083750220806833760193229757047852625604671674956809144058073260369430604077429928599741183647048184819071332936256505252218172954609176526215033334037724280381888454517811321427995700839012113244972491919029249115086323061251174646409793820404840108938085129672217715862385998494149683637210268353306216110719664489250020444135796218762367224267906010491953704199410049781889791728036917659114470582567447258159480168705545717523152625314149886147332252912788308931514836368981184611585691131067767893655860561933372343097362310358182253087266108068814728891348834567182428546044707086928743922930568735180309235210496210982723596083929669888362357166817165461997744518409455471942160151913314202968931690019150025812917985775490005343067548757037451980307276242871140487036795665216144174557878653113659122018025194112777912315033691239479286188706264700656745453799335707601858464793342833321180030911056696477917841205134360056336776135675034212109414613171069565229008374255711441668269264769044751201389918766341612046000233257265538752357579823417933828073723554479461658869645776182903726933887942409541114336946755615011546545090300574171808179747768209990452089097536669589253971467744093063846630802133766648534756282088106601353859244589688550348027173707203872608193245838356880278149717713429471442162720396863058255002174677245968097192912397276845133632589281640413211224551682713328171490794705924860563782595427811145593671509095683326118446262495679256124940012336327898885286426100270406572933060825882308175398127549712484824975896946160738685026463493100026449040738486547847589774511432005685324567266186475466518670974208850497722195805943762539472870572812552495567882016207108333340074159249758933683711245763440381234747994006553496946543321258492539141998263571184535844906807008550609600831619192260660163592737612600887675584010110181560424898175841099713120082164412507358942929398254870779172333108476734895311554602748251798257134596101725336742204073075541641112343654133961305425475777615304327899513527184042554444143617346102630536123920062117162722226254853332655004139649279121642175730742358898322738710532612245666987017627682329258015458903738845493704742663482832858614081546739516247615618990993251594811138111577640000666810945093657918425932819500123631682838297668743579748226828014893527368952972988529047289121600599284923795725126766882056621649071360381307415793699598331026809190359026078896502244201068550615384744167585897398408624709882813523360907176728420192394133982539344728728570353782085578157634315673650243583500390821229250284501722050930840214514598530889046570028343663551582379358023804804011160496811193162821971615195817098675299910452866665763191497771508579544144310509915808748060200917516780489616961497953264293702062616913701393203949763250204920509285623450387359361151850235984339484189059014016453910001013050753673249321127594076670645525411171544623704722565830143600229646096895153451294520974041666854916461121458311367227516383268268689733968594719022316527937377012378166014999133963178148074295993403381788282950258336804237201016431057290695257020256239441144724003143467773145363368113957770291133428554437597570096416870409615600608481833258016341814942513516072501564149455066182348268820956389136534829996361488420503780014984376476351321643865692996090745264958663983881003970937157227848988759755793681255510998572611205053236042051283767014455731582099358755144304461917737353041134506043343799528463496248169557983684429721758987622019396432978884932303635426748751705057929910850112210443872486291729081834291482658868693690695449608530423219180113911393540194377623087725931072206585397260557381478856919805286669543543436773573034658189164231327500651257608765607870368253956980322007021979298075603720096976610001934646561276397725536615801420274678638853172282906411608242069172887475357482460318777253619072680952038574426076343049422279668499021066626488427103731633009770447868033832452471733638050097632173837660016804430704706172761743610318352887442697273594913231585785135246776075199056646498379682346014569411447210102208745753720660893165777491864924581127071561829984636111587661375209914129481436071310815577227110000248754420128526325079443551574673202803069397147051462963052601613183097038748516039905829273741553208208976148969090287945163262385955096002083555738444168792035847921060398733518542275721535667003216492637324311077667016790099796767790147792050886182834099274857694024776940015684499068947209453270171688302266944819897388388149770964593504369746245961639490318389712732623885898643484514544364237348623681899510722888751710137421931665133926589036106293861788887985179916174765932354743726853252113435156033725602033612424920982270749066359650236580742737434655630930101773313319893023219349858231385295211447774782872968390436529854720722093883939602173716134749975380479925945675070357462100766683848789353340832994518944914572670637988525043030512817806909364823857680790228581592893180605625541621946895626637343835335623850034724344695891546258155284634678565745919539081172786687926504542225285112455578070612826876087351261425231753843402328256628327738509504991573314923090423549549145653198584451004808363136284034647655891324885490578599249768327581850133772416402652937753278543309327410758246945552755161261738876002779187490724189609236531835500483241202284367699593588882064364836658783951404083336139476443830703408079499482827687751315164860293038747159872967903076322927787670347501886294574772180020156470294673079798940409684806073405777993024119800333364907379956190443105982103348925265390295912245766243605664217030003561520874939017896031991698974871718021449892962416963739367123591142312654277287728344048116596559828573853747106902607388067546034965328200399130135722887119714586685001708752734883031933856581044087193615645564786649727316578937075420888062424720717493477055714943790300832944812791912251593916087800048459734582134133857024597597492698429713150850852969069269897541236665677804472715924815231199177480739406216094701080627168345527775098491058845706991894844616299007730937944894196450313171408793844549713944455960681537453696471340386155201685473261283483015275269372218743606556104978578248750823042434030278150795344228651800127182604339992505568086129220069782720554471214086012358018295539061836794039980489534304317431981397569058395661428780450249801269702083911274724888955402888503861706973638222226088683746108558761305109160063789272884023525779795183217016584150132811437246477349021951105669309427686330497921476490738911760042765249030253892681725968381284092023509135607470551885550270787826090314361623540645380562291603760255418607966204605113142000669059730772803060415711828149408386135514078471960031071422793163902375055319079220891070801974782601623105131580669297976079776346382889023205341271549632980450553412019867642510609609400588475339398328742826868015662813361715092128122242589008502984457262315854714646727004807098554806348152539251170788452853172813006848806887530769220391936965695902121337365634182414695714663463941798777022259735986381520074911199580266808853306092122300367101868777082824268711773498675881870132923596935560845558761942557327459409785175998890421717861903938021115869936978640920900663673558076675134781801986931482620731903241144651224935363468155655567170956241409674831721216106184270613311989300400154680459943234759716484267362705166623354817668813059504309412877657352209753886224795241276661776451452924641864051917721502282751708768536546327900638482249112168973624810202272311849425708039826085233019349164321512843423842308304005291468488307123347553839221489696571261107739875683155297036965129118653479429692077236605606934827033359279913437424457406167907329997322221742229263378847690771795400258307931441633921210095709870741388974067544829716926007534571036103566557186772451489407454476015256090086212463854381388920573315512384300803692852391007433798984149650715067187839691478213729432578558596085489170050112285179242499222934168073681034394052399996196403998966517798281557653379019258878007151041000537310922182904048037519631198945924632253017550267873469329209956171652523242139656118706358973333992557904484149532308436257202182333692698071317370299498720537933656763934104501421579360335549052267011694105262154318539242771973172580337504933887283862488830674915589926902016022158292530287798812067621818121094095992238987201199320554004898984620115418499928052690608382145635871200314324834340220235826034283641904337158710975744299745050448904434278521861435482449789760203154386092428742444568398012877629309949558747435034262385171530080695850089889817557165656751921162533589858995518869316108994814666527150863637485115448104956709594642826992310570049492985823277164307659868248156563433090944655995711934068822101633520825974100776839899042688651537724524135239038304640989375966978784835513515854667166299903891822248397671841045185972894615048837097910131982666297487004608586468803267055579154499776816879392682523389228319102966271513279338639796637262162086029297182492646548442648550109589900838748325571824263422816147360302774593198732459890343971109189307338718197382623434169906020619527490279512751569982039785619468912554176847230604815850754876888868303104652960675904954251943826809006221975366253225737646126945210239808929750060894173817483499411526335966383962438754445844690827201760900648289276699579752998043258651499555478210251454545453661029587628108322275337844754137054806536989971644114878859130704457790329198934729108683842920414343625489890277828411916424421108234265606781725734719557996118483323703287191612343776437424782392671157942770780007940174041093914622201022594233477048359413356774418977273675623094891699263774464666279698531172009488470524448967279303746989698806829994547120611384225961955243071824801850177507066136124415039257063231444553732378259212253222401484774839618641421519624605091506534272095984439924565278590640823900840559379684413995841918325809292653733427118848692996690662816260734558796348009358916045796036423123360942770363951519807909563950382942108080261411549896626884635896007162995350988927930822292060838265332294176118990476391608151912022994852668637136833045086189494565733686773585021023959896185498671947755619939169300785491809895552273514933723177676022835706959182849973866912073829582909052953656578609498933527759726159244660478792598864917344099425981892335466334259250186197148546557066933337923459001788338459656542166199574562047903339214039326560897196666812747241996389487291390349091705619952570189525819249395270754734172322619554556496202599480975168238921779029296818820725165427149252240863990672792771750148863706538834842548719285520061472704760337323416574854279191197369618570421715895408935150767460065284272510864142507834041169709329494221379421596856697566228804758358080434610435487258858685334912092434960444555004080363196615097973221513777867778136399034433397587846759487573336577217643095018679168412286270501717496896319585124857922319029979334048089941355558338377822968003157189912386442515294227488648404699929531145906885078752930475174438342563691037972031070032234381771715004531074518963159966067176985964847491603073454561128370761621410807587662270135237584150829726902408412375586993230786710854672075466727721116797724719550446306952911740338856745016534426923952424534700413063223989015060044170174822462665996982407640849278351375838419010574252204312317640401244403615571707980950144248189345533666082716590535632446664839422000054882030678143107169402382261531418701002353283620932907745917354685222882207618160184606061794331045184982799301447262670005105824070681861789803859760515581790807073890811204554029317068911359476712573077717353167262426610450586692847551528538246754539475486545618538012502556719816933495666857914409691907835375602491872988292158967831873515151219362702374489871295396477339292419411045182664278024853303151369326243801141902129251263230500563930392777489200633669423004410854153136694963333126160292077453753775257052914768139701484288592536820590733548270389669785346991985877514773132463875292352335947255328291649501179587044355588057641795319281557582851436774875772788681358460148774344103234166201204716772938172867019501421805887603513702709684689073763862060144513190614378587147836616891238304831112097638511754161736503362441337349851287957119525561966159549659427366464357343811792865010927006997143159178291815620830768234570629702150890480281728168534024175586491020088618975317204219654258004062957009751862599949461209311443987229932447597784711557593671254110925385309114107402224058531680785526125850579339547196228911799704257959864507745856185865489873456875876846942422727465913199952863224258346048478905668796336014645753819407905962885888266903846714196964942081368350880725440464811144049042615454210671053387138236580349144163779040276863210742680067519322794805214821709634901933659337214155286054900613140570369116769400275268131677068414494906555631070783541419362176471006502298723083262694230472973872764568454791972547852498131243968977140123808434402417255241611506063440680143132775609720513779234903291974842539889856521543572926966594868363210813686137627004183887580913298290714597402442020287465525876972472487825152184339844089130873258536382248627260354468054349250777306275942706351490305434360341879930797133336199599834945873081749454553189536381619078179336943903679631631862885969983155383684852958922049917813034925891439855017411567549729346180272672852163540311910613631533912863040092740469383656798142801883481133589305403030791842730499051291473667118296037203751484767981130447320687000482323176309377102103189103359527257300736942071247914541175621319565434588477178291618715040208519300987924449877116205840234578218038663127940821974377549859857074396846650176377868245119626497495896266424824310566767209186108823860682767096339711360011323928371365828275702133901048301062972151888481597532585387137527669583094197549171038241751074945298162853766923598485128993700426540510476745141551415335724894285355917769530444059528752498249218232429233396954392749282065211276009665598099064718320609636577942165732671911558844884684354639760506795587078952479261787667877741126103114191684396965713012580821320915217419888574691793637940932745239144293020660836889742274468195503529236197635452162058098338895945153172976470960874621141604243175263337551742747090480867847910324636708414237782746139853523362535729442696280091710465534836471040783028037132985923443612723550642498693243486546198991716936747166963059369343602687822079725988173608811418571560733702277033507438044956588576723452099172646115747263659479062786844303391648186499468305202143623869343493809181370891768740358944915666271740199998678196382796111900851167348735261727878584782470066133656673212703585337472439524865720881355101621850135898586260682089946011499705944740658666919913583841959459465292250628891695690221632371290358583514750750035752287599625160642898291335155124192231376686955037080113527425292089292875284619139881172044864274415264487783643161721726788893367518492590875754561357246060796731983104130661404817272090339268760247837912449577576636242392487673524321180428589584260481326081858413916849380470885219890101772656181386047139815815579115332587571733958361258917976980479879987806292958176245673010066405697937622173499389824315774256337245520747139769188348438379401451042852578875873994008079249523512526735055237495774590564379835525037965326988220775979039622252280113091430155232360593432654033708620863293402194889114806104060101663440571665378089253205126097813654854873742861307289289034672807794092588401008315848415595024494970409945104505550295998924999810135176795490427934167667844297107620393866403237942734593605201390678407356114733575321845993494724918240839893823940589457661982578038489485274975956824161020616674616216877473504018584162821521704344483544704928857483363358560693711870944257693368853486703789041089422767198872090014681758198780102748639364151805222734397698843374411027251213097033679984454120096754108806991040136955306185391891801431636672723106305625009521704619013367505267145230571620090721969654853783679739770224817914303691960409032049863195210972685684281028688974442372606986928309553931318314935171156302797878438106652106910120512772111438823560486279180814195081492971942927042055004983777189029548924282735071070066541637441437105983218077205287531060643943532059475708191337157827844926531823090983750355287107299625785683263494425673527148381897846288553312983103847729226689067896835358012252515058972038311831207721689213382672002689692295753118470389038098742755916714889395479571392026678825360275925565206855868262590524399220121866597235433357724855224052743880734747343662918603555082949633265257910176601294506314179462942269314351879267308470034397890276696737684931749039700182292806847658592673725283429775475906117342367185676813908383015198190017383795826834805996661026017024506709532942682217270371478230837083284486813922790486057279951664696845693308446579440982907902449166799860664434778928509767951391244922738082889979414695314406036919029019178015771154334242739438076906555620999240021994880505385679335008442407659863850182354555238763841609346629754838599437165598580127586342238045866494049403765549496721201657163692545681612886493747607013158916352833122397229607899548523798091479582923460918415728039955353529187369332267785847877157694850096704982647436794389335724144282592413040202166839465208990273138466221302271736544534011591530588389292269569458771757355286336486232140783633936094155339764069114127561158046353385996797517888709985599503906833741143137462999962420782224997885484758918565912567054712365975497219257355531733054934568572898565902109460404918365501379636651460262131100147437691758721118457066468063375975492256886788495867123033980684923706043380216087889562159215497784540776976155669188256276664053509827196597462259700850260752383073633011721637128927697492900279682825151091259844292137994516941785685529518557207910781889455031043493395930354459268842083509493427978724508162849258769588558723582448138940474397659852752957251059740634826425719341270365039945047472180432292996108076343996688700529533375236124138139848466348520835876917874721946471444860198586177975394597761297047211279744279163684548834443810641026772550718205660459949428375208472130320112349873569677331742976623418511338318819065016979408369151703209046096323207290137084872324600533653943416463538518253734266022063234129538775500592185079485271391907765284846903240271244857167180708285437343947663487777601711451863059839201707884786572531731045667193743526488038905303137934023610280599456105184754148681402525870024916506483427799922022757704293820099648937623715211083296826920353885397965986219636547300972578489056610972829855707222781982202477349363461109182102129607669822556981957511936210633240338701812584474050998931896367165115906537926694414785916196921581087521246485377291076038289391288511463587672711586067435400084065218991397815946969065001422116415673082938089696941156435106841785430203678809640456396098930103566699028988304631289742210452880518980204407527580428494701358463139409195714288758671550062234088174092393110026370758919534257466385132853243898637405842550599909961214325797970198753158910471308620246920877709984354188923991353260612386818690454800718308536991154234470679609251117397769674131789541023516789589935048049855648001326446579475433636956629447885470152915445408611418415921280565219619199202781066387058694009777728639291020470773934226570510781379023683768882683419318173480765139652489397541600625615251622051608838017744731152636742489298981487168270358249755341686755957696716850068644773567692221497181731489355341021578718909651917423868305816359877572949562256723289404133862875141550357067911361326399650798408812024906271786066649208496040814630430028705143564746359169479197691675699777323405914777494311164423115601461716726766898420931452131419566055238323869493540514473454653244665546934160751104710984021966057025474666129471783060198577471026769437225575053046818536994103001462555094610465673963321019018604779406558602268042522388136834213560312512720726948330609954163372445425816162609092640592802234953764156207616594160645770446134157791817213774576190188904305536127305323477153571528255552575759567678281288074152402613528751699007318779521695333817011728357865826490399550998680936367052458546084553944245592208150789373025856499921255786930343168136123238292647450237178766003042329976555998690620747352503124591841913196290056297850894396287116274762977634182398582466548970867010840537106141477909863035776181129180406863844262044922325720920723734818781383699153811571928018038988464870881202330789918004083046290673547616905953803834125874972117857751500324630325204957695734246361247035640331788209502419776471691669236373247102475349378679436060151655631637699861399707583823089169380786477707880058258815523930019597087649114276100341076747885312039088374001322098430416291539178141073651350822541767163728172999687447775619900390233280349297904201229090454709448877909763833157162097679755667914072063922604532096804790498280243022588376340517912846940317958379219189523376238720038854390101098465734976697493594126586699651802226911415244924643642327648017632123051864425468386999376475118367278323565853409445577705063635908958557847427174760178152485365970065539552384646459831618705610084999495637022350389206526876766053925779218996248616065217629790004497526695338115099409996934920351857207590061212789678093063112762266299942768792012519322101842059125338433106691870452962509661035877412041528710038481333551130556581750245776344473495040687000889727025666395228334064583197490237432600571393549144012262432848896164410617131422713534531147230939835786505640419591121596021839418421694725493421459632298061728723266313507749690361048608553437835745738434177255894267573116171198832278876450305652598306530431985447229601180098844752092599829241284851384233468829871019644645227742879059483404096188744783386312344662910329759351883085585194091059926256088354495372764195630854492039897897310284232352504961130672816778109148202924165260032177887553145221658227966564873595770080769554863384548889551255294319745842182597289650408347605250041746971545935195036128018887952247630022106876468014098468723952858553136555844627632245084026167206242764304901530775794599378105722803566354866151647567697226434321273642878448146021088763385816631529864581893880759860643969370607395705759873904212245976780533709678383345717390971295755630605855417882361567388945834550276847554488260747518935933967511060400550335680826897275355952414491689954078313781065482089536666226731589730886841712902416439381151728275003635100053354075486606334878123439075170790600793092297512245947007972141131773592872121709583427320465820807153821514139429176549353388944543471056328516831117004204479469782065384595102505625036676162487860204521383674908779243517642457476359147226293712681973780000182431776339037258965150463462637480321669079347808136319061196532964874746039065713142687787079101281210251783756713408247772234046086654320178997813921840023922261082121673546165547628749938883212029452209875820537979937178696821665050484305545239031566412491090340900148836417938612346501921321697882754765759826111529968374170936441929206512739997591855752296302352042246215437881683471294402415203474718799355864240661751422128901535196234843196352795123772608561847309297059108219408144042201571969001743233027913522138726946585861007810805004141047911156187305888316717752880396839508934013379815557002487307923245941782448630762016738024517571297866633370562187716842791809304172925140822609435980091038840498892910616397251025273213490091387239742590251699814962569952679287308602672096561002418467633519730021536736506930348046894876153968976347383938238539342095151188766297994569643573989321830920483174118346518404082409433138736245713481154604669479097996702882144788321107677844402904599490341619169900569203885494003755787841315981937470093982291110334183254018718051547557989789703690692468816499798317180397851460335636946212997896556843768817359091957932868946890948097734367017220169318288840902171247380346969535964603805648595564588364538025916604619594671389937416609371021069481788506998606530734540253248335124784649996141937658444847051506063194247895614614538348167482616324333947483510136816431774925625396694903941726747186310865354477463084426614380129904376380015672834421073335577270976192771274468719302517080187549416539428025791999757442984228843682477337588414981631552986329363646479027126750607848734495485407776733493675770957222733695454785054424908875486438064856505133267908644823695428368877857950686029163871759538674862848424933418737788617436665749378875759164968991671123622022497886548199210653891278463667702107192746642646418396737970433662997316778727808671474361622114757701212111274649571030454438731084567059347402232828659171109009626471235168719996350922225697366425154715687898168410375343160943068633810596437283125421253401921511475123680911057545545793473206094489995538281030157273588084147620448928926568388669389169764830643726812928187830078487127966378120153608923646169403017037515092192656458340580806805516686119255495392548273656843385783872681240391388548106794750470457037103181993355191081894544596444792943536678634851370091357482591517168394578229369114396489412886012948237309818930660418002081754019678007698311431913470414319352573743237303658050531091210974545974278083349428626740024102293090607410094353194533392034943743594098857915650928614040934615328523281858530812387244833246636712040379691163767944757278314931429143686967292048346488098392637062366928213449701776229294532776222150067077556786403314122276914920142081337987342138753338559579489912315788823733837880916792697781537886921696613299187816052914156972269086823091468544165581958922644901170396945506113199791366877470540300172665103828745735724424699291153522431112097191083681932816424387460559943818522038054818274203850726553977537497000823965625266704647155349875811443615347375762361278309042564148094763599468298351585601200509952018982918134650929848292249800440890907403817515785629717656946140405995397691369556896004569628229339289509854236632365459552873203864380369261149597226407203925407895345749522276373899756444107434340292435707382653638779599644439401574551563537494607103984707388963649385177809240860125264739505395633558879379339521756799965677125764740509162320841887531106463239738878316919413467522564975234899548387985173986254823937609183885421555192930177695453718302570445468382574802359560375511235698530159040603443904746663812297953894761290724888307310341970482146666888231305411560285357760826845154452002086057464798723395915013396157302138334685302916446406851484927879441945170152566397299004786423880856683876069047260886559505804834286725473341942433180993409685087982873195955407307011157160056316176007691264660959655607534700033692693170173357235913060340530102678261896508995583674182724134166072305012712481333469698431778375212775642110258405135199641730294361717441254435136155870173249510503088131379995947160945520416259165080229282245191308599845249212355264284126139625818970982901563528304880368552623576830153373645568846218669301229424764908750596499642762851612548008556363517978459181807560982948731474253018452325008439370349426370331860253143520009059100098649114591908480062859388498220952078157221523232413378294585682601547238506105834323536822261399162354242489027920133735912572123071958059277564525472390316936058352093202389574630623836809888595618461550828464763525047376387044058694223751376657914504141999081632702131586711893707412937347264005304152091908963995205945118979141954864526068374151692539709312749369869014803448518023657711456459422490995475613324279466779810907581291788686463185263228804023590911681715317780924848390345308265882499672925927262338728065640407316034718789893084611645173366977833308924629147175053579937839764768471563275899192305486434021123047805837237889994805155373107501151488825425508260161633516520012307060837200929998713658147689077314090812306239174697238514186245895460227472190880100098637856149365441304441392319050600781265197015576570683552724931542825785734647106832084661437728632416538882542441453785661888366608650890387527156191278846655641583294235337794772535265377792347593975087817323685806905884183065131786290259189545539608593947675423124953907073178559559610184248933033842994761075023530218720251171134855389216982763708107240247614626927748942301102819777094473188464220498592507335245728845455169188474577283287836674315916501890327879114298505834850352474673622163372028560162928975335220970166049974328209137910320012691743752056669586559918821021186090576477596257929089984588853540702932577577418281859893273867951863891993690172789874416940318113514521034679924676884121136402757316140462364397100900952686524971513409616752481547241646321079276810649511394442619692234710488485408953532107904853057501363856269343017097068827780299956304609641223724888386874599222687681353501855664748238931604300965898259763865415210599467247418125177383957454463584711946004385373469109746659502571902341420151496842807620469347874487567648521058975582726400580462369047933929914277657302387154301854007242304761667525298351189177242918630126552224482437387560243249677371293971608455367657229000432199808038251550482149159147485063608258391538323849775007029868301472123456527331013797819985916404944271296421318745421372152069018793537980145291992140411147630255907878894503525228105274077771195915734798824672482664460620154881982287084960453051374742502244930496375352450578336477138046524803964118555307083892698546150908785285465958342527502078415384354235184200162685543177197186497937499176214365678974841974490805993160560961651848131310686795536873271750817853264220409553593884329675636937788902935213478066662221410880027799012379663718583195642350337289532875244332715547499803310296266201222782102172251369157300040077381647267690516556609577758514931139922270496001615110700061664914688348603494868184572438077787933937318247782959907981018096080103776113513254084161392673603337519503779387217060696065507270363266702504042556442989982686585718030951439664484675634004450912502743022527617428767958293904350085386948232003504419713210772417800918357538885999195658078660451468722197935994574549677113422010924642491159701600542462381591237914698394156763785521512667013034823283644332638762386383690971391334991068168546832107082251139022305029467355770087774742396271786352572773122556906318499635646302313034158457484368596344777384713428871033781385643439917678862123683877105528468506304669746264068952012315389537576284503473775892379780777524346805215159466139626705273802610544828988954357016668865451473529815640536985186697317478143775768962950438727345370458700185705136813927128477220743826115910348516154831968220091622833190904118603694338419745612379787616588994069262058092863554229875789442717965729760485282347993626622145967099733442060749564350572357266306993582510793662165770724828244612030725670985654227881272847003980133906071796380376201167679563964984811558910067657444315442998793199854584655079141152579165090616874234228496127061570342611489948841026666095765116744391056576673401087002256524793272704327203487573502746826442785280451356577302538311646881887505230474340409136184140408310128495563285953324861421572863339585399809881466727392173149902035973043358243325360394389295110932905230653585534576220256157939096371205013643843876905772859639211895619238721343998177154954408069958723695960106899840802082188012415817351358128038687500733228556359766747925216132303556277326697376909258537753464038733564783327904114233977254396629037725241975919876080280840848450614942334284810393918855667013880359910212656027814723082694094619153592965062201524535579514272183464732635904843609638683648589032155702061527083777557002463282039450990767600609682645543023235129658211169354842983303948742902281741885540648589056818257805979133572032116094194785236550391903547936422352877395306471455258741503154103935668791467354224325907582418435372920555422788563147483301338682440697638662648129409048632423347564438509980363674408089368596677422199487741005303235523044866437385337229496738334789722072237817196180978258252461777086988544331529184447806908403910818715265371693899377054175764102633187311316765265706949450102730492124030579638825816480255492313004952523268435577165103288519785095031750310145779191784931678215305031958338971911826012135700062455606224843298640817783176216414545517339004568056066888797807508434977389518870448941165931497576731655658356616801798647376575697533939282939135174535240705685874868894057855161117141639429735370242488199749974633425287298916481443899697774797883791000334665234990443758577006481246652538842687641535309730637614653348758054025505195573493052884240163681938092668542626470339790202904642699931439387618618632677521814728243315900433525713164435007522680765761740071320817538795175588996705920704659718380560860150607200418852126164431039657260749227224602531203532937596018781302013976455896497219047383141438081952715584120293526369940812238695930686544722107210368525512873886627431637440351684961607926296770000850872101067703283674752112841143903171764050358943994507292055183907574471346481775769980129678346317259955950705870140462692539689976836413375725775882952934907970736553572935588530787007592049532329448693725899229988119325167777055362028492583437453585350354329873086702071252897990955660007732839678407156565752369469723432934572741019385620354182778741861756099113501364549671057455807742829189307640338085909348615441119537787636841361575668637049697404091170572920158996168192439238394426754230261111692614520720969583832250226954074204706012995477850436360014950849653628968807964671460170999723218708158085010224231951013914929596413200629347852234228364858347317704834316708930896013085582445094655257266754553760829759579358272706102669747211446729532920721577975935678304027478813621303384457392478416584132819151352797446140523879314761404203522269206210469579890900363235887298131667428944283570601811837630033237972949493288416291000535779122671000900358013198236917263053626179476099279432360739969611533228961274704645556692420141154793214786030797575257631313790720048138671077745419752460093203390693463584126410193402858909027829853134327581686262506665084026889144706611321046992187622299294489122521206351314919872547841082044035495141960682189450554393447779859940528504143511981917199454100696585379494491034240689334699217241392000958739509241895437926158223034545671689313718700071417424117865690959358808554700752763524077698654686016666095140384350110728337338948049664427900071343708965923915014483678348422680859034946901972672190872373302594150409052524035634972465124788062297235343954763874994206296097023277738689979039077111314253440726447232570719073192696831334217329054897561526089606901637152767005349201497798569638652215300599864854238557712950271345057441348497234140427934797007540149311458637638829868718187629195830294214522394489928079024853119182251484590847045280992447744693552372716474464452634235515955771836460473654236205691398818453668758433158395259648074175081016103187143098249074649955330309284884495765779448621148497928629767742273098140607031484536966766138869675843346967451543669812094998889530693123246491497224962714501240616432015509896626913793169951336097745315330050162984127949629858924633615838414552704183520567772542207293657129231846936114739882312790891968039898919083704542396412464425181219476875607893043838055878609105810616616434106271472751560102159231295613207817777535835109786317898038337274535271552204351773102371472775850748289500260144386835322604338014914140148777682258466721890290298822670634582146241872806741338558512869703787140992295668349318946649912928403801435911186131128879956993754257192731021769965672331695753872419943872985755720026182641253995957181247560079244215919991864388479762385413654435088940965268138355966021916953519407755648587939153434670920632257760041700219662087687190821994770505310964461832902047929456655012154942791631321809282837454625972438052808826588858985000703354303125995692288319024971860785513074081796233881529930114681103237103328463464459468209516037326989563459010346905493344746670553935047751004587214546819160288945498399185078746881175871309976559631737516872708093865544794511326182448891024861941638445028014540835773035606450620832423190807582155329316035065297013820382511248900854872795192585277310686331804711593267074734191208283702340265851239536249806394773099169248303923342749095029716583197210895357713796110444274603529629932055447163115018854101709349116135944294709585908039112973534322085849961034674150910925128289243648409705265258963386362043052305435867618451829888114678565289678172510963525948252442497399925294722461445907485590392384623613767560721374123287925123018311504399599502143674203807327702460971766472739714315182976168865629061603471679111084246033095535418712848806883058193660095428785812049882753852191710427058700148941340135991276763692277904308493691059644787429092729082437019501471638441661592944707211680583011041976818015675923842312745811904391110050169297399849658719199404309270405738807202383109948468748688173306087610883539638341117690853838529856951528019707402620259654140294525608017975176052064686884613512649469694839147928582383117705159156032001093803325445665666878092648974789849594362189493191438329196685917751999337885758728410888406809949182115084838872750553297715616368357222651371290466844179221611829682353634114991006267134710083199685911661316745044209971218081110085663603959377271352139880479220751013958748865288186013239756642497896597443142562698354158191894476848207355729897638140342190115006894997723642433330089996530207553443930118230851307817867240483416925906896123814596721391305425211419228496924844045811986860435747818738710338630240277865124993896807213204009720986566456380717058443056638719064121662708009031289126222543274089032873318996164395153496258966006438241456656572102927763031405316634212100251716809488851305083668328703071552247164158633768714609539052175179428752695615414365039902698328172958793464831144798404743079545232342095448271693009498372391804073115054977339045693109129489058527647935749825894683423923206374157234673523287525976117820412227892976111324058892497650655989766297525747139966293388375170892508295536064591420071084209659396899869072916524783370552153284989839556822428961554972606254750369318577705022542984190841197415361073118216330438292130562509714775051844208177526468491807206507845143247002994245580596167116130409041358302766414919183599586743371103335530026622137681330430627488250847078394844222736753832485823082478052401520558421466356362348272044101513352669913331336132239830040033743740451600266253429523517416847585729043750542825319590874659723407237609210663460493672596798699946436506543132003244025974922157620324879418416094898720621760619691831554442440172288864844574682504691166824516737275576863257212657634026350807676232228866126669774235986677998655739823074333513908407574039891460472202031525838184386446743318358124131377466433695561720083545841087750272675057985664804040050412423168883142196587334571011033362685849657134460222032763416129633788374560510320613661506666763451469674629770247017120316634545750927305859461950141764720962442019165248428547128295826625142757243409624371516451946285175586091967364803708980997345512061572403937712114543685086215447134884963542729905020489055125218687524267070716306828022791608291096250208715107995650300250290687548107342124774496058959980777575689156628770841021073176283669977404862859130105997843056891480674466347817900149370514049788580748153918663543975442261366830501876319802301416407871866511926739491761605262440586059412299985053528557556102589747477176276586572237294060123943400086459668596842655883942323400309700965703031852487842819634486600157012722762558220573571250262497826926143015503184515984523313447861840190949400147166537416705092695961106999581567925549226448295079959747489243702335764704507283140132438060277625871691081391423599505958686937870468126861570108545650225136864413216449880684818074508434440881269027763922206517260140750215824244964711215468389475851732752897104470464473727524964688238668294346505229611994679770211888704619873122711007872210811154157672008055131529476206819019319026905507939785568452734214876608276613770556975653940619950210502036785115478483714068463407698789999825741335391405020364053527929648251134068351855858078667311127039920041299132441553308058319344234173648193399834841362624212741209945627291419445707523905431614586022732003115493786313107237841215655851893030422820659624244789958045854541231388919656703763585437122173607441871016545017065068199079323388515810519626221917533562669461632269549038469982622877057725512087326920969058626873200230102786133837774394338331199427198518765861564857187087686874960329245250776809722693388883535642314929238435399546403110772819293690099030282037233070697000919705842406899239295664589969820214800858044783056143794509495017365544981378018172273255667434494537375561075110444193213676431223861881222153464854042643706200034288208184188886769581889463967239632811850303640414067659801214389698309891752297122052707613890654247835980029399352355883723976851167366259466704753445635887146228974940658372205562792543648770008485266248224912358269826690931975773998566610487370580364341359639930545842857611971182470706161014640689807240735996722129530256090098836318470897458921279317075946324670236539717237570389188673926712115820642873600842094271391977807165753598564796736004947812027069960519160317825848199286870154057044900739203342160070891765053741579832223776541021342850683886682370862148507153052163640877082496171068917044708562331950724901474952807817210065774026490095813161758185161260307675354537003783225231524929690209048423544828852506189259043742983458893226556517452473102913683059937379393638056511158880310423058941300635557203032650028265452130597855506739684148240496902716836553220631714998858427579925774599328229991537033129694007203189787711343271407501038784364248873064121909938781589534505659030082906038197962790261713347928374674587110945334012933640211824287896459055487508789835076043187899738434412533782297442635134396706675692136075566338120280843389622308972791618917077830591162238549661523305886710160835371017543562202459435360484100774310710973776489492946861782580834341426986693319387180722261393022604944530441520982226573340181667559263329773690048201752532071898704140149325213822051582145197855611056804895899215236974318764014600567696813634277744087632859612725868958671525037884746294756556228513056455730632287174554611260347813821683430192952245745482517926217718967279534926273310279546154120221875728501785420186013994583328406489141621555902842448420138500848079813722314335998168827258779734096654060186930115839169175679638087064410617817071418039291538562036081346143992155666328086423216653376443481740749844612010081043253289781010587932736326284418033974239281954485940121789214382669136228995155296751404423212547403027965935598810389629641296452801347516292133045369682106071917155477759059041997606252543446886476265830403212751761279604641840632749218229288562126992673322666529690330404529627474550813701986882388398890912315662308923514527753283265296954250776472960012666325088524379463271737618926136688540447457429987386792488026798553215581330134267640708825194269026050589659425604302505500701328010102490753488445832454604339360280597481393520062617595766223225576025524173684719178849416551452017467991102318919354353970375680971991613215026956195755482233146512128884491365089758025244921726052274518221110989576372351996356977366757275664223873447012693054923653812829087297564588787091606628247484303602616633518152702846176701138138718070974798503293598381247608565071886482143533447984160757988293464054693312767626689303362633215394591689651132133453332202476598597063558155003934963590726397062015412534046276467121172735144771935052027149938014686410987220870254172849813550461061733923817037040703555260215728544350701634506988304061097916402662890173590741506415069208853108935614574428777489538934755095649245945154222146715443336372187752973130570089680624342557304820540770146165018196190945419477003799979283778708912286518640931154535219104179829055750077792966888158585574645804745258503873870329804480543115006293112895861787014909461778023494835096823929951181196260299997793878019354428520939491864523758729320415465845143929470086047780890718677739213113772501420160457877528438166467352931968899796454319496166028031998006429474749898663707378165054373225431691362830219491817866982242346978819349674205454234736195477772017045086742340699212822332186873848674462601319565160717375044899491860314212637079988541211046651150350518284759015040017514114759456787723215230154458001561207212466905907962992047893060505986362115256942624352988578720461324877816103802738899982261011036381601108972140698588896907681782769241896178989099534046782415999999019504659477887780871412423421078334452053298928917723714561343114642377610143033715453388586954704625142147100018703115384104876812599007775607666869783769227777332191532047569886460861359060336270627395245449448108056619303144873215787159647096866975477377545917554751069636704692682159231741229734224154516315411426967773022834087540750557748757627393363493050998382076044656303331782490608684531626648365111197813723700276953171609252600515221058784801239793948096302600486312132550009202885661513950173940719600402015059509774228476321424059630255280665662764897435062824275535326730303659526932486202321927155528941537590455253788118159269698532802637915235295461296969061204625764772546668807451109786265220251071933389351669353990038266638173295671631156139855458687695310631267668996843968964888594765297825524038621547033214201301200066387901463355854833802653617494052670660838993588749559685451697498233771815550312597333313716302578215420990467126529280162291806321048663713257796046813121546963613896073391444108852182068358415704119423001812273213927160486079286710232192138459580935020050750096957110162238032801532397002148629932941821494744931185412095612265821984471118544254848128183232135788830633816526414882296999445944130476928284425020207351366362995405975045059597969098220044192232434327464910785187111416426186943628064157829642301625086147708406012291340084743459852201085523031352283375985267855874217208061226563643281142626327283755012106572176145880559016682465937650255620632143916306971966611582647111383850273585288331972103380085963944287673906932795075263409672924608849516841720249837748886022627640187806465755944251154253931253840099996467050537696114995190099080731016236122272929365077097825782784609278379752270501906730327260101697733234995985050794881266268686955617756455764820929936072337486784380486324761971827262241362826346607711510912760838479880818532842510594784648499709694008581800790409008612755888258409049703671854371773230965419671789193685762590512540891561401735929893665693212246968898033529679714252765101033025934511430774096547139141511990750487448812314576225753197166990541935362535530457326385657662493150232467319899111051769061817533095867043495388373632381889106999457452236180563721231058815102073705303684374042534405413578566610031313814388803585600518288203474072777865327490657710051712458735606919500407522389734398851757333855349451571689887012989950491691099058843057585602786405209203754345242155938520381090731218306045905633988433560980948220571234919314364437221777796504133947548144128197457959217489187845825592870598052231510730584344860600744201026390094029493590276749335142804484572276654948374381977237563381319585222110858371997479614452204138809676299770863854991217069191903503896677666764140952924423226577004274004371615285673175989633419708862539566744232874474427598078687986281454716217764703883429907943444996728297129078913322562692248701779091770668600865335403263419057947416759769357843802352689603396641389396999994702192750970089395835411545909236158770574261183748596916751063790049318998862267712255811919978746088263031683394223291734000889114795051845835496214739309733102173383350303165850496108522844451143571724013275523332917502875902151564136042171958858942262186569016228079185985531869168833037635550881297109250386053197448605507654267506113620780300658896399379026331177997368217132950300764324830051854287825977553081985330289441437290724423645212902777510775125036624229475735910765465931306771046235277664072738714435924472015466892252247951442272223156613570156260180022758654416131214316150634148267765507578318487919670413434624094561307765380310987354295321217355154811112187292080598370112264058493625525576057800562634674210423889237157883233860314653822413826331175610382899036627672839226679089067913595162331797687783531629907168518062314293574410534329582457344602060297595802466385416550354817205081445416625834408212110769617210714545370848284693965282555337501316652452800520695837357066107644836638407139439803571761545202940769399325017475576240787834695841052938818319345298514850057999949328871553715041555701945422761243102619289065796673954441666280637463381633544768493630862056034520791626417674254800851163218443349708833608878742512025642731381602634403002728515376702780995764752064004272667585139393172119929285754343779446008001704305699508225526554046595680154036052984285265658192070585216400943346555607291687580239499675647149654388781290702866567114558935042197000671979400659111094823938808536362891669861773392016945432176791679906237238877637073148798453847950026763252571600220587579059994746867767478437976162329943538031788088957532639865176178790736374879756393879430335217876745277404453564855713123752444098078333738792651164848534447640664348040912787683361254953372315793574187995111120265853063042576058126565339758616437867946932635988690094135341722586429754223993870939208354914335089949169140534321634134218395431985069618035531848612434760038647107583718576127155402035332039407176563540774355496221875260819781652484830998860367952665155363971629784440377421719525562708517322575342296247173870785797728785867022635319908784133465456197495284251792610087395266023188230953815855181172302607640190654243509543983936735228449037832522502304361817464514427964581476498902888979722742310181476208034382973884300279153466785068850490353151631702908000930143312056174659553862985032113894390613769669026351506546436433116049041825632979245491197519201874613815615810048090360883415318523557971122480454394544057181991145316290376043235223204950308268915728926597551165306073215510953872126016337868037371454768015672658348915876875195665084337163493011883764606181036820171306842951169728117197663754097251107038785438027991926865994753904614054553936973134571020973590910478861015653972573060312696771995916256778068779297013544673004981260509894084312614626906389963998499759228158550235181721420628229484395235264971291770582317358843127288701794602730402524177669777127578599326754107927926835537916728743319284777874883375821597102609221442512859426545286368535457504681551543896250804100032734257392374110477766295771826370463860440405897726790550825006704061162432926887790640939756464821249900396485520749278204294838159646090631611883386367855520434379183833991772251130784427430281951743761337967904050810957479237320130066355612327602765494602193208569854963569592048307197022839972535067797478074988412885576260664885525344503197331281850956738161699095556847780494938676486919503725622618525992501164162525269587144969886628294055272928777401885211286009662411165129510614700597365185230267930250665067788285066953631753686728207824019333863365851349317092780504283500425222791103736290872768165908350316035651097560512829102083543800511030133639660770419066671528968282670836928593967183362441064242089442519183001573638081995060127464759942947032144303042033411631617973933039880907857799289547489661390592098280462421498383993377094755012291181052398006880094391869041437669064596981015543573340332931713887071121431854545326244462857141607394390065503692213949954596467606530381289645427586680259425733633737499804844007951155287268447461793088163970913273434067374877263391865108599080518063407180804406080339314762216295381288483507620528768513860277013924936801476328500930624386946887587009302497287133294824116732337078261683735879920036190444988535420152499900003706772532370899617449839822529242487529020755908476726071066329873328661465233026036822100255394199443002219731639323666547702565321874812130720872421631740647229681599015592026831106742328263646076302080668013165231114961476648559549928995653308654379960046206277458784003239785921966197375385998420892658944489898520127688457556789529214064498706523037409769962255152107422876306206258019072628009280179143085628082105076560597861902539682207071386945562698024304157396788509125156206695867863363973218701624814482211034742167433889000271629583058583712974283889871138561985070380051582108999635651867280291628984470834190437309142834584869237115669404875535843581191502578755637390877753134082970289009797040154503144908617970105500980768322552969344571683348899070443099408002790825755569995742574531466194043646598686568135717328811519955370917390874897380724192112308135708860436061071510566365282039156546690537737103291351849870016187654952847424413587817002337454720297516225109123734867921471411328966217872111125766719033905304247487170338057444842580065976998731902639573996520931065485420939841742894441987438139704706064817423227651497075001637805736199083136455981707521579219998778644364336891055231537109513962609372078240734539502093576986323030314185878669341976789575147695783382483635443892528334147336596092257285503067764250540769045509832884532605775002049032228403668002043930875592290114236485435718250220581915964121745044938507299330817016328852945380879506009984722689296150625879122956820089817677937981004958316017160012650200222761868418745176930107811692194005098767396970531815002312371725934931677157118347469828508235231184319389242533698245180265839580885275840961200709242584774274623628350745141859769995859937521862686665294757991647434797000677900188604380229245605257745594196224569931258411606940482172550121992762154860875823749763183549361841150240201707360639894196944759904195881105751739490813189799963276955330284097198546034153170741435791725330054152321780467436082758648836760023481754314222639898521941871004026464855026467109826700705684310159951212427129149018680741336459417921269019130158496641637834475296471181277356721953103189706502134027619045248713170821668950780569024557029411029620695004266861505162757355402240334217728366609394606016558002378468391014144813412637638571055754602039799887735605662363173764608156126918586536419446214357113012864135508871732268846188509857953643086461256522121584502196887029944690349108789270024897288367058349393181131121080805171613532127569703495557633381396428242146290532493788820126824785979798407088350881886627404833039044331250491881083108260919561266655478174894056631181264178256196618619253567942698568715945656542185357247458103925542696861168994471306851652220862086590046493918021696629766691862558173556908559638950537502032039920101385242924296579148885447238707242926259454169776174545063671391464726011209102692094244961486320093775811339885316047780824790093844345561205837452275003930821196515499437023947994856110215891570372721807715269633404896305612107902125952468669336685890324369046459849041434959150307160696008614982499340849867006033169585021514984745023970483589216265062492481013076110634457432252528204667003326894899549963745021981747256428292815211738489201072754281005702425964145903626332264957361322548353489188929592122974708804953167669592002554113128618480804802651295208793740081285953027340208550434799873002662409999715755364491863375081081604907692932047148698490606732426886306435012605972254873943267793165967688166208465414713257411593383152041712274816157464324593157051842163539260839266027310741381621401171290744935390239010164758832864838959035390208029743113272112629763928677435908655444857857977955477906572416595128325288831348686895784464175335157622084155580980930276097385222949964271477419808482576545045566521534188212923570118008339930264734127723700856452854472725115840907535018520563306307154160971498184121748834696657200221370962073953316804702489119838663738584363530590974853904724256258799881079052291658018700764680609721633909372255435229123744848899954035229926341147544718459543026124365538872490116792934041020414602839536405673006985883070120483664146065347048218445597234808755025016714039625595243760325347685621650502314298210367675017752662510318734087895125763996275622115501528750078424158349969508736704075873593616281541767822471465263088475906159985569756932404055898084441824959034502825336459836800421447683754862191815654424825022128381146659228148824204370643948110974401854894999777553431509813964624558426990833191041390759908800929154618451642161344357262080909015132055191408814983889545101471781785424232339985209604022940062001799239681765002534074303160660931706623023164124359146196642330447111692502752819878905317952985983915792730151013527180199834467755150182903877906032984166926171847075017197999282183908606519676651408825611890890972454063480008425445693371855023351130488980016375686571010160693528355456855254212036130726643204119972302446740602489147289607862899103454345056464173313374002104031045908181859725477085283872470631157098777409220415528474607118100449094555427428109885141973960761124262442518754785448496135216685560208188125865485676372380464957640350868791745865587541113114578106348980772843449147556229691376314147962600586505723284168330434414874495548242713420171143725657284343683877100502607908849328850599757647252907882663510288423093563370489915019558249104179469307271258521085186102059501465998944566138534710963023148560353046910822269020888051927428218838148542047473005863523487439976567890590699068601278553642266412035544788450786053238943032823622237423487176791823949990870603287812570704362341128865174558451228697695508615019859941256816453269219835181697679511064837243201297727117703815070634578571832158866493297513182112472435893602355380213201068749495838556331344107193674886897171760383711497864299755607758885553296136267340436193587384125694656121645354173475644150384979305558511568330527627975450252051202947481861216277663487462519928165813132673419906038789783395936722385765053449596951703520788127965750294329639060147614642161746536473311066057518563752603529016436743368651434963277353296011098590703461275525102971730795555278674017566163955874951285076331788021932529033602696043297066825209162473579225669187222108066827399833481233186151920151171673436128441366207413608883886010451480365186130250659503749891271931321121938273967220745645007579848430620073142314053979244547323422279006589541332289173788078448791016357108925457291780221600549325705277651585589575918276546410162193233774298449499004706898348521027734617214710025132286182957204052199425436835484030312883949325788599571985323237821097670919471982203454393313691220580904816905425670474105038376441486489221895845110283611393231351730288822513051077737427851315361610701592137869652856459623717337484112697365145189919834473336712563682227906424006136340058523926837040407963307990343534829165644405751218123944604988476784730367961231219220266224431405226930950192602756644833686715578427459311915089282415086520497427299467005351046842790188529205644461634027800032277807582621208725103805736491335468906435071441234706138585504080065485720955108204978416790110127836743137190176214393837553218350889246914606888393636274755699145917543457654407595857787093749921795316936166051860005278797218428635228910117226291007613731512823851612245574473184894677774560764187150884389977472475554529364240577784240568607715883995415698856325483270587726366484617674287251656896097699177574780692668859193822485758239048628572095431305229502220291021448450346258586659754611506576497702965609180134445719450617405539876569679347439951004876596158558512168093458062291778806776187077824485858299958080829987487799381837066714022162250871413396941384819639170682018771177905584380606443188951461174483794247219804461742420255875169388813044237777080116806710317428881085832705427610239077098566520702319754989782571428699858513181280776807013951638298344951814923200101080742605575439326738589698123911898399162584540472507142141938773137180533812714329046232222449806520769972217804478043705364135560795420950477021886640119500915797592770405876012545830369210121588894755170343480857845904721368623070384042695852478558719007065102953648673299754741047192602055650938729763491020158521599335189700904218573283448679430910222983123055884637167342003821477587372491630156868302664236363986333235372563530781241459402259315186089243980700360026537073854056503255067640907348150684110407706502802260153745114906083412675897241507711289717453661884601721867975769268829256485034344724422506132912109673223792110809432370518202624550808938301695459786877202677019686212014693815615005632277940496413804275633290377495744639163897389915649901662339349862709724060671476451865788127243373451626851473708265674815425207513161958802126909961418350242269127803625313447026244725078836328340698394432293596759511528609778926099618610612525135871374980042403912148486184881712417298382190980675323526594615709987096263441637363433559391374277567555787914390168938426495515950297108698016973435333338440672604047169329365724169342654226356705909989270861337862004932788320817430012819493949065520868594079286445607836161312620438656512926469821876616175967194634681357870743195307251139361213512031552963392013806304609216269073776961254523247511441288936309161197509094267949091143270809317779304131152296886457426301052586239304626218775460332048244524063582666566502002344346299573387648970173202622628286231934714796367226341493317797961524335327329352623747209856264102107900488998891295573651771113500495572798801054019434686731879817202565512128521595794647164939757502122176659848407637303992140092661556879884929947625122436338675758053994404345817581583152849945339654094782991716589099713339882363254778611631822662710298832502348753568257490409774490359685942824310561414931425777722232297283104584305541909005273748072731860621465212503434703722150684568569605497716298962941255246761134140923482035475651550835830991038516243864158749467674330351182126639053794376219977282869366895233881974746546683925927890750204837193405059155880081418899457389289062525225260464289809902830976116642294993984582973439205709795674307053119232416545998336488969204700578940409630600256181433177074349439757548654121255920683688561272901754133672413308591506483793449211725855592439183458247207341831542392152631550020851056889204401403858269659569010302593623034720342211931374621847016514139242004110138336424445756796311095109716494044726157909464364209436528186137981250961173593020055722749696749081521725358969061635370140239813748924761801598091860664819267991242314947712099911959897244405142886824455347815793797813876415666472839424221069270669260729503511701948001982980211228358988321935245463117474076486714294415535714975872221451301945391671505270974961763641814243598302036831743082177714839027684533413570459085644345436836405399715984627506866054491173547922081750900049502697555846678398577347988606417526695181163114327342746381038539429494049678956284316082503385115088656586818246693586725821618848787089561756729841310448935149112576950613641945687061697579330714540114364841411337377799049050821503513592738063831365738491467991026371456287394314343613391667448063222940417996497033657317630135456913045565673606410884788193164082390318750128034053073989233342251189744554652849271114839021735857524783090453036603155689647574509486448053331015036224466112291368625162623429143832954935289883146150763330586361763517373065661174338895044963249728748273380862220153145684383367300250038989461562128036723051404215316296539909886656095640819527506467199983212857759593182403150760191654034754062890495482154602286313749424173137679678152989885397578589180136569833638096926649547916060658286299902106974604135753178501447064309392361084581121819442401911314173284795120616656832645016824651988743588451976725491386035409626015426546909576804730171052734299596259555987368859534358473338006732550988138596638862013129415097494114973281280378043403582695632562054357166061444809936960824900871925906777713366595629776602936275938876781777633746198917606521398637100297880223978191883384491439604853326405609733164487954472961491714547901284027122964041327194659149550842692167859680074899269803538971320321364524367804951051857165574531647218322879876056691322600605680346674727292193366747045577350567969786470714245809293306309884578366992137451882120517407931088231563748188282180654732683926263832830908188351288651388657458542335513717790303487492354883615001559056445856158810995575417082496608343298622388297502480519149589079045158533180068221721876581336203811585952583112511841878298951012491527438641585555859351667325301196266360254692681216866648685462578287683400767522440864822613523919121851787303849575250859291399719057389165500800043051132345024109282926045138038707239912417890278651900155676193386866080974366873570912873738932741231001012843987645468901769177176283982230819460293317844846652246870766745561545251627286145043666391473850383487820153698585813688861737356303343643158118514279217888447575555038057499420459684553063758849716078661768884281784678047670164583010894349449184760751026620597450327388313936500641127225226554904254949347577787504710423883995603401204930682112939053005636994688571796423810518180003489587712736202733729772791552904443055653440223473880995565082338298057081539920884138751210907638759588297386814118966251592270980302174007959417519590189487277796430116050704365232685751911398656460922078088186988787735073295507973369017441181528380602917892114359867938933326148764786643442680983114423713967115415735388207626809560598415501309552522565021149990490186514656057192989230020677672785345410286710729470734557227540222593093401368038090710155700286054979289345185183110820044744310196789794637317719953198550272107116257148909638063807420328369132037335892665564112975924714894425317702182486329773169208526753155601101646284105465390587510132570360586617094635651332333787950517474409846403148291563909779548766042620766015919585316366307706707590449359430492086604972538114385140704872722982059546528351902311418807878247922890297899140569692138544060319981580179647472854593086307124970221999575557994966726817333302403834756494907267298066282972310960682528750494133895762214285338158812151895630962605641606322220817691058419259708216655153095173533517785391273970628106286182278744141995540487855128018966504249944054980182820090147141871311242725333459552303062615716752192914985815216849122231041564677269654983388770169429704654057845377374938250901653641916034804521895265454533480204130022167817310792515526166338202045401263910879354639996919055219080493757099878859668343950134493353955350068220094532062791715507868107279426677913898754857043418080779592954000294282095144140437184262512981745284103008244342100810044585094595205999609430615893977211837624076327894761831046769072924576416314981602983910796720600900762124810863913225378278062899793944557579795398245593213295624522123734494393969627702928467941510286529481499492024505592449671950055676682484059354373214222113736721294741075746516403629971468605695920028069952057346745303243653894961846642931130488940749247394923904699874565103949425775377914108686968342719218134240317539138643734369972409062914969131220670679124851629312153081259171683968271321763722348846559992792168996480581195145440834108425331213497374165589749205938927220183250314718798703561071252613915139975615619806844415625589988926153288214066250445169335282415277768253834963054821014500045091490811782123507277834031780604849431002475071627052101443041592746735631657861514828344252336828555106025338768420649192594918837449486313700274465246334207001526292049741265669245165210885567087567646287242469738252667707171292826878878294640502406070204614031347918276567386396623292925253895673404701779250695572880500226117423595512357534263030339275784586526381117116507860307079897022271697934017324656999431214689019868262326984504232365923320204161641958040353757320207459205145783261025726115945905515955967172741460008745770260829692863418934398579584276654112318610660270620127290780580138155533405284082523586307708551863208699258683154854048740947576563493259440430488099227204972897534015165130897210863225649930018382882420133141969011789569783121310980317141442064966887006315726696707892849950081073830644241080717531245853894352145702856245803543992329365779062148018946212812612847496584422759950566632101185959517126960209669743642065873360515828345206518971593989172340148325554375553898037054600075957052445391021964765259288980749976523465586296188027149135913645308819120091015956231076536187038221360323587791157594172864757747833010312932640061801839430597371195195945474914797026341829571023356574262085342071849360743554472010327653703966093852784259613660954934436265734921946266861458571467693401688128667742541918762570837546811602425115393994189688070837666418912028088419180940593516881160973456918884151864642550573630420594804790534331931500019994785005741931427961095630626953441971258753133746975193925949608792680515817581637392858405183785441966111661207832920213441014877250200996788175878490271894064271463820508463715560452594485050005538482749313465706446433609523642530761331913221372219024993417330135394502711928350487606795333175566149320302490889892075407461162421982162215739545780356250772981785919444612286082934412518262758770813482773977184038685030571100855457947924379621428408134074381832832707693658959031670921335153485417726907799315047762218129410127696191608928345046530074116881735568662990409630691559439179564456114321073891368462574785133585159213731653338699756115911252103417489200582306658535891370291683496891895414431799594029594547761107779040655338704649839290582338809477379195025104667861136799916659576742796908374989037639265622435470017462505961652941300049683303643707720610544808191251251192905323226324315567594048792028111151621985468493267887820866035082758625001901256459369404371484048824003590507550522599158963271377750642510252911116971212148032443354144453577147729000108951576531976821539344474102435499522995880083440211763364104085223695062587131869208126633647435204961569386261635676415623343450833909831371189717556828832909176544489388464881377823162286494994105162559214934621627673871271984991429708314524967866496507732727036962172295470182010408501387060407776778455264435121293013165625550868598880338663209861263515621798689496938197948976578730049804451995396140266980061083182478831608564331574381483694814990612521954389704281112841753034604939931721613397451719706895218313593449790949766461566658897646345004141695161978560177420010454036721613037584267668605635211745074916615062247259444076112667495266779831762298478163713361955868901518599638615797666634941221205252898497063281863488319084148009150611614351652282058141348764414507459206104642156129174057398124014887174652449511448123483020824432329960235787827388865611408303722741560823263446206443788292174247791005418041665531673308368825045259060318750732214623569291539907862983971148046403928773363097094068320655505392255348158895005246591151824779978669275463223465855429591825945477277772914010629632480835796125686662986249208893104387805775085868619213405634984942056577377684101059532528512350568143227401230485320319774566156571542096625805123646007086014541776750602169875834141977761981894418100336303852089473249627320416450885332158357236854678629774817997806152404810130010027235355676821434791688911543279478934095727832672657858150345850256973170859261508852940461680258188444702844148063225852563989948447748732742964122327196023279302848542164508972771956455304219006832163196690395871956601940863813938350677807845994966719111367017294183157503518950155730816418017234923737419711261124350445975515162097728673188961139804886840087815192862542023333199638995022052575570909818384322525467550470536122599848896143784401640157440374876567403116573298696860597207433589163657232720533046021575523463990680141621541911893808407601310531247201138145925600326071022484486176523846185014306339833032515893135908686866517850036135900588474308991048492701266621910971265329202180226777543300976922457678145459209344589967733999774383399409409736310440820938295406055079641465308909730060404350904604786752199631857320360521421745534089460697880873837564749175599850017578522873734215468203040199049776693614017018086353477368644852576991581684332381171780038416551263585201893820278212512864665239877869071515534611400719902402377957467613099344327759877230728318888190406447832056768660362810870052557838357561104949290331882568215429019453278903161762263318816133483670992592586667539161613223767352042536622289934092408432148916761045187637004798501999221285962198405981574529207187079032072570537616814416741118303565827681320190342570763607906215295710729894217012261522939954268600466647056482793770920449353980203876960939201804150087360506649404284444619523414860977462815108138163585035937486063270547594482447075610344636316728066065029190879714520820538483565773205767097649253295592907411471093922213983594000080262297493361654050616321123411281957072529369423520119894677891565509813411700188082166728025569045300501768786701500531785867093240194412814385480799869081823158787829889372589077858100832424986717709359678392845096683213968512800718817181426192508302513983054001480646210889147397655959352630940169502138491313400910842114640084871719215107342336123718836907093572918641670219941859106810291814249765654367694826533932830490254528849136097503827893538138121716495432178182838477246386333937995655231844318726664666714535774958798093414359718759171372744606968359376694770290133214579984970977148563403450555598013200248472521615083372287612231304304067004368416111508080120289013956402556709408017813650789100178438774026999238446464058737402337613716075220109520790775976348184344697209070711816753904272117627390747284637092915289304110845711879842261864540351276941476186883763419269414086632646004800801456247350636968107059236371182453955171028881141432278917074705848422548423355210578212176162959077793892222346394079729194925626842403271098578636548528143962396621607772764188231811883623430955065980230392983350450969680117055334193842487536663040966134227841403446534299138494341422178359449100400254658337339597203866521391424261108701560704433812193334461111210901204875131255880946862796612620141791162508359549609597091156020215828770489519310109783749286095281574713334587692965395726951577454396429782495809892755467530058105965856346692546424766749662021639243614630435623284300525304194573294835921821593357251176331533205381804154656740322909161314046487794373393247246916711924986627544399261787320320085866061668009231172343924297173897299457503004703962468414335599893366709494457111607045378674539918171437779370947979256672518484298410719375788068885949222934146156562371149118735795946753999056060504012049000490664879650851722345092150222987433093462360298352509179265762802488122994208600396707944428807516512631698484367998812321290225268910494927877191409303007354989785651621249195302475955898206312059765048049278406508534030540454303116100743782529025363261655544702643066823901638091602587003479168999826220664910940072585697349203450158498807960591589672931310063451181031590311649469306806296440174775375533299919456829970540939663516637985652707710220729156353024763103053555246147468406507750907719210160014564480209511308693361618480146856797017542524138458986626684248627855775564300239995513690187553676383754527252382705546239353839291101167369868028074002221257886835828956032926210130076311906267412938429063796920708563482273223240998054460961497692399313503437044005714028616542438223959871278723195946183926190098494308241251098912337068344567265131991568327001634886756112478735416899320139232282423280909973089293870247340549706590390238781476330121514878895265260815947861140007312808717814940018975747953233218637626562165271716592349346785565321870213181577936759901323107097910685304682062944555845710826581880127251260024143816172173519215892097849583259543209487343403598955283810804631378008485982950557207545051168597877568125842282637206883174757022175598941209103922829051451038827683299334398668210125651455911047335999968578854652428377542167938057916168365264924259787068950011421492823760916595804514410791849028551048404580613995807486140159738258905491570453497523431846946521040958679365338259107644562173426405897976959155934869200341064982031359446455966120543493591064788830346170920411175453983964572740381433564078305475712053071155328128409887938754357669533112593549260667874685589325864900603936462220416822758480407062924886035036751733218281841028969055218602251819522306377735044226721420530001671955197852023177538690824329456010240607452822096586797508157724890579893650528483691278366330770872821187477366363318813862597775113612051173864078314676178993144589673440930503708418511877913614703317227186450593971979570763942136614570963093849632565237826662400078390847353706503779333516790432067975280588929937423137358289424765601379157082566049407382211613400895221247179747509786085035547090513422851357537301254768373658710909267023827794937293414601789870020203660595561973114739310384264034064617374967707671443604717654407956533213887248534800105968475459185433548864064019071863742477217001090623801789869210129259535255238632464788588784630989964350179457252194118260713415472361267130809237883721933890435870061126489943209067931160359156169383817143063306388656530581413192157159863963762538090261642466980169041144999239696858521026211454725389469793410838673294734951382474285830097781893590679527990211541955227031272582414411325269066478570736966599271562946718125075468665426771414148652414388524485674578019177965498251191613938515999929447502683228720429234509302918583186190741855013287808211091417049992970514767496153352725094097531074070460518279582328585706633817807973942908041203019894537403039392294761097751090882412132290979591705058654107950808089979939880392175188654114701540967878747142173255919233959285423250627485511145264845911577424427137553701718807042463917265595488841799419698069364419727560479351062961603972083574793321831221245533065499308347817347031875635067468423202299233966818672261113178297576902189853585020582772205505991570357792117163580894561466004405121397067385117491938216753919742412629947913884304736643346833220946543446991889058082725998870764697311039268843079859751514299948985825923401344171349608017263361479022320530102846677699699370596738769551335102767188746645517843368731948339542466639972683308598980992150973673678831053417550604441682022360406229914647740256610031575757695551412105286731488507723827825516730374781204711567087601299856519967491007463925872660944670481802304394448545033579268000397318249253619805412188230343929839702365535658185571464815673622828508444138827868130950564688223791493466540850796193216151092721192840158659073275849688183291004338051371159324870444136627359548409867883407622325133017138498256404092402875087940225261530267056177098657909393017288470816213388840250918736170879667436960288724300497968363102391576023267388112604886700897965063723870031842077125724058995447777625694046156649571617416973606920042347218210617843893652641563134291573886453181370361026300801547053674326138287621639806142379796452424265557444737467055821466445893192238354366192230376248431127467682825304065105714185829502628825142981220220264552043018183095687187228701041398656187748580103168701475315983897315731394599114763802890161893152851661578330660788278618232880352854038824902495286808735741141675637856004676105351636949539561276664389606823196822437958127705791445489700046362039559818377890327315188802796499939376012580502179779140079931565258342852426601845065851760232703337223748008962827717445210943032469961905764381707697128664077978928738214871815147565978459610498882343579668550339711171673021396365679366446765219188859967206992345203032099333468016425864286004045433394871146574353110779162024378657341442034597159976680628386396629581356797768211317503664308049959847367125600581733505524048022625571468867545367355916304512950734530321292469644320212731297834411524997879017103863038279238004761886171024309993113017003260425952358260891549128756092865859085874503183794313558451859366493332085014577770124293329239602582256088297089878476194926752795683189264117086754069726868929034955553322942061705217504255167799069301148133626222721160949585795945094609797595030146842690345823666193608724598137394028030909942772541158358122779832748807602800919551130085914022430856088564789801547574117168233950272962020352034145083560653240996517627752513903729927630960447081761626196613625129028347854448000901925325055562723425518504925749713470926873943120211474769869771494582539577586263038124669117010062241697644811076046817138543824386951515138483148333642143383267389323016450204533859395901703344515584626534551444513029756928254396911606538669660566713589631860756114937889668431606687141118974043259453889477939619606272401338009479545184375942488828267023550255513572086640450575892514685080403557605757352963875137418463515199564746121807658237661801407049615877092169688008657233245957864030917599647967954354633871916530458836560626306258619923434536449559729885462779126027521663916242688384887306999426703773837085061999247820687163328487662484454042105139298431966482001550240331692258070052243649746586276658783004589016711437696684215078154807502394257832930916623138023363490369304424194372486312795917369147379454267663133608511050823079840231465809369571140400548977013978475679101718577583934830388744593116702715962385497346122158254785616175275302306890862462118613798231174154391985461843186282804479070023703509098773331304786508739661387662271142510190741904006401146017021574410348701589761101931689494184855328447463202262247282715577905087859156307355096145122453299111754154971307476237732253610277304952350216000311110507861267701576741817650995351912278065568541733645247527222497631563076306156603188008454241507505287805535599740934915515630224689096524677310738409095367535653811048879621388278242200845459800002505180023379312805272705145476086468365920908035980477620662148916042089413058380092721194299664611705914888262037358176158344348481851161870258044877372210098762224594733433050233999603058324434113672934038039531472812170685119857807050273400455659900778896569097022598208677767982378539841422372614807618245527937188275516003696430316594347023918115425452691821082503751035664628383206829701720253167197657598554157630082406260192658144857996653989087043526822602938450671057674895166597576810606607136448659473121387006523871383873444962919386051867839323689993988797151921713461870450887113478289551075198264327149270331664853633448834825950191919688496848349316223951558764861252400323343758619079247965121996775962139231950873548072976765582180967745259285603017532744530955329358561262053322180509589688687746600533215052138345340446215797167232144666144120001497645109444661986683409609669995674271137302034212555600971140234011393197917571379606663146739588156589527806142289515788756799741607327612303572972087248867713730051063000025778003856834649367678663443975236361657776449005033088194937135890967585938984522157731657693831335371907169368819873310642193672257490284386540894050707617271965369175396378935233887253350610175011088008181051466073984369184852598587942186999167419514532717882266533075815929423281062750665366093632637260293541951200549694179160560607909992562740879579384641736394478237190059469990707038033603150936258103099506598946605837961449033578362463868934892032604152594271909459314469589424109415867812171837784311511697480179278821593982858030531980175369010274795811716233753918220647964657189528217555156733218894918414740473791026923331269041216239748730354451163561696012105946851251795345844706379781075104740046841781014927007957831906409083201327840352611105470436814460873201014573455932795903604228840508341988734407252323486850980393331871400522633857550144615489970567606838991350980546149092772628894856049503789964796708185117062908475128854604607850544843506430333925320034447377269230245079018816393971636158179048599672664725565903772534994313369248283143288571800879961896937256285763194803846712342497901563421409790266988698854078086792941140935142579157024253433919552744069093527977873886206907728936701439068612397149495171421977843195299653505680210292235342815973008504310137346576992721242386176855432580092537672505714316961067228254000070545222172883336800980742077658185299897009181929487131747238324300746153624254029873023131169472290079705937077483421877228324554700120269070341493699951322239177510485105133771106934008508088451624616312301215979831722400268631289623092997547208339534229620403985680595651349004389587811735987713902209806532350556967005137094947394462931936855319932445905336953846706318578036242304745981491002419432054143983755139961450619232358843631515939330038074869388426626506043138510620127010217110993072925813268611075409476813548271896165418815142077126327571072502078884763876566526222173681016168284314814330567855458694923406107724339598074155379555962950041715224935861857997183421337553914948225620825069276747494596572177809956102707033406747199831659162158749770659694539850200914612133055027502367987542486370034402712295846249045075039733736583962783121513283696753140401205046850636826047574822318254614011014580394161404656384740559564214736515296519497291555274936967674361406843051445409899474405961584464550836768819668139301085824257371242558034449340463605884732149819038417470093736977036553955719317281859828357244664680740769413924768416757403225396113449305294449371325797083271014725456895659054383519637392806902972456852383165023587905408348114300453714440235905093220373491505586973951962778661197389525274881715062617151480328931094633962984781003512688727750104441643265249155472193963420686896505547672770860394055705164292313193072721966020792010688402129120630211325031653300148041987645278646543314039813229362479074423639693785570595276541099518128368083273214888607783600052545430720611447546791954566797514935843504482789427030012445225468379247046916444290021879806988925609843977886241968969177268532256001385582973740402968288653461928332660738912768886710841817098461876790059947059659699196194267049257062623486474197717054506715991186984470077229714124177113108770224597074845331986470849139924893886047588093507684173392251247257297229815537305732215156243749356222628029971835122960472473440261016671734688644038458556003977884846963037319604138232280605618449265544025484033220925787749687599530644871949046290734081476733173242955470513389276828381510381945999007200295934009700925191385394613030712556707166406196393530402517108902120619246907831010009735027779468102370367976984328015852996660830634193238112247155320816210935444893257377694690505615366871762222891337714731528244933089147935237415220696059553344466911068553157597789884712033328855358276415099787391429546657353614287205799361975881646180302129186138426616526771101353493476008695886380134581407425769426157145326172336314905935915122289614695992182204677837445137352572674162195367710505882425144386344811121888534034676569786141079475360953696012387094668465735259382882632160343298067399936202992834316234073603139235606135834888222619690707521634233004162847990525797417026890312110190244767344773169492995938801010350045038535693125467508358688824864033514791796967517695518753633321083063999156538063933821507426112584159582466732683623115167307468815861042559324896000724076795720113467717820705141195394229451237666145744239218376998734141012790082464843390532004149136750983854933957315318368670528635618685793051572807218859654734095213547757820293435671188603132244885862629480528313498992012847179223798957496698650356192733521666952320090730370708957030381865052692733126017851236075755801238887106604606943919891950049951576096581533078672355749244976910633069437888379604451106068992088866441347396106889219123790856371938600510562124387634291249102360912326962178413538031430871563159508121356597167184414524980896584649264331383941328267859649609888343962123456384878558360130226485148251636145816910977536160304694639932368527802166267903769706790608021387940063203101681183504083930020506797714406996549282875809173641583227849614303075250002769966022179143892287736060806126549780549711471612064386333966802602368643987825711566558264866163852480208893034461706401435276680339117182427905609685428742333038395422497346621415528479345854946533108661643561230897202997159595308423283301789343666456791849547959430444814492208118265315980324997178512076981941330017920633919685164850474050608216147956846775471604965106663202309031228755972402127830842459293372367905037316786181071276360591966606775758953041357829879289977775007931488140885315974586982269044377432298953139876752691961673648153071969485984358691606410581122236972463361467779030769590214688321526620044732835341032847623529146575810490471092029064091677292079328430286402085576776040088046488290983138755310650252034972177630305253226494739431141891991764342680594342692388405836210748422563672795467394990996842398999798916863180711136306865508628090999889187746286995352253891534156307072200492330716292262639431316828292732263421603947881142443903452363213787961246006274288435410666906082713277441595516387800611606235397216117454116393175978453592208681950621358692540598694087449868049531635097592914143120938243091150770592961137069691244783064079717015616161196023256599004561082544738151120251199744543281378658790050183804070050354546415343270056094477524012255103741389730329064292712098008303674680695248270103676993615471477723300797126704801827855646218607663083185052566807210885896886670447752432444714695871197856795464718856937452828723304236379864420052547659238708031641436799303936519369014455599918157632484519770903233555814284587414030978058406627265956722103250726787998802814719237716128850979481130162475276610508450603522251535208075922237782044032834810906628744213005212234280435708598789242514170773427032634089240706909690658534693868243448771608617273921587909948590983689299999023820238759320587412311670795502434162609446506863208961757177286991610500712288549690225587153420387272783453072067892354849004847631834409794845355880656138208329580645384865027347229939652282487990282378457758331458534653078961158057638558149810428534739002906149167955269182872825423453135443259284215819174691469425407640815461673729170390176418203661135122033688388310924299248192620653743615644151679083436515643914479946413714671322576156035870130961509182735915381009754835764705020342294616086727627390255774333991980624822465941610385503240749201589927616255683885598649532940396617755966126603397539265445184996401803555338038406713767296595670883547669294736897888933889113978295127834467771920155006954988048772923509384321507759523244752532094657678955859310052763458786618092712713807834350981318864311388038996909128830203629795308179085251851965493315394431086803141598019829464968761727703176233812841826465283138261724955275913492766513604806332725568207038287741249019843279875667527415840416629043817454983665791233614380075350880464047401595178837748856769945822850201046978260888898950205359341396912702334971072605002524348193469511422391790130796865050412515535456792814544231152146632377119576969289687738081838315566606004908813981357987399700842629069264699811391382840409801750717227906793559551807947536058643665345846380462830804194390923754236915469287445303272559046543021324780291123506106575096709076789108811852633949529068602769993577888060421667988960241716536461451705796232261744150018554030319406480966298723117205650614028102235692470829561629568466651754534343532211666232095833223692649673339836053319614176201084122634630038233697232366155644519736378854754619476928294582214191788042975619536107478417107212439549699138376310234563833863908422926384115909728565276134779649840682026183271698542013252388625383728877644060125794498473172837290861177172578984759769124649109360608237350771398291479911894831599098718007237187417810851181860803515294686909619728955390167567007995682311319173888550027760581537251071907753582862335349787523545212947479537595040525546168532215497372247051967222071366597618046171874017229181859459736055573842963655913026284571697929934914966055054460269398985514628470151891081647142574456522349836670899954064294021307776023475169979098639275346274594133990876501750683703948212424410023701436355333867782705274818050342039787489600116894860156241504512465932377601282583458052253278510222686846602906374623402785524939809949157256807457021582222074992725515691489282047426311244673559506044655525886005281212469950400771966258691771180991518928396513526001424757578604061946381284565776189253567110270392685101829820927220567803638360134591008507836243277262829538938122481603364805621171898919939279901593164612154770408765603890871890264739826187737768454238972627683256002673909880226389571097552052034008708137805371048466415319005870042971674277987419012781557011409973025996617085681137851149743468653466898280534073907318714667257165565369971311695246635573127565518328581847670779204645349854939714146006815734763856029635330875368317719941442159497875104426525741099935701374010341916739369466756207603364219714819616427454972087912279542114094366149586021416917298782630139571156121090085385255268208421864397523401180643934168496425937105649334951466663937505478457422073179243844186563248192242449119357980443439072349987440133046089553614466011325138438734686516091758068346379929116312650208037751900736694749172747557968479597308320799850923588019496306892411884719494756377796139573028862657467765147303865917667014090888733057012876330562704833882163543717939322438059142722991680441351975635125529344683381639255224452264626314822066250298503576642583064981476511285715503692734097273400760767273895567838665987852556117040981195101283335813875076438578804071793750075634453679230274737871988420953387136072376831804174909251090071574912657374070690970447556769927741416234513855794214464948260389857433614400209664915372173544908451508660761387916763680515466799055541301683313996218152803497860128112723290939382772471364322167028896672721475806373275459339368256115730679437001269131055214443732961884422783523145014433622818975323450721933528846530240826707765317558711233914318885260430760884818246843884264430220220253987752559778289513283021756799084205123154637436533456506361141307017817467610212853592508105183464780675250993128802848813470735639044921833132446800150230833202074177271996250751114465705126796314901695599287593302529515952778767066147919976451766345050785192257512304912797798016599966954715835109750460701080138644774100199935870514302272505063051172688428461614893900590839923307783379025896968492903609563096843920635508940879622692053810515475496653168299635717310399209488723899144511391284589530396581632497984435555523952316070541216676818944227540639475140873152106268211858086956116140011043057026785229932026459228408893155865542201898994842701836006530999841243345322339675640443150687605492751044595687936584704072105092117783872552096253984923035521588190899236962489045048672399546315418662349097193361486121107091256635629305338491050693126769239228310236529609229017213316407847466847897026400069261123261654142838079857740957152992580577620433725605352403039089860837591969621221333395535291876501897967797183164497175206868956042301359296522206964891597379640025201785687589485008279480674292233879261624182677678922656409756091235669218367343598522772705672086419460719069578636054027702257394579379328160984548063692279537618691016352304452979854392466427058658008573289021193260029962117532086848910666991306856748487920110320574374057037973476539506018030320298490754512562847501281723274148780254689450922075833488156959824498133485220911355469411304319531249521214316152302914076455272440251282277270848211359232425731877567508227553319173936186784447489719109593435645397403852070437502388220760382866968899561654240480133657702876830690777551384936273451186479624363557500451498879321684580367912100083685046599486321869783122116416584924837190565295695673996739815686911710980678634193611063875597559300391584967680217718321185376238230571642743932366929230231549186341667628762918194007316334220501057662702780588166047624373762130791542992591558188579657835652081822126140965858600664629204384939144781299746508746790518957383990476177369557706926829234046897861820638606569936638495270277128318587668160553527327091418037328426690858639615434412357302163346831452534633278558961852228698821120605156398867532818141596687618475863160357138500873681407795415583043844888878630190775802291547439453881950432070034750618286758312036314763068708330017971892754796585421083653961999984481286247623851451901913173172491775268361423345353855921761633919905626396435154863736274227829046121624970100750361734205421121480089235133386690571162964846906335582408156124037912991150556216269047645332198011880082498887407451302730948068721016303552697069901389979902311844022522080111068318000430748534951473911019359423587882593648560486734186343184666400950922260142344970236061403275878828690931381996852324061875050078606961005201127071825464519577771572059318317576863181623534094247164458627608681099956764683152972899014139453076567552837161378102923124388338497262174637170368821687639891542431639428561835403938155401003635456604995564708983112934398501444276272504946964664300359087948134446402160783485364750510970884455866864393673655532470976222467998495485237449403970832029879229593362684669490055249147418019429845745633776887965652610896184707183520763926867913249037551457623773251589635833281154714261484888271079571629459341107105659264363585370914160891469278344661607596216003160552600467949151854075698124585582206983978313155473154583758644920140565438889507553152278502010588673096010424892253751041999549328564826578736044436074151375189589565110305516306445458540579870761872492572552345669000985890108884189215263057162274130528093301791872878915162585147284243372109917685974982798324849214812025564024392684496436884139076084273905884175287868343678460918103450495000704092147523102672381952347482111807060025754718033710688193190917768951252053935424575910680218411887368068504852765002965795079831832055861022405371859493316016159654991320065168620137617222340380377254595044109571617781996268150783028984225987499269854957696952992717299459622127425801990008931385247869968793175737068703101501123863121483756674454503854417065335175707971439274289215925758783754507093485384602827993897846545241276357446447853961225047834534096890997459114320700991067033157624385823313274801229970390635576754685620440187009303916592815527876014044731604018016176177241091581760355413282120655178062847284144845281681188440160411697008387138141715607650802225675913352748123895345912685991830960887985731561094805542234700605576773466330332051437994049984516605613937024387916353622645740175668766473957358090576771245345316481520087781409024001181044602492090270905357736047259662602208235109649591004213715467779853402652763797771404037291674921899032447839729331374733342774574711339039993364534405653628318563270442413941738963105494046764743038318331592253143235255791879386089808893482158214141529997073618016252626411190144740198909162111801442998792740907139589985457580475712375967287319391195678391160242905696789395938269555700674793073173146449773577731062325929209590555568169727083639061999956145139103032462067387125450328583620212463612162443108046761377250374949501311646904273916724624807583846053711460300906644366410394464272289371996791373039447070967736526286766837258211598832550893196620043063501933735894903564157551719789083063404474636178718886252379209604116730066188765834870848214653539744659693614227461302782776020036560757446644678677206004532677571021586358111982158923413538018679046871196817455030688803422335191438026597388077509848196577618818599379116816091071562341737829260526096089075519385117207390792262918071430467484354473405736858651476039720759760595305913010519271581095038122619263644171897696901271007056168648292004619775310274052860203355114991017541517681531450206266790158208968203069011493829593159767483578716703427674084110350274871681815276538841329242010396629140712333024877843597228054262186915395752243398912831766848839270321929173935922648202427970444967800750688476597490939980653422662864356620973854697966282716466620707616315713236368366673291941858618650324075839708933300582198317581342151047294526612843378698457511574416377893716791619454162245307106334986464743818764293037478130733569193709611649239568474368659056310394461750980617133244140104310672166709017775880434089036091553795667945997747051805071337868392173229210687474135888815854928150732633195760409018404842845627559336444121023414192107057378945981640583041399139692191849132164575916177003559560136868920408781506949631600701410929400766028764435059038920860117000967879779511530370977415793811520376764416553689966076703885165577791589707301238314154451674517029168879700323785252527549042049662666497932836312965652376424774569129845882282647952285993049903146312811412355846023777749268941881267126060107195773793035133960759649765984299231852479069048459017050032862524000435825153613631206514236605839234107352857110333300995502354960788556205718790888129663233545948432883797997487669966584717852646997316903052909108960061494452140057904382226683546601382690401435791575217232901858431913840400576402040149419358049504000717944072409331823478051202063190401673643734552536447556335066724601715292927157103301062338718363061622616605255155326426548647470813509496765573030423549549560280944717553285782317313582898935465900250408924551619461424314173772961582267758829125611075067915405517595012844522600901295943268566747773232212817485470163356056809995848728980740124469151136995513348786442938607721879624432369843495219930527652680934447710850657525059081600584578434864917894399573079941701526322532081588534762099634475803990651264031553594105237878308646760865956097597634352620502007071248542270604762378139149116254492613065149256930321988384193325615548219193085884313619061230433665701042434824207149606138568886458202604388442372686706117813115192218243791011067090087030597574284491188172154081542756211994004912605885379294620003947387790890801837911989841791211919119926908291280550359436570514208302034121352744314538134039226202288922006312696365618624404143442559370679585273824649002286583537857176981410746250173877359930408731400667256275361979069581593559225238166021438458381008189884924276811923483472928023585455806768114258252547370017678908525428416067243944345757428144648196115201860041754365299779179851391024781173841741839137374519288163849136179613487036001748816881224872797576980140046387718232858368852179386815857137650778954083710159823096620432071093740537621316837354031354133352118062300545450614765475576672049318822354591674666399256104115155371118873360466915516333181150513669894179943710401276171730315950992177843311935229544099929421693850156802000855553390797594200703672500712274084909911503288116721812575957231142697403625957184012428851157941320372550875656245042824945252068492452811707822332829000508930707321862868297755039273191719876980863055824969985235333529202698372120041560061358935733771791347127510246410570723420332117471850786093551351502994729649548577909545130131109402234101456153067041777948428318437504579903091728854459512621349119264095912997964698210849968874943913208904350743283260586251248448572712611407796524819605953068741918550520652103158835428371826044008606584640859174648897677161265866023159093446835858408020606536381231115660981344404120587490024843789278903418707421996846061121912303520013995900332634398585181719047221842507992053265781784626210411016175404542964780032371347661375615454061446114623250134389883835044191648042636409290548448280798118275800632175536774260552737504629573354292842062044574677336142099576348303972181319709108393100475755738844036541726505539362895448257740959629431164041607404166894190762153498787407176525394180164122795884331574484724784146196447400859158104755963074523209801670919864773815909424428546848089697744609413686005077861938571120656360165743728029337282485604735686778604112925846897466604867205062827423402821639022366810154117641874806814522473240796427995058070317236182745174940641278936942670792846528026947149637832235511059876965079457543230002487389017553960269732971171237776172970871794197225649778822649796719132126722053400545124699592999644541638896370325708589253340787205792284705328407428355828037601904784067732735165150707532619267747704297428012404837975906194169557416511465621789089280304706041372608810679601159806231707805351274757373743959716041109855289912599472700123641468527604873689028178652646096941614818994512771375584172200612064498222070492421250398806866563410585662308460284511337098897634011717181960710379053146371640613704917847572435814329789172611744904712717633322632245313454154745344628682002798117998785495065170149163617272745456794959452620294462040095207325200631398512495400758901251654200744394042108743691942560568101926472127445131419389438358300500150977080764627848663511072397394195420239875370871640615823898528165538957802690281487825984588332962200029375373284930133636609815655986869058382961212522054167125994591765910215127750565327861578740936864661389243557184447506908555104096358444603436928500951585041835750631593350587355072417990131818694941350486159535307790333822386915464428065985452968134064293521838529517422894093348461637550944701217982455180207017468505225859426785269363798330693749929666211847347730408420014954867186300555858428046996828097107837677125858142659725578079758450847882354160279529089607498342169120333978890918321770811324332260636854635455632274069900883151347062837458805116552744439621694705713820969974636278182058189562246839993673657140158272708622449847599746565582622137686163799493033317219979525118939779026750217080020189141282146984310176490247519542798765654984021529454982332618339624799789772073302010082617325349886545742156693067596896054382477478338193955918919991371163317995229092651092171375116508928940114208642634775429681339903823764870948964352531714077593869439704732193863009156755694402058934529639617170911946345726840846212523239173231988122129132760617837418391031064439836631620021198979024843476163816051179622551440834192969106799079598666307116286252799234837773979157792419438197910374709483957214816437694708750148809318132284835088525541074276771256392624215842655504872570273216014379117863492520960370617738259565066690468792065715985042473546953736756712337188511327203481408650295871258916775656039689408475885478814535808364604011824494271673868668156379729344336702151100169951950431826470215750382137807806237386738054878069939367299162142617091792009441109620570545649935301427793852281050937069106469249591800443175227592385940080894174832833287272534728442131447127865883057297224351507297250189064181037666635385519509758734457106429636047950199282155943291450345267867199996958789820827080925074934610275021710821826695743753178997905297395872699458426688007142805866225036927774297056419162946314807607443464745267784755637900049718519822252726440299426889081040142050325760343632183463939492856555062937265099238191718173385915217727996214472125754167617956280464648719222898631109712448251639349193198246842536435024287436459996347587788650725606108946116007962076354147551075278674009020718256002658498783751571271903149932170499712017405339444304058559163208864989877112869350971975082422763400287496148227125002517919481137295179473938827794606409823317954833383157789003717400057190845275936806393724624314473993243646823928152250234574990114407104199795778811231836127197756786767590401749227998362533130561678471602506837242250443645356015437537187851562820766967251972116975911582056314832698675530914428584862399263413355541851461725435128381771711112723830342200137083117286301046946332000307057742887275172151324899409496488229512520145542136097339574605620476567782102857666566134690062448366057077858599722770830603803496477936215699588233786647164038942232499192883037592090440888223563167035662573317504200908229942538861944201664989472583683928219422610659899777619089175402741127253758126553209506933106992508950565671350314544290313286737628868129970004717770358384966309987103720527319024284530459511950056098134015090302797181116464254010436694322285459544273374847878511113627626934431550409058891044664492206225875353696230777334934333363042977575328279937182721065105789497470109124982147670304260888416394180914336908108147734653612489427429313824838341578722531240423720778137284709017000960364096900583222045142807552563875385868545030177915834139256196513120573069433460351704293556632488231804848341987330931305990886233715528157540210733296198775303961631920997698731800452136761470493464190527699969487732697858223296412796610028290633437812747238614719339269398229871944447563302353156487869131691668005717991501436309898651737049827948889094105889947523105531718749836943156386029483614985303162540468563304541877372493078501516088900130943812493601795040825431969438321612749716105494832143522455793737330717066660076035824225777345341806307730831083210359432837522998760653561054838733454279367162350342825315628064911516889504998449998695133502306406568863022103288085306890448338574868575666486565031777888070327341267887236619786376865267641349437219004405820975912757831901619331093571072519641038848230513184947486556682230416585087900574892381984552818625291795700606955045426390328575038881613899633131726477637344359230574810275078529579305598998035005612929953788631613111902304151868929745219477399687807820019866242230283798424272592211102070744582970651936357036790305805444148874465866819682697409478072542446222054540879523647595278629608431231367243299128135470141157454878272539327499396144280478091180505162336218250311156911174688015015788995171856259589324295797152625906838640210183612525496561825670102533200472810429642530316230726049409600300025650442586565510957495728898293142034277260518892735317737711518553513583756650618526844612422391390803543165255398439686628569369650981055911868249818439171252658217713674079462103898210336190836886822905632384741686394557211037814394452489389421516449601572872912440398182704292951632536682594291616958154332909928456095225820156388791046416481005341363867291923238077012577883057052409056348099249247962515361225673939370018499697868180149206829476181379400804100201543750943192753091633884506080541303419690063974689147640275898115481721089918347933786759533987121162641881209052839915082234418601935159068851958826097254260762887672634759469334718268784350191719146599043716471797983659227841024866648896740825201134076591402429968145398116964645454949051389300166212670758897350664277363572215554368551332952546389437493147332018021162414407581235714555073769467216716479445143700694290483659549349645327579971109685557990068735548884095470824372814715455823360629342255997649737654668254079142393128648217619893769896091579361121594550108521936038733256071419373247449451646284888757131207211794565564104727688885771037562211101316807290348423024710975924713165816376061650019724192487255327074648113242435061438446835520703575842563988674866401767761478301037544257264275785499100220655888678634751543307491001961351493686308390610467051529086193431582881637607375840568818623809907626281700949554985870579640231171445697531613621337402303914700863254146250717232268217950340519050845266519916911461604093058001025762539175759377095835868909434336120093247056226445187733948556506694043526585842262253933693603444313121190219604270588156969472708648552556297824390230507321429505002678465774228991535469975347033859950546081118712844728639785406331950915559981294230741302787084025646549320887456912518005440766586197419313653613470355437113557612923895213084145486911936943813300650192016286115356285017698119112349450816570239708832318713889312861189630211561735598116362928508594013977045854406536890743011342867915510161332260333720106239606401482245950045633476798526860388625556650813072316668678732120382070716574133092592827204743150833748167967580388580053992523367775004704178879093651880563855923374028375626328146637460003300332855066177360289175531086523387392181709964195486723199489646514847872308318004757527735121505660758193076112000433114182813157526466322221591247202029942204742409619461488883371312847517869610307849558747102833762768784159337480389647415729139530076953804307348327604503429323070899794607015427172038585889674733031462404309533335154943555068181127733053135812836016623862470266584282315565224899202015482478559671000052477197513422703309538847885205278134237063846094638539153172304081844397889170724589743342723822811393209437679915006093885890544190186972350738026422478011588165477646749291651603634674486136023026267337846234989197203746738179438362916660953365624984032002446612475405694866730407133235513108724968964985802039161503133747809193825023536272492079113402830357241213331119556487056295400864364441436384178202035712141151463535793190602374690777987182360414878700802282295509859973648998736514998082315336126199799995532264975247326549423316793093606848380811997353285062146334072777136689713188244687696319764647988727604637236982602640799879472145524365125501225374934876601528555524564360008598047892877678649484282136124611367327636958090990658907530622109010763494634129859442657105842079531966770945977763007420352082062152151782034757288493424769269563341860801385867260183597277095718179369553075828999957214864611144613988926195569958821656978292046147277894784357059477260596568939344737359839108813536503609051013067624769923394526638794076995566994184212212775957632244119675871309957208774024758553293195073932249814294388110945235459809050271021572098128980660251554222935951530532054612236885453397986292541621121138751313776918794112534508313422348674252334242125261902175410188953023450508768916498018864662594287763392216524431472751727896367095673695508135213138440225752423560383302001366110662032003759937380228495476405122682217314153841269911929711487726774440240812494197672128559290498491108396968087718148731847071217154481396325552307923710730774319695678409808824684631046985040681541537931494701150919434388299378341403781685220839747509541041963899934365846715369879019156058683506656930137966284910300071727840362035768369377443060461449013410790755088546147916259503719215451220005615824911997929905877976876352140919221699501784555838418479047901731126151360906739752789073193167772109823920409710456281878284760309012263702287034318443040635632309685162129961626580470753133313675913453834447567699078729026839207697793148513611147867234009356188306651806274558959041023868989186980901126558966859142001154090778915437663398692230880390016955840180758540519249332324974543240604733755303417062212291754918169146141114392952775050237248288377898824826452158242644452348556896213183804141344601429656874496514810363163730475604734206251952230929149664335934803952118545164559454784295954132567774202011067085010028712974017911104410529768808085476537896927906824036314210248542588371153626540379366808910836205785059892261575578320230166553262168110590661331407029778137625617866527013497466974380914655633228422529978056572828211268644958006041553199519989995729319678882623433231733280650760741280688414408555751323067374072798189882570380050140947937922409709724441005359718354660776453033295719295525256746036791354206900395126645699574502917100935645597734366978483171441286566839400707162061127271520014735036551695567386344758626954556129712902259395835972636804820176423912477813984003841371607470883601269460768494956687286598746434329086901845493425758426132095410764744873348576377412593660056182488693757277174502199735568380409577269577012159045091124320833728351022761058856322075748326954352852507163944329355213539563031892291379695384762897749782801645343404999673687777901359182034967937369745906637972765571159169244676311529543514526465255763252013620110016976721876966031236366620458348846087579915350507548184795577150334066796609007934070669565287726467499614701509880632251632326621012039797523085051227990783907188478439996826884251266650875788414659380964015497163119592970966047503674966031469948955001510327472754279091069356047061453469603959759162911878929400515041647920848397313180955136734328114925717164620043020059843909357724190529379848534452303858854069254139172140742214415178399924523234683754408040681087718537092933978887776401442746267818772583830836849870216596129888001214128492111125048330244753412904693735403126842311072670630868187479594709279595341941738487479837428499159085569820952184614272594347050765139463762333456353801365542411607325909140789020995848392593769920490588445654822367590060677838902666212802036273601523972858152736150389360100695458857996773371392156028378111519713154261416756094705302957856325178724977344513265191949337082923347317176187161004191639688902810868510796281582689492168839726367089051467382440484735359554379945182621848064127410570331596826512118377259638083121027774687992783494580378685277909366751102323660508165469645912224683467644320409467102003182766276494285309411134730671758732734049300032941415415939474263516233087652784816169155703665306393536168627042284288878504977147549524328015347201205152182541974346310042442205593471474697287350490527754594568688668494028134110330815018813276724089277691408015671037883008861792336393132869746650608749321623048715402184452008574941145190697678759631010487299524076055366432678470669135372962255119746331494040654178160546374204732032346472090552386050097656912675942961992955139139977985305134383843360080276888420464345398335528977069332288527734332830936066773801541657080862328914974395655085389558731278609978869919997165275181950227243964960870548036845439527555459414599895293794489896607977058791385305011141425899631371271172068489366381285400616877537583701133768330140946007455825821366942920949700694371039860155083523295115025849506651901292081331846810451775669703079623697416124006253124118503492973028227031809932841891309997478381212891751003786134128526291332371479510617857532901202161769248516754163231274295086881098742122697167565345997580287743082149239333408435728125717214541709190481761000957084713876995204476893196422582211503220594001719533854273610954174947626630121409904841159700423925142362081907145776790237957302735636628165335842282564840239550420193161243514747405792399411992016806992025601185984202299497962991188163084261269102047429913358316018385197848619208522334129466413583554249522274563745289792714865692964232842572303799662238995065174588742524150279379976922429061553329678080201411798323108212547989761385297486824713421988763885159060309593904348036364237318756735459427831682397867337191657857497773636301571468063577035627503810476270795870984417077343076509183009444479977020658305258590421851536846457733158864384300641755843908052331695558286338755588439155689845917845122916901006402407876750273805617846269549440067083452746725197037693238180557228554867755704131838791980918264734845671661065128849454384550563873355316849420071394902642748572759920533340310866769696212629238538361384566892653827572586459040969066224320738749715121164732564156959143270167951740582454996622761516082416108068351499035275583418427698667467561139607642862347046427426128192131265990364484291134588692401423736166267419272830262583917585962805061789282696936856031314685727672267711431084850164369158390041284398762021221204029082046983731198077287033838469825247887840824677447992186394192897961379959198034240188584990807614816001739759425275980854267234508288020772021779742469576334885024551301512906892071844560565119329912386946790414658027369881262434616932189338248117912104026522688060576438438268577480480518096215446128046570871763300658969903441212026257232335318686759641573378156866366576055829220244338435280195115138455169163041767827068487543119604175739891048565399668748000089892395775171074860821679527867523270186870248500177060463796105897989310038170335588175524699843102751364809527457172323251699122244243164596493393032003270522056894859659716940986027708313655912273564933388737379926261767543457725575328435123388180213305879255332829267081875256422408981588049046105645800772427974442767536550767694917617631782541308355056408970749848279278015116266266298656146121063332107109051656315495224704195587895960490273737651700561791013605490367904791777913414586755061644854810012060180423158653454364109234760465376470880301488898278747804617216892714633355504268913658332713494998988002762528548126348583761721234103713762237817156912381657078710430871626729549460253760034328945737252699287125315524498918945391193347986994768965324301666449330598649980049919190582327358941139302702368019619602661790873247607773311318305521035344970316809927779477049957442332958166866918903532572484171399029680729742279677047959005725207152135064557159278683758780274620723532329012817917641169704264843238894593384701920324334654164986011798119389701026047647787009738337433824779296319739512636297637489590819838999918771123042803750470144344461261729879958011794256809559413666156428022149978405427106471327941360824174505129817128174580983698699420820691600902355962663671136938065023549612479842604631424592229594003422684933781152011929133819259491841512470007861612067621977745278308941829690423864637783860217488319984192157222696871247726209683761560395042402766806111492742602712116223352630056821643733720352434118677673106760590604245462009494469688415134592108714526577379986321966604226938706081847000034266006547839991021771240044821289497157625681920656299152358134934227077355065798628427138381507703325508458613498866371072628863531497216301098291904375797507044880897194220577082749338922890426553860804986463000035203130561414602743052916348230640653022628620470807339639122637493426309053102312902272653234476149236056740870716425251050408045440621149667424936803892350414169320385173671602292980194099880437524362782646850465065354430429301990394406484947534093509484264833956926951800915020809338494075655876855933967277511774466311957021137613214943205027471527588770014932032628863039440195383141809060966681110746271587471660526328686106337398113432586500817249275575145943556940076535799235253375530438311485667082354266110875432622169123729183734288596576008127110893289424430376019991301070918310964974769078843976510158079882901161087606670933667569840322855455082541342251962212114885080079294789427908693848602986765086507675946714928406158740879543860176874717164659392983380777540699205063982208065618468321146358497668721048685642524579875680100603498352525731774683646189642644076950267406695283185573607311101073416760550267653480395363407799485817277253027112760564199302579057612844841904719525248033813306189684677245427874635531003539411507833318896734662908378523245920857461459084649702874587665354852064914044033642825098017626454008448258638600288909662544515935412063357017920925155937061929443328568759936710273523598420829925599972921032885731125894809957242477855775588519032075362110094850803112593372164437818513078428040029921613923847822530216026292972464716289178011430246854993208181710540789993209355226139948349355058780890168664957701171210960025860589380537895073407943303852111537017278609099226319016037402582613052470109457133780081367160228101346361231369431238927170475599078675340570951289521945516851597768978858212828929187541528732259380570353942570353784065476277032780668805201908382019384906364171128793841955912768104760358230413060048685598166214018314418968530341292092824375225484550838341304618446832803728347490143443563336010664719076829726435180205885361460080579742871120426965098717582137193752201643711613013712753914951520921090915349181485646204659248032467917628757267157524082894922090385928294061473376320692318714146853202497270075223512406353154070088902324008175224841870504386775774823508209665319502572645762530484174962964403463879483321086465903707864062033433061882064039666539462500259974824590035103268551807707032546881320004781120461624113704109800824399724651940716653454535465613824590850910321730400138524810413676538364744128319961961635518921786600115329920111157796129123476610334155659114401667367510106305418451684917691717453155507839270592021130057205060296833646608369332059264074208922708359583742153586401080642056405609046551064051226969079196568876614080757658705254492484665533919007022283889444037708940098428016291681203772684868698472103843404473630800832193521268600354071129816323943832686326771496041408289335033886961469745480369902081398897029394371349050782463136571415952907886811872179471635764573995274530872620076745706473015757959254446856036745336319908747839426216619337275604719665568110965865915855924180320672214930360022476919346866844207650341786298081882814050744491055359543071176793819606679691226185312613695290587497877518887894531470419188469891430405233949842250604517041207034644116718571454878108402770663865935237139116773048532720606679684380260666649789652323974828776067122161975301055728917939930195675599357656187663720828394861793634809420797032712421699649733984848172688977571159672742356701683058836203638391336751694133646120228940581495780679027510685475521812659018014726544562182492706987138066470031861968971973125778418102581679059842935752685149184775227913998653111425161050789929240780540521032639959557307252194969732832003026094175755288244616600094505382039093506391293175074575573899312972875046258822060301254856254812050263414294529980076597064835090126034570657991943402956184993122662439382480264769551946236025792214443727152082684812528139049180983171351416371675344413157996752167803973216290515609972903670195430431710793486797081631407890922069776787815954603366560580353637745151030198004440479349566413706929530702097529136137437791057492666101155243145007971971038571274351249116105968215788942933219979518464951006083746928820947677237135798751924208330939082131002127904242915608943800504043190240719103827079848635067644361833868258445262573798057163411708899925666711471038215394234861307131084635179749928663162150852090526258516470630449193431581106143261691149807196405823849761590162303596430907937415719776820950768913498144917755121739998346131394791199522569673584727008054098193055097881528769349580789221291226436147908721416114945203305623612494104773246257937116303590108707288770731840878751943938770105455926186128555453069802223130677627541046949885868227148691577097791792068713208172777278500292342807252495180291293422064309013705192656382760185707493344090173874150560552349631027308802951190935194319658580686465818233167063257145096193806986552462737097525981139766519461633812161374592920005279105929609456955551670971243830976250980631464617350902018838601210028729486658229904467859421533577454083742800454535828290954185351163789253616963615681576019526612913423861958937274885335451534449768230162760112664385702712185984941648990671264387430053884503422696922538097928617364342355440526712732955009142307682015912555095013438243991937477851300553334625285131657472912069104412650003639004807467621784695224278306278263828660439516371122510129423748053511113054639062857402978096881643775382838352590167455021778297781422579420947697357041233399420207005091939104578336828910132403870023973491855284641271911391945848398977756294144618704932856497831767781039095208089091902672675924026521124816317567097374492193860039476410466074091617232741987095036682714243112520708572135519133309073430025359483921165780883213382951597893512587602978870720976585585876726838645204144683555488553771534246556884333168444601574996892235298972622925103562316865748071036562760596868665565010024663010352852923306275179110028800810948599381570475413936487786048303440972701502061761050314773495040182241342117757113909829016957264663695489054386861785606700343859275087913411309964893788837849378986225053291223671573660307406389812556726319481003865346829718492736067633966197992772489545028491535096990889912970223994315293249542700815566943051391874031165242768840926678494811838406106352973101479975672217356849038815602949263469975197994472663787255820869345865048604848880631147987572293247642681166152783273014724092126384250015047501584904451907710251241623556701372250448251256586132271982568667628063782534700890649495310435627266901135621773443433868904002213872142656977296698050912868621227717481948052720171469754226080656023554159251497220830492321822290615576554333482571313538373600093430953888008622048495011818500309896403437879240090525238967722169250345954255072567126695460521554134548797790918737993433700157207137049286804628437033725001633734699750524969556503600650588323394731179986622325693195369484651035667072810720137343434831779813639052677414977132173619289692326095463844998408981337835986282187718110680420221100710813329515650749769251082613665031179517187614675399125566043174546686284484097149599946648070546933880304267299370712101305055789719626237014084425668836223094490156557008092284461883291801094634308387043621034053556844694807752088614457487328832802993848527657277114141747396630329215965889018779017844013868903368804928963610893212627626605674565412122973305781464084105546400885646815879767079522142097606704639465509203420658646434027270101799850076531254325479308568903785622036598394955297063323526427045669313055449940597465214300155676854940306948579952642241861040040879716664594126339376096202519530538078231416727294131949795475520654774236900286997930267474746844063560481928476240941753992755527154368511698016061468013173988120772631232595271856093759167392704586059419921430800317192343625992605067285617669992348796439551664510101867775577659698756047817539607518653316370890618999002804002747438151355159398802017951524908736668345509908590047017471548252545175615453507935136914744541695139546014482697348073433457430049633762081659109108673993242581900100758716195678038045594503876835450453994497895119427251958189985966711164414973844721987187866044596593216610188062151592967915219702022675040858576629223748192720517450929230439332130485861008923945498289066061957915109808550887189156967224083960039952065995406116861102553721984047446771344174044948768424865541161178157828403343179883319911464392338376313742447144707049689817470337209144171982739934045044618288573447192583782554779303547267035675184090062431946787666452507998085887095887945518777596689487935331047680346205852015872756115744032818930046696905838910184951292066647348423637335744847546126096088703103643359208395678524845838023864880608151099113856247062084993125134609740511101847280060861766972238091803406528412897286046978431581729880548472193639121563887312087390908277856920417942044469582228354341670964501473041534063804139294023441406299267142596963717811342789724081399770529072638634349436336107931589591433093599316942399311394454726797298178614232375222380133959890212416187846911634313895777982754801691625780620016016506841701134694794316706371142541866400045095856423715933423591424065592297593922698670736045791959676621886286458010795970562677940071506254241732005833374747558783939911044458537651990221116859391808857447921697248480126339270127709125420267578612474429498034899935173107460016060813009398726063869143509898679338299991038659080039678111019758827051697795677121003879414977356002564288976961243826288490454577329512658219771500166575962316386399781168556771616195866758488995819046688113564598535606495623814678551235421541120624790488704494760038882553633572115784081261932007318687798207225685474508449798857526095742595780724163365365975581801353509499923846435426088402162084998670070564005953149682200684206945558570749224327719576521911253588960678060561639008225166828014291159374834270434734669451994457843598997831686747530975448074902968484932601747796549268264859908670226540990854137194926443353256198152842931583916943878763717216915230902171444026975370120701834954521286919086531050194152756833060856399408682254657015145374354257612083697225554017775368029485236541365188829715164478583751258149778657296130036346529346019701816981718739858480254825950769483850523934690656866431761423506987906410257750829447210185055582739596374013341507040268369545315354924737390177487987828638729670590485314272683997247570835259012554635522630465428855430256213243505911972121110186146468285458623030428602005503403497104800820004142871204908269125115601697841744531425957409439028483989373360557198270550201918958383955082371509234860893421958077630653900194182711020031856363982635831583319702088686193917009619146919342312546426845400483916351489724358157449482604284263414885346037251427195357810013423675053655794831590283356235831087590156587455276852933177704667614557878094931042831744643126318146330405424887045761237295730383217986020058180723970927668700920066206137980477609440177698966709346737792571130641964677450913955789238004389080235562145922714552035125353725328573730471190657559870849840464605503771745318415577582689760827929381192588189491011650823424332499218993836746447932723109488355571724435869245007004101320525922955567639181141915083869611220564355968965029932192546120836943837140325171361983127797026630890765725624380746162390732626935543916116543654388527711203709518639038120227687997426750251870669466762031044777691187806203003516788537683354370493268772655599479215160534500105201756096316725983572508568570906964228554168904437397683939308731910390704254037640350468207643250636412880611000016628746797713840883287071014637136029103864416000552807780638037276213478146845955842223767941337174992779292570573457991596036747020521771565532491264854418348582617959796458948925665086538462238854311659847301642258362276717559835974989749344815691325705672403888547910398369346747501702467336905186182232286809264898501208236982343423103443645011322925327484127542752125258381174982512697540126143027709200444109048801609894679373944649277275761596330619388641971582231566366296004300556067651836930771854624869529554711468425310158078034629480863476884955922437732288531738240778534283105570452977422734591071742483176851496645105114332979659846049492764770924403798539930039823287030252541906684521432937114994419504928355978661913048808967829051131646931366502175418132307023060879352025933768662307247625285426454579549336993311586671019607179483683591310078538461262750710366982219756646853412154596975441311546194381755577123507091694181280161131409635020306544584303314549186283496504003201456580569493356899872283938278060328532711616948700774973231151722511679776972503175054949996124791499832081549682835978089982902896079952554207089888453526281915168896068846834312779435993903686067675725773372066301527701898062088108763550243339473069117248587259132562031376679235146863650824754903904034578912757597768427952896940834088292997085303300750706933423565028867986700172075816566183439556051600790577511566054671141600058539611551431935145263095155282635120222559181379709711741522427026521810618025732077499621937842367041829595412926110245244222220126534133805107446388564157763205654770165150631044608702683417482497230977381391479106358300221199864614606321754368261303239911379583961868333807769444652334481436686737466844446771453082572248287258794055328349365934360493344891590940970383902224279348610993266771237830682079824874883962757927058413452906051049776746307678345457745685605725900770451770629875299779133626673422401281793382205879687939852439471314968642228744758677985199749856414204740121108015973724416046630435163338384349032044845163038972750067535209867679841329039997267817742818445524336759243760412767978171274421452047127968175838583918426236780312950183651692686340465642035937371448783705333942938859885221051688344308855938688611473103745431166924467542273477301347079843019789227161985227819760617239832919341587590517140796901313342943817681358827637540112230897598078310110041348196894731964858372440112972846781416192806999313334513643898525923675496060111563536705747468965066170467277903949578103230834091461814772826988057739232919700468583059568718001611806743614965583740003316495236091641419606742699334895323210558287492248260809925320508599736746319040022233380541185431267015093339580485176981280137383872164803013418791331380214252751144728117265015552424729080587046714430437748215682209240701955726313878282996076510231719833859229914314001875368253072225624218966794426403101805875421666164976485656874119692502600028432522417877557368521936471682031686661730749912039682911179500506436335306863645831524405018737790660772478821362183963706806033515496120024662443688444549980380836096401058326193941644869041759519684543914192739794321945088944022499269349439448607178321502383549814162579221648804493298519882844977279459815796526830822825344473113103484627181616496577035351460383271157727976459848929004744478147127438252375893361516415959106348220076756732497358487689946614859670783330320376614645092170352639730999638742980217884217340853652502754662470779412304966681895023533937402927672403796478746206190021861171669851802704782790532941311125788183438993744099143464824488945084131915450332596577216380917578341280446508865519545103842450646939922712488565831179963763890058443851188853811962458911407529973944144001632324785871368892312450238752648503869180168142143460353894298928503620854563172381227554915094987504529579857684854978373380289750358226637985895212478928332046007582898761411587166363605788179898667697932985563446547717977481235735345920673367398825933567284336595534668532961712301641032994902002894094778626293781604546823916299597997017715916144915121909693614813522240017572037625054214131592811796821314314451692705613063095489900833551885069243446161593361864685472079149884128715855939414325710530180515859068325801158708305968269919916632618459670762010771463681273958980431617018389581821272847505879134989828150299521346817343138457576440805108062866708788918120557331587279993459182489692124358061941008260033055546849744567318420121324120753574347077366520507914699162034936359976702738266449806589653642154883524698190873583388914204605917838192320244287696471375608133004312063282527572177454178540469347345026901136936587914974971498822221085488458818954914063330978774282248694254365535260106314773446858610514165557121659594617375391809745365741680687513728113123102458296414896846449957834856622752973907379181073322892634873846906838598999173868136472613707824174685583630417119739668627144232214694724213296517902377390049296641387479812987258366360359254639050889850320277665529134746421298733160312560920810894472607037105321337382430702854833835367024914737311911682425779068816063614954079277366622424107525727137860768614441831591975502118861034395317211690470622433729886083717328169659299496129913604768625469040396242023312651115139540553638900416406144525631814123523498027651792673134887856999164758908255444027522717574369335327699459087390586900245606328000973085474002413903817480228276672694244130918430804066465628118706650292644481273142198158466420347000277723146574342258514848405240890966685661126757974755027269886387919206321341754298359998738490685673986365244467948467874223544279781255276736581479185708959166816105640897373976132464290815526341119338106904687147373397561323348466298455076909238040843898289383761312810804297155849311761887187213542108287091738061653573208729226526193001069149062002059238445613211865192706899890799877722400973001733567575976914723329509930417330846953332713835851989374892916600566231503429825591689628743589008355758470806885217151663827625324521396827734164259205401707925743684271279588844156574761050470869146716376179029561705978168241575773427363375681362315793750483694973172278307563373302534826108627917225177883941850762065291967749086544455331788349436165215885027466647816920713252958208635552833621740921966713243313739529662067952286634826347516840250286105149416320288737266126540560335878181999776540350644826233480286051543955109489991532155562176792562322564003887881064450175913435135277743369194960083454501546788802070772304119529178053770265945587983728400376682912467764798285942195286402780965118530278285260491196891424082737477034946643664562184298028874617997751773897675537528668721399061353972315098751120560656394827456095033790608774785843432561346978724011183279789431228411857623227910100193448336204919977522599293265015756646437314134341514797419846327257524532855962950131623749404216283507227156997234099271687374230563490397028918467965728937474104635765300077758880467287363592813547826526160905567740182560326132968603988231121120638563574334081375976407559264802861372045421995062786447391407451175320653941814812218731101094331137909278177239186744687003178443852977495996646400858176082570100914769297913491338147036296339774959692163960850917485753114537303193259192317453746450178656686548449973574834054208742057393511099313301023939702288120423079412759129818378165792608262326938969359733592070789248107341534201560497611798310737529226621417337265561024918249043886823709993747935885541526553917569012935395936750100210313937551684013349577384797447542117686285978758281548196721164371276369489685390473362167819985622312063686482099190545851557894866696169956190496628958429483488346316145536319466965840764691485092628390012109885283797921944642318653158254601507051716401507636134282644177615314831609667693966487172043157524040633230290399032175036864519692882036599374841836955807784696957561960015096777660847940782545316804415613801291994893016918432589089094086941257526311317692162534384218272392314570406323330824214728915980566960647930162725319038175804595904744764338804211471800592474024208853898148443340242696890233509150691129050662349079418722624461351872823405027571099289648754947783464132504723886221616360862548193453262170975374240202976482410700177633232743279275232239396901096180905488782890208059588601595706826019651188335314654370273994617099690783806662664642175663180056704372324090638991179187868122912509168013980210373015117646152231936854858401862010374177152929103754819184878414753927417996433044031482973498363660949495052333369482601075285868499718347373853483463836375034550246582686833191485070202534048398026941785098171907852134005530627078400837884510740380792563607340441983760582536646241655310560655727353997659836749516437862913253689362412751062490799355524198115752352763227069225834616184545257065646093560884387787712959324887384789455524540767733285608571394709739806379541598961061974391232879337011973800089444660738205623228628627781837156756184627439293613411548049950499177670495208616282091762650916904597773246560229282455731675858665783268618701675114771556108699453034816182693977410957662943927748646615305618602988968920628131845189782677521760759366041294502761955076425296810345876701041987374700982823977004354753755934326625280168312386048813269881350553138656363241921468818389027233163495094734245111552519227749225854394894749755226292536705811400295763699400175016488266969252194551835846444342276790507063044368729424980479223891972956709984215169898659001491812011757492571114940881940172008393432888883835755701155003700531168670603827877640762964778972217514405948346872053690390310517534104986125204795756353773784201455153021821944095497376329945577744863803133874123022465088474021217773221483491454546450215688517855191287979207741914983232610934846337197368031123805499286243553426499446882084678162925592222471104777758515179326420478504762021317746487687366090473766244451229391725208590007682068421111894744870590877906788796770458380618896536107165916244231830423897567000136940121507461825696425263849519665431180805060458875673274297603332561388981277473263719415296427271403063837348298960828280210764851825267556699469882141581630938562688994676822227305384617776248541144987158302262314788785872588731533168719411631905382424978576019774811075589404131519473086224013093615512573779903553383101853710292821392767484453810170795619112827993933037007988620722081677063986566262666711820901552457070212699498328275840885878815041114700705981723324177850962161293370200024685233838718240094394961516382996496895396981445161172900696706784020421914797555414406307004439028422396351175582085209290810598708850445570177756793896695825358454445416787686879358482266621896069285911443949838267352266485840807417803863318080588495711504949208417513166724763754670823439157932214232253254665040682001426062660505217312139573487662167130113065982302165353954719706246953273486135221826898460244395109382701583745891156630902448302036565342263397053404557278964678293683867207495589265628452960263932543855816085640922624093839549329586286237821908526797240135748817201777535506538507879387294874260679220438344800160921108128969589454549885729971422796360315863495027034223182060929137615659737619003652982881632563789820686835294034447857987013302550133193083838935449870676595135791787296954944433004953531616301168617070634387225484460687220855652764289197201697382004680100666945804870430545940882068664314263011882359071210216474667691982149453365168003523310788971358824811853805593604637860519611256930669033199719805434761743342127335558723685715000067899988099500493337404346433787644619861178840045271028498022861280228466888110941954847151781603280614903137523518129979108946618669718614895140828917755779840276904647957570809035686679747303519869697670722837630245900539442774164521255231385502581322461441276346088993142690893952582194308911795725189478728771882853783713875643192544456710709407136867962651763302034632351355435812284212698318993988984678354418368149628335290130564224319039609086017987795783021796118503557278859332542483357475088317930202132137044660428462173676465658844001517336705151666289418175731354036171779045580699691476548391881414603712322988278242242656206215722688115353633641656868772943051798187774423763312941408420733142112422748119418605531655272610856747074913791628213657397476162744176329231395693755264384173413187879302110367391940492579291487687012917810646127114613658798033759528743024518133096417629403213407729233676857147585755182687122574961781610068908007522551197107183584364053000277259022741602795584954121065392548009588259023509788602447264869635131278439017077927379092801865248267493112169612114509508021535623673130434893871759643298563282194285241769196322292020372547003701878072104562497196645147746309669395787098355977383181901942618711206331893887144674092072229978349442697157946241735381176385432777962211455128160649183914384802808178263037469482484250002565073707278660955515058383738889540862226472015542796015258694107141219411951016716892437162751643102316405404904301619814629871054585812469992859895947428799524209658490976419678311948939530398542659173509511689963754100763809990604089195999207125201708826573362943113169739704070053428248217641960012908999381240494974816081822787941754156045608751089303849640622955031942771700769638187458860224904099710729640450018374792652921865558984831819073101447723042510786902145907279828841726592414867732911107545824553674157801386634105613937796858675727357465568639658990652765439157974933956293042608117515893930147564439806535253395228707962379382515704590421216320021702957564872816604745022768199256303920609059994111195810827869213386686776924865221830990272625005748502934805330523781987105334263366952159559382427940008787033663355058584970475306020883813548982319374827920432326627115079520966653834512894079019272991525163890333219399670555430259553558734884102669000760928075859709778023536223139020482333674752354913151754319728727789043501086953616925506813847546727135043838168115269079231518472751755942699176111128532691532241345457820837182120654713452275969137219325020375166899211797126936210186655984734110601651167619575081406599021965645106405753903337479470683600426312893166327768496354719477756999210648097152550696561530666460315707151762296931130825820650153532954932869353487103815362127233718843388618331550028554523626159860448870165967578660118050284939195790091845105278042813885009383949799598333560882072937840185764811641265681582356956330120690477244665242338542123351548714158900863769371135577113981341909987335550721919423648184994990403567952611315877339875456304289396467164088626184898731799595875594094228472802822400288692043989900003728308128134878120435914648379418096053188130193669170183761211759859993575510142152939605745139480313001052587564697953137549599906527105666633036053024458231017683904396300763261980037088601549672532580590272016996304096984791656889057035627288218339969521256627758530926713559096223996748371740574335078184651700489141414726412656773893688069964064259263195145987129783557060659608540410123998275468220853945554488873177517899664632347083742128797148340545831900392974484742747577883717102207532987549738872880924286890733624339859041817519892207063638972383220362114078991830825744963980059779806137044800154689258160384854432867485965481496217450254288959699319433075791823759396527214712849142500563079010962745358382036049615409918700150389548940446917698964056977658571306924217671686666152823768159371828711245510079064236479328501024691600644370694124880341949378178587322218818307255619261516985908857836664242808510096710626201941611178193543611098230486687187827947480560273411837343432088688878042424875567340799035526599376940138881132919766852184117258006125040962300767338645109993539921118262436709325494613560190823317504523778066921428622650537365195185520352189226684382304519734790174370698178405976388052393422523660173097331321900754760671192497648767930522622505067117561338637575346597427394954494001085524023096963257485424255328430216531372875240722469840604142273697483561826419581715147713002032503530483213125964821515948925752766167878047413169320738860781241036811288004543367950927900535734372552150155007943807478504646120891945785456640783511172065521153606387501949316007695973506196637526000868524335277266176565024883152231538086596119452379182483947475027990257910553437622296149775636331841114752562090812918156394577911345048976223711940881069360804373653243190936311389731140824795753591648754181489603320923521484520985530729335372538052268819256312297085427039608088351776587780077386742955246223062690583628313550385141177837742343704422282187997986349953784350296067871351721177991287711296375413194398722756559181618935772775689151340569236266062256735223426505941055037962879991336834439454545704532442671802973149930799319293899010033529906782741957143637633494723871034014996824269574144559460009241223983462070947869970466905194318546253160074780272915725266774683347097018630174494573477124566858071675728355447249626966092179376244800576462647455597284182363544980361609202201030626756702836139457467945012330420969518093208629241767938065307190024766207110308707453836213776862887520594750842946642506755176372298978893851557364777602984403854711546008657893021289699118444708752190905320392907124772434207975694256123005442263686522667862468332983234011379755301686270645744884662392362934238768277901101086415941247579139249096341373512974312945582493633947224475386470580132254906575459252253945542223690320890856638261123223246337390734262274209652270666450608877790558999264404654780184788728313062288850122905082765567920632382156885505345525279523114046467929716339775514261898468360114328258442024347718068953505705392504579552572368702913349158848360540934537789891124898934225104119311909012121581757626238980506699632266183608644631484636186088603183043211707476147065076953290203078118772082312291254095493311885836559462816899527243712681408968426462243621521509908088490895348457558435063378338188350898965672862987760526012273541309562496686486215971976852040812419640091584049941714735836006712436281575232479594439820051971252717714794865340478182778598860981587312660113834590709460935617303121044241628731611319282470075126736673880793394773731754279647024653331297820968499768651936957682003891760015299697250208348335092087259097979839333508331881472392516152284713671606766014700245670690407031535002871059878793192353790307781638455481582562939549539436909345313023626781534010744820790780197339900518972593663955951278320861146472156872340804410409006953233298342804683994479880909047685161616784430766213133528502239057075140569681738301195304532993806757233905246339953707183748515285468319644015992027132375756809429518377737766661802260004367464136830605448462430144127452117556345445786764005882158217972183985250680025290093484324024507984602073954243910963636968599135934342680357662821471013232406009378739688572331127565580403352976627593640110841226320907119374720610937470935740782664657200451411068681362611752139553998390982571356693331642523487289360754971313919995381023461602519597912282266398640660469525830001055236804129860841863224528022094040577259933545543152678188336279572371316021756640484592297917867244292053428399537856766332985241079170012745792450738185693447614864036700445048432694157248799510051439675832684385121037113963652547487949221166069398683253353480069449751728830639105173269332589873474492274627824678182287657709555187217420543856510627409268682210746230693053218543041710131357854415763470234993526643693292894292811952968432086460883436067469304891086333707862440468267786671342201726256972770435445743690110471963094078410379340273036801711652062596064667165538501691197744035267966377492130866744777336453071093149447990574602948232206233686690367612718240673452306505703183268352464239690080292614788705725166932627180262375284134366869476069462776376892974496972895776420404225206807460983122761864767507037239717858427298858132262546716402582819541192106657728257822086695494948739551091334315549985832660034495851076783082876625745638979502951605722256884869728183981068455468037279827247191262219862179091175203753969197133012277861425282161238474195230131473283598523725589847090733601554974572852822348309731832019458241115808975374781393438233021049680214754080864206577146585292012291087313559499764622427304486712472377381713815364214906403210218288962070815807330897588427686380414366422809002613813066334661124909269809486033035858032982775825860666034214759846757605891002163612378603808336135473977474508860047554799706096404561707605480129936370946071418006603927650806289608530897072780681616031948841226270373836436310519297798990439174542335601017501020592978321950614698548890045889223414121221408982781534741616666943945351156925709891037350129004294425370455985527707606619889989570666151870296365709664512507407902021310122529594304028523837957481518472303032211417962941327095847967065043533989828747008445543275340434086272097877520081053023243821807342574426892817259648840694725317047325890392288900440069660482650915370497594778276356327512202745982255158147898779927708076436612871562212503612056059324450355807917398671343703342098449259300596398889352257838772205566252052392000873299683077450058524703969110858846994516718790950776243116370576053427693898337634496738961531978925168277798596900609491795972232602486520867797800084114170408564029170686930502215088829663507043363922480493177678018694477140295688983994991940400595969861641446054379422308716126369894977324045717498771448796004787479037504107201019268237744420560438766858210173421175773271500942700699020348087095704352315867470007442658074362875241337882341944181776168439696118298600176029084671212545875087830652422297615606937580572167065711096188228141363400484614358966068275032171634892453661486615889964485421112309785259350239947580759522328413366743125488843434551215427045387467264659418240104739830680941738917929307033795504784045716015805238672838286738571611379502633277799372642543169075246565159195367356958081476039522289276017920412847272800859352023230132762699344565851873421137799773909249006715542114983476598437722439501189176935508974330454835063253879036187876684789266524226520666101410725046529387173524779299262683744422876846255296577218447139011325373712427267509115295596040624679861024425764541600410116781563373869320402911862928207724143807592739108057630083251699403985540325517428469015064851806038873666619507028508475115779172476625975963618520865385743053473969727707032680751577346937210370125132234215509826750482605255676896790917464258363229542684623985137780429493881365590048664045199648681079565037019211169246926144460715100719167444067213645637412879216855268305789312424729010949039686669535012789890155745829513948761068794850671114803733022128544437915541498857517350948215961157711500266150259678404721090344459084960887302295085360943205563546964063060164005699952633134266817569798204365382010906791798818996821510973745864899185149347818447054527980960308048811861479974172662237740797833315283897881218296690931147132321236825241027054484597089035756158735678631239796088822776332498382860952943746135662010199558793827830702407375828460988820994447031258569479644384393493119419180953619642497972042856978017024992107627347706424616392407201465389672240096061248376516587320836018449718696431158242339130592109266640842435420262965878868734530172061511590611588305196839241648588508308643472132470211474083808821971903194504298579605825271393282019989496720282829253750720342786331134914628643158456887805153961346481842066721814523478152756287103915833317817795449485291942732372057916695782595936982939652540388364205500436566450189666522501877506586016422085818192066104010027986760678333495073030843296331767861246793622284986074171795737979455523823719205664892431185790547684423404684039725357926606694118915481505799928143113572422638666792718007513250376470537043827401464139901809239007289641231443035946135383328569022754322544183307785441657727668234646045168133478365239034316244199135875470887319850896359010029246190913463281686118327453368619052787934590482929316230645312908825518600524358842141444659936376150600425586374851714397278618206560758512109948822302352059380147731862000250340884912404175499145336113202749543369557338808779499157683356893134943867298580708973886888407497248859990578675417142962524141410102475760805607377780811201651063702588632369791227745939006989122134532423029445006534958484149821877139927686257330759523237771774164874979577005593288669498999537706119172030073805535650014649087452825820230839456288445810993094828195028595942244088537200472652292789007666070684806132257193319329934642855439836095134374637314056252819393473989010944795898800487402909311747004691317444309576320543507233896687569046524450369549739177675846805743447645075333243749763321314512476168501079770354887939240701217943559635476145084020831231983532563566590684198052108995964349768575089744311717306419601371089614415362192338854182573370212624835418172143898029661856099504002420260440765743860554802369781430774893488330025028656748080516888246610732473243993289221596003408357493937465536257095376119345004280935847934593066953875323520232269736438572180836271778760889633516228044923021786786310959333705819676817491851824520494733453592789701004949938764251142689069398055926354954057681295479613056456537148665890555489741003767264384824767637955367504093373760532924261666468593528505672176407045474573715992128094971689739248582981328268899031409403939440702604480419939694081373429231899642516516644690139150748172099692108843215757976693236203020121150814196688712911718755235332373122248020560228422558174898974487159345668521920112426272405508986222820811802462238907641682076185229529291998394001014325415384510207267450416551247794315271027146776828843164078343378842286933671050067748670736958099521979629924403492155566876890460606850426495200076159874492424021811172824041111541264172206817815975778967744832255070469562126981271310526216614401653112531344219895984383385535030093734996525551240834934641089114136715573675902480353441597051419371760482383708700595992577476153839866448935438522155587759963053661568992618528636049032131617049590697146662078266364775062025642907510089636628097269612084657851074216400826070500005931793456317125544884454767078917455618068091420190355046395374951233668235988030357009468255841264947928183372360969411071538488676867497746172171748261423981395281218240883483168170372266589018280137222095041067387261495764304221313029930690440672391389616341825211096447881555041197043042030518373485666613850465546415424173694587100588155441772990990212619269462763018804205711765228156121872221276070392094076514880340490333263521496545008632124357326162472539979677282304388864721302129398634023589389300762175892099426299748339308637362827454344639421755250826118082033395428385763876183897617281956641473030572700720905999177217674500034894825176531690466503921481523849041377901957745592674639829760268440598428395720465901858728714968636843955983306261595703219842279652945077592777597910783505044473923047918765794377290452518917212612087949254935350081125403323547551695904139023304568499055794432358821577969742717502216752488450036038824206647988709375772143071059228944543179149893388933749356545565338785624218085352253249720222099691065220888617253251373112759951982549191836304737915417686343055609348357007801296229111064261467950633343559628636060720094836578387052109301313033841086350135168338296076244995645556252584414224550994827236638653542626544343665211359245160531936257636062997233602280006763132213979072156893722293223089754830148492876937188551811229533719479767549844661159864317009238575374319659077718620266100919647138490749599137043312540550320668261833941659974264811280959374060184510402892360404076998798552202685411796162418847272556239974567054530545905929543535200912679163912833327034888914364119409177998663335468769153826135713677138950657902388207656946287653586389983060939552385990660542217652392527531815521405450734395420505654084824701157999646869461959640095433644754772760288864575497076453473864336493406306058724589976909503170281865196317688360822400367993839344601450107882788665265088970567401973289718521768735152253800303438070575847535573733047268670254183536204463279284172487361005478707849563892512076825081343907306749193349190284220650446919314764772475510421522544175468483244305988811605466329050605325375198714085837606681182582027420286320135980841982066064700014028601393985263356703182733485601532917175954323499742164987270385776123424081258967551826775216224242167135366938153575172963349360301486911866162411001199118818066178654083052871023012900893727395396945520536969506839357304489962575608917104355538666179550857711191076862480193596436841130601256985526289139607829380149101977534140481600481455236642662558027498215253208179916260414251726686489605453612822082884291927310718761827754784946515709860673511462635859636307997207519526254525626051768453910382500701607986163745101012227731017654186355562135328305755041225647477665842089330700217383241629385831973645641793168678862775165767749451824076903891641871902053897489984643424637928048754724920838478941901015357083218865205910448500731223609189603601496637842146154209303173881112600720599392738140185347982411108937429096694546523130362564600649016977000349360265171937050199805884138338955690481696122466467814407059057500148699524790300936846407324149044838879763190901186037371578314426351472797066413248885318333129590042482812300151752305301034829288137267806014602333877668133230296775780319419519858654261914163048800503879766644293607074288973962620259584045669280189654211978861140753098138881007637502666492861190689236016746143910825183829959891475131142269944161145965946643789172046133232341355227948719671159089598955602179219439445793826895309804533304269231963997868575601604448088051733916330180996414029609161613752797635870834754167030822550939383120994156331686210327452507710249123662435752272108546652231194282944641209143772660733647974029042567325293480625866370665654365375835375056275142219227890076305450054012352733708731974825628581345423913200907623791948450210557931472495915745149375219112056205052553061821626054430037416636389051570087791471550500271818269213724600988975670304808499134407686065428085314327887288949210116158691391038757623528697287658160323732677970898344735044487737958970023327570879432027378444354374273289203542432173453535279789338355329869101753169312804455510876328889563292259604651528059165136407657479430834608734701673602990338528008535244231159013995018651853344462473801648338624703561672346411962004267393595555429512117691439706145446354368076217733205142081791646548487297845647605872116468208716482379368352847830183037253951528913479085298933581144250422510099117543554662581321720112471011174385338849089132269454138352831228907643646346120961026493255266253770352362709620464602580388970961018651598002349661138404251381924121620017852246409156735601513710188783896510494518283761371836677082729924588002535833457642573969551387481761516133986736117898209042662030102204584790675657770287011523740752741615858142360030876453101936575235035077515094110415719881630823001138459701077710517491978215809759963659173111408951632185459918393569509669850015417527202560839716002350641557720118701360076348274961430724935084773713835107329501599696330416637806575242872982735170238520922490957848795452293803730959531615096428101844160650802834905162726561786405654974661636726984722405208047765300976164742900474760214452779406783776825055994379927399133258517843792539570183083063955510386302498565939512640326629797959829295966057029881579721682497116868008059120381758105111336097766015485568879576932141079469572864822693855833953959091614507559275261258087156175629969879120958148209171105199735374989089906471960399429889128765475279068133743153839744254203219951005160344854304217090264373939558101871565730122036202257909375988313710253869457993624899176530444691128522911957228376255235318321378826335711398466360442243299830300185029119266736069115426120755309831941406452658082991286974348612389387626049514922112712558221546306641112340419074686529011863339837422104726364776056135093662953802188738139054460624757059811818577169970480777631007192473215718288939074779400627986804538169551648126937966805134469974111921028521048858594705030124360703890754522916228327140923460279433707888043627165543573850437032396864616674145868167907452054067157647164802194668022701443040953233828381333479352628801430151401583604423289363935021036960170587316390514148722661876131982833332892734128851361408914823816523638610331152545417157416028079318919413611917222140235780807709677091237964077722439915152652942230983310243094272728096597189338805499067787963780238204592077336633068095339566794022849178952641135673834391908011341269970198883020254522999569134454055346060390268951057048054517548562408737494085224535253598863496507379084738143720793949658736606976125159526280794348239183809112953334087973366241069968651135565650233607238419862371314040761169569005437089228274401937094551058395200819971329776317702762845164239330910574846384750394973477429006609166224945518359033381387581875309911180061706886525863799109242434960024626079350947508813119684486972524364170552685700215429982402767169679865758428768498989885055856219246242988917060189442947759253135771087407129335427387807779925776088232108021404267800929656532984381503032188984862488111295495250353642872252990965057923049159037870429135150300372370468979799179124972404757823465933625610536734358379857335389141857697458566291762298198327425334022306363110640520489732049976206248146860231526965496808735890846681564996295837934772817748538488873476521676089685652862032411501700328366672766410442665797624875608770270728476391085108860850867043040290244278833641440096242978293486105020736029611141511836327005901508008803760470346052906309947954397021781370869827635400802200086861309021524736516685534519100039106018019793909465091004076712876304841802300429738008101463202089244881320034355502117047390191227159376933039150086317577129368037240057702836918012801688014138167964705408172169214847175370770863497932707562089126324771480769139280158174782863723909759586654627436985145316903231298215311812226297296094186004281848044766257226063698395616491231024339752296268219248979640169760447993661530082283411056870034083161875636073824731346830572076750658330046022847662381138173620766992201885982287807230839887640841727465730827615848910061471433772945850556938682423402007224426624977762973427056992373675693440441900532874999716025036413816088606181743224729504031268776733909617062339714320648572566618903664482453374423774713138224493423357464848782116387798114573129982871190539145029744138931981038847482818942275190876334541213266307316024091772639362126364504224408796213926165423876886807646347810029962260931916914641981662301914012497765460926201678605015713278751821898889909418634582717489038493713742944133465526541619094635450510324921424358312898460991818555508660692673435352116219517205351725209637691549787561089808955468794053971226518746912322724417557215212457467465861362320209029474405355539229797986649023517031455962159620628797145929934723017401732803290328800756142189528399406930130741171324657171033094007125315227461653281627151042685139484899820583081437576374504686669048745041250113203444891510064030558108225510815847277919486183646844345026339687566551752341812135264184417276857878607831635609766080351665895770451885989827907136920245067626921489187088009860905049392821800026873214348289281503396656826266650166426760240464341207718821038688337294899005382121898232251002947346792228852280194313788099989868580710539216193717952771660509755752722177900752422136848785468206704876566756057333971214672055704286094889765413937465175589996165297580148404733452030435391466846463932763308988527468708479852258458149368196097402974275234343895762829021952521617594319618924477949646140474072325546484630653019848910669707616318877236549488028841053536690051641867723855918579028973787658612492173556145232935248506764342403771422562531731021202652453203741433193775883249455666974024232539133567968351233519572699924270672888900256388158322131004138657317131562879578053441192278652063360492639150436798211694178499834213011040627694555146401564782677853341235196982943673044987404269283740706422343110833392175563939299177076938745570339369474792966465117350941732845058297113203048936041485876918431823545773994194638632057411326132638053315280671956295173790641101611638542673159572040174371699094582200735646683770929347572719639129255412086253461295614943674109033600044403574280415920770788844310431426334798203081915470343367569001530410025267893379904559620106317204779163265827820617379589442731766820612521098914068844404942991286559133984536740016593256043294969747388266295450924702020333132222844137521736574068933116615752184363390272666700611989088989909954986204585755919346448946707061132178848849096943803341593817824565638048286219993581301934969840280383131978147276403366059269027216730034791376475478617959728648290126892914529547885015583216042431137733830439361721993000841126568374040861541421336749223724613760648621708144558261462578264357934111583117516002265085195161440466073428801460741381672188484995302001011230863731523036550656158113387919830278195356158060683773998564778682666799689529507315201086475827183137792933505260349957485106249030572022816188952424403482968823444451148164059941684893862899319740349405415733135395055802107790914141091895663872577573301489815272543606315905346356707531521863267637215661484884594504532482362176238040467204623162815563239239282799091703673726019698031360581261827373218450800433651868600635704070504538254090020848875602843361180576841361066460558093582289935536064276052593672927088662084186839794990611502683031782975567267683815274379245390777557381145161987286732904406261904878794383290657639030477808764325214062453263656442876264570701754747007410135446142652148772636035836715395471713248726745221763372622130743100435001801802431097449596369082573885820642195594970732187785279078767924171382361025833369045648646573617202184770253779040060245662919796885685003498309451481648628087337704431821140072793285122269589193320219785167508802279371352625423097384947681540354261482812192529183902618548928450447375975182149327419294161686301468194919781991939011447392300463462615872273502042310844022129896434661687305817760522149997164571362173037744096741887572092823967652161407139892742462611199330429246501266374366333937797551530929965106148583687062439546022924297239758033817405487101688043059393442999737159457285777824253741732020677966297014439332955073143009920253750750901045989286902356590066949175307540404197536944237111619676061195506272139212807665513678246978197257700785504411651858041693113527862328174009552451197081734882929672373106308155291171585250942948960506889721154672488870252334569087099083259474204977782566981543185091224417123738748818683859776608648561582828609380467707903525771374389657657815928405068897618250797864582367696851801959797489917348626940077627756049505486762925084262728599993761392988570900291504907640115277636610249817366256205135248260330521652974965094237160543130922490464740081177565435758550727167149847817079122514671025371496807454040474520267570593398317050238192232737795667237089119105722533120250759638952172052140871860151293244483771158770715978224890145905968669411854691030456357977701348038074253045512686375039620127763414755412515212399749825661533511206636919598326065930505366934319318547402888250981034653400382039716829903444453808231002026512183325016216205786016141327760867126941170228272920557937285431298848842463109708011734785221838737837000665320733588038958691107476040162090133015447560643952755329274300350216999758240348013735178222063125719397970278701783788947207714312879964527314962353561139815996692544736398116528665056799885669324589126826709761194506660962078892905172490785690780373469584179649537556441666279580533520746670425465909851423980011931529012726744742936672264414509036570210957835732879707290445629688130464988867061808368574557796990953197404730925207614225744289038078547509033315927698126573857547095766208004894546912291644598858453705960469514957489598383074052049015565831108352853352513233563408245008793973838888451370759680839329396075560456745375981539105183305782685619852329054590814899964089477950103080996058832241224670269312319132352578124334468916327042938292657034364584706080770411043460868826522402778447306488495973396847668950778274201715230796104902613502121137018862607876733403335656161707666147752699572577357816059725644203121695372314345088621440419472876092979195864912810132181287629388937105642329150169260733932287099619778362265734073809352056572217695134201700467092529697266360558979834463184767157842340319356043897292037201666507998882512906179664751098155358868118819756154744939262000875713735551700434502260610629255191263291819977428370859614823523701809561095023149851745796901474617780176185594312792821613642489023543320133317373365041868058832131440185570301623124230015973571199066296840733203819678347790378778007544048956489132419517799792191217488950745165992801326266578869212625630998712590609578072698148225737649288373363965157141589072596419798308360324455170393849080585788564307944776861625451466165864825142886902707982932875943138490093275553057935887011718800551994598742354586886583201196590297858840812309247491760425637333124264697846250964676893523953142665046239247827431598763349598475833028965440895421574517004672836681488298871059122691514828705980391862395447806418802395201922725345201051002079337569521751673841849375950037336114137564166182198456306302458641869456822691741056163935663291274180047005920637646655137223815908137601835498701831625580009841778571097482161267691140396122538919747342304218202605850974283042690658601126588559696739007255694978089125976572676884607793296995091501170886330573207709615559110805856251313887472155052485545044227907157556465362361470935390688998763685249740405011791359604915592758841329149642077622938290914197674828294516926006390420988930717857603169297991471590581059013042548707233630591802676757534820806019218239836647317550896065404377575342752495798545863759314395350753133579508833360686907474376343697838153261300455857573522595438831779586224748151895557298170676694478014883997285633351955264310571933546143717892162410358534604757534399350014674802428699679468696367188103855782608147353149916137788604977009711725611522197060146632382628831319856831511124071517323422193952998725015033030779820028332453688555149282242317804427003954508488565892531875079986712106279312066213996966774450061686786654898618423367502256002723192310503625134085353165213474565433228694004614800163225916186259474707498723530010380380069878290486131114356220250628891868493670946369566811576192765299580868867696566949397626180562913622524426429886588148899813331000878947488313209915604252404966309480398973934494158386254542569155134443889073553071580215620970430644735733205270550775623277523179770468143580938171104819460534807301240254779471520288224149100084002143553268352943192687260220791856267970147491958610735523234717296896326621533752796982415405453193483689390410524561197731048230256268551047288723166578827541062516214647618354286784384253938680755219082397842821991946331327725710823179301246917686713920720410946771848157797276800374639384548740363123372922987368948208013435092671280177309939931934487330280933448294332945822873358668595675353978579541161915086548198315751532646139211932707694237800799175447262571545140681677718129331087627328462700255467774430836002912341850162671119508971039814483080394243502338586788742251845066916671568993028609485368072018472320423660880206346246009203759326562646295662512670151835781901852138982089021350229345261412395114241797311780334436056522998708444908224229289221854410176002825211097857714182132555055117971045828411605172603455822805576973865567306515109421745090636890726710644747919683007481199124065930097918735807054477137769280989849230397960050374777776820303615630727526286242077462405646405304667430005824791005679157132824349504710116692285288755694442619105473842778447642544074342957753198701348693807029130406275478348449214348148056742184021271798563159762660994824847211084177482850865856887505910199766504910187338064639348406465831263305838955062225038606797345058571114120816982208251168416181710320356074034978842029198874518738247800804948645657403437474482317184293340863707879809914833182768518731573380704864840707308829529056218913390240975409834071733006548574698613254140251597478746784356124078391508355011889862168031346877584813150370533725143493910526225845832833963459631750748329509157720532246554927053733916719576289076014716360332141164547172452519325376771093444316058354761585816235552445759272538817761823852265860081471448540027537506930509715694251781613093198544851579404742766828731731422734286085540614801952992583889413918662672017083596437782962395134904494229602527649742433940279986885926222974744210046868492605473579309725731057591349059699445384739154165356756791876124243377166206835478831047618142285566939329596511998472856147045810159996964698456735077199707805634409623452621818827808254804970130955279864964078942257243202184521436494547253736293441699616680552060392563154572928235005011813178613334650236851940188618322481231043688708252149027263401097979050567332014103057463408521160195050870369081839250629262618950358787050473429282440096333061489306036435540941670748888602020860529150628066339739064207224330678285591714237929431170240300408849326947240501529711645027007471667439016225951620192613283514584980491070308077068013365715931426407852061774826055706212596653950629894819127730214912024742273561486972760569965720757173649069997428256464050839423080165184914406808989290686229279646664202478598598385641272976767820298575761246739057865785232600956618590312828896955126118359236966407164094329453928211991057609023457142482381648744958242266061628965578644766996541386031502538747794511532499266917949558218367899255173091920534800056393141985685748482624519283116241660183585830601742381898521680355429767926765436781080270781662815636511496915040833303066151074830248095931797552593712197489122346670376356967629620508827708292380099120584876607495132238058244297326282870560448894766609237972549164843570378259021905398301332038777271892464843557936789926001709068433544091343495817733929870847080200269263111166173272127107984220461055276219522990026931558108804334501182446647441356665479663011918142924391522007767910706582421906974000109242534733360452157549875152155609148804173146465017484077622795235854055694297253232210371391041281824579029807900594864519369037564903941198085918911777010751722806873072665489115619612680043167081822210708401280527479273358333849044754629790596353125344877586199167512118251729287141890384735703598740216836269600717045725274763099138742466091629979316035228681863157138665647725834306275353801433666893137005410529498346454494205205224289241708596436915510385045342485505253500913932813301344887646791438918067775300659814186911034756807646597333635779288320300788252604267462718919371184680732888327578704926841261884019013400002619983705427160341596109983596188235374813364889445207168381563643216655840747139625472407479433695260367748719223603726431563707593079836683938942603304478281527178125825603016553561633978826685140226822540851700707615233258449814779817499040644822088682614612625085477979596717777351043960248444019131491650311633357549849796215318760326395432362028056201284980209349382326378907868308865065132372817976671058541680132852212696411752732823257549217363748847289967062890491336323292117354746298415773588435041605745573594095087943904709398064159465959123583945872802799953916601074064543338096287295733444772914115250509874647120734439575175137455807561149319170045801055403709605666410992758596661304516034730196003764641679794680760157447013616999825141829406814834122952218101701832374493304697643864622206356832395823553385220264715489002842747218487319483121802357419027933393078510946481704971690289720919251770073055523787460086752903948498427731581093211991682280247655876970877550985817815911138188762811024760553588126186070792210054057732622741039223675906909966581519779589502316032422156161517957795305425111279511691436192361608279057014179395234917826809359268683399385270590111528855500313576772645983946652002552012037355230298516590136221531906868120627145747202237463468372613345204629978567222633432811485037933467286666857135594403847904381239163896777723980791285807860869463614956303509039890213848869824095765633105590152454779891697448365052436315316389720486824529035430817866781896078669793061489802985243043457151822532300594766375071826511419265859169123307409807336374606184908599734385841642633495211793604084568771944647943492521785325783723652642346702279442798383054732356615495877302036675197271248486148991725511511613228936930666365265516213702201656963379161318575674520549605199597473278286228306161130110969553058269764674383448261165841697551906875259945129130629179180152601954771681951513436545300125605496966253101222074228502192891151034048441787095956146784276950112219939397884851410496633318629442360266163776013404728612113037712565490547840488369453784538345895628148359976754742401382394454861957560225744338092213569706349060606397894341971132404855296049456229034577102530688389614156024993776530460565901492411992412515294347603796185995629190906949854794869013199365080842062718261162030914391886259124292620399948724482586727813671502872816086283860743827200356049855808858103016005634555269289158848968808475339526485880810089254664750377154170535728289227851329405476534574383844330458371737907339380145312349520916193301862786393003911837325275877428045074614031184008571512550707893060646140002005868283044600495895276021973610216429858723350473142661524503602225584572311724405800193989088884866619342993667289180652403998886941925417292323643977520373228301359783935910829689070697817422685153648091743859631947932994629834563800522694591047864697742054513539155423165785640238013209384491003073801143541874571195745653387306528678829329704939953682614645046252510968147609511260708354659367713602906806418768098650486888401511492724158009207539314029518275993203826622383944372155047645070844797179089404582508083443577930707378984999990366961870504692866044117570247401369635758158605729286678460369774007926341108914234381753530285946537791355596295251558931773650018369991819546132832611760664698084760466402431274518440910074051676697114891068728525355164143965888567737344464631073509699508185514766797164110419546699112166934244610464435959174185088580128197858746195023356342693891614102831410466087503513764012414652669426499603523151981789417568624703128259146753006072741561923689549642220154005508617363975521737331429909749089122574933586099111349728916060360088787067833837169606985060315137177581306824945128410176870453588420164821453270210857197947383748753479092034105134159214550113335356842397692474454989430712085718757211191200139128572728909606398257650652835801175621085547632674214781823055091211125050300479000315809937034545358944011018774040204927683410173023998559101663386490576674088201902811322088253580565095102523991513286948255837900244013551627982866940015113815759437651050075174285977465329248125387199405238439888287375093987988192426314924645580793440584494106925827545025063603739382963599108243612075771723534869020079374920452271348778352910005387703955524686843648824653575038240775209559136459835468449286219433920608768883178697274346759122103125757948011288490256140416587791546254343295532763204231297488701365296051356175056935832140532161100437994891207016169508908806940755933474860392951553094828460616828561439486715618766966994608321530869446842542697707058208216173933157079990649875457444195775102261464091259490365304280103241808382701640760102644762303572657508842170877251519372045701885780437140488855698994842750052808480521990071994446530471722491591843376261103774210855800515204410213565908339733402203923978710500362378496812901122783879252464066618983359140404818398150039546499921097094271017545345200852499501588788819058443592777155643286894000838645049337045868504206601423884928838998920083799993047459954443122139075636822993264822293963400605293608728799295457552349065215854849353404745450788234112529617689379265304885341423435325922635825854232187609416046755375431698572167942542909518830879331311808071934053503887815391229560437305904906059428132396063730507705621622459415030529975280961041471581826036674894176212440952888513677464011130717118788820828254816739914414459499164346758944895524681602617338150462417486656162602816959248274305037199183020993708443556772169993049592553934982401200293733687617622561685575437448566093289812282349392344483957881414066336488776054895864094027040576807852627033848739358508888190791768078997166050610402459144515151946137078082444610179446661502464490535185321724645777396616775483595473996241975489557834774411184156859868272170793139141748131854315509380988521879037098958832478485108550807844022473912691927919980548280079179609783224542764548236047042673431318460575319202442057149408431519770256305232918856920474062995358100027147068880645348197123562436912426048706402125519042570842374471637616783933610001426523331647896722887279055108097376904323306931630443638526524147734939612763055803604893728343598419677362236398443271829527262969668617987510367425662178437671914682527388593682378185741985217146538523022691070977040642060159268196151213121427443028452683914117538216809372475809329060769488338571911511505627446925673517728966639551932169749179202999212122598470184652786010763179215911683705491675030812111274145630676030910144663840635757183799270730371812474549827703218732781182667395227536855946582181679246822385349274174970105451333827487071073291882125953369604030053043492671478885733203246863029865041955439972788025055673310975859033874904662544327920372329939200739728721487641143585924304437659727516487054792864525312343408503573428107234952632336864287830135164350397935823656731767224969575765064453632639748331811221253380988465647342997259587421120617377913930971293244222284546949626067571764364168418815771553676941290209574800222996667588431456273217074052895309545492288799495350538385944683150361094982163149703791958550452531161656219726050998170448651256529809375901641118696795719845544062174886982907327156208600751050000484677000140180985727803463771538659608222204174481675447750455433966441366857519377545463616447554376180570122703288520481709036111679623879357588350758052530717222905383158827829284228121757518588129596177928073203963289335065854715147795983223117698586153419928508782807460172140614471511497326621324627968221092595725112082894223437972743063692407822777711455189057580457730097464258996845875099661930018386818588337607533160034219431903501707497481942542446010326008278798190729567481531913151096001632422831535313051719815876291218048052366953921554074244607631548870393765677314454632350038171167637214622414235337631201540680608327232477464997831823700744579265745718963750319029747553173755494819255349369586862962067102245852075369030229178829140322590184471739210465216198554977210403717090553945602299023570502645933043572151898270865085242823429413231139052678106550359074438772356652730145897884830920942912563893560109955956335723966062516228132724326414808889601608065396279389596749433063219531985744004270380233316920190697149456009800180502770258124667114067246639544612732035398795138152455697247206718905297181928102593466021703285338191051024623931127336892028497379652047883875402890737139298608608477926053042223244484472561291062918210855575285195518358612153131427717556380468896325426226056143227461486603670734489515112921197642584416791438236898406514768392391707760976862057757545798765307565743112121870748983924603483918795427364158827952170165062092346343208588305109091918079165827634384761273827716219839651965305425955981113347620477878990854948367421757061523787627595932899361633065214292380881158181901424897530213871240952069619575287407892899475124681384377199322928111281858359143085277584430543287229266143095332897286607653295137148779390650650282643592553366846231509472498827033771925454229090522812045474432205224901166253211635654202784253279753621681701028630139377316625531196607430214309137465005298970931905085741292461098935737125637068285771531571530612412938020723547981539506745033409069310079248330339713776494704643673494346253395569506373007002027825069555609682988142261493276754003748562992169779814472708795918432202103786895156794174809085685287102151997247705772788675962112409377095626543853432318101444567335525885705686257371953723660915174666985715682202589978584142442079981619114620444584806045829597529151012256995314787626792082496838288511277047511458908822617496945937488359534940756640876565719275813891857645671465021849737595365108158567347950638373080473999654219118310811800425150461033753243071604621723893113407847222339983890171594451338011962913211983580383625500109326450439273114635185014790570574446717592093722568976753203390770717024044309121188995852445000474753119728528414800786649933239411447016561495181684873151440041629792888953917361072730069265746218995920036463648086652971213208049857793513430309307077515285540799855925495750553069922110464407335925355764486770653302931631108234188158722234699064136999179552409666093767261122681400071269994264927782856070506722065965669877390945377578295501622348156711186752844770848153313827572282798594680692892487546970680279836139077637628434746038925356656191285405368810732276961464671968960626048338168146637638318744757552736169127265527104501641180374242222229138323234147918840034236927408080467720815778513687633077921825942700018633060811521523560872920488929344293633045318526170113644218619335726573254545915895685461885560104584168384598786827589961184441413016741103768166393740462256529074356983131469500366992112518856664345511370099820643239240500878167502521243646781229768393031916513115726051807357263195957908882116932982088372157696274747646633704155975365524160450862880931544065200921972390857125499938581632209666138944719746877266415181702462011881114488017524746215231932108815352670484454681178178508615525143586779544704317198482898412788980263687350037700689617523613767748650433632928428579262958637107248389291797976054794433707093492990523479730677849794169854677016350060428968227977116582787717782210270678182027445359943230894711567476426576320425827464522308188992649400608302914834590764738450855357800338750129127568934680060107454738613704756876379178517817879871864695771403427749002819414291167464067587286146230574146319031444452349337979545417416567916676084084885226406116670398124094979860339205629789968133034062075047680780710584492781080273661626667629767885704867266964598948891236071685517635552515011432732001662890909358064743252587918698600105347150873240126636144895337344401921267618064350617955702750572033957946165422228845169586916438015675458419273008419671450592799169844911235465674687421308932527535906991777139266106804656913038835649665254328032248937168890202585691118469570585525032368497627892371609460181387807958612047282887570139927713777654914196867391007409933208618637011643776154288030866570891425178547409882267527719596949516745676569099400279687018866596955828988215874336547041019016341367176201710980940363807124356913860576285995147257201983033085686200474516984672483870106032811172584620782984752503339592520883908112449795923980800338066000404467500256903980112024947992401833808660180826274626322168874269797408996298720781937681885727653478325679825541251871607404337033180215604534972932511946912998163465336445707601807552844013494367687225601943605928379303481511949297696287875070109646355373133981272213879136328106287316570014206818129260658510847166139061195872315920118616790436294136884280946841053407616273918965873478152306356690224521484953941295268155873665368547026263727826666836896813748636033275766319651965793389292330376045971909264650730687379264914593089862205713724787247679685237936744878501891544966496226009307482925730624262680638315730813442549017885042120510892133214757772476806860358835536321138770240463059609028037525501456208405853019772663209428923103469814032980290144139441287935219930292762132527414620276555479266687035780056094577352482129941662349282392412042800148288253519389381056554612144286779700411953356934722572549851181412533963048347714302257604782575803087694535427434418672852781016553158168499155338407811720784667466139139917905344587796869069773764827584417451693833216698113058270624557748616920057929064423058307657805235652830910875115967705883821563781383359673340989201164756580297993232057757188780813243461246644904094567165624038516427590850808076343196770534107876321048478226913928934267881921893106961207190763169815874171594272341844964197882745802294717430518977332764386610895537861573554791075611005531977449180526657033096756833532864297126106025683688676086591515845496640914678278873600194862203440350253034461148090394302816256735318165356961923122959838412380858439339181490997823796269396358638040241592011838484885336055959299070717114438424070383315075138243056575175406203585311305548342091888856492973975399153508282901797869280608150122160981997134858426473468347195805012242246305616318414726737921752876880757681631173928852102398243325246419405335838702503468344738760222215622365067541771042875758198930855972262198428658991915357992786212218852555055706228274142136990488052337880191738160443221915709491023183457439730259606542480181867606436173860551413245732776856056321641507542691136999971603202815901289120139207766175341243485590691167365335534441096381121953871523501936365970939269345711025740227785464955748253401257381629301081661576992025073530285936745706551756805548266516084007108223180741104444556051709985046781282930648072152757424348456473852484980565371733747115860471325722558525948268182694846825343803472086912075556065660819174025100518674661695610617497467673048354476485928327843080373202327983907741923222296791124471580103021363562666345192002438841135787690924668359377933324934202758602501498355051266351808099700204365403484875248403195773068262910024259544763952901558547768494859555610941264459099241879907719487077611749628174460397866308909133113148298797291461872099817700464328515481339953783892155259032944659849364491574660951060725306470415619238153278000213873466445986071849030174513820346601260282299439664385842737860500969735084176482946095259720176252891513251895499103923677176686629240211403966571031961800057959602036278803560091777788697204918640133307727272532192160808626356753588722542412971023984832852446726388261035408265426014456817382750159061387470771096031546908117863704179010110784114808251283121307008108260621241174582784871327882353818772734258878328493864738753296791782081166564360095701014796180567994785484132576860052368245615884033880392756744116803269684294118181559766966026839875378126514828105636148375903430833531587462328681808701576968809846312422078973919805290071764990035293975034833751972751477380582839924799330911822704188058096253356665040541858326303591538569552334246206204275548256335601774314295060157175228755431308163886632446419486332888625365224738651496530556039675401965860112969046898103360994764165642526695801785251758566546049062247215974369975848960720165876470906515196781323328892781359738425699799537900059781438437961877968483591973430877854740266219893963532362295270264845568965573453764160817377739555441699758497153832953645083930187589905240021248834322617302282741313670557868539139187842375197479401662020170322145025400369232593696417036776107221846645813694019741997119186084963730103652054596353311015049321300523130393443178023079578263641601907123785805311292954113816682623415091306417046465507713875593795732779260953104310043421886748149814461255918941807246950519967817898188451500392419610850534756724513415946977678922873680163700457636548574459127183789001920435258934529212213686226286367940248670759416583918945836659823972745132780787868739864207352186683318120395685295847909221890158861459471442791733088641850747733236955888227341440397593913867694469855743007327092337125965656875806235089312654020552845513622734988710999628486170703018747799735408152701973884559393384644691522890698726340656976365291190212839986340555499571469427693873352431968647471997636836548428582947489192789428396522495383141725443538607361793733768731181638849357237679488422958301457181945857626688058601269823273729950339156787695317730703509914489235127838772940725277480882868678388354762290889988870268070177014023291375843148888259818960180448954993739989077569603255586706407789268567983154274496345314003981033069055607827410621145788596087678274508108237358288315952264200306448468252983768611230243442605949863892414096736482791377360029273750741819100518870721957744319481904127435438362505729172451032733083862865390212739421547877839590380980854025363406110871255404964488659557645760803532632343496833058766374067673934869563771647021763145248897313163595710478000054198578811903490215693567741478969563234418167676171383409745650063358383981021264644956155853490283936313826721901425227918466849622166448379507124862971339902664049528497306740242163833500580042461282373544110474517909331761532030864115932440778887893907569162285405259151376983856199060379739763477302315911812647579797473794604235174445840922222145746806815655903707218934612296434337854453964843545677037685411821166754582952582365939027794913622869689569383676932706597120684016188035102448450645093776415008875975255646394672617276150149957630416476972337410906309618674032848452036657303292005900314655079456475635974861564766108631688061322868815195702413048081166992794709645539093658992504866648083825074088831942802738720955646032884916275788397211199298160214354923186189761497390937500406241660065270111599177910309854282206450317102271790582618916565505074777031218860378348150595021182698081893432367634872604157351285328385804948424887658308112879739473807651609433677654659658282465061118083579870232010052382007275378270315260428570895518111665689023385783185976273950658850703827927014012815985633322613251276322883910627734198431779141021196976583048294787758345612037942523549516390851409845852801648507078232455224008517789681234822526423784673737798938728747966769170356133352762399846935313738186310379478602308282355238849224087966280028863758209591587067205544990593029438374242471124203483429649546792745389643811349672422338099027537896105799790004667984411498259702993265450701636399606547544875116654477146723629527839901434194137804332129196047969638970650718987110357693768259130316308612924707547016361082213444600980477755664104645728530994041353127266256320541495216751436777321261327369170939887610142706769443800616633435639008341057169113744732377164216320947556473223372483966794449549772665187515414404376650723593147039504383632069599774745468157406813331871991795020337163631524154281479696310640958250168297105188177491688193102859007783305682735498363092267897383850666002955830881854822367990528344515749448490411758189752987307651037030877930007683555555899952564287077825446345739046193180156928293828608306546081389625479236123588631262402754458126465243336462854351995585609157436901126833974866080408742400252708237403968396522068980146340769540101795795466495289663515780126106612109535730735528194353122192273757794350740854190131109962902614801631152101511805020134780833802445606972459146827588222347737473627090028610627607283908436797831727551851751176560501596380896604425098781652166335217953908413777532823806666510231750733457120413183465439369643750332554421345405398156940734574272203178088888845741109144122293114321256482823098824453454970964993182927661688133771455189134358172269327927966623536685227265555937251363770102750906986446290484513297887998372985150839157119880701082303102583059508906458295563606005059467512592655093756845895035683279750759253545361767747493893166354142099601395675084552383420670536386906930146558521646749599454401321235420767469798309984756959083304176739987689421080743990621732134767040846383508766729922438481817919243376309648961857359481568600955696587080607917271861669362131513760415311939369652043755352257393722832652161776528644802795425135892991207295872615327738333085018741154493571448887089375034478051754942291053420935558103853202604020693321979148151464131220310012135339780400938391692551200600294462666604467033337010022009059882796842271022689066716255401414739306696447235429865448390541674846102702053702037649856200283835990846618120990477023414233697503623935355837750813197305939059161959244578275450022125838099816298411462677065969614307902169860645148701281112957938655424813056229921250208917940666029600680008291215243119932392827850964619778923426491054944393200967446541226082292096920721253873409170170146234315806024972682362798808591400569772365092931375835768896254052560230097469891338590800991580283394317421747480320736493155802400161240131310848786068191271911805406480031041431949155133000158436939463760099187421495230761660594556791482064397680263852953215487345010159363314286800240217482171456521657195505081443978594312103085810858469537939765495031852016371132801006040559230013725593475650863641872667905699498389783838009895968590689603505757000430952627668728644424233493944893106263731840598518159644618200018822723034431828978481077570310854424003950721278834218142619527700988712297772453426847638595955806990363139019938896152365399311733973803115748744545979303399510501812857993703307880434415887136332735027205567619164232677533608637530129790920361315726322671236375252100593562193895924490890527844049144211774934309698477985890371336011770575759657496658592194514325007545601350623022824643154082422463678036664336870625317133703968024059891722621951665191356121611027101434865191838913783630991903179259396148875148504628318977066444613177939476433144619952767599156316276650573493706303085099439450226361638471149041827546026676494420880888588300179312789550606927951695372076322914444816575100426677543352716720183469548696104291560787451881489052251471599301693035282812130422733838045654886470182539968010997080628107400736344776892596639099830885033377204955717535809940616008689205521467106922464311859883557982499102986895090427985518203988532024542895917473548105266749560014900999028891580556241024980087066894107509297134599934463246278288864109044222573716428577440068145780400030208489332979701804651755444158498595554612561988383837741839341326285660881389540060066339100517133959864373213790792745565910442562143707022178523385531656125570169179504096950192890024087692455191860657280350687213603912842736421254456935013655824639957221365405072676301394281017178626827407244123593582484389071205171697740573784172417836710885201820016300945135264928142829175876250136199529555167941907973504684432339361527120381154806437948275107692843285950069543190648652949745746026739728667116582050895627420164111980201667796054183149210454373723245417829895331540452915864013654567565770328384105873705145235231609658404168443117464197289307347596642183235173541219789576084174640355417048123664019662361205941527064352560893908631535475750294230313783435703720615410505398945057474920900506697845172296005253376530733219852325829029945057013052903730817042409400471934930616191398390669302848134243426416529486077660324212019503569284281130502036299067184482160490760146219962210824794376422563161539608519969482512990002005876063479932736021312409384990815885465529323901275090517494909615796825234196451238247012091633020660275240220841225725297912987148535522805598581789095865390251207245354154309025043987520981563076199595643487491443396838673057830223749994933797856990553407735772402641342206693141967457080246349879267937401579582420550103744625518208557962908261941944445662473778525329933866308593736411953051290664193167367972868051798743897056184073864863996184370124434177996439484307779727800129352157712459149211767833128668829483931171828386794512358554707555689385459296602251735725727098517059129709980179382431050229049390057851942672711655402422983135973746091169491232490969542872684310676706977726156716150598697806529006906073075531011384051636841452898355590467824231309480672290127551349296312888986211336569314420092155084602725521017188812107274360684695123090222067452467051533761332913164639407466321914563924827091810352945290581136971962483958567717947093589781219813992573640143524191082983413618099346274719459415903487940867669616291680223668151866424581673075464305528962115955798117327780392143949485125826216544900162913020392713833919953887895124064177479316102564141617170414396510401333850513749640662137710478287767622060554311584685192498048467103285235116113477170025059878874524843264556907700113391388428388995993868905978458759621813671704555678252205200883500135962979845082526137243735962860024658374069678481172626676552113446516012690894255284329014511479702799581682988098391056475809100277430708759952001856368981187104364817580387562447929105802946444571794627074823147296240923471633574931251379480916097126310882910636361625086445675156801742933980506908947261452200215133958535450633068148956319969632615056274099559010687610867497344362355755441049875011753442461638794032408057430478257629330125738201869048123583854573931959581218541641672036231892974584302072180598257005509284134951126547215152585621477411063551517186971881958396712097635505987700549233160123380697600523940307389797761601513895703744517856777423223454302144474234064690647633805979524517043912151291871319188378499201646022689590655914728746170016298340707752806657770193629554859804546462409747519839699484603804851696586464166532426971797890379432292335908784421047709419868997275993937215105915999214887878623739275999554720540070981183438617147244354484905133666823247722355449004684250586158427329157806874948922518449042333375395934299536069429071498982640839958990564242247267080652123658380673244889014712858011094189152245786999313828924957754661785846361624970724853147720494446034698427098512608067150468404334489197425441226750879118876517390652745588542833184273887338267480052550344652249689008064602848095719807189997580624834434096435209389100516283798102834131479487205929060647818349296004216057577427063477863461986233248163472784405722916020546639560176205983509742473240703071586480066914959105733832480892662690671053497121489829430416695939804967088442600298984944510005804348428901639957001199045357075930992825813216883080958684071009544494754528396513447173452197989756900506143852503246894135419790303340485491853499615265831192144219627763906642072455476210800727847902462573149496497933070885912289956362228556731639998733552681717968321562410019319501999707632662120527344723825703881700299659905072401119184652221961490126930030375006768421542889540646060878403435170416915882656236553760945156588577702885864455621176314974606092537816503483073250208503930625688717991760362134442087595451571715926776663557551119202842759043303169151630346704642168288889848272091631034230591673865010636898036404243475097616128924173997304243210317111537833522054142664516767314893616870301083713396933543103348236841735990730003092884943163400718061215725667524254378660554123467208856282488610246032287502839418005623107112227520234643328049089278321619965029611726418310088567009377663292795645053601493426473522261130728643635704426918218208266583104463091574447903703944390242924039438270500738330070510094037366148438585279808545255296609486769878408249727759814825159066687443183157245110691982608947718459142077163764633079271134043606330171113685173545390637670750390079473694143732151369704637497683474709283755406566785611998323353229171304236833021020675920334912757848705389902329362004125254839743553424843298258613118621258241429343783966183259365732649298826151257466219403621273653480136982771402835007713701529249146752911378361583273692400630717005402201591637944241543490536766445931376968349492034455238253351510347346962609600935770833185587414295755361518844827352083132708593025981468256449245051271376461206647890515881103471174831699149103197341388928167020620149552169413073386616839742069656385754370268149827202126694894911645766300764579730167020842894579290423281446207921037055919865239479942214458547188768187669028886746408207786345172348062123925452086646058328094737014021653225572959567271284702559519784486955003399915249789835535237130894128702309815774982787546840402515326223625020479772140103498994380543652026436547473501916209157512492322142247215918229348985111313350259714797163025751661632060820239052194026481500692284038174140991265487414989902518619686510571592255398142382750401488389813282587002266263955059244878733754134348025588629806193948975592653419606101681292107913034722257646457493280943862632001919041662947337315472276056562599186585997311255080612116546838117875403507245403163176946220742686232868902842946890958038433193728134766825766749323298502398100621506676799940227989807676307288713340838134685320608787680325429440784691003183967649448114999087034902687769830649176733021055657644273975046767292717073743844940578784941164171786906009376591824963068203925069522894733286086986229341826688589838449397589147972203397006688872929833308189619174412547284405229305244023560415589103075038668668149743687972445551263750036433352597664963760880073449655266034467822146286809504524648186158905563647878716476798930050336980235886435045022838837079958905559243139252666434458863926413085662357554900272784968208069003349330893056812825401814678960373073105269680153400365065472156839008348150326763357265625906441068627783970665728775097864128050194709828921770082865076789451957921315448587129735419977034190266969979510460557734322714451324072325921983350912788280166412445400687779019468376287098587574576888372554471623003645049170845034373589410490240067762435663215512754482299430511471292752281600499145711203672287650811897755221975083475741250743531049700709961391055972310808170020905087794820476979539307403124942750041418963799043937375766292243387367710748986216192471946188284348732667286161395919398801762401443927067591439505333475922688743992164940481427181504663105589097273033478840406780618353522294953470862101308497897619375650300934652795024757015840845984004683721605219323120495021124986214201441992050930196649186265336766617324104056327567559189671191541093864871063677082495666742321955930053289331542114778034258938346777501083712480977186012588547428288119368441400147554343258108901012105577066018308288139931074445482922941798140029355124429437584834778792099361932873378326472909067763592282360085506210665611712835768750182238630531146383057777438537106401299472781985859174605493667126019811985292603881245147071833743253812135253087145178011569107809897407827077567498682288651929410491320363780433537159772801662155305646191695956555215681697796911115068200896063095381014093452091256441805162778247077332776464427241454179965583503129574627352018926917469479809255849050186998861595589241865400001610389110822938661315238916027004385693621988296475121061714742069484978462027884792916570804302500167098863906274228911093886388914498412143006196948544593619274634090776509293909280695117608601865447923165270508409105546778597229300491875296735665992054753147158222377520039294030678548314096627119533548419400121185415847943439521263947389961785045302508281336284436331189587674789657254384314183254780287170746770680760237803291434235046636344015892450775690682250285815272051982574020880159161501508926958681851916468416828059647850239955642967472631219790115976521734419547446535315051378885837043784982382400713928769808901571218671194046377292436691524264564029884707083557936138557573590457600587278404134318521194540475582598126185762700507748310802988138025270529270027278716782844418204236284253817641465464967859815692742162826445512410999692564518932455009752335224924350506759867446277605778557692098119835567810957170324406378191973802388865652255436221542561257598279861383181686421715983200349866190484202167997743676730164081296950972978759271486053432420082178427244922055249010133657114060807141527937677018853234135210461769286454657630144212309182357692746554224875601906918863224590472092760711066740998967902441917213636142956478703296818710660103106627671967043179876759614487982537101623293563417947408420551372226558859461717022865861497298775860099911379785891770298521437471347772156837732861950814155198524082325135006193158619030350710980692910243272977174111974027461721830522600956295143049948658573836347089992089090474676798685733050456901847850372063290747943835187905178640953524213601209615389261557903807430140149182241963192975087414797791420755580025798372965823474101354121240352702145265946749365390129627812265827274690103082072411078918845365991348008335806416904114952453678750189066042236971693711046225348799483223129215925076613109132111588008268981608832501169641936050665886737946773279085739894490659568283495504294400282383088705993694648723962491032388064081251903903574218678120535608442603386888425544674720920659435820381167164071730525913367163329332094474133794773954077949298684009166921894646656346123026803380155554528412697289573153847581635290832920254034197616554340035493321250451554483659921840533782017316929932916745008924380787956424973804370431719475068534063992559780915329938219336860854194174849571746022741243220428736685008537064943540035108446954187431137880484412746255899292790240241035719796742764233726603878005844980880056477986541781265856752018554869251289176971051338505181962902668249617023643093228573864367263151896674199956312227128311422255284877985893142723237347321692330086715406249376918895795259515587202583733675536102548592335651915632730993488173038272494743692418213579254293044831549976668784138414434034583950296998426853847533459579500607842624066829799077173035244625192050310793094141973895950184515932999780765901456815160943641557185879997130665917611136032924625749392494794800129115673025550492379587119732782538038925109193201782206851600400387746525737837110559334435767072356669775659573393800146558710019034359124764719051392172276196934859051986675122875738398515610049909291582532616200747355964378331285533466992026902717905148034657353059489393230281308937565273868284728219829456870137373245492298374710868848462319511594596158381176371291917535362569436728523160357837524623309085423671414041038457503307324302948886882574642103827379877714458479718386809853000427266604710197470545585651057562267828212367788048121413816245577184260581680743083650088673275800414540301518337581859640158420192035906636355566723748178384592996478139381968965415782754826249397968885746906824695136650402452265783961965389749704335918970634165896525575083047212720251685167336956803368369421679161539467408032600640958658535441837300361412844054877973928538108738155416730646755488161993662601920703904818381784626470911244963354804919719899913706925279707907480124301224220832099509144181209506531658780809462120063564381283707883899080500474069626152787661132089478355019906754977920445073971314256513873273741284655475201140583004206733080652967078645516046386781767072466318845351782716843518317734485378526543587176484613578254408596237142748430435863036650913489024314084703223161170889117469830285578287156899867620390592987296163805681168577907700786773387727798171456400278014116488253828855535908077113387163480714613197463038013720253524661260578275536488882715356099671725056023797079000498810646651438424445136673168370819492895221182575514872339059988462923927819325384084678057682004196980632748285596051476408704861015939058397060606444865353923669382293522414022014568154868893918406658674025443312260872881251865133775007197944632897248047756676589956288247222561030033385472163892398705185460104745852119245727958598182632025221592538371176245180689677305932642451869301887704654124255560339987813658211442097764078316404623317924972137807869828022791207117725838572061776350549995292536809554267200580101545449072369781218495334155925660474843607048413974788474148227300475459771742193005306930858484518096625285464703523890100321443999750524481704509634615323289479546606337488351643261247091510188095706612409481231703121458152401216358331775778714176055396208769188210417115262311049054167507987023436542185233916313914818100119456284496200875337143671535930525759861928390578113141198081363915673498970602498682392344959040877529901362837356758040855191110291619418113818549849102512853983151004849442481851770770291212293435974797905014470186236613093485331583707182345735571003859238746050390689786675173418934675389697632799156729854933346611311353909110878055999797274722258152771781549878366891093308395650697578102718326567091104061833311659875392371351701352453652287654771583589424988542980434776110230530987197443230675686097758080520303358251181414353453746625565466937356544196521746351689746679357130534120622031802492297135699759334791728982563695732345278028223476377647025272656275191752709175950815698779495275867696756114069499728310964958782300744221635034064287491778868129915082498546644747002452404177319216004585853081132978341676054401998004154953373502391337486525359907996360752177735597629509662219125174361860226036974509576995678174374393084649720721476187230084727756088847080581737774964315823490283243313734098209920554386078435748932075377386120947942015076117266308891295663555226537431887892999073845675231582960310543271793639338823739377652330390084171267845037240269870496531710160442940716800811169164645799591823709531251908799777262756790012273417689845203539413878753148431202706276118076992378791198822388714764866129664191471105491265375193591024023542431858777833443876474594877118145677913301181521184432236269074016646737872774486928806546268882129168922635179040886906972900866834334644791061513629062616090957129129277551991260393535956022868373595724095605248440737004184702266681548707339792310479669022048538510426344617587150043068380233135769147112914658038042405283215761510303683538381020038211354229472460838484116604706504307555210838292633842780675396342981952403165855963324913836799550600603311986049259076952672959334242649850150703097337447909345748016136478817447778025405746727312665893559045419412507345611768513980248988833674463897905747616871389258865709523841667200045381343706723809787078675107048971998087953959831340220352035520289463561273814468893025893499591259439823027035329987060037544712378014464845759526489113273180798590739716793961114293281833919016574812594386190785993665934547356775681727935029965413633925634839167729289351144759159547188002405777393870821797857722753392207754988918579587528948861385243480817920338656850042176254586064497681953822604542418061302281713798806598530484981946537497079742529539874493802552210028378564851751863890297428406432538866999172423488802428687038955877946047350739419681653877972962839742974679466439688658279766319958695370674482635102500737972662929049168084149408229518757879146750642450897133932650114305159906272484501192954668687536070292242056223598201450042036442773729489413472702699845099020445923408036956689806794900520020488875882972524545037674353639883435139251890135042278905445166202886062318248023736073894988355829234197330891013616727963075427900815200197892071309782007585919001110175979774974442450919030733391381012319470838257132289224892446868331343144413069317017390634449598250987127478633441328483550958313096079641574181647183267869857844047559700755970310188769943146281250122935493612891303267586231684492331779309398271843512322251433833712092841915138563923561646726668343006522557875093737317340622054785451932032512256945388329217817436141226592910060266854755612708878424579362087471574207410622373060246234393032067306581673365080929231130257932694200078484468743238779871584435396254375469028890326386588577374813859712742595283904818817067815424617987488034410796435848351695173716735165614286085345384067074314429081973401456119354567563161761615750917328304003391662100983221237345843692891741496017395686017725277273813450750719481438899343499695845588662235897455989903353128222277839183135652522528372107382275609623596359891720202524333629462169402564853531798160728353297397719114257337000803022738901377362456512345666910976162309868932621697528269219387316964794973111973280416506364203017414803909640508829643062674191980587535271660132117921668191455527590310817403561046764006565546441465247669585655725951757282691543785397640736166409838707742961048479027536169573544015203594124125642183277083481724776756368858400525443632241769841870438471975642172814893213064938926395127446699791679927299918085941302709603602168535816320749597346450658052048477821843491818834507947079115286067268068921433710198304325123816780311798949778057640686987452915164265139931113205873515458514953573900854706559436680050659357360986560914571204858153657403309610780379887691114430103818951356623799493527678963064816204846750933225981507918434561091724062166026173502455654147610661369439817718594271257255781302834016393539426449334147752530794161662160512594595581806278741464539863196672787982133892779212223597213997934693655035331957805566645931630873369183389502308972616067626552698588634226067340816241054484839815405870376292687853469556163168266613536253675145705353271678975764585407668167486813382532255825017047492966589031178195207864825834540845067769397019722368391083232375301970858072339340488828023471474067750430819446275583194887021001365078594069186155953862722783708860875549066262833948558337794460707406889155807506589452251989998285540343590621558298099154237443556784370321267276052557269657063651779714046357366295143605398945450258389888948921881819475465577191787456885834553688857352757303008621104434987723017010214467871262540493780498135856660057834020417057997763547769104273743470198616098579193888747126679597181768152493334804028740078916187432775141463901409623794427962276616909793037217363039484491741493665607326184717062043467832279795066986507246397233573059620540992351305334214046410180914329862636619706294267003892103490488876843106245673171208835791067193562249387110464538721459794179056431960589605653729216866405721965014093082080085802951898965298187736680975367364285859781192626658723718818003213815720451463316923361686390668032971169941448866692934486733454534505239783554449387021346755636682736063581187737274410910650940827403674979451580215854288872837520985697235105767153949128649845418718481289380275590666385590626328331234700595379673864084242243548940755088497539672273454756904391909809509108687922926227261650099290842584873824469466475423882529240635458085593634779994110190572559687282514526947220695304031201780703251406188150888119102086769693715952581711768200889236694992613643117138396337150052894121837390966341170249205920457726423131305066508874283448164910957542002334189203218891121774453937968276703826271317261311863910946724323774730256497067039150339819649927972125948042349685621530641685448917209542645192704705180184581689954900861997715924166936881523728521992059198677113708430031561170008932099689133122197119697051747756395606920263001513641518065501707455669801207997168319947296237966734824265929586722189517555024978972538089156361013158321275147874150125268011657720802961894219179651520673019655813178251772907868621240120704200367832632079579545027704152946610628145645290551187301263930369316565251319109961809470234896945034123789871733677287285497902028334289287763573693229011969287830350457268596530013704966339577731157634523531750973384872882126427184028336646467535115932777214349939058089198219548407711258029514403002763198924107459502159813449140974459789134419695120221898707304448361488462389939436792879603720637306979807408027780181579977267536322219763342850612732956795833939511364820582263538199809808921561317460791147173311258734283613784641986103470260329682384345846640655012718052783229351774159741663475207097783446874761211748924337013919974618422865669197568431975320780095043356872764985031494799212927032031853207717108664179202004375710407008917981306057823268265644214852696774812989963020075982037858968367811007924260041728282737839581622667319400474852756683064053057638443054210162816256147166351297275498840085568655824988861998886232885018497575416595697699621050327202356412552292692883675231335247490982892694565532139272753625437568144089674809556499057352877196615174224044660444142426885436983405993515803170976382535571401439590787269423368815390612887087491804279814482973757107991901353518306658648419260406028877147458597115669656934310753951157827784114782228901122481304070637582356723988252679627442514900539605923791252894319882929647211692231205851114230732294002127408665798693330418107849634807637025136382818734792974617215907425935878642331065880891807929729051719291486243258984636200289921725943083983830561089582664091630693782132319204572670981689850124619239395238668931166346019233409570994322060511887092915031783409861769050717627450164920783358331206384927153651651857761231279505780592607663491579670723757713573688726451137293506781646986866730764858935150335952134159496293317695823532792401213228654053051266232489226764741234399640260332471990589421947030674469503127022325757912645684998855768467227149253626061548932687423257727499361163955024028196727449727347826085195684456857048093627348234734110232884908968976654020855316365468077002278395034093337629611887812642261520901777429085859073684384378083572908601674012388369951717528751437081040796983203398322974088436264493033769968349391466107449481007585358772899496687936041640153937914074252572259841888587743017380740504019887275748458254483620602845518723249287032007177245044788228510671765795095379151112318949748135480922391452877120926842450548924566275372292021113753974073476158255933363272917210533748373734763276246981311368429127972747526731982900638487885871170380956232482233833536511749937125250784223252177487833569709641567851992724378981259773755265993008196296227202510293814155492142685940121361832919311770113497078184443147883125632017976553284940909415995200064473245205317421328308493481567848354894789701358994999276880394381026388888951637161100961718752175351176994642349260478421202438243313118590624012608263776653320284714130608700859500747457463772723465036070444877205201284188617846439853309100121326254337568380837130495529601565473283750302173818349970927657640991808922837776479985482127565961136939394602701622634347720303456993600210234405774304479400457435074315743723584229694229107663447754773277948701187043837421215744640756226903705952400957251520531355548879980405009664378367021723076358043280438689069427493850102414271044364491572598231318380325100385095400641820790068860451404513031123500398621209906643534992365883386774034317939521473070375646054350609555522635611076980611287355870588261666144146703779500984458326962867344454277520400950992517906626794578982072757469657288763148066928308041076144189666600673779149512389720149333176472733197656201052998634690880901148287233464549614436087967795788779355633520059540837882684943011764764366091031193653549102823315287149074839781400508237733626156928700640674184052428320885945972423704686431972326304611906412516648306779289333223702961517149021908766302598090523991355877594355743514169847458263088013641687724413666137534731415565287326848824595458949424383183398125938727332881775723179320360395756742377202808716686506610337137894429747930048345253230200914236767666668583621201531231871668310650822833041910503619689603277164223553196583925106631765979828120212526938551481064173954793391055866668697691628607839696606015302867865545295019552715195765049566204690948148147507669760632243722245209255877590790377134780826198467378943536229250697763375878217613430912018192700339216899164931950982590257530556018234391443701835163896624867050298038203645320778605651689426541538957446728301270296120397854086134611642829966250573423517268677736230395369700896919110821643121671407713889143921496583494409633847264201152266620096252617939697898741217117840144626446437735480008600117107637714315022389545849800216440114534363217479959397504860243714674626030989429576141494393591883620637493114375394645451989771819183595329116756920840514376771692241610729661432700811945727660861261155594160709281924216561950011866461133447974264236783158352284840636802845068924646294182614801845598159731869178865857768572007568945008138826975933703465295810281665873629759057627406753622343100355984123709396375822073120232031241924179895751975876557190476543114263404223396640848362706893040709398707060247426266488400815908807416237042162130268923577492560109546183664400511537635693523464271045269993582696763548537389030291630176247027382215141727071593205291633706330159914266963055820993250310173365741263068984902356498698814620157236810670508708527586621081679063824727561461524761488166558645609081734849072863402841163785139411937130072340786650327296740499825306490221600667237894712574041318670413464624237600269055854424334739122254335212858674664513436547836170874946439155847956533600346396001482537553749448866665440675138950654955124022803312325242381417210317650750382484780747459220103430975180722467751105192896888877545293446716804137392073235774938759538253080028469653596326003272555918977359652780140162904608640348684725552322373723078908771013267733878161290625180429366694568462290041351165469317915879444508661518182915093068491471889757481935472310876188969684791965061251256622686383756891761899836158628892939924885198624054239213783094315507400692365244064870293567354099388953537171953711977000216892109862431041904694213651432537288318762895573093399783005583385663665944767048816995794586709950692309854386380583922292374565504977951660676053372677059176559837642227957317578144328166843840549798407145392040840264953866698120176128198251594497950543590676266823666469320989757150863634841065071529922077643486189240279365435719046810642835106063062560069885955891275875977389105838193610091113638159459177234295637962855526601768974493937585441057422023993870351609867886663423834944286038798283180018139975760582256592916901022247819534038801008608730967613102601816812415534384612284489380762464686931084093552331703786193327660766406005849024821351933967203837258925117247386035689175047981193875990270280256874380850773871510001258529618277807890645244101090286017265492606549284758287683502884047103072538668398439836222150837670577466822456749471731747109274557726767847916814944608808482964020059257528291542775856269706556270079781052883423130802978498341372592998706025296056493847033092747232523808894761265724237353757263923029865468317282730288318041635430190323137995982125664186524032291263599648619695980087442384841085974130775594210259613524503485946729124792575375190169273861115927029407017844282551424848007339389587925375785764778399988791539078314665381366182853011458654544591360914012628135319933278517699616208859505977766450144353406656984714597609310035174114012651386908004963040695802533424798774484937436103903688107285832814046585400076815706873150256185580471418680195326368209641642595278338915185305357337595437362596002554911765327925556981674389476068134757717460556727273839365670094370323100835585576961275239691384990164709105591159369764495401139816892887793947724230539478876771654479478807286172642631761508130890736178537671971356653720324537987634525376581746314809229713197055808627864185583443133852546506170162198302304917085269380901092784776256826460819889459592895553116750451759282562374162280958515320469211376358950725499518136279363689868242990987531976978168568598884418506574369876229121796376446316775076016134491364717686304568326358796019008526074282241074871627267188734603213225867467981890530311364478437497285046595013534873901893660153522937075186520848722289822803402397883893864291019549326576351456676063313894691037835308583940176276137196931362610640330083717731446583433423992808879212687445185993152105590346418698882300125852044353446577133117022713460923517701112217703047798936299417224979288533301867915305908330458207023368177251593624432809536066721163121113669085142358875330954636975645864395372635193134705644004758289627960036615626605767961582931177622603352822195027337986017557914296328863622003598575806405845340304436007984107275742344071481589132735882233052654698432688663708219712872947488155130215200794756915250162747704603845600329933129866577535461624115837511483710531354814919170704285596899400203195100420528323730617231018619671542844585834151975965552519230891201526107440628134969747060602714220891891040192421405614051352355863946113522289226529641053364343105861454253853158535047013603989356081394638544679306243802186071622881850206815273315641949441632867982113659280002286232329175199861397670649230460963044080061420899561522117914969658397157930335731228764486591038713168061347726938656260332282245764624419483273324596926756368622748750470012138326480391814280452525181168333922145081961743408728969944542424170986998556182161334918937893071777321302641943986254614661502385899059539578552244623078584141953076489232193387135092244365416391543832185631750337213265915916230114662557777466689040158401634719270516462944020926594672990212661080086680383237133167304110277946708103103744205454241138168766593575885167506875822801629408307424431303479334715771801971292153785397729198534099216721489883076125721521533165171605897770857305957146784181980936729540554514423282377224830822251780553635285586652917697228450332840564283228640062730850390559156688896066928273565795689046237915711118499678575793674687607028437390501811555968465476549454717167631596006498386073756750988250726859792221700468814863904991279582310985162051572593746339174478431874846158438757372682947264898602244795209156495898406015886710012620845569581823262119767871101652028900415587673289000470249700959360420210475842724084917540475699858395961333650796724881273181470267782301741910447315914209835150810328810520769214583374625325786324369379184049195011357745373104095712541294483543804655376096810441631509994056032582305132293790706578045833481026979426897854847807269899467612056795168240428145428046763255234058718981881764310683164691117396439988724868524901470864894807343247220773738994237896122269629802068972995887817155583700888255777602492472896489748281860733088646592984090429183357769550967004631773046873579274376461175540461600230403891671401628919527662426195436482388603401753224371484658250518906792476447405602562340431930242275564581604913117086283553099729261936331083730478111590783050653975176918938764693058616993267353012257983201644583385101622664710972469766374315506482683981240606115060552190908575089826000839473449593485426519951194764475390949291271627500077388749721440236565326251648847180314272586015331362000834059275178501450466993029393197139984598999401087879743992705044186721381053706755441252166605821671207424189254193478363644849663064397055816017377696409562127369334458940662755709081700831757108127643039012047369574285548921401287368403177645624049762697492357805970942037245592529154412123964429047217741354379671956075951680171493850912372164799119167727182962970744408603676063652937844047736055407345241919490194805099385679545111651458389830565456346120842986794158499097054627756988391488158068666655605909710535632248701329865835720631390438685261628393117944379026053410085784393558264614881700414856999534628995806688506396253651387728214784776233825956973735861718842014697371085723833850725519128052391741324443694982607981458288073753186210353554222356581714103614894994818359814080614706586839034457288021373472626137454755079570419209394224641124299244229374871103189960291755253776989733627132129965479575745320585248877526311215790313949730686911102138376856901441834095904319839532245589381830646526516459015877546847572542373979007467921865079216315495882781417782742614785905731474072202000934799247060881290906007029522950392088168213233393423646451787980266251416895438288192741993118362212526683474359469756262004709034016521051314821986782051275040154545697224974620539163306623953711795588016592702562421568297227094320242788154355201019322854697723073435787191354252124640812658397463755880512314830735237521146902453901016776503594530764249876029054711449196295920475803822432323071790088126522217868000882800514167719719978547363379650119387810373661666420775531788612200906071446273766739416370627962364106738866149019965200268436430319159237893268949427070957963426305093269065859884204831619280804700830066069818665849104704704411013420691658081429753811437337501404672723341408410931674762055401936589137811177634589845630849645471634255944488555860614308138420253073935850348433327790546850394731238078643242749574804529706694099923165226931873526000001484888732097623277751447410623205550940483077213634917991459809474213195227663142963090464103292504288008677266537127704949687090876427806851369495630515336267164857884837082836760359563764957919065256012712882809628997994290554364303908172735579762305292767781288701520505996558092479145838948294391926509726878072302939827547865112977968538793974172712033051663706052924168534103336545690364824124517846429131162182218669238407802618735053773384489174456919567803667745193908907808412652546404501690487307653109314878766665238804523152013503274264934566198451393165152873172679010508059553241612703301652145189229396757658812621119316435164139088963619778070999426977788328421731940846733181068035994802192671998260614159397114659470213222880283324682473133001311958140831424915405419912104600698829216397181147758520242983558384795550507586572284675062670081623774159235617851490192329562977729902397592520418935782628873230943832266578724711112499892402781658496918748035214229639394536463131090979401536989816416837460480142545533451041188698012539472776151549707629032347797014095916679407682203714049529477905402957624622102075358727357276081875429852991548810109621572573867066186771879107398196795523010606276980985178415192020704509847952830231658463113059782608635361131157138971592198499570387566828047959113699463376590523353251240457343842611962808129122644789997818608975451636708503971794899861062680806918696071366210956005752038108504091205050152717844006416873648741213352410432174595386260082110934953611987567580279743252009846557558608425463835723859144879778036570479854128089499704458185879038233000060174278296343651527440339569578323478086793305936812409214511592059113777075328808875493277245501391426761862531365370351539240610997616791187783395899527149741906231675519161818368630872671613866113190698730349872166245250392334650807190628956267872024229498394740355482318398619889565666037421058555093372597745854368502386060376828573645129438533331286984129686229529521940689185651353841292455721726138635413906382878563863038709426869670038936535012128844523373080771724090560363799268638121486520701996021163744216288014551275086634577147091193813477475219090474138743232559239874338338666227028875332915779586125094566532542347560742479166008471452402976572392323613549060514708766748155933817012656170670308599218626720955041116143827677067507002760428327492893218534466879900539151918860002294665097095565296718282679142188847856358258079890391417954031426248216983481973462208872927323511619114982814157085318353879479230077509373350906095080624417319856099428949190141855387216108268664760969363914144901657881126671651748213204555820509028060280687922560460157405914240291522086393739332962353867067579289363713860240010611637604615204216181759044624761148933632186695122700778628391372521107157645049728168678435106602308277621477341618890807705510343517184539704121855745168802856595542825213640861481803213288897801723829709527609603714237293672505620843019179573980333066980468941789902621640234341037859269734879395973798907586034249575615439151511829828505067517058350093445056786465233165926282849941118096876232190358078205736702989694885111019795615231733505044045089267484059633642266175906738013242926064125593788850939911844359392912291830082061849756211380002327699812669697932472451187210008972358662945305375642552492981821963883914984449510713198631497539543893255971106380300494626600119598822553444310775556687590974914639005703841774443169814992023436820107395234499584946731826642184665050989459568260086293313123964583747784349906892971108837230000686910457934628607149593716432734675654458309512043049216832176073403275069258341847415371215829425339109687180258091563010876116104650291054523835699014233130698693378130605695968448006242171622229172618823248882317724203756888474505506211271880310495016043105710783239118250528559451424923020023891396463092907465778311170077985651284016268590884932540318978140283127027060980561774565307725577579350055821080974588422473612206482718015356479101876980125848099490120880025875330291085728551752366236725686543151104488603924906250698218194302172959845866962431918183255594228127605618769009655310072023657434403388046402360323653412083977465685196266747646140764097843659499757645915414734978824016170028723436553162889373572038627438120831306563045259412212751618984776927867055428228492980083924191819570868482219756383136857290426202842514878108906996891749105156649733567161002851034728148626726919891541884975161916300461508225553376774567207992727411006420899633471154767016554969864865241253592916812724483744393574674121498883791106157473019496019515422854403732422715000132550429089931862969733378529185201171188263556060049144695496367040085213177985215643358276125490722633143480846493048331852050148397272102078549536467256382442712022083939339543913478781338615158207101705064744038303721558772461950756114709090550614985403069162341369595088077403611024658075947838686464073387439721149093861971949246920621530372703924187710080006498569317577410203894741516669043652231396259331813734914794516693772065994516795933165245895896079156730410233189487429944688386512976380731054821199901982424711240092119290264957507414508169908621609425550844590668818745925211165268007056589287560359967968572102415471137602980251223119563161618021709833371484305723409180080059825005899387874540119157703751950248269072918772385689184455036807754883818569767284606208793295021630335471360397215164968696190646259207264306907139572757378256233029708820535929964042270488203960567196861560540844342799887426167089417020003312786430335090674825430462129190338694389371644835482174104971381706179456286547081467131723698928496492064837697769053896958881189861577280773225887138369756491178647653461839160760609801554511426739247389028718983533993068048612825467435822404628478027906141342526669516678708462296333418970194391207294445323306804149551534495270906992415183877425610952722590485803823345896630244466392974748783354194546004719486903707721626435462536081810617322903985687811065655458378469770713820927989759754213277939098544836332997107121649578327022449636440741765097142731516378615744019041887483910165731986774178012758370373705777897160996206675062736761480342760695493243336015372278753470742078569690738589641320885906388763024980950167032842092995569973453586869002469323219624033321055695813545495550014775261011354569199139368410141219079196400124710020790941323831353069250954725691585984465530514771184456157359663525466652942429305129645864918532555561065069918150442853552639629284847727552223638941347819967462989591646686811943913989329147641267973521644356943469069149786306133391871987389759471015095296546184245829985866537292767821449901920182573604162445773380251912065904326927495784258792818526064507514206161538314081095384293686565900447094955380299046302176274186811080946315145434900396953592870777713228636348872489536014171552486252437890806765160799573615530244391935485604807133382546268621965616080987227365664235784864504223704054667566912817525353648652841331351888304954094617293849785682954971595332943006862483541655139347750303415041649204392518585688333789009772431724296312345733672083877576959393755639678038312201457908792186642986734713216485086898761007610056398747094763791823160030469672074451954062112237423615096383788984168802617472811165676475034364995321768010477822346729697951757493135316429175822614439616315364925683004879725256433178784336524463038599840005469190253021462291549549346495190928460431298340154084558809280815081441232587072950848038157665820192449338341600598859808468769096309138483569687497063440756342730705243140916697435379780498035383524718855472392955774486367250606599618623096368522718256696649518944247438985099503844247119850978839202214728939053278712232171376576120316830824494629763432647539407245854382603321865367240858609251014572487961017499352430150883091468068252898289074998126740485179639674397893808683866613338021011392143669443400092114654915331252843948173760541732212501319570368094861648779158714408648947979932622848602114166480756252462925620354528144778033173650990050394024206660558956865943361372526873426296927128646520469772650053260618326001090815664084122012563202370281329056976006954440611468347925867744481116044978240880265403232495182910742036099520129515015265877584353989459566860322955777858800123447647935183238665011147696162943309921274814853350528259745886121066625253001966690306779405016767652748313668375675763666072119204856362850409241363764345567401702294963653073539727707463420151836299739187315446148989558529435206068384315181628472996335201786521391445418627890560621224167955201746533248124774782408412700022927254451543223564292187928052895488628150445931006847773277193150205463791465410751214068587772131910132920119785313895850171263002146299849780384250877292417927915113898101656972854538197344492197938335684456843494287304367638129465336549152452497282934245090173803625631415011964918317088188759654319596005614515190481361402919096920281573410764405722751402617328142286195423970740544832379103704238271710298729710547002606685852794750629026206833552404878730890329772223823112365945185974499855743468226130462775741076741436552452610266628407928031312295154538584546307213724433848107409624103361004018535011947293467453587536501410733396104688664290968434978254141466343135738768874561498252978584707713280704608712568208339040556883900888832541043638175823108892716416858448694923504670687442376268771885633582790579699178929683724536353590542076727088187287314258737851799543396122657194299967953882495706811849370906189097834166240309221166855326072915062687964340421239557192972379382670610411022810980685898174888649706097886022019868522610139913550873363909850943471415372615667000933867683723969744941719807631249724687282209275750733907520146284222649449278692083023977141054121539477559501994642461742941933514864382365409617652727042786868745739010124971032931304084656147945731101123761855888710627289389976084329320332627828418899076925528297223637798221174260134980373623947891703513546563761908814762087848941530854245448622743874975691980346693060610124466023108741360336639647886591314282189092367941854662827658957289891589414001778877226382110988325563811734460192147881401967784826824869573735468716091285681091336073533949187069239616163387372605013549891024334244101144325562300149902245221711651518885557823214352118397049575713162913217333968552167432209845571990083371144382127248702222871071629753042108882723551038235055572085528976477883535513633458407522629730977148289233711078733832902723825917850785081272838223223083251190398625678163248687959147784218819838556593882609977516752578562820340328469193576823318630093995946671811122876209814050455501873771306332700012750492295762718125104017491895203106855076004534286057903257353022629371767085014042177356697989149004554967950323359191476119449440225746197532054923844738386733926622128032343969491371107401513124662726513042828117439090817724552092913957017965090274353425864438493355198872958386731862968568249233875129754052599390964724673948410641837586498366192008689818332393442893677482656643120150929142268065352039815577161111805001733331295861685716518472029203627446924000217312046859444870950377344366406503370542766707599232204689684127468895825113330765275077449736189787768450137019804798307561176284593652955859482683575672795543020618478042335687018501173143715721925693463368488808790333101294685241887710933476539060062143739307172772073943280992849722369602539024483727083984813822398768807206394767339069602317285110181709733802675816477979012541532677537424310541998956057274714099080463762849497349407821883956119719640668521912077521665010800607712331133929174344968954741807821586132369482366433875516387460135405238357031388571645894163267089775227076895710041396022042707807783944183536192861007115874463011334212231966998967226911987164526281895140529065438998104436344638943586381684718327393598724486367090577807799870763109806947853150428632883155516989886709448525828887187409669215121051554139700368663527404087820830706423790883842269526796401431904446852729268405544634134145888536346673191722032820951627884186739413981395977069164053851704047821428243487505228444975508094774669121446425210712144517223632697360826343929141713540040561420949635201262216287569237255173582268956364192950523073133661230334441186398417190829782245833550019811990230569510887544785168119782463545056902629025663255896408973964474313314560165596210484142618312489699451358860907800761642166693065235586202538741288235255821967496130186007198090720129823661267773360505862763543248116656081064050158369555077548852498551876116446147195123357405682847473319445975446111728947391665618105772327938396310363319831866457674504728418358277990644212674733075956458773797230860415192956521268600772128246747446663988800428543402677077550113873758971466418316269569795122916107430661125398057853489715932043501160539672953275612564261029632175707607318911343361742581636459738133926198815621863560055643436995570400953200078508933132953759296600978326265918723086822383485286232610843103083300979839025405366415563990989029644959922146456218124496748843446552770051033603841868170016519849609196106979383644829917153081468690019159905769313294175623687381737225295310551546045297852747265474193340243454354597545000889054500608861943609447575831645969169766614359789755593809181560289304913795431334556239099238526167871224237142943227812916274533593871385738299244604158887020497073225251773024864147167926127570133868431225083625747442642620353951162261507542229241517715186884996335061243651828253983759357564377284468121859303100004840369204666159416918611002628308608089319779455768240810048024331418853270419620869037428976036567475714704464137977672581938680159827755633441291968333810889209693131777902607955584902051378359057707749815720205888894200943938734467770600250114921439917761413429222226401559935081652665526268067346130996199125804547850605521338529309762949962286518864603203381067075537743137263543067272861052817296136969967329062772593768722311402689871671252275706927548241178098916438077490438512312893908228064036789319393006130641877304857199496894899756271355680336713912927342175550849858834385082232997390067654918209284428223007066596957107371495230898484944717182149867181520925308498193401873327695925819281798133303334097420725239846608272604897408929644568234295036707248700090719758083078897394316951221319471311109242992086824396221428656220145450868242166857897519628205480511529109208224027157784160062588433430564355524578325309167965873825493543660605873623944394439923068568106874650533733163588518347062932468323956341128517882210670903307536975926655279033871445499537576771870996518379721896386552772574581124661654203189357704617910992595545286535583040414800451138762379618924631362409361236500904941382389747587615844257041375838855063093550043321676352956823253950494185947282588726078129749755993842812563971581010597812417795726229396095129947379254632355743495900982315776683795978549991347418114104444390240869288462004060123664125436660922843072748011290461591274682649833848547014159054446828280742332990237184648494662784614206994522614545798124010034992351605069822827266183021403275668500578132816491904048313964654623330240119471862347031932023081811941290917602890007418754646807605051314979559411971737582178548010677182111466903924659321096966762200572264530533167760644477111289099504846430999783164838669399576779384812329477255968393342257428160939448416994295732824243517465038129696470156695903195715371240093953871983595871896544521142127918092499098086419521865774857177086288319507826757919238801042838013636300298244947364449680666415582697078554465615955498591872291466827098570437900697996033530056205268129927097553668732890836060766934378302723324050851109315073641595777341477029204815394959133482711171855124040297893721367252134180108565530776631470894590470429340348830026106350291723189190095144792558140262761195604720276411415719491779704473963625959095715704232559126527418632930289772160620568862417078205139171963461435737144946082948425568718872954950252982612922488220250606496336849310139849749676269139305256665735620980720050532774356062194244545847703904161162318555242493129762559369975411891163490477071138766260975380107584826945972736576270046034396570563633018178101815775572234284568710161478300925668353458346824347627763404003594067094875355972204770488025241082576326518866375790858847683676698358763702467647935767075866532981162623639272321371529568071987566981123807622269025730415482345488779242169024716258889927520769530974190291990325819873111779469447099669207906531987701852832738585478841257241108471862698952520644505727893966258968043459116157756262728228031151527967198688218133230257442709084375262283724965066624951069709804967838486043593551430092459807221682504560091625656995751783037108738755805086995684876676771177276318053520123456324002146488722991509847641568902611225379094912063584310702237826807901268425867440862118540556772665046319614651268570924174205654488755346730713028397798958752673178080462884742847408652161036391879828691461254794854370454812893919159740816402625921661257571219254276013928782382840284508787673467632834538520582122928962176731257966818053731270075697587876587139004971806699554642593058602318005958658594935657658619779982484242765617430682567338627623080103697232992714225688816715080681273589664957730489631684967204585661958715709655355660853310414328341629905537650384090237923005875665796053673887167723838041982161782164153784386144782761960917460505407478005958477947274943276982567046135754604778325732888021891794425478966493243603404432750328549043018303483658453027951868543189878960224748651189499293047641087794892875307557445238351148802298735688731735318073108410687539158880070882105139062335757072264926602369176095805335558581353288647149081006318858641357837350198230036631904572531910491669807100648078916284904597383100709747175306454570814967799601677264045845555541213234420408543496558370020450278304493393551300267029470424864815768675939971482152084484909494702758545719694825100436490324384672680495600788765609457935764376407984646029354877846406459514613188861235544349065493772341756667471043638960240569170282633519770027956047920890702864189979974690833540563349283353212253804889324222587175993502344555760789820539489842607932580028920833565332956164351851679777572141226750786815227746646367054676356446872847350133459906300447745924079300938865555989399746762863490380794171285320132308209130064073555818030445300678814742278394975388382927229561403732619504119617491003361915226202682048717709205278104193650941419699776409881570738176081962369147914843558575085120112434511142809351667135397573964021154653961711474347694133228714776486198150178646464152761059218257664725369900038592289220750248546138020199407787111719802300797302523622614636844074878203272629794579709850075177192762273629176877314217991148675498632929094970660304634964008723364964708656823791903457829650849190542516648360731021641910185579736727908074961451046336267213549237635024414813998555557568352518749780694551295108220659489064588058540863367097814716877215432712451858964985936759452718965480289599313975633212956947595162586359744550742672389301233471865397779401725450637104931661118043366636237450082386722241401068340416454286756219857110706082651639823884807509903167840257610894950140799780639397360715570715091233622816172374070970110090467274529008798494389335111516530882723899450004231920582088619611491297869493369450058160130155975375168200994160304303570531304570123653736867471998263511368463310328970938614975753332427781129915283469852339906846233064353950297918971337884381355944391175303629066968904697561800408753072793899463103227214397020983511614910347394025300933035430426545223498254814219188620334736365061332315657003160170722561884822761222265819179879245055392617482317740649542078769762039994439418082055883094771404822098314795591143672128984094157955564112277155497441386335211938783117456456977612567587670769014634478691283992114939758728059081333194865494945520175969558736019607997546094820258411278547265866856645720853293705143968174675633044266412051482086505473660111858392906573537947922868860611621861889627805853801930940176704400638122739985105565746566160134570452211311225653711385676772340716384141333421375216220496731787541235550890719438793920265539032099671764348397634950915373011205247807981003228080259686482377681798029212272288713572166434455606509339900774527082065841478249861629605638475436376243608831438355826204018174558475542193528439672094129919851131069534147167806816141161725067292694261052763388269580136246908029976842723638661324604769829000852403425333364605334581865703054215244276016551236262651231297931810195557787484051723296079641700521007986554882037614570632740158874601749796195749916142972112073216667257251306514270961803747095452893491825827622762618973298470680699586208331441553871949858096727212224995792598214257968339365641267912311566426071038595620291003099670992099837920247574982683658286650349706759660038255905577605437386090066125771229192704571955457502719032378376554977522415378904051657751810629891890707844549058953455409550052968906029368904596619638212783957644020105675015103163037132383527015317973229658456869073880038104708665329562340184357901841246008138910064360694425939502529301206020282030085835143062823878951006004934457773699732543307457499870673330783222134188417090810553101691124437916297133645257775829552781895719095172706656895267674805046433058294915650955785436548006667755270623586003628454365754077780161167744630800599188233737219052983716115507653432230890726169205749232077754308328689734450492884770010708153404981384702503407681053671166280784841586808343991913660491060930476659058902473160296818473038565885891658571330350563783179048225201467446341242716590205639270572304691627749136052848690063540678879535968863530513527755360759758502365168650950989730802956643018906317422433895843857118030974163762893523785840024217592256321491964007738030604081089581863420216644760518842852187915129141193611605837882179602996578933791199776561556028446702989142452494394503562036027737741168836662616676938935226709689846344466640532587278167491313630275572227655513049117633275993836418273539514319281470628064762722390707292445179160095664990710796805133925162722501149027755342547757069168228842095440186101660195544442332991997016254049751704854153894267902333970274282037899901302696230809979256284684147562573269870933800218152718823900814769420497459536924502951422604874908521021118964306057522341113470073805483174108623998630221428738880594107689172913838878853977982391767839368404512267306678927120565729593738053989155897859173944988825116269739097239107328749393401721783860586837171610283178862232441155744807019972527272116817221778698713441627838348557465421084224765056377084309511006054242259892730667525316725939828962948916874272946057204553735779888032332644439045642582997231983999951173173071206874455730812912106518906218628215462924786176002633554662722361357556934047587114206081624832352375464312101103713118527420201555385894574943516764634045809584319477018649652461119603223447774086870480430648943850238058320343398787321384308323013119635160930749771128549981476654279206356284466759677369635133322361161420163567331993640035942173447818085793141998847979887509223733038810686796246018868424864404467307997569765155478035281795115700302143431856246238792543232558561254211459263516337370403329039800867082588523863691822948542231621752053378127495709220331545556381242417983777558202134283720796892824128035030059108780161427773722448749011111596632887816121320006768848061757362100144547522000752977217290506938957427253307409994189725932816349912487111254048537229066921150661445943740044190501848043695490503300456789788814645042021528469763871574400323295844542760223919481374729979343073217035057511421520566465854798794852754252979155340392948030441641895893598847858807695720476969722633977927062103851066216611038715315747270045427718872050471374055154778485812773532142927767250017184477569730355941720994143181217302664279073129326220600673486020243167080825387520310186812606931234681782309605984614332022690397856731074616117857858952772479127657054143368960576253660244132726477276908472217957178996991676457002393779148896423415538494271064465724563244052144955814583513941901648874318230118406675290624459732924603485326748261442866551924012783693756954531441334991210962402787053460306286196912929190769296533177106753055072239898665938116419239593188496993443360409521005882604728280922810583466687851811834177713223059647514275147268255051681435271311520338558730228728544052602064540741711742004553417487719675788175766729827655374888421554070989275648402933758088197698479813887637926587102706184563761997473720230545718642674595075733175462298225434701144778937188039923686643840476621127947339742325747114811555110191946117658682678687369135061843916541445581854732451148038283342098220505673047925224746033068961451367387661408260757893635030398268138774247897731524856294542516011621727316079420368028550731300303066582422339038518163203633277241260609239050453944918346364537438668075111198769527320708595148903185504948221191025362135604495424091356481993781738138289069295876010530494708786358674211697236549607507627960287555186625303595359636276307471673702206563815741957451608967001545200692522410723322887306150878962771570529145686621820320018947096667310340461187905449541246449280747197376594236310498561516196361906542202464708990714256949686369937588724475294430326291400885860669538052715925180020249324304269711392644764178828539996985212935520282090151865499464471501186098710002288885358529043514921497472789965398087146496636834059495077424338816882475461111294467999498386875020420563755810629761463146897683098570318467979300173502756869969173897541919868057087727715793767364018458093310356830000496880188608070991401898666167845332805593843001990955681663509723844676898654708386447448984337710811681586111149110782017264520220618564375110271819463996727343169762289853925459499141036446482071036615815423554511776642084362576129619744786749452671819832915440355976219178326125526145159424953940507189501675460243769770239703475459447289276579422422378257809799978295626011446074132702285819584420927023451415493231093289723453245060638814352588557027124197254945569147658006917079367262575816827120206690122955436796756466817095834254477863787789990206931887831002578818095797156851629280039848516302604402863201523639234578057926673851807685770466927187395086063613298162220567712393939934168688483671229045663393671148363593440468279422027926329546354035843912075977365626160161306397431065873252400325030305464523740276679758145552366834184472352635095150299683212825801395639477970186013139640743063641451381620350125469427291534797204599562092500472898089664630024915942807408473779447465448514177925347168782691951980012311580453663888148942045120123037964443021102797934037239051425829792987963535848383691802797306296753775761914323157491035151974394075701661764154428956808435811560853672854294791330727481059275062172176843160507683851061930749215454811538324437244213785900791618443200022020059589186841739022675675996373676983017564790247741751969423618494835816742555557887272276642478601783941317251512791752171898481147427727150395720678564024199609540363277628817803898784690684493967062202879316078045813321745717705970330648590658809711543020808949583531226166706004890651152000532636838339427304548084207691590384337565406025657574112836728189591017254118905558023254879192129097779407253647019735170213583136922209841479600206496647165171105375238503733614010854680594908742949199873015324000878055674829262503734871037154518313871805418393808188405604418114155923422418007182917809495858848958614500066971605542008349279315391352410991713346380007022624769832416110044882044163748988909682127534081831794652263420503081326262708703753654933152317286555823600015406553474276080673603293470482287011692385926303071767925601292241226344151941827750434149182333105138184350170963073920612665240079772560785923972591767659117434625956917383299103558509611824790435686481198286709858367066663411944869123818601518402644209122520296232204207377513246019201648364507110494128401002831205857285846993765034899497983928097897213256615357343014701254327254477108098088947528519206028375063743327231999901404749052766490295786334292578279374806716685565496613059591846055493561802464915804269695249325290207514448816543421667466318185300136848493159603968789255787266489796700872484541564725550586646422182906411231268463711348154059820051285231426392710157849224142099466483718859118681461481095574554334067560210760359783488994085536274254787570905057244802091166588559834724020258882554209213595346724363028722581425635598057394591299040797769873063058730253867342515769215442326141908164989849840968800023151899865242722432045643716116746249846680843291601335906934002569360454463900820450984784964069921368251913623476909565653269386114262403627537521101837148699759078755731512844724106037402079549131023126314011464450337105849691936603559439093473199713581399945553970558815967095433449701709749081188631874201043191040524072508798141353602665808161947618745756280709528983506690466253537480339298991156469508423459065248161353055783659037018441488913300285882187038722049068602942986125570335164429771343431329902256871054348024768758359013421094520354201443386257140303223272209004771709331628022864633713098136064339331706382176114038353733681023138601785603080470309711767273336538875774611709172254734833673605288077236152471043109179905653847022752468591651591088003757144550171140512818190259575141709646568393312963302368830127748053533403178294299912497454793173347989080087466895143061099909426628718254213326620435218401658510501800050338752661949530938246308703880456440160809416564846546049939778085271147207459688462281612315045980774086571075835896798771590190590667171986166778623615565213011279995566911727239926859936497929491151076568299260951894528420666161902652258823097880555546412660487454145387538033202294742935149382328422284016751858526108543671172137707272224728000319877542567736245492900328083899608621331178890922152809886668201018299547652297451571125177975176830559779699093104512425706896950078813271893792044268708275069677130499991057774805696063622880593626702429848489774499161020697479769450536630119034842275723266861620361399951940223002392701422875202242947431193791859150438799984629382545989121986836615104648520613442735479863076109044747846368324375152123729317657065777843977124561824726713072588335187910223158882644761407495849468491073411637815999365329731533555947534722333763868686641596920427500206457462431639869646027001621260482289338450840768354619652829583682697554396505956444405006550839571015153773614116677567261212164066558943564038518060101827393747320163179563998228815742049796740553277944397952308166525140531871915693943552208670641457408115670836507784449850340250643925324697919871005724158289051227899081103117469115253988298351936537047863187265849185167568202438742292910467529230065214999918124747537834525066511534641136038251716830862730082960250719809845376231733760098883503542693118808159062539618615254530621044724139658545716126929441235003129685825186398498225205714009215559501454231372837901755879331522327948804810843295665808641939555823951313594881768495433121096829485943127774430463744432111919586925433813912053998494535099768856033819487947345425128269618241658256488644487451262438211530357314732701210072841318769905251917618722428592355499253175034194148963588382228647913464234247563047511239003589264670165683806798814323830991746935434194709654080302638055966904058465995932777418034436412278166505879687315629852053639776456986423625954026898184113823379342626806814303338897811572096771818415255382455054216826632696142003093819587188441744229943707034373318190091265652739053521426623920149255182883014082530423662839276289017491397535747228213348775198544855273817962291115682332597221507877037131873997664357265734619714943353926910580316439902586805171698399756181728666810040546184713205706341218241131856417427050170327612355013681477941541841806815011212287680739843527785451556084877539442786268976194684858100690330524565039767008144132886507232419692677202678574588825458182631398941631351477101310723489204258633189012729636756211824379270755210695782894221655221625784736898660662753792020668775537631196893183182790147948851318437544503647537272277043372965282925541947439569917630623913990982087794077640518122770909669477163766277185570189491962043401789471454008549540060868035692268977596758417067891327483044726097589870718739750969059760185818419042618228849830062134728661185614022216851900583534388331473325464787046326492019348136426079139469712501648910337994948517764490918915625514873155825449068265347705951736617166596570512053972700991310610842460276584800475054113682010662751764309054149149112927031129247181855587669903255382539467098456161667547650482377581236393338064529185645211602448637182242887505513351684480748772498367770509003153998048574647709521044231894370627983366350044617314345862361253519882539160761756766505611313480489097022356731419077870277764543620186928075021462692689930987511959154389679810271725987900110051724116539536802936644462787861025295064184133888535097397144996417139755932233412336154861558418928160009145672801761412496772254421888551916840895723890622347434755016522752989541371752168869286781144971298879036064795178101668856315709660350299907812044047611902503025575194381458911908945750916197683335864850708670497033929641316573835379868715948465940447422197409437160579386185439080587837247871642843990636311739509939619879546823593256040692022354990708198750940146330348216573849768722099139110682945937051339233965162359556425114092421826391315043200861838915535252731793357413760432732201027216707762357613415653409942431073828106320935750666347142903163744329991845996655093480722188558970804374260380562328579112292285789625533151436897111219392995023890926052480626504795481827749563168624248766156942901833013514106116923224417695610059199869732862955108272712073097981466403611015157754836922472095076414215043261100800838332531890279495040853424454786882580367079963046074836354646871488475644380554146147004094918693230331832867610298308984014364264158334391741820683678456884298919263788095622874145580322612211824795171344116613620102548464029050942953586388613096188414884906840395838280281278563292238520200065184284295227061426683752698620129452327378533150675453177618772762046166463694075063190608471857518293814940318296684959922310822925467653236082093785474604632432362387688923499801755253684063265007344688600757794632721373931625771885902374832831352910426361689387527055250397318373715702332617191738739658607715675946082961344479042110313296147177996496908892283484517631481366331509811349363434063061461698307740334217168720109800415458705361091255598118993582728025881948866264145940003205190824879512315363442020634484144145247699966312567260410529609162154462565060853413550835547963325017259869561272898065172955526371443888825828738227850894576731683347167140611147390893300874880613987681169490053607899026939310920945349121347902396544463597965425969800403400369100857115799389231156540440175834236828973371444930182712028140943741555202410514296653594690307032895790127875576013903524943570458851026280437659304377010759111279644242763016878986788672477174984252183942437811263854274955093653170567543936744469834509556284945893096450466533461334963339746788433757780131005357874600731756100450263284878431868731515820213366394392301359241752759354728922647296909648841302861001677902184137480666717522651387794999090217771363194448817134525156691316987989512858298318900813017233097642985524443527667162074792113580286881387779599106846495970707585391883131946536067863699296404641448859230847876051366400803600006758257752052732494376647574111008693258747625439349679965260369690482001811678354234698019368950488828135029612949390846919199439632311657402520483688593550267074405067336876582069094680615472918272607184624120363355296931234767965846483015071553691343838594954465791774059940485830339086170759186256864593257699878087849052999831461514126538656734888627969939124097288176588254233924528841620824580685610336795653638475538179175060360894421905650761664624213968247561442193228967365208945731483237411582179110051395770719584768978007033453338630705272848088437486630065919422552607161665942109279248909866966551484188964982315016477539783499035882814319486813419754405413978203143949489429580940666785020837230604879335992808923041790378143687417507137765728291911992659689796472592118289500375802751835096061135049300692708112119145847403132551696094963290066630057234331345415418411309007840036293411553788726369412712378637581722030060155142989523958670299208080950046242101951706979918098733181107990323626386463699148467606986979312403364543509654646902397059572606497688128900331174414574589459091365291393500329047488863757311431885777873528055618818618041570361378740006692482699466396498459984418937070688970013683479754082296734989715200739152840191504419455509671378316724459955729515047047548954022340104599109328986276134533347968912265097241126631394397411228942779262579884237400257338907555099052842985351883464857255018900525386434948019225557992366680821711208244272271598106393317789230434862950275437848356205875752721396749918728303066344911025209779867708032459370456664418266132701431128649186373733977019983978962485466395339257078291070575007368440908060757901873050640256496866184806935572732550389696385531653102991704908676654607449484443986583004044101962225620159052557508975611219521262497150186884760522036904215404205133553808309692363098878114826423606004754544930113092965259768275265650956756067829294303966196444900514492813130017847968450860988202003302906103911045973213102494822033358290471007398227282744989556370156675298478412009016576883981649008042958232676712310650353393988416531268302881952456558512666099429011931607988448602510279331667219854725479508611592710743370896351029228391768256626208274720199713704927158104933181810247542670438677541192308526438068027692523601807082951304489058042046201178568902732321231814503826626882511454783668225166831595005069374819998225238660032096256270587469522996432917776240184296549551637676471986212283931471180379541867756568752869128096053404351379135366958361102477708957459869606971520576665672206354571539431851556061849095815591909795171830056667163723621978709865093813455480148391061449483003146151178727430107962213978308434330365095318027329539592105916384193575909832610216641730680509617198392188666558045006588636983757030649218436999570817853810909351975072484454366440377161252917107345974700215996107993656772131753931021531887374387117921165650609932120290796046445294229751840240277012321835803804907963831433805794206477786164318954613340090136105171019848488903391805653951844432696497084749875895075253465532473497731861391960264283117986723146527296153718523364606583478097711020542342582089553468604213828401961627210251656621394081864389301545843112548631953304099026674845421431211666419028863503992062288494393935400826456806474227240096005124284211405655335813053601989952750915507463467855295402100127648028600046669629531073402381248597163640409658444033851409103600042097127962763701088089373300043588037886153363832580494054407268408625133871203355686978104056964994979813741401750353259880557165438028747619704987906428275223843334656568506181252722550867055209773310971906083722045321530817610973653046238627240547849125223240284145315785605087444672753430262914144987871279261939329416766401420397232567610332976794396251835678606372135311987432113810667271486689809328552024112854374640141396087208538370889981601655952789828639335903055984450115711985999368856618522708695183489563696110789892102759064861914403191441719915680771025973820524261437785447961434850342171446558673538432693836343989653953849298172266117772542130447188932588548338742545370367527363126020918624672218245272301543754195523644466776327917433351875836694861181555745199298803245236775738365227704182153956756495242316143093111060279483145934042250405029779149247125909709671357072791114253185494594273873793511947418855836746281464799169085114421427927083862730131804425558575701567346508295906724579955535885588612480802064991808553035684440341458472280334341539876629511866730004293403409902982763153066067793668820479154167242564533212237062036322191133958074468248775451721943594551684575781256589004699317658518556709910421830322645539502408330919371771147254889074274149556537425686368656392526691931294533050334788740057606875268701936879658775350725046063048893845065859729674675883782989316214275085289653523849076821073159445650139989942305068237982677667181028568222533244073749527338323956503010605337156746202973683208553726605457998661345523192101415094298217021641591113576835663534463374259767146039961222902072905176319935324532029655173182981925000959381006479606538333806558729201018293600077103873841720521899255590763225331216035272751013853138078970196886042966796625343123131606312145909658232067549093625234913400098280787916364330438665394194090808267742450812962473122722797404040865656161065276850918472724627231015709386595708305036910273890134438844215174348759245986504132109349769859608254883501597367852045101058153430607216879508168711146973380766269545204288431286598985643118930217647841569011824627758755489815813988198852235217549886227819165496816261712027244487686496326727067415183766465073411152633405183276865510001775448124639034445127281204890508231359960645175464152014533927046718613615737692248870324579967485576857819091967479547412089242063310805158627638836990072558815232512842131957305969334363349586629835201923101465337104248985413144743837528334879553971989604811613371742414908081825799422462604428576690362395904571735803531109677851202983771866714895189561265098500762404322464116337689095861162889151104548529998063154197334467852113611392620797095303719575705089839664374664871644024535253006872347072439727612344097049678957657072174663107134023250887529720099516718180882138576253934529500712549514537900827545228599101395394865410305822501006571344865528360745080602583942597864642362234449044962864087845600388503982969504901465628559196320979351583119609380629233676515452128725876024620576746259360233769829193683129911452031307720547187472022804916011399080494523004684566517564790941830428378481969277285400473787682919657286777155216591597576978146076666686430523374875289281952947240854745908462551053786715590381346434623548700732775841111045266246986290424729179677420031889618111610110281658268060413745470437124040233999510801261970439179620874830626918991019185362311551666716597928706153056573592082098086961785333227104692140237777880424036812410145936652938629112667745921505784209642051234564801175265416086919009843592961233748867495800434041349735236207150089695356421320386262835431559057169923993232911184675510543993704944817101865161934793829759181821442319736133070177629628681768506695377810582066546674489152597133408635854481240844833310042751441908261254622617869255216180182734881367962713727082011562784782689462434704642607838118399459415366379031741618704161486633557824818810484032737640409343346596274780163301941822819449682618167465494812322759695719251400345776413586904945700877158604999741019766045548916919112079941076445240963561200848037063511733315722717654664112199843825564681243489214051736819932181273019718278283005105748563268416914180828570587607904918158415683182313490615489714692067540473924039822885231685261033610700905108192464685519114098174140532112503343666278695085530091187434517234595317324605126788130771991643532756634526587984141321808088536727121735738133937940624190172706482924888273300988168892943418340558530107729279498818352227796745559463175711095704718433808826728000480514462106592014971335095868125712138368509063846358972650697660607997334361264786125815158975229432647697782706301230937274364166746783757862781356474498712878477179915329785678969950403508118002685261524236635386893238616203852975973351353175745366635771604318072507668934010290821522946161276683081904905181725858887358846112096547292679442065343829443493305107561172765393738711807337829118438222925321130104698131890841014041768036782876865785606838424735051820222875575097995487282421829804202407205283688141341051170880556254982234228096711554069656383748280717511461724052981084766866973093978960474806154297819018961864856396955559600588420559088715920987678428163442914909124055507757740668942511237507298213009192401386100078016078074533879952464042029332946368499037176724149057233554641218400220779586034606890961493360593829685318184676197583356880283478457128835289599688509670581126242907030223214701336307491207942363528555583855910684051926093329308616927933875982137741922227087976282807205156543458832960276034144014430902256615974526975878938221895871530563331122469340962260077072981670977004352496101087119001707167887170389783505426570319941260308769369244210551160639907011500553004055311277602727360922080278905956140856227589246462116373851102088487396861460151506150057350359396772246287840746975389362807215365074270058100094055688413815488428074004033453033559325679965065273883836189517376909434533047680290096647087523304403319620618001585551351399436222469032163815222485355234570729907181236636037005634509010881845081570661105366742983651853826922503991798097957447800123337283864041341839062527413498766631507284597986052231641005198397973024662682164188805554230054221887392453181173084332224354412059396305843658906066755646109371979471394435168218363030860767926385309453186135228579517173838305628704701531937090348266560552694377212962437455574125659810905054478876327823044965190353896872200273582840058340583636817627198364316945000497088825952221038442846463745837334878790837641613694161959348644025233986539390340671034121999175683633325894024225483895986732985636199323505523695768836453000812449867342297675138723795718065892513392465378516217173785014448523732155129974689113537241652206430143133683063493560146712325892938265767028297283306258518290397203879769556102204758831036967713342843249005684911514412801384330794367732811268504207047400313096530415681774158184553845070759004219892347230566020859429639704947977251267007757800232174882905816051148108194834928037414978366496490306543977573190022356644415884275363739058994069679203464086995150936340166100897744705457495082367920169857539237452197409019775763582503807214222880396122815714391506738057344374476046632078807924521256523103069119835111229173123126174794706345800404054003199179340828047339425768644568765732993445903875994775922933606396158550367981205902870251074781208521330939605839145950481991136382180207495527007417635187654277257602848373056883270788592431646971841592937806288403737746844942830014479481221059320408690868988126325517640460164927488310690085725188570225363039235968767119622666055004092029494445354745457053728075306149762396772995091381998206518983370727200014973402594855632399571664744357380417287544068346265402308248255162524114765877784310735826776819513443343418496752675651589913948910432571655831238932335807400857869155935241153253784458472569022547000359480786129959624457701735181968381784260355691036076809562029058336954383379854473043472698250905629188685106018574109035541809674484951869312081368735110401650253116426814914962754105663792617966035151221732603401460071387737092780688614698937979304119427989203650176114955474323238314673559318323835496118329882465186649306214809720376974600211069487203971268421285341128334069530801151815231165241178314830548058012473178741534491401793275357756998229888053335252551459661965185441614957590528679145407033402748536099749785003403725180681805654758389589810283498298063412061391138072685507042817761211452422365309235781236068758975369415821206729522361320463398404731982842559609021874278487209433856580063698345467550977396160783932967948351968134492267098038372945198261518633539311843876639631065307200273876657168388598748189703724193854281936877278065819705587122343472333230793490710535432417448386237548062500814837896021314981474633536196896501247786661894491664932468213877155820749645428326464650003199275932211375171574539818523798406329008889941506383984791965859184156145957054480115127540559590976180511187451034632810162197505353612263925418378105192493708266184199357027097867592498090771787621819052785843705250512698796203707167081969876531223472236706404016059053644605707711980013755934157276245511206318838660564103801876231785619531846378166585861167594867913260671919885433737799100646390994220755088400318487871721671692307216884097142625403009959856189265847577592818125807955063005499480526307371194861805971212843049912723496730362566186401389349533634321421935186315208181223472836471623559572196421782486534149335385744701386072396268009197483981994648009282168915953505402554016996363717708267903386193247572183989829218524161723594862930857546352858417013947186762577527045076175422533901929113227514956835275423552085987449385641880508738064306028721248755831219509019180342979120358756795513839473051387332598564419814793802566516415802490905736530718107198507145494819476791667688697254484249479128773920381444895096013338046630831465920886245694346636108868568732207174865793410527634681355530399997849172316370052355939852970406980519163926521741273416531033022587539124738987246627319403209634415930937509573598219050191154080063126284480917079591952471732043857254928627920892897450694284266121528057717994188746111077663022061814379381778570277255495634848326154629782326717709791846539110853465377955708324652021326696934763086559274661186601748153967762596581123069395920766665541315612253975790061262593922821207160575413640276480682308028714806932572860531614863759636308646363716658802558794232506629926078216729525412327341532246197039878424660580092541413703790180105118175702628825924377759293255142552517289877780960961488614066948553013688946596304499852041514912633419838235043188217596800326857009334942818378898624497550967653787047865855939391222180387032135188571393964297023595439530178629120211821809814605171968151567697597431872532675380386466623540579480998788614876799508845204073950653537017329212440741106454259858722288665521018265476466283312469012914374777523413482104940751170756662090371518314074703179670056217472745936490916960827068244866221261127416322513097491750883082298611529532504634935339033978576817160326032936676186239129775432399116482171681943004641274962239444453460158340034974601876181115214224567784238925608231812663686289318929723422222860633029015636450049827730633750978291405231538362058797115144285035606323868043448062794237207339326089556823252067801310570357527398484480388585643950872869852038387360803773538799852540577299044080639833984921274512395611260046039327948188376246475446892301307170607481315488143298259344261498621834028733657766932680721443914352017408828034104332790368158843971302150727829881769763064558057660745564795241861127387219997173128095899848994770572920772070219596653559715083410792245483985087376112131889960374135350789768213731303853377571165299194176806496357474110394525817086709821454755400237169572602510826624996334517342893764615090558807833851653106078288331825210337429019091667890932950427629141304825911704024766454145092636419999179103077887082931510510145766901756451331456158605179740184769469137952990902436533602626340585239972123606969558560609581789654889579111063574992018563674781008635423787252776743384661169834269501502610068774395658874218184390859593568191600549524489404403875019749462766737752368363272671662557856379299025796351791504594742869524499488693392767623017870467031230808990525222785263728857562715021511335231309370504285085783308023902600136765102820993495668197289276722428670487644465014479526897675834452505232702040177223074829537706195410536532875236227663715204842493914778893955280199630742192901685450526555240433882207209331970662611621886297601083963342362186168541162278295632991839141064942690652311799783862193591981168772232431598026839076961487065471157874769777157546566994372063877430197473702604376025602906966303413761695447890101798521594597082039680852236052188592236564744965545432178523645194480500851832596933000433248457817940312128143708524549671656664190513538577771301805985507940087261903155258648601637575074214432521677736404495967434694481345245534802477737218778790653508540769434058852689990742705999968204696144420187725344497891055831717024104431499596742738790280109624036436939695799974096774823618923428818422205223249616539984601650688407871383916685084926322771252567233911171188512091078081412320411387262291610207700661778521877206645628610249919986165378231154460503132379678873855209168039631450856519354162432108981730122024472853736698628903043111958318085373721327246906971897382363826557538143029308422106980588076606177157072471630700104357328615587547064800044284743784817951317324850312904679708799584488892795619292129040382641754996899329409837309221891340997319305979121815927733228748886536182317080350504756398752237349893780618497713058635189536219591123659308473150576471306290035578915667066385353147444111902629182855799302907621433562773420124272695986399792729136145964833564852298254297881754982814142780853052431595922291719515749500787012286040422491809560739010844169074880210088763289272217876333022522875541025912811108428286113533552394655448942911422450435798682961724723998121430568016362382109976657394395424951189983912771066807634128364665112051516473072020686708668325374478693625638060894083542416666755145771917663748125414760238787012934066769299341979223412224582605544500018888646954937933327025874159679385573599605256213306792414732871706017385296075967943301485168452681531834134298488855736372647725425736419867651186449344517405653295452035386498079623788583915609334409034016574455684846205332493985726184893233561605339125917905582429350327040381012591784185258018526314195217113261047212045753219397817034795959510319218817336529283970866322855344889421648385246594825642866148443750517193579956597022003871650185782316674102474699691897654209894128523970768804351310889732149213483253655195551190158012791105383129665713139180385928706921787977488410360400507318825791321401938679319285233066480382270061095559016949047964475285541558471195889790579496576586397470313157077748237782586939245391505287068587797366220862213642976039612311398794593295949105173445342316270363727527636350527238112739926293181952977854597799707791171645161470897352593999482376250553313271365504018650874037926891384245999945910215695712024723225145868424152315079918262007633088403096867226414178121472403819482528707833276418017921602332461334975818021291748599062740049726762939005516611217096471836291524825119294745924852998680799606645883579566530888055818587944430948495315645770748316921695923881460540225608039244684296668361658204520274799528513087546545845191251150418883105603273654024671455855814761034033807568270581946458904181266938311290405376038863503879867441573004474124086635779423250677450934418102043506396239841265970808118538223682546067948781497718101336077422061830060795159525145262801932781369673226530391932602186991913282102407202142858342719451887310781915316729194550304828545892746175703376174314629550858022428635085943287226600153615223545338901038757797732504698533465286615629510517811135559861997183957169944185022390426679709163290491299045329431811706569350457576731544057249997458196887069511767342220371285297541258639200483004642160656027330821122929030620866236148376375976090411325289350823012013011585562067562272568578533227313184288561687290257744822635449321555179782239899431450255664071660448268859380742948472037138633708154405111160052282885499210534819506600656094206418412446319617112865225770054618384107963789783067770062942255569762549015056496843633385839048038995504324035729186539781076842756118587387385345298638662950830214053764326145181267404610193405865827546826075701715379673672222412700977019326024853136109846311062851127083165932140146750514820715445655710527825307767525044488936690379844404515203904713111639652824111241099220838926509402660406727563225642293113846011680431187131477439989106897053415966981603893413416038256599946224355778599055119867845611034346951001588978322768348283645160059238906371503912378388946581709283012160091082004951219247819056916695381845109924507010788457050961223043165326388163818252223210707981054094191914038872137275183928186423088892195429431743138098330693016813981067945225063471597220728589172876742678153098746077407162616215560861611978115645755118666254053676724069699021822545878789839058250911573605679089959420491234842569575339132683083236650721062940045765234691307262826066651575969702005111231218461857236035649482809375581702648316290025885295946683117659461517478583857212694992237798209745512680113217752107606486726650619202299922817049275272481675601015075682577166218168577928955600463532808481241221615817638168481585977333962970937277301409508780721400057852471658372167795670702844066671627994914877498093875257987969318560876838639662588200297451726541032117232589357669179089970481579885956513329360013455522263140376384594467755212087110019473223262219153007957440998347817100552879810522082225179172870784307004017226694351613767123700633588145460321591057079614825633702608936003441440539024809407252190634583433853703597172870157990534358787494070441747142562082284597494704382903049631499684131920432743415215573084677599268819927668357153344278106181918376761809065484108569731874750978253191574871060679013351272041380994611947899778983212501390866464815234130046272987140880608445524366741039617423423226727833144430866942767809773611003953180783630978117844154365235735087231128641803264523251607914358540019651298320758305553620719111036752482502227929325575618711536181435113345373028684676427056299742379811889260346285598169970875027048518474038977146045119832306379016500988939319313531547861503245746868508493931069627768577364846445820167243475764773098191886648862239503104892652913810690373539197591853440118973034940985227252205247218468150534086067846991389477212881049966166863444058697889963007415592879450301253938835723481330717624192043834917676583412637579252658821871164697111368220477386157010828046624385937947258455558194024185539076589878849136831409715377759819892587510429985511436213062190288368937960088874269445300220335519499397656522176983344568549511307278112928663626667218901866591911259405171407492782046689350650869802095040683499644582226895249690190495912129822716698603834465922780642806151492533740832329370599159981600341522540335622575538635966317785831734020572738296709289043787297191470509985085935616763434976357158473193360519834272670711961387452439818550152001475984475573855050463997976995921889136503025180676239698698934668205062641470232451895816914424557177214465978308018820242240519204791772231756550981558581402141821013785914672058540640297826699301383421950443743914098897055001699922004218005746557612046288592582483950919284153651285494716333744092958496987678054532722189200583870687070726360024254806289728221448739054399668135480218277154440221328968477236118083819656292594685349533966571374658021353298558916416707711491189080182822458589078326262855328296458743110058688601377875888423666878645601902934220919565939041100295291683950481456644942671464354108624369974634285638169238527541599593222659393026596757034040897244412480734471528833183860970961249910846837415366007598594672336885597401138213503990664421805660871823571243520610827007151071581335451790265294334132062582967128375141299155033509843245758751897996758925938462613908264665308140704558610901965636998061115464256404627438855477320398723657845163820790008037023811818346095683466466581053929697207668775853901219937758037526469634298816482116366185543233445265468027284433776633242630004867886751224381160292117621861107397830106574328261031915568053656787747959866108429934319224539851445289607591038903026218101627426734640785500413079989446201783988253007822402385740086619453734683737305447996028494878727709120207218252471922762794867851178494678602555016865105067741292083107549172426379461036543197401788487801373207751798951056344714302845808244613371140550782619775420860331477382372442767379226218387503228536065147880449119897230842647865679509134746124608303633661680169803829058979145262827935347708537285613706441597532878613255996570285408473225490187504486484524021606625962875911535014936091952177723916846849102723581173951491788401513592705238660939583900370981460138000744970753598993240208071310544316669424630757474560583514352599398460360870241734186264386497675540044780738107949055302725752877805043070107295439507363844762206188144845697962409196833567756733743632460164423598299679661976590932041043765751983925313453500477017973329806544962143255563648456274984745075905991009634208660171415372924730628435745736309668233453896405832270789365798555446341824765082998724485722126587462493263571485912052051465644041083726604139073646213884180535864575531529426699646588346234397380651839799583713066689523692490608354245598116242337249750224173736730076768168665649848723441894826634113922044918797606704303974365553789706843634699608282512239925667256931508900451513726516295317207920606267779144019883203488547069937732341550392885312460731406433837434595411810078551523007906161134519338030112410415261988137258346176267413542320233551084749135899411767231757171915338259784923046823366720034855563492630316061614654507489628100473822974337017922691243992701208759834379417995567769433185958666543549289269679804340897178245741835783237057535002237626000279429816455951794265033317191556078380089775384019409587828577757394897224120415184814675634495671829663096387354438162804291001208298837132451019492382758955298337430378094979369844591446185906577693262961850919955557716706824326215123176354116702725910494950817987045586592699838854870022006228230261248077005722601263044519222258190974076440359321640709230313661937424054536282573835733442065780069754918709783649748410712491380509858511415773353363951302283078987280234338436760398833226572794818104638116233078645749132417906052153716041042641302564052389517610386832363338358127164021560776534576344995637724269789966279460914152726595469769898354744142962035417575893258483082603481929621757434551318373473972104848251677709611280787620925687241418032515756517121416280285945310623327151443925329922661772944316473053265563854623730206804251041054611919265262517700168355718345109467487294914648573856425406533091843558799357243830796445653033573333502517075324937232054582998754645936641610993427653830224916959854088738317307061179710547069591323293955866484241279792258937937702379985349744499419312387631642778466813808356620056711416162680312357042258015738544903833358966519617926972110488585428001038881420666646273538450983776222498770612292327707539271936510278330136496886426595626441015211369731075956252047026826039842719250843317157392300538616052121979373824556702395721668352802451710653943684095089981857167425380270392268544982410992801003273619395767159856209400798744616000271954852822613337416765450806868999515729123036091659222241303209975501951911426613807935428537455275957367777579271948833383510189639609539862426478766113881469318813151738502817227875387989237798779987672567973341212687501667453979565514585713720981922873230371441870438164716462352356226161545945995817186830125078909150522393852624124195306938370115494487309501899301683907611853926729026463927151459210312034904796000072484832109734984933483653433708741415684692605204613456582567919090300337762360024938218129637583054459165185339987560594612262010316133007471568155957305577749505305343197666457720531532982599819055188265452299026170839463715158695957773695895670515413031310438358119837864455994311287622583386719426325782333594013667590809213984598302022111846894574756857696562543086770039704224837636552309433907842061900376754656477942474026630306853597406194966825448863315406565589824789346623759930742089506516135277023580832606711345516704812779961796674158076214369363685409615850172245447477810873027830378539982797579719360069161510156442030279736976858858004725079547303163470020564715155364090387542464571403174475130199760749902171119938254608906748546084816919431247895871553779257393877757931922037311237125484943099088431139387043215700939566271299732657966406637244678849331403323204715738296899736959043169185071444445643489311503785543670001862800500136879009623598362106223052367173173041425600081043810736450006542775499070719980199071212219821037123367005168047362741990383531943745551240220079899135227650296519663658000727332129868228648561767892937704800819234508163748185781009781175903354569667915001374937259611088144875920925709446141520163633870128870810758235731556828393408147925271660244444811565218869146557804318222113307345820034845971184550842731140816400777657715292560161119365404116392716950998714083028881451131260209592735595388082234175082339475468871528545815142415246837550181473951778856175182333919981938925636320308344904449435005685793426927681476488473664434826455294304695928354477664078696460537020095001396332973477622465084698908986147057021689528874495440012974783885813987401261091599050067985933097504824964989658500035639784571186325282036870606673344572668226742190176880032560007073860992380764399440434406244313763233074421521850900799311385781173834825591479839671760608391818351840571790257039685030473943545856921055520393765385748697628389980240768679559679429348314750145328999818760033557661007442813422553047274349470855642443621902068529877235177386057889549365301447810995925389413806104810105485272990945566002484946312925505942724186143666229777827979337341496270636836119249568314898070773302316922796394865301496121853850969779314560755321955790162133508803592902610679779119740618621293916171376292614525528456340966527469558471788873875542087389154309438870017111522947300658847349278183114434574586906633496423088509328349144649998491419959280903215775808751231433102366166250883050542742637871927016491291805569692075464656166161676945841025605302023545700383126986080898193063446092971285397049348139143940851033885301034458306394662886788759765657132361973346595827494107489954850578732788958504254077145646002934179330631038035274472878751377626845928623190107139005457698894750480753508306413747689825827353107879563159882146628395343188641675607215288819426272566779499038001569369682178195947937101804848403437507471798375404487441960784158523339200564609708373837598382000544753565788963237687230396369045039627650506905664724198433598219970517963859553364894124596941717762159359286796688185167669059622975502191879733251985194429560572812994137334593260064586981182601755867655885552741057409243311870811839383498086014774335419733197035561783361109528604655246632763091028114956944077248389153438231550611783274776254386350054621349924877886699989925227717852586013257813198942710289550706348582887476916096734666554166109463345864862408117105487509932590103247286635464412369796034152980443786175556764286435641837361741166682570075925047267638077038259496286425627251095002140907465853047133580008466659202244479512512224601724042786726258116266861101664503167934627696140395680755313091345302082798978708989821885260537391022976714573927832482283826730668864187106942670833962931475207193783023341518939490970932502955435866050271783985225362690745579249319480876408036441969300461288952189214990356236747562410295780575308133146377545227082644317021841457817882733618980471828911397813376188183640663656194228011299863211330406879596258872120206927511887010996844252641424820360406388105394177150993688849072601932187469877738916270239165448582653639642061684531003153165571763902173136312507256314186355742659711129539158588520130737803505162276565379437835030398738598678294194194919993291986743151391389543127587227823000270018714499396367485932335729894046847424255228226318603244613745613329952722568180450114263695030828366926466994161179429181407158856485524183315330872607520467965418381191201854264664817259471057830801289552852939673491492880903560602336250483373262096107205500759510989287778733243105246690259817481107629527930239708327528330643675961395251671717620212622363920262971863647649123078672650691562908637416339305281938705378984003299780651134926015435774203346756614092747487404690716241321768226998131254618708691560603057664783075053863806449561286908239885550423998906780321320845614833796681530672803267710007828127479446510963006167829185797482998857905943048918518132899354172550099452248423896118850728565649544545436666123802719030293214174026543481713108516599733783777311566682427253094313328641562536873687007301826385145236715524893096176500095326545864293235994333406383840318837871999861362183696441662186168010718430113931675779149044705128764100069290897954468271519325258824543769792254293708555667202516461353925406493427118606250624312779402360619945069657697418746892847243473496898120368754979554637968875193956768820508588209729439152722147255701472754091042736961012705223995332573248718128297294454528486672523983978359114485552467461451083674977794991544067595687361481102522037684285778399069477459792826504422433119734473262941035943421418802872097318335260989442663254054419453292916808366497753176218019355056269064781178917100689180248051569761137439578487184145620138705703506906412034949633859047311001085454105039665435755768029018793260400789148034990279392744511533846741017762716215208062103320364661851813818325759904553115403930172813457445082639770708493243898288488085200906142388040664652383390740210842751557009317547544574202626347922353445502952860794332556072691274761929142962504242462482463405355733531336953360970618165837816933816551930788788526578859816710138720057079347132156735335142128481149602150235326042923198659927456257391470774087988516005747202705903951477150340328806036081565188674813542311119520584420005306552097060186830860434335230033364057535171273716634002075250415769421676643564094318500354517831065064477448333898212084387562819750404818683012935819508070926384041436247115880925064499282871753351491432858886326094786109307779839110048898550512267905395175638481665117469297842494068069015289004272728641752242340480137843106367595654629921609081718182170393227551307622651152785263941527252178340342998673547820526135336475666279352965483306491885069974691370865456206091135794913297413691628505586791213192147762052177455469038762127608215767464617628126950666619176782005278084386963052324693084860175447635817336401865410832429530993194231052009039671499366888976269613684714618032327967641899310369639031392425359563262977838364823539908466546273730010943727650317291485661338967446591980877299595265590899763330883472929287198037911845439589455169310889846279774901451887254594565880806451482133077804134430950961736287503024613899325868063250289560412354966052919729233958429875168397489508302516623039666454981401624049618153272272962047851255512287453339505469087493104363558630537340289253920041871180312303171294061850577399551604120098683293539080416351616898848598093432564107362516957345986056339286936795480863570132835796333564133330775395338217841834509282975010967649425132635511729730127237696424955534276906043174897263886781111491035236822746467336120930378729037194208563608516796797496976668175223330888555750737782604862152705682851876008806876356179390127341253202777617998304431368611232935474165632768578099303895117551298559707395794001871386641380167624999228491395894968974824828708248432618758829184371511727516790802495308614822311505240939050724201694747055121952788774573650676271451968276399188395336700437313225643856048308877140695257289212522972468321942494000464276656461055575083773048997800857911912782753797894630516844016525073716941471357204759753306686247720001931708670721413902356037574659956022619356747422977087601694137789170866234182773014341414575555217591680894364272781107675343171511352404144232547754789610455468104797096653749072778475250384411798321765933023703269799384680935617930643044714129573421286039481764425925340295927353615666002654783622434494600344118522510598046781125160967112766430925918368823814107477971393809945898405538167227932162239851831249126431185147441792750240987717294544793436068642742315687083195951878791155868329987417345129902594734101701629629754821030676315368435613643044093113390930193965493592288000945943854914021279263178544879914083672249200605426420100297510311812893039834826043452396580919931356857032833717021770665515482436366156235742685287969813078919333069993241282168965614866399730424953253856987230934743204357398844391805994436401301649606019862904972778953825205483212540666299282933753266498583039135917249443125372959867757218180972155378082551296476234102073307032772080746055105709884977050147758844175658455040347622007191020601537927402361168535561915625998746389960504030655016899532081720739535430618407769041903025420546248512165964242358782766553033012184339811807017964816980247530819629875433175401007696200685754742786120755945673555729825727596075487570236888099120928350199797274188155026703014133481488743942322823285066292678688160865263417830929164825880977375491898863533190284577541468957973887158867725484651551682040627996614683112998485496993200759054319261620775283645706602847171536946061719773803587181417681105320399441274717372944499401155037190757266736315636603335841094422906543034618163255440061684594615434796271364959392555611561637874922149084071368939913285575239638980064931505733409585177372264339916618460027213305971698131356937741495712135691972248416761660205637015739801665950003775004265296219174947718654989018144419976471032212245586085945459991112428140155283645701638008252219579298413294534673310315196878984695175508695548377636921937523624773976560497872432274272047974614810946744647958828020170056533780128824294133718083217810398961562216333969853009937762503799560538022058577692693577323312167247465411115777165085663121440004361694292076385183023188306886489779913712849491998977842064544883668027966580220920810759803129908941450689644865929349416368384019131017600289102361813722186073561873686417360024019074199498427503811541614265227059098703011771679498613251081435740931383896329631867977202974862200466122138121079922133738830500264505004679939402812874106951086383458566503855259327652682946367536657496592998030279921496606954957063139793473425872232348994937716831438962557677745398612961824165507977245625218421629511171966463336281681813014088715656202055344910464128353852733486415335693801933534865103699721453093848018458625207427110940771999541574931171774868524243776517676778229477159474270389692464923179001524733348340075139232519030640887354475582740208952692100800345027917714803342223111654505400182504111086951216342079376148615269869144531651364887002452166593749947193083273505808458709410761425685819001061930124370457205745197036937676872595671639894869588884886043464641809487520517517149436452117201662538804083794154111309828199254869195678884576571887492650993074066724933976967430957211767606480509946747393147908844321859936781507419839881066304916250789287346579080430399663470926477507537742641257944355281951424493790376562919885291194922399602552035542572549808585119727986475063390006877142333132910095631357393777222580181325003888423933342260513960483452350062439818404576699806904577709126054677522307096022929702667514204463035154602923837183934661837132034155071722709048782488167806018493674807603052309294136794147719887741466724293490204871281528276609842741526445192144496389011181062749107382739126529467300589169799775623681581449908208686470713193477862162457312779872675800368361677084837485314992275651246892827697678842604863722562790669915842173290308905988238300427752015531408751956240265377001346769990752984611324039382162818263449634003060462970079365505939682281320307337878557520312383135661241723948205881999502241754819047949206681506276628817903727622243448825729287340533701341320390346094836576310653659431901225527413210297200958811074661056166837748857801411781856962075676304547306183823399609308718140064100943081161743404526243385222703550241530218596962175217625018586942836480246834024743614189468173893105483196977299102550059535597669160986847971148934173790755792120635722364575655748463739347461086318766176254840441683408683981972238623490695205760380231791187845406091363040672609306935381792092632792069129002891655387466834822007140644813431536650881589904176283677071901960604329277900210474890822436154301091575050252387756555448197851848598642285258885711009876990157931012095378768630756769447744558780864326988483530467865101746264951949741045880328429083410493923135797528712658420874213064647975924810261879792987870420422015075257242017413275127090246957229130712273374650721534415259785610229695109279092946780942099817434062697652622464851108706522704181192340672231894870712940937659314121923703049615008437327701336835555246464247540194770195394325581840693679203349314278777830242798809069567837755148535081392447124452602689883641512082714505813987482489971213720613173789467836618706432279069354013404770293252835635075793110254339578738580402194294959339764670309122203752626596239462417880177906408767867543100886195921910603336679139204197794844737791541163826342238330255594599292155875554530835398071332351455784977224366052508353576265751770550631049043710058776069326028565935125867079444014292052596301527408053330479412069048957552774359309680559585704086262509888690403068971182204170904428064367164101626115385251380616395265487158258638682802163175188464638596581660589591861239362345315894744737463804587789718280045342483816727012319988616671394950571342968809776103767754201923760943255490533254042121256750009157904533971905586254108121461090166170780142720468321306329736810782110931080367987286426966326196555310428248513100026716044240047387253832852765660642714818635320240062918464895449084905197284223269606615656264169653001947609042945382200771131529143068674186594556198618475157750576011715441766342853728645058711974736078131031400905425340552690235755401259242040415171923376716706716922342951356342274688070705360874250728720607218151081432290134097081456673680798778113628657333821057652324629744475943507268835467260239429198482060880976971648049101907341957739999347365943164171020245655619100371615691915137969923038118798333494387128130972011552602521910898928326901102774659450275574585568764552014130046002574252420914556115258631183974028452392678854318001771480195798283007006173205283814219256900670656360387817150714630805494437381121077862834462323323765605812967941268946814568431149539438991661359526613898875575007484929627194052735767733197489029918335761415871801231189608697019938752908116899028303115401248055675168984247520908745963410998927830067100308971517089398404047344403298480074765747631274310926872226408776726609451700234208121605665551416524482962714002987434622955088119891942999173014861840175690663904087387226337833509921409282167039403527287768357789694242061090354316629547503562420276420594134044912363343031376874342623666348373575356758169127066735299864241616311583029948748951571438563559831207169422558466621884862017425708026169641084388158092089060544297754736936966048707382425581323643209469052025888509514343431297209054720627318571916844428872372528352779050213638652475658932377678490489537085632094226166360172029551157626186539527798528333057641205263057144285519229521937548556890829726916058208493434639760210006318792942216179763314566847131248041841669969555675387033888039109653410242085288517151480183457923050974735734867954947580949283593557242361145341401603461178483308219850673208842353791717438178973783666276029158346164723582436636370829462612119786490259009105189752494326154173356719112864007248421066792437723787708044140825922886141675915687548169256806687759659518757165967083702687765669775591447009755004914896732161161974254728536719996233463733043131098504937026987852393318583076668546662824081831531616810338984005353230419948730587666891084473289856391212256580198285493307369838256571537716688913386025611941705408806809713187413369245342089753510507643170227690252673455483600884654251013243470017157741883332538836238568350933707107093456739053185512837193811466436072123529426250365777246144444828853422340995655846481070978847994693470189269490346485072927917266690663050449880271217173439945173755896522033120031066275018728450009830083681772282466502513397804368899373516142600491864967374036641268739734513686106984858180302808762651065693271241404998700078932439273825878745182221325433269926600054408526541056101244163949901912091671437592689281089169787427550165997676808225038910835971066830283483883748220831780896859118209740693575767986453757006518728728827862491925991872468168560944008064195008581356144463110981729369594687908001250069977503111581167020260639367179991471472480092690852910627086249562970125762089986727911529026548566076050598196453242259717838651428151769191244662731601492381073881501489712214406462045150297113968716342695038054364233703098515713359411194494513501742229827949201214226201950869589684444593056577135638749021183369838388710679473495720832370975077701682523731063192516985819078220097937019746551643658466745886733570591141665051052493504337353698643966017143021947263700735085250635084569921371153398394398016457455501995352104154906311722397434102650893567940397640013461604696827468741830115455100043974506353306134684721267731067996281011439952143045235234819846612369591157011167308119661878700371129879560183714569851682549364121953997533418577899177492998291269547976848681591501813264275475359094073232621922531209277206964755637419110521354594841277393836636225867858335675544429964921095452230774530313109880170284423992622996017236470082135576333554501002822236316763399382234016749348833431254442769178250631029430342718989252768941013008368269799729354666244251122632617406451345081506926029255688981116964772262190723085307090821322745013696786517546360455832385299567069240951655162769295141955666939513776958901521227758699723820501828665272475406806531219568619679044368250692547657137874033313935759073924599129863852117922962370749649487328979782855966542074458054660152890754795709320365617969833776039475508510160703729999478555302301456262396836902446078085574107551582903220223060742247438190301163533437582382405063671027012408317580450362978621196007738242051857091726705497914200708754683638826087482686625298185462164293755384031794356793590797375545869671456974717029313748632514685921109077902638882857223740620315846447805721646587487182064918128565401108917325120045704494417413823106200251751403536447141890845563289304052014741706452915527368868562669027629564691718708207211245170789578403225466434199132716014056004852501325943258284568286570938478885343915011193062312999356888381882456846484592915172192420834119651332276810762740896616336901135013504044336823669722592236711171381140420103206417292044240538979474540874316694832383660921666303908673311785090033689692927524096490393698219808108977664183277256247512367518231005844938643768842651063566250023970473091730175033833205630754318280728358818559934661775316602553174504207316909281172893197818525617380400359669302654302165275355390643116438752509212268935753612230720670527615469071425748964533919816582374000492439672192558012267990849150926001126148813154275015146052080500209854225567192768790164241227630195276291954324775196346901365853447185421490141530724467929910408747755684197294717908410322673825888533540904853723141394296115009565393903750103938117838803222208297064587513381494546809196560038347803111445921731928879725083236355339198939602070859903400266755717409030939572131447266687239268827681414085565585731288965203602621181261788082060978821351529327356841872657563611377043938889815612241839893932693046416562833619057653784843290244705675647817986631476775163845695393297960710706195635665464013989190203656877288193134441870428170814125189051784156100961090329036828797403870009243274094047578908408337192037623370730484741964873776293539247025630663105599780962982419321483609233105976672098365439155024045286716116480480721273847080625624865475900377476396186102269799484039048471690230337816763270310566641197783952870274549845063379607731902896362374786876586631567860391873487772275152974761774876465839488306916628011398331870225214688857948132260795407427155219080710583509050379073515444347827143802201161789452882421501861103310565514789830735019890984460698982205051814577299517874728006897391759856217258468671788973909163919404238455191831085606704368855476108754759792559234052697981743082054970807582845759366036451398564161858643631409314574200116016792408486913208904158667375796214547220037567342113573023952300370005878224444555468610675145334173873319306290289256799784503670753117443922082111273629418765502485221549374131828622561007881848096016520996334355280453526155807395118457078195762938306581845521300776419850156719557102107741777775318655674436201569251744208046867780345833700931588153476732224094544314049056008256607242986860451245181946166273545145987123337684608910992935278593508982497498844408270134828583870871142911065263082578826786893470458643653378840327050969978559752093510224091496443622323883078819390552896229874627680052166469816465309248076336096915350679573147939095721195584882995445825487587095012848357140084633890403609745967961212736734822169439521420492513786699090626736748781652888980641906585366504777955794812977084229115509308426837402777433047148543687807224559245841448683629447440920414279344528516192375887412761892723129603468784623670276917244046344992901459431494714826044415799624682279051883291878330865091683837282742691377691265528276698314900715153430525379391500087290595284885429004064675596329280496145554192487556713019231298606082656947497625300253805861804973707723084939458536603045329049709263071630199556444603644620483286953298242463633025539750593526054852263993325766173427260109336829766559742137694874803768245075681744817947439309049806199421460398783071864036812726124345315006019062339932876312816760331121488827115900979470174501876068320607429672753180865988350510292701511264408775813897587542275350705338379687922432409970236873336167704470967531498475832149930639925673120227455581697146580760340909783556001221620743771999832863019823011041364172330077671621116275025476033037737141784654696854975318954270461552274668828275976433299463163404396368033189016064286168848722625406456454637544074177346906763077547084301123877057498674096281296699815868296772508291052733308466261669690313559129319231718033368193342648001642916230979585328864149454644344910658484811256569301363762626977218336793328259508983810881433517342733652507322986933953390571875522505050146033831710036357180399315692218633660485913530024522084690253983814038609036883243602028483416676258334038865560781761668749958236908652600613742873510947526249598707629219732485742209780089847646901175381094610078847289917110554150600016899450604044924992072400464048090162784238301356190296915863033468432302751387885081381212188855465403861572256779363171268633798800085177243912514286193575618549607264729305109365188027741007963036825193976559814094172288938315842544141471517638009854649999411430821633482438270942866317260651537913837472225920916567983964930109329675784200797750252684727004607520775038186386173948659532220691523922659954229096487028782701181955719648744120583407333469069795544545483529070134029876200776707023710488890131864661614643689473997554416295752778501847462732255399900297593099282766047957227202168937056611250520662057902061088792930888234915155781113854447615029952104063601413548962059546184112318639124410872059702228390311276239437524105925003621887030410093394035317294633261158416286145646376377374475370464571451889851114152467029643392176699333230512003276922773569720937590725880233631501601038355696396898538507077905501171872023233591585049782695598244074402016587441385911064895041957827781046061884107429408794015781673290246373037308279273304041943956408733474460479034288631999247836906934400920061108518944544890780745595501185707200035700177348258579900497733698512289911553185861556638257006954891815613131763593299160858119885646819040661472049209059050542213035612347489557867832567537665496792522114771774813767391233122013309577465267600265674456536668329396957120706205511419158577703399894801009032052229758706208334863011293642670258997576610680788982596305726046882216739682680214300814708552359490431804622237364350699700382160317609036877813695165707516376507195814412683523315608505004635417149211690690204040092411258768915433535966494218433215738718950059621741855509672774805737841136756934743700316402218410809273488154028727100075617431778206117873887999511699875185420675371924474729530220590981383836257374459501650852352733439261404794868874955815888646808127750771046386323694622802531128041709000404967868361074732679321173299699911168524164009505997343755278644909893054701590861948898597489534698254490015354824069108033721007924057518651643316594872242777482087342459704417406566434212492139050333257466473524720983497374665205582672036250311010021048829832673822395052609357946476851910622167885607976078787588110342269179175391328374289930062925401076692788357220441607261754286605655722053901445928346376032717496296246540798469435049236759800502032184326809840946653709718625322534790858960740560846084140353967409877559800492311522996609451126797189046186793224864610540945155489431231504202696528551262521612970633517619541310501089573973905939240282951201555315033482202709229856765951565532526785060002402684960390992399479736028711732005448129970139205398684424506533820523069984898165066149743797176287024401959771821119388771433594297969512106565467672714718974156236006608723604102006579851642731779252969824207293617919954958919117819586063830655412695351174597046394715395993532915305699641126236956795674918646728452831039011809801781535598587330211016728264108092777192909580139698987327734055663715688392485168023468659745467977051147635802345880366242015274087821224606913326144983425179286794589477736233921790341872206371635681149959910973791009555007061802314751903226536386522302120222276521853389810804641820362033741569617829761899639872494601366191057655392622695316746881034929816572000495319433821730590173261389772159267864407772071427575382234678123746034908132122035806284940741897044720896441462700102395167932427190325079622804371854108589100579018172326688425926083629004660538957792981984118744480739759520540498874102279592159190741831359999545585786506762923121252774945817810071171320221337772967455414012092010710738207203072649423973884393115420581606311446039630225993158313766085706667681920908492558627694572443374920639424769451584319263311929663044087077648885508899300612051727059428616676202256633271551201563113351576495062260264771161085924178088424661096633405987021460369156039166080494165839495807105838272081260377149567985908151977010519688848247575358800814653855435978050276924592026212760583089095493564678947879287249711612970104372754963560072303326500523603314539207915969818591840797942408019284461285990597389745621301921199374839625793926574030793775515603683527644867063057153769617206930571749522123611950772665434738836325445552111606131880589715722726349321138280001972804042470810489540726356434808668884809156246582226152384234708333653124876103138866942390768736102710441360916864757756476466087250054842799685874273358127070599276524015457823719345818917905107636380888762917240555864331668650449887752113318266309839434919876692658034150406133037588155315010539003637016619655913761865847813156839725647374524249180525387515079228068793370805983267253637572086739993718304477105729225327086814132843936687091690687458989813896729814491282530781015874632635337046680289260384009073135249224223847697664986105507743923817801307205529532597589132203944304947668321405963398603483735040533741109303674407099229637474610878700616886700448411665172032217251471777879417292985807135539262256334371140650607445865113170965318637169343398781107227645641104960496145947706095046425650609063735223842797157610415500148616151980295726789961511324140714167136636095797749822674682786704614052040863893923995699619672097082797696116173620054457795266547192605056857694769127392491819515164390080920319327004002308001061041289982039228014554710858010977981738812716913262551144262719482867148219673760041107562545570207749389054004642497806827405928062413305244668614476671048160076466537115633344975565313356317754621441816222797250434043728753600028483124214314768592781515866207122353216258295811907194142856847509498882614200452408313097522347955121127254076700594719700441032667110241474352409975939790747272304642067842412789410359279690799151757973499992665754056122211486556690301242940762525649776877122444402595397041560480661353784862290822186183379239225044554003797221572043656990289590928332050487121972812097169184176196595060674218724221455422537905077850395945780886273820604126152185591755007543433558480029622876290918089181365171393826970706139277949081405720275653739674059394552353391884943845093510623014968433105272763242919640103568722329822031151528268533538813759076036476683120875162532176699996144183145144158727956357172249161368827311233732276439528743399530660985357480397317720158465019623951910473947189560640804692650024079548534609390497016782215422709583931494688534124919608633120580196161730292703656783810443961747683969095046425723673818700799561260051113260113450509489702193170089845899124370525466551311366334189977684049459910517942788889956355991887432525361173554333496631817047164486076830964292216693573974047689203073220149089942319103438819772750215515757733571057006132083559411660028843266364097492657068952974017761650641086560837200214164955401823282153170288419259906950879202519164750083370549107438409941990411323465929467214506068626607233124330937452859974815804768036158828696003230297993098723348335912700381411296301425137771811092597077505076155734471541807893201063957917750545766670430387702765549698873836047781337922433780760455679486136428225303270575462289340518469568199631071153073267607145421845216776350392832714669495495256681914546623599536657690317595637619081712574871803089981073849932520613943492173564659684564982473189139368561691860570901115222495824001018674339363616790348818791054244770351189584941669909178777739576282140340254201962073199953356617724855663147913679986022604881966011772470305796630812144143445315366275711951443227551142979359630353237081838952893474952241744666702548713183875390908840866319234052214769548400342645259510717018198067151785949067257006662174452458230415902106153270940638789019879101443927344188600880392898774196776842313617198855244078948223581374846177086135093823665418065684544819434710305536642247256142626975488452503962113560392032096673162022054545987471894414964040830358668672463354202687056166305543109928015199329075965441097769348618709737946618735909599650917164295467513607943431047748131261566943343273285092512743972502624885251610972230337040064672159270547376246033726003284043403632838411450524403484266116471216205995700158970469153050553550653829284892482216368512822114524215653446900646118797296085041768415726510122339211842560242837451977263044154120825793424454960927654218917949700632609492518248961517685547074144109303349937078644309707539891564261359671493609276339972006009137039652854181721028181844791170058683752990925359608926577967378532666648015349047851599282685077231533123173623620488801095085636192648007272884140205703116010983369026313977736601586263660572759907007511666518879241497075201535288149000650899920196496159673944205097920613630014281042522938212266987886514204953837191607624373729473119515714834265816571186145227243090892017639786200149701221692282204841006434034827606501702432426030454129652630972380282047320539687451318248734914278489303153131174950767762128650220544850355898279725627828697778132256507280507302982538448989026690800920987998463240082666393192468208873535876125556345387598527443144080397543559072941348748206772284058982020219044599993068405511377608144695079089174205095255132864493255022151834313027596290970779826227530543825541854511112049476813086412082803588118048588218077631769108423894617439125415909930102267291414339471167171911563675075962244676663741722769300734313546956545552476484830285261654053616024401700782058580907768710582477325993882555506160941716849247372418609070952577630488138505214446115190095771161416973067197133951794857950056441927391398612919747696462506575195685579404834850493573877567295350524467806034393114231816770215955664386399692668046474589411367066263587034566492696732573264300941812545576920093077286569476085348316400773130987458194610797840876609695546104676728979044086074334938222131732044640202871702171247675348147819160858245862831511863992935532519834790260037509002565116483998236999618017181539090115631129630674224879029266108898812631685379072625174812786104862385777630964697371473608412582283941772301532114227689341875720649991510339117905836552333650290295506927377529849155986761050794582701142197864864276829021164054492820535992911858005916563353866412047676426387914703500512062510323615355142753559571058771507323115881379790675266548379850126604729719675818748735297013092843277748925436716872606401819578545662082781898812476772275153836721905122573748596974537421828607263461327847251351446573079306207556590751055485480042742854627366354811471121865491462326668231163498538861149606861949690751608776468432333943734001278687256990282315162628893909961629209105314822334781302060517013259068635745208195472828131886480086524918916771792497409552738911571674448136681474642289780787909663425810819807349238177093086696742437557982400744482249538929850507500420192845912985874198228572939662786988412864841375997158448927806357574590992479033763669430442851922943252165209500002291955164710649493726708239657261610689653426023636706482052781248508369870684352952683877586706502343543870576662087775793481530924422957040897102019431934418937993761491322447226537615250321903913537507287464664529162182971136027242548762270132820150026893783313278995035244216773073157310058354952199933051122097580964780516973756484325923973026439680307341758997356721838910334801312643006815995793312476119862022824411753439778173173848131327430585991048288181696269160020844473296386719328522251693790410542716451351260121581704686105240700438004408623402282314962307959445132168323145033168402734074676523995934546593911482361341087768781150137556760045135545864603878670776776696028278801167021766103644993191524101739388607417244045980199858335267833110945609987620815700764539529190962083511244660127985245953565117278837639240152553054375897435781356067401525436093838599646741416083715373453552464171263713241670492179207610944655574034323098365786604156496701476428300755123105732560762242406965824681948534223092060295088875875577655669269223138540294988369741287506352110993892633221347578516280043425770739605954159011871683424342405404329259828755753993611259624682872355216830442227197785528355556412219767738317437274111967322001100926037803602651772226431174903060390316012402192939048073082351109011777576551548645889304192989065026695418632094543590085368941610457015162003234496953245078963343386580049025963711944523227739487430784177414667188295400578190336477040775060334840740004988850939568134399883735584637476902442689396478044708609258807231435941247876442994728549611176166842390999554599492358057192850703000565922031458012732275392688335815857302631734572339170295270402721375813165130298627344347616038033449292451035311516845788840395962846783518170172098219053571584939148307211687673349944592863175248582001296006208385657307816198437553694147171677740138238926271584884363811391265586547497775083621172059024320657515345800580117145833947114177481762051088919747006055944165482217598015917656756006652340131850854348570817845990734172682671017776455092620932149567536532650371887904850972837577861532338196043998803592367510923872994314041095424471291292230741065059511080537840381783766112914586182527123676556545867127430980040291839047419068146921466654996599592992267544016870543735292646171818126410388519489363163276501618449285209193126486775235444659547719113008307694195101807318302083292245036365418816388120672047032806988481994363979731806953266827745120811484857082441581703095537035470076419750184079371166459507026098418303091819301258645280960610277435039384356334333477799366376187523815709868506952153287106184484848256896199036276387476422852349891424953618455786697773889164439372644692958949027928453385174076275391628553423868492988446269535535409962463215566429874101339660636207331091141570970829200964208478396924623131845974921924184707758733442129695498606074152999034054354624206039880530541966343663225016349445613191980820970407554777992437947562199226823550512626154787807067253299737212084883765076135246318158842825980892609520121455162941088309095312068444060773217226882667228023045687911878521792908676868229452636969262559854391193735960734066773769692322019174789253636755710249232995836733802199252978013526630934395321456017018772498514733264522022025582837614647569789603120359282110170711143636739314386413845177085252624795228269415109252551991919737642404134962575810286504228784372927085453381161322610704525390465687248863858496814596810683961034894368036847921990751609058721580357796678886660013292597174782691823063305341413699010695342406358945374969536836412929293320258493666610397101761346621574507091601067772563040155692502472331591146606456809809348965956908732000322537341610592829553597085324915564933892021253903350862243826613478996354963436673017267992430697102480332668165643026322809042982609481994190266564778595112165678364485518451165542795116841617402916002425094066057327770779828472985085564538992721621895562115320695432222809624934684309933157491522628809094585084755427932359329166608538836133425614754502241594610813431720432359275195588851769366830682811521256138964813287895191525004451369059293870051850989689103964542039435684571322776851047206296749802415187718719927845465286923336748313434665283790854795875429768112844517792985386234906052787167119286668221830530124689324130052981396350353467505150137140328807531275589199558145000511140909427814344386772074214220353200811241439584500341264946995790819213188462543091031196605557763384049630732575142431834902787856728786540668132984282368699702351455819194406452171141499236786209454669170395337122264695064982562815716598458884060532550680273130932823562281323275023347398567358477885408763897803719595572719802356147802100940568344745402630107912128619298737760497695817439051201142835216002366816031063527398785482141582273210922606831726685669317396759117355135619458392163868544309638120681247217190100365321672634417136880740613485130355293850046030650045718233669586658033559611817042884695227013762890143317256489554363203396526227184798701704304352590535802605831374969873809211982227657910268695028865529464987434572765423591964911394260848369486307219262753465592107161785005481231562212910446963821886945581846139717536112970667050064150465109824659431381161128274308724969857978250145281251538377941774922387507173013743151175800658872734078406425540412961130161169422692730170471255666511636771038514070181381714553924403965361155309424033374599099754286656206656046411743111277514237606143628608505668117538785085947503477796930290859563610161733823039911015940915688950570665859171204027755662975617892796843379766876400301413641269921723000092873991460428624349985656911927843604767239425288530300606235494961134295054871410404261940917074777015660996203235811311537588857505445412971977133349224974319953894970245083420846133619999834244907812082295312271673425294025531022087970799998975787216371892613139697391085687692399726537307960740094295871712089802935237676838059025439144304671178507919891440079332290303062346314606151964680341849929360538593421874598801845946628392663027114546499202300420952454025600831642793829486283922375992019312807703102629859450824347148161445652488995121451388686202880249077850187371570423969635653988381423797309826992520475711073263831950399266765745282003339182753851873311194639693101791212509867163474240010421494510814445127379186529285758486457155983824624786642813984397882367534492164056046331313845342205615487328591362432256746143902483417287277390744903749479821669776471458191056484124475062101443707170902451185697729668795335796671869548126188174686222837503571551960102224609930746875942706651207381218218408188890291606949942143988601675887185723899663915387799611575412945810452060732857857171883019280674509595281759691182673020787967274054359610875550383795987082566649778423287320050206788026630091717504908797203807827089246319241926663244292539730167309904615111417973755791344932468400553170389174135179748382555673043566681305206626785353805406057147272248093130118040941273679705481286697231406946488118054271916258401089074360344841820912208073462841172722814988334534674264599956614196675398442959842523557818420381346584312550111030815643937362711305302449964348359528423867627777788614110808920925703001516936099878774830432475913370852927915114338093847203687314252143518153526792037273402775419558496043496185715820818215782723927497853548658724924556483090913695847547503559052027276410783310106705928311034656277105044518391897145117574343782584486468980351856244520838098660695232333913144781876788252529614909851735187244661505627658681211633137208354104891261423801300836031448979194833690430187264958039814553405366568644301488463831606488132419435984283985081677453249617045694975359347865287067734118359770562331974114419191081124746843416021773494495650026800773626111024864789832124554487174272184104346026847674028413808629432426147721695503831249195801960661298030878473822574593992011347555433570617408140346779185210921733967698764721657372747950330725121452377793931983865304759548616496483034798949648195342417941206103173716689558831398290765950971836609304039242748150513385814923476483925680198222714301623631161863877023297465805304185880290136224835640563268873426667413432810610677231242526591306355017082678273026372102074157478587828438559351528556283775617553736279070845553999436906680466187327485523347214771235802445112506887752237555892411322397095580034354979132416477410319980164809740638422332104987847499868736715904079708241061016535213366544305485180567191950263801326297123803558249037214439525324718456224625995952260271419199105725651178602855906645663590478778156149817337179115518210979260610649386294033652084920008896891817593924050893582585761056260859909851548724917458289206216109321218956385143345627034028122118205461492629509512214862349082410886818150448265434344916032830181580952801459075440513334761282899038240035046063230639269628808006535941314294254102105467995545475711145574727767040266489144362556311979277289096609977535276129924605627292122568426698977571800749181897671271341209213305516152296435899256092374477884704269299309343161881731391282798126680443881694252830787734439971904008487355901324602572442244792318917190812440930106120590395563481956148536933080513093045021424979942929685181751234265489495479270586618260926780982081865170465548018208251880491899515837248872431487711479103526259140395939774162339992469867701898040301162429633542084438179192074587331491153798602454055238960140874018046035386883516229385928803675907752939125020987657178290135942095925577214526309653189794614973599743820355258684693033042868409574251399714144814889879552908011668709824404298282932034934380467957962137372324551367779205981312141659417924472920901518440222505039341677613777283484400628191289714887427175138938460632268793850205975381008632782981310079174010743946255640800651910495418550254640918107026602491602129125560949588771160323053338987398862092676971076088342120491269338096701389216746683225588216405101256640763948439865203590848340745154919504102355758049790718328465655235910525220751586687662848134612557596164994343187138860465404780640019072964904096704140205666442137658231800412675503988366242429937350011499275873250750664983943884668201040180662820525045793993374659850122222674950972842058036541935434622091812574249321145060385687971116034267270650031281273487556386614093982738458659613413585433287695888771437170790596596598068698234098559261606459263503255621572519211242262970244652662469840767036958969747103300020821524407276579245958331647300540350731427610439604312766934075718040145630919385297066292876501899601879522437771416494736387217791214060240480387469367295974472850738362688255470315302820000808237667789150343517335694172055039744273281532399199344218429735497638550786762049327326725331719163734305274848084646685570913012451473679520205660405766389785654924601735940380084145999181603615741267898289111540921206229207215495558601087036050224133322960738893067144520505406186507395464799311515673819344491247871397971856474594614375845968697796202193569847274661205731120211701571793692397297500939522811236194191295392376439094258158205467029060256344093977169431719774650164408509440865126726124279361386390361485436306036163307746805423484150472312966585398231943666195383935251878063628031148336614098071144173092976162055705095045944271097293363000444514849647250672864461204766725807937325978558673127386738318615035470999889121219784914042453902346958070422744192659450924556830209159672242587845245280117832822796996228067553607360681402169020792032150824369086849985768295306097979707277919545807456867747196669983689967533418349306644329179782998349555471034541074395973633353072510108790905835950674969657349250680406247817289801808128236407392689369110653013401738261767009528635078000597560769081131657477879649618826073738544451184498258644115106418754629454424086021038815559681025063594802326962948744930937621745209875411470967065036194964933940244732022023865012744009318015939978967154332672091477432273189545995615343755357704068208994475926158057418683038352869380798322360398523272904806238765420081176018948516322898336970689756421492620313793348593846739864896198277462241724125375477653838332553097127634140028767256512309996269490795069579068438323332647973225736916365781868553973917061731067880679304763801988205469198966757826128789492739575561421141979261126598522984163268781575134506386120415766050867213240503896174368153187309012259246824063343894276051235668564324931635812425061380424553306318818420812291284570212623879486409757340400432166302652241894621115854316702481963162314078702806162588175182753605351753322377890740181545564230048618758754733285416472769029715503521769685839131714973065598315369408274608130981986886794711357131163040612471478885023825568588932582992858905590397765934632403668863914277276713299847631465599262231144080836383538200953942786708981012647119980690224901588944997622292982266229138811344274718561223531242265857867448795828607776857034637532812346421962239049862836672610201031057596169497352144043663529239434759611731453010871982077908637543645814941903604612629900960546392955342256605400043589924275717332482431724396567725520351080446804938021209371103521180775872731223277090871141750156638608162819416350019213291915856065493762066721693118293265634672255933771796820982790363777495365404390953392707197095174030818890640415613161378040353321607670317727615318139188666302114773920185642172177406347998528850173930366059461723923930417190897060852349200721397280561098533987739632332031717881995394407322703574121364442010376036577435784368821359776466617634452877366688802375529529294311197580854157763011315437403947471459376828862512434918200676828925289843417609392173065045481725768576166797401229832023390265501457240310017508449927456250477646511563408902799493755293489875263900337197868641157918114812892774828244101294633500031063825920375265981084626926689895179862180985323150240833759654544436060269558565514899999190830583454946851253662945243453912790577880583845177754829781395866734527067655768656415496716118676274754634690465906778104751960504885084806661960348776689535443395936157793191978263156056810015386892421473491327489204268328098940514467679790469159001371107776189675853844959032627990102661882391742549929414521953285646849048138498360220873769053634048419677784348885983963232555126142617395825455014233413858274802925190975570077453951742858218045412648774493982308827788834397506378451060150723063714464711911967733014336006525212036891627989193420260063453250740037436488727746514471043801220761717205871615919600483376999834453216758043084029791310200520529934059889160399423851889143347989900344075786116683805217195830363458854991915928583665308770612571234984853996948449411949563244574640779292439544500127912684614467684201335198865516183733950279502326578218774145987981406224885738494054626651270029772444947278573115767648363971958552153336524843056691076558632722698732881629280413254457205940307179083101841567307984130796627705829169296093936617862277618032050330274237245806670669598645696093585149382255905053537984131808849467715813024718563180502147146873545725409707166768313508723638852814414370794224080243295573901667528638619543455266065997889745644700442823099584202268882128276215093502188390839024253341063321687180382415802113159968537745392529010457069028283288881087932809999634100695028069178641096031159434411194895534725951576179488175785367354708334773812327224067306985621177334607723517020358571299664267374488929537327508296764620617868002777567046703032329186619117283210233510742350473318137169310376396455142859719950380071816759014195297644074838742286473700009664955312252329430923109418028410602617524165537107723989433694148170390002418410371756199970541879012387325213500840978250137739339960617878925566611700254960762331327627673084277834420787594555061829032977172362699233092739421533346455749820842763255912077066941252448225652258951857882424276116512802499840202935715661029854648705988378258706229745616119109566612111485596820909523969016440131848442186923056755988070163492872906560240543684750845786616200542236298792738100469734201205399375135496754817159524417711337256883326432944229896370276659599792261635273928353572934309499362605310477377811011411469701258331013857665872379737411628030404313590176766291294191751435049166375707210752424440879650673777397812626946207369068718191990779319211185626008427233081964047030553630472875508940051363797159638414963152665266768656676736959706545682475856449822003076926561176303247053306907073793099583990544838817543325645310323032560050068815323583188482649094741103762857443073355497490216094469532288995015402485596980084207621840574468202474885879792220497768999647192157076930320248122403058392939995759422599678412362262331769756674979880427524603313084330755569578035907575461369864702938986491963686838032970793380413623187692579225816142356293812095440574577425335106951503920705710597238790295495071968091055150500034421087652340302147753385351338975760333236337621527350032882292767735168163339115249585795658504006980556209228435931102097508808566807654747246339531804101391204643177852249241170542242814973448653980053963627804171787166374588252099964122403692942026361033423159425146910771039623228142023766373408375664312180368847742734377464730624555062963895754703963076457630811368046673141616848707654769292781239350474837974755715468540577441895755886209124178084129102228993214717847776147215861101052201326849223538527536138319696432135873396622559661392821388945989064409817218510367702386174170858583201451394202958213762144683637802174481558473809601282103333862557331172198560544469684551360140723958843724825091091258584541872997535315527656290994563866097596075759072967028502705012184006163150056594989269680517651680161429102456146984879694151667308514978630857760646798347287373122303171452823106648148670270304369349811290492317726091956855710723234855066569529464162866759640455062702489740935255841760524816192439163441296478539454914494455768182340992089914428636896748396188592438282512558524678273803054458804533729787628281645492586813930008462473238767373355008164699207387336987131161143565669817410456261281636619708438159231176193150703225013279160709567495433868503258542615130654655631090608311477855243899700785179255412434171685049156032384737718357433535810045625211247026062801326765350213284574941104100784145077522179431949231688873973199869160220382149455204325366304416835917975133719503917450842933888549403615674936199871393907776209258465711383516687231037209781528233710069704162230290920106552503406370216116511867089515008454335155784050739514944028416338633172299320568039768042378946842819906649497609195824497436031003652955509228863250691065855416597736734051013844893085494050821657008904414510899674339131126280811740728395150002068885921849595671752405063727945745144953630592462270868334736062712025336124795837186197439598123548256799163096359464290523071663515256596906426790764443772008898213473011682290466620805913063333668135679644474234075158427425310308954331589163546124415690217575419967327011454806814831760552855466031544704850060237199416361105223381495706723398712429227917293565411117566514621059187632625200599100618064851956968157522051102047642370004801420127449022971723776088572357859868404667069978337527450315862501597138074885851142916871902641209205845177880001491648953143824689287435755373603034867971547587199592356456505957328418659714950613396867083704445455413607143022298053585012011792494944077974026146553799860159285934868526433271918374009480353595769548041684061842722878566732078308307710899864601878140067329278185990748537875120846679178213095187245399447170505398407750724000099832829726854245761716504202985075861311952812278985493524983109312304517266130038601178712205767343088829694863750946777111601013283472267216317379026084181065523271820786769209894369465566088715103718098654547915175191060823301868239089639692582450035547760955796657885535024824108338020632250956371218443973679544947991862696702567987978956590277404984898879421820235089913107153319779818311576093231684488849365784140467584835702492491349305638471992636399418965259769746465579121971565658876237229987855795085281525075632226820119487927814943031544791927764577566988300491584429499900352913332270786904357399851873625345992508048021754525030845404983869812167223505718090384458909379966357435902992427647526901206451698713461430611102562462784008720934403051623228980838674819069611643285465634072329484300433623951632597158178606004941727487599703601242263542963200445312200485021077782953346494460223194591249609779632475804551350992959167948663107694461945909433657802571761376880524704379336163383803822070212088490660886337893164396084535612152693340366288719125696571939929239222904423656788500744911801639767229583422258122338457118593287204122521658504636060640594604682882305835058835105651154797332568530110565289539344985368648840944138677905205561245143645790014701090952440701344639114309144175817975817572987157037133627149049935795067386058043780984950003836620422873854067651076595099931434114762354886256509311387161390098386532101063075617158872955446860820880629338448825160851044704286770944428548115480557811146478120231895041611638697590453517551863800669405271223096700668519934128548220053559079220135476529219222002088229891810171567347244110122443163061909732376376669169077768580901114813638437626292360314170771048101631449252031142347711709733480044682599339180371389195262766098971275780317360825888652749310735351802814005508303735822604505928746021430889726389351566318269735354354773538997491353080974756167383225126639383806931765360061910935252681532937776700094562308550996174337259969263979804769859160371863978905480618112455187301650466313289787090251144872804006912421003252970065692301326378407681965338853160189845096427824798076229366917034867072081052128260855567253525274776457467321694129342591407558636210427531703327201342405377915393810445645563740623149374671897162700252864343622613959417202987628673817074402566338107550606063461372057030435701284515055321376044671952197983022736014004816942068702186961127851212606074255292930069507784590151714384967839981661948453774695882105702987990291420421027397354542909514060885992298720573423791291892664759567529703638743229521272173198955309952470599069838209457743421742869968645818015201157549967530449192606878366488469997016842529452032212941987857112284695947327144383899933009079774127228358487299060313445795750031737297989091408936840774266489247431596512266634100173149820092605285284216870757971928454650907844827190301886429959854526161208742989653963442068965610950578501083350083409089016246913800030309267058235564232062602863402287692151221976126628962029677892257547550095871343492843660208803024939969471062033685873228336537028853237919791782241563271342316947162175545590719211654295195925125492675574813660890552145364671653080363296259127378317390728454951991113930023984611117508292997692048836927186075078760750013146889567616304094692995071638545994928175881406135381049373055387548086363405658366731081103793384017260995156464127810485638344918273051098023723856266928186237435269995310981991886758640361951944093059460209754943101089344331924163399508096852584583622256178484708165751559372741203948642461231380076979980208760871469509762641653701518167889582153492654435630430918676555188597951192744623161762229340752407750842429381880181873098362649387431281157469687085877167528178574506388640276458018945948315775508411582849193253185195863720631218266649707959699737744734073794677165503810048601086002596266611515774110529096534538431486311101606156605468460717227828291755461887458682593161707953963274257717034322290422079384573245096279978073223532167191834266101591187008415354551275714418443433376379076723652053974998607638899681765746647568815015034837146144666377025400170942385329860934381367405682500996719676662647179829970438450683059808999136193858418977302767419682283477271550522662081584590718521591989535609970587032348544863466089248320118215918873331216966365326841305347758482562854874688773665105025095085112416148708033328802237977548586697082791079796342048074918919863652420305665585708510967625855533897781001361017528047545257096139601378826188281204515392389825820551111317760848625422358431638037289727678962720332712848371942963772038947261397130581551188424649208955368527861725525963970662792241703414462273632887915144145929105065830761437613535326734005089006569039147345555781311385567944118350671040508454372314064082463553145527443988053541836463189067797358480425423608320994685111638321047177355490771220055497644247664128905383368206724434428476301893540125199402262450812760159141031780560040673859309637960041153301935562726467516930514713897613450069330649304169948052159897190826186835667738145865064943029210315898063967193762927992556266460055204159106049104838748849110792650139751169780737622069514481439682706656240140071765375236762135649933136216089282992041977650582754608915857602798398563177577139610938229155444692344919431332187371363365799644239547168451064469719593316718380093291835478654290043927704587024359752959479539041332644666984620758657666031983774955510666253256332846509529732817633372105819360791922879391882735096452237789493399951988881288218522392255437354492149341309639261953604487902077025581023553665020923057376900992699120935465238760947702587495474551524896431170356710796940705237510021182984967010480450030812854976169890961916657960377550874407907339027065593727721167178206032451351330846914158211650646849791457145716312369710754165091310262771304546466262665941991923855750539364529882942686951828543583238747448074735615723519532060307445773471811495773048632503089767728221770602309939621656958358856621660720609570122145424729266851346625035534531557606626952697469920869928860549603978506657341877572269179076434339656207839620594791067673676944356768441719478065214650795564179079857701957889404506994990992626081184749662741259137602900096838351004904341834754112675067753835743541360830527419479370525919860445829791636908389168617244550284386673581067859558637493248777460904325251862611410855098588414534831395419091747828569008785634800766559310320576617953542899671173347122777750418728918105555060523777022329642793289038642792442582465728290363117549501527558391299414856762290367544732390367810444291803786181068415360644375864755540083042298851113252943436177418497353428095342665115042802979531620896101582718622790095802732204943361727054697522996567639069952715844583205560079236031294959834317524273409283993121668046551316545744193641281573071221357748340827380691940355884745584859380118434236118030458355256726839561279711725945849213189270064915252466690398354604772271449386656355444271538227290955473882054729639734116661707348459379910969949566651808014799990457723191360001263793669598832055230822843598087888956256562497139133023019917236399043744691979874639823869334871904502497666308460875333121621927715829302150003426449713293463892111471096914300026765785989742056456539894826906011264229609348318825974874680467182376582703399519658090410925998355507665050296966410938419200210424925480681854352050695823860268088510333498111775244041080480719124118697386136372927332234620137558228095604531135843713228306143727851477660930633541096976952266066662529521619770963552783804714823447933413850224256797133932006708744110465864885321243956381342493876520222372270464171944611166210164225317002924994682280181460877697186916067510470998909185388543409824551931552134348322481108750782718748096366256416664319382511024109886184803780469910182994279309267106550864601082992422499936076364790838418719833209276281995833516247983564560550716498901948261040972602103720381348121605090619173522454120009446507368990959961856468346521466331065075385294276972731882543240639264507785460595447032910752842360813786635500428311087361351040464894132778022858100747294774865266545099204158388244836976277994017887762172472576348432445710354970974309524026166730037956634487304858990145703395178582048423426350879837458135009594960551526297949808112735830224334648528011894706853437236708150745321678909279367424718931890564142348013999059932335421217255362475511528269788822627180815289906802446760915446181060744208326183573564114908264538493371479204122254377211083296689795308089849128572571125455067225547320991649646692981321738669549315647139104809052755769107147508205007851742659436461112284054904049727662435669825779850253914796890347324728589537122296856205232079833202192445793694949245680204941239818831602101835015424669879618793183911797443526772305772779959775290188227727842848992806379001226647789768194659537439421014921127872123107802959510173836295241214257598479643080123140160711178545416491458564538022427680567217225807401174648167310334741367805833520614376583651014001098655289424588592168360106052166246746539540944500856416430223654085306941563353536138418149897558792620375607992784386739385254964200917813650293725943880368545803689191628784480680588723914302305526358750775208024603731244710834544629910336617094462132039928350380879629117580485802017775073252742358186644627216130040958784749876633322290981283848484792372149886557503017351107768129596736593261119962222847037788889601844895936371394315770738392928652708598931705284983088528937171017086916757607619018881403436194350954935117126677515389067527065752926327733431628441155239849985610711077056034690940679227303076078223984213442724532449974429596351810830928579770614034023789543607164187954234877282304756859288180244948301484831334228900660609638235650295320074820377931417620252244785397538552724694904956234438229672553761510692271195266654359081271874274579507219808031070952326226642691932370520198345679747831298766363169896984026744385257494663303583871532922344601185939866459545604473102477887552342653471853399656209335419958929844930845305916912462667500740627823964303684524189092323702451856968368793255159736525637231848135447699594021774025400007752402943693998241829756637131113454109953001621551151816952043046100172483112459139380701265264371528187782583601986801607274209062999565950037773763526221031786651328538305011314581686513704120834054862043445975446885478737534916229728878092202893915448469361992254084010570628167048057194119991349548709452722483263681371942885924995762051765016900522370996589226847821115328097316544322367283940622338920943042339494509733896369131392922824755398325278660923393927198699384811563226603196856295335112153173975311862212911178528691464981245072865190516940686688381879076514983172491038322684439099287689126992653969375597825784268731627712863488638496989014768075524724409009545713339920125778264128898456780443401552593595239630766747907246749154783132172580634961703990477223254538957110150097334605962062657129346059254771183896661696042187165536095149644380074166617371263382347965467728452917504623717009152254001241742609732764386968332918910385103196524255706064159324378163853930800768513426741124533943686389338053059524658124470835064825421912463343724081185568066592096276119713310440666306834175704957738430937300368160543296451225605098738359483395086902789069167272119994477345491004605192145782525210762259031492503476437458607106605865893427307136240810776476548087822758387957766934116582820329509969755641275856733033612100589266370452594244471923403454533050576472940858375002401091913485066497141994364844988437565341388145839190669423138045073017493467542766564015513256696482674827245290462485686372462964765251032059961490158871489314962343008822784703534213019271504474426745698417610859264343052279198467362763944790553635688466487056973252649818997355336402836910359432603143545818722673130003141902266884905039869178773521571874686402281838158337185208591613016886604656264002620629840479880137313950537429957428578361638726358424565625166521762149004348223405141546883426082898182976552651293736717248663515630971182308065582337908503040370628459465171296391880871257857573452695089558492321814626358745059183196953335072946492932238725872437422448489279182076370350049384358281638308019451565805449250029284156903243135437497879737642336015795777706891220336238266204255252099027769048166680699842025855501301760893500834619873725038973274714519809264246505426707452041181142813074043944425701128421442393720992327026415895414832719180867567833076733319702935405922703649423458753843272737148896128482069220460016668775307132069228413640586124315938359776706951153411386726872808454783026643767094581121184513341466915416098245089637889626399117145975679045220053176451334062405529895471281879656980871285997129256925547221723457056550087804367171474734259016209482564016905325622094635515753647594603826442118155096987466676303880604120956486111340582551602006960870815084855044682690002619877416721620937999771522839797375835267034955314613381534775689121611329139790490858003683141345016613603395234286372678044434438351422718905154331874070592655209649674084834958679939821142995268374431436823464571107075960051643533900940870905539549304506223658798844721969249061946067265331779453715716444305325110674347423899174598313235050727081451707615061397009600775520914814116947295268917902137750323370526317839266086719872475050980905928419800349528681963518544280313402940671001169157628767290080426051822983824350572167370519942471803062332881428056353605496431699318447778741084653313387507154907104571731969880641341460875065918657305272736428914165494738079890181349738227182144794729602850057928161846719142524631018313019482527721924308339544755123116168133553223369358299860289784681584914750845472517549508124133087261064885700020603068720940352673571416948219866316522338108275297720362600869680730726697482072978073867099071810835243225638183227319225008510439438700667959882279850285455394341061375159034978719726603434869990574474650710316675920701652484867516126336353231752972600240476301690710225083193256336509330190467322017099510001270248095187065289838365194173931910742117889416221505691086615978318817690803880588201399724464768383750006178660433468495885199051382244142635181274637551106744781719180664738080607168540716265612841716484692776340493936787415086933105526568599935805708044658323725309206353153538796455049523805145102806993232678480558059641022201767762321108448721819522800055822963158232868515452927720357970103589751754174420442747586627016643369139851511239617630391142669262731597318253013010483125302108825728368717749366955617728688485258042495937428287423619766620162081172288084822710256031926143022700323806022765807222668320120310468498553539683594929570768358688986694958180417114450360598414660863086364589823527598364875166778940987547005833501363893587195011366982934633282050189423014496994450442599325137154575966967752961045360408238465052523869460334662545215906249607401966717206207589998110970465145674496263338427532130660659526074018562854921774782041498656584006801396207084781604592895478848631811541690648876360257349793558663485708171706895862402579175171788583503707167774276252904917460922240922997651114862233559888382408710847723399119090867951592199527074975837371161527912061330016414045577675285755506757737112385895764675753849232411384654550274101447376162557206858152963743545241826402007010822450510013303090793073458212590493922160967212920717938374539551070008594572859541201577185685738719357594955958426511683674890101130812702976509601870892734055665895742816485474133678790118850081086262765415485924171892734355105826241984201804626062236107481839391021342488902087107311427083609799041077869553012906145990429560622212147466590522942974997777349274379039037077179680534625491987523186211601592430533831055253413555683955697838485425052858109244285176158150457437204335953976988064437375846528358564450945528418555500716197582765393974069260361611320356867324443015564671417047686225466388507935444484712911758547011369794781321859767701423885228479384410970845068749922989768690155137972539161919675144901596496265898188342873266407101239379741230601114722802823725215958434376749673397901149929179414285333049156280950923468389073390030509369828560800681347167531832535435079220399006604041252220049459160202863573430004985051067625930662857820411708921606598493652241842527647108622989058536352534491661425163117835556795225593113142672851038788670150649097674395928445024432051857192195091761640003724884224225279327003088627463805115855051572348102638787878504727205756911322093036323871134065148283481739943949213821355242373448932582977405795062411154654282657697000331868500620767602433288615851576125005162661915070919835981873073499149235038188390843929721606015423462199296496860109423306346067299517230071933652530357856162517575383810519113984947666420156641013955501559267419563796735652856280895732332635218647471420828446990205848603949781643255625444066162720656262879035624409941436316115510170108537581753956473011182167179624653476017378265193384342803925130349949862987217336748880759442739435696383215138217344588821540429714246394807954224543688157597489179106754934604763981926890810652813008305802292557544225562985362719640976599941624308809169478056579657689348380174502191759018704683279936178811675767432924710861154619265694707463603236636771240984694097812416248256525072938267373018014122715782959000683219204930510316118425683070208983288432171350790590114314939701141261175384690056397480846995198689349115723014122461315546854415294797501717906386416938772439896048407280825739358836291249005542929839179164183288225823432320769430364615851481313606025165790971914863364823805488765233393349486043972157705503612090977807880480589626013096035126037896628166634419041131432802399419547504628082588921299702311998511528029565308354867136119238152729934676137340432526032203033274192308537143032719077770305689508181360468678612148424858436475593406749559336447242144772576367171031181989884632737916394582780232120709961278462922006913369583353655796737792818180843827235290405693119960683823693309665301677060342509026329833558173636595212267202475415751043745123366577395869901260506836003228515629102626306518956523994205384107256254204225065036557889999358384665303517421237221670873373810440702976640581565416279105149808164333416964604847505690020590018082334831665184153011186695057405026977613347243845542018894800965012528312511942041349395251111604246818730508618198124612135979505943260213180987229795239030724724255732236586647571849260765169962533521153901888800752623884312615622972774909361836413339370932133587351287495615526701852040046433818409285067613202610833941510685521131019198013585594336960484734398917875302970121174678190000859512915880183976358339981340707394826302856341990597746645258010679984745941638988954663500082924298495774504853506567869176123765293066336838820002635807368474049054513339100822257942608889333277176907042129663139724385731039021453820052682402002950158003209755867188879555814958138135838194911245005892583214980652855016081179585905775593134799087160644002156815161605969392679764051708833077918549770054152949701885565855775752040528269970034984550161298597887440711030984279811067094271275367514135787455609913695280106692876530973678128754916019439009016891656218454276864772854459691739708003142109292967451054891825225389431786270148683754871767843663703714900080268509036992531208906105166521041209493266264137832860154988527177582655785019114957295330926489686153475352048992373728628101208003433083136887166676628014543496879460398572320588878866604577578922933285182150882567406551578977887608849324388773039512216009815276179946811782697407552367756944686984080884538780943745943936203508434209735421490649097404757220878299895230934111675424511467990601295275171146160089666732368087841603771877187990599639953859347874546441865794301843124424382989343537399439575133961465176339994115769936044426231667629041561961037412166320258866828739806250510520548347410378739854130782344442926896791838787398687923795542469097400275547956626043143198746445661397641084536093951378223539398708015576883491130245498857760207164736711461451863253572889767954937669149959121567235784293811688374976567688067723799563149329537062007832290978221067142139856618535295528083864880635738966677618458398155559330560818093285441988718709063098402853343214912065722888504029585936276275760687035516030231845840386402060302235194027955793443959828500071687501943119072064513313318999824684277614967961421648798061426333915868642754743758802487191425253091907699847906693911479706146140807239270084093669911245188852774727503918829498049261995195617414902640707005187526501506425018022362900856631868238084071509053741559045983019251901525567016728392212731328524619273822052882758442419443209466254437253773448401774631287078149176042962909288752669930777928457664526674522954832795919046046864958914537197325073958263441394354328289783912131169837906955462421078266821781056627018786682627263150779703775501862056166452898864530510935111227836596423065656246113301380711894559652726541117812632591169419209927582442497543301768445868604125840574816368395099951636978525172937438756881627731267759810848428254257427209086172665638263730542521147845139445520426981209678117799511251886958736364656714965818431036692365032381109577531330349729261456084832692672957651373614492114699803183910346839238654764035499729157881066089726936102930729413431948553784284922364422996473569888262298767255039097186108599009770644104685730991788000123755961867128467000372064032217579627045253406770290954055863742830510680507684953021989291368818206976799078165094604734187127738481836556296619952777266192735577195238996599431087166588106815534813310543510019440554518417541942070380266478792720218860743406616773831534991006838901914228109987887788883693952775256917397389449109409885459584307541316460497579944923166809634734582807360771873454863448165449162027327369197360763274333413662563552326970457966401695533781891989774574143326643274199759477557247061131338218921898350604110606663587320618617037336448613910539718426846609356181118076956179095437232809554347735033327144514350158561131886840564991801478980949514916443219843929047300226913553482940384841171889808898656552985633968045016983648868242593820422727282964045861949646445120825256234721999489404613466586162485068297918219176254584279738360630595295637445523574041432225289751142652649919728454532487506853783816024060649410179897339197658440889828858673204082182923424530375210197471545880382588124492034213069513162938774907836154350021084195038027923802886811711377642117712583814084846870222536332822395029314158047432635877601943593813265953075094560650981163986441775654478562772137527762646709344622979993642973513547586805531501150079797492633644551564447739459536925226779733900950747192113556148598810930097086416804897508647703276137561773612654282320071858113815089192006318166050865226972567691837624440912890561789177700321222051244224277654726001040043927481141164906993180042741959034184133394586863099513760940195957689765564689407522028453085302360701774271537706077535404237487162451542569833825325033716633609470972648021693392789014030255048251929518115837108113597208272882199267761850915670346729616238931289053665893452289748233108759126922637684509905690401699623002690707788351847420503353583389857214330788660693690310872873249070876740107598587345763615356651021869503272882804507585493897664185414612964791710457021764636320807563755551882843247783141955823231214380353886208764363241442125078684639385440846490413188555511726114768184985875964052850676849504645500630339261945577054314645420191997088544548608316698661594802853743991204815378345570079388635485840591040479901492675973402200973666618504071780460997681006367854992094483371558099593197695977692707563553899043021440954810225517257306979981717480451556893858974474362590013032485205556129077402582822123261362579614192538176999918700822449524095440870426617314883077014082509959264433831455332631519975727486964056636924263573639129407031832855081675284977269460608840173184933226626866117135871814318964586841052671186608821672925581985674442077564311838345454726352201194320905512778860989020244264886809969120792267648574785975194040877019025605371134912687934188338270804600727748192611501030078489727552234283072726211004467492486624731711976168298228726343563443902752101037096559059942553735594006221626018834651444212641163987864696133952005053115093476802711088376692919563497179323499825398299546397003173965046709404502211475967786121798619423083007143690199327871434622723365604670728897578495192664780077674705499193458153672390351884454119054117641909972565061471747571711984211235613385765245708572987408451712633954903641350210224920768035273848728100506394062180634135630381306729420129428458404169043159746136017130315962444272692608100386318939385061066264691049837443952361855439187222771892161967867582395577849699982871746504136803216332782103596218803216692003634248829172097042780263544718535453963995159253536918631528752041850111705001376545844868791559738312494050049497932430914228382877780071030978910475670187105782140183515584315520175365950005834140189785949813474084642137253359621784408242399852231555199829613982292100570589865475775163859702502947413690562946004677876676973508101762457348179067585089585118598241347104514251635550440684406256425219041822477245048485997416427875748322463273848848122138214578425879263208601426678950731636257442205603733643775353224469982558010082989955491942898062070876041464720617906819197582608333422124730180087551830729594453710727739216144252192238378646235860321453755281090351405402268851025831511484948405462036528751434040089091393004067763513783964384839604264780005337429502810191264461709911816507577936800475872673971442029261122630893981820429428964836391271064439884201480975791478740323877177389258443744698688329686623562822002867535235636423160072068634707297353628588963908747886220726499837087051367643330161141699159248597554175077760077683768355696470482243896461033515093855768580432097934561090566345041430489528957443746490891027000062541178362293116527274896256642673929857624763729980215305475593601190132709541501170714787565340889534906511326859027828080557625810334646943586968596922818227698751762148724863349714043089672841707548601410132030723793009540109586064006156759528499969385735303604624965048220210765304683432506202488708080508057142885449512533595278230342123295890793919495396504018355284126664873092726545259881838913063860687410826183838527442825894164966665159963655861588418511444731752620464910819794044376473410691176116990466561861011657005269915831155230946812902131461121130555006792240604459656367114964583135740067576441366995706922703922510224178300691537479727830712351376383763850277362363739970299075248991498919775387340244846538071647999135540235326336813764284131460476236940841968152747871764759087784550659407304020575618505802647304675272830583190402147829466071725024551322006974025324655138337875644410700761514834702302792352162961515386378579316513050312188085640967132509413737662796398193701927195159346670118395628306060790841043397735601443995492080671586361456340485715015770699285015972423452025038395360013189540477568361218865729649497772232943150689038767175254670638168420925595744358143365347873956893077119750231841030283978215380709690049163250234210204643920238609495973398763107021584142027546367884295970776249883087471361897671362551861545202650042997787019028374392134094390354135633127559472686166883252725343071463060862371955425767822325272181288260803409601860362875979499301919802945446227490311252880349383156182059482232585063615352313789039455559656164477668681646086521519455718797948195431696987294156301624835894414929529778522051636195655503989278637693665468477532267388485890817852328489615639169950286054097298694783514646397100643464810432855611157333825059797078005220377827342916488799008992151639995168650545976408507237319404501190221893875036189359598820718098393043053631693124697935792367349400519161978941020824457675705326449150650351631133354101661113196233043576578962322660226821170682137094670239077474950590903057085933492046138836359359814926496419285057842859115022798931984702193113947460434776869447049559144558219176227630747824025169333263954869787843426349579317354225473529019070059426430103294897759014299440182539988407601585255467879862155443876522164184595087133703826204164573232455259582551376560607759048158102181293702609060659948516344484971504670017102555573612791170158260970204326197825595673074298070251118666396381700348768357432070484797871410112332361784016660093865360078467095089974879457336987907134475214366606704460591293920528876957377512398781289751596995890951503080261548067703738747238582580124446330135239267134330812632128279012279415055105300786798074273302527402774282817694773937465499477039131053592913117695990469580304763922493631651841867795887360737907115847119076056062780948906215507053416004677300903352688424963101647966418939309672222718341107250610618007317227376684203258561498946461302956864228676544809915204482684276162579856498502838160524706669897695241436125355362291278786469389154102142355605238082489863105099384586871816866871502622676766342195512245771254557374911939566721560673824711191469647896007816971200783605697332612156663578028502761596775892576054387369662549337620869188459196297743408636450888030736242528137378112964079550355409883126620654502882107554952824268840248206835328639163777331402578014470060408611590361507068915312965474265464293350690270048819012868284468818065466724473187216093086344920318993066280463694971789733821133543750951878552698260553863476609896846764770530676030550720040139615830076842625083678925734837942011543212751984477175101243926089464253052171695191092473312464021777527210147891097323467947107832425854704112788043001575963951392362129757149081259585248238106368223030661598126091233322615309629147059361693364803873637227748900679861944897777136818334023747737111534360398242323089747825846298834660587037163801571370573785076503230969473518827724620456240546409828699122705138899147820983628331640843041036273538051453793159071398998569572251504947119862749238919742903007406366586591100613974955888729203502825306390713007764147205295239138819196979133597101291994513666057721779307617459158899742893101414167202979973267383341211903492398690693497661505858689509660733368942037878136123873422017253272304863824465910006374860556580776575258418802509258371934816543020647884699254149011230249805071662600940217772972119046443330744549702855509629480026014432207679949075017418250659919235539553555083969594211121154072110392677310513446089736449217860694219591193484448208353340211218305802688617881829554025254377897725327034498628644772164929950886662233216542507216422500867061697108080613196462881948514801193040258329348460386855875225650670443547197397294884685813309751607880380214680737896685573909395076140658815873719062905523704420963462587506470480315012497599108557350351890727964393354375064558159560971995447192107704939260342741141950048124142512400352888372239351805734666645293328869442756927059142582260677957246520356233629283934227355447724597445439688366153784046630997238925488040780759023320523035171371256195281675077189490088299680626073777489620071198575809920912337217127333819278296673230352827382004056400303622589147287713252130270396558709767307168404907115311294827451334390886826359140874869378044041464213620398552443561055423931700066407142590749445728528949083620827497280913576245663445647714595697483137651162897336712204033450864234080417865009585710862928680951695669891345731118898478383312456957737411998200376070107415565622323574911151718550509897860306167817818405236479575104072394897218845115008955472620046908342023521918864153934023307835955313184311525094525324286915513260608027379893793014529039716772273687284154766775523563253508763701134857887014789754005380001638108340745358382613759188903330440294165121866981878562635674785796655997894881772394430499219285058166711596931291557557451771514374299674770565647194325562979374789729976801836734262626186965006389187820465880383620206297198805123776854711724816309192553040147357266146961928443030001438726280722574847093956472947773319898661520564783145086343878032871944469199085529435529784674616608320279440426343929322654536352155420013374088480580691122850071043687605824976451920570727118506208710105251293986794944586684637726375507396224875702815952012170246713986141962378942604769502145438236739336213059744699334191489975354900285758470543133769013788114416653036708673650307887891748824260493794584022811937887569747182471677127491602265454381957351820986261220861379907788524000139698818102431586043082319383285417668239871962565448931908104116359089409231390922426357473448374160134310231029840158081592342688017316003428421859807054096099190766201789493396878038645305145293120828988744337432349515651024742037652810530912511973648043345980507332818897529101819412142865680967828660147740652708291011417189108218030195042330656294662269406629889088153478749500372162291269918981593019718409080681242288360813127013590614653502474274680918929240617361001947635194273185311904421878010869233248740218336873381245110458783280589583534277760225629838891055308705406900361954952797342911341758812919377886667846474979925894218786351131986937384065777502054437900888617406718909992310993467729388707399269414815790227269557856725667654971498346251847135819506082988024923317347929460044432203672740508993439736867181847948708215367740020940172541063117025384071022577304808290592101296159029008387724812489214039931944451494530179065798580615181492450712603800771022446047140732425163359391862856227916886146600659473120793769022900932788602183614126338061495623601052305740112373416086092125145392470379937862141345216358365892658032978548539607185572826682606098779665932360384674195088751344026406089088143751127491683811808127288907438538566480104485774020344389095392732056069676459249737816426134274897231320140895494910016284523867956252241240057025933619461547584891737030099531616599205974873788385120042818442507937473940841554732232808829808433603018785821207485419637782006965199055723236545103875331345086752943794857889329452984514690056907193807601956315702825594173858481575715653093312548460088337839480756306898556122950368112779940539586171524671516951094696547966139919322482077354893471451024097399357318687487819234539456264658905347152624490541443833847886543665320346265512268598219017755727871122653748122340850130120314198232207653593186339788090663646969736087427067625558573075937143198922695212846388706963039429778093844196611966700871689898248177633914426756571682947966955685918716096850942474379479993416567650984209830268650739475420400991499410372622889762346790261407980382662584902570875490181463589028284782733309208492534354393613200214914054035072679288190268912209738331622217787615175077364296190105980144336150946619398481236166106672553815993792585177505875765173463765012272611237043491473247281711663411393062772432894915616551829315374178189650112068811221104096290651105131027265386688596063710737847322534740200023783385066637008301347358596365886773582593903564395574612000010742719802797390777914444352285109243144541149472322718918752946413276331647710300478675808536169458634025312860867628863074484850664484992280214929098293942504396543563359524244904286294528094605028086117893427484683208122600621334286822359257061715648154141804700013194930116369711487881864429622597933830888680754428283128785253320880676072480306463117497921536720993980613308401965493984238842013953659317111348037020358217626692122844810869014440499545833787250582057561485349037508776681159827858945456891553651810237018359809802832775470544679749145697147953381293120619297404482942783606049546913314140394727698725338082994660601479880923554468041472084698926080467152935422161703714299890287941705286158747232706424696443458586869313465361454953961854329268819491114581455615750165972089390459035423296648412810468403264077031789534767365232677052103493336990869368443565932062823673788852356503090471912970928187641515162399944015276149784211338658226542784638388267031573335844967128766244047668297670542710869049417802187477894437523309228349948987865451667068544413460076774839637314551963964669992492112279643352613332590488576662515782387189718921137219962497957984942152286212074087146422416350611110713524367052927269727247027587038943003331725415948558559739725706134502966769719605025931562666275165362336145802665766974214331707270038536866624605735368726460725613381895628559655277340310081911565442533150291223534906889500312018776399908817019886716950675328329172398521320765911442979757163709619913361877150170021070590016127961833362604189986802575605495813942052258487916897957872104994217266203507351021072933989407783784521957394917623091258965043992415467007978443396969315737056491285944829998104879523541021004893265377963260968281702297856696457861039948487739665207438411473337160182075825646592690125083891318394152867168689081940297403115493354103164636187972168785922244671356718675648000080320651592014469341867514172475743233908143573009264122539311758136588974574800926917500130507347802406650554063391740205899665433598052831772722116927606868601934420931904112383892095203525166972918468921567464421593221574994689787912743266176123712148428223489928621961352614923016433111098584230446140945551857678805567087955031050816978312319660397169169784988739205288703227848793791154100288100868480023896370951654493673678807300172590720427911404014058078127803495059487997794850655565806998121459364145908563709179076057904439023452099243164148194800961470043533405237332716292390555720291763458581713016845033851841717080478223418560348849424469975011294332643149053359061048943461477844671385520141022498577989389730190899364367062185629172298485737708579737816568021864375988823663534381225252532594221858747329740673316863850692321395836521328955021158246865025605622193395201019617835014751902081985813369801093454807921603655065853808306781722538366254800239919193670555282141235892308649008954679214012110420899961097189655694876919496554955308204102929180551644642113734277308674364511509880383680017246596367117495870608688469786061582051116654410559239316199097849003877503150355739610498936587501051304217585637048496540685361431610777681923844006419299873589851966828639293752062080878959475678216347624507717049059079604559182399229601982959712154035386916356660172463999577411614562959100815167167990856682934100768343533041380875728682072678339450122926517357098180444024469944243207500530436916908401304693629738332301958561225208710778686847942144764938303850412441182220685057721561187869677319181306228293071396660017687886219505483613675736876745008855106976127160720764785964636781895140567393123533189972946261486870018858419429200582403883517042121259563098562954260371353794262185277040308406231446208946409486510664459191943359571064682855733819161848590624409489290438374396757556266155095590335880903516245473950974075786351369039344558803197261055249818677118155607751697356035156262714048756607403183639212902891755199985554538516239023118523301351463034210141876528580531337348183254466558224425290334620093101502396112009395671335075253619069320551122847663102116869973396781299322278898500895686016458576432040693821766700737439471704064505682172127686396816691576850526885331309480421379067007307537612504391779697649969396345542043628092504371770339091302439445306613653343541252386836461233659671600526746161865137194262427767672161400710171985176345305823567911538090121201117078415058715456677540142175807305296778302362555976415082075134100067372832813017308494085455970724946188354320859895798586609337797284756805697929072865574896961541351824903149948748259869685884529036708235315173976463319983118689053792659559704685636310025108896961415993764770888001084623642994652991243354543839881712740165032728244542764879371168678241227743001763574291226326363453512167650783109443734535711669481081321033197958513234506058914718233447100383581964723613394202713733714161760079101409486760708971034261991640954922958540278986390267411441285803586058777874055370778801105708870610701039715765189704354740464113332805783407986045214208019225529525156082733628654823213422815179747982721520125876032949685080097627514091427877618006508459181366697586697342514046229817797679393306873381503602346553689967655477081301277747921104656621818955205751292477973954525816867047102872090405730612087565335468814255683688442732081698361957308448315450696857465876419644754585865079155540888530209863802790034801015557461960142193230949247756994866721221011758463078905427470901701482895333719660281801082196054041995467524294532537943164444282387562141839184722572193285454487022646443253882412756540891579132641610460382683643043693239067888772510241303672328358416303736715779760966795912325548733080978837861080647005456363948212460737271250655153472756371067674828422053920467369014210409843811412396211503163353441469212658524456370458584505599187682721517670080130636158556854243411308296791854602514837219594804723026977492537769753767675363881145359650762541646452820403312228832672499882781503866070941249484620699579964545028377334569350619833431333953085685154554450456097157035629915405378497557131691821229458242269633603232347037492124765860672770184786871274379179913817916670081765833648312870213554361885612131512638536396759521249858582186361374694375235151641986967175680132012400290728492384430213103162221763058836755468649860352526054170666372956086780033643943438216697255706763130992942314268830967356241395122667037129465285260049706047090167532325018197466437055796528614750388324790563381116604057534996294785046963350839438998721440587055619709206105366916742116873063378628295562472004480103831923633964075921368370391952239019918450723382606726832073201429454181340673287076115411072652757745284842893963206982832786219465083051170206092252716968412281879730884731210030854016749461140142404655766398627366319188619099735093326720335038446992801842227848908247887627556960516408390595748773354025386760246255352641710853379581767127775870925011505985091343377563096661041952044724572324179184949919877366694795108631377224090039538848478294232751169896403422351252416232945453531851674301487463516819912835454361032018801792944666844396440842187119907492367081903006532302214502087775684693413612623422560126587421193300228666875212983479261302886594026564232818632212353690666603244704089389370087143808247488673845623784611485973520275877245313839973366558849413725283812740538303609850786356172427591656009340449363629141153740358963694880253428557641092820970046822573630882379959169705612118166730869386058846308195176093216812671835352748816442614161999886087023453745692435778279999614023207380545544482663900087377271396255376121011850448006181924082902972349907701326191184171852169652035754447177456118571138700897891971548564817056504273758451243525782149319494360496330050412141681239008973531764690404759621144486204882076369682152850205577673590212698705600252268558005856614638534995555105247298236496079336055925028038799950220950437288222365665589233740429656035610673273007753699656626277416715340719065059359849571518770680986274027379178742423193052781311911940056620557582808482535425456033224316954891140405833261896090743965573975929193698811244401326492143960321030982116759097106474515970611253438656261219720684294339521713291113921843812345935749405371043325826207390382697702943911312099415612450529443067115032873146592797678126884390225811627066820233273905832988159903592032844341559044241003329496246315738855025284346827275729041692089952047480498904750911969995512286223343205793307172020596101016598456388557463431368640279614925570874312851091462431157091034313086209306008330897472584600326068093611492639026229833683124462440575008617640285761628784415619703828139067430526688041765532829078880307797144102079107843092438968001990562686925817306066215778252205300199496415047543129391775461076543477080742519278725745776253845941515130010301625136115159020805984805255437080298046536828047905715776465578068318250511488427435917457086630122344180435123556133848087580774124053909066269088093347977980789197426302953723528689237876020286976127794403544440886863059123837117233205781124547940416715137313039289143882270941378326906664833206239761455710566769838837310055547130624693522944998496647513379437658436777451950134507969084150700373702092677881592829774481994121141092985227692660087363585377552387725555799649946682330462037832427890265554110817007181719724768026250930027271783372119298461576074550549073333752274800467417063731245478608110526568478639731707003354771706988237143323638888251501341787075123151342222437520108599404985741804059829813357249092285097210288597680972678019481326064472669794078098929219340876863418048056844931885590874733081934808645099256162567682919045844842734056010325346449945179478706261283287590918311107709070852101892241190484855144950403344961486766965575891189278882664025502315869990023467845721481506005129354768746309567770817821273104838280251659796843809963193147176225069224021004672127669910778613309293540761102405616849196782106057622770959110293837300593644151352376979809170051867222819187327264347670882957461247295411388594247652479388555132243099950361212705398122782548756661518771018950687678695345026135100401399481667729684754676346986546838010736896711392976934162381193256908321979527782382649316246428617170027285383743004021830765427459222326753461193618779286873742155274635169306461988067424359808520921843163923611332866163568736884899382114156159449608406184015681774671948434059466529856523694636337344056459485044185660049500828669732616839964552891019518778719778486895820401073602941930846880369500716589918155249855574942775417339390666927097087650560878370416099864819581004560579594727795473753148903932810211728766758076130250046315313418010756461155768160789572619038653639131743046308187097558882278125645217126255503549819521571823651248829379202463038571550837391883450545260320684925181857130215512336420675642102035417432851714949689612549649996792015656775705165655147259439748096924767784896547544179448763174414564522957854871143906844732068264088756333154994693489220791041421252648147810813784624933785143976835507075473690569803700805062266915183087627295256906621951541194538503667533011733105558117734170733894909898189402192761060665256347360463601754811402134715398326805369084910607281338160313729265826014827266625362104611656949410537990751749691081079980908117776367779152260562578054775037288125669167948469563055241229024037049149485513715624878873948245989816979146624217317807452660865473173914652005771705523488105929638717006240614359238935648263145562243779546584011917415404527903163054650080975500512290310657654519791874920112111901464475205299106980914360253223950804554892937624225080541535300718075188402741502820207647259018690383226635075267759324732069550673616802588684242214345518823981197539416046009800814683095394276125923504920035368884042417507966205388125599291792601392670943912015990396832713455046657325459047993422457858940193394386965414999741115324606728783077600972458692131214091856264994605063640962038159431732992323892966800541532294583609208549005479565216587242193963420321535272704980567200252669598867386680576891573430220716857310639615708560066170129763522365370937088103574685638254773148972133829516118210704206701704808233927699794847150882629715767308269792541334959969156885298210023164342307157280380756740854512502300525736203435318013408973641940440535512886615812169193940642945624487611024016607773316362952865874686787643073945860547107711567313979232612888368873623954659568889547891810324188996098775309355475798938083859814544870395653479757894289469327665861328570486198426065833578543501431245766289499927937766001627671484713556551566360468379669879698924854826756253694693985918475340745045159910297938754773410459562853374968149480959426556452255604106193679524932948366022796826794550145348424664308733956012917920196850859957353759891853160596584942849102132167809558729130993329788052762117353728369188988495252591223840420842914743831404197571943304239691095018779315793235711618250412338430300382270410492737925821579106275730054232923599476928948386163646913107118548674992755252811912098907028355472008675247969868785538747180420277776946386191686048636037556094953885261563695156152542381600158361185350744022611678326344178150773492531324092735940339268740259567170569114312528658103725809673494776047056508114465044302792739523710394324749746065643727642647611542639923402618002359099864630836506140266862928057448715415575121860817292076864652944689854722618559733888256490523498945913552112926626914870652863544576463336055111221280214956597810435475547195174059467576994457386704971221502687760105913879411765182510066853658359089994568787244613186575222570784693671185797825352253259479095779737335441757908953569694996801242560041907249040279854585292959263144230034341101094233805005590289674473698434809874421744481003058343916860026525276942349108550623135053179325031505071388774665335060588373035657021493776708251049961022040194756567627673689420597918213587333764896320802746410684903498516800322679171372996522154976343895180543471464093681806041885379765403903190418556611263555094109537219785966355909950702781325713310151413230281085185164693141513398121274082922278235808017679732085047600889533582721587968162347104925381773361723640190313746651803945252749124345864806954458776720801293570651195476596187876707327648179982614450517156947943677526946964638507537885615814423043057496965318878926930177917256740913580320276202182271519755502795388775105721167891475696868301272283168534868481790652312441726391947643630380070014287277601256134188903595446687629778449434016893343036837675833848824154310598041875286066426249386351030772759596251390527061505544783170547744654503766944113458254966676870722677010971209547392568797864636599168147568016754070392186806754232340823397833639960130452356024055247460521814504408488894953217530887634247171383640998486477073221003247437582802255380923195676438889589788102363836011087234169167746846187134827610193512938315391757459107917417802857890533247973003328522720312072849194263730004297571780833822413598527817109133200777506689737569728707657260642830655760907215012083854304867444155601335169990180666693808998512307871368045566808189065741474020947912144216409309060035241280273112146005246459081596618214959496733653948264640340445605405996496323058144304867141615207250488286013996378222584580899837481806356999586590092621697987338550220458173501477184230773934105052504158985034156544806195568795488811727566728883558324195036479785257163065889985840055264101423391297847756081594141443717552189518561743833456845973365224890798660679435928459074102211789103604589388252624839942605186114790346213971999016357281945731952296314020059427088395226954219443281646810443551659524998397610661978738538922070814463486135185582960649052123085144024896018640796584545889307605820343615221169797163902574564081285925695455409804237479495726289738544275433439905613116021010810662874324287585301824273029801412222968340329558940735801946048136975849845333819954336374476967756969265107273951596688314067088690395256710549079286697152142039948472513027869010621636337346316998248156211704684003375105180284653476313459274424066756481476629974665135809695036082760412611099592749398551496653119310662855907951995829554149576605307866016643760222962524467429532403926713451329818569229558254754534599125036979467915886518449023400954755626708142247161171915039264818338844000564474726858684822371319839509119960857231617455749340739868573513542551661231973453243629851201246194682350380542096027099154229063824110422226797458668018302563214470497681993016694295087492455367083850604187383819468961279789122527800996574802123485081715511670372606269037276448235958114461081374143346130484029286532694291652549226830432058262511116763945615853708691832159103859714597845944762808659486040407216362768897732985423692172624771558118441854485833455221148023902177326868840573128766444350220746961771291788102530800425538349758753314005467079591019163907330532991923483516817409199802304205757667487628205939174155881838665744892165522907684347893303268387962839878434100596383756545221960448984515248924453730396483155819028135601962619945604877667184781808029592251817196956082409922051784352842344652647551931316049088358192315645425297932826498186545106574774649631363537866127981212365367714591921576390003007803058882978679971243493595252739150898247664139421878639251494525344037455068158484222460498729980578714861121209092179225987692002900365296776036278817363479295078341711888972685407046618465948142696949649087548260055849813609589562242452200591515413554456900707079173074744044031180929138894304982335952201057492688693928528574224380784046733734140021794700585048883652022441936367763346740981667412632620684569515942596825463287975523572136188590327389399630534258237149452857675785742865335576146208442620198697900234580853964500967155661999499426175438895793021148860338534183806463887425407176041735540824573981335706406788354985396031441968927916598380420867922524451929249505997619971243965991865748997336778047752226112706118215606142632000874570751699419315582585163790676432310780245772121793745580044292928161112395677927101208156283242901864693609875565165371790848123439018317701515549771077817653534198338053675050199985109195041359439357875530879816143894496771525715432473265418236100642879205354288592116247986329055979150781577502350701055873138825242319246211146516953274366713561356055930240934558193577636610843885806198315249694685244506985006225782580540248561384835381922825045722299878075377362953615504499341672702384057023322976037325269735809517121329758487011513674710979992190173287813075150315668186696630182353882984978257775676359075903703486749114004037588961942411497429934943498007421666513713351608968688220688355642305262403805545963992063407539072431478947532790058615180737865247636016470810480735887777737107323923661823297951073513402741406873355798885699588248472003617051469428776577041103517874539549916182733946540102093594527450000822068523024503194802620096839104884632987275845666874209475766660319137751269727600837051024897170046933634589177333729350617209164103227661607588750682843868537751024390828382235836040602068298373800065125306511244434034857653147334977994535460992947239112611097544879888525156518930454403642445209792914235848379016868444217113350691204073060869465737349575692039919100766200077766928434479268295046411574643469980168583381108491865862982292296318715836087418630560503616093817284057257724275313754181692286228033778980642369653996789299644403955327439316124833267843340651896031024364794502817065182726411533472479783813527700209526023065023741947666514576025428499494910845841894900713203917331074162142482784257939091381316925705716614425309381370230512066576749540021683402525132324686746351009275024616461373610457722643262375699618707262351484051471845509335294217604439660407876964262016663627357936416240876163308092449354621158618950807458746515142089901440904984705753177392445431619930999363772123627988235913241809617270085755746375322247555473251458990141251121347210151034135072776812533808430649404564128349098056740214871844708720994575061744635727178642354694057162106099708328325495752252538799807973485977174438230639824088426791986587682199266447003944801331684237578088695670684681732845766249589156929868851648714124752383335969710009844004736039884411428739140528076376408499740873533473431866866910799144732676205225541249468530926548801083592460405798302804577205999774142347038701628420912955639918343774963756970325359315127350840858762390993314917045445452107522171921789806185369620046206263463576361213102385617722146854342647976912472717295416574547795007239464864767639199216526367150588070626885101203083595039182818489584097255716652177965314607626387388654839761687740430830793880665907618067964931260812591970630397919403422174048607963680113848348302283348378142666130295790033732786660352247478860168959037645449271402968250270323828745834356015827963491722995991029807212408697919317315870739703011521833499854627613380387880201204894616251812305326845018383137062855597162738700619370673157323141686508974533488907603725986070722233309661006138539178814727288273284539155994516204737596242265145413051628189368021260547742485032293278346006493402861964787200214610434879972042254816866479856398066966993599236708058227872150938642552519317209227226186269654417253539165922370015933532753439185119097300516756453338592595421974280750757475307573130570197012620511885756067305092126194120961909552068439249555547555104875834821275736288232203138419615221907048886016170552222988297096909466112045256216114512275846217999831425464758239366652003294404067527747928539157161896868280630774736713304285631802306055305158684093267380005348992803858754168017787472455187201155033278858950731038769317451913526287193885508779204815360365471071282630156634941349766149847647615539423802140992069321206573503402245292710056786722567532011146886479177336389638768475275701323591207789373825196515101528630672567875525730608488272130589653173335817898099236739650553617807892369146111353135963190980212977958932276565880141062719939742037653762373424696532377671766174626305939987089922858347332482489017325101424051043622179727393784903127236330828258939372133133409385174103827693330103274901170406475466180031856727938060375964661431200188396437357008988235668830520236354876776185551943452560114984545475851446813320445429504151520311579171887682534211851688429471118236075091765803671340267842717724862300200298294902303154643868080540579688900246054651448858858116242076915297502339811896116235185033302470325915088072204565869191878516540109598140813853691815832503434863660377967568421951295104736523829058526211577576560896899923946622388249210395198591679127803528558737849733232106407833211110718816557078842304067868801430759101959346788473039455523139019586852684928556380022485998472446081644221472702106882774436818209365301245955836968917429889307614960109834662956594183506687412130784997943633103138001335027171815751756518567114077277555627513237842895173078062661602966060849176281810269270716622064033705681510674173314135817148865943468440983303528143270943897579206614701155200725352008872874242077112130805464622641797235248005378004883242112170655496854110320555967585071797665421905937264735419525709212645432969931299908374229013583292790885535101100909675409790918838949925920683030384897211671201720922173940009515114567316211449613878708269340230980243378786211279449435022245939739598657562163440337302339446025360297131322499954427186766546808856619362578049864760188490484962315874174923656786938441386123291564559044920640842165009986632756968443456317915219183427012483997147614859881287391728369324166455427586342005887593678749592425987676401319400481087995944933710007646524557448772683885971062048148379612838103834362090227149197515891927537764673546375489561428898577327022025715222745277651903409916018771167626910405235699303140049011524198787008580065535948063240897383203703240518478828748398182826494623452407560337792982011703081651150541166583615172804741391291680441525612670590906373493560487727988181189623264957046920718810239379829074770471005100860976899390386618922688569933603117187804643137073453692594545087744522637730943760619092474806088184651783768688073383155769308164375964589497968741535040832414439426415235503113069148214764928884282424318694037327789353574905711203163297252613186070265836891548901260774396784616564975743199103011184006508943931107556580030822260813909736039811252296283267565032494978936989671745256726487444564128663340714662136969356501390816109941113232649193439574403348229083874710347703831724976320559398380402208656080396587375651379039599548028032756767539395635315306793353486676301354738656843503025778042659984544272577489219055795610853103258268337537875279279777098168089217537847068117070252726531083852097894555333206913708155572106983907444152039285223157693940579413133502233177676384924162293517652482231008407489184836631738707382141235304237677833009267097352753251453906147347875684366076655327942305959466805669371842602172961633937987319599574914712771935063501118029388210948459057133691155465481345856739098566820021101660828743278692818562144217527948615329206589251396845775702521717647052951722504135272706520460732677011561800495690341994820659980265858534517891690394652585348417279969681845199272391575090744059842036603163618817897851953365218470852515046090498148350366017486876515994633230510827861009113372090445191429664680563885904543837857934698120469676462987533214271721530016411289077157579465459836049399031277713962691713928831118682436995534818479146436875083932007325926705759054089432142904548052162558890715350243365598697366895048591448599161414950085126183963295821424631784802898460954945779901526232980574730090065042651060071737485385763710495149538490620374148433474717586302004632144213941839176551781231474784967943136489687027193037195792218433492643219227573083201708109799060434470371757617827706427037049432266270890750355985332230386833986953512110395178318408382237427927094955975393953856842096080015812169663498443042917665753357165841047675535398663779780610577654227980222246593960402000001645461941484858521954514903866930875139694541379082780904769134393019685794627301405298899996409109903565287566000652114654600600663588927056667893778385173261740426301890467443599161124251513381456974966409637448860067666739935652783171333032447755999609458491902812038743917977952510947950275065120213227874319600990704960522569015138429988593763829497903430991946530472250984489853373725027385647377971078068065191499018811560484279755072726556529068495685903163195255598569603757341073388068520817036160660784893413794316880452982260597522967212455587831204752609178694892481988085645760908878650806389431211944540887578780843443687834837816996828523820139426742183318247490692138011203305428348275248015784124032929548796233275020129788949991813598439339371583111382561756271094289979782122587529763190606014228640296467039820080839680702136200238638430390349058363887833790072828021822591052580083711908718403751934575787665725402388774504980451497359020928334876268996126053399443008649508335515045732386008732949655141679696954760502674708343382303085107438093066276182050720023527020062660960780010269823946740868592429506965144979374264500085621879477888495070676769064993965969273920338000086950989322810724627765279689607776424937582069020668150231705159951980739656782188234826231404058134795051097939867665441937903700968956090356208354365011746434443856011051450571974096957660817265503030100855759620597063500655951602924032991374853294195401800315327537387919603618363666205408224659421364987184346434726032160541529083501511259288402000478091660272861729822874170463412722229355832538448351653858118134489321336195366360693007022376662675407728063699761045346563671429989343596415703736574286803058130371406416468879409839747948909058179538672444422349581049914649508252141347159005392362412958530644029717254835672119235220700343601618323017085802636854307983780559261366295136474997042494246218596109264408830035052175569900985620513803793595425800600145778056225581558873979660087716788771371280517484818485463258985253343920814551320260594692136040122754720422032684864930690985461350874386173603130440312855673072529129372113765763521300640359078440153159331649033801480814101168403075868605293753352485816899468691605465154051847404467653819483567646282272825824296501651354982727656777660534635348080299707380205395207345924079261497633305932738055952107108665919188324632627173794492831980775171987390005104589389449449246153282485631328442453869531333418078415756275088212917344961389394542647699579776120870904376803888396984197290568067697579738538384641336805830205325052642295102499162593283093807033188400749287985639618437576773590554682880940942542165770810354868731325037523321049458194708204143416946788636676511113669508286902594460886953116827338838824394843844206838790800328601771105886990292939004316423421121351634383589282295290044707463157965406883840560171325770750171465733609087081394261312856971271925905516598794023794710473927375054393057261321918250379093726878086575518398461798113693466097921126180420849742181998626233827048628909153883360671581732039447606638693145478337503820610659136090057509496510347101669459433133107132703528061544941096399177694693089422704188662231507416438338921637268242477469578585681802799024130198880242676297618368603902903757082664222484668352084695659113710639616912934818007969958814921005988531233184744491249736194209877352177571968002765615183338842227042696772672291152449212596027318243330818150016615505151623846308930929863089295531127743358769363768905623162300331681161439887092779711130128177548057380863279817938371668340688120422152892955327391869515227738583618095504339498412922056923132391958450417938049755087469710339715679465662878877298514983499170489017168850440043016878604690365157420698704897085756620651898005498255676118483473393824671368604247966225808129574137934146082516615490430797426155932521294320490697853400397268884423087619389623977440057412098195634565317729997173113719516284681068120763257634951163923953367033369035857764326315945386007191635739468950341318033234184686916743568911983588834376718313848040501218256930090170886819233581352968458288917048280595469165010087223313559838944994010789847319119784250066170884851964978228100952800721505128139992988701847457648294398986682553649397165530667241902490755332110253120771713369322571042891772633161663103081923423882327931104364431081642148719821106295467545145069083307239317091052826300745403557693881714938587712969105001483555747410292008418017310922834836389639079206354230604502429907745854724911515802062042002540449378863906647943312801162276403026641997215855359216376441715734916698418045788813332293018271446405020770404498542792620332822614604237060316584986083882396075113946913735484425112485042392543985385381259795783366320454253236527698946124624039261946980606273762627901736803865874432597322741109924175754151342900915202039217357737023590348512354783607312432169220967024139014890311345391524837067712835809091746995356495382146970726903452508874888502899202989780216830045599251661403602849736453459200603748382377178177598539793313893360161562437623588518061103704920130216136383938643892329102304386135422790727874236304558555332756495887859555126714576642593784804833581490984562106862541924315345176809671384553276569729267592375245297049407788289333661686725307635916421601495046875691750993574866951607052931765416315213599559252226567495764646526903041719059558381330460107205108785247880454502628031180050192749684705299555925102276683585323371004114107287539711776559473743670429776812304744004095721413815076556144232246252698184544795196334301069946934613733560335971463565812623034553867876103278614382585002950090231695285661238043743528014069447134003738589833020673758826146747231911558500322308496371073721270015798233702420836095845597825560953381673362877251391527632692217104836508037264363912851985188725433451349394553159299268402186622544828900392743844197239501239054470329262855317723802872900685404607746030462831123104697591405631711857740594021112422123263688034855416000598834220710428252890607938307008006501888612527719275055270502518605227068571879316126920043960495911799876151238942448308648983805485445155132021648141367990993376629588507040498626417690572334118188411130507378324855047753887418632894705289636140052035296185915288144530935648254055801651595043408826621626197073473683880738482614312426611965012156592359677586589642375157740978988652249257438261012955970335461309797248558084872617708100336826731355864036603657787674123470089636217482843725517385005040015214954576624269936177479460598659908376394657801423496870912326089275106888287457464781282372316020003762796633120185205283885308414389061628014564954663121023235080112853247682860811146098591028118691407551438988779329663561731675523660209000302476846173110247103223790415517822815336699801607868949052578979169164880099107322072360927439498941737913009667786476564186185028675397973107349455315226987594192843753583705012170295390414711235006926292410020895734290707303259516667661346736695461960808106082729590441718672574151899053239027343493892497875621486867734402000637388218450737898577692839500990350263383234181300354028623852403207140584705407060115323967071074881558665212144652506781747989312335949266471920110548494490089071035475091209616737206871037049374134652381523451470231222507795081677864936168081794085454971726908849184324388996265884311732944672615616335840832638233276934003321808035506457443857148110002484329566931494794192576613345395761145981646641755194021893974739255238567830289567247010172347211150288677570503661398958858903342705123505681277430499168795521003319553620952726420510042240921358202353009261383039879832095198654360534596314230207141480384043779261682111033980706368094461274796845608382978175350970959520867649176205618644880497124262140081510934762298345822207303458016419383798195423890033312476578680500281851299493822480078231340648291757450824219897630083682520261617659458872870576527481998096167370792064882111781774008674840301809995636287174910715240300078575542618340862361783907362649369988918283637442073775911184483381990364443030640881790972065378462757983409293843892874602643943472696819750593127421782334417829974406390467553724605159536532802589932244009337285424399118281641311183967726759026602739795342013761072842426378733273470162457823475173079111619124350604796137712809084127790403521764468746477543445540235396142691982968620555226959560487737781021834047963256000157500630631107010371878044814889127413356348129120372100894466504810546235690770386925682619284862288516528909649389010600985262245885645130794278909680597158383140950436322412137504521933800096715543572959314932083206799538852281244841031141143766925364320931793472293574034394680318361638284624414287185419874898730631119149471577726819656861081495202543214338757931941344578740324794031498879195626133466592485249648994514216299138797722484742654780648140373982963235518874529797683868126418590457748984654253754326758910443848883366459810076505354055645611101148197097026350441316724968301622194047531844869428521313225659233450374123551940442954064563972976712424395717156870344907942320596730494718924863073197503837112435809681178684588287360904552638979916686532316263547985782192055426032246156106448175615925516299355261238346541845727133140406943330758542838449132752122319589491466983031920293478010781683068375519678195066944007891156726043922905351438032634967054940413478625931027477198330474994222527593738192137334279404966799416323486697808087967482089326180768857758850800853607237034464261880102080231903154312900672982713409272271191807347864507468140449896896950821602779959696465722607813152290773138337247528125331554423408481551907727233820485214782950693934067403175602311039256056502210886786090583252484725266490882322466687818530539180664722839889560574011204900293136974024682527622448245469171943925152592439701134911580414800933588858768231844079929041989529924379990511490168809374032818147282635920978386792672995140620985342292686489577210409901119569283981029847911277117979516247065807248291690399994989688091580546164719800430035693354713433562998846757059871578306983363978649616492947307399145847187442158781832507498400601420704474959929408089841396053533062237539686854076895856055783168091496931120463469916019213907929314914439144767321000299813733823401574042619696508971811980906923850359373742429592008770859842633359903233579904859281311180258970122687876199009881539379234690837945611934664545359162807835538580043016851846661778269393184402381981753352317604477514105960894827883595236232027302823823707406995319541741004976258306805568636525905541366624855652785963103019212420603743479992402084961104788706587800267910159085508793580125645119457818768440965427008166293438552906085610331125481555832963765822526473618386452010096339363276673036146138922081766987052481665691045041904393396650632202407250385663629162358470081011594667177304383740038093791111725657723605539895381346242751250429600942671658236673805696261393689226229310033470228369500475369357397572426567374539465699205085483920769649396892118489632677326780312267896234013713538243992366007345579827725648401199889381864838184202262599496901997041677532208703437285128724281388644202238907435631967843404504840139974264730020609526409763187744740071945889901873514406853730021537603525207400040436379947118025893421297308243443104354679460683721080898479342969680446225956829264169250261763762365792856610472086356967253282595025445360748411775262447362182527865469963202423883724310524335455979221839766816842783481547820771601032468640811219748676259362725544061153932832577090738942433542489149700208476149041305888384837943657275485572180005675478126917020474399906005124312931060278076248618275772483276116619837407645434467683813644238503732208970542733273051942068705704001118330755793285831884928411406529143012966164785132219819647222445740207099479476410169250054447409400788462570726669157220929856287037476297439502675783263359982996214853604264543260576752113365755137755533230171175544471308731926738769855388288960474550839403142108469168400536564464839299498833260115744796662250827513356088467921218716721855458937245352329716264612409147405301490046699920403762846265624391396123336180462433082696556780606945748456253975315501456776987152531912130645697556685406021444682435532294060227727589199844343092237905419438690372987532014677301917314617177595261461160183002627948597144458600962428551995950102017392155839204547607859757392243391327219374562412362808870600083047504173152204221883884669881314546669957031593871927816833110305170420253661100609167737628910273486780509311712565177132538203321722721596988197972697375294570935903527120328316905165266765319745644131986767133055502151075055162486370536748623627383307155187590149042307162553731719479043221473810856753163099442362511957944879975839369318313869942144883279698602204575189194866932264372648554064646725405107810080935827923055300461414339940490082624661286343243443624711864828668829796234571857070866269834761408312354081575209185021073252732297977570738102457039533855031389623579333679961685586802209451226687354172467184582099613715816506949049606508721639372556381430354117454499941507722074460481368042879724216303464901407523826369430620446130166231489038997951701603753194160297447013479052863594109376716947668610683355073986557874235262012215845184728276803170778038711891250019654248968681145222333251327202210535426889022958166473651707937940284516532188556443572084861925553348664265730086331075429925094790698083490877101697783608220398798218029669538958892953640290990568926007494948718438402807551834720002337344371944403772974163144574954728645409899942444679099073861911349408911778906845437371962480101314821712122275030089587289104635032414013326161426083140779095487888206561597770441222897687091918011921264265831260973052728443156350277955290526678427817548957417369174653102135601282458425723733149537941369766833723883837478667247889914955767054308408467615386292329045236377677765413164405899708612041821766020266226571245641650216168147951459372857192956305069217589023463448229416037231068469639405099474193749981900279922568550729460959505399575627714431082122731756750417121759733720989392665068769067756567973171521214980916084787103654574027368214685057644890615084001317642393788787344150447252176460669355985122607605022889457113208475339755209332914500719257713268288197398024476610912268255428631052260873836143213022982838712399869855042616431845867420326242670809934356950873036210296795485954903145253291839811673813929840566770763236803857644784666387434296270665418679593993856078791923648942304176055376890809387416829854419006525627187689268033306709089913303057559427620793984548989388695651142643271061003236184127625919352874193359317814546185353342264071899916695402177476994547185477059988327667159388373312929016875418746436524501229421813501795245427677432333405886738463071200207114097612096332163036346529736306797474455431029328225854963714502019122490366630835904266268993122097950494280072273061994876358507136695773791562583810178087830729206195157771832972340739904331542437950103263712309489133416838605879147225765023912598358707144567243426609914397229162185011514646519252654009531124051115020231505618037372708444196396360890643948424903293439485908639238210567459918439971044701258910969402013174290443497497763429709168688059882808047786531116871589902540851092499047839270351355725139723468727262322058182240598161870967026052109352291793357246827994607867069510128914077329525394582445072344612667365561740817346760660508984429083100142051040087566240043685353858404308643640559535050545364667261317625280523983274999439276236384133705320271797681863654022052592811379271958634536880007798300954527719908097875720626999779639823975794000356665323636725680933045661610937063989651965355233938741510922523761849079452506181000478077292187372644062476413385166395080277018491137200992729067217034417125709371182556181529509183448462067963275242336725748001099516652073275085433527599537128217516593149684373051332858702380799239158467779728652097396221106745188365091780825624197416541201600746846901199460080231646276566962510814369721990687506587240584935874123088682471572995710255188074558893076355711157082516704406330298679513938101241344757037040976339427819483444205948930875418138390695602427035630656866154580863399186092267597036454838045105210305461143148391513822331994467164501236187684363930435267897545982761861640957178340470584050117477586699679011028958971677532313017049087602191428951127518277831412043244123880731263945442034999901019261711145559364365049474926863050958242902023981014747047255810321208397613754464231744755528968493497180258249340359919362897399364663571400452029616693327662022279154183121493376341577988248699546092096428539638032909821782713520232865345449870463316990929532655665233609521225426692634748185556726165588798929109904603088095848749742860450926914684022931434301085189256424723532768150337597490745236797947070471081616795789994982361925734687804316864777024137426587492092861907030118006178206044823878602298866934808669171589687991071845863084760259671898179194875788496156486572011444631634644896639811074772826933385709343584945571384158014606715891852536206109072685830536367535059818062641184120193838901095862498982026572517977351702727257330229456491534800338493517991134042489531846764245963163472523578148197608519219038800491387551708818222085282514371976976297054936772724658084905091495736892989408114212777553037693483953660495002468065397165617210770014580361415042897534810102876386834689181216968319492214966481427342640658272720972861635723827944122932154201879015811870865332294272355387815199687012376327741414229149693610533351622315584332751663957121226846796195747645337007541410403259896315498332357296374004055321436760065274807043818721142391853876799583686780024976743402055876077354995239723029225406145700975552832394800939544831506341708796431366281861003824078804116644979164405808963229591156560575137410844536153255708647950979725479144232970748063215810173698241619259004217115144312428742157386075991905609249874792855241411130775298118754565205751715229757883838458200471267857575944821837089615970038926869448497978681084814709500701981355736179428172266243092800354320604305865658778835778970907968794493477923549631332331743860983273436613378250416167632728545097136788240484933088032723667574062901535542370463932474298487192670449827025347615214970230319589622520426298331644066514367454992468680431510640277654275441685287808063360553279031630659929614276429101118002876105819181388391149935126141668965882491748919532702450839577162102468847857265628884438277864227575794213247221141155249083704617859155262489482432333583784233133959206419548642805888870624545403536384755276157488227404538100318015246402704638103775442489463414432011022585385828216655590277899529563020438807104121141935730929757210162785306001234776858648339286289452112884444679704498142330275147928743356789730051121827459418083499268234573574118892891568835891996580598654154673338617345819294538026407773420936021451827325887906677519627922764694330818599014730090685546151767335312681378416721225175941826871388769679242595325130084555972836556955877090072358534364746377870329685168235762736644160820347960920908742150785006708246743289090865552359620647810623126863114795274700476630160270320565684812394421364947897151089563553103080400347918971872144177859929009078118270381472150261843504705183553185851202711108771607275270292862371980284769456266957710633606301399438831245610798243819921920678860675495981616283980488427473783945442934799555125222230241767806490308832842137007196319651404895167558490347758074838221364280427079849939124749206641548754117386218467478722762812976596534004010837426915784184865884980452280535890308756676788402995203898719888735904345706415048975742971146332997378551808685274803995074459666788946030920669656960615074893162448884057097282764608049904042684626675236622379577626661153928988069657512907071867406807437913319041663068379157044020685359664531919377957064781942109439883428943179465392088766436516502282760860409907851916034398977527238146445665097860519882046525715567537187732622566239417828544648869575832858743460413873680553709222864289451674939343715068524627937544403638621102949410474354350995558943528801722498613561794445439381651494986695575897617083407556018870783495951274840703678431670832424529171444668590145267375244332280360317717321430252330697538267495310028388803335465665354893529950491970307885066369492719193884719242383824015652004157974867959791429839730927634511581840570802380422287246652208857630035266459183606755085355792272395708288975470781037353907796657190117946806686973545776585718437625588035497892998297147831230603734075390510629992865295683356669440503786010538945236241458987326447177347032542069798841537331500765306301532829230028486356927707001522219334378396480156662967288270993675431268648170818555565708624622360556520246332002457647944591896824793842832431680357819786901530572512632403032122126362272435926642536641669781758507672962333967466801669862223855321683231051707978573810354664050341979941920879122189195548398019649256478673540471610250542892961313144464387817014203100345890669657297614525894624979130586853998599135164869082926674410736337069730127972168706339424768522259763365872144730055184122331395395860183823865908245131695768723224790503463507777473703507944824528916893055661713224123526610546382359044626594423031891709679222721747322779070364257953988728140249563426149069718756578788622326679802954163535519448759779914497518894495051296580852114809081750759873188415376298437571869980484979601201150852324528948444869044945866744118379903605460493368322661075908719092299470348663177944033320028714640759090842748284169615972671837190632242360686345893050898236133767775958578844385555821909015802916745535070997581163573968372444200099691505269462601069829771333903663469539234109810954820327229284169725957329177224579778275436403541682629206835682690645621496402923266507322788071009845497792438759145254195818153419836615300502801164329944995660295243171004587511451470894059264783820727802473114333394972184884422973713965464341047619220379400725880678319178663501165338485550801106806714067383273413176732977745268234533685854167183056936156890117060439352372070155473676756538107987637862555838812123404590593069038290858863568519274144025594438570583756920504180721906675238059740641372988260753688675500308514882709411344887999478613945413169493328934223055582605444852836615161952582903426705875065255092709863482711362316485817454584066947883622229962782782422866572717141568678136391178425878552510398649126275684063171692719286268128215345715464745255032149729784228855677186040131741410754291644822361078875640437834210083944632449717547509481145398524208358652869533741536942132465888239468552305127115707013811871871290979081592718651253215306415007892305467321529039680868163324207598483131117009564316103193073956653695944573141916882506176109966285727131395373234414737174253019679614275427290584690933896231953937976757872989656933977815599219852516989471435828608548775353518868381816015512039439771402217053585763619274195473356707503102629594398002386951716571567542802898808231569259995188413438333150861445813242185411516571932743520741211872042875977293204686123717037747745953676573280451887463612815876799320013662449960770489093822270371011590942810460828504182791207031005088373410117814911636575553125435927656584262121194093195776828576916293090363584515261438953872065251897150722238919267594906400106264344508411437944561604813989246793062816729370324283374310115591253932821115472598042472643856538512857246142528591933110297349129872930640461913475274325592526026031271108889828699058893578534455886334648794131988735639819969091324462480144863749492693431205604326157850682594333213647510477346345813203485328435151421682306361439639543307527810116909022669445263973977087746633793702536469034665128228159109466140275882772693994210506542960738757252028414984883116209803648588484450441670653640025695085945839166613556793566692290355587200878904147027605896853008660720956950126543930538427613503090251299493405205053078455318611834872544726854078989224459380475931899264846697253090037703005336015016682953656194704130416260948886305717907576487835660569439697658692097947042352226606343105025854354872692065108811676258261308578015527556715780472302233418352729449392757436297700533602604085568795157494488474055154136851551857813829503046100593220363652781980298194028028876475770822639230854429624418884990317835213984355657510530044756126128525083295135254575411417835158020964911735898164237589504208625632875762833372152200654234949291073582240440363159865269414325761435337835507300444684451153012526439742615029289170230829004051172909442766385111824619515040399802666542597302888199783458581526578035874345530919694908087446903245076187479525420978243288297510780172072341853602601902353410788911168969249462799055525087123781713905914980133220996722149327200102795865879754470826154470454666058574972438423022951426185106394289244138656617706500779275350235573196207369927272067135623789711523106734473746858693123572458120137930327216931161865630638327068576993167904443493504140256837589908307858428625382268484835241236232644062382481632087559786633003771576985459741550428376352639126137895794354894405315571974504598793042861726336437419060087418305833874217335724106347750906876169062217714929043541478249416120789567907896031293456756489350703555237849538516287735911967546290136377674042069942657923232562665473535116567264956626995904757195488841664990058527993611114353261349061215315617294017744249884956146109048088684660445353796146469569871183413032278439317435025721807462372562891000613007825313302285917795348026326773158113368195425254101863968547276363131851960383038651081585576713728783116779051605756375693304821361269043414918986945118739825777916078988263614926020519560797760363310771885887909625050484416816605050206007425868586181295630947505389313997167895420717882984232402588946105323790147020487785562420378223624086671055272443736411736479363990141058121802013645686983541669365496252719873661583958860038119631866753413010794028517624624683591694054724090209512275275174857725646716978736480296106405770339336861543755311015472341202547047304528925623347491027303208585578288527455736655137887192965733266713179138091382252718867599107639381005046324252171451347717883722570162802248725785050985808546528224965822234711262133832354564996037419572308391029731860976838909245787583573267535489045550399134366371705757184819717038685549415177876443367898896262903928723763700571459414409931482168931364911998555267231884582571759233420736772688396287685722562768812074925595954692650211290494599951332523513937979603142166555084923084670668216896523451684907689450779646827962725475972397187652714811537219807593018361130321358786828418231510256730712032507893879200216357797268331188517435029455517305660380890519602447952623549305297832268776885114001457595501479380529532286266730218836466604054367008522357448562515021483808093491215356589345877848999758748642531602365965672510019437855659413701215875205329403120129639296724421697467979939931368659818848554395249501917023718382993532357504379899830135679289690564813832326007181924555523055130230385082701205846243800418261193390065846215985799781034754013239504966342853395448583715974417689067212441233206901008003327240005625199804933299142053775271738980041943788603092721027622544416439609503228281973574362107868512073437059988121076306578043682821464443107360288975815485590920919238145358765291180514419755243020233764506447424520837473857815804315846006995128277597589502453312125772987240966042777678462757136235124303804682528182909640695128356641529803941435348612882923251074923286529516574248040471336962693930486404428931224024333822850719996482044895675724507243262897576131974174328357091126670483835325586482857363013474715986774460647708452903004131089491903551742876118266539320619250263594212982524218409629974238382890928257087440504089374285301044390119910328083362187133506295491105690812489330246175803093571795456278252747775452721718442992095574066608690326841236075538985331844899902974236284837898106827544054233480418259332313118288351245046755680284047648023912185904691738977027961258221092859984191470250033391731809717093440451102837209305692768640741967198181000703554783905224312779044003037664009939075402179769477169600156065884945963118673251143233527334559605521676048281178178114523808650691528588769639129064497352624404184344551808356758021728102874056191277409635574934990951693774032937454354747654285519106453975049646666998677046846903627969478560960397575430179043174630436650610579828878574031014075001710941409465204747259757363721140757285312754511801554161418426892657369506696182746614770988008387503625585467761841433207195960324923813664621557199519139258623318255738783248177354585370183004704255931394861471905789742087122014994276069153922803538734827099791531945915080043044392023836954409689152224075493606879692865577846883146685677492868222934630073569841986967650742660061394980512914018797949672053720700672066787478277113147976587994955737848391249257976127433453536669384372611210899947149985063626180697847326964769839384513772252713106379328523339457489216002355254289882526942290796309104449324036638552474652354283938748061470732171346134524537328084995797315689974294081550506405306209356038567095343301784699066939067695263023912494918453241316654506618376229259990294037759318742614840180860002373154445566097379361808898737824226552473116016579387143747418975068896031275753928728595237839915604708633023737016625529408268980427087959935503903781502161971653234239604318596886898237926384993182869646840514610170143706439618732923643841549640479403582081303008448546292663639307984822493858164169771622083850186876309501598092176263401168982524272198971493274973740611292798710076053480164146781244353272845455186198891491047466477359590742967100270387218319962034762104841373699026408202853785418630462748787761575814168174947797269898712593395039249821507466960073453147447800853866542229900711329337771108293153876408942194846384349596600476504049259292471105633449834746568673036264658793027412784300205203376175244716800701149454408225082571068602339548263141128514008569825239847584894765351239452778326235418245643582475674688243671500000669923288041583568722697076157823722063175127842743263084130835001565346969245858135074633956424103225627987792612732838136858593768257831518287096063850477886681400337774125360568213471694660721415472133409605734485615764509308409131914236389885573239997221207374487885683052275255963154514321169931082093350898238249161552577729521917527711127175488462627630193271230851211936909410421029067705008042921355204170824984911551651754090173123946984090452272752096490306487956856764101480282307509186641097693910944112987802776611469530115939936186602479948810115403866834299370036742470661423276234806493241731258072597256682117658204631710381050046065306643616408684177652022003049656850561538496833137835846223651606757937680216235336441646559728505381698227605930496258851966603225567823197665155067713758007417131753995024945901573433260470411378742372791559943539839339590504335209863746445853761962409285916152820748980076711522558645528960854307193286883940696199111808608834926593408399377752694238531637326616837032341967173112202179459057012982546498110942251804419369138517484720013389704319541449226370940456541616481568638469922251728384144509147309397241884405121000244738760212963412637959719075886583758773358023761413481347248357908199196336786494781355361098150117691029716905616326706339078687099329424017498359411572725112068098389421895237386529836959496494206739403617440593703115689320068462774199208075069220934522603931479270247940711280732091687587272623190196060871197220059299992897381454602187463548219318257762849914886712551970442824408517536606119613446208188900532704928476103620523035810851484106677186881520259364769035755697416446630861421860340643595493116374339724053258163736513401125766214401888638958736578711951154331659164443567736766172281799271277310606050626353087838509378894206093223991745693595161789866593232123496019809881786078864172923232835112803439669867488912149895410762129826361899073416191532400825423340652856377161083520388632613586026669614285723184080508762626798499978481147556255254656207901549753047943291297490929521748956308322435804018264544773408632717347729897255402836982197983813226407326937023628844063618112996848855041085225332959160495834377194791437199115098687964170328027934115002887110653259856837797642376688093160482557169717223910898515776888770293577382083921465644321730752994309359046038700171464648791684594617364498651289259097767106207310469923537689366634542551932465209991825323403941558150307952503323881726296943539179404333998038234812617673810959948253397553669294126006172300188943069066725625276768575349938659362730428156603237046784718935021990546716586517354406062310411730001372947723750114768067192477737115341780089231034750672866955652599657782568661172304488559719879392602535046248824553505867739251697928733947806991121349681273705626969306676135393161436633419354012852025935056275383415626788555471327400234348488164392053729616096709483580885054064865348645201932927147874464770186509002261947448377742881092785062097905751011488155659295556169098295248604009540210308103580851808800598259402167767325804320520849990815000042448914774930450338082589918915346167437168399358063693350971901268069844167180473017370945081112443742663588128112072061681527080568674701912601997410336416581069322646211808258839685028150175624076791266127271519230283299901480437647249704280785048926820013630754841295709730982354974351282471206796318693744817337955518042503281268395189537900363448189854138477039198788895528220043500282069465506749838374343813893547361117864855091907140767555815848890443816918687187675386164291043985882824264947239151976409915401715876181942340441253052262351070921226815306369169641769829974082972811324326701595547185158011383480108145824667787957561792625924990067795553060957922292531981608564117542018201292101339407511228450040148109217111112546697500730219003739358359440102532322449009899282616987395126071748453975002505072017077004388278498411718673927446204576480354904042146774255239556039881323054803410301269762087803930020003438019367201084534841660433407394702303373526769372322696962386682518856884210079015423401898968461108550840228835265602741807600405299798039319425869461268580214710248704966218489174150974194668010622921751192878774896714001634162841053946736931965117639765961825649904513712342873628066402868234079243533851869995507963523324813647790889796829418259559262298413042777032852874744545492451136504745010865076450974629412261014651166821128035752567767796891696853332099220889350899254797814841957144110253524509525739136483431215372516143924545525850242017224015351667039536137131732350837452656202888206443913503404447169142863199507266329976167667783227872640168937721735704674229194107008634576019551629025510663856532080194638589484393356225480905434511726721959660238641840720549417178691093829410840377632578072056096512944846073837120298655156031283422153890759320199552463515286282714656831111002452645965385604186518104138390757636525577499855775833605185977444243044961420197241816288046056388877579659643783505228218598231061159055614148257901596260149835105689812475509142303612694921584705973663153497300175079329945779023778557749182819715626406873084279252155433776523012820047124085312130078152841327852040397326464958976748533945246332199377895438008131464084607041086580930274150665794533299435419793944483619269023478243986013441884617627506873004767083728408290891909793248850406149509394934220367159584682826305425461186329385012093442958389039286441248525213942937608359714887667060359360677743328779684895670898837270822873701452089331733750359997430328655811536600792312737296631946302636726290813651532492623959245785527711405314578852585133345221754607491346556493405097368391751264786912698403175710341688230690109727938165222647461150562048300561068982025104461053598673837205014964013229133860617713652027271422786916075724107426905166310259555029609202706099779068465889541985750246534494749523346595971372945310803059606722287445152847610173389132046992665018568703350717027866613933034675529240322758091672958346157012645099237493224330158419957912350958256428495479915131336200586341324209054343029812616641552762449965118255412923373983588119738297994592858098382983551001065790356621258957321044056243515056907001734433745345915652110013333034367466592226011649126582399467661220418081211622998266781676783988347019816135989619237598458006138597066878864870068704285102583832756859366248412346498132884975619882198975109225362591594805865858985490007471968053132775535026746338640383297635563480588148093856479377508792680370983765117242024042631224078801856412597217983066506248048493922772482327879471642760163930712907951186756242530398521706209197840209186229094913914458665217261480368459357357114003000629506671958627811019291356130883607774349290104746485862807666750880177154740795724781659873392644829794415282900186737841432534501170111871591936987949718844927373637716013685629588552280661807119420177095145997195813934670756265567164451070807340410335740656132534862872129177236811914373274593459337439195843316922331281288551710255295919979821598590018050200207375556900972413367171186887301864018349713268496109979757095404406777061765748674654795601812359342662051622094646874003843027852833994996923348401868411087308617812565954006917302309497802017908393347580840535593452444355212327012753934585998125978450623950151245379970439145378741202418422902689511048289596209392256622400376761370561558348354013117130094530758137790176912755512079751890582834293389334229159983421702632489021259804347584044451102463671868974311441429336629050518664292511101110239352575974876844720875107685793539163175437326739994586803335038655411957573626979000571987926137517296123956053435353747587514445762012805917366474105690897099216230327156758352957389926607715893915768321198831871083873713912164163275296531262672889955738603360082852383455348369473230629740031212175015481893140401102159561330839860819619950619710981546808399648666018388555516000053940111089611877092667678920659684971186939000505325066607100439259425219036080976505150241276526734384895140792246553930904280631907257991439034703957701694789173203981378248836618718060065713291154153255891463311224912520646427303775422744739849089880936343197145990739619697665904400919375069577701998265034543563499862063126016440465943741992808167262169020867773092332491254849554426394342196434635680508551433977651028527480913946822141091166135325700012764569555542321817846541622654384789913723078733138702127679619880683078520978956718931321315903301957651518857985307488831962475972501013667864339676723606447677186236527825419735676244830483475499675283007162031433339850418922464221211230448412180960196077011967829479582311745125774887665369136100783258353054064403457761224082398426823436474554355568688273767485008237678681527053366410924618353458495646765434361492369550301555216610283588958247517359351658425921180817930558680455558106198687631686925176143116414370976564320790185531211722764946105279732196394201336307442550425084623301042731874380638752419496135779437835484927087981604532105158634619549783830216484171855467356294945818812026393896990434763319829048329928997673467002133728763860942408438315502038706181143968921104403031184109414964765669193250796475818066545932194796431389836498087026854498021267947267519111500070485057575223120356036338171874373958047751973959751901465405866373682609576724724301067236182299800475719574738103840652199312237190600481831741376583062949060868471408455042322106830260540248707494561158466737621967574989414939038755352620868867466793403378906579712905310567577749381445565347886406915433082617748548089182099947818357429761776724281682778264028464901869444541415448396207553292168203010925648996468411457387236526330244183409201625688928578657778628044654480547007269065260784216776492721429973886804495401949522853710110835093177390554315600871975487414171764134896782703078649684070101925476165437755815770169354499761922645539606946778814696788273428942648469983232757889065136257804715620856032293164482809922280752606080571325940838305963465003111364044010890669656951149334153283441191915445862832401443306704060348066471304183992242622849999197351759494450668631365073007044653562497742043547189784773549628709395795972407712365125265384945096879492653828833606300435745656824236212998988488162864923531250380969493104444908350189068881218975314865061555907418178067537723971836931702479023729700381028438616434181163034122398684276657862908177511253651842351583282303599333906871418006080726000956329206423485487539998108655927252589495457552061953400736652055519595145242271867852819832272443750946021794267427431640163671103180747864682128704624124381496561178612035888133384970590520741279060973178378517413651945915070485098888064681976664517381461582650519055735378986068897573676592190572180256994927289217838600815814565042124444149583501251568037283981892337654568810794904495692514848963757273085692882078409633886014119455541862075736710143436044210002742541311104419713601826194521231507024806238898467709176218765497470289322372959866548706943583953752696010284804409905327744023719142580079269842073242905045827067676955894618609858471953903046336133722074694856529623338391477759943744806912915050100761932977673972228891190395243279904933399005246318115206460386388570853212057701253360418638795768845159753156657470490645124457758009619179169419037558825533302849022329865291195212317812162535506153519928248881876738902429679753191372542206305301936807801864377907560253993075852534865654435646292439604532665335527275871689571903131293032504763489826668200342622157253238129032504461932064370564531755053418685639247476108951381603877042034673981859983345926275913696169190618572255047394526150214394115191695812393124256552978979320438019485354580392765848090550109550481795051357097841432855309387886708580436741808293095117955300446785819412393320834636984219520908810275322062854558364364706403066480959028464298542006144006068295672966637562122008294474085841619410675128477316126162100564152779159644685600560664398309180572825843775595659841939349301301967245338017747840087209964047864814749057524503286002916075051084913349107074704430558969079796240098100519853771484922069662783020853121149748645020086422556838913957786390021769957901366365290187816505062529894608530701437423519686726354365737435577807358274212065743894298046720449356744832807964211661664846627610094283898217449278996000946700993737795413015986744884906392401583344287037857866718341119270434145319109892947113626935305744624450004602484727012457605187833844650221305631489022465730488899942431007714084820500560439393460917628719815810258141488287081660738066110250517684897406291444423644601555987227827596862608531450398898986261829212507510431723166534564493776236812824864674367195719001901490819871928739681264525739154332866749469915279316179973093297421953805757733730367492940313829700103413408515796532744162963122822219925303776356036923327150373743085516303954667413513596476930418622959779010843678017767510683827916106489299827672144446330515910680938358865465338996713941823285602590526419212467107632188581115164016134161845340927785015027815200844318939279256161291228738958788541109556319834845245275503604215446225413285812939881804348864205760470755686508978564081550977208957334209020397219026956571980160943791513513041454934293883713459948863739094752005093815102910599177632511685788493643883907902626510361663751230167547311539141075562046802894096235406683821574117351088182259598265030939180649380450326616209904374555901653074792349807601312548302518115373368905404862943542206179751096214874826453879749973353663122819998763558925441044843878143055271601215279066830685836127282400305956857699253911078903041436690423010157925987341922923304600102106810690503366517954234240247120000920299661291290863632225313627838255291029629290008986706224432917430852782474695110859350800931129247509184405558691051993878728374117834397701419554750391487968639897655901301913985632044838104591433757468110676244093471106995324025383590483011363206685995194422449029331249330697655451127471218450466938334525416051874565809335571829493410947557385800479204841000002735229545733371627377922603839378665562561259355665381831840889803407099084258236726065332863608563702497837081618507599226674186950195825480489735294301038629532926594439868120554935530512898083509662978401228238756958525534750076907337672533774355694910333529599883037501180208015289922593786423412856115503493680376936823230315490409734679945659659338903658297476690427549078391980791916018973310797565794475337768933476466108624246676297220676055254620097314507001942193446864269334132271341106848825725391950562954911672633569505366526600119132937065605703821504271763802275126312957778354789757414147223250237748310873925912266605001206341125010793353817501556717768477234897693264161758151119814965958688916321705148935987026739357596304467719499654360569005709236184982815010930089812325548460870436062159284689343512899718670123100950726044933079319434596237367781885322403664936032071205707710457491987577169750144468828812133733088531112534934358276383646735411596971002379902195623690206640181737204450088384370774711889966569532312231899935878820885722727170062494359535052215730852616469600180733662614471650798663792057421296907093676094495091831630065253068910253279387628953868461830792890421149733274362606976212642052798830656202181289046992925992382471332639357934769802349268622463054992572015866300165873010909114269051721234524982979805152406014365296186703590885784889982584194909609085610555153587069120819174770847112835270597440724275794207094396799786897968687884973971136567007654021036739184226199500296044664056697812598104189711127779283209157703227812935166108632540653007927068933947456126478744858752313720600404582978370568228547758218949366395494489195321801726799730957893457782523539669013366744895180938428183055250578966920574975150771846812008028834657230838867383289080282226716390590149209409764132081077771614094542360780309759394840194274136708042798916849288611321638211846384952537692859007190464778599754339059449801214327425157781262372634854633183888723512497452697244879570857941876966434786823428565989535749935167290797212616813254911337520670097920717109971404846990934756578783187394337098084302637214844334654565265782721477016443781290419928495777744032087147794278266248370876926892783591515964077118550129907430597593800366657433614540846953066316907132795004215364280772966909646167603380787808356919485325260852554822937439097584173496476675276416654328117071930102663948183008033020525928869355679775089765261249337278229393112289126804090576834388156813473103904085493334192168072829943232106763890177331578984576903270481957025040352275120735859003488544768340169463117360745646615276709745470554436276498833811596607917186656807086861705316687513609946837406720941026854114118724087878299998945514318748297524030655344301467966983606974041354189112663991598609080267280041700873441285028864117974684165743903818597364016200851409919411818021409990707410625616705471137061909662846600271715584979640258378386954578461444831447487235066112189748781841751914253592391045395867547067032907965589794909710192089768154616722997725168138705320361825845363708925536952948948604211110793525915470525476276132991787051546327673249403805300451867605699411507914805890246348070717870057669619706018308534657061725243543124803837741109034111292766962647883371913751809079490936754877347294804081728205356559824501705200180466818307212255396893190305832772455716633445991569762285769603803397363030259305050622858786161119652524024454960193880433451875762149730642628571491892237080069261837947049831461468625842610523448420271966236638774868897581222248599069480780877890296948295981385194727583053356282727164615317681131027441082921990514650110157992513115969109280034557227977968518116799800326479011856880033711811016976262139095109575920298991371850841019206997549826890564706143098767985916295268366072926392889395399508342473077961519172104563484716054490701854180081207420709519277747836725104083363548201935072024931664759954753134210863588827767439381285800154171765665331492291026157992296391561099077348385459014665759889157683328697391392490029936986258969377076558282404861862695341071096035114762047768667060996596551752134800479152644573808495013137029932555337912123898650606979689953730193280921844076045706619431232140466329901083679947826227166043613212138642166270735644124827877521737887285666182811123733586692561341746604209089118496290879703567513517883315395276078675102827326712455758599369937915008047432225838840272101387952426112430943828594596595828408897885309306856529333359106985594145879518281724152671057969375153020146057807630522124575954913025484975518328194536622847152556051914715940531673300291555153537758272662519680564690551882059348896910098811520085950975516394984460652390955030388834683278140556215414614157522707586344089453441444295019353516858956147763223039516233846583375864942899169956338429275061138842584432315304376153190387729401356802400369878755129003040534919348440594472910355122600248502132576076693557920515260178644033450794853762927168411072691982486431395639419613212482376112415639675295127402458862445432963590940182045796558933488641829199440294269535571941296126026158117256734846711828649990363985805142728175628200128205305804322400256623540674088503376743620202622003947574747847157147576127459323618310957213972195083508073880440193797350706332689521616405979089272863442219038412931261955424655819500414391279135387319544495229402366906603758600433261126966091005075838050727496342524859011928587357221441068226128141356965478929927014704012216979058443321941439475730924330662519703408996563402795490131948860301518126891844971084502800682905344655632321099797755360110991900588206763609930444803421070891167910133174569892607394231677501665703598094905400431692645242734460448172488343189625885592933859939738002030756725727543835899768567368043032409504290895629860464486440386162531134921119789139958766082014205306390325350383510886856687757497800194583553992013034686794220190805105896493847882502866783179532628296208786875813987629324450652769943501261325328657813821915427252730223512312023263565365923880059163711296107489735115549879328837242743789581095157185736072896620167089465673919208975910972172741010442714505731360934604151517573473325596734969272096506500406023101963264979032095521692463198480039230543550348635738974151764096850123847804012146489702194713048499039850947148909541829841494209721731992741616753631198761790555575957154855823164258214836674093539497419615532346621871288526065555606381806198909648942398050394618237658834620311726883335134688479203689323706142314287453979266861105274544590042803457622132024504880665786498968765175836548866394786095226436436829211202176896625942694976594848437946884817727221756960144162012491115825895419011112714775403659319389488225634447535011796670511156620358280410980990368322020623496500761923903151694755396944292867763828905788764029990061485598082350096998524119940991219328118590858407673307075482903844247596143543171409907429325490774825333057411259058941643163135286369133411895199944046156271395897640483647001618528651236643519910673027026219819635901252553688819139848014948976476710602688465304768816397960723115492449861004315900368299122368165490998663395900145275304085948231805422438763409896882038102636481134236889500512858397328348361937777201967578302617960732913145247380070544238113971273292698938692888965764040047152713717901731119269185424365142876636121233511636722066850352485810574163255305966256472469481693252445890287559890480274627615153655945845018939286544799711026850766281413476405011771602157335554738779198351695960201251659198348341331803834474806320112169315273855590776647133122718656487453100107870190852726762409892028218295761929607398350710495121007280015224147795333476963569111848041265066325696558559400652745483997170500784690291753570366393245780348120061084161378952669512083922156050013604836433507365572632510209190112870238996080632763454014329789690662590111306535833147947817592689801865437940855911170975610220633705441008295663436829073311710400692398326591465910152756555535844507829223012083501105356827553210015040802308056986722000704151862240524922904600419727680754994751046963850279490076240694555786110863190082165889920502857770753977434552835293883412385834059405173912968292584256006501332551265737849446590332050085214739309077423497387737296675895255218206668625555119601118121885198792002521902065417052561010060802639911335574386017910341372029410267777057820614153659422328499814173675810217545723416130395524992472127189994341061559224503501641845538075685407029392544367222069214377789731759281212487740145572545487122559273599283543254962205455747900820223821819914675428049543505229459819124707150826544738974943613718498622061453305089687925167080164502458743360900573592923515280094985318565239542514741058817168651254962303515942705683682721456054568160803573831320379145558316212517122066729419686694779178685931126236243228990631515731129788231379249003664564803635517717623796128055889279889690229168136825828287645159168071014815129621261203451371328212899413021789736542477614229662845209454519959454055948616988862972491035541402742256768105088970861085111194487605017852802079318328965433811296168280876668428399532807744298368741488624331282256193958030611512298026921782402700483788414322623966674584595360447820860180017297857769152309607481889139860422089113725280637606462910668502486049481667516093871200310011308115057656934515793894524943655318611044034084249723727993051541333205574781206417802545306446660280848562332918008153681055260358476472918867680039201661859521966831270842806869723910050690900143136812350548434510246026980440717921455091414209688074916612247349881018937201839799723906021346578694728209708465346025858054326782918396405922249836909909036983822174300552823838004223072565700146004743560891935810676586883191200899138181799009088644627593194378721225764125450622620792226863027402745011296828554380161241793260014479537391170476075102492069914260497486678599815217322986661786856805443915901535695126376815714852099270858061396666514449643655713303068317552969437222998979883337751190777489235428915616002890361202075020123442868391573173164350817655790002657030753844035703166406340299390329119492985306752452875858032546961300621223248014349599229890006857957981753965411371876584616631710284823005897698417703347628478329954374322509950044180563956414161889415392596378220855350829673489002178143536243630372074545678474117947636324957344062281475704474903303423458736297476265895188360447466139980022672191270164550878562835735982987626351826678113232970384843610865726675639339941110179067395807606647710554239957381819428006224213363746650536705035336286704324136877107497517755407086876436284932945325969605388427136969422530476852201707837331258272917431232569386022751006646423123352491507459459347183896724400400806985149943699682692449055465408141673132204397430579818401601905669746841030499712556830524927639148345348251232665306979770987277447985449132818500604417376911246179640051123088533590144396994681475089216836676347874324944843618739807413628334856903036325200649484600007748491046123624614748990587742100442837502675740803148276666298165435433744242863100807849846682494031657507802457956906822268901931913843598839474546576328311655313953709820568388907310959656616409711856968374048530900588634900672703093439601503665529965201484189848398440858310211817046816286279797909019361217048842870416305912638433184109497238893820804248650539747376296650778880903245869888366880276737881212825300779856339040878198114334893750775921736377064945845610594221061501832837688047793888641789004642637300970425352737618871900876886153202661300585972614740784632090007674527837333374983548226051676196158069671310820433962836496850773597596532292120367554097999485875816776791568507750972357390848862586110178150349369288625332624105487214165221769383381007211348668271887539482042390865942782001880099051352260536119704112217443049872186907343722836871732304597822366456223852723798187940832738692724105883186777723894342148883949532494601695826342569356336125832114152782940219278693415508460932026087328429599946338034085251427900285967119885771927490794731620366883645262061548100481970242408369275252997820415779058194485889451915470579018948722322045282022144577367511538556751245047620072606151723369649124787860420714688919989928331444014253092342486117436914926820683473711324831260177537033208307849822682659944119761884903236082571258821500447804948229510899009832213392543264848552033431224537313139194400662100476476837420122998504502027674829725263634304460502215298397086411778324932373235991326219987378844019904878852735714310279829476423221998442622709141236865794649629153460868202377384442083806755489455787210484063707794064606471829688673009466648216561768465401214591429956285645543894435174175190173913275648051696737412485529366614423940503142964436841416353817658931685366954751418353561776028298705919521540152624283808794833749460965641265752374120366516186383885808850821814523432348728627863818225855451353306894437720071203150064265634385225655707262030917442498646544562337317115672459126680604351961325537745168715061704519789776664104216774934816470668018140829638903086486503685322803458870739906409597696835350281992073235151074846963898075850061587309080880612108307308822601433276897248116236605808868278287959887561183890069071332574395945068665828983665578132124405749489134924183624631314588607864113025279528637102323474091168648322421092912719095324890655424098293858790985112028150761965197384458417742988886881343971005757287667145850514418119238954940647215528633499029230911050615253959544321348544146022150603366845551704222109003466433074228849715582067368970313736560568752150978256705692201638803189609181824977784525814846727767364156809416559127456857000610683556525930420962655563048063355695558297869048860729216797762168322921799448700811618385638307329131272908501649587395905918840303229512307751569299995664469164057412103789406298593293459832365105758981467778638848351789927527212724868131428903012454148726299739663760404689937632515975375141647865437180156580191898241033036903857374858803115372473811142593168075752403320724848334347134014910153618609890015671211614621235946654005037837728884436230823341280864674151018818290212945383885905333362108504063721220821924208019264992350200494850656007795626139707254231606520015616062140876282461003513901056732793614787348092357398719048840200857022335379557363549385696675224500686841246573686639338644571444400089486521028001031089752195204597488581388562249615910417726854748868404193789607666243886692423339667691189580627174474666245956518928014317449896170410294725202160969178237067527586824230383786073272586037122216773989331254967772780833203720891874834984063351462697760201515558225498518793441590045764678610517786192890925359101779912394551874156075527908710236760215517802377110085190739004199823217207428867894453023260642485611966587878899679594580074727391428411287191369457180234481077216151847181659864008910490885210126504021356850761173981596328955832839417938462442344052209055104282768436653673285321426175238789310569158700612669229267675596174119113816471125229980621226090871154011902190542632922323040057510026779313714570115469669362110960469501560040996907276673077213832752318089745419889572040649947124669772801278887293127651252530815388354120485831771970434068780586438799705378870000857672698949046483857227753250050018081793946632890222482849542234427435104183169524298179923313659895457618845912403340978463792201299748736268703709188650608298467937126906812841897515380878859623172669799117601633517832666023540859752878212019186675202293286968187125414198705803095316425054349329549897118447062631723106112213570950177438093837377383523164436276282518106102522781156670454054533623718275902217577631104770845905527385093419820307982254983095941238902945310965223321285616897930864752539902348249038737040754357610507288967535128849014335350012885009730877426468989979837666486053105284287579472445871880464412223044017438348133776291421206661285517874658791806946959804044019071090445654693561748899040675293952423017630691362105253224720211549099504395752701582305288792222395813070672632623897256285294387998087734031299511922628175365198171818764478301407640313558538521068657873399593651552636833187483824000813534752701303109961467339269398233106036547996535484962582184192606153935316293534395682924060918042482143593042049952952188977842373455516351573942614001266456045456168405117552559522598956838875461103896539921699936392299329572743324819480661519449744675113719404676524553861021631120177881250548603532384374166795077411848188169838541673579821517489056386830299941029272849925898142763434117269950279638101251598368054121288009507756323493471602578623274825079903684020834985994036082958314379342079197684247089416899162517367853163259952714764919167441369209496519529793676550430620569226189365448563076484327014119542777930753812873148722524067600772945335652339106949340147592028740281844951275625924470348129025952376892046358612389302335096557750284527436781407519131517909228466523060822962377500377369145754327695840215079135263163352405984956810511227941283958644922546355360876505452375408500355104663911054178907371063628466579317161963518442248194177355194442670934963816460301701934088050715065133062882288912185956589543405947882919063143533864314143170783908187425241767608398971120588534540437785350501750133006966146964420353437507236105753818560384585326262973507900398563475721228261142725624124078434673149828283644486698295758151046745353822250780519182857964826112890629493412166854782546932503763106748830105470202600221798507967824527010551407996205145990113640334064289661565780695594193359745319292950760025572681629473356680549843567020384403725711181454172972104600318060876937674440613875340139915402008550388808684325025146125618402881994011416367269793820828633023074048271897605784229395811250749505641698925866879075460440190411748364816110181253139000351715483670967856984303232804337407809522222997819888123771912508757321465481371148762796516111129961397990424538124233893264871988993730908347184149529031239400489182374751969776283157646119516048253625498219726746607542491635700733831247816790431312066614731245605795118802301841511641111073884039732538246498665053663259667900176256800634204845352336920756121214369508795352893559111440047341783651631150844727744324221185836045588787500406249017380386005264300180895285331489402095879510766657539129758557956525798831909062295427082996025666436795870380966619259068917843525834325944092935804811821157839370353874855976037143410424231182738058414053932044361694661550420661129116514539317996563293269128844168223125158691812303216544500070049561319824071833820800433746443761276147723615392163829758996142118287607644499686471908103605336302730768513023830905717208664444203141983862818175957800882058066769358463312303797948223473437583827196010804012649596672162229931375640488963739913641648227461996092732043991810461893178787522550515117105256928672656326683409317703131614141781664696780300710228528498275562545574178993499786593058453870598797294467743267781911753628531092531576259578412332734032006038624136432474004435929810518368409288068575219386338633920938484408201966350814036356280662839113546935008546587618821189694666502756815071669479607905984213500900362588999395641285771493492190621428601029979059016291836242098000738773849307967137700224075384345181584406796036953034506727677358667191070360078414279340349649446031285512855693043076715313096629431047376447664837800166101253440774006915546724889928842719860585527980281654219194701290991644882848651812307847155685270644472257640083021129379043940113825194922949836661294201603376957228211235048690073637779943207625164283495756508666648894794792276274533694646910202981811925499372697612657774086825591351786315373998478394460988310025372721909649012764860669546068896213692215015062232573497468270334447113746688751429351995332332262442402120050529201553600671813568441055210925736188030824146734943674737135810802502336773769383944148822737714521358888333759845517969748486459742861219451736392862646649422071478090416980680262755052675840659975062515633176873187457052791499092940081984206044596512292020438868741409219042129621137185636371570660185966454959517135358559283066342767371778846255425309164436966631230441522792223911646824470758565700137989678816844243001763983381347482874633902867534444191061455524838164883780305195187162300144686172188852874248029076914224506444410520139502820123019616159907852155929480969753409093936989791283930053987950161838015491404434771858810212288685996464030080942471735872919836419861892444655636903618718509395116750371048034442071157161087146708254512705474416680219072997191338436838190854570549334287486649297167816032453163184848344435621240812223491278335320816912050376665017439334623584004616961501047913981021197141235955741826659084947694079739331712154659863396086637835930370002756793546717752212494344120245855447574933054992313844038450946441873378560911201043987007798755476857548632299668632693227751443283638966072715319118013892515502211377178902863133531522913683179560083308420323684182728344674045132011905070172592215213230528242463453719711188725184995381039468183542255030965109632518690486764754847245043381039573306562999795760729508700450204602059462985267898232724649036766694791304117959635869963513609014364461875238443372007827581135344005076279005632179552317630034298311293765742372738679113797380918432972466427287988891401110769893390752810660831434741616062843581981552405509715387647886697275272738456332815619992980849228941796453407767344689797502647215092867231663987610653171655386413695432153623013303330184402339203180573391422773962779400503713170106509034595699939227397994152338674486936490664088577539590386505121117166881837176761561632329497263183547175079035647366608115771148222792661759781691366394716479627798751157631104203724039822675844022150312386597577047852025118171972732902714125306196706449176135818662729000347915892368177949228915524803080043990338305137745145243593671055780226414094448795895294226465740696226685798629587349021178362440295981229181794892923706950221816289341670379458536437990742297512962536617415738896302192062600231686149735804757694305707648787218284721444167177195854581187946172325464535123824598811355137281857492522346066157533073436851270161880134492655645401061882379770181779578405000353296093300058657438641101889543329948088706621738898409514496317889658330738222764240160072268046408984692841053388744961614282547147234048458224642105394569163335058270287866535191387702024972455584124613040291149819381686693328898451914555472056982813916505525973544470000063229086395745492567844798846510498013611218956999746161619164969334094808286621149902891629793574286979561208272082044253873791472802840240905440659716805499873422949045082705417102246737671887659643049158832381089887098570999779527839149056830849861288891555865923148133141323038685316421776244852623590246993420862035141892905554517908932010962028149765115344961332547410992734709760674674140937845287796438914043048180642209728944220821856260080278865338781123841282363682873058486786117773512006549129939975450288975039233435217819444742503005307863400468797224969710162291572208190015873219181762405218806545384261786457058554004141237635028144997975854399646472650536417162262203341410332118703961967016311163096998009696129658466933705199407503254442408972482236954383407561506245657403404205704688224919710965443656156422422277969981030699219110555358264144370680180919095451031380016325594486140765888603011819254533863249100426903937858318544882665553572929609710557532077141794002270720633797059270229633170196445291119877929848879445554086309401044110872841356455030435640603827468410137767337205317212672963889667727538910950872576053162272264090462179209372516577246900876143525521370333920934563205236417003599155061853015668706928417155512457180153625062512952971293211256194270258811734112657194960639866328385620435554808078599326043474488268788517299959676843480056783994112112288243405939308297867469656857760567875362230405565822611225437594648437347789043339345865287809990486198415025991631415602240984778345207677833618169830622467400377610086180004210144195854686411355817947876451779986910081658576515521342424427838709949349758282610934196324048240139895309158400942664732183417731330136620355830128007614710964551115644879148452844209369799900959252634851104389921332087090873760781331431265362280000540337735321970086181657141603371543032233292859537336404238386890641486723583544682243715887564648600283961788554561730265325480419474916102421120411805719137188787054960300320008582658610756056078070358024963382175186566095701396331271668839450848070654752439858253665751741033470848795883822450547303273966868194490865977039650154682102187366652340780220872140543538117166230903636042121322641920737502211817702723045585388910252509985724953573904152251650989364456480819919361288107576465299269575160565619169353561466469643865565984108077842383600271149471758685263685148433263132249130607570465112182799963416900779348639045199068730079033045765700189135028606460578949504570638487025547981050353083441423627945960559245495778403069595107377928080295838267503126708079019765633651248753309821875960269803159708371034425372577665500109530043800969710418456952170460179954758339212589821528879271995191598152872878330543671309017887008278035703962447238612358825981278187838353398676792607069514853092714697672727779929504333703546495340498381321515140849082492691446293777975955696729103929070056474796185771431915272419606594166928781545933870369323203659366346048005437911562887621067944296270703758632639870241849827139419101920992120845349199417899952865382973496477653245607415831834703050215219989494123640779363221287011851732464442102528529684280059634675246830223598435200348786435906272256979807847286702114200591152782820754251983146555128753620686292400193137284300662353932057627310694989159787600929144037755515744750869927815006461224338645988876503077035757869206735742991193085592295265575633178835791056555161275075779194925421595195661563947258525497304669963531267461570799533296776008844868012784919674988474432275119338328597258575678886644430255315193220526697996654684400524393813490597265942445512427724120999179722329390239847443424049478204115448682488661434016175000407451818456441904231279673137753805135298850487099020142883658519474145374459504821103532846425827196443738833533586360938757837209211394908426163180364638964308483039332779944131033359160215102736925011801765144980101070373335435729036886170529731572175363956602212215128699736678754397318304276469060272405848697761789590636974170321777075037124298493927610021336014414650895490171203578526167064481194544613643258944476850450897038856564810684985688317332121196619188471953262033403151157357330700391723688919978443762028830658115299426162684111387699420809633923414037366068495054522719846688722737234952631042304649892583902178857877378729684352655694236966446594705553738497542787460491910359049925771276182651547242678867532295563993866972122571487082291039917524052422063469138219286639961483147036955822036696044889170075699374030176888833720477553527021892574776825118446315786822608960190447849275777735892355565271621348298775532870626855110326761296392413222109023470898251172489612294172754172770823434395965689628938866612202749924652184083011686612537824779687328878368691598346324703506232966685544000305621557217499493990215093618102994421155350852975429819063772807937880762377666638679794175172739618210175188148860869568218418531348869229712387567101749332950313448217922396120779363872995861166914980826999896885368304592745590214174325741684141848330266469106839121308919247611761014520183236937912915458936355897130449411006553677442913328567429716952821952460011313125553473720669372222307463564971979151550212718401279534902442329409649590735778098019806555392567120271303103373369121827047121530427509353202953295952517596930739751573219574575540332465635615888724276884985814915564923259447325078616583855525702079992158500763821461763390520158879390024011079432205805113555358444988869431072919593749256490396295986171983930164764308334306768717024251643618735354017018651942398808212010054054922394042686680332148123524259267672640190320998789948240844092926496619271828633910860047471176281126603591606496300947055250146668357898045803292644663570800191996262675352873760103156968509332489253682115723837093314056395717169052819392425509436327117955774320945220046960920712760955917860405954305348713118328570483972991290421042016826879122091828667738486324680269942092151558856555342897630215648543688085052237891202640933126416992109082122169076899553710333641666707488866833437180019155366041884765863074376207011793640870269880571237254728873142488788326411630863548649103914881264530485248211376611203569294263415612756404526728750542772254830458376089734150400911527918558913905339773802417982530324003476083214540619916562469034333532286174677012392612811134506505281678898401169437423438333483473373015215553857311474685892975958551887219424831880412484147084828992443512394111232398790250495733424526034341694721021567470920907035767573203524081111082801181215360395168094852326023497348899433044059942447590771123154420834179892397443446461994365696360938428846138099612866318301256004728016361556485239978410907117054245341552673521412595588407652386002569221272578951556237998345803473178665533380675217502066049176895384471143852369602492553577099263484944332143889872697435331454780928924031295700269188132488708900031899885090750632467801149997579053586344525594700099653566568581049500660851657273260124182172132046264459160797829411141520599016216823996186256686685969488998355471120776994255665450486930838148978647062037413451020573657202438768368963720561284531902813195073425238713251229084283002693858845026159489377119792965273659968752251718064588193547499790552904578064191542150705901227113514108218010799823384057314932746847703157010329132922014107437478504884448521526317140936071462207124556703925772022311530372104030297655775468952199214257818380222120815214567773710182609633829244961167662032971755142405669585840089221298709913910884768936404557614279941347072787258748496241738802555054255807104330672996475996212978116002846354404991320866114904296859124434564468049146778012919970085530994551434196982355964684303828041125938374756032318257929505242334952886307351391350596990457898856949069215848037643313395342716574502397938880572617699780170051067890596748922794336041182240933884529514204806672189614577899849772597410018763199044251955450694758179234547894246958109608976020747924993236665023848931004560054515147319333414428334666632928399215322905059790240509489080395479681944906918867139129636137815466293345521743573132578183614738756006138929602979648984697143746793071277985105114594951786241951592761297488033547073555304265530081753549713454840426404533716955452310026582450241896884109209123007317273454712289578738724299291016304477236780383546854334564913000704445739635437967740723056427900964850013238039499736297994486291575215837912343747691668278549133709784827509060413429817140597365144475902783612131294602741776516486569094303148777518772221050221303413854907361761843623887953381759754175115344687884381307743952750843027661286693721230269254409684221488383630428446193392474896266318092180199841916334481646565584474360070031543179367082616381487927236962049078084973685193715837339049704334135765803869361445047062659775209208870626681440256413055329692398405560331904336932364929346389557275346315055433116568698553336085416812508042795611081998283450885620812239207434631242237222908169906009346929009018631798933207222518136297442617950316621237371767196874117710047199858500094091082430034415025167653554985403469003035484038030854396233027706777147905911939372864779246255601909991269192626940329609139369921970981409252031274254481476109950906119307262391661232991938352118428119994941401210480778297480884361519986937171725445491005757890765620517366207569701312477101240762276250233818823781091174399102837516148574727637804716894549297614823704139659922938360444684261928938357403613948406158660826372806588719133175697845715797097962291717350717286610458373744325546350546737022365928252513050985989291862851354953130086114653349602626495268918827075772213277201346427509438894205853471184174329509203070769043110479443409124796659777929251714352833143118636275024967786577867275941410501572145333650666308603514368512429111490350152219289091668547062353637795998822230505645210960164592518177442492575976471042442693673144768065465771251553698599899302267322191811254736569207023171161618176657170666307738770193835891803516705055939781773948921500075031146669478432203657269477960919916408982203808132051974518327814888746341062943570855227707402561802111235054981861301233277802478147193517684973918709463246613501853309990594671482308615754695889539859534892236747368016121017689195264786669568021980300929852861227174135072276596285081850728658127749128148210660600597700363102034260083788435016261993546558255409340563243063039031636563028821395545136612338626175855596262913545769140677215929630718386865194227096671531811503660977652207447924085204326330318249628248163602941314126112137218941223790420703089783118043244301913868683336869108503242624307540396608551040982932735680400487956105064044886955573951145060364100046020428937970871301839966490554082718395149432387081651893404053557655796103867829172158766449931113009457441766663650582730262771747706106286593956636265190948548441615484373291688280432197872411778682284455793263378424087949599012481362041364044838247534968393826526113130062700442457575758126966433842407106692797524343828461168173690298717287410215111918528007819287638766156691370497414379547487750984286019100105231080581993200776082268190589793744052256227528103089499140635399967628811198026980838171446777593593998421521864787587893482289667923863670350962115625627434253233297193510081602820543663232565179840857271897411721559238529910268094958540979000240997273684387676290914218301254975024297297223333125446937161457367975635195991654283032264743627416987118874693626750095349872860350497188947325782729979345809757599719342535099099526637730267586374926176664481659349010733719761829829973871428098234217128643029557234038334647395051102986885252085023581493967260012044008487903625545802666389927366036005259989068970049019183059405603422653457716732434192094327292856686985274146653085969889868988883134094140405915504138122928996854833320728151369475314339048267930598755247835890539482615055717971374744203185730105513199430058613395058023370198315218864510517667768669706223069590024818346534230716103489854960781815152228660526927970120841932507552485331577944803218528022437487531067670751692133499485352649485997991780531685809422675111699726443151031304670244516294677649087803163138586049598751438247675368413988929288650418938241605086519957211725690202169053468932553804335393063770321810119937617905428069414164587638849551071446560885832541997870658632661572377738030524989588047221481955145384791949393673514286795061802975595210728898857608339613473340929306410799963419603907118510852062300127891981810229088100117638731378614482144681642393675535414989277942313759281545870645262154683574728369253398543997305516175272929070542792270571629121488917090552210397996338544556247635654224376430508205489936870199114672863605946495992248507931993760409008809884328695701855667614821862820222273404263991995095813241303592281999863819340884657852161669557765782430538245448788135619053978758591553963572330780640285579353969715089714457091649486269080126798606513629369684243526374811514670167806654619070030671133018951007220766679494481665577686348431823859211007465467807301684809177763811046140437960739155530485080378498890604754727585131020453388340142091831694605346969629364914365223309287959879196646136537032406787317610920395187324482954984470533225568355283677434621021711810776785778916277078748958548265035728753898770538275271940297239295064822505423877348996293769122211529746348617792135840415334220542551625094930683096284643185264951258954550831130975467757763645738510546794394327138749463701983166223830760543506073586922171423464003337356691729802438754321749401105614176871041735914487700848992848337467216237749924086695665718705136862493971898670212017278388638149081748847579033916497170239584255577770418150529557503980136470271541007547996165381767448240707518892796295197280717555377518922149684724524483543822163958949641808018696590357724756794039508992689064008492414448317657081304295557605577707067395440054343239691146451229048097352167286987827732631260313897693690959036839234812972347034254728078341849010017356168731314926924082876973506956897731972062172558849776161535710507936925730022116317448747382033059227817568413656963554044946054889197693449407494621269484256490190690014764935519854099438659958110355758938595399402302720835692472468661295992968155490441294355944679929926575394278595118548756537004194740533885231062605856250239264109855460641268521260132826802902037162722715902617765897160665184853405832660823123554842889326060901820346882615985309526388137315136646761713717124643182106651941518850915798234317444065629003966567290551471763491190778249699732847457088994124859521067587814410133147253382197607240907801962590601284214348706149896589137493044880218276941371850529383999213098148434183024482798576141326700099880547791832560550880601745715904903649018730026929723503185982112138520085857039966118567827403185791915104402867034229702281887528768291175765089864805546781601631684712670767824642104801275167360044558561497455162706050014382511584044970322603035398677310242557232885495987378363458603389531499221090802744601984490520597332354646398139224948131323237935507209741518063387645148679247971236528061108121741197913413743368400954940600575778821963820727420074182906599346646021342934534510200633568884643319605123962206538271472468530026887665605904424165668432123387799237332765264229311589157430664563289840808664027589356853774575370512954883341258378960050639927430672887132103114686072680020562122343901009428672144398022892149349810538863761443954737096367657107229654299947865829422352725822290369174881550060073770580396354865241182120151574311059631622012790760459634559410690163539056152774185702421103551354665721746858110671360500906738429174048517544934409078155935902480193071746971630931948038047469382784447170755659814408420672014595645760578701494343342767346378192171953277562846674974491183295819492513687549762390791378898179202605629722188124881177876101110157156741067236257257282486292108746446920567934817799774393728824259181206456896014018816136071570615005012745151163934131332653198381487062142495747186111689881053265966227715215791129662745614980203871347394527595576615724310553871593030255458851432761891796343851979729111021729736913310813271665706850937356394818154357605723026089831467949507543105355685763602078170450367186002963798605753309160700081632837958022954932741049216653253814726255964710905613021210773923095785743016136884709199600431888984157772431916812465499200619239700350218386470710439443480217917027971840947642226281504808641775474891582937740899578813057554437583046611072279924495707286592308111475839212019909357535743706388693442110250531400175710722485940657413855767140739932452635122609152699979032845520352998412430525478271422383645262702231976543612716542099120050129742336543490266847377853104401899712636035699221327278842203391327706235514754355387759804079526642300412348740509612835564034322483534229520515099022908679398423544028062841421749736982040534509668763956788201736748271050764952266200969857903103860440934435434735045896891084159897190715341560420592059157731600343950036203663581009558589083111651512280818933770328865442680867583904673404314315678952326705187983693494686464270535012369985494664418560998334700346693212910437234150898834302570090585789464222251624965027117849313932037551569791433878181868982564285187229889238938170545041116170389642351754041132031393978315039885910870544472079016009964078376581417021645583325473769960898076726375441107723423206776916970349964859683924714036717829581957312932896618534520177613376352198098503348711754201761363942596981110915076017591245959026235377491787851737557733599513067855858852983257172167872935077086793643683259829472889181783256388213198865122940029779737556589791307624517049961386084646673961279065880012465746562981190888008140571387297682514080191407707827283262167898802892540657581885994168930276714873148997521272453632524915255821598030059337234183124280388615425419946734028492604267965897899500726119775935606071633169308170868113633410869673387025373932515096537994916203277734598149543167622486529919485231551542861178519231681965734864695107419681088200925907027493644553645210182105260857853448646257593911880570268453192665118478888205378552790348483745260970601848320467406968171690273574916786834491448872857068325853342210072802893687651517573398506381766160037630015768975811256903334804756013056157196558053658127301232738572758044157929838253086130400647371579726895355636410793492763950934729362201661086752600433709129199911337843757659353112301581716619163515578593283951101196268763864676535717435835020058119266373237188955002291944820238392877630770078432873140696992792710988913255933271527298358061581345503238833161924538559990590463053437124097390549267427981156032002496469806682870240209200724465039963341021824237967703502348659888703609978709441084000332754877365378783160938728123220812991229891554271387191583661815594422569369883653209753520147455033824482792156245702286102632415473151649970039881002230562426280471809006322639374426187026255558295563342310978182990125603589472706210486076589291155169408691203304217034262471703158248838004261586932473704847721741868971102855190284129012584634234376609724781103399599864873970840089809931866099280039893764595452752875973903930158218330237908762570595407433439674256962779637625635287290369356714643811085917604116382005723093552943281891438436891157155046637333657653467224710421353630406902415963859377158090990842498093773310961555159295343460624411181251729887714574830613615994002787848523199889446011159994024292899929061642700936291425015487538681620735690555664115842758791727194730470317520855656777645332439294046645497463945444134408153736008399179415920195980607178854326897594347632640899186135002044158970792366848298995656365343477597240592402803220606838878727793844735881566244237600868374152483631608543345199255147926523834341646836106597765405620642196195014557503286671663355766019683871954727100177097064068813342334966264802902482064281536675339459368872529092253983849902849246807182566132307481970307743169431436724209653839061523557003666027386931968233394167873621623107902072730110647833326089835604803651583770320085849024510491421305011137969367563671657138741272738785781907919254025437779274709236457392349754681703989961573494944796722115209211114612182684283488661995315173743922281735946512715580188480763887806731415239943493095718400801461321744639784118913668854880183984999630366603555138054037679308869641293558078631128653257950911063747499377662861986986388190865940428360036434629109171751864515719013212618917270008035044706171604424564900733592038758250363161610853342635965386580413746490676527417644658121944487699932205425130561365755327587484334715016235028366433380125140557842720689196789822962159955769745537044728835297379516526683671727703333791132995169661268925392061683320340435188861910211002346484043822247118641616193542530752204696615831995008329780941809022371952389242584079780491618079763574137965155727100627602413348403813689834425928515633286110099535110043319665288268539797820658912365228619032915313112145701665865787867784029650630113184982995771582270223730427506630571177939018038659057210730683561983562519121010980075762113578699749647520362062356513908995294419711472276070054129481993165858225805770536399048467410654843054683920037152158858899868034227958466405428748187679932975323609093652770113713066117325160607433315073625659413549536592533795286723463487264664218672340528802073737120255289255742831025549586082866866702118042199774304063596369052542434946206826189017852962485610672125814716619265026867939880866961006339629766235611972650368374105372238220020215509158292780419487114398181905965167655127595878585084219814496760568000203786517678734779098875256674252977253483492251200603505807632188519437487174746229827151045114676060648012232551854835642389646450138030145970893554188099525853117949030640064225386847573576498719869286323550809912246246995382399535537749917941446658782473859843318986326304046379344313454703677271118455248872731068596030804938558354071810153084990170296198551345449963732446115134235505380968933801562886129990745323435294888212860692533576378087343358680313319158728273221770590339623259361317441284832963970306799347658416809222248794208236693835459617191622862475395492282277433330287892206104581043447098491576907539668284478151759793075777998927989283812226668334282692769794407960214822746592225819473016689230944007270386137606313156759846722345040620676317020823583456332955001315767725400034783283437357279949585462930844839549015912572787651587041686951741988618065578289991007020557167287894581091185317097989723732765841544828476223317454522336642119593578433212578935840408122736464852035067425288794510442366649856874931301638314911102303467676531698160721946035861945247079146247536832077120014730918531850403233886757720060793913543030782139725744303573154963962104398127118818837303247730027723503204044363720952497305726468984272199592254250815144332750049543447592427935642092215683713919236181638711079210597502504005666472221972961337178908866586854323947241258203840690394196449907282898848498119152508289325699945023819609288528433757979222778816887860055433136141449663432958664236898108174069387739012578676297728492617976158599842158476341643782979835323872613126294651566494541053430494235703188649070949813731612597885098546994435752656214673627474190527356060681227885946542516067440692029729093203628196779426872653717710398274530420377084118979698809367456533274584455466057501548279257059969974077875587017199812564838629572509268527078948063639730688616853855526240779711522642257902739285066451766526185073449590981058478058290592397623229428594014418813659602004254280142311247755713661566138672522795592376885652022541891875383405934833628894783746533180431676623751417473755785587730461534858800814637593713105640377250681079264467162911847947891916932385813084991374994250696907097145203377864669491451107524784442607010343489332694541442995653259235496103233935969326720586095546909522692025660862236373156146357717211756040251387461628585690195005477810423326484992473158613429732763022638399862386626782226480923573126435787736869299822339072733784408150755927087973468531993257032527401387022445864878817588275782180486798952511040939580703034995425220422494318730630799741935177943595236165692536216536618764252919690795128693079897312327366516920007211135099291430501025506565641068234296225752354793225307035406766402534241697128590317763226324846461393094490892088303184713053762892466801499848383533014406981239881999965020798945640505931884247946812581240014120998203218514072486257924999910087557649449185774548205802987800021997575186506271191675687354229298397742377908225439667598710134493377925434701524412178177318037952654818072832415391926937901332423616976828106413291816531035620247775708434804295593384410988175444562899934951451919117253525699570365960263976852367506610724910642476225112701904826484158421123917023608241094447491497808417275606254524967941540692853161505953386353364610912014986458431016782194849598857777202153555354957445465920664995277363497006661113208536550586542970675814875649739956940055154094171469948706319213641284287900686011546465520860245747993359031251026582669774048671766782102797673281120781876763246379116737198180005636235486188193872164534773179427811529472248547043000374629259600914439541594079054763514032839422234092982159363465472724030360105275610531418658312940575600549509574611977238907169950830258335787255273563333057992332587265437839034242104320419766179210833633331261780270880157302041828407793201675810165613177295338504663263319390019952878530635131683329584835391426854844323839989531427025075616719373183407434039633178342303620659946801063199558623163782765143829584215259618368714020710035076684325012770426289511480862856837790616043882882354468782748753962594871615361783374584411998786007128729527523031616188502719519625273196273153277415353475723497211286985639050817936233590214902111384525264031587119902995984479478326631031648105715740420179462945888208149017379106232799630485142856412261080895686665200778640309136093643957673189205014405900671778995722221913109750573273501928846427822932443883067233926590187834554900006473855264618540252697875187379407560091022280627539892083852433436432359272357550405757318556715303229713465260782732296522371276542642663377083775098695795643548229518588305557942345030630029375082341015837858832055099126168448737182709524029628958066251391054856925335591621952309264281920907217005957902423694769660028603948445073470548218652673047259650054027444133086416411188216363433572173177686135675501729579993941762563082159855867043316431841053925621681197279646838461151109918364325117117246036861428113185518860102998447438685349750624369491477676293317506210780632745017070785866824033105366045087199054267500632848569972883130713341817850321228103643519651665568928292148358400689868612282660364392988105074025880234260473074430520034541948768512339343919515974794372949829781990696677924040910030298300132362203777863378389196961701377313597983212243174408778454103707188336653853042676560752782425749576533457046991067811590062483293988603272503780095236179573788835485821736019926949377363181874334570489187768224091727788120937809930449291844615422398555740953889136497093658700195601683260853216585392165129388900329406585788983505640503571536325743699594042053829895023323392135380988917676417300593870526015467406421258358256549457325354264555601997079825417080060914755338062279845479992024004441754148028756213261701182809028296370421852363075706042842784205945005097749580003334073440461792073013676505287638603472461117135212681100541923960819204580606950036116543377179173589347688418343637131256108344945042994478913569108101641265499920520560509016804872201818344680915526940840141921912973176853552560700380962725262646598845513991592970454874713160759894648235213093720301928787031651647158509246040652740891696707181875919266566478276056237883304315581376062980553035524152114792157075409969868551048457153086725468463387752881164119512946405412566430855268353639942571363372690877414056162459956404038056391202516616304839263561079118200358547010436599791645654164860341539857663280932383102587463341922426996792739531487536570242558699372743203548736199283837519035455298163838341360054844318722022000613779524401473406092495043316409647580975146005571935512679394178972774675067771418972776421104434377084651125199270331870184350507893561235812688757611572427937728556469544032141529120969163494939457451672400918001516968676011467938396853998623111072705875582282151654164141140249958512556859359033340007028441729801705348571482489552346609245886019423256338082281280355804886177837915298905734855983818387794906611606021333029226749449751393271576882115000706149330267250746033616393246225617188131730750768671124354977215751118426533034706486333266925205702972074933322411454667458050205925690788493273803168163500686576606602479240844057155968891682398113211586084270630319972548734810774935928521562181323145235673384124062856538456867142022989956532750645147213096775267639747721793796483472513030513694890633314566094645872262356761131682619302725345165581640320475660891922585902325911686564865216826739851207726828893204197997515518756483037054669990207607378651982759509183674503801130166798143644085343726666555354283089442900327140955601707756209963302498912709463565256455073937128605084688971027761509289363635564640039381923897420889979350750064581400353370257919920205305418524918150237572292920479486465730890404914938155357440075058268277003436021235588822331223338653717797968485101375745475914728383523561135766051815444518909263829647072758850725642085871727828970529070491325657128908532610037827172380806107019460692600831818538566827146194335480526303875743968952902639360139978398175547898299164386663998026323257495975764891506816628750665554993632400531661616155622138501157873815538728821888092775901122474809367108452189744997579755570484272827982157068606575401985486862097894333417163865262981645753899684265515199210652091220452255293871927349042620466793431448063344256883213821009951495653570949729554935036762259685770502433747736643858631571177149635185409437538964261667512368297955706729987828216125838445084639324646189011380012127835506001283881513570871946246605046171918813217695011864166230321143381126705625194207735739187244617501218977685782650912183986082205218037521101868456384733455511173588314735334644311498835882799724743032984771328994680665793867777771572063407070692527573074245314020284139734749047526873483147126669522202632565144727146486794155910677800197642406392122685750709361610957645361824843656417139174467982421743124242120442420398171737234043127597000125071336956079117821889916283897211856250998017917055164238613936481710524384196285040587680992820341155154665565034629287335668376422583530631169041243536696621556590652342445494245469631612429182227622636569889236891391832227025673281074707321890238823019279484180691634798335856811121249224818226263893841763605424752876757598248851359152991119931344364826214141603949407476794635300301309336626396341570179488510619685590929118549730590064872084792275633104714827154528296179459639606553154183679932721100709078687734388259270331773885184985881480206025414366948324510458586611327583494946087625751070690552809833801825501874969483902032105605357920208886036571825869162001141443473013574444309320289231772790985445552436629084445223518752158142492589186034280701758442317324109599191182627590466241393225023191426467780772514345467643602585541430727908114065592001484338563556377619646053590213997296664337800394206187191837411700281013307123119299842993885565604213794172049537017001930130948039960332209870942753016628071074131715521821430466609874884096650655623808265635038996250437796355836014695748413430785208278514818483749684619021910111854035776455367011981423943529640788704276371866372172538359061720637210477662994182767311263791181410458637147044022168603741276522033491301942121261351189299980090201702678170644886869807077942300357769063160476410841109428137418445560353265906055069029527589641584597418586644861316636089633038577467057323556068232376442848996413999600105382172699772893625821320016318077103255316600978842532040546453532261320535617716358210725126585693427089994707853550316670739410694202375864897005139159967340030215193528028279733013517941211623236504051060445671127757261401871884781778838987222590810558820922528337728614980828238735283508896127887305332376184245940892046487701098089175059318538420676894220480937262239570874217984650728879378796295834240765365517075520179672778306729422400374675908729970750004722193139817119658917698662509722732959454650095593846724434299448728805042587959875740583303105814823778100774083295465656561423900440632586984131099752990514104841235975624688044013656848001514559577534068556349153251370572537835442674457052660584673266605213917415764790463787379463176657942910707637782151260531351123215685927069467540984151497006920108346306084313760218429765225874046486130918911209554320560199691212307868622315905840478675644601498311235858023519605507410753985778459292413789817002450310373453830352350451553805387336008062239717506764336125480013482357861206435248856255160150137260545008089593632558420581326465367410836992036913117489830277437125138839421186099704139777059057975308407641498548026337356115552465275949503175428767877455540380212439613438090939209010874952176510497465583956885222477062145654406034953825113237633673530241548596926711333005107169133036917012406439820305791945358765689414627990242814036455157825841619296460489611092848436351887654114954600921255380257066324900391758292493880586247217677271802124287121370925192234051519606880314696689673146772072488824959845201389171717115898124245853957948001652734454608472624127231647493650973117205850518646939912220315968653286084020801428681997581821213240160199789311116475065023927750083752205737983092375052930084683868063615535133050698954511306528704016701022794869205783455309382486484225427197729802372175233085572221009038147850255712492104868114843816512912186090942617969416803263142458359775212402019971015899932412895006009043576438008339887498909323217888945172684170102617422560833899061928556962361072519037061239022162385250066436926009404236806307187082484579200145132845757909403460009342778486509973210961876024529383398117809489721932128387380322332250639502086139393167643297020462395186614154202564733303165612570562140108991065714061635396426610554312368220719075149015724199684465311162513242322561170560104232597288961812399230380526150830865560307622824568991897656342693441791304044179444457310086982990537110541430193175121479136831084785117151810765012864058461513507978271388642284799852513173459201545486574953079236642601308136135315740616742626654809063218812826123986129320674522599347116124096143128851676877529426082115806195348402480052462905858530545106842936119388544846662385739699644519158130696357915172952124134778727260679096796344235256833183999134994692499995112132826868959333344867741019005643558067236334224014009664748539155279614138394164001632952698222068076140826143490121669513405593702343664780128851577948055423584110991126146392571999234474563122107648266776634048710370501832480012711769091142912869124015052109057719321601715330242742301582246120494829003762351044949375059515207092178856044239443439626551271790065862888207601967112129433081176205623774505063493900765347460398850317862223956187207691632845837723051105484274204480887353306872279899171374505733570289435296763257499528363834440331100924056564910362843089701608758569325476796972767595190540099355489905265043009475326351452869499733930839356775485024375375585778926523025771168799605549875500074393887786197094596649470627081836388888342455368586410479213741992154606689708442243142963258293347032436508592983946558265465567474345617357960832227897300771410463390747828881627000183631098037006363945020027790518555931811255413039606348683295049306597528336899780748583574656875397070219988918957137575331162744486311557137167932237983990540121201587250943105258020624817176646509422166527962213055031756817021041853764550899956956776008865109351212004323901886248182161860618047576516521978843058506294492401216865098653073995676084176984498045336317018510487885516484545974448338125622140827509924172389776893075467608021026883138522096327115843048573028210272092643523637397392887767462580117157886580363760955380165969531472916142742767716455413389638433830039302143591862317624034620744811612027638066588039245032452867754126338999195827517684146028800271678978831545531915742914690074392451838122216154543309428308252134438110461345376298807759612478963468644363861210203675393673826753530168941376757069128308858885648459720324562146932812028450150431481930728079379680313985349920198615070699315230829625708149006284508958328092769967314361602854899899390261798157305102075835222613308858045984642802985352804800827849877555944879780044504273053850637507409758269244600764657442898835203078933705094490346033431791087668975536284646168045563759876920638290115203074546818250893051979146680169778579961797234115522237871806120809814414969508499435762545082587268759765247131051834627686554593542991246855209355415895929360776170346561987451826231959535382129272298940350395506668975044618929239795009335198095965049808199053515733309306023189236348415719116860489835075297621620857325746211010385544632713404801069703596808294472234181636559378677051653843494998624962936156835916703352800832935703235468019772891716748341017112555116152423588259252369685548616757024970898741562421560006789504807961313477626818424390850026667542086420940016352800272438112950888565326989864165124385637674079271865942532914418602124568698023970009329151444485230281981472644306470367836275396659325746321504311203408843159229519886753741334443857163659717693179231643807435978037717209643920467908247802226144433387601178817278105166097946954062074636480717388279628398319665152986671249662935218586046904093971092209567487574425805374923993709120115518002703512585601873858565765432260428565801245105139998939981370912280997338804094177082640333215920302676269961029598524903083566835253537989447195738130142892807230681728398330637901057227476402649038205141565929003896549529891648275129788444066664740377446222611336288569033560020634113565728396103803442654552484894884736165604623468170332539026134888095528162070608153656354124466873829962457523713316200013908240408460902874562164094518285190630117116723662067425686509893741736547785238564088500377050581700646854641158573887257217421872571227299974956565092140345875831244011206911007116371159569924534768368595278275634662597172213562668945769905793856809733538329315090429843692711774856993474193414938117741377706240280477676604930865452705534549766417733709514752796267634758684277940572656286917053746603668229637426641428206762694223973827297926359307354034139648220008443575202882989033904006541255443266052655031773672638410776876797782557290602866130070975165385936055524957112789177617833847910141424352748961421687057016274745824645254076572489675536900189944871818022795939717689450089642087466562268212019463405203572880921169796176270232557910711252951778548295711071127398340894798841181091300073503406684623269748997985947839592614295504361300997687241254593420924851272025339586937665311472056779644785781564016769437662891340324723553161432298231862325510967154770631255292193941852400335596939474375453306343653769205490078367051853815274775384680142685277222794232269667244196944560436547851254202401533621834716422526375552597572399321180679674303420807249892631834926137922145731197166027176878824667093593348685040995506191829452960312226316058841167834631541520907313681233316689550768044940564707820887466075659325056860713353597731252658439563939129704977782302926215636229351925676229656379430577843763404330337636103105811113674656306845856765057422784631648455139739890317939988712697570337085534873559861955081377146170594159720616786746918395749079839827387572033052734329594181620721376157357659355547196490317119804863360163349135030605224578912188439083273430168554463704814948954800752414324547046924706445476627527906795742014055736240472199971163353936643011546341101788600416965032694164952811441515433205044314965397801620545377770404567636907633695537756286907717489314882008980027882865156208725663075782788175311796593923886280471709388456303970846452711586476811034685334331129487359148435551611297445380631888337616186925888357255164858953371646031337786022763511346897421716105770646286208027633916107094209334405760877391806508120868356849727619399693494841721947936940547607454101656866077756042265157246505740324218834308258606695503933376769818418309500869628106935799729485546749021469344115332578575171705245971966780263424090644156323480007169016909468467505580065882736836178165942281267902882220737520622482355854253963706675766496351889614041606716952402143532992647429924282319349019174793768794618498976483675305839878228395643424183107704666298386460393257459268427516789746469214478295678482669597552944025169918552073195403585158742569967030795021423097156766735901601437767209269440093941907186397673632226100376988640859277945046780897876643791578519652460005382376365046962352543933296158703394323054162837369349880418224566445816438144043855483230989180217048596891695491407613191596128380501171592453388538024574016868757286743438587643101513441550634455406975659871337333641032894688195707264687426944648098034053088987112547746406442989855081451626925011320717063972569153500241057737120818385583541785843825376787891296020965213646860888294750365440225302925518619624637817624370654399154343051563092800978393605159165595323599645558888132691177646667240596228803169125695732441436951231539304260219519911056238925391102111116456200929070378632545987696337768946475040848041354705785128042920265107498768095924369528111907371530693861100033198253856526416629792949415227649214863448815918591391089742358467145399612320203371331355294185471757225856278062753405482557404510298558250916306537828795073062937444081249194370130710914784831113319368553091060333996423060351708366558309868478137118026304521127034288547964677121276703217275497123740550785069298024516684506029429152603178933936457691475601420044952120544814987036889969608773347074531137023410617613225267902656184112506311735643538705329254765057364152160367010334951471530027502603309238575550494372543652063417433112033831012199293684763458616355692369066110719707706913748667972394480360341162836938123364401305910663740681202266083801840010785424773558958049728141725693653622665072967233047390858942383668513794681452466916565841443957933439144626953889242159606228725656372645704960275929406624085888388055126240830362257763618340653232970502003033029917465435668986457901903715266532918207801388206047343586017173278981765694231507105589303473594951688742416566679266070251453627266506352820047577073029462787890061311742542311008256695869673335967480603342449986590816122124777997411946728473108636998589846493626773127425906031233023324636697223462539212111304574588473360984782062522801502280917620281087144521829714937923812089418801068889627720481423491180990617024486962829233678012917767653949126772465825426914943519466833747078491894805990004304579022162415651354209693658295790686596748957153741198077513526384112112938447097268925087647181149120015543371754060855048521138231920975838238311060220024783558267705632429991026235840991889446295028023120270049755880631238355121940937112682634315015562632826589641315707791761792656691233127209718134061408604359435516666115403995351825258858884766245663803127141023397724959233283372065999025009207243591553187220688110417115818957076596071247223207122043002125834027015980847550471448939185502932436277585815760396342908411093877055934052182050066285420571796022369291655464847772382829570523437216950522705643452681380973899371264690972797555384987239260545260289367256101995933178588376320291548101720967810993665380913456577314270288415134116948040895758460285151688196700581988383216840312668110512292872957027126295533654054401066823165909153685093196815539788337059840177353920527469710684371368824005589428911583256246546697208257181605209514181889098686758708412965045211263320494102542965214733314822741928137400516251084109353668999804222815547068495759770877731638367870304387828739040376971469411823910869635090021011366599037372941417663007580698355567729195970163686614749882997922574296483325863794590568806986357674131559371533496445433251261475648521515416671421670693113505817644040986892987489897061318596735424572450925049702029158792766753286129793601993790489343224424446038159866162707392676481420242719710182291254090115007325203052540693795028626671894507961457560966823293014055637671532206203561720131639537053032048620569398752999170592743560186476948550197791364736408544859372062942070935162356327724396357582734598994016746653923408952489357685137618691764855370905608523949020781086473560287617028404825556971926534467065168886228095800387428764209497573004160969168296535320053702188975728081785926191143197717676067068828030941896715794104468247374137403179910174740659946594689499130469599457927947480163149674689942604683469127169480843966544972600852907343995268569519683625680457820078972651676020761857301384038380515869298159799349933651984469710984316199501221148537268110723649804980748203135102782477417100998267835040399553598592093964884427439753338822756283555158961323599551286282690204127419293211090384286385164669107022371462935352771650705325954332193497387856031449076576552374233449425492670301523969588267269150245666371306162044317756604872386712158230598334786699396569963330999186105457676081421860318153368646323029882450786543040737814619387161743403675077238756027021353849812421578898553341267919105470945879694720575662837977667508024213008559668375253839117925720151934842618235137676660854620301176899526965128947268255073712723001312266862827681809740531933702302449746390725912289104623445288246324660173457439973582742013103780424126356520901957357092218241774155119142342104703708497211124252251112852222461466194622964489126011500101328286659877663850122000906829340594952449899015982612298477886704651246643432809204041542960259348546175833868242670137165744162649703557052076410181392987179368268602699445588281223177883019589359396229318290197309522847435550175130338436819262484122143640554629142189267987025592468631820104490357971082997183027358301569536413355315557029334138018288837720550358550548493107413118152196159190326974266471277186832416802050401334744890627869839738632406983721748530838439223072820222132470857972203063305612231363963967319741397364031903802164835072518270893702664760055377060460369331069756610362984971041408331876876303450320682657598671700095015528676407084067381380232363032267058937545760729306635199744111832883643539225933233756142992112310283021540648101721566681093317936828396310675060552308548775024725225837195261583500024956311526543017673644317961396125184239180963425375117864535580167244700312426610631251576900849558011184457842825378271192261463980636660515629923152782716556313512060986832028322446979168026268740349641694159554223868768616557688377048545930965846215277254102076678185429964509417125388831240598037261569671475832765361019974758596529257555790271284003621386944923843352600782546350319351774766920663366084360353805780197983675120425260562284715169894916641709206745226076137419707478448588867257749225609999382975253362757796746999071046496712717110503287034788869947502142160160851850988575231585834221039156170434167501332483074683774622073190322874006339277355998021621577049381088506588806878057547419327173700862365216647640020850367606270808746911550951794805151211943135832193928721715985829294539279933380810902622133032011989023029760936951368640473781809054835570484343115903987833226718356327131948004395616107321311969792571660314815833616794155932860600885873372643516409556375888040802590354273694168871305542491383010401417651559430580079902336837317809255256499813562932334267203189307874897624120227904461631913183952556939049325459066791335392748347695337119654145730759415277567488681186684920358964466518963115154086410025318448832983634563000900088992916165865280860630988660093572401018623673589589881237535272976378859530140769178585246220820005903333198567616944958558412237476920837823148108851858434267173088367459493059889470452038488065799668641396273602100399406396821558618673203506077549257185804671258612866244326830244014190675658411550357979573305112538214003392755867220091175910515379815164876712356868696033959058514605141824520500411253633917531424323977753258399571075126040806081381101842866640999500596819581642531767382237024121590879654251624239727817505094051537782572930126737735881811713016165937347586924996432729457099572771267925907848290567334143780392861915900294002035305854717861338952865652091389352234688344487292522629687321160342364055802941233229951923788090408743443609947340408646667205253344087340809829260346899341010602608782383818325560858949231372914325635408738237518315274515381767798047527887238066745064676536195612648423975216531428667865509708133336298754129777202337363042764423552603997805983830630460703519251144466443906214494277989481206167721544844161868175151560072845238930449780540462666627777196178026889751334986004253121632429519530022103771485758969108232855308531700459823307313518232145601699133928913819213542916545738028248050517115647360392952430203304534793952765002075849926267159464529003939225983687273607957974757824699688263430214313057288607523833516362540129078209035707422199914908034647515234397993516144262467162867408155538054257906171159099658381777821708233260259111942653921538359313804056573004459428915196699964497839105089332274283664298159329206648280755547412633686841669148176997307923942755068053183062396359380631598865105789467950638945917503920493605634568102792106842504252224205534897914077137929863018540089065520515760521304969133352644545653698677152102055853433248882857958633818439561577672002765264907168864500611145595412610130330781634611115511249739170690719753938944285276787102554783526068563382864360419514572018699911568873565791393352987263956148880108992530495163270518120681961719283402318356162777223964104581514018816395268651333383893257728836426484943923848097120033107136733444723649905841018386848211856152351619138838860430621874273691903643588589425272124354687513335476609806399009890480234992878199782780683372196622465944311517291946726079016596080149185544342186737355912828526149163181090544729292695846372969171807241291096261432891908689465871014221225632452076268251568275708838359490172960099338737872456381258991531869378560207425638402512296296398967657641103989042211889581094710796054252253468940145270055777031139490423485989552582040769271496962145523521624147370635901730264346941163072988921691549243859673241106437219955610953938487224552513236058800932859059170837366194569126337741923496624588103574718950850974673140409318828328105666053777198682854504568597807339153842710826229360087038677315812533438699693415138855198911796820456050500711997705075861526221202368765345823117203363613681721512041324554917442602164278693794553783144199834910780816027549590041339459174094742223571747548646005210841181779995573251152564278242374430124421008127862630303432658186704100813784415205106562689383107177706054007564468524023827065022354143198935571894980423099016809203553354390369493430827663618050177060248810289736422960672037152442057637907837854420378249663487965294505919613061537241120387513089915063950174080960475969732587608325001117283755827917749062991592338590283186561646831672100386428363270255910107530549154191603940093147223398600981927858832266128173988793152348970940759793992176506004777174065194271015314360066789090850255690484010661942046996580579208310685563356030978158166460083935864683149061471732380724777055941219373843465810254064258550773992584738194496512968466082872617598903033604527560190443131487871004087716372987213276970099776862344313289588577895611381217298111277128803925299819953697461056470764638438998313337277068318492396378556408727097094132453819238708727147904321096620665780051242406873002141137691336670586432697408808790961724232209954881679299534660205135732768789534597658883879032029496563103951985530014724054654871709119530768134400442095501239427328720345189517895252542212508178390720264737739363971214160136065656936924136961783930745320567378123184817597364191820307802793202943493401816875728738765021171091437490631649482477235894634767750356060376246227916322672780076552381826499819933920924177403164905073114911183705958149953844489243676787677153930017160187049256572943155666746601763168514711188819200731976312556031904706120155325644413974173655321372497120656380318098306012651893903253031567756494438541037242390821421632727585509180519697725100204365348518259311351365962700837558493125260443104444744527048896424346172499806778393614978856578825879948830316405958460024783312751423109882444790785099445110929300922798188033839225906125815075741051879985269902818797267934681806978571828634337909021380859148527309825117163609446965785477854583501915277453318181121554081236133881208945759448184363071600296977080563188441286871302637157335416838675532059382162414894895063227699631877880197477768754269820311050149702123997479732060147361421508324351634744155394256834319909086705532415938634778537804086461809978799105457973536317854430495248848700049121658711531190492839709449162416148275199910659330440353786145083565146433136202020246225493856231867138726041154181084359569465721777508687345490485305858377432944486449346602761778924632522064267543872453197685076914033572621462275170661559309598811449414230695825147915043010980562934481889101322891491715580909992403735514497741351090589144713288438000870571276341575617953254322474031691681780045603949134584076860624715086633070485673008695893455785328074164372763799602101879077711341241420852409889863314099975341081341548424754073008087337636079210883349132624148417339708743601063455359280357994281713597202169124636934788033947870849877379334851789309556686140313208201228679043082487379894483687753798414908394282023033801194583019029028825256052084518696819436190161629344789701855068265926714166745905759020666744375279913089810539094632245223141596400083089583149344126989915637672649108643190266773025234788342327332444824678652478285670547089945641567477133151007000235815750546656525907371875685765636021265428808312181319083580524363550331046694331899361436990964173558045323379707582626486006485899250955592255133444075950565112252403038057274864120209734934537600696338792499471149602611336449654467077155700679787149173924005702166371043084212488570189449755070000479351104549698789969657849474489900296547067943388610163063953249991071192033186511927246403878435321477054970081399223694653618440183950216684643583697703879247954474824739650252562611001940195821199640857458624275054780130206548734415052860237535912414173684426527340133894607708463531491547172507419847110161030116184021075971718890270762596282290739044496453366355202476389018067484913783663423660761264108395775537443077664447454793106219662720764747766785226053145804653252528321073952072723134752810068666865405513586492699696873614374232316966167417503624873019156831715681928404842396209241790668567029419204274105659996009878830449439265682046273571645312149783015058094878299650811014579567516218040212643772874045134110486191503553757767413565463086091269469234909516166002140805876743484207702194986993172248334840625566588043320244279688519098120396626995790482967483020283553315801560292711077869521751990125820801834418432317892170811228014571154696094744071646387597444865894083218184011166034726234119228721335722200207503334648376021060260638757405723545640243736735497163865704383032586252192262156886427123113479046631074612584666781473044986763559870450454738755466137681550533471371390621140074018666239072240231330365094243619303191864206019942974600769792679408802198336131124892755697445708879813088974601587224729481351119146310522992161754301516102019733585673563899049646947129869576587276579488879221887071460389137292564652753569536031443951745213501726441594685494296636301732359684101528932998466566648244059613341934527134766255024704862897417436372995752808266013695982450542748884626845691891720853053555697313185773449555050352373035419393817734978162167313552128755947251226609734579024959807357653632165806907135699102812549620277863987302747567664230313827103134323765269523593982214416748088694553006020661345441663162096020013981381479814366504619952041737742317585638376038268322337176031392233741142679462570716974703877540864631898067643365749208118060226143265439609825313576841513197558783166545404849637579332738581425449834913425938680339102592213157943191984695156547273486708461174176088314134892393551470676383620668459226615774112502174770573595698626151133866504524214655586693513071345791290240818520415101098341982383967881639333390811374305805522289935414579800600893616922186753938954056438030541295599344682400795007215927450861808452568989868041321562376682548831009289466331952621856874178897705263308333161742080860859185897215885350251179776137627583125689761366320184281224516207227555635804301491684854706464199161308691116109584224961707057874010373956793295741393582818237818545609406017623587009701675746471596753900057392613451386584764385212287462283210957625571991302422626494293379341050247858608887724007178232575408847315735402369768846418158822747636147113437589522471617344510467280669978532657092434243829540418955251277775806309628336009388664149204784900484251054400476382529044778699651553055422750985303994450907614383144487174579329631486635222236130514656500539499554710703212828820766263484167694775220232436629885755360852989056109265660634566349960534710339932458171799135409340966368189178521946957578095269188988775244048742196258320495333600798554341734198944862706156895252652709247377211705610932217509631883857060314451753160307268290637742915450646173964094835894433498041859722984426869556272724666684903304856088655780604820664146934955888729670137478888285422655202233311634118256406168685605016194734026741227496482469287721839202442168527402929136776809041816613486195885826259001019492034167741763031395498195476650055778415884723741515575802776310555310824425474605729691212875774697913788594988242399154097925350872983501530363514311386625634095945492965672350087346496152521746640255429061339300074730649164628457327103021440506122421362955188734082015195207096833335667888436278240816928482433983258620868077190073040785327664821203850310012141024448716667881555435275332831987361740469388660079031603698003829917215484185411000933085919027314725126150685209956789942487303924546433720996931710653501861253061152148143798830194048210539209759383558314295528758547335512192964608762200417213422471212098555168796434025697598959457001142417601706626255263670764189934342864925567590557762597922339492789220676328246095761929449436450420093506223554671428011909205847057914810148444411541896120156398340683719545118826520639190330047673083210590221984592052154348017705821458976831718814474288199061404083823849754975328539351161533735592720676376068010778090155146028376094986759450280118227375991974442273507424914885915739677125708788183240122075338942343595787568561417844113436518197636771164150974018772077707283718919731357465453640071259695149838674486031586547254305954851052829297643178141114251339760292937957225020114934110855686968223779068016494905744611026121861754191760537469573493451766735505078315185931778289725681861058933483845729902685932028529509970765522395846412498961357166947331757224141580577421963564159032594776167569729578544751671302029510041945647601365948264087735184191685842444169162999285906747151124385276720943323881988919305111779648254394445518936078367616485231327481156727596001996077424184135786676496102298760129511694410535038152025715434290792657282594168518979433711589088776561661773695943027128557164924809292206262231922724914358763592753061283128765372627827251066021302179590561914766414053310981522502946592090022336764628785604079723594058292462720306250195587650241107741049289871237905070049398063798984755975064749773940377072250771746867910023656908639275630985043064524194099952736698595856775206736660405542904774121584327617395240108498910144629988077244060528082605700916402529146714047110945302415008004304153025001917568031466707753193003278534603285020790780972990096329370762325999642215985716658548009684307907845564140449953608859253055559512465813173226382601493791945915338149128644745006905949673984939567058506973925609827314234563690219936403656388916439867620282047007048994812329537062079806441799209601192645397414878215539635668855526759904829282634306992044002752672255473222016322757216795620621557428524616969546201725822812993431891119855698398793457271613224371704225788541669211751128126333133712016623570772329582560606509343020467118777359011344903530854728425188625976246180297931542414740271215288219762932274359364277032123690190321032119826968816075229394583361027595792466365993855431986572589951485704023084553138650484176347037994471786046659479114681595148457181096321297614592193654155466240803942496633415074461701334215270933590454482107633444309859172516063479200190142336340991410558812309201644096273378974228850617922336270658085011027245190464172068577655380393665404884296098094685929527902142783768064701596101577832488448890067504888242921486402018281705347191843218693330928205354536181824652331372805723805224310954590315187945844118733294286539661340864098496931741320957755177045358511168618342236873760698506116631495323221642409475114907812039888716220719208176225221636768030885248285881449793679323779482485337652605955269433844830693994620827025075997570459749831848998288257952668464784881726572403649341389027304811619416384037027219443131908930607569016291387660381698857965061729578050038685554147716770684083242531180842227075871357711075440566075123264238162617790424226573006754064339335576098843284107478399703541239127754182246962342578577544294512997073005867498845867805011884849042813548518099324023024475219930881809196719070953988512168969178315105102524458955752677754507735996976881851689238722753702595207850378698885657150158606338317081846257453047830907870456422500511241726671614789838333207451584125574268352841584132934212417831685157787566926407377135060890517080755722306420270937745461023420682660399368772839301096231347762937642365307727853431778112944594076210269371797755779293056571993382004306324031958008369622529305231145867280923139585768183340181748703526293534859994852315927427769644364069528484297828164810623313249311409486878583765662489037603917254991808952411616824716379794409023313430655686874930537482437688944612356768765328959265880209007164736977014949670920680505293060125838362969817450915012494141271441545448750263041366746185170075157464591709084706891260901741387973001721392138067288246057874795248536290269317096308846557282120031616382016109126282673811070544756913720523741488669089265835108393411942572764957452650725965617358370084035006886229238155982899335098753488776309713157350305097311697209813386963768406539835184755451208799191388249324931052952007680666203809471039455312676049359973241324049579793379632764791689939204059522136838064753256564917941478213070060602985179519784989605992739838998487143494885671013998485993872413826724560619901369756254024612377109689880304578316637806144877271145094219954886227069647501949093138854529003986495668443599200362042482177702191190894617284758592005263559431189532142894710080981410263115900094240392188458735694955755598065254497124999158739196381995205497269999028138367049353252740530560634469405647035608433647085057448386148154444995362787885461760001979126329191198923826408004805419344538667620397099182754909587648522231435235604788731104666283986637252203974958540018141726535527113061017919825162745446690592550594356666267562328993108962076312157160603862492184401254480705861551665988770075215001269000705479466803577997801035621920526724667998571948062137040577310034460105158087498736598272280532765604141932902137917290522022277358848774091376519298826354691202082148018893835584313028085365324830661914487869770114803379331076235237479620095485549901876364140474723069717939035062207393111939422593681299285731350856870322351406001751383599769784164109358704610756987118414676047783689143239153129953023860425393428938927604947397820502026097166123733468905734446384538820170323249276236162326129988792682084660113464393066761288878604070278342991780166679916832100268695482347573598158205753990506426808073427085594404481129507196077300399858332041722336569478243133340029455485536173256410801432551012729447911164360593890315909701320106346823006434512738017353369022600133731563074210805183163883496856284634266783584531654580537664449815344323384060070553111644669925338489634346055637660588215473530967551085019805443721866467102189496745073754768095116040556993013162238929722849377507654570102409786238981261203569679283933116188613373773179901055854072680086695685429594906707128211086148459713191254369172154255481650971140307957172154240608921262840831835385265355384482613689368004424290958181470454229061177274038009825784386222654740289739292293827335769171292520068348801077760390334941014055692342493492994892377975502816937852517840561587325400661482796934966129873234122246342216936018566215136107386930256543229762158144889555052263537685324931695681545068645438064370862862278427771102564665464452221071496217685850110787758097680803834374912441347626615904768847474562332433686000277296547824410344170373955278942566579020245580537713536509569354196965949571609500512525672449617593986860818543048936442328879481147776004193954816384603347360843166814068936024945081589159103532266503203149615316498778795912564957709379384452013219194605954117461943948905748399705804843673748912639184235720721628990206193421686875542150818908719286969751571690128651920661140471442550567435477684486783752185258155873325359525851616659261815704959423567375984921864933028231202438194915383014964969431333588592705398727623953939718909645562297519357085128945358806006514451867876895656657643601626361203586214971261894057827560943223728969566945197945672191772514262146928633558925638849727703383330978450763493843622545013627371727027013564927658759508891056103677365089125310888930487017543179221117707660085269844049985258731145554514444453812970206706961000332863634595276234407912715448184855065319789676256579286616486036595704985014222091929690905443178937925568851969653924628249018330535300783404777168951401304344060473809103044503524869369008568043957988615034535653123042791444484921373147941400384427262907240269263545784713009289855633509461801077542164665617247669335049945050292275378012775935360491102877175075678986900501086941611844584616939037885184159769125818661844740738017726812302958137174014041206691767284361180469627368482280802373601778271113722251724951654427893775912638734530174978781351710647935379048588305694970468781892167580995740639895849773486842081046903259362244684967678181898643684540413618020941752596329198276809996272722401887844449982031441397603850797386934480869809329232303318854318059231322325165575258336534927364522566542116479436282120320862850768151610818210442632009431673291583186218261777497526788658962320548615479625627330001794164538410327913782945187766041906603260069086372133768898808599907564979678314515294258751555199885082205112504923316288422252283935521205842987687225218268736586240655799852660232850769106403463363419509715332396113119157883707515986860838650061363711749944067344367166443150627285648769961441300530729608002631705437145555676695613124210332018387502244100626062748774734929460397662949615337300582706516077919262240657372997978928877657086908104227322874135876906104591236088282786751037429713157415063612541727079412086301641898522482408984360229237505086847254317079808682265174190733448799949817157554007670796234844829731146088324066514124191432986522563273493541921108715112441713762064486930935691051524195784209393341533124221773032780728975608016592268913153796034628404314766024217128610522745775717977416103836946247485886018530371172861356052696302311661636194758211918044227890156778725117714360887859372214520162384445149405570009846970169904841819150105186012833303170434564582582921658814170002168663242978939858018700649776782017409505667017480113659989689294370325067143552832133985660120909729498875481597929792326806148745685566435118680534132953070514124070623821579341105885491640324145469807678333331109960090321621390144647581730017714422944497750689034261551815413001680770549077555683211716731143575769683449424121082456641081215104975802971599500541376643565491342493686041794315789980752782457999103179706118349099707391128503236544470885020010657323361143137920229885017744131021446206840538314019801126240016278223078113788606598287602306482392193453357420974036976757412707042061925845924428242908378257803252300181008785606087900435456560695549002808581964983613521304478654377774115731498268306614020728869656903937581683497250694791485693439334122904859335997936560135890941021937058780782042145042983063364793309646163149256474940576746791151520929804176167451816292899370734909666435649535143733199396067658394565552778949255806349947928971654726926414707607257280151216945672647958029622490669040935279248927226678365696621962888807523643499129752291348136176711518094555432664686511143094040491775183499730052895303156843984042513079817929823678687388145125288520846624296686595054632886521746055091531055706704501787594013389453144919954362679381427808731434681732927302334805427271123427436928486749801350661355733538591336066612788281143764506293231564936038186140247397799310231354914560977915873019790967796992523115569946784485769959521862957399827887747976661807290066366870743132386023743676912823451183785078391159558270540105299175281130695286008730715644011800851418162258228755678661137385427958218343983853181625903513853656210487635190022638463280828573024263144404359616414579943057844438014158755887743635146308288945434700212135514362800354758616830007595279040377722449986383922708338395036027942348309089776351289174572212375851500753220127191528792123336466655197578148788168953325568399706546957431702667521021029589161901283054231383927231248202285164235049936600356613364923360092418762455677922547245480594408438300843401563063887906645034162005590408417683226073523156032580468114429769111526233130800214008919818469406657114538947063640286670446083984429830616243653604309005421325533251159628803348979860230853491089520487601467968555884146700338649644225033304346739784202878937933851522204082146545738909322815268819295516584234780044906220604907976623865565265774939547365421131743176637616756450038284437639112861068912660717315346211356745908562354271643069039604053145454397906241139938014630905077653123461783379286007494820941411482528159271783238181886101928803434536215510548116470921830994824071813574554857104207743749471305969178013744478401910082813469158308851328538014930128906481788109786312194034416994544688202250730307190928549155978564533134237147181085227347699221105452804827798283666316624272955511570560339316271087413515351331400595110427806488956364298783165579889367384469922471960178958896263301990847346542656080641470053378563870477595711416479692202235125639465975439706450496017792417592169633727759078098467162112103788123676266257319043997185963898486580877056612547923180660376108445399480828519003250931861809041944321141899726446255725142581874726010958494305456180285550646104325159098828000092743617455618888813612758034942254913534901024649278375237811851354243908290567947695537553102385992375973535618690467859152778975361253925314213272044224749524827262161522784712925679108548631979790431795790861890016972935802728149226306789077495658274309893298723283734674431757834237433181547454939813431795764308508451065132223475236226287293392352344837352944423189227528804206279482067658135427012643451614110074720529327762784148499541436024959330541326398056160841235214771941396256739016359874271759754569019916982192271844846943709283863516897252668819210100136017731163585988328384691462690621386259553606125552131250443164087234051575260428526532354083565409061348392248520641107302734890797868249899391523363969665078290341267257090912127322682611135820303308078479586504863794667674884515992903171557991895262401545534586994250371937911276669398986939116915059325211405425191398704427567234349745365399470790915096014455377967328126293506973794813651188568444122753917685026314925439332721729195937714284729012645979840079766632016081902222880403340365284014497660009819337069197741347177052516830554836990157823315405115747994854888739495896764341531479287597384948878796294477663831038221620399274430715341407821928190058148618995164563603715274425515859008411029319287221705825607698933800893014151291672395896526632506016613034483903660913257353525626579091459979464296885905921744197031239464155869685611710613446532065078510219327483250071639561363614017121950506848137471675164940301886412420798165880529347190802507610877809729750185717551303669919568152836847611845046165420778086616642928149448312261570739487914915879009036764191426280974724798635605407608616996277195562552095953039408819308104051661636187250954647699581694546307378250264138141344345108999119874074418621845383882736524453410928663066476705115979068905914378763090635512725161132005599571952460768920036182084763428576464720467345004384707602854810944007598458875688883811147035295744356790481517934764835367870273338682342587070640647457611497444836130226172027838188309450286431898526944608860974357405409188081733047437095092108377671796504026622590955316962583339079774388802609656484995087072179915275329335525049189190410050192491151380148190766132307785436408225638639469118246331702217361655032219399192874732988288946238782395942433176924753238114091647038408654868727509139947529878129680583706477844052936717707794013316600829386561720826868692167556914989332185757632384998581285573991370932892723171045370754474292333922753677168153762567690890578716286049421415070622128904798760230585246420946662095167058274271176461115910772408025491524941559557416322837269827965667919706002935361182528278897342596013908982765938738598406231184935164964844910870628507450121816771186146875403000089116048128882598077743884979926924561197301466720390292578740798935481667619858707364836624462529166411284882718449587350684959508359227932949904401136211885036819130054285824428727529316970033055242382385199239157233020360273683642698174348844816021620419599749127238229712785870601294868321024565996227291252586916034900829801820736741776741097104762182993588288119329702590485608279940267459526105466790723771881013845170779878472207215207572591268816717592445360744446207518951676898613066355250450565695100653239897862311672881236138693033568339946650791195200068222756140572739527451601664298691146462287000517874719085270961067934266650119229478397569879862296433442879045671995756619880275724496492533445247797935132576848783178302009762816248376794544731196615064187572899001019749967584848596074199936278285241004766902740839105051767352166074527198690200469786610335745689818060123474975385033723068383997453554922787176912089364380679790459124850296251561556153921469200090323343979379148937839118839202103484355234072400749411412746206066566699359881443426926801507549799520913708412566090372100287316699042997078917962091404672363193390933091546164897341774631550795074671335504867321159847301836896168261033950790293116852434280966560279074792744170785622738838182063101873559342333220873932327802688003840542563439811811458789451420783680325777313370957586450157600145635053182683327314964393177457430149665621604576230782102141976822735741434747618068536250928378813686045338017344011635632025506724801144318165376648025719830259562115800132267636219218015398138505131510750608041302215741240137302738882528324590108692521042979955971228460108812498173452197653464383978042656588161303980257770451454493604368534209976927346567437742071244906285527139098632692905223861965720741304390166146503958249739928959801056424907730084976267314557911148547132435186480376052624790030761730726652499665819583845240528859467829455698890177386926026206945145220630787598919607263341868703451125485157137457788185140513599072570678705233668180107000499363024230749437417495938460716168413252850519490231804509234927306025855586087232675519774490956968497181706165330156138507640887842337228332982636383974343741065406944629983562507885446257116157478745846759605451539370194388723890456177189719299093753866753241336443576870010210260823289329712425747147856752568431951611553403430252583053192809242427645636151130599362685926719864170808312961345539038363269443124319147575571916127289157277067001261271144652982274355963879946061894595927508238469123744090037362008425263752419268446048303073019367944135555001211476348119312966318663657604523960512388521264237360784792799912967616924563380754798536257749898066365013161456006196157466257730328421486969503655608040265988589469286056489015657051174864182310197874068372453774679002557961276644292998423510695314461603871603888553544460902145886675054555924220130293150962397209086512989273635724744568274519938249303831547978764410547033798201180887414850031741212424431403879719606167090661534966696733990562356515255027827965889647588569474407004978069875777826562027954786567951934836923661263366614074180239104757343984977960058197698593464620610840020946830803451414211795566316588218357090727580649519619790624248411961426538005299530692078905992834409046753329730420191884248483785844399886866574373488081615674627371261245834950314522324719851038976131196894796090727292577802828544214898098661795530591426664739099078619145855746252972025365305024841744251872325519400236359302888337675125044267930296827058402818623684499298790271195931373850532922512960479895867134158327317839122506833808038868498122792227495854904912025331465710467750750464222724766427016767462303131841652528120448826659606199577390528621731160868647252051850755759950995077083666715003440818996657471027764270003194056020862841928440819530950866432831150734503084624110698776373971113850970265109895955296165229730263688734112115977720846042224943621310639235624264171012034112504338319899514755769777099397568425280863449529587293209054985101472608490289277694296462768938774004523859002396704603182827525150630302910798365364792128646042531719082230281427780455377950672564043070434635292960143730736811484870767083285912483258217631452691300594045348609377025456577718960459930665795536477746471684570419930223226911306532531657680460190832101731674828591184200522741298741262623015522810391350768418981331915916940077734860149167895306852022015114247387682491085387170000677526753184572467211500766745944346001785542078497771467872025584888960019232478654808147586077631593984967142009021712598082865871880351796529024032981730665460460225103922074904587528726804602163267284722052894058534940352653094665551226407601472900732892534503594951724640084118074162766544083146097818823197862494041270407279874325529726678707685518993004919785602253940476852333343432152594736109699216063289611820827836976259704379900719991970580312029018331197402728654832161591919112708588607256761698344609777821748419612276840615900619476716370399125013661049754258417978785991005574825683719302786888151698115929597832410759547769468325465417351475764002140367186802371899796139424132564636369324197388358337432414999879491459166492498952751934491511955402216551553861186080455063589069776696607919626699184111143138446526565423536520428163705039683112885491278699203096058089059472982910569531294280123876696624474767340512665160266411548036633644820121334569641311738424016424738250142449970867357283562953738620166879234426487277572310836578139987936933447786378443723040027992243316658736395622002738649118650736679678470638234837383991425317855243758611077627398773798470612302304737666182801672153400949322025666984257706384051314529625569387911830311464536295020643890311172797510217668671304506439488812743685281283623345251074369409148188008636118390363788455596097588130941931177463407295501199201318234094077370883344756425076020498585805992499030260960270626005891338209708429646211449263271100535627240077868126528029351237099498961517344355015457891731779615539634476102379514506632280582827396825698791885644660688776067876111880209696312401425701728059908110940176944514676030980870882673100187275450998171147558414558756972510767425486864742977696662782681307924639897801864940790420354137692873283398586763497802771320417003531889429950855056307269538435507746132683321856668327428291605016730986144718393028260319789987579186456302110007336651904016572583955424141905415290745276426905897470577497155332054433949436971146008329066136036221938681133547215532631629723502281989361803541018712960312622460722814259167870773310871376854648886210616629709561180614844472789265355570069575503621931295255002163524694397712109700134536120653582344827517424112397193980259139758550685133014848069374522628855612899490678358342932107847652033440770959868500704664403562588255627511129783271062166640976155890967835489217503298572238895625053710459014406807538394746127577994462136019360890388171589613756374715004591595726571916467542315412922129050638724783821090115380601896543624929483455966469605158281147417900327398596232882565060038771133401276019238085802623299609576887790700488314183367887338244160225179549416486587050901603039693859815555247607063605692323939149249890261087935756573764478452226408747006371995539364257063616160830130002674724989291282275970638151780216691406935594537144914281896810087019759090040874297170509608693898294517386823880978730398563652866117115359926704544215181567211729381240355563900206230186665170057557951100172111722593133048700880577080455033438434689800386345267777227643959227022474754484621808565828735266144327116371666971771358679306554775926186849610353228268587163649874335773766517380168177158863056317496085413169283160332852938341109841966713999953851695433266064935335715484112079553152473043383144123768729597358700496371050616762368771683723507453237906544815547100760244918418027928027513574971340211412354609269583894570700275968324324579853581284716432787757140395641859066436278363124499805497138554136483460777142549768061808302967909742268086375520541831563878037821100486540590061481479773601653756224503476731847688602396399314492294847866684630409690136024379454058215320450705178717114740525398657058978493583829174977653816497505608741303856400555922327194745182814155695803415270363801411323415159188056444591502447451285980390247046806063277213315742041509681757473975291670427956570261921271534401011704244491722833618834078486924865375700555862987537363755405179559981727047534146795120411508495326996699197428881165582994276032334258286312627862019782951782168790616128348151684816162718898499616596819356310747472392621209311675413043485956000574055365850169765926832772315980570218278683099798544319330440307589333588358318830978864732431823051115663776635997814057180412271642943004904547316550783948227644447888875954255801705914092671711539730346522201688846039274441046818970298935057552348581090044232434641677023913396553421763456696757342871278425262732241283960881489745419659473243283009088431400600928211304693457054038111927059060306388398731367673868445963448282200980984992609075481126757447170363858381307409011131236396364431558306317953984000565588661635448750559315790349724137645333736980861950853945551312715624253280109360768198857987533124567591382311564177597692446895919757724810968655959734984381767530820008197506167369620437323473326598914785128820249310600347307759603097210716233613105440374033904168980434544488932745082475460909162218799500223721429905283502050749619793644845274239885841411537767790886248541093302995850644718069715370428130871890351904778983324948232059298421839706846434443716274284551146781918275471382170732896172128130307534898365159260828591994480939509683937637268176816754396096457234537067598036344196578616598732709474973678487151104994030877295862081119410558026112318328634035475030804139637420937685408908711477225506640273504659563424403917662181700813200633624166278791627044772777192489886917614226855509702664364409967474147124556570735480934668881942347325283856065848671895219930816597136327846587982746918087889095226850751955927978031173108444062793989140172674778746533815140820995329662072623813125801904675959916455197141769781204230706315198872297621282454224396168582563852838954833310703542703931667443975555207888698458702753731454530043136147172204093437369606198737819073397883554530261445665127882319934953670151694300258773598369431233896243774863254528107094152716158981674051654152125593723992657975615740874012455570135596428109085445035793735715459626280551973553208971394470784551091691408586908128188541556699233997522904365134235790712831304764840445830276140954729629251072226100209982049943628190354277082086220758843830645143776471731844990126259910799261838432993168624285108454470311216727222065143869509477190849630287024227789333762041746555957431903082102579318088763337685086574627547813990334821405114573878605809673950889631303832923199707168862068264989627009325612938448297521872401408636220130386207031429703916395508717989223203659185278988647128161831688906573327051608396706649167739798192392827578791842977254217422282497220104620820603068420750041567074354409208450403084459584843963629595632166867301139373718647504155129325156177021262121298406039760353744566646628494964325601787146481299009216617549629192221434377191635096320184740926066390675758510692917466108253906570288077271080628161920036181978688538573313039501816397196278701860636687849968531300878494213815130951648567062107502098859172073070072440355635804795631377343124200782822149773582478756484944616585849039645585873038539066223525008821448083414403662945688652801315290480240852127884915801055701491425321838333283052683759310971772756289704267862712399537934486829832363261248956797600120299035252873957459383859638019810082320895538121821765233451469854767210118154129486962880529546723912014247047149964097404894126918723447069894447176513389244114593350716164906840805196519894322849469561869533401740460743486084091519995573734149017208250009163082941860745451972301379046491919362282062124876695030524352233503622890096109219898833012727662453857244648965197004569733108848155878399219364082465041851781075903611706587896301375910764452482761299326997631221088773003599632003074483003508571538698430901184861692250782944757390362175236493617291958199448116621634366175929133902488083774061803239529811112037213747473136104362570354560188373206183822302841833989436745607763973555417490250162853178517822366891534941766527534789097899002507547494830256035176782308030267172036598021693557431211110111044053399650423408094628561130721063155170186868582780871105727834110604463296392569481992150867487933230142099263629307328341111055446977024267173688571140509721307323160959153193086381952620321304064364565609830870828132882311011518435478123665770641156400446433730734567252099961094544549754700174328496341728284776668519016043479698461866272523328604204397258198566441469900390412644220822148965036367979964552398777916762175930653166876831857914871877791202317097739088305042545101798129637405280080013013401510962884331050726435329758302104990744164223514944655905351817412461074210570216916964594509398084844639339879940429316771717033024891179081253650657707037131110839571218453136430186619439933354672531781491739813540205261995878019016169845549350242905385689648621130363874652080640976950805573386762852179230014212458840686499664337360840785423985097498614037646129185744306960741850668468256736326761391488147361551036802601694899918304641958512625708915049351834863294012147145337890755285050675820237193011644262563826141085525395410656316201623385156865105558507261770929670464586878783479303970603772497392052064670439844187875292639856289333017383588428431487751694948547182997833010374532027275150390933507179385247882565638499331554773371500763728928617039207826091808135334457259731074342842959025008191337154194391626108137965991592755801233830867813818382452721125631469267794464037102074486024842994301334919919121605700310346207236224229497345062286309212995361677724495768332168298099641575660354836267289924958069231274406214662400992115230620088387534341173037335447812099504196736100302900798304747446168422066127523100108383280919962474245849570663625584819542108255020186217613635240843980175856637616798289484330836428053863977037596333332365776691650697550478387688086613898816735517524888236526627841922812999176472221254989368138637395653077483472624298622961359938854665588972998173153405188018006781073515572716128038221440854318703637258914900653063756722088078315885220690980762224895216629651512494138350398717892022297584382982710909460677967536768972791872521350217274278045238801307300315332700563255435446751099140282530748038306844480407787720042061634016971905583637075676247850303991293177457547655923811093869026366240196709402961350341512176072998068510392344329700899022520293687028791356044802573405616651396009759584783321825615508514417063391687943352687151069904701924507517916589965678044822453110435639273522250174952105039327057524453266175874155600533323846883644124193719798306411762191315771293787184526144775754478812564522305368332724328107103423563688561939689822884300152709359403868179230687192819727071606005892001082154458116008434419772741173932627775343348917950465225419727951364410416566292458102447083973856805442671242834026325652439003575382973242832744763662085328619361412889095761707190277418656782198953744400609344696067898420305758707409377328096522890199289595340718703211068229238033304522061876491313254731661256099553047997726000081980330308394032452764521841291399590821746819677596859922571557694402077967306544483291033881238202856265406621367594180585825891215198334762023884091909321478592053493905943339346753998642142938668130158096007124866405161637638974584874586020341360816465579612789384323272999272540102652260521131850387695877746928316047006306304358736554590304974447192288330426493168773070711464674296513740998083351118344018207736495018022519535502570721070225438954107421570442837728588150376090636495304191549957766735542914169873630484742802655403435275574773788472344788658761567259238322567212010253288146366156292093166416415560658690436924136594542566549310885326210130669232581854388720244483463133223468583755571789639539688741632703365331708915650970309432693240908086498580610664328538243159408432371088918294504485007756424779716708251361852722183472507606279387989000676700894475620714303083370307516645080841448365444923720774098417689001606684975532885683390256047839637439575271717957525291278298884117076125195547815546414309148814057114715577609545298030347110519854012834770450415205009772311000638153195657782971911911388240006121897730386038290454554800161905716738587228906852468825314822103890096497372007759346453256688815896265373433583329986809793638674437611735014893972866690393099402503074689771206758937462169379541353578047438460906710459750476460767660940140487574976110902321819534867415074930393201274900918690398888051064458942920950194923794009433753845868109121381587011379811122503261030278127099385445569500732942006552200637035116368385736706730968192036829006120425529564409983635821090652984382381781758063260280319816016324820883383283062379744780603772381953369684971532678892403719167173268474320431461049460792707053112129695653840935197649916663716785526358962383521292666745931179592902580805329365934360509068250329248471859828364013020102821655236993170288735374230535329296563333833999988452220372701846509920415188061436998138300540852578217062462111926652109160223842926504473144076996665655708847182059830903166556605309903549155685986603038415331500742321152773688794833529954004142748116287237417996053045355983389124109908772494383042969039376887595740040882102117948897738006496361978583191124327155882946172011113051730389447848639130868694349723036646346114369776525057146649469881152131363555371792067800605019864212614601661778632958399962847463476367191552027156527100714145518125785647252858855168752461112151189245708356789441558717925238178449186658920036876179657094520372120383921083653593199376412577298260157977330456712153727515452465788621216077605949358567734846936453274690214953816107936810964513642658941387971513797055001621689380902635667576754079016725837826514507322782164127916011275414705576847425766651214622099165599590562467585189238083456675618013475794916327242239242433923693455978786022459353216500960426705286514403500786491975662662366732358321445642435501281075469805614098883152403126795388954887284688993300121102148238457052855715340398553977135635313736225363367254210203702774587207113637502153277203412184119218632151865242411925614608240977121903006870167808732064890267936598717007363213885812985811516224346837772546938561939802386696882906759348962314420822092972020342594131422361060698703590935283881063641119570693530041805887800332720729598437413997213719667454123194639558317657580110544981630155645853475224494759915383746512301504749240013660880569242318129437637734910794065004374367165823407309542915668266686542924975638906108784637790943330255684562973177119111202571550671799923880319542672309393831669865882073804526769022151001579229871677400016572968994947359452986954912949856544362477747362030123908555964234937535472473908966412166081788239677988109940513232589160204981975633303812567721617762107118012410987947993314754230126265267405271997777135919395898661993427662749729946401765659689756496211836112887098750132752561569903114788470601127323378201339081892629285287263118204512860077235943620874594005042582573363153310282602747796812987212711400969052797051348547240185768355395867063658298002422386425290834942698057640592907510562739759983888553441117915034954519425623527652746679966294632228519415522877944930278199952121625218118070266330495003120002382768250317737405521103259285385882349617718495175937968977525459290899352311348427142090983196508631510499333961174744874358277773400358748095809743412782782598171265948406661892840204179202561987943218329375989769218175278701373617598954603340202980015586539390739594713626106069168103593650009533909427473338158683062237266452908996063694769667535233595447965573681187165149384731934298836589753562106732989199775909300984429333559198911711575034304137638089914872459184593216229532852523423324380954085800362591399115648402967629130566943414451491651112476003312651519586072277122208254177827608958162711562898537819677141164786791920891918242872725241702362437063223077790789727055851208487471852172239433753493066787581315493688972695258887904483590309771375873199262021796224301383781258260944531977594302312264362139829340424732808025993156721005179226490279706687072101540026615822985549252889527077920187416541874192496963756466705500466592460822034951964475443146472243988212415826376744610244564826771497753487106585979591450233837119595963546014365468414233144610869857445140976788580649098804057663691387427749873525983474745246130345100153629424141579836174401004257884724081638736878195963545169645876581367848892046866211024388399237139911819742269500716163987300024495304252772062234659672129531040712712792569994249225067068030717062735681025280600662202785198228390096701677726300532311739478793042246171051433147174564987508353897024959655833729923489165903277791909058609807993735189194459791643297142210651977857058984351165210995841442307439035447430404204661247047491758379232085244791488674204469585112322789538518774976403680363489257766693411370617297033402928245993003503385839035133272222414315759031018210017607966299013734390224323567324168137168979302496282020390895456108167098723058527546978291184932207841426974054385091121724839467856066856068843226786332123722921053275749910022781331286607120154345264023093784606090763635924037930420593976861185129934816306198745102150855047143026000493691518227691198910439224434636865052646090425541625437803720342812840732414531564531012316975088190732944270970608936835177103979956384000255251781454047439874577402070293866781922191415671197643166954166244117164536651835734214793324598009581731750774869416437586512480703289194748359163958675281377343056009599074798783593761171865346229753846366826737890713648135218792004620761650776148770421240960265469979269359455679207799717506351679244020603951521055330487273794180611766779594740305566150327911025695234534240908066401082464250683704090617767540835191929404615202286601486583012607844766306066474428274050641102340346066017904806430858626136787708591031210629282932430922607483074920933917299031719379031016628375755798139993354792931874461805839164875829885475229935434377086389869465050843272187071031554083101465249249630879564952331528939891040682254192850109361163727008475069202119038965825181540186563429784405290544907646492252786138433600927571975189458784920900225871367511367493957506227737033561492115713978196151077567372318690059928066679469343544931694410186982853152514525877312746285287662442028324039154793782588602805534672636451903986640466510327869091410537255856387897448095984829490149036382253675878979299017690954499220414854760869827583314243910069775338677888673582858888216043951676480802032695130538839051237062810878133141083344708060510290286936410814804253294828943013874623193478001327940920584857583952931891663276320595806930087706193799295131296989517063432389681840520879515165819568445709152556765072908682388803096241654243438954251799518972574919642397671362856775669737994573248446549894015788117150190747158321267182918640437920245208470045653157345981493354708574521746350216597702318044364350314483864411709029329645664518388233538092354365956166193915082150571480275382122326578226171451320469770347833510983704804144294658629611320672581847938406652152282585642324238516612590553521720644495819201830671945528627174834721032333690514885528090392821428599864351940946866561423413437341920289722876338477165468537202858798179451088909848416772604610428787987040402750493700906544051644711537893217486365328047130350654923363001940892368706773667961456809807910772108112491364797026241279120078204409675955070372521032847924404885940790525594661249686722689260137883280109161647836281145355838196089346434098221635923157217957542993014515143849048136592443368276861302427245410014064315220310998266518740650693948740248280857153678369140607342000721007853835337082769262532383209595848092634361643369258786267250960069866135014405971749715251228005664693236944897974684525830955013649818599471378906730134574158416395258664956563329958748637814379506736486638566196310743314956999229848700738543807379636784631701702410071237474556249356208414952361300004378032494462873323099669167338988338392341169033730433282754987688352812056063277900116414887820006527321067125081678380972494378988396147111663392242827523643345494491152235909452435662082414715586837633736411962345596227436206580802907718242301624247385610972676760409256293523037430106320372343737326343532805121091822244727107562817229220980782246848944629914171690136863353945512450319904443458950282443913144975709534038842636096018413851989731329701111073972864672546716178256042546800998931005314395097809611481239176973698157588428344892210066254277507891426343834717007251044760436437061923349418249068693160279436571775424160289737084999691254265816988420051679828004487860378584041959399956464927129749777601914659683234222578785829922486064582363226699332802934668719701006781803772006737977824537404236587762143839667822695513155371441584077213861722527800240152142911533031879479703824571307444614557866540398861160977991423589117761441671259212680322471285061710348385268794399044466872099731073067261840681407673464919311396680431937328585946163343557273771809379325113664431086092360599602011720917253276398059887906359442199810428551552624119706661547273821563535778423109994343798671348226589519926418799524056920561857046310175906077688328040105467562301577965055193467420124890420416697191515242859857901218622146668339096423823987461205622584370115178151283368796998638786857610458578974892339417440697836775451152301705884937524376842895549001363240330309598032050794914638574499516034704028327303906963079412687900608616329770140160316602297083897658388231551255852994742570640710374521205248788811455016909094986907682307584518382992272560274539928584150658830496330642196237071806590546865909710216276583942276197163301565301683954968725064147230722405774697276399687338293884033214747691501183784776114949040681061661189315192332839617397636970222707319775965462195301756016648560246444858664071875923105813744707372445238810425198059746031242415559456985863346904972945925977436497541273606883451282777931874102523311027839943780085195810022201751036612673173382213385452509966389262841753523046948889855770908050180697159675750045684626832179183270254141371407491241778579877048240543803482536957575622281716880768393191801419645524566344617439559203962797909435542374026205798632904247916283040168554423483682192295088922341698704307382806686919223960750338449338464758530172315005723141954536690562885117331673098734462273117024524093994966319428473631011733371595359284824014520634297059142769513478508878840409485761304393451111650874680316683418738334665950772054716197005065293903738502280302387634990324225711579310620076567589867705158503702273983908694754040838606752616919466240441705688563160434025668978288403473462081392814550521688064262796426343703297250091565698160895868526059477452879273068445300202840267186553912505026856214075058921308254789482971929749186156628796791406868249034493349606093689585819200483062715612103566181997796501437784562438987407823343164931495551098786241084264211690301495736137180472994641497837534170860385468706971922664717089858798720025641928800377049634542922855236172157846247493360118602189737057881629758462078995225491940328204677007157787329098489879821421205339298379290688592591442624593765634303573412711633162464286226200577385435992582017364451168630548415210141735185980260235674036647393560531536650744290447459758272604279770690477656218152763666668215669695992254111152480577592839245819466519291361966717189650216929255483581012131976950650371068835463710240685222320475757779745913135918576801077569700405807917980081842621305370853079147469685939950277967353469070968918557402293023418212397856032045182320218106268536129580671549463540606767160479381186715706096080627482197747300119789585716698428886799433110251411259345744464083387095004984869958734689716999429561092215671036735698876350355415367515655302175194524164211874082236784344392666624436146611090373177160562558468759136955630432069508418262616627936185153540495786162536846443442487692253051886560193751517603281557647497576500374918365549103377593497046852675681872090320057867997372501491838201917940212098651713404698529090961526347963887124735969004888110261941510824466760247719766912438303758731123051812093204720793358261766732686474025611507963542892048308705037398980249114769980151204988702310070356684222594635261129727163272447660338963863460768711276875612868695937440226598172552563659115296687258895665471086060634963094066957238615571209911289994439896294639316221015422572346949263986809371034511645207816090567975777051793329541303692050281149892656655282925252827095648133189865429975997389976849815848676942784209456610525064362425225787403608599550453776174439253352910842283309523973489959847341674356784458111647061555365613662704769185930495480702764680841157626099604921502572742182920580493135971913710484842546579256112775961800670521681516247555633891482896477073487631694691513187768296138767607003770779730036536931133024291650557736930074186016515122593939804851713583848408455915390252831732265821415101935899462594116953439009127520812393949753544250461047564352860106974120992725108998096793184150133372183377459094135127407582902038773244417634914106311358473540724474453241439564160892604140475059519974166413042323609554181519371673238028199870707221830011125507262259247189502147642556862599091111632745869115247934914812094726136808298977878126724774151715599279209887706178632351776308217284998558916076191452417883692310144252721644361087244075392994254487177621107796630892078923157594482556923872437367206538729731249782341375115602433974931144070735192360163047145156478439646510776705676490242302599159665670300484145966237838448948430952568169514496195212051270929972166964416243896260103404090084125560417434898037116206715060292725860152177905269107705078424136125942616989144076248293801385850562936482520954904957931770266120418669806353382717630369644432862703827064887981123867466204132803025364438105862907593932267316568855949944076439066252935471090945669958749862148120315802292943747401716449743025629035086314664314204956630164334120873930454912608003324473912333426744830332966170229671350022338715645312215396648627589098979183863642152598205331186816788095774225197412221253940965345937277433084567694208050657458083681662569302327530442796731756012808836533209271385772353727356166736465092391317031131461464175677942086153178215430281487695168487020760131145915930588979238081424274959328161517551542578213268575362112476755264815897574611821952967906469895599641974593088991036430831180680756293092384737710479698685903806766450135609006237126662664278179145712859417244822488154272488449666421735098478164742088694470076062348643937924710485910613630818830186475455060141126137665841295947950409140052920065800301973281401589691534700561896920741998679485556535017501005550092426893685152654577780501003458883083350528293948857203612961402489639235699797439252259198344637196873502185418443402807742374047440510620125561284278138876963400337343259435543271144149042052190676001265921506641545594614970774451233970873518871672490768082879452220514902480500605530809622894496996072219861304085099058135147270475760985083283164440383050415661649911009187139426012392650297100418158457596488074886482576369301939926350765795996007317380086844646596526085460887628495395877570439151757985581274738450242089311248560034832830323769501279450619079077785280719500020589284974371907827090333779732137386576248569776459752549582464119765822647736821641541140067083884132984835867978869963279268922865161224651277326356166659231910896149128815828664345844953221822554985324773506052906456467232813457184565513253793978984896672458931955861924128994012458016177790061656190386991567218128382950725313395583280262615156753745299831228068575671113861319460849457495784686621496638014205335386077996913304385839347138945964554325425971157883889265193225133977264821443364661816977410134238658353805227255125777481187325667253149596893681516538392387224740467675155963366492643440663085571784142255050616188922171918150720235868274565358715404362363171123135254656325532847949054324120503379314115164176603383383415146305626773184132982596596649991142955432443045925727221263500423135659826339234152234644210081403828986026161956454520788282900350615629963890253991194278840894839975419811101621163747592081396998285441085807008204838457293243976194134673066175124373229489198309659113489923015471809972773324485864180393470732579628755798613717937885898775936386510957946650796088332398283182094248946834085121640283514393247939162741903709331476779293933068955746839538610096560694364842524322913469753725656306759145114035364125639945420641700810620165073222003045186329455532612524964576558999751497146504302273311969092280814520182341616691855622496212403172231293528450866486011389689566967868774433533880449993957967700643570452700098726880214608122514478677594624840636145717380011797051573569316950795297783856478056870345379398523968525385547934821221074203820364683507268600186399980571638433693303868301214030240799046731700610107917593991731508221027170675047178037063064051204032934987678802654122595942810265313381364159369692803419434613807557237650593470224307910730557505388128403252612307244209921333451614752229141551604155634540264523394648674732036394736140670043777551167016471841995056217915151022019689889746279643626702777926920888447014764906575670978153473603977196099096874854286177878526670269016244791397209353381794980128612377159221014191775408727209948046261254576628663096800378896182447839852720189103801477139152723293253083268593172579010976979059997917457397875558113789683231319073046194670727808484213733022969848687946194047348603016257090392861666288993540350718881614089327787486876591393669601242301598497596012070967408934323808247908165303888541314406690994668595761903266765083870482381364079720145938595734255885258171421637175230641262449841663039552949678918896950682448052448984850322861799594189580468835671307543396271979527740442831752130722869571602900142543459053673355056580024867748996309927631364649663064145931857684301511797754138142002405400353439727118381552405834521975760595429920294292695008461150004474505850705091066306126997989562766621825665299324170366458890253912883826646586097779882572516607126320865969587878727178157218459610499811800661310178971776444597599474838407335388283085712714817794804826465964711538471488015155646433141384977379820481920603851871159283163292319825290914415329763350548173743190904109969790186588163101510341950575820522425713802437300995067059159953805003513340526322122558034186013014102875138057451722995095799986277006738980353867398188545196525954715229296347140371303871675886135815148571693746954519848742293812469612094128076159416265430064078529264589777020793441784453694670352561290355646215932537723740567823003418502231577128101230366861414693645355182034540165753802579187953060499308074077392747341692662285839512225683157038417883281813147133013675754498581965849072657368558935063861537143008107479631035280523002607076207810739061381392636942293919155468225985683564908872965712325315756882189650163419241109783331840001007975995793960676752779275185722869312440846540836777707510127809830824897840459926834856737591766237079413503399439249092843172080566182678168315766417044355049789373805708617037487773053533720289944444296746166208165691853752447256101814919020204533005818083932869956986052335695890114630710513996847728996109390682942593033983004809995859213831752305178585152820624652524426793036498458050111292499723525531726286752849785556927356066742673053184169934886711551003700027151947469906647492363021346994369305099997801388704969066623497785906640810347551502385019693694804394382167706341385561992689011794465866646870902014562835953075428826063013375663055649781681111889203449869274124163840771275337689618688213882131300004612871680650405591082220718787161309689951607227577672166341397777064247809854231490909171993167444663218771926788684830522402950262667651175498398153073714682289861715098205526738272218462165890056537057097109349335844640238380646465154745414827256679220370958695340134117015729438878063681832936889745883703074194069259653634357546041069816205606558405082770926598542170618841547137353660700312389182853865399106423212916590242620652363560116118861391227835020254811944545256152404746181707824268408718691099451411099141117825334975558465121513765265568952316157866371845219507970667975616524195028466160120530276199690965478814618197850050470887720098015300906532568726341878271569805745757732990257195288044224443245503828427288175046251779521219169915393468483154452131091183719516363464234704513106798523732102184330595017453270572798653981999521619529299410222314389767737594747443088080770916669255290591292734639505131871351632665581666452043612033318856306941072091018433223417917491172121255647509567422916313757738999015568198996917992131541254048576253095061682959889298218695143407398611789071129765698366973526632302743568617205252328325093284351803410643695741782512197183692213360128607610312714304051635404191338458683652322091100079539015134833743558599546080076106109708512037670154323018993838570785994906754566211872968508875653353402893233332637503085033606726389590700487372254271649387043366496124781500102983026835375390917115614928571469895713640788330105434202142682679859167995746562008770638094218847823057982466933942277118324025671150303428346665019296051369735943072862747848095482068350336880216900151093272517281781268906037380942993003810903319131574242390880173027582401644447922405359188070940387508514789381935219830658164213456302686384568107739982831804764176045652703710576198880008781787430028069510801574572729715018357915620848101116803570933810041367715013356231471445889753095279931137399504889276267868964305947796871223388518981552695107054424144362452718186928041446734665705146538060310852224823118699669020530190499186922115499599894894683704331154031785238898545952262369309745238599977023871258907685231959718851477331752372792577899870400790091826104775616327745142648464406211454844175512551696969028077855442215575922683859828418773604734979488953615056343643265922385030392999982737145927540503708755546189979256624371854940774482875185494049976024139829200815907852171905417230492119240671295551081749605583496511861634991131794956788359285397638361003663725311890333146130770254052504177952308135980319952472120172600544702170708180691940748892377413520500033323803011399353736900282891948523991115668042792750347459808816118923664341183644340665220884280743075986887010210315948075752127287652557906124950236222642474724629845388567734073505840227160383439817040859378801956689874185433504836437008319620262438787034942412535446018547686664873835030235358948647776208010149345240815134117970840602510315379210715850948305505425292396895672006632424093001129965370028296235402800172412246674832534491102614032191055599636406083889451599394137485218191669627216838609266317127261104651146870442823047017027284122832953991794838546175277940288804808291156946512515549546810936581473679088039337205652599685345151391803437013026054974878561990995814022612269863731099148069034297958344189327360670392715032971126819415872515495435536483495427324759321298851990628894531265002867155567944021495789657715923426930091376436850910248552359960100863100285377769479192963589653210676079547565521655255635816122952931153861888500533054812578430124497811422183092330587359513405188403486656012700037207830975915456002444147007688332717885869087352222469003563665628417245730476557772153020130341748185387328532745310999917372975659762554972756278137116348436159456629530614627755047318088684940714679236288375411995985834748592152705836699683085912586626901215117205815317773380946547000103656316193107224015451296202587168930647343213014393351478128174093624435236672981503525066991533137123305267444827058514371721109534643303731094012044117043342870141633176712978871448326684378519056507051185105683511311219220378427564150653511829586771188028399304712061237243104873052719305836538663879316329906690122081965829587790842118693123585688171051167438377923102847351314535076400149743064788913123128191444733097333107377918086235568202728561700275078120443874703252698989862567382327564499946347438377661720569415694027963487816248199086186762870645827116305933755831689151557187049840944254519921519219209771207566903052482345086490086717208557572865234568114096570870987251559906020797222269666638508385998277833854719285799242626579813621924439112364117780539151705296820839990411664474601514368093258539098373297184326289595419792485314714012055367985357408322752547776816163048640732759820705928282769472823012212941777107723125607002124511590415375990683942689229068202415441378794022080046608866815198354518242986400083342152191251549750801956397355398365810507815248222273643708446230275411735049359125206819191403455506963627647951096149663821248820433170008396013433111543024917060649321617154165546319009512274986980138483996308714828344116815773201674105938135432985549147044079369314667933115036687477328371462819336323317151068414726258473533324423992945714404348787797900978527619323029957936334479626204108507089271566041409067446088643624975130355477017117232437795171008314365634438467646656273469781748212717158548793136741383698723586903637185019245826802212254632494932349601813132095755113374614414136068349496051312118586171268086394373539805322368710561308523800197666567887017003420935105894590457417905241171835005010403981042547155657932670904110860348687819572675157956897454236700975251512765613935553355322345808015462200330602963675362483143779375682778136377708543951474773465206289228030546046455228087964289817656275078746835222582607417410514876217312903168430001437846233602482777756035120434947973057557444087917356878781985671658955584165446387834023179141344052986363910275907274129055057290304257978842296049372137897122247768106260331577151935280295208543923228514166015823277861305838462824657287173705814364115211281412350129031496971979266616804275656770401595483014849148868915475261198682228710193212137621453967688421195823938155076921965338857166948438662557568427135825893189677603742822398696720858112383997765451046572118677539389843284042251023294906962946738038329481022577778612841447777241395059654877996283682122941511785232407367616703058765824579947924079586891995527940327893499790681443103361498607437784765173854357064118633463962338520603517280303978124907029443677770006088161923529361725372978963003994858638951921173854230526314288857290620675183938473407413852472073897286471822203516905623905202207859343549031908357356198479508075209252590422656842924958482377804872303419128068804810193893361187314971809443874048681471486534596926754087978719477261748309410696579323362658502944996095705089379212276958233603309828928000219632642154208138999322439185592515716595398878635290206677162399441483751274208691713193001909726849486713513428513064412572019948875735965440980292848057066495188489292196546815451224630888785365749687789548938084878747245925417348576866053319531368579414955536413577207906364671624168226161164304020129665145098244734254601308480203937922537489113016234649946063991640290937897060922589940607337554046307734080732308561278473703468672529557045857872271801095578947289239613499838027824431005526203832387030865682074611571871687291087497464885158970047141322074972147144586557868077373841726375488975635052922845341013282202195253427792232449967799858230461320393703018059748094418368071794658645623196697779297519422113153467311415929048758207360949517367826956324767023395731701696920065327603538640816696789717524184938939966115277147248162573524295164475657278584623369583233709081419339285711889143035783914239875310235763220448329392368840812197890449000899605677991452331152296758054169144353738571126172276161852220071378175250822472447778190516610298188661714810822851238986279970820381411133296543656224517346447323830165008775845246531956788322435549100192906994807897073459958698243382197880360847391578561204020713916801816394708978488477998017604660054558633751967000706322245956067007647068056416833512490830312750886782390151566798015162092719143346379152486064459846508535889097943697068328181813312349281756221328184611427140075590990969605064441520021634117268799601346150635417206220632000461753216028876596861022897965151011360122209484601353278776268089582697874921530449875599704564388435407630360179899386172900471413874029561759884493929708478576180003427524496796238680538784114995034469461936540422864669962778474483921070392338584648475878115978451262624988728707277669738876162625757288494213526963218767688150225004646272680266659429166593279158935836545798631110441903761613905682143921254893413273306510620331258010127005311096356116136617321722146676808641030532337438480615230615341884988591192378292368055224110666632913232524364007436436224373715807912737644037070381647835204297376488331482407643165119892882428540596604122654965421751119755745168191662031275674653717003840313430171930013129019883545731672724711089986544779901340666003274446797122628452564775572101459134940821873818063092855096342875193082258287682992265306592230075969993592200653246744250093145579831860921593332047610856349748122625962010653315851750984845145155735887415643699632486712335196794835168333036540367021161484117476500400928382464602231763340101476412641851643550488095009751566508778598445682387834055503257140787218974312803637666306068752371175371923254043255906726008520731942126306130762944254304575675450319437763661749845561892578434061300797772282150197803510736054442617963861231768798803690001075481482066864094540577655340556804912672753486145022145837290958560609026633678130654632168378392500385765566285523483551761511027559949647115399808761337956866451749103429158615032357178594753205753255089972487393765137582535591866242462186327395090455583926380814410967074050491548893086259855366549917374039694973168383497787422450972063589535067498078763493719577785237002893227524519791790328186307281416004597735345034667752585152082067499269446776193174849686785831181703076993672935959984635968338293457314377393567148146405033766890047753618578797609621425806637599293601641887042899513958965064130796749631895702869333546693644757512694568160112606639168554903736888589214937356396387271812819497641883940419388528116475684457944804870169604041002186750300550297699209418784903508643843896494189897572834822806050544067024344196722163383146093208058553988912629597585015199733823908264914913912592693169166632594256031261025333138902997142014482678505445029258907095107078280332199941086635927365531524212124409978475785327994041772543012446141564636826131911877629542833571363867894724274938795772739973892349812312938467269697581788610402079605183959589283053438838909305543119072038957471514299040129095133915422361359096660450163748102837286455064212671375299905252515821271013680342515785178161775808440833697008767660154322394037074663339631877299059210482191538960242894998371691868557939466049927708607871479041858158048354249740257261052451985068381284966075826021766975823972629050248113962900962689304509717427823742746276008303368783275087540274272393785974020741963238807125044491965242427416929726964961871602304556673149639708387442428615133591928157700742022379708840446776045467515765764939481014638589933926234363482318801993762101011060592026908163225508002101410427644450667507366762803063046206413169195193093611445606719366487017006840551677471415189708549737394916918279289802812649061155587186220435983533045444459962801124104045340653649819710306832180358387394036606924564584851121636735205082517430693279463703192728447460762170784999265892791261841094624258552400944956728158910950083788476939620213967242656675524751675019593876794547939749402276561781357293518407614254280106293132003420989671914639158256591754747577779757279628788125942173048248743424954807448029857630917777773487344776414567100280774419140118643476317548377464132391699181877273187954498623942574306846579275432579031816137846591127089644523881158946855154768056123343395076059908927014595034290733999376254880508543344112801836993986182756129019546111627984667358665076835814742779902486559935071888380142322134858017890308449581048166272315223332401841649691251524987068755111981134622657940600213075649426069137581824201778382597027841498962841992902499373348956630942762123606588519653790306872562897382057143884755178060500026050896260832817516257276944061555953448878902530696781153780619489402591312939096706098888470732431463456136075286273626735416508368560083376753550362394769896082463086687543508367977917134079919338286459885739109795271528178538931944882713631955016759915189766033210139809227387317235640721557824116173011175659845455254110353897190825241763483256487899733894174153578660128763237702747565580643222357333498632408300893172931014397134341602488594545052737018959218409584471285695892214280568523784809403426449093365832094780434830484685293986020528339771491592609541676609722877238656916252140617748401516923334438692674102125483604308759276615961832778780620127300490436462012454429262256168467752590813609958713205472331193835279246405739815821608023691264681123096795393603779078288271804798705475226309685850494463215510702921937232030669590822487620374963705783446869527228147927638983183714986496653266501721265833249591216995562806423948986702230063733149060136623289148584383246387006208440545173489806271238245017557727514350375068021074760716446352407114341555938173318634339383623587213717864256695877351631529030571031326215452743415313581434307681940026241772809843112863671212814497197037400428340036800619652034693028138501300756191011416861923006340693980804163972370001477721032080061685559504848517926153617145531359107964356776710876479149184635805381023476869486930593385793342763951963049173461437891071318417261267791602256484680769494279623461333940459866166238952427233930482862283350729176049720754911951988859678122126271446983803862801416486488757853555634509913873143445824266304400019180277465529242973249589704953855456974875498088109235932682028092626314727332659765906683135035773696572153106068156146010047282476727226621404850333352157218266729831633948558600370939103397782062274177509641143823250003467578169384933374108166954097235841629895053063303554908180238033917196327488555575330577326115684232308708565940701585530316251220403412347986541241232168832783475274665003534653721743947436996967862802948373048088697042456327049636299282118525329713059616208136881973287785471958763325035129380233675788670047955008730814864207143988975774863153783497374062470759177398457979666021814128727461075055806331837330515986291982750410893130139556642735541872756579417263495171151102243046365114959725513257299060646907106377972083255247274387646165696007382760856309335805570641447138371952185508183609481696495527476023351189080293251140057674760563600215070930080854030348642296127380250994492879789422691003433568665772296215012597164128312431921702934747735577948449662527994296460380219970713671548272325359936858073099425127798226171560306992649003129853091853620943267223460277342847268049962455155761221314132393034177715170039570846976172031155520922620396609816018158430567137059921374926677145547151057956571228815104152430516754164751308207932694287060411334067352960668478717922102176126953168607049505494022858608620775739682559835630523330204491357837667481774294876647780192973918217005949407389535204646149268783116143876709671171241530247571501071317235420243032574012809092079430715041368941713503292316677307385443917650672327956646781177805081315291945450782239942532373333876695620854985978592104757596676903156715097755157262964601772158304707658823221758098543760224986566460336489580133074378279408289772461904207524104218926773597651240460200435345759950558967249193818321763324169543951429151272743359642162579769825866865217061335628222060987089358686093561853025848209200128752296664396170502012935408582733888181392509784092781406133449775589184938667736854846508453208523387583452067342197700589738587461474494658772883074892250866723582449411443241026179267615608673280833382499512237105325331244638525627569373525454664862300493619255328779708897446584697473175971433348248913591153819173489792132280669478999762443511433361909781643229190727759435571889446007556090457792098898491303537714049031188613494853209782758494978633004243266529944925545938621309101304573279471343596726551682988230267077515437806040482747611257065096231378477353171148795218422656991755345688657487024105121148795797117285417369975624885423967805340062321038439166703228028636322124568155604532449747395512260553013282901515733798459968738254915222772320781029079590522495168507663512611061206000961402657238012388076399961751509724763945452273353311318745666773239065480636489977897542401236502308680189294285046026993298734540848863169292574777508597920667831397304928222518173435930731837818081654399933173231599603585005708251183131183109492057206303690224713428305131602267264136612167395605752718020050269133891621747151769720308046329697415700349193036818154721809776617590425094415830937680687809861545616601835654057536219553418830910928182003702592812555190797480922641362476551977416172419347407041663711150559594000152046176835756367105775005419962221590668252117150701516365068912302270750010653434218650580231818588738972128499757074415193967904425520074548582036603556191096261311880633739594886588103890997271342696447664852946635803098884991433921871885187947247921839970401406289620662374258796273454475515755977383705925706021978486351198041338204663684691483692156985941783499118682212947348075710032165869053378177591256128225562376276226857173746580534649730252409593744444023918557752702430982483146219045849086209274348997762480412949181373070016701658441135547087712808410577544650251720900956685872959910622159140014152591606010596645613560687924045986358896452327705069462556871202872271554257026804953678017445482058402552362232945342058978389667458672577364550215806296599139047313948376618023436367214103482970253042562039068705557524341088898982761610896096651410285375870552105134821896363027966743432921496749985343996733588741626096269978990118768499638810733691457542789344403654809323683570083152293086983799557984975706189334586670406966272517687573900407796264254599423398812710906849227218164887021163395392662952308315879435527002361207352012871110814676814268499326774327260208089237684596773413360664743654361267427889913477244157036274786766587294975186051243545101540474303370832895003837723514083862828380625331456642205025821408770135239887996991464564825936286767840021343859129537136511492073473889925863773903973685073298403702314495792041826737757266375601338644313404571037389632073871198034904928630632703914539987558267534994763374953286668000718427576333664783662566994685204206660262999166309378434824984009386492654685908601177486760839555414555969724623269296752992789633716599339737168724780535312472049242947349306278476148219292102487902069915288597343191087305924636036162836957033859747589930651760326625971398448711065737729571047507828319408648064283487222353259578669902621772821304197406654406642522946786111954101170801783005126893196096770286082760158926216420203522622915854812450546607708456570874025454587095409918931778406616936065907455664986170167909189478931535690039089264571199185086893702623193828125285386303823687379078737980130663055385232327033888468907586157533080122138456091350303984099270045534948905881574991133779005416319401998401409129804389581656750210066462467977123119590877517822470418380737498775195128474819632071772352593171734412175809560690358848200840935640437595786515231558232500390868453658776824869871242986534382683981667549098116830543188740835372400860688604420264558444436561192834399850089337943803066310252520872190314609293398389586856942048180266045314759099200849813922453128982594808967722262410177294406740271283712007604907867206204088897522089863300389908542714374706880040126540678290360057214010985379465893287944450568967852462803273243477274252113858073896568754728455835203166946299285479165583354942617889271048028993660390485978128928309083718691460959722341537177777842120329930937216778628254848630688390546536128141509425344109067140039332622607998824408439093945037572298503114267352797624897234774469442282713322945865827798775517955320736780406796963636193981961608486136912845730616345158798217323859715817773218071892815738599128043282773665170986021736327192299158820454389125577200026841102801102201655706182331696381743848241186560344498454238391702297219620927363849476008586531150894102344219852189383429620056028454589404353340640407649196669654695327235570924968960671979709999696957858796368561721063093572698042377632203908066398785371925128062652010323923804677949548203105687864556125648001318873827068103015583837275245569210934617904306550175153694387877575287970597392294052001803274706280113245065560058487377059167228523573198039239793671237723288901235377805223840739532729666892899967910503819880510971522741239970180725649114511253596176245692649391943407054519210645017429549367672119439209073271758219796373711787958208631096295586861370555884105167511420971525489467300496844402850278017793796238710349052447389729511704757316302741029570526045151199722818364884595025269205542123832506020042861608524783529084638576404159705374340727184836737532588714279528433176191543108050590483047878477041665065972408783975763960421888880184077032389980978863764682300711872468878197152305036473335664714031828418722411067120628103534995066684226577021854856523980377925075420147185921260058572993747282121387637944582468387781086835662862861554709074634107923577521396554388538922174158952695447812542417753776562685658344574344713037832081693339169618033167741092976551857469157730983930997319837391670714562407846667644582162199731974048608564366371023320778106337455951815186928931646256331460429185723807864407695355700597067794113856872874963807303958820683163033596228575012632092786421580435334248622802970555880621112699728107915923289655411993178412644848272525263775912667381605923558760384077108750869978903810652434938709327313477758381922499423782126099290504548857606002062375046485698881492742044196882221130284304322825142733820215893056847459146978913983910498174015731218226054782007670474181206080621655464405966468711686573856103363298925084952692307716856851302122667334192304100582670176143754836568948101610949814780106270336881900966501081389410111565397664208549221360584380546272739341181033849393343705869009265996408489218200403958854807841927965205337120152763176094926737645390880834496124896600949704807699421181766277595486514383884774020251061578075098094996970873835199217125417368149786886111635900394269437454800813385984334100623923037350787320554649627919971259269998695973510774510715229873001880116846636133613425984361306675232183309663140693454044099105519500785327703546855546495498461151879525892695947197174465174819230230737616339258624597979053571358267828275317001878059787185993555643228466559494099706840870147639156680294138003768625441895394421095265466526027109502492109562836330092798312394508821650689485943606296954691333868184838610683616360318688948312330530388262171110862971503379728632146254737587715230332962223334892922693703171018077615201859477991043340854308843214401135782678387226065310829325841559172273541845117653088886845263789489677057197826156539906820851944703242108297572211216310408868452496939877006379089949163026616084103683949427628861782933893692604303874269877826403451829607643474595533285368685563697162150940273573440879298353005033030040543343572651370738950134368195432558892364958688869961619032716189277029942647786918910205758429283957632424727273365079843536584067346267233251336375249096540323946280644561049056794981003909390336083458326948837572009842277057421260923758850391903587401436193300787431915470042550817318033429585427064623838502427905722621202737668287412203665879138166820341295540597145037718605188504009833921478382759704297616048263671263943603880347746468322396618280559280317353430071030614865927351897983847221932323901155416193736872415364492455366441696257769651384027118185395726809572815821229239921184994878254161505066295175728525072888407038188319658163356797464908868013417226059072495509559219896203776944153719118484119260514333339878988249679139268532756956279857031468283425089655190437905243128605052193314502428903239981898841633416156452956341509295475775096277757358681139575071490411326007312944927728138170915982758823595275325274171585402114223019206887122870683481757553410108782858655193330455253824635178491976200186453704657894296309918465216605308298485405442713576359677531680481155490130647215933987260420742037121722931488077693876268756553954954954300231110852084004324246357340418977659332408027902191289112918551544127493825240781287342973391492465820395479466220380392423635409986024007919611414646882540328695061568385594317855458861954048204656772176812086641932498318843535388490511898562083054946348143123796720318221676621627944640663889393306619926856111717935621085781586256650117956858084557659996715310450726915976908149643842419006137870968941703502653744550145927620402127546422090463924461939011609745314056113730682997878106323482327306166240264289211335296498741336626320493918365264453852051062118167067776829746024964973724246878890980801380564821018108697998114830351651909267292750047940081063553170956193125159009258623020535695924829809572230357659944557973997520832900496796190326253074600784216080575283140505987415026887310214094693658791472236314345786409014736659763992467600081767885981161255084022546925463824107443535064569364475991679639996380811934212169621608474213684484956964525964350757506151870046479559190450162647591768538629282873163299654636512472054276504477814615520871789383607514524426256058941015038136109670546601787280424574297102264403477090734733945938907187119739522841653761115281443489666184729427033011940726087741219574808026972931112582785456332075107982033939141608444433865254715908949656179072977838910472762884131562928499046716026005753812650048853800836011877067756321289016331629580883946144475352051784521486011369356362874901844033680220008268018240632471783913162911971209221614734095839606610208254673637148517782829816821514527643587227835114048711065498923287232925962103431063090903203172744684302229983029031261369793841805563030817074517121539874517429930535787191406272552316311044415979461556459822882262849614728335746141386903935446169896097582934954741034258404403552319831230034153450600935615779423538824774795044458633002300340102162895676495880584405380060426867834351773133041006493369277015602211480123727529201465113514087099107149377030979199634738624401789773523960935835231397512173025412986064080847666795808056508450006045699750370294538299663095002549600250105595520506451537854429623158533599684613156372536060875392619708071788704986227656926364908200049348659745117531592973060343582180650172982971441141389882195620300708338281364336387669193701033526533708468233271905635285918955907300783375931922023830763136905965520813815400940189939434854395912598209447107986409798957185637034964766572554937137125909903769177976825192824122948583399117936816286382674224472294864952571555569595302805394369808902565390245832617877362921512947160573470311032305911580224204033817757171805769723998406327849433442400683996904618485411305718136487391609980531772774198931996924312850546861047069223793915094644253410353293810101141798026851497831760001863616499497464815076333168460860056033840716036068609338782769146294344066610827682448601690952886959379958644344232426415396779102488193310197529235874177039470917162612519114013192497240723665299302179859734850247448150545523576420923260907647458316627723186133119149935302826418919151518669302752607420054049463487722937144941004071263026562509584930582160599568800793362156933083894831581405846328846654587761778191831129244248943102245243665490097558024431167242836799685754819466047396498634224636987838290346700399185513860860401516896028494446767823055611662391916516716599646087215156001391910719712766230979489589725380992869867310628041649507521889823074486442304781006851045350843503573079603657426380805903062674226610797423429738240655698035837331409362346639478851607420539238990908516809325078390084780154204954188950137712683933613246422923277685422196930023696200251272404540646449698663225348578374230210560409662428783236523043357212506975624326108921115582593331676345252001627723556851637974642273959426441370814981426296847722412026946634801586271291213341501050275500712423854094477550978475262841661261711562050439056841147974748426592947318735666781844560244343809159178024942308508791818259849017130111719961854173946045240868680582749745447837575966516960963527612572013577782376088238504273263719577062167430759807151563520235599020109242159980534845193730332339565787722807143105979909093759130985129385047535421859559658229730679648101053793438575663455576817671278527637820018032346525705122439949736931230011399068843091919164564489548490339529380549929509715809418261537802157629191488677247133349952057359068404352021582971610167011446654309456755021348763161196729580160221257646377659475804592540787747688003228792167276106531527847554950203380392719413130779510665808790879677261587924199440900462092352756889786350137855880652048345647432500121226225463876044501890651467166891732487642160974871959437307019594403770026416267410629321984802267371450826670305092133210083403547944543356274294996691162361312335911490400847696585066132271193369221972348028150271273188610119577560835530734933409942942997261603088524958845940214834007337257752551679792749219322240976140116992844912190476704098436882843800663765922935177258924750416576101450166864314059606348767521973053998420447084812385773768434936439237413580964561220128466320168826653980049546376669387049292350303032267407046007646397537503788915968356710575236226150914955465300854078968571857461235787703090132775358737134018149158210158653771479182317134339869816658640719291416063706877078257978283072386980585790398213763575444402765894144093833941977472754693884528528470403047769545075297202954893624606169980633960729941549481731041777031076867116522179516901037374781656847682904944342832725466996716830398565749097382633876463391491714486265897858072945740651221352580401791508407868379848247543810694228354938019437049338151336820763430514729682808335070767864603406688902476895972161824869170437946732771182213780903580197483465670080883055778331154469701509674194868320726762527130399954999514289020304573570691464181238086018484704865856172404234397541547817490694722225399836172589083870155270830895701403644645870953287833704874220333738719956529341857479585031835014635105461187412171421190618315204186349255880900025577053559336856584783446216713182276016195033422556459108812816499708253806663072009902696844626486931997081356215231508864363261919979609904020411121919711867928246535811922488859061267575075911391707883184154370930727902014141491176294826275514530893196551873468655367745522266715343040615687165726589625618848941700407544586837579847416882349264223183592044743430393446517955861746491503372622270246753681828280694446146818670696618558456132255803438665421781856766195852395622174831877967478365089982104501225631600487486327242711528613672102982122746472889043020572528703156980428944328438100838240660708221302472175774267613512286752805405973572311791664940487411251468152806736988514235696751683840909091238965093250639343299969211154698582143846498042613152409087842545153272524363589514242559160404123924298209076806829128661878747475211136367994452780775309913597267572897272977402476523946783462561933568487877569741061670306353685848873374357896423618938986938539116935402894490388575035838843049578112873639195230511980171874781981292628183167493981965374008061168037735730137893562620350154246379903887937446818874295598885695457929946297623687681058768630859947690460268965691019202290802509863200324134906419857240287748200969806232125165574609765081191645449693890953509168306547713886076595498303114290479941311402981235491664608276058340707529438349976078561278092825150150676946245352750013409555995764778793470387106673378984840196174719239371121947997469053837246079709145616836304589220123525028507942043150150109019460800930854281174744204612340002923079666181624721167715849186579479386699476526263481559565382021608089391727541082496070013753137293180121396153836358497103337969856463166730236428906699908158582083986074020320618436137974367470230635375838614423174808472309327905027152516056624174639330862227278378917070272382118388016588693998061865490490397100975186500556797497509546073739807712439730286893464505204925093848943260836254697255784652811970773584065211482737464620712682898770462888954284194459158775884282986581136267657522927973475654207512655388649924748375350932109965530472062697362363600752924030389515976911605737377969896553737330651484596783748132300313411911777746905624914048813099702445010713739025075339790593108816148243968271624825691537204857923279698039676684717745928223546563644351511343513046558228141118857717196127629794029975677926042690066299327276795938009485067701565984116426210837630563835296880455675838015150447958600891433480420698361497203841061146703779966283299117328521026253136824010145403292816453868182697037916283427384710176871761331927826801140965269495967413630326274908424217023310989067282427435042814142192095313401822929793066590725569226837252352155678157106985433679938762039614695035034282187391735385411548475791792622313002107836644785279687760443157913666483560267554879400861873151669346938498886019315570159224386014174432161259815157875433879589115692331276087527608319775886708202154688576627839313607157559923795448247926858219300804945336883347767751016170558877141376263747502745873536443673306201344693984895301579381046140358739635537137551982526501964801167004728342197226615884968108851396265347682099173929854656672806341211159160001068082043450640613283416123052326194683218547424592250544859177261667208554859092523914610515572032616528222433403979265421201947734700786985425544932079576358213009212144739647608025022942462066164148241490481546374171835902359453697355158582126502759270992871595343566463911687083377663256978586568639127239389198049371321003230651249695475261863625938155198599185786647304240396435900540233318067291547771058247955338412305583994862533243863220237913056796937955514858182646188674313446817080527748023273188499663201772687372913556531621754891204819406343552259735855674451930262248541109766846109868754853938075436400123014148512222459226795369386801216636900525141841254266898227436515585791885422719319429250660645665766037265619043792686149253361337185774291369341603445758446928912736570984072240522194973983800681398341153558013325640677814435952157175108530053999523731956626986736541098135891206378456925492794291743389490033206387485607830689305038221463571615888470554606962030011055404289813262701939066074306158451810804662056508804473372438137239346583624163404808750682536950762191753620873265454964975880947764588382698402574701758142875480645087252716543130236663083232447359184706858649892343049761222215509179480694430843309926132672952290763863611489638072658097987150230550612647960707471449113689860462000780414625519358550580546581174295523451140254364244112914947007892192966870419095783262907964696722066926780486632435751788651362347434817908218875106334979330567393194824217010769521018301815915254602637264424115335167723181759947408661712523980530571924506084731142155027418235082369137571101977281795612786399815244439655801367737976391414329683412823389180869405818703975108859568411475790470123520990055415027983274621299461816934831133224799771492761574933972280645280751286935762327949075640347437170856098118719242555838228326183936668227920826424039438319126233401616874461865391657987061051997554846291077657090087642514097137679217024829574475118935396411086056258213906296574697282826259541622413445851419203119091142952229118406353678226525410968105057520388682471459123843160248308610952176153608549366252661040412174833161471899210921035834382013146072640966436395856895329370301302184153106289398588357114751591256361290693767184197208399505318849879334712305065780441904877733348374462331924866688555020731613736266008635723172174581840757499634538208943007773499685972926305075879048195184568503789345210918256024016283425742992051249061318504187006053622795055623586376675365564888150389109242953145112155159861817305019638362962878113941404259269801235430507062578057643048472348602237383319724610030530880473724702974755580187074622303292450941034272498292460231795118129219933303169559666985342741738010749593623485272452593197057700510301898405439816624970404438499040095450052341084313657431982271749258674843484249601149485181920129447488432411340920223305092241833425795533636846274132199916375812712606083343766088818142331690798440920407484427278450120543239582235559538703939419023316221714107491810994402894934057027491417769850030722408779846523623409487104019511520091021318107562275988918722964081586379093586527456176097946015078232870133717416602200971283184918800541761910728370025531567676416355834226586378971287406766179714133159718636566005066686367871206765990040368073686417292762401033419123445483899803552828598261137693374207507982549487431789750390762597687796994563571166210019870295031273531179331461952034371749015466132157664447615482366116863728595426399534873505203371319189269689483812827808882133639786088016144692794476101401561878763765645761914140723826673076049170438027092620245811489931386559931375956920582065311399545310914439849915285041834442454211768656596345387183310800106277515317695720074313491331628984755493619675471882854576832705250377494474040690966096817234113958183213665300857961634479366612857071984712977305998137588495749003836751674161278840545354463134792483088414232458410696328099260369569298086237212166800465388742393421464684137676135108361541489289584122680445805457412909540618865988184659163293243241985546976242451879795674080008888030071771591333077633612695582965078742650249835259790209786801048260931253087354670382340927417257451433380392128728649023799743902594642114462291365923515198691211089967560377072265437697540435648918416743835953474396719046043698835385904544100454300255352136723087128322728919660279057834492129971047616212589318613091818828930601383868308360122552286436982905317392279336268727022675572953114268401933955788303956940220000073766685276255750964116448486470504393027816383256593756980637503789090251479774233120473585484826671603378190407321698496939522487638552267543039464014751871939183675759053589045841303733758552096112718337342791682348002780830661353227148589349400819648221617125528136159949275422256481403892170704001208831248462346033843353415737367858944280087286719582904056195338953554608120308184377783982976220415903750038615831639222030669219520292025034407948463099684988480573101835499650510517873532266921389146557602940204751977758707680978955804655215217753305144783288405152952684177333354045747672570113551935459415809124235062055948974567073910924014948655480455723930130262287292717373261781243776268861868950867809789539533893791704561991096979281567849822785283410231282954117391437668539314422263815374342856525300651043453681667320689353125193273504031452474207410446305416976963530415499161081395776026625040271703278880153036984841728007642510308254666540037196220561385445040506575020298586255265397955261178003923910053320759256613961227746740612080294690885963993344539922306691141870586173449261645257334167476641093030878618400244427651660088056068359266648239125017177743081758109087145599860085221544553712915263271687493348188230508067212762614872747724192594274865764459578324679519701144971795463512842191416776059104025533468557699602606135757815828045724507965947208486788406642410730097248430237738861674448463327314867538061184981259647550601861040024430493396274642293279929434749518999155028307108597931652596537982536332696828628282940133196333495334098113886081426982288136124865077997328679352459347138325526679420029365220776769125125834375687067536757639160069318196556187277352682334649120867873217510656909861931501694313330937656288917600786407727950133582484577072803153831745193220333376154253244860033265628572031862088502751578577478018963102815186196078115720027556743933994594637358131365391758709013147003867841696274382113320398894990933143850242519048718399931303842718510651186900996151574604642446905232606832833787568068639464725650381654040678612001325415642909480309897595507439504316072390105048862788269585641508788419359816816055797576256609856234694379097629964766723172650782735646548345371650119972962884725016315077773362783772101674476310306150469188185625496725199564353098078113610325521247114198603359875710745942981409998640792538419568453198496868731890775108713511348183494495369845861945060581143587983885613763227952396102099118523569080741273732635627841142965739852110701686790155235856562442152496528430539675975430515567004030542710095391414373434295488398517001372228835182003297365893210269341701187398059661488985967185469101220996885006834592601101089427645543327261482289308956421986795595666901631803313526940938847851451905742946419786613615884510752092342570893789478725350885225329216456772097074913709197535044771766914660334065288320361272632926101556269160728026765241379023043196941314815168019085420729251896001490973174497755681822518655079292938618096062062495302618348750892513566369154847246032950328358083189689851989950482086123375878753689863284118505820877243715310333553700121227136505963622553600696727923451086264394737695839233541883558255646964545846627449175517387588423407372021472364533019138713998188433026776125002646184840101966761802152689569141154487866573225928998203355601263463358732674982818730850763913718595430823846179770127169163066994490188719748662074329062596532691906674260929347393097129133507737739277498395626682015747426669164129853116204668568655022382975788844838633482788912443850143499161070633603861039006786959264238244360025745256210700697873020010895447185103556486758555278037498673105049751507909466666666671734856294979983444357071919489438339303437495136785645348849939870626321239751203327111568784864392021685434565971742202608455066795526520517457470760275668823995749162347225321751487267554415747862814077801051810671635675864676144198800463323663089869359455113362154893635595424101829140626381192832311760451997593303008356801142498370146286435438999225273478360900659947118826498266863288948694262615389041448464193259914524023952128631085463232049682133373720231088261462831823226750532523119714421185617958949792941101158150120840311566226745669273094993872163187251936959025596972419550066077964536360883304807331040909577402490787824580623754727316094548988263094649187681565623295532894101137444397944626790668543985265523276959680987402708752456162175736296578254451054991478901947194280696391157778684317966775449624241036833734040773549703376160304457797709666614914592985816561213208919458294837534524778481651800166028737334358358320625933588250786689385984349259162708232600192953563546445328725008387287569242433742332683350365031637883199360629470001663374319592450413854325298583159924397867407925733813323757702702155472105226557693071287700556024036167769809165188343340180147416901823883649910082384266908937130317473743040261064634498239413809424458789832486934916930385357852140699325031097828921418162679683003718224639526986432157122766144360307238970728469365461178591879924506589071835127835932770255101619745216142044179723507712990769579770603040046119463182789538891223641998773284522705276564558415154102818432388024624342667511367499978392972996617460671775108695846094545349192025954518151676075924644224211428301579089686100935303446181427658067103921654036257372813660415545432836899406115831499047453368287678833604840806527733588557301130153628656212707592597074771088013783511342756293929037855957810457838380146201362946381613626985042664728059723572855369582897236680772764530943249734021246124076093822498798175963509899017700213682697172209954308421983217823049311299234104486241314055010505296285003265835331166750114656472256228980677247297265798056269398617585558798315737266702412849025900482559139399604675830953965634661414699458811763621605326674269626579918464721826685011664096539221116698283841371734240757053361304881846208152206253632461601413878308051412101827980010485713721172980684620647158875157241118938497431885194346908945087604535097063135480168434964975758010102189830398770494028049973264640179370544903949823078820839629751238614926068579557385002267208837671962741141382638661477778473236647485798185713400341173895376939293508039603060309622150883084756066238657363365007571712582246173038736601940779164201333871769732032554818422684006212209861433751343270659394664200645366920866154058583465100538053608093246479736189600412956557870040942155615271163348207492678621858589666707287797375944055422752539136338769843908735870940952512949296461024478378358716393256904545847686468120833150149223094562286591263303048829303981404168343342667511048667604311362332439440652110556858080704990518329165157475451410574147135625380048639282320465403868272904271599895768844104484368962404795856094610862101474994247916333768530517254960032670451271582806643172501774081085764854219694962873274640543979896702575479775553426080581180363751781297751075271803519936737182327575878791500401039951451219962663191792974587180844399495752598702148425004653928840073296601572882329082600285268932821106297095522342619729191815717758518489046519601703009251552651895565093460534025086034857401887656540767249197765922894377617413320109865997435024183248906032932156049434596668014835001327616454874556105270304419901608941559110642475783564067639993295494646089691500922011478943459887387113323733034848151031100918475448305908438843389709941032546034012313754633613940538889834902838475097821472317938220624501321628230383526485267826533476621976246176655317577531303811061866159461657010377079119743717878046396434037650204366889146757593565268891262475110843418161174412685763309161495527196429359292845481202688427346297012649716443235857570956759770378079377216067194441464222215628033210473542596082890065210023079865881431937384872601500511528966595755119275616520302421068268777976132482554290543168632539449606829479023505975025928010547980119262227285294276374452032218250877743076318588686805554449536778346909882865302980380410192444193722196452468701278240271724167842903133749983810548125953996815918849731825826533569861289385864889181318321196708005592070827799318108816023282888729839573294044863334391768201244469637051293778806326522689741440111318603487345600674893663289044013054222987826724964976436601890097572626427253590822841121140743574269750808608809198818245579395242511927340737004717159241058715532928709678969240694806418314668200833847887006665060089602832343141180017176233049660218304019864754870235002552945785121734984104434640352704698275733241008966678448118088528776689917000221446635863489417972525340125885160266235089445095059424088283750295936126951564844231902574872518934273553875142762433823935959906880806943283895920616773259496448550048797653312746789088041760229050715894948097790335569344639435410856865952385251370173897596469242530703662856737352453811415072185199136691960712548837804432743174739127832238364433703943898161228376554733194787751008434981856305983072259985502678893007636709833836073192831029133722150573481215137680366628669968902835617911631636645421823151453926124901563246810981752830201683592666775881409348714320071379222442943954927352890155892786238648567130388812722790491552035643819658085877288673992146062696038932643352825699276401846453449717040552081130817702735051317611446701717318330072154129301064855805300733742670663196160659092502983857852961515662261760766334756676870204251495562376522178939027540795714420305134428650248823475840479302416955254956691710240177340921163336785358103213864849687687948459089000915711357390356738265145777082296946180351213648640300769906984884019671627728393491554791854998682888336313834951990004166187579279921748333859792928405871812283333778714029841972318945606292835265194466571789457855568665661483242441070469211183865352461337017483214053973309000505684647861016204786752577877082493636458395321724551780766932975425002903783746912639486343679278734848002239800254120314654544999989994729385315027156933896098900130033537084597629904112986393664866978550828473611437818034761045544612723865555477984187793544563598625609432156751218864187970316848312579574981659924748006301164878346402930033501750167038756248422877503659011566944801456710781075876591826496883637591390617139119501177015169854846137697939215915977656874709421321318787529384131975172257949272972930887224761608293737339243659020378070045228185588763534007737731954689739487463392346391998890792784598974688755328040150000586920018990953431410749075987159468803482985258170544011127334685947963104193905353115773192157491159943816692825326628714610537730485302644489638837420826136560317969623258523004267812261048028047592944519032197973177972873255153716311294479607094321811880896070353102635882650926339798715361983542684257010506634050808169117071873560793322505613190310753104307922611916856699113394877314719837660086914507181139867953632470074191163070686829553282502581611055921433640595276197010387764773411184424711839166763742337616366047444762354942058260594683526666775796995649813664016548599687818641246748083283266216197642700738807692970078782516967820027532548623363907621817919366187612986626915686812964557474490258004611973160892521407293652279980618464033723981604439232821900307970245578368935945797463012997620224591310544151028761028533101130015462237303214421812036724675309642004607991327072031442305939745778376543481300328246942433822238028932844699791821836598314023272118207275769426673400135681494250804793126624754511913449315753407589529084872383175177495435414819656912875527593861012757421667507696440048144762919844269120717155337094896000787705105507021258511994091935340862570532008955847797396799930302130297236891455585192382689459961312350836035486819923825283122702626611113441318780336711688824966072350918654145278623981729900100107080306066246237760152025914193335306716075243404150067807239503907372799702983730119327406533124597248789356180487686651984557407616449966836956018412541924962244032107900933239427179560247167481827859852717323440696820432326901921815100593080387570302291684743917817420853148516220078210432216541603620224037965559697660799588384640322728694707823899797214978053725995649737173255964188133671586310163552252710163798856117763761418572824690563505884416582266224862053051852519841165930260366784120105876375193502939681446168619117244323868938380848149655719891486641470268616280955861209197605242805346614157232938200644808856502354241950233498785059819895233351267600670259804310954371940867213030200989906956145010795844271682540050263370570041255869965594670856906726109412571577631750390729599320893328199528270293740391216946889143266309350801074940537517902906769807536567392004800529227254911554636348212257549878759925294455741556747719891160993744469861908689769164148937063248848056671743976350385585514717664125351291282878067610827784961594087085527749956708328680713078800382131741253437973903681224490734641894576076075561122529702163707047966549563004230898860926009520395716712520767287312922951785517141994613753583646570296227409107149739173118824233348400688854337995213931312455750343412912970202386932740036380572155069406184200129282077686399542230178146697743561629142364893195394205212555755958470157487548381575691548273088347253184276265581184018691403040578239804979394294133355054097828895127781919643454140495853765175042843787256436322010755180359708872160816308531487693641816076274775654453570021192911944054197473820926962956097203341712741288302125367641316522940892281676711733926178129644390794013406874461529474678067507604887004759545748069758747000164946321271004980447484380527272082845121751285144163732051203371976547254459158815160071776577802005332447048037572038549065694334819637977461929028879790003806967339622529796337330099507984899686232399804106973793204345164872797386332407231669194116307867837429997512434483111718844003872049650602850973830134457722094265984273477857008363530859468582652552136278115255543025517011616679032661459042267511018408907355844897985909800882719425600901562338505917377842571139399996058116271341550366941507426482097658917978784201202109797324905120697504331839946945956227875356033759998255063543647185282732536954595749140264385622872916527948249319492573042411602181624599787406707716963650965993931996622363134831207576680839087842372954516843719343110192901885425479346886804302920696693745657079720568820654991138863041770206348005653549174158745620778124932820640647351266146777255603686920127911493451605752075147441589857937853059267090283739126427870125160928505483133091460817693029662503238976427063916270719286033455267807713118678780557052686781477732787607122025656516033183898072531063618271600496766470439323475813790444663050103357878618238754025819662555344270049069584927485721460560882182947257198080500103354541179102804237148081281191382463269703235286409993125645940459520873141889479974834087118242516553901219619449965644498391339943023473941568396690068267852301847887118682529603965728343599412453953357978045562226383321297677474185508751336263322613415317790849214220348812376668723332792123598348537677327801038887746173842861453894699678106280935248295238443280764447231418359732832530710310727541252931942332718600698248046652165770689967070804462135930733123613466318711559460484275087967034176453943399419033228654850576430449372946085106703615212476590887819609060151975587787846985259219153529529401928146503489430349058026805471664383914205408083357280362167820698957203269106548645679973894977471823003227389122190007774303428294069828790934547290944113958552968076046066366334432287451420205766530622943884105710919480956541986019797634858906142405422072502804173254158522286928820493580342091810596390085012414305535541607881504728381982437274954415142588880777291786510091173714832303769797446653019187347118078585055919154358771263190320952586061208760118712256187232719468535597339014070153359007628971599758200061946858067971898933074816744797449309143432562777057912737800970287210184040636496868916924087785771590687821896549346592009532458106238436187900200611076433573830863305306954781504007043001246897130620121538990453286525503073534459156036099674199779687041383022408222244246514969589964013720658138897558839525898103032002175289062984370266774952163024841518760018627442729444245490236470806022849887084057820533677485153700493843689999851358155407833462132489561215003056585614969204253194578387490993261907471382664746704350110283767660306732659005351554628384623926553254968184217302743015009030667836963582300784024167084856878916027325788993504153283625463867337813499481188081182090784401240384837200810372952872512166908182980220895232863161009194775398077555392275203004285169499992611965119731463536154556431755816757802303095215017312019540801550861491565379694555023592341560669668594704292483840857403850113001303879306831269058726048795297795415835475747812608468356646382203509935255036675435034723810880264934614904464369504654423358577369890454788631778488638970976002447138228549250750476537235699234054157403514745241662237247199329693578858641349077606830289918623992316112703777314605928395255862451741166770450925799602968808986659932111574449975382299147176992879700857396077846973218759830324746937131403251288999903220150863279131752286153235399685013814894187434492315977507237812683757127145106924708239153556414972481386282606351775360540648492516402835186643098202566463913133047453916980653431549179443004129513632011891355848770699286104944517640278051913841441972158055291127689478044826104643795771197727095168221040126417772186822118881876547906357254984946000059233346631584943485935664459820898589573819693722182845771306492345650255771980642096388946482733076212476282857083133335832356874443634285739972674750808043338992119523081830016678847634452557842214231791680523649796047110438723847639121631780897227577961884481504832247613804529028487135294681049063131744115236265773393424108579903891253000952516430057163540659310555047403724885963114160775326065947723772186088319346583325630053007806209120429303493091205594550955841635402768465710268643000828074480392260391172060852288332395983288374168874961713420694710254282003401322641686284098699358224468129328962279293406620821501700391877327620939580374706760436994054942692053453471622585959777547534065259607282056587153626173211886205049748732928636231464886987536733849757241064282288781719982358597835078396724597918164122475588585717410069410053029720881915653305445215041913263241701665950184347637519549919494389446151612505315278070222591301358166434733422168114675164075036664253806748400105881679829841025957714583630313120357392365317005152922918730784460217553256779688944029073413120983738639215803941969513624974592846877633651991594298924418757039346917879592893933639640226810259045753369177195664588354996139111871743949900829372499593222223996694673571144999884680703240343821649444477571223295081123787245981833590597182969387607095135027403291199705865717439075402152451388486454262025361159049268722731967014663358644456353411118427801496008231322286629109572814249481752133475650475506144184317462019364249518395822707811934268067449681292035293117737744624883631026602280783952133973571834865647824714160320391220126023964970677249641966634278251178874830406194455162296909121887712492967055859767426241732346710246971651241305790615820933702452996204710241117264807248814659056993287199231193100923225249052135332820815357784837703159557937791127364906647214016916458966014833503168819910189070957147673864095949548296844824343892688505853077192739629537713523368519490136181458857383759689344047006027250501256318482778326840118994837139464545267722014834367352162506715249560677061914673697798993949075733243478849269258834892761069310747112311205359707994102582295206189096211357838332949573314815139798862034207546445201589075501550257156734183802813687669546679279410644768532043397173955603120946903276360472770006968206458784439238652444374075396979239295953315590893458596875480420766463435697875858146625852387507324458134493707211459269591079720962102829455314561280194929539020384025672456835126265488160422488880235043989470844642765684463500244443039137787827384537988834067889577462367383037748177987043226173166761500546861921545888478684446515282808833578822716934944834966489856643586584208893494497474235066142213021661799734901346284935587328119465617121829942494856513286013650303508076358025098596361205096510072263426539078459812868909113751640892598102206956469022763560858250076798818583623834649846853856109935901376966711089387682405322734502523766873760702002291496872065318584698019056727406718144378716108239587931865108914198370312721641121084822644153921672646841915114968016427370455709244349612722990496404404070209657984374303815573613059718846921542228888842325872583838678299440815931183542882448918388301154551807158731335105404518856062085704488433914308185981358663716008981094739091799276930359373382805192262140095793896974009110361994078678344845443448164064660845042348556557911007265914154916220337179328279545371483578979928833572847370294623179933562882545441996699304482389203468477989989487475887433180152325194100830231076165300454905232255256496802980009357047898465584146015054298706404279859327532979077590034289932694488252900810469400129968048663472717643822150147901223154701929081234535081630713735642470434191462845716820409962044730887241093769347341279424304521414281412633407298511628024793278448956573515309880254993539682739747482988010197631102571290912141881814477779198301054175205028381790176560977085995474249153141891820609011607896968300632132865581201276758339421443463995066809324918294919882837408390752068706251254760368153969207795880927835692384916674954459809417739215912704397763602678547604111900808396053987075575320428946638431763700497337528514480583013039072750482577444881363496460621570867294077738368585541736690502918418242043592641194257484571760362590853798847131862819952611436901698432541402986031950592839910188922614717143638382082223683099596570383639771464807452235544100236767211947176430819937669594649366001047489901238092850391207494491981364465274347138020204495638986410808869506689276084717100023822472063499368972781555093238234797499423487861261255370720645294296451700668421536552560139525062023841212031950807463436337304028206934595206847563154715759671122078290829518690311818869089960036505818471743373397550280002852891393686855523574046928066455690526939436249213047929814839545186803169601895477426746409341009067786020877325205313107449626756126449360535611815501568277652908394325585094221198817952274519004584824667376311644377847420971036923563991154397886244586219158070905091487246931098024994841160635145588726999700827460455159292940960180870088540839912026739067486011425820680135549156252436412935916252866015723601283808521950313531673893424424435102742126359419396847421581395383481478168446506471693488262547720545882058091239381287853266068011037362854356048253730128448076070888381762233398061494084785707077242848582337877259281295467956196449977038933359464461481595510673755263316691883320796765799741145236274178744065980441079495060263245885005755949560040282078022062811465236971506005634166513674678177983230791528913883172371995715824787342378226416917963740050414214286020612348981872645213803745515099055326233206901723071286850986823890758891951015484213666050190753074363664692965765665209450828554471015772209766858522033444564834197235873224608572423363922236119760386694574339210609818092536855888645531901967758332967819294580932351155071303145267783175317062220748350255845740934282277122363748003379382336107168593725687990699558308656822720658721941506271924497672405318591517459248060024993615352577582237406896732347243808056235902224674565490686547863594684930728306840103475359072027441115558934433465047948625103725334935128153959359727855225987899037789056490234996478240638627710949970340500763724042044318647432771066536963334529947378840607203282710440831552236329669608403326274743561348364823118645611036953610876817946751174644645477285483115896260547029811433221646145299283522346946744279139668663170691046325921433603422587612993133169827883368619840600906673269918362555368600229465998078101706878695661824176831577343215209965993577705752884623568808901229996082396524048797330948508708765557005959082399371901164768575676816007620871862245653393904595351450756546977576152611089639723218158598785554606674673992183156131260379964140377436584485323625497245043564589832603848200924133252904500703607894682700484822160113923325213335014270472950473111781154227012118985470446573620891245051770784770770094834378738864484012294178160653519120635492990231807499666539501765198955840420677638402451214009956236789396771782839146248759568833761287306227443797026758342407629056584191668711730241082293712999050569320882848283158035486411423300605474341335967369703712372682916821942501277400607084189850245552681668649552539910209217052402858100679773313291060693458940050773315558020696700493428017784694001790993704671672143695392700081965526668285700126628740213274232191570116710108409276932427404487791991775948276758937855546486325934070517804851124266984385854771458796504223464338058312545794218385145050353097363665795393554336978710188817932065854901966653139530333530574277144911103267223171295561100060875253355240348379833674770798912374307084820095769318413970152043296674213867302283851871841576590898943075338211447195843055741799414810383751394242739867610299437673202900222575073305952552475124065575498062344506694092461798740130426427940629551364133075440324493798841944627979562302317907622146334302224266927551134749067932453258315170799170351576612404667534175258980864177680448241231087229310309396903512441787607889465370829919457701734342923065014352091335832926124943016475908926557868148766263797459662660545109768184597508414475353940494883070080480615527732343943499646240648100021483938803885795981908124693944800253099470640485547579121569259967065600632113649945462773797530184863376368583926879905685133183643640440095935040545656241602140283296115098520901344446668144731494560886014459582600854160137857044035641804649610128209854652924328474254043819064398110312638599169536458484008555386033073257284961701388280957459364889554616086465243013430988187938354662056151767759054963650263986416571848008398470894776417859937254241459255373299289942279642035697565556023368652740558355233688490421060478994435578420873184844087882916378751006984756366422538415869939142785185243863126090142267921623570504991366913816105440769736520319876281903597071299682931135944623527497789852277580522911491263914877944010175651161684301531561342857209821604677071317238304730385341174114622846616199955184628022496524092619366851305761440977856188626101911675444687798880592859847431727328828105105410299987204170101484472680955538124890277565232950067432737504300212829222650404490509269786144179509700427492212464355952750854731365527459869394425693659812568498257047932893877296612546001753562789438406740431699756703747401149515611262536510564017472151645344022954224337291383227735631070303397893474895788930421799428384371008613874647401320974119312306513149203077518931101123386522344152338071188068346593724308797973791644447947668588039367149389506298527886857468723785810886958777490962718117177440463359175009063226747367190029869228229418807497621715650492146698707951692967251775289920369130357275059715781024891571789458992003326149516070515834739023341750321851827924521944637901621960832014535980609900949499372741175282139343647058196537203990451331340592867947139280549482890728662181872294096271437775600022794215562372782341695256571242485404813600906039025455007257943564188385478289927316074026115134123782558227713831735944063432979274343310842686089958467920147829300300657239550382886027301469032801718622731402372533683568773630273335457205372238307161092526266559240558442362660873263821309835748928093941374274322212988052399697016232528565031298695031630881202092756459392231808193963052977969623133426451588098088231557262503030679146296036247236778572537299455930746709068595504271899048124908770054648357017896425013477464218498251789092607450877360344425644176139990588818955164311555502951411148167388323275074887970146050693147295633463508878106528810917876716294895593123339608093710829031264309843286502556055215431834797312805774220204623689366725344511481920599272112760884803952799014105778566613229151097074847406445931776388299171221341091087409877598316838538799358358943935720777794720972034242298353978163891675844819754705006579313261164011196864716180987073210624891575977903427708391144081229770377927048712789327703869720736049456167181175125531165068942121276559166095692284481786223404271959899465564624735131122815779122584367748947210136922305646248380596075973573663532659240444176752577944437877202030388743232324757471742803805198386106674860557358903515004866447761488111199451366479925720497345031809982880846208844111334871792680053381118321656468594238023475637436468857013223202210872352473783711794268718475509860073861905734755769097912869848339602169995966250357320429209321097418073745768819352806169494694512438453509571775080439642750834657955082477340539477317339969014588337615436934609963303828424740766475597172857478901606985173113252574787461424684660273697302007673781014164148841715016314102583653621470707074879134868280264345883696388721022160459796137814340640491390894660640383646784472972395137944422286408743858009851559311709627507347703097675692970078960677727563848387602508919951570707953793389086363450439471348704328639487885998187714141582035974020673857577683112832104858645083483394946285313340808516314534431547244296393751557715335393113913065919452850148124405139563175147400222546196642018682140727768576648629798655020522365982313541932230741181021949161762524630918568954281292063579299963135369904023474889883342670776410831286123715027734332148757708272337730086369718286375657298857424112486272775920740741146176223635586017170521787367468189964411149106369356521640720677689887374869277998075135066467653565843513176427728120763734835835243573470446821422289810021568768333113583988728540546560183662460266411377776879841055941565428432228871668114190996194808713504092320133042375015969025347693407327110709746467166291227785210550385523743319207584725156366434761466710240886842732799833968576944459640933303873505459582219202575310061957106602474843358311919121131054439890579006637680072953546600836220189129303167836336090926720243443587384145335330174809506754564080770612720600482928801157314706747839149156311437555597397642475442537494427181214010697365027233393256218633532457093449976097696057215609434419035812286798138088028267699028720080346253969210799845044745203744378265235454562828234640181379612019773479598748320858471379178658177920538777387423138457880759942637526914540898351213378043596079153259800955837665753277490919605029342778740559912059685081457971209238237082290803941707933907878655382729370600468480329624628697487854358601419749451525537973834863426367128700869693381326106396926564610003887968195978726438747069407598709045596600793939882196499012525181266199784914446003680026959694544498152941465089407472723184658850940087796111603526892061520376781957417688128809240938765024004037915073033097755661980326100570003658259514116108686880399990857472395087758834136838643445852032736674401408163851998358930546921124295334237813754049670433754369296087481558290516385039922720606800459947250420041583496927834865032680437543217146356281600273184400328723840642350882288702847657853229535068478346067732828420023016962076204685507012260892157579891702305647422442481593539069741730123907489027588725870645911453428595858921145639521468802682701863166627121232816244164837392291103153435503386434587569083870268727533413011287018402720517537989679925216359981446672370395959025426118883217371549590431420446492049857365511065309326302342513858000118129782746829248072016344682826516625387228584132460996722430600792789161719410120164503249114437366456044640084979663625685697439254779719697765569228223976587614547286494174031156818440280028226548085975367197958388163893991909984916690765818463184415943477723308810615963900932312785375716578072818498326289026440800157844937861124782112057467166202994799720944531531442363572591333485040989954482040219851743994976075210255689841826199155109028705850734717167966410931589001357399251180686517582182179401438654224314383009488243302329668057754191877980269824441897563684938521668571934225035691461582271326665154398502913793443489905040486086371778491626383176161547188009762238023394783586066491651779832533364419960231769881235483999276826112052125242026483114593145576229302149456417056832027701115044571450956699588914412236821118487744139509868113392904810656296885269606592750315794334553581420064052312907214512520025407258044034971505372977853395957175019867184033153913777140783765719358196008604543385869457986395486028416263206139758021410714703818725900031928875112620032410601373459095877498715653035983457927450658941844686165635861853364295447017528682744088956669679581194675735729392291556434184867989281828427026103663021909569498341531233518339256604688167536961502908472513402793010897436700851303131241608220633159234411334172531663490932305398311614475669275050581601625482450957019947711529609502533233546248902991114220704298636355952238289671860150539439744443018869988219452425349978313643496340249162563793271252309600161115358749637754425567693889263599533470285533452455759118711249235395544432217971265598074503737445994127618800880536331565401622000671717476312874077785506572471607863395480073489509882987979083061301507908057643008063484720568413181231925610533072246717421285673858931345849697448653603124673547952678774723518405889873466732826699317215157163101072494019847476862998370938380158624884784019771672082172551106396600190054987668943399388548055960343737721759051827186761846652169750835140732780897901248094625739085016850841151033194596818691213726249636710799237004988573188851061905502527019490734826597974392254289627189296209343170277175632331755993816461317771134993875910636509885706117846164538419269314540593543562547149120866426164859127538453257885501129136468525166411756636155086789087786637631091028479587051622091628840742970369466431184258724039246709017543782568680475361349719066489970509397503489716280390319291498834883790170170755058814521820210927702521862209658038084760594953416496711553370316933165032483908709449450599224022546520082434670123142391738480687759055115200789338427302467326080002478999660669196656451262113255470347576954701773822382992936059017384394393347307662962110420614962486599871620062059069880825792833176047329509067493784007262005949716344423812044706642360047235859856026200617043871147561732917798148178315216837172067861434431957940571440212100005669524334534994892025774183530037948331496883032094440827063570188598664568087839913011278666292473868053179199878631309436803820150252283858987598001822808070561445953253751134267571828589647709526096215634352051365340859707522985917736141968862093954909935882815301310692088730082621460751858323713758668747265755282520342291131428807309148784771182901376297265367181092206393376330507485040606312095845910425809743246000286994155934565946469939426660319571521416767579999407064529347581754466665939288361891844651052753544609405056284425775219285572528495971804891402805383493917834470544445939186781705749056900242382647226578444631267627856670097269365732450068073244217010762941006940949163060766272167375872853264172088048208858288741242485915592811145270221904763459115668584132786915076185689725943205525701171027694142391137574168754554565805455914742199183610427321708391121153491048042766082957759458978935771475319027220237853606617880833286066223358396017688944429782706586489123669741457140211438705923872117516455847055296279492007672429946285618498518333819145985596829549858414849254050990658637844006926087874722205815709245389717420108149712179121995081530265867195673080175289966762067841616297367280331048589704410229108161820008230687675868396632501440670921223595337710796519370504116844276167007209425304494002689525615036632025611862843892189886736964722500789452280743076674942549864229947473451292905883029607510402265831531579543693658090473405505727227068574330771130174805141400199420473103995859179181896737996038288081487890639538444301085318966028677905746523820341700914814539200572951464974321632413920232552855138927277109227143023559101296435688891922567894978847873496212814435492844362843475968208136046554644634161957112006075630433798984073988401375927389177357921741267623490536546359498201609377768559196073762033916806834901753106995958476226410603406061111043426099631589873774657766982072945379505587334512406555387368628208800005728410825156311963423148281953171976742207723345682290850248610045096969557067144978855752720629713529752758554418551933767436748195269048152628765341661314275782587974828982309392456986191813287475459236973210746614125286043872947020265274372199856834783370104023108118744023049126867201138207890988570493538772649736347009126304231666284883491199257936245358888778423190007865500025995780338393184996214060654000885629846806254378378927450121223922045578456593832236483522989450818458080981675121457935573615594427955161119411644861541285738541644154213321565005623194142951886805888603525995555432249514011068067123000179008803377387768815602346191593466805067864474950396493303659933391009657537115576264476912264570327141167596953591420691783132319320254987912650669107850987561509706331350323213443069818055656824108372564320361665799962449211828643709709212088726690144364532925529996527331519927898528232958383752526906450384379970892489565240698633305591461815295289712687251887434212619701001975312843755722406391505516908135811867286219280926609774108280181936562060568658598497457442634635417418340753048562017727268347369564629310449944668183240983452359573480132276886483177935399685144311637007637868426693338582980862090140187124422797671109560575043899874011711865831934131944755185173660805181479366728941547867397936143719227160176247294983954117572167499265379823961363803076836702896857698634682011871516978858780134388829278657001825705164703461611774714969838997850446246784296255549529692727608594862118728306420701581331967343745882779166571276450447733001988500315982919439683118139950888590667978437722763122063966637219415987494876814976769237128523327444694767269243047773581335333954555454821818027449752090650834766461242110133528554771453033952118884381857164495883514876396198863101617401060650146113839058958937375815951160706052278914656038141347064062997563785428801570709523765797068809534753187439337344390114491503824845776073502033621047175145611863462993062498745488155798943540823289498081034922747187247537541576029889177024457699190219012604782062559700660170815420772465937583399174888925042432361879683468249578170255596318689901909604644876495884271468700149667366623896032951065364170706813919840248921324087516052355452577245271300358917142215502848418345093113940667061335644395673424673698954784043411298917450677473419745562524541883380762478521527128026799605373190069154548034295335433909958536042337949128885876846295128896281168616187843960940324792223959385274880515496814605101490479323613452457165347349022447484821234464182941726023711171687179281146254286976711999234340544136759395264002716766283175808686479921645840994495435069614381044389666817368178318792377206415108422552120688155690604030821060066930685698906407362395260377266640755868768997026654838970554669752727338798243966739217583490946275804119699657642026333392518747226905172940966631090251105539705351230965904508486889592448938725252610668901393772705126524305484805875697058500265293886379698661062370346098696548750626830406375685815948348748893458805202809811863450350269343673050008505822857354011609939676546639235367301984830793530105306471719806863928488654196004571625250234532593158136121291812245633596280477459730608574228038171845641264555593884675306067747239461156801994733227311960448765883214964811444420642294129034455373229306709041906649626471504179411518651554166315768445366039741236668465934417595336368656211300001668365560147161902665744763646725904667629284258395267378452733234874986836468413740924500872503709392553238400614199960963064913756028722730061448556799821913831337013919126827577181572606452328229192883712476008467482658358277955404851509245577181277395079662176354209167817459082012318038905350525317123096633684687114743521162982600502387966067133207429951676963765428495125950604030424721027002347903022483016336338192704545530316020317673963271069724032706550761166973131807481199560411732010850187976673383166101242639794528980019323454016436527227622037519031579911537208997747581162276343771854040861428687737347021974480926871168394520807197854460615906392360789613801010120240167842154769826805440475793936932933570863106212881006796205847894332150148988191649731993783926810557124461583327102493946126795261067033617890070682671998337282349793659796859536292662703778075756103482699354777001818908719688736868495800659967340768667990317735469951481672901937673890608778372675162256828411821068470149414121027072179625197735804148168168882766502237359907842287165313679518654468171487713945611687327919795531203666650704441192329792544831055895353445978831729585508382138483631000723021360753960629739618519221790544061496676669925576050196237659478869997365109516914345470700170961152334358998675359966432083127709766218120223539917661116069672402787002192791797337782766297777511266706936935621504401353385854506905934631154759324328333310671800829339570870501716566776940665546344795218088423908888528139833943111736407190606095538031375219519675635979374000818622335396151988207951923635372452706584211068089678474683005676538386895378155288855094305511707925495141728102974142690419820013806253408139862824953680187719800278671896241425292333312235325405846376290351184104071633791754825207551261839722845796848275423103674206670364166043234987190499683132881873515402032587068412012602056240868208730117583016909692440020187806995401320984431283412428995976641263567565036578657890846541891911917433525288212317115003938025909292486924577362439165790145197840391953331623469473188171399045247965254411877200528959507137266833130563899047047804830353974821009243260779151708575028007320645421412696926381772175017120659276548280525551432805294867812051060352757367534203108790848400075682664934876527752262236935361570021680577434364230449084412719958676214267314670619389677731185913852703697007643508927666210293915666139167092362888063282469295894025037623874719855621226274464589583849329001202236182257241978149863023646168836233009834064838641449947285372848332132654812697437390870290188639551956559917091300412607008178749640613008893640821863267092967321404895574362404187386997107042078773827772028822203616694341188455561853123621331159571996750507149121297308409594146932493920161251329597217966954346913369748196972577514524885747475507425830160666774850392208247126147807609111147763201914538681446364843301513051392166250524078556103159852150955273719835123198818604804363963504589409913692757761325283094341916733170202244323232619121139698834319830576246717398117224647051715921088895979941392824116346690548742860414966743990733942962627347552128330553840510535535019038317016495081865483353580737895676671376566215924588417068709281228436634689966054841006213897837872286649386191810113428135382356801974294207925347798662513483763048763150545433271331320844893561788902247755326889414055033528430198927814345095853196271239765580660021958915445704419037334255790946108432159823565261047618819648354701492167376033250491453365973390201597665022839718126150929327221606811764543197335701087882686855607234978552980541753994879955685289285706874287504307847054437367816307814895905652456169997368910716208652186844128369636355508035703201050868605253381756595295043767636162819646003516739931003674476450471590028146652855749602370854900927057048120415260399477220165095567147593999566954666931454840154537214718665823901693757960471941352396828247536857052880321851143092922085212788177928217593427273188321139437328583525629896151082045710904188239897872635745078203607622740559805806225391756151911319008408010186498202997875765258572377900787131198054661745822632102249379483691182305120310157114409922946923474239459168071368678845035240661568114114178199253981324225292035802003295121431026106955071317520422689784065020912324088866863549405828702170675898706731245252850344806269575560634378485641625625356713977006241060639918318969496547210339194203474752020150206482651603796704353993424155970788873733208776586576487355050413630323713512672599944202636534910178046995139803479655037060824866299779978721714357598628402289808271784351086551136899743022476254908520131660391406262368179433832238931526115928520607698997919609830026148073006291041249291340034657650558520738875342913136758627927592485271564846486290564719313828649076282934628742206836961467527776369807859432987500271319826709760949330319210795794421028746817163006392847484174757742250789867791004694921860469385770771196030332635078811844995331838049419590479455141948052052068733586857230322451901548935198865350290999660591558371374208243352218526949547239657248692612085449948673452635413555235580584271988661934106996149965294162725200429622545322782212155899009296597694707988306573535938520009973736021106677174545844747566182211474746949527064908814465021674221502059979333659894381462290991038331557073259059444761435542543300295665722046462800206746898691283972807465568383677515752377580921710895816237902852239456544610059095492584023138180801421520483654856737910809334023029275795534727620680799166751531022711937764787933164421566200900700517848930713748765081374863588499940386310715627405353991317079319510923823284887630058027255198830313668050573664160930420844101193460581923407414096798009736735855625184010065265233053272162122205063245684035611273410948664026984613246971870610762717088125394920760270539717893450885889597747424930268590366526434766179340614946148112483779730539642011295126300802470884190697618498628446531773222263805936514889276068445500392614720620608346787931442042191299305118108296804287417699081803379565891304596827152815030414902623628490525989423764883274387451999700489284864977737057034705741745428275172366317026822533769530278504758924410732214311122988206356945804708647554963375192459868859483932028113542375304121677994992391947269922065784359520213828029696994199009198435441518371887411567371572747825865463637793743089206968880844922154088196022993740209430014199019498656783385469154452133900832710369569192378058448855297661457553859057048853981162170356531590607260883946946331369493530237121392208180836926553549817631617583010030023043167762436497227700830320352931070291659587044950256820899913691397206001712613772542182770989299276338603598958700091075955783795249134540375470238924931157271484942591376506632606631059597653510440917349476044137140875139018083908202079938638226688306698220000625084375485918799432371838884320848351895745439938888386939453974377795535800200345205532761909179656669490070007403486715711198653109884163732001660513833276801169149779863557560644888250367047499309784268239448913435411959996039672157901293440167497598290978787402672665356492158312494447930324412957959445684075630050465034230949183494295482091911047391428614582048067210624933225308633340107724783857045042071443378201322928832571260264022888399737273005592640246870883165244296389629078090304250589688665300670192214712903440623910551061455581286548064265799589613769353643699530409239405640188777376988474139225954807764446510932816458553322447076719730988663048484914556267754734775237875705621642545733067764300999559238752506207662019618645467335367590495326211224101042717495434367711600180202669480705916721426565378328384341414461934441928480669671501632298896494328494159666730259234265785653113302388463603365132077896621345366709546851041029561771092408257558430530287618637378228451084804009364291347240284540093758266796999629590600169800891814723136249677064027775431525836453580072976821072333387282895072665287243704464567292152867866905955041619697673315820583617664022192268031599363432796951026818258089392634236590184781430844701924113132159195046532581328446955795970439174912780189777403717050936966993277806921555102294413608828402289376448984403125671555289703871326337753308660528152532182504223283962547957039716987117783418353591166404066745424349480383022073945003154091438707429638779098596141477707683745531184179277723187954793413850482476686756493239279361685118897702741568806515768669174000021019243247047250204441001917781660049770399420902636698711466071599235609047850238845805638881585320615633085862506909597579083772903380944977604255185639447769511335939911238936469523410046774831855516595960315427975041786396374173843215443898070470952356675708699137968999239795455380178428555623733607862823409824711334683822500665605406260221760833011161089168201371615492398658910560357106352465462160784294428205019162139631244220790727505605169404285013754189773066549425231930572001564167644976289782664821555229465477900969493493824973227141245255553058602601222188823332315136465964540927792041003222967358383262103797930729275244647630662839497727838851305932741079042778413947496793114948359001377920390126998655670610159329532952682675376034601819387126656891788627841536732366001035585821121705820998405069779350614674841508747834057793942663119387039520347738103273506875339920901540606575699663112659862389378981554237550863599470132937184930681723807330712783458660005169938954356503350991571032664138544280325521957921415892063454979545138980091221145372683194096291086880486029498895236762075046764843849930272856171095374616615274049195437105132573477149527797710258986864941117963320388218229524336550188804152091271430311263094413289441265900013269809679378522879865307084115034379883955558667696190010284453746450886573027834163560749433453896359363001365014991654952542986557385573923487724872671675677738591642507286902706089696457766795658276612155892678908413783356456835697850215122913109713993279673210298525032566680363869868642880507600734804976706955262278141771860227728348798611730003561483561400462199271913074037338119796387459061489033922565558187318165668840307693865510579494734121471727277659191022293065808074766121666347740125249260083392821479049968546423288379201980943544976072845840854554204025497587628321332069353900079268793944687572434981632668978698513257388666773728297788156955258558719641515215234011072422907919421562701812424934407627168234816184453142782393071850507223877529154855060908395953138677245365249311919719640682488946181567971439429004416435090368518722274157385217959813910631056270487216763820712929446173341448132034559704929765383709113942680610189085910848848896649929226477618180345163620773595203857082945008470895536700421714925484286580143386424589312539408108239627829270176990316684407694248527456376000132762805107126282851467319409242909651782506681946370923466303969067089332155131284807685629999194103894818520964307825089883836820492061146118800475477779549128151514194026085609044439576628172729227595906415303979357902735589276266466737503537590911658693360840211937882277393443864613191179013772851912050694033268620922457423251033083014203282088252011121508815155242955224224518418128056240766024943939992788373883749940287583636821039520557778350833611535990452874482025288515031739480052534473166716413073136627203998179378507522375879464331163323953900725635787030372598374447597903040991096202742622356112520524533522592055691988430157541834463384558124906343753653220264383776270219093028711552687492643553354827400062776997896690983499335371321239071703617234498883877209406738958034311739663371867869832282213973672765218004120694967973894615386820017836315669934436425479031217863225171822273002541572099455631785732376056301060871432859435027612487074135145513186734822516070590969566390894220964744852834737744962225551276509726649678114800640849523365078263679993867593935177357275873316620896033014905451774323826290993547842588917536635461745202829878839821087973264133623690633642462315190763248067505226551572494026340827576946896140738707596934533768987502125787769830467914759630146215939920888137163917684802008947539328547234699971834949581778756446356931377636735816536303182099762458797187307199933003339182448333443898193437336907589293873712037935903126310399131414990124139962373567510235796298031865448856358668477374195715222592023372322961491977737282735728041637727884412640238908559543569045431940464554487156255451504764814168813466324104617313607808356943705072877438588560400633666401621001028997858899737003943628682240143654530420270898489161717774004040361141174873436664669992853905481765798349396009802022076486512283560169091822804439634079511132913077147037951517095166551992716468174481435648898998481159215046847086971569562965742574436779532139277384780546071760555716532758979337968681863758367458506402029832150507872639997228925385917846646824577917182839631740103832163038237530095930340886287037084876874198314962498430053253830873846173875513048078720843366818628576751988295325543970297293962685798612378872620082608951053922112347230645027297224338111343794573507462753051584187958594915493368533749593087277153578391580799501947965002137598790080013284585833574244170864141910529579016840643798302576632135659519747552183488238321411547318594267629425647497064586048776491705386470618157498407292293024393152350446781249511197169620341229750086958341697081685731989437572513168724839696348495138627413315180914679504735705385296473089388528186815790006549198478629537793565760382182295674761185040152886329390374268316899126842930272351768099703229542861492011725362736665928467799639277776628674573304950810406270100777459568099332248723242434269833876990426441956897516311977031968452881547941058051773668587933374555906444430113844997160388704434125807871266179774265903356795387267266746424213180429260335891466404080166511444040401415590729781772399824567389329127871803203614270072709937524175921379882566712760195890237906773468288808363341488820018112244715087118113114021373316313253358576998473300715256590231062773197847738293846503705255682056264335827804294959098648266860817384570272762674708741174515289694471188942478909154949690406638752801682964874905433255145327996187935648174306430582775148729348627835474082422065501301401569166561843516677247790280886530217116321971030195064456047393198193418535135704241142861691648151281550851614688829913668621676428904221614802455655670707099695428682418979656244891601928199449774059066639474882303553611682046445575515503080857777303142570667324725822637054301671814012317695149209368986821707680736399781636032001113543295423921944364711767672657676913780566993885908221856957471926455998781966888969004947872490463162979589318925090923853139042710037125896450254268373213866388142744097808777306976912181530594661245114615934988629277729923797374994913062365185165487216601592744530882504955321573861809873424678086604968763066372932493260807633521591477769001084353129856505259082218338468268610322004301880699280075434103201252051986015412176991034307267401105525608836811538124031343062843186988503714885577836523211103982751813729862498216710126946326121158496723160339181474148385639358424171313310419905653342114135175571704453943262255291314798417005396127554716706766067259558006454008566472660666906741163840683784507922869819614284753732097668973447229060477333897849339797909431765170674856839513041949329423581216757254057388170127384810896628801931582740405105430039885104368683847861597369921319646355293812691370572052932403440190618673809630730796997958937506354766951208624170323567602974828345369238634926422929309198105099744684052959235084191080134197503839442599147681485245935441997485598417107055348765406298285673049816075267905345733271189644255125619669789231498208078144518767018968829099767083717958063924144048148701674369897698939590804961144489373142341782012895555192451190980897611801992273033258636026565613950373666372315106660217301808172665854422918129439516275349987744322714234266910763429095079804992275009786079614993691937732069305039456690965361669855578696677415503939964666848671844628911622025636294345178383553028662135082873225802365445370867844687595442270903444937432158661865067691495921825478521543174369722848188157586633209167628092087538953254542696234031674917865308401466553170227514563982464366651888743713469287348964883159573977426867597007568233764106890068406777709999968049310784665889484035336995105626648070707134363123318857172196863276855084036954338473615664332332416273509313876038381431009650602494770440293431838853298320540585266435633871411637234822670891303281263456108345144390309836895584653150958114218506878051492540942157284152846407578871168252023434331517102410201245163964478267424477275761760875614109556611884974235650650802309736249607139716415976601472800614326062061851878224602738281260677702962415945290751076666811354332759285492129279845121921698797314148016056370233744141090214415399390225877445113332582993808107009675635615026807206395868833870169360876856985026576272305968089127709459072053947779004112652702509606083955763256054272583541929945347160921666665158940895940583070176419305835913478194329668492723543615286377228234050913217315860787104052079394305401943196853573402207302153214411344979035676482925159930508198710027857945603562829424983009663662994632543942442360762913652459502418556965227466424227238402923843882362128856980051218658721434305537377491523195394163443070188723517192580672658658520550838096352583693356462167140104806744168922889540770427678048942757428362507350498778791393827579447693889559061006449341475266908413256172017220170971767581087424839486291748341487480149962927160302065100607817866917823772010773748473756811047236574001612095782441955686213863234134505472925867369617189167288137370275922842785269169610361445887963090408266208361068595033493673245532319845933069251309645620258035307366590516906765290411890702833058076455042962740625641033585188834350194305854692290996941362409606117723066589528107607305529603586348361253276098394923476317155210692725724612841441507772283194750820562051322636626445969684633964176929621772677479875039502478342618201934203975421335160924459099037198082954833564974393911006108392069351941492266142042076192249647891150499146335272468411293418399717198949894310658482083022390715751668109583745650752256875714671694229023688242601493515511531916350754878810753118234292146648251983859028938404825079029658770182796060811839740824700852467449641590977737753453566799537920914587789990228518551292575449852950377705073083847450094051706820592774100358197285901414799422092921922686723782631077476063348192929989734643711385934781217649986159493314557485049662204747892962922488548834870417547918458180749173378776392839380026778428058599780320672006511007348068617860206545968517207350602815346474352558037583642479941890778534441189397680298673281344398844994001339508861289134071660580631634333361605306181693489198004036802562987637172659574420567203077851961248978011839353847179634257989109894314579589532416523637765812498280944549493836809629220968567997684625743241874276683716424496303657626647255674715755196776591992790917342264100817466188807157762042025464553398809134159759190767338858189848748154848182595912996320688592709250797708533828026938836745076904215582334212813141100438970507741388204046450146994068199382404111544039646442102190793295182192765620530497220288520544362936868231862034632061292047626970453622291727350708272271793804831833678321387028028525004206973276545218760865769019738451197011870670036764744021609737078002911420687308705444770807443082049479008364087765541369670906838456969511711359581588979373548107152526189764400012362289294122166862048687789766711783005360436531364747999668917362886979021914453024849301575331724954159664258831693717285774090083335832462969615774392426150123009503832349298006870270182197964508192109077854807883459014138858359702806219464392320560033632065626685611573982679445960531583578989675840617452378563123558182464720824621685244522909423510081319640504778859991350537315454035688821089130390127524408502442116063310597250715528952657089695969026745949419372172174481839139219848419989815454377880689427118673445939082499073462106894937541861270265661956299296513792839825736267587249183766003745249931727509842108953566611830454691444599502940520161013581271837111729764395180076492481738272143883087086059639480367098592488991544996406001123354552741352633720919825052879445371835424639811769242266200616317703204405405462362491046034762341130989670766870153412674016770178324740546710222039318920127046182798711444619324026024764444294561925029099877043058444400925046180607559840144741768845651131602654591534273446941748752463607063903652656559979029966865576230694290280144530666830277127538137052122795330345665396164785827629781502041293071223215985269891524444728197648017664622117856129547416887364721997174809533061436956371224059196839153215695186145761407182134340406051080598618242885991557932821643812807913255184329376385070045404241199153455978924709523561592231488888677257871331323851972134216173127824643247676950559016108135039757772419912781496209991784130177799546347869313226165933643209098540697577790887751990596095301001707726047778010717568373665185460546678575354433589422271178471207179764731181578382877895380082598766078607187895245590058814466587395733734120496422172857989848066931956886720994717071021990026986233582799692033708883758669142358431043098890951330747041961138203063428941855007579834521996197346159840235355327734086011584831659905786864530492054627480537013712421715049179926259714452373719540115929047022020362260683654405707348078092500181315166146045907176319798891022488425622288877666472816030799295334470604095792708244124038873405881237181635518769236960050393940120936115569855196668609404738711467043695826601625964682508686351662943766830081422152655576807652079358590400002716444661416438202181657392776219023588896253905536949248577035356836508307387802848886222486076895839051603837067568605461653652963364466881406508863541912983457801660310365925001275222647411714720597612873590366627758806288010719998940323459885012464347539758875014239407674190712328009951844011760048754623989572702273341452592330397940942815917632263611722332004002602200784267618002304208384451296191259401564446550796938838498009340453308851114063387358756401849008969362464809586183754924563672142243514743776405902255534516474097296040301962607724183801184559401944038702105549444736906691603038331395937366941506033920867662097341264989015978604939413167213726384893250948534866179054793320221829570451487525539810808055928614392951293578467179550359465961412600353746343843887804094617483748782712729876941493738356850635833657355342295006519800982387443474036050082375795427861332850900297018185924663874957603765752195188314224533737853019143326871846332976306321845866437013708134857990402044648740804104470629794609543488329747890700428709889584164729843193811873671195776643788430053851654767820563931552459257441489257225784432865133893886470998660683827594087588083734764298467314533981573795017518368531311710146776176193067522132063072062494121282328612167408462965240565871993589326391959436592703611878427319288220040984039610753006302733480162501970406963398491431143934551031335438248777201129487792163331031613104708643494254392520218260782145524184343806543892332097330922834367121666885495937085048615362959618779061822685146741562225273184213828364958562250674416772253382312781870876789924485290922431067513708311691346430518717810741777113306925337316827155649629648371442466028316167321251783207395903047758779226604728400747516139122369670762875340876511168820638093641955205268953732671316267918268204010948120549073432498575924488564345206996167203349150877464762970000182073538794128117774391651848156921439919256292245268528872962569039567742619384616231577165750465450540087093801351372254063701433136329369264857661387589532599161057541961975900367275097600002827069327891231739236230775227801424081531683099922612929728334732556660823949547267829866942536687473469328826168559012994685137507827455134030961187912555314062107962246351439929714053966194753593463403045333333443686803488219264751904031173329831842376293418465417370266311747901749543620232375566284883345704964828510296928506145042089236334561399880753340349778969078461534867245827632874330803968894685924914897835744584049002687506669354253387866357155187124739618287776296907213097547281475929607166784497085222255081081102058646840102930564176895194683015169336373550580563155482855939298704416371505318551312391983206899301751187933887149467979702938927608337848417122352078161842833239430773319104461148506822929375636792670535278524943230996027500720117152076919855696219595636988752109619383331755882713877196204010128913269815154122023584569984721903114726006851987620625190935912032676437941281461019060197927635612799774074327217347821987417273045166835713480878094762459843717348508170327043559757245260960327212863396964498451272647257350842808960548502952769336156910441006570102424034010634623685273675216603523284200772290937982770278351928714176324348694682325684561959033930316631251881923419336135052730197339106637148364074492069124764717910845321513943929142619318503607716878514115187938305315143719862532880193793099859892090807474335828450179790487184763537147967207411974522043281732476306740463915783084741983216930221223100816390454983063239685889392857983946982397726729125433735260342091469292349337890512680613599477863691100142684488158689834723004998847210121270920025243739614562825656637700089286365045123783246547633177433170052036273212390275095775251258321474607919517116849565751825578373506262271049629031579231522478060679620871929242126916368203643140544218524813471725139473076158056094944340340386518738508982486943915550242633230398021696908965105545165996697846019234557518111910108274839312514140054915201576299166877978249023455079741814627711212997287242898086427077833013665593053794163491768121010315452993616384404910708797680682979071455332450754511981804192259805824480864124809941018719625334428693319658825862825033290150591869669156286070214155873426336826693440718532052210676961154568939435320120282621184163100589158513416123827158183729300727799923833733807821351885188878217372604684710792021770131563540556304263125530420478870745947605843860462875735150505409720417217382325019116292187467825210719758671206204215389509305645868485045872495446663348438290362827622671086326944199427682405606123732621820556967584649254014055208527390580855346209623960741974225921138221163432930937892572019930351279182856248630937065548226266734226979171393050388659387871344831792641981016264755241962672282448571837562026523810146685981469778703636240023979105349578237724584976073286681700652736439814878061041422052243711285077764664876495654568198410505648677006259681022922980428221428043477864351536482927204758526223811118732321924877959560537614440855727241910556499995603381283616943369928463173742920509012631302280011768718168448470253885486977270410200384144516337011844899709980667330224165142075576489655652050197872042002932442904263763253533573068505530190159940085812986421020878242821155055941969446035268582408604370551000973155971664288146726159545717208891817964551293480320114830271858971797779513301298134716077626561793462655044735072052232714138036217794584324766021123529587699070974458849679416113641771881683097481650568162442308530254673565739872327019843314276965944106222601398340082770724209604514486518423531284591924648488669560550819026774841809832455194448565798782268582048605812348863542196136348995335586256516985152976145959768981194076667672843054260744930542029763349580030589436396140373990739897382831341616908837475735672978197938654468018533004890934921636288771541020247779685783777078637164555991050461769737367959452254278709203974038392570233738280156890108175767709427089383195002219137521544147892188849120399226474498675623659726326313124492231536539434668729378613412627004004170539270771202567607463209471504379223071181786381400791545513102229832503941351461143248596906026688216457482884166876384497919705534747310042223234474115323793221147957749645590515178067672126073135000457849066532836130491794831201275976033349122454625251942289854972963142918003002912108029483284647474500390325833188681439558401702647937921146520645524624533905352650054170642171868710345868398096290325195527358115424175245269609645803568055147102057820349978670175434772953103260330674096546973824799399404503275887411047863353884147110757951891282897754474138212780837070134745356701124031945651631837768889476021971347152192694770968156067314141464344602938528541821381165358532808692804235935660558603709735547967744167415422731987919444831624097622419561035300724240967099229984936543172625349995669498581879091530516422495481338232012330533092564472147161143892857098806350331887004648228457536093153448018566966668230478015582792269250982916520865312103138934307711538462420327046181011854691986429715451916287759971048934592500832919277327235005546896302265660146606911918104471398530473608538705241293975471712182368277784125410286432967323427305073764442656424991040887969669744025785571355586521010745486241323873183594532806490895494399368603559703789749497246500608545978085932832964885148502194944877543177403910801344782176248838832197499109902111004199514099691019405994376930127875433053917368519530744931299198731777036090728718751306543540513786846584221830349928486556684093242802239092258315954923564358379527342576616647548742243068412854501737461462830806731765063043995297718425651122690174957005627392860131914885364977254090467927807839224030182020012468662206723504914403145313075544025749002402050882541912803027893108917762592679636069053424716675323607609029803379994212352119752130371822473919730545641887210130862325416706479900096415161456791485453732080863678770830202304738845315519031941080498714730212823529218365974773038201089936170947087294201947540393102645712231616046832699662475177134028707318590945991395305737456157271800109054603332741586214977305951662449832901091850067870055954341545759627875363091973056003790126686678750567807212947919524984227982551021339897349411740819472692009682848152704707484790734695943380351290118871557089631225386094347834856833091543902408371412104820982782736954942234327232881450168092856992989976684017370521902530945528191929896313995058961554463171029258106561934400431630891160265142645572066974734172007262172053882312770619534652610655314074525138333786569214326199971379702822957617875549743794309441342859971769171833569812180403760707057437052370933113067789962387202699881506549335069705422155183071464169388854088025699291882861755477723538192727136577520964008157229428029221539965101213650683057579033773174700561196838454500661988941604277494606434882249711538257198820530650379610688287171422570409532534787647166119918290098531420275068164071504593620072153127384931024747308695219671427884004958363314695929013733954264167945838882506362898204779649104710807593618362667620989131539429585445238622663059974468714503970406846237777125526211441432307755545460010329962947054520941062421284753517369780978854664408531136227427320910584615053144929788649727753588038697361978980188368283654317356178809214198995038941948732850319270745109551098770157328975715122706915403543759830292216722692701237475677959306138462147457394821065560466179895716520380309065882852410766766358984179468892634187145331016210224508033562497653632940913377618045482981012377007057820734091297844459565730755809290324361828283921084166575297473034594136575863226200873168949971310430933142727157221791393210333020694042080869008395680207150060918317591738397936001411286620404735354474805639540979871638429130922172062710528430554210621379211093271983993155730455101843241478717922099504512619861162529735418047094410704115822853449396816609887688020392579430472272214162213879487315984521694393568938705526224278831197586720539253824227597093001918870421578705388588092984369133655351893005247967239477804907297210989111662869133090479106640348819172610580201757718649726729916871081344006455885102490375973426750891034686689007402743559475314946942621858682769564300050735025179564781965021228147054401071260835880682983149200345221023023727066467008889661438224404256538092280689544702937860833038138286684361784474794426998077302767742094756039526266417402696527959523325304120132676152748927413447550245268889744251775324524514823778514459887780385395755460686396178181230059574044789909004060141470901193169217495683309035932321940881233473919616715153793514972046728092850647307974909314213481268862651879351365100578651508994093067476390301157908478771960569058557579761423947104862725764901767767160464767446698244961575101794902788710897385276618790506573826264253947135637364102154475991788641377434597970473205315769984420147895731959364075648370910204689468378055440177380890525084472693644154479148344410812282503616630569277633037574812246872587964188564715430500200383554861495331391769184279103176007714486631153777071557104175517237679063924419457497854227141573534614544913977192270724993348049924274336551464521583792406306342113052396580089743768407499171713622661742004364879447247993495073634947732381698665836331433710009017336802357916162680997783536218430909773158214724900805814442391350840450808592742894050200735050708787293818430691488317754798459920544351200778917589552483878273849575917650426925970546964000539000605341672371569840799243098681069807744013028914801285812854423793204920153720288993906387824229056040789674719558328183105178024898109747486035390299368843811657152841622445379271155705760867095852519355829441684480813464309820344366250197574552917902308364989405299333492955063089852138848624749112101740797391887885323885262980076332344924284190920248341079442385215240693988518886677935350843041180124363352865180102295420977194851351466841712101633632628704531976659976304820599690759988292127303640822278241045175624112004194676836148063465251379079830281054598769434078234443030692611418849610720997368919752646402774299292717494837287911327370876204559552322213686206245573864577248092929780503847241422704322810576833622228062236373729264411483433363496748725394480815810155804989330877941658793388489680213657392190823295201442705206524038629909165468015986031784063847400148269341005402949332202891258127962553889406456388988614993638328453654837378489160460823265042171517172085121309563635797731967775284738089123206555297944952041183499368782030055827577311158077166904648650860465198694496399402865765611108591131230949704936113385889631255926771035460331366330479102012867261175372536410512078396272472445805774556335407645429032324831065742430904715245668974907116106701255892783384221174376936812976718233726547627765152158008481863707768256262420370092045149812215420197707910926936485449079824797213997646484100934653624366601084784429545008335431924303754398199038745019497165820306317081656791109781324602718924889605847493862733601696906837658158478938333063042207172970362786250597043475699013585210190715993475785738664207113019993086052219476471205586369719924696979168870207079748646115518126562312837273291534723854365451252137047610369243006052312522939416831224038614959820910193797045158458873172605071655936182023912052957385134992449375551874016435207651643853701361191082270154369971164153094195817794165878184145457278884996573747655107372519222481788412690957574211257389318266986419658281330113031859308396293472328328999340316456286650865964510742361738844582926732230557069335233843125422861530348847576392701070314509908626254844156922180555434455010909755523337967000113303465674260525503245595616324485299657697720426272964888608585275132920648755018838247939881675923245655403057101479263038390548336352894978489957102499930704870121263953965340214212840248238751866804063106548621592387789488014090889024031112851107522846513419031573850518705293937156266260177703928407531215377310452869825435900486386435857595964430319350893385476658968894948702130074271800750471319039410321896935136501420926213467529114736775007255783206248148011299606866167693624080295195777389244166859578504576339921414950213300271050314841529482981109735925052096813471643546110024593751679285737983773771065812727525042132220193752635066126993552948278744231470548527702872804581805672692796575151386206464881002955982521246850952847654945679384483064251341213527853833752986953223898777400872055073901869898772780474389273528600350429752393268510270075366887180075920597270107881720998257295567440894682376120411112439470560559700277770816137358048263925508789269272046305361512349100405947898719613380366135783858972564516085392147051161130058321915461086125666820119352336340208286551029237846658472939666272213034545506119507391818749730875954975539038452498850285432906953013538091293236843386096015323398913575781661783033026004975636856313979314995875382361258781766538052023531731087475953061413686337936320394737151782974605373800014789670354787021981549765948972171543459634461784797004704926784386385390150577122486758773023079430583181596029787784955139806865496165879441648900478032234082110599218154147664924297038330658883089605895592427994198400853657076584566105542778161351521265451467577621134496329961052632700960191650276359497855124946606284979585343195338814942813988381396462724512167323993321487796568939233432116746350354023033306738625850075803692630882312844137443947086659739367709240015654318995906399912796758583486986864796087072804379686118601476343838528507801526024915705061880646817706642602182614517678751098566997582899646160815115890701806153421498772208697389480521412367808566036317141815790944645556031537183859017572089101490643277794427550355407824342759666495429679707907328059858252226499146861356290247995271948094959726548209669369615726112446270192075645537546266624351823869848013187417536692011309134694378121829972728775087175402280097901368201369282831846392366674713151664504816790006611470094584950659494195366844541268925931672249681330073403723767327513422014000745835095658967650180842629234788761899671892376527412073162846875134904514217605230699668569131552949518356738279243818455167758729685394662057055540911780914301663024986222731827887375991009756946502480812506228091268395592965646350769158714623887723377538776817672167018898756942595310159020741705410149591954120752906370136778474559326200915549960951435252034204185207173788167104393954361797352284883886512288396559762425456567073269779250822093365125392526890723480354638404139026200910649855382965347844138145677292299628079550178305134209154755876840730726810406700282378666598321552476054505401468163865283053834038795213691495315840941831520704122711494882072704498871858465032305499219466295163119610876223348675999912110499583412775797035967938331855328210676541231339908567562944792900295299504536574812662129817861977825043595268693448078127662526148700501543889331761407478087526013385749561898352662101354330605977136375566577270682006071725766837446809159733306973404811487983273728924631484760318834049686807876134895059960338679609808696928157742322784297626914073412573095911829700702554004118708526783740595358604248407258047604136249015940337479990113816881100903980700758072457398323183377498989369682951764757243813089276484121396416926313488482695599849475542112116435679664184619996076105376181520080120102772773542133918292790421284258602965663653333796273486682433579606823365339583883807495789955511847782806407696826619342500242972563304510224886722181710634212130499857306298072777312106775707836663154251076541439396405193165251708644268247605367894104716372704555530057264559266247225291836947284842945436307807705215491853279334750348428173588596802838466306262192261858952173915166404530284336631354206489482362204668694509618568301692406584687150188689562082066687137125849772463950603687002242939737393397982779632049834584681583560941248093013055823065675718429868773654934453681900161686333622234511527151412647662342698287214259114313574274199751449029442956331961467454699800323107431559622686152027402208252191165426180023110275484423942494249328555257580871118202630307399222726067128515756845430817425258668901355497210581559737205963050101733745976746237603089062128937753035265611549588506082525609248151756606314419867301531750894592338639627980588178886354079641535127968517054270976342564327181030368769156308088526782901257255669640239703270627659717339426647126027201666042089075296955745023976926204983470108868053794974125690874073794947672729255763131019977752630594220734401790028471354660695031260746284048389734966963110438403253921935688248976163783099270449085917811781151483488093163800058303878906106175704581766606624163938031059682609623757736113126392733336638944729609425710519704008812257893181757923115014751641835213226290717095554489361661428618017393488830951566265663775142375962521954775005906808338776505179690668098098329869480871274818798623560194284245386572368592089639310888881576640976376934027899591078391445383119761132513898286753048997510046452274292559400323155472800066969118682579846656523240762065612703053902439831713015237978478219833671001511879492125155266218104941075948885908959298188874356772442279265091125908006142725392833572546768443246699301768209630439461515016882894651661528038986804914230461116644786267283136287917129215320756595348143801445489074625963491794922534993640290388609100057104122485293581633696023291972868264768217079991280098226529523884683924451393658127510555981879001872508713996660585480191882214558388142341939532489678760661798987405500436315445275648218017620989465444855416098899738918863470347780057809012092886402260486951839667870451027947885781437238966702850259967154613512259442060758206526559351559964222845737595040960309373383621537381018155922953455852538382302282280937412760287767251960736793289655335312260379825918078757522749001259988905580506437737961402783565999607448691431531527501728986387720618518741179368140770283748222326652830448206052892933077872537132062009556418064778331177954455174196871564425181339494193840278606456700757422132420114417263606138289367102375013032614567403619285841926653549815816274344731970258721636011322132160671772842490865694846494504361150526967865959931636680187643925006775016352177183379861553685790775838993133508801452591455490699892459823884938309292293601870368822115266977694014486147777027960146541628760437769342415719827321707277703763544782277709346681376125874960725117644294795792556021471095332762687009876934510191532951110009099680446804913740798565303659455386381412318284055775326133235040688228053183710082130048633573597318263250373128611438477446042419776253160875980334110509790339575083241991895045058217730646263306595677840128498394164774128940824532363981451512746172268494965936740375965870929783666217834101494497992905922245842590996054530543242819658486116972797234790095460374239684007536078736348134645339898147728180612979030292051492006491759414444638469306109436894254097048254571522805801071248688342210227669402138508498560555224637068394980856167347661372157293084041403226637048334039097710838417012019210707460818995183611964282874395747533062413055855118228487737432355822502886945925767809752024369538630427564343423956697773662681881393503184865570260484427190021009839359681419675837325252984194973239242649101099886188389555811601032274677909709556569343874985146339168382947509840147156822867546129044850888064011899115907050705051934763425932985920431174141887639082152871922726231950413587936417111710182383695723839039957412193399338721861110765781294374572530311161806375973393781707800639302334177680259517598878614714498462796815918637325605879491270706683608230842752549109643887689289411147194334405443505951195257003895618083126371054146564185667009422188546404628519008302772202658691232916722627241625194460494550238231622459284479557783259948262893590734748531874736488527052617486413781489205613779694557953013389802618367182375184546188950681564495290435533825224017826510872200568172527723655600542312783038371084759631560789576515759716974122107636054540519412705530193613019870829272503661214145834069517288184759171244118998614396534334402177793183737216309029825663475227812007703379921813381364065199929091387745507632485608229901190295425829468890549032343005878381034944195635242042269675670700154505173392514947110921874577634332179533582797757916869598463074187094444217891556593791001560331217208566873465204861239634650850370899336524391918840398374208014368566765529124267507659046965674959969881641465541791301381927511709261073423607245279449335157881780861832013034506663539574848592014249624615134500620764574646725555155890347789847053413018615935324074026195698417380097345385452805191667607583670528368829076799362403711235566351043880500954470071687542727891653258932830122739155432358333092426966612218368764237421702033574847028075420005150710984107061051047934866130085256909005079691561974492477828262983160181139753829202947892728139917616556963124485703348261133263254183879866063075077276332476190284470463940431258865185603510348095186543105645821335585827793271796749620244474194539708432614057281235014258812147772464020583413229250620546053144210382571718708332328710628068506394463599273975554821773611700270664085859090399571032822556200406124086197675190779798432583274720597153565419305892867170873535756182430928650709574672105431129204081533253617035485530413534804483277775046047379179319466897386106524324124113236403762421322465200562953883959879358062428621998648769316070559940138651091842416663309159812519829327166540190165566339602204905646219552990230698778568793322052638403020070108767330792719313072094624349748930667942707196620403392063463673944433774938167717235455318783800192593298113826135217435197129959609781960953780221853677837452844922604804826325541603438115160469172360088878907805613812189918293390884609014079176014677658097241020001478958084627722636754620074297472814096898005181698542838657989110153700795722679468901309234237879815684051372159798904207659649494746497511174699021546918731913754839675366780573931997497007514343888811627109514307372435733570639291570658988399764358098791914121889604788265657166416198091503590969971021760636005901819240281257665333510321422663243186938844761304641702750638317948372997802765455542597504671552896004592635570352579826268796777626496009639745084319820987243120332515295309340849505841707254297291534054816048333770535489633989012041055955239165081806190393703770849098654740369047535504176260065726465772517224078321231217954989739494927662290772986578732781084664668668681339700213506696611773432999076112004430789420800322603721925586860041892291271897604074786506540091755893701836529142328591392270897913913298827722380191139076253586390104186731334709757382074326056452147776583651136830301963673126317445509914863835266838762108854839575178845236226628000768656291679553629732307277655397232858299903536253225146750700658737785616793316273210218186227007423468371023546236397262365539985627363327027051985237108783644492859123286925274848065228532779730099249752228713885810657132112769840780583752714235059632936493147278118094130614048751378266111588826636176390125535089581792151135147772195581833267473909638717713693496293003604531587493844792392682597278431753065841697308174117726662560737934229463719422649164141073097119842443305039101480824232387504392337660544675812921557589031297389780441495350480334200692624507630417404785411370945955595439150708719873706148620928779788379252343097282531877618461861763385097873042018120254453186581500696029961411181030938556633872426030872722718629263158115841975928106824294307523172708503695325067830569331506878042834358460393949438117245472669047800135837180723449552515921216387388976146682834634792849210260080917420559082562890800803407594718450805580707484315030610303687541380770193903695263361358046312536177506798488658930939535927863454162464092772529746619295375666611724939352212556253091257861805967255139434671565478710452751335420765920257984903215664883858874088314910822004212020610256661345841988864963646896354708939165510261246174447590288059044160838268647321164552496034001967774429445034680909778861397901808172854586486888440265783389588189297673016641379685150410697315011674173855777794138541099991740675608236431969314246366288801174231935084032946411300390944208015306831650569724650259528919239048695385390362217420642740097984199837209476449558925620109989661405951431498201321733066679892907276523480540135747782205656068624479027546381456424362473638242474803376954056441517247638675912216158503466320446073938037398378285772810218182760292771922156293980101849242302961599134587708665210262348683414348674831495994752409325341868536804841403185857453105984097860619459994774437818012266669461319957513296384678632632555337048731356105283151559898602910506009975096076476334710773921026219827905081736325174079695108560488479077581120397610728693451906616525750152507736316602944751952721889217708661354386271757374524105384548665133134754262578744986691581891898180628158436558743293491139002070157877094006285468649626452190689670828239642659965959955354769992434644989334052031008706301324327266184665696430279692996825253079533977598904688753357674425336618685887566185891042564018613301111876301238842532353221616077760018897029383867112719928078717256929097928698232736721733235360451046761354672883750757168597735591510401664508912531493650351759735166935587764292905717168807860650260668409743190833823799214188261539781362482030898895726620683766250644525781969050681992243401445357702371699950280850347785708677826375232023469050701385639577185717940429359466738526616015774361071576281306029504967389348608033809214692240408548267419812568440106729098098775569226317637574365299410502262458420011418594092121275062677016675290556273846773702038774077103055714010720341445414925985124612039022236696619346231905478140230626548253152623650407224806151915642237376741245088986781307839353475596631903702852929655691566122159420706248774309342569537415765775173254620539739076214848560116659517626144391513006354467494337651145375881717110359486172515235820730691416018283352323654026403509452643826439412368418346461196317545023354138567460085237719660161969195838071475911599447414485402845701488477663826300738222642986494101806047735494115000897586424670785336369218136418360091689238121327737502732586856993688125047539346923324487538289045890051023361035813920657011034899294619155889340022901852583591314732915905049347273799290725656602096435920636376298323793936823369905076911389190100723453761525154756174402165489867478745864662719282939799261169047012149438154583751867204435108197613029113830608490051793341654334645861306968603420949895292185721955354899809900965702598599577564518222963197060460712346019888529749687125225894181984563454329732535124924824244260948013097459838543244803744483791868068811864463651624926790577619302249044204640388550392042344386130450794462055174270285857184683542265029535641042224720767308486957422963070139219880377340327566899992085642392043285030417106978316585710380093113869423142037242401980307248464922608191806650802621958176092551037167327384510035251744107926049416503973293703362887386679052879101130366982919629807085337320713950002991395052190899092156210840170532198408401262620009749110540605220776473939049208805545788720332851986848458739341525392857197699126653605376760424593898009588690767597931565051359804348432882128373332037009088325594268981222793134719335156856716960154771899895217124380829344029356752153560679141886079882799260063696234886410596423410053710004654066591972249484602096158374799118616237939044743293811221018827054268887110662814560391225326173166540637191892695318887310244221783707023351727810228745050361868091418122525753535383487297983746976881452877609650175081567463291553822878566625601704166481907233765035232900839411830056598842146683989626890645469247026137702234670445505025529783456182442363960320731811701744587686495919318367236665961298020053681191610566518637748255210137981577685159191404825159064176961782646841494021535295819908593004977437116477538193654605313408778133148732538409724295752424061663480328004937276623511270578882438685918292589041850149604395433502301631969779851375984191985028504157827551445340836760256338707988088603062591859392751298541206437585689221542308271946605082419471361807260506110241893630517986590528512792460647360781920065773002970980376111408575483038411076672523342313972472192613374088720881100630953777861473469598776653162734294210443737768649173893016984968111237472278159268721712835410822964901833642400432746690831523378633839002609225995296637799756909990527687025893706469592273400433892797733429121519048880860952623161836736502080992364500467291286604961411652723763537916369730567511801806691401678428854409233117158859211493917035776829462128912249490077644209230151189761191222018336506070540074991963131082849419430627686952938571361473432485001308275769484251499548967207250436687430026112613256222337848035471692520716564739994312908699142035586262053715774910086362675943465432152801122775877338407972158276566868043132449062334168927758388246805113198714201224556064602091659223347878173346107913324701602635180215211210734716783335629657469934735697819586883929374723464795890761731223854803326869186344677768605473496600399727858789338687304685017779999643408469895227764914967112437849789400488456563329849365215431905385277393152621611506552114498942934581855416079825587768860814077012694081634644529416592521013504399969700691221853399678480082920759922398387061554279023112231439046447089517970606817027320618590113495779195561588055235137802468583293629417742199785722481391293842338326572599793503895522496598447151082212129497788653219169710032169539407291455875483524899618952064450096242479843579702993291852720057897658379474569815980326437835616944903408985221226528696613858516816394578981948505776914731245907593760711800015781493364328362786558662393550244470743397690226603295980572701134927220477967526704040103957856492813790971515240310322409985723504229406091319569302557386071833364788772566131628873932127204074827512441336309149015298304842397665400575408179375561808527669298533965130002090797335166407659977628482738646005404300210799211321431536659181789398090772786957638954912861958946182005212426165672572041683708388921773519014941708244470301035975941516043678813708126408618973411400548243788887760143015761032655990752171324371978913177173996356436947965948954797004674251872142929632404552513944192174761251521629488708654129856547950092933102773210831840463407035196077402112951642643088986085694605577721499568134514047066733599028727521891959749820343997791838937016662274810276384950216572172507793554098413046473392753241710688672889413169849454495710299630006432144114020687538161839463355447940789879842534135316682020598826305589901662931037697809685949998790244563453503598982068187478875414722455188892448284543210695749595517802036628829886297016670294282734433388027881804910500816360298398922262210345829764066355208347400144960911145408006531951884437743703021068957031853503143830750248083799934241722880366279424158464951305360741056447720500128147462502136058024831763622403452729910214619019148377895828618780342942496425070420507384057000582577804043526536649579657564086587383973528557136590648488133215757500581338418399469684774757300221068567730569503858490867652217157509209078618359033753148783851556327042426583279803425618470216241819116391042337150725602293942763274589157274181778339040343444484980181927944736474864128441557535039281234820321676088354763317212439352546219999456332677102325250583569416492144521347703970315758045010096523265180483145406664588868300259508266254010945328918230742194060351301937507885722655351397074965111667503036735499421914948989841158165481556292382544257330419768760140638792652099319028241195655022789923611286011916027847396324174163474421095963854406179505909930599683217994799950684332752980270812037184919323180733125191862961599226155503722640750330637968888957363522677929438481978846644714921322120551820920514494538049861013225721221690056541371743507730219405282411862295433581115698129109787534619306791414437318018476824010777933157276607469628061015450890516858824892659974307801717405947574316916594264236927083716756278002780667860598536708423008336400066482635890542274937020919730330011370403904119773782726225657123548807272721584609712541805037979978258195878261528230129386833176777758410794271150600285277860318609190706200442806496965091323979178697661585055978776487473466385596593695716846583733060499708549239069677162099086749855959977262898917297042167796042717403552918852324423079503663425588204714733364199310007046915350900610203495261691554332812057364928924666129155610219493276932974505386215473420814031423275021902609895746149170366389196134609165575395467412531342220797654104844979225193686083671831247042410029316497063548401608433480671866583714770636125296765441119792638463857616730572462937062326180372807779219520864894675075091161636519306029141054926992058105514919258823902612479216414765331205109672346305769425639511079717036470968251860381161926117240772222805615882295252602988874537209039942862102470741531230592758270079548005222657092931050770926736665741171086207063984105066487888321547607464762861204099186170302276625163433388308693678458580662131278415387957929951646543779433985828205395943267007736450000408724383681662643566266432867438097869112737880401811122783180441162437633723876988967717452679526290123441194211541499423202272097070920848064023692846807131013961596516159317862368229689260050533390955343920981509599118861601796598122934421597485780383747593238762055161606356331983743371272866048040434069463291915802793763225169018696714868756848571765093508815042994023013688541020361047759660297178231558108794748236940502332809235730787199010643617919807606674125381448031331775030718923684277027014090220552240773800259660344266651749542836457540641334788290395087601321541176565921777765051839972182424143667635635210885932004483190181879242888656194732265710278067910680992152533161213425850483867003608013482385029599557667674843676939235013658765547371702719050610999974218460333989065395207716067752638706673273813383187341437522162400488371935481565710537304072693904953371972994241073544577108574745143251927335781789190014471466414743426285936239937262111423272438722768056053513863828385020473354731538059359807151757705902394572965869232952731135606488592799434523599982167466464691716285344215850294445951860671191969586250615116145541872073204258974411912952605203063408960043549011357528919835247431838122697405933697159474556470284848717009197251422913852002805198013041618780860300532555816185605646487903913382133320241537587426302226138949211814628070305859359726321475021280793810845943278845711089546664879662039194781378639614618387858674211166867246314131861667816870579584927703122087548178346650861502971690501111456793733214801024439839552493035245570282953209757621441353778190468842253620691651219336307577195309746961078707380803392124198788291632092612833475859843337290209289872962050005443520886922100016714576707911662671422702647940737836896847852289383480544903199963376165931619882668729323622147261614022793066324401212166881139872312183622615887521665889897751763067912465647072162562406910176804062331458091948548798236409496143600191209689719857271089097695454822699458198837502830956447156339267169599826528616128802083193636292744008002145776424336101543811992967236118125325162353473037227323458959594532965589020231987942313929040634252440591853510304807189264550228556762399805148334263864083371739496924423461181313067800956766121213096621121897793412181109874573894692964419641627299552945216190582742940001640641515561556263169977946576294862385987702573192741628587183791647229558575871333353260403745053430128563137472720514481557489574139991909119673773955960111934770987131128769149484873968834072636389403155872624285469695515409612336167869044997028687053683805337041984297539931264409303841090019839736497897438754632502337673307866821710283400129760588567129652854069133554285884636572158306784348828337144230105990973821344574113697801499941606912901908090059976210444073777386070042677884101871146945664517704885653730683260245424259279526052058233219784292307837485329601563541514622487334408133586298696800628387312410583000303010988202797660066703539421508475033626179778455551017916798872119331543407254849603118493866419668242232069418705729313050445858934183529811192852539690963696371346584087509814321796018226974981312338260051463668062224083923745707325340302191545208798591324719921471886538070724253676110349743629951343844195139398276300219382381258461559998808057227697359300937481907939462980485162283760416247894541464748123512124890199863287630002358450558654964265935325632499079746752982341992193288929033330569583072668437394419253768462198845974204644379137220839924266092284309853338250417366194441860750900016639840557437990657397007088841095607351100683477036695794640469760506372652883444119660429451792560762544608727829854612340904066639824593450194742041302628152382449701441439852868283125716789023860033258272745801330351116141827087551468276237596653810571677271900472760056618079137328266818271898546189690047077627918130043862682952088643561969774642870746825673967695662782514088183833626329528931220569918548670269382377431187317229530256458699565910090889201445780878995433630769929889224791447760515808433194108889721336840039472049395082791965040685001907652909354262524659752985089185708936649314900796400961265662844216972724396624149066044373063177777361222864230445761704208088507157958032265975042464973559044410546062081285264253571343228173529115021651566940962677712515764595580952529421251325594129037751241761674334849035708660545836560208598968881242543952163152318296808954371954454794183110941335360928424656371809293729232001358982074680396514052754167797284234623266308260808625688454828870514403078072248879234157815925276734027829298991443307186790766203165214237709038362046905422255286870029803053872822181885445910211115012355901897975524693513032988042290516009071448668492858704557330482389880391645953761557713339787273719677491443883581321983840937019524079387754030039047076639445873923997378548058860933415317006931972030717251351455545054166854191471530592342405565027273687707329597436034734937039271060214407922440497049437199057027740394657799641940937874330967964895982053944667237201346647838704045808989734759480895230880360591845595150904999787050676808891760797513313525795362563146342606326105917576454804837730219596111048925810384211159554103979723413070606212400993238346988623571050943353793822524170999908399063114326618816455814773792694971754563412655741496827416202750933969603710467186814357095169453787053314742919064625914031411681242438349560385818198033499374233832039115186830232188786897178784344273385522267556440759096183975911199424118325966184630389773064574055788239520097809156585240785560767020548487979567103576911083952946605561452144330424801394342143939528045856138911797069018453099761677774973208513588399507646725968073872638682240047136915034626257960124420451201176094023314311034211259651217193844574856243736795383628137041743275191147741844934825608389675927393420232749615211742700458392015759078466244161045435501080279663939295802598738142778220712782072028842388297774962803102807984980093879686935093152936909771629382353114682498766616008309215360124004759525151471123573023795084090648402601417104984030869313342444249236003889417326147777548610879570090605655766944731932959987563001691758555744193578693140049626583944974255138071920645767741630503704180973933565384011300739339353260607299685114000628837789344308827065066133812181009771557959580729126687712130617649523103974825734864943142884245631499037305137690533315894590943787604800515654722603287893151739541779398602914626434752190146920750352091329856873112862188363750290405162990935338572135468716441431350638125665249750026317197428347294739609077186627776662460233904569990682968682362761938959129840409307070292019842860537124742465782646495457895670674427051089786046734825643810958210970112468701042293782361424404379820404091531114764491713312786507558856867263408944917180450802872208576460258550419547633771148185027497412259135937604216155746821721449375772914313833565605433507006673104100955640523814617067398885193746639874486135387207978247106160576272494740636146565630983020534133478221726038283482457439264101595093144004816778346189774457105546121989845591807306333376692073674635516733728513201787568531783871124912567117978395893833689493125451335180698695184109195212467970618723283878673269736763438879302152300510092870203688136156848387927929179312256864674225769180805862215943731298712346445223534358863733901044350248447925399878058901665379514664278490958771496069582464213795126370645457107092959220965102458723582731916803779619632542193784979530688980080859493548248521025792735897020843078294505088351652884452904350529281692763522703243159282674354791351196280405677601763885002175067095576690287591980094870946021617418488412880707780572249240139903048883669673782282843488779144134919877124465860826513812396924994724624543095232743392463685766472987003878903384851563667103196032544334727691228551868796037179549632767248302780700613679766330906903362382611339648515212189890529837545387908090971316083337852938997240197624136856203478175654157661678980706813894649634225813097578310536735674105295433485092180143384183304191491489732658454227567350084349141092927841864441159863733240648322161134041630147113264234585642648381955582789972130511629355603711100892821786845998481563914165056247640992012772789426688573713381066934355838805512884356311349802918510349886133775620313895993087383450723735173451321827159788228618900305928956850306160933732479394084068142862212540803194356094224168200579544280298300801662669578669151039588306879936955368607051084785915563263925661485047171733340364554757635266044722403867055608361235311858885715376374390911549507361607307002881085880677296174797925341135110690275729423111148716866565240924204360696355657807402291710801515782742806545849608684529492657470735318218790709390828517926060529939143478444833481537971105173926053271008586229767329326670159047838185085237257192665129166268882570341400041218297428429147611542288303995292537822432689453034700862104679843299158686187554685310835367590231196986089487528508214770562518444343035661342081305940184605013871591311340411697498999440181303134438041906586744887731237492352543421671961583185234839539536807054842697677898173970041752091249963343213292298973019286423305798106097544677210938086698179223300475301937093456747470618233489881475246379370829505185534010614621458506174081095339565339493022538562029647950709099231788389439082746557201253191931064655419320271877505650591854438024853299443306354416951024860448507806254447083040351727517538519323387393031351966597882560765313208397002074654245077696192911504332037537068335980897358220892971385207937683677246915476164620847607035541634524633926809747088263101078243356746020922913731034667593793594473799492807632660619771332291756462634414652139945940021991308969395466882394626143139530218806363872973988307254562407448619294939085357834321806524840679297952433464155632166286129511560321051069177096737252057114913871414272567521620184681542830541307902950682379995711758366338342159718509754519726586679991911221672437511739479432407387740682957562427821839473218206809628545534786652737042138714711318400314922926719057576587514920826695003055678136849913887240849395406903756485069829400491466205852077002468665375913369882669741545866857922427929237154062968528315694708169940815798963243886324079332051800878907571615023553215973050818378741957251135131569716996454715123637273107938549658642443849811718373864308752634452165839763092026528105968595271594918558302432244428779405285003895953084651874771696062053947790494630073384835560723617499236375421939243066641239242443928754329383979265052164039841609814201903992786208542022705856082997835897549400091392386787695097474375021353426667924108107176411433296616636252690890893024468521043946413089768786009608174509820962633560572722914863645604434618713877246872012978126348485100262962614370794960134799134183893103943174791034306826315527778161730406984184870750758920898755524398203913470644921888348835510252378511484454069206533547768457437493230086131878265354211938065123455500379500229083644588492945881480549101392494355650160254122564218316679618002680355056492512534277524985309153165036818564120198184649743989111017744127453013302417734718353637144479650054417187153391904830086029078075662068371620306821012991123633581215810282617939635036821721372693757220170237292105696673297061313553993233082762057179802785892240815793163673758230086344723269705078123148388841517268978017906807422211764223896640750989341814077200764766081914000578383788097675376881261046847326822512643501250981310067355360778389728747496717235751891722676908489627980234594842137927478319542055845188190445694456011752403788373263419992712420740337116088687910906222935723974389194825600627284276865820921940434096122883787455198034108166400038230631064492129077896864683109117104525135152298957852115259383467161516408288284655949113366275699554977851945960329974336183260722243458575752327221370283986880445759806757629111217837071116254630336151506758919693401412588227521478074642426336403598033507173664734434101925209591021791657150783079586372589415971899935538488260137669267470163648506592606083439612820305158321545185126806188624277349924062406878367801415064606648816221259548427127462266602603569680367732256812654863218953250032232104807569572860279839941202445496521246104185126846759580884891033540273401183374021034109279220871143134301969442168595694142172561626381766314865556050613639023138358154684319341042565956658888887575100070916451882723622082950037293568908339183451665837625027133810626283569380665131054655117930924593910885307004659235195309249354310408910516274354409233272697152569333005749516656336105170482086823093413485573286482893041836310789199209805860424267172190375484289633072294757506614992392293028919747654335531082392766823648907682771334540987720552078975125230809866154089205062897434299034446642942173817045423821528711099932736197353591486578641880430578008853701884487722921383677292069503447361959374439167158154849499938115959923880705346644102820423270505241757493406774042854789861677128999586898741032579635644772404425592654623842915134287894535704522023616431615178209113424043546327197497766615949899838607274545598562503898400923804666578914064375581168850882654396753442753674669181840082497374900516055554385326050155799996164703065119847573754187735806130540644696859584658644334113357817667061305982670286282926975024025009506109683179437403970626032925991571089968640696222982707608722289523918271463733809446895486436745964569971851806965774125642490691080499986605043371403557983672169824843796179922357567118890029165968918663152001221915515158158493020387726867659918399587476935826648874417056393274646266594397332621516826599020091355592731082182692250272249085313999181961487361303526570368655956848192664550178829159868814011851042999985116477194912517581470910319187768104175262757084464511778266979313144712288655830260082009243546859895670636221022347588178308301726791863793091113045137871385711189925648825677048103019492745669879298505013033982081710276464166328954329615972343101297069266871225163974623797606805512681035486234483554150697615015804252980085336584030877158233912191309154998525266843294908024685845992169569264135878088195064724956694162180305915801650527305493430896179836709833610959169770143883104655635300980361719346385004164403895489647785083271759434371829715834148645047445802278151872027722129865842962001971415056780234505097616570226525716295787062732650338735821740352083327373067589307284411405091295102207346265357951211741738049661947163831938826066280164218187326542812120301717273371868959204137098699052012191025772484195345304461496466324155011454095271194047004494450307176529551753527541407419810906026097455534197217482684290612780003330421243395464030314193910903154928812251745968838896116368007050470270262013384877183294485303917334251384074750085080897917714388073742437462371833094336689384270926816523511788716213440106861421421286691637533140416319441503015456061132655001621292313592626363176244177227180777517316398607172167926042943776812530798803865145346410742488977154446175670055837311432200344798798301902004517160819060882933367246800101842327069845099010293223088176860967861754182030310245299546817242476048058234116505539275345164726526699571119529012248516886520903830314645629755350027406237437072237433982219870841042416429560235925842017477082035836471192069696881059401727876731778628006275155220809291825602943534454079973023117179586142239884822677844444387503614361512547245019304447402615781329035912281346515802603021759064167681093622486975615309717369481277947172554388118546175349926620143807691312185392549425098390789235830418653655354911213113930662981529811265930065275434080035965456693326325286592124298634180985627921085998048502332548111572470381460684596902973532877959799481463532852926772146672648630192484268964041319191134423666740422408273613260174367317209113021037597164093357811469303118227788501861638035107418507582061069947187320065602448524599941806416268687867091404777343190412927151984993561576371654534174454832629674351109426098172590898293384156075574096768900147312948523177171065363445550677620177244883188312514070314199432087720298332133462955739061509084515857132679230087412502366730663953504492878920804649039589893421400055476408503276394501165566722199133855699005906851867835092085555405079831730960848035916461261149336052646560966968295167244091640455357839128885558607697867230291580006856272091566560801834870271404776704665762650849940759189318061509228540021661330461913651680400880421493153046896358611796334247791397378653059386499795586961342915722016859257198400654351162500386413568078154010977944143137093469002774756629638845926803404564394821649873922995019591202583526365183494463611914866165220348773841700387578451679503909773922791814829205049980256401642985548290858250059237011853695876673960722406308564421070243229385207392327957333517654549881671091409690537617177720296543917467440724128551809516375054719722060934805562774084114929910009974694844737327280304685157641280920725973163527906327204103657723597552072996384964200577891536230152828380581599970833497519853160666403908006126184553179849223361573808967793486063198716052239153045595991995740861937010299988940001904300341144201231783748566617381697784901539311910444721129133968286957419800031083300978489470042253784189328168614435874251157724236061851334214894392339148154325251312750274933407236759619767669759970334615276228832807447532239944674991347872575912049219105692325379266918495378943774677121410393579585063277682404506623337377147823172585566772325250369428957366853814281918217035680259594605777901468098672999318502185130059115540642322539576576361659026563372509419896540977091718481302820139972428568234164108030561243116378953352579118667955513419164286803955654361749232146371183155433774283368200455646615700596451202130885223726418907659254247442787890788794597682098317382405948911775983897813691822388920375376671270202929359542183350906995649695486180526375202031027875753339237090015374398934265787344896036007342736246407823196449136601202989550422532844586328658302924496809898220958548311254165066984921215507922050484363531481179049345595290588781179863418879539528189336551295695103766350197313339747526604650450668682376387356784874971713263788707935202074548176474794321205734631557983272101938143429634716499461567827026299195413496767326008966643562937235648536777076548479640569809807131591170381024791953643074121543870600583468675395515422470039491946510218943745188652787542226882739325436985068947544560445467255837524966448072464845048270015606903128251986993422636906386058052400406310907870727883668519012635126862652587225536350036463758797219033019414732434701716106602398183490046093005274751031076621770947390118968964309901905468945730991438650657371385556188470915561755474747576282752943450390864684830770095963945962401034270462104712996820088396698246471567024149319002441923847651826510649765556280884243795381704655388247403374033995366610812151892309005338742418861224386279365748119936920362170873641450529489421400514471070848706229149471209067218605876427560427737799517266734358882806141178674596532342847039370855696693256386125699742044391213738590047938953857391895201159344794861853092167529459969636140625177570659068815695104847657375140099399405540302396320101231322409578868478512090386788627196909700691560231151240645595388435002258584185259156484949489816990686862599733992398157751623046246582565672344839048622667312209633815332427955669267730767487474538122980735498804008263223240521558665232042743821931550121359539961165459372134824914556050946906125060231933100510530580137834526428690493137254296601882484319751410852555890694902341163916075252004071322752741031548169221463897687953065309888934774243009389521007484873594406534294858931447524637186888416490625020596571869988171383200287324590806013619535245527809703022658553350317288769161729400890523041931261538408601161128432737094356935257686264604312153901272577397621802266483913896500379131876993808308804250136520149598973279982606411758456312168712090647705697225671805368866980551953946779676276764081426647173032984474935656978302823600778206713066638751790626289576577509833082334655368813908611604925866039946354221893278180550175206289757164911779928762352001068110438828750011143538297803001741392041086023826577214910756935654573116851165948633315757882550487743295383027781961781118066332790992309216731460238455456526649308323025409655297399441633690540440449729380228338541673598121559773814438217377484276654252607525803067436058786289693613653563734262428560536076542434559386334485910324918811130381818267187764011727539718440911925733249103450641387293933955865501901223000986000307391406414320270225543285066621408306304010443159616264675183309481749455792117550001088533923860411451972684812761164889512036551653727479971321866507449019838205723150974793216722866568161735948266484281874386867141019886492557921005949685478370536695418071925426413256881193775475394658761436342178401273210629504415242381195275950951241583322451011264096162344102788761384501670001710237356077838614199713858246931765884467930848993782178014767377301813097211820144489624269972796361908600347900239363660923444080569180548320134043530434426656907865605073846481600697347756588870585067820746946601120407202883893076882011764191094971679620793235971047896404252665326607875465161528731086249663476341378223822291857473638493497974093910752303737475394513465561266140472671021153721470062862332878447749188695601341655328981550713896692613973083527583788470362162103012575282308854490252246098944763344833242621133803879059450487463969207866796357725890960884726435640870224240714802490598605469191112963341163009694136966191442644998333820499584356903794110455585868570157812141611026133096402830636917008116120933837683959233246400757108398844964492351736864585827520288059519531751745264587474485665760617579676435354932035033987718622440513924565007114781192937347254057654110022764770998688899378138433847414615740215760223282466854848991694062457811360927606253971393519465471608959283106768911087472006563495675984777938524837765746762597232417966468881208130135192434546678261670241447799028834825804322647591206750547117200236871534022653599381620098091053054157492660059252101546595283939290028094519868413495372727286713728060846365042490223433667588650571749641939243488581509635705784087322961482374623852468657096799177535594122061414207887910420120015233093492033348250637715285602352542988027399992749977170519128885367093762165032066054958712683170772803878168467276216091861091013792366446084439724201048022662012380071812848198538766108530306405402535084582293019268472441773917247274960336812663040543749298204633747688057771656037769637341876287877123862848788282062641809394710839201292695264646086682133031668721926987290790180616318309959164020760083478389277084723194273828001306503431539762955540676299501596724603339232105228663402797784316782856065274138947278233423324085758636400941615206816020476944268546327326453200782754288766815352460432435098799301427486565404195482425585673341553363856800614659360555297055468028411441018591726466078668796326874525659678193724685915185006256160240296765931176898446350641304580158059644951609624627548546992743109096890809485566152797602053921930670109502556562683276825910207036320035833012384478631682653542807726121565105043813361166855613501207610377517164283879726864891794863445652050944317304260803034861013480309833496835969075102637391128267822877464715842975950487233646611660038933772323762369632926809073198773365530513070767063298259222601587242305747282542341134483101298981779358741912355591738367179409194508218376813580445278677129604943109009380717996368338288689303053579607993377455121066260379054577262249368625767654517525497257377126098612468050850691043465050834931920829926812855590640225492421926781050915236907781646773206599108165430380548748721828055367654458779950641920210281670890215262686607640948582839917890853133424274596520758290827664651967748477666708040484357747386265787798411762983081096114277142810766248032373355183137096744066111066350143932121065957090914674398053592884025096344343783400230302972548508434048102021107633013238755184847219601100793215150796155565371539744013847096367904687307196572233770340711841294471718413856817690596609107738242817897468350829603494695429455085092947765795189402151348862087352297054305363627176576921659586598018985071717797765673889436556111279659291922166489430879058077007820712359205267284660073460216306787194998913046831794432684629384151829254321475200709221334184986119958197304683927486719586777888489980650416680951488875030316153871369666308661903455484158247709189177984019026186309143155200339539432856741244799126135278005127866826626859378644431773628095304417149572809689124032859807910165733073998949967227139042236344037819782536472995327407261151595032673424361235328869575814908036534275826576157868620550562076514054077653933857497317415414628601181655056717691191472027156910493075621902457983845986199021889340142997103215324862009939887267433194050648069458666385147382038174013034750267115697644361614174975240795440080925430557075047421896781068244347733376339430719514681918319077023451260550399456401002717688340085245866850487441233234161399962806708376840545152687530946870464498386303498980527838378225964206111304533535061724651615936103448279614725445017320431979701238824202694514508377977977700602516839806067551468781438942047649236993258335665899021002863715129352917699127251492577370731801409313048703776555178408996384638124047112808353186320870989103022995235928173210037741973392168437149872340045825241571941756911624587632614249886731846732752717869320113219574753735534836737363351708467125730721573035546851509119307895399289212353833979235252665657193763530715264602012315798639065316067410933753976319679717984509378239557144061410799657555853580394074977647502985387534731072398711387391943123897160269405054654260032665868578141691944295186423118588922813438529574574556941548266154612205353862224733230885844588036891472736515446945413425712484893891293466221084942781348171381416151504242890850347334864781502414592898423709376019634599506872474463801221205942671205258181800647695140239642880094744553002337974210520217038612671436806869263944438870200651104465527934225157763831159818865810513376196709914874437519068989477957553282101049834431352159009893182733184167677004734936651487627236564689529120389817931146961408240018051210177565728411706108939893409853014103849128479688823944690836759631686658408318669819501532500308162365158849742197261812235069095073886172070841173681360692275348861402890204885092877029775258924486525405847802371044053833089217396247094977505368996641854447859742905569061377753429780336626196634312964232344852221779483707695455963486707443872147998233215909184381640050676056079807946150716306325258074213346783831882430958263475152760389215906580350899938203237276376762429112857571568524522226279352904078104489494916711492931230747622530929676263312298979471787379853326624786595811884234650593790385526036083171956721884117436249768671062735043181975098403658367742225139732534816315019561104492153389103888017524089452265182093399571985573201012658221112783615007765418051761651097766792237532576907029422002690393663523245988863498963940334777550827713369914795759183296946136829954571243386525360743493966494967664603015595471249451807797817499286273924294311008744628612081241176440686869213298026237390829387585291800306733368177648727138800139974651142507126495172504408546856043224353561039017130518378454466247026184027355123866370948474669434331407171087826763306379372916787752551342505798106383161536106262120763349089681586026425024919574663607881563010903199020337126596175645988150416152450516651134596918238632936274889913953493465893219298353580079400380925788717615875267555352683986570135165720706016385930891295495492970116883447382875398371776671083312309199105223067824516073272962270669732615539351162437016303663331486996336223329007138899799628500332199358458866377299744015339723689535433857992722175509576072051935464939397791911159679746941620729973193117334288592281327219415555477367255633043414352519645717590922976241967286378885034482919725826014237013153969035639380741751495292474159706263446329560078881025521710218698037590715739968847969377709995115049137225797074473199028868648128046252247754019456211144906917710119469300828398337308907699822236124105582740706691928860145283880801276699196630570584143501329568406797113707233617288957529661237461854036098616803513834505897539538165859972040499902481458401598198095130507719913519363408085134231308762327745399475678204190180208834747080102300045458596835295868758404801659746826336950893591484864344512761534740467524872894177545161261512625765078949973969301178693103681796208844081064350154134642847197042881480543631384111993499993001061609281143292659507838698878912201310501351870810424939498514443007136216678324459607342011342768860700469253226029740053184132948478607649324069965029595279663132861243067163880381269743599081869202103348541109981066335989860716979856253596773434680272431639208775332872879279541688931669588575404747618819846134006981812751339850323685255217699860706926626612319929042204113476634071005020367037993072733050984249120409058122718530255187174435481886356019673701593935036642873990208737896074229670507903049356802078838400922045591827737608644390828391491809185801748890870438149758707145012885655031425556899006188662944852076465501345003468805795706908713429840026581535155015783248222289571629065320436993649954705636671358473959874353449159220352202689952371376828311082614017309931569238703713985457500089491780246311280786263622900153584457287410447515398748458709600866408700062374645582513741937841604580796832159651842710529828705462668598506220660561883377680479027939779832416346209391142714075727597747684551091817692504924882179581441071949033658898804066705394095132542223405222320871384492091326727356860202494528602527231513337800532648540572447175508874304566287655804414652482309174420283237777547418876428659469022938911882056392727682690491783208748479402924151241399173272710656492609154906746412296773625924287371621496508001976649543891369773081164650485258095515432519677218541765648003263133808185284476375518247932240504338793696991423478574207548330822929618174257978835618765005303356790159403785649457235611711221399431128760561421717002694880509890599740630866154451643645471685290076985552313568721760683082080824047315813098487811014664222854066232238022372247859437962062380445316958101431993319246442879618819067820157987442086314200383739741382284634352595159834204411960888989886575677981867782199914172455362467524202985402139901264715721430316005932007198219477242788474144200944315477947140656155769900701322833969567307357763526740129168530046149400734555874013252271524922267891163236807726123225874151852425516167423211367739866554752931809536053801894821467943252306308688610694157617559154813226226078909653296361753009276399156832358089045174815082015009993210725466398456118363588757352126674603619301204018945660127804761098228291195428031499952808345655820059337782701083353772907786656207265473070794031133184135343130905574737437421625736509640117231569595393962518881695031147954311237280205559835501816510646784445892915226435384942009421055839947969793631008813081566471009102261814431741117262718849924679271173907844339621885755785606903432946733553823463812641117237021299892607842570464249879068561977324388934577677100123843973055850667059768250448908054108080947941224979618632459223813779571279322692021039778916856493321371094251199683935015204075037663441051160877537597577403602643875263879411244132510500194151741332601010587226468712803771090180293799198392820821089212537199728984704127685283027112241708460886704814104203795576967369864290675086301017130902431522601913277367498129429706901714545242856984569546320283189475491099150209858830287603115211386713725570831615433656507215312565721168098539172654583874059289734518426376428458155049206312423896023853347967361873952129546218500369771492094814563943446484576924793425549272463193903389625650886674703268747507881221026187151591664604275163489168066159048530980033442228291342796560666603140025179091424788654904211432430711901979009833550700942890403891444204567621918523959100637264801397266751765210721196587927310906446547177543047886018605186093682805152197899279875724480102926046725421547130749385105130029750765654449984108095496126505511845738938651894668406247347810375249205250137709959551922541685269584242797715765274793104499053520627350233698157113696900091239979676555144164950690916485062308500592047189874393212722648358186639252599927978249991296037012006239146160759119499033624816253300907444672764358923949566378195708343648787521954071747152043143664536736465510658267066617701305744317655036800153043277850674703454373315559122693095489804656354016634740028849928253456177376468149998874224954176195963977253275046748988928092934479969837869189732101034797864475297101430833582771723697258073464834481313699303309293358589262712615022684017769341783603235502319199304298535260159351804569667788300354083973229952291257539016446950172431089881570630580055294060659081476529976695037566275615215503593988905925898048464315221580204594191258906655372963772569032580228053403647581081911949282017083025961022099895187755949184379980438266315551942951059368043964098792509346831550183519110281381043607861500092303666380695913983499395774980427967700701482023534507482273690161092113987978812127976481561842158577149673675103788038847452504872322067338479760101625317258482698057848728155256302899810335627994920934479434760163228214023886681069547277651261590765394906247417549328804236951994361540204406668657173111147774826998905371278133485257429908615639741698412121698887287886613728080033969987348927706430893711535711878637053177019613622634600975870986594704582350112220946589502016422835919332725399640112904542620152991289040179616786541638263195326866797616478134879387900593546595691916487712457696717278043454637113500047925625941331827265577037918273936769124159819073840412396283133783286556189527352060331779929132877449862517223644688290812482810890502692336289327841389940595591141658340694702891556116585455201319096783601740767448155589790422695646723992152912478823019253641358365175939381438279282097865361821306063219454345670904039644276426233033738567986515297408255171599951483608160961206266742396448618615169483648894428874668264270099814425210153637594820601167214163337804172342935681418393398867370093079895966689955447817576850222209124644237356140668936003443657654039702821073805327836328911208009267264050594783813990291510267205064338002867035762619881208265070158381506972308129816354886257217328461423308307467863946003026344216016632384993908332096603373200708686126233854058349760124749363384092509745374866162357104614133309023151901228345581275855583743858034306233561669738282221890023813740160414991811393035942561477138557785228491571071805793267407821811098440726183611944993528414865840974413309891556507119792021910038902246190938081525283270986339023714572998096753590704185154079248708606876841531729199208509224209843099065384648478192289965480524529262242203863604888152045489036256303528883174987426061931007860923530431362541014980346753470468666790773634550454459559050682251190027231670967751002020092991896775191466616879727790277081074954638913992528039642380676208760592444704788740847204794109037817493928675491819963294818275626971626568105401405938377010095759045207977576895290433071442336873145614901151365884171285847236407673192138329310273945483539027179316260582972511646647277777634842455049656600614812055327330778746493854542036730377829962116680429783403107556915609114266363385985235220510325773080281768800599655967724045704440092186452168564605027475819780481366262531883724012875101056905864833361060875237658492610997162378025252000207414238418137266546792235984040542712137697974265319671459872637833819568680818012617907485448228797648409206849686441984593622642818467470914811754321944058927329520616350104813075542148602048248272768849925767769965720003036432580246819084046404596323531607711093962508902615333576512197553711928530471627158303893167141226061816585880896156723391887987206198269543833368073095837891372162527540406245749019312724105196964427314665368757587106679216833792561000367364071341253265341505578934036492625087566917453177066278318463880958847316188055835576599480008679681361640639653291008519934703083899335575090544074680536043218998423902480082552517018237245176576458053515952358355918000428878036922229868519470223390637010040449118387442792787228212865079166038483659762357075811457593028331531826481077879479140302649298234448215700368390500357815953550539798068368944195682059651000272115376738295113934602222985710993606787352746903811367077298978417368801900652407026580737856760899952835844834448934463106720109379084418242754854936682185455364520692176797393211657848420970012435265334936178271171643041454525571901685057031843987142442826636886912315016855121256894246681185812529299651946039626117634798951891964711218091325341233491026063491523761804562666243039981136803080797888590613714483703481932707782171810433219570294958430973260733036266238932385944280494293570626146751123466083733458971683042845667885852254573614646994859443333258320120553409756062618260438643201830151787491790008382868969801335295522069275550667316304732047732930621013388254211668357669149541243809718102323325996092682915198671308853102674099031256403696636951718026685156474585690792633321137234653190527230120557765747226898545299076901179850185176568455823412919465645149835572251928642055718835863234803726262176047167354212976858172995344719695508305176358398390948656438783485346827790978021100035156633425630353455700923617071767102199145816127461095195804123825253146082150598492895181244311091243340013053067091810325571345370396147670383945011915542962699441943616412327221587524615494946357165389413633508081450056762074038888193331021173790516296298878628009702792863144895563908884451516415413004976887094526320247083787473630808403557917079048911652207663640972757798501437313309597185872177014873978068226136730516159403293450114673020280316372148978830513581760648650505300894668608195963636096893256889072471756380255066245796451011840200376343810923418823116213266427482626540401095236359203512717493785026340564449774348796758446155880033134098681957041773672102205327085830952631973043109357130235668171872922038919935306247439959221782280404982086656279987775438860815485036206792896579357412329872793577019637466269737334159468183959284024515784802728349976686926819533084458540503798869113014762067303644055767009395123413047834190631496989310255179294174664865607745998064243011816178844929789904006890041305588380290140987191659977457244711231188344710557912941966009803146244688010456381107452940145554012046452790246438548485666342539983934695305375810624721044495569901551016627973399460726658835934297649720476066060240570747263919859701281866298380635378465390795576042853779018559233534120727585436590688547965990616752014660754219316290250417370923965457867627680269514536999397058706973065562221440695311609246919162748573982585421940565653362929967595772093351944087385052555002801515584262027791832287627997862963663642164057661681859492842122079024894912405370981948997156331467947825743959126167052413074869519534738875590667541985278205600004596074327478868961840999602851524731609210662918113671291347695503689547128462811133628206541233981960719487854799579095355079510815658526693497392961719828866549902089942546756600230642217300252430636952301754245933416408525270798833041200398251528119483377613488859845841416107753016725124890242714049352849706561109310411084502160192936787519603505212532898053514641388704113473657446498362349930424356154642533155121917796372188681306073527054251022637775498541905255520650525999944207586009922820223946190424533003388496535010319555227626649437043817650627553920145183162969686934529618226621694504451765830763580549882418997181998572023550602706158938945500743314569685919505278860473013151803238161654515657469186498123864726337874425867265806545336070019430870743439040554928298208648852995959084659885028276801121368497543010851260838360068757634462153743139493045599513878903973717936047936406402267775595813563542400887129009149632516147127354190423079379583829888148041840211462030473258679353668371781100996885494172104573608457622887900621661251400122108432077635745484115063931729643469545686534081375604199490421501121887723196019077857919533904600772792886632877044887116448385013000724024017872017165686327484506910701566024139469234309243586089131834172610776219930410435297318980729003151301264682479093213138675780345907008567955668722792165845512683942888109181109296811502931994241778971494558198609559537624798820153449342939372867605371169608350632060179223332508399052707383264449604959918481948927374605684897105121797686882934414635945267217449692024977465801363964218987626406974075755309545554007710783071853836932458961345245972260640082856200115851187611232959639665740677880616699912777178364320443141055128541220475545182868237823513859246362979829039285990483127288467864111733923800269225177043361907090010402266104458194554920594737569433428631605208247436523844887162300248453629839727591947397291626174924988343415493856977743473833697548549317346685709466154838794574071314994259948688960538138226759406776105157820144769104600923942484755711042893583282101667979773462964082006949650512772719463688107291395563259298238283578967447056500862002813372376308902506089970056650717011441260994188546559874837244912896129948330929330613069491358685283111543753789262932992135336424025417256540332433900030509536222033589442866103672609840762284667042458743607247659022677900588908778082403000594928836932679265301407981138362551199648428036682959274016118738343997719685336980910359404621730803317191109778190012539568872718562233654830585153964973900403395932830334024763888658062177539315838839018741811334644626385111195262529489594508652464757214768591026739658472026654042417268860468170424119104460584844594558570719884947421111231523017614507770556994289477593291459547906680399354630022409949313130594905882297617966462780849060246364875002997430015652840211905143081443340880975334242092631259335386754747342763933492271040492042668691709897763238609913242541636988565627928540068364727178885964632117964486820303603078155242324742895845827779193778478623236019474421304052462259199924577540297730983477062173393649319213207806429927331057610423348114839747313800170886660861348923971986085905506849665000609447571989194178134528107054287030409618105234131422720179879327193121995081109421464285134101254741689388283899674341843794739547397804046013948083281226842491551953256140395400280458432538868222361305482137563253179707992328854841444295907439874290346780698924047797533712815884735693918163470291208523352036088240166668688736013463358080921895760599819635762701855054914411899680299289505703810378473022683252373558076318990190951318966817841576687774506530361615206258721354255170598226809713187568902267571085938767170381351515625260468942820857566998546767039562449042097432709411903889001637963803861876699883094421043717250489121407426386317339814555452845141631069790396334506392063420122617343994352867981888253566011744882603656897821088324177373750333993328448680932140809412455889144888457730880374506718276669938624613195421583917922876000644330880474781191093677873737704114340197478429025571017688719804718160195501902700826367789558103976055296294290253234417869085992984809655524934928149817980332157048444051330935715783961872498918421500864891440459121537692964967949363509205597797718733699835497781893675034705338614795455237426327689182065690487207182600875692731540854706236529454126881173290183941566969919344787316644927581304662816210605828793495164323820863292642086633951027270712182543093636352963081512292500793787951867039282761533965252204469700516574591527412631499976641915000934603559377818861260212522276271992819331439344220409577096527229719722329537305929441756478573367392087527208799233963690008943958509454527945613925414592898455332150338376227672503076612025885829221049785599376053075897275234680909615815262415776917781891748275661537744851300144760240711648555568657276127800676206363892374392431221446505039023882069702736131704894332743209301236274104062968127507832271447487105419303109238982637078499866238274863457613592305985068874154108990722679467658817178492197110349704419373730430978893307073667749786528884737571982773237582459011056865948456809312813077583168219267602859937368880794113432661234797922440793546218877404312117467353058919846001417466527782644173947784329442561884791631683076695306716192548977243471030413210662307389236410792727789903447971423100795519496806504571470667475637248408364291554827310009730986342768049481561209911403029937015637648805596276929643574738540796159653783087478614894080745430070905459552080682736954025376751513822947627795377766561517343134819979979964775544345383326701642335341860118356265730815192149225918780976162847931867210350797209553033593132019387288465535123175056462698931987557277855469516929684504727518699098415044717621806861235813158936463352554756480442299244733879463264418404267266139191414612962477260361419590123397987148556585086847504905526709061058774483781597562257003494578761299593528272645274014062869522308663679364167948215414343071470859508012001792661155746089701200432541436282260663582185829683589041790860474954769211330494192660404283910023663807510180166253624832389159325488243549263165914603016414672338394787274718581064678309239813284787152651322108086288378007174606079756585248320193360531376497901629684098213880291452363344725743345752645414455076667240361667332386823721920421076742644022309603904248585293132755307580741562917563429633266741863411575163630495813221530363526193594874137794953567259535193231181865501150359988016670106991255688707499830598075654259408223881359629922910529691027152543961284443115499601566477820652216773202286840676122060030495356088764763681394743574687236307764789418148518499341218478652977165157290664322909128189308941416836551429349921440884170124509755683960847290913857682776511142363656494422498825802806996840974173246246136033283192653238925749087808775531248358805152961260731963004296602819521221266572397935542249115635819080659231580814623881936829862458146992465113299641106615795908816948126040420311494580747385118357622305130896677133305354191005677476315924215945960684158792812836637333831627083479890403509694804354436251821273373801741154246237066824374476768888926416940527297980411209933072993397091234587004459399463469021595065054057082644060477002141878806958977622825070653848118197300178837096275674349577026244056283511756682566763949029526701510516518057287809081018181581825540108042280110320063091040736958350585280341749503074653669021611785262914189101927598418222809209345642045775406410048027845937928475608284492754305922941473714213159719701027289663928126472636291778251323678137523202382008587509915356990614971479917590932324517221205420168122853965913788817271277663256597938348960182515107975878846081534666491578626507407207574784278867483500357989171494225845497198709296436922509894546767293097000772018653765815096960700558804923437472595401257882955085647390224344410998611888109007990951886913300185842192407716818908118704945803143308850214314777734398953118476164639680635320039691052861633044610136311092064100581677197581881623769121302238370268708782753434906356771600784137845300542528747036980878070448214448240233766464095929663220989139532075006028284336433086244996702041846308802600116455987159319852838587730978604955240336207741860476609206669355156167661909634388438848492881719528520099646816846676936255956590882446760665066361529397284094962101743902492723351004919798333044352229981831564911427915296465303069402744281376924496487433519908580175063844152293138003181271057660160144695078939834218513264542643401783296591088564232378169730000700410388246011349671585257132922780394463670028078981230874153735901949607231389167711497102424923622721607264789383735871272127222177713764561312293506437719742824025122743228623290312008072057514212787107252772830437857309280763821772525391610281937328520164242308053740266540333951073197371549304445728519404519188783849555325134712075824782758844386220868902886438118250797613936065924306602282154990534859664313785762993824410594170377287999863819537311349619978276342920786320271312208915373815391629037258614638004011344483083745739859459819221512907047566718556338367073677073707926079682694519762786912234957346868355594326070652838187170647987952997721960405432016089232606291592140603811001847313702772048841536062291297071597701586723790906418638803683540212528273616993278164328109365504089319431496440155361370275308041905991514066773592931809272421697750110219189702979898785524627997199180908442613688609458839707438422524753933448574326357127698930486580914162331924638631721211704150532692258746253704015306458366508544150399627905404412091066815862488527170857932787356759232578265932781589592662940977644978297865207399489628703338180421658046868435328888466484690255365931963559397205427829356335648026929827380647157030180525668153127081345851553936800635658771621670418649450262244852209512002866148901225338311918161732353412957638281692895559551027867926007423961554057776774212823225603410398644442476939384110797415204505824935496449749611211109450604277143196203495613339425370493923232436719101690815937161218406330882018578283672627311501879847823659965992633637895517600441360968111646005443769733663528856833536589674348294119413315331047541436990979074962664218853241420455231384268346644840962300943942237741840297967034371524071648192712253853535647637393674831208201626472648844869816744671271645904551142711837156110174955297525118973298678078559629059292813189830568804884958264502660206909534235728645823771881421831228644343489094351928621572571732590838352681940982000444226599086094020203746431482221578576950653216481515784261466604028023531022031225954576792351851600345038373119623704521381161979632764491872398565355350741158661990722226374383060217251965843227805734648605821550088646077855305458603094776540226105483911401925949559947810275457245723752109240131792375785466888610171266320861177246555777468315176505118599965756619895115877200952758480284780823417454026984913168870667196337381217404068054990789749894245315865534388998815764372077927288105714350473035248397336478908416376457069007731397677892196544132625758038251526421172458256941628068288196805670789266369557850437529273533551543827253752806684530240336554562304257362691801166962935138892194480369360877709154883988939575533554179295573875993212038201256925226579182613451380740652098846161102535271305306788064119078096800256658773195822167679770042541351115172140333668814530133134854703311671259545078846972245792864301517137979986564279814450208151398812363142722697145781029009021371906785150411435045150115533361386435462796749669406143187856880574264890508637097483448706603035548718053475361627963820073391458210527233132442292381461860878467428566938561084408184689061236957064551079276668516490138360990589864262645273146040256622021257950437702935513766174006802583067695880780621222021153470815642671211064274465646303227803292732996579656114201811160247122890796759008684224839880731327469267644081336100231999633964601083950324507357557337499848461563851744923646586216867298545301517263401430751413463763316979432729424060681119998935816750590950084322693637833742742680461170882306777851274957998826433328936723143382758433851690262766143336382803827858688890245955224755945333843579309916928186029103373452237542572236631847799075126257648908803271948454096044862758146608626881116884565733767684420440088493075613216989175872608517465322871364446299242754093084979914077047736967466614215195417010332185567499633077807999636438142833423941855518900215950207752033137065327608575228627390746313719590784897358980941620904230842871800367083896632868004198723317992867622250428275365484928322591918957199545071448653825683383185925445768320319076158025781835423031559374814611213872835583792146840447889529419901463981734993261161293899341662816330676556583526910809001632576549894940590486512878791335679031048575310964563381773269346248222685904806986732852080164173506526247222514649580253291016169909130064705317974271681840888599261215423060006789246179981001527987212689744416740846406910923849822126416757688251085227829996521879245904314525444151387055204569941061281255543777271188831317538135191808067056531828138690930400387214721402513771673959319829275659636345441421494723831820960740630653385182375123784367040976286751075725262731120149159306523628845748639454176923884804553293251341391389213789518057319055908442709002874383711899166657432127611361750155487913762577116333639414097703683196275870148860796675436527849292784821621795080927867200545471278342625930605418532287015565779991881719985022778745309609937790233570635231056868229669339675011437722825708630139549296944723104190762415340698029591169116743319251835006253939851442873983435233320852695161398096097575738396022800620441625672051528560212919786032511666479437631543693488606265568065766340622618673892766739453487631165313294424636906684943074521520482344028665136576819315159434365309867063757547912152520729605854661794750408222171254617055999276839165831321706597569483369906989141268681092995155864324917738877623266521597302966388848216531866091836112406593592608932321009120449514624027986366065517482864439472900762741701635807767141204266635312324333389131886660459319818300111124516431103889689210821510918327977605157599883370769237162694972037648137538953650825197374228232770066761739327830726845756404310266595897771398047611099648962691149024281771588133599846988528641189354335887527834357827282628154046859121864998661138418671224254318973517824914484756917996335854034549005590556199161602106006274448537877769417281895536334045671814583597543167364412484686979358852296872934469965585055833124961248380705561631858602103166236228924329355596953397473265399921808782517830608987187293079218731623524392407915763373894176440493933266698707846507194072964857661930226909863988635293572591782689500127194983979423798104593781856286190320896386810351566758691630494927123797745739569272506019471831779236082314514999576144317418416255218392782630349182045808227741500813856104383437080386042324075767740699836516829420445190059648293819551676313469123403386449554292675062145311598409089578320395347518376963077010548453241568444999680210724394952627609387333889922471738936502074409060294666494433984343509537236895491491545098446527884792203803141811945286739182331721736175299675203829196689193869417080904288367982439183858863846117065227082953107951542700229287869079686131121897469157572657027358935357220304267400808938936895677687237116373737285948834017201569223127745889499772016927349878352661857696190916709170096531080359292310778313073211019098766205606399319832623757006536563496415896889144406202031776599835111842228211643005326730420134827265255225334776637029504887795771644300673972512812364673441416954599656993164332484597194282211190967860314650361152978888919965197060960808449113882993637107613566688164435653392496565741911337543468762199717600876941335066286374057723722379921975804163423816458688154747042570391228174902032140160931975707972311084632836590707525094794714850499836423820761458206449347960928830747395318787597103662879362015972485052539934221857103069107158823075469589891104318018260195892314667760173180709252496620112424010001290621792060760335542992863816998753431915254239156315950988486467385578071060341448482724303202674771045000218273360277658949912019533638100066728352642290259915344384185526063747100857136700787259785293402975134238671015277350771788331057250441479913078987807007175208403246444679011089880677341829518614575994076166223416249973123740348574110573252969912322319857169070055894147604695088060579214088788873268153537616354627089013233886851886002234146116476928343614657955649060143713315808586531543087183600051087298027671676867835154220810633463814811817540939309732603544107052036421293571759323453175475569738415239037711130155685598934942490044406162508669953055557566455439732161059142178503564246156062678348423993866343734842330284019760934123034779652134123214214247411758379172589533806001964160823209553049652446647462199823108234994427059181516855965235355439072968630209294534010731798735308442815738596665154716833896721164779116925266221891382211852016441026175265808784470893614292750413890648379509317896369543113406034037043523226491233587131800932002610138761019975660997640392312673619159752453798262114267290449810310763617776189695486571446392248780127944796355129191824439879641744019786705748871811756941801134728209153882038758675862603855476694590971523514824264554855396770616433368120257420271249125150305223391351246275065677773940693360795847805192926274215479266143525414531204717498388608848752969238640078294763161953724346127492936147837986761815722971845968717480806637114850500247647208148063755725168850871872024427027445990724609821973686565862565817154168245594582848665750126658243884451996547168583918321616988715632365778443366164716769927089970366497059497405708046729141392003236596914830542122523739644733050579944203091430221569876473237306877725655656446922812043971478580741497886586661365173783484453344601221213216999926983813996577683656413644896058972517257745346940279959859105474670035576753378753739938898596639931164886532476784069889390456252038996945144490092296905700506117916002139529626688058934664456826196259982744878338479524158183214215434537957738417534995669473389211172373058947098255080470493972930535837511673915616523895388017912161472806006827813494637588834983737930172924632899718258415727442674994050856717855208049874899591470495356600109734111558579264438738157223066758504404621376284898638619512681514180066868237799159321612743927456879478854938062935444411113819624664886678643267984837284713961980300614470087678944067108101476831362383265294441667484474443124080943831382222255375971463291887346389330839860242569254928232538580229943203132867451948120228638791951720369008585844080791736701245254945615312336782271574937797482942039320013665521753224471808677501412486227950850823990177935447380018170866959995025066876043003365685070104702256502092129491863478832649212151904712678096571155138349102518785393466953823053713669015731133417150303800670689637715699052284436929321725650431837750051987373132094131817761640262708978357380061291259831241159971208934752553233348327991642357632599713378618525094437258293638646302228395221552574577131956663386435257785716764262350318198429624345932072059148215404359763817619474065158592289057658394921097757881567270575931403337477870979236127476955663408658632174944260573953230718728161578885413636614454470556835845718115946565992971313773556473185386693746528195446477900206975942344935415793764267317479502238671169996488708453670626838801162268264247764314144651592051171176649136590232421761766790057734861446654698580558827701819967620784649837608303720365674627953925447552393173571859902810350922729509043683941664495161999571190578012919533413435369318359353383503000342785063830776387114882221613929370905133944589552906864926128900928433095393669200611193444990298915749037579942032753248474071984498277880085347351402572436698753071827627473242267395692055238444253984572493245474249764876424453490661616605419878628950861575701289843409943971958980536499395917382325168346542922497364924588408881806425556312879330835959664076144757638779115526857249877948446168597357644909261403314010331262124908906285985301526522144680136860662780707718372607816917347755388160087352240770442946997609575625237108312463995854062000366835339773764523370063430373967456982750597658811422016022046676761883308205149344963919067672257251672936726644724348705008248021232362167211991333356556803083753765050779382713767616001212497472387412066892252471555342074021557580673328545126282125794634217476161554809736365716596070900493518772990861198699645503496874985929309119029467125758045029747775945687258249525907127288460632871323823792142805454024823020467549582976789704591534815781639723381441949633643892443267887138938220206534685621641212549232393046291847052814142041982765917973276545292436765324360424368913055991679743123612805966505603897529463682731163097923487608611895479661678548485920164824312855250547354761009839418693752235561926022287063270130135325916333564460367751669429802474188620681758933973575806903664110517635208942946812352496113175345221555586413141343040158181160271903762886808941298176965467931897334411234004882030425566186301546429550146564455993055410323586195382503008825974236624247448966983102423081856486504038280025812053565090871475247751753488674232244452465613594048342215710925760780796061128329526835387512048462285509509623445098408424501585832555531502089723759500741848445121021070052134704971804495492148690375368159077448955850725940713230206397378381401498066835511733335403644981165505163066699964849874561677223584029950706732768743821625109202617276987690511178052861046893002459534843441635897922311373516426567558633281422831691741679326707557337863222023830158580826802863917884160653319838043547490502824806910292674859051875194985994559240662184961860536539243610925927120992593058723145865913254663702369397259694271263185320522273887534261639973796246732571053008769638939874669005442401963480475625593630759289518701274279849319022449822505368180577242607324581111686263932234904893421343454869103974508752508946743915529285332100730599561819148579523846145578785865899888628698444152591331453247001599740705384562653483382486397978219521690424964455111865985022006416996632715896459469004767746559701895880853536981169213159322887587211437304001327948740095557196685364550724115871878252842992341796988287430878346428640121101202425283983482571295905217002462531022731848458035787516804097275706845009769751133085755305088538004698073367271167854241265708895492640421482500775297949646517712845480509264922846285041863945854473693933992959433804240702930157673301576275326865017773166546211478416978657098138950402486330645310301806232069427530382975524700047558100170745572858279647270829855202893253955954219120758693947245297419780643607563479921546680539239405246494700104779581290877028889201072525839937977326084085552208547626259428333150840627664086807403756576857442488639690326654302533858408552350572368142157677060138850820891055428229422568336869938549825428196347126450477375988625729028433807393787852604694319341475780805754732614513800963451227916630161023976142296095042628734475156663948915974584421199191154452973143802982990340464139376123844939703800394993579417850796325962009808736502917059644388430068273900299090133609144123277538060013045996076987307637660343868664417984498750079550474244080527680808660059070863561825520356396769957258016694470017746698230516805557686423473878495726178137099213662445594384333264778041697914695586088011074519597737555917761443514199804565771149761923441819838435053802325043246346216997729181865816330997584024537382703329957940982443425250696503971914590536219407952206962637890118301388686614041314116796184631018995528885933947028997023783457292410110534139427440741747583744779042935499829130543936634169034667305365298793638709473028516347014263994963179421201056858923300718312642173477342724678998965686503748728430302318953161691885161030098631148583873122485487073569109724164612208525632000601818030398492084000685594116323547968674840559259266999337603239091915017521957040593870677533226839033499756471550322961433113615176436275724666255464762738925535710165899574037674367360076060158571526632206486372436724490192124659086888895992174793707530186229995864912484979176644333566154033334879072851029231485826152904852596217109989840977651659877797652694308130756839809553831467769040817881053689619900765796425852206825968343575023975410367525280483296664809474372279935828531886604808987867766579799049709034167372561664002404849720917881472412353252490857419334828716207173713722709624270417799433907833807486555460249537475702356673314335537019671456539689003832992431813296658762793413900423301676120944065474261567380497352397035876754068707178588267873718922809182961712683516595995812136514749186416841660931844093815803433418959367498473968246835966229115996800045068175969871158910591373523681949882415026915188956549482815249993545544462732143638478785592201246938996881227912263018640960232413768756025189598401809416615915827940074508530343714878733007343668400765207708312300620454115972121766445577523994689556726196170363464009139200358648121664750623397166069279651398963908293998785909755590455056120779081355674500877289495755238928164904509552466410141103418108034756188801608511628709931407741434438681764304692670501517894243149416419172339546061600983560605477403037962841495065881164100209422451981578415342140320272481946921009630666420927309895557947374130520086967683163511152508577465291378263828616244201709194046208030876072354840959755044930928694846499181069457713881429875457769885544383222668998343550527060413289845364530408729101574961161070252176266506786001013780342290288907899811206986855767628271444301883493639522728561831320430304718085651985041380601348650922399831295323134192138175655663139163387258354331616032112168656565231172166679075863594975545238955769132124137778188014713637574901451429205838493079354152116735726889433846132832704004967931258235983808187798983772943605085828740583052744263799752793292385276168059362854967585458763322158080570287892144094811238495222327195666326358439101804749867252692422949734767636884018392106484557981498054455834608090907291628329702910730248846320784306239677118489919453842232262949818510774169660983823436189111212764244006215744485561834391738663629827108592315827503299924581791487356450717010655446749541406543959844804698472698735703399488333200769852922928996301401990222338328561694637578413253164235346734352410038352656160825105101965123964198136268815456018243165572820885021198929695460240714927129675017812882032174706363495494980217409711984131994644657127783936525057347886638096141130106233778193313090859170554616313196403665076752515333134758579781566952571776514481295124535747353617697638020277934917910731549986550751340320016137199320055750976686976334421259630886002403184404262995982248524053936670131854072578506440222732161817104941401638259989065271495939503548950537447144806265793829018843970799907514489441712755694505644861353855870953759738868593098385304044284689625284619146723130904261114977292756999966892236677983600967985137288100214668554514698420019936758721405992009341278581877074069033839008875468401965695835130968881865425277179692738054581574569103641896515463256405904234500515267625623778683260035400817374344926730927875716233283916021848822610118716328019785295025709339219587074763419060081386424811855874765355652484800399590106895732348317488739218891119833829630437667559815599084504316012430412634111559445932797576188821803755596617659607662979105312801292521281925364943834690971177965823991789223755321804330335092293086360326254706949788045027959870186580935031871833403256038717211330805759355606927204581001127503519504645252500066793762464540841462484564852337268712799646038550955218311457722944675569478360733375160326261309762687668720162997895226904721487871530037051926164423752179742014758968672154177676852600404381904493751356011689275967500027769944939501356443633444764838575589410603803977934665491303082392770844701607239683024846075332525537202543181308651393641384188071327864650070579884152440090976500696470312783924227790714902760624251153362973959526546116262935590717763297106302681103627798855876533440693435485615400793332296485607966793246696983198069631335024724691352508322456845544748269638611796517089462364362445241823430962160884012287308154554571218217936393933283140625043412378692763014623379618069243682714181274844431145910256471380955567047562790739862353913061247836480736940564400869432328292020805111582240475318507498368859342252107506367943108823850408728567007833800240543190468454776213010134853942532317990987251178382184191128545488077436764726622912829512656872560342623632714483219004431348128070551310686467311094755346368431516473512325777082880047432436711377268524447221414023147068564621625580675876398314882898754703946517041436612181052880304736792589362989399792092894070914175226439680277738501017722271646793211493041695349169710736397555443839784628647709458126641766276440745323446296056881047843829681320397951311006875449544329442449458139527862815710535428525302851652513190763846169142600304786232044156241250683203923190199094238969800201377490500860585512376591208354656835913425844208660256363618135989600927660062789290328657325379640303374408676548047288419891833572802320383998943528934402750787005043176478144452903318710407881877065486734227844087991984870396758886827105773492945350652815447341962070596150762789919037784232309578882140390527827936573840405893089294446031048713081726857813512756517904830481477193534215392977422669642106795820596638632613895738544946485250169065573084976146120797834121023102517394781852859775304248013636464502029237395456846394743607703032270249498915769542360698020687744768572173671278952675641035823133712112949223573600819622614794389749470768715773961884156041109599445947213412305229977005607973697397657441301477123877385214851582639212534438658191379458031931699259943841829334704370370941972330714509567778793584383044247681538741184313783133022374553075902640138460182528074378912011792316444436998616612820881947075553682490915065671733787246767251540966409638174144953570776539435238371026420828502693747122969043733264859342874057377070669785197688695346232916207177504301762585317155218685246318379840849727070556428640606985196123179417500932305058051475813005308489287433170033752728663363232762855095313801099540610461622552690076842096275993965163194569650096514329796011990128214984951940271831013371481029408136631359139838935089783720977890747265942457863753840784728380463763606364525480141040656126329798492332135307544428875768973571849525780879829684370904327337421860456737713143418594923804404682431437897923625453993805529116825754301587309368956761781002489602641853061929114064454478748220299321139228929086183724477307360147929302181509157017144466626357133534438540208932806676803294844079641486243401863244371091017186241148774455798691749541708911603640180411804663047247039220135755766638112346250474521602605154137241922539827740158565621317140800702359315931856345146582801718907128903909550855103789060804055132192118625589431728989680394519408008265823664026330147193126326031430688944982748629934678347944494513219031910755275083394002817375972514290368379364364314862277946272338939543696326831102060831292296547305300802230348852238973985688971654668256341739207578421959062885586605460042780936178703138913313782944251722047319055602179587216825611978672162427364450805250178495889538005233506760538232341239452616347708440684208913553088698062763100356848057190342106223077611259886607423601928754554597331842729479505356555244192962051169898904737126504113177070824471275825718934094446997216501997513351855193428699268891484219547477041392118079684060014758090413074649607882434928292342748145214294128445146083126340785571379407800285056019389308171817512675028044488882692245720716976562469690451951781023822900107313180697721224697921779442898804810076711411180440986053421835935717704054872233457990660714682563401472200032461380918023960426926160856497903219379302621332989015889822458417571098680390049743081905741861192972981758040228137732750777953227108825148245306348419261558065800231559342071059323671947570154650864396640146109615412058297308001863601137664598484301971380699321640594736543547209565308681694999198078413272167278799780507206069402532475798676898152351781684659232960067905942561381511674047248529376368606756495251734925667262804424394458444562013336674296496087650384268212543452985875808367496670794946246562938849935745372469579840220429356066626256042823523290708012275162030102741890944176068789514965231019126391034195390639611770011446163456574064646978662266766856024295653259472271534178025404491937244461838273608457360011369120033395590281465135332824326378649108983146135497135146450694541169252336482984807785389549906562652754063077979149988064934589621422417436860968865466790356048677095605681589830071352588305301292916671765400395519163808221125634675366133788719118826681454593321503855303830629330329070530255097433402784719518237909011613767700381319277014703846657335661518819600926267340014311481565515636244854632421634624236221697073664281898869110949437431773036679364735823752040988453391326995799016049639140996116462016709708790041639687369297329183558167485646262935267541941368377938885431019628650708831464480855479306908183524723449766710428510805780646326251133300998802235310445822811155295688456442910859855364592637399080318754541528041309440651764224287542057737210405414220180488680595964897393381666940413723606059689618286092461250698827846426310737915886691823702928874834495257987982320530209062419295203499070283961531827355268688426132089684401008729161674481037678599194196038493640582249804610505373997684513641877256344014384840608607787503034873956009620525242922501426737713436093674263378922461171878556698412356755713984596004241860322354395024613766233187626609830720182543757906737049161142704136359566327617025857319432191868459926648047853095139723783711152637934688410268492348181380088373120909840144727583299832019344040268662376644792698234731590940999186340889198759543009294374104364933867775262176015003241765569353199277038524603589258328505296130668864733595451707323254044553140585722762635855075703654254246875503885260304214321925690114829764148349015115767391696420756557366566173518694579373776712348957243728769191751255228290704413922348905751458875715401916932466130853594384782375996144805763715326264596588042113431367458545405675896156178003097664381961692382627089060481958064246641341392530413067267522525802082674690891080345276650779988513775819924913869659506649556364333070043576942611540625816930026244097909377477509341902431875068782807635916832066940704966611689398665094011985125827861276573790792489385333547473103328922694504132147105862938306520074251051995242047998587922181074058268901857376755525952552429510705651129250921208641706300684247593917692783078778004463976114305044332129339281871721691219816542100757463700491055227213583414768188634274923204461619753670454321418262903369317403974114152823557417374007883332873689865561099616233217147155101447360129286028942004081915465727750736126973908287871811424684678295859907173041990040083058346023562558040381740186539862838841847188329697513077280043766844739968934928904015961590030214817845394403719956186487239215483673571168553629312224107040429136916459821220311415796963631951313645816403512946466480101634822327889164235874316455957220521132891846561304662080645229105960079963168821098505870195207246564971191574059482132785366957174342776353115074007067082639363787527754692568251081844760787139679058606185561550373881940798593328367858472777810969370752968332946298579068290969649810607198510385003342958843492024822842125435818867717941916505613159740755720846519063884925837088492706133604439215139962750680662262566651065341441431617137057768697290347774759148362125384962888965659958440773517059373031958147372423799518265196219690853419803822489649309705131734443574630496938317499190421984889004299998388366031206816064646057567189737250446785415625568766050112862167949176277146222877617084537542763307704384013461484937298274773770516485536036794804945390027728037686091939790934327505131826782225342016060846931995010240773137356194790247867059024976142384496053328240034415118559099453996617181050507345822411068755644892777676158955816088884494406059144450946334655377861838111686164923708468954085526996582808242291024930197220234957774086001118821960781551219648726232922977779856235297637124472972927332257732128706826146710584525333722716369477533702948416039473168931511891934414775340542144014569170517130220932341877276425410282815112099979009458028810753919916320457730004722536662101697035312132020184529655547273264161966228497697046447199221433395580269906438202204655969515280954237992795208050792206700870617866525849060574713455778201297695042596442763295925094639831660061263389309430478783370471924454760959978336864987945288844132895033957792420663984036921853573224553023581038219550419328264083521054578431117917272077902307182112106786548497842485615206124475266395471529139571904865254263860593157621872819780763205712280198736885533663055019609570964262782243906334024007626861430292189477379356669618913360580028860069724124615748046872681250139354231861240167910539053935001744802476446256104897744561683279055132846372780772538895535744951224372167265485035853274643228508040222793384207332120224453732122394215891485093211117289526640195735379575602974500520474449470454427918527488251547595037702647610593237284852380533516535893050027162995512811476197628225999743461753458742371417905268706546268132311051587278549795393577622973600780871031431660331507930478876792271893189530985031043916207759568035351051160576474280137081280876330105721272460302707091605997776614051777661566064768118725489041106150284449704818609115626640704849806936874032719163756272125845028504947591293597378114368230258776196317578335347739022739955738647343724115949235255439020342845087028290808219330993546486608089042398541402819063570705226168104134612169113777730777859503696909465682460726348061823662721759133316581843471438332318393526168730028157045992104458892935804430967951733291635725901168687974249647880938433613071144903643246554311748263803084806453771799425892862020864227731517682174468488351793318920365727605235971412932469461735144517656588891358302831028072340656410823792306444297695971121789487796580391417329901370500049303916481330395662888548022321461497829262564930847918108857635946473833719732045710096303196042467116728576371581033223586165211001754858991939210037071175763740471785817082379556929810166870872808712055850223999436662620962599998150864240380188253847080167017426062947443040469236064235511119896826981877547259490529528054006458697875607098897844750692637424744354770300999361231871588173193675658506156034857741787177229072706660104758351480624231916745755010121765628630855604035345534655409498208672049474818722685226723595052160100358177073526115091097802895940482214949016212925832524129936193607123581364026169649488310812115418804758344675969861964049425228175426340365624870465854526617443857160244259760593711937014556383073873906779861871129050156650865658314988139933908463422208213671440430198246507202021770385273545910752437885825761116432414108599246590428716342688128249397918336994613013286624388479235376705847794450662819829997290618024330879655639784480638529608603348853157479867604647668936528120563067893923865283979334041963497269665074173484077915413282525317930942663373123936114015406327106115717294756124695997122794181810808035337783483703546917584799228348480382359186010893586635264117708017154177932628387851005484136063944155450853141488332827646483103426232415438832360809723498933794117372510540602578960676798597791700317305362707002797037644566853139103178073565740425923776926976484131649922483913484212016501566771254555874473978615523759187567421826282061240327135549607076424949733009315021125327355654061896952786779432555979949453356499229383910101651828854241189576780853208342071710745655307131164462203558860939936861921843078058528884088916020501121710174168539214474580094271686743583173463688474877718893781654932982650631660780588614228082724057739633875588602533967586818706680369480069504316360026813826542864057451721551828753277329458008193478930196897329561062392175362480524007778663930939974446924301162516638361964183818713204302371054617300419573925862193715212730285485148374462360723296564220562367222638924445603722111888240016356753473364512002768474854273600260745028876456509135311768461816704914435966475227740144852745169092932817497472161456042398912856902395575688310513309537052435962425496972386539912514767988172585684796351594272541020757783268854142283442249096911399276983823604942905587016368995732709046729534469916093440232397906003328066006652452530479567089622177620758355723167546815435792539533558783088518387265087850482674507035347888100582570770421094462143748137438050712065782838332406404083906905042465243231971939031786038156050787889458809261174552744087142310804894809822404681769227784835691430941718139418860730575464023107484445841878023834671179790034290846304037293125974124064257508646132149772193687547194059731660900606075914870648198303860095378918447312875618167958473799658264928675632084253316661968511512733822769712009960654537451709046511774965448975258049552726956987081452251305103678461659860051759572142798617467320046321825214600494186783010368106464986286538559510670573125803903211133479157130710936670133963982886700552423620234523695671258232201739122728371617070331429742958902897094437998775182902251916098420590695722867672020269374599167910685035658851635918457362333432939210831342647766049346556404883207916610531365694962196610852898753936996057831832650562115872333400802253205538888816597758061485171726335814015745244938373387216922645855971107882941530976272954513313661132864040889920928425407647376297391405000685794063989565127865939164357112303428591822423976078618029746794034910546925886501208020792212952923130186874910077740909877236409969687387939850555277635262603360576707216804950312897110020902435053831478011272640089988916105269695666579607246732823985359684239512852308798701815419648483879874563132666920264553856157458784449694543933717213576447126984594282675616148985366363921147275096093889864835113124738920138730644124997126518824145600182504542161841426754555297318909931009425691301179701937370202337907503353701707673129332541304350245172729062013514187975493008277593377040596236395365705575368122378955055090884284738674303327981507442904656352760032912417820255925946634515700351508939050318086192771416121550757189396204051553073514576065006582550978886859697865132428195819503941858077178835656377630821692300635467079085236826993649294096784409903475988434710752513555177743057032409091888330291928880300968258673285381156053998173715792785483674996132514314698043348667867733728853170532610782285585075906745010427191776519632628991717463017465726013858458039913398183375170936472464280553921812599915686517180073434008456470741603449522851564479014087397575322432070771386788883832440689540524329305491172456403639355460137975853301895158558387527202857387508709450574565121237175575910322404738566870000617057842571109631362161201614588835917248786046144320921871128863115430085418067375226009531215750903731061511347179503097672840564391385204367520901281845558293542534154729213902496968873310018408318553300004029725091817270642748850433204945194326253580746671113972985615093573774059382439049553629434984856766533472886439753920843523333344863843583061269293755208365232365732318199822022303583578053494200864459776810304416663152549532847711011062626189888739176240306137432647365266656728382907880936479127946305162429655200210534723749623381957352777847859669985946925425118906323109184867342980105272730116059125267445845734003128970196578122438886323188837832744007437308313002366637212534007751243695280766153579785148076065482164819724651957209546617695697073736796338322466880697072813711059937790530992961865732202085604800817410697647419205024713527743366930826246601674728991509253861281518666812282681613656944435933373007124668873822461768342851127950587666495808324007142368295651896768602512502237790418517378079891974242116874457907987045864102993159580218534157418164116698907855575986939359942678985004132834936156158508076678954966357478143970816956502781194501283183562581012360121253142599069886514096528175543297977910253891658553078273486864462726884424684273008558370931756411903511925057857304007825338686217699721058959430263460047687392503406770904638337914055489136410213031060712754409605681109532168162399590896257650186261283667533782442286247521414200306779239306580988386756980077942670885895407788481981184037361473550460529899185805717214588308012015987489596663604404936589521221000978204834678422576607250017818685071141827177830890420273023410110494223566847103760632337743233572391565858916902185063000144878651897722039496419054541199754101070159074848260101335804547540140486657971046520403494655443744677689459722123759379537623781118049787904527049852173247676310538696757204274483354734500557206624766261131568538063740670557395023033028555689156021138655898473476070438827663321551778572606772180806557844269790600947008636658590311931595822423562807852935615889070408498883676621151946788387457831343045000523529558205043453523001211445043235813562257796262482091778588757474030081466942318785458640412699923331124939414834660813578153283923747003826674311245736097095926347972325352209317690659050717873755688575343739032206877432354184791407739736978078405524575227303604880006986994770266909725959219478811514815335873045507541827807307014847435977040708117062422416887411823716865197670574180940835692836788765147924507768844993987358615703777892004459653048607030164814012616492074523612480634666432443654518631141054981068368767123139947300990296045698545459720700106472508291385936745258637368861926542131618703250379888984738818793896800123134577998783205018294142314208340093670175793403839492875498899952941487662485713644460332363283123575434881891216796063392909697683635888634051674290218024018376521375863357165121546658120470422759925481708388886254874626316227909243107438711344761479287353055595602886665710756968414500377851962902860270951783758265109371166915292657088182438620527477113318097879311404785533975012279344177844151460387952267160793479199883321987711195790238105267664956073530403550866641987142912904890708726868772617251084491132793872907650299460964264950511535876299192880636441311577336283621198420946782119220488620520851090634267231640295726936616624996760021069260534522940920369653522865355326317147435346419714478016496300601375965746143253564688812917242299551843566270175961083706838772725753939044755106851067496446383664510454044580789230044354558015883407978819336301558040004559141344949291490394923371610924992893135736971779850784804266566130142761245592057894716219567356143579299221693562560542657388899542317331253986012175910290136071575401724064418854495236441179050470805054584176736771196298835797868724754346343497593318854403308318091072564306584083687301284873237085933974857930751731208601530386943792897463422375454800394435514284995256719563746669208960906094201617011363963401872586334811986715053079942042042275872607120365149885374167363049899772707234728426229690170998316062169298814159628185605390153616697973142017869201147857801025933548703150221682964512667221858260226087297483657213017470958859632095322940457143879368747825960763927202370747709827150353246578346849522726344252422635962931341784847508883556095567582226027628924496100677988272184331687470781602950188290517252677943333869975523319923855529985585276090154862493544822654016012946306347985601752492088680275991756082125795053628393457866129461973789998290953683181119316341823730461639943330832303317869731539277743831386369096973819650221199934885736350539606613427298882467746832150398448585327808752698053871934843052820776496234519546928493235187033846840755579080847045347354433581193296829794831251003977543634131934495045602350804776736693166497292463773292645410522773099160084458862388807257123713898719724705082864078167403659579550031368536880787822141613550925164579716128364366635157518472148822079366213332032225227048446973436883745944043204164729665318480076814455962124244986793617417375960427737841295328627081369730903834437292134558077961170367771673914126086395056092101143935559152528353067447858965442822659316105542157725235287047508644629232937934904855295682448771189764232314540910125719148512827964050066334669158908125387880337032616783494676181671232925798368312720520047617109250902889035410515427707655368742666538769214501462420309800029395042076245692306781124873512240887109152058385267846970754340829976927485492396120090775192984987761299918805659710211769550476816645373563321757335179270768585265664308599905056297750167210227595225459447547915418738148422954941953839232557501099625207825336941586901621880390837412723748564289011121022475580300657469316502792175993638193992161801942068677075669183996486834781431773584764574764456954588999550428172296700597015279992948009645114968149416038954723200452589972799841775925990599126989505552248667241801308233981183611002807182966614797877565997476045941382317091993213970489482933145586643533517515412308987067802069935545973720642453092606266813215377536101676903552732035988176103134337200467826555590616724811313430937878367990100105266666997298757758213390086847657803626496930757518533220118087306018692703569178134118858508368786140902319410126047992580492111621425403831503966411170633187708115686594538087763929236907981647484356504384163229946477539979574461404747752642731782070089756038427609586314294501608005799835753047073096242563742982492322457232924055213693400237427447343991938264687622214921824536497035318154653612902357162968053805585268012145936989913919353530757887616951941901795527373114316648126082067697574789695951809415602075074488682418008008125506672457305345184172627246458599285360713238292021589607528642121133917168604026268954197469774976508546971946721101087018731126615587380906277004903800234587765786456046124980938340938568062905878609698353175707314528592627820356311076120748698808943612311088580102158500111094867266706461096353014573228678678221903033446826107152822826494494579547171542753725320947070457430921525885368750558323366426827701702650150651674645432044300592052680230426623722258906207392436016801343986658130009564288120964037396425444356391089859256518345930405406534965131836848895303185831216502904374903082058766521508058240534332787861646398051990850295853552622006428594146673201031944587467481660646930953832469294591599204655189044053174380055625410800018939682170980617058298690779028616354242706994303113109567167004458011376788525865957356202839149784818836148949535039467348062744167175479204487086707757561058696886241569863834409732805396153680940408194168131321090936438344359132266685073763044124719281655239702479337214847053929836990548168401887545138695837067504677144342285689685637104187857331808375726735567042549173140482990733802721984773864846846227481544052956619373714566642746549124466697099025983362491200805904657385528722160371111852039775685045274543631117849624989762585414731698989563691355539829320625033092262164993539565213840407006942911520205618955263234260219198413385994180059455064497883033667593780429900117719208123479180130773882049237616037134617232243806013260246951443730380320806215985509433006183580482891519254265064675916049996872382887576254350783893489396465335973906461015343999755517305704544788166719710640893929071871177059943444694651529656093218528653761068661199966807162105034798694870283588206598015678026850978356429991542360907756053246384117438640776302278537785692549541241666935580338691528377166769174377216273225679016369315385073728359592382793155016537230599833624796386054431672384463120280453830343030376849728166938433006584459391163460929822058974134487436327397654103702668842530595536200739496108300616478675637257216236325024196746864191954927437885616480495990181324336000031041138096469795552203106130177612611780892665020735128913688957269719958590306063083959984444473533645995485410268700607502503788539575118817533456925053457757639219501711276297283956537061583373140000473280780803358537042771662894500981686441278930394648168715178139231538108143239807022758747177021654386742915398560376119966335909937610255635090086537542905160534613538107410073062329082548709978876109793601816822541804962595896016484945687081606593824982812801740946562898737075985108322779610332246033837102617000029524455047448385254180163970975208715173815317754563191371977471683941147451343475934848938032297561360056912760398184019665066446161719639299252809227776830222780143134951670231468637296527181982509387061098284282129975363433724136550906718317823396757237286278788060358148788311068857446593126889490429914941647832328764677753220497474352437250997521476092676556522406766740912817699390339323322093013682327253293131277770368651850067448001372464399215081970787140417796503816730158336331976571973780765282756678652039259261631419428713974254633942043422078284465942723254234570525001744766656570702608292533519127502468092228312237781347332643782417587065357624740833069235098476345831015370780328189223867613792792857891318019038674058999291319385982451374350683724823395490726249303191984354422115192397664041694419263518428283437969225597428359483834624285740856628811512254419371517530326142126869523137786597294819731652044033462122371580307537301083389151039837661806035039760395200094791063356260593298273466362380412911694493738357320386928427714810267069186834261114847803064650585907041742618489865461541010689845383742072136258547079187770631234839652244050582573648803017725977990566816055185387559517642488139024136997910264172754193010347373405731652329750301356702411455508136764158509030987739295869724880304607555057807616704034506502070187871640816999402965773905624572745782943044093550056226573280041573144558118654912110011195147901966320851582948597185443866121728296169393459009483702470433072046531786528141473832192107227815088439782087780797249322897847365686384986042287203235834896829502299409685505962057508108260777229858874390167117100987900947331652430419985716261550359981514645324553048275775351692024091107296596996240236119299069941373689186917758455395223082451985532314697021119885434301420621157832992519115357859396315619655235627741584415899532468505990521422308011215179358997891723366601737666702349032968637540947085352369198634167871095560950256419959414189697269065407476571268899277370015043884578828953303918397957032824145786794619834827139429400537117500473541565157832681697142068543897028510899232648504685569973770973147962483165256395554579725395417627237891899536304068587628509169607670049452454866208513413813716877947178402705034204952027213482662437234485719825315851509235951692882315287400837033540075377231340319692784291677702193378207749632382386104808386644038371867097094361932047294382868208667640230330226085952515368474617480121121845528204852267582318742831739717076920653068481470775587687131232620929351066301600750705382387651071813269698747905444133529789946620416421676296969589211234717654115108545206484222919266435773135299824176567575402012260408588393757297012171339229703029797018041152069897203491818227734014675110671625208430896325019891649780029135606010258121317117494284532962674387896772832601230160288094263237460709912667201552352014209981268251319806843498825225935506896911814962759235127971868122588914275059404542616166620545104452793807513136201883537288856582439566282640736351377027125061632854245412839885678849921536886248513362315556502709780256286280774357357681442361255484058089605737982707991062277747482063837056297717644224640039827341845564412320041631132739938220350569334402102250082517489424687988893723212619266264022664450175098228560876538528602876969085280089060798259108796646420568988662682915470091750068090123386771729595514566043623426896226669204002886880810575337593177581323438538553308483415852527966226141717784972074949516733515541977015516886403504145537089506587051912062915512991049290265375305530745960086763241152863374187314816166114089568229701141053756598801516140640237753821037217886893525760295765890170984247042813279704973060768919129734068013631595091481475421510708815858132317554826219050617734733285076600811434668673976075792768164235752866896347128066753055032624314709228405895322851657019221167267932261076366027199593801366967335675759699870698392389633333698745596494513103643326623680589908915848953283337578486391868373366414708919209642599112327588001686417377807700285674239818630526861160545178508326352697318992883192012901663373167234478869856917692661615159177009885251844971807091528777669734194120797602091559587506759238646888612431340827850708694800161161790109454529809674441049642119482607537773876613852478694458964947801684335785353182120067442412741430353626318194660644891843626243723670480171411913392480497812456890080796394962760515071734840008236195097336445488986313580253282543816373101052916529956976462498934656020897489761403894115209442747031170769957142281664587475737612363267363345917379042697351272351005049884914710805620320384080184900979031946105835451364217962863746102221698803261056311710580907895856320134651268431595865266947854352981056185208868202473938653337169287549619615665079646021290653599030278997730521471313528314539657958633618684647388395644887639987496662279948536999450073072229513110444894926109667757205354156857686808361464229564712317523552425063038562799597306976433577272684236576818136731616183723220835725818803841096857981844039268208612465385779632395441527030870018517529535374879185354659406309434797800845661080884070780342442230779218183906370232352274248611040222724946441822419871907702840854679127037283086304649994241480646041239825755417591418557551605914119432846586749730120456465102059683011078685712551573322369424724615703584353948868554656585421689704565536017020954909363157893909652377422206748398507074850594146134508103454985127276698180757612956002331101660043139898926995745229775120764852615888274489799568116255832025552664081621012360133000595846566768526156841278001090101186124314877263140656347527571327651457507325962125850276858291389026389044888499070806564361977664775004728727687722198496163427830912207360378944294929708919023676240823430836737152609649598549344067175747709620749703387340796456499130047218522758052382570310408645218793676063192997051151241004580078015391176390437855332493697276535041339230302023421964142236224462993735039030981382551699061852613150308576110451441884365930363193280642385616146736283864837073970701439099576048274012201663032048263836510868352682530472836841415766773647839672244376240408912581160876468784287220768179606778729317330115168477272802160865966988868077824642820808716168365531880817236814800989144335063949991950280513177846304938587040161575580770995106477781516966515450966198292721596997604230526465566037966255114638095327023892307887121573943073223271847289638134675982719522832356562376997784146163756565326692623643632501360424262827978624551884227450771679006103308425085534225489738571927312559007604371727999730754409252261647338496068937924535616419995806061898197312528102217586787407356046903752392540396676014813965193649852948492108666919014443526496605780542059466459734347997127907804499822783204967143864731835771437839349350230185391056204864540560985101398379310243163676286047532533099315070411265067714359985885648016777966990365294190703085959018074269970087716890502313953293170199345240701514305764668025137072706285585221591547702203516011549627122642675767878846161739240881159725380315313981734820666377607927227549687640013003589834420157582717960484155399409839176031412853838111327568578593833205009637726683371022023533495682983454300009270053912671718701046245557592649954818932750249685815423300843782179969293269900811326804112040103054212449976364773016343061773030164892471945131800630334575003561216267502738982410743034864531258084710832611038609498176702816014142581153426770395817312036867613995820195513909609519620608034617786221973086639496064892231594714540579718064821357446330176841601111071883456120856731224352089259507310379303288359007487543327777896566011443418423786912378172659750451459183634776259412537590423253607336099994652340519525402815607372545282934524833115857833078814142244714315137580055973732952397400236268117238261924643566093832022147561374985315714213056124210152509040395918621971455368325622538006649366637195222425176256959763691436018227738006786355123594077821560461584861197275095725702774096513590113756857610134139487266754297976962265555137088700150982190315876667337685076682637138989443554396328556236290949969959289700853296501506725253340783330361004710042822135322752050512170023525737769462217719284443487440359784852480285490927174032167721260100195424761285805089068854511411998595947041985465203133573455374171449075289512652245767264288434284290162157805145413016644069166091785773970788369793744991429129948370658556645651215955267938470477152086246881168220212968063851916383599511060351628524717026605448577210430319277538139399584607809203988802120945762229793998212165744103196411844375685352012115382461485437105332045023776077753293534761949977181380154350406037774663787982227480674610044339626005572458633955789497769711154740407657078302511849641763087090059843671501119313603445633968616952359378483885770335308438276109214313974181070681229054467926266111253203037342624300918979054628076622991209896849304896862749726727269927538033314280487900319417017651016394604223049164448498300214194216245429777552627176263340512484059992625216160503074525649604439739186500019023825602759126069757444924322527570747722616154757551789366951553842649959365088631543575969604486055576795234097314058263088821974956983941926478178047958565490420131413589872797516022674119658958243934149787506338167739907884265699237885802099659410963873030318466152583709946846585932559191053548376045143812287049433961597336070215154879615012095896904042627066156929167715129503153855865367470872648421401531156510442895815782093872188023553894629910128687484071826511732125794911865238074604288065792680138216786511006867275926950885100485852077494988151468810850061048511879297442476448939840288883266635105197733841445522344315810226861239802022295890473630191670873270710971129672768403358737455070799122322573608692079061166569100417792693024459388570696063072652103834244869328196223299795029342570393395147960600960094828443052884262583410671690465645074947584510082534944370860626646197089275215361862651928856154142923662046635318445134609533802926103793425037908776316642949162236712501448796958013684929541777737120458001421665819568518234334900981603951111759896917556718437720181605015024058560104836683522173530826588880651718970345571492587206059517334624739553071480634203151068495485832316522728391769517750495314051541979343003164046193475286922952046733251547690476817933594363007832741988477326733275128007994580574929246168583765120584744701444085239567452241501619398033254667242974164239190314880944371771489315196088741568776405260896231823634190385584204500078380961540783727391359956949528672583173429507467520409386437137208302331416526943094998307759060174062037226237551885836939780066653762334229246322198227552705397471390941280912835116042054064336548368872408027289486448748655910973157563444094819406922155970034612153173347502534830633485780760914942675124897037746224401896444767107678459169437984346031857323690574156932927301595265317441738305803051345185412075474067005993431257497483797094728770914288867216862179777327170174012201159971291337083157695266686449107596270070984422762184850468978753273254266146774224674029585106650530749457146365710891830657754357660298357994826460796475101109274148239388497194450008765335511631020191704976185915222795089183363943726252569155351436010467080244362289859166949747327535713957786632127574577702426461094584816292336017846400944313343965703584881990450056985727222579965536546009725442780101520240220647255520552849444502878455162249712867823576841635569932511968406371258700988788014423188113876931439770566829848768485143025746312627548351738310227991382587615751958380170403007752224914070916368945762906735225347898906183931079658516642928369218179122549650720636074352388182729676151296836969174496343655866654929756722879924042150789003155778223021228167489725523976323980098649109255387201833894057328547948518643473963684899939202908594084591559209640928077945597301859108640027010506051981597106394933297968343827975751416057088697402096797934454379371355799147460297705501193229340887191305192108575530073748161830447569422877616551213987727458030675730089139306570763603277402299085250874196132461211501864384349611576321100165641027208449379976130291287858717084760728442169662195127592066855321449927542922045671681437300514674335152557931666935798629149302554013723320501323384406228915178249711546565255768045484507471357364288036744561619098766795479447025136576333310977645393507066043646887599829449095031625973786931565129901979056345074592919532023373356923157042980899328731600699029901317205619971363269992804470327042353286540629822447041608482961078416552226691384314021979284312222439537524049020061690338434733015351247558704514335460969378043479776032123143296718531480949470826740594598797455784057925694883940237908128419624529356316464162549371569209547723814765520280367960835118981667285575912355012707788422997373138389192562703221784401931390586769706392594828803484539136141158203151924399401765162940784895101998641792091248521729202983280434805540029015441721667201452307285604901475559528411704742055693998656503958723131941022952326333407144523972932097119249281415906347025104224328755090525916185663127732848127999893993392704237265840851202087607616134479919464203419626405820982064362229717445630957821784016976538897400247332316240217811146622332550549091970280368947544803517895866431315316589987681387229953831788931745864874065022868872596980285162816692872893281635350942780492180892038925032186649335999737441932895561841644503595611869348869329812909072956926268980135046921361237987384243349695631631077804964734069279182788142114799840890108893091798600287912642550738746962015823676281802350946564601684565884434416550211136675531594928244345401681387131378962716298000676438117565925207464435116758557535604264001559812074618821903278880171619060544067106601866733183995950702081959004904326182618615922549292196567195382909506400227917938137910995408231198122245940659714209471611440864872852373477549195243689917479953785215613771284990927241793063971263279638795242757002509324483256096105566685340144893369777953557840027189478595323027511944453303489712070096551965889614223360008403756547345333931849331490389509092345778152514202300762552326550061275418072014431452785309439888587638054834466415301400110186860303075812823043474767958691291205522736401273553482794605951404407916221177697094060528895771408876113555948826342936119390889565256081503016304235870222799950625612847538552812550157264805770663984227458321070819580525396238437637272110049265107209372677441719741712423476879771691961762288115250684524056336334627458685621185643689119738463311494117856973422781053257360001966671759015901041678301782852860215684884930567558875366862925536298354045613816512070912488642675895384132070639074401049954913900226810177825680532862460227195991586738570018040519339887825696551801507337097790580596272357307743434235645927615477755338768036017521298592620857140616973111122321526845950889080544320760386577820041560834177070602052841260785191678534009936751396887131963277465719773334200796242528161797491649307701928157954752719126076813545155746480594300363512227492732474705475355134804612058185947959178898442783227566532508827201402812858452345299312115642710170391373691407346504657805085943691423767897523565361265348744242616395733386782252756011369437591943243446607696408620830070800657777894434575118261046313445712897822997484417236819204177904506002671792223431556195965715614862938432593272830127622392061544234964591040053311020624992294271573547338518176227041145221121046841879221595240564903797094192247709210345934896194337702718902284305637253445851759279229556101706612900180373671232874084200951424630915214631482581557897740825763504562704049784551152146649185140407058022402903871528132150041313336789300864091234231075456129596098196931763810580202053730864949977576926947174678649270612283492807793772429778867514350868100608241037801448334502158672522599046796418473981023656482904944248752693219285105778635264435161834765182852546759472758661147585345133646409031013151213325990117601992795923944002642696614090928427938663552335143316169816452694409323843147281151219296958415946987686574766447473282698088145561623109271551032440356538482089966291318411394640068216247691620198713489584188050701925166717197877358214145476892039987206819444798016372527282507170357696831570542537858981196955527785285388194551254445326013015591849732236202674917663517474862937306886721120015566060089316643168241657210371703511064072800303278794765338463581086587767147294132359281412405797520464373196917782256362518855044253998045951828941431638513690232472062303037542102919126855877461614641867657932694796248278269764184884127892466723592080814871932628649456125971064021996622744792652574834774961073494232997782469245990153502666549822805075771709399323661447321463301782912233804352672491151145520654278245191574848152237122080137768504751763477345241372825847748117979994748358922733166236328018520420314142281164317074196377059356931214134857636669118895780455275666360976891309358772040368619145510648812851954651677093941629779766822142768819023915388191891803944118453958685696350690961357495601504843615635556703461129560735761498961803664613995487348436415245259826098278727296583975896441151574981738700334308632194026886722403915319955338101112056471599680192851727417491160176277157240608380472344039448223971314884476053164033172554959677126481083737970012114307055584248009886914780887962981953900734207432813684924797658361126595683958800147147538313926331548601825148749702371789466967209005997674055312281143887477675766704180022930937264096560778337208165696352727321045097988623083285296057376740878579637954427427602685426129036881481684223964489615036971668124451761859231571458085261305228096329455982502359752020225022861075496961152655866793009168815680089432979063348106656638270317103623054079426660287538734808704301339231814187485572561173686839400036680652955711728657322125879518339947707323133999884220357325399577129403725718087004666236514991137588237654922747518119832147766551515704054494700278679344670472328627900772602048887652116311335325628526140185907739166133814545515445304932995909160233657573346342298403710483701424283650277814998578393035770758417591217774467505010329282473358675056774450746898512466308278664748937396030767991058110181992195391785660525938124891962641787393821528663344720757107064444827991181783954834583907659062209642581288303730428618854703789326773632396343752728750164733957527842298932983077875362276981145804963875801584283720921306371915068118412070769404026738161894388468347481615934222041525590748401766211409064003736634993980486942009624271781221162379223754139694311276571622576092275403653652297939287369767239932409449312348792660895090022838002675220053831082031077030687345060586984865397361394437525865418005723151489257626912497788605470854211045786693951953945670773101416543087212877677030230924709618125780152511643412717098104196609017613574441917017596083472830237641693100824709024353180428847444041868565691333250557469576317222578973482503797186812396493662055774749370292101499938649205491817915779242057314377885880170120771176502720224542013577177252701595849205542855010410205282563055712624801913441443787240812992605907200724130339919620976327773084162012817619554474617513016970502638528315631228714764704135041679281818529313527615303347030152396355558966046082130584835942948636628602335762417427251151971949536633888176119698483176078628281195901314871446909463103572699908333277919342518400406681228985202337952880585014600660280931732898736436116492235058677470798275713814814316037649698100303247378932764619600912934956540794306901216027321715047942631814691281019653321710770993529961639303173491953565812939291946925875875956797211886646329582450156648135450357511525140695828988212721561091919045931311566441431855174869770631015717831606686467757526562939831931118412066864728062632909224731295461771962282736208343174076375143652403159682252415826514704714024904490543779283022627649670388015194148695744345943783879848782599105227725675026365442936779094803691912871854218362409437532335646752831718265958958007749441258740196453435752588504094996302724602521775715416398625719603244720636330026035650688813319941485367009413306558942409679420569942420709202664640814208729412046436918164144938858871250250298437426567963688989809274628781227229146772955946428128608819249557837600126517361651718111074691185002246709455652330706111041470630472560549984723062010986303517699610573307967743413293604076830470805555990137438554789775358045685347997798822357940913645126714533520786104603979328801003701760831195438856036717276998777411803910890302886706808322365954323437120903017779232348241210150785658573636722827801645062730435951970423912141169500974446309390657541857826138281366077306845814041316673133988961992695223886370509035035533251888186283713113338367119239280294977042461420405026202716196368058450780692421328256650501476271335410901226884042340324811631692787276455150267783319366924539497423690818632016324126304822330968363333986890817727393951833541332730703970417839850739171952778273632738297889074946271018326333454705197449125740824151644242495312170880308669575493680814405735453231136765250729689852691388558577979531794870788942880453533131699974430797866031233387849978299111071627438851198799536992492506999546655247055932879717006425307070428924735625162681388937924455833380809022963224525130727099698193563669964609658014667108198123078545550547093204109046911321965523517659457794046600975848181332137932759225397119400095514105503192582126551227879562124181593838419106839715935028307014301177386934423954770419935236044275346009882681574760480543887045145551648696643666164316854222837389245777647461496488734162219359247180016689637826222117019917645250658277174525020298166363855911408951957344979332210058261121451823671248285590128974161328274183022927399033137294284075941715193570276373047750631475101333610064561791616645784390934176852868042689805984345253146172326622630960761731994449084916601129519726322237728190328611903936977398313915872081015227419016891699406948480741299069891444705353786016794389161802396924679946520681342847700362536587453626706226404388813680260848743820918840488826883826787447816649263975576780171880857673570406781049086583897473820966738025665371386370736640087344523590437207680236922029069536803598668521358448437521170146774952981272835001278234670848481499452678537606821816856906025804278394958849193063347965510475120574294421315939471925006504658126583858961108777354853325507394613214228562999462664743444321010703476026888587530128720007264217867215230154430392703984855741882315220773798979567677967869564363263356304642284828688411112003778642856743913110678381395265466391806747348282345597631717950606815378094203594196757277194548730990877631317713739281320209299239342156413212346398338875398209422152451623837083565035147718663563533893818410333250311480376672469833150553269018863647579649022085053849098928037347249645607027364120587327427312546772945381147803076051062025642230760247940089888215616523976236826007058398488638284402773398853897427740866547568140173011100193898325101375219762213061720717994299910498508267681581496289431436678672849067711427357687800157077031358204255577572618044453322302736293372101535614498939052277189562538163702195014243877205339998787437925347407595280585427741951275418771192988136554201850666317958726469183180624332429096520930099775647725086922534032063509127054326635488720706609632822284700499573952532941268023317705804800410953549765700491072858051426721877677710049965836167991021519546477754307284454441683591204656032962649390439023411463362238795196057140292895257881139402533708074100016063486256777218060778193265379823348698154403453509763575433676210705823559638371982021172473055979286644431272064124052429593299806746863917658010647839273031809793005937816268109347756100718355916963551744673635228772349296517176360019348343978356361525327794797884374096514703738743713162191940945297694040606402336590422274529115947051561082582377574566583207975920233072435818845467803002288044549128103265955814442601418699715454063112987177802053016519922009582879017703734238152662671966547094122814439998750649884623383295574431259127960329976042004743949252015912487821564197984449324877979371504360818365157098266851650314872526300371803275039758679983550059604810423085072681965387977272327044338304121714812012220345377397196198331435451520214681755413565512453481453969731207707098136861121904149928653574833525724814006604047614432663679231562702491948557287115776567722729923889497572560113502174655739154871088557181676147030768727583622045227525465242809536577087532991033225388485126535874141699515388323859932529815058744346653854780141347840685513488363900783128596190678376519501374740867812858257640277827954347661573213882103801228805606501268857572785414076478058640449493819363051082087045479353028485767016297078943870262005651606545181839587965456177000288719590443854389429476202927825204216051639538000414319015362508622802343831636467470645840043499535446560437206544482557272862447636188400281368785818064993943405553713766350466413773129495499014326455134896304760535735770193993054598558710833020799923139550461599715773595507690849974510374969544712835881953411918072962765039002360136036226603268825292621517836752864796185719525061578109034392755446636417299886173123362718870969755410546231356241384408106931459033978652388948533989799677270781942430871713244255137351293736397393397426326282688663585526058035851071345151365171826040105544243806618833340618778682919943243936894444583008709935313742702575309987089996690223393715591844482222723796911711903620308580936602942082806515308008709788987989822309242700451421833467201747350993138416813007617171495531348578878712622643263250049896910760245553774766701192433605575867223654662486164418100652350659379262248962748784199754419122093035883094059831209852774425122412443139826794122716491593076283311841301874694908431184230105539451836922411701672588118999783905700035038483572675419273323988794996714294460883006528230500238843062320342064234220416915608333443743863358572648552230894383738995232402932270890803617557288085864092282512745129904699217767987456739655778861718431189694950922437502398464329797606770265758777051827435696993207308613887965986107137755304062566995821137755815090175925462058014912120319623841191610426412325816245968816792791743025463656434214682263172860674147636161117770024434114574472885826783684584186682517887970664899474592217403871493635712982905296915557787288309223873979829958325422184493945568929617692444994163471756696770440565159657310050980397449940411425376762855570726765580828350387505888911239125761363014513252689371034436822450872945954005641720216930397673650438189425510222131418053424133079418949620076553752169980786252889779456546361962426802543007369054236282119997707506363483555052674627250550003161517393601180157498065717994691053433360071776171869994586361941760361569746628025173919898967057173872895332533140654779916041995667811868929191408600503192303169556782733576392522923508115123365780416650513602220694426656449691670039425900265536382630176306261885220121399254716409964852957468343594367720224558013812530098860076249961364622838749254525325277290965746442531826721712695476907747564291178672580876919112281506129673367816003959352899420590002594651702938187897654956309611683399349372494238211271819324174348158282068848326770504945686461458349528499683257701587457724398875068685623782349977283031318415349943211932841034793083239648269185409414506076871899098638583304409337900480633325710405321899720700533842548948149984725416856850513251163321739648106530684093992256699001050211733833835727780336571792396581643424384254759561417878193678015384473399565520220025466401776099075968323857734015680409862756966454037762624002549858714512422716081883193226980119582338380031549968434998786636606756575088542349794647784429693046105284748066089954414374620122058277903787856188861939021254635388247434680959209259543844749006647447315478496442645185851754460975487813811200729034527712833544232193755705643245197130768787516243839408743776182987738843464480515392966446563530915633122899503057888268159113207723689173734935216812470643539501607451888372494881714094990669261551904708847862743871248456437709985869933918851143985499128321612984285335963190863502817611622792733107502218412277619061091751157633842498972488598055348396101404476582744538296491389758427321883492114955639361614819713026922966958009701276396456262570285241808185055461467648788126531597752938009071138886016194288366620884510194095060520260651355447635947281408502677616083435922806974520542250448441784814238033074221045520162560675465175939352740389944684886957482529362719344360526830209902149278654425239567026050620011948350848078377566644586749683673733427649757921489515935634469803738487569585184921119042034406397119646740297287346978826361327910868805749915239225036271447974946352562992930816673773476927868284706530335633592432069992628221155397190658109088128548928365974442219809649278829157307461880704911970408758844200043670645135753702730928447517612278683752686271640163588994997049178742435858131947416562873498154383697667187449297587898948523731650904135502893879530767140480772131566866990586660077155616802927617827779105473598036286543826316798134404126506147516539696835855233427542149550987411453985026571673867464315425548083656984246180545130287083204801171226541637632384141359271254497762749157226560632729642495378347099306366029478384520170356720426260696977487652086825918271505996150716554454482220063639508105147679012399038347483886555598682397545719313888386008029151113036123886964062950221404434893293388522144548811128804244379388785179735874579629113066109181295643154762561168873583027473980398807440871783007627672198361346208443312459938716451960834803657793347624202274821641649897846473838496069544110832161272779265353828641871586475661180818234066581561984437393108639732590923836630315382320997608539345001271488748177486310864488776318760658114649714689124425036434953558866076013135038842127500771596640106310251398639368712257173188867394988958208695394533457324732905677006786474150357525988049710791446399264265405179079770299408943126907814491499562241744788483800322937398868407949479761262691221769229330509959728546487069282136215842295873919173870950214931554465734323513512725489264349631504948502585596859014929119795219215239557282331248379296306061475161414880358584575506380587268855801885164597902610624637391847281857465920660102321002025631674371096021181337386024995522384681827799779893006029301107364611061814416639912067035955550421486900856622106944486554000093604055379760821742050790707814021293334759594173691544726388113237224574600996500182610378273498568368244413072130635401729576782222195508543995827291001323967049330543810774732402749545570311470714954314675083983624204604297778615555514667435934997564494216893504201210490854461974445375101730085745662279994932989125159908025248957375709873218270812612382041192326850190925736587664154111531834118070654256476156682702245425554334204894604010953181185298715371179121606964595068283948718919760301105916232393246437667023312406978141143246350471732839347037141830277585591270994295609426518062634238956653495721128512880525955871133322050473137824279189628589474650599277611181312385923153006737221822743747579629917471987905592184614322979165093726341778133047025593546430205612290576013324401973760962261284653299667566109098417798023725312009138497801099349050649805529051698694179296741106979082602188879654293234181101385853754451890077920661988930631373149005119389782573823251342229582290714865297765271738697824436356685746203744820133506021604452845774912129516463045204553410853104229013482283778762387141111717789760099874492457798088519547697483390845487838541681315589765548187379030667204984955937739251601822636591180046677503703198630062243346552051871192371864732143834738719888201246821809346390544492195021263314267043397079520011270158374645075700339905663372438382355528853476580028098090799423274739787706895114882048072301604905435113713976012761237030402334778989246396744454093699099213144933133602263799993162180753322279854453553786383485330973759446129774144557619665006979550499469273838153136635743192682339485302324762753865905190617631697014161391038284183809186839151213258758369065757513668866788664022416823714904383216058540540048789612202119550500760165876881224898952050152886567664167957284352017172324541648242677562913470959243424815539184407818903010232997668576706593411126765234440273364783000853407659220315483326448615873751563680759537303335556468636777695519196467315151838061827018205437842943439380097355358510053816792119977288683881890361133413320395035714319616240070780118097217113092247663669874550256702368355623937474887723605071709703639811658036576818181158627522060112255472894212055144838567709013111408357652202135799898662717347150231836621474673702942836655632915775581742911361475146245649655002169413867382667944779826993734667841282423320072450520947830943067655670120097968796184307764364997282837440911867755749755454249284763268815181269706788942988219465694925197679116936552639502165958013089536098125712463257299660920369331303344631090253094207701174482058383379690310262245302551016132458799056903101913479789395438261709064288015763981567838858798146791455623339734409927342509844374728889740218683203901458793372159204792111702096809251780172903605940176028059602224622582998588497902515801713166699973897911295070206379943104105589935380187633064955069522784337576407585646849352689787574940508466628242887150452673187179471720718122205459472497938211562089473233667033270792853528678551908449534721837146451745054397407034618056542131135826060848946571592502930206678770393364510594209659087019427663943918206667619845083531955906009182268829549846652793515462628650974357679106938270748522633203908342087075900766554293153489251982071501246800755272559507396418317557960062109406765762674840794035999758286081646133509539652220170364334115221705262697874352615796789246928500664576881754630052554580300516018891626109725678028261947776761411744060210401351964590613650266635893627291667716942883825354701806789070045542386196101313989467905418228079945832210941721875148772176709546387976075355630018953325266354801660369443065899034155796580597157902313468403691999218088590831479410856907272382376821102881761141077082163551467692258339110536059861834545916193123049116292831349110743163114126454107853353054712545719306682459440368736904039052360531912799868993227990695790685191895845780934013183645924237185481842062817650945546064593664492953550188076564322151779068420931067071708889130023290512789502282414138490584425009161527509662418525860102366447001825746820442699876907523139797549797755762234966023285661114297336537079623036901949847265515559653887901148186479347139008572782846551802789542298268750576639388492477104797547384841451258936167619798853593516205545692640124760579446021836178497834316124271666823494283909071192435302462500480320400863916013961779386026427421948910924240891554664230128432992001939015412159468039360746568619182345645787380140276770828432728955204351605206271076240167223524431397527974966603443851212448179283357899235550932367651372601374654101122859300074151497299605091633730166825317301805534530679190170187543826656626594649323479344011814795682195963793879078517800553079324771946559294775825407896472984394581935925342685009876448715447586641932293645513078846762796322806545462091527397412946177479535065664943197821524007068961914406315536488653877293077757747883936811686499003083098789610704532202686535767978287914337973697129232244098781988086691408336189464333361262207361591720782340851218534618756151216649111818489922197942858067779880265591267940885928012814036768517702986648140208476397461010123096300542955648058113560873640004121928233244516693831147428911021477135913489126945622522193541431226593764839897735395424364791601941704460631771718332135811645594381244096616092376315440194935564203492337467386758247692789721672167216844823594517633304834919827232019630266487741771796558434473464317561090505811757628261786229356837863849244568544788491308932835066697759856088827384734421485246907140237315539361448806790873504747571161605722025457801561064294130402612277073873235493289577258476953460231505011575774870521969018633928394160882387471997706208925423277862257050545497754246802712601483188981442229721199108964737627033489922188649373803151545985447908467333959324583372290513141147662569786658878535505287377162405607266956371600158314194698855977752836245064019483425093523997095709646709818995172868619189100058952367305115955372303068925327904768541837790045877246851406517087159651941680525860532325191074301244544331231244016835052541254959053687353780279317581808871791001456995833055730694136146875434220878658296313280300243202093124762384656350084351240432011277720338914890821029710296091020822006621176454983029971541765219802429387435424369966365162965611789534732755351138929545253241525042901340869476782938449677596754158661218929058754748280110398939745708410302184713781402212907559953111068487380552996567554290500901375282289298778540995978921775777568747293315400168171656154257092882580971434144754081513899358650490857311650046512795093147361277676911977143249381057415537447396239139493682270760290306194600548149612445159764658616304689082464915812761023026374059752927952408468404026943612753978571239282782476475396568162619025240372372032720055601889245785794894080523416005488168325155177242773372779699009318185959527038012714699510672486550437707782437853382515531331389923762213509789966738749474807003252201676053510440832889690143618252130701351197383547666798934241889691230521699042269132113526100201432864148523229599676412220729031116590658549433294125166502957520898676078059137798053389907994224442630674110795811795362428885016507461899246206845050597703463452643302867249447217537650027639501489515211501494274875352530719678489024118371905928424525400296717139017422516058863571599832046127633678349343971667197686366960735164553982894266116832277344864790207369167533004618570055961479561779907794518907057626269714649113008693732450924698266794822327092249137337653215880820218035839038854902433589887437763831494250348166943599469594623466713796527914959332881413000005984459370162718736138679016419553867212478627248835597276560692612483812071528449569387497419714029997394005828785373247133428600841992062860041096235888831850686728417534534401708696877080408324761888629589437278981310027702867294767069427442393294125383910691116206250962073388027034066511475331235188792330395131095546826206885677365997494266518787132155032931664216472966131724103558482200510652394050323748192398332052114929175870147013470493860546673911145960062067065007500413713440405265523004711143360094619885297955225727829168974269618515271735558725595162031995571316310807040827659469287819403826960335626501723230841560965494681997463973127997418231176101526244078425234698074440830942687704397757719370183755532176261200103748759854352463893134201164678277825151155309903175447745920714574015673981538236044778813437267705879711822879848793331030803315958914769850968864890520513931395325152063852846531752692501635735121302186678416325253732451025207300685322453057387564644859825353404507329866931560572911213815264753941678952420863416159511301518843978923541164495809270543449371394731052620471878265970264333408938231748637343419827861129926091285957188291884789773254072523647954194095200600619231380966134082960244495511841692797814963639099853176338132416815822796156152825316247832893996089327730652506621369555632972415966105759024956706639523546836968547340411163101073315609898041331868736515212776026420991889196476610804085894176848350471901532967642369971174690584147231968342546092753719223018690002007649416198502194537628767883060474967562385169103037196725288065351152250448930267510457990306652398030314380488399871157129547357051936725337811740431087921688671501145275960509435004531598240332912283092281058648929304238358481075942330306103206786205868967419984008894379767467650939865893421007342879220519695815671121350026855639745163959986897703593328526623951558915378868537650954672068324317039065417628295086863980853781631354794576369965466496339461840246912810750899864493160182551061187490486802691114197305370029300045677570468470369193193610192879479989561860784754707078808344538592232661072801179639618625616689559202488998496180488299789971332998726665237515703958678691618397783671269198895029246664197941859015492959697709713382528330172036090065641930312759793259037220318946568523520131531351275655687718027769286533264018654798784275662820029863663892065881757605948233467354860295014845616769732854943157759130668052688515604946545857670169874374791022131517257999375632552694926425851433625581047722819651311352909614939848546278904147014265437993893272198847431304131986490849444395528751329280978405726166802920857866305964916000548081458809912303460153372332351634467530061137134320270768197493397623252219901815676347242209487802510592840220574095574884536777845255064136988810024200623536415578635321847323260293634169090203127599512582403530952330082824297830036475854232689182480445604548277784414565971798953577395089425940853394379967515440414146422883134961857251988256387486199510619049388894158232875826107927940305562395942881609662010150986011494302678985479614766272344599565758385101259538061399264834985936462803598676657095650501282893390330085530656342214631917128668564561311082457917630404079826791547769629321432827430118276086023220298600163851861366488486483147365248255734612569196590531087840587746515948956328865842123820289070897052565789932090656634251409723765197755369018138346407791549232941684754819751562447805481195390331000326810349481442345645071870524315623383551367447498240182999067126023975485177202741927344503058620267180443732233145168278085519759596498182709634748215920068083688594777319808983931216629287667140579310989342704064555048113583584253054838061922691807025935509587093776107607940999924937607157156479198295612616022899817119511260836624358874526274096056693875721056395967070000088350832444852175589752543230356626944954177078885208827400625531427194231440536284043583319355750470867266225712405706733579440296608287214268886912154349856210377537662865434432720581043794274031872050091497731388206328141166583933159884227973714532747302781476400677394425593037759286243376903793232884582518787370730937816767604711564014724256477826994044805684767277190704565642835282052826368188981262923621433484629215647960138702604842629186594931233371395218143035124320547283875491138872111624893724078066633945096703847310297667248691500234990599979649776970860624527064125526314350329753078322380886510795868348674743991542982461300310423713514588958320008543290550943515647456685516085258550169221078778588142556071020017093768643300264088535573724507478625697271286559930935492044668307341355534962194378753046677616039056961967037523506591900994309800090804261648919115716168546831022126049647431599979136747987985376264196396201954693687894364827941335092328063551337398424269971592383561927048345290926889597303975192652190436235925787280933583897209452211836454993153046189580404778241277140599778182752235441480683959214790445749976509866255877350225963730563446358519027455019050470917802954917246894426292674056584189776423322558116177102848632819194782578135247181134604794845515297743289702126031088705430404954618500208805155648786000703182961153425091079245944903554207791782076563603141312586387465317061469527105581906500356454666207466722316944115365555089615859658124428801361538676870079825769455859650916286040998596994498543214118255211265701084854260608775080909194499511937877951136097635891011106911541533989980901166855586966196344744005380927516589159333196963909264896943618841587148158559789975534464525977761517024153720689833181981472727553815809047722669562810041481342858803937604859752470387749352707501173856329490449445259839604762232310273491812593884579536684694092412711448909896882573211549566202318342209580400440286085776512489223207638339981763770447781444848317222038222558784184183667560250226932956617732259686601617416389854523492655612647504315915122046740537236662745214569722642644996802425892694214489628374521568136503230570781550733847201339399326509449687921164517180417682106098001829730166193291436529677240689718647683804161793754397936709976952181020003847183668936383536344105832691300870034175299355389323789424488692426975678910171918216346189465333176490874777296073012740164868695313953911842071201920689142663771999583333026947889404335801975459119907164436850135202075500847145758240613932754374221421625252120750960735443144155195473229812118148049056443817583879398445578333341291848202475498161535585524508194637494138597394076978096707390962653367247394747979621111075493097227677913584498015001900270019533770994729573334223007442508652453583888809263326051675184861829614936898528918222054277360948479586280991228545647490914501012250240403622633808722168654064391551888403859595417072959490128769874506410136379324613651117667916807995957600483221257195153434053289911339211145511052252871666100454686603525383836960144401018939703411519657907047993730667137393170336503002157400927549291509718567921098288553493117618572576040344151159774366970672126083055320106049226308035386282670309993669110387305781643170325378014825575911435806711875841330687918441706390787654401454002525657483346388533098749835652621315625226576686614040080368924578058205410879901063475635945334098932623666228603364755340101210133772654803954433141336939577568652334517969329999384780764101962727178571490607808797335754692620737439445967627914832854118732789698910153363555533307408544262675090548957688132059405748084358837281226141885768992703725573018235080958985826267166412951836478271982164479435113893015734822844255255633548176449854730039178852889498088690563257474496468842099971244779701107751908093647649456042097514349023738316264564212473877052367511911266477590032042231414231539388881095349592408194865912971899042809349195932780704232807006154259913454375820367067001329824843968843831736526182856766161233141407121909632700386939266113671871855533222920716450586183635632253651473448374563101218622533478231591586173047889877158322823804588817202050884309780712716269358638556029648178275960882978656762018652215503382689698577741382684527460490654622973703945224691491339801136483665658888547804732955899884631935586800192283413612157144500644569770510340409048952711765917781761858502026616700183824164068867518048817741785639539791470167922274425157408558663938236816004989584466025082351923034919015767579807087594775447330268912113087993079197060287586214752002661644206162097676807112438729828747964304912703740047833725975733912328685071587821335789430311161685146650534007071754457794804048845031255818089599513608922010958080387201245836549267497847383040598827052534372668420376993594712851433019884221912985211887306321756312797889569914134644920464639524976624294292814361833193718050237609164111120949998378312782692640712167079287630304247495475439482305785870007695686875734454565320831209907185703474872319948273140609370088820453647245598043646858140453953418488039453615581088524246806712460949723943503086568741591635694597193022254108958115438319198890772422143163841781010017965278709498601672799218839154435394031195182304367764929753550053238904489428789901133729405308945288568795885461037134029018855785787363539737165212404122766735515574723737699770546750074973338950210728258641164942608066849156622344678938629591654928844918198292430726606388549254400967892121689701417872512116374102898076907074165788706971580686730700176284793439898892349817034148967398575041427887642338283966142064376574472256327164255924371244712762364274741994956554299413743944013646191080772008954650770711262641569310972718030163120479781025531461088863050163077458068954928516719649021753658115669374354839568499344760829230314153711095258757128703703934617407854973200511924893157867560114351716803340638669866325112416377983310230134170583013606505171880884503208645390906303261569616445825434421775647026527313532271431512030976132406038100827312608763716430913770069049026803193564668964919008660652913640856590158425112639734966714997830094917001546439838472105072178912246940093411609471083984859694737540661834043111508690241262499809497700662835600211057159516980324774355442919763107575413348764135584556918028927915993710224607632378877371942886181680028212046112512455259871692138960456281327139481167282355894628098817099943805632947425167579505845532184738953200056439110832348209157087160218669779582292744281543972080762702593596838205012051655417258279044371601220089205117740864142196884422269259103624085914671313279611965835759470651597187863822606782748282156808323801736988797567510007518712818770665585701447779748336671458386796149277920766310157864206457156583500952198999267054948386891060596551133394404156569785713221281900574348890966030390385626627818150218154099292851193859817202930337044798253428968480696039778764848925992969931307374606205539664574789649859432807093553620774609833481277990755526028946261186642300395632243469344526014015863084454123395297668894531216711837152798290677642708107771386201309842010191130193936728949661114969434306636028907443202277414985719810105434926944115915436979127682789670019790652771959887786535325178919225180406022964167976619978826718015410075884760103983697956071570187185665191158601077114621729146653880800870477721373973164960322070975056402628226068062139826319770151484485140818906889321176452839322406383364181958674358098934560587037463470158229452777713467032887901728302442202195945498511027148841321247070895705018651942206406613221880806745890822045962152291407941098186867745943508381263888946121943291223034735973662484819364696784402169461371662452966103204496997128253814226819109987759655676590357417173829739994725366056057408462087898816572608247648915711955057324239458898408259672152532050313724385050740049666707300106056403464589636594446481298229979529408975107588784079560470403172839524382903668896145375623662545467136847542335925710264971769576267697298889140755198660813497695160990721097270816938427809023078493291076629004943460998349540811542716015184125454109026066192272563843308263022969063082609897474242236321102399793992486249783548775357818914261294119613670688868403067452724611856525112779545256718689936183456581932557914775839935291735231371630129794302103280882918837790985808511493558576738847124555744923456466465931782257303695185602945733481980986787360768804114753471367933642876590876405659465420095894909845714032028007600876611747139831997176841842516476589907148354006966557894434291098071326253775092713743579593649003211120284227438541813729826728340592295321100828045942163837741251618920821629854778502173909145194910498429449153506047108822212146797544275567864917084839566763244629193089162826546810181828844280301536356157981933249644443653764126056363285155115420045014546860254599501679032352807115737214465454862634645204600362892096832273924939040708308536296087973675572771686337763746999054304339322294841792437996410559271173115790435542959091479217423619284585368982245227961912362703394456040171430259966879637978404114177486539599206679702849139946040162609051462857293331995018174291845721912113955186907330532571742829874586640322846672320726566356557167679143102330895843643660430039544720732734758130897783468068257401067320478746822189477002478886779338651820778607808534222218172772155059689130726525459255602957787565455190935265763176561747181544569044668901302154875009780831755492181344173106999593553931728584876181471289306725917556268366958513814121742951092475425648186342225877892383064758794487999823790473941033143468163502333525558780248159835606247762716003659937273375706276433741395982968788379684762713627065421635856041076386584255084950799794749743866030807229294784636812544372475428981100663237545561241312927535774595265198494375607687384474006133439391469808282839254584661372361663161815973559061170990823858810589043578144147418948812684017352075105877626525406073330071138712129803029549532106887773802622388648218744991036556069364003037984272393966750088175056958487032543931683962797087771933258453963612495903738554408520411812616465659911021249025032122354084283571725398814175050477233837643925656497335902012464029690970896409392601122336763566614452177891780400923294260943724875458588876159612718895806540563833841769078833952843502784202733491044472812283354281312099460103569484280620971758402759544456721170156644022021172831379807191058130295903415932455619589886437399736071984175998578615885621354302108486615096027587429983098259796394946733774445316914155954462361037555123247181285681162618320680562703313230228227079860905557256700768686013700210926181668877825177245914181362418867738352740826715155563682341614137737974361292962553089122215638620083517607306099250970886083030366784346737084319160835485715011495066916001594197196424286271389708306924455458068487107326088281382102991888618426111708071034634753431823549353034016759360617099742515383872242146032155312271067576210225147748686331658597546422045934645892208229138588603223447228345873903236905161550317894410383070318709580581688878646635035647252626898202923908100856728747242502833558897872158786900799148442993389747598437884571620400851170730328762456420041285845590135384704313307130242435358445808971600203714451856368725920717917347641766862069429848854516652579503582712838437682307094735591867728357354462922905080695359176800010921186644257168539024277657667133764872342282486455975696023560718425182617515252122560404667742338611409373150529301973786857555797685950822543695949190671807383292680181150558827719137737784193946981646937757228319276547022756789564828509304004486012360803139274954705092588668189417525207568509953458784748592352196979667482004967991191638864073414034548372384212471315006248874187781916449602482073850617295956391599205560235458722815815585252902388287156649491667147080468338078561376790823884483168736620912536401440624468085427368605563312627002379395746816801800897517545371706479001789987407745563016972499596730852786025655616493322325811877993708869677224587448434196962057234785959556301444676142347172556102964575727158243752015901289509016597771560546688128350387082117771907055381208212950242119157220425452304071583250687635121772499208722485489274243544713742545788518957957058422912649597758884904728528039141107282904913686700674296510586284314831223971571266642757097742608911383158905160331544980341236589569349390410685203514444900930916254506915266889531338874840500070801025315018253827005853925354194160354532667017002134499363457804839649989842307169458171620937460668220333735725985954599499027326376779915332951481886057206326714590435143607889687355192881480197231481275394601125853656915333686614471535963412675601833583431071217003270820373878415123120957284039396903668416559533319441146647811550518011274019606244618631274101984948295015456274890823940313696023750783307777531349426153979292917989490908180625809038418077790235673171093822009015011517324795812099143866306620768145669075840204323973511028547062222152156564427731114262679589662458255998770530457915618337369819218901697226914799851472673038675021812784619869794004648285121201776962696814568850139662161591872003209298832447911545415343408134817261049062613465490461559848432828312870463109066443903551342063594054879479536899709564360846324123765502529299678666866275875023590619046872833564438897549487221816295543388953743901552798107996713841667772349621508783564959022693413039505239335498322486891582476917581102202172131204369499329515684287223920309526384456371032602498089052868956045791811992100717846072531423816361647960352591940637422182052135421479117416287632857457286737466352920798364116169715240660189928867533242488049981967100089458359603796445417001979747711429495130340742356943801087969280147229065036619002435799891104629282589325046744256198311876550629668271132654947493741270919896400939368647960868372990042743537125862248162654398640881891711834494235611681600824493306114685239364609696374907043758317308040606196636104390278671329275996622074083197001516330880346818934926168715296223977371542645962370219282063813128618885335207010087817839742166578903027297330910690896196821408340991727372858291738000737986617555176394042428137911629606433369195294080630826259292973051462295065754711209213963530730556234142452345260085638956178094530474869889694050496074083299684687764452490231609628322587272614054934097059802716080626010958096865457729536312569570671578958058506425856864163751416546067278923158508297865044813670441681613771891053643915765127360417136735705211498215930158163063684979406083210714614824346660467812292006020923996686228291021173923218640536684787365594199957272185845299380204715317119121632176603259031505937236656862928088511142826965364959630095448302654340113120075068453647496174450540598524834048881081425364780368496942317804907464207908333552659474745854615375129804340557356283123373871383505556295778145008304070560350333766212559515056412850606462150534063627969959285338500023814009521455134244325012159053580575646981150112297212709554202643954106524749099677397936229477023315031997672057975256013376485109028610652779339307139633323785511858564458756968472597971717208090809964876364660966226675127860129458144756061774379751690629997094640031529167750133332751676958760180974670889147871730655592788640473601927988953664280788354451377408476901354574819741033983398445036076894938731767052916390054214198175585598139287885012323519499510482165126430394306842798190109947921218095159016931948847781068678108567476318757178248276945351963751796122274519506772213322960524808721162869174941118402806444962305401900884938947582517818738198206984846156627038901241273113710100703725560678355407663334007116157748133473057691066021660157648750745550239503339447980883949806269263253641725079549553534458116267329806472538677775756078923420040831317588057306606129643514295278371343196340340983277802172053695771043008474711588365190003939917921208060391644466562298145020843239384605685035466055412369592570781935414990785264195844388818950892138739270640050249832368257773781952645121092555793919488056387332838388362212305879710649665034444496375480940705378677348242417440327747005310428758592669750511554540618096081668298984016246528084276943000682578051305805563432276038692791497846384625908012568478668188064452955666802168422973489588536439562312147414091649309478869026196942660133671149969735103260736971266646533596203396141708438481144772841155914005961629476480183502726089779162842962319823077272277108397420382595602749401973525362916746136341127046596797611112236627274550615659824285652857941521913267126224490425631677919005808653424790549773021555063360669332683081773615135676434623212969911661377318256830676591836557206172022461797564316716520111788959039135945928451798598072566118437054002328358196384805813180304103050121459835506512864755771522616859476456130656990428824633108203388901155059156852005320659546479034416207182633363795132417502899656823331045724732317137734377351010742000057674503056686405229447764386599521877916371029859976934956378858356602290132091708429553664115846208963289422581995690166369981614798649113104498827397815850884493691818027524403847025187456347338212061358157564960383386880869775424469700108326340493129550830619979615488094980808370703661056263461493815387086314059079154761340494095854606305836509399894688091852213122551586220529821259039757140861729103271081649663669604317068982544932461858478388796052850599587801995661078249470110511434126495672408583343755179479320291132002092758114759825758351725803670171164269847936098914893639748313207655763229021488239844938161046051154257635222086442409532472922136159365451867065300216015541019703497953658033516439941728825908670704361098414788160256070955291482521640197341788640185639450039650491178645180456873437996311272772099949015932312382121360674980085453190568096469561951522392055774751372716150295876020958256057184188415230290759395242835848680837786678510195754043192005136442005196382839997129464680913205798238984045515943019299715947388384542606087843191840168821879210343169110314825974597557083621815417100565441922267275928699832418088652078684546637460101479237505184863170234854565513659827789120425508452199432273582276972279510401993877144233154700703244952088753974551088446450096390564565161347027374883500737827883047212798882846225387768211034737593159335183277888820015499027855290508722276267345128256290177044660973785565834015920533084522856502810035287657434136396863458102420153031886557988790490827824170768294191728942652791344998303524776616728510072729490256661923497566703536256229436942879055139163772893603189170620879692625416193497084226476915017126388610037240242404336673254880240622230341521297703667850352204846721107303468452075306750201448327558601674266844566619591677430137513452850735944254682287182959057516515273820124856320847549472240988577943780221359053365629685756983031986269412580852479652521405870446427418472595516425070677615382968922817426468841978555982064793762127771377867879265981740045742294410178135370767608843758565028361498714325456420909585110755161485540511710356558022410526175913052787927319399422245402320666275386980330205611204769788302808072653118788764853594835926419642553795694340182254338144897039810143906199616923914109985570468591723515478890058889827421519020019341551906122177340333885569389966375277107996900228799880974499959661895400681897171821007068363831706366966990120369233710326237949006905408432389813274126325058673956086771381305152479010433465485636084537809585141862713605700861276514004169964783144054745556960371035361921450031900644681957878163014118160522974616116608804435256375886906647335397717257765849454089053183706747371368128610442691822773130210127173733408308959029968938083681599383212605120206372922011423199944886839907820002938747340691760963881911362773469333150360044233192386421179267845103297704060424037914561984325021247151489468861484640384863043309955930994595908181532171534396793199647100749613899953024454440999429635222537320169753916102297099566538356251004067530352889763000957955412635639947564708727033075024672743763307487086861004212013618680396657247575731146766022131778942818687284940467829227268010828741729329665663964854294195254113519010034893290954241253425458244206124236226855867119071028072520239571970160549406664875595478193238512344828463705980695363863941220095323632631553619316225164897834070036600687018981792644940943442215699563262352725055038218600469726760486287603966168558790742543277182767056348114417208106089830578970920467380664885717454840477013975949315542983156048556148819642558142987587068684032201052410486650402292534526611064759220822412171978078799988550651390909155437799741304031017320789225761587092522116519037590844866018202000142919157474114685595552502712398144594627247099671882159019114547184506532164474433182213647420303136655406885937139329323581791124948343280969201391517681393500061605839672898522839397728156163434045770379628150439230027549501242879821019907970249402879576501149436697459734547962481006423190866579506146897583586779773475661014616934354925640312695938746465001943333666233949604350779263226593940458923478448579305002577121780760857951365614196157823327680381583668828912893935766099846332063509050175257002262342593472808415931211032972439999514733139589881664786441299092768537990063236169551769552598025466060482216967718543103160703922801315421331738190913803960036658768650890033592951273184458652427543016038028455572243382979918498671572218070297856581706327572303128801956246681743283254629974642942911935776156368261257389399617648780124654042076322119635990768329255519722995629041503138925795523386535252477490769253113907215229528578332437911557195013283822550225104218787660317351961599089899161893687016550751026784791132836605592717682044620690958213192080032795074640113995399403611353120280973369418726349984969398137507730763443997539012460859560860697233104838007189299719725410641405424695704149019527311649152921933854355477417665093655173825008728044066231586156152226310413235823469509233168828745955896803805269215965258782173467168220728850655541401514115287250668098133733529103130724878066692085267245084006378164150087471975558059360241068869976143218297242834054956820204232157093369725631854216288264422579178746040594646052674403318054837637798502506236660768544573680974569355678919839924929507208519689896178317861351113678781606875270685577155600022375983203681482199681682246391422112615884635668110433594574135344944319219063467694508546488531931569285985213881559420007967538005178824745975713903936421934581562645034224331572962076056918740994499453121027563761909282706207043532240108417798979478446389261456799552047110494504939043351833752687899723891406849034950525796637014734072661761852820150487566934886331431145075049363676603593142529270942643061383711884019578253095960536607833435231853840126129948114192710958968984818998209322957244742024038839735304899725582767125879203913428385210237306094155314566191941042936272431515198965326266521249555221681585578930249243893431639685825299344333105650241450824669047466703556740225595373309271962155262869487059072934543589637694318333225322777316285020655660680901638750865745957421410991158066169850121000604025576083882674941023766001660316709266147416812647710972997740108296705550572485724962384335173100637319492048799406494036466089144694298053568974087081524653418520897018211693587935274241055435146367639005459125385898617369653465366643289906089390370228975381889121682937199927776943391170397252014458117921595029489989909626762891908304373712729002961171548160199518680688444803346146605529298317084376901869307530275185035761713724304829128149188595678807308285547905841517107239753225585303640836069937755521880252013417038061923475425546815567821264342198865637948433899898154669877878112973925326903630584399912420705160322784062832318124097646543033682274028561642764036425096003873993577005035991421996702280226571217791239038214212188377004567623910772897439512993717012328091652702833054929666202314006950156200335006212580927741353453183889092892778916617261180051860027515097156075752148307535883322427808583781549067485377912338252664538362691856112436024211617550977577822346558388554566187537209678168139855160694438580521896974787017371059644758994022901422355228531873291916672743774063495694144695608203152602990138323705196107396834376937397796795794087369778093596606959094736824237988997376971385396434239341798814661568448508088851745977714369812452470529446102026616970356246100559068884130841388704574422499614772278012453266724265536204432895654528206375416057558366722726980552756602971481547988942976498521081324548007475607542424487495946953709111590671953063819731860659955341639448211239839468818542457586399371708989562496852972580654929186822443853404068356907772209995044316800120104903921436716786874777263311831949941937151677271045451569452047756776756702922585591288807850503043519666463354779908701945924719888482001494976872285173002674537064785788505818780883992235569242827084007824598871806046889421629054613915708935331036914118441758431224427120588953775740360249745416580501196580801095930430209027818013393896374470030857652272737930956839983894924672311609457869474340209695062414808269633917439038795574653788314612085856441078857559033609892302988209441091943958254163493388265122768517595797923595457085540259224119511552329961320076078569889228710303266049935100726943925097648928400773993179945142091092018163148803268866972676183407967027368249269959046558468570519611549353942235228379630988889038199676744022679216436038811772616124113352334289954001668772075598077582513638530985453344086941656433358663740816846275872685938003217210850822082711955848401853107981693484540077138075645923206398733836181969817880468839057898122718684288646558722424182417756865585386075006413143762419467248749696943535297791469054946410192552041197007569074375798508749540808992710753027080781979670157370519853097351980425925905098668247934149105686707483369387818212047593614558356872983874001561873403878064594827846083992278514720472782199340752905328815008724141262150827038513092180635381426394871663084525310809234993852996722464282340703091365942524486991067030255355960194946420411160605454894646744268617018768562180400578174231854418642170394668240830881988858576240007417260093865696227159621955079570821397037812202881176096319361157618043421855963113298731667448299113462587326896296245675435844565765767963222080878698548627599887880494683904361323055307714334617877771864291018044945706658202984708724417984565327015666059550902233926472217541950518799546188916126217407534281756671131908755025718434352113107248617050041167652258753878208604588490864063324401369991012909439026975207155991389150579060208326534168286564210697839227792272057606871740670901916795405171196942830850449334376075124688417246200920773584814994538690425571649351448223009280582626707889700113666040340528595321073365727658604429305653887496525703746482787141406030133168425261125427614469408807594243142746214788384110510083070695924324497629637146779831277688309863211379295007695563177856021097003673165266833246947525787007050750328269786696133125933110247519955668701788238239608912550509028679015622922281213580291941614729797141585863832256042391964406761711750160610211233178389680560901051788865609226186574537845892552780820064099959619245397998096583913726957510341127731517272843468142505046566415633572213306395027072656306270269792186358833737502410152218211124091016684113282259445797684512867735362610066680896597016847849845009702728246556765869382268181646132598217507477687709060718815019389680905832878768538111338206376500937933743551339700084644363382217375728324666316106262902037205560481111672411858744737989300279587529172171165923777707859459420783562659264217480949782130857489971774047611072433952508915038016515089369258791716476744921256829748555892789360109664801993182580185799544659441274126326658810898430078346864286213308602973282781757999545446005656027384371797393662378016808567683564888587438478126869945850586843985268432755640047987239439254283044731424838298945683763268936552112355004350994247620209999015282248501026370202816182855950657562009659564904447894247099314800671399088377037359835200250196263584121831529171024820152528559663370506583681993338559178652782133405827076093177008520424604786118357752196507240167911483379224470382798280686695378802975501303973510264432348187194336910612093781618592314057978447546755317609210352118242500364659233486229299032813193618155797860049080973910922840056044828124493408595568764791194393154355359202104792073988844366243559679897335131198141900092184995362831238762532595298465445788289300623934530744604842599716735656695312148183869934360063079629243335841294793720961857162132697126950096407381688776670888637936843790013676835704307535934350956911617404567481836211200461017821626228522398109026930705508713753321443681455800242750119596793359900673631099276069714856048770956162608558302161169290201034437939839482545411923110360565135682107709428402848831707928269109917209697646744008921372318951860292407410296539508916651923386272326993059052081353599885991623947764486203001117695434742340906684346211367483846594458652997833577125781848578744413161988092484219086952461908296501875340042860455173758016272127925235672641929226239450029738361467669164894200992725025531222716268146477473566129403450767827306839513023480127101313561793251544000402740212585275254248362037782179532671493979755818172541074049426141860855237059485637380056379594530161745402626424251159891323794840766356682361737681437375752063314600868735275716552360067180222657500777804220820718683658637422414808177219691675393268238806037356850915640354858705565617669347582314616475353634412615204605602992855102533212414212216062862228699876388085911548516231918012687626838396825671594558107264390342847377781865280530312184751229460629381086819988721120767876652816395699219426107629467424057044130957267759726354187867235948902453242315458228504804074345154655260839275448000085606836613376564456960600283735255219985827871702937130811595691626064051690844954354850672719513079243425551543305078663182637639712041519699237044971195699939843808846274717857800172398670985628424079874951307885120121084551572594256918605037394906843554024271372531156965839229889775008334330001291467399759562912603343381149119277028360499923032759085905006876518861816122180531204332163145264503711873517876030469941989198654193550427515959991323943770393842157340457420773086537715092923612515670210473936627929879979684769317521149073946391269345578040373186572237997816402946216722743600433716811215977453336219329232329450133361555248643731299636881624779950455842186428231665504094411792408706119822391945070870919585103213094173774682587070631414511958069234348665047065213829421935542030860298212604928929197555335237000925054269275256714969654091936866964060162633194493624335097561193700446272544805822987694145734110529835982911176671942392371215181860882078985925516963703564181333960570501884120925409275485277434922859545117050674032934844100138051055053436507006737194208897006123298868240368425049302980060846431950066605105316444830608211426188545183536910534901998924850652956371909626380566060569705301894878588818402008017560811749572023606103663011831731825010932786786556911095416334249669615752704488955148817534876875917396407709132773211061876078712901959104586463210246321068214159104362033065803889922108789167966807657611814078635094964620095459932041461805355818110244158279784201064496775350313581416818304950645200909926952842725622517973986157147495819654726670672088662033696195258101039981830029059104083547899307041845312097486470300691759582566032154500664859034350463203498630057632144394299086982705457603161364552362376816896285021093278830685298422878749743924609599088015822672395924392131920271922328986331956017260747137272666121994982685183293664631695151083963523215662606525071202030866366123535066696826753802675812782795325945019506780435410787218983365654315561482561415447816556359117145295311112102430039621694738920475449248273626020879228953456503432968922287185958456495800841433188510961583109682030020565192168802012855894885518948252330035355891332442567216698973525302614953293883549114959324024930458446782209508943412835003174953955288142684751262649499402006646777539095045440415433827513346198746658935345821871416382092595621731466188770521655529930870157600239930320549390058068870882185410154210605659947977352878981506410293290516568435957949610312094619236914473226767552522321789887247973822826075371960041256131331714703816858344569858150395659806996839979184047448105799480602382329222477212968393481948381758346347834837036012302411611025226185301551719675074653890150622162287467881877097453187501719649903527037946534150522621609688709205772276220387194003133776916408775658350920472291797588998638862116680047332376291340967487449146682985608875508090140936245840424436333150123964258094201672009881366545291384233249159631301469133900124526815650329268426919111198293852585761953108949226837971881439413518389733602032547904455559903183295065392251440962426413368466466850119658856819913363158893345189583485146117027837329884006727348389904200785071892944799778206804460865919465275305456610817186017456952715320149490201603988458240777318733444858709005190156902322693456145989641628983051652821494194286679431856718131676225887719428724878989382489219342558703035130386305076158217915952651401145829115324916628701619661704543544999089374463789644102143751250663300774198696039349454707270494889588160680287244026898746467708955845105312326832986818780598132677255920772448305604416583338459427276462847524451817442760524849150772797167196971671853953319574468785295542361047980109270102413944647414547318733211808039569848138413784115017395661555803291656822895472103205183807671767950633559529551589884198404636435892328257492360169159992759245824881260498555315863086509434480377480880931573777497031945904500857731720501475235624489361439673672260063093864998111953356218190351424981468598132517944758633069596829209321636264038245975806121254244119500765157128316778114396189717768460920908914142115355274710933417617492144829713540586891672308010198030056649377762230951515996432781647160822586204674323415957693165180850027151006619445920652363039744087746203681477558810585466865130967945005029676750865519596113627657524594070157071689525198490161076439479113158930475578963254101259726729437563074720202418398035203954563193918611384435315379504803429253890374582922075112779074916308663436981496243596501801906257971212777521876022890563897257378586054931179507283079181955142785177918036373037822371495646402089215355441719430018969549457952495791702347225612836054432435107117250024965320487854347247712674571860145651916037753070865204079991371404924057435203740163147306678253398167426218183866936612857857555911366325440673257934543376089631255505035218207902054709475222526782267718860155635522408241564855263105302918167307331178785190498085764923672756776365185419724787079065199827746530748736586248807164110013974989570617303341364886904560357959829078511214123210720161575079435265324751328027676457497803478156949580125181010329922240247982120273445607608012204992180342421827774210525619409763107297031036541519078372030738407226012194963835461373390627803900374149762155645785913414397078893671161966795290982866582488643922207808892997063746635088996956337494335449928404796961057761673889674072611452641226352948856007176595581703582477727072689161899672961215460952984564055070096249033434982746292935748876881083359875360098434536628564221556366997625126624359509736526601366393990293042629621068236152639565839414512671466179760948273801348671140025142121205975684028374210528159425815021298264812048232139105454858438646447320413870067115347606124864895119383481837842817639047718127464157395597060300687584679439459644713691077709515348905243737687452263513491197300154837147790878940341166817076293895537787931397238886061351459227426090735969460340805434412589509546344365205352822205584541580318027971016969459941799390868502464640968326339144612495131617656800381558333154757633750344323797231082657434915790443767545484714377640127775029982960715165382981523881080696836251589415580284727871428786631945871492931479483127823027892232135512850518646290236248855548805764544369253855991313613977105763360207288025929520054910427166920053197327840260068547216362157771977110544549019800091615700930781286341850973847215705638571265390190807565005526831835279330723369639049706944961784892632146818283486093292337746731928247258117597175497276220473066595096169153112510119554053787476627411829871073617348009242246303784779916935025365000372128184352401009731802841082327761917012336794413363120085554357850848033357501777686298836079344835890000850060388839549624954133012772078792497837289166872208121422802448567622860334801818574568487870945258449329509737943715311912155798412943821724207248932688069446632039075358203151392061420290028022126109869845811682132192610097148979743559156753533211408349160123878478659467989649862855194694687043921834105522051516104279773464668223982617741256584782234202902905289686092502105313960534366625308837253670100926868819551821169179093431343580386245460504842132402062996191249208981758551312078529515544353691740915899593873598462520614633971688164538332226896810221570241726717956182883008387414631066900547466785014979031102515231994764384433867026311524757363215393285445631949627742772160904889213487216057670459959735201722873996236029519359434409604432724528834828761356300787140407980507659942963101943347379797480832103385691387549619216867421909030973522427395832905716429170648741240775570666935971930315476133268576003729528145736436746000579123859042671438000947294705643756766522675379943578445790201590536335690683390782493056511748820585573857273783333077045581909792605279320670510137842335008728686669555357356948845400653879534299547462566853625793089838338771997404093307534977984397218875067283444662717912544975105148330237351798214899709686498834408519682018529750132347128447173187039981656945903356341577036395054793993861033589833203143845109945259663881935197022029417034201653334484573928214693546749905431391985366793118827299945308585946141127640746084788706979805062766603896536382243264657991505221249298895089451172453069065615146869342238595061906146909531126581033648841670022945048013654843289522247102630781814058896734791922370903244681165358899196546189677962247733608831953942077123531857726391251680903764683051882991602017079974304567141056767280069260760045980048234703462256762737835290986520460648276995090764278102142771137940800969051955797567011204348326915866342703330421632543107442596156447629674510578845242023106871636145476159657585856512163444675813685297781912880839302899963029067672969735909061180563605788152554943236011394031238999936130338571919619702462282729130283630176367412131426389868941820326732610254208697315496052643166268193648949423955212720726606191804918101533923401003270374539284027912337851417197818742708782252983398779341968632982315973649948254916291148815561313729962685136376842508378291123013084403126854363910142323014533211131171653800660419082346422420642544187931854249795334847977456094434577340071420058721508977810320437102981302228519720039252977902975385172419357486381759203720441758892696233296377265840667500044717864216807555008852022818216492918550541516998508052658864445445282650562161701075077369712459702506551043193495417373538925853652600421374463356821552701437307911941491741605382839658543608671019565699626042280795222302549063563557421426322631541690433943654221889846291177782451385135873040937411042307752674641854804679705389446949070956510186604913879531050417191458762201745989924136525101152420384132476173723312886923770354747145780742277226408621258549479217201098786546607209411160894787011164730525075563279443062058220292994249088766772493761754435441833424191392153891096320251549350051337983512883016022474994235672995269495628293935181678554113401055686231924357214400874841848182859392941962970459657181111518113000269371797209985389247495249510586462399816457642219528386292491672292165277541130196573141284818992394016048197581793636212202237903581839575562804735535849229650268511619891366182010258373984280282101771125305310171481688332266265391967390557565888493879808275915931971519617234075033173493080933471615239431440572853495980871586490317057337210357681247247086324639249052182875083636590178323471534707841299744867960634723377669223966688422525698722152421955316432633446639094469418675179900040110771785967032940883232273376210721268386252704803360306690464001731177861696892347974650081824168667319255574357087437156562922584138947914868371965427190713503649519960240508873053976003695427842680665697022291170412682561571424963449836818186101243538168597730462865244626642417448448775621927775730119322240365284159729678442944681058109745534368683315109143876486235054270281615209015041639500015983370536441697464986001470768903955528226313122180150238065784425327729025575012852905611667526044653095769876434931595462417152691231269378234759204033752298965918671615588021154591568940324649603794122146829971740515663052796947454832003730278287991991462009784779694549624979911845011136861441083109433840460493526923647933141340945661989416653416784985534440071412856064232655774418163322508805455776610315435654643643403598856208590837134346507607728544249925355857909663690782222370705392151534905565672872686803815067448566615092102971138027303286480781895992613248129368816638151207203816932516915149426363685933581193246345658975950026335993092778659708927812462803316430024504750208841570232786035934668462709531402777942206103501144005077554725090270303811913174392972619960496086923464586447056288814698883712342793503328218961980047073807196941499089445922975490996488477069751797255311121138848354238321754327325552766389534413120188328796407168399206507255980021029932857303035540231590260138078854721271262907909523829471501092292784347025282662609554114637029173708273186371505106119157555403385147821525301891265008441708663953464748352798609721232854746555671615184688025532535642410622978849531811820531592963316768462980480607559385466396591586090411601190558592143640071289592658965356881408722041602581671389561669930782575563100838160930859802604685948544120853905079214145716263317640424384849840810178273035734467119930092733178284199486069369227435883253997189763831997239448859638303915220742395391032020009884720408830985577009936896473858870250258233374840786782110657691441752860393551392113890892516598132050244497875782610268699435599753024577417827617594415186165861691817304754270352247911146536633262133887439546813885935780688735111332540662119628269858060764510346708822637229349232024721196784824951301127752771565161363788017206423106239062588780358326368309375269690437547265850142299588557654961905883109204462341359960657586015513714519461138189212199087044138697842924681542430415024446613705938501866762316612568118198866909331327778329454339589573767365434817618090015781963475115868629586689531196526214647036882754008229191317857861203341415849115743567896049421672357892886356403154905517707762597560036415468712372514264805383852151000904898499735995809061450448098832054481415023045596107228761929721621588432506877347368739784416793795503349889559892339994376647364962675966606471235466366134375500586014929756272298796185001454323353743975679439378439641666204083116620439078320640288742083487693310441250435114561938314091999666515322382243896940660418828516715394178769763463259167946938501573358378094322050851372823923037807802302810161420787148525802090216781970845002220091157995803096333699027135537737763419508524331668626469904205960664292420193391930938473059252947764642849921965215276728511791338456583144462494589778075469829331166328608101291358386718070725686389424154691984311885373557734316174121035104118502163184233243021861667383828500183431448272702699110099444032327654627249089029290599436816089147393285419831049769389389637092185088221230430690459961364563940900344673665862945837965062418976594560931663241021170656560052151405117538078562749747667465130239345050121606977543313017004709493040345142081994365101580804151935671531816058757851179343231508547825777000013087987017377433002999782239822539736299553068479537916933839769415802502870303978686635492182186778876691611712856733365290513568350900765309770333050645802807384204551563784782387506596404331182897888697933145829090637624835534972491289052074653832923227078531146257118543125776310079327487035429799979922596088980417260405766721755177298537881037127487533106083225348357444576156459320469522560356380291460949748702716890494651484340325695896582871256186071380089137905579104357848192671388079407962898452831409774386011886767357970316472750269596078622847545582940750804045834453789226828333634556188057340693139471541775897081401416784160079881662754717788797740823454380193458711681945135621244070155632749390719157728162908097969787329833708071185644056303651787383787759542222064951818795184094997906815600170425559895456705562098580505294601678684483445022292553359988936308475784286073223280175055396925654960147960801813571270509761543789757456110203551470576985522844867287169608107295551326239828207353535499146466133145210376669775404607774919431763631006384105862556433125423084217098108887375030884688981313572362470416206116113140812689905723133081236318078113151143111968821287968043856893698628410965646627594699547444237228176078238215468845546210627531468994499798510970130601088536163445096944837096716971108905334722733925216661161640870783196138492366104377877104106147418485521642384424508880990240778027232075570625805169831039374104346636263556667314852561023237502415420603710616329295416899241535739141380003131381301978385096407431967724786370112544609045446284196481529242050370537394979763732447332838251616499565647322770280706763848750073316094280178236198553190444792108421810049421893608780486184262340578313760293312004795296083339925293195666411223688050448827199729107099265060984353492283339364197841649919028221717989765269708703558275309530366572862604899791263217217651563544175274808436159012698357502559437995116130465598519441857987901574818237540172222314503483103997875308705015858753533000043300003418514392906814618410363949626458985622365153491822866954905608569400409552056485734963553841035628674425070166008359184670133890109677335464602041910949475207523163326159343298058474356189941774671186698990583801936562297286420085798288835753071416874849233067221665192496855610478268699016882767810154941822539368777772790218125623093639848136592936472307115588703402887633088617094591536912024323801068490374577266082370852720402516133320641323441540849355836295782396537774415801441923072121128055417336816212682224109791347614629773687703572604633385283025804175690012587198590088567911567764182260525841020956696390271930684628612860158684890597716941810224213387801604643857323653775445467461316030545991598186194507715799871379469524822136015789714159939783879840750641030960501377868372789886931054299213610808319936675996267289894176503775856199929625771256118138746845829840113049465330526642946175357725532691207938852363196422688882743938097083916494505094323739094308334965645559643935893702455458896238287662001920443402389705876845291888555098302473911216564739985692894584501480056350639070917406923595257450797516914021533148878695797735324907614973686653268324795722756787987597351995618908600388976293029127008328330796015157278794725325619005644737960366902406429357637518380072235294677147128281226602566641722019572177835854818262054705930013140568019676411386737223623162718417116093316080640254127068946239759742550012513276486030611785991199987540972951195783808397012073229090379949313833206388548014565665810529822330881652168761327665900378011218142375769585806621154058632301534896227621285660454638671733570028833124218775310542427390009392559454386635392375506849800665745016439369528346869501336666911943309934205836292817015709663351055408706705247075992997935438701566163967148539831858871830310227840766755063975881269053567937467549003684461138267631077558035597009997125297127624139285140676970846678010507537022463627475880213843107517999924843275865583604093249087107953541167774143373425279885686832858970115759066910659509295041877576984142347779175405440175297336698938367938532720798661578977426140082894618455789748824842978511359002757162430183655304794679758573139296699690905225711834402020533152838163140143952108529563125786676240127816003166097233972498841704048190863782873499869960399925999205912158419419485880832936220358774119357960928618493517763322944879441422952123500933112835384691211397878779967999723587852458411210167251892574635846905916266004269350933834234020118107182152402024224147689071040958123801207759171443360932365413265123899744338126077518409069892351900460813532587458723279693123985487798461826063531636304819181214574161061168725075161741163121197001582947626047408744562370663942283801998077142949627911284408165112891692146276124031221068327755160596647208598255719105049758225762291866832324284377990340503271557047630440005027957730142380258889259872963609380807474721390676224309267772212306794457100776475231276574807793768625884149074150332266243164708933838765326923067505584207871503962289054633428311650457252900819111935672587857222214957624694933369025009858322144571080041418317133623089205407235788329603665990666449892903053960530401950979644901135777878274227694062656283112893713832776069338510374793585025616478706424873347952620085798886910147031996020843847210132124380215443851799870057043313285804380689978612779199487686360789352502469837334168032596980508985879198371435580391416717404599747966744542913375729142433064702429892214361447310217161071842314204623609652666136693338474224615596724827861227488415769965450179555402584836725198938548987808162481154009697773983787814690601662382598737300764580283834489532988542235922350934784722723966965891012428689486967294878950372586403955210319094940572421772375167534974949746617210241840176449542239570403176065614515106718596881961149578667421292302302562105459784150258344888947602240148268440330038350243245631585037991292023683083595295644807462345342177416621301245948506416657527083306352737065925097239053386382863878085561347653651739789096429834372305516996960714316504227814211480835193137856536258048761867655376325099900286489327279734894764724236004406447512690377085675458342063473188350623230506500925791723585565240418385327419270233550702220736626015767781385042867946458864551841890138516403772605811366582979643579688993102009330420203222578847478635746427663776760063716448631295770543406935191530268608257306081175540820128133627312098455203438396399126734742707959238512403577677282554676291733173509980296849627594385908402369315906753024932543857762128436201631835034725969104228231282058724137231264044096205433907165607229566313157655502733636240550625804447674008069802592637673637972918996501773290034671287178816847176360092468811359501714836117407869115045233723583109681591660714302587541045783666591440973121044523879445069959997282889833386665469361327213521692601775478290664293894855449821262529530164156306066145132313229396537399805165586214521193151664084426255415091893040421723034166528140456205651668928917031838365260193540911734815785491405466352228291046092690827207736594941079254866615803772366005421479489242814785620074645031488092942153044687319120011315630771824372612379665636558816465144257721537327913123526186492531234637787581221462905636297992646421934446687653804515558000907164226797056553742264447653949975482290859939380405752166898845398422258161154662989867573860502705750549520752779005086804299379350897170168372100679178050568347052054277437298736702052556912261686148736964482253566382420435444957717426456795887116240077861589966427050543087930049552896591206011497406507569815333959898804551682204044408616096623592161380525666592042813918278004506010218720582255380164544732255164939290061288403118501071396048009473230189320614768942746228876739147353397707747650909094408094066232562755517451086817231636246067147082823643982445789810987887348844603967096620791150178749631467637361047151685413725585590577688881584797593968096018805875725487226887495556219087039562762605263362267143506591742067216316675545247301400180701746436849520330119319915269306631147329920176928865713099965912273390574297138741416709300362255890626796351207944011189681775971377424371585190921052366005224205538224925158308485620121897552228664922874711310368467627428955444197517548135721163280809251014193770339470973042231110155185360185842146618005788867814421190773249172543205678396102516057912328952013360314113349937284221839547535966873947208964683640917925244099429735824067050693031878184901869059087691592996660218144959761046377159809596594079430457479810405121776718890696987727863874060491282863751905953114789735300027183503303934253392864901601205107880508963673683783588673762244463602175142952403997299985484609585405521518375791276412593962201083162643282511035542369510122613526332853716792912120711177649524755559990540327429695914533098843582919214945047158336632212840582371738718508642213592470596915571759293177027291190159698847723567281664688373177111461034309443542001197956435721467956508880961902237631631575366928601827660020332468916237572973435934895919612468763753462715958178634183193957211232212294321861721726739951099153819722603235429159082970433390120013878520008211490612319192625682898584283071803487382695275371294881002453542892852642861271928423779330023931063223253921979703991445397571896766529912849548852097128435594402896614542396828559911577148322111067543653158944782718194358793682799463967805392744846943370824704188619623037191411782087149191611059335769962942995567793439248500523133853999055296852532082014960297511520946366352699668977551225268679276816475050911266408122766138065544023778958837673093756850934016418834403310018501229162314914062447739514815385109372632356780625087704109355959025116584980706069527208796895267090811873877628243089542199600077363444146017193475900804384144818785540378396473943078090426032194127372175248455380890533671807612797391698514691718923252052106595711312975217849382219240484500900936630208453028671315281023550507290634026640387831359495343441476123751508715020247224535211704841175742532778775151654185004007936374742935308626344899867222557965075358054030443967810147952447709752575093187061966493425694094161991221403472191870974310168640286033649616363718257644510162253107420851431415649006695693053707449748761932157132853069738643023678304191009626236406932076572657870083006543203527590453953267778328049172195988563450672511060263898081126326735611156456326192552813211992909419647591283301986270128020700198708569398011356325707783178605878845678662795165556832879721235767484622460891631725403289587110095630132510489649852263603343495591303123253452035159519196223437438748791054815261055026073024967423536521564997294783753905754346930596664476785053460943232146106581661705241145992315482492347058734398252221039681735678942987715664233052516663790919630869282238084238784702081020485850313765699120727203192275179033245490613760621153868087255699953225798671691910032144250363682638744329627467739810126357087484448945394144789706294355124910157535998211459115928481555234141377090567642369956969762031869654814463711859926259247224185615035435428175299808257352036515119641681476949384966240673976651389729246181109821717910615345476198380445060920119415448456239364654107571663280526898507059126584499251932116586030484117589355428479544709767239571687272588075923787663141480370913123691415926362496897935220964847608099539047752654882476581838983555863842892359815417147904307361669715332295147943031384241088903772275430379828332859283133333357303712464004585631142227670838469007405172238377290758859307800589496608796540992865336170927883069070761820250880357499289113649005933381007341658905007450103681317218969665964873492744386415742553369370544834807513418387997300631908588457794711820285164137407021266454474830519953455876951616935870168612463319379484634681921784689434691020394982406080855945948325129706211681629767023426356095081324510283968078188247597729721855379194812139039499955262743972428349606414250558239788722355030570739120428232935811511856679533660676529382175418318128724963406955371061529218876507653000157524605802147500520355993221021947613627703315108369352253120209323152245857245507603346146685388619388061465693791658049426615562024333390745019388913404885208609495551435411209995199957057405643599076758170031076843426182047006605414140576993849232334342074456470495622367487957819785168693928577096379769601899800810748478370483013584782605442385980751734377078269531982054048564723032799913660655091629110990324577764379341244757949458177346478676597960135195727296715856074305805411994408062677937121244323921185515379985845333934448879097877311784307638472741384162477656519191210479432889554341892750333607330088774824576000114448966043200956799971752957661778055468383459518048665485763497877480595351107171245850157167348132817119694110623557445749105571843480863653579728714742657980505562089224656606419655336573157961515010760291840176933338488053262470738054617250262580109427593901214165820068098869507444399526555887898424669777830636913803260309419559643503347871356311837435599908538661920204695297403669250686256215778078527767812960620642650698765621063983129948349541351687932093776007044513371736772518640406699284828865454104137692112690077526579113724290688917974666512473901495427328039297843229949639691257175627402851597105648722363440794113586192159182578334502048444757207606704663309692386526084062258091386932700802329310995514413363185838426488964690224780431915940015106378820791734925639175190595475769187642545173502768753178214550736786604391862644097950839052627648985438836697822232630333387847961278462705741848504185557766593817213605392683483556867983508667407716890832398205521145128334538261654382310298472827379708663581461552113684325125569072592332914073042019748766956150921834447436368375237600064136575504557647348410320683113786194437178851062411489959271007446183625692718262843727924195329577704415566198542279718481850599346642680066119653395688641638979761396343531585177366636416650225798459725026625833053005622171536959940559760254200287212422228078466527543628950585658219584562466236071150873342740336686387018780553404810793161458033531030873480739049845803041834281940603089707535198376094094249240476766041872554331330189503572216811412328566810147245036098973266004336379010046580443209735575684356117788076228923435106678398338090096838910760543299343337274727865610550104926541310489695284474660897794296000635403552867280212285020540006166403805404099949484408649087325915991794415833423155793093796110112600294216405090530750626305380535050437862396113721693720684330805096487687704160866025931883789249664009533510087136180876334764654442844878784760430534374168176862577100377351690639224965598847540842800657413947514210815241063230073598159047196028456867981190098908355954407952995654132307000065930762294748416783104005727437420422894402587321411306273113558251309266643970363782185723536402554106957526191625017299776866815067694000171482233373518279783886803555982990015642255185068842633100176954118755628199806615050352610031187043452905658793039326370244769148597149498456146923651930175102093191848996628849675507145005481187351450222198832183381537313785587059209253937520994435709375717593085307840014345996634314624710035558314980482686228204253244452465852910136754437043106486618414092056015396490985904538569220867135694786454049212190516855259150869263013257661059152342007627446108964286536832633163356587105132164910849962982734764920367919386814438389324574853145263526996401146785526238965252958358969766071016453084594479425610174775180260969370297060735099216685527911252190464440381446869566687880877622428325729463439377455587492477860019427130596470398104347425416431124172843184710864071859704840832716362782367048599154652086886166211202075955170692199602717884734621888556111899908087418899992517476345528404049845219247299191646970486985443327386446473355444189886324452100028752041756128131382969472262237380256394420835610841759057281733712759798333160669265176054165566578634823901481783212882509240348235448280757929378833688464452031297533917893386232696628580829551276014221735448811593224839645098012170792675972544501241521390474478013540279900326982948602575533461381177218025895979650477877483584130426365418540521870615828356842516011991342908636426721024053106630986971776547619858460241158593584293540174197160025537154636697010044417851962745158760895690516365599966902850618605459196617656206963380357174952548244860900371849139278242933486208274909046549627030818135677891347912878173016124724985623920104765694626160468634573507132737108533187045721096766427174088876258796865039443887065683669611211743724118005361936198428101279791764254137739354620273494914389843840638378131915428970373733963945337877933666447617781210819568687603801100078857405032306954724101144257709102083793650018387076311288943048659163076723075820599062043559643662145570583651718662877004101938689941717525867439878108133115577509004085437823926038785256474915750276275374916916313182892398358769759646668129685324235867178048942217774849022626232566019373311364222657171225314093113387525490363438598090787489711181755522523357451054718562950163535930644462004522935699702831418971810542109794608842081933934952351371466240228382858858318222005064096973640073740530378454021886695543896179943306229185725914814006773093444096462794427475423076825543241641799440567755968405695112881649296973771092436818881182732465305794868693437205451779019445859410978813731949399150952170281089156582569048507777844172810963407880455229822487538400508574361733283378902746268081259702055021591501448811040971999258522694418308488229201866944909628244907964838754399438939955173717607011830848719268475517195511889464013999522641966665581066681367391132547054354272096124040150111605072571000784676707685220931893304837791655617799260272349792049724679346047293316736214540988745529032327388584690963944610071427037028089313262401266460720778565474694427083832817726076022999232816314648993016852237207741333085396920565565038575907307252529163123860016884611035218886276933807964760965334707039517905084569666149845030489274245597417700160231870867762135583018897874245182446536357186430966163742539535226129198035377070242434863486041184510385769234360251824875399480653990837779163225545462658285700262321080464354074782261295480214214978288636634181564079385530253344358579615081928097021753058006665925809489446336849073272537918607446937141391888852120461170757918859211782957258231998377691623937219211010774960022564178452236148391032596203116629760872558468336198714675771796181238716317755231656263760985711615684906122977574315317520327262498795373944913949057798713533471600665254275904260536986922246244746290853859668271512389778188726946878705637379649370424530449754559568781273968031281883334488662987698832422192180266804174274416343954640171371523153311604989402958644246149469749657099357210353462541930563738454803655338422847523443366634117624252648423383138446589262521577205507025600324421339793069215641281692231257885224673180010810912141813496037351128866142726997083940299532548050770171139312941377095653493880964692310526097830394741672954017751319922553754044284045013415932473390790530540767383879681575925058375174182549416898176289877642596167113217998953639968883648858628735762338472249068471236548928914335744456248458403103457970099594171565983671968896928183186084769015038827462480759746526055396908494605388426142520376420706628019341594168254289490466588844710836571362322111787876490384050265268902125750082682618095921261442649395525414518573962167704488998607572845222244276436169122066584169058275973986649245549733964854063730202045181061220461721260431695242509606054960238551598350382127523196111102904571986934240078510324098434082947210807726315856673944467200086575252420196447181406090931117485611344481195237842292097483053940271965990163611228072407203912203551210797190003210802345980124986060545695518921999563154612747961929507023578835060098657899529416129335323189472289904875385212404206529962400032414202211208369813924346841680641463517830571085590844798205487924531842516618353356779140456913646422406962394789157038878207236227065249474975380171915404737960576199062166445975493616773030468681963366479124822944190063866564075204411535620484841954971625915617511429030104276551454884482968810010151798052913675861118139065397927473913793980721908906335619851291597742043567951630750037542364294264096573771163050906977467993183250429419757041592453324599158128227507539413950978473299383232271834907001882402311240170962768977760071326285212357245603437072204938014345284638813473463903573951843594111921804131543034670077878516472044989436112749681548384777058044544382279018546941880951407402071024235768085256883490107154443804850692773407112782881184824515326657905523983926981898813318482220494039640155161024826302125182772909778644818039328228940133785131051839675306609078165906921000681181523701708986860030767631878012947119184463530706880411681510671694465834463990666106951504925474861538835641248046680964401350565762093480071336130023759132738740847705524176207766503888270932486769323623459488673943391485657453058960168449012405417680708060919134751691231822711737714842749259506793564435462515661386198139355081480491658527226004671161303742670103066785516037472287393997001090395082311372250281533258637748589024517646379974109401403760516521732017900360264522230846579989540697543911040370042112164384513675505442809548268074455682380351977173417919393371829855103511187682242638544970428684703936425825516436546751862386258355526415411752292590391337532235024247108303428859753309747449743777280162350254806939642742402791494037628882731890207834431605692650285752323124882738428836083090394066183100191253559825194682906893990492330980086597373134794047545877281591451351929665669334790428206161524410482431711965321070073990601809378513509259436083068409334650457858389078815693281179671031584247227822545948220685006486844305851204857657136991328262645684499047239612456007831532239270690676173564901020398434212927171468204101529097031281701472375590342172243771967449953553736448043561497020860102453085506535267710972778787075230870507133806213619768971251787700273561979270585260835015760112465594544619872942486333893669026090522298713509479078062010103920478839101788805794409924933887099944749984399343786239320013811442966202279731057478932462005206319047242308992709018256994563473850405547474576763494407656593307487735530519819344830072982991130159732752979699263768580669355125735843439926342833407570337055811348869779105330956702293015983595411443427282747177155799690010094116248792940203718132631801980112483799169359992617637195109186224131856803229054649652848264473696365039278483629264701254971585440985580618068888483591888131183619381461189487450508102302150542090650216726506681154781908840116769352212394751600069037573339857856388616562299635237315645404492637171723268831409403791285586376272945129535265523668402327460695553005729277769273861412685048665853110445029843647072091169005671520666472967898146086737694255470099676206757220892875516606342271342577564726335541266977482747530221210247310860307752232985303696922094537866921536873406590437612796493247772967494036982175696126527651102484200171118693324419276173744794402231756139350362662133620931626374338200305191001511182945774935819481360559780012217834409282784374475728185574853072184860307802844553214660293986355517540517919604395644171654298855176052421532930175940415476729879286657006694804824435856294345553018128140322477297086545995307335801037227795652637247456432557385420616738229842761014236435372047529276214151389614761790316192652429599540286467283728738258865710460652332489780226181671070352105989584082879323295560931481063319129073922669963377473842521848249217407632454719645886322342471095113161485527908079731158169094141787807796773642681492774550099435356348999701811008014421483920165526135949528789204426231480624819113191613308547867124175746180563572306904356090933811445948054482178574723268488241241096413337494993414786233072187301497273303752751479810278154384937678117231572993318502525565493124894276921149294914879494016191713133561653959029085280053674382110165524853659419816091512167374855699531212000174104966442227315152508267250250021087694338645172305775760667451348337888872842933342516388940808172443375180657710366128777273889473849597389483869306893463372807673659428448891693090263948869051891335813074501452401747804462499618526066493161737781241802858155412778909511395104226505897610326247766804565366117004806658655480384172134401798330856490955102376149587919597356660026780807304282002833107616568768016686899662332488999778608536907762064575580765415090516775018537245511977408015153526456599762684602052582348330372585572274695157558073153617317296969275441183473155775608258778745916734365165632530197666035792737113188399813148211564787957625320061738382036497063145854143174190740026704356415722241975608685267022183106790636495904538911706981641918106738260241317306027441573854655986717046514113264928526012927850801816015633504186504203267015618742405354970932443652211868064317284225567178110384314115843774159884546974776730905262031354572432241437442958796715252255725922716356555691863339874341029962527028249862362573832732833746410402748479518129194830515209301116066579290995505710101064159801021949052773769409704500033179130787206578632727278917245790170961337838262813260076735640583122876413135477271147773085577183954771682850749235291501065758623211559727531340995763654551771372817833174022869661034141368221193133127501403180989065307273684308428016717948504054591913966874926887182732372935208399034618494247186139778694122444412733180716623010812059378809175446133006387547599502977700639723548760782359258608216873443661907117522833030438025547527344631653175702735898550883789452416645746514269814837758811007489292919679639378726417308085056914178733187337637908183670547186598752760331218722041435760816772894746119589397214292761975167294253114850629199988568611020418222133698250424696265627008383476050379093693892215074478462907315454464722645634510601828420112524537209823543627151594157625065107773090378963558420241265346284237637311764346505351854951576701357465544001447450182512506205033457799942793672791951393657362851150801271407361524649839119876433786570271393406754249747903757913632172320720028894457277327632546438841692404745310578864643275174030512594301590944550113562622109288680308261010310419737297314037385129945116155869289914487484884764743904371406079815195577395658092372255387531694935928761454617492425521640546580786301030094943738436471164716337033179107454911078883042294847233996795529201693825391212761864620719543125057094147033712571562416690942163446223277083124759548926642833626853083286109727624440331851096466157836968041664176696691444168457033955458784382407332811124657350720974409638268569959223964424100404810179033513549065150814410471514816724820152259282603900925418492627402068865206325923643211713147389991926176227061743305136920877478649294508770349634456040283761003032985125823695635610766821474948818162274429763157613956319279231213227854209737355178392478061072020377062507917631526229507209717791678004628289240482626289871949295961003962593549813133277484509779969650187652032416304514165379308854191373123485337010454292887994592371858191742492425984385239661963226043586123407905500242117793290498189467879907401025455049569545061332822412365623826708814738251346943555248192400255126927909149110364527785871289118820244163178688954756903047588159121859051367658248310281807301986915265547562620698714335741028979876919502909018914417246650780856039720846237874935944137680331408467881787911704768497012791051629472672379970178341989990115157500209044953266126548746092936180082501246192602367555567537487195386639629693666703665843939486498649256801259156345175631017064521996531145809893430414933799162816580742783438888808874124323744252961957462467272307311293994979497776507653675296401727922162834434140745315617235547824893204214583190394049728483685192725898799331057251065486159383447243650196198143825019795931692504277118209359798785510752207854227881950182512600619444774380322667970888817625274829279237380491525643626336739278760970806728626193148445133472647462237520744354764872284588089478054036273861385082253003974567707564120545395424520151496377318679486690461772181346719135769444965667889626682706507967670983763907470360054738376313320027589994969657205230367541364301694480913590107811090469401384839976532503537256627504881020119619152961958127079980844206249169583502982521107176076342149812531670292029726770088363480417296692985571789798390624079575289537816963425044112596329702565832771145667228462051026725238616115724091144760352456785265501164759240210284080733292240675858606599842953051106839694990044298419245120989932143807165974556758372034186866190110447274233351625322316726374348347824054928728093261467787901302776872276020037213359232855917053361506788358983104143753328252349101062177920131944380420204103146934857812797280549636379422542830229225260979451771845577471445981194712569161188894921631688831790214211771844222522424140232745793664575139550575750108470759225572540130779336791304677086453131699390184582773769010245046379726200161798404792768039238546929068711725218588358725039376458781564004092135715317979934063799179402905336745388832081576916447340715638799814559963166073289874585055660174073321442069462344701283169285369268618802365307067723186067458148749264830418028728021024579392325606383752893483271858346509745942866855613852501118936312343761893152010082911757303150801576969862862287338821987477634526422097330959961793910899509363041199695434442893056503039624477970230699761424402733847195127771742793356907209213421648075197858519729667289237770966370159264335384215792490152437159014847037975676747605601944423652358792097429651024122183262813770201942835384119874433752280825118647743106849136479883484897462748064941149446441321886553153317690961051451069222979365918847413152652008811237567185278015837596159070084580796954145394454423622547288824786006100222295991054711423004469908098515769095823571044439054303061176349768138411655169008544352406518395409654822347485718224802045537798247376128735412085300540871026023755672312884219434118519421468745756950702171185886529712164773687180395959456623299926539074089494510575665390696987802951819509536389724424486487187293964631474390708866882517589994643682671208817526381473430175105048104901887405337153808583583605359668839330434186393399885672646055785486056625991987119862860873534868387390645979967562560623250101516512595762046917747928397353133879777811596618663685134275628304843663276925914482700279233829327554962684538816916435931520786737932850109314167003606040830997887216532442034181535154238640991580091838936907753555984262258704206733675011089895147737419674559138308646559494035180828941244755503049272201999518289341572224611527358428163253791424059255667094721138511664286026839641076352435950798766040804412171826287159813700233570392209672430743053850453959175820668365905138505361879077483368350131380424487695201637671192378856729455250505226987941517694785053253074834095359277662304820259715321018418941565001752798575957194342000337312925346155851909670241186290503388671753957238615738116296360238907562742494063604525601821703409875649200858273534240034275289666625097387158083013883988395169191352704480755421578124244693430630269787129026546855772591900253691094187887629537679679901885405999946675946424598065920517562094184627438615305439900031118882370152692282298986901456265718862770723934849854021536745564046552951357655203945790900231573858205668490599919723572418958372398756416753412321704398491143878439820838744557282960635277822217400462186244838807720550493984829551605300363871923061872748659122609948041928415563663715661867058812659761812677162259510918442083950292242727757196054856118990278408746876791321594229248530589525026906621346171788361075077204456906590577689467236534104963575233160677146553454908123694947474317354478948571732276206808433324542169041840389998781969415335378621903214345028376131650510604124431683180417414543742119671743546475835975973846363081645510115755347965912287744900330669276533721374466674876613601582178533279226471441467232518092872904139160260780358580815849394081579513086558672488956005190888568738436210873467586676223534267521313720876078412295187147070899917167733209183330786389188858702579097569845203095492843626646350265295034030586532885283094797790039777576964662581871211317164058287376316499159104553490569933537445269116281329666975876558827506626642921531385865617111503706777340301399836144713210383153959115498059875195252115627303111098856047262522906859331153308840891870857758401188759991707257562981281884657968678599701889017025090124161821812419816866574881821228623194281038315353921512419826623402664659762694275962994880698056703456529584812214948033686515267861592317064536012943749155781933074514306911010278026666629535510007951672765371127302280389271234550250823003531490470760304340123597148687518376085275907178680230195712157547101417429007827918182436693038467618174368504300937897226816316620180444588290913812149942489408594657802254786373515351620864772653176750862700929517085916106741647247346412553310566088445519340575621485158878633926960435584102860010175785315712694656301905342322375116273254022418044111370955413235627053001672709631138661522580232006257072846927943968972452464346257720683984446962476231927429180690551303433916152007438078003720889176194576426960222919907965002325680061777110235973188863628080190740283669483657775918592597610291430064940683588076879566844122633528100964593934167865006279854968752522953377824992781296770829528400552680996103932019563389578189038319386303346307373291142097397537705016215546191226967246833348042848181730862611936238050696133620382998494084163314055473982275171638498772901393950334265921147675295420811064681811299571832848426002172796837583093390314933581381847961915971863014905345148509767171549908799017860316998606276621662027216462228365330863820474970184330085483767293966092847817322232094848981750780865234149372695076515055678380486125573893620184301813588736319678498812018216509825862799464709526618200884535297482441349040077640771298751458074483822743586491021917342072164406299169570208847544284600097679700459870481769614776605750054889869418797470904242471923163964902411766065905591059416928828026698534732750787270057595744943239128958045263774105108817654658913557723672194420618889265683174704289520479523284293175863723787990265394781997516646223936662553197659634306085730958202534694379174899853843086912928655755992075711634078860496200602165558957141887442914324634919081087222190351453214243773691866895788431943644124091876532335208658922553332926854767410920435611580567119597043210691061219597038024873367899465128831373718397861666109259610547698721842638589393668082981863695365549615213565015720151323232866112675623374877700198093675225735891128250131256541878118675732333909770668474364779798760433645280063482751937073124737598730334799209153475234197896238280211798131015166215094918242432104024145576545742499770413284877935879277580809675672976018252285180735709630543873622070705529276330211054871346618727216855889291054671878284693429534671573251391142451174170563972594457190677375324403409090186487018882161575673498320208240241731988122686669395042100984408464778161456510821904523878962728879323359664942885471197778275127779413192405454147551371652955431723184157599733384932919765998963152848419223590018313764186565650025979981179011312319750589388005081886713147904818353545002471685722420316449833661737494163108690815702319768818840163520737288552191488589362794779128617559988255910096821817843910352445111971905203421654308924863778706959291530013341475325235804038619409478284822845798936330130309196410195500833384363344860077954437465118513182226173566908993316131981128755464214160022044123979308843421575722457743621174607426984309964210189677799280948297879371902281804020731156961771637438270303565621696520242503396416417363536063083764115481814297457554381755021201683551192274706887455107840995326830268759283827214305968653081137344499285514071551099298439131460105980110939628075364827548582372716715910439191692702522231006239094510095637443659702597270921816538913478948264891731653167962053625618806026550358034187081185806296167645290337423591531383301190539376730549838026104644661228891330942264869703479887515966095527688153376536458321053875946923836119507635238773948624441940453770227872994819324886387898381152337429037285159358073772239237452171821710052691735088237345542965835699937667764919056375906592475927655664974740638832077936942830117289540677318548599493018364716202409604168417103200557084675186231711216962716862338275382836835737316022864041848302780127694501068623064287210679700253191386543440540111385730617479666967012446222585050506733953979617308309508747386756767183744231421904029383616240413792542966212260700107802872377421927009138522317925590859155999478124149550785497603196713889863923534012179713975627220692621884633110563352668947958285362409694847239957379408363645895957126340915136788875295610395564863729169495484707181675110630528263426452723512746883018221684462645692102500283975470645567151316435741278162156062632995668400853972620956677130977469607011923162279307566684399132560230596844258833620921468152337984856144751990656213396349573671611644867816297302645454932186181732314411850480063671717572092939693241904336161963221990607909102051477234557763660124407236661418180250847296227836438397168074679288982038884941771694207184324665474058606830244915905792227557813673373442081457532735845854961372527420243496030371072368572451684155643313809452724274581055891414245440155769540830155612987866011920371833793368008424269240340037643799219879376347752322644943749955485659919447892550549409900806577640831190288281111237595143359115784464768686695268142840809491361444669343561333534836778976607492808090574720838553674728121902424173098023247778494091244974456709830707450130246769254448265362982080546274938908572162946333561735396745911810157503523211218972346028367897029067552190608099626083146493431928063321282012231664946593718380940016325929462709896030916122375289979749323076971405525602002771333383531400095981734815447110612015763790663814695509169973620402522956350477543671084886261567023478139878081547002973203818029667075661825825223356072293265383088160064450236262271236121966376671314653758867816507883244257903210715856224536846734422295862792198153496216978063116978915648267497959789347069719411924489512982283256298129075791725670068219430716228980833539853444747621611913148734027931167163633790047590950125793662933160114051267412783907721691034279105098984982318719358161403802922646707753664979854626298856631647577422575817403140592720133939913898262440155513180912366697972300850981081205061748625184917017166689806987800607601161896064581693561365646583848408251462870674161291845914719441399271411447783900576653873346336899117534358720202226184961223775066290060704657555755570288532232612197023809279927496614605718419042945872634457213170190238949718344908395070897743719926416048302493011036144158496433439201739173266907564913586001962457793734172579592055702835538488070287687387196134615367239666151349909730624672780089960166842039354786055168967641794806702627698380549784741362061166399956970810017051749246542400714951034433697947181823430875737458065401553654473479812619078193369143482005264378815975457193842185511078170816077321061648067306732011603594856266576053710433970928535746278756012593952124656881272345460646679545171260399268752262093428069779495353102242027695634071751008095975321194908661618143729227941977502580335406979424509417148494617075680716127894942270838777873381950383108259753130774100088785937961549763896664321962757624880309827468281781385698492655269785108423347690215863009206348743351075038148123948177269455795183202310354981925740214050947493624506850662780532934467928558955086602699352623923337004905653957256631235892195843599013483684372914226413390858958833008687401470378462562089943990900775072175188935431257639761802322388992630890459743008544203525217619417067881941007556713604099932408659172192744535127462948378085704476210096653814159319222670192455846862013625035856966417056638930586136263635482439536542905998190047284744021351786818050216579329268574534849389867220535097586405999718208558088730864057062960106810015774255602335942795967404223495365087474889830926331435039961729222652839224146553475846318902414922528501286815914020187059442366144274020413034026008405302557071383180283354251782454104757948846452017260913990254832373308303029223835248088893889940361559255838476277025758772777558453625777844630989938871767050493808328180886647405706424649680239367555607442130149954382478045617170498425289567852484973863175499857466420679505010641058825898026751317051384221938833431483373117365163699810166046594306441437350803572270267272239783467026106819958427440381717872781440814362319779625833453440644101231052084215814910965564483146874929609429086175276657080432642019117613223952710117186643179097442031601933310761215448039081067507402866039168437359826601885352298577857703811251101915719219416205242186168166837080394251262229890758344293302683325459449835104051334346987127430380752912661414718508436826735254172334308044408202921122319806302295592130997301557991411979434625490301013651821233568900658687913413580253775821064728499569651256176277732617716884340949407739017302355334469335167258525448243901248590382595492036224990798913995315399466014970331705605039112413111789236972967677766229119222614731294138818857527105160274216586487520260851674638770712589647232557730319178155634897289551443841470178506538700048714470176137567141432046822848819797987744262079917074676466531412060076260801171894511579817121490354714708133379881307687677805794712209619169804140276987363364828643808564372530697504614071115022713543106632095207558458675525525294802738415802284891738421885720987496736800434799467067775319425303706699216939826703268680371460508970637860297420493291486663827842609099883999019168586589770113990082600683798615137776414382425522793017603877230089556271756961111479256523829916846933015698623415997808908955031840136546100076617033784067280309910565954804600624130343444698466072976515696468783261666954375358239474083388278377527761491220686443993566611534370067846395830934837191612357387641229776477786109340692019413249114543384202845548720939411836093209322351219745658136867270625543969774353769608419616644706117627729375027227728375748328710055143091271115724260228925909424732236485891816092949348470086769676953815282334628819069184980545919706424351664039797596202579188111717857393549944348033316075872276179800828010086375733099859420712193517324689464771932290716538347823506799540632512505100989674431314948859863790306517834440550128694255746650545183595644952635593886942331882307449837831004671136886462342814847442992461396965929940509396472362185855321613192379004436850548796849263925336408114012101914582977409904689862073910267862829970789187692265245555946521972211373475264952089104090850332299328825930279830177110797249435731185173198944740643345353723208398596938365857174552959792808704140727027636912259601586223475087928165517230338833971010073637279065241803798513118255690074032688794660757182003489938332434070259124618542980947945874394249344084436545820991884211561772699037469636036519376524031207093111438110636060596613001927449231468521771871918237469704668758022767091414325784336847699443267026688320632373589605346720561066225368307054819251361059214956785819562051954199066264986068446922376570038373684080172628507333085999039606771430005178362219318790028757042191250100934400148515999269286340666238780518405565067286207899342239585757292260916711242649372885924917935131299570026191225088589141714058674030422914707565880943152849564464136289377294559806311778332911573578840347277181976057296981890139923986883004704998901291237081382660447613763677378980541137052385441380593701255713088047355998673119149654702133858451746838134119455747521379069395987061704238395452257129848996294461399080385886136886658650590209544612880458239921790367022549350831262711075530914672675241126293635747640283861478954451726017711235729340472670106662780510117121359326816821667718933536297217421376822495534560098390288427008297811561830593054576759239101798201960311952634626179505574085611983928539741854659398062430093102286254074396825429674179626413768312441861605880656133193713594235382483911049017696824046239354000362916180536001809431370277961373685824366783819209234593702954463601891095836666945476707754761104032690490225861715271805796247533997977516632994413721270193966142279752686474921212153901726685173188702431338319170454079069159315739766944029404475965768912785686743866369301005639698884094154729237268041050705501988693288385144701286208992860294488792261478273931002415622487971235175480353521933694725091161933204918534181251852724274868367835893402395435306802709913832627899749988520238653773488456228389306081762552290134047419045775347524083870633830579797136879410168304044045457599826731989779041402175361493465400795701845825940678386675534118157988718372034119497599389837137540282886125598207224054213324848023057531527443216870049799394935773528151209832119211474458068551869597054893628398834120262887725373229012369094794007683398160506763886404965784456433197406479058136886786504049282882853622330388150106572621905926997139960153190801166806406782310188940242611560785512421636725709675330174820085779660801316013889067289682776027094017453300318545888166299296847071033238257401127293771527099138201659158866355736695012593562810207012443079308166236454004145851422583362507444119095971702284377639954534950303478984196593013683738571981061837857364980158748300424418587799339990301212033332291014615282913006150676872484787299188041684954346524631618841266512859994175343312908703946208767609378350026214906394423735387256821738429580890960284381179839880206080677673567669730646029034063823282089213980230471547542871586855851607405923824554417385675756202591190710171758481646435563455597576597506992473418745306341950814607197520928094464539650500383117419209137530913875103847872069488465446435147855715577216617403063809834466032914404462064171187700043692357340448014159871237642348963885645009664166068795294383846595144290552122893131320644502914931609536634787450850279583951502582283079942935559407816257058212979186020966121990845974000457321692260838962766410421985634930254122497371112449651954165631049402276477146866223427972662323655032120538504438483174190920815905751287888889301171984053665493881008710463373441584622885751320590466109399862021841990256989818261441415522644782867248711939004351635850310849849632844110907295897286030075738013759109957588280820215125531817161836454098983137367096778359637971372786135955303350809852565417564714042326148272906534746432751650052894148998737451940259248469616419661787952607270420922703063307185692353364157122915225748231514005062442851796925372934796496880010730158118068178244823238115977950190752333992202225562226738078257797981422197286145378989043080796692680736426418244975174668247892695502699427712016911084387259729576879174451353210913869432720520968645324647402997107162639351993840973101133973398196277356239516984609455012512150745014870471944792586542704497354365360215586465996126969994936240809802782573874236051310589771625462700127221381527330812612751077397149582014609606330057685235394649624939730568631291929674852568432051485481472762115710175194731164731544756544894268597143065621970824106097521004934010133018151574736877118752968121719438982963868109431360505433665873819918110575176369836837551965456427541193451082571626876984149454471807819644591564736647214858434156679968341590415892490243718347862833192864986989057132736930841246989195888613762873901429584248671216611823097657912768543857272443192027774676330264666187143872157721263901289135304070260003075001867538637747973165597427211033569922594264991551658214145943368334265168826231139121973523081523133377347004284009072814476612031280964655882508752785135329213312811704532764712490968023159104678255042570935541099769520448989307470502111387653989877078809084411539208120961331430896832819664229487646008572448540588341613023959597804654823769287085445219624976931174940121142930215543161468980687784008631457992336782129690627900330058767389883264444905643272303915615686790517099411477798569854145445629479780462901686522299132219643320276660946148575566994939358259433782131327779811508898774950279590646545945807253489377125719619305638293689625082913005048817746792391969488571147136618817313001823279821748554129764374676810542928789329191113171706682645909589714247574111154511479903011946429521962080320496533387941476130870866801984901752156626385580192616045781330120560902370839090279948410041474352561612434995780561591333222066955859741863184022082494149711127024983195166126953423744099633310394779886907816059555209645202692006479818261448944237792161732609159324929269405495119147880416678875646064994906777933324192730373345634365016304498579251524217468515380836915243557735132403618934794245992309588451841473097346646810018895961300638267187378568329819569250373319652086993626106192815449542101889100802005300013290906387872967698958617883874534259845518235748702014724569065422901372585322188753741412303705042920621380321814851761413411021667918459675373399964849011718450567502943506575034288603170034619252573551648120679892216469225436012063569075917676686573692209219316637837536204374056739118886503285716712325693654342030043198460138495169667925140882898584951996583220416278104010315316253326720299257352740726427857046201385321876477597807284832846779669739668299762004132756522529832264054605314889945154957322741002925746551211764819178673554126722387693743332334101186386528091645396989159942631619244282039219407256210925645089725889049256458255956912476584308210846211744085874770908738843550867403450604899319861914476290426747507201591272406492989374962039513250677443319292108433204588922440429305625726724767284914639979082167154439555403750660540127330022555675902193028737294141261445926859075889515258483567284895274791121327787135632464874248644859194105875647383036618246237454394110594016861402912575628929003309300179548372015550319364596453769801581057065173044211834864743704100626521539336328819743424831839375506320510495757378582855257517799059709707444020133224806557127599379230988211896179868319664204663578328502640707575019323114619090766360992925852896769408131382264225696907760816713953265682124661202815822300945700309913488543227662593810352577488538775954413389333362434890304050421299609949659284541310985809439241603675026681027948555215370541163974591718946293114859753097287694113886422925657584000645036225999520769816695998551041915662063457737798616954441746796874199156200282671500331344477749162289253251914210106772190407592293522260395719610304837117568363647206117150400300527517299489611445045018001433574418825837279374260433875188922740999325096561517704235361639784087732678677592606774680721717236656921752830728583487595795735316435742115056092761571927687728180035747769077603126977885258439133324520511661600314868873094795603999599331706214608079515389124304124530809478548799649061088455257702516385913770553207184884731772069799875019640400498720141546227028311792194451430893913043120544285179183364218175438488401877191222904345360475287100629101276352252067857216400479178017125832642029790517891332578910316933844459417438085865201355017290749739369597837515055096682296731069797504763909220923884870784679426293744719402561725401341349094036893021342157145452115759014503614885925406121715071572898718278289878815699104155798572675012769444041905096545903926391995170208431509078953601184823353984211981333157797004782188342280076850931476642694687876667324367704734130734467466522959775019357709810735313253225502991029218503406770777830259183884364575937572092195934175932412378110060548264278704070138998412125259025616148611657310975815350935296685107336681648447876237884254542375084715759440924094804253249888477026533503870462167227396940771128990159965442970652168406172535347035229979084971952087684673159739008983895986083678995125671726246376732169611753104878930889458928570097910676797911450719890198673214747636438117584687454650587660268848323982340712385611974362876265295814589094513233579051254923450984460656988132514264361944188717383478672861409220949838875947691742544029717673840169294740012748624419058111339264339360079028545457216509826073809592575230522913683116403251772888292243523856329852871773015688131389337137908306732906120572444505254459644136706969981596994104460646790738431602861805894627381438244038739725391747335650423126211219854644082591352977558566191511103967858667192338006813945870658135520782460582712637188779640250132077614891875309445351927958666374376577653521024390909621991653457360520345336445514857966109919336103090033846446287061676773312379304166542017515982406437213432274304951564594964602745370449443815859962961059996593875156194954892997043337128227584466667946842973399247769302393322499801641624434940696672834146422703472539778704144199978661206976608214669887827514171149457370208438208263098447500888350341571477432320504152846992360795084094238290746489268624343589865566550426933055731755802747891837094205160017565657361050798128143013100809204203584598748698177777744048226937332309552166533787758383406188121837059890949599802712178068107119441931506736632196074000320237606685950533695702225042662890004638962016810187650634678141371450243066888430612218907516986318683314846371679180495051494375630563304203801823756160868115376810486785835725174068856117475281252788198692263414899295949047529081537072764877552890040745225498493635332932160806264060461625264436935400153176400373730364078069669315076384825284909654671302629990259491328367044342163565602917285058368470417315447406548451593905206864583773700023582420315856085708179982321161121715586154841657779029336626135692270057234693464747586310919668902632755186087818754482383262311938309982874558310855707052762479184689471091179747739160637508176820613554608175039370288793752403073551249078410975206801857048234595744150590951813699482535441097679001081519486254281268549436250429680036289609497117537696153334361475875834589916912720630678836035361856237462746164080843135151985886618441317820603980320643773481637326444449545073446596300165042026494124268785876269496283642832981118144135917347912432007980255326198056604313199666438419393192225538003715121936687801468280786357780828039726858578163296772660883527317818005833879188030876522395335625771982941136256078981873994408761929985412232017450429179104941134495973982185919291547015305090543411665289970690878470771907830263508734964849441302076767667935897383241863360283588596696359940045053615664867324651037320217031556536348752359552553838265822752892112895307060603874797189398756511691140678257148074402676425274686659408918546887266769194444490090354050303247749157438026957795393668393821868956959935232617510078314279408042153004234837069428004460676261339793037264586768238121617677013368096505187641563627416811534328328785266320759242333483730984868563503697450786299857663795087614520697659562896461382746596683077780326036279282020784507010958264062765023308197427810196065482470401980482207801274131599267287479197610095595467859950584379007079237224097904705077285246335903775059438377941959974443902441521103190250794586834690307717267606097684263417858413696916973077681804648868282018177151163549563189476354048874141320338881426804036746238531595634421820153997849476633020175230481154984692267083449512543262170743525208708362214091170429231478657060904141299862854341745801116355102385180976790060609519119912954817475566486890519914761062224345882272792109869241730269771664127726172974005194755573351139067407803055808530739690475651871615559773142131716729331144819157997316752148694389131828852035940022515236040213243692124572539524753746035050951624475204623055199414746672876752370286392502616359526555775311445257665387607380701185163846083610891671911282925244176162792091373618579555313976387626931852096245799254243980287787540689716261740074465781706304212266279398016559174235869521351420398923237890419160645945031484604056342458058140830801109864604375649776758493191603583224306216614652380844473147873136814123634840858411554406700217376837290358435629405458880348386404427468538678320492650732024210993987837268671310924147339932668394543676905873787152455294010721108831415321777658818407495352844763340522454746939809728082350911395118146988933255555520214452482300739175588557952792381795868615799671311132730619125693211582493550821516272900193426602036072710727585278438128228483806915348939870948740531217925912873623495784551257452411994548436030567653571578788127416522729251698971114658649198224736364486081433351286956644091682802316268880489947545932576661580147713546406232656311801811075643063947959500571329767406482383544376656964751540904525559004614857907418924390413947538141606264190911899478715686157910338751829197899764991961652512712245136459206756867745260405284009581990975817274461819742676014255859688030990511797267727636545674023383600081781132130816949292932595184383865719759822481479842105463445448883466268657592583935620483923867831755874549236904347412076547226575113365235218487129120792889664192462817131425495146715521815337886650488923764817477083677474461663081358977792684245922433193270637628940129058512714151151047597431886820966529094353728772080266794327816491402185580702632585292591922245030102864700663054160481680808675896727140865572416641865307984381482047794908952965866526560267985973469297730300616064995780040988685437280302506735230439292260050876205735610375347975125657028934303069029826883276353437724131266041681843227865752584179615121194568682422071109502195376595631181056927407365795848691728737640289062948144900483608725588359670089376549011244221310937420732665912859990388924977144975035807775826127157187577017177966715487540239907502896426189003403600574413770593093724098119169800817037426149566537221940985695741247154284509689999171086821022139620630863950470721301175852270921074232038807698958580156503515514010234550960622058498644883060165235618672875378410050568098301755401669565674098781460259277980873622307349542735267719643355918645743485891745434887865607509339493150294271275692361969393173316775668737223863004598376760861595071727524921598031707767825033683891398378739113523218493822064054433214783754401253532031641975693750914599386990196773605995396018625197204907065356640605996887292430410277819369056609111177574111342892774931683248407021233569086679326909685316129078540485807872582714892242375856105206479112457180547029435074120825155689628852318391580323988028357756322670828283576623115394062065053102154916768384815508489809159356829620458029096309835003443182813982244638775249545118180473783223646254422744830500723280811745931672631324158103436064183303995281342601571740616153617592657008069464259321542071199934646470045177128577423757290807922113262957706588697901390462774971017297160175310519809029458250285910806055071818149444798188662827164141774695994360972205249877382258913648046451266118778049071012215553542640898465208337054721057774677839957600228551654057183173609068863344544374316160126449749445523006432954580954247884399758502508358462156006203166484073491625409237404427092695518744587879680879483007329319052716277987995028168231997007491381872989394160661545868256660100308056622282870939132953678718540231185468404900159356268517363541352673010427638807183908807886344735870724579953818831547025772722195073004705974063457624571448653744578827007038896420275477373138517689997333219941190967743454066537045279668454243277151131263769487748988184987978293519053470823309575982491948731468738674356443845191390269582563531483325167132173451147201794615224025605958872860078840123656520867432613033858556480078254167496070179122116308755797187298965855836808191244180792224082392050049434967268909217252157644083139271586118908347646258733068371615385818948494625144457694154648865471579178713837619869930911070124434469622994716127097107886732252262516794161663732173056796007724900489736101615121088185512468611590894554370627421024646139587093617726400383774582676493428868281727798491942236767736723103039386525946580913917809022102771309779448891231545230503046941618012517615620319147431175838348006668628996132108692337419790476178227196798074476687190730793816670942174061778916836944100296635148382610346975762764221963549246301484745408414880711809673594238296218046479047841490913988010154929772304598552492504423951826558441002011786316093617804325388328020527382346227481665235379014671948387772111175207209716132555988698728458323604963830366534286221771310647226149515485997321411412599008079200778896475933460067917360020418239404241373874262360102910479132887474696976552646256374110498592690973672648383581726158764823087071121178092941773325849287594965218582207573212580890931499566938267023989201916973801304815624540727406015644835715624288146270255432077498240654640593666675782908635720505410763659983908796394538694481732274030179012221871109155571504357995297584378405312270603853150999447178502761526530646780011242464818685143285975527605468412558981559873985078631061522438607058811777039678694163484820676466916236601541971943397070613403013603354176919841723038477683822899819269517544893532631979954969818943988576533819033535042074180576943264461009256028090590564649058500457602310609724352934716333876842293759952112780788228157239724182225844393136243706382643561369162155595951908372718996178521202412377542681446756412811386429984166896058191671992434410497412063496727472052879839967027554358032633267778106360222756420529944519756651160849869311333331376466486715400475929913300218045940117405702937425094431467091371355276047634678203415569887515230654101450829453870827886661144915231312343969742707059947610246473881738753546415841441932435039246280312937050398376991700147603275594175903883330880514086577268403163131583768877885656620520426676060653586704956160328575191573771810258722145412730300406337367407666957953888286924821915613002250969720515592485449311903703158361281896579604097600206671127734228867965638193597724515923642351445053140903286332853474873220015607057811969296212614785604203908876790261493751472902834151203327059759662664269408435294051510349439437101913019631448640597896223811415734114576438414538873822758877054516143194015506565752736569852416872887367028963643093627147624036622773296013393987044826731684616892460912586008178224128955135233584648113975283661942229552272663414331537343301226623101884013624691737985237490276260182371300475461481799435910355992951363047863526132782216798734895635878321492597210119330444241801628317627236315512331889243462548513085411942247517868759774587993933105951702779776478544263766476124875918888399202345078645362614614491169393222984723369265924343506329279300004115848496464958148090775392686401043768903250623098822636064662924408405158432903238645419772280552577971333129953113003863545485764338310204688921666639412526250006098239041425746702749738802684147159638095371941450920717346648105611388811380450235895755629188481121954585015329193394535703206366996132388521920630099090985060755476411680745758018279905725920889797048232371252798712998065397377747270820781756948415013218540106343229260631766457988883902039608155093155768015845792374995956916187887289289371810227821134910280344185236529016183345564310361822233615282242828051742781836949847896198061473197835501163867586086161291248333539750742480294014083602402847122904907583763435132316181608760540833172114460331090183731931967277857857950154265196640618726324374110085051227146319680852369074469298988919698270923801276403213099628721718399140826851751918011744079686056941919787419220735590262165509456894329692013730942134204310616185766080648683584522399409127947967039311928504367903836558155741716980235784256288694933785076658725545963141563572766137484015631014187625573672973503247716989194266261646471568181825172923974374451996742565179890833340309570262282422365512625144637418935544420810778292173585265625271618989414928818664735625311189401496194198938055727944716596358282040735528862133411041848583040555731046698101262186509381695780624695683528333442086989242424908354978044552140155252828030392016615395652656803661557924781407427671617543390232372167420132048984170282230014588584875805722120922592719110856165077152892659585772611264550666777840564653256363281408831622662647081489476153376699553000939207813121560208455332296138648147068059905855729122473212815592005972442345471849272036292226754351546998874757486480356583895591046864725204929664764987260475992416265718492066092483401893152861822899026917161015629151628259466495669650047088158770886616443517591804066200685514025596921726784885272584437144603266631169769376628546465264511500786790695763881395465161436344573810024987143832870816930027426858471936872859915614475106302353620180366675667735743978636957763755497746067794547423376812077435530226530617758579208535331550895220564312330311925356441537056173826439616353022088646111341559647523736044204925006136187838466127964023376156415659062327292713162609251545328033545660608227457394779556579916525026399270223854923772798933759003407157786655688064818261209108817657439272750850563410153150088597315692420477094244802394596933198747669943257782259669154860265246521284903124636548259951372786521781928311257129563078235447015278450313682121282713732607107736566340396444462773634553342471980092835957891238282129701409049928540831487727309370321792139788275654870810549400858141559140753597254577058248041639179651852924490370939598617417690214288847403699269814685247368931629994544813930574810168334115138388635797253175714780075719288524868814666964390396318400229808353890547128523213630457154988245455320026153620723628597849703297803684214041559475201148958745808157819852274435790726223820906557144801616100587385777310253478866298888421362871607942459756964099198147150267161928205503258112888861902628835981768997241489031177042665931527229995975508781327587258115014357596955773883780820272614003916725644246921569469903098918430388699499259704416915940932219830786017437985732245798892551115954071981047630734742952743299666079228998356916469293085315841102987087899690473281289366911847542955711623978080008726786150310511738782419077703568692469083330113065133387473793499668979939838202194767333392769012056382592853458514127647828201105594302269248075671933923612461857597776742144064571821991140715757913277766958648035289362374871824366934536878709530267243919944467457588004787559812391790132777561665545851796992182297055246887831120048615214421161862862136346388417512447045505188019151974440693912824107060135789520723418517535623086336858355994887407599348041694873552930148342196453736035216652611926334922764315212476968472410633523579540882577053099788756161469601380480260923472838332955346646483976528015901716193477749162513862087173459698438488528577812974362686051180117271032659386813288369607544149515867671999073516723479458532957727874723385214082534748529497857411436096157644029225686476241681632325091769044890032869479265594632884032287788706329926766123251306051728769501040476449523407083993005729255888172492601456195917112523668445256350327202403977775213397019395814784711521608271491332371547123787080396130918002431474381595940368331122637154326124343737335160370169007401870246977662719710186106172062103014074686351165746147084566569495311727245900250752836981292273200566294445786120189581499751329648118928664247098086479613941114018394252145739565863474450331199316284042204236621073554381759463224856927973553128967494707251798788819675373603932146150780001664229813145608564748330668338584155907241904415882469352120113142332855125561146255686953371472963652153684570641106770233338865862437568592755889787434958705568809380998627328599261715252806453176681044047943892729257732476140287655375022594974923053416618936312801376410533251717010500039309270195203401688055033045587878041477555254558313250481315216428726585756189911550836358122871146632857747188556627794384568808600414271722661129199844106700224996440759922791002950957936885891245601722341309306913584348392575495178258662267809100026726037273999038126594360408929618121009255902285700653410106430212880474180440903232574817556346384107882710286665618732310663987538369129371655936720206684427046431273788894332571348781195699632435085722444657669644518844581230803627758051319048053683927161356822425937874252841440690196968870784036772952479657508458069938031793744365670919239202919913264504538664844885804426517158292172398177014238226478958854166230052830029369939297677159217415259304229792719865430232727555437465122079501065081346072222357318386281988875450412437904732913261212374956246363588477863430992474987134302071752274939824610591631683400600798132972270268055227288881237051250455266789691820276358007372153336730925214207027008076453925030778941136380352554686832563512463112922941855859164277649159392301098695950205222499041376498707445170058128735598187867999379023991115268719531295287005774100725260247244694711411489892873830450920601360825041699848770854971544206511248473750902885922241897086523484155532074049711969642405261204167361505393574634513359197644388868754684153932763078715744685538794091859189429407067086878141690081870581712062662331043092053681969087399646749425807340851905281143601566468537392295790795693107270266957725428714565818729479446424602679861192728518053843902822978172704375333325582986276141206718784354157825079960919217144754147586926010853667572362143117894095030218154621098808268135176708934128453374265098894179903804696193266369184201023462384294808805047913636445809918568389456923020149630302522692507385511536958776971322280771703546703626919975294158485274320274950538845861513354458316915921324218597997190604671291051490101343779729072127244554218307906556800858181552800834977624467853612997541002888542382844422966699505469003521766514388194923386679591323837522264105465821464887898526549401431197971543212782720148464019832352489815398472901416382367249155460657559614575836629420366092690382387484193253848196975813495010873408860779378407705845138654772085627688042238200228695718873177561586590900769251679324908058084506367583556927982667762090325450801268423177564739763004424021376854906623513121284836294935330267836496441253495455476714868056841345738016174473424852201950165599607235532097317346087139249052239062430638390595961428895366506607840224394722784897324573648011835354236531132656799263216458868350016788380130027666667522163343199767053549826224291637018647901411390391049704261184184542461070673371472573218071714832803132173794491040262284851940051654749136228378949977583478821988177516297598409882363916257831725168204202437419634530057256902645876863130817055742346202139459367686003566741507380947494788636166562928816062476948229579404920665881954299687471502144274972415480235844874797163995325182411385096478338442718487054035442150867188157119189936850540364692303009812825345510388939899532751409384375376438741243930187436544990726616283638805508888112190375873383162107960430334059005368140218614573309381240010586320999302422896375144859851629382907416303664455509451349981587264953224099925671717319999756758934769125027201722685819769780669587559726271761325666848698524451264129143899027701316203619752537569713004513657010116133522152545053859872797045763551716713585314142355828936293087511397877600821680357816068298362186707953202462740354610217042036037953198953676180381398897171208481731179042201021305803686064126672932992563141074389047987731301439883376066580069213555281359745007811808788920354348914069257207188613550868725623263547724776965436108716512561100631500846144510531986795291016373972295583053638275991562530118513781349552141738322635544163560781029740673654755585515713529538974646835338234211610535842743402389805952871509304407901981502457580707873136451256528390729316111253198581123856291855017076048253918706961048587724750921269538557930589648440070086202839246511751181846552673824759879662323246695264637123153159812887573793401419780937806353730435316754870694477102421337142124544073093751568537923345270978495271545439598924812430143785352063046855609277162854433484304880566200435041994928951913757774430268827064278496175511009108299691762919893159483330132917147849230297270623093077577497277041268568667273736559067466071161210761236703479152154572846547580488351271064437151546539044279066333226911658282667668160664528132880931828874237030437640209468504443202640938757350755006417189002431186099603754953673307111979978894165013136233292459813407373481338509481101977718179431769993728583185202832719962681496748539606457137480526720854994929256091716382947431527440992280675269022013507933302806713640142394702370757584192987354114325115961251498028783663122923157850666741123267583039340273389525978609914541045555138051241057688046317798245670803138034485876069540692155355545051666129868916132239088324811841226824083643522340372481004165875554965019098725694672291730649312388863282434910552589592066219897742693002604921765523176767314083241491892201722087275297451844192159542886807852745397691597023600994414601436677696236525078517938831028318518380894329508892130296260056991301596562816020071475811106207234286064498116257869484814434311652824482979204799252911637025589448782580802009378270444983250821520258278403141197759813316428213472710495723317164335542095234135802882829601906921543151586771084399241279462809081490052192375759036208634487787974204766679662991260712975186942015119907474058802930478350787772646036783014707193793449206030589688706080436852445622536540258213874270247689959394523502693623007804514927487796322663388947600552103352707799380280028136729330695165823203903082823329491788202444705429450080441570015460173839308959446564996606291355704345516747491687981025733907153604587333936148171771672762855944947014563956267402087744903779370041316492969643630188496264976753215471861694361153010766861366237590393631009142795888005710873525681084891844024879715099970478805653099748265082145478463775647902469554483938232251329838477124181293603022165082026361867074521369242324835775812382645413846322988068891572150121218779738532830260204073011999433745267616905461533687770861892397799026247369159492495043784428901676390852392454968808916274268443138898829961062998315677602620766426342375149031170978274305200775034132101382358233802554191516009900405972317049952271281901582775215519639322614900079106983960404216808760270279946945651297050916556141521323067844078359331261811696896156946873751070200497699997249041386770653447493757079613559505430971000788434008786506469893895164427503856537980690809499901319974012135689649408095478034447030423753628459497980193885211484950637340055673433558294409696157582329419658473807946950593644253168995750969026615754742806166926608650784601421620408135087222071767160905230179050898275202485227719232062778492578102016919389753979973156390228687687920109061213676842593109375075752457023896224140711214213845171324470002662775395627480649873071276030699447836942949872796102877194538713944357026819248411844877035695492350025416285147855932889577321669223771542706598055462576368204754590112278592538640294212028291733216288123587552332852890088162888491341600790681261235946363837825851324544363789244303706031367642163697022784620361989071208854210238061496323980259073014037283994084475571018414347526687672207669673695401332411383713210119060558546871880876624155875816296455825083769100642002377357165771600433902088097736256302135820030052753277165788022424744681360703966375942228591693162241539033874012849768748518089150168088510089534685132433506740415305438250670521864397149421997677715623447770345236867822249455223485032354339805065182411824503943075177168610566486043377219103118228248266143455128593753424679473192078119350787512750536740451066265515948465202344981369683522736528097833291422221224249497432483547681344160260689787431564561636772989804604475729516158328006797851464097461672685493097211061325790569536978142995670625602051807723742826837863815247475876550237976400975869596886330396994089658246468935860809129528492542294271376521556009682335243216208738942570532505051001648996632036542173020410072094714660525828311770441549357892198109372853654725412454931576509578796168076680504189294069019136788175043188540043613673588623715895241209342542706619273381801853968388518221448835488808301413867924385559157622111665453545267970839990351932401775662692345539922668010796668217630364239079766023008453469112326936718361104729167720910232317383857816449620129257735056773322436969693338859685778678251600871469190370145009343227443859996066401160657945810249955496233619425601505550888721781216827126309635615265100015197075202843056958394032817372470411037218854145567096310512201178086735390613328280261247990594857905416032370729277226369400131912724576913478414059544451096553207612181640060470269522436138439819538824281272082695461970114717704929916076736405161863362197380312068608878577202081319378242521107459994328156193235067870735382805039451404608651195914176637474038261741286450918488974174051931564641142689633787553125155672585010049773685695780201762191740861888689908861622605240436015883395254670853744062274748510929364075147964418590027346523373940214179215708174829924161051632623500695184966875278603090158233137064048628941420012403414725695991583851475711112434648688782936865426436394815227325586186469356247793619823378754824939592706088904548657802307280512927269205142516779508780821288261390812707447411498669197803541382135425866742522152694705910469383871181529134818356929598454689263192413722196090508691417420414976064160947547936235318437891415633664999053111435174157621047808477008415277627289802881375943808929822226298423217440419215426620957696532183324407294015667723785908858983907874298063272060515891688763782188428914843215498296588239227336122546811674449797043954360249633277019437732523201926036760303115036838418124278522750735991811893379395438211166342929489745890430456290625952518092395091770911252236846692828403207034040793537093352820232527539558131057560166057236631545097101301754650976032469591137369086402026060266421759563085614510567256162309368467859606852477891787695936146679942743173508473114619017608749771137323459049859730097542766281011664428062609563082607651103803077215461921043500307267211362462253560250106333679820574256088855178726902778547632127456505681496860108636496655520669330200610518796707620392050350092102146989447478156474658270626352471651292460970143507686416461246513009205318808607167931930571952950492854400267498404195359604952034380703692830170907329392425659213751412243189015134856287282013810322211266381098978291267266602260435857018914573423264596155689628304347866290195415688955560204412689064397920926187698521034523478354312666850562499193207833339477138017459765144179194057969844267548011818832119797879603592538317715608283800219715042302854383835572588323952081004396643307456515550462297696015731401202113515476780072637571986285816231866120168087672756630951941663811491715803766402168806875365054134767213899571008904753198029440164118416945466430366582641361029548539717110589473143386484035156884896149203928164450735041844319765531475229934913721364147627058001034807423357411393644471264124351734790659786849002016413227244032197695611634910532330754213888170106768050339629570078896016251961055618696422080054902254858300079786152118607634174925688496655989722869265161959328463621336706489286412352193358479359571627318419943504068989540567803623675287631963781594866359552836593740510971518431954655351994196676003381145122234369702874127573244198134221449757461228510120096812274525884344395467548748122225356656093548404240057423081054407577314538903023220485167358092485748929817114649593586557460107023486005075400648799893157754044452079931690753346370832999701437632964870484979360872553973917800371484562738030948804420460576665816154945000372244999299451856242420425181131671554972128036725019349854399038522042940266898194591601664280448862021823705685089983727516386990328637664496792008849382182292617706447823219213119637541072309651626616891715697958330943496736844563295020771654271373994584739317117503145765082495208090193148944290189620036830294736932031661798277307300806091163907092427477397483701458824109471346385384209968828294406108427946774187685279784400788281119484147398167332640175176898929731609499466969160811128084365836897551599945813094017578877646339781505347091841877229035945879031803413185325032218233325524586061311526889719946214488253804523947409720805525537294300904731899439340242188753507123928259434921591883248994031823310927414465425095998989049335067133046726769417437827068483731949304210698284836086615399271199800253914082726637609976368963445501773669291005798853647265912015805284341653087460928379002247145245580367463199118462556603168827231424314316622589068194092000143080633204118577085305943577277711809565540068103304269705707314655313324025199472437597057048260014863535677664797210333054953856808992696515200914887980681664044351604258191588007187651286524627648310604576110005474356860938142541500409918753808790750291543297166791956067119305374694860769633388076195555451204070732718626163452120642266215810266272365372884332222516701520118197391290519772693648758333961959383761143850523361613773095084496171875216643658425013778992935703695521920177226448646958542654185221235170845590780470811687821790723263278105375818990424034275007145007416805649867848824754083072006530201539458978450898139595353459506049797043372986541453875627583596772264786700854720485377820878838157913632126986266671718207758267384358379450729117385669888377666602990362120181605876402171642998433671695029286202214661371005184867919242134304271407228388591987530026789509185041894471786102910922625773670505723934872866445978184668883430914485859486100930398786101174481211961934993501197977069483465017937584361620873700613869535967872276878461911954438162295674683309042852090428102979397537660721103614579524499884882937472388761953683187316725903084630161344170232297136856014431116383760991940067454737267701505706062834547033128899694406203345090313478723054715379221261466287308394501546427427215392611571576319122880696270483252157121774819057943625616335984464719638956135247516216421695437723127296891732458695027806552787691840400091107690738667822424539557679501457117558025993171461640671613357910913954128883367991586341126063424628099287450593402447467884960198283095857879026421096618818601659807427331779299472999677493071301142639752118771398509133600988364239961705171848740393291917356263084084601442867485346988472872715854555673906589922410523348363005143558182858535324458530624318700518462428877835935943679537260866025705367146168829553154438580718630629174384365697606938670297003053714576467718598453691651574829957267674377227346323953172724073631652580408863685771483992595867106146935649307298983595746235035623751386667310650662771525510251591094361590375348625325278617556686925777636900600784483782769794945544633949220740045643200370173577681543237619402481407925055105506525363080609236249047146312983237139200862126902243416536111489304235425004139698250426295458518379578679066297476128637963436876626403988947994800821642346713765005207914807677678285496495749255405352702633241551637635702232910473792157027312923590633562712370660503185623594792572963189867904496415665795900507431471454785325021958139229886157452994638556491622412136850278888357124402741948868441497358887639756649701403635634929471390281035196044735290923576571505737358435858504514135622386898231621359462519804818668241709825040392040722716425492047276258619709097949669050557275691829742919111506440559744399428147714962115971753724624455919755950500279141916419422614008651720769887205187053853103128916493657191352792241245047617408407457298906077431106065409676045324891528736178535518398507904575156477732829377492692909441601745732738223444920477642614946958691832101192847538092709991230275357199640765855701229966109154653354557895214774464996023166160913010046496445845091923885785768848202695914484190797927545398850574652298130701220322913181785775316796019435022777929215655473324664065357861754335422267433805597969373430282453948117705366841346505773065276671259331860110295526502337349017415980868379486960163405167750419958547760547392302802220072252208830072686733207558898275169257463951068763490722646320475475065129373781947617611283561287175676807577566135048255356007553881598557745661735097111208764999413484544666141930378958495761281422969991445437693104167318712727022787349233274539090498185748729105711895560491695721399733666079411229934299401670432124488113440570502554488155609254164839765492236892144853296363254917815475877546253293177370666738336861574322246051052344622673496824453186726539268411953493931879004085974647507406249869334772839125885511885282251839205161943517849620367176424477702942676357031677698186738152886086897110806403122016208062459556855684302854881910637042425058651595468874512451476492139284074446698420623229929284511902152001390044572677459554976416983843306005294781155351484646788123967743751937410194674370861942691493806190712204943421858969948749384446523355936953396117771728830977076112679650640740217287650196836054265137400935326626271719069355613451423727781704920556787361357818826606741084985493111968734569016615896884773462488276113021476590916773716218819331084563632994488260034009423326287595703009896866281720640074741704541019908656438840473265640152544521214375604238290713040995156650527874121341539513230016409142435611665195168669181285781149378849769922815918978569033964545710847422932122591686124025729655608363638132814538013818008663532660282584720632022906993166773355650462525500578581163880232407160012180244182355867283279571776649421096960242232481349973402031085399052402377248117644357681975879930530127908170672484237629337929747206012560240977570355321155681294489044323804457851199489914914979695170413098603927311916211921741313797861439035839443001105791296315373332163942264223893679786611616803866596346014688910688742988652770073260499651323346334869060088506352409690041743029920269168232227278302280305228526749095918592985703251498912567850081242096916751559118729913724749948969604043499076929165354882133167940376673660262999839633254831373436126552567386614010760851412591445533585893157047285951520405818551589725278819592298773959614760395809881961638891477069865703008627915658297813358369930728335495000736241879240390849749441237085902273670417224570232582502383937796340617910122036169976433013109216259880760295603721385277435907399344499471007340384477634277507163097982460449688163099521323402079217921079065932020115968177443362534118849121520079760311506715644089731935103092844654044308267303059829045523097309564501014932582136965800989178174810265004182055581130008422510293599475841306509967907673983793203811398234481553503105639291373034815853169541752165238049714036904637625882404226859138196361588832367708083367652824525896422823262966788278578378589367384225614818628163809647816432032770951868013287746470018247753647371063241587531018692471452935528918408439413980219968170741609633466922227182119390208574292619512622603533533722096254759401892917380441870970280374312054235409714438748295995918522334330763846984698287724846065387826452633539483827585075892678696627724448325893686757979670086404369719829627656217979351797542473099133841967550551489959550434290504641154885275354430888452872244375195823798377346094194095348150269167930009629660655878304743300910793310408858486509472519012489895600330410642420726755195563190292620013676271855550182375228275223475704994213023299778778918006903835872951590549862834263273018451142745124285599232973006851678650804946973717737215133899001719573681573338228791382087609782003543955537458477685346964987926202971331908574195151778753733322592957377986687114155494495201889538557557737222585357924641719823960776238955714809877640628044196543223365622846246493475548858617433963456822598526694562019709252977247540544932191475227478045313653839266631679026571029702623490956873986621324319583469639593064178500364969312849648481757148503468297542832873605144273731479438008821447578742797482826456906301654916514112251999305749981870506114351897507858332664032248761540384672056483699398841617154251838699629440857537701322160588494836576920972405498721225815893696346378835814867213652958862876590443112207426144568496193817670068440203647387339752991567364317220907403932901566057331334918801375584702535313231714359248794256766558785879040913869540298203911629560213282722068738568353491375197173777592996484994126707295957906507456866389013940973154069140147375486742380861489749964982625495261800034333142747323569676201078174908751605006923558889013965463204133858665876541235816341997407245610385792119183084419389554193263304783882350617155013887625866134364628666189886445927210928611701693389787939076561948254263773036281879594093309699403065519500597313303619880309048367524630299512673688444912580688046861845229812379233926602001841399682028222292668304333404669685615885150974072124313145596857729968070978073999741866367738398860630744389597609670133544168939293318072898480166493480011488735341603629097551533787501028263846521331572314947197280571369394478801619539824929338174913845197956328767195225368612385060195267581764273407586166847004704810321036639718619850942121311633202862254828686003106621707073344753283208058225454443252821889522958883082215842850235936760677466183547648818232671668059231500555151680430092038457150320831551692230910212677542323685544025058108373822399401304521548091253328331329055745054371487566602516949344720075734062152185629530065757838310734614683566562317391241288084906970209449053106981535431679171107377816973572961999597850698076251953813211662400334895195602478182551558791601313370709503305208283786339250781294978584523448833271241030200616474634158666288511681024185651329820240399396313895843895931929691743694547390668396264810912998093193888899756270959032854138414811021932071219875453955019162661965325674582622693486515273463386097684055785455861350027360113212986698210171161794296536055601703022034986032537856384440239651516534662739470086320814580352171855213972302962165896785153137301974158883701514318130464341485845582614309709397205748229931451403391581910599521350901766753798899323006388125443814035181088598155976179501866648198133077313263129213261109100125575804995161621051167583736109103094370499298980620326075427116752054486507904006036350770114626841949186023318173917518347037748428952664470510180242919813980540832575213681511485605437627174705045236372026910763665568136196693065573971417465731503812286463870695944569602674388040991447405511644812526864014915084114061224962423577588488308070736138466265352041677863269827040139107743885914253694681389277118687498793499746523040250534749687724036616077318018515349583181163087489399917212883669736624605827811989343407967283630278194070536650430316482646627122802182183956263563228024456838141777968876479500500424661011859568549878151474495329039174405951840869127114119838785676551484684273028980881524528086581085290473637490438970014938651342609452501015999769603157773340190222677540913517760423594325428058923850491381021971988665020824827502896850728116758850870747958496417529569472320958215739098573776843757552243105099908040518779356151945478757117436915778642788385315419110437032411995728240624087782806500849579853335683120692573923027648222007303059810558049677739493470538739005298793836038076486443721246067449043057378241383941148413742595004825016673578911272004053205199587671709786307260587426142104877922679356192040657426280514360692098626587177654160841890551001870499111805520066291457507739076394428483102540186704841606117043758719776380039207262991885461775698411841353755422039147521914302341527747847969996918227102033744099859998992739614308106191271869438572661223426082573912283288241633620056409215038213574899046220430131471489694659203727867056042611408381889952041454660615268888037598289906739626704688669738192386077618694818867836305864648109756914427466760698598233719267617713608116263455209918101484438684429481587506727227217083957348527097257310454695716149197349404846190157141223385131595848737462729825424038822072025562379232440247500880785427043863792396830610674726905845686878531343140186288153058751135608464408804232515116402377347894644741513677911288582885417549253430787499287581901297738308306120543776176664791182958619861184199092773802303403747539453866993909985215879424086326764463200306679433750025620356759252013179106342747839274936634828087709702644608750583826141300797686280133542333285919569917578720734325753871158226245824222702589260093834038350851485173298352681964468565012399856881656540975114488569955688638781891733223272393654263358878223947282602664428733017782839624562651220936225255375170090336257644810014292468641514154628421961128317462797061097907501512608148741957747489965956953898656342867930948112782282093113403934333263736838084701973918891866180617086879247395936232158085485508412949306950193860943688976331132677866572346587090769032315085074736162207698389694031780665931822365616627117085234786260155067320886531029859253789683013143658629363415861375258814523155497630995085449560053860382838228215095773621207552481756221393014988442018386589168172094709418093353363567162241246411916857356207633793217422155050773946565159679956034033845161986220001065392651798120165304659609861164105221017121529444343475072069197706141373533728294162038141401091861141260307409935037068830121213838525056224409385834612349828331835721451340668794204809447230929010681452526930754298901356492878785309526749988144075505091317147255491265737226989657126470657530805550536725565123903446399870663449659848939041920236941416060745712072800132579276253790755549199011020951570998507054283715523219944375136052074556334319956811422627236011533921295756092014427304920028531180401193446087323174260975455136778715438767309956684209850101132987009099886763691007970752435401338467741841942099692027287856629264535162976939598975879313370783190156731015754709323116910196486515238033915633983094421948630375628486948403070586752526026934606602518996421411806481517295962911615767099069757154590192835000486462513934612270010228593178049607720995363041371155758740763551863928844772992246720927480460462708489020807957573216158869386718146417365919746428112450366192661642383602713646336568178197555775681245982310150232667449731114587879735386812733530703799456296880445145995367454311612199236890134340193205159827627252309942647241027184222587972732783602380054271210161492410493935660766538061582129232084440571031139084436489778959775879782051123170240112251211701900365247827217326406972475739360284532225313150990974126230676179328533523483501530000873628529768621826921686114311800764897244991953660978295456089545369107099044301926947547260854066820154639671051890950335169462233116135179603497913808472303761271309594189029905640988976037995721902358354318518029610532833700391390340442720465798706311146625544052235139524770740658705932100753753006325353491394433882950632480039196697921012277635562273506245226120261595190063028699866333393981273964941694654191147539920337182331690638492245030042177024505285937790663069264755541930131294152785217168729396241335064467804074011679791512377320473066216395023371066056864488834347232292052965831072793483531535524884362540467173397559870181688912316001713316868236436111461948068056494584386212747694005435492624409939691792829698220082681572608851754548488720353290031181621026433196787202006940431047935245153860339881406979768060235291906680929443922725560929868690098628707840659146621118972927935736871934450867446658084113847499243597520245541964556253823162748378004095018552583083773200853006924488892558151304378414948985380992234974691577767285821771894925645014221844285612636076468417888958130274227284930770261268505208159792895702033016856225953890859440650591750305539931895626110536944648866600968048563502001635140379130438034043591661111379862013096031141149566763454807907191738595214368502519962507008978201098466604077718188881195215708880745494163214793007583527568808678945001268764528608250464373005895041577451110404050460535580253053040291761332668934435472318828569194784659417180462539912249486879538459509504492219136222076679632300514991692600559748036582784129687263693490624769270877509860894256284763791920720450888451875224088629787200400983234236487450652964815872728438231847882564520788966091955048377392057449339456671756830794849839968502437983135830574663066428456156617367564479803037071540820078363587500595729565685724428981117761309556163609599226221586179466389127156824371138561004018234690261952000607555791539384547853454521362985568646862820010305899437699565273679419427454839099252930864021592976396855674755648419350729791612477706391148219586077713589823517503805013774534393438961332577879526558468812506662442648559579311589171700977088301778819097270619962255885817625128786381098035517825021951257009342771487336253032719820074120780567981156623151164817082462399605626130228165011478683016591348737029123871238984421164626248451051473397800868230718646165660685221199918613550181171296556309202957332995394504249437507495022280264448600754221069744638923473056104481004489275053084822818137135135214848265208236156131971487717859631990708978730981287268192955736761316478537109453392934714386430234196023184338021312826784550547880863404865540748772607131503363568421177391120389621299060127795734077645542529769875535201327441185732988954496995038748232578454329098652967397735218051412915431204014269975504273355908531237433209475335593590454117384539548876909990159142463867354683192223419503515196665483007149625677371995460383803616124436651495741918904150453498782740861340421862078120014919235065231636281518669365046299511355366673341655601004807335216568938946791411570460029253168361414994349981474109413890720246094723308820823665114863986667708388296969546865087899310956789163584675040392802963059523730717280972615214099922883505244728440914646587125157036055443179298003488686158574183075682955268333660313219575729061420289008236309775452189533226206758885337630886269987337787442147906351683466210493400286648021335162740211047873247236748942152249242917949566158392947180708647034277790544576634562569828273500138292146301562472055422436955259304291301011623010025979302153046065308857980351858005316773231680673473173315812941809377135704543762863529637176421920829327969203887918614978515144946913570202991266422417641943197293975528629216426358787980771489048417215172042395663660401431002711491993822266589417038855509944828028877364394101474834679801698828002649296037213653824656114167640522744712947895136574069450044995797239014685445612711380747033610891240707235924078502747773242969903021730950036317360849656633278337475355143815240638857344375785348926178062104698543369921101929173801933877321837812993323323131641979509783604732079362780190862814137569130592694811200934008333121553144519837621767062061147307770268590528147169411742036638892313347868159245120102074160624212694043415155252889868481013711533396036192660026087159727580649824557044145548695971874359659730222697759024076070430403766069971856770293977883226423926533534023776063155512694638382135577317307520213002569073745590272027133758499304347539777199912021298877823769159819372546237037252356381531645157331097434151748685354421655180084827157874963976147319655639293032804030837469264109403007117134655245499039389962357171421123154553459370034019492775847064918109591744707569234634752856857944573294372808951163187975411094583132353041964543966105247214904820149711384059548227148953491574616875091821595079984050944139530418659189141556420121774443674201993965097641476086236871825870423566454388135600572788604747893949520644492743960836642574256897582306169366099708277282326396493166909864832546907299982963261926242505071240944008948833578810901927293592324790267652735209156179286492323506119672315028074777558659971140133620472737179052069020505628762882690116620292953235920897744239028854348410648085683383208264001570493349351474088112422968804725777218120586260832249346722858844603316530749070876804925667942993911799596622010437450877085940219395252608136987393732728247345972321048078567364983068367308989371278779059499352330272971995940625630762927490953912884185990057756196344597020819875690839817096234466541214669576514727159604289440178743555340821234594628550195437153292387163820070611839448339259602224118136832104896370993655818260022603712752836851822795210878018332294202359477071206604426198897844206063864485644563194883195802370546550184498463705664372200590907111786784710814315667271181227981257727145803805733352792603527147151824451542427271231619477473188645405574294104078595173314114823740930500234086163532645028401484752783386565014574317867986927565595405473109219037827405116171412670133803784290643949546803173773196003538910201798812350567697174932669608408442213424884678525310896937541756587739378865116354253974084940281139613889014253890210147070686351376850575707708685793480209850358125713332803745630849354017590331564053020156090560786766934408879657969580153038719930853360051384822898802580482709937756763563413154568757840904935542571165653479764227758771601961379003178698299825632551961984722263509405814671854645813886842392642303558467539889555579693358236288559029273974525191525373580041711543441704868620797561249106557083393800202785134741835559131044489000955179354994333156821142890078651261833003620193899196937877561091631009019977719999374282838598110156754021668503758700257130511302277925589411681638091081412619136736630907734126640255295937292256630489920099595272146957124512289679857195291310844096527260002956807122816516422998186596807818151601268032067175700581508355762206961141610876719941031027736252619008131123053008700404749807510232082270869766271515112643716792210745332969724847950442613416438834313578326052202939029443502684477651453757366419729667180250996454489706124980890615269257177751082060147183485290236189341475981464854305849586517519230444184612149183504411436990725711556405028832866017267872916560420855836919155753641044628136644584931737786688596489441178815019391857463640868356271501662356001496635100083983115799731477440000694059275900487882032341379642691272452947328760213129883843910859795870008126444989325699627421345286458899665750917198392860347789949477228768630951130507980841835998573434850931157494202619814995966270388235128100600200121616563312840103670903132016016325080774766937537214638446853407538582325218443091869684088933982609114855091400346408060313946674766559600913917275463087151494180835175550859676143638149675114014022332599008829746474920096259047907758256453880822456265523678260656085049468179069864480096622648664485045697312702566685607104489567781054948123450129196158358318656240617630441591117048983315446789973850938944886678383801591438095989891466072391563732034762887796998190597542420125067194074804158876874810015860804019384663356627741560630273189922682559961599560562674019131928116414927506295968004019340039118083653421647474096986932170365063127130883088845469368217092850314920842023651008747310729524908770827488280355975303694967821408964367922816395744589822231570612209902345711762358149880925311766007331338232559826746954370350802043299360192286762824744758791968554978159848669545981239956534770942332600422363811342870488561143236681532880215777616007657596196391695383458910823886891855444111435297814044877936498336724571164026710669117221408226921760044833548838556083538042391799307764905209194646527458399684357095709300069877829405883509718358670304986908088694745956918351994070834472466932248165349581968963430704951052937668000796079000841530394001594671245030157094959237573173901213635608541961115391818247553745360268915327400177885931994887942954965114637830686350877939964355079155064643617942978622686750442313580085254043342588303669108372475692980338599196482733266591730109408976865834619487742170460999175619547929740392452056183947112522559390891053986685495929226520938840602265791681567902888875365147094421850014427690750933936324650463624139602413446072450902089920363666526818605475780505373800834796668603398087654358208353340407610154574646236723304470840364558765003803061886799105289141010726189397208854797510323308201810148289624663705597463903388401890080780618659572016308528029665106978071802994706695936861439559045470299521080117806113438715946801429124743350766164352660847997198191988738855994629422124474632792199141739946727318429582828885400958253596867379271964044315178662771598937122134195779261814396232239758125748292490064562173677818556752226657005185352936946882099448978098990896725100920976916341971050566834951132370803478224848225618776061477525762351178044127630967825246230640165701529981720749381378290756087813540336665702017433044832393955835284820504395038492370492105089820454427701099250139749384133948007253295453060287607905849551418596443722401855151037612475505379477814221067294451207242198300797080876174827816464999375336735773296258950559343725338904694912136088052257952488669529994567206241176257821055736501874977368801436643563258302149254225892889359172530268582097088014115141432773552252557127207389737270658370036710582985024802305350021388929260427029539640341949534004811854060916148047401282826411343794484240527199856490710263849848507710087578869377437572631232659666612587561268733087511137065964773341519619918499985083812078733403380225876934579964334681903360636058249078960966152254558629075799531507188928241550295193799992062131774244965485759772322339527799312278597393131402495134406462238573968018533676386746791607405429850870948326526403684526579311286130797942390408461508986436190285773611159991980364188754853952710654969799189272094027720020767331214162236249450466687168406697338573157077726486948178021356000655349571878400555531047458873620419998182654701151390148147347775493550553084207995572261374967464131493088792476691264472163284473254804464336271923229740810203758048367854747035810191600821014335013545617696896415421288365417636318420585469620666995730327830961089922236380316932131754141767507151464474258639505801119976964222124113364743078914047176397693471580129444159915217224638122299081621523096025962572811063989671361528595359613333297928131154204373665005195010680749205784285689418029947234781763954231571439052715948233145139276988775490685942260237452099232118949382849547295294358023738340895570488433338364182675755806045198803875672811742440053397635922335060073070369935445234442647572044132684912598015785562924642967079374703929201241280999656186465852395320579422432177839653525926102762822473165451826828034217216090342433636053515181671301827905368311354282894895811028475177360964793528464872510399944814868087527499163085606182386791329022761981200125867340201761160814662772660480826646246363175668822530193360589672822398458569670175095077450018065350006161505537252368566381459085829118834036718778756290414947354739094156831358772476622736232168790908382197766074625719653345201322618113893366007999899992947933027009123231473221028288093205534224554543779073591979905819981022589087439579780850031939838758343370832952501012485387239255372329970168201865989163004545793227992422242610008327219347306701799376932872053340689125714041070824019794854317774509393561179599370779020807774169117388740141036541650282415960055456374434583752357553751170344424826046508303761466908756779805779032166543025428512981355016496825627355491934963781460081153438084555046940581739738051738405085405154513507946926528235424236848074070123329449096839810168251762786974824467227673853303672871454342930767675971453292469150024159675667289291112019547282474418207268858403246259487551543056259348522534510501176401283445273891978120396623479635277464230949410913382923070542631071484763875858347567967719331606626248830435453297443070528807493052704238793712338329351789312180360712624213412396354889746282871531267239774347256916678988527948982096478456816185565349904108499859863891395551167837737482224595088306359770304600670932160097088626621043502164259947821208910839016365152255402001061171065060816194487522040540627781026600601929464273921831560498161772694052957762476757466744504553501289937488192396512488693312297581945989602574150119038607747535153370127888525727072303909559811657434035981245797932136084429531028596516483773200890179657330725507853006312133893135956930037832372515838427436408741689053405128405293285927988384528983221911324959473284773737942088586441435305745668515996070440403297711426511247096627547523077885134746957985819559070642007641563980307200540717727501120985135117153591060707770114008006900524079422873469627989689785933397064263424009633220620497655635527200398147945099663600072197881346736975229740014334451545363156187387306970810093067690403681618900509375692058408866670789078445832285356388537661831836922102454940653895872926217440557335282406759299884920933992245677100546632198805991585284376450982115999654759028402521906471427407265118936610527186003752546465781236033773666207517727641612109379561667249053949614902791253320300708059915406504667448954816409914052704944520902065767743237092879732114913431536486495774257433106938254894933014322484415326932228622805809443778443032523787321450442821322605694440119778245118336230019598276164476845844248035460042883519200068521980580048790633485385589567594745193028234556369715133282342806290058348347957398489981318461482533905667328135194530789206873815465429799905787318355997688685244046788159694098904143086121582878036051288528616325100809941977166583323474318670766905405012954447093767020942827616897189776499443111159812674654684625250282797059611568905074612450889474705561039325397560833969323191524536262718338048069929117820057091443333468363681540367382848357271818482837870421805499849622816014380895876269494561985676953153162915504566045585254590009080451957766756013498706751943573093242604639693802432524313295221059781755636529292908493117701033417605236716852834296929124841968588691262189062497813986437395398585442436155763777144818094629246885427338055168130222765002050553648713926156261299236456058444273777317072221373058676664415907156576663328920100742141104860484594775964894093968222136183476246837261360320443751433417147514041503170349842519626150216577576318823606102363245877398395595682775607788706823310173683455446801582834620142821920920571465192990161044806290476968902173969516945901206852504077792873424354527900244751591317593819971534918074890737716071940302227485356565868938865799538925946552984858464016593932393888917618655115691237587584854115942903920099176647619160911838137057045018977146317330432331723802342652510193989275083561023082198180224590840935479276255324591101889389819303411746297001663093042093027785850638356611832297670786641683373529043193704825870380075188784984887514662690162186023073949250165819397462206026735178219646915765805188273330783539327467703017058910340906075270670161997270274004620248905675801683182117036682404974946308675702625573518148773032733481457457165727831891558365274276110571779426002067023760247687089331524002082741377852191001675417781315288294177398519323382631955038827490007116182988549819787818529806251319962120651699523007098109682433127868644626462548987591547512793740894334914888023434073474583718842956530092378089408685109608334804818605234918735925223361858629692839752617806700130431339558448664355167503135220684938221467715641528397398276505678594387233588119148801705716642229403410703680263995707275428247950915751302269739687536720595889884035146970941910879795669139244282674603764496208793266968301670720578973404757544629419817645010478156227868243917173706240109365423326333243012299693671008080240474780839434866188142580687525927736903347754886720572055477394056281389336739123281467143470942753175477042622994705633579710279259762310008364983990921063721951414321587091624710910545361530965988739458649634895564861669123317470145939799923517780347200775573211538631340005699055634611258465539242242356569926211665258487540494050684307513407666502781281950732301376026846716422959466227575850779570714081307015607189750344345751808944832619583015857546499449382932188764311781338339285895682258973047673678064771936015153545992852193057528469239149058658293695877511867811130476398419017529847099803948498362800233773184324744215409046622216503537967261420658895069013092881967990540887254263841860992327662655830999636192085714092131663483811623075259912723272232396979703976228717242166471008792750057450443163044000394867105870729693114308620169214193549928903574962516700437342724303602156767670959698182762256767064641892357596664809108338297215368799011826302690323249410936513698858218153038179096562288558033597766226296466613299236066070410144094461881568759469967208573935790004584544053042311363825729282811171096271669126818820025517998449776872001110535520010789257025072089496006848085252180493577908482595970219386652174218313862048207669028508147108873801739022935723971249594355956727400915675225055792592938731914704051402057309230940244865128494740887424440665902643032255427383370800882142616532961609742899286500854859500223290446809754260687404767074204694655698712361743090395030334711804233425839410208208980212174303157265794505291268945802339598883695648068351502714827642356706173692612226918719363648650506787707485379686531218701446445183867639051506569503292733267637882143208336507958911405252495310780659860114967362632004101337208691422039362884694480182597740307129649197434292995614308942222612797491206752859807976212409148403614757109005766635769496649945918025527322069512313034939839391322349913875900064030128957787429268662046972751975402553164829469149653830378354938029670977988771523154412039989480380023862428292986372031830797658680870446620515544262484939635469179597127208527671339643130113222882750928340275549101540583282509904803035145770792187918393702465320304727516555938497765645574740313818319758660360015622755815260097354384990908422239472913070886976725471561606895779153429148685625742091164022274900657923274497762470683416413370700600549469547604735588419887603751368722615634200407569832288821586265545435420076628177889019995523410143718896397634146815030024699180127951970763026993632441823498666955751069763770519585781329691989043724366244763754862794695899344030320861401442799465046872866064074930529688861392912593900515648132739894216932919422334729929954111714659564354739233701455544299133275907850411577741007559435403910965279887814572584137534817559193642360577427835284942833406262608231952997719871950203177719985852112421017419522525225713228500417328912385750166123964647261887548896059744940780369787505547606287636832105076404019200545771326599994663162463118559700019952804728776028387044868625618516150111551848238462647131726942690881124131602124850708096871644719609437035330985772842996994378481834741504455962687258193967263487497261668204386038135610653106207665961909839792809568764978624579992609807353102426223049949799301984597365873445889688625970267855528024573885312385490195888887316843054304256053112597390561684407270496036610185179070788978247202584057560464646004470490081298233663217655531284694891003430238092244596313380444191942315559400170375715475521073973801998970029321784131037597092492201977923085648761986056795842226023221461978745559661334523401229087958449085697308842007277338065644730985202340020419103761254008821412231705681156714794494311773451422962753342649416525026889631669921483461352129569277129002751054539663920105068461204916442921971238565846738154261548962814398169999666073488321354727572220122517089312706642631528181757130835006913302777456995048236606171134236867879319482341350346162553558441854544755011519193490157814028328631083079426903547213764691421757663622113167743527082665444283252691841392289772400654801235662246574832300180772792409387438456745192663896316696491209103637020068268477752345164899145118072995384200057695320096216600576988857914802767550685048790456437671620810501296578355776935598455974200462840591174025045399184451141493772225196352661359677892573698110644978116603296141158106824498637677056753816226820659440314631450860241329840853648629299170214331320006442074055876131335475959272532059650600840215463330996544384508095722011340298957686053871497493724039766184620012969604104380972199859597279828750637101369812970438635085394916943319995355499302626575523164556536184081058615703889358549449230867476170837598716626647528959383593041127531718829393353321288607731202704065130705991441371352335918323304144053252999378462222306790602641946609217540913096517415100913018465896028656564312302651263768892938769626726916901566501796554052773770008542691765731439268948048180141906491031442360454523952193301634453728772065442568938486408742294354183572489950617433143624444767858092035614745695297666449534795491371247447189161248407017127443478198816674582515139446415806933108360859211857274845154605287207377624239661872263300335214107995657275557294407759638085321100274317796746272201299965881866209524718079990070570448717481410664504460424513853548397512483403444089657962403346598648627933003828467831697605404258892808222592854722469803398639686815935375425923451446386758954976867870944629122715770100470007341393667396991440618986451748354563172543321178439766201713525226564121299126725569408059842567252322538641885597368802805199499812451386687184912592072065132675260747001801255503684760851103613416993147266968919118585651874905768276166311121083016789375857015900577735418134175531781811720062241328312352377503248116619812000935535468851207182731932967297622842506929274859583294501214362853286868850501673193748037261074318522222870424729715809901440766303633634422067990242188204957015275559200026549907237129654364462313821273084323135309255143203340842056550862870868977298447883509224301294103345153815269819818006704151464477451977356418787734586445143796753117248909858267382712281343945152052335378414660917477323996214785360978525244627171215434965688296562961572816237583530623742567385758669424630894208184709715672529788453130443393428339187571532944412106595434310884174513860630147055545012081735532285677677488509178948654237977096151588009968620899936983653272108388693022352658980716647268188787244649086985521236330832192874273707164465177501141836580604078812372205259606819336594963395426084919782914277453081488881417349551809081980430253753312631426770956450959997810897710699412486812443619375500188207717207607885562449248716106956791216420131417902647132662209461871410108187455811756444267550221152477641470748242340301598991072037731603263099698644967657833650634437368170479199172790855133679212393803998758136610915118981685994565486145431914687457907929708699251669234618900321535536573730146622265929676610236413421031043032301299042602847820747140983120527623081547997793437247959717883604883466523938688383982886863118770666660589102301129437148147225481389000240220889455564874835344294028916317874472229174275476870801143969138165943591206717085587968659330216066907600528466742335133389917587753233462666552905260532034261457836275989645029623685841597208094780737689086068348851191533152334187526856815257873954390140778015896945237529465190802472514531531010777718070854814352944054377718403381834033126451620893224530189056853437527322892426885345825906393953863208835104274889264107173682386547065816921927285779924360666514058084442202933255147995619210278741509750469829669790229720656063035993344650166339444121632355103526672501921747976103632739455967290820844721998486975203066961612176355108642866201311564841396892807572224127345397797337933202476726385493814766486955183694587152645868504320371285152149439901821645073473340401222569681545581193491249646198801673275954169016862324077393054093329051535394854367355035283427790215949094652084623146915430904175221842464296679121126378185038022627312147059063117293481412741397177241804824080231386180105193684595094960430545171975170051643890722341467202564923736171564977788535293566380652267701290781578785373401341242762437398001810863804685390841761591860900420439369795434845167096071384157880469331821934801180504525241831763094096352771410278435737988024926191413588005756086735296623818220360024427827380430748808148637411025106951231832578654564939708453105285573688155952955834951982542317607704687802784799594625760933957171162349773073256583495370572801215686915211947741903020903429806379597670028747185230144527515383186163109638030255266895480457774994935449303216509974687231954973475541183939349117197853483525123392830928372109871854309416904775597929749090218510905254055884715952736777111103064879949904607796497208015231327035748976679121275210341472208942913224162706182744393399993132274923946392305911680942351601324300975643386907288166909018593121029654865967969677412389057307338671346727612394436169128079563721332384289348676106485415973723003425637114790501993848081158015084064773121836938087955348277258238864285772155399660593979622790696750311252050319065173252085905341927109870570578304647709233030863720099236733960785463185469705084193164167482548525928047753974399908928269839779682874081743925203262740408927189265649004794556707540173783385717465899454368677621367187795285993027845567909050695739471229678716816505535095593001548003647497519771756424863321302152892864932753550047928061849814292357717572163394158296109350172911298563248128590887455503363713543851775540751661771917553563400016767364109478870297705249945453764603609807130143706943244123658279677205482231302879688586950499227469257100448699267984573383192932075228656468481044013114549026494104645817067999661083174264047925696800775800158638915846223996172891839203557900616488754936196301509837241719878888936440775817429099374951751492945422441782403745572629314241309105245540767495428676994008487730220730495962612962864303103121962826591095198305173038105877821518779276659093917467095861816146054359466941252799560272981471640619270887911704957161515936459039480629562132554380790255252250804830272728995264332004046729998099644616610437858217034926813282089361727372613974870347498922739246664879952534174015603037068397273734016773502283804192705831533729718528158924555364591396747570091647853758663564927112761508820497918900998241592732343371539842751367732460480618424081396658068396832744726638600488345016502826224287192855006111468606606950056208764522889203350913310082178817213757110040780374697461236223245392544515022284234267294531396780451227624410190401200805820061415093056017218256740142918736642194784908398764066913020112185269627054651770103499163607541542259900937712243689770090079108997430059113969646454701761556743329839276074963917645304581897694548658418924831100056513638583540398415476623611038229970220671683492544989240100702526112423076321683547709356995720286045075426865481344928138945103102731895409065948436777465574506501893450498482122547997297755878028764458973773338494605150413350352292041933130290807273427814696752319455345818256190010279582699074764971614674850049012992897582764940965533444586676799561882520631511299790467448127701449106877376123031545881317476388898786876225275032984777178459236887642945179275357200903117844636572295223845348024257510142738813370325581643381809376758934997546044733462744193856256621194306849581160660671499427197118441604146838780880257329831409673722154684946595152615920209072956110078272568915127913662440184508335115440734738141442417280324735971109282712242340220470911254177733151457323546729624180629278991864625542198138886698963092350094894397952303351430025848585144446253724217012065401902981677306431594193873386425304429648711141758940440653681032632892610765014800713811737766309519080258387407625421209012982461730846213259979886395954592104634168265837272437646542370679463327460165763650266113759000378838594322431630611010434684675721792091631535890299001019546884559334657720493638833874159399944543296937946811846205895182207990417265394072295249117352237960588258367638321636433664242689988991974211995916172747000375985779969415455877812860073056701458287566753552682759680413140156666399856992181401781921743084504199260614572317646688045587888210624345282247000901508535524822490838037549094575752765991877219180474773403425065172625009761758613186771954966207274939431318055546933523417623765433526405324513342821619388351226368710172245204137510050803396389758532816249638260778422155033843762582742652873197537606306592196464670918537682312626065847698371257240778469437815587726013246042169316644157605378091529893563788347012224134983778880576811651473338240254371279709937560933888086065249356197219815117537701920280450343652222144525688842298292594016498452313175197812210440685613525589198568745952420370871263394325861163047370243892408727275919968647787967797945459099397965732182828527124734010758578381520800550391526993228463577120391033474012910224462550135174027238187144263448797322466677573615092446796674514790125402761530500903856655710407564568350257412609806300155387379213205266582148170815735245997150564004968075902943375748299191385071658590517029976218784879183585683321516636784105829204410260274430887981889778513903296845297517822267936150824411855812492625424711182277120978197994393156808143900408241742353131573397674148888328984151095953608706896550920762648700840286710959891454505626122753399632587301961151670202398979252225277110989617050865497381019146686818053251691206122927073291498515612554946594470648113755394955135245055348965651292864836581309566427843620468357500196277316974488096114261177704129289444453828415093549319315193078179660455006370734638893487716864846872791678700854233173279046162741763777120479836657727116878425423249581659323232729871293353065800387392293999068703111976133789394626629291307082138422592654314405294410340420479152762374718671406571541617179119889584889913643435330148749784671339580026452881706411856213970370539915216053930012623148433806675259103597742580264157401843948330221216405884292820376758458573078938834822502408340013600991314056928551189597695993471615474559178842579121664800663643087909217124057927954151195984231904938134980079464213567117013370917323131066172616426661195346042751958040324864638436213027641517027790735326217152623085057555426103564304117295000660363814792805688448202804892737096209864310822216867317116197400124686032722984689631018127654229293974323630631237650239323059825730561064418804387304300322434776708277060038511180221387705462811347191587118687157587415987671428408012230994088112523217093404919607916049446441301244551831470131721216404648666207213784545949270235381889119037689375907384437592693442396276053423070731209899136290762810056611587726769815247634355530812428339312373433425611509916242364699399851296852625501886783804003355178568035504025862141415651895595820881375974301098779888915206974723585514477325718776448079997153954386215515393012329223043455160234781817753328336632946463148132131904638405484226932419483017574397432428391762138560305039800953062696454160872394825471219491463659579314668246031321595949241708297386489513675132201245301249231156605090801768158671570327009060097588126216752615190412151019024812806851785916365439209542785744831595947276188864345443470561828843411180988556918463217503723559742695716941159277574607869428033997674508529082549891992619115448898010417757400058578089144180801765976535637630317039938756269394002555393699939580086505379848538618772829852398411561075786250668222505328934474864986842991629671387816848333652007057357862046749834212777399273901029682026868965185613189413164504334170842203967554489072479103231784136950280434223689744513305290838570753968721679821285673132287012933774774676653266602830092757067993684974382223680919135979441138859845721681153319535593511961426168974491118099778342486000950282232024864348903181750374389915700983895890700516354946044112478057141436484344447921057431946633488171424191997118825083138443232406516273496733821989704334215140087795563890463974054195112035003330223835491577104310270912460445986092828996997243373512941407057381985292374146362840088307501325124938731063298386211833681053104787636340482741192672950258563654499786064891353810797981941887708218793407277134212737043398022119694963305653382724495074129396915662304116145523193341799854652730697475919074502275320490280846343340136072128355527850658822480736905638182459951772528630510618532858539616496965452302505905067193092584198169564746626225189752182051207803162659496251008392214532705638793677452602939840413578552756027652622645432422572674801924184390336689498584630224204635049779778485454838216260128876985837000732046190389243829332100335939805445476570587808151963725958965882777446065310415691918104385988205984761626005943831064704299410544057435414640988922954771056350123761310410033721913004939265396873612803754186910012212649853705553432688882373274967830613684066102737417261442542834848880881656349055620026491942083627251720161412492351956396125663870937142484132517512896087889456058556798040290824127844122173065410695628284433577543566528165205407622976818725996951262503764952184901071751224106081380576514897910669672831205658785923926875998363458201876599746985170126100440578754622922786255399950852090821494966357640757268420416601860768941637113580300879671223106086913272254939984811243232387388531374812704912641054065041427714027832412652047231481494292983960782506174406714222165023297916761435759838381187100600085016658907022455744535770613461865105344460088498381941619884251988972745431676200940648831127326133489902057611510020820130311595921421757177373057103112809807431069079675925031885235590400057270875719247720109997564595343143745735990158696571394190683148835659099696094604605441387919012229283750914050396835866238943268541702761180764519637195424641244601619991969683798958778631035735853019496708266283840290564993716477163406162370385704874697452010015349988437947437870110508341100595013920206696017518159988106105621320941867904048753904617988877896079025473646572657762574617073831373378347360260758120824518858976835300763294770553012805218213101978804770800949121220787118253600693424796754249463124014351699924942200447997967865086297452246993167590154038247103140705929186208624575861302177086393541369561905500496019638772350727099124761668135059592139304685636450723128780994110510001016111829614377633895930559493768054603746966563565501160058658379920534370319590901769077085978009126270271128252795828349325602709407518396436305802204492848386995673119392573878928480892764324874265329988288822390669155624783607588779972216730592658938462772898091428250434357002414130774057789220204624422209259629791264350219196904158800158581082866433778822740373204945782339579351301922798132756897806928846622690569461219493002443846399158310960886392428159937065790348789149482326241634574610330694331625280501811559505398991936564114826229305642587694816658255354513460700956398647859994620547121622487668271251739042798716091802857279642190688790109188149386340155322409044596160517457586302444141672648245413796023853180375381458627680836315856832279802234357617208531991604445855813314167550609234453014976574267969704683068795471276375792877717270108937205475903285174841609377691074844823053661946103385693420416953086463970514644583045662470644874296312792859164219802341998498160664759213801962595269083721219949803439723166446233963037976378405484357238930842159699868090825091645442518915170881887274587297332139963130553267834402333439852700133233867968519659848612604803953732415547028265940872438721786634536805889468524448795183586863795804518942162031183336155425169980842183388021004992193077823073201844461801534272946230756900590088947833824246236690534271221341602037508236482277746432142655454184758762613932092451479265558838499795207397313229613442918534184343966192967341453387528084949847399947252116976344363727999230350703358782018571684917900676689578955468596141402385088081572011472185663304454745917671116917152938964214598208948280575967197347658406672329614708620339299414330532235074190487407780865173695036681914330977852872540872305101831953469590772308688916923511577752177059416036210620220563086500916929604749317629360768946646364398942587253225811364447532625424357740309508171806430503141744552504908783920788278420287335446472421114003716805849359667529484280448618855137238940045540512651892839387321458432065392139654711851644750233391544955195154135434404390277665572572799911971639422534804199477446855814936031346908295299313779730041219025113388722092215813284307045711873489424389604449144616458292043754644599063449559949428817166353804087334374624239998055433859819507001452993941010078213351402046063024114474862796014772644942231920202920579237951766165445677420696116412822088494705016620909164047190731389797740948805600292064010913236783794646184866095172467122804308419561095200512930779149129007981761551250191483243289943327920247850284742921981475723584970319339174280692032977274937740378168141793703395962089549046565942554337566660425743296942553160469174394251576378695243049012820520187928125033606297758818731946101756062624967672206036039048711848433328362610986967159646836639649863099031416400230866446410011729948237388449854102362329635459864290533998488303417854533609468139472133754648267248157128248102737155257792489891251232725481798569117684137218175351984603535988942699998288089142890793412251495438722913767396600142481165640146276118628997395089075772072064839041601265373608904018563969606274002071843901305474756859960786804790857836056526510797775657544492122881339506577095610391939975187579217294214370368228974171952405011148583250273765021265571307105754537569324079391097389361494366309081184415491799196082692304082293669896356229174409056479277698153294640306157164060290092302643255637786785468704712929414244216480592498587325093095825477673729860942461590396789087190766895743137551649953981452241036038461864957803853652708249189903605643184119162266992514548797097089120228951528975191765997468435156737901712742114432117466687217421377318071742376449148620744550266235629650312222668175719335864603464006611435803238154109541344427771360455175799522671949057536966464816396345575550676051074522340077826173352784857426555205318734667002112892679815498662603727611212441112898834376633759796360835619930377418859431435367400317436791635305408129173456934648622962590252103893081222222814321083076524868739771657345368527294113506169469594084157442308664398045377179718685671109612163920626662295983004183007253601788882058522938540902733303367661226804795649110482779185239837607744217060015152747903923035679808586557473480605075073930481504876169288491810919331488821047433961750299553333932472802972392318794571922662255495976537645765413157247419680338844696010272569130339152509222477266600932287772489209438533330867573710265994840559908368321129093522187142564042022055438043185783241247242955764218626389648834736517969122901029358556340368969225439682381330629927985871713640448344344045884820090791713714113251994326670725116673166737159395216444308330937644060454885630631918709867147828733694644654939158987852251242250099238530912112072756823117557870904149177582684856241322138490449332133234487464114102295421927239343114256600462135093123087132604401023015789595903306835560659346513108200289388607441442914684379964661633093089383234342026824822650596891745140996722245672910341564646451500299878610547578550942465803068252905603733286880296742488615191941266939598842025748648012686073729191631661069563167254443469341105163141313455059766981846819495602692372604801696326778131068193203511764101497735079937866176712624455682011708719966490697945034742523565791447027336147170228130155424958579371431730258074435226415184075350938686157531456057869798198681240173942075793484711433807830961590975280369930524497555680980293976175287007925818840480065346702621324920419485811192635420870643538926867292834551993730766439150568959360425376173762294336128093720979622862058875421388040572714769893818421272369324054846891630862155078991018205220500671919737206465365326502002574101712788274505684994111747698416630748325169125030699274152601185651508591801839506879007413218786053663485283958198137560752642926029071181991255831634932502600877326699323756337355287849088498570766416788292409819813545697234236975259001940351617531039188532550075312234466036086932399301874804356135972199015486840634993102462170891450310266288486619001070631242121577908482161951779642296202285622418692123420957877572399462412433853274213555127037686131416095704326729232222521041205397094440648023488589377689654074800129879208367527786427643235110611160230175056109296225258767020886791842838798739563964774900702901800866917907574435342410881198209570812742041536920638715309099340901406387657664769414912836832848972406205191353290134905683137467024812331180128182110047109820217229036459524933565444832074416673873577015072087720992985894026491719121705927509095624682641070849731306401679433319218470448285104852536217903603213355551308867553679617083151550334941598958716491654483633629262466925110033024708396963886606554542551912448327253868417246757576889657705452199314661672559642561435994732015856222563567547357626795293149898680968653156756876436324037322350052247800415731945288517290355753953264803696644872072277421252090059991291214363995956388346773893167010369483979850270120839330111521899282042305665459853088866044981515576398126476679275288677049340320406838050578216103392209935667806622642845047882384732295806613077335370564954163889171053886376328321143644988326681934677226781187978815018535791038595744865080425177003389179688277804062636767747535715095553380759430498216016468345066853209734571194414444296759184972987463725592299638610919927155385576943893486196418602599822655474490272705397006226001028695899343057083834748941480559004929227112346170122505876888501738437818782637346578872276632479418790218631542938125613873045418719746632384965320295984054931069582702406511131601641067196146998318056516269970990815865094768181900020486318415695042972865479179679730636053744120372674069987898597765964266999743206714929474318540796853961334486821930136748530886601621108293564729011431628540969566465261536505990905958266703057334763460675208422694249893327642301679570519776177082656069312965672560918859785714973391646356612122463838569881581629846399618598069756424033563154362800393568373873394537462808070327495843699796953029244867402883920713860169772648356059858492228933234709266376659285823696068958376942046992875509603545562131244247892651284439990556735340517426730932465544744812587708672530279142796094906039160669091097086542671416919588557444392391186103075021446385105451329347070038639025432959926856408790480471681804636013247664556007437573369548809777228828748277267508103098136934672610502648311096535248856516716158879916512226571131007603943128040094340588190629776413991059364122344910915719925696622933915444023543622953411136984184266569020263412728560203916583187915031476946520739153853347321144899817685085264364302321711153534628772637948110231488480218922034484269484120140875205036591126179252060068973578217643181685241388098342307949865235703014684699407791426266492930664951527895790197153193408193788925843898874666915785871010848932014659408472314738407676637677528797852647976725798585430030277671954459601991099755222022843658636577087115117794407902318909047068907584570100533804030607654218698492875597084569096923429076739664506077345992973057111100032727160606785538666800628863179679752600850252111756052661333911122533704695597678785925461669472819715895033241635335538179802032088794360429260586550126200742195560196260784375289582349663345771024155935035710460434750976995497771121084082737153375780389304704534905969369718899506720135090009327153301736894238212832139075395371542835514577133987255295061597449754782080850085952227425174573259757994857677530059124381202786989983607247140493147829827869824101246753881747937192648403803659340238806175359313120617060346901256666342796818481517575907707954697267227392524275849808796992978768662754766030716199385878312224760033338803635869277922073188110666422604915898399700590919892846225073618921580085344999562722608159144461985735864713572439711397520847953902586003104543010845789693339715937410570583928713579827822918770386747650595422244577155234096860708756652494516464601113043191166380472034619299860141400889304083788489476500729123182678241792309525992603712199042318293035646837521792532695587249949771660157290073930779191625110878833500327753816001086589752699636325954923145183568121562056939090678401965901514368940419123715322860311974140329713454934526191825221153167248130441129872915325356642235901958257702762746921352540548777499260298547053139542212762365291163236688775555257811854502226779161298422053302547051834027256199893170200387212874542239402891549895133474013419668621391600652027484736629473663884747334922854413465038922185743538640041134439448730247416128674903826590207657104863462666625722610387807898105081428840409488044506991209352545536010239898336531981664953033421138930759365284350384143953728093954396675434073369735481872980809929094932052594396684022832380995246495857608422741693739966522930718733485425388971513208306658767678859794811738214109165780526550737069489706877423028094496846337565083208861567236633201810721931912535515434057689921803247931334599184562887403191896844617932454206151207735467822616349782234586507021700273541818753872738233224117409991725553746256827917623405639158584011601411012025457296409799382985369049105620071151284018050408867190594304116546894191302857596591241400204997251063824870482800562223294395427170968005855500185785070043108469521951899545992632517436686575265101368434299796646098986271274393796534854705321257040075357694912725014620021608749955303824976730578956032988393087163356575611012054262641328310902314470596551241301478003582401107600034922850186307084048534193938441926953543414982327869347237863036030198052018771854131284370657512413604683051411118273995371070664195140522013756206288098284315935608747131837113395997203008213743657492061188564785826833947610228857485629989736689376826020325809487602734010175535162112094510798274860954618394368109520818803285340885411799564246079371116226168035848124048611177453101040560260461912049540925034628803674145313486675810392246867046194219642382570181753790068014746696418171917687864320751737579082017137738769860569912186812945553854211371157992927640493582435796714546580060310653817367071670177516809162531374654688001572535332277269137680426670010590574261420345975640956227528510509150209467797652778070944500509718127285972834721096152741777963935425506434556502296939460647768205794696071525064251673791665529419932577508517513502934506958519748642611270957237015624639836425283067491325686457618616066026356084523107078035838612407810217095061748571927309545738295209763962725040696552212159175589226957504964015918173825360509810830775780158908090107151169060676420998121247127310976053857399666260193302475155684079884293662876385557410974857765454631617002243759037136129189689086189152512480720288641072241871841383153127436545209665370331341710608141483930007496428907777781935038482017300589299109648594010160985779692742827429964891212648971622678631150241846937825576000364738751539606526085944996817827681286609481279849142014069516801203698756553227026391060236406317866794139211528636621903620288463538780935618795953491631304312686562872872784464303195753371132286556727121979624003185100275790905937921840461607768958237963761814844371695224742189911981349921729439296274746294077819553960926657340020631245521829171216429416398893067541894697333243191710197240587479375273321623520941518618249621994623392248009460589092048712430118760026732484661424230235811335331042566049284095978409631299949183322715391152305775139366707951933327997911449916554893722645091725906130819070174406936027727621921684092030612645241979961595671234274018451940454835051338158788201727011335905011486840333273364565769203380009076947862880529390775328363624354229914609556856395454667264403406979824779250408796340517974228899652046978727519385750631763782841854034423032613622482542669492368603354342312721717804351831730275266579469769316850214271268843019770455344487874021458587671413102436397451942183491841709232994924043125807308449856490375268197750621982775694338855258391893776533404915616436361969290757526749911733187337880897821495128430514261669502531557288906671028242394796348602527122139738175491495255476156361993462695667452655456010181711659218919642051472273992902964338012897000097371083314785071087444992677577820913883816353214257355391770918830224476756075014198120196631704635851038750196885291130544863758055656124378065127145232089315790783461023353777428287253821422927786208589669492897395310270269549931726996954701914215296072985123363442112405415134847470163238069475229080142075356463007716659395023160354913626468641298436005981690398223109216694322342273847167307885465103288924793579745540968184743047861522202360266891683536622174671126252426916100166515863366054547381642330540987613219563819355692391941197254746128179902746438507526614722729432017833782686932315012822970947547407721145355205005161214746705129936073195782790408951836112703301406861726099955127569962474642574601628286297116574733359796543722859454825012446442453642586254318742641911941320107288687083641312623924950685957197228671267522521286377003969709268544037996269759547303437627920641695031424869429957370334464349432692352843749505911597856341799726011302690050693023909359682018539749909162958148521529145140500816504893124532850379460724339785055975508594516181950301848326328953133872008269573455858153581206238831933183413257584886019123549558901352103300034481845486185026121236619353636968655800651366759897903952556384363241497536691347135813758608639846880982842187671784254499113546750626441068928669500770822754557319385144376319112241875986751270242425744230184204329234867763739271674026551309507194322167113604768170430171829391956641556875598870899753548792104730858730791513033760231594082599573052269906995099748036843103534737704109865072128759862356494056569750440395644648745464783058440360804608930405727468334639274826599457556662373616620075709846246156607528975846090144380302988947552860619487774939124940926072759619628512315649257870057525063275275941388933478722485413421779459840268939888591985744469528552806157371502016313595967361045585308534813615870788903040177111906563752045089140523724178615307274197727185175123415241961082489124275571088318977735549097827970049097511274411604177218805500243265798194952759068349400576092868498078053996433304906496784677468700357590986141904952568946248874560782621103983688286511334310537893870334183171031051547005378599438474602999278013749577351872426321781834061667165381627256134551049031651025115488959777204816820242692870776714795999775835679206436331342056337943636585314267928301013401634703978954136980898996774504394638170844830664805709060088170456605387094915355232100242987404743205361078035722144895287215054286020272008377337032709038810946875646265769050884540160067783468933562432368384973793160779415389832809746430851003774373768322749793814647873371666593853890118259988635968179784863859947811490439493372030680393223314760730878943474098871133918736795620802949031913677899964409709077931493310792995109530719735676878667814906466339767740054373501008222250609074150369598446822962498121653039107299896941921675984047131144365858536473785377059578758645187614847828992614266120354689803482846656551671037166488258893152674001805185370184844788252514210413333354388819539174647860560853488691467269811842937563499746207795691456547938370746127569446604069800343879201585233369454596063498184111762141028101164830949543044659988401237798870656441982598132913610007555936505263922548981960034932131891825940303851048998959831127708413704634570514559991118570763725034957244777798786081872982117513928722516255799063831057182492011315907355873842074723039092621143637595298386558841063050080445819338704920705765275930455301686898325012850832614345899603179286417880769574250316759462716239491406003922208416925860474712062922433690538848559910790378213412352099309884418741725856784230469233221221577411413742681277477950723227531890119203254893269115130687045834266865983671245133632685901790732042064051218670563041039687338474448539620348326584397772036002293371401514415274393535973915187127320180750826239746861820836654068334259091073205336529687243148360247557370764367734840113131591931656131375073968249650038934689524947242947819535238255469308525917886341388735194250994150372006046840704911540905521994428667547247124306145095628121292664341320696729008799426768996627893413519037889268542748680059711889058350011296715010698002490279163730000104853642473041010118894577756558913981547301004596774115211065028803294572289101466359709889463778855233014684982036818868338844323199659790718391227859508833634180232197376574535858612527143188947198361777464711474298952008214058063741440315176682985947111226579033099204923178375768185516579222300497290015524895762948323959369047196122053438482066444716755919572378126028991543240718858353085070018008787810011074924960680594675497109034351281726300048655981806529540011073415401753118273929471192885489821048945666423719105606017721679688030868367146232333439420477993638850497392708864356925703557129487394588244052583997901133628119363327750313029421304360363877075773201429666161142240315936968466885258509906281123138046282136178260426618668773997134009066783887054529124024193838955981817012786570120157111416522566900924304555269463326230944502661880118359156399130767591188109439004398548016304744550428952500178688595196175793159168711841214820989334997568656406192637158264590895961238505405912467093131134861398896667711807187232369462973695352380176111036582222079123877830999956418227123864761987027407848327349037628383501888124803315100399980691731474753055807781966944554413036955521734937196718842444662948798643791034560253442977223907645076612920165043407339035480836094636506581300271642365758992441822507595499769124123554112720681856413973954340430075586948784059372727919365667661201052355696056080010805960797610611853602806972801010901802123922324965670600537480457948461795162869654457325337681064398282143355838277065019464535375416481545195449161252006623530850781417092534347630898968375391630452931009939432051952832770430154360284461427365436488364211861217450655732324830502743359329999728638973789825003393393818297189316701991683940534889801789982343884068713617001341041349440130039637828672860586886147273277626806046058054783130979904299524182324241765173485355613894562104499216170558920038145500655172176939672524451731664637208924863140259739125552316399015509104788189578634268576053896362175276621440032472924464113315287500751165867796847574696842568873794445409009136133862035229605846364715970068831326651944352377289600186841785512320061988626896281549640152749990781054457509650735436650288672353713756618461029159217366693611131398013561804592148269818724536681658999850376688393481038308037522613127379817140954093063018980899032223635410798325182096922698943782316924986160214575068109876636499663470245146308152297339895924843892714345615625165373750076368616596358317746148176539578306334152631066519192960852643312801691407567812924037705583369647409201543282597869148470593481269234636512405655278363180761522737958316888488156084448928317244786673438487522785955783096857037160000432593048311345795619540925145161226785656274123640058060136592055959772619948488243181191102151671962423706878685313734686318020839786012156892384967634238464437211802861954105753924030643128659981032865989291025496802051231679311418000772243676092179415858362820207314231820562931719557185473471438447399636304100569591155354493363381264600998706563959846905280182636852577521785810590879163666722212587267622984296164831149876779681649990524888399461676829609766354574886449432752924526926410040128815438697852272905298180839816655006322705988967332946177820668187598619144820220440307956381855833230825900417564393102109213533664956124327312250325101231182285444735985461736288599297409272691005016459454922194671523939708580431908179837970512571026055140541864578454122911023156768028498361435891682869215766626358395058416649660197576383163209719504497535013320367638958737634735907597341767697820001192509617849957533703165550621519628407256649524566523297671249634836671750335468920379993755826086753291167017808584719920942901309516546686586777774549624994603341581204562103920516043674838522155938795639924902151751308373600607394275782705785463893665103702976894172216597621159757402857016580021178912240969977183586449643507395610481136545258206337311435412635987128106405181466873831350499774970660891383275902637853732270709568029336305427238710077280029273035236294525936399024511179110063999518872839277406204213485185139859132196559398905186106589462076314386982570029480567243464598239365603547095550600063371530990750509774538054880545086633868416073131731478366096826891881167252846554381047074132048481441919096696289729577422146036397791559372909961308783094530696518131159114172081212036830082049222243023254689148256497590486125259473685404249407970700227852422975416758384777789060026003681114306200868178673257056115147084218101734287808255811864409777001957694352650438080627086449192577222230721286692812707150619247970539219544329716574273731744216956843062914584611430164551839365243480937092678336646671580134951429276677867746405765744648040553912648249697757024690652721258874741918117357450486236522219587475281140416634103481192060047518017504278326196921056932276533689967614363892271119147685073047769459850081528994765351953537502718050148799944090030895250473276582606748304808815218368452951850377035826715941894998807188611821878638492663936343961413806469065956662392118710440937151119555515817782659338018191028105201322391339639875845403245516517500457994015773910339266537421756143455516703651276465234992987218161875238436567337405942286255977176845992030499841589010218333634189284903372532631659922628647172523329576420289483857899568307247124146467534134485055842621805760777351812209453373696392083348250975238897026132628657373245037503087171993441430150892773300873910327691247463274719639008816717652239223691039671042001712373443449622205273028121310680132818200689662096143327294663008704924838276088792735935353311134385224454004586006813949922422465538871892078988944382563214897128988538737907955382568105223427674501747162977697936165478455854480980716217496201205376346607159628326445767370898716693525047778465541398946668752186766850628834273425267375603417759579725065455708318959185384494733384255959094098609561524785408272132129174996314352564119538418587769640080545531473693077375185544263387885024735566531393380363698236123292054690559646769915452574941628837985528938118007581824841928159133861276195074917286068448053631636297287840943596551218685966469513264274316363806774668145108775115468826173862836933264296915407936840489256559062181066886589743998917404933878641689482368007288035089657250252984133604081900456081574643733571011907448748940855504831190583301612122251114549964826518116252900451538666622297320278370490134910077455476541017883995813597416732853648790621420959215785768674712096968531652692168523089229672858827292148508672796447884285370075287387275495264478914185957354396272395561080054325453792909390079379760198097097495755737284089742580261689318973050635660806277589614191114449080603244843924746327078992319601985131899610447890213217949031222918047747437319573553879064608259355388683949155531990715848432422419322206505640487921239132963053556498791259115977015659284393597614521965377575193896020869783317148143463872426228643373287049389274867136677066419282269326135098672689885233368551040648903668764702933810744061252930013364339721830413411576630516659153936789857380791472192886831166966338602763549628531427573317452721761325368753379015982304986566183085138071162484933379091219441953694120359948891035076073012041199315862015749874673398837344268078874452541678126074692249066100662021184297177742827060866179254565418760041374921593545574123691059310476455389764215717326072076711124258186637854748867484931231881267575510936844115944019468671650059723169248275137027649939015653920542491083593155823066409214596276542796858446961239738453690337792656533982644124323099221318027661843173356126933602596833462387728735365423964965495717113311935595205753825892588427032367968070843912375061760778467751796808127504241183535930443273742188182499946712063422317319028077617813393892098494519202521673402468579690392952051308822543361045015586236911013013336035675645088003701206606023725000085807055423769299605976343287685841626668659731251184970981802433715151396147806791687594513825991360925428479249651284532931984170349650132506706240127222789066315494945104760671751726389132149973854156707318934856132527816826125333777610441082836031142137418808717739990434290785220155877071585653864128499965564203418715981494105836091419423023406247155378339005971255063334089860801713619003611578402927451064990713890395706890531162258803251840184399284453210611849238262425199912685383226872345409755586818884098243242223994941735786158439619246276910964703608596526719970284882613008574323691190589600145482739816447166121487287737195232770591544803995375630267327088768768916118253763591722548970951182531073210522643188462202162860806686262017887113456760343763857298766216918630637892946903084180623369955095222722489038105643975638750711554551459422371822094748811986491573916123075626926914893638315629535541964074486349497922902524692037497621058411399418166497109683575232885628973697000901986355189333276477384357743954175314169304802030111798800885262315886137845615634824984719965273295088915656452625063663353649413568577844762687276103261195911587539368427343549643160321380709560339175828706031686451950320814838016943024370423413332510850258124691621760514385932220770768052010222732045615355243435243555473359262106064373984811432305080300927210188520881025707163647587243308440718105591362608216126850446526870999236423694728288770581859452797368127313615765974403875937177298084065785157493151395870693608695040377766150790757449071227300828371685956896454495755419426907998411654544035839598170066903333896582991752238487451532287737239882208849828412054682581199360988371788312216355429481640224607672108861668088957589378368874747220990124674194316838537372388984342721083322998364452301864131002444996909039040309811115249545840007146473296013722643563802552278876973010761494915090586801085290313737821633193021448472968752006683490481635433230709788603925149930381544655149131254634770825475263818171390405328391726011284873185257512502178253769717859711290917426861234471885334160813835959857230102938487383349947077169791379943358910035262258351903312892984523441587194119809830071924673054480951396381917194701244889195819923172411499255422282809022935419283386298543256247402988841889074184902018256002094709378080310796757916332167149451892537384570850058348740361126164178944406656920749050719162330323585292520734879062834984287518507566692424046499634145253999538551837285269288084033634954263923009572679179333209682464424298108764441953983433778596838463789310865896850637347868437707591939208869139387015591124694353486876287752294516469987998996373784072010820771024119131161677151478340912684492930829490974697686442963807507606327468390048063463914099232233890791290117113439584154699891553642758734050038384627425367898920775970574436044510705994499586816776316451556749167141156479871689496955735191759210567275570063790398631732124065413167616074980398956645818186043625139063428302258816883697109891374330158622126206742460381757639080271807047278934372597197655758797721340650250579439576770084611214642743949095624315725624192089100797728458705009691892280956824217210412439600370597451885405838138400015060570934913127566311246527120811801178030357021243077164327951227687321390576521123395860361410897378934443616636735484557462236022357517958779443383562156157416977719862736982040741106806137373942908395985848717156248544584768883791627730769253526328750134123651702552421429208185053711843099488105588769649186402775887161290213163450512983274655910483699736746528859442059441308493225491174892496487906036148311495567133659502463804176243532565902081527330788729929056052811732513878162745735371823681128721721822830986797468966254723423765048485627908938984789677350793131276225276076879398509811657017653655937509148130205986479409282182553030393427637307263930941619736660717928104845492680979599285452453892385839239637660995166821414704144462951707609411879115856729887920186172548131666096727956905863921556031832419653235344392928667694203467334308173088671991033615750265662799305668821025302737028314603622017497784922514429129663608892194697679305772451719874793205353442329565536166217243424978143205831238492080002585916912386275367169236853257892017850547747788631831052118255728240163265158082743719936997414940341203684528406690442904933024594787838428264241949394460320740019020506771330036832116317524299839115241228221958912253914201724877948579160395085710961564611834166554919781001937244394761893974365713739936664613917545036403071329783019490466581325039002531854966193004996808810403428365274845851096173512845563138190915378609593696656316820959937054852262668682379864150171064008448941613796068224038331106273964879576061167611668565816608393659942950001009256816211471875360564067423959087774353783152780532654626964007365656295061220089473132888190098547422413658755158275049433833000516318452136512645446318042307450649073442533801108485209281289683634534957999007724236018502617999188575314788960525683256162765679314549673023259946176163563469330918386289168773862680174587689842964960825279500653544224304122433325682095926305128443609741087358058288091472383627252109996826643204500610006416807351121091627725180308039112853346568929814846104538885129212677255026765329294892148511264263151113172211894188797025421586837421429002543494613012628992796345408251983928498865327745147938824677745374852112990844522431609477205422006198176344170357812290685333798878560478868052778191163632492037244961858462284409592682730991966198764095767436546807011024437857656305124946778794222874364739388844868750683032134367146955748444501201828571885537226487734287894922371958937520990505376663817922865623516392719114299666029672694446087707906637687780558866497792434745645207846216923629832622385429089516584265347973596043391365246328943095305380945240962550783456004532166484062138802997118773319122662280340592055543399879079972151624046436501593037410500328497960035445087143819914114812680979356671793208104119618119621496088238640157989356002748403664321534596674362199593769522960821092720048680218917267481560510262109515873080423107427086023928131742180686132598522476361336442103678776135983268349082041364112206380240862491766851906914935095209668533278162243524412644243809100067603410602948814610306178280144167959841092385218736396869198402221747430213029748763335909118883482121324707926638100175557754107593009308741689456059444446699487898340267473032399929745324210739511751283945371867755737762467434753444903525478479843491929339998787006485855004761479136948615825530887362871963754311740950985628437530193026141405441332246081269920771819905082255116347973424282290463828207150525461552744746256124612904925990204858601534205450556670306100362184371899601341347473763456449435436870118157880832906665041595856098855400295953894533770372861826062176867522945071190015118350113654339231216147797212756845585265927190013570342699749603693898600368680520107710596248897468501309434076034138807957943494833265185811824653596445815655770486787228139675941912220686595581682223451260662932616770446703557417491939180321454624446802683129333413461333961177026617024088907384295337327025532649298346010074994509658197535590278777800107194342553165009316375134389697864506681036792020113217282330031144909089783027945906252283980389399153773262487250843273039439691593589211615661853316366290633734730510812219782341761074209027541864157359185518256997840092915609823035404331411456059545033690423235316286600339814760203198476466166273990122108425783130629005280637359555625691354785154605780568771009318641925731999379643732152204476631342859998550447803975771998391071062013189744477482040847735506015770004791376610348448197670856227971090730986900650551547159558282796639693533789759807450563081159148608791345283147793118144064278055162854299887875256229083793580753277654913290230523261997531444043913185417265787192564073461654585611752684776227474727099535766301518296355525422989645807285822117970453667349944663846501601655324514488014727309078849170224155609971515700880853153687030897099403246274152958303618588132964553336026582002702425555335908199120747060395779333547929580193346305943151040471733579320416200555339091987791625280493025514731683321494337773357906818840647404541230378054477223087253386961145051407211144710635486620947814685344822952330570574126849155524580717148707478700245557574517507381653520983746732045952851870190886213465277107223576940202557955689934319921709748894497028343018506386552465112024439295099424874165088077371187727941845170700215830693353550528810873874885593222597689818028160018075773948194899683051856266120297491011939837032347633521595222639983809225597352837280417553078820098408791946079649770597370351197249055672689040334976251361106196997456741434810818452399969857836633312806990608448958124697409368833920839447628656231693546450107891251034211846657198409550997551171844391610254116070169648256391072496386286594041967470915903291527674830776582304827893691596920782840523509744418044945187183119567785906252610607054197641949128286081268171482029503045458363347596010131655128847609330836797744026301961535411669051587227205579876531448761723828080090385304603392111904861879507958195809136006521394176974638258910146723720903076719055183729660552635330492305015761121985524837133724736573612229183367999742066799765356869699403318231269149492947926532791441045165111747212590741784544866842832804589050318166047174296258275823132014101158960197677881541639670487472232321512457098709873546001489751586553101014952429127509642945673944540288233022905253468986600747456790929183841389491622005372387303450845102090728105490175554832547530075137254730673607903493590326376924396059905373784348291155113690922611112868268395645208086996691057474054469654555975338118909211186582948600149364553876414579923293905523360141657632797295255645178479478786283805012427429047741657860713003726830573859326068318154257526165741508902019197158965376936654673965019104623521745996797255780835739829653178092999686537376846396374371761614729795621829870078917827430987098946818812569184045776347602056877366620035871407377176047216669846271631245494824215029196512784028824607503600445410209416696544582229233738445396469918929121945982446334581962717661910056190371987471011460555832121125570293462258328329345020568145704888510832055215708069741835751296480398294624117643770146178822505032847492524580708034154276150492780383814484973317085734916266273651760497812731253550174268555145369928982304000295751106652432637548788264856851128892640113990796799520651478870663716659985085227910561462848990627595050590662092446012816451959532196363947407549578380998519212593765386887722125440248363405527559412645534654484138332744066254715221727129604677149348222943104545856290259971109238060119481261098268897438645826928598476355487186974477756107014408434667735653339410401736693046451599730121796818071822545139513368795906879615050216662410557106893344447288872886640468812651451753805447008781055741056785201017029639281580863664961345515395685768184839135336653728957282880570296547352606951076229767007046182502823982626067518647935395994393175425254835771520295855007166068099048547271850429652762787293240844780250596233576830001290483112309622606483587851245246178573673061311395887811431391461512226610558605077434852951577109931311250246818408479851060782622387259131793249062012377139783960583253692444362287757126883026171091893230382326209963699421093621605058254154324612105484059371790744891054967424098084715406883392744684883286137597459269399060341352242020162213273170762538582863913187722348655757251071452436043357153825945057503528986446503184119074274426625924934251114395184289029690147590965361351484453163354504034263295012290774666672918205522055907287100691748907657230997931550291316688794310819609964129323404141826154597631029090374488459973442642629870295436813644586049618014298830965078801307530141636975467768811232013640370034743357577329217089705139470919398838526535637638360497623577300840555099597388597706925050525640372966687153824918601255963252790989162553369557233973607823566547960771277226089461364866700367629714072903066138910393654428875260829795539442764204021402243267569632389901894732788037321060817714052532481273244684616361356256071620859748041655209231345328037324490889208024846123977830136583726819496011400070935046530294596498443527165471132831839794365828379253198023266759865021803392321970401115283105729605281854045379649986440114171676830690106851742960684713284123277045771703400885361878066612323322377485289152489392961441258874195156326751979197670449791024422461920926906312370079107268144570814917579982647922992733238954461364455891496902591758207299808244385648475187592800553833179494959350158952095372087909223223271885788715891465026934071553572502272598540417118197377006068513659383004335735133973807067872311222246872749625991759971174532938470831324479888603698498572573526630935902917541763421236331286772358929154178514013814270323769227806786060952783190964299060930352353163558307425304854079201888787571976771610882542049179145397282693427490512645338050556872014918495191270222403423634873850037962178422970982752330290255246826802419308386847594191298187924705066733387030982797655675793303988268405575583928954437397353351141708963809562754491644755760141660966259337288390709363295559403356462025607893271424966450842055124869145400076688926122087525457107670494552769613611591541059439440333612491480589712479848011590847073234353320966206860898328970438268842540221292211292293289808104079118653824612146995433354399080101570681650571403102453698304160149632207396513935943172148225414910899701948480532444024646935226260575857599485562082510008153849314261878925354829601429516141920684032145938451944105536910072450993209053984500553782660695580634731622567498233129640987455983331553516051027528973067665566798774734154330184064553461176467726818744049737278903393638790946181892013359231991521215792263304400681162593838654392364370675813394234223497120619051066245735959758069697238721393095783182256570619912147737326202183820067309081795765309971172646668082136119156490739556029903854229002498995256129034262252933105008240672411437534252871178595407718695443025109628424043653829694012944695157826601902259451990473064041781786364537606203823562257092656099500600163977922773273486914190828215013977164021074731083698243076404971095097784971796136873200144892864190599504912374949067790324600886501070518203569745370053042091196721595767892624250292159763825358601206047487260709004909820706122399896780352240282675168074640287480610389606987399969083712211183336606100273328500853553561042650582553333227939289187663511621311844193389782669339405200477398410138801971415669436896475787499172872141594745887799159955596860615954342480655101657919171004856929929744292444395247387109622563627027689447404843960448161319016842610483644424234500622481683941431301204640390036821334222612129289660069589581125471642947421842797209838586909220352840844923363555605324405388334932322405098729892572579347553293967874701065242970975877338724164926623115466153012891712637746783556887205372818640126919265409673065230396527018119945322214074585490701224357956360875602905495780996041681826040431613075377180083342931033095530004891951417156048662516818316552879426785287734772138931338399177634050530310145510912967100166284366924189191147711969948210064720417790264298848005066177195035413115553866884534048482847660469223397971252577413548515248390767616736449795614127624891182191060068805108083652125522529642489178581712171769165737227364657311974346120772346517261041798729747143894493933375959074334213970681392063485066716604879644771719634605901095728300977435923348848531938126224519493376676801330371671704489725139647109877823268905031688967624943933264886049273525409032308772523997807728471063588640903014100811950876374053684388931876836916798543337468254359135534630301729755881721636178127453929569139330913301438714711488828388878586278585371884724577870649852647780161134375319138434299100041655483278267719040413864447116596704419256882151937135490799410733602364146317596887888194806549066927843055072361748270411548952840374220048613707690041012500422587850197953184908378100686167804576365949184055528203802741687782426288929513877433028469306076410334602508875742643763419728711563503239109496217482965156836865574230676221721451715796520474030021989861125552053342228580920335073250401749147296162799658006650553385151153409582536836072197850995623593722165933134111221248840988398763436932827617757811947332145977226368771817447917530134380670615864008292070265410199123815616737953841777849278647024310553223369442691520461853087964783440096738238488487903998861176373774927908850865864974561316713800579149629455797379636238871503330789197840777180528584162444786152287251130502937299918140685045532724475680742576749661325051402719253198772770515200290938670421002148903215150291720709453575168251797900341851309903798827046992617470107491652424135923875012276542241358844723802400700542516140523476948804551850529184710122187706973065603991643199112912083194446546178443532449252440890716646413754726780227287352551023534047227089483733634803405936022469421165948715270989647166944785227348984777188277386991675865872898463633764282955288752784453500092158114336326439265562705112873527191236083561119558698539927999511724862208164087289430119045669450138156783515333605954779208762072613644824480491644604325059258997975869526470314182254029715834173341111644532336898606469389337852858939472397744131819142534034421161204433552419311020799061161312066874374327192665061051909262370042691595402985842273769521267017736742185520303304634419446394640972259815043501276375903592659810627500106957497229664761875651229820034502792428606032439077605274653041769408937627412457103398030857256425765306208563477765887739217161322812113456773701906248549670043851376048712960974044659141925228240878046417815948694587384463663027667549845310196532714657415958572419816229448990325926694383058328200346490732477175332322595834991125690644856026160539132072025809850411448315955769370540398780783777290849449851300497216131375495612866804801304218589037932292702401320676338263196165759497563000884717039917373819129250633532185621476679545251005483533666908879065731942112993215239651855536431769272924729498357861598877642927588673672374805285897085397974091125492696138309151945324335998863490066254536018646216893881316018018346925878807692822962913137885616125764229663280649836443522408292128942119342705325610716163952916911863458435106248007942810484971246225591074388192712209838638853178645489336104945747692850116980739769643071129405912671242384396280457551278777025637147395970938626765510123163453394905966962067162164666913227195075484726644761205215842468735289212751956342978847767702002794159493958992850697698477700790770980639426386325743930611958655941210374109093320328451781438776261154827574324507638676856972709459522729537591244779212011593319481685421326540128608658239645421452025893639493623662850435580453184725852938389693849731559407686595361237419002760498951633632761991890658920145704425147064356962887694611059576821682343959350835079939527485903551774804781982855401113416925435545680374493967670771728460578225377478286331277724695192431022419220668490465202539222062288251848211872300482638132893762591371797633056621163846787550150485058539993768656415264476062318298444415593781337659269276027697917915044423802701575947752262609034781869880417839762222420757550108322935446605507527768086395738143512618077603928294831710503459161315491500316542994597101730970023343590236477649598977412489788261050495929803986903222023093580303910762463628515767478809744011491918646324447661328997499778736929149907020134538285550620912246786057772481843848303616464858796714015089151816673237405686014695272692737977362822985293183889078035384084448638490803696206012241293172964891052831862206646402908860420066247879583807887439536803417087609680579474932004284613694666943953902210140915585602591224957893491204289676449352101948909488232771123629020690693650569373639767793137069595129082606481200473462114381646453858000595877202700702118286979570733009162606484045616159976914086340968080864255910644942618351079248790181600501873996816983230726635599377202816661280191489757781998228321368773366644948920715899584194995307065525814527948860736510268883878877366749644437219037282179964568137331772191728570830982596609721292932222020119144826487364237494725714358822779263437600341864102745406833009338334020771707973375600101093136372207707014026093394901859321816229343362086891628587774708637330591915039283368992635800122570942991695435442542780308161318522801388058541113650926210769205005380492903052891256306289832429066850838371157701230502419868771617022401151998372480967068308802234093569298651797065201316042598578398727641367251563162498095028175734005147034456941028336246464000045352454103555899621174222667084396967528616000453192551970050574288317277366399652147191664953503749871757777653247920555831676925341363636082316289465048888383404501547050802555094558268948872265656971646292386916102472581226800236215376865694974665498608640181038127567271677090737192973234410421983189582687601224020839315119757557180444608184041857788630030091305166597571286733281184347910042919398749342962023029255098295307394323793008180138609016460695768755210560989800694617362093710130556526956686580141028394057257123850281397675490565333441984454212711749834424610429373435788849323393058616821081636952731590815428749248097027145573892568286730118762137546854396445636988994432739950267474420977268126692340059505983926516608646515297136943494975352334367214692044489090227884190734899457742442992711836228189810564388092730932918544056838365374979153071871098135964251755275381629209307803101181410588328627647297171165271856949736871517000976617594408538727238896912327717431777849273313644140759104784054507195158558765623472812472988271378634933622442648194954483991409916038985480176032940471357511961782291291138024952915738775639605306203962483123423964389633260687940416199738269455865170959734457719361682394795153960878193219761367128254463291334483591359835058625760433459604619548696351854834634766363790494715699196874002866203964283200300664972972557217517741819618923200070351314924322437783024938736907345864657108940010384769688318318259152250064571036493699988372637815934998951963041233437413644402180917178448328591437390626640829119532351582758860367153159288855320796910928124608343441737832383403564287937044185443662455054983663998782980058112042118270998718106456364344569656156236207374061070981508692039170504254290814375440202591994168377556862720952744579849776352729618237705614778016325812610814277252975314398424014938228744112284623000912649926943943156221122765709344431283825465293559534206782309664898751018068943809212307427833535644550874396535211920758183614963314434112187649325020518989675184002178325429516587246786078911153682041515450310700409298745189072733270945729655800824704259598909152479797604040503430957767496464703686620579391465549522379292810051355929659848519039057442992976658820613504904807353103957501161098900482848365095435658389926825589945931978347185491938497349428932258292099574661096621652259674184448397328239803609420927922429671078368480064589376005957018797137043552489522991534659191674306113563861880189642118244978051190072903416834623808156826799907040015464894662605456338828391690493731596370667422409174479924158053401501536487773464645873454034052466231770785227174949267531939458078326422917199028154336984503285884468459855949547166212607698946230730739585807157302932334590647980046606350457077629464782925133352882623915973647470224191698198520152099957054817234751373745333427381640044520499215628910231415614718555550654074416098435846583003087773792766432423925701065034465413074338361132864912912027346570780892710292682571220953268807245009601924337235004510592734271736249799036935428131295559135080831363333296552581166948039214795854266948250323898890015042228488689871448681675091135445086579592114308174844728131927444005640432993978316925772093197386911838068304219558589716975169257071564875193234660949364388899434731853487843461537561717476652700302041522307893286741020303686760007228484736493786968766168998346854713444501357067202303413273879316116810052798370713640838268106620238007327082871269826613835425858928531543729528183375984480994164718714853957482909285143510938252171950164364646184888679371054294836655636213167767238359556025556304150989233726651613223451861242478587934761691122051967035397378357552563112682495846914946059174097397330925911442060021586745322472156531929466209347036403808716977442701525379830549264511895304796493316249390643652716771816214307103341588666764355236108562861743131791741147289272719335073621557371819390156837134867933048671439226528589870915178952764523534225698081657271950370067592552865334605951077307085080232532362626489083795268656205536058474386320525346149401410235133151725807255886891255850245916495107918676681398411958585485532276926355655803227178375144579752148708433845949443604224015901820164715109350197236175907114344307871571368172654459308630979500149893559996955154663485674215536169645227081360858960803556565453807296890474709045772255952524561877442523150527818578727969829265640648993023321859657452087330061443599126103228028617098094726033148433487430786203277151578511427640033804874650952047084052015867693624791885696865501330747578797461388286129194662662238239211459936338289471061603594131228788362371173565639605352006124220823958258050586351240105507057171868440020513685553124619655770168279406551953750142448632197704803478019119831411857994733684377874267370285644369756932834504515139189320130900843326779667593844970359623163504223437998088671554083657691958887998337001618006416360165178827268956536780950653941985788193056288896778225064237901584794849168855627772826794376793300341932960487578765448305218803074635613568614846958280780208973207302130516531025877888455883013549011510215603308669909100883114048854319834246775032579343495258465545306973319606155715693390896330427684874353509707715364045677410594592369379867999577074485516338692703095545497446060869994311006259200607074851712561254864313732427212123616017903411057131506316528894377790967475441460793598356496011127251366084216776992727723119539609692215787912048065269524833648430129593910282776532504368339799777544497358220892135835979933197184516799874100623797952365373406189379378172707061715838453822965109114643660429008045318542305818793635022947750451370263609999285299568997010491419880990501682730177404615041558635352976966531865648250184929890682475762350454304165192562957768221056145944531159836381067447786644908657249268455776651651258973888395252377292821586587998394538625221827283076910081669458148661550653350401374495286273492248561192184659260400778561878555050347909353386716293716432413634453888098138503631340347373427797220220039219860008934120461677615936854715601917483279844816350917063151116913400953462366037482683674217489104872694887033926435956593844442251353147122232271627120124746469439524392718908597763176479282609597391127335497522985160201337155777625281642847208017776013361930421481983870566207180192847864291627918588144571904829138560879476895255257965688852859767603267523035209309909868984263336514112229765511549669750051592722038933515451631378920451849202658861086779541256358386428963710816719167658262543181349524805945522397351138704004582036309786440540187900164891910615296770620443730106096316626304833251032444082126796213031421629910927029922778505567142412064078953834199376467691009032591233070801727641177237535053524712974264226658480773171861757249767209043466986007371825129716302709972221184340469680913646181977485800368446608271876170669612473272203003919527662683896233895747489856524487270825338494220533040201370122284728712494354871773651394663167349865223146098845804665427164127553986379034072423773171873738895264434928534847467814491497776719415857325560759007937625593568097281475367952860087725151694315655045490952595245404457411754563781416023484446203809892040409923646751975905334708906285188745324975609603774419973152652899028031660187956527035023785440705371179631804577529442905726824464141760484286341850191996221950077638845169629254868853776705519609095485448232692549122337030214336885079486295687992029533754843057853675012478631686698404503767532219636131845532801305854106519796179798600170502393154913635203847746803403342863356847342804631610803663206436896846499044275869194355240391062524698798479578978391665691453298557568415689291689849569923380638103462428075444140088791795202859506012628672949425519115146721879374619513869106055220943005742571525436477150631395621504804213252968237772464635293479211769684126323441119523902101023361239440713212132928830989266381850544793461927515766531811266616327473364038346291607712427634947692163892668144293658040460211397570504577812101553458144988173276304532887838862148933474263609209058620508602039977294170034379180669704365514597171743598556814287191150079882026778956193085471937597890542018447276754718887500430918086834132825544606595686710666277116393829219601112949335210522663323503559050195325723490410189269000342797927673967929687260185020963819699032855940664076078489930479087824675169951300719428767608795158290424909412766447159483019123728636950488589795532906789876247576541845396318965504819134902903718288939976458095785052693603887109863455874263350003602338939031014103067008919011509274305362435184471433776243070586930708807690440160385967969881481327699140746880131586208169984038461968550530519390200077649320394122056408526459292478529370741840374127137344784441567007120055201752346711089296129377125619873605635831212491202917157595250260595542748251593485972422909345665420913600387221794478614984822977550564137757586086193466003741188643618217618366284517811064537486448477344256128520824393280758105994789665895459887019358053356313284254669482166326213893848609017347900077722042587491914849181172672939649534145577201377886299673904472908001696498305452897824381538814127008986303103156720948979941987296657337917730046533675351649960723801288246581293870397496310700533939307547569630373340892779174961636886581618445523454867762753205004779132079641791437906374022650228732854434078527780785936227530568284756566511132845676476501675926451212489203289196273402308867636722352470073905785343419483245797882401263061627957264940795581437293091628111522825351701232315722890036904736361351947644708939856280881411542070865139692124999817443060101836533243413196455183069200486292436899030464487385833329426657122755088955880133822104560368066199110888477370428108702824338058115678917742189278615209089775060993321721811460164727354138219192439610858422751332400634215522563475420813144496032708342030407688687079030284783253042562726092118994192165158174551658156356068784762368563234966089134165182330054074889387913650068326812835650538917856209667115443416103969745250646358645138702619979624287630134782247575672228612058975237696739853800132079409083694031568159281377736762777095856984567756078320135600235525401200331458269379658605359652731599142349420632627274192461703809851204414965905001621213010313068488825365112458842461942571889273927494705983387526779840923550575618588875557922981620665461565238599336220601099574788155553618491207650543887681829723201078100676592297990290291959302706003753969031267286684490576882120581707474997688442810561334473965805106318432696521964290337061204420099668209949403976096660369059526021388392120476711143160512804473357002706822537639193149053387149811577470905451665253840412708664938087653417769986809432473793640833584241092711026963777622990744150518917721435888346232081041820359087795624115527379669942027293089861545032966718322066328749944702427830658748580651959826671596529067117474511335284969206616846253486735770948993757887283325849953923291320902866269803080802740029637558856706377868022111474536974795959408403478653482744444604583620923933426924450677388700840543957393450532566018209235740404547716389158118991027985720849241352570023060213674832651960543058640410566766402094301101123082067145868638872368825660382190729921859518108615689428508367980978189467285061759038110010178124336589866307343777631675160026308811145714226926118125559540604569314303650758396503594918472242684854954488209177124989354118269005204834785573505994763166730948279429010925673688402032259106150691841857753893970437784973786157050458528454212728757693011708675394702981549074945569921902141933314410509119578771423084050329459082763715115392286141934101880671010558316695714242100096400647274845630984547012174016986472623906380861393104413827927067173160223903849334261450224544652449634968118561126737239359315577552253419239759863207500545304319578518092656683973556918453030306518292540293971634676328782898888415617187960801771467222065690829092632900790395762497503353894588617781544720022437189878208674685800350658176981611866262486059205344858827549415418958757723646195739552490538252998552109761358446674202500870041025786281169148136083124811762547610243105854209429190606873258597066974470479047659468931850244867188334946804909228334445951167419634767577903257981948564561775684389584946118507408518458054404406159565276501348122164707063162026652178246759926001914298821760646386965808525881992109075923843511184656275114372850259400996698951758983950274451962083340822651335920955020451274714341685439378233652343625195539267225472943209314890451398861524511670919648936807834615186904103250568947576210870852933253237525324697353826401137847265803353369840867232033070050128049033904249430595335603994612183758459842128225778246017920605980098359334392961313331557240392333543166315811476967268454929314930134496333393499693242872146767167852467105396225301230951423489522678805856269590579172355689836860004025015141246182478980645026274575329135709833089655262297593182099211745259459835989222758595774984856578983594095628432532160797685986612726134379466547928675485980498227732997330454871299397562692913857606922927994975951402674540100104983380690481820723760752447058338609451792047585798431957072521105172841207322695103630162471666450506806331908358755277945207249558568288743174379137532252034592068287506828551023904718151130153141222811425102754981436534789478174079485789462805882569355521396184711056652408196325134579406395568735307776005261712802105410588667474024127044992993450389258417494613216046543067739340476014605826545751802919361410574637524159117449579436886279650127775997456272073714729756029203281872666624372020876834869532249021311136346958733827235298236596419084646239939550794243248978196745670664895980861811666160078418438019280164880091231589657409304407216738321678018401328493655591444991154257048112963910763734039356688366267278124060822964277137005660197538457620365857357908229758790840286793490196994723437732001980316010100427677146642500039505089043945269671369122379297786276509145916595863282865122265680967641610976564502557491869768749735740038855078923198714350652774050873228350216804314442195839425049972766825764804177223935084684902367918712786669914196314299402652323313566886373094525962566466393562887200511352816289227990829919264133366801943616951276100422781123659588588488103877558653787555304960298149830198034810935860684937431772836034180598278419885197933816877915850727905467997082709039251055414337927244164023464633918931803004239533625312585686756231004179819489150323202284459871960195035862536049027879412235913943805409925900024633137575572415897973901944729901152350837433679061533619631872863731785695446523028473950718839323953831229576997103139236458372404381676371224846107185506020959746072334401516455338550513537871510664346141682757997190687004478682549762812202363397268141171070909990205860820518441378232013940814131141869194799984228237658352212585683638709180261262948221795349406432951800817416038747606640700919304396813098816094543374915054352353279262631554912938464105375984866555881971134459748703426627591098409553159237689580950454453773081111314669770212014238597278906045402843867738485023450898372342334411824298628662398892459468462039025007193152758338393111233023230934992122194843546030587454404300020012443325026821312440646659232581013103205318821257596472445019409969477983827275142233168889440269854364701928650275541061181537617337617658651104478889887993222743478992189376111087623464597398013788090728467536508855386205225171111650633940112273382882118295548037702862754930313242985871162375997299369008452509140614188057758207339372042535210316267628607636694900657860166102548475050427536593512947516889245394378037491892833587567136978541236881357869426019800207193550314492553772202179309028269260896004566430755189107970816463646231681273635255841020268322350236926292492581304466197122452336832719384646710606811781356797516184806962765827273957572936062694078150425092455501202257967719873589048981870600793272537732637863256181847575423567124651166823831325427403375298611003666355409264088502249511394880985866464643870991903812453483330518527199173127068496495809690175365324068744689146085815351014665337086054862187774444852940544657964908853741111337485570963455203498733537144016467784469522233896291096296284656129735909113592662280157395777202696004664829688028886074913238973905120444754793324625610553613288849578116152534827292684111469695375756186756360408341119672485697017559073885886485378216534453699487062077050691623795186615537100240959119761678795883472294440525297751327443125632899565982615008523566948772226764495363711817096098608726867489002953521453858750581120348193675299945826033784036238406009795690763231217924252647194937843932118984213260709227568438011107904583514495616973657371715268292151394153949415687046314677693145272085760894164689262948635133247628993993117123825182895510818897692561433735230521052128737571559189896696612294188668011646626292771964506106250101835183184868357031571231904376529022987613469483061022281476569088408997557953435120167498643029823722420007131533667493459462844570680328752996038074643340255427137049471203735503109698001809309869895652782775937870555476383527249199665155390167296362501132992447899937965698382664102712856633022127883678167798460167846996134211448518895680902911597981539825708592298130191104174978282086958898183185456323193951805738193167040958888283391626269661894822690956158267322954385890399233963504809590914747230415146626855000588647500530963332488717977064113718930949706389775258293202520635321998662635691142374804229887370512659745496337766235455381688709812998887606609941607921223546005348557020849146890527940924395937705951420829613275230905452799124216203517905741212064326833410763711163981877600678567080635604215815507412246271613481541396740593479249400502910369303136440326826531577127378051960130535558113940073902741924018593797832069869535543613442533344950037642643536658163436701200228104866342012016889888130842066879573309349448987462179375586099416561834422930003812697774541430398366539955759927216829426696264403639524529629086404646769940198859590526360451752063543369104866767662354144285604306584422957314689515230053575145680448104596541489210905572753118815279654620913027366200814120195823238307176862126200959939685143846270198909336818487754160808590248663354274404355574216492845461510523332066382735797355281122032733405930645894878579442213731292112421741869061002062372870322797761224068081241743052038433622456107581637580140723741890695512128385248772525365276389383309348098741708269453711438016812100043248740087213729546873146613236881620267385571093254396972011443356299464744830489926617975898616184372882088316667894185353036209915994108563914395917997779631552999322083143881125794085094206530947560487395747796370196359189755082842098454934846212009377819862991327481703843568934527488871376288655991562456292979314799094059702481480221023987816439579861464450880196441333904748962992374415753623747844758115615713552945510526490521782243875183686970968238364730185317810751775726488272714839958916187117202272346240844151142674684410789901454776404560034315033523603937646280449189066458023960271558561519857252639323616329001819724276161783472676066492787421808110932063041340451748095731510780087797825316912532371299220326940486141095566021568217898309225604297881854293445140550620038414137269727591593610893381479346862252692115548330498395314382248758831043788878188482570998885208390360256339561818669087385296978067486022552922445104740962356731183714688140032594619898521436987464843302844138054434776592382592324866956013121174291775230062147608507491137309593807498810826910518595906737085404289720995339383067075223357946753177841733443064314272586122255077627077943794086288632628236393086846965867623786274130143511940055453452999705734467373073691776108999780755108768097391132926140038583787499153265419860718718121195158549185155639331300409755000395107458403867146395197348005938479422134237052963008321818355548494916290564949533331609243992345088286385549251768067856762740239317473209663736672203436805606470562853363164571570747742174548944594308424564524281799947479031590886781365769060720656289790901811423377905042029430698769210462753029816869015280482831947107230303013509535448112001125786111255843514543440233623341523858487046056345314579561860974961102579705355635822141041365709221628118734264572147129565574551039591996136887269470470852765089064103908915524914779550784983773876955763049644372968718439286223719220917192336001287566788967648450405933735763185333503307172656832450841545808824437418542874497365732937472576500724613092323328047803090053102534184984378438286482568694550062058533380631695201553843148553818260210135538001819805467763933637008538783182125704050591442262337785655557297357206434262416649481310853708433399562583724444774432541708097618782178974783360779553071694447164337193674830926712671324761340909340295383846160296324270084331308969296054678744882513237885878713877468473759346906401758453540621497903474610594174510107743110791075886453127197536103687551943808013110059802595204917565320726673294742302271113015176027374191128993426420577737541278185603138929731564867029701679247268343794282341828249469937986132559781622362891618570245778968710537931003102116561698892335246168084422297934226796017813822002758433921639374173473000623129682516172377021556754655883067318041619156683427149792072080576832990903188062755070652044131784705355498790589939518359639103715618172715454862983718379651458143406514066130737430805215396731518333313706157722954883389806769334232639197799877922861183227849746661227737631057838899860115470393066412652883710086963200898588971789333898451372010777898048469066047823881289847768019235917478906590674567206686764379925889872565817066634463106669090389433967280582101400183854671134515744942317996097504040491076600885090423948503449538681368886712719049705095793279621869921742537435507412953835205582563592151502952992192104801751740230066543660564935870708651972624128540167211605509195708306462206191610992964491752164967116052735976614607977301138328100332921271994181062633545502517924707385558435793731057709727936664655046076195937462450930800409096346142007503801439414579454560109120401195233492467024074780665431798644300383904072698890480637073407394782922112711859221749509531124541512830567164288634824403235478067009617223734581975827218402377476103779846569944314078922143069259134589849263084243813360121614713742265286787229575821479838387728332471139327623737674312650928504390842007500192557680907712147967826095367728689991258366752249136438728740535320564099554044507352313783786100284539224367206954478603938092223048626818190317019280871207493079473486304617225417701451100128889860149555415923697732284778618445946257846295410703000698061078456958468981403247841112281521659371641784164825322060339384642715373254078353821618173118020328846480532966193388838831287139984086360689733871655263620175654149532860838673463267869164477577866729930761881668656087129509493897459478893803376430859235659432279476713033470678758875238060469942129971153064616384948858283819114482730211001571243257524598596365886206707551931076683366435824683507242861435029093717087703733310080916798511809488464947723008776272161260765116215357695893806625643361589086099922155437291883021626817118714464453077374286052184275342171279959145779424906782534566302502862817002485866271513393043805007974222326929317005444704641219036500911980817540487096804843696018116834279938511995649651845321077485634618849694807065371752105860206710641383614623399430631900649706083548493995509192658131295588186754783179945664937273225842344596601238505587666182651986344054175159182247176878059206689662346941512659516178871060407186260055015595961100977579955109084923891804728292398094787823047145752215641376635781588719382964900230366125040563435278866269789683549073950954542390495640797130708302630724677133581105072343077082796799495014562918873510681370008366926905171510390177975617793412933858244106680059577036599823309333041615365280395637341997921774009153648124885098818309303132534505358364926934948187800130444285683746676823483026673252416813799536396651123640573527952196466942493774258474641682958976911393659396340447395757481000962232704181067949094121987102212950729836996672419967435295466718820913411299518786914679341199976397362214506046939172623289090087902226751809418446496197734309326363278681842780643672699200866546479069489628867617363860339775462390360418051124162211710392768910189649190770638081418302549617829296492046973744240446823786501839756237440619530175287860927855105251695569240322277333231466594609197211608377155417169836244367184514540602735142503552401743907736765392666445893180596529678123041219358464906807815621682491256077679331538153763896888421833107184585960581426715209501071302215693350830925859204488547356350909306409614895886393564806876206286377176621312452976593717216348093973762027704189984740476810998610853020373518173992086689491718983763116836003063417914626029144107768860618382638894816855478712139051922567263306078898976677116720425801278373878898087657107005626617142953188512735679250420956776166528849839700919262811309458196752198903464908927224276454464023204917680030855974125526117565495259065839661398369961328556306505763642853139210676619171300219634413612592164006140811054530086125250598125401563860734877777616639031569623439844159619238701877645349153159601579672942981483259506380340435316042572751258374933529544405419326948313218990309269355493432900271794271249496103346931804512511223752834552077981269776678755304248288548231028192293142342525818026018644579533022258889049478944008276551002549995018385533747673563268337612426313596496367334178530347419579652658576329901705708347361218403532735545960427387443821376851885812226993332329366768387426686364397885832639652878877211443610209307701295573417219823155749231956298076809534884830325920597038904153826268335127289471766863542494720415295464595294649209667008302578358876145203904310394897654658509532642592023904198343990435522222019210478722709487355311591444890332578643850722748531320579173587676013367256381162860086287888622407603172967154574797761508301709132979094744243261713810535987723736525049829656900814219690237115980711366806493520601455547628073185383574993904406189576554912294312880538156704530660951600536108347760163220267337480867561909818604306570659237927479821599569523584647302863619922090246061058161312968719755428770945716465183338992779649605666628040750683484742443268486371648446834698258096000344300993413090416991056390207896559221627112990405612736947511752860421077132346134128849958297729164886293113346445994356597602879184929483978054002361472685105096379336868393315612741323556600524588395276957501485291362429318586642264214765728892443405488682253743165206810590634722270800032982950222068445297989472561735487184526038636363310761639572054788564931154150986550215950456875273539549227130676243670428680819411851384704463494203149953550912116668230894301479638639413473948861724672377648270950286854622424796630978348774630261308425218056588762272486679335729885224930717645029293656711320897353402256610628060669453666126843097150263647480495081275885516745154855815397376169688751554147257332525677608042099624644141457693429479799747793582853513671477484386473914992173514056404535680337518030574493875003934562395362302307875380467786081577294013517877274981318128818485014523659941737783731021411789752413854474210901920045946357578553482568664167035285262275877541410386290174268651939243267976447598748535325304717628405097046823331423362615283115602911806404731475803025964818821934354182743094325110070521994610583532303002231575912698930664062827552136615684333307430529293834514150441049057691444710173335660513866537221425012354445021595272740584553292202685885471676268524941104825840437667354497573883597004295821949924882331248555690965319540601829885754589764242645133009693586498464168938415271202154174405504012449105618988754121330257971535352564910045619214412899413313326455906081077796538642929052066207301863664520293800450589363221812070130171514188325143480252640575008703369548518264002554435576235581722669331688370681798461055209317898300667790734127836031308544617308682222415074249100317608364959592639557022507577594685619320878194949939711872403645420103275789639560105143583345152733436226117580080001947716166432541615766052646290575089763914676189376264984026128738625545081565604263108861026745579333026306848429872839216815360393137426914654431558404385255377159058038342308371257603718735369033737307015702129083767784253083701017490071350544385491877457907665611373539954273802973285893449096375621786924952939481383367882054530345393669831586640735098590063804918436161774600611703372604934011829048463792616758241987973804347939949126039081924502390905066298420825125815342007728142973637841855653460607777276832996936237843379560347664422737375170209610812640937473086872968750027665433008802581923519281680837928870180209732586264129520789637474660713429493298724403008544316161803466438828301939761796612115363103240744587242275832951083545894750890110138699869215091385246601727714337020315609963321118350232430225593099592152094921795020849130308086077224199228842159963907743641146048504267448473946646770759130727085279820719929958176876140207407932404743108557319479157869460769798144125882813716643627137484522954114518004753354441280126705567174069129313037415283142843942017268140044454199183459393383425142438009893570870366666834094878774768462239056079273278395405411072705951237635218495991419077026136098832071392809207843715506593829950523941913824573569671382330142121137404151972337552283707234596700721645196127064123952024487122918204252903140679282069582845785869239152311432646072850058872943675096225029332450376475622253666526457391283215749704673299838702345753052295489109247496783912669434415363435830267632555812958583545898456200497167523419705016588650331349858334989005902954988444842027732463489059098903378093679495876320288713563299120874824566412149277623498506487328389729317989518817568005446669728915980756019440262463925265345039768482377666467360330929059854825463728146139523983834874074034368630213488016803894827853256845726624751754701019459978105134476337696277881783708308279044617787927275735951956814891449829729262801031647714488174485780856657397094290157713821145079156747805295186845966982358669887684824926151678781505162417688185900488575044489149864072159538201191778355235668997702474262442674774001344979251134363483199129331086781002245231849220959083776108672631055697313783224829235978132007163254695979222494155344692847053454423369638150954535299149057880124862976815935239913433838558537509104060715028248524095690594830581226571387126143138039645638060555861668451701100022993670357671985443515064062551201768924316974383972955188124965794193234180020128963444302040069332439194805597166255507726597151183377733922855901048864467662684019641706076982730923624587380775929177696008755736974915278835605676189681027610793109463046991382430644684192721385409433947335257789767294498929539208540617981261687802357996944874338741752195053581728745996352542161173083746875500640713380630030088558486255659753857525836627258111551185408412123799828052260590946651048916121040236554541428197155616417023871837843495516474247483623879882358703318404332724927427547398616156079809833980907018403352435893751920624015449342409089290501936595382309266819232277401779117421026887896249182144537291853805297186402277903390149299846840167358197271605884779937809460824419890263706159919633270231739829711767013843614204626409068963995373785180978842686678377163044899538648443813919432041811347970561173789715920836481229567738051111801231803663601937343495532564488146667909314595667559912212013652398903868945360672452252671429825823074241267923858342368306872429150483767518866116380170243074306385182423207549344003731299733396929180316189304452701738815227264725905723173065058890677134338889891227984542983835428807489700705098869386470214045493067608837270821959942118591420221318122523893583159968201410329600382593452250578963863405813015329335099603314512854831966580526322330105475773784244563210997229575850078023514034941173205910951421449565245081969249488949223115710305419854402205433966062758414474331818415303774534097496640704299668906088564672843171672183112742953666581706630831851177519871883698976628178151440397679569454233462069846302773974672057172678736642719529372855068096600636449187978207562747646699054498670684491789705672923054450437577836201224475392421879654754564392424845558976750126048662900780467186252195586351751153634585632577189274631077050719200800044167385641422309405220145481238278403180045173267363510021453720445501985208696339080978298149249755116643471155815555231843496049840019842879808134023260936415855840438629669593047884079712177246832971144002741939792681738566202730161845678428825454751355129348848654502489499644307916908040205923850183306782098570794468840933917283698660455479495190473346594793778231129315194953289175688500101435071902030585386532950589365904655673263661798005056680557441400770340627740612882656505238742744398011836029583772364892195280602137848678327691274727269636026762003909553675514894834629623320006995001799692831359470207280020107221222847123975450508287753357609026962696975123952241413075545746134807091885568571501974836460618932365042498279391511026794798482402542576200126668345825365851878402335781511832298551674864005005464287157857960012189528143859411498926290876498546058382682776966005139393775618122569008046694342496943895608412204609411355597680291189131305561001392296987382700015594171574260465118646317986376708976729252230438660963726995859418125768130226440184587169085253310576134815467655799510845446096946047493255164136355337311039898015864487995428333069773775705162479146168294332014066418386486825536596633497390475977105259422091800554954230638042241393035794322726082880879675423046691101075147746489904236624493575382788001276281066193687342613490627723271367301748563405288165962489231236118493359159605874662312311450989451975663958113907970778017500429969978914413254487522889269459582526990652368181859413613326690398418666829289675739133713239625652704654154636055162672250814651562451674360679854944279130622320538188801418853645408223558247486906333681408402056519060128270108431228157551871111031710723041228345728030384442872157683445326942593986049252224236929500291844566734396057048851651708886169131726288603447104014477643837494390727147844129756646829944239342164681203097391903783209587498913817664139885591518376224540095987169321878535430749838742630516897046142683944411746544904234399096838302938411208969781747745849902696986835562163647676456176808063441281487108648415681755434595237667818875379302195921682671474590259179813132363142363525484694396304702326141700022663579552661194644493960806230588035623767749661753408338174125288815950492158265595646467801237078064874831692363119300156915718857702673341115696282076474014170890247567716659394572906217843199885355429567263573483212492907246352489960396051315097801794450231205314206150489023764765966041134670502418436722850142865711896766137044915921139500902194528224632748685056150562495640319670639189562451342510203822906646365054352123227692931707617772535216423335316970676107169314441528199583809523877304795042404667807197430696097849343292725670667383463126403540611492278940856999949736739263926532738635034433993314617498454690331992764829152329170545255901174917119227513491662438597203796220017818520670671854085372164352402835059414759675790027465780504698136875664648566706949357819107491379653779086303954366072657870587413440851008760666310215324389030179276301071051351092250835719679694848867703620642610691186292621168402077533641193211766534852717140572156977474414942456569096746471918437390797103483949870904252343149198962819902330654705395627976833160606299654735574708104801197440088177190036544034636969754191658647789572129631515971788241634967874773636612815752259997450014325318732148363960307997540669890817109742010674735954115595447656941414540561748544177750257333935497407238341793395124257179204594661855650617160976966163109441913651887509414527988792940880092822865950511640905925104000868054799657054852571213710809975721818684689492213125952783016214042316984991914930323179191433303107561038008120303950192973284839943233607584911054447619570655928563088589339770553802831492077101060312454927447427714725251288820712439999346251495668594829423803687210229118230263283066752391085333184022932956545087836589310483215854230805740643827277998835693977673847918701908132957517769074170694217096793447222215190705086055738016651442317578737760962410595169137814304903920374206962513001433588536131495148525480168881210508513767428921241893498376378773210295938398270694088199430752568255993660447078789017184547875741021453648783251495017221043858258479390151323443941728213075001825500937077376656372208289546310964402450043393773442467528499193338680460705562416366019898312383399825041675653843406267838235125788602592964146151298883251571157196269819239463133146581305591771174888318322244388642070824067524436956411355463976260951019007883869835568448086834126306295397250406353140626063220631290815099560550735967765394418445723285501142061664050507244781212770806541947011541658117908021351354179863189392268794253478940057379072197756995304075354335115008137632619627902579439947697925955612912193212337984935502442366415751160266284667781586854950140723247223345569045456891406643131597451457461437354911297444347277819502059311752537718970714461272438353288572172004296182613886787310095972366167087357401315569019213955614853405408648189662741261055578367296753387279815033295265896388655472741675566285125263304604976743713174960123621327128603026912840458648857923167856542424488389545358953522973526941280806194484149584197479048829032678748703265981268366752707581990447764317109608721187496677314809701964665727376197983277232443656136391436576806065844157936705399166776172862063218191565087588122259549581471951670938169170064601164832779197000606099839036362181457982576458291362333770659990771217995427988983755232550010378484743052629552100791085329945311484375029407469716438317110913547966572545148958964180778542162995634717113145754009972918233319725077481543650399158675721650277587780845597625701744213889485386761871016709366759495497730462897133487344332016021714507060726151776149903102351557393838255483768441854528242028396160356558905986828783244970885365952017957820006492953315817434788450834894710054020786323687552010231416576037236024759073396277396189053232680117439303116830685554430957659782089036580423881713782770416038510240693549248230078910094604341320743522805167647711617985932070850877180269086067120720719608595655743588028492352613228251157729793522069742319978943163598052557348413272961371079668471711154099096841451467966326389498242693055640594243175448840907765968947362398134130481353968278428823520301077986551006708048558996731848815888919938091070880350104814292956121251763543950017866752214955116424552096794911817411551805802137575960565586280993742297064046309222761096558238672588383843389588658440084101681337434600012046094575776872067137529356893882043146349703889741287974510880936379021123459083779489772000317516872977490702185021199374747311856699322855489919584085998119543713480165831854233751233401198208712144789268159188820446935155232579043643429261499542376974762711454904362783180106949720750760480204283312561145991198685798037843598600080898300702973733883805480639949373984333644854486513931463040776060988852237431285902320812065692248017341167582907033559635678461893939524388558337743673212229393511950362166593067968692755224471552835214060501087852979650844645845828353827464433188548869985504372695510634101429701254320330942839479714400221905109030720037411125872406583621714254931724958721498252142619654038932323045494948173571180763359215716897070960396062956344703090679657484215316674304642231348503013900556819960436356882393736571329502805364478034137091906364370967876204994401353882861563091671041401890679160539693395642215431689939381344199809421883713865289266119555409756293480882941200751995032145600261371045020447500570168055382320233014372847895787322751168895728129265429149519286432415216100163483052351228552852070162895320233515369949411634837246134155059924601304391280363062551416207870250089585110079620865286040658396269617410813497534326319062310818273214756361236133746247273549911677434948270962649045821262695455546834087610854122804508836402799152431556191043275802519098473212036835839268606654754250916123422964131204421430211832964540522782431735697155709057214109374012265240391725057432681635732878215725961691308570335376555604777964358758293873076341598808740709755939856710801705808848117446224811938712497465236649810237941306334243189334727557340498290104405757219703441474853763455115967256740763234886846489745433698477648096425272038699603706917571206746774031690839732860578346036598378846907102135045217250362824780834852700190938830043154057173875063278012915256430473038457394360928880586216225761218704321064803096688347397033238071501476650433544884930722013380392018490082402246184470778526288177888239035414089705726367539269247843167341426987672900390692290547907856271793497371031475664375404276943447970947690937218326618534791875312556324009947872664205548866536385295779926424213048157288195914467864225671607184197035671323436455737857274278751381835175180161409003631261394329750047677369899264357288100136707404031804504721055400985813559219152200910856326974871352269365621057267415885760376958486788517343502789738477567111720649183132734409021023015866592601298527779871600320833587382410264379578345267760113731566426629585553778001167546633852329934940120085406576769339224800828251604986193744789461813328669630175424951737508166290532264591397058759620818152082470345579279729057498331381356561113229123562118809523318452270052829977383327516482001127951348505968853376647453013815807567242300255634107210043136093359416687449226660191453962824752367625984130299251036326339721123508347614263550772789179538918917395986475794781770937892078368951488780830004539416057300019749677018577566681542675131559834043926780834194032915042468490519842858550602465701143169097497116376131750012315159830055297930901453291967226806725165849105101145229130800191667836614949959397592275758244898327409439537505644301975931831168188957588402248657888392641838720591365926509958214147006177180174639337986473181693829328893264070957805389215457148520994952448718358726587129444067935025847106531104279643078386714543464109079625358219972868388275928690839764717813199165416625061842186883395041594328733900423431772994043136361365349481948006666664515246320700505510454393180252494361660633068638378657537199939782841816563402209888191444769680601203068874045140622990783652344862058215386378482246680373096201034500320783854925583991778015366979137633306126670478523212646486335901108516187079810223194947383622151166456813557857326209359284712591411587238911262780939915501072309969866997562846006531459750857573204786706450633270903003456708579707769424550054549757164184596956648589587331015169857186721386884384208976416869331476916713774868074061820159823716399082485988223710034984625494595868025135260530415014170461021561479260377957221114338210444180777151780372517884846990687311759479180555923128097218162583729309400827158241793268248939197250164421828590140652045678637102677825782475288442009408351935400871842234468331336016608112992373930602491805705461593507548651106320105249492224943582292366834587578743247776181241032591014449218143830232422794194928207323732184500511921565297796714875114136345269100085956856652734333839139075213263214245950839635788053487127726012594534951874929117717694155435383787798566098554762036872841899651510579277695805952102525169477461646611691223936686984757855989326559252156594829497166505264552729338067822717034819560029597135859802029246997646678475508859126467895553354965243866726879125815362293280739283330758412024675719467858640086212673973350745918147810134374400309733388174197726717249151888833865209858100546844338085891234553192775385862218522972898678534133814953694845483805518050301629898864559918790713044145239874804963727559904871721618784101202008283715880848382143793744272831262870114128864110949425450153041189119003291450261374349671058688220281300193439967647032915069356057233126665275465641972487763644218348813823968710646361384074469777765647111106093618383316683630163345122886881221098492644766619386938778611872621875841014182075019349485913997004663806027211411963398603273952870423205133206806997301670739540001924764722052031264579405151611159394385619162506544581424520248653619900128498517810718459428753990900931708780155983929205711349099362588606816502603359604917047203899700235996839795942606320835270626266292018349679639878954827506316230057770669524505370204690766043118867448005119570272629276608102773818965376768878073403322553577323072127340671868765988419270114156736891374498064281106085566361850689410221976425592319683086954890264112472987222456997635704849244460086435171680672679837692105299445376853690223277427691878828137569129464515034130648863155065412779734357921120195268856398637036758770386464723030096812119154765964911179782624866883511456954720153919789029608509025992643534901460910239987144909785661702650258385665351028612294780683474709825575035826554373695145984470376742829252327660067644278831016625360589477615818509400332865086034490623314231396970406056411038410872001264796210103097595553208125064122760775510943414492382480110683166537982007412316125965747382244612179443356632182661447594686146668776344441276970884436016393005838741695396682911440301959050849800558675151487468858426534337288181124899000701716613062516745544199547793396791071653850857594229294738975000327700394952539291745940442324037913324370170016826435399026988118993175857678832522769948044741283522974151096166346989462993073997441540632888094214362935082622215479611581234491461558490186154206404374284786270686940168680986633636511324295270368396123768661277154678739322729438806120560700078188065763536037291012697827018690137176114635012036377515760840277205679333113973919250785711217125950967689322727071303819696239787752243732344258000139576214375027926605328337276596379886720068457538933289601732907065798372501885209873947000255923582936026775361589392506954577635891144079093814088741380331393808087783206363850330412939856644652337030904472648653295811961486681226881209249291701490344474795861487275577169774542712301446609076701772408461711751419456202688723899589169350853701079503667823105649892417605732530467713712234920198584322764444720957281990268093158251804173390805545955764643215672392726512820038234098522191162468234782178423522593776798923513254725272009604596958753166789374180397327784728432024267089251749923928245886972965848189252743853089344131761780700519259606235447335365607224927187541508477225695763787822772181273669656586911946087605119069573875721381994704506202819371334226127056555555734566635447433320571607624274989121462325367791173066468192878976253764990478592430290394707057238928996992898277969174945467629376831826837100198531765846612514119278920383586451220766022937594661815381516907848805395717694752272201636468011061303599620653336737518210922377791765854608708554284452318001329100448377436091799689714777669323337065795893502499016615663153836750471844805283605358168030495955642888439030469162199850120308900273384167873544876912950911989314297009791913616722713053295894323015671275928002488501451574859182848796094844164738054210849573990571750529772785611212189918503972044995282755473757956581282941910026996997956822785298631290572749723187795247083511819601072581273776705213646283127982758969948489783542146762501571792797165784666524228373902903503372173850981524847053498550192078500392786567096531661022200912240333658121170938377836067633028502291166558354007368836098782416474537348988007466161228564480450472815591306807137993808079510278205510627907170221834206684771587716249548563031548447129219604431261491939516138171071442606388332590567980691219182399059546138102209142274524550986730956058786964530748830208760210968125585288987099238007663189364903566562708804673694221347096869568849549800992800741943841667771327859000986678573998582923912859341510535210177930816559962323620668195535462085484236622362598095520661962627593387477637126122887190788092682542191299005057198567009200738833930564180546742307373030409829744001695206496239106179588882585871901628528360932300278393223867648736514802220190995292419258722732754671949638536463124994564976081455293348890907064364385184412343561180160776171450734256510899390050165607402767949149247858703451507208993733896016843869814167794970370744063195352810899977220025984356382664605679537042066456299172648486203164751326033956600935897655534946864926962572321421098176929040733204095293060114458242568483422195776920027162465787694175907037693717042800298268209968490058018988827947440511294773596127772608749681743681893733050401492319038589612944391130557829698427349368857946352030816135206239231520250386379386120359811696268640227693834412816499084206044259978451505662813949282842519368692689699705929318986625260075221978777736131300539561380618084966255528663578001276462793225864288620136178867053480091746373309385416789112584629210797201223022198448844916383607690659238056588664122979000618583214105974817850906693121017505512595806377198336154220418356184534267483782830529619415354602402236029757564428407730940645308260828333366635904896568188803935758095097672932230615553848142093136591403260640345766910501269699310378083198579814783593387692893099961491308865301278355019688194644497451534716991285767825407743970631293249252233291398155098544001922967392121506970132527452823010001031103810126489373207002727486360385881072808430494888964070383453986449600781648679766897405037042609016932691452694081789606313681979776238123265762360762883739399219866938116352174761782928950178378862152907713821480957480733112428160430903583026234151543159166018801328938850538719226876354067585242330399529021196467777092163147641883313579891327846847932770790437988601483442588803889964911539518237316584466988849751085975421347586592200879705891776604021913313606372223929138939473479070580038171550515771560082300320759637184747602261629546042241819707734787936635072884777558401806587708285809211445468065711024155080046594979571556681593302987063932540497126194191026430661552154143158728291740719561426845820264588185828868399563176630791376122722941045496678640623137263485196060670773871502077662859880817345118254184591015543457067777498581532686983306474132124427351883692580232299357205634748343690709589781029196958912990496009744926982650529805839860371913081868705634445222111556119802045129348809934767697218577379677399220970842534910468798428514708696573988205429434608051593247572195218546735649292699600039309357964422713390061126237816246025923881696571835947694938857649113085911646741374158959270103987437873049971893645944163379786635258012315740597597566048236261235762858628805058921841023737358038917612989323498248231029050300389330304924215882293411937496763912661009853658309881402897421538352390547150306973589342223506381795713446563212229346404999812777578643515639615535052569938405725631116795459788511968932124822487786520388858104723801000489005352000599200075891446296484708306503163836517675513538639846093310764223625794619327090249062304616978302450870754702313704387302575861173132996429829934890453725780092221172533733645184298491509865199875023226583572678462922776881472108682092344169768013351533247065836252063834375704532776797185974451834522512344975177306241075602649345965660402367374199326113350404892036737400629581665036987546443068819390303820929901793519735881335789664257625375235066197614240898236765454579612986099476463526084601273213886112223833719762052874757571862125019263359514819270660555626069793770229474032881815396336168473861454011335325264861109578572818750406671260205158867788866647613328565055172772211993915781662392763852535795654883827758038247193217231998549602821762424056876414134769560005596346927814246988316706802138834673203972071380456885986046766625047312055495498002878083142814783735587360489221588133062395132708396680297114537078565114569093814371813472734798046355520365950205296958735627654728767025846690369182926836666440173447227188944340978307379775165987363806678020491974605715551371442816820673965321764066172794401966746631971324964873280230659131514633493663245205736239509385209709634163235488421268854806282343939534728886145534612308601529622979405377795934815325605182084211450521914567580004928652581583942950760831916086092263349469006300313176769168443409663593008840182970319189232178913507283137092650738626917246103258061662520913882994063399046589195427250150639976828308156765326370141188732008049748505945153248839627249600480043692386171119128769727510732566960319578908589205442099310754160510242550659276740738726899331338846359985228519402173560578862264246951515515842493455538062851300569423207382343040109310952784301873342513053612697813008298945482158522583438157460009156368181839666133360761456157498711085585057743547979002232035806509901208701181966473276753191443085508231569885700551215190169308223601310489590627079353641065457485548661257904869196882701577569902303879579590801963516565428328164099854898198605261267406950428081549523635512300128036718896751745796719222739360671010027778446517955911625643108166771639302295908256857135884456753082256204390068838343675974068801849829273279744062872906025199377001568051815021401045336754617666048772569802975537238557405057431461173619159036557380395772480588788751499554700767028149375729603654981052547754718281524979573522162033280659244278784445921003704765435287194058063762312814290130524210002004458054784529085589014227143558741797583163969549590026167534322835905416962693812215688504161062283989398286312353273479273850588608638479733417752625752659201237931022933011621225023857084979027812426836931355801053262771406808550220034720171463868337908360408577568384821404495024709265169887040317192467307099372623073747920358288172402725834402934651518652872143971357746712860813415422005566432058550941905515348598562796919337284674040204070536692550621739227322576982423811559220091164172028268573269704334942789454725452465383350487380190736745854140881669341089449499559682509380866706480187638720006197749424580115696686421654918126970218313618505367300825406374935673200924163616445646826520339318059964401602640939467007910767855459602227083427557709337408643237006317613499227904875196744145521158489873415259889766550146777747369036574225846490066844688636318406237285549845991404032306769452694705403895773805291907980478997697895046041463771765889193054193349859337943355363645021696520927153023606540878340504506785895992151870080235382515692480896667267478227366859883621408361512818172131776317883372130336633246603308181924811187522087584697688025930518435308616313361168588364260997889714620284110970124000159834735053914736391119436632238587077591319977549346852276843187390354344745596537295537142162886815038939739404162359927123022951190058035247064422383733850185863336753055500340744133966050777722744511073942393619260839142613991253485186494803539771206403672333377086493882820410787561572644505122310561776735839720684542850069588279162794100879240621104287836161225436677852439447042089615295815786160774238431546377902581853438549621373829654673866715331194933101769932966194642542487496407217142183929998997375853865108364816367567010422849265429856648236912747480102866089510748607619102875291044879883562499733477010716873584236367661159460244840734059432189735524924108490115918957489676909393948396411695480190301858968676826670677986587403886755220394275489169668884128397278351639899601012226358252514593376983580604768896195370796402879779854918768542972930683465417143787725569750522492895633194485533268683728554548307231679653447219626888309975965193716915008601478071354115766284017652469764067363154831631007275802927202951780535941532240026139166266122164776504422086461675499951120315415176513049522992066596943743297904127446116539339975528310079765979665118685204938927888683752855080419716520117376117024031956765914534378883304534470561948744654755312900718069391317813291951676600704199390713960741776453038840192287113733214317888754782038864099326714986594354271687146628916318058605345091760335748559345989798540800682825944564562322651668747528501941537023041007282156527093360843472656333091875712589807159791541590587707147824511160644897591496530151575625594893124138158933131527907221141170050862607080407661150840768933150090553014631080569881826890858698980128730337674427661014658483368860452928037923028319673019677551185318896889517983491369311765700582004682042266541726430620493656722399953517323267896797823714854947445244195576544590184794920194573421982933459067616456527207765620973000263903659112508878638429569719487046256581258830504733326648792858634563464350261065882179392968008068794956064867485273681058895833161720358998332669480787127633480293689277822128116535696936751834087350430099757698441473591430553063149767389085212131527900551132241878996027551491064128102338531598003993257731571687911907941232987867719866868306613685071584606850770149265813021805761945795627162090245534295352528802072963508668635179587856719318944522616075761109311357220061263442914501675781128956334727980981717709988596042578011365537710438762785554297669542353949957279196619940216582272362907654969466743761229525116590680952408342682274913615320868951745229996671137235591016712487609651334592736825562605044118433063546456071936278176531871491005782446644859113471662429454615786360368386328719830056393655526423157904585523994581001547902600945514876878101940999201091356480207123275940566239360046067827849244583202034451234226783675849738816069146631485343208131027730242605539794447494216156847107549514908340587766281188736360198008935920617818805098172339229312774443928519149137707972562128447075944799906028498245586623073398046133848567402095106146539692424833724711698928798698941064754415175211685810696408249071802983968130839867205163698533228655739240049382798916401400059322984611197954470970679065074606979066440711200975969038212428433939457568824853989971300204207834128245381794149868913855605671168779224919508956290190258724944218740368909290672312413203000885676430648594587859399092437562729857117701138188470053300478665813701564714837194976065033852161924135202606455417474160542814014305270946542111831713945925164296309971887147731471530881523612565072438376014566728831292169376040586689616416925894430806429532809360147885092958348892299089646560900798117585717013292248566964553983999829884841013876116632248966173685097716781020333941495996363204007584803219232778268378597115334105035391091641580895892732032427425810259338547269309701669344958301708960625519997673459591002493313453000833126174432146577644554394426828250993111512055727795356324621148062725070339602799293801868466812656237974259436139441543303950144432494453288101064888600929718867630376620560141260777707444085806298766969338205434083757950349244279993107140232465318139024887777762171431023774543914549040566482390306708483452854274885198949674486068207851358814706171939039623644989191815761242438643385622215237994172306528309157112151492891235493438767973504926257413260480366659326016394725159164344251224582834615390717101741952856053754937187372214609113456652071024312064746161743114352798163126345596048007520179971276993133845217224990922016530685896398291130702198156827237635281183726982536280245602891416966489448067933104554738127197045486293655837005393478371150380701405380641911050920814595777546551478130800983682346702390880585003674255095437228020209822979115228892750948508827260927901141330178768971228730493081005664875127395790328205029731099848334709552278289645089103740689919216409010650645166676465460237149658208841091088121776867846401460277859150423215775274121915179257802899449508895124481159552115528138652059956687459414913392939199580324932656431319142303111101400674230430817699393685432509916341231298983184555719520809103110417666254204716946281061659032697235222599066441894051323495407417334894504292270000946490746275845162223645978076735190672723337714479451189491697214564371118119673989305373029038185203929705263509305049709343847618197611665187965075349288761960572423662744027411000252301115148196161433163506016959680240445842145667321746668136984222325233490014082386369864338728749962339161447980848913416257882985711328357761779189905973755452004075422615460774709915528787768769956715491570741299315458465640452772614616440693160873673774110639650726778498512615589436766754706873617132936425095665233291463461327987137131334282628613963637765710582853771015924951521461821711747134954491173321384264891243921156635126267675655055403777078812297414188144732106101344438885622446734129971683433326647604760558230658863512759655695675317385226599123905233144488751889745052707014254543164080588073803544113785269852020045307889153301466054274569441311094998333737846552464687289136679328050435051352468268767895700747955783787385857782761320607560002374827688272814043587193549653559620297175968544036084026357129863265456035076029677793269412419025822088459197205370223717687927333995440350621030673226108782274512652581927889512031294142834068505828941470063007034519087289936677560907113568497871116550724838568579815853190235042953453653916140886061168942237113001892600708444492978309658135338523239307712041613828403931841285979114474184881297121857289902651373123210773736227842295786644984403786389418122033683664335248616509677232771507784592434299437912903302906913962074103550987263002807099492163525078838986707438479063932245733226766982563456297530706927627526674124936353363194369737222475632690110175200270493936748074207985238777987365846903013150448977158342619812442813182095117358526244955074267782390794322208980786170550069943761345282988139379996387432426791709212366965972739483058373611433878655453654916351219530558445811541437824718521315360368620428755149524967826107064996000902103917385665304845566546579165765309190679180546169608960295279677077055831715577820286506889019527360515976775229867562370713389872786286917889259728656688832973329564850848981899287110903812613030789585625135576313475402730401508861118633279195737610758564616215714611503295152528727933392381741089693778540376822959631921167452356100882418547003629040329103345933641185228996869905837649887599752888321388302744907694432635662294475830857030455308885430304617338956561848242823961598745620408797157650543918117136443959124695731366488659159668973760214338480056066772962946187064192425420951875257135315395365483668890868615727172888480628510967148015598208046243835439695586962400687165913526040516146382619136949630086505267995214285570962791456949089838922384900307155941625975010729792685206891759169915677131372876567980553598599120266548419270529821975909795215502666087899110895995396610129166229790894985949801436827344176637767954821644604870304870744551559727013432794634803994381631867436907090860063750821816465875704193109909421918195279687342912451653545604662920470493669626431587653127167974167303677621763443607986974602374793174338854494877290716667043034062732616752180251914021951496140420872500088948517038369557570995998935754037306114367408784149924405665556735372495616395353143948097277952797741154824516331695229451518560222700005022055615655307196425999782966891331654656112083347002313523878775490773826296801098609029827876117828667879439622177091811764964493832628807165024810984843206995348702708208696268420836762356246663359753056937267773124384240357472921993043472827162087101072465994232995608590723819114456571022630506239477163159347384818462435364535498073076877456820479272947141315539652269827108711925010401450061421084859180675815505317130222944020272781994000685911394367248251770975208225892815992298066982414910021851007380704004261368514782241754781866467722824782359470799520200559911298351292415328880099995763202467955253350901693494003545392606617881726832047842512939431801108173237583525912326557008860621555286919294787896282256130962862756530682881655198647165080545044887648100787303507981636993147080394188963574645844545369010112267007065285604465502065798381302558818590896733963227293532258912792747678784380480640969913083562136904603123557344845186893541160939694155797257579895704949574765834677321839381637895692992968844136301345857856085076430642261366067324644205686951144658509736824724578144191583420174074536156452426086627928135035500734744558253998283560777522646416675918985473216398949522836182084416473062199750042029977649333633452729158414053990755319026646634524073415904555062169228677108928148086899789448698936789063815205256230725127372156594772680449889621268784409661540094111637456880178990388563140082505539357523738768605174636653197335686322730967877076563101566738158230804565946207782633445142765282150044091128312268719950377140315415413065939150862953836245709317433753632593585949446411980105114252905284207970596915207118342499454480537153104423236290300078511895917532734841534409767135074392646845295711372277954286209987352371923868119868864368004667883708957806141154288250733534251035545207805777056608618369394831951884597640005738836052075762542184044519781805871412183991154796665389821413451141947284823173134658316379607606592729827392900143600233944250622522767873972144145878820860778314243365031461406974512245808211165113127132197133082690538910266369087294786461423419922974584788993171360548128848981640532659679169165853544460995611945178754639223057241592167219263333434443067435763097035641953585540848768716930371881798230510798763015235962375062136268844772824417420124864664828416652199815558157999789235484914448826572810386771585448521194334654594126577710929305048325143216291958221185771089401020113277596446095787229988065087356270344477811334392845770538763207125004486781203614028265587044408209780446695717381427818519238129341268320030936211709883257129646681248334131123223781885875048195285752178488417204247271373088852129836224902306854488063682039232272222531900306194176529993509245842191759525388689742418715310011982086262477877622450515815677638512924594450624718973031459153733685226843856074992161560789262221454769898239765321066244647474357285490035119593529527421721951465235319330352284695617349170597115336287119946452380550039386359984252977399631873294787688466762351274738576564898306044224118281628657013027317907999733527128270072919727485405885726546063385765641096044382843143551474374967569524964247915763440785728273832290392216107343826563043415492177383614048021066988212454431584392618104791463166058939221301164272060689726708249119131865263522384806305684049603266979540115056608556992467517233684823397247203569798625362016122371899288245743089738888818269454765946350419404865409345667329116475234333776321713095256940779172743625344197338669246242407990348752647683920801178082325673614073271997197980087503666970417351836661209700293865590693987989289008870945626272432166973361652532766208138494476993960692721905806768227076888988415253669598426284155210614378230066380167277899176554131724809914526872896059912091090643054423808495900158618578568811577145266675263103258209367099030705788932566766483634988737131601682201277485514928051769571360381725636823017692789355122424079849905051487934259446385414862416763734547999254258380090910440222265956023930237966148141858940297264003385413025443912752172589380009318905251863921544504685208918430278934961563719931805848205575415948417303641492191970841043042422291965006433156683656449863272047966666842257182367030541391442130458866188568730661029570693243590984571875784730860964339340288740131089464503115965003311267992398848488422888222835388618940042913285137975006013225366283928321860583571600336907570743587060744871314619316759738676015439200186309330730248691351589157308069793904341284554581233902768996097736225491744303182125180926402334029279482792010782895991617340436856332586571735837787083163911665226752952964391713380539298721662194466973403000162192791996192920129010639390885411870079926620124494385345258426802791248411490465505924175217712773244343901134635048882516920259203734701568152348352745530998424406410282660931377386619275513412742227955262359082837051053841811329647530648666958746959260278698578099063980817044727641789510239449417247300139395437697244772187021096884211713377165944961701357315392269103031478826011024184968247166484923231113894622185265165503522845022037491750208763357582485904217802938743219139423400341064931742094494333018597277407294037328195425518565825814326479718430934580661163807393100969725353791224243550702048540552555387326767062400962285924141764826631741752552078203190310688859840267270455770609161366739683302734083560628591276012835451668304968412941654637711007397571814210285666826315856794610187407112668269995530563164877358586416436975504078586934508619425350128116801058201648455743783309365841163321468308470891947417759230432706153311027460580374763363921301573003002022117144145060267245006606394041865563042871430284727028473731574464252049955305137470628312904450028225042264140506950538226188161828795805028383890661054440276604147514316795536630131856200852459799364873617448010278189623161866088973887245082711258677519924829921604049438832089451539770434213356089516848516636358934356036446457699209581140449121891982597956137118627906781252232385333336441647147126063436730497560927030442498739274372296426515874277920905276070598321322819352492775443409982389521001821347444810295112036373802892029940401817129210330217190213929730187466959720268781882048917106065278370452087299071037831004194003013728208110475952832986264018990671673340785595043453716167885111002138356042935342679997964426734942838454104445362211148099419547043305885165855017244379486778531378333208334438301279231728223339480916792259475492814741626313315723432788496000276174027368832704937739699101548053349249389706144688432855758299219807784561693413402765496022200213716157425036059324823558836670507993236776908870702725634464771756187937226813264394265875523958413757066388184488990967141366730624300848965403040655166984919307903630908290767593309134630684160456986674001172102753732487694922479546370040480112715517807045658946756198720783837197792334023736296784540859862488730334985417111013445316676410974598372773650700613007196422519305559668457585073364362246321287654022280362524809233514169549378987772871273119829086862733065988984756170853071530523029347627314150769812240351972989222105748634174468296246012547798769690378232482962784810471060041765959179622718867167920987483147286216867248163750283413073419007406780085179959971553335567704138255273225262649883875174272152497830365534023671998880573029334219519262065207951429245469167886246847717883586254325902640608079062343699841423013206481325535295530378475488839464586780086197116677066489367556979841494550438436974020033198186968807013818564884266560720693866437492251153391537835411995576305432436283759969041585357938274144559878279012676250724711327732129240944208502664298942281921614507008618011381779935161458447657807304342018729438351791242956985754915070290099343771039624942214105842344092074132126495124755294928616122902027761113889054618165065730716955752811720658621705895053078423152242730391181395227143055366001408371589740493089288739453109557813997278419962952028354897117947584570721803838406703684695281252600855079122879594117031770167461175845742027361446662317451495552365998579942829213817981986197842535768433638702092616129027651414359570159902549265800631142576953456247119950915334619689545317816641631808881631199926701606285319887187534381255162758589752108948566329499635578136495806513334905199737268313137759177118298815388035896236173961123951729286831027444520894421322652021444233994204381068668554890952832561530005089608716441331766781192762079152294623183893987407288976796309339893024463081933359684329609025962952911061569513909014858269054921317110804222150882059802485402855874740419361680291741999175259667058369941019333530522797967804588980250839360915401338191690210629727122435762875901091668013195791346999178870995572577871206009323533636347627508678748905804297430788997576950374732665081555316368654947402930531003441006553304808191737226253116619231612517964084651223373214417506415469357992154151759829610688119328451209563800002492875957803717897877426097407574619979938221926162629437370287529999480386362598202879980187284972659818203743473046046862068031438430550205005095384115397541068802950519809085708291272284531444254139376640841418571042451349772331165821592686162133798769859063179824474273700873260095602625048321136482974687766559319275020549399230366311795054455305622877136649465068610922152002218370950486744035952812507266044867106949149737299424591442026901664818256920938992345439382865848712876616970371948791352685142799307174067143126471435074110819520690349637655833592647596202593640687605882525310044090418288171641116406795680136224100813044253039771093664861463437376431905213571186622404083346606677626931212656803873490867651256562631482494346348864548976928049206004581286675295693859853520028272806427045320944382928544939766505388891535031927620894752216048046405098552653533468525984146646670475396612164164581379857869556556165104031934597925556970381060324821699718426984446863840105568208793412208462532364406946943902859530434571965879074543511934111277712183835580006875985058618735865369200186725296638070904473549262048126106443282890283636613742406577116309732931521712366464891102887954853716840793624485037408729232110341671135565095967229461378912288475302384956173827912426367922563723972679736183708031772730879031858115879941999412189155448728246029356468688589276290323402886618166636198737121399123637563447170052400982998966254393867515031936183826403364409735590748708805051196122491645223888186822341007722300324260626077849495586374584893069653316534199485737286811563694555613054062373704245199443240763028645152457291390380112627339563377543985717707599006775732493876972805019578565975455964064083588065641798509723112477000208736142762401596319466961697653837338471249416690652700118106178116721364082660587952164427991761781701091844448801271995011629951183706716583623754155680094230369057511783361175596288195409090673160198426568938907148536096157396138458993603998398058138256154742986249713351112746405535508728272276984116106371794644921362120772521671591953087446732743984852703812356957355135983787962307478125309631811003972614185364495952126168862699077205782580010652272973494982328216460908452976773444500875609252240873348283169518169466583625454647774856835173730343403665812607395019571694224709535319498040173496932030915510298504332721314941410560679385883850258855813141375763842601874666325760298209274414619333163793031069888562002050683499499117342483063117139173930050392556904093844720950377753152166179498691722086055227520318176237785474343958567469135677488277009489498820806476064537868801468221023182447867067465349568660754199074552758259077666937344925526711732976214367898559302494425201363349173129119094130509505136837454402213265247341703811514161809822955239309126636022705435784000536794028965974390036324270579447026294501301754858271384714716811229954351617360203700259803564740560910502424344216878629749328579993446276280559282877354678017785810755640399455649128042260999252653269527503954856321713577489355219141019684060761665167670616179197355735799304879351109265354762895117115268396377415085529681356240125800937496529066826816906918763327071307402007545465532543833758204288749920973518164886658546739294093589996481584928267869919398529011008297868039844878114912068055881939443177674154464712974426586146235648414652009709132856492338541563124214357293744284397304283366797989549386884328846072402542475736720531391520309683544585862572134993629041340644313615076721887944888628501459685861393779965455573207967022655639996982183343937590859791956407643086123521606364384043422072792487520491455825333956976070839545771306409532900661518949386159166362918251492798798660801874113674962320648669011132423472041343672352087241384567405167915186724892860385601570522973826190086592208484204058934953235805918470618179762553601166558335701225481017910010826020959922474878063085604674799962643158304238784339386896854908807702515098558770150203407787877583598651960113919910774941467382539961268671206310558535580766627070442015965583658781073378481618098384016881250021680281349795927242630163871050211495042266827535449830739655461485296711865310964164821788027830771335032432622415581638268212690587700781335643720567750868003717955428175119175131563096804944118409898134534828994676264940729769388537898972734045178846363362937668928358297991817792021677962066035835026602279548697462641219869712877693155465626161437356991611426576980851825567748246983318074358717813928440010841317351150883591306674947210190188151056969960530146710334016182143618397608343316740872586582889215155901184989049049596043386360150428250878416479767237701899278927339428756473842525569734420576978828983358107692298658297994730711583260799628609363215547166405653003634400288099986666459881670152251047881192687120962124208018820167328956051847077340088058846884722072538439027855403736490259163696532954989221679013004885498568225673324502438171035213260497558377071116806803262796918713763818044164640553951026271317274030806640920952710294676874858540618135612688379392479351671231261129480526317182509628171064465882852531498938004046304482092493406349883421411991238879520422012357921657288884525394545459141409318311243860316142749032728147482902432004215036525898565114265309888659060326280507229286254174200423885064131723386474474932108952568081327729073687128513334543830283900381589883207684226044477498631629972114886968271903661560256953888686664138155196947445778919670717310863368055141157939984403957289530695235780115290695753302094008338895418366105558749912677347047417272963870077385727665952663348566681807300847809958805785134341990856138799204282340492259978330615475752824326131549686587442672907584899751909393696544148560777270219897556878012797231954794816417950012752733365455013712261912131225281951004448722156511432931885412262847552484416140493461685517222053475874769269221495188044422667080911041055968825526498671009144648012650573728578758449667081852026323281184024667653764458324050460176391718436049378889966878737582991623569431351155110104590972226179667619746019736938652756132510296616539239240415752677697839626753473534358093793777044737490707251529076433229081188476783286982208502818572327063649013320998442489917356348459380876484917808088506080553618837502875151276405459588301055533491310773732819510573192349971648636837071873887409749943237847248071409102175153327786434716261625341783754224815675878462565841709139354643366532915239652390561246211117247762663131033231619397198318690784124196137408343822957080689086838518879867402513602876776964067651652364367007884616911015721861921683461312352153870130462671562878929293533284739813455218706781014683719982751065940192003457462110820625251048718117206843901249183048704789932898644583467872436821438732384395336284067160825957251009360517416874186035611609337540116059462131802832447554795760039404563733974577470671154712756345847296053936617185763150760609575385928777412217089895457633346961621507009711866162050149267087811089332499062283458599363814614157399149839223093377853477792764365581781655168201431691634839530557388485567628776659208603244965791136806349011215903413836888492955443173544088075646679615400335581980926051032190212958914032419078647331224278702395040476785242158268569435254056363055868045787094038907131379514543364147881657128842457883750399051612129502634393170347397954299558120232609520815668505402993820922221166485350226226378559543346858544025101672876584392413897355778233145859460120619977786339713261391069318865257457841613506494186302804265506727257482840369422601501633196747556753389480855794307283112860466781469215283883673428951442342147274629743644208272465994107632774994390045709725746096989292094554719145862266360612495602791400536522498628657562637001435784411343952920172414787689888320384900652266520447331559361886554026318762818611952762479126597171413061717579818715359816518368784358399043079350491774400297475092554548536906202655394457330339011263750186142843522305275191250257980778594051004885649490397637712008477181209029151056867982566860874084250612439696300951810179026033393749042502903113916072329578469374991412720475252462014898345699233757693607703115668068695744193172745227366356473388986945174418171450779979970849574065421208052061502184265773135868351909232756182381458029859246334123709636218585439041549758092220472339586667427605752673483959153171807678695303124045660666087492669639783912443837562654668418294336366228219960234491920302453096329573589343835524709546374830290900251158965957448109634480809044374793908507968404938789373441829915130519719338530459153275002805017729230140207299776421441750741044645767290084593809989203249901976119267764618276532127382317286545869949695358517151062253351697199356638987391480214038048599245008986301703920197716757278505790365698013031615250422024057018989758772526313057845730324694885785985297231145191690753265219354084688121837244788145172728273367388090438197504588950397110369048860254854189726833363957633344754633771341759689453095782034830243564420985231406168279168329280198785782144519685158980042645601962520263766890071189783933193288879437455571010754996183630143448244695530785765370435389395617235633489232670821633608269416181670439483575169782749202633079706130443633397313030719585997104179031083410442050586964424217877231491950546121139802486183210205639227316862668336152990989998447751727281983598489646665524317176941345742607799653510399379366114958129202095043098290851132176236949781869606723135897824949443466647032320807165912762840420150655676829411748374949982816974724268453266661887545278572157499246700438058916812579957031300805316962720949862394952604693844522099230359517322824751659272523417850427873518861047534974865762728278708353586665546229362876978744267794174139001126486938304674522538805124982027221312807765391326285760549467099984449542944870351110617439061332271720877325897869460278299257465426983448833363366497232029438985163303335936374499998498344809261471122800527944182725692904683748896953831700291639013336069651744053491817520347908782977360195378786259714653527807090543593665521851615066372378248275522164705818121101275015855330838488767718506271025567567465250903303645156340244944309680791875404983335745488310414982239757508503557009936284633595713246280434554942032718724304206234150644402698205126231384973798422433893386590882652836759756493244734814250683785911314893476511243752132133061162446559125770157401664627090913915306701407933422195380670479858146606007114673239549416946431624854627387795211294451985061319511905696100687171489761529793450029343597550377520663095017094394779837861542435427545524145993322715694720379534247015501044776562666772561192077056310644204575922739071291278083182294020286263268030419225250487248400770284097991441428687145151769535703195516132325402493223709267364912032480070579186651417295910789715240913013652725342056053685247926283302655178404636426064195099633394282499526341408068995957595548638694778016397826070245911395237198967862159888176604539988483937821048086164289971795415753777960676453211216770012940644194702189491081815297466062476872909335943066440029809199092840617385807494749631052840890340779761214812733497210232241823970285393482168366977325941857016442859108311943686525236800383913049343259221655381099675887210973223883722289891577925502884711797470052006767790942156907557231762591682125997120805244218046721882972436965322195220489283576558444854487684884153815648495619607689365732214118517446316045428789414711019045018116965963195756123938730751339035268760988883213005463959287026607826165263566554727019344543399256055118527544693590327723622264564942472048571233701348402588213534083275510447710615839904108822738978477846848915374577089548487400434738202566866826966779710005166874285976945514749950764221814916829049939765446129579919828856943514087442884118969881869113365617917354183954250798771814284794896594155863429384081361135061932022897495776089019074990883978597831912235711611868707767894138089988393703815029807343515404383096522574281971408662995591646691055286882885952249635086748958186331733221312361039252754233321898870295544445687141246112610774868894371249096092508687764199435718244758105282712770629906775466556054994273201922861401814899881225443147523196138938179054284424884112566224694262587641230683406752965875089375707164373816789893020741280246957201656812842487451589767868563143685707007992665696587258472279648138002095284602879405120835041927216806208461404805902190097256297537381358674214478891729840794279445636370241582727825003879502435312661595123881632312869927471825041372069669324672452793785813498065212795084243011765272904955644569710791612334814182365916978150909784748194377878289176997364675841269064798650965236612518469705500208706201707140830019804428456471191288954229965639969791561019851619178294445827395014304747154983542333450519697749518540787903400609119411090758527572567599397405386634870573773349102548945343655296353468659845387143624191791768948122581715443130265451611118901574960299311428777341354280018213573398294410570807534370813182831628093917049813498995672706524844114618415789406294027981476953655953853925193420341041642843080903782688362658500970240669932170585913227096290939113182828160036266804359246229672843702536703988498007921344291443453039639989148248338312314905830480996389795452093883653148759855961888363758293053608789958752419850792599630032838323658166790637433274169770164882667344757277781083481791321374665677740598804659917925227469307019107756087805375116035106965897831998454397436202641955209943750486474397185953893137018448672926935630836087974470042784781556685125233727830522764091430803858763411848646263628494786176470689721374920420028942092159218197283515231878078203177008595156314852089650820747216529960805759774936168274969712072561632137260585206530931452222761396658513565713959732906922498530901897679181026580524596873594365154359698705233692562490760640268158848463990879796040419879433632501232005756682791453760467264230978316247130884786092831534307345480064387221459807933017175801936936534017107759182977662524977248963071131687320888550702364249322163963942050568259948832718628741886838876575787170145123454776652403627570626179959150905913815691287271990110126155244064500921186534188925331950303667307923024512757137179790674342933682995714417910486544458714263125423780940556390428884972455979625737633771395762861701040898368317210630987108306949971716657957051621127144962157029825153553162064454994143903452103178698614987600370075480690587625841813043995645637797838059137181678623123651183189565610054995775453303157549799122011605163320645284328865333565339188561897730382224711850462514336590689549700309128898863760663910351842028074026262340814349016221879778286599570432263635987273924522327716810747297715014293410562887224682481441636345280635209220037930814714857260566694546361002880554459695748601051309173192746542755712244463860493900592550876877210124380882680952762739339931211417606442457595587143381229656957209746454954757256549558256124053866910801917438195726186802217558915417168547037730192722941460875826815319439699306946057115264131448230021745863959208140371256987581260232102678651333947067823236138513361498138154641041507109623369964343037816792096345800858443667923063867241010760408208750363063241458179471269752244562095371568656002163151394661946045028249563126988308540660786680624133604426577776041172519979513088329360111410709786235026441218222022215402861452615100709453255222137444659497745039095564726648232192516444900764249346217714813645931754460545413248833723210664584755859290514132864679058605059488038419827713132383955217408310071788187849587268561797308359710008503998606535119402539072125023491676162147951835455067757942293189270720001734662692546363272922204443606549703693930117720382724700275554362889083633339831982618364772567305650716236258429632056331717077877297773681349293732128371815504765847060660583288189593362590317660628470460605516128054936295602425784878128915629673964425512777418332695753902469631120439927563415422474793290549256863244553201978779220502785648558798731765929232501837749732457861145433234647768670960659384613863039983771615108478760262051366728172096940998774534277976126016940184633896063408470220127938681301837583954813721084243458555907977477581619975412726959221619634512954136637004632827993578446946537115970323340567991733004631025012414019192050024275702612596346771074274257080256693416246833470808906400707047788203295138400844130198875275930445066514503814726047217466667109898138481592858715582857873723190391796728383971471258782983664993339378129011023574589859626888672709890973680204518528839955292765222040618735455858399395031571376674704987908764183656136397420663501060137254218282688528868390699524187174190603618329996713649373202037526424923219675436336399905895232399712587811383406541440906367548769099819593844500024915983598388508904812694166920569866653926174607448451850479340415419678975957390955615219225994216898953455896993545522208600851299033917913943803965109606317500720749476797680528068898578282381556713014222511420015156677402935381241504699970767885744048849829544958604424433610509941447797614648346454894916595616925483309924450075108790411100365274526669023200024709929456098351729464110382579034209839223511447787532163854764250328672488187908503783834890623266601410137517839306001903877368207711988678763731877495430829696383655499410641527992101891506547997191217894733856252919996198791140307581410208275101783144473268609901032283157305610755042753780082847854931650439372644202142863579928199648498411032218971726812548591124107739504435944552611309854263078076706267094278815133365789253042406652665505729410204079642590596540930891829625844663861727754816374276847881283435583216442296705818346287094008392871175854993228291073775332966446055079505120906561760845843013662247369150420244314118779978338177080204876417429574872721452809443900026082879143139296737805946578403265934329318800605510832024198286501638492895706880520028351154604523475494767264206510151126203009353821771445177305236461307844485824326156004663027346920295097820999998095678788685330736598580650639085470323809095081386270198042971551173889760681101872667235197223390393898665376354236036234804256968250524515001180748749577801295562059277706003272915245312493761294458118013148083599949012506621567383338786960554367733994408659783405886184596551073509456425679992594787118363107982605069999501199615850285925887035981235998086241753818049015475655220546468273424551189203414900127757467799451974100550122155232075283209430449695518500426854263116155935239133713690805281058239690290417479619739834479424146208101529828233352241156116695729351768726039502529571080379555816049921959409636975106484963476150743350127863950493267068217421004456120540371105964444244650630704772528559385269324492277745775534275096934569933979766525169419285999358920746172716412275107324717076813494305724634427091670153278139292030178829323963573775367618966145007230113838379983573191648674095945764081526250259283949958976087630879695011956910485723733608712205805782920426117232210643698081561266272613907578436087026203805583228977282162872540949811545205850907755906907589376270327221979569800008720148898854031717884047385773708189428935048805099336469489274435843714966674214616229293761983765103024286035324655902251851786208541770063043491135653982416550271240691150831803105172036495538523097447043821864472318773267892026539464348120714973695404784536330806236312950908824352873103965248754600463931147849642789688323640218467127210389467965075777110269372497502732630093449883537045605635722527256829288345354562738606660511155081736475723536953796210339798850429809278922458112354493317183982058329783075243607703950843545710319593920537672530257625538720615400978123561680419638484697532883152399159392246759308825870761281121995878854862346853135129023675394080731935987213445727838654410119180462722857563859226422085439359033530663544660157401888516881220656128544736519667866837695201900172062812500785257659555559629142449518134808622711622749341441521090389013627345282086545385397105376901310572660226839603010979806081313754644464358068675191326547999095726202136798295598243043186097370080368264252013583418952597927615511163148548841752366026739844741006298055332226705524899993422740407378340430024247987181490392245776695572076238009996588107098510368469639250867993836334252472615575276308566803692024825964282070028628596347868693514411737664207520251524081860715305997844262116742929223685768638503236598885358644294990965959368707177494114802802777215324846795627083191068216281577912103953222651835729815349323701441355133180708675045665862062651563796114698247748267720952131102178103489806905527378321270707109473027800802342651222806270778473749367997379061143557471911637775085331734451133710107850251356513409880250580776625950131651031444454333118142901842639873222712877388120825359925460864983550893447104058383379291848908488356320582088239693232842433689302195084930894661435734542227926867204746865463973872179146427790861492114938590215071337638448077583936310470341409911392440658636219625063681366134835580635986593983627850005603277129956612683154699570506062678595212504080603609341569313932507366114680496456226690125875075121618519095002549530014975867021926074010432641199534158096031705161618458316432592963391270031181009173002996051828384786490392879192505365243183424726820316057505759629820863916372127525414680062780062876054581557775926135538955191808493901329258330171444452366644899365538049621142737262562525921097178084499977962087462977273120006019598641223857422953039286662320533899756780078220605317076810941000257163163554295600511598426191781198675172401365609709965831085634475582777004623603056103566345438937724836781720501570254913720396551545015779475867595167435119283172955098617159732326198676108314649057031332697107677335965503016166397696447476256060404555490476572269331458015753848231349930743236822776485680866909789680194011928654220754827429412584112756827637846368249370742703742778457446406871017328797645805794427238481554299291061036383278060714373716111393205296779275145670606252105625554929849406420551032167001809313325601743986820354362286294990344484280248295669384308793557044101616680777858413503372208613418686967586648935567670081262502452554094220982394795894267116968781469217672880194820614222970495756540512221657757021177943761495796740249975202341733460453499512218230847674131938247704417421542102420133068471383705469994074647719666530155171645580126068509190238877862208201901388336872985283566738053745175933282003288321796563208727646298259777728322440794522184658931281636012414141171140363752435417034522360522397552874029757541853953795578693775511010357950136989387101811249130919480567546229500570296166470832374088445976530385358246644969938817754951245463670098296012712830004218396345505282963449251116506541623861243164377808456740885540764613843023340226734248620859899511778958018977466290595618099648966592902108151493813605927317802876251143130197409687492478344957038803097071026730453756576342730129770977978985136430107260289833321883737816592837043111014511493353675290042622343831878516403372049006463949992175565857123635290051516851238244185127027169717029620858878057742911118892860714218485340011936662393444659846401457090828558386781109856620688466561437230620461503673643909125634259961402251382516846733508673470107215786164779255770947844921647454054612112387031196540087398041526928126131146441236391126661693962155790753097381523977732391399855399372239513104793387602474275130187307811911720346435035550893356660356247271373923502147760430892406705465290177179492044395773242673559357675935396470525986622345981910977265750944449465353896878821592678588064669970318979026318969926796940365995670622456323644094426660083171112525276666718957687133233289279401057825179051878150980850583474631761628667062411291250849242685895392164079141673796251513850183130589693464356232164626242494270019127415063554125596777004178949450581306115471857832235163978019195107520400194985109680337783753385919000029969799226044151096434198905719787658157906868136653221433796323308910811488456656122262843880535844123004312041281479438826892921873610104232850469618119095359718238617128283420673087051174955588317113159727015665474684755464883884433924157896774567177869622931418683093696242680139048005924263025435694270066794487732614700814714709193977050894629619641122793746604806878371240106280089388734499204861793687927943890643577685689516580520786590352503739854950915826860044163551007849080958769106186405532877836222770977088207729544732991021429370410309683174304179729441570465193712314670872790130766649069612840953753802595549729825291482157110993421627954466519763746905851622343843069237085237370422529222894741093549601040931445497956912988770670409868808127502632143829864459455319799492935342451476511018014564707766846520290941789554982138871805681911789739656812114646009226096792470751073822866029886136491319389169969865195859827997114671832265623942888591602499790931367994419464148762115419249315988155217244475381834104088002442825884146332945455148010362293294711177586144002270336341226126538031794626366928878167107044388632827657043802989425785500009037119902598155656174874217534263286200502991644377710824545954842157253174406156717543383364902020697203177767845306830245998623314194983974262032471840084461281197686897607147095850537697282900822824687114626338405289774580331167748538519472055313123171434725260159471311967916535379677825441149147829969991888504232515329060793963051335199374579372608538575970832154896660013405581945995081624309904406570425229866616162333713065479223375861713570262062208482778632655445449285306256518374191667155846847056764397436851062785193598872858923258841226093600116955441710937423260292708866765408252466030009054473010181448258140154687132338742254961535819602181294570460923248908411823827540614727955458971465371096393340205073924281514231650394581898758733319822847714348389017234492426230088671558263909386986960814588179068121697707906633671066871317053340619647611068246338655342938733369228015155454717112440492825765848786321734211844201035450505473370815394287549445112653325965906926042873009909897184819871308024692724680073873003239449247203141919116085467320127376890032062286517719619631831941552694512937028776557385022462792232345529148451449862733129217850993499179145052472859095723310771384498191367867292407304660277586524013408311227101052989888240674364035586659320985845383745897858539906007542334777236891633497932800249204467721801076849923209104097788601572820020831127879568852583958171659227231242186625368190974941944892284559289678908179481770155966702758564610640483455399540128071443175785542812960864558288146839423451619290508266780767412237173748779966287679623139948503749047942272354409749284263698999219292027551747114100524614952077827255252500055647460992525610221481009662887965733861430283328069203989073344084094390039911499158287156301837999995755792419170001263381434556264462276635713170640541119479758469662081969045777806690010289084012466387574715934601748298970311195658488473476669772103758865066535446494754492834405656980817425994520198998786129392772638832266506746622188192254197700692937232379817751533566307710292793041225773253238670945318534542497641525110193726286889483249125306040388097923682333751909898179546130786192327022824362895859965765804844999642687636973756683858647336122334685739248009544169754043924086972211890779208017587346945082236124574703940991614645630164975327102954304077037744047191510909381313969612205580079002354069792581891453696940664486064372575779667165057779675648598062263488724984299674538643958256743674283111479620336770404536103858037299142202481191131666243278530081033081833383646224025641562635035576527423696986542394484132085880126680595052780501386024877847275923101216669656377403902523413685094055396360694156663381047904847900143673610331161496138844270325932757308689720772950342239853853120960969148102249585660539181337403196942718374436809943065782075061777658848783028835332520011464901388202431385048430893635275427859708126909413846159347758826659449961266438596869673202675640651556674172858949099699406890278334320035032670668827706886092396428022120799945233134030578463324937500906955950660565291954046032764053047150379125383577710082380955313174095666646142774208981184632542669831574078856725573227733794085968364493356071563293399384418527619086633908748272533370489440297756472720500208970850172764540406562301996363107719183004950867938127002154909400533057286524509631244034823201468444547992707349151561690516184719689300494359697524885467286394121296942937602857448853659726212891513475587258085938588789902949790169927269887738046137380825738733679190493236406285661049201535993602959103644777429534938822633162951669154276613890421313244969057319394263189007802031794207442882285633707985484307744257613850157989616744328155071449890218513827598836009589827471041016340136293849733226685686163107261349840655548092460729133335396612575422650678525404230487567744683161958529210870576791170331129593871001916941250076896108762475296344712990315582830155724376166625144626862647621501179086790634007710850943943868895542384444932647729283129427803202214329822319930158187322736585720980457191406612994891879369148247827895649090313100650535133772702805522062743017640916741053524610461186656207876497777712435015149751768146284629370247671708112615171434281980766605074800714305864400270462643731565869991254190258784850546813375964570229318263041914896994641427313251430449347886812725902509152241437756514917257595838303454304461816147243622949640889630223087980713276496482410050839612954554152920456694769252784030748151483012454505136507655885978010297184151316375426134916893167644752921970861110974376608718966634916803725110273020071006491082153549796419788001308360499426706770705088492652957348820331817259986286195088532878861136657887515118419041488226724470329313843960210326956771153788189028617682328323968446719896737806185281922471377329975011580969501707304607240125940166367898083884597515752847223691805798533072803901443290174633258401750285680549723350213201138894206252707936345156757470663052427907286425952100625165797192802820461620816633132785347323797478057705763246233987219999521759095986292689200437741951755280047856618806959007539522641990879569388625335721125194377577214846733833766088814473958590748334258073469833793632263559066762474337777879718709791165401777262145660601056473573613100066351276186886472815717819032006433906851512887386364796418093178332663742514107199368226826847180429652838174947187678171423433801594137565708449982698702798088493922189608048122730791536582411124406819298750267559820764263793853842849709086954355077688567531809970599094317845869849339414960651860513912786262965906854817692753739701990971667802667965921443387566002523486470423790620111958606592417404776416099760560947621435211251635466980580778157696250395603635573820138527970819113818742600967774546924444115790483194242430369409469906398256213894610688237441354218751186920770421323856501043043267939304623277212041686879226371368308847955426649932218894899712228553580145288386341707704172871376942335096548086082396219095637474352039368048917247680316023667610265595525957458351763799659666308143942040920290643028967295636128820175250429335512416465096507062799988985507781219818262238116519076874984286836915461517023579490338199189248830005001511873857956527109945187809133088821749291212999442428953135705394603317357083263898779984144496694265660522144767270865370849822143288147128411690846286858956734557031192174065503059898244581596618086428089479749426129785814201972042363673091761573969576231351954916936989342484824630326837644373055150347787421551092755466370739296667776235554357822072727615821527769220668294009667352002002336848433870863662645427665255947514478032634477630420355755727440282411905133606805679444200853316911357596864042402998823357548449983604564303486173324587457341050090375948085943488989380146493429124532529394021330749939031152908838488215703285507330773044605717422437721732685312994155870319502929864261429271950053931791883720698307006196914540395087660325009310648197249684104019619721015829442295929286497312910774311048484447703588517390091450448059375799540529478250174941351686813421575550040956461105806497602493100832316004207428411072412262407978658122677659622697009818213897953892935594252072222282742844133144463479545848177831675877619755950221275832319398493493897654517403679913648784421280427617956224657079589206250336494431760365162184656630653227265551110275611151186045846131473479903456768293845525531872036868031151141656900126880766349075203239057195865566462895443193310890405402929375183740557147562904742294398064385425194847359639133424255502461081274078594772898066044981922713962203107263772070460620536053564892887395247990240087057305423157864617995179594062153178928890682980351892576428939252984539723512882315674806291427345513834622784105195704577674485986849935847309688360802096639460073557033470271690744913567489885292056553416499809900872502943465713978432588914792479622132338724973710455197070204248282783126775226399021240770561646603206356292028271953704210823090869681709490737516009367096754479956419177887996067254773538423317604186090544647741291294032973725197651930470169840618919477612213185361714003391474544810068374750623580616848831129507455512532414659269460533233463608344838085543507200472470491905673631658479629717091576273387005525313893883047588956783798266343825127839967479119288427902765240911774194908218606498241766211575320388990880295346543192258360716704754967908207505537708261413421161519757363724029173607996576788636153807492105924346150498645877882596611801786579970702963521166114827314109922101800601632288549326714830436454016685352275182156436903606963164675500604795104522304180099244934095103078715557673877281392184865259315177861980795402046028718085958716549104569867094452375890372773684664874120450695341343563716997439726960704679700048962238344072304267027935769955692509584678448505581904938807357796026454929345739529679231348828367843113204375225029483361800678415955136012554724047219400908265597177748230999399147451849524570552838716053228320970748545616319314895578189335991927080315116185421008886230005737683064244972637954367982660492212363450357382105426265795475952518056541407364980406102850599199696444272921868914077768405251920597948807998168702292002364474275775375197727116161781474229439518764661687402247589539275252857255073073972440850307594846643694767711248877327110225829571666041353676365504600952049989100517944648322261053176329571038444424936448861087504958693728104903539749264601227996398396259892100956420728309608116998154762037805485384919991815743834918354462431043506810150331228610864849961277182097373431080643704528332829630048607931621528930481045483887904702788828132346134262121482947741690415242731491944354822223741545056785504449601821628820424246224762705908402423341941442873255124917344485652465831840482679111139003616093764649498823141149792254879307655302918179539938296818353862815638590899036998402191862673806505327292557944574573876629739846730682384830974676682335686911566648889511543764368116141768453808027008579084845686385990953393227198401836312316547707194676882164736319314059972978209162289423871550722385324225070011820675465667840105783063218384226214957312643431425613460430386050600875538571116064039176004101805220466974857825500447146676138612085925047342244175474953538575564550901654113809716353283191139283160986758147317889227382283997984346029489127033251774227479157943511940951163542749018692070131024451986120050494015890263950918174562936344203188626060786185195772504717354334432273879150678535248489087275220154756071644892153585199159849682347414249834208411633686421253225351448869863582409520191170053689530178148680073047374104907217256202607866341092514204990393103958903211776761282626237544007858799816372467301107785152799569244169952540628185812525934294983544777083021371749655602719229411963866204500659711449365561120003196304847696779709401078012932773312461358499139200675444576002703633024185345808459982035494724193200638394442380574615109745796296502774074520588142464310730626172153812012107957099874338590479502758616110676852899490201235118868408207959040717241093278877717124302239210293218911283562605017235274789262380858220608592545893226073039404495592510646132338395981549266436036421005641229074728612608180890502901987405508593837591461500344609629551908860064323065582194985369537995580664130178551578105299640462728107397447547983383816155719054341937264089609606582075686549711153873178013847100207051452040075968741483021517957331167532467979823708174809534106430516632922362082480486770068374832987149332233581252487834777534281183240869098887889211132495957603526849864781810807220259028875326086922298069052179461031188483137378237147077830136602608200789613444388786618625066058776864011822664276246934818788043229872262919731262555598301966799366282992481492401908838949087013009823456830953119588304722430658989862839794474932494917435537457817766977069569957403605226627125013172573345560430314086900756021069077779158833960096882658749624584651058515401490590544065169665208038090667835790411624897232056021634269936509455385764242590454339770380612042234282294175847828711850149071306778122472831742979946338638891137102923106121667417577038663813259546466786989991830666286752043096373448792041179308855967471256322611994032262081193075495774656176540326414100849907911400404550933941270593999948355828053871569209804012337818356274635015961703545371603537219805689945250223934977981484979433973400325466516356487168602614468586065997846304063055945975007681132226446601338158424690295643670538404892376876361667219022483995192825442800831144542210544214765928561050812558861267654627194103156489886557625847935665716905349655248189754445519872719362482209111641376540476263324080603185197684511531504872692655305169992542935939525995223926354280151346286054931186804612208793665242761512515589413237716554014274946746931365444694850377965808656742032257957392546330549446920021403994517056853136444588892246311735015392195155553365343820259107976432408340251616375637342918223753911619383324626079432288427544647390218728844296599311412890363959418905453203932846868954365261117824665153823816752621686598325502225172252555372699749646344525823886992734992194167247842242613245858365241849127391488524565996713996873135664500129149897961560731799533330363550260699921298956374418133683885775669790382740800853545947446015721131102088597889958170569113853195737341006332494500459601290710586815207873044954124589409824296682311892475330391513569964402522759199220387681416496760136433084595906735504879309443521885738626219379625897216266046704729464669540756574902339217542742415326089808316049824164010372506164816487781158333546691711976726416959164250405273014657540328469957664308481913164318775569675438343687203989355187345414329679972741953490633917176663643438498956784805645007195709550015856646080496944617342873831863249321566985749735300384147863350290077166476956307621571270744857467910460532885349136576167249733980833132198510129011945438077199988287940828334429698823044582845818133845272036997268479431085641286570413200402266550582017528256406835606609586085589881750082619861734100905005427571997768448747666766523337300997425584471245362235974572065749235869550180645722462617866689582899234763764905863123763351691028667488023616636286617267392681341588389489841384166855391148724338784678908168467474519614211422536944066346576955908539828538927536572443660013054865283371029513864118179104435358352067847077866779554319297261667902404896590219337676248297065397162420688097543851791147164506737835345729503585763255836871493092012128049237012059521675759618520342349450369948056311985369987352356155397831575597090204950365538638419220853123361787895560219937686976463253879378973135442912864010633915065766871683778577157102562811388183382282439089185056065490989038019012323116983215706656988923180571197565090908195141692719566220305251946888728807025679645809854692377399936617865937680917589993862154311005087223353689802744864898220006095855849832705061582351353231850157874541203341302741819831888238633303274850352226207710249086470409573374732983789319200316578369247455556117827495802286414694152787706356699488422670174806692947124458620749163065553454413401556403384202390995419588351647046707069175105233647376963061026368808123975965433740933261191782322068256318285067063324271019256052489315500761096024165969154156256809569747080665095305031736666919187617812252091765313301585655610432243884852168198179350103490483978377230702874897050112606922212759840289108718727149305106023246963526625177181637916594116046893574682615971571370933163556237706315914747089912521392866539630407980030663055070868159896399994906449199831391472841018960669599365810907215264894232137955834409931831904738524659501491624755873925243883836329769365605112149583016305000700952176118901202002414963143813651513720696559712697405432275885090724679823836288751376532024447918414930577657409937785383023298173963482988590651065778870622690931215725656991700277542077024749127043740885880598782473638724259142939097531451417498078965292826255460017903791056023452270471998348557406009994199370958847233439664537371369425492987146994986341191919604736689721917783627213820604580751968542981280044933196319394802339930952796073349855108767283487064147693465923282995447294500349002939290128813243707526720588072837471537368065058476126581038176112601930911766179517438120262617924519550318210344516550780162233856198143560459229974152782349676026536700579077890420675814182181437025494069289034659783816490260712759927880892400145738364810056036831426240395709848564649349874082005594914350427126288015886229502323999990955864091345553898923486095212315602695185960384469888871708235635707167287892592966732626708367103748358114143746262723845022403361340473984819451332321584967645297649653871894547373729620093285712020739461521907884086840837408053782637766291121002060140748499752889986716993839471820718316998534361297734872796900243730670027683941047308581305228982819689719324011983493837329580674453589824463525538595763234039103701733405420929496913831081410942917119759816879488189114103711401334615526307018353914702161951912173436854153298093933119318392648098934333139521989525058098167873888604460474918344962818540849293694275551944221019965333609315296679530559227543786204494116645993329446183299571240700163670320870196294345807860812277940319443527299040746193848684729282923855980008219821413567356022529370582834610247769325391593095130997419462093220607513360960477746343638521891962995913323620637649157304715204027774562379725075378239831884963657181715705912555167590138870972646061292178323176881760902593679931348405545692505757326893251508951711527683524982743167833471512153293867688518230747076537034976404962301563830012505596049237464044448609171451841105609206961267241757155295431909195113267116301408411629576074828245885640211930674742069740644162456607952208018982654026611365725344554247557251187028161387536964823738030417164375265205260669331843810619288569206821706345882071781966762347179035978979175947594621512614091878872303153873217821349290061712512619156521786495294040015757401992664849309058504553014501369107068995095487609660376436503833934267220522894858023066332461799033883533432382236629841721758955354932877297709517020333452583216977361018164575672586869466238747546513150757315123101945142994538663118418376310871435172576830253995096546653903871022292578160970564348152014961859001556552841119848913511737825913307581098382678302115251249387196153786621350105217914566130829212637732245223359195818128729704027323105720841545134520739100050007930452742291690866380966892044386410227811690473144184244711309889311450497102597799540424779922670933346252681267659219942148971545047889502836498155426478995467993058971676690743545028306344357044911480135880426553431984785099017980351232220913699978129128900086193927884969914111071437139263589028155450753138281271656181039122714621461308067510611553842109990471686587072545831424226815050442133593806250886200639357436352582700585146122519423352772166021574520126765082814340504849383467451135875710657876939276649541964446648047666377724779358317401757737532234910540773752627845118256986753903715857075924607089568338228489022079075198685459334960537422714591354484783984297128693992358926370180005978245613445160802046406989037435890767743690638949500650724627484311521388970433585991200104679804063803982395199318458793328024132156183581926004279950617477740732604530849324212171666187396067354497256133406824768691004730938505619347317036773905529643548785299916958163945957223298188202117109351093763139510600125659598431401336402448906865895782291679847148314220681268682845834249481591788492632953910142057675078747849956085451205154102117259795214936115667664854678206409248770351274404495107220114955518976175946629790893648165747987746966316113186013637030889198227395506919063276872240978869618363400998580662302382722591863828098172104265060317834158262973920669724313946086531300764252230572626893655954698702341642040933229778928003270394815992348442648671834082442948071532514792958989391909286350723082118737650162531415685507297568548308035071621921096204359425996518392649189929353878522849346956797831953902099824310950129446734115670798940381706067663242654455407344421434625224030622151201963228654274944547191573545420420501835734004281839038579527161066345264639150485630200365822246259182897257865022145891413123799879906531296098014205958493065401147186188279150573849059725148980230954969599233657537711645642597108317859273199992165989043154985531019483707453071115009606669758955554889352387544732360821279586502599147046075760830200573007041211038859766625476877886710580934437897276254670210053100625604569637845019392976774371422674138008863789488433981019064176972665064573978800039059797233796656370793007142602530998272412516899186025615463554018805432454570909263128907257048207145548702137045023998274687534294828611812155756378098194424303376775010265783208884063719114775467101637200459677295119909778316206457821415209464850888418831409634437550150467762523811379808758310054941237256823302709452559087332982565475695904268205057915152455845437129188629615043461470463273199753109528884620328777039746003142848057828991170026758950749737038897447800671242935997150609180558939586906194903828638273193205796642337935115650288362298769122151866044449708127406017465551440737345691346171009881791010152679863791709981938313493262319263460495467907947205443061203005077809443268745983269243288700926778074956379696941578650354726752570617368104773818671679378228928175553838891521207291012779568404551406558569093504618317981972192746119182013528570851467679866781718035179151495894718930615668308298145267332960261269644863406822153211433799215025854420751595915764798990730351603626948384112535208523551620494343668848231063535314244674215488723142118473408916857653871399170130876019223481930503325380797323296367260030553643058756163397192761242507235190563673513759828211577844932904978725654945156381689282459217231339320778607709131260218708251049800119068033999817292035487354549270564845164556960771067489396834875924814694854940365164329794762654405671418389118303987152183758062833130729915864197601059478822865350651283307042786725850574941958885299839748874261342476861534581224032864997360216498481445067794632201783489247466245643502493018962022652052357724459192840045941197724553828653325551542465226533590890530014122088647357304943007902232127669209266788877317401991578488542038257501085672172532490134842479596731133706769382308539455105574650671978035825253122656235622589776985009887518643286330535632452556170454020953883419124642919719381237817117476844302073163139683540108045402788820026717786928647007233910540600886318680577668184397167941662514394996152071578259418312888039790303004582281895874242640317500343470298266724034449200544078450691969869479604965892075122740580074420802090850503476908904485275111465868972482435557090115744228552729563282263145688933057013731711551722465882828798442462271599074189014221438033170809145701414861898982708905641506649615136081379220293018162661424488572346144189383459973146522010080079350672776373644166936839477664208189386064100166165750159606564358701032259549845732268679261184805323646391749649309750214675588008255864948168593589140023886410121799648394055397076731113489309316252351004394187943951028309284503029936660545909803269682224494189755015348579327265865989011013996571605052826385025151430688458635010898851535936200469468775826951854034551575836680045849458256865356673519119034840829375941048823272682390988807606188880192147476913262032221838931875412358095743680287771623847612248057107555943529491178508345073412943981493110464670512050071236036034007273418750978661456429798925643981548806946828194582197304300633322353361803591565027207121926560534673334302517980005379987307420034348678040178169733742569365151492004215353710573787321535659525491587913609712547928138536090461613362353371430900398191025234843056843097967815809053368256851240369706895036979060410623721150331299243172966480582071664352861600938167276149331721151161023642811435124789392178218360381205853136592181811189054718240959722361322026662895516264035045530206368570654224479186583848706810777685590203613081377753974752978848820353442964387734784939931098509137596780370449405110967988581328246881392543815262069894019975649334354240861062869612942049528245884746500819922882539433075373921462556777768752070654118801316254682266021712201803880617184836367707937790499454845254542756783655476696805507832000331770205200127526543876389802854099385542231321385491438111232539292494391294414765505049626680508654746194042794220864580039346667200805797923057998115341544890474354143634157344896039588716846483628109493793687379732612216095245433473891132142307365630799489207223446809621576065904691019374086501449858457027587903852339025400721602410038055178910069172828338573200401722680773117234780381819047496921375145259642684499901297090930962510234471979740441671564107623693830746258807901987865620978455243803210524290280529091462805875783424945973743637965101281780931961577966259733642157822110924693353460607056445619062861213119630452490608959299198463390625841862527899397378644868546273711925903695071475815920405065209537746676816310679927870664731979095648791556229951331745927020174504768358283578961548923412581575749846132754017232539785961633271377767475479394379065547188705860023247032851271804928875882256335805722540544794744510444061284235110916499061620218860190408921473753410754373028823286381429488089335234726291219344052047646817335498235371691831315555730866990705271665797103484955075861452423181514692336951399423825901273989331655575877096638733827445721687728051527506992143201968229229072553315439026518042246332422083970361921427915884034311321098756692915603359410297922927758525942195550801780180588119583966761747173053484993754284903413844370210003153072445367596806814462222287628093726779136553375962540247874867708266247644171035143203772700294854687434557254345879165240548685404543502998183998416790530969943841552364041593342061734752864679339440380499598927490537920065248931632653823024001943017498876773584835549147298420397865406657588408343526392582253153806661958536813572770779622597429430692872754658200098156993470573844028903142566639005337873799577678463779965306272572047296542801765645776048778765967391984930837644042579589341425231277805793192932185406890999282721406881860632132506881066141746129698655672029983540028560049439131496340084343014391184151950605123727947437406780268809609400890955616367346755491724796575349867398168052253001587176733123376064747620217812938754338936129722438160561701448920138377563354679258432378318763560574236751672822630062231871753713514285715537176500897661831138327193611534612859167757683611241669717524192270170466690990258263879164873409083241707881872156386892612414157591019107645402155382711883351422555071388828481772333931901384307307932795930595309428825866633694208363929979996606369912796261844750870019421603906864222721075190547274670580089236594585121814199483140194718564690827862202126858440718166809916451933941607089380135041233191253976681333955009979118457691252231239564434443751305343572296520012427913405444673925734138240263515057825159787853933617566739760293088121941933233712627644902269894601561981581790674012812421770534288130447066664113846042777824736026902729626896276327946562834067947309909404911329301996149213255976876079566652935558562366641616293366571173319443856463479984927013321278838577472733419496446153427079341026347429509386028897551182850757062619187708740314969863964555455136671343218898507347631506881218056860311453660572753029149429794965908715282807083783523906629421266830609205326194316203683006257710421862854652271332089256538893573350836282183410451283693283883898270440223127468175531032329642284506304736389628564908202205959626210987491195777162994674116727297951798094781994007199875625582006659233363885951264968873780219806897662410778691990880344492486879428820629020417866863578217591742695653379986149430873346767207459320549763185118646332709630161385961283326496675361800316177580472028989858809975191932671714315354391275262360306030220371796920448657444240536620049536573390515093477418021707959729880378713798885996149432687921040139226169630407821643467095892179169601224825062463378061745277736492518538335323549356769407170175991629827107958216241700074660908034089736455037052957456258515831873393338023292139478024135853479713700602645472076491786784595210654667160327658769780093218653967695790620153252798770770101916198788871862792494605607379458254783422821105215198908283947426987964178409547156821826523101867152615285867954395624699470471373679503572386600112328596768435839618718678962427689813619947658264728891123619600080277307413177494760217238953721465395188322023437308974216403507405971521052738887089767919886653986146063463593311449629013685485142697987388469124463873769316204945083799343446987346567908715873765265467780955969594851436402560029159962483939231980463519005639389911619119925926571122063886362706464514272980130976605868863056461879124208305948404259940411759766518057130184980066089260318930914731223530807804888318188384088835101845038567364734600219187028698437913398632722385279201019629770365993039725568985236740377681061246247639572402138112013319607044461601183616781527699275002543202574790400519051148193637829831736540426688126019075054655673862157214524264090182618619803848826948887073503831625126450461957211959745196635067477139527721499898731198557398259239337870858277341497456738917916265606165696078891512469456085632155096015871128345189541255455979266791587854521367418914083404157984321946669027651917228722713815176093138823487185328403853826980659348545566343510096565501819738465792575874721942591537974344034456914553312412134980740923496010204122858902089862145742179693964964899320671496591142617532098600118000931893977819002795867364920601180149756255291105940196133796206954557627165963464174570900630783761956304762654079836115449703477753062283418344889301527060146152658917852094532797346021849639560640515406652333041720987311495388951168709662444445452447768599163254427187840963734401535325203842125583661357506821738845595795181470745692680736323883934732453596743404282949725812197423507046673063599772691160197677113155760330497182869428515303038607640933172367445064075241288192325279559106614099036043911223007809270173750392212814330062115635849276987758221377646063208501678611317749471168983687858547123931038110752437632256907283621509117504794014696533871309876772060539934358328387368402766892659942697207581288341169142851383911754013350287237335677495866234964729559562433609282518554237958399970078739572526038587140707983660325985327497959256513908668574866920700374657890290761215324854123471818315428904755138945117871081658595757952069526357484652122611714932691840658485173640744993052401354839755620628164223980028235978416209413107083563677368648550166673516949394475398881976578935080040216457416036728375083334942074501190039805196642019464480681014762452962769853757205593080899427668449098445747477479008430897948113732993281437986546363063160067521208096395064237072734404920860971412318525835224410292797464601989503941228510618841513061889741896449972660113651452408084842308888532890869599876990970866517266426612327358811575589231934794037780177228975801991769077528153288565350838484747750690205830102059154167186639377448847215084724459821820513022458463923066794518293649098755679274494759786968324576042618399315299327046686388519053821175410810130998454177904436146817792454683101482596427366917423303243629990545595325579463841804567585900265681175160688470616456882254767604649016646816328897324635578771418169274382748193153722878521562253900017229866825594905096791854631747868454808404350750667520394815729352012981839711499608357958305852486260812886331226829508140669011020502601823967855760503091278238883661448853644824077794875106942748783001006122135158974957234891927611857432816148691114856368266312416401329569178084748897392383077484439622647109962402081320313332446406876600126754146663862295142928650060572353961115192790052552592148541524472858415035423385754246023578401855522531320747206986588406403824249983316189061949965356163612691395880581079590800606610633214410149704039971318150108701361649019461068377448553021656592398019821887082523357629152350743948558634761929248482642633184522253750079302694019381947345916341671315063538077589749777253679310928934434724255551861511685208531098429993884284487345424896393351713837638571975196444068688063731746036863065018145422510468775568295598006976525629654011987575422588242598255975443667454112052480436079767312777932520077607468690625944353529755107591660646261709206576697082435939138007241169859115941404859117770001109082296224010414169991996103194219133865643990183534352439503224820856295945395168934043664612989067033705537186549503835105897527180627717995175827419622224477387850342948254298056485455638259431431802532596015902981011021972357250016681529792407998745751602738579521903671385737893766592726522272089553489524601837588117520566421570667624290438320549953025852365710288667996544976751198728940077622159416812521397415327770985963870689462472878081193996220823544429067873551096230565454557669249890245104091289778944831138118319391938982801825042184259513196244868729091980669881346067547821016583892179133290955843748210844156316928050487559517557511614831350454360964172346344721768819303289017751031178345530896039564698350678754464262710286596114979425991095325491296196372475270041753729541991221724588980848504620343309073998745481431542176237399601627947472592933389019942637766884055801129018563678073224166035650397060011173377438733224092927305631181820433921075835434624887898092315219213393804562801031508299143077975009934614261636286767597234961325489154331268290594697798841151285824732809642701903314984509722298101981609084320185323941165774452835618433862424345610605057431793778943331399709567475503426189847091967511057890770227673380528519402674112799093536816856159730339792353558422443923744903730235621742050094905590893707578064920142749317728641873435553526848196525223543149928113217262519942623765614347374644507015439674906655573752814588201795363921160010721912867814557215754880466213965394384151034119123761577564504277482190682436291283737793619324426198822791056755113701940701422994401075906041099538104447661170059033148294217448714754475521772599895684651223092545550416685357677398859104828490200951356719040464031840368804081818867779751874923597649265721506314648304607490759928115208729983689831708419981320882805841502065498396229604155510380235142521030009125183815419292493334026018501354631079224640698081359771677383171820606217105920416899767525118612392819273699986186784946336126892887437813896168658001915301540530423597975754930714870974606059183323460333714018613213389514507061882225818259879570797975153511672213707291465263910096831147356089974410811690177739917234430438498361613576683248264481661264178715063631798457016005293964166827845036347753019356874175655191565851288397859143034273418519156764668990461964133200702908239639577672118690373427073191679622418258445662184722515720250174423174520146461537740010084666809857975792881496020544487480489335680807556292047114553673732071804612609237981882131349927402811752584999275446530148445463906815462358429242768251771552049809383291426249887463412028713437148872221537234971699969012473900354738421393205259879942004910210532100017920799937078408906031819294705302991694468579295943692182829420783420283033863656552405628128658271000659144023097972080498540280909226769953104936836549234425703067193031044729846361330713627851909746803060029759213549992307347166463493635888528771002314517496769257930922941009018137993416655141135068116341503324210286702411899068817688679346440587316383014173637147295458514157991405007579859405205875507528989242085818857841406061048340674782724953808025182905444674893307221530819013895696982067093941539732320334191596502854048959221966907136552150555129272212600521523258035543478773823286856547495826042353646376635290116122372403062935482463836839827047403645892312449405918312053092350448189664568052951981910308227387135154725178956347814692868993705501934684569540694118773835509971555175560576450906713756802299522649695775176077419735109587022194187451899304721001851855966885299094659816586278453253079049829651904422421079690423732088384379205859574020164937357074000779818252744961293832420819852250600030089461568054226242844350896878090233015371791152081586302589631214363115697524576952289208662227912587637671342278618019987016420060327538765739865276715293347281955972848956487438735247154762067221789375083532784940632092901053735835017828799889464312240871375416979605538235802357780540456729327631657923892191192158954509193843149225472441727152540132649796926547846739101627138810111815203933918359693429242809103773866082060051222826442842157687436883288442135577481208385185542539122034014836406369437430173129378768335547330461596507572861780429346230379564192729877676194469828055202768337747395388198643308205693075442597613027347117577730985505417735936952031885911771674710009399691258676547042370809448960026257848856172400273951705487508854868392978077229957781123010376713574814178589075742008843654595487677963487382556215583163525263295696900808485711973271757704056650295995170540814357836468880099678758149296756743523817588093083542510665424903805549445888129980503651429142997559340087472221285235201150248609990593468256425860754845608785542673534614821743848608240660238842812881656945519853716839753766773505261791360983293380857309119455349974086418635188831723743971241612179268027822446238458136154998437254083895597387309017299868848404626184554871896830002883347947204434992759381566873127505747860034118539476033382221000889754594980967759921680953906629499090019494848534574981227241711494387795126612577309367279146432671585944799300627371734430516199845077117733175585467480023767013040817417052056066069910079076607680372686487619468596157363699139316873899605737071185489850911290715804615956792240585873103971444681678002705471104175696084225587192211360222795034235751175783959667368071154611195810341446694349945322593370191807504272301454053879384354718819829102168845129971190146547850765045107675876654476751844559550928591972935851930979400212447118827238023683389217555360652672520939367836261391353755994445513848613234346276532274135056095204833055695339805785269382574441538771917379176689298312286424981717388297191026763805066750184783311817512663560986537496445101430702075184751516690354161697383179308571312101051369052536829570972688605415590154872253962622357701598356445352878681932123344112995941470274018232632983881783478126045422515572888158212041805015284316662336606332672510151794066897442282756681300798607555733004041967868275953002064771124056561047018709602144306203393969704272998329727251876098865720952888873617417665840976042413608060106449054454104832187596798780391034321986913244871934195616713592656725600028364475753401657613005507160419266431943044342095564550083705950060420676301440808456720650416966431681268338628056636218098826220049934953225558463092367321939134935000655524775253056074661829457353008122143024549386136678495175274651648888057178012509158455807111878713321838431185722629980749654513020956271742709395938964483019622110509473473451293486392935041150784367562339336311226418838816675531896783199586908387224585601907403024843113318016543121144744144476402219752769498472606168149640574212800965387566131736811023626975774962202972244970445868036146106805183944275544248042133630937552416682007602048632471286090508565662053727948258463852063081490605444607133568906590223209790949956119762618721151268263843165467417387111081025229658082599657723765102396182408498917545290182570616977220760195610213139839492254814137183406019081913343691679077986642693872830569715922097212475056716542728833565420683116911330087439308327924355304342618529622968093554388218775935150474083813955672652921792849230443444502729590218429588391993665050352078686734879902274405197073349148932865512224613451986556963739295993733367909060447421003343690254740379749309725284505973351405510620466127268680060629095030298811766966271446458590443648838921335793309394577028165502887953295161791485345941755810180021810715777177969408172996248737829019633720231808167645206882029071607196466792026694820054150167660986448376544333825646403484122892992178225867969769548918438228801411575299693329853015638497596700800422987474996598579784992210194032661667068233674354861351826005444017929132477820401065238655630185700567991954155648727950482663196043367361222261123863556020687059735518562555161181097394612611765112663597733723835596149277189578458276506144475039445157211603996508197156549613735196892042160958827698169057445861807910447691316042452938816805847722372734871510611295994305711206861807861808698370050173241546090429575145666417452438660548403943911836902595533719064596199593144581032943762820909612881254272232428027561053326498262675696353671164547455589336566301333357821344410740989468269667381219411958131659613956766988701238382108044954274161811671492082176438973120198011541178150088665120854051042832671518576983996163724583351329179901307125306239933703113536594755378041439378494182985215016004734201502803689933763355445072531898135131784537180079752558727597007631874571606230738415050608050573116997832684608354205299021427273264664366400848845909027761119060245997706570016146153523859933173564394084861634537627283210707664341844144019968422108764455273218416327020820707377931233324655515712217242458572812952340833187114371927766237870132775856262311293764647484465033786632806040877543879676317406163754138479772139161954847792366869082609036589683785488730672180624487759942311870860021852252339981262058925297561264347766074972131630031527340338605320286733425196365244612779095482525311900928291902699647227589979722821489817380460465139470890377507183072440645179553176173001290388398148355427882897302411237777090681843349126791788528719575636505430987119844522938971226518626427499193077021869287506393285083686407379930458361608797929040391250847897690062608207586000879722839187361221639804125338860141893237963339148334725344109467390717149164050433770944097078275132223513226269419110606849664994219005734923166114705435542257668542730272802707431616917780577917594467824237519798433578470922360699966080348535542364700107555243203002302835380052498120234493692385928759126400455252029046603287821165134505674303080551649814370787314250879940237789390485032102570785091219925064154546213437174220434479368132589039344323831066996772465490102435009336309773517320265008611002981553711010836579757600825176748759955120602504087335342237137416974560289301669322998868382206085726786457622047344998511843853674917146786735124649734517125742203433778610366158796554778198213622502420672283662966415224625067079000444974560790479427318773090872893523246628654908547739305509103904980118449541833547315248035448661353944902325646337474304948524819002496376565616449382947069081691657202709261121167370009295529131963025323653768755690366452168068151000162489409316689949450043570452584770577794751039157252852836438407793301760316790571997861178446843590442275327196281030309324681168735343564133566087077751263331544604198817017440497043633324174194332835834271202462548379430470493717047844273864305136499460265092350884474301325462423556857122290537577737631762539983071991871406312335543805863810408873069056929348139847057012268834041805017839737275082584017641509729171033659010034767193940584666902904282072423845131363079941993387825977488638609167898836255090037823103955924613089380520173551552758754577876995161659836416030626325594612674347677638481277979174053521279145043520619151626167314807427897147253737156874834091710210762604911551482295443324588694391315529800342635286056509087086891388041022925958084711546450250117792281973080531370508928672393021250048920788828137207663667105976027176461745359634098396403377903738658099989824239243619509795803114787423516475948596493641474926904734201633396734668005931456901615045137272666906643064593857219133075727229772162587321987601874391902231848461260189696103621019665292178832668754340331900227710725086426243268039598515327716020285372961125383382129783161809399903185876997232412036474158061212963357878660333405329185689591417498629003861722410168940306687908922387698081875208097030304317424349081966875925349439792650892738854037883463020248731774239318694071294507656528936462777617907221424381369987172350223517617592529294952752382053102932596934585959471703522905097112941278087058832696928231981306426742323799006829518224483288722855196055279282954549775018984155621875241509506341763567663272925051110497850322864286641537769225974475268599203410209518894152815879412272856656972627615779256144485044855018290941133632381695418546061294922650679775582925359127521956539516398618052552385980841784411919680529825024509449482724776615974875230477017421083615318987596931433495887642492379649921135796972951153233927029080981769648926374681783326747862196887165227409271266968201167417249063577249114115220586457439811349450017716102354822622893831848065820608425283777539847194013444805235273434896474584245135992578166573157973580499696794850970602719511260453047193915883119827430612747501916254808428610535867914849698222305474267924717989459699512098798657884020871827116386055182954171805175854542053429372642681763313576954269692056522749625716242058007183824244311966248178851415761279560933826802241301361719624118172704140117466106983760337934994170773247293403569678073943403103413455198528938268538951116486247783906204588990935633159895422398874036237135097234522189088323450039313314379235077266719504195001822177454002536407689378373247513482187811941359046951169566958714373174318493712210014272901547188768516789764276704836532413824246345071702692348216174456667082793503082763003861251303232334851506269683865795654669922068031228330273669673313329318755942231831336285011409456942978530818781698395304945412079283294161956234898187791911117687029548010615702106148277496908885777501303231601561972807557157455621296139495897830036697280914664516615602504892138277658750051228371940874840794506035369992987076325053576315006100250605509285526924864892436685399354409349818778328427439995541089593627468495752300377521103732614216969847901252592561606243318781686098346001751005234084109114610556028595824678243119850077907455355130574060491965304435802584024533115175490136295904794183759312915850451095554923061427069971009311528650768076291045572778761520378069267602329445347413079444572811549306367287896129429200007631417417367187169645488855418730691123859466606196467567516152619032222366425066856567106226381182302055969906680532330894287047880048522433385152678542911666283291962211067682640838393315200450073498211769082143867063637211088126660352878968223124508976395884162358202924240523653162054671752158129996682434850867437783907229572164499577289675575775720426034545581074928759203355811994935576011105954363697194880916327774918950379011689472144071170586734240048735450365128160239351807554760060233383561635678892597106494890810891332716087016860544302341731543815192401326973689734716293617185959903977511134170015755196475552973905795359484576929292425229739944444107933492591233344011550743954308977790094733503986449991123913440780891967160031920668810137600766138159251979683581486260994143746556140454087964706313919422777722893318265030736760325713606943892703893087124797106964676923570338698392544018695363967453752074688862779750698177175855479611700149345713933957393124672862394130416424941798892437375595437166733098433564002191420720373464296395431173453937541732437911364452312444307922183948661724200618000841465812018422097216482115068776094684540141977134806452473123551170883464597324950052066796441266769865388928820608526883706609507419545500782287728707852150021299172711307869929244803104799381234239703416445483405349355816125885059276097859770926468454727031403797293465816320343339281640266186008992984786734324621184256878709285546094672554866729845500940485427299746657115005113515041602240839470761392600600386418466192810726399216141199733109871326701006409253641460273022056923797951879048660754330950765113691774380052413108316649328813647141284984063727455219321026995676891473858562108996825776390489941031102741582874530255933921786584402059738013719065995491655098143753985671235023154380040010673495719059513178044154378410573156461324150202088395850431132765319448022681807324479637564803571642617647550332765513740675386454230457616187697818064208305963860730857225873719462272529119538217447359753228324613749298360687664079409881797911941755339498678558259292409352594674212529737942744845428155734090981470973943813989924440116099054536669052674400195750542828057669236007836830212092487383480049137927299159042112816949212902387210808990775500263496116545347534232253861319192660187407126199584460597043144796327088051773981352246469881858375249202757612879387916139424771788563082252365988693800774858989012379111720656183287513110780251251774242289052034201772430810028367685310504984272738024333933068958600504794521472927264525438276283846227286805399599046899939074546672528666121164675196692558321190352461342194788667682160188896663028369386132810950412160825157892153415909412608835996335264171421253078759957609334871013927759067857707043557067108894846416707922632570881491492966879673508119776670653600889569571647730281177561829354031789489908614191203984029555397746205479864468665732703200586702292991678742023237617320986275879053682186736554421874411996944681522236303277149195614122717177322801519152132846975267439711600826401460877508673671613045568589746413350960646081141797215121554062207504834891839646004135355544067814136475251515193377792923872860591599255924310438882602209062344973759528283928074396201375272923522819644880907010982631804218869145944136466835155457172940848265114729496686870558157868231886440209523447008787438324682993087543485727695551494094396128857308550574904392112547820927059699068196828466398099571532771160606277446257830751391579415411588935954140858851130980779694734588912542320512305023846839632473846149879519521819100924577555215317044689933756614841316427944978335388716022159362429055762857864914373391159325796385555773878464678867986565463467214394181246085142711538048144404688814581811157154709975868516466895441460845148860122350220914136194367450086932403041501197502278548804724627430958400047028948695534866911306154941747394197538239711178807977099040053107263387576414171783105752219650347958761963175053665140848657774576472475236248608201138795197968104106584997849094033652864336762820159241851615514492091063735251977352344113473950668985082001378366353471410322253550591718479417125554474065747753967903257998182157830674452704104469286777026297233739450400449734997668448219963937692714424199658370551834027627160773952485342781217167975533374272102669796080105470315575994587871325925648016233000340222859704408532377568000494455840544127730237401456242792929736341932679647636828967768255370159044806195692421506499976125473881815568051075356139339900889038303008933241032703563236905831850212608955327263474538164085025457353594289821769308434910314263570157253799509889525133534507886617316191991643153215365582894614790020883522778219108411648974130753428905076598345090050621391439228327270636306768785510701212986693156201041279065335198664275800274535930938520732958834260215000696456969351518414642625886099654744320714420294895925982314121694041370533157139812797135224273065870397113625230110099944849625227473888099397513889545875565134961295712916291275920953492123567239726962208661735815023284254330047576092817139364087555340479474423563981393503801260780929753976573917500575854594219789136614264864967667338434554116168315736562297856707369229773367048621377741805002606808566996815152475284622542863815088735384611288111873576941753649266607256603859135973487290036863315749127105121333268088291919698621659650121702727105956352452221910856075276362508944648467151445521076890316503493487044121661418642274555108230304753695466212687489649635514047599599568801124618433738075597337424906472534652468358169128865935783612577238000443579818075682140490612053820260041018904602232143114315469891374305389244674540281132794045493500355296759738101650589995900862069429429915197843111217964737457300173565012327658673700406045443276150633842538548448823136377463688251228020582907100483563132741458463560629658232885197812625153505398221722014189983210378589773346568908065108945712927897867853447151747979371699576463205106795615856569172671902584749300200943754511713155891571356202259553218648044779826919210184789375317977090000353247848876233410152087920688478150460353366602732244183572187218030190712633777651854023382162311332124227637910283381654066135255890223209240369700557445514731336873138563725141606306554821915117664653361233999574655942102678867293230800215275821490012352453094280522962665794653800536882687431677787015362986201080991963977225223515223747385931961778555722408029133768200355032803730753927353333686561755783546687354899255292517906672519317431162215413392786232573455781146346872101426862601281900999787720352755278327338865965252414650920285609256728327147583234897304523146300527275174097904982350465244836935797317992231573499419006494050018209729236053088384227021874363523860110963856185707093376932886524358016173927965195518607843959813082400953414771671838679407324419468854357059117493278790682994496690018446548906826520653588355475003338634600409837623860132966917929517533284811062519604438356023659907648029357153701905949717910773895453290631376218066325607392241726862948114868901042812537995018341293626578361362746086401800040981818267164326782355740763372059113447583167002880120644559069126861278196526079950598902564685357865882740654753309904353802419365258764996293772648753111532482795570596946994785243008992091132643525227722899049611740001334604527175182753301456689115242347089767860541620561723429597458101652267750628781021341857669902681313431563986331250641842782667552841980537940601433941616864278999063014013318655760030648442362860477235452806687763815536082126343796322211458690231207665295008443128480563881608262222892326528132207435787345400811810029481242809114073682008275169811202213043561549526986696155122858781676040995857425595158168439254252221193119485692512786200216034200315635024572048552060687472487629097869758483247693802548393640487811863820442026947631082098807953761792545804454212795882936991731251760446899561582963861652672957218648415985314833642971481368053871599789092813934328892569719371330826159240646575909848328115860389510206277630789825276062566927059499565584375274110159756708738306638422686947693121737687571057794040635082859816323246316276417976637666517654648539281570240231861356322467697271227304462175076607988604637441354798088899925608568741272077857113614966224099617993934068523351064908600875384081068192472957456853786107409772765756929830475604267202057448327477748909211530878348017086595425247052554827309407526179801373415111571201365414193843692210830496982361589187985924731770791364966019830079842866988059747567721968747309166526768589021956753406000919927074941781298039786750764503966460854601606488765907597636966664032125423482951978894902773231111854882475299797664150794617803235553509558655388812260517395054471255917461892263101825240289032754276179195754269960694354070390970930762907378840170952413186165970392311566740221195960247643601645426072224016088605567508434917229698404669104815658144782762537643449209418260033948165643970151640123839980411775846229883606030080265781726376705238798838795903166395301249356250463726043743317757016792902552988838628852018124447384474826656941893017844563810074793927055542408657358614157287849556428501933750630468784102028280571146164270720694147218169314888408554708276752116298590807612876887384030588208306116206514103252584920362623111939230637870903741738616456039476500473482857821198189926684673966967072463943821964958989564616773791236279676761988612309218023366661216058583390540081873532179575549595733181416062170449109956615522901132811657403705898178248125212946991613846360762753174952148078325871023659915655215027059938374310667009177618233482047992885059327326970567406752481818649930915897239247656154783636833832125857843077840781149969108817074219479629723627026234401960584365447345689034978721277199231996195897497501885685716670798872509465893152371311441330895798667748103089862470896315651497090520384073803674750216662363026722737860859601337722421613961746457405430572262846232042752427606787241778177178541896732404504400377573499241142461601776765123832048411697660048513564901696336162151002837729605467310035993490612168126460579131918216922199113955798741076064545611005780214279750722165171984365509505243557117411914523993917383915407974148972387616889763166954606880716652243859932212423715573948143166653334483865710057186637809908276056873869645535528088484024250077009133862051317099724322574630957813385582759861561015153502931651043334546529978927394036065177937685792956634384582160280512951852123428733322177408577169723618824323625371982413239082552487050218763683200169728778896997043435105872151715662978866645635079534374941769312262951234160622116593865075682551173367909240292651108569885235304645611108143770623811474233758481936024998180359270383738131718223625669460059188649228412002964959926594668236713853981493794615933428589676357724482351788940863976204309305517470842667244059839968167734686824380296382486113202774517120097678724795700291752971480815643308204238075440369805353768978369441322246274500692419843491265365676118924799116131369160743238615651216924351732791271260057397806509749347311402442749246671776889975371989589091324735967622788166149647607112715888050785716676702047196772880162714806850476125630883491426357684600372589306157627427512948961045197715999651374847655684751239111971438706162890489979727047661163281880145007353146080870492726193483205671314166057042402423292158424915252792073373792457004335597820443461405262483036569997835548541753557565806776226942043768486928112031290139678945145643116922861998510265303182898417080295575406317576743209477856337548763909862915376281492683409190947228826932140117871825198345610362134430173893775128228508016595531273573204790398924863797170937017952727953128718883551045417119158054936129445699620804845260662577476393050977784132199099668632475318437338002988703797161475336226886315729392068794358479038120198758350013891864446537547190342193191509107174425837317881103546691524630996488404793402271381009009493435390790284735375278946676392611550116332481765012706077417027506254777174228246180179776883265755444640278788023685103674581166969852903437575644931279388041930298022384988844310138754346476264048315157064967984687995895582635301712621455872570183236159503633414579749281638847554995451617340380245476505825042237770500755764598793136804703637318621622803845925007332708841524999852182113674052650614183276286313413947084939562243233800736270780051361000834819403205604580046135611766686611267051960063068586042801765180697011842448317982662796685750949241464647243183991092722678899343831480283767527575022752470107938178558362585465469191109691570566761602572169891144558401051553614754947679197453545377302822702840171540685256585468684442835815201025149985090182916120859899837037720941169108139606047684594374324574346664624598013673893893845031446089848398822928274229632020716148994494859113960497538626600042670379706273352823470306279383185826332869064063324425413395050774761976786610837447029491973145755781585047461184919425659696707040738558777413653896261065606916562221559589367294882512760025535196657992141310425801860679467611690875732788977487044451303001436326469897996826452063643435708946169677108573072358178737470275085363458103360782804148817031928078531302791966015621325641259760898061637515990424884884516043369739530240374663353866952989621499595579518960128178415693233185528244792036193440624222199928608240063316862592897543017561921982390091274858434078588979032067830282156583354053912145830157230353145528355172821950465557324514656799971763276176450678108955563086007011754191145117688407788902829594279689300359268971073915474692451029210567660771429168361282258733132421521415902175565997452125832749380095447622353033686310902182949584342345147303771518778861030822166049817355373793414122083109018777510515593247811920774575470342023928630025983669526886666629108097261650159303617242901444825557164294444568214388484376296495770885606839674163228934833292846236548531219725050791609891974645369136406991163610507712800168091018805510665016113856087073158684418124090244989378376480742401050531801954447350402021093354761910392975341339082988920473804805754067152943115186194148840481158582293410460996543936244765194819474453239089130175582237797602591610830678208424780729109555601292844406304606011202864794870457834122966461706352902473293902004576354714100202651404230150166303675834283056446548990306689125830778475746527993744460913155293592793733387815903134909878426969144372510046983139310038672840050840123990324470991421937794928303561424671949171656299332669685891362367963232561165044316986353940832635584564659816795162336610461735491117425069192281253334012540667614977528593111595335148006037415131545000289498221497804057767315975611789707032555550478553298004823973388629979488164250059990143921863029481323643102788450441279711418073618764808709114200315598164092980686832194096913672036204921001953025989121121855888956877752695676926678008529042916645820051123437994505103086294146117705778166917013188686299202081696104135752287291021985888619714188536468745326885789620101173450801921609875193872393635508412111577983974947096161615697287738173223139346233333966116803770994137729520854086025675733735355065673719992132034839308725531142902528156431405992875207614419389673246375691734454520440401944948877763789095775605642196940928354708565639420218533534521957031715464597319681748879159204534237037557242415130737090807045653807526002315809750421477424756630052373226728750204837459801542822013823622973097486334404574966736824515663768812242560579831191275228376925153500783832001954860657329583585926329287557616282409065728086502615764932108730985100981356245042936295216169453489332921925808516713006969972360593880124429716604776273335816908459532671743696756133829068414580670638901296915887350397638433606449506553169607097990722087877018110968917462699222727387218674729158726937696498685540716458778769772805726771400755594666505002227952706927598549321003707151143016833692544954812186584277980739926130892308582372562824927582404333125653430941157083604071215155971201608796635890756848806211759736518434760593591496140268120171057868152373144744303993489086164298495602236207198521521210474868723125213008832414495840310333940354742321321053779790830330737304226762962916607897226311441671258647401297869057954312052344779631302110637080048765260685847193173670157933863692590379370644542128730014122056009992350328306038765421465264947385782440117140544610120622575697572266190795227770774654408652614378511124424713734886619208155745124145444068228003622890646443488631485973509272926367767723652426974761475458362585765086913379491223151100518011180028578314582045962237329576504506602171186373231210519761344431895049655116528669321672913724425349798294995377802369897918907169501807717798237109819478820578583432731202238836180194275887728356320031542435782569032857897453075935064789595300879400232140780476040396341768628976108695379923623916127006094462779411751295839056433176842756881004424512216223267035893905093665817043851014685163089780616476264286791309724150548576900410834130146616286701444452328715138432203706629283521402476458022328529309625401997174756772641301726232263560400342432419224623322753175109905644881657319641960086418848280434559047177180058703322718329794394537121696759623023609088268601409932872791677980720419812989198568647849453135165376965328882305655885560925210020115608385850237725812486346874775037335614463954479242435828839605702750951780194073806590367427587852176723221903171429329745540166379334460711526241640460401289159980504456489151054435235623709538153023442739689696383497824690517568778387099966820824906529944676412327530838074666365841283485292204965629343263169441284847409495168702833603593719915915063100040661058440910561439370904584372577158910422234504213608435451886452284420330712713803071066931270909760891294093801409587743915057190276026526289736057546892569474810215242589294330257772619276331411523638160648910863338458670104209867342700471963636956180205778229573049753300624839965911505178493837475164455372742824918104221667267771639778404349775576046634964303501660118090174837613322647030395159404355016689095126273454440714955127409848631071968876507913013429054250896027055434791846317552840370180577960767732843582542308450172541758656665159461357193483562276139369058813751732435685711036620054310237371296995664693410060404705549408525313590565099286748981179156109312535361234046937443081373656469642131204703403000465290550168119627266048174320594711833576224560235463795403956130910756873677249530953848620867110191872936251807201538888437190447232185713583730730712523505936893517741911108057160969514825646616706322830902865273146811445463391547555465257979865804124540647995343266543812557073553106483987503040984179516751875451937607176300654953735678438923656608969866204917400115983632860434422282840539477168328088271394265513287194474608414764685879043380974561341330429005234793199872796176603473130422339800235095326075337629685571939344914237925488518038622362000228093803094986148578514570632745627142586136498321230012188495239956035437557257678840409527253509426409982137474138587556045140157499164218479222720075068118814524431351775199611069076927431262615589852692204572269400579231866398953969930484684333035863430164291183878714154268946185583060245859556975559737685971265841066668232513560772619499580998236250743530829185789253501801912640019827250297219321629403338345832278831890339927982263846738009660861275564709269655238801889726141775160466532257983695544395823168616499707899036136422730062705099318932950917762564450604005214206047662676729672888442197910842250854058748913455956962986997052345741955199347451336997216707542569725659881373453887892024360987583025764168194990265082980731557307095485861003420783256743913756385653275727606424523455167951627113351356461279716641072171257249852160644846920769442810841846756932137992594785817891914826794815344447066864846277272067998265312699174200823184076640468208156670570928814294809311357240350320433693852675734511492417468751688991537331978571802733457972952624562520015300007213704301857967627928347527605981618279569468364894252061526823684479583227384535794108466344309115229585572366897796798467128747007479125076374913574432732593053483804994934850334247410160475264789773912445285108241541683463616662678220347887601626162059985495019184448727737988879627547244499834019100367305567428311242456033544140797359925572586166827521947041285710360335095022968010328280006187130756598418989486619013667223831661643261882128773111472315203842657824477948538527012302419005439072147620253085255912928512652818745996749923309005911597311718007129191025668366326333402539653163689104455643661598272726914122569030236943129410901339273403614973887808087550661905828181667722696900512069896618249204854562398639929848213841142711401721823655311338893513407228595855975471445936223134228043045474007988931623439906768134789567617952369925969134023444122273138174377164622616368093232561865544656933516713780780470403742394726452992740371714937834195757476532250818772883430166423690112580733503267902087962564550843150752451567129046892014835562423930430213970613526384165107698015490696292960560784121726564341143070897909934861620067615543978525844210403536084504573334486646045076792687358907646075649251226468164200523184720354076376809039529568449996549023344421610224930661461525735102625668038826263331168370089617520735027720562394561627157893626293787913192854645440502991369208671332520254481612749793204167017433071172942538998695763800660023355946707468730800763299196253161175217601938078616679582520431632373095568623979987913339789675282455401888824366271059126962967694156401331505062467871282302589769854475995840806794187235414735805965103737927911924431581355119969440486807794512968387902876709638135523204765054659742050860131066879059259311091816689517354901058588934319935303014111855622699781783970486975371389101727595464163533331308322065087136108906349507942409490951302419609818342867280807962432400626245273795400465450972237347001514541851850792662793079499552132360450180685837294481600347162363957014469263981524324034530762270041988499470356578682595935880527905110524180986405183597692013605528540696339685316364857623137529403916540925067762398187116243988101954321153912349405420474534255345676294947717198370500717476135301455738793214986101262397330457954111531481562687885214296951808905261638429770480304351963637031895552637801511983062501265294095572469233718487562260092911006465554822947149252169186608167246074599553492786936038837509321228678496927201017826801293129821382658924427623343822414471505501040105857891953533833485441332649122581478103947177530534683679522509216537556440886378047572476739269041541732761138637923926870551688514725924255397698469809200471317597209240983824598295749654160935421256981416933223362242332604058067849889055729520542206827293468415776860589692235512604654711141371015274324596786385251382853571711754095149749040385328658744099969291051833464970005923592738309026942708434309991605507837859543429133108753797343956355386136283272367763460384282603997138920069682428625805836323957646954227487555968800091618477586944962927054034795538084005824411174383085665285518814602964245806258385014848128556293951412670708515171453656909718826748697882671475339930594319502548530569193183787659717107963346875651772643350057400188856352790544879723350271810970027193778865929459193918365968978618629543081324024684298929146953914266015787976315499278037317785275593599484603797152634271220204415236871229175327807653552390518909194680053848372894014271550924749090476855026131290282876860170236268813603132000597643270672204641396303112640199490127667244398271728916677842368704139597241180106860595154874190826776085897601825144722929950061557355628523699704751886011905484812352212307907873596257379193345063164539800717081809533714628204386680066672191495254551603063840599369218458323662674874283218661217273578968726980087741428857559198061984117824327761306001778434129690517460195017653517968410190471010963339229581766539290793805769353962937002132546447973025003347008325492498835214761503267729982731568132926129097436806681357422211023522992998132184738182214045282936028118968053270232403020478050341704831660288701720348432786158858681986674840966982248456008357888290933617296877554766722470311593214981643424721320614882837945031058387041108434378728324466681114439984521093081419048380480271613143095483516159840792041813483617583504507106305539993984067630381776708627204583054465704659954496337544229069582045009961153455346737136056062931282328208458910002823608680541094604364294484081363334094144958795928682408885287522734590380048468030091665347586360649015117447312676757284848684570484076597125432384448030174906361003655314721244601900316939963608399792892208367935446992384035666748495679253049197253410810905152361669740541037717630965291989522816613244265641134025844059150278469460057191294426877190025386406499278253085495510596669168227150069558768784734486131593572812477527178498117116052376316808158828716308716352252192230561777130845736859246658978374502888579439860878872099733370785569766413146150181722428860193945868932085987103350415434965169044271659389200097029767760606572272519094904593539955532406300118571809601662711360160913172994039124163248815437199825476442470456696101648977895681819362971465554875926293108553071046451057171217417354329526688116835285908367076856481013163342072605829440765407732948475797034525048777201385803409486347239835613529978870055520315414013076307570740108017141077203018725572985300478569874487407092043871636914917532176997371195662543654213987957187678067524229009273857236391147526416652706948287138433101365716818803807320242530179501550265147815887287758397374941211056837761677237083725405502573123330639429783764659721385819539810773813158923337394980839530381604503318023262794669984418948543902658847170947956875219830014284605069766388786862383837211674138777231076707030143591015539426468607521896602624086019707168177686706972401514225077051765398940491719169512829015127027109746130761803996192362149620688303460841446149133785260713965251178819054514448659693447931741263485233310660926341125059101420021531871905080660482394843270132435065295744214296581938381133603253666346612126715326901220750141736852000679959875669365241697133527066251556504662181537099183444746013552267726725704299162678687278475048917887901851767551874112024253381370760838270676343173400962430961794271349889858468624810545548813420636721706687857899635726430210609424228474303895521863651702258976904303914412846039132084306900673734949229123722853683048674052979184842838713628845143155886168175874669594220052071003773795025293543136385595026461958846989858378765585446643406824255263116093259283475676168590859195772215656872687682200726623283919219081774739216367128425511173021036444947953729697526463753635418543964438926312783777561621954035095289315944535529559617885483914202287834097444887265368965959306932954360560135601266673023235408846343067210175335610053122467976492717262423310437444663960968892229442849728271862445797705264570480916839036089316550606114323654962138307113333947897141410760874216089060969841971730223050009340540949517461342960867913778608712361047048998962037581801532696738851455957039432438761231895767354605394260822530545537482563785720981441431168535734981514888076525259188995740431262826510694392136648367744673494334656189319147964338868502928234719334139927670956472466956867255845978298802804201976019366131528486752224129013327255476385241718635999179813426347138088630627590316515091948356591828753946452739753217791417986473815997453668275828007730319797122454533408012588651915393699740511082623854525796374336888856521548439771394384154408129222377662417072740542339154055426469405476633975658313562160480710486549733292653365665041020415141719191914537871168349826118159746477234524583382734400163101135499303414733841333303921901798457331263779273708820100015168746227791206475698256535545576131904235387701483133232536637870783943982242971329891514745960159170150131894398372558906604720059012733881438123235960608544217285045738476061960086480799260076966454737540153890057330326925816661213288856420444002713785745255442561798512291443192279219746229652918969207510558593560732801754875223404831150611846234730617927217294270623533672714450497201046599583921899734337336984172588389853805114164506442418527462864245267455808053854811492095553226951627672156300174863378829779268049648616402403234853470388514989557171775345043422085826423868236540720047712126290915033169210126823463220395443284947863180945028937236730206085962468154909901091559031445692904543609438130420219208323394831325867381085984795092598216775899777287024536150257052721678820607013039261366841070236985468855391694758420116816155397007705911452394776814715950517231528169621387743363895017729244457304145341791611533314950716176954665647051344568598627304016993082140101620798089986627932052899172297451276882015090182389499648743212829922873513887590163445427723837317076935446776873624270070821862076894112032460107828351485950461101067296365842787492239539037130646180081701559389429274038162049362402785032528758035585539522710354384652496558470025673618406017076268631266191632510589810311776472603517075886008348081436374070818884612036609553119442729445956484431095590277826887672407296362561640710916214869613966500805428944370213196786279041961971520506003544404088030095938797798087470181293308057288238621563467946772310209698819329633918116055721744090410825362206899480270489188690192692094918971515847592269775162672555632873185442425179108340888396885892520853735943068132232788881920318968289396872551918577847139005891461890932511641438865322966434260563685909105444727320080125634039356615773276157530170291051463690428111743970433293132483118748513347948679240527381941678820884529025943366383871845541050071475799544588669009414483396117265533124051368076368650192285316256595734530094748061328996273011849052446904729233569747493241229802885939140288432062934794265798904503380354850397128228094324091851567879572523512929606627661976773147288724911555143629940271185379426853765699824328876295637316023098001174839657143373999279852867008183835485910599800988023048903642044625834848477958649505861895370175648511476720303410547276392190827435884317925455085341719899557269391811213950762315939568821855968322916253281241895685575723418676782713256532091594792907239279932099932042264079619796762311774998446789608921429774690147051614946017185762487899838796930531937634571851410561349406520738540748873997584155723700454158808210539234324471772418581711006777412983759682106570920817266498022755649844103385305474634285761848549605692019340896944115181915061330926325730657232073668664899215163395304876491223332076758753294735484429566629014870552443808812087734212809521741514309161758300938784219859209459510174920455699047884459793092024339090646668614398477681581663521751290471534963659399921930490572324118553977658165562440118072313502768857160361884539085382904787939870790973766682961360419875246220219368184926373910045576930847375524369542519948787529100630862505943286573370293913208021396635914724506318302514008315873652192048432256973836166919354741021457880887554132891885672287187127566190938456382407172621390888664049185175565697948474472799227474301177987201058096738800714771589681927228512492132469132890999102236624033016538070687977461503352129934720825162535933375371022748411723425595610473126367251134340050355469133402215183177293339333771511523323976572210378579330563356987673827950096185317997160418757489990841516883980941287444075989293033144678094961674788339506500060592109838902311386297050588108970427958598544224999483884872603237959087595613224117603118156221544310297970846554148518625911926554729608154666054555533657814967809629540652497037921296643045753095220021891730461937392100874682710075352241518190158750199211669986826608113531347594355961591565336251277358527654160629582299781337911019646147403809953102110686842426469216602987078614771810368313361916012537680576894425367115043610512273052562454642577703728277545952950708237286500379787762956653097641498008842125364074062328720041110858207902197720973025077009612914605260455137397327839445356420003790131639488899342733727046566035197339077989016807452217492901496315510702058688258505125540068130464239410914159257728389099386322209249029942379855881038859054510124762236088239562475497046694815534667386186935762878466924228215797863436566846969705405271323762610389572783802543719621502413907647630050168758163022237809126297814699171773405198743242741164115819140934557971189091309818951205444462172644468645757776029028198346745954541048574098410884548011278794652487261684547537909827854125781692304199947377287685653334371307638052690547129565927835059152447607634096692623565478244238978492062926222463109412651114258198650808503802648050099644685293918121549653473878753224952795626792005663270226187290616530118704549755935940673384742584441468139291696883715138955589875395466494680138385888742074591145442040770290570455614189835027360494910121552883037975567302261735191151222539190120511664843787498956557914781979112180152613462043276751374353999330237052129641199858448778528333010985573240585857496186174456150928742848038931502892928738339066665070080782873864980767407698458149509839000405018946042149106759569620377667073386592451503900555132367286341481653652721830487434782773122171764595165668734609816244649592904949012380481273060585108869559735680711640580112289557739539475674541194771346829842667067106674901723276483281721275259705183848691684709138404522253136536361412053259824118873433923326212234847414400171228096788974672307591124417173661182440041210337973856932575899537354064062141762112898780739209494180980554979642037369632449268040973843337264205131305387675676837106138792398733931213584707861784981001651854969185179134373393094673813509157429285983534542844238194367956685252618793538881643296530457034082900026011929296442171659949913120421026487541734849417376780389651412564575784174575579568077415578964589423931616375466067011247327483623669265910824515974750067954662834982760609022734838860508458683647366659000108442742800888917873332913868534607059002154468506613021461193740784839761325811452748407296649703472640129820322710110485226526433948654872973134930779209472897866023451259042642748035827756645176226914510858261721335539117976951993973839001099267205402129392943984158418691733660674135404586046226293836831207282304501741405079546668312037298598787142009972547646059095429196582727931648300557175721075757796055723082215396793285656210422425316761661659616721121729427779663170773721272980632997848301474821102429805752094288609030475043501599093940158320550220160864114919355729791062374325026064539614225758565783927791408592067492898622520221034105283120925553330972805872954675596319479165414488860108310004420970713455267810743033536008392058278061289161347766761453796633799038554572128071697367226752512031477811521502595939616124272284532931499132797204414740572254599372417367601751222357066691068696206417694201754734443018307786165468049776588479470935053796252511177837080514425790936284774260024580756100423502979276426948395066829393890891882895852896637136865237972732098533056869459655914715391836065319588225453527603213943587540949912826510857639695787068374957908927703558539836469569756141146251683805493407507232173863255688601587706658709629629620953355353842315037969118117514235062791725646437978398079710746925159692283691897092527048923232247239924039675980900856691201558256389647933022109966656254112779179784836487960545164373952615397149001522876542355564577569975293785199963746926867025675051648638869735474979363546564660773553167468190054808445597063351917946308877770008272043503694963489115354575779874980891829146455471075283307768716304565229143046716883782508895761480129656125756428404564742435415231683073268483551788702099747016465313209244921644208224293862575466622400390729151993383250632756550475926324502510770020612084790113659965058424703887296867382624639719121731713133328451591651130735423189497987029468768724474011998185526954742315182096441836449922297523313928459942100551051356416662182088634187306636528853280364297764426436851114253074511426765674715475120007861498026550584579076114517684487548323462610579927393612113879794181310552095822441228093187189464336158920257033899405580642771803728602173638578389885445382060476032970882267534392814334019426618319510031076015848972337386354390980726789347276204184111379042624279355275423551051229934504861067448805734018073507331087098486906888764566254248841856155294007255772989344498081037773392195915813161157184131668199167053581771215181262088498225664009725392439544605810609465057303411368283227078717478173780395420180903424087136900205599487720771944146355021766359438008972701218688404665532105505962601187204395804051252811632752148820056468838088149063298437623658829486956098225331139433996012632495236363988581041810339898750697811323331383750637398936835799682615403664218573999048979333981526746627366601152116817053191557531659732091849389505836723412089386919796113360476169092656886728374436816539828825773670017229835953262348136564974451046861342666246986778674630016650192742356280907705550193468806208462500848601657871842057551594731840302214514346783111840461833708157449664919331962263122132786914467107925122532424505239129693354404964939138628888415605528987361870055922946561858797080230765871505225412964072457765362919384745972399926261174246731247750664909505577593482694236910911147725630192176616678175871196425229254856773255154351084734555123033433147640661565184807326121674413341272255373872323791880037014624182194911311818989700644557929422630142531966716622772760374615626118647779354157724971235062928477841035662303152559495406257802995869147907314564333209875620002841946595237385903381255279466851694882210605590515022901882092997968629398006732153838862106655895534617277801010165778870805480086817026154214778158513695011979256151688341556804751291776710086561664035045009733769070193506971244213409364567523527813949249828172429221227878650949919152180919291676258417845289093681835699496269196490594215591710119642118648823951473704210260023445543115403289980176121523455269899992731450292011796149118236934048180217311275553367741526886265292046356495951797178233364362341600759845155171073033822191231697596903455409157885025733369063328890158888605705398148279080892673769568023420598084987360700659290439712257678441230938438308748893393350870635958792308850938580070980191037293858371943816436794814182043971228564677317738532343631319647331361569878321922234795138342519764582984335705039251571346644029184457752787684431670970574777442396602475620144245107378586089232866135917133049267898643177322808675795990581838606552525455947943417629163078562146300390475168930326499819926210281271595717352877296141841706841940326958137150915975279491492496335866811218868944314075576665277087426114950228102857776865692157707392484243172659327802339336563739403374946067364351478654536983696306736425247385024219191373832099989312621689116476155292424994960192382533913576148373512730820546356017958483941788206149999829297662159739004835778482098105072873297607205639382194758338679651917809444947438033842781926585478169962828123047349676342971551734715372073924646569369256883362143552656807838484159871014407248299624801335037488843578102737034238300114270275531645796995265337658889337697533420415283884488103231208755101774304806021967395636776024871691942063090102490825764693134720884617594853769951351517983401535670161671391173858138326428498137432955785046367334526514006720239967723693536740753367039528883748616025798068324304677072807875716322042193125487145965677563619288032548214269417131070991420896579654370450002969576698474636252149634186461278694467378253248091237958311696524561649507214194707812276940139451862170933223563095783453757272064574338476559683406087033524308568183033452912552189022085020568192108309887336106929131897231819844363263893830857087758093654570085457117501766646526964429680438898653098102948643274418098318653365611134935069093908338962730211290217996025915593308793087194461371543439803004282754078262303507393396552331181167772064299325002886992498108876289132512945480512022795600366636599107000319593779041990602658130460237828487436559637104828851991544394784755851180098152010160563825988029115916420832600076299991816918749293743569679968769580177700744315012876926658137888885886019813702513125007720094982435517336245870210808903368536346784268937439625629889556147008861388146612834213646369774774399873325393277605073894804954730535992427499105312484110874927044991170276106107992085681907121150998772645287135374341930469917792106659586316258642454507369450232862621073970242168494134107057391211728921643523634159069876076801815741857969427277881946917422968470792704448052113128184259593641158819482194742101554733869448477104780694444671408550207170157502063160981071682759389691120183203232339734528451164753677512083262579198254457160137703785444154391164562134224487699389099155214245328622676673419586480417096648900774965592109228312135826557604175169037964245974943860574120620922439307622830021223926208558524656415918890757740462965140673892355445446474177994072879970513337324073392204887884983792826413625210165081668631760878794458673576591818756099710035748620092828571536349896915750905762861478849458353529944523558177127006636151338058270508186472726523679350562737617172101623957319841864516420070992554777714375760892819146366622788314805488006092970241049571695353972365339243544969394851413642039540934847744203433659682794133689712246484625235068126070284862554937733500807298013192000572459050632652119506588981399178162531994748478924965304691026043144829075308219622454319691763462275264721904017050150332785422718521542178736657626297747934577011900972399016913962831301720540591742501900415308338217448002105274213149171488546340340285754334457447323266809447685188424530247265159127996229701906807935056052993908446648414516131533251500067551238610466596937534882424606138941544736492059805265982081685101562346761294558018171578130852082033205862266102640290072724232237055005870404594054582481044000465882944119195351098775401995623250919734488901447582994708291154620512978408749038686259149175465456808640036561928041502596497280182855737304754808424093314974760629160412312050309612510241037603114794290374922937296391201518175496450448281181212018956104946775879735345051171936603481199436436368085822334371300597728593175201829555259398051974369775067619527716538603173111183764869518192573578830524716165538634818349615308404306590804970313004058138164059572177601437377995798570735574655774410385491577176926855404321310519010715581018140504262707325017817945272917843532628184437506492857811730211963597194706098945900119008358952064577866178257032098320025948113877667828612015800047319937958496557513799597963804668487466054193834729009197808822300884639118321689509790986611114508036875961515586177226832509558824703342364553478873166967361771308077890831003991700071632581289944628108350947489538404404003182449132055873039097040319403957533709076766944940708281706492015956217171583429647644730967578978385691787081828277893245063842145725894223421233371105166654902096489490920491609376372800083854897517286809123476317995068408790278118077736697134287898520327343165643785126270252273262561306145561318678618470721076577712364589911191643681441152309291533172834328355269815138379011660887807370933763220189289892995503267876183626641462345436915819617527096332233244534730252526983177265251834441595844975499289800700974197907883259892421621623243849763844551357959616375245642360389319871549747485670360805522277709144242540776247252705135797443583299005239675934083346896921165098796708501664909695954721330437377338390555859983263996420280464899074232547497576244468406805596576410164756947657620483612478960219429972083976910998573898312934168876437777534212785154406507023787345403190388664974816306753503071715474829458728014063107179555794378196627246806747969901979392978092270881294986426121768500423424266654508389271550568523467020638206070626676435636201406791693367145199326423163304551945707395843055067461722133101560083486029224531845419520305869090841725848133548757920422815033139634106396785797452894081874076347755588463764333742084402033701130014643637164959671690614791459317329400373124613620157048756581601015678738216997674172468902019630535173480781295560126092906151330936992428146555164392414828515742959258662103509154253815195829968081990654634708735654995682046409456953176100401305476558715693165973656184164579825866597043762300321017891378492376330005907850403974475126473257970721495632938806988634227229252752147391837687093059337206344253440651653946733677557014155325892924937574385646912729069409726448263157560070459991430342098011469360430684509384230101318212251201922511957328185782844101671011417789626299376956179714624888131669211876049634423687599263140316758868491940904987204380573334311504772314127809263916604937502796195198364269981285203423937902289112794691598418826725841049226673567539989895142582475996402838604965715734199920479585620758271299102339821810457891661193499636914611493959062854435397543621782495789927701756369131848696823106908468910785490759194470304230370099646422758606694902148697257131192263146287412700316743743117871440489944121876282919677257223066691600901960038816882219439462668061754333476559483576674702833368834449001420922562518208587951748002941201118985334688323639707164193525131303692175508711804689491614100590393639415089575984158381652147876646242422602025596845607330427664750725601475250441220616513696336756702665527555127080745870768311714749829295752472894171031178949446985579828957470331014744945747296701346345377171770339886430359048262267634487099311417155515875365502275541216187066914351168440947728882072061939910355393254748060132994961497885035222290207011794492303188813857403514744361563869022876642631180611932392162409878314102320908495804804661647312665014424462124384381228258377719347164916230436001725311670141846386284498872827299356437608202885717334595156571197556265563590182313763653523034729585768799176739486501678007596068516410052964373774848337291575930773877481845566340903986337045510256158824888818258194486680127755467343494118342393979024121513773611505504002069239201911322438917709786276998649934872452461706990715073491011330012729268265742791453633607188035765917929285116788002562605433235244050360350814033434658714821386625671788569905067369833293271077373643385342767444672333803409035499357958868339507424948358973926258936947062132498499617846987374436688442485237893552715852509464546911981803536775341041619196834274744430868993804815131551277144992165812769369090720346765600355098610799892556544453437045021499116450560157848735539138825004447341761666742119501479722960124448121693940933528479462173070289450209580893589223077116234717591172432902036961563040675936917103254757713581604969582367616568374599571700577343580031840101284111256423134477719998029846659439111064342590039871640188616060546363109941133892422983938669991328360451394473274983767646033958585414813060994752742983012259934058928665460426209785332501595009422876484925434949745976265103935200232689118882635747542082190867267923336007954161781534481544166268829086262282344503744544891378425461525914322785388844873206777988119523955031179759662882914491929004577681869177858866041505212366251715605749007960238665349634102726502858296507405792915685907015306894303337189346647384391465404299949351995602425301434144632534521313829776518772725619465931166335958892624470029647256450364215332329152832054302934420999926736879451509492511579511451271407794686446163785791894071365485884912495269952232854034075784245859903901978183793513425185857136901735252568129208211121511473413117081385560841386206407661895035137416359613838017385728994370578135185971815678562683646776196762799334882149199910608037422134273438359350778930877294421160945905383224646157111207405740784714994113201510099517992882455988565470672945395455013291649896778464205526242863550843846020313728038529088545126751089424742253833620550816750448794961674740313426515244875918985262888965618699234470006312574806897723359231915448171531249808225774380940032188042535445079420142324718848226412881985580940086814500767702591617187983002102244209114586302753587477433934722995280588166240777737984805778146684570220328104672389022254977114146819929689315890472324856515265843481228200102625602494666883690884509042686723608093207081613678541826053448774135452057863279424331519202284737438503856847032154581084728242029469739660494765184689450912274986938131659299206280422494179767006358139442088207868996718844122647586474670039111455107320445885603089337215468301126906137313499014198496944248808864007762614630981157179022625091046545076880019428586960823091124254242747710301625673963180832149704591668564213721917949860457805871432634176895053801036844857721120358228492719641020902815089324917680914763814061813203840113521128490211746964293485394788826659445875390463002041101077857122204071630269558799861303708874523623649765287045189389105050870840933432253427523489846585508326366697982385943259543971936299046899180974960325884672978586402231817737540460805172639625507522205447968972205585908595672279986547536761556014865211382034293098348337223231929378610452087290421015919894070013458478778770943799520381018371103419542118001370728290757368659120571422126590057144703753339126890578631905383350977236187432487630957308778571659310824008595481068510064940390965559523856397999863147130402991271800307218298176629915337489342898743969281540836866999806202221438611472578711731046917020378994430549514935726698197244331088304585805210258359785532258818740271978149478323899308054456114354238436407202007329676397707568719531564080054387208122282541003880191623168121364992013187623109003988467886263048010630239919840698873689344828472594678332584395917597406813539948646231320532340913902205304865578589688590694532611841814334942490320724829575046246731589649909076090348913258836720119663231381088404512472756854867191251224919435221130678966224534544272663950779429663213277921779717030345378418165621548284538976954216180025165094346196208282838465221606591169840001044371625379728013427981620765668496560787356847403086372079974593851228893936265153877016413213632828216210516154530883390315653379808891087257348313380148897214124113520224116784444546668151042321245256468327204722724045753608776005209368932537243525608716105583333252831892330579725562946671739243041041712617873718410360370751464927156649469197101418195419371213068061654361733801132364272846333093549279259052813470786637287884025092296334839675901795346580359115095080131374700305658077079448356607952518522407827577149693204318157268162067820096573234253832725914062759346822707340412858431415622785597977843556722995096484995034800951780548432660442663656778261453752353394670836184174248699366461325031995826117774980472810553618320380132528228620596789220276342229367713911312510876875643454573997630106016753853173392809317325484640644807182445656894132101087832285355410822586260786342939492005303268881467612849198039505145833205827054449808880321774844662004583838572379734247658675205013964420056111793982721405653414588290288836140646573785694291310519274432436994495719713068292969039853554055840141732357300653797079042533145525060324552466397164759387715167429633105705749066993637757971174729974708115243138664236311663890384786422010884778994049431890139072680908570629510969360562410220637333955871204851055226811189404772592085759534858636688961860489727894646902713721807185241821504892801016672630619342570581046326288224937677628792598070231104862351544056203429140689691780235663613135465749329834894703140326053377456752943212751816627133012076938914280550695501948750015784545799333390992310362908826550552680369737753862503307409540991347621037793073036154478684162595075394221827071503904539785168127036611656622234686540015454802976184025267070417582026274199043882593810398072542980398855931468821222760202098327418722166546142898741584944223789915830290724948239931772629406522644768304920032470300706494691910430308435809018211706697057257263977998669548795649724716720191341526240643866506416334017546834946201163146317233013938291640940235897499338046029134386656637053870993307216153299185440484354786676424558721487379886123156898098448272703556435607753990457952097167689513455662482778671257647039479699625094921642440796243842258624799319024066909356551443208024538097445714640245966623987241077259424104785555227960407709125442761332092393996700317269276147149541053012706542390049392438730781643890263994621905747770235871189800428955266757150498079077857076506448810698119483320261780278904102070455494318464475394879647077955813759855727296445560759991738051818648923097182957209270278531879221189441313488188930427989537519391881967188778018962914626062405592709867382702959843699075939556908253256975725443593655782286804830087813641225747650978071509386359427612524964125437629992044971818660056031925864820120883846835521438504922410591038241649358404142833299919794274493908122439981573279992051486727119604589661952066774981804482842797291955253894970508912924093564571012778226633343306166659230555464042211876380381912087299052420057368639672001622669332038159498198198640182103714909087156092832271007482891658273603183836968388829812733525167152618996248465990517902885047842728976232201090367388199625809511915663060146854001594807981149790315320186027239207020736128311676462632902277527921649983839519646911546569100634747478769910034397197575111087657150407987416801880765234965606219854809934676444653985043591717932903692222600760912755761639961460019224399388234873926207926766394293958253211872762110957705088047661728077938270311375098435031942501480217717688329384028807212370785576236457459739597975159713681259069031269094248981502406349541030185848844677665067543732219133416299604707210022330784356048334014905079539226692257513075698750912724180313468366098616607012651699454644078104695479007174350355864087449203226359231134528170742108503793020373781193111080406468591580811926109845777577724926186518339140434858186971356558216112851668544146263649643198041004928076954682397935922571987474692543204670463788011665135312851096112970410193080938369946847162011915672498897497517376174280962382699323443089473542060828541906975779234557615615155084707649437769173009148970326812753892023600797592640793255386404685888709378954763015668774891803396014258693565458750560347339821663258293558437827177081838759523689430317098297211934635256175959761568023471852776690606670145708521572710829209020800551597144124423750254672964124524744353712928822763389494734809751544560857255108053572845958889883800763393957627132520614990495001069042781197762630266501977116177940000060731246952073914069412575871071983338431371978752779173304865740115812980798571388686734117026666788633722795010747946660443307269728430337144638943720833992209860124958077620318694103985357470482490830190761178989719743326475552059059195282209511022046012096356154865845466384429513143434595746337596452341468519489944708452374594928708216377392086760443918005986839257269364446168046053102976406528564388279013595915955100505660268821863070528990412706492226724121776340549284871237052894069348931536806875028402048419255336360048707186630797758686840893167041711534314896849167145695096584710586981544113631210239553261016272107123423484375719538101596156944506868744368542375582127727980389513292835633968027450095818750271472374948464756907909586648660159847007710581134523284334642065678527727682141528983463001227327415182143681597655402769594200835650781381575938115205972181895120162490364435625314341215138784800939027040687179201119896905163154090120233871730537674312571022693382719318616514458757908673759158762602443418384468902929175415941905703123094081612444075359835080310567747478650072884985581644182913090357315438697517207232319864236561348974825786081659752419877722817843477260665288872606610913083951510948258672073213357134279563327412172433168081937359380107183818761303029019233059346057806593964585042339131811339996108295482817261065512205342860631834612711125725739670775241653276500794453746080812749573917293074607101065261677992921702965715398724840806342894924640710840250413836073742873479715929710422853835441861619897863198844293572620994745965347716622039961724496858991540427071502171218131441510516998627870325921921043077392235089670090891167245112241038522733215747564896144324959806072957967461822252150057494529119283526403159105228354072895540519291868421312246412570986850525175724011755810373358352823265094507382394361189675760931074668651539873981958085271972504019161645655169303830210257261445153881217174450092190446790602503357377838578767286065253783990415862063282047502065581386533260463139412872233960868737808256174522943429230985140892176902996890461206903726459078004650377718494049776238039453224715828055830486060217902016175181550682180976502621663991690947074351340286196040345374286237425955200608901322503035815309441654694936533394191765468309465293290122102345510764377914026438306129411528405476657870842303310852789172582849535875240871998065883309876609619478749246870713480312128360879714920082447585253096079229212381384889582525897283089331360878298235032458916714865203455065866134145675827031763644046326919023209103217203386284331097545635772616573199592804027343701953398174403824327008302022804512197738034632679256911484104366307500572172252051801157593157999348513884740062252102453717005278196023614778324985718329261884579328549746219949184941380199239585261142826785283009298720576826439186311720246530496377506493991506727451344880874963768842455112509186269697802796562824771432327103457246897474459233286399290790020773087423703981773586663623186760497365149831696994619364853431514992137350778199153607599545382394950221934710999978008501102702120513597475703003202126055003813786157410710424647351992266082040971446436409728120665308409292944773877141503584908125496647581723521436177869136251784947525674417662514505420107886312538585198090512319753922097053473336526603219337730836014560459268508942944993301655473846752675795128161546358413239050866882257664865700421103858933609768917077122488731414678110143056434354799243876965456565513338669777818147886188222388749663904894134130736705699481321286465813601790176710471130430404776331129517198679732818659326305961666633744139236491225270731337327517492782387371731309485683493685280636732902585041793670748378525860927425011694010834339215085915248087672825936589823840660775978999450213464738609699690577049723112185209434946517816387444679612783175538352544615751521421751893156563503985395460772621432444741941766084108958461601368956879713334551090841288115930256293956052613071859187691348712534852333435389788875586780731290569823757388633000579923585726477072881672834373943714514516725367834943603576571512596682602129199918845706928042936825098650217471310664105229033453134359202250622794654883810280109736939389300480458548343425191255160615826946017951428480205991275155644273267124837664121869250992883249645095555277811393663199474482449618792788415933755218599859281904325481834849223028128170903783246758180465437988306854894309061491086586475007798443263884301728130916392086670823407690080090811499431426972214485257023039561140053759828282278599713015012803111890346626596520585051198799390393951486676696277527401717552346042843462467587746328608453347305335478541841934857895943091627607233815450212435082267253478199695517266254955812062052345131979834698804068379954561302690261600994696434303196363452173739694494781224800467334170126104973011211930418966586978239948663430503919436058667203308081282965941642177449846728351976215015829345458213451004262502456520655787044070710630891583129114606398534462703017502714540596957412292676299301949441298423952498566641407644324858976929727465713017799254875142696864843100495253373884639252358925526081787280702469144682373399262691082581403999214476355403175538582773364786268478597113362576695999394202730248806201621881887020887124056491833310483953564533133793318146815906257532631201308024809155294446289628522406209635952368033625349649994420410493066872296757504525813621641385764620048894278664570439193305674887975221213801163711580358598252509602291798688567275554999300440657438425648267499441357665481327338927981858138847489720529094463286485929066759799545950677640161095842035247684083023091503329686827227139762512138183900629831518722209652067493790641153865588315190867912541519989354224633795015432509358815367210719593554678991439211511136712019742897434446968990255160012148917968244455070581874913011660944387309483882984210038988202035350509704192433964646689220838649034884249849765095740791822579396001681682287607063795662238734705370189473544304520220306442703047457921510212614722213830978989107599272392816673186427385818360575696126439463951174410661688296898087644563069300845440859814651062459486888076670472259799212860205177416140803788198577676721356972718581070648648768703410734433358175928455547088882722608623069449161350451732779340090404127262744042972061864511721303923082898137011762188265123893374586543175934805221783003052417268872706152415471675843681486875120691942638865043063345233207930711672499843375214972229006001213996304842788291294615587744822013410653697494537271737553544600288474843924527040546841188911853228519764042845880239680369046469590057621341791734126067709110862555601512009824450350839438328720082497242726433765434999527105946656329778499262209223896931466406050755666468537504068135015303981233207597770527437683724346501062740084332428834063896004166126189665439851222455347999970220184487051745560512634952776380726506377944142524939963871388764555840175158935162184766719538444107807861349318151723590768078627685000923490603605228811268644563049550117941391265147104732189064172375079810481455373978543773333307708699725394619287358649950344864885678385878632871592974415829407930829656081112106278834016472305073686345484743998776436890512481654619938033977140164754905066942317527170160848664690088440557439875060862440702126210123562908758502675550405052651361887800925382126255588206576910023799237059606043074513480981115951606292790729333899963161167864719782159292194927475393040680294824474309864611302655733379190238885444964708084048226521286397351429878652149755617126122700566327042266224997286190641629221509622220342454031639039604643981900917708490094108845769021275233605630572451509701017516071466082698280381345060228169198576681400896073592524532450521496937339288289610476290446350100060054588946202102812428067306640274272104740973117654363247518156498486972510739046304515377722492560074233370959120864738373396050195817617051170967638817280694959034991541729680112743916157430201324246209665795149753628853843194941416090467551513029933646022267216737116453199556801598107780022831308487752045822818732149810258985410653819918097659811430226886649016462466770656254041037189855092394360850030526594374052394911750819723893063294975064108735814193478710470806059380382687071532407486957194081633502997826525008782843339164503728008889243168674548827836880660050895472182879271105670729796494481677089128128309353655974403708207086094524340936767415865463509853555276690782969271759286805224210621373025518425326811744130160713019087723843878663260717986400205313727141265907982379990713886995674710390104893140403289839188712848193281063931678119575983407641502251493596166819762515567334170150962893071213536172062791297258319047528783296501427534981624899908491294672142756883118995771597915025261846167441050207022362272885214061627935698994065546580610109599450750338063336864203016799080658957333582650806982581270486926013139123174074023856559582424971552660941854417975661248755372540439345437353863471385510349445252867739600397393944295443606199962640231559112459031739361901016002505771302638805720152244804915130609098094742330664452017417019166099075432819514501048737018610329812429988946124243309754532614841331884377538279991313101583380781466877638031274497723170139999456152701352951970556025659289570729798841601192823312935928208226240476851269149462984476094039576733797465887220708869666480265065360496898313324439143427531346794653086567636763285644431147896058126980750110802589423971462030398567566918942740269642478480949811248716279872541689720056507929242373800299482071297799808858459671718416226193956620564377322416346885742891521658219223521521266720137069447078979953369451971969830246848967800619930692689317446932259448935486335008859997822530870115428932334490626535032104838320227216238172902238680454333542753696866676186380550153910910233430406803333641174571578675045363131413819938445067359965829539589950335864035705085631249892679471353104247496501153433596793145527450754434331014823929784667274359187565684856230342022661041732978056328318895371253221476339550071636488656187997975320817218956214666360124926815162986120481383059049217586814388387867006081143992578390060030906724574416612623872880093139759978210104889624804643791645297763903394838658178157413416150579491968759629454723661208279701607311136725805013195327701423187609001158329902190358456873966939408204732278564334153416966910605690691803847044656034025798582010931851589898165032427782383217788456950875124609694985157205787105986680412006061071429759465110134586225484607963342383765907538991753492296571784128794107930326724319200900706012025519628749890754297331609865933569338295652899930554047220128555103095805721503264608780362632018244329628334579507945455224362837780582582791087919500361774619314224088520457719566209996623371065759599977155680229337569775226241706574946361073588805314059458162053589024571938603334961093539918004785382246840406982561429728727907685001127127120504643348246416902650024586398133181565521877230280609669272871100056979963256060101721505974900060837553256548172007762600318956543592359161535269160309394616525535950296454920137085410351290469748274659887531421353823463310484244239813003487158263631695667043741555980613111635340693654365468459871195708853961227274950772850592140664281875274209944633673236941851346075523073973162144152850325940082556993951354635521013172268752562212818359016362022491563200090393862846782020665946736340316346611183505908853127300123678810962201072375851530505008832390215993932612266269472114925679790784994618963541929194048524038200373117048538119421876737313980011919867166642296183157753126459038770935559554112404379156596189052424738570955518297981120270138692058047278654768343204347410194239208799950496879525445213489096168481927843826945609759518903509510898286266477335724152975663924983893303037165130319085584212097853600787918420626478238918970247792157651973789561119565817335769460957410885664655127200574826998970753020585148861265553620010167158344351348155342529506122615025179092971177182140528085630427724638683928042840874460179617635338407585322457993045237304797601257505836825996755722225894956055462535073882058860831441343414283568803720746852859163108346849462176218878133766670757709500123782630963719246200097062488066169735806791128002703764747589803003409779142698383118002478251516806360564045724566201457166419885855463580143900898875248851227747687953473387758877614699563634538228662438433033294837304214852979586803726766263037419395459639751174994471770704414629415844685643854746632316615569204694900897730906532459622602750161299702551621829420507171526333713655208625307666884900987794958496293315361649079492608400264328501818678365432574335180513675898073280865933483619498188882143653823420203482643470896831818872837299883649164107282942704479589467006982748750350746071120477166149820932344890594400996470696922520240582191614119806344905282731134767231593465590685523937228631436470866666608818533637556868648143258989827868204310903700777170165135125064221105805568434951463973200979382183836619979126806548007705440719036473207176566773810182936668081688481396961086747725918182668407147914804601718110039029727723871375197449238435739150627213117089463110619439845045874796116389865474783706767466340028717025835582534982428052187677353020505895796555341215013109033055034929544109038007763711452070172016306931823185680537699205722992741216852772830550637340942235837702211669791815224685761930207944695957821518600191430288350770119099283195709972359497024074533603887340707011023105553278321886985144158918053108425723252836151650808396830303245395815264433178921931598906155227479104241723199186463020547527340738096719514366065900204014899521023585637233733783682291163839979173298365931826028978220704640584207814515273198549592275311320637050171889658758594681789998863096955455192145847149164622042252747284502589475814077881975557544071282865881700169433188398496220731772635177409532640873653125873964417991775038231678342407630316241027988699923823398585007752299851756133574858526688186859265742895911347585966234478932014769694209830198492813511822142472090943323847413506823292781325309093109642318337602342184605232475210678102780514620515674795776578479994288294220505369741202184057261255621645436126085238968029447020051188971128293294307846110532853905656093468610376477652858045074387999068739054272889179447129748434360373339164187574703896802770640213955720562911792518550313010169295189591435357632983115892909956513897136295766836713009088543288026981896614447864810424677225535540333787469024640017653979662341483402042996694714320744678954972545208195342319612898686502900677972516845617617695043335038018163652834933731984205497190126173890635614212429168494360588696194641484431801094305389623290419725609137789578049392557732396270076828583547143832213944526072926029757518008276757533824273808415966266914993565987564627268342646420359845577010477376103544427045941315521920581001829470305382500217712484481433073442951542309463787446067812373733895236036939589778830065872905148000505234767405761448619225175893407538740874392931611782742078861270519662330609447771131871422450540014307942522520713608046122928453568807830733331816624516254186624864603909670770815764874772932779488832697307642125793679988858942394827863280972836051658216064077515377522898988772706503942072937617500881230430586058104088127443029189585912614333160419134779315949039107381225289867674271078779714690140360883224655035101046084446603277428905014704249879723628332364448661809019064524024303921390400006008861808123901075306055212985735962120876721690659033879082576362616788600744845228459679095832435314425652522505041141442371338626765618391609494874898391063295165680346539993881502563584888530282314047193120763381989438011813762153697858136481429902515817756540242389787358437026890949448205938349268248755380437234954587934934610407803697378256969515614777311725482004343389673137423745493815524097101946710639300342975926449834636109594090673004215894957393950423699155296119983041381051792197469533248460274481462110734495924780184098711227650827480721717623535592513549820148211627921105948027010505829359935764933140687074379626595673471879109342799797378745026227290410753899374280167169106111258950098489086238804459506961304885488690749583454470836779845288358934024035240221039672632255116271986883033175764857456065199883875444490388182745328480037825230032304566819545052128553277534902173733520811542831390564243639709619631195940760263298518592987096517602184082221233869362377287505217466810300736319758589582434099510419822724636334171820961711904213322517544518273093727455712311983643232353779614916920310841798299134764542364976418862485014484165685235183863750527038819142440993293903865173736890064584514149284174836953216187674443999522093947379082599457949097760499881757714253878396179509900092578320970596022410706254758867214370160614677478477288630300600337467202465219565777071711359482081065698486320714428123915394846054851604336980843670233595080623026216110505323801240081961776326804473519911107751758783317078392262509547637164682677013900090744724553082457125358501699541705742372982846158556077640164212839605688811724164973565843057286483663560199620416861998079390774248892859001842194161262790171705984064273287326748931788000597869359766584736971409488841415672887116197074408492795182514808412442825269146187967721644499739833205058743005999734477594967591286650530813655617752103872722084895136005201271898144399170562045411471210744822674252044101492825410080641501320000508017652592960251922681391531894894543448397015991475182230686722455482427533496628443267686886585440621402559556857877286654400407847060797409886854433094131646707506624932989302750613853376825345504484401253518978657066002064964238538320614637033860414626593042280465834509884260281244594665356585300203410097403618469025142213315520358775513181309900634902746919892248409072457219238086106149919807457450951755821161117952211060114038192702655742837068892994502813548939869299291023767514266858821908697681356038401268939265007583161598614164246541902761904713996038283208862251379888686523017040331456427413262277879099434217816264409433667176663928710415995478821760434662811941634359955067911272238211824834069243785721075159358498797780246975959511670220364574812593877332425569139201124405804922835585307130272210167165076226376807515599143427586526047230329842327439111516172904397199102289154358051821107288463725560015413216691385559327093429545770216190381137048758899710165772720388804818788570521979912331444203378131405711957109849352799686556196249921825920354268260952020396308287133362646006478257091816245412255158818200909372129601789171871149793930642206894003339782234718755598732370957885543991523753254506536178810185979793303291264727234121605912834730359525787032673747869051697030413772784743641617337876234032896313449520762064583589624675939838466572331841893347708613840914899219491807300173519966326550016231397166110128149019690218503597084107333279520686928920616053362893202719126304578905919798026374916099620068849082271552719781980776734834175450718678152466949913522245003222611571572888240752752501130836008742691069374241592133956096662263534290575148365691040219277185996661807503046822993521587241846752684075466802052716015954151298467650391443109696705294950877364883582778588945796163963117964607949521199389972430601295725614971507045813558196038925357183644277292506018374334848970667458042953125018123988895800591165991500282713415198159018823889158669906703873552506426046272294286542934630546232417766257706917910534391603226246362476726581889930729007952358338413930108363862916371490583555708122123550092614164276182327948489973387856635904002447287919045333093100167235792050168056791951498329106932904433044395946005492998724749096268658844814017080998758682931731179151897300980399772221042989741880502987025297119058270581650154649856538211485071661869852861426330245493202872708778957478235341091734125277240287019583485227187129621233699125894398730660402864441476280978442367104887939208896402584891560254174915986572896137461858870453435816258232621115000175547038231379677323814972482958308471328207217470281958865713026769321280258161236404343246909426501739193933613028922250244377672989213919986843067316432863990665344847916721596051823682325997975098025473284001787417110019135222013712910964122382382504818189280485689203548348423268538754961956835267251552733393898463920204457417428407314419908519584019968935997328736726304078670595680616085813689165433349779354591869147226129073994303675119615285012736418418704791848669367777387496534528624772388296482259091746070415887325620683337332662231461440618923737420979800010987962323056846356479775840997829596651892119971272716121929397094296152214388469974507596677172075389920861934566475195967380083643406981816041190586319277152412460548111378813779595568420902804516577443217928427452869162831767121378877472853221399394205684574191877895807348645697070823901453780937954869394959683890899349132584094295079883807384758464808432957132899606469044410575480962160655673791901823576212065942172372767598699458386662060789744137817369345505746815458216018654891560277154473407901334421344561476310806397455780818956677604362906290127120559311611646600083350698977946553452296130396600828554579224682393664883926903253751787312750733692772356493342075332136622258570360214495158282297795203985232304805087828200804951497092883472260278687445834940352121262110914250368178057398991882115656331348568923834992466157419311449392663698051727440391405975245929367107097643032084174200505330860471633777287309634074224133943868427100118720432239072483701223920714831223169675123477467570620598455678681987227590454034676142413208072208027742750858254037813760988054513924549226222648318127208735858392129259005399092014620930673721258635297339450687482003292738320445658840483641660424635812394433179559745822947865932171537082982021498471879995358127409703889764854093925264193615130259822591149513115676144610784534693600954049725495364257828050545480205630267408991677296876706479625490629656052422106556112063026028842841522461670657856926622798502263367494572903811721017391290225650956832111505985749333335240577193344952814766110124917985111303478641755158524119743299863406189852768105045277924692430242677076084846399136956815480633111975022639834326991155942092753804138066807063632941809507071539414827445711636175821555931708949737028536208225555581825900150660739458642901411537777303822666930861624870603883174291670182194233339622335908530970008706338579591203554676958832056382363227513585558105598276377744136315600291317546866499585985986172258160069555855964980109210567320507027915282291939522968200808029436856770626933301918997744647232872493121920364997323429737275362049544870844083296194940628763093514166245722540117001341458225211936144374253801189430480743899420246447049752684256693182076386982756147107952187037230716916503963630485531847355165465761763847478487270999375129866159237110387547172188743754851491301011849155024549118826173097094315000683519294501174002424793119946896626440492453253390930816183485529396391108129426308133746993281169186772190035409044081291883779088731438602953507206545148825177970219966104818417195460508039114645723596867615473245253263382518330367309774129461450779574317201873240474009797478704709900571310117474007078909169454670423970871623359867528976067022437571577078042239050820553830686310118221589020064985098514697782815519311925136574381435098672971859059939177884790734083410482027922143749713246870675458049642780928707694578192712179754413622438824171923759100302463567506537611786954814248211522497571709056642755808339580047920844438301655364389355088812538849992115851241845670152745865077459007666422633474737725050638068455022894910456947515536222553068437675770781394363839533024284163561245302423806807273022383888750112326507343735486038474898337175861642223720043667114587747595461145815765166936067197965278307674533367262341016781369559282405153738029904406783940644709362929880266566249892249528748736371114334231344633358088031194409857148287014570774288215703167809049367492831599885150445017328101503550837299476438559386207746944320845169253747722328337617225788325984030074585319962116099647280545781061223482905769564281420918600981657049243310461846422329466104963833616327721521492307103373197979121948292732102650224292899547372490158563447293391893376014466177024795629772142703471847159969304740245616180476967587682602689950937953678620913662207212356103115110361890882450518836402854517262512375523211722795456099632758906558996174953482574584771503993118113074372136970597992908215321192701392021223857030142267087723849513677177695893743362813722449532431576279142152158207375317908423192943818028217975351569614921328643605604346993283602439362698722184988826659745457594999679939124919362765143548568387703700358760935457024851953753053538038719760690039242095923514869324306175316682733700525903599045646523422114561670805782286710037246835841360050439801462290006139736935811182911571447825042924711783752401750266307490127867898734391609061592656910238000587060829877699236220271778581122565234161316491505242072812317505350866647576741970956905989834095950842465628589297510098183622242160614000047254384282262017389980293553006064888052812433245922082114964880116839122527441700935224685740886446775434146312409167123222743559996772139071407444549901126993410776338590703316818617448928484214486262516555104846385215979546344151316603722035730901176252428919883011137152411675055527181778737823961686514818475714456796920309289696210553690758581488141356538223616239043575416564057080085052369303633596738599008880652111087871582730892618323471016811268907077737495185567472519341524345367632601201130310920336334355974031004215397830527400600370253594590994913766586458343497090803098260928925601083477742051440561880880420712234961013264070375015451380108608234653288067968509090551832682415731428434840727705595219282899271914315313092385493700556860960725799969267351444008234552685047642272470680562343819282046578634424002790250297661447529764360606122729598933762313846590613617991138456451091048360450135875934186433703690938315821276703299080125832290268159748326789082704441668408868065419072105500191406611775475400050890881927705923213701388056588485621301607638597721463249565080706292346848033264390899986867691805190147728725939151461865234240273717630481861461851868762696871324405081123368104064431699820053254870553852966120162569810305940654209547984620089850647081126013930654277710544370554894461683360643650083211826735136285687468297395410867730322951935611310509739477794497720736034985430902747607125595949104677915729075763577125256918791528133754545060049515535204184757735815716154046499982510284369802198115352186667075366068023601446617254125757074049539596838014346053892369305156630222001584009348634604439759550419625257785101903743403663522370095870408430781549523433700662769065612058979467368530225667500650297510814502746561050189075613266037319676811364047087888727174639118602096612062963782277539790067161902344054380631455111017465612013059177533877576203096891900844565685994597602328980112535727467141227973887087802122929677051699941605090726357517473671587097404388525344834865309540945479083637665622593219354222058109595413196056196284955239730691577393751112082462187643121642176589141546399158406172980516942555857632744091285343300645141756667512971602188429965129694190859202861640885828896582381290566519465203638906914540216284657551074171855893079653878037180195371215969939330662431626024377257881664402432791158703917019411399318425447758995821671458056165045756918442274873938380018503989987268450809671387884036816483779306318153643056966869371580088536805398262579940942324974002398731515035478139916908491632403030485655678016906008271433518106906048166693743074154846929125180900897600755112028743229660800480437804507101999822888252426020291523070153752883205356764149784835810596232108853960800622800010606818652350971344147992778941486918255988744242005141566526805486775672294294835514195570507193952667572493639757205262408470728267078558307807600327120147829694920739194981838436672307417408289874643144291283380610829394260222497009607419227355297314441409802679570860666095379908656877281187600661252878361103153326232088977307271946395033291506969035715161792575788166699607643665264894823516459363338471270435213472511441722730264468686109520103803147298871429523253997717071901103804141446795380769167457852724254881911252163748935546709106692585453257050072052012272885628348670638263451633972094085422932479984553561082086978610952914229722244908019051152085111178068104593143622008129978874026397737206462476549780175110590482917433628447093921509974242770001668461389371812090316368338342835257845211880464057109834376364256408479052329088972262038619927291570795544305437465188017498758245497040124556663455184968546907642030991684110667469492581785675287470035620306023573088270769958697008440918827961653511682707983102221816631205103385287598357958801485235096940483660193128332062788841999364933210301020648553402555411169973551250507189198569119060531117423558064226400991375456005779816019006975103332414014153797784767526218980012013472862515229605078014888180561946898622123787103513329907773300372818589443485004628074655427715045696217352193266920115911161093100712044850402926514465655282538872537704290060260255285168375708981854542038559099579609258205569002381715596808205928273854327886459313771046193697646667392233789458669440784597689573976058856183897276125479369291394774329724575491414565023079844327655284799232862202271480466040540380594438027869978236751479466190493578113762294082234189486415628410248152367727286879516050609962108003416226469953200495417413934932473018712621104835510145545329925320793643499802449761483625105849515835515182054140729359322561913116183685840438318009635987001109411560887569091538819402621957764329273907401858367205525781786742895565300387857462902665179863064568985498809070320542436330590039042462051879124509581051159493221201687695825585629962806562760791712568869821168623368575007604952058251317206659261220049453267740293927102519093922981654800983160673479235136457133610754657825309623697983156079745486744675082152573246287192452213055689512069730602846620672328239996832396102856031533689996398477965511833351947410362555925067184867350474859881987102381492398419571443083849005707951122094310023250632854115512739355194419488203669589514189382245627709314259358516821894755370575772807831595924904368114052451371620562452478235126081320297696393233122371232946019060700965411295915537141301337132003432624589067983254680345355675422277633131885319948564907081734996097273263595397742402170633668752395500041168747177929815125288409046698892414078893829078678423735709669149890752616974445346412689327959759952631671635035879584648616967553920190110920533712782463456681907278870323326924329724157533703654452018245791866278035254433787499895550474537286440003434072519209378880907075057055160985390432192051745757914164566701466008808099103584309419453139827389587852241272018993762816463815905248840752725254370590060960650103883091636061817629191597707508526597183251550708163072382956749639296661926416965791944495776099952563055896984516255517394839942673037312751994642732133726858849473435150566344054765797123829061569463164080534491234948381682544216376947631252855720544488602885913476781212579609060528433134167215320909122574363749281218052231118256256702535898911413474513745153378776759964280931834770847377667988482788425715986075837035743356364691548737962459321027157765255867492172477826571946376525176216620591636148674945428940321259176125310371398215225481479053625371022553210691560634055379299605246262435520622275102031103204259407151858182246413007025809652579601844578445280098258324632091851408686839975560407911845071990729197573308546296419702257172935417303856153283767666252326140821086745869274927552739925741069760973811889562621121859534926598770565580569337490476148196641633463435014517815556174547552933797564448208259772675975168989426158989236332737494249335973944937532025766049340638088854138949967626710237493357874909171004035308645187569201242615650111932005075086557551477244294649790561272164103426251726887317234900737455213135396540688522542822001589397413770018313146770379906833106418190633887440181297045231683048175827592180900141869295931217461877438679274229962211492163266084052169442585766214996855370468833789764532421081377034761722062326026700093668016865687016745798657791225066684885770315807104061210412035330459416747902582544055658475510417513505474275163298941668708591289508368709898888444326250933879074910779347352730083335565991054973155847121472551954929206365345718502924727515974173418413685501221427648752014885421216405762305156997738632979853219622132000544847244071937520270035366926557199590787676649261545215438061193487245337332279957531032410895305262240102906409103219059948870265313349986371163720376185065498150519665471698443339950404370339047004982140054761614119538902663420371342656150306656091001864958666391999851366715622836514452507767380325300817228695498927884055823838240905717945280856804577439822057091121890430313455922073189664869758489643261475024845647396821715272455989238175056867209934547933184881331940807132819141827680474328694334031969414630083158268139512476306087143641655347081180307099172399240240182413562778555662664261524426131510380168082999053712818133261230313492417112124759272609633474934383181957128702921609766898602848253246306942019439663452792979932915299359595459457340106184675121298904862492922447891641934312667331643270232217804603078296896087933055594788247927478007034828814456251752200380495303137737968364410783349447773770323431136021142206480192685073391558709030031878488385601405282974109128175154766243284893551491310637066344697702630435807816155405871348133549725195231050547544428325748289850010394082177666981530600625251121837586288391339543906816239390459494672847887850322794249571368612684881688173655472762549082868112016790659858655717003368387569234418991772751112294360149923514760159301112612339955701060333028187404825870707933273234533127878376669337406714513660441045434406297909982850554232155451737597581164082037572045956082108618480289637381781081710873808661897907726333473782091488051570789275227310990387090489637103974311784868228704668021624100730762897198318093228147847952624264723330628440426993320621173550454758233942980402295064811745051263668255088538850269452447705306761669939570769146094008345121501713329515686908965804758745846885533956365169190122198293753902966539707764831881875424821587735322925780145044045087916364758378111551299370566039669944894874373770841643393642469318182406925689767011174306625928196537333415258492031142084158464419497938561657697079140866058536916305110265501494453536595931739404730695256678091907789341971849789317697167895433972728571167814281050338074304121360262279508019549634483116599601281333470841091985364016207646549838899606291598153824406890389880175386681799413392969364281172912522180315814137508745959797225059577403026926870931743117785944100758463483726771712882973004067467364273317809899940293654858099371444022879479680943498532874628363045804515796327053961693432352301532797414400836400892397303030998729359347012175319322202480929483016573019357432377102777178784321078510325708535028062586425753668325128945017809812696557934842547861929853207968406122809892665022997091538557722598060706996689293362867107723712560370945567932206101558602276843016390920988258795180727446351606554031458221855025349686221668693992531198775112068180624075484262886792719258479898597020606677752722256984303494164565066688865169428877365319074836887712467489680718968341859847489158202939107246744112178217832549498830576309952513965293462094940072362619314136445367810867215430281027716497400066394447522529364222533856687556394713454773656351004465053688889136116636923437285950632417147258730506916632662391147993463163907908426946430903647651596524458013401210498600326846760315935982953574645209333860078254010367669788454571001670791652176319620215847934674753039459871768974531274191278659901558121398431290491582998218133498061716545231916127791415228019141657847051820656877927682004934237032805157599840600837362813423611030035538348166343706189268978037799091149772742926670230356242526512295810191268533504133840864596499878996940412442522403033185562675595858797021261966571157625575797853010980891210823799906089292247613266921877583316610647665518829173060669025239274304174209753198234470559665858470087764816198752064384860223244427881942904070940421998456054166537660917821724121199813365627114902280988845120960360931355578351383259388104272245487653431992816895292710406699243882483213750110335304859011330613436210515312839244385355784166603619173160092752566709223699181598175190247495792283601783727267781628451106492801063654838086322602535089070498143077296419217064026074091720683900880657382220602320280804812351323729279182208760273125139267056577881993286718377492145232989929748330668810866332703664561247780565574373258494475629538379885883649170607493107392576031660369402941146860436755425054440409590706561825024705253606388614571360063068971633433609895204375523014515985384324547613282653146844933381962458330760162030039211483927720464527410649726115981977484644881203091421943567140211637197297721301164534794184047870085587473748757319718209314862968381910867783982176332302024794647925533934836709240638538497968744913460861222045820567936927325356037778102050854001885454422142706531908328620991253891302016241001567966183189978959737615556990076936908263363984645459906972058643751729831423814416171598075516996510790607214826708735713622589816622481287502158055633086446735312920900628909565416922156965508862285571876308312683643692163627005202369986018780540262235820632841331680196758700161481008138304172226159468183456616939344454549368065136775438399142703550970981881990641472798027762663909271695997677303123200676459843042330039168615823374048143414630432835731119851936769227555706297843932632933427037015074472418517476303028463248812692593607257528305132766250147665476933760187636124212443285998843260401498790054723241006786209900724932369928518078254683642289472814871448091377558047131850942250467679235685301654562559225338889873622539904918732022566103134831907917310245260300433157879807078233667450716660717978979160753139164999482146217993436116407204959616160130890459332760178849355315559617929442695919892608731093991458273643003156336197395348568669329198054555796791324893595925097480667319008103577227792964078609792067207051870522744762211035746346555175775120341904267398851955397910078155706323446942144367029636582456790843560446789807256554156650274772587714469339121418971558441758647490038713119777711336511422841909392024348362442782335522218607613122066349053952309977476338335319418919543245517868833682881092643264380777936629649098637775147594468714138564535025951576121276888880429427349894720546940187019855698095274379129537289065235689417739487467131801371112777134101326311701208078315078559807054235724750949692314610026465430042916049173149432014201089625609595955920002825780955297401560106898769217563575109535616621359793383516545566948688422000018773695526597004378561858233443842311924513656535138189978370611727143199073068088983433444485511539918466809392334242056279304412682801351155863990723523162662469608688084625467439582844095183805332624613181326581090880763723433881529298088836491514666772754716918456854786479865596833977295135131223322658313152023898702494339267684014397054031937790745017023399822164494917332410373742374813112160555509974407097419181289218502188270215050084734618397646591379556707811515192750039960104127166367946702039303193728813315890458157558320066827168452983940713080584716253530779070393532395820019818119153304631426145078109291013367972294091958975376031989732925654764070733778663277216426208333692587966231862285578534412476870592197129496407897884999310319561851469778956478951884014521784803606563123813022316965270670592433874421311210887706045391630702212774969100338720013168899116274633448137513568198977770015087298168500275928757726776358614629801108066056358834311402682452326347294743892635632696558235440817017558411322907307953409298773558176047299575027276101536971588590129208198650949270790891689552151133133229338987140384878733106744347139753772345349951414247312655061654448073647587856876776267278446137124030882990259260172187210048061694864822373634687396954712203390464359255664902560574147081170372489083686007754396632976806665974484466671271397417018370690203611990969028086524033056569186233402762940717780763895542622750120332135623807106412514578985603399020517395054516786067865177323747952662011967674059042864550206660431043369543494692766366814117014113277703102742060604677256163994279605528539755111105481768513654402849149764092920428975327136563702821249228473131235969587297039835831789470418167814105896440724563456315087296201388927430667856572468395431378621951085396743238204088047530869447706110732998395252552358101988725907125773588700084434804352255735877264760951574696560645550254194017469379667023360654981997605551635936485203227639148281356134948504083010101500567013717294175976730020243211571942283823150882067389694805090122623743288997996798699762813393529917096608714646306159697607063100464887852111214335375361158465040407363312370556066596533439360033917776128154687678911601371202220137553036435882169419363784892838844280891756175642506738029954200482609951611188845761666500569169951530258660310356700456267694954767513147297962213332955826838407313597022149118863459399791916097048867259524267051676071257242594348280033567340294253757277059673807136806389864890522948461044483328201881963546603013467439942707668335618461977750204615828679314547458449473979390602008500886804678114904999621024065640906490227063232982672982904540563895725854320832552684057406554101794251169643471479327987549916864228980183370439280349033439078149088101663550656595598064873515594992098885446136551113538832368334581732817508315217090542941305824658323494255963602677386296780415854083391344512950395252682173989098007804288994595441344383357191417108653735577071850982361876596242221746753164608239775515726148310330240795285946169927466073684419826922040934408991690189476584603906870467011290582364241120022782263012101613557071967229862497022060130382334678080748198449859411452244187114627565397829916772864354613822823510053178138601898508340070831527898074574789343967015394293253008167038814383268119595417385862693303266716413987368903263351817031431958740326735250702437374089698718475185888833159992925383962621451249520952203769084693187100065503255199699529268485311011489319693642344234223296394245811376239472635504814350140467101097421004962719666755600290971157579286456743538478284641314841630413497776903763744888580613033006382895245102550538203908622470369869809580335349589953985626202539316226622173148785803542987918109881998514407234690365623206257205381150928571709145278717569591765491179484764194520963742366289655459314007408222799627852188741238481631779443179489490930444301218701936588865747129757376202078887472142979217410306510855845675605320589592118051394442689654030348160613402691829825585358038395766021303218058564091895209663269051182314460307273218597543898080687339983930236349330758978710661022169703749086154296570443119486851374930148135226220376068794414151917336096974803677423859160305080562082149333214528917984763948062556962278984035117780991130898928089070216309467219159689224034201497042843318210854817079149192816348365469724147262140265861665305618880592393631225453755187155511158665766422806582720502006045813235426747783660229382010918457197515173703675702108537765989388257337096007450871417657769934664214113682020044007730402801101863986590289644498160126159275249684504960095904123976907224687913449062114271256005449053533831181213151849824736154161697337337030570365396921713763606371641397966767753644285261302022638410580652271908478164585928738169702996182766480704847627412182300318272813864111426402291216390681860115144512228268780033436750253291952206684096688026068304646782253637435747156466391298778274123129074231912579013430431033296039887869605896154000947856279381289886615473839661094278321856863321006436723762784343484912144383079828643435755343714745225912788955578439439186502106929334836234538430131397546618467211104386016455940391012945969695182211978788438120948796916326644884798119930311348415639606551636443382588016221748930451985407175289887436467674719851131066538947216060643732661576798315922895812758779223285319032397240799464024197716516844961159298062991672516832126270338338783053147053386688723195673705870128488102707933376945608240197256701612514144587582967270097158776098578775993065439460348961065145668465070619327021730009335179271525442039334914667408155571978819795579850994603382211432792887396901313784979072920740707355902787184394305052312112447550019039945353179462394144511443210352511916086562016579669869633189853509556121510531272165633324318180255121234078276758596799811760328208455416281059797266875331209603629878855977419796679187801972258783947666599975526482584353121292222521232360585235065526533614003555597227483627449856287536515382040824102505294016957112865121627683431446867765431296822868307594541919365728226907718938748059449328221268136400601506336407211001440248544062314028970811859842480706658675505616714869087418984196860168756011084690108387653841078184844634360386745332513430316413848380086724084501441406283352876193587595373934532655764490031083934763793400680557018528488458305690479898374929537861266627308129267208704471068061387037763167749737285660382883759885719461312192969725637389407538223221860225326139763077265009118668797862009279289706509826689829893477416173373555915969424834279848160374951451933630309580521619448260853061971159397270103772205856390619046482938108193513951842092362590866654980996759238355946267867073328749696335803574359703027920591174842015757713738446362455093087259720202624291018729768711034550336480203376231518340116441404841052983178567773630462284378490351398787976994867070881315234179402400385860663001839866326468805265462012064891794732283925969634503852058836422195085475175653513701877647191711172402676648258179569698969302573074889621147481859329882385016000366491815843511746781871970092554218303323817756752197151817771455419834274203139658697535945401751781350577531963803337206676977171899167038299356580481321936165492407972912772878302111464472208918567667174412016584177433293410222144206961317186593161118414415592257062983942625185095446709809948342910682519373895948078043977385964093095201720305255306680743048295690159131820359699156574110916027445152998489183672897772374804453679966101475887229163085550139560747326851942747616832762541885221283384239341107356889999620292500506974985587069035808662048957907512241522482248562784435802912142676165048431338911203256336540935306642038422480281708581858008088351527529138900092536888353580910465737913054839800123564928061338197816949155507048597794746584878595735501493366998955677948577745821063383939095363712537525062477011744849664683434065819881441071914609530671059661008740199008711177184077638900288982950773074839755011775978221117182798964078550973082887798487497711330581476599396972809836528221721555363530241810534509534630360853447633884847385924271488511221321448929693610920505169641398473969322551332243994879494609363529670047915606477057255365619751056075924529113420638493676995411595317568504983115669394424304221270305324564932584261786154991184274418608575428099744702620865219711915543213423417288194864990532505209127548939869190734661552029591033815050158043846659988522747648776877649217421948711881956853675291781409536178778944906679511212483841911203338163167336280484842613085888909923372053578361253551160220948072097818363812984679059575443216448160360737400358912113711856489886570908533085026266633187258331313163885842106392261969075984938056753600253043102711852078228428663575479036905019559367794977598527174660973850482170534591723746630508983058518658776422504440958845752560161585074493333790641452642557449517384876598582150863451821809228284182404158855327928924450672637581420975124284944733005388061396787993979059769536531940114802161334214700546262703349234084221482108324158752826548714917996498031438893654052024304453188727574809489149002658667236272484869094071814741644997667236976125407439878064933194864376503354632489020484617763497661370381840791605782983426620833380130259367282457127166367770797201670236259979759354870471957391699392066808961502182097996046579228780048181941233063808635990022863303874015529568976678188958701913939500806514990051754928955502428899886719280898308089475636569150544426558227891048396911826931562445982781410718516434240634706151533788294036585976242252730133378434934712029306595899234242442932929184086655000741863429391863351341627629645159142789016494786491926935138501610821400094867215628480682510162391116564981378657017712897941063776043122577922791669065815780665271132583141912746340102681332576469652680002446727641728635545496693074728580603433644833514801391403360813608044456790335949666909301577531622327574001123738849874451822719051905141419093231959669183049496774827822338268500171512182131625501205551983594473886810510482564371852740527121686102421227181693721140040233600147639464717396682324146119660557193890211552360658786588640815313923520553698397737853362988157296896472006478877124502294912150757528114837050684907738044971205476208695636958345400654612074130657224275806125113025515820343274127332048808308449301714865799818952945808319506850996139240602522899966337539440090712337970965175260338551780958173576471603650124804982430421188564201314382734070363283180954683614357200429400236244923559829848692040628457124272041959196577609446697508204280156211731919691836190269937065253854618889363212380347564739777582769269386280946229465275062999928866983849102490693856088687104660292951928491671178509790937760600268163178016987910658706542475827367323289105559762801591067586657119861571001523198126098571272423153042904159411612198767576657445229440813381013053759222587680829954756803705837926240911158065234028898553921343890133638273007902258705529653199484913915503531730462300239549584555677496301824695493069822924155050843789192911969858537578318988162499489626488494070462534644849118689512215571780254722558282442154560797397937883729333739916480532961924066676729785902785139483165991637264879121583485615226609794902211016218292640331811192822891359625213378783569200899403259607826009196340468583888317941301606794446747300230973784910858431468904859551771369917611524151590098938310042184886644505421749308276416000041673346804469324981010793407562899938537015303675477718005447769531385589348633995042373963331942583938875147747291261525019245912377218682121845377150492828140339897744134403939022895162599768162345543054813217808214082423389158617885154246921209655365520963583399351651337107023193202113569165729904146707924715580312128198006782078830045151018144832423552277080298827231830378181173357377380850582113395371936174376035600501845585879559070188390349602773449006258108304791337173571473884982511183684822353678951409150478084649659631072939603002408523456367466728824068637556459417437957300266540249645004381589960099939857117094594346580643625279038016988073387437688440746746537604636226581022592990145234816961117237007998590749027243755193559361107820884427469420539997506314487243947643366242182439096938232947002861845780338922424568719602189605849157279916880233363632490965739193317014472513606467696702843891575118742397033506674768153986629048913286385822337841822622379215036261083985363791449931685737598287229455052178972675123825654574737760238827222039668065822877911439406932982365643619750409161785489425293917897289004195158593084005791043991378916278437222616311808852411682364611218396873157447505242754093291228027289486663741575633162028064169114393617021482019867719191292591487145057344877814384568610684870226630684005335261981880138495458805151311328357069639861009668792856424339136560509926180003997914405010927389352888175763315794046166583239863381853190612855530440399815326602178855414294041780601362136287969605949532691510487598609614075902058976829521719119521257898197672509693133900421655909025331287875220127055129053243800447881521755639232653915586224064845315311659898062210811508894480082549435962192338256654416129883462292705216699585303742301504005906899174970313456756579095204894463535441199543569662529439626098609179172119912353946312179001318372018625924892153690755096796454294218891086752506059535682877339373503492636161031599129836964124712474027232788220022804994156313323749221413571032219099713471893551071314040494148914017649332603340809750692127179322042677559716194446655680832979191417407474286729566773882972714196823809000519211646295087021709957824057723133901963449877361203603761005238554250904158247520288179398756384386707493881110824048641186491634300293799680515267507387756438909278898797905977069325435983703543195698408019699060367914088977713548626439288100893551898917079396271429871724367838564948461150295038785669215173610135714344519921560548479751885953597697354584815303631205503880199740743563636643264262047386581443579417088594173415495598805579484758557585492853533794802398584369081401764711761711550042333267361392647331796257510768622445395278397808533346986396373302512708936130036160389938630187905592762049684630964550281661816659400860540463198384234147273233138188595283218800218807689887644126054284492977197945687867511264834389231681846491488085213133127816870087310058011904958007042293497476492218805820613623030350864070329651153237830252809859607689894034380226173491981884541274036450395332695318603621335231473999524455000201165825442214428643544160676785209517702547162711183273623581270528499125347644311023981109552848912242238357540207315942649310991657679269951790656235053706232382132879633783865018746448840199871410248101257640282574614004721845166074193048116723228451577725656935304046509146760762408947374303697854575510897128950201602029155464505367897694080906293640305822734087136421003105646901561713204747475138228106365098258183627490898476677790331808849875984179015960199595571988289996708123569822585643638918165923685719569130214645527940122258305843302721356453764670405629439614547340492708132810764060660626863935549056998070105826140728208824776036788055986064888473920266666456302742258992081008540918781075713395699796136628165723784711604401738986322238074855684044732376659892066811863366618848706668161706820707326902394072949626376337004076746060067604306093530935657064031708198119637915756624636919924705518715372219249504039055247414675960397246399889410807899780392957383857757792697038508401112998240408923904339802885594053025518351771294157754547805824509016731998645580911522148482291184092354308080783081692892735512884507514912434163617707360221801666317110678051986131258052574278969792218315531827360203914286883510070956443156365570391489631572521440584993086045557286261500524863962897907060319373373224603557089072893035971950468661551068376228531538003293394302806206712377150216607908723162420949515359333889007342342814301998994084065814500612283968648997048865273930206568186016052344434342909098962118252656739393649341512414967965663340423802199936090553022713112275729735098126622950513647767308250157912584050525283249920522842326190183192794662650498430136920247525332109220135708385512523862050174130444804315805942841338455500519931442127609221362213465682604365042824108473273628591080032799137637405652851441842559959521834929033390905739053241612376288700729271453665523928295895670882724313583086567853415300860095666370692116551789268105341648786178505875272405256959826033787337033516106221016184563648648849287773214402403214317140124125618068664138119408406852656078480675623051587100158424898919585458314051769251591586547765829788272755310734243945809790543068340307028864158638025013569913092257766543841231702445611148244376091456979251902405058603772315003007228162029757238236166221605445695468672476568051717130704574347178553196696238594303691817254133283787740621845600725829419910196674554944365403479669182206163344611421531549537624097747856655939947589365831844724534482388788489809409851797984246693858889500350913514682593619744028411672975359869233792117784031955145363649016331289574119829596726063264888879128662185668469991723205572526040340555243125194955844437022644431461152628900753601229189594458064560223803615254075508650265333588502216318141583012324895490623388134849689843358419812507403477815612627681569411655074004353362974120583466220038858725558768366008874151838505820230283939597739181077485319242731245534209113440903893169110964215636713518178715760484018807630858846615345467676156505025850830453816865698384967461493530540720994425608770590443043961608768897924858199108521932611418568707958474854566462018304411649308612118293752578451954195339433870692243858906206894101983987927526595746531481131921484399776090356796275656478437917333087101901764378897895579663886172243452204975806446723253290722967478923711401615074076478072499866064229775195315397204744053708496637307773040188914116067720147121269158597681327947281579261218583798968693783571947406236599470325110549711081851578190781659577629505020460368710080775393633582700499690200513334147812714942445613015566333036489047420950443274521479223072756013008627360087699393085461219480592918030647025961015757278758071091418829077722742227808086371565476461804402807780616725800548741467146948121567627014236569800088405917612003301181093963313875940200636392587653099495870296924680043748169415472766723692367979176751567390494871912771891109292382959043327431956694484512701309377024434957165088340534897932191487361459925588585310984857375325006690336452803399573445446066419712170659980312157468510876823928944577296858143317890178567873461541786026823134412509272614750386353473392425274541983676639248596368916711683674620959384621765641950443821964542981839949720562517097026986584528237768126493562154708415960676504439319010686128649896384046642418496680099249348336126119307379286833488752579834325284011021344339582302098960760817661364981751157596008974924836022060697381286205316298963897074178676602465234540432829692898107490987049758481680821930193080072883039427205474984163221303056651606702297841850786564000155465393720437127173013593130320315575700511901569736613578479061904806319737169161295175130190209454404066406425318411164411643856920674054831237415619218895179333231952296276933457018399637393783452374571003443434982209286599051951169764290887478205109414633330915106946140332359928319662509204232440736596586390638255175414972521513906397296007573646807639992537387891791125740333478412328741690163217888523457951618936723536721176075050288689272605642117442981739421068577761103149929217087702748880409682420553989068986636693229955910581361420093180983383608781492492549656877213933087432474484336197774618506187622984618058144471455103460341098150100320673347737848831336287405857178949166272280800412753638621168165237324365714402472503436860063570954496901970562702937064743732461070871357850832666654925993593425384151423754261752304153737210395439319488865686894335025221080878540897838083793672438059761061869535706924686418046231302254877039741004608688143412541030441457574306480985859208643743077441878654462960380016608949931586452144959758551463980798897987946513527770132540905629122621394867872973921349927991624824298437068722620103807136555799797214132727243334298352956414012733243075195717960641852544917293569540865793895736235822236456672297129094135874285832620293498514523533481022898716160426353425556187008000687772777826359374618631589891386919328554779129387807776767629802732146444314131521273513105759425935364077175710881316886057125414511709008770220899903634846022910922285373383714707857151649534332291156993908716929991674921513249897617897623777773915793645644558065415965256692307664528104054838337739997303126392779105329994195926777530136884671658713824315809665541824161062504327570269910928311675954124169344695970511726722561980814294265061224061506500082109520917856439021160780842798268700984766027910934194256654172552815117922288761155010158636706560475436511171946629442241836026691043355076758237692124725747119429170828598807126441482377730401132502786980785912277754101154508956008522493260415425527977065917799248742418590005290966378859639323529995382448542510070722014077511242183322155798989472909899046220486606638980124250222763769054101742912325906130533651970770978095250118789005226787532686186768216532260502874261278503205087910280030645146237828060851815895513848532674721940914772393307375783267216918497076591416105087945734522909647515973280689851362436258934917948199770365019254311293687102488529260383618359658393798987759507703822570580348361786626009794292343450390857271867089938750881933583774727668098110354171049780884471023839946498260383600553174206754753179272273263232000251203326208530296978274087901773221809247626630867384657775084472380080409429192026252001510131378115157642449226990786561497189450541233433308510911284042093473660231106177410073862751842626047379110807765811329738312523573800923953681052497189923454939259782900767896661255891102703958199274225370175809445159027703733068029867836566498203471248910101778679974089112637556092030297386811558979942665158513289550540420202954378717969999894372010139658462121402596733494136423903925827404449287578298632736592878262256438332895637558972464347821888755974815975152980172795943300385295685353177498963601317802384491460309953050184215393411656208736052931030469793287298768032208956247287391669776750858721500050310945991168191742574429546893650892367279107081646070059577579330714560095319760996766149645601693889456690678910504965037064859861181621234401052681959095530153016932396523804009194877540614790094011167805361856636118520638860408566121830626650047453340057536780332274673525631493939798629305184903338347794042016019626098015344132712147834806108184228000248786675160380112656462113362814155784975903020272661642894736814434520772720068856033807853438018484936730160925392246169471873890911380484372523933624068708944631911760143329582605971289200569676818065371693230489845791433883822173002621916209823211428039758423668625936017513744442302131570549659974429793546039466901408989322077461823798916001045952996114019382619861223599918487745713188210091144122024011044068238042897198810734695090594490395331850482575683243949386320026419331842231546413686028513625806192948843370345758518716719120362509765205165157111162125222459118083001714918431038475142281508301764916506218149064419518209697739393354666283921360134298849390204855607670554453462712739266181349509853257443382302709243306241860214891161633981637990411175889266823739881361567831543066738245758094949919919870839087638395883434725917300241301292661990910433175220519831623103665047271732974497062176785629068937940732208513354122723587640228233862030873207384050178481178092525136199837105921450767783783819285612811070212629416736479482127105795482597570893843561270348042355012495189984599769918820207789060658042862142033142494895441761482139840201429331517735984930724171921932210519947277665223243130169515083784796831301572285389160991193425826200461762757379800107545302578842904966615694621490777176078064239553323744007915610000029326908170564118485738529396561197462084420374097088733488432826176409805933979570208306320365506987185931639237823724369036819923610941599566710016737231264614345539963604955717223458386187945739546951287647558475624120686532181637084861640720636261496764395462445604483761854057862765406970686424436124955564425270635551997582444266710163282379134107803783307321952173559245475178518917793533526693881839028167734110859536196407824275827848352177624867083007799926566974377217297487003489625206213718675444100110167936633493383341327136104807376165606309041207988614735855971241832831304195784923771762684428808061180393403038746827909078262044977142146043479320513879776935534049741084859734145109987119401862042654018591371853368384088706637696281607523881308061652799834182873381579030035587686855419169874463094939412928451724768128733767912099407158194824521154907093134943922738394610294336961913500362085664583125530851852129262334170278165137549881154368582855100591879003286717534084565392806205319435619818233453103530716266612923853738090253889986211057688380707667708088293778457052547845525830090335498343794417761641694507111834195727062058633899303334160102805263570355412452836281825475015787470575540527709938176743624580820370267600360013161863596627731748909006393659346073155500831377635345796733355041504332732228300617294743725195927023095632946301903330153236812236899484516938341916750995200459568175397877823501266229123320092947538606741111274609098184839935185215116710180362025588840851090785691738719751064784323756546443071900070093510677516543441662506151443458830773594659834525308931733089273206677648464675918461110546416021555734097529734497830621375145760166828367491408345551490941652684033112705211854891555345898543760231503707740158698127163935285640076920295998599686251467133158634019060696757039928285581065384719583355711782482631934586337714240424603497123129093658406574834570573767190427147641027501894082289518001711632651179904280333043225709683868227282948997203374916416773501023499791261603634839144109719188736907842938136784447301014427872779605960341395520902279962199719080919718232800172074490473412774232895946626894812761381979832364319953003169510750872792970721684189222590588795445256873038842284889438221885425317152152925925843701153592424208803796227015714447514701094040518921621475707680859815908234378037222198230846246459655890162272982930621225854797913141688485290530222303356067953530914458907757881764124863560123567941691698567815194695101350731453098944376242553284376365173155832985427565978313619376497332205902368528851742542728269028164775683952388550751417739034256517774183486850191808599707621883549154387089474514446004224760757812575722032918512453161173835464662417264896784141913545443348376146164064831849475426782096144776485891881887255008864127389936685411973674657573770878150082509965939690736396160221982015863578373592908468136026379237890828500663264370690062871317610886685206147183846647401916265850009129179706308105308976785916081681927941093939747507901253753954398455864733073296129979658612551202588731612452072663813278119312673865986481059355554617800566615580920857161092951063300216900353320881743443782107826289257815929701963716919116478168201042095576767186604533404820672095941903666161671021625985662519809177101216525169024630116196396357356077715384579557653397913755926500454107120027891084288710109917421448600154234807808636755648724156924379763621724204575467501625839402915609454922549801992590401117418423526670071431631568336919363775728144329899320516913044445666416965751990185055437688521032436491793371480962328739677560454239930434671099322738096675088131420780622503479994633039527539270210810338096783237235835721493541697736524022309148832888161645444954880950107621837435541366127417304650172209429629666482127552399600949835326480921356071374085895761203924272681071506940034292835523099312464169339388498197525457568316567570056136227257535562933087044243872347846811779445165359481572101503546156401796785423938782891902216904183186309851003071361337363111393817902645578578205316546908252634962835483546117308839435520715989893816237617947784495267591854245168857165839744766399137192386055900151026303785863328085095211546460837573243525252186527336147029960242764244619716298431410183855811619604951307285826342779137945926855527475612329902009316970995513526503429648371838133387381452499865284331807898698762973642359893192847568593019723228603846494651018488636993181106941116696744935431564831320268679105809362358209542448841904665072366670573935944713964209967811142474626159068705975730617704929340450519225604240764395193776337674203450399249001516632730978657120168034538444710769817670708212030954443091110023140240022675328976404216680550290209229314205588217773368359231235497300033556160250266917873288150262347839311420231085833673177946011670655896412626200780786641250622494120718963550488091156403579700146642562631587651637137797064116893949975814488548027727248439548520281671090316266614929059975242562878155365803850087259366209588549838572556745671048163588053793398950574508100042346592835985521495936497586999176386857933825780972602891563006077531749506710973742690123621450567203272574994614640657442244394265640006701730928720860123319215875005582050115562407234142672293057047311644242819295645942572431116372872221307586174326911338689719071182927366534969962274608207193557035786069067558258576501629271808476968046170756207487939823293036367946177484474417633507225759638245931497285488589258123008683014983440421946117787929429822102154931252103765311532091410702851820720245374478153069082686603264498089998152479064586318271811702425118512959669260127987598945862944933811630572341109691624461454886928814667353118905417103485588204656190761622702862226470850133937665734744943908137261754527143538033356290306248094372968478907110541301851938838987221038620850561909470257333457971931071723671590183446492258351814928128670914497874848873377183124817272992939202663278340644620714345033944807155991516305357887658965441610594363342824151456118774423285732328663482310989909364832216653727910272773612506792536886969359401704447084977690098897354208835080029153134816105966300130458499896390303784405299603405095830007720752224021659528999022017275818153826641091573058444205992359157905941233054663674261492292084879915535540369951864776519279092966615170372617296949199362987684297184632460969264962271347386862850022318485561265475245964727480954952088848394782889785348790933684035299715616061432936459225165696177358355845164507972416654951176179862068083424364424800314477265274431592745068707100822958634099771653261556622999340000892624595458060272193059512944728929019489887800682441334254209807671830665769016229222869572126316899121974534831359536877655920089210215388854704469075051408744004719968849111771181003039995677524471726022420059144393913279885750800078740321967500898455753453100442910810700397083360040009997458181802076404938463498770125598292447800578305018861706940457759431795285436405690585827250417266887836504860509814222262177490280152026257864337220056731326228645706794185564112108497090975266048973326842049910706481269870060197477141000287600198978849275357167811403079208405582648641050120230314185047374509308962002910151651099768201737090660515586738861283581268395353225378128015254632379728701045172992859900020623125886983030731488049165515901468011234445648295520756919692819010114172938373059602448706534596316006168559400671565713026206319991167839462307950533177011483441461240901357462287261369514354457319713933894745938598015664379671351865551904119210841038852714925614944950182803607849263965111673288444450348554046338183526206386355607860017385545557486574706691967814854523789310033411909445148346486907248908611651145170169335351475951128064909009529741976547007164808659037381727744574650966827464614139684046147863401224493372131029401589234963505912276799048533762249247447879733539759652928608005500458797092733934461609697388365704060955550329729453549053054584784687612048383414963204029333666206994357544192009503395216721755880762812535651001722359715002341409016912857963972598957655609376920243412428693384218797415729391891516049765642223890472015935744258993161313398889386978497665450678293782703747163554476526849473136166370907614999869278217945520828027435598170487867555135451973515126998900528080753870415014856917922267419873005659818797986292469792952425903963009810256766591284332090068185694566582463606950649946018406129251136296150084676877603332013994969235884506552220232478084241946034954378321887967267829852882164088264429473336102245659240032694850013655538706109850396513984221085676804611854019955565150359753282224250623084121198067312846858798508136707750062042061501191569787122576993418867835946675605289298776261343280127071939870455214338074590701681141463620630678911710865693900969249726440295921611709840123966778664386178941897393361169877828636312068714530022960850904048996317662702709210202426196390979560753755338405343904001218737246795011439077056132619074408624381989800575005179572130736411765401014819435232104969948624290128692268362483499967321321648822918358758770603198453903955489924804598881828864209635355237939418007248554131759511396003517644476940099813229790761234318354204238958156167277330599084910225522859947060382230701313648801759591690548731999620587914726574378390346371934724358354305021543169322801772106822415664059812657321575729735912408694684939232926415391350580401142096407682527605439422220142007279517210809649776153834220199323397348973709345117007360949971132026757981900466795401385511757747766085964364956242157366756169729791937081628836677037406516697412846558759206716384958161432335796621589363496010736515303438932672108531397281827295407727896170561523760439192269913539096956109438705526942729956561437722857675541861950141852080578774868874278826654060465761097568937562724356584079809056659113237848824399145977055362201360189964715836277797502873855068621178499997046986008520015523257710510963722640820748778455117271762464656705327833813483071057043997041838090391123937643368360907855670400718456686647294174896840932594659958681859450930728555320979239791326350617502002747981822392721442493395068802127275861287669580638725221850764582218496722192745779683041703857759323976728624809954189606094067718787447164360881715820131647811759019470809843958173739040295112952525359536300231144325047055342632127815902916562691700677680932659841465215707520714249404085280955080821181124931003860353542546587076778152639675321222541167881824987434478650413569885389058622084725857227048252671761743625444609765856724088054750571674232908260696137103598757549298914476709369444448661412711788989166468422624293777547222122015720456989907431584855784623173124364383570963983045474867446481301999656446996197178045017573993638207752957403320759784373323720884514662132567046088613280195757313383002461389550699821706624846802981110472557836183926612093306530688610583364059152906572692776625048154194265360792811781111618168066626689481582812595075122774145607648778864883464398236984086230664783411365945536361216249478338227413748307448321457731192868934187089104658795124194841970998958793502411201222350596586227052349687809502903422864810052290099923403367903877206683341924077113133173258132907765105747306266113580189158095362480264993529481951271157593511138056624933872237110947992807136592157997211876795619891289837994076946069623646788532032812773551049429412348006324925144605786665168186417411170296646893587129513051914697427877951882401658233664215283532503190839421641764960859175935626741173487760067766524839666987026486696545368014387329610632601249403656599583739277898870190737450837993404935790142275322880060815754656634936838604404301943952326299540751672431427159036239502652146607859525251934289269499566453409355024824915590194741848889828788306603157600164787505890057092452215762683952595976988669384558283850553578711342608915226867978365518644363899054440634492496411267646095572515418382762867839442932988643222064310500989502037339682198853096356348821620313840847268533630224202184340130737643451385820117011969256846687683761726469940390953090081624897621491649151502732140874127007757387243054416039598227490063836344882720932015580004963030915064960269261931990048800880602225825256762071267683151010292308674623925180844321262437355566956744131574536105042294087958830205703377841901633007752407912017070040103122875700626102275306188488979101263288508164715897481106759205540111675545380316908476197009670590079209414838502542271891107873250980392512191503646359689074822882075408929467532637742499811797531617558872970822664499757336326835672292890534789665450374199007411922218914827510977473529383170527311699010615234804976720648557859016874149513588937502490781631153131888057156015933713197021642977526574796830357004841597323144650926637674711037565974121677218557363407265966917198112981191121925484308710931838045411676202323047701767744110086228361966679587347569761216476047758357683883809310856461304259277604723354776936788264787466568922158773906288729198442285946923794589344760158578724221677767677744610891931398907129834183323124666474811402193774259391037557513697794406580648222001752632595540288674378198533649741667127864934408398329963539807642580984546493264656503949064232916931224593232106918728397339442300561942385464819485262930763784259530573669693167206551307387438058486246902622269704721301840717939539561305625546821242919824005517400730849999900313777145815913457722534184905284970666000622312293535576176730173765658884272198156817185960737665469508587791328816386987365691802077929648926114510799238868008632320985217214945104897633095453960800318084897194988146917607820253884793404336222754657795071743950715777840449544017270824428895681980650731840770150593809715376519323757283439004704105313216628408146649925747317191375130072209144233265628569550771004072740597479819903555964890032538659932277134870524633870817677987950361449317400667744696435192552337679098199285423200840891914806348333671751430528140703840176821504573097228526944819561348808353668892823672688699692179472650544129833021550306692382750457804284907402227304506356008714734038626015865407026000645339424396613016056879498174629605372915398806767113930048012179151392889073706002534104373531726307966506244383906550514017687310844798419772249916283924075552773964035735396267648143376061936686985237719766271571622422771033217910172825286346057617988609785989387119537292864884235569236570241387339250259348555820229181433565356837408245076447908030970323855140928164873755165392737617044529787742203653123113115023984723693650813408884797228934355222031371444225134405427339548883292874225565606573722884160154876226539895155720768517080032008863246493138920213301121725457249498295386526469652400740595259250231523676883024073899365262868831769424333929611580676096841454767905283738390707522411854788176780433191441620883855170210888155341683045034489561868323997313390468266005885378977682447665140690414790469401288567722519739136437490911107849755937436512317603454305916134053260381412779595814671308491652051359119389090337235308018977608195013002367049711193856029613258248974093543023819328432821780009508708837497853970208055570755191062936035855354363242791749201071688111736411543507559205379594755374923019374447817105285081762555680399311676000385821351154552120344370263621385407446191224593591441717940221884591506299428500666888022883883464218724569356973264477691477224033009023254616480219195891878898796981343861827129317617821553313964616286672168965590986967181949420398472060964944981446426247566316265519558024309804185275019706167506751905437137449098567860388582204857333634686531749986909972228095341577663232874304179937171703517185262018308020927042541821625122280724924360956795971417427516076635404758197652788718536929803348073196898560468678539440932640026998364919345015110846163269337167119204671041110479123212760209947047195750412804405123679154717698507722763778679644007299584332931719440130755371913218243308010520619849618259882554620406462291199010075505104086159388182900056280667741102796402334797016816806827135376976712948868761687925515632636166412128768822281355616851296405106036243478550345358787251400434320370112082622141471244683883249269425498367074436967692470854453027309636391139111954071713888375313555103159044570727411975631318601035856118774091981112006765911305768742221123614671631420115880797393961039988610614784668331902998893489884740858862014320398023523999720479517088702917767030731525972380444884952530038211575504998525696586455495334813562425142318366022406392033745938368410766052735491804762280972613535273321772349973990354549565756658032439696809845690916309081022615920435157755393421087853410744232534221533439442702488507260813485820230865953574190176551753377208538374772336722797541954957028937201270143378819003393905529843150111545969313069585882985947082018454885867582991076907137770298619098349016516686485839229402750647893214745210627836301839954963398278411963648392548268197587814140068697480741597861397738805472438281791016543087789516871929632635245735919788129465245662535854098497069339831011786512721108875164490076140105527193783189411407518283145862660347611715876324946378744898502277009458389035959293622382492893815744758497923169000116112042914841711702874638546822612017288075017731691325656090000011520980212155948263926381699695886282370303357681240841764345308130780445876770026674717140836063039285545534177435659490699598806961926372978116971663538542200839693500440224610583260640436817877732010853722791321328329565349229242942702723757081893538083861886668446564579226521411573839584624375575800531107423937390678967954777886869208046195319224849094055285337471302257705620108838600081690822850173509934443723716017838573596799673704618589566690823232766320498710573536372157696739271707743576259570224398637190452178233395148801599001951721045611588329748968718215919104579807631772771511893871999054357814748243411223164036670378594748398757633138244571581721629902884221523586195701184201050013259878382729733345766654911326809276566736158223318792252584694321957448222212594952704963126356296633305738567130796038176152973767593991077402551195096621216929417935910307798785375126867099915649845661909576259057116161402239213398736557190128535817183210334851438708767712883551310278568278480906597444612064844546588553122049792928991074370867025584125771010135462243336978425584089816273750942984550343699000786895392002383462854848409074976616302685537583342411742561845512978115837916172239165526583101874248736345545018413190641893572601212848823479758777624798769020406238525616587929885726232161404298570291142517819927485395727335123125844692076008760677648048735503092120363103696111372468542061780964706177684686356733059122223645765907677934760088784122470500225732699173613999032394808741763348985301311143555977361916272710430986228162432178289357236608719582234627096774086391295342239969378137888930427204789144105484968100929254157565365338136617390782481305829118497187124942364598257195996326419638602649683928186031769854315129556590434967880834186783600930596827660735275499952875239447898532942286034465148237548734643685247097270243608055928825282365433825747127465584960805281760117962571615107078354183097603495055830439544528801731093579888645117553808781327520004282782396136785294931560516311193196395944348491661748890403671008585651892441683918102020268758897657514946061957468714048053547569728793195795370228955871199098769267216680155150437792801961709865551845310135411799847369001927888973670327649634841875036030844942597689655741825638459342413767577786259037585084704299943183570084783110607802971197884283394178604491654720888297023776457918253368133755967155849134769275245552657595557914947437076629113091601586012740270038367252456003889370349688759865732639354314808452489263394475823707996611966466506099111080099258692319032850405059170371730261947264374068689924798606788836062326976304564173560283889303019043712336247241936955523358564639305203614396200981766848889974061671457544671277771000100232183640762485615309310440043553417770171423260835976894691801277056225364839347075646581101892608330635171439471631176198349873779061384309967837923937752521596820045374562855742848724509692954913654218609682248330743128843674936841036241781395845137796920924055590736702151959156929526468563488075128566712737062730606854439054049098393954202186290515363374208858760296324891918869423192069009376487216720568966208455834741886377374273814127494444700106178698302772962150136453178463695164797388021085901509358024016016505873127853203021991983678599610095288924365142915140184620310516627165904644095055717122192850767843364873520155683492238783084186203679752043604209220834115688646790266193103815575039793679270221479298778486207076253534256731391585325009844549825497764685270544509300192563709704739791124995857715198940156847781392248148974253272343894460936225283335085584033459078735644195423289899411203195586395723701282050646277486613951469035871255986222208517524999237533526140945364218290262724777423279704793497019563004169785481779906538010352887188541377555822000407113377639880618863189364324179448619464316157373968911929284402930452582722485375138150075081655462215707036962519585328090329657159270256335202990089412705621696904487445909727781464950985317847282131900636978461012499129182936507786615637208025685475380156740563783511457620828384849956005436015633592117895438633795639969583091369348262224371735582161074483272255150295153034502073848390429433184513937633934287027421769642632823267950063434122856654956735452146461549682402273082304821204043379882636933343940197859777793109234623275314202259591883186811566481420727658454060978636297713973656511491424791714569713049457073189748553800207055333375627552307103434800953385393765578452336485528314260967954488943372836479249577460671159889749004809398967140970521183096088597568180910617252840666750262024611219346246867926210125832681142816154142935350847300643741430879435919054942704942242172527546552955627200096082116056004903174715736735039765750906191739029019431814455236096291430886875496061638695247733155327552203968065308514861427166597779180607554336218509018240192311056722416996142937044469686294947779202038280770796090609083688605089903326214919096527466702500312817813134202670561792891821044560211112559692570251478382307396163683828482417333919085782928971857200449498215624287169161707584141544303683832988909103869445099297440546649462387847222839890802026392108416866891295876872110065952749545547335647973949720874039747078328914887963830451519963292007378534497167621638111866678576757534274378004791795274488870020470451972265230375041319025943472964746157746415423574441935986347922562825637122768821937151233072841138325781786336390614510472881955110968277803835237185061263470694910691267493233208431888485656602818665842348091620862040542603926892192575172886835452697941714408702249937665001446138644812618036553918518197686197666672251878367141638114331831167729086221933187977659888630906352848080099601516442340922851130906677478057716651464676390248028095722092231860015881800282446548122571170690948296981434544790002104245493008748238528890852758942475050865787641895595056864324793302770611451161224131908683030840002632489438325902969477934084535892428128945115445044984133620222824679294220614254943695571772600703201344872423702319228326126097188216751303443498213108972343058748945638554650123072692735809259354534118154390360771044277878579600100192525157543308447106997024032992070461490507043084124098082488946823671826925623132612197682264454445276783477911881947763139183549229922921302535247719467991263010471302351329160507651062288029502315824516718125242340890283229654638765564214987002205269813055334369745683222833888397814824206795619488615008126656113204227566163263269171302294572085504749488450427570445544830705271053754878386833121299580200905891176606829092928872034344748010314786512941385277662374966165919410062721553435959691648942870793759520017299638458961972549707404521087094822575093277749730551597315374124888398540482654221455587307890201115398648538254674471222182227183337684948164938585625669267424882484258442921751350274123029113680548624392756903589477265955437417572881528067565615599956662051294212676401072665549168392035442064408007681818626351553277672771686834734447838586563501224986597226301083581437723365337833194973765442121301329112302061989656577517283397960167899294966824922691317143488407269375710648330360271921171595961051897952985548079675802005354479618094633947865668544726870129052442458256115558756134540229679313692247862071072460168556706338269731478242487556265434471081214885669419855333707974982802579394712666859701932918765469486797690775509479858085231554202549301876823897250724218467536331480983287265266521734848825469778864813267893063133612187546974042512587240945073805200086964000442421211877818932934802922886024856617554012602832393947926732789111394741387064912759029472429844383148958171625768747798993961114214385090194349558571550992246712888758874403450452495275073909883611701572077481949628414137653559868476271382967132482228796432309017204019336108305452350118847692213872680136345794985463939103005191251542162394769334283760180225498123262575124733124247059356570451179839659802174149915127422799731725221413702160719407620149651670495829813271619131805341298110153883694289009487671992164129627877633317425262745577027144904533768107764758159913969748224575552169571762379488706746796633826473086090983210984488615903749262180447095640450524770894504875971532307233429526302209597735877505066988355805378833191663572731550891524842025986822729585650235784644435303360765880558877637660571070470363327880949634878013364665378024327279135060986104789800287457060790065527780201030442645350276888706539446740419392856775953015603068349983237745213971242357663403275331377336347360247991958099980675365397047426279048535372650792847052751684325421639826905906993514661550921291907092732506843929063602481374674127518043018454946151740533414732219984018483536284235693179269816809467701085882629975418497642580915163521825584289210745091610561977651770834472468206096324822536934922036715055364671933766549189042115996008508925154578324063636615442025813227542750672330188321620350517972097092573851623952572796105970230894105216812789180047434130954773320927790288080450577348767314826725654461313945380793586272036091484121270180071122091026874710623635758283339474697697433881925011733986357489241904865236379075606279952415602467139971311978510190806555012818969585018405213697796741846719923387803294278792137603384853934544323154738483500412356937847945882906962077429446276333442735237967711701407237419813466942077704284752449890745061069805860326799139827955902057708643875447806454856409677393411015312363078245393534328679428994474242539163461649562677196563535062259270270233459999232286430654957473638846217012050227681030823104912086665988547108169279680202785149912081553436079046834308555065053576500480973321826379092973407120298210680626293244569287048535389450664476871133370017518836056050514247371977452488732566689810216497584229168918680304354014857149757137172026837398565356085810456248232935887868296133829514584240279991463107170060864294308920567728422508845133438827409689026700972081440147550644613811382396678839930460440985106121226929387811615958903090172876149086984536710591260601832931758069884435228559763602838291169538401905049077736656095622985156371893558972563889299974483151201552795287862019396508667186287833219433727767834423407152132410804466618899775960036885843440382151473729691873344321269011633117542920151556473628269979629842056650917542431353606661646983805207471507227348769490071143525334280981847449983332717506768636124007445811965033823613469625001433144178301478989900805183154937315250076734236749621418683173745863682688636504683934438444717281018789806960960998286035447603875374760689443134698737914971812862916989320738376441786464519735167788254096971897711731929297852461476104528072497503245914863336840656636096180435346615265034876261765770609381141308049362287985357143505288821724987750773927850846072067090784242612949376058201798020169543606690300996247419101519182456835414065297180407587506155451441137495772471132529152315909372927905139427183195128137314077826619438496156693904149075081384087139348015753175337402920064871549061820741136745630977988538937948617983417856948870045379604223855917312374392839098119771112128574959615586054617792088598171616889638835740361857995253804507433843556087317186114821054870659083034034192603547044689030519362531534440347995631781038333425787419306522978701581325975747209678757357707564050904088688879389695095065753223757144046656816022517865311136305890895413726138261699040249230884816849954938218265472522849913886370587159983122148453684872975723683819948387354730302258298724985942488037441014972683935871087546166856546820676152017889501586397867456025491494927525452950502064229077740595198621354912608678388545613223283136772432653018209890803918420987021320408190508634680993579184873354840511404540811189363473845740245769278748269201323902907819306332508089172306520155089442299627547463378379671476347809416359590996344552054940575776509917650026991560880874857590971927727090155500197518133730546349462259769012463498851560767390419830736863571302653765345600194469478264107354089092532144652328082723731575514851707537440701443276815324201667143048516858804920618648630978682523814970874161878154371316819995988433006078599245403806406562810722163064109055712338438645187754035965190130345922121097293932358509321087804144431574497591957051642567645287951852398219454718429741610137119202385531272991171406348458352992077430400249696537287126950210261406833711735467250229655062431124445040158926341283675747045304102028571861630166120032813410230475052519858898866662491101905830129086723645359983836189855473152832130070116719435204480259603124964961020378912556532283278136340976011011726556137037245683333667312481449036668147256564145197589859841278785639073165214554007187913840065403817155592703570120612159534121939094579198011439101723416184455714183438417761616093571406740019382277165971115856615938906575503352435905856757348359904194577956538757417059228570639924823382268994310865689820498518270602408832601427556267684383747436361994754185347228794961027530973940351237632294375258024075396016444185573706903939515926932450509736356838113926810567982028948038504798903393474955214665370741109784521224687610958143920008309071252017951098857582782305589972684146320252253888096169802964228644175459842853229170864708838530891971452931228791754145492549090767746819077355669092399713009207618174718465113224558368951788454291962927708067459640561003551951081620318876111437129153119941700673351063814773484817581639178204480506480507560013966375109188868047240611166885216782646615743142837126726879646636855708471962128172913004704297150388306983300637863204602094589791953468939163593909886169322545473832414104548241673617568959911013870629854113686468418701101192662819646765451848784874401297874814109288898804927775868826142008011755384545334778137602725818264607460484356861421217378633121677158054866685884541793912853030140580515178877551685705584556958338394278449921648860513493081744290919546174587560414548411494843280614956280366301810249544164458125345267674915589209041855194162370006454465289674989337942971484180658723063037704344695684204509415574662188311074988760997714063598270724443807989034199964748274525777281447697665800378223198304290532902917757752762796895580146736064439937636719769421326223507948786699662314939460561532123239658473272398923282497002038595118188885460169600103827588191411975627963198559228613935368322667502362961474241932577456716364677692586130401179136988280282495179980791935857858279567468982042017076719325047818770396078650159183038794140589993673137077350622139902409369817823950413881478480448221385010769773439300661523847782929796372093525509874520661300573483009590558508282864911053565253111764199878314570047208158109201449930645862352858832646768317384697935595242226144872986033752913389990089164192499089679008508116929963300900614865044489284435186918483194855270566585558887619143532571793753968957819111339882381536000602546039087183850191271342263853200376962165710039254131262201484367719711215106423544052157660433191591923358684560061435922340154923802851778747135755264800217933741936188477531288853001325042246716329053854910361301205031604642682503284314290963030300778611735795384660666444189835154781377128445076745400011898230866676755367171918269192637447975490878500370467794616825273838484900492145803671355392949269018231588553793678508747124855205590027733182221899677057554699573376950965138578850416199294010869647483568482682353348336995366236201558214225793966410261306301504028353441338613351122850507779395560201241525226845914016121789795408065400098763114987566503621064031768747375536753643323201664430469686637087268963790945445011400380523597163877587983608592862890580218464370062550258116145596893310067798054578682603821049385753174764724121539240396110776750268922510017360096836226169371671477252848011602097136508151383949860225397222238076709724073355373978839534816562227931340460029407185940378586842082388899842723735015767262616027829674894421983637222580794533481305215846274239795750362286032134581226118164403785291670134473049424173779356895315255763987569845988074927370459443457876774582604045866325615243004353791905828852686412771723505363188866807701910546788039302186658130229247227779476363751914410037147583066540065799094142413515835008755860312978914165242810041744932488468993624623168222863799674077702064766771393259101057608484998070169820100263949594204685341612036506690194050737745134522334635678932053955769557877089265995843635750658222474177830037900896639106797757822755800197067424393987380984532271021094917015028354681175974638351364401253274359625200792859407295255336053462328096723307327124553847123880703814179472691920300637700436936133817835057381813011228625142996496416238515546147640816347079776432823850342823137629740135307808797652918988435144484852833288647118036971488126602590451295230307651876050664543585185730140810164246264756869550445150859870113267879170754727264099629712345180384152783736373759972949077576809744337968458009330144344083831990956340125975115456889436213701002108630073940303302743380374214457297915027749233747656919243056132418233219047070198468823240242158223679397271915588431652139818536654461882390242978234983050242400735120156421350093923397619784411712899120168765196892791234482666055216408606265474117726889342399295114218875500446737715656987259080613720281130104251406328419529018138484775292971872889186311485346366581678860526254265696053416069398434498675601180481898133807159506603174203076519343014460610135082349993437727329869894210186311199296159462212473058906645933255181731205230348040360759728886401030365418752064548341007691766110764279944824948408362959762847837817610345271033274749433242274253703806914991354149410094887566812560599080255996418139398594273487539247010075394483189598474186195827884485626852280122615679301441128338685655956432445861039790870764176942431431971333673300323885646931289173164232595520494164378446628940799486386512922090219170454968036317023356857777153028296868887370536045676615017249876159855994914661594683622788764169367652407144346953795857639903849741773103578865497895255797493339641020070061144983023055962419754244587683088046767340029061552582362251599299774315657683965637459475259088002828432900520662700675986312278203930344616860747571748650856994789300832284777021303080910195473925258038024409920220165008277972112651115557460702407553613846180566618381414160496248068325790971084487964550894083301931647515283574255946290011163007270044106491080452977924822874396993308520287214262962444197562067875015140556179797285368138030749538849446964448986921769666459226206105502538225986601823344013114814786689695229349193482291104650249869904077253744096185079631675062824029318368238318974289605409226683149960936417229383438738456114969259676116382550977763501920762405787073363342013700677309915967270454661886207829868456686245509297841117058883514908269696190410510193677149369683196077420350756417950665461059324649180557601611590659862079680174973947545445647180870042885849525770601898808071318538567873404372529100929690800759812146143688829995131195982683466689328838561712734740948458963771915538522339861524335144056722229543909478109828112121759043878369641353306877514530553962758230576230843680597927260657009127128912221295273452059712684436102779692889057667766156200232112651312327341269425341517405968501129418319098113010766545622241253777004454871985230550367084587451459498177586693732012620373134401357169934020949338073305938530183196991382254954136739193407425018584959255471771698486382420624829454038670928258552771262358113367296402376526059441654546347894668605299144420122131588018412806927267265552141418309481913815299593350593324365997303659100629666612029238489789350059654533063817576782170386331609476463021468703603711723554457107443531943769962295079431500067534847579471767341923641573590864994085470289991008145898737092330041373827926700063115989399737577307440273257949032095687371430385656278335759306915334097467760957638675821791425302767978259553964505778153870295496147863797148769195407295162968003475864320228458645123847272435277045850004270925275639195613619207976467138012899929235102436196528360558763233382713209805573878801809696725324915031013808758761830209140230663274986655506046224687707038806849716409506878954997294459293090143867151871887670233216605562113225282071348203525055647808758832568524228705584263834485898053457529702328692541801908202012075264698226864918170985702060132389482179182409650915817971955383672933628076756298254881029849544877584689440993020645205323188834257545372496787863347124217159304400398103738960743088588849191927304574608026396365893014326076063621026091512902030876616513421769079742487069813577577927196135484837828434771884108605151389870243875362459325197591561961988327941257124538595138753050481258540185316919071196583530695410715104937722461845742861394071111887923534413039605412022197194155922093517200781334245328217034959975929070224197729605229238213335661481214218356831272388022973166528394222025523035707857077226608923543517848932817343799659879451366334284686092954377846104717423980653925117998461641182876361014863860697106467411421765504104448137259211897494433519834711900726303748883599342890307131006099750650903748067381130504559883772936898761312127371302520607683515373256725104117673373583800071750815351270740359364889231170114988662212684259612457061113085433000844548567196938387796592415130678908851851166471670877303411017849495281031027052852524100976086904428305213463764796029762919848441408956336286196744034185809152089518957577526949130772282752131411018146014311415052521459533156232166915232438393163753252716944320149662871200938473986767308558329187411626680018016924794298121242995862441411400533808660727237885301398553293278160053625224763075182998088961769787130732235828343870258598067363184650084307719984871744807904648051086210619093301697615576882855679561137534778632045491642227915531411990992067504815465138656835965785546720367351952217645259666718168401590462227467621268668326172431244271076370434327590405329652961695817554770096080608942306223279639045661928047061388894162543152992323178159944347490192212013866043181401614850157609355148774325163726267699250366092113483137651763090401913928493148257735250111403068922861263639549584091583504554040085570269521553896743980253046202274110592687807172695853011422367849872168805675578537891793882625292607616582429053246990696037743074381849721765651833695991208431342683078194836806841220997242528216522039012425233806115739407486863086043641665506866914031505922140985774952840569369431875880242652794281398491830088039376654020436393839611063686014526006105472183770361083267958640837535802806918901026855587044914833661436604638824211876417244047013512717343772877127646089367962939404184655667798316659151805454029094142564815065460874550892723379567843228666562870115508927586357095026177536859745826192441280983554625673438334384166222654514396303758737360964197487925820161177950125511877928171237737750581841112866645030311857442172821097543428428397982761634675008377557148621338073076230080615235362365256810634153535866642594802935734731941223076737531346158488948284282638218349892732874426515505636035449378293443083169557925984771546134506627175795452159815561129913165306234548876801166676592260959780099666724596306733797548414355685347369999666642323903222491906277799935534217082365970122096828708239975296342322006598165010430013333702935034437258777122397921633718214317500371439897417281259430809026611687878855773535734482520697680977785947102184993000998337620700020314993817910416537773754773789943814693385430757651341998768045768812882342973794820361270531592394209497001778344448796610773370346500848256696466319616699334360176206282329188753996391494603132706108451015779390748357633711527568161145584698614658713936927802714353864964944346781724475293537268640441549741661606846391177519163667402047490840317582995740720584669557190330228955279859125565514652270719742758414891657259779681590857245420808486393333829586021469853059573185989499352978029140423671005862935625002427235986687213841860635121861866862190211704921005007765180467464695919398034282922108566109643543364450693645701407104963665132420624052178973442994207530964947857892852326323383455857728162484987997343427528704388721993325286697473655011040784054308889966925453499461262981054896662312383237236913020377711528975295157608780273575889209573896677952139362184299617904396029821312228121250269161885250595528814365621943740293443513532475067003898992430263603503005995587159120060754227846619874443923845962769250359188355251238601799281234702173699745302548635325520290626375645277792353005984461829905033914073307563124246506489683442989818796406744260285251816381660457125150599595817202078007438447024843361599648763286076433415048703869923600725986279862836909670954580375925604692360677206545159852560998054692387053877021586532421307682006241704102048038427004118847321477138470600879454646284086045847525282534055707892482396092700534767931707856572843605150653856911592416639557164082115290473177227669628075183225737949905381204312442090607682939916903597040015727757888032744408536019322061945263614210162487834063571575643022569492981583225782754726318176857455643443538568717993544483050723388313815634180024382601803792515151930616893979698036724636606461349201353274539488710342830842262159968238133290257266861888551271905678608650402257019765218065252520711058768705333289121840816159761815917484011249751518795281159842803954120128616784849878499022049484816894520519633479150322768789673781488303750604053037160482438431925932143906622694125721141224311972907244318495680274312097234688956841361825358733401703249144240995025032958064946240777058502597441419148680846306557517229196531535161738710208805022934253642501630912614446292703766964050869784477435035124000737762852806331714441206211181971100923792828619383219515889700401170930532702690640073699952612678170106846154395916393002415975559679443387781754643871888927783985004432522051910745901070908227477128387545831678502364154651781311453469803876672068995297200310637782367809017440041220043807082434945875663879845946140661197176105443125198369732627276977408411430024026963208215342769510349202647097350933004990767810755272108453472530693918663848935001900401373098715423466613897334224993763830548199896781997365789850994104792176329493092021844999906062802255349645227848393977595692614639029616868345847183932541361823127902801401038560391001776137006851841379100800427862662847878535914986116240362430907944575626284475945442451269129225648727260664581790237648469455350381650552495479885592144864162997072871135334061992475054824346244783522720350621147504348167860013774751594527554117638591482832226549022870478866631519570467997259814702625244389579172656280270151138901736370819390648993502438090061648157811172665080826648384345770206729171351191264674188512513749793929929637258484136329161928205675901146088228827135052538134645769395869127388596797379751916074818695079839247733984633921190171722982612366431426526583301116389460220305441173085718336006137558355631332484887116858780594208739664132536535004929525149491884110833931548789785578591502661944489847048124386704669207553485905491787860918651404773427927795435955004915962322193594132345611167477386049018773612577090788502779202524315285498504840650482863524728095660083534610247827982935816058841868896051947897069921246669384101962438154210154205427072552698773411238950669268453316457665856068037858814284960207320140993779018491756443823607250859423826536686693460397949961496180700853122422112204798968907783914850115447010872733151288758545286332019039789575625201569390270945082922077402970198638956270748399650956397672488937725613249791173084153193341129431562916305138342965382225721364117243744631884696150863575113644178594855616108216035384457648682060871198492718182575076339093290837085273604692920066806362835704563929523343742203823074342314110218047281225260062476117934393587179051568794086121390606644042107084551725500467327228024755437639601378507284155905587952927306204144576446284981827994221693642679049476952652912027302187166152402672285665476653157485796245080349076395757869720273762654958253871619878382900043766362435073929464147653452950875318572131563490687051854595547878381351563920432086271222209124326459468294179539913284960611613536438868048445188092994050472056319610122454626625119476775007137452519891229788869007475551472095600869726181840472433763911580373546878754430077656968872145680045924289603260758876953022448154104508040901817304684558703816761665860125614896116878134441912938261937851910501222704336515173021344816207632017796694454324323686434217607796506271801204855712811601597521694101816054027562461042155927910498969854054715600304447662443735023870176623059594503987625652432273572585474753061692917458269205991784938168293496631999977696149708044172235264275786752402627439607401686891938570110300343417574808796635386615070924253151952233911114356101016952551560818031262926477946871394968452168727624548708284418473124529737896140733236117945372328451643931895552816330903024542826690205784754762480908700431621122391560402808264244565511912057802710938621775463422734532867520859707600126372964583370709799110654003942151036083664466560130054332423976285824656895177416224792162763371794556535663137705815276907208158884384068909305457255473877987298007617643581311295956772655716679887020848983576153681847334471380202661316164783462340279659345350372569218150399954282918727698918716638515535983102463384955101545455866910956860069046054773772095726134558432112337916522646813105539552117906068665913984952338358666878006541155995891100798457816392954268118375555206875708404475643756826192772439190919338779100109792592149549885859499490243934530598323443803962175961756972322850732995396046120027841566379917342921399614846227530263806448606916015626227885747220534249070152482042195508306005676217703523795967461562188674558023893447578550711945397042089595680587971336681103784538313142025157132531347140196476669326364602233354836902939071984712667512277559995264614882010853787749397454612512823551635170537347128615274888649834968579685204493152277662929500444446126236696552378611098878028383577062995292217602576166610116794355701700275145527499589429979314407614709461167659419404486796923862041258109301667171968140990323287589934448119479319839497208846293121211584270824612203056416279254391272604741946130683182734542423825381360249120985538574268309144476652760646863928568073161219398485456856635757367949358288756207744710037998493789762832874631611794175296555552961109442175703858086293531564590807598025280460090829348757334277683636293587454527822804343033781398833029421609634101876429275563061175446680211450467809264806537172862909354163358243803385821244048782182083300982512081391075114944273393331335924974688075901362580480701498504651467400524036495519915506526814301089223533071557173208089565456509049546137174291286082154261493236872109707837926242503594901976374120421453439597222118218988760460020577519213582092950778597711715533599860433496153363041703717827130813546664503028269691131247694594243801305186299338165605396570664795636757900098303203197833401466346727674936846182265518909875353072751298111044247136510398997474020903255983362558698554127562420554535201789994810183599325745542556067329668583742801536116217419417761333164115464978778999663490033126902469244459742152955458324544102178611389131402413234972351384211704227037136348618284368759367493164531736206390595039845971850483322306001278347283225135602612851141074449940132560961309475513109675191872935305798676064923388077241858522951923962076744917317437752811518452577021466863302861582166027683569939969180077031908276153787873599307501908729382283755348191242521326842284344892153099088308389365758545154559871294310604199680741798024166472988047390812654260139330052264285500796234375806771907666221335879756318039521930388613279237751032635974056961345778383463568545350147240287813151473607077940695461545825863441315632793509943546259093708405650784568035590085236428694223890979784901595726156953454420277589816132553340395164914681556245318352085122992404864306207989708539697090811371850296627290324569395662496878870081516719864555146346629576990195408136865143359136708644972458603000116718092428039678355708577284592779407602976317463654523325107938047580619763754257569457012770241766823651395231329674193370906289271570797600938099577676629369001437251627914924605175703457769312275330152176725005974511190983658205450290171612168257081452945740960987349984027310367789996818864099717959806687489433260461838892585397512340697410170537415395193180263853136611363751126615333612842483657753897601350834131757017388944428717538368554114763514336499763841969645228139374228743276728166124795891832874157669140011442168337753143665623102081392625225143306939910844133121214214547445230224830954213816408697365086127073665803290395721976759480065194550520393889938029982587251697711014434648789685861117096528343447140301654114645461538129638233036917838256966586669118414297956116337388167918703326094372839087581636656551407426112793458507432765725561149509763860458459398892916983538197357563798122674684052777918254934580770241753518432859552744367287532378276080612626412750869226483529775381295618951173970619137228218030650329327994097627140631492219068032603732119007408890310121907669472036163250392496211903127984090891855344031377066526099072696379394693355288024346054117532888312977092973982387186181126365284930066503125136759225217528863601226412335165972653144037659728946953004799914622297511922695615144006607919726317048059416745980395014197438825581344761282105864437036360198205519581685090980205650981995067610212139089338602695600758588937329217327364461621000719873451555719310825581069330320616792002389311892111095159731281606488109464548527469311667269916804473557405915130159510499411493469344628575080823492310367102073529412779393756510484373256581660474721067449572852259446530230902908295168094479157989697537081605881786619416797101824558934965589544821570413631465533938630612535427199389515648997245778217979059475276684158123878961194405282068457363138694745453460741232837129130062021654690901309616702938828109434011563394999087419305222758548070695056971134742848219930757267780444373348001902809683333449925317702084313911469134285561323487992234034814815323931968088778890693428671290287655591978789782524369869727061426628333975152509686499046420361255498752625064916171215515316738490655660494172450580107492211987708206611792763158336330084701631267129087232155352411707214822631486852986336809953692041796347041011869131191205789369350105077623336703621019783967885368155064475811079775485503851936578079215804357769846934338058133049595184642622712314317351439808082743335632945875189617051455240517732578375838532038577749250130622617159341260764128120841349642460789326925301057604468868714952794634617777679853072688800198186440254392288899621066638518553417812667456933256334430052190743905645733249791771090790619514197008746264681784874962737363822480409358809419896604333539132312472768736434104526154799808728919704938103820674745810110334451694995660769452852060549210925770581050150630476671859929048457337153480904408518417781708373303257227418435338681360337920103306525298762839263722854164820463592721387284286732204890217451110365995838144759257348005322176365690393262946677713653755652553811945077861861876781445920250046136270282666873329923143662057386361488116362425952514594729811280735104013304598826342893443164734535279935876615883393742706214881669748914656507858861226030858447137347963975471872554806496017150949393244573648842707959264744869439396622307923804407043384130923813454975753384767832727476240743928346742343528619814546259972109517111487781323074724121295583439775250902764561183278970314232826863245043664060114118345769334346381662495037389724708727199659343841480870716107254829813742764839558669530584102966363320625541265403737361581221173470244759324427796378758076988365732226836656821100875638663045444049688172055274817940221158547960033872784155203444909231921651373074947878964731708636079860567352935801387166740092665020814193163214559524249991596496042105105692516526984513481688125679151685719527150979909030377736052283243308610066865815957509504278901950992240367511764137226398049496722816936454147415847382466597432199268516108237246963259009521687014027587573298797360224522791933724211586326559428996171788411900740733599659797827065609665402153311563503258633596587883808844243104135438898450312344067197085040533001469923725516299900779327321643604647119962929890767916889674892360032262192834461765248698469023309759800012171923106646360599831891136249418388199916895782101058358586196530002720404243238806090883278440760631682686490132992252469611296455855554238048812083867364066971263536241519386429559363888073906214011726889294276244362090060216932334728270566149844374288788349863778288662256534674269999227651265373788470055201009273378374020949753959882151104528897825169513601591318427067274707511242559715872438184591028712622089050026235700791391330626437945639837937600504337939111070434658875183911778772496182947499780811474139512753544333330112684873575998291737191573696885026051429592014479659465215714993704313566959798424644424068013388465013319287326091765082729041599416830188200754981192699251290464959934780221028132307857582277447176836028835610248739339640745390765482979735495186811117874300473058549755329129295893359427675147114846865884229415259515552223372125743476226735630551458691471129304811011755075368783698799495960232382165119114549052894970490757998171618258554046473662502512126485685796780445934226651967891746933347006385359932509136039664269781800515631802776540986313865952607224376746540850726463460783537452869288499820968459800046171319889373036011763894592053601778445779498828664238800630093024539532555383242921306658179033507036045480587554193182810037612812740183183889759938130326350371927318782278187398937340464992930245896872480052101352397363342773432475122554844508940291356299459248073509584256991296268021237766261267318175171056867928105831168294206475539038039244177442080016242506546811776238285739559512188679783617213372127065458244597193157556483082746083027134554770253179577358313023057834318421895358015734695316107544997747939923649027070643232394446010817308897881330475474490545811743039460164130139142700867487002497151738931916433798781049847252604519761156368485613326395862651114924493677647971909905731515033649778756140779819735347360893953434831053481084934361646179930432906191844793680867567279433759394588996692924674260808930494566346660025673687968949731766174097320831272589408480745559469694989262602003533689552561754715601485133126885237226628751241593252400698217947641037465154177721804974745894484300635359893064440281290397965326762298042889632385883087687508792913364324798375732612755890457379242570208241289463854096614521066242422718745894066755423008752606270021462571924163806252234125868043631058509924769783675677219829172615956881083288737853295009481650842217653981156559381445608112138732137294890108550795292772298580443934682603645385766980062427807804441216635291927780665492794937721384991203499772173058848170094917058877839275227994560876543849840497595832107072967631275465251985200885751514380151271602288572829571158510197580852957364709716006221588325720448072909719058484599375536398776409078439210876649209576579195599846077105166300740680373403145886926591703134701835714263157090465505828747472004296782905751623394541490468330698271137950103841982769117073374251723333085576175582501606943814542438014679328703759702198019687126121695281104177842828919495989619196522516309170748049541460974982523211651211393669892681548421324871995751222661802810118335274575293757612685884961806804335350028802165452095310010359562551477587307447120033459885123591566754671608902503090447449997794155446866084626848009494897736282948483991096335738650042177733249394451768994679074029936607707549107930461242930397222173332617709626726933566456822771908516074670191864454751192542243596590359442946702711752311109616268686190046452856915248384213086460519609214094945487461569347794070356022865367557829792572534869672993339228052911618459813278335431198354255154294482662279091022558119340727764213016604375737871452264147751471114585860974164775975231683138304085986719008863032742748193282355454182649209644992053243498132941320035522654450009532480943844833975208007680284123041101996045325810396786204746491459933737663493224322983000691251603317803464950972396630118777301411015673358247140811809041994318916030825835544978540268760775898230887212836902547505346261716779190598051953904620766383037248658170861731936551144994472848356673729842972975103886271504951452366412294172136592267241261064545446331752812046228350665740335497040035061507804819169737279812064844265240501444298492694060344433077408863859343406870243368024683303643172270388102084663560363869953614977862943185460523760200188924934206475639976839736165389191952988293110094122238640806721138432707601432529170654969596412084213191716763713219170142588977325741509013396150250013755129842243431076447247926167601129088154002186648295658556063094592042419783958267820165931519477917903138516009827928755121312887315304139830045291830695045483807337130105993490612500598251328022089963875749965039819293347985386112405772030807613564861778930812789655054979191051036598896026517155631688694450482300333598239395720825325220704834814420969281327547791286948939610684158876414688781832407228105788063507736714729464857009372297845423803648723847792084500295519887598745889856285689301568097726935805696378230450263616470680929050551033552247225720251990286100926412452424741022012025463661773952426658533177120983462806374250087587162569637235708337773554848854858678594619606603019356408182398080633474468769528235950982177556105802411794745082949748237653008565820120339323445667811071724411728986731083589017433332836222509850376429526829164455447968510527364873009443018812264821473623706175874936714688897065005366795482899813322395301636916896575888046733977689890002917751921040497401727967391800773261203908835424130632042776759917054655402951526350164064124736858525726617546730413929745648125094847342506663882356019939528082713359400940088717351209890281780499629644278353433690351159152651241605849125243207173422099434784860662780856500946877277180959869255312523679568040552203170369689138531444960034047516367313487819768668810407906264042110084385302972159803425940124809493356947720556713793780695683358348035242981147873914984251628014704827099110979285525834580794600187952344721610258160327336977332929353522925745488641030922601969852963142293189476007057336164552414597136685329374751589757271969216572725247577130944052363640800221297880722362874200549611156222260187799483719360105446563234297848199547489035812178119963778622953231450585930599173118473345408647284619209408785359115961823672949697582233569146349446212141752227655237675731103871264780084348635872894864191659288306581304960403034031270455410187728241762025031986641197148021610844708053243771110174605553145305268677967360218893168595926523411553619531580933860854623373829237144600039841732625056982167104634682384887305877908058733557959341378882389252639168075668424072320458015487754164336441940087725222793774307178052864500228410137520616419868008844359627809508454057159250533719355379259604237936299894348373231220399493707662259149537225496362373533978320810619219823903011178354217049277971235415150217228914721197348100328542462900386222123623404111370579634872198357993938805334443971997164345112305252274540030212319992314185476524401753141329451048601950405291212148175295293839732564391859783950747637003554338175920179105262306525389467160128448481924533660867758680667286931357554185537654306110578151869765965853052509004271740485446736143714938772019763177444105439101321453374073869831867397908058743532822809895219500682534827799297522275213163487392164560991882506273892609516448853643845569491042440912150903259196242459269309139796609597167561731108533169448080403501849730032006651542340187674359948495870732224486378416043503087459576516088875730440678218199321364041938557992853717661639993611607297647766834190051865329196091035694401178652294415803019591527237262892407790514558017749135765414235245253871696747932147531106190340145635997834635699981379719971785891721740093750363138483842707760677606201669443574485448121502165950197136348102423953557792905490134381981257585989398302021539477235887943967661551122152779044664731348779244074546831240640657000603861534643510383860532366620562908911966598386096610761122885344363242914332658727777534948917368055465954715663702384051194198654438236864748135363914082737703709373079276447054711294783867025536541566328532628055664758564390592669690647028171073576727354673061727267695842506035112672592379171397776053875807049135467336992949589962247692247144005026619565173516360614760972760154293601700563680234481888826451848210861197275110709325974106298369065957126262407984570869238822299917666251221545794241133197240685671056024754336882813851664321604062531508487429203428517638564338546401503807176085947497673194745902235476363073862422227534843895203012867045815318271213819795820391653154883524864968145932648556176600149763212574349130987569984322223875666591561943070666978565453325487989984675614985405961606024490735307850512368330605188405927242843834162749976385127357972199785446532861101828857757497836579013218879015813644393904284395911070672612015758492169581542437370695144950599896593927302485658395757749894723359717513811233173195050240976842284879037533448272345897335628996593372452456675117827353146713300122096415549845828024504485267767021062938332832540475288571743991600954987730185689770377916855921602519289560941890225083349462769893685319221141295725304237590083332305914806396073705266319163324132037169620254789131768686574768919583965113336613709016649711784475522252784264847719370302311844345401547902359043704386474549930009268794980002175421124028650771077660678909005210937907839711974136588527959027544699881014096255982093512729753244265825195468560317861310740846988456456236640015279503140299044066789342266250058414482280940580448563266166222971798912010861482408646531249776704108435378208254669564154587192849829428343166481471744692044462334180652213679838582867267845097641536235454136145619403280111557417243844698359903274546740806283634860244363459309686284948612555016237417179391907633021634669863122502840480608154609502604243665947322567700856151162676083113281403846790884092146897666469194269094944969147514427329732567057351442602841490984567000578803898124496627864231057473657328662638668416061135437435853888345430519547755186043157168914976088936056978645199754264767843048254613103134654666058633903538566666774043329812097863916783596842664416463100465826649657474472789831311802694773050425142200450703700497636059027897887242503031932338681258159506313303611330582758222519750837654215633055942246490609228734593781870259143023050327642322908820035512340959033188372604883982154843941370236018575011448660789936380256134494922437982628114796757111670995354262265468425856685724689056988079225270611723733584570848778103720535927152247205097345213100698740326116825980303985658378416880862400621674725367893422374504743060818642348199873892748628212492263840099681995674875747770793781665264015011877759650130791361260531118870739946985353776017323098566083732882511947938560164625001733032046291129555642974377779070778448556083015093924025715875950464511598239245911323589646358548185025134612142553250200249225808400481189639686887283678159828650111125734397961146733418603378276211540282690498036917095363261501585913179218686961223877391178520147946954121321091761267845953375786657432182051664296919464737894533569751578413203124062087610386827533441067268547497931211888351667166241744619117837374951748963036249543890880431173234902944696434891944688024599984482209654127407643682719231190255332153619873553504865717642301875166397866170908919203543992982467820011647230873239735295982691939361822954131643192837624433824663633655341812347981331473164442747371348317254972257180811648673733292228452889053356090503464902406599268218211073581901189093932355564473891951071865704951228347309013780900117062087902173712367160564808013096174562479626671982330323545432230252042106181507687594860414862672785774344856574177424868323315862608139159070886590529555085066836282210551624192842007212804552612506488357647670769510475626086130328039934490734078669448814259546916802053374647600738997657890167674924424992122998669663406655862565393042833733381090403162549404533998670708793183519732134607645511544780303121892513387187198108254160872336814304554837741882979049768898224099662600253566423026415925703915475261266764998833459461697831680442445674201689853947586181214975144516463459334364578959852418150227648626962431877650878280725295897298627795651219394133472456453054032515675092224142004928530429978668544847120680299933318311567754692410461724798059396014348525416803196282201202287925933157109634501828339065320952556698537267480899662544678311689979995406687340906125547508351427997752792518207037868619829987181838909541791053618824727657359909184672459030032178449794942395312610865518953517938801204688177515073112504417090184729039204830841183234319898952401351186113792196323985198875396363131882463923004906984299954018103076984493421885040264683063790689666686633203571219251219908566081618576430493516652045829374461264810014693887331026188975797150961413496991342235681927644079151063701155128342752233430831548173974141072027273850020790104323101121468809607073415217002711165984235217203563857646859379056879153988483333319075020161948364439333167449589324652339687039812171979144198279545499348191081783346947600752313299357634366214974649541010490050353119430856207914277440191885325603306960455887482782704341750047519052165116841275724347575080252297972329890886832067184204776254731869485141839135821949459269415182410048142228415108023747906177000555364616145541820429815490933816554275313960095719162672163846452326314837410175436472326775637895739982224024837246430011266498926722036396032542498572627784076326038564020023333603215492291989992709286223092950526215837697376901022530274981259172431709188053081132760509774042135283247753345241964223461416849814844044924068491601992119776645794866985601390128828928165863022275392063240651323418834389920809716234679609806187961588496620776050680077547041191596652538496024657886200019441835856085343465641535823005313592227433435144396714470074404036953154729372456179721083028448909406824545456746696578825551554137398484750297014776766061544114130615305876637688619417627184426558708323128160454270007140763798168249397462663745428042836905488736968229779963098785492986065318347427981355084685802168250651394162203287534699242910454904061594066165362163554511053566435368080454594788656046192116648756469852619509136422875894724254897317888541491807468370505316787131429678279641654893336103920012414505737839935049502626372272216640364234938894205477426578037919912392951899484022081384162053936204707134250733650121067877263640152840536358942187391258839626674180256948423544243119311067877401209124806992183527342149598005211616499630542330280209609708206622063014759998200268002723397599818816081686915690134468281344848587719885708092407324579907586781147728053223144468568688633184184310329780329631355615956892256959790083471919837651085332778406007963490134125362364876484610314203128102107785179578967917082764895365308156800156061278101428502045386763234007131253203279488268714695194875485313682541977364512055172346849265474712513510340050562722215519819682603760975451839125332597044010006177110679448866682231670979699339471669154991104175848170286008859350418564619327635247031083656810086681385036540047491705765557812790691597583408251213628363380217788322654812376959420723754982851839307120480641683804356870401636875379323381089645278437166928030611470276921878139812194147474626735540633152512038701927647117664716773604473859268388011693350433992014765721518216549994498033516043662111906023517217612369225393180755401377155074399954549784294943742340803223667137630775637157458579319647667772428550356864590146383765520325664102377398256233278330626990222831249055334702296102345369451846819541571984493274647479034843230824050956448815680131769594648570801369026487922067203996706735920753892138833065037836003171262153803782702725098668511769365126711582586054730324041837375259096920761846163974651696224819033232638644767651952991305195054289172235245956262130397154036860974028626417989989407696803173493757008278672096453348036539214409652463510336166542880356678108447777219764506924530893113526071733135822287454886882252407728654118870922912436672207664403462503073214756927744768118850759052014318318121524817493634426892074788230478570084019988850728552374272326918077848824174153390739048246965167554477039890525648777203011247525441366024696553893093280470490094656731434229748493880165068623934495610486415014134866761588638068914456499593150281210329149642825595452226876393810027619331351934320987891893227299336516376849451328527381179878923736635736681731869841730678079930878811160255348357447606411795435620189890344674316519856391955358464587111620300204027010351758757720278059399369453854938595779923426891806592296226273344860637979660060629776315836807589020415793793589498383020961113632143886973955440854864101546246111128469700159897678460464826533814506282126046371215968885376651783825759301579956060654385299154522012036981592967582537612135533525065272014925161666385445828320716315453456128027097510576958248199249239400028556117438587309837781994184748133689642799252373539757269540597247998425846898733893376343405073489386022227021279811759601613356374088061438272948703530478805348540501252911853694712198803446493002307664453279100635323823888763465270346303275028956510614582699771765180974076533402667145111154473680024546072001969232044157557553599176810777713185399767596744112086740878057592766691816357493609680984372773985222394729103456117588009016201238963285839503290177983780716830849516113312379881621240083595220812145077210004215028271710619359544134184254170641896289727141697264512504409392319098741508605842845117901259698560384121174169591696812704050936141236501642805075676209788046460512037954986076593946694012325300499288613098595193479185823384531163805780881339458254842785514086276309376005810654722334459166728365215257455718227158108005939779541232694878529918098981145414650062877237324021026979895854259908072120764811634166235182432280406415618138996325621226052329325378542483386480293692487544647326419943040147200780580438438327932234422696017032776279802700881172433115738451801258714678882462364259635437577785463808448984263322616947907080682079623481648517406676250034445092265646727963705629693756967796041320608799816314409882545767118018904598995561454481111360355268153507469112837132942176315207576004530754866241815496143606000518683049120569739457373161419769679598072413507717674147176737867542490524850994596013989580115827883671853129551044621170766196606183317447539233794586283763597591665233733228518778001221348480692549601412861105114567714408053218372416796744737539222396731051590579756644916156556726727888168465769078491832442012883940714951130743710644965995989141505387081246543164373334452888599731097389255557148656166258437546728875085942765575642438980299050106523479625637361934460976062370670574167285009895552158113947084449992002289388780932271215042585646751808740544964756401207737046930529982969478419592886490972100012662014521126498623233509124598301548492049761437434327847038778477322255136672351771495421526360344241751358477305173411722677359856712494032411094945296684123388784390228029779311142804015992096008829997789435912318481972564020956744600154225857955843385249237027655971601590249802813972878794891966846234362527398738955641354922423656669302435125689986232352359448888160135805562473220620235259909297811039440849455088179304574284861193847288976841207275780478613135992805048107470083309547628274150139987869214345067077888326343305423793877949892869680597637503139855380601712723549936113106836472235495412899843865234857000114205216925724315959378670120664798571651839086403729479208148812290338750446628646020627536521626025604298015362940593462611545477617520974685716716871087902729671379460326274421921841323148927000375170089348385673639013070324826098309129378286696081947334219269243567324254334666443793562677655382863848746484478781594985272499308276096623469817041964560890600968896383545217200649177595223838908686832747756437391320694050550800510121869245985463866052950150085237258603793570638689015180541859991016159536343956306166930713853635011348671719988439373453186483397204623543939701730150525142963794428862559285229401302645609647091024900783299832788673336970862181114089346299025542772330554822406549506834703270144747243694644922129842502084641865078288583947684891654779815503554559884212197912783995938682877972567333909271975662032390159682967772252223995494828992050238728212805178598696213152307535204502902082821332106635858470173852736399712394083664224406172358058120802416683274122889150138215006250648317851429988237466944498865041316468972595037062043718755122543225445417644402440548928932955568252521799075012691905520331688519152983908416300129717600430594973107825008361110612748963611183132631287196703469355868198994703444608076338228858934769683386974878447344991807266921351380473882679105522627979578273254128789752716461985047839907861554182534745987718748888408609406296869224155027285543458457238194582310668879859656132506503655284584350601010208220173477761477116653467005218957042325621626962350806905902759737376252950539062538780467192458048984304307634643380890835630493038036102559431087323418539510111262136104639035024639316232455503178736153654607800130556625836091046126575591487654524446000751657797637154703251967174213270847408732974407323082340376354424490375949047817440985245170136537227814780416300727886659106557623915764083069494431186874765185692111262032578815157025308902178903320871215463989329837093476856793498367183093051499782674387689021364013071510324778327911122895755477272643124086439239027575544202215967863570090226375672497103762178661278192559924430542199623361745403499619005593386117326711445140651645763886329434857423221479454278788670713267186271992860824304555214187814866876397855004673670096559246723695055677844043161989965905651032472601243997044670322697481739395663660865623865551139066027532145230501963939634766077323732208632819143147542682939611919439708228679805885111666080455713452036793316196771629595684626255957453055530413759363824693989376886964981657962050641875190839041640711445136175312915051852320645354039489000061333594266035081922278914286324306829981149233901678590571711889529844100196615483149252544967765798598428529397144656230837262733429608164304759221388607821890069723276570392649377114134582031981180171468656064408359504430826923156112268497402653367478350843053108935889846716511912431440685024396265815897835779022407522858635052894460946849755813217865150530429718124597145327914321366496650928803649929193531951383728733262147393331018096538976052154539671883342026041028191082473371985096576486131909908543227496682466883797915757969795933626756516925870975972235431982979648239892666306603830617308311838932350934139720778917207540828173627767347239981021921049663589892641361622653675386131015518158577157991626316233781964239929391728226033592831737902600049066922093317544923229231587042748627809301094712080258621689967276902507692610665334281492928805014358311296924093677939297139256787889355871973437373191168514345712929963031330797190701763976545719920336154881439725370004614896182910902286740739410413498926088981372336439202160281501908270343565483246414028151231671540596345643655214222922230619088685457251368846881695961178967683364070930197311728555294824527251467272987737753807322163213267091520651989683606826022067648643508657543416864445979625126262510514321996517574847393506706335919688768004532829475732617479847418414701626994987112470210824510683491877431779967156311064946636898474940362359203599420094452043614237790092297294198595728907536444873496168486819939882505339435056112953068847215893965752910560662978376863839036580734185233536250924280427945342682087520410329210025487294855656130006555535932485665461635603679387887826530287610016124997118333539771619648395313009272724882844308376780940452401992668648088743255151383976667144240333262940361585219769970366381377512907481248352082274447911711700384936730719639029003604538532473998735080838816422587354057706014108317905225351950899583054411460194123374144923459345620274123429078254457549758745835539833166602966619712566222046618907901004919888267206000588281569932742871561167053496421000140059519067181132566772912942220137159746406126608551826564372796093233641153538686402775491954312365609521212742412400400303983127781258105046714476847167038228845247919587731800755779571198350774283720530102022269528978171201422518634776094403257260652874284870825009913650809773761368156504507309260895556370932478597301555725720730192278792108873839738027811876449821303487069511156856802020368302448714252606535471305811533007697889280584707135283224446558746568733634487647643285623008099422400250324351918334100747821803756862895982835662731816029665397090514362752187714213331128442423690478163095746419829650548073259695501104455907359952621078170676815952576226878537933314597847936137638151909229231950613652668495486007967086823159435121158865943141870664717835546906492542522394200052683653589996069903783752851260740053229928669146220128783606840367688549843849650322403707102981828120316400588102028664523725170614218396314235237966177839631489903381746755848812806842828849730695983750330905420112887863864091812186120191530076867620723644900926225727574565891736291234678306950836575942040270705297159571977341491784778286147449980549468479071830441206124257044424352360566560379011641030646285123398793121970109827301843664731667834798059116459341978734870216309939828724761975506585407050054986965488957342959284941208780608338204494309083231113679771228069887541342937581505965475475426083189419994021405288345855986548532411647469360862676362757151227445192749288975060668018078909568963767727404346301610578769570689452190785914687809690631819039485429287305613491082784352417183160742415440032204917244515878288357634582651171131128552806847345857089311619152918947078332262890798541772011119894537012632344247014493017546990048939475772356336863569984968672199139946626482713853906859261138449674712771338749551331261693641425806422538195032647603763152448649275065635653545868802302976146602425104004449595149693443666666366037037548441413245929837865147891127564938331528888749712226246205790250313275900276760379144233472228226572211960325655439284517407012438030450816180013192691793521544691905899817031690348643658697846987115524764582318295549032221124498473818611823115530100979978330763526517185659065649909964587800971970396029419587811847306804615125105008298468176446189203233741862261820366272473333303544465300159751170215451173647909070585262072257226003211086405379156529532146071234077473687534021279393925705409752103700911381686179255394343308057696489297509703309323524706992524430858691917249151158570609621613121812566756697638310910447488240020253461562866713551717477135177438093367231886792904594771335943885731613518042575240354011552583644076014524812207399517688014422436864518166185616139462469619760121850726294817309614307218809131993429845609660941369839395576314036225612624516123977803600267866908103609650075079093840940118712423618428575458154706177778950970643538906375096946003928205210205331136209771057532208730792252918136631373486296962587972420463045915655796103032763044543150497621944159414381402086896191903449850335904086646409066203789120674825362748076297157940030787801571690314928109357875477755755391569458712760696172157262201015279753896236043434408464381826481994375650092965743955124916846815487300865509908884438033286060862587095203227100691195748943948044868972206282602833283352668984479237887702585612131677483190032174191168058341492221542999499263899604275248247258334670171376137513969388936624571477983605271357861256824642899849006597096969054681243087944599541429137199535041552528020034532585194195826947854033658410895097182593408056036984151254365930091952212890258676167083670682222243937096992244418422173100049963734048376352706147074739623459782719981390857966409901787484124179831494397181615008909832463583474897091168060415608198403175277325058956205765605790765635002846064873683875712911401079822726090996144660323248748776038730000026979123843335764293409147766788217299243138951678861213239117905428153846294116122974768134618416279959935372746368113471004141574274206937769635136094489196120329937456511908841187479440820779436351653999188089114284229579904765559565348260440529853698341805934861427117973584807348675860510002824482551704439883376383321948193412350867739097773754113031123154826187886968644914729392687562729331730993212548672027673492077437010856251793716393703765380279247215815530661162410885851008214303020117640385590617231475661393723109598051463367223717779277501993867169974843830829537161809974500194462153977171127698637159247869900623704063023173282144080931495515692731811107128024005501698991587257660304106958037417520773545498713646656173587329610248753543250736257256737149532139310604866926058798556123702566590846710421168948660033569867525608004448319333127993406146875428095410332424732240521853981028846837368496465933060221224650712935589984945336318497358768416508736381444251709407221969879846291382333139997115863546713256141231818127320726699287233030015917192156692679433934698598473499349694218454005176905761996814913523198834266723968629483635740692640245584212403951947653182814001942935956411626307487280679190521236336833538101838389470068338839745333191631537505135804200245774639312387822917688799698507266872623122887240201961085556517118704388524164201308417979670440651012032192979142265778830212617873079162143203029643164353264808545842252401162422061358076256079267746504125819176006588091814451866102119306979491619108776828277546564266992854587268212089606261777033577118907888145332501310092667641552598727982527015294524822117329938033894886795430744175211061865686527366715964533339547655636246496725502086918605478233418713786009513681498548615864317570644207492724197797320673179657556323081923715015533602609149842790922481560833360556335140079473599827611271012843479258082152674031196520719055094195859125656715513649701359069717744056647436337906853072656879898324664533430989128852688795827910779586520766950015747858091293473840631405630921735763403262457369117271114563827668750134633549751682435013606559544481389764651207430664618326567878648201626832274862314610134869499852748037159783443333736744351468225113110775817779433497305195817136463937372038309736610872543011431164450560824658741915719368336092205812628467227097175547331734439373094056867170290961388812686322920288913689982173572291102342360014673887106067981721672092155546866579014195898606948330556988984193305883086766094512743038734931592514352040045153289594308391707729097901514181596541617720943254294354622474995083973908994776651586311829589803115744039560026617562158646245108094976086652458994157482380493298571028522077165037285633285433545733022508745953227918923739038149788867344055254943555667630327955701549503078396837257817742133113662381672656591140566414541390056254630440288054494232582487539359133593106200595285674160497232076814292830226084660142859352218188991875919364532533568116871199950017507240765587214091723282814173199394653994691017731644790758844844522675097449176755793624474656464899296612186678676521598381163551323222359017754607378261038909777017774822208668564964645453629106568119059929419211954146298451506833507909951466500432271483629165613524686963322490691574372567154616608381529584725421135505575064566444323139978471945297429608386230619439908467690633531834360383064680842641887297385222910406032169577671270879260709441036314352738052540283494994767946621233801485264777821804053801581589637868207052549650947867632795747820657508130982805739938628545283500096092516571271868585831481487761390864853102652869615948494703514708796805980394692277533550036795704969720743456629799512005915677714117967044725329298310559030837383027792026560228635129802069046568847449973009562739386934508872256251716981706951855653072522390152361759680737012381691641093049378570394948483528149673288089534808192015402073068836393384977488609747743721586599870843264986591633485538998491370157305293533913610346330482836636218378016083863866313210273780408196417522597952331235433376487006419433451141481394231528016650393586872772138806057406364736716016477507089095198432736114207144605349506456836758799086569966437061329670333249926066926919639659325083898456920685322229255703891649676855455188292621117574568014924778676202824547814424149306573251789417145535487040136345664765178170532648342934770631346720724901915239301490463975716439581199214305034212713401698790952388704316591964927806139044507806502480856047005336178014865958149160841824305845232092828287464320265221425833247311427397798160001052342811787551373576744962433032738453249387182016034629002956703617857219585292742569374129915937476917256716672628963334766297060379952212338913270099176271669064462561501267747046609887877245867980976361479796236519393424274412742034445319500440683493530370455031623882355061044754391665096922894995012197953073290088264905408330447758042801143207419692226928174277951004921867559924331581344201031013910578874624459141237526571050129900141496714325691137930824378736761858695303140090748656966694457742846261883029000235648801023612627700876989186440755306448256591011816632455797447284365614002815801473257161616045310050322597518249290759502594774972542081428709203928276600497411922321552902356194654576583211084736452146316335172608384517506929466133260461983361361054223452039022154724937251363950159828449515301729969817032094271691125947253794785499798914014661951652518266889975225108475108617776779728760488781581613202106966591436486877529814636174116735292383852086366086803049475144377512024884970691543132638421636212654216760936712015092295839567454833654460761420479602704440291950816198180596596035473560779507990493881362306324487370428644936271319724949118993307062490056165901487023288890266624368730655571477496233229741037619561130264074067249561437724649226781208582380985560650440698584228401782181954788593877350670451344176609880404796581533984360123300556622564164985425226668069631735996686373836542090225438282479264969603412282487441256038282935668881299600151544984092017408489406926524945594407900490710407142187348801632392037320719506081685706104360038737184090457192366614590981640329906317194064740976749120710005704560377365358445046827629244410505982024606845563403227739790754848092652307839438323972544420645158342068985545263598213794687975201858919300396718850012696969171558238612263486640978403693977249257202364779535075667219619095073788069887773633985269050458402980205412211094983816462931465301994380012612139379864962556726934483789791753942800471902636004250638218231784036976082730451854817483638323098536612116659896699688711354014772223400827228688258604429341768290575504417787177392780371970101785932508828663548941599011624979333249488037288045392127544827638991844984754921031610325714141124803410172422432222552947425266712051138989942560307910043236312398061434376956809438970772907522443337266545522836680222293540161848070079056030617757866808339886805607003564228664455369923633823399551232579074526047604959362248597220318674586265258294508816965516690026859830890779045503103075437731820361508700652306523443562956775893183209997791389260597156181502278452553192484290711887206553606428695888739376107163374074599383698161943709629661248620619965368306468541234221001810720957874909560238886450205248508970479018484596637540337021629010209214569819900465024125574989215613633547257103828361123203463602984317181207139896483487184706223570594178326073398933628411512730446263266976323185461148081423335954880423512294491429508672747207985607784827147501281466636371081460580883643387521530850270740632468565622857062351472238942134227570064757077611236079522925324560168792185144405030310608127919922818517374095908824593945366738692704958922394901818540847164244840855134625438511274264391537184330026133821875719731071702422239617948491285973558812454735889881864399578313486217455658795726119129215306979273794328420971013659430832352509179557058733657551291166673536331847307809276673505987990558056536242042371592021992427886587521427892747105493807147163223787140880305097646243302747979494933866044536920978587390478145147549734637396344505312112019890677354314032941755385248314822073579406175645872593763094413972319377478596892178658984005384572011441185177320790383850880015096396651612965149343348423737072908252049814854970700410907123710038809818895788921277762606321471643142353170733860221409934988425251358316493036440684629010943651634941773105459609004344511133243540119361780906261187174848075768119591115752291039160106252588496750853744039329643756741795925309391701700264665649578524891620248197409432503162118607952732762679078186464648296923995729497636889963649905497125533784151539056347144127108221585452053750784992751812351255139339386538073430507347434978570792115932259576482701489909377907572315582900701191132985354858611019866961147825513250879994290166157572987951081080923361834995886343992149125442721476552941658113225406431162484242632148908715378135942297652657101451064126941362170670242824250844944035403603126529353761140937831651456438717841181417179833178513026516959473291248204598720897072316183438502201932040883403059433681957439897672067653625259570745350868858754545214206061169755086125622656651263677361842347666394148080611611986188384785023660108205422283543494931869286524062430497467487915600072840286087680942617908812968730754117647952815815998668651953111831591131639734605229683002238935742907466091364508407527582314737957579676588852612008600215373050579394739236452820609755776611528600623527066934237316059748511689797451900834244850738714895237868741587238022216025937860153933731616191337027786067711795717647624907094441787715487756255404372164584117394800863579308644960288993989159488265204838882672694631379229969238647664722793550008823958628203561042996872938563551555921049805648367257874326433737591208403007585888044971048873868986590028948566762175976254175484717470953367031801263134438606870860720051509945718023788771713805591321163405448224844078593567226662214992240453418235592054730071892826448182282364272326723444050908366616541929992934067766033002932636476730692066400654189984654230637206097587467600001332452541632934217259385349369990176266769046051095115944117841299791155499543549473009864727768389321224061147783935573157632742298512677148002406465881325387886835635549701546499467374094928727745296405260094525894700736757471965845277573132916593048756886260399613637866740237357603741758411099545486844912173219622652096811537116572814448004005025269288534563547571899452294644703244402720644240423099673494681328738833037601490819779872282063496672843185107035743116565575863798426793029723634116588580940766744214421649676358053460113726672670819796219157838265896126980655013858734680509309187802156564952664415725480184287168673807245932220030697748524212641519410513944358912408366008680321108049370841266057206038139246848449540674767001264101992660954150753700739898874426746423461462775297757889584084155235869832202040004340900969471801587994571411017865312741857879527471842847804420598980808051547626844319694089948471943340291860063245459155638671895471779266569965717672898523984210463964946686920131630859907251826780891518159898710941593737806578973417294706283340902606297211864432989752945488961937043284628063814423770600647165519246977862331518079026353315171783148282635479921773076585738866135344374969712841746907701158679185965280754885152548531808634810493321705470458306022872008189656762314029141461933775819001473833772535918141918205261182955719092104024531886663366591074588201046270543906080399072903717802422843228114560347525563613760970388204784349127124795691750535614916672667343535502823552822143058403625066075176439363800851301530394956788856784132806224792447535961328604235796726913802179742130907524571595477039582695217867389101782481665650764363485638341918212784459622095999267547175791897562534762201044708711884037336615749273565728233122595536071236382165900829656706203622331974304834022414559924145979998073069518605031022398121982638237543893447708698449808478846578147104254371661950010515229303960638881545698550627815269332401608520140856673415967347341252940731462923963223797221608730599909587773407362906853110495804592910272288465951763891633315904905397099810163508909359498217023518939865191044702496279137837546043676805307090312341472699700940836075309686634347335368232126370718191932983629009866215610219668963397077089523022418668869838505854684102724266986442420563829629090843630690539252772854950675423651112324864734496721457041656916065268799480563934446574406475260790687494151288489647022377725733236596817080136794483749036099323181997242693473498537039655945496920146443937701718237006670174171953113435018054635770181415172327624097934254012963281187579813944318466249175335221803870243413353528411261218923784798664456037893617966782010180039975683593273552013365845888082069122938808225482085281669104063889551869915562507479979284830067839157368376056284147630242146916880690234933379572283339350966413441445912525270686135933229760624337172180571181836531196146607233636135310368629888092151222024756503143554659148282704393079127662729713532250902600470387118421221455475399959257717784279959123455362091443505479923342084628461108290870482357574930396467601308500226399478801052506725944311931772629806022474596994025783704201793009055855046073849192691075619610854871750057527462922361283920959702399867519212270628371854096198113509429076295909463040215059893055885643067966695886581198710411192557955386212904587970590420812266896676824035508947027050740276011379615773715428077052155877694843996508191871492249562585737732592907740319183827260953322744471964864218104016637081597224700632950362102344261729421636204626787481013888582547542676555045100902557593554234374231639372993726074470068725036116329891931216657584156814390963470121724962043394179570841910544186420022664595048442530015130688095064964587452265942916439627765260950812034096852494678612478629928830630424617066090157468326927866703963325907376901116009735870457565309077947059509327118655942955879079068344886939721894784532523448334770887695194587696033732368869461993524846322660246784399659083190557415798954751069261854646314583190920804148106702652109553729164142865758910397430331605193715479232069506849548801406218295602762160846808740619270702361023924351681288274306135303353766446091877504840938518081785302278770723380182860696868117301165248052270426854976028519586580473760840458800773205064690986840540592482969226059812970566182605353257050970466649459358698900807539540949025414537538027059278698587088801902063402285311375306764202738478566855735813245307117255632664371716173925298155171059678199944627508902209812481330645770894566640860741024106114246952448756388959842626223725702483299002842966375953839782910860239082283037478904143420472159658093062670138576686653465514978154676406304275966158541363646052020753808193821229888007970353654475818442276566847589128600291965162167148385903056115703897642623889958710043517739829409209282536394499042805862215025407527193966682520297868500997096607298405538240114472882530808715091190957840442941660386867011568207435055436116905554858558437465279976256151360244685391450015123523575809289291935759249532410952836163012309612803358352984828097505671319357717361483513585563350913765270710178142830590078869086266068335865852178572981448212431389120440211544862498003317910189862302849453748839376490147210623620012570035330439227514666246135734889090936505351699041685439054099913570789500787108258706194532441013828788888208015097261913786080845745656146321223737406057486153149204231382663071769595368797290703063534823515064212899945160596525831561956220424739985179413715404637344150243530124007037125815548157993638345109816690374528098136334040227598627312260549246178274016978158532893650222980218034529909961620496718883502574492579244527042177195283192155023474575761805815401043114498410339616364353201390823667863266112582816945560828583975740742136875712184806488496222332375859434061883443500058396510786126890800003105865431906834490803029832149883532787780013141466499644063747351713025104488954550619361741317110338295295840138821739521978361999661987424586035311302155578807909683404498170886450980685918696214226863260741897023853586558997179706392036307854537530568690584038125265509782068482631101089123517771126897481681404944218605688400808617034501649182547139998543178409449003892286538723549238927200814548795764309085488164721556081488898345878412317210383610204000632686440932695824191615799111129129235997227581610701846158548431701388706911342598241639474968087544834362732734650593879914371457544902084688491732278014865294604801597428561672838873048103875421506488096798635166642838453668004443665836083627932082183073086654131987529370928894813430770145997335026015696543489214192690180209354574427486562199453509928535776262568009482131315731761163162147363913209134849851236457732651376606292365421784954447716933074636157289271569250173876137992586696955424573989177562574672536393679159053844027386314452423115671347835594841134769915827211953181132989045284595100632048762948634624110104438837615902647403837254773042838833745055521094668673062721800358458761564172624987781309437432227724136878365514304177942950794162968462356683956407828175072095297556307474418479985221803547172601382140797982173418280116619257801905609735668701684599665326133424610392381073099228621323621778984148061658259749640235481153436708602523827282815416407386058913320439282626319118658308771262160493871518170009201910197937590254906206013671420950686766198917113611398053946875452674479612976247439103986683954050491886273174538153413059209176251789408693779521974523398769451627494113610049584558333935093965981197603235919771366466939434929393009467692518143074441800057608160667274885832244535076502441652457330988132173286570687088662240706133026571263006407084277509390467497284484956149717207476435556180815758022644882408398689610320844026054250159529317861180503427946237569826591572277987806074651356522678691941756089159355313353365883554963807229546825373344499142839503169794328627473677194345039811893955757306999861942642106148995972331862308947315770816583647369989297337664944532301607525166773543429513161126956586653003631256432288000278463754063265274934820795655591146642024608768459905438726910394944082000302023329185615635605846522092998040015851356500722041427873650245850538865796360700125113795645302154518933950634261972467943796152271019382529087870561345868231739510334604913934201137307097481158796322778303560945578409480816476469874144694490965706086695218692324722089368493098956537235011866078808024979784343524023520964667584018018591609617687759525622117915812716707748493115097830966764865886356553804261720297070708155088509344324376383830463379618129080580985241683897041371898610418891894167451464269793901809596935306200635248025254182751317657992062579716608100070844363720351061409432798065456066346077079795428275786110039954023177495878677229155345847747218668525560121134152299299994688226966670096211284085446000340234288754428972153584759008816977878442887287404462170941165896097545340429641723257592668388151511241909790032343208548087834098525418612598244989988541490443125141714412332198121972657697162579229431284850319962041700942110299808766863581094877414712340231121219862806747098741162526495327308472171158949524072478919422880601242621893029694041581863771531120492741577544167027689835336892393532712640640294573327485481791370814171208469292335688502113949795047985323023303514575355631953102272131355607519627294969841802781409783874800909136752654988643192797303052955375287023059404886990636982929279751988059088947515888597719790164457951955232191087144438622337741420174899040925432763928641554001236343343119923749522879388687695861890810284863872797166621942469262533191628341469379885761609951315500430579425801387539081562218838713421051787509769799083438564727600994450590501468927180146496542534285044608601663410619006246075024771514127795281587549777029902997188874881281107750448583279414906666656326852086742019331430784764304498751341033412172667054334721306601049350279191614364752279227054816812763590731615006767198722245282161224246699359599834886626141207643227877272874533999195403512359597814724087861139753383457153000499604090903696413859346354416659665341079494473684911472786160853301947900302678810062729137052591747423621720738112001681130261783762239494054607173506374954524397924493395273048583873002199637081545337688562336704723970206714839769283232741379040648022349435016615508335198989423519869291135661055136474133357430258187331984963141555674078895720741802368628708760218178580294171671947092451602352068249858728285204195635208977825621920642787904125948914371454366620425546755107165272192206226092035862373791118714153481640017716835495841291143741767751845392348386811317018102041575397772902917931891509464367179631311831354696495210359330508511270950530301201387981884336392269700095092452683387620765897725056945256264433044926410335534101909054360871099027902642724993798282888891421426799905750631983998878176273500996980025110195005972533378758826540605669255800068294943805580856202361002742286973491999808289119306932850468968494590547086922017479658664233474468652425803062487902990167587433891518166522538868423115730073576201905026439187579911614252735244114038223550096495962783762483215829642465420610014380619868648278051406440520141326836449156348713910931822570818546312984047115070784319885865092090964472610668122714472258437304427460141551671691752900089262618364094676666498972874080811606232473723715161430113590772924760372659637269069625295975724733096118892295871417690632052116041003451600790782072270008422547142775568476997623041443119667614979461197526499971741885423488455716806970824393988338562800212960310207284444715820470898549574338938672827171331764153814016379902632799579615325053326232720536703301824382438867458677982636907263622212928743004166228335521370524148026158709358379377152870576827940769183230276289182251371257144038924249514126669476352208336277580705677501568850042648517845891522187465296859288824800076202298030301621968888000306958232381017700753679189410181574785192761767817069996758303879674096541456488801725433889914863547376874021043810523242289608263954997766456695071589015783215367068520945459332744821102326953533658626738568948312646231647926635983058133031371902238039227571670612527774481662919613746206468498912471702584412860805431369790334816846430093824040436947672313305909152388580514201536721558284436242110687786865964185073348377207533317425838172705292660353309160980869414170516498144850281301468936674250695903975002270271783913428866432897074177901461369121369713625109334629970139552326115119614590216734043796420499657800981291672417645643694779508432042383188669608542153546856719527562993620954441556769932406307822527707925078030128635205101447607751267782421064755416499809211810520386517334244291825909667168153100559131973329910848860959578592707022129666671371812419406084282488592659907925821712563363787914186585655491403178196970126323757123603595182077159653904796347627321196274569582942223444285704496443517588919853134002807639117059741859208451175556009228847313557599208335782988172539463959344874699377545967884513607969529197761296098152649748889255154195082470373241350529322340625668666267266278415174793041799248591167265443109134941748365691847503677388327998951973322889446368503656772428558818701061249988878417542468078470407038050593225718343702086201103356428867930889301754385787048800915135012781440260684113073113832779497540994531816607533673599148431108719245794383276663538639501660792446337395015477520213059729646738689516556295333258366935072776544546615226074401242047609799378160240552627454021348773894330975382458240717205050249727437792307836124522654907218968801753382322673038177452902126033436924277389074924141051980661696987689859012341712502529593853351211192937146007986844180169223852714087312894393640853479972400982085336663784829399100294037424537505764884265876691270576138422963592204830089254152167530811004930430648557658155460507187011020918763337446947568927435938621431269098747522930230784288502050873931342701491199955257469647117903890680044696232079615977269500300417313650716051973462340141881677531984084054096572191641376121865550229145515839694822313757941083051935142280225748851203713646475610571251385630397566112641626662710286828176584867197597520335957088731876926968621670310711061781640521609048192542755126726400765945481617758501623649390348790152829328630380546378078965112752875196375365355370015277100432993537502289586517320876833641026080844358592160766633669631739331282802650580626272018099700811691961381622160060092458716849580463095161317606631815652759135205914689176186610742915773580685708487226247555212550262845339033587359628976023412996789476255132551636234123674954971510512379827402693394605502684005622221136373569060624339659271455534105537814539674684457627608253705840416209506515715885051536255582534106313800139753273350937721964058873480471244119855337793452003445507369946062470645748613250818225066537871809706821549487669479568282045384098095964159146184538284138795084269675146853866393748782651257921818721825365611653670981193388610812240113122292181783650386499223427790647340040177105773058935716172358076460741273125469082858481625136817539853534317224203061457523314261934004192197310859570888952372754469261513257171480415693784756421499527910548717559409933202466624128022474275699124729346867153583911482326044932665438606829123771520598670913960688484286468418210941222846078440538861742175706821453771081500512314477281312846651267540547345877856139031743570967946574804950130984693826409822639679422278688279256115795447390311907556357614764900380034394949261313368210445545074732545735131282643835702152054900507806738202378643973463884892505729561781491596949604050391802552257754960836871927620945860025354807174381499513867242326035243096596103658271587958048970374849765668129316115629852523227168650237921430473727223317119399085299444103226743030668093969452364579681605987942294754420473514621226045495449729078643655095767658567163982013287431279912115606564838911143372254455485602928329332155472560216541086072470726486080039420604732553091029157507877122621428222773745867451308548095979897000223427064350344784049361994343864533208071114188917125377774331168668246854250558516617613976909421331110614334329047259547775251965523011952188844890937017024319108167672435091116845212817838325913873469004967557710922628884346942654213036356146550637654724104006815903341020863409145310453549306098814304293874425260135300755700923626198013644401772919863358473060291580284121199377795610791342763884050789667592693391631220129752384780756999819996110395053823000490587511033314429291394236931610873913123215879989205360082434791071750919095560254261594260354030117094292976055872804123562597621769691733532425505746209717468845060366323664428567992621924183752574940286926067215666954681008292969984669730252783958437563465093038595783294779618907328263809627216775652643524924267864361465088310623586371797997132995056518009744740705221237901344562473099757132538120908635817644339164918024892599687574063531407033415327269333041329078326793250157085376645910044509984930672262116422730781860430457100744726083136626861268928976637507900551294300207617310809683546577394893526165205162977791765127600350995841549642676653437319193623273538038887424675386670376525881551631563852399373831398549130459369925520790240921272677446000538720447196731749366308025667283514649009594157211140449460570656434344478229167342905388050870194047117853933019943440212038588619816289593381586488808002875468765626968926976132437103777372291118275179249847067889551646269289161753345072179999732505766484827938968902554746874326116645411779405955692450963389981853202028392633582425032180877414991468694326360628607596851121681415671273794759736256290698804417020051707920560930207360210660166996598909881264675390416592438649983220557874432207734432617961825570404601189282817871549984944962839252563593935487563772283706085045538566397980758367257464269192113957195395743454800162630892306256843852272324204410827610935594416211557283510728252585397654663779595157406589721756471148380591556867807438844828609093903695699472852470086412819271421510496243247379952323862858825518457833066840877599776751007152201632062039513051604479224673483335945347938645025817637082105565536107677224739144091558574252795700956241547171815909523541478807763113690645086598485659566694333466046044169216398439985595510628980688142715737076014442127055425615885915002047725807627879687976701199939007491340790410991125219940090097371462535323246190168315525069852872545447412556946155464284732071789844047198610266666011543220876031155252296733738642670547400348601064815615874716018323471367967127870473464272384426013280177171844547149062063306424031862196301945750677464129771762869791416695391714275169198329187042049557815243397476722355915706534817236785896265426281388085764790444213564250889162094932967965129285904253161141760182120291052352919648436658140461275151070434196307957990848672739922867739790420008642115012121030665353286507687731118081985132369206437190034746797857722871954785166623354051696391155175954186833338676892285845267115317940405646950688596683045909397823743535687891306532450031065793831709524258696963058693370859638109129592392909488493293059992390299148927398223271628745488749182440852945889267034082065023922038534587423674034337182307424563520118944286145818480038506207652607603176339976674165105946737522879224803387026430966991244826669590267316516705975628782519057558893745365669711336081689796317384487702593207222398960717801692588654030384997655172364837496618429945402878627962086858282362316330597611488257359330065749111258493169647675012236864221595348100815448924763409319467711113097894291536624960155451499531493993889341660587722587989183136321424597726549082524600980203118213775262320702888254894789980418703980668771561850988132579420359963752602683794063168203948859593815446589111328981602658503419458328078738588880402515413289100636250159271145366766186770163137462172466627334894654964365656539213136735070123957177392171823238731311421145987166780777282822641130371555170935150131572001573942139048620018183449355482629377511573935232210046058450946600699641787272036810598743262986806368183714639482741882686022896102826111245745083687267274185170886671744265037961203572369017170385948145261437004786052648558599484354689417180412054413896619668232535190203789029657423770205276942145106895904569917443074962235533564018664045678232434556258801950638954476228370702132053593907393937520675548747535048851335323151747238451630519487475450275814716812276907844536981775085711522121117965876210299777045776623640971327327940124895356534870395613777588578628951568066118534117949577125656155211555166685504045282923862325205023977510335660919476988686269232124661802888386800417735863139982237844293900007261697538205093469057384256478264368886698202533000434648889028623984996539978495776436929036945278475944337414353064495953091522259906174192664662242767577317374927038274465062017532125841885010573077589456001349030728961714272352111933565344737053404517863730113190388879003504790646743120388695477335456539151068061885247234502355793473209997733064710612170004990184625329662303644703692025792519462554706402279379836838766239038633826101895161018206208563954004042948762701994892394758030854241188999571721950616383810804597814610264188882420745989310781498964953137668094704037869262990315838770912673633281801808906153697714387357835889775266708794030909030226440693739015193901806760581297285498832409467803816907386865093341787895106248665518650450726082376975425744793578467578156838317469262377747235338019024714827973199112267354579231847234600229077431013744014813629813218361239905607654967997532521305558892128220331530451837288671659487816659096711163715750321574248870259801795030482216576163018943992666129123270054796280677842095349183198641722621363533662663199215312290123645219072864156721490474256440672210459063561959265314014203339367869182111423271021457229592919550967805410616838498801538160950974683791241356740659710442577432943187304167560197062399074042146678834355234363322994444286308376186812595604289852442958575101748683782675283605189704654033352035723212123866256452548046614655210832755281281249834747830113447198773826075696820929041859836659676901925129233700043145838119947195633120952380323451149129824988914601959051775389326501926910709625537626869067835561204960753689117099928274749562604582540508400057382385361478040213061093151954643280098980668645714712038319773318827594001419157768687756312634467783117320174941175654287520134062685208996382796585934498875911433980976653360189850456816467876169492218878984924504936607066983197118215402503339113006270178734053696913705169485237945628301683668342705734689224796654933327999691792497822671179937901415498058845958073237947595700609519236224066324493751199586945701830748399541664703495177350659064268513920463099986767365005988637454509033653905516403984142260057524488490138155005407225080701994076186639722860792017895127820049254785836830972838814784165617930946992836626398052981269331074911101546749261275993719255763749524277514686820767087750538805315710182948546323704262077880431085203344093485868272984549896585044508060517556024113622851351713455809167995454763907827107547880760527670115217144847128485475695072339897539737421229278134549787717094871419571139168729947452717158841895422286712538011910756426795914712468756058658426204190752044808164039533554920752079331083744845987076710352380619075349387782908354970977588731621395052129615333718623662180641260851366578540140125205654047288114759361309565469277328201252159557539855274984136573361426224215311826734169141885594413237701715271805079125041832596513981091627695710800035958057718769862545073323478287455611955271096507344397730205365315729315663389913080943822654369941361370473710979632596656907943128702197923786061057828500286721666694997402960032738065646259642208503963971165981165647567055352572947371182013640985259452423950388873366481331280128226521760189968146021393256000208574389205233015492090604878593626497452507940093657529447685131563895379255279786123083611261696383744296748769750582809218010652967785504054283833970759966219066863946186916046275442941623508758843995584735571795896974677265509998416180014663902029982614516776149790160659183279249454058846105127517608540477045959747116800099002303337990515243312759484976083330999059672733935636328715889163526449066453067044518885638393516886232548365543779943935339093837306796921618751143983797624051995250336733154482107840301593988418252005518118372818033995017442205351696866698875001464892544250393475059186616152267436294873285427866377372253834786021483861151230235593307063272004949288542549021195701373043763634001962541466301702250721402749380108058455739714108103079883052707953100284906352596319993231328638507524148617123844520029166634039565947374645306595565166696985393858527177732728750824970475460395099382572918248375327106836601442316054461498319881148450432717972261595575761799594752577567894104394343881346603368469431566508345440319529557020154469561648747275615019904184802929014287474727526133532824241120002799167120564238931632473852081917806295685855541196223609000425137252689662311049661901057574278299124312622358361183653436193167460296815788472983051434073459985927573442776113831084541438123199140499576438337785858116753836776664426664855328435005861179032696191209352355013154134525650087328446024460360746982128198436261141946596572703334648930108037997509279439275317128903686972693753993621385120870832381616386603853809016124315945856428721597626650080299522698800107752904219022092899209924647740789148344584322171783496352882371253441495748562296390512734203321051159463025338818482428514120431996129203890038329017387998528787346687258082024022316568021992176946360653912575116458416261710735436847221558109973480373268033401099423903123079139341112472532099464670929998960068973470969591903349183585164839415226193571777273309111073427728629924498001248087547525952445184710961083916230160593404473469594445463736533133872563568390427054631219133556087938586160993486512467817107047745909311188453901726601242009310692273353682180923465998582259443579175151099183011446990445836425485414374383921293715386973028602291660676113830660407397872252096831416372683308497579087726425726673202132405790866004640286238412326376473201492846474611660350584385909017199335107741412234347867453175403173980548174517266728900610959818923013407140120253360299189588888009793920124331114273224406562692814053319728907005351409114390627435691080342416508158478568553369015820398567406361405882218692200473644325372178818409575723301260133520302135214101546197190564043063414555575799909426993132296883109558680211232716668900543998827653813727425365628751451799873755974122207088533392500958239423723852416311520100688933752792076903595423154585023601408106795991581364666565772017646262188915365220791669052754361263906166498909991410582652921644215256048810765895536128195846612600614572935882141330091443063772967238599892685712013441589351826833605403267828882009834938351025083967787273179223954152658354974255159613393730227760767295442731897470966339417095673688901041684883390599230009715336818102839180241718687342113217365828468621092231864409871990968754208125660768091304949051626099011509627455327807568069965104472647247885196729318388280472247470053307510383328807491366375944500259188611005204318157058293191799363196663136783935602693973448886282934258007458586693350086475800790378384321439377202120626332574674229457412272110360805530703409714095748826425362274201176807451629167880110125954230059878089634514599672416680001002193913263760164594555833284057610351324481153940263084640667341316270100696205559510790885878223333958623884674945662072739628951678448754892071604936979688328770264620221214195804188150253640837398073886471912397439924846096746460206936127013186135119845546700510583947191109396552034051244977038379358066559912877648904362856217284897068011583908564054557042370211131915508047826696409558171771151862288970875305681263815706804529356621785955053005224205110859130390861081935998577224506541381923095844603233020022718987730338199690771505524204220991165981677087176806607823014409461258710682765689393344547257558263864549189543647898530850303580382838675213944326397207842849913953001044832293414747037090080887964693678960563546604700013956243028576169450843309804571653040440628681744716869098599924253876044279839212062612056208504219768462144822374907650930135287877595050720965721189819109604501731303867849920697964723466980907166272373122188328018586289819103060900398678070177790643089236657823919410228331902192646265373300621141169189140532355588510637646410624804283136379354866912734655278343538505992988239829456921050095590844395571613341979214130179662866800401732998135767859712360622485119087707181741095322065711613289241944361982389795070728565779497995124996984485299747614161038328660252795659477048080925385228937952262626737704906233320270380519895703787667688620312221610908346244157521782762742819191187445752938753425224234894029806603184345218388698371604308439839533031780012796682986483077029413153220128269383322296602836448566818256341513344024645891350691581172981649363062993792952742553521975867830353868396209849464609048382560679442143548686237568149224920200591694571629254440901714772185372601684132347974826218383409384172649769953890944069755162535974818669163830158441856454439718450773523110678583617693781861460560692168744161721056341205591309565200680571201868977201429873863526998888239539787177052313533395844998715965950545386563093312628317660193466673290947984464456928939911863254320762115706116003078684332503846041401221761168991922351217571989604189251314646056748377114216423042182318399462221398755705583411797839528697917820887289671623680149617096732105334850355695244091708334607733744869486162974766375242243630217654660578070356884854988212970007531038131093817512016471829362366641390899430211524479940230142162074357556062119489553414347297201619231503748118242629413590052507028645973085114697875671886410750893755731516130454564075939455733650480036912114731098428988243525262492867243786765364043941984510759186477468437903424784289865525992733017115507690208742769234595257328962224977320641194597104133766845374766006805627847402536416802464561645634459541867455603265052549655161402566708752851038034260477009942615123334640778504928730483558404446281456718694655026982567572291228442386383081676947407888972247473707620324491001986308488130545449328534509364722699884744625259416152767559656413436030279762718877196247601019465650243484429182910718227011415957423365534066807371301412527952279163538177048493251084361358582086503792866471825266108501174643582406805273557612482324609189428709574033920956274403162479330588222053295679246711718897955268401006596787828184576866487690621032519930751137844122586190062431706809185525791662721830881813166881309602333315173730101844034166896696680588148071577643548276979064335824625731727314697019648272451885960579470456166231494004964624696534597085807387055321979431801342280088399672084461857109500789229005293907257325657967397763891981703262050577719727998688057440689212116691771196902985309950343287656172747237213120108199344054451705545845501913419907939786021929609585318664425110463345760012543857301102205312599256160348318468072840261605977094795320693512605592373901231493137896453743470997212781642938445743679817665044133340940410127142947869780253596510499966933525602311083716371252712348076840523313555162106285465369812204481415009555133982593984755781917739161426824245352857638959736883502073499503796100816303172598611995949077004356780867909624404109591919977281518388301981507954073357382202134900477462194201195736671659359736161950247042535754085424305060823077551580371446125162482491258517487400892528509906238814645223321216605679342972821679917031244865302627685774858603371160491888017915159915094531394126037126622652391430547212901493235979044651600281021567500016453950741824449845916611440722272134501680931729807561771892937588646775713922076586285907197317331712768711528952185733333743994470499228701856929145546025523531116446291193175448041895582956768350093916291498879331368229119844562900347918552106549357345926265662611105600600371184248282609857459005906128659827096076988968311132014231032838725459514270295332054007388162440828381302218623814174995726273459538675645320980076529275917577475187939130708135257641173102882482406177614506812947452760438536850866457929047292115463991060162186678755727725746370719729242857020953327602292719535149815714821690453398987935617217975188185878826238807301958181996215936647018066370713450251325402013204137953337739735943992861895545358385530509599760654255993357468231064338854863248620779874396031733284455454671974947266908508659736578135202891042793650652619974082046999793109741918707300725152607137526829371707954603297578714575101637686401904528219029183696738134533584992224159647470346061812619348424413496267757675680202184752995185686041441675305795620854897170126463948465280158345105049721262300812789500885404716678044437196367489676374771068888973956901739794192882493926005398004480223554087839227269244180532700323219311503517033759537251659787913488811333475984193357615952959265218743103220705007167431408784273105373616475778199439511820488347680840818901933865046257446291775477865545833756398374719092599227335535477256903186330552110821721503177114604325915729688418612930237693306521680466932046125711562339340481462168999863116185811629914152175296332890615003670849468595091183513710575237994413485146099174336151174580407381461999612955516661378205975262799508335192399347546708969798306175076470723647071415828091367350305757737478188614927599574130923927115031787791374215657659926452519628195464478825560445899571943333374090829889078466868529829437041284330396700130599778720882959573183183244888941764703320191980680648254400353216163187029039409082288020154244519774552486568605690860631605945660985598605366053853637521999499172259255277496107727497583460568294635212751673720287357767231637585701452117792074983863006272457678574801836309149549093004602943185526837981564635562214504391895534087443859530283571041691129432084896805480078777952450570465756064499535513160448533649497852442121545204523886521618807500934683939914984820100407483480028323079371177732786619843865216454546430199887976972408762070629062581363993659577320247938508931340784208823402396377176862355255853893672544734941394601238608308209236396742062965280577366182642388945255837496691332297366941738829906991461341457575391449757268414459365485779673884097780849234610939390792118820823609627229067629036379005764727436010474644975959614337759661913943850856224881555113367735233794958247847990975849629650106189644618353899363302670238686460747475487618140428166206548074854639700843857217838446511791093603902038559663256233460144335758918988170173731734943777830181748294931221929033198638716239519375781803633654566373233677699970908995731232712968833792108726636597638281189842856032563043334768345619854389603650114366275807008755491884482815551883997700836687197697973702863641155179082370027630490448930979614325266088718730082355945519729673056160887050938660288781295478792339288487593643103711508626616667287935608688636892718784072738465341811892074806559853060391837474837682667830427121228055248526278783316960184563494388469502620728371285325757826366909830936079478566876730713873477656829571123733814243749034142068403652660994206639305274332367894819157045821203765183648402159809657077394096304013752503403851922334224941532541734047777667066958552586420789013552483756339913310464466465474515174580363533188126055722120676883042645319029203884049911917513265924028443448830202664610884955815018034262014373317695771980425999011571090354651853887105323131014559945156907107831887797380840051487826763581926475427240133757612889121959531788466429496360895091970262855258147940534856859047715562403523599255582162049512102051864434257178647423139632839565173249839075104948449221462847216037364749315569585251106900461576214544700790657944767602377856777233064665820536286285467195417968763970594121003130294732583310508064783776868240072279516766188878785824366367151813755188757502707034919968920569379868034422221773284390546520249510793546969206673641280470264635012493478353251962308757982467005762834773329604218555971404896406541877349462844051827686979159582087738252497890075595473810947845051190245164877990403036398797535624436929206481796156696387438166823623041700726150325295674660128941182827358568581724740703234390171993205664346802573090542918314997197357335656089067943078498152264829685417163660130200736741476044151648448345951292845017578728666875457666094806835577016396994222607236670305023811655896426458594150698994093242338149091832818102020835191278018289961369317699716732269595080321380529305572023445289091884295651995231564135877480255128306244789339867729444724496579902795771065636485672565021953748360951591532526924325105568258902905600972762176322556755315751280719125048609665010681145141514586321022938090559290607846809156174960862900741807781491870891884187091734638116798193450668612326428455734882480474360437694835578025939673262089844160154518666957571768535704618601539392682835621625828472256395262079099086360860687577837080298699492035079857099464380258967939569485703328937384860588988199206551768662899307360462679824899444054992819346641942926562197249771255529032232183421298735934117626445767252105702988700928586666580682458747535463792848340403261211206500674289021336345865162046716791118659860806119332970424348784397948303951966702570718047987085490810353846389586764447312397116611895897957657707570608804010727492114912247639219648704850083852465565246475481410821222356195841329951322138002234922276483961270130855710345876915618248725112542339265415783977436781165722621798421134311575267180522711427102587027528738359044587453652440453639097492573321366692437327965300845735225371295256769338575428819166968846046832627097411062089671707291467230841754729172246455354805285310660275962112159590930938927463380664838829797827715951531085245853761973106914405709909512900991668126558392235442180207846784332009330394085348408560251156766355650963836243207721493866902407632977728032638995319169106293203858026246250337511180707364577254125078771585257314983079173020122444581798660263725036525345444882864531767683309743035094917157557466312204264029972720478283459175112596541884864617626770937447843999653336627635004842229118315294823347373143109721744463472051151611814614646725122434158926320140819771620055594902492837128710067615217368627936598767260337160029292891260823490518300453660524429563363087435513315465950509692564697735359122190809506192871223221051263238469410772742941772392040983847390144325202377687778143083826273422287489821044112141597717755407155316454076125024080466348932056460649090977969135942163516818566109415146886940224340560576660042030082447244366644685162178990878039837600445025277378276967250753973966864464129045843222807151379690065301229714439526969119971015072127074364599703188475246176310567443247305977262865429371343123964018487150931743031035181082349092069531361998631900019863340805722094981413893910401685422479162151927282805628199163259520320097962913977643435281760810141481367165657758275802898438119142096490016484465972341353745176219233086532455878006115640955271611446497530146551420005852432190375020285998060946252268518711456204111597244163042457646854095582138497709851473340904391276318833470428181090374056873819046661544929480723704521307663529559817831155228187104891840550977054900200777574031696556912605688108425674218351121994090119362869649862790806228902810158129292398236016015203276755013831809100740259782500442242981015695249838827597461435992024960292244743736632975433387561077916451476687366438047883941204912158875018169520869390791840483172375379348514083828748084026025690361989602174765058235063816593030664112385016089323153617490329067562488591520798477557840164685798850262480707712426476488106824909235869493028165981584806911462799200544972043676357856512795908519785803629083238831682756885663106621905537842651890168253920353176566262863063595572126982588891362174063246458903372843104633119852034583906218113781791926545730211037521203168122311015951346469237179939336314170843339416350496078662527534965319449714971568518343060942838884209471947479262059021488572542469277169008599653616111270923355954122653733588021422086010381889324793169245709776028296939448713913902226556252651902517485058020807246565941632519502288979869264360810685716466529577402097208617308401044889289663295365601001805910461248092212524474711336051847257925774099262665260088163840924555164444668317936036689835667318959787863693114839026564567456121102350050315664291650807556947485577029399953081641979889229954113436899493451375693056071428441359353407000319222018326818673824781109271783595775495120076163320402781393681960296915492056060334669885200302732875616504360158292435615291514476927661350788360664753179850709052299801209495357791401234335554273647137828198166818556457951136968491198222820964776473194625827865737966845443107988475876220861437319419776093095956705602809950687827980475243714589500296235333128836731818048196678118962382893874353546223460326295799509055823316606705899875556964579910834244695835693109959605451005388425142796552384118942777042121618491936329550048443983394721267869793410243510177967804479950439275972860808494856205423211042544636199131992021608901022333418909821239181794309946690912645042292381075468305085258546081712910741961528211680845062446046734195986747314169496258463656226273329574148613931014178142589987289629870428225949433609870579069408539975941755939146641387898139251657385889830126392487206026777600002406290748720256031875030925527176185890221490525765377439822289833547032336527398960240275677625840384784629588108587390053748122275901459991065369450860691813820195832255623180709565001930376099416871803996224765458387215098023459446663524265011380762700787716720936628386441039745227165743654989991939414307267023241068927534982983421580963358907562856593153180319752273899873744293579379250186884598633387973775498974248354552001099232360215608166328206671125878825888833257404063473742390225743042656041295045962402975158814713171212679599444057212718895163784200096950334260467815096281994621920742107806071020064707919124932660863426993475787964832096243400471252818185803662449071688619102998630578165913213550571559012110038434894791252266251559695163803364229119670730206464176701252963599075619090263724872587693700741756376696620904322193971572674944230701967487439489175954725406639980661366592414091386294933931357294853893112743963558528674314917472101232860281212353589386974146646986442337424471327029329806220141511830135595368564127350148878016257315091400633133531177704139240872398833280991312477098749844992823517926210346370645085436651483773423463923119898911578609174104740515469308655669575849541678727073330914788955716186508700616967469889891329662302112829072654628008188825833347717935479528363889584421066828449950933982054371365530016550376791055802569349904741028348525635386579668593264716449511281117187509543736197331361877946889906516915736120722116639965846626497694813936613689940271096597187228522866063531317486097137712278719439689388018044363081517763779234369265993990503957817183210781551703242907922103084404656585988536832223107501018025888691356651403598318608614599756047882376112969590135517490955856643862483915591434913890840696725185044341571249107229401981600502204495694322263364619513672773594742141599649074940770095608022877741378282888958736450577023003525746266207291905719600247456411561460964291588167541576863063810441618843431240477249055204627484485102496501189640536542920988229039632988350054476275625441120593248262185941854395429184622713779850876976217735860119297313127719310210245277252824661876366141297829873987664781030457371601406021859845829728695553012819829619137625465968757985806431987260955061381903629602534634499902999169865118620331225991133860458577977443394944608560998072049996348834212045374139576645323656525522710154981947615498819971184347561028323316319066926918865109216072801454249094811545522354843808043325987843028069466410917394265887291244488343636243363040238215999871915297117618625520525672526310788469457310165022421717812607248419757659071160573918452762525532634774931332394192535033671384454711104433829297528259308630447516571743935572933085680165026741061992208881155323362470237490447461624862950899800375243967476609252648771081273723743330220204542895156680864381009029191991769325372902351008328142664070851174999091025712348037529347632371810440554312647708928980124878830646121165617420056145649011145934925518428936482001276191546024983138392548153822009152267588993361951825728776778521019860940689124227157744885953684522345792270007151283493988933309683413576858444508373992045702371450763070601572151837047807407609840132466489798498345894356307845159750982482771051941948201347466544774152160740054552372116389249954408405526751382550754113778963577316268126850398338189918022488771885807062085748489438511359404029470464624895514428450505589132834320091639662443330958481999573342753111496621912531701692971672562861241800976219836849367251998884668261304013478506223266997350307088912897637356628714504418946637862401871546660467110986038096429364080123624381527956075891572177973013881381592491957038513354328024788875811721943342501057838674407740125274843737975188281651656747907838846582468039319075429815381759352362182891605992544172110034724620249321132925072932188567007068470435013855601350569145549720929353361265765458104497384814986577824538794131227606023606341483284305567788501968945781906634845866823736152795903760319546842976612055553915906561627560759071316302409297100253184914575751201207574221963230454291277273763408850331952167592364606801599375061937839704076370379456512223895619268948302397889675817133664369742745936048989969909358097497600518897874005413353256749878543338332317909595125170332760449402647261370762326027700892874609985451882628660193050278767504146797229531937308092795006872430717339728071371297889695264907541324292734590387800971804172567467171237458203805407093202339517230096395927216732648214796739490552345866057986875870162573856364393740199998857739036272798770589111398102775378845144496491447702145002587951952951033707181595576015024657002174864809894579215836504172423821595229134894509458623071538523894734858010306122938943008878456262478816501204801183209443255517661593361684262400444499654836063755555825742668791692273002209350619823373227845330592992988359164013624393483098504941283051549448878142762968462314189548524318480815908581425226084596425138868229448500169339915743176494519875843247874710031896313073945934212184827818163544203859302148217707987224988043298976881805415386969300872875346479213888016683369225866119093268069601084640385584718224957679970356530475402636576076948641147477212174807577278392765488518402981162323723142379178906431800845778562591631433279435195349075294004573362115101641283057697047568830042029657714930825384301743451874164602748529702360277972902327547996091052751638090887720238674906493820949332575337383265179008412919023393827892568936852655072717864013424881416833826055191281929638010493312858465952820345238968763551718458122291741804497170157636961808401947292579281519488473903131895030361937146979276450298385404184320588517868605923786548217188457113752840881812030668533755205150580894333386459609238029230618026424250816310698879747003112987729027199351536282030652969361197388970808944475998607459886692256242450569803910784443225066810593941448978204552385735265319088787423807218926078514547245172218335220414076102792915410767058679226783027621347008871693817459738263497960817939665121328691180047193789358354843697808760964829792947674277899418273618860297470529418240400426171416895998041390187490768648313059106796956421670377702304826188270142934522057258150206826816493148688059562170104300787227275622405640389781736393689864431074877186300326405165731512511481119451880908339232264442135456554970541987824130218900035271568910588610541270584695392850628967389172445966479486265708670899984668952493022253120812888538973589374786693970156300370603908889576833038271803905973001264552026902805202304053805162780910449731699370227078497546049297345933549688719762215158982105109023022153791471956926049714940083734495477022991056690778535117220230042685785314265212075067174335628575561145954020996976347358954938766285741273089275796407916687394983879741335201183028990486043753283770849205441664818409191967651336183371738014530010315173811344497826967741787282152546822173802978690724944325604340225972033988685067782147720008148000380337983035849262576602166843737081092512225406861530725710648895470264578461978778384378790079596023559654468077173147149134859067648459794688864355543802001508209314716386835955503715889432148085626157204594795665321896884983494687502271387441880579494765819476679549487606990269996466412406773270532972074054212646166293724085875663120588940617639097218093269439445280188889183490295617368914324835469683425768948840222577375252318224681166788714531285128768141633184917247849134913682648311556846339348445128409148965675579674570029130225838188102877917839329195734194300123230655964401982963156113150500423894253761926750899190877166533722369874059399681208901505798234622217553719142817489346877036105744556183026217465906609083332686785711652038694074218862109327104132447477599838730215357884982669709019773461953471611319660713232790988946715122264400352944381630114476682701646285128984230301464610450990405521570850713922828750075915226763831709762493832265214380667886927210059126486985690308733367703302636241879855485357891073250927810592724842390050810580591324992580880344609417684637398427050935741580887255197500285600351325088137733903675706011992884206080325273420019783500502555780418028615829528884429596209379376975088272355128347078714911766485324735286232827863004294070866710515621227965484267252052799362742841155673167700032749855274254956643663476815089701002992776012676529339147845874936102678042665380843474559145057260637840772614172882708884592922337435482219945190542373513500037252769437000298549952758169179582799614716719361159151350214020798173424769525098409137792348668268691285713426155667306488961611480398040793137112310539664478381940385263911732151567639115576177006895887793194430463426874246315768708590179640281524694721407784950834337935451576179236995765820077456483750124541048062518588592103509011818364554266039524996978208793021081002117385212678629456884432959789147770678008594295653468497644479439676771824868948398233797502277052373623956345512467626743722480656532469069731213084112986321748507022609900056843964009398035601438572633398423475559113302077058120832848276568364021757569857897412827267080526114146451418256520602826314545224277848485403049412491643887728393294983923885034042247884938873972733951614704035906602336966039666893540563266634111127588115178443960450780779617778734704498737598994547014995636569434317639885909244146359964166438175530936750169552042762430989072988524560788983629013164317258676451324104496613201646577710189395864261267275110249777781933751531387947586318962690508802633312802785467176035623672700450061812311660317186616224119045472282331966301882199443340062403503635901555741602619807619294116914765010750483511866409352292378578064022775020649028025451257418965274113397288898204177168063656875214245254786357284090106793390509994439836332134141485853233404667163529403177747454510799183658631081213208744113593743822591474150821684842899246590944473358212433509244967214058729971264070568658680671005109022921593215856607765267032126504975564756175764711734741188504469778814444542657874270423848012325235517738499259878440895883686540406966031018857382607087974866464098405525243979438138695415166419640833983003002376978578025837007929341190439220881286168230454456802197812666274795831100874195376513650030820391635830993903935139935939179408896139498350722593635999565939515261404226605970760481066070615681086632555913812187789209746097088046626000330571183513733339450195585728235834191530889117835312152480009167667891083088275577224232750955647247888309850547564796571156903343050574048334583326913966320082234000002498909504193487898382753796858983856630111648332036058516071298778622418400781616899312837928555555854135362662178700762573824803090038977605178511158775695682627372737465317204952127610412310004936564817477559774020320357917792402077836685716548187516931012861656596207516222847361870216117312426597891143766153156284775930812749326775578510398531909171839293018302923805999949655348271833849233272169522353623924659402978342634801168610855099934508583342656449404621792840968446410893408163075826631605735988845505019868036278471460419682920552603864985532502860016178442561762796506414679092778213674720151382119024911240038202829994200462049856015798499122748247687976868953722641522017816403398322706276398063627873292696560198137317471202073189342223844856039658696549091365577279196130091304477420083619004000390606140083857315607825162284142968013925395250477364449318281062149546514797647680635342304041561953460808852424727814638204401526023302003596927505137067276715983309084343201661099135999020893333030416670658670768154218922426007268114300401995721442735307798597260826395833513303458012611959871940042642133391653837961497511334337739455902985789187621957212424403693704884119665091364231712117650104369065860944175449541956640324555056195348610280983089148466921848392899917285509659206095404458189441394848970948004041175155771307059610566403802357210317181211506003931390657951064070963748519894886653197869887981134317711837728644152416476294225214891523296735748730529996842728495598038543309604225659716271223015851473248593060537847203387854524293059132811528299117106153209625769648046445022481179265703098724985380017879186464177881518457385875769658967320790473179778401293394345409901395152177750817865056349067186130316248835329522298878787578005881686602522176901828573305277687754299287806501298173123253688051138962741708646712418768821583015217245526652245984672807529382267967816535793541621483423548971029882327396793773438847014840162131452946355087425672620397069781316398221510458265220467952431066491802938323321697104923742758253272576648780463732485968436805332732513717841843917618123607170572680594606352392804829955477306256182088623763751054962828775490943165903177801691019611825669841828067773026971997825447469719590586867014378888397857444749281515481602756065258407685966316845014918007569366946900808288624397333349675102143398899034686925228581286417067522752138696941972746091223311340257514272942473927375840102116916112328606444800942375412020078480200149167465212596312322471689672560457245858128188656625380965975752946492220678542929295455635102126864033900601381396580103362047785509854181227208360280955093312264196662929904307821933588595661048659493213526880327733430513213022519182163683669459935437316457880727064653522605915159920093463458828301803024287932730659418453538430046096711815293833999913847492526453656066534190595611597256621819063305984426124970515134166159753527892848015032453044131401076316749986001564662531228781376937801601674733493738673149965378544351314435281401025904441901418842506176446636608280109521827165683879386755240126821194709794760276221434674187844117217417712351019586592031204715745716373388839717066405948374133427158354004434753717182609511264437165854763445086493367633213770334441726714152042755499374609832454456176124486716645572661329005784888944567926577956850594648435666773584891436464751224787229321945034752868979712291426933211854599759510900930059240394245666093037973112197118442034642486792275186274125054211244154348575018237516472621880609695257956058294552667109131404235156029599823261144097135460527083806078007897240392065234594285580607466894458105959806283166059756339100086572298868926125431508996052181210612519490118194213406846817111074411112767420458116551242766414868151954866996233514086142191400228224800047154247106011032140320094685482995887836153722747924496534115646179779449366654442806966278989041940628982706843423067531676689998311196397747545336585095343608352324520123242284917528228504489554083596217710103219253270182302299641650335311096428197464431334505777086726998958219872316929520743846683429714581539412963138833701458033917610246239879379168743319465808569779608507805267641666225164102527667980610646206003985969863921737492939983949723416003234964690564689913976951151928883206369728881715231722624376535121988351576870493972655566965430916359210392281868169296983011867196805282552554774532165641936058265352390235459959289054383278793987222233003526233299028246075791502183896258971305207075090041955134085895060169909598367394093732584814963720139114507911917475864247317829580982549208681616636337545850168538062958269305964807544894630762348937156138428634048929319124701909922008126203600504428805384206157953739400623167657709303305655111917094250587487524167514246341699547464387641740502585916113492669355042761640243272153773302791711091758608602589881551798456918647201343141356292311572578163159350402331803911343641407292543690212057152134963660799869237676013323693206402445407706205014627713990897730316984176013704649319582240495790529251997925532907422554208030676626996516085901440748548353877626168364918036804143528636109191934546376477294755751767480110087232531279603296176641255647872043927293017974930294244843544512888321899712091578901232410447142733921162612705890989035554586907407821498603894532646431749501157509161984644148786252054287580264550103886454695021955500750642220999292822768619481823056958924719689262325427791097227420201897699103218654316899374560594058142769052262368274532996667780110481986411055975776214621635455511027607604003500976126340641833422943765311854384933963957909779227614613893189729871753308553077517860459238091696435834438547189406156640611030950809148189199135048215795868223996984895629957458672729857214019011921616529555827609279064889905126596122136022413403656122481386086748346974534376614669320075832733694766581265140085188039209705056676398039139618055232440200911015261169216444466648272024255021241444600135213898165040300195971630372481241370036261771082865918008632485805065085634452544821731156586838404258980408942101143528474467551565799690812245346955583455296166428649806510100840264528568242647986451697770524040740946352431012161486956722274173252454329725526097643017648749721941281633652759187114974813167637557772162329376940219606933390462317005765736283672029908254146476316523324245160045215143204147061388958166223057002423549562194814279312170010475380508889985690536350008971053271463710313321254139048393107859393151400441064673745587948137797514656823521278611859276561192896338674352154953173445087899524528983372109326877202981411507271539180843454546807999624321857858525028949307636955673956473308193155792004790781627395100841480887215889860568004501424013632197530537146732954803321005981172704956792512440318874590979369967724941020522159593192527409088170974654307172344827154997044201019405909938914791808582764706674489542037316954877605763498821767033111432832243544105075380868555378760380626764844163970115866716389393645253699342588204282659963848594223412388707352919971927404913359195924646561508606404698747401995554263533198180460144792985718036573164255831626513177149719333020342605245942762986557721865896655772994319010910475533483848740931341687136827730287550469395553863448752096984434549284635816259238225234389550297934030520089916567129271378674908266149235103935695574650003655270084040868540074049686186861043315827715493802042486149932739191929895534292097440828814707746533632712829532449832600000741709712236348815303018816764469968287315674440981394723454342950325712765074594198316764733228177879065928211525805579166622600584299299698480863920449856237914760292118533659085341351774175978538376066842074642035908019524037447178954401388656931385601777142465438520457464925322337189646862837613459206366192581881010996397062938856571916664427972358054158328583028867008661638222645023431186682075087563473257043132109618995679046486912026936241655334384291357961630640737600982846463789282537586808602494814533998331845033401661393628541111172744264725729540815784421462158794953710056437858942181501863485741529030273143456894632536780061058211561423708986066822755834249690850004610294434592221525868718716711334152030509946541854087063492598153562979513262836462675211365770432022805736592637977345224614992994675188785485081227211541349555221306686314193351537728122115119258910430848311110698975741022880309017149428455581338817182095958872954625035297747417098642755186928165920555080686003245640434078734468692640862604019857485778287173352310787281788846324748028035550797212590980331161104989060465620872177919239353669368394385873230094509113515306726243059294284783619685150770575020427142958256568071264410487908647600998949220696436023389712593981879509165736796568454604762093275347369519723979820055466441780824501615655153287433571699219715615884102536641720822796852238017813323328889375565949723560498385877790123913194386891596317392767498624244326594670413659057569691763814138037003362961024410664719487038197212797052221214799608015410023280951394170299351149525081240180907316968498448218306383296994340319084322838910300600962308446308486715118217433233808425326088751447801694513351444186677677232757846051060734408966251158734234701383494742944686884696043114639818007730828776984882188043722713684236371287587938951098988947074697809541447005749166607744513923563609817283192167069818633370570611034143855731815050349522329698466970738467040880699732693375618621186319068613797750105652586532235869232847222327991580861062774532441985610803343501386500051595857734405022374203042902082878757092657669415277443666208479421244145445721325559042546018488383434058792803598998603914421629448321202816142914895128185418313177352098815058898542571753550082808275963198125851645463983320281448195132885217094753228908164047326840591119840013541990339513729583524056330452387778099347330989464001482433972051956376297729666206080188864746486606822005239926110204124674544881633756864431281318397988852887894066958934783882535193388507162061526940979255746591701523674064321123178864303899197917417282290176897597630392730862492958298234584158926354957934204685140413129790281699088061763584178140450582267265564714157865383911256819960716284245257117652232744622374370250011412053516401598592877685614855957693391505020688600405133518336283963033188918072961692708297640869905062115503633070844016358749146903784051117109796799424366761424335480886094084037958082333055172023755804370210015211393043241919943971800009801824721988202439831873082187638456345632001856209713111724495009991988881780382454211389494414399925709716861639477670651244776396232235150753992135958209440871682175926451321260675136275038764084030740325824031280563838767895914488145167327806475736082379086246396255854204048349338357540771274987389080368123154679510567660240010619629273662174097807288182222594816111945097044597879563644735726307514113053655411531670430315483074494144783108821112004196674631997273141839785935765674952450224804024221411772323334718839175136041192724333513526723916694383457444562069735566909396532043676470530276953258027691306098752231580492781047462681331797035883535232491408531047987178864221542341366021713612153574989128943920403428587119412045413685290236373836245111335370223084343164623428685323986843176721849643896327850733948197149659691971709917343514436104173222024382043558238145238388082762437954330672879657409024643286359984781200209327973007331366653262706052770016092719781981053624255971820626593713192644371555973241244668810225540826228033441784081092324761461972407698842540053484903708215958383861371053661486330593408148778691890309693642754676055514370951194076175909967291251228343361687588232009857674639909893614705153786606481833453805802694060205096522068107234311098646891946405768574235379529653284155650906495459661171337783770850801647179937514418673656011029763999438930128435846870182922753285912116536751257736308535935057519193445416983280250915119263009909489439001769580439928800400256349233372216629937963794750326328916844930278925404582994800645839441491234004677414138391784392910136964031719775793182452486278728762678868911551345941672786249981107905743569280005438410443289806678725550117692452299295453615129120590286101141017028904027264907335385787190309317868120008132491519894911285682405036325877678162112815673466869955936005493037735713677078115973159426811705178205429077478427670991592943972895895716028434310437791573429478093754974312599289373072292836853824150486396836394423093631067936413445140492494075961938361287951758000796098339251412481809949056674486567789033927474438376252992235018076316365204102335140058728017194927727679694629248294693538007536609744872431057147840829806645399153337646626567505687416457877529592500584263721275482859856314973917078962395732816692591435542948240283639722393181120429478330640556677066394454757770219531521229159965202178057690864452976112109176809254606607861594923789807500864067333117647441819847336328722187704992051256945232559296387257726272039624767738697607955140569521984604935282937258118036115547994506295523021876577342853250508067669233216106543976573049626040522238163330790759984762586187937896458108769785322603900097365885947017332067811184019849045502182780739648884119271427201712831129575375449315753298320247899142814037471454427714570321871253464891253337590774210778884348577630136220884106080831865598995175182023917712333682746784248142932549147345491499810569411091496952504124403443017401484821833535264593210505542554085703881804533252041405592285313177108770009333175414932357739054794547743117222403866423599343112031532486626752158778250767881445169285214837699962813204774156173684400672348163495063927573061742837075043289605921130560293586069387967811260660554660158458256360310437825728351921152305437203708507065973791148298599281055952035348232247894436329218188544339357709142419348197702829463088025628742320023431484213845941122216391551812241287388832621046024983327155980507729827726914238293075533006016978372549190544767638310559402622182753162730348739065928307849481755714301120315765284662128389586480919971516107328743226295325650292750601626980724543045957229960455287079243290705449304094377849087904550265472555048151951613705059722937872266588277568331191200077002522422138309495975172388573498788363508079933629551920780895096194786271873044319557764442625837158439507155077062409787670814055925782234407629815117856883335329135043012329786827607579716111678336541548197278833928363285166826937647304513879075471935037034897790184841957176625778611428768902419045888005839915823023796469463712057830283441773488757019070306327906403303677592104531076509164396060126039041233721738955875017366280815977152228385708884734247392531893405734210917458490627546795030107209738087266404891147210670308396051511165212278856038143816569851130039066994715190272776568813387885063373809498943275570877906044397736380488066557968804928164086932197492554362371130068148096706306299367562095112171330851574339177401994038882395939180905571365603450269959694572067587155710017056450830600090857965731662571121613342589571365658311593128579534922263991192414891170263101475883788338423753189663937895689011446128357104036834249761732096886909417594072587461066248838202846933012384030779886613350865761636963564301551737170498436682161359734563585309348846932849732895613886144420322034186946433333224459267353834082990643096105329481326611640799813707321764614065341374369472224721168298213994002416987928092053762750363864587794160415018385954056141307607473447226326514147700110015429965263684043031252201186793374904786913126363410303948789023142367984176502278088392031146018656672000964167510886749948934751855096937439769578615941540054645557617900112520835398756026949150101916861841091595629338798277629429567112248912500995022753553107471141619978691841351745868250230299205935941507332321727622437649589757835670915066633504980978376451234102112718106851947680520026335028343984425384257884540753107658113120798271648558797607468980499353310144825997510049850699720700652578218253817326675757064468623183810441856538316476515914560227182996684740140573521666464447725915731920082530138348915654729717438760381715791403427806449334736352686573263448080860692716456458940602678459338107403892700034944302087342857830751926773567987156634120003585714239503575709901949753817187309530174744810711946211608278207993381906899579908194678286240241533754781572399097683208494948987275373638619397805270038913157386879869277921513577456781684915807566229372585083695198191681562036461029090683625468529276016036052519290286239456632508731229078227505417716850663554599496521206248167713732600580835116388419655235438720241360039958313032458197211711990976653197902448466623720610619265669870642176420863846697639554352513921798942379418378583524753466767227863258914221965438264862223014621344833733105142554463332924432186041245957305468711613973968142599189806829812501277097713915426412652175935225292532001185704986795818744035992244060210625252014613276261481295165115541750040058450885664017977784113808210391362878720864633548307216960209948791778058360991198921313496365855402778602568732985535744134767215701373800442057413809252048546183840791413283402783080990651528682008003930221750568981744108090513814181025228254865517185155282912775324928942176447541115019380935343557303299021160928230765032408853355534278510151602235859112336085196012628474821624032050213616840403545461799675579494904745191985303167169036254690743255604538478125746280781782528110668458849001196099646502564021758336299931270947215894766798626746030477343124537459667877923728375295779886783690604175974613477373160432793009615428484523249766970184781931138078956982219518360512402270668486604482450026043092114090039589334197965394319100307315617200758704366673668180940393794026849937747314943846329800272422284995938386555145036396071867217321037518097641561610707360056369590838451062912359738011392561482667435453814162980941934897435957877154459646448046168354664836244581126078609086989947098815406723966159039395424644335317021473740029758260801905020387611312092035785222944797237951518138895999862600981460347438837438812473915952521946882370189289437127383689681851389483728790709610932401798371062657129434275441186407047890470388768818212672854271315190951169249488973720847784741146933782896341609395728914235637868131480935530130154641223700844025864051175274852324497682776737286287520723598086600315084030709314829113477812730459366891267931322544058954592331965637758604203858142030069769197829339047008083083497629351993870856917713169179196013547996159034950034170434583569684629530449464575943678636214158536246127484584421143707750890005548907384851578498964414335392507336449955973512073593490362049831024125062372565301459032342806657580981042661421601726435822491426629785009183637142969704300634325866891568575932993851476118282189199208998475366810188295556114645709965882436085106636895490827737739333872620934180987594001930757277565703637103385483384303222317500243463864965958008287795185659538600529150648107687184428207506199800886443197209770802132699197535753465395098804616386289401766575761996444577073272058390534222828032548472180296229864899644062984840617197798413130643603316074492831122970873852133991649522720703426834968660306437537774397976662405782692487201007224323709329826901530410099322360148533418300683532512991346035521342846439816329295616579082759403009486562417569032761263672012157866438745703982222917355379577728274932800017804204169685193533997873476795945852053277248652450952957934171365228665798547750323899145632820242431534893046102088543602587719806063400965763162308997406347849437063777217553672526842148141528578844426274844042421535272683374324313420935499412746490321200451513453541720171776437742532695568445549526507502495044624472633445008858614678720623139290244928021413349187310442644530484219466584156918114284580770927961465228316298691661899477629004467753756590228562710511865178938735545702655672833812244551452043278982402665718299417639615436392424137380064473420193531332786171697902829667414053722343081573579216225729382238680854648467729991771211917793968671084982793242613672718779406870914310645574437491705457093205006008343952813327764597005109037578525450891104773884543562768391281139536244396577873396233831215966641199241272044858504930867656093196888017263359338248065982396035404790855272686673536862249820593465481195927988179638505332949358940518331007937749333713848447692542332885484112256070398996112089191896305234864946815436831229045660328894770262746692198029305958113430390661847409667092590141902892574019119232182860553556883242991287965737035099444646524802733210811148580117297674158269147029388997660037408535195860536454710671224042909017169340017676268914675497452743827333027887286935496115694817375650914208132849225701594586210401958796455298095459673629353722115525612069376217653613736231748238190849585920377595713963979574065752530700220108379792829469614229644003712478608752916550227344489351563203077538936466877601925776822000827446799321044852528652079635339763879458488268423643020842012923326380750374980951152666260066564070047247390759666306325679631553376147069020916034703079127879957182359574573151206333999801588204492916443521977833044837261956824766034749116056842368237024377792582365025657320589883399144493988484970126528616572650228276089374427593925468958957440911712089673959594547071364634038212692479874727783724815512356901061895879753589457296142705158647319261440586251237975060541527090554956593889187475617626398597551916725413317062330409430232120323062129572324261261795432134432356795257408484213705936523065210790795657028513933518496483820998465579574827267580679449099330200770019502135081005676062780068369806301505950425623737327655142081921386241484419831574066552599622821007610394173453845409508048244651888625351974472403327285916096729058718776344217286752057000302353395832882204843937245602704856629473701664576915806973655298704889878181569994712654083265545970054840112403688481098212409469113064703509656847278476647737604606776224313937165156436155621796390302165721258452882730884181910325115485275820575469762031721649257187826318337916283575230920830705824972427823007285743158694171556051646547198547430452924342838508922325146313439350638444436999167225592197165766709242811008895972326014853118768993151082229075913622915556336833557670316891446099476038188555233981835864493342243051715593144594530927954694092945964188893853054206152746980536815470947113473924136909034576313588073303143628503155669987567096673017355321976356743384745041521908343696100408860231209344271785054221781304607774197515851518786684769533259660898672122787639766701377638109618207351990939503404683160087336240347858623727058431294584943516284963500835760297750600284042904274703264193575177064914972353252563817988938117895927579362865149532237296819438947338522309798853438067685811023967558076299835397227557958810960292307156817562880720994890284019135375009427795797411128299757464949442965069508285647520097611729311894614551530487118498040402086185469083178111227087963599632290053876038948265286758615850693308071437702273614274946595621509472535480229277979100663374970776238671024441365317147255875474009646160632711432017345126178732413140531232675200934458227776216710211250872763309825994157965952249307993236466572882206175628955763743739186027162975210089368399728389282175919686975175461432600314126179793848519025500381402884193700602943457389300905045628270769241095298904973113190650111168885911443718721418114431495823067620582133919193657120170675952632860521963890091745254212471219418402865154301671594671723314210427953978610256527060994301347679608687883468206748819137252418611452347181278774410531629148521187374036999583307932850504037321448395220216845760689495172841166306902485762484751871678191367446579397828048575114042699171956253407131100410683210665179018137282887973574455625968111342726564918948318891921077810205318663461539980831508495762590210521658230383982418821881437620246461396713178370961546534725396241960600140746403069923224079085475012913095237000815100620864207782311214158992643796774960663386213389800301484433115469951746886134673132591548187812261526958578611705614200722419062059215626135831014886872292052156840287684840788436638146003226414193014545708851598661729043802384667417952127640290176331223319865795382708051995796612043173834623907773038533761283570531026403963196895133970983147989144689726230029265812616201594273159960845045043921310652000536915288126129734611052863703352891415735286655689113135363604553150911530866639239997148873936420593194341349600540083307538708139299342221514118962701568987861778613115682883020360050618595052919729490090036548844535818018899844768047656771587724756104727661705238992574999026681083004573242291202554435477736409981381489564937054566082509872273296597282660791398200167135619811294992513851797498037490372504445981652969839853386410668692544351522628588026563450431760910082439235720052158347478508158314043087284646158040508382261847243900804778740556928237993013902585735009405544981052584874734451258220182876736294007878546337068457568448625286692319343978263784123631025457025609270721598639113510618459826964382511316524227168980861853604791885575230674385559187157564956258564719826310377348736746722034895735415052312426914734914565192247757957728479952250938115584858328608294704591215906552938290095260783554139306106978139887556892328796881928678280128596671751512930497726750313825773377896896041181242719491864824764653414549191611483505818205989106106197998520572325989618032083338281587746975892340938164223903512761914487973531588214048410584252345691760426667663403012785846309890794160615271951834226012277773023114767376433596560515017151330962111843408585878971024219364212907341823404549457835865024875710160280689432335613976443415378037687023273331445407123248256107439664428275467670319467644124892815398042232346526903189727611986286046407560840527280517580728852796848937512768843623694610903399368958994745634179904149258905760150775913137135486921391324721917862711534218397479419472215608654004775203237918091486498699194121714025667385020335934730415177990320633708076210999013205627761054221539582952331005587163612299350461716127099864385079479986025350362314042477484331508812390517315590115181944176745707451140551263628905557757928915554962900524687729237425467798564832344607553542826650613102351102395132176442773857090592077681980143908866007317910287335656051376595185947370041273167380327695211994810129100065049614984093549441052185878043629579818180582896568936305245976416292231507366860972265591796267094234696909247805330485616190185219096432346003083512536256525599308791226749351955932554048228024038864541804251429599107148362910369509815119465832542336689956064319653573716517317824593471704014239088184343488299407793277938697137904236794036667097012218082387788328384025547091545717152280043620696973006033615882141489672525808111724736694423688323241035102235476712984667641829847054873474748842262372771269434935768181494440198924995344541939448261937806498672144714360721709855773862068392540198328999308345396113732607740657995941471482782907555737255041485514284586838287451552226148613660087591292406143810039116391292532948268341877491546837919838150334263791872895062283987912321892634425622793507473665903330646652662593915190573622621028677444863642925441836034342486533289208186329263319787344365173549958504179978182126695051392771942814880429141238582192420601889457118878957718429865112418951172176038191829617142975266348611658238411851507934428110172256365799483475885230757305461610940469988673714416477611893711935056979120988996099997780546758002073440266409051200593427294016276895764816663067491367193798090703516595367157831835103352483677121244424805901718264370326372931571207160556242543273346717780700703935535363297980142731448076266498120823011830584213993124460640237434805293036289361378001218732690456802465389757310858737319800170485535861339626422171071362906551941111969674550657336229069049985775958233108455419895096722470324330895129864183311249717069121051843024300561337536901378939734339834528655432164670112981761149047930656352136384591299095620691736550847747697783592754365358706074351073848266707271443919170431228154330767912004890063339867584493416517437138527247879433893383745229641445034218780375439046457958000113168366411479190586220969541262703518942274441759936600659774159332574237048770495125072259042345590368279956586970784495367071408378783886068287462910518264261392759805045574250458421357626526232380632977346201667069531547614075696116305785110353319869616870648617936176549279867891748323344798534398883666301365908908518621100076884263631068971182822751772655965767396468372822382791412234607416086243029166395446174921741300857309188331222735667342346861538319823066515112930609520139277755964834826234380521040256251037720624599535648300609178141984359399118545706743194521711090119311192324830430910134626587733431381591818796062445281330671674304514155520027120179449679796496544340775036280558244598076894828705631860767034618176375431256465983595387598726301989923388052653508341630578275793551719035356671160969337778616834122126695394732513692743128821256903829817605122645940638566095885172874669562946983504420316104093440915880780241648653657717137808224545376708183641344795687728077692508850280638757105323848389167177522993247558198802946778188311478838096925387886347740160937161874756288890682016392293145710169936749832003530951999979483855700906182042519118291686291529965479953037550786214106597653024980131688300971119449795712986805879014334983739442992706668053103308011339289773173531512351142674615770857065234809876802506963624606069018180179608983035068785299582271264132162212713649984852350544916363652418872913767956084208953914436245504126997209666261647752475675768747790820188295608127090703598613879426030850303305269000249263260382958892603018318546238575826510585537034132331381805884728776984509568385579039055056824178958017566813551075719545575368173155268212037046235975151407853796679892292016337647890898346330247956978081226113551701050489358153955525349351379975779364342634773006903639353178369641368138779782536822574883295840098112814114399762281838603363642133143487713312526736459020224055591123871612149692621317105342294774052207982077015767073525966999283821196204595849630267602646404172713655764592990956513632839310648840166114155255633178123936961470471702061655851654193390696243822615001316527285430489569692378843850961560712920830307322663372792167621520098525251464906338230825997481976090114476521009551909429695508599803165619323817346305969060636725697383972549681900320384681795292390984920951062809974928967979316496819633626742927790338151449806692093028777233516587336669858686797719246754857151221392180229243143229723082021443294980795094399875444914360912400653968768085980203707432248748104042486417515592848153509915654643299141147293798804347236327995357457343780687049881087963845604721880446230047242123355285331189661843352960730589830278931143058459651866661306081340198898662372140755451929679796523185089323635415941401480351728168136345828566640859395980037719871467459641106247021661854395068044136789253356676533987300686446340605959992625010432947357114941741050409420665844831293526129156095559571312778230083107858217363669365220220105759606114020735917137187328220982933179836314138772825319761876159687020832147124174423060537287344494766500154194827878714893705845213509741216624821584366930733449270656754881619376791502906809583146739715558041143215879149299956055513425616936454049939579359476339820641206717678213810430529353133857277217008311243731865320802063757465059531519507700194460857480729121450149840987629293645972871373558628531009879568964986357640916261230740934542640264725992278189305333073775764949597284294409848899218574567156194791442814548303634304251435516320562618171765070003415728916976947135374946612379138836686664990269386566437610397861347820565453743334584270507897402273408854447171126535428911634216815226276638463764033753746316987774734830293802046220058608621512304848648001455728171029123204481598818357232011241425658008498059240603469703619393568641302535889442333640478758037191867741025886206188432181536056836582918843530121965778835233888054290447948407246843058699905343026627831891451361812164500562228626907847019640475823698306629757943175523031335650639653346310285415339910305620667340121796949952608080229814810656622471017067939725473711660012274841903627748542806191035156782788255733773596729871864832811089519533782768015217873442348242067198414851461218767196534993174298101996195996223623790854060962342080182114836349510310262401088960673460745560148614382761495399722247480244580960267395441614261343999243453019899030674288856017599932753672751006514798619201115007472883044265422398258525359564241680035896743797137959882891865862173539556779218446908239882422870921424612207158822209896205110390917026984540276313540006393378174518301634292738322532629641015098646905317544870708112010238041313152011973330872862831024726044883889565563235635305548482513993900126263870454151075418984352292567655944785648150055634861485649155939206534935994149045041791013255124039263954284685106049150992920449298105412029905206709014493588460156067121864584940281616402489383843423024295880014032271415386537424344351519381242298419333637324697854028579399125346907205476281919334918424213322033897295526570563156018207293270869825309285324022552503806390354189986637946304126779318621216164305338945028581738561789820806797233491268966391222712602707463851242193150397294604564640224391866170959588794338243309907656772637336729204684281773542301233082179348422518188187601833503647441714998873023015248292379267958412151257553480574044652471277254811270044790475693834094311508467733155676613234923946029115277994997078310577208476747041912883826087299217272363550052284676594916698757913598388738327010166456116044520976348208904777787783318689831032692093507572670937912105747988341478625672600976892166324202184610708634989826529905311353808550763792427440433288251700807762506646903955230173861441720724826924850465082160822239056100883670692924150545467370384738759261607047442461275826410315185973164257180097682894898228663264271817369017254939167642555260505126435302197353053687894058013096577200865884205856970507091649440978698293429764505626784551698779412772129284870446154777324572743730617153557693009613990981602435425956334159965189800288824099123047673291423327220821009271571627477378532510896098159444289905897689616355495640588241798511800266437230989059925980172461559284211584466063166895753001770810987861609396921379113040792578052181634347629394391631409993084557879752187602233759469414869103404442510077287397704446963113072040387360808714722000769365903482193948804041106382257738033862128800957692657015503639444747327301541591107277087724063925555473197839984299602026929587992516403973326378309413555883852576174087285768187539573271487318239687510523848968934347333263208829362420601025064704091227988293033011426640511956118775699466267741572636882587188687322250470414790076970302446153024301191137918334070831176907693581241858535403822871909390550303416628537119311079261221995574810940018689791396930000244697222546550641038389168120041145290548908083831854324165945802196228440102344437465106718910774124459310687547866269529284476757657674530787543185197675950098076782837171820025614461011654994922932504639687980432375036626825720217978866486061602421600239166992754218695043622660128330310637459887230522200355046275793200378051652435141270524813247271112301789639100777002914735604467559631825722264105331745503992070399103657361161661594566865118034626282488385312781025625499328343312745402889501185420189285347837606470682445143552823889681827608730872861205653690012915982687033326525741695495969433978327405744393612600118355571356694559923313028226543329774267170137911010071230098970631297744563953400823282164254029288372475281685014359708897345661077725211918832623139142070425108759959075056709529004641869607333348903701180814381637134604564797563861021312264668054674933982325328606883074176968673312089103069006074910402957617298052599976243990098638184702284538992699942202661029687901286210306757545223027457755922502370479207532732794862066600853067416656539834189157797078402122893100689563229445242911987852668670415398754744490742386895639819682399411003616836703741957023793933323297843242031996831241080336902047752668862161834457541915728733694311718032250095120291198821412929368777588532957586010041434496397591038341534984984851367768417560012907157923217971610891871068940521681073507896591280964045591075728609762261771483989743460362284967733329797018006584689363085595251503733420597061795092423742987707088843347626606639007668646160015270326811148131511807595481336407980748137068655606103073987284909652932957723221642375505360385978657144379433393416673531862456531421570225760706583041172117036834588896517552818053254003355560420253333683720097449966989935865433144335626054861523371756300111015673875267162016154898558493642097482029165374928344721392060230075605408753404432053568343688160756887231862499842601762737717816853830012960862711692517166246967052714206174798212620947189847194916283417262120447880292644629686576280436766388036799263410687177000325751994434142909719306063063861104791545242803221676401233514505060983395046628903743546697898355343089319303804998945434349273057842978615160540568127982539711560084218986858640622908157642340048698587219385629270271899375186285687639698574739942462778116709112174243668537650748594766297395366123788294300271718310105337607882990810630797090485514243629134363511417621368732221760131240820357725206030327148891344658639562585237515477115003312683329261797601899917711355490270272852961495715581789730112530999697824271118566299790884424910282038595031675712325495406440765616068072163001211056513122356682665113385269218312414629761507577572652766193146229444045115268139861882069779177672403176845331309083970358128440940763146658900955831248974471466094103490596836121907668762210326952240124616443757902908483544644880517486597531246568472501451390780982384287677901154249944180594974758699759345887586198493563469374257278841513518965813918829631967469652514948756762091657266505152970686058996889256876234179378853667849835732654055978683057588956930958888901126587151977076059603829582638783697161450417401399216469456299147141017590149075295037046526371118119444036047687930054545075042729469370833748076670338055723029989270564984907862939375332870560424345758309275931899541830686194861280592684296111696233257822448922016029500657839028676164405413276274415937299519162467684565366107253925438001051878672526514301044256249823779144685387135325803505305076759734122894730284891288410602129322327500187524408080336129044046380207263261095889900904503385703329597186257742871221990495610062062322211352290977676313531691018837625669710665551078271019516776074277968925619708101339637348218230155575907847664955532442337752379084410984130710993768733716192401833325123949101109125532288755069814821820260703590913779156021361948783850618206658080399422059865565770938849171199080706268856627977905615042135996491494005793205716669340385452951904086080691740556887572587742903985990531268625599447724423784630987385356779681934499487083821573806178824692295555594599061548838263475103741924128895523794372911752117265129882165953381383417117288145664419188978792202832047124948520853091184559954149375918671709967900948167660722078032106296170297465846645279963396475124101230955194074317697685059373398794702192136476446968132938390077805820891338750379244342077502138777154631598232562201493056514103536222353966890387272174893749897034158401273598461445295931551661829806306787565988161990919058340538326258456415528899432989372526208167337879718685071007879572186897978698935178081627572619560664527343183349139681475812757220333644222810427668395112721978120045981933921574749569653456124892979563277511084013933078854561962932742095277584685337558184889511075488361309003849311792313478272194778333407846488238203765851594320901387413691001509784252837133503208092192797151723707046008542283453665213034318866807218268310157442026200506878891346690722545175375747245887188991596100301070424734260475740125415201588131636327429386023095853571433174849946287672570203178615236431005700011645863469381330868340443146827111497569826815813446152655336078153939702128914912192264793897429438365294378455120025174696508867951378167887163604123025835593730437438838585643199448874981166864283434939335133642213773813104552862907903645030460845018736855993445256449271751434797974422502904235348899543557576593728988544980239024612191609754824775212832148228454488137751813395129189802466979693266221384243317234421187106893283937033904492295145446584784179632975033875112845489125203435027713472876347757888507540942720776975634395675689851290710834196411593274403754832836245403555168615735159509169165876000254358009222094917222019026453856808371130342507518278267300481689652208181178982791443174516065699524892006337685004019195714122620613971289091357773269088576294733486893135824878346293348232179164559104215329133911593902747880966942922157568402582345828351691091447674662513464136212633398441111346583113371649044876381622063806992731170904663805963621947756120300051086864276913834085277705570437279465768744252037499521598212578927779861653879667031507779607335719471440239121338128157671654830296138484314944220785328773879928082671045099226579371824914377456046263571682962900473387114414932248897668471864346867714369540295668894307922290841533227791800392107629111868097685341491995054857452694937815338603705082672944171616690902121984759562665167512977059793678790762357095061189421136659994409977426432470754522268353150998238744540205371794403388540551938424030144740156520541139970727916770855032740922764678187705559269183512189947161887961888685004028659256936453557895233841285666352245646623151428372195299526082401908741907067608640492319627563104624757862492839094980727487052541071196166185462046478191882169293723444532257482880685921985688782258643496629951751999208514501813713677699538535020235306107730325687057077991549777925901100386020702799224363975754468891660450457458252120434479798746206807109164382431684320570556139275993812190014190554719036225508707826607722480339923920018061868978655992827257362573081004690967886074190454142562046994077432969424578057046909568028688920517025489881512496530080645494593141545581958438450249532662938830904043398655227150134465599031166047914194281371695697988697941896921738536397422041956907272291605869275562760910908722544759732811386734223758117280460563851165422073485236186817665726799194367866521777512556795338699230256536906417314466881319354489125652657087345033543833577846648653216787994198178990164402932933487229379357523217100899207202224701117131433801663778102914953268611646861913528966313668306892890356637125089587038639368907414244082195033596307945956578565287473383180470071842401463682329392395078896126413872082503758169594015471284647172218371873310417705012098625665044922084754349686932967858219337116814394350989216921326423865186563425629576848220090575638351810710700044068746939047958099459623291390882170664489766984125132732158159457046167157069898907716862463041952716184554609929743874242199603052724946748442673812058873030989988801298895293994890114691868232805382433141861317037803414631968091169467042008468324571891224218301813574298421199771994573992460306818190593983264941333660985935214829815858278242400279552050308205717850841119814542037537860028371975504339564504498532288315071351399069288394142723715030019970178011763715204087207397585023146496635444989501329660522350732232346691542191406059284115375303790952030042748271098247083294613696844278697786490041366082465934010951702474855723949607071644386220563440823289178059147666767886168317592023780448240050217150083620049479371611673160707349488603766579655920566037371886262093315920740379704441206352047564978660132421417786606341429466639677645923123772870066983754997423135944462321417860967870182496320650411151094690633491946133873616575998570687286526871993534882251370938475644423065871150445811682776860536169141255917725188473027531608058818172937319472534341438156770356925238560465706046719277743674974548493180465069043297722166353597726848648646469589418787309544417125331796281955742285526818793997486976878233374640648128156890967198810320379548150740084166710269402884181298095009465192326307160864789201854381855926386929305138282493969432965277533454433455866759610657375878557425202851525341139968061307462167472011295469382070292875195878025702857328379297101648705782251185559970591699896806408795148991867769068700955309878642652769011003270484367386164428217723412127956012029921992839641866894046944427096091277094210583578366785517825535137102623677397921866497242947436298093822613390684357387221619999351815717842947087501889251841561945759113419977062854440060603011127777068349361075691164724702612971868814213527471311587513292006955940757997080344401348553571862976057688263773516567858974352721756703210419240824922072209816599110417288691623843037165631790030037123074439940652021192602185179546574941874834221136779238842659873540112840639671413128356538029726235730061282471339786836466316913310907855099114184733116450618275982359671835188827895809675386523784257359202160287268154762971233909681619871730418376553776189570190790842047771687912922557081949354827855507571946101839878326724097581564498848256293345453664446010633325151972583834892235371246309747265950133193137764326820474725873485141399990042611769469457443681672878753206141092986220709645975944008877019697626555625647449653106598870538366437895776691977218250375563793949790950335449232911290471015109845391937736212993827259438495087754156146918560838453122949814055019871181391220916440321883026047584802973416956825819435756399125177943424508421502498488454095571609031827451572779208463746857346104473136698839229887710560594536059733998227013897741760081397233446923749989587386968830398948665651742346726283193011780892437449690918715484562051573877260047766725535602776487673338528912906204889790614856468797101820920994620498780074283270168716468848918962261895779767451565071294699791336999855637711453836590192219381514813279973834564129537254624545221789573622538944891945179994881350287458951496626240996091649333676713537095561081200911165982952284092008700175313324583991777449065191195920656363350659321867958924760512186440047316501343744750344382520146404250139736246805045190982654439858514308965223269815071614946747477461131741584440308216926448756093143716550351411113201523775972063947418598914482824605674118237096345103386372915138142347351283031369304434032003016550599099445148304856259112234307725244263299206844461106375734988072417710039139547268614319733052112270396182340465934550318837035895905976462612249990958829999959541946220988491717567191773210713120889840503864608649074074241593530597756771410848288815411633612717142918360857853964052732432219576421770153446422850193837449618107242452298150219779299042466849782355262345047607555330195100767310462996851985812808528767875611254184202108954291070215401612168838348339456175148346686218131845582947790169264389927980109525877667521854211127314814106932933740175015627769850026326977864144235067346107919157798915132033385720985789510412431548560545445060658301903560214885460417529582922651685424723891840690852941591167841876126371135538321007269026214260862535221524972253452709283237628961000757237766311158778152131650092139164091969423114257727805350072304637591452287190151536925273662505864758674524585842354845208958688893192493478361223714392146816097290859921584181716604094641045972279115839344274624004996831885047393507176796425585443819672571169940266225801759538776934442339219330613859133784433408238978236702311381382386727764502024663318239811632126366483897077287373100341042069592007051891740344485346303288117094707409392795461092611076770591683673155037059905902013554476627553553845906928484350968148711008551680930996158046510232776571750896718878612977067685368263721057843885565683205197398625583295049015858923791153897941763312981407432083212702169329685616364035263219513932958423287268174016250919446980514152537346386383314449251304821756841777646206836852826771715764614974811243778133323583328642620018103830560090233906666873657638861244134267068232993447529229606334115877847393540256277626445631317279941813805654476896391585038675836004157441872974160644177267721349094899558433406923079810525712026389399314588266329049735828254869326484619924968228904060493302321897558085573294070502096547130348471234106870794371966291392403506439645205821919936565439245307137360172798087397189313385388295683727346247642255284888274756027783035805982575319418963911836945672117857630617989225676393249234364006692595891490151916620624589201394510776284855694441567590472842205108189166763742464305180281792131780190349312767246298899279333093497466598770499797223243536265309663217846596430860004430089923554883628030541638850391181591632551670866890343350252690152653340170789163319385196081752531104601108280504017690004166093339356015385219534100233155304261142572942386040920097471128999829439859570504991049534505935396954253537972209602081838580821199975628855777848432684061678404620294064847169349153965523537914783187587733303657655017601698315943739595665036775214508071575631080410317062809958105741922823243828326507929471282957573961092255453554919206949242572904876959229630177702886454023273137642017369767428062410191774034065576709029147776781812169381671344939086608347015096023423034967023729421758416071707480313560551289145505853239134997846055899389000125987840712536005942975192557166985004410013884396366946185621165489288691332060647978980459680508755199310695872705429410796574680669603076293125174277889005459282416076474083767938360510640749974717357346353825618215603538454121977587991527765406165167058973462779902100506605630122953223989469197806949980063273729401679174175250085510405457034374668411165688808426812499355225207700070918712056723945949657233185397227763868857236752398483711105170477376774778297713822578497623652133151115826266929584928024946193687705190499850571757623048136042087426802377662285675718967928161341097294959172993549713027840522437281849775243920041495824785092608065330446058904367425994973643151333139244900155887029816516115196067361259253373660242971699701393004505113848817618757491565705363122724146142052977049327791365345045933216464116995382444363864324365071951255095628100033849097533210532612924245820819437799264023013711529435606571533091153300059381746162305050374103746749406582345668637167651617274615198243393466493901712900317270003003902038294968423025605210256452943641884138444540953024333861677353037294275980923969248700385408710384565133084888977067192546423609101236792484315825571682979149820711911155756127545084596743015053603512242989514450862676411403406933353076996824675938673060234000476763636321031798883594710579647773622943819252384096123612505458709812118905714459011765926275106090219323480257447518348505727265237866349412425466348774493197288190920101765567462869809278503845463625543671836691371030744223194034205116516023274991177987522032681920649435257063741910684505022639920181569660832626252241788197391197341157394204193873440473091692737115676371044796933099459317264454526372278752659358803086861596255371794801836218457255754075300165834827574199711372085986487396651056507016952595975667748956917678591174344919949745119766806192886435186580668540574478076617924690403979529561037749155232360863959129344319337533574622073937369857328629970184946758742696108270233423261474806663426435085570622221864886291849912932978791130274388788600438438157198097064590723520371675726913671737247068607340396259291385201791448403895193133942171951256323261589196486221242386745305711656647774482480221839966071875521104393717038279809677021974434459465838622272557607894094742465667328214910458869346795175798103764614082560390542153133359067902392053727652122969019249233474413160214438348596791796343222628032680180417622881323138775271315059784888105324656001371876231666761165999634472442323649765081326121340356359338883913304170839486682047376693339345122588705152240675593129895862348772137355202951709406687109306747730361735155467899564705531796787759177611104712159323757602490000444890365352537240176886787041417662683201045793295181189560426343158511416087269934502187432495939876583383977652447001140073040640696958951130740715383752384515639617595318027042085274162082964810556697849369920343380719663683141574035161490209562478410259651629871362190242621629979290942783615916233265190551902085830825716354708103735881441635276636944229132222691072492006254966657658946894360688879724165227453711867358466047728853456820253002456934188980009772126098087710842751602358535211615018475080512286816913802521005646890594334849057184679435678935608918396683747875528073293321839696177035028763695522970550366106115296022584962274311887011293359241457927901462297545597898908000545969897542448198484541772686662245374599958130897802076184244890427140607328044422869207679472359621210038761119866282536396993522245479360497748914329089012810460063935289432323304671717484453844367381437619224328426740713467206735786274745925658997542936486014704593175003045139373638735142699968583579265171251743883496145459598135133151540572796291055961414806574166290285963023342395771674267840073740656408357059020955179849541812295747707345408219924987031899758232943958923330160672728713670778910454336614550172141593093483457708895188682799128169610120248265048925815645261519809410531684682832513118652936724535155898225294133018480749869664784418061054842489546123156722224772855810332002665205154390662377267014148756289077236933342512120587565241503601836834598710898649041442457875908865269150689063478617273975128670650088553399118186924832772992425451069114228419879850887454762159717561453656420024735612653134466269773451833493573914515472235440695318175548950428478997961782623345192971219395727431389299840981308863755189614969066738591917687683772247970595110239090552518050945020658056489703395520936769245191225244487035781480140284950110671069491058365164458703720596471714031341879805566457468835497256468641533539207732552240019635225357462506591376441253537759714546784774323137190406817298475377905733545950053320521232620629394956105474400048150874733070666099264135466228465958105006770914719214820066872909300852547538486235235169301911000072076535949487560357535619210393988576209058771832584575641222572222816933579733345718328179620446003220176254563585917562609150730735517859734797539967320258614285425058136643387564611998612125819395191311333850278853275423047544590659340600027924666954671575423445077474934991425052510098270466568204851347670211115346691841327127233601502548876440239874652121806697740398277026372990596984610984137763452036624262341260524929244434690346936824483019570302038567133587650689227422895409730538349739151025491692034099847113813829731983432475564321893449588847622301830558180945211747241475805910546569706596376700953995821699833716855513677037347468849380753921673168854374443297472000037715265920362830158696199801488753930683675385967198659554629435946109168204474256703699819529426316153446743720182860137006732174561010929691299016175722431288876335490224726994822453807353313958361153831209430700341962685956223871093700772069671063385972665495427938589047965861413996146614152310042020373538038257720201028489602381219380932737722838824724077974372353824108069970022951482697090240668888872929288457476927835794552393240090559833018218566384805613711490758175897482372657132055443194318781731896236327244402052214362348755072626133655317186224519161307178927107552818917673060804199013263531549613221329723279393705621044029018380911399726178653995608781108491564289133767846476035963724686615325844758741858855588095685666967142202471258555471297326608023794890764094704949711097180597184002440059713629820982936391978270625248796890298288749672074110512768942941695646813020101205475850563885036152315462542058696207719719822460274477111035554240331699965194628607659457821864018170839080533115311019871779903869852122252396487344778499410722904812057449613720453019907319529451713824267245748005063287170605884990130361964579309294126268256830735789578962327302672336303150885689700896625642048705902432775999820090777530694033068120093480196596233433850480688732694729750734673581485641592860271828221077789862500225075237779814180014434689961140637653148504067208878863224461092580146969693554172085628723721036760778241951512980978828405582948889728676398381116799380439743498860709290172996733706134941454923837568655558451236779228151350288207984023026516504237784860393785409799081869153591816254727147012041156577208601832872176169926621683492612566040877561285095672040126222388776806672412416892417022994642626519233535370479986177006291633876508160819868119212646170733754292244181863779269579861282905457058292753593468339115416746016917094785114379957208348358331311908109717856768457042176657098239090954396363856252602692480284595094323317653044716924408338059196619664008382062365891408272245285926258757251409295934400001899029712307966284656024291065914318357529327972137764994816884167096846495968947017386655456784314739634086932677266266123557328822095615847110702473214494258740612071214304340895856656397160552670222379464576706270498338308748458387813535380027583155310741218476346870470833664062874298604908197747766317026085412128210290096593738776213012274938590758069374142548808048958198693288845701710696102573217066944819005273515503714063852133776690524374012921354332301381869498147762979949401781781560115240000235625921235558569421503677900227627793093481024331189301253190417974296480985069904411565680440217284416799581730279332077456275411957921373713559595401025023929452759211843142809579764488123335683020678144510825319508070027857475795533661349260326874743003508037114272215631118763288100733625657698204216268826621885086088256374592528406266197487547663739440934700199686287302647992528332634877125892298338095257681951785681985157203870773839786164607889289676064672014531720906186364828657198736108132410354130673345721700261640999546221794923513731268026702419245082815341168225088649000170153600611207444372596260694632613761536511611657125604399859880290534846937605004599066647852556657747359363964110310143902692728663412918377215131698641118284544116255422127625942608167302250903836106115239539963877561595925884126290940673033642355540450124825652330999210764635019898003301362749743879798992476932798640801591361118275592615945970592864586736198308318643567344792962985778828234266524361209721464540828955645598792376864891753696796755988510720874015226315751246918060273621350359686015046594891298577267930567561683106158304595450628786758652834801584745180789230015580216475537866112837337098065995324717086680066601257274821901589683818449039431806185102214304186368709032392797683721961211414757964853738751219800401530696105447255953826766836667605346279355832559511178293388521982361144686139592481686894261709346406802263662335459329054111988132943168335081892087214841800425328922780976397319483680548959848103565306240454542380058962340706570305888035548981324147381439867737540459899974699272236420950270135274168469026502918618715453686779468902906464461645892666062742895537075612380305372367357274058913898727938472711356894845851919246769735523168164143143772780589763597204926013686971804742116546228317785029257877685720700529977259315026458009350002051269908704234459566537706662066051174744445010597511700093093257297047703132815973083669828996811269743047558712544950956824629356796477014479707087384618655479518384983577220425381187468302643226327076987351878017347857690054678988378000180237717142745872935885807870981537838280920342918497496857339586730029228428418788280675216813343329646115135085505130003197389075534598795651476678801069510767905744023760083000210227147137915283572661750817002314420791041285485868052305982922969028458476311672639043592953693745512092900792094144308591928057120823333194649437058055558429193509155735794740199223336847407361878798043041877971604940107875283380630276227705817813254055766449347814969074557192895543505878653915353657343243076733572061422425025737440140335282045423344906172607258763031624771775229428670545222916250089400560305895198010546780033160700498220849185013900453617312125789620692508668404940536814979893597603876541036314264170864295737566869372353692347070721329135519820223232072930526753416371249420204139783953938025515423416165852062203016221751875330969708133898616612708286535649720427392402233945320856581617401762908356417683683886549695261749547858948688321808950920008623332510475806546433917308791766498905379960063379245962465473903659767787122557641553718904700372078477417112876745921232869184062148529899743214065477879690148102665366872697936378571106747977660213819791363624577016506264793753605451752220680065712937320847495097267452822432609544545609347216450884706122158004116996437532518174084247411599780504747941136607690039513319969216380344897371109844206179637189114835630513348584150870212188114779147334862379716613882637334585210314353501738451712301803372024111122864543561045062445607455539945837514007381634488741987685371679963065958262530689865971552168386090485954409285158229005934430608737139302067867829167423984029728413412924335849820457265464016000352411265694801496980625254913900172152805423670025088677459217828476563010595493072248117545386990321391808109612468904204247617910916813708912259555361419530275769386878824885757603859941271064912380214524622881526082507192270311000440678461721771092523460972734948534036535073158713657362757521495993346273244901459868191612128505863674335354784188297948313030459170344498213395472653152223956331958660846326338311906040874283192045913701630212397251241741728094929324358459097108892282026024680612293590274163325695183318380305842151428626512549094468720741871867179685618891826256890333943425327694876154049526101156109714274794370260387228322462454786631178570853304932530976584695810280401821193622706746733233138808712637976440031364969574133025386146296126636719592224934295280892084736385943917982877230957113570851903583055851329607950164361302837315038241211930602784322309401504798097685108275254072414822973750954192291305035001423653542039261179528783889585591629018631803791693012223188455900364695747605350510488281889934037572672547090684875858722582330245430586148841601499368231396970688626364207585534980776787192889608743050401557946999406461814293214600661479338698559656382188409686645785588711389483699435719403970172342115093391344040518508194069209272961536183943663017727056001933519924896475391354634258893838076470318498923825106913005004965049913448760424964982668429664187560187774691528781922716995781903045434329798696295510481536145983824591421378735120414509773077338028424631534166188989878855046478853741469304503551000274406783617900481557053449266372000665130705520987743172127591015470906766454759405156768565854471097599737363645593530011250618307869088425683470283680288041347572619532322172591664999991788332733676895464612658919926683372633821714663017702484123540436675050590143632947920217018164466692465518799499564306225584626374718470994522977821612492554593903084822113876037225742804779473721233939403086642718363243971322421790471676763427540774030512263747619698399011716889853640119698844002866857443317767522890179603871110370391772928935428532968365799142513187198183304975390332323689103755187603755972506742964726827741202269046707097030030555023724895455694084685717971574048810654851439567123878263493976725679279269231742770515209496794997830287813549781906920219858895072665631283883133884404505202422369601059229492291547149202724443271976058031416338580362787553548224981297225315054259762198642087952275804713735801307401771938046171438904703245513457038605018318115173276108818803533087031598935085482991805479649743466523629845541069623267720771289882574942886144544015845681587972172893787139776772817478504660324992626065790811687690051260728346513585339426273498145201784432830892494985503747542840274450071862388760003010175297472136982346241037392102277201707122421977702532616098024824924049605330357943765175265568026902102113328494231738317292317978127961852390348936317172184709341437809127630292857153440015583347890788556658211277058030031706444257624942133324470199189871920795906957260635264200784409499184811159665261314373440331888718694819174127727846998042858832035354831209297678616226038729074847342085397336595807980394162551113705860952897093365352773229016502533701972638698026779631652720402763468722141394938813678440603232793435877932516477066866661706480196768209281841098960408958623789724982935995761227968869087970012373680478372988507218226233508978187062520682976919408049436109387563352868351628422437245933500226046795299632759289721762961320597941958712428757297070111204079604645159956169876495021865812381118337210981199327328697444828878254202182510130639708718195208354070325047737185480270224174391849524107912750265542172150909061282739971655401407459537852351127761362117248143796424989770369011684054297457031541370085333868581432096171853159675015587823802518463375824372409071605423739665857476079794178829460859775857712197854630036331243130579372091162713721390975843496247781018292581955808051376595308203513051652533056129545305216063897061001713482960753975496252546212736514172974936946026749065607280513419484432527029892204278322016300526571907088125922932072762361181045283835626478537726076948616905870343588941233189912521462919285701049380703630909495630187862203442646692451738111495843272344575017551584291184280689975155323069142566538192953779470530835843673414860376696123261527270199518324999106916020901299397361726648540816586341919983399742302953134232190860431244917600215743927472844120040776970999844724780046833305496757926886883706934794162631799361164489767502662919865220393021517147674617470146408775496789029506624692881773187014854370035200814528691918691598534478513521083774027548177238589000268000123403562566588112228528498470461416599213611294095543944648198795067527264579564562344489302371110908070880005553016349000418699979327680208421988371534788127006256973004609542583868748170368531531087898576966909138785282898836950293961373773704240388529791946354873782751443944258575007697604803595027720487964482158741788972484700432728321294463250196669121864443048957891012594391032407468832153833956584007750846575469422891716567113528366753491683594068517384792738496405149216249186684701398501553923606517141868397246765336965045767555795825915438617253054036078074043495067022121391166263054235032394656356813533505143406148941618401067768986965322811656751075484321376567965238458846128784176284703376685833590013657225764391341924519160126531984998326091737041385928581469675909181091121645032064399518033051073593591211702673301911092972983146633296162001299616357860713014584971336403579651469227153668532738290428372678717492552315842811237364647843593063001666926987140048018386784057645887561063092875114996265163108346926586848280090524724377882102296957588700048701604327195553273736043922335646214371996756908572999117922528284771351603172237198811645794047192541097376780180957189150350317810894399362739951152829436538856220379148130917601126507958262392132975559295731083160241603300113798031801203607535261699904143776556946378307672492321620971738106593368442883713156155633041220678680123426897973298686796112113059251310796503129570676303096388009919099430442513392576466748465916102626568870616301268315377787608257030764734022971981310239107289217106281061476985347200858367460436026112902962083144965316505631359007169449770911822538552413232877119304995495241456294450448907427046987372910393656748819325268575711441172488908059852070900947499785924207960470496581314678727409641297337774769028771252323904935631351381389323751043303242539562698272441830639826424457321433042752053508171867813039573975218691734015206109860190495787709913213799075043986622823344772106915848461570458985559406993682179636615281508462423727046501046197254967034036268477759877019754228981946442976518768153538758935884708861521908790283729125831041383162602928386961282317322774871191073449219947777669079269977935073455692394894690853915648157677142592890145053259923245679957883076432885436194201688450600056151358881219250049504601156202709328720409492885460228862256698360529729936688555767988651536684191620060851081793671014039532428763862310178973319139847153965866562426474213133299049417611490853952075262506972794250051608554843498639800858412454253072242101453566113259360297517557010190818443486710293317951666382958219408832465108791165435206979512991945989646019968927506636375638593854478215123637983239539210827698168322560892316036375988771552379415047177829685407355518689638328331177802214489343152305189706728287943018548506078312187139306148852521589802617350360351087003280015446220900230093242330688165083903939297719705534855491480285839635531158229209391228296446360260698777263217097731294916498843266984484737800318227587500317685561566336931393305018127696755256222257892457640509956784083891296902701266405797591112206762146633228321358086012685093837955042349468763344042989784452796467046459478294286807862925278366688130933743632955851197638460020001163695900186250364133483196474989620592032092545474693255637523857199637455622148170598901822222511787348035896640365240790020228150919229570376518480414347976587761701401854241477456783444241308354939725475782932913214074847568661450206402648593013525967506328571908191084217139671960845432660503949948390282185555601575796401978504400463825367886973331129016052011328633043654469425615602955300202064850550859134214784198278610585157960821956189738082816868063060746885614162203257494579926989237279338990639698992251647582942717324779766432267915771388603794753989913499825855351705949866167666354182787140444491681319463940772752116116560958928995510985939419997073379138180885350355513219944549862471728674872436706550823573570921889058047973213912570442297295879275909378054580641132002094393455985347895110423904375327602823159452208715469978778372708225690161980931444489828085619229108255955887126060702237226048473024686976787400347488553188158375501350411503683197792629147957249877806325605242043761663269050540100155122115028586712965671606665075360347376812140085058665450333330959033199431880335379578230015168938222242434167631393940857180270443623138892887885778849128591097744863132215060451415462076459295724371245336335701415166925338618811481400014546995912624530901913700131657111989810692448653376490347597160672297136156276525571140268571625868860959149629882750165026667304775773148413973340928490065120650311450113460827749340490734532126867838530924011984706196806725244719218924302554488284143229158024644213791660750048406760991923494431197925953996865425250805442313877288976475345860169337151352191803551971012996102636819169002172316131019242323210103323880570243899062462133301006703302056987136160738863344368533583956447432170571788542359249408121549811539152421160626856160277242624365509857894733350620801799120383925041939568544226031055196070966185204938768788715182373977774793938034207390561156925630691066545927008078609314221846309409042608056775650687955874685004155996385740876079946446398838814787746409499899928226041056713703079419765173983299243733524347275394820562441925386936517591525815008135127943601618947024362381089496792136139012270688989088781975300406500977127482426485727569675032278048818223398032578498268052382205339179621581516372984371581563070858369043217932115639621350730846515880451000847017696300146050017355852943344940399703968371037693201875466488831234204781550811721303946007649496744908913267706657165368069168715606471677265905710198752381819342703925509881670264272895604036420513630918907985443924290192721682532519665922908217304398988982656597710550173243330643079148212368487330306208423463409012451268391283316154648332156392170040765382344886065425193459011310457125368491702940595912849519898880144444374320450441374697028729104084314602224191553610165595474574551085109129463576179566514121686535600459499143056977443320020182352125194296033484988640182884490154527074335876012083118308223503569460619690364888106986885884989281209872311713134985755010700438247131838521759959515857796678831734368516384223777205201092094599311027331146560600902740365117809348787757776971768982042024498675653053925397139949431895444382714764746831510731881112720401019243781646464658717620283037828460162406629313402375699305798991255661618868630407695894148157231341582906416671940074087894324626868977243748979290209854758157659931036663572410729252025015356286006624911604783664427081675392852193497080149183320014194236883526779278157642062094592172447035440119350552628377263874372156873161108819903671834550371206117567737240441417212557142911045299279308354222183008406089856821277456155155273012890590943332796816591586502501889469981674705004281009619936847968217890407098869905343341702461395286614889283288857700871790761397384361407547784916613787337368663656015585362915544607483207960353452986996452727882417556297471346655021969618271998537482934482464768907167960836598069530040367520978120189027190349815118116345942623553205448983710219464856387379156819742037899624504755277426293496433216447649076119089273251859145540007683664708615984855426547710110596660997620693130153199567382409631226342727430423325131426015149100497438492274980780515075334100263694929804282821573166538791602896355587503777501291842665214743870610917736962269540528836112644985322506600424238646078527699913404160634869008766737160579323542736363491006269107687559379836233847520502400010872373785624352510156420122718555912373369388245251837905997725481197473969228701954080932052181001009149981887201129872925899546708764061173526022336401377568422215599154616235921661809671298339218840921537630325134910576076060301859588890109593903442837109333038556494067988064661209777118346684108951750371947634587906750844662428479520994516803140356725273830754747444255840793677404576667406094488236656854085378712605126462834130341730787992420075089297991988386213823130139304375469053146352964729141561020290244000979758754007927694074111583838274600874884848883493580873886515423506851698474485424591201489427035131575441910539181636905457549341376451902059105751613061306823967447232843270481290428957811950414490393579965299413183351435308146610506542104360078148773278747040012273969597719661221086671386208982655907992025756501827323474560539442976973272160255303191724896960344393130693554689465072718381882200685403273351339598569800707006146815502511690279668123355036344999842330275857055403987821392939722779092115208909921242782997392453255666534500471477578751326498904131903989238688003536883459059545142340946876850991811075356571982704623246020836920165048464777431182216776654687609967969742794264753043635568848778237987706010053439419422318509633600923734343049452642488984113419039729201904495980014175426076683843862299254160557271947602669390725251818339644688842250705220031847489247232015844022192267450071391270784142592074684674295111597423215301986433211123768924496054063437493080975886703850789071011257976462205040128229541582828868341345142318490230987474261185387103912857127291904681158874110850056849283114048721344516691609042528149997178314451072456802074151900203437411117104078625813314342598598540549536395446495378069031640496281570045211143274686306143008233821910637068172796154217276964268948698474300990959831968675993243673476934447145617760296460915123923564521275749331180525272386921284932478082567087527972586380494879239694455585987499087202243002468262693969990112730108102830829334102029876547661521051234455851085130047076936221605469618435401165495526983979511189204913549042421085403118444464966882248659918896909059341689633770822125906689405891540551426095445688960002028472092594865930075032774092979948680116531712255617228695605500938874536105494481960138044057343651745611842318204686220572369148468923033352860941765708265340059456595879203822751467587914174687032695569705090187304596637530323360231023703890193488986697082732536906813567952396558272050198771326426261282924421304112048426073479747993590175563916036564720608279419920662200407872580985198928371184640471951728291050827133133093897927624780320246358219412076723452257783011070096274490225634630698990749449830040954855323627458986386691398976575667337615513692680227306705538949545040750495944322742173702088491318290478180323938888875591594500594927958131011943502002793032062644145330285823062922343218373928526441255248699942438347077881472376652938800200931279450613784127881599845691111300046124910680753762210972473036639632132276365512389792025280491972186638329747441840390755219738440193006460661880629289967277739576859326713794399542963712436267718485478458942696689396465373358080505838533458666178363200052483842907402068818940354718419251555887803675900785533734318003039319319326693459000852147839964514618147787495248642686598498551037986672446318108192333973192856846742873491927981131819323212408867700859508166997776953218402779018399910395877362240019498281502638785552529547359464556764881557451768386412007847985551374546523193368029795471563803923986438988415163843479006518978857401047964302605524361585766822919286172606053055130226228619562192401112965529632423103914404452611178513440233540687881886761281183954340371065307556387244721687105623585734889136774086758880512005852189955962500191665041525454335556604827446723550870008010801750790896704335648059629858581698029094612763426351811656650827825592176719275702659450640603693155134033155690064341263189658771250255351279511792167252260460193095151853323718503039159028900549009899646892142662678954177631162810427531311654420816708086890142795934829985680343382867615493340498413548577504161659109810771895746193501278031130200663432524617653782789856784702868666296400833381098474837622150280142051899814848840193833923905389021224849636328228086413423003941357512840046206035247387418224211890880127677884355126243135839861449213640678780445830411407688572446211277118567687079179039051387600273245177280470496895018910990475496171185412003630688110314066235397488438260825328662413473465172613790459163282295219123150864523339488764715667464686132389995959621978709945515175783014344480432019902616034893457798925210153242054809590725600092991671632088443511945434492015232344256693154716435519940408712491956579669662948398744467308281833039444624179404143418714489268181546973957755447383189939416550168100801938035963680156521349635373722795694253841397482734371122262446100603103152108261972947728386049563137521719981188170355053505184016845764976394714007013646999044150494519018621962684712988952341862835462568890325127379205267748883046201835318459290269603767534557778585120313705376959759065015357265936386560372384972757041155157841586166684672811021548317083963031395953559442471926129906747829955572984453485349727318867398267481815151203164334864468089991387745895884439615627943375948046712064232836060908816499151761429276492508939580053350662715274092275693848150422081988484145488361622503779522439533302108562706391109253615080468548262144628025233003000586021083523084067225268228793479233455144812721791886086041033518166013151431699026699358375926478438126935600940427721821871791984054546313806293662060121014592774205622220635113407584385215121702371711313544689251125719962540324755150752925682303988216818754096045465143878469622355408211843780057713915776668839283830397554208690649717006309901979609405886920936537201654939010346527783951805724637453222871671829936265502892710771524647626597598330220154576610584245167406740736946861999210941684218827747013204645130296077374409253958623221142065960688867793316800797575741581519373317088149211601397447411075678107661347086313420205869702230453644843307725077104542047513844351211342773551983912371484429928117316040128515175708848955227711010327547454628967975636286366785009876319742149084906480194800758692088107167621552465927238288677808583508365786591067948528701448059329105785273928137128658068091722844200972616452379929409986565937537858595293051737553593031542213484971911606181205987648739043742123154980603951472861290164831126787356464220279181895995556713331304415956174884268947786114917853184985370810046991095966541326906274292681867925927696837247364369485657534470086201566856345292346352059464415146452950376251651559586680839060297888189369970488128635242089138578867025282694794484831199469865839963672269335499891296383007565062424496539385259841565550924453162697627733317088479688540407385454801032705009983046892482765863947002304101635025759132779391584912359419223275768588032598667240130630281062951118258937796565794399757268196723993069560054130551265574872568342562365512617290733612104761777815649083817478118871615674839817020207693003739846555119556050952223220804213499756537355252770826703596284321449710047765321086328870559040810867723494249893024884973988777219625927270783243177927425864701072218918301043887645099947621230104755255587256768358863904298606653548755361727026378287050493449614305825175897510628217399456952955403304606995957252050283198860279845287637633284697104993020422439410804813550445253056498036725087968889685374004255128345192650248463316281231494778888978194185462092907591946649042891258144925310044182756504235993970712016083520033846302657772814082842816104511985408106863526339085954347549050477659842647494707082315923838349656630789512896735779812638001623086850908062861449685862999175563391753004211148793031151908492714053616891363600241353303565574896619311608683514058776992401404466242267764670644561744832003243407191214019750583972887806149806027296266977698323717723482707526181267472406722801501509268842736350772706157477085931064168127346150994952296116836522233393324583263007838548055579635695026106216952430802524614518121808273253138668857474417784424857425499910211370778255826299546577699957476233746916017126451110120346313180532655366511820910805906540982748411902294260702884007150147571090787128498944769290721496696124694237154373910942456739144125242432488839186464903856790996703493990432564326539066528525621138497883285989534001456927039356906178157618445619277541830395858023441043215607489634421326029561737065784954020472708580806501453543475613287970543630253724884268927680024484139977427584376733760310574384267973698542804522492453829159540165781575625267632705093103913168228837498971974453677376245197038719818013531443383974491124920234338444187054753906552438942147293024689067140138803475253984664046532764334009666938502294740203930634781359077741437663135074422878782798836588047748953216817547748041005615972855219874686717510448816630073075300097298191435673925999720274417388644641250226289899339460991723298430593994951546480314921093610000330701497932328292382240100191380801353801650927585319635968637779862459761531426514047045515086995085869502395012512920139946959613412137445800431204738195112605062890271142699961088910355373084785426403043943510009352321176216594332075962679784208731804087621944077260201982924620593460349743918853227288373650938787102380877266536381959304869513153046722817007156763787313103480100078386405558578207898272162431505838325820303538396872625612714526252529142782689700371946496991146961037949158029515693113143585535160943860532216217714674480266596991384608725598461271235929326682269141595122982806830574585697283044703670511959879137995552523944098649582493996774765271431824385422501215185182806068134360302571774258624384944245611841895942333599693264836501850690767394639558404178928849484448760736889629686508945264591583872419395930525900567258380237065395535845365923708056503939119384341612092348737226453502151440714497157443269843184312603423669624259197069858963459961051616004625846241614897573341255260307837404268620415653834942123980464092773063219597532544024968371254432788821130719487621997911497673483077081795236861640707911583965862025682675662133853073188854024475175433143509943894143750260590754732381368522369068196533731641066537523553224142522027449935226381190537118198698638734321375506964015284745108051977676479329580721394085844507838161295700256207944138108520390550607857633123514044583012601109814249601557029685370988651221810061306502537455611972772418106056959689618714255048324112209377579581231696505860564165134415835680675184691682445537795840569764128132140030155474450234306020404319305695703287278460614379790069906121351127141197057947656717262059409438345141483015791305704128802892756117090310465296006866135569001940630099478206468433523994471443084219368650020165442527376422480356250477056992469503647168929210405883506212861511518571422100308945128224067212303147841299907424106174260531313398836763826109285504992097275775983383620770050643433938790983732864832524672382778360946843059943842424639139103827565119333299596635088624206834474198591519159453339759132635579385979262455255074374688730008732136278345598970082074330639512403694708342856756654074445434387571976045974248220393941253616491781144801813838566265668848057366116388124985276819721082659929128908428094122315729013356764897235643326586662848026326303578991367722735435537042607869103841519740041026303393268556565026537386814637605517680522662095522720686676126045985621768565858617755282678370139118513246152568803421348873343859441785158490257873901441955610299246153235144475001589934126151939092419996612792426797274267218844030260808576246109737603465574457607784233738039474102238692635532776491183171817320863962909572437915625969019341180661639661170361237660129292630670474094700675619597567447428029485832251454040881269707845178604153460696046333200130122050012251303544607837056545430180167791105056339066116969650652546348954029425461671742297854470699913537348976566866700004089892523474750057117665275476799511733063595514472192747357008510842578125024225050961043114886564400716447645068797820248488910854585510451790538724753776794586887826242686866596231732930623399701839442348680814634016217718300015557651008086070335779066254632955469076280233405164179546964081607331294567771136369797207028692321930806536404036480424243893294920997156520411915324551704662233056983458026270824972318368387219584292477889774037106375228837336635186506410196687181260951494088362952970978949372283394712982589895189674547506985104661143014728370743799842459888267503865365836008861268702052686505279541869474301248161987471956683175588598233811007575595877856093332664798024177334907052099151670621961247149733783733470145229368248360197642802660974145348063500955212654510475116537909343306547818186908386009565836781780221666708554058003837524123729025409449664816400294230080381771967829557316467037229100494864556158501737644171807827350219545804693351265590286724557108126284553052971993616847924376683748995647611983256368377959900537668292248660301027557423610178430996682728295057808039688461814334168271418695588603982383256194039794375064595601867617285340314585139043883675108141720506017446822686485981529201662496115236402144282348483586915000983123565497141578820877692084850641265055625986709959243702130852684229670323074490488788295927468317420684968361894009014609490392075979988765902360679410390442025084527703817792963911330371841918739671756363754113282112153233600460020989737364576524925346643013673769214488283435061225322069407790781054645933086643858361117644790707241822198399680185773041711234040878402931473686295514001943660340636884358426512104243218531718556784672606907847028802379679334430005613882109569300915337906071337231747895772317850199659018577970498853406052754825308387212993249199703307384903880310285139019018874567843482650631812932700573645719399406330004078186100174251685933534537095573672549404504920371614606303566487199778144312589685522390284880093291776340090265835703606820230514880913414437245089904634047085454375245117746263675368946628961112957631326869864596151329365996295381737926823256433616586137302071385389538828371546348280036911366605671953980664455227470227386454708547530828728072470295718621007288134712119456071094565022262085448578145801194750170542903941092959199410561449108909567032017419714890031190412377519043729535985604104369504846414498013345449551623380107786936987460669937992114886872937931995231431136224426332605073990858056036584901307608293624548561959720135053181214261901533972818773919353215618194205086540635791153545059267739352481681748207193693574011639051354879739108910744150092149712443656329250022061188312091539316676918797837983475810310696223066727099231830092702902861217129986917337032560735210276899017389165686643223407965745755036804132992326276752768757308604470208492976020637690334912868181254288709851856618861033849595778818647344645954259153578359573250529420213906512858880943281221506844674841577496353694315349806467088363428555152481325179207633925121526279449636337502212210208489870570059349629262941689319198909493304576133270654816147875443615613242680513319519096901183862817394378138184518405338875030622538758840137818197803280888824698111220337252051869745517551444823047874031721016070096746821316371554301971190606861921792503534609479826163499005335379634726558140016696253166222975526720219846126604585757732813621593652209457488716020988379408389974544133560662556897105587610967007272029836554261477379668474354418627368911423337600653685039770392861885468901709224783740108960362297586958268405728685175013083660956817507731014607970460797664119130490058700848420031422601085978722606877876089575929852887075050358860854937788989193460817130814023528675271743801852342279081277152945818091828837420351168183610340885122797528277374300531949006446580652554805568904390182344433851600183394037532201195884930528947575438943727159610466323403505000831340781068200485176731499749161950298859863650806331802172770573330356231272681477817423089480377967971187451617868232040689863581548390843084867524805297898992996853727347244590905367273548719179226313134567500487033209439686680523067986866149643581267409647303711171716177409644746708985490652209377941526332234902289360532661643446580066601381340206585511203361485229747023714479249749930973630597304729143040740683140441657861084411426228605876800823586959526427818167340987128663674467191437263730423891084108269857634604984195460080904173028327876519085691898667710305362682811670008937196588978121075377062095907540737044705541199614629761140907796852323731119561396718949683579069648481862098168461948995948506946969384287019193840843937561386294851344710250567331267394994973366187107688213562663528422007580113219730529370371133144152188090226816164728127540127053056075514984486105562845612849411235783584403330662807950135344889733749852442360094649114961951563109395544010542277389666321128681209170131034086775220327168890266923981532473505982100562520308988110756142799413401058760386003575175788029290692183673331710724335355093327887137976624733673009160235663044728823481963879182228651141023158660937159158786980395144501654350017810729163075795038982803971644295096405171800592849333346903589004459799350295421803433027789036454305420363086834843586912611139137269456984840879292272062056550272603217961211800366413070291951430939277442530182719725475716021450614065688433052527422155386824138051660200837933569626340968802372555435754546757099955833325180301479348399516379136907389256789210766178245285522298340667838413886360666710651852286792579640472129380822986479679889523302263307774467921654828393103535369554394115138622478260210618090236946781351468460186072113429787096180692146481721242539395499661548170299134322492540378410110390123400309645538705249771146843489241169446812337886175235426190339489888201533147654299931491068186892427046472513613070928415290122630127633074439308290470588975045796709140777375451786675030594822794232362759942055253693550935188702766705098220181415463536572032703374565116063682544187558870946308886350964925592941169468331215846008723573489265039918578303868854674997021863245119536233869610615520449606134606693107536544681642789392413941736865183293152489637273469315930190427763282135040082616693723605039565818705662844119943988834937547055928767306421173585338936949698315814722790597591125975877421605858204174538444566689339978142876535112865045193961209998575841692948779683319030759806203832475199521718853114143547292537112115610456661335207061494684130357958853986263218155111819407769989354621964825700300825267392817521328075528698369120007114928521607723192346841225821963438532519350921563472927766112658354146134982447319335811227264266215846041177125010365969378141440376486040081548023635395642858736721054983320814721715950726785251278297662081919993598692534108210117652596016028401388998913714050557537636416803992168006326959235114752739008817861343288024543783926940463196530773812601509650197280673930802979770665934183993383431216772309360140746342044884281755594754008946607015149852922553395147094197177099678732554237182835458195952020285529698974106916788183827618368994808051941296621390454830625934637091373448587998862847262553660018628158439497225608648468964718688642867507654231615449031090586125721155154747188522357145659475643897014645046882254949205647443123780474577164430825280754709139912262046318968414018876808409768181457825782991157185438354895109045574241837948667622225184288064324567673168952412550244642506330103609353842857228925118537288381599173980897488962243192806659398033162108285099371247256458329892347753777055416297289582771803352739571912744690457867329986949072281916765585644311301297780716597446516823027556544133785488185925425701535981584280518116016739851259913294729419917371444251858769132726347435530825802932573723864002896009571556455302109594051972352672046217855371546390003420344839102942752435524174867733155683685181053595691088784568571249161162913347769695085665793806749306022028112807667129573916212150873486390625437148301608962454074590770212123950992026560611043606748626643500582162182319665278267981129941931337077304711314922236690806136271177757874834026136619844973285184993646507665600234905812562419492151722682209205175023106666548237365534742173793031304059041109913210815536529418572391231599600638669045410566790036370879630201088282709025127532692149540601134900839694372936242238006702771583033902902168203987763128777883649992869842215452417597652841967393771109852335239034952704960332996506958429082209930718291877728625498216019298666480784881406105014989057564775399243969816386258053749160987311335683403898825254095208049364973572310868242548790147674009426409785387375954328625939306084567632245821722340367893685048996043671753544782687537072402599727125896764179505521782577785248731654651854819010730664780671563602863746066300372562500665048185685121294599876860215925041397571623559926049417867295010444814793895066011257574115942866783687977819432662132143466790728086265916384608367680699460091291188331615417647358819760283437381958062786664259767791672908547879182694689926543040287110196167839404039303316516839988558322367622187346608442656434277721126557543169328447061488472363727099537188044223350791176161389434288783669466204611627700762091110332121250075465477917762772589522587486906856818743811995909768973761058692763864497475251614054169081981735653847430622471170566184677401105203126943431363549049748684926939514253789871092170955564281584818140123943209868067935176663036002375449566928031464635817352043645639532933829538504591109379025637273322008846243474701598740874928836324426365365905532382174046565660369848312340000716230149087823672933485632595448233790374913192502658714915465440321565155614823019947643798076404188770003151997181337591195081748873361967884158088621404091537988501219071469731532772825266165817818716972858663849722851159325892814122595984263761188277121286576362796549574198703219089267127007915186946900135752646740339125709558225326728727633030212324215762547351675202949353531283165999324965739536441965210456217887840702032041354255001285916010162092986753348394532826096507641297858901563481394073340666650492374879220881377503587284706212093948665369453671518772157088244715654467485302642160162026089956738602789478541318731444325760127521134493411978205441752512003672548641964684866827314639332180936798614484280261539172503166556597024530893293835030970562189742455879018816655043674870462475743038953510235810369897061002954918201473535642656056722234592953507141812986170857927317062555847747219743286710170018755116726200545982226390600689017045212698579364442440418712719243919182209952597902682249097085669352897490611045704479992313990102300447259778407673243590275094416709881377748853006440451043734392680730971049342101241306349587287202302676493467805987292159522599311862001032084485267320413890083083456656165418483015345011878428756433959833013771191860105821321554310147640144922242924612836555747554666200663196410121028882361456568464803191062722052468383556891865962161407350526034993222422885439119849519433988737792534146345928620750754400100387180136087265948048054595586032140600872288245782880971913091541705127043977388338436100818339277802720260657564637749695983985364059506317776172451730428915843446078936903190679128024498807871193520915271672150163971292070261573095400424702123232045965470846798964624388303967144848269909229047551364417557797674707172488241474641451982246055370663116221392503584161842095941182560308738666664485262996384031960368359068049711405307773415890697316552195577324908802142497604878520928702231997630239953866383198642735124110703077548179762475084018665901541452168154192238333039539662153141293574665767336978375947351565489256446198461018618610762354839370341805478247194820726237710200871957190685234118638071061965244133012048205976639673154681232160203924865813670857923977065379865137139894342280921307000193660022135876906078412444823368639948054508537353239072112129109241323278595861798191271900005075756503428735467874845132184030018232246660098117863224500948162594112456127329913968082094472174993200507131299297540223024123045628769339798547315256428427342975720155324458929440602421346231367442851173124537656663777474188135519925301199394407684968542387010393874453536831203782867909410650373098083739049956278320800689439035983769290634095591946049844377782167173250560661187516196107816196094150175724855241426317670369473993704508445704189311586788041925538559915312635551607896067062029583122923675887429049012561279497692444306912399449873233141114237957105810413108862658285294219362473166363265630177357972877666216585993492635230656989708953853169347767581474237841218820700373325287600241398326029712400910807680949363904924611748416528969365182467823119380223890532344287883520952673861117951948659631847626576938637749114588625698604157046934682031629255022639289760944025354836481846348868768602289285745827972706638901774041971387694168434803403408729286498674612084729631985266996984531311765640198256783977235863237884755019442179532466062038294896362749949331881454141826993920467033410023660004786186656174940682405681937626170453386859455339475939688736606895449868212389730643602577372469956276902726361677690057555389928156446410168183101638749949405535766351751694427154298681513833236957616758570727908322976740378029620725599868124745942732454046749609892602449616981186008921751654818752482355446200599386362078182384342039781130790627635201730344473283547671747178941312729648426808061693511720892891024824520613106156223084948781035665609478997291605800959230069024622459092172246259488901669092567292394799206369946920828389336695691860256964173689397282063708498546265750248654407204430955771995271784368152202882019961558406911998318413196793265467964334993401254231556377932805841586550919478079378408978763915963034965613621870847097459612280315668543259371271705688466402326249200057780327317526552582663508858280592337954612477514226046092040478839663442722024966669553125132208195081730513276890933776734556111949729790738280395360466442072194620480525742698982819547091535549717742468058125427198655817543408082652257828642930717075669973188189649404196683830962575112370187556285894778890749727608099493682816763901703102055680861836662834983060692559122349368280306550635071360692934757839034267940708742623549019359505134195631326477650854685924329225450443881373454489662161008059478348154883376653284921748570959871959077656728385866260362991945968879531447533659677634408466041447459073391472589054161022190654516292788282707284146047862180476569022552200894187565676754449748708263250743937533403254581883722663759841587513391567281713391483187013077298787646736665097755695586444149994277382546819332217634714326564721473539022866798344023086663502026520843415115073661481134946313521628063270002470570302605866780894820455173841094953858438642000051949334012653651255869588203921236037444991569900369020605005457588854910216178598241275422564300882545989938452666467078661575590238159426261359628178041575145471488272844542958026125798937111912707522653393593552142265523375820676315192245616150320638943272490840759695200674312681399850404380784981964988681322808222205226101250575566517055627681671836309201046330660213701850267194159956065963116638991417486061066213323286734702028278460180530693634435125099854723944735483748412150952598003173542425664929401886767765000670618479610849653641085407968114033129624797472715966284769675507932213648330176493747787566661683639519585511929223637336660639871783431561039343867694542819552896331580190194979411465059780974616879270775756355670309659253525338592790248323599198874761291386593179299573170572676941053426981230003603570127299573720007146000679357943151164388713345907574130698424172251038689430739133929971445685974932133260015805440477624548240594745266875276984906239609713947583010035179434993520448055315009083186769673299780882291486474557261375347136053183624495837893581738360957401354077300076001011642945087090643457830794049587934241260851384123839647135898869792625953215535041141611641154055638112576667061398128297675793465473707086437526381037317894207082445336406202041151026043413079714068636929023935833862419618261239403844733137774519288429340094778713110736488336324834693834184113745580509705159349253254166513694681645766186653989182193109432428342168800631669122771945948980279482711319125379849239405800991852045855768746176192968917553394053425523086192444682800429284812546554287780677199179993013501495040247387758572647313146010851995000237279470134695777619397455425648212648797178634623724277781759488232341908623616130494496603136305075917479771787453990096603770957281417129096216335071799344463126259581976895576692290269755630685475799909287032797576924426356742452536862308842885054506971018929940388771703890671767609249704079081679959309152837780321802693817386695366657783731439033726384751692749516677249313389983433170141222935114221648956633489911736189572750204605158979826440508079476486430426386016423879022664788942491819953730148345205346019616795920158087354885100992144077672983708230238636747515634700542880929554475387857075629689757967075888461479976673865108200091454262169502764749755402039686954599891318725839676032147157365116528836183664205596819801338938545027849294600635287399756536188099777668134877783526361097175250359197707816897449799628650347269801898309544883522359203949744596447620008517202680633596317148218270093898949338320764714187355762582079578851747223810961180041393974806321453248333200857354174898357547370743002849853016073579141754128012631935784564185991852757454071501873436766641142699865136778441824545005520261474217984515035451295840665134567145713959942049807767431101869663437912107107353544296408166359626245046661846140508093570211099052441728544427169101725365721318366241484929445532155371056221180403049157680907782826414530838320511031608941313717550129554345795246672988638712501912972068688433233697781631250994239557362095456976689828417362476423410539832698913990056365902719586460003044049566206639043220556076100977949907085551358675835883702500821841997312607502754176778295844708681286922520451013837168743545024006709862150348608679751363856742869219524861330883562655283628751688976946325084687352740211550846975224033444072457263675034352253744514804270004657340487485376857955795219153797923497096555863102815049497816691378912363883113023351473513960302558399086676585803439906434848925808136604695722612771353182950889398422098762026947613079150276618036703865494851252405851495893995876760812900928062419473847172636043751194693486681181014184118770142969456432505739449621870020330071877150832476341146235491419590415361725970407166430591263659116745297974138877281362633725267797025568963498612201073476935949214224491368775587349396327743708070902064530935758447667183693701567747604056706515770976420335626313868298059134774710719932190592618729769849080003011821893637030342204425365626749587688971391338172925530115548011584888536765153295120357468458539449141577158673649762422766681341671008400207500284355252023164684803647356688315241608667134903102637864024893604713544217136490871463583275090314377375271504263043499525084272813840336005318712174005653075740423783952406491958351499623980053504856619516435682884517757350122608013923556522524988051767360230336751433753775050255779858836723347193175972704817910605409487224018837091879063173072512200829937046183824497008483795663003504022892542680040942671867768018321308162785880251627263995855191817690082008068338705269936950066823575431008930854392585491534078571203956598659601399701569540155574176272098556630426665498211074022878450325499959536005314831932939058041752928517094089055776072306482072066660343111116146022779963203953826279358790941611275691170579791627839802743807244105757113234027161706233048190962947544567936466570811762892819189188311720912318660283748244764743568241620217424254158082515259654079900367537228923120233456733385554852072699003862605159940819886791093323913385147983626266688670632974878463873793194925299498752746580715599724231486533639535699517474440721261896975162511419939690360356011964833721497647409884292534650827988468610337386807747064780200967155528052655801165329226495767454916566559414935781347535176888176571891451025019693817687453555987732869732153665207253495141536690647694481452769464262585043413310004529906729773822018903085233567448819265623984921783167224690849538282539662519315628784099280683073869610068242828222270372442810577855318623470874280323513125155907841955870792619298015574988858483713929567731844400050828365023987090946836151379765522243531871459107794851306654112163438330546682154740613596621873037966722968709412657041102445353215360672155875846051887587076544492772850288683653699154303150947694188669441584588759148659601247177444819909185583884836361412217726658174387734555363066621476449657218808267974653891230852004954191105179022310087225954156622303062421411020945709623161994911979382837206566561260890511336582914971918749278377806970448871820227363695127398223133704214280987015976999196051481020159667258299155477562324402904006473890906277497454634400490593414028673637413878362136005803023030174912760246016552132058956480124003280254311253419397633493541737110822487495941681220167783622460944545613069368530049243496130877402301086934045195702482872029470789042267521715422227537546523195252269838149019237905745304329116643707766489012262481646521272289463176319951838841837242737773793100854005357302880717148915873187742764737747953000033018638332163521802476192553466274088248271064300698632796891083328580148623257762260843045117958607470518077802923493111275583597807081700094001636124689606589117623394871830183094698310633255222169050409129663800831823251478220345541587251423745739791839224575351208940753649247806060229788240100920641380876891826505416168658327220150134603464405763311924322995075697742164083705806422253362057131758459496130797016890449513364754740773451304797813065824773830945616114512109243435435231591404684210281708681491115060185265003170433141844094367389501760129267400596784174214426057701967211105020001414734941860370649315695430439724551113616421254614958937505447608323026988049021475607442388064146422907258673575525448844995022900834069196837755417118360849787456854010428815676984861536499819659309471475827339378963360114026276884964188043501667075168895574838271493043650502233486281789166183716844438540800332712518668486539262405799024972066577962680633907667280352858377974340183491527348778320436102697749319426787685918128586868976108136715863062927404011352549961880776454010858909128400437610591211011590580618710279054961967159022474010002770150004449953414402156323432207009502796340209188124306264597869671951567487912814330593121481607100439783813255192552011486973579063558530109097938437116998274528826832467667749587976592309837943193024311707376005374615677117958744893367955739715466338841975417450668254832889159574976843870807217677943998462728480995306507620577297895846167340865369508753885800446848176304131301898077864037204369389723770949780610375900805415516886211385652992572306905978283134519034227898680279976375947043550209421884709844809086780897399184718553522311294225539515426737026991202013912498977769224999409888899882387609782981059688375644617759210477921970439310672588792588123548866308121784545020356629638808326077233379606498452091887787978629494228010562297587855629115666066151340149318379600907306392618509868694037691185594212549433861719917593224159079183901675346817998318118928325826320918387498401344687763190772268483514182231952643992695928074925648631627757956111814165500044663993338700239330092323724246133235303815480327839424669384370115800786407295794184444819824815446672376909544327417722252630978776103702355433742015791472529034875982749596192672237093721484058723137880503340443598532368473179038147439121011850596589144154049863563350382718105226280336563013652867024099228221562760434242615786255204880564731757482845991780240844167669721116420084352532234927564227525200562929642632474771317755905857368908879769280331597333813322958995717531747610487010271451431488571583092605212526499759245695060569569086774304930656764142931297448266323878225884817127762832409782862221948393080271931976380588701568985878428888888880750912090936054625749911127322002055693296623354019311032472141268276062644457794305501744719751702181009138208169592961260764375616830638819680366131761415291429538296832517744273945618137494303452631161194652175963621298653471427785339391089041086090927568718248972972867823031662003238112102219679666039916532442161144430716541198089008735775542782134753963971470023753950197908793695602956097071443643073619265324627805979374299751584118068327491957449763166729056905061384551048183453822498063137758596397873007460955113513059960034701490718909720139517201710169158201577515093557179535484006025540413532428438822919159308947112848712279910875101246335778207044396122781472398640869398151618576564038474830045881191016079436875483284805397089145147533685728935487308118774021525177782103007071857243518500867321445810925102009963002924670950472873555531295494123329834299275429429725973533589006821241063153050156845164965896706871616148242338277737043029845968433082036752995270962144988872842754931631626615133262019997681672500674556320339649614598081421125387454740686464302974089526498565420467576161206325371879126553442703545546413751235048020160571380933024393176438700394602083392321948948780744748014739655633416707170468119077112244033886323401514780699469016510864314188012296037884194618236168126018433387268870148754247625352069034747007324873989337590296560276986944793234759208845827400399098949934976855737360212662523473549147135180005305753501623719478632005115556856289994976310431898285889710228593047467266080144362218245494256428490576990582197540678088990679536408886145636651553782494704981166507703030952886706639418182673968798733441244244842749405558332071028069472620492781797011149606003688757365712368413977555319335318527639445738430901385398979274185504844007642061978844661067908317518401776200392816357780514945271635755556264109238182973123694911033553336218796293385386689665492160929003471605349747392013383738595780521600046758138069993238842658591347684808128132351836403488978578322542522926525084866649153461643427389795995580919687324168022335323304180745175405081088988675093909141386452615941797449284866697996149604693182944957581843508849723841550245212638432642315795925990640708994988223346820457535105276822832934048518753622406466687800553884413325603901797297090840595690013559148441305043236518598725553042786112428796453470464482033009140043409865769101575153020565075427166676053644091721793819019642472811498570283955625672861688315901911911233424675753218175143340536212186132491905305262848732344271022792455801024728447027681051423238143076590813242115540600783701181601657639420052242336660131392217108654806617070717049912033375718943684124671554395527116445370345663801673332790665957271112372412295252621965875860175452478517458577009509538822659779436942033688464722807991009758100406672753311458700085264564789531415519034391366632434826195316533376719669586726122909967004437749138831974671408870559381371000619511101792483323108038471273365798379467707800217257445397484278796021881491926399226094401219690326212828504972928660325008359198593449065034557924052416365943882025016585706473958195738670942543418266495623506730167220831330567085999746224011654614911666871775530828727801047990457608675055017562213616090295032182820723875902005689356734505832698976788509342316126158516066221262964841019005080587946110161836670491164511589726252519399477352666007745206338301705790224718587827105629776541647333059627400862964005362596062904647891113220456449807868085124951264461056911006856328637839873466466480858177332062090120240261943864595159124744051550397215254352875231146145155828049126320517593852978908384131121526317839066374551524277362054637446609995270722281852308750663326626891854396811713389474074218422365886802747996833150560190362929019971464584707469142264630811451195908328890210010869194143939176450398441999668257820047564742357639866749232546541039094686993244182361042771657706927669811838586615220196138737259911734562960750674861882760745820514527868372497659166135678383327808300141280563760383001139425523097091066594682949981758333955552378828957526967810299521443117237283978908688188118648468417633317632082241003602489455808556498905015782919530327566601912817192843738241777253046044003751705156729717697668507097588681167644133954380882087747378185308959576477311236137910336985810693353756066926088592270116058711330069407373924330676205480260364455815858528510320448633302214635436509146957052227745319954991835463604574328794590528761490212273985580643406642699969518321835115478290152868986390017546612917750569686207988430036303724934031983801040176428208513259049208882152501269611052881733389993287697880025011273052215150758743355699031944769920584319442384246990158232039609955558986641455688013273872013854419213449736387239889951407381171820499259120132689537583778618159866599446772363116721687933087636749869529421912813336233227868688210760464936279578425693964643185364200073879453883430646949309398323868051119478583032455163927998360073888998182680864539983337619184495631410019858146444937177237196207660064194785524568167448859212571409519831014732396595386355783719504829154581854055665990683243823270715366319674994010584653460910856985230872260643818386994035171841564431226093409538066193132497216265993700933757903737856175576887311801701566540315430094424789882775087916673741646908986610328854817978843994789236128773412453130873767890690267778425807864840827723371136981525846348969071907781238571984923452119655383435051567541654356462758058479312917993909569490302550782126702253442238295180064311287567670717287780342564978779849822363775776235279306020156957099639325953623068907646248236880598331701675805541907794436135531501366964155807781381804722754205651315590908370296629043011210679504004513991992811616288701764115723282646624602119707445982517291866608845744642336263745317253352262982735425933555560578327241195469796856338098630573156450011825749200720203120410636475852280271715496750649007264045875502106958669000502544821620754838463575841776424292516517692315411132439501173082097433634214405782139688792812218252865665336526417781982635852535011921419056473972082655219608456681413492826994999087193546075392564190228059180885882822210523934275815327251102475341130341096218004424769760451036242949251781854350039352317372322915984363316726541227986918814709824332506532103581395070464430638964950937466884790255096072792665040064551285698804525153854394190190474241740198647125634612168586266113109637804576827783030682467283250160835808894224958344098037028611889112010945198114841163211954059549751197304405976192248962179621118177742585175372270363507290705257556041365739776601945733620564550684892308711541597574626271281058548838629469199936153089413370228457588468778046241567052317005891669752162884725027565188211409170424739715951345410266770408522052274475550919076763440502639362518082244308535481779480125621963241423435265770590270734597561640136162828750804286243319876211044679957295185578527861186987753311386221686186331192770297042216569386126905052696831166622132920984093327764155883901990174824373128186957270378166816745328645351107363395651809813037037177288507913232443339386878095719058147940869127435524049007566666139653902219874290360014121468105883534722982034651151173836550074354061358842616925674155000238200768366455624746956960452387860971532124058196835871221704195195698251776466001078503630547034864289709916716051296351221514592297681555346136490029391187733571388634943566859893474053492710703474772592810696253308973826871018071828425434300270209090398611111836771078033979764195117637865885337189897891289120117157267881746322915401501073165916297390579505692367940250360630888016525812077507168705462321224247680672331419572690240784599776540960201837932042486685789195343545539319729999473346894463358745928212569586215003611008977915236977587320286414122109140366840998738382839727608563821496514581184004311103801968186074907229519762966551525873826718011747509362462667945637568258224383569781342631316900354963110935019670883938970086821858438112378730197326805289053465058841085228969889671050250943701048079810472008553098550854570967181249949626161247861311068393017975793403949041502008221383480096645218795333821399944187928992355517112863975426288771280737282527199921806926550840335523677820646590077522798198791764886496343291527893068037076436265309379938843839024413028849517009661210420056067757472042385472620007340498322980914790457749578801591865161366037981290355798324685095382534727482347578261020285004620113488577570146257296312173319947031274579549915473601723444854522215807493600401211338308158352440303598608969156818962029495616553148887070042796775621168757480105270073995844796700461355046391084661894248963809920234140260179351428423473930522853510708665613646423807727749486989920862323517816081895450536112391822553478208510096907700899994375017535187889763465612649608673983150673531800079752615007120085113544582986735837267592699786950619355079509217968060553167104345844205702636604988012241485661432079850068078014929712577887374975780107097538764207823495832541634186653087888054192279555607699766428481615489817343917066945610081646703317904740749529574791144749993439694942038053770647007743953340315018126035271251559412519843526634359223390952015926664012425589277401728860225278551499940830348070159978783922856882650996087544245976057870554807593849802263578796279248357762078260640134340491701127058021785829193362940172143470359298992668505867339202486359262951602171826058164183541818066640501885632963906743037916055218686079728481888659270817085477673462755419425614424365017411044922541384957006764253651268580334437845211930957308425255945655036128699227430729034645222387252847293424342470204369935910373093047498116095172855201552476030565068026165934160516969940917699648279054456064466031950713047787855011980994554608054003342564440333816058289560983444558261681620799104187705465475351285960493149265908690023968018386895744840257411261547384387884787428390585364397763032456046041335448461796271101649359257314646419005877674637697079502916435862849515536845685306346732439197406864902391477924280106557536707266890626073962127410712537669364645877984658098601346544784036197075916638805792557482342910896101584891606457781094760159984430150356217276948247135384066759241073100068743440071960932786662862214794313553439002893629543476477766721999950661938951585606387381744926558740330138976637620975157581169225881072687455822082728437609552446127601773201214712328405467013430746463662012191133437041939193263548055865155940004432548572117176732274450881185281934612060284154852810863017731398315427841496483208006161698229672219332486497901054614984842617576613734877673497577523375772496924759972206566180477291010529693320851501718659755410186277828781848388829972208994562232802108718641123257464724202113097053782255096996013712895751446441566282906616103121496539930655350480744599988537551452074185204345579351931374479306908250525234063862573571396151735965243086218420491249229505945245898635954516358088530140439944732731696750416046629607188108239034882707936025750900747703701467656120979975544683200750223129385858481561187536450657793787942784750908668617212114397808511978649639292568565396858199365046465947076308437818392024822843816808990648405559190295429600249396910094978669075943800072315248962639496855403148777043788973332024487428182291025966065977426050246552618842963811884608848393501511527713786303014529407309443969799285343352059051297961608159288965872642005098151904694137073805831903577950438764382798418892407937493718855466912947080890479687584206034921273783143453833668081157718591754108866581587070025406855566072166022918369098584393990005098889383043863665317107437071724207302312052675671483748340980128857420630558068310415897706300227830403287926516945663552845763351538290305499181981421922236053231037077953731669781180935412713001371077572155783198005918126839419262590031931239897740199948991413720205535223702605399252685073800864580579172758254215740181947900079004597748618551068284523051794013552568695289630795889007508074217326205628616482288959059375595921567871231372931432901660781633327165784218731710089675934040138067634329068968324057620347392874005741526876781694394646156192806494338384033443752936920324942349480580910313834511944654310694064093173442459320659966451321875782454778281578146304925574754844798147718032257823221062862646265518705240935050412876080771838827691652681256738019220277856007774234728996504670923475332647790311293665310840707139255639013369071441149927566406512828133093803912937744813167899119438986074310739093381620619442201481358001003058899541401446682871306671502047547853229909788412449948264179675384988495976917563110074605050657923990031261508763381146182700559121278291878179637923582807921171276068794927815037307244082463913181028096756263189461941612763850689651295451888168305865958505543717052808881781434938631572479711750227710160137078168379164653962052515938051904431829068915596543930754572211187348229252313748397116285495409089920551589161494428213500682803696368032521044476799446165555919670418910815178943036894661237403839597767089999538632455028218810388042678524458395635128807780936605361993143249367634231699680320433576261314851106444550557647822270465257474589902480831997642219990417556268109694692127218993036651216296388131875489650703918865039858446864463165364437228990030051415992102768084212847554919329658462439664185205013331663852747273050233930896480039395616866399012751483803169396533661119343733420141119140371500378783709046251379887413476880804256722810043091986381056164561221247252998800384666153553897975467810512356199945512918004738009882503928897061903569158264062229166950531271707558554756666788201147667162858237056617089470265690001439907489910485130747096222468644574040126635287837814888407654123980183520592481434403541602808354317280308547321243783196000740078206302720547053218395825186936193847646016781610371310762690913748393737120606154673149556950714148491845201943942970958927096065741669243574979690439249755057387655056433694816741918648224537341857268124794456690907037692997732519095615664189002677828784029587470894930311152761534264310812935491221627779927950816096388761302290026484813009694702980725679504762789137789082206469823776979037064978419138790542809011257409920900474586762282102820760530986550729627967097606597264599705554257562046661959065602140565267463157629366428788116688919407195301630062814533094597892015503434235869279111775578867381563006080517139948568901181083859850903038769903664451199994713532912467877282575297291999042902964196407936306884164171055226537121482633670642372630545213450665277495285402693706549463364965795301846443431957523475370028188276934090223408803574331095191398512060553395377865966108832865493145325201578146980724342585095575210569936389540364748964883142860442332960600462717461927869459530854556990479269090407357295883385703904087946971543620451442474092732780669348522328941339182349642091686239235363129980044306665516889401479930864368651929897468067099528404321369170201844531329738216349929576377786196714996062801042360949567979300081095969973481811450223172559331479972596039555777500044893564043313569785695116043462610421947622298129692606999208561078399527604785072817188998088384227718972174396181231195143694338830257146104747424893451401411410095542263173679242364651969855332059628682757698078161717347445414652899686544392263694100567825106405873620561972801185834818849449603385655892492285456993707044575834434623096980713969716802725643040042275596947588870261038676784017224656670899601892610683932463453356822661466725439205735755105949954232718616865910999559635366569939424844182935337467564646806033737414479470370060460802256778478120452411192026536394042000215443703280518719498236181449780112266273347650393141470482700264669369580887563962197375723671571126530401960014356930512516333748744799527981818758462661173656058902213837336007723138163776975770039989795485371444392960139784826283695575083582056269933136293168009061216752988968306986347689936330161066610446904838151132018829126044452695318533229552045828868178636254737775574699538692876208901571570760492690119742406825578746964423593974511285336258791790881614507010345873314462896405987232944690140317612758276709469119019721252775694406736391139730689454362062232626309980544492787277255029469096541273182106818060002787440495221294462114778588185450301645261646972050684771541188059647696239444803219555837561647875036721728405034940087133198232577392025361087680800063997837976410500853425092442850282196742261091460535513688881507639960169550167940368555305626887396063862685670300747064304957369125558616856894883259430901813931931265876606468975343862144889286681321761962393910506884512205129096230155116811484803073342286135325690378124336416548978306137904116076243824811539769541510906153198410550494160443849087695146091333946175256859968423820020574291839561604360145565403899511764770525364675585065757618809926282657407265545932973947497733910047585467469417379176771619495316605146637451330585403183998400499642854864246536249137061756214038315411746724840520669265358765414502178491631974069885700551869611132541666034766328743268212888177766166010704958085171890405702776808607011598549489983708388878325637912112359534669519698743152159357759415421468763820317825976813597881549781202735353028326966204720148177651362936982622926011627295667678461336329918242600467386902299345633698340011277866325239583579314148074285763081976655903305978101982656967603873367421995847175127432214560155149196323142702272760711720569141274911489124548434216835121131337239551159174131199387206024789202422195185840016613575340675642282622754323637300467864801443890844311805802378798902323046651251677648367158918990003717615724204582539411270343401345902797394948138496810313324841747290437096389226208834702592002027470553364692674826715672473202483614506177223503295697082258818210099277022050898128954764532260001264828142623066059933935243202755307845142276945364372225905229705238538720225612816856529845284548853696361489755268971344496427984892560040756357973332537933697543183995631783664209360978594117345105932264735625040768958338712860837506483239477733461226266433184595591348936365774461831699317632050043466624356928522822398629513749398573249470105789603393218823840992002322445063822286774580063300193967073982144238956704997990386918786689644117989710612311344258351792274287960260966248901480144603367876999413864952428534523448539670165349839751001271859591548243025254142851648156216705580898838734747737501442203602491258217291043969420724770951493299788097594590786394522561373578687034811027054195279029322483052533561120960064954139191808389196068735925980498295672705475589887638063392936372952269142309543868746559939106437031104446469261640403592096681916135168504619566940787228133803169004208208936599235015413683053111362588292452660927755810178074448250362078211110291925016481964302950248898671136533835862600028830045040572224724214553581897023981105048829275337207381977018847677791130551587172079909859866599929549269772646404606297864281017565098597171938055521384900175469293725845905605647941033011326480740482745054365406128611930976291383994329004073670900989679273360966019471437238286310673976171170843308041860368990221166158917205001363055656872832533148053707098298919315841157269963751771685830698914900528098486654927731284160357342493376300943951728367656427681853026636219389696836130807443101316362345147593429502619280330569445055165997747808618841337549782246726527301782942444809296525060316389917527784533415401841277313878086794262516279530059054642515730120997515866080462192917441826831938314742108565981727826157730369204886461285424285490354114715006959449536944967917040219475565054185716799346986747774594953366373636353356264605957106529102617551681010334012977794610413662406619166513759571907370366446530084946106904416340176657822457433941341247868373876591352248895415540893241286674410531358401284577402036035746289409539202295895558999720904678399618892803230506219725747038680481301816781120916607285457327378124031237087267802609009380450559704434449461942422456301830766035362838577700574248047687523508751292849825682921860180359636121967508499013039527113991955572657627186327497732907119384424732536719843881177112608183899362369216917085728178128147975205661739672877128604251570053204498655505446471432786311947105061694355975884806745227641762413583297039499284722883521978199179054400888681919261328091694621109979073570613066252405305684745111594598946738609152966039736574956697661903306926507801800012944826340674472260203447426279478542782802941036317848011668418869966401915322387102206898305695149653708794335933669328168213763753730763942662304699494793826859190735585812842621321711230873999374502362054613483114884771234761467989867693770728329031095456627851784128394904049073235039070632850524408836133986615914996774398695429157955085371484414247708225990781767616880247392800159189607369831447284548830303420411795973289870039776729229771761196914567657647469934843843711311426573905091240644843958325723676133764353138848585864148518962538853668935764771572144107698676344048426134251740390211317537232807705311709484546084168953325453468307444519521947787588007765898610087244790798590556045513467553592176667628909900018353562705477936507987637394778169575456784791250121819215147852934129093485782180077437929660250762285860862863316427347775973205479283966343449503565967259856776358172542806883527286252463321247204277078560308096611785921503492471592328074674398689710030986659356876044975173271624313047848210842950785168152599780384145393615162604272357540425961504231801874787814694830979748410129492027185217404753151783271640876494611622667241469359032269795864451674164708972039874255596989484903395709305893609462149187574879723787092637104904327430516664410256297641646480674740976121738240780342013340494129130031137005699534309582153095043353633018121565868346329557541044807103685256582329898277845719949288534900192388235617396209611813031600470240155603228674497131830187724876237437919257731691282993186723512992368444058258699846352905236080247211869828703871737624398490478457584932686067964530309023729349062599653102289796876124933347961643140242970821878443792888123805754175858171585113857459680809443593132309616631638030219703434564798627619348735768065674505958122972183129888208879207791035373169680753357690192085689443785194090849688155653511956885306926828516213818786894413003098957838476796006452456770543230833282201571923514137097201789876959386706950270581470464836409014361451869469860293203792611557741180937599361173157910192643022521957636485882491917894345083874651207761168557001381882422465945805567829583223338624521932104050132980752315249926742879164497174039318419263594894898646653054774637691664059618673561502507160974269360166384025486801802374397841744999248108137828762309548187609208005105657625422304779973267579384672512675826051840772639859131236621151916730998899274001877482653445186311145518482046160583625286712912671553317711995735309842168360781676745123621975969796314316378703243071003680023206610169602684492409560626755876568104776127488849352025440644455980346389296172058522607604121673916624623885899671543669529804190005925337219210684819082833573236260219336073840854617594163306639589655740307702224480492856952016644493911626238770561195039020615905175953787527627677187475595015874718657308766520285575919940430683429872062718144746198466344868079900629899256241920878802621428797819672189316412692076738266115988500839036222019840299525442940536667226657329198033321120931573115653895170151827497132587449469829280189131891732597724081714916958415517189629504262117066360210275517050122456876822115708499500668659458079557220554833421030070265874334726810387749546070255069428480057998808608099591570272442585230938184183209186905331636689424505403889677646934147292578252045417173966569989985074237221346685570557888122843807093188418132763679148886894103967449861011090664718557674318470350926972237556713819820953330094656573220881846269432696464714462614757342923649785916381621598777882530874360034062291719301379358129404688287245816673784921029972404225056426975226857487812462674298600997231889296809112412042719727491195285556226836749204757304205086286864940421012945597137675781031853647957243475877884219579796339289578747102593537901351741657748333971679731259169235537416748312979938679239353840217227287134359317692256917843809656470377690659161012091018514930057286533279275476410190732325038323432426787111490919931082845033863346896663169813919368707011535505271571092947458663795499640946391511241511884019388962782209436368406145963888197056943303896979614922774019414179383586223358884234390572378805159513810793352928827693402879361232176897098998895389662972760278134078400569274529825823648726485706887049829391465682097820220753440332440358895011295758580960091828387458421812894700956816601728071669009900938741246332649384893306660334877767706463165228972564537646832572520241022340476352585638131224302319756369080970382026509092410492016233736610101857256656375003165970579649386215853893064818348169550709765903590677459837688250870535137574007606951297005766418429374025136439237731790993904655243845802619517420276950554941777218481266088032315762208056050585103112940274010099833605784160155117622976702058285083539578349659425244605652353569623320658918946856908008852396546664720245967896482731155854173984705975355204469311890848077938007247750240736810636067779744622541105921621349165204668831593278511374412959120439817007281547276553692353263852821861667061344007140086752710322002528059713195247313051333312380859639198869827434636400867034163150651334818250317094034475860923660586340012142407633336772803993710073002519245111357093049784191293584499813813729999832727298701124012124668223861758961682304931325799798279411162243680438540742865132482084138040629793202274448743585867443098966456346895980500447317779907209699517136290843975895807440455582432354791434142345158252276146088131767957885551221896446852950690572623986440504002908285874898839124231599904477611999218436254998177667152260523507306292396159894256476741333216995287116506693391391067579955766092317492814735122341565776404881058844011980563720919736906673072746643386999939297582220878338358591816385861195382517183322433969083582160034144589949091403722728496619173297323746573829418141477392845753867748145065790682163417710312941075660474711327432388031897460760699017407629321269692514501505873398350181601157290251557028229530780876830098641031718462583160397542587629048932636706686469215850072461408706982201363115939569601140260117719293753746147492467611448069288035466982313756866922353541429210173858888873395006289939537516488787635296472724692321355630921330522975602480832488380871690577782316899064018485490753033016796106008534385084593514533586332225250161294826017740393334369875505816360714460432839554432923791032967639756411083831205495561324947122836879087552666107611613719670832300555853471943978926259218054761367534486787981078616084696378691732112842369487666181197272814276969791199808394399786034159963707059658667066742587118026541184724720808408598676312301172339495845114874561039612488929173203725709165603602523075116075331529825018416568580578544128608154263008797279424080687140487035197026561330532317731370625759674955459599963974846853639786386871867447180280080152906355234085893590881558822051887406099299885546963142796377253242904732324219043800720907984038636502551491724868230280564719265984412528545222579805954263463384546070520892910003232638846812325129189659239259054343868216805357344388292381180493961831880540354142600426947559377324756291132654252658266412891223895813852061344036227422582933968727453215055214085355320316263565118032290541405692744878806182832145024606404293036121547324397826241488558490405989993027712001478274318092910306264704384370866256883623202628851559375326404537888999271972238737144592801903453708469623515924986708938069166458433775153255695923534950648162302281507776951180123736342346102723118690027942839512208345060958218038358580066233061446306110825185067556390300600775174393461364495893352339344638597529707074844677623504370529565360898657166500877358331703565016155063548679640112088775392278323970317615179251745514351556921524052251687368041179805567667510025013147135763927040225954569847107286219877661949761266095409949440650266783523464385330719229325630540422137937091077325418616911981571390490069084767135961265528668391740552107426729443749493665193241661781257984273316595102102708962553327767548166589425131972385453197024115416673023582210665307940613313221296049259245030110783144323834912776549853257246850502820603256725271161937463599015736849686803997399177178509115983308126460117295718974659481500862345242134479556232558822570097956518967326208740194491032190033092243320453122629032237423910208807115679477454025909961882966480503695425075136411154225018726174483925981151632654584913243906836390167942268497127927426272893555195399636392412794711650964395279854239988513044501937608714998197940407438347324042009354017137180675111887906630086375762929466458279935850633585488094576869336628442648261960040136196850264293142718603025947649686311627782239762295000882925868008253569173632097429129684276620117115040178176411039865936900674558446246449316875737863221218290387226964400455226492930872446793823116357694748349386956994623106908881144899275496445158710154563022606259956062031375492944129270297050232192567958738332720513284013982916463647296814275665686372181804290742107650977925969186915028978813836836068201825956758186715623087475863573884950464667963333218490063505343045713673118460419379583926495341686931767696813140725847309805966073275478549650804848652537659510466202746845930885196518258502898250998081646807445566386594145164734586627045243573371370440966689358338876088894064921175335250064864363915969128058446520356038886341863576581209011737462668585116757015883317966450326205128724272032237504018847189913383094768794676706129610540561520072693164260599721781995229849404826946317100221841664905964478780068351264913265690086820658003688264110668405841183480927254056532751124240532653922777745826168870644232590205352455748220133843554107915431168407700362164670973758927274079629922197622765521547318329751845200791503455905268474864500816904840253380418856937052382270032974009552820481708730461299701342187899574458250489275329482250301964550536415756841898704708545847232769916147405445596096723360073103559377207421465516024395568775250670921317519907892151037071910185707483382864992269299728204332387869137385263996729810335823964327288344601088899158092740742318766941235704636133643627617395527212826992191077480331250529004755591083371084707860234742416142357684625478229041498204968704631038880953640196337933048891959386797063085722788922048969392848467330497515340749433097268634603779028990226425894361563914766012908721419913012708236479214004564788439572482607524005610275153879250481664222483060945531453879696448635755434985463623901100408816923717165715141358220798427911065191234274855850415466233185710197103704321312200273695644107585547903213568184002798994457687141796908046344312038295667925031151717391298986263050142221323569840936817366563553429566390892359884118864441419012551815096087530183863357656107508357714222513458225611081728229582534705457301169834254921844004552998178648495089717087637184943036910278073907960863140751224511063113041424520226615071096733407820585040757484461104049902018980335615610053882279314042549195954468245493323854411445498865302634802106028355517884155735891440832842667473252346929627527640173473912817236201260248594616264023673628429490490323258397659789559195848377127815016297736770263846329375390517433676478052520098230434572140409899783012038218191705892227483684295346111504011045723714437662063233417956160081274437208095332068578185019317978831609311405292749013834012999578238713825721625859302267242136434059292034967266491660555610729323536953846061393881173436143243425775214567524962814131678767328512993210161014743035229586855612144304610489104679637990162752328400570096668252850572310371230100088187503439946399364594219640111633857598438130088484729436935280676955148418954992998365998480311438124893544295444911081660136654742440405629895996749869717151667733076450089451456112390916475044956898162823342874993597812728205849791408818482379083260239268026587564569487459876564779706371766871110644853762269424583272334551754857188820210201556856843839107029261036408096345925944837126279478401733584171645887013049113246388308198581196330027682577283242332535026404795711626434767897754144392629344052857639400382004467140250809442183121929205534947872015775135639037012234862411140466177465749117577315430568657914953187894239371889932511722564143709311547382039291605741532182365881036610439864331092799573714291936836675299952436343762953510758220153314442609569171622468074982451229542204503346168006616819510563133874961192274178092817564695407816376316398940679454782681477948991974022577528903171802862836715992585411921991660434844749340276722545991979075615110464051081773077979364847145688395931984459450301215758859154510928273029956737004976346990404361981003891475530878383796326162990936360828043882953781185236970793699076784113638524563592524875078614112652766276320429599052012004376472297536834171909851143634826427610844630174342803789852762536769721802447514639223812479592786310570815373538599735539358044651699015942027983867208367219259603918745659116583186145500565159120609527064135485647150758250197774008322853986220783613918466603531519047268461480259143096314247155376953579732354068820135954032645117465753886792095897052988323298675352991661748805011355428618478310959925723216870481786773257437823397233549685098939623661792688414807415890557858882383308473453270564943133520552907628352924167172347474787342347645386213306907636715485732933496307691592261603365664368243620842029168121573982993615582263912864730159649852955216513811371891920366011255708830100662873002484085246088862305753630368182184160786551470740887598569222186762639760153518940091053530696215172754176966926919537680698101887736173098669332449107758068316855879784822621102304305991237563616869258996067139477603994374953652326878569121655915192488468312327568457948808243532168192886183400448312575939902953260677142476339901816896832726854022842960730912139154014778305129781827854913406451705919721997969367042194115810173048996539941450187076577482266013884442542736991564661904924725384014930445795045367778853929735140721992447265283426903169691852172776844187583880261737808023138285106862167051311017417441446485794560617442419422734805342401797153132709491258416159748792246933470819936784398175082284539651940074998433852659848327778982208933985018266190693287043892086364460268652618605432277251180227184050206423501153032098194705920878116686756206583694145278978939049812603379473549616388030603974929391958817544366358404114458743905846238824913404573734063538839919604196753938395948908092793791809483817184160974563495058464117450126381019567977965271187945252173703099114007943001538919650422174549921810869644163157669319083364077614963667696991464824925262223237962706754421585553150878718772740846771497510214771974641795157093521079636968706507788816034916350346371126990354243043294730279053057316214781595791216311688090160750697681773773266928581387828909395901098689973426496598026665503583052603284042775168340370036128140712022828169964282642781896058782854059787323569617966600674489379733514210874099617894958655414083972855063946477671285877887933503386932750152746065603275749416883928437110362057060893181984274492715559509468216628937072420247157530313781165025304749844038470903216913977462773323754802248840477410157511695450019524398776125813314255274951355875326868251365032250476779191226362963308423291260806687306244860470861993826130928423951065526968875037342098298247241174455227128026051781626299728928076619938312966375164897183336565648242427184961717465304924434204822499421302668685281466215855825896809490598232837708499213969113492287112062795466415462747884467193147215514253129394001705763599003370261348599049089726245406322625877875284519454644585517699404487932682546559298111032818436237940165541604490144833658025424511297366028228009085166698699381512654908109319395167138368501757147900122799865281972637442670835599200043140276929764556584220386148969220401116196592030678815344981613912228655678707108436514642530885769262788524917236298423606771223122656086380549444273710952712871743730317295621204368662635178940645161249446135172829720199026583302017388624431715057259392878776840109977938668206329572766673827935204232167547951313315445984200542769047993228206842267774708114999391482319020089202873421847659234044040015249225491265765514638459104003453267995483209796469014461244495965455117124535924567920248347802214987395279207764510464186953193846311312895404085465127197296846284956381147224055568307686012865242832103906009871560332980203996617676529500884918075880743195716181837860692482580565585504897199924282644157009446993382208024751350239324782176247430369959123588818124740822479598243840219750308991911778460656412634499427359598567397705585536931775673522167100816105263822323869437237314439153733996127139232767817935607912945782133483568951979327470822697293588288876500804472003072873903932616110715103496884573390903475896179627874588481497456044888129489681247225751563719970488348979382548165239953806582185337591614610783408520928500601233331223619113422518567082780016230484062302825061124474584739283519112784720842646145669945076535455556310556853132157599279473136584602144829146671776779099679565846332951304273341002601644342346951068611033458831924945601597847716597995106014476643930365457343753243129411231021749504086424301276922217354630152652106399564717755746387970832809567272106382710076184504258457294172903489442045087173004164294800566977011308831378824291045368185647842287293605780055974739366064929067320729126710038944944267718274021540480315154314752530763933160551451947518251952732549934848915206693042500621454323535947291749736591383573423526716614413085144983226390023950915559911554549258376113092178647868458065634193067940111410901362226769784737447301825002379752674979525535899164876266378933375529879479849512412379766190998459392238778448615168369372259647270085234286995544342265340530187182532232930101570981382827970873176551138760042591839070798028042314894095373766710592714730504306351736258960820012111098030567021797987827244722433514061860653836846784533176619189524774187266980507953228809372199289277569658127279415453761552233874203909645278551153476346588627383047350818886134248225235593084334781204997539264281896351366160112649165240738759133790242000470091153888258727223234969063173878084783841374719888609286812462470063349756789446995350138870790196969857206358916839103170409883117965161890326185330235051578356837714968754730115200557601076921683020672655469133792161992641456134363394955500536148767071676553041689478078843658628917465410389343978612153500788155293191252564565537792786744791090852585027824211447794344553755715294779628076236138569008040217765631825517925845182304034678972745278516790067452794800880767237173012206749661391410686965351512465012367196468627015735392315488191718249332799681734577013276765941949924287967283681477629039799775253527569656078976838943728003944753150189689262819275450391975245351122812046874233031834853848684917060947392764649397749571920865206433127064480579566904381971443779033915473236303303479627878259869488418995027642146611769411465402024764066193708787440781739313464404815560359175675263853846607274257811195188574159026223405901017358956909431704039130845322735146114515591900319803629405674139845874702833044945072496549273103632491729618096834143568559051889775928730988146271421077472973488274145993772973688943282074316875317372140034807655915149691719864105737493549601601432768048497208412897391589878702997179548843995062552060504349593284861384047174375402625672092576678957546811972017238934821537877489241179616485755755645895541983502096050525357315410537680505699008192336261816935036352052820114653894900310208191808797308946195113108789045844494693419957166291876413898537309940193310301883034667908668480517995807795083628125414524598889251436141560877095620697765911471909076962356310308182516195370705586257870994621641711866824335332002559778169186789279656835327907453662037466836282578330455007795581155435467229989736127067499731731607143303474644614884618149676989425486752738808535801162412138557085715865808603830764255917107716699000119182978882866319411924586606796548306778432102479850399866531015349922661358173954064150104273249183936198291647871691687170444648897364634451328446827893732101203382206240498754262497200384161772865226839323736087940950315418716415999939673086708787489806244543673587842776054507058359746020380872244605773740617206161999784034821126778914410563018938549080150202128920585008374139069894262649425924733052523737723717876564302015447273532171771625577674334451346048529370942373118601642046028836260404522821370086813401874827261824466971171101910350010132427691901229546189669972596690701838625940361612215308771008377813356701184785365277738546606459547835371791221795148043427027465902173815498442886765322878717036282780367305101582278213619451606299981621001426426067839510550076965328608342339778555032528461694528559839134089257423401215716820868012216980955318595134219706246165331982856163764665416916883927596538336467740002904552039686712950730800866745871398587737544013439934425240834364560486182265172134798246269245701385230945682256252446313022299161975274651801477136109986307729238006443610663518949422958405972093928832641474626312499925379008620387220818472684661436988579673484345779090309924912355082241545347422507303302410612703607070362417206728759075987718979262179554211778056099916745647403468990437491091304943537963432701624369542997028301923959095680557444803859536960906718329691258931668210080044176748116607178412543293605239675065344134808179380732078362973353188582777095428936164022690885618667961746615778855647464155119174887878220742638068232777705814099301247586206866304788580264673238369220933812843551457580727968691958929904828903325613610040469360221961299451790553813190439893986135846654595308273251200663445277123382001617767258082814988697558345211507071706074799273265946992332824093330302974866350103984125973824346813593609526052387417559756422656077193039416235263977465196840189398024022605951968947939098222099211741128131061609709098795905201081135897177418196036335624759132342390613289487852193646878407199315753661944788339560998758508867550256894934003160941941936909424358201084790639946194960857464181823039699049638560890243868181608456278549086315522367464227828609412661062452060716157329506750176161723680233400193069299291587380724562111505430736519464869906286450725178418435129099445374515469433094238830078400400408911842683774074039978223290527965558034285563651396356702997901474840771169743949609318833672873423406326080627820213348141486942390805166314609509002730266766642864419913084280349311059321873940555723446139662987803609402793715956090294695169696951726224237310421087503629496596471842594288065973398213598409514643488538393324680184364513177374805996542569863722300748824047390786157579549468920887213675845550284038337587978443704175258521687287436569362578071727722541391871373136922458186075313065843631796104294638436895495084035832124431757885087519713648343338755654614855983018437620755536281806411828290388806449477850298008579429879076454921529992851452948321630365106858236777359085526933009050514118487581625630980845571183282068304822148937004481160625442952740281897239439747774283931165642591154492567573027749356631712507266372841349140350036972427255075608662947613791940189125011310181940554011922604047377613465164516054992524416611240929861217350777656175906704932928021377765221683224956149650717603208958192825418528650392171419934654983738387459825010173612630661811200877400461897097901277666306913872310348114802255544232039749982005873460462023158099547963535013084724330555528168884092468133915755583282372033368741354778574233355356251191396984351050487654830264035672605265083342645592839624897130969492782070833377773331500953716578684776419117216923463067705975503891843335923501000830510965452673688150522837009869118084229555745921656327642508656833934231555562225887849795879611627659409609774977326891600008309435036249178603853632276573036297379744240531654216825013767922096090035811136566995996608428439930882172950560393689109288332898545956420200354061175016580183956444367350994797642731395702837717043946075307839387662113705380170699437509537873570416521305136577195331946954740780674754306694630128390201612512690581825091416923277027054567198709779842816876402781351551694604708647609568504268057522969271051935551454123093686442181195127754914672561054736129084496068607201393123769358618947568033201175813343117899612505998003991935607910021439571355099185165084681785832445740896616523687713345678843258660727872033266173291436420722710094876324084367812992177130893709879382296306097613351056844238856038474041964958178708706546973690574360697145669995648361132225922631333464672355089506724682787966089476523121236761086308783183055939359210395051167179482773293460773664927291174679932873528398735669725851223315370996626919994429912880402685573228137004391881086763439596092184983317814805413881838469087230883003898769319594022599610857567619342519637873941911978080617459924500586370149574143936621383998742103434598858542721956407374981782123580856275741359150205607730817789212151563162500485473066609664555988601570837863858079558988054836915200722702058120499795916282009171068907523907537987448023438734357915807760080678092164140370021415096756716921832574322475777286822507188566785618391923897067715866094187230499546940355488515224805838431988912132127457468324380124009704732051387418296055361725957430959287031119092622465255345150593972113597551720155072563363449756708063174021154574523818734316910454490532422105829637115927579802422759600881616729327045240348786054382950840484054890620852273689571893870756104189158428003142655200129543692233650166412588798610105343959156730908417981156496630337136202226802111130794570819466296631849867861266181682988927797612774963761363211468234401229496617224458785865487748658917493173759551095376824586019983521089085735490251702761050934953999050720600995473397408548114276486110979142915219421213545913106533494840780868809281224624957921835017935283243041896601235302845981687712103827598011392352957087944618845450807671215693979535148773602313958957288586239831571833258826788258873731962272459211431324748658045023218288066233387504621625878772811280927308695301902711112338923068654527154940105029638661382997486164715745717283376609566471907955339361041606315692345310865104705514883151815656902667819181959508866852162108261559871258486096184003046119438427746237431021343591354864136595051810437833974750729989050556031390423531384331193907855220222860296015767164992898585813421235921116214365579896517228734649166861525686464167833446670935438244806766507902906431354410499833498643691942946305896923920329621305971356435875766234453182245319439090827025215852911075413006049202262776410354648197102362538946792941288419243872753514961887466587955567424272215790691296229581774087584855156686378007146539490309887060189714612951309119411261991043841832878825075989258983742054975289457487172338118123838357686870460327345457549398547778590319517582426093311613626315038486408476054728357877613155984052659511745436347120150899571361513545711392819810131905282654496226288841854097499854205454062403153252343509266417837491115841161723665543972657925140208635831844934302104825674966739969825204753884255667356646998112742028284774451237364270369288078351074592043915807191947274491152512164132632974172449447926843217151581295315954752380239286670913876398404921888529793707388062332040966058064911778925636795212156671238538943482118518978176956714650884167359274504978239659923356103306161262218350209822087534529851388290513548241593189502341832967856041376517064509742412909435480799012727706943931729236820425706276357719815450259290125120459829766950412465221904916285588196501755400992050098403061725687815750759106299819105289422265764744307022755636673861652266414859082120876753445654258824618319876130395760708876868854744386593178990293721767344013148980066220887974077826253183603943246321316422623802906421955496942059668298619322628200878397906370450551234871678451200110881623499095846659136881977252556009304795974839000005624112925748354542299896763116481952106027309121016410062724977570898439758489298043767703187306702390787380254525819635729780260127301481334879532248292398439465379819852163578928339942115285365431452874122173398885545725640582537557491019633580861337231386328579191845075171179136687275607659249531553741691631821277494659742557102223511409533328862051003492867854751941648134467114410820534798005082894733068475119789337537703997242187597094144078593664321347028642924153541626129810826451292023684261539455154831575446567861806981057016789956690820450255521934519477421249181281563841560263205944292368958968673816252343075154757305739974163409147711585027659884085683985691566848964164219015109694486060349710040492915145687655285975551932092904322089922007648578413589996477100842898342198275980472162122960661957959552040882430809637840035673597431516655594943540324417782500465622869229529207278249170746777747516809940623400939981948316187601770091750535928162868165664829927509016179071635102359519826587998126918486366677111794629361607196003273585050477836346948500090962447618613623035233595369420270491415499927596848365025004688608297148019073936798633676460882576854392603170319229020199694506975789942147334900207685585646800606506316413039603372872918335438959731012669897435447366820204123508053584418385946571356690603718093970640906625012260313443192662624040967748040870328738686270095642664408406697854558699578043581198898689084022639559562013671481980277422801460039284018772843928177119908542248589086448224963270268185081260097911937807994735726487392565792227305239486431021308973733385961110462932932041358272225855144240340199503928021437401538188947354584836413735610720904700432151634181774969093786752104098231629297357546624204872080962983477656398733870802684840213979750678986244534223208902170454333819560395398722557698808537565842977237503608404198540823403796328457985303671076840713683296071916458314609341912674010384318030338869416941765871304258248086748110422150052995069780645380157277271075538195915466087500806476021444813966153993852462749440872909250907062193236859391994565791710291735581102286474765523327083998076976371779821833774360348109588491431060083997444829856482560896898632752825057288759437117927948669922080924075190635437272621850773967897413440222707835254709796613159485230302738396150993678790432344404085740281596323151830165674182714500471951335913470738152451294750422867746774227497839202395347908563857866739442526138161358632781613995285078453496558106492489677207613921810659112565061823986402193841921566972729744049760376756006183025425874524258619715258045430882931207889102290267516869657879354671820702369021872372383855893955617793144621481435338924690533792310061852186926387228799882499468202552742881888179678101292195255534728954811008590336852225234519412495731473973171588111656822937665236571883747512995808900602366937386063113158617290421172025597913462687949568031433281112369304425362283099923984117510942470927742226975436660458632817315487847291946986824101392609761408693910184584561188371003113491081161823404328987865180584059570117479164479360903686987316193170874889116545340560733255705467354770215898031262010922403655934604984320746042008361013264664774472838823262679668719603149070232072893109977896815246177951737008601066977167895731858092450708514696617506597090234856033542793156999688201261511900000611524948596010430577504221553418319983770015018703483646725529039021565276661982699245493783291010964368821734024962692525462819881678941092809812009996997091894701766765250094590835289540514888782157782458398415760402578633315440425295118274312709045293093260129387706680589786511580142247080382454695644318136176707432741099224081175450080071218955864804497973763957196182345724970795439316345852823763984886137178106396803736588017600432477467966717803550191335131042861094830254021401701122160885460332441332767640967596488348390918952160705715670309879738787175301868675906009740724469078114228282911216508909044941117861728989471032029386570717211508199977232600571051208351354205493259771854950211773243288123927936616383093168533956026050171662005487322434398138907685954680502606730194202324166445660314438376479781232354514146249778946565646439621163935918558704226685697088796370035355363741760607937699366132132166456929287011202956886495630046857475011606735175955883609371166804654028450159753712916019097860522339154741765880804336830596811849366427616705666994729493098239259632026293054178691420601288383233008016764811281437349616928911648290235933687266194263429070642834951288559965632762464863977665639120512140297414222272277864143672725193740131255454016437558046669273583901266669140934141119017946949844314435603029483981755208257798015063131515074817321634487139168261826044865128627587287109753738305865130478379475592531316029029659390140144564613194539739055085968531708314100555070081314243083718510765004820639185074940382579396509751660935741906165392092180745374856737988222873905268121568510085556230521513636185527196656300454050249956923824986414064842271995474522837936793323829830647021908124343145584024091082610781377251638037018402155289023004545026960638554638016635909795627980485382020926487088616685639997548675066893598142898933007052502791509746921754858762979988464932570937310385629038878079998529096991449769725707793484776229359074083483395845615129196707352057417647058293617651486817305524628163636436928243076743164119896000526422276179615621212796897735061306651595177622279852371642131435002610564478087353284375407431555046119051836682999333883613639034903487070378259229334307862289392100323841824405957415380430253793026925067122475903763252065513259499815584289269530170212349401534257858441849198232823899268128014654546440984099704635925564255774491512945241745285814241991419859939850651854737044351082972852232449805010735261494544525089578677885017968688960517901967770858740815447470646661573621347046801298702448426976069454553235172593096811181032977913373108290156230176583854430252445035447868516186866917213676317743702951407702630829916914011354289348614804708350938478787393720762632118643095910614169841776483274026676139302327059410331215410733340679261526431484388567033965892809158638093469543007756676113634893060215273678294802744371987634604334122760655506831556086422181410245311535234945875240138824617646917493118476221734439752217798259414924078120218242295727765910822372439370684380115689668592469405891775632915959446168754490695528925225582479736943588254980063658335105277799882531815801017422520642107547438347622990491298404691976248058757095736973476910228245804729410863841106012902694266607444006436115169189802123557596448531754961386925318814529176864206860839341897406148692882076588876997218715038114413129709555339306662144451857937712653154544871951830772571644019252481514140357077059957419549096321754340552357905426483770900333765648473871651898903038158771534334548519854790317966654833508908777317999462592016924495062236430729555459156670324524761597114821810606442335184499438716883120867748111143733889528645180896148538582044027863525284826423941322301626234321962910258943691479900617968747062118582890394305352293928042654884049258552840333006196877200496622794612442783295365938598988230524252917894454324959745918728921631306667353943216952917050617936190428538479874653597040798413320348341711333489232259198382895672229711504446308275130712733155240869901894446288499784661025204262206197778216206102975209747950776652138349671086575576278583289905144711834976364167001508838990741548049791405704487619049335480882047890436940739085206100085229997559799903285359900626490440769411213434898140002042664657901550063442853929758210590777554500816334398755509458364784273896333690711725978631693161579724300810823229226946030698057941266633119133017509499393541749604544592883045099158550315500564758861066814681558162250026769399117681378576368665516093758184590242463652837375511873042479539174750345808992260824571306253588679402761585940930381823723225388334542305449258155850023309299611560178304991516133548616715737071094928230136453088276200002030278841629516731177220324776529204621047965669137912903728848152402377313135411433338991572643861821409623148192865601695575538862984407532906985250151756635292162906182230603664665985762379997114081549787028349570215897162055127939805631378002388468288914969164040159599096359774346458928373123275648156184859211144279817743830643836372749011182818882661055626482457911795053140072867151000257304978381831829410606653063299514528736635239499917090420655283839123113690433797038105917809463363627187712269537795148372381865360871217323070926801429500899225143108128595059272304048540671402280172897532818715542090911895861033462440024954778874307970875884731054455743970648060508750884965419827174248164780766501851396103181559075534388056330411873094805683064878480380752041125111328525872988387339937765822764962994134972064581685590190569441546773220428070491245029455129163199954376815435633642681197858932369576128633022384585809332016957837137945153520012661123194179981027747198411690260709867923770782263907348052234426147660068354979896057783007968118040196636033233404570137172987866966559918906208899345682832049883027664669502693628114631020927196480207920547268468081707009143307419213914350536043434533792187313239734000781234798276307305236743728104146188718006014204518836516314393109755320622765302972087135013247334856118931156736208301721446759446795041420828368603804019592701515571273380388373861339004524190397810548495277904533230469380550525234920773724744786519499782431645040257638026909783355721401990544702956638270319140103390579848604139840069347786259471163693393819105384481976589201546445363814498990692381163121107665006526092486503145578297280887973467359166633254631250695056041670639897895249148166947271586846319465545721619600592586759727648176681850186499298728449066938129645850815035750775091385543460619708465502192187988749266570560306182490406365859921015263464723941048287923919688534155645696883012630586564720853091284737791754790109300387849106727484273204506827469040103046252318006260716700184878977486746903697178902595046662862136209355608966394922423247688123183604708385177856769872500958872435079151992943539184544805639443618303308365495708991399690086968711951382953943978698261987186300802297406205840820222471448182551560003548719045773929786491702510209362795739416114741205123071382431552446400003667647834887315522133385655206870602155027592086795354372963095748322510213804733823797614547566562932807358028809474074036983047856249286890404387256024961887421681947687691413677490319743668740008342394220615256271978541586258535431323469773361591875237313367798591488530928989451681150945115796887340844273104644180578717782201298930268142639990122748119221036992318713075927181679321852704886736707249359216020173390284005220574592849159913275057279970128528491426831819087063306430170946762266391485887014824499849619445652330923745250198004492620335714203797937522990247397565420778651386139956905477389196860405585721752506037115050218372165745382860410762320909627217327928668504710344506303113642507344518155299824907365217420109779199572376980709213343351831830327637750276723959254396468365319436704964250399795010183604142205201247988459651532872598376480694027948359630105620909084767393846747775858084080777548258053574371981360175592191681166031540551069700665452847268969099219433820626396847718869445069860923411713249244591265942029476374516235867326845925513822740974494859059129990156261174973074976271200889895294151960675317132515353633489781119296330900807492986302696652688613718691829107849216180522805419539794166740202390928291713523447324824379060608197065114475036319791200044551218012556570570842938729306502635044861640866125856937689337152370531962976182862306317893139030926358371021303972603529722874564149955878988487384243220295195418266657952580429049312397810666842363397592429277931321916259025779416832087506600197690084588580117462711256971013045809925858125972622390046877523486664181531840983390049513740079329543236763671215855445519757371175834550248258585619834432864359130922835290923226885569632191724860829729106370761154732465875233866004540583233766512686995000132640440919488263432456052707299853562490595609826932690486851982415097570176222616549380207815807221744645271076557982737123144695814771952581969242818014024716394205572992669303512228193487078073398584778112889762459947029093444423586531834448962727728023521182943083862379105278085471078685777540505824426477953729173693392647112203074258457541486408569195023957837016191312870140220962653690991196069051896419754191242809988780609394275985071140730287813858049785640711877411560784858921204093033932051615250245825895338516944660557575447228570686214475297399548176783232262190828533853145317656515952085093172909262404224385399499085535065861122256718585947173263764511152642665248596388777784689303955131848418724738600211101840326764925438567752765829886533071672355454445407344006770620428131186288892331903747843054696501008624719949934255815133463234303972522360101405761056739189127550470288882053362721929797217849110490253969368632529018560195441900104940481559642046014989532292230018040217906004693969542879621935626822148894008698472797253111280191134297917639852072601810035753870319014821253794467211262736540492940730981807085901334045593643275959759907170311628448891238895688322514104318257864066394269842339740184249286126312980217646132600210187684749116424565071067192897880112287473347550347194985452283003986810688765205081931287911010558130250655302923678266737684652122964473506336485118566196493605527270096892288102854861476974872569131713572408151843560396256409081114177524847208836933281963299228575338524400493600016124104491255056680860150236686307275158475128862350997881312546522986473794643237011987054141458238610800536834203713323958449992702311845215104016452039626347783361387527759676061103576624276628267346515466448113112540232159836319877350378418728053771873790041642251484943999832465709343646128199240230288366681097132926103279778150196138527990818756529144756064753762844048488455080729492457007496638234897789555415120590436579950287021485031421757081512548624512697642820330387223347498485819677333650083189314677047423065052942969909457860804560408472501735159541812285104833588309892825778143140640148998179237195651768294133952513906139521116818824542400973442062151314797741293894071742944779086562461499606165874810081497944110182112103858517821005551811782705806170250818979671726373090166619909755310869985814213950948475703399349319077550271418601000741910780814692783915855072165155403692961372987804547522975279289658273638543600467287717816385388745225701609430604494568594240609540452652852509255002972324818491527796280407173374937000222098921920633879436896121857208558088050042946432947554808860185957496035720004724169681192159080750344989453758732579586303889316099113450371690549963407460787947357336378759548002454873344523631133067975268277387208799886453070906755178687906137061250477814308929193363894737768219229683766870029946937058467728109945578877641670976605512519105036816973093650105724212878819884992410502671857547770675023250648368356991056910505287753447179791456580285039382623415912246545739198968463592356871484019475748534167198896560072189238953750357100266210463709508532551071323237589022296022738632664702857059105243467980724966695033493148242789339883161873591359033546414607656932492726570193461762377309066932759369852271240346651642814772331482295870221829733800179415199306087866118569787098713465151760090982318364558390682463990538457464276007930462196041699164266846330677597113685024186595786675511875348407876927360109345613335921919128692212293075125043180234902470492071456565222963783669470335419154540883678051454324798997093781189874611549386535179554339805064950843072702422117650340618698782370690801048958254526102360035665539588199005308090321094437669644713586316696417219218985293122966270280120091363966503042766692522408855652147785106530619018468549338763204425965913445405976200459896053662674626287381978711558282630030129238567880024587954866424505371470442654193134904206239953174814153873562958102795897182733062304133732114834999165442435488685934610216211801642329965302104330804656806889484690131272048050763754089336671328415373977086546288557430557894501239698307596266506736703944308510702596083382630739858320183962370303773095613588611472821138276336406765940005354647456158317179168033873820847691028494006591999953894083060154625127473293499762205178393968603604717799264124110103329211554634275648578002139608001814948835511145360190564846221540343997110880158091385204650100224348492995533252093754692104228737055880408255922390991048495048009522381607850621753700159059926335312501628806365127229418159243597520015308087597813196480046473242761071276209937055930878341463197937400223297694098139063220336361476231427885741469076288788065209213948255725054516961123575413870169013041082448281246596036643552663313822263426808547792396847979154181780059887221836901402860573743183160277548299911095007105093321068103469615894129532857069928595542767273201781441919511863567560034064561247315348702799931264827241259335315164787615713837211967753531756464579596284581436166858793998546005841170711788631039395676184065809980208123415180290719873021567414643850673142195563900548066937300707505036421177057370406522419873475309506399889188066095398287496561407714159962386691174256945827402590247380005504928798049709045249002329363312823651730907712556874062386497952840467365707494722744893674958381679764009878482549989824029181368758292899085657394948492898871800935514127036895558722227048044097421135050306213913549512617022470930597226139154736438830890303764633669471177340046378547416425513204886081278186477624040940541098687847951947515664860432630807186821183855974153240158722226854867097256062312686071454379333919613800190319641564686591562869954072831145041336737841037475284103862047144650455882362028747208071189850121382325286696936009700603286453721897956864559526752850206384519183164453876120465901916485604221378784131202390923713593249681750092573717175826731631651855661979892708338280144959817381311566675771500622396128642095625332271613406571943758497289372363151783601905284192364031251323494622278359603579728678412510137898339704857234652066972437006096525175564865513464711651971961019981220878100403494759910230471849816331670023168574440919819449391770914240343883953445742260973630249887151350907565481087336126944041082354129548406090841530911017735467635500733373820038552257432406196990533518334578302180972613046966054245884011407411677335156397488758561975115228598568592602051832552066729405848687184717855326371934244288489854997656420367156873180454227286624681329821434694131334654335451265165101164485411658819988726345497297091128174558588934303623693558921746751664895948155539392020248278983176036933464237404255206376980162648139953146912955716283951209943521482127083881672661072453501386839290480737057128083597463088467197209156822391575766574773775710126360606897136028711774557400114670222619343441578011860016244057807001394391180941543600088862845616747907251563504037606512271974390552462429469514651869228363562209474028958352117903353795580670388686229047455083092000839417889651624965875126650502428897272853954551336671999925292754211330514095711291060896070809627069105457049766206774005292156144558104252235762052563482214475905781966149589810980493744919860780900805032071183433345339754894450656389229783316865152746680913869978661335486416778842367604156518334715129835486350202896120993569262836226544411765079977391839126140851253594857426792518744116940966501759246838876445889974315309937926249599433961197716345874958961413872779432094305951888434532949557959782734596278893394187657172045907090813622965493050533100275689922991540766099570326430107216380599503581215038481048652586843348466821871453845363450459068505213662677639118020599548124352322246387882482085537701412483710641279040951642643990381978456513337921319971430027191941487199336931320218769292529579835703188902346026630120486871334742492281886517472582028176574676264433257811623295251925027168790214250089405054340807219817200509151587247488401624303818607255322118362435628756318655810713460553092191927790616570447419735155212161855677166637023178785927449545853061505780043425575264265847877012745014360728541341155283044412545954242995846454032741812015104192941783442963740688615600940531671474901325270641993286500348199651174350609152697124543641657923085412650854686053022738914494832625681093439031971442762322494427479133436630578060316013710073972170044221329079706115685545568486832857502860259125858877451647435910400341404406537798304563873854670965931388642373057153478598679401747865963484508450068827917875870359536571048959107648341187070544935749291556180412478005580172505008634262209829435552536385727261428539044705520429870646227892265793308860751843164331316974685737056754934584862438485092442300948352343864743506870710307035111952227745164879107988271539222428192531058537047841726959818235500665762070936797999991335381885469178082214308552624165628704926016162212921949111221626394640730760026524279885167076711251823985749265717747762404562242323802514177037976140965100991225230793519606319551108089644287136056288935840601289103427730204487460653976973376002545684633667561190046826999113841754814778910784079207168750154653601768242196734673135463965334592682317419939994001595220696849637525674699497355059234066265653097314306293459478902991230715060235106453906526366726991695707330895985397044569802457738260419270118830302932781634809394977206297117603043669520778133196702424701344068346934319769922553070367951382427407098594021134461239874155301729935950929242673525297913905279872681880409065446295638268927849710634190042785875424274313572281091747789320736367113420820876891127977526423220038379249302975615109839825427414201160733522958469682440271553853744937468633580066486753039959552983186700476279961317512325495536422966463691817933652624246510336486119019993255881104770124653466548330218449615971863649764219677790210135873049565092702818672111538248342342587175758022392233767269856739237841947948929014112877230194426388680699569446835398030353153560185721453683518468487153276725421450466471671643998837625960287586892395342036704136547395864841942103243727428173401057496532713068220539738055307846775943819121018060638284877263973927924710984883235142421460703232385906862382393911626690817034042532637761857793014389459035851863229107987521753287718356412016797516593630685756170985109842796264653931222208015164556403267431700753636945937052014168360402094687261825016117953043361560569353594879559515106234281531169666972460590067523814779401908791595434101102090139326497994486240574057609660329506531351392121994772627540884037138390849142145610160453552291121458023439094933107593143062125650938986171203962320472793621717256455864230832974661575678614975736437519324508290205581218768263038490118568627618839745907376094343116498686214175658100827164000245664360088560414881588874330975120580288931705704848251147310082233379669400291613706942132852727304426289680703676113360070994485913890305898477296499949765552138293897913549891681513071783716182631141014690932485738668727969192220064442228196050981682841763440727033685265164690251532924803266138187668456532778598335514539958421142241917008532606743791757220477697467301520926886019936649342427529915085981535009906290074550684691003550958798528112688448007682150752391339112105451053861674070604106534760613540660611924158372678484157291516927895618481365729056201907005140830432583689318206606440786383025024175084403457459174587292375582159481968388411443148641714312486248334917773092052389815938064772855618466874185237526866258387093812748397159557907606684169878116080363604103735214706921408702126549836982059448371802033066970777251559355028875168259741569629533637921364238885330402528168228886550921117824460684826243884597042122457043503232430587462438899661769256809051253290537112539467879266143516006492092529489507504068405373402883340991311885600515844561933882656830385995148485849348402211222168451844612781079775150133651282124256125312166865906651331620584696930562818813908440505559317427267407265295676965334626043271004522508472782123417550171673720450753226817861618592976010537739840115180193975108888306480917086095614357942259401099335102277993439774496315485411170049263004437389494089780682967836069367571474474436211197605863271365128556075219612794112345779101304465787202988594154168879970681831273256501770803812879469835912208303345659600819433191408274701369674132736565836381411783217006469505408002554221490907517180883367272054112399474353316774841667489099980738947610028807956824618916724235573735165545726376785313199080876090626804987987475746423519277783978477534536135949987417261330527169650736162506197610869899385652219937571222989513745578081169317296115363333694923423733717024812485992113614596720990061113127140573900069858139790900354614200262868381815701235994817934830354045381147820970870600669299557257192657317325747371048872552470943777322084114740058043873806777898578406169352954298560462959665506041429212133801339533072702806483935255883764482778390068888613040396263230201528833203593792642870604552491144741913270040364909070638090490851474505306182751963779037316994579402677961344720626512033078591129736642966456358918485469662389834115645551407854866105072550504690038375270018465648409125667759987137779460004675336400227700275858133230501327674323251037245539443434616424776590856658285765376413268762038130929867384748656100147297790595156091374361885254195795762345520887496888498695740809740557070365224209234352743554632832034170623881334889383091058096118411776225441115629556793377710605207837651099610457895615766980034034373856404486367719611255834848514779122450179411102902250766525348877853374107655697561181361398856346930945070382445818191920732772286120232953223081628238260375713353158165219094512850310524250149673910666133669261169275759626100972374689500547728792560043921153792783284805366070729134821295303739969611780697580605026383451686427333550698047005407448122102623844021511501804790566537016418036730355081203092293816074570478973745439420959342751616329260142518921703201444689007803656704762439703698375133303352079099484347094822475040703830675751629921117018063255713800936397659031232683159924035655541647318603057779817524914525047936966819628458292015135880131364620984710982571990703607644203480288931757316177733308503598360261541506853835230558551714878707123680914391359817140041606106865239512822470216945342798158684446456637347279305513926255606409705354490924787711553638938621970089422853600629839280784554072107746251571687700820392106562045052057585337165122068946899255922114677915023839205767921192335749773530861406036926967122601144256476250318483610700787933604780287428972663656260455747305791229125833615103233944156171244681568712819414692544023117794001181423622013225112011442789487148207420933009996744690116008242842071121104766855724024868147854667770726486502639714564939011500210094391454077504383030076332146706318793619911157838755875376467295001441688331012913672584360490328559062084138128416771588092556914569314539938008915665915213603129967665327334115032195526436206389090415020691598025067885401941884496426909998616944550603563108795044192249603317099426890112344409268904017752909490882170248460745488686310180719301035210473177959711511516851913216485091420581799655336262847615858682860142143584780647339054249609020693841430947297731134859176130518739632186759623941671816223339504990906072748468404127751396519838360420370272964025795570597495144155270625561521368925200485614309458579973544049364965559938336695292870793127666093183237056879987816144168558682915633927928393839055783174291695599999224252252982997657511458040453855126384130482658428516961762447978702061654603391109031547398937577181686209478557036932730372951297714506671365898687131273356200274505765798829887993455778472266049835851251585095868444106274682577140692601366786279469201851974456174858446489823888807554647156575408755912305002203517678346107157020209191809927833400819045098308205505767680451405787499329167533987656870995383100622675436800729742994241619907650680602147893535764235960406037153165504081845500767328842174781901184255570807313982070900142355713785127264142920064877104843786150664522293087361368006394769733039089993338597887949348853301959807871848370303696974302791734077311956626824691807229969190509913554154191304924035018208154678533456609823846675203063957255355984247617985375340965014980160549198438730025586412619789766259366283735290222947379189084963828728039876800287595875496418386327769032431689519173728180736635134296350390942488785502984268117230937231421598387268278497147394678657869744429429084632558924838060936887413419760487347389519788989631804078280603030049517206979992020101010059976886135303945682417248354984209839600847407459575594129039864358189279982864610384849884762026118352262944471608725287600165094947288166242047095118693008188024514398006334460274148431790622190660377566903538045690723385201528716165745507133364463291248060187852479107103463204222142749555957847700997899799054896286791534111894615899227983690430047845043841852680522991820312875005332478565767369402695774355283924388006421322037678969013764650152272328090887519567189861708317828429253695581679666427434725336004606615107280881217988005490510188184185596574799196614927657834519030827306997585037934262761925627650187921487992963715977631142350015263191777352379553429748083004409942572513291654063022211263950980261641692032167372889305023532147774307617996762640795589448520182799585166129841688221041832640778209889672512728030311009492323070739125585037842163583490740856437516387854461549263275102055853293643486636131879045174658539998741775678489006735336424525408347395863168932152759171927927327687460063917330038113675399068786468027378322499193423401319343142797863081104588292310683825128638825553471970064073946740463009154018384769575409326870883414393341520771395041214742076330770694271145562053386394921085993877911082018644992433798160314966206957309407617367059943973974823592783789443350560074275616933184968224129573858956338074858470511363211792193079789719760510836879705590759938796393553386559496155053261817514971222737940198856163313047810459845925830400127284267284363225388645713169622102784068468050921788731488461877408753787021859489036687649585920829538515810499041407363393546252988976195278232825059986030476269367854993856819221817134871385344443787697481798982918151424710519135879462788787125536521706030969585657584329742635782360997024057669338181696067419595324122493146514245761375234704224475168936271021332351636532087835424908098827569612537105980253900385152135056973763896761416037797513891021458081799319387786574044147445661839367083431077615164493969536812240288869559158616140499714807989795834107546862641160326773597819062158287325375199118204287337768872609381724241024759209237132873915199762413811068252795560828096637512868513936925787032101645916248596720792289817537371677219662063420028909974093497298806174079347395420914937774204387450223504490500211731097442625258578916655838617816965289540730669374582048110140596981330062471174027577958652875674699269727410374508307487842254984244851132927860229661715346766379491949439636814850556683017785753113871500117791992880774846052090228523633460654743984943879575350525047305471819361852277047685159127897667871845482908482345388902117223975340617149487448151895547034610607901043893229629552978134109366076902803653285649991617474551877272764421742826002793184363760211884892809988463091098629550332976763293895146667770396565149995157171461079460296934838578330803105550019618898224415032487129137441945068810490953824981862176981522874127854883351939494774775087954388349112556332928881114692298025983464973611100590587976179689691222939250991267776014256596351080805076489285931113455059916167879323664783075831610504282477510179672556187724123328662334888423604866248672919589442369322645485731024547233373285354570291176760738978497264820607396316587152844854836917791686780723095228752959074882126909555297799086348780195182281570499400540469764578914979352366075501366794004139065178213809782264614569926018395920880735094948328687699931019957158888444121956223534456675227372742652947943931810558564868059570565792533262017214507134458448853798942221531273310713663987658049901894250753915863077928763240521229755551742659001945734911924017751382067198599064437457153466692201781820023719779235823656394712320326101478617987289536191729157429045238401349512624718583759513801829923825687533468420884358699991402512238940260306718360950810410895060708058284127043350919532745356563936811848366648962247481337043259687869914353974871222978468075361685671772091152088968937066434431822299867662429329798520088096917977612550053945780515408525320241758263099885483140293273023465492133172057059786486093559507168942461537909428145927525491738464546491214109721911167243080917402088847361362922724671927169525382526863027596994899905593565230933925213570727347251327115656054115451453157951693127396134805286058315441596243816629107769161367554815269940866598359508568441526171706734049962804953217026352372896246003390935621372417523622627658869148475779012436915762400482373969204887590950573348021386381858684909827980336519125520896606820671252508992126295122673385887417991797989781284832224744808426211659960839998161750480331818895404533649179315499952569834310577059149275114097324356335790664175895560065327661420064830659156991909731975807808152973552369224297742688458904225253063803638123176785661806531235289375607376963673200315095128585357599286689774848528777461129403009219039011520094329138060636086522915630246919358678786066847608931777671916769154773238660353650435945886677361752466288676661814219670401294085343918673416772166552415171376357524424323629289356704305741216639915880709461335301256527386339109030172264764667216765168412790563667592065941947593329787272601979020171783780308011350436820317591133396866492590457409445167794439506237281131536595082398141924373718813050767349587295947876339231237235181759810121301387261944064886970074928340784946516346173553438097755999238767023325022230745155957803076540717595288798577808252651556251708686763027410081792621780536921056082440343283723307392797962692093372827973580179775765463513982188649671234980549827792717674825294547944185627640825637993585579191325698247609041036890528963047712974246633316494304389935983190074516463006053237746952319038525640058598912572187856598867714160679025836079907418786847875941761400865525121799075435827516612832336010047600205627357351634137168503875621752533196214324202025522657491808212330498620062597181153403883500022166628412159225837634281898674910952385329786612805305449440867856958158935479315726550993409057672468076813827721100011567342166962679698745283136542805918054244710080994970895952857563417530682837493376591821029467715248841337065275688717441203775694737102512948059577632401518285045334204788871972299346780607233338233307505632059755435514961782613680499370065744878047623768298377834275776198208191392369294604664164907876823528365676728465538541850665973550163322014644362255467705213953606029332510861457074954481095718090230939851216265059323123405759534806885569184377489870504302951551549026549347935051557274932829048876744512333227316716174418920987719754764014059534330102053647185076479830979679718989773659903534304515500984742674035057881086739761753068663030008468484143115858016697881037169706404516014367609834393218059022931491151780757088540867684689825381067400310613946144847745171782318460495202764258946156503538968172305680082377848431203378815767326722837155073825245637123487897320625489300264029466486194829331716019389111093905308693179536245404769850958239901015291002383654786224768723748180081799661128641305452533517021142596189117268500188958772336082141886701002851053692618041978512668362367245654246039359158954914313149831508486448963888004195043681364897429469214812495200911499795892412685665730905203324396610665496513688379163951289501800040835414070390476182240778795053901479204689630575190942564107423957223743455473628943057288548408516869388673133280932023158948397753694076980016096492968376480493322591606381644912164934612868186567856981809175107039357346228526651976733897929280850326426460761367846120192933873761368871068144846180412518323540643902063452557909867638940505801024610797410740531247045898210669578731247360361451543991033372852181768773443853715078328196553210987515061521034361438353265371864473364265834163941457493602545623950498813581728208929297632154471146049102714001365634584502437932045599518821823904162686563435037410429180531573872302431917007494974538682553072189695137077033122555652174036398291609432447206737546258123833255784227703567607556365330196162771709110954954728992387791253642288005296964146519395226559941191475930481711368685644304979359117786166135824626880437965313585620132059356850805482166041371124497910431948447660643094107061705612170287556183678025413974381614131742964050636181837677365596019614665815190315000217271094803759016624273973677166843476290021628259957727981470826359059855118558886535652409938478949514956950275008411507405888886809579728734360433513286128133619165956753270161463990428336854566763266365161297247618552708781369101615831476813199689086574949402414339366550195288886233436253467970565568871948487618619681316532143172903444058103949156048876335010333185830227670740851837572640038249422076483157364894145763397771769588966921062399595852670985731444916188972090334871147468998047756412276608182570861624889926912352352427246393160787086235247693059282695335104154724486220228521923572560859132956011496242859991241673355278898076507420623579411036449650816307318025463988274352865955860442596676587714332104738326385987047718178477938424565684064085361145052797170490667105018672294439110688736111176127567254736411444034052099704284408595623984972129564692532452312315177139890406571579698699235208120900581303523814663191744236811649576558938924318983927146315640148309661128421362997314766681873615554479771207590965994285304218434779518276321022161080114902107907230012966641283120827344655740569978332218095290150330510739390765845326465591855817682354797465134055477260211781933304068686478770024019109825740411352378959840637125379400492268280695784902389314554420208821622823878102693825492842048171795774141350499163691508489751913697886797970251065306384169449636308179038285673952090514523541844138890113859960681005256691350418252410696104560695209032241470228349592129586208280217805814582026331447208029493844286294502200930527497546000256066994329770295106237478066436724262498618180444490437704332080189847437035046472897439410171832559303775825033191219787740705803632458312559129635371246268703900097793622998328360110360636467753253343099070587930533415035133022247258182764358285024727148336229664277390549734978435077241421564420443163180755801267796143238670524254079623299442311731491827714145775330227268346243660114481900638452461730161130193980472425511941971690550050955780285849401371248762352761685162233230064515636440343832835145695823829569607985376295098883539868788173579047867149578445011337714926151308901616187975497070152090961594877768313090901420673457604273246978969516264477949884663877361655390874853642912240549385719332183766898582872537218715487232967761328939992622785909159036805828356710596388389681913950118458769222121566703699616983492983287924561752346775075555042779974057462811404268321702785424743971319356233186416402505010767054213395486101432607540623450283759431783118679654056466090602994939679269018086039762772606227556513853458587637861060149363171865631961716293880419468538053041162022287130293120845120151482584735409218799197497431722745763583902955550564220893458832744851466287294823258844407271438239541072341616593372632777556025239329602423352570995383585486168009815867559492249347657509567903751411793931526827487392397713718025867412716145628179088043471854063407375501342593617148724137280325789093078600079106608767113079920315027412694071521879079772364640108848368054614088624589218479281473331555254134528043070060101024169900245688597028664741831705314182640534827134819392922064701120463174518658808033721008591655379769138468578372783409540951877284909875222384734571231992679634310849435556445387829538383873570771660406712472001085781027607788599412152198302821382905397278371929318597113737139128435155924409314722742742489922929669392181476731501958085354164845008205057161425963837058414873844014748445209517655965212987438180681153266390864441204388633926279653569621824880695551805592836787403272402371330209926375836152821542272050870152444947100036930673918032170295066264945872474300190852688780244506045997830009151845511001384264235597381969538975716987953900784621505509114166729370428458014293464310702375581112616443254142624600542693518819712228970562795065005660013321201363349632579492307963350613427161250993709716177562668859583487725200066972831691006997648005410793153191136328988368890302064249579074908415800617385013494024052356382598337422616551638363074960757036786514481941970889181376917160115177695180489531744588030690943554659576012537883415157591277397396147903936814313285439235889946363660997581402970060380287582883182240432809446726002147303565479601175117958608848767846382396271357607719303273031424305541785617860348297003056735486376159440481375329428210768838256494715047363142637450819321552381471104015228764675705270610155141491986332351011388551372550819680884141541632199807839651230103135402849766816857046035567426100960580279363779875343510267482601647849904272035970412303100281796371875894717346493955503193180949972610331479066702424849085944411810420546081351920142073837147685447490706350386937343086144750290174473680893271122585408351259001062455802077973111458656452297812146714828026588774177050224323843163717464279301999408326265775686004359554091292200416492327287061891716999113075837614630460976484609893370090646857788333591091915193920482491390795162874143888700352389046526657852030769972929747431672253133246616330780961534261908717606590769542041772034028692759378194452213636504580311453998168985896316530752461257027627236512128336167317522645529012158618822162870751338454224387556379513388380964251406755086845010317664930752209879988952882368748255668219008053087172625850608732290424706465845840472051007619872758895914632978777928874051749710558852253517076957603313675530450297670000181480927586241169923410687543273099653219658425120803327857834869668473179989410286103666077955812469486836699873543618011957968908453303474857365608742712890202033470319279015418154817554466598089778650946450629149312886324416886121828168819869787784418883326619022307488117600823976649413531947891718311182152645094832260371648041687064761536372041584774765009645591102358597548575781049236437606490000320632249519609533296841313169494160312923038860191149647043121696279010490824483053976821372832848403990091807375972713680038475429894241785792150179653404539502315795694174702469280240588540533613615544698174018760297477042169787792687448707455622899656383114450304009000572466964632825374233999088703538617361852951638516550133092041779487422775383664432516418417210549618138317797874289696051944716256306120963750176917383410968482679364353632627211336622759190452727528124480217716032456619995592350374474181420117270887103335965585081981306241608406692460889201287056599370886637906665090558964999393168398649391907553805776335086964106782845538135166572544809160718611185309217041120555983301600529165295639715482437934957174890781077403322140482392050571451729251994221163608550294682145067530773454184963000011898418117683505961266778411923637307969407327447654499735041681293380417216744580400408711023141929476999306508202900383763821170319779774766383807970335391918204264542846768923089164717548905103022883128183802588242352078220462257317145432586322103465970192521901873615450796246014883372218905316317450607911595799711395451485490093708690700017687241402242339165186548368246451679030299584990514144509393649360439643376310724696950723256646713667807681484237713341851933667964308789742576577777421460749366718623149820199157057723235907605697789350727719761203794717841571372211125151415250551426553096495392086152385305077869009547107834427356002787684946460244609031769358984590756998955375792956489443538482417363705711764575119843458873298608813383652922862017764916045884059321243835563760663155032063684356277028620419824476853888166288050179924505844014540323740749958061725686484014613545222189298733400409431971367233110316093408105703994212129164367020023648480129490877297554880699781938777693684545611647947762000955408942619557978133274898843496952204560691521139710784558668907572932358058992912293219974531979103861459994018451391412430599236697321564911111238720471356094615244954500948495682574244309744043153657329826055480331128899776294727103752248822254711992656527245458121911384430492113124639286075326176412008316005647208960416922322719897949479552957917313631409769771593738454442909910456826244360402165801876081908614815160388795901834871150399640762682992964001700176319205765402497233004605945942029633917831197574278998325432759504781020646737973253836457533033728196866224748569004934969166074479396009607151776989170300432606179504894701969528661850072226475350060627155459218378205748562058072575873701496453436085017549971828867725214494393746365856260089427706806902842738952739470816711993936821758898429021921577571995285140741645582702587967093574328768794436765118206924526866494114721953234165338300639307149904946557530301964287230955813963403749400181938555403279937728466761993236982507544204432068893122315195366549223605279021627228049409969024874663488673662276834917084046793038421256501031906588092372388318722501029196205936047143040303669052977796686647028215633610290210532932427655950099864440726124537940274437471893336021196757043232788196453881140212408599871428404260653414247396666537313677697581240423075026199896379979830498207475005223468911148362783957249264848258555930618949476009050565023922782180061639913719119825954155480538278012570711774741563737072097460692254038324634191228096751562982660528835221354569214738551201035434105697656187979091946674745504326359866232838287132750289160486146926029988207255648903444519267252066647739793050621494968902533207756663549136524981096233154433923196707085658175649534215706728060787137772184005402006785466746858768284070435251285063923873840762246487064195459846466616117479169371499665124499916934877462805676084888543262629928135748483522530996326326555755430855846719076024452090705886208491092065200857756098619025737673340064311629161806710681000867789617154304122957844147687396769161712193512224487377070096151153659919959987651342034782718455003859848589685748581151533390361232991635111925369703945866744351702438402781489878359382133566980909969549811746577309790648785595811518135424955210232673034558904994636026160272476117068826950783617238517823101049285045439613394683238517029977698689360261839984194988206764818451783869542108256556613559203041775383912114636615331216081163464864145222177786881896120122008320667725927801706464126855202391296870061397446342426456221449534086706046833737977223806050042108397842987805047285110463997811868769684466303788807768108031693823917360247222619885044756782985231955723875234546733898085456884696607834418753331083253227923132165223712731207757069404455371226603749347910904317363107513072054806686055277971704931932962004207501011807975986159575056284025525824489536384952724610072119372584032535883530498063901856265629688324672979935860386912148993321647342781041312912017990620888685122460404595561798964352774034269728318374963145603626373371168745292817451849037959539824139809678312079112632872325433712984896471075359476027459572051698279023264843975369095158310784060171212096316411593911461399457813050982538782689977884141026026734107270299486793833789942467538963202148141743325175006972709147397671202808161056177525695642177554893558383282368286046452179242369352635036045271794221724674637714540122030772320472804981012737672379164576806587129062751249736032943933971826275650497472847415095472180360727706038630106583353973559684929863497306500160331133783899944665516050687795303572257554217544212147544807540072350230878084527397973493869463227818629569421519173126597526569286188076794666576041644884939474319839485334022790409159642090695996420197284326083559763445362606850962900261559044047818997510722296588255556381931126689000111893944618830841174371839157294209868077392307572738814907124112297710258099054098099157580763521010115470763825775368139457852046406531289977649613069700150707488754659272742510931313038164979352578023642763653919723967144998345157975201429982669142563079680178454061967159848262254316312224220605168343064707125531594020260100741361206529089692367878594896495515086360810491446065882166150258673801626039524247152443175484602018968150993204662937641749719097172334138400893631467451713775582949485618793647326577485518164614743625011859261242132571229293218127705514189919899725480606502878970432118450841099789118995424692257478265022217684482363175772026844909165738324323309437975320118269716930303926756809785712662536326536730307668681442550065954067287570037350472974383744054091599738055680292035715131629041629530690889298781642314808569185866893185351382481585373332351150815258153601637337875101265760648278699593588177662087231977111664654157981881239532967169198466743127262066456803449447879518559280206423090111247996629457581397361876821191019139572465788257012550244008902361109064031207574018926498832530803955548568635581988580243226507463703287687054912625208872298354239981869591638004849235619616797785521400394055118350623259702387891875435473091284464529468475261114132577017290285319160976608615289513352650741024608263419200813478885572595396363666267884193948022444007656032281080488933810213840571702518715962374641635469153779530840495315738435221355976097425590573318092199693884325063422528017639105834825254256783646878097847319130579905253037304954139090382213084136584667680408649724303399627261751226862432587185612957342109237716691184502756401768506065117891368214896704660275322518484546162792806057584534522413684920528460312784972857088872033920356062892299797539454380020662524473762632804489970529709178241936848768843626941528901777916838492889370074109234439783133449395321644565276880804093017269229499881510237088268086600335513953030383242163353954056549739957945535055621782767913914379098417602108079787839194056623474917463856455711179898520211903431941145568073235335625244792769260634819306752244056512629603474510873227846080461974985855919203446515976056087627777169669208854242628032301274940410585112956927502679765234749547303714693901464794963085744100896982581286852352451677468054669333214548423707891003737318810490237094402819857040961111070831115247288721982240854401564695607404951145304357482813369497624761118133301049783811103434800664842696929854519909439677658186344214023020635720702839608724857318846120912416294725501592199811503494209805114151262221475684679597013111627274743104709053666899639696629326124773455219136761265116381825822874888816681721935623877062662159482586796774562185764704039980189690278882724547429229941550505226216421877262036724528859387683558959943896465141667504206146034288318203439891082155671071669185793925908644217025551366717395418454556732569715583830946003157309092633162245372567390533749394071492976433603500180415375406986597625368390474039218486429243516085494864130433743484593467246183407957664667356650144861565862346255365171911257081072729435290892475334750665601055740294518858819017435278293281059562100698494871779037673747423055412811439189513723634004971927362797949360726037515680843839852219897498649885642012289335921205116373199781942069487846786714580727180312700682490634103150011085864761851141713762482386531950060266975658988880184905293473854348883465704977110838372734667943983540304945058160976483745276228220595236656430666545308628185602070630808733261320911419947080879076835673198114831428994139030905500838354779151259184267403640044085427078098451405041616144103122348061571513033266827210296914904633070548101769199607138694411718054711327042167013301893246035325664164395030796918836280271269908062279643706324636671487015153008942015553429202709588911370195989735846399671092942915195831165154388841408535182487044392776399752597309435772525322845178468461922274498965347387885390116496277070347521422301441395586273920419678815629695330250779075773211165702884641773034540950504878522556945083764128442807774195992546313890322264964665762051081235833259686301428254757728004907702322920026295871879084682830073127891618369738654793536083627622929435756815945347339045117890340994640893694133544312099085347826448729750730624721092224605329157840821330128974593856790918383045281863679618981936003650228414254173163131920426096922706679136871005304391781652922932809912634988600629127328478027331323441501666616613160928711610339468722563333702953395951407562478312684407019046189452904650767369499411083528311200242549038014354202639238316190263630302483825675127431776074096910210368840445427057377223526748068611577380523714542485397085898517862106432462439533017007855042395009273892711629714942873761912612810320100131159986370768208414544956955059205774564556285722217064699195007278900921137971555433605153942657095390764720692170588621848472946424622913995111765077216583680237205876667559101613020255817344401606232182714660479730074468855106770709820793797363152119436980623818374418398987674034806191758225652059698417910669191682330097776631423191455396330924672546622981989914514557512342059652019461435194924382119514019691976784017296385686310585273457090278416929247209436155618008439517317919507443437469919046588542162038649242831872676884777772973825609690321580782753800025490236083374902242412202672566523091185177727903853325760121743071089327086598911516148039095055350261091390664788453276180559895475902583138850426184004308229603100949376699307185434298893916963376641653779651002161156265256072928460355596588022893178574560592073422464696637133903099619677124138584654540204423686302752028705618013373976039889077562540950318249281521955920499460908235766566835700252852104558410947365686470144044319274201555150803061566968808424796893590927124134750588762140096162435793097905517308684115909211028850237513842377385641108807266193073487630219730926781616749016416021524367253138826746678569671012322988519402834456118908876816120458607965608458937108035716407338631257669448946520125343196683276178316021229174118154814924875492038695311128256359314538761440541695563831638589078066062282343407357648867862217382101161334912146237021100404171316876822842604815396332201345571284331410671516937398466513119962252683451706960362525946085592640976178662398643950692091613524150801885277465032423601254282110119813361761672576019010156143095914085800687632447002701517816480589903157870868824094441774260549449921628916097195530906649711100752007828054018356781773416556880743748564254376037388768583142322709626326151844593309775751176969840155381248206848774957031713483443854839806248549138953284303212471753411711309677842896425156006418838287471385002954891399484332514680172463273369681412081861063176264080750534083338790228428810227468649598842997169883223994250230382477589385457921075332892492160733769248485759869677837119834368581923169104669811671820466442020838091726811205729118244590791648460965321512011840401090659669089298880895649895747931176838634148980561584256682420404318396560036521979166521453687433654012940502920199858270685770982639894433296752019697115969880911220749899098748983730612884915990337092839807502317416071172390211959215066743408800735185108053794940813849648611808670368197930509453829491912676795476167243711442506880624340186501421879798904805096221554607712812483628246297883846196057283118930658105919052927275841044561530581830508205903827052760654414084809720500181422904094081744040321194591996256299795770693305246590780785118494774548282874903680222200857344462318878667305649272628545137823164320801874019466292562280453842249065485334366520363550085066836543435510325282652574064325402946951772620057534747490714813790311225863079638650426045818734492494676189715208921267288905730523641838319242672084412180273313293744879671406468857201449951099329046830108403686846095850770325193824518812454892852874801007997728198225558963814481328264518376043650047510460001868732498683105217839502848955953892653975171932161000503360075394867846206044632501752305044783379687487090690708436567033690669504407190586142353974795091288936865169189671698475188406640430326168819096683751987374729547080949604061155394812646894330952283496955295236818391057251929384662745496473120679683639672231919417262212514501196243205116084516224364234425338282317767417856721250225550733615741530016179225683307469098324329708596095365893895764243317190930807107108411932007530226941924468496695243424441510430016294405879582323299422462265119807345701708811103043652207835303299759176562899729003994028540640238327004475780643206966690747827509184012426252284448494141847245114002803083453280050838565960521197852017275004159163251893256525562947195528063054787537100237740340395279375037543571479773107100369376909749940205684930158248340559894889022759370668667352742939936155720621889489641511638782068447358676135772171505248308775446328244558230189222035259232175502480122310082804923301392083676978265741493622257182528608778972060172869196735396399186757509721217633624942999785397322726117046429972368504307907539183847038856361285271942892164551882617013697778318953636575130456985714882295703397506189204772210754649475912430284404256057816915357600123794613992017743455220279737179410806460545260795770750612179676635843657004008234619539385790988094378250885494282525206411139750830446040942923203732333339692417367185454209458303353408396350278126557628433459221770355575086876116141311230235247460760402086241980813284673927920117710774288808501908130103343520498591247722317529373438909501962263472449303674420368492622082401840263810494240416122694098280906354445307093239123673204539874327468760523363662593607374274243257836804321042480723266254453344693004109091393672033060239659168072563780849509777535102815452044563104603902510037445972900276317710151909673613281108449987186980249797812336996259965194417906070207202641352777316578783913565961396993601156427953387203260826168035848070432937033436771419342441631501091616855457561810792941890865941175549719955934073157054054957079832945370578413043302153880799881227475342205416851066646559502568248862952799359612749338788136239276909546154011789853832454583772141730167638560735315330161523211601411325679405440407838422508944238643498846939928533553169853760022965438298212234629325954905696390343773996682953285223873376352865426457505026163421315739904105044853153412077635526807108691539160428753089253487356946141061454040332239924357180696546900485078301279837905183544308440469763191683243072606096218884302486492271368857998918412774617633804625257022732292377050954073635128804786596090324775243825768809227838205272198873266087763932877536913931142597834270918857651550714923959031212692387781472162379727127023125456377259331852394061090923948138309382436724108448549855375971028831771872709287669121028852400823449930977484096945127685575072793702052469952749364876535560384527841715779457860462340927142559088076394163620440401401630626993869429158112184730304384699975486898871941930961425696883817211563390131438959391353882960702366254401556824774028899866557310161408393881316644899473573167307097336709742496725338127932099200618423646242387128785118304028229588527816361956214113448839381275533206181193928824126112616203857642340529246517999615640750175245112230840430265727278629089229432814046034706655447417638874536480072509377172572069944543619522815855949211073769195636698888015334390773072489280555558339810523284253124304005670240544613946723477781504278207338518292533098015671842073751210772751216743294521912157422158899734812599436926440878415616753083244918826189542705657680721383929542879680606030900797765932236181016991073456722209147573443350911048780110779256941885712255679544090944945473555963809765636456012785468999025089795189924295453530458516433520438801222661103668561616825282819746866465484509947950469858392372445531619369680460985235469192976949698379976180690858728350534168692948738161648977095586330124454714782947166124348842530039534482721071556581286286177855777683339831673892761482438372247556014876735435328390993930987751060772895264265931471827078998454874367760525994388518344964467160441651946000935027072982880552434343462970719584680697300836622925186523006788039865411469137583844061252788093345774986743903698053328110027823168313859114475536121987701859317628061994332350045014335309443646834033436024785096089105459362995721718170116154051688845377416956414514811285337220877028043435765950072535933923490933500439650740260012261627969715476335974841764409020269991345435347168015972248906939796130201290708230301163657643377251435633026089488917471125831640647251489393851783653715366778846855396387929762009338928728821683006164513579871633772827972965452235742391092765646940278701572153314767562598731456996893992998020732043016246003239955958383399979449497639036005560976736357174745971328330429708359598880620454838243351366799450268218751319243826990345884163327497825793061764382233412009368848844720440864334370756989856829451459297211199332234488855770447044993707016658266534723557411045428930730662746954896538871070593560553800351080334615394097348858333653614414064958638434063174109338768841654947258948068093396146401782438567081664354859284978724788986372726027951416831474854576900847012729620764952976429525468983391264829815085520947240040863901251656119698924745641256702519259771823171512645567411611652365967554162670845198724955657734432439544662220923590135090504986893644123142995031980489607762831275453976268174807276366966719270561176638220823971480662686532919638931893434431677435225805418041673538504010555900976411220105352698513428346692614009482762102371735006904002730533881336735148193397516179418831924584058921819391384164617744970780800942024998837432709762831876877443910583260548452996738015559279556454014574938791015869426485348872358411568887704678084117532468842753341939899339983151370119323697903880696468564358566004335628443320625905108332292196292593966706311850769815444483369841254894572082275733043187036984901058126957482130397768011802185163490671808581792689722866977139880460509509217439814657134821152961537394116278272488708404394789343387994681342723146654809318546170092208223337913225661211107433468547327684233238789058513843388642795230810744181975080519594270953821884418953022894809406980120654832102698899835876364569211618831655619848841731193721987591817438198509170746428712848295820053041479335387805851306380787189723526488372794431397337503971253440782848770687420582076700109119124142964334186773694919118658602645677943615696520287425162923050438439009012499700503091277565315041482571140422546731195528577177636697871116987599711836565522299510632177979731438436285805469195405127334030456956575089644615792697203761837126056525903744130525459709662382736280593597557943408675460223134269194470657790660589076079021226181453057594263222019251386699646714168217253410543265013106127317693748293926591625212553512133445452104556546015199732059614441929010114525821601194165042665239526526172324865038327089581101387369534599946936770068128858916798901250503514038915069291952001115320164316698170016487657209083390983279621661164411844456723645166425923449598539443003402102905563108851889600167795297674487696142951097828186072196916406311195094492086230268518640080442869315247233375302932578803359835545934377414552031759962673523661490489818188638159943784877781184409747599433098039131924178897106574610752451581545009719102245087016208870930392514885921089724344620697049360260993442164190313174626719638444404488187498278691326248444925890175118335983759513662896904318597853762595994656031076754269855988803422225180374689362999896199654269978715174580932537918431107737524793311638316901207395850401832008501416114164418439233058259472777252312921712432972595593109627364170606765106632641340472612376856163029897236025944051828540862054378422186105820544751719366114517865456044728150026648256646080507611299959042091087403181645102078189296646142400346739659926710417002541319421744269256385245593051349764794862557760131163697354851458882529844817639320786080624983163905554879172439230012460878751820955432244259926522099558087701854651719428970578832170251748936953192603560384404356650631052388978328459312339498046217466088558956852450715665344328355908956748580160229402461236342521205048277839314787436963800121705957841733965776149255746110894701144364886005850220837976654634147279197392452776031349937059526436732713789900862611956239998705847252286600873172929015981541118002065264716702688359320022372333122959503283061170507299813588894195340835872144162439489377708322449014349528494128066006023974504015924963246099525111108425064029980458178559169554459457044750364977937005609499537234410254470311933185520195829733017323128689332825685360380980812307772937485284016376154430439511473152574382204669320624984864846935316815462577193305385486447805711235400483406284649027878076881764444417551021730507290777668660571080850743682799248161528494221264756663210676361729349232376272541079402555843697043771374941681242894985439772745632002820595229835639027782000628978989979497308545221190851732975602714200838280859289495611563824584926080538536309570395681644255146882541475323355033855758707604514299181014529940632812264325464635607962873146306704329645951276188481727161119192525993399742461593117383961736177750970624987406010473406360107308104114245168016910466828372852688892707655613829329773917713814096788890679350689014357643816945511641354832125034995153133459677099477952708828245940920227830237279012494613109497880756111690992091338115061819167655659823529037406406085358051660885269942347869392174227345862719752960690994963351027309652928297050325722177602952360473696085114077103154288350192979200229574235519951678902831164905840968471216692492082917145900278446933267545147615993385822680701579250515841965806505265459083539074456558976212328656728050317517790362256252610038782399529509429918002650930409373795202566532147226281950662720192644724532639624273647976484950961620506817575615829496293702663817224909377402662279379716608534397303548278124867777312502924724001271057739440858609739035007190381352104925000569325094750997205955835328037201875782502292845634853844620827072232020811373477584772713481281471154572982279760180772761657591897042246952100196304695638288194288314207756748191396114923546432722480282511209248025854042955701467589873796928697027585982850334730716688840222136199885929247749283721555488997102083649987638425724305051994062827451682021542432625359828265424730815637460001798119681050862043428620864476808931591507060604397436481252430059639889252526968062794872505395592788824166882202425726148859714321122072345141797918145321736789233458185731967205291505072492201143846849496978068538064462475990755432906744315395863714557368066083142869187503515364252738062279330379425152838478995638789232499484754670903091394038337258160921242908066682921771545323326369372393352697115405236834055572791374490247678559229114045531839784293453402493298648242354701571146449978946192411295374794504416559705027140838933276100263512478895313616706949727357768098363075045284918320305847279167195087170418409990975815330829837624919529627623989563103378057821260180858171828744169812476483246430114635738606242322056774481328343967665858224905830350841001427762512773974376139631394415959369886393860947932437154139066960809650979776158401607469581084519786179587984707975116784885317816816547724895926106541512381392263817243645413018060541487053086126523089414781816739307430312738155900034292121069507721894091116991430515990922547624691433657470381011281761460197056878611224084246513846794655440888123798576619313975401350760805522071040127525462727610881958561137126532719756021704407560606834897097071115347965874713244860239866760126166926725179732518138497539955954536224191295802542391565997964273648454029372493853206168201185241788267373724365069061345342452265999672072894934342931571954754402265301262305991915709255144927138918989351762114542891274860331898921031602162854621837399246997207578099610633354075457119187753009401910160220284113520482661779975545360720547618321039559957639273342406395075286421916279510847682386844409453894289815177811376039413047237309845898169992280729889547342403264058904000882406943398448673847174805837678414638150530538992606011659783126262124076160279916800442317907678892999950334174487728959840437936865197856640449817309592127791687908420548403794869239645001610979451772892098994107025327764194054899049288903078745617872737043585244655676124683991241583779538313824307934862905691485037939070881531807878937462810713991968352539278852827438256842396946694634469782428941445943131822416175726728104937204624255837094717899989894351917352233359549972898616219767840376353986577622689987519527148126899507831924369500905463677547683837741005916795703595473608711640362930786335862060576038170874912441149103250973283583593208721595156978648132679196332387434792181882768955681644097912082671325180259609300282337111862963341292817327118893936632861864382380065331638406277013680948152375791122941173231313488666145043582742891717277140803810538526264936669919654527266757604604830504293642295344562697935928030214928651128958873325492022994602594578487918372222741250055374444081380140270285027656007042000863164246728846856800916571267855906281005061286022666319360490026420133053541536210758945001321917954779934754955114725327397512654387662151976029282011251117404031100266043008029439274911054100470077056331858776179727525450800630553826240275016593368764657283821855019964727543750876489060900123676084295729989688221311278921431733263881091931240041886415666110223317994754745465428884350761483271402760071464850158891931945375244691021275470631722063244143424472936877808759397442805242837398104760410453785514592390045718988364574502629774097778278068506859992655998280952530194970199140537914636104302270439379309757808894289936099420070379844505180806909470599902915485495332858778699109974165572625144414802205955583954896094808551473813159699290969901824623701216667709196363646738988909243945255196198823223849176663662310884583106363826699020867018135695682759218497914097797872918544595819338349901655291422947371576543130150499206152031120518994714188602711379978753920552678340626022189805003790666802615911937186750160631416546159213918033899314714471185838264671428373263852295879731604142054581599944168759458740489606780248634142031419401700187080609804687457355888007417487207571117832650633527879480716639585235102676157677931873066526163074138991381235172855303423660473663821983428500951919075082385714606499009466500880472193194789455490257934423084670379659638656583718754330924933759140038440562700799458338081429369791132083868606727372251544839255346321630251151461590285092239402781881483845513996924558622132746306080930455945099800957454390047160899173164637204187860826420047119740345320977076730631841843811246034029360328999206804825876379994474600013757631310317763476398650150188665243449347518215365997798503766142266889178681021872951330206341596165898290587775459159232848157152440953925289059224867963914800723954198298904953296791172237958389338240348755841746303479984726838810911883759409805860650197537100034586615397958658466149022474832769634026823121809403618807052987242513182672566668285560100508665290899688683061839004281143517677765521436295683858839696185482109013984273962257945925403407032086158693579865559375894039687329169052428779391001350517823055383945759351671791165229827190858902484186227009714777013977882552523963271972368920515106504006528045218093745214147367622432639875888022922940837717109389301894559635976593794824111859437243185206213354203222609667773015898133548676681650924583284834701266978881020715750846283318224171371707470037213990210553082173065103522005725224340187556044322773512391291862688681096893527912444354559457155842275470561205593583654513355268096711836835586362503839266613412805117137683867344331583958278490577439399354516240951205984381256807984824732644535984203882356615361927960304759790228787482072580731740700079668191164388264101528333103797100761447057875504787493055371158902481631183076004747165583665461467071866153156974719034897075501260336161985759320645551563331156911433745132222343130731910653254269971000585825472582490905592726871583541343913115845615398135129934432373015489636276817209560801457644494986715870380438622775598527493791761596249403171196246341189938196885434069186626302059688632282392499349249609138092685781924900026200696421352553719891460084844391274962822788010331786664002966611573312926669383923983947128921205376622992125268418695558572337649973678380589956142038438268088762066569003372569993293069829003378290148605655688462153861945979791159831930030917000881337789974276881304589749299425499496347529127337267678969058244857388638173546250499178170028532439492329189733527671501501211865247367516583103806515069448790640785361455487796921761130947913998253064727700343671859538650331885212560183115767279632458154338528641278204098776064086211970080275427133036515484353529100689121227199435817948357792986009665349962827966386773015791570284114176211773747198568896145863600142875947253276178587361516773319829615546493702087461614801554259438617230914269669925653369924711012142955271011813854239862029246314350430062990600307741086949958873886528776680259176857526136618988539703611483618908980503376467183640505543846162084161935100661876515785358522665189440176976593517088346171967652756757209004579920075743633567438426238812456165176734701323924828406037797899171981033926059462665509365793519483747214890868973528927966533182763896410944728635997826764660239796921822141088150298934566791177047544496181670028685406701252408134692630056884393918989012901436597315926648870503700989696445467113878994987151480998726233794613911643540852745779286587225871590490008447585029260233840930841743582345869092092684649511425339708923174718387151410083232925995800612638284527657047565306210480447111457825348142379294780681066315387102382533298019207815279841897279029282535674706644660332683969380046186650606410057382930004655616840113897081364320340405363914101590575962421982313968563375921520091299437538084399315824647257397644884129920813641736233963978855833440270810516729150855279060609452177242232527662923549058969927323863647709393823981847924124743837138535888564587628308932513830783512079631969887390298479700971045593482426601036819762912158014919374290738204550006879199671376649566765337131413350121405786881832620077646460463886303188224783063374313768483400145701803980675885137435452553429443416883688179350768285922673174512012656459949337718474190141627958470930926331838801629711106612652575345538965324776890227927386290299701991934978977892686428452680832091374006705978193190322308657044302495402070745274169105298801875364641744037392761041825936894286059230109439379802261234063302829105455233114988998299982128966735713772108146922546631551662966158148400194003371082193914052605147576964865666113272934873390178320625028137258918155140001565244694464138874501630045826538234570438110612168018824885232318470489064609311027367414159206474037803903540212386306919291634634226567472123511372349448807388663105971453834451503314520895156654349154880979728329953723518411951528084379868995709984210911812477931627224376840378262780223556130151407750536913635883154595381202937214692252152999974618345433778742312579742973847040079389030726501279280000018213671007781884268534032335372981384399382751074811348816255275187241462772653077379441585602421568926535227316383740449527020865623449841228190449929480976509461760535861661906761744039969874049779542149127768096499277648782031835650702426596422179359547705864860052533040124239230250820414020452716487005919803431115420242923088311687307149121509121943920635546128755834961656891479655148403633213959272637949384106105269682666961846009701619393341258503184700098340097624060661900337049170011306924369717635826438806107086351209637352719934217265347272608421399846591983918097964100579870459234449387028280213654043129254626377703705818311740610452180138007853082413106682549790401675809401891549161587921640590968717870686171818705234262018498627356916197705175415354569130006377995926800623408236752095739452486333195862476421846114067922815390995799711193611511206275489122588715888207194238931357856310752696360347615094874633455866638002020382541290387240178373836041169046055889908382391579883777194551935765393671396433864328873937073747568421619431225767818987745128685474951289870353184741139246443751404216913125132289967584436899304391358830595063555441311620956207880984076221982279777685112445043736771388991012036314286927605540714402450408635132615425483774940476655082402281596690767536638461178393393763514793928124579484106134353137465994301291989699082831535311968792677881032211502136515570688044999933429197888372412180148298568080411274051045440452966760191103183659183312719559606778845229434513961918421138800255946154018939308677182875513333383064152597254381884710644337028883184849259743958203310010825794965221018316157537185837919381362834298196642620063489931560617465274250847769775696531271653510474454145604252289307655230569347265506435432249204976311018585361348503461888610836141612899042877637074782092398480666173953824033853483433176698272313353470156270200016765123524985924580871821459871580710801534075521189344460770117174785318688011756948277672408791114226215786223796754114955938346128582126470640292019015878741802589393441180869443557745414869669987156590381435828555515569158323412603953273571644442310211560001470148814518779279802135161681181628851487830797817035634406160463092840886999346004175189224846293847049401764257295088140349858977886513786390676653053220207216905689044820758214353551750449598801101104533331109196689554591966380685381097760204867208514928038868515807522381495294550182982988175678889208282914473052430756914131548288657860130374600285355672408787060948145193897429700682052652285227287021657922540079058422826139566295069766407638749044244092963249403471090512240484111361045020920155592791991845203993882391540791892608473233459382709469280786672427405383144212635894639497325347425546915515070766454587468248416180701039654695400612014229685508641292547507711404787602490101646151499139004879459320781720733067394006813870041197580552979898729768662650936825027027567214187508465531585674759166107344635401565732892872702129799780325506319322767692094325675681597757012368089244691340836074722990763049847792066363454469893550065969768951501733216713666677912766201416036618326854080878258933827566946069657636527668113572634882029274283697153762143602502504720297607817760257894979904807191437310022871683658024750789112553818568349554913307941315147203809807654043775843938812269994504460193981092495206464090163258161729567392394309793403314055902645187033876002921508912621091506017242344335955908051697135731332269926584343539214876552595817065926941595704303311923253140527427779947277112335995769737338690937104956098809458028272897539913769752685724695238019957789180898179713532873418812814716220075324948721369273531554882832152152823297032021286856322068836486189875422330209782109285692527356002504019320340567538532812412219149691452048231806660396388577521031795667143007350230334896914232831911211878298842262265216125202970636834331323759502808527910141775467048295264835277745893677921600836198280096208757784783852468422951460075835158821602619450383499445180814986883021268470057328293514773300322790533130673186597419927710383186416032018446063469227768145467216134076540399210292185033427046915607800504056524823064516152009176915355305780882252921784577005598175372583948310662008076255573368483203898963091926203173717269196589046750709886523742170929302165113156505310779545990362263973118092920567650569900371099302712365770934672133685158101195182105184799450168040044347821730647511751910002088277746451851763686426065423142398489900541347027811506234875196737622341684168481434547465223254563079788659865975243756830672313267353199969375341229898358514195749887052231806824358908879777903061355494102645223394058749880372977565095690976231130065984953199385401084832292677165687198156005485092025456452168663206612043541106309212538213959641674302539959121805503796539124273366043814327315564185042772296906109631215418660758039317846894675416150500149984280335084177870910130388591683863263919681470392392303823662616138728653853128353585985865196163297763234150084139556367920276170071966724053829796033287123369642665417270791977429435756591531294724800598934586957895011831210707094124987707139910655399175567404049803364501629392977476919093466310686695688815262794261391096531994471327857549406173713483327737703476668961231171568404589729791671473752151131522737498016321050767404888664185369135763969336865754766412953665154046232985668341444743359639975211272911637065935811876939406697662389011305194237331455013076301899968605112647945269852043363002390320033431110685151070853392644401410953218644785609862256047118365155461394710435545510218702482089891022685097649928180754724187316647569120396472642545703960599720038591041548964868096804490191308588722240840370148128095005441930820849504282278752708720408394938295351233716475069615852259598988789236306022866501287272240566790362143535894091253960012291338972283083517146895724699449819327068830142296174260436409219392754907287987605782779708383842685243823184275851359277170234243919980793006364528357172009375283163256477808641512748344614622865108812695807457535840362529622955369589820980593361032074872328985817622539463957847642866071858829046962340371494691557467939666403083870900860946474976137788491909758336512993312395614430091476466382430046409220864488548441279294414665456310906549191192949463494930220371088921843107960128109932419040654775362977179213520083343303573094900030574209781958092954879721295413082158724235623182999829454687631974148007688471803007540764751687719493989528586536884162859140089444137683045500728910422548189944429993943588785240228564473422065538038242093568673475355894216425847751994355839004670517070962967113637887748340819936767068091190635430817140396826620594560708661834106319510067714086312506798830779436333511097912853824370330724226661454672328678807831702924686038799995600301848367480088548528500618823441447079144124217173838940238464422395574111721488699572843524892863261151255202451350435406449896215006151560579060082310628792139263663546157149370016846790721043889392448603256210009956434004478535549944235279467936192305548857062710065577655644606446446539021884805384232962061595741663607653774189644480388356511004647166713327763840259272553300733233881175476255354695349327891068513630228586534560428837312276797815147671316529155023609792073312350584119227099389158387742226459198336161599313225343721619612182250364407082482587747436177028775659521947986470351562517510427122804474569882638559305974163896977219718466040458258263983527678571479848889941295854547372978576075685409771296110180237734414354851167131559699866394353671595468116603101152480608609734368193749866719129094819473044125139293729494681607165539120133571266471652843866068022983190435169699937474289387549903984368469927565471297844123650465439836091888468238624485483483797837840931796451109972501898355078429014483804166223308714259576977487811215771152911475854877038875606148738010839197695748054636896149045513520541564196437574601605254919062933897776039363282240443005622000544594314548352724936350641111915596979720235084043141026773311284695252185763302143690270600079142243044652764355286202999599666086222453978445153109601051005958342253684997457195863990800765846808297331561018993286137264720412187991995212427274570560491691582755929159781988267496096229275820152072891593241962960484228593443865442627224576925607954036489203274505575270682449431671090050348994247541757371749615398124318654419614655857067741188293331647338556288139495788351872714292207223230600275484520416644542600437009559382233628726269509421033497000518205340180159555214088536369124635085658377122266465998593172311222713718919586617488881475617983705030742924863637560133344496146406662937045303890566919004887701194375323843448722807325323358766288671443395986000626425676062061769013820995760775243188406055316415179538062724157229262451141433778666368945544529691097357232270352297124207041191849411717551707232848242525655262708752460896434818328491644801450380857990244910307901813009219701483097223012604830265048981551663341190363623155688374864917653203734486329584928513282066977327340178690392800682286763041221930627217908077014237529431187497580347275872334387904805413675612342156694013963328467212729153454355340402433808925363883647412642302096096308814895129967374349193134026278091081904910970913562274078622699995871938836011461216581601250422448244430052641907275688020449562945281481145103894450969505489517971625540469349523574321103635081629418388257400682995900012561435680323003848183932291188796366865035197746044388212345436689509030390878963786091305924668948294680552980960350860652460345572770454324919163274101465545005932080225592960451151443409385392488320293259148837238613641637920276773277559796188072846167443536597919075204386097475652125926364456383032853704972351769447395266952212616893418632293285044710367892740170369201287473945818654432051881884130135632581626545424571947964845772100840683993250958612851087394900426371907544552492815105184653176149401270005300759134053280096639929957446774923106342693551857638976541010170675443141844914184482686312454006946600510344123127232596571400606509939566792630950765360282036169337779807603446313640148747795289165114751514482424041448852233595825178458058714030685806852166328979097265221956734447523309140998087873054715072482797959216080712244288599027757061299129116795508846390568554051576376487381077001455060805696144154520930887278297393931743862528603470244906959538423347819828199362991079118304740673956162123571916348711736178947064780166603715743302819336909032016573126156771080947097540535976310319457924344554550100479451896162848548917359682527151085371155167188384465126949154105063089648150371692847713491865475450006482212059108831336237219062236367817085169448792828750055601268898955783347403490258268095455893025141372357452989778432776536828478933450383954176608095773091021058380034082352073078109110050335681129340081387348478773771866508953279414025313192137433176968208771477710586367533771846512105870181474077637562154461708144838681989578008339814923434162626048503440473331004148742792637860553650880417594597199736897681378280830016572709900371062284907520442301997817172240571803968793292281663934190086411927226435296754402252670376627998050727182553345582774529378254763965494019458286651377532128156840579157493298469671111698234216393123387197846119791954033822340049448458533133352608311156000984906145302710237936188892217759833067407846066782510495244959080331012640833099291959496776497295273277332096062193247148989872952352074616582241621320291725173742517496712527079706114359003991154082937913955099484526586224885715002396597660172429742234630893303408536494650026355155655223780193469044002025440726207092497714443281971587664836106507949794561442318642910350218787641924547170943740247625136107534094380294524953006483295253864936196667452421270583743200955057394957689016309691361321128405100138606083272093280009523964546115495914969509797776713734405106753805800264659271679329109296748265295973704075384524334717868450095527701289869262633213089197370784106148016969977412194113260811652899728287654563493191559731083725357879336511354650668026479661434319828825619759338562360830955002663980958729365587966857292466627746319419520767860170159460986907045285149072087205239113325160452754218091471032409387538891727648388440581547330409432995022066451827160429653149206335996868342926605255424605235286042651327347223630431272829230022373414788722760624398394681586936594986418313790089228420750329676703913992466575571486360254401755752905980708402018012535735387213411717348068432707856823402684886855303841186525876017313385956733404606323708847100126230928408016707187862940968907739775756979973776924839104211762244288662831958269837200418808106861405385040739144892693793665412329925511819822114454289001949940552066535375462150620592122510128819908934052055694079950499182221863425171755625512701552441332646483250859528346692857572689870181088864725402355846446150430987570774324904053510269901987145146244018517771479060697218837856667210124843135918843152102578253616447246329335659344794794961847905632351090927543201192308034178238471147080091739554360384061909577038404346257199267116804651960559952580434498506301179139723009148724401121879980536560740436308498425643925650115912312666049502860708316125723051898153697659053715443646312696221095790366748567626702740654607819484059083017746728977758389402512695025133341437485395218708081099471634004934111423316984231800930897292022284276011943126911608422061670562432522482449374511649018140811129495612759365749044690530580755727121764841136985010045699182464980941282007164510853750024870016550341437913121169239757178722268266571457316613061643256189809965227185985973822560758212435259941305444285549428770055231088559034792240151491206004354211482696119425078849492936617041203294182807284660373360316167350686890658996565315766007031150667746422783003211504729461990154250418663121787845069924803905038888847601337990604810694525743197214409750558895025175427322331188106356316535137304677454921215911046968236513909537446497172906871852600796492463095526330628305171015568725696100947468054930043298277991031591373427493200599034941572213356160649025366253026932107498540191809757561444176645969297362960012051721148233390484889217388229232625764092824824699096566407566822336573470871386349506187260349352176505767882730428047757502180632172360319197349877081804448245943148156706115314653412707988863547715131875320519392414005324288947415101954446227196785264394212370674576825263704408401993011432186245337787591492384822354242656372802324303180143417214230168536182303405784779633979908242381312272912889431194739645848758635040961656251281089734125814964788018861401301421097985373684629370773211367041257337164300743044067107102874827808819743333397769678387954346848675591633038188326281876447439715454689104802129172640588367425607274501581899860801127477799283180856757333088862645820666879655191425687817835845847912289081045046902448782444068998977809974316769614634088829671896709292124543378965679739625412206683467743725464322636723091955696685713381125121020639330906197121285234562995242932630900399195014935631258597149809812221496980823612172927492441910295419465911863293970971692100361093382279057422418920100721542776504730849069256263702589397736706367295384568072181774305299697671695972756621042542439460498785133674649317009898431370854061820161970998459168797678193962468860616645327402488486237176180115071637107759815294245425115264597801537645154757381659112905478827089950447585391677578825084213779378820119036591064797823337841755893443992593146798971194136822688524797688954898731148652457785721867308926521073712227743480018882769201744381213409475306262727672686158547409420930816447750545113638997422363850515807060051903956534188239281601315762859613767665050535428204750115134457829771504751661384432248853828795439131238859896690678680659651179636513589551808838543862513590541072101320551298451502419179464494426029306034133065383529838126457986824931110937867445805415641902959562766009830789887126294060002364466679519664219173754764928676574431100775223520462003218394206335398792524611212566775661475590869649874016307051410247288190848019101298661315839007087183433380481079585360358553666812761218097334402279494511277767971029789360650403795348400527095610501424776767588890610258464955401829565621857361241826839972854009489045782175077639281275588201109828645541721061350427611487988628995867493155091976585223409001580273964588945348934361903079404146817658492344232055827082411561188787697425473764095304960203281382892525105478429068468339427894087729715304327785159707913996861245634091682080112591622040863007411453972206891845286939208259945028504560294504813404458270536147850743484869538392298827671672298045774238767520003454519047760088654768921881299404214720958450172560841791406830252844400105893992878750556129488533263767769929957457226968271645462318831978978168159504487954629419569722136871737044670810143764956679524158332375928596493115857541170942922757410534787778805567216066576088013166023730091493649120646812891074681751989072211747187478652368825336388562402181087846841460009526871865667465497354756316372827001060790954155769796155029376216706373514208681420135023402604575450731872164721268909657184877042577251318114142516320894127638556947334912125160433228003062557143071556012182315364661849332003928453121225507993288100321745027549415130159935070427095258680769309005105361863349960564482471576743031995628110991141499744310467912803098763034269696567820848903295384596914691321096396547296223048694314530831600052845021962858951829722632922146424733248686622812865468535476788751166834096759584227036348689720010452058802963290563737277086519752145935577469572470032683774374909970627857719698675059651201908206049459870691576226885896778316971092174585471080508239159073661743654229378844162161200484166532267449181798882298590733188105419133323205076755022590081054579200483254464171132313247214218281044507879842164711850746780338094937384612521210318097646884444847656403818383514575770391209523250559965358964544876529346535915287992772715439679138639429732138029602503199723950122013897515070048281593337290816959878830125857840457568927729289694204298458383085286079069928750029484267762191550408326003717681008477494734985407029743873276615681823283117900231832297710030017331572384778251746691445098636041736014617644235340270713702988994580763923289927169478390287444577933136526645195531003869032408058557179263206308931783014114195725849077641075129646895435980220679361640564456097096672966416331619930344640883614880984667577911993869940325113014374759945995953891273633099457098642922551373332843207655949489629785782720690795427705882530097814502720274389970819421418879098844705286714587172399023532592195644042250410271482900912034746536525076091272947885518505061659526300988835066211650971251019793936336969484866452687780777269042240089748934257829163331649010008277079909191293340672794540399308423469247753649406186524631313286408753336998056112715453283998650987534027038719565614794683649917401274275151063503735983778031181646530087913830334170775666075129418851932984063735093636810858328126354604689747356764849886727170966368224401104017729746636661276166607098942111832391141925335715748632041194196808729988831642062602254640358245099315568537819521098960163616523478098311204933661196428681608234641732071345765372998467632885784243764092756092713693823843490597952167898140525267833907267531328477272313807374924755408740765455858373905383342291025542744808762611644672298340539354474295636401754711147869100695097462798088714953147155498233128357691582071481395147737849273161626603550914424123222577774546099167519205522965076492532195504178532801542059847975877843378927435008902694179849784684923820073951449745872035699374548897573394189947369536672221717698745616722057792292198935336303178055347423549459413008442552609279827372500262484461584959665584973309272267388085838277273301663309881402665502223269459073460941383519914009689069247285658788379559776898368139063359859321112778050794945309937149283693553452124037329848425475352864962252468957400988798592629955675511983221990908376720709227128874263472887807446845800721281369224220872647342388449287082934039070043309302328088837162816991374616970559559300491071185444846164662461461554943843619457107996000807591399620168634852891696750320022761526487268330238206391518152387815768349746606563673410274339055440783200939593373493386630539633999433373819506356954374598000945539660308567730457440001732061601309234574114295488459895224406827716896875340510569703278929752669652355431023508403104027649513674413056939132766442999059386012144085683448923428647192623708016707111305665210030908472760937979705782972524937979211266172641392768584405101183957863664897489673787637610947059007121465479806700347293724215667094371887432717279949097954007976521949787268453259614221269365931632725811812201608517249229081914314048650724146429986503721970506304227228906609027120392854766520939957810764785459396108554331182993588837186008395580320517088611032932919059844578139224571483813952268512147592429614031878961804558008900106920448377686838359033984858596089984081813115934337241693577098978237950237696033107154101602064895784514218488222318492879812085995932356162806196028664145409848625914400257708161045513291150924147768574840097913580389622635743972022478652976868575801944580473301737759655997556515241217756747828095901255336914405681553637128478976589442959647643983029119349046039510751742005058484045308931797580399594236644609916793509234708384563934720200969672579718466896744586633686381674291068990004232533937106249927507796014493780712076190070417436807380713187130972458188082782439174095132422994627950588926417002354476023751212650706510553334972767621015173770517264554186482116667969732849834802554503276482048941300710683337185234750641561767185897942735020565957913139876784100317238187795980922124341483403821090340610574762729390880624286997152029734195049592258083507798640186241557427309381228680364843370512162670143435653104658996270242624584523999877217289430517485845335900053269719569106325125206683818254385965870947487610628569700462873430021289543551356692005778884108789017180415022640884841104184312164425389816815612463351890141904422897190153025782958844682767162554875354692760204521219970727460996913694238442780389510381323711371741193012950155612110464065917301812397600151610269990053759462498623751165402890683207202281979516533505277643313021076640330649508485092202240089450556295026960802300404099302315626507966220464599319359614369097382957801954394669898987856325564286699059585974658539681041066534679459590763690832598054014651216041369185774250852424146252374578021775422715504821557610169612425745803683370903365333960170936524421603267566112001069042731364229178879748629673176047781948595588282692370304130725516476770137832207976888060450540383997123162284315798665678564734731671899608532347543732561103158305852129011647986963265436858509474050271373062454019376866705981868682157367779699845334663329347679684033198375065456335060957739875098270710755538126080687552189049184526638389545873405721169985660409148171111170761511302952857541017268275220320589329884740181424146434727377916538301374143988614916562436115800757917013939084435937112253887199425564849933745489172790852524578222898184883295969134616004075322381507935555665537031435535495126006965296035490522469241272965077835697163282388938133276694064930917387799261309237320009254414905189343730962707773849097716865985733686729991788150429406453468786714689611790069133296187162202816951940911611025510416469216970223597145089999051303596835194462812073123289479535650010998556409660617892467143377446826083821690958221061107570351434224020200692762625780118580379935389936182298159024350941869366626746390938586806923083946915578919488252578918003002704696551359324695554027721093923280568797629063588172043631962558283160710378483430232794925752510049069905266508268482111473827687238835548357634772564669942923443418806372972957693232219065750989034028835751561555979367722419956435848023281533125299742667031563360293137679671053292592560037196669543253852939694816696451967267748799109962483844839521415330911748805655295685714939351175134626432882262925127410211357390083963303853252597983086185798885787841019151856346975653024887414502845269930182159304923203612721922674707051667107316922371638662008637178704481686106135870408132789963884742850700927818425951156199893345527788913896531196576115393024457536452393006573574698091393600235826083968026477829284163055430331070621842104599584807386872467301942088222465650002165920658738863175455862792866217946161593965677610325569524341406396159570102380156100868015683693131203947315590504812940492668348264303903522318218020634076635094464977062631645206764332103556315790227729581910320774206118467527603654656883642186432129976630290067607773944948945768490911620380905346588016074861695015814357735218437759920125278356811163142978525446060508757964539957460780489312160086450305401391823173243186230658397388867233629305075993142515891610845893516913852912136862978082941612029531709039697507613803754676368727726897064844719299091974536223120531948162686384225034640672687180276606484346496199533391196865272294295739319377221339303897484918998358752049803846981117884740310327489681509309371568592210738209184366070556845580785174079171296488430730813628427009183803162132727854445075399979827719590063469525225946662339056575644990659046700565425092165139785151495639804731753568954430660149255355788089353492673094830682895638622007912170272079464702827212272954498361148409933367229457687639087664095687238481971188292680512972134217881728087801468640792030267612111965822823974800988055956577839708692228444653529009123983309890881970448145163527071100962684850100619221996861240856088598566784358078901707246163703990751579379102847315220392992571316085158832815249007235057795704723016354610574851487360462938562859307764737478094219972203535267748092132442662712530217308496554073035578899209194324566365290700234625173687053329100470818964472774032696913370757697396400147051932787668182572505017566920879502052773162466428448360406141362308058072878767215529006352191450940501234734011605056251024824024583354750186917191765251553537505973373181487516464068939565542024419905503877825462720311129257086622548621896159054786940992668753131425421917869936039021363094340715098590018750086892527204532060169976512581836210964823410696041790490379195855072013053124771515289643301179157543780368888293779998549557981688042351187197600238487176347318020345193621485051450096801560107285254314354347920364511107413380157127602318128846652441349545735186176478675861249755510643959694117532047182591499229725977878901064081096087180028931438067236207939159688357557950010501758666907591881093279104815604954783839702586493288863818348503076220393028725003341223427236989027482433139365201156526389830599822563189799777921531377514560222360787163570739697967909415970789697464361273370947249831077278503900671108197903825439194031518824805569075019912040778860393006765519792975936704901668651807516160071758535659295453864971372713415186722021545730743623924837783519417464253571350732927445681087677267441679285562989360019893287341980561793527538376366780676675668218801779725305236240233386304221820000393774130514817191121432857648802833227299126025195660087005179189470949227333690623698431441160948650220760123001223521697575330039107982662883280541436650171767821951654150780397225495341860459182402489237054402489177555310446887986961071588937164376549634918165350548891402291217285692672063147231313334621510949650878641764716864627999807803253919263173568568025277468401686334049118983904629087284522752947683261173765442437736348472445657432288867806488564918388287013639853431404228800769678720558169255196740896218248329375976119530777006513627090014443001454333631880647765345634063409490705071626765400223184894603366738723336803157053145933648007178894946596813675407328940113513365254118899247236816339461239058653503469025213109336777464787340117659793657519237813689982738446779510156781504648951810342552209275533019758421311815434927002899156172631685603428679556731206249929163906794720633248407076818049312555703966720254578538903619927671096722147639994513642872350906312645374284301027972241907721719246604820183000861293689657023478815267089913837028534975774859823867562272524280011217993053321641629938732834753597284564224046148902953125611086627261017524666613287091265584142126996995071752203742275192990301023630151718582528601322555408873790820797386490128187057265896368495789193885754092837323417189391631849234257504411763183915851663709605682829715053013537709890707557521848590986322212199022725063227264254375339132839829216993642777201817357655559316354186743762727486171832508828390864994083347877094333372328110461075802019388350903802489241917361005915909563507922544923725592487975422764708672845965096777392791893699309756057600241316264766480433484467474488252901901140639958299807993750497999914147517005440028826111037102771796264079379907495117426406026302245794477855128527051866542666834611853788994029502950998361884445403619738302506424215835744339327665438010221899613417592748211072072044285095783484731436303635186851389943505599814045354665854162145870965337585578102531443414016097062955873093295797983739987914252182835193113837227132173878183932257882426680188892304844825094504344990825171194576566369602854303139636377473177439311635220257306187685848327116931339218394956284396256240182445647194969465957939975382990563695723482686052229475427540462469999750712505323372200374726437879354351428828384496613720161799913831409940764533578054060413946547977309431379420101496823561717766282596255374577080262233948049353297436695705105445491785219069709316069346363727551962942960888288602209360327644144958892465708377422142045517789425600009851259667422879567641002823708955998904712232097935030603091470208954536932771025874372187658641322977681703495813452468176930827484813986024494030675592854872561049312091097081139766131349276862305371706033459681210172230869298404089581779514340019300379660786439778247301555419345457282468160944146809437821885205902887166796094489070790611723557307778176212892193080673943840347461760348498396704527677549689876400098727128000834046808107112993131205282701644726829870896067404167364727965028453036243841966112010039155350718045345551534803827095844611620234379518747189732684169852652965305057819845134543364736318285640348459378125501578297002363659236166479548422552675417208838923277344911051141412461488656780037347159501985945713664978725095515202377446051393399783121898722480479837888670158575778417955670610438705294831687708051661892914332666140753480032670436457048106331953887304508259985103325557141528433824032798658232945574188280122323333538121760211386891878673453533755757280295876624625538189558881538522273691433740557936164183714234911908205624216114865390678348509970866873188039865265293591325994624703418168885785320987666427896215940579811501594671144993743336882628983274221296602773539115534570171806371450545915214213048850949379357646170028068973147960154613677203960214963177933389007375299097922978717665924537840896076606109723382797377231312199513773594852258545928954813084696883228653037141749959117420859661723046870218771260434222909792102600540493774149113334456721681128635198287707179565651370469611406574359714945452010575740772568618328288358510800417483822118877692310729619348207812542354162096639740984964371161471070469955715032462517099565641477231877260435579409701426466437148462998316656904927822414884054282403185313900391669994169813620803818835617441000786533365219880193021406492033166770342375619745179785079590935983253954364626153505566446160562585605157980180234872708518914633034284475568745458761130205652232551581009529398753011871538729592737477532332713407118733424661280906713205616137481420217259517365194249884684866562741082659940880285093760182162700188070879307552357451450629615867070015184449052777317206756799612984096713583873112576581750677612043258564169387024960731813381445850145748578380980473387159797928431762187322097758547187334065886612118958180785863639394351293204879984293677971207615554252323616652904189538969113669663274014038915571547701882562337337979246742804947956331881364130640129421668751821844629669210917215007285800495745930936838372506418337090705930713171991315100742764531466567319679553777618531274913997627649764416233299671245066073400576171420799303310553646763452674690721999575259898080686217939239396556203128027466101598189061749440130395750523531398213312149639281183686943182673851150419627344453140265728150050111542912142439625281306379510197139278157389176845303862261589274057890941050621649278957152311264225231367215552481384526757818962756591874719485388895432181255199611951241018470904154879161395923829121223678092276065230704479977067985003114107340234695651285049531694881470063269803938613397183174543484028790396821109484112335196530532594523088177698304994546641194611334555284229677296136649715905600543076657060911553226213828194146008418838340631075372456156726488971871799154682350596475663431561954189451089967649890799421696037543299229323633192952519203618772446930910703748144599178000280561291368384683790559939789183239937426819107798749040984950312574965376946577674232843316283919819632650766261413708512338720229610177691119756928623524610476604440321886292900321112774891240772714785490371965101708462711289873375469862316423958333970767786648927183115344712309241961652461202176963908613154581822568837541170733246563648909166598997934130490396065362048836626614862197361465321309693681219374203394776727398774312272957488384941600135711325639248990318125758103937039773001504209336811566203338887023190877806735972156586665315524404690522423223054168105287373669664707071141288211073967724580948152346913847619335049859854884677785703684838902594951572847704354009728048879638483446583301618376523553396379196352541182926079016729903865055852535087766101969059218887663989269809761018003763295900937018514891487688049073722009848304149581587533863646769301584299840842824146237978749900850625691778089915912662261362854340147243794771778807357547667022727171106211519232381493152426810712536582575012649784016767307820652524955258008696992728076902415897044192328031584844539586366640449529532862714269860546816857206064210789991347554116336463868221906973253231910270277144261709507581617728748287758099979239962370117562206083588337113814616792127588470616903387388080624510558699581554645588936290170702789112754617655500346142801232038092257964277118493571291264777588863476156410050481368478386669658460112926968110805724325195042395394756566389216523739639803885378206244471867144176460375024911240705614995300067228292812668782017041445920452884961279677829259123337466730104784091100866097407476826655532881091671496606802593183624512306419333509450040914524753209723491913320677113801974090913152778405115664136539255642805902450628169358005073415743773043429730421244754678084060098915283203054765267359552958415721650718069143924826801904125162421881079644627134250202048700438071716945741148668674568469375585545492022083698139125483738068321935068355523019150831673123569002233878268328158775312651137523668014696730178814574566161410349149619611699770760659906075314695805790355786523198422723888850423372526223982196597132031552155191114772771704055092617545720767947016069510750541247270876970205402243474314191878901480820966606035613159113427522367221504519414571522720040970700660962403122382658839971935671930184467765326041986788787153529994708191125591303498079624828223067121645816274496042450312169580627273232251879923930141506043581807019211569785734414816878581980980970803136850586119206692183211252001597349502172266782462263220920791702547307785949803840006683444537011418597495451021267933964429407712556533325408178472916268430813137250707832627219583531489112471415727820538623060087712633625514344563174551632535626376401248516384703151492621952411005159034092321949422571915354484330220074300681906578858587561095274913358646445834655946960801234060728404101113510614789914881836578716224800035677174506520725158637898948931942116325549942599038737698117326855229670747611101947631226674447224402549874301772924612074139838022185966537698363161254518136473359830226571253042524266983979031589807784400206468121448673812804330610020461104466272994707139539868755241070856122135221358059048894014478981339904013747750013585921330054785209656507058440643795154726857078306088309076554511740219059265463574417266577982005709525956200046667447440389173704617624989674264243055012417368068147011361468086434348319067311173977124505884280681535587543485597505089571429117157537216263089888267041747838041291166983339626829352456318252374053436108864588807390537741603267348894987061407613462130973791621803847565395717050424007224224184326697851898545698422962898741258298366516500318410446376764381207706700538265115683274882762918312061997308094163042471822154754305255272133044092044523338336678516061543840606396888196541740439348651998484314153451614704301003919345160065020794944271288730410698860485403062422671453989384206840293986224766014089460900332829353890582895532879515271419030644212704307483047942891542486550987524176761425323668066783910836134755417579663250720471489858383165305089168341049319455763944719422267409359660513941694017815001278917759205827201115235135136322643777981456423546833425309395250023965216786248654321659221373440236013894086404019701399932098921937822524971056767556847658299517294528098617705466735904461724084132421335827170919275557823288015799796819661721286106878881109119087419443837153272663450881070078703812699229460383010867204337857976509122573232229205531648381179501878915526515043160072010328206170156394441505907437209792521490509293869927349440456132306796504980858498550273033179555232904875943401484466479148138494024141897478860994743895764869015478475584048550392673081654205081741792136512215202368379466926373751248486428526691706268289944123481687467980233511540543027488200123645086231202135168378437524426776160982757514321704499266530124151362804092051617710120068644289665215176015339243153331100634048584437429437111069627318483104897205129790451122468229524598385131440186884234709328272128840606361990301524055691637450285114772706703049377251467259247316173213032530344915107689968154665671488327276654839759539645021445807168101153534292795510613873138862815345901537922592372105127286276186681294891432966175851119026036380302953696781700684105419918330090012441049883869669933081087082495502769293262444991362673680998750938431340618510930961518343512687958154825058360336865061433246768804651619471645643063061794255476742099163485802956032468900111922332218140150360065625729595551017976409662483109071009257687142246051359152087035492702248954382388448208285639973554605119808506551603142576233017873653757772977091448434479659334770147893857897931169701583471507011417144636007496042332858719995529970610192487448866040045024521384053295633614353354846760474693710589575509518489188276824068564936087376382347576338575862827199712694378367384659241023472818172397905150104925084772230944955581868808686780641870078874230662154430288995023064464616544582748002893042592122564884633607169058778111215261126593033472344954256812045306452790219795390572669591493544638312167761754276314649506421194287392502538754273394210887627839953193835733933657728316488371698105384261006603434023610154590945728223905258895142614077859000023216756542505043825745110566428700760675596889382253816987989753358773153344680392458671650835680416236049206735190264395765121754654359274126227324558283991191309706227901675215690464607217655493329609883444935857730571982520654450656729619647655853305212807559060251354807926720552632869590034289766644618342781241928076450283388714638149006976414402065083114883574440364350443063422841332981795161513337438512631977108843934127776568699090018338771884837154339568976970751991475050274228235746170272802880787503840240317517156483135536136190532094430230022476158821885071164441423889806809738036412814578194080756818491948237724431659008245710413968498492117976866351940824128254273246952972578141008796769957454970436444056980335034182168621238320036988826960915024344992629814518112437082446075865279962113887604691333623410352215805294706129552475673611538623208379035833732027085738384614182739190127847571770294643403365826871690819698190741022073850693684944356629321690856963356606275392184368062872346140292076316492668438513695382972798393660844853402617689211671900626857533814230430105704054301827824881642263954943507127441374380053425902023673711379057596704187257576938553153920306393859520632955117268798778103139530372256519425099029861033151482982818917189181429769155022165202978423750503022567426049696890104810558999071846066502952413101683533004399804383162579875274495369048698916579610812816653325759450263158537371116319874987176885347387974726452813590941344804536796655022274555981565707772628510148481158984873764796351188034176586691473282857453065153165187240769510359725589557373002538636195568842530672314145551194154732509884710749025645016249390014963287453011254444892898075751055151019638194334071009256494951617716719317384504156605451076610838985644143114483332237467936972578596518099506109039289210700454329150560149029780982250533554094153267030219169407367434010365476113524771173243949562490433255912342288074045185210220804867037739246625160789783100079069116908040044645493780604943567624218626836856356636950301770847788473134551835848724712926765873134479498630808312278295087758415900907113332421237839085862157291405073355624530753050452952576659918246986761003879717023764119021050996815363163266849606964910586167059561122803706347330781143269547489594633937253660503059685945671639773845122940569413896153099807742766951949265310586873230021476178096013420371463332351978813299571781159249841824028410963393393067034555928715626721462748772024716568959636254331269622398491089798754870696711815396604057981164045689821881473347644727352846570149593166902486502633636999899790336708021329650307055194311476022021300275455570112457071710188335633502595014070967762261542007618527843906418383002850169253320808914993352406840602016372458824814775738005681490045431607017923875645455265576614922906337684291310413851817939169057077442336226317411826277185629754774375636071069321510502087753996043670215709054526031134462937868780649949645322755705158505012469874560167157542629491033125459625066732959545894216287014746480980895973192973136998520985012621820737039791915382678119585233617517060871313941178795562426176577601251222624816382164779127515206800870618828121514758145742036524806918388161728196604477347079462476761782495736887554412989923698224099101289278374509498006584780976485809902079565604058187678791059559414366623561173968858075389972381812168336054204755176611039709413260677887754715710371371402122923534826324527571573060454068190654158525803167223826080997295120093737551067264189718863953648835120536633149047896369615558356406306485634397495198407911794861112029385971004281054383650486735237866377366646087978606198857847187425710579206832104075957691214936852744197720724979262361927499501853564557566163923971403986463967314643437926675787189605358755842277490024159732253262607624430146188936114087284132094281704520403880512388118746056628236366061425037398623607498069359450057064253667696448022029483413285127179682622568913904131605764102087411375071865322583817121284092376617955479030726690925728750174596061389808839366939496447261192752679478669886310155816068111226204596088522985158394239212765580614406927911020869613883777677372614582729902985542807458535871548218615462827577215510441113171519778674740598972243115888101886574374758916223555615619611480021697950098550267676605272137299646287776615571124796063361518391189021670166837949650316822411914382307945945455575483237211071183035331955409553734844216745966076085953516887486474894990540570674103292172389124576760929963862016299118046074640520022926206345565711413431394076021901342139292872512509129196286914828702974550981310584781760866447017619994211839773640178555672430008849160128670488324095908505108951296829250551448108700926393763087276914062755371619748049329684138512143334021862546537373916493248503046616182471067497080156269898986356885789177123029826711735458486033784545757993954190364365447311964223647136190797294046659416114224988487481356259110155360494825653494713080994876721541587426961151593751831387394641781993386677852232907287797955018637224610399248078331470738141451821172408652893051437751198024474382466265843018085173312453904289211024671124520089824377107815346761607932756335292326523879092613136900936381324685511296840889349087508040228130331819651423878863687009990558776182435908431059407829209703021814459650412152849270235514456145080964885323119084345158096681533045995564965549178182457497587083502248506341832563313869854037624348900664812495907314841990679256696079983811158385246099341316514555092119702001150522087771795133905091651229413865227597161975401503887029499300713304156900478697313210422212606950421626537424687550351268368248294939737593930956621101176692338240316892280504015515112050374337894427874632279029436032046276873772872860964079015014402610155443382382995756844217989002034759488174533810271128888763745471589489236928965365326984838982298284340058069805102373034187980364350926435822610332564181910732611637214658319590219211752073144467630753624157663078924472487682414823504286667450676572411421664843165309877746353682647229983580697116481587847481459852015738962681883803780200015604842717465726453526067591980996517562740599788823609248165010054260350975503656466439727966904935461825543668507561750963500593129810378979233089964284822880331148117526222557469332739379602012631790070622707109835526063827215391346830157667168238103202669484697957364618328264133263658815049254733421023725554743452830260989934772511239156490510982040496543560183861806169308568763503574183361345033553292151747975991636800920226478627566926104314734463062931054338591487918036600245530329081887041139856285413935046628488474549788632106095429969241580977038694237520289850879621355215658440557304632884092431320095943281944221041158062619583200182616385405683297679999413289122039793071745593204108755662463686235494255468247247361754003190232407564272917510562988490280677485628440860181641936584981359959352329429037329145386927544015225934646967418078655435243240508954596071264547171824304110143740098012034906430495808612467360917767948618445872172496919950473098787372512878951175670202184723645802655157281396899419607701517702100875232757175195269340989280640891714851106008344286432115359315872298318296078695257455436482388954902615299928593763390832592329216724747005319962260162630203114437221295020959689727810447252866213977293723311713751080573357349132295424301916970335724213967666852879656012451558318494575384995670365732775521176510258058260902307699043101103950026775452173070402285139773262655381017298688288224510431494444290783040222705414456216571595820052324460305741291900318936202118329485652814810864255121853228452508936500547449452893696136711851423597916916532367686018425102757857638079996439532976072410680120038104807443242369005352797361166500424736609303927258514470166710422123339624813158785048930610531651930675105152404454014710048351526417620422379212884726947041204798990385131599820070601044527041207072524157108765989168908190855331465174674271041835646370141684304978847475833074968519641883490362554473983703333695178567667837726121055472997734817541094217669173116429297136143671609606415036084549268802904550340676700978341737839029541088845140707441949506404441469391371585751494111829768574605417167027146654379343050038145680686924230470349664983567417886901142741045192808108293320039321784937779513702915565067088277368929060353175266973882286417177277800204340327761442140212509146768879213057528904060886358874439463987315545156352838988884315054915214707606791895951249796783201424050759485365180976066764272934683134519162248287432995350464171639399901041436317317484669796532272222016980874653003188529847841944120725400443653572014754348043880247933629414573187916997910151173286487189771456717648905012372114279415873001229742097364502052255175223254752379124748996835597624116253877430617858758829000867002397231079629658250175093260641080170014467629149458567253840389726409592929859197728890093853146536462048323484690813786447852651664480846493953023281049628997336384013250813757250293021020365865325501265433215628053490499923848216891094964640169249749178837643543614768600907010754282172704969662089682400128986543617100621847805083944810078489866381431629391895072018200402405526139350004257772451389792736488651648953964693563952016694779151544218537162506580529657071875786929750149731235836926768311430891414740044058421849063457746821441446639071664983238808865778941770819521871408779862447042815820737900804352081303983054456710425529860946356568667282750816348980307973344531391431593519581034065118008117175266725063783070179215872386104580426214581954792752254787001222695509221334195426032202405910275067135133526010115077289271009166652898180084814144274592086329773060731964943726466147870046470714252749616599586298998901540839971408700891163403449482210641860401125457631174783594431843351767733376187870282005770209748176758117301627753059974990127193463603046449685939694823056976323187569689898473838229301149097528494743622306372061529629309325675673907472044688850027904953780867931191772587389502276737307294975666311396496276304516437820844183702307187796737786823331215036244276047569543722602258372342376438990643487571495498183353243970650912790261177113370292497433544491157065140942805406624851942473148017690169667621125219224649941062793086229600128649803914736367836372991998190035308306628975061767427166780212988766317801538401780994070933291374573697980567893002974569222327825676819743382674091965708604655600995980615910560090353301272928853297961490407391881782864116861040139521792053504042325099355479198190318906060762237203386079157022750412618494184679632935585320426280525499444893324210593937245029403708395777066754431317853272384382819195684363983439404474090681375798654260338360318727455579375473457890985090194765176508190665707217644788303017775926145188290913982651675483314548559131664613315265919646253155610958411411241862505197184312600939609386794960532611182062733824986750177646679488163561910812404742523235778641893293204884506995967475843653108317414361560666590852162809509375700942425979100394263039981516598452730599397520529948084838679417658704389064903285312432172485951653004103679836307500489220058739507088385946581009023841172523285232558230530221597759309489899881718675379786830724404777358855511999430851019009310011492369858259925608525126997972851039318513393648742833631230949373725198838325142848957576763259801361407195927558663708309483195952342302670468196644586621528061295635865026918398968487507113225684398688623710430239246579935325828612601970077881917601479482313013094960088552095609192592519758474777065250369839097847427967571978046124940776075539424830671584788444440707977541644364804231660833057550127248341572004064109107896456212352968414953752022549411140923518227885501206368271037373564604964349138863996225841248668868235615202681108613130187573606972367354878088337852978386131749651868340427981804462854474000573331550156076156716515877384806450330862268201902541901240442980720004876199680905026003186068266077010585706149628483181448426897086837206714544452222523051509682194584179574490525019743418824395188051942040353446880882034806376367076311572776103945502454150549936017976965440554410361154520977406664272054327244588352752924291942876091230571244471885553800613919992223984617230972494336572565886762535201660707838703929047811374771708221161028523531833407329626250901724668375456452973263230260170627985032252376063415906429844602248193946063689630562380719179924184940792920279693931246228643213781086547672757274117099354309078536674756620395038024996366100103561383070969743210425248753282746255868291741104281273238936631843419448647858650123174030378159196384750878249668635925466030634497722964166529014599815262502876323794111637157549682983964115734111065602758000599052805243763574942648771539047714494371751505930471830636267622416421699369605649526942345617398362373787759292479828038082312594248873683342617778457777868848892982605454897166836987737092539129339052570046031654368895517095969856447670031025329535874136002482235422929608045400270869111359842515176042027971503894462316920379733321972874446277776532232786258202528282068100606292430847824360895364869200194768164075524529318125902232031185216021392602805651662108290213585924476653521666476240510422322746918712403708307214399085675277805516332515715012436137833549012966137405375838099103114784258558828262708518270170822912406135207479545794172515837390972942845834881369241469712643514368523550751004090720159610548327613215824657240665838654133531498212957416141306672059030371871224659076594384337350254483197967975123659872938037547830446590764385248712991904599026625728868127041644231047494567426228214428880779334141110466154628058537768868013739580966671713892945956501995320958660039126357607859281275277531006164707570124563980217691769674524456460079042934792408932832867280521797389417740479739884711164042082997556117914601297812741315121205153535993819454453519029020198141341194510522441752736800100009790465898194522864210620062281939647211630348208674746288937559981253938731789664670560972944834230963598483937989973794947220863141529976700646799241364532198648782993631563952578300099573328891050937646823417464913824751229151356487881807732590110406348390988730565840251471655867167249015723040357157219501412177635881175034110969162904288256521135466895322550204397707923924249667251787219308123280109299896572402560872269745351958568445339430834321995657268932879232708947070470144202237116742700251400516971275602901336522773161468850849271988533812031007318761376031887257275568003394080907274009258076484567015121344976392038454059603140980849471968045735673438542660228117955570883055125925447234362001524796608063773674908416878775994706043908090087553425956307677765684259235852262548871973807371555729190819974284808460337577486915380878646470650604043852715966791242368432829722464990569394306879056760226474918091970818538139847664278932265162560989030748946173988985426747668552010057152169105913331762964215709269675335576237397983531024269507040827911919394200838063518873709983178569621664177110017676546410737031204628460197747041719212521790263894193913354134930832398261392151806989807957768230497687038242360918037489505143457261141985841448941320387936344379983252101443065587892563768979888563761873902158258295778736795931473374346244044400933012685937793516611364348257289060207401285559239069190046669296733975616116328875376507881271383826512576776594269986258731435938407967715549027977480775443542856741341259484912191950971151918721769153320797365914057284321193493936135632755884350342539619454785670481384797568802600192887189927154677469109759176560694220439095757163849417308596975231560495560828348121773457356700652943205592976149922856505717048430195809327645042954184362479733571890956507177373750650170491054855646795657355700027328198764678135249533520155680092316744386900103562255252144366664828256330295390672019220007313376577891222531044443650144960490686302234370880367654951859221824361005707512583277473202894749219885986596242755882535651453580170087420644388641251867890515633876641564582419119201922940063266158481876019027232885274719852972851402228853908070881443404835150548964997279942625512865268877742279910499647601969381554417810859516745121318401563768769223028018528815606472824178179747879260152042997660323892711482150451529660657034030666293733284923508693349640315746066890153829931430620204754592988050719695495821240050382095934164760928525285813205559678415512629151707925456323790517026554197319585151261736424612215903956854856545980454429711171144821545218223075245901352914130296313735933253809188835596623012334992138400831339143223070125915036998930596715620216971154053246114383265103073377033410179019230125839433230869142652751193798277322532914613383557151175910146243360816173511746697496111836183118592862289597124606726997260676310757302956420543170892875228695865707033581788972299991408175124361306921398728577747130212139875378734379999622056171827260833852649482272007700717749688146155389920893118473434379002363206425195163274954103296556698773380752562307735489907955784181434785811343172046529803447342281528002266727539254586144379606137148485171716786153730561670710567595792271042326574749293047312624142930164851197401414739684775158133480985254144201774253149783834981033026701586440379443799891325363581522313365786137562493293724413533985024970902760659544657023920891319337213643160978023975302770090543958278147545761705244970575662144459391640151364330168990116783581405685838639569807996714499006543552891995582736746662665568533725257807813429958843973818420541616009452221627378552392890410835180104446515447837647349075251209657361216501479313429086321851042158400259009649844357318566785140842982430656636012026648026392619592186117615451589291242959180402111490900125932219388365109828136496628485978083702957531690223182934842749716251966192585206155495760418661919445823103939546296394713940418259702195875775829981302292671169049707587832657924379746554957427243570872761034194680431739681195784246107506198942865794277530750561228391712701256007910258875313778473678175532316716004740336165616618009409239822503866871872140959343991387980613649286292431737925432798306969837727996928618799376334595132656394216486024535499128773841362714877029183346229329355372624216103856101018718760673874649868311428256304390813114920940558535753376750943673712422296542227764016546879144301264940108389693445028315769179732248025689347978361768344222748141327138166441413323572989166672764399697927314046176958479786893993488505197612118154354906770831805362552877760580670651967753270404420642806979888274540736460284064718210592018325728338568630920240221295453848702617656596571524110312315462972478680009832942692328083646046524430330013674847674643822325070988991071499840891926811031863554450506991196614323792166397118523566271213944199878601143495649374855424558136768419400753334550121608096537585000836453541356948482481822966688364820688727552778330322469625472420782985248147702537671905271129544178125298169196315183119543680820594351913326318380445215097375790147284685350134365897626005084027268308125100294346733969178157622521065137219541003269476576809587936386421868931165686403492405901354740938361007377847306628042570319785222946560015088620308176710549463756379455056793086525801161799564118868117900989458176488561222721219859009222237643178015738190298808706261582705191965501882136642645073058143389089392827536698288980253159726571686135048420242745805379496140123755055304796981141015535155830231212981406543896618331921991256459798738854794256946671457490082295745244276844041333779670398638796360159082439318093338450918114802717639314721231817531120727885534329056264003921509482453596232178568213433728206351226633958434898640099986593257101485366965719012255071084311856005646460684600631329971576227624378066595831353253886999486608986094073605689490471774244358039533796482242871862509627188227770876753517416293716914571446646755732174202527123208849365928095912235844058116549272781103156059101338390868248375044412416892622501568955301528811661431674561527542082543780437765192819271332455957879822505669993409591311465847701168138696321676570380269862981310908341962546910740107780576336328810725179813373630125942276635952218499339412578151468409559104637142660983172624117670123517012201713116726157823703828229494378574323914071797028023843486605263195057808523114195234200773569763635065191905873764149032873943929239904011703550109097573411798930280964495825948703882768943859956768657377293453708708459680748449048840610684785664437129592045618947110079439306901539112173891818269913266053400664647628537601495935783032487953153816198623340679393820126085123411795645629304093881732172613717046831496850555610072313744846375424620101846159984871866750717103312184034955995072726579083529609196740275704879879152893999717246119052637309373217367009443435226500022944122246506585850889309681376949915730814779764530186429625417595637876180357847420524959502502111875759831350822497010645106685944884841173925114061948972906833711696404574808521996685604240697872471211579336756619465982030716742549838868210430315622028388441099453177376893558180664831099225888510445622901788332403682683980277240206942512175388896668040976844758336872461777153736768592942054846887461473444897600028008094335117693374386534232354091950430193444537414830148763806451312754125070554291378493456535230588476693821142610957189635561943056460564894657122459911122754802942176926942814408277553603007410653143276916695391572370412453091562442375879930218283446429885405500519845535138320241995583820554856584902479125622825412397389577647202573486687927451663824222373310214438152920305029006544213439141643699083142994303986353058828384675998440866257924732771282993684673453075887867329283417851835710650188740197513745102426247422538619417387063472203876542020694314470271203630134721322211936069739938406503636022984947326302221879808862181973404195380206177042062993458851499724037329367790461257489362612516056636229068906095586656679691318036732806250236444617335887863686740325806388602995423810888241820278254957728439540852073957228914508916494510889608039345588195386436913369782339333254048618243922613939938120550970556988339366285675613469129926922553691682204258549212426116424191700873815127715598038578181482828036380235751503218813283751979843669093618331680353025339746705353788416091696996094806383906798080531608459084086189454424056860367769027221620165993492522820263005111426369371834443017679484447082485502811738325390946880747654560904386263366283476038122441330261715696895035959536247430096066232106586795506923779473037933282468290566358262405167872088168682026788594858864873622060835090060606535171424503338693699383856515662774027855661035468197626677528486333252212030705506216066752092226046738953591184252186569750424450957632298987967265920244009679235213321802272222552102947323876369867818983984285318552140057438886520424062230939241483529604780169478455933017134244170680622779572994764245687333936340466804535606443615917084143856406435191511382920537145895311596668619905701014225205122913171075103215895007478077208922860114079673325674743708518715155692838767997257942058532087217523192459020490306793520357956933732182242745969182017062908699835720006376942520705546995727718394918573876435366103164953301390682661145117629828872744371240554579556845969371514052901244847352017327074122118820455066132968589651399894622752450351462303641200944525163598110547702025917548581674962916803188621667683232649495888594499028189410822086204429850953382464456025058312761806130336074672194997522513170499561349459251621842498743883903061631631809743651749885109406791160986502319697452161756169484324339227683234753433288090521323153362139438387185022133017159618851934234566130224974374803222680300009548542252241394133923619273078620655990763604232283397959835229123091876435907360952143031945637207418159570417150064372985325180261605208470328881281733197086400631125966290837404093310767769117864239873782237323199067399506275265604985453714763604450342236060697504285571075952811081699915745628193397709605636366463453377943566841991617684021955682806452511926214787032384663033546326414830372624506784864335908611036669513934805226986938513695529690730399511962546294069717219120318844790450290907914125055283170186927312093861720911472351642873024118698693557913983608371585715079512370436995437519966448039021787291131754183371692104810761511333355706436967354509696479384179966287648954062795013805265803512796495501716421247957488935033001469026429606758321604904739055176494041980853754979213416938835788464435065511597264059885090539626728090372270581214632620885009689902932870339896338102730646910168509345821181745347026772095323415204325555650328170920314652059407616396382430838857714020762817058883198784382315659300570510809116658610638857027286153240112922513708228897303460676298882611667735785211745877923429507709838505082348719653273929805128221398884687178887824282668835450431414435524230980659687975990115564016089604543277167165703456800017550277550224296018478535028781339730531052492517067905201824643033005072398545431578523603498796174374325537011819878228935185080852512516685100224895187706328428598151288684759652555616354096740541313361095060423904450955636905290249798278594685575918322827983834672564080356536049095717881098681681879294768101798974555959946908539367790196877011652298200567692876000042482081401229765100656698070715955395647111887568528142538210373060639824533984439762200872369505142280391032567435858055949485464974559188990201108743782218376822537086112365155492571831260682424861153833183263246983296897253577901461563622473410189873663415654773353136723992291288701289019715157718636365445190089560897350588095683673057424472981022921215137574045016573541163511615834961530891666326793332253679674223571770054011401814468552079812870858457556688693646989535603133619449466607960273769826973310800455961181261780429213297158871363516178604728624572957022089768690796563855392244544834741419452439779372733811339695076585772098632576257547132401908192712160122455926686276478372845268486236928168139668036498294476768692025778210817314807429620202489093794464250042202359269340989397942666751501353650829331899287291876600329297500828420586742028150032660107788401374814825888244585151452514142300220216455971580482661027823687873430280478567259249958437776248510224882715986606604678058127775893041589072537050122902786417307704443377854547134435518693697245342023021596516297099411938807743926844905401235064467642398803462346053872986211982185806008678138104966815000111511675047017822589358448541239880698407709683956743832795004490150275601105752895409594409450635076452088217864615003077818855094347043418975398238321210703653633038867980332378497176532115670980481450977802322602548477179150128575793620367949225395588197267219695141801524510626415500217927026351422499602955447921517059449120276548775384385384635136959212124119020790750015685017817859630517669158653418599982035737290855522008841013645597451472617146888803313970932875190790831248269575006466951094041831932351630596479128358451355153372085686801206044687139658015932534008833718579826760414328774084831418383744076514120240885423337763159034968790240615269856774837882064454925305603844527550990859091910609369661113910093017579008556808426076422155213471879997035672759590619402469194865162265808904048633517323449296856553202955300453335301804532187385375881973291225230794102953647776916706328512248850424450327167822378041766488182422432476167795190427560493968507336312450309124474630985349922825145709275581485076221788426156749786400116025024424205795989863044126542330927805289824971527174774641678555679120481145546963469560968177261500073815093199011947826115815599486052045562062655603931862196584310455198684763721511489944961706331079018851448735530997289451942800948072799892648560440004423619770837449665380667357486814559053490491826139826723224705931610029727030608243886218914719261717932835186178678484747152435134485571517616172326618127099401441616370949088050544267431271291514599855620391347138697036279485660502524359568930956949147429122691256889148293890910226452058345405905036460127003700292014151824574945579022540508855337230633191766051849175879596336643696313729837824940795908927497276398144720735480999722646230495012447943593896534226706380974959273933359260007790071409082462196146046747879697187457455985105305858275953006812268861793186005037325054819465981186904974066858033741322156864108057335120158193953056836366823956014050160290313137401857843803162120994869162196520941915136855372510181534894059146303150928542928274084243417227490868795281942850544873545095886170524119022088236340272444265828847833658667132691495799253713975442140223527237014801685238312952510853466445040866744409873712092428686974785337091076829539637694762351677956569888133888750734986770778340592233700274176143710176314847179313528861831943042925735308650713594712144911559607923788939746077893294998673205132136833934744075118122608151665416404749239106896009894590751015670832394983706381723749872365424188183318393003663842206322685176298278859353165209818108924573063370901876584185695936109547283824186544650672967384698166164783464573452106988093137192439607082952186366730161230948569554099762076306247043155645380524081823143253761101238483084373917378220437986569152835735217769334005073216830196544676207278739634900607005135560435112345287518751516497089638053295384075654464851302951996113819247886128492963590294195290530145079537962151813562278011773875907925898332248091213243798030920972828414828599521839862786724524087247928499184551536665882928934285455364349696865898294690507590112319118798193838234479774172021711338280866205999639769999198127465405289648323065263030716191510934880732153852322453052235948738503810891441346779779960662431123608889885506190453870976033534867912879204538074144531371513670365602809039163549988006037442175598518603571982947683921674502045451670117972587061477598279831230344093864933999545134755296933069746448729491686991260605948946230867920737141881372499790924905532035970202536269846280847342781211758364548346915046492652730591105991767814513702955153350752105436828841967554215843289531540227387700388204074286262875208279997611685015581870106049063006571517050731597623256556170118208220914083944509368798940738267001623295378882909915804741548157026847218080202658239628004247661070041069455063696353416222256249103023298688644953347756369207291090141959521654403629454864940567103841775652123549116605212888351782765758615506844606222537413358474790733906247929037583606027795703929230750173030804099818556864488336398494884704526891428262101379323957461628352982947658640488295109375349280333867206280051666680179203890039835258690911261240672829502827566471877218755121819397562937253776695862731888767209342773659982924688135890124800579781319233439838187112107452922321171376891215654906297243125179037538637948929795225553526898326715215983678744008753842537803701995990559519664027501413020377807049585854962635900804176425075850642208363844050504608330888394784694699472123484342971292220453205194894114987511518802171977266914659148754387267277488361311879622217037321127636573542685082213118966376430498499181580095617288769387552199847452101462128426269262338938869302201992285833155227976122681208911979553515774306945014227711791928165134574161041234592972692022908286442245265513300013513489512825724929296997159088826270737818210706734628698157003496487442788359859021417075343975355445398485890952634456414675427747039152129170426941608202782074069262338940488236170365318797483555507078341630011638278705565250563049676274643946669468249726776844207531202478614260682253085237017866147570388958188436724632821280980583767464984871537341552604956350784903322852719142409903452287390658356300875255811172887197505638011097505118081463345908146765555971011242000393312322432995219074330129744808498862090316969191776945207947720918210287761903017651928155951795543448905640248725419495423396302277044863232935195361222140079100776467565012629036875433599517735594769827440050391394004596152189042767950068342488169252926359712038139657964043652247279984919369973150765991227211723673530466850936009704723681061835631383925554300211685894459599217049916659369174959459354219092556890807982555008124511262200590436980076527499630768898744412862191019107151666546308470010275600435704462572271628069332793518088796874554804999916930923996833966569088346960785147011843307509976363790850451158923939224722572455147487726421249887207262352776092341282747576533023140695998952288531544131104018085545997350868543794162733665018820988531562387097376508542085087455019491386088839682487103025340929378660343278759285401035421729092227364590805371488685800633199455414332454932881370988106428795576521921638182758192329130458449864865662728561874950122685149687968367073660088061229835168891054119061230761115379790060127169082284327525869238579911402631905247565922051736230816051456719562586010099257503440895546979421990349825722230811997447228686317055748017618488673210663112255663298247391373854522873724035104572235847377538409229039849331988627919830979930039656215799213568437026945102582966959237687580002017463880477927627940296715215484938141624914459062094524551241397069148384973816368985453496456027034263812565880439418200763406444053608229777805518748428267642166429330454963583312304961907278883535129844272087608914634419171048527863010603501753280228616303607109638817977916051317642877862856188381697149400550010949584435093413526801063669235301573012489040452159097198988464733894254847476027887457608897303374654346826590362581399287083580915716784125271445591716117599147897701350815518214477536300457992466994259280027295715712697564083244445074783723919265008794205090436205380222370010503922350171215560151629191578412650273922049097318903247946086191988734952455369603767357361263320472192858842779611833916347147446128011780459618191454815201424644436352708160585789776711140749644791865051315358004021618659320300146687989009150273314161372310751799691202708926915526481289554191970487504461665323100946177463355420399610392693012742707908542437468855399252697220641333029386869897459410795380550399596617107516497197356803115826840956342777994769525841276265713198360833514382881110895542037266223762894974449616967335524383994157693610188080979536077537131258964901683857251097331058910663493751099669829391289811860092989905362126689473678403913511877354407308796594786583982152677449717468111636701005190946282948624165881368723617038497657410335329069674845205740237918003352135874526342196106606511689425924320352193601418832405778566017417600811542298836615911553685171572263579981413764238280091993686681994877628175822712009931372466066082999165656073534125578160146441669908056327758132663937384432354982023403545115109360781644675144010012660850798305322278342252505830011958738040779435854692188652253866230727863378438837496977647329483825014590972570629851892108250770033948922795765091584236524008075038253964073974686263112301606247385079710041962660038036558677361624100133739559718276951610866447755665468370378282449942503830080459210241031796731914777523346807822057354291486428703943314688138092426343453727801998823695502469270096266813087443360149098065490540758781977044716672325998850321085669306428383246067434336423854658821328109516209889473906423110431984964637377757081940572379321221281483702732393589342258776211967698508841652487737600684779357572806692665596366198777666008931535390591127258759587369188728339594710005338388046588071972365883363671344244907088251914755888565297321184694033603109132424947259422773551626788127710932588873997240404956818374848264289970205792914423226725775446391176307499434221790852605963917549877626100358675370827709343959823021746645336035050347273846251026879363222175406334876137470396722628804661105837782690508714099283138421067213259038836896172065685787496856900611997272944392636891547703109917401555430487308427244181959245889102317325610273732836261663484065835500705563309104677593346721607277583224358494149434704964931169575952792305181040776035502134586121905220272087496975908972481854041904943853764659391158646212096393342695722163141491065248446170649893902257002671634307753892518062588605472392798543741774169589619005725820498110803944776053851570712061940974660642071345894815560037252336393131319631472651419033139563432839773993609340575993369192932220015713200120093186388770623676553839037674755350980562372610220622437415068939375867829215659327736559242724737766094610546712382644301675227024489725045849807894608120393063088388997841176431847074101769942674645979388929752146320871194092380597925388268280680080742719518392372761828197791283593744395051506920803535407793209530085845422670384975551633659998257908070382586230523670950866593761107820078842436205133214651958573857207905056817831173033374353041172071074256849907179220968971797091625696550879792623119391637215354243501072350696658530772097979078582311223918629662717191333057510568931248069424306311952360505117835745303143855209583610268103327882564617344916673847140445077377473838425746966598178454687767218508323199523537797256545145331420977721929485443168965092903339987274925906333414556608474198670463057731825473887683318786680255760344665542085112732329610411921041731351969239719650861504204089302077906943862514600151336264437216833640836777084218957153219667228644092602824456151058871967278736941369964710187223426351887406487068726445932996678126607128019405585812151751540957845322287060691157114397001939678693041922805929500834199963651379209311812167441170491318348792016017730751777115651496895721176423142024766438131161908767910470690401707345621948044562288962882338784728402167373607809813507332046777822511550268243691314757700874213228976186129639444098813478322008947577967173771507271586228005394690349465336852340932591903642507022784828771265187616348093032265201537807262191581506541920552706385248702967150853607849875983870201999324328010092361481187256444357742018439083481669338557512345012814703957983710897535052882749979603053438828224549153091316046743490409756608976534122206008387573783187017246717752937942276946636560241365184679857344455170779891611214026527929738314194122651124544063208402822809266378175796913749074011178849285333817366719898382961642984105827719981342611818766978694483663907892942519296008358326646146856269066549713566855423870656601170859689404134356839092676367184947082836418140403187544306987227518037491783257445098027981798773323906344216385426095710351618773087168780234119258083319776549566150299488927909763780988843622242605261240071478032024514752142519410013327817447422533953198251348316993610629394902998370805000046712897708450064338041832599858352364022201101559726602306311786925136855134181940872390762179142886218260075816613357361084905956457716541835560212506770157237673089775190043672334012740059458614611049715519229444428698340060782134175117425291783752942681440692497478488754507080113001213724137325282561690135737524473470756575236342545500970529274988138241257875816096915570788939191539268645520198770252710986533760651740641738629675336211789317188072879061530527046864028733084524851556725962502839724465825958759269120574754018604231349712315191116866443684299771253919248857320183881757208805378914497862431259357790172702871477827023430896249030115138744151845558198068793264246814623517486854997894450036552835059678084659601028949431356827190185612018070419154642201180715194125671659240674668463067459261308257384765962493067235299727796306416586845567951581414757130793883256795589661243197160051321873670406637734351163478979060826919484995310715053382492813012709781656499505478284776612885367253713803718974436156098027044338264021071036232263486692627930144181970266799757908112797204800550747487109125182430345043428899353388424436741656325728794807852659931207702723949674101326606800364712480672272009102717295696781692231004373250574222089635223548992499594353413355028536681390536651089898489666819780423790665934371640264993463341337997391599435398312206177635805958047420343249997059350767025272389817436312195769762017589282527735010051469236501014395726759910747684536296844213535071292457535650954527219652393513127635617580350330617545484868164136903986603665873184872992028203178513511655814502723879389220236818777805520872157582325284476023704523904730178636545659912139255359670446908861820024166364229074457471607816886402990506580592353243430957694494899808592432577263640288580359544624434772330166768919039312334727773789311523635741766538835860749847572271646565232060083109738704645220409479010101544682480998953182501140877118134967728447635351218520543043772532711306313228518766540898888913734449399830493753875916295349171719885637523596038202482362079254699982250019059741272421906467221661725905293565457430834283812548028497620788672367879485924880633414720116878112917407849954799862381914880987619460106104806562721922532080044703442227806017967763063610581267522596907298034146181183845984783262428229148288768632842858429776625690120824469697368772344725409856181549208322450743589865130730509655248672250851432335744798273849387969038790082516681433019184073890097423245640288273919812253361290794422862024912070897135025004310868303398784288467720483860918577958896392841545667654730480446004089933039767716904803673436057871277700747905711707775135546170752236350991662597533822168960467987434642701149699125200694575975175359607606961294681142289991068306001888263012544291550163989298889328979765253641912360554106143579528171828393281862093655607887234555409561249347032786643481342127131651850815252160016314041627056060230121241989360444113864561076905270542287283303011840584771702258058277035279451424127143346484168354150249847399620379755303296864337242431460161123628936943132139874361488247890666461380739701222615081382290699700572800449141224038671705176674038545260504451177881430071671689181039145953196181193262170861950396748439006075755684864705803455053116064278751648373488224578267995775219172904651997506341478407261125540440211601556463059293640087336935872449183116154382655888170277941874357881968293713939601675844704524308697332965301929506835664454231525007857521626245708622378808379539624142497381881671201910868982587813236374023699243180240113712394418557308701581688770192343441400263859492522916959419181118582443815077409280929817973693482842503399998926221731215087152369483987166838036225465278624034788386171556882043834807951168688624106279185977501857755756608158081028700850447272115825082209424659564707978085656998585543311134479605275376757646396265684550567765641750939784461146432657640312677214391720724117446910450799112383813726068895485511791526515227924244422934590880328031192375086224984077643158210955114140974190252742550328363454250345121093948590755418003686526760394115673930871770860843292009145350525174380503383999047033954487527748132998184756490833507422555595828398191387023837699734410208824221212837924751480599177006334592263006042415917287246163980320891569666653071648587885756562155230815234167928985424484977039517767887210504449856699867032751664783094608097364612659593074394313456618957292281514223687276730030307941664575319437165724722217026691750298749367309011173420741165608329857678777081188656804371718428698035909229905676639907005736275716351758321123147168455008890857363490661993393204097098736400965686887999928906243107219657876767699282393415572352465498516689969060639260026548791959253324107493149644811098232337793021593252700177716748716159883418579600444773289474563477952335080549815841659536985156496296099017119777627615246428066361625567030309255660790698146790886709773469245674270769295669501352084852014082083365175283877168238632612482463907768131581878066937658613758665572382426889485368015297212134680092668633041815363674183732493389274307475070554696289092998583343553125463051843447516493712925312930673515114014482533632884171395571310143460616462104586828085204302760375587587372343875444586558340835205767545264243053368416327793772635680153196830013445063536070027009440804888414375755875044513658663689235115914581719316944585832728221372716674379649127080984218209152775291317410605282699644869995184228010036872355516519694628711836496811707729014017057617295742070797264888303714664017496277020935583909209534860717442958330460162882874642385009498997277698278587393756551022466624762961792222863847904556644255903823639699596563116921077334472592348586870750054570003105037409553053332197773195436293112771963126635184095933007287258244799766695805600135544553651239333359315940006020534986993532200985427350044636709615975614097991459031012393368412862528439022438240007036146768475001694914638719115789654005658269919899961273885539051715912186674727633958315885719389507360218748622740492814584847294386594214769600372720976942474345672906414546766324854314935851387212479508923398300820080634398343459125828767316608931972238766557123427421705485368217901223794088157740692489640140583715627903975522470845828937325907645212789192481770059193261671806526029086337330949267741728056860036220565655336131149003275463259656132465878035265651077508742351573390355885290826286945917870007363871404040216126487188685419107939592225875087536445614620948776374457104682557065013182352129826953469250558608218791168711622924870104450089526733650080566994504273813093192552668201545312604598743857892426522650462578460238728336052184869602618675067356631082445110857161229628756209542991961720407098300611934192290424711717625208029878724646741862916930580585100558273203161708564714256834486872739184486658102850266091188100631545378379506960572539142224266656682615196936861164283177164916306156079780694919636818426852299817994445454794810296312106140571809274820061749242410172968051511079309207198104864925101659354396342179595356562442200007707672116736350499338392872350933943424012754524054963276541336854531929836697659555890084291651040696439081966388345806702558188865879756401122349289099429135548876470617136355282887782311040578353501266807217590973144652224094951789471271381666874830294716720707024064868885297900500056118900909069837385174346994623599782645627551059971960687936087647401053624642972570622900337112081928726590623436629075877540355772581307201209589246851475123740857482978966117340407193253458214416903226417501920344757542776948311198327246155912137422479498648933187988211237904295139004344877169239505323277313974942263924024051605769785395680915243015718185841930969371490860145678130109593983150850106845774796635611259544507334849194956172939469583360083764509687656682833136296783043537745870213284620065649560984206572783707074665708980982791498661537135996122930625100883591131708540312634310885760936141631130935679330344861669449215073138871556333958872821943621881211252681578983075209432491473703708849360484306844960687556216802935962220647097351433249093169165524817403529553205578820145639003310522052443216042826122635526896036008250245205368748370194681234329409682311275924295252974443142284905598075683048954648293059393401777368341895079144438922279440510727759218861328065656286794815931114040665246100710629534014707122724120889250781634934331343505288627780510195627574245217081668792599336821190712283122872599675803298315069058680043753866046724129658284227170116733729640646338371484770856894014186694201778186552249175722526021264663595054285379586065735011455803287923442550487539734548030241370292801484670692093281694852381136683877363007750618927978693172891643117636203837383448635231020105661140914002470533486437500791777055453815043842571395930586759583971444743731676294625668429421046285711127544715514871748510749072035735623533497373990837601492803003882459315330518934040561187067760827670111671114269864743077251993073164559328271677895411471732746307992394144675498659141192412089989361027917929208881945246765051046440135762672338706109009948979056694973856146544998950640708210641825595365304292136577906285721580064048886196097809817693898350917797545405375052891474505099755323249287004995609714836335481675977718341303030284777022983414542911544736209180422500177537219160974102674596525618332633346381723937536028426713971849357083804452156523541024132055511141357678776013353881881722392973248246648673712336651320619251316328028476612334767936544797498152042552996845718157722260508093958551953537134162468055593385521762519289431581726165579169759372219682228444672254459090361821720849852059843193616197537316852971881846201068211140514654486133410309238374588450704414969353870768545527258466770214312227955251086126461497297742219453631637025465572257503849235045595029677568597604604889543094147526867983114541994351169685634114101310926643245852524273231067495926703679915642972335473280236361359296077148559648421890823134435899741762857795043524183567930078245794201472132059898418673373325231751638709600591175351504078928558765574408903440538135929102262770288367134106644404602858714924661790576142270027170251139577030958783275843838742372447079116295772685058358692870387316256129780930340242140812951302534786630976624975971191709684605439367585308781089558400232370112039480537545934520508390936176513637408085195070999228134850961759064675706329625274784987000080514546251863673939794351018534407123416526654460929798018101954735265061183681900539413792802385561439645110297307049360765463880759132589558068657889483075993368206679861335121172291399663129951612110348632354272371867604307834238383602621910519066120297304921796050748527212472779662028507743072793842669016273502018086000014481386696482335380550958680831253872895460319201572653060759255239295986988660988262769386559633459841873234591719903227308263989177234902341377719676944254391991445528135162683427181686418154593961411851954762189782212599770913315348294080330945108767914695675296550626225281824752755553606658999844208186575559875792489253119050784399813858979987740783042496759106588290121958919138658239865980767426613285050427177082006431212368296083340939707724602929915535078870519023800283382684399799315379875978729977662580803767334709740007969105833777076660152245966224013209128028543883289329621041898733550951732395982105236353752323979256594271666159040414257389619477128390758272153669715470241227238662731164494834201191361693823481202762759548166793001453466516539929337550449954287782317383935953920436566420114964162662341086606072586662460102322232251252248681611365529904983495221692893561228235184232454725744652982875673077963963681559053969669090133807529971473449750892008662972248081884716679976452028338953021396419162860084199780527371186905464860745539991094666625098490767029516996771607564646965827835868709167703897598985482110122823389783316400835697995864205000752903234256984302130481211060517593577850465651058497155369032531468552721979457440400689678073928335019249951996053814896462301694667746907993481451397486122517133799345283845312647773635157954884204115688737870331880997049602748052662473536981101923568638124600861000648941323883138584635848841280723525054361408751933223724579792611466978525443563884858367255411267703071724143108421288549343959241706635419331633241498400798998545167363740981252947974421649416507740087604381172930680406767802898816995270457212833961726159503437716972357940444320026445966260998316528891984835183125951584270064062783856260003424122291831177683717785967559927204087065430367649291260296950605692542220663842942488650538116579930449163151689973901960357183482038990366439754699431192494752466740226277898916099946449459314158175774230162498069454180903880601246366395509052876063234334191588832153293305010559938696914695605158224555195717748036728980617712701950853262423038430490746893642015145879564486746750405576171334845418766423927709864942640051324740348606221854240796320580018681289327141336037736801983287051777897164829878212881522123909141983703588338273067290301246585391740176474340129582611217699263087316663229685534967757998717645124505684719568720694266880940418761719209871641178077556995514355934756339034111325938333936995770094777455795385828957325676240524413860795116339877442813936988785399238381831411751179903611282040172703217966093021983065188717328228856306077550206422645173609971246623387022990489403744942344032262146133835132067760504739283890703599369935807979612624789985222935158631456907701148178994225506485786900123127573268011002330434828918889030394348190744971164953926880402133420871190024973313916096952746210225713550330783424472360944609686050040536488692702181018282788108470176334677651378450697679805974956284156819170091405473151524335247888363140347523044916619691341195443490244024863025601535525535574189955250293634758844007842322319111608873148708010209656409786094978691794274459790223529558114924315073418303933039063855930566345856660383469723732314020454017726677265932210699056049591858222922304067505056951650810816779829064547197733458903779927085170939499620204747658991176665103914471862701887910750004885071926642755671383288891876208585729489520472374654168909279633418203417558194574035279983082746243831663786273736989777902335431182272063970545768130966337551154355583323701634721108920025410443521872782404139823008947891806556469516762808973967239366593770105052083097990533341967417064406561980338544854796550472677062611333312047202912403607542093824502677268746777114403852485037359649886106726507470817910856595679126743149540010157190017628330157724073942424283159268322004249903076488264919051069595869183028764511221705554152281736023060171487778979257473674033191578275429910117877488639509007853103791155278080136511303890918620232011828923478685095213003352485660869963681595853499161318856095230340892912744851262231378401791362766534089372176943611806552867894809796023682400873253625733981539113970912302443442759373153457357766117157598844221505817067882020137005153215213853805391829045106146409176026264789770746470037928526306330020717019909222656787133968749587455025765776915250356676731719534611018371640347120061831657953261648367675819399683392307746543114469354028298605795326395314406730599636978183190764209160142555675653656781000576074300573419536297410367925319034911879068149735888477957267250372134557969315151162557684032695614806943645691059694339327796586643702146789249213085175056281706531200478183648796403705740759562323405572040288099013840773888757510835643156515843806129540356885054079715255853567956367759592310213355714600648368814144745119103705982566797362256474293401749929610950291545133860622821697303576883658460399536672788497113663790212065036935159125133109006620213112195815957344935960743290534499631600093185027556490273146885063211018245076337375278894549183595491807015123309936190698779553026551402506938566776017124011711157181974974168655025864645789053823170924223158948957210389614366386567293530560255676992497507760111413781582667248622421213984160970195829460618709327310706360888052188374451910618194683610040033330241805265412565161317388402258623575259181438028544108893834777994014076690057818975167899081263515824093249482977551360445475964974171073780401706891988435971114203821488985021749691897268158601031828824678609100758781788247373023698528879845772462784169723284591948852753037688019003986349328919353488425532808642429345506565412228468975227789884051937082815793427925046020052031204880810242910319753819689188471341884491011837985137041881881533174165637131297218717805925794391975766564352946040995483971301979601892270710901152933278167948560164579195110537543883515568183593967433742733087404276873664204771494230758544970270052237669101947364470504440044720541742415126449195198909367415256999914244221978462886568170338733665829340946558305115535557763808988959206502816192714756319811576354914321043930460839965049850314512097736446922344315679669067702217514004553926510778412672842862067041053845419510230729075989249004599173590366009362064820640107456176258466334136408062924861481286467935556748142267243729556222796330909547460060789376819146754075231236010040461009292196611492033696172135694944658686763778183542289900503891424877892628767004575245791566908972532836438049011317907520231835874312448940459498988997585701842018945313481565819813923635833558440365592042237066028104865434570068475764058295325651833657924896437739660914876084064019625413129811944061591783606457725164358515850962699869027125037598388773849810407880925141858072683759099248799382926370351732316447379752195212893275135021548225859420369354894552060095312855815867206741788542263944800294369210143972554251026392129045377079917485011636835503794713590965414410558239028023304082092025953781566226927823496095875161971934492568671388953663952622789401897544259325026141477827094229778515304084240589057856299513298999648119989358146452151844384422423026270516865383287782977632495113219528339952165048650554448806432470388980316196516447840424255384248784915557981454857676582889745859851137297385041971753411207523386109667565930385773565109798737150348722166171639787139192921911792826103674160988881082607416983150837981800220748704377019719521975543542693706852435251922438507633045747444503389525805622999209530914509066260551250180110529682397874091293367983204229830259046374572705387847286317245479694874251638041485637000973894843404149853661786312453687725304246187526527635948955476275667500446475872524263067235437115445062970638932837752834852970206048882631210955576343891662373987305836281770903140295079967631444525425280538152571290479776627039843887131522737584084966799594130673583035902637230334710535587995060349658436891703611803004775757371391336999405186655847261179968931935103650129166270273283847287889222802750457376561986911334815735015601738261542644724509365381995733019206965489647988793674155988072958214551372824139214987227324469778848663504578070180314446644425994987953962221814788756016258594419765821038212863067559323400699271586273209510311046202273674659200270948205787637952648657234932138868848170870963403095654951195544495733663693467666409151005057482842934134205357113833225382226521288133517502832044609378147275222017758036605581860991935973523732873196163574256897897182514493110053670824927322595659025724200425645317558713627014432204984155079457529762640865367255411419181408541546418063946444665239752647460241262138223223303427041874208377052405596506517674065175709757662784207073542068137568835606987461357418125750751622395602651249929385785748026528380503693942842061712148528564640920520411733839854602222389667169752331925038016361786911976659337823150476054639614701740280546442050341143050515824200026351528768812561759868374760430667838162102240893142767244089172169070844877817930696380854905355392522142676070141079449983064476795220842930231082183972543510046139096807445945346173743759610260031872495728039001612894051583586128124060926256458423019656116688211979080567691422247211876971906182619043637237743896480267058768940580333562456204498891356194205955790457520592519360286583474892404309382123300039094628196974072937894314191096655972870728814081557234452042687446665064765260483825082549538342724277717581244892723874824177626444402296732350852137389008798578240710413975332291791003365366392123071420612632475872414840611738731489376774108707784405342843797829895116285448839586032488869427111527311231278449062020143090080726748531873051246478528424054716098915296182725963627590282226160639830835952581602760889670594174830904295110152632048783061706397615298534059660323620960556999377393926999824320569840271938231471741213973619933689545033073822070883308812828326949845588734902446114751310298971700597748088967372250143287901997310698327442506334857814362445993425016467462429968911119546818081272511172547215732929466551301294888379536111845599738115505797141274945034526355834357684548491985387251613518062115788102804174863333184052502630793140911393388631743043367753535769658787010923190174955458772377924167461175445964594695473880635188902643041486775895102886446571842295614448326610099477817064002901577121451659296688541694782273197624182123493761137042247172995550025365339101935375188157828472469103429037519721414760675751141090095798726875820086700712422544607235783743265541319636265046675239101308622372221722672095997349576594960767194555442273116716987211348114559890573113565344845783097713394972309955461514117739316301270194532140710046900126160691535634101048116556229550407437341624186028632275643966093984459551529550752798787341490798650520879355370548171837200853584007856983029661846921685581508346892540751490772206410786289217871661810310137673925100483824379202674760370342244014660600321184970062631732478262976422893225369629592451471243757798445525269903089678097255367770281990442454114391887208172138034041924513730346626073927489398489913805787613371471829137225744641593356103940314730768265559490075616823774695099920012014384862702093500219497150025214715417198966754351525785755485831052913454126997017858782389233476895712607102310831090440727917269902122474429391843417332003353721462217637563943109496158319291444554886408074987635179112557781560510500501056474285424689515363283816378081948403031236730198177123890603738182772096335435712247419566008152261742433226598711217862829483612346066353720047844086090683778546211244596871027147119671291621064645724778889943469932516650454100339143641396127014888083301691064687239050917979433334160863775976173034810771571966654855191649098478496440373379237411629073611728165614990846636222126511055481051027084479536198086744397059849314448619186500066003258992557635787021371782747430293685253442325453863676413284526707119345061465240915673071424532135601204193097474752244949876448545620517919555805377880362235874903289488203733319396408551345093087225373584892143882840384841020844121014064963789991541719520563096230732584369045045494361034193655552458636400172935001207706949972506299289462127590781226934291854671157329563078444921858026295700772580033120148523859441729746722164751710716329696282988789318810696025328346320666565494381286677470766390571035045322711737184727810815439772735538522165096798588505963691704237605846101444830635745245332178908125448401026780119120634805824206802883296227205414781288960610555883683406380315873184181140633589970627807068570536128715660414362713171159849959644154535916485698571177894677947369677573278390682172518677317425595275767289814341159368028970637663281392587170203718042136580911943957992810222638789610502793612416212267973384366940592650679455890069750866287191787472120299584653793792796308862441282217015890818292648677923935867947312688838968864945455689786256598006212591168287591239183748636191877538767847206282676021571255123248696661158368306010706124775341810768697734773683489245649566495492601644819073151039653508794129598046670849425793732663965203858389364039339581492416419549612941575621832948000509854923125786431336322137790087301239596126494598783351916605020605353658180898741756956526627188199656826603366203639828679092971713490105991889198166009415358115867206328909813521206658294402107791918553803244968947801441158180486047234816512849700947796023487905492258278868823953549408723798718224468023436732460367104909427874241966218569843484958506352914833550373365599148034829398271415471134721367143977127338151535881015861150672669522669971907410235274323288451399487158796199072007100533784047059396136038318504641289835203373151176266025717228785552802346516094925346101684613190217756896075905560618323473438652115133988568455385224188683647983408687229524906072924693103447863477593871382067213279177823997867479958753700939154225730860027790652355492628938910439441894173684084729995677422830247764866160031475381379237133584093349017445268939911773676817059244295897536999340167543364258631167407290408735493046026833534126269949814013772955339110056492302645098686295247792313370488941696294094146455026219903843171047959955374776814552960610287197240325139125993378920187075989487739912544127549145392631273577728975952359061398644174368609715125911503062880235627777634167232234634636660417204512004215372416032783022859351941495928965684697736232579565735073517464417842364621232195653584873741362812252751234774169729760867513499209319057630373672884992184171380460117277225438360481501153585897942262319796910514523991270190777230710203591861419390281427891828931060758025081267864357188279554226604887923105392665265190978817950919536838293392837187714650757290846800369261965088416835765760694033091614268475300503014922136512890715911955604121382695128105085349228028313306566487414943908907963516089609361952447690440267985498040459154647593998989436328897811942337787424195079724108787313433345031936325405057488071434872833650864667672511432093564376000300767588736016160876031821614470588697955335921958924136813534730911557907674470711366570478380113600949728221047727558578796570274914134735252989284801729561809336377101812097924374998220788976809930346756751509875321649295931685568324356321797577720931506338782238683135814050131860283340466093532311605379712582631429508740142644662315079159344694303187021724072589324760211564999494312148850817409886333207077399204166436668573945202768937677530108349534192117288520273758948916930289180261060474178013484113715346239571346154631392692414113490051314442376430432342828349393633277019691976498055497657446422310651210915812175731553467585284309749710973601428827379732325199274819691026729583595659283866431653615786879798846213910054104592665503105012406350764018340327149913298348515883322433804297813705534499811063750359291656675981403018239408946838641675446470306474658582426003909698025329444309890802415435135185542148210578880868187372630200411872297977913130907922648504233355479409089266256596762198861343160605373928937608893553558571196607157480915863435838073327190952915575551106561859461430798931281313792572616655631230076251280626340100128842003845549219671963913905019777420302124750909389596612766549555338164913016586301326607843034978694725399227880738155938611189027024593756079498672508221167977879716735291913690407979064545738298030241335059076888762273451172827780628971498575757724883025800693428083549551093757655983976270086246024625820426814493920622749600942567095431528388065054492937496283846454219081289976581505877055261386715020159195561659522190435858176141381390892868867628600825356209950600419170733400581618864257905724408222852376408765636666673379680676521708183775390818263673344423359215987010211171102082967372537440516093684162638042834800434364686341276185986189781499200569348760555244807636884822734162341457545929771341482463398940145265424292709046841323064606554053748435938067454131758730598287549143313429744300283328804790523537339442869667151816107903810743076361140668406532451091546274246059274642749529594897406195492884608527479032990284797329854490477699143269031208565179344206431821443622138676334160669978541000796993922503956814903555573196041828370050338048719837054539392830196836407942561070279826676607092388943589763913994120462751621596329699858645717045614272794467584977438887679649309424341509416006481156088003184456333209079606977005075594196596970206327931295885322239928163351252757154576005755975690153360550487428805048063418814297808324554146358055834735260723739037956982214740305877230070231892692853420181776563045290932067627887014933042581962812191761800254546574102967593564954463581987124279095568865990093433260849097073229702838933711832504873036553506769593518601625714631195483601457384894207608008604241309611425598892763693542789648332925971712883553790647627667984849107274489037369454434830652335030705465141842047894092403042420514048923419508364020787285427656442396827314446507301889877572156161953106784096410393778683432165803278800584690048505083601914693483846655074079567893016174185435985507575701211652749857879254440735170686247941164059104251787695329616348328890495235345293601602254071671228430454554320444941633251091800396736356125245214943655678133984233918924253661324122915333890547931823016232051827174714457322115478509521983725092788764190389915224035826024475747754897177408287370837972464109043363411546123996137142715820397120155490836890661125487356562326911822486159353720301039670909918039679220175447614674777165574992427421458223720273619437662283490071111296442308768481754620640019000471025050597996035133481478372286881494943042303952451745349334791370391299736039187635882637046172783342729402185603258638444585485866635830590397910197404227141614114778503485831450370540134700404941625199516990206264211500761777454831399749716441652893369440840306843210832427042895175837486283972590140862171241705338873606804641581646009278289009344796343886221179521117935565710610590064510198649926641842668877114478662504326694147165050184975493862406891729271391293962412607999049344437602293895208571031087173614958883624583424169284026415041753247380017228823218425868522146531023726948300693399157035672555120763859735446734148588145857084459225017360428940025805693062523738653474545943099136333960923795767053400846162777313576826656002937399966873035415121290074206325833558887006995766902971151691973998111863668636895553347374668954660855147553835763488577062608964486425395573666962480029567650909159055406271667281628828886289218652682986670292440038945179707618124653803330313546696015749377862335412683347128829553722377950331084816659070459553357338744082347104477308962662105093329019548057126241487651842624116109835884796154350300663619939199348920649181059914978160890773487847686211879816515380365914898511281968242518458329855764686824165316904085596424337264097377829930953258765233323612171159579790303068866205601280477253303643786092365391834768274153952898728189113808796175069744770968967016723237451652862639613493893078800468107727949314258859212933753318011627298542254179554476623825797475610643544575302348501560957342081472037363489147574146192566791996267041998388243650996933111963531469521828059911418137683289096797072441278048217965441565830364536999628881404963351409507039060706730439425199769245152282352621786383911383513661475637677915982830481377297780601196879468995538231954933189470620649250489050161758461258418770244299118495926432887082842104556196068559021299011277920267438981581053829969919474153687090297491030568351875266455501759186297880164041222811647969115462007020862668832216118333537372280357007770384391796171665288397151482521409228430313921472625136273536949641833264371535027855031416461456361765241275525830478368924971181086501595537584484979621207737540541437508989038565465543982117553138557793950239512561429155326048383763071405720197613682786485000180830164863697697714388254549184444021921376990261261868434912846227550993757354132420454114701520336020407772736738643710896294684946979691378852557004508386150065119153620193728697121678769451111069652900614181873562271896366459594943676365997106580984777152120153120663195712930278809575234617091561319536710389251941067651005724127584854140267346365641198576939063639469814436694328188487172530332053469812145795213739442227432259951199200487826498439886326534653305680581193199083544424358090914583938009986341136262748598884236916375000596883311085374627310822252983034752745006999504433489964330095485879981574394376656870094489696966004215518553245426433586254891132980804883236826494604917492456193875684372618147241067197335066980434147625283952672383040998190072281280324161906719144895843968706611757715556951492991765959485621841402514230615942370113260718177340365167951138294849385343723914947961590535558900182364624128220374553559553137121559703324127132440486673966111181679367079742170207882965536177867132309589361939672771111449427546125269445091233420709214305637902936384007454500448599029483243467713076317325430899956000845539187414988528476150637911415837241991739487917429948342641889012882496889636546034984033318753450955187340544020213804223994651907669202352231050621958873703532886960133335738700347496377508646953723555750698759608705795882802693597202271534212147705231819634719645211332741728125199035041521444219460387949656040045274854436898343741284465673648132287477098010500361289273726913950881430243498969887621178285674133827907111577858238595458316487760559672417396533584766179582422737527437562408559903072749917708860178967662120570769600090604978996282718697465395665739838575876141694207005283105156446852681538314938563607364808761692972394561694545360459024330653379307701262783326898586281178124147408384199075568103430521182477494423373254880967596346111517822320076744309015725073729052368002470412351198462792818604870429949163306090057327485307901165498846816533917041790689077939895893941167570413429030642654858230527269786648821395814719061538326495554693784651480259561772201491592447194108688870829587363907244027484368841405706469732471553494572822743524525921397827824295730258151129322089606471390717873204259874682777094955233185087605326233801574447453326300235227728413090376959346007428829925854666631123341046408833069263767236406998462193565182487646948698679394225368401781826658986549829487644196875228193849742390025962207433856531814745509461563569969637542677658605555889978289508811065926666920861605420708291252485378137516614235652679081679807125629328669139110394487915139053829266276184458492861525801913339101515119843013934664074269516165868179070953212858489447164020655080759647687892759463403879094264095823527601452191730823209148157454130861576700947185097794695364010406559520793185795556606535458188676020229498082329056479555040055000506010338397623359474441681208131908750227380748163269794322130433271848544279082527857075497520643004213681727858730240286231382621536863689538939633176314542736764801612080876780656903398230018340699395940140195883170798043989539803091033710103177276590937085591559502837366659936861865893227461252445502418897305779138919797325854743254688732798482747706168870803736823583880156596491804666962482517511080784423932276141051575490365147906647661808469295024251414495880911190544872689937127511997095246759854623215536736775239725963911889352565448724893699479054670737287637176886200238038322928163205066888592603631234169864354934026013723780472138185636471320237837478379849700844748647603350446021058966001067040338958778621336547399862789096645943821580867207297039407051320582428146818344739517706132552993587130854585401978714327585364983492782578319960222032036746881363700923993170191750856876265277093675777305596962134291069269644984727017770319062157729387820775204533649693717532615486083934937142447586326483283287087721980126661421055895037468859207896297562697455319645824185800969347649666431045125597536278101760313716951626700582454284808017710610349801150936088395668686596618937874500511743339103342318572268612989537058137049200360969227815169240250633047976690453924177520905752211837449677119962717403407882056954936234018808348457040790332788449787432208729935728156333852465634530712793529889279592133556904168484678476597317655583810225042280228676767418226847074072496969058221234993564255543918023910384885622067313505393645111701245212501391410013981675191831341048693547422368453602239341735499143086601167787525207879179366109448857024750412618755185357317995629465661687584693303067522832312122191340206515680535791269974188656476457300921374125620372380521235843314269492435291422226609473111686199597824559669040294865120937794080986330737250013742458055360123144564108207388440511009395363457661071994161564065915308302966045704816491666429103590468028417568577541922228232077125241147970072366523336360243138680630878062603363509743670092231253495435912477853133135383276202820529560666446497794347718632372243293580756349108102089444479555824390763247233769157135964346604102575248252425460906433158292080817420861822817006488543307058925956736791845460768191141270568114958537807455281225663642229572858065084595794312936975488711079763904031258857480125651397915109367357865411647337892709441549157626591278384290737168002834431008624520629812943004984187932529536914820417707460521537204155738839752732681932406396822175681681170652061421152241888254068392866321908735614247976405699836352191866375167380392505842518888993367451080633154698584643632157759503288701388439430707116205808314601468409386971997139988862805222264741369011503392194252316749941935663436099793932328243875362977311254143852458486347541060390894668757689031787501894657043326161593403673304207880557453304057281331736827147810013104942776938357969259288510046003816892453818008457249959799627195175271006108328818688382863476743255322953408149506895734141958714566949716418893294874928613754843939376597198351406970537677664520610591599097002499629279804927393906527935080212344953682884219946971617677573673782965664724203456754791286597501390498353576664835866765468222613747851267936807199858928889434651446836308526492485398005116310098866135960030958491656409795533103715362104385786758429193001502972669945427636419542810160747478009708135835870193389795713975287420103154595156093622093305480794264038859291924109127014759320601160891352833440740661139072959484541175584220602396731339794569167905057634618844006283721684908059515779192765983625331201966062008261405136727344525830324677435457384292970399502601200271790821521522564120381011970719399362275589104106686942371251224674305357362597556251172078154399691427001309205702622520111884061592750870440454686714386496813742221252395082389033722072323442397775565740750451313239432805284631518499584698679779753123977081404108952301510290647338139390897664321698859486946075841976841348923152368064369021781652115774072935997518494609716322763934532764942513608801489702971655716526149443197222732944976204284940343871597438692148243490449105167693321743662167984566456654127379476194019961777515558113329078427509965917682531184620692542956529726809769051310855250999805485136918458247734109428712346981317516949353751033564420901556847731563692528656980393271592053441368451986895686152158864799182965527044394774587887113734374922668633571604847558299273951850199209531160225345092144009988538789275137629428897076618646471591473680708200061561828521736421748278781748065835969097686726277597448662445248066657689628205624302933706842639222468358434963192167181025345734755850147473877036690344573473687550061758422276714524282557124934424857725326942870073854518388849243082827123504580724780203909362233604067810294202590046594018085897296380675016597984482781038096993833877328019363110770776813278047189514428962305696592209420247935498173896552448337016798262033749861458087717794697668881171643472769889320845080423992759669879209067327099387717751960371900845976790375110419205606200144031855060260492099126355178917144052198246331298883981662915706071750038052063148134976288274074590061900479638672169388891545717271209967408893789537036479721853356214551607056752882525205722898760524271139140201274290843569252424092432430701334322320403526646684649747967892515783421123041106724097555651474511596287950013505128306095297819185878671067222193449065975077120325670578056126550703769739759224336161212665332152517084406578462574530755639752911824881823960321882748614959052200157711888000717318492386153233475942994087258415465800973007468223930381880664961005439110234221635098741599908932551781639934977909246101996282666330174646652096382721274909340474046515630327195463027004462774944619627646893441884025956859013139177439732290128773994297670447701113693695424221642510724308457786319977109625863682384649604388774075854834820228228338676799773714841736512775679605411939294467664907389583095570441386547619760061679551909488805279136876451514563715245312737748949919507617516961906574032572860792183196596631139166404222244846783260600973930138758039328980233750134495988455749130936903235294684249220968183256754308970683973046651461653363452989240693122535799506047914652775694393329242012923548728336880367081697683958666459131361296574318545729793239842465796733789574309193961981468544971863060598099488461754651169125563989936629786266849074169164451075504189133903446626048699639831761137634806197874121442372083511035533639685265861506860868372986093865326868228019805264440423783318997530221878434318238520559961999768269824281567490601797925228603115996307008919990774967591436294604432232469435070799525726231741079599824836215140687195206636859139361656535207723029753103394351359401154043059418962628270076096415355812695307456708164428061740601271968878904031032956845786765577656580442298542467994384306979240347892183477569644380849935599385132684483839409265268363223423258895189648877110820083677218120669536410106130548628935839925302725461299065101772695856223125438913897675050387401166026680123874557092724032014864120799845047817224958046282584495224422119182487351828401611958727150882162148052829203026015158779445939787897245550736342485586480344383767768742810044071549380852410801590837671451874118938416845388376790684976293863805189776040514605719376130243366982751691073711330632906971781410215932489852329392441256509890092735584936543048913840949974661636524638766721284643081976518223860734459594208843636801969921824312167930388924796900422006401520210676434891838636039538598349461609491179140981938139785868346449465678510795259369140034531741883621337412137880197341089867229917982130410780164501103077691165745602982347417029070105384191247887332125194792728637273027352389798060466173111057833876753570027872574401087985503759319683278044314367946127999020207527498207851948217271607547721219706180888007805267614374289280117718804644944640967987732392415670404932037230902543225748866535611092467395705930711762282702607379629490946565906570079998248781689287559464851941375102631921341957258840123452821977825048336518964185993221503123069918527445808051254140263463579073596339040221030289083170491520401615056931004207907254534810378397347951235229819683110713276888772732744144480374973527105304184724826248689817154110163479755069488351892127875523510546458228345214489600135849558416011388832353920087968876808934743458521104538882172996220127128145157327210383361775275721971252904449741163179636575444781012704976891010100879605825084078843893322138381850549288233601325835310224665883359686337433536157768305630212880852442922400423361267689727540865294211767510311677025312913616257088206338849290560129854101993156726019765138095744532390143295671603253031791206339584206634983573289893303619659515465665038798585715757131934256360274032871514444328679715271608444692986960354628562672249942883577948273711570792753894949731638169597409840564753324039010376747252327004207835917707539552188732392516828815565029151321967511054741110832279938256789695545823180316575611891640699274060013972360736056552491056144414466085121338999752768215423398253050775166878258535098103428378912963030723836165279537194159110514660111692150054784858680267438630149533960342314367748591226832659149403435382025040231193669342722298243952235002425358760625706276761576293134269504522956891781196665249647727263532963812278513469306025988809175809663211354180779991344439190139293116194997350393895482815619871481359995689058912679646559859093402608979446259023999214362419712873012251378714604961105571242249133406794313727186028786311892847538061426977978367001248355745763319846255100963784305272880948455008849152564218174079006618198207314655457591178712295760921029019671876439250796045483132263455331644526042380951664066007101130524577441162632215998056676356496427032679148245462737230961185188724903500463368724774167917359252871645204762320549269156192914983380760774061226512342483743694279391553311819836678419970936894814899237138789149172022570494463750291648965948245755094381253981998243477296244656411094833081890833479607938720775253296671214126053694788233270739896136579039248606395363546091561146757193553688526287840504848508662825548286070132119769497921684630720884032503183249307017749226218809735013751227606941072734473980408536173564076599746707650079801391682251816353282286824336207323951395989907653314480834030195542224216028359077689092197145601340276727345203629934358888278244008931090437418228344765600336658749169848261192923019393856939809416273814326773945145700173587588198811254905544745967895112446579688319692864916778543641171072978031082851230549936596548503200144450040658099468238253951327300637164664073902569582672803142367383769939143658877539531299482156843145989201743693192558916730674229792082913924281110875112005242938929110235895075630654636849224459707538735504880980733267631495332907892702182370322017462800868413855002106109229223366651103176132432842346270101644554184124216595273726676764467955669046912080929800997969036456014657681418472055339587326624321505606574662067489451239389928892991783008040665296858117188336687533239457229421923614514415047796337838803347329028726851478722426958880086628448815251580594364984043628773115723584063419952733587622929327238833347567874175341761757741874978186108557301001328968127550777616100946095446532518538976673787261960273320213835615201669707077933769456990999037510986764748383619702370171672217434791630379589345587213237628540039292531580491059564814281794510947657444316220388168149629205234047305532608665688899632467981525064915114862666408391217949910921091243188189258714423912904997279037505479601596329579634540348452452495636253253858504560114215086507423959013623260333381002628566993310324368009669279517299603307059504185679634439237316785961906898262571885438226087227052520429216929447931472706480404411578716882646199202526043064981094303244655480275966548719587521515016979186269564312307650423613017887118384370788247632252806755040313366804741225803097742863597672967488306683892038350535871742400306365472817430011917166831201132126509205166878377768827988947762081548981895779337236623139335482961950968912641408398986564162578514315621694781997300998998904677425993044211889558514304982429682385926648604993261821511572551099550676143441057360463458482968415099873998087517009982216397552995489714613248927866165859233382344123002420664237228174472878962760756348963475958539304840263875556203647542101704288204680754582069341862885705747460611206435553586805108216370409535435545324708273442699799110739873041883679809308850127223854458312137322588264487719631596330627117155966538147678925751159762866875578726879590999143759797321112913511435215766166701978060169455967731713310457391643285283923523300627473001729906353914819933626842712501125261360789816267648017259765329964293182881045580397470011687869385510019574726065994207951513544990533819909888469349761747386961244423045761341337770690801163312053611468867207732955814120072616746319164408602308038872133563521152983891899720736178046384372772829667370073826073505134636773847566242562691841135593627905633539655300976740421738973631834038070644960042788071109016978445104623341883673977721362514828301655685441045643921699495374006943461964458553546683361838138332747330490420146354015967232881365801683205668906142343678194034192125175674529186924609050579603806858258931487922974938562061381092963999266046065902979623547671198042328036901628975388533292495991997798365467310131793715402399418232345164873788616020676466216767364124229196528010679801664386724076086518247396834024379381912674160468021896400396249790845547571992396081588000569335821763433471064532732498339536085861765210806418896968491161186825319787043415975691181861566167033765378544496655093755365435125206628427173919907293044242707088298980856743453021712381249184106071320160136833828037249745818037289368783864068401542515908302104817772112935886535032317730067753834029865574577520847651738733297627014293078583835650247101334670382005358673893546182448776735703552337911971909589067990008546324419388376512093647183619576060115914922317417097055185343057968841521055226373012332361986719207051648171645756094356357191548258521041858292950510788879484448904868305890683304167213703925175871184122790590639581384833510397471915478327307197941401284313652963986781228010503968740496237968363440001167705062591584646395345574678736637742587168276564340181928634510229157491616668715801311731362197075672294329216128075157511851532927253614265890421517984120324516187565854292981184100527179668041981863221644209561282384679642851602360810741808403236487937718702087735307097337059218439822747200165873400385121662520627689615867502831316370670222012983512492441574497547079779943926443586598611708880609489297109989179527767285766737307506636270575295355309871939302232875753548794182692953656697242836699486213315151313715386164402613990450927831559843444269226224545531398215550319174705698189407642212068239193624551517337349187472500270802680363186257943205366594998307359521787991944031588796174985094928031137503881346811896660491278728565264499037422861140337641284626146677486736250641182074007496785049003293781796653779783923609627731889790759142877881205582614344635556965451019787862658649347616487804090421355307645889501406926934726570569140798188950395149695304805640231058618848671515012489795820634631034481379822818781980763873736103720042228991095523993822489108983985871194766477366653379888751589795812419792934475929149190015561718649559617069829550198858667518019776064095600909413650496137612402392873293665912815070455439284636747498828006974079929826138420580582909606078712634855659489830786110870705645419772432914262948361777784557207560657257792631464080254516970948084708354236519454223948139092816718235486638921575970169641603396747486470858423555643170094824460731392701621991261649382305200617965100968853053913834532364253921974949953881715365429965333634692530615679793723424364348983461569604147759039357802855495158301337874831884684327047878801212683752445638763883419161466847140072357755090217769441404189922823446024394623310697820355855497267630278489596601792986403103169972696568694878072516853395940262524053251058809467983554914514197728430096133860792583080440317603035394593802268631438059222844988156518185927598763903713942202089693613443794022497460904369835100007838250618693634953925421424543137225584167446159357021919885230688419670074435316550076999712051658236792130083372608585837697698823122367008193667937525555328340640718983138506060547581263483137688484920439963065740625698631741129008442031312415153281742892356319362786541603488142035821230806120935296534844722791241372635328232558430801302813825652924338834813045018767503054522856562577180313254874633118949600587307274931225137960698025450920646748084198979599615789199670279794227346452581036149213876521487939387104176658296415218173370665181723993424768572858874208450378389177162379083086109658553801735711858789193685499422928540120520368957236342778203829695080398347678435576335047180636807856791292650866714627076705128394584227197253519666669426675676780446175939672572241765482325345083030968379431777359617140368340082154125363852036842706063404159324599145422085948490548034719924570032598138512275947899862445020766300148163654369836937742619979975604579929334122899463302495729110591970544062580253828743487145200327961837038284513505165653087086525182604080144229430634100296089527616149934626809470186843532734349113678698817912545002976853505862668125257754186770909767950619956078807267153530068196241720121096093523265808353401652081146010194605268241227912899333678423816302704809985100481473517477134166272759592584013374926411814984090524368369756665320683362157189833903957373787091955246919076031134599669035744474911915766222483810179478478552450727642626159072566499190551611138636939893211776632320492512660467858283531968970998066627151979083357560027595683588452158252951806289269196233349483959102516311823074169481629553291501825712303652951228331498791919721291147330225461006055869410719706558024265946871927091035965791332941256268440658014094135625313076055315800195515665296109603262083585735290101895617841306474049817590229007676057628237824292266485452162130907697311422686094747207347172680814524042613632786546986002576138678153509939791110810506384250153247812291384809530545148166881220686298779304169288222890196877022141491463572369695270057981477966257026363102424055802071578284318556344461909706948334289153630376994905192954181777626264470096034365751382302185996122206002967785642361631907392656070649347832400498709833673364281441735363011356411217539046163837659192632906779623126823031069499157294701598581928243976002527466817596679532478365820558972920551679457378618430675856331173625203095183628518063247323495416094325088613575651980185153602454303132651946964050444187316289933707011608243641668653516829814838364021981465998883966739694378511465086374395232316369078772531901893196938492869682996986024727810665847000891300029831906717786349802581692087357879594680575468527279463984449183348538164174458942300555770889012796527140049195919571157454817980463846978036164187813172873709212686726211493321606678732713088510325094995916227217428449950969146415811261424546312700646249998265098207522990915031045446228561280218752524455946507826323579786449667518578185959948114214498637055458294188602000738132488628749615630094096623608593508612410678176161806040324952154528075885266931866678960859067340277046777825891587376502463894460788948388350562984850251927357539930596855015900202018384694284367801105838774839970065097346294921826745096711907419685108423659814190073520893258565941931635977580928219058023030892161869552071271676527808877082621591848554017134310059916364318336963682720665704271439287559183659668012360346863659253883092520461641221025256491967857135052460343800118536040063630161889645995900007424177442278944634247991675564253962561468716327042770486420640325222415530186492967602288720425963033865603914293145386860170737107869627423190579285890152942189525982343535666806812452846534503169563588049081465885782406344680596662911100677510678063029497904280902674995167761160505431705936683425517529662230913246186821386367113565495747075680392582400905176086370689052044055348224282717264175670330902266063555061428025265230561762573303193469198889551203735446709743238900953849534061682229765185232650924307481157106856039981386396750475754383217593941913870175719340112854449275555545542217876512132881754470033216042830335211868198088723253514956592804367762675741226144743706940148799383281105825692228575651569837065570216877190533864235149291185276391189931365319187561722457020162590267616729890976850878677522084403780600482347660323471998543650905216483965127654699841164709237743963013169138665385525026986127346468916004533818149732838675430313494760318599271791677338506187818461899479596920995065508492315171782205492762699871208623505605141985263517233410741304679313685913159309189785270416093886361148636199871567076180346290773939761777091347267473457561143977825984709217484804256527692368122682682808348319870860744995820559589234991892140795577156115703419193460951730279051518105463991724980773489437297943252526901613002458866965260622187602296523185418807788791520248173962482021140250081248557070828117441217417591251154797478180578425180585320764224808396796284376498981387219669685961140049121052748483655717379685821164967557677945235114929493764215847550704474349138719374072685103985315056974004884686951607030960740560986792317964011451141495128008112376730927429720283162420240037310394404943199968914483035603916378899334279821930177921562239584013443528259224458905052036543770638083870449877022907721879273679589233185740182335331027354717036063762987540862171091089654838771126460786139460583250570407033434190737809660421767669615250805176701707589873646517113789595777594467099682341011282822641162684384530364687850698272805948314969302094981991355008509146202623852321101423480382231345261320607195552279859769343665311373225991141599889289467915653246892577201108979812235007294381306417164530667525393188507467091094393635375252064112654569103665198038186785059276054615818009213585559811692512485038735857352247481696768452581432985553762902326207813029946877405072882743900700939471571302676788528078529253246834411334443032386062619725221814973839841103740258876890228950992030815264468535518325039052406274265713688372980804234823470581483405365902381007769658471219580837717407599628560353339606438367533235536127375296351981459866533632482145643093960981960693562124414057695656573892810256558778171985178902277216840375427739836860851674254090231391770345499300815906239252986040921148845122195782477834006091277683427463700893381401672321042698245967747180521122511434199742566996312407790021634002111261989509519964459195790647908465888592420553921123504218194236674743792980317149365988194845276160380186805502662414949775621620183606145276486388463025893388325418019463634777865278760793028846839262979968391924870000831123965314873750394382042568523719502925118822149131513040637823144858791319194427515072598663084649626325081743154573324147636690700127851740496199487980748711225649467500328299428346400590930397629745068738841640746593529826608266132019431983422831324738512300110734383059044864733844425684579758245295392337540819659415301795677485252565749169349346060917387078296348760056188402936332020005321199975014831492700922329405147352410481414352241380628990319682218378043339676651222508433872194623008365859568074016197128402093117287930638552588528832080344399780047237980486434611921113552021712322959120048334373907023763053346766178514383727554385945384954492339109597677039113375027610742701884072159739510361752179371374292251671780284536085083428766078535037016565960757954706556465513465577219615654629573972165359102623600371465439221042443672182943981217577661802781768763120275252028925041134359274041440398547553814269071015000406452238940748108191609267734361286315685844318085565135919049463000896040185029113138927009922687999667424491332576780070150586878373030640454634634311656298207477547943264768391806259940412270248180614913099913723225475124804099244932585236620996686253791936867260910849522020656833230245721145088594557685038848766317426212198309558675960939749911636412919022243499840305859922914538171429418553653111874646730921472948306389074049921919623071278585770249297104614562632124038511126852765041556850308274743494177027678463877471240295656898972845308804754895960514217136878840214340129685658067715385211871762908375660367974668759294787722466956768978435763245260365173363069418787303863601304282638142241783646742932923394618336467446281965258854920815425435857273984435923804558562526472480724170929357611622971643866149043398645590261650674572263951157110468526417940894585260182625873006974099110853696296787493051378451830520307526137777510724313325201898270062587557377912999843273813954144021161839592419981976650523877342635886434506573864756193586833133102945603255982702790700253584308925914626327360396489600348271707783975801521253041571870639461036262055107274093728445010088702045575146684187005662315482051653280868845044220801975298187927273293452114480613291507035249113630634361030620094029089675026682028359266546387093468956531786499762854438532567807602295974736064002952880047842938738554494378940157499534341031151021438922737979917174658248639093897360224216166046587310323512916069993857791099931770361405049990355950710451093619569716346320784336517987970058628658810573911315937745306383362840958702520821466261063479005468693264915515005665139219994061317437255680590270766077471418636196109603476856839044049530912937581691176028383194670562506036784695169646097609355222908485372491283080947082316042704001547889120621252831249352852637937016078219659257678635837724694028851773883473359478965315072944918674336113858873297768434999411581683112658039771931446195778745152942016443858069465258647152880133586074520812204195469509434495981921238747577217174052024152199612490457638399058880171973928868222571881175142910595713982042035326822822676291034706462182847612678662462870807938109310310516963268417536978626128517225154088205337776904633652256520399081540435850930238209416063184826840319403551545255212677340201439448296374848098491847974485718148460391864225411101637899047409333459807257250591050242832045882059250414467652547333369843339258177323361269816881383812901364402442791371687724199064789086552098253934211301264085700146884733296086630903481177985525974585484183786543374549329439311950484361782621711691663566028076840665143503486818795322843841803752316823769175784272591935761942181997355179544551982957766810679394606682031227279104492817162609415230272733266964021047834771346085965633454691392636544312637375790141228398078746065578352730404918783942983861438341042399235874368667530093533199619211300313224486183744502631460764827300855023469210871443748417671888845344374710066564276634304719291687982760712750385269182359861063724027166781849168723114619320826872360570083149040886045057615912221080533178623311704527146721767326921834923158150344199361417170177391165540755890538092513906700652068733506728277556519682592084954554510103003223910448261130202735248084012180207860436656071506734819037728870756341112414296022773680437101636576486703484529839817235431251947709760825787736111425472202391560435401197388794297521460118342286379282133551390555802736421325506944220165512617816898968665594578164594622156025400096865697494460121858273428824631567573838334702702691403323036651114031266670345771132795474674366373974333062000312290987969467895337365727302834811000176930594912632087034052649088224194821633565580401986111101610860648514112353348473835367004091397060785717520900612887555336812310665380341961800643547971931021838041690485226609134225866152095435834792228733427590999666815973983712412049638944847163483231028770402457223891930556771886065674618951432674309407660906872367129015136051146112993635821242073377870615751177292906825010107243211714686601680472636110488968438235023494152809783998340956736412929502157428635617717475614384241466256638714361129504436702674141100071105257699203780300480725024853976515825536711866035064675567762271117082684135890749533370201353454276844605638098389225593024866513613551123976824662798574884391192319674578015543831103551349930706183623459740299559643894937736302687295717656775097693203720616116258689362761847850614685773992960005293710039793194742915289948214506206816184422994458730427789388840386235054569872138803282468056603546575069201669077286903331244953902686968665455908938639797665191348207012648944895597977875520540098073649111994270623114260376118196638026796229722168418483508176036289857775650273658566228529249155413186358292979735983809825849749712940001587482314943834150336170387558863332901675484960191580978035378036711424257386152251626278445183525967577860779726526748278417614404141217857686898051053775760611271098765989858747460875921631181321672443973085248684496071224766266661542973706115193750560772664613424988107562674918710997808387705399146362768750100500456908144477274910980842648596765998413710811407504972316137405360660483499354316963814096186044254515208083547815773618911334742021419232364544402118155395528857681948348471215842833240318589033618063980701566576377334687475517172522461699851948429462964455572517937077211092999618209013839576498298491230935081535255754679809022500897041693259818119709137003642589125788011101583732352613482880007113817659159415687619183422992368586312467303117337145938950266003259343818110671923426219306829976484493676395363502104375528881080184173245700058225496794899002040728702872327795089605905981632219558375350344959644732218852516723210976852791617116336392972769906704266241732663911895436175410071884381842009968994028331994831944562767974294539880432904636818156605056300811585892220416779850332947991849744769762769611693845053316337358234682014261578849454056290296085517823986804446838830042038152064128520351444555915801633053524626143127033834272742093596660092265017863314013523390194161087405919117130741260331740251950717388613490097103414496831970023188190819011922471410372560283430203591213575392115618349796366014156273768346339574766303829456428774960811484439234166376924734273908429833662586423843127407728084470868554286943734849334495406996040680136922222263205084320166454906486207484354704816202448990811130741453139941779188464632760171048775670196439999981196296834582938493179141923800701033692959781907403250452385950524479696138777685648099661513887506722578627756952588543366151107704849367544545422046348778289987045437895438267533684964975014508092965359934999366772715833127271837559074790295197624356581610819366952829525209802910203797801238361367524223405380569415429475017118703215225532191496735903148164627749654241662533431738253684723466579035942489121978933514913196386653814737927558005895517949596776186930109102655084634996357791683119615206694141983695087169492656689466965727614586955352137383132174364014501349849031292249182822356514405821502030330780194552680198829780346556067135659609301701253189127564745214042319876715941406221101408639887643154393827637805625753746848667577831090456975794277747448016017632555391496818193350669676647753635157015516128229152619259876514253654248619107558606151221356604591972690276185183605687183751866567337324189815627198240844355730557346973282233456154538011132453853553429953807069691018243058961201438097472716271958559199795991891582286579804253316236077413613690014429295730870812035643690410912927877741306313264950834019211496960342518821085521804416622758051214564988092508525661404523979893498713251298488135255801099279918903120617107946272991700427962891811499600184281722583184748931916725968659330213316831481204285016884181173672531469821358508464705718574169343151927644005622172271783384162968354524416224908863569273856982036838165404809339528264361566776661479803636439071579179889634237666043520715552713975337882504025521054031381717723379134848763450124302750237034753161633064487498598339269836395483813322064075233490555159332085118492119096480811823533270018149857498785177243208602858374780022617605520798122774494120782843115896335935379810886122444844705598694737657609448386588372085901135296704814451665936371543461993115807175906154967350891254469928443521905253173633576579005387824218828771367662079111487437614859649033738170402282026108828523850459561971100363255833019372027676434246744972217196723654810218450837226557643931120258293546333799363326867368032192314847360133801282020857509595537563013717691862372210206148810130918041322686768242091923570962914820270119036873542634709104610885736969998918439291412769917025252613298986087385189877499985085881332818651347977740783741674047606533121967876559126853980584932282212226244540802876084274417262159667454621153096390823347853615903188490344095798999151575690780378508446020476675941131033000479495257429797901768051340783161754997794859335470917201936887463390796648639169512693331341388772216052054974730204105467356048819216943213003007340950061231474315480946624870251422296808638651911194449001125845613956872214705655712476078960953240551425878453727729637061965022063089182808160426357195209495225302337815289831681463886901493589405818209557417343239501897646040639853348581649394867535086599183751472727110660464386428693146891707532779787578638076387320605515240084924862290823609045730470062314999110815679049185608126532307625292949678863559416084556171228026037187994271730936228632382146887057372814498548850073587484547039409261184581327179613346834518101213655601700807881607816175610598754870321581277296037073321288067063681588140993040219585016019597006175274899903231067595279030136925900387723026674399775851029901928073146480946383978731913151363025372212085411527854961542856138543227174393964277550776675014487041377029067384816592283654321542414309161603924482279839678273953127298906317386435709656459460209001405387855087490787662946294312762154824562091993951648275767999036365272537823281799588016856907955621517062103472036143509627638414989681118021612763661863563358225061959028798408958202367548107722777878808235765996005507935089242514247948575754571442932064250801816517353355112161924922004547827754082171825835804755389812292002020967676100339906803077840523870074005175912939942819741172921812248274292075177170162416595053068903749065834612090915083402324811065639974558780035078010556582230435244581849699331598555724061311528371976514936042319575262318978034522460076029440316977319025873080362766157237153375016952302881059122667325118233628328437966937057656142342358037695342771567637541662668606029767200970659484633886981141898431940124643289757048192450023044418296657884589224919873771875913538254220054149649999880012040657257163587489608886604741453914916411560485221044123094324091561107934788640870576899196468871199583098345298369438788171076615284210607716986062667410018308688144628031252080058704240322881480417082745589527477741941124938914639350894352772898628939143942849330089518080142025684782261797365451643662020513797796593475939974442452132223772093236830351400665921097068418048013033927115816303332639958794826977714503638728542857949877738328096720086003618650473759502268605930982880116082748974973282855349687170398812063061477463934105941851284645556185152669666776860846446830977268745943366792468860776747088646581226068357970623646116582842380030587557269641405662358627995782567314891805936113851648906721443080643986527383434253321493259161979405000944751417221476248012724928654051434977918641231517288430501860587732894484593326985772062331376369078580537870010350538839381213802998617421354214995269239182513680989000584182424071135137888491867456327850529392995538131059380218340391736903024208322665689048693481461083776665414230722101148730768021325572618453654375094702583182196868326902551173128235804691818875532676229798329957378060351465239870065165488130555166462248437972631929263064596337727865437127396026641597825382968735162058478000438493181403083143764368261811722362247473035244495400270307930541256736548166040150365456722688045693526789098999523988975174072239029525885527381211943620571325582600488625500560026717513842110900600218262811615607729623905984405624737865606957058000352008683817718297118919442067577793168683322092000951182613713090978129983410110356982617964733057328879648961299874325126110385524344004370761232477393616940020873485297603296212096861484916086095459078733985701423362709502067233959096574453217093150377317147029024446022650028653226779270812381809250629528023304329262912502695402985743440643197269370179604083718215780422895741995921788581303767986035445279089031374644952670616886022162384046453595555405908796921853397498664267945728052333493072020630695856401294262373046094598091395224646168500219448781311588174046067703737316252983116600544184510811689265092039429432231282027756162174426755042721200184675271905421540031877132959987332093868728167181182984427093010856411288917614268369956447261657202781291241156479382626337287697208539443952356865361102338293438509127118312008998477615215922067507090457663579935043198925437264151071532415073779020899438442146607464793541765063689610426487589379018911134586274813920004753416305173978795977723282886733605712817840667204362707451421002164237414466308601141092223303027580154997772415719774472058269982727582893093027477484999366035724920776536168437028683119681061157919856961277592797947001626802892538408549518353740954523151974605824530757684898890912141816423727398120715709534992402382347248747562211391835870811822166278394097118293192190429483054730790613068960832021065799129334352292023308838675526833868659148854008316791637769958350477880086260549735352045123603926155741657974700036422314804473624265432037546255623754150991107349577032428979910191290229926836926999999145475474107229374196604639160071195389011381974234488383489773939427230793715656995483471904302543354241260870676605680552982546725514415033363162539164333264170210649126648946985192991470261701947413394984763346993777575516067003365513326313701602708759785098781833766917791481975366810632962549126216048198331577541935693021414707983477606368555845671409629621785846079577922475492555838280115657675264056629121469354795219781110974241466090450599477227214258835949056880296764631505843916170022839809425956774763359902320686886972670070995364418769270667893163705918660457818781695632987300721792573134814994629131193481639775784633888723931678624456275217401365596045049152317020516654615522336489484757178689634520507612783850054224014619985101329817272843811163084038416475181654347875098731710871319978528285662619830555400432239688009981246017480297084350060638089214878014739335171965460410842498080245691984620114048019566839680525597999728171136373332240777200094314081214166826685139023034874034731159186886041862856660239247409648699016973160042529916803030089161620549811966579809552232975095349748189294075015885942972462782305382998059406418044145222636083623418255703416109879857299533951034685194771525585916694122911803811374572934589083718323763597260645753963234917902197153935835907854164615999106008414346108772932490767137057630081457399613991502433400864649534909227326166706920312564936608446407996261458999018801631543926601655501326461285040741245592123880177715715259536485386709809336238436298490157228876575414246217307565873068841482276036735111767948078502975498657835528635682901581018087518696684190818242264400181544211381408595769439263891427555762593064441036572425962358250712324265611519074233749143786477904126034783649406496202596918571256699359208599517353338944266362506572667215526608131555025346152504091209824893202351255539405200703064365103960790626859878057025498750026154169497698047590232131670688064590247684816836691207538581638001329432196309923762942916133153304772764206344301128352741133372257019960255815094774195681116199682941822044155976876015885740894515839419554077335403873189413493677023599132777994387859291184242542597477029798055266079832382045491367704717928807669673780395519685497567171816000941148225730882685840679431466113753003570252259630478214869417171470275055743581130312594449180172675182829917551995938219224918898777595274238734682445283325994918136772569321360519163631120399273623634403288934346332871312518224015939433025159882536656598455532165858173400135056628509847191367602374097642167269629114293847978383138779759019018880810495645413395496067413475279219788684922876140785937245765693806466418775651501626893588988265992628774599276614362751079284588247368692222517330472970451789886962591130728724429893631974920563265114678593128369392233424003607459645974890502246807094414344921690902609885088266323934412891484848070725764947747793217663098387187770007058740719953030908691300618142904613909569039268803215802410279166717784196369593930592505109471933393753031992923880186673622842467178732538014093799779884701182501006222967079180987180130678885531336199902214809399701973722830913411005083776641976955121019250796681706217615161478505975172094523817429896341723844932674219552074034272026669772728138269001426274609869751937648260352664324899477384807334971411754421732475816578591968345258824299115850347630454680081506609113587220047068883001993786944114458399500717212459660571982336404204107465992674845223002892247781839346893262897459872958926361934105857158288009558375999522573533213000609954259711707841936784033338266581225184789126879389324534670169318784630853074562575911951170239897991744171507998723990886573627543826951471833464361952588426440080328309927772529465395460946285637806076223828752016208212342510422395932564203269485668450304068096291460571812790156651071339913383622762379194556447651895234059968326652310057448466963846839979184391203146748577977795774594687646388853891053803240736902092996167298230003992042852441955641415896351352153678549299242291507786360096049531891942112224067834799627356548863178737458892787829862047255084404808179254622157042133209143163062885478461557909065412266980275143088062352258850603179679209703083570309827710131401515312094184816677120463980791290935538593495381720076326498664039603703251157366548076518902166670387850846508064240276829753393750368965094984409072880493394181299062216634543541619321560234254245050676699062043648263894524660789293962453436415509457739525890964639960064565368713837510348479033295042253985241192131317008467434548632256639273693994518054675007399812225670293593169322622288755684082649013996995164358618926397606284407018180937110946871815147628199465622291424650757081200244457030927151180973846901738599340088788872725794078941299773283371762955743487830181486644397345167043028566518019666915010379012462499297312508258063984694843349282435699939767805112084254316232709967663432265903610074928999395833280533342180820662794537929021700142939516659212000313209699529840913531513309943584946556819757258809678037220215805958511109206768049258964225165907860455470284335478683559926202246887427941078849691394060670671931003159628986517467709434935455117033447104029503687761355701616107816280047763903705627470331099303069935479278268893849104117128031557188061934381676810243190531809604158404836897149275888875279244767434447093558103886504526245318062535846484512427265784965517425446887977174411995215047812262924701858771568198151197186588947520312591666512197876761266053654816762243072069589841856420130201502360000122167145165587794148643505380607039087195838710785442046328186390567880584705555198701728022159435791630727608146494740626204776979409207369680115109597040682677030747954392301939702296712027527025118413255774035436019408260109628417389958699922555485489757276428087860973286044443304498418186183237705228065920216056046315827522273437157228090433337106095439595193934020444167104505693000144367444578072976999375213537574367976413604053490780171338292550037572393026057703876072489626768423631907856938428343995835683073600704515718480648400632647396580993421530756359250258170779146078718207994546469696883081323864878002959862780479890850981457332086518509031271153817991415413088470278062590814828700117275330066896556829408452175210155384289663202892454019568477067917176365062952039518930847026947023984628178739282086910518275975102699338979067467938545951823419372044708428518401891560612310062316403353157914619900680823007434808000217485548721111780184441584911931416099988824583323127913539766157553828488659906927011558057745705594439769166385736141837869092306418416975506979659704338544904668137994262589286117169339000956125808377869861959629046145083091838259929159944563211300591548277172554748286092296742034975833105135838166131057553467217246368026260139427330950718752606399009805585658837477138073970629293612804358621030978249525548708694157824474686149672429198683677624546292696942450142229777165277650849655294998533351420051060251133857405849772967581912614976666673359750581199660217692079172407807726304759184416865000940072485164171369402990785002110506717247924454575580439188709312723039851173862478582665534523176274844662986971466708961290395146023452149121075172005832736313612662097925792520273371058081314590597093871710454983774390206942597387769548696224711518988574050247940343213415924000331717124018544932985570467083893757314989649217519932822816434466068763590234645298772960405048097743729268193480729841827492129287021764240037044474529344614139996183444008254759262318114188168485761014758753952545614039553311428813211333821275223361315193044284350207155392790917715967988550226156162565552859386622325669689412287371521305965705358379312279758353740281755385152294697803489079467540823944490745452206321844026963967926877312612420563864108087231410739141669715328820813363033438916821689711705077226204312420273751256978356381956546230097005375785504677220963583523512604129957088862179146089880117511375713675076368419439235051192561395386513147342022307790904800646024047329034785305227837350937382538763171158739703495195647567777749527554163518251468355321534569352674416142336436682190585318133314567999000276983413473414608333893661638030638092670605918966370825932066030867607744254384123938929521209730847738622656514384694147330737195201789515577643153859756439471964215924980618656874669423225003233741716087080293389555938620700242175767183783855876142888693994744569563818178146427597782946718866895073094008684427566070168909409496561978708699901598840348550308631432570533873070655518617700642445608421533567108881238500891301289802874422931113415768162872807514848578126321406012931608771851375672201541449978358672962094953327813842578043584658452684088514592235296280146920562891297901884670630720912967928454882224009724009853889800359498270652123416472484463653850033852840725915733579832564965222644211687683569899816984865809120582722010359235921558725845861222149285983821733174928796507979105891978282179121249561792581669606840008543673060331769216944783868330432158393044813764372395162243468535029960790231501003919674411519963164612892193708578401409189405767753717322104449050326632944410603529442703212301878812905217727549260432223356964947664087066351533026779903229675136622905070570044419005475845877277059785042923241020315589441217553613435216951502851315271769480945536074106788453132435808168945110599921429130688793990735848739006389250987687907902112149874566371761178756047348996697025306627962294549674862714584996638583092799573811029522681485075909481041341152111519854298602316168300517148090998993742365162321206593405236257266086308316641958777019761717462290673993435193205085461059578374269501157708538409069560209710317496677623144817118637757726373940104873044530778142706253913684349316872201060520960636985720305047889570384722565181814742559650830841224373696855425707667804081734879838313522829038933795757587876746576025999209339339160843655777525362241938495647402829191930851018430312071905462385716791645112106447388850630198755988263591351470931498540473694030569452987072650703001661978672595457937934804980724300327432270059546098522906594095581571642734095082525412988729752064231062532914900681505516317541201419819968541001523386468136031941760991062764041598395352561815333786526796607893665219421121136580120697167319441522544727579610302567819742018443648387878731420538755906717102863852055119812112686003238472058462103755695686982585699757098216813392566430888136048062577526833597725577923646991905357815603291697212508849044254394904123861370052262669381019865991771463180108971080075288412340500443985593889712201136387470161860965477676676391606221498872019169612292419180047119082526688614269632069606412378032388385159376196839119989129849805848837967570136308473976960896506141252488800431996120096762973372310835021993664058162583802918328185079583917539932935978755730466516000763878883481527304250284770455314005077318209507442401973758539860753261854751279959638665382223273405697138167373590914591993611857993554121289172546841091576467199940412274305006133564280367878425194675010411793685878313488962861475137226540958726735582482803161104902767281177201978735586888747685724192584017032161808144136842282492410746099456332030661673003790728737103684258820299946733811611219582444809961303419320331702165417744821032464317621785767356688847898605815244122918032584966518535661155466381726441778599971774895723051205353951840560367698104247701484760816542863471552298760866913239792355634870579910016844060515543606192731819917268901954372247303037569230697827139968927498494984258100986582028575563257055727386416136347635366425816716239407205182624831288345065652599069203359541042279551205671951863181284458822866464079574991739743423819919008341714307457850200377236196281497693834990089439532708175255751990434664340472093382306248893722941357209703010518877636106786016800834603392637666311661414936475340231679841627879278353864286043436558741246721069689876751400946620798840444875367972148470735924130677992305712224219020931640610754441861249987067293107072999477724993451872996232390178555025651592450956826543935307237750721287225613447272034385942101979902123988323494418335857647961966471773227591049521933031603361166724042151062684923029262939289881078807765142252655243994915425995387115488157630800470230058415641967976097960384351727135330962862736071873495050583129843341337973847191634439361335553554811877992782412472122996717129996022142398877986681079019758266527042764092146576170378379886172744097741635658916411140293880155987066187364923182609121859378096844495218261347299121058925797546502485188187431437654744806603404864589612066983356274476614330500874988319012159517313281861881963853135810575006903025464494849325809262470290788422142395164070355558695522477080304766265717920700508977963810240385258533138499014023134836851439272504386883446791969986486797188383732058104223769703926483917938786221279124519348298588759826467085778572079224955228337913979168320651604473705643121329271482802233137544115367705224696644164245937624192054718842787639129678924585810458206973028273849628683294348068194772490190261263000692063095111825363553357955613317743462040236728356914785414601716530603115414018602701500556372617822173315650579329146757252895594370229706395804749729344360208902853396245786306025976944814721226310154643644043242493980769998422027915617678991338113211723965891284550933697774158456055057475813956151587176648238206902239186080114925605199542238227905518100773408612733694708332186438193937580381384791213454372540202483600795971804725355585074825681519416613991727112112393114073999328154499057775477608755909926022586901449553654807424600254579603889152543903463539907535693730268024512368778884721221235915268746443712444855319053569139485503800297053522969955628919463941107718712167016520223877000075775479483492071680880065881184393657976802133020091153512190775025133874549582543817594363812285916942311453203039351551582561514275321398286848896381428434248394927101285157335281559179373317119376986245018701393850707499046245627578546307014768888020454409470688085419194827586118815100652759908067355255680785652824461604619799683270192747652043075885939825924292686415606476395832514125643173084494805273933887690003203816122606425724520418789081540931962606001847370695013546776907791406529227404287429749436640452244603667274799091310058194737010076976584018224523535966769323698226809005794789299853342221568310889892717204031727534136197934781646554580152845171819677636919893134692855973951418252958218411522427384647629999775042301899826651448524552092866328793736763090839189702771873104522570534460808856293706455443879973885903006250793342862927582731284513864553591632003443524203102855238611586221078972879244347740514661970954564466132468388281075104568325689960838596559212483257213066109094430726757288187190372351686976301564662299746440984153316556881182486719207301189288405360572293583470737108077217139389618125425783806480576477040218337721645982192158593114757906568557327223196128076325455825258235887218625063058562466877885337579579153630324364748304069310562397414409802359299332406265313256696542408526035531796022596349509764452418221104008533960172758816968121922961622407424468637875657704796768587631162665757183537147310935560893760762471197038183415458794164531204380703426802049697214620635195459507474317219673810791216120282432083996152983554071370010614081284213030083734954441463647149328291822520137043910594919643861286215507739048701554295069009931563122637547817036499555644713171981050068500198497639581703834482074361498491137273676939317836568542626276921143504108192887582581607662206474770803746288688838468935139172999120481708268908559204833160230995719733293617345242394245110843365200217543042684709676125538694177216082167955963620085994196264770845354208705584648407793245124128456961334703130200001794682661092854641867076346286809661602147006871312902100872084067456008236183266422765917645536548105837802331563492913061819370306887024277921454838965266166159747718076796700618597846253342226108257600930405987272131634393269374665578629280799902625747904526865895630432591228286889861921578980596171290263436280840968372336601720515938060921288410412139160911469298455895823227908347980521240461832533078701928433977653523247278156348525206703799152004062899947982441844906454674963361878351254287430924986459864168227396062045636937893015874605852326667366360457798721631515926867762821404723227643045674616769897631526654027142071625361027365157196044357043832998085290771688517244849236581781358019990231575354594546118548637602913417388046788733784197539079596282829732307335568817436421836726348056537159722548077391531420972117768187853833194591162536189551242282035133421991385831947586854391619778619300840480207815671207544103025924364177893335851953449383313034554400076223540316172723724326595449712896265591947036900574336100626276005611820948791382005586849800419932702338104008382550361177416600180013850794589686804593261921508066399146872945863219789037895613362112897247218497767083172070292653653479811587806210280155382109649519888212803782309960522524007607654053555111345249775426181623609495566125593838156185071114750356553823424346934154177272829373536597258210208544240781538336098822629202045938352065037623221538433905844371954964785464865744549339085486885211953725709481300153390032785415052205952337784982435373841603675419820010096854289602678325160668390251122160574834719921414257860320440854626391203207265592770586859888068805600494765741390484109041984611899018251050008911475380297210166696199601670410341612241732051257747038366878427947376588591901907693063539641423192754900617684832826297767204502388168046856008718580371180085905287177641764510988583136399737569853771644183859753200588419365505569195379311518716144618503774291141461304906598538131523402226671266229815518875229646130396752447592687498585675625726925881426773238165578038956168983458798753684520689268658918969567966911392166044239595148532351705008988659971306572731904645615482687813793087967134267410775179362965300497035703176054541382611166071636936082661532079773840046547860032855638676302688604536459530896985686936677952888490231864029675773323845890966231411704970284124163532788030840466433952188278266464722282402296360573285287695907633567201937938557580174460689279305315973809239688742484038944917410587123122078050256329565050555724590436593760713994178527630704986389113165900915125988470074369529598374666871655723219135587946385293072955778770698696501050578450073653691582633726638194689593662588717509938841365766960751072950317685959465847784374764059216741956667658423544801045299044739512783644515303017850674020762491842779654615294390633953379243863929833501433720086470066496750105117089487003044387083101659576055086242247570365611529676948294585951141470797968586766571394071392943224418917110722650416732393675487947839277307590154067853072926737926499048253362204319547602689624021759295166120645646240108404327643901814311055036556586349464353087114355856404903530390336073015513939685798157104123575211606594507375004496510033351239767286051444337192171754766639887804147651212200483418791152580349425983146732036091059298461666183530197603076543903717637805713373446495768960841340084235702407702456252072143219992908830787655531177015435714841018165282481693288830926412118373141247554500072110335467883750381813888962595219974303535478378286306629900781562516180173256295428688493597223889708562372735542112283502650773311829579402984868995146776121650673081256876995168053384193405548754471073999440184424970826257630130325810394384403917414792086111801548775179761057915909088420841577940033967062909120860486127849713270136919586718833949961540189990488381643904922859766703593257603338509845678019496677340077277013975997252727946628348226840046744534219451908045173166280923330158544449225525939497601862215924432923286364679441537912643623158502241693503579962241555684096124521011843853851582187508987672577826459216150307256724287705826681114141602137202580397400277975766249406323762325004658732521233690415857371576299237368860542268749568281916647986734777136648960385273872037703116627015697550628778915840515448641003104706648780912109254466884220493800605403290601490127408393456337145792240956943431696720895885940275051976195587562595351241592373249559288080141590238921027422074108716538395367494427074972992849149732573162871441509969090281761051199249588136902357391262661705646437689722248548929247791221364707796153871086453849995626397429193189971264119154581254808547752396560697931345075156292056602419546770736438675329857100810792680486999253655396282579970938864462094119849658133405818069057466568362329300843428619380621514286555326244668991942556336229142874354632415503259422845672293147865886348403594677655071992956565756638109161089177905575181597941319054984214520487297649306289146127922786741978135328313130420240604459751271878056501187173486519416263208790562743063398499115599071175121601579473502387094647618660121326449609461191286114615199808824666924345092887139913357210135150331084657100538605309392260519404241968056867252748029990145062495975639280870173144717212677245691227586939438713966468613402136978205553931487946475372453151126860301378676556800571362920755380675889873095808910384310661060489582284941351426460925978521898399604849202202812951998113302252600161184353816604354868403306761224294906196428358886779189325980187453650479105838900448905090214689181687066755189339318733086309491850096407204210050044172772975033500869721136742975330585600589764809166468420745598555427365587116809013119431078282918040985335981436264965387050824007311611395745542701820554671096047157186901212698372762401894592185429716556579096662069693849580640385645483236750080256861010994794154703712713388612546214881151102576041826442534195610596577408751263377791378907852406196047438534459180939141922869400963648053542713406226017291830920800307253582033837241943637587226633316658729635905700932255424686875235179121254047010247416289759128660164160102862493718154410760653940006576574395090225081100368480196610403351233760196853391667728684426200160727727318328758975967687657961626392084289657809539994155866769205363527252539879600509640842295866759790701960432825337354722323203799774745193456246611441627720178002225494456262155412216755769040179666964724969886648061415122951972896709740494047834593813560118082555045872408297440859329425505713131007516276198998162030480534180040432645586667486692301225939743001458377598851106581648141050901949425669828845991352046400364454015744383264349179672854820074204918358796008638528615047140678524918248284640740812533192433717538544118441870846031650778297928177183170788967013865008062366168524951483008526658949846276099860139096995079143379030614273115995967585455413074050915074063316283658971812106988217051533256281762459552552557327700731153196683701283802337210581832933824083798750854557267575371882001774796953874750196346693152329738073511089074208308040926491461170348741975102291939791034120880427849339566647521780237577591122955421385280591244087946024157409902043259958437371972674155352407826774410195536173902361079561435522899648854903219245574996057167982888638099391936254391662801762837330793173832587622023201724220944334075855717027866068785888039937871012545214534406011380076776180118517557587667378167183463173187271048675613716715770981087423445894951087709759301757731655260626340272324296611323893577019230012108161823477300480369274319576248962454714344303558818100608672872280011004053431713006282750079258482760611726330736703581420920615879272923515132107601383140783573940103309928277647744572996793449890484410978064628208557967652322317720728686870190863975876169393322721133444274602049214283748922526109490364052559558106407671964552240993011759172370981257952089073746466350115609524029639935876212899679081191865760390161677452403965007178165505374595154246838575212639342568718135702054085856681638452096836826090128720497908214188155324640315345357422410998043337327668763981277133826789498014957830567685545391087456993909192264860438866545854604790278026768706694502955756659445826475354743568731447164413618974217078085965513627222920696579707430747668111027233456056907322812654150944039610609427950263322408317491037964276255170314549601409338026579468018628966938047875195493691690002294767152893096469611656457402408625653806410968292819931181792006431082920608161717005113590758129141212689053860918916884394139612293523129505826489457727648447399339879261955501961260486892387247192541603879569555383426029556946186248049347116900848498638052950479255103454303964219755851390062292490287399755119446572367182933803918922381337786545268095145521739788222458262753743526257103282063164870792176454253364526185335762437442952269355698674674051372635857729377539844376979483336124339200681332577052217288205212405159667091683190786010741262877381890528483106807194443273130420015173881946387657531321322460413188555169238209298934613024748728905507891447839651685593722105267242196649196500523094260345520253228726429221118324526188594762099200320871762877700989885240156721006407572030900401947840018671173533614490493009068929145814830273667195315763525411830238832344713405804855709318925616427575189962351029576867983830384416796530264788195839620775097534381483262302726882672494038632723587795397666280824444524610590285832671762215330232368244138888510993600711765852649783588194410704587999841239856184028769457664209186705929431943803789999775803492733500498475740677590857001766019740610088064492635796663995971131124911671786293279855095510244606029848855408634696476719191247887709049403596052034501056611097063327264674437415884790903863580879670762567310653228992407425735911338245387906217437754705736152777059522347113878740288060327054053018144420880709512124782246045744351220363301458467244003403186660500739148406642273845771754883182695324510737669415603764253248289024275231696199163126026130378743471104489432775792081191384801509769706552895006532705524031027110769477205342006472188732890654297920395886465843142946956528492093594054152956357848021670759321193965899091544166635204904419753749440654035721673700590222899312182493718400925765413209309043840276134452062142214866928318002014320973020198683639802525586632250057029147044925681218660996611406922087628747417839451793198372002367622145127147802371240986273711882325913472161312762981626377676997684280107506294829897529284468121595086236341478820406619704237019266942628202734561958662882778791183122748462506396523905635412734537740086634999508882094932331104804710173911905405410046030577744729903740250005110551998390975020669660303711769488883267897822589672565191862013958165813373938957928784091842388521710322971440410785378079427768459165264898080739401072276087265110289743822072765000739945302451986694564662409123723187309139749328263025828942086645569825807621307965535654314828588528332167448469278225912115648897714935507750469759172351107526011169243451707271389799714066552314402455751746931040810774667535812967938174687611206185191035137423202911930341043646668607586544541361824434368042406214494325117916242027962300545486755659186048042210295829805202675423111272444888152825122127010305313320267554119327959203687715379948681959588374720284920380572090485224308215727050583909246602936977729842978900446441170622425792819384077051131703703810921958160791994290574164993262907805543876628264692476303156441528848486199494775459066234547961714654319743300262468657931592094710361118356436296018649789206162799638593708436720308101379227594379382021606699718400118537503687045146399532914358066794330671362909306940753352861146451380701000577307643901079491514651611657862529352773133002319803268051350850325862256767241497140971409289680961504362387902466796648784373438899304983263627795955449790500732902442617291703788692016466329411623261260068552992336104922438282396215366845456301512897129246652098042953845195204530367454194741955214531663884802061619579857737452300196359102301739758998009259404311642887726421825923842112233522964375787699754802324548327467163991212674968324829366887832181383604061598787888038249074997866679335452367811991072796319756181395205794496045005803459926576361168179513699770346600251293035889413178013986470408124523171464456263954890324824447355451354325943292327671595249221948577632464648166384390468357867104450199940041137574320859510150742888599286728913616114261989687215575953307642989301400643110849667258199770116659782117694052868050917102779797982740392851802112757034506458586851049453582817694648180818131909334300350620871937155434028628501741776191496234055738910964639839174982313203968751729586855362033838031864010028354320810271109060428202534215323849401856723419419563823618235798498612218187043153794702758777834221840679613875553814099585727707594558154191737768970623462540212969567118249947001858689169794041185743954271521658667069360163488908339556263878193636583388011528182753788835755763563513649364675201567688295378235863161330440217104818568727995592127715295211194239948318759436555226595456948006890915669902337028277208022509026037550351225634351392184908362855377531180104127331152464740162972765451764855455911356175395729312845580404615085156110565164834404045972894715185751101939998308956900852873017211839250679518911080078928249120006938394220028214588152308696823099143866479846960051938164421310901389698918165785406137140444930250844432675916617923807743894122246211184940568769879288544387702615513345807540410533397896578587415879461386327228159186179690813398667798618719698811922757102839744381725080139541672318697625565970450799238652380724739046650888101248194093570994964327569915804495321911706110714528160055965303749714010557608335190317651253470324259382516914942771198528467410996940809844268042876276614230686448100570392427703150868714170520393285522507366424107222288526162921056723810548287399050280070875465444437149004677484945723172836337424727527927592093735411199476664009720743913730639736573706796915632421775339348732000470905177033156872112929503399862686741970789859243208458065270995194192219819877273264131640997330757494687873992283256009629197661072705640444206234920471194873082494410461273388594688919197119953305382032797983060945802800699818886907924437001934404087340108767869596482106252337763128420353837439807397260488421124228449674646600861582895899706748157586496300670122732590954411206034850249396801660095889228877449393827731182565501681050352329357928305175623717661915631040003582398063251188384625478382855606708423266536007080323829753340829342002011173368491308734176889945870523320079971768799931409996274803125301631875928305725416162532709610649031488072512728445934564830615034610906581497650520945807417490099959333069237782262443343041798863561645551837270445165301681385192005725786762439861900476606023985781197790940289265822733700865503275984152593023694362333433008028435919244173829287766913096162495370968048816595822248719832095323620748459492395138680476574532312585146256455114333563271583985138646426342071893008159190880620127280661512490812354773976215443902725358160827693981305488741299414985650609570010209425239681228220571475898500054304560153387880247893667078931001977194612286145315368034941778703868829499192696224065146921046742994787600158843317934745877536583373455388478509598112101105134276356005472415348882212587005099907805340449148482329432141152885113542893709705669831059546849534532617958108290549913052753281152090037688665497420313727020861518236926957924092235318481484731063092537997412230393152572165067333446711335932811864696755691343002463760128860870276932578353902579047195968282489751825100150755342733933357468912259543938831360205221681180331139933649193803751921595454233098778374073294712442295763998478144548663651605279848119658459177746391822512788891305636566335784819778497391315055130783723453382346835536117951497115428299618232095297884691822206503443084798537194078704529974193995811588964243928038662261372347294742352815759574266269956545142298192526951865661875076737151655092554513291625623695821998733682972225322606707894306863386376264974823271516297937971172983598873414265950549846481810279765603512259771086162018837722106054136899266628282668280212801964037397700271982798964514805548286626594213091486228029903764881564358823117261375976506961851350065426243478620803182698947674459516208820855888083079769121461643281854428404409135893169038008015559938574123784559806685646702788414305827105472603419109733756041231628220441986074113621885786543959837247876341532379183003702601537652896603179674688761423466660468363080223558033907718829580199915839267176020176899224985410441680699532620727274441957688531749180154999308319823796905314504949975104891306176270640665166342030403209716080429684293038856247687540371923842343982470406660674201294074146205324331290523279221031763600541247103578712877082167872687705377126761745441803733423604423320963357464419231634502410377009507592083955026961102249037050118954499933745608716898824999768244290415502607948649099012654477558752586110423978257974023235122167013689962364510003009180116823043784243683763100148565880942036735674883218148959877763618336087085839308727424001818668182419718947740897801549200349065021462418427306905229439505393930210283067680307241721903740835601957755254724946649177890566691478676329492526685185056631744140416812014638924076304713006731403757468932862774806877328539377453591446033783460415543469554336177237367788865092509967229740658364467086026775774650905795439214844444335285744894863763109308037872986129434756017244319419877404204966465160869117901266456535610888379030920960628860513176358612447330337751767208725918883903494646351712612110346450293820072405206047733803897962846886992836636375850168303458982891734484528274611106206214354128922041861230249254729082227473952118955437605927020809290251026779025425920200064134996294892554689392283441803702700346355987935549984953906518866065902744836967100527610193239209989485614810695496736291714226149847062973373470608361266427818651571035593142003864358356718523514325033535900403994015503608898456771522082738776031899733574872654885005440255290636744314517382461079129845221881834933259546738297075945084901528377780693406922268165695426620195146643456039657240388382740170711515797422332480017162386910068567161271453302273816732903180195533277663658625579372071794441884956103348781455111619995234447528610352185976953243341622045904251153663917376344208055811470622065012895288653147518972129035817604525732722993609476744340970509494459307044403390309614179677012085943810555772377165648106682331456904023345005660330060506148865511731590190951386695793081164780441507837869234647296114276341423228535457574805573098178985490215807914237300662692203082153222003413984169047553394711347586092872529500225409766946725561913856362541728004458699214713154428430777974157707278190729007350612436429226791714311687552248732178282524356900638461283357885488124137208949774453752320307981529450157287403097476699145239566364091618850849924504268720807811830912553556921603830666442193730997358740718921223345900038972616669721500367909569165696212439999178978667124831977965433036166320022911776101760135034686793139808566326377590163562951247910385078414588853057405415564964435094576668559767471564077505680724832624394747157869395135121334450380880624917386558187850839714233312608194568749647629741362641878499750508398494247543024684541857738812536263326677404764282438067318990688195268007476822013677808135045521534891164951503205939184689063899203220233764601976524452584422376072564846508562281567390538562653793703326546394965603951302832346305308235703989783587482932107942708770335525824199390704692936434363832257915003693828192545261113436081488445245404585828940501902797608814592553121044750326640637342284059885685301251721142201163757167525394587093022335916469183188767422438567708098233156491820049577595604126731757204653893043191535475674559519470985347869469330353712546432059801043282651083185330067164930106376032204233172237397100378067944587714575112583151634941498011972150499812407184351786612824122279381034637590943040040268400614526387793469401806292514446738947391705223969160565820458473457882275758344524524493558700327253740968852859982982131970031142346998283718624091391517421960542116128096730006280214092120342875058694385167187622762192800887146224435056580682664052985120992464176831114439989148968157732717538421827725756051436398095854286375909614836204176869305479998936377494573598911477755838536307153433323753914309124660708174483006134931826944426249345664547142303646743608877294055359886335043933989442313664797195775606242360559879447064711904836619062537712125029039176797647382672745905933389287128571386085168712838370669703002217888703650879692089750621725564280205343183536068260449010584545507551392132344106075339259166606931249735286103442922202242705883723098668096264688951518067894926061575125117246534353123026406402171924083692187610749586388894780860503894607281945810163572891913691283996868812142477425552112526485222826127818209359999878614477421958679116553143108385366069182269333105711167551145366023030906376965908167349106838404305909997554114298101768323991323632756562784293706512363627768398274361887453040411288872144089082439830123927386559780523413014932836666559503965090452205026224911707062924146180646740549132788198505209960551619534311028336134859378397152691922263674042885713539116683763905699166877172817489182540735166261953293270228545706783840037517213460096989448204094400954920286245307052772169982753959721522873522171040066168144247622649718384353544259915020171886681084147596018393075024867030293918782049913411378172520852857208141733106707532119836697405862984318196901307733594927974527814841846769359958859872299108851176241606784828554392374367172327690324258912489944444131242470023535615982611314768031967935999027905863700116522870951228423094232841003630136405535771903205897236486301477509294978327027644463409188585025967440612169379549674507592405423502619266714137760348624795923831125073796797104814786547094810066046618264628805660569984960753627618506004334268131809417538942236999454634572649194565551512192618659948355491397487065157742291152157511560229665085890829415826767761724705860239301114929527000724998903262102754553796347957665628863855993285832818907730748561880969630050854545302453221235336197131619571770408926396149585510582469880725960898089469086824941092511782929803435790845083627817798914811823170437716222624750777583848590854481084591438079155958263566011749674712270687969133208663355200434902938068171122894811587491716511465376074583907695381632405677202490716073453472169216000393649243181936297645529495111186952341194132890590261112886610902207086559296728331263203558166301907556595613742957351376983737192632298462698049971975548466747085128980460023126654467967826406341644451671718448319592461601771057559440577481430586739570316473111041191244335989018275477919880825154156240113457349185268955104973165179332907326562664992460877577239915435185105150023793055051896474217676497340100550424648058280266245014196515224419293438671526029170460102795390454671656964519327083171462697694742881655413902039649008354409904370722332499592965851080285093076799423492832867336380820287474167688186351046048558281641331492932913728321690916571899283027332956578328593311315812288500060968653439933607494593993327875297483681295792072341765283493334694408350756924574697325775430523709735012224417377567409838792259344634056270563084781867371405119942444852677300518678254523340795927149486058158924000219984384721126219597474796847304026278607320528575137667981558492617347243193171026870629157924622967085593769227611828875043491034470444611279362970810781598449204871943395150077017219437668368236338474154951420212770325485561317349490868865213910622847528041860593690831830393630402488091511141827087169184917363654021949078248267888050689470563239737786003488296563130784256126955327992383322568814460044547724700749967377993720334548792752114787258328880640037344113865738473780827663970296186056354436685219127971965973140006670430559797802240765047454877233986091878213886709613980272325506121998192925219970357800503547972868412599635193168647272842678225761469794314811968551277742310007169449041299449350826097215032090994249592628322771601427982401581402874987385228178005637060056013862638128059350805083856001554110326761896859791972491132164725938897465742678607830724934791711527971239548957425938003028954855449106147269488548583000950699656310716014050642925157588132307003628149196524894546855004915259320663956050701020178241964754969522443159775535480994575244391756840588433843415593929171822364578786859615124661267159052562045644254481009080777974461989778022270830176568538092985236637132458599755667130041291992829179546697849645029106587481311645026253463819511001620689073348520859602533712592210801046520008897531307902636750586390066098504187787375601224301765982133839971645529664585428868803374030042722775815602644647143496924591078751050885116859390910903395712854197223119596086012115188215252711810635036214406789698477061901804949383067753065803767004492862160152305835857138828594408071520117278590309542459661359021542772278754011395406612855359471305309041666806230762917046827153645095482128035858500676306129688230527588982303522816318524127123110413813719088342514296543003675174327400260858674666032930436422763618157585396923118028379835058522498754780187068432280540802218017361160371207749319040316313775420030452088408410850017244167025979233943634577372860965286671161455228651049650062158255222755969255561332011328907891699610400602749651508836681245218996093186136416066564825032767524287791498032803237369596761229016484268807110069756654970349995759590460778663736294779008566939081203225452710287722792858736710100313594447368170287592203426851712472069261649241058098309821235277481587188439544592923543358670121035072146996020622058936086955517151613353579077070323271968808592809475761434751731351937886123362362948031115373692176906416470267104990305336470845911357556683259746237037160123102856145594780041733339821759849015739389320657711261923576739698310754898264015816998956396819080319421396613125504868813370193209129118758841740906142576956005002266017998978185941593807121392290591378495958432172425340039387839692389358111033562433401175986825122232039304827366903620065274859578238615516836175956598257086124595549308642439557967487559504962151585800755544668051950109175864344107823799332877724323646006953648819853391367477730510938121884480195516326283192901516763486595687010096245531029574649878176946970850303577558814950989023077972068121124614105840243784830506115570357946241933024287630950121424817792857819024865125961227365140603734981496349771635582198422422046695989058519918743432235146176111938804979398763103185523459785343679781076518811176051331310744781408211380728375167406755331640467633283086539370365790165325657349410396586240375045716482104700027422242972161198211208248426426244216173955910277881949251212065340340777814715051787798158844354705039651722908644095985869647735422804879824077503736156149384116209461155244736100657063475531082074039801773507834648996662739128097394273028151076012317671022270367110555416155258639863989271088106055006057097318100860232352249222448567531707225768646575044027836819831882243141336554660884753661590971923902371813085158882067325545199443915610065406602323617138578593132725458833395843545353592292049939686002589042332601818727297839722255940740390784241991721466319121207626884108664838571702974146007890048090276831060734574979337763057918235159515679653363059014930680612645083701598053194293456337473784080548089801194269293964500828368911434587496374046024364163464401481982076042123654595974548988957301773303915070025003073525786027409504598770653685791331806496907095172875624014342882518072220817769040546504006930941533855552204095083725207876729070839541814214972532851585186750039038026330067787771489790306236294183985035679182323281934146572944908966616014007364188214300754562308115841727111155267661854250133438702581428203258370099910934509740931933725661773734909238685753867685256471399646534629795798442783598361733426539955987874839936281017782860792375038043825229865740310459567376508854850268087106437222948090457388008690077042092823032352602688534245548864129362662453771095962891547371797255649121288518275041679723645012750251823038401166182200493880461554765963073739161104721009267874630501675722365303121676502171043553465771656974335387333625733745816963129317974655665935246876724796856454475736416152130128213366539762810210417357164204588859711362438193619153106602060840886672988998284946047389438999558282442020359612715170251932378777308854952982002340646882635961215316563751623903586434444620614733772958229434035146005168303236913936832571204969983210685889065983258098872021728222359296022496841209069664078446805431081044218929794790430021339479279233073486011196569357762458670134450748015328580682662577507818566868514195856373909908714858592949990290672660624424270948981117915251453288171519919805869460379851651308193968320853347400899135145807056897608437678440881056378534833504938246976374394034404981329009682970530813459310763781050824874938911464612135395568555836480802736559628545920397007506905518694867328642926830679568481855138697370542530863325085642996363791010495291544087085144158420039897831309594689368168958780298512335650642537031163486522531941779524157871863670807091636007969044884050845782611894597966717184515623361690004984866180434455782152725547329656325854384309944009944284412629047489859686332145124009702090870922786377135708648786103614520459862888380513417292811106007696054121929448521199518835794627077341049232352897453151740439189296033883084282635994076985370163466231324906811587908695704899585879963528974514192115586307856179784527700286788804495216664050912581341289630429903179011014298483172099300335044194547535894947816739179823633910565954175384110623636243147502542330129593572931986418912170573014280977799820359274076704427188440904243152607281904560474508971102022100784922970910727106546534694721777707449351316043369973348544460778178939268632457691575113583561686270647880737231150182665766284071962444756090393314117575243887620062142877803522708478574448608338694340942344816588598269398562065272632408746015980592823285510033192822971159096414197758171890950318743511008004926349470569424941074384546296775453737180386470306721352704150517720252897474469031453919518781962439257727285018443205643037015189237505825605429129836975040125388667257731275164019902448025526701971858804713926952306506740910819977613114930034898938361282302478743914748687541901862638546562207855931597615264413242282143111330562681356903394744909596270628894305936095331479542632754182840073443209357042233598311645531066687912030758427812122981091863526159015879956001155870748389413242558767455911886367177174453347724498228515097409358734967083682262227880579846635726640075715386067772856583879030941547181748511194246953666800908476575999210766697572530366220812889998612734537056472957807731444236358433877997905596906659037256140038026517046962370934171352474592798110592067773033303033117070573689950050786717829567818322941692259496774729063250137501620934249430237175863890498769915099377749807684783441128233079698790151558369231692590855713448565490054163806315066030757211250602169165712653776796498223776523855637298867420840597106240924343061182230389440061900940498759939610241566505153318891520403382055753404836285266088486303677899732077825141334435931948764366986292144464563118282087982856743338494704507638202641719578003350784791422417720673203702771665268469144177045119935388404760832837575149168863012951014468369978685233832218676888599098953357365392814530175167044505597369869886990057306997983606573272848751015344038658376896003709376996633546579880489846678884962401730077612739111817087450454116646386737018823063901381589911952247775151811126725581055625051417359462378099227256170379618645717144393515268760811354817456250998369644142860189728067890428945954663123565214371683954384633404429732685776161526246931965660386438579931904997542092064481136160150289708782124737468513339954450805834039333385874460921306574609739143937473028647473882195258184170642534140182717872666666677079731282125468157138104246705101504522280578519772820682609047442195610112769692643912187028634786253163797696872519208722718549185600046851981254846310395053950692739543472387948335851669349572767957224807648398262949475086610192777260961355198426359216927326732772991228171684567391506595775291352277781686861259302961411542020005068491879567600681042765047517559403098592292265874874142018955021972804351626133189237527672117155199666076257756724910154427882749160350024478319336585696419540502633043691784409811841290089477065063662353995531894926883915657675320113361366707825713930873420437913087298568111534485984082882522141934833762431244735802325478441421800336384194517736875324473957990175483606856477147196572832146098610932049678981634693411554948150964307351892432241465023746490764023664109995497916478033715766089471371727134041319224398630053781492982804027874722769882346435009625309445691994989377150855792856633921417039534440477261310220759903755096223812405440640734769432811300666028137480385723686665386507202367521123980993028945208477777650991060529485993937562692294260161796468711567755619576716770585747942802357954053411961817361929156750227037637084058239463022808792135188782177455429103980528468404362697547744573626232847266788454469202735993396829011459715083316941178817096485473073493241360105434576783953203031625440622028779279338219427016657120385259322752975350478976742788891552520141724585261997479460601425594023996761486841637298738728523157677235147516153717901007829060569421441420552563300732325528079138998421403174040285798640100181759632177285053024129865364720562405490114721165593782828252737291748595017888869752364092652279612239513600364134944711675195797990997560078700300361111306783618210775332019877912877527959870374945957807500916196075649949915995959251094235457721165545030859053117236746955134528836635506848819752460011737478463069241983573776043569201283876835356270366382277508027408675296471937925423948130664599252567263415246041948674735452211001973585397101198991368134273084127840661991129325918236713248225074941332278761758813734477255133583603383556478276655001249361999973269502136025353410225450528050354355768496927507991974294861169959673049369769331626502372997913867307414217627855013409423228931933576039316675417426559361094001657094538648285679956267326668750563783054181454091745464383015561490982040661530950378803604960218723035364286603286797717006129069459328811218331810744405525017759464330655132625485690724329985631118236823069178958911517939476178901486189879242530651995173145992999008557348252204637004843988076948612366949084048429990985653702390770366171907982345345574081813684170676474507131631439132055568566598641140774080536061754273262999580954878619090370824501118529686875460368606686624210168647908284932391606435296934077228585507708770369811636705341680324468306376667575208924266166173652150559611543789489545642719462133668563256136416380974983507306151619914492211040860228324003280807405275835854727830436783919599134798424491173228745560447302973279986461730014819062463420529638023034825969007952549032137459324973228671377050258308896154313972528488843627993170911851312972363873764596261194410943567305124317238660549189291038133831346138306276784572357175175129314685042120559986702570716870883039529715641864607434953545662405045297722616895093339829075930140626045636996067571684780088626416299034267714653103849351739383277563933636647147593097152115375982250788693800263806076941318950620738057462700807552460557835888334537209956142240579521729773770546762299506295139906611239206958496096263678195235034186967168548742536510457929286735527441477754066008969024015734177006182782111246383884776825015162914852388312824581755493266389771490233747198518312366178743351704962390473603897583582918578290148922615003456916180397978175555747503329556735961592258870776539996957030933474457084218342610263208064234233868453962575212041469318839701006284482723911710838670371961987932814783623124445040684261853281024160210075021114737102966161856236209012831525085621304406256182776299826958430342981507378969163725853426420905870842413245258918633454252162783464278787796542745373538381734915685589795560407421602655197647692821550015576206558986040352463466205142138661563693507303114235823682547345944296822336282834777309908548830474884215251707806289280174586606381933033486148573556908211141434845146684129927064489353299284711444111413011408329473107788204706577595521911593082484585453378668575254125338955688535188556161582377670910316140852001624825335199195167696511349127510302478593445434177778710168949642789839033187478130456714371655593365247580979569041800986389663572744242998157544914964302354020960336218561365760866606475717606180391458246957773789645792063862932816083628698780187335849803521570362355135864936956412116276086848219022577930205163326213816237697201597075161050826748905602916963409765082863580080280207751407366724563059647585456841351233282388659205858143522938324635191630537676445033241156675155734454685389693938803819218637779944720576638025074567918228412246688955563475984126702365317994048406268339928969858980702078338122922987273125966927583708550267785327740582465741976142990764289033523298116125048594800330807467439372746744571320912223368932164083440309673501388092444038288712827929580533712590409218120948076883563350124266668364552560611414031459186517507425190510784317383548196750377801511045114182738226811160854829321656294447730510153899684619474313987151841518187255509818719751263460106150658115376156304100395482894802869379158909899897616031452996459129601572390089840514778192085124828156028017838117044291670961870953012260178407530455356402295548647915058539049366307048325822895465560728332813010965619207461400000461077922152396637362538793436767083664756982408990182260910074485629204928043134639526761207730918423116357218190703091243573871798311283615140819473382901940259774164783379849111287729874475530186613401413240191465870379771851055464858504462957523469189967972568194812195856394340023336246759547376687213074255496827471983185311394819841002448731418504877119449794023847512941044820804180476938388150339333387760490909583895477965500052990154266596508446887680229067885639733071420719485197863915594796577354135905409850076489665719500165496257042369972597000186654981900187897294767491495084409120209170372746742694859524331518582637530001388745504307932484507311861256311634874896750211039453230045145968264564101770154554682713567997085551498983243267648597372520844753889538183883329381945353303186573104155703138755064515688559854240184598171737117875723547515081240397299334245382315086548195399235060558230620431999041980849303551443468126135224056745918738877695403361173213235892712922937063446645590065959505415873414215825971756399316521612848278160714840095249855174637238208181357329542970119178816690637676061660044957607316910883218162665343806445863438351237616287092449042874106386849208167197932690942409354859640009376327727132475434114991012671377726461778000515931710708385584880112904111853332728437597444138921383874294000758466416951565972754424138020231287930311412826146786626097392226383832216621413916381623039265643279946659216717030601430635038417084594238471179450826631611041763891011005155257886587790403181108162184200425117959095929109071238947665871505335462011290687414172663705970495468518787683340660244031736858821815530961212318579485294967569776799822280499284878434564230397829020850304297677237198809734532375069188576521441087649610219242957820782467010893214569305329549928010136091986052772315128238083143973703471320534200188056637171628754671258525720989463042790387486369498389435722872663194116291218640688546550184473248890141204781637468298100856079783806580817856252505860518337574936521936142558039525288393630707206423368284127068113879032163125845936776545980557881375946356200243520313975564288641302467542223779761741305807152347703537064714301676608736990530846297033670121022379472171202211703372634204408677209750374495634554114567254509706487163105248114434910363673242591548861313622714318102177886156183795663233870168220041975186771462500327687148779829394627825692517457748155680528207875861577080738891700104941410386105622686527489947069061242172169822733042494756582024605056737454754979256187332884538713246483711464304520603516677340757631618791137498214308747774889389357159890776266646006354578358503240418355548740046537600200550579830193284241251096062800486705082580071337080311417430682526496343469033176637776962235972380134213376732228946655859730000118138236268700668687750267454594965504617264380819482225518340212490428406525552315903741407347328643856531323038468279627227691037002347886297966619384253651115826768930383637463832803864999633218580445753056007488457375526076369949401477122571871062224113754566507097785999882512146897060147991757053304630522150459226276050109477050600673789997023570131608981778205419355576551260259341553904127217325668138601122190627487046936287138912222574573642092608947835408329793680639828515551572058711086282957609533226019347678186454397994522144300427987104268987174638244708992246741969238553917717737699665950017899734418582927679175053450313717639152656648306007141354504388474407197580038629192300053813350963677557112922053839836378800240508690657577559370818422308777765728521480781747963549864792376827465886684635649962932882390474188670744987765153607610030557499197313771505625275997214444540603184085199800829502302164749239332666670550686602657880164525360757750059703786071280217405895399705295408442993845896844543347726474142974231178583085488823764430635703706877151244344118591435449276676624052704786640517941126824869936459074398783305475943426610822039464744224272938830993239595600972093081511853187699837339735978491908482622425024589644015039213008796699649384806624579144140970739590225512180441084204116632435971658874774088467605544413504893486486753526829105197528934978907678933327093247519155656006363774859630898300212081082489254013608732180779832431615268793698888699110742094152403055319294317912087494080146456068934386518506643932762809885364481936721447184600017239049589385087192046928667439060702972249132648428242640731737749856034993997380555950461718779968355209163693235719992774725862270636035103537189633968364439866956140194901171568808788829869242228927075412079724090828882235008477037914863737886783968522089285018991323317481241948077809594524479427352217215653937940730345979143597020987765943295004551814328973527864909425583174176383934235559739796687352601036777155453788047134948100681921349357010243481539647193269826694842378014996144662387754198318788246816018439544004192210428702207997038124980231200140603503837827936716391375703637476451801386369532439062490793042969920173669827937346995254227994659814558908232642249310863200332870287863358986238804508593665245789727850045477223586959367113466680424949055505500892933230797998972773981432395397072663190345856025632547178300769431729600116508017513488056935940532488160354390712471404887948444070947284882541481972181583061604749340434000509976082344303045184209250457449088183745811284139613468416485067742490221641183443413455102259481069717473157151239249313738668206460427822019812506030846304989286948030654368398766887737897742383760355203505318002625897174632141251686677214175072949735528418508671891926524443100528320521170958537747122171726533851716489975703948645601954366170062937539977408867279847402756370272001701766403485678099129372685973555000267234716802110698320032714913629192277492117754242732509809006418883289375652591804213397509499178778033548391231366548959013996875730457659694323324631125356344807384808890797374032251761325215542685719133505154244615540988497409135946221963771968279762105232182336546055817891116773310552417807103806217141910963597894434260460058475810429156441286739140983132597933677550795747735596699116338262442988272898832361529604638643127466810691995591796461678427154006369561303539576092395882757511629919070849509610537753169645392880755475520381610974062930866228282989674441533326730086176126780378530309023018179202587384880983840668686570855084641029110535653766804915937913903339797845824441658089654400710254212423777013919074060590441975857699748838281833580504569732385672352089565297972505649550977740150079979444001721560609940483528118684899721348323912404236604032590811224301091970268366848678315860984683510060152763768195761008071914016408127170128492393348270756954077207463674212124241236409496865756655685886212383138784396396018518818517567779849920440235814625886778315602296645237750568564955426236688246314091631411453693543227157576702057779794746689665811905844698665520753571569268119786085885843525674507533061326274129355435828172313502177968116378174470314725666470685721391201671478072524033145083880123087157996268760373750146629026623362559183260697575645775767505231692640894656212787377734193725465291885101821488408435423132238711108135857970242041750355271748502363235057898178286615875252395282272008122155131504576498451890731956795427892746357133049013936128135804639088858429354686813982131526990483151200505919037130098933303300368817761198002393519094530625176054876446666982017400143406741207398252727612267577025246928552902175929734834573837362317716169618778538780540073194915547805753935122947071267500789253841490450650117369163632359102748470721495887792074384735540137356046767915146809502871649650945174371804333034798685934917348562131667303347757716490749938168096588185242571457082152294445719365293274097624596545859924574425182627568107373027483663684763737370829239239280496505278342544141554114520929519084647422117310218321123753838523534901460299504710498810601371648375500868937219068037983881605648488649777648835269857879032842100654925887915310538381733762976680531974670858903250908383339571993919052693125682523955253807290155803003907738813865496574948103982679822133561930641431366259501255223933646641953238154149356998186402395358914109634404018265773475465731453208091780047632177816445104176373469391855083819656176524745198753991831739321560536187272798017367045761713541018287775015434758491109873404391610590481590613514163670069016888162007366854390145678697446840157311237547551327977946063412395898570332218627471316534006889381468760683357108704858995958259188062391828959215495129530075004929747617618204923680750234412055071935233090795567469274025371410813136792337126402685564214239460444579783720104579946408699668776128581335721655009763760805807095684515460171644435543268357105020175624635983842226749683874871527954788386922076456926727330544828593925370952947131584178013191743216638293116216724672048056583344309465863090812028989594072698687744500296462568036619770971280702058451016970545554501720813929578898571384073408454130647091616354772946656377424740892230664282599576475358816051926328395974066822116606826831648635009906094172544313838150002804471249966769225056903743274265176282229713543881718863514958781854405514741446318761643526095535919960242887381401963014917954916024649342799668477668338869509473980643682329041994863830306009799907396265213235689766649576054505950921779408962171598756007320054760731909797776182771873796005034840360889974882296642754326341992217614430372127554910261822276482938259470449370387467698239920262919255706244568714142971016369853013147245012701980785383894319007111950950692852276711078135986014753365284559371400931366854381719680541954504965734604411200908889243457927453187457469073017470343175104347785787095695859115111306733000518685408993517222445708619641826446614247650555781783030477883894059988294656218047709098917914312129535473150454250189594054372863584624616539006161475967920031197975344822027625260686788136031167822499256600239417049311659397574777356055314591873434459738258219699951328340878796515554478295547348277945878325665910718327611003030812181942940376181614278299455183829695658792571043110642745946364971007426557291388285297937995796453930503754147266760798791977871624228520612111201174414343090796732067814304611413467288413082425962547405204605372777273350125008085320590973492053025539879555305634745088123252895747949986998426018362382066192293675731189635826320142617154233985262669737921987733377304965328198473253700646942383119549674715192143892996461374644657875974620485948663437970814493524335145348505077253820499759274836958666336669130257015421259911919236636774145508558895677797880338963173579887898993605733186627461586169605935786310326483923119352185225890180917076833654265496613542679429226317502938846294640525575146451177868928731131856745877153115196842785573373331875803878738507406271463102293501702241544101525562408109313406919532939324449611292632373281853420025401119440504218594734319119878855014991678980413572557359623157102508385080777086759188371338117411323698989479740371459045573599152711071599201361939428334754153482682383934279376974956866163538568368758643852631118880904287242575523739518520078882499724958446351172795091377333570811666252787655103056963006603773215730288672043086319927026113615035645305075697507587309615082321962080245578135336472411803410122729693051415584185189341575496144748415044410469056979008463158975950434649170753081619618816653440938127806395205479073790182765255905711154431605702398039522805934747198283415433581741293388783189482555320708238197229967798307990029287852175182314435244240696018077689447254895340615012378953507003422710541618404722166389801506980125910665493052309502061326533183054253005522623789613055709935649382516762767893162514380483021569972908687716997615563388441167317352187772982337712215350663297731842000876015727816246761650008028578354394314637732944725715507545750318224175889839726321837499940636911155480120106771446906035294144598420467696096639498955953522443181863073594888093590314287548195794361346645834094147875055831132084859115843152115009327483820790020788068206359566068334205232291632008272400593249202148500161410491224587290386089350193167695002010710170410854874199237488976163733837063676917216175138873900304353752672259505113928764023157645673781762924398024880159711445939402901154415630114216341519007756379560973552393913661560161416086433055309894663186477926408275687619828924638914616016355645964752493664064779080045045029169704653690921283264380417353293293329885828587965705816834450189603095568609747904706418066503991332108237303365711820389035666106574796664454605035082142342026230976739946447982539799998631605573862007611877082110093965835819867262041513395491376514169453677808166163956109046682311704556043789744764459548479188697483688367333591657542737839137793480952792210050407940869787993570931874975304150937424711874092245207900610275964098832626922930829209378137504307989293595207439384437853264386994471860285335477004890948635848341517033441993167020035836970434967789753852442155304075684945338987794470315960270809111573850161193626493145486580818301951558428139311634897522574396885120135686267717068748259122759786848848774533964974130765457169854309291531508303374726469947327634070839012893534760960712571414345410794682801668153584457739340019176401670082592151211445209655765076671761307652181630888413909812072438002515484441110869591399420447714167403581253069965014105284139106079872842762901819280286879352510454056652198666664134776797658793747009485787417887223040465601725823908954385069959361424627908041633372286571755922977716139251022529601761292709735443487248573717581519690624570473038463521147577076520190056218888696550916266402254517625800122123397804058221133779913264646449899301739274082955158372301106084428560587599704326230452440963641320942103309059944128619732097260641411763893790038695457582247231312090560561114484771788662754665249928111358099618424255518661641798483882452326830437950755208685012524729719349296440098649996724898374846644304902127221715498767982296713476290036693070790393981032962404057256498788668285656796615729586346481016504781640228495898326548249577833502288416709653362855922283491087501187025977925509974531415147075733667783808748874026766247474930308825962985477869606403502990921579095572201995795723488219909019119307196367885322101166445657031949167616488607345084665563037668161682476627516412877312159165305098815738568333160392960349142284646867604811068947508801675855702887325541810679409997355657839444193760623783837066162056125325491431606655893256344937562252444004379770434932386748217166625070411464854446890101234451621742531767280411392026867563882410172455509606635129212335017483418734647585243123305925174744880280490178958872334731107286895933318407841392776998589372049638922585828998190537379596263252032609679437696120929547234771273507278975524721915373668548821079987237385555234212121925060121740199158157104150341275380152126894295369237148061021650802631618010289092013242387044628557929907260014426762648950636410508215863458716530962338703066536922286755666126604043303243180344418383881552766148849443324290888689855632058667623881874342517924990821265889184800189955337655911508872617692319544741302303855268269596072029920932735633433341392165994580563908699764416055346568757509482308857770516417544895143147218407310846282586023657631421048288424580988742161603506672526947604142730497736698060766896201487751386080478442689891080191123128911344758583204788811771115695208770917580711000784844760162173053115312397877978479738871228363733922107158553494093064253437550714051158455703913328363391027802499463905994061892262219170231701686574501434475138547073841793266751426306259887695970650461461637878774750972215867433099817386049625516259468193814855307251528432509724170865785384809207052137007690760514430284835468626915845680021683746062110058121519536820142442602704535676001559961001374208796720908842491436037050802205032501137224309596117580240721023536215218419603837242998050030077574481515696360259136500528974321812547876690995800810036665170662593846614915688260950672633323422187622671717592851886932732800006750974930640666137555959295451273943352737267889921339747987424756773699904462340169087176532010197820357005477637254243693691368005900372823449587836950397634085789091745089251016124294871147204790639086024747957235235437822899059067554613335353589374978717672578058404744571464936357286881956366064116537359843078695819492194556018075704768021804627077353635976555718748502266941942076178215277586163972722264063341707301177601354728920030404734048268237009833052732187656374461595065918122360805710213489955454792626589202962680327740039987313013423702291853598741940990516955338014946574362946004161831822502693998143520492989417839519060887530651967049076956574377770887734766004506159460833594223345533643613923384915995262925877370693893701959774855680754195706161614057070594076754000863328258204641822211127869999468908400723282706500061963888570503034974746306822526301284924249088902576684215343488807890681467650634880325666042326160273936807057727684120267363565604016682408856541733776964779068444268485241173056475232650509567434113506284068077904492551283587757563263815562836976138680731433724394552751598485913503153621733980497563948512509211828046582500898969500531553996621546274385300613243440675652611625245691085402148737600530462217010466543586979896797041702369621011238385205863597053188489038978968086431914535445182740120228076383408202303139460864959846259692847133438176749454497886411808448173979282354141602155226865793113192047588666479965973940683854595664280519745063822465984715727055229121455622474154412943481481266128430929288081963669620139490525209291850824026105188759520452049895418835852222501436055080398981874155354472345460902282288239462141941412892221257342977744836538184414837473415304180215590346509858600017650451058191255811076511686736370735740215565817923958066242691839637108647873930111181970218741385348740459046031594033254801412964043104057641379303482058457097366470216585446566879296241663680186934787186038923184393208823877772535959195260615737356999285275978842325054257727737995568523263954693154471226042505914636682719011579623643886072444609113254559662586333256933890926955011241117861744282014225366699243241762427920665549080782647207445990756406559148600463274579946233025799072367702709903805278125694422905957610219242163055732582591539359070222163709637039507172965576242487899667314791069789499953360830671812609398805965584162310575273277377208538667596647840099853589135195711352333865121708519317423509068964390453297810918063437865783041669662084970506794641003223185671956753377178913767397127540233147167495158883817013088062676629711820276590210388184645028111713531460730090732893624218059468329885588809584031156823801806444160358359992829161822400053683066926114903689182031909474547760362768814386630065972596582845185661060250104124898316141634232455371876016985458069957411732026001128339915773481974949255982242144897224548828296337892587814027450598111970115552495790535929747864262343932017401602354030528148746114917808004591115903027029156116423354779666967461170118506370027549971511052380336956255099655469782994238711137252866716708566463282233999319373788047982002250935759306831266341524654218041575419111344919200049914569905697502955631232179894410215894231892800420384115035193132882021260404522675911091025024947917589146256966064884217610219874677302172403165921390337511947612258532065489650001267185423340809521062456725876837611663484298240733759749823670541557702720217626116326254994274195815854490093890280349483478959955513947995835614419674777242411340223499111216780756128117240506925961942142175248723625433105302808067109706109852196997753884669741813015640057499142801984027492900008271441690125821312872189547630759166835169919181567018586429530572170928588550220697284387803420493407969674832137745756267257382030723036370436453039349951516252822597156350011689452087563320080743401857454282744662132493087677351284707296141359548563249063470846775574723067549012897997564228557870115679944488455279176167212193143344631456360658343692083639242890885953221386247703947039587058669097290237945423816587798970080274723927123797992666852311611040247988403353103857053976611349855224545125386766383582741136074123895686678127655160455220495983186895039412315964030846143258452766528006583404312258689681987044795947659147156755976453508258417907203511572165876906000042596548967936452240433184508854363478507029320607916982584008248565566901679614528367737817835223744735155245812434525515080139866658913408453205053992666202939641910338044486382238881844086762129946799792052063140483777766131311269356513987833949645442083337999688100023621591052762858812220669938731231480220950073290993988708977719932394432825807494216158325826179423511345595659186701286301072958828265197606346030765489643581859461845395475232725669383655606151298705799194982194787525842741922691225339724095070209792701551130988573401010419506548767352770705791657513448692978853427913152010116605899130106895583672608681043459175884203216756121971249903976468937398262434776787742252418405094991884910496416788186832445496934365290322292341504905346894889436055086094858365318961187024575180422622186319837908221110182117622513427500101265764415927871214368130323296687511201926693259792052083575109460342436557146787441284979560554919333334963485433258004463091769607851334967234623857178436434638471161060614111286356530685820567108230127380602069339479278653290589765773992357935441737731402541036983550694058473133861089511724361136085659339202935251552055049842658173041438219785691472169151762932129274588637275830819704779602995583109929428487167122039996259187025846697808875324902953455805169489463284617282798635825776753169117338706623305551634474297927188421903448773005614685381068212963606446762422058626808102373526582969444833988320053062293558432987644344334170085484888122427970118098196458788810190777970329533028357882847192919662651558455908653801415238662234722196145120176750230661417797117251218231656207819442133784643283789489806078550071249718751556643210516113125637943831833306148871715820288642873965655704839697074075380334038797329483220575856673189484159502342092782743309826069392423338568678936104070224455985520636654873453131180634219985100408101109650466349389656631009831496261989876437722775580994874087723326901579515271638677807101594890329111763440513382296079263367337102623617516649018025318621210751168827536729397976376898375535706412035311770108163085906111761786046745552640302913682178261773488900309873815325618280751519486441733602408966495191722516724876112414027925927979617995121107101033460025838574914505158490757676662824180082647092609051159532542810940569594310402901602740382878577307958883073124451946380823931534672649949492550188934956083887107766847256179959506099575583847068470113330437861118254200447988185471165385353646648078370399157419182368413211627162015243248382701004485111706796373812404433895037379546892273461931748295304741000576635389359978846719958037258283407120227437307176994744207674430312172329031189449526936522255800883572093859894067387935141209922786750193589553166448708009289318478330575412894036656765211189177675623140538128061054677990135649986124108142822506795268309363611873219572024680082726670214073881265361619185816753947456544420495740188947871372517840922731269960055592443791413027208736314864078470683968149019213757574824071068594163552375330126177573454904738619166826783837113297638036350382292853485764903786373915942194708587794013344933993676944324057825902750332627527686426484642380043576994907196586268535798437178263941959854580846889227488002177898841101541253437459489950108502624866406485921128645874696980450276826917625340213847592020999000117803270805204781152481937656806107868567444306420580824595198700987713340711058389446898568559258766188652125329081190133087635644519714790132893605511816482717044453231012686052488178218008891819169931724314018125836155077008184561781689073655763431997989492299324895329760787288769845487195982961470695813969840765521488130799637758375026180207326389306865252009789897879266622443217673945546249217417056706939126443525252502526993249365882826623910933076208354037252834917823372067055038892139829767713128844543986979299009887712107052582057700308237336854214480776491910725012654489145689283552985218641674497898013020531827288380820610887695086698709353302126025627439183455292150210874409926519600487419546785241698717897917322669601056311102767033766225346543605312291535325499431431096565352899975132661757065380426455313701003042216036715897237722824180330713728909138733360740510452648095115826041086523805480180914464664189028883215078125288152583921809053743711206566434593204110253866843113661370410368046861823940811323709111190680778158844520596037939076780370947412453224043410177283721354266370223704563188897184940191950796120889648488910913044583172766710956937387604889984223428769384442142392184677204950706199525781414064070717249208925566984665846517839095498904277906244305438423548120626414955469773109718893954388673355538043049895572290083385369308462623924886992570572837030384618985945138487433502917245829177432855056876322528703782335666807496131502562150265527513269900692298325942590373806527131540305890663073834661185967140499031264799819915942389131854990659108786188978507541064459515720081438057829332909206839068395488335227963786720539763795413681103590603377915085407791967253399406403648020424777411496792252128021928722078540729829857425213618309706806079300272624247699143212414341904934736173476598792612549414561272997346788219046973206084305143289963737021185247547816114286577045679142018678872833828712109265364043431502947292766199377101300550820470347956264677681179648160840459655787108846342525537504414503730412954148549491898639269059771184685345978490190109847316940394424603365322135348444778042436434592737830250412127623682443142821084521051883059096624321615822041892283876434808249343181031933379516370715436905922706564656426682792882923225057564906790124836598593413973697647989000140610805558939457478895398148031804057810110370532888486740928168871566132293755632655155170813275484365254538820231173237736302409402203838109505726358397974546220213763756911038372878820552611728576962760991538293885243644246902382236202333793292805888235458775402401486971524042820841961935067585293367182489127177986848285930682903269744887298850903822784370189668545772611942757953625812618539238507400714257119429478670613630956531813689155094858332499121718880126792771317636515854872094853010984594106392212890619650524114761541119626010426110657733718897997563442975982974114246654521656520407253617614345750733084339384140748263479808656700063109314655447415112600380151755759556481897739248770547212435314623039832375481887810904009181172890170688797050717188054228170049682221578958176136204869559702842484547194932334137216009468133396974818874034222079449257688805425368510228290066674115814366694433362691512737629435164981048678429812632064298019453826776834551089906799633357392981234264308098525133912721881167354490149760674733372706352681741272542685944525672082612523121399320341681524597490272810933822676265520166862913380154505867663702213094948107300458472365082744689620289528057423642708393133785801930515822872141249436253544894177674412034818087055952172632253954138489775198303026635920879437694643706777689728963030920274682441280137078795320393498358817479337282403288175650141880635731630298055685827823672313370511207686172257763522904939397575118527809587939426372243162347092375254466858214243756730153259592102469816801725270909442981772384665284509373185179921507682981643067051438510521480878398780280751114098219407873193268411902255563026481485451684669763866568231533165949735327408552261981468463210854385954721423437014609964664630096470701961880685175792891058419207063532990240531551270596119507329126436477140188619130842912891813859291146989633180013482958040935254804727006416146108474942061228087595787093941207483549365931476752031688313059852360523861332227439268281723589936011702033350517303982410339017964330473674243661740581131746351008371723468782045166539468016567424907296840499058642462534893111150445826032025098829756779296734486520426942908207507627433326466031756381673439176033872672231005482232603787682142807188410139379529143905764188146165918652444470903335759739294657530845589691942785621738528380916689639395886425284377110071167699062344558251175603106372664205632499023650627521791723574300233925237527813813497588628277083673332805215445304882821515959085243128726915489517735179104884544547271814851502626096436396446127473281432257611213732302821491568172609282494531955954869340843078287420031536466576381854926740817020504328466242074960338320765828868200775321891642144974173009906895868932599910369622732696285799340820199632436138258968375525673970341444120062380163315850442668302775425254428102179070491847300319408816796259365449122815742255518510012101569162219295223563556056407773696808485337260663163955690542820493378026000670812287014384954132910768146245122722270186969179402746888874512531672240678167264978348962011212867909143364107193120030650303316941316326985601106124277814463795161432070555910080760340868881859664395785165751480086446606538621220943057997178144792532679574042036665579253304442701341168555529274683949228468314516077466659057637342892743733646213335890260832901645093212357246579859885622083211375199331490602387694428029372002689714410420585288171112827198693625960679337970705444493079301285859023918462365553415526049703924600143876982704021275040790775174324197227677242770918943975139638551584604948552121216834620636580348638518688233287203377429474000450350885529288015642495275158549674001949752299755008584958083764437053594344150573429388327849843593434605722789611911508753516906405034338979168617261854394941199193348760967961150723387971247019108907487598360545148232303277445763746469538739957938684426146761180519925031508370498603708317093645472430328982079905447974953923831071006294551391393878465037889718260252555160567633026164786801598492129550422258530031325114427485858806261214702686837373707243111856735824765715472716063266034476926011506381812685017639946077779726154755204103315641119262328200016376077693844214011378771985146564989102459780484087783341151983181089837786805491281998395468494920337294374149427873575171127972351193615115759553321985174756489523912517808706357705948909078631658054018729424146764789563045578359788841058669933426242238527787130630421253483974811211098918375718981881486631345968798977971048953279533830105649767943627881158146046893764974323063313115654204056299735985153270227515033021477570388609963123956925289565136550895460523340451645027511480003438218968863417428437611610854911919989070153638800729621839200764391858474972877031544389949963511611595500260491983617421838250311734882547985779301665792575990390153918230916359654400192602794845665173876768678717485671455827877909365081688072075229073466788920060115361515185639911232915429436572272995913663486660182686697899420348890644790768699119043490396115975990469627542132013314412432174104513090164648996015776645430433964885286002496595896087120307910403851489769048852576675721879501188985520743443862107417653474943624176695040698217554262132633418625711229283610195444694350205445941127561436393119006829246694299291955431087808755925394621362566378909913356860522254495362264678578575687940901406887811855083521215698270887030516819623274176962746486669960006550548776243068469022631783669674105741510348316361810952952350266270905975766365607072694544828224065754201497212664144667485080605098053935233049441285753539710204676154484444339182440915565088214345589831535422868374603767413734703024698901553012209655254529581854838948359479281677754007801797835785189864440636439383857244390559066362858238050240857624007879042922099357096410033579640618871996238304352744313610623927651794549755571053720980145773368635238838207123899647212133375957992152013570169724222165645877790229504225190905655169347464388130845381201351459811031156186171364065282313040195417722782309744437970632452879786176373164502401088481565045541902432875802340231717874597732310620384370736634925363361132370503211631816483339962289284887401324997316913033013437361188425954662015384015539987309705357155056683700986723661629399856978385625888298010443480358690956047554848898553568262976033062169369344619247996614927894812919695531481030152459343152359054966415638737181377634798148587896391905982101903882900922606253591955989035615493851965582709118395614287001533198995019912982462912557780841156471210496266894808191338449783476280889669751996348011904118477784463800911410718830424442216177442538573131376387102370439258931266362008554428931172150448259632068884162182209358446962868934963576517639489355921439356279334108770839166084001905133084546535990044742662441242285955112670558775352881316945462311785747713595438450221761524113239930376304210485892772090444832533498265632742986882332459708215111597287955810022841750983620728372838726736157000088821693209216032486110661744276330729766726559509010901378035367721988588245086167546001787409885911979656010977754860821033482995451004036020117230803728658818220327184268392382202871722468598955163079414966026559186099999839425367510826851524460720213000153257402518539954380286386619819991601342535775937805901101912306759005019523300015953198673022710584312011634334764513389072393822863981025055346685999554993857381298003867291895802909941369088125918740302781387230514368171547774414665539830766116707336008981086704023237951398186707582546924225594946164487568070395086473808004316030987312379492577978749171173318656226516832412451057652210943003676156761926630095634810269948082117607583448588065915685996173976064280689791559123524811100905137705881354249142828063741776634041399652206734262238666320196096532091697819656163705199104436070696083332098953122448099420670617222137230910240476263471039918576459911241774669945622197293115600679827013243339321118595352994424052788305143348081339135320547308147913843373317894326315180175598056470530841553864267395480364317097020194828231392535355012801051382765984459971604145872866654316896943738535170137829248288991017480385091069084010486636126571622679053566252016866944038605191639357718678860662049332836600395055611855193307138671524053669492527927313791315058889181039188348755630216937737186724632857608744975635172701943930734743234888591990826110945726990652138584454077035290654627767078478443021855659072669865212614728950992448349012984154166027729871287451742979573280151648303493631534054614263126532981915861312734069171035437228254968985814076318465732890655419201705851610058294413055262435798412623816631925103084628810218649188132692650690976126511163592271274536348136662448396594614926470068969176970742080505028946774980396523794781580501656588564344500195454012550458514541100414352296590366199782439446817775117232074958005758743324385228175882996304762718596102662134601514129548915703983727497793908285600094075561532627420272905148864481827762755393691999041647191313714877937339175160898379083806518064420991941880764276398532658873410713823989906283352618922043050637140153050811103736316507318175173515836385253771933738635027030860609699277882141301964884715432942036293279734808870262290058736112703019141685599390319133441865484861903045570620877198039802645081380341136595575292688512125971762616862532204602085534725205988339914009500425185110615838803483262597022083355861144107521661619076569702868099828750736058954735069918985912750636813503016324377909735763785104611348037279230894441557581591463433233826977779638975628828844677883035473559876697117467036959489254768663664652481126298504395229602333054623823367355221273873823738158260296445170978416085488263432191741027103978999502725231382192713437413301536615778976562465105713120062624725848485731851730285813558658057560735676958788742983491169129325372552233262298645609359956951517307287233812198392403543942498053174788864716975730766765496618990353858022619652442669340052204533307007314950498488818962432798888385284650838958082652363681637308314669299264082313114848540717456620433909181944024773399056748404699117655305220016258457391332590326947543596418641812807922931371740594223746857778885722484514798448512000830953691524022002108527077457250092710150467264623278771175147667455099203420261240482041366466000719210258709855784292862031057712864258919292694551004990853374078422824975250906808897367227099983573399351565707494191468775098635225670179767022264665069168069259292196566903047795019965941050367267635935395417045960292294853075276930883165244390641508138709478899179126593752921233072831635030278999779868214396208836096432105150510045353309435829536562131156819339169692480406173192798294214042325136473911305908037354262736536013278975980255884072363695801903374815988781869896621806253457507085485986163148949701605516984877894220591717324691577661253122536638548301405501156216403075269233583557551738575143044539715713510756623388441676234297451997155660807744447692308063975123186187729796004524091776879791777182052841927985931958660901102126409856497505148934272955017568915842152312413573537897389749822436249884262560373607182591741464811130809792059496532419752527002310972884655837059548081402320477719153205961381105736376184368646819084056976271272913054658632014509977287623275414632199169758833492518650774021625894801769730840186014506290933675994681972259022538545227733652672769394965596411885154467730801054511999152175129614055363855474646759838072780939147757081673433529467741235795371708536455832157982604263775801493956145851891987140602966264823201756437030842605243198608835479832674307775911946199731296532329298752390905132880738304511421083830329423263922528778150851686500023668208869791822762600129511132638044686886104744819243623876288369263894175381222090154109779122867808394821263111550226801775860807065627675873684028360375748929550019349011435538075455174697997601738484948942658569622653107672986917512687632601069722709068403811932507932735700705140914148064893467831925935218957738182172376716472436483382552626756039428733489721360144483750929748320249067333776457307999706756646304770048009524777723927280555725466850705726207413360805406070563188865702785746615028971366619652742830204213471033033885576777878176178698528783646239610862098737995514306818952640115129700355168854060706581455664119246248611852045766204223044773175673259956275890371676043210270051470577881679286183523848569234215840711602768509405431455687626394213747188747516274179089488893227798142771169910776962572393261189169849470183388314699058745948029687919663717344558868910588632856490960618729762656541784025507952362153355856116529903212968503118353987644514800339972154520419564904212817995605324302082856312316677363110082213886368224456013376318556353990539666504183499370983409766507986961600039591495865789666844517075122629843512014930077668045837792491329138208123063429108929892629085051951161094500733248632700165991823381283084551924416405578452163952225903341343788631217970147528512077199565919367500228696050440420745275987921453270180678821585246345854658030620244198282635037280248496294272479796470959977656914886490275767359532008830317323742412755973848457958418809937398708724932988740682617544463302857425174328319719589097856684284525585813176655471920191876571612001533676834032583512454532758222675694115752943154768414742400528777453028188621484019990258378398812814833503623340683768329996696220945183660907523710273685881401551361392567758361189602230432887297970745611724004914007700412601321641992661958795808719858411632293887839926867158385864841183530447835193355044024728946092203467167968184625041660167984952285535834288363150229459335284423779473026528957373215331954899735999070311917559174197039151264963571398754531390021129151778039702545020727175477983638542801624659908505666278264353435748307470932825857674891988251560064044721299202539281242746916553396941628153518024765975551038834931942762112411119506327789656153412573807534281630341834599722102655172768649217010505277587938018125663176346439750381219199091797503083750168790572639193186708733249942360113548119899198516651659289279217641333216446102832914737571465443868489401814972601926072623402350655208112335520367511738456246489067625756177041495156724132936488678062217815598137339378717373924110625249149885224997891982325492882127873726083303037674347804387906610941091105425702514801552408782483031574208783197424780972522110397365774635587380112512722251033469180268920937715306518787600784508053859806810785662948349644660635598012390153671395493866714092115836870355835311121600670312971068654189601597435623399059816700326018479154122230257203748191474903323487022401825059350172714596700386027654188563466542370128851541481695792891305390040248575777748943735888684034499699984115097499958986027063921162674629228639811963591412561162330672878102879259391204220647934802051313993096338284250600450244530698209367401919865858960789157534378305867860917940070584548939939226226348122408889287686133465968760229826965548913091579052217828383974435252251421002252211691181984428516680365843671124306158455491287391769290321497226044488707915036782088875681900159008952039249733358651148258178994874827911206602290677951406676549624296022984298986881175657523869325661219945401341953280794887527009991025857851652300825336669750528399414191478311129159696172094084102602865736416036906913877343959949789978367770667807187779141562721663997580522356210635501969535850389758337382056576848240305631379718381802066144883533325810337022479160985442177205478489831408263468961808636796862105133487152495054436371757893788952857809329344597458140270170782156833643003980591812162465755592038404065734227782952678397450938794320647936756947601894154670563043211466244412295134065512770907575899376228268187831765749783185896711475496887399360701647982096306219473033936460114644611788206062905848482520817827912068970009753353727786684507142331455935272887623426031797496837915735639689358471710846369188910801880474385843877916687372459880547217300401335295976569184645507184339955723664996745759087485391297948890532296965824972023251555891669559006011675390989374263235393717300716361120666272592291449218446392873518078763579523832277344366435143126445362598673486199440685110613752905099567363330831709047690656946137085170529274463758568499077094572896569797966238567822771503354899673257008550743417281029737927205894438325952808182414261209044001334641581719683715644194298247298014733220876010665105989733244572038726884604155338055024961825517870452825948314387260365480508929084859199452220414816152642867419537636626701503005746183536671967668706760235949275770619076036881254223394487746262476401639151701692987888718947430939710873232366573468495230084251704034035372230437316596703020809533830530376806465020221218944984297525470718144816671526555222407052092739961647022922687293003374876142932361095052387899463833403860094957590361011004021106660403711381842846415205778145904599799453641660503613993270462185396237087197970976414682177555101890584397859905836893329441061224953848064060635517565917982786870705907944766506616443521592550685086486584397224979729589457776609276416298272692305478244186146258888264191504707525836763154173115596088513426495371758423048244285711940085301341810741700605817324719016872667083890272885772140207581124323471860595288929945839967673421116986890318641945316860467591492290097524679370097894947717203966077619271790882870281092662725457668496977280259668627973670714077577054865078379036502834067391132183314240563666232135779614384073953560835842319820914690401953906628589028151974080413821911087672791978379567100888096876178786400559237350740896981073596957251347217589290581488516575391058751945135889658183596898601102965455790352278613584344885978559741742960200328950353778250665142780493179471702541676444843835137548139767479841987324840453673971332714160646971795664567804572595377131220952536993577586261552951818335531221188902974703340969729553563675747338127755868986629356729857831250315375819585277868722587393361109116567258330848286539569209482227230026245872746554933414827606987909480845145341029612321128444705848450884458567551243207331492844679996524280045011606250575145841351556951733566670529087773565294249259466726310157538790557704157830649179508887449468150180999992716529533386884149677901320128023683931711921784157974193562715739310035206182802466895684304957660925558254721441471933472321483544749669316187206656965879395386875645245383655707730870614942228978617283164889675955611879941011771983916979217851306960248762423005705592077471523522568847403531901571832553945399802298517970924841131013052311297291511493539121158311864402965212027855505308186373179551101292118471190235812962094038462025004333737091470705378125885786062180446651971868174861220626121391741450373312395302091316834510795034892800102455901159077078727036647267047243442232121727260260999856231389375453002111280446811758998591069182589769941350527357029160227851498801064532669745114139496424606551328118900152297826891483114159532848781723425433152724160042618071621965437241841566702018963971536800205863693713531687321719901632164085530557811436682210604733368834512604561625967501210010641758784998405333522149233986180209577522921069418733227249948086343694841316587421304176901512447584646424919073087637641999154312183971984659594770067037202815178979477936931421245607330895341776263144648857285351327882011328875895501256949183892287633350162896945242065091427217926626521614885813714462908671768608320024407190165134060635101161902004170120851866217206407140839241432285218543980799544207983313589082828720902579107590088775769497922980911157336044156595929229114681915762220028829429131851698422472834171408130804505700084463254732527355048905054536658802167710967253420350679200654913859552165541891666396951152308426553194579132497974146608662677307120111352339005993101930773086251921178260180453587285033735320779513085761040572803104784185943158591779989350440918573121138038468394529922002372302724328569048114407356447699394790832934229928389503536847982982290324134814508404961417325042290548726980120842230649063755237877479080457508986080108585063978186645122937868657356470078559128052564872163267784737723208456802208281826576392157333243211026150659121648112767660029111056616136056196711531051526932446337829078219932506807938958513716476311544199935405049515603450057585990711628981309657728057912048629811432013329257306593463043727582864368329677972327989913446887016011311048839704584163437252495300540567415923052774442128896879342639987011153992524655738125498281293510959810179381476095317410234480753099451626070264539067034913090970459010847212665352629230695792300327031989451809791568559739997231314951408545168478192841587658537768376124989772217886890363228737838413886480097651755796151072640133743594586051859373276378873943456598538869504793010766718905446885155067643735142099816803544816016498049817719619162333490807396756411826220926581732158797442699070243993532063385730287648153523019417888994106903177685393364482343116093244264258541070296273892113666485016719926619774800087142808680208415462174501070056848197517223422681085866778465820886234852876938422002338889312361682630861147957038527464119219037650205686851325163426470319903066128943973303831834692512773518716299532611853792539414675189839025071545382363190464883330490515886531842215723922294644645779852075619575122632014249152690506745170173197220738648488823359987592730771362654031399363989797449011289048612293338090478735147120126250856238198329827160750819941608214999892905507327609054649871104494669477606545482247334120649927474203214948938288249396772962789228470436097136518814380094941317856070383654517778100209029752706427194042999817747102720158649741770034284833977336673167928772682144922519506575181860985990430586308747450577527629288835666148943850542632416697731333900221240560258486030163408315470763869626210553100805043579590016700611373552706706182195173354742516700987323879726010043238400151092487558916004996100077458222448292524800841821302265129787262226691697517202736905486485318405284903293008575765020096626321675008751579788971626071907302888687244202814721012208805845919995853466478441996724955512369744742162806509655250442314065528408719319509335944535838722731759514035814561717225763422124226838963504498626764466524216778644107679740235648260943707972924521297971091286511618358670576369234182359878648847181024846304636374304051303834787257598924621741798405259204485823259532007559264306834715219858589883751169837956635996138117780682638933689314620665133105547833410507197398013342705080437921893651343622006592197512263275367071304345415134753392050233060365571658429375523713595508098841086604995994441091353410078829164006733200119200090983148771883218534434648165514140896244985229674267216625698720142124753547748812802791568064638377519803959270426145997226979008836833837280162132275621070789641465071789114750478576590553576910682249587184626691596782099348845423489867012580711943031924819066680201678327930012179617168247836457500062713805214184702920964782182856961732767022189548091069123381954589192025791918510882899068452247647879502127450016957315696078430911232500083826277875694865521446376776599793888905054252457203095292058048497259178656664791194482563953893011065563970589912712835827490465696653480425798944492579728944434103266655493502624370076436929140709241902198417118112550297358805507753148623262226239510884394320855573908885960277159694485845522848279539281979697139922729989712078581078203994648831561485458973650484109703748441698335589036529766648780750016772117635692943555179814561527431257448334313397984898959999756825199619088036080213548577027624415526767933550500308706577006528711085395299212676301541189945172179752016661672098681450116604026361930264008776498983759585760108136237995148348626510363136938243151006050964275973240843407261304130480381994796360603612555923598152664558057633183103609164751404924854305048711817152711556413726514038509446317059222310909662799282015934971611439246986166427327328292069316860475039238199850279654148388489215986962371642892147363699780671404306179324408743982769060016276045366810534898524216277394938386767609814823273046396307220884216791167442873633350217336791276066246189788621339783499934132152948152622076804725007420134988629365960793090194693612901032198104338565746341417534518625811156778249717399474233231604729491598304862487457289346981423469762027323268587119775805346771479604408208047367858841944835966048327692550299139615096281144974651312345744601192358252629090715376941563290203002108714498820704843135811643119904666887047504227094106837480654469596653189109085686359563788563859762934899721811263745653723507851437152482461215926049090652024660107347146008925951971816216747341545000261639239245913120193158361973901525505599164749185492712428197147323964615451946584600822714145474360320472250221830476843819713695803185918566131170807973444783476362519489444571898087962388592026628830295752531305165987076405651528511667299473072627443951536742001071139744603849070628807324526960495192881048027052647415063965105346606592516464049003021538114767613855074707606289127312213890443303058401314816698210336125835584257655262719314792284149177672558773315228222534004571517205677371576327869012817302362309149027292793556171920947476805210982555805610864755744803347855617962533055797336515186415246500232672569099380077753934910884417615344423655885387046085154754794346398065582531519255081585302194700867173833688726556916164904385565120575676232180236394131051092047509251696087371018003658802194653892072056035789095535677020271399840253942002463706212854569495447566167582700800554000281059606343712271174458405989833152794805954665156559567061393565404087736338324411019532794024052896515568260042815380865540217032004289235300835481515974429582862994596356919615107608802481160381750448599919176373396299327424996060148644396154805867846431195502745081312742270010341943191212122734828589247752319733410879167929693950713142488635162370776196200028275301105054286218630834157479294490321301421525116419783067838752311072451149169706933892968156772459337663369657652324424057668066242693956446115814119295253181074005709602557242614991434976098490808676451331730143032877037146595895819687534969848548298291327258062523469664700761352554439833777863433397391408585428765403567950953824095984221496528450829097203017677322454418543659372895932006973043926021682528112624604503821523840053114972999772615598108076388965822512086717992320631045416985141114849379459517328760736378943736492524651312958167840298036548942269455247964098269050180026984966743594724919115362841268221475000169094538537478258225053450262705003299682762110475129955296984371628121607809992103919534275049633020934194847277636844413214532714955261913693160862693371985900653728771741268977525831060361448046504645535827088657754813158505128224037517378316533093389569537406408700702942161171726739287843272090903814555767822666313936925565567243246816682597905194696226622356726663926715472268350991201857830452546169583452758569260753042622355103050844111330673075983585614223791797835177892435127425403219043705679881282111384971356551157653731223346035101330872985364228764001549558037518705580673397689552837796475765383701266923316761770017351094998133223336289247258151669647461326545542060921715504344500042290754184005292863240828394741246995930961810959675155952932885100908876858325302452180364551534044953684436296728293784182724747457309917239393014250169454510098730471299507455754685539138455855309279575115185950589850969879117324211558056923571367742055670331973882359536201029308021341720780834369406685044504542226302168009616996941301951964946357780107238418711749998876108260350609962999124885285099031878770689225891317888837299454981611161287230792354685763871816122328205880388645820547599616973499100885239870534658279809952265070864161005888329747946075109966617187446872682110252191224188248802013971781123587479403390964318536292850680410787280269417232215154419158987717216982464614485585963246384072573589483125179077805560565358453410074728716745928575952654542172791520344339600910078073002905838054996711556584016116419340626255975090430587071020470074126380711018954864221700775279394092479675354366603482872671235045187128903756537399797758668018407224947943681094577628750162882369787305356197438762329938199460609525296241859251782396389291258048781769982048371066699341797961646889637623198858852122201898879869485028578294528512564106071937852630012464140090132566625118331567717555808472180588465868592998674720516495333749748115767951940016025036647133974181083783144703939943553448062097152168399335430908593496918127456682808518087220972364270981824530969857315865866628560316116214018956663218232814546472646519973498024321392438462639245048739596882427426878647507991521840640499872128604028372912675410222667760628256643509959991080439867405339370101297904983679176197580319471639355211902758884729328199614020185673002056589277615312251590315724272678618379037091505521917127857731499910322203981639420354971087316878494137574263691926311930296856101735167620817264741096910040303211341483328119994564858420784140338828340729920900606986960878502977362340446759107640600875122880691976181826517848176131112627610211787271304494620445273853390031627605616148416950668504225115440833359896094484717651120473865731274758239245645611194779661601840197518517216520568212938211033923619615728345079242474762888486249910107230455247764070143453862898711190176225771639041141894004233163781843913393311673267571105359469948414669581711875082466353152653887375258822928213932443534453992005231528222004430649385053575454765267151636723149172011809114540904188758514812781668388171565236711263512524953732739257168352424677752350611575473782565974269867579384822848567410972053101154962476061291825490629397861415922539070081147766272621706902551100536075239741125539766199970872539558581083150005711272120504806060312214525167380287248190992464292116019081054175460170230810838424277354072181718647749350566803442697498369060889467862697775812515034886026259441829857283753283942446799155854102883213582018607824966230969641528566902098742494377379724609299824536637145345285567450789925778078541644204873086532923900893739462548504773247684241353239861290888086046727804675879633307405115391366802178195261810499813981499954545328227673733935811081441479142391180160899058453611377273332145630245594643278768695109978391397793719711028332023623464798393223570640006502458320639834856198130525306969498539350468904290805538045219294093291562479822819181758269492066023369477035235405036475561544490133899542267659496809646375259889526761327581876915801578439524398438827974804265854704955048903182633696308161348465951859917860910407946167252806699104830473110451050346454139989494324043179470560551180976412195136193442362312168002337504446399932085318019220195197034308068408319096391903229540469701806314667460670912182163120969677128406135265566129403752794483344607231749826168318904257079825391201265928731903053252233818898758952960017473523756440455841565530453069782384729798456803012776332130892982219346210675215431818888943905220216298963831991739132129638085206246849196111907548972124247015886614168561902818972749940521124149463553249485042176231725888686556261052042190904636089160735971731374088240852058810547725705524661142229944003111927637802362822463460390173871021419640734021423270285817314268393865904183444871792305285790788115376128349073909663101266933769940396898593534654741637531954376857840562724970943180451343678385943433508347309561385817879610507858409950071073080071859577388744005243642913859294018855526948843745424220109267692052733878871685970884679726745364576586348862299167746682049459266452751172441573218613875478412119392388422584952846185695866820460133872561956478290292739206746946390513257609945690552914372703335635886851742102109531153190288936627452818044349658419038491551829792295421311435091932192589894754594296862778921993214799697634345886622660251295370810584972686892502718607166117127409972123241943599161097644800011199739497620383876241384051861335119514111630460454271152939284030028263880490528484131539894482415893057230721590163834102011698714521548924390514899287480730575108459794998253721298776051565554511693025838229607790033276447736716997882219270229735636614688962675119969543323333508926392311556897215471523965755659941650770079169190901465460090208760839452179164014895714765816004396294421654420714865118769075524444780328516653333353529862168902417470799411860558611349518613801569085172763355886881952703050515810933761357344525523183943823671419728769068024117365261786610555505540272783147202658975220770269045636471183271849799163846749760577295424383148917370814524502342388084830042221761924115126139284605856955550104326543332199630457082145581019561734660468169320161680164789344764006458566549522433034811842743006737166708781937804016027943202210900774150626146146057175581042449203347130362561665560320412511341494114619058799631547669494953281344719122857515077759647536840800214759535302721983362468349176286848326845917147533445925669442843822558863178676286263085787905976798005049921510724269048312288696623862191670789642345954819487308728493177435444222639961480483807752594654272123794853234039360633204853171282775585717695962992173312947951813689618417003713940613894032682525795606794930686574590444959654380256387868799790685846015174186302185199670362211865419703306905105158499546572018691580361306992474774602742827727033726621760381766857128650205202942378133676308635334742370869731198565593330500576523719989082070751218689114940172025888277984076511276922089165467544983304788868074392017328647136215078748462810088760961473854633459434119785595504309021213522374925023624433436925107802797417992558226016666775209097856674223155405956349043124138780210070038415598041540299980177064902122050828478230318916971709335494655761753110579212847850248873950566814215426036984545824206456942166552964189299840886229510336873611364170760813619699797873467163196842534740140986853474036939725072654704380814890397168556047403554161092371352635754750214686935188404158538992296041689420835121656424450582820410055625317464001696508371254707868654661588468580387455428812773296131407247845390493626193222462876931143035182902908736819038472495480564267251675479583167595066389904280669054612018023339534278106230002829671008533107332148706824536089796919149983971104085411453516424662824443992033291639300870800422356117920550936431201497567048386094058963412987452700587397391052300360570598087783010322699753322447597217446330594109778856637379592169806322697018466242384642980394046268336109402838935292435937854188682902071467243381994427315965814655329733740012665984327980292911013544384344143019615070387834043793140540354475104808958384405110668050492245704807700148359742365761517957716167700312547567975703712558026153279005931305491129599606881169018111561059745058046998570513917693908971184735173798726160617551974016249969201356442896427268775241603714873289704471778305422237357681722319314849203235223845694935254473681545894877964290347426014279708156980241116559390103763830755454328577975925197183563002031278408083079931847622951470685743563693659905561712783686294792941976629797591678930768868875296692416530337558084143612290295988693405975901247201494829858230294825501859899317753463457552797361549734412595667116876553742101672445149732684661715536537697259293304764565790154808840244079540605972191336780552303848816282644611593051534778854790386422594165473760632284001795099791861257247265603864630234980289188139018112455422990618028947615889248025815253725409436423836861943485114130972605392325503339215090966201879034782750702652660351808398142817474873892821717530342954737062071311183258141368703416498515928738392233424266387430807511287997645811736139479497345854524864795030542733552025811506403610736990452915441656798132982248115105582791664166169576783602901023223155424059172933103845859950298422220761992190382910052217897168035356613219817336768710235509921424213786809903709868920996013624095311062002224457953837986979199271370055405636749144686279098378146363381017009217525659563469179963085091298772300769469894055531765717890812120626065524590167870389940921899410994570621393520434633066184058690666192320306002423397429546941684316083632121928970457971851751741464154898080391967188425552752676851134414796153138406344897180187020189132692850403284802607959285024214039608360589196465479808450718745313957819157880407217208496908422335435185586380138115848177108105459924828114760636829320631070186935615487901403389939179701635280715321733901594539693202032432763768837142821136066642565682864417699326128333859234151966176121381472513461662917436380228271129785035890085764400391844311082101609727289019621142313466195142650261758990730894889125153066022678670121125393097992878286884059713333198540955009685455690531434806984457467880077994827113931987740999597245498280782233403925192748632397370903744926208811392989556152504776731916183403680755140434956851371052908689911211290556300268100541291860939897725924910128182532772746281105472788683174566430282875981026219499281641586544005824357294949126139183927017493654862019840043729775025568638125580025555875594691265942925891618448697263443402534414998510540956878364330561265417386590145591410500866336584194824970425223238733532626990288271212013701983075908214089477706994228304301911172256581130037914538315030928444716725259618501575230821985190912552837815859144601309072792451678366094447952108391162560608900724262160131925694713921367455025125174586456911432674859625023038205917571572138260453600587696115362680517833591799314543937746160679549993455250877987885750827377994636704467634895164976619764074153583447369454949101549194616672224171819921648108079961440277541432701768850768419866948829763959207953708830121377603188159616556635128592130032390237139097460708838738179313477732166487530602782133705008096299497609972169582669833005859157354585798328836857893315917838032545690848176079864413152407992304402162635816744135650773367441240622701039147981492057215450650917972851904467596079756072052193484524430449844565436837072236493762397973286477205907074354389422229957207508421647374325120012594652025561587066269222423424588892788218241225788824561586484364603751047021366166166981576073726925683273505562270887896110492774499948132059351857212109010457675144610652591939247176270847374757227690291005911881213732037576053346398043725461965614207214684050923858884689056158061292788875129899362215226667086525809125844854427605160136855646681096161195936544498604666311925990196215926918172790972560178192967581850210243307058804971724188164260401427203341580517427753665647157290732193846533527467646696838192063127849174651431862762188669703606992985511427444680871078621890385752258518181576745294255595148228131605088876948208242579592485492422803919551111738350855996901028869212156939457894679470909681599988046047340300768333411336328878873364519727458763428184018529768370951161924834129509779493165993722678963972104517289485572313413552168968351877440354129443660265101953335071095865698343984791549057236617780835845409957535804502611521889443865635128992843817417580266798899285021166652173438403848961063041320830785376743322195849577739392315115240166338142038101370574989421477140570327361949995031818306829361869831581938031873116038341586560435696709087678088320885891395922187483119623250370220867890161742896671124210230510822134519104728319341033505322314516554929425049770489414534317574638269497742492259754675101645418247768212540534393204791135380514851681896047308309610536495468836172964618974795243138904898139869071850266318743555997207809802526560668834984849118387520865691784471969285166038498149176429734549260720988272114915858516334721142586548324774348435573887512664312616241090309468206538625808738108545129773503131572638656858996569390914828944939823130003848318833214179900495220767927718192341263807146271255376571181936530388139309050131920519307032604228967321453222088317132667555442611759326602550160810266759096938763435600255313719731765978828730561741053196663801169450874430279753000445523674533864311892794613049814270048332040367212337891355450155513719854915377958114215489804370448364348564630611007518670405425075618310655646811028108540927872957708791676442565359432956335237185319570061591540806714025634452585144149882123002962324421171010305786922450063378632809693477409493187117556435138756499281342071616988305762076554381177034767228523537929592028436380649118871514379406934210666913101431228512500583103957942852514982599654823984445531071710136551987272310760224432498219275546727411893452568953765798271297809650459505420085519474328222456233106000947001110293513483422484176263421682951133052559717146184746113957685184955396609444238814138705407133653347550748573078386949441820579339360967332935433038279294171034081513315564016362285441905769061317164298279657016082938555495540660946531608006536931943447971514195965023153735448757410908785392826030827477435070383183756765405096115772719210765656178144017178749844921432720729101471492072901216362263964959402158369322442915949562620281683714903415075566730281003140807286554887730817105274783702989932229892522464671507362434617610747453651097059958213354907012730730106688497071069765920907085852990922817431260345399804115393173003920863845312905720149861751869033446219406659272610343277675452571326141320369070141882160885662371993322145195389492626324190261458076489618795937243585037069926529972850816793148631434228882994704929814080718270863477253190408520807595984762132830990802658400577701988523942928012661704152388514505637087414789225278865084267952139708301992880456915679113192941433342786596848403991643394147575237797855778025930093872727241400453484762612502492158816744084552964669789843158985362461770267878550938137572749905401513188175030154241735023687141617416712040219759149835937674511573169162072755246404749595175336037603814012630129027825432130096159440278967152219203611235911515024608105475615100980565407140905468375136872227405816118119488436609353486507447589556703986020296144249573644766739260595773318833919220486608263481665747871389702126092683052697526828805570075531248420910430249201908099359842712989329308947309617240009674831764220747248789389007273225199213504656714519882383716378260084394638134478536466630119831744631646583084365673632582625086732965325152356063777870123074608924548563422158520420057032930669418627453722638156535507018571519673940107716917090480395184770921872564034167796303520641042699614466266927043907733541618079819109531499563711559330245094876848471594276102359398130161770418350594967702754857799932902709800985022811094414386894378286223519151858290625893334403139669389403760621367371996589953237824945836424430265741063087830880617108321617911931115057614280354541884282368866420804681306572325071543897693015182205651854069221499152942627185535757948409274783679473957018538619976354404083705735504253852467206934903139992003828168046531177437167114993370063668389440599372314216676525376832762955640397484304353913729955720518339588152737150152805121602251947563887396946753683028981647934185999970628995291468287254753150927781213045063517719606808708406743239930499532545917554212962382633022390497936462939479267876979080541755444305305726004406732343673179462936139643202248753387881897549434110767318218293359030404836942249389272595176963166952549659141137290187167317186914643315569854310965971762966812482466607617974420562850963390304614127761474129683269327382150870462214263784893538048812527951284575858906516296940004581686070234671652266006046498082567844276376820139957342179347770164226369486105699618877598616482927559069139150177392117392112376419099029390275817617492354141644050214093302870322270188951002706046614470951600007752730398452493614752328119966934294734074031299255914169055230850957234800966464832169364596708286638303853497047482074406998564216732071300726387349113181495498587609061117403099966988245303582211455287613757601065094856249118608185650375906681067493384998336289274627550774069495176055504263733886667414810857440371730434548896871991898493408249736580854994965652128447146681581033798430068313884290477622696543160684989745227214762600815013787190721832441906949737438678715869279930382618431216124460200897854332294751613325412093181266196995749573673947902134386846872449684402447045275465366487298040539812328166575238063005469230314054044663704773421963917044412244055039628178505120378933355872507373796076781324830054287304896343629128407490701905753904644427474104943472370044616264824151095060449572547156406189291324684856655386066428503873695239778167895123940378544719615019295893992978579742915691832659175661904886842500016898008845423177632650977972345407955231684890592183589652195132686502133491010887348172656236431908925673095344391175477834791292955890683662211284995174177391443674395207740553378133093534349126187710148680174833593588265584194116683760602572994852573337369382427603188411421514914426100207299399042095956278161473530172848964966813386909308497774477388619306813263848711912250030141700700787045022176273859353999712434521938505915708439689069621077788849693995857941908166509099250813818633632468023442905541085710254122723723927204912165815474428650817463665242442945834581743328618022788951550495513820071049727397993489938062576732083698604921772940940961485377717258516794109402395453185995340097552445378484212356680640740831388800750862996622668332342826918668671504748182958796477464757244067717057334379444346341429956893202306243356408466525451657207532846499107439643184959112188104810147314624911606778714166451332027379848737450740756791745385851189347574756874382350765228394702187975080719185375703855795628043433455292005244381694098184364985093632940063504264436550527401649873263401443963052603089497336951393202212954719667675941767900218536153985428652666200067555998644699101539953930675647297077932313517833656507424018289960313987302896764991774910854891601169112327391449969326190073910156292140025825560017643077635691855379870325193435992503231803713895660227002254932298086521342928354652289396213124900403045391574803413106966979583170354986994771966261744228365173208251426614914280684230781594433114861926463276167862869218949772902983512812000012908997718994498454270220637369128584956760801542493252038761839361333703779265499357280348088770371666475107375624471627819860767690438614425886410597122348797003067915944395171998599978714729056797300731228458923473146238275687413836153725421306107940071347080752291308569532144742945448396446783315683125073152961523129033136061270711285544918261658156841144067690326820981061322528917867625480389172418751570911807064161694488200508184169309263369261597519429984105891910196018342573184464053243075707965663263545083186693892574043447166246902958787421478047778716963633167449219867112463594330671217720793814873595694788645327542747157292643754147670614443728988772484890392127100166558742262422099769709446299480961879709699311349694765497084018911770472734964675030402151956590874320854198701037737234025696129712311711735571951976060460200332444242732727009258991174326819395090363805954265682496266829437962492718341171363820456944285011687078269418671709843995600887479241647404020249560080234796875877335543506158719517145646983905736000976719011167314351102142262795820588383099217338485820211502018981762957500467542495014300393526315975640879747015521885860694365310956421925104527731033877216911798960054642355662063196480688958778024407976346226020702234644478655418724538049298115396647864272611760197648287508613428166724235190279846891903459182394587139562288594243797200542630658024538081668522566127227552032012949970178981039328706901062158606129701589257561146797418944386068498024585469765911069918799802046555101142708755617826904932755847175160246800643747023748757913465352635778701611491138493952576190280625633982337099605113381275183353948134771620606719929475837316469009752905902500286827263969793395970335437859238909347338493130470907399368264036672449627000887588821156293388775152615834753573439106092569731231759075845665661652891775565533254386192019841222129913252772406088908406530105037263492563927472898611568981458582931670110152065622476288609526288845138170245503500388277311239715958952191305497553756910633027407560415524649764412986172891150637549173773300429471741440388272876403756928251508456831327033749781311960762932296445546679430954363559931581639561466550950923932057130750166994127820414801714435557878141574749734001450096655641941683876061875597106705616938676452658276132451844906190894369204086515889424436025121518142838072411326727025012578265269994094459556180735332200572371986815740637848514688090771706681663019183036172085807458287000485686983235406663404674916992753907541412627444510870063835943999208725247119852211352818854260392143727249207129023483055536377540480872703807159996534459764561904826570992753431924972078392739174679257014019312447378983726794770537464663943259807842921497458562330740014194090432958739323769965281485686996670912089685812736258900792019016365291348396962683882103695676425138748301830186892884725936101173691352701031909780679011793541554493291698026600778853052829671095971104828586170053070807160425497866674927608010628801558371091909334569956655084510269518506506865882289673156691880184011427901563301784535788927706806545761682033328101035848473538073089329665752968211598162644130851782095202259159369708638702136148074747216839858611986199488644898969082267995629034207693292919664725747507244662410696650525851716005836171333952995129294085107153309814753963663195819658686732349688954144580243045034287922733820504334113986851873902634986320233887752432694661054643463728073064218722622084567728957321963701815511839593009816418034051486066325395796430070435485400649850913823537719977291934311312727953930384614300990842955379293701564286183581286122387488232280555380020998994120594032680449432877518305194608620958277141686633442429486279534773309287172943993093637449617983093321377572359178932230419163734261663199810482199431763850194098509616616200601200146523986691542118661483357937594730428816702120176272181290674066210418257891854760272935470175338585496722419856216913225200102456404302726754785181985091105669426865944063511103248051025680882463894806679079868235480689204235380487160461418308612272249614316457303973847694362161745494837933007148839368555811398838076284961008390707884114444734445124279886518589402998754350449807963088445150269021965765874044872897367982524248991358258026389830521735678756051209962329918144737044433720490018246489152306354473267036256915789326001709498879330813010203319024864087619713185570343320033326650197708180531484470320467593520515850522689978135782328691296264828049639032061953087286345567069881270998666941434739882046519200370378903942394360024425621334448042765643152450037308695822070228696085983214652755807645880309241266990011416793033740333262543928563543333516995270995331167491593751838685731795694621170537024089287216963259570370296590273187644481691234768947572152312449907315772127109779881127639910373434875645796367615661627621272607901203347652974892197195000538684513620992311440217180894192745290722569916459917209927087995193128013493705049467795868312033442715610049991683133996226455204397715212900716572921816712914587273871624195784002344263358861837336362838742291865747080674491362664617793733773389370053268223010911841590415366556361432719104868922920941388024888919906729097515830761023402963696801730451749920307157098265364111327954840520724835515485208243355363979029500401143733090066519593573250533057813375463090366786736893775027563619718700228640155892449814515555118226992095189488715565794373766928017480546973273744243211367507518528868150467683629996862059281262781623268878584436004644915978755129871893083683660361192807659146904201802685351797974416267085734379317812349466524410221505249318177439520674874133183162857195788531155460805043198883719260001126815843357452800864868020154959031845948822975051667704858178781917420044755889488591817664780046976024046192285626656167894800801957795105098444133608757490026327189533420532859765967787084426541700604505434613426888415997056302153191716915907476146249750156892043930453324444381227516038101432373159538138464908664386246013791940461706434221392569916306722652349258672097295020923880958419298157473163586771046955286476126722413573108026376028026181833970193706454631086956877336844501252686239556559924372413065635989577529794561208378824690397308241513709449872109556144170347909839923611771006014415543419909157260339813768056154923160146998834841408521471654791445456938422111120013981042167787395868754316041322654399319804599343638052184524087743709138941954261420079057798038143512637057017636654057335889404122189150974632000122632429574075677184699435203074008600484492351145797286446601261938824242148022574645432605846942546061463508831000338973919428291571417323617846063974914760440633668636063519529325814820416205824983146636194373013751421495838288005404836649430358967460308724547892414494285194554917553317674309295538483888021317400925712812075455883565310167514893525388862165145316487434522230838375522445197293077495677247438270470415555926553515844008157757076655660140490284657394333612190043393094435417051842868813936642093337480923313434138648685634271652240146474894269830487336245641240879508939773645631770930941436635658389598399181400613218371503761919694009333994102487048353319619344988921839756025833631634330767859974925979648906099875622316759304627496934748994808464003457835822195316678803933121380055271432689819937829318213496123578096229243820186926140135504807433462810358911664538193348100255265847257384736359622512451195565456062391474393386357279301868384660818301605546710946155712421471970390324714808931454270555523900175291891470414203039279732545199516165975386322298999507424868588465235207326486160336788311373492637612296093595622810828889078127626931492696406963725615204489246114848840824674826674170635009858138141782170816517403423199190704451838886169146466558641815241997937434233949688494764330552832866920707184979435678938779894448105390310023757809431397406830920818025342899120978714880543382418889191323392982003267790080657885611709170810257540823424670261957108923027380674412935236012789550539269268546647655358630691444654584759027371863214119965453796052041442456735513987677502400826724162165995091863762288702359747752096953270076524716982952183222197328701280551404073623553106768036918782753955618988554391443662709217458836399716489332051032294297700883504430036969541728904195083334595149196055485990792716789351448427319074523417015909499267251044107160863087243641438460286943092355080501251441474611950441362109508986836544350763024400936944085216047234253429354417266965755897771307304339953974336609772508468688110455044398768169139549544188595549801614517926531327499748376979403609888747631178636550201020126056645470426116220746120508428390590818690788331486115926199646431128219982742196366285187817693151328359561641356710130808310932096073798270630518133694241817820169730342574232144195876551932368312336474192693918546828168555549239878600828866745726380055372231089531677995021178314044548617797415150088915484534161036078944945534962794216645728574054231920557487093220572006498154376284529276292591130811373371739334494087475873487039901132070967787933013359530032728504136251643160554487512798900099779956479933435495079099988335100308642049281870380062554234294664396424277667892819272598772335065782166549049005519146208538029115858832428043831172114880682777934923802014003932377962511174882177853246247490419589178640134614852986885004397359470713755030542847759478887626475243914477964704837437087062706432635340492704305525251776205549597253109931256073443385069805154876618329480221984935070950989670066862069697194069681655036852490868437379811520105271000810858977664069480926674751065552008034742700132112549994852885729779721892191654911578135829737024494229724790204501243408507728124317387574081992966334263126271467773905432533706405748865155053836319915153800872982288714719442125052819299578648762341678248579693681748286664396729036515134622515678321234220319234446319077461258356127931664398218978250458631308518220995574438124008906553083176869158475818883234577568553635710665556537630640530471939493446768320560040915588858852652221821974604539546071047935704360136633775250826170107024777967284614203719707454942019251122463620355561805795136509876554709914499642083147649607185182648754550421670271848234904009999485509006773111260194246609447157196708163630120741920863783468332460818592756361854468852776078959461110519601844491885573662567170672651600649599620807252757383339872480767061188339525796201971792965392218469131835983021106368619846587990904038705209928350264374489345876854024099036462301489851486373308844388168515960328848477700171752028208898024121926102132858364352966789140441657401217039755531065365662448482720390184476129948957601568506408103681207265101754419604367948732182250285812854174682926550253945740116980365054395067970653177442283999002735332940124905765796365724689803422645619917810481220823496203401027467962497767764679638069157374340988381611466136970212974772367372442403162836227626292866217705393561928795737204274274228867691338956816791588640109856894231791352559168444133746625932097800379465762647033048161720855859776181609558215070416985104667458489907612170699746584424617233270129542539573528303282569722463169464783103359921325277701753965518746221573030404013117535142562748859686799002227713378121764990558257649221103374409071069388346991399195417144353147563796926707209142341207481007654649224756398704645270078993180475323505239861786970366166131147143892243979590656049071258547182075380141132865605576710713779544611329414098697343735733081289432847534602489742639777469076301686615020518935803992860892788449724925230805822529847384577404787791395698344480875854251044758258065830995868758193987623976236701131461311196870586493577724252883933386055022136135747196847392608875112983775658449058856108276021850762168842721066841399048195602694807373835004637179478782878797851438828659913525403982879099039124844241803559887089510169128805134525740642184713678540176610152651293306908497128640746292517277359741733259932904689777494901273780672969495366971156111256500619687700411867790298489143204979039003353261028674847643743396475769733134415719843493945894954267625663637669104759980316861378123924172109699916993208621291228601582136798702015470975336890601738823882762048359210916105174870764277678095938102742368616095046160812686512884913200936031304144383428610851087428740782509779650894627962810415138773024563748915287400125203086006689522567400270825848293020403905697094184755083806722815328745951264355661249316911995055808328445957576651273167169541390188258113151361111581784720940997155195678955488140845524000920801235483583683045525776365434411399252775811988635612065019827093398598771799774284249286155836003337395479005373542878623905086993537264399155464421046726910710830169607477270413706044482379420003645893664356179662067178441162556982249219703300360909229311933805459684740928951980845995710246213917061536075839411727973396420145201542227300806722922050054134702614218177576645675599421711001299739797577819696146467936056052494346354025262782826014551711610694316278962511999265400034080847806883767145853511631989192235221143492217348719483613252095814707360318973891914545822164142015546853204081762317998679939287194320408826041953690773820935895339556822555968405871058011480181426980060878978205336420539185085530527860478919192013015255301029239932237990137957660253551446023706509832491978050537160328513606849693959642734679159445071008497544133004137330224531880896226306507165971930265739957408825834526234952502008329126040356616508450105361816430756876547739252341216929829405034864553262810426735135592684043556571985317390706719947753728731839725732163447389769224691984917640994992180456882511721378641281430176496930294533428025839127833886176035793692873484413597009910217848896843164872020623191391141919369760314004678374844944460767290479647751706223440549364820186356587074753419934538566362252825746989055176083082279957204640863126492132314814057761149223992483687118140396999195622904583673331922135815954713301564441047345411940605424897452338968278586876319968132913275447076328997383187876555346711240311408217041390759750149660448125321939034607873993117342302713474955040270790533985783601868100802571086429864134711208624461923682924988653702473072927480916002412251622005691760697155602558093000702754888134466429913123196928421758255370099939635424620991682897290189807624607623599674876290424751205256568187564178673652594774113939083589782646003485741899322814341810302642692613301883057888072791050334750029767606812103729947995350306721042509020335887886606891496607731822920996213472365628876859120672549937810481955921106196021074846297431010788830360447090206121403513605955468183802920448091694359818426311663171146852243474874883640149724430913885928125127177897738211685356113644949743895644054309766584912511783899682010576560266129545791747779864964084949163256656185216608665433900459754884769296514555713173037592639520924719897703871211859840050953628377087447739618550698194735055750485334159191832912423930819219991628515436649461861745384417393004097585569503722452574552356810862908148112822453693168686484916715619270357704589005943696071969825552819828580233619298113721005890136323401282988402072467446436143402756824193203447420308780423345773153624153294743207682254414399537590395493406811449632744251349204900794395504161498966600325168426786430885866034965181975231653656089522191424692255400249600945111452480815565652214228159866741657502301578532911265484524268864918194962896804051044558232702368020511239798338067276528532007051889510226706274458007730930429291623925037627650484562069965739968017822208464701665485727779849777078232590498362405288105936387281299213603097140924468187832839959944564049410305731384558155932822229766273736819996154986811776431750604118844283638552437308818986468827541787211053910479260757089117144609575780627358978970670917278276220018762908231309102152585470839146985143650808881774280748036136145706824716525115318142248667613781845273444282054506830786028323455355200351815118583992975436514475451083659555103664215051130398764796301477813089611812392663924654716781829663826161019511389410834001451399865762404910351461740091902116988156537148926099387319195279533967569471839647912075861176121040149018440874675884837763906419082840968576458595310422452331775015424404447425533618938255550107787645231279206463219986363556722589567855177958059989897559232831492415892674746215309971227420231519647198317921230103216397875138755705400702179816315875953736713726293127624312374104915821237586148540298666600152140628923286246903020328884970120507310017598157954596278163426256877240157711176572458167467333471984416693195799307834772485404131913175610799627177904373962147698877628373978706437848752710646629949715552536955181893608652661153636613547393624962796284052893673025455410090089242721316917655215258071740318796422395994585562767800607832716448209687168610050752598690491261718170023692831771215159768601990584572443465894637656086096656558362709569732158047626089358495420084933369677819212495810412781813976983780900136344386386672802342693038173763179260588512962810198837979069210649311085589446349928742999952185652870701565834599450819143825214419103107633114009132563007890702163883704481859190440479956459842696706127187675634174753875334865457450005959977774695546033999050650709605628833900330849198607975706871140251698655194706320502466593420315124063717300692672425976722603249302726583685694110484219547007209409916263793262370209191370633585392766672037613823640416013563031120681052524950255185327980024462651090938721963459968563029455731354650007551708617356120376891207105020288726186738298332109956923224723202126959023043830529659447072506134114585221495668777878187609135616633134693968871269052614529511529276144053870465168199655241403191571698119485896595280474533381346844180917281290551546459219622994567863635037497648721145286224587725816186570124421490492678500336779685099471833803873399411239846489912388615664252571136396808242541225158805500964146172427650438436946642805598115327191874183869446689979760403730698193207030735724551203435997049806854551048093454084921908602742351974077203633558044019370188930844673029736126972721213154697129760779529772556578935295417497518341198978131072585333850894885391116709512205926546644721280126824025055686020985608415193566482461784226981775211157025948272641613003024621077257209502104250430929470637531424038648352214125919245682343211670941377574929781414936179604053770277957315619545517181682379141768904399377229885667326311655858080019629373578076581585235832030849353599707140902253746309551501930670832395865191107507153165637572478474402276909078092581197872629771720036710614562871879564069362676965432921637447721651350535255093614313701189007941501840775668547103572757209209563726644985645766161451800788416981483916309780229963267042279987994702526078597626517191950465491842471962406730423733517033571599951275081602196392779816659569692040000302727694433300955188746490595846158205728695589750861612459725363563331932245039904374387923869776594577252597339314476423530513531324205420152444500961435974629474801390617683441900207683215621649423315786267325349743005694935802361708757948956004809643620057383556198027470591314355133160323373074126976539080027036399753690057810196281754064972953514895990227282619780732867537003209541928210404193730420393974066551239236201275625128284205989633214066027233792748888642844777969533463597467255965223118822237088760202309291881141627316200335413681466346123038356479143842892154991977380874102363654540012091743480673243679834838932502809181778066155531080235076197890985101611782588514606638875305496632382513874770655075762047776329618718474626460477542984614889430377664802993197179396046959844582033651188848998207771175445628907284295763288212292384420115188047620007087203055569426493350216776247767324203663495379052397112390122360635011432689877163051980342823734363499281837890371559535011703688666044819085075946406553552346419842380515321902298822733734490125985641360358709478335665577211251540862645353849978246230041151127610867673931274196591981611072417273331603321214965308018532315732245850857960798290205194190603542442772832639964211688640487601547252827099556008317300717719373805311049607754607216342401485352307660022106076953894997436085587183397589281291997607522455978421746021954188239756666318018937282810420601164242988107459282248360864380806139122785973665480116567614746489231210454978863506764448170774858099237429064335846573913132746153743297342607506451647246260133432163108510988782911889757866855603100886196136443651310728498220489631689689992260768546852196097776190044143824973463514547476702687583848247523640795292092929261440028645963153272342072927039029270861770275071335428255128606229724161415284957141077017101528843472182119491586029278562959502603949953816978746790740134827851241220335480631967308964933002917610782230023479874119815606744378779068147859322298573920255496037765963325850545819371369517272864607745622687734547143544974477535729839388655101281927968097931201261636883313946755468660510498178898184566626848056630678040554427565434768536241157521546058875680901422576805298068094596539246414483836914258058868656119423977200920636460248780098325713573441416109171534842973184233036300728789380508829815310162583199378890164154814045686263195918789821991872356328733170955709656984898880463647893166416680808840265274323831467042234676010097227235376617846630105149870037134357479471038669272725341717035725564857825240045491334255956161061853073020171978088289131239656860335759151510672775164834349689570372095367017319738097747391677343957570111327933926621606813470494450182349205707053490631499310960542793147928374116217800808316430386665348091112674197015788976503629329129972595757903245950365809861300876641591226019476490106654437440376435426681461963542398484836790963204501079647961297059664037403891129276435890356822073866363438591290399925257509511246330848671011893351193887080781097345316232704893844227740856202144508606938508812045356749763790818103259196502428807573980017389583868470868069317185646758238680114646846527086942447978541063890413242103900474266257252813434511696338948925783718546152784122870954578297162040347350029749886896312983715998060822618247571325497132163288754562799099489636258247862246968780187416941721139157949226791727673712534672545343004413439326630326849567963143774818815679297766557538618835014452921818032157445680047589480452697168225371259072486325754630911151725607774176840222516637568737997236041358947969589788502255278871794824346567908321164837294091297918284479326867415905598647468925003540292429810316905704049799919163597826207598438756579932930705656369420513814828251564827279431420331939718895458584043692763521315928569107613557846203489124657103820563583438401276405398525707603341308594787211090507063008493007541563979465729434411326460645816819051713164666143122517139821772945546438091429450618626680799317736174937264016705238802807873760082194345836761743974819226873078509139564254726615163410212107036584809386277119230002803361839142036768198369322145339535115637507584949631795033947926136349002103629724313975452374827772693407982390079275068691740348996871743742685609707369276307289254585400526561560310908662044155004609073011265529985152253806301676287259241271773632697588688390720174396371411741443758887063466985696886091050553069520640245782908530491080184282089611878843611960706439598021727526369692227880637125114764437424578158113393760054965986935839267772695571233367159948025638627898540429871619081765360278123734478666508104311849756107501042893424828215992458177518912768518590729279064432118502878629948297196602136789969060007441502371786424640301726599637020130870985945382457763560899846050736669994537505904736497324864048050611897744879526158335153201256541225528595885254268134039418672281611598986823873884516196118233911971025702565217406233659097718947479887924245327749298838449195799509911142821272653211411587490176344177675341216922329020096143692883102998578084840624323824301247543310789939392491773167780053587708875177838501003090488184515373754998912113523886080669449625867848281687620461453107144555535856970346284359544649486494113666638743637249413998906742053606655654639812431787381890209661462184527109633943435189116412128574768370275046376604368596633808689801906930769246098084813971935950273050464986450520027812999382463143778213812197181299048828569176788916430798521614551626800403952050223741551801729914993164389451718899084116314067548263571730986706643751276088514329156260323983669044086883007882349574190571688463799675498506024506496028471289325001674886511918675350767330321521872773359406558456549567088240911266077265854538559420058562733645955913081073279231446289101413904093581367380577309765688402359683171767825202384018756459117714881556946986976974511732654934194016494249134128457692327983059762352281079992847194857350602830254877469113895811581378647393141012667709319194557138101812871313187867324136407642859416733346440387630416267311014285692009854408083221228067114859167896620652689642723955958436501572102949078768006725267769532463373445119884899316239968907797795837740935989027481418382071110596242344829591923982260278579226909001495463715898640947976114979482081437295405402120788026353276744011512179658470159395738751767716381458302737620249139510949274108433489399356571506693091331678488469064143908242489081468641197928429784356576280269111887284424447176515941282783698982582803969232835119052772270004146769760819020506829719794563673846328853550239120966664855088293098639113296050542445039046720351308686526307178663972457385454135334920995069130267592767187320200387550299647032146395416705755730335826494957723729856344132140516320531042538761175617624655428769888086821399054482988042567426019081734199301697707441678334692885697246647358370584785551781940983743537864839427695999443072404371306548711810896545437280232507997970871804708071385396675635617536541467651444422182038289758978048911565725118980633920416907523031153114146688938799771972578276290635797209415968246951873428372273206759153091213460415961349213972637806630205546834880642000512310812921847308657611052195985740809398072753149567239060654146614573097317190884452303354398336986525466153964757478276681517414010121070902289161181403279983738490567707396436977563055495800999311375487724661502326046927183914822908631656895194138010031898354768140056284039788296935503470649662672508658779144314583849945907070766351033394630774004429728519417043356471176610077734258132925788134001414567081121084002447439668872779189112566642526829985112662198743120807866140247361803183353742841725193074307253444029210961671756848394538035954472933607671071013119775700185291553907768892380342238213814311020690791284383531305761862425790329116492143978312939991712360301035300783664709483922506775900984087469037599728646702602287452983385839710095530220385342651656016800736882883737417288212096553623741987349991418016456814340406425268287348286328666096062768751979000694458925349821559233356096640946764574181902967663444545471270457547579168722915798131795622937463327797346231173344759586164451442455366772984750236157755579663604245021302787821724228824526005328355508880559861010566502990265936146589923775996403465845594762952458547238048502684611906254536170059420112981041191914859881411699369197643798741346099367261802747017605626662658434172523659778598020721611214311846584827950688196238794708712059203295109659818732896170665933643903520645074811720355085051784302442534507660269882313506585665151356390394479497253819114178521714129130061719022805249423550100639795187669204504952185741978890588793399642300336898128230260011999213525464780757113753267023879698117443579802804712932786306156109343328724670384505864093218276841555955288221026673818551760812458917183606634959632225444977859342424502758451804224703961033853610982317976422169296260357273893255118997904070374744333346804984657186665145514108074858196093923351181565290507162125871741278351437645710708862125535365671921998354932719546506311043243377343095431277148248706959816949643524894128068625151958994022020764123036130904967316150222364197126181030154859911621839510568506527594659764342700788822929487826756673945157223724548916977845979656210403094746668988677054843712732595100548813984266055172036232441100960010628533525605278647844439482263621765717825993663651444595524374245020070105073241318024875941343621242670391519705601619374273596599034997095121855178940161000583575230457797088184465741670646573912686343037329818825188715837565023679713619640929550192255607600991542163604172903928280499292958295929063537629233801935528113702337513199806470426002150500681990497179691237479670705597432365504721205773530372449121652043036393628404626082900569859089889438723642011412089506520881066663217602948974544496523786318365420160272357884670782621407244325093787608439444910771018742932852070557586260299602952278686804712112066384349069738375789574963978939562819352876416530855360274748031052283898469564629503149328971205259243081594923289826816819606931159639302417288058174212797261408112377200491410239289314721350210657904907771774619856491087310783354069723262599974559685492048743225731768820377861392828681995318888353838486775459428950353081848117072711588133022295370047800208121604431924407975580158272399950018008216769282876179460046560162685477733717429710283255940825949963960750677859570423373846091582876992581063255822314192900065180813412780243765003139070352987269512798394228911121504906792914110909854290548729096600680249443959484341280200338650242110191830173235965163395835095901081268352476094580493768273355820152258698217407803491579585631925928773473534198267775761895637245199874224941230998068540434894063277937818786585228358847433320433666786377690076125847354708696664344201772531036573987651967233011405351938860824809750482875099279522734449446953656546421909263766386082610024927071788485124557519241272221973906551212547289027851943276343324030732973561156055498948449154459644069609552986752390058896209778600391315393761959558340432195288487759490786161101408790830837400961582276997044018553839554748549131425613127896754701663630826829033079772419494198278557322743721780569416882683140167102125341196656631975463176491341958527293562778098620488540395889629166978813708699903682420095198346216992904349401023287029858512878107010137389709558498134921859417295342671018969102050312997556254551773791215382775111534825514268673624928348626527931013807401410491187462198119018690960434692638718711992666288773931876643022244302921874597746703968131511341015841002673665961841489382794072569558955063318799116659138973252867880437894331632427312337757193186011676651945582625668605700355895836421557567520712784542158999596422276194156694177439204213461581389568833964465465966630971172397688676051375960980283811188765743735853725955798320495305423875211932242107676659605773897195328342928819497825535081061486761899539265904418713771653731377941957051328146965844292586034020821594499719061814374875263693333422978959442682379458927651308496261327818337739446165707465578982921307213426011380445980410132190683905602977206453424115148660626673494741831238795588775872943106182327112733924519373571126790928930087047565453680757763632587561991700686720754002662558653451221898252413435357887270664785341392470024537899220846373200361214648869963882538790049960043631295178311588256167640185848195336814776873985239504150178656206726696507307867075497788437340666622094324302733130236216903258173212806211433726021429141649067397315539863160614538308701938437414961265351984812883182162116037408371581672021185324894658685292569097233711003221169721335359584706134648807119498641635575807091970052350799165011752148909524839560165959708964572552807885835713939516232323933299987151855214207342392777942700534406484254109819046390432220920907833903745596083703839251796747148952114826644406619561923224757957155954956355939978146665988066635195062960733580525193212768984446407139800665747429446699271308433846690662636749575082815680688916219319208974773227168941069017187863607848895761756691548473388471811763077060549748585410558548296799672663501815140204044919189817706594074837108350753049457917032924679744463731364091466152097613132400021815677203333730890665363553581270268699592597452588700768131812708418106629128835494419208984461899622777862124262313530778330674868639121172794529112205190182558628293394047004906769955219417726751528285489915785146138783512133846576484990054721613368892149383333246467791829061928665649939171499953032079388202465371769293071035106141205233728870063463392674676274810254972476859375797411758848376500134869316305508186369794018822653704604221546547885003330517642798232754164094426134444606389611476623415525286279720191671924267849120321211641193011828033585956323475126480542121663124430332462731138819783263026408830464752296994458641422935425289473092619063223307887091573314476205792199589428794468511777685540734907807077252297756772322264057753208726985152943426553892622673831227295437931339252712056485116788346110436082178258283846975776206513280157805554527710560009940821252844021871651560550981137090261186605111343981105018765490543614857296858736491278641664937561419130798981469916582013055616054601213866590107247472166716160857268361586216189391029294216808305537264099324775937454688918400277746914452067492296008307129501851624494283223970723312159241796173878044813675074357464231861049805731158180511587476075987098081467361327368963642782442202839562279745348003831752969846527398763418259481116335019109799133338701314350178583316604905615421348016911498305475373097563971435364845461300629647752095308004040536040181972832979716734050741373709945625724280023618784068918589605108396377316870492371354353397555321393008774783302908053267965062426140559992638960855547552528238870017785927212645924829791272647013442976552001786448369150192397157457689090290018911990387938407585585809605492933482179095953420355175673216337561925733612869908321307306177201059250796753899485467363755521561765518328088864426217717976036261712092559461962149644214760081092116176146241232903790103771566434380928235170145251653230015190327210749992644340966764897960625059367294863746805631639781809988369226656325599685601826329294582006445393984880590374180081726769239281908283218250860348960157079279133575714286544189780391560819997565659305347280958201297417847953161735502235710355772573110964294064134179839320956966383238001886685225346384197602947115648365739276691756491249508652832506517658031750926280088947190893305378784939007300492386806138630033236379042768013663600153435184925598069298363049176558385537077004355132801476237009782616741483255517215953651535833168718248648729040008297125740469618000148777558008600786635864580920232592749387488997403596341561297650521530580712007074255342024229902334912468445999961010841768543569120678230036147803673579230237908054226930381042303312591835644783087639052006698864581143089507745300540356344092696841248504828970303409034295245404567532425847699787009825609532968567034323764361951118807302720254206599900100139215645585326032521095568415324589294416015298044348754090681501182768405060822427445569475587448435690949889702727548459431351979631571095326379499648595995339179833722473707990608504351381941526089331430849619733835131446115692563165790742575399271721701668817511059880944235397343715677317897143467604009979418301014182881236877377131033643441836603148773956744583873579139768731351576434601528461958133396403309404902798536999497823468652507872884300204676186453151035996698012168898422867787104375939893110564357554571698798586689765695483158323631728461463129637710437087766398069200624665193716941838476445445146995384031130369344650493944536972256588223757962423005241451135825853674203344643082213959517100068824331746209496651049373955178431485098893426263367210616911121236531377632169269615589432731683597412853293516941323895860278948322648597219681158145920741923740789070757432501643081626589126491944439839573570859299758381826821888059725367700292916631619286079154976232436081749462351453081927016647405198043941985472550103832562047845640381824100582771252398952531230672933463972142926206202327200932974310154819455276066199934061388752412885785984943977160155992973624889144165664642743296290213346669016093469274709693262916747253661352331426044002655715705444905116776100207587952608192136014819132103393402409359200745111434886677744263713164254912937627521833810715099742767909760223172930739728389676131379452141089851053838979086891062698798842267831594787775367386670771274679221704581052953914903365511225328202763380836813156897945270678241077666240475788152340723484548483489007884775991411399831332602705778190010326812877461609380058519250464224797648740741082073817973944156902261602455562596021734178808608117372530280031663895322818030286625339043249874889161284659392199676326804018915703855033128573247815656700486530044488572216758939895049603454577234614105308510414564785691387310066544326277732487885778714075244412118404714795177830064166335777773026006192326523678309034327912796128211918318310130418198402448149336701389599425913651959642472803273474544750844025754572905922415263890081923489229406270786565003100358145289058478730919851110411088716506525059220950539263094628785479763424646820033044073863002052977895881271873672245354413756365364567421715886111685676636259406989492202107768562090408228951998692828070663957640656968186457083891032191820533417074476664035739969692091961227509565244661160411040896684612462860169259176887393233144749237412162162033928820430570213251964021054735105951215840520077800088044919076555656986061307609209976717550776446347337385485351215624425219991470734182726896175847838968922799993403689569954501943595929211283994658095355902783823103588214200370391498056893088067747337105432143830993465757077220899756671847661903164345135005162834871176033935000191540692266967941383797551707282066639582188353890169585973501690837515298684753666853588502132683047942638510801539611715012631178734332886931769565657753088168479128876520633448341314976574290613084111256399248870520093825145520243485925597006246891992699885714675793889839971644222912225505236867294813048102267021615354859965231142946772625937123237579605736044707630958050219536884217209200611026281196660962072594013046811070735594549318853334624118968119096932555616051779739344987288598527399852129238705877957511619421862700110946514355931643783774081849769363571630498042105620799154430578040840096188710864325609025510512294850762857723030453510929529076604424847189136429376655615836978620729891345451530218780796901294681846209723199169540618172920466885957725665431243589751674095679792849787334641170541229015527944688473128484679370615296104736329072494326533471153311641695511361545657732691207375204887656401163636791388610498270088242032918170076121471387196471409757230826862757705354141331899138618577357357186159122961607066284441478922836668185469467069147992696680695435645228170738510270201165587845559801002216882060242986960615443513546793216627675677642594720453485949710761106573279696664663494734839278826171409729853427098852278336259327624727106843323987037618059828524103618981473080301074269376528255324858805132424163302148394075144404120135539016800605408133816284361489137523183073442821164977489153780068325454662366142446155850270263081828589195482848555611192955083891582197308249835033115570912189161754083809264460910028693184267269632426490411638641085218442669420498035883608614005835043548251541541295837211266853796348613870975122131367576930610309867273153075309037398439401079387539225870413306237245850394188981900915200442609312375325835987275175534990273178353881081432496051686982966094512938858187518204774422646279416049446758418430453317128968401973765150103045984907146133267538354726067173863879155290475194918950362120814098603080881872627169156125566570222693682139592341850488509334535990487902821290891737138306180387898341231880829694487276450314172897347371019800972885486256202607351775267714829197459253961091563327848857225826404274719227664115937864242832010790501274178715413714558155023713715141019281710310038369324776808051877333341409913780773551708940733321365135621259997244314219451682409673974543391982862351158448842476586808339463811581915560802218189860012334313483518033177346970143348163610256821240232920805858735261015201892842416045019420981391145964091456674767957993369352185970828096799764368120178547324716896763036492487597835696984922257609877854328239388712692005080879272455197688454892103823689551258964220591528534454766706176737908863322610595697924563460302078388863969930817945194146869866561994377258425507442982627548077819096810513608824842502504211642667298993792040524291481871131891915040988444997397894969580729101221550734745173042986574947590450890843953530428336248344156771068651933402952261587823754460459662476635663469639907926931604807803367050598202764286310098007436188135662595012804633979496587845856821096472786152842427895643356732118070388623551145729072914363148420491986572314117575402550776363953039013940443286816663968139443782187728069131367533308501805898976419186361105698434197563710485112630195876159910015178257502825493908100683800886472188392394037028825186928992344505641391509150125891537495920012797963118129023926185943170227984839891283158490739144422223877532550220056921374853974086456789967473164530437984433779367197344696187964825003067888466789774724489260833064762916875283021196517205953584379585321455200061864232021819731628804300509681983570077533149485886915160784875521907156707662985547479224108144797404877083996270073605437635357918919715720222097422799628715187503436223147169225859530160032398874240221171636739631403035162766877193413864746993699974983349587635222884009907355865854811135345368789577532782533808352945116420322283683830060853844558391736894722656513832107067725365480316202885130595859130088901699943944169110196423921549492499552526032382207815157042015214248127031320134552594563998672710395548446095979515205586751384443880815124213042375910604237273954630733251821473619632871436912324838578799426141405651786062075164212614937411050696128860911028472957564242025502906365810380316275698258440988751667434408894467777268717065382016883681825105876208577935209337014251261200962180813428556528132728167525631409492010318956312637549070734020969995288884379874969904595634486430024099391082866257020976786593061477614824282371988708642973889678323873151752634373366906672659125545118816456101840493318930952635820044963695507040985523863213521272776712275500726081601888718017503576052235169467351762236360061749911695515297712050110541014087615291817587662904215072532472278353460082402704975664452933683742014096684509511682259713640405641400909255773141749463168164224644621036667842652730354694088453980034851777310318183567249801976142660819104446710451479343556831787534585777412410387023622515411926692983104495586400356445734614164930578616641948586748181477337636985475443921493452828498879810794771772708927145005477782660369137161171678989843263389817376735879098613234026153908145061891761425195062575127404367562792886504205733901737181641055683565993429540796866991118530282864641559957768370369938753795377173853141253041159416019693891955636570013720981850194123618240757766103873454677231128250316800458499748977182833834459173566438525544914021398887538481315127136367470546209820550504579031269647063717892355137686730966143310904317167304652159452534143062046722075156015159367019628704368011686999025849308136775003320167760919440688990245948173392231694575875762663853561058004600924639338800864751988968633941241457988432312350132535245663458090485744421891612528468435699803084151537186136187023590351271514706669493326380738876938669364882160413436864566388918379024475532436589685396179913030855117026984133522250567358220757814548080367986216981385987163289798024181782282327922307968925491326247473650863284785138563656117807567408463230105603408644395336171995859260365269009225978910563022588623491036329358315629882044404081892529914183182671557453474146856257588941840568745218702747309077553318798707345972467069456796014158145803235046843808907411666260764927202058723866872965833154872559873036054027140320179832406120714714291046330041537646455881355371651412714870694923324144605226284707763454683079649874507885502619468648397809232955929122941395020413978945215302988341448253677638467022275564063713242934439257588067085140420491840549180388194835327103070640925117706652299068848004375018611417684030273910420629758276704171599450361674391890079973606772489981533387367533259479355290964245012755104868615182443567091954163854339891220284283638025321661084810482510576517848275220211365159562596593611678842025299110174453930066003918536604955606824573017485615365270561420551140745676131990815096763494838183715664339987326179455988818860199246425502241430858569213581804963504057222902197939992384131925188101323191076258513421195539588089129691915662122349831545185297029982949058103417890210556950986755968225867970692879149935195834100330948855911377363664171987084291154996896580290330000595809816947536312662647576357766701847557344543888478461722513790898431278321583409492424056963895681284019532474471325883140454649376990086710970047228259315532116988700680365180368387073680396866658826201287757265715208940889452613917927562038933762905967090110374315270924336475183085018730067601786180149232071485405232495403800876421235417564655686939399703853290442092355969798391653727667796742678966628594003967409337174603804694490259899110492281572873186327796479176791846666058601366538480944685250280344609962644176219000691076586845777010610749233807029076764441063190561706960748316530345598518836970280493997439776338252074427088844260733394200020842134105983256612639471892120068232224990605493793255553999389312253222757790697612596444082385691723700647014172663591585862538233717249757106076705827712508560473633269045157812566628148089812831429287139054707789693191002743878980743804430119315701936034307306258909009181545686310837710468527750021195068494994418099863101524002512047189280533673787827971928176107171925238119386594143939816520253157415784153008329784004497992952968582267284184486348266727920807750374997287554881232305706768862249784832411588112396716719372310575740466572519904366742813605764234521299028889124555452062381144778385101320849991142490565887228877388025223445379792422506337166148115256074487609820262637583603353925223645525852762148452039889183143009779850014358612343050634789090828218245278549112144909593706112880354025412143169898825482916820544160998411164974606984889053030006483941117142194207581288346160546473662993382225174838435307343941997183658513185483961082551177045821869554308347096701832176322433550179933275696656427452446767998507086509064408622427099068477418978577261269784476270304963681743496547395919875776636199325241905264177381599240781264486859300024595839185277110566746836108320880629921883550328410981837951598828363466400530494812449037482732755138865911093806201256818642006133457191248080437066492585576113707546144867932490249544919738432088744413012041767295745722014584268787272109933719094926542961197558434089739814262659344764278275077288147342268995646505699427933176939842381409167327772984276617976373071791940769244489020584732875533788559468723999843817176691322604679991666205309367334130889293974513348007589852708240332160912417911630879236697304137881075450410050066167346372376874829045194221127933586074367552279168286018334349108451834747264961402262214243358629202353648577980344049004275687393804328276396710313057865129459611045696610399567425408075835946102047608146274665097921840451038576706466949542411516555439133631808372658700345901675762939456538856920982795884714350965891451366472367731598260921083315906343525243975423437760288232732765807196544924317974601954930808221731450094367309658370479277497375725000983030212484431858470818522612007155395321221160649145499658444452279060912187979984009430160449276835056038107163540864913586546931084547108652776111434251280742240289554761824307744483604733800501338175323508931615342686006481020213883265829748828036083293418333614941268955357727676412938372475458776289973298111919391790227223953927933435945502485073711459936945350944837481455249028470324616643750239705866554129453480701768473771415607357446702997547175453387337650854075501070778568065372402130824480262849138585928144926086297060912811304538196613884098915657616099928930201472367444856415993159250633569853976457810388658106563071970082553730452629856111754785141977302899973137585349182242174059942299328805357038309047177579113573592443368866496950290150999874993617248954378431596374679665400100528242579077894398743249903596770793641016377073075672501418909510064826073720849961267360786781919773437498878464970672252997635839018845890624110135560024062642448337808583479944383326513596922217036513676844046325222787946284511378068715154545670702516977929861422172517958662479311198297259136157037600046651057831166610035600023732328820175816511963289773890685842548369782601070424129128534759757446602636145094913213401869331868178125047986954174793914844743227806223323102245664242372567483854291611209627253520416418283220698761355391203399757373660085323020555465439361360486732966067049911707844032302964446600065675385855607052803175113388942247873334573487540639896278443409789316467410330543440415353830323702323868967426735386517049246482935161998358296228706818673909399349898251862477733261089511338691765350617101256878807046913878562315789713546800979062561893014774402399426911045564974308499841574157049384292816469053693649900249353453019165706536829173555410006952779989620907120454460644969293176622018852857725916828958647585064233538613667787834564664378757890435414778311202080406185237872612022876732742000117975680438050194580944849367764579839630622957489579760403428013046967277758643388356927893187741169054959013028937504476777825108341424855835008963026543774702167782832437303456600085200344554382697764278550864744024294628663337678830344282226845322680589853969219430708768849066327600654253904220426968041580316848052303386705985533048131113708697699139148592412849089903945461290880368934500347080308044616626106373961756338197448020865262202836152411032796810862686862974330080012185111241096370909321746636978980769246553099706727944293115743011552167141329110339139062092160195746228463382521939854222280441384941368726458060602466733743019989914229611698153621282268854667218999610005438750428165144619630522465768624139534826522006877062699559444156952234419780309176824647529124275555558631667875986628615791160750755955601207161225909605384429780184114285384190601129132355933011976271868990192645211838442228848384299872741117342977022431636269744122733264404440124873706788806870712227036703169121238929344187749088052021301720805993002873202000136911472135438463084710104434125045212744508720558021400839089322737796724582439187643481322755003893548338837179565120338875430398833858300923842953696414003138546753654854915583466192080995125960525578570852175097650088820617186877387874376398661495347581228647001507804364728308439672243249567830127871597996718452342084624969217300176824446932847380042329380298373520771843344234767483994740162125554223485849414874957365643454035205096154150169791695168126874956263567938146127895214033203133077936310476793413399834382387607184942325842432880849624945566306940888432331510351389288509593820212644010063269132650472169774404199056652350448024295735527469763346300473961089889721084988825138154848331581533433949410227173946982550038168825180510516248013367906609198118221945037193088021836255885979596694763773687214187075094219801549878469258051257998993190432730584119340757325806816660494181546146619885385045715133810486629568038929748660940201435326630579717334435587852881243420650811633511803459522378752976628325171786307943656544052749124742592092262602335045009662963511243571817887830748665539574422387706204091460392361803623106193383717858050964874891079582414620261182970407606014416118369297050936329080853485669048976869276146232639993599889963220599985189389179081952946291974328143899958333026675277650920974330411069401494913065995702094087188880195574611491442384853296268593441683712222912824009851426290619632454437731975504430381116283798999291247505092774150763021604108379208866224198757056979189055874701003824566654453170460394702474073571076762353972453588012247389146743367045121353678772577786866181686777367393099461341843718504008531357565077519545235758431137024610254568841888214293102087912281119330709281576595397330240002148762087557217104672717718319996201134180093248608003300868052808439835517010481339789012996079935882227228768879846030767413668047165597743124682279342039170914367975487328736355009693816943172039638488112139277118396189432354359683689126403713578402647008751546342769393995960857407855887167583490856059716752390479487257913383333305580137061941124094218288588751613305591013761443023184962479761099539209491595243870086431158028804646326878770014019747870726965293684846224871361031942592736349571234727385796425644619071364256403783196084366204741974841099369621606667131751993309227354017894041351508687132605928106041097723218441305429936358811516913405726562606678959387457031153892048518107894574242479739915519517985156164627903637647162851705920167129781378119975222010467384237819447337828269349419152429034263480096910279119818900158193474853449078912382401597512631311175699900205894683383515174726276599943610311464970617614487928953232337393241743580291606837165876520136611135887514177535700830062000941289686253492355317839989231690956775706023512458259528677482914026359459783950219310137317020967812046157858208147483513216960988628410868431791386932453494306145030353402864992706466945403533940870612599947170031686260671823326564027930840347469641201998573227338598298960649589393892519006198303177967436850103140527676530225870188867189538619043582953411906594714250065376967095399841514296524305077190182005545595381779681291650979201663042986234233378621534371900808563710338502708684620124648249079523515561668151888658937881896418203750970053346315184088011760569188791459732062254730702927672176720266050819680390019619294900406493705047674355197068479455909381492670770070294456009866151252142102329584846065282871916261791843314821473322775327529293205557760413624436920589579098330726534448378575180696314504957961223520573364909268675958055100480117569482869396001472065200513439685532229531479308313379707634940189525939125890510484789241168789325897330562799855473096833858857791956929409473560744684060823086000871660769104161614995472772614525562925037069619154461003144807945190181177971122620725472750817755121587221916721695380764558618646580015117385096331360796215657546028379836018063047535103944117929693365933797730685873253548906457171408844152214061782780805217531658489229583361133790645235727078654455173508279745177579434210952143172630871279946680000003166307443081610255131729219566409278384002069194796235164295539567205179187969895459800734560248568542556643067362151123112192011857947722808226854945004933517903830792962500814753709374239947620014322870617410877077043698314289445734806862052071578076693382229057976567855288047213112924253587217792113257742087810587446908009609804442173497466767330461236903373294686884352255537479006323683727842839622204510117319918330588237860616518359604769449201951567748759732277595597536262095266690138158823123208694201226101092425402200569720376886076861360320652189069387208690130839506607025737451921562832297976268543823195292911375928358394907964110051825504253903060220125764215187324083784774237123788967264624001252199702941298220213536125263934294905686345714155738460778118548108449566380416796522607330679933122182581082435511538036029570215406912492893459270032565065496320035392969603974849767014860250203390704874342240606039916321298795497687792683484331340088465654771919428387676011552645207084603982931893331673076485055027327162792522821070612785638055354961532012868536213019240737713467338758123259075524736328157302219743109346146538600317024725921358866547575336444655520499885817564468102623830863671297011714382303764467939442216043558449422770139684866468644204114519099277654292756556213979905659502032144199141391113736972207666240343964473154272498866746811585236446594122539101136654643340787711164269770761466527443781515029047844175440946904374321694127791332635122688506976376482681413117123668778641720505158533827459842370055300913479782688474442942985801668815400282324856656710455811104796555746595751790860756762719977341102334732760677023022439145502421779071087040048210347106220896530347840580004683959973484223753460119584703990136658251597399514576696894222083089496068433744716845570427058529622135087710488944399388978003448252804286677008420924161768977424155533414313274703780655060127726983609797790642410909276663345515408219788197128996824870051164079392823706748844079821016583933241160294391251446240078440223533461901380227525861923279222002391169181514954057911613873330249008024270125331016528565669565080896414310969333781612659603958150897009652943769389032966869166237561765571910038708399778550678678997597849934940897319672943527583223697228565561552885413638742492241369847753110501133173441296878301867192804705500009686167062325804732884961226358825168229685054469176603232131263074564379719941976241705953881399732424822616026927173425645315895566467540735622868046139456570858778356687520962419603758901268616070886662060750318730308965800739668803332738658333709898342600305338774851215224205482145450481463572461502750034929201047203978235940541772978518871245259156213511739081807471595469189469562026423115524000781880556880332178260449975063426577477171589926004690324670238845275518081588070081929673353326625483114982022482454306202479829429145568341751143420707405765755590315278555212792924744744531230165384867345345300397720930079616565379125453236306118109354534219761897938095493742380370919165968260191747792985018633192314367944322786101603245982551176211845555048200145790319214638051154469570244777556689912869939808470033424919823673802599627081081599496817376310573687744714505846134280485897756737765295783868030525513360229688354225741923395203972063025103262806498201699776514091007007331975267410854845498994374487098434664031523639797723970758953324927606792275157864930345710793563722162294383342566022905823530834292459798223455268405833231626161212188805268742791633280802970956295634398266450643875914315624935892779836380018176109245996840711255168152577536518778120481887128335935387765984924559905398294100389081878212505551443458853439269191237600454661040998156857078076840887632798843076187439650853552513518639902472430872367990216013356961277980078482055097580339336218477696973714326198098841160613495913292576832277829584044655080540671889842677694571672123171407142735062256689116194048089347309372177604019343344518890560415955320399940759219695253171689024845121603529327486956603624678250466155166313612617543651372778686235229522835636938302065531538859075508301061553570568933122974897945871551172357841307593147611908113446937556763806197169344061054123268912347996049503853347510077035572782665570801099084638929478932203566159924281869558296485855430879422902691615811251998117687455307497164087852495047521986346879836414041783503667800498114136397213176717718505469146159984146407002807545168903731744956551304052594739336299330371076951478818643266234181532167466860666428117899412399578255581399689506635895245390710022664631301099226315711235422494828967279996574452659691157320004970869417456553603217164524193498616926121766739347965213153103616040758076460432121297224839526800809500569886631553350545392398147385535810278743994851610728983351446170530093269233105603302892903111129920462737455879927692887521288380446008016844853145254402454695164350713463132708391572555364123159858349184661438772655594035721296583388863543161288624509244261340395392289367729245658706488304233906258639866141403796674859005649796857709770798907623176924426757716976963892847828499768997140404004732386135828555329588501134140231460348732414767086667052703292262208177358568856177615543948283265769889079468432594817547666700747547589321472302802482722916588729476020888479907228622663210469081451803515269295217410562928763391634169069734350546403602840609282593500537805447136974359804142455747347446496811889972154993734634900975056218624669513166280478382436505690931754216296535594664297444377533329878379002886600535655121832758874983696553915252825766448138836723348598013007700854386011715611732917429171640155183429058052998343103317789599470227812689016580950689984130892432158989437354001726575377107872235718514808953513125020906036608288102034046851569544231834991824889122050090244519964955924588801424807808971926970186804854384606461953118149669890937983595685517826512105823854668366032411481720644904228784091778116005978626409038298231786374844152190880906082647963386056677895811059404150519918112336439839051338641345851999627538903753875452864987683533686885083567073281934721296718459838577328885531063805905670659433348765070254771131438910475852178838067393840193176601635883962779825155408889132462409124012616081057816112580397935797869887662018785586447395381992764125308802396171402936102303291472087299822690922670202408818854963494103699186123219729629797172843253581540977227275437923602749028870153498955202264999844640857975901060365297181377731222393816183216021654556133603141157733775725047416395209438302356354491010556951623954307817600136507733720222990777132774183634848003526255215224083840344213906735589388499406291146945774056086775353247958358262851172099952223916187029818506896553236318908254846995922988114780698721396768939710800497294787286276669844790217700559500055587291240323461686001140601195116576524229575274738543294470804295282418995252159026280035409812006841480984189786962923769614840348402062651423227975885507604741765174751819875851345292595250505382943960097677649057281569377654916680274776001626619636318209897515106174054005623807863231435603770256593459394852744492528598251811025052286157814946583267884837244477757241596123793360954624063791446033491985038533863684998737460122674411952017873585758598856735373115320066314966371688991716464507765880132354234042062688767676914895529572747558729720532346751829342833609132643622874813203683254985969491126246349335149016637819514962435960657786591962711143876585349457638724793914815000192130498524563605596128332830179409278920483986509733504516107253369852125784568107992868162170298429687272554521834038281717189581564273720419087673712766671033753117341216745537516287488224955504374130346700986916282079852784918147993354034753893622795340092411047361910396467693783674505607915071139356951952819881910842428883078393813559717387346458841925212626774455082899391072453217266673225554933737246660321090782258021308289956390055985708411063099498687955618407541236022375005792988794028144534352739643831749905860250374588134854643263517976634743466613827506407872639362181789806929523065534507535214518466105672009992009105884596653637250629371895769286642940979669540981726802995935796957955793396444195345457472368621811995258978285415477614694788919926610336769168944857660571717918436155016734147285592511117812038850378299673293443883759553589598256880291101230557483660488403147509913837790159373900174992513351673470347790509331623926254658755492598242309673850793775091857478359578298960134628351288471229261313196911443901073883666421824322596425796539218517260374774743401985896254203453570457982977480841834226626689424390010015305345301903658812382368413202806207251029757762560840428446573174033581150205376645474204290687513328763317938918240699850320940987352968521930898161386337046573690225778327879709309958760289813849982872664585182804327044753500983885108912320404089703711328308257798519706123023379928383230029780187215123321358202050605238682963294834257770174662028932911448111120198125835829326638604879611846790658534359737894433502996002077107821660273986265975737612024866950988596336547643460898325480786598634433512307830209930852661521405787380039280915540347737839010541142039817061940231596108863569843912277849698909002085033326804879936156898657658888853144471998425364538610729983795441761733398759417566033438240004389477504777862848943278449967707492111010529800556504840497264778788522638574788874764436621794958798170830765360456923262746558592169782276805414014859034970951404722594670688698687729946505153293179511237263240743650190327881571150084885520814190973646171297963020961727013207639416198187329494547011762513883074712690929637985448303621565356202925642191034863827548590892989273036962808837355101433736646634810811127034230038392079633970788962610357096288698560855450859837023440879925679820036723312341189640520930059368532369219039680571520681774648588888449107306264225089236602181185127670661650638514235301483692623125061864303508405295417732341283496352680002247482887697717841362903003723188430090757215585264430050977937801161119524377775667749738674665483837761004608349519524871671129183388573708183170694080046714756058043715541447924955043562703958551696815326993194353869378923610964434351192289501820782145789087793698826660920682909303143890976463692190664076230176050941304924475655935660853639927749534499240983473646974126603770929959532520233245290453302605876757030350067577560420947018073896227741635203746017987242893990000964522002715801019688346480403196815398086431003013340948258969325552011057510644541168839013954743188476832669727106638753388370349412622385484575646343341232327199037066918351156602167392974523086568448366132254012735850195129105970830487245792567576542856852762875008153585042503217234593993147316218477049609552537026687609990646160484026158478038049752269035027695312021890621247715594642547664149028401587021034729181765860197002208444801462216578975128317489905410184137695372405541496644802892585069404038189316454995241179811852331635201658707810639630129588782363251909840564581417106192598318028065189532068024335410598518329644832167442294299050348975116969438672381607225904471652363286590181423301207126508094969724582011697150868644951396250262398072378484676833022626830309285818545565951523000403460463551829809240918574073564084222114176202082244902101161133423242654028313257050263544068792778332470638025517067425220838554223580217741496771294327976107409657291353770439343225522102873994993601398969833899458683004431688344270321227661545220777532198489530805387112000740774241912997890012720406112538617765636839978993783935164749333596130581727189810532043335166920515691332753843308708276879071097161626871488451347448433080092936546240432884048950375197611463158964511586954111872577804868028715218297510469512266061834534614032195207296701997226102774972646938032730579515791195130887196130748812793316841356283497869014828856164055170568918335791983458184869757856760847403235183134081292620758251270571919016656419942107746520271429164682107104425926920175408638612540527181149241961022147565370481188094443646239570955947965833932317350822643698441724750423658256897442665519910756618981642806712280183934289287906298097325292134545505394042214721194475161477539123407415694320422798517872448132553820835143509705364841344727303382193055836944452724687158135914208108349292031417206614313979242859731599513941063079507652391640180894980947129029825705216778514420406351938594697823430235849797268908278253531231603356778128642773869791702403943428102134554153125909390721297419011737427759323552177115827382349277452011202576091754441329333056418595344932928823615057704997854477718341126336754759832959612517193096339301755081426803502333037839896731759043184721553552686174985924516015142432723687605193255252738107620668719999253790473737939810552584203711632671996656740184499802019367249249555134389353196589601587835110381243793127592767980699595995753227825649439459201628364203313789614615841463133477080907147207754866210325884654785730617542106331526746442798053014386113292110271916678936320159265782801278340306292374281610675931655094307402449721066928371327474600050748111178653802116187360154236633794738726401684741873085725601351356507795850641521273766938057976553502826790257503361243747468402982128205654550667308552707226551338842337092657030473036195237240384913566684858284940516122515356758651918596102715518900832736025564615599132848604884719648779959989700724353686267481262617924245154560665178526828210552400976051341027731459184285164612234535105367983782753578678181243090871997489995040701668718903484166649238709972865010949030949692611989941818210742934633908170262594078923982952304956167241751766106807925799804646686312211777405632407482660380029064953700189693083576976053518662087026108785119226625243167341796133214720109851569037315812990638735434311877099929711610439961727151567985347107866785751249671542807957600031423060274456043567274664224105438051002948385504419833075373102102800139642815522727724347364725230188810749386713818574646740642499265325322626062808827819688827169760641785593022429322040227842172105151861193239610590353997499668361075844490892604702052156835018596432193070179342528311380491371598224907933193459132972049213186604922497144773956489236798822970526374121562497319182261251126952222636221459878632949542350076501619138203666172146806704260445070401705562922212867159180597272842148012170396130419989182661669387094519270739224237489214068552528433664111217154346057139451008292485147096963415126886366928657520146364465061543426664447629404633627135944512298424967675058024111020682931347790636339448697603866229396673555821072870704422712901091618062500956255311140236322290594013520361531519115394515327478632419336223543001041432240870929321869538146732039973778264964891819704862106837694226912787694634034403160783112756349410150567563224588357208421749237500593447902650530496606086776781129709630377853624260612384406097691643850876831917153676261845203886235138559810944491160468194613066020448640188135847564113227134489818032429102030050041959858745999272127240421062993746724133919850104750881668360656724059385500479081317390812490147331738057337597289078101725252484831124781800278165673305454057610944943268746309618318365724619087364584551695945785280994077149511614992957551990042533033177767102336019484258076693199458700512289374489329228030654412501979251730398729007288663612545388924518701722429469105935835354857223059184706053681503126326065045441171911028986926304869845235336876313214314927767092621381683225518893925480924360744686847181978542333329277326309965423810193065158777865722887146624411931704213413469531130810985632646831605491350759065202058787489472251237485456986072809576676301192674318554869016056557208640540078905968289204912236530563989390557635970554571286756109953022840752075906780681397996669451262786612592593413624803018376286234958844286021538473112203408149025044626555762486683625949789479832048398039917030726098985497170550162717918244179966373228345830024807645129940119005104884466230602320710064154388449032409145135747688921414226919838854569783392980434378566903279471207264893985501981775342703129179518656824953538748818190948601137867210965114702247449859342528974691905260143916310493102301234568421295418431254196483809237091543310948843170732528385201155748168849884485747487002947645223501658346348234700630606395843165811955745205693363937301269134574373119119985518821872099480771670501289202647446205347156773804030311120017311662577177474332959903982746565281050304174360297503973805599055063718223749758629645900411194234378656066025016792302067452511475805802864923733770231609226220912482743366194321082012864754912572610882432046530373724409969013016403923842319396234557942772310746500255923748327033387663937023590949692338591172790228222955376027884580493479514258121154288493926190040487379075156461631005188788917200381126247462131522600934131631802158460837085193321943353135789043222594698666909115579041704953091801558140142319409110152678594077233635608859188342008564008471153301665147032428608919199576334942414185796508581095622088452336805657605656026748674816673905158562988011179890361308405553759463045224276059919656242594443029443236461442263806391596391156256077543604116138959843253989382223761333453865268422757265078836689612019899560702250451366749777207671507735144834604780606263594496286155934229272332132910615706390231234639305445002952832704610385100360457537088649876864720438753829376358453913502109964989385563608466975906324853056843050000274726214791232178383245310811650133932510305951001157721022074802752079511579441937723865110321084852669646567258099304192874354835983307391803090417005459247194424185688559613787873458116558369911967508825308620361227913219210634653739749225643187180666864079065786465524543834942337224053515589177784706447392747035793000804559500156013211403093185051472069690685034165073420943952237564985951879602000819802238484521474803667460682690572521032215448677308756451914457326755205653011136611228148946607243905974434822554020188305961861144788688603154047053297462226726419477215921808142613627533907418791271460805316001005311412132655072850941856477541889849496436567746281934307506099678616043714302566484729573324403707742320460869290878089911198353890428183118460944500933729640995850593409811582435353050155920871510132713873122609259021477522442472458514686398325365095453023157073230032443812238299918601351325351506498767973955847756030934831495867252160432871929643121968760300056088341418485181512140587823800023930385588887374560517631410772643899616542722066691593873525408524869663803427523919388988288215204918299971922880813157056055063522927759202403433973790649656417299145057107671249142471047720867495878011402969981889469832189824746288673618832950854852899616332147785162573347199019046959943629536641870812315607369232380390382138803943975247078584190247513815949385931762987646690969965784673983500161510447194510276561892201096563217611545374074040719096799267340645041359290798262839883611761609648316378766966640814117512375855409863461497800509609208627477006521168806306068113255233575128797526246141781431515948037631405646165979208193339450777038541271208236077625153401155242174319582019517735111035346764520542705891721392426445808400085700717534071478071658305807346558101357048561257085994041582076684527526986621925877049856062195610406014375051951905277647619641239055159446179027670881005750632368533288877531960711831097695788316482444221334043524352837450283241148054661537750355432271645529408082275823470851260975662783657965342337727047029581677614851136581602804395700040822482349671055549625391614850710610245395525034683697550186630140894849699637274079131018656265905154784074463667805646747239600525553509377649963116377331262927925016616536882700848900826143053695436475757132617308591056276225723955807533865891451229486453350650936210090831671245171585933684991250746376486883753162658466224181969690466994734121145241136211040834008413967296867662437537513864500177182545651999685798907418836434227845563955924415575003744794833781035279519665318690717536246192935311406838899789439284318273620611731814803769373246141927783804497778933327685464974897512016792011245115381475878959670603872295055599552343363324792680241290485084495643534647632728885404411374498306346255102793942427568793818954470649574954194589239998730831218708997924558641918868989878272299559169462909844417567138194347919968230793784452111649431377342005048907183285745525744387412420221694026849132313098921717794822694750794215247953621739188703623848878509547447870775365894285214638616363983763097413840251911019767574991867231826156608012768815464926604346811747905726978971747944850567586501341560264155442966942047827496134439433515622458726185637537304531148107558045476792315476472006811218959032052450394083884956236417283395462895244286965810021819822149514004916868990024864158164413981239828279217824680917892214876417729239279253403236803302469732668120498015015843164562576893039351129079921970245905116250639903194332365983090672080407699243539265371301558757848571962511498509247516791030564562856095133037307391759937005635734631169136160477917419279127052259130654571132434565289501912840664379397902948239707129483434329690806607405450938857068058249030299487342240093779027281611706193712485990786901152501414445316918429259398288982298211265266833170466433817441973572951613421162464550479524242261799480948920831699541013174091185059484905833477533780763893034044476392152846767338001137923056272477102641866954591367738684676088977092698468246905720307090263281747831634190176552530085391605400431831671955456250069873158417471104470789167830883639515768099101927508092631192920412579801363668910686541161613437224449762996829313754207699466258638953563690822148427461602263588954127725770556730017250034480042957975368654683574075272395857568736646288495533452019386895358289873774940095526218168993643850591153387045393711344531505215997749475905279033582597315820341691948882884181935044213862376162928878959204896556168374932451538625781917293876714600754079321490961717034850139058874756208355896278305529753025109522264165025144379493149091401568543470740569350447547816919758852081674099358297280104232090960153659534749784223088603985317142067619100469930481934578102746990519194784865911466846570117489137612987098227162133148692338042023358813821602201911016607512293059288183851538341141489780712480054748875505195161530214168448474638194844011328043348605321513465656004446328037513590889749169476031468919442675203540135466603582385707518465630313383603442375215348423737829944998102929286848467843485342530351610336715333478431012629292318040779090305403665403110603628987377906143192474578519872730755494881527039722316024486275938044571223869356534434115051461376413306620397662614614150972828490396480242382526827591066445238279447132534738976184546849781946288833185154800125330975815181102610467621022282981747492320968351791300735139879888952413108280603820848671616340571162599132165334202301980213275686606329479094244842407900576949285976119852265484597594990681222090117684938797172677506922417983630867245938535652270131328265504330388450295618031261518398803809314056695974854043074653542071284833365056672769212934653611905172005631621911648807783019705005587723755236014467519193242299793189002458040974015905387005943108298462049086798633911773173589672236270486196442777392032858121275831439637874417655483945500481401783027263612536378540928923475827212962325329919626469374515413820478024072456674282158900907511872501810007108178368026506174170970418046999157689624993734750748380055753731547311798984827606548348896996412614171720231180337627760209685409757268052263104164886434600284567752073326690973497095626789292580536905595071943740972869690373314203796952090913065435937665056849614624439963090281539006196243901718340390292764877514552433916140210255812678533640079926189181786675091379209170276936076950788182033314420195447286847475208007238406950336929321160753049860776925112140246089308322939792863745709238892469275182468334433271802175908654807758939463937431952694166347148364135317008190505408571727692408173893645213599855341741764251320112161119862578859095355174127971594669855044729872119917433962224523017276920556857454233869202401052365007221198176191706599605410911284843526918087757651563516305100305123894280456119478523517749520656185814218849718539360438354476994798475910597523799265594236274691237076003241957957751215698536280757818875978651198247937722743500147092507132898210462399172421224658653153877106134354475922047619611234218167371565985209030159894810759442710234748097031256784509426299825278606094439035649523863868188246546960099244331870737492945707925177880001546296027368575652011474940689488469235091774009934739078138750442671521305783285575892655928153947014574891562014441813901056403848348683342427680657495258934121690956912121924558672954649251510148180829189896511488824481970900427760790242387492946291621803374414483976923094485465589675212731543805654139771611506958394586947273111467453304594094583089785482070444838510197326454232196776790429897484474930276146144319212608825514008563750159975816167620787531440997880969314784150097234326828608791772970027886576190304538513388166330846339767477215609279465599046842385798948477441432053198801513113275941139171074841512012754653536162391155411908739991915346013011012806684949687529267125700336404135912321594738186824611883798039281348416565480595108008988815797013879982330675609863979758973911280474027801631105301255203731202338899240410796941440031175643940226549971184144256810654159359648090177185287689172130980651162225791563982459743581198916272158424456492865387415972224017215877682579715533632427894573799343472671149091761567647746398502612383666896385814806685947203256073405077945485940920651487390783158601479553606193899863313913331016790122430858108186522280439519977805033178954566292938999221451822232093732341462392915048550931571002209446768029941416561366032284863575552272213382584644634198943735377455357247707450553792709848095624761162232421030787656691217676644154077656594202266759878460189556775059407509605482017952201163230468471299146367855013042341547081050054491317326900896423795379165379023130480316726486819718647878121277649725608361819082598657876023165876843026455863036482990133496786631619082868547628557386037213627756123021787390194057725230650133966380028195732323748526073203464860403075304270998611498302266153026569889361840702460219009137105183865173818597895513310342059712371460124232913696898237378183667529624892674904942154986419504348896398695246399582768469750501709109367744109874013077495666787996658043760179030608245838829418134515203000349121600748010128895517776533485582163540514040143460584600293311021584021534357359715969227903789656923038898845330034545073456984701205390891728946022620982827296768317971674636753676389877254548119147663707432195132425550286834660623756551455004673554685981875847153005656057583893167609951835178507102028004956266961426866175796696920404438695067615296541926530094850525418221020675788718012101281535496114968554047336241838912610909530119999208894793394556649382256810918098100819733585767211840853617018991828748230061411436992024584680985755499030940516053044363434073993771729543167395840589564788888277911274122738750542420146560908910724090092820660055561696489126812351082877041038110185287655498642831061165588644170049507335615997793083346037486218955356316323323632686876808151887258667223376590314306940751585980149816608078593376050068030097604031795258791377179101108416360127914129720415458198203707398045832509401097766499378851321040457171955106022873861699932766593526212482120443650699600135646563809100136804583263056912659329869430582960295609558018745248638452764303121282798213084573938877421608680831276032527947463250679228852034875206734417104552346900271254585436469422412652993136698188699737018163016591817219350553347873139315592907041046824395648012191778137978160884523355366713119625003788818688738301103975296108588812472755971734434837418909986330132051604818246975601597603269786008453749490034463694178911227122320190981132607884047201453042393996539636708847747365129059778727725215753802278879782179923829069543267840210391604348145679492697251969662632417093101539676832027940326334554013450461270350361523234432075524750758002930920329303297307075411203860934340719170274167821151211171770341604745121016260261542521802722897549150289254437830982102632686771073725537693069244941912091012043974421378656700477332697557656600015219885780383983412665286507225690382235116938024291995934163048035486901370317581132302259231814398315637621941967038450731403546664139126283925612387135516355374531426286992690534993148332300237021039944084868727001030376584222010490604584697724904023033637987265553330625531350685883407034155295715024335010174235311471232876401605384738152067984563681243847591892281396631642516154639292220908385064593523272375089153536409476734975732683971375001371928061945532641884004376962272799925645936677412509501211368511136580335366337421396923330410192532889426716075968607885561363361139043569907034403385581012517150823141586623256589073929408667618251952302477941589564635229495828621136365548276240306933566158330468745030602101039176840277803626238578280620942162337223277160970951391545380128953038038616483285555788109877434516530095950076666772275718818736031257751739861863782656201176862569005332994946326735306399806044029527070198960840795326630356354726088232237141799825430714630200536112403744148962149313614330740231575384362313821507626800262181636455645211697210063877482519206232188555289977744753988401713675421632157005953058705405650554062563540732797649341336730136369982715834523424069505204763126762166013539119450907307708190550560586032185910132197810028284142539392401256801281998758035111501343813893652694284431203258443580865926543700745328176107997044508306591796339764401836792261055283395173482555287656149087031731252947354199393270738494850702291084381551645713052455223694282760893182777739543757451525657911264294439121363860821924644108776641909088265894706288331611278020476634002123467254863545897823565987339577966641403711454178000640619273061185877909097204295304153088978294841335516527727464752917335176760511533121568847508867542166788054384287417293824515071965816234292492641050340218293305011094971627336332857527229808016951987085414723786690220254691766467372154453673718316984355781943844162734335578492662581129158238207401887917261091092289901528966294958605917288387609382217148599543284024735758358031698172964150622028105180376546497184238646569353689263404825664827493308009689693359611600928095753929571420575252183145790760563038595727603417635150157912170939195016022510183638167149075022782629662453640238011430036010411349920330816998656714351274595237167800067718471638511757826582220687963591182617563539741574371702502549655540860131953310385708954700496738281575759718955413758916881200814870484361208216644160797718572770060747008538908378191886270116054973085351586633345543332217313368764732136906908219913538564049193909956785287107846997491780407520068524734516568432266752700993773993603947514260122812038446999488678060208449901876942873623009654100824691844606290534319777069465895108910141741913333639459743150614317421515718477652721825243206365103307971585481849427973217036576106567221787519246233615981229308779886697980233736512907381238640230986312116913743777765397076744861803897883494734179135190199340932942312194238339969186625704587146407411664499999449401508622287342190067612146429376120032935248603475243271200783543136371073571666970621770483583338286667447593518869608947342571389452978950166434059142196521406425546689513974232748674360931556622268744764029510468182424103020989750714916146502308514541265198600498779911639678940113905094167771278551086702173212656167311807156154062829456077065441009932474490807096934155587871882771166332995271833771763816006833501565368434661616901724743833273780753112224348677630346960215727135536139508944700802615489815792354134749923694657690213152003149023720377629626936794868022515262702160707599274674931040576481086272681956450998605976700845878842028830604060014002807947792357561959841282592546308540402072982657097042660575499248509358157161463792757761191811076037444064518638695700820899825867904324860270475528581698491752636134127520494461991705536996361789662100266049708991706449570666591170384205552963945407631039038413753958473250582752200908549314940526947317115723691830342741520753297027534908855917406266424395817767006873501865427242519680795226254917887415544666741073119023914209251279898824281515530006710896359984623899342602961196096704438193511883408323053550606523725807605751233435581374586388770073385635996223723198979580600496173679273500563537526185561160381245393149258941347661612930956605160506524166192722404101474364092004653000389699969096120536638821617982133563707107644700559497299102412673322904352063667595410981291564269922726000223520438293790597332291686487646730785876775501835085929446207652979387346237382226182610484274168989722748099428012708797107341903262005916649241321515687777164076663779571868919695931621818132430095720726770707840943148698278041707597639182829190296732430762041611874308991982993484342492249355225581225490131223568075695374585691425818223846553057459072628706220425367318429834006120402939910269331076159730628887111472254551566178424792672293589616632695966408618929973281463457157914110141616299407097405469977786664923298580101235002255261409646095058798958896631309631301472714009880016174376908549126999853076567598487526714700992957201789470453970985811766553681667828142814120424031735342353518287776702008151511395191993633507337929436500511096914627183472858331174897069751750711428822989088545971754857764454716930674119490577885620601481987799751680247230780483206819225577658830588273217369660093777489011246310781503036897344488471548701633046662817321103283087771424291098730787880793958888088159840633275491937830773832691622844136865924199685989719816334782809766457932884132050221071279332738924938209415255259673012437476627942819720672263567115218268230865971076238521046180931018455505994499726771534009356626306592895498999338402397079629296928496995640191917051408150367328953444543382687600355341709606394951403538338251673700515456082286895130905070385012895130750821539337588478223808084973211298402544202662295118919464421853879577286085658003825691362540798615960377781671243549797710834444060852793903239046433538199365448891496616387891752854629815198065729331878235560624962068611693032107106394840342630419751535541270971165555325190802788329599435013109981685129814110255856761837682908311514611067184722719070649541008491608835223104752993925732206451461221667905626450756340097198792663277253883096867035824632903151388772737129615980199749916265039148537680544968815079847400456291344469804256419517459443442700770636879495633238138939389025928825411863260537188191189337984547528362104005271403545075193579251552119596137929994206588627648195200947226941162568674825793669506650493100871013803820920469951535301441156945958456424957977345885891440870274668484316137473239897701673192973532103276361674035689763729428540898003839432523172166868366403223774062907715637783580569255109911345056546477277269618811616111741868954443494676044584482007093533627229231841822320597250049581183216365108206900094489033707537852286518720935063262218951664930691683308581734016979995018629482587014365130720391468873333650375097981302157349135023962463390988180595476460579767428373906781014763143223452006956816034914654973091436317443945578960269698149742033948467017382369059691911682228630625359557404421480509851803030048907057812836065328648042344953843540503170043319941047945250734074265321074806561431464100457410501439110937795024480363611089994730966132592688573511199444398253958007126992741195876301702390224698111395917698323716018876018509337977217411921860329983129920504760491969540916746040084355365694592600482666404752776122123094376476930342857519863640174658689145412920636003423309244486790374147081265592175433977428183194138115456764124905635534756691178588041500231465750148347068765856808333131318590161225903282291403079261838370012799464255758731474340821574021538480556520290028056676123365882256435178896241580446482294327126500719954200120482443180165623836082775725452592031594539649776829250534996222133628870102902056246747115488649891826987520713979215320198725954094754325650348862428638184428035063853270179136783297089499941753605208652427719021162242516005792219689927859503540762296502220490335722762219779443902492308917932295168559447578471156018002032180392021204083580484891367858724129343454344371641015419015357881394426780434450808359616008222777479697609621019118966519725617138727472282535992066085038623649437331525683852801824436190849142507415701325284100498201562544386438741046822256825950739901730136131081614555970155929844308337369617368586730612551185655953738187097285446407172462337272315514870849672020746187560426831141128302119079042424909183401216690767611819230565997231283563734549999852584274447308735130222528509521391579145794952902455238938107878131657703835874831540125745828374173573503123923371967927212102707532622029748013306991609761441292653999133493341211625430777922437252761633886024904850808724205378687130311494350952903222199382810284907685891547878568144274224751012088988496736431543783144471055009075491225489077896365700768794493761631192551024462027415824563543259842369939653552632210619901492272268511887617009617044408747673315064847368969564882952989233122927073259949922625190457455942832387628170527823627083319460931383834999711501661245900436630424402210998086226406377672156960542144359252191712285220394114626519500439283099635764018502750697501458734825146272273780355987260221710566736869612757193302948395941907847015059433679044659602727572748474594446527570912637422841007287403063747158441208271577238808734578820287370883217119347609654055764627193176773040599609152685495940939125064933158260369404720822925661130751041748892406510884187621904384655993167404484354956274747087643548293423015177608511452617449683986338628018819323927280384301172803758552475661741498564468943862542608195272140114148806465075818435062305548359654110294905094407442979724625024535208718943911497249303943529604245690531082046224911418559275576023596240767624835129335674672872831157613777444317992348570444296953695634263013635782273751855662946299916284739519137761101021612763089176547945206097662374388797827610628756034717638764037198784264905987159103744943115955366207465843781365833245477332333966506089857835868352233421025720968338085361008356695673788448748535616298172428952466683860455656910173649608072245928318269358760236582376519953797807634208392405542964717830894358876420412438727422183481818916512003430962786955401791713450551885520887692361813409445680790759707199669721531749275136498149376753788262490685449954266335910024949209964162193013076286242187167367852549008972269799914859374645608289105295701946528933259319281925341155522842936623239024041950797179185877388287718137061002638267430563494330812810128553562054823312677544512147465487429541171658945816859126907226032526569409094799723876350752409988324899197234880228142079725147940330980798993247077075044934880193890977869349233484574971148706400537289133576385522918432244849018313361854463075905964203849912992404859457412786150764750944009989678858425628682416132488842902658087694946058225299007140197773947484230987113396339605013257236182990729850063725777503983177100348219204729822887067351409866513739703208779175068991703591430310362977008344714525639723134903031222686816978857407125898609161824389379225820012117284655278713410023018376857216468384701866795120275808128396670166662700424941007396421118051055373481897985351168870463197576648520109978244840291447593861257202030726316473053306071143468118688396761509085946912850852641855557026191743821960592064637038104000365451678927351972746517117273251390913415233426528904450589309069327238311522464552498973743750021362728405791944877450433546884010623881040820528025675977236338128390740395180454427341752104353643910615251545928840255880562636426841296521129005599724684392620218859118579478041529254034870502484316816973187560815882749401016627153625245914989284503278487536641876003410078576576278857538563984144236485163279873867746495508408998444952312164571073556338837275488857902348194046769839017747154359459425270912379197491497182695083579280993409230814724182411166619818782446537045029641285003985920613040491863289502604154490642834703255195663357364606191451076271108176535293929016786320924707045637970068037917942478528407385550531251885136241501460251978679866745657212740393472598680493223213138982034175482653516587392574091535116137827603247842009033665079037460772449141222412366899831677736018145730212990398481563744578699023335160556360160274363520498584881160747304452247563874673845566484988888529730422637254546821755892784843155201644318685551099958948014802363445225298022307564279208326743918801425910161349481077761985085401481004598834435168751448933265326931347225800178785793341131089542960367655330753468201527992962221646839560398749437866567959608919404021427129003411281525560630715238412770007742779284848774724244849459892855546467470631670052609881592895702827631379074689156202299018053492576546953145080323346554617237166236712989337638573288808007668727375777152617626263186507963290029003559668446868922329408161105390106481943064817518048794577943129397798103490751338087060948953458629935941615658959025849963469815150415464528656345267977566587304950938638797230763202960146279812143814628139699158460652684823212442085411166782908925420544158113446022178047208442931146222175801986946002234998592555869297154290271006855718607229227436218001553101490382548783130545855206770766582140287377189387810200229040617826480744367571424802462985591517609892257301997365941677446222970806877155319196147944443046113970288923128973669540118654726288094059482587837377406095520182991833195041717249821206509388494364901521128952788040166321445246674037789641724655796135681589103908571750719773471802251880260622671703429154678039689192007211127822153048842903667530495287117902847564065470219525235243358855026325246569292009888304143446977262498739084710304309080572969923659908729547949437646518730433899793770746746249605330849719667606601933149079941392623915656070970449543728968000026173681950520372918567156131730722371685146798100079314063522112465229343178590664191355466390312569345766657707498350946527183128204983566519218384347965984149902986389313262313183216554156953593820893735961248217248940464855618515007677649368287958363460661017236296814406313026126443011462571240971380592745173213071744470911123347902189536626086462308895841362945282206313884702654837486646783008124015696338201940577710527699382875269734856708065482381730437524295221278685117713569633617691263871382999254936304122786638138662837943023201311747648147577479571454805007063509661740152125068445678296205242127234011307616555717080475613155857418928917114406796942632892682493465615691098404059381506730323295990955469238895070024575966853030260204651750893484579471657924022793742014739950507153078348516946445554127270311066473391421438580779358534426934398991951682910948957642053557691964963832992229890527760593596204088961544396658366431041640959990368112604381853926522063392211643655452792168758062527821968217336959833968502057701869126634362374936147546921126747445675204002609372371129464332396169623683192523758201337492602444719705052507804796931476246732414284719524125946402912446833553386832142165532397017305982568012369019921548627137377571566284807406403611228866430285578746771415237322054094706287769927813821232813786321841072165552645237513792441205276742517460148054157838943631270525412855609148892114098601930470661241318123473276132906614553200820019579127429265334635626914217713601490554895062110364957864120171504650165086871883028554383198342257778718289758600829105448799012572846576030878068145040420484156315987737161590786185671623266316625254091564229399985387353638710840193855731578913118226265343074091377892376883025920342758805509910814709988154038953145805421199205961698053420672052759672366588518053658201408515327701488596579147162973285608820788937920842356862331648368895117224166014895121134388736640052715545227142026242774558535221805521579779324572008286397713895174759667252617825723599193771249277646789108769109958689164052555983613442532821892639072301211657794688357730047117584579653075965201378916564092162729881922803607976328602288143487780567808871085280436768259201913399254944265961656472663591761594251177974549343589429565240406485525575628401028350993978706517872658193498437274677856824774536177656108925831266516284490474205404034931383203841090216248530865729643822734981221738789714683936846081023347687853384230649122580840843995065680153449097807507637117112592228940764783100479979672986649100824412491076461278855989382400288410728640999346399400034758831654541634116962080426418975057889976670879342725322164856030800919005222827937084123392066485814944945151153981108946863197768487082959315264189436672462155111421007168307574562938383300855887936047277290212524129336494050321530659341644293814612164358143026022482675846838629023636026697597904417756936917812094404117153549649196543729302274254712037985907189750150096273867287811195919281810742883241924292719513062472133761675511772945689537141516808070882224790033682687309255684381281678219805695747487020360267005346982454063109708881734770951051953822911285699268750059115756031246815853207984570065592134990685476630599883864720894335998954739452645333627051464645539248457382474330243029039038801414234814135300883264451265002081954236850167565450854541039229038747351967771714366611029568374430720666813525227129006510044595612869202064419331508112865353032172258159288930467563500476379912372477389748419370272971530583523067379311330529571383275398591436371304672568594217619585357061793287706302349658365150672429985917497431668203635817621268430543757410149472353634453369477593415771755065105057211386675895556736329190321182240421201774486061757698910467715051119948240684183004582475578604445026056009001893018315761733963723604866267637850265404257951167159858409938619118897619169582017059442735199588837191818289334839038557791263327531407187069192557132078756793592395224408984762044348282122182593051389687899228217633880782129141350555448436245398732249191542712332607672531249242739284065898741403975813210350781199078324789742265115455315899172333644227505168259356938836012582619044303610257854768081637120087413979926586025233770310266253072010510441934846266546894266591742179009662652063389463653353245871143952916582981662318654249977960361972541539313705555710360523544580501050622534641925531889402744687055410747700454123315259506701585752487591172251718861606116093607772639767335613567457138632140376947072445042457324233993593618640369226492168557185735870189337524510658941615183649251140662647575721939682332332664185540963676053391001484893047580912353972763769138052356116573351857076157111737460901763185870284168341093566333971734786793771699159955939770801414921043036449125504510828971296961553060403487586990013309500811442125016287174588587278576012048863527960779142589277536225787256555363703865456109290644911008140798270631207117061753904565236754526009444959424301354133890590688987115455000307956508861589458329110468769205909331568989396224183873441741553468734014904963499423588728528681108185356545331870599054953300275107858895468389169389587416029677431650995014593081948554751151955704041363626526572362963538095485648618661390903189779525454844862402879255966965833312640348590543227983349724241806063960470391827871577177838575737729206689168545055372346215975290692816241331925613208962255338821210830437626453787374658794204538916774306609288813661149802432703134380253805070104587236524473922721755408003141925764263325814817934821596858349290794237611441898142875654231248447931241343028142338680934097300985458098728740135399346081822182157142698419151046218880276312709090398559734440089549650702004875014342820308586642971185468777400833912172692217084327963038929256786363742013532497015151802124213473013993487399559192919341415018126628636986989127825114317492857421515867430447401012482667631742679928211733326873843267747827825390454892699389242058034066128301645264041887249017041405842327513979099239937806265273186879028037217897965036135760602962657332291474944055400994725410665528973503390132962821031223551172163307726656523002635301561559042939207890633329344382935314169294639853142065749472864249559677293774081674787707051885454080409019074031148136814743336469995851251210651670670811351186363241385015758135317288107754495957292790167382090288205553534334198075356613012301018934356438881123398289672279680124986070974498807216234351591746020892522637865720372782651721835155043450471233215558553674772504306946166807793845068599659048796455552250226319921292260735242293946233206579785052225831807694778952967791106524063762354459017960211256991937375674057159440782421148730695478389542559968896279666157340349047875757068532428962423511993549192855948945924940129217857781637202810486924362894861119044444141679153197027720734030678137770870157842141398885369219829839582659499140848418127694506543234357045075232934539117576442806678469574566261793588231719098660417846051346419914812720372194765456374350530724331195813463379497623311147307425066818280744166695166780639005524071884298406851984571397563245665292488854235493019085050406489790144453497938459525330227673385922117984720784569902070379083676369885778394648133420459264146162383878845754647543082775892873676732194274497099677147568041090483805534964234346666516659798952542882788418538149520419442293782127606220320444602705573111609491491233589731399322793794056992621524387410821609404955226310397948631017018554043967277405819449014031890261120859137258387950430982303280328121521122803042764072959046164504870220817153564658560364686781978287868557002311257530822353074122466494455621757329520290325987038010312499281849906966575916042629056587523259975822358418294323988980420196254141918018964446814533240817571883980885945843892888250248799878619606838299931509598010982829369072793834634238092359268534455296559499759551685789442874464272541723978061415648051821267037679223695215715949826769689561257953229693126253177526373925934106421486893541355313331712593915305944783940798649094587288523402543011134504463350040280418217065191304166253554296564483274543247204401363208265757268022268059262583765696825483396200874988905168052767754626562788125589895607934816567908206367297672679652380834988749930054943020266435811846284469916884553520757761697504089714490956806207715384661913713262356089165230095495323205689179836619399549658766232034960971686573624014770822061328930395049153703163200370389711266278719106238791156287636678028520839393787643754667437750586760352916509067314694493313086809310676202740220908364044364120021012505827855981249899620182552886346767420558636627079978755523349480430681505042091601813298691137620109047972395565643466671137164460709900252334812528765422943255342651338136495474351661980618635755710431840330413821819992764852719055594728659323323304781261093292312483047838196272368437016138612786955553230019975735855420871768099032644556429221252561561163280656268215873497973255285852673011314803320470177139614868605815281309121730535802223305774503340525033096167921987893101982129867530796712361600353712328965680926694118801071291982700993563857206573829572954342932678411618845584064113507715263710667182005285556563927133038919306720570774503616591838500216756984360097349319548736151360638326734498513200733119547640136593914494986890449930245781446101457429946490615871726641071185297753476834278461757212563039739344758770989142126143636150628477405402062782442937975939686138540796192849467505163151831754714808030571095288873583300259530682553040912661479570020158247041851705186830804463429554706981379271838391410687027131573232328289453694527845425376329685390270831095605335432136876711198088917047399298396168763359810060842378354090958429590409791615609287261523464330711690981437681416049998092616340500231494280901101715906823273334506950531115546034994543727777522083108498456291565115623432478180817240316428335244962633241796894383823786809043150473258677558874316397479448038283654818586746643958985511001343678659485414118875901874577047021911715053242003795796670870113608997253008718183634020632986247152270037625216079346491592783018386487821569212021266385556200148493153241690881548365865177027088680715291038261534380428914232665537651728149463133090147696852339070860100480576891653541904960505957612999056853472231214544728753384839569275456172636941055655838715786992077062493883949657760609010110257652573601250210169988216056424645090568867091993730181947912895984468200640158700760268863451983707039483991625012135836912820145187112137383637593202263560870824563788990750109973536609968739420493399030419485243375641306239653223795073042376211953362894269350503044541940662508336684335598096886357813226956263788990504683754165825780741036454814536477377469026246982608259518670109430056079915487916050882854825649855059249229981387098453365300000592380701745673279292785921184296190783430109719839267594680808833403823882999999748414691408117180256209062618273876431565959688467941995025319633235865865923506963467655949314896777424405948947002501983931507214356312802393714165020874843135398483470585382530674567652664640949941820294604001785954559378840656683065949396601348136911726445153688798673725550898611216294011789040566941262409731689731555021127020357369364832023475569323792796114807533877189227942381123219486322361339929786884540371803483839644891465347583237890678913444902797640502912224026322126837076692814048035643880423462156584255299570917175277340003666915978488114168146910017663910206220995527364757703510879583883491209879918518788567084821443803110213841104352070373769739047206387056873881811899056975741691087389709317560437239626181242178342706131262754685583181390351053517386395458847597672035577563692083579206079303086943976593168948251092961331309748386899215584621197071527196872071824100279430691270545564183174280653591833387957075438750183819130104028379209703478401841874287401310568227760769287980584074701116000835787752670288303050446472735639226755827555267202378183029730873394401012202344312536291281237019285093230255468479708276999967416494557845120121438253538839850809139921327742008451504521181415665095292347837198790161281212573051578362436393041556028068303039955623103101614088575513538999899716261719357810491160104795737278387394557347920745525316386244177776517895668643937746567915286330792749318549935169479458558758966071005267384886084510648760930465369546634862865128787852508591098502777660743952748423161052173627948630033604762715228258041754923424976596439401394789916182355760124004412578265564789516724731914719824462846764604352852238414602913677411314831067964695592519418258855341293781531441921951850255915468400636247666702997557683335860240411116206993138128647181337217615659700718005060419079777796160570947841745516630877188537741611738885022423809245095556488120339412826007939073074349762766779309618689451718087278488785043186357340984203224339901003124631683634620426056138183608138205537922495251797899226499928330495853716974271509926326315770200461617351653093019625296290717595871385572497570427385828851426808746678047525797354465242884732447652457072568865700864059585543971430722913324309785959732853842887423767880598652896506156987065537606284813530667875387850424313707782182662037793033568066260935061162531826748975008364025576788983428714967713676811677725386692342605778116345318734247963364936844949277232011962803037189290788228791852628244632389511167763155462118037579714117015381437805371879753108245622389124678499514495225133478493290903909742978924138821293970513263070658981577681667124774836771122430275813935492607735804076110031978487943670751965985313450836919670679324281100819132706574866941767210450246914788507492615427375076092581344374037336378786830035328123087252362040238768192592097295039943680880740722101641722142535612383423594744884533240426052155681609156494116896138953527819674387106269123947611358591370358989041947599892805381818759561240137493393984682422350788773529854928433808300625278688907114923895539204366291953278838107089813843819411314458581014048460832463263488961125995954265527613920176339722153041224581542129674199013290420438074453037488302335534687537677489856048568374269431518336085584924857930592712792560972511826684219150565394295720952733265027809613585192022296833050215203745175640807226031708444259189214366608078843893890399680933242076582543027318414166784449901780307189132531097760800045608136966119911518623927372525987482037241993846290757769608700828253622544611938811633601463407863548567882869252475437645679288829233720290822667754233819195350285034586267403291416406639656980044811227292905510484975292179333437487867923207732089582757078559173913327298274312878392660313803477887134495653512281842659555215839143841919449171892789451738843997136142379791750003644388664729746308586870826685708743745256944479351889821931629954773469282775635987855986940107248410559090273062026726328153883895255031899435886926253278328272349405606967937959785929923839368229216900015185895548842447667756765182047337858040375940022837767611683565216908093556868463926644234224352806849541767568264872802219671380745352067505853530862952967657420736787729021307440586312279815454930605797685112829888835654220696698110914882369285498234277346870370724283684194253280347206424695898428955665557141071794154579660961161623941546897748648706664364677881789184063282265557860779210648678932971496132966390874862402268198126613446780207031895936827069808977500749629007428101967321813214007225960847441893653583272261916962201976899809361402122489265973551547551362784008137641964123567098404095494977525183969102891447098709378996769302446216802297649251256775940521982208839409052173994286139862481253203759243596924725717424965147851199726682246966770262020433216389969113234178734017803476375183406334209894959977973246663839908997972702473559989447223323964724903572961314912826280671673072817343609514835320233982903307878570807974900000724990300061056590388859132002309635920925582343332222928934559332004468099059104575451008167550953611514898190390646211011436700985039449871249717067663885857866817928299137697798370698451256027031502896606881723035811657716039189067335987496698751641068979100001640954159938869881560507987215111423262486458668899464007120156152168615111759213927732787089963814123020098046688898314712208965984731924557309119578305227293133244155610023381508913122493464470837428807922086152222286210634928826307348248092160208004083596213612232731541399970979113308072084897681596326455042737155599977901367593104438833382085254295808739452767324504628597619610298798497666528796066826273143617489632328815516391348946780780951308019745283295004353823856432084307739599313712259847780432966722679646307019616570545780518081686464243604949949692362236924007809067025232078056774853738153937370847919289046820312724811484706430596227264026054912589991621240521574939700172368579664233385367098284895107497074859097435490777206968701290025654267735918104477623920482979633220779563529663027543197987464848701764869179322047783102772926247514322960611791458227930525253368508029931569168778895750914158081445710051392945493487957852964262375675336455228457964213075446407691821387450313495802206418284042460934649242555387363847968403944923498692184645917985751659033702843932312694153031171248961694863220879758075756390974488986328356381919091647754774418094400547284895464674799889609543761891581583129807178275047952722111815995405618081546557118877350063560474437645207337718484261610710355221308108421984888949995711901893202627659672742277179759029344745004155906589203777703280517912874762880817934673878756986820344378302894533196093785399638521445306716637239906147573469076002261108822278679136931070656860178542306955586178611409172621176626706377773737264744643802807667814159371280705411192659447433743178238497276164855198020010262094223021084718548465525588034458083263625316070404870294844297659518824334714694170986514066527749566582603178891523196403706855811382369176930846138351170262706244034737183633056880126785294955200761832602146838683854303851179742092934988799572034585482294396958867752028489534244554874927355023131921774655258050671831172846463674487821805988737016440390881000488640301990068481188579203885885785414721750783581885485971302427655121905503393427383559114935920729645785384212936569093555402426526278785436790454228248260976409223791517275248308864820717931205154556010458829809843910438256382034808254226946757600281165382732032354562143769667438769300706142755660954617231591331889819539627043771476744591331343033538446637271012377848719059941109166598798730683842668032748358402585252947361276712787300004448853517048975316425789936833939506207148193223293384798900894708154920556449301048941067537647533074351035172422256101415645368153295008832562224668034175062181708053912100813573428320350162338933009948456243185320351777344309475074823048173092845238774273326099726048432190593637149132185803391030524121038876258692567337291774501289324525663203382660040857002343845816899141544091162156060646256584386170467683600223842187309216823961496775191648196520148915983959948858406430518881851258399435884101697570940890577392012231307200276667622231921297192881756343726399003931343690675797445812317391511959299633928937909010847321968262088689616095150655189342082141691651486970973057845271734589912188462036649858158635300610303295732443297632400208491923962385658315854115349617590565141867775597067181919603340397456097977122092357948788092165582859239641332526460392510323393282370919174753200714221253990800425450651533744498575174874764164815304950777129687216447757334417837966105085609138524877917119416013549144674072653064576337854832320488238292448549073239855871296858306055456885348789804866882188951901320738457133970182128640060075973354841714695555682467962440942912765826153430232785438499307695364192093686364767946934863285510972777348857818675558698999842009857597048052612289495687877784163589551520637855425939442082521264290174936260709901811743195411279147119007712742619497518414396311033151869049739005967088515323381353767609435127186902915250166209000025818109164599050224465612279161312608241036420854919219863498564699881462273618346950441052518542699449251183483158136680068776721395325654196380581092896018596878848682039167771039147568242880234300213532486906519778394450454218296803872820285819264323091595583995911013752348319399312440446652441753284302434128473063256891730273387252647962475500612467603450971555416708271462104468097770150187660835014789588123018744855489443544825098747112181551582893363080567175980199354766450798365323600552534111459101010125729199415700406418113080241827531587239273355134100223496385783170040264751111360242361577306600893289884010521811261710363671890625259414646696820203643620718523001560684821905166581779904700738662805532068624874221852615032812741011848846389382966170852255792813618555359457561568361971433234855754574244149852512815368550063099254454881805025130818112312518009710288301651753752637097035891091972891915524413147030957453807243948691638660842847071484776274391747008273348941897680311226593932195976312142717621424134315972519683323844448631164756843164978332430910041357600808573352183682127519365236739009646160026965270639627406120792590819015505320989538018320273135192475694899783553010296046214297236405012054082202246232591785568716601148571495443275613137068837654084340013025777851891250446247700986982842260109885068072503351338272782285623011565786556332729895628904113300103123958669306170864596275746160772799350640251986977327674910789025967478769609250779691288434233402362881206431200162973001279751841667615422862090076146729670103322318794149851405871698679871203000118086036609727161911934884322663404766246515926011668798910663492345162017586187615059956237640594357702918173456380693870283059470294871421465404832154760202570345913453092823660031763907931114111690446325987830412999219152735900166573579823052736171174515741670169520788427548914825514733833903242770531118978282988164147865125054330488998705338206602003919730616600000381204533337846959569019345026199231178804431290894713856441815329772948022850949460636466563766630237712282407869836807889076134926494228099753292449607463196681724964715763854377699526361520962318299837524105540309169840123654836086328298119042624384784038945575594782874662116110995354948366883950519064783036443427776474699304650191698103737276316400006664984422545867206416391748980476318525746594143275848002399453736278815622081685355847336740676386194824372422181240103170698723104076575111967963622969302532683624337523186958733357349216077847415020031843696991731565838166208792955262636940029477637184509764411316189357083845862094588863910817174216978021605957905684988935622896823915795328377710415739991899556443492740045149940437969428180296916405891305040077556217984002792950493390988015219458985807838402886467062699548772949701558373185732710236935274153648081236403221908310401965057757438625649196655828955443205498789639187615633760148372680254794325427690027299704981886744696057880205842244948283727719372378768698939367348699148611441784260857074393635406624921315142392844480412825484119425016325490653378600135678464090997961748303870202552296331078391216774868061620587099123154616261285619079384913576590495902114791468708167429658177569838293503715253355887190439031011828645531634947179374422050419582355685447579133100099105716878667590668270865442955231503389037562171883112808507324976813578585156381732663503234279897616173187844147658200413346499734863218831941282200494773624095152618176880463867799203108590450076430633716770891601214607756483144320731090799952684894252185250557509774309814230399087133845653602249145679908789583971250938387316801691312715232777153149459671083965680241376727950909036582559386325258011672173920357891027882127729245102429136802226533909899114217966213852608646911436095226486969760969930288823080106771193945666744379058908688799721680114631526490094594977476590500947846663406140268329409853620443343769500278418279696450919085985633192558548464431403037816440260773681660297385370257327724345386523195327734079577262271746898817042787351432092382283477155269379585204894098576346992397600144306965377309732154476854915576221222786870175745928997287850832282412956227474818709412501356446740140760670280606676976927221645145063863606155305267723182991666403911283484506458180791154868901429653934513773606873062260056430604171204162539996254333531158176626828506683381985768234724559470778512311949260685593886534654276474103831982171481079245368135472713552927956509263741761530631490283782749493313321458459830915811759274532197716447217835670117029282341335029389529509293701284101875050239985669362191784955884677625805571924207699177198981125710406610050440524624734063402014286422742809169104722596034319307829554092792602200707503456908881305874495264426939982210346566694298125125831730433603972174624219843813508881507114867530855725234947911269818675545039992910138213831664471541276961506880025705464615781247843916030565178027795971799075664930853818803036031727005798537471149256262290225459361144121106626050887367424902989071235951391811232008180121658627817356629670498584375843469504248547783322041146231785978004147760939816093104278908826850823513612440412037997041077843393764912282602608260753964923703959926230382250961079591004329335087646728027023181469254829061383084674310841829987219655187868452946130416585001764641671402602089901140908661346457698828159220238425185541473276920370627095423094860202207878970317790163219545986998097976930337296119028562520637514263336235579764421566547507945176786992074042221961408972267019916168208426418899457941203255102949290193042248278483106333760118801759231745881299148587957637116216144962179543880208947735030412638515334695105334551396786653198288290795138504039502908958544356501597456904849777303107871430551096733484373715545099377452731301260895387027830489801382310232647988919115237442114864692387846120970995611618497444898823025557228755695690640100788209141002990730435399987417107752729920589403002746476531751681128972986095840021046806602836502160346744461135041099514861733520481402144872889074180314250238438469410884169169431182366424887318804808874728685013612997612228675654688156023262100636303925761072158146081075292463125566641772769336303188922143232298848900769386119381628424229376364282532421642393092341792218385640776477746565373639313657533071486573193897789149046774104176983370861379116500352476988552179655623735404292585840408928564637615858926693149231531901483030340044392655733304416712883449074807651017990659846001566153294797523476567695245323967863384792446540449353272467182103997752275504967314243707639493990877369250967752642641552177581314574351331164521203034413153118611666821266686151723737597771429197028116515585429629115148549142504988762989309905689583238621910448297383867320643363965465850387857037412794926588819822616230172913854194517240171334564115076665240706799826274485685229472634389273445555075786489258220455257654935826425023607418312320364095702029296856575198695959729001725593536399046551417730005837288574664678102328658015837415073978605125340919447651777484912895463902511541305283921213500580494493012527566627266920412915958548138848082514835874394768275883605231043314741252426117207806901474056783890820055670501537523424252646198606740019583835590732668635256579890951095487851634318009908153789271614408142997137681591817940929208803067394372020457999570144048940632293765296038671199710474895741524619903406381693237540586025273890754435264129595172955231955152318506332632171478886826882142150751982904118948700942600201729265012873622124914088018504405722248874479967432679385304786637331770329371870885169767885516188515768800583625150840759016246911423691988972633267203421252416630969805421280134027022873324724222956263622046031311577286562370611186287842976088134052153384318894475888822605362848660383905002297152920006377344380488585715260634283717973624071864030600882912584527809938070010686380447156236240973710913984597667351074975520668813405441543923580986343936463857502058235985734069561703255138975191915500698571800153264571533820848849083130333848881154186521148746981504366889746025293171334625110578794871274747158057332567544671761665860399175750851023666608601875779008502706742818780248081839078590990036693609362080531282111913501261769575996160062684978197142395418065502798440583296549890913861027629583659034083462387238885832951596309795096448258778794137657801268566122057250426175624207422449588806250746096888261776747410251192690327485786087626260387294165445990029641820745397381784497381812936005898544586695144876558011806703919552735374078840934202789538321348791790763254523514860857104700567207345010852533258493525818084848651399833961393485565159759540140714813260835799825502664759043633305200222456202187818517377541203071300014258556270729971791891133972529514837684470168411837580874192957963481244465447591376881829847298863273945744549298080622290085952753529197745499403648575930451798609444350230217550414574780688627399936533186038564663091090417843371390542836135912416951329736732141328944089287821007166739577654262200932450545816978739615647483798472914933269239769907216097428505500772422520677196651661381429165422013794801125349937986078254224161006026345538951268670790159089322151563206352222559392191567407103255567224960799961106242881734282037005771527688345105349047323340993140627293772006595517281634554767076427857403023648196208473335007533842628125314894992100213272800489221776599275683206460489770730702435735765258282704501561422388565870157023387474082277081875983032670292487705163099811635702220236308254060753055820758564949755334875942591960853107545066521652663148723977995655229253789227510796449596425817172675864077011444316286861201806692729473191446031513665347016597944847789025703036371961774761477336174517346334918222457532899849095032805173664077428342677665379945368371989331811874500055392645000179142443245779584027394824017338844498965044088915745832995815548523432391389604094782567253910236226059958246816107468424899397830011771930626274218994102353478209437171215407331357552623871290313441249181475133424558341945159313168914763905519810247050593776946028246694691739135926553489407611765274622751761370127217358013398451275165735530891097604023218364808463081937855362614424068517672079044726655217351703353784007467318656714278112412742515560156862313139495156095079137126785739730707066173670550577272028851762413622677839760539832825734772484519080950794628210769603878213456298347159624180657167144548866471785144769503663065577983290707139028842834145976202978477622334725184504287390224532056044294260877388660036451053710890439436894773779174709480918617115184156233245347462879689436922642897000124245845618323724699950498121180291744717543822216579689905363159496616526009640422963966165870004634707699844840781647570448936676391753778199070798041895691655813774118532321063871917962886791968070585076446957139664695132421134343932869479287635525669577497212072452578925085985834681663786470550125822961335143405382212598036434017511507222000865283286077693102793925283809589094012043616553573363302981098027511626976655438928303892962314550484740038323792440171186420694082303487303480101791165693402913718979124770030177982567106022188290638982755898087221779047385257701533221126284275028723932778077482422066620543518922498771885283958440776816842406518239578384866534301493335092070866012423430177747777833351401539591497963141974771524245345036374525623340440469842999642086036911444019251160079378546898288406897564396621435074336477279003239254679328451088227318382834496888490870566815351921074578848064317715960743785355244318681052837457454900812418754991704939601527305451808061311831419849720844561910007645673924440952300285939094572694995157159296566946304363944639622522196754898489065407051275786106126035821686949172143324835378303901139368370935048635250783089816919227837955416956229495044763096959830409178745012027986313178322328515182405372533606543110025934495181171484865928649868584167785364622244336703863386311646863553537525021330938048964501838420203017814140914856700814010174910769622407312405759554868526140545335740618543993890745959196649020219828426742120288606897813595557691734667216460537775255512039178999842790523143406588810397380418155844848399465911798718369250301533864780782757457126160018250573296242886970376977889060178262040240780091683902560271563511515020581047432423724203119570085905535805298196049613773989063523949739822453026118340366507509116793656802399203629655098054404164540041895016771752989525941962504135309304942187111449230743759917422312009057276822668728130594711086673542012868510349867790939777545035020976386857261886221794151504880990102802628347531624693878946200912834653038462770527506786240194776256282303849817461546070398480630716657489315410124390108217960000916165697115425364574095018329077629848819708611264049246222797115163394879828877495357015694529491844915518536885970947869129094868921163053456210197253546267715114749280872886902602077587720380383557109940615188804707253613491144728230782770022317137479624661597308480353406201686449243605329319970742533812949215489354356796398103445199803984538940178275130459903790971625817231223062226509018243274647279444519749665987909338460607774390224016112988720879120683686818952834537156510223717434626228650494096657402324954279230301545122127482414061397786377544227555068381118623507704736599744748569709125858904943138408736977766064122626713032743410880137891500906244520369428676286450576910177357050030647129464877876774475209356942323318839285849500681432488587714192882898854082308205859998165860521200868997082617559553378011365174283704611617229576431518072315947699915144840756525635660254607415153931824065759477444142572641064933420575178176522976140697592578841537866823607001445917822930168230817565645339530278016589533500438111762574889298239404345638027260599470864190406058751324742718557125831263774132298964486788469431736072304829571583695253099021287745804904872321950487021888764563377676693624009039891090798420840318810870851822729629468842101285890724262827292479663875966658616262890905209570322317833844353692041681503668762132568810464312705835713667610845377433274098721004931689164162001867783363536014743915696028240609893703673705485989080963479914880308087123825802374772149332416066189610480513422966253859187711750461688453635790087814442888623912117988383172712707527939395873608082827698881180835957213292551712656541096232736831230395378726429049759481632753118388189405581890193482027809701441029821304278454016300669308072698110783963684319694514901757213458538206458289508426619364478525249238202557122765182118888389068673438333151766789495888870311178144582006464671570502889158043984920883666454775078227522065535241312177811314419407678356768645582231426807172035624065562530652458897343912226947069509425969987462004166459397683404018469885866317087804549917885358514828301425434540452273515572997793120810649578246690275476944784436624141738847372846461591745369153386352666391008716431337788867551098346228459623104442071947657960298579167947215491815726934372842730699161392851074868381775911388437316959702573592329736384088126402277836479234328985474546759833891718634590950640929879296872896272899477913527880434989289873119867794490145505042175337361424027799778338953976817603118478757473692027640792722471482236592720080309090320150200190740818383536937013682481638620577920828943744909470709331719811448721544468902726642738521362131686817853302927542088502903787419411922104176408767737744188771262972989773861669096619315539995339273303632428446311544626743414364272441518202348492250643023709515839901102351433173739981311483747781725001109657291655484477380602627575545645373740244763708036541367770859871464202813824876564998354357116437934468206130447072634893446087342497410261363758851632226244541210578296320533749214782508917688993043064891642256311610333641697507318452913690932458730863724402601494379494605138094707017024231226276540618477792686157291440258698417147340565028038647337238316783791208846213887606265848256458179293417067897308740969160241340679418065550073752540480518959431846108699047197402625771145351967795733908546480413461011664555676046854636432141703980197014184007636947290959404411793958485272674009902204589355724705220363582008290051240125205000766828854488895153462029948687199077173709818310193505697763060067691489241373402988173708124378665772836840802294111032905828681067130239080121423469748974993461418601681096975680533518697328902219907919735108778463733595825389860637471192478752266777357905450567058429416662620071038964893376730695290431023279480897089689085413650157904879793748134306670272145184598880317237566432758249930056797787523592973125008209957825268340817537730743884434938077925993569616514951684759680945120355932539421797405517445993253776575383785748077470299454281589812301811422985721403391479095855587001620209171856137864073765592679740185934888777390697780450049765634488221038622940194941642864364609768412619879873054640321651527433398122088203036101792189885060530440428306556551883599836244312214852610335969550863466477764536406332602996653525293453682777915141454114677089631474085448009316551013456196246256282469133013479168713401555230286888390429779367317757364234027289268853709196057763159226788433362431945784641201070916330985339576765108261663619924350762333953517016087149847681126498611599404517583144203909384947034499733971405664771312247702698028913581178762292526740099644905895640456069310861471271259432610297884200995021064713938322488371669564958283265997010697150990611448415057871675977037513810234438303497824329510006351299933506159341021259054614154760209418943107649970058278197534443145532824178948474180519422633325728277878032854072701455797725380936795653430618489524593199667245992556788922630850968142035519831522522660957644040717048529581532595141066870053799620816303875708949126581055237282782935238704488388319939037199353446040666292177577165583765606472747524942217847532490845966793050681576533951314776986743301021615044006447474575462814122338744815432160971657404003794924610069350208196038475054739258090805821299673401578427581814345283113428425499169345958887694724703215647324947854004984767389503120128517482811939929342840667302352018753248563160858223021962778672883757991576084040694923871193498542681905642960521551387370034736816349746161645695423724952352306034917352653478850506391579147813254489785243099311057753903640190033541518034191409330131078988436867316225340078000623847518497717611394717105595744329935485250544691189714105541871415025870870429868713349827115250122813570591286738978379665009065384333641717731601482644224469191852937578212997206797329039907900486109557900027910116355448386805110773007718905923085830442191663645291022624483135154979637056746072478603561206260387905184640899464728871673844179733257330840955587105773913379907733003675768615904939638660924486487398133149795364699031799794011786515663396790866258419753451625544831675677220706376374595899772555404858270017976143822504824342172209756138828221786329079996379355736777445359495447965617115750189914097481329397997444154196187253861043283811138634482702317777062408163823122915614479659287180382949560846729023145729939600321789888708609389496593974950833107554356732855731603167362178414756465661338228947127754158701467259203948074954940879723231852752581041043234018408961110976095960341077700864909578080461447119376793406975644529795689044284783304414210590462374945274349259859032785542564013728809732680455605265559737150559272992931237376426906712111502640247325929510916363037623782248103301244167157900641299341884917393406912302001027664603832030464432715424961394867604673602753313859815936124981295134789924140787194093507313180008334493136732494070527561027309506371245215196521507189702267214009885525201397179800185485711866891702895611754833147646297743897972882761290586154953749138359014250407061228088584319730776553349988717631704434548129364161939971100234721023497401517599542375690273186360122387187785705029822997262002500098593355280060209629501902504650811215132391784212632381445881567035016865948771614709183853387848406290036784226096637055325353019965523576762048783317216780116836328891841495775454983077976421372055412759444781717101817003341968303148429532889247373620577097993485753650721036942195591166383883673367309050990873590085932660700893634915640237454466780375761929101831178237223255194165215850189664429988117491640141550108321056352491663158930385855262458884389836581656761612122898190235616282602277861204117881043415791934929514152100212704807351246017248149244474200915110522612224071589092590675078563564049073224268223313936468977095952643748538523509834638887047870031575702377857021559871771369669953357239297089154974661836645616118111853412744755950364878407838085194421596073438942969857642243554262916720949974482793294358874948195405109646413588234923911082563106000584629161097865898358287821741189441640764081345017986233437681004277290603207060481256759488731111809153565478560758540849561541104271180267095527587655744831319193218478728946111401620534774864733733771106706253304097442734592561520928711456700468004669201163205738163393044557865311902617446734051563544221985058962485729513250912920308568038398157419175122136557769494415671921635815617153998654180188471162742776823376436422810265661416193043075712221115014794024408296033226832123837181712729096549188675866017412463431204144044111858566127810689786789864096764917998166893246389943528796380548024430451869121492515963651625290961801428585482852244269063892259811602187323133269238550438868824126823891887159620356701484274178795528081049626115920915847298053685653431179811984741414694952540697480280261348880535689384773866755206956256879525740512253849392890294197167332559877977200690892869112598290335971984357686031812121245375229100653102997967107054403132567670019405785993564269600701558521486175765925644136218637474309585554745890848977043021473624105928743170897652050199771127442083659023990464814200184924413674793641483721503302937790925402740404028044175743359569513830885661697455178115326274266749647939054440365001780377669754759144746840695080953177237778407560757213503297654488256385025503478477277435775344621063534440939202840123442772736378763298331431590183481113644928056037975250770951723254617232266709676560477015005356717504620045633550082205285442178762733800165397472961211982085815474752580357810592979456263116906561944642846814269055146132656050767451864191544292258899832435709593857023635724370550708054462984314742872896466976956339047325432269149763791689231574711303240755376667977973474020617913191243613697600005388779628179337356389400520884053001452670662732312042997920055254232536659929675351913028953584472840258378299521792761604595183073442424994234096830651037174529193984933434334385556012146962498765793261581299906381358859950769126572725931332870481956671633343739800121243709620341966708969555214030886287552633035664509787573763681491258163944427997219111379211368932063517287452481855506359949303145225239388458231586086077943765575800580679212406262655742414423886527511241784266593683415904376279667663646725086280218877426281396321966671169342721782367492419626141418143137735120378812146637278330639065298477272898040258726308326111202068954632110119853913302574693295465308863953969601171354070278422971158935561527061544412951576812459965080011213906883950328599496107418629736451614470899059557394483732404720114594896127671936559264536824165041791451355998094525037252986679280115919230737270326540349976484789358937250685404369978047998043212809271584261004333262146258816875055737111509776779819258916026582461929367287701881156822139068557329382423621752160095059919885052619670322170995717497574126096667290790084095062973623180211480818329267395277398542441291471379098969617388506787045264653499947320443904637359530695749507631753032489969132052635293563155790621415014434759726651444676944857142280104921577816140784427537552326417581859598315721611509579638960842040236511114937344852110603349654259443291824584882627334715506397089624491822832054035931815830889726903389180201712440878190044312523599617880180017651420625845535511362065995988268782243782982345654693645555561971753448739581803080079496685636326589268399704010814891438511583264302860901197120268135414457538005581904050628395438625265193684543390175085744247496078969796954932551184919992080609267186897339511135434979077221188468868010478193859220732867067941081936596244123885400595098309495539224784342960471872771446020614869786111577732887721866742584212071262387868799528739048765927743654590488255360020257085960234623353813460720958153008882112241408904003907841221847035607461588851989133177266358493352102420964569564550252018702479231256031925641733185045504964277130134667095748654572640719956406889916384257875805864535824891653158256168708199360344030766644038610484069432613126735602040878151917354662087334002280372461742954971320986998989966137369501865295894122024719546283813495239682135837082409586441870191525777186437488007836305388786143525723572150179251745717199472761608701108888085527100831687133256041499243712466745186361394952599498131983139212301204949943827584622228811471858811995724150515508952020609987270385154443241031021562133561574797678127548380880944262438022353221902544703311824843169977406276384060394873414426866031777294132165041952915848596820154386101348825426594773473421855403608902106889968781654772584423322737263748418093299204301521949767810669318549087907483730768160126087970202453368783030267366781398566025292458910983025306886681957654274251105046191719539593963225009047114009240044227722670597613870039339671041960689531236455584996103689590255793937069116669261672211859074236539029985004040672234715779876434055145256794155622308021525795256348226509331595461525557956676336382487222920178589650114448768592523829039406433953287751555776971094343935780773188811485056405435430139349703811188955928250919711877467573203422164774286467671828372730981356599662882345160956948149318100270153159064928156652515740645849161300764138253955478571554063794442282055980421323154261878414246548235380627611213683031822361571221066672441072288352939881794888922747743605417408689170411635482996038515481420572105428121360741081142983862393389117294256223621786293787590388962321543714914089560093672430683758965683195660031953776278601123059997325221341723227699829810220325218594345385216779986351996808983576993038442571846769893900383524444534479697946161391620884252398819438750959385271572098206337945023574491144461449138579691447442503994023988798728462113262812957221993225935206739226283081655733845217094889754041454456710317078623018574862719621534334058408205898276099371507999511946105690604619779550703096001880574906389952936067705678424021841478085902107683737815564676357147055246536075142486864853174639871437698937809785926914008992341688070023839792933944353223149304396713267508528562877850765098145955592860880627789265885466601755948466086271439785796975320290697240599360081314132478425846788531229247286277427801016076901491126426986667013244914271684551940724577010613068685483393857000590440807719130469686696544511928623511003694777021998041393999493633679977940819985818125935426616553111914599707525292444918141541615565626097756757137561720678519186560957549337900132342004593177622415853869193825490210600432211845240855317667836620093974483178047414995137235104345216197853077066109375625375459005986008905410702259855911821323122868024907124246938512783603275050114043893485537858116657945388721217129776116865077857535557242674929708132833235737291563777071922183288082230319528281846149363240778680722383348508768960779977336242666676765978808331773556217162626227858631565945047340465740198472547927132920800851205317961001166902506111591807760638965094497693101919259950349473167833988917087290145273490582427502300613377696158447783617713373029523847172643537565013389488093418766980421093554350967928073893336901866444441592827851555470844184614919027736732504097693510143969140987709502035260026672835492574744055899283214810500477291996423811718666259505011416591120782968880401812504692953446713596902057699092155257310121288229182807677274813172647250415329389088186906977257131646427598437222646198637709133422934135730094016080022967846302813999976434922215866406572695527523238720494576277808985468205394272719225013049420744359693089539079342762001159612064915241772586380760841845012838715775726643918004398340007618857241094711737816779123534149465584163860226733163366957090175560531961567572417943057720591160562422236586026488822895764523807294401673964302958978445359081119328521372020446622971366572535443080056134408102217038557486026250539754929931661181753036898592061905766844631278975537470113911552594082600960792467905026717626493574503073089600604762714421677261955556900924138239087076088532245994922167889804900186260210301709056185584892853888291808745235687542897981289765182485067684007432640093117545122544583759396953606420865101288001809270923001033795203935257692273462677242240454292253861220172491205508570066320598406042912098822954042345012577268824985781601114709706059471163045941711567150983482175486053019038241442538391572286409108274180633575265452996260996582267062714003143314978144473195397249039851881105434879333079175148263163454656744391266544847882081317479187301061682154338490380244560621889440775877643868345640216457381343287831565448863094910255366711152320791059884247862196039312460647814191747652077440775753106788813232951590400376716711336539488764455165170574684929819380229644184034979709013122881422017406483866688404355337431453838798444051777906466611230315506039699942047853798424595816280944791193098159493667332597165283091941816411452920443701972333063967922347005713148240884279157570612480071685566075310980324315807000294796238942864545993408050395236179097027582134879308165022757498962035044605421345948438602454627106339153510201039566241282534124856460795567764943063934159757852697453777416303886669233568975137803786998070379286289041085784133674575381293438316469754913670326322965364620295547732851630013354365480333683386922390561087631046827115248758340832519505561440038472860701355702737513558329646025899360418427601260159958530961232696701695876165330753432551259159626868515382905772521039106689467077476216980923852974441877924715680996674883441110226143056270872645819590066598935856726500707064129238456830224994305920661217953132072961888159288559987178042973482351812074908088127537495947317915278030518652049115931895087318044962571918475867695341686783956733325842564448042037234280739367032473192370748910270468876147453798587442296137962390126050986248619373822816087003644492248141267901302896478831047369194365749055427205900431606460607246978531110217202141744702247075236012351963383021543126500755885590651181236879115147439465137464816141447404880901677544160875593670402019582775514985435859731144380166007530972508989796644527680087453676732089448086462883514091564359368329142026430146842786413963029367816566224799134655410656030456846860253111048075511118230153280309806989465654780303347440737331888439081632620134400544229768577415376015294882257377862726664903279110284417258058161314694311169200236028182805717111185226873561594772196812708878052553283965616203230713327590674712640953323873993500960694440344242953722793053002772913258211303386321918022961452230731061786302379941772525388309689974571284585439724720570200548094585640619123755971459314813706283551403908189141375909751770184053417699516410936120674566767324001175112884095750232478127042995564637005639116228055468236104978400415642717967583623052258976326342633541927895567751161342738363428740045363376677906486524939154889784433090092557819584580140844200442010947237079126840262854058557185191676755896213151265227869162173425586571401358472433718210576141734129084427122949703983188136237958954085976258475156252502424229834902646839121235482520707109566456471867102044775736219311440335595137039092494842188673210957530137683261344499934084950620610416485958024225747474075785323921076546060628427306702200957912580261915563624799527219150961793033140114768223016662758789540612618283542657638174010817951661902791043786606978756616358430476867198622934669049790656440579164266180274030467297934515097892620699802981505231636932070446903638397933066959897293198609502345904030512112976070388363995473437185182210066202537794489023463231365070579015250965731204860256907297657142649037393406685122334304415702350259932778402638369392565603261323319725389377164856033428778023861111894133694399542750182611275517121310611961556044737546957035349097092183776743440933679058733042621682148562027705507743188555615980111547579197036529635580351812332461178074524011802934932497735100255075442746645502108745582831009873118762566856714799280574488890164365578659434717519501270714415266470170646708154203064139969204805591093051341435430742478150714240589090236742870328984193478435438622661886399329086288698546787092148727813107080655610425477506178948202495753028031803093452514130491389174056073095648197915009852177120122683365048669270599709696006961130638371986227200640458791060278790806027964397626204623765680598930681633900964859364178255517606052358085490472844815255162467172162234155578314686905319748706480405344600152062209590305316451429929100453510054331804681859239246688064528210539361751908716378459997523848483057886775717065326555482838733184460361950387636726961157729186576474982859801741093808092164354879721008300501239297980157168340748707637346423485274083182351215075447291732189987410337808692840500143771631819937337019639054186010928648928145975299555872013119946546965006927631070672209548193937166240106538688764533262199274629654645991851247446971032118342438272127449761163330101109849724143706797612315407627641950874455744256285074024211516836951615627045447245466754470262409667301034994160663001511488582913682513769839448703100469023864761079533853974853725519281992033916453688408495899420687615714467608127379897974783722406650662148668380223370677362523046622847916998050188135478170240521594936658652855069543277594227548543579689971966781632987282347856116972295999992935900443223417076723945232614090062484321470948326622610765949930100346676087172389212324453007928088500959702233666648763179671360915120255751296907870713911627413694845083298078722079774402268261101400928615134649705513617687334836116697639772419268824790843281427008488020395221782944932881760560268216165265439932524349372598843113127118439888443145687864331847277717916141193830098909889411902033421442178142602134402671934153294879566475859902419903030402667751778583375624228152374532629303487229002768745933920801791544457097676456361935857225796476508017200530282465793805903271665718295335503435436660579715640804837265113358186477884294646334109030411853278677980239079085802649634044889384464785717329442907639461780760714228517433812161565743810752240859025623162112263583577391706225409808222022665671872713681059786538042912239868696138564329278558390651553764498685508556233633146795019469537891236433639607101390449416561153509484071964984407808546783516265282734774824415817848620342047202372299977103508207896319153901495899192356640797606094135003550552402656650017216884302637847892325285703956296451899374541615053029724493096571221667427697755366317562102330303559900739642152932807132433184919624161833914964280339945764253573696856397631043352226901534488020382053830421748656841881293632369597702935109657578413569733356290381443532566094817745778428309970354872477135446191917328483170359826098610249464410816004719663700862062576444010408395957318799752446099294285264652978962965613243087063403457313512717908650907647485454165300966563244518930581107294228467083309168317416977548489824527853680307478634328430126866657939646441963178208193052912781432837759541250442990805608403411219950416794864628312924943808532647543378144989924591125508843806630681920310294432045581861472870109446766565841155137648928115152537939630666052694196945565806178764551019480158612699294002425888473719529373640382288664263172129592503085886854074286961297263820927396025073852051934998999681585830181069109482167831117104559033955909450448236934918065145851532668906063742413337915440318488114321399957559528716018667192564226109687919701402158932707400678014287985867020463116347410302594122009941134853426133096439238998250000853472462987887599419789198977595184766641570996006920038652945466814189066648699370265595908521673077287377970868246254362370249089790683396881340768863795248607917677258321902710217685040427354092361729307086442660157374140235309479554808348173553566085984598250182519839094543367722884959053600652513497861827971506674893761445268413113349003595759978554456701224036437826688704504008019184625585707600294452849611716576009706697025143512772977937737734494157270137846649531355251936530691811304706966902267376638774765022418566996126290562012376847829024467452287308996091633704216405839569251024520016770348596760256265632216704204930530925455204996718429702793453465152027886740926399587083929456040970961235961191334080452469529209486793816603493825118906517272965443130913142921412316052978621200311057230858356320246075840150733677433222638780877651849673702977669254786517588892253625386180966466291087586884675726419797926744938478020128107980604584365612442656946995016632792954401872194839383919497328541478350310484051318990907512137886412396123327905228511236593419291213461668205459612166739769745480034215666035060059062397410346247310164346802507722401897813530325205705942706627452411567713635841282618946316575584219259251507016809390836830567815598319795692790493289888498634586367572734105335517874884928298358690428870149057926365956011648131108771343247667779652058431911981170288783827617178176613138614423191908748871732469766822574027573041152665547135006592909164990892881003952527437884729063806167531255547340362572907903234213308564620415375213708054333289307995861499497045856570402103862436363210895553057412041257910595112098684147772514571974611224033968377299148502271811821743473147077358118632183594629107255000984363943459303844386713101082188318807270332699770736837863723852066266555679574202560250406571888767997977379380721178681690607590618637302364403996048953074841279233465026471038654647874370761047760160047678213036637344112948850306472810724989156451350570047653214689624051682007979018875264360384584892457694146697731000591640948992021881961554857018706201552848576299224287842723674707655131677044133295230892783316170902012809928186846118804614228732062162193829895498151447138872371132560314582600671812445323439443179005277288773502768144152854942872363836471125698858507750118390740348239066619931321295690077999528938737209227906668022470027734374210732905962125951416371621462665271323919305510099179039800183065514324019584274036290594953976272491192844397628089286768095716266875258990802171808103866718195876224219972578348421752645331923290753925970497063811257480562415862814859658404575926730111704159828501175158649220113711542437574883316322896552643742913502583003172412849454411943122276673389839818014647011661658742903725082184202008897140165656938297468529917970211461724660192036021796882824107570164280286295754431832970309740486526342383088568790389261970499565639193923870041658340217354202390373639885716365242075007649741920797013494216584917135187674202068862191947697532312678046946599879493862442330976656521474987016753242205645941467683328632247942572417068316013518323349340145672733472984093504991765451532222764745501801654449177898353707052172579193576189763624192117183864929846400140119361354636278807002240383511629324119571619721037329868450349564398817762772283706445845473154930921305486776836093593692298354618444466654290355724630153313353553598226554306014378589465338623685721161246026928045455363051419164331540422682132903021152234444871883481500350583770090281997032331410294653787673582281672838802858092073807963233836416248324859012038920978215857883498112194132623956703075617287763299728468148985136075894438230722007984722501268700887400680583896398002330168931703364869646579753292399514820760935223774925401376601180418331376522848148586727135393981772556387405902576844633173652902465834790285333517090254464496010583488000333987585419891400538922448846293760020671888872112847976869804335830699043262700048191238115485540678479964506637072113590144554834983680342838975906311187669988786940795460906470514773838489235575369547924267118604381981715679233157503352750697447620232242589153358852611452122293880369193611096369673879456294156974563113948655122712905215073766054984391836778143828981640302435996200393431926526963530626120208048731042805623864930683745094552479597157292708173513426759379879142054224217201594548430286058312462557289383124833203869832086011741607815043766329444366873437424799136202883687452163623327497623103872150857372004292593005283275362549867870054567695652789501687918371883487599198022966608049410558218130406090269906437704554523535910238721344607145366481693716949849114549733846837668106253532800085757398194442656803012726101274721730527547545991233943788579811838396268065372238480604069370499935633970096698506389316361412400707145225523669410486220342821120491334311560320442512337295477156776263379432376343223911876654823965886283145482225135944798078158672149511894042954150313774935371729334562473987003181825292301389102602996908721841306160079166729435440018112878611308701403984285850010909588890825441621531039835331606359864720325673024898561711903730725924152668874689733187220040920515202285597430788685524065093755025831106485844898218003871173205736899121313889113772821097439501458234198378851999599065130724202804050699991365129371407308296073605247925530042913544082060414460947770812421434796905652672409805728080319672844472765205811786317488266523878382655443684953280237624911431712673505202816748504552692992840891746752497734945553179747738317247011575049552896834534873496886890629872273497732404443285203175338572010937807200650933246935812618240147156428118355192296773540299069359400034737015625456537494687483434349645951776421793064056824107867763246997588279998826438792439597906566659446582660587220431694993710985731749143152515162765783553503965266042925806903302587868773991461998819573304833363287111531258782236268975507784776987328569495319511038417116120119833912868728894437494910573951444284139535912888649078043923415557110209695735187053377500945151031374018173335891615958568566219514604948164828284164013384166536107823687343861714306829639390359840392457148369553227664626909404216559453949671866827058738925450902365443309712562776635365130326459034886055747266672524125814888378245495820047525074897975062467068087355227422003559326381244106230348279989395226189631025408839968874574205052692888523598235471933255652083359176787746060071402516563193874146955785443020444109764701113840879050520457372496325972049410644410718426542675048296029072291928428206947293755541207681615290582567011693159081858120739324165706508211877465236453818874917370582390017712740739102687434448754278701995925523646830749159074374984628300404387235328600655257441144006383039702232844876608816209874078515872296165676918129331942222064793466056070344570938011834503406517722949864216165769814182485343133504501488506462365198438810023349427455596839099506594282385666584472308889278741633192976680525080328123295878745180397167591754338785823315154504188389560174643441094693680719957105406255557267437946476580986105050919101950242129397078716665287309281169578029559951629080873823909777921785031147718455944108451290095140858194174366034197550828266813347426619238745390495149514664740436837402923902667458905629129677878370789123540154431978157823863020878679960341735581486676387942136428940577533730061449787056564665587236726384098004435526060784831498136976163187824121562709086838957742120290960953900781406185442967529809115742368437282174084188172535781496116523461439040072598243136975830751880374324233122991371075337271228514452090697965348909201420472747398423069522573318065229284353560904005456120273229081582724152171463474183199557122401384391596389962197465407738104235728856500689598137348598784529419490028592047713962967632355029492604706105563878140000407597381766233502637637337597221921676772320042375824006603068996732920020004095149289855358866808555235103884633863561164541303390125683772885377654549260101681685526235602484727946578036284716358509709513440562571883961553251758938631561985057713788074702577732597025784700098073409580732858989014612065056324380392182100731892206426622540471028718828165093568973068239643858864826785252686628661921376347757913883455777675838644330616718450934196409388632958670766335068976730184739814101768933416143136519788416476109011198012830994681413912803775029303354005929641112886225270803211752105669923381435625775427934162357507490253590671564831127627181539759159142369016435828104173751041661391175594355011794436615679502188098578185504523006168898060561877328444179152494061299926059392227375104897162197803333963984228565155257060817651494440195782899550977173087843994889465372912712186568196912280690609356487919432616523221525974571929124129571304724410377487059274130759405767670221759011334603376606841503833954427300800928142854204753299516041149761885264732147907907615283092910212373884110516546122957201445182678610589855741316557967202601684280065925846496972346752947155879576674467695392490203481971017097174600651058411853091881667008366616283242547078349597891366255675437473283548389437658944241986019942527342719863449727627567962192312275562843539783524154903429498813313642758357564422070218171524859402233685444851994680537356809233549459851987387918702935448529811834560475734351638844187494568368325236439571827422464744120392306773892096768161823987528811712181078861718677807714094868960125858351162407543465110759292417724920093038085232328191781297960721513036325166515706361550584178214568030452594762045350042864326484192920831488072090538834635863221455653360000730834471834248282059391315210626120260126008053186255130603237660018536468425896825403066360897688865659365127358565125253745909429084667989956277002126968613458991044608183281665658618451747757996058950562853344740233211291482770072190657255020012181636442780515559112260315582665205213635927434942784523381939367932978069676207075187287739144076567478915827162373175151768833386634871662472592496131808312892605405336930486373982049628365446916372421183210723777000255031635218714695259628718559518995742629392000305314544927774018959069930209447166045681556386703955541307500463084268737736762293723607154154900631548520103847972393934008274519464575911888398147660605313454371125373979542033320895927808258733219399741356787585725803054478184529372549598065932947036979681718261129358897782917037918762595836364252183923814459329462023141749847204716362962816185177231809048045137594248021591764824996010582896998519943796117476653951115076545903637934376833269088002370035549403762516171736229796642832516665519275460677086503898179206965007413051281983823249446222551265226234950886580319746569957173066019914809755849088779256149037713437797537644259025056756588355311529892754836351813501027674846149933341266958090879198143854301520773266000514802069465027862367978507099385524601083741125464558641675650150126543331576943096536290771744500947413867518495548829765370362263474379349689932692223606518272289368467676679963952605745911743108247456321083615099938212518546429095925224871325207258554150032411367213362944652394113104532180008867097555598010743382175857417434799226929580180891918505378341311148138830801282961948821019850695266439130985978831208471935216834674077899697824231583854157371913074918279787084776430226310289597303991602136896583655238571000255565810592876644252095114125634118101057854143055041675609270087147052892808853278772187791906993130019438014691124604118197051648935689476329612078312509861822540925097880987876895326399984900230315608738850345804672528078601918980754464738799358163679760280406530882402335096796961770302323323804555364533720998302535194737274283427667537565731669465299203215631349767297171964292502293309066333164360651947331759698478913034479357378822113707760149474278591245623662276780257249410892442902985993951297887431744673656921745875498851374984694826148861593067682557353079643809482485733022418331239168880980338559977271469374406666574619026856952793365346806099110546329901814718817072452005964511755359172957298132942395016915402757683333742649087817365526891797151266600875292990933480955796217208052905700146423280568107080182456073518119861647743990413390072002496394687637136888984643351121417176427007202866146590410348231605656249304127513025682516526932198532803746582674189620322723503296651744569167652331641711710939018167746478173719989105259925463417846256411390886046481484884415943734211937480628417159954425968051615899915449507649381955237499403928148911641315180762070001346887392196177876589139727359761829927862454581614958601039391082645236222552414578784874592832305214702642887026044644192830828453166591020047927746575657425388737318606544724603341652244555496541363895664525224063909066245513366030174324329399583551152968388991726359345191018560636093807295292779170559732159929956379152926920059165501846992838651332946064731963792783243928287791214227073015039128754833281892583765967565214399455215752552342972701534204167308000577782546557429899764763434766945163477322853661650223301538578149059471427258450170990094949315699029583323299174467417832759523480176024144154141817483833808725037599519865232336030258722085544617466924228272943448037256647021299649414394038107149791352967710420986992968219944767315918293353876736317281901632218989186768063924922236724002539205975743628356450136503615857223910116132824224960961169964545142158846448240137215079893690093440411948822545293067960792463861391456750472263058873265993724752280857577332680258996208073465911904959476965398385251463271454452431126456699919058906069033050776942317333780332554570559334258681414138739445174064972247782321983784775659066154009930685042494389613706706387371559922405413098394609586256591919491256043105859092129925061716481971691939535307368350136138957978551066708577410054070799190183998768871869701865685076523330839615275932133481926531931577973520985743436141687035879880266113682239923998704857833189507385402573369964138804863725584855332537255396076011730270634473956971799788116572926496415678428781382534545926249663813514857086810414158335738167282761300595710616494002343179488437075168954379105271128353338956735305264251352867860028157427947998166640888951253216702669252989985915854092701746747055039300993052239707550467509210177758141142726362413506726370407839935506669389062170545914732590374461164516132465128977149270794004527713551532861146631496653320387645015817731316837720476644130887089536247484203162938246322035799345136420523422215356632150657856638578452921083743290343710035147891616907878051943472250767358210550366962756582431097246651628210263144350117161333296533861766577502249380659468396914706272055197744407222042623298623363305738660713885686525371684806328769472881184809639627946268393128023944070008900433728263153288159690552067052610783487338879867878878659098423441523963979101463035590505609184930495127103019655589809092850539589395358712949048191378715629241755373287882454294640750903314626993295417136416265183504403989928934240188792219646739039883133636980506129877505613835631986792461824335040193045772705785071431756350092544241462585008211089043896471695220943961016406469445781388333890814221024993259240754413642502142868303746658193892311645773433434077164029791851176293667910255542808183771618494837425733682609248323675126944980579861456743433253741663416204628949586983838861216147135732723977300974087369237393914215367321095678987967604505905872454806482153055330882429684393834727737775822029404922180383747296131034960568380201114653141466110313364304829312245256696936633408419450366649012722153941354773187529218983930187364510231084502541429911412430618864989476556826310812461858437403544392090246849942313573162575703272733737199087454552706906576125751481978685396802776820659893306604409713969239320315027408821260894938244131752265751336778322728542524889898482086892735842682997636586186222828800969371250477668121452179847740327431860511424015085806215634717961911752435510212430421240658191708267913830468191771205449145972540836278735721060023081625660766280924291495836012375304729547230495299929185180591974233992876933956287602470193379746880497738324267900406401252205730777055374325685743348879848957355577749672535589288514194429809060376070613663323053962301114532914897914230671567294274915022031414609219372196045023311300173120045556626405148779338500572561620168065400339263070067373659014409212641945405177216801943678152011216541549295452153945654003168077959432871332322965602251378746396622064471508494584701870170540753053877774218021580104267160545651778505411428281186787473135653978242418475550992460375142883906470943919401951146293445393954770128176101371987417134299240358376687062373480658158858747829123697290673033702306164985947551578984676054204321723159443428868082930456242074013556693929024048716034060632390794266036692343145752029782812152368390186500944386785578677916724330894695565957719605008526810162951736637348127385107518527438512391240822439681682878535716889067400701150513853987256897088482735466530907704601001882516944759938291186006568547490149128424445157520106300877625201528655587310575373162090560632934062272755346511439806700038477703105542051867644745126655735493404282053865105515135981674143158351520334061465718626749448927817087625136638138225157201446958039730217801942593085450209804590754952883518297346149270683703734362145221901307986063247201703489224229449563892545517121743165083623611314621647684128201736990665459429775779731725594545730678785471023524871698183575050594538696979847484522947470583885420720170499653183066219546152015750448351103418150570889676788603583613343847169400201533112620200793108516878844689171390253604639019681753541218117671275006287975873514799694871167136406374834562909719506157945024970758461962422183610438630588563147673082312352012495194317628165806140744272502093586140984386429382724934490919975992228544211403100555487814490175789492952069096560446594201181797096264788025609073058867295558929234623179938750560833322736074975423227859422101549062765311126116282949703618022817206701757233427442645627344324150640337486920406856933520257683388954297759532921479049558856176729461122448924199107684938363538852997184713904817669918289044672115599486491884890633135084494872712422957019455518651364136699529567676912411552943367834233077753618647474824440784392534003471921807517674015854826351102374121812703132337039364385904409593302315226981580574913256860825647754001864380886926184413409840985800769918110980899856479915654417989541860013324129247373270251594010791127760185605717887116353454693350037232368529280421778949392079451106940884094580470208622026520382228012184206923531811260805980805960072401715515297764491539472770746584920538453724508104659077241093625760644339925186077691858435319848464795936561500905631107490264685915699629157135240760022042930964677984667274929085105140658837827736116128349375298782660037786024381233473719805547109592427686224095691843223673162127682454825010721736827517581278439725268384267347852235157045619788870103808003369173715510403868228112235319294886687276058073672498871677905180937632493766234442439214963606941084882958637919697562881597440807885362212126311338568665591441634299144138196960670226391504712005025900071546324240950541396622009775303206521365480022382131603633083462428308512743290116234292981730674067736294266197511073235449320601848374421641702740954709587219470873072287148205533470138147227664644705596209032650591790153249062322207556702440850928761979880624406921735538953716979072362921904695318146058575947758230423666510535894350742345056896230370048759007858441653105847850358178849872904054827519502310874259282950428617051647039284089803003065111318620869013415667209477646463381924424823128597900659945502941620450308325356913448354373071013445867331509403907993827920337641826961619537885480163844591045647690657280898252594099778868428844471213411310745088058581169761772884700202784103383284351089439637186166665836137244802642294288549611570238067249236389759110769030385238979568798501106286104663227964547067809367329094941231415104986677217050937276135930214233965092831707683351747562000480568815300866190453029020684475402828323195714580879020476759936650425231515799474684465220940111540593930673585256322989934071742431522635547056645685358804991089288382081460052815667288262443961261108010235548184265355361672413973525540801085920407585417633662209926672485650245506563722796545280028342760760286579740443837390353307262217262938601744096945244127666664839667840127147877213159451761247013440425881033052017250034580258493197730931063706586726199941540917450331846651557179631283334586800183610168631793718846675094062415891894163328625510338691545718905485533223600795798226774303243361009402814465375655041587942523532699746115466404990916553556489018979826770002972572945603251026621357544967812789601926292543745077133767297473125409084998152411303490535086656217876665101545947181283435493126339904306851393073759250992377296047139807421135167548351802170370249054247710621520318097679366992363638063581535316147974536998109752471085745228488507604045583153987643903605584599295852418911911971676578165776515152637602251605147475366872624805597368837014057197685285624678038960615472847091106675472234291672697156707701333301547384729698910771260204169558992714375489445598476159789188279863897843340622559977926197536939699679807287434156884576788973640239394110725956538352977320996414104174016406449336994193134891841276767121383770676686379981607818452924540799115177739389381334168723983544351373449789311465552379179166182818469298789368153606230160506441664024306273103079851936144876668766681560336604981060486723646264449371816104249866390832496610472633185058128229332610146960480613836802039748367607661580047881044477956515929685004155480482192497386224309950985884018150784224451935025351449682188318497287396523641645045826564874061182033163422737625880519391170038815887059744690383068617249768236619241757392832277274972957189841330079922606254444436778887678993323479605135490285057849017626986045706184668510985195825237006246001198896181307236170607315559100470220098297360805027591846077278038800887983166469574072812691922409167266827205073345091507766349176672034402732977469561298390872697439308045376084179515719192719115686244800099401179254854681639261068812714039335761734522706860724772069194387865943878191681327524411516630420436203756114101306367024957923373041882585775990627395584806313112503414737359254319022255766746513935187603708165902750065842991879455696076433213330087709156649544628526072164952461418771529558311523677642055909530005096582476398934455058955547843753417449001701450166354888250788129863418598261603220231583060162455798679087895227261438625337682506815648299025229999482387096154557158355232610382549683506509820945297063912110507524275049908668104715723758421734739668278669825927436440571894777107265195981620737844717681296971134208657752016044224360507693772853287600099835333952836097412067249664565899857274723062587860256249740188072909659803304433481010765181742420389015199222597150382925235734850759827510031486159178358351811910411596585564325779049643889474736306886460070630076175557474605790196404128174107032923498903964400905691178590947293950700546851034835825259091064691849953086853675870154201440515072054578258000590057881226140648827158841324851035946608346451365647072240073420273111321606680617434377821217908749671488567825099733418481974422107641308095716512052345445848929827654230469409096388152073553341417373062383752161034805639837264367521781064691849909026784366785133928812182074443237870622256077884540772248060666748455491297375150679463176020997087615250298428831490845342023602578863615895684098361095841034498166112948103214235817676220219975716820146543244321095231653744575987030074909457456365785560005374384095953996043866229338094348322164409508294900166413305807832487380488993680295085635668383727897556157448871601531968765331953046657538100282728815777141633493926442901361924222277241974554523642577810404891485243803412588139151971251933298715754082227331578645134028540762457497954319433196862324101268291222768631705372175497045134834440844822125224460912291616261463246338414238525930720838622108077272768823762212840552387016495181729267000868454162154311914032200216065550560533957945694230036081684782869797973170450754307972200555696874854361951848731171511593662549911801090074857365679188720791973945415803912536272832485533975846593663339353731648616561407647159553140671601772260987444513047253584160837220571553270886287900242467142625019037110084472890999836629066545288742734895886308692577820061183409959916242864005437717035404420826493917009214858205710710554462012499345284536959289441224917848220255995447721223582619427485540403123770601010478271071608920848471126788052784127720053198834558015741168451347877021622613851674308921039431893781023106749503254782666940983282391238230525506146973065702339527574651609540337392734062814250928850275288803142118582477893156718605179615333802159134805927308413082827351567910993684616026139252911302249600473920004297426966122318549807283237596440864544218742648557665708232809032640939415056732413147314435856880331511756153660854129784900508296983184794600064935283580942679879942222596965660681371984925878543891434071622380190137578338965919535927285259058883620727902806043858243119541948279720801465676850437340446317818997618463364596777196265391786492595401187005379336347802312336625692796223365364661593256075037909411310833531864094897815546510361374052034567156324209071674362306294140938445791374125472562314422603318406276062805704790258449680622045114872457736781786853376957721733921948637350101957807103024018072356327653062874740424056043603998812677922589797865478921095239888679585609395368769024474099773842757780498927246965574342585173804538646277985296422886855179366240292076589836147750115155149535287378904271989258841610870329011560444118612370730214307797008676236156874081555408538833681522902436289523743637285690765835454589614566915925656631121082734796948975351609519590770656779165500375961614380291978688641140663404282067437824746122899394280839555901622627313589934085747738019433970459161576712490980074958545502353795879784680616886951625978597774043602253254214326414042613335180382013792127111810221172559646139639821434849729569111515118692028855152460379124560619033054820517059945048763984629750855488386304784661820136537931080784596915683723006012746351419599335290869470265467618357721749548026971852708307975894952445299568340932118129985874773500812603710624338949777007800033648628551149230341530570293289729496676851140205180879575911879793066865403321275163431502296099062189894878663689100282941686368327295775306015192970266835570680942525272307012647333785428242280052755457375356918129275999871344684097951957152297021211991504337402531290567720340384558631793665326335672200747691199254653441007923835761485615118705111608617339934630252929313233362987257507673152913893067191291836577185474965180702609056837906749513315670068134694424388780984248236911798536556899450460583963671453990150420607410665849628353966974930331448859614705954693725911560896254586577361835019538468932607347425354325623882312394728515618975812560494034284481907640963435266620305508069167511650855716365051179796385283870074501994044856802317828404215529163648399888575789931843945966099587415673021954829430821387195925574048615086108438499424192341026292698538309530371267705296440279600260254384871756071611830282097639831399565823977755994162020685106584065710456485341843908380301452972945711706287408156658303813212443640364083182694691970810731869027151561266623237525562894805155745366641839525887411095605374850972374138597388279649962476153687365116394410625801113782269560381343113526770025329800973747527764431589811137142828071608436624171487987040400611678990013950819789349790645467062048827257506134487818349335114440480849171622263722752643458785621460654238627906337037468899513843467385930475726683751885368220712345574494442588328081061090907952580590197581266311673938468022031797867029005121878158182899526590521338975885872544149966917374284652512868467661408755287032684560673354964746844939376938394291984925523224770886824008563384681870871931155392043115296936016578381108700069102403709360821112427753800438116360481591692391094225053781023698602102497226947951078712364610272636001495251289408792954162316081613062680847527815000963513435633502753207545020516087285730509641050860587033926518625973988001992225610830270976003632671860964513235787778845480224086499909247709541392107602548430382117916791330111314502039746146230239522407431301238455677860855626598714596109129660906437146355548669040558006580212479945332986319932540651575636747495947172552595995859471101643071291999493872058979059413289142626093777080530235609946867107730119223575672076804182240588599375150757940447443869146941422341746712314075550637559857017513814646428683349813823852489607221918964126229060286584534105595483295905578328455487950039094092073157004195516586357357218219524281279631522803181476313485989405900496261287504472285632907613449690026934581770684052388189176519897244846074291027877965322791966382143076237114112050277165160831530972132753248118466438598530846020858249906346299097405591294260197526420884054569419185672701705952921426868593939998763665702388087896723599509900655304504134631557318921725964156583197733154762162454411912072815660146459764694323679305029551127471288974347256322765839742299276989680970737566015573119336275402049301718414687092895788382743822591695501765906829190389981143943598543711022950918254949961059050819071696237428501510369518948541271805884433363421207717048754376130029564610071708765534066877798755533740229911767132857949658203607956745342783078341292327889339576367057916888937971998727610068655611657507566390363694493848627116397860915631562078396774250717407519761522252266305118780130826458086810381614265394199974107373083481444534322010620834052584683008840298942369524704381272501166866403321073535352367939253254526092426616453441712296713817353555325899508313632087293791815526090051823486151640352545136831038250998968391783562113800548038670640891712870625487444546210996914447910541962024796910815814600713979310420623670685449494606701230886966122166410725903461619376059964101688071176366211811117683969276427285311253141915287951108156534989999438928668350083773990487050061026202550928663532507433832845688328978769943874929860190549157687225499829972483760780445614411040892047510733396518578025678234679866452592961201763309956682777793927152132816312974351606910485411390953065548254987408444914938663155850225132726308590572200288962207984523834632083471105236293073500907133801558523628156942740360772864300540310793299443072172469256101946138068306674043023619748994866940165889828194573144725356964751631839939955400273155295344411717909448543926553118705736853904529370095714134116177481795531354531862864850602479099239258571412059557769907685197269976395889041706701874068504784315472264611096157171796299878557873319724335772452415380660027349958632160517249205411264241189069281848351773615569551201943462370232823903312107611650008311721529635428207554503325153860765046272508517849670690219154894388020286051317189050038638637237366850875124331266644928749653362846316635955047530844630797891834873768472753221275821880312737880462853985098169709398044254752805346711736402681327596077566287306354610305229383458427714272657249169195635900524363211452262105734885616352908658676282738939150887533876993375007598079461871289875279957973580742513438197636799093772396680719878978280384451256397725608099305564924091322658279715843692645432065888250876956760839050721568817075587002426578715559265467284154747775034425768059833538843221432014632189117171199653731558381129631102086590220845019627133201474109683008168968831468751115277608244632027675551592349775728504296148834909519465564621905045239003332651311561193683815117661682725948676556297158449632715323530034857203290778190611944756094659042711350791838094898072927819740270299047575525674509526556144816501609156513228584659499330401079843192786144435927036579358259885439079128874930328662251747036934586371312088609722147222763816567148608807674788439511835559294494283986486701440671511850667957229830215658203304973231398697598919003976161594012231623403584073713121782186278083841735851004564392219399701733636097655502137948963216482311518933142241819385173402787650099252920923057942101492508024292672324474684088829576344434737779302593369942436977612572795135450721011814574631888074998014583574487302937919777160466402942530405335659243032815424702191528895696272014961917282706720711350646053147035880414010265966051097200180161688455402890813621062200654223097593439604173986754967471364926944754883915565241166307544994410399150003454901247911118033296612292878076900361629804772777434407722043594298665744956850957613171931193339995731374535301866357352613610715709189079190977977611036289470109860727849826569464178350652528508142892138477481717599515246796802820326874999828215524102405361483994488385705913987324237843280681464972212009981321171097236236749585774710710307262970524076622625537371042563747528139313847417497959190699854861692216567521993210887419269946967755820727367566163830368631042749011094269797894270775849098629655010411812335399731511442296519723842566554348396420046346707652891853676526458542621781310532585375313485246158762793803872238127932090311823813686876280814299483668104024122772352275114675869765624578156095054479040745400414771542956751811159748635157963333808215040089828294483845981724269799481857117356930592679877814083333282125230132563830272249315394822243393506883793067639969608169058720186960225825887776310267072411736291910851454316861809139810813066625281604149469498970536083146403139160921630755992558523398425702088165013678134920584630756732469592454627207831902404026676749112769007325133937671765963576729536646890720629855114105535924749291812155943732502922253776465076999171226644189758769357429982377589356263257141207269671654252033495139388301253079278193705770166617702632612673086020734876268407900496772135012342373425877119815514793691644786351421766869971591748515819716771757446960957435313463262436779935375259928943830345722271670552511424332524788326030926858144920867858174042019813092056392206106896481318072229191301467644596477417385065426986624738700111616884589448994436711775214180823139275807327064126555943624413267959949017166648343651041398249343417086821894264901805650597235918408804430979504798254691221712153377075973039053433870473694144108734895266030285964603399751796550476848092338115978261624476419097417769768167323032621508489827997937269740569821033626481058231745382492635733381938850601646839521005252680662886354638785390526635502928846282673026724400840668586678269159055884496839766897849994342187575207341247644003904837442721922159556839389887001185777146047010670759410554160170428411228197340948929515701521916183552161694329178514408003034763088940182237682741076396660514612510855895747756904306712402659111820983444793055768380788751725295038038858917951475197366626917307258613495202724880356098592540981491003950944992691288706717745026382851416925061702326149559581301424308123866771325895843913186816711674757591337437664315983115857947105444106207505003742123173222916997924233583243409427788821384541672202793125241706061673625889533654877276837867042851399625181850017398529341861233308956544011948700849868932050374059817459553537148278569358058343813201668968269380468750227484086785909292127467608191569390577470959286276212223867954945797079462987412613341944386300175876831763123950387494335264731498492150810679250641065801343255248950907648932295840518228567917779579864270517790157997090475343135411524335564555556755880874581200366975898593611614690578105426869158806896026812113240322980082169333097548921775468245883248982494019044031533513881562034953786769262279357525770174338909952241230782422813361960339796904899833644730649867951755157215194679575369032921788817656706952569695709323735887768103684825384618952280012902081096753008001535491720448805996904221889964389496320741435784644973034802664948606938796850004427303905242106574427650178418208186442545435887275449772261076499824310370528899972603141637972801151397243490269669729979789053554624453645779592526613538563936603343192679584177576950652396025783873126762884021916802880879322615515672267338413885274300904413828905774453512894152075976385224325666170100567887340763877689025312798771192025016596053180594362161781160417497859499252247705078190288801919884572840272019810035824965706360944371995530141202230080013897191256929575568306837153487599587519931480531020102772480101911248689893601395637001024458280726791352082720322895667788352176751565083390690059606156943842492235160415698796032688604306678952245892518987360839358675315055587360903593181816405406838864740882942040082455704055909191611137743138234568689419019689669943183577273309128262106157510278221395110940217038218042614001526129949499058210518210808380250988205712632936896108790538938664910996745527064487626133048598892870433700051582110570741028596504028103289612027477157228696255728851791112593891949380042172885578588901972272011205161401426233624059789480970724388476729900221745305304360391393769785191710344676210681882570207741826918314226705389536220110705223073720214203376281639720048416436411651433476121655248513769733770268829479317045652345732062302849410854596963372378915121631667518096909334787324512222493806888475298383048200077536102133978628065126770350646235187256273372459504609273498998147840715588842597802166027447783867551841972585500768569426122946034507450635136707811630317649597360888436861604579240127565373161178959084170270671076747833905396121701932982425932672888513249056619958812067895159200849565745385209847162765348273850079895091315415157044936147191132449344256854483758879176291923899718616114832675851212095140962969316595548577968023398212700055869175741565466159802138199626644545695037654366475655102844097298760691412382285572609641623077151102097225323151408936435989219280075549441229728198339917713494876149127909602959296369441268971493683821942332624960595678695498660365815531243513429090200577715631742200335499043902473275302429780738183789042591132345220559715334519066249819079258064728635805483064575994626589724857405976786599467860138416738679874914767019029226107722091130570522900733324723977298506480951965021029945995523416549071508843709547470008567438545356601091019927589206654434725240228009889914054984995084210096835551163146323942581777977545031221841259188912785902463518565956824594966773286350018612813122043734430202038319801618459833298043229626023274320960909583871861940715344716851048278649401046469653432561737361551635299620198441211974946551340168922869606699623383998303517001465332258522692342807933949647958630530604746119277295150698232873537585590683489089774989892770984853241786348024554642967450541093008175523243261469032943773945584052372305664844448107954754082873127707573447839646764115034028382874108609582904054368528851160814011203699010403961521331872490844766496793956455537796218327575958643902383912743300792962203278508363702518257295966906470594317837145949297961573783955219955087967026743501559147372728241091723820756899979154074818469049432610218391408886938053269018172853057817905034317293366788873798867749600295948017514530488149034031606761750322533411656563265956347861840421475329935963702982216704962982918007172940483443255344926707408268231083248445618741828505998584162201460416550732929776351568886683712947917510354807377886350293739318916703255063337073719829937715800841942275669141853472076364189359860744043686487203912657990837094795135362246697114634398759007462425716833441147248057867982879306963308555747237705935718669845400814754907125413725687202619388365918879050986805653325561252518978998363205338730273946241742871400485865639095799664982370334851867305752359782430780274243590245949208750311035101913211009710412911821715377937971211460716655865253525369450544685347063491850319821310172326463654363840082793928645661366349168002287792891221006569664977825184180598841205108379212409932495936454167418422804528019338878264233861402922041926475170906241424787503461445514965222175844162635527786638916177988352208884580666852058362992199176982546760923003873820086524278133097378136341748734367991078866893979823157154884834682016684819618000693204450425630123995039400088553830233497335355857716215369765632132102507339410385295350341416392060854493898539864987795008142408453443642657851895720490644436531140491504092810665050356764374308223832334794590392213474135350615568870708811301802776382239092398774838599030710421347373697533289468532409610128448595853058123380591389420169760413744862823521006117539826262594366758825049176806919570438357770924689628525124660988773478424061003609987010745531467446374797643373871888450885240989021724674136946030162870904492659261725757419207390835580655250027014232263030391248485717115198353866414697577186553741757225402151502090844037612772609790697755951495949141396687430399116713330340318633700014638629555857613476844019818932552526382533944477390030498841463151574243463220748370217040258135472255551050462233707381782564211142575990850966325626206530405564110266200121165213519136025232324226253233228340402430854322360896626860304798478838285928521629014631341752645174887643228389113331672242827608358372725471589178219275830094278850472315101726591212934925159762777348915065586853288051291231068864323901354401138980109894754337905963086789657335093381367709896191932650381449354886196157010976871719820538559927621335982886747659611081331225675475244842375517057965270481912185697430123425467707173577169515782757106966483621050871122455656575048872985530588604421982955393345545170430054862613317593293508329923385876264222077859095206198328410459680268941205845735767467555571020835375683322985741678170470337187742987073962519614057650451005830845260573768730885029395331598263095746532233980745818200946924058641022385601788570366861770655759532057486846545132360990989340984887848861995123257284143408456709348302767939587594334330842498515027700802217002905902269441613395053781128091435509038947763780238022027551770036535298854173714670632676832061855854451261737381917362242998094996673640024183627727224548587990935755722122680447833882900880135102569053764520420277928651158505152041885339492858206901101058007015114167461735403053491813277890430333614124334470560734851910937263147713554921145824603945433823797081387609386265785044684199152861049427755720256848266536152844368482458763564017682995973678972262059225446052545394472123261401525287884359290126126777697395016643113059677932737579396859327823514916662781831426060471710586318359630830959580867868319684787848078055403389745118539931929775845125244716962037423504972640702479696579918317397925594492241489960124921255898659927622667215043765558001275742578970174450181349199350705265704388113589477470078547215594139182032450057148330418018731720322802017846438976197550158107291199921292086436172385044510587087978340056391608560889555505070053392742161225355612368495927569788978468681485870028205304915018295924557083888467760079366697969814614544634835772962199729285955443020030457985862480605794994772988060644387164091755321404353067303703345652704464355699571884171291425367380178131452859754157265178788134266647557481228375017730915989690353093936351886681853517968792881584201965616769828283583389224975177484707490584443670378534759257399308695485313491540862762381444886221190073944447276025648849606541745105431278422028222745266775441399307723117161247558134460817944055825849909850441523359637392704751821412982036666238341512657682156984056501680753020432123883873619026728056004642712150991567332015392196814631173121208639019586596777789723753866461598680736276432926704051717120987809781793554047775902793639825566787174245939875599724973205038694830224356891011927405718823805598941872954153825710439350902422814293744119916955429476218533200139074730555922760447139702897221426695708472093755417942466529818691046283459055204901635151885841017480372272987803490406450916173234211878166089136863746984707387805815188173646335531794790264846929658682386695134096765013732554983486551103498199194587548145154764978168815414852863872917258149301080641623690574414529197219591731186845781429139396737126392469440632595272620145237649601178853136720804022056380101201758680429367638517678625914842692959939555240510432135463150376345394399467511632969827165953046304373569086707883708584153587053934535127333285418801659632353246474771658156755699641079221131377192911504420559596552347057948799882668905021853889537925208952517631217131831722873503779372547629488714285863675459315696108613237483681813167686083215587714186994725910379770729133583943443370515189972254303713867188023471996394513386201634423441123954697571503974335318870480941505220452896962161423238825563048804220163457948645434307513916815588707465928657173365681489275793553777640027610882919900761749458497415258973972776967849906347262608809443144014415441882883630037142701552199636785005965008063989986937668640006132902953317369896908846263072468166582633759268758538494032074021946436765629337351729250339556609339043176197712204251772487726205355764045887699350126946330606144772126312248296320673668355823324343894512949044581877299097666747268323659627041686746483377912150235090635413512737091806836116392598474079429169534934103242726953782605384017312868586281455441150553678313733030934810496964307281881559128336824450659091186953451461256716845444600882002699461961828310771161836772774984944337176252660293667429799650833823762117219430636426953129316712880967250939727062388245916999122891520015122703254818665507362483708555091838090535486749666383932862465885876186785043352428179482331488604289438194074413677501157557172727383581066699719011600262954794699319966415300050253750870187912164945795547774286764611440133504212615645348447232041927279679424618290476820950156530281992249496128970826169191449611628975916531108819211950991306431226300429015675405503321970008354613763239945505656632212472125641572001754652898269196061531841367131141393496717705448364073485624909924731950756157178823058673183504459918620454363039332229757858094029344105525323969577801333630999898612998544241043063185562794366960176800083434478054922096556215219047001802882460500553448834342544012812026926042316423001964341441778952962051692889009764558217882932940748325101111208760173831087160210351935808554694004018042206693888071639463442837870353215610876996553137567628772338115986347428925028077038108300273655365212733447825022080617971514212933753158197464509670362944031837663657932084669736523030615484798730338877774635292671885133975528971866777922515462179065448752001037814846621462367132292496098490121635315577443656475398180073420137553442455896373419366541062776860949866128784234399178762750046334305184458640021298257167747376342907379133370417899660806836907425175831856753249496376869570108622200939955117762956775448132944195393366514280226320972978074842309614253267780525978390083080756411895134691509768253782003306011681961753232383004453280696367096759139762320900020181675297844230582825920057152028673096812319965442256758471553424486039380536240243732725638023163368147947155451682416120718054709080695495986236384027588799815048019549061125601309572870256586622560414980926687817197258878967189077139829486733828201484776377781375969423541003162708393271911119127941964060526382390375755731469225784364585790416078262162666430409824820570916487958345353912386010415022363318768480105420826758236654281331276979331713942725520753247882160233233810659872320013490678293540905682763004701577539166886999030929149615727283719210938852955246298552943564544997401212109884166459410776447316965005030540168194679716056543346166178289927847867350690168409590071036465742770737528525047441479036802972329076247589960183568100359351926195539480265930025729442889088341830486462739323326315884590943791954429076777629066500530853304978150008310595458730442494146927700790106218590097932693112706423618740681331783998499296827270036330218626685393219202591165186599618953215637133312541102195427558768846817215742106032734996160477030923849587909236222157288930506710100867777298876556013577117273123643074932582388975796197193389489095982894658302357749841146872031483518648839563135920055234754701945189756768620771619569113294256842623536635926745458316067128417008263224357101570327308608479864068884208875318621255098368613771041135219796114970866645342494342743491988432903894315174774009866878458499379605938175497877677757875655022670452244008541069895352509265893126683393613461424735465190831878048352752454311844035487291248007657638547868523906879966359128994215980635747400774156477721956123820686246364174653476131131523639249042200081029116835795773621124747231269450415378310162386465271530411445371773638761984728699301529582163637122577614270286649379256578770583534796347297292334167255459337526747308805175931310298313891273393926676984987738376850734743920110611813688524307211019219615938816897225082542451942893189506665404141764838899066795363928507380883112551068000246296857306025489753838479066264787622570985528348067066313570599320736491761935518061292021020092291296313500741522038211970993834826641434265616194665718032265459035420052712305854138327317942734978825908046142095567195270670907523930839411427573988493130619594518098757005216559977841328089449679429199334502147628531135850819719160502812048875934718807882584475647717591615375500608912309016448142885509636844142032024164672080082942820850474302954626762561031998347878609797517246826190283362557218958504318191290173868253218113540530058548584956286225378632361099002071387631116082562393483337320855376586431343934070428096984520773554661753733736298041315588798111479744938010074442898554572566308750901517986057193643823522107993435053582348517396512826215191282195981142417316802709800118313474621126312475893360878782010948471905878668665939550389889500703113156332707361295594251233933940116975182831455997759747302033271294963516183254944957845464897201109723627163937896216442536817718759272700990924902412824946830999914738643649341130677310229237766053276027757238588376859111577995429309856411923217695383392356339923744608216128904679720088603588519537031190723762450460675753230394178545717364446145791614150014337497757362140368882396945076792602397903860361538520739129891997677425281786387083013879382066995850850478096020367757159673490162702923955166281230276817264103894390018742477143206159908339753250427357054346345560711737474075519342112900661420135172934935006691281620543221629111440445559441976116873539981193874281554852068128854576886833374183380433988120562005143266088621915572758555333023565166399841331576260630147347879855431765326362803721262749648269189292580840613202052700085098747193322532289545762525834557839926492349413661454857931985776491222465920770940284951720063681249266680393172093422146927163937249543576092204455175192476704757563572657983476575300983854909839931477106372405457673967892729225556727755791001310511623378446835677000103142489365496188886656742674593096553068957951432781824069166995180675571487684368078188903368197862691197893923413593758228255513964703613365194263041745353732603883819591651198163328647359263840115231419254994040483663526679511389102163361064904832464675048442450812995407877106094073163630544468902997162947962681151549135515064956835865128332776935543542179062736658738929487543350287814238341012176971735241193450883488497993023894657904382313771606082396085875032939193276334831934927762025137808450970232748865706658899178379861785584928441656342249624197217407107252788507900500065213662570273917129223369328003361799566497862664108523043532874462298481570478191712695887600445906538742411266037626250194681348609740978731395431651390009805872479313804302945215207672728262198020748107923011772632106313906976014578202802198810574338048190232741503810221998945857714777701524027057906387271145801974336001829846583133594916021667888805244834898867848454490005882490430709357104259559728525661759290840404192778166328118468987566364100313261103486272478102410886583150717195652590702693438370431116268398941531393173232329182523029373953666722930355581159741851455364071978618240133238876339809167374968843832166665519985534195052290296925244261980579901477892749031706438113502010141609429618168318833700525994996933201209979295358864812938174781698127987443917332660983618787366969155648471323186499180343629905026045899847736871753367173198465230176171786748319293667230397892655009753701316936923422618588505285834831196685444343033214413839331488365350906672204430936087372333171813341101969958814580397790657985062155659523502286456971219972611601287500388267917504493089629662536940881097472096432932939998174761146629061891353195057146740375155883325549103954264684599882308746801143166743314787394900842697089925317136353302219584427801155394210835874481251282253494172497911899389592752640744926350517491409993500997959007834122006402090210538431560075095682754267204807028814910990721047872258709732502750194055284615922146748558894788940754939148340944862919135493658527439696933182919275742992157721716440925639391003519288388170264500718942568493255346782723915788011130177212147334831209481773539856770884460753540981694129070621833978506816012094938820117767842401507828531641832365443947061039179246916687141166574528988681867086322798268905589275286241663418843823370620177149508438896034366550696966145078245654886325101635218088934699230137360173153902724296180563572441770590216524933677743815416584801429679413340388364884859179418261199574564322016266735846480966523245379167718830496786384018613295672983403178586738314867700168927804451667199631198418244488072913457703567160290637704976550576716044712730037028062621142199022056680307396094567242500411358726106067491903664297597679337864469063514890839188107224561981107889276057988049605104136684608721960499094970458602356013507952231869488319779644074777647683121081110882752034265151665943851979319302098133333222048644160543589477156050315865591047909246623157310066750884263316682536170528008695536718799815347567102251397517576290329270865435406356989545938805811798737462976169083493487491493571324242168869274833397526463982484701471691306856197527999286026150508056125761145108403570906270690483255913748674544483096925961329135003560478475202403700622154693160501555198711082900750679785811672575517431022575370103115214390009871342585837710566165692746481450199986302234346466753377147211816773373265740400557507038187657488902312124787281265503945840607055220908251297749740180224905931687299805959415758566744372343779464752568670232220879550135269613837867972267773394398802785976721692049967650667537749965582316419787539324614398169210261077961545858242032647551519865855151519427978224657344521470468213446995434222106535226822194776652530846494923534926350875148776097757700848095371245547956652286070179747484366869545262439373499955803815467614496022041048770571948490206464690326369077779771782617227007636228292016663970966142902026766454742472569611469247509450902192418345065973494334124614437057997691992343860115911616226382214839473613264196677726904820431388125905299588171617577282381817172352020198710242143679070641997832675769419607717368668112791200242413840936749324010582310884624799466678024708641588064044483709892951632111815190434602618969543975423467266940189000160229927531828215091364420281895254515827689844829783335741095685820681913291694489147155842961007418926548866394430709082380671646770072195377036206387526500492825872627452738779492716338255337230734455337619472964322468067764966160114545645521137962928856083806859463642475450187035954764475481452430973435764969935540820125912238012016777079434496002323254412815825783593936828715960154940477934162306713394126873090788722628247917328956507259874614579151630809070045443137455704683919626721818069519763890916217541612001553453919369653408990833773453940859459713763101560243124943645147289700664342965797704430921962881940500178436800541745702861211798894768169859847634380034436675331511255938639351924274584391724098163367025747825488808344901694237102818930035368206567840467398040420923035302007517673592301557374321787582899424416613554309087305642697860563807072898355489017140344937466627045765203415832449159707978486224916279136176930684400157576917779301356599612254132239715758666253892980906307727619474988121741085685967128103701311753998119605998857503186117912124129337924407787622561344236999115764090711145871572618304149231050459655668495286806736497115734722849543360408623664875624536383701774362076952298629891219805213739452480342917589629099441793023374111218731088560925189319467200161564777464816484316758361059604346084217250140433813284129741498510824324406487133101256261783909821760111361144283969283373055116595861008284695138214854548235070682301687024165352052935201457924385816584102483491183907296048546985814876350785789786639928818887716278018029121129901647375389219617993894265243120732049112213675201823251881774204362118807014864832021642743306627616708033299809732329906297804580450610308851032985310914621681653391530521861260618721735776496960739349706881990050088431254806373586463267026506438236358058091819808664009000541631650644336014079602362909096333893842521154733533448014818275556434416742321436471911311308746344707760461022599685323808143397242599909621382801087550509307867697986741255026050677104928533473579807505609045941129561360311298431708578231273342942966782810983873662320279123435355973298661743677435506307161919182988755328442989251605174085169288363174750861759898645679242617095457432552332832924301610056784914097854600536333827863717469362615018021948096552300951165962167163410377907226625412240353809308133492649946059666623194100537491186536113967187222870101038452654145367165222814071209993234685226364016947451477630098756356980065360425384423853473924619346615331029491459804680159688240487286828345448398643710501492016150806759059643322138663240288234371040540040289516533009580757943381437689083512765171789316996608613212056445963193739544715480127228599114430316519513995549398826212545182862344579883397769201768795978070801717805462493063835845025364840965512604117367241963582628252108693411527111041359812365120938253176240438609943615936254892640727307748198056357541100405020414608850469486734067417019568291121450169299680542744107071693321749605399569997325102406104722234049971601610393785460160029972379704493279443587633490212388669715030816905243133018002407992198301944895344072543431220092854974758466533092952229665527905837085842958114385782309381832978855902866146745976088412966490572825511813728326271727381552547803312883046758886130778375789307072722222366755644144049582929227517685634563647809001275235394471212752578230227838588943778001454789317768989605591648993576873375182715145489009148214659385214754627887557037223851938357357320064540904488081405233431858381267445251016773889815408603205159825104084731447983162279827752260071256730051836704584290566368467066947945075938211021247251501888116449378279487546756196233098920206744895858016216154695266628010925929738842151139462838487748671708900783589023029245738326327142027200023031136423411089248265795883501068551924028110030376917631977020893996124880917599538149062973217955971396993605586291604190726719581219741708627614411426219887081904981944814055852136832461227558725207419621560621616567343654122408870358473376999574714086548469200006911283689189797894620408185856373136389039902033606751134848462711501264708752640847982247094572514285997384137380765602678987699481289580794433538454999701900287868123148762845684324159095238349639851019821955933660876256920878380562259276131504887913288525361290992357906851892209074240083951434170384215743371776603803506064001310517867160359489436036878444210062774719876806400994945997877954750896355928184934138824372868834124361832008120789755044600453464800696576215619214119844671487653657434639996389375961946404777572117686813586957246742205371379849237302601213439277710165358932200923096194966656098167534861817916724946152715860392290108762206072894595468922037143087286008865746626741284763932979379680157090312514457628117145048417164242670937639334905883145922594942593104345584366205704689946896089856280941130668625754103629734966886812637509612287998170772019868475570479226991456829262761707032204181584710776738400535587353694216671042516274091946953582040084625842033696223212804488437861316209684623397756561777695020090595568620885254512150914663319695384592714430732570232286437010455567604539186558174709807578398060923615571894271045233348179101167632437196059783665238404518431595573287938931773003734100794301809239915551909462207081591958759324678612187869888266287840572594702526083776405177515019820301935812309919481609228733010959394764682270914291840650183939386488833251971371429583129115327659578907362487202425324352587486985946822000787590170096253780494915352408544865498661683926808543408940852966708580656659102193023690338362539149262390769721800501732600465785469181714401484404263768482400708490134755368682211845838903050868473544630463027902785639181147508911118463701639581382679410084714240092014435230400951554132111073636515745964682461171657707852552656284913100465572998653818601540357531383149148157463787107827727565880184087542228384433030118306656891888905006429201534271712396577510743519165568941934637510691892640937128773541121609993679546507577775971780723575613707541797608492289600470912604122104899772076374079716636001812623312033528366005682988573746283567686546638430625901950974424953142063806578862951812657385891304795270901122333494801425594262200015536954549898437841924730651627399005903449237494573979255277591588791871124434291823458160936215358022032975436314392443307225682635175040323055742903251275082548920020808022836298974264194208890419273528164610263085187774388929134923075365557607696994029743460084415730984181861075749227249982413367661644471303854013805971242390130512197163962589257790262608718116553489625621300814039774277566333573827596754734738274948178460332243382097179572366297975644469382212118902023112683700155848130996455576476193267133711952379706483746756701294627691843003817591244999185016045394924845458360734844948007453635876045391402603339910303131876406286867607476609408208212093242855223264939193454685344442606741086414139241741994867536351874822102213467909797728579985847390636625127572106189819327040302144986803672946554929589128923198809930989127882244779933789176058814357796970368217478444829344562793235303301435999138098490297303621654258027001657846829006749359409962924511758422327436240626059155788580745776888249568000632920164672441869706971735239074510503366605776033247411589207589202194037527612423403689885897266817987137852304031181515246284311759835441482911401188211233165122590147335949039436330238495495415681917037297363993580762243705903027135396362458702642893167738153862754281589979047462602285580446484420549781391189643606591898876277337017430761433822480482060392129832366330097798494744639844767645722952541963586515412285360569082782503612908518658976303685018899093602616931460619886271819495195056351260301037876843332961818884006753892903465727482543235695635495795311761117544384832035811881611460962754350889027766075409482461383142272516067580911558083510282809026325271303073173272239880530405398499263534978823209399684493876466225914629252722137261091298349078683863153848180148146553771448142186193328629855517203613324506443412555554513458257203341121862561244147147535165678734596760284185447723795064707106499902100745639042898939564002945854038867654002837572008034201122968065415020952686340228395885423205292485113749531696805291142992105998345929382895551135091346327931206494882978940504667451926009918293142894493764610540796397267822861178496780524052764609917522925715469185568356391247931710703285326257208010346033469548079185977535261737310827815052650123859135990105371596413031812692423181583180327984742670177985985816448242814918713636542931007680464229508447303200177041141583555203979274263683322497088292000998551725122786281767246394161738919391366105912010508081503690890900312123232762398118471433265443278699341470407203434726835448727677405685913835874829127093957928906008897715822549226590868325918324624361000422562517005269175954836294031147274545554146665617340117689393835812380678214419827508175284990133884751358754415031085179960680857478328549316893819791214191296916333870061785726320262639085859058549378095071570375018424571436736735575618302787813301149033367869038033283742050019518932257009900522121615450576104886482622284494400662211961922226586840744952416451543799450723744765890553331226193168034610848492970503301354608011167065527745888181243629300759889690587543022019625973501310397978119395475486609897277447199911721773317930145188103431494063956373307706214273921329479017163876472425949302520578392766107726909012010251579781045426269293559451724384565955971987733819280359448446633016391521010337897029208165399648340672817237845856105562116769916402576765557840784279524162556975225511708329880902324724368399915360393724562966979379541516346283092286878934428789969543488785807040306518019418599261345493252815147036939960251354758413563679457186880596271555021354391756433523475481193848787266648777392676328489192325649009817552687548586703575539928958713353753758815485416511627349499720256328794069730554950340551501168514651342140475156803925832168947461850939780019176314147195129613793708585214755869414060059776226526583517309731996327127140446693723042090202322496462705758838523965669536331163559280658602035910325176420829830726058728754397421503329516803230950572027744912325139269363117831423501413211389179389757724027550341250325726295385350029790110327782079257870559087287321837034140018463278741964768414646015194349628581851154260026369120170495125585399120845779710423660015361604433426442865876545950143176546314346926246452245666164896022030106457734018317453565604845622159297143148694350422018394290933797153571987780841064945301516574726198747878539759027070924195812697974513058229942488880877420361350152195178575724823734757470782282111069988578806436696860463789029542203967295728302907341665877760872285948840927496892432652952882758952173153535593971053051481300732297367054628581039874010205737473025386892090634093772490020248241989116664560839433093166598106857111619337379485112000482808649982320194591522526732750646092342150357348821425785788678057087468041842826834485033493842121649812454110996469411072606745745571191237420010236007269608217964064357893357354544244711508211047588693775389213378923858211297405609110176962707110724876848291464879645675793052565375018131073878989202072323900624668542431013868097175325381996090220360875624679137185758502297999927336089946706068416427415439494236643593793306302557949297985969134849511985848832148006310827104616444668948441547175024138136978916636679810636651623148981066250197891142006038229422097622404709807710604722653831999119868381240059270629659194139493658997804871954908462162263761504245104057964105907103181187517299347362661284472249287199249070166321043070922616952448192152290794123536191327777148175785084072345745326391892964710078128786667722686946371409059526925807393712623652052707020013726552758917127392347645667745240470253631003586262042789355783006632823042446316926323208183263297615423526332793185371756984842087073608779554513765129901933822408455538928787206184591416363345593759971524149615968423373147067387884533103815823821046301196239015888346173145613957470129438748187848357760777084353044188996869272216703754463542464063083005050195620764832154898945259599016631150450779805736409859640313988951612116369601114843696256527733692513558729460018126341270749805296387361996763636455952742074181114693432320059069202143461763003251842134210458975638607359145305482095416807868496535124857073314422971872743175589779233870803953892665411585502146999134347014514297903177114078849224323687941851157880257389485930228003991288722773961219273410575780246381384633374431818736273749451841021333416613839327656535094035605817230980340159954540842311643319300088469413068725060443563650877934924432629323433573949010838608501650817895526157436032888264671070666550839584492298160493255606835519659241317718003783423025154972419187010133431023089340202166605055131125656039105567090482997931307736412128328435602141336033548067038466419205933484107731833126633565251480431196078042865509913546485453637650187689340528826583387049363789502455419646410226309054166073657252077654822394430025937484210950988699098318366782463204324334003255322788587412486590621949268384862750268399485580001161206994599361428470077093529273853535586805521833550117793218081322241114927815427634934397348154540702246827456690026411456635302747526888213967312686424763339197193452844295263304558918359884809458719782561959135102591555019401210846153388460937328681530684813596823701215686306549861696952516091447249898004970666411924883280743573277601202735563715466342478509839134675927918096329301605743922728324029209162609288864202473793149967521838514259926994709106946737272626691667331712338214217670453791196038615024660948334910819007769192699906115507463040394282751810154908504369088335127888104352748033061862963889970186222248735406568370996228883459109673882240521979455773331995960443569298443435332240436746246979663336319854340191345126038092252838472567678008637133073974775639545638977922660194487400965965683376215474880370613474880706758499581335656775717876247291898429972547284390755546625045100384917312347650738495751278186154655183065676904635089933092076085498284270650956834981855401332956646768838453975479665756098471920630127665844356207972220090422580326620026077535879636088953050019333506912905940956131863056026102695395082040150550901823197165302671632630046601545968723416362558226279990970654845975712974162426014504209035699941406042531950676629762038682102435028863653362559945870183939106424603607545189497266049414711071928503673332393593511311322399477664627126961082285408912930587277346728754040357180500028035863444614953784488024057845495115899857904244403475879814107005258133182782219284949289922061100168893304893391305682140767217236526227450297520715423055999481056696843788146844769028410753981802353496381218691549327937719504956604274859247639675537341362438044747979520043077754776318961946979726239046514110457493690222879798395735477871053523821930180276449259418441235245372775791065957893828339083779531931842018474838784447091463252619031913563311758553884357971918388874881879080202599178991450354841514069424036791265056842160425996081752653605045696828356161278519620030386739201773298853147260584350544534712250266154280008125090732784177505519915905485977049002029319449703376254801692230286277657183753082723155512500434753835601793154848527765299550798290858852546013652486679116066274750682495632043787679334114565034547712182299835472225040388649694334162446959992417239718694563362066228877720022574209898212588873080992435820130558170820831217185534347749988318759006582709013105697050636661792399468649748617547786461988906831843246084622379950185698557678878437140625791559631740037781412812020364602778142392099356996634657459167002427344931849026109273286859520822937517371836675556610102702505930050575805536645501472608432236313802188562334826446651305288496279902349939716435754493695187290702508259501671177037800114851374439720909373414611482178087020506563411936009338698397336534168993630919108532320331784859336945120847697026370183217601772683918608588005078851044426292724941545996384201484161466871422753612275987724056763214578091389387035188116772775605178214873037986446583313223164652072894915585058944451450260843956781104899407274321377528134706440260183722508417497643683451813534213508330842200391537430784798704604360113599718475236022145096867369984105491155602984327474836775606480449833280321976506363853724501985421785152871465289293124568432787183079385680005766091632550396212439787286677070073100713638745565446439312130757535084744288510790421634512092177202713168358350028363212712904179330681778520202881733695519231518878681366551173324828797240124254465790154240538657303379493775635985834926177323964863521373635337579424320645862611252761326761893190052766031371315980739590661585835734421696258557719429903695129234561904270484253835509177835218244478671313286763800755631962422084435786598302249242789383122423217756813397713117726371108201171981349303401657671751014692739286721333790871638727634725897967169686270782856141423184406449769276132155851074944766127613701457620533811040339323248259800950501255292678490634571475186753802145483787307914676869534679079946823071626042052447110760115047662453130015835977527789747223653810924334235226718477146919307489868905926136799521213804211989595387597482478187246928361004368921214070363771847733184820849985955297464451327013638859970102415224240102544898510524400040762921787654906849810253875716644181749446589924351950210013610420366198176243905462341200489556894134047902264508339836891379369264374574934847606180226250625304114149636648818648246353559732210471043221675109333978151405821243997900075677524460556269248676638806657216578394548370134990479851168463724126181848631850783860379140287218570542640391628791368549873715423803036696473304037041610932625819334339665996811840429654843240280731764384471293387779711706489652919268290767738982292898673638890535327259345039087359220372857793949782382186272756420204692399633592537634625513202164300801246533730204521428140064233237638186336673840991756831151632337378985109794205380228419076647929517963539863024684825636512642755141128371970972772335685214886119264324597272888757967361811992547996543487792065890188098265796077341848401480459301399514199148636616421751345603900487322912916628149280396438614851540513339064185375575430191071789666595274946285337086981582502492627718915423185437479066996151504152157741562866128928142124705662878418865198450159818811570855528796169088406769287724266077074504433634045551325677209290172209909023947743916159409030798157162012819990937211401678735173145240120660444371842575665279059913157362592561047723679434701649371955577978462480449539941708852058104711166109537736377284436410813269568072782385044084010423943385062145971360073353745766840401464531422703993949232233447304816496866523528904429572665117915142600672365468948435613332769059131691903745208757537868062399052064491484050455157372384798065606126748814142180058871144746844172373983164413851976103295102846660630573405017760019052213583393906580616351344109655379417362421181225449726418866768830572010649219461607128108670079857468460552430258251141682593205459227239335063731131211468758573924283968876523438865507569558431534539882434136576975278865866439541894491300774646474102580994102423750376267533752130100604390849979936456799540647367237456094343265816726802902214568533439164471442348251592581912997780506968200178310439660881113641791949425095816859266204319343766856612121695612275649842844013999530859578954255592044835451508241685107319814765300527663237579721165754745105482553245457994150723441576589019209565738774835321550927903401520678149434074104536264063705322469468438016624731378306962994581966939659113727133668922373087493917046803997707739207178378776802385465739060874919140776850932162720458918206041747418857137157815717771696294024267860224455750259382345972345857179792924672122410233497734527293061999061729364634181539346284825060076627388352679719045242952247430982296856431592736635962029411523446958338212535883741824474255988566612891567306712814371841929211386144324855486824895854139802931518551407928978798410698243721035351536345869353909697906620466237403568307212309913789649783876264045055808755007850878032976947802724853291099139680562285789043696295800038795592115414023998062920788821400325684260180814293433090271537772095793417032121440206220639403189582475834779685729106228873181633471200533919813838291138446909146598480587273725342081210256187655134198238949668358788167725518975985636110757799744791885902668725346062060034136244387873006071938557982514173217191283081965344825073477339799425032696621916485281729357309559200994674463620841946089093978655435633919719817804601890398552587427731864189061022615132918061714749694945768080143368118292539971780477262217875014589906617092448607687875314435054905956926990249133165805597829482615486651584195902613327535266974880883087759118678099485366909700185375076667135707067567014383887096885658337294668055383556238929120804295676543623261292337577845154559110711769981227115203246385195471896045945111422447703337263936124374355762162516793529211725915086444404390952886934095888017223799501705755036052365324653972828254896704979894795914065094447039566481598620444872877618340873252398350571488336586440351527613515521825274662302386562327331190711908208494675466613201654773812038236857702983267395220060263087158292504630876907057629732604873498401407226270697427018091402931841640928985807585821823289766078176990520571203065841427240074471465573314832688248620009322483896148918583607411299466912836130405796941598172521513698518831614414058991307309205541489374151576973493267370229864372602746236950298605273805987690263778506364959432971095429476406688347675646152461535810671189978953892584828847153970181846363574103980859172132999006293936590355151945145972746027091476476235205295078287340218122926962847463423595425813578841320524336088875586029702251466684980426677478359407329885258032055730115778327125833600791948448741232002632326647749142651368863438060448351827531919046982232604607751956073623597621364008371503753199506720960269621414150267870519226293695629952049896735457824761147707829507542498012477556186062508871170709463264313621464223805135369791130485010235543886674435019425329695801189347984333677801487983800795369414416018360510091965508218663146441945556042635020428343681948940660167519784227603448782525902611916415959820917700012281784851391559369241586607665626465535855123455915346399523342361345931151901279996617352524600501161849559461350616979182562269049897432272288755830461197712359951667983108289288312616175782725232959301311661646894032838323600874894665853112330938653560844000120362915007791114950870995079328325032777418798962616561803465291409648826874415607366173692779450609047022117424289822221664356829015626549852131584287700941553274199107276685255189126302081988747869195635768243274737565550630161181318458165241132925569247712145282923239428009047639796165780048074821056283285253091047078618084511080840083363854404038077053878586051501789153793651272416831013384609298261718247687295707546574363175735603863575099987529254368790976137728883098816403021538039931620996184584840894736560087775573375190069684493836929651473960585091285552754594064513510038611738084692884259279613199953299955016949706707229606096151477254113919771228189634299120811830076838600371615732254015753143929836122262522066286982319504989600185447330008351896744123213048425139114421637575119970317955524352131136177128246080093180443087641313325655091967409975112709619362093461289760064978295934387717194229413050417536409955762489549531287126860229718929983549443338281980333232452141834005883195343153496974889333076887621307270115719630273576762770610422127508360955344753540030828213532594837868285844818827764769158066602221442876191415499115120165986244438356465422214897750689389251973694074071564955092447129363862375266301265413372418058112353427052034811109516630567046437650597924002393715936489380722031101628118115830942583340409681426540105561936980119552822314899499420500916035359693078653916534048680666863170090618193623984680522303926363600340977198233258144596468707523619798090818805528646801867858430841734443336857122807343501378570802147523244573972799643543986720496682412797645706816275732367668155504982627229597253784255990365515263555623587847557195796723707235468145478706481352096436510499616530539848807457618315904207038367375723781953258652672670424669045876962861010518172347555455721485135542866177810669973103225680524233942510456035016595277980268050935729498028838326702692323872538232911125417599160800704599511048773263546638277983122954966701676242806238009745013946830859397912024302138027551256645499496237110861010494789176564492845804151927034221664851110772674387415133450808768145832799336075023241163655008761404784766697622646710293397786224318505475012216187277236596965446173742769639306831208976954457147457001060631696475755503777967797691501502418409645389367922002945939961365401243385846233848791225903872144077921393702180325110139499438712947400355803398301335679684517465029403048301817985560075703913143459513454519282419439530061340451207496611199053991946967126044061351941821844917807186749833092561589418980048018110649859522391041528468433091019501479532580388884122728301892762877096892994460323782204557792918919995985113869768984307295150361374616450426393324107851302499970752430326505939689167729513516329129969599943844081846506963297662808460148170743190921418248837948458076970767201389041941562881963961440951779518005416657532901160413779725347389314699106606721884734638714155509180125166924176198672354295958496050078172473713593594481066298447303825576767274302239062059713671815030480000115588083425571454999081220205588203174735513940998135780970322152607606614284264436225634290674376783067036695569971334157821870205270397604521341970982187324654368945938250016862828065570346990787287615507147254433795980408467774164513359346332743208985015942723186316832888480748052627115869610772817045870270680689700547722383433020423366184691176346843316977245850670843878095265107703022976873689461030711402064060575311738863932932348091944815139601237636563496178155467517069308520764415681576326955925201515629743087592912646937100726537320563956049429767119606058943344679332151115030655871518047227466219610307287213882791204304227624094294869953236563607081419091249597900240228460359995065119825535203005107487751151704279154627230855444988149227772868122042179151082707201813079561818759822598734085871881819506695855708099528759051567220656204789266369885162364163948440162401439406783888641555718992905395065029554477737946332682764676352679186808436793775302668742063181865752540492669760244399708611840348206498457207367863381728298685998709720740084145439968250665323808726065785083989020728470595716042901756506792673176002948384688153574762236931854632237851573678003800887289543300589132127117578252199201149245491222841543316466550377753760252452517544089765389993966897255710440519774561240566773908021833415294324975616014148791483622664808053032965898738353089908054975498367444181494326834573112588007825501600393926163136778511751040462923519113544089729646163498238490662146448844100208380122769942245705675028835923731270434828402164102132791106107721365656833253723421253446789172227357449420548561039258211702595692004058456358071536923257180627067144913914512821983587306245857936576698620731447226665199798485850070532332673672260094954498715199079608967527980078189154543719770339010453434281355997576633020601942368404977491266879928132101627028877230603495388462883592194186194102346273662750774284730851613671123979487054445393428519683168002270017056038904127914699529421083077942431322946963479843837062224265611587638974195667865771263345925581855632630359219283838615158896179723055455505495437285178822396557280040658258956067057224382769601548460331214799913660585250076303378650660247878952579903706433178126082518731306213980515337612723926196087443663137177519321384946626865987747736067774575171510705583797172488191620721717922197665819955739344243356074508156044895234290929986774696135681697440062580320131413924994665455390541411528790897937190281702131589683739769169877920786900539079848986985138780734570478360811510029793764450672024373218543437162249347205790526780206771821287217498228679810034370528032762086179962108077894940084352010251756531745769486908364847630669525690726213820558413751817464437688063357207125481664393196074664525990237917978236070449930763800792065061719926268280582322193400163923441912114176950674188184123789587933540722078889962944326503943818607411424381752840373172865130447113500268850717119862297838285893028760036903172843116929661896016230621353847110469260543299812975525880086532699927597998936798705406941007800360038736926072823139251042745132248620296952433696095894048826779175739780722455960308649516226547321350582894254215346221860106368232092669421785367424309538047557080692908054509196553409834370989596100573138354651811619907230819818652758317241344624390605052339400228248490978374354744769879216401346139883431795159322346684458744064673159394972707586887787759437940593257259078799789040999257680681291798055712615392807144881053665079700258886338894454468936752561632172797969884456768171390739325426371133579050831094799312574547819223546475498484784332968641628059258621225343890031762456631772878494492019050147269538380388358578556236041654572593817549082671510315824315425116886572316688479373969002874400249869462919122153241601109738759368730168024488586277882146231702065450713169586667851973241442267775548401652673349080698825075081458395933927081383283109859755860970486495851310264146392945638699649902700226362689001060565347546018920137740616194031086364308082645673567613457259702309989017599582689205257092214182925238536497764004415545061468146432440160816669225590708683156832002841361757685552261929331948925148675091289102890265827653717589086180025040797741586772857959518154430665526598372967918773398789559324361793361347536781711002184905899345117750902748766934286892421084807206579559985658568402620930942085711254570948249045601094759976887443198211079985010910491808134515936709659523385891600695521554697040930821992549442889911999492943126441258714737604901813841045734435228552325956373867624909987572491215812374230503920031043166143348409888768503296363931573595128004772828031775406533774845557998688978471933561409231910542053306381481619863973910992559350081140891124324139521764365054154421691007032674083436374950659744897780811485296439447901680240667339918050177899898500545633120738012621117751615393745913844874070183360916588569703591288311529453492813856592238534148282167858909868229347441753212882801929577692016143892129969825342225066842994366688941596198666028626026348505998821610516436922529953860696288579734050286071512092327677766018058037462804313740607288451660054882134977501484062726602754395084620212446788824386769535194406620251504156269663404624053839784152124806562308152456806197354845184957615545589377177252042998091544130434490959718100568416840174514266143249767451917440660110590984547761143414670744955025926174770149295261421224963913863390873269491862220364959838038576114012689811989103100814949743276924090740746099544241662863895691562817958920422797106599360170779900818490787853057278123990214971820070769137289791014038000105570540001696087947016229098825348613121451901415707608125995729190183824594975577295656903515930627974111249490715055149146334731045511913917434043489639305764245516567198185826619846857835214542896828151950650613542529732636494821040712780246771856224050773396901850537982468611283396278735445718081730447501121647033592144933823836888400545332561344314521962017553057741614117988706163003186924027107716380360956137379140841786771695671628602936702400126745596240724533546972287315336731130314457580601583897500651463418991709721898547039781029193087015057272081018136156913429815059140402375600157219050132455937047903999673452514525516092368579655973531852860811191087527984488787625792855939247330046017667218715331282546566970619906296840051776628703815859489486356514452370303442329369965740841608494487095701223823462953351018012943494723925807051892000007184794645637919759996002927691975851299426045558294210834336334699719695817149070317809289433674425154791493300390050014933514895458851965716556220083735899383990345853756515193316139092987800712150754068715084170031895783820920868560038621534867578732632018159091620317852318593939057163429684102593003296174470158920809940447685517513069807506648124438000389380248311196525867154521171706575858326862948569211169795774394675354598422052631354137942062701319471133144563425669283407379349719279742096210257901804412402024061030305068660013250000909213977117639805445150107427927077223392454156627599375374124437199235280815760430977217365704175369109722535134717834497303138444250982354084610510417911796630426876681751444559948049364489747665333403755487304050052301105178393760574451969883186285839571975830601520206916233942093369633295465819206754681051232689587017931692588935139291103919710825221557487931439582472722017235758697738648868855369962215455273051469258490238652324479179034286705093503630829986531398775019517059627999793552096523021919302992771943485751557517845383546785147158313471474672839794474448579825060616482175783094884077025608563183462651795164942389946608705241368682132658821169533409697953003709387252797817285679125652625399000359728281728886070365470591504637583586330120010539219734545620874040489492319088428147263380981745502846588264933350048205858959590389916333430397458875472676131808792454314446029818453371098934541115519618085711515309168881678095716498078393213166277443850080996384929766301640419170135124515268451618983058631160749472235021130954341825736873579870444062591326746479153749550141236024623701434975001695623275137205032289526923619942333555516060316017933290402171690284652094920613720023550660209983618117812965719824334488623909745489731591779090953182159328267989918551091383483043638337105915654573850576366219611722024646679565824175291227728151323276837162156201118903441680123153917935032302942009925821428106801675239571973753856524992769967387173749667932777069288699050974277011419120577916264136572904847194037920047999267946876585787587789767137999575700916574412042466398038568299687424929864005896672477471598047063746374824481426000406064968117958215886151321276215149979228897995372959696337140241078367577698080191460443689636910219441168922806112337917016366483673929111728648378639585773194927253871617590916850036655623555093385307804893059553093964008024843753075954168039660011281682018493612828031188335271054199827104372467145538323338214567298800734509379507019681834405337373983503803544370372889535031435979054951285985896531342034882031955408184360368129971665855351426500505891110092963098310785170266946629093378636861264193405318603991845769712889516204444187192971944247788242078243705293136811100048542989125231785365238958965465873860830803251208859609363981311689335289490785212568908458302736036864212190322506987703801940978514321692057707925917292080092956757498749638372415276299190332304995822624251881992556711700507553286766633622258675824976273745433007751900649297522720219219619557352936697851965888693692398057555745669653029716454905904845164965218167389037127761984505662681188612082484875418345210009986848599172773317615991906492942456150831274792362907013598920957834699095383342604770000587477972455565635604324166598755077925065029095088930283523398981378623888100194061719620894121119696321961123606349238225885052189520468243822644744646990160926917962551962361327634678811863473568175297444177729364986397684746527068518868522667726272828755818352692229820248418606279974606344402419563919755874451498123373070425436314962040904355716185624824763077739563046436056538993932718146433835375660950642382758682904724281453820320023330441870039352977865108231240288793477903827930923558497745440492521341879672874213950508978071075680124285617928079644169761931436485448766394154317184528292040601538662758470903752314309633582834415502417558840903897414367530157301903160649832264209113714427487836353529787193063509477833888405805279637778340316193782303458124732226731005172451273832683954515486464796752870769505057836225541978226412038068288777464559786335948489194433249036332512681298016655989144570439942659655243345456032187740088642732896341905897239459507332936517577857587142285557875335173189692998575694989712911426805389616847152225225059979364019428832356348330725830418751111141356856446781374637308304293071310100791961456420046813501218471613891176074466801413431799462546860627771595192441486482924124404840577793721947477013995457196277940093369894707072184811761220594119736653007586070386216845435705043226947520326232784827020795929152699992456933849673775666076003203733512281223778309102011888720443439681731253364565282696639597487513123564201190746037488932890184292916149559531303045070203325531488327984630577054800617693588954874211548196540102368475526847907585298283721953348482832576935047891221952007788286070238996002557857801227528345045278176802405216819285940791686344167223231238951854549766363136870491007847943514280075530872831973230308898556781544737625424101260514536491420865648875265894827268754529439409582041361204878856119749616009931705100119720850979825955887604352215283378741055628449835711596184502210795475129810881497331001323514057356659591150970128233757441356382464215936426499701166813779432471225822251482326746369854291227554625073997614903834458244442622116195211687091783391398638270265409544655882580976867311512927332209796143063084587682357190381128397836047644813012890091404332691336629510210059737064058150101920552299807392493957028296241186728591237105623575990128208004711308799895811667292070006016489560418912319520076076816145588308064569925991981875394401603783941470908336915719213753384795714513199097241413149028478182742123255417155888128121301570712163960301639010666831464300719763937940109482740764379586566001275100022291463185457358577046178846521652730545920102549239287486845676114982659818648048143755073007303918614421260953862892461717623192581901976588450141644185771789949546142526572462196183959889461313630304818515077769209758321213779890990734750980752104032994814285740867352680708132088471020016991865488035206687415089633772982442220660859273545728962470808540816149942027461090430577502689289719354597645523321310560835979934716992997073413255036412982487855496065755507081951001567619444156723916944595839668465729344596167792937958677267184106856978412019043271484383623988470665105032332340044832847480794413850018406627452840809126671004971804971468701049773763817429802556960632835989350266905020693638294203949393698276688139967138840552772835660251413733046845987281258703019931372685522102825579751573671257765962380857310695015663347975546731942217562593337433904695492775525690189158331313789208289457620475074234912569788910993482213984266452071799321205808932052492499836698148154465609336648098448157146522250887260541885368701056572227157987501386356782346215592926948419182011238091444138557501658422006443836329112004647753309900450014457721372119705396289060581775952150174808723172518931119058396241306755682436957734171197887515611047888140890519235232859680389416015199686484420171156396759637517659010752159988869487937128040313533119538730103417220003896301874744796374090509610167372790509591722630055273251944597085070233983855585981735530064307632110314615041575170481760725652521345571445721845037872156512386417084487493041375239011757287295482405054551557826608486809952272309451594978655338012725748871570827643845767186738267466954914577728632075929140628578487165541121091519473927503938573605658326898923980643722306641463885684894257596672517918406458978190512441114233604242026401344464815989883308611244231808006062542403042966955993937619787550408684397911929067017962606389085461063555497537636610021912892890088507133384151614633614177857759937536759000259323934419340537293722636126737959986889398964174379578226096647895902929551798267049274617655797638221729772789669869068626376543569409820823005261912786591593737907580634912555119624752725630179125819687023450687288427042898414591916245306567518515692415755526888795256035881284508455512830538198400478356307745445095818966273013857408725439992051698294717360035584623843232924645458134079398425883585747813855063986185146224727994469920532738885741867850327313820569637159431682869327643390727088712952480234805513964058653724728530751735068073218030316420513647624169864315182072776612312297940291602507002103187691668349687410369246362763846614133821750649469295747731155560852183626637247572523928553501837614288979005389221726760739240324159603252907150238759392895150292926358322837331272392302136817740113962970299053729757409962789624309389658926928610402167228239371826689205733813131080105387903640185494558989615687226800874464989005328425682728596384132890296294334481192682937528272065365054505997223957514523677288624149819183800701539637835120542698974856737575229897674933813353582308614113084501317884110135184461597848119885649455151016585661706497392283392063272652331397444676891369502056890550485979456757622491470580822506356715677576966037048171678006159275809094939519766988994690743535716341652297466176547535265186840621681376518643935384710499409889047173358123889438476938003995973375114471844055976216748810859892388826168414493592238666021930771547528091419848398337464518191564344214640805683883003998862996259405722422358393209324788105384757061494238805387038889278187483665383175382777448044698784312262010750407910059406881978411129832633314460614973183457257038036345094679782862612413109384410142764325118490510392460679091381557064318276396704106474138961187452675563071898512888266905927139439357546745386880816345266740136068891468314275771296738015579472701513980318907185892751922843449022059885571525775001084526573181435976574378110263340897057399325393949778051128692837495662201822592477839277856559772570028740764796398527066356155213619683414964516378990031412623205124706669647646199823215595802329415192795860098961012292327380029680186044058176110156691337227036144414129500543635434061017792713888323835933160301195659457415369304902128969927422460344186842565927395625057353435745994141091850527513258212118678917975337520802627808979555030248702910823138593457647118829099559734176839551732909086242338089008774892993165601762217028090736773221229178873903058962936428421259980648535932413315803039704670282839380328594283140689041881413786113063717791450102635046360865135671726328380687055882890010611506176921743889576058002749057545285757421227231434609890244458380794031891386887988122136480319284498221179228992916758923023655293124137797694653751811991267027473437676494383385456147272751340718226622828839412450369419354704496030093614576524947109671182657134625042008482720008331408622137714771600406276577305441839208102846339846516980145765948684839902252634896609153635315120124095329049088290646359491821783645979879137843349194914008564240154684920298363853357818917608049155765619652139330521189833590724799210885894422610357692644012551401925770542403470953277801434472218523692369393162637469660235166266092567205549487339778888379562052178774750466927848235449581017756280890942825332570787376189758659165502312208493176913614292493716896204722559095681079649670932211212853716313443901649605515652930543678227741548822678034167758900897306360605980515095416940104634399902926603700994278176398519280684472187671212071662418840954312344014396793056218284020848960904111394614710906209537788561693117436945701882378093918372435440542223809012106923684743459720660705903583373083867545780247285185548405764417632990257380781157327618917308956904401015298608680173921417273756045348125775821505591885689533647784386202837876194759974943230390614738427692814396424607981732206290588932437497143464157822528382995892898391207826939717067002466997675756142906487670949144085761276531108443114834124935144402737759882945152367045653915823271353573734495533142459986271487563247277309230586718074065878022093327804960153485444322960086272962634283082875177662607366490494919123303784813491479099515171035211561913379272014273100400946240745138476696841894951789813327615213354444504856510747522314001559556786355361478187260361207095812780505033421375451174362579178468857738776171426622503415193835242299001487499962289887926223893535597266781769902894550707333356155220165193505285677822354924947954182638834603136826665888272728162400261243590847619595989734230492866341503910340099496558548573322778674539780190622390844658156914283563881396607024380463989080170988773292460106017396220868649706754535700910886298681999177063198578407423543144845340583712563482911149904087252944573490275927473181685208444728702167161127773145761723355443402815640092386696264320863891071437432827739556127997948691279560911582722535839019306821245406827452147398046900106948677970304618077067100447399669626438378733410419215497741918297899794036529142695266692510911048391464256461796741465803793876134457568050199364380324665010471976692135901462546390502645673505024643614212817296301295908907510005829940477675754230124289741053901116449824868002607456994043245905118760736739170576015240079105936354292323211449751565911900469844943913314183956826538868058632392812674370635842649920905102786952278294401700717032470910607892110116522904317385905136519911070915863630081722676938003044901751639524505697332467612534211151043414949947287024027326920905209565100524334502411688317988136538404276371552356762345183477224996851609452262522624157869008031493917327387213261885637167746680092430513022547868479146370063945390088084104416171610605825926754220364540163272387360437324134872198319485176208581618755111871938065494625263112852203288572434840570920368318930027468069447084942285635305597170688742655158284761523962476600835725511189614083689041799557172474767069571317900838138512479174812579963900893157526076984947033424553269636582671478220917098761003325074090645234538950724545666190144985414965927534525820321270907644321870920689789070044628017362391589453966325922580759263955766439960908685168248674403881217309498834688639671331214630089636216610944383910305864537052245337561150331894275368114190032141170483324133173210158610795526540408880424740023102359362397801101087070417620579018353212807203411964499593122958578501688961885502681331092821703398135773003074641178617315237252960807952769853125115287089927616844878108286967283050016361536941562328678871660235078818461816732484403996880953152120604605868491582052409472798895507696010367470645242167234188752258776466332273656035942641468524557091141202549441750888591269547983049098121742980393290494816674063089860300004917529173168474604244383611196272593311538120955240258097909579838558700037677312927173849630358771808648318425723764317633251147609113109974723186846625879652425670380757543577801438296967555105102462508210940325359239078518097808577414126227200488835375353199365803683302061485569930912172149838481972889742337618800914377597933415467350944462579175692350317424619850081697388459265405987674838276820310920221191386661397085096157608231176046683551018454020135741435768732551953744532196221051041839628144876462470133549399987159169439984415770425639145392207922322634797130776340300246331212750955690105202013714326596591872062089836982133956511458379979402531016698612406445497372377389065003329847541027432253306234163749489069843350142867757229122994700607814892978520136416460763555900215692829235526218163082631775602874849334774484503571186392484231797607845978182443021756009905979068635493507761523245901407452685853312807777795874896201343898473006904800889663747923051091113257979766539627283516984821642775207402397941968989110613303540146637816801508979515831831944767166340973400073667424040789478913183883786671633465378732193335384630341155947722138706555719646208395334826446838315367069902858448923093626545457959432221506762386798868510534547737317169945027102976013163126958648913839634115786636581580284788481090334994238336039497046906517352902783481316162832070994682589729202356960862057896886103634548187383200052856405823502300009142374297013840852627723448422786846541383213600947806757204420060544387797073114018251694876777648616015968572024286925809793127835578585608800383057365045190852049957881620343899431570230821769489917260434995602743152629397297657305951626946132187340763592730499942756442797341634281752465000621381359194076199052003285790779558463719311846108398845417351273350203597288954303175924831606269602930264541385779644479148352928618152557232012032210241769984452662858097071073779273458663808925511337789358173804147013243476032168592029396341507775731953170848683470905018774932908731225656283310575829599060775058884988418853697144225077279241501788217819907123497273333814157379189161156873545528992472185349414411468913731442585138218254333350306113116093099381793325309856396956780101628303570997566490348199694860188113475437608063516476396404825318032367897456322034399396663480768775981194529054982120349797254980876950319105417762411266189322503393276780758754513483150460416642677094931734554667827156896060128334439403992716054936146568104668607576085629914312431546965488845483649469156794288568652223665954478188051782363137402176279971378784356265049771890580631731162878238303934658561826486336026258968484002797409028608232864529534344741287145102572134446269567782196820065676492336464528471993761663756037560941332348938390427722369961461629569627493395285217495467444093685164334106228409929386020050657173255569262589950952994492820086972079221107178093572353921359838601180446699408504287590980105707210249669813473889886973874652935134904882976252212087240053539892912799233391192629540533530184307171374646798004103802673332384959575893604412905845150222331376521535888662573712637257541935461470117562398145035323761406881037189826448970812157893162625196381094372986783416098073021846538419791191197950455001826932535400823743463597931481156157150704950170287051130398468906177444446020390153694451137095925526233974425816132052880811182525527715286835549303564106839993173776152861115935399531768632241697539812999844033190214772188223438403433099919345842470540833514790186891302269953090979848463978051814127020986063372173110035573250640490333562787802662354101933511679515688371565501476292198086224973323817689324534364586338749855481251262046061298732841536272178589071008500533581885859658143502567493957672462221616989355890751336902267245386818930287651054758944558876270761944554579175756204188540316425819417865195869217686824798141423395491542490282563512311211211444485592885181417204275760415040442290844293487384872678119810273413687604755982361517797637763273538758938133608048742120066077353773598057677920249013921436664134141786167630077399532493135943938119687511671515890095692015231586674742975721127937310347890536079977317764741103409180248484029061682227191483878894429374449747907865646201467896346569156390909901379896522112099799322014865916644000524556980681024702759705816782311549896915309138859962663281653843752578863330609285497921605554597894080071184867247252550695248467435994216621007390835367421995365060200903052819187472025473328694344667052370005436191123492075107223717245841726554132048096240805609073731404538460584372264029559310683043000086133241401963159347803447792302566945551467528158333726550261358461082437857576547963667592909475351127254376404906229287352057333739536087114300872533353831197383433795036175967214548995157320337951954949317234335542969969828748797995323231847479532952469388653265206774282630557744704205123208982726076403349497435962217382412884103042107753503969484132518453984295439578702161127392567066189762300803198147666548830002647412875646347383770163158136767410773445440993892587404218275006282383953263089074125250929495258227398051696249537800217895277898173103816954208339106113955300940979983087539663058910099957922872886601568048891430844457967224686268676388748426822473840568711711285480334675153487299880059481461052633014890160211591870399204440210983281678510614828572261981990641595175024118320955845796565955455200807154223306559248441490045858039161719703159215099093491974662374117412524339233876775139325193345358222324950624836315155001139683291335532534557170230189538110196700923575052991624345544614581948116776564550988594966950502182304375219274033301130626669943119468136830489946044424895330986665365335304341792420698241130722482308367856686748510353318185586902525400044803023435742725452850945628285418818924521459662233655696488900064734274816660538785128046439670378201881054647529884376054247621040163391744433074078144927892797799259048890138730667826473456635900390867390807888618631758744743840000772335804151783527216392261130960553155679556429348594539155148123272496425714633705315229553862873870918590919762142380877239438903867451399415497493100279822986489411708566300185349334207952037439687752997181733374452472528094933823388990048810687817116299292446009559236262609913598508728613172504744877249031562724873206379386954560556235027220597953047891851758143384169748145263088645451036396087021656176498966601411069450116607693087865207752254934759822432412622201806926674909679293508958700539031720807668905716959020247641488596050904833269151451072510977963073262592525270877275848364897516891561162430484654531769133912412392780268049637346595385150436159900271344049903829758926477553692996866760973242798922678759676099235008187218536973828590004364198085557250396874134672820274105454684231535374019409762606948412107406687881854858283503299892887694551690235910287460809723851981741046468797896239959200920457134485404994370061707171419385791809460721797088666506657309063722027696642617161700019549853555605979375890536359212585858575003230023853919228727071656094571453707820855134328978397310956711712712101392006602392111523367994753642087876713999269745734587783201292815147017455069330588805281842541804094420737399761122316546073304282124062442249713504710241442939912842496790962698737533969937425365539786138561760585753526073039765272687124371796467205381359391044386701547684929246843750069446078554850305722358856883318883854573792772114743376860952235229188067898586794308320598998950101414891539543274642938621363354485815101863156460854255936597246377948504967506280094249386224546977150048537015055472386221677751564968893736758886284176498738904796576480919205741169023610614183514960899611934224407890888723089668440889888737094305842266049710488634819768360067391408099780052100158356942030815947218337094705685725924718365374572403886064637785376543937114822022047743993450177300196372673452218843013811227291930269960133070551922495856410025723975812982934672849087187788000119881432863505048166635093149950092073853088748107395150641401843887040778982106230369792915084879735794571364849843490037542172023786560891127058940513356809074924507580994856679333084847981491971159155449902601647401125967483989398439441989701584832412074170026139538158667536023155712487661580492719570952405889242059688989783870800725536230335774745592406150402228052710279990187295225155799755518859780599016865265089073862981389263537112097985772606751009541369276270137109059125835874215960997749940617870264311148387323438633689745342110989001961941356772587081184713353133596097338599736139388009784541625232008406058032512848917198121201423384910760111378349669620903033400555319263323769309854942878836806414940709161152058154320072673306182242704163806099579118533375985950422344328753641209844590923756538298602595024086602737302694069387128620893424060589686524989238150390826485528627119216769291405158428943604657773183662719228271776030646425449158369316083872218041696045268388111232106761185793036974228527722988776582242490330913846117801768682919817084914781596055953115968064098369918148858905114492733279057834228456642018994767140271213180780116260751599285020985714529042255234226032413833463664885033046365729452481773430480606509103613799105155718503858197400813779102280469857003237382760190576130539590120018993507151020786004518051953872541008973499503877753233635489124946604641364288740454978681020191116292403633024935259524191819685864525036429335805841321274419893244660419978791552918616317621481180944531902454944926633594353923430712456329024700267927388255990847769159201898457366813450845748742856423313728040698355289448048197580913230761523509905815242773085022881324037704846735864027679449920501316722188576328817640562363202603330281444986531683623969669950612224683451490197109667470211273551373913001705120230662308124275343247553481352787413018354420825728799995256447806356817162537932362579956750201614012796895840760671970699874310015100538579175106857394797103548813506986871338687568743203212632950119944345092580275343823190460405149844512446215858562865445598884592172793265335589757293141754827692399677775572601413963974388663460213991804860186923636710272907934389297551740530071142556148068548836581119634484193232469854920033828692232947390409973247178005462900101612033496782906900144918065893262773910405927089793046270305642069321429529163488658070233584062999474618535496522770542539752030650679193433745266638687367490012508196090374094082457974734242872186211418848036492129628442369658233004525798097341819526945342945971297998838007541499628846074748974292922767827840361353565701670454952784976670860529366876295324977035770521146716310082209209526636385560167679632111396967229606647896594029199278984755700198424707436380587756210445792777373867530596393681301007182657141817460643820701144024883747197411678889408088919841651255064987348106613982675672646772371059198519485873563346776626342207592973166373595892562165518534617000450203415064529682271345614320854665611469208931757907625437146784939206006241467256587845248994975697323629423348115542682400112256685633103045228231032976661517664326871872624242761177144284038256986205272663808660587229719952873067470326034899321424304139042586127012422875592576355348827665326064907218523632436514334156237143173580687028387611941969415416375405912619135591633590570798321183603726957799076634350544850832268357712894039618070365699809088527700787030974775535088463178887797214325299380520739462240411518039399396865445200589617808441655044293285043785698166522735605831145085553829607281540110619146834447066943331748076758943080309650720217863841769300070712331635511324675105204286872140988797065206821879437503002590084994187779110843139567152470818961566544786957852615854273070988777494359737084000033631268267119677835283886140228061249446432032458227584556289409648403602020191382570626448591985489566570407829778168159534639248750441473031805160697039957738394122610128437834247196820932012976002853768441928299854924310868557150350098545538531743003547926872022593215403805926175329733023562032099204564308830140918610936474748351394013864732814516423982097314989156712547528767691111281754214232356408391498937378688338901393564876692776788138240130524352943055304063345204467830965290021785494301211881079212708107491349925284581828385586495772149895310970628507933676420159586741520863471410127468718602537668064197542306932454484628642904300622116668212874066629792283857394079356232980531334318678856950484626502304829479932064946192076401878307894255530636962813796394529018159448603336224083991480740926631031792723612772998812475254619946503970533959543253178060798008244438992191350631556248431288946047743693789836261287276943150916530135299950200666338305033260420474764767381931143448046119996897921406886069188687669834540173332857432970382119225555363923513811089992445448766467786623527339317223034924759331731246730400367142562880184508891545960343453337153028758981186074187474214997179495350395812319629609445254197981338303570473759756844668921668855902700635645128343145841612783176476421471136694514477333918017801447640858144997593430745524833229045520052167989177504343953205503351930471519843120965865098408541054122425308909828534267220230570169235846972803066434434281763129947499389668693415172993060094572166633913541129460641393603257082725894782498398728858341374692907950181199863968089279119796666107638344461530795957449375039156446156414661884153580557889823504084921651608468356308956198277217294823725986313122080702835003731572596315155045915080338592083547410653840102573862391868004161753553146541366048354251643241080822636597262818226994362199709068681259339230599905876368575009956383378931743297193234750017244129346546341186584046724152432734874945699077211527130495522067348029254521471449126798126200843958222656685914521185553690315604543940372319206249019047009146894123695232199059955366155590618424813064213968542574262604639434827211011421771456783480944184114740074548528323210487317800719633855776288249814636002072764816091272500758268184921207389205669447675187951875417203002046389055066552224458173058773858588905203226203012390574970048839695901110100569019363092500645017648048929730764731234359511245122291056985303307579207825437840863903559704723094546377561916900574615825801800786502469840678536131456492243185799132715749957082894052679523741121857528411263802003378136891439835567468103309946585592693209512225343513336733704592840051686931475756337652975695199019291915324567947310516575575525759926161084460965317840100166412276698391232895711488754628985281352346708778966559172534218797248737134993928107342798011749062842335088724970958135120443648109692154216592182237898136731973769328668113463926079508717692123583156372525469254186655787511098756212491611316918967826942429416023944779157006455458432092610432686391503150989161274144128480623596736839229622734359847965700148991779454302195977954759178203186389160172187595666138224833447168725791240120613085306647039759913265734022189066949181221067441035291885745363257286601026684553460708278113705945420196854672224343823363658427066761377716566315888956057767941111091803576750614656512128776387372741600803038034149650647604315063631048771126272577682243605784359621596890414076349834184866165785618962632507747980485720454617677310045065127546904882454732082648445215766185956103808483376906441329703017143601088441080308538356376379758953353266257429571397883834844992158614400876686206106110374599361348789855227934467838085830250979583696309872208723285099495232286368499605227012760330223751238721408260552196926868602581564218842163068819770274722798585131220744121279595785683431900530427760126745533346635205782643748248369488331613747007510045241551868029385847314134424053856066651398844013177801174863302472796789231133337127456906565851703295760200190356609911582266574178601267041700077567890386856407194091393511349651240183325618426212495918943833397415238255751156077123804430390177036831785279731443376168388820832640767067272947887439683715287109618315491450981709132104475924518802630647670224148386003422536508711427474297190417508244889394965793105306727444699424719693324844834081689700064428873676093332349363094386280765984715149644322626660093932731992926317183776583137230886155123495008949046205400263136113386284340644214014184469202138471663361540804755466610743930690105500147586898061059080586122636372855276321621049481107520669526576234002556589316761636980339324630159539605433210773519868432181734981397230040950846594168393273122740695944086527747252294769249899033171605352004673518803273520991061864912671525814652483234464683068372069516039270513680291845739285852963373453405492113132597329191017296033379834972971684245608883122700428326131971100645254428805676798628381083492869243668126590676538874832327859528922354831651512089083985261841017142531857570058474351522842510431300411609034127513577775370838933772231345349280132478611259400731160499739615501563242750707880779043851758304578633675884849516113058708181321552722758390812005676576322629253710509657456986916553944074124967904904797360585021194507640380475728078845381209203935219389614981470502832879259900915729991969773105504381675037050533146511145754290942091266817300539364922593837369877889342816617252228000767644742274037490094755485345650423160478958142260999959400426591929421732686758855815487122404394348012010984336820879016610838506406735232749466308348069645014738868632020700453364066163732046207024478630215737914538394542370696445419357647084608479792788967853764207645823280792255006037340958119409446028027945432728272773311368381372762468097943859950838082081915632913995910852980283007733581909839837583509499595153026318480014320668087719016657001136826769125751464724008610721003202726555024751064404203008659630163113225809752273531047001819499941878642864912534278239411414351527180077079640357379625543229149969130250889476275220925192257362608449135022568804550675451738167686648722040213381454382184986543906171427847910028157224343676387661580475274389300237348609563048191680044531816914141600687461089361974079260029264099404215396099847326242094089417381403714947256477133154777874688331218298872166677180882367084005117961076779893257784974435856926151830208575503531985323709019850039070471636703328415647197408657048258678002464101321947026862736696864877136144553286062746540602082655946400097390328614410041621106601885537164748934116436124845667471462239769558153715630630656376267407728208679785826582181439254157939607692450510116357191165155061668110693998112634483039688620011576177243146301084902599713434020680355641632364425746863379977990699669666463725379258767356328569068588569045216654834654872957829471646090282778476395768754521668300960595766553109710181791810910082905818840676950304676455049332515767410472639616233373119378659764682320659543218482154163122122461612560891219957742433522995403766683261874028373061187442279123471893061483922150761264012583480262641059528653974486820089539651609925091064740297839818319146376350183161673057053569428283136840810978123207153525452791777336806545847579805517058887814019665344096565747919734066264631921403534973349521405687314292688034031400298775612773647604214931692359698407912222931380370774412613934894234866388325310395723918248216170198324355540402137745983345569112879292366106258929846818368287547428456794275543648103349038494933776824925035497316861222570806585118458732937123088987511148847749937471630560659294042278383205169405064259885085678532962820473834973563326596697202722597255055941606363855562400683049218422555937379030855167809458947040081724353026798215264884044015230512885413180322173841999903050561195970104329572544073509782712479090839938122085154104027821305294989546005723203309104031729103544715716841421180162049338137357466907183293223277014470797130861422051017578792555582695184845023866926428509914576241126600423386439395384559257712918898970977054559814312841843538324494016047364708926999550433458735737071164412965585707446217972904922608397922176860510824286139647161047715670754025171206002375516945462373174738427712503021985737510838027683469069265243333904002223223742023174782893183559232718176249756025452522630183244942635162773593178907045193473614396280424372595434420347206980822134456363881526399172353091901107519583900068980476191709067791737588170979389880377299189478824580948168104860793952115307567669095335203236392726134521244823169698338584722923333432808491964884515091247083880539440545340601208924934663370856882107573568507835645119253124984983503193971937997726511925200878352160605396741412928122972173056953858564154326160688781976831098822572466736637291374302137017319618387854069947154126705864559352706966088035290482943664836450636635232374877120986664193707198110964466445073467406389039988723972652915228883888512759476792980833550628895610031245684410818779754052616481655840851697430798304718600805222885243765059498786037177438075259875644742952485779842647884224115158131946665866800935733170209598293250110471535232503648023584201257884049397526585644350339318494799835872270029593662599510930014613522930084887057690943271595989800656321218839050004216757171106680330150268264535875476473954668104933755429848436402464180635065759113651687329361693595203604051521307105025023339192459960182162805845052696422537698867007122172374420807310896523353120830492163388359354323589979255919275728094533783642249643378649160065198002221555122757391028426584638166908301266736211158940625611461168525260014976056353437557377346315251276889914995465380704357041836872217378894546540975497996545541968359297595873343692951513596057973092027522563760667336277613556806717089160297343160773342175232394281867009914555791181833700480688893820811554366997362718702649856186494177793726659796971639113019738519847817687657788092291818135619181866655349110696911999195067446051051752281625301543718238068293333978694502347828891127541086754276273319934643653953559881311297612937392939489588069361007701099883666670102465170039507535790665205039339878747992227934002323209158883117613601704415889646169576060322426613567434319856834873307790862310970036139940691329145999904172503212787411269272510463200792634234885110590331635228557627846789125654741600781572791350090211848747741499011536703138200465901128349776879801569093800533405415809720485886724748102888139865488792354946963713598340781250430768401266241941223372879325589031888293083093663423361971874710229029367490681034256000594952077710665112696150333539511654680350048723255242616911659491967950606371208828850808291144050077479270952055096672850667841359042941137906236070310741147901292879820602383542507513551037572925471001864176868555423913331723825585319515898483624087607288393216332895439725945176386184846073397624313657109435420926462350795056861356724118956052404011143780961269985777466652852520615318289104139858183962618720885703086441273641447167742017390396947673915102738969125522001486726954959885979727949231550348809517786690914945814190057118475220853636311458826913612358722769171635531409120038592438734584448229147497195239210427676545884826899354122558470381572826244929238902215840325875779224135964624974152362063540001798030082437221728884856152207333901529364063398458506330909140002075941410319046096678049218277660445787529578541214523378454645279752705479327460392452212912063739870184899869863673968418608502603584698664438854888450639054308877132191977721275771512935604492087999256088272838568177977766623785036072255052854380981119737302931610730193303923096035007280598828432229763893671369405646152577411713485770801520028155616547383407270797967305357788318671016342636359974030721153725219412603837854739145091116957934449759309261637226782904332214393059321907336399348159618470219505964893381018033425680652003563049315832198828853744703691984593755400973869299725122810823192469212198265270094688713190568729333035885517585651034485614158890661638155424856244532609132793580763553923910463679357065158358930899003272191723865706670827854037464085253145173357940075590923761934875347065932646745580496353315952036854162888428078239337697573120382927419137185280927760492474121211763473803494305186527807423917083898931409155334246410900732034562970772476737592074773103313547782473282252554333659588278190928158188282106446149000079219120504418490652700779412329484177853331475782423169439089066671023464964750218354475225678445833624272576375782062838721822704920879478969510780908034386154208276702132001356422493137399965021087453254860706049674278062003943120623749669258283652556253086719131368232831316923684663955631668275453948256472911168129306923747537980970073973406595806077796896671023794489580737005028644684093049778804285037224924934401854768269517161762776009008422042948482009461775794640661145756810133625125564548884034963505124326788521989684828453392051252052799687025731845955717616867392108585067810772244152099605956133363168206582901702241575498430151513720187529540250776245107780059051215078737751909792326992450915331104578550723910520148738023056817556316976910425070357258491757372716499040668636097109905192963935461597748660614272772805314206055049443595764927138370012511444495466096369548165094373464287650221121537029180799902321687659846661495889791911161718205526822616795624679893840484615405011898056364436527527127146524907799297404302140194660812054693307938475544878148441666862261589357996358061047703896584427994248284915337354495430572353098576837795460266780426017730309848828278544037555593949620636584382513247272612720318738732137134200630838755887527141043821381631430711973391679629818904445290076726244384486756337327379182429695637650234614394877503161714009269982078155075136830723411006940279525131267293187748402519628900665525512221836985633061559063054680736826191077755638559648958929134721596471114564966347547163341758399775977062076869007414011365345104180771660995958147615844807176156985355760075995497845739762694453966770216750039408172973315244349633852964514537382992712059070448132788969810921004109364513635430476240835613820240602319879033811930059376653845205291896457147966408987273984266135118392547991972386552400788160506403339805920524381621355846660330924848290415961551179849301686835714401336146863905336272079495279128852902574540583322959218841694011710903760646375043050270233740130391443194953537544184094961490674168811931159935520394219638512732037050851069236257090376627746152376628775939118657473935556976322717150503970753899021574354204845961911403917820013450003790748952097713541063634370450931937925586738902768294772416219142534699021320733307772653881596106523038362993155462681926194107157438321100190065941874306158549237331028732310125093325449641092901484123151606549882480614273148593313431095234152891264752202694442519416387337274130583806655768707440320681771758373718734535747151191500558086389495953791491187310406322773759264255138753319954943028651086788855308027595666530480817847747858248203533023026086977290955768350937248612408065269969504547497820901231110085600456461067614079240407657757466659182864108800606853313137260634398927929633608207858629196993611889016217183006697697144659852191525899325557407496207061005809225222668533455433618901869916181649110328413045603346234236022205658938939029129694916450566700591315615191664540277792934026110342862563844618466308066444575931854051151436187779466897802078824745596580803047552958913035351697108509675361460168004895907969617318278727022650107116713710259530700038234043854987447228621868786276831108263396856748446641607188937151801509541511775171399109164307406932076903675289138578384621871339468421341577497176908202597069860743310082417541298049142599196811732124526290729506344802727972293924091142356874081813505122261496643885219216478511973305419107214172485608701930303942476801179656065914526065867840502620216902251944061005318826350705020171165835159259708155924775197448766302151056637255809370795450455660850894956279514537709326979597671904854265186343707482041267361628001831372942921110592856758852696791787592735928543543435052009009600759085697504801816603533269685655440987245709629914568486421962621765682438491767443519599983600753862100617987510236545611682556090979274833098966942788079065960202756879897649161081441684185333729320302756981100933584673788221626816130798638140065055433795131178631018554909771675665217458484262488895020377969591769371146784637873860985974744048332088225219329353165021992226707052145287233156170055457160337710349520426167419573326358111937400700757829145280279072640123308425009582535400332176630367598597768029812631319702012147872417203764080969164121913730679702513504870647634377093247918266942938291617207934191776466551667937153629561553038670334222387339766302996239773428173067545812535616666706201178055813932693490124302395546512699006285604301449462431043537063594974283079331281001169922043952267396367980506959244222060379097756350256895200301083985313309449273659258664895530958721934161783290768488882787548583553109650011120059142363402487425381373829792320789636345949914863231413384719364846850343944888098552482524276930280174828864305318591948270510419445926620754849461550661594848924385488040179681107692595635484623908668157873932876017903863581738858668006866394015257953484877554010635484549625558784417494493360815793856542796992529773980210890875659194569673288353785727347233201473270698612608753596252071301066177925600152883771027261547857604724358613219507088116597579530927881775256399054191998199033121450145204773343804708931202488487933933028607885928965561678040685509713696054098928307942611386851474656221760515435855597733017022140528740357390290548308745109338613303313389849850196281653429753905557656012093008474576320416130096970901249430105679821311028050813912008592293102562924721338349671582819997731700482365794966803659232212803766283201779525671137874448577003494156653866247634891978898158179912977262351984818730758922801653857835845179916242154480357353597918521817882731436312394719560382925157253018970235790643057812985421217599101273662132967228813126212668882257491759058523075649571985803363495718072040168828070535546082716718510181177832812085597296050619416885055048238719552572618487980901945462313540151911482393731799648160820818724493167137851008195843739885146179513453135975135867422209840155224419248248815124153671547316459985753964192762481890578698043564472334647006425979191395951431433434219659307624859468623900943486347975139766469774589420483581529308906830554134116365158982298553858701046075592646191841682956374243870237004421156041096504010812906414250772374309355769359206657127738652075477272092198752472540696614369999312843968807597810471130759736532863445265490980359733727466741513664732461754953944534238399172566262558463611671692075472649508601925396066534309714949142210294581454298668837034667133082425385517084930243707880946175896568036999452115412486885330526275777425682254950100815775196501882958028553138200556088634555407063402523103822506813719184557996740484428315375439320253772774925558333047057538413369695183522482916531281598223147528545091899598872682193715985508299062075081663784640857115864413951818389210065044829873915833871808962168516804076768780295420106901334686432051439335642993024087064794920363892268912160549654798994869498819404081542945291608649581064627768236202131621845811826535301854025203524112619317300206382037799351470804242063851778201741262171579505159778270919733134883469283365271861133816334642945166786203215517085110511478163823334620260382488405544431218539641856374234455909175694775394468974878978615498257523969793148744942455853613758638582697674513543091779359394723667817378186243659392056328168099080652780751261600055661179131816559124701563093337920809690041435443953425737379464606353326774677963812578079688472635846101837350834984490915496080985803226620775704222503444204862167608911549176272031974331744958951825294561854029040372801274895804961849984514511926646433230946194203610998391716229667061773703268672474067647662176654058760654168344506338634182050820922922890080565192735992167906741515238100729547302002583224918196063548197735247019767323790425921380998430210801977517086882101042972264430995563107999635235023972915845990173499293395177213767359191950915866260848961663897140038042864049005451819080559647940068629212660551013211585157619779505922126406875320707112023042804618226518336465522644877475460686063809954097018637621825517463174819364891296877288765005763929678835871479929622646449867268357977316304771030449784905971443244004197220600345375856780804572668950978293888645426009609810847699954474039576903164134986458534168132884649730808019089064401818520926948445860226603450202123488654977682012572572953262682526925831574856220180561683165242981504107294273272599491885098766266303343778794509983990665544640526152812758533590283664279961785938076054987027052723808391349131332975928667492711609126970879912984865450335122566124418663494995964155210656857448197370592162721745282704878149386716485586899523426952755543023713376513895868396280589018184868655505373850890547563685648625789972374989135025289970124078662534695964799312004786299324768537281474928729597815254663170630908342811310877823406362507942110077535542169785113783705774089086571565772705795905724057794157507522543970366672320133715483059105873745897934818511092450197662443527314252638629881328721908569386171201842323999240590592878367656440264828504874047817019568478121703969327918602669641312427328613294169789958278790790221987574465383876148710204950041923116926712342162790297138737283086531382561761668450925311387045678085232012523947136154710748994848231044709806930316009579269068342253200409823473319981729758723579325772961583589201562146556738012014617918852887590314787388727364908762071151218746698497672779478637708013714569736757160941413160884080781436701105904718191694315485233213366803786283673555745422929489511333975985561034985142300066949001846297771177200181459644386920779572441527704211792263939381667884507070000723775700981123602408996892991534639380285712969793312788677303978411380434259012417302515687859145780184313737162178680847415238450966105436276288344943856705082269980709180898633370267297007098722219199572682082199235498480653786457659227857839826887255361922011299246990341400354981209663810861037359555505544536916956364631285941368095536687567136424055419104131237590073317346747797777557135489708625275388716627790421635295366668109810948380463634917562306879211996293637114181552255646546428494393104639089305825399619102326622228563956039418668627495496292893708191455898900671853227856004626852484052128039835627718039944568505031592827331047657885303327855541428645678012247954833288505785769071198769345705500584347887628474823873667432314890638941435122488496569280150347355460449873505722129359427653064540390358542755320935650838264389013623131228044059226586452573424424578776109778560602901405524900260007494163434572389740908829364987686746372607493254574749527217792818984194539141405630346715411288253706754131298481245688544108515799109993995955009228042884432639380007793017570123918802774021356329136259616644092784231313443186702584136309741395627652055029412731166004705887284833950704151869210808713159558240825446532795608301378012880986221124827049939113457131424813186923447184191729198141485909240656171826204657167969098532190471318383520000285051496699523159940349992493590013375244129032701692848047108710193104754486960048955801430745824861303255617640341514419072290422565143587395166380229841304503926587586712652771883436122233916886684230425664332909088198423224830133216678487210583118652761125323381508738090263203389505447343544476467700430692061669526840945352416614196981910395275748196231999247445339633079759778041784752610901954213854385118418502848024123059654229729332122881839348181577997471954935948997204805821436417331297670711963139433852114861091629134845630435752246729104780145324494888801646826130846756364477834969205805569987109393471584783075388588888497250347294851786974693452462628691543960028704413289061836540344055651295869008166846826247553131031590952362832960441478054001274657270987915149337469715631628417351259695185383127300075391567934230983792394304899149568783157658259462915054827849401000742681670274494931485575915875181581525613596145039350164717265132443020950487659340615882620111947036509426982668198423128382133200804423050003834957482044456752578296708068282698526385877314020563993187137046680038832596561126005826625307616664420836174830389621127156363453811986316164061760260389290427413422323577319491854371333124037300752181206503900240257095006030419476418278675435522639656825720281749384005381900795403835053693914988777104623527987108454631787228267326489702027210957404375071502037810798445382943653087386510670376597940744888571513570909036695628171379976016289249677471727047080454667804733024304666233856785681026413250526474115273597081258499598116372012891541253194667711643868005215560779422498287160930672221351913049915166765619173584117003634249904676479852604415588314130688238202695197247215110424042617377862802556166681495528930129174980879411542472415792301566842169176062158808008583042611982488098251272135095896905976180935631328238481739820586722332712398145939073244963576095836674807119067456453185371820703707262972513035323011984057734941537448626415116063296174248614525355224670336458539504182051558998758310110441577298859963889962376869393460395605612584581524852368153349170484531615484173999644547190279064941277689341839919973409536869003359912479888426478360226500969824001390721408896582533623409674476038286473765689552147257488336587893887099628406497510671591155611088339807636815218921574772511275039565987042344946775142229680115493352936140058403259046543918636577509008839576089670662869094520712001696247320255355421075167503955148767497868559591718180743316348106016729002119506889333615364006258930294301149702848340606671075493433301121955748857019805383561375215156062496999769700953586191083183133778953797193796643181194979531778554594855870549137823949135225387213995811586710869015138951192919826453126006314695463889806696324243596561577867812079482063908510736228190081494668019539974226541349725376813864829149418418948881690796929664759288637263783652538280376874806830762347252761385858597867445777400779164104228673651023079511007076369447285659886954190999361201461496180525652034351984350652983301995377137924205194491253181995303989022103438987752984150622847044949994011563129494406854599055724000701982815299737453842789169219687067341961995820437516643870892584916487892404905320459588215072035800043902356721859493703237971255571128087598537899018480591711930402268335059923994295696035341850074294661366824282961808865476052975921751639031302809603972784946247914894028465988555837101534468049292910405314116944327394117685739746763888917459434729569287832588163047651399553002762183895243324848831256298583440132162462428303938234364572651889792553957551484013969152312673791215048104954799850554181667193769536876524715028597986492912334149117762347965683331652872988951339766583198615103652170420981307324998411565953283306784420914408478046392612230391676161948046236954538726976529411332508675484360960451967787246383905589201750772413334076900102870256135080499052654685857702834899239650141073102280355161722231749845598280393038798034737573342093498973137159705910523862846618641082664747949654479697984081624556302803762162406256339461840944366309115810131449296187237579048690089731165074243615193925836352686736636403169012398739328233895226196456348465057883816026052811765127562692093160896146715936500749710383574757741716547151639868250602810022251369160143069891022608261373402221036456243731286718927518021592946180755571351406082147595930764801993243370336564987906063936398825244269360233333704638134848976248444176815714938640287605982552998762301295775885372661997167765579334350098733073070896472145053717559095360011698917344957136621795578356217725452415089149993169977550051408137654937065225913521504887081606181345035847346118362858132858383345328715741875043351284694161511751742426386900190319851863100698769203391476206968891937395015553094293762486622475484018139767648766293765752300134422675964737722590215491852287822757614761646662539805977584845070264029798592054711941749470253875643117759372390610803677224845102121944461343360350639004601704608266044104187425311646235660674401282150299702241703546579419437556203919590474587655844719971687252795255238997001679715132903826331963188101951174682559302896668019431083804888614177215282299635499193486669424439904750473041141552003989280809393506298798796155664138093627715525166527592177957112287648255117918297462628826324158151608202521426094729189893206425610159744164161042117329917017111910573151452357785297403711305897337884806329725130203528521651504460477127410370065862398317151252695819201741106333709713223597554708180000617656430690582674324509631100877516475423877596759633386915916748241533840491526763424529287722984576087818235225699348396964238656603225761538903780044897020104290970043437876462515414256915253451939198989983446236055937491282114772497086121504761812258772674535376901293519864872514685576222386148616716391881988238276007412747921600410622744596842647134907493277823733942099965672871711620527459063527050853212919714983123806209053645351094796944931091501472207549168277560877476532173283961396330668479469512985370504412642692579298640828859119295645027630573424988933240221892285676624244458584214969123560920105275889664102378772170807934176225122598429694283345219415745241294277057195398547165287463006911834208010620591668594951940906399082857454761210442801377323854835694454322420440874088054226535537685731753783301569797058094328315905281878918740035852099901691355294288795955653502741527977115087326775836500667770855585639475840304898547900314890498412769824055359697371842353450940285227274588776627476991940564942017153800061902850045422955691652661775457532881439127575818578639416761649088860003364375406311413421950395881850011288690101173640046267724998773526027733503719157825414906941321690158306097469567616914096005711416771725764873364719268309909523532747273941701088356420543198815568994558376975035615426557212141150371478113119898626621747567770917495118449461795020405217155911449346133084808857837488178047150888632520617840567782722557430808978152903764666129769821390941193336679544187966446420732385354170529659155535642288470200908377922106708006874505221055568424201709216298432964201398343472320766137439925942016142576828943782426341161969909884612738565043192153515141269597649532177627954092509541874372964053505512749898054664871369160112644152156730045619123018920596575239168913368746550227803270830537658479280640032472378266454302277896402129240701435280410836749021391396201605271285343997857353403823349474649032097862839783257915780024651680358136487477263506527760918967436451560292776641758722051970884616092114894905891739197914542394098737335854232209472537822132050037507156826163926346341129412756832701389159808938667398136822117543508012797584802490545900624058492170400048411249882049662315168167278796432399008066573186692110759922207617408305927967280276738462942357989755053182360032553717094849100964907450342616828085426203884783194747140600244232910643537146743413762748795019137671405538252054132581087130279464846360305496427482839825492574057046517603216357469808483331686083207428421938411041871849862134880733303386812072821884267168902946757767445945188865845906104562503335033677641002072194729628424790215522779746467499953957165900622509770670806149590894475980786927562868005776658673687298416250657360028543087221052842722554865111477624042655385426332074025669578204342542603350493460888048513448253007959861488506628584235685718445556348848849330827383045857656574846611626211537742869826331405238375354872327553897839936756410336589299399982690448056422190605817679034665840814524979824205750905013880626110168073968706212878249737322906095000114855690810865499517464626786292190747107950128706951418536585858804677475166030217113562910856085110717729806706772587060213804471264719810332192306860441349385010142607044621957181542994326279919821599428397980966033818967885947925223256759024911665558929318886956390319726142258734288273696338877929243433646601893209338481327874983861043676806180983148362455874109657716614586694904756104184126049137405908669097352772324575646256604949325149104591113264698628115774449673411692224353160234505035571852091794298444117856312031887490674541054469920242684386778271970568071971812425340452038153080871052802370915461758928615890096793221162925766199940760079985834450214745208398480816513080347892453435364904427194319919877215934287919138349235504484110131769744083255355744375720332685472273580818273011238827179168999441843819337355688226611791867259625142307257529359919629351774701515507348286941005804454129023951360919686985076428834443806828825906939640621682957036736011348895240123419193989309547100656279778534085672951230388726080573187598245060951945228961000235394095614395263773502658187095821484491534021859003907378693104605173406004302589789086425260748407471356677060501849383748598472612935263304676795635822847957707240717832480646168679421645856876651334378424613227273801478265744799316715895549107463293688577311489861189867530179880910536009998851848063707131417390425172220859101004801876976338379270521713754795429841067774819098301688861573785919460795316229455939353005021529176678974607238577348008536074920665563611219685330144898843937895640897281902581485677460944011362376028794332321787011108058536991303211559111511577863523721038065301615854847372381691220436357411950111112280017431975880944732949224112707283910888120596625855672910813722649520988800440553675941581129390798384397485001311022849699844673592421839146857156846978309283072391335965878592805049263274939150452282185518418723082383610752079666500002660296182998573287190963338528587139599249130357360202706881421243814943404939124709745279983251294245581468053165666954892767878931026876190479584620972654264540106786678362678979198722412395644533780761526961007483575046411237855475837329729919577883778271229476905790167959589283123218805862031547925160788025018696435957457510076407465386148559919639620639602453138845337389196722468041339760121376647221604720919189891336479852704876255887065520783845291566172605524191021476171071179006751248420053503299241148290947249112801175954804316135174018157186252683280768592925119246141849352063486816751536966045247209854629671069982605053592999660587932966607748798240816664570713290614648750571533787717551037522222378581351509886080923886398250940793310378820422981042985577104974452503477237437526564488408202748461798977486354449250172762979639138783082257656456530906477423609785628284245131111494202529454722203957944376400931424336612291631452413558245068666858502839254619593827193225910077992303672544685218865822189047075296520246332864516917548438038510695694658247303498538479560058411012753436450459233052995754368147064403691854266955642327819671119109635188781675220483282168893639179549617495786960942905868490302887765366931169340156609479822845619633816610826268160255117407178438799587665203731914926658043310474066016458221816267111055581558621557395717512220511258493732488224894406801713910432217443464252700739082239689347930331822160518426115817343323627293848556517981037449590313697465169660584680770255547056546617812343472835297869299038559655479002294122709002441633225272712365411705428460353611704483142795559078077158450799924385882550113448923756650125264648747864611481670749808615418651843004447812490522558486896418303043157513687174508810660613411584405247272212946626244947403313884246405646012534160094225053089262912378881645413759632633256466281838866279160863484368403578980214466883414229825137783035897724294869775534249797913525164761451580271222751359645403830422631859514655545378269263241936273142457394244147225248906978106014175195227845962752347673223997828744650583620499455018117506071026506272585767657596010653081555629959084240785205892836527117966686383052467218553482519804783078911574203261557549574659723791890923175409015899136473359342622289046283781699276012367086853971077901429601629424454305642270082943413495526084664660760960163759541611908701962761743410180407174795524584914051405971130329669040976235970950631488919139124140019782295294740609200104851501649370227627521537845487515468053298710099290531305449683596590950236731173456682894451853544884810537087388603101345708691287433095362043228325495563379447714310467119889179216988049697184987097851850206319865593452802906740698700138791329689831839993338460090883311764542785679470096522657288733974666883797569727025946251802911854892715056129170524551516571664672746567952277167234754013259791514829919195771481507136641683797509119645980606264919155633192351034958464345777873218125599381553204440397628056931501437713665172505839956391929352080815632991212021195149201356709047121747505805541712772349797469106295916148335065562657462880162637570022104472075803112279886373633642832917103155795534355133182029554851368484271776156894951568891564644731581673471024620286184249772740311119006586062127233670394541761684122757419977377961232732433259150600382471371900514675758337691740254843094506236760056276121364711132322446328662719598980797899405765347309632242249862638266950916788750541600834869692414565800317617565306579788761840142627159968569255213612315929307663245315625862915258641051846994631610298887115275428284522394206278368654010710830890213694919443069371342032228382080060155668956113935043419676424398300436400162021175684665862052682914368199538852463908052634041397150720876080123448013643231975862936013264566519898636631654575701334808439954050677739826633233185851094830168609280313062691645257239351675211362606061521580625010922011279539179261680362681467476771900903755779293347937963920823764302818529217503161171267995943969162130481935616160740453710148093606347613138007126284472245304205294693127063757649047429895087307020961206664048012315691885795899357378116602547757888604714952246523750563342906788302316026009089857239523696274591688223335794533655816226275847151167157500344481348908597151816085402618456989341785975925702066784238831244162825174223661878730048931479860367687979953649673696238363536024349939800998752549011122721935041217038824272682273130519292307988814120200462710623343686634324875579737239249488722377609433350071429921681792610243382434231420215484250230579113419706348235285896058778903939217704208980459633366850912600307198440090498063362719849420304536027107760431101536521690460662306861039274593463762214373563401158142227875310567119177364882092396288139871578579636863804895809736896664070548092302854519156277647017375639772846649753657551809396864532397092563966374841033895337807043418313025676795307057969367600028711883803934469505831545927629796439406963792733324230697934130479418960549601048747670089988501886360637562449595679158818630607795826619373960662363809224073234313910758245790004296891475728395623668247164033729742186105865683869304118954971852285413563162790502208980687920482748055560771450042766992348981720096636219509528660551623033681547633156885293965408328854168667441929158230138391814669655843919438444043767965693785189754418545447396346887242451367582066929739311648103989137878806874192186797741471633730923588180185151524214058011491387988142094060995332152911261749475032884294069080254406210047069236804677933814233417118239429359927238054095707408218149283806885852462743676086818666245880906696965664261705106374706162881093773888802478822290912563310072100691867715037572568765619805844178110456651999583799777380494121266790576903211140567561697353059487517265342884308586376174876326172869247816306661108664404152005962388191199165764703931085520508823911636042842273993246579897871337417692967077574811946753558345584743045287620521717878752408151707829135122777729870441721726037405860694664494058604085213792517719513085510134562880381608317834084351314811435974201040561311874615283465608859242725604634022527084827487953324576402230231912467819630226751450885999468249357505165234923007505220562802128682530888543163823137941395848310522795306141055098918895359751316846348097367781124555630717814243903236502586767475087861809890807142909945042844747360147177389842833761911837032939804030619023092041990400003015413959931722091070448491085904904159734664359914535429688689196917011218331297414533022022504866267004688349586893025593447039907926270597197399425558207375221278378849352981362551288542175278837533167108390037949563842954324237460184994152613815220487481458461120145160505953793610622970949810436585717580009720239728571546469168982060766789508543537976128035346848400901930269704564485571024507056633222204861756978467441956900980057592935602520959377111701767536953198246368165343124238773905189567292322027499164370926449167425251534388726766793433790462234002616876698794382684264331896404295588908466226002516763131565658300667867196545612967380576937614871756147925073139978196409225771449955772448428825019765224606374989360082175382142640915195859873724231913134274738653060848873931601485742914914128391701490994034009653654575163246456573832425179850545378021541368786688153789171075180947073706347465131171564650830739326581444038991509515441878166252537243093178574630231277434139546471358741233249468864249319616931958884231597934888908114627543677270039383939312951724734128891780714963231446762819957949817350934940481365774568846613385496644333588451448758604002033425166169696046435478666487534628925166374984682536908748337083510521963141430553691981975905702794345647405501521689627709518398867673187574338885471551910333071530935423157385087993555116070372291838024178411463731333334844476830610757747996465813572089900045751395982390430390054959982636166061672623584604697238268243900756902983577537615454637430655548451964873229760967507286545876801527019902252823142700996559405922881829081497151800433036313328348067899535355297926502998988210529704133735702186173430802512545873562294965165368808247159830514849628149368577489808270177547070322822711357484713109722252583046284822224233457371538579029750703052676291417841444833062119149385163468125816416523398962144612793036056297032244909456595204312990018508184052120467825798544481410275842748419306581914664857998831786447281287228928561964107507238505035407580375421728440157067326938596523868982054862958743534705212204658183462938219005812474002855542995752281476955837575778841523878720499145955826071623037116022608085680404928890036514701350159257931289266154572813844457843535545190082351502554194331779648231903095248968283418870829850501092460100620822604780977336888748116610627715334057525619082269424769257527778093985705469480665262256179894795176122191015544903691084085507062466396726739685202002292855492599371274832237943748800964852543231455945998125581801871321571095746663721906948624013258814836114564005452251720973435655954424733156602091172042901565216671760622442886358146600433660651684488002327428788453018470465027195356889505562489584103542890575691335937164980612222656974915371239233348785977090998387803381502220906354440877125719542086502784446978965570454655894063504860342023194992748962054498245394003618289716169280778492455551971192686029215595377518548238080236392533751710541860070992011268697615255375936019607583287371233760509068269450655174914494844187030943220122920853490813868373807747913391968124856284827442093351457709463714671871619673471158995934110129782749299258443260704401890942874612264746387586630349312507523376994942184036825981396276276672760498410035240991108330523289412496954245571120831412882514292759725161223694185693424866704175715308548802165068840840840618320793855408571286987989594056930166266955488030639638736177080544029834640749867505116151728809136777531125216369052442901250932479970299611224638236744368928745140494405274003635002539090628551998264986877822319783278642321279351604173785731396169371228240953309882606177943096944354499486922318305314580300033516425941877838896583709147868659303904811911800849142391093374476177775993228491895698140605689771556483439138561459752080245758471977675431622850951656810209801797770491077551165572310388488584443005097542857676300017653523465034732492780165494361992188655263196980485170893972718323289463100436274171001760382825644020004157979636970089835014597318532473539324871218739266200021007270800590401374788235148022436502635274519825189640001532818948114475924455461560860388848087292988937189797491440237303594880716014925082276835250284874657209578198290719062600130452273504223148414174887273642587683965021626716384024612474684183240814201361269969483191692611392902959839778603526279993709402547347294780387402318421832230165337535220725038136020506896875861290667941661215550021383172280884476676517736373121820439966457948155372564131365577254029055297798393776765853031832250218437560578694974499450917414500316615132924155824732364992858691735027849420258385468969434605420564289686023476403757866645576822871656238082448385602896459480747331454843332290555473644423070493245676147995457626733413163678714451405755996279620896777746037859492938650499565226629131879970909185754358093104838103909880716318200739938600207933769913482787940694974238257388594808959383183800657374441808017437292091683540572041981009541650082008832589312931965250645976100023101949081573094023637046561452535008578674719686538073613381775691546905362437569562278523866258357665559490821185568479988932882354803649550333363038539606541294831209192814469125247389177049584943224078874605192964830831985308110094634493247370691231788183917378235666432943217842449920371983678433168996913417162164966898786039719202931430051510281056015989322784786029010996429164015159688648317546896540396144183505635107598111673577378972988357143589531162545111775902659595144734245739320999065440804125753152803027387499982014504211538504093619088971303989273063142531365566072456106646665769595749969070039177678139090968002366997863817689874753152302526559039147839727945816805870963739968871902592989934798501187784923911090993370993647144006070618175707968079597396247156478751736400843148729749628758049451452259649582249218417635349543483668480119621595448647149173796910962477904202787664916850105000160281863944401451722343523000671332334404617470918551613374185410873944061060291642634443827086916100260282065709512051138239188262847371557678113835970802161594626389683517095428246372832804465893547975652560063657144921735030797235859471237762093683476377864232252720980136805993241029850900321074260641574297685311604875988690229080704677289813646897443472475315770281493407902547057692671456772068933912620453145668394265911425111453786997116641159141844120537708014487079889916879158278731948229050372008716623383965737726159497089776933168400809958834268194149853049445463544240273876364295854881034225172053371855144701872727140341389360810741832919057204844168433698637975756949043596109714747853023100305670868756968728174770857000404270429498600811472330024779989343350538724472431326962773624757900801170426021734277671467856129402928085778427832690239313731715379489532778126498366044839727940317031861299696617850119407777432728365558510926173549484574193602895062507192119054829758757897864006016417571748851021040400905950213903144897660334974307797199522015073246840287668649168408754740881312295875739959564955520624729627144423059837603261895261584392519840529547936614966435496530834752874985844596181469872019021386596287251664428980166716819864769124052831464970597032239980562837030726372099139473950111985616657692715087076761282260169078840304135123127312686088588023151846628410463508696893531893246503173426588594267428594161108154784556532562362478247741308423482987470346690932943449063112483624727427723534250234941558220667165325233511666326982099876798922103937404457784150385085931218191793247348468437070495467851911700114638826768947221199883689401613542964321964789167591193589755843910710033293395467524124808169015996691075288963428648228631235512359936025945737897257604710014624817663802727429967306611802424541026208705586731390174628444862988723744311683906730539840572157544937453779285270107152869324996616736543273388456347554933835971937247316973462296814663480347235229953603880903666398942942242410674076654478413409765292715986129297532978524013015959240196026280616596775143997769516544053549919916992034553715099410253073561521330552529848008648277121401786844560444931728417895535156601119531402142913416640649292024299948693080558367928645295699397779365490639586830344305432293747010771176371402650937808757372458115160804640375697293634502493643573089734847872351377993133801625400631161117924709857759570207933987199046562703742733276200791903346433317902460853028623536396456760587573938702645574274761336429031302041139478700045846164294618046345154494617301032646228751200480832121631118479807820919760393553957888689774014968583410186178219629279736284434420582518910566846993403694810477108929593643004257061579677635087370235191287977398272770589464689836736035130621908518966864612133653909562431498634404287116591887852482788395265964083708526937082893935350575809868369397247294089906757740344637597859281379749168470172659393961775577148963641962050039838784871440670627355544482581505893057952511820589634604303464414457048809126086118543625624798251292603270504410055242405092018554692137560468164100275645180515137034406738797068961390584685281903740975311332510530262546258393248310219278086354775602855092751559472095516930230768695393313031436178548596014404636487377655168163660752440634843839523201061582830007748550378090847771804181462637759049020049655083170598787110036927017447990689756112503367360366710271343816289327322789379775178711044350787826074686780366226082431433145099000969035239662080088221481586308153305765198820250227579915445867751291112534348579493263011978554802193609104929268215705127038827117089920281352441326352559870939617201486391078167804343860450548348518666897177553250342094949869362484871577376954094713894135156800668441539268528633456619868277644322969423145086703135836297765767960688937277293976612621782247911262739591454247218285991681423341793118080287221351246882857537059565547056259059154392933169341149921674796166989876013156282782667446508251615991341821964479437335401043360497841239242740101725572895276157026666956619501501753558107225942584615384602129195443607983839990109996000429932268054884914295839943976431216788308290400162253208604146804998260206475530684176319876209571862240983671813327697473952222299584279382210898254543198327924735366943291928592466894334771331811413536988214338399771748742654692533449830017547331042053717979232948955433054638124781387025623609773220086743361530529607547917776300400097401665633055521384999522245294231228792819580388968599922605241661696367749068195249093308745250913430820850187350207763499664242637333706701208841351029813654549918194407785617646559337793309863604473834146835268416940386723660614769679471653759949789581135482037731408725095036278907022727973710408411515374135557560274034017643881545205741496937751385184737907379387720200773892616879354906964270747690874540748561498905645786411458375648891419994281468090198287632783419598930342426167454523588387355082149878676205510582305011844545430437311893744367235313675611913589300323338634604767639404404149946345481530923895712093662005699627320518619241096358291253271052858058997841924279520723154178464473386787754431832210224308158357101788456982783334306004407357334238945017076920063257244854323989708587229199418119673223698247817940097076843298341457070694120164767744066907819582789837292478769141434764007337912550278962653518875259511849853229818355271294270003204101564646586003012572653390514492917541142618197021662802197754085392422575674867010044000977262789277114211735944196028307703077819521762792562783085806964049233780380176430068618232572540760872294464689985011102011967697011802182434000531029360067869786418784744475462475509870290311239977908447523657665383108557041238863827076780976096705439057281326869280487536770569458209958106207772592506127943152927925621843896838902526661671820845740216379606889354042574728730435503226398291219734905035336931848396890818277933067628090903323104489263461775248142904467930458292481217710991349088931098533251874834170172271483725305357307122492216492760949289150930151744486944303971501902819342410709346864442144054775263917010432051378601790477745976916077795690442375722931579821263795220759810897667541390351554482226296546703472543320697233674953499630698612212450401771366295755929281543325210555938739229425787792866261428835309605113354121045217415155973124365437719920791561921182889767918572356564804212894966553655028755439799281449373661977660222566880277859570225918962120608318501253175410217174884507091017005486072518813379296648152746411574220670683329192314518718403475260478055253677056081583000360069295640168230210756611240405225890423851089432006009945469903730845788074115733608817623763510764427690720341764279032757510993621267650757480143504936202040521130463907881270391309666810939939766123408531531587056567715057172696014126968294358696871603337673078929235424674369436526965600308636122551605935372698092622203294406593167686564866817806688934636442154873809444567901468565986452027342673354967804193946366848603520601630186423537736455052951217092955509689414911895594100444450425590912783540185617103999091714943347177022514663650981526472532581209833716339283989526434992510140433093844393375910820145465181272993913478410260113442708181194703962076957631177286388744095834136333210285146441523887712722445668424950680600732864811363396928250227492881912405760124812518513500412835101934730108464064357231398392192612900021440002578097605279476862550928484093893071204378278486627641198569438385589334291146583937729208317839078832835232468525962683820674096132577832819135368019610636648515342733900641268960264569303404002797744742179499160928357415906461131346817163189813390926298289085358270562138872860479699969115341819595269834105404453616524011152067434494350922553515776063334128901751897404780982604766315444480362990364448859002026731427009255512183575614287954102286753269576025724604139404847307647458735207579921404454858650337482971951560134083718679670809354742286946488670897782211664295540413741761865181993783349929227664456603146990465790156356089734345019488578770226818850581868678183995484083185488869304484683468828236858140124300769870305060657223816140176678795141888073120633421071143972941735289208520539627281987332214231259710271089771695535982559486981872324827238823432094701426958016015198830592474963962946699906054557273451253096984707773231520479177651624155536608767221250790574270633753138243313606462354363122063519556124974012556149310807950377783253121410915369401942774319943938781005776447510658293479670604343281905318458081615337441811822653962884375264571708578138789634762733907898304098838284019523964589746447400808663206123842473273994308566791302235463704029686978307142157843813444223126288034697852896259932306291081687608247128100087008878911072197806315755084781221559202925427628377680358269922292941333943524494628708015512846023468457999881985557265523964826273978483370856985290464304606780071907779995029649772234902827454136043343487592038467880526898252739983154019769817906840829961744064500060264575394190955195958866733192434301883556476878637030810629910549787899577160995449162240639370023740293371406885062237872729682503531651232658636654731213100080176744813211221078228556491209233551866627649120371758178178359659975779490567359788561495258182218833556060048877267751391652512964889858682447941121724902655268052591842768909289164391436108747243578356644536274177883502970025187808014951666037975010993455009109553487277620721934353121214535919415219813668037016651798334581850605614891920640851151695294912198476005984868792936596249475700046167018106929877952821865178948501799296775367621258543327577957696310233403011756410392415353451958612733254106985365902298622952392802547279838206841173216805964560929013282953500154473108733569183857965162175302220844073281286377442560334872923782126306338640923416886092789906743881657357185721855407012528089639536086651318861568668846485744369089700146373455336925845959733417962811844358660207810734680356940580846430851827008037329828261109288930933392796835521481135231970908565880378692156464679725355197889008561167520504153700942066042646007396931902671699746258154879017759730798249273261902190067108819708517079967085621451893110893580629342786080373329320162485725285248357038966191601139976418472172639392228099747238003152145384597139863734992861605879003228182657955927440415461484818903885866062407930708897667251500881050337137255786641583026302021025150692590932876129071549083266563543369681459238001879034439928931287875268259352755549644243338556832048998818404182769578902790636014700466666343976455017307870912088539767065262056441476689772450958983414768686278270852727399588802211991822285626759895977387662128947495866578040653811164651713411528782208362220559602781141274341841182727365550435013510368450636580729193147105344415649345532147607603196058502904689205102992237593207406811597367405242389928288523151827618430955686937622710075822272547159623133483391583583200931367263894015576963379574584368610537586275442061197065659102156718768240069604475527436335734268321783313615276284517151173980023578999329302126259604917877897116634181910369062425636623214132098737218794662425782288900579768378599794071457014207845256719291108130352602009748239294727590165727926052698380503749056066688171281238377168424070025274673126999930542094756882351094186033215643262166421590562885209358477185124549240840011090639649739811100954802678831897238979572173193796242439613488397350698414745753033581329710334883458294428695516501918177654083261622520561627650122083260050356879671870891442165110259949463287945704892238278233577105481893995786106727459562791986272523439143405091044127436214657346190158212635305335774997436311083237475457830636409973274597920810773224205393611051735703321639732080763253301951797538512194782594253047897801930286657606577473037369446998001826105339152500257033401044533395679393639527539645491319446288086236036082621893799427167570038178015995271792559850208641031545960680670223278035411989286607354025609535914920229248213810032795711542998419254757048028049609929161252023038436876577369885074436418938566806106131985499148671965741800928102975517515738902019805078320720495794779777551764445016980925807807575816449105880161426893734456961543818652370709161360567507050140238205028547532972289554972730593726582179785103733198990636361845911804595552805685451547597745702233729155286355396833961985064150281293750213212738984566330663320662374154205687093511827999532837250173288847525263363173295769648586474016071524818493510991298635858759612017389551616404552569086368884609114583123771348962726152172024478476272280471045543524356415517639802234984286385594756184629866097177793130645991923259974819885356572505160801163316900519671799103403955919828657442579660456339890825005712319486373622705800428583717497926805735575279611352836302665411729885812577378252289849552266730434270836144134746890746383873503544357183090668195806989324668972431408675098971606467716480154179060589668295842530563654059851285651597278080672244246758518510589407380004193569938614751244344942545299283870787782152911145828415001415714915681457489819473768798129906979578042527422527321701078518484837350082081515308733676684943843577017628054842142382301460508550282568834851451503472669065823196913954813733406031527333399938441326598490147341058632456776699756195039357821526347395885687005893446492652440406270201600728421576879651782689997089612112454247589115524345585067826847351070261485420405144445507868802510028715001139709185640932863584454311598171502371462945130497874257616254370925714786158240215486761112955934263002097586330373439169448365691347366070721962102013096994231663607400526409018134261594790498382268333598962917405355488100712652103338997253709004264657393923676388449214196813515555936192506407033675701299786475218215561436524377738130596370220562190504754949575841766547724840262836224581000276413362420421341063952626910369297250144306551133285802658695893392216459067031843580235481938750833265363277021148325869914998673528685221337312121009737101255340683667523938083827240488205735762039049623503556415901911834191594774659962574610502632574942215123926690584030838070973759237714999447642260370016501271090430771199221284563662689581848891377758119508561150626327967066894057871175229011483028331197689839416457041600494707375783379400653281593888755325488988238606100416857608228606335159754126965625680198618546183157578968732734476479204032739378994842861347886721004354846266575194383418111205753479314659938591575103956491991438517258476856042270723271925961946391850974840140320397737198726274134650874805169830746303247945412535221723404787418466003345697929485802041334685858839764325995060390211935211852630450767707896830265693782032219322549584039735209229509753999934330393201187427036368826275288946467614925409621235339174613164974438735187779926665827815097826080190707514062234531699336611648152888078897204638556224069411352593507845466787515548124580963091642597840765459132272543779247646835145056754655609791912977575221015492940957338916307686297311136243579249652950880033650950372886566326830740895672561968521518386673783722209170256518434964557772350106471232834389468881853325177515832924010286620280198929213894185011907379043491296081063614676207902847142422948485430702335216279787955266519654142116295346502089613600273670247553725208810080327918719622371238004715986076168702270967351928623984634519082521357422476603614281146219513782664472844368194790614647356673793761292652017451151632015948289420972093143298770192671224425252095714288165118381715914736203973138953235060161247567849018660428874910698826609492710885950204528970090682269504270207332008146436265037952842123322375290864794805268712722280625796271728524800954347326879621633990205859029953767245621802062617456347831115889756884933577424019553146984001887936304971552736625008472407602423316055037131986666532475979525881968336608045196848806164504571187337858476530593419974225953662294906270160205221342808050614321266698612774390759590852282146637203840524803967042883876428859240769923556069257530732477223068842285179472736936496181864769511222723218215002900554749145237424134103801883186474817061803470179560049742804623870113850215141311642418360946121023403928247968885466514216995939864857700445904408780692588925412292344296752523305666447640747988783947666214170977498915479950130250724066364835342984942696751851097723750212260727267040436186768857775595065030192228931916334199795755484577281907780860400822600330752519453118356613754671922421558530145527428582968513608432263657348907617845625185085418127913995082304152849323132720305357538082354491557106995834755690669785844201448469071582679754112104860638544144057887649273043106287016096955305212602163464101684435913602058487830421255346233965631401178152566034427932236141268749213102271807081955403614217277573605737969643067763070156712730786071350155607861523037168440171075458418951588339246984184513752355878516122036303085622537644765152416803216816585255292911802038082545437777905495993962972841208966037631107042903401798634304538618119805524251280065046644903614009459186750421764447982141062716826095457051101255134861093866396948047421608617281690110046645864280007499298879821549165226156851692880576671416745403839062257635177654926690146687065445994828720446740232973944127001361647791191323607877071874932450967174643793189448220303696469202491081067026823449261987805890991975566552364201400087268206295620935204332819505670287868618905315968799725097963861712347578112675287396517314367510895879827940410048195451437226444144877074973871765338933912332990105754916599447916575603744105347366223606920614847397545386661804630982180356499703258729448578762364290564619791724919765887994457087077637949547625984872116442573881051089230111836598406781263041135717722480339061582232866617082610126551327274997674737794888544140918243913732217253601315038984015672563767059251582957688172066484750466682564006765753484622113689059328541264857844906798357232479738302466464749708249313552248144193585588622703048434381708869172899770076117970140095884251892606377766707664753214684157878314400047492104991137532424082056726852813615939841615139534757986092922054520738800142167199663124085679591961403363545097655761528094825938309183665008992147375537769342779062758753754535546622907951102854633659827485133820565710287950445234507416119574522626523562355434514303916882065016905589469908073751563940409988764257764429023405487713866007806180730218053650512089537848537192316118665111695000272972334512759866037474745702025406217332577869656485651819289378612970182617072719861080426270516634010333947607262562211952520840563195646113146661803793783725099301374741691041562334527510684267921992521470735624021663387038650457609409923820269969107947052939677676363337991585231447084825426742002140850708702144945505901934628344698956374329955867000950625753336661308260465643273998395278273562517651522535998135479295172646623027181549049622218278904992797049145856247005566744612609694948784047227651469437744874285630251343229439048632636572649327335383666320505476529693704195704979091847434328686877655030875947763841924105423918973239398252405687749434479125819162224442799511324712331227544459584400470214383288030899173937459289759630112212185876022416181466675676972454779644640154936682098315335810533332826189421349069993685727778428123973811166168476080553342109354798006809367985246413454500998496461249155501285123962352096777394840215646087762026681726747275193022488829947089783603222603400974989708166230228030375565747111172924449467512388765659181509951192843223064863300318650532434180268673393183535103423400363808230670597543949411649688566328094093354601153588664293042097113272644363039291923015780830784571918940296016277799532086402521431098092650962825981049683901108434138729899777056146997984946293939172270198897122169492057041412132449976668829940131219428701395646190038449105881408873383084599320056989136326768042817736697415515897203960439545642765166014975343439066223795531773082966719230770603017874335319015872441246463331727889371165129818768127474127862943528991406211335623655170776269720045492475924623342415222607687233158436676703404554868410436488559562604568348371062555950931052189472732288810378504628532847200839528782895609713005073686932049552021799630077838182934320219816848640008225622759911935005831167442707650137362052046372960725513949020746826479535739353074590358966581816822024679527300190592620481074428619855311098968155192744558084495864543952061971960880269775566822650207980751737510528405187051774693934581366132955565721855125923556907644340380010236674612727734834039103971015225340327842343048664497034630770822962610499059790422165577195145068336549939023044275039445717783144458633278477206775965693540916959283558358726446555410654174577875531746026428070712130967767809766436766581169881189094243538485496748526344505557047829861742171968501316130833031943212593416943665566351251862375392188522239679039154043554237026727896724846553781035500363767604797834174260906880643904363981933990805182972439025874128154431491804646254983871054373150391797040089459059686462382791738796601199714299180841415108938600758254519920245476078688485189955443483785430708498320896905345382452281808791317446152725290520409673092971487772116594990045108181408063644026041142926563045101839761553419931056439113027440189645346409402752763760278393290506592043847945532435654744816495202169936325154033893208312595545943506324950430252758358178367214282903388639785531067408891884607874197427774994264483005395778280554952125284847778351246400808864869992341099488483710814431555075065518887857657155016485708153234180480079258168654120337277005666474714127428283629724309614872837637791591017328147514490190482990739475251238218315207605593448562749486856861986535510270912388975892160167311099309973646699010190374857834664419730347917201999498581900073744598623910669336536340059995645191110174565036337472628588895353128031212939060873621347727981577078119527947588552112638983212176463301573940326885712064054220196018087511286746344089317482950788936168058173899959638607026470813322590711746255889881998501425302519602047741132446562214840796010278601179885082113361697948846019875700779582437822957325430636314709717337772044522689021258163043873161009022569394955524528741829797933218179293220610507220296206149129779418386737558227140340807723653269367316470410063717240719195560513099954739205231334304087571091227436538850252113494785521286306823843266751651486815619028334922235962480936127083877319796593537892019095450337770769248329315226932489433647937543106010111971851221035989629637182951052608050434317599544425158304034984514345546389313967206016827097340216740656151504078281627774132484594839185614115381772146389223853561151873066089357555276756361833841546478730986019929560781399833294242237468265789325883671433058558205332554203295532240159533188233843374965985635645199611191218171421310443128780939429585830043321929836007699407677745250583835907635650768719227411747955344040571249180609856258810067281816344151165590777711476847982234753497027692611982100673855033990098491535060087036688829583164576916613608773460593064208336236684686540748630998360477839524535781781925040588706967177439079287593984025375390081558480136686194917931354134300399015076190962922517253595654757373724131670912629486311893607895539844800275194942096926367129437941342321409143240913311221843538909040522706191819593384481845702390285625665175924324713571220644118064644374534832924531962946629436578504420425093823826350504519549712354807376062593883508955585578438586935897167528183262589910662211693383918795173391836098254047478219455561930400088835281410028691948713653699734869939633763330432464551360351870498384538241053326865197023971657385172366048496034401517374388127784511606629586276582766883473931753204023110979975258733885504934944971624345911826463822290728254870460144503861922543073533061689112145192369283835288292199900673395708802555649094960390795001264979708264412236101777412605892396870063942342121243342409728292524691078066659556734343312557691158021456358552884690555408374058248736693874600313364988440992446725347450818289758360025909756334684704502404611649403132306339329105646148453769922391365958858694619425776380104999508156482322991344148682447932026336452820226368253974944813099999640378386442002218284698810566254186669809508451315920002283325931629914204801764839003883299720999821349605570760716562741222264847589126808153616516953849576794796722818155148653301631099957000105438946290899174850364567485689309774220425355453614125823500985048003309854691731476288720476753560231746101641922980653099156354107052839258937293355526718242167430692401337067078153718756215034089814556940774944462132311744601355562581465942719650416319981746756961077746088316440821606683948436486600829633121852569062498814792971768917890094154490904786268733245781972657328773324161203623543524132641767676328702301064422132204061442706549845845355023151859112532233171886167276561780059183233022044518948597992099101597663104475478989111517191378491473692710740270390099837456774375399408822611376158008792187738795256382590913850856401147444562766414873162807626572861106615767179982899947591402554123187768669371616522371082877662121674685862939891798126660525055279593316100276130893226047941378215199975005965525032869301741587534097095495072332497724817933776226763546521717270131526025938050872110129121171122424693320473808468852750126264134877548929721636382511400887461360597511693763742753359493332821734041302746508085983708630712010161071175178806823690500307751406481440757511937675682501570667925973792497376714640979419694540412277458698984062809349923594905263276079708701730537830545582695426785040011384261192792185941949893073404464675944655868799681773858565777692848642630420053944608305218304769511429111723924348060665760500820619981531160312719533434028999513757718394491197628078963806382160163992471565732249733764868620153364043384339862224341830199448689593509598491291955879926561068575356738066173697873184334032076311285547994089171124408354670580615517965416679199390585573522046630837515375415490892481910100142433039668922387185202015194590862811561495320354528173081676313045569376381983856655850785640457199934291885250658649924519515699059386820387827268811276158598596338048007626291982931663627579401116168651622460520621542313929035837795845699144161146475202631055900016658580281654309924001832278567716906966194187119216734565378420895122049507328185584283507817813065892568196056753009836577583771094699998638217600281961432176817629908780247648166519864693538434268935630954060808832185894767632475090803240241866535888069243339338546682500566630633004485927195657100742204221708719214243751967898998070366070670253108886409671151640206478989697141314815654643552275098284364050457245492798041885336582207669840225692088967999843658396492235025892012518606940783084660275360148179298619647301153845631952450414618767850055755172224021013437658979446309064929797550860443262787492129030132243051165633907308155220304838602284230912497323929679660642982138642146450647797996054299875186519712346339433083883861905701109742172118091802462052702615207532056802678092151721763182938318301628424188921346141183619242015465626652750858772615966251893266619778270130305605792854348315555997580409346728250455491176369996781631509394582566231940179000413683252970618355360245013246035659280633762633293830349938342879765798160060125275035791629387243150036110328244806120643168434621340345090273355009002978147226130671183477815358669078131776134920437220797003872837298515385411882429517738383460877208403254986015464788081944697532598741136667177183140011088284651436057974476146385027108742448789531316461514025100329348581207307599073540967899559340013822492996299415617684201864249901331666919418050769566898836973840398552372181401808757819284144346896719833052791273443118266802709364006366154914824329742882611458480671174724800270383754330925713823424968955939545253872392489132321434109656093387747275274198756001366816906812368263267352622821660775803662886912133585608289202232383593509341072657341174739294374186023518824459988517071931418270362853225607360499529473286358303856376190331422569171181210657631913070484909004180727419587941399988703377969671530969861939149064753156554777849231307596820846502913730606968444210013049802829825417430432993270470757020687554476457854414219622184327343634138237984660134878402484883235219033692726089584633292214293508289455636067399199606285733139158784101786286966928671011639316782238253263603060649343845799553966098023195071389768709915987079919548578820375437913325667417514479038967869953308505627990128283129799360519166640660377922607108799517922731501539603895266227033411786551704644141171628449395597069279485907759134084873999818509449535435482299113958380513924918548377418750093010145432057057636677825155750222300368647256961344681242284919657404357476251311048337648035482064476327089506155276720544570535516133616119697481169862368593267483461965763421295828212104322060775376370080412875296253200555046230296227794624068016618318959989327277650280326838716133872438607013406045621042255783831095560945623832765749584404306587439649470210809599018659801360294757660202289603841822081098490798304632205318772178323717509311584107715078388331585038482434962739464735782679950848527135677495763462326457831696524485942991479962271738618099620500535793613387083368366449155353943437768258463542303963872555112145868533332470874173885188398536082097801247635127672158593272782419486280155933302858750876033602677177087873127645107594955653912334546438765546375414373701594214309333673646145913017973869320037410358277772733197150051603773323049200372094937397790101017809749687532458849749901917978728583330007204608030482533323832719828829106222457402779395197927670284040711345870813890298152375407771253617549814260737946614491302852664715548206732857978302259801422910733683158597117046505741183270672464044604565140658649252686537045692326874074265594096745872476779620794515353032352905891096433856647855071521068311225989525291788786504851955855426898750183751727058498099676694005842244349001147994326950873370666030122996244342065744054544421607188067291616093155325155437492492431080357844152248993195307089705973666747207416379951985604967384756714891263132532359547432577807063068072249307254806071973733143883347944556546836329843216701459643751545760317540714413414457439659436032596093832456174621352113479416218533983300104477151269639867342732704899584009258934741961584216003411664828971847248819597037778512005405829190288631311183337700438046587049046181380543071289076684024465529669391743999296142094842071692773615741294716623832629621360086687927947985733510491816878959923988194332494120854766272814646206920562729957167381765065656120274306961560925005037562895226611085012060694030986164619245134597272838823033657421948085049553836760579746827044303359572219276679385101716637653747342294355673180822584997534610125281337194301640376894520508829163782456008979866502235418543566199972953274879988534463250373585890603302074510675654014342188391538676950341120188335969768845835590354377289706413123355782796308254638361932561329065035688115463331458327634276829554383625666042600993591489467579718508828744374666002107462601627323944641859013830088585849115280414717467813343521485147176364668420390137645859791980334277351621843755983893232051864215174021206178189144824479290859125801432293935712391302430591096631522221018680557527840154210033663922764678998702981328661336708147578796979405933777185923333279172049891175354127636367195021222924106125729656048337575754018153651167933800132598084840887094980343408938731481312472038726345322366972611916765269182977077933572302650326461986035852183213838878905621566167995773232104745672578168734235519639650888769992868212246838597942994406368026842040049622749226267241763659983937353498427475086095466497495201552218324748552402542158519389266409783120185438443422117996913842355819063328983677766979766617993818066562077659083824327845882004386335958118524588327552400035562930126035356553356065245797021297739424033574341324299916920775973817955922133109228430098519183268287244811164808640595022283818914773446694485921166532646539899949674314320920208757273835416241991452959879220677486455678955965643674862792004960210845131016052200155293522278044641192912606132991491815854059664240301368913241010833975623638810735209811371132820518745650432228654436679578987591686773700192131957980337533284137460960314241641640168042821743302550323148795446320497220231632903415615418611986463254130695668974336351986664832053455185345179722577213889671899705570564023742693365768945214089462160618876564182971348117917662149482214861836965814825087547212594849648918020983890211447060096108155944992100626146449835266342679494330522087314147203512580289192994491962963953709435948509826200406106808911117138250369720446268272139709723870052456925888477126045961386975988882976966942062327239054279241239922753007915547111198417178774423557298252536319250227791948984701898264371344821681319050658377856484905182956246312844973060462086197038370370979232052437198677090487246701992842635470545677560166834069975358427177335245478676280057092349025094857546959610896233959893348297580583436543026950896105267871323750556986361777275123207460558005603173312550843295674411546332916839678252543295425550041726456008565483758406439192140455869255678934415958856695605111469935441624898134943512947093135786865495505354275967332892601913647694522407192215516954441386679060931565384492895829851599818247169848132974788712986604414348894054590008472714137784844458645806422799607133865569331467944224478666905511571089689647629062644080546152111446433310775301424511514759414952318995789535910383049336546942914479482156685210454997041040283473076242043673759464220740854044895877383531714101318870681008943058931738385815742038652713786876996400492119597807580415823311784014957646143456823617832808864808124776963613470738618438481933696383233784211756810825950724525863569768275218706963869376377003581815280495919475819107337945742637143791558139729311604593849758824977712534423527009189751073001289399095483195047095137605530293609796143509285546727692691384343347880164907049329832854618566371851560120622715126227666285203584090269386070967093857564632328645570349828886866567419366674887818630334028103417469036892622362211356474457901402650764633655240252513310080065798419291736506738012011955343529794578652398474934890402854108774529727606173957086997467377818829494460060127793409933908250210961225661837218304681344891978317196599899269869063279473833459880737682224260516210322162620094938668184618620036759289639560080726327677338916228281401478300908169995777899861097910722210875565609758539690941679769063559549003873710724080333376966517578003441238608121222168583959366274135928200115958465423687707223942745435348542518163676310157486075819101951574235929329626907337645529070768332522311130662733423337785499687740428397757783820597054008386444999210094176907891723818230690996830058098069082744528390880868509894824406343685716967250824861090416913638523447226485697053930668582488102632875388094339062462188681453215545746603260015081533661725392329871311537371389988653620307759103611399867999400248686755164724794788990165567793963894537321763093105136074575462677767242151924369166726986899356790293972694701057971420049229123589451223126006928049277523016662687841258412863779410149157710670524204160627836325422890156549122500613068913799306904767052372055762280454829966818951008946389001707999273137041659237278352416123957403605595734919963121755860503456162598618489139293013256924742411488932572458547521628771902895109410933521446970962714806816139890713663061038279769837263066396946336286527070860977954047599657039948962808993571994845428622949848473163900610330184927213634068915366238306039028820445001032506403315979107954216311963088652448622927730606332561082917513485198602022025102119059642829623135871719717143495104845508163978386632593201248118265895725750722901760561725046358333468917685545905697177625689673228970810272750303750795880911420280427138789220527760532266643635247059078867505785454090455760344112867824508576197827695664086852602224844159126953775822922200495936916119872436491328867177002623782085492189680524530590895848299795883812658218857556515646610172036495697746565608609773053232242633349158599868619635365565703375259350498085092127888284448135057109565004654949200189564611413407982706400469154925608663793203776981720452180804664447053239076231355161319518068201114634526493668596376902910342524524507957455717251417791883405013364140784557288257501680683285746680597780280307688647497928063326081294978893086043799005790712760159222303121400416980273463145580812745230204451069682656031935555793711176721082071071627793436739663489560878707466831499250106657408584307492839504827955596363139186048299683363759485787102761088314830046432706920642449328546029948504027938047252137413886320627584555686590894792600954094013636909280915905995131287630286385888627606517707274208972532617212732582770717029163453680879409068695111305484181054701720395939661709323604783337621930584417885747852521642257517030671117686054207894685851279505235516720513054945143588356662679706697946171045231921877513849224029426813428493747627710072144830879237259120801665028567603460832407204789959091389736062156893955251957207536242047551086648665051245771598218743435243284255400494523647898627686071042471234837915088716888878861585518011681789889108273992530895689502599562981513896112369831890159724453513392435600777993977705447166418274519217916819840244344156150673322673515430746577712097963636897138737189891175008353344339727377201639631598259330234717993512374720988690536888631874671166846179835381390871024337834754331081885046589406329508389226717932769244509997940213392415205447684192890132829122108952484955920094459818186608073542557987503593016367623589891716822113816198197221405617266762045425764946186329457536998095138212222587761761108038180621914534533807151409895046329601047844681583323075398013558088744089350079997363221430517545143453459203847129483529167585351218312651827619690256578677186600653231483097793215737106420427524402773220966301040101182759419617652365045925105748316932846828943682485906171936875181811243316556335796913585881424216852193116634530125530167353883972183080315373313135094951849483239921986163878810645744265418517118171982110260474206735066779387337522863932711933875542711472248034020298618156567452477800742201785227033221552421562995768758136594000813696968010070548168793560087235051649130946219766773528589228128062974210595251583659362805425792040510418353395326617023820467416164124501805653725017550898682698313221511220136780773014757881018179699904239076436001357695502974459443820595428296009315476464369415363012358023888184894397956811816007568970008370401325629176158116946491620816755160597124995215576833349195310213295432857584085150179453873661982676439924195470012556096708677300777757727681895080488279377612119159416151135508962641577007039414234616585573185355357383569521510894766448732010542786601269706899304764568852611429291210596380073371875399171651394125998782554162584651580535122408236451406412276515283295472443534635313082360531923467590109925806609263197533107890238013152929312384246060543218243205639215064387374340194673524310763628887495389679576221182707552540040328706295788970732316063855320361398750922804083847739430812327946867096083472338171801303461300925935431738562941313224229642051454499294408968522479716414268358832240126802513632575051452806042521171483067813710715111860109459354343654214021498228924053990203829100817417045493416735686852195099571079446232525864114129505237691825301893962096377056223117789082157454169675222558847303891402509743586745724368432431810264721879329642010457567930684555851268576107385375259361807891791242082358832861571307150005117924968988487256995706820696477349388484105078738219427147406605964752396713673994094777225272265350307598436102459130460365636712564575128654105040123707726495485593491055402276112107432502654683369933277966517325339442286017185309872053246697989909127558566419837988298916944605658535245265353231344194173909524139636193193004551552046500692467880068705859058233677303205659493898885996521562452187137522356233216604805579870851501179392176158595878692480569504184994362592844596608270125943407111673419550083381283087281783636968252083651572657862719466663873483650147017837009448041258013888668458477320273755051269344515007908018219894052071028828208438820469751213853477060990456330940023283914102839615277118446484237251348406432051392958448859978524569762036628419189490202303396030179731403043317134587157951787422394467214604376434038947707674643134869237449804378606450243466202403913691583016724876990317351925506732660411629572713822564418279740725597145804439699474258298781942392291157076181943734035430604352960801631637428688770674669197286520912880634734405254063984992493529606811971570956029560984620753566167326199181251737773531712988147311288612274009439153695013397371422996487262546726118355544537181094105337931331276180965805416240296969736520555472891553774160406337984879083017613518249179039168710647964308693323675260845911258516982149588514846462390312126048581397841024632482414545208822440537477734916018899621812115557740224324845817819466239486687104550775526298160364588569931720841238875226467579529360250896910886872415004999359837730716945179767976378801456253439001670715176110729398661328135888331679612212194535847857222568146130713199564665850951927078114191177005210872270404090269131842914244973653960604062134055433414735680412374492305705739869788147366170694080554949884603206618347719437622603730870917507408789984982773796745396358597312527093352305583395911993701978900276726066202653375204879580744730387132816408292892626107464074821753997263850540577233073360435157868374555468765766263689267675126445704415668378488171140113662954532093796153893142668892665885808094680712067084780886143537458659292295647218204067932152775891365614761840573904395684372962021235365690720707459551921595191101665410005740150886233350205574463814259233337972246870004759348497771831504069116977909652180708023139257807610429939680675417667837421359176256230747316855164892710923002537189943677231603731561768970707070272276003660551246395239017674792778568085234323891844948070250937936199726201857366754964079286715615255935849891547501681357840773224810086886632095523161640131240961336369676412621398080012518493159480103758653629115911321783787164787648842382958687980448443720058848392735932545563127827390312726416160899219264886787362875093764688238683535032641523685418630364654516168098522795522350751651661204640167414163408784492394891150951818442332956533204577016452588345182019009666522119897960181659999731942689176315806918051922533819086536124866437372210338793284906849699863971173727775041196191200488099248269998180692215039669668329308548604773782999973331536197760327309855287067011203374396721593221206376276919967895828721294443419375314860057194094490386110776625339923306361633659588170866797712105258792019513886776967330108638728039325118149948843198724010462433876848367175470435536740412491110816838283840703978581190808547428150059002943161351130411522098534468652752032653530365791819094603030248273808722230037150752534890172596553396727339034708594843971966107399369597533682255905795788236258759134065663149264590944761758280455017445395058184411584492697176197693790064139703699900753716554401049850750690589739226871274324123262243778764920583303776543491316245170287114939971690921522466885227136177866605143783425327824379883241210986265959971286267479130248475901139297750349703249991005545310195798595498931685647935003527804268674765899271523825887762791140642910402040793463436175652040760433012437562149958930084498207906602290710352907206469607368925884155768389344197316822040173035882217617746907004703743500739110120370014072272791047696837418676942190935861500447787038797047027812409704197939472735933655900699887311246447061333508903459514365882966086933094362636622813952579025056544234079749036295225012177341772763506318811702769568885027165318070535885828242113341452968353179017521510873840680537397127401962253188854683169675322847670636805270355887048984422659995899570740541268910238007410539725045993217320745803844970211444343273864049697106232323516123052445203976499489467047113856481841914476869733916199877678588657216158660744975430446408893975523357688117815927221314538823174808901483490773553859937377945446532321519383142882312316208324714345937997296280576312550175057569472079783085975330109458352548502171660213070627145075135916197016510994346017479976348955840706548103499349748370041543350594470150530953972619334696949014878851148524384902152289368647648143897916751297327639532270933879561720309617098944139847426338170977239883817071600104770317953621994997859642848616918828443312200457872382260585334164896119213599870909684659586353023270814958053689549368449456155449185420312814043944853131495641252324839071852170708588653851003451055569573325593090688013318781033344451010143595543341703396267876194362392152360267047815734238617259621857253475358447919371976768015013356226796569243400586355664902001024014814070279464220992698994798773690443914528268806508151369248300336892623286497905118021646158556681006341279241013253136222789090573081805985527334129378702888141505123043919904581145749027457396253214088796444585583210692516809918312811017164332308417707955103792190171107330236849998875293120785423195168177996537323225315292539266026226335221902514154402950905249452804093812572729396228256212882097971364171164400296617623193415589772914252826832174152028973538327832420652969707771532879199244545518006414183555714321774814557919899054381186450159323152890380101302346565193780132766015224157965864990340470232475468480124835601001141289416886388877490145041106663330974105446487792840119170558314953819893578825238661352788252114137102952181565815685819188267380927695523069662880126612403189857951619200590666306002419172152823430712213508464527863000405032267319988727718403491336131162518489702256975143137104684855424599782801868191547935723525648641679783925949886917220897838223780162153758064931047272518183621919515844869846802988480646948401557191221201424524403140906163902158494885094288239389541840838637931151720714938106316455036641838023007820126456775585044104926154721170616872425956241242155238888496734242999491942371593050802122163123091804039906515155077932869536040511792855497228924724295969256490584336107855840918054626762429267556761397607330518795923146017031577226294167723128030641383446995295826911221542845643584609574324573859816492151085385791502508130837124694615999082961075820497399212924210358284195284326940262473571570588062200240131333733926210388632017366083269108011175780252189065201587518959735945265768051862839441573411653322919908799904572843579272790894560741848562810539598592956357479896213662103111721838771172676437441555321299812619910884447451717747721117268470520005280913217649066458623736872902765781280262520614887016963400821469918442738201838152616877565021592943357750468043568789601179907133935692394101925824387300420039306649066850453077389252998718519847583737884678244077212392338322010763868052918100519563501084063478307485673360354946882419115716929167825518893541489859086008621580777394992878559925122584731121783216401148757874631708726773501220617434788144551081123517349900540523877327608441846709897167722412065063887777211496755642357245276212858536013702519114013108293295503074861082755323105495515706468697072906636160956987766581923711329002048366278096355142346683075448880770592479645063647793416580983959063700728155883283182768700906739593086703865898942631902941744746031710798197450899559462572218951910862304718177195558127267592450177738091729524532491812829681075042243426850252335456919278017678222339853199350564874105029152314738350341847659447933734557809192134135089078015836900945316257056267094746503237317653471102908996431719775026035333014165193649670008687549173227341165886322960528907842164744253209335817975000224170784417205390636426411882275457724375940505352237257208815165728055083546751232196039117143811759528310933866928747972869550280122006455958825697468374181713951198523452926390067727839238985888084825254046161240589122795793342811044902681155510928021054976675673188170844876349745353986708747867698104855833372018754076337017888223737607930570781663670590718243967533844825296834860234898869885757300906700237735003806937857334085208812883981338398105435900369051099104249163735550647156483260646017528774964067994585946273814375385179383570541561625778066484417834831756308059482645632797248325082582052578434719361489690139144236643663834696754979694792744274845280982835792265476085429815437447097459922130386875949465316882325299615424734991959863206755763439521758946161674330655143334159043395699397477348099368510422226472923132294213158431423659747504917457622075503529039475907357284663867738857506260395273848807673327662557474545631173696042970405354977027832350456542914331733621990816284755557830949497704632909764650769826756715187956515860123645789498044284326079909364511321145451695207350322178679154671181933381384449090043485923897644852682750189029128627355437560450804339294662064296165074264639014854972610444819620244646103756378749742228027079853168608830093527322097802722651159185242398691136460312160861434959590469557334203587652750654636075550424898000862120904395803410145092060780893470288627258798359672565003608863565707081476916359076961211519829456061771768926079116327534305747121127199744054181045663237592775882124160945049834051619026021173861216283844453539505215551711117905170209743503072677836302065971798153024630583162600827578455157067161535235941515837263337751663600009746872526205932217753862218141951526376651357722810921059102293717024233051544128316671357568487513555806292094933408354814925015829951366446115698610307925175751245224576143096427038888045165376338641764267356513585084896702656216256675450662386788723057220336551596649091862281664679472844595612626255760111073604911816511534141361591369118782670035079767707338289645207161289894008731046731291452974717779278818111348666248268622595181606813980519526199376709579392937424649005841063969384334657769746488174471543568796107935070172267813810333592891134425786533414261392948994304303146208775536850924663726385872082348381484933021921310981969755283876009170996303686027670509673630534428823761373609394956510960068568082296652521854197654027516531490175987293774501219134341296821869186935781239597316534008899987008177992967867840653918327184520593428737495314365048676498257939105634780130485873888710382105134031162214251770886052099662086988646790451020766998543708907320959933242880233143629399288553048813860013595891471674559871376953793771615833023322633573507209176298827433061541512086910302134092437076396151005286557742722390724792491356390891387613635534781030304237228571925144476112733042056931524615923411735852076953760964828045375857727967193431462512600669136985078433533992831433542838717429000148974462415044187028081516597503256796223307105300869403561299636313223172544327911470774144601657844715488391661119381717802602268351692290479985763790228606876982000275191337197506268158813473740646719475078915301522723658280799349205066668527699485314661077825195922919441027040384958710136305819969268704747327406178943770203510850967643541692044958222324189500452462935479408307857774622143807582058488828946130153023101909086508286506674114499605109443009033288034852941944522800524033433817313476805904895736272946542755971100737728571804215615247522425811875328494784797222228083450822054762569369931234308492135986404790533627990538242568016821851512391975344694582267028309431907457494783565374852985691051669804375855156578417870630098755240616180395757741983920603987768663308692332300727223835659833293417764560699162854740264587108317124395623788161876194224039681788552717493299435576272677774337477494217144719673693820164830128687032929117659703130560777579854542270023340165715678513185306558717091837906209755929124512630972160431855618273927670362733513799270679061184443448614976858061144002853983296889802793757746238031974076837421296464917383659743869482848191687928737232793897786300573602618327245777119374667553704228672493143495938010771228442072511917971685957808352835455276044406007316082577035414020589850092842314592860714889499288776118905818436415461881443958141931456277583083357445172608737629171531346605128214656577194532494160290749344577413210725266647254823570907838462538249165653689278603311789321906333284188221974008671713740473865356709107261504129595150185488344168198334540544730757592542411751417297531835764540778096229861783631336544844387444159708804956598733770746664407583093654180050094954821367259458518853177594331183214309457744615029241734298551445783971892889620846937081740311179931911079673960956684730777940567917324381408522382878100780782396500788407466823107756657061110394459408927163704643833483076825897114602083665840392538777776151162884580632576491303592192604581355837275800779366337921721398113309926179750532343480166010380341334029483722176082579180223536969455692576661145558224210516211450326452661417234261351636053423088945591080349242847650159674348046074638217967571389032857748301864231152277568569899570135436691617208552608454010005243509910745702008845206592944027210142508620421079098420917539460584822445472489269355202269592747857672353223377659966551123595760249799929301573341876515074396511950697135655781204509727121549719559460257216054738138720192346142856612661677768812481426697844764274006604771672444935173810627271662190641704975073033273147449695293480377763685903236538144667529494587843212236933778342412996553464376010787506343101404153728859352295653143106024095412539324828796563527786536502262606109449333188015104236872959308090515144599167610555842169509420840739958101725630909191367131672704497081298147213908951472551601652105076810311044416460308415554876708162593543486924285671387908933624365036655545359933189835907173576033074562403495350167329634864171834271594085455084959608660785764255379604207063341707519079167216576018832750906906039420087381241353567477396090662028610001660600284196908492958881093910871554762770550136787951010565629164724660890070587487381287215566392348264451924380253039045585708846786971334931220407979097827712579085639604033112753101956815167894201680617326268477959032821342317511944989748738326785461618992345753750319023453844882907983599971628008991394303877994647028451377773272772124551294167746342173014904377840522475352514528081018052101739533394097758699372123306779085381392839918242890794914498238334512797255728500817907169692529337734533564713039543230585446886502357445016060747004605992139686729857835757772160574650064674951732720574304207419726956824267303055545350356613334150877821560378960635606927784483750929747234053675463030084258915602273169096343606197163643215943776220118596443970763382355576315431140740577649883373682934143939451613955917984601977559488582648636599618124421834011753766711069605583145293302006020046827342132076628201575959889990354848720408899639040839132877520597991447885227793801630843921115054422726890480196742482021337406163512781172359944538612300992792908598048287543307474411208059176400894208191471420106451269473660921020496237623559833416197378778992968478639747374785779956066091740234192654193105046282896926897208957496984223332432482042215990399576714519555256007101212355780157843471901727747158152119140660164258874346718708133834163312537814817986078642816700709457163071646114731497611776018125865186553367225505706456206120250053030838840433847528177477411516523804990386145703314566992465139105435232504044618432030681766620445775195807583302460961019932209094834451839444045134695604515311989289299408148051654102848200939819206351432412267635371782430903659300924393957575517659418499947263516761073287341746620878016113376735122579241018260489206353341328228445523846809915992866689061638070159237132787499738023847609833895265931978607844462389444084677652683275164725656952200249940571440796120471174347737048079193599160696526606087740838493390945808376856471396694351291466377491140422071476648307347713597642989033026185442023699768112199923982341775736044526740998677153465490646334538176789309512451284675504987228423009712705891674198275399335319003582313154645654387773823473249683744653029920258748573990667922522630500332337514394393733106981926326252034601098236150432289680671102564328376227476980483728358740253240387750343903083819715394697773912445774936900696162849182153954184708431166786556455772161928758083229525790950949567489050355980153094766041419263026953413235846423975351460045028226092131986705307251756151649501293065852001899026093664306387879989891455357867614203322538682404922614941628564288593599826845884636068570461707361384156401824162254777767318887699367042701229576868571352133767164264811678689979047744965181812887513069895569713697751263027398364852520759977927551751703550924698047853779604991770020346003203094290973997026422750954575779840170425723764692991394875057963494131867504624617002733901046729791592674919786498207272102269957567523461897716720254186202305327661579275620396831437854265551542823408901484502192728499925425426735395471260802666323982112579988252874652910586538633115062109937062358591034695388229251142379472575553170797309070095273987384003785076816117422063938697848067089948210282850767708051924373783867991660203224293297664301986037366522692633762563733328529432004405221545358914619427483871940501155249228821183553866048912112953188452878689803155216368653076662011333731908921915897992858014175274885384090478065859418343282545326598987097821981201432235564166980074957643513843642169090764227015072975602264868684020640237870976223986857927044531008413229495965081797770858370762140063046467304720251623064921618322319602910010408247983362249234697414352522411732305565940406753950029899486157623962763961640454401251377218318212716203097688504833680369730354085698641935892216886233065094511077877544368468080434724133017080104737324855651534638711303531075991493877804647015754091622016964283733683798383728373429774583621192192162019013299034324722486316763484550159630981968748405212438161702230339446210734540856399129719803307922917453181185197623573456161673115142588543953771937833672337754831834410272799317201078541300497108493724817235260698012485942803844819974377449981383637669576465859244995072041361240404156927173406904493686365058144264393814044000236701900271069313135260517521546551386296500240094161738599099310330453540185291095355024785901842178125761263506612572037981610997160605340272750000660820866137386537913246962556592832864342228610143583124239845046584877646876774788317744120722381846597107104731146651980328112089843292912819749914737926113763987863240601641297813094517558297958278695990037305355016165735387360405150161547525481123751932618408171164098292726319022288007084791792840084834769077491070118913137092502731067284157477033265614008348504352572914942898177883173339071741588971074147424427541563408065826053379593989473644425297854533304466561030758321638718720266794240327304684102178242404424754884968484038730723885568918572033870973583398768419042751345982459888366067669501477395422340634446035467180891021104363785172481947147256127349729054128995015921048252532469375481749288299579282250725722982498738148224162209741232448994298943700174397095534218235498795362728315576430257767575661650182606915322413049494157289519579639457580336476093935032939410245809035098271149379858855304028680370899904215382125788290725712582200333232926671529042568295482723268319222788583318300640746929212977601485236333121023293989807612656140724939466968020211016298467381351938353450144482908584497359192946547886732452607388036030691208159726516691173305737915159595156886194697814747611714437328214923763951017350820305796048728827536700488197443942362073968999064299872988294914414067761061582147063770884837714112934570780799301314220984069722459804708415804510869544613669070005202725727146167750674687690303604925433181161272667897733929682578896616135844141440380719183777392977480702077917142623936478619410083008541815515990708483691018935981527612981940644016938168379805330283848936602797013806980999728184394865960897495168681015096441183879178533508567830263277207446343005880480680165818790333915129089439127750541059544261807916311742373426157554481426416751600277808460402783056879077127114832661365538931150229664518651973051054631177347087392272986557752592952316444744263105904948329556744250862309969094838832359448778632385539997154520361560315869606795333889198748935668487815738450135522207375622205120424735406021688031631735093123686148810431950491867974378547016289637255238020908801345185483192325292300713471438510169846358461905935602427386352805980781138776231428108053420530043485298135002847007757124821778843929487538457154413827574115619969603892556220558436002771017684814077195399317493142668141995629174747904527222320074138760389584767948207074419201327574767978051701394440061980569267809154309415268374835286325002165625269857468889500420733621347092387734051718095688817168681293957233324791077659386254914441936388633599670107415549841065851125123234682425539104006468613321681075278464819288367355602514228551422379400825749909724348647622398412952371378915473501071300124155865750875981238421587217016804706551305031211861653533530900183381806403882765659427628464748477857003950820667424275482925307277588066433369105403345196411519498216954274034146718587257799339320441305541565663464582338105513509765449595002808581761806808614894119277725865540721234619437771130747095859084913470265109676849276803469626705335981904617747739094627567023769736517750828350794618141586621102529579995023528378968103576194397488566686360916482464776859775813425668278133868335824587467528361505587956908708990588599650133733370612039932744202996059937803734042209357986775181399751516468709651997882449920129374576489020497355155597340960996022424819587991660188096231126297549583208965963071027203429307784172540519949998191006324514968247000819119855992822160721191494635840425765012696098076887373767219289927229577764631991443824918703679465299798319307943926280720436876074489494239285961252742948111598476670720765597713927315313080447863509664496397387392698546137556746109927902180944230124777147741194181459273774261905889741617647191027399143908705442509440352705776202629559095471096802974903111616150147837184640573383410934344513205611303460272487655790514617180806618020519814628949744167865150430662854649069264617978930121055653118266052334209801226651709289145675522784597842846204606607828371579292189224700435509276357738228998732458164355706191961175652159849522878912799125613151006115537636271867627243744329041206959978401940083212645418567266436964870834966086532026633995049778861711000140594009629609240200989217058852292205870173857121491921466910486315029740217729142472717375338367234011011901051455354251920911408926575619431511700947722995475697432256814951867225079964283874935553587720783576043323435368546438322252645127307499616922315609995001740948657936818608485676890882662196297700832463799330788310879605335942061978732464491818253820958279819680717810959364055506418879214544284596127556746262843187824650552853163110226929741758886938954690517302813458029729904435436387308213778328357583676936270808295483146211008699152544317215798079425194111041257783399397536564708419405653655084911245270981705618486600028309014830202676748471700857014585464797156292180868908506919496766257825935154561185769478061117846297484182885259577287283830191030700216752689854630464669834240942415412770033259314638918671014793613546505512102776595938770241515462801592733205074332256305916887712555947937642648577630639277298255249565108331260702775733639970033683806468356525751316546750006851675803097078394844963559063457243951448302932378699901353409844350845054518230424846223029851004473711433212573530252949068039463005635603202936188859184880492441614610202328067834366633393194727584233334554082240149254129179072032555084125378127749983128649708671734761688405545233713397570386024951266431654151090067767700901426810877396699017981932627841341201391282511786103310324311424406562199852970361849754149092439312486100829490207315613992579135143771724827770193978204190297219349593439774186430937132122673358403102699672978160162038081632747115294456836585172806592207752806345785446382087740622528331231524666839226717665997185087023604660424364261575609205278129024804703103561976889814353297331020802980249879618396408943432885981879593718440771061474297713504723113295206093443005486923890236623638007869226055575151119291204685923761100121592115324331206689111789220731927495222794466482312858222723278911160682795626057253836721210062638121705355931424657692823276833450898727674963475604670153768359304701209488144337114975716656516191377681873329468517255064680098086876494296071123893923756653190741340931947957575523356103771829238134337113368393917409831376994236788390930257073490077566198270689677978039730387573621950440163830825324266699637213134417304471803249688609922042904049007853143754491411007397802671214921582788843345386254264983481375607514769638612796676173267265332365159107481706970253437074510076860303849413994109573373700403841480086559657127495439731128194175946866157843486746431180135716835932671822790505356244422947400356801136036874766178150750429582154360564661128888026333430906773975730527124924607701742566826200921831265017031873250083752818761795252488751966603424315860107717653678308712639696030087752871457320711840665104455581604966663883091362091260575594875338317225328633879909186138371087494211896058915437670767939322225593097811780004180109376986875432598811679089670255157811422439395519027148261612650139237804203299626439903244022348867972563455587109569576377186246928934402782278655348772225717449397901092520116424933368133788425580923244846677545436252596964177192240510076289620146509872119886445048003168560146103481517354972398527228037315804854496298160122849382349155493001945045240279840137352286189628551832028752781363046350762242872014132446448372412706390493627808425978941355176099697270306502275190868456294441822703923532672519649276808659278499670426530337600911998786662509964277530472898681244115164621225477112918411397266548265422903283939406267673523210913445852379357960987554781195347214437050655136790551786502211778410038392890551814146083378028201044080453656609341363202672270444783067344654221149298708018044300565109841769409035397339909513718304711363306028353552548603695520085051021622387698550255433321185142178195961420355388451895890328050418932007500999630687699240626115231552054368010631603408986052464526610800033532480162558416738732028658566778399361524696765703551469950225955677186991443408949117201542678270153939064521588972491057144013856306639642688800995760456376433440372163648896107591726807191298341998793582322666414762911177617915574105388317943134299105001167364531656998628084174677392653346988820115581115118277056698066454837386863038468121722519419601471868996431766649171760931619591682571417232499740940372913380376092627711464118267124769619656833825289012953503663995290999316594392897262186499358379315404753151329813089729789902535754290428785562181971983761851686042780164635519563484048529130752315665412653129137559290028554120396563354470075313097278339879899268060687997790772141644885734309196480882890518889836368456683449640877082438543547071691477330446276259087360683596309781550920171295267985933786153467633537367778224717893676857375656210376981727618809805414023895250076674032544429313745038427656509070821686522790779274076874767665008487434048003023549871925916143264608164048987320820135039787308863106003147050050018575424336435409967208089176973185863313611399866345750429207259732354664056481430454718768173623926516276194356968682728841072012482036897255939351676971595093148208171353538779952897850246694328131233103613942382937608893615091598221029240642130208181868697606762472053046110660631096356223003745482423188011814822272949688151304163413421450474905378600852180151053807553922187184799264383467905550051406478534291393437469140943228657673891374663392295923386503321532418523793849956905720664727227715597976377305956919489807459728505142578059916666861937708654537500760710358632390157013489527189966564271983213742156103904233822761370937374332280753535485595368615776605581128664832321865712748843235380937216495419460516636304922482608459119240028136810944152571574932002574069183040706438913429910824590490234110857704668344493909892348568421299404599096646910052780202687916403943078202535025607606900393592534189987692597038671582779311637411033050601927373887492506252578699366912721443894053564563485768986977506729256817442084289980486537566635235738437938198841947817991729149010749748418773571108901090817113387958685070412796873871388563105340124536119584738828036364887932298432110881646327592979071600287541971138920235975254631628805556474424952011343439158569339121952778346347468817528927365123115270655404697626872041625611264693588035404448351184169548739926304638429636297689765493778275461830282786738203833658044848907299343181761399359099771872404419662842381465348091822255998846896993187292985790333452509851256261068502692109793859641340961591750423428504598621957356711385382886821451910845408090427214608278342505711703804212629750812488682378377687066297621184513286336241869737170115516903782450058658891987267686649865276554945627450859449622668101043909968726077108694447924530863694284711090077646377765026722845821080318060972473069646833951347435512096755340632904468000968637719290987813187215471562419717304925949556122501095720172106993603735610147451912027968006439863001044245295645246894303837506904431761616195898512665710962454158211328499215481475055837724712378547259365118793231148851294357686486781137341251918944851812356857393413935478091119347408848736514530746003123669481458282859660371419574606910919505966945932100911251268526466469635913491534007598304379081228408646603395213241036939731890168281376155068070445784502055326081215800224684154081305660210698637729057278313167465030481895797861984392085870867088361992329535774374023334578773065472528331174081381156761581385020864765304454491564467885624288213481788680802501307554951633356084338311426526527382222443599848526103054077208571328160570971367474018293162358918326827363999993416193027354562158648271851575500237829296480377725430923484648444113140115413981592319545851451475248653001614306173120692496043142439480875574489468738811374054901869586483622154611893500243481101542906579504131708593097079289068323732029776578297361140434145225652113897068446549401817945316031633940772633425924016376023401757320304151056131327546424376571154785215318605066239099068653701244714947887663613496978030395944693818908920845606387362437972402046655542412732104713837017868967660498122991937373288968798237940172242875110260752321002113309104601182831161109658300235069291445960249747059021269373568055493301184906118304186578696828341569852359205921366978267385718853875846256380185564339974925436304272737817401288717029740707345880288103848336125725161613131089548830997888644947244960520764264426979501454264422268613543065405870095894235272409940555337624905456288661804499579415975406450969314078135574174739919075595407079534605107824620812099531874956870662985007371246428500610426157591317872778169378322160604163522659329446950486602735435084894255663833465821349767458526990989832547699915666394563551226203927133119904507276093369771507126683785620292043503534052846446640320741801606238566551792339672648503848676891166831623440860586899876996870567349418476579139029933134462603205399873265948608657808411665024487837298484389552286524764044683031931064908200174173765676435872533219727757755891249396637444175509564597094470704808742421941676267519508468723544490905106252851458288525282600861926339472806782141294705550051792422174160249122406947502238484696857560562445080801213931083991750745210876474881175521914666911033397121963528072335035431814967793798943190725088848456267948480207563951964752629429090575903906022480268470541390325743588271353129488626534138593843051477703205143152040380104165150755720686120906441187043506318820505865922373960531258469838744196315547653855256250109526160262613767919974790115784903759776473064912576644871168789783012904508823683672215347754385704322399470553445537048551202671595594549413989820865825433312941961341571776696249305316125612574794449491549950139822911602489947247542443800738610098693958643748233203391811479928303644409417277944559831353279012041181872742480684115499617530988468421301995580854395859172060709724866785554964607897952950609110308031829132924875160106648528765200574788564420084086563691647629572987584575952445876730425775570914496545432242783545664979400698480985634220947820161791840433420280990374971558338696276423683390404245551181084387297498985929688182130187065765057328345157713928479162482687498224105584231411795788981203446207927623952040995659967524611113447715209857444531256593774802131600150992970491163033189019697784829426919769784341862022459163601909885576702507252135949495636974462877454769787587364384023844771876286802093300020722124514179388151855117282468929409109268964068402171509563969475527321493608085368822738077129038416331259081822838440270433582947319747699573530488476378394860742903489755202814190634641834460703293907865092632965758090398315696293432219755246056445221512711157534110667129292900977128676625118808054452767578516766816592563121758975637805305320088857375953455162523417006170509586098487648352456332020982124842404937090788733128277749800490747674864322008421053683128844409989177619656873366479771445203536993530048696118904647003859271493156077940486572689914154521858960410968380276178595980672229181350438798479039279225159343717595068178690665923736563166682416441983230414328923621503804084681198370978663100578585448405500464324927964380085177988577583993380684119066596118373068421872134146806198453724291624371011295370822379349318159222254233518702555852162854254907979043089040921828233047838172088313554329048552744062720164952321032477784279135024572321935422201359628623739111626870053648988025454406727072684615489114540736408124621210314193430777510321632855129130332538389475952769776064661881590678581072411585172591611199094945499326546582577069644140067307726525361785853748197276135795838121526940906108925036105229977502946460834503134664211190615710468192700307910257337530024923353271592478340208925444756141428522195437735081510255182854649374420872354995341642844591053492190778308076203630615848470089303793568841116570269188725622997455308691981624360850183077015876842534589116367855855175099448940627108848295319676896075219517484575244135303462134694772651804324155389243303200140635316458713697246075492821688631595496743542687203862058981158714960323248571102687963274636096384456463418899367678409772678178475642926154917641658768438996472590735671181797054835571270749032122038182637529380227066115190790909399065498851368068429190360811535646076706669921122584024414358154251691142049108079083035234636312904755394422702878882624404686005046560956468651069737695952988903860107927003937842666329136066557868189226915957766486288077033013085798832860881997212550939833682027150978344706920132983822630899249517544136951605581755789916039616813166946198298115667006368610269571920204010131870117660625588739412604393877708418223262998687958950104393899746989936658160331118969798907932684569802507564085207145458032167249981586181581911173546613041689615359765384350919738633613478320712157076052173286784958225983763949397906966385036493080113458465345039257136246778883735765265949715767755355990823800470010277812774076780571585484816091338734286708852601706104800646154311431934736772784489960645482681547151725751812308488893777139440662126406117963007155073605788333188032471614064977850776059903399420342794846293180340412591634864786930419083357930648911045005711317513516436995921212413169161858323815037029982045911066841348283871838185855624125801975799202106236854515154728154064211635072383666420478041184048670239795499329386072195960116559550998331302712685793671343864187829233820154350709797176508027899331102723670000736828342492279920592817094459599032874829872103602799361917739474396004235789401493389301122048691049079021495086748330035517672447483889169464404215896176845707820408798982401453304450616647675946778434429271023627312435606864755886020960198309257323341322704018141661540240362909893378129080182794575052975852792843259937871718230191740405451585489233352365660901164088104743233746165286680271179977051722364283789763719293616202442221839691174828447235292098612533638684203238594889268085979434765013249972609235030535096107919807329559995115879912765118714097691759479272836873798078162977573073982911292361823097507018427458286430233518338481932172742765374668686864118680463702242768884949610905498780004864084884789116979941193174101780343700316734352683761144750941135230207755649022882233140016984098626486625051944499109454465855579086594020356305042364148219385669228854873460527855415097092759418820545149642638663802116794142360471700241404388491325871332069259574534235288869327631817692151530018087806556534480508990459771304346873225199075025788381678390027323736971514866055349881246573231342048581988733566420653634513751966090648953263566503101120072219409445309250620935380603046649273772186063496441002438301873290234653238748873644474244846524549462665335339398894899243536981558137321478183447642004526882445562528303409558836828111513937204401943147125327353278099348530048109238514267538680564449057701609860171265848022173598626823788512241089496061594009300251418837062233697292453194359643304817197196489691280841793989877791471322474973615128444686006104157830017261787580094175826236192341624409495020183892816516039993600254455088693656881308770275329810013215240316330575971924925215813629416583308566961256642724130310193059552994910957214905925952936495605124314030423315604592082419294381028342053924245930023652262985747041692409694557115865080066025711730530719961884259929230293685905882934773089606144715341175995162402400138367838150464632375528574704482250191837060027669290789685333408341309354355994213020689851324633847190011778474263313132166756389594798631987942963121423369686099346031486988229580210472952466390240133456481143490246102198644063245777664684904605701215083564811971400438811007481115275030336872777162567737490056814738683707049301981794005757748250896207496139448352125008071185652339983324684004815089896755103363466857915166603506515929491313282909548308189896225123136655928904621639899392278034476981827198692177985924806626448371920071703393911186873392649705574795047155995069050113601175356282063876014466662759807964468721772805522185394427647286545094916233610332517422740080684294999267290787790471089179700183779305384207853255887061819428800804228007185103287602664199013186959237188655636257699619633945972867382147767834403953984578130560708851764953018366736455629254368062409013063897304639230597178762717492718746266353863758628400767649073379203163641053984603926432728043947008720895686888271929213055632211946192426992689335892734007690547908558512439209390084540255256212389700474006211914271307657007686042239358380766774142796255799965041346604166680900801011245474303240571351772429691705311824862528029230492575831267332139039842382400256878272017274572809213431070276733977142154204629122421312541316250846825213881326131327460977411995966545134312785015206255143765019404750693467920836353283010718891444664068542437806248592720803826079697086324259799110341545272257187884587610639718917625715857849489599538990903604644681035203906732536131526458184339740319340342623878890981609884954588484352421433022583242535009613317647277702630958457801149257011347344410600997294053090146464456867523530803197277153119646716317468580988354620916009094722730031430987116460928410241310451844126452733867314256644364956960903971012223469446631242048166406063511822300269569681570909594901219963862348346941661366834113579166646796335156482117267580180756893976082368167993291646802175469304326325919358914258445946644039067062506228403117122541279076746995105305967453435466684007294734336946420994897575677473679867514277690967212152519755990770790040593470967745893677612155407317464318797169868199502840967689378457102934823087024457446959931354808037003254371726380057006178727771404527426256948656276647044238366683249761475682584724758331521871238026806611378475344615531743944064268154930365413790000648868470033040673851224295224558360954210741003294369887946416366737828168518609889607296313734402325409282685809380603177312067856929043976039886739541583862526911038678684606835856405397499342327924651795831770373875782678910937903899090987799961461402287870015923444862206857971516225180446388504244910194818538281934824651195164330040888453740371119752736160620872119630257494994658378763549163476495250089802337554546821706023226187967906082919150674287111217982539241576078247745724703389160605711171318649655384938228879105948335854949833696326035110438154385356307711032281311072427818019789336217447219967830013446333952926251744876439405936210538569974810207380572557101654695008034307466059218219999583161896816344661295525866903731062576336173656867432321670007911795143315517949589348041287527527175364521827302238749014139050082536102441123535450894113860093452925275435624516166777290950555924393874403560881102094948494097275721601442737689859916173575416763524009399124847412339083787600942236013642006376739704464935993790049367604288847266994505768745840783529901223521104277940910504796337626665989742177852641784261249524725413333814165661895654606815453701180098137136943244982533071457562623083759312338731742196002558896336562473561592315407310424999474176973432755978660549633780572001867430457562574527512031843849652720430558860426534721162713042737384335111265074120824761737770396561246193395669956918174238552548269522047962512305129901625229841856357825674410561859966497941100974708793923788954720529548873837254386003569226793750724058046168674027338071450249318916725712509208062633195446445613156618362496713882345093907391821228904736359461178554237864324626091805071711962877893347184404990225634711236125126898422387890554815734110437756125575281393575880886282661309817718326209861067186085446527627138966244669353727136763503793381401881809614175576545866882332525882015089291849357496527030560587276536028516810451169672343441045109455027135741117366451978893265345392130294683130002872300747031591698291476078025421303174737427886015220808695863444463961927025358639987152985231524406553482671709859738028274974781318961157396750847971208332312539582546398794031100326904377367071747879597609229753800114746756689954923563416232003947645876982958928660656402847450152387907721504862196107526825636312327659771367383112517280639532462087333272767445988478057279911867869218819378715960202267710798697550303118534121936628109549335312869375452664466232510849611051994473585532295729105773954580529806781055636243587367196505551691057343252665962073945545410289232410630777911369146164411766059111550037932412372717037897066416798063279144169932380810637867472099844515317052986829500565512517297299677689412727603496264066779032769846156574904220665187161532019686541557238031580170351866346704259009784544311283297649690029583747043971666976326638129689245949663887603575018254628877078121646217055729562115388622367642465077286581769198969967758690950287616467947620909243944292639263312658502614149793722191952595332066155685284959541274795898170187927894937464469799665046756443341423340003036362731530776923568861557186493359359878563454891884328389994157204315121489725237544525131435989440406409320925840587378560824858088694887864374395045643564089880687727818103743642417151518651721901991364705361535294900441744933100587932440132962901614139170347933769353820203423404513475648862796181163114310311338072513051372905756341575841149161647977371334862726445228897364501269799488970179520819034244756627857931395690932168057753834177771613669960934670170645651248547176226096650070617659991271860170098677949912743826552155570697157426466492349689623900147453950017374203881571077967844374822468610351269044027972499680611194171373691768322320568780127472873197418915565070687676553377152306569984157287627944684371421954465691126010043621539306826062028811554110130652164434972263974517312710567118597571114541732327655137531425355208507801103673527901489498909617708124247218229367462920254181768845763856481546650730568371221462022251658038360802121639766282349570306052466037631905763706302028638513783205102450098948330841361330555285231695995989335340571194662542150975802185769429725381320559235373485549343202501351324044051188779443176999283613701608154076791325317768077288144493029177611821956352728502319791801901679573454860221657016503116050695579960254707531244436234824047209821806723899177279920712554819571940116698454055251730917121291038320326919288411575275664784309051118961635650535094632279767277296071347867489813093486803011522798657744715345195660608085501466406822027627646755529074611413682056198242388981759893566998829768371468046345686874770655913842310020316105258486612091406394540497713252037798969565919490036709436062240871575229636525415043121479951861095209410338051990775508291245497923821017499188645550187713671758581793095215687285370841706322650494693412761211738213511098635047298337272313137111060515308339480524050352967010298373528610654000182172511178500373461122142713475889808683510552613305362479971646339194891090812775790166526456162869163218304703701224762623785421278281080212061818106414307384476656822090019233164199647727731883827200665100195359479999131586973071209115120717988264539750004441853497831351840614949361604277117581520672210593186295288789434008949948284374242284847103231034982552589663169045059400018036400538495957780849817338790236442860585536093976888813785681725551145170889709013221442343436951911675521173423896025643568870691372431589681588662241918708563022489270079794622781800185171554955353913166286312837472876972407437843316055080149486266651791222770249568476100754013395839573973437255764517183288479057886784194354818174264104779443085437806604821257045961954880915625362494103822481668865743434602455862352737066823949714057310584159343323182717846615187350240709091735523127299979468261510595036130838794814033307295697865365059402743445336157486812563201837132663666656713669666618903232452962120478260541231966891105475598667897718020215103351398042834259935070947760784963947014312300588814485752196382963289809622614035037370439288011309012618486126768276938926414545977949441220692779705072554393670623258646757182843712584945270523483610493288993708355555197670752652899459366656840466092694902328350928613934575490642030979005884426839647577340952889375291572212225486746970844545578875156014420427374894165728624999898018140832837738422748439713518902517509523939437284953807093526286652555420921010717533770406908276851745965057170926756283528434237206340246838236076890189494304008973680783322800949532855936773400652994420067891053967503814536890464395603409931973517423452246710027916391456792691129280104881655660847894285707774511474976170354252782351798179028753314087440701006080120987495143320135332795643875992775079317458974725575793528610729128548184211464802011577475306174058066533391460452736762158497232456347727324031202648805244078972646847879649284570130697113259187169360736745564583176594950020496434942119243808633770671031044652068174954130467460335265554761277266820823151627377853289921106520796768528864608981651403681025291296359354559876370987395767753614745762133403975402542160657049338349582016965454883534742051777654791468938282143226422593062734782205980876481111733825799157464785722914589230380615560091467075002173473394821608854079694445280864156897854752459163602975016501643927834129453158749883125564364598160061899685037340413677817614053454707308916707441742449633023629960490694895855984297209603400906623624112773341868335145805962864675637112237054600373797909567505553622905735044699641436002417811251573304015064442900219328557765949799657751836642098894047186717708110646327542300363854949295006365814070675341720863416792952567382722250126929674976041716831368426810820431989038765142995768663857471592524502212440391615281908225695428762383947961262019636308609208227027130364300921121445571929078105120199404773748325083234928097415396080854430317508994916890407580948871267578506175082233422941903919412388581425591497869759401208754738406949461598837768039855901596848886428040854888447523121489440983671604343718135794623722536533557098307235178092434014728517134634909582697145853796229849778985451757214500006486159764132351735226216950719481807996849310072623657544685159441879960939032506066649676229211322094172789745805258096475114531873857236406232899643776914119706616106340389644334708454236859822521165158261835153828908364062487140135198510034316803610063326035632795507967239524873232459963654364499363109496197673624704802831758318545993508482779362462436970682296177778872407888375830124221845207194727608052141332609942085991968686145534445875577416341790788558688688574443797831688265362091517466318064539233432459986361084604130102311168295903968041805961684028729996124197819548162904352814251026094826100540794317655208717617460246002051014223881542268262762431564766808016176831864895115297788345779588396754708286565791200546595182889054311415090358650198460872373061674594010644641554281575137012523795271138060574533646788819210742950542233613359174607116555715664852127632266029436684107241102159760020218338038130269284658517370416053749569963853016616039485132273626653547341422342682651564254321754175575169078473182193994720252687482303824552662221678277791313791824511425288998413672211552702529328636098126699361927343455137287272285850849441007492210526286044593234392184747094203572144785402784932066348051778423069502842935710355281914108787300317414195188279221649518999842694959985437167773263286761679897363249913748409250939228333165122155079987248590344965610833562584001705223335372805102618094779457624479093862932262269246069924432164054544510834881402083481524560005470395080678904190260878122019146735043921255257056218112052328205258245359936470180816288330025433949883133866933598937169135038645906039761116047427686244483566697189587835632401770903619605894080282660239115691084760045929091102413922192500317941641984053409832103278077564857927907586424716042354390788290428841977563690845911039279720056200410834939109108183444020885546187380496920525743866400026115948728061100409245214653956574103928795093710403434276088909778398584270150306676875116734491171528375181204780096261309709438307049237137309391065608134665160750839978960740233123455366274187866224139212808597235480633433664572836421480877129547851904314085201989753378373055396169996932230135580460757903632272211252558731119445619111460686297989639605479753383385683405232762026948619276430765110449852378898027339663959315036513032651290478662979028017611222396830098935764374440859921688598445183798804306194134558892377322778892359519209127258444769302742512426142930842450889526239111751671088193060503510239948057421850021301006976438154036389367722551678092217169694953578988567413275156476668009047366023064003759667261117724151201865408228456582281800537910813406786103069976771525717730936567594649868284278187260669894343446125289457303831198819664830639134713246772326111973204934662403067512410106020296496920553592032737247394036446694188779674896766092696128642904998001527778568177865648545009873257925156516638287873245653788553716431168170831653657368252164463006355063599483305711518973223561505259394222868625182951566684797834561728175388794409531139673012028216433975514578155975595931189382854016015659210069290648398433737496946868185421846566440275140805986783086448643980549496518810077425316001977474625553382127425264498756690954575290125693932261163643700105362042042810031213704460402422263783011151475788278696298219222152693148618375266317347544853337543558869873294015832259891505079409649424312699129766547849940554019512563337859812206660049921307675785069156737958001513727957349121747788264439242645898512954140128618404533662306107193688526766929954388575834722071969129510611306949781871522666638653126282975282147489982741326262123988197870278723573641716652860227788823145119057488002717553982458969616324080779615781306252433960260220520768788124050575458644931771935766957626211303884861131170963426450883254080171544764482156461408403394516732335034328940973942897681724929994164079237379311946588837348838614301455978468210976875777863674311297361004117442215757888011266997341743748635028965026319362589421771396668228415893112575452907833324077994985751827204675849133989231748467137290857014761220004668439302353886416422867870865755452299973732453353294823546226113512775929060407442308747981298689028584993042472425273671055730607829758899922764914162399181277581673383442049968864252909004465025486110387208506233418546000882733997341145812071376620349409211537300694192909831195181755450136700942656817341151527416026116354295039857169202738094362233960700867060954781098912284804625673484483470436843221984385634750916569778758475631127311095546489093262756290484932378181495989746065561689583119014980682965135628359166731569693122579721430126982878885124722204495919202189318737163631037864434825754337174686741031375443583427924847672980719613080557037070446939075617576880682578337428795887224450979904973915924916258616036992980391164204057588165948719460924825169552634160093515457536827879176271647229521118852840420032247275711076521005270194146093646138695675974030107655887393542762378881292277968718833788601273364806931941423052961436491719656362642708184201446562297381216450522861517333422296888423643219065451236836537324721991119796035345527194456170265652374643921570859371801878157559875166571862108772289445807855005755642075477166159716969796558888507238160700730672697251655847895107242778559037127560401423748785232282582105598875993179549893915816564492431338046576925539681976446333115408360114184313038850521190380014917568614012472373335643271252459950034521818001058874284652781865340522199128149942407771477657862465162038399034581086421343217055377831183705588366858890929942640778405720957953414244102522007959581079968356303004300573661448785540788638952312869510275268675378496452203441900586172568183829106202553884112084150675767551700139084138536151052705054108030118904222657097120862462966923709830158521088073641334670746253936619405445317438283206546954060481286190175101693295634928998547923286770098596184178323660437321331217712094423538943311372378172681356815510480503976016849493058833077329456301610140411024426911615589384841928706444729337216198280011312797200722596908842769763590405692728486481058807753761667648039817857919911264874843800383926592028200459394696357375437353786128076962689992421215506512029288025492474409922041000523102272427963150433180520185983630635139819859726230454982750701622847966971696583518647505001084434952505322858115189344509287121769505816757368312006484322501657550759247015992287292430142488891247309003393042424728734836886876772574415499578501182004343471615060971674843739065938704678420166033968845639859186021695116760479647787807329763520973685340039416538980700292071339947471384436844769618735769325385977253963377189337386910066197712509908043478809950138140581443469386565283859420490944998581320458843038263218091488947975336017802353411501766880907215013057986290801320904039921404963985197070590399103742919508727044166641379325850682630361199343580624665494691068295967583752558740298984746999390693352262209325901459867244305416359809871049510827066946672520332426295891935771212481953604237783574662481867394573475750551128981097181096333389204754902021761614425486112239426984003111056709894466929624240599373173622248931013311761571124762601609705208787390341306200581990704725048095302758474916361093716650208015225478465253641203283236669082225132617538161740609867850110097317616978365467167469409966985121894841021791817573932776284489454245626606030911764742936205725564765700798382856964108762724251976721836500197819456105602173842392313119398510226335202619512665566927246335107722013246624156422542320041805978916521844542650027887464228840533013495584020525955357659996781935331532507486861476026877196964116917237831039464729135398060561026073249180290723337055725485613411740731790596952083467204511003588386007975112408814202915785579699325268964300128915754514365983187855242378111035776746024378614662131369248747741255299170248204365270657689076061074483856906700528538497328685140204757193120670688951120707019089036126590825616312303921845670684728981394113814589170409736288071864098943340701006464625656581530306830445492663171896178538372241037119583248526892751625842359271293181794335309929896821435655576432115342157230484283773682520800467131598036127574541999039902327228002061365837820243766636758261575382713627066170997064948294639158732517737712188840024420178926129879072063131828784645688224231013938305487663076890247723555338272486879991090941321926127157436273305324486468049458993318526352147407083326765460043550050014310625365421700568161397694004902022969456721599120938404708523510927039333376663057371830318346249135838126582994481134377136958366969494623745393813361087191232556667485325428866151046854672329416783652476216416531834284554340590340575703334246158538648357542116354622266569242324022614231097164047967027514679719356560226191214903672397592250435434905013772037922837304642020926041582206733821496635734733799792749015261571970213462590122859829815563108882288222500394031761237318536159719082378192302067300295272915855872626841667942171607079096425776209182136090756121603954498792505580426773679399888823359818637491177488148999045386561567822455982604076034482470101891930093406679388187581022413619380297223919259441606095453813569487508682242033038026785564049140410577454106078423636024671802386263902229554077196774752685947747636895538326994883232854336546910590705093213773478495084026446445162649633840718494140742212337662088316112539927328943808529931184747151788068375369325790751914153370901212105134637268287439593664639363098875531619021691481667341415303766776710619663955629940531970092219805658142827322927878922093938407700269179149070989372747964214596739463656665593710159574442022170861944008741939111306868787167231032635852203751787481514946089321207921473267946312496185876660742009262437705324324921487885783086726022196031297246697629701832866415553635273356082937164712171056749042129771805244383183131213206033502836553663890825860670333339807190344833184972903528210952289038499282586648240576878072618593672688294462455230140063217016132980402854751956720154552218376676282790545376916502667855076835246665667360692471200811219662264886954495685918189954701147851361913139071413660139973665053605768539895592008655199505547080568579484269651617237229306049954847448443474914860422795667138322177609212408595298584403773190246739924473284729402605813978253851328884685789036330710096677700594515035232217010172233310871115976568788465224597198159402741325933825817700444671203458991024660485824628372991376158591471411994593826562729864789927428882782435601879584914093298964509559956233506797237022698846767048709799063262257329203127589399822890987850788120021956012527816021254297834636896803561711171428586461294993316211973891929822302926438695180721280840720795644338185947111193873282986633090546348940202283423935797639135827526730266425270268365112726084840567709701695976108817624842119818300206553021377379679280889404503225582826695379074523724235266886289089540506792884377363520252818141201440322340316731825754103004436338667592841363308602866625440402704698049862767622306239194027805592982382470430139639732448679105928201986958245422204804630965942154133459186171777380979942922700716042882712747840342219679810824489326312892623285572929838766460360923101223809773744312372074952099665042165973077037684536456033229396729713001166683649861547253105943891183011000155895647300629732119424443096573964267218607265417818098832043720244021937862695273111390757876411410727628101503865110144970000533967250622065040642775877654713489994800940248298874138122349320744500154112088352146232774735113616988887066292795472133095376019881160085098604550929317582082989715511798838833459788090666086929570971425822116718925073422096728894249569218304240710611040440583334627285042256838477078962492932800230134567808578053417001364900003678678950793925672020128952307568643341270939529963118852093255036704646575575905411831268695357498223542016757580695920384316377513493850924130040278236969892404383240151250588849214227651113658489617558559113949699126235123371837657806894425686488890302183819218840820011746876182903845065297967752103308546720330090087325848636084564137623641725097063882696574915484052413413757847713086425664866110089345291552787662382841161187186055410882977217039923678360521759154404107473201340895411026866040502130665584832009083774685630268922666851353569958546882162095490048700397629931557974546776937109926712146712632785281969077244435045342864629813207945903778990128671744983407309430659038126726422662043385304139313036962714519972574037716496081481306554623333488023241841064327537773966596549494702924359633758675608401779086985715145914408838506818317282338373814914496108533377853812102543352387855914335325118091583762547282097944023633029371266773598925689779499721372386648544865057758124127581555615912867111126055367967578823522269139836261693233986019204049879141547054684298719880319033709300895812274829760073504045201655964848650187975516144509867217835937678459661851468682812804112766198185016068575020639884904036651691248690685542362759345168062915779263733758658616111046322311941502286962096173460865883149493913746194059539974676293111611837083865604957243751396407953729311206425193241312305418045475524398756271167050940413593387227090539924135668556934864784742326193329794519766546217676148239089861695102263522436457256697621968476877085936910654762230752999944651224207522995123303901240246360503260955702180245346768782838812115580789860800915329435553245601477948463014692868662377727241239714231699228923303951154842598365503223832577815427721908516911020422210553959000313725345539805068192745325116826114162007876469537842126736046644296357781049721492853180790735750902963898414660563329261563589133401702970048921575599353079469666326205830448762585712820733524523717576583259462193293039478513516830326232611008789606464376494526945294919141908894801162757464152347485318294927724916865786756876246785880056783428551253734833774084768670381091838063470142021137527667697304201351050591167288365741398698743751506781134506087838691232658817594056526187826607103065119485851856328235292600980672917571024700579930100119558934228642784106690509529371592820158044481921501745737528584721894962780709672920750549914434975055865591696363398353182379228520381719917354817255254186130776105395962769625200663977837630243530200946743735609190874528807145822683890819536794594503630968958200352399685016515836675264573072149931038659969968911223813514920014070744348055129043898467963717997895370582062921479165361281196114738011733746876420087934198008921224321229443911545624461326247689441362385284495824825771875876869958249623872514680057064372090889749747271967721051167901613030668400623281521921292190521609561351088915911362534434401622861545154725317453641923855687246670511803152536204848930937790153759196238195362155916037007982463401037216265563921916624512728675053587800193012677614488651432926038963597180959911972222470232903073996980704922021405782614723002220560032986804395943942396163919067798517802402574952301939484633178698071990780914578942891860864060804486920021486725554694506575804201846993878526492716333035695172069203776696311251950066472395130267929994977642366704733573385110210818214237638326876261521763171738123684690264663711071569929356513620597964197616662872334969529252496399548561985999506143133905959171614916138035873558508887382066614516574549139081388927949416350374806511846746997105956001357440045863884645182073968181648539315742575577603372480942147791451473634676837550627583330940866831539315221912133677804010291048625754253933199020575133328310584742022701435783552645759240823346745813221365004801727365541543997433340330516203034223551193930404915579014310342833942745930117664550085424105448308418496492037755880952324036206192802524243615759213146245462118237804532101337117701484365655838417670443791082583352437785210678449912229705067119159405385929334474437078614276338040805109817810767393179608064334079660785921550111092934560876608568483642034296524056211097233879574830901039879460940057382152646774680680029455802420572281761328268439089746837779336411391928843577147014367784910681665083109885416300058846183229734642174470074610180697470817391339463075927539396521104441198707255964390072524749851779435782554834598937806019419691714620085148881777193696051305865118319684984001483408105513122801953540856487583473630073399792117131210366440962029942851035050523817429252752470006721976609267159702893317832994219744686478746469778741144887227145830741915129983032301656720925390337450040776752635392993195708196133988280561644024205534219479820500900769578310231693346115288306819759757146414311173596902515799208737701739051146390485584734426146746501407079234213090775163211958384804147379736246899410094238516960185075956213584446470065076530119261045922933384933002844931907162344584842184729076876929478051338533515957913509693004108165896272917385820298426693788390975283338369522486353461553945318519537405929370809643310726591284841318008685036275320464517994511903612450542641617232044459654014489500505874215861652490844167524321702131256172884701905107625815160351771568516910982972221570132722644779626864497785134562050937221505618263606662912141671536459479161726611002186604094900072556756723622940350261958766827748751660672194468172819071785342196541110739075967804470174618430388471088472821409466314100405099050845667539902827808625755425892179130590877392185174268871074731448910193566712315752240399689324571501552101787862532442569985129763191219792696179565920834340013330198631371298385966883058319539714595678487595824377130650352676965715050143235930728637850852440566139174355063244295091158975907136865692990026827640033948725514089525155940782946866471763055256670252277517115042496104714965302071978176311467777540285180481855144446588030138611988948612352930701090848580331673049056511824039703158618121410732143318525130385487864669948564055868817968929861323788092066642635235614955615636868507112209417096285236310534199925102063838037732007595800442246661575347616342329888357028260360652798522526798974562994764093381652129981250691633087230742913878822661251451543887273100197358924425976033432351797029801805652292543562952275638549928559864010402583294817054278444868203785476382952203002540508806683664295390325376154877898847243980313703943777624475288927941678369383067294944019248791251788998495053809832274438094558034533685429641819784343072373338588164442930367900853998411006848766561878823422941144381829217848132845084681826159857052426848814479345605847037926879669918667644968425446947120815164171217174503754254553983795348967724747698207465810080790275266222235152764051871224911797578530686282090396736327201283092541043956397405280813751317101953227745858100056596698991138606756772712048125570031535084594207698422075588776446392863838500860049429955313457747104010956614473129494137570052734951681840015311758769191490495772872768648510688460478966674529836181445835161479369832633607262693378533484060259528103921039041179745958634122318977164193339292426524448372308197391677758369399537525359953083582220290193648194116783703083176418278233161162006558110439140380832156810539391599849872726736541878622972706474276796793933632783987745607503653667981898385018659812511798170837397958025956149043715012989895789793881614809400526810963129300457884708409057118218400695707441211487650617556116233463783556567985931744221145409346669759284092539875159100472787041677056417680920091821286672713443810146261259281921451164118787415805089313900721683939871882650718202170809946277614994052414568171900675314662630052687097502335766607238069832568857063333637397838295580618300114089098521624892797571413944302459693208201346037532647488899445732532866043058482473854964645735572523439280568412887062193855216442553929729876693087206690683352632278286979198161380124796827912478343105518159820277346732722959012386951210897564407457999770329412593362440192123007712534488438876981376341276742744264939906799893344954534378437001264880674037494267047242338607132875361694341961575524308723687502391758962051982901017495728213970812864597414802181904988411434624581699887910832463726083944246617083504817192181497934950195776663507705303690499638743706929628859865141604093196833112820353600271306780384502801951882283157645825774699445371756839962405748953151164553298064877610372117621172727548735189243205988704833427103945239914257637459657775963897664696931941312597839512768738079314177060053221718416023629232027871067870800780464435011015393731407784027977540681550616100227540471897751071060182773411472265739444734625000369812471985477295944438449784675837219765336422977717469128166052587199427491195114174908230728418215091696306803154990162285011745560134685882744643352023993875237861425695914999172803785873347804750866369919682248309273385354432886678918640401657639942489708363526381210824042400276275608349927106370169667571973249905743120952070472570091918660127500657656870983647934253415556969828302605121055757896831682575008440509687704328632197801770442200284869640367681198912546721654631444696350464364758047209318305759429196784143368926654583283923193663579594528695858631905840606841397017291673956717386549471417349770236425227512369423658420130496602557422478387165200729717077681837169654700352104686787493570046567270080161812075782511683279685980419615618806104201690649380956921265566527010044913630055684541824886004877052260514189047766601131464157765844816472543140131778106113344825208132471108672704301908890728331848357763809958257721719191193259278344641379526142298587085546107569397531035386026724413740063361619684636635666935842793296434962649202926268952208782262818845350160178951221100595203180805245367490605501679663147391951944454343338905875634990038853076739790831037112809845884362320281531481805729086062521694826172397907776434352995553101526256313798006999807127180466319995450038701417115873624402453946526078129374239156208273397314954671677559218885349918550846338563031673380726942821779444532070133750724599406196220859116120952535318972240050776701283935803985397058419747223302842115771602344027457522411595510522654798750660057767936980183541817495892955772028821154045085141267796730315361308539685868481344608632816885089864576232350902796930359143696697565375005028307650810715025657769313853676808992630583523951733053563261496467369928464119322125366814277397405476748010512411148161419802589734334957605364678529858190151142886804185805350410173705079953665326240430406735812655424930120886049167708760999138110937301891871121961051410156293053475948767940317195429072703491405679287787140840943157655718245664402961543715233562664215198288856602220090377282407761126957808699058274134051463070088470671681188656994658117180809908432303497687208952779291779830854203938415091049435810951920921129907403247610857827291954596360834742601949197873449217779747760731688511129268693970233153924142363142277950961784466270876258353581444474516080346115038041950087489138921090752469985599365324402078529364375636281238361651471812301677596104700518631825065362452015039034184569397774136382781925280246004883144406733673958276746413962439287783327367285028725254671111861033689076603571429389023836593492321155998417950861557167357876583986677900305461139761422442024984282997471713623287373673388329212388988119371411279263707922891514188603296790941723806461353006597439703223706069481019176556522255140506094367707504439020372405973431848808700455955267290693096760832365223539570372041119924477988721314190879418537928671641967766522091063213765410990801846786067943074597789226442077734890369577975289320137524323927491071566384451475496769908581670964889660309006594689171275509819111569742404278840270238589838666048189941017178233156775794919982406753489077672375470052179234858221958932697618166449700507552209674529265095385116213603073868911551557196004856388294335602560573223418391862853874279574987449696136648778418930938753922918706701871150891834230258484204589679384424022314706366448226937118974023508695451381829002000327341240225806992851726867133387744483121663718979090663498527060823261205111115441804465123594996222136409004755412403633781752978985152706248098686674705051931558269016692490273902503955901267245031248917552730214637362246207555682785414314166024357618369386380862743032097611586868831788283447633469986813085501494693816975931734561571187932187758153823078535048776686513341933873253871353374964150880768833413755953800956869986183646646132567627646053418487917233526109303333020662406928233704224219519588677753427527673952434323555816140403419551033345298983954031323416220663873365486509410310166742233582007096975460378635746925614239759533576323431977645275067209395108783151910402460502827171332163391014313910430937274950724893329482646473086979345287816247969552323734672281471304873012684398562373256966624207037822178163931689099046840454554036716155260325212967420125016569189461347344610954436475777262267055910399335403791403352249923708427846293922642604278789959949966933636584436373703361498051016197457537004730750704283714418109672945066001076135993884361416522699391744279048541180655408758786625091849882660401981146437251889679060727039869587280359957703287503468623198547267160639887583804656420232145247126197985296009147928139770233010121107729284778742201090624525632458033559366588935711538737494016921950241275241905306149846274442476381196915352547763195664861775515900068367269853072981164072083487069024133739851357569787262944901472511258939933322002651053996455340311968472177167789564946307579845144088231840609579194018967561168142482364753553159727172606490663311430609191357329242114744616953458935266350544186429435748567173746547057940710564974554106697641850103661338482829392081850832734065461071843990063041482926934915621552463866026499203997476306463892974424514313877916829080267832315868458283031690731248154158896756943182836736621903919955957187824415326602726582111060185059077247531629321299241676771569844846602836056563446152885934272719485367475579392205258416465405271146256578491251676856884097580631703536594390160082002963117918895138090399403310711408738332843673022745979988800086518786987907616026805463719102842097418608705745797714096045722907119493524767647987389453596283923002815697274976966218996319067031183943026353648887115827661236306160815210700911529157902298294913795412588405957767305057323247949536650980941892842438603114290907756011581890611573764173071647874904290669734508143049795232308383062231471951144790997675583485485050280185211103213195362705940375881657554999557515342800798921803675723561224138268719958079552284505585479209586890780823045987839634573715559152848696893441962350967027867299362588367914870999045515877060822756476351664736384005707959870249887541305277815976782438495587684526561585178549817091465027861120547333418214034233276775654306393912888349539191936099558632815944965440575584251859262059889820705129137264498005921368164290103202995700262338624763896679231964632224230349343381799053163654492641124846348453901778676128084734171891057043714931315435122497146010671696382837835221843486497587433022718168320182750063784157603624207466778682310670336678275067328179323375005922522460233464257018732944727615667007621819938832785488840842790656320928910141774718348486983293577204869898986315767002452558882729648430151378769585941006142336519537616502002457435104062644563952781360741837435113212479456692755070017054857560881510082883156719231782748099171647689912115902100475195464274677450998296642510829596301981442881359201008613257783429840075158555137689888055140405887062741249277836657206516171864388855090600277235272773988691752081582936078709098215814639827680622767089624861963672807388449104703713567632794089352170494758861871045179503154369643097264880944680881569252694823812359953117666248754023084626634529980927886181354013908123543323852103767178501490785935234638002869839419363381105791990601683191079411616163981006794312909754340845922482137120268923875588279321787153523006089520454047701268733622007099706060919358776442820819437239479659962921083094142083177901632936299106398425680052372793014119519163891392446886816231707792649265112521370549548146025377847999458191062016753615193949815041816355535321005561746092135267399793682994195613941987291635171618833433463085178008212382887575656844793966348870869070563571904414652755454155815450426899747386010145708669654052683129479495060581851150365605126677650735686571405975276104538975084178438467730943072346743765477426022580985959026120100026304537703122883952708247380165470665837295875828023665451634107289987206148143599361250642168955246478777887845502015193054809503454018738206064602441764100935666384540069800215323639538356344278727301871534624538758299537487847549491445476113814036024493387299955283539473198768776361296746926136808594314319369587852476071652737978488416357539014363999665288815324878663392635885821716830928146872445463257538310296692323075330485504843651472995960880603808288119526129718595910393974995699650884572020692349461225812159530035260572334661301444560005996405776752125672756611276614198687385941154158416529428625139160029557996131753193566354064923553791475405099968065098291801961728597836638212423796678180884736943186216176692035177096558925429623914436810848317653527912884500720976574414669674389725559839247194918469019271416416284511196710010227885498186340236598094751851545012070565425165790016681770466091418981393367640393128767522242282507522814053027952609668933422543168205444195421224802579390538400558258859485005718705769369343302265827905769931343514817709032815079089844909040438983573711681479631521514386784003877879984651136646331910193781280046043445142321131131016927785198490441334917931964155466203591633393241248017317869178960012030027009623854936374254538802623226043582275567158283107400314823290994306226150743706392738579841348643334057764600890329109838847812690932838329633249764067127344622772254230132994716629296957437456791231835144520511460085180351849576353257851166425100546643488189918279591142806927132854843627256374601807715013864848638377994549797760466351459106861109946583334352023049829100333799471471552703062101740938606333357772665195686996153306640809427238446617122648405662567949666048111731979654696052715741055142529293482602514895863143825443594805037513086036674074698009235937197585348294902556894366608551680216943248141129578493469391007822741944520451671354673828146052046496916515969252223347810303508087593561208482440717694945780401308305912849399061493984698819601757409523865795026552604914385851654859573134794683437812464278810254809766832903474947514434993925980863379407674611344611237814975004006185975988046047646543051730817908847789086789963212638388774354200441103510018424810157382588407871619166003233342969631634928102709005531050368798761916922306410081875520165740301858701168649782642095013459106413604534957430354150347127873762840083133048847175312381792438643420164929357576551733741386677274444930719350652157908335857386808820461389737760470754488118602226001621776825123912690084461523177468940556559243565751254500791405558801773641604636153265007364353080771943192690728880583830764802497054506035687731095729292900493587235259485500231682415390861208915757025503875429570391191739370197250188254191954293694143374200913382940111245365203217169780638872290969993086420930013050277767324318275345826929211727593709976771740258463505689032698505456457820747573227728199854463902236790927071237799699600211274255303883219101317073613230194187592384728927319731332928310862225593580518186934535001990160136227760421472513484492283893394477194739724058731201887362763645856298826604806938537892063856239751220699313946562713028988973317117446192524744868130933423273719704343768792414889216020667356060786666525021378353104938469728202344372278117336385620467527061252642282397953331240557579614218696483482354611630096809414110840896737897896270550846492089918586498391581987784079209083440978651233978492610689691917362069650227502184994408622388605724538406689536860635340682500679011060137533734394747077032803539801012792606787251503530688579419824400541864053669286063527320692597344909542736745952844878576948948133554571212747263892737967623759458864346025893683041082754782025800868906982474259827638404399448570458330709872435127680672161172496098846210400576148919785135714128883737465084750823830251603206115621175642116972949450819440466670157224259590971164843457941548085480225758392682140750090130936875454347360655144534278968542406226190180748532889794367183391242709263477572911608548041452088971755284715667440967658087338346834132232218994156430191259519084307359795927878346900973581974283716079657413383571571219780027599150878781539721078245404555224350178776584437427910946158716767141667372988442629717629971328237694039723336515432470613121507462386962841792397468352080648369019398122071338215888087510981461219005614567896041544114154165776662796998954606727117419331657221715302095376010421534319090830505196989350288973304125152547338621433272926621322347521819797783596337496509771512270631808230566391201561020076365311476120828780334022650995222768830948359421568510478501286851397052885196787113840503197468987233362226202311290517286829890628373418984206679294009294276257031698874954267639438288770995323128571914119023732549538799537719968598115446492254569082169546825502913354043392417735469680001699379443982595642127896957055584260755689558394451909029963337715953785053564698695057845110907021436764706710079922933387334330743282690954174253061628595324293520421942868556337419398649175439342486862210303894372772102490275901950507135351587154867750207602406433610160322828636139199381682334662816684357308835402656615798982965420687910549241436880091708841220377131762982676927172837401465312072358251100156722833318320636829946081803402348111996599356097207690042301274631126794619464749021594943104001413346458820208814728039129730007429597260109311205199193844238892836732588421423140081369850396627729501398334472008217405153435750900769790241562553654085125524719552580096365674325357139807023695524066203994150979437810487553882894914530355630959868838336252854954393201867482424880041536495654595217718055371293261378607292815410998893140746978121258981002860006939974095500165212255769515141996736161156343003556709914799408240564347507287236710238216734348245327663461034317915445919182914176898116226629196315422430803925666717760051854888967655610682624839843498864222401691960720241548674493441813834074542337636080506462403212157258610915934068635255681852167323694224647010130332127891787151773251814182307953882093365433569857633291298932957498759055179996352897262030352002078215913429422673550316728657149464850683853779816714018875790032035043447699060546009814053440739211691213831755910232837057834573270529709948127576681726696563537842722211022542133763666604213093322811867190575919953092009180803431823874864295062735523859543416330400989930385548718490590371705081629417696571946763588395796919715284933715159920600838145319205251813724421438357318024727878942220248780966687423914104426642792626103424635485822925960593071244236339279270309551135493557948870191334794484653238978062513489891061477361380222280007039159024684924408882354298196309695338332446219294681458519470845315439564943976164017402034719546240197388334396580566671922531567101038272189653699485884733273054422965150369707956926799589579151266532414988286218554229201771426105294790885522342845206216870428561563166936424477860748490289945487703971859850801588831326347981290861150659365238804970822100244658441633124304321209699611877528875909199123834366711559556951263503273881027501989545428890916913013745254357893741168526522151848536011357251918992138471734193209717182227204807148173758070298244862349791137718275028057513200401946392712205944312133254292125236415689101199181006809459271847625211881153264893722313949886721051357433019893932737326573702037336374677606378241030338249919841474160456063876586358668546813430057356832500933689834129613808573184961536080876670024910143437468782814841750846474357913834561966504915589551126681319635801610445245686856888641038011674165136949570105695343518957968388424016667877199007090094693430960788304598376523749749569294991140840234767975198771296496346797809914685532536418479455909565971239269375468392405934780045669223962614506416513107561600007068203429550806986726911148175073864985470980284017178515165073329386469502039521031212492569666825717617669020297400649377411560524399181948204100103150345713424238259418960909974204170894345115538541727983344543054853311140627257664504713431266166565178104671112958047442279175139728454168500331781688491555635961458049371050533433307131220767687687914110539848264881553804285015056070204928853671694576912397613993615514315142700371372413705717115311855125607371853860628565474917634584568962377814595531989169162044315688677601851237875115683198375401076385765904631069532355612493902039407427125305907265945037191491473364974751926407767855734836831281878026915649309236556784352858068276253545816668774127301021562267958215029977713068891659815093277089389625488715015229587743617366057950215375888603012864947249134038690497398515021670217561377434100871591196557907274013963700434384464897300796843804460846085549388090023986084059055640878847957946124647513100229237582982831015246417838767685805398624729440307218788866278354333446904973390022552826046319419790978704660702147027843796784048408438522381909132312784278971908536243074222430430543588330427614313098208343345137027739815072338482366233496649462669257674597666362599289575014600924935493303179592888770208815254879144089524909571158564292144156291675372477153417886662926755518516126446796965827913924863041433363049673057019763492397602327898673954387552495090754675884426052764286651231595104920624906039358203883870864997083709267768227435982375516648303325670159615768260043688162731442043135244407534360146336971142050947850754643170664271159793109765798982962985598564169889064215743861944859149834705125357499437552788945673101990313376991515737463428774536486791798746024365875312133174891801074502833454634152781154586800840684787764054686062439707248077022919291210747871017009942333680337848161475962799040680814481589670884273025041875449524845749627312915871832696729157906516956099771280462140649396742052860963183156380604646136374812691563722536477608865101640640835272162592943131734129823578747125875330477803764533363029228178347921554116491747852454936841153952424640631554644413457502413300385692480404480823225644946718265179621946483494013173686144857843385430761825527891087036463073307172345023791525669757198450156613798570427522855806614995045787089388641642075151763844699174653470212511150529993005888142224970726198259436075764339293807551598990690447185916243919866452637382058937382112521717967890064890621896931855459190641123363811171221075392238538998084272288150345039274277841954235516275137864186393513875502651443996402761080045417991325218605016380959861049356077741005584421811484555062854903901439153899287379612114226954572225694384142170925783992004834146312238485041607003932070142252459785213762280615646255979416929449117664376886031859712175955907271862488410932271536700706033382019211426205177681828853984728039835365437359878477396982660416647551593511376953270974356466082547612582797408832694510480012299764150873969054593427127681901922140610355812900028799853373913885317051466585489681338638995999466821134111534615232866738009012326066886320358073306213474346243517681046925424606887945444224968248353815602751063279569389766598491498093050635166918116523773287891169761263914526952610659157728705171578618334340844315743864216582306251180524964857858969595597289826810634560112814458054274116514222819473708453600087368009366497723558553059097255786488580135285505925978497957444022195436315684147426675834331056656756617611752850641845498186417009023705613650902724044090700981857005706461947857482443974407354831946794532421271961288424204693966215600080274029080028920830918744107066881827224945707916431701856619396304085040658625925069994168621315398030395123426584144967757797322714960732888460188850685032191305691927449386892651126754872534729597664654814583027220666791366272860730246040622310836497552378712102166762005187620828576551517551656983710816334247135952922699734948745458961629844368365956352524104664050725963011368080304621164770476174670511875720479700146800918737743157091678086980277808864678822016909666821812183313001126079792991424832346822275769453567914773198622291787779770250752611100537532364929036335777672494353924918630950154051929916842851550579498524554714668678250795937245161166757136252183745149034086327754762325208653265327088319417115884977145768071466892998405063224919135010797535284198636458460344617296762930881834125579604914813921391717596544920508861668041789770671601939622446501820505669069683261493428978353992080814050348165150509424286831920818372384137900440380266728691806421289733765543054529693850383859477027839516403659026684855296275264161215748541283487171966209904834428057546801591755793927237593133796012377166083616940528051828267687848616279524136719722342662232109976629223596699387570790788620778448746981381767770761085150455272760733929212070096883145156080654242310270640613988598318242426284559004210239566588979267855050883779709227151183689977656676398419903707036691013598710492541878416723784625451360885981881378714660843477464448774841798698889627776546895276618418311252025084480067168140650646669309825280473275661320630200314082310237751937619015614405532038341203076234628094965917678709322774846067281644245569036891070533945945208701144071022866480092290328231124544995907727335020690348008162782302741415032403837972040585132246071917339892075452500595484016278541845557013827572818198090957688864869057161610619493451957911633245667680037224693813825020641350293541426307430021798446324846082570448128919195056652620412471846429489806298207654099095251892206289715629245388880671732004109032368738540714183322215734137229801950467377141579220261513179497456149976185175239839957162156799600276479036865814130070301736249098813169414408037113719589743186423164549565590020405123720013652729759541438309055244862830739506282231809150570492037964796696452036684333089571635684939429648213113187419835103401636291614362344675030257045089520210102372025563064763678699617472426702670870499266103110354654313014898243664779997270473218246864713048754493586785384692875340570584917187505675323792559516599753791321690031502431989627500124803154709980865708945979774039797792258727305898165907882861522669408732856749705765478176692262787610447066018649136400623329986520678674087277388307401208924616979612129034673670710326208941397358524834781891340946966755935004265137335721858210000533350906175096374658795642846770624393658221927648226981777323841498402412219428244205450325418859154551256838759586607567110491582999090833341429211813121572644263253396355612730782929688030025475383152957510555180462378633150922365963613013926266040351346743022521914886423826892027358314653567150163499879273085232100417612655504564908156124961781301900202343311492906027999312657380396929965178414424318021063479493574954390050894507342950914576059783033906460274134694881857244623067931854253590611298463938544119166774110021611019107234733613361105293833284111788734715320442036262784602558325970628972548298593387944574214689240568312720511156130678496053647216605541347374707309448861103336893610596400978416981116824503071439022073423651270854909442583624927611607863689409214004297871184328431049531721876577011761263332016653774887943346469316543360056035372579240182946296315796725764239063530934609053285341005354264857562949032471317660214137347478074808180719312142760600834186084497158542558679084450904851010041681492249250367712131549529806732202361378683266703052627991325709778263559388803945551585028893236594301535060162401552267671519490944767224990099478049493201462779038473592254308548955491189473882124431396093483996783880847341685752129322221051158213426270153428573156426372773338941298438913729310609871984138896469923204309975432299128776084951444149006126860738479715767137554681645643216090621920746782377852462026945996481914572414614029845074568625950734077541107287398226656414204101918521250376105571721588936998926797579803564072835372505361914354371577805191335194107768381020599939695305693457219109263930254646807102083744678170698795643071893495774612653967223571900782988755593340441597321538792779565226493570423766081919552961891526197769607552667896272692248411664116034739035407790725349275745506143185806855683332078925601367671462268990296982587640617369798216646791657954594749149385090844634419805685417113404491341435562096695929145254218615688731369337406616291658699659099778395116475034225820325756484585118930845124848279345030817061068064437703614827194197798446350862593953898715023883237646594545245958650915147382071138861048597030510434994876296501677268162948328918371248650333168917468969132814807118513065170845361119012766024621250715523523200524777127318373264917850070246776976593473444448749820560942869612387512858507536835309429510927383309547629218079361037240995607509975643956952897979791661734329264337612692531670866650672162933436939129364354046929846234584458468064564596323612338382529353847861033543772262683746725822381720692534750213694049467565867635008804112054720296017960257631030252881357381337344992858157881553488276526874996139781805791434695622388662877363845584400344923049279009231873546322742409051996616867094547651537629728601585195598102305613880308333259877100805556553182620030051855633117621131028877597679454593864490587723756754850962051786631199942498734310303918525959221230931385025642072741094580601913757862607226808737813114157066663019763848185959155722747515676711684059720452170626573388697738327536059432458133849059392685867974612898147826711441979567095710959196222669971881382577726173353994849887151193115115061257200036272780882480832765841432582506890929756081669310835810105612663563725368229519032849119313758007604777400645380117082139572116215905912809282373917734349270475215579333489334306921462956426046275830719452649936902479333256414791195406351461689586636172798690513692559101215857475154466865422504896174074149713719990384642038041709742394769736177027899908574095372551438557511592557432496827223998584065397389056942027434925509820986857364467840009875969508933499427416347321024052599234114341540544374798333335882639787963884421584997235851417430466714890757073591494718724681046724153017805317585129554626467969739767226737877581764271059399001255652359174859344539007122543335747488807809428662619146799969059046661505349929633818474482659470638382549992289555456433263543833270748464182030794246892003936333307235065376069173069157314786126985935593988298424128288065790289728979844624982665366450248071722923088974564579373406626107263864985719347475547306360368268239147354120669662784629471667223718148185468950769449213511915647439194775274853086085147181771170249575925539112626389609146409770512240712028662679166629184091163597516228514263947470423525821069034712595522560825121526924385383896741714225333447530187916035543917890671700705087974901311512303599574558433101433711132003929248275314308061653198353400604821818020413073063304804382727762554212288349603375157840832942932350876081688572635937827168350356054772007137912588495151062236356039831427421585845753787691739109247425230068329186652971472753178442975637608850543203471077521163962802975181576858453771331958668028076277417414820633064627287499849683885292155209910405589696042628885356331339514850783274680650539673311809034991511198573757931632656664595119278719376330194689054796391878315039869934961425839190941011739985664426987812532515739053202324135804398307234723554531698239912290995073042901290143396673215660799883350054703439490540431062045973014702673712782906840425134758499888311152582558505845534715570354485118859776300846544134295771790010226023277093692225294419282890131603051936167426597842166809790920635676260673124934604131896219925309137996651671149120912136263586847138983995669389278422044741105453509621282595826779576608841926069830152687033950235630685308205948116362051646672737293491483512651894246110835850726375214932143553571756262633301302857029726740007984760672561529475705164801671832149753632445963038016185907626258849448712887281414312726031790310566996723087977888778409257865959243997608273733121326370316091859040830949095728078895840060297552303816374198326094331233914108952304192475750294518525363616802418858837958774592520417681054581107136780660989653280240359529289104685472573257494106667358617549207737293179834716743756815191813812966336411882067884474964811360217718441917932618608613857335650224217330712259524263821123541008724198724969007618271623169747073288996175597418343569918042373044436073688777034234645174302512255293598567012089414825895606159034728836487373988830089559871626677054173265217735334134987609246994142506568985654632541706680120554585154695163600209958891565080326410207996452022191567310929163517888894366653419110688846096287294985372159756010887026030376423402347213747502876987693839412547404357922159837935005765749088612319850343507067780789476291378994313584410419583923296207255509844169347056875483407719134526435726581501122424312893494304291169015032083413110327625973207750437425691174175709409523236176393526691488990032280109831203077451890949558326275796248149681548143800758099527321166473585324036142750820860387258818707512328613888520551006047718524296804116140938954743252148735634119571742035713089577376736733580860939944353421164739569098118666015844326800859562856727587488150640723377261119404503123392363936903372942206126843066373948067330495566696293226800142303625689100649055125680706598474337944651526675396042059773663771305745155582277235499757366873134453355342301509271005164514177410361438176174007757258571693942333249454965212800268981382137211072280558155330462560442492124600366032910312856090577165609773162063044100213885034020375047872193741073388046779625976375564210869980220430394573921258434011700676597035352457056289735218224619761067810638904738733783417696819957666876368279739774465537321870839681764462536723221086463859468499172481006399536025308726749297169602800306545206848131058326271986051045071642601228947750750744210856083350576908185378561468934304261703436024721850589989394449991049336285280356268551308694391928769688217752518225188179650098532800276705000232994935621923739397500827422464869715915361462174764863094797263851947644329360579448914525181868629059936918217792999070243726160002666267581659203358190477497786993699145341258144689896689705424175283944720576000729647673144072777183368694500646546366297298788355985804363831097846486263258534898798916170150653088463200187701459423195808217335234858025264878804655646097657660797009572598184953347597799321764187005485922719880444353321294579272100873180548838345185987246602196153281853635506500390525804178365608760928060402155686573660956890197809720533195686507662708853303184458452724727504185799786985099993670234041160634905463495774650922520675602431505567181385196652767214729218161431630988179634985922076659512233820129254241416944897854427331032268967225653528659646585918470178516887648927887493285682129884016957266401339195632567108023860341702433981270657367967291425820336409198154087850090948127375494919726575481162536845851521759998052339081927131503148833777830856450831928018085716083634842430534554326845179949280118074147977026731633408057373810026439630621950515836348385184354346342871804488482721148553597581428228276598276896240057893276805751705008504496895561813494723007158268786447230660762763387881746983085346039738662080664042486196848629365578115517815649886652849308959802146702474188344532086819007059448189769850379547843656603048910959755148729388153357523785325536172219727058249605187900534057308820518871196805727186742491155213319957325175376945600773181142818805784541531554890622376638679387717088702218806909410959161322218708162918116478583651240741938794336039648785515251526473056810397165938687056639736244218359346157579109082381416337328929648076454101672468712869040237083026589847847441405101091490396242795920343691990450920407863838816350645183119036119709994275101553166045647380781264101332630042562450818869699405887612183545119524686653157764615947138073995855286979338476454385822351643869157919385528719070341692650486917204830606941102902472469890940754675938348641567719505174344743769560663991657816817902211198930448426654869898331679940279888491376098217115055970457909423866606705183782332522370831411766904142257228831209041011417440275001304687658870078040863437871530354193153186235259405891651978678792583932177317069082799567821893543052744436213968173515486301121180243907102422727090388383688277845453471122037797033400517041816245092035803023816940944633835282032120296335739928760268377252065954385924716824812806934030945065223171227428294621431673746051552141464274357207730784526360575278619491442595804945020578860795207461839629237264008006108449748208247151362831073314660552081899550943858719599061840070336625745071801163352955078527444227375028702056969077291005604816691086598326048792052163357257964858909854774074565526083851782373346421443647787134311423626671286738130488935783581871749541850833062229265327410415230570209251527083030149053113213995962614427188996050579715514362480770014449028297155870891546621076313031141005316047651607777740958675322394219242792317255792222474341319571911116724516228534369422667703880429188449360446318375411184434128313439913382444886300965576604431243582358929809692892044732830770413359209466556806484929583905195529988449358265444390164794275332801022967635321341056902923835475553160228049356714721072888671663444319832003483334639232380238478248653769384051888082571494589065461467923558408324555115443812143746811510700018651169165061998427228462807503973985506854541013394354983972131596377732107895358350876533662533898436669447733131145530161598731104244995335472736475050953275756900899212445948256277089550004020608280251241631875421081593817246967275604722145444005819827766638296807805792395614240534276767572683387643763605318282069472628936945058677884996756924019391533602137384520962112387748366793317733927342341610136514891500263756353350795773287598141434332545639104418791597882930251966971121601961077133558489673574645917245984797222624597073598211420390777847596902696200370176440100475132064679985172689074321501261049845831757854872660640893355188403337335943723430026841014587308523367343586062308902278923711847986942547212202365820724872796022899863032148687984699033564045805993663617168797434789006921595678857358230587487731753062469838382983968927872008854200456824018923057182466304200191780169033171674501416072139171036555117825417029701696819452895843662012625548796971166779803596586186054015921088264976052648154038734450615731938125483722139441029683813193831311587598971214259820400139082850451666962407078663274276374625310623829251600637512671483190721390811311327343204368845260233123216623315238072349993134637056179085036866144773946572102979005950348180998937018251091173425792876766947580604881508422395935498527974689734173172474968843002512603900360508294707853657269917363961150813902314298632150754064386598458567674450971632411673717165776240557867865832962729669499630568630389184105824739076439159418003741057242930055675134516646102542296051222152791070758282880836095397509005052423304923554247060639970022217266480840249664115479001066061551191066286026890857778315792528677884493074696139285376254382535729799193250674076273391736195091071685524144883839313517255696086130972656869100007284624452763106638867100474463914506840931646719066438203165842690622805416149600888207818316074160443370517461986403156743169323105872143412682297988371628019734196140717593390472534271289129490436446358392191498570911483092197779713841577230731323241876532470345504764467170477171243184719421641391675966956923073226086487627340834735017239792238346014592097894743423653752660073237619138614892626273341463518845803260850109246298215701096962460104711749680908308122344029218470173043213728473430351598520168326005555216616322283823731465157486180280749840530452960474127554833914795536578973250650306512564908680758507555356972423089190402834554549308717776125110707536787842862692766066907461819264950442920645296227139857209286366557220139308174223176246680646642378068633926887763294573050769072084431504049145990009450127563800206700523144237545346871421396792016663399689705928663667160982580197675730755305057175120492555900789682485869001738180300002051834648850394670667587919795594486640557890869880513812116947747595922649866484714535400341030004660041727632004015764665765454684082679646823820535122793950648900161482214141679052195987401467757390134197526721222708715806618239903617585163657802382616460743055652799801538002564763579319363814972459290075601999606929617617432378514500341445221329347727133518628225957815132256087557043982730999829225273474125405441781579960352118315704240889865361406480046929909521669744918578548173206306362467523448708063471941285420848309744755605334615385089743061853504945073295469380783618286276890320858391377832155399869157058572709997103903092870428150539069036363531522508299710003923774993554921114292360240716430221549961742019698130009949762519150410932541508155456499447216865896270642003888015900409541278858749320334149353231649721309017746065971839010991197646273818402298344865242061589008007674872429038294796749663933216988125074897924153934910798662099128129862546589000174427175677557469239082780977918985636178132611845243933271398592392215980467447027055075536736403179299098550351439273535301861602499821456056198975207589285816684865193489317503374479626595148445896219915967843249324374808389970814142634236769281831690959194418509936833900461304642793206336535282404949758714824420094805720388383323380156965838187887687269073321417500300129279458914237870093788014422363404699199218435272303893423716540606977339407919005381763749621744739717305673469949947215462284985234363941149351106227080357562772792328715213131659496734477998876595402273563811703927731558760778396400772262623403041037449751278408172216435976464397728179873372089851948334546346170618126459651490322181767753260440682950133121727925433205125150993031884380369004697120161276556753092269626445444579423085000944074881471386639244386562976355426244873617670406581102109625192200409650593957020268287655267002218522143438523309639709127005843124914338082289211375673401111032893354090623916059555350505791697238568839612738098576400005870130655431333291772558774319437908167821224097727630585980052512708778137165807664230608234960845008704011164349229257435719601652872997900920455365809654708371724947843704089828168775232913064707534224703073815647131300473567669415864684946999389264230133081026504938673449261273089001862404847676223110769277398259546956202057414329401271788606139498773846598990101202649860379926476341479882986825196327543859975184119804652876686720996465346849145291460222617530129795381519407906077527654583753539412202296023560847764421932263374568898703052133793764308730847766732339682510423730986210078200252993056659858612901821160083359397774551868764445769782881068033918278665415727364547801524564545235502253960150802019081251303653555468823758775035860235390930264254366380000476741994777547601409008795304026170378498831538995283484350428869485709909027481686730161847886723538460648565831282315274350260205187758333339822005109439666805377717607895580905153576874194711121984985333610210293853173437986366185982473734577653195584970009270472377896553902773115685442171004170776204350311291964866577023365530935776585631367873804698777342907668685115851221114188587801027727298068121938084418206627687067570832066603918499078571789482427121440815584882779573149999055466631647034174200619354050078731828281836191205704383966639100660601224066709408658686172679373617119850265321929255759915015886010489409346818845491574856301562791922695179652425143665425225364208562311927826274948579858523450982421859550937731541240874517297423130232498950396536241820949433245974898264893246668342769644367592768882665055468304750063130519991949958808934531914824029396208798295583249219062845693725311143818315889266294739604873944395854537251192876656501150911182239131998983983249631308664954846343539293740450595371412093865078132556476405205976876532734268399678936156149241884045154563325944021405068796219320984812018726015022547765591031368690244591967588985947154819710126704609706899745005822216777325176600504837359006756471723730653736251789728665437366591553107048109123129911543929541917383878750563740078072799676302255246490167470863732064146518433330008592071743730632383716220493936558970711276077161265266073449028699884406413061809041833389193532217407011732857414540874425005000691964408138857120957072284957271359833498450826028687301170056763299492815589498017991651740836682201372908496078675663416341275310617887412205963701037184530033848161608280607796896964320959827871495430071490875722187696996287962962680838848419642640467774845632717087012309084328623737951677075744868937312329910784402093754604785309223972301354550254069132975411643601328446111115367942074452154158954847733685420304970546252813106574648322413162673625970745091142670993177795850308879011922674521216853440077942612051305297712960774796879290785872799478989921938801901518216786125880868155687840554600517155103840944076762478153303775169323447236300556738578386166759197446944497853244742962331201057661543111547269405714900254440127618055632516907381873954900527316470155535767579347559925531917755806778970401828221153871916425251654040561988023671202548302809912251266178710003881925299291390552351244529696002402512286417507713759559022491992175327855504762002636659152019222442270810755627322136722169938424748907620960281158607509439612795949462352809497032275780163507894490346723643536947356060466901075189403292109062183854167119252536654026698036659922808940205237388426308608938231198898521876376761874167260856023063626331576473659191110014393832874233425091840428998161423450620087138164241537227998453920974710709034794157275096145715872488009139416666855498209634188638136145125296530701895455848627047850777214406488953839212051277222057205920644220371296394266883716131196176893778226702066859558991991011069690094013216879102820517508529831742727558218679942322022679698316601356085345166389153746721562652717481877275633335103924055107129469504564960377527935096109571084464415435421366286361821419239689582592887038629342970171504371354359415929046748468140034271481696960934589168793619114779303228835204957082917200409758686197579798787090458991967496298200486715286309344145311036991389548310203056506693202305770556403583821556406541977664088188951384476936822341780170523748094023255623294790463172093737055296602278135163339076054329061794546053470506731495218628876766412082630402849755295090354563144435290353638139523810638850927837706647750689747059568564566320533118807704740623787196263454549348629825110614399276125708241869571293418477266896422569997906860634850887686014958854189609052578310696493524486858666353349550416647007776165754300461573746806454465879734892543168318814071031226901404794900314838561637618975530248125713070216999993032399591308697383525024078304649698897254255084447432625355258172932129335948111006172226586400759074390532773484833517373527406988724886215677994269497647201084922576279069564126398719789687059920385558785452644540249884111342691648698304654447722571787069221899628610301623837048191252675604261903997847987923125436807571126307842898645141517725441611878053336339760878513182497193114144626435932926142020428094394111117534983313738729728943189058506399709404004660977649167399269433036882812284655025169719402770010713459432158434567924161297800328143478128712341397760817696949182690776264869583679241479465001907264992379969618901564346113741477161870386988680827994479138462136517236121251914957416916726234120332278907464456779414312132237537877871397672568023809447523359934759365204624296899918420204892868011527333878064598058678139222039866877154967825583733110242930473338757725008505043178396797171334151325031547501690699739966504123198528812097742988980506282709286145991968505711143232848078839086883931569863251382796240558389061699761897984204227145324691459015635480513795779359874288765136940203136628370539593743675971588685117856872296172459617490623091113630127104428743750527744121569199446689047243215960570958833647248130776583338347591014032975506368092019513190268319230224881943110794124871947403128253012391841753708100143416367249150204914296175985088616600129160842779300826385301868092230720801015785680451965570841691351591410278654928375194469416881349891805561081252384666854097563111754816394413653550176028340994174375903733598865831665536559462370559686834712709337935292419696234460827344756018204064638541160159011206930306685092003363874372175037289699840153557834516018125470773455981708835487489248154097275946281203115701870126691990533504633173169623244583282949788873887768395855421421017065810763493055147636559259783103908905484462858853161980277594569574761478813181820658599726934029291836546615686550881963162418052118273794115201142224867978363971394641180359929840703526321554493655896659110996306835340243393288248318273552419220238999907865766686270220502048748001987218464265588495526379277143554791305736579516393975954273562622878248457175585971422249298739518715231609605582199351132189157745693346758934624198240709221671630638164835402574995463803363375743993834738680089688682080051632735130229747845370849495828993120338427953797718159165396020883051536679968468382537839036183762417672108906015040085153341979980442884143176480225464597009901343381470130174320113685584544760781785155371524468706315479778615854594175512232565193235241511759961132715067130478198876974227159199879933723272835198525270318021525876753775521982238053519370458541371145462475301943712114041906696513572710747574988178019906575408302692425971574870253141939916094432512114493902567793262362429030954480724925020523719437197958917754306638353680238482471839083628217977300803939892264241381474322107576393012197707828725107851560664424084893475882559396438870958484102657783734951514747475494952836368201707685147436623780336421431239318891174351563041319094994036019376896499324868322700408183977045049851993968414448662174890685062237762970809948663836759700971986350343246104980464656839221278443528113088392728308562208212884761218174030458391715521957266582171468925725011982070491129035545824895888885125454907801143995887646326128934845142890291947627682294765853655099209526821631317721395318308362383610354345648922594298624181160686206285100771890909278639027168329911446126441903574199948497332862505061345246464143925497417386647077428740120486242080713382095782623725167032291525444614873595378773903279105262081740918041442204731615409526008321400910036097032559524225581566060223281656833610331784260537132303009506119331613443612907289817463176735239921612667239130525507044629342342317417389658773077807360529032034750552217952649078731974953055527625706282359802795067823890829523030989006565133085930070615090964950661369350463624680873154076157294186656073528202077685914051137428339819837952917979222121471251027977657525241688333563484642019376720870096765715441827920195421061958940829962811674630485560071353657578319125251239473283917545184107795806699774969911573152278203323234280270973599342933216847664891633427820090280846218257109091795927959535442379308664075289089788840954619027240467417542715717622156757688948437893878901459979205179406034441874711481346307852573153153973576795069773634842646084682359484937405168595459092477893197127162657996931724086208856099071569092940070442770504635083836333796575123234767833418962590242807514654808040568667738454511860701041873344043948341819155757040613591929760294970204932943653229942743939283216198394023882260663320164661617106154891695222217215967750819231293090483839038554101467970625201792902101201487922543156682635286860791857883057664299123312404712031437099545171726688293106891219480999943458974654213114339340353871280378307316036685021849629093492663286305248559077631959870300511400306622059002469119221881768447642030704561885851846987097825768382249975996781962466715363316979050576954459336475284711655522327909753420615049936478356055452015899479445872341960247897021595533782344225711639050768650350029060878954151542702826248032319326826867149601503049332082537169626957463614149924169779341603328418801386025190126793730551037515765055913547565540264496588065182879064174130547554230859858101219717916419635538602428541397095676459683469818833640621200091074753121333944269087950685134704317048093336072107173418364263401656215747989571654286761276852142361997007035707410471305738138267464982160093732255627655984021147587829063565681367505291911507612670384167933402596680865140202995095119096285666483411859077327078234414793214554955520106205350621442741883540597904545762573408248306125785606006310250863464781988959054360257165822827117997175837193967880183653346517532487464794758331709284214420468416544315653584735893139946465050687534065908648228993731447014205299989031318503341466880047517600261869688679541528553639582084471258434906331885452892690107043608383782304722100379187834130385360996543993925144032628873722320071440883225839448705932160313356350950920372944251967197789966927546120526283228551790923127800498305867164049423535588488612059175894434870302342511456172232871322599037720733435420105726535730350639067926414909351195050217255247120022554534229317172209243415689792913713080097785446534283073185176150599779558050907348632596036928656992127975560606317397090297956965720506073556336997681272275431062371958742511182295230027787818092612642081159846675233884891988197752549614378798558082427003498957277565921795010255770808748398774455581580649864840294005856749646142827643555622453274972682317282977755355414329943558960185043429483547316805807744362523654410684070091090902090556497651279344302053827431284614214427948249629738246468286828643652374218427395292986935969472343463253056358739372660761112463204665593988150065266735854280461003353870974263137693835688201313970795121122469954338989463285626599974353969389040627114363447924838558988041307120011261698072660320918350415355929360811043190396873804629194282785443222501770996679533384394039423968287127792920877539332382785161086298201357635033552792632582409049661849373174100277162930923259727002694794728332246957164647474809988512900326970125129708441871647984666713765970067921842730890899305258792822518907206556024900695428674325175713210976725469250748115887965242405556174743387218023024976671287080841619910577029349625229764433298351599231849507335993831060918074216804910071131759078310723391493134675510662172455435595142158983148018050358434191636810875524248748576881457534561054157025389116240758392094451908109700008556044042009560207909516163161634017080563957582450228188791222339620669563185222488174989463073786879464761646284641509295373281037406336442448756893997997095708204607630287154733033228577591724735602709358411729864257707393441145292188999943979734631478038862916203930430440858913865059759167958647125160186305316485339789134698797723541274901641524736725130052419094367029899954349392956758383518181411928805390532495000286879807732382764890259825304611456685835095887564953998807510648819639137318371178374878214302308220823909167866822186113839891441163051123499684028217148771443487061884736697497407447383301777057031468370270032082323582131008638076680490866728192756859213655170819019929153193318729960403262997295778028017534602544229479527764507489801799230823327804849623655482409017538692457396966268758939672319573500744684412957115173724643384619786042872452522923901752421839142052458654668933107875486689868482103732764264500474388992928155269367946724879731807437712103797229020053369901932354665917098830004230095520145458718317955950788450443487468734472985804673457632741614696404027468225788871447971751060194017926345612710229928053766887591316092191119968788306508803864597915034193572334926930935934221316128609470985637994207179327454634460199884018636825076681416952369628980371243785091453949272705208233206734608897104194038809152565071835103662977647019622486626066362003452447842029683475144332698755251209567638092320238470826706379560074639446871601913654560766416216344212654130779023723063180722634299219163361855269728572287083207799300228770825806971067030413149991900896640340834323133882859905805576249136469367395569237674923680200771919640977403431896865985694147011685181419768285162410349957731367107305556452275760346200038981557249649031219352255713029057663122005209153310552821712435543388438591567110118657997161130169509148147197697043563764490320618892660475789869326632996994538728820450254024891619609594534165387570708183868846912971873011312836538452529420480333101217304061131155180050381604237788043850121618439834634113615648639110670672208204615560896093415136209772091849805841375929685464402361927877297312179644505392157536120058257969954807966040452957359720849560290039063547145241598625874714241874574348482098588347576160947471723361388945274987676768891600731166133909913913355612937374798893333670519901033362894769802626063771478877363468696496957912392399699453293044749718010698163867689140953899127031816007298647718676150956266551058815771122491189628280328504913203533006054314451624578964678201135162368665428671342367582693625731955386558224480499391599509445719268142687012128577422729975659135515066221617229422106678220349902635406307647740481408944735037642792955662201700034780629599168924337969694870270280037555179160488150725010405415509012257346204058894250732536327527509287652899918141746527756292608838061337157573978842923626332301943638049602724192804011095191187365730829789849668424526862003536726792830602589064003119620238675107191947050059458573789631145441329683545257272062360855552561145853608894353082595608615806821325694769162929723792037352441270620482601526591217456646468070637668171946822887525069978278689521500147062081181575620171813983171118219972257466991680907764591305444325057820843576382645003854137404336730781341482271270613508694727881573175454415777695539902099039076807975786226288257214456258977368440635857267017681856362305473241463427230994090307048848539803232016335746247465672073527745704520541581914837597876512733092210198895673035042206650547949390299232448734500462031267404241921808448726329307033415772367967817772964421199952511556172043868145783928791660835386594682109264586686338882051194148768541169700799222431869173572128058071231516869015056894958772945650917237427868994856286224222302742033499550718093718077523223621289606933044509954694367670579692302319039165364072218731207245374187598910154373564084411420827170121919586198177887478836997687976055254230906779286636636793525576812114186933201844267819525061153314646517274644008753940102242048575048964542891681972336199809137642833049259495768516685761359322758979611290256206466469815865822808590783297898804387285734307807904318833115793749712747018502769589230935938213567726291152696730011840280065724598312345772196343536167068381932795949840183059252882366676510620286944743278958717655707433628004264273375409620685988250078429433975886665154761418056794910578140034360751162781150765849493546079870565114784095208489709772197866548354343132815641242506798904431631946329881592091664577933423685146265489656434297010598829470061779484907893783706406542063291715860034561311846150721221185248177976230315599188690315858111221291684609854742013743467794595121145944816343520643119546699454212770865174831360283953545016562163786820194603067381099456133441275202361042401835923845884984663712672546260294762448308239675958399580638825378100075288975866933921482792163549638236479070336467803147120247320607844285304434869764946559852386759899251574186671962382065445169617605187090222109993695853981896960584296101597160393787209350495830981214701291145900389187146079681129063330272142836928223778592857539571249171983811491663457118011142384330211934501541134716530814112953252887405806090973375045943290135227371887540232193237227069669031760917399897522581626182693377241370946181599652527855013801286902570259029769417949603323454792766021317349771608517284273578642262489324842627518179814973549473388692097436751713295599965184254025783836450046919316329627659475889472062861300246881973366802853066556055790206699993621943556601745866083193936001880725453487565796841381975219480845341879089394458337572529349272019043968958032455504121471976330858847536245349772636553805560222002109420315180181668996501885702124537060945805387625490774925748758208636898706182327813844322319151899234263251662686102219206627195159111539575951321328529249933955207076722559929929834911520380684517325037606883444525598986408878432072332561613564940033056814058443509150254358824934039886481435904403711077654613388690965011306665390425725103371506849418921215897855244736704677555398780494807426482141645086538944883726996080530907346561641961464056821171230522385566188552688607126965647764237002338479020444013912882165585376921307382831909550934428529998357053985520031952681397520103317665065644631761475726886195508912787919700594019559598954537339556096078528794066287141713456018220844881595914804931015359463192859233769432404989120643389527174195799919885499287551932289992439583398624558298578575243237159877165522185544666933517581569133457876882639232135507243460783085304637655365975137942972867579888640640003393983855212757555830670760615478731234994663286232168749817381372880941025160090110806102658332826780091962784918420242281224529725597120869885208321602076365953319296085083763426950919119179812435229141759367818734949125438994249065672685480454603779298163561857357891208182964012754722055735471858108311356469877460188832606114908075346969090284284890354156054444147686142015471721134106275842635684219082845503825173320912511435989217303205066628111697721433792373397518264926635794092938133600475611199171171190693673052052709669831212674071605576541026758695796400847174823048857234820202397373194740579929769647902404671489873353540356098723557816835153734527793407404203600475522388453442707904432999018517427778817619731211511488213870703379467502018945786693524856490114099386769179924364203638411039191847649879645214854041693672544374433393349708920833304497524397628181685169329228363059561850138033404492818846118794194244150679910594135430146174068618922098429110545962308711920648718753087121812989778956281130776760104300238527897153615680852240946750673375647534967847592691828459976826845421168641429961420284198714975831567113625236882335763444191120142210736840199584876258291754489361642191090394157795367029244879077050404402494368936210732020569013139923438800527295426859294365655340472565474529044039534316018292460264610158456562977875393420743393910440872592976681020850852401839042253305321601377734433532414743151392946632363949032864959649443813018535010166987688899029143563947027816880678756102369262079845223875494476016012375521788431321486132627041106914380566435981088560394127451666819256611579262241551932210699462131220391802487683160278223668896655742020326673385301255228457745812516688503832248986452499171616225036271851721352840990139975700543777006472310115743719601986517016009649060549231804360421061900407725065020432366564030099943831114782082317763250623401909818177909082087440343558405897545943038084036022249759076660235009409021602438390952458150761361277243727342662334613387520506639171506971949993195724566383958610006464382527911489360741809257184594696597083374846862079637507327412423268468302996828484522050572282520255684043774133681767713103579368557677559476887323581802901298867027186840657668725416347454498147580833432873729136535312858351934616203742036204513091201559549468266223631805421731985541592544900255671869930451196205207273609310212665401881896253444222429451276700998898222442438784170356684060835151031279097183553131929316006514876391894598743797363833703922046811749776884264375672838505616355626433847899724002637330621061067959908108523650443523241127000719649058025595956846331288218003458002691035530121588626909485870989018924101546006048889264199387145847605026512357583680933396552922353802677523984601393935745317793090633970317203769899725634560939812505997286701124350684982129883031150917807256060294201249201584286419590367787260720728018834268882138888703146652928481723432505306098711520267799704029289963976891987428513852775632653883535147392004008347501205961460377846374569208493086196406721639577808416629948375605062227747339814766059332164896497799260700138433082868736582746847371546367362248858168889634963225454842237409442797574524349813993070412083884132829395847217893082887695999769813541803183700331474186224579035394704332021514246969034669051954324169875942406352486288666975085088500135772654458416585048579792631433804512145800810682610399840677321175879174240752727380768857502089955802920560469371972868780800050406122963432565921721506163147950009184627795706942106771161569171063404345676054017980956457830790746910800025828539864713443227795597220901191515249440138422278182980344873727468896601685389904524240639455803218430293574006012952744465901563869884681224626716045854074974849761978104744356485949441500401082509704195501715620754300995507161819918311565661438806175118411786693466321429451879575167606381790065369415253732379194992493216380674153078681088513307695292655059194426446865122573596331988480867845980118480856015290428617595800767867051406280366713667160766904314151394013751967757233923594060007135906918004096885108112534073461639261621016592794499333976628348693238673929087433972334965767929547844648441751860574203572239689309223470949679030177887898293435568342997971448171028895859362701851093094100456349819756774311922761708212815570110132947620243099426714260525467604454266773226776958538878130839930918891550192888160987105513327266101207137908777972071174075442097859898221145224610767798461956824771037160972475591487152432091634193329007837835669261388647044500049601679811336386817541677151399408401766231553636621624954725471616290037987661447655829024315622418143455009549062314307567177540844011026471527716175234357322216473629182036677854350138598681507581873657525306625103324300631387975118791836554551361543746385000935173453270577481380606918620596360425429091998205269773208945327947935816069339953544698028475908223646073976560672865862947366049694092822260841526365376691828387733898897622929987707427404745977073386825466463712092981461620747856750005470768635012261654127038543780280286421777376829874409033164245612734922989086272044145695258525233379943818565940936345896539435797825799014423814745843004364659549284723827223213738191311610127801888287327904423773951228237668590905076250417849704992605019272755582963191326748073422592506092926259577543954575093875486028904199878667667874112828215604081055307960987186348999037063512753891406676377681679676150057070711604725978118015607062274080425876578552252200678654818627793303294788139922173270181444661783207587875643227168052606758302370545265942062678759862507976010300416262687177889123290020149708635437741729588649957274813391453976231070362519901878236091361734720494400850587118527799302539561737827204110470261577485220903816483164986948570764743964646056943121394954730598066144043650907913048454947446760013042396236932394591390055117939310391012230243889008154114605900754581093890076224189528933454300001923356554400680294967482741300119849854957328056546366714097181450583293935920735640009087165372852522777616980810580283620328037848288559789426898451328175395782026132396672935042681169110197493648530551830136575754462502292332040908911825933554340275988637407497520592541099189970448705726655393447336342262296556690750698462368938442050722483353874829259854461918390566939163612923181389805002093735595272280539178035170924897631617125777867855616679056489003985947005307294419206075490307113117307599789359361852166553706096165195991668882940037794675533922614730126055817573531169576127556258610674477043208990925905203678194525475280685421792112423453244084363622733313310992819257252457953562265696746681900073581206214902320300880309587438176630077249476179780773496158709318768978890229721503101056539540405057210030255696275124210013628264058988312144709139521620542711862797796459878839752746820670898239961288240452398263743235428107997051121253053335959095578612531250652537598347977476517820018100556569364123261763788035333158500073774541110767236062007133595894114622340195278267526290800773964610660858482312861916713061734693903251335889236003771316451385393320174549182863481139100205011218593444250782857689305833961938366997950908779479108873665088444763060418272417476394669938363537228328654402098138952790021689028565242296178907816488756208564708037874608605656305695679488940609013899948211253874127589567663857304856929741671572675752589587692388718220326481015663967906389602300431699885854228329170474900371019148671782288117044297115324444429991316320366540925853833845320558449680487124473922430892618274837915984328753412480539477535510335546647974185003299914865997351608112410087785573013433381546974559772782485968578974852177587516017468949010548343328834130226397582401940966127104296273249978340601480829767248733685047450053084048025585077744438227966241503737934951305678433011907753313066260671300569120056485432724655007203958929511668018556060354596866165568054810528111390914939841989252676515107597548681562674946590933720672916193208888092225939125648632224553149639296697478182232207833253528182708786850983232876377723783593634700808481785998737788297904832421795803573130091031848577183530013039185506279879311413860023978053101838996939474280193050259565512879707819254303028907664292159944695691755743107158588410138077739995181642691580024210027009943943327492614707360418830940957091597206477801816576529834940586928376256944452864007187706426045238086404100953628003034609189584076094263520139259417190479829916780339411312938112620904648734763373302746588261906239431824484871961013715060284826067408085891462529488961019046762836016556540953637226821812481030864496365222906752426449089291744519253723915012318648565052752350033352044158297520595054318559835431770160647245174640086854327878498217895277083815386804627585881884378125431100778720859385455367812388002813444242791363129359472531218679694780992076024931657320078877719006615598149190643276104950916093454218719756879787239887264351274398759542769219109182749674034285919214177846934417746682605699244227695633533908280558081696484492218595475596618433323392746910707596849143338910041638088717396990846831300893134164285056824866167589459427721429525764076727961968561768755883822798977335321085403227161091675013654979885483650064857835923065657445255422139083997341194062413389199981717500386830919914904173576316403596875872061744282373641712070394276434377090751032714879365127047681656848566425934518073799352994878944496910829937699057128097552619209672697331374736428824885629690619693476078324350030322572505098600589889454540716481126703496902700274484571209785447712676356494901243779983227341755124075158136430513446797700071487082826994158173514619445515914389841844806675454599690775963490277409959561208808042790164507265748856560735168456746248154175224794228392914671672623377104717918392947665312858474512016621803689454297103332152555985457400717791474558794093780125955540757654544553801708844917213755858804687822064546250388906904386151147438027264869462375786806548509705806847387518320577442749517495238837449188467140607466151304257639766503608130309325486277074026000996808854257946187904596478287739754721462828537383510823201724595941564490301117981340437394914735513251234328400336365010394857905799564989465584892533434228167403686735001924974405943748832448995639366627797196801935715643343011714427243498841655927145424359445831104509500855534309316852175090542930456047341225302126301085685457765657492293462308627883706051124430991240004516426877716914707647442814290313745673739779490652709814509017681321777960238107257017232149881148637553664164515970534830899254145432580193364629862169809337157942831183237307439529027380576715690901604384360257928968268136560931578164268757042482829359670560289197759929266831788456863133633768902015268591695385316489382927210373959752259854513218766225875108777862721969347884466271987950587501454118906979704938763849926693148403321618377107877963018201702472495015672154600438591500396074093950723224645297558772502149890795413608207682859627713373034144057449512589419996078288146997515883467469993174166040257087121517879032467941660043039194110899392004811239759523087358050808783477261608172389835884638863005730858693546928364129416560667987731266373430224214017900833388976266288843432285629567574253172474046597545888242604325759807139939370764761454692880615491142551391079931041471082206937475472944550642064283308792007158530670402900480102346095462548480979174149063624520249936999863744596670590095496152296506123945439830197356734638482101213144645430314724674535446277273604693376766537228581802761385484741613804280710566150552731441572977056337085495038256749624006472957394058801218670298100942256603493386385166796541338677084312425206856486650732205945126623573550434597211508420329414329730763669639573862869753413832355177006458300909817720160928086969092126963933536496527513795665015771364686697892780137577685356768784466623772085298146467521327346635217997527845112441893863630794152099830081331144871745035021442001011210188389791550555774915285006375080581963458200012271667575545125833096165631471110989183965885800751647746128194786359365836440405863074235575087128116695126843148378030978551148060543920523546708208010231293386641829316506781692232984337411500181924127964933099916680499675019105954688970845722790171655006627685852856293213852023933268457417023139213198463234282816418013862400799003732403123511435920126796490730021420720072581068193430046529161021875800474086048514086411423772411828588517448505183464634779921318555239049140675148561741547177438956580835733727408796487500449189753676990425010451340943822787968007126335468314582857369794424997871078937089400199384050998063873906574669007562281672777099834615661810704019389117896108095924363322764682679151772281682111313767731180052136956015680438069793126459680484536243379501888031810601062947927920848977695630134742544529200122525675411037782913091555806581345623146366094497343510570874344422265104050171017061726551676401022655056768247527186920768039017416539201241721172379712626119159541784940308970374453415509863350055549679280150653067448336897359561656578431138314144074629357131085491733122227546521715796560986753480603321096870103920176978127710322476882824552479532867489365510252879851087531536120158357019034348935843555798206647899680932083606974833293989892258714955853003173326157461535134647655171811835373501898199721145310691493606316792092376268143505837475654415783788605085856017869617317063795148589819787701037806668398051512225070894406587033215211205328774800919506775919835640690665347894245324217324853132539909470579564686999474525281981111054390135804419217840027381746186963406424916291967768315556811015798679642321210589738938316082211729972239488387451975189659400075447924889440709732029570558409049192723608875486121587058998732232836127779669534767070882974767017515718797278266206322348551490771744741348431550747882451221540696066696534706870548757302760567225298786269958823465362523932671710765687772465230459958108943066071378828238500539740421300898414017084554039249058244670942454024767912426728340708582696596381155075844894414580199225544253421710898097176585593350950245801643949785072090010671744691594590372477823674715258172143201030541849760757342441417258205099246065574104435440583580141366016757687922290785237059969044582898857282508187586326582480372482000135557050224166593633782460891541835486749525457661190676695461131403894904435281068987293213923736360317516707262027482185051506260238531223108723053596277823698280292404457026823311009089768420759175740514685754031302361166924145268772325375375385119197950558382779835422634237699237154156870887688141228549379936560649067248494422051921530229749803714550676684381364948880020839164646420180155395596528135829982159121718771202726576652122832249035978852649997922181631417559048132423909014740064304381422677389293053218640181658913273703212958463230728071930814486981687173879915374542500454428813427565923362533194292654946130921150665266386890163120106457841320415389087939108097031648730243262718552554649499789319601794650233366328467777828287964852606763244137820025231862697144164907122636105076715302558086417336410523431856825528153278754801157860691173047167067714471330694477098778388387410227338173824748011441292241381320601176838963622453955875014100465843167782534967649273600784097858461326205812569427206642279983057820627868418310693261060245265518662899726416659680708603964309743189092189212212369825953151059284430074772626575724520020445625289383374900798506677198940792351654122540170005298758914070614413357107626718269425553088063679131867326331559620364340303835645949486894381982004254372463599684521206473060521750702048603156864447295463878781560153313959924570059117994269289118367246367042939632983983310600242926296061246175135585675075496254989335550783469882074164821693973844023769541917783963055161999051863229960954418266933135523609046083791950530543384965047501621554097221728953256322861589429768777376140379257963021833254757643488321489222999773937414918712074445184590379130526387979177324755713972110340458539382386676756071806770520807497379649560168211729135467482254397220699498415620663754110958221778713599923752592621562772903816215768241931828618835777976579318554084145849639876914303574416146893512005547533302890551870552554976191156648434461578865061220448820761090215993652164547752450583853802904211096525681055582464968988209060855352666637830665555023658535923418816207567847825003578715055462152387682019906390580748157309718851757696692828609340606650875859909620897483609439294484951449769802347653136726529291354753084960250544727435069894845532821630324667163564590691394449527331537136479614116437838930923248676795791731367264609115733442432332688322262719441762373420362519777318413013098228636324445797559006233736273278815874307497387696041090617204507956556484727265450803965410150006846768803262814530536144494660529619993086485061961684101252623645572431393304706436957294344593374626494980364841622703626337433046568920449645725608485081991065628497861145289691389738608891773756269381369082599989252193468298692743560423533525142405312484092732988490672638697242151619574558343347495730635512181498083869498019620386616412136211114878988511736485943723852838750278075219407217120625411496006730507386786045478920103306936835954338737253895822692559131284458944278900977208776228134827272490565607507620777311597043768834049067072760194983077608612669674903027749992157645909764631268537610812176632478003883943967933950981142285202599068622400939157918581638207889693601833105994376351180624328292030510449400146518294521501422428638583848552384033767589190388644266834360745632095191090821573840333982797394839209849356759769142514599503603977307113950422994572780983027965749519280602806245171246586364883331193770860267419455019853673954864433990091758402828499165355280512258682855378703975518489644373269483761353850947692718109510430587063353971509245560365240264596567627740891739419233886976179289831960348732015502386671412829321972547678573327973614098933773822856299973163575987475453395540720873382912757980567880423521979612706154621241845970957691231264936689242684991366536349476767191252790702614896860157890108509948448152134214855560246780024150147606920026347778649363498203276933704755113535313941726400113108533655186772775076098529661922306329394251849044190654694839562598396494193137204647348751504962063059808130126132906433464959792198168426443951252455632433365776490444345809213719255192822067304333464691227453693723738090905599884649959123635067958181451573194729130810113420255477105862991502688322343647464312197232891833198084733604633834836629906798544463337214048859041717486202768270178680608444870568980758756977872726260088693830804196089225399973315148016723627641984852768617517751917377548854743016716752581855229807152607528311447917660883931484061533773475009899875736032721488176508918909240997717636828940560157710926721872243720511740786615124569494589542325133217316548668820829364208868538258254263301751622481737831172318404029689820398954450665128814194590484000302205481663917081808785458212881863927323272107868528104137966382874138176111185879756364596931162648297636125974528073386223126667758506591140572258563375541358707360432549540378444043827697876665775950716417399769918287942170541990393586657532105202363039137008459462202607045793505197808889449991895267827485620254976713716733140819861706961295313700917971099708743113580970263532834328118298630455585821171082996192804728397297838697204066229375197048129701351625755707370965264982716185973417516285269601360462780325736497312599764907596625310532528470946466073460947861425399069455966732889686843996903309770122862473321947692808165386806930518154625019271476828136396771770793721870701973258883869558473185656888470855087360864370995613922583515805170735750271865701183417336327246021265994656822178056946884142307030413545029659930937010038831043276411446164712786925984896702970709137936416800184757058126034378952321829091995527128191103397964845568441416376068708563469632341736500301737463710371780358010289503483228029113544321331251155231462498345264504687467717934472040303022328715180237733400185740400119101353859769284442247521191225371555909077996801456785603309882247802438211888762250066742054633949105686387003980773650977276965780421378849347916823218231489271059361487290705638014324376822859278308212231297830902599029393630962005684158550511028981687316226802336782353476489070167205518553030314173095697380545518738076116887447433528241968827333944136563412436741677060503729903663668885955744581882570754578619869848726389910877923424610368629943402269350558109220180589742855016175780894869900373020691180741456278415414814410566598170969739186665181374102155360032725111204814433365299084283574577032831979922047166238552182584102057120242428078951281424823632717853775313155010573078806164363871619045419302896642728221068370147635757156390205813202523736981483096879552531140115183970321668556248649757981677728795963965065862439231758555900179482350611581260093397737528463713075172448988144737699509463866113494133009302582516164906169182526539268468264489480512782537066584471788685732340837646505436228266611245276919595913459082516625828180149740661968752078437447434175917646606398086242598904891272173794078643540173290493051661356920111760840854603158245877487349141671726610331836760577892142456991772639096176412114328312019577320675183953969957888103386614933332305871390061837608001676312122602876418627752836889671584119881600555528601663610670841556027939805897450716448664604127657729482628712056235087514274545407979558345138577666593386119488787715237318885752350336336408332887679034997014776529186595837931594294574816506027829400610600491888940248477461797807323886145824455655892232261305376648976148091857507118375856675956786202590168051606065336757500143537265785338180813378389936912646718224989759489179309879481281055034425766517117271528223667815293135479480359483527982073602736369312241014834738257192804817232251043646471237438647011732861660732478034132378251165143170319972167868352082409993440977968226215204635093042580009112120958037379791667942722214336669039731707482265428014496824585161742777016256938292899872187573826787971364079307003451574527751736160425461878728422276832481477917991938413410944836744255691553298789942778693228146918420583056613508024172861382243474180467330880478650994085019131606425521133850165718725746474059659412116853806615364831097006975001611118111707362694802707038682562104696827739171176537670194184669854647637064513404972003024049517384720729147734503700289493716331509867203109985097512878498950712280283425210951053030876948218541578192712050030638395004187662244344421752796774265167277681869884981870753751487619822453885663021900098098690019116938387625243835661298565569334459671686945470592635599722384355430584675474867601581022270764654097943790056915054999739855190361361412729734161562086099661436476959830093821689246140507419331903595463046548513471344460318981713215369013833863565150647936339375727901910585233642552777163922212409397006917771313888045797708716413524868574204045965236815903287087932299301894439678823177153390403565613556599973324254528387733636449032975605820606968844410130371043678033125682025229024935083456838117727049796778804627455573870122541880475066407531468534105727809228305548097148498935711333737959499236774821573390241257722138756056694347114563170461655454235591912905603372300334066881007779467296118914825552607185566699582801875097656131113476194833535672083243554178338746064790598708665252133025767997126625239689571280014580828362499708221880170085196106011333204769131060428923762927415111677049958806812718727422275600973847385985040893678449937938546342633242708813529141948960605371199997504979352180878615453463916501569980501885376562416896337073716239405218317978652048642847366280743751877100900774729620335316837467171798505445474137339127293967842572825636013655546875314428023297385428872941808544412562826666947580657138329194688034092055624316148151849413176465285750851667328037708130724973615949442930121821135378312731190046352665869004795604566520974865768384305757975709513697125899904549180069486263000303843159850545236719791740482666652528430077855708382168672273648749546201978162649606058369777307557072107670583199483556206851106569863270125254164560801681167308812754690290772295094907602887125595108131757934041344231984691669590278096641962595087128744938117379018593103156231286187891047152053010371404985260055550369929462868784060465231394045513579474311134967252153159101768912565969381497500851471185527495312141351263674463621914033148945157808470837377598184487240149151133646491602815840734793829156891366476225864927623496237664401575140642806683010674748823037259385352249073623630100677545365559681281587826412627341522286893227696165138345391040388637443375812068765932875538829609471647502257853084038466203134437920565823649896044654165925991488869180318828406427385538458452080797262707727371386087499304670036037921935971701875966734558452933203453534966733566657109874754389784246394995670072277454164718589381244938955303058398882442782099684398238515973655188985143985118541115913165905187043989615826837585011837589759326313190107533150721679234763291931485510087541483588968750253072157600200875004101687472885818059483470303522796428039449988751016958152384200175205000274355105307231162761331319940321518066687270615370053511270800000560004425447204842445215538571687812511321981970004353170030170944144814064196370617347887957165393088915837678017107834886432744097691713693476365636767461607127718306963445573300949008733528776689748356777107522967506318816578444317002585416888694258818450554968858408178251030297629181454251559765161558533287479128252884917542310978076032919789695541483204872612481477730116480083322616952173142224269849052716193552618517470373562401791715192667470231819615800321133385579853235257477804817670412225961103014691802640176039798686100925225700598182785559842232893365557238289972948998369929253134799249897018670912384156262453879156549622798066282158594933813994259549631728126917118381958178020434775369556075991208783148922886422817636839183828190719615328860507615394648055257230822166146082936086094372210651239227552865113247928048956317462156757148382759646743269306640091743129866849226735113987323398525000950972122417200937293528541058961429971027903817949020992271803402569139190385567015109720409584458039976071284618168855864132450091176977558253564296308344501535760463381771852671891107254717014643378630416305139664335712580945777750347806478297113699247305638213049190715742610760501230218421317410450671990251464421423662964304076127316297925689630840486207964484021015746922402981223169406408984166263008248569239892475323955526718277466409416196079611606217763528803400498647840932155544139315572124127991948716704778785637155758391462204412711082803102441599869142809377583414146653964113527153931340532319289041911056046031429867621341056221288688256564242080157499175845715942731811457381872759771173191833163659769418273045409167880084954152320961839505900245466482805675632927697840855387004868396679083411222661489777112472267950660943474255855259055221311071354119575429394685927029690604595439797180257990868855221680077388496799820660974689863693303013581630599835318424088065485930167559632773180703981665354587768968089689998345225186926167045191593531764614170165789770805058259123115188414009989175711742587959210488474695611736643419551781995094217785021483452700502534755351919279148743239365712539370228486906005638249731463324182885888419053873710018180663741426248420381955470587759989367718105454814081883756518024750796642956258727157310399240557645031623759092497682760015755644377136906465443555441857465761262513952524185284373690794310534394934931769639381311163442833946010292189535609300243107284373331301675336534526681095480276699056736221772768862250263805725983397415335520824148059894872258572400922228757545445845290054370579354914499200925314499764915387543441914414359896326480231755141616390271099688182997668139774839934101650093431968398960853123690838464681230471118531956403699441572086193135504415352019926917390522121590855239849287233302392675531796052733908251225289578965375704555470470895788696800749170524213296957841410584840224483209741673226656562123579255622246445322262643823008653613905048414435416234722170187003750647265683039444113119961916028688990955505831047186348565374256821409112404059370486811890531683991723494144265443268415325568648553142458974305140481558903640738903965974942178052686083664171284083862949315639341658576884308128800710370422668352117337132259159918043725860730344059255594613261478820041006284329700326469676918786220333967053230441682101621079677697748159533978223321910574084086671826928003543042976946506956438129771960691969894755676052362546627109675277460177375629589744791344295884018372673551902475016440840717622832513680620302521325827864976649136950223421743685502831231142524964270838776436541472887167677503894435922770578830424036571418800113154266320729974392939167100185725848885731533478767449316723964722184920967869643019485315665078919235775660962613388322716553550564895085226540513761335986579758626543692361221171641426785771747100492127426983326348780707211324904420462865648326775573942326427922593477248059193348088994494943585824302209482291680155185656034663019633438603605200538186187764899562886797404775857349078690590239326616610743877056061987231667298278541818265790190701813748218798049518177739904610479513235101487115925202254554434271517338785179528083059994536437162931158800343068404424808714218912222781374141164882885105066704191714469923057761516689789443488249359068554172475186767537023728026055717359429628402415000459258269945431251027006538912663836055006538319714411875209507606266178218710905391756968105114164189066090443267050566152613921142688617713426116223393370914345786919472085983216238282907641925153598504107692612364216768714769369064442171193254916367477764501367398229124471543764768898796648247077632989589469939203041647830044959935280506392740415885666133984877378105775164849744929121865641727287986858709957002811662652943688864059258867739764955298895548297983164431244356269718751642695095293294308025583280731421157559763438116763731974466318306866240489947427767610825689160673519432979417348494621124321403314691712826332421358105264943358368321106004938720942321416782124839784366299644809260215165825052789588881837068258981269252456130496791516136026141297866156467149910942926347446636742876998649867079002353834037458242477595942945482041009465553806107492181298897798517910361745524156038248219355370613396402144720208336399712556344573352817111885205484530422324457383350414785439262962092361301121642282350002370273670798418454283574909211742204893757357651474029505401632345458338908986192138273377284921383527596690878321297547224398326689625619934046036503099661366376556725731666922682522946127967742311098741928428903485560684192686848470098942907618154571785820520844645226792644316658152898595708754212796178783826307609414634885873592491975594699953985593737978885869346522795405922244870843056321515092721296092908057098483895744065676443273340826561367069414386943676096594215932680964357732898976923869448137034613180751173294308390904229812220279094194188193368103329139915006408065400628449883731349519331125732275193326187402233516275878464391041927595929021701037224105426400590305852634959269720501435598966954274434800625098770729473067935205261138208304766929030243540997190281055246982796361758832730231463902022168986894379831369749339760942735637395310379980589453486691108119839078924579121144618411204858628172503854054686887034895431977936850646656643159156803752042277325088127035456370568258989730086507852460821906607939364621944719583927323023206981805603629147955176891161265366777829370270099418321883296907294532008325180354721140883259804120843257814336019134939209051977008642635036070227360839606168792437581712123977061414848607562933149651258551255093629395059201915008444880638274341288293875358962907679822599094559134511009147342478946164493475488950732299242926634957619709338431813484390111971795372243293518908553659549636621926354921672728657871882353205518528610719179188610648366726552122983443008535116856811868692481955749832118498614533561173964942530451468211986784937383005763598784039524918695144027195668303379238365080618864240494889096686809106128960978228875775522487499429640372503705256846217005615665122084195731963903014413678400546207456486650266775226313809198722335047989270734389974699969885838931193243486662550699570381974455241346166812736831358391181766160097387096158254077985774449487722318693932317103222345428066285606993844368505835795682085024820135754305457050626970910473593890852633605632133479841232271226620792543322275393854762679245175949374733948725676827261804763812858540837490983807510341219668691626796373317933191915420818700740721259027119202913700087652262939313177091320157388431678943891482191786250155174981921765217779072945816298609375502831166641383728204364322867017856971726400832885136629803594695630948847596274704608844029423800597518784514354550172374680521878957971614670673605910780391449749614891402880793722206157752314653310937989562410133663888577561725624066060585637616109356619087920977319415666782384995876760419198498911952011928487991487249039517793905156496660218000694103294736439219308473100069125125217212371650516673408711721239373023448375776654622692343314884079978542097389830923087371483280668511586736727466501225929592136753179357375800518821422932251133774052037854797050249966754048007091790923525770807992735795833137936768686363789413897916496525114039839287881129707018885584963133970620773591187221581451768041198155846581217334838534173856770051528630825237496714953169391088570144340052966749771553892861985049885573391503321886795738980093728815997361755640189290001093689856007445759099460422504087000606498589812507963552142661623079165103732636010877481120753523274728853370572155393231758191032757872990588682918562689161544196288892687524774179105983727649296594133195397498014008363958192592236269035082625940437943795345348569617617283922123026547382092864422209546130080691892189223323974035182504653726501934519613409731622460979633460275799936456650381725334414824702581329237057821319665968110374755881544812990948645196144185451654161381111739437213279273256881153775880661363273552152096912348662525941608357601028900765250505374161310395050180107806336547658695644243843900427933783309581048077498865009906501264905544603715320358933656815674251709571077151152408243078772895181153608290294232438442313848242281091650908717090660330108938636378948637058950604201041531315988347960233702718838444968442952198856016359326751781033955811123502308595686045313111458995819518957221373155639511632193310740669128827696556193041744772065048737214897135582103219376266150289578477159232379760946529044469472964615834521693219904880039846063413828053788302109941769294924173974497312238349537994865403345526412669831544334588026831714063529485354053328961435887255831986693388654465512274084367930414386399997891604209339972759227522772149963295205969459920460724933012478615746602861534537277945526299315210429954173903170573551590431824940081735928236173295575685840846189459270415783134899413628514201800215655995668647149019259483350401465799000581828226892966417530735713387221148558555382242993327210307802076822283790715704422033995662655101966938801647835817878534995758999107769024769466822547691038517099374552361713327692636641717927013662087871289404676730526558146878620837819332001656960845242658991575001319899607203959902604794743280760129286676277419847121674435064579411134921776001640980421622138555600800777147039107819414134791068607008065356906511802111739545736400937327123446540127665335379195853583981402484341048072834689215486955200336452190355146824210975276674100230834861240865679315192036995036196996661133118033414447466577621021111895796833272503313165392060711127472623478440975975722737376589143435070173964586415790675621596814990498224425429939161990112859638348979053737425631641697154035147105026700973742916408577894305301465626800165497689953045482808270541097513990247513986350207212346997486742400356536338850465764382163646100766561795581964575273679577672946662974908596621797388070990353388606244414032302400432625246795509967046610889369700075422753761246941060802161595671255177515794232592265470808913693651340280787763902686966308623891969055855847466295526376707689849394728612802928846362097382095561930972985214017350808144413688489206356065838869094802012512522119016232350885478902065449251350272196616246956176552755201692135248880610174028729257337659686807925203430744939612271090047207378329220449496642767103100878072280158239132668037815797366319210617814918675395897651620512129772242216430962850099547522623663635848703044005157174370050262552356297619318288802794074126932030487162491190639474124481193469004375718950020288037614560657159974967455120946517257020089400804843195351962935014763394397896515885834683064515286999012111646906918730775131687340788014051371089463309465542354259637513296047297715059681752864113489995519314391821540345454593793703412377849505635173500765126350849807907753661814916164253828011917057004544247426640774969992007385740091277386222161405171916820074060271021609560685984431051614454645278476181216508331360245956485255519659344362152575480178822783721714519029186321472763205806144068721361821364284164983361506730832435431534155421666067902638069293050388037067946796541961571710870986120816887755962459698089196420549756950899697032178685124854695022070397155854703984064683659139045968429197342520460563759680083727928396945276537995360468585254263835417945100405834621530607127659081066736224696909707374694611073418518793557189138211739325811580362232045240587811423639374730300790724898567912665993992495017557546950029834499193613116032650959527876184860752822300696847056276664351437558441069040981082285731598840650782379648162226019573306288765932535787267023015758403028927370356671187956788163376067990172456058423855119700899905845143467759657673668250844312562385835351005664825725172965497244147319691993680614013652300327368687491921486161530629586102924153966392422588801848685334269020623731877737692021505602746582147261942190199673499492089912119042992429095423265898253955222271657869467646903254903087859910826351421091972722492296632333220253325660515836536176841199893899345627556255799816194421892595158577910907794057432384010985870065851317272568298430684091251535151329863822946068301199413406132909610180182348512607205311827451237876458548882675125867482307777914625869769587274413258226889147030487763272210865576207481503378890875511508887292098456767447220960428903055793990939143567174542454398510093394636498984523290932930806442655347341055638742619785232867322094496837480385048745135425464531913698970273668985272781310042240367747449435413440323611359543884957253875104542274339938174674552999271661442416520494559895432545752067330512659563966935126490760418274897936423701080495284417643984516163212760114420052688283511246955715454139051246986935715461979523307740725364181950567842901380616530536548349335603393978990116203748750908393956005380676951254484383683965508853980890231576874844702615268337035736102541492850900883424676498471512576803096125338547975114179340383561053030015322934885834256820026284566119482760474758965057070703641688125962258705435830189327267944700637148549735859887552498076622930425259673159888146004978489658603213516041125048174619165995073375865240942662334344111027330123139585288321923875916662431975263978596986315784247885386577113136025915099820855794214838256185560324389905596863823977940531647457939363972159167480746370871532861072070558344801589097303793659808007043053782466932913536759739203009624926873564939258715866377793465337231820392732524210283041540488958274239936734336808151462023269308541309413016797483325402153819947430891445143860066053889848327035140825269032655805143261704217067344388300964521889626475949893203698385497644057365430582873660454933729167550442839655385040338693917199690549859680430025561380080244113764871784883702212013165415822920814635315217975277143854848575870392604093963519803624624973049965679707690192876334100106659216844534160016184751565915500645574778810786151923689508800476407756065726799732196623361129576336868864973990067808327072584456950297309458643724528059775235042797944573240492198251536201141441088488610014818338396758392045057159006643236732884640830587424929207557525332157774061830667724757122268943939346328170055072248674860372137553747090630060311496905881473517079140949952123512751668992134752533398424695334561331122191092341938025538366160406340064754179062022736213249518728299068896397492745376174600310691401762390116779224160739345152912117596617010255187646944510825243464459400132738741485915496694481315358362217742751959249982282009129897125700608482340857345761352234681606885456056780774846396547693825988309215315529824463785713884329057169307943686732080042112315491962123677562545877289319650709582608758241760356936505864493295490502314623181537236110934287332203558764205785577103497363487828550773641308183848178927450274919604277684190928034213117154971603364746793092875529250210969685999567079422478360615284103490928206229116153798423310478486701042770615426254367155016876662489591480944020479544961250243521070947491191356139643762350604045475562518095287565671448174154789092946012185803570807865781316944985039672749919495712523873573548329653609257147134840574622242586673514329872157637095480259523692135139644954771879109748436987786449118124226150711838868949677762907275395737721695305484885597207752477812161285594897416394375035448827383209622686673183893616099256083714899782465095091847158132292473609008346596772619642769595502136818656967072395277329748410265462325332454602264169914848486401883632020888804855922435090227458929840273381047412894824670184935925126998699844626467753199986366628623366186064300065734235519488346773552960149899422732795405131656567023410317366868323366093234919046008061060316479453181037232033406107727002091721721650068086998697295059991810035992471110120273750221281804814905510545569866771810756151698573369010009558224894326558098952651313395933822338629176971419835431859557795130777987210727470129842441585329219613490829421578640200360105386149416607870823013664490636920415375157432937952883707194104098781588633823353793548218353616910776177582184646439880743068733833692119411556894295412768332705923648624750339460510279998784893764190817557978078819781459850053250298590133034036066825922920669965783773470618096430109370147562627659056736795288880998697277823987452472171445473124109473559820617036630165011222226963089634691348720248804661471773986571610795368549685986407348024617710358309343843840657504194413263398419285808728462699010277254888282905410801729136308533776870123614727441782076170954387754441451209551823454270775663806006054889852004345466384028891242148368186769371702664869084895258978090370079754941643696882018248061903073819979042551766876087256024607968393726678030274148581485475960651784061789689986521023164268901417562435780413659198612019337794931651084705522040657490632057256833393342626167342764867199864600472282785644001063678342633448392139883937675991446597592547400713120108350781662717971733688053219547658309771674342658150053826434212718035373912276239549001556904702551647629805986106915480246705938657813039451045941505523906247803717206852638455288514447517158154779441218631902577038063845625109440493759883835589124518622213305340541361234827256692333696403780404204344034049872346419015183112119693876195535535532068378148662350771611738709027314338073541896846938009243009387497897905893657163937050210125709035764086240520097760217682225381946542995136464440577289153833445716774049588701207386444768954891314252520291829920484099759509860593513131699298100927625581292281148865165105502116484337688022431692946733201618938845960848852501699239680701682302156580975046501849743941442915186039387857731212680202114739138480952364396791239474121295972086933814489850720373632897853128714660731404810222386437512937222759938547733925779367204063902345191649501348921682171853050609567532776337575260783764493308890186720939711172058782412055751909414030225103279041194174839524598941509060526381511124235199535105901285548376084597838203558140425563158773551114874293005103405509045472844028993743846174655504518822842741673295792507932647376338549930983048170802847266711887474586405088684340853385618615531709862388059184587161039183097897800756140103420263988809293130499607948360848105978702786077799873422752384989943275048100734823312374347162203250667885449680000153009180123806195335470097399509979441222271281662362666860755434176585066382075556977930266532331764741478280437698397641816879657098617769712617069007492906150210155217683381424052700430280202096088453325041667861736336866109703062621502841154615818349693247056369412952395250391787440097361787580346348899796340351827107326796879037456700562673830532790030904289026600123355100151755074949351776565788824878788893876511728444820597564724745779186429519425176674660429258118523258786903033948978744726408575992075344238531353627468401683107984584166863903968450669116304059268340554713520228914056925041684510028899150853793996657146324560143978337526609559735750291468535881041266906369771846478168529102166501345879123991034402411202754350385548287190286539006371985476287406529890462356246173521454590521755862917011764303019315164375678768939545135499113739454787419757321600158717497606519627761397809880907821438004749550290274326162678798056339997536554040045116047681717212692435676357722120399848851861575108241989390336360349252331768478640968630186448946556736679311490883932201761646847738339207133041375832655219724440601863634709000622545997713823253423657637450351260820222992525695251945895756012526442181722694104083261139084204015920952559732589631760938912207987298444301472748247134254633149944615270843128555162470842659861328278580969960860266096483760281034831758975560627632379239831849686660538290246562768662478498966210940005611856227869093595297634993337394926170576563741014668873634039069571489372212965941288470384040929444226357733700243138899098585800201955338690623214547445745220779274526354068827102340556465582603243213125401254612771734718904469685200896507497399554663300069139459350703573722393557192369140289602280003424242662035394166475230941772146762178233344311613860019532512888794271473601569818136884175239828859102392929116470179304117458881965172548236070544103668974249712719903140522296861790551300918069506299736298421837836300986992949138015311149226791002406466185088501480383593415917891837408325786716617164744301534026556349703295046765635640805403918730997182350780542776878041485114193938725729457684688192821101389621635228014640123048035873537811099295680854704153461889208308497171891055391565317061321851270680596015140685312502013216079714748088816844961477024703520471328713377491841985985775884190882620747765385836469125889384766585763749202840486982192849282741573612665012952248671630503986126399552970594194653123756133186013538259314810130060610037638852020787181873382218683821827892753071154421017232362588090156168830614351199271015172424991113002933562969010432313906468873204765991580929803611118303363318681305650724961759820202853103737255084569088776453066479049099873727927951964390878573048904487185163371077435985295960484472618223605776412631464039854061038472235037555142486889952635307306446352104145733032665040956375223154804925783296800839828759337576500570755021531299648403681470711978059689432832827281842766792779601912360928170320298377676698651395182012816763267722318001058722417941706983958638786351867094429622529415567599355401778674687458714470369340039628311947091486145041728473276587022495168410912242300818193497637714701838183443439744386924363877904916182933312605324102577872659263446641030463792019706413906627905394684491250745761215130231534532379111935168655453846344856273271567482717011401700263541331595679143073289203004943305781517747709800013629384225873164014080257084487345104542764701349435864444403659053862842168835998913805500447719224430145355631347433254609531282450428304079657127244453896965911240797717117751577166366011889928610936999807549464729715547562936490307951844279625225983025470850356830407427622218528602990851566393078270536015364391477183645727411473057549050854873884633693323871765167452771415926425198141244693369008117706342019660798183041234145782842065377178190058033517935106370132861909201279661908236197137057371830306689915266036912994189934416117263701463934100468018033361601274610526985365849735863567623907036158750822952650737343783141912955099798885934610778863969040501519844370160810096821136583228895140902363006199994627961285172471088362651086205062973709180194038743727830379698369217702815758381699538391849856678279564672313237036438362012697788801802065912190801691942996339284165181953014930763959809495801544787360751427735257292112512503305823275276559921159863945001186826057627981502564564948542447708554107895772998250532794342049236665767411788296018035540221225396833752423206785409949028779517612056418755087492500622690648349448256592870975381255295556080923964567479322444414506235630146797062880853763088574726568334678318972721804044126207594518639319676948548149815871561749504057544913327371952549657668344010884815644430873010274070733686748008009150078628351769086522249133096378110432881449352331071501227150140785493573474073685014386330719410568938693738754756949489771190567773665865849852597373933268045525149732310772602086626763367951365609847707309812704875203619194602831774882958425987626521701669922583013913204615728287337987630220544874477979563060746047844680539448432100258946862525462898409119398343130153522958050076953400544584245447903507380043369597823340208350168526970351531858728999187691066883826870706795320940624431363307053313316160194913740319044195608158688037190365358753821268622670239829371699508755297168229477019008912142390184881412818066045609795151766444067026783565033963205469749349767258396728559148911117816304847663486957410860996133181197895817034136727293731574612299257316014523816390263805424050213076523537416192316805449431148836569253897104113781263786074844273241570432247716530550993829402760239472831145527444331828449616532632299594911176742144574114517190729527283614053055996008388585278789508832691711958078807254196677228389834389833943362007525297129353274866324320212571535598148639387631294068852747750615065769227769122042824859064645749330887426607644499269523487550585248766728599727009758869341837596774927824310699381608539199244442748281550355114415468368156583929993618546024935264795304596406541924657069729751796227109405260833124452702516028015865557055849980009138225510424127362217779841006717981877130424792434268230394637523650553123454927668746168573681997405089153150643459255393375453745792907781958149235073095809147328969001778975770875700216956725449363234944075800777676603328839313416173166080504039869255919853380752838609332618331998658481284370837134762927428234447793309887761978518165393618855006451373737701734993027131284102737275587744811362992946137855303721735471060695647725106170149604635200176164853497308816977437922602683058730559396665815205737267601277692716344348458426127230629719471470132251581075546013165002649943034809477894040604237884313867002680690326358354579989484472642732650840316063510184108514483407222724198916503230630559257648699576754367131411676979652756087309279496552010777045319892699241269941578054143237460519631214027474811346965141804589614956585086383022738614285305483642090374055297206271100004536825901876731911380820502722826484163471520743984538630841861380943530841476626906659204305263979683037135162997006244563586198558222272541602681712254265379858228370809061121443376948336649446561850361893463876725432166144882314098545042312652247276725079077320224740460965471455234669847479343237179765377866611891248527228025400843524924056466797433722615934791537425445321976917995448712341402939703357402391910005067248208320029890244431176798284592592652943302506657007207004878704914641577011031116775698443934084959725187835859380105680363181835993969318259988333649072707951068077433476800959071265130895874803955731182168953119175977019663544575026822560867274243523347601308327037970461072374129457160072969138008159807469254922515704049324990601251391740430531404643433084245178545609718062555856903401085656945425379223599025122295574015434222696681641057064365714450898580891028412713856409813285091804706544164395461882513721940503725332900024521208233592016328089534296354527545334888092471561306277808201762466847681699218415539305022346584734859494934741428210172385459892522838246128934157866801567011708221147388559176654427886733876769655518547107837994541788146487400874750307482797209727251269177598428636528246589719108849355463429022464458943760659576850336033681481969345510155214471598247603756492509511855048754806360326912556849078818991574560951424950083181712471952264073363524874905793840739973387712564074337454103979413375638414867058473358436751236252273024317502678923225705670522339781107666306124757213899548125699434499622888830628807470911812691720624779967904774586389435678898558262042482274870106626351514484322918550299909469898719241521703751873529863229012462887370294241064872261860023501145667351280282900074296822301584396934373444782393927223179023375214458183803998692504376450988684265499699565976777880376579024080348224953789925936481193182349080775000933887147048304917431075954109245729913268633821598913783367982242867100503429015876903309708714509015313497309772102272398475819597348410880850496189510024558237305716237002137934899244139590831383608587363765116762027134615542064592003317816845977661477953941441947492513710533559738102879320051369843163097521652263462470895544688759362313010251693406960265778322174148879406656151496687005271845713143868962360421014267136854661188011057221869936265010448327654125927583692689341794308981225883382454705477978077069531770951860831258911154360160585342475395056725627331027364232463205136615801842882785022150929208720159235002346544615822280862921299974340997730182555265744253221039532218307641332667956164901610352037887441634540392766145402232688237618304493626145919425421107836827966249783444809211858216846245683215515425347470363291861566926496636420983637989120748812874262248149984216427245319744199830640401922402869669932471171916647762248011276273437248121794887726667603280226791813765408603580035076001926091351552918854553338215917871751578810922383631191889371198668432703755659750419143677048910597522694295175838841684298876895077669186953978410341920352318307148828025725154168171021119163505209866675809942550594257859402311873893206298057913525977029975573109690117114745790949746731361795246203921816295936423073131733071047553759559333229819308904593053058748702970260533982051559380971125395098956091025172433632681988061229461146364792114781614958337563980898218350800400231743349676451938470691650855965525248677204535265607538121462921453762440416059541324966258066276328717682393699065135128159545244012399501396440210873373259906874991333394734490480169491954593401718054598036068433020067403034487490061351872316406930885081831881208267981948293954533594032908797045166185340550401597649385697695596397355632430410408918014690397822296867576439052037951915076104182960537173669575442064246728870055222254673013848158503812043673145263095605602385652502242603809933657904763014411775230745988246948158835116432537265383536077226415689063591927207587610318454554209475610557656769279138739302421156906486886910216424592164376778823902045758199005152062759535713138430032990696832185125584224594147252309402081078248698169921924206464455749463509114215482172103937196860171846482425313022429397107394714477817232731095921880247955824169161575123912217948279952587085470584858552938959150122846448307916452202264691692454479625112472643248986986212410022659904742328076231230263525457536935807579648491057136141110307559158532171079648660103750412149129268520838746117445567340924160152109856167116171489742562769800608620792254044187303207940273479209484502287087155147758983275707404499731233385588165930332850575620146635419237774746013590086207813778473184910488571411766331904836302129029075370207962223553188704920942274560328316718567232780745063438288122329336707479812880692448999864205192945956566784140317273368074051544090682874264860547373186938981021212366471804880762926077958059502012055000089443940796787558254977601461663958913931909631888090036111339611603854117110373676723398598149265876952767002381432876400726263704559786026366367641669329105175821380104598130639361590226766120695631032015385420548712251143095350727967496849776772110111163915914696462067102189746414789003374948750745740722246981949494832926483222179935825717712250614424609654086645393359434662687348294026626234015872807281309424126351989724686059725036555003708415121210275941176203274130668012472163041781155854228154210634395909223373673711206134920401637996014996213866182687474860082634307370162638710542074340578732163038856166002023954523536654965004622748901760963835694310991025750163007176028625287552430543502040234104130141233666737197976536739028939929172159970718123745342526975464188539927505737425534925495347973120427341547810273863836035607214185273202931592278319667753003688972660014953774512891128752790700499991880448622472043806922360230179917072453932674538811314791059755645044379415147429458243108619454336887245832547150803643312280773526372899257301659283220533567565329507165811400028973366243368459436511946631002868632739995548760999885016259700799412817091152591707575204955696334578766383053126575928990851062640814212265659120144979534157555317743376756747266275285587644313562584694877541819887257861585807112722669884966246542042171603344980944115721198642622894777395807813403512500432404587883365430822157423475285158018505727696132186603132704235034127610197935381900952076056648151413749013468151063779639919811593364182905760728459547455066455649062380250326800010465728322712280177431696556558248322088427557365700012443489204690704177372714370141591134208334703270353379949813354806911274111351689332201680561220756170748455653007802983098502312234884716322985637195410499301475529297539571684935591861017571604002620276695834819660049137157487561390506769280579421191600447644177829156503288590734214701450038849956082791053084455212859466878393486245793146327344757680867595375729357454059206469272084644948164618286581789371831654062248479264539756203250742884411024181017301003981532430164910945736573217433232495464641196434483387589221227641448861616942563662921999358912600896127268400492533428811202760599674157313698164747816822324133524117226627662458771155989137869942787214225582273846895395137710738776210865222794662180749832853892568637627912059858186856311736110030833855578815997493261418196997212708307697438146337932142232487888870275536090230580682874477966568569231400498751713186201139833820752315198255388481651123771518524559177121233981264647731186138017380293109985610092372784231358987619923013391417246576249929451329846076510007263186597890388288200069411737251368963039826761536912114925085828913670682632808912327277889845306643245845398905299050134926919874336274630788481687020191045867606175035269556390877450800676247929758336886708051329863121979119304644446057001580438200755569727648189061611631633972141913462866493131563271782942249076099626341605109134314643955359760698315759284408587385200318906287400344311337645131424102049624509012659907018011370347965713041047798810074443026294114134861398119104788838113887665735600054408944840080246846736934529939934851163146985229633594841487845628863138852383613304419035189618533360113448858824240555231336341248019487193755983207956401504340679814783745470513325969407311249976164764457888365875259458549312155814363408478397364334434015987813952269916731751842657653956501240826739560434559802548059783205892003769013408955231581747816186267606101108352494704403368418705984543440480051360748425877422916099683835153889423050514541995937227510194673952303801921006886704184453624309829274986601611872812462804498195488278625119700909165450071050107192667668308194264453408650403222307250525800673533358970128849177300705558085515106552866349599391827998553955225190291582202238823619346090265634340327692270233289725646714070453562332764908730518493937783490824911615495091346877933845028673529256967692374306684298997325580908989356253614819559650070735219556633333866319611255021975199219947327958449797435521410235351165848678152734532005638937097710907269288253269295707255491023395488114896535033864097022692538548749771188089950491072859917176888632568983268844263170368471740016571651203011651100298473839172324073352029257793448233283314571410502217520104028747772491608915158007197260330264137210315782165213187539616030279581115995085401066547249112267210946221219622119333632219875596138807727988407866584676273639930367085732481909544679304978579608041861644822800458017112096075274063942807701550591715163583299143023007841062400700143832744585724037544906055069429293426897096355664776952518862021926430309192845121978432157648259523724164762696516081656823232767171659950002407392812262909669251760542640957883635904102943146143515758810769014620266973180662824603685046183177806462457725483800833321753521974651766408330167324615501456481816296052055063811846333370409610275025209000226620426354522538360087972966725188411067035093546682817760810302431051213049312046293298765309818309797452203659986589406969128860707445740518506270980560137746918560785416774506281777266387044425596543090076848198519490327400500168274039279604643531154523557036696007725352744139372629556845060379612735822976089067272580341407527407296380142510469402181172159022569278619229805549628589023690706999717514128929582561007215848047145338193138020057407524812183813347743802747445374296782926009540277880406921447774510736596379257559967725518762062014788700119396151074264663613647009559254388449754158571872060605212195865077095658183160759917379272283507813629264349359763106521522060880837145584868998062883581115812843091664043231009971056914928553909164633015413805702932292004164883194544682264956650244581758751354397006523839556284669774907514609815863286915315731028178266557690935773163105866432914335989366235599088331762347814823847446340690254926999874575250421435858280033428639421077799714986841330592974803837623532696472788211930360229594690069760232433564630747307972618577014436502412763485070006944761299923676416917638507465785724808588507726278501951680026167060297114153735572799866091570057956282424263730619819051429177626943369946802715024967713748765725917040849978377953774690441869153540787137374902534034576063663530972147930689430744525871468651761079963396178577145403125635800942114170711225098685551523437460857485875432738383496891026262716622523392195785390667428301561724691468153531859098007722305159074788101728156819727493709168538979059404430943021091954682209437278361351596686448013398177728025038365919623602168667688624715877439358624466447880927187230695603703902703546157337837824021027037421559715961473117377007705935888479776804917124033156706396986948698606490365066598894153766745333514795770230351191739893144660522456584967609516545315797614925469922128525449711322467722004678068894048903862372567374968020612669664215083228120741531009598473084843287080289012170748931034165644075741918063303963760623360250728893455612073223899016014648427421980123561250289689528101704021928880346235678409698189994272509817734724958984330162169254755191283510623260520612667008718541677562130121205276770961424048449382893588307788345564125051167089573821352196891966749399296639008532139762861647063928937726384790267988290704282421710934247234937581699059685196428833990480794687636791480672734676382915627518565083367339555596533408716189255697739638466384135284215773118754142928918298577362972147768972239722073684082456540794350485858502836542933939928711473518444157510651650096689654637386771999741720152162238611689695372396699570191375053440666096556346703477483801287047658463362481125399588785099588834034493025268138236064482980915680424968523507672838162431181825603366850370685609059164851128489531716121461131278280838418709445780952656010329991501368509189336267805541078985958492918734802906926646559929253273446416383015882197614750098179983193964266600279522338475185508174521422619021885090195529731381916886241376938953138118329029288334641069689946239056908339636363616125608918795158951573522604002111980250599916193717702558628712198436453738271674507512948578279063125878613466873565088486668282573256424032722051030530073924449400855165281450403270902911500917336456746592239244276402754712920849473279496886927046327363995260316139672093459477905402519410299248203608307188663871739441440388330733039654317941198812071352883306370669906975122838559725884813313509802987469936813185051287791090232379888298937100347546432340240061210368583469235817133641470174847961662030401490581452527566605638322938927005143422779926186192460661529769634539160951039016571421304330886755105301361581599268289842079835539696814556966557286057358959992997632274912087622841373980290227526583526533916660536868408381206350014607111281378545411940978464185561489259372094909960859066065602774452450500289014340637396057689276617484189038162718831868495031903936854641377621138745823542347520957368091347768814759711461141607124590209771774596967897866081162140646361567933921787360798720309369581235028635998953196825015438738526858570168020701473721885727154398952357110969358555278068725342994622325595052587616308236099040140868331587748971414696390965571211047200369202005729861132897950335086214082972748452049513361526209164566292408167154939129582411175968007050816922974770499810857205107467120486649419509125856232664742214789224799338935937390219134552724151157223653759764215609244309299667330477075778889409205892436432050458154728737995249213116073352674468834774978009255447866350356522992970660013639182478631774038157288117353713407567086499892954995417070848783044962538274013147222023813062441026046947119064454385300836133159899156596178145635514882825503816095800186783784454738099589903312848007916620863751341725136719522585020185699039261236309739232220655959562074923517272861262300211458117652017775986113257923836952703789580588190162190375095134451397249395334393020044243491278438840870160885434783983720020676395585201122689183910702574041078470044125935358840448652320451908523012606652433338221376534350917897155814643398283357016355419249311135775739486157360390695128276963711671785572118161345482653281733224781891574535813259635324009754586359095186039453089557734911424386405404775878898592839639427450986651932110162132854413000951584808445072436913418317643889039185764460033326908753724982654806524711183080136731076797258133308493443458695343568395275009820122145316739471010912618773808343999454239845158744558721528995501281207937804224570813595454870530580377212605035306054932768600863405962704141620348506858331764287918248944694013394175735737037269125662890448280488183296262163138107633182034021286296594956250528647322805019389942612176720718339018913463766238873831369968365749847141355438328544076881236834870876783397959190440406271983161520276274683682269569704102414686290626611985134686628120258849747204756491286665936085067714582561068996232347297260754698992104217707750142394124666421887749588449841427171771098907340614631072258719989543460079367130456351586216618366067721184126068920392999290871993369674688972199648163097634641740087006801630912258373765120047317129916204208978036355283317112476330144306931160242951990826268106909088417592743180660175580617228647911521140222298404556971994835590811278634214273547457923178437222353084932377750240327646545305457971706260337342714027679325930636465339915970094991942574189218405926506896875470177517173923969567922070293769115795987090416494485765662349899448422596406664628556873123093278694187447698831249240477043074186649168497065593625211133241056024333333586641634021826493512863474334258663183557066490305216057400657370296044023917795610846487961287606000570997016798538257051719709238452657234788808369965581137980632567191489305512448306953530485914377403348303839527738673621416681853775975736272970170421712575169164502108919575450626970774489404704460158483092030341515781490071199453029837957063059492078905127061140613793056902316563002866429796867426626754828044908034965930212000966095638572790005703403044179209042741410514969844154049608340687286743697557203436870813185824436107089021956799057253199440141279439847469806273131921985889608187017790074606256910705588009718916262125746831255946213966993677159113429999467839884568449536414699692867958656865466843497506570720309293753994748759541146193253946044268738301718865882906881391730391127106127276785533699229114145666878701162146314295067157377714745396295433830803783142082374095790134171810542422864363990917336362031914606605623895441464716889773682615782816470168768353071258936246729774727119760380089275351464901049922633035472651570139751000777892806710844025959707918308353169303844656591316187742569335936299224624075972656974253367112943291968540578085967223602709718167066727228586065078171620857020407414415374720353061088080897784881494417042242866533179905233329629779269112748387135196269417552859342592999780724036554636266073047664144407507038504064003524684213566853051529738974800993635871419190219582863015185241711855848831230731590646521423559398260761393420857690823794416526332386365310459531601507617099970273375274219105649373591042807468756889211998907854753762072194551583538038577713905480113566778739811846917009648905738570995026964890019073438343446992154612674372498034025547904062013292143626369626028639603597143974097651540928960347346274830279461768161132668196216550652583997771834243984215684007485097257501196085563497668209683370882835244731005202442716977983330147084982403062770102998094305274696116677980921150828089015223491412375938619844324284679858380651727997875597830058811029103774125609424339601256907073764955666758764855787999917389576252101469640377626587979437540155419406735618071182852818202396208193737982868150220378594474993666476288310185416241321966107440573743588385102669227021891176742884081538408967527627847125743458436579485808852727475262843483487433339044642466811492753026234142606859649427616096584726084036969404527725611152809106831177451492852580950644682689954199553823189354714750750593343981969851773787015226089884505816750622448808043591885845463530633289560203739571956370150024881669241468853735758626656455282825239572677213044200654284902352630950209584331411199684562908962784209020958673433636501968606686502717225545143601135390798569891625394740791629608149131354850016595365941411348533405896187408466282937362959030178567115904352499113210901748550914303142676389296440523769931471793979167462497931475935109488181302743348777955925525965874466810654857020189509441349010837223905758019665619195234826624414577924863536239064672888917158257079733809828048592636384893418682477982994109782294409079974523527028805125773967201662557473744263077230517614674822893258405697346931954586695739429010501308940031821877061632069507418351786459855191132861305479479735537437400460633480218838292390737368381596888846905797135459093603445298738995790464739565185559541079227553600546428690931480694080467927059410252337837221932961281844961078893396714864815683212758815905670466434187183009444629373553611913155832247412633219023041165916679065526533728406614702083732738857345977494686010959392491264122031709836999460188856688035625646373431625317599219772005714139550573040893480233985660980583902395582612736158141665140101847322296717421174411045983110531150293834282446023934777118379052335238945880046373591501998314781542115699072659939992119847890935541872220764303824567361554402900927057479945462867594017663839494612210568900480640200711361621599249393271552326175500117547551690433323621430255215358612978916722387336566933278943979089494239676103348972579482879923599339725506253020118154770913012527251759614691895448393862082326275653290017627240029833307517350501553978467882196910149394322378870054176600898493334033083632112705574123240881550619347376313756664441884668028729167796514432641892764842964337294635585910675212363254643275027744882578634848024037730480642837705692867157011636051024642936465852837745817260972092656595694828391489338135130760082045689816598612193603979274312074290447607970193076219760018664742277461447589646468426299177541134188433036108488410792739108974701687918156910455572021192027257683642969177670932451528373845370560477418217262098560846126043077987094572459351371049127659408666402952860287187705238352171902882096903613738618202765268119461299364512832230918531684747035105506987288679385795898899108302895617256339476975885521776374521559536028655830875972641844288265323853956674686473392577962577639219647080316951837696891125004923857740667773758050765244546470568326128089908662258343746801933526081276437831933302643072727326421722026785982470368571636407394116741006663136406205366208970638931097563818951225706526054545771705115678334987136792127380738091435754311562357488424854199472339244344456344210374144323873891990029088571955726144323032281350263898985815255371474356151968318518921287742843944048109798702238358249745390078807328230476791550935815560983967307287804564419648359553842654888203508175843850083421919697412963133834156733190802960876343399597862806582737861242019460069274316895663424165947523024372129817385352345804671358973357376251085566094868982633108868047913803275359576601749217646623201177161995796151696334896712387759028045330916435717713173414683072056796217413283613867224327326801459506208001745575514805536987460844922529678127797054399112739198295963232485497470247135022151016640508577772440797772127447651014307112873640459127044625484496585048944848043387067731788728665972974472399716431684846751086367768951441875054681330036702401062678831971304086439064978739919689842813296198651967734436828148394488037734790896059869865986376949281579076031763344033662202835307627120046755400385481981466190902994935872001496318239913790524887489729212933321220510575993509304794022026802933942009864469373448362133023740574465295292439558217050823024492343178063877842790965517579680770733775768508132790206997114367612703254506947041222957718363211951867553268216620068049354643318812245858347652481170740380512394191667256535064498402010281219763847888905734466641113483933419593191564566718877219185931339452414478505291017388671035567530567382334853363434227941195619211941248983983716459743476224525174746973058431457951883164750897221633799383536804100492169154310424238588332178875869019986011267325094779533547928801748660306711186054874969898235517121938024249257408887288699583226480711755270900539969136226174334475509702741008838388339323036941458860370716824201883984108726126845554976962531624343629661172012230847729702930346709565760069955103684262184139085174476873652019554324141830650745493820233077610282535298288949008255863226044090775543578435981247462057521714314863458991360599654170604470753588398549387686685065792681554232242321165867513104993104063777645003668559143488202845777450338551160909461413548612156916647759939112328246345936544295393251415606034901154256935225782287205984435491299953338293630105360737110593369253766045732439115700341997340348980873693359026874275732274151545928330475443189507529418519319269468733822705736725167325335945539575923157317778445776374972603032526916819085339602558809969534025095652679214327325128567050448425102916746243030477050246629953777894165537605627930757100498031004961266098254588669070139593335639393463564489325308667294040321804059456999301352851020031162822765881997519265565858982721104186438939169026804670204559182548701604616994432107145184766808202914599540514720440569713108371352953805089021884002800664708010650174086512473106164024721474235360054384630309173008180300775748497374644151313152309187640695340810147292382839073859792297695842513035633929774180076622893014435800244908498486012778409049342318595062646268711926407544081292219611942671092139705278850725658322068971311704080129376494706407085718669985656706438112152564044113237246888482887625562732325040704015498337470116381941014122449992209993451531185813480109490069437367574939555398431690128135492705864192038514920585878614103357772492131160095448766151792528028592640986798420003822666114595605657066503530400868044192286947634304475395735710216960237851260945182081188713073679717621615432919904661550556588514675841956445564409144990800421868959037372156754522756404438802999737879736462069498234732201375315858850130714168390776466392256845446962299351461489998125010986449240679106596941951084061671583189415841581607180882805337632099629724711419033076041455934656299752173270120859784669358150706809566096950612750329715546701279135719311178062102898885612270438195230503447242276693077974455415070945204383798148714587716282383112075226860100254311230525539459994965492531015952690832389279011471466020508394817028186278370311226386426630019099925693948795047685822152982734940030676454502191736840589178228454970210710961265219922863163097012650952938374492461046829035898192513279340001993535190108576024383161536674061257452803470686525151668952875152510989069950900817050131333367361529656221205605963607403519049038915934980398905420586290688239990115593819708571646099301322778220998396118906063770463890761717676829644091417779931190150353937228708003689776517739828771278257165637198313362057564503096062399615216729195814343781125235925076989783442815983112911416872235536079198039933027150230067361034173172401859014676313341243026824405572396779851577498019652303273748544427817144195136231946989135809844473788326602090918768075878922576056348015904354269386980521982007939783680046932879801189985408962758590983788318657924461854101578829925687391735557243419278175920242029766200437188848790576065892105355055345029433345681853381931990968795281821196921980227914465707063758266637977201685841372738858297650985421659788610047212406222917684662172547169513495952868105580582821976468370186933559094262833593799025768253797518886807632169878472467589332271748546356389068381372464505689640418862812277744372045486472094529995362679444491200951590138892314622277437606674257419106057171894581540410028625725049371149282515612079975325911025654788666849868346873770192535441274980761060780463413429534030070742334500341141413200147221353459127088859304760627671215577085054639821743709509863482564312295551044834703407841387834334694362423163565782537165022835546331799302392490395282823737427490634081425937289600660494191774764849912207357522762082431968311591085823163128184773395312323805864194572681923507164981542562603240263792065315370032077367902402597202097548854112330646464564394656352672132843558004089910375441388516947933660254261877349817757530385174187044436116755255105786375717054795073835783648988957497922090023730131838367120192853159389955419824061166982151318449201863107124046686410377660961226038346092852338750180086581057021404832204060330605807248577850548852749920313682460322577951650133668615346515869737006596150843156105891092842792032167704777049923514907981068908360628952541110047974346360630298138480740736238834849952747176463704536043928544805288290315441533681871207929461943067052995727113552269989080774879664670154290711378475964128662543199324318137209244458666022577404637972873271217777968995414437771089221502278874496835121067135363743324319172261304385743395830779651561742815170270172660953866112442275083771479618896314890305587292935080060519345868257991569473968323759817688832949098452976603158009343977584529387777977321988077647123585750906291909102600948998483703699582918316964852746124148109017273328713785758428350508481039019664821960253124327547335499353990927614806017216222885985028677394412327940947064615309308966375923712735497387705936634443602950003242992385483622487074501997412750502712584873150849111648448641523232690754046608924836823702829596884127075309851910203935325228436500590526553342810322194722396290708797933912200321494137036668583245539818525952298993721258130492859046183088710575699312994401692621997425958207422049277176627986847959504675057136391971108773664835911193584713171281014614880208809489714588872849384816304076272244640330351609419809323555156468170889976993990793094318588652518327151592428886893513762289531729025983220036354359970644979046354032409047104216092053769870910431044026981434136102747829501146446211172097410818056600970197606363931960908890639762562119569233024209156257492707244184159328762633321761104931193262434842686904551889232699065799901221109054475274823396322407784575617980153697191539833554807891182119659957609862411146545766457831919768510668201159657476295328033299386097350678782009048072199047767149025402342715964549127051338432825546436238605289251619689944988362952570007133339723410600911729659097966386153945297654811662661077148382124505472316067536684372376669967408184077653232722941482447517803549404217915220976700034545816898039754497647770177690509551808079760897701631829251993873588290383551765496657216430533534832116602272169849742687375680201946926406179830018078374209282144554522194961516023391842955883272755400201247669550605742556444267095049143613028222434111921808012286238870288404125617282690031059264931524155206120809729903231892281051217016665163707665113490972096243508411494683360163193472156709362510143555316399578423078876383917526586707030968048743245709136790258208184192329163918936399775209776541307963895683555475555864546960380190993401112452072532744734512211974371774191446563062076507384035313379037132769945972279016907505779291948466599105361689483758412814380676119852338193681891250760725413431483710914354143776738767074039240101764680092357775857447169963749783044247443670210387537283359044265121351254177771901625845617704386620082504608829569357577993599544491725362830484180670714864947234873308308870996829233671421027484827070037005851431431065763450111192612280145893102730917546291951247645139124295954941948265300517013678193380836167826101836045052998295694200691440611838337048405384511341078929820974209450940171735870846009882975558096635872968740680129289493097463325268530455662922337208006275986858293891851529809321326290003743392799543832829438510852277771799484837158123708941710211081865910836719143725540270425096808902520284862962764746078202762614835667501085172551206580838542820709595800989637047949632756266647412574165023448776866751305808242574048589752730415916732911057695711240946879596354366987332415529987378879284969682102618538599616905358963516624766343329353102156509264022138611269548616960465868960508171220707352157976279432890533284962922920412731709940700695435176924666471908914557692209362653782994962158393113602748250721157847891001803393465718909166716278555551531825998410293051818030506436714786383633867089419465801207253351850329538040672853448947768533370235712563087653326857605802509977404998001398106242118679244872434397752905666248066226217766545183958387149966292860484514222163158859116378925782713054168188151260915714643706506071855497872374543202864290187268593241401510167174575835280083671181029279345484962932764505445730011734695624818048396313401918048253582130695295515588210555616855327841043121906800076533481388821567810868915912903388099789715742764367092569218341303192196219004722591548144337600837776314423691013069656906100483809000302213442966013519266052494910928838731743645727298506402139188332824056119506548430955924726458659170255378552234676363233781766685884026038246060250219459317934612412624612045536518073416848262266624266132165072525748114415337488768908621537771485370592487262675313811512576056492434244265481229139949304098075373220018752655580754280879770825029621471856737447731091839120249216868125261238477375387560096030078963068314249916130240245622276278228028638875367935647813831992188747893649440376855323124436887564279952140209396614863129745934731001068797410781977907048234830911454994562799568522309762957466995594137671962582163808656910110247929063134641026344973313947598656591521498770548643126265860557992410764913811617085231348360403398011315787229257227367403318458764964473004855009920798199831571950274899490837513318549639851477677301904918806218051973628712155515872556040366462203448766446766641307322987723329454104832279637472072887473357806433143886369190426976860008610460624544242156855340101741548272103018785452198710583609608260634047262655716285460056162612193983790927256047470041524554126903064377359363393494126945971413322872324326103253679903674867733796312305483693940181710928681843144708698502148744539542592317259134688671039872344081029201715492972978736483585373907681956282167415370095711059836291506747669253019707156752293985262746799022328370069697094027973924900500645841314305412709092181468429369725891061104595210046304344168191416705509617942817925650444220896276260415984201052408243807320995833554792359502750115662924948865577155097623282654522321675181007455637833108722954645513489859893150101867713801001464683011521863765854957456589241049283526703259009869371742548994042114849790188989109424900922375189116466736669461278603636566534951394868831156504818445076310697684012267417443991897847560512491534678771253230979382545171349236677241244229641220988174196008454459978724300600239407304753096065222792541829489724869416905938478133471884570599414798798385978678836591520436211463117388787599822234053350811350650659613701746563347167901220854826565116281960423365212504237491985177023547827786144645860842704263743195482404777872533166845092127610053861186842899673612587704620563155189299271433375550827001079396149998565761013655607474624362280148810721256324791747733682388527244838067803127835737038500158553896101894221752340100141448549549780818361295685620415501194857629190667177677480747871582519777980803184988403637085398472122479777588090433256213340438841942283907320808798130530868919867254326199044267463898877623922595493654306296266253362641552347084307454098258555688767068054760520321919779062153915760629669118305167128971452755417796834056447253226956922715165742269700156586596616735643518918079318318852440192620204800038144849800466349461876342228575375465715117499838832499533412781014763894335445387464733068448038297671724814172805677941747745711373109629706934568535503168191899424002597019239866957745723279119599648080394415867948841330249995277796164149673952678290663149175326459011785043839546345703335736097652700082287630894131593112524464906956231459274947669384074438544461735863750587719994445167485390096867010514386617203071513373416278008585000838959241180267096101439351637733741495467033599513849101881159304927593439660641827669947841637920003980420334183118848555032243891338988208019344937940154272096930944090356565542790271348194393850037982464093734489981959567530400869517161586972578462344746618893742352025528577444661806434266668071965713775785908695036651871503843859164191781758753497635329186104962089814627692561622053002363163912406270355365979371252499507039324654434516760165552700617393719813951171456338415437613741971645201799981595121421014026420759950087129951680391206087234928587886441363837868397352833567231445244071127409314088765110371590438434726702013837444372376212071746362761577760447416819239046252436479030050124017324472227836779066708584591795886220994340785135484913660102241093791817785901105142336005590747429587670337885803215645533136795186858309771597289371213133816132747637704741227622044287120918694749955876767727116806022658448612505997569406338775834679899163916646649813843948497800139104983215745684244127078889319173475864655353297490383913335796099946822785861944107928153673981429209507192097279343346161453383140947897332212677686657923900349500399640659539242297280264294284884927005463427250337401085335648613138449294585135591995562205781731594713970446016783072699101598656169688026141955424657606057698778082971798627478936131825751376393162946876412695722296354668420465695584246049486406668563303670824365181900784118056072505124874921580843964327465014069913843406462816425731028082070818112137902865018892317603978107357295859237556570414251524771574751012964617161877686636757776339653909640744794499198468825827129574575071690957008835174096980874699704491218730003710647163622348153011427139223683762466702976012893694912143597359779275937727551416343224799599655837108826618141927840589666271403922770917132069626089584281245456011185948924293892739556607249133821493052535193239864499672693949126025152611265545069795756113054613770170879611106491047077922393124768284511782409797546047318870209699569049909236781342154134515347065485132607559966088576425235990982515250296986149109500280617293622707374386039397065394005733606588990769471358950053200437263682862031885263452366837017159426497332818320626971114129232121872202905107919364435228713696393799979201288560912894531121778009621831155112879835408972020702029860875234249877752746939221392002754296344665119147777413864736674672682807765538048287658213064721557338644244686045522188288926829274178900691871754799460679756940151124687567755538552464397880446381799746064330848095276320231520475759050518422240849436623533518811883324070227677101506902094486150835308294575776803029380945991656420857232251455356415819449955940093408716290588578641585500421590076758173846053748966870578029348037852073357067502375139100277839718214211617048484675939728702585170304449802973843447519643268980115208767952184169750669352206745728888642605845061761399249769520142317166727113879783202257185505675454578455302957691917409132914781458834219104987260482681225879526465581406352713648087621283972831896197632428777376059072922624209925982962821996584057300791972532330394612051922075823970497216499115133682632479184504185314077721637376120741256148828409016123119616285146301963084685271606430793186489515220810928528725269474044040905026677990397289255572296994515189260441918960653872512431124150573699588973864251300099885710820718083866381715160774072815108449041581304124853414058686671087032883685846883111812259132317050817612881377685269436875998418906415886538772651820361763763386377665077566802433724727850534524069447147647051740930098490493983488967147828154256430345897096228545450655399647646764281532401009562104508172505369983678056697809262436958975298042284164029272983895514155995940449147639802917617086742430152286832024167073720952377157115457278059522775392028521476080000588681589216422327558291288846163810634659555784096919648506230724620124012036324361635273161223504403475559175609986534219201042168670494453569375749695386808695596566680004786750144852666197266107743554808041308145600085575889552716776563682767828649746843827883374430248383112637960709983129783864573820891889350588251524938899446564887975683608588867574031636108681547597820495886552281361458324771783271815735573413941696925971340134159167746912990073835963107379965083320357757169093067022876729255424224683468133309554954156801697655559445500125820945839689141600121684996404453238792813990925107545958345798877319811491689220311211770847037983044305093711143712173247346649773124794828974512547088416638396980149488344014270844397571853470565000273484207397351464177451061445250727980438927996986381717545248852735119867089887501191666761053262999679561997455820565106664786998095215514228098461070855944841639951491401762635063663761162536059734280079328802378203697228988094850605856395478363739428883853910850634976211098260955422123392458027354962450959815549257825850921805998888146424100798073825053876105685047590487540536845735393511418299672088226757100471195249949008624762751387929329205047810767414244698361586382788922306995066344033157179001513567318055796505685368753856519431492764440051165785165806337491088003348084098461258195771523627940275648665983949801126420612429134050929564493179584921331672537631614119973744947896342561557048175005706046730811778174838334568190232707529258830712186182880736010406288969084991821752869037824925015557438647067084740765186003880000861734889406666770044685803924011463656032752527706045839949103464949329906723684904447597688904419907949003462298075527232758216071956107376850671674582458272541191346892240191589280218682542908115425178345004682343046983448630911176622176366511460752653808790090037608463465594362109323421313801086216104443129779889163919682440908869208712729254830977561998532852520531588198736980850119713936622917587078820426536800404149458289694033875511108120907245973993170633033798816421196234923906070144255688042950739247985225884063305855038232945608185186468394790179190856215337444942191367595931024184646446655996815640910192265842600791430666365428389402819450964060806761483091577122701022161539079900065520356605402462024131047670399339722877792723037078368494988558843042356601411333906528529821276917011064546887219421504792187143544756555283754406119528862492218531061017369841780867930189514549502008694187413317762628816651617870763485841131528431452443555733643342071095346226967615749057352552294973307886929138961437658243383503083925464504850518488390357243928311507483867357454969632191758045488075533426404246917737197226430860605548070682724005588382122128413962027551335258370744681949454042341824911612555494667433656289600127933782282353089630013101730035351210696963641646786864884509477090951985314987172914501454591234519308527406904055313854732923000152869236541796133414110831582250351377067558716145074928170640924956432715090377410815352394197448282139522853960814764855893100204225144332212211264917759178180793051876672724661608079337391522207381721805622175456285970239937426930170676845683331469493882561732117930752936421675131024231373586739850988466547818747177832582667004334501882779293323111429162231198308739781503429010328586076616830587991314944839576743725502681388439671292429888737409911146508552663646258069649010196178482254405695157465558430915069880704074089951321403177570699094027635122147495976033207131132317666302656781443752540015821911979638845706414432453950365067498270027305874152448006521608648016325842744280233046516692871579892931637161738935376779408240057330535878030794722712602435299653834538183509021223844272033147766755202981672245083436488324371606995866113704516304231350470011791865140056711811186170267597927711443252019211088414229516764768442312994465596254915541597870335609240472772389882511062904818860855038651925738429501192666199305835275372309231275141799798075729865306086112375350496021625621902240176413441125940098953218818883804915401493611103235585014689740645428060905940294464176132903374967509323675343551451958948113853527234786851672925545152254943635080662024575493327744830557978905983586343571188202909662974873263066998188878999068920914577111220940138499463918767857333912199260854893940617734727890656787069122788976705047014061859000047733037586700445317985146702110050900112063209528651531717102724876266418283981638392063231663175823440042238992033729339372851324451402436093523506096433912700357902388131433597811139763376619782665953683405637689332672708596034292711954864169848511283240570433962508278991580737115648311851249630952112689942316092732175668302811693145211343013769334945672285248398867016077336721952175035959388344265040265729446785180910732095442058536414948509573755178465052620263356837497838120182062590896713215180143932946836459025271281806702564746940418114303101434920416375927228876732668388435692501283314798015495351216158265560805652785305483364713461774621013511351042118999533359734050471305187419823129875891339908426564341199976525864251012859489834885185284261605263375242481973676034880704783632440821355487939128234083826879300609081827820813933175500280746747717911754562721978870929484435911026412579302982504843212701403313365720917372358044219793923481927004014674494028874631555125792916924788004399603857864445206714465176924896362946309909788079368905019409729592441586658050283713830167413508156861683210613178893949031732590324409009591294282725886059751272783668486065153454071398448638687197193752033334596831451803649171993661666823489500817406611743932569149017662563017263871974470526002294707837431552629515853490313655983748107928596908084887391735025493920569398789013378079439517139077807944444431202497527926092201718643770510517754216879819063647803429402508828693392323643190088144181979874509899734147427283314478683107880847548910558958926016322636055589436681812753178502997372008660414608269359793040404119968837604172343791423580159741436062863388522788413329118453781846422112006206117140420624408348578684894813019573746402969789860063460982315005225362221311182764145783133056170680870933302249363358258425188195377765770849935175992524423360348160782737265499552528311839261529644152555246542122096874740093375994438720670002231515869792188495952391975295652987695520814414219371140592018795728162243923674307747331559546263528022629034741197807936282873579096366409289757057198158743121561218582085253094849169546858344146222657225748634999713656512285203524453043112592719656273898554374015361423956501569053431914538542903601272365719977663021355069510899211056091182538804213573505876839162116193310246581456169750865773928881180469686318485974479019530558213812829555722141555653646716470016938501030726607392018344142648862543219536604260716174573892248274187827988041607646262824527178796505060580878270326820473655363203215765907963987634928375533407769811858479777518072240951485075313758359875587375678233539800684130411728515888636278775144680791383223127608392461017635061914077060945527555405757897721443298436264586179476692611372086723524647513725810331510880934380543277870189149371247416069389890341868041111073258345989731591194088706226278017151115379068393290820009496333227419537419310527883044936992807030229490225150801296581804447534184730108375167863246103280708711314384075748848786448316716703272715419530988726821143921772000401485035308713963532734588180559339896336988877054687738543475814867312891121288583885820094082994194343772261767705041108954342757245661674090562098456325981531171174681317684892744432872927087323088669821919796750985503984715716834192253951048046691089512958757614902664594465377230058336643371957429253481516731774898251607181037207163969694592158294629231993885918962945304885138698521390205084128973990702595983416546773995601781025983911249902807720857230666121324891082947665996055003016745621356182266499474371145334553127304973886289222713760194028996113318613255669961292224652169812666770888939173739623025141172315480284860318391455971557208474016309565911618570801564558235287062611453660647719402312033666968837485445011845380084046741811320082323717636296762450799499854846215435423066503157488890174913728380440038482657647277039719382895656954594590588574257354992176746974624057618694074575944714511851204119928721631710851513427985651596209047166082563512803933100711737108635627214448415086504432845801076797635027921243434860334421796164058695412364736861696844017374893749977617274124035903098719696840613528354076093444972961458476592458337836157922019080503226532791831565338677760992154188452416594796613453051696457053561831611607798648419170801925495666256407186719208846444794205635660178372205898533283998518189432482302948773079454919035988294050020256270655842265458619564862375814987351203445215702495112574929396142335150749854808418566573210866977782751452504709911192528479881220877768511522587917432428467685550879217571138025246976631055005359493059608477646598159280430217364006477669863610118132264128469127143579443258568406995191154200793281698348040520109712088366636139587363273418882241545861452887240933904294292236791490666012306630133970448977597569843499308345460367625974053911949373923281054102425430520123700224624485439860750048380514764534373646989474612837102629285617327204514024460531324929132478781085897220178909504939452520745777813333890889434173083110057549474159455938617241997737407295002966192109746209819923349382229148136970216477299396629543391313190303000555130002800417268903866247414324011787796685060558584132142753069542761264852972002585487842753289342110111052166688597586777586882188751818637549196994653686290854493448216045457795316552366890342014351697488971153341357362576662078313208327445753588734194938084885091323384979238588221696116556601702830442069646664489917832253420718721126216465313092592379669468873762802236675252677549866817379818528750053719323990721185863558174406130309099562512525283434888179759330299260503262988756226430673588369077485180436367150364984320795141979993887684726416276946134991122339225755289850898381526665074268838436535269100947581905524762881855575660618522408104369732785720435211671492749503895157472955405691481591381870935216369123191467561456428919653490572271045135792926008987085671506805062312570033048658052344708329079534209626515005603122045932409260097897965057586703037777695211469970460408072572413028391641120978318693034049066685827989036492847327467940304951062177449367104140472497975559151773270106610361101117563401022609781017505680898997438189970338848481825865134506662572203733423536876357278712121757829627127761673400496665616977573226350358199301842891235804134904644705259582403693099975358527829186476099483813086369161230555731206595813502948201125471660709840598101625618311072903292050614848531009562798130274476231428456431674640941469095887513364087771283960913211490755754350582210503345517842753461627624944899684183321267131956808891038632245295646862402543488110924045420239205194231837285952189432113653504107008157950743965931518306450008458924845987212529724886297227933791610675802127877817154817804289133207160098296013606646050511284476130795536678526832901787771599178092910709248703321592894075976480024380682908958998751952915861886949368640558729836185273012884440077472471673088676200571373213244742128201329474752309191677072525870277733260352537240373547418531823886143379797716007153329120296802300248583783334925825676997599878193723803519371581384062011757845965876708468820390242906331443520008698895788995847237886006894112383688134333074710906473486468878355504666992062625094295701602703020293460736622196064505285847630620668029919757080022158311175994487620974834698281065207683858167213673752221750511274887445013768776079352337936769021964293612618177483731534585580415476630842436654834632230440948861831339207541697537803654529149502427210175053307250359585809862542739155485235509993516393997986371398937276217125441535996347490731665970430101063956992806085208078452277431790140829973978181508090935314173989138213010049846659863955178721222508240377042964820049841236353072835925747083218352980118230405004252455626781370830111931980243715003025595047405169191473471778105213137146367696418595169305677896949644740639948645467408981336250079516020564991619752122738776514574736829419957882368713455375399086727033650655969653193139324782687328912782102872139851367066209276952918683529973078725760033369781771984445799344441937862804529606243787657188733188342185932098944601182610013180247072956788312757860927452415341575289556280616563838982454689965787060638614827863257608036921442491958280246430152732011580085098264731124544818773881505211534076009492935912657646160149572857534725807637097460633405481865523059518273660824216262183223447535583426839075421642580729787069544262048398774955702885808486044496749637267717985313226143668944107998315735174385197879325689536027836233865785635599182899162963090742817609817498704421893304535685225314983406513876981679766401304851693029448923122508413245022653690273823868317988890880431511682762982660052208114189213943887675566356008038452294739470302309837719532145670604005655697811202146415585940371747284366241599608849661903357803385477827348199028593783126247239156393050704691139584064568377613198312227828773689618025944422129372012897932020279186842753385672110254277520292067257639571495495299084353712149580444223181328745350540965313093466402551886801475289736538992545598156602219827055803019488176607554512158859418018739010327538526091979884912325974805969172021915316568610314493879799185711837724495217264569549444847102985239786544651223126302132249610442912699850971464555641712683090323937614268673018319560924475589832442874348194465500903249986631996033660665757571350796921525673854763964670594038521882104145625809916357673663884970677249874289111101202208687711703328396053335503691039874921085963254722784654767330813662973054958346518045308298101373444964883701705326497347957626357673190357737368431535806354774470337567713942448786051755218807190809246549474265415981552842053626138845362086628170947746952884461504377852904034699019704504139898613279530230335760256427005729094111866487913777714824624281421991942435891853949895276732476467373308085683900414951298897894836384385240983423908698260345564732469510352519289701549965017278273453759767794696333483004770441343699181453083030195217528578021086177979291120670038557425839803190776241096064623243960481278884707702008507908143813360454374071536465078031231578670614074086564635432452802038727970966200817424296832365531268649308993223383043116451294789238686770486066947983143041686768715086601957513499525552317159607103296300855312089047362934899840959599183017396054774484629325762331366433117261117814944799764421357719850246364042243310275789848724451623314953809856059372151442003405289091703038841943247519414373196709292048614602097775849689328943868607081318217517588504237368556279206644782302410729754176898341098812436041441656062047438342015792551992810492784560136225905123955574443553827975464258916662249130753642434239958387589246475196207339661764991321974998402633435877924891894099370439835801464513468265880273789197560300090980838949475173825286109697861327072404654918222087793641923133434663214124639524100368487393322012364494671550156561707822612034049513156102541427089657241273079820574415720338172086279922503488838922013669431903036419103385013347390061894212463864231853944796124470072639306984184946001097098629046614995702773567878270526140895825385546288047515697659795176378347638761396509823645644943084923598734832692872158070020393346917559637398736799706063626332218559447521529649663290146806853007627610365815246853114545661776556136832125289413094710636755143917276986171904804295356956032921149030930187932350244157889515033849721782288621409540017057650755498579873700147054859380164126620724731598879826457504840877362557106465554712904011632480514393927629452048652221521092264908573041885248647525398581971296847702914078934386480205907779805229492559916122775155081959615439994884647713771126632617609739478417476309826703608958181854059239949707918918754126529036363527028798363009763983076646429081962087361791199404525984711343891086451229779612400963332861006707474256497275248032070193438574635436407502549457134437321215831177720742218140716663520142072392390345581768788719891208682855269764311013627285311213575489379888008402581961817219957038466189383721826921502447640413663780391121090801532312354826818885140567643339294643275253560502435009785035236002221394567879369608270931308529978001127031913955947843237723500599007085799806324249139465900589518368377124094224309526122049996685380168248574688235302431963139675895147796772316617650076954306455893702552685133083566764961960026001805188964676062362216048959002993991534434518956042079774991025731237785097503447897771906391889795156926858808557073592748765701166160546026931168185537897070478214930703502552778849867444745364474940857606861683260210333740171031592449698935381267594293574410267035424885997834187181358840933388221133488227532231492565906691371708043062803527112361599909044572750819489777742653456302896693064930913753036118518457424539169423071261955185653651669603142750991452618261819890744537158641095155913798144526601889704105646117781205976840939814490860739936594489073697780414116312473149266976812971810671652929402087486955495577610694204925670247217164969196010442590204107242734213717519338200546881520586615304463071327736761070679603379088908064414611806307166155959264949995189346642865668753636102312479190765395719055862842364681677905434354857813277046145684476401518013665333008139839945980884180156376909469442985441294201049951907228611599976173968258281760604094542833294409256203250505129191868433863044470835996875044391128165057071873683225482252744081642820552671501885548379999207688845841614432192265171136193257953479750530088147813276634558864919287753244848500900972208311332774613166592281132819707352083851186720052552679697852949194443201939580273845159857886103473303374151096398352490256988975630389191072025887199808837050239134327553173164225913537674852841280978950179596098526477864186053178083660278004710871017345788027563146361681308679967308433905710878261231437496429383483826937494125726654221563039896254382941882851162909405581262606534675065422154919625155030066266533344308314968635247439753931427006688488363311905406513221419666023211696699786544756920987259981478415909176058656073866347277816640043843732749250394322922525750357852120846594704518369051874641172086569383954741284268090190706651409410593873150600234172810210596436083960877832778446561529028714605894496840529479243997003700147312734781546580598934992608368492199861045074490237985101183526921368568243342801871671390222173146695675884310172294461760056664986081386929055004472263620868142315139946987332687725024820163600948924506290886747696322475421392712214796945402536197781285282076761054360782343776428811554264990539729319601643590738067977166239143889153049835749218921796638785344639937085410209165092062911602870197627301340796648264419264962805521349031088324344113560650449608950438847583315106284088496475844900653728004934028040582014410998888815610819246270451621841911669216754123596040218176683777867624517044988267995553629452387786375458280731545406091112656952992151604468454708458853507188507741054423330314173271167572309546538707591995756505869035306915683092836298703308465024278999447752862850983321812985246060933807179763085605704957076174891981924956785484143275748727147777130378376805862874297862158749660920884629418587227275035110445384435699893664048665097513011087029071124796076637808075121138901452893304589350834339518462712714788926153451604449791348154034870153019048431491846157524293381789265547926089394242737510010702773653051341369385717614789620406595648594191088937197914177736257124758306040801358613684939022782434505891979100237517523409265155970310116466715645127686258361534721913324344580297546055871889493347895857949100035696853740184679506595004989939428646325386893393326463224608258821876344885049298328245422192127502323211573213945950483423879344996064127705041598940314901152740564059310757219621718260061823228545106275033395452597773347093232697293658903221566692864901782051642309789723624214191172297627518918714719422687402944745156944108014760772781861136854297495312764479022940852661811140462266811864900190765226602058491900586868824517180934228494270528594828782320261451046009111186690400566745402596773947508377426066481845655369593517412366687859828720587188311341600422542683730897030385564639800085672522682335904709586916235791916240440544707610058652125700780043977706959729895472926118486728557038989608411862427819089721937586107345890082745900181812009617969059200859900512523551772335228986259350053545507631204818198247253388954603359789841683883002155458355842219138098444478515448359938252318354841474478588475837873732481543845233164711331063216693908702215985707398494593531507613443907171058581244882691982277688736909375810623091531456867109196853287476457986597924689603806076121252130647377908398799641894350676695496048051209784396254613357122717412459958724258168084111346406336413585567241862249958322990841820672765707474514583322892156623777962416940786879734615505731204418585152375486271627559434099217321623669510104459170528030916661046574757972457819637447472228878036041959289284115271403243114510503041483268347541761457448167078582770889237496797117578528951051534113727550485510838281990976341246076682551941171837451730412947551670974846355175374534439592515216213998108960354812207496816543307597755990354795324217104493236287079782460227656386050366566549517752433419953838366453311817553728977249011777587388294844175063441914732706621141779725692693053271651390347529450230100129118905071776136548715941307357431894578622750612357238517902458698691487976329256168912766543255766367292799054908266221550622230753391286696649188120519457930178054229696191039066621185206989982751608561108493186524091137196486436936215207847036210293414837856546346430545024469397555258574361590713159284682804693432139487042278947434968916047361293418640141858647469746503149346802993596107321112637920346770579527364847034185120593364007053970677970509691053340777557213880167075960472514941814726285184295697897902445005739702448926180693632925072431796833985733101470913143121875242565813092984610384223889836558317542548505433192553767512978780044998016056986821981232325742892932622240200160225741089817821202665522161467924122453698116343721072855042843977798378286812532948620520533405779664393173182156624604945508632542205733599437499753325983723745033194416293343631906666871735209625174540855506676215307757114377741838829207153836933252513548759783879974437491931049110132868598178546336093041654733856211675772247794880977631618245136283186506261456264987546428893350107129215037695847858587999488477155987510074417165460510422529937747046574858429960509046278477389782690183614025026616600956122769075203364764730291381258549105666427436476037412259671825544888360915774997410005999237283505629188453117056221988047646235378347086252072881619224929015892262808894162310493458669254318743477016974338985815026241419934128582941469659209780261702532468724484028302136909150686135337506277096114445007693821860282270434232866378887403105673787361620638909793420359693284874101750339943435853485720390773809568698206781021667219310393582060767758558572249238338534374239598087076129808525321298491514826835632348525861486646553349337525398862358649447773438348963884597352210843322659775494775356058595398253413254698567308186720293740262040726226706491078567818440726203668346173270052601263490304790664112319917723229953212440363531045076482346310469582642445652624073465197609473441318176815409215635226564011407613023224426331699346148504064072234799264795947761957137306714791022844332478316129130717212346169810210243849344657968269832434860503499125450631472379253541351054882583084772997421450299558384440762567515354307533211082432531913177279937640624105443180926032206397579128305827167949843250898101829838974812774635034236639787638303204250538564806537829182606098272270359024558174794890248925463136453312644487294405624996608252161224001138539894975493644982913852835313496188697483359698787467401009949020620543904830492687444246866819498060706134162371556317260222619225359570295612921229216624469638703292224362899971473927108515340078006255988103856810271134834134455435644838422429985907871216393402213564031422713375175605617742791606059338552737377700188898433619300616086175442895566874178580509813653254183236282586111996884267081319090249424034385284391999256817284057816695468721714703405919279138089760593975160327322222894996758660936114538476747021183956860597001082057948059639067507985667872545754025513741437219194781738762727047293880733256160135193434463003683235342107172021299944143038929311867093045378756639849553956392281339961829232734571345824197479592013598961045035367519641413985722476284626414731036903469918844451222773574057716763292141068470623619703989527315759477679026137285794594229056604821181873873965804848537970010939482134204142488500452220967993523013202926012553449468293954048583847625882246795405289330766988266092715543511783477864250640232823008973084563437613853821721940270457473398992928802986791713030442684301899248780216239013017159780675888404942535574459167491619246047491124805076810431163472337633050951834720365699667132082376248117936940016349172815937447865985314336715921883251993793275548222479325920096465777033272353663453836883855311862698591005084667578164068794198678681157767306476849450434525471613198737884083259381932027542505547181389240118907953935187177502251174501630569207351355080064730500041810738770461377705071884652522993670390337564023296295552582780438021505141724064143061730845659021431981333437319494459258602150875895299070709702220171311972815406040525024752751201327800950569587766050685475301147217531974962717070862562086986827269834467054562932393216607934919192369931332798444579559501831977569096679442175475865991987224879194720746645519958839662547383923649549992373964468028482347511369171981539642522647753162984111676840603812423941913611782341171477570626881706320349920368680335498860090703661844789387847341392042594685661466663222475427042102222949859840221427311197489528748662458579033261963349222198186502088278670317849846096699318651362657002123327097030453032008062409696548847787015317560599294779291915074165487656646949672907885206833063301631849691009110257934476894475103317445810370722105889899461390948427488428219470751393627131785089960246318377322972023312558753235202097847125354097241354188258124307572627393734494685800032453053104028946018875644599173049015705250310828986033763654633042915962747401653781578117791738020252072830078120723350477789148758196000029464111226731725925201672798836172021236653243339188168738069910606857750345606245710316140152266442359940150633963112405435214100346558717297007151079350687825588045572409338859541653664536831491061362449433744790285875939667257861006682780633347274885290824844031307614624676923480311518033831231772891200811419163581685442259631529602610038429853211338912786087805901466888424463597950030354560737135873630190795009454057090034256361702953445499843938945042113009944085397678346483241674985298779392013710116967441346079087843070796472507395452321405208302571730738625904179499400539817845691768364236369900952314177365989343814545732093660843134889118942047306420540572241823998800129790011861541074392950459203840036361732537016211968157243170039963971833145188143288777028684620105348129284984387133405638714496963804432240891286387537748029777102770718381831748584466556581409332362378127448521187926740184696616792091658518979520090171531379453577704055054373307400933179267083246640462411998389823302634018246823632462656630947872104893724100156078860044495256686054279475334405836893446919323747097532724154757717728057981588130429064717557811314233035659114334695974617517002735743611786798025049867015117386377464187331685976184643256395513712398925469713294468017387329627080475214029741281843727150843667989636493617131130920745950054625981043455639776519704025206243661314270307639738242940304908402591484699856133585988490322323727389282136324682724519071905040966432880744040501463997589508313742991670967824497086273412531282439557375394630734365526333873521544171298254698137677336334892811801281111655923808707639249164475037082365698634846008819015071142693445369655920038054758040371361500676131083876118316514025673684143103862035725991274628811169030598093122725958607667691968073648096603035944221517687040385747659041654214787085184528435246709583876048422002215593252623938824235646389263769270536427332513670021877484834132847319925902704004288834415195031959294452438878232197562253201531594016370132058263006374041372145438515383573468135575427540494527133809362622678127987024360776428110187644150793840483514411978935145042731527968422886265194433180358357675765200329094102370491609333252358691556176937665556426673107710925630202318695520045984038050004856618092987457687941742078638848079335017068562530355709919154700565455929971994164185502933870065456407763080480473641055432649707515358291858303762904760100425379970293906230557912868506101805949605653847123012231144801041859939202300933528573395029724874589830660636698479288467790492775576874307955510806627581091476349964726595679315310740021518404812487733363514787771782632225263938255620419778342944706572648533193959879861706761301960266290571759757449250358654816684561735828865022823405064926242349000878964922241456045343210413048706487713708378038279730809596244831173236060091539051153554874056512226328013752660805263085784075611336779116337610989444877230089447720863100974163399303599150722159884157919368458001533122168559528879128464058580192734338990784617795280807730191013425612858380443867855510324412494095874494130291758405384044424571315587604340293971442035963533383376590873872139114170770772305922221815021120078928240923703339315475509603651045566466013132831800074698517529274207051934021029364996863816463148839828777422302994190364999922182943771620067567697978716157324574391980624045556775212844007062060443810550570220459777927120381114179880269960089789219206369213388996886154575014253147881915628794882102407743407457037542045812742719297198556940758505546796519766873811620309335472299382666592856057729720667996923866615112937760967936043826857228546013618797734410329439869625373499747708211842735374823332684702336073822232101993472749657836965023562887237223495455165011846232221355156882009796108789963200315085999444565111313954331159988477107027991059177941042312885015115463961116860253686835497651971441003541214925271200094535369750189254701595192010765431401389065317600280921279306030036109075553426670818414932151958409270671520203046939136084636827972361552781398758545236105068750435713279128920465185208372234197996478170538428734352894579482148859136014749593897243125352048689619779869081221672640030860106435589677262731202919813767449852376675537081465859175088505159263010994988975411841482981645172739269826577196899455814812144924448305313495168663021434219108833013595004315845615959986775329021493348517334925925291808657306577141363820624344087942687790740637124065929555226979078892480245082371890158246858728854254912372636723392508075817784058603815980203928740066936691705364009051966655914893181701380650163022430377980282185851258151995331321915349456380212978923905568527805879553974184713739834947541682928558498670546776894299160367060275718540893394941072187009998362751143791180921724272760885684009614115632760201631589269427126090900367666480116367557647561506673680352407834368545230646361260832080785547363222737658807162328115741541894067690840899017779187710486397176193958650779451737664095413539036827432034852613846758903028025049589873890506209686511632421269415037732316106573344490985608205455865205061955781479191941947570985487373031867215916474916278641738156265351243781442760791683762006148064253503114101716046770548123734090942357962957382449216276149905975533343341273827293541218649170388664927002439042495182217665887965216951733502522235127935644644283337874734223628576493626380327131205977316701869736631122774800216781548313819546493516859396880519761492965413173162982585015581388806131075604480138775326468627807239783840029239881775731986075240301476962863589361758228837714930393220375337702075291929391786041378009304887325191181560369087398295013169983517426456487738675996679715069987688971646479886586916580787834551651942830209337606228876292701515563420677941146997731441965231390409782005021046160657634466877927397280679285614540769603403947994985072309214115032201074346102901646620549686338639955898328492271857365871959938939604385267404999110231164375390081863394648966201261929916005107586588324059463722148262848848105580135734506639508881745777551552682914450187955045368342416426474692676253453181727922471925221343069152807107393452282330976140269041894817844729665361750714163880273030002478508294770261479781967169153402939508509309111865306326334740039771972615979770739078634466178264924058099499490912324877817650266904170764876080214624987489074298464186588949249062468597896956282724879763824710731144458973203425278692324568005436698453757972958445564550308370561241957741977983715506603713693237762181438704893285763510572642176453102231674578166732221873417734898969006133501428777380675857788666721489597382514145042635898041193039321316105429862946409766560194994353563968871239829737084200947209170204770157861728945240080480084375507549408824013117026738666764887902945452050365741946383008597462061640641949997236075949900795652089338601923073282544553085510929388593748801196326200576244049772432495384394544643649793677616381680165802332529537626014184121939115966611244684624806905589955533342221202765604661486854233987105589245708712915504608385482670791116027053858517199319995235762005913296353229922811720552666709943507918074510828434040392604010905739760778796693063161867276430987068819479958891991205230590299363730744126825358658836536256469207199064412377633436464066690160176028699176287198398603617071837719810115750634251528451696019947901746970992096380517602171243222051391735430789265888867175976515474849257687598466258138696649113255612868162737225669371337938239513612315523055986434351794492543087580289123682547526854567420688152299264618889721370330281640416250640751590835849507983987837140934614789879132273696001140117433051867395381890989104437210797809581746880867652921555626465787172908339222652488126124374456765363337280192436615822581749608286166553898056891242242536881589674244601687628786091252978513295589984185582227214777420113667923828678252591019105432486828228938441725814738586777852722087117263194216554350891963888510237765150731437050550141757946916329617719886370121872483075802903569854746924086496295114745874014302581851455158631191689904588692473678535443343791827599873673408532235229999710856120866860166271819660521493624310243912181043312376834985212977731812398745614231368395188898711299958845221986385796490729697498294527161674197886437801961832256587991199368150754929239912601784947611168484774746550261898659582552171445127005632915030881268336916247813413278016274108893280220919660602238088775427050822805482695104870551217386340369141438848662304670654525730063256248507654119717958937225493514593964011702927668641654700425789488527355737631004223770500781927633329481000215692397798750339245323988970970789637494965418489506080727105062752711018630555418236354389757880284800033979576449956759877869064928072369531975077134012336837294322015786139876319705459795241207098810406462739131386335457442292402593015190303217751687147375320585517188456085882529036936048053918936602800905554841540443345571173158627260846997167987095563085662886458194647474715277577016656485028637876442320427665815254987898142216661041671034624902338226253056501998450206300758989515216827921116337602855457647866372526728644812854337354187710954102557235419520900930450818833639610612047716176925090938218191140735926562131723274253511741787863344761223719966749451248697685039953338878803453929161246615913868734585047658941857299329761307214733156868269010504845868525566086657910131567358797293172110853481947629116383983952793170397474891771642704803475531320078093370800736751375015596214971725124935069120281408805794601509984605014319842488358540628255491779860670361773073973211150378060128635567050346152961369310591948555010257384967085564996139595857208308783605287019503809457684566699614334740251159375834704128931701328529994317056084930304691932917295870551268241956903617688446934688826303600389085738423944943948828489245508382252857791200942531895943155841528546310611418554218584391105623194463687633015576395453512093919524898346664198839489807850862309154157521825834176737363096620793337645190558062026318100515351426637204860001461516355535640070280339442144796546289258715234742214934549854288612577676871028411193759983596933952075360799399537575277229473608651830383403993340425568232770033196391496007143422951629735629251562565060098807121399989546829269035185678455780416309823071915486108536612421767934427109796478368729741705109035377356151644965994686602414286667333393187206003839004632704266847618508668373741664805553360120044493977699399078961989992413228410474970408403822134094563666820313573958192983672044008147843297792812848493005549592721334577261220971011167488230729844843313222198530293546066618704766545905592731798122032650334876655434745474048688422890327853202759546883310105941141343214049376114292419135467071291640997824135945832354349299542063317573551395951376710471831258298067005990816557122121106693538097468786183634353539965303426037278675965932787477104438685767116019976160524878618135932105210664264127981986738075051133010085417345041953603221028152969934166634977070043445566026475982964122932790920457283853268775525586991736844541942005868483589554469290716765872762733016229904603762231490338076917748331552635068023878410385514383633912816045930788196969355968311849318188707740876006087946964385061001451879716141084123733401018041037388685103460960300406159764836420466672947117159999876384743631957123039760358549074713533112685802315707691601870091485761023876294026163044677420127196628267881921516269644237356725051552054432121618979272548037464879543365983894077070065539947240774907876128228791567168257350585158100457563669088525314334635460687504453256323740434969317026159052701828618757565519703851144418800762163193964675355167876226125996471143798257637898983853784675999295044067398334794394899312827854298497572994521353659887227003890119393671910195389896173348383428222083807596293863023433007399916748035669338722066337940376584136210903733183257717491036067159826898814515208679330393070711206163371070903218463409189462028666142985089543590719537790629198297116564976687859445876144080902002070241211580472569134695305329246581562236653164967259896126203899458563145720224792493983647232687649605902450919250418061986647551957466015405593958527513189731169976485787039796700281595298845724835106501734279361466825769003072596230260628318976923218504098512001242546213081926813815324926819050637388386460499306485757884357687392576563526003174610794388721353569136426884541299451187303396614663010467752435753212633883419047865947067376826950931592205771795467869626632798735279997315692200718007208686681220320255697234702763576069387247807595970668758447599626590372954470623184967432092470267240570435625825133036798509197801002179161281943952199661726467835287000515061270817453437632039194759371171169796325451195366422274331029214809280903608226833967170251897041071528656498157035195831475931088638772181502965779060515552533424210569677120011979600191953097194440123346645529341770931544925393733472142798354347430495023276308843444025607144888357031163871666426392135072130033477839667754581450003817850585727717054008050823613763519188984870883622569237606359094316002852118193395279638910213923534633104255655760489977140370656520470375748558501185879516369994298872496085358083525189178403038165465125607959160046507546259577433398343636507953769185253547830135929206149703758380100106918218235290575283608781179805572027308290852274433649349307139139493818748045283422625772243332400286982619140708169799348020607502198140728392236174863342744616210030003080287582756293416278392188873431407162778381940110989771739747028591421141054232395180872487454636336133174738360258426913639917197238975577895392706992386374013851829778455419781749909347928772903607392203751199219758872562040162133349380415259176717555069168408615633364126641071448521850066868482954484632684945055648412980143186418277373168734570284567323721150570804426988575739247145509167041904964040309867881660077755663263740261881074078467296482439451769224913513977493134334326750522286106969269042471086505481379772102382231689191082573353530272084283055361098807653434638236950812454133873620324178143566663103568401571885570674234748377161693418215382356181877906686504819101348763100906919622249703235331054056079571880813486657278775833765861757566195410135479765042419304551379597142918529880719189467120672850633268581322919232596423337193992520863910675868956407199416982276702754136531313023447047571633099412010446647148883941725617985512363731280771808253268579158465702294402262719673057842537456507048767131290597409862545296175857518363264142152688554705623657975856812725713408182080440866052428703852559998306486594816849605086603352397603081052227440536506627867422141556167444242502574682470827481715928755706390441940441714395373161948001526909446548306011202071715829907313958967348280917513462231268219797091813094260790219450234650125339072286224294179528180081228955129047547721382246016969835588874897518945257210044178960547930765369821979694233201318780260677709212312838127405475445866068046611626324871366851000701288067790486056481108710243750847879500476346101901229494587557821025951294848165204117393669898711072274276274537461545448855715589776017992514557973563545004926700022530571223805199093453846168980570748395168835657844851908025750371203484999442202853307545620770918437786944368261217318518808922497371618258554864541438745307991197386547359294626713603395922514742281386744936423628856625330436782394739982706556894508116261644636004328879335615676136313110846759877737500403666052732914736937927176838196615596858797190747299117671667017270003879792326284700283665166719164684281488946568937966683729040617825663998182822354081536618882889807649109286209433120791422654357783322325338307311112294286066393745409835165076790457953453638550835747824789498994727358986995732909914365897613462411689684771943956803032106163762411315454987213707965731358136032091136778156803529654475437303018372628838130291018354694505978686921809121266020076363516658192394558268914684321382422661932897261336249162508889607336748143144091313077639128397832365930721771930252521258077957746859663652830732158680023222415790671799713149898580306650402079872743745526640571435077263576373433583251088080079223338808133149268598220948788417083663084882041887767981398619587723743338669161579775663020612662326478662318165836686048517379374687568687294388695952785073525958455764033548376198993902363509315120805054055783430155797099112797185873836363809515211117039246518665603335453147034157924396703884841713140700543945438481828818214029716087597757231442081531490861190312936110132588836139557375988140240701883893209185490490435301735334444262140936227254627486126140150666800526254491794382457248063592705460518047217668782732481248590777147673851131756505290061623111284384591871606307062992837908722715483154633604091190959277653397777412826302005509026221297586109071046269373223077607061613886187506087702854985490047146762860536790852454988341274850870962163373966644790657296404623037992477216361401176097148010165992927075249481913940074894291855966639607612944280097579547855216780903985216930054517354293639744010987792088338522566736554173400792620970495338830314622575426522631079502383714733188601825136679513299522990828672197280084879901717889406749331835932624158534874576751196371969938988048188982829592603477682101641148653734430348752144933526935891764040886093882622003111533234678761718846942679235668373831216817237961252771966214582218784994331278145192168816233307117060629610733147933529871605632306642948303547321800483355896940059246204781027029268499879636570618606725627511279695429686763699252631294104069033662817727296589557553838920642442600351454587273566094027292915403934320755793338127736196356149928685979651551786852235092392505771658612807469835957513821264274351080109376376008011983844249544977598880388677896539776501243881009955069443887930522435517933918060575195807137330474521450809077720746130671207999558262430880086355599839506554164509438891714719264477032500568467581533972944858446422479206798451580827299857234564226659237005002745769977745922917409844793539031822505602380727568969819944744129701090815487617252386183721636791582184274694288851399721174187161165794274087788100177018046464027168318611043600965212602369381773103603394945870801388020822555696347487134577369781366709975162021196417022593795113801800352402618402008347092214004093368604880590759248847252961940150675670543554061612375569799393350085940349804261613941021862979142553152314068060511808401710611744196498765106475826350341437373642188824790932006773068847983649668813285253886256689064070305189928061684087364713221102276846456098912142256063220780117323190788758004987928525393497810009964496275275167880934266717166298134997034801668803729938543013247037910074976914078148888945739853184046831573631815009355685898841941559855742727751805556665501661352612607872844344549887784168007824888033191043345632950363082964841028805581001156368510015244909718981333565928507213104329537566209041895661169627175398414039490130000697789286127541300574198582265781599129345268157322858753223256780008239465622885109282201234395458512281330879463494979036009231055880384528215777621070172451282349939838170333812911404013351922702628606220369183236848240471932314717601026055058531230635799421305256664520680942548391583029131593797605155426788824817017559844449231520931759221796444603091461627424524050486668505065794316662028485763916854103351316479250266353708585442503074608374156638215387352569840172727119191077770354645381880265115579638339587587680918915326004847255646790547526193556982268103079314329940940585195141487403168231258062718416958718084428376146795075648530649374077725312678151489367247966890629875242253032594129569092708412071035279521681611402798826049995614365245852883935699644137135501633554575133641361416303750214168708184110296908183094885853420756940368577279706725214016204176413120505687703332558055451273644601913615074117059386711124836209522141616591134775243069084357494964857673779924024260337950526865603759805138436433874465420168675939297552627007828245553992815730905027189135023622768541246597682785214191053187803967945751350258570433454049646774720272876678878388559907797380014685637337810108899643660152774988245000688205677901435833755183752879431321655904513632494078889448779653234917708713905839035616452676848030286942040350920379944897737150453177066210523823970176268626598895435388080767999638641232461975588449853649349689540828034806455109094236048889780665524385275954488744699372561497796144832492689901419037049226156851239135888335887057261843613216961536878204640627675144021128233021003394511460567417686722544716451551049455186531977307040692921571096043066952298801358399304068591057467874716415891965344096441070992886116061854465731637608051016609032161453776158080783979371495994164077101646371477869217353204756292812953055887171563080543807084280956001661608304565290065982726576035133844836003843103447825346164600363350542664657815644586958734523610342656403711257232173427487802059213571614459204978571249097311588009156458694327176166814745391894538158184935115168896976794444804383590356242063381223065483701870221192790599485255735670886095837817614910036834189321845236714558646331658169497460111679717200299841100661011703214347501203063169061188855203074506051937899241877946657235509946062656254228293085877678582654483534153654949144640115735627365490532777132233271187053350474990453703820225238897347795484185034506222387610196588442221330231492576323372731063452922211708849451756257276476755729741095983698306992856475440326153618130764357724882053497682955706764065941930003191607453637130359865546028263181783991431616757910854849088348233117858777730762284446920475102461492874442416471360468195042804730600969783104766041942233605044972111445542947201837580928302393865043438697735945619167156780153482077424312406679798612628418967315759399469813258218023027556315086815876566311355426182313603629819038010897298881585871606395166057925456204361419505837700760292132522357613714025931538172646807700000530756035048988846771431211405664995210300315694655250433519474933674943045226518406616373279178349300639827046395486733263307312582732233792246165116819297849196610747110223939605444235591274507674806924749296206539024450604526177310411999417875170001609447213290049424415923099959508254422054873585047608958115859388583145948342530284065944637497157996455920679817441176907428070557662460467100881246579374164651795907856706556500213619155562167430092132416068638762698337303168706572243997073408424329514450746765269065388577446521114958019488598757317279860264727827274571882038159313971319733767176688219248433312257229522646178364881470196287179002627039685711631029925204321943384813509984760415358184041553737797073939929102833142680484331489784311944457618856254764980387558212131705705709128645025593162329877554468244763931638552394266703292671810734375494270381999892916338697158821052420117580408103184377895318823844139282127767110155848909627435046162259150501027620237003384094042149221820061454810248795495800705543397452470409836486366308391058429655820900633064131952829181572470581957113800311368074803280384912940454606904712926515659360492490332952189879368390918549093154831279016868907987666515915682122702499225055770130625947733993473208132283546269399651694056604283243885696446143205045759472723472807844784019737099384518081683833977427072730082760795336827411783206109473772273885231096176871352451828058448657362347222266813341911831081508338379461173804007477719645974921742479891312069695111043136197721294005077961145287719800148610050414559084530275371793643090483430928106382334958777044605127243921531564374420380405754650479155443024762144401337238529671094046330115240057255424713410244890624750183169470773754072784052937809700799827551271570394150107554360499336359516751406359711823213359886055686915395026028770578130861745700391582454090380039826290750816802560022107697241819179789524002698848247560871268404344801239282762484236015919800621860995227253182471070850542529070016998362314814979869961912090698223516822727346611827669628269303382389447106707957379577639018247348754135152828071030055518021800459323127836534915771566445000786926132686043929532596922878578588450273144154997617370877162073199927792802264089129791433936372896676715263305217012547583871126310157999563761405513868132935443164172183535526683619432184227298327004738289028673115016806500700069975941801272018232085309409959766119392104738473479938249343447158888810488239935244064174095428757090260856972009398242305623818744308023901709606353704299149743699526016644388639265095009449832555036562218922007647656084230474389172473316761835813927011630168069734919969209566296708910878298376465915740227957104525867047816079682039042022181030494264117001574205166252009919908521973892790459306173881966273919554404212509755952333875608216059378789792671384064139965859511229868468326612706626174012481418901460618982052155517345823857885054762253410266849440786896082443512080872722259484730906009649768675388637075322081689617781024059978266400671480158097385485997443174273784458278523234478403094091059648882381946128462520483112296718534108434560875647651383834184883312425954136225455787159371151087939499978473600756216045090484848043548901608920409945301409802809538956956781178110153089299845987649120665982345622211243858872299891915344987807751652325228087477643035851226505543820126770730976975171268029036914126713559641413438783775267584614941966843394133591860188187121288793905504010434334805209327600392716541628392180882110913352377627640249878419668460244875710785937284755159944405230904459390584405081972906278521326002677772809606317127278363015415781021321755494090725595033324402295079505490585005586035205150428416018338711288266252449654903340309753948300545624551595198517757987701053981205783561767382780873388565243386943239154914575616612317045769848624162937942367262724566998407171196728320237779747876861678145742950026112850360590005327097484696728053218054869112010956811354943391732882950859192862620225039120047586185878890860818279332510111006239202785502249677899390496046148949740962444070314053514865984762942415410908254073438712644140366177881643057017153276480748851681156087603203860215005174409758243510850227477964351330864064779587780250505810036535955635480900052561101501115585724169274967735207207185744501001977520537111523890652724191298167009141874695347794953168957111541620485651526206551999589619069696107982019701523271533106751787580827907913464169282365197492598997649077140078360428214759229981663115212354846491612698059095805397712965918029637906374754037972508795785076564930291181028215463985341599277182149460553965575018510830627316594648576755970421549621685949865320782645572295876170456736035826003429150183999508414321612787355446726604261772829127635366092949463600478130853167948556269587916175447659963870149190108040545710194288523231558546102920979942159463281610032144493930038358286787435989408142945414808999751688606129369976110052956018042285129054858504496098825437581293804825745160809020911769888271395339665639726092674584635306725365211944044441708458474926642405467420855213541269859200109767297100491990906766717052617154938628997595641941889350128803610872703978474867895480310323956176028900582428273915684430712139708994209029434762708742199272991515893235627241608509340103341998180333776444638807818979305939392466334517135028470561795710555719364266683891462573048360219023646321947270486743662334744131231515560395488990280580800835066617024731465316277177233840789311501915925413996146678845965575925953587497653666759208373417693202077985608030368205162088822035282527462852262515186516807200245059834689840777120525918213891576919332214332775465942548270104179748195428106497489684843980166552806962024070746644198284270238518062043364648410862321593518704265208802538109151540697987328554123518961173889318025122179140792481120014403920118173378320870863541070093165139471369638409083923426329080308482236686993234933835980380636270883679122790834566721197341409306153123651938197244863914612725876958659549432945556095271034536829170448446267633311671942619564344866196875952612720481697715729253592937649805722936138793983510834837928168315476180609594510047098163314411549909340569414065502005176974551265161915026746021148807116801962483156855929327661505268946230639425255847600170129034533668624017824853373008519081263579553959712678250064907246277984660634921020386619647945564020004549168073324787508597529415649789519839537127171216237224049844234010593411310352725066843488547372070647031468608183975824141623323557603400298753047491810847855794293532011881484825463056635506488691765637448115624072534234542263553595221087732818982441068457462002200178454563590095228376999041377098991545480407023380088660698213283343191837712595176820792924361620561917298251518447233722284087855962253231592063932857206150917435964049106593414294555955632093743045535415279642617297356167449529832307284223331866526040227672352629871456847282607611623125288359374852879995016713901409161985974194715670642676726397329900634841662438137019634200034853235984599148378500335414749515388444129077041685393083713303112734799373965223462289610331198611972086415932874675456069116782939433682437783206204085233500563958822899659410249245805603644573800148338128299698997500895325630450223611835368903934978212243093805778841683025093220839915625478475413937006506010413816112647332845496222346168223975286446077606574642297619982896225931707163178594480046184275825577384019310109460055213438292945527818769366428157202719917085361526495551526949073855949450074341793455249317411189998983550184869069764717708686830485467113530808246649649647266581176228931645359051346736582851048642173818990655682898271868661000049572730268218935622022095056651130446703637855145935622608326688999824083931767406575596588460516032229173922564977007756033050273869020813227316651022681961267092244087349455772062859931583639122725232922689344986856454604525569845979821407097841632733569365168804459589583128390331466562891773987185558570235741037821436550896444846741081021919085817858269140854147453586216089899275401409711313376642929310256336315848103629116545945559435263069069755854354351242178662263720790062184901478741333372570556346413982884862487285900699410339576892915052353430402155647431624738487440685387198500595246077414670173304947269029097900108117294481115542216151398414853235113710597478022468689450031574074055921450580162016022462922155562029722765898743709432076629187389979945843925016224259534544608274521564580749367014279302274515036885977900672701132427102934990971787162490908447685145196241962361191612362931445607076633644807235925373487374021418970210530847780760923726781230401013027983268943856858536782442261973595619287740601631947775567453969426929605236046502974913614793111757899475090919229877635026462291090781647113871094157693443487521892213206017419437874683861262520478743228130058042348837218174110651502246810067757156049239502573785399621174103876713285864133190614353561487000621700111321988078695897612011603167195601008369102330873253440023298982758826143175142419709486874090612680875419639235391677412271334838992590497265933117832887937921427377978012222854669377584128399124497011401947438522617559469367269776163768070032020398312551155688633485375295337809198798630321166878129311251112602118630244108424274425232207695922811864036854400813288527067544636680691971255231386787991000872181074028741010031660489151048914808680458900085893546077853428880639851653725419676326157195971028593828859353013954213115709618687326957220804790157763636614326466630616140635560681622477382658910625810326374658521740233309991306945886469046585819948588229888719824044342665736562958433329295109284956195926395826274617653300432944253313606896095854433359139390015953677262594361969922564261811403842285863671726374555764356040087423554424685221797929149790132716623896429007928070782709573081581741665906473461903475705909146123450376031456488829038750801410438121055161950847510357419372164435962278867755034679466787356812120978185419560756688503054300672556603336039473273600651005147742251472078163361321167846947817818742758178949696342548946426959382137385818717042273406055164991382413171470598361209288434394819739860269245106660775853612298554119082160019898974393994337088297905299961733039046811766605674881080261679991225388528526046896837972568417728315558365243114049756630082261903212165854781834081308913510656334140936967326615739478801841866097181098344498413622176603690811725246958149628932172174492442194608334918915609548349221897313733610755699998704601987330881618469413387678667557097085122802585365208189921113955942099402789274738750675317498128058163375857240705946832212257670020342775718997252087509355538239227500624367278799758948511457335578217093101565452264351857172250541612974390794940101265169698749611465052319867412052972466817719332300371433954672070075743229859675989390634891327609184385857516605448962532155361624503139352486976979994214285610712751679597123096038617289659935772560161469513700359195746529584938511633437458342229311477290447344295563385960956304756974868720503160343458853319287618786856285859304442238324953634835908664729442184501986482904171016072443417499855021926990372546182547350264901526225762093880359734740040369281512582317924645348638995630921890765944535718386184576976522077951530571685132620325807613587228670235014143891314318751249824620627239692339719940843738732273437216343776301107848145669958989652969770728850042888436756998748926427603436445878461857756963298277131305853268763069990839535341003270092740218285086140803506150945393252058881437983744943093835283747502200422702446866843009334208886347533385204210701448798761573817171934469575352880460052994128571509383422290943912573293564050590583302182572303129013984414550057943248808112029001203449325516200022854492626968461653647753068369981491222747940531131457890637878637146588624396041989866869774068137888297704780675386890671813687526455989734050063820449653684301349293177124546572133371746972563895544040241442273157233745349611344459990898073120770052513847270558659581278659592367229336205647936254542008047866383586569958930978875644613126095783538967637568435617331254315740763989058919379266572325387399100930206886406260387067861195250464861539150623073445164512524417666155467149507787475750839169380870917008893040286883181227893100505559149178206965237214453793311587148402182749177292932269533982587423421706331199505909355805364652557381186689127918639798879549464661070954845880921367967826776927234525471881590509764760153593846019145484842838527891657683154973230082639138914839273041588659446796605467029591894462971420556183369763667282692433794853189841874043104777583046711135094665650471465929386918231541162472089775313523264926437216298000261745022126347223279035769622139934643324858524193679544045170548161300583313865741875671272596096513712534075112238123517227861233363560109617600844621755647241804746164182149705851491466367350752320586379968242136477339694021725263062879390143413718368274750559104327047705860000272934728496220384349861325853850389049343367390657483961589669088711036302162645481283675336375729141003673543069535588976584805807284545857513706205096662527652275142612757944852878777710492348235778492876258386669881801465793476824226276833225299144292977892065253567767951102559763212625023055827398675899205251114187616490821807926332889816544127643046563446582436930112262061350413567971757822092468001939551437467049989229417877777460137502345998937873572241682652769274655664324531499040081959125104841320649747190615044442743311929034855346181859220643141643621763063113552845338617729987525792693027985450502100850346442491037096984411076221284788838113110970496359218792110023199127452604838487764014998864056746351775200691799407736086932435008101437890434130795003674518187913922444905918433120494230241024503536553320367112904869441950146829994078469557284963089056779012556773307645963928166265982441652256748821141327600885901487288827753266055355510061445265527790173632270242272199289745313977196015875494873668194577217370501807800212620238833476596631607785417430506372774849804685923811370135840698039414047746670424550794895131203621352175477093504417427280102725093376393879850972092335769906960699245684948975855617789063520391802197462810264356037972487307297139475524667382199108698019044326462488055028332355143283795957742916416171970965475835798338887560875166353594653675073157237439602112623670995367307828666616849432508604356159450252130531325063486957978771521815037136079312857108277506079118906955931292736901431413684571268774573491248843902957072783779237043195743704159088376126952489400562333227939544046396371192181276130237109816773643139833291490392590537355761809580528875991458767002099313672405909174127979722430016854543675988621042634909245746848878124176220430870308142219388778252219745508728929585511548321186526834453863943234205190356291274493451162573381768080835415768918113849403306761293084625231293371946927662713187308514554721946935028051590954191607137609147107436354148018351249940615818447858501550772022429223946659098790526634321594540927115011564556644465556240131195508353001594451126736472002355685132463252275144073786785023977854098430417215410756031323411854000172547090417513127099904577544189106468700612287518871598944373781439385656487437372890897705137646634597294110148351697223047534466076848549290673445227517508159667525823402940063473975911358600478167733979737585278352945732244032397800118022742009847766899768477357112055830780963264181317783722809011513196230352792134595714529163100754204083269471887248023064237655497706351583738581957105049871209922626168300786535663114721352680652301235622338680165287475803842353920010953907437198062669577009190457082070868447646794581963522458272705299710300941409530796504130453837883548547202704153745259313611891794624710715269056757722862385519516935354246837729239238297889000781610978071327104475218583685751397351390998409880637623888356047223967518931727689618947714752761479341185401534305133930531451328918579171596361018118921134928362788652214449233240200413037179165207793692971293595126064611851532411216623543657842470356341684033928717189515206480943214012971237800265377105658089469320828878471592868594852383779210003817998894767128723554690155677541984954054825811422530376854965417605088846794540549091020060153311845460877062185590423887763301289322787073550446643468871401256034150900713235228071092650817070031145923851251337996365747933184623041717375402220672756894701366385223021398902554613982015332446409973144694366712032572181778338251214202792501759242760268674889124480510462162592074034213655189015049120363213470198479667883594587588901945432832322995431729086632046369187042465235899181972327075143295814692459209540310421134006700688848997573077899976116210697087418086068197866649525373891949324871532174063244177710666308723448750492370316704379156407203515781779554852064734423216268236044112425338265876854288701513903668064076723617161811531673425273636465648245905036177873978178004581781306540755936000210681340387745110179704911208184185450513092588937442120436356949210057827768213788925475768053704028356418186525288399554250461834695949188938368575966405672284616979455524225307189151072777602121072984003557542347997186631914468423604975124892407206683653118329527347555631635919981421993533298195270353380359553978646575971277904144179586804527798169648822872720365821901731121873981723799725761077261522139863643391076516323196727064272039324581747359305292372256126889937898978568612061421470972338434535296539868624433893326427228871428256833778544555455045041563579364156626546669484720153589391846089156581226593413234765358104462825673826018245277775126741087759892413526007105373990215353378213614979308055688846778768366140962618598400529365413393420257682118002140837606626930793649230592031866738709810780301141769804866651427193355553456819811924035915005137687705900773919657600671135363137429540772093455879374594205668983666995537856175455210678221958414329366959640433124941256923794181956654515016264935874272007419033735847977444726776798150727125033919581802029437509826869180175212394334335448709621994252928281748335814410724029428607454414456224986583777091885409353070338390291974814458765094500788610616580360475693800088384879286677555438652916867498876775906037617947432383080311803381411275684082988457989931684627326030566327454222598515347630443092573689774993602773014894448658537685392926947867846030797326498242972214098212210873259168848688414349128982711413941093401386505622135267170027361273246985334237885288253706657017522614312363555566725617432041960050163507669484328010077341322645298226801022008470012416509994958328657361132105615961178359938970046463066533639584188881346655149548896613401548835922006433824956608711406644414716262969128344102382991788615839174777379792252662840353708834004023585200876957158945747344961471751157215966187675956029982964256168045197660716310176764432863006477701479998312026048005598748585576694685101170543721500860449583028478403578765751644536765426148679949713100974276547620237394403743447516382987795973876961555700842768984141530742992435713791288541560551089994165969933479283887572808760891917185968013450664910347024559976838987869119889041963222027900835850616231613132837883436222230212632592238949169412199086985824632911961944016046150827378811822610718042672557107250964640123401976678921724758160150858496249485819961547942644340978042085122184117943660093572340806974942162041129424715578628030222626816243557952164366070705617167589207501566757652872872707236001959641248997901128060873883063924989061182355807619268130334971072826466912986952192734040117816959032936042973014922837798065891182261969920980985031065051674371869535004798925200071372931390553848246419096236961318512445939382288360077733355043226217567716174536644804905316027322221659516084594818410709620303446046228016255991288109363497711402710533859610273038316008219578864254512261155052805150067511455949906526959086058389402361509389417669616493159391713529787498514680430094381108068787374150370479960462018747435715136353770157525364239457642312808370795184196877958135071918930834090328328395312603973353296752858126462842436560290290612729552671773096484419118245990882481908174669696458777810932927412698312319657271238481686833376220094396468837968978579459792731016165291674210184745949304225936994819774084536553935169219539766625596779927961377616290096004200128222215293062381431508855079148049950710086401030135250005260621559367342842586730984368818614461903714139896439352376827291684175232296411571440813151868507126400828723876027168202358140210965039202510190519665384201099902283277091275323722331910104691918761625878044784393625827187962998143640902962924138010758390080391915566000880718054524178005835896782815688856382525554623267063435381488144394347562127580512866871300254919498552053518166876886883476457241976041093554480904249672947651893945487676989829066181579427452455094101949032546772930440684804294932594834341381901711590822032384707452244981152391689665422278054658977639060743451258923758026121776419234329819315863134381191614884030543867183937512006935844154414663679634851140001697398308634856036647465495796176269856962112054788886375755731303358491979997224513724348063267335549855458404706031903397750151121326916885020845692665388873280354035288487260965333610590187294748576155418572352886981348013006752936567340988029267968327456509265029881486475472431463748351207725114534842259518897898039608951593095196115437003284529961546620159378964012298943267809412735751329269966335085734944348848363214075010246259836771563241483255029419922431609853446445196187074490069769197629620160768151161285748412551846766716805474519952109850761381057807336979575347428201818561200250959210348146677185989450606136231082557149711543911701652284802621160710829120627639534319536690591548915833352607278392804436625396429196527157163834363871071961750804942992803892377071782568595472235967590030413934688766520358590001577422303915859259348577450362086762849250672973148572010419231986722429601777970055760241418377327645309209851235982242930426102206695618191470252751490885812069869499809742233854454416656167880464150893388074929513723255868881532029309127170057174721122958078913816264136535772547407865056971774648475182549643013587306046937735954177306784031266319080884994813250303109015340817562819714113907749984646545270796969395054971933429863955416955554758961491946233994737760380852160715319993547102770560534475176065789230431102321432279629360263808679151979585515327054047732256740999432921244842518992186035558906050034880810370323144564093583645528855720751408712433992905033467421137451712462734722992123289837302428923208900441767477290397597617466525875659541996091211669549315879180783714356996871817231741268179158953610835454100124798591966188306004606763524954451101959745453497938233572462341176675177701145305125824561371204237085371106483485037133043630722751005181845815636289863281134434740302491472444304379581332915877128273233944543334714924019017376761122692872362189320211791796201536123618385278937488826612634438172034434496715910317930331939455588709286305206697767771658589847259805493790939837296928797160625813593583545147977108899956184652093751426109080071892310222615717788090612807468478211779406376757365523779515113055024536291621763144035362929045932892565069741303407040556611943764367961972852957364121194061040039003717850267424680083981130401575535019470813198239695814333511312697231285724313228025789058500703726361274011409613365796675384359935488838295001667637670950048444215321831596088130795206372174358693743090939231304752836776745468223378120579413748136117078089289344152712572540029354227063310781828592066625490523416370863021754913165733500669911576980710845378052975453783792326287871372026522906758713304388304153636224034638094145459909047510435362968698620418548048844342326970850467226061936337209447785542732449894917915053928610681755662642498362761149857268794613887714419949973179413117177586325630012609073777140722507940890947485291798120509232860874200568091835075185685116837898814463066835235117849453330403076149613666350321247771075903557383410727731676927965134780642026730845762789958893004312429869167758732865568734223423861258223171593643566931329023548219854506156644682708664086930412817404752239296870379544079971129769820109316588708553202626244954301703439829970624475346627050085845237864172383988364634358364524823943872861561761968416144838466550896910649947162172150200300050100149516424947517096413082300403472418154205604586963386462923284067906492580202866569477225672413548473520365055580078805327256523188374706416853193108966256129145127975580488533417886452182102924168914949342673482729074594364577047694368595130447351162860600368918009106762181304792326919746437426753585185695861556957974576096028561225676372405147215936229285191604317054484701779564430826074089033920396897782612994514582702147828117354490336329257306095608645994035458393695839455665794143627535173058379934557954550243573424636389323683301795603541154049848742328862825591506104036715376386357197593107557481163330148749532387673913001380555457839280551120282604990621760262719211031915263261965623341930539871496094397164669184067863025327216039771304834810216836889823372581885449098094060202641032899572604545183101356006684574420022638116298782279321325895452080480819574303204675598830195360548083547139486831754579515963601731319851699367290251168782962656642330516548470459552684896248715232962180980768232883567575837905521229356363577035888300962115630460964066597794677997307152566991381309591825620571673530826273545645723765517353702984932853140456865130964709462748992071510014029306638851128033745491908349399715583840648038852177555218496016595521420188018942900078621965495358686051010889449614244199857727615721479256455575244069446965949790248936796081692576390189736821706954567551780454647607789762878233598370552112416960980897923776328852841815419652046412236980341256383634537615533194792405715906542091934652452034939871618135242119932286344971688418307507050501278022676447564433195012080253467415899827444467909431393862792026887604475474033117252432624024105000284083366838290688349711237097814129761285358047542128300569666086907566957057180763663883875938461399693612740447569841085161047988471649629981349599758535564953258036756988067288524734593090396614738497960847229247674646757368273561021464630085675872745225929634414711249623173172709476517590257765317160461818013163904280154382292025869148240684051009717341931762150423582840924315358374309827189359535654473622523135096859027890984904635368588463884384620195675981748620005146691436231345271831894049887036110730221607685057071156077006969301860298728968712122556355241976816070370151835296076496244389629049926341522380941463043099073333645321149233339440583364908622841724832976976104926077292619169996101832158576097184559848547254978529330438725323847247082863607266822556480746683686590998394749214257856663484369865076009134039358279306652559584528265782913706608832295842984999968780079323289850183321698767165605337117423580326713417393840011239741245094589044929456517369719216462635431738108084810835055158101235303588472857065228099035281937502554025930846238161276905673034059986081298652929036224050544594894433274483550745023506423098868200708116156892070979501359361267185030756546821855657849466820314846538182955213276863814157139283273490103045288286692724036233945030497893728126249815731743730561616760212508921229500086605105758873891438718829485443873089536529328485703389799481669195896281581391477368445619778505262215561480237443138589353608755026564274541063787626129689381402810380834567920830042063874446042543873634034907123715947803872409498571918630209958558995661982038815285026089312338473581627949048281259259764994405294796876370781896434960586981795177408414099348267375715571098988909770702256758042337909420522266864380716926270576130003259971541796513939474230272110905247813971526550917614714695646944509574841662336679192904277712772097399561483620856830863360999233157698388650463367105848027553628014930140653684713914120484151594088140350968615644975753029646228277389707741893684339741885036178137434795964274845062178034291884026062078526376137595969515388534273005398354414586911719235479220311933690226298737320447217223613034684254142244943973288453725392049274825384049451645914985089862477097114107792963912898601961538022275486238654213407884752182768643124842713709823557052460386738862012343056719450577824895909917377680782462485651404052742572420243737548375027306488677211572515637137689747748884014347444654263075538816082885965225184786160053622826099671157606480489678102995169588730134553049289202478025246044427423759252597586390843174574287973063633356465071608881265162119339862361278173193085968225215682902500100487406773257724161913049414871399636570370755450215855449729789716177852875393499928074455656933888182452616416298885540101742509451020605194474225097334369719024563498416244035046061293235686004741874154242643557078802593925115422122075830537239336727905898004486001623797985627924692373738545138596645226729901648066199767705845893458579829230726596047681578100829052450503050639997159246532231099369078630701792629061594162715985413495542672487300726999628897093469451365125744553750511409690052011987907829700051066556447979540950164813552011447882120889204067641073177732277179202015857382955343999200642242766255516027196980734450330442959362982657640103205082934274378967152540734497889989519190749547184546364505733744483798946258753768171142292640515004473198872044350631571096861798714586157319107844804897896710676391628317439709632574919014830392120818877905951930079755619135309805573109364594345537854824147531480692258253751934277065946913014807257225029497671596319008202789265643513823577381941298231298290989358444419164401333909163365359605849184135452945056482447403881212795301689477180112470543181133168288739814007640789457448032254605633015382917052221358696577016143936076237739767918055380993371789621669403277896131543506774890968743986452887915262844517846537819665711463816121646562956502846227807937724911953906555995893484432627155081488251766798329127453118036423816619904379077468676564687361945348259852152792037076597404491356480666205310202414183427910720648994934359487312659450144063062311233474549536457510283885652712924349218625490632292675844823702845383511241164007201792232427904030385851140411554026360705268672171868669258980048041642481208809033348126048861402472008555027581042465458072337538918299897554219662783095905594313558244447050671643287633631593316681444097647146893001150943094091685295113751667528533255638063302614173650129217234406663508653987327315957160580909589537024349181495831489728790864426968461975421453310189307335804817394125167689303406218601497725473587693014088446287603977780633646364460894515805317569615885540195540169745985403110091508212980615493247096721520399268147237844490188801672526038977771834906733526819799311702836482599364481545157504039615332242335660747312999328504224445338305805509479543107112745706195911415935692527518566888895877096695356667961643696238348834535783827076381079914135858256356576264400334887838144313517855437853321404409948813157730394484232631381664189428887339540611411072475586913264853576880835908248918064574851614534654340684872943030324104259487672396350446181335793408134027456973415750548496902664548602005134703026312021348759065756168124837365334039003477541341447844362559840412981264999128532826001921846290515383403235291069138369166874122905402423149897271407903484495443750238382953062583848506537755025736643204099369079169519948816022129990457352441704471045531034818691321467361331296128910624138554840974429896601417892850608080886967209127265426832616359516290141459387901560448828324541275592327917497470084827035590744072763750070694837083075788672761484912303932167470816597240835236628283204032750686414748559476150068341212733748527573273936143034940249000888348375198707414352187874040898640145187567499974661092508338239283706847190000713695802681902816780131050028989380438894978678551943564001825151639501131292411351223771259909385714965860705887850345441144501701345684545659572469608890315676522601083358157000191676147741238880507883119318993726590423035920674109873061021963352852463007696166083708703860262332343961625614503570916762537258402014617698889547652457325385624878498053299173507388174797764659520759129266138289968791263805864920643549201855744937015250262367340941918316939120125872445105067015903919111797706444329042497388957044945392469018689521932191414841997014978636072498506319710319266949250191004039165943835528255184118405388913395911585627419388679779860255654146617876381420966895805009027884463942607195146664912906704875200204409820060843658348790423482998109003245976437799423531773258061350766297493136120821023710494560619529910642964679303328273123480504977437748951190630718527769979428147287580988037393259211503724917862822729216730249957128499546747365726637894754197838116365510058340376853327445226122660509734706531589427287354523551859975837558571371884550976137879060496297217515438637421917314953449808204932513672792968366956145298083848696107122989323224015553751064650932206847152393075710647852691329674693570968910403398151468417440646597768153163954352557877542195207758455868812862472191968166521384946233028783914008844096224554216216367162704463563621718613758854996559926914551012884863871327963098845476409825588380845806587205003215971474994205262108819988965112703317394938308659576892609571475199350761658573004077047566983522264280286638496409505770378074709452310640902006510781738256983514190435080042740857451624742570118523432671058918719355235061671657537720125901412816300609959801462979057413530100418404953840190710451584786638182650803989431849137559533982728403564580477549859759017044375478073320599158522380279654559796767597562817201582762288762036722091788223963183835493612204775813565690454307325919283830632926298189770448144909960529310532047527415724063727088539770206410508083766300712012052709217055686922120242560333886554996226777268461900469665766323583441740003787419072731717968464835438615067286163577622059073090299399037078025088599014798265995004944351771705742262667946408024805077274128514157293735370454946419035624715179056945815574161734781007767346959239742393026493197794543776604806509353860910663410556235344939653024146621465750554805040684343570652758207519565559285166216843077966599513709825195789878111395465148358489674712438658870685580404706583186105494717623870365048760574767890226954834791963058397812527644479382248965663964377494579752338705656795330757940849276423865033113983358721758749332800337702692697049773159561860933203025175420266438235712975500386132639960757067276781037657702741672791016449002362009199371558931767262087586066522167939576526513427633447092332952013389958312915036310186382618264804734357003682295604607557452517965491076048014908159392750305828258794030230060309477965586636664915247667683979985878152866641551669398847499897044749100733120256302069265579049046161837436505506990468587214017017382074753841707049179005271327130172510658350012880903140792416093725888725595040389880023653504736455905525517978657322026372083778404622687528199514354654922275534372387362237115049339178932302297595141557361966615034752731866755798537539550770079631415960423418519301843031087471090298200394561081722840523012663894641827086788327727384707859637043834893370290539118880279986616235393282081498669170328886606301106667320031652169799296343423771775918167131410165901250725630623137546471779380607684086175650787512268576254889556039001569212461322457130839167739570800534433996927748476973639404587283264462555907882196756554606432591558295089643310878092988843922366908138523295826642034741088506738616287413626176575270095088859211282226093017824631468217220978255147038657918462379720608943436185732258361420068858107883997363113970622916872921848746155492055099562809188492099078134898824157800506931387479433510698851117759766607498126002843085781597549979342644909659091450045134779889225338158727295919466275740479829794576878559323212029044462822130201254803361623717177604373690155426667866626827834290444409963327002173779461156653068020392545626938168922154053643134998628636361071643647024258403869878686393772663708400743386817539017847079718800940822007314209751856627276918859626347196251751414789469544020329188768413387499105772924743988117806150839406189979221220235713704368589862255068462162786390336263097604336040221788083241332220650225090877954949105043069100192889817130361346420888675580474637340246873152161153248582740779537122095280275787219342738464111860828902929895414551495803187708005256287060002296969556490787027556488516167042145755959116434444410250941653296631040367120686283474308487083145263932610067627109283393476975938008484064161879856543714014292616155110106071288980761723282388397460317490608754629325212660530457790723002923488652580133264629576329747082744951728186086759660002618285085346218882665458001030973272436074381381368376905298649203192668501227443645703110152292500928169585153739054228631362583463649152216238495144619651116217393905336525108029384476378767573479985672475076989803222736338764022773842869768262863836673594377570504961054406324393075077893949581044729726116140925503339947202137832165669691575333681269668898001189605272687241670916176907069252774206228683576567283457650789015401534704417104875571612952003344423754008463510311406408442234418205431516782094189074886860226034273671343306210201019957460731986821010062937914683059627765684499609836036079275927621562932563429138044167256100233403404465135640846399051067022426271534086750267180541569892684511250676927513579464646531780778175372159676338557068890102169624449565659358423491800828266902653630921296582744812000593038416442625983339971567857432888696097242947184823431177959287479545052521585858356845184073249050162393691938909872668319837382267141173757142184794701327279098693327091010229849731864414861971874513448550281709816931591371236908942135823689449271267177139871304757065123580560313287262686588575053132337196407574307170155504657807410744700263067349921468388195792615166627803024827426736545482169273122328569254634607377725032315421081411270286277715549858885410132925934756745397967047732681440176879109789394347698296074553551645031425492356888274876830672637082227593443681827783683547589967568424120165871731777256610782724828823197321118873230540638730137520153507095684628868647051285251390238252723173835081414818341521656330074994958574437549530927680225896306740239022849827926223254985685974746803632573829122685612262968349774436040629665223503223766499396698145483581230252311422227590441630047536436920494239223967635293311933532916897663142107905353906001609795875801304604248413560239934863757902447909548794500307230770695829510034902864598354428464248086800590147334011500308194903147077674461957044502936645539286555312558664169730745113584354849774632507856214624859948271402399211845941337104383096671401812495941443070514876044943724600712476846855953902377270870221712007652257766809947013369810806453153854168257830800824860561511330678251658615959115535263686379085271737768434761201388194070252154020777411512366374165801641936758886333006444684894261653544768361828616864457002455265702373744430063466128762787900462400399409361982794799024873662191897211111070771422368019549240623836244297029832252096116694507759044313373896134652999737193987672707893352313986032266449974343098724969666876066147663473880526018095422701365749836817077342451662917230849758029188300669209246576923488620054743761167404471583643556184718522780340524560710486158348726452104416200704314055342522808560363401575742836159310455859066157025564672428298889516929041974529385122175098609601654737882268630519953006645733316643064785713046711629275493889915048255915791953093522471609047302328852786138507241443668991860292501011418514351718853994127715591511331733517726624437348871962817945938017002259224970223528844071240921918014135402412957077308338578873146549535219467266815061937478131192417486139613724984937036285795186517876483264633437743727794836764638467181508980466679299499458427187112369509963245227947757744773949041383503261101976557323412519910807749061956666105111878853649640995871353021047784393808959471266795189068641923717467564771748713745547456382284118104348491343665129899867647987166068986266760975016615321217524918144493671953974861776403427515635307260481151662484753855984713593897367982323270960565998992136732104232577759409864508785267396597170402053445619526213553818704995855117491502970701086988395709154084321939335453254019144300742100502247581279181561081803791520808717101507428091002698058138757216332279171762744355662909312631254380454680462511002980074208890292559958613072039210729058301785376295969085652436113101913032687995037013390256035258287862146804753583492140447797979903010369537757985266665288496967589720745370568371142719970984819191340384407724154650830747828301230984684983750587741813765176523872069312047855667961229100977273816206812536087428971561267506039713885341771251222407899902447459101209587955494394210540552355987921907302989772216005512670525008002466783627579351057472420873953045406272791248099896854688545990626660023068865579778569979376600409823965989809421548777505410957223386334227657546963967223296392699723537171425712520237053531256897546749545016353913867733185718861152230255719222829034144512539170257987972268556652239223747890222861479467014145103552172268479018319976960681372429802727968619487397055412356706219626120678866321797121450886720847271348666154165436738712217156287755858366731215144512895591287911388603765654457670153089809761529850635767781841225998931651562482020508472596470760648129122151232996036821495256735937696847498827980654481686512631902222915890049433125167939611710126572136928653863599200233813132626885860250862402701414067902314812225366017573082425769724865429916899494356324396073021648889410196741503338977407628783244406243615627108392209704614342928988259402446882208190957492411923211274539342646508099332811650398510257801144132913114644779597842775863721729593524784787489176324879774889248139085312876815945160003210695069686097197994799246897314020040926024590106952402797553205343429623751633301767646673498174626222516783155002647256117528834900226170362698735820180478833105082882288020495015860302100362599846020057667891584015625628957782051314819396817652497876047322592468118151221384631013137453966571642825259179185354215270696222726416130716240338570787931578651928012959759791728264869152301704498337183370402658695985743125882498550582445677063443565398306533412676265176019713718556252310386664538463419595212930554595387877455004604776566671143556014299413341186277990545360789637822826766309999865125739151345300103035651437519910935831574864647495941648458129805677119364024422746238988253158375044165515253826592912871795031779533003016575121098217792250860172801196577869793138059808909298480685584762687335997348399320717080645045164333279752301654726195193287319698397981235771975827448305855068683794021287590715056407773592908870543933831537026633374143001751947253387645346995816550132165060275233180497079270582814002088983346016780324748513173482904023927185928916459748497851894878239871329612066160435979026082852620436915780228254915592251815401837429495248914187415121629504375427858832461631904837479209832528474045984255910367701373218549841828514408836613388514997393424520980759426150170701085241904285010329236764216027686416003553569710173388034330565764544369668361488550259435288201294042477398587163504079951718124158988770674152111931614794293921752386693510525356499220085025107755356978291831709700932551561595930462583802850233803496991899244021585789558876616100280269084759731390810363745101371751030669783471825536461623931552886272648693912262857280064985319165866553774502473768700547219167151931819461936110076635329028112808117955080568685155729531626195533532566701512240324761609831842218241384176710443177252748589007234582308669140896525031878434117064222548004816686581331985580077203938167859776131469436400187188784885566063759520315914528406298556919100293306381536711884235927184748329882485922578952245042387288288539500886169542500293564382027501235250213610772167123435867948935750421600443723985614833798840137684244659035259303060854256739263967892206224831106308816764613542473080786010164248265157315469127107907031516669527260327974030384702257675866418822270876473523060050968936060689589576237539001590525824305443622122852335408113448803836440670074220838831590484111892504014677093085273296210579344151890650560203862310695427278264764970503187245586087818889655483318715903925120302262917616573801487453835295566035971158197480454879497884278165425788226954773313258487470205891376451664445977700292843384533809968928880400155683367368586856325217412632613611862751579835669515739403694449484246666677831458310481017774729759762749739708638193425566119151984052339471278496182569703275383011290059200899790934982733361390634374886550894750685700625362924358791554175624970909847649315209649272330319055759199320465114189205061137841552965103044766939536281433434144150153309962505599006399949191247995204630827804965566777372985433915756135744880029490488200274814986262302317752910219966621788334870293195253739349439777915606647080588663025695426904589969930080607774018833047527734053467827652099667514207578916567938615371540814489817640432448613695754430264809805333709539985939087220960019345494710875225804885511026837416203518980850592990336517702056839253489915534265690223615482308894016919749678222398103427245152337827186333296322148789857089299986395323672924080183109925437761343802774222380514095378143577867477545310985390005919879998704162694891576875778677280982397297240742013971659243053462410886962164788975243812292118948847595463545029097873782609037765594768665426476530456067042102930297928414222419059527222984759903450556447517990324283268437485704645465477273966536312531390653928817523120012930936434758324968781751130306059793131430193296710883865608870716072988020547404036497418766698782991927130828189793751465232863681922967404034205975190365508731902934883927950457758635143771403577669924096206323158469401882250220212908828166265048389880090659447708875929874143813813196076955718553855979594434701506236022396751899063149095302230851330562527124713121311401465012940377868985102689212832854788590516856152338509282604337822122500421557680068239277272041296317418573627913024012543063459950912029559380672799867805375162083810610326673014075901948166269550848005815548175153411868514811828406857156983092974297155724226128287153583916961120916270758989344978330890048556016820396896199876478571736790170362687407740860488222537035996802346280862276171508062660005177212908611302242291229939064911523775388374469845401572763786339135216650719691223098379831144394925617244686534421430054512622624039975172000124012855701502540494540902262356664426875438229355468025959733736730237528524434734190450179842769606131015532257905097325095898618120875435655226868731715404984590269691696842977463561453121985973074847529752007761416209846272409434292079087451860068083690643486452523825869346475016785359403902162335209428991650801479679189763793053992006586051244632795810237805602124438217029076348315079673210033438346411625146258167984332315938130820157142489568067307262590976620346381080938518369148602095875920459782126199291147962174783552343277678645254297614130571015846388659679602134033675477636242677980493916204676192430950778277174144273786288110959607286491364947400574677198402720495949497336049694844378450822563522661137891890744353065903890504269095092258139652167394136550448225903573736601975381530151560854723680298901058775475278110587189051712415810527225041116176591912862711413844695675696644293376005910199105347114736894269332781133830974309838747321736985943626143986069138323699975948247092109102079752655597961988070146847990939398917168886594876713677780729900916681972102034374686489111032335407131064043280701289812419390168796059594914682679408127983219589881905757293066482576917541065912972749646449303393190535520482864482371957689161043578465851217503288941473212875411267476964109407434570598946646940116307746057206038448779820415946660480288070973131644779983083603270028068770466669938937451866164425082008809725246866918323639672314738381071505096373224378614680739636122522834444714352732646922690187604328604602339598502101152552965076901476048842463961400052552573457086721897107854650132196298473186275669494035051480761797619837667177685329557722681370369704801777534574673193524080059523496510380215962537183811347940481201200469699307736022098116378300810140488619937383530547821154584830409989482336750967147294587264089233670029173962050385615829122827308444938925476306692402074930776960565253304018840070316351920602883012839839564004089131464025742533187362674019702441562562408406658469571604271142270871707500290697242972932532728071496815799276372760309619179033157059101443852694878323164350554990718798855246144041109602464623646355208442320045237307429378606600186777103838706146101648944022284271908802390985608854023875749129710280705954206166957501702734954457755748145663698320475751181218886421510626405665678564994743918497098103601061331059277926096682869401874598460125388976849975604573714189308308541808294271401334493565025826000701648792420536435171381492001785944341283928630583348164316008948545241407766427650912152632762025524520131822695506377673390970351038106978191904683283040016424794590481884218161391348429238799140012210760496794916186546451572489114306615554159597779658109017531603980668142468024778415146455952667566167333834173114649781213375057301655447635650421704274764408476629236207222965522911207807347556486839069987469358710556724852376315213764556965128528160374300330312750350627666294796821896753979994851237675664077372076615996379366086439330965637677379620101670747564573336906834858322231100135452655295914778387542953634828789643606907413854029340011299705542502835743645679088700880732183689834941001746838766018183037269028548443469410067874072506452754453996424138634926632728044958512144988995001730113645871353678148990570989124077889433972466115351652959324317841347999297935709515415862999513489740026422580854229824120657605692140128498820398263287422761476104878116324597974597955594260562406334112345485950901801145741134766922316982536613862254994100398636858012186055811170840827510016398567641362358224741614470898802253648086227468824290867266078415496251587463201689939357274301913278852506052217425817854040342011108290452117981472963743841309147631225729186206176451091814161296295280763333371591227623815577967413079182317921528119936790854942489115158052378325264395126216954413936797051220724257359476789376414924377136055867715642615325666835659849440614110132566151412832403500984429473014352488562306138402192820286984969092488105174750854999506200996042822016971555701219446913991317509572186709531739388633643173895926912590475200529299875941940153605277548081198071212173088989066032836623508576146304865721321299325566230630730421759871185964915543730305560163893261947158999522597259660899876767368136982668939835891779034345020047657328961391817325236141727051907339511474133605278471110963355810593403945758038654284770590446961538119270892225748827204360577369824369979216158523736861793633156989034630816130971655156307566339127204177837960533978140052677446736323947112190772301212778120691446928184979730408924408880451820782584818086004810319723558982983092970270847258887321395951302503271359451299962550433683938633582356854966381840835091735703647483402296706764469223452345885555683230134724299801361351929179137096379656562076417323506158569208170531013496873895240734835192242284002282833795146742576330371927349842419794898745768577708823834297962312717983618179868146888784258899668368487526932806737904220853921087017171580017181392283100242206004260669522253780217942094282647034623104310160981870395595607308067417136265623975190183110464793759937753411532534044791453195627102828659906207115385819919363067802303161445573048177578245604665898144749744390101986561384786526195048401177673688366574171451628014219287893270527925178865693889925188424427995619617848581527547143568503271058661331928002087912255836509849778316859136350126193555989443976355935793267729588435182257567254827442724506053492553076921719827153713318791884912051590254490301552281782223497761668244169051082925037001354154884522000495119464651561201357426965282822351153265029095207308573338655046079804648443657711147337225738665230048909803025897393533739378835564970244638387476819608440769625352537988871523052055146049847673320927748270508369882347156063676135089933177625978657478480169229190382215548691702482081027315861175908210170956524582779764107931228014719568615845300624432879342716574059829614221567359846409008606252670217368435205002344883148312652197928752711523659126636157854669243323724407910312382875580809800994833160473105947717175819037508741326306026898597270358296357185793993577997190439560990133359659065496047318575183731465153800529094933969414517464914591710247700964463652940939190963032804634909177193369681712093260106434400989677680751441163548937561664312985700815423084552532450085479227924484644496721919102458171817002404608093051018423551594560789384318253590409317828635907459633129129569895964653013857952347164674227670607179492825949922166139386029071779544347422035325407925299685534132711258285619703908580781797918216354360793670299282113964865492390215754069173047265923337302935163706340592514795168627797030928904334975664627536000651547961154495427908325239042811734217094862721888692126675481819524579310593237191656566142420491482140280399025503279729089974421457239396261236913938135914671475544064603112949568990969495636903499915719725113134331694435312534307359797407248293513455333687933135467528571582143938516900896246186284070962781287902595959149604361228295056327760976697345782051397007434078965102936340416583108471025039619299055605249912641543055364902212144516557204372461311923683383654576187114951582672636703415134633541209061436616499936476301347720507094534576531608524926912016936305043890039369415947984755779502462952298798553861074732342784240911091870637136575026532851180162370567371722255955272444177969548992822561946016933258889211547293981277539851353468154937159489949158409778725310588813808224119296337802510584816871451489829269870251909545466691734822965943125619202550644506871625184659408102657641367753945066373566125665436231832847386518376361155675241727362125562122922374488554824616340412157687268814700772037568651682742924907203197561819711355215134278440240730792224379419827185908931910962805224634713281308398980602090177251831287587137568666874977111290763140883048113741420934231753975474489756070204738170519825131682566307213855465959113680436653900376638145595543702528323573301532955788755006490159364189772353986961007436283786678741264601352328259140747100022660175833349859075833614085372187730310541451616393660228233516238299562870267313228711238866465979363683715667641241442200311226590189980475939504628881457050411002620215380296230778778418201617129008378568313143084226922253644455990892548681673956533249221134969869063127961696822193517985053415407828940592298677635998681879083753112211550725502713838750161211467185344656210051367236253796597805099683116875835110315964860494403626184289188978947699756940621586423726210533377901556006730622759926306056057278639062440740459067888083875146467784837125586141543703458144137477336730337899765426025833219455206462209562068618838448011252222427461855732833037264955501698306378003238690757727422090027908477184418839647211033119812309281365200270587444206240630601191276729130466238910940271263929725079965700561405393186573370438235384880739090769348592796759065747667922262444293867263483072689698415017868546931045799758498372359022438832803462357795066224799867628054673286917226788628868568081178052779716537075478444232347115615601950475775611592150068744601927453748287348694405336857285203379829010571854246093154630025726473728203102274667543520390201347982029422817526739317587762720143760419494841589865944890519288316073869455427120119718156602339634226210581381648900383054503689231566419497539313936807584345875891454330817905834539463828074676402545242676375991329749625052292662954221255826774816447710748522631408684027429065411330353838609756418849917572625497067239155489338697502192893327282430432659544918060331428547167019596868001558445329448624443214894638577955547176787846925745278068411781529518674865008709687193928233043768576144405346028203918405329144138690609337838958500600842546184521383590035637552631817061898002465509390126794085217479058661157261589692036832737446570056037781978132433673451217993798890252194787633963389858098792281536633090094684570043573602710908804391775141315614577381836691173419449816693236331330389251182932924161964195463936035324962466966784373074009809101611407814585625887671012080606449140043008313101411893940910732803628880965224448726289125146479107387172114568634183523708541560924487244441621358005416037078259981377547842806313458183948225319704081491782211020638246382646980990533378741048789723683735039898791039121996925148258073810473015930252018052446179304746705026994590418605923891248829316614801940106477636796280105025713248878104680503077990141443217220381680923671137975911979997860665605028629148467866752153973101576805696847722552392131707782970419085888725331356328735938224923409830376695179743568470799454656280892886933581180432711826155736112615339533520470804264756931626949172638685889686424229795047622687118938066128444110913951013139852316018029241253628351181015315719964031439937026917676496789484346270091274948912837242018997734405596398324618563764531881196348403764917725392990601371424985467801484970873336961837294268406877548330762061215818696431623239819208819060021746592874508633954598400722724105842001008172590912351178037795585420586108044278315903597782695565669990661534174067437196208725560979543123285799631419155450140015520662927187820728161363006868320923228131033620415504072950326821842565681286491749602927466145578356292462034789433143667821569193867575149208743923218666762904710062360151604245583344591565263306826311179605501431690701827251771674669067453746631970591573508507307052934887539243317708819562432849820230886796147700661850130358887618074510975641655456244593631000543786447989262772267591254096234005285776462295576409130749469440813396294924420944283767417712231200569734180572933671079123018630557233953736700027750043030637018522167900208648471958398089004340274627603119219220153747989159316706548013610767624850015642213591999587432234192001093546452860532587055627581217487697114977571320718681409346845474792427956239300637195953907741789597345072077465125009738875654187281707507087478372936930311062763215026298408975691203532309729460484838919886709048545032278645010162436410164820331689849021890384401000325804766063576136417275632756198233869037697429428692755313581016624282808639086151926809155335183190976588621567798871804990817628156256202659299521101591966421555620800138222145783478161354929822923758145661184343467493556792008822959176221597520778774964674252484258588308846309617630453742051865713802184285421863343743591370804552682330166825230272688770154520612817465045055390606977310053766919436275984810211236401580397148620729225692703049251383298220537073504443058455389374397138213760102490218306518091422330597808726351217401238899166300630574089270796828234684453004545222366865956620357683314635361786519807749383628318882271637411901139981212854893852329243341011799904005786250613404133165424068997075705237712720323823698235138940812331645052451293858356330537899571801995554926975854225692522906799373622434681434169764418825679857907630320161995663298102713002789977556922245425231182527407220581842693008112215209450589217154555155593846893185260091059646420803721704967257465134887919930142742428181527275843859149889339974946513406579075587682851566408540019892465502595891853102127963928278489223513985573951767546729678541576919023080594416619463403040673257229280228690671437945833535500545249650110643796751002699018932552437189188019020636280091113699584703163404959279859685765425612322023175968542233458972115916266863014459317156552230032275208270631976957538236219047706594832636212744521599226614290481557728211256796984120558998676243351130485115269001809886434476601833280498536308080628385159092227057730835261043675218789602377803119801500927387396652820269893351837677189931357137382411710041208950165438083703051035226277199451248164698287420381291322946613982029512933784253468454883087854167251235642220780237135849132839985337671544754149096671841867656574979513948608069128198728357040035769131461722736324447650626164084948986370203249237936251786996254936478004572386407462954697721469313794150322291718605435242566780857955567674099056256979444171666925464360920361379275722428257799435323188043140319006704994254079498554480441864371815724165168131793150964898838910561612561582838163088467045260910816559957390489437625771788599976904934508212509345383382000153457965018139133070164932886585773029804950701555930929326782165353850018372893845856692662951938039536162832018403110456330259994627920800467498457061271110233056212104109869179050146394541338409297957240633567586246044390233833342388577812192012654826097410799594810862386251648933205927340964878086466354707347158912170984856391932332517068707032420253339703282397262142137926871932020137169248329967358779981522062369243395143633203968636681950200582893370268257947265748135680631594152552927316206683670632583304356680442980493104830397514475996177323804391836038070976779111826749988876792106316622812888276742805792646977060011031574575058866727137970870033083564338414404172294725191059617920617253387380286024283731634157413569461831329689083809898152208511411701069920486400565285122269388680856096564195951739709742303175158466296565188094197760321362618434841369203156359275442016173036722301532348827205233791590875912175348311080923959542208542206442955619362153275103596707811126007643339492553067528264631336112503868597517896469538816364441055628069484199610947138595069326171474274890528467930657755942622819263881479339957819431228471832845873938703614199400150111803167878426328081262647595969454593883464214516485649733239734174783263977543225163769214116406355939344264911749479087342707298396879879401466167694507334136852549103681422379591641506625365956680259959097984475370196981574985747266585197355817770847419383455648773989046326867445597082331528624176415307569263006610565432679935477859793137480845473759477124364955795094889966930328793277790552241254981951620774795581002066760697823336716251159706240620268304026347771440208121379959531021443867222373821581735043840747923991475363563007005304165524854467516110321129882009883705729219690490067653277107316017549092897895532257904311638293552362796417645729293714300298176567186342501257449514643973040636721617080684066765384002082909534181070737268490484283512255247800695294541246506103696011666194482635707709800912556851879699528385522509464280740583558115552156180166697500676543511976293635385607814433734661411225168216256963342233492039407613578027448402172384891556262353817165922604738741807167645902153742368463842039142337028900636676070427210760175974685734234189709382453384856020225356250987535579051225618969893225334717337170507099202870051844261519256499028557954194774288096531333699082871981650169035171165447510970723089647957025424524753084883022196885719462849835144108301287216198327778613049812410300180366774007107228836409751257909884469935413626488069106965672255829703427684553334496686292176832050348107528056800103859111978000729463910789412419300732225345355439486618636793063041569143716799748419430969722230081138680512469967588363679557151617446570877226040758246326482614210989723257394204308252138993565042192987145732890845525330507167447927006446123968461012293864020950392653548745658516301796435325196682512546841377197306500395349113117900374211664386171240199290208666611777171353066190206878235400694527632732083877985228987772244526088489751421000727050581211421024143122039293978941742337619853524955973845743668317822592352613994315826293056023001278200411012247445992725029035297408054940421102202639496232796078707038458637934041563446071316734754038271916503654208559993484695365065797173306863901638830542130481824941098068985525195525932291477198789587099313236194025293856514758185258412106035372753831124750430254009528893799939719184476242920785536068341395167234182783400266734219665477223989916916486355906618649665027039015622635851680429588029704628156971283843465862413106385666924782364202512667638153242447651851049895929129314842572277435433618317956641313083481693138545006244405600535936662318884647561946426426290269027862502402147702568115367677518004237793784950442834667061444831807313600538126983398268015536529197329030033614416784143137310863747838493255814054534440499522201761503661792752828270534315556427608607266514934687448250261012589698883949919735559560172721848491259249681177342717228386874273688098790091935929070585091423363538513570457447589745814045691876448483394593497132160187141559947182518115736251710561688628675649435553209189435999545879410732537375179643379252321751793328252311976499260627588080227321068284170578592896873108720205432786259886907387763985902118284734319617218519175080271767542198346894588583263245989310734127722787325935744007384577768083482924402895134637426741000583404337750198872449702307290366390095497139380317675282187298128633939824537679286982638898893599021063527869127250982662390337150548103824874592980785295776948000336052172682535260512005724467819538225892548133545780160258156109822564248130656050095468934825790672446176485463625682215329868072333273401644255095322865096028215837904681894731234407107837974533907136669806499228582557075940617160283829051263480857437247128180202171922621119439504109431180795094635481870550976370250195893258080661100345527531486160006458351506799165777142135142128610467091143535528656070662768592573430025448403615225048358677935761360037064713379147921448494246925603208017656214820952854130105176541278523916734575017111322237862733057372499790425291768548273699767617480382437663000282018917111582949938741072551410652220961952096261326187591121729981125361281984423450309916285809315695720478591835355750376525640682263236465638160893249607582246453009716019142800258613702924567244760831464428798237588515071174189595249289200583999865713634341880521952063229465061225729030626380205533396317379731089734829562596693940712416256321403700845127247753832799987946098410159049377470901792960207265533426689942875135193482658658178611027451249838937936974986789711791943541160307744208000414309872997425962210977152099854879103396541582383206584824316618743898570286692694535867648785085068512604974502850534554242103979175421595883087776698308698138177319530668968287731449910195579929908386327134388960469606595446972578135069310387332214905437343941237329376015524502794188423678234229746993704890654958212209390646106830682440247039430188253199046210805684361557152170783609803281373541212967388672832637675865093671363343798289583855983511804387617531044745429063026632024648719238460050884100704380765773226830123005068101748745568350443731967925327015115445667464323379257803679104145812374460543889632163322684780730542950498361113010644695903613224423451909362115330240447873210611764083290121568766301992501492601933099031051667932405742515566582331886573655587824787544207139443891859607681824107137075434729080403588097513737598498346716170284064519161537904848893545712915846914476692364955309756352306540150860880057797160759529606030149203792403526473704760016239675631059434543356953403429446538788213729769117478907389003515289424479774874957852525025986157207254578330688482557538090827231989880052708748578866740997634778893885923655717271661227773021389148488104977648951301700563063514879044084066542610509980639857782694383915247596225540037477474566325589395121993619157893490068789124550309943726800432092157516827433718019800134360147804029651148725141070942999924383586651758400568104605782001453595446877414410270004668487211545838139764798054865832851097164530121189410573667563674821617473107942149147905996358079487196795419004630212719398460948897215134484137608458149264321271459245727172551557515808803147420151219789507991322973059188011010252776092449416205180389498425729777990847595495202492798297918731217495620597290286198161607517777081261055834601063009190572437679034109730023515020579361683689898992248985401566215303470566439223820608245517315264199565531260322524607354523275513391177346639005590555382984515459918364326700669373236447273021107132712680352179238260797477876578430478159247414633641033306505143121099311938313650279082269990602561044425168160974216667027806428149976170822233065450089021033117155757583169194984825400229112649514957811018414852028750135143612140491002237893408840683182731533265703499702607754236756862313694766939816532859303659809637492733034536138302142005077086359898586776959872936838166203989016823418548640663063003050337007419913287325700595526536478633861923299833335331139322103793326260840828042621217093714347518605827786091698223187306694974175062299633373709815514294415606320536806833611029733377486616494689951490181068986522718272310739159242624895476538950952284384449340826809591349111041368578806880642201589626371681474884517533413075139258996138753606041435931135178157449817983515445761640816082498046973726087994330883063700259087386298663947348901518926986956107488148651473470403754830681957787779551553275364716829859141939676364522193109512003372317215703959942401802062157147089748876640558621433283403509862433123592119443019570506127567541339281072610489273150592946978389219556429584422718580956548580831134188316436414228827528413473690652306570230753627921457548512767014062304809351423293948358865587057528071895728010124531938565358789049081600285768300469937419146873933970293641780895718805468941239433560164873882416284062158770059920770672274630679031418412373547117956735853712635378993173143833915832019313444511320998031441363851244381917359384015396385165760011870403138788012490415547060072579717180642317850518392832124397103412973905767725565638206301875420063684550610407882270339789941294124945968550013240509796739997744977964264477027031387629336875143705488301511457600410155133765417140233767983035444439523308626575055432143597310986503272428460851440476456601219572588217392115091265707827791974297914675508209008184508904605012402206993955855237961602585990242895871567246106517084706125317723975205777462258666284274953070914694769713165181208425620016260855078117775817386663587615233581048532590575346243611644447409185303317799690575957274239924084223979236155835652300801936811885434919606239410229615914080522148706689871265050894572674610675913357856876236430489796906225752948551000137902779599330599439296816670178356322088959270254958474157796200853769353925938787124115438603012033549909430711186028185182645988632174649462902786013861516978364419621782238680645142205109568553794338753495084030680959944251885811907844397666369854841362710050177665427479727006564009899905960774433397054877899695628747235798265319191955368843839481933704011307558123711199584278936858586061235316677643928588717161667854025668235620844146309649410920566465788901320023656614586223449365011473726053947371698055349124766853700737170146229705286416961735492201627054525972808552651935402018463533619672708350061060496066429041262656522949668472800685394903404945990029537460113401717169890705709475367398948659562857552808846116234728659083031245329977772082419852869538583578780490319882243868652164922341834106052388010954663146469830906319761428406434173932530352524021063999802593002290129753312982547670194118386959313101970354248387838987360862214212632127045772580166701359548996271716451476472112044651207225748050443989149032690212653913305777682892510215487054416861039580254603630735357369808478271042494695204281523519440259124691196214902521175202743342979745537212726644008052062314307465596575361705779893776164778632224892967141778392200463064191010295347954104799731935352944594118685684717806642958964965425460714791820771215501404039538436509863018132760917418096901032576570158827142918387692634026542651275241761415080065993520546444891401028905102065046698602346197143410778449953744989511954629991478119832770629059119015304449788839357687375998119315615925203723166161311995469044697901755929884689317055554101881862768762872105138706558935719990342354420608297811723374272442185834428186744459748687375682389260852841566623552324206353601986917341987435367894908945181188706756590785637556674305977357209156830987392175528311725696182372608633509174323769271984302299078665804262669992363146435084537198382611700855926936488076831713512665094116132743835454254606394901588351039009368261601214051447119831612570484724536143480942675708053515278184888673913331200631728063155194036712012582844647863225834617101004499905813481508893127565026810637787086118632748720315234237063782846131959069247319631736647776022720076290216756741068672647754000312621842722003297788237215402211282140390948540167858472156001006817214733217010281326878657651898303735129435703030188676624881898272929786183515099894761550165651264634300193405097206902426352432928582951815642150145185560794341864160126560956906627169285060810437724787797479504451968249762306579552991605405016580857538786441762457721916493977965079039908615729707987235940011015687633992884929671553065194467989678526339975335222382594078082384942895512863574252714546509682048175768147720088802341393026780035944740345434082455416414561950860131325809194814101490933348027640132925213936421960563163392761757048796048284117848007691032210129701557134862598096276216577544194139688792304184258134324219845047940879402330007028081902314830056229393674399551170995274998388552901427745371687040504040282034842373095631888044975695566568239436905431062802414186857086117985630668951242414826705975794048066348001379408312616227576648036049830315892769417990858522396157993244382004795013291907424012981372714964050082369513482822540846211644527129293951289383615199413296362616756754002018309654591388399668861187051943145944335357636383839138313933427600192508884698078138447058924822915251888378838434610603693871583166067048946699618456949000993720803489229714803293736278894879610728064673953363108276397296967988850428708146409477686579933969078544811896904299038017704235640777181876218598543361085633923607494299302209741425575320505069033513273339700339759312689476318060539085550184765855815199958912843307533183457905770900104729391027701580830984076988893092069931161052497784214704437308833974699757938832804761234643269395576061679701054945058691643516051645531653323813903995080152531225598946671611557013527443499537264747650650416889947535485242981257135203198700686704139297962124830833839143593423243343358852880528381106984337431336455127891715015765925018861800221939825461913539608097768263781399251139432528085450005995344431938192654057419165693791719940792471314746472208470763797273744768214413734596200195759825608378931296716212733934980520914233725326168893874451695456576698646849749394872596058298103257628663731841199893635794332542401015807616507030031315682816905871348694816816685465468710957840106221046145401933766242045029030619067780509314141543362063445036973144626375503719501751556212342105482360844844883376088329505922399296670635140917456717087230296374827469062908551734082825787791960379474763079994146452856457032422128541885276970031064712260625957972764988155300176875241304262715569555679358318967585322151042582332476881053605760933169614426717388301631907936653340248158105586332232076243202445440459482651770657824561243139452811604634263617019802225306279936133485870132163602377459728082162600611469328585967828929601651068155302352953263104935600089235611086160931813966337155665924663308062999869858720905210429756217383569303686640187977935249750608463373420653838489579945657130912055653432091091063713063908611482455492547176897150378314034226558748809935001959363821374173184823670297773820255930480024695404566882421131516224309834143192247974969146047265427538666527644585340465082616369142180645974564620105573355697833096901234857451899883485441220227730299464435314237546988215034967093248124662109849670685923989474762600227061791090924622288432119310228738200712727100634867432082283221546042815789350646620838830259771430471106485579471290767730416476720176858590281983281750093523736152465115262655959835266152091647027161264608339500983130851821081990167966123373396385080493117902624246054057286050047568386843999270780362886248780102429660365101549316170429349905940327292422148788623308929812643257738548725686908500345620502051443768042709698112048601636983036199888473307635928042239182749146663742179054786647665276812916917541124381041700271146313678268823340943593483601964925557319724750905868663817171757034986988573991042677139847890718956995903596939500109561910493518753490573162158588329340123757766692825143999119196246929404982220013553484772540075738470982706193298621238091606636101500590670968913024844712460789988686067323785853058348432478149374069552051298709149253700736488249294058662178867639118057023004298393233097415889461724668682582227252302885880128904302555186742519190488777360729407646334762717977509599756488852911886847554062078178115677045590746961116721776413107293372459168342249362952170306033521892725729566075574508427792770489116536178969882664427631483624421504241578083338321209557203818897363048606277832547923982123442744825168776135262829586205866720978957607881177230969582721189879143510003847529062998638572622660813283352880699130723920660619937287896921439831270572048138690540999696355764618574573834317355960111260391279226023409490637545022677247461445253747623791109377341659678193588930095310243032584872488286611448773252159763600600238941851279350574150788404231361141895374232522709183151001122539403117701194638935364802061188119544584957197097097973197161339400089875005026504714180695328656702445352738856312704325031457314081486930699808926739689556890592841197923333023499922639941499550258069827771533172376859819518358310083953374500156245446453709145868639008570356037886988070044621369619246952438394092202972243260686856150192938395259696241493722938755322101709018205832946841335820706179151888146120932147741673155489619341990993693586707847243335671175426467463550582768828878610515936857448929108083434741236896364169561490945504927257846363570705084425698931324711582238822332380829660255430032291858786760922838849716323598502872287277228223886210230962848288404451142564241490908174699907562056856940368178552636018048112703332677166847362876509047697600941480260132087237201345574136244390443881069879693175365302780162826225546242605572620603168434344337515033459708966065868385349362287202863348936099256419082526518422585376547622928962494222270540522188729905118616791533611471316517460602491561923183082003921846864384267446129005407044586174338834714880891982880374611246107699036316644452044139330452591786146672741158487432526307251260585134733878780870620989508586828069697276562447094663154376544605690419351873744651037135439780960275226397874324038918791100405799814876946538083074145371535275917292192641109584370940406668747458965359542121554080213467643590287364287820528390384532171491023582072006229941798288058993130272263147761126258457940342045132585417829868711126230883373458173160385684793116106663756742093171235823566972591007222686661870726908070304739955492475536702936528637936059258314349724835677193150274343103197598213347301410126349173793495115765355250949890882049322882971258311603075939250399465944224906469660797434200821113387541291853514241859166477538093331147982574249149431065414530267484292550700741741975711920555985091676879581577114927233653214630929209669333914417284536023487256963543767072747428365723501656544685780547184729831214499507932085796740299608572673999933475207874199335579749568849016690344883327359660312614101629288737890944332387200200910371301726041318911064604261223295092204946048789193874262410158271482868361148937525994558347824623375259499144245019004486622650866710866058185230856329591365395236486783815853056819868676835310274197918282392004605179039906546557624025912622415172393647544819437993620501863622262399964236308370535863061320417600178545405254515359870609259340821715706980967026391668729075159395700578360358869492017500054537798155033967967770322280370220434860229291608333075346294244352890515481825550577179826857465230662121730086889955948386381360838218801725782736819329926573684178707842944205538830936895420398393321088253013009291473489310728994642091033331768593166792644477069827771772256832479675457156851093033984131031536307529268073763888359564518814374743295670873568168474410124772867386886867351881196918093163631978270583211179154667384837929867361689701863653016529182056444908938459557963214047879631445318327404928560814889502327730428033645154954546044127236138170556788292984423436538511767218572357169401766473538163087990615842802210679329050367492283557688590332270451219334663337151825490284731546171019158336514436571469559826793990016260006714349206533472737366186978642428096670958635028134276399740481854210214798745693579061647646063719994161785048200032582693148033433476332478143134536152052875110523688463997819269119562406303589188708367269759168159048236578365079891664783880164875169800660146820980631648604724108655818769876909459265940562345133155950774881675075840889118576691626673830080484596426174132891633209110021462724276160863869634775154287247287396713118431431649915649519460909496937924601429672780099524390316622297230738113084761264940068761587823807270481482088383944589954721589247489336261734120952203317279584969511403187634566086550405671169314127756279544463518025540062422644644207102894352810302392469738581211257690255642044436167506573420933504002451173303268710871384052715583902195770645992382858474104405878487971512754926990682443275701037137723105755411192864738727284704604986435578128946731888372914693015374447198843856440006375626169265612814768645924678617927514031759207990106872932640999003817138485081303364226120530820669452424852458875649791427985591212119472552880190106218586972417437977415812293329217800968644704825132789387141295375220736833741930570820534434419064025974626153662553049089193731309034816132510027078617284180044591730139939664142350103765919784692838179776396300551715319118935596146879969412600817708679777573757693826131724081907991338166117280596775989079045553500955075033890526087830780948278793285491210030754502301451093727802597355098976905031603194707498737509149642733960371309734143026548397283958329876888886444054411909261174380188453205834200639536314373186144985241844337619462878796120130298201855329505391304756603635629909282280735795536827585439677768002177659288988252733603980734297135548957331273601867873401915226634129472202251665842749385813635676177724492244736340445670693214402106886082927490048255986180842686498246782182210138989808952531268682871125708506126585032024869290632405947034386165527448426921090193796062276270640000168129671238633640217989020927023739911518051172664850940230524560255575108652533643247582298700635876854114816525602320251230557292379136180511544494269235259573796077561968574706972656390152879837242819534001363548640733941518334575097947894741948755009644812565075694771321858025240857766455426710196898371208380433651867169299975248068288202341963660808066105385050391049444048846722909637621878552924429692206612564797041133572350744612212987213476042764932231970202750960558424169022475089974456492918723518369575304049733286070454284304198883113708787513398578537281508946191589829193164842286378064131624687127489336891707483067945435806894022866573736749376320916095677247698506884523854017564847961825336637050407861452088142092298609864106283185484145856958894305102857394507241107588092658929320588448814780889733394564232057775283243038091434680648012156703142560285418439734201633339021106396557224288855045437905861914895211420244964433557222318083471610155520835005949639320104371154018916448385194634847665669489040932148204883783545839689859655083780453708567601341114104887944345858827332128772407847932859983727600522642706468637642937998227666759594433566637520706592665935347928937209461473167552601228371412244505211093020326064153657599063892671112186882072559711260333475970024381886553240090433884156549817218446492977015285524796708986001905569602110457627525682941428128574448279130488411439490247939628865955903994902650008242312794926143300216741938196341005559925570560773228303627321007350647937017398307312536430825876082832920738513954237351430804824221396331621346844607247589246683870026555063571549264555618014116224329681483296009413883598421084728437407546697621466706105732665383072838724306166001792412430669470368549920782991842652355644877383820192325870098056022101715049279215406555354977361756853654203935325105490245113928512175823172433742941009619966521424396250896988666708697389484730521817314958448870491366066472681140533108382037643237126685445821976879129008890843111122661220399968138045630318445610551623043178019566736401617526793341470435112608866227579660468319717840468084373441440882846324148599833018310281357856372069647381977604404610242494646711611770661401723804981457126689657120540001055166197557155818071704205183587583293172776222154558303184853825527579839689610292961288682398483036528408484204575221062290446946808930350824224527071448068423055418649089513330435922612336997820761663840275996936201340846473676563057095861470167261666680748069286196815182539489717709727162114151033820537803568230655967928711871277819712176457095297445516830097378934741117357155119050375113307465228153517349057138318182848225796815494489937579175492559433967879814737447073037477465636006151893278271992056305429295612970804770488889128514326948982481707967360290085126240121194365009156181466871686866018453131943556821166551970128645083490886036895009297472086424821478989063037996057151290180970856949525352087438226924117115856644991406034508701529740135868780336686665745971549581471579703327459305930990978800689762038465117106600120752264423376776404995970620815472633290465045616529221291158977161306430818097732419802341178087925474247978794111087559731242023171103642249154422878193151817464349235572406722104136045515614577616997460055204076545062912405103506914396148327454897172466771909713146475855247753345427404909166220427889446071580342241504590528013131310026206396409637131893882161012276558880340774659525655745677516584403798251130678938298975805081533333665759487388086098154680342810058850178494270399323548882664058603906430799543378453657165135112049312932338171228151446761087195698277328038618903300560446721594933738642452711397463483154526302610791934261490642459566074657704210446791238178956593611337082615740287284163160078623357518084732387067541193135081084095083615123269028044049584182940113243732686180878723816135098801485719918722620327947739038409323854200629918634770601916041763946323256684666428112896261636324541718935781535382355160855848626542876338592887214707164195410363962607307046982244818250138473214734155127959893670570893147013060607492047831979210630144468455695422309464551504227665671466187954765604374109421864871441092771477126323590985647939241069879037468475454100389994765589568933872190489605363089498875404635967664659107592859076843848518640796759346701952211877675327453787909994709735151877374675908021601754798874281194654247677621763102512541313323367301738769203982335364662110184074798465674788433875369669966084750780660350343847992001189757521920918808578706794101612058490521537753864373503199590254595057805817946278545770215017109470790238094560114856783993991677257275164768598502368976200354987480092067063225459155066459285900891643895385513478176408782195082558453352793134829945257282045698792823090687382087953438506791018935239596904149467320207311178993703229319863024540810215224540596447775575445626041282088303157589577743098235628500161179237210187041745808707865322354104502681858788223433283817971170443463264805841307742663743381368998885173381926588012183813683776635466950966755176692015476038156561148315150005050355475366393982249348885198441153567315785853484823232966901763396923828985026513866183164000809916257951106299556744738370524224288083786736144837976257214716318648226738665815260807085550341915777834552975144848826264862580022617023139235992160745738181450548112067647260033438092954445933153419654521731813461442282197929063423159024140449876284321746367223524839836001037155878987991781318746268267611091807381446122160786479648198676575973379377467838688937127129312814555150680465817935944323556145072546660290254793863806718424793716590265903960455702773519923814123126699786995093458116207523492845949500194846721104134680234491225299063316111132287273009624536958888445993655355965487439947714118990320322005616035858435463041272841889688308767442060316627741535510001379159086539972841516150266733201885771538487410296797856498196702418799466644191894199520034221111517429355006379939588762943676639138466564815765781535239869610280544963219255017207178140015026716928485936863778501190294127785169319195602541945506159124409951233830231760459501977774192442463768385947596657848455118600565238516227193218075634247983703668962064224263132959256624963967493073744201364322657270181819518954077039330285886829167717164392295743879919859105840300246923694928147215448843250663077932869224718329606345967599275464225335418235676352979854069601114316143753094619238927422104363336570800534309816559189871013140932458138664641419632114435233839696161329243065907328042441142820691515910228334970404735214652176547488894665388941516970215872084545608632864809624986973380241486619399230310045422227522636309035698449304043405036014041728399490755794971840572343228931819790166255488430588376915512039057894965087963744102494012883852459323931997737459891512213131644585416449739458033465748131640274839096162294620959177563359880700623038951048284578380222961437410681903924357239901520159314853469044870722257122196378252994654279228557718216003917837834438697655889687175013701584246098509220631134218096553186330590194151722043972790376943280453602044046547863378132428449263286054525007522037712554907772224358638574306408805201244258595415062780861613452086087284131258833993412138870267431151366507378989425632412493984735553156727938767594629587299886829074757094456834025685836987449755041196090090971343666031626882096367092339566967391843964939775753250438359908575766992503051930361651983577086437580546147702702866182605037189872428793335186526087110032010259925675184718773056640364850332023342730470234917328531598752394138061882316937520760832527868455313854183738571596137636198852534913593234941406475508691442961872367531506074824191075746263387785809221444916338236897774965259946239166669643494357303157067997222161643416368889785158433067897198055478773903268159651694544064455129467280920424727325561372751459924527758713361894261124189879417521797272434670824344814062480493711645442414036513731416039999320002901896888655315770979784511331582699042381156974597401393765121006694372055509070620369207967087901435934398350151499623653794463504523835130071653449468970418974418019942790198873995784908965120736709465098693297160355255672113304281963385184699440826413933557960009003410364629593057600860765908536695666244923991255059665808768125054727266261733118348573664137466913333498322613951305223218329297912583314910866530122625252733430164792780382473530857069987871525023391532947087539002696337410229737862030256783658524471659498287046262211744652390129075452249096380564636261072821076296523225850470937297731924236246067454974142222108831723047200694262323563657359366693605008210106250475153603788226628420503660603385187430206348665229484041611631400347171653893453862179507958884386249656070438474520413136389941180127115139515363255875606392257925667636876811371452527329693124853681288712979154088929091404108536540007562089652309553582321885226949190197168227183957899240953943603139613312365149280869637849463501156226596244878878161566553678850402629124407919350877624989048193267971593097849796507313176028799061003190058302701271796558588485524564604433395850688717183341351386909558591841294605441301144909565081407510423722133678476638102400676316645989410131000288731941286024728904492883838027170874463377687405981829728520996868864692262972973941798457886531618626720578421667257271631872080724250625926373859796464119671901263804766702972305227113974723409931574863294058630976512546059711341886541877709866123703803627524378174084304548068184031945620553055548242070432658025560273603401332604839611628415480154715828080590511928300239824301321482703995664988588034536144126792711699195630202077958301439295772573866691966175043885502070675922218349444037729313592993954938510609577897528267917423663300231717333274121958737132034725463462231482128905209114597492429362410052038856290455119546939358015921004155701608445405394601475171470722119705720084483020562157672270052085344703334761571789134201809662383091212868417256526434941525475197150058983991861961014621388950694182442445369904456023269005741352458127650574563406076666103307335044907503510552119265710661820693833882103932040461474637724056206530201735129354683017053287694331462247216869513925698433619235397705030516298125210850340348479032026391622908337237265438542441526404573912245820539355442652842356285876768438227283004872001559693529965047128092945045216729985451393967997286849315366751133364340726892870175356666729695457651756601341427033041494567817425093741488742202464427574816245772312663194945770465231026289248186816929833072366885521203565649890326709302063663048727253703798988964793292791191951096132308134155472652738705615273209409386651629600975822503932343862925765955768883484784519382452296743744322844985098781764793380130648271788036140714836439508770396596053811514083402947158043015027499570387944072791936058344510136625675680794831968357983725313977876857187199488561618881531807777344523354519183139420011023636714721890270577562169278529988386866057789534114104908238022809234243729155988195095161378673019410456457449851176123665815045229905430780560362700030589250090702234368572855613455302310853961037987623738136212430236970840724531305107579089210481240231126795226923166239422901653420816378853896547465688591946349419484166559105080504971346259806383929270874280110472742137947517449259451374790032782642761524076861166438960045784104058222779574366059459321990806391020088948904337298345900522512068848207736434206155184727795409855381019714990742939749139163206516661989266793255771178182678938335470661465915360411666712023062469408580800999804079672446590176598118666384189289554482983122616483771299776737993378048052792460314615294032777120184348176497813079214408350353808717448622553863150138158522018794261369315184502969896769681164148289322650161820339021658775930858320134851398352192272185614618051494713526085948455565428912942982121029329135561188403141532735093127561335095965828929123155957457569079296921729600492169519502495525707092435235998648060189184329655995889942079434476611433110577161837152128422001261607106892418156325873359971087186125159914959768393202833834915408402717408261239957524889460432184527901281060486665654684630077613516417318041377561458203058015439978432264383137019578153368032111595690007991239747467610229560284025044564974311135436917187245746832813364728474953902918823803120783838030421312562500236922047476008362893046301390979740005741371497571050269468727844543475722548971062409900461750641338972303902537314645480743882038935997467918143804825679096632603782230871570305876868270799356732060574928534463839214954760197107344607797789514183850619772310777821674297889407595173866276487259933198419925999450049805742101379953241862326621875833483047723533285422975773377165406599925468154855602649642500036777464777942684742130228240101444062989608359014193846393571793195762992067124904489826356891493116989366671349870978855432792283556071094245582870756394937021851456062815789403888258710850962639121375871008173598424845361852049793951607851201435061925576703243461105701460112135947018252171411975151305584185257429873392098570989410179992608920763810911985748098212494699566709151319954976599588765581539902736306887972831359881600571867038963380588413715268228991982263117742629141919810330067589016180290360804174183427097419009223175482888295432371652999392250952607144561793651435756298627516930603408918603008979616764946311058083468439550936372362648515009768253902659051647975524444585718593748007526610485150272025523532717467592214436131051175192422670173380407862688750626646968948046619457482606198463050372408837582411662032399916464062100207479240489591235846160320290442817527826871400418544462401344057766712081768139792588793747648209841304730961568667899600338482506440458561308449325394921121131828911488199243441400287418682618973088540870042371584396312249197090900101419431212697339749294513271193675119779631332570276941522378720331844870093807796215637020902082827805074791549050478377671784536466565504302918456563025250782291162991443943774721754585604920814900441777530380659102204421943328604420648312142058163946266843360085471614017432779714748163119532386928268675852621568647670194915603015186824154179762336308521487845400736843805739998605223745906426959356446682373486993892096335065591833914535035877577590682199755361180197914082345303576477591742333588680623241529271461240103647099572210172549875821466646838958084246519191294142299634759188652678583986102296963675225069859100619713840088985232555731189579526517654922518589543026152233982704383735873145205838851011919725953835624460141156057322984095280737250612214930322905708299372872476609892900401112835525290642004440312192240169489845681865904447747559353620895846902006072994763565717150619893232871751127570081200611786061183979395104319703530541936579818061422737635297588337320324270083343443336010887120032603742523480253589968120602449918154123179019230792305068768666371532258433764648076638118295118868300583955319265343861568922828161147864832739880320642987119876006765374469059610381568143960552562065168440809882310666788610908768899441657304082640543718445532970059369531792539249750360549475448934594814163770110697499394969202880709128170518906133098343837237473141790620109017870095604786942892352848694813192174510142046167777120529343026324318324510540300209862140779383014194998956364471590261168815284041248004602660571011408664095183477677619061203411735506137459750092781575618257772319237169389896361744930990719138573517061547840702627163938603365153886723073642268392484099905951705841062516005249917587824103148316828254885334710751775878662277692715105486584301523664095866158986079102033017287853979781773442667861717470844317579677465606773582144922475930118011138063505430005803329577263945738729298688932115702638808244322829417143739859499893123797360939722303448160555142697375966379889457342297921398511791895933451614156850529004878338276903773093788808078957199687391521704695384795532876458316811118135177246545476132966524920751851933447983071950288604981790172526463059679279080662849611020926371308172117363054997944775430374960342668368249559818975614871001261990782936305422100477016536238865409272165065624131133602431892891722816277172657079277809603841016605393341048926751658395009340446794105840261519123038815961816642121855623640100887805061240429612461706416586129508612728202049535278437268626309455274745057243912174997756302025794680593094391254466224792444277970321155667689378558016446690498325959848188314610401183814069555766549918399193192602979644402639094924790930943159487744551788578188539414747403195167066254148353914545033644328512091746819135749852937882715743805959533052651697710190464179817704033340174339608577624345294878236682313528388457176035480029353382423401126750792602500132751142265997066713084142641899788807612589039368580035065599410868476569737388684256282925420761961893255671669552455276073633442011567072481542854751093817408000327879964996142535930152223828581787540117841332847779420522207631911470943869722408090122898218270458335164452182539739095130380631596199961187956811552580111084169554929658439424372279184242234220921853077712072413454985706774895075876835145974180327715998657741518785013160276000549501353705957465128506615448154391475808626938660607195359153100767952264768270255510733457478506663959746327640483660423911536791225860370964974472170188505960602566996403636523481637615970298480628217683702703680622141814599616236523998691148961546461925094606449214842318881410346040837548259659136318178924714979531147401215249564357162895734137162651717146805744517900329926306545075630473127536360675976862740547282562668609990090046473617980676955473912924372045356705837846261771946908426183403627822679911122221563882388864906085938028603763688417667174587510195208183055752382830088636291158017912330417573766171768831959610183876613159696779202171694048641188584330190846423240855838929088292915572714219643278955461702322818130221287254650775495818662519938996112373923397703178520485452135442763343380140462170860866753938373068857894745805490484960335380050558075889551379348809809823433181717925269662311427257023272885920191109621372483423539468788875304080029695748503072945449559017602934692431069725034225439641071299225772826541923795477284970579760994058818001226528168715477110780054660584019896270171740257499463476519306758102023755499265359167207628484144909492730758231654626469686467752573075939234720205434036858564286522766558592499498257401056187660415331454042933619347575838618845634266577198005493163766783025859472858970192804948831876621264014577313855387348495566537185373795199116966268208915072780670117174721757768420793316067124464233720308375823724130743603903440750589684706443128071895833628182590469125918916921554183420604623931996912653326101026085315655814999924109059133213470512509841879334340058038502403671323920395516034170912243796469778743160856899585416202956489010713936974973333860382293221463262987842517065452213389584770514544099058181535563386424683790339291572891682895604260060101174336188168454530504408345705944916944536269364429379492085632275880549336873948732921663758983612883031630019358426791327674260830639091969222856356028954850846831050429653214638461153712469718397891466319066252076036152208551896471617906200545892541870086510022059328863627574558755378972720213281051242901087420225000117019547700115121575342683780576316236551858314377012544569982025485104186553757920918768355764753587008484439535419405589396733799805851285961177538261499584510969750727416053680028510734246515898234156436441025249715595163102510598884704406676510726313014284530205042535486607257485786018745443694821563997654883205205224873652572971159461848688794852344163992446783312193822366198424393090038810875113496473606388451678083855587461786968105292485258625413546339839634080336803595274117956550080062378692147212599632406236898601660862655644496687238010839377211324731014566417612453276260400654318772454670716373261824789210887319706187604187586424314255713881481083351559602220726283991497711669426499988855227176893574248546512770981724085625373456607006170146662247642890900152925496624432729886203621281874220288451104552863211453596863059483032429308368476489307495127904200526664696846056318561695317687649822202850080547654224338250540548224449882043582104994036607571774165481948240260356599891315026381398662505482304316231013982040057476736664061779797372716782617512955933925479340467082890280029819777395901222009246427913976754449076569087760500445781891884825562020237524670541475303129221385060178394360734124503163171603460066319959219633571983294640575883680380360701713804844190096111027227528087450052266867215388506759981178516434129736439110103830900411986541801447164505878576034460359866920220705656157589716381057337845834255969788619591262534223409303661284549842230362346338162099025150678724422976900226195430264199148709537774805468612286253030790503162402938984768867309199969945772999382390721810804433685340387238535574990926987844470276803298698600980424878040233382459055016027749916499620384412911281387315720608025734819116170737372045209737111878010168294792411539044574513156824482340699347257566370157872211641734392104013924474231646584517482961613790905557221249109454801215524082528333595378365581796363803803394974150514078454566142501833596568352779332876653548890673874597636667783800906369691820468950814378579072785126110707237753494676738989296041994372305512178863826139268156981361030275421780227862872077778238100147024255507442436487288000537856512071304897130615979228292369374675641799091030961449571872876179816888761523230853929386333576156080418734439884220058724038869042988495378723129984279917567673743507364023491866720364945816421163648321886676802926448759616370384567328571860778633094157637218545388402813074015945233892575894767459411525455800279316090605585440270117415555344934474775151438262185188481192567019437347178260080785343074166263727682725740284514366163940595294433385185426015445670055284816959866872217411165087705294348037410396217984870913742245456009383260464040057052383333082745588917694227648170035599949636797848444013635384104762167067080637056023020225230991696221632942665723924669297064724217781270517430911596683912955238142554852995479746609093400855176588060977610632221482067686779717926184765627589583362724436897672391800816059300671601542958226759436135149801162939612151074916960754994541426328554160870008160959729015375892257297219192576126271832412145995072745840322690810992326687394982634555017218005070155796330537318758226926118647965486021752717998069482921203543289129365102137141349308693638680507588459931847853363875033332314086340712831239333529626344535215902814168222514761379239036625554220517134645202164316654901284059169641348737642972716724733220189785615184241801828796061132607277327215860876369618617112341512672020686595639132004447108061296587577025623094955100587471792924863588505842596154688515190555178040272286144317653629466664869392814387406824460213342860002228073429247408497010283610925337912892085741419184732156051843941051907035361227564318612113981322507920168147854104529285218306197724280722887954601651605735572614737029854329500571734558437990738598060497500152846505612900267734348951073192883181861418701783812014010094809072442767718527465532116869234820714192596294946633067812974800093178356768865055866407812515119480324062205418074408613178094244978294276201473970609616751230197115240476192207869135167048434082439081290301451297973044158142620362873209807734681410233039102534538163029096654820478269008365811165660434660399227854559203706274207341229106943719899208772938447163202235063306898231738132631786963302288629740207438017299930689495514087177965730179064867362217108067507189788068720444883439846330621568466037709553030318900297244078179473524417051697364034952010856715674171221977322263746668139949765894077503706390829257472141370244327176676380077243675440695657852894650341669786941239278828698218577476726387686218984916063800232796269907914279928895868984005123218343816585835828437609095376663236099356742734630320482185954454037607230308988553467906638497584050326405998118772142464855758625870164342856994804468180648676930436130171336312437529047321130989900059234392418097502937492691684325487881912556263036577406584677804481669835313636175367678791528837596677308152745329175771607065702901093669336621130355869637847655017996805403832189052250946069460737273121769545003005570813303051175904364951276680282426051159711225518494049804462656620453794328346113450938930585972290535499089979788564352157920733782393861516133127522653347975447882052948890895479050590635209157052943368511975863268882848230065305293171405366383345231046799625802547077802576259201457965178727584804177515085167939129514289733930507239126473683587511214019461946916652783567131239679107731960619262603904090358957978276662208119528254131944421904231487788969565571344124713908801646213041215674372927186744064466294977868393743130477506631162726581226828416954188768490901654115081874079772736549739210254661741295926708304986317646099676912870786601172576297604300538289977287825143791827606749614714280526805135905918406841024849670842182261471301019234362595477838153329517955297210974478676121903177272711715077240970969635068154798245008399805348244516134426484423679807746540721372990806787424746375858605468430845239276127384125011945202450476633957966122587156964870388973297550206096366738337178561849986541486758915355692647894653051416705266917834637500926110375964316408132401850110950661875278035850493338094109171386685640569110521197886846701247569324219276219143414577884250817606674639300692873619931803336409705899764259593778082798348788586882514234409309283964870594252531934354296743388747177893941411855180631406617662622907529519399063090075538342404881681679863554603669163265236103553139375700908754232523479367503484783024144378028216303995696890374148728188168037430315006449337861921400799605834166296052564524556877932009032687256816195479923868950272631288358520887679622203716197494640730978329690427605335848152708165131567395870651758512244308554480623820825626680393102723534065595469140919660977120550637291023165252805357064830315549967992196501332032099983147830985681113161217956551125399066409816936309832889260137291807885227454682120336237125211031712841766405999436154077462104853499283174518942847254570676805738373784320609152007814189826959438694806649433053525097251636669271144704357827113192636458099770027427880260218277694205258984034927696260444631313106429979471691979878205063720309006918898875271865709350891728361043418838264901859990064748169989462486832365553855444702761730501364116510283954394038499826728226957867144679596890028826019808815646027101068326978833587328066553218081858487419369417371457400185450370878218317773170219607435644890724530010557499200797538897957309707765916634941800691803067092581547567381830425822205016254622487246337234027950843455578616902905266170533942430319710289868180514612797072848870784667632781373042058205011638136127330097026583856953562338692355661422391091391059978838198007943168211051366532490007908043352006871113402438243357073634899091526621053278775041759789227323489553130086224789077905870478730222990101479342954780495999751879703185974566887092182726628529656447731132607825074980435033906091358626979169925874256596891986897997328198261626999347510387363511799407333842990696975098669519388249786245789876851831103431168527477893673530204353677249676119858463504547582093756168202733262791789738887586636081621810946016444255453438268742863228778576085150400063786945041960661698689580278299650078398622031761588039353767428168757738596435278661987095330397708486203528296532194986234083884342284264647670879448183296329817754256026446660376486669688378573732675355962852731238116687075820926266395843767312872657331664703425386636274490320176035821102566861496169675947780803579839398428701885995243153433767078699143118219636176633514879944700086561468785264211386586763476248766200766246660560324390469824938446859348548970060124769736157847596895809054816946992788002429474183083034855491102314993403394983910970815762906606452392679201007547615880496260505196186099948726475782159833260777757866971870586953990451501514400222539830397290507486601924324115067646695374618846903768870442347264978743699739172962089655985861840450273992117153550653478257678502003217103353250415391534393695919985738004139077719018172762280417920975505504983581528200688681625424951910152162192974027863040079903281548514076141046810496905378991923408162798740896997468863429104730595057939495870321859647403128751029173145558663310845025840928531578277411026094969665549796636426159879579403693120197974029613913965348668444944261398429135823027939120478505336337230532171209303917236380161016698161238181505716340067891536099965607816560202027775866331309887395640047642062890282583696239128483982786478533902518042580591632356888102623140604544072106373300378658610995386901304685402250549819383363603454341603100878035599027599729942033803518787946070260730537942764399531974696318117465926240153058038709089579670274204813564675295478295032531333034349432926285290213792704544335706139765483320314585423206803962208501036689120716716493676475947412627543024996424052638334442564968538838538153749405802098841500447818050301945401485011387846844753704351721258226801366819782563506093069321105383611759444297874210604590452308799502669310276379502664125894485585717880811183542207683571093453207552380192212199662352176249137967038513750526974874737302783430068027426284735712128129241168557295110493360438751372385747161927445416455495733212717330748938261725134114249796844311563394125662875095542489501837923173751741014968335207969142872832078553287964111053010665901318900560050796682981636637818889695430532584165527951057098733668367176036946783711356459397668400745666730263001728735223643418249256442052999466883486649217982916951470890146179938248026792139282582527362285809232440102801164429148153391018441339081676855285505407033988628165647800052943684951980044418430229757508370542696596869108584705275663144885096417427850865072815308596919409600429839914196233115293001279761422483573233335103837534556147195978139977461212662598000711936000000580578671771729788758161790890551634308851140274679502135342377548493417766802562098921867387155573858383870698282735604260744141004205558551294958433085289681277512844075713182407633708166460503433941681599457954051593749450142795244776440121255197744774102285502246541960174018488754276653320089599019108684035172914604317489719705807501375292462551284820973827398773976940812882239726329390046012512229727531390314016359622184222483138675199885470765068125605324378184678596040200493638670747553732506666823075501875199280874831851969563387934251288565105871762463252856264809941118525899388697151743232402552464705325656182237209899178324767555673591727752171474473943548383832530052933314621627658083407908069904334395049878584015248272908413092644632186969324414801797104639165446499238778536363520540750568400644782722110380823448478907071010379325465627599492582346386499462204230361836900882797743060162448829130657282313266723889499881515697726920876199215874067277156199893590024087987946103640474206026005544294914045435612508021970753257533520581540560891962764307886270908188187248748593779875413747785946901203943078060947101153633859515219641084163236395549354153903358006514210367972125104322836540212234212906264951393660223134999595354605228769516555587557010969738043412606644145419984491434538180416823304219206191660244124545764410264751357882549636279818110972360919335371355290621402336705606995665844821596472891961432811049841309931768819406444567954216377631981985183183838148845728014296833613826237027509511172857059583108159437782922055470106707171780814004719521607097405623052914250642973801760412905601000294269390758206796219746104230459828114413617159451711313796100196697587089845245871391832138024371701031266840575958844581707723504110294969205794929865224681666047459035310000606303671688143957853185888930139363002798246176162468642701476143747104893861774958464063760811705086582911160304663087986731629504280239895873899081072155813184780368502171609889620970202115626812697917575047943771736371501603536632310077915448996812392947004066716259525486512889178775531632995820733133964213560218510117531084166702842562222640994660350814030703103597548445323858646243766655596432736628322924285119378897377092626262433552782462068360330087706687228053083216878500624972838715405516366662297323456422788347359687596406854198055402153476134680053664618246521204492827221519825327684046095285018728517792950984798033635868764291094861230277080106771628721396574933106887698075145345134340617973468255739014944431972562972337229384774987745597855938763384135839090123526557800441105100848156183510159314539582159280581858849249809660574146685645988160060988334469192576899419842664006902719743253113586635279188308595203012041549256096425145101984631528900729899949426057671519349424384952773492689739870573141018263530211595135093364188405003998560890977244008851455477014134779600704289511022942115348651236993420899518962348279404217321776297991870558432417722816329294782213950309229867231385132748042776106201849539378272512863377319153900698017798572605293865233623338060333325758077126384779284702656705913836727116388236634564963743328352194624776228658080339331735975616226965277629884477636134644252835544122427098595804750825893680750721050648375746270192356230216914357540034383199806890115858545857941067677932745741972044972779636613004957988727040830028207973604246143243754515616577202778163874228656753737671017272760903775938475497336313339141901865461732049616110109709965609797280994143944314117840027326120791801891805760042356224600605995386862834322626960803766155162163512082432678760548496913964592150785967940300495101484281917824441715952745203882212283462525451695745309477625066060034787796466499565503389630611740265937392233244551940587243667440534159538689655380909056925348495082133988008760764781146416768849492093434850950574653082236119648626289047249303198946986459383339918101580401004683635866481126046505445647064863996703515384252820764366086955279138866259861390451622982654425593304688030337458305221018377218869591680831115574455384634232770798853450931258924442537039001557214438667231742047510147716714780733952271865299505439632229219701315219673459916124279115653683742819408905983907654537008104444828317074619782854410711215989082056195076362764617456833706544910824274039546798771220681197234401636544055652239400215725577613535331717756640622177197948857920262645029517180354163654219569121024477082900562654278367775614027053849586972448602434288493205466247105739564145326037093035591852416415083468887888965964401993336858880302234060120736116004225996094535169558038918158317870531688634074953870309991381513490018043576213282912995692606791973643304914426459335590664090024403589282199134559799639601368104410112369249458642953104082955362754816401144475794842021421926469873776355505641814372456354649735373974777032540531092352748554434716959676871640469053544777360755592170720696324602429267812554945077417919753533432523044757926281358010245176794259940711274376847528722189243459391369530096480123505480850877576472326670164430443003532172612071616291909870163203313544063032800371138489593933519041413000294892495075395090292908521378028618663864032515749965374307482752512428544285800293824784696428835614828827987594503358661384968236424082868990114659906347586376600373072045716120900524130258868766846041272870311290585383873621960726786769554694135430762413062774813371906759791507774385662550931256984252613269408868919702671709627149659400468841935004671421994250425328128883748102150755058701337958042786938387538529086814663220528236340380438258889081808443836375160367071343848655020751777846782548682149591426607384172207535296735401891652012644649247494836859273880273725961046036516872041416921254095286703407372739909015699876797973729150477947812360089430881223120351922110420676960882913650775673825585030413720898511704007799778456244639777178114045151504216488799558784779128240888401477091125825262511425108744777619763935180217943811821411008677082720302358159983157351487496142776736545644456076314915763915591183150301929555259951502176811987553419393240966257749068316665453165301107410876345571024788473758112879994712251193834862015840682865243070142155870249658681130762306502473215791535301316561834178611960017679536076036621166115054321868831738086208209432299396742658304938941414126841084305463582850527090814139758850381872328695624950999478552375606319844510498513845292971072384736544799900807566458303738792696401616962806910454801565050908153490934555517774730107092259017513657060867069892172631091435573075173354512325164201631580227971269915408950558019172653528979403156071602950929761234189724358966734695547552098399770347999947948805837981333201466051147820249187625328175907811939061928890666308817302578813410554963768794321023573915241881075686299279129433631818630372594208014438441303084329345104318188102697833508315084155423778299493728801859692373492383316159462893686988396050535168965111939132822224369905146633871759923358556316400685529935466061764217766898802531822049163282293172271478909143409885489848538005344290838810100081938116884337974391017375196068157921725320702764647269434987735448569715286610510997620845358894664274735345428411922012218419660852779472287559632655131742202604672593423501174938417325582172000036474364203237999411655026123273201474572333974348557420267718254994737644399589101180957657784438272810153660242470938183586456582585645972455881396051082768216570502425621751227496551483445663881254925313892219045478373304885100514738086672404150000877700709510854959576944952637151054064995607648701882406966115795087427072077652928581127140031217568511220165799932581001359452744474600258119552698074125806444568546978161938571342082469000200996688366811291701710340250348855808862599662344706272196773104620743616708233897779039173171070645400414275790017240257655510738616243161244495869817513118845198772493195344944046946648446312471714653298428859005975841283958057430131076361853106643122466621762081010921793472360235570217880576064380990986416251791266276531014127221661744524554868882958078765380698619725361769266152153232399382934410882225970121616908359233598876349959426047397241367343322212735956084303578404824009697879990946228647025131038147020709527402243957379399927102170670714130484365570263890894419539790657179100284577051035807086541949713781855410563361986745504074968782872747032526286577068995622750282533622345454339127191173708348399406935967380162078450753892318615439322777093066258946895027433928628239117346559425275055265161176125659491636353147346076286973831869224460341721513184435485944871651827290690620057009701754601824817128310974539276341818624194254094813612580877631487023083617159120590361313743090687786584589973453193585106500652220429577283481992170741547545874285962216934596660173284258878782423320329095157237011135762923322437885849499644751572700356970125487292858332311003516570659215324350173106765389057755063736911615626722060093918029322550712081611303725030353115657927271784666392476331768207617802626873782913135425132577335749597736875994014271663257776186927639706764208655461964121127047305203769194493514050971008291336919939693652926155909327575538133594450490463341324587563666591999340903346922049238001472402827844334596865773241359317099515318852283602396188708528008842325374222395167500098918995691619674233073983470828722110624213130668418214094644787835235915607610976742622693901521322060620783000406763491397387288601699172653283972027948733773121824770442391838783772743247047808635495846501636535150461346707923787236236294296388994613921159138015174626968670724058666544046166106088675558709155180483894251147576794468859469106682140285248374513597030140984146738469161914035846498337793868464534146374011123939756444044273031298812264916940795681591967717133569087077200836338740461162213286403611499073350498796581396389089989309127465329280479546584575375398692998642369631320659413863600804823044549676418802109180457157989946234408562387789325861826428448236693224443588685121255342582639309665379462865959083298762821054910815429089936049425068908981898696400862317718515439258682375909088496964366186713076529691794069976916467918000250440235243851743957046529124923471464258140723544355062770756038786105818412313625933267524259902304295337615426217973430867543188453988115801122703852169010275278577627671961328896006551547727002161197996748650911117980617168667911074624718308737118784285677956722733258478653368011805979569652708585093250687798878688809226147249830896942213690708648605597610610922030723142442897898576842785787371201688127627975645497532974212338146592786033121036052205118456127893614768987408313853949793831876490031448752777857729311542307274992711413403158496169616098907525350061082207633152329884161957487057379034080700121776387014251389084446103318718957944082423152821324363270103299798027664496464236922395098995320586948404324276556178228113531615026852687183921174444762537893745930529656055727181291718707860959899934241273884744784392815616246130083857837383003819192442570681038064476919214431855180754383085707112585840996417011154048378849546506077876247777281808059338634984921038099444838847909789223573996238587821207378286090570095447949763273313275504305989531382436890155532358684651474588931950811892512334296481661776867520540582787781885253436525826115126305050762233664256225427751323937690129070704022889142061922974310202646216400394782143223138737095264036072346877451605963456929865728199599008919597480818222695235821283711467176709445939580563730709259824198613359724106880803106768665585873369188251033382087788293664425948244080103448815102376781271172156620059346253697778901856320845602228315890438551709047961901870653387450043313381993712675230035890765870797143749171661616070699392583220885140068436111714352808798126973194760367109490412893505382537900133423412922531977494328836002114637413240437738336454566553514243644009878656592250044950665160673766921347568340603622674330741802851314279066408461484515067461454031628065775414517535819433047967081415291056557921476154943388142917067394484696384983522434602935439049722142471747615670868243884289964812765383344362881389231476293164554778848822139850723678006292313972953103609663883666497336053771179818219650527221101819793389399005284122877109829422739606778095754011211275948456632406851366841308288011672358894703019227831486927731454202316779516064206421471126715152528594294520065174905996313860245661422200522405958678432765138995416078329340696752327183686259390201572344349592531596339280481277758101913755291756829648526099973463213305832979824324629749386150204203080880146753158559829409570038434495382109472670922239182989003542792676578802951890503456550836856283740850251132550611853502758239106894139493092883189228805238640305036688162823208213762180427031715573938364546022498771062927440286814393244385652463685338562233893065270796751774375466356855977811011385427033037333278177377273041832258478136730088309628662231823977686276971553600646682612201248476223378779841901228201405179293078352025912797282466032214167347038889211154307057266637773704843452505279254766569153154434089737995462793016391262340628977680809067829143205690566548850367992524096852532244233291980516821884347633937308676853180642293624927565218504326622283479491667115939543928292944062893427354945948030324075751473680723809760918703430153171479777469793262394176718465360330340700075887657466013737737767852014749198697306441174850487675415719331981628785661671741867298069312562283022282966268081478795745339529641988375905103951357974108339442096028289034138916530580970581056652531692659613672593000970637459703325567910063686406507448973249986391960348113929437582917818484907662655613679402818056748521523196418094761673170312521556600653546311771455616976222496082320021517067262086514729777168772581614874356041908324051037715903194269653679965407013784441797929734472694518784911360647417264355188476880489318253415241995079428331991749707687669824273211496603129624815820493806950330104379574153360056047979911035111972534719158498522216545027143101199908105707366016358355159936786497211153940696731857356138931185325455488046622622195087564894849391124747827765286370907535291261139401644520467519824502733845007639594620150173059684945367508230814267012360794867212668293695279181987169174273062639695405507865268715940231705536051969453011889748642728246372819227008394042675808599742935987550623353435667525289552598691754821589155373214616267985198474631736079208729052282954599328584423344561209879938461673689301359217805695575651399889601680329327941891409905517884906466619049976439764593977432311268180102720815776211152424401651459943621712779836291450982794395784399450019019489477288471157556716850293068362913309471847777326870940835671282736103874427428809932184162961758264646015991812287101572268742041941590872017032399493307583479163361762809899842126632340942107129370637395504823432132975302286087255628064677624575383687777260098076527996879864286130049802653870599914633576286752116477120957280387103415973062277736198148758755551570135905830994120739652106275519536574511170908867366804120020881074640755656063156600775249292525879863225040717941790193428212228438875211217977001907503781020155241034192755338254343617917785507241318945538148553092668052338197613553599553114555855627272845787793988201816697352226212322552557910284665203519452390435331949544527414245733544095668458531572080757607358243382358336021471895007815788583126627129060029801784851081427718055821083753535849823355595181810219539467770783869544342342255764774187900205459673399084299162827724031652437865885251154325218403941255360704054140978535666506846115974596440113171428736902628286487281832313906675818169756409924723964595812313276435861466003866941383280227007447626746741942626198228606486216435097181590432941895331813391256514149850451022602160450836712859959199851651995900221993718234626628267306082907655095479490956728298292717849902099008158604445907019290490611618468342529122880633403276866637339966204232173019760083089363873518114491599036674392141630455881985189155238633322680995728135824575657159391919263174995484487877155582359354046607877637542067584298117206739763727250885305378668698321374112124680957600704695742512377404698128776007780248702889190181793805280371488507830693283027220831461600499551781433577609717239235749857505372970248448797725671262005331567743379638334328117780812255889524618468717675948279308833691813243019947703524362160112944378810490039320430250746532232337361624732171859078619153074708817455960243484993534479054438585224948069942011189312252702772642329566611223680221577857247512715623442050903158333999834432009659421979004410579946857022195098249314899852727000416569472401908507155748844013667464147512396378635124337284102916351358356476633734833508963033504843176859387856956561057755698080741109899943103874206734897574155961040744277280603990348380284777390462295609144064239178444357292772595344430237089023266689965969339337592737665197020861709940055724977547293374959097308219089454285744650333073144520306734369202294304609539964949413792567193711299823075694697779386919210146531191970639235940725571494758561342435943938067278242346967359899890651115558554861396976874413839092221395271249742526670305371262435815868244736927110364842955861994184554697892690328258682650056483037198547516043198875113177995653303599728405646741535996373518634325805299363478574029541964339276932356306795657228893261724872392280079403602633400104149444928360032317316564933062871334966899896304517214335448215288905703466280938841416899697298655734999704390364033484275331494335597429803836225659573154010175735051828466014536617168188043251555621367701765297913132666884813450511100571464387010575768555588364498832694421407631455722276484907165013333561195118583614714081603708300353857462130207256927903358463583828262868588928753410566619758861299845907280707125313846956792050188985063041431794653126777291928319255735821420391725981548794092855436921181911742572788872634041183309717287922151290411395683457427637433150342099865365147351665210513701724649397949454176675374037015792245455054444744775535089260838296021741510853995270199546685645622192317986701995796490040270561631545159342018425921315595243488853448184282367778084288975729985096979868615870976601276493442336828399490782590834032960749491533812059115441539200678231487696613800834721958767417516327822313611312891516391145780636340407802685409014731450479287382046559086702523456048759104134643368230304526672818898226006201557404882021641854183519364276316581424905418667124076529483268723525433487263265628179414692639885139984419705847964962034707827235635923915122383493143157750207651947057678383375923312535947667448041839753838443527326406018098581840741312135900032266742018603215190298382907209630796095206653664901334653418724101456926392100316080538342504886926727781356760227776557291511790349498884307447678330116725404764072966587197713530974457936839105097707384127141794125999024761010816725791654220426316000950358962689771633565805060416605999706540456175052198737514839879342203532985387573830757802638655151604934672130429495225110617373895601230632965149057217740846410368125234704099705551415541052273389254598793216164164824336121421881290261328036167857508292421087777671386288214840667446764594312347310911594798599945674472243869712917535210856970751909907382619455303857615079862108814507485655336822732425528929713747326587657305177837223197716667951507000336464715598003080104646910945505349207418853793798673914805003093784213179005466671161413442403478907837623388578371882050241805948850181664746433296249506188958224037397512295178746227919202455034175668613771009783824836496362768839381129102248069398270114345631880896474672823942758044011011839614749785378369144197092599407827895899024551802650436178850794888414887001891509944094818965414914348279845202761784400002359639360981721457922381618501347995244174182541865790377298819271108032092506602058226474199594509216647828924068622493368311719359662646653322100539762718131233750309074165484811385985107810358860683618738336006668092164313615341716649793319059951433547058235891243788118112947901829145947595185330883177224446175117093132180853078139779401557966263666834749488217035378259417195314340777516895675882774494974966232557127015450571382324884274062451857588105824499333840032581472081387787934320399582220816285528163285193820912066090119828378109289030393331303726761957501964785629616148645567859724060366394471218252586061898136993746562649461959894151425168591867975971301990417607724693964065595998431684778857496203512833465721693967405792434781337388094861698817720328905948776783859127819595654615674931040947813075246446788316234465387434726510876365845231224420703239897872826600177928559532963759808667148525438078350016236465664019361772182223199375440250310666947981376002199076929959149638442266662278332459128636881053058531327400668378311977559918169131352413542042005320846702061536376194125440042878830849978751752841228046682604025427821280322467818442232591836284561102265405902039889223283432829494206392254302736241429898531351065077971569520245728805264580517577504958987034385706223940071042239049400178409383965472243907618991452523711311329926174436615088340382266175871598498640705942189134957044479233890093453935171758131501868282500293733654303627577540089669528169165507446688851004721239088901230940792919783479667170785671786395653551222908939079616578753336457138107536200001607482377568343130372825538402939146306963786921018652230968575626422840967718764814241052003555563158168633419381855042741986309808939701735160942021940535118172112731581039351607663355668290378134005851373543298567313089227417663252373246577432676214452379887597599594747364587677746451149559313302201980127812785949854800068224252374011491285850437688422743361829764822340643421522576250924113467835023129279487737146714205225108100304752026232799216985427991054410843358560951324039259451066898353151534472865394592273876766260609422473079922119528847582271832915699057521705575773907699303575139275197814459339396742104998922807338183849469124656631515491563551950362058663309774118707307140564458594993845018721113525561100491782546270236265201295145989133102726446286694559705881555054487989591574685326329401979797410078053022728021944925401427054656773651629567338311397649483623117320128103652036484894037796283486606623340316086495980931140706482595020828650996908241352262799208149816148818161184964188216862368205300791593421701161048430350342918947266946692092844822975560628295426774761697239859436496582005008462046382422727553908313551895741131415224516240760724368085833235634113693972306143385948641005647701646959635314200854217182741857789715333055033029987727341036986531592488289553260378908954204169213808748947912988436673164648268308915940079139283011540074907898382440311178856658170067924495554631915158974839757797349082199966104393051592865363394881772141034265398849203690073724340714430327842935407445340525979413062676798417864690477773744073321642439698041428251509320106657489468578979625566399521458071175868658282699683349263923656343761772960232995463587772366770390218463966811992368826104263819732276706363829678945182303852830595684915300159247067093028162150807480429619097506553848372329252397997863553971603233465411932607200169718260559684747741115366316488002224776399034173317371302413688823619208770525412923173738481849692475147396230292210799724296354860390930213224506777523829806243749811097325978727684083177479703963229566925781065827973204770888222007144611919655295172514814159429866399456158564060287944231720158159081212950557044647021655918100106144167739374902769345107237302536270905780154300985217538052346914532466061111934671632000898738495034657521588174722244654053804269259284898262847673733311424011069404684459110621798659852356879024904033186305188100488939075309024082606469107611858256034577419038149947563865222357231972061909238552470326738854404481224530006936176413534569016105636711777858332417721776545083600684575108146283076596126119500774395372876521431621113001122237257399174498489256109026830606096318787688909114408940711867610733117883444740186591152877804742615154905958415338174445577828336802498415914827363651146289037398428171204360599092232298668366561570763098363474149960840760793911585684228407385648433678333661629716031458034506560320910962089144967146586496592734254385909014299094498455069974325462062257608161631754047896609885843744930816868940934490571417142568036254026362898908358053622623866547655367464491030314255841271536841647622090727694490407390375093574734320282959229117770848988397900939084364919086068390626772509856203803658962186232562470630738006758776998656067993057456418546362773277285713070828316324816851768992255362751878761128825656088673347618170683977290522799403822633703657354564901060765719741744204988963054521723194291574222450737329346727737125622297882276675078416307460652513061799172912350795784952909270964499251445658513295617739908705943048368209472099627278880245057431898486730599597402892700912221893585756872435832744570156912859057415881995678726063710881940748435979562975600340520524264630213647315152471015195916354005677729176880319625707784239403460742736470253092485498582822779966384878248013912267141335949394391528057137118434532252091999280560480844110091521071776636924067961125447846006693363993096835929746583367019618594265638420502482617313287845243746800232185548368015472776923796587286090389394783217490323316261076876909211262679283365516997420560728815327691869655016186619656933880868871440484333830430220178722598920515003350431276201633384793699583333276005540559943887671182297245753650588086365781942601034530777329992898010377207982619850684437862087279034771721840580060278317306345159185807601108656816185165249298890682336241837013284600588715440525597137599982492619211701139831219659102588680934002730834073434580256513014438909137185277481622559069766720797836005547958194279544469249642480262292852590830943891877551968111982015614856560003769187082819311935026100630501204407713575836809900852636043824123983862846390641508346620481281558162258729722355826823536301071629765357216021892318872526871627637192283556528528118257944553410175250345911243311893141059592423978026908119361782561967111559802462088905536068199043460113830695228086018651188276131034035615788193921810290050502033183364993837235975318093972843983906560244941280276827642083328906277609198782351996269950618589039891466302699385615345189690717837864259984645769509539388536177767612769229093104974256692252654728730867409134751226374960703861746419207179809510395027506982511835629947071528417312674293891424006626844684931256881458384016114377984054107589747868639234781849545696471577179100959043148720398008405344641570616922738178384030421705358664926274979575111061298471402673656249443064019759816344049924914019100374201565360079087016365255516025152471370123983474550717748648933735405598718757952170171063406005824769440486123589480442005346580663846258783870130100296229825291827542794127374796851613130999413634535477362447213279473881821664603379016349239063578339606168642086685239305203775549948618671476670334322885565400949847812025340136585829106764609594823909472148560922551558267862291339225514294483835733551243834542859593636389419482454285530346109695612437106743312465818552238805662463025698613641186947140482747370879687852338497693688689051908958943634956808459655535867328501993436487384150459771832434616675410159880457909629179804466067463506980566848177462001270526115833713711078929399170869109142149479296775157123879102367313910386586642624094884310573194232014689646168222321403059285944166760760407346880304082162796089448845790760387910871546314813810987119103242154067762107849091056277162308022223990793104276209858359913787895719243776270722719104361203320572345550846191637875406761774282515826313273911818333738723748465136833436694015644440912330044824084693151922229372144982244093760519670786980232290590972038074750220509332424650583664264746193179543833272941827447101422363770354991523933152193331081113558815889825754480767831884420040759162709024406614422790495627252829729581432919131973898107543354517863236271887361866231236969550503576431413495921967848975294339495445631940593809054255335867057093248027764751082745998459720585754142785245523614280521777687200376508307312837282861633317098861307979617403607362221532721361858222855855070577281221082825447337780867272508991651090660927917557385980989731724130979184514972844740052836053678980443340028536411078799028385663849903035119271279524595323604538709170864879059834284119924206957524665074165414980801805016309216907119663652674180490502100155689273772558198983420013791081779410742765948115638711840386631890591728617079380404978945767831632099613392785995575918733800397797975880225677387329895300512398105645359999324809382350978219386936999723810376394710839584066574276787810579620505071412561485084269546078612393562096474848607249405718308520669894442450636443510107025903054847565946385661055237603177102062866958546192855820908482554224478605021482996964645436475468648429716035416284925761924104500044527837793727877898546404456910888209821841240549285883140596977382642924994120670978225387830747660493687552516139274572656877490534400423549922230087191215323875633356273878437867046874212922932401876671659436624205888455830746420937445267136558498591382230016551063972631312609176295573518097601190796735563809760969627412229464554794690208748587635044545189402610936106333187145079120548868523379276454388911913246541318273010850363616695646474393059200593928066946574175600434840601059170171249489497028017259135605294957385983805467246238841418830200051736600592102985179312557260883555502173648565251143085318319018194035986193734814311840308734343144346184808780767282705026374511583546609449693691230186320246880612167411265161292772084724482835453133927531908172702962880732207549878705726336877615581452888920290827759030919477550333675044450979246072409256015636772521206717288128285120897965441168737017318783570060959551779621999135459470616136573824913324253894205899712898623317111480419309868548250452240266245083163826586212529557396670815297619225364905553670236976759285342329357728955496028933604376662519377338802281558756695222302798405638209382512503269141296343893393048487800147550440511514216845152673609632218523609171537872143765329414064159697663468433287890346797475338477073008395289198544093199397051342088210529114194115672338765374233566476540646605927774700391535706780625412290189646837442548899919270357498286750288598305543996627480432684395125360125350109002850017754444058013367327626969516874656185818990491664103443732170657604725056298658340890608160491488601495978409384222910935671968127562798826437323078943993159157694263374924319109154529156397738839690834445089877777789873894721014512272913625497171231974242661247775934641404195903385220342836795952963070960321673879719109506061517261761679060905683128013468987306942658430788497502701221299685204405674973955505851238092256891303275637971628045316680129107811119047098898281651518644844121676933772334777170827758471482437613136502262005964682380096990055637068516709521567857344152606329057745495219547230584265888948226313534051662063227466528835848740118429563580631845215607856161432222799477807195069212687188684656534595434890581266489529582384103437929992600578506222637111379616758681988873106859229149673034729212610128666203280328515272916565144476864571899858808051430684040363625103044207868813021455562459848125120331400265421004903439047496021442257701704709442354450122513125867549511156964840341955464973290945476125308103250321861348165386392432354058066971667514016956148199691224507071782191172643696607864685692983043827392752965747298978740612204783260976832830802180434282905805375319815030770582890954925979350015013780853687548419787858896768718829990618523247870447541470319478850903512826589160360688027390252440345917632786252392453258036524942209467434357061066962884637831858361518391335726548408696633044467027490256627060687615740490263967643249337258700089372355198412608508264318334009052895861021082489743783036370294958996058274068758060715912038177195344708933395118795350577038459337352422662315416592303689541662207489858647400073383244847542381965162511866333485288094516716268238181275681486218775855993989946854194026815878393030464432747294146090911151575425082300887343101494312887771098697076966547366507857988041424874348506351206480897429430371891753624345999132164925032069031971642239766134164740257812844422768490303166201545750168903530495355024426234493122206347790307642603697937642155901465321159164988685561999238812732274392350188169662502468551921307271498593843238067152793669357151955878757070217874965225348229702992376882832351823247744774286444489888688054465604041643534094675687614353373556429342130358155605212967814248291936027908953435430703376506318599305196638323220665119565605637396520142042198314877103944061962441291431840514072808232515243109101084259277302969743309221598996298589606624513867805717300324680023342357785057996843134041875058003417282628798977384133845324233372956424511311459997053429764200255874068750138719625137620791403573017927762048061500050115748558112760916651777708746167981252448973267010679475251708857721525473938930796141556977737331698799892866612215831726326886845347088062593301921906064201967930897449242185277707773369785472799371209374601082407887431667072631856944289682949353247479363082481740145051770367184724332288637879670598935072972532162827151161791342166033734040998381623000791238073095200892852397591137886807330774017637670580642348295463903217193597004494131695945006357836725026869300233127416839793165500404871982125885677360851899802612315184193285001462024068753591776629640177300399739398346851947453760140764227366120493824170495967278810155703137120165863258524642523287190759337411872167579512121515605388398359297002565205380748496746493543247045491922399084177188191525206494928922492243778494396032584858669279107417805347172248988252119991015908768094603348645718539505757426568170829992984601732517294714274152347419178786184215463055852814815263255832012487566680087285106073437560203917912122250761665619664424588551498546038586002752018848027523681167415496837145735701904930918208070826878191436622388587582214115807277989608929598193874952623941420406611913495541103931716774378242107174554341258751398441517330237246529735085772955040111372846260546007322173638074778856223012559861894744611364749010171899358374952861019509001800395166551228454279203545693587344647154160374382993445074078276293717865397300992731960202366098799384451103779635120409231158426662128710573525847521780407410862737541884825063627596148969061899464423382863136159419426494227941344248225851785422496188503012408345038733915222016887912728373587479069751818164926321490255768620493881685033080399327824900348476771738908564868653123572443609795497550896426158397415236570921563289200337877483776735783469923900697886536521115113790460995671695001549583461385089584300674314181426236374290233575413093505219297540046287779989577019637799289888529401660745847981325542411669143487612987538997476275633778457932587513831976579165391303878723819958748991252296882268559674280156135482542156267733623177841031174714561082548980935608830394791478336049907833086308777950403935122789646442497790729795663584278785437259948362273499186631169960837309400390414336447573237090012859535747372869722357634034797206882426999362599241201450167435461961979603757998025502230664184725605286771480226274382058337936537062406096026256058683276844248765472068710493005762133608855535309472432636467366961116781352265420915796559047379922476919066608386680257583495900138419283038182512595140266111932220142007047564227468965952759355696920413538185014373612290297389525618804634837954743514602822464097773424704732576290608337728752177462633747875976330831529133153122643146677201618971193929223767970979780257366534935621512478020305677717622586737689465741793689120787694596392378662374780932412156261216739869052800054712659950671092822970912695784540901801496986247264694820232006096950866046826951596318655626309102851487229276810474394005959268196681150813320580378411191665594883193909293805905790261343629096473380760964532531431128040110018823197538814111875015479363732170007376009440437631253122924843959060657394117929735124184388826996333290427240983406033513200689315701976345004678489049037333167766529626859222471282794731029990932246203112584636398632167216461487107914434326275945822675398951396398248757081024702624482384701531297011979727957888333613163855368421941579831510080308126222149291365116616713704830994054821616208985593803434012232390773996734718098950716378659499220253179613527818661489286111526761858374025292887816631402136556230071131706822880733330663747648611740697536726899427956194310004755850248410238418710049088945453468599684810434459238913027414567422091892081238498436092586440514461516796970143095042270780220041187150157759943385177070144084432729131863904980201995545918181070698455289150712826813358591070802855214439001243989988001405758500396427905262694133622645919637349916433718666719924712285970053835082859744864052142472724020579362875289015953861425361376903944045847897151852820440103133179323542160796254155898639776925854044024594749028547224795236450458593507882863118288265737501483115993383830976700771534156540259589276060152767642691439214342654213270983816747663826111455332099582138266538223561411928059857267551789351631285565004557336419041855087944347398887119851288369829688691638252375648701830399279265902888135150485445294541102460897728128505778267862598762240687329505683991203596535410190148231983181388264498210625340836734565916596523611734133983067875525194461313770464372917231083778338776410850185770197579588889361113033063967977067357754381738494783236137466404577374225364951911844721688773923958344287508144750326806618191169905730952668315606510647648105523582042304688471148604243733204612080832521792643470858038060897019558978661217025842625314353732282367085122242248694983985610791133641059968341097358104883627875110977594842977817452968065839447742933095538541132985692926227757029582968647789872158720866631678321655250900941638120995518689301923670337027817898609711752093674060583454353526748903018223470263458316653855556718810237959427679496089449451670969923246070366593220714295364584040849726357552468673062015751711925155916664066904650262291901897366460020639949659806094992881395269352466649221546055490603117197927845265309571983192875142812084429849310145079894336739663850003211020424252196309167409969453225337669222622152432249613495086969552132526114068345812600073875557064391801216243888824721993039609621637075069538397303414270926002016040062222102491398182694244967927090815976524140436522939473725461709549823683205774819844133742369825419241694127947208330762010222360178174477297446484515285694156501066975004817558657644703923778145238129232553812127248629688923636312219965432219881427397656205802763859794046132942709823511843301543319448128845528402073088133810030342173495318591289924244918937033615520943560294774279664199385944213059999751928998121787173600435652090377735912793551870923870109469710178669538480037188082709144630652325008776167174251022953678889306031687527987722254663636309444076707269697441579622197538390643663485259744733575459876686244392049278656408936980062627987535471224977206974436775128250915762753822516922894374090493557307965332100239163636993120035910805855780911064904577863158794734123616180363410838799166172811561653876002126886179812996325444502874403645184528605159275079367259262421972000796581023571901234113624626681472208357421217246403706267115074844958039497148841500712542823361850736685407524349930062057019954268679699333755654223104341236370463498558385554826154134350735290615886599749557991920800409181354280836864543755712570971547382899925728342720219757591888412319596227826748701650420479065946329914845740516563773944659019245443101200176778353840731324254518139587337218508830982554117825325120157540121077255249977440323958941622935534581466807957647916829883993054990278677728412069941566793236282543328841705656832586418136233409080645313998714258536576563438891924303512371471337890128031910589972069401710177899318330293687193381074791665257294995945998825003680331537373704375736717909372147957735172481897005940033372498274254670526599245742320375802241962835815223754732766526821562877608894902430921956089419054620408418806635937013718854766582048175264683822095022970923843625409434434154051561014399626807525171486746099815858637462276315308380847257127694792728425284315630291450798386429232760208004537801230525117220791189208409709161709035217849725751278512959017826530334331493559558697048716253480079785333044533712144581417612108292524854757583287540568112865508667743651433082226653284262871372565062186006980712759676660627802602233022441389096143216880282556715975028267018659106651066462833409948580637210871694535356721690361104151753459507083223411809143356697768549024055796090324925244189504778500406506065926088500102969157856946415800011618212149126898444514603962892093827825234793392687999926899605239906870864471682034693253531291487585200282309558794016233158855843520061510869407785683680831502047766199998105359706509234945703664659893143652825951678739281920592325895877152551975986394091567273202858475203097948408748009182582447099047036290321319910855112237601740065520616154416672684479450195743703429168026283680042813864271290821938869485456327464757240828553410753148945373378268056846316449172274009067748716317118365575935997199575203967287132162545713850887163804638497929858407974732602239925049751769350017561627595452009584588897240830622252117985687663981511838540992458171747181659242058381308353536903683216863668933831319854096732707723056380272011379201160093036424608492711612054876818713807727701095768700317389290574460171963148098820274282306367828900935396253179614202592125441500264216085825576470860826253573960570456243082773859495023687159635886222101565137844098751745534103779960507277738907380915694594251793964704350665230260483562971369457600329509824624172248542622998207996431750042316542815750932994280530033511210292708705487772915024487844266650136553809507966274719824817352764669499943927750464686427077566115197951853140193599879648853153518428474527541526459378138212799287629107938952074214155631173149273757511412653973820620080760650787164703078784468360694525071624036033463942229144563766260515450371693535996239063973444700105580200732401241006466830926398173040423891210482157619758833674223629930751523524802700107414405850275361399614402801283025609255120719607801823899968692252147798556329919755658502442317382098427587682748153043597439185340803062812556154167522328964955385242222021640939415252653236836347871829274865595219604043223478416460018221312942902473271896098860383742708501914293372842497642993811091741145532196782085938287362820606297430890604198134543137489166222280630544650633231027445601470199755557920728284611904603793136399000092364422765747701130666484137894557798345563849589847273929672200643938756985980309130980996132032450936140406440958448933184366938814826029410437444283181615911077484680812625855977304992214359909836081081236531055660959481776247053502316451224638233192716283445815814120243409894985231418241591239788391264178202793431962574710754283704329842571820938447895182467224064645217433915484151982812623629826234099251692968059270520216683981883823453835613880384604047887924756296201680681267236630124234293146549924593490551551005790367755633273183709229226980752744671426321296074514205320689042205156893228302393369500526693170355464133470883609993568844828267141038613270413386697847871766205643616214285465418854294730455093149233108869713418092693927909999192556785993595947934130373741000239479440753580760259883048916563750965773395211599407782708865413611123356745932907021434886496339482160857259386866890646871541765775659171158799245332611432516967419953203751961045622538792894999604333218088291601088758719019655360673677823402584425028032947621367656120435687731145549021252294292908063045419527584867367246845578488159304406131067111554766062979529772084686637433208015776915051591896109129532882850876589834472083813785837965429527847605065309540190989306908370926334873999005861231131531441625492823734868883609926705622802260287540783644411206006095899789085447073127866151140524141268177003204112791705219245260887306020841758550683952723162336523866088084290795922624094630306638676375885858264873297312128173900007245734979953303203518179194538933325329650427739570925459258882641755862367654937258726730561561719924944733374951671596765187299841711453230613595610316317334100881548544856651826358680159218440065506792393981581237431909602453793751275532193412667631426337121634912576054030018767896082222390101370549073380929967130548323644889550434387588823023608211212125331106728037661221257609553609155538228704902007860391007348555380107362932659126328099937018333159404857924452452080947413556750357699000973333946949162925602399528303450240408067986838822803308539223082179596569795760697994205518315694704433454979073829562786579543572794236344344763550916564255929900595524853173350863119827004624044678310692113584520111345323293539485078331655903700727492910720304777849766445310370915723603682318137245322056278319799411927923749062848877488929681534271461194205485693227744191509918890307619122462426791986079862746107120767106429548213302381685079565944646771085695918371911733956480255042662814103886318511311019470132956060143501922626675753915142867379798521478844017379123445958998493480954235693885554627411120082264608541401784159844007941525950819413635100852992599988024585276647215664342332794423065813118454129763949533506463195607106815441867966624947111878029034811923574488690709422706539198742921948426184257942734091883893461592111618174476348773403527661802104202774012411279414746413661771040561993308161311517750995321786618191576681055229754876554667651386543316984564717610798906026624275027233461110533447904232986122659076111746224836509172660176300472115403074433819232616125777734799296716024909184815116285723010591669911742015132834280196262827553535361473017947901775826021161475777266714292895559305906926396623504626986749057475870036152757386671774661390586167732711203455497991477408402952764869923654318772860849764567549747966485429417070686929481658084935903737359288959919823756725636369549278508127367701650890319738006121157020692694861696837754202923751890025002687302402029637029831635841403485115898448910567926497996807107087169362445506358536019713717207715049219114478334433158576730287991537878376592774493300610856060868865068033491816775216263725700126261408785689233251750240858995452880445928481620513462453019109227531747639457298825548353125963668867378516057226147337849384630542324119498952091430712145866788256081432903383927155390575683066799803361517285064342070686401849313574658221950838960776341496090038816487446860794006441328823112436641111701756375042605789900508951156670856027295511195387871353307880543452426567631139564380614010468880330898739643043009506351206828313887001028377325305602431894985731390753171545071971586288481075181466850462194331070241547639640779262877755123413996431253258078841893552932248418736057098575185319784552436853834502334042516784441755143643814144002963524599994125439797886576522253402514171801113761049429165344531407369772959486544905346470876083098360296162182105332240009623049117432282411840438464414298792340935363057639108615511328203397052693956103463540298142537948482384622526685913456861227878947880000560481487881402487828873224719336497089846926348289343013404710356577235163939336382855747112622536535889641263679193461041997986720943170193451045021622320040381906593201491402693880810510088858128484223837365004444141437687215711681583318182931481805678079696863734682513193010117089876202570549918665760285166953745716802876399041764034544514878962460830564036213898297961284709135936667433866017474258413023712767328845774250814539122478524074908248603727649930437577965262631665393885879429513254652506548138876887338854817559968990182871350863246163717999044573134968180409689229950084901161805366043400659524498148480465904684102580640922935885128010663865428809360816393600697385313087045995881171861067123755424381875059161881831103169785196994590729923422225242280722783546622484727518435963922594773087805586649498307399441247582443239499984510808169503078922979772982344393809502864527154233221478388939938598438737916521468101361823416267639897211228243400429032222384547351976725959025878664057901917868951353958837875583040197807960090965306798592623052186463007247212915109158951752968457390863628264520849205734173365460664247775255639605753150543343959437789224650982060068011379352600801325097101132603661659255025994004983587050614224051967041222254917365037656214417938631827235747992396744168421102057702021624736661792259062962224045542770459339815605241508730861739752569783581887732884256123036675320879378096901895048920050402548231274459331449843022724648498385657206867061671155489267079375046585343697901185128473815474656107421118914419492017199737662793038030450651850707256142122421162909908252504232938064485764301845389039306959051285129023335705967639110546428414600252515823492278183633801610861877431948487831228558167779956333214078989382387393860190938707454579939865194276504201875900546763077614832587818989535158414308227655077318864098033647352078681128610225493314825433100208151968181452437503464754883866642845968910483967635209793251231248335136312710486696846557514481230234643381480041254153608833158015726610582744383505490192418924808474256358475778934911217846450208569839534458339419800819649751556308354439972930347472059978527393983380076574011991217918276480559718582828718769749262875273479103908124008208476580054327759285389755703352403093244702922362536235866402314936857545600458209855394998659065561681689912931907393744807193945437949502290003458254767249759007595919250254747674820059823606503326860809706885182830170944031282959957194962417459311965552133764787710499025416003589802816045449260057728301235959391192807167626419425502658753407398273477512883684737269005479226125817454908372070645823047355516494144702351853645321019392912026397106208226446190967914261964438382170777485397512906356942204614929767201812765160447327517217160488486160938118005045860012201707960096106271682837067028710412736317815070465802524272778008994090738836337201805873224274683802389934719216204496961340112167349602742875846399447091235512330325545073731128458682568418636559716098852066807873272673818635156275461796496050208014251874267925266865555747774095999557101602223600002428344739260277775471943465733984563030819150551937105975657143146043599554754798871269181075968057668229506511032034182159115339485055075218972588769922223711650895726031189190053516586613749364542285293143258137500760793359700471514224947245541368089509810672510552934362568631727851917692732210317735843374511746143669384841543743270826749144532809051101181369190714565061172928385732093769609911575636936315607444996421562874972824737177995104185504818370593131305371731810974200045490768946017887517146199018038650513079707689670299322005609027607137742564636901078067667636627934988256945066960423583214896624555137541523093999014536339511674490720579358964140157586548022283993127071255307295569872149308003788065728908986214784738017548315983440636679142940539693765636688578733069323135656784503059481963702190973922801315040541432655517825674478989125943625470130386746150551106062638867622904275970854442265456004699410699743874959495812247472960968110394060609620868689536773545227837248241839556787437158792202311440322014391679920126403804838472924674009639041763395673988692104857200867890161811540131604870492290674958512608420743301433186409445900705051394302001299719365333205395085283949543993595419613154150637982318146585420680283613533663173707472658752637423192822736416271237173942083875694065970950248553280328122385795110381121435578092495318304925149331179959929927587649020624834770648396551340021358355769928726732092640907111764309879997684929198509847777091131002679756219524624681557544123316256523275129070803942148165296258750825343295346162753511601868089290271920890196356468629694302950981903807776607750930461582596399856978829921093235058745819084290578741782197682581666170748763790394702064116663301797881836902596850810533961372716540471702777959171516306746161735110167640418782070072636650044240347692168870540427589500673364947022807452615626664899326423435743999695301918956898581307453884199456803790418722236452989000461578104223361291270768854634894229331905424410508687044137682458883976993252297095295054002353766621465790093189101228642225039147566730230049609801244943806110282964082073078548899692388767266681159654222274828750712989066318553320776825262033059327557092576536576801894730328340860625027885179037255207018107284883098383033130538845823316854305618434752756163919636222691847944118864879773359585575125108509848452745694191161042511931611308205639030661510585440383997264692187852828768677737358312590555543394646948726429047223463925991556755849623254067835675668063602382533275731593095286410096345127938418728416270153051406757684868931822435075389277757862742504100064561723418156303611002624565369142429668959985964923536563109821852068080495342636952002450070664296791932165065286563558175614343871926251000815981372479269939546776832475377958383269466281058835037173520632218354720168479881281345868122301228062885861991437153349354043898905088422320389588947878770851901213766665154188263019090505501395636751650606956537055507914616461873377580149575359447187816472382586872436598161896977706998382495467351508883564413575280324357714732868504443093445271122971805618620935585182437743798705936971790722316910713101137485060944798849898377024676721060114967075103107818052803217711669932891088392423322251791827604565192094970482308276361332751492468656600476397534523289076834210845744857838106015391330463223790036947838139647892230140545174476170857107828917084870642028141147292332489633195781948246902767680276442444064503958097218245102224313995385047343291025352588457781921579233661611497446571194749533489281441509204864066466686738646459286044776337351787436100531151412304463286795018945260981091742695228258236063710888173760114089829697594684628377133489727678923711173733701510477057929643147515620817912049398329452765896404778913356404893270044413388521783491117188911404575915634563129098736952479099374636566080925849947931988455675873559644988251630739951424424455431476977356495046846424162144498249014334697530843912737634010664057488252508605095013923085281506489361759993923311364525811385716405546721547703149923248142103569690591066684162850280358374962824027804235454177449203923797721466881249983672070878417242216434911582897177968884435356080676309064656041580858602593281490488354604795994797959178190945823388870100735854030985447612979406941749196345196253766720930173701061996872410003818892805237535492323807716435217244888344929534300435001591457261345766184753473717026425275858719596156384537206736717355872521406536704813733923819840534899156775877893398706663721922623681767246544003621587699363260826366295974429023255932445696328661667713427290440212289502393778685361579585585849455691471226713385067405106559251501420916123756955541182202686963916743934678873131695094822714100655960953412931066542020440546209044740979483133002867424909419480030985322473140776112310685636178255980512073565434306631902350231423110448355793764169519571130337110874858304514881164337410175174987547997167660076325559664609211740914591640224693353190805055564489274847400895010641546937024050596996892615858956088213545413623506103054838303927846453067509510522059672919454166164253718830692230981050710830778372440616853143560778218486330198964175954738054276686855844506575359816552918895567323199852297523842399767992123091017540401466839088461840339195013876136236146056192667993142751149860728724953775193733725812431548599228499311512277537790903334818021927537951671116554632033461110770534054411201654287443490582579205889725983327082400873515007410425595231903842029015766713595344418132236050139712880127244146118201040140239291182126370872585992434222378890819395804009412836543520704276823362020938810737338881899506414589863515970621869436510815998495783829124629450004018544523463038057000409439026778310435703818220709317333242564590219453583593760100353162729096448608577230662684608475679790763917808608559509911744223010588960432432351638446333598419272308512941942085173199456838931719657694554369021047160972107994675258126833009097152410694753064631667206597721558260575250320509164292603105515397470010944536037726057110302366215689647228908551465931956117823203331508330498070325548271772669126385614673895811280457105597647104949858757322445639322162271754778447190302265976179288778783141855527094813544097860610633084973792024210345285546125375838535187473088677337820925881006442439648702754704627235806890573357462529741030647887053219428719955972939277683222136859180558913306368933553046480024643017896221452311703253166519342365064667636853566882593632323829971236939364555778872052236849950755372118976444324413277869070644970777861436391139820468293112415572005261410635311246939970646561986641372241807669743142513667216894605857385520811227537295075212456138603001914179331835000224333637209733330042425938894086024777456998335427586695373431616732450608245327668694257211336728742557785360987971716887017212724812125875116874860039299927367365559283144190664197960300621556728757304005499392735416874874593998394202598313241697812901433177789003329731558402113114884419131124664963870728447520083882862079128382727917235893389827515286162160645714227124801224994751843260139321364972654541737468753308535091675727969837290553422134169853742382083996185571015723528345079627544014347894783237645982458282269511079033607786406615119081511434060027504342766800909460545058206817495407143386090010191863500511210886498362932925153578589398974733034979552087125446601035469087320732512555870647792633958701800040798577814214184047489810239759682104104244926148719205280162113930454529732449781478379269036632216985841291284867757035698685615460090801279859857547885493337101351432028686078014307253692464968962954221461458520709614503638447240517217100138519370137382902167167920098239981823991367533309594408849175891817433799864470827576419413591011428576340566297494249516105886235601448020455980488830823419580493866421826440604588049678492395078399496938335281687769206151711836670829026686203854395669400814152006620637955660149602525554925906924830230097879436142156446406514393879388283001053254683193651575070071997702418819626759581082592018540941822547762595702014305008597997188866340000204060375577914614738901718558985685443323743429318810703121865853597330294504358920523962584240731304854288626162235889305237360206811251032206957286273438594741902406053300481351365414505716539644982725061889535380807585655030274884179830590184840561406198644793251822286264128135167983510387445157243083476892109498296057633668487251956238297483919757707656408610851001050904619350949010711809208620222948920530220058572055296382901343588606505330044062099130747577872877767734885810683130293108366760846622033977507196731694885016136941403995196364001087953959496781204059612847183172992240791379401422724170592065519446323949534869703281910990968792126299479421457522746631353790685777745884606707831716374399407450942488691050720831576903132818697599227560020554493069580211142747818928261751365071390832047145563338903171821790048096480579299586229087418614679769854829075591970841572209876319635966611401237201683081048119246495107426884842785845493636654373016850651603448207100070255305976798149669062597757475313349418079924607461859139662055812845146803968846836667882755406973365784654044223285682257903853622862981546519130551565603796353046638661688585594496216862275091512247101314779189272490632261731553499551232837533705367220645600340225006366523904420601682153980972702141849243518843744635279799701075136392137928644523571466494035635009710469948366327621196705383538918063313651686175328710511751409080247154163920002370842939884795425325221209355638811206267328277862390520671785097521707362224093236970551109876917313466391827259905618805970058442601165485542086615294698594403640295451957686280660510359915043450297754892566880056535640498609895447074274262550589831269785169478828487959271160864384069192823641581814184168237056600145781473872573118582874474817976951119047092845063643795786534956512074508129903255225346989022205108228842792528856737571648938536386098427766307224985343136839923986168229381473793230161654938485976886415092306914411833243474608497696283009677930469656491466545285919955757060999078732298102846542679781094748739016091467587521064771648571977222433079636127905687883865801205361784018536702021810118738366084225069980381825651321602340783832987851951152475113891048406242242031313079852262539623511003956650685266384803901770443245689863968411887730955404437041764419962022371052152308964899858674123472884545684476992155174429553752661674486498143319706354695182637401006189600868468648693174129647326537441555129760921641904243760906380667093763676207935448211093048689576597762763205061244306286349127837581967848361133041256856891786402075619658905131783752281396884317748960955581179274679953889877828890061535937723741771551053196722288944921185966863643462228258630426284328440452624783004851871912715927254216116371231564103333927604084184352779961125245851181899185446550233949098758198003967910729793259873852605101336321132597002820141956576146249831004989346512701570132247789566635090203853162556007444001434838337953846054662765325696177255762402818277090291843025907380372001775501642852926590753315766132361410139377906075224073140013231273855939555478714714151858668096624003200171321340479702410596385102645484831347458228044673424379552123768650850335086826107968932365638610156737568933471778017110353206375779122952445805208785103071103144613605360196507718336298200913254832102824192910444161204464223810843393651994017911983211651489894605332822227045828209255457990485221510885474706731298056656586375652318179813121206231223887778585281135210603638516085404721156552311996607511602998851957901486265085280903165585272923873883240829967181674105508016532000132121859429692637777482479677443643350432943232208586930113794729850458870173962744470693409217679065109936803828280823514785049398344728018303269580034829581715786467562794469601628328060397986453934844052799900420002760614983542531455103262819745750666529065456022953562050468956542329074436442290959152435224250638880752856194802207778343286214709290280386622343196826057329480640925909098656348694419281431763116584747529220818008293132588159984829472266726437279948184754704042142905642236214461304636914820160746219098743848062292310364729137526099979484305491816288182161939484749714764675370597285858680777792399361388548435605604400848587461407848167661894971790157537721003416498360930166513292748290489447840926458381671754194184714646457000313273939902731720463230035779512920391602293904997225637895672341751239035533663414811678394267158966557115755371381937716303028753537306096950635312057633325046440442145979263927730358102705324286433776672877112626508480277324209246879309040677190198065884024510151119307014643007192735410186639809015435613732233666320587697731996760482273751027992040516693356901662990723858645836847196367517836060913256468722824190589169796266630019032276566787554998862630845931648675938056435500614017416107460876683951234670584085464604867511660387692178858853175107681873384444021064977963973296336643857978859949893920375895391815103313374567947892299924046881573720344552098501771934762085911797312261847074751378584683062189357255285170405884472808579417220927159308144446926387224133265389676323369392328584793365486763958181101163836974075024792498005329830589080570152914162491453252248222648140028309902858485282800440208899881856526334434020574782892653516585747928457959527197044932849791892513806636736941504143215220110921600609701935535562573203268955381850341979741975654388037467716505527760922322441952064069176266243799810351097025354666153196460103655471661530791077204183707334500583054824552424553692677054432543981052908819027544475615092351903675127331292155247759253757099657194149042812717044721962275638657844076979496338184918241261205680910140991434324200488120133794099343860844434856289842011210307208223726423506743108381694214310873806311697630798765998279773286462897543216085032322907190895366150163264277135426892798772172912048378476291224012398544115412885023331169242710258051484329823166328309294628321315148599282022823470941311235544156539548695604775555708841499935096349080820441130389437913479815195076451431612312727635438946962003448642928908896024703563494699018099191802794875145979970141280748951841304874597365522015333199629161486715035200046478115262044354355154605195371231118472975397684350976374344401987006938438867804024145495607311202699052944230321409334854342499095849518799633460152359797049900697431348100811953596399881787430959390122391516333084037138943054146415895172759185334414541649167514847101302797159768260797401039509980951705108338601098271284436422626594014788139349734947505956279362938369096886058217205932248600183742942624632516711851997729569692364504441142124452466316449934221962856255410440982707851531581195274631495080545411738442752225627458852894998708685172342227339572211100776576214587736450417867545481922054468712610465373018195578090967592625566868752761940690376172689091094074032921413291259598957467854517689208317644247825414840375628132133333907475689257028061552560541946153168708866478421549891694268220912364928229995927517405874739093285312742035473879254037780748952786203789205547681695752391369444044919280680867289729546005763901607583155593902726744703499367199735499107265504532275724488980643487432196226418259451444284425350958308329201186105982899207387801438144471357573363817142368469540485381600483290395535057386560298020467940624749524714952987801832284836484516014526743529363811944723557656996673542387798856636191899895514971294905067271426757575894352017593925726224475242047368001156981786395267867420071836247078407078308191614532435857560065835197775351001560962363561963221619857291882620508311849121312653587047438786623207496888518863335917271542236744606373131623825534865070537123283401583963354391953444652426607550847578639517765405967431865601036887494157341579042036361116920177442353028365332872988023971971001204791586115902289994366348939643842136485892785458286955580473373418328183966639068989613380853841393235083605312923643621381307619721264740476286952527219106949822607919536930832197528387345779444934164531017906677715217443260096966216996689514095781119444331255771690205085105291099004755329230512413073946857188628390572026195878293295622262743101518619970191385116076408808662737803565695213172589851595568938825369836315918191640725266100615073479483238604422463229298649243304323651213360861205215802375531097520233180657865786909321521458942394343707131583070657877664897790659873855520315018732602159051454050210933125210461240160688216153678957431331612910609762177473567288406270013753096662777700644243644243179170113229939801638637107181080769206111776226193219630047010758119780482831685670156767245203802270644364191483457714091193642231819644286485837374249235477833561010115329157976073104322603338198216350284038437273049025198897445979818262696570443317995536802630004037683701672350354336560093134986596470027306983010476075297050322089346941420133055175385950728800102425244812948909125570619003640365387797682909739950523976204208220603995155838086073703060284840030286492962786323275368951771403467441785761448409695515315454146470491229458551551705036648303340413194003946428645779793647856413659472246594522923230247878333384640866647175647506471870147586331462908760219468539497787893113003820561219425579730852163724570343268011793283604555961336611394726395697723356804334137676667518429992176054431645939392259765088691059779410942778318559339321099361491804321822166878615213621817980656756033436261707557088217520903083652417415630360011580037961550022295993670383613056426356634465961419407084714553747344069571299279852987281535284473807281287145948091665308655388116862033003110236683762818974992109065121452961959143174360473217592984302529062074048654587765191904601189955623085664401856681088257329877583520836826629735781319641570758568315074965532550440580797139673125201629884629157743486907092513536269973443801134243765241281233844663287451142880896095203331814489901462279761734737598077356550053054502206220048201583589200323068183328236177224747301653805722251070988063484033008879874152212895439234709714611940703706466421477562413298043833733732819041438962614201591616175404405871030333434163777607276092625929333330504759511632228354573101344465326574800098871181496473548308773066432590875774324552351298949413828730642381820421236326808761098310110590417678376026515091436984447013007000363790745867056977885137385732159661552952704362499366184702458018342047040098596742528867077325980956236846456105010548752286263251582033053275591924572142133330035584188585478624587425672157379135939615734972781092833636884389672339183461783823562864688329941029124146726462089634919406666270981616709721276018598942760543404416751759824461108152721874937054048691028090206192602959919999055878040553673988733388501173718324427020077032379517067858191680206205755100491340736344572887718030627080911061242379878505262330074082415100617291096058361856106748585227324454495234102346733901065237421783595454368213707207205016438809639475659161277333946047391600392187402602575209036033257581246222045330077974260967043467238511288924422288583436971631919991551577088805261109660545180633214731613957082226526877004405144737329386441316833926310014864920291148163880482068642158788496951187882201142909083278888069040865064291602506508753739220340357887852181150533098247067260517362026759810326270529712509610270636761681126482911256574633819614950568690544789620347607567408104101271010460005523641301488437437602980140715626354052371330670136785359727479549258949288299859983914157498674604503975953032034450232627624810954220533828241830184433593359578725226059658100417469814960048715501480621627857696030239052508878610840804081858273697878466564951526040932605062670361329715348264455517212582651990563683408030493167897141059917193431521948424091200333715415542323746161559500577206529737252797246383069794808584687384627149333652907578421020348728292878524850050113587883662192183947649460914945651415921858296547727208475463048860884366981120721114156472102499658753790582643750063477631438401990370801479737632422130638136926311169619870251002633149890564366237985299636074260832758971259689001446323196369073718346455874190200262785878726566910565957283111428486451200516244359202162667604451781168942809396280623256590581589789312003686262062417456218551682131311514441227976211447448360740508135917207946834925009129915892249768020413234475387336468207708153220909820205804697192109386320235397110706984538543473128328064277851279425589767826024567002883494436479405752465941733036281000763900759473748243512397201436105480395102693097260520640039932748909901554202561573612350543477607325194866232934972670715309285209207177628552389581256252465684374820103892788710217149427406990735071016293262965616477833638095154982548367227090150538812380521676888807546793467126647777117567915909312461187130332002594819917125187446014414989320666535045305832214047923195084120668708660763586085881408772508928958985317955441216481244419457331440044154908167721056964963839657930154251933159873751656507704740788738469744335770773175487317870763259766484324050459406611802211131438829174395949919641062693219032059774955131309303790774825783657340007042774695157415707529421589333619254703324174668644315895243650085471253703821154168197715087594839784660216801606578392139611998159052830247774834457834265373300617845005678740386588018976419351975332438168905670325643888844582425790106367735906760550740329934017964793228207017499061523301260761945358799655194520695142360990436186294437631208708914495796432011168237053770800887116586135528571623345825443487942461907382037924464593193840419047238204429883549134783489455953082275813146196916276504867223058763946914499073043485117863929302924093956994202128477951262144463974208456376224222215343484438169035642971916673985954249178574712108192453805797289867665367410782994914552493016213839367821056894579482904093080622706922160064140026189223619378875004021431329235908215684012854227201087933309420496316447670555755330119702406573847122241564352382435132877285210265989412170893344401432672537241979962848342504061636517205268153380641208570840484090470009419347239688890348622467244613329960668194081832376331359373419569458555018889022850842898617723118485207974708020251329234234706903494353776587177853517438165211820471066630572200795530095453354219881891687755379719350173809557547714975368057189499825983506226432658494229950765715535873697956747496001841406544985139601301755772644675419504431691000066015861954220854383939607010871002810073947350996822084095457186016629430007517242175939432922666724966650110582645606453777342200547093746765184006662334543360793612382194427367914884618559331021651992916359974464941626798040413024117236795456397842551673826550557268563875290860676429917049260766438414195135000064432433573894641868644557011508860953475713638241398947765061431185284021059999364765895825038169548824600017433820486287080027560782905862087060180898356366457145935390536423469681719395375707460462746046875655919219170883958121183565269053654329590374764642539403121096762410014652066115222940609075257600712682524991073891120189053233881154650595282434452998915534267953697764746831480607134954616292687410121702159025982207537932131365021638938852979560576501901557947054502250964284536556130529001620629613516078981455538476650733868100010912609522103654283205624420134401679749346856894302806188121953972351540380287820122418428763222926089620448080038134316472765761861889036335953494071649733811304653083191881445289195294834344722443645136249533746811848982572708363636848588142065104718050963388536187314449906213122390844566521919204076492396153773053515080521159988335006170415429527570678635366125376911240765086494154664103067886898924089012544172167151564076555215560679015988799929610811739199509123894820815924820808234303151445884891876784035408541556151094626993601336076152260923632844197565244759400514951871954603618454088278351748719228428976612131560623541116915842660633119881719567753826451355336226056134255503036572224742822003390386502960199038815010294229688785189627696989947086883374612702026628671993696204050042376514829200568518016720628742768407903340695341071772213695917676625905918071927023120254591324474686326897883256114516050114309728310006328165382641932084177162089091544513181503052426328539946003107077026898727742826813533364643880791397436928456052315018987070588935895443289037039242818411039469697103651150404269790503195042348797508997534043424359341900402684839434557917854472466155127179079769409237609450095958138638413241299841932209206764796430733225924585665462115112107524764540583481822508251335388829353069005164726395466938574678185263275246348588209541558578614773968077235776292808997673920183100400848555825380718426253364682222799331230215899271595486311039365664449430880430597578241954445791389524062809589003432899850135510264531699722182126799818736744986280452577491545163715384753677780569960700527359977474345994200926112346946544340233057645345546521365364965878178974956058459921476143057926376711199674651115359555241895878785884530271889903471431270207338406873076167530111409105644858018211089989392531648258550004419952711139215873697032715306464188710474071789637844800980173013899983057467282622879265797903514753947915144929023404788536013989041657039702584633073835577121406361766260564848893258731731302379283181350220497028398435530763972992664234086333423203475976011173156428941854381889021553236645490744151999958832837089009691259894508162516223524184644445993057008618959334796726598075640214772516031070963140454045364638907228137904301221177199308139749830773460542573566291371662389345246944521159121626966903334029112238705537387274346944557189360861988226689389991855298797217353235809923545881065934661501975341140546596726003275659328858845019029989343078264019373603388766904071239245373998686255112141773009155905793597724974065200723428674717528517922659364994526550886372746470338233000126201506940855470397875382968287941218761600655480129244503654263027829026392815903329399527766852788445012273144755630270865907335439372709728543536879642637459537637339279094949310294457701668307529248438223630482353872891432460312840631224633432949815526274221115045039113630389841168508937945184843987802362893675575177321786856581826662909132636774541941508537260033942375197618807721152285428703682542600064988816713063005783539108191332917740952618910462439567603977545641831401919349174374928114971190468875143948258430979680699754415071795778224716354337014086291571533006533035806804298069953611192118182213027161037997790884360825562413859044407722975277136287501797373423314316168631754225143481075669349170417037351827781853475621073103990751723983583058115531012697668408286711931206845686595029922579608752492395997908410882461957191675047196836730920016139653662871072849924458513104767586806553149830419932557661058653602083608308531701702960822178775674264933210125311633694336836009722694437539453764095346366375373077404392154515987233605116627576563241182082707500462262179748863426306515768685576183281355050051897926458961970662001044062682392350700852808992159622076295023501827152704514103179450857072460498238658063010676486925911060593837514756160521045805114280162593515405030131061751712005275518037303949026949614101415454315844850089830685337620160022560144882743506722117820342866129664496769257888169976577242457664731079533592537223289125631031555034951601556142530132007935363975964789231840277335020787097882636686651497596328563661784086667836006744038511892145312248799261729888080892400443776611648348514123310350069291813321143905744395136612853223749560946939680258216025585267780744618979373621378339963926735605513759774771675171666785027842797514946991144783763789449447094557337090308200737126132439658414638305306400409239663130437711189159688388455853521079504699801432462057540731298911466161430174127872767266739190514143124392646438673955568389774016076834516918497553212276674056163896355217013167959030378946260676250477488360659964308026940264150513201801039544404949128542435076771881703785217658165246567732033805295887398946329706318600629003903005587547880274240600927660030701999274264573009558399303985700742883884727347467229546861232438807744814603715445426065702224935784541838145942043023250685681277866735402313577374825208250311149769986241445097800727566531523315194895843457452941502735271316212457996619778162776693298952598397156021594818394005969765221702577226938415640512525293340833081893248373431469831626124564189371691924542503895349771464432266539344147120769320744576037036897197655840904894946787890108802867634647981662360066243088644822345273891318805535107934252415985946192346741456531766532678515171070336636691779921408639920097249037281879982972023584119624088808682549240510450681794336842427398581509310685642819222477970035143275992312267104787398759324393544945816032959007263013671905814365697134044596997587798036685927301680618527884447198026456191313237699283529362307907989932677576497353818471783907595527518008650236602359686288422061334981505599997862078509442630493433235454512519881400589458375526132102131208837818261989621127539932492562501146489355331025892233121002699726558039225114374938914087289491962126735591237217734467381490444621231939151296217976975983717821023175323134873737024088666025306295177209570239250255937975063316836413961290373778683263465225676252275582020781600584524247231230168679035579207788379487192454712748683041301090634982629262350280544869457891080355338175439549834576494749448666749006440402137729245883486337761487716541661928834531009715384197287820405964391009388651778890423982209710031222971732815530686595994430461962176305616001399751841191827525336524364334336253530011344133516217603178843779137179570559340188710606117308210511251479010341662703896936019039943478526143551525153310517418597909226101765323494107247486375341611278237991993885461272284597838692782137315760169926722382652853032923265333976834549393845800674178616587786598656206553401954549607083692931964839761211435975555777176066254846892106905652027180485705094364447580009678924064205340214009659100220890080671246020457108261586228520790449153668964506777332472868501671825412249440103333704540569760795557361086738637392623545045722079834724443173961494732043113972220042476015437121673041673828167491707430796368935692489888030354313279372211538848142937048080551168168943548804259502155572009701305258892736893885902545599156940422789354520822921310788453185611717071435593213506868989158947698554691210887030845582658122276734742187342152657296390745919704815243389240953573842309402644238010071298449377201005666596080948997489293643548095290979778904142900580312243978261917451358930262681760496981417636319129007838880914249260804502890072156589468177930459048685830180452790794587232843530267187948392074155721136033915968174160922277931502768492987605351311823228376276741543344530167162002641163607635526229097562077790338075358450523169900037052130266306059099800742698353096806403841809552645165898586904096488520005627134019449536118818589247034680231582305711826773225232384984389714287197128225129858655840392635007398196359805034915960741894184578042722361042823149680903814191576292651277365171044099028958429459742638572225338384054618559195764201593666566133042119856105487765193463612587755811651330170366056054473963891739771999247025888395663999937843555843154076224810402280377259432145334426618587908740177720451973443895870253443051021067369078609726490591392412784535446520854791491086948261763388942754723925898176117871164651412705753005993730691492708294494469112240693489512998956110814250689900372592507531299828326284817193168413969013414577016234899608083781574340677916062419099154758809366933279005270171277167200012166334023767544869879668094433557925912538200755000052989483773429904305646414445231248182919456460716182723939286985626285136431963910320496241954284816783553886076243646425698694761976253956822369540526796031081889948305034974512668746932875418601876480969927084670289433250141545514700801046981547071488045413352470231163791802262693894734386393706086044415952664990708062764379564058533601764461667984186156990620696191661091472899355417787101645826607789081316264359031396289217956570286145394376900592966695895680177191508073676428541207455695101444826295436361541169962952823047018133896304752856147564134453856807738574428730076535752384133866543753509958856638701721867905984943350107584369653259841082728522441801563046815076343462297612836963427460597773702581816275440293080861954934269479120772754663927469573941023314421666511843546438116681321687566541952494935428179600714623037002671076811334216596770367738619871882848484488578161917679245717526246168804346547514950554712357985076753889664501344019074962039474157739286555869482366106378775880856569299939135134300421302754909480780087016056930679053350648515499234547373407354810508643282265057893444150855945393361042080359332668349939036979857045649753143666260950559213146034278963822013811507630028356173465286142935827250359211315627371747441183176592539808829550960904503644663971679093403871843705641016321461546295203532047512615399251686915157724181791442627061983203776617912269161229017942802953046295461914388510786226047850725197553853048537426172278446706890527787084147092353583588471399999758364988084370575990299262438332201120780662019017709017397032571347331430807497345481801670396894334432534557669646318947017629273981699394108743544700481106182478946104086202209644184870838801587702826215044824686844100928491900491678976403033247579145750412118696773345544995516945476622435402732304879912635873755936206403415537735813358643259495936925069117374052441239730919569756748409960752176167379143491052967340907264878559613023751476367633023071469448823269902464706799523960967418851204595802978721242172683422060557238394549596608685381087287403098117648408226405834289208108963769578722709527794299799374736201878223238094401899946214457460769381468453079609074224766627393466293878128550664575045542760222868297312369933016460842064021385913780063620118919353492685755627003385703067838075143806838628890864623764096382287710280241324456758950938646334223506305402516645807291028806834954396564134581167340748244509786870651709023650311028415615120221466277216589338836570791773536480747944143494928653544190487342779376809519192279771208731127295850654466134106490978746837928416301864938829701982918081320631743036054806059549242323004597062171944746340296807860799480341265086236502187384212750107008082601260276337206678876378813522334928774873198791442919770229269060182597868176429251698358891319498099877351246100810961049284725230428719093304646902790208611357734189496109643142221415922124892319950530808433285583831176879994424451173498277491526201886175484531167194801850298221970364427995011399375187174187001678019661808860860623655771676703728800244281276649089789493394120348333387832596355899658597341274386242871042915451960581273953576412783305989665208369092727984293045854703107920576445205091284082790738794514631446003034333843620569376356375973764616376016500308306345277118860163426351795851352029718147573537811945697278736230801630051847821868451383338976405781638857272580153521685378510541490268786234211001566824617104475742790861648888397740423511637348000937051443215036993601139370620018952552022009927001385863093526345523959936026666162084565933005220559796525573307179121871170030222096799161606521032949463478542878132468622931882725341459657596652989613349593108924133989043818489524941416782730473656610014083474971438323707030540289045099328908039306351274353252092098662685519576627107008972230362765419100118435277097268418411816005802678546583249558218664813575908944167601201043119299702080598713034685669233715523373786998280637886169013961166132133773449425748396781386978823283653998609712732758941903132204015393594539395793080963933951217172579962228464461891003162597915837515804354243957457996816157548704282433591716786726627576631795854497989667033440405910371429463741998553401908550243292283983516032941696016536944784534973675366975963824570698821378806738091177782562605929438626773936032361806852042859906262253333063373470893892417731983552023323579467466959220577976286786321328463349896960402234644258560462494949688540380345846826889001397767615124429780875725078076873572711803140970095547179051815681406772873337908073378011105319194085553809600373542819825639952047979074074733878856356888099557507065579299928906843555477883296426862694119473802839288142243166403747102072129464614632370065598985896519590282140725929081204085991921669449684919257995970916266342136007250099007282022928760727303286006006602219901889404463669132814765131999309448645698382489913837045065209454442186985285901052187962798719635739410588653627436709445039228712580311825675709172188865531557838774380237020269937211488887782404605524993751936818830659356727994062523804032178468261095151143207801767481666042789026180525946113005044383889013819669108391887617493722680142132089350282059978360404419928891832215151306682900551639099401565141733300947995803190725373125548730177935395211053851455071929671013419405002939526427766791976718560592494219147593184417771659953636632068042907537352785935289667195879110006804621881494009560872856812488829590415414659445536544450539952977135424257165147048009229876252309436875911527952143461261509580462940673590097462365481429951157242500683317827688316185333667829267967920482844441828429157280038547099714160469516895109222616250208091493794449294698554505059643381697905720289094511042101806687842985557707749338611314794715373738617821875748658113225831333180137080096696858371328098686447984356356611159777625984373206326233776433327054845389185135857526944140158584614667008740870504001233043244504015246952423363665147362232501128344014924254522239931788008453372520289632341065048398969360553390147284940296029648665320669334480732533961500193775434652414034382751522287417292732111366198767456928353123375875168456126911564933804728937651662520560655589845768541561935336990954974512455109290917106581834851887585108272408288157994704149339851786109607441592964423610502924404774306411195671484450268093118525595126285994356898810977723168955222693078520115302052805875269343980023108323956443939996948882911433489150191476995287925972333863195070680482445215498105969956915455880687575570969109281268604934511438071789375846207595288250820221372227167851587846014591906467900246192704398356908758262065253233394512472229842238172772227792432589368160329786470501451225005758130687199241233090705322572009526640701258036737265069429330852094314227290440944058097316736986146694149486658811720132245400408946327665936116123876990927730219850042343284780921801476596554219282745345275484867487409354674151968503822453304890982748645545120349746568261625483280966862245954379990761532510498139210330021043488251633662255233869003269256346730439097709664762389150017286966182023699533909554924279733208652857292961927349630862343829376404705608034954961408755855285710925603707215906376654006935991460658717945301712366469007499417455855600054820782783783971783170922230035140124035813155050294543094839430006491727889040504853126567087261259560207189788289584051857856053266307499616388185196797002485076316014745112958297827812164868063797120515360900503537031948137673125783922507244299449381753557439591299631101189473139569711875468903256800304299511042676987870944595886786953694343312867338524760693866139502382964199046959680545447106770187858129633073538034832097189531941398099537246403082239284985685014907817498866055723721257426810327711140624971164931686152560267255634065955395149017596031005041203704800354970450650903359963051983771377452710134200823744256288306523759401770323062500093452212532273738504685058220537897451574489521392858467307507862889135278364431236983392219736292810291321897726199811712143939920274334857727354920400155957015906980830671775055972607419254072411508240117878180949617640133009993862797826222874751317879269829075388001073358426830795616662468657081326613017836275272282241678522142777200385978510780729841136253968576596559065942142562550675422432605079494662083899027791063336873644271302221071485211105503269299443867368784141645275282827559522249835404702006176943892760900751245606639661771798231123871327507320061929031567874459748361167004181605577656726009330777789397975087227803934551952263486730777479934847241027745785163906053218541757195874068184713397700328363927722970184149815730148198352042186794345521924889120607503387836866546865226928452506260557821929622775984654601319993359674238855855237689714549457650284623161207141414115162467170120433695435615948882536721867926497383079381215634647625781440866539524445395657031441688104674988166284636893397641014711649730697938065708951827403363486965286116240604421200549116261908412279679681482596764580772997987037924510044974680291401854460626488130187359184229010731925253196756061653917288875218997626119052502955159280846919322626627990173622243581280021543399206765467886603472445781760166994489600992257825190428462842080626355608284613776244263664190851734168953885806817404054724778719146194012190510552541758429672017938940236691626914399140401145058455720822783756442247665961322392029478824990235985464620213404737679541731439360379371292194670794043984856010121409224887378959560804786187114876819180557811205316206582757662263012968847679657012751655778403177860414871019202204861738917558477627053516783074344909291348092265138359144466888793522681623401879925184863312239769062223038494392662485216787939283969462243813327579634965293539518785308913822609769791290979043839318326383133237147494693881740658686982310636550429790438039031167845095529315635073161040341395146048919080347785659932480747203508606830785143534491575596605745197097610067611867955447674716382120670048968062662528548657450462926132247884610831904376249144911453189459027555504515678107791874930184043602124218510217152417147081022494720222980127236564426758312565928176331973012618718485014052771140855376421650718227031615444141349479748391406529084164116834585449996307386012604873816744071762149687130852617880191095864741959452729354294729473414856480795695178727833807851081351656019701624482322435008351052276851447951276993534213188171527837970396226862635190705783723478375789590967555925613258609268270258446719623788270276899293272086648599800458657260834083695670994494237183999860457282042018246279023796326851500607795997116818896729936219777787073068364948494033390378758053586594720338078621717278697529464834085962371551563962199706537323102451220324993304876498441577483839140659178555603907110651176957485171275377935221245891305922035117876143511367843333667187907573213603390769680469531269014678501021348243298495335729500968975231085751320669703068859043291928095636763239337263343486196312649066101861311677827001783941831139139177371741590233003081456537348769180334324295715038676456593991887690937974632080490361034905561149577798151395833931419715256201856085704752431095203705320873725098644680700794508357171347825759471313719659746493293340354723103769020088867342904820005899328785779147250057838857738772342090313923979523117797225187156124686050532815115934969527245166686047118488007786105976345987631010307734791715412580319795719593371110754664279613107757568938303023261599109125404017694001658675591516814541448394263068834840224424949142855990244111290692996374496732910129656435253184454144617655539354576618560673062924916126358219160729417067765281913686615375973610963216999025609452498403803845946107392908012355222608331489326077527871237269708400443633540014561733338610180735650672622943592530063054043082283472862510398301391791510204578141882092008203647608543864307899809198701683465253312417618386404230498946290756986192671707027655179731080792401279594753829061480752861478362917667157388922902904792787326914375713389373412044887637097329936685298107613254662108496053178325759017124963359055655130956547878521254292590578842468374871627742135079190251754817531037436768099620741990829047942950069689412354161791363390193017371500991902266418232102853680298192192342633461195160901233250654654268378389606309155055581456075727805630695553824580064159318197282163340602700755371644057799115627507185729935626025181064602357320607781600718024152548414020691106956500330660961327604127044487667025568321959108751967280687604213650495241695404697045910391374927775716390759345624931312284629100858766964078729653196020228060503789882482073382016937266758213483483587289395212537134088994853098699353735019277339323890593431796378970572900335269564452695985691214540806209069914687512803384853869592620403574114735545020073595976082217707826460825433920042106128621218744420947613192614503547876026747510753029782765516631582250047813986750232030501263587555597094421227665992905256949205550711541880290165596493748793801390250916523749786123618381761526516481087702646792648446044924090003284258644137985930234628854994464877596791392254154946145889275420951972976033030579562567521763902268280409954249302381579030489384683501993156835005615738712962355320554679778774498660133292751757915558989270753472194661900456002101981291217442093840347864153034667984582730245280220670525976650115065598147949266955325436004695895462682166079855597331732010900998281059481638656948422823855960827161081703822530223522852761469197668173915113243025173381576240807734581550433593118453873943116650422702681288281759661839044593494850453248965487019199941306358385408615875253360477983021671319587101431265273894437839102597161590367131446611942467905829920655687764348814393627538147916737670619499034027215068154828165545992399958724650316710000917847240150198245093795095446238697580894115800087818709230733043364927340843614442186417125456126266944813722513900390638393930701845610807796775815013406856066728594252397944745481049863099779477031428981399136436749915559850849426925381698630134043635447366565623225358690985989635903549024320788401005355585490612702283388407511276888707171429239790045940122646761074280247938636035319317601912031113912154444097529683477690288817518827471882634342883833797335142422179377128369500711405029598326650062955435546468722655395879659519928907457749543621744113461389484378378063349265842394308252675251086123348137979281640534132599422436353488883636640273891784135852718464292415233238785208255841369169384246872004727405822628560195909025795929575687447383154320138760556803276158379897615027993284679832623658323806587874502320587671837536337871688623549853491918582359551704965621551924391448434430846987202729907915870705903544881097115235639914883015036872103740259186426404210822591037761902594984943036889042067573555565621876253027310383650814520108463650226648808920102766267067553251378654791796314168173687663365752157721391895232067125117328729227529328169249455405512839588029397903560764556973305431167106050365661680110913242411819799764473772950706480714290174570359224017299237005855226988792999486625033619543887516823096253376364480447394723657326359364279643935829099346937275068925488471253961095120831383324298201914993929774896000453324284058656559695734645464732717162617776410556543828054568887808221145172860737377642375897584502051128834813081258906687396875730398268863681232284938761546155547221588977263982238487204114827602105001255209059908526148486724739821743373442215811701556869427101552813661381429072232800451347054796820585036500773935804089677624481413008823054166348856547955017829899809214271743145491409390316412900312365557930728514417465878905073488446713952449446795943474317976298693562643714928781662982014905873641048001295395854072916741928796496740041321855206081298730246053697690954379976377872839906904368288961691978048779429310077372581246471606217031449100145768590225989658996557875590853135156979756612765683788508934989467570752753012586374761209964178636118251068906998811010907069068208595583577443120787014886632708941502352750682769368067387149950500458673185183441400662932491844529933975923305426571507119581676352121765959508292532788771208996869629316038025798981973194336556840432145360850075742609655367474964844857049813227497048277427321410158439580320541110580509647244537015652933712695420043056442131953153068960116389419534165716292743879346969615874410851511251510189168955162948465504750750041786974855087702436059233091945026528198843923657033741297057323584110322273739450734580162387655122351196889019704442820382331057215251224944319948033541314105315918872370509786141962686733905797847088660872917274413862853685628714243934227984475787914114072965112347417368799253708333571403482203761188600269467916024302903375185860802962937635688530076739629913583967473609860054025123096462478990231588737013151512780467627461420403783717852281743192583600247883836232728324356025033270369168874008800726007663735309853738449764955659595371416212190819172138694451436277100278960368213443118779036644148493003583030821251022547368368169956350112477696775357362587179414146027049260635010198860055333906962863060434899241624465746583598499694677963849058110010211559615375360068055597616485157591588153528526565868250578215887663594045116803344917283846022906934806645829287633529432564050710817413209815493424194878862915629947602045924026428910497266783662052308984810098473087915217901875963053424500087863636484150335582449991597192484801008365068093376424680425994412936266780219204476660069747581410299833813641401695484013330562942329971440171921144525881302423652997082943972975457656403835224868385227130443170366673410188849899048365529179685026838532853986329834510467298661532836898881711414120524840702400626852311258331060858777150855291240552926416604230249895698157666109117912012966856975567776292411720261199738281070740900651773596283217072797344542515831940605728284288994010100957101317518496629217222659105844299890711067306249220868959493404521188215329388743538337126405911308506221889170805910934427783017052650096951911680893794839667717983967421345558382824686143453551707516031705050351915776177068670398659308284607455003175974290533466921826624621718233109366042013424715235933061602543767766721590806112935487329171263052664973570523043436585899517950564651621345755634635920907600461108852227187272003569906600859081654403826195578301683828547625322598580861948943583115647132152050291320996828825376522563234080819853350609461318784537142944933481566040968691598932915288918392400558853170297758458020374433700370477084283043318664573946535392908768939150640409812386687080689107366604366859372490418145847400573787270220194002554971220386320423938332914622002228777956347179198198680268189649495004919269742661961069643805851668722317136454031690496673106524812524460748891057300223021396355254679392412641083945877761810709097780303897367368977259399163206436474989622459507184823896089683290381978527864166495963233081499597382696075361095067241396842939501947834436824794318558661963467172460814190694630159354739507721210690394858928179654189567473731589305027012597355084401207287423304442964649991107530053331893660416243259224330274906508283914987835732280846440150993407320835558075686036414286944956494544137855162479646997269799780532967245866669598838130014796316353785985730128252401761255905201978250456892584073539964381928355324109027467976017709611695055640483445187361622942179040869173426523021959058072546094881659967597547407189162574789074861923987001961541738666634125017701494768771482842934024121309530923220882939724284506552852224046962184028427283643789822074936549763422321063968836224930330962922853176996569837103346131101824844590358208511682173102983131447831853187146536867968530321695436266496509984510176918235761521259208149933662693126691822248899636497067855956485167374030048129249219862494879232661411555226983864236017173677521120041596202293044516279920469754100630754900087744284006254540508920264173856226345001749248960749230638925114700410283849395245544480251054517701779276514665370493488870356591677396626269207683890152817894307786818106992136211465213184635755737879874205264408518193705643970775541229216815486529736933318769340588983754504532580305029255470020652222601110337118384371949905643002389892983357938201370197061252824296266066478335638402617867404313969084243414741267979886043531781101697059738714325543320763801410310913904395117740932718445190586342288550902500711211559202371842483593249826695167888160009861706458617940590923725140340817565697251957524921737494525742643682402287599188473822496072652110372691993452179977881314276784884459385753641209616277848494233050297326678523428974697942908676051207202211387752284376539818704028177435867694458250445419281172624296533231334350624924191210050938982230135616759873451329825508053144593155762488425721756545291734410139831357357600386435836185660094370451383633202766211739528186162117853546164198221559282427479196169929302836079067052350128352421881576154819036372600238438956519761923174618970356596863804947702794009279047095613880675566823904204334533799689385022381173259365297889512799077184471958490381808212352537818160800664700107539024788142070536117759550265337970227381802332586631541851841133298522941789430856018933504470899595426284226465038566080546210182364162001054298375806797327023552682565961813095445552922477017425176168209986560639804236169073328564575206347647360599395529812889566036798364335437135462113479423476524869580747771491993455361900244139852490054696328213965968506534730396663813573527485963200039247667448031232194317930596159047621295483327946852493515117148440024768780859089471521002422567260671107338248371736604882001756757405398051567628306247315995946585201041575279991268277088876365389006113663509042941928086997925940661298204778397068044878185654309616223506988985645061397896990772585311199804619319998263483954589690573778482364169187561623508891271645092498191699842456606770247480911751504242751685768635449262039590741155591373642906998746699015797758407538596067070899131799210546642334748361943100667867412688208713783701341559533912857953834687802782828488146059614770710077475418948924429475169576283359668635589050228761843473445546478136623612884371808888152517195608530874946910739627932756131061259089913063710119573522340142400002997350884654178439479587264449950670991853676864132137197340176347670174449159705709940933974538534569360926240996882772616111133725778385759718263798759967866645603858085010314522309515740153554495724341683540621551262294315364069741106295669230676105396858436015969343894688215683588615748035949086716329796390304590652023740233662796539713120378093020128288963893259459477026766286597693061372184996618087243985308574004612695810452466372169642809490008313645664821324781238761431466258840029144256195352317535530734964954445564890251172258297785738003370470012984393971206381984747892513593409645796231147472181184079632490779748278879729005399695349639078360449407866773228735469140857516568492481798275180609904285801467934583239091387065286553976518537966398283395218513093767461946308711276107553410705903238664286042623829544777270568500283165823079730969394966728789358264430320200535651026438912697947572830064282418646007754575689328408102857535971474514381743537925593872438969139974046728453236738405470593182866723332655934153301192478616336058223474972159413046385094833109896032561648113882320414870565752749658521975503006687019686672360623735158923819091583173504227963737686052930672010482547126659768521796864322832413083016156697431537323969675434101001934740437054514369446434705687990799163849610464794255576321470691022754223915063199504132685694972430460552371325337420080456438186170265391977018149253081921468140722171406580413979422034338625308664981879355123556156253705615897937850677942512507376943264497459023755149418334504156873901253706192904121924171779140629094637055600527915719554963565428334600805771985470534946807233096938783915789054418615101621721383499188479241035564621534512036098282632689474058812674131318188897892290551256996139639240594323460816541681177282459168694033457839630253124356137600666239633522269836391992862977572019966364690652622342331059324028299067964367432954159353902343232617901251446764722117446263648156092125179054895856080584991809392550095457509560772769365108545040323693327497132242838760243606269132166277150781454599674294236788555322769950042941462557698912389500310710731472878995452912936804681499773013403714735344331490581786221802033662068997565503035324667687144434847451721124398851550355257981995627811839805290285818008678242884623635328696982827497365325386634265215614537764163387785738808693442251738997288878320695790738225838413598303563136856993557520986235942057518700831656428529080710418991091280562455823514307577016057363814492768208977033965461666487194597812967615333099304969103187444011827788655858730471467294632512938765887199981706385650992931199765586954935997682015994325382101168255440026496299610622441436390012864861410447395137179389501912809839710019256623964410294413386022353135772869032236181943677738352701916402263199484349236388694503279738948630693878077001875167325827536387967492955347532994738374849323314469585559415892729118270070521393103476462618012745277575227550027717163760477289262054343258045353353572954551038696992808202089454054943298994097729479219416067138540372602953390216359530999828546689141361974856922802977313275364189858165864431098878072885023338979867671157209330989149273904940176744758982386767251060436272895358947841962905195595726877436269219627142068994719720939539714629842020598506543592437733290083382121450509758525045236375814302126254991493381785215906486850037689911041919196698889028332273447567899470946685138824834007315612658124237225554783506171110764298018955813986502796672736305938831822427845493776649836621358655840165773438670987644510634425211448022641004367312413703074682009455782156811193936442348621598204734602561867858971546050215476397490974086614763400407524797231125551006050799275798895827725072120065025859051345717952770182239825769669317174190811714489173312115279013203579445554523469138764221325618471685927598263799077357456377790001241421311436918976373386444473931688131816490636181222584287043468466045746399886947243848380319659129155629719974330330483526001433924986394594294711954166347820329708243538659635962590955879710250496598286470006687739175970782706356531904711556511890894075361596495110134960464222248188065290838560277484433789992913358373659205380594999211822510454155118602636846346567033062383557894879979660378322756069474052325021512874016857725370373085482538758384117553311645009304394433953400619672917452502625621555208562444006867079544824343050624134938946215772352713884685207293396500622640530069342551837155745646059240170212820308588186211502423247666803524374659744951270795876105671027553606407389425250676666652572492541676444404120233039818786609925844318699552108574567892780916415384311332779022389208553702288976099263093041281914334883355332128110063757978662417814090269602540802433047299447465721692383915592515926967845434943567972002458246009840516347593382494879914379646429585807881055270761145217622918045722564238523634646663093627345142759349605735875490169610022714734827899781067037798202806575558129824854709743837728511919916866764888032846467474076614058044108922316235005654141795973658628780395746217769343964767550501465521705736915244672197405643563168307110990522705115345793816422355830243223763727357169203039942712940195033804367511320306108673124693227132093554714364365282164779653524779701637082651371266471583752499859514623102040219784208078307688026597984192911394613639757470288672183118308007049453951876585982981981774687910872987963784686762030959832759355969255900542626410045624499935575221159844730333587913147101943931991932038337311056027251712714244332229893326658817465619864361523912197497000916811562547907467622963728091006263077945334506459561303061587131629968006739049364839579846015782549438947038567491978818637444555200930341627110014027846103252218412578356990593416978618296118025278214582253000932337217465501524013031566523985654906217797737067145558252744774388556347816485068002875042816000132267541388664298223255682065684820681190045034667242682021618985843434881036977436222445514392566145632394256256455438305965693778771928497135231428318857671557995260401262028148068500008140340813233042229662916046209176435126672676264006982329985832345546377072881679884841476092607757601151492121230369083379990213721622404124365050205984258792926704314221644183966023598459387843658575298239000727314379345933394440264386457318536169069907998212073907776995648819936920977361863188422428419700214193704265643689733339765913608409060616452611631811108699520650558039561814436242731716854255712664200065119465937218220342732989855070170917036954220887402763688279229222920389114334274122180346757870211675387255140284058396686956238774768785613143986849130714252913680977201168404859979183115902341909201442168365936747030608437865161218837153607156970424852691455320638787360284127174393634727455835542454122594495238235476711861514976191348209558981724854976002835062834841835545850902088422297851856601884807527869308522894364333917139763753958997364186070096789195078481594576621546601827511302110436701162209385681766881105703999360046105540850463969836268860040152943014469713208694673555002527324788219939686147043586651678617156468990432796608884336431795625766184945100161907354062747200476310197356822910501243233374270017759552591119820476098699650401621587388460569309670459469560240407128602862665784255022611726173290329561847603018759667225254857518766368450202792948018425502158795030991038260806121370413321793077670066525716393335766387162287235120945987473270679120689710505962876462512835767243494538720928561924222514124724936475149770073559605205707512318984514467890139869832544205664413477513137937930268369970017483528051820559863268732610825111608651195305487690423944313399008705264666783237285538022732802340507917284887014557640867909018211136963972595113836330604572533655612002699497102830543637071806935068181928385874284708753915595513608868388648563450517702058919751513804371360796732732292055995354848111321463271676803893588919640104126610609206561480770828966132387367750786950231135922253244001597386392226158924077696718512217971060027068804685082813551680262714592704202915244866391852114917270598330954943391022245669474615488952720721638971566579876310886603305666234883697875606062002481224610876767996969942840095316443352639063770072359256244465159952313191085812495966691226026684901455481931354944723151665431140633995851494346356600746773586437531499211224090245651497485060253750159228642469836162810444683016707744365794518795864197329626585430807947868637820929418857890519589765187376190368774077397299885868133779471481752705103419574072393731023830934712542243202267939511020619250179141858354380311262216505311259602094036373874683602303145366213455559688025245894648122981437726081532805648854523822881229536136580822781315152610741913170104320584707379357343760738621621922286568891479901886170135674547775077651635156668122314260363932345686708895399130870785358204179996437687033076686116935944903633761378644674817201707775693903834489928127965830529031145334291379792318503097671366609455026997652487060807228776020169791181884712680803212257617411752795024112083357730764442902911877052154218417628756271754401483111772344163655613926110054795385317028792041450383109440531458451201389980444092470923875673148632991838114667217454902511347923562380015454207333780492157104481620969454844138518718098809934874830027283183421636705641403002424521253550207090229998912529248047044132727326574106498221254892504239652862330090400216351271635260436717951216540482208421915384866719671311684050892457195117320394016060238851194489540105659742938582917361407625651652596959393351535768439177026362950015968635797138879817799389456955418759032028727353221668698868069310233817026893278749023985154414687279879494701061252113079034105086013556283357264657329932331400195410873709435243998615826043436275362302860530413457405996942572360812783723182093746035734378921497517921460083416149219601611396076574154949705537354139770883315702244439931146061054613397614054909120586673786568998390279444342747875043136985221090598110368069250358279509813943402442200582896298858269990072009458148508448605880573001240541563311712125338922833181297296824674549695771815905980860277524243438418947924014393149213218946842803987495010236991365129391987429266780732457365310765988649483759372608483134901570982626399831406723987437252125477824221432167982088455041022109219184731399093396906843653608042060163807248893929456717968215999967956700331419270672140885240604249960080707084286981335800104969594813805014569234194745532508578205723506536086758998128674336076223038496066585544152724125569936745025535778327964947559177981295843544211469458857601674482662520275870584943734525000529727789526665510371586490740300314107549419138687505032632727351034646259492593930089931784046246495367458080780048821177118398960753738332720553298299971400994284205440632358324563511820330566292418241780399176263809679118637015078402642323659041332935787248570316813612198100764892189481275655961018390459335798769052971878909854244842843833700506644116332493317903722961307334124387008283571490777749354870422656248205222024592736514903919191190932122436991789193085508005911346964755039787340847378930792227962132877744919017764599509697464213646347085595213550110591044364637066160946483964526130784848145557357025431037575913398967340089364078791084730237866379175152878542196856328538114317475563705256651746983438005446177579180748023311305824466458353438091143399095350607899713144272659897701525359913036431806544699034659486431268560478791751650455641815790630268091704588376131528982703928824656008045192933845788451300556572446488766629282830598639134465512601202913145145715957560962400715131982726177009225616484317048473382701379375123936872035701099834679497374127447413220927442206907837364524602923847454713170996507256521973246118787717340655816744978141819291880704584686988865520179088768732525381029697345290398127037807564830914248633127046543445172911755032948194606691591326995544160932029772360007586435537394387763725011450873966978685040413876423857817842993326301050982154483556293881743566417421992643607837491939593636165864098542799383011955436711144567074219684474953242334139224266583988442402820093647108563814167205281588486781372453895361532780070197632108146544945808092353964967173599029522235340999786421537464498709030395128265237538222266269711116166360521368953329012251494315164257637614396316354405998983897631787737842979206180810568053034716778534113536762394362270349931303589374118269961999950712110852420505971450801608378853478307430432867631530781939904040408133124915123604306302483880142550595034824450605072710398329848794712231294702304362152069824292010504336223368736023941609697130607944882916650306848101937236506735120747636687338513843105829944771619252477879633514125162661083812525253454090207672144126249260698808465043915330649312181895516378196432889231598386102092860552840761312088263174786167454686442270760774199936149076543125102626186198099140427739574685401336254457629705526862994350104856227217372966222961642681156729605527417342973111755278250140406629266150134513567024200800196574353229677838871985256666514921936128928037381598860867026099702078640397944533400693114802384452624549514194383925417441352449958922359261396742849918049976105475058882655330538127747350087572646923780984588279371857342895952489725160353523155118558323265765699571397459868549842901196202990018380073407798652726933461905514045968157034340836196824369575323498012604373615984663067503917175598217286196129424395148771991386937727137790024292810540554479008423969291692652703869614780109813832322452883823420133545484503876992641855353841629885929388943848681160375573992130906121000855760324172630154093398062968511408561397212535531963532929012490166105011109915488648079981749851759621124091737106397344336526732934410807761539250684386495481143681468234408193222624504651940109138865297664241343109800812402773624416288926475440781924551364984749479439756479237399120071200015124389273430894053285276914233168309114047763083145135683912972990984225324747058970439461431287822551556752971903126910757666006712017247550935579091268117159668830252416121395638492861255957286604037572584988554852159068088776114511834535223313928526184499154473994638396557273700686403475436916143382141814051006523961205869658199480167427426347266044688490393972850310355211324828704137628666452386074388595488567818719899611273185127614292171595615619342753087169426315640639562658320781303999831943775881962485760767768692259123327669886769984934392196353417506172189688998056693938030950279875415914059682853488536242543325287876781230951441497180016349268018690578239349153334246917530350231047614243443652138131804819387640033979724932607501262542727664817446495462649465614227498131999274729213745333890730596973849684553871311529962347446991556516608578123064125483725191236350985159810267254034278295928188655897179227094905984069833104908547530199123048671786189556454213335697767752685924151953577957841872317267587109755997537563610836212157532724247273879581516131847223965338108181892836886559195871597632057053690009082103883171894912893856603498607938419278765084806314455403425300839640765456250080900037549490343636963164570325644426401824622647820784263386947504425485662776668392887132573191681882704083049180819043788902003438189510181320223351959880515272415353581934250702118031876210888143526880022340793120570337967029290423167677299322709941038921178088989599211788577223478727345740490882943585165223608536475933670721356580684909105792192717075620437530637351317551688925519246265209441502526813713042468865663644477570955471122688032897790950644811638414825634203061116041716806618852970094011965299259683752839093762941664325428340841421594929942829982399701180941140574049460130170476506026022765136900591657306555126176516369583234309745766833216117208723516244078441214919680984429631652041880956970793226205478003959889007140435901936366646631284104836367747744555549220113112974607903596690117987200731504673153138165416352222030875449126144824015755096683409746613905160988108951988987434081507975302097874015340081607617360218654140584389973192357407204718906931441857782741634998220800704739184750047096661328080038186163959066924361732027460459891930155755581399985536318516999625522174153307068441973532129588074969588991376753162640875115149389200948713288095222879994506331603088151165672519329791517765099237443590171740247465942746795854100414588629205197126839391021666893234256762910745164593461155653466293457387205361042040933293366491607381490507418459968729045869122293387699948436924445364595849230702927954465049820464255062644990025026784048259188543621769643105799812417864638510992534419067999251385618519854085360874092928107976929209439916739693822368847689568233421186447168750784401769061419520665804513649753749709274306584560078993723731608438701921791949724962373557417300684004780651204315985080758839722111447881404108690165649248586751087433192348812200521568245873078591182391822130499686535768948815718603614701568223418413573978966473006952982242262858572850223797016973772746107725333318375922752929493865541659716701765485904635311597975965451626464303891169674469937311903715226711034052054235458975410908657879619792091880627787542427004096509967193294553470452512167337041737878922252451620087450529506984461462243268819073492554194609583577103264683576106865679147482338201719617007539208210929606738981263334488273732858431927290724226230796505958471800901845645640586237954565663501487662972693941610349839912940104898821079544056889157085900467494567064984197728742249445271524076693431648336400074908479635114289739847791724137359517994343589273669269936048831507042631441062357146629490268811417108744500707141424489943534815201183722706078080133047515812941419071100030429371160599898199005439129448179281197096429214953499761890519756755567374354083261930578808337224825352024322360932999093096707189685246855892176639559945581170949672477053323266731932958872364709147825346752201487319371294182496718379771479118501847691629387193668134679474453644829258081178018674184131513253077167581769002278648330289143900521338921835992138164971813533094179451570522020543913351713565406874956548991772037105873192798374258425361743617826958325278305391088444374676604873438284187704750944336845453036964492149190553932960421878949607193992218840991669194680382582619607152743878293206048060295393041280239175066173936501445211313964480226908352228645937553817451915993340265337526860674661374552130584445868221551202376312775005952098127161495194505203014488815936177056706124791005383617459347684000357057228924114282520634516022421410956592566247406121713529558334361617637506762116557344610894096200014691920395192145518676814414914217871984128067633039064434540469382455322894857982831474162163404358758018217120286036666795847613079614783971987184003857831777083895179730743008317718166561197814634143101753005680895705247922598087200717505964247523022890947704603350603949108720978300224941398942942514237725419392045574484836919034026513351509826173743194192270559864874871575035012139441404820973617455656299097933277890948567106217632570529922370844245214744183014040350343457472413564000948638995669170673428620410801623706305243344848741461051654836015312425020475646308177611194807364334490487618586964448607520414100373888403821887257973071345575766163314481897613464512565807893404649833804316462284761727114146068482910962516739259594029454175644666385387769159560080357823560323098210365214418563375540174150719557173820632718446263615332073985817381134333070840335683480361115538794907122665308214328681458259117940722566961036129025159422711093066458171142872010866319454985557836391173291994558627494276075910657616650195603027009656946013585909988065639430254536144561177113895401351473991917674374262944841950105790311692330042916434529921090682263683189998630547356436641099766756075447376539323307445133160098519170145914558864600413127322708796232236391054100706539250211496149390083812016646284214257906283598637798872668834193694970434551607580561289109585476640471054261180006922304824704040036923458014485634498002039902287321961314939675504100963882768034635545812829657522693919928998617780079454010077692186582792641262211099356296747626357292835331607832177359986544234862630170593433822861464428816440401996384605541699938268058977593709461954948975182147521494162143306102351738205652988295958813558132598258011762325827771334623240950901467462650500580838433409079015380510604507995822795329652873204049111587472437731752595177863487649949154629361083293506736586075188093889078710002532035329849360135393268816087034889625392504720730464910828924482744933320585738659161332001123455638817444355106990432018660866766432216950635548082441409715557166209004365304599811439391638617127506752863355070463729651007113336466017202441407020735775374916278109327106076571107752668908762697251775181986510627725830654871775133665758179626166136624654274615476975415157421915173394615028049246848935653383388860109282967594542960472274484097996959484442068778817047421924172935824487109652076681684405937099526940242100945745159023720687695347694508399148888801841534597853825814862472787835476671197325823211931657206232479894242145105143897699771784660664407404160234122489539576115237471566275126078907214576156448243945112299058347023631355403934249407115579872367764952060626166689080320569968890070443993690754093131137265172928869269830817693195287979864709024820722593205101255254260612540929539846571206282892787965337461140127728543821832325444006268082487497754463689492936890762292977079682511611104889282476819773895932798012212093029657669181143627877662401336492877537059521786547420501043391171170592914758007104826701441924847061786089310894817436163158973897077860769856620345886208683618495842854881660283870142202666652896717924616830890165840864974102002940562156457289513923138794109022668041253903332224527489212222866725880853078513085785665022637012197553935810615822531085108972277339735287776793641088960022537248833988509528553160740767991910570194054306247643704529274031036589563856757076207084573412082752269860170337337044774876013467871485003288795433026181078046314547462142385883085972991146377409609609225809420229255127621717002759056946391939984047668857957669842139454553782915435814297697334587990946559674949842443695400631386866608356579718847698992782741112758557266435307538953335170015727041705928176019465845960248099246215168286744317445944715147477569897715271043228494984389911650555901596249661455006118013272914084758528743401688203830346243989645535677521055345066186392261932094165765011207797087935085477404285861364456953130633982018805106408754216781276940485518444876495242641193953464256368882757971718447591293218951348696657353714575300662256537646174887095140600014386365347909553648792562006812159213560835859696296537451468741695186623113456178006838307373882749316583638929052594824260603168076173851288987175530752481307454134969379954248715279538434825713481645578980844832470733461971184333804398670239342992420158392634577888894805936653109034485619745359647000873990498392557645845548896969837535126196192442608468966124298206825407331491440009683090977055058754074247474560697698873789619861494896639657140499173372764301860545135481234475056835119012816817074944275619132578632221701113451546792906704081301507125612092129852289614944512647818727557437471327521027657232847745854223461852047742357864933754775799796430881958343049838740233089455872230325603185066641232442419448954452099728696691838811550952182302193289153357576435685418393570662036110604421409536076291828330252398980065064238337155231123298800896383794737193619952255981582645298321826022773414815553617987455597335401337096187894652133981706341689608518512966641207041604777403807799246635677850341341218269607078182948289550406742972051645679617213822317655696720106176023814528627447278080902879949153515149361159698398425919836372815606708932342685583867289394058107548430518472447451457366330419537661724358473102413050421640258508615362585570682064546219439968894895188666060379309073425054880492291912528225532759631035643117241236861414142781668877642251195002996731477524186254110674734316626584163363808234608507703843808476017609324915943243913210288997401232918233011053730192124034335558296658848162808884864954115052045728704107092288724515963495826003477742638993390733281939241559067082747237849097772541208051883761400903840257485711312835444210525492367644645787802042942984266621732019930895054724712100607362850261527417608175579631788698893659227746423087250055088829903697041473795631932201754541591703571385291922453297433675577032566896527512469778494349060331111290712763432606772014075970239366440356052791607293762138714525823138640920127907370553623034963851314363557699250719127140828420245000967846364162430562747965781248627747659701066459416663791877503611735440243143156943813576413630037415369901348544891197351358325869314559037168733172667996586882226004035522315351656540657048125382227011206746287141028000505473765639123368181543972996528664351652175387634245767829532058395362102670998043040859694024156635091046591484112642568975054448934407589881629270574500160400608838614670211696506992062295588748134241146057043227636257106572279660325620779490250954158368500078045111410669589725474921748612801267072741285706041816111757719258270946946446522451072052576097169143138477113822925030479043475368362720434939623275496179908176653882341441311981483933304483874395265668228595989668266236690266003553519695007974027321324523209985284943764876625446191672230870652542160651456250545200750363122819789229456113769426712607294816664584003694434398183400045014557086781313578296134674800231480758117683839909182360819531411133611315934083195282849399159936793955202901725610186315893193430986348360229903836057511021451480367735187987905883046027122151594799918464063827053912910850234229191977441295538037938709551667212698025909029969027242438868041111960489975997817183920770616375924790866209110112192884463294757320053489986593971074611492123704459586345329947875461879069377564817557857151780739790664212205227274177489835894163429097855783236960925783061990051507648985304845785754217617392517615113764787995338347154432710386427910076014371090017498949637019820343356885498266880303664827561385642581998542616187896091720787999192358044278207206240612624752710051337576467904794188022994643687564818659362555090949268776944622360865508824678588364820352096762791623862357590374698167815088817202453530520968880496049430958138210464997836867056064274318188824211131692751359419696802212672705619033350804391159119171831713288805895295689261402024967903562285746724194592675676965935790023128851197255436943389100884922311706026634016661379491040038046038586936965914905642532719606865995542285936498153310264802175005917627948658433768733928327699137673404834338550090591874270149371370622862943175239629780640490952310795767646622468971145727076068677047034541580534143680156034081300891657288178237124437023225711247259443937014755880250699550521014744642842205155745248694366702410969181155033731028453817741949704317496685596293770392732088617137448826189760106727425090501424329315664438973424584259413715826769854498791972952034250382071800923627796547183385828517062853575063655974493276720206567743744962273515834240109696219491229293002553497084426197998859761311136415933419667801607593501631877531295281409279992963811803755728173742316708776079518525334804508260036559863670431893448972995757391508242090549604423047001567896174739508369577516208155599854789097647487030806491730301709053336614714045090738128490044813533314385874616811388314067224340709737905439522438942615250375685346450111223503572899403225959431910303190927170308907139199801405476296985271647732465540354842161418574041598464244771322557187591786289823324715112130916839665744022825650936398806292999456506317841374796639424874278216661476310852250838371370168738909233712026910304959271775234148315577845629093786148954926064761925424607616273714035006295034963936420602710344731018754493291456899823837934887598896351825970170163136427055279181532155326036512387340963573831266044469187422008132055532396354059530158948072050028774819918772198876314869983302939612059151978476427272663360414827356736472829425484281937698586660264704742485248374731003529446677933925368166715059337940508235096186969216188698585925706316658070214005622408054209725386504055862856888663311534207708287931228649729845250986923129650190217781524194511829263708874091118788219647107178315778463450353760718806102753560831272062657020697589058420680605443308394243545197766051523819345324034079620218504809553761895863401390768532559254106406133110512726212136571885233949100598586131031110078250626362070457213383344616311552502815483111077298477881689324498122566488960694845329838273246905777443393908013292985222372436068947445812785408663016986857229377741964637200137722166842934144442680123947148685033474787895980395683559479710925110915731955250898646572063929770986588830949543000606150941774195422028940997248257845994566383641925088402407423107086491161863652347180107208260811890907584478143953012980272737251852457466310856388352282955729425650193007364972558055213672682815228606238746117189811358357089837515343008807570545158131276760081141963328059532790118100083550835879457257978461769440745044502262787792067919178883632530741259452859869137194305511285992289773593839789661371800819822489931053083377414979713244900166380695844611959183595846257309864002820888941565392067647307750740494688995402469504752160644086200116867445923920693319797340041570329399708302707752217939153440968552951734561923526277581934354779351268187660085284123696496169922299242785996541530085107018720087827190507813465355109334615392047282889528763198827124670369053991464321055911965369138758674997133749331771592491585386749844158827732237962063116185994257802927943099422123022044862041240053154531863088749794998811694150605608525381516532319258337764686268056431575771290222353303167258995705596852181769262317710182031027561515721326921715470554633514993257145741459289339218344654644633577233458166197438372886590563315155633039254142043016018064242938122122862142932125595788791944543209360600593708289236578962599390497031223410961679792057123258434619218711710870358698899400361578502754517068954968142022049041877359349800484923591495551493885739911489330309916397927567951811291035563656988299333974182518761373525219236821947981219354984544585168625235552831754260892195285687193948769091272189543840038359316541083949479483267276868752442086548792513451689760998699087701984253662856526389876982528484049627585035176829238076065789121999475554391717835955554433350886502685488673360058713784961355616235690908043728598797977649728999565244336436036542615644748080766533222536259051206119273622814015018128343140144782507201291695782572287887466811455292574185356988777391827615682466163943690978343205405548592190428449442967996722835908643870624720538761259030541225264425768379307838573444908921320832005840016417305902343794974452174177842357336350583358984997342226800079991903609604861800529226132023974532062322692320591980892606279819287995698338035577251850613924943274210432653903214304314479332119430044542825586896035609357265534832150672824862754182765540426226411534727786576216353083636621097917975624319811549214511914372382122219543694637561268704007981588261308959340629344141559426767954146386682051943878202452247729697094539821842875794694065763684134285240950902947038093967977504261302911927535739188361625144611360048185541054381701227639982417810106187377766800586178758571371923343049014439595817741550946618026579944575741376576893044076097734303713633173358801865702773738231987406773187982382418075705060037757016089032576115480640615720175307410610674007707620949500696387108361629467507469368068289640868320791615062773912997176710533331554321977048860962967213120568529176413094262931361927655665498040931221050227513366481049351364014978570290052282352261877658060580038185459751456929980642757813391609080404289303217820469434834220425084697370999265260282064038841595617615550856088958800892364207067438910179622927340854275531243795729913206166701745266861370040941154394345831505336409071708978996217949567504600945764476024445326667038466247357968022835462934124028498846120031888097736360685938350040124780838574660845671545588580491167905266447490655218673221079642857314281730783057894644704543468489100850762101369923771577319772479207700244221337775531303066905058176485934771988085473696913158182487229913576927413372029141112618793031381558284209829699744161395515324516485431459939112033900369536760716414343694205257743213353128262187116185718596381513286641940910377823618322064216143744382704992670337532122142686393066187901047407111713275977493524315545422392667218745396118644660908473677587079115667321565629631848807278531350420475113666322149201765376772116745717014736324857335582280585764661019618562199163392294860556315887671664930556652800621278324425779713666958834517157550166009398218333549551722780926155179039022873745421569624889000603503373440231819087547118505459599307426329142906779740736995725285560987459939162829493899151689476427945333172081828045889146622769443853232850572623814699684509038312013907940241967482291795378487995790630862623976730712795862248273044073533452455292075664931426880146580162806744669872859752335021564539124086232972584889944562938562162172823531252910016381976418878256802166001913457607372729805366745824636881135008636923165796124579024808919249497967847133372344452919894288723300194609031755756527983779213227886421096128510910429965597898170182402690399515643187340904763511318266961855063163355520429060431416942885235099375517993424907635865261772281280081794834702211054564549267051822424623005463282764134186801967869579638590697996048782192155983916280353914885356792649500751218882254083422263003447205450153635751714231088147622946236595073142021575241112673441138084486852276507085383231859599283209204898730105483779094564747573881960377893214282667823360703264007312116497487298731761660210317891618178420837623259943019521989601860635632010467407450578551516621221992256491686819884643609321186815491208856363353599615777864642536867578033423462471144026699358221032664503105432125295508581854446214152347991999345827730251987753590263611324376026462955320267296294589274865398300952314484608616538569327847759458752450291750644715168261912284064065131854581057310321865865148566129177274624039892291435091111056361741625319959269685909667951023801209405648592386862155747890672565381011644273705618989037584620614188683464661754276955467399403061951867981822167367802338752505143848053605801978292105443304882700449265640037629918156509381477528581029694538002619783149751927057711460601723490657534256437487579842901873782084289363418885607405576287244675079701922715152656060286999991238176170240859723850427732926487966597108396023404555348497087669955099644035043208196465731924320447198254331720636562180396104928621026521293404369442889171436398283155195304708622601657352370405624549938171632590223057365076765332279219351708166780779694081298715970966338934984528425238723292718490715065460889202720932213396168602569221512192888999644453513056934571647587860019161070374831898970267014774687101496159911687193149393926888486114271691307842636248002550638332686166268218414914919819113880529810676243098380026944530158248677923417536894899852005216276908683889862318619781270188900707792362432219320112508665362975905258067098213130408519694385917739440473284219234248887271542318812215648884326579747196979191688540898824102919707337787929168473024499478474666698234490640630576548400882236641162602243782430366114208614298000925925602073131196035948832692525183712668880903178555872853220180509937794509946796561131106530065976319466850589136967864808920200300811360699383536913189133552143714135851521848069827863729100184342255157933979772217883014510567383366251168012709595390668045530396518063321514758303781103336626384917032372347946275042466222487379857739396064748261330111839444864148827987493974399813303529644076876230250081866377124897605812048503562084507133658033433641098876573050608723736728005380656667626716128670088269534137723352000870184154976081305169157474630546640119396694484131754465963713636690987825470594500479685849767669588407170696526446164792800455549678358101201629566088309330398497860479246716747133268289192470339136806770253007644232152538116551781830851192548643487248275966875874300939090834771965018415717858212057208841330934511327190687912374435186149240616693444638031209174484870800961923417778718034152067597739233548294215739717411786803894624647013966468940379850256061917016313796089260700233405104171762632423699779173014418027541291529579560761496349764937742077098723419100295957326063969610666514698472994493664341227902307788132961355417072457599454072236084208041512362277010776901628349777638754463383516312013463931602347266794927489091626050730215486512828922735170392947873390320385656111812054548269023515822734844714524135669820374030783827832801623672350677624533860869564455370138135264500190855966580564148491785613458067530735231811936963877050829356632357592189662482956696845500639560940567375030261761614340742825801161001228783731208499683519918009281926533783092814800950780546059400934426097482638990603192300915308122517352435209918992751837131033956583095623092864339849134621583983681118288805806818399242658165962470507810887341960783619425937193507483926902125571029995953005920269475216473860842885411098501755667179882366287042944625289494412783254046443064086186175807800783896078560077024454462178803197617185384805735769960917302914603845884294986658928663807817687454645213846478299070923744620945525792007791385349005152650744572826603642454822947558068341462285840861532267215755407942291797970822865063577770686065474930144982412018965413599354105270097804283014699818674622384672066285715356944053568762803477882880863508572170278097855528661108962090076803296223306399569652193661027193265801451595130207891684680654061986074086048630773277140746727429228158848828626095939461959011342088287378279941496227914165509627231919446254619174223045088933884683606629269230732660789682504696245477195133642048695694187936268050684723000585421553897151431090805424067421868085749717201034643088780682549028382644907186762638304940701329279489188563380548510379169178210157840465230907479406927265547762848415821066640608522541102324287027166680284953183434531612101471406350684549572522557804620108650890410169050832359725908387044135409299735566795306034766516241725114852232958033100948059954382933734689811950528388265637730555479034114138084038990929968419897610879726986409772608301576442007398702000681731716710978868655369251735469956900957319635457364669934829872397358050894756187845304159323878124950041657873279226901790703559238898610169110833123253361438925441010425671972380980519420856321906340105100283444054941031485463050568028959761406369764794779325210298285064271318908206412419076840819796870429688546705376319544479757266663934120448251508946123581239716636033351409084503457040942225615905144510194417471065522634938212665219478565957120788956464501587635483373949184243649245517944380764615920233034603535900508932826451975905471091565322381178403457982122395054440173060815255312387356819687900249647708304010643887767374524863850251087326984072331615766298876565979365918373642269078177159933233312805655081026179565662522094353773645928162389080053432733816335960738541836683724383478742941569713532943209805111022311942895468194506503525186677788846305272740551358113135054658772338586523750241824153928255354485943752793115015649515131864901736569280613863275256992081309670986001810047047398966940166284299584721094087102836558833325654935271989815168608394297878423292139368732485955657490151938959854320980578016562627808437234670780450302397277125386247080622817456537492001376388710376063821853933617097396576299318076409227365580640453455678363648371932093549416608970853974747268402051840345451635181023788982916915553335978389628970854409163268418134108517346552913475451464425343881187161494839208231926095181920677666484494834713465135563233171960780690564334236130513046668666020514553735101600671913885254400783671547629889558122682083787518072560512562921057362274060976004982604570233019960695814401243231812590167609111205714659642111450552963998855240379972828878671349591525260596549947599838383532620568573170419374319302692926417040191226370522130587669284872491203593875991184592869173490536988850755096843233672110055144196285113304429777225806425779515039440802410879276853333550457919693158043207381182725302727138428281625156897631150113128648097046304726378021567348384726698790094804542989988973960944154640548022070415001279283222342807455249168593748633830773285623272655884311851510189359402256757216388165482821430828025863343851960725509371246790746361047527328762734385440712363011201953151615087488386386490520675033928558563787032868892567431426333186949419520654916718851120382730633180601458049943901662361953302835588695415702942371978052689876398733480747101591659148554637679616333511587120638743395206348025227306088176425406183978574136848257238742272135314062397344354528171028381319213286351034366212682816228954689270518952928223584438714944362952617755896089935323314118013912213430652265679691553588480080099035638130881947490338774850088189655847050584972151081017582735416297855217575964736916679592305813053824481374756385716226094681132547347050227105224049901755745909446322047304505389355536965910794297169490453624302781982539380314059449039210054412447872084591763702071087838417347675046320260648564096069447943428369918596581694743633256222827300679200345092485573319078369331138641124743481558042190751554370767932468214024430573897076184884556484387231029401590013426700159515057157466704571266146696000726543548157216946285086985003379726267482270538492211150364568296320741994316690774228620484170659119042733292557818732721853477088222172610721896437160420477305664575088337827657034195474285616955590821411103334652062100249538080851342278958119630640498533036989332385022135527176369683484575345079561393049026687920543427939065442956628120278999689519411794664137161740304673210037504609935804691335788227348198381103655769246732188293880326621766741122300754827669768557587544641783337119124566430336578177387214608448340825397604996891892480675855363770094040919340136761001776018334200997992016896010476972759540417670306326679260232240726843513154163184426000175688791643139122749460108780592810896247315687657800239923336693800447369255229991202546927726483912077688203828687442361898622350283661825294652938178903415257483472323127736511109270354561038172147542929958672183120409235204638422250042853538558691161050106658620954597057530754573258802621276519719486790446354117950035903818687983415953406192113047245174575592519899729420641832622881206242309401334547935050219211382801135321023290649060803674629489150850483193547674861700661903220132641029915442581790209224240985231409515442320355965697566285759996145464134229101606861136767127549262825603479216681355891920674039361722166726049918178259446530390163429165238323203267657754597182340462679888750858271674216721670342928526053979983181393891727223348057485717867223743355153297730830945295622216619541970570360476735373897983892488653511651691052620394148056958962635402072936880528832275675390193017520777444661885528918577657447410540310757618559598821766524390623547127508119284900101954058993667723400026895159086483099983902257105965841643277173381129633938397146448756132975326923613576647400561130764541653806736708519348715293364101904048383276703991992969293317731631208882557432215124540550601973906358177735014190248707004884389158301746935147722445417468110785104032474979180106836083086192981997643503421282944500257659214809509565754953491443398558548892022979264081038727717752361599016606603106247905667394677635541466351156367921389302973234307426448560991892231769684853406254302096922109109552571494783146176202880720782943909660649613289421266588659538782895654147046868218792562268055709598443448205404670931336803702597163372038006126662150876953138557158198278457028439052486279190824042941263632570774677642795607955889810534794344860973185664024814184207811370756819351434621645014592016966811330683293432819033758902685668229417318935822784080419886260200903243630663455302336662462120240792491807652607616518177059946179075193371479194840566822085228437372746050117626798214189414678038097044379433320657233208534235991315380603571317692567427254257855798084780048253623637732690751462162189829671229525927340543928074628872236628961042196099538628527191881643413237252055239240582860660324452220947864011432053839268141594265931884710738012414798245518288693283759262971590001871356353282260023442149243910953791981697474891318769774179563781608715731282872003035273527682750582380106318750417034731085532415683053913432847245059890115323491365684878731794454457220539697433920369059256239187704396505282007085703774957586715711049002305984394370214149970566830683222482010032505439861720260567092754714485448813140666090843851434628063332314069223910607393459390497070199829345730476159174671760543019875831545205241854883968070103418436394081172043975182028547581656393338696011374684499423927347253473153875301294328055795869108529754798483748548549837950985909729050259997951101382338321839164885362824524027158582133675086277389415685428335257827433528937621946922022279055520103992738110839262146622611734311344371299135167951288654937816743163079642151453341606632308324165068138559495943587175542225586002670484219025253215985871118805927684103328311309162981940225056939927132093655056493297108314126570204200593858686202514117071980967106613020753067452060634517918400475262257796834819783330091940167921902107275647354465644847685275033060241690839346227546125088110552936928410622709278103582736615605787077422045090559186245999360595745075999579944617409862653396659490208515204861702664267061819578752433354610025070776822839952342222771617462667734612675051365734989517160822213916005050408846971160989128575838647416174853634200939691976491343831916080856286506408049183725311128615888471408625723472758155649070380456376567990203147939647722472715632747455240045753395058033533980700302763175176970860191822459777604206522560722218063101006572800946830614639090114655252529641524977078110335090571314858277811337007707497578169164174074024892932119471003179984436782180835304760129847658432173981948844355436222653439228922145674534217103929364243933605834991444697979431482482682830677754281762166535656148783604166853839593311071818102715805995639790382828127388796764216134091500089383565812079056277256792083313684221612886038513013465848474120812174632574758793792124712791570387291658354622674127030321096501425206178881160202259241179531003109403677392826609468100900251690796048214100274642890375374758254527277593987031701474765472578461275832548828536853993078858780633752768174323269426545337141974746738482947366635066446123705917032676936297549471221203834559807817822248802176260423585395778522775425619833835200020581130147887116934269490786748500780133112111024583381993935858056650173784704349958412008898495676731003806281280193929659402089861527390970336736409235599763254334163457738159434744781321597863132321923308029150336299258972456945621762927996123699017965971011504726152153781517813096695091182653481097767366070098088539141727100372739371925016881472130405797453468669192267049089226713104132659453358999464872695588085236934688984688361500623545404503094998647369216821974876211415792210655405677540465991341981494631950626186615233463994131574621160667741596821893403561535816167004391420658748666201501627038660725881767458539798591771985333649315926957887321350673851628243126755311848555669351013321390688768969289642801436858532877273550765684759988417831459378518177064813971892495275277618623767529192304574713783203111232058467484530589739791910789357000900880563240955846175089214855518978844572695947194182010105743671504194765061236247578890855918912901201926280645273741610897138503113425023695158854018789978692853100152839490722054893014042668716843285325095750540669374286852904238250126444572390120263522948111152779075708022260468404923276374646919478918149276272312283335643435917613018052657095039072825365911922877454371290554445481397064426264685374542182826494602380105573954945368950486718447702630724378133278747534843775244469457216110134525393184057090842341641291060291475098480395351631043291997466635837601429151810405260140728052768549655960928896928215044975834808527649710061631599744461558696090087839506665461464273273401481145523181001761475904814510041425611330066315618560282680563399759488115598896939078010583427142706152938296755372055857772751331424085121699992392932375996591546976422867171577112933589283240689665743635743818981968962141837272250608723105921400014898250616648099221425937190628266529680519636361561696371211691795477239049476696478411048728500625077316142921661429406953366319612806503550287705496418353838877678825096905605426714922503283752780903313701653101215806405570336293876518069962337405376198085850932903476927048484506398938546354237500111592954474517396794397909731352563496470054205691092260386455983525020355337762667403575840288109440076989915049891868926543787644873171775815117573177132339845449457380867798448310132241010804882618195364244601012696431877338748203034193747678319150030607671562576771178991204368168737600305109049753831288820543914945279361602783617613813532633782519031981423281288643809393857997877413580839427732954634358776669441766724065386557572879348354408225604370664892844619250103336560301578370117282948367669794835260887486417465196092163130689395115622650111918921134474086142716114739922513430948912035681956922090678428604160681838289438470411976892486288093768019571730034152171279532402396382606253736979926486700514486917883638249698922406547106418564636423609540360310335597490056998165721657005471379148853012560407395453032896952984409888877162395964791523462733774871908667982324984100255971754203849271944420124206865581037475256682508946759705762183908478536201130151618610774154931937433727593949268272471162000490896849356331988528030543521944020514766298634862782429718137480718708097146368722119732204541566608045041954578035944001057766447009374735382788391613714694729569460509363821845806347423980233917080967473404341062027085767687199908829174912375288860277074210698248049941609295158168237479871475151953281899491820170348265093314193606138466961602627542534987055897320958949389615425400641295764123040433555822962153872264545895819533189810996651429043906605132122460464768273918848954820294831405567037151243278033305460078440666965175414710251726835293064366976972259182042448898846847175792459390140155970838976165682141698685198736963257913417104327893853135817221602339210500723094231004812078736262452198034764002341134316749312357520750915541925929299295768101858336291233990798623516019912406507520593388423826155559995062566721423906381411104011824975212102127178686292431897713208712663560041929658706095281512968419579441137849236732253623178685054904983484423543360890653851793532868320610109325186337551339374811003930544251396499414541789945655210195019109613202011980458841421317096852362322248274305413530184744496920852498181447361432094773247586373474531857696209177777585635199044373575828371196194111475888153054817782353534795005568443056661971371493998484642034435008830799012104859404644768182954342831510455656289589642088383355673250706734556742186132150432871388395681417367255502140542396606134250325293606997565502656721452457551799298813064101388339129891303174069021239543462885514960520149051078613429594299067332295820428526817074045068669312217780094521932113076962649131748698743228748533526423299581010590810091469951435888143710516448410111924285224632952239273642432271369663144936767351586522146267425961749281407067328141594164613776570480686357539525439252938096543964660907412457606642264494827781285662300660467177665324875495505952657715828727897556918932516574244939672988903644392263401592945954933804035957939507603267306232292471815134687946450940419811888346156025467678606944134045195704857952906604435932025981003230519343620119616193466109684945730668668337621628147292236164526521065197476023564512544480037552548703199427465148019181005758584321770282313103610265904079102024798781688808075041453736924478489354686625010252676932333995833482797932269305410185936632334735631446185718572514706128723939256102680991614404480494588705128072949456674814319057657267509407721435561068823455875451172193604096370927023302974056045191269286097718196470211218277823670518351570455499224711578292776742170314053612938301354697423761408902679607362661477281786366899523884842499489725728425526704533277208118170369100799928834019508190227608528053000551036817123970059924672482917676866488424788607766998439131111794603549643816005897132657443961845207595799025805892378174339625109428791761524414733465125297595387176027580448300015924567334818355073396906769619382916162252669284268434492006114725738247360658469141873829401378939705823071107790661279795481818357800346672472948891292917932178021721209362180427464451527265140796051194328891929582344468928969387043285927745844107096137502643390352713546203114888954894201575472587929217433964968696218828933416660694894981650648539802652292321495304100747806923280506411833380046873797454115561756139618392878027119240107588458816671443053207613620369650399159269082286138288468523373710318117984752602327489712377858312574867398381727032614369699734223571533497699728488622869464721647304419270890699976305956201884070927596795015671025456429339984065470973100460760491104932604978736258460928954281846437407503309820124685233669254595398998744051216613609275890407956063599553433286611732634250412429087304913988671446666416692973902538445199432525824081114597610363679484123736490876719544699224107141372088089984863610944455779641761027874754691382051223923918126387461085498546397706833615745991153745914845814006384871917406025607485441204167987758920542978798149955596529829713819596586566385910711754878656265479204376385017978844821670445421165655095837938191259970037086547116145248177000970705588559787353383968892030193586165764871423838116900440483253334241895800161419453151615429476026586665528121709969154097198781934541111242936100054796218292414514061386888015289769563535528306622325561845811441066973555318422985383886208899409468866295154843595465800591739823694005982195196110093119284783022313702050829268300960447381541980379248858749992039045749766195561360325946951867947984289962504610179782237311257823019783407216718875808096875339696725555404653598534200182866422474943579345561137138884819985698302026755684976049601801135297344270905572976614035260749247671333354860430059130506402613536097580639024803111745762715635269506538887479570136323851275202163818796798708223461107361270705415664834217389142504192067428491787138455824436366353418395142404827888438358030427482885636972099229099786480673412592662484507457254986121575660136272092888839509343047304833247027847896993689265059343345383028087961389030274415539378557046188428005020435186691766056601993039115751632622090509851015173418847157434399157680581869210683696782158794417201046081789670486970424702090563459008775647556144397051399941102416941210595853494422444520805486816320757281558716697462869106793066057410623994978347354754252296321856764704956351317569306668016167914964588151607789403827812738995966113231357623343598779789160513164432669581569730390609827481724108137246600648540588846818423410600870707357108811162965742644008873116093969540353156116397348262840874279380246777111960999949775316172996340060319964876367933002505114853720076080864878096247489160210905509618155772522709710639543154262676012114504462292222976094914657097119404847385747423358636631988678845847782183434868855169950239484725739995887552303439700488366906751898472780500666508816973284735791868049202442504914262985973059264115293386208405697832853957779429338356922982813850408172736548145065924439422068406886952334223551489588995882286930845763157158769396904436812022031198299454815456149922342224063822582448105632025103664710068162497629286104360936465567225875396085417621134511919888263325395831177674428192350591966620145438405647369982959144843507703016277915965842667766038380574961970242848096605022854146637662247873902090296302833660419828887997934699932418619375352903530448853275991555697119797638351257280035785858519566688074547474114812346814336463609626944271361155111420200969379956236581856413574002170832839155016881291585354820226321705385859623936279035952862913181780380006232091266481642789901326041495842728595714478425787308589257848490591493286582026529510383233629872242996542655540888753668689240030167057372793921829501876628334363467184197521378294622011435795925886618616688735933638570463587661168792010965705484703271685848296904657465129371424765482837928082461121199672980260492260184610858064870945218220573441619328109901247077446660964980681732184187223441175891762105959277395295765526122871764982121699907250835185259197479447079175746054561928961531444073511809472005024874576873431559723064116324596794595451988793270244304511865679847285756381701305861688583227105070247702846649762958768558270943569209707261429828519905992754904993012564787361120622641091111340110759014691202450246569014210878420722978688137074469204481863298195235692257588398735776471147521812504165980441424430350496983763597174673733543883392414608373807240520990294756874305009993460281754349997843947435398623046479586972302819276884325475239239428381684350319988798742848477519745467629065682096155696723703465326642584606792531876767591528015388338829892035153652553682412462071137849704829047734185496581631201446901637021458527995428665950382355871523834126653346609336914274260238972094821217007600974097909018457447595487447047043935686799374666418395842759241717317980443907152021086691762212898982826131638453962044599198785897545686456818961417807427071047039634856947228543998991932968484214477868969664323184925872305636823700102288893276961968461816412303607169450989155742163331385104557610184387307806142506463370017142845628045504379038776258202376703161841752581772954260562476225596816214795069276765240728036452167145643691308537300971108748820885953196679426736467508675154046925565811752254115491289625466530490689773803953747919695527928660763108997243148257755537035235482017029260701344666095008628719510182087679556642931542527388333301010724501920992645917940441586523699266689553300825705285710442419887106508288320276109754256826497081913611378103837489963446378597556953861716883041877472648948127732042773376777106654361312173647136940273817044424277969140746885573214895325269146770941836928505209746358622606698372990790007892490597234382333142635968656918250044068052735664487426697278440603754149527704188992792967897025621456731879231687378849006387943132986649334939758355183432489448638016184288012072438795876055450201857357357371892888138165340434752584423914119949005709224584354933177486966015507996056610864215019369549038713818453913090782027874835284193551310478110481472662200859750001228552871736978801489390668238386585470244070375296761045969056484736165490478464837302276400955781164829157406647212019783691579886857362504663606578133647378297491007693596035844673131828501133406586450774421875525920925684991945330742544726092264243768814833648511295709435571906343307599919581056610624885428333187201382989122542641797605007944862279629694341521538624661410665252247520165129647588223526446425407556611398733628000788402154842471349577806211250053216948077058691323275770283999040873831462383084505219883889081775353122068960183755206112649735598099825766078388861611161263563696294956367041206318951462832317551777134994410558888805965390708441610263234769984257599478152865482362362831760797252712951930660382880466161786601030196170880243534915774994953728520483743368825646651936110999596787674756929267485819832938239961394021890212774475344112713580854719522296298884635029000882352370871940608136483626593453171881499760730901149159011293334282685451750257266446094643684675757200370133623469948770379277318889498890132632539844644816578977059576738113841663432088598485067915058490029771305775255345363063412799536069021555691583684035088863104206650558980043065067038161996122218608838466570028893802043401518234931530967365373789315010708287558474585285748139443961240914396785263776736460093207795964304578045620330978982366083774350760973691882916918343360947522165868970452205680577172306460074796850180016920626089548965638120792068646310811731706908349557625403428963918505207839376065297051635272213453322423523026100055077987240679342591591459781929986468779162383201941437687582617767346830710003508557644312000748569967553039735474552381676298490590671804902319476254117267382248694484813238095289728231063871107012881812583402494111888676206246776458220639763902170258091418111255163255492370333577734457428959209391145509835826043940005052846122435230484240892449022248092293423138067539497746861473773005616830314634361258041051711549095652790204301419440297981808818383317522975090365494608035685930786240730685725821897164052718412042727541291402288119216746605155909242980983280265468663588572175310394533648195290818471932205886113862921274160001417258835961518544853967048006540779218533026416893465429914242271217208734488239164903442286563642331366665603271961115280361222775980263692975357022423562515072171606806053806296280340978671518787282057564343858322021994955923172628747338183771996671870656201064447920864107564706931861340834065174673325605077913283400358556520743729184961716957091437020973390011739873056055541595883802235129020575784514986717550530925379009104876329507417496088235275774841642964518627617706277093274433524765619276653925515153105351462447579240300467761847909273847613906082207843457080848771003012255355454464340841727410294037358296264654380319472060990219071296049604348260722493121106803947681674629797129273396617669230609949176146404964253189077353437364805548242148002040951797659657425621436723448992688448363191795840259938615569892025023275486419992158035154800185294913630236650979801661091507164683338340958064700811465894359570514372384076628676923873641440102177988290891152049663360954957405526093492282061885082240074997607662649844972113417570776488830423423528146782298199114676699287458674433862186203588336403398448585030652149490817197451572401230497882460641547286680814023114685866778080051925764566260590037478842198354197556150640139200682383208433128364015155156205933896255318615834559911744660995928913032072817354798473333327378032481412056145350742750635889909217865255620489254284688707186871753636595777454681387659865181774042788175080545494072868634681689084031162608403543920065012622386616442125199034157072931718074122092147125992133187855957098458926050180023345856251947327297517024263256353540824331506674481146118769070797171936074979047798119301920204277434580307523539910777417268738863647783561029704094644057404113144903716353343456614551618131426891261609632242276420130746778175553358815099924502927682399760387815982448860123136012922490167695187766989593849584988586232049067464557620869316142207708653433605960239663487736648882956503113522705437196658376882057335305268967895155770194570019592537266787330285163541102666567821239127379556355437563238587494807635244991110786865584272059201001758777934541320489136395029884871723565983397893726898798173531319818896983529140552104652775001564363000594435664700458870603118278710566203278465186072408331917396259796218593954201893512675097465869333952760233865873814105051598088438001444256277635749501835908046586385808894414653276774627087394688891473786189156315319065899390609617731126316157950099653333770627475892263993841173594148058033680873939332862400704564870320375779270872844554273584114907421337775081732595394511422516268990549784400718478920139475017304312394822777889751688071393537690902885848177084745252144324053443953514850315423504998802256783510457131009102870975796164236856443467909153735300391236205019198923052455677408317676736330012769042128212649949131007165628243905813686267134978042633195989057914037784088830562998555178376936227126436772085634742403314419378536465403369486233153183329231186919958855457298974550882811465001269837836940501720612402788237772408251971477770451007261357211895176040955054611093824299835251829291222430387719951263808748431109121660861321190336594994003384305471479357034911496306740736274683260142255042489668265985156826772693355131882696835352858643675860954996006928446214839461566072101245852048118882870021310319732693594270784836306350829631520922359032311516460478214280749326099076601786099730024749989788032830157670316106976790257818053410558006183286410414642472701368935957192104910401925447791975674110333451004258862134616136117368055686848875592455863318013906595442679304235060433415627996841046336059988828015761578047936967927580997910689216666744675006736694272546224632988629351305046817751401588199483909967210338339186705194093767850044692210386167936533344633326065517156357883559460236907015436018656304832717942509321283579438499823307110258479551431914437128434655893167217263222561082283152934092874848192234063873216437831989338358428743027915477953636659276598678705163871106862177740081713295320766665624770534497164989565660855408428123808032094904131279053495166105524090117008830578878756217108142250168355369575895192233393714037029295460672953901195754650846622831437853728420921416479523693380506245377434513985538323298678469376759986106496673406473379570484362319793580819950724693048647250487768640881333573625769914677565311065336523104678520179039301096385768738511476799330727320620831748528658051278890825134925120973070904746259204383840938764090307453140384534766097197443069635965169397768587417131009442446168618653695664397575343038244225440891241600085498283818222495864316494204772882687780113016086792627106574581151738203951829422425697805115452713281499609266098988825940122394336175659841743131963369851428950953970613272242628163541985431131341258464664956448090072204640371876137431402328840449223180351497050654759532221284747483451416232685476624113564248730667750297588015284841170446116827020941106252128334361425008396108350734877794494171742690923622446344445420239415878768261757992346922844644076455099929177929394009703316644775135771222146264052478089534703077874453854994378753756399211835089202841755902856611400830569159686920551611055956905502225889787118704921461352485779656072289005135680532367972486744902400574826162864196844866424088435389809859259546785497803342809145549156737598936639674275346638564550231016127920103769574402868888937904493812654965614695008185577310653565861836000371498862777835497350063139947791496630581220989397805830063406114338584404726687089800130248027018077013323479006961990315028930555931299347241146201892183932758350221081342155936500495017046406146439055226609640207123410380827830889359388964455376317263018713108836056974043869263511647203186729284316862259373162038249426629290562615573359121686533173227869392143586088869183695294439513664385769726867643409509372978488235911572653182921334874572105713210936124571664358058552290018126427364003790527948303208549350567542649283332119974206530713151350807061769446066177813755938335473096154214214384438401330393980350432293349609049334803036433732709396510587598241971850543955973182659315671078753944006057244481847182086423588939505686163397174125348173575629527131818060162937558516904197390373088143358144870878866952841923833199445729247459116464788911271840877517637601248124131638006047802906749784970093319137830991748914553536846673085687388037792105066046076252614928872032479588267308607795347873303137557436043528250036653136240283407152571231587870717172308479126039127648375098330194466425507632527853070043470588246751922460076758668561454548335599665153304674189135768454348344162780361997145757223915115578349895061576566560062564367054539527680890041042150917657257370208709964826334383038003909793697659125426149475701259036715851897892148607445397255098166447632761735089569815392612169925316326649395755405109309673547403721788703624353885188163113800063149513934829489720376662084523538584741541849048322178847104962271779358007138581047369704799686580102148578662569769827489109883543438369811360864921286359635336522796655222786237940877915979610664640415329051714900039419288057884964691255961782314468985605453604213954176836491074749303948261738652046663498260569071604211580908317226394502445457672520596390036455590634637091196051594463067650352763668175737265638486138367356256630047177418807424544136734534905380737977861155401274624717155503211990889730632119291073674861405661564813077502286928991991117135493431632151953537720472393972732643619879568799387283045547353208136195877111544053994346513722799652967065815660934997597138761992161938685778854141748082561331667498356209312753091549914613283855540513969652594846546564793646740360701197271241741910537309843955001280034544124766777691481204022323873684771654389070579034975620632919257201709534899093284962747885673461538749117608741349108154748099691076575595643845609907936978469064652678404897190773608921431827351932459372729986349114190816220091302648175949656128201083791132737900428968930976901911808187118378659016726374317776492055392455424758076637454975356514953804031206521268483047143134756888250860880466783329372373523433864840853448530628817305488129294545197164444560425116597790847787860776207474252418442604943733972715459167614875542313158043797616034680676573279405048805404394904006199230193327494614796839735138186046488792026938880479961077908113968521366730962103017808542055499288483934594763302696798883588222941897272977779926745844196061818563618759835804689059787134847100901771671933834948873509899050198573782547282589695199630958334534444285777916163861336432515206145373500359323364360990572794346751985575064012742070934173914061397727053163449701121745555790526085412217638068384994797571392093294546279615932303923052921316707066885635358697863880300447590286246113760452377004696894313154301809290789835980197994269937497937634487890824972109551626749012224952778821463913628366938429585598771462307301604226234311930729481083855330922543812360266236319396280762377288828112791197515320324226068414428224037393608615969379900052589907938766738991765147074959048881376288941324989066538520114756021872178750489397424397153790594997918431686322053753966203173932721402200235032383463740952284493337331717756400277959789893884221839628536977845370777900020470999064929422718812499031555844484900255545897895102783616645734757307623845991902681587543763081686265833813383034440701107656428595074100190241128011756340001999214706418625711146106461558447753164974262271388758977308773175411081898883179509039122914428067811164079038540603936739229272066501187120457945207232054526914898359290216027776539401582272499286489823476635533627734350984957080233035270478652405991117980060953539633839338880220919678754511723360168488262417552437917722039649419579783382078715657764216456857758015939743961938618439784417364021126963938020096688007131743861390900831018696352110713433453343071425942805771068862056440527709944156263134750548765475951340519865039544714969854751721185032101378917957369458329022228193686081699754408403325699033234460574394925577248024490854825248106680304482248164976253792499959413228103310571733343815206389866288490921711449237327162576846490080554888295497246589010315400045002182962532521973902705302380800436645625736912427730415037796052402963419982360662398836460380583070586427170035859712175788025356249857205200793406013135014911877715417484715656359616178829608515931543668097630484326315019224287095693464787603663642270544102812684802692020736264867207778839924902112348917830610160405840098632064944000119736282399247388519334519250905468684145830042666455675240374532905767314325944524882809385828982528758899509874044394825092160671935452353543127635165967846972824490989964397997968012548402024130734163441958543232717070132639850253073577408633133416043444058643844688351250347362421242846595535552193421412060619311648602267255188455171622188294124657679141183036218246495333386195222511231871491980111290082883950078671035881174468401359938988742556363067558387734905942789399754846377073523185612729162516978359933725606779867839777753716377652196808700942174955461060897287528487593382601236442561135073705479272784902093964585919402090691989844849031477169227168592438856179509548930962771928832399992518962361109249846335794934602367852007282813985699573992605969970232434262135925700547777347001530232894158825597299168036021144731783048187352147961699031817245678406722682332088268913302453379133356553846222917247427646759596896460690955175214832909591966086942637324294610887003410381135853032643258573053501121827968519542535237795268131500663491721010551246720010149187272850020158990452625911365801799756783475617402059147649989837521505660311680966800354259044437868265542378370341535255353557117722998506584464740589381523664035232480625296875744430236878181786264657083359589303043290876809019473861940981287503310108074627784689121034255718378467532098102051768049380482238130441191555500221539500128375651282020298691365429828713317539921519048170275058401490557314572786207006201418125239231742403743159753132051819612615323207762400276212388954604665539698585006944047821042189705259592152684301773393915211879780365656486587624271344080104657939444283666795673213067213262821676048017819001934468743660307867663574198070390171105257018564822972780048364262540099218544274697832787697590309382845060261790063826419842804559795186208968373788088962896717167197745890079299556635142456325681101031090691227303326687699651179524834565213106498256582271131378203505192579061841974751660882082163512758085353664660253897002112477275994732430646477763784829556879554554719054773880654415438966520635945638490830482824582723947653914347590808668118593378648696648590824724929762526434773994120769145691903000717902904313684062088037605239203466991636887187374110169938779068101217991587359247923782378907076323623014815760270705521245761606944191185297630556205265224360762470180544490123702043885150904626815883637959521681697738876345486547921602235242508810059259084112921708286432738033482312900481989526908287511979102996018292092958469314212250766908652002303167280982622925537100685180866095997913399109721353203441995498306902992017476993104826237652165096347935355294707041958252028268450290343305305711261758832329708549504761757694822708059758096085774093955295324532206670349078865942469912998115435741631418724332855218571694524048969663888767480875173234731605925273361867841795011328020403429935982640466728617328420283972182703152568910774338907368355298744039534685071094772925649061036270912372887251751679075999474609290065195095700023650865584237983741666472927937196482898770731743391068667019199738799830368798039520458340619177850992793143592141151818482680678409057680437194362778148561911098564042895504028311944683681428926848057743231824059771453773642453661759334560887130619258808338599037883072172964316059251705881778879625164048256870484522421605928188589773022853809294927978631798732121271906944969039897296955321952092829017032188182651975930028615856922868881154367534046743165618581175464212071107628372642866546107649289351425653132735343544294074975021612487386436404553527676458326768012663449681228518912258538499534015296011557977847899623787350183305606967932598410409902037551024524636915820487262658917234123941779842734402492455270971978370867488773519389912007753086317345504481486351735549248332414438739971104787204142148805831902459017880340457639151216226157844508248600817367308739037510533868205932627716139321044466334192928716579038122980255462098559663292097175648022440913832904678063187418708594973814832742707809414720788765517379662196025602474001841482148178504437994429923542452970221316807107118945060453807628139170639135697595750944315693372360847516586212333425217139209216427014644868894037628926568472648624562158832400997704939176296216334777402150621969212428228643000609655314873266681863841674796892919881060729143094858229695873658840480119589928888825348388529436557369393911022668502404147605527661664844000012641427785221810610031478413298051505894126841775158300792297589491150486285032469879774252238049403605106905858333526963328641343719354059157982419696705424555187774161399302906063788786457875239107130584302420713320960033116933815358974647269666978588784585483112753697438972493471450806233558050077431355226134080249988452138062596374297059009906317023203562905363558263456078238908049226791631109539910230724178158692684733279212209083558637352035761717166338391028440096249523393880102104556052124149387251776613054697868653409631101390952524357873127872721824043601800999144557410630146879212992453041160507509534759376536114765768514640499790365186254019545264528642955168148790334385776760162741937171769566919865941808556879079311427253643811231012011090012476179872482848824626730215284793334625221395564686039164382961967217073270782528347774397356887724968513409649002161448712823463137162098638233963780153101043000027890311229208968318069029749378690852376126755849831665697019439730016620122180969186013814963904365480704498665469376580721874556968888416539593585968368701898865185598073374393887146486334581391713982942446732120067240577374184123349790692044561012522419045201174525178826952783771894866346456576599701452192589143510987591818193815165662291502419035794626019681807720386358711074260301372843101417701523146888741053739112263779514130695498307112858802880054229364857995073276002587691326130180335174688256376418872247289496332064851982266277941222480636149109391938671759917728076447205240502700182760432916587825639395445263583785688080257046590995620191418960531742601298382140349667909109360733881208718442098890113944019781668798854067281982186103171990797751403714019448034429447386047564463265882244778757551074461307723772732465483218409207010921855516621259188718395258526313208453004276277106385274246884187079289737769350711127538001247483723133585984960605457044736905571147629210716491075474233238372604702033888892623746046943403644921026585033298895778962173279047845271944463108114268510679706803730364273191918526293615932603208837560458856218001058324503741136113598623778491074592854600259782996405214779350304243754206723008162152423236060691655912134844964796824691069695053866944208487602678468032175565602223096331996836222648873507887837891490795501486447941707490254770093333979066161104908299834007188595230111329494497300656157489754274447194362538340553397034233529679813216369336228176050109254372477570965188006742122949351600696741054594068359690986490073103763226990630838179479892800049310129012075196771263922051640008457791001190960952581890830418247447629144027009229758030073458398863872327990567311935973436827587045029618822454475143669962892809267893032206211575507311971873569339301132863243891050983022270473863309652446948227511540999414874459683363497504460916128490934685868236609997640536583943590611348797190962646715964977239056152732588000569373787044318260591224308524403279630022708232830239533105932481793939940026835800259667243129361728529195972090558960737709740534896850205895084311433995144400200461152793918094446265189269246992432786318572443952638881977653884919590963098353565459122158245558894213717622175466153280910192262598623893195879986165427986190057271132963164415740125707212873853614651889030054264301235002439090993503544339022575501174389602661773545129941913680029589093715785697142506798803244459974905516013271086794454836499610601669700272531056800834471081544085052067799283703472811318631989904561484353761600291002559138519110641545462292058888788952197099732828557231166934639352655348950072603746635083036609643036926207007457919817711495090364172085568105170496241743351336486226259013088645425395905571191612211368510149626097900087226033188945101778595894016958596575331457392521853079359181490172069817234773488066070657308614933637463268520551421365558301332997622283781593581693115314875929440607798686886866136479275898987938142509794014184295063031745272186716556096373986493412179432038837925115865225963259134587942002888343190575115067489095096452232066490875337344108551298390313216341633486096267468733294213746340237178191731312087224466418589373919024249927579813902673521264354989966800195674856969294375093417954168820137650828558947979843798896853696621874241863660294198724623788585033224279184727621097687108561171388649769796142281730654163921489263920257006577923945327865044806560925582040209363222953608912903798642938258169971076232466619264329205935944371383210777137992882256087528911384045389886508368740514775726284228340936291381648892975284017144366576944119135721611398356192181996043518676272209915845884969814118170045033073641534752452162955778984339372359660170826549675976172594250149989358626205582354548891469033485980641314576250967512562764316984921236354445643290720633968554093503308926520080623493308998582807873967181206773034796594355309379285288830936444760027759162609129520216260031917580091821860258556087521956627503589761730468885138694244854262320849676012088501047875447862236446973892106385371729101718364018567660375788380861500639914111525835159288733666660746834040812738132498700012206146601235170596246305270286734435481791676260269968356170024608507228559129550577703963657154282044980356589556697252607395831796874496709387718661775204675944016964682797222055941288165122794506113834994565740695322945404584962232326710935172330091175100051674105626117578625310102222964315222388338622201754076301967826236323880534145559346901175413511747972374388842825114426912280952804654920060965311027449422385014343033518650242874989314593027702958849621630974738508767880580335560587187557387558147015744548986080521181834493749499342821061440434427078972544929684428885448767365761871776275998722734409705607723019801064357573117022093251851355244408732077650857565747712912206463215424970082609472680963431200237257117977497365494543544453871046060013330771276952572566237312169095822452012130004578858755962109423505122548631443409084400135701955034738121981136674878795191256088235187203696097061890007530854424492524725209536380616714413090007860719778952799532859948463066361213471263891744092103316972757780896527728956839746030462250864992713764367532398758413189272752998884469987097830398652215742078452311764329568064717539497296130167709022344206184691648182774764141152465607805738229873599595640656444576294452578047194390200440229674670804244639102212927674993405483369200564930858391758976627184606145170290150391719426600992990276783614277595896538975308834246768388566753087407392072645189958908019814826317424816421907545390237071637498526502519688012325439446751977436703509794481153687141512764013465126555631477065117172269451012577107319218171232859548130101715681888937033378794631429510015922288743007480780765303957264734505883341647074531754223684453515119239778169067825088289446776271179751171260302559899227759350335222886228478902551531363270876168402630555086054647824986622802168023139026488599984506755098591727800752593047288287346857630635592829860808370491514870458386509384503224008602493381214982736079067308485917828949365269563926102533197156425995549409483456187328328738850999395530772255700007836959220733761095519884569940101470991364850904934810369626935478974027467522731329848091188267298281941906376712240043861559302712532257320820664973181333256271468419620751548804850516047352930435219472024839715252806722085622867800478959238034687172257708433775295443211258803218621376620916276728845632112644164726258794866386808011276521694847626119770214582579038568629090426802418273580562461701241641517359673325608727874717843528493500674969958756853187750184307225558918599049456453163414247610542873431575924922283699539305395034489392413495707234638903339420673408507772209988607068446125020655062980438458078354078752157982173869520343535803771975512755008327136009504010437705745792064323069242197307957068637474281280301269868745369618061576013864375308577052713533190829955670722395066602519601091719776681219074840920227939239673245157976715624362950925392575372369105453904299734781979205452780527783929943204671802647980629630793315267192297840107794765849139397433118378809715096455001329786477283621028798145537979217215625526181999951821323373364403074148405842374313014011950806705782023858265710912088858418828301036778657514834704897998203608336046819358996397650079569986963003452188002699759308497528603477186373312605983421641682658013302411425516266731091511649988040134338244562471780790130687235581884921810041791330920745360238127968866108008356391488237036646778526880132510564497609036644673714416939694772551028586981844662072325752627854112830737298175374388956596853577882048699793420932083213828078983732126713964677810969184082591377090061240968902662849691792452227608122182681104808653514755206048795065175239081975831489177817417487994488254953524758406181875617401238133121689053056213673258365193678900463451902336511205599431889019609603546716577744625149299724653214828489260725606411985363752465170792908746317599771274406684879705757654211957919925213066644139140981176627352860855414319484446053480037426968152197700893359879835736883694115425280708651295921036774943641824405292236826860140808264047683598382576193510983894293921046883135134539544233998233320075411965850893928225557405191657688045925664325955103455332975277871706093519428591042433641192150142608280834634073990529633596293417997261486510120943888154702424259331297201390319392551317366621365168868602784378361573038510728910366209969296297560404494902437731233316014076546939058205193260902203098552215214563199889079200490750543443282341231391192429306378556195071450797033546456830551058078798608910532732466125512422322465659041706061748607940130310197847190869183990071517969784792187827830533653875961778749012400293731972346442856005733908773047497409282731272226940174324886080123778216104850520949376282486472940162310585022031074487940560391824233435143720174269065346568993192826034756516989774343950691150664143155068782948439168149073862080070244446409417760232139723437175795464158397979220743638629630628397833554472228440357291558169960682793269990116930232455591455496570083239595776770704939970708447721721021747591263902883185805345239483805321184142927234832255147711470728130338141146174253934941602225317932987476513530018201227651571373396403610669628633641844933603265795523267875319680994014866840266275990227603299631941183757279441198481745060925549717445649586522043963234169318870404289568204400024154434097894614033602788694580102417081102337840843927769851466860341139871695404697130147340653064389059804737645019645855867555425268040547871127578261984761724645139123185867434227498710184616342083438597682794722021147344234856738600776830347195685130349281761730677700452441224073807996588085974574805130685297297299364970841475704175154302972916092200596192198603286239271499909436254789088300786079514761555139813888202891479450284540386891376101629246244761274613184064645779500588663638177191015495928221315726369504282914000129517281994927586017595463861561488960831490057232864067644282378559857027473253307426781615330125130003963877138627280007532449076654729844971306501037709746505550985556772831713680355576735750746592406554678980740106114820174076571039137875015216606315293479837473483571457618779644699641756058339158946247093841931665877630158140688591867845456269073333281892361126587589659639995926304621586372705937521251608191280028316495662476356925644994729728691325658371961894491968126821916049385163883874511792307985914720033767248536082964787205396142944100518692503555986741092132170703101877003339759605371217833130958227852166153626830458387282048305110767635822824925049388368264997162885663919554366660982796815767011372417801764055498202382608875947727192968932631321622494186155036369787304106908100315421865045735371805588242455591996626116448703348434222696427340877932232133464045146729460103439242859055375942892739878320750058072209572398941771192115247843139961194404880956043272749458605535093956322477959623461268266766795332289533564525127669530059322698130776380490378070509896022753165614864293393585546425846746781563125267737042125846356169722085247756468477171600346018528296446213901968502852838459944447986894515768523332209602535883798145752809538968875424806875410712415567628258365956009752853116072938552744848290525187386038815126035247407861072261985738587305486149634684860723976393375896381020138441438412100384541112091177738633366100257057463492727948489747812909361417347974242739554008764769231038696418413027192166542886904421067741338668817238724226706621753086001146539557870535413053106386421845421480940631402712175996933791282162541850874731344090273903536874829883767114024125983273894820786570354539993917542523842191351872057114367806456044604965079040404372694056143810207402642386647268837350041401534231701084556509037197727725748077478034664843715345159403426399432904403931230968211034716758756310637565527245764568689054208636123740007494144517275116016009009928358865896333076450294519527969488432986623850850352086651195759307375382230474639284629704080457031384151510889329527408341435237038007081002253958255282192553937071288499996520529405937083833553472418611485586437439221589407171109553593416454746239642608064371953262669087253169815353100409709388170731748465355538477964846174477715426662114008537548029706622951026470161841173465230832489499113268915633891501167402999119464275831341773039678570785054598186756539222759053249398528648839209625259350922420896911756655400296443679066251002808127995991503893241267086186017608312980975744083261573841384732890004354630668567751890851340261344368985393659158538186304026753647613062382161512049509564160561469790922413181382218037684988219644332438272443882252725080540234013860042860087801936363876933577209723474906593136068414408706439544289102909819634085354007504429674766650043555332890128372737687681072260773627271523055181871824385924648702954635570581309501537435798697454858059740428087008015344866302944083053192914423332574572241890319932611795201360132701702190673166110125014697933390254227241478030791981276444052117269435176063020216745584979478571592761232787941020815275647652383134872794928992412401321093859900672407335929747760793065750335242687718969367595430456876408254491382358535429466608460822899572345450281376787903277627616605777654205782680339559446572056498357298012803609127053845574925560390768636560386591955340093105205465249928754227625501388581276385044035557824768305058024291520832930148330462503144080140965115864102443989365153998281159667156848782361271415522657535547742499748799925751732963801569256649444677096979599330482155953480666860714302577362068617255255558070032893236604084232983335105383462799838484802951896155463571020735052640148749562541893168099060836082661797173405510488633915006744642307273579883379019831736246777853856981894859059939353947715510489590730540375308692189636738365091786726515060617748291513693666055275148591023653411745844746967723571868466675794603916077190490763109527964213735826993411063422797359912405106024723116753740851623093482584611297644916878061259711258354548701647008310230803560913525053829309593834879938048109616367614724704006866878289599840652019321542605801981148231126281536669628301723659019345495031619601647035400603604145175210253803915317697316209427361616494652561658782915090352528479249032760673438285078902103226164913805704511092852211450414527177359874022170569435594690896559780490294565831877421558227474380896284469466418622076147993653301122539160220373092551513066573838681858197559408812520726241918702091090815416180175285570425437528406490220152547587278229188992812583997712114975847783036276196044558617579998754243417457021976060413827771732385588127658786677573991675646123842013433802388762852821697586974872767503790541439131123618407275195333311939052783724293887498645726260343220234357623444100724401715143077643664125475190117961786491172508949071190922263655563011997430976758807483441825521453630489096988654028790273081490259674261631931282967405188786975023630725007766863034690457921861714062611294738738673935996011084415385558766068114695066496728136078888247411208808192305768597251984884712638897500407049984881400080220539131745981516008188310164814226359167279546527964410026801566166223080855985410411366746968019023647147991746923177093426680516031695639370334402858412075484417899679122374984757368167678427894736906988326512731946158970877836698836076439771972063156788688573049973422559750367896422377591811118422413707123832013286969950873892980524806389761400550249690179305413591771788590601185473869494468360664478863834155610217676765823439281314215890753871542396550889167311895670341331471419805918031215987058867694584671760178369352916070883342697572255059419300038113106053037620474088194561177887463297733872430914733657214200969034977801977470909895316423247969089634651013774930151801382099999105196881818968644577780558339590376885861451370157515099925288611201469031002897680790069330088377949779041254204678109941628136430137654840961040323917234924006977824264598257093986277087137827742010088834684591349118646783882024162435927343945993262470793286633554545044542185573264940033374877593034690127687702719197405627350847841409018415375648679800625563100943265562833054041803281825118694904609163124496222019023729150285556758728819759998911384939254891650858267647478454736031512491743383789948900775665338509966754143200523641035668789974995678647503093949047233282720651691375021856423201298057490552799377347531538524549143124448376750964660120587388251548914028993505730654039690766796539432990787412589011447755270117303644608121569479910180423131707129676587960986193643370259663760503380606790276746624365134049103739170345241177380867605891661967534118227369932027450315103370124729186723071282109367789093419063616186992069429195127810665349686407220385247944615127178031968710713959822722584439037996001129418746759412292058907291450302974743667588113825703305873400501960969081177506968287733572542071008670134382621787028953090021006616242252802378382401006961414566492312157732259374079474952320897351273693151997761227591919460426599094304443758624276942425090108398136852309362726645290282652552080187678599677134677309682850163710530165104373459359734780900126870500678941647937636091241450781007604263297803330947919312465387118394580820093666668770383081096583617590890857004424199275382379751203746795901826727396899829502647727254434404106872742811168547362061747651868818323119854968436972006134901496881421846957119808009970052496619607464129584541335067198889800334404868587367814746701474069495109590780443884968121172311749021789611429662718929235342340616050792101015826702055112963526510002146478858462857836094237883816681585765857728520316108637938357491213464726896441043937327360250426407228919822821815278451544918987631694943725453213679006162279424611840368848943628176620876970794586887626202827508327335808900887190276174738476050902285957532291540790769023907090274323779877990059868461897908751472916075984241281414404150110929297483972703299716902776133044618595926600488664160667250880866375174753077650248047005254689352238207029706535576123947279706339180040237760964931996876399502937906259239216231888764482826506781442001323344182057787348432304523965242194802948948966319645158947806578185319887788569954245764030801413321459385300361597765635678103793760731696197703021753665192745742938981885609809407620992492839776614547753807983363498062175233139161509804058626806966212540333179295816816335545669877838787083334045175191885424091311095376847964121846182578210135956171172322517347195055622786965170454234154256060362699985746548081919310522636764549109932565246594358430549802499681250962025058043603223630314016241524526511760771322127995968362338344642782202128089768789604597365013276110823655012956114962046719235982675352088334796341617351442576605399616259971678566830016525718884043746440494755394545027084230128498679887812695566479289288319537690309049742443383961808642660171461707701772988889602400923488755843905581287291678020706725889306589467143333256954693499895529008693636305457869247857324566823650804436615225170007013030601091804972574247337239565828542677596811508260426731533886347750858858918323116324826075846921584985538721124364138512628207725584038470943492932559703453731922412648095650309899174997011834201030114821073321127489427994626947339577590803982007803941369545102987654147914009323769242155880026439681567025144679473578209534564793973888326253201956688474021016925245015886201442191167703930403360026619706028661066588378845589371543815258364735794721703664201774214761250423471664720657507365115562563515382347380832774924367537036860191890449809340718396159723389451165560375904362364985492490280194297346490513429241398806139758426641852430156447110361013330866752768398883061738281460433371512038318915479169908627386572383808152613763127399259816891897843507028594338768739735922617575314131856005131437149637834493092194903230303916899416682208395705773860538238750340878457241838605123091677774172890061862140823967363688458049502964121119238674992629020555643402521821166753332589989869633294724684793205381047542132968304648905835225660411984058418555725659120273897309090118253086750861038045344958649693582868208879546836059077271230154213533743743154208923935469200853368545774534046498261080858053450864149998155759617479870897312789555098915197779393406408519911685051857796247047377033197297082914325758782167489279329539901988969405852591959233488258328889229475487956483989462148037665023373764465901767299941353585411175055051800368273601467767789837747589694635067494601575871460445423736385166013589842016154773186305282172979836137593575465343991757999382785129255759840009849896951897595811778731659842793908202292380961189703673552934669090201293626611165769955507094889917746818440175191587818253625196889446023323130494804905348557819288586104518885583973122108454475213877091427348573954641536648419273372753656062184847630712378559316780504682649710106673906039857981536067005783473747295496838652610396712146459319525046180766477773394738712569027566232350659604495608088214251551202374499288129061966931756833665830125435476431513808013294908913255134177022953165814027344162962829877305587054819717720003539496060587928914932943974599981361135463658815169409197135926543605869380383198302225516864043420645614650385878794431247771111594065000232394444967031872189001137831767774879176134896996268654770720715105304791409058453933443334253675314065019737189277235256259741946574934196515426402447863028139339225652510149721042327815750891585915210799291704019189445622444158499083832194116664128473620812342857751772121418828810068887980442665742796844942099662557719448171916192358804888798991698489231925487689120322834269606649126111947012662384523578978739278455830793668475553156925340493056547679170224686424629554078804806147824861773008567871264966382555765169068202277142383978721294085602681323389157543165967180562316240103861361179447791396882108058632212895348456296181693501547412512340910250962683819946790981913352298720837729790278322832773906084229864720304090290057575788458062423493672536177174372192510415076098069103651490219860037317949982956265640405669118769477134347779635287819571740625903257151815828591192757507541761747822961336357585055747088261354895815836893455796457337883252628211960267083876318453868532872147237095178114366026322076152484491931781240635392159586644103487753392906742525996779365607341131542906639221020862995418141642629588330314684039354067851963911359918903365333695539673898469462072794256137116505715110325016472732588736216481280610961069954660620637916627168406183228639362499353281521926188137056693856361035068256967493470827246549482169294606130221104097824349054835573573250190649012697676169905776078726960180804591687256571886903507250497316241854952959130560914654842422322332901863311442341491018019404687745902547765406093850416667851602551159534838351393751933640796859175997900702529148249237012548595895751433197784374315553752131609555202799124764511283791730713098721558366082311940074575067457517503549380741732765120784884422965818600241110716219839136993034551690970964206314131012537561058528900052398920667689986568228654537701697645972646702991747455761737372870948262386952216651165699519061497124238294344367706271654700714561317437483057429161862675567188085715294718950108488952944533819359153370068860862919284616255272010177205157075002822393183729931827433306558280616103196834038128690046825981857262268667844764043324827578139434929451933712829658211871979758880035549226102324734000696434442190297262700875912470941990339166268578819874595750447940397471363031502854953169704945485771297737553068885077583258583278988924600999992565120503606210728378658641607541962904318803742510945272578975247976770806439541137715356047086776124577381268777178215789635733035833359260278664561984901115254048242083754806290737474662771446126201151390280016501783900883527361786534825706951904796427446188645805898928947399907857803712291851914338053131107477314238587120543261547587885575351854228697566715563720383510939265261639604998968789105150336633315742134335779859580860224836736191562693865042130592165986968011881571011514609261880574308573217206458800827809055292820698841087488143373386758055164628950069470159730272182703923093023807716027438130884336296718886313763879729277137667429359129546007169707953056466965316825179376131872106609050395059397154685944691079836325195842026741579818523648747230697983376754957676139941476314997000168756282597489993806488545988165799856932079226650988971138367409886431638504232474824386756828443547433879277870338982453360392155078964713023646777731464977703936530262845270106702956048801269909892906671012937198250022012012437196108880410142720967149902332299695183977933859236166965965753870500869026203515796641941631323604215663157873167815322643450906005444036237446566962868591405117209891238183673483912913153901025396423046378458380027182137140682410776961185153714340826310246406331054226770478065941350103696471373799192483676122496398412144374827849622628099326848612330327692825375252099162108971391626127637705919227474291637024420725450123113296324516527349230327123479359569564119347600506902002506640621305360287777889055386708927179769095913408729821874403949279880194604906477565897062124813631073750947492937523296408520071517796517333275080571901457398784188645037865189120584614585281630665012540760771288175327825188325182137436270514549810035584769528705628721465807148991551387795178942067849377994308601860502939298566065073064603338018945994227169422153017116747166246352156159659630913293135487277381913359528371710441920752732924120797099682416614392844224371571943698032782754301157339990398481868782070102081470502333097094887327120499053908510930534699369879659321896420273312374300877101820265037034922207240672889955943125798546521013702738390684013452898970276731274270889457513384096349959630055230467808948680236987059564610909003302607905296313317546086466846411731318537251484016017802664553281894239968993351881704936782152810860733337086054551073674588255056430034164392523557546695047176100919699589699465085823908536342249751072834431894671348369459747709626069933613474554233397447286666057512371787738419131107546299395278818087379204864588332794190820153595700954975644722714154605637251923785968809329625310500998385880733127933767951338317858589747605758381617316634565443245237751816457910072794957089537081644085203209354250142091423448806806156326352351287687351813398326210761297683230741689037929743257317578150974699690200536793105465233769319638207906774741134273003964546874849860577522635341435131950700780117919576748121832257955543869547701128770242065271483634628466068950078622000021140229515867100671846833350558052928701343713399601158399928060496665933848175044787795335866118826559031499783859878882058304031715319653678881016471414764595948804927991072323606033335618695001207346625217043528099771614481971829254458884593308933380418691445703920456498942530399437014215812430570379054827816427580712227490797885103267842114381855684344847196082982736748616635525373369909616858779275575318151530583521266846609109689064879441093805199491044096603658165398848382609642050134257994921177873151106872254881731095008493356890911793643319747477235256557070262427937725729858925026238832287747241568236431548692582971822138131333935615745107341676425156104849640074949731211163321304632778202865917524753136353733555067106142160307516886062439256187757171417896449673684941548657405742652071784148142878373672561927854823009292509344214797434789673893330201391488030779830367836901929135990827941822687585769334539155450713272083077180496598612843770728411896751778609494091629816181346380030614080519053761199390893570619640058799633636757448126204391170383693816438271699301224817909027632439739250155310854658304017715833746456597921073853760140441834310954967697927915060584805665212677369459591882587087692432069632375665540025695116604926211583271327015929448455595166768508899080978175433261398194048725608995949395309264907465382468036799905077632893879993055754161738577335482965263959445426461652756494191180401866888786819645604517738150775845970815949837566737397160897705898571827565274430536813970165738735968772213341118956463133462407199955250821260869554562554545443363387176489180561843592186652726539824885103306345620801187798215978193969744452414677643169608867663307344269716972002862239947373959995086544649831840415431449747427006813267239277802925725004898521025169412782863951218512178903371288974356322292958944441559860139450388090148293092680026654167483033561352735680110249521262046780245484010150633031736313532445696602745014593688294644697958964233281208752257878053558123846143596319511959358223952385034926423781922682094730289859173616920602609701233397767239716398718885804728136380370995891768667372518616662155412433765400802056626437911000339813499847860478430743794943719353739137564228624978955840152751251628306924477775384919430627567021635914896317191891964919204812044678110895349631015959469919996784746573992948275406437714152294812218983168007152414317586398521005967727532263602641074807086994982471105642121556875942552077887268617260499823020961877323349244625526778571457454457976246736057538363699825899719098842791178028461091749284498501799530799756758977500307667849576998700419891601657244173207858457032710936902694758745912355925912189494523916983453840311470189829062984639116921953034684570819073442485914055161634565743679449678863116548928413795220458082386168093594097868539377940753349621938701209959313707713502205897103352141146216223089788503011635169053845617809070247678778796130155643638550096826601397063850154327053478205797673977467005147075572398549604945345310237851550786460274101092182012903445221954772648952190437775789372458283060253210252434620055053610362344494871429133012664834407407541224278737208705837258713980702266036607984912452914960762521316998388219143036205247640057843145492638904608116333968469062476886920187199318386480412417325006307094079530720680061686228373150936797447318447418971900905297023346482607582843647459529227314717559142748459429285194646337016647626756847634345042249988729139173315102742837488222579153375041062494424031152742695518085024646689950899670461029088426862070353166974906623140339780172131706653799706693794579921837853118498467448136572896806503922246404054649289770405268385173996065014739059516147526120082206702506680662478039955445262094855212710426216139642542723216197100764592895102252705264369554266656020962416905203271018091181974779794196149929193195216514822980922592968551410709660099794684545163666292702205680229231340288613208235878554951141996148545249810500916826665269634297293261295043951623747271038642298338851806043161482969809438492980271110747563009800825233619669163901771953873012695177423960588672533006849236566760035777252596333238961932688672672773862478225931030638074034733408902583390494235873566947538356190321267735918672040120340126701864746659038111197085970821460564063987701640098269166926647978990058616343346288840346331152860328880577105212136229196623308260440507615564912068681038616608000174636557516856765441423449280488239302111048377520626696787585504083405135805513800245772778781569432315798666885430118712693577914833313918999794657539742529738801711699815121147463540414758222410753352860882774812453507929731203294483802876684935772568640260591739300281196951031524948068759996013220461712073596888943603378086270378560924579715960430152767442386948449922738509263771109406108632802640471978573398616692494650983204961204909838652314153805613179364139301080960072844069726812713679357713256248978934106356510087520251179936148858296261466940092712944490528804832934547131622848160475202498124184324175820184232541574959416066675752033809771273527448844368367456898724612458147734565239091376860165082029513901198650839254289382883623644614797917091805767699519710989710372241727207418804811032066233291253680702985144838026421294061793528772182599400683409646145515523503902585503566357023796011495075901076492149025254697886881473674870412392770203817981890045907545501109964377406259354334936800309420535329414219612921480729881396495696613773611804162075986494968299201908997066452505786904858576559937704882618681283202928012646284179466715755656180360052706904240310650426822640147117810270151656793216634620737333149996125061315777880628313623123734689649108334215274679473741361696307695172954858190894870768838645094025213165312178999517393946051487830552537758051958954125183380307528565189589903881688899316247431945914683267627727368664981859190615169352264846873500668601755637779156087461474828344679076701334812574228839880902016709166522559031287550155655472535684984413806512999130100994498771148354481778557420809465148479479127975633444122187545586543503308468911066010922160470776765935853827018234280050541229158074779103623171261878053907702006733365949626625868126903315877787824783754166173537512516343820648241027664672906201279181014706340371912200071263255223070218331313742108930510837135099381605355170782863672447014663316567376157153359695875495962379164488358975787689157088633806075834095811258286183983417412405304750549463951242211075884390517730661330856554147994783472957684250535151358646787123522459728949969529877824945837656472281388143086632883600284561585988406755857694752531055272969094167361714205731361052292345439195532466848191974509182996092501650088742736730544622330654933922576336680538716661373308700773944417875641728188895377867997448520775955302829086476393915312584868830654229890047626489500941485712248410882719826701411605977139118834412320005730319983824960170624060653889784488103375061097571720889887176105746012103206159923056983892136363430135068455409982517658662304631284862760661461471012031392536604531973056804031121715845312437073165055039996190245291121900148885399631149176607298924733280868736728543748595391601439838579057652059096955349665941550266587173250992523468030217731556147873933925867144909360277202268125304028262519688120903148609177177761808149726772223461753054429808083022971973080910264979554476460855795448428627776112421264765498700229844283070261955915871985277330729148944650858493639775501235463098826080654374611591986431859083373879729699993875858283325781698418226026327509661827556300735293881595546320155008525776182972831072714012751945863297058495267981894997216635164556567465355988781198357528766741128764075486268527216663434755796557135932414704144484903815342222616989286314027075023854461153894743525928391049711961823952902119516771375615181081710006430116589423455944980974397649505289041223627976772186995917616931767563851325904591705702193439752052335409186860511329213997353128647445706936550947305822006778793442050737542936403015697048435609727753143896931882097246444226947863278278652387023237682073769937536924476506514080997656012068964221617320763865334717471843846005321516393406167496261579734259463472953391388457580759268015172655447762314178372769744644685578869899207292917052383313401014186971316033444174650632625174204305980394571807449141832677445040122856595845849843046182050211674685279253058164007145976096327907223534124242689773506759840783627305175499495593184308712525947843031899346217719151226414103607499930264549820582948273761971476574315363546109831524239415619801669045575997940700652221087455474020673267179433825859667817322501464101202332860088297126458171951583767178503596564242225917623698671568015028369334844131307853607580003153694305871386425473222247315418470182077508933882648313099717117191785542469959040871916930702710461704272109226670938139706666152453886440811606296586662283672989128332892950605677301358224457101617617094193311772117030822613664881378864102659232658029141339875082258773664745085037903078161067539885323066771090371645559914627314499506854951372925928784450889217411602976433600911455586088702993433101935858146395767505396298270436795302559147079777929976716735394014665719361262979731388696656004123281572129641688611702636339193503412369990714457901632961073813989919194661161515427459604414656644224255735364212578684029680322693667715513813588127204387343847008654288155172475370108260242190267832335555343285859547141843412085241902699819510380444127393025509716179985227163014801130958489014247871224215189890337696688582031659555734317056818153417640501660029515987750010711827499687063321135068350761193155654406894781559333054270680598979099988087000538747581676941979046561647724360103112698688705647600115366761789135735168732500418195894058968547282248146016035640710692826209561445875996433495964454296623242370272749108858885619180086363939038020651645087818940157392713824443053840918407883196169951571208192995836688130936141292502958042285623263796136111544354410144352071993253999154242603117162504459926187059392181804917089493648843711816767290401526977054383092079429482280926756698838010628673340193799868926118872219699590993352704053855518872971312740031362787778751531733437151073049406766784946848357386633647242842922388400195433718274008717070037795250121025131849124470760844523513793210541534902206841067743051062441508440617566636815487917492416032100571523802597256092616652728337411722009547670845119559076856499361766511330122723973265240765115942004525404155406827017981030654310670534478016605664919484866067153285375499785270780717490801604172007753931255623728985026426089298266633764555928551961209086525127616691961862803257994456950743833983464789803216673472031617523220530041810083126827275482507974929970315788216607913211234786778697074524862833361862221116489295193219899143929492020251706128679076047533520617992601437838032771432635203870395339623432236447446276536029591438755145572870599268665105801912663809583910102617697613235752800260805569115356774470692060926410878780887308425157076835527974428081055939683306496000857147435254355652976208446323120094778791959611954458998933587284063264605154947842587303033061546684773165911000827506984308277280767882500908472661289843474027438965932357411740578214433124585656939750495258600947220885337868428217711524394325148334950412249732708818592463006096818790268257284536837357246455838976177022057467268039290865897849154253717349758287911233211577533917912347229930009313214220755919491970051185329200192086725539533492975969411632135333772544590823378901425858267961616213050094843888420147301991383572185863672346306998983779020705983038519852490996053174113426301753507952215449425104280052500449388994795691136581669835509185609189615274849877732803344410089402633398965756908506216112264264486795271537865588263447705794374942354823943433454595342609353271566722547958108288343476335361483679089541163222169284096370741978205643804348848698131221611603787533130057298507220825057167772381324104841986177230291577393385469258120475899800315870999089207145001764885116861277083965994402030745086468554382228394198834368581303187755179223150676836542328268745786331939184145035156331539245131888259873394224081719237164528414832201531129130405232462250416847066841397889545528126013558563775846786804871005355438308327595099005312904112694955895618202560824799338677535219200481337404983852067395879038612850170317706171914467050678512256280356519576730918426681483019186073253534111220381404259665309301914789072859198007671066705772750621890481126009397294758928992927961781921420812070448472377358227448273102777915976046991559040453433771997798876735743877819320286067173319985246299610113685622609115388564284095803514659574872652091721585017494324421860723971383685832666663716299808479119623965386531814188222233938665595666536283974204144253409954627463660861758575951130651404375845427612490669192467334133669146300760275269941085331206283814216538672553740206339837603762229791031332446996449419008202720268437080773716379715185650782202459918159199959328756951573349386325231987234717128088230314530933688864846256170567491086321527391423525264020938167964675664701653231286658712604899904574623187941332802224310205209699885708531776053253003608154549008867669883693694079702144350888817025675448255626110478625383204205458735486011313031550392176321915735348644899075961682997438574488298958653426816571907049862520112331392770313255906456083853421535399615369841554821938556539325051083878663755079610719354074951755759590297247958520611815856897007958926839114311787247277762937724647142481359982417934997863063688461127536393847426950352997494673639426466029607252947949158763670093738408298613537504257100711876780928798004629813577843379627241241463862914148397128718102241140962703644299602953551772469936299003975855962591303285534060889568190726259297753430271548668239581195120712574600753504992358520606452525176183664608716909979689680864999184318998037235670010351513676405259228723959114273269134566133377393017367447807470082195182708679570898722174625200664946719844338117562681053968810786769291524507881605564702017764088672986423277433756376319498253754279087025296803267496183301176125548557258864737037198319116887516625507570008688556071816486745672524643551089702788356663273204092431073908063460806698316033099364367549516979980319447331867057716964180768979945661933207097725599263498449290529660978347982713480943724420687878166116085200346923506079505064347112276415728259504556905938263721394968804875949875338030577867631574112292603846938625489445588041810507219580786842317794088112437684881995981481218600675907518821940616306502037549606192756696885503086858288337645792084984338548626762405617236452058124179093563267398214476068260197801849384976212629123636697130548654252355308772657090988518544721034645104226524695949903840416691182657547892399929929879655053514008088728531334280123612241094372087657900696357876668205337064654784547816067142566769863435372263936556979765917878126165625998725881220170938601010145092358366967439386861999383710050059172730924330917479819094392967823529044246518531636044844010494461051712351712341950714491782509769134701537084274995219528953011544518408644240603152168189900219076969753724585895030568643756346560637098897169937630713337463383777802373566902271057080178815152626541413000450412108708561543139280773809676428897223841331847211189337041057351088824844749199702633684501748288972216177981948442996808123152521503242980170887652558226797381400474097347993008922746371420792967869067793983202824396332800196925820169763083934961045984678223112094741420117805538587838732656156136912047147579795337399193771401355516945925187312644707380039234549795645552690611364206871371274994630147655582080032962399473962618138236928643597653141516373638255576437915392980574175025154449076906896472152668024303991801141067470303385380680124617861311666450782375762430007094079550364291477477243165798548372088223425134630155928986678447837711744034804689487299776249060433856482707592469462652148527017226982099471648362252765112483497767949316535425145886537842205074439218454769624348463440540923209877160145658955422134157546420361125899329735468154657246153407779134460468273602402418650247495810627455137175632635653089615409908375377604379579749939776082580163905158966860132170652864834060903032185524197432497681015920137731716086426759612117621893780183837285816518279381006688816492049732461473814766093031503186929239314496478178332402376224375581413683783588060413317852404598171200828580135220663720747227351706939680307935885212194510076929102017944371732227746921674138963042840348981966511595368140096900473598537869122824626152841486924263054033244660334171441665276813540488891834211564355434081222823351494168458345496576231085092837738920241029787947756722883400280686358465230796266536734295474276015299166203445617567666704269822290701253704182690461709018836296056281327646024414199698507654520020807953311627869857414230112701184063537648262115348076370964108538486441074615952630130569784576985382684406685779840950742179188300435341983930722055703905036304603780345683624132227556219339034914384589115998170272660701848678242510857221369378589238558774327466449194006652539231690362881464281660447835224676197976588850119476986493499930003225239490938892605340463432098674717811661039044228176372024225266098048274333437256325272304206992106220544690906034614979780922288919781994518510208146636961700361876733230814772621586096528704831170556884391281843528767191153687788182564538850596008362556556805146526134725892723900629570988989786552253336864989968483213803362070642856906431916747703398848069202436321563528492352260015582885955922600917349937574958058954377217967795326327687102242286482137874329526973250556434525178482902102595387604017220762476657397221195687072584834112033383506404848335316042179192246677466524495277963589176940214866331628059652758390434422107247280748329460244400761173777876744200682667809401217062060308100935139498004073131178708918140439704447442051428638504223403501341000588674055253761291431103003837678611765150554835934164859623351021535689358207940456956136720118938319340257044147725699099706340865101740010878328212804307612355963064880240083398617032691668995870846290554537499235801778214035715992354096378577240013750365774025566979184080672556509824664877770891692807532249896840593880773740210616462306475328693693221599876408467988344410478414582633775441498124472772340117161722667533735053532712108662146880625377507778844105377905572945440498026969105741923357216911915486786810806982679012546698261323259615956247595717855871195863277604680073822287341236573135591836876799129340457115402781060380213804429060468704208272142776911732143489032170237024439497911809560331589194567139836392184763535420355135616016876167050022865512408746466478330037827576090989137722058293461769736288237856836882151556814191519554486441046521784575555158049395939391418857551058577481490392739026278775116940342748341218525922530982307742885849342696624766729735466647844858217760190187521870922678402911795016836573589218511508615757265357913982593074228289406358517002591169125349583519766374311638014192766416250069358881890293654793344049399075309796561839795454763413931111792314877977459975202325203700957940877728066052413373439600095396425583324148895329471359412951410928754204388224734466683917994848145523417475454540284953334379621863474709413137041529617870669029277082467873395451304069079490105199620292612425754135710323221621822755874184477155931283827417979570710601289259181469232531193357010295279784903404670690265476944544901251449006244821479767937781566937930442604932017571509727806601307309734951737165721934960490452538994363747145727208455023043392542291916392379621091625958024893593040516248622665527401068485704603299231979850449674651064311687661208644645563171048381704503230657463296246928196945567042437331760306112791534826020291714366130776203242075560994404053002697776498818622107449229518038293432242802338345837702428043154081418208151226870316650340978279706958803370939076645778858902921817488796836322334129614439034248916810052165214672026884894835210400815809146996581998866531800441249281201106478314049154576173655163578630920190854225567750944159912530475322920967108749139821370212962534462172489591147687391723378127321077469419632582403502878233986628134350286956220208034042560896920739363264150169463898863610736040305857646199642470908731335347467265329790433941153570441362129337092501505539225201375264298144084714017982624445898029059045528271328276165651442536517929669887089110649866206865646270956709755348829868487373453953422673182016701434508471485788016777370680933393016348649211030742471479252992790604522181273540675747580418694747827703344339328647771957198773381862041505990830619982129697882761624872801605508229593535665276431593208363544906714635190066495691802608318491367015258840730840158438983282513281405839946125762815651322933144291105163866614387330283097811425049347765071337671541753022206333032565751243634675706901401643302186986762262406795703766617271741241225775514242225703680378174899701363944562950681636030395484163231076223116300317513874937485465063607390111550432508502746647222823302693655573696251848204658313427704421901895085526703889149341135366247844495571054685635445651598111578174186121459580716579017196590617557490907679640235814301496213252168215923614734465421889111170584796054438527666431609117598136649983959176540093256280166616125028588023675039572452561882293016640952701091453544359473107016083865526242871978156746553570896088560387366371610009698078375735850485340035935606391401415289039460962476570627173774614965080905044905852968298787767886886207678845367613524762615568727372216624978896790297586054960530530899178716298747232362337017707820459842884339133525807624554439315316049420375298063056744343974012132571818945839931087438929291820720296898959832399784442807649981151353373903794016973727875129351736593175567979287988336343861510962173849089095785113110260304749082972763701320208422022521012431712730676729638347389142289101085309822220451489724540361814153258665016935333456834140609145035954756084716964426576707388732872047352271977510912938094161046354679608636422824450905150164120771234271484788693712122129974624958815101516582134513359208594761414190423032321501789893928277815573031551850766356099368964017710507412900287435798346651116389383793724901422738870802243328683672422639427833932907022314520688738820978752127316306165282218929855766297998384289985399365146539802580298992198773778341338985975600758084263730385039018581077427197200289271643862242382961946384201878081332317605194497648987173234760498822366669344654103940506694733800832544854240445771556409462616660113204513853905721992858977322162765048230151646926905350605211693344794464098291379051780165533380871591891918355526629560516848331855798198848791950626700933674623570906963942556857498273488607142755086214116605933590630299309185259452675883239302915632647511040783746366992243361739318637336944763660862999840604451019410382022234793538567335258439284850112366935416376624857550730571464841025593941432361757783851507122511997080623822021350712925193209217530640088157956412718584745062009445064552536096978960562764667736681011917179769547362849504915985184471507838404830550013242793785342831690651739151480917983471854137480613019529716974388282509255735899520040908241648698625814905887090025968584596159440357018791469140142555474463085838124899013181044779428510404281533742363712583096706324437808282011819328001210821941738994430008666415490961044166698573425723088663483335877499524466979078043278084935459902139045860266263171953991893103382870041250589969139074220111587504777708285074859055675834207861735299997770395444836111254634339586872320425234107940547335785052904401531852938451353786203037633018043949553000153816430938935320833560652439781784177068633367481288615504154954547440208720791720313854996660987861504756266092017741214433374692533337984597589926650595544797375139812816173387600233355359109211008068797710706093218875648888262567535334831355761403684252891798660680089576455861661499094762730814362405773026336552966324688455273744612714545253368426377295760743925204719158186229907282789457652759985282657372633593865821350925956749135056080192257716923776098191115336786726125123928232245888220116982833526198706826959036357013920977126427045109871514167779880945365192059523159874038986004781642971463296069149470700589718039209326323352699236853123595220656809227392734596420819558806590241030926148204806773954448323191425724169056519095122342181267137487507784043933194997475735725535161995342351635092239890706307971696162145502527038164419825034641084642364506680937498864224014639438181283369958794808741780913518605276616945011205398437000950624797884636845207434012436068391213256234916906578971985933984903769493197518890512913215407853876573127655428520995058815702883439944057893796456728675496256451800510961476681315672061952536253428689465985960216264636296969190524536502464904550790768585756089693245209467410123434205145219421402757173538317420568575282370393038213702165550839575326930356259026653089452109236482963126176114859124122169924091765115870782209157947859229609319639629109272518719520409491682403386671205838489223838926375242168742239703835188850507844458403058634258829396445050832466111062359625287041820174677212740804776090631023825904616427788215405279619465504529918737651284422183343590682510371519893857240461353552505272527992500821402626870285412749026354750869257534293418522954241129057623915496675487661492130558250384147616022065435211989697904565134712698228898143463005440963079141867105900860337649557505785700947866313199720847023751970715438393522182343258826394845073855728182836945026875716154001103548914382489662789943264665796819175282618140350105298328791567284924176740883663077691924313100650325626210491692610045696682683255932315626228625274462307583226992844495706113687009448667817003062063339870643693192835648104296471951564598595010366401280193479017169211422072911029607417534938702732889803123600044303020729984054424231174559435644705256396477057246374675497999250168628813406695874644197079196520334962863808328923695872426363514391501964245733076790125119601385110896684250451841674537253969254447455956581119780342208728703563402262809767529959391354878033755138785175436141154890226249933540604942297953785700363564014863629401813639686674232294419060244766460465296267642806243223514876770797514593335425135446905523027030790274971605640994387512673598570534865085553239738472369584124132259615375073366486713458050898517376484873842970286819673412808216556854400063231969310265705845844093486913476008724698807374612643531218509686398744637415861655685454694607445037953862806114865834439951235271539411327947969185953154824416331516159797780907756915228349015047218393001553057340176912655286215614112872686364554004471170199189386459232107195667099447927455979208617774395434860611188302148939248627480564755720258104535089014088250442133676346699752183381927873613589756243006680975338465294942313778298986337014508948300898278349375555012967402724119332357564142469714755440099107596459339375659499931545939849608576807570474674579089259490766816723183129390849574951265125382051905842220956413835011258398228551324968900850603269667773105182503380125233891633001242228346174796939265720874749992051328824650997079538149759738996481234598517533508177716557989477191182097725397820584387518055500812015619432667416035242808742680237131717054592968737603208987241321950522770370707394822098508436016732788922780518499367374544962462144034390420728287877816085760239304833213920754879753591990237932856023602681059415753174028748630059785360439901075402156748018512062953256849991259932192030835035076156793365067479544610391069120402709625517503307414635434332684908534846084346400505108181305829065206398051554882856818577612067118002876729965464315952631290190472762521009954123097966599812950545831920033765731958951299780862429337460895390096472542241883259082778688925348691336598487483501658012555938090877579160614896717872546197370097955729862113617039458301337495674851084578997876390966800568467841769592172238338690610694196795719592273923976008485485889754750850119813151714537560868126277698153584414987800019271028381618844724377632631049448549045493296783068073804923168680277632819781209446473648916112074299915066923700754173800990682320620778191738087539883718134609052760894627958087059586775476074215702254507997381416242249294786195906697961464523973004762429864077686147543467670683270716804611394146307747670799845513430462365907810061971251194843278304418440730393644738654382963851715135370848152988626797113169307830816570243181292699957836627720222395806950723595065196574491818146870727231062253577306576391273036411045277893072902124624259158237962782637618421861794495438267340093200306898202324304115664551615672359887946251726757198222325565940973743139765772571309721294904807845154488343443020701220073546484421641437175327712817120480132026036732055662573840344145053725203129992167452417367134807703130052517068346865694710791209073235840436545460634608011443683817097766329275948109669761503070657039371156499869557079279661396483534717160897230960949021454127532923664649906224736585133520763552682732102993304882970282556620906150834367715474824163116238541518417358700574290403688980194060479904334449407994818578871882863896533128773891819870655166578304946151426767761476581737576364588636043408641325946904349172321111847877330172448744597658275407485749611887977680413615570694241464875964285312096623914056194443175554884422009452247224026030298344266573799746620092548357868719740961510407298124838004632471441019021617770152628914214648052893004685568630998293802820030071211469270228250399111206124799394998725198926959000811229350746494962606880247089860060652105318989956694674495893620009381310157872836958786474338068037203932823711315117707485665393400195318652935905248540247942423658532917450751539550759671506781342940888910305448216892717100464582107314769782041357408080079620174508305167182221759974179534812920374908139907230446684652409141279741085667643097649597574671652977693144095203100082880282657259925271138903356990242428120356463453735223280494157116616915680117579213332482195045551676834450617148142660145212915800478507036454572792850124306074227512348410444950754977504113185582872327681774512102633768260197584061811476234077018171577948535555220017553084604987684003166504319092936172926963628580430294957477511505165050997871840549446576065805066503143959180504980556791815340781489912540571633698274676726333642333514351934555108395822496569445816117058250139637515924671836699644788559302419503903266512473585107528590978357265462274926350693817013939893784813716086432392820223164092854444614870063686081070315859389790858322914016054553493634645644936074552607675922743377257470395571084074503383392131944812312268171179721958336567576570655285485615883558796364687115220300204209796460404726515617920607329453969687843674772188647490714739994080220395356755809226697168007479975508510253304261182177270715980927884885430969594363794229183353802666584960828683080387213178172774549620734810898655167319231784297839095411037401247098712913848422741039492075659962938961691111613556278614945721407224479483876680409518535699768834444250394396489291480883818065158325638142449176674182729009650318729761003574177445848302873401010231901778616605607711010283543485597179406183437704289397246517488577695852579754092488524367735339116680212499264821878696080115239237815367218201982064137947005553576390236020530365608369451353349580855601524692658026442899499389130372454043092857577223834215812563715347987712323578439074964276441763175821415838422566127727943170536806307121146802312526409914091624326679087550030553351746746353755090535708886860251505288649881277995032187392758835635106960627915455740249751698586521830171289292185210473010940703759875245698322190935526597085477736519644556241995260485325170359116716350965271171214237981472441204885105996832333997084616257229586479890424099835200660614809414966176056150233948310061749958029629365763854937562829049605781883338691744929355716759339630405593675669140173474756853638725720438888493558676162617930026072345645926714787040404668867848505775648390092570980688962993145613026490045415045785735461408792455976004797993489699796847153112692026067436016780316674630399578079200555286331162378887726165454077132948592349209819530803118244890863310971939733363469634647998789207993063820345762273531387447111654054215304489020062875042488332542641556915326499517081278379077235883110933906234785149394861787380113084650836781820104235109361931434293641803807295049623163136053443874867477026568194717801081918579504845294742154207761535048800612756989635307993366619593946983018417664781955745683365783419929995725755186774422695599738312309666713903116495337229995358458841152869214959944536972593313339677104984042868381749548598874971578212919770426262908191755815496899922469173325157316294456195871268258288964764192163969836191146482214977209687586839881871875373972385916821123768035916941214275087651678001933674836087398249233498076529010072808104356902224656520814990981792264216745110479083498776299794548339300457018653654400705513902584692723981746802354177719147356905141618742312272231788090300766084684783179638799012955382447127557574599964009126515577306610108984864526411322483996959891262682603679244489323921293539994040952216589390136631225752876524247593856914358511060945249319837278829599663902324125950708473746585801310849513074125987951514259039615582426638353065918595749698771529666109521818472258168297540198550962957263589483687236380069745053429628966652838331017869006966420723702791657037806458055366787783484344862023804894603769784553354769599416149729494790650494919463522088149711604169259193108435505622092593445075117349222421081268625220305571084765330920210575188457053481319207339260450924263096648091194066227113573272651915174184612431423386224454955733333188995430539665460342431990713304649822222396875345757625090224632300998046600367466278223346021739917340668665883642825250166457602363984598146312981458191035634320351753414001357751168868300442065941766804015297794902404987438037070719975732163035535512570195186794041774249053740113558339518809616398811674880519738470835267609734432958015173117221513828674483260986141472089154712863940456424944339765590885711533104968319267470236879299987076570650610192986809257571384765789682933616604419792122760042013360529559402927003050266085273785944370744476614383296391520982126297400152348187067390525374088629958689779963779485851470382278857083576294273690125423170658941665151914952775048683513073174049012591684093228175114356568643570645581676585693319682007477888654589886351859838251034362638171664190987629511043108278618948354787203716610197304384312793160669660570725524169409805825783525472703138682336911821936218242474087501885267226686781501377141965249515791730164595009341309053066157822389469364095456924090146907781365850903468270756398411588068156032981175386192425366550195032080706986144512581082738930924372021912699038575835549539929967220171983840514510667873297048292612453226403832584963132088961365502613555484921527700548853462794447060095722105920924006341053151787840622731740632566923661527406696349882403883660229359917201127365442368679944816903007806992936714862875559559201394038778510191820929625519892691933665327497823314674883162176572708062020548649892658197213372364451201774350110887594671410332686961950913618309362921799544050967790270389048773290005880316940098508693406146483209165281965718585446453220095791250251194293311458207555292921774043076767007738356766387863511887183753143517717583464519279035363589907080082916989740401145223105614028669692094431642223273165053517978928160966959758073824795174826947744844354518580184737098850867732474055488826342065104188765028885360755610441673748650852754545476524261070451644495217617853582331016250423622334616155598446174638174422669591764166708103155354222423819178443280454664219147747999620177986372003548792501738881132246470736664409569986871899982719453186948066274750141169928791144827388327258929723929523235584855400526950250588368742906994682720351027353901914640043622160598687029790315998376846031577333661048251163950622835293595626995080532648486700381813717208665777781538743720437153462207210621610299507970544433170638716052653988825813911105848026700164855219360794683007341594112745168977105192965543034427200688463171855012139351540694943034199252491206860945317231083192259400778456533952892916306644379062465535363018037004275787460791364957703694329227848188593187921119801129644735524125597021530164724254301669934097544810096665239146399318877316791087093389265069345840390428646150627210195400972437355348269573507502675051152237476992956144584026187333570052216507114059046691023441607150603491588957329512747697375640396950203551091072025159760974447407094470319983167004135088331493925237579445009855572056969943437103521365540811398725627922312966918392224181404034354606694165953603567943303670308427211094973810841583681413938079141781671273681123388053079654864903914237873458624493703200526482964884723862596431790188618447789457614286263635333115992435464293094842495696729086348302120199637754690528065951865343538922056322281315981062221702157673172538631254577844024058109245198333640202493853137468312113496985849744025564557870679095665723252121530074851382907678777596100648942741404143226047471400733567921278983191382310067973501807460742511352710896136737622623132034619229840697600284543822007205123151937491024533988281347777518808429745246758961292795957036880499519052071986150035100711322015366678990536735947077967015141454290994093116299479205791680393053577581379946616243194337348795637786253091623779311094017522580072549241361075211938825841439866129887866632124011862811160126691948625773576159435547148321502625394754292209518224424308387108391430808507504601520210794366970848402175651406969328883849734544968459784219581810911684393378201660875207335125025225911732105934078901512006215863680446531252129721570839619459884585146528425316041092842252478568478876548766115566422151297967056541822847180649020858026085786193489017618889270772638489144507651333884625867147456141000976968808327675021040455687689854536846996332194446701734564921442053511307857778410132704353647709317229975310121720083319414396892077475925194467849808082246941138573409672550329483894028143843462629843333591354750077662830884423805465055751180071443153792846210697648238332036988990424566162487346033841072675220777900322639996199791755053213884508401908536308104065536558510516268222839970687933157286476380185608024463700692278961433352916127931700926321966794372501453351500320381525515097639706405701628633628257274732195580554007557461723458396430459415242205362637447017079781262740414343877254418598825215226033878575215531451140542809143448448495927260921984151680072026168494385625901613944584455464165066316799503499873571109178739328926980038504647522955030543753424321202061726443409935555978010010570693126158983679236432170327241634873067374923822714422346176920441467979633983668795722980747091623102516766665776444532898649845292644658885534243414606755139716513056550749537649943938460564815520574859517343002923129008715792570052712656514377877763522232338481114894281927805609290318786797270430023617229549154419311298182531454314882448942431645127351851629345814918145263908870967074607190264923893323869435762523692985171412856558940275710333009481359905628273111821587979567014050369492916301817120463758580944881936865952304799425018570546019505676852021326567174785691555714417397028892530810496263081421910851403130588688568202003144769037143839376742286456453162315449880755740723320325492187649635169347878494033942665589053708841670331286339028020034837608454374104968189653002772603956746025069741779268638205396498400178526996705036637089103638714681311046437181075678740180325361380072681156222708567377575036263150011473956688670107364425240935012721298736990969839688080723254164992654396366125806647982809594185392168278567294326424489991043447787589749555440269219495075475121422690590347480650940108360770392635410721538086842354326373033652215062159480057092571450473552726683473647946999804829380675072246487392489492955673491745510746135721323476703760281812166628329884552212896158085171453052044218053093455555482337633188479337538225606819854788355916646101485409229465061667467153214582450600237017684423224235591587461606624923926377871506843361732538729205407220299266856106962490040581437076353190127686587099469206408905815553684201097018759612388601625531670299743149725550236195710145376834011125152771926758909778990583036675682485487463834317958960832653806854539387353668164239918455347292594791621945527910965808008532535207289234114778795117384817991698836385248924476948409182709601806190441621350061949800484908917635406366716347857655192129937305921347490891775074233192158901508333554385213545610613225874446055924097775814605984073881025954470867485981247036344263039515756052333049141931900655097632557370405309247636173975138548401278345346092178435961424933334297597690008838213518055551904940475013185795281544330255279587265807749599274528486589018301662089265368017471013475508072453645064856563777261676480129301357085380547312390435539571010728246075304248562913125366758772549605508133802664374187041977421905724191537144433031303564959964292940199996038048695994057634351954860973310070187989160912724805219482949518648489560597103521025692076290150321845156025713664115442850112006122660676166316540920059704414384196876170038631574120540065796437604169612245101487087532147441620165034623448632378507249233046121767904816969275986594726449813700647154395864808078342132950451200960554541718558877291137325604294270159950085253564377985909499718147781123547546281150374496247585070214095000868711091706061348857097427388715669259718836815553766272498853194878752325844892450853559594864393807119681934004626717570983474749532821699219698773423277601580263457968814985933953655731960942902509094855160761156047605126766397869173921979135849462730263583378981245581876178632488060497605782188238222490333998563915404528556904602160461210227096957025669426101124031838896535717268692740579053174828149375931676689074142907811218912060468173376152841818926476196073466042509550177179738778371718681820867136476531418364262028471635337954597078007751328156751924945497153073638848926794577654674275250096894736874826799199162270220227563751223249392759363992813437458726594533595592734449330744549523724274311107020370767419516354873041439207752233886777674656418612167758068615494703549364518766101956817616529068700757579171614084591779907931806953538095152003922473620221726648828724814953650132603668393884037079207897991183340269954047897277371401729018462629581426039988996615363602087794352097969148167908871842983473632301043996257081816191686443606018490747365408738541990945001061571705233395039855730646238799020699085531374241566018715243318243596539067574251506043204009610438290296003182204765236694892732825294802994837789685431998644890402021416163433508596693707060540748297382228548209918253136110901551660254431176315109125974998596628762123729983719358119832011993230003408484960918903528721573979995823412715360199118118266499816756605370873762412718949310608307513567557044858857313019259385672317784490421687116372703953766493087797565940132741861131052886508592565546899123539527043066194802185485045896408300109581216125118508157572422844216058353884829891728163128296941751876680395816508565030469666045556789035247015172626189662216339611152359674817131784753288573622071034899434342891770822855424674742207511791391226324314992545130776952584550319002406668568636278212477509509749994753572524081758618779136898391965906675950472409114381176894815453145913349363790016263949050235958776392975669771154087747104761806340816419941515579720635258986020289927462888461269032001701302853514043921868706859134013504789198783801828906470771682548870027644944498947883901016546155309681933374043385227833260727490649359882940664215842111221256410201517254959102151403008056470798529743557862292985954830456770082580925775490972782679112180757031298186266937274918041203420831109406072070183615590896571062417489749758776732670476322391307158161368156837161512535144936812678986305955254074051339540124948999139602890742392994795550542669042201524363457273414676935721078757304704190243321016056129472401826106504507410318077259754669115689805505153062115492160528598724098603119142468553853423798302113993993747923071551659402784096345981092363784518943424359763061529447414114593611521829974321759947456516507819709785482755372070455891097330565272185448494554302526346427275273864689390206946437715633524117988605639070931862114730981538971123106151139137463249197505047456196468144039063765494361872410291043620701108766614166941623106435949665165170735463938588126383277657223676634215072922039529507439330878023040249763031890666474261186570277704386737563152652175221866786540670349954576211523188145695271308977305017974559717987745858557431196495147877766813139056325598432971317841623983616743126195370535099789479847924992724607939756868842089078618113921770815273025775832046034831192073469228816509063828044801758476306772277752150589293782830567259106410737269347067710070173164337778736217246534659922954492755575861954481755673617473126644441476688784662535918131257346635012403880391170490326614575335023597119516415727111463778324547603510612172995503941061836590985496594155469508030869451957216387968270792988415482499475488262572184744532515089126728751726281994106984823035576472005900601897992827854913827344964877392473507500783662653653696499583372022382536828886289687483693135711374305365290654210767355124409747916683921916523399071769154759657934805334019360338106102570167579259708745744685732669741630414253391138113861198382672701099090719124469845740617449250952277100770621336618095395291824321025148517077176503613135832337816341178489726889436413605161091875149136308782461140241168858676570034058047640337603190964988507531128807534447869577357106739079010313050166833427382041321984705618940733862106067577160786343628869753267360025301090777265877825756217260885222087507306398616022734193321862496157855068436555251082877709533223191982739501776588986337370446942248432701641984722201292179305436822975484667435195351696957261097588099573270280087822015991495592643504315427765539094214320314015911782275612215627394836184302460450893784174980053526479034958086709666104994911080590654611799742203318882173501938453083151950605636185432014833677840888212478977467941819641437307526121690755060279528602200390125419351966133641209851473472731650944608510172391949122312453174238500604667242875282516942702579684780933836570161638105486679059823402729142471656644057309168726714814378543748417517890896486587370607879427227932274709409462666939866039426606442041335261323303965084184998334876238291137057790670821800411036781078163229737936725107851143946576019381937460384838486012652759457698847706775485834453874907695232500279477979952612222246756043721232438659076798607504364476154602916754135093010116741932251374445742438622214490068253108579256559935320222195332073931702933236312698807254667942692915636343765599542690899174127343544034315905055720282341491596334721662222123922190646980612159709726790080692412533859912206271161975558728199644865696071324542836854610871054440156106174440152305804159103337757933036616521740960582101544497291439494556619592295247493421524582164059274350700839130901272901784090330423048072557187292811264558150898948044271270616385192420674231172371625781614886487334900645579887554968596028387016818958093769197026646728550565123104652605761067904703640600831805692041723835289431168821217282427839523500182937096257891721638094335557693457504095178289475857757482401017637427657305514453370015630449232118725856410196336523490250027457541290970711706285996830626855729442163003037148220368328430838596134363428339320583892128442459231081550160195514371760198742853094623513963128715296280298818627996942858544773824069609873907224719953184853816971813821075135456316151833277858018261366752456149832849491528115645492902616030127375999663382741136884215856732086705518271995770692218468243387223045351656769301897266017985360610628422542566173033414925619373160754564104828217585809810319836258573697712686557855896008563793128954146207395766812545156044480404193097622860511565506057212162045797665270016606091618633284180501840142206083841130247191229794427499300285436550817539283398531439048210126423171272634890520279618700145729657855070821778358148528004620285365450567876901320502846991071696811981374377398149879613166680503267484099528030745562927422457184189376562869322021279273915786687297703439993610971341228574122582301171633269567038616121189532237224752146723408172448163965275797936310744091690525094755438333757217381505783176625574026941480466118002849506127153891256909255161192537245310517738625552617122819218890104850905639578710814217253201834987279724217288272750573175280812024261827021242085366295052467942151826066619112984485418442950137238096495960150825683820148400271886744400560793410132767254114893140419949823133275352014769370892802596310470858447512042566560701108648258986048277373315246860355760362796080384729738093416305067051375299825779416239225670084178424453801590726457359753320767925354920288000467233174478229752641519774404352365108021446638907607111007344140520197915658918980457580343231497308559872009389910011792942092089937675544717240839429788038899093287868722446960740252780821386689772166810017179079997053709306075936393443367227745272090135682782385501941761653803441446567628848037746326992609450797403281879099674103789666707184318948631784581275915083984473342063559863156171876981838514321208973876048116903105359713827030304909790469109895473737344420031715199583450527927040245953853562565485015955282818979979925924639003979393478817110757297949826871457675876835743640471018535219654714810133484765587322200942763035595507784893521850655250550105153339932576704192729263280409522958516881359434959009750010609112328005067435501571177071460749716324489374350105156128794952196735063791577829915365636621377682216160729904096875385647506062676537047778560975410976308775628251541906821387834925189608877427418645428697322458010798936560367196142205728336635166168866792621750064859921804004314234448229697371786080593168243791915671883976584417013547029718980831166663181601999588909486994566008955096998089857169264053406255386791778917679722306501873474989519747984608330578417183539587395820212152194911987179401850700538339768799874693162134315106714538751939272816027677654923318802589772780634216895744324874272425948478354714648517664956945942389220825036524010220793999854824164635657621343904003999659491723709412316270554009346033872703399923839877001608910171580150123911615599906027964812336760799786994380789666446843459207457932963486614263198706935425192157794277271638904420905884784636297312218981750931555584990722287742803291182472533545250176627417050899215462133235626341886774005036185390975327007129729582403213869809261075723295996464909521204917472723428843221722652084087940137728021113707207806097368460790447684603547470918171785483772723622832269457220740530419705648463573729573146005646103752981741977926278270258117190028054732172006696705915970200624177022916800056883329653025670641992115546180208659746240466390976966152728546653170750421508646871178291252867818986261241694387427424385190317733715080637288725823245029587520153920673735967244493348095317890363735569340594492626633885063154796465942425183993263129539537813662998573658266596235002200495790578181963392519266146125221698952274797271457000401623442964809674917348759368702454941088937504929179402035515248586591665056337618819126385470850056888672029870044079681052300664038784525105295277438751012511364661898161029988005347158118842131680353855715172313536625133575847164560181688404645124533585526236849060034842094300297589641324728518523747821241836888457633321126122940101411621848428019821782402034446747271987208365617581606050556962336314959330961639165331951891094326802171596045390931202478680711457196110091190456662328794029838349503674305992646009425026042477867723331390404586865401460750560383867197340156061937538320135044919302083390477289458786965667584450176903401054519462106294163472601283158997582471950798497392617968934180768384657406849555530170959046624622682908164211272653900943954502231706857974199084122902051134863726529490008028912357355307391475110218930189461956131843631897236280489949062888259794639255738801504811220953788679191907595245237859961872571288318200665088402066886156589500232266111733156458203141334573901391029538775729752765105775634526237013683680444749057383065807853059265831820052304783987534383045732286247890529139675645796286511158646538905793053526186100690037927861922842349225195194175651488797493079354946569934884627137870635058351009437653165599723782759160979191388037223075878111383314392480753229316338803019131160263269220695664887840851900998698756173781530703551054864420376053282983328889617898139134495600001868833224973467905619184742799657441384830118543953509109475396974508989162823334824031189464954236210510287443664315142101176140067046955197976034777296216457724710867692863748513503135354387709229893089841684677002166080635606270237080664025708701222599438164832201191290411595870302016712856855897121274847640822321735880072309153827533586926610915672699069134369006084306891079028731946130984038246832202634137315615475338797081650837501590804821214613442189645269077258647996069516284290039959785235419018914361898208595627342063715244642235231539399827860197355630312665963010586724285186040561815315821487227161225920412077704960623196807431150695309003292611998646596518498077619692158195628063810125304817767211564550053186023489315357004221436070044171054845294157466371698162849653200293329390822979196101926303945583550501680256540494253789819625516751223440091191793446270056262945851260579069082353622430402196459164559947331415998611884181995233543203060406007368345889618615576070472104134081286447133794527548982586016236387533679369922940081347863520946409005494071758610825762396908956633398457017275073680114982762946325078542697768624429882921198343441217250870047211580152532690448361096797801609709414611872517191851681441648108988377501123238454509799966515811095777388719728636285107112533054281554587424794115221795588691709669494797633027361387554107515881961982705051610188231012231630250609138610248532857359540620252557496363887612140246258626216884395094899963900326926193051537111709882774012032336448786871836447037239423413740495291918304468405662741349123020418205825118203470500166949341085424687397674016664462944266824962609070478563911838706265504728599456155486517216036361379034388953729239391248088806197345376516344132384382141189568926746916465574387140200483109804165115286691563806673566234678469836997176258790627259916482733152723160876142523285329772272711541360374141146393139272295449351298376517640672848621972201951555782774971331055653381391261650061046507262422403550018136160497253098165396552337351480665115170351774355814742114039776991319101510107080476356950481204045757303754412824577556397965256336788518883432177676075621022512476255825378043320679080544054275102850998696862303005423979282454937134030754863343552711889958322139767682755347287016631391357024425958450663966826959659154597080273841488241501091405862678172032193734264161216022793933618176412483614899746352346407520899255352479348295264398016785402421274606859730621760173421868757635944769485804831544580462554056421924583054160167219859158401698881892912101011526357454667685772200608381404018113539142506667822343434625888561546016483556993208327997486985129277290668716519168685041272011300055607016451145957283578074006245806655385549631296921689924479393293222037734274389009423527820787861112925261072451943924420185595701855352352538749202178533881540486199228313684467107180909057530237544071292595997018584533899078138020657793696984618293403186520629272949168870122820902424606517833687876868183370351421131480462059515774902712264154853220661336255402471214190188484902134135939149290042772877728535902211631849237508828745772999010348942941530599699842219993419030177750288191220794864601684202545628574520473599029358550985453014713091491470610350899289550278161146436912215128219596308293569065527020495303607084958760771065661536386384449589494485231660427730887699278066863581132346547910046734112167548883588102531696653542807064284904309843585853917755308950814035623013925043356225861448643842027635269414478726120730421040796672479723086547615728543650469051801746190514627937423977121031816286787214900079974049528072789648561522670067498851031156421997628010971213274426584026879082712369065238634472070673570083721808038165943731722171491206410203527228550290749699883455580404736033161142865117256027488198131260222331925609057240941271128691582392004020571192125407360374730147234783621677654271567761185946083759914113620620724238175397133000057471876727566243638154501058132878878824919619800682513329129780295916248171407360853362778678106817219765407789086885905790224318274407294200248366766892395619666907109422176190874245673062398367564159442403206059826732359687331559464965926196428538283547408849446994108541023131942700581710614593335339414090438427779289109967223975219121734002473496744992089769318421264849562006222032300391822848932030122359931826683150508720349513934393358170123361136083243652823934702784388597608585220461929922656873199908252456258019927802534273085430855781583981008779074523159336671612513227445588233835588429074204334595390638567388285094430748373945137300460972403014308527524999416513706019824091219748869442401673185238338505525086197079185116528113352428963611160377466722998746337729867329789387790798712394474319713727698130451106250105865157445602466658581636265213369462660479624863257006326327243760926949285803004056671915993135480191153657414064810991631563095543473348386229324565834762327442085722211995155221302903556320927263099052355928107948209104987078430314115678694625620805739508604414009400307473602416413040432884623395990508326224447516221367354490584383274745075775256215971115331043360646443510122143319610179158377663627536381514676749570095502499159478518745437381460058858671331954629649536170669537075420972938353818767473198853774081238821133079937972469561364046286356067807439664725634914527300041956580904104617971160441039433192582759739221410609717540956050335671911112011998641066236985428387786705321787263215187407641950074669105393890714699761438879450896544494180342106169583033941921188395313934742098379410583812814099057517456905326565351167271022467959100866286904345689798326569659237525351552295185704390308929613916173031074694565847605602709045081241445834588641454250804081126306543365824562809902513657992757240722269811917424020512394191279383469644156545701445014437771953644348896817145533419852434837430200450789292204029395234880418100202593350813748549861326752712157902323302052741352860682643266577336423106442244975921520673563218428840666046457531702217844579179152555887232815874825018875632037904274669634802105731561466806258583384509693275675613515296033423275810883347163506397457553075671257504632058517353305500581747252346733285713398456365983890571626613759829535492570969402711164616836551647191269511513041483507530954301599128270392745971706948389737639503871349512555043742153925509372930579967979008218374602580993863476981276600422662292068407298093434857476946011170294305363012503488923425329117924916639803113841186581795972423046449271782124128469138323645369581733889428672127153945375000958410733961578863683752233937411547835020409056134355523616958573231465915066831255477063976505942465610857787563298311986201451026990334347186385632089800649022377555019570743014546697307482892151232110340893596135412356935108110650581107112796803389840868665358633971182331644099285548745149221472445784519043695872620575771886347704602793107168223864007132556137451434979391992817272790243733593942645381221649876981250938118241810101890687267660299234128400440973513957615266524081313217423712231529487320401627785396618115010312329211055546727414622051768576644607158618260054670558832940692166049756835408290743153229488147128981697012894052240592120361793143747657661221316857128616289312490333691480936595543722613973183380439941984666001309843093290088054961410072629003885216755566324476827738303713349358335821796804794681985748742143791034879611895099646473338893741832231374620467806156351994064786067934642076000650258477733268471078946356656537386258934794803844991981242569867269730835106059917364872156635206714648806047236488402471957750182016902043692371534033372970145786385263223701162810772647738429071448918925339001191614433038838167955197775109959373785415242591608299064830839733366710758505376759989863355668138220851003675130388260933365193409517691526271060282505346559342441846524491905136214968174987941015540672287429036518612454080409677063486004613278338489741774137033710756526269653154040029623462547978427338845286613929876833896866803257002674267016185758870768285385230937080144401902409562779779460979963787186021834172574121161988274995224152930366571632778477881656112132279275936993179742477006107104460731317832948929156881404205340181688597054233622523779542204722352951854808315916017897127809739551543425266146904833649953103186463557907741786716735564895739904450491025372909093364563530261382857109551152912601190813801048765804524896628100382171573030807709830768463897977479234115118355662364893557579926418472595851929284125582711569825509072779958432397065861098102634201862758052925868486721056827783625688634969288920960138867261420946770672306645418553359053169480512261513157687652711602819441531984573547508645707178315259129695433852836220608912552935548673354129312320256819150524408726024118111948048312340682340092427292042543416122465683352682243930953662906224123939177362351111483890852856075149615943438685928250958480622696089801516828524972688101746787211640557236506618592378978583059328272792737430428225150012852500332704886071404536394095582378767977161810485038832060555422726346987288762114172564835165245156439462104627249129550720825152196408240671460656533834049569887955191961039956272243505195304194099125317777142632378469237392938491361727344493385347914964137000176277950154602069310439986218310444039440303197774414812321776420229032589977764989204533728367306676100685514170513786142403452077090007025289488529140938910314353540299335091431652295250897049607445302972494676409570206358479771042552497694093847642272165852839806243616097096827650028624790457365455005108193697141695658216329147146857337358124813952569527061085802769158105981363883578093626584895952241886952173032289248202356578802659575440348217287408310958899995033199434398106794710497277336799120924331033150017530154399786439430606547911793610452067408094728840154956582194720689642323939750453919140469906277978217508011454589024075267100003713084792852079000129544032408930357188054771020180221589748536428353600962204304957038330241020834300495540564973007806053157199216139207340079903322293154579475794042539348603445336194007429137649205465317662615052396848036846042344107830343937370391778479516582613453475247117970039329538138960352325825836050004194613561154116062147004465296113563357264913472688711927374364350203490298090158276502430400511012973451352181867197039673198961824102664335971261505142155704042667822382614498720870662480265285380943310311578707353750350629994752211254455725842223741465540502410991732624596315768157540592491410412939607927435350904301006600304683331921140132631982381290451178624517646943746940706953120415646076578376244420340325187423316051531308261017361255190559824299545410562883615345737911185427215363209454384508387516937731368398849848237912674311644669438250611834309681147353670207491609873230331544846787151433878558810142047777918197057521597065232262769856370875783139874903818267673695774745817198917914574080791123938388024302783441999276259542066941683938045314391960907497090979131395292068504122324661760585208132818787672900757945316220851086273701498461105603076637905942859943781420261882268211267971841654544485251916106544343267603037321380637114036670936736325294121265008274482984322096961720856865064428026768694681013988250553575548388999868526438557947730301148450380474580339111039108064952360796279905888589750679802848610150623794894346858878653013014196930112776729931048140603566030547606772165890636760969228606747625841050531414231984188979860384430895082566404091930634104960714079874683537577253215305333456083728934439618671044669974724258181487339858030518916893701190841778006513758901282102574644986114409887184039299395496941330608505221759366570145780073422584540747666429778444264928181474806570991148851618052253237174543125188017634845004840956254235925255172702351235732929008672942809711849690321180749354372524225668772613570079336588291360741687832579692035218194256299673569401004922139406029187237455519481289462751089123714416587297665256853154242231152161851544851291327285967367336475001672164802875931918756088379266199512799620217795239689431944100452553718706505524670864011776006154952399806559963501309915014740315451010575824102525258386790066366983441538586886569092517150264403628155935976982620627244588427381384913037451660995217137134979707575695162897109658137203466408308347511293395917445095222488909844268254294078704681941809920869826950292657920240309225392184933522129724990162962049843745368292337048846823227134498835357698536452440114006682300885048343935163450133630776686521091038077444827749766872052600062737468609933406587637771483130521601910358160450269102638027975280523278398614749418068720019722813990093076438395702881818229809397569179877404699427473258947754139048527586286829035262485301873089467699678181774334241451468913438660268343864598652175892720854799231980240266227372948363758361550885779752354817465635627191176665593921861093069063987065947449335550010359962927110579032199066762180929731606606015940345089013323601260389451283182722277906399006777852103774347215800621904793361549302065423511151599235218091769973156878601492668628136741546008566122040132515500709382215294017627805742805210667614739044354281613978445766075715202272937099599625526437260475639584980297851271077807521858203894775749762172505563846114284504183687005242912502779538423174343623956238190032410063340310647631808419487628662501211812621391305300929011503659193642060098690953083844376392227435887982693817774589065538742165917543795065239305500970877047455921296991197502336098010777469695525203985084497128231453221657083685179926872852805380491801554812550234389428808977342877707495582555009076555146096681795074937190490594525956428113103588588366535035886171299895612015115293563491107393066428531951307638141193678533614908640642236511224745971830373780412826447191876458875959951220357706235518321111553331807323888848458188807417975645881719645770772425678923655183102491557298339467471110222185657812208147823226867488887046479950474619659538402563310098688724768691419737899858487032422741004936764187435311581822154951606750429792637219208800054200433650281762406449766333506283576734074583438574039689234806072690208510856414631320483683864407199413089081060195206408191333515813059088479053104317605031971565027347598270665533830096248929398712384329344591405027037937175074454550671758994216052152430871334436870816044562548657848617400411464442161819666879274695023491506332265103627037788793924953346590561699145829035758565446134819797974704666212836966061202854610755228117102445032206345443075315800402573931122779465761831141436445880998006053117474572014391381012607889828918361804486714671625072853403134987512927311831846662107843335801270161080227898560053348752525280667398387141610225781707330870821870456177774920569689292061263599930650963528401518543404754946350004406573365545075188118658496313914038799905005158714942259191831808698300586409229893812066040776412762039797605704435204315785120440777409625248526601858321162833474513134386506254636115597131144263486042523362099475061672200726564906652876554301827212594603185278869044833590264778216075757883741943277785899010683341486742900343234245632072614292778032832694257177216413460159823119764036651092827827161164632885263620998313381030097502521697357244597109533402917884219961853335750608522860378513199050224925705295719251476856272475225783065084208560391818665542080595525505957591556861512157168416386430404088162363188486547201862290509636846846324015597364420711999696944244456520479105496577690326331494310738065683022100497861656673958053709759698839191755845261786976033135440605783423039812928857987753971981466970224032400654410808259343122272267651373262601398486790498368166003898859655476790280854307678402216146508684032545936295916115751772110086409929339057007544141954035050085232459475430815596396621074672143310280736831014593199638036355359137739247024228333624254582186625483025448197103203107870548772499298832864295256224634144201529926861749692396303155734613551397276997516012401850057329964508667286609030018875602142214039269978408107592401087139276949320900128077694293045128043520331362155651375600432676605677730008182168966410192405441759025764870855257916019236104603113676776420202002038074885783311980102372760397106295896811468680438737431029006199231727666560127376592184561689453813068498755270991159482459585009857839301730405700901458114077942676487003027804364844972657026776869139475597480223579926591131233624663421179055291994996379972659192235481645100747001165376144886984396644056807124658284139799623569290094094552403756817884208705137703923840752390181687820743552938202236248159826935818981700092928548498316278534867128531020664052750804180368202222191564166907180754204395009249838407949537355024249414812785291649799442885799769533636457955539326591055202513775255923703061712878510718122196390176582922403284624439293343583051674386620703955426981285466985001887763889070086167006155372724625711585564101426151946361735135874070064399606307883334687594263738096037969659911035516615739424462255254900925116634009862920595330890004665910826945210969525188614832320136274133683389336985269942854216298659989619473067166847515286141861925094480696394025863461572954797757752644456222621409295065732010460307048951943421044249542494681101570785100097572561324482087050839062383079853234385920709330287280341508844587250843909194098430964716223840748059544158966652568516118528078267209842738498086288068806856560773346615925587569332345334344294665254199492029113966785054461727950055700099668489196915018780390473628543681497521270187577072204821475511075049873869927839621866196882820458623664072703959889399584318554105457284730499284621029027567024392135119206776983769964259501927044783949650999304066341558339569492387932188480055700756593514038614636319696331081900320942852417856688740810039364958346894282746922346857410655132403517138195465192578022625411943031377300993040126538406709859630232977095813146493330177258921222573387109397371008028677777147109779425386895762299821552327414523293479105108308464707258433239487635559246033067675307701320760854684404257652528176072539507506728157471671448719196356931116575791482444671044414875209483043310524549534680527149502187687237286251270427050418393710085214034342547120114828508164651854281437865859609022141340326456898150795731825228571291219201509300717299281332765080719441357502863747859983137384830105924942648060127955349273023466923693793677274205820693780171213834638157187827530235134327757074190414852246672888688395728935900288520388838085674775127640429394651311841729677528604386106948560971838991320654270591583604761850546577256715362438189129361554479515383071557485439361023070373915692027509268601749491505128395107300522182049938660340961245184841295568061968474041328617023677077462607636904128768018085495799859032049964453817105522016064542815243028371399447010809996974103474617600462063348482149620396286104807379195684312654790437936544624858807892295058007457103116666413731337876006261950152894260036137558148648313585242921607879823161288954752028709352223437870350101989927075714009786630979553973935038330379149358341711172879622917133166934886041415325535004502089417901634047876634652568899246136945695928492699749285059892931412998297926353546647968852547305207723846692617630320381254639302746518268055170178169693817830230524225811390195432867229448843820504374242094610624805216863835230537005799236593573661229070665490759578371976082340058774542007523159535101630310157663955221798962906243921718507097221132959798415042502892288116490413282878519614261452497440246893313108367242221061894011048466081055350320526389899533458074533903806019582829923413959275882439417469898212179994117005988657800194963308204232041468714345449121857611676843054402174392681538847076332530495620838421489987054471002636758988694639154618820335837025767541494204141589209735213508658273124348328255673656801709089526269638950790437362804204665374766456030570857800094224251538929183320145584578192267262721773480380032238605148841983443150263448886033600215211252511962305034177331147219851351180775224519268158613138459982813681560571271224383174874088731572823532117130933947760893834874610381937559217315404161064652898505959346069164341643792515273115745211360867167461784306857274248706789844753438976284051371808664627838853624757322405473755402795003837299025452125402750207854155946569232026963096098135339235656630566954385872472587651477529193621392170353761907774176376143392178659965739627684416263193884311915328662361075746530511175035176999293998909330726809116756698972385622245985847183586813191699239057586102647081516969968593056597015976543345764196729571665427188019023436515175640424970443483863917117489101287042347117978435564659300148839779453545529131316694384488438098502778766031790119013249992318801598328622309519861135320105819895347972547062251725045283030708245490181714248088556361705167313712572600202673730783087853406402406881613791138061428950414418322942580792266727676399123846426385847733821086739048749027482149849707368695123345095653616687451689793988767667722919418143138834367622829468954534339391865938684525032660194156682130360045234630143541100554248229033274359955548210120230876512918603927309846795168009795209871130098102394078621884392662887160488872949961407655872770213477876239036339134671487220594022150638212626107934837905792239169383153526609457390613725915361395668149313605195272124923025372310506619181570378170552964376359343634042480089979048508526663073678828955416626691884526605301103746293926968076021802438807966745188144578885536863726762389242917187688899098231339804360174001081599310669661686461511717797236748850297379163636413937998718075050694524178534449987823378469704270263849284885994359845407122163785107985925843294161985559252378563539059477822929670706619701993117247622718750774569999701472441157108452517410660330449082414539014831547037041505117352983289906214252435549816689294404493829947991440356673178491244490026183634701744918613896415511791981226787942046939384091196698310231871367724994617953676604144481472271352454852673800990936872302912945755889847662954466383133419134773660735105099291496146788009214847508829122189652529564130059931250979802132457687954940508930429381149320234820388887906169856918269955074259402420274004743706299398631711075343864223420900448321368395726841804285869729881790876878769129643889947303797934566562511371901997540607855022355005519575610581465534857834987165866054739837526654764416301351744605517015640880248732271083703806599450337390224072182695470081856395392950989573231821291048698864932460486101893911365495239638034373062962379674482018405796448194683873058184214951830513046578965056434120507584635131675549866704467710275697890414904471313491928570085863737874535800238214867270792036002090271592282284613438485858320715919374335203223145648768561867622873928333587931292217006213002957844072749540499954738097762497855001673853576971239348109271628981417078408578525581629680285599455306649942440412676542267324786924658948601213606668285853620150594738618770561964419416778756376801494600892761647439938121905928008357228498775214449433552013978745443689730401678542457251180128266901714367503670001607866534606541654503133752900290838991077549481237087555927568649210269050746826353717424271035219190586532389459794596378600624403533111103433760926755013140347503102698690345311713223039761554791453308590959925441754398023430768956096678043676885150239804371971617763067893839327923251438862700032199492840024662341136125123777040385657694408268602428400047413175471851254729351648439468150364695664268607946540290487091386640157481509091617320368963506895630422467115086498391132205746647327956330206908917546875207298535743490691126264132210100375503628706783507896015672384075164167520746230001087036181086558953037263755411223528515816608532820240944009012143046182916932484664401421997056945011880549741470322153866354236460058734612404475135246285525718945758700273136570008096374167437907523809244688696733953844009632611984306971291589964410937705369446396403954569904362251207656457855903105296935052719701387318511952020844705045312064323949101862591951259804676289959709227055595880613686522009102848108860922385784786306815152188702257361029962895611123448711094460753636048269637069878721562620006049277943638805140191289151337045076998689567835151143025104831301090283300201307482135113636765454254062985644892170271024236537660017159899622135034483724149846146532867589523877103731054200071184055930998162109407248477835477869053122159981913575758626512732464394936250201403692767798548293793333883171957156244607614309776956110065640861314539227573906749721110900357410210522715922434729958167617091474282202484696297744617400822662981488388258828982636394655624969786620842543229798997361153693663327264772631623239201639639415325721410640099354460029424817533734306968766385820563703828447280860493517926171688756443108513152470090623124545023808303978358444314848385830828035388005116219981475266838234514194048033735953699300290655531991309125177171778464938411702415391285452089777967880083879401985815462899717432191634843760844244243878971578886068420712864791999516718230334162403153178268617895050765333808073911219546231841231041875720709486066422617283535804939795717765307751486465838597485380212207195343265018349122889597613457101746886911653941278091535334321334123144624354727414009216989987209483689784545261174268176836422064280254381987818991212498774961855274929824068760008359889352164255729695870247400678876045819397323761997045576983444324205759477900382026319422992190182272026744761734928757590473256945321973116281876880655659138408432783965709808948084228125273752901280790808168553407809259418854946578558658662416420256117558377587540671878500656769529022438800937875187136989156488538059864573112437129649155570565970652828433514126986998883858840449093819115430896019632206228615693724964247194281495737359285039529611688018353338191945249353514551958533673414926523057505478519560421877069451908983358146123318199014632936864650282694334223827467752091332860131495555072692093357996001503604604008697735841768121564704894226825565945724788876577068844629771152034078828404003216460748820731055801976914377832069918051515924788121548515454492403488710272838829889250245015827783279889830595385769467977695223026963784923125844490190584122807538178962784171811932261752065515046992546481323912074101522525798676889552182115097832711060831347961599548954589973833235579161779360119397477266236593240716667718441950275739320396791720792470958648550008220743051201061675674936512241493381623242495395358544892071793348859035131233973168133971620547278940134774806509012625360477683996888223944820916128546894858729893996381941583261206268973588473195846782276496184750335120965708802811763975163239109607704845161283853398603944621198822741756648224618812063123480451936769446168833063154733263537349669483645589186323847703577960676439287152731883224466398483957518668986838143502446469074667063114445614284399968705898416070401130895768549715393099842589807358783714501240639523721747421728920149328325086791722280705953743923350137290865412689874231511467483265402763609196865687116973207908086659909348156118381446036983443148497723958425598180981613129892785297072825729013189751927825816878569989349100232990122302551745694548159981596645164796621256146909913394023944558749427875910042294949273314604700225516998106228126800925018979390444070952453639128801588545273734579302199373873719007800385675839405216224311355485669611485561587334748129570850452307885477127628620589621928873916657950648066891902275614910367057173656975775704674308967738963584174707853900423900725843020486769304949163340333542949529733557048204542916837907844413349951187928898216638425047720194272035229095725957680385247233815279393661576535971695551662680255616941594225402236593990783949458901757032813929794711589311992881421003892859103061189315345228719606241425103989184629348469486914969690154086658676614038727237178685614864510432810174007809074003015154281489196077737928743888892114777255884099139908864109686231745331583596270330481289705603994291495096946642541399124984471272300587962374671533100457107202712463035844898872529440984066509739251197819678334758273223930515196979773732086337950246266868550952113193491789607845875833038521418243860591495043970531968648855779320381162522284895752086995962445733237880795798669507258817698580953663657724574021643700168092853348414483213001895538922504403604663018969347272703394089541534181302781390902450389929128239631449293745933152232089414008345892130856512624788482873551419022563438371465986884380250583164062007256768079326445917305314615412816229773629083640925534396001018663751456105777153859109671495792166460726611291443018430790751688095784877577563203263816166923704440815842052206286524277816580752597882754110252226168009199774311289732877453163496605732046097531978677891605915392188904187994368709417822339935655376857154700293698324996535627828223417791528005000465519433301602005215470698524630950874751729744328850142894850790508655179305308844386069234153689712980907700726017798578501365836428712141043810537666230770226572966349795280936617491040108087145580706225890813034925096297078977064990854711469696696046147437428477083178249816575941105444835958215971576958145485767907466827949684005034882897506053179725662182893914417586240642931521546958637666390298909278593643942882102013212402588427655595390931621181933230092648648348574480489663883537951802672491772878491241020988548462839167754626584343375155617347208317328418820949872743419085579815198467510933860261410339424350279777996678552744203643047980023362854920422916102680720468233735026611882937819220768496774693964238515047200173670359986339020110008786587320312309977769240299334969786816955224623471647047157028671531375791024079364402862581368952859267207810786365838279900888312753618925149837907794000112337105537491311987503512253960151209790497038336055763916224280083161880899538329425040102170547537892924318282465202757704743162045666425847091347578802126572042035357163781866686166623378834844103313638994838176502097051133883351798420753669745257872282466949875011753928976706286254957891453099171878161898176959733780552227843629413815463282717513941999701512703520394883137564579290360582913597721086994117689017796312921097253346025297443563462459021654693951758453791081369724168944822300036511448674699069703441639235821708526027893086721188508189695883522418894977708740866233224587309136899991790587616660522277162303233951850118354881185097758831838451465779611005020500067887036923147385790952199031322125160723738179654699167635644034102175970983863292626862601736278467052633045074477544663424378401154613681777923241514257957978105950406397785577825291150374808294395042716778763694608262373742796251803478633614166299257080207805903140382312435087468023305234155376975550739922208547548611773745295674191192817510716015873536017013332365259854722711810394212930276147026743815340932935229666587160920913998696376885082599734547068689685582814091141251404680351010008128216740410111375912858392182124295278361399178470901618032315594890356649233852535136442271928286781464801811096777095553238796863900161935209373284721751017345403315115068451819055221658011264453870855910962913276583039269876852323889507599322255858824644321574279942658983787137459431221902121350193291700845036983726500041338119858987686857019342125933786449489831627633308041610757193523117370947517892784410354072017806748007085427539353881445528269553264491979195762083356135488452521061479951256633257566086420394093893337972089567719053330650387695307706404379001537662593180583558532049797839713229744800436080276634363231839977391943681352653384033115727932988768178069685202156050908572524227627315107966986022274072196792932418222283668071283134637260557916921138649821398543578058767859285108681878034425378000959668692096825474501263509319636431880289795692402013994892245691540620575184840449927722633699106725763536192120437555036858202107989155225419681002346798058874170109237765999517410368323601416021253116283910963555496309504342474215920812161212329856155537885971323889921117716962165331617639709539387385730175746694468807111667219758759131302117869403462023976957313952099415059317872533270134335168105319079660151717591607855867683469458285162636444363460818942768808729845106448370327886803780478705711253606318160003049255049148863674569473510534763056156748383295672496271263541524576582958601027463073037177639416913679784908194515304970435750824650389066457762551277503043539414122840782703973027974206097964525788324961747207761541811405582260157859145557627649818597172806366855200838763119154774664116648114408262848923203554604339335595575191326673741585582713208917806810652004609684078956747202938771670575129733546040744648521492455325663636761990217340415156356189512451915293804754259441055512289347989862258839190608591757671307032610563256690909734311487047781373123892285145280491176118410723517373174956172773742466809667331681475662854848858115391555188310093513840232187098406320058611345845217313844697143979234791182313171899250566178641773619765051207058131993109001718114698686244325027172011038199373867082219224535739064570395160977917687721125890191650624986383475204694641736037420934985393532164672721951889395061302661651896973265578433217907231182823463498434907885949672928282596668784563906132068004095482410725259307427206775311541457915613450938856950952423456550996148775601528577398820388686287121909290955186644449263375545161232210373550305745603089356199421129566959906439474666923015714208038793703012482001895770444133453204298311750316202647915397343042323198372345172010497919616471588958778895508438567677288816458111851340301731572531348883023901792446729093680390418291446364628065558065473132110002892371496578707343544975349518688683792085541456170910259006963222544377714454346024921137224627961034325560756834064571029096813445151684523812504660673589330700138157494841191765839687539482145619967265919273378078862545899153024742340673282646306348878294765675401679803925372882088564930341614704350472736148171618929216274474121163054372450467115399495124804586852395498517521749263006400225696022921585339826922984102173853945363023445354016756136427968315465127698059029435141308048152613132585851770294264981607179356390642901625291657622711811891530440773441033585153689301167434418363199056634215972284888662831162329986333839869151808874564349979018626449930238621036137606374058374507872640711865479193935807939772117648517816696949881904097424145432630395043272396861626019925089344797462538607847579054948950783910538664334388921709618936339937909909937508783730800058796684041572468975263234427173343456904430723372794060609217930949065780381968222015213238416934162547285205921719692758301144472166172772172751631436068279399173675527437564469104286837347143123437866087010358262269255125823324867972708820434834726231631464030667056578800531299749386223930013862951081859110408958233361643307460582615104994153260399249355145155829552036012386038304101560072308453796872447402799261905327865527589252821370067995474281669562891752883040035090755902758732949052204817000287692197082150936179328921988328931135390522135221663274937400665740873162647417240513303889161292974187019881652221512287123966999286936841375988248510668487725234259548920580137839482711261198903829289793749790780100681096153142274690651539899937416405701473730968004738569160793219657394360619475497483763685399252546006174222963566269235804855980845947856030962705636512369710347496072006039083710799126865015247135942979616831807158867558721863152437988162283248809573983485917462172417189759288106841751200905317405026877421637516323198179028240567276632753380658060745534420510124033148248083434994438242227945686139285454299629357230304352446792430312045478277761709386545870828387431554211577903829589082187111680705878059636227482984199925041613470945441020139271243019766213226922395468054922619854149427936822758863411127501892542501020066671678194548148847314211571989751586018386157717961795334561241986363366722261499732658521156625300721635266558470107931166387765737863437054395791829196754633424741906933645284342944785718959772909466810999580497059268620975634831582008679920542489626720218452310863442437532450791575821673588444781891628807599551383081978940658113587080782118024934757588777082230424611509038419947158776182731459931327125372122491403738012959014528307753354818277761286946614331094335705008220119568727056266574887301644301425011637410416646462642035514180660875324066911740059487902826382622911595606846415974870045536251767385866921981186461043677313041061187947553463248839131918596796926568719755549221034902862360931092387144891319202136477694629276470904880744262491385861748885689434735562251075090301947905217522046548625154249719655585840042994010940834925921634090349044818133851767603622458219507913511505431002203790506429294398958753787939709802763017456300726046669869230628798483564541062297428640206912978220489511161798143697788830088218858170037177212311126779841977477181649056765777432822039068680590817210000378850490497497051337954055593495858205969410536513607434052086644173977379917347085966330659153149064547630525223335380822469109700365870664657624776215624834664107043762655967309850895377732923106394766156039239451454284121662276533781765916077423674014005104355431200461156581466202156108183399628662073250931768124502469899866855917088387278418397934695766710822832861475025377746690991388353774308828480908646276909433962708623631658962002412074686916909960106754099258749621301583235805568064708243529444067540594899107963853226663827048580936340470631352239921398810764453956556993337958248689709302204074026460042244541290377775848155724774866446884974706547989853015067929352269569240977213174012807964095854317206703096514719444086444832554389013053042305596669525857797298007999171948177323805743393163844955396208170896802572747497680959788662173648534540817390813110391658524817582923553939421240639339235622859482402412433270897821204364128627997807714488655506291491305968245961822485999323759537578321219712834983888300333573078191606476440789773535869136788465284283328435307701246521588586621411047331755466453790021942487783075008160675712610561964213371589858378020892401465383199680243288894384012693004986264648548632540541073875253671270868018874730649806060985291570302935977817709000455235201081159023611420087265117181789030811164809254871752365272993500473424828120071861774264730280585803090146905502256628976815253663921117750611976169617023142638511555638029372625435164825178647882294683878670694432198190248739150653801724632340643203232067696806825305793585718571511648711872537766079177174016520494176599326465000819798209725959010579038449632320231001450072813469889422573162836635425392313351586887501321009276553009650580575071465327314781914755370971279964848601998213508942873045791847652767104113495223745028966531644189852627471486613697396691990769908695857958825398268433859992056353388196878961296111365825644199143865300110987263311053081374673219936706590031138889639520020677463595468101507117751164897758231755204505041710508899457192967858540349236716016180230814568007825463871434230242214429344733336271624859277057233679208994677433181476044635366069289129863008550261672495325661320188407371922094666379657269688561867222270037819511686427314668048609115844131020394552820928123458023390058097269523566341329497582060387556299375555387857886031422571528587382757952939213851790186681813110314583739420193429368625297210147852625224854709205589818844827690245287035997751021965293016956580237038176064535440159683695537222152478266366096712163823703416818368659352478625534576780582138080456975429080861074979711616137061634017223694809073748216390229649902640765922853510190189136419354021447648219085940684620590231061896533465182596674146954132358298998780306253211013943210397328673195248985567208147331229617578436945431862514596315191307799391171010365824809604612308807229470628684139034530544194654452147453735916878720725254855051927448145275227406974378024695490932237414180835250443059906137198297528642220514697803210307162044305193322361743881850833165084846438411926095389527637395243390460821582371015459796517246563034739118682896257762105628809683927579123540748948505148856267078434672033873561727140202027722969606086509319328419713364425378016498345049911581376619556867273688377258885710916179880159940505528677020859444687521051499908820738098113277706649472268968754893173084762561998169113492944719420458733134504347992943462838611325933925487711026909367014496069170029638870628831114122153295397532467290999163400933938808425817918512691956879603440789252164496547627959930955809057477676364189968892863325880575911172119172910369512319528285545173159664654426366736434906346445291821977014515344679206945740945225224146858603378750172021823708412894023278155412336524618980243122818517976737533105495571024582628281001403947037270526727123852716779677195635176805015395824059359023189783652219536499825516767710153430102799921527026950195891171091609896786432531491120234399244695634611691713701489527783048445727151143147472704629078611344570162253236008978399083717450632224210493353658987112480235436872623680845542101435690561071684442400374153123530389167534164288694313207740100209688616988506265224887596369654632395895928795580513638267256312195863429888267426132522665952810615136895903204045824540709323681057861121327765130498787056432118353964501591525114267270757109999260747309158385500500110615525238864553109355431124899750376735451373221568874815744117965474760791563246867133862570329890961474046747362432316796633119108633845338707876837121639765836252393527869913229020557740492780788989165277655360129627873318398697466594717553659889546236111647404316297539366606872841332248024021370965469090502440576846539577625355795428063929317581368398345265121793020209831352300922638219302428194850445593634977598089077238838080133656524962656337889177183292587307862022599296770956747718194873272406650616926232400118622872122185479272538257585720916059923337410134393151432501002193417948700126683523737257464463487469642420733332093016667927475767515008075306024900383653076865550533908601895613854929509254649564626237988168889662307307333065091167071190762517954222452750419174481550737137743416464602698657296392495082011900375076509934472961505013140649620415417129470847071019692345739327059381070552290372101460527823139233837707894680706006537255270461617741755589231593984761021485134835534331126891707747485162820533941517982815939827974198419686036743459020860134959064017802407819409094443475579845297161876955427939020991284023468481480970233520866943571973912296415100147647091392129796685803790575921383896492864127257665461825696241591489813327634532432417553264519165876521075652734039716112446320608773484711566211522563014376553091699557313445006382751658358925695233176662140974351847796801907696519468934235426781457047316403391348153946713552167768591463464479252145187947062270626939927536050333612330214318693023285234935974933575919449102113893161024966871972278187814129771170866339457934348491936548865548042040338719816940907259380944127808775826001295737238338169233847118384494316161804057625168788231679291646201447774591635703970115901356198105816794556740115416885386122934856033971361725190775735175775156968652060327759589943082064212485451218676808639468293237824663571311554800859703019278533521179155158384039453382974057460777570864760316841771731796834234732356358072957590207881669760117453044103484734162570922821093377408271162206150853382571762885096812643881303521753080146431868125196813335727412724814331513413944069028788348108983738814795073300789206151848536952224852214152622905982472724174698666370602297373242115795545357432773960763734317484618577787439869650418480486065931199445390688366542397508845882805736002345488264719237583158341688490942378653908787947244466062962864850179586246164405394429725131764709924237191376609909606172763367948217907332354874042937267845182046393281570311522922787488504322789669071064042605058851802140393077731376558759202438505989486798769351711100877464950820297519422549579261229972493954440943870401029895913715100139711340808670831205304789968993584488512044711050332599739039644371750712361688284548975243932602254886452201550014230286887623336870102194680293994186950019927484202646917093358815445356806546625892500252986088897786687885351851542254306152996001478297587204441748572823484225518005165263417771042066281168799503646312491874456617023579218395117384088964100225656105736696989355160277173718667422551245888673746188276689589738634771000804616535765686593867454801638026082278247103357546372599718375713599011438428391893120736690181732786179051880619140889226142905793232184522894717111961706577084446828321629286881243016698125456160553761157635976458696255845096283001181434758916787154538728568910011128249606713809479311489198007027714654876130162862665739815765063044342270039065615999585206344180436964463580360332098125962481113621925469331373742972958379053382116086721000688001582543438941615650889470912158983342862030326660096660306583220837015133640721454088976443730502694943484366836028091354906274598584425419019081391951754388124392820614164706010833228022885853423422429651477689089612445402216049842520136919717737911290210601612819860974705452890671233329081263688902932894338261546482962120446363090053153196812743029139704907467001090587120959834277424767908781972273095537194608988984992812253759147534736225171172847977694495805779793890654223077253724580794543427865456802974972854222230364929092531951590060730927752809519734004095094600982917436466598267953733977486729208036643185628901995207830151402838644190667253307331962442957626096868280516256903791113775925944465387825112700612259312224667997415433875569201190757454468119887894191997089641668045027379225144225456846549210153895995188468051444628575012623437898775723978814575866687703024919943036742494947242162031558772866079923393491609115606286161869609111491379324911152318790218637803472801590948661956299146048329896221355349127570360107784677070422305373605694706965121963032570198511063550839899787988186342693779408036919972038750100711979061182173336642377022292673677399486145833694753612952314372512040601808329322827246309422331483511176417947183886413878909251757318354458463557376216902320243176565519713983308440603836842693976834855714761291552773929212176269277977138023008521783942940441748206594471617869833809909879640409551979719376401177665345889952469565398857552507275394315906067388627950868678628662719956708666124503194313484415106220897651493162746826483696750985482624184251931191818844470356611333645491301466672529746229340112288635555005182095915269740550687937254539978913325713156861794872072923358508447379148305812190276189247386588522510304186693152273852953291827074838577500015711056171741841692146898203805649780554591689630386707366578203362894878266584039953240854253650420411466293154297768377288012853856878359845843046612757196045880536223815290399529568710913842105075745464919788285147244689996279451224857734341155349521503084918259754182129678675935635177319928630711845145729936653852352641624174611264018745763815787698631177001545770172407198441192486993587093089648452336591907031171780678844600846296113318448628920935891290141343035751792449436485396232717119383662578762224690677212650841421220168476355994677617689853959768591476740556148318413083120668560016692731273752636073832209038819835802010023145783089919979209208505069289083650661054972096396672035906336423897333348342669082343777844782689679269150584324617031247373370170173978318271446533231523441193164719522726925828791022324061964883867005545563409248278879091056181990129341046740565439993826486766858650042994850340868923539346721361706150486949432968911951811473069136213985120688501747756169996907091796116601119244456664632796489757898815815969591647090090610417780316071660784981897524618173372764946637362379413658819426584875892235507307198340320777520447163945402116548726406562407801451251209949121590235884732257645026413387357077574395651816983751140609866132331140302269156230071176407779384388172572057417124406164148039554963592007265653557426202138930250586301208336201238966798294033422866129537944503670805122179326094463312662823805104713381751790803880342923807805504140657855498983983549340901548510876032641581486646681513161740334177969660498911162246272229500142279225375652552416959359798937536166320434065473439609692994095227439218486554625191297746796461200394311394919433215277501702852053411384624583744526040993014267975864360999582654068194257273972939554737422420787379046313409737821762576948867027832090109349287530601521821742003761503064941462858963808603628425823543673564425009307394113044137099826331109438564899343196381744806358574788796179925790582791378125836727577058125461933223805144508597756088423261173789062359998857490229562919053738457562272944595622564557415008627393912294475013683503759971919451610810754037169583216049304362196238388167350760415560030789760849841762270822011117213491988119944413963385743385461473854079873457152603953693019451772484684066339345556369614888696726340802582359229813762886582247882224243889952929327926683553440530721211242511767182720193488813568449951950701259011321685422087950081833651901152747562778348606153236535404745416313673829688552999912713667166349579626739712873015673051821185168323238359711870100464713731975164527791657894305212641669972805609480058413584453719863419072009670419111289807925515391427045474869991463043605335878070426543136089265239958673332946453916880837528040509547805944782296565676883911505540918529722008920458571669301361836236074196062904602403546000992119876428231506786636076783785537150885507900907193503666847857637373366669529030272308694614058586455691804366360518862921524713948029210111094575661736651075467732723528073168329301085308513104533592062371789389218357786674352152749795518925082181790502725439338643223859679544283253759822064111812698397140708319288852307894732947046894513610110972842229924768700201152523341411425154300727651784720128013903168908473936141296145674896532809123428865089335119601578766026204203722221788519738062247169840493422435632230275200009014513792745209364790277737923889855326470808038411167617152882405434905116531325921958562669648514238601733230890938418722300589940905589747652021831323989381273077700014662613627301082962956114239592315195294987500831488894700983946789786271498318417145312494951229738774089498173764388124649624696831962909275912365546980163139735397203496600982800984386474143010355686879500276572280841913253136317663257097721294673742695044714781965256181761487720577171661967071655013597864643288888030225665411456419532525079221879132239304596170070924675155471985239358131087700208378244265723950858256092045717371522883156340232472604540223262189810662290736407897297994785945440761334007732841183557415114187241433910346131456945883110189522341576136123196884683392582533970520476494589125723681096999502201819976512478945798551470106926897069627020161508267383395247934099170082278499020181083410171611901872409528737584656816959049105158641024257756227562828597812355119238505645732310368375894712007087398638777821370276685210187499807872699831226680966269676581722202000762414048909892916179935946348657189365379874318582373680298660895471725382475108167757562614917864230192917107523622664529076479677560973090660225656454794200323406043895187048040852998179497722921184820062838857176469622594168353048300842545325108325251644588536237840339441099234262056681203095496572653063797183478285371844917374263301722402537842124800941431962948861665431269099359874897208867382170887402552039448034670550623047934163077568175344792342259200564597353035678388746643061283665261465142826550474511934962883001032947061884624771627024486522964565330571107167070377042295786899823481621488064419060278612332907233036223408870601193274936114099302911786824650043124421848598184984143038588153307807972392571275770703164231294214539012439465993729934211069617626539270270444081084044426537467309123280959648252504015975301894196847155048895234798566540322568016928179729462297472802459821034223897084131218356314682136132356971249482425910388975293896681401490034314017055584777284424339855198456772767134060927724434065146521194174607799525539273989921248176384666985998445488056605473536705935066812765071037277301797497915812985737261657236221146940128893330209207304525579043546295960945585769514847999216116225353332291845583240929725645901125047616909935992138426491712285177369522083394657600186714840465982008660321133044399624325734851628358583348925746927257797547691129355034046915606080440841174773643440639880107543048272673348555997511209134714440811664356222486413159906478563090106303506118500811940122692000852619472178337681100892367713443642093659253194986473012144533548190328439816685290722420479835053125530641420026799466382641939953121709691244530745321683035503775605529161390264791783034282954729727537952675686094700174963334943929512993245034438244935039440111636668631230987634892367866927638161555399648563473666722299006253631429705868535633003307842454324320887252415747181085255932044034973475836590111664534646986653661774384588104253294933561553944198514396795350591254870954091981900760533650062154737295062215388018122707226590720511065016948014616029449989593910964256039111965938706740961356858418198277939148017771855343860595835033255448830311734533422472923429931289445806084646291814453676844706832676584646653055154126464805665723410702977632399547698126269886780470650930229228960731658099274320459947998199299354078028651275624071362567514419330270858088395616977533370712834348985800946315071482074203500131828810881860620238335182026578102010757305519553071515634489925851625285206723194997591357090925988792880452467327243494689777181424405460539684730632362353416220098681722768127010329548661877435112711327896428113677045310961088176200448049147953094314636362377242965520623360621388488238274034145333430151013567446607545481999977266704256487622981581005351713519514890094819485691178715644126122263705948013062343216284463337606831932998406465138584410629052198280405768958420423948565927464785844835473312797886946144536258004078136349308419438451190032790619353645709031785955007478470185025333370879867664286395394054260089955631307689310527724430445516628559607984145435933423791758758836016528688062053440114865388170023959233997519055040970358008011816168358798641793348046638257072584156087664212393036046835609217577262580732120393714061010249493126160494914041317164453978751563297646308580017657600653889964914655030698863459624117888327400399957085258559126877293073867613995521739670647017002337983173873905380494496476286861388337187068254639976131572266628791689647945879886410508723350166606190126233627328210525826959766364127420409857317578818011968487277687840836437386893675020997812588208654102986725699931317181125609964983636484634965968705184297937419667933179833419906362930655052405756811162421273831559582263498936703938478643778336679240483149416464224505755349083887942910929540480848314382471057592228634981668261040254464794788547433979716694900162792435752731112545055381943216697615332864077817523440158650075608862057854932394653099227451993028392327821366157685506938451197824447187544736836648128128009867508350495438860220084819801261888106547157598659236974596172301634378849371626925394395831197572255382656261939108641777012789329788627779392224705945072906170779485529391053538794376971901221977964785821247990104698007497301218254763980559045461797284938130413925270794010121539796550885569593379856815539518066937380899179285462984611379912011745684027119652644266868647352574882882452744854687152068613253319962504737769359775965448730784281545696039451239935969549662014765563915104423643020557958913837793692053540776300419691574782870993358916521558543228118056174421846742812566507294338165473345168207272302132954987002245063116606211677591658998187581688852950353668142233472977257724155706956974943522729969029463083224208139345253582008867341846245331878467278355383967826044904345905490337662723195779144268954611815682911934577431635098108275789558077095934194934692578412463392557780858524102899535609138080016502551313084072755453489278579247799291414603909098087681654856469400256356978634669009542766462591611686049161584817073117792735874894834850922066188172354741357387899949377728885201262263044293003083055133766447981552851460436217438805482911400595077352592676817230664898785474392100408969891774651812978648025985987323897164358721624791872984969544900945653462897681265569073042442888709926904203968548244349869677201432248629316114817260827292763671663083615807847043594999352118018858347560855460485471779188447057497707735534305705857370343174485253369423716840276953120583933313348621937442701615953305488957980286356653673384380498093145628371127308402710181031213866812276570630626676706328994305163171923297620612039717088593633528342946509690338127757322610598359015373069833907601044775086613315797625734923574523112671419332400918492101384736187102932736396131023579548232940588041642552625157412024803209535597976593083180081879954952579435583231358996551925821975817345470743133046021309830291997705703085011604696304599367220974022974187538123851298662441945748168433157897212949779247222307715264518688833551283102340405192921490371009071399601896486127416304094602164396373501741927108329300617657598778268924132319981569260305070713826612053015057722361253335246802842646507924495545545253448814092825976484724632761239632486991309329718384254999990278489462340230007812079609835225929598103527889996977891650326589566929296005128547851944696750171205020874103870438859112270460791583082342328659525208955189920266291974612738892073252459344939489405311924447128886635331739451556898882179090337655507174696850967306593490633662604712598490481158849036221946251334985344607457521411839550126350503555321289930556076555401875731068170638554961257711264961215809002076420835610407512528169610452790451601202791446464728635905447006513063479764342862022151384704740976551492806958647489189797047694078451675537691177923577026971517517568168702388229712231976579047442129334534788956557080048915407906207708966024640883662039710951557160549864555147641052196091566790883829184168794251019932269920296562336516768036615270871361374355765438966908380287697485092363985516695991297170469259562703373283907045366099543737781917534625033922933674919469618948146484887749217448588122412401906419314150116995594198566052383857424573939753407568575461586745632926307997990950306255959822315763355978056307020102070880116724266994041368008478720964656465776870588198589356972117582113651273045555671270427243132966740215083175607857962764054740427510879225689299095469286181277949338885198190458659154414731193027414967676178123529454786205537256063800185144852284321483713551513367204031086743027841978211281284872733186120951226163176739448459828914717800415823776175197052723787709917384419345498686269021382368768158335445658899613745715305395301375234366433862920815139839299173014788335831346139995150606633746840454037050232167660676208768597160148885483506106432059515479068934316315240440269630354305959667069828841916873348808762983917956038268982233856386470316487018141786439248337929179583970911757361557354450097662156727558639445835479505335009831088127843487893616339224101273779619022956974958876538699403733859073902754124369462345277767986493835821690490627163269257043383130297174977247263624915576946464060429133486234504046339529970450768373716372573040010512500896092292216781035681456074775659457905838103427243662238399945145359509383227317733863852628119054718706487619526304413129654287329926700154537994615090778257040883830241496474610282173009417870731149026756032632406435365811891983649384777124666374433355578437972821073539813264165300507835212299491755199700455869546463901422560379592650043009204563858581406963539346263790222460271062487130837215905468571164291715265642902381993907505205017740218391666582769541612216798057833338214079763046447502555530152400148772566843023929712184101249067925173454186277835863163688366289415071751217806594676957051229884538471124440231415854914570804847917097338982772146580001836938202521701561088281716422812741066953034056430268802780816593972845299523652207827621190093834901547506409997595071754281619716626492897097385823844034233369577330646279182311082995649769694564815562191785163674650264506857955504323131104095177482534881870254732126592376549057287617361864647216146776838983964780012845599093484254875219812115743760931660096056768579856236207645538862500630952363277651257421341277391488429515273406419246941012601438643780348740180261719042200169897269155554542662114211730126957655341397888981136990690710259172837772195557420313499698257593700849159489768264215676214644179899485463881138422834100650273412301474262239056465158519222871788676181211866470674111318898770950273330962526871381651182625831041238241227740187176666975193067765132041274406752736916745875464892888246651388645391938376848129599196815116307378671269138488398811082218151870727838454430107092352356884072917395573018466074959946168522296272313016768120341445085607347883648036343851499291858287642701265383198845245923033828184834348617275564811324568722965676962621834705206899046007027161304910069821171251583296848492925056304296206216590261539950562577856633159259955903029842909757348571600424438300198500590788680998125846216543028911169296724193170822397988468084995535466504509688956706069176630484565975679302500066417245706160610451715791512868593938063440329115738091838669283603793449251410125269707405497032760996797801392592275090061295285029191158812310282456362544065624469295751112113819345657530396855842233314925391815116242622961680813052528825705498468702772995285332854242560003257685821455134376185042306401495324578633394745872326867006633429731720954485172620374623939942268967252259293353017266359749294758113447559106874557053843160188231006587814844241896640196765391311189777386175624539126988850088800273217996282606148441558770955812655217922872578310977828890067940099462537290727381931040507039487182184391204589308014344128916426085542176016884290654818109888753401445416864958935551781791154761236601386972882452324904920680391429242316622002551413340603988135828560919465439466071754589670929110351540182545250930684453799128635406051665182222254026603303719080029950413947851151066580965477796074088739232444020694761301256085719788461085761354213577630725535575266656061259137256540474430032733065082319439735352157389591864403151235764181888522985006145441202854405756833083538600768315190437371343026117160197437190685952897687430197784659678989917087257740431051999626866561160476606426875740916827826387305417031709380027683057669706986673599784510291262447302344020262851114090429722128190908172977972604145223488340562694707556558098450089503860074641916034721011789018414360225916540945184181736825834227574788134907218467548015932879543659248212081149619056815995511583960378539270082881545576756535974470956692668968349586651652114531751663925228249852951087617630649922252649631051366021566631761512351283604324748828845996069168571251512524820057643863366263977388334253666274766945970947463658022108719343626884447235365379750779280619853133470823398348897420595564028738694406351412121203004761851179670068089221710711232491302626126745342811425304891028529986004908721928539783594831638608297088868073026400082303941953139926795956443990904159650103740390634991530092179919645045443019976062349489479391915082801043822614687246758452982440302096877480980096852759437274965028548962278301693714345224919651648770759246224290133892634859777092276515088261768710493497445722083551467214837102274664872104273490493260914468381205443253322857856030921028972109274456992662864743304984146782862451075224729767194779241972221890610282814948118396966085820889154326046693101050483197971355939856505343261213684267245967197647534122377212917084074757548160715647926618886835911718283470605568490862205052169004980555568072738061293725106194673803316529432871177499364148468413734837267694633341327411770808257954656345815164303573852755845428748880026318368860937486869976649381546060081923787130687071581157519525980011347827739718542778678695041773639196479779114317695284893471754643443111879087844737132136505987294353301105802178230556099644426872418332278862321053969735138892636935864789649122922131552097199843774112160035694099450951315732917846060563658692678626052364683468978885118777838401298312457365556112317863282270409030344141764081690935758311956786885564092777626997368551594845443528719887380119001173105714844272958011653658896859486089820278534050339498419947147067342049264536499934880328721641382609966928518549452179459817501703909149268665643976723742919561890358105822320724693312076519374368430205054115255949247164584808305044076631226689945175551127583930271947577662626875057941421672210483491947174146530635549417204807438320609744544856793626526491048191428042192397556087608903078172391294941733631679326257386626410145098605255754531241574199694348095582662042775595911334318367355114591996331078832787448985962480979770244202281088617511924437787203670753177718081747297346701635125979549690782093779696229980265589475855991507483398530091872219876316441370625851984354258509445093193646090837867124583689688737105174958343966625514704243168645558418550398354641806864608849850420342892379159153998691711729744641177853529344678844537428423618184691727362864994297568015111245706708537386658357220666598429902280452095519126673921717988280135292866475387841112363305320532157579684855848045698457870101982665913995327016411237857813154623658615633212606836486588665894538861869020295930066729391892929029877771240376673194345043567946673889764986164995308034682289633042096298914069069199660508305612325792256892945133828097053202873855742068724828817165875025199733470115497331564188340961359468532231900242709353536357971342619373808063601926169981416439196492511852467486001123176227812223657809042227860206737023849063304589423237159687193988505460765949743644608539789935899320662192239468811758306060548408622879322190923695937441293745980013142831296541786912142616118510104465862958154349380213771239587803213910397548269195668512656510645759917196654359218453362926104774240199307637265591888601092498818134276011550211816542421093560102489024621207865559408863537218423845636671320573712190593913540129311832067946805804343590310036954923737588667051468250678122819862402937917200003213647364544010126408730334689571860552360461232950471299444810094180973741498619320868962905376150988438729184368247742146901583675220977319630858017020495704483418336661359356677171825217907512072394821589931421009715256538986019626548526084505490440701477862185032982196555431750761847388271595918492206138247869959110483472639618675858836540489398413337552765440393785155498997166705857721038831400170319612535252963795685844281593694151724515661942720283139236851059547692532154830874691143471438983322234702600602571454424085430516691857229710109631182777886174597009341837991847672044777395425270717713448292843343753335629265046259822924867570748025694156862887382747102480767361823323495198430958939187056135996410309664071743001605767387976380600517369092599747821854208996920281355430468131774735127166658194873291895748043384926975822689325881197123278165418122165363682766396345325107910966538424322541978751391653143000203400728428524034124559192738768313315084058460615872266321015926725517599076106138204521697651748734973614736150606230972770182531556605706520393536558704748499100724165693488065631989315281534344129643359910590029366981590999717968257479561962075536438845223660254007610162251453636014141387385885532182897589633198766048308261041270571074828914454330848635413611499332526117248406942854527455899151296257358705910072788871849728575415930615190706067770582294229541161373506817328656510980477168069563982473299450193263415075468224145296585395280487757891662519522826438248601325723383052024257772001387109922887989624283631809150838545337084070705943781402198117888668709155571650545441030589059355624785753036425788545618791959379834327196379074962651072723803831878964037675326125554911445594852687871263805905142234496155216477537507359178654562624465486230394002010715145896222843880183039253680138563800319158029978887450108417459597800082691083295653724666160516406876588605671928690407419003509301371866538841830705536037193520261258899650817225778912517393963067134472460764978322937518876528213135499232930418404437733186722995460529922986242495155825889504712837060574189014274858191159887212011358612336453136380131024955943351169768016556038026085848668088061089860871120121001170219116178294917616642322277118446482981966542429224919173050574382596745811525263110293614231172903386647637853454356752799132454377110596023578465520665390016546654691096990287262042253138888079381374552648156099488867190053751890917181391561186160589796608774951532627651030174094191692519287249534968109082079290450053881262569843649462591878134496002466661447193965137017387844653403548291420669222167996611249582324126109785945541469939901153056830007933009311883984605338509788594452504970912161932233810089425871225706881716663867122378058295262646161773150125186233746133917858566847989628570669017105983869552297946772062305675144030099787252921689855505488634208804577017988677808417138997250722881867988901579493475739287005337657046529190496071474111880290527686183963840765257230584239879766722976288587054957523512835207092957545018013800934200029615220178022213003296049415514538175961115642706297462073048380585248406410343123963254043599302270114893896167414527392400330252179315053458172604846712080923477144349787865050994568797103672720435873098677399273614905160730233508952997267725185880212214594140678214328622704856077974969260460270822482021850227261323679013871016303816708015870038016985730750518308598340330130975813765375939433060586719510962120915144368651521221645952345113970635179084753497660873472697022708801666116458783312563228797954194097772050362241557481653834219737137310386774950448715534453440538611264535419158744023794542941322686361548161447080639256401096193530562311778907543758637073498597280347964187948163784819075118742539960660709021620332603658989737252990801240525012031312979240770670963621219248230533682440574745537879599751251316436706140759540388112839291968630164280082523096762730278705435901917463080023779418187666565100589129624978068182619047134279357051644683366080792360477142705080029184703748284266555050367228910147145684677958981497521094685586403690584597391440426622305859965143473568704084789621327366358656259767485959213378821341103323872892190563600519855433042367037766648534642326924312316199210324479334328269673830802733230909410145001947235852077711680746050436362537638945692015959661576456464392476247120435110056588648514636931641413728086368274523471028388284441912902320972709722395222939776866799703961527147732607320261400244222421280054529004338441850219335159199138601254985470234734006972511679694749886551420601079867306112898320968452296125390545954238903257666931916915598398302020986342824864633770518206882328201292662319021571624145643621512902057720216535497053792787240180914938793780366585916313676725993316471919289696475117747318556364998003793960965648910138859969707782007956726799902541917268412209688831622385136399611650524546447827597525446460887314951239100190761916169699016678511140299799151161978024538518133336135313345490572292250135008439058034153807365233045032352663332617282256718550865433732688610379338947655817566058409777137850458726944722169817590988183504968158560103818243010351210423116564836757452837378211458910766074284587415735504448582765219151058911973527509648782146606649647867883015009786995013970485455498727490185728072157207571536879340318166708756600558981784760635374529850750235749353944217071446179603669677858419377020511225816041215689732916208653950004505160613431663139109745901078956180993398732209049781629474534366708583181278069684821638379587902526857459033190018572475465623152098673973583582403839704119577316441576214166158091634915929949917156597649748783269975086197069765729282682084403106205261212064939044303649657926193920441341643808517029300321160271224234929845452075084244589471862626880657671796947304610672165363482013798964395531544618153650365182777716031984814189276088868848544962338792161447959671595427493320587266886093853037964278456280500306271269417274442523226144519886877445831716492594799837048757317545896538596055306386130942255742337788559755452572901490314037449616362321574696273093958098275504924344178855824738788463990159871628598938538692931623486453690937128923924006493724640841123771874526155280303818892168987655457110441333715046924181581233960127516233916375226620831839783000897123283405837289035453827021918388081008911153407741751151586654217276826915355233727902485407371327830964090975977665270523699903857038151494731824301544963431828063089685846071994816480236815830988233813041103940591356816013285012021952613182244924230384467619512262125126368992180869556480384309667515839340117844197108553691887182479540425455773926308490798540169208887095759527234746698731918603354369792462313112519714330383553642047008015248962491490832243679245154828421563681473267364040150905695065821325108664552008971568606846711187391601215607202087642218979304955484688943267725656583076796356692522789247314161216257492011625642660104627663787622689950194545802157950325708161147736813363555855274012124993328368273205150211254429064631901256499174831603888512490574199208783054435328525413220275068860090932378667319447080968059109010960613966309421739094240057480356540045223118894342109517810185976957253999916492609865261201598646866636636585446341128100586538154397551281058929632731032022572632877750160341223710934223119993585094541730313318148739922376867625857869678812376049443678272629014586931805856541495396170801677250182677031253984346988759857224109421540442933822268108300831519827591738479294137398267538614955335990306079768611750428049447279420963404862959609618386667441148126649236595781946871782923360644531031126974326601785615425949836671473303231616317130240807066760432639114317057108736493178203158862965835903428821321009569403550599023987877707293839491485608509041067210968033433296169966486016627810370525860532250656326614183614290512652102009929088851782793972683820550863414850852818433661185760874010452684592549383098651777185976057571291003145129406600490295335535670549790903083302316150516300537102439269692550595716836328703282736436213348382321034723392577467529368533442089418231116716043750695422285408478128538895471512024334157659051612950868501481049498107624900892709583265937676502944173951884705757624587117065831545497021897033631016233657621658078366083157311359405207910811236533270276542446831463087576792749845428773302859952808113730084097913786097640351382137202222116365886896748277343482043923967771645424353984245800399242401701325687539441188303445051448382708170323993359598891678193040994019495534090809597058671909347757344687007989526568236844823349235482581206495748106108304115283769466771260135651866099146470404364274845158543825027531484597578142787248738423862799413569951417393441635837248601634216347374341738362485905907932446699194477820720606347269699660917971828797778807429392242164281409892561498537696130311040218458325251004694381387475426410018982738162083572764657457308219856747112625319554544160990440580128833054764094145334592620919742991871771846374054710908545683268422791549342595359099514534970921350571968387155712592931502332676336128068837046440080403848784978002884211625578213761664681560283038812746291552294437643226654772431244102745243584862659796159817062457548418638457342631516436896904489274235981338150160889363242155731343041914054046839966356659170419555474911419388362770476054387255914087024677150898524086340214900630025999111850403798230289276013008898769444875781347609579027725538572927910008489064802819354078657322533812686583391223610384493752209699851955526657208771673173160457056676445437888183077135403735990803549474901902560758941001501497801926712887476261980757934814640790260709419577521422251331161837470260790381854177851416274392653404519841305970733779864554100750699754714878373989450225932216494121696217321846062241881453542985172011156849863213342442711730749854685862631145291510674310056772932693832358260879887349207968451208772826219568068998536563958481729808121356311118924843060471194151321762285106428199069333370343068219394043338850615586166308941098673753026591940714485870372352331636412151275555302151803462194490072453435757327632960223830584181460645564719195883075600290248770369877885712568146440662744740798769891058024153858602094559157156293069449897806980097091664119640911879026080024474972781608198390236506568395390915532643967890273233040235230403360173922477980938140695334148655636283506454470117762286191328318346648277908800650057483942291953812530133640002815140128530702148172939142203141433376825896366601852153241489932604862500259085628849706781518434895108678878755799396705898138963102573257031644524207040227521214619740568020290091539605833242946379527444570338077787364348167071883516914448205506792820928547610896313543916123951933847227943693702834545664805011630087208504477478455028434589088266473623612465318023561910696719008478870473340282601851566475873977500225875289716037531898418072144640307118235060010541826800002946121629681612040363006378437919111917998153201984602912314803900010197060706949644730454052352236167725649004036036841233078336290864271061934192247697189644349428207228811400896374517300852636678081308115121251699247844900325743539739957703733912145812757947461108533208335183269893320236396802839837925630434071837678254154165965217614343759964238449940611232562994469034462469708027836890045780641526151578541231681732986474979110562115730357275209017132066722776760186809740187039745127873669414239701997508508593460095803693475796662383721937825446312559435498849193111306492929226119394300755772811549224415089305764251221695881137009174832048484972622545278336743578969920369250832681871605898888786006307373926826715000562029457429368125677263294655420232254046489684501753566812534170811559462916832523383911997845983733949400024968159706566210807760367719214892754092704007981781641303280619968616506177118028099061912833822993389254582455145917135739790859459620528942018274081749016312088890893502125414035626137943606715118708293303682394085653017550173453286188864859933453002855096283194390446938052777291236053578131303775025873329970273711133040095676724563672358522788042580387830863594975053733338864027265091123157324030766714371830081629491452144227040204614863895626638312256153793787883195281645880606660841726714291759224761050755704199851218420727020513397734973371655810363908361115756408428774433021260290344946332500400354888596125279883907287710297533419938951495430502532485727355868254286883094450382968530829354047562924793268212040854287844803843840157174528131594360541841327248269551739740893991190225895243984116782181530280099486454587852404790347440616945381227849924936878808777592499361825576686467988417707041564109396280431301835099189489474363114228036301285917698578643152570398916645982778770241316635246224133978092748412255626562682454628461957096057571973475421000167631230474266479669489255934168128805675440825259224981808050935076159357458073007240017107591000392322146256644343774207498209041772414469929814997859472344825826370272456459800944845892202572188150542437085044666213015463733447091528341288719988814204718919906745425849237878802610127976109213418191307585684409931027447436277487545478528052080648783747496068589477497041429350436752777948332444742616646070500746008018472757825234513521001860458317705062017352160322284946054560313291406319815900968761218622223091098626585069133749201609737898925609124461188712020638247656133032536224926289324906093289221012090823520392508443034848367667578927868645139996298215605475915554562749443942901598909792481806768484460420073306455013498390906927150215222330719615101634404773172785728995980428913739458103807716082450875232464913094928668377817742511120518599749240399588088804364629280222844673622210135941300790591920653606415622520116635702482483315921183309323886230341844289385218061901191213155755027251880421780285154876409643654852836468262633590110097745933407507921617969525751777935792993670300233782220735773624183511444202954234466122809722324557360660504638981664660897958487574270084953806753130478641813286917520002101446585709405017667471276150828772937786847879172429443532490701302667336548932863176337273900891807930222826314566112139753943388582990610289051011908156215596406673496263810781986502764159705794690881925014253052130895225664548209760607404320456103038961777723332718247679000196660844094058246515027299787256191784564999402980613490943185209486641987728706327766198249222495983383876148119637722694140240578176372010225716337029224540419627038772385871698241341190253040872510327541471324642620818488187363690850495169127201791680831835909737867992219178750769631944100665042350920799276311843294579166845889830885984048404924616644071936900907449685899890291325211104865124347221050747053088041856131668029842745370544760115161253387201747640716349588316648222031487806660829365116123583876159704226625497843678116566793415648091648605024814235460580407977129099176703628232758386977069229740827580169046988671520702851080539932729424922477617832651095807145127145867369171801867462429361562940605938774250819715515643443346851831650495137675919521257615838862300304429980971306232674091911484904061043952612172799180524944293384546751428779499401648626658049107260758804085378025451520884653757716964246301558071736035610171834516925182565707281202350780613114400793425425326858947882853310258490746580239271429892451261639904110146428917456939335724477629538210880828853800485408190184355445160188217508632030158436810431815528549873334695072794293296973433538273452015404413713237905426898388506385500663819730667192659853160251082623192158919588501874582177926777096761811596124670053093060862177088191278894985819188648958184968592969767849387222608293664302992299887852794359353893915728109573304970449586559310219019859909670814023061180618830278748388974123039811647888530487625505914788261740088883366816442533225999966961148120269625674597886884569817168240149811509323824871849962802090175481840463483278141347666457528480200055987560615283008337668911347369494955363203211476576315754985146023995267822034381532548449816781989685525039503911222527259232870449935484479569841555549640627183001026486172856965997180733994420144527862753980445718737496977895443588922617394470149665470757509540250092090910901478227797950882495365178198444388831686533595177695815124766343816524102062709897432581075863356923961903642360829178093725387599137646161064023412731069671592180188837071292827204939755826284026271953417713089073230679496989055637732462376782928215740042449724739974073206734619146026136751618531483681135587961421734495735184689471198538138029331719004887054450658690086571484484213775201306642621691370708697747187936763678694002160638331859226164126964984780182350477751661245160917614523706994240319241815112831153443725827453065047271318846262988230843516456123819382679866881439702889182034171338947970551957680506585016383710036351009908352983303601906496123477412852727866887938496724429574275686719109665238409904238826772855713767924224606056343795812784916681489904055044133118030366761211081428658933500637164842985986536714295720412923610274496771654216715825617958589894504324704168253106513187941117965294705943955178255878117952788570007393125816690632126812579291527334219391784978309785215566133666212538500078813380540210983304111905572142906557916933764644943743448672988995795635965775144418058913674444233350387861852380454367980106863791307874741101807812581860625306803549372312324884888521391072832755537011598406824978655025286848758927212173224185781223207510470490433201916756945491345871591560426573805641259530223888200442293206394489787898105217358377134126259108540061901011068107541216394595403250490991891142049042030957299404028269276047806202056065985596816062371581734698597275662666911286987813271135218211872814882782545813648815134388280134640833519753428326503255574014475417454105840899134262356805793831711598249001502482870484053293957004781878350360325000195039653779091155850005576410452523434042664816562784576000213867078680707334905251400581850761040644684166274442866798384396048473855524949687516869854759348573248326274768892286233663687113141041092772748513967673457102282046872552421264780575241304503630422357627273768286245092849248878309789192677766922059286672730454981873249054282754107966887584899523653172880163560445938979624407439673666961922512726722914281564530650955661497525073962528477972057474193840605129533088751516428260124896379179500375739022535048756893250905549934232338288270725385790201378705489986112667075221459396712314573368665984762421668540562569123018732555112482094241832867203976797574087885196494285674801584315213394337534333440303697847792968462657941532550353510067145260812585760973502890414483042462952770494691470565920671949852179292604332757801171658598707505457146151765915202304369847668041027611310368125329549950102042013086263530328293857967726605854923510387423227549755442475326066079778178246894623357178223878876892504734874948520090643990669236693228219922015295974497770551240616973257407459266624265506222824080551044024799359030341974867930084285060954658708351871864220933457220592494730574685993845943825511633283017340827294619772328770148412867517190703878662122558724727853789347938391969678492297479020711642348682708012454706653924481551140798955283652019598711746650990550106023811702125757098173991051906383788391578394007311690844773841312715064966713002237305618592215202476541127866961163368708178384064990037665191097264277408253154049876138318055639488368658515548698478720402660982550848262374778317364202670226777344993938850947014879867374455717786950591903161382449528582994435676363707875925604224746822435817856150521838544988099006762991174342243805431733113588192852787964220218951672573831357059581430318290405342187766397683822609903468290836579099606895118596142920254440415896054174916582132262464690626785046331371577173939184998070999512613346510798379928754407123797131779597915335308039994676836621254001968243100937016523327035138115001137896192185935388265094988909711189296082487976115377388257785903636155207510656505420947983604812746482821878035805169013179226930234892245924732927329339283542501530454757826797976988250530992733858634522082782241766098852438778283638522829617093520182313727761242923513820872971065856547712977393005869540856015815563716011097732081705277380616519075400523611795862107624494732154488219961985743647048125199380175580624883373703078511642387320446232141906980350647478694677953190190055061279521687588809355961930806838843284411237002806319167297562519226211481142427453593761864151192871822508340865113678634290986505161076699949770270588519871287043598933802255364764328000319726134341766343741352700228017744752161035336230250253582107462303523100430250527993454334074912255976517823577900980858973666257120438812472189940886651396636992711135036681176090443158667533527811862629050508935611433700042172329931247508275463051312916574181490773665118844812817423993402805233642826752718108807875937038321832088357046806940803797178943655188968304192547463199798443571281296757520760236170494750407401839303681286784850954750106359501119020787389800660685960566871000710170613050712808587713770562569539823011896151314513185363898935734166201571955790082002990333794853475487051445088061770376024410618629347938442563328479206328529685215119990810441833369464937120456262553930274922611110733944429242823183569762337409562122669599494631720857557205457925750224604012525477088908776040205479970850900571949551215375432109943798644550026018532837364644173939924917071966861373919279154253241015011549763133859350268715322035574673961995671708387718569401664945425093408447994669610686774376446981423180612443596944191186285057260968758111066743992123194658980123313610980543811220601897952622010990575110452938323856948294270192657156222075148471387268151626964262080135171412438292635397768520681442373099519732538060526991569294841917657002187668791697383466280118118800173002272387089455672197180238443083199387304548198372630993031397372620814331614524143372097402571048805048145458972654874502824275574102649535952867022656247265984831831751634992041192065798265997254249408634552159846030460303100956633581599611983532512898243895363423149639215538277168920599126236233279421644137633029386102359831014367241452511607794535983220691875724026168470840865501177610338617661990502148089786570310986152017625131212620529619431195706689037255119303553724598734379015624014570720695168815402567827029896617117636991032392027632580440376384228557069830265360945410529825834290407856036913062826890900354965736368852296013937147102720916781904578283179491671706971472264352358186058591598663061845588794099549987406643891429032807306165131309091273614783432837128515844454871731458864457169048661729709373652187080220301895941571912855930434116549060138614080174044841701032538804689505723365514629452427127350993487145898132704492388761606705312819423556765093746043849299665606653162263829401255246073444051428481878168595719710944797329741934236196010773638412690394798409939492360363571764552079234079633707193266229380091793935580537152374019921683225832186694285297521943508174346978783907699858377155846583583298332654790188282980859266013535232417962648534863257659010596649257997218654554239811629750861723243802743617420661528331079146153730538977420071128512555627409007061004559871457932342679547297567560335609869345069941645691295656031397031531822440717940685989850989163016769449970802070997376028404628857065822211982333864985941554905003582843956862651614087677223652280717932381614261377529135657976861605110754685937628149225876415736974111547502518444279133332278667606660868749791875780959968269065993348957602233323493016384494910121772279542830427290427793948531360342576111745995036809422817486611218326365694315483299768503729888926380077057774760492944582310693128834425731199348241548874599517161899836436927753693358550329343279635037374305213103069113966607498220277077391895205195854339874654147872068650750158096836312894370281561178554351622487742304571708938073923014894794574979469383571862009564673692202772428464323254979531451192640738554522502284743947015541514072066339558544958106219287027324342134885577428845745404922501614958442745739584062068062458988808805603948209182646144583404739262766975966733972691848780921731492498057504657058962230968773961451689866318700753217214287235135502449832610041606550114448995254185569725558082542763540168088146098071317732632704036893430147745241233041957432029789623401487393001693058504498047411496263884166941188048201449988178941242277220096567521337207728404532473601352848355250743675317788522250426724508187316184242156355424170501646808775884874507746970685902228877216974900467570283049988292922767698391993097815737619721534808706866474467013726038107229768240790354514911172513638350620761609667594424279118416616089184620767442877419307103465369561178007650528938517906054749826134352898758180335316847105520310647290364439483908248537684720621919793895795405106347044806948003730439286976627823626645866194798607621631412176253470698205929367399808321045446083500816668018224252612392260399065604523700348018650846956542221477618826842157815081565642249692602367448127832998786501946175763573778075585227615205904799313553123195788534640565581551728428978407668171132334313869439109824127607353514913418703124600839726764854455481545934281486869596615261261480962075492379377981307523091148591485583944892153130826715703490144628745834829053443234101760326102655662262096621339649562087398462952035976372969287105287676517317636881699903499994967912785244678084165695549031786181429496714730215223287084154008976175703654748261662932445938675596100910319435911588504488354902202974337079819299889877867696792330988065971849990998328395825792185337892286700418813613980526876328651086850551992627239620228940445722522337421489785725730299724438302564248670909452049487765418272769808941652915636622619830914528991871019698353282769757345198747501826933500997484933809032305539160873845550241323255000135288658073833747654726824175861733028240174440401503329387584737208187111864568490443754698326185589841514793850227544987663042043963737776797697745903699391103658461433083741905182483412350377066746045574339815882171818550512408593395016737018913833771795079062507832409255657536614774098991378308572417996823123732053195650908393166341793155970689699255079659715841841514408642320610899590290051501041531175159044607367566300408451372297251276282114922127024945620559443643586508473353628869051603461462642663632538921992535847132791833458671859067937153896758263687960991741216335775334743729000542568788481185923530874164139507765355688389962971902432434535295054962707600042790122800004996371383029109296662710677541865295071454768993940056716564120446517243466708295353855205401460207013734518910008263397666034453461442344880476919685851878997270517250232616237174709186947220675963416310309988650517821707444528638977140200786800200167956639058329537240865485558547558139710672366574494756200072555099580757165500898766293234781324069714102733191927529332687231495862757203207868615915532881375509515535770846787260844034039236298264312529697728319625693617169351237152675692931742926607242076453518511209204096395024306545851272891546085419920882158295275162488668380902895193958800722828747876455781298477366103236186487902914518337539163620061344467758926842395551458851207717999760816783858514139261398678014346174599377411547192252893341953813807496903638786205097212949543984503547635625487949281681695719703577332068559255779016189842250166828646548422531135068680151451973605507026759385473547357910491654050270222972192584238383157698896507007882503480202069392359301096759335839482359823656211530141070553833994201764416477498658022260985566569415003916229378956807030903566099809032603115666034385896541641855909886581000240540297240061063344892101923951949062826567952407628103709641385335558897242877398444097828367161686683264633675930901333093105187201470422548023264731724886723013299567540284019222499687430270814875784343626559616522164154679486272437786828163478767327912361075134485289002278519533638030617875749569850582148647394936283025246031782497870286369099478146559063420357486635402878063820164075238186200868671230008376209668639618988542078559313881431941209928671159179734751563020960566828821441680222522344721253348111965741058498207621241364948852279248953961459929595638495502319816746400857785552957132712913421748829564971193406417834759318452052324316368068104195127781052856402088276550400582930432436320417641311691983257876201705848772154873154753442127267074390822267192787938490493070740103634725691754291480455009621541791179325894863359880831970523857308823382160458462120950323544272164127321158733771929845968521367334424891915457865929881218123883106646257133576683835004104286552290429004481819409741919756576151491544732040862280143607799277586925775530856922802504754889013478623736525253015142263117671113264785614902395260500277600710165578092675130214350917518472664042089907431726719601235191374754783498626288075624194982423243727126207537879703748949225029178960886390123976566721715195700498931692034559028244152248803039758973429001996627360613217009501300216376404918552644557083628863585901767726682279857423587667641308735687492514779738584879811804855303043687598595970932991484795652884131480168265478086320771497809671386362261084223107170624396928409766933418785586741983031653228491470676776520010814366880791054016027334336875643826107913332344831500059047759739962293941354362320272478473342237298271530013720507347794905555846163802776697023362783376831679847455647647752920188957439119267852377009459043090109270827814981102053819332193819088546345279644887701663579535579384002618106345439072773521708496657080384893045356642273835922262574878534293580943257297278174549740735689637507195799700361446350708260325976343872260513025020334216968679032682295885486174413196755379803810603803506039325948090647282204527974963786496134620950345888566559879874021854610103525226669105654188927250986490171922657092869245484863314733478227866576124607278359720634156756238466973664538110948630972202821654883791558389997814418384019879531820405286043344898747210369722066674481195692860681432988946984960068574588752293930498729730153301193195242932104223893785677280633204929718170709581876789311635517463629828506872869089820264479191907395997170261291371625901834033600441175810254159535205236766093604752216545737151781286386065465308557444969287062663757107237777156120698104155295629102924883480743701516850686227174274998739023080476994395868027366246081749129299909129053520021389304043869362219933754990419437390691233550177675847874791361304734451645305472693957004284213767436097600875070222072386270148827551575049632174168049521152292358329338093395006309841172710455942144164919934887605058261400155814097256891439266843468324132660112197843104991415727523604059074691573478224948180099798349348069925911787594452634480848369318674201068974622912116753490922896912660373036418795501865692890255468350434542774715572665734616490599780933517211519970991771442211861187641119369747663552252954749276509448936954390906096390634940270416800507009939429041612706083491780150714901045115710709037600321455859866878796643202967532859698722294209849891198308996638915884983268304508975817355056247128735961744486908651992224428161672696246562579424661885588367430471414614450522328944027888621118135657325888639199116936650173027830895121753139592436776079533872437801626190968260518615888232054064318623811474392693187221007372507100762284404125008818046278295111941425644398836738166868724039419097645274596837939955505809709483305688117671521254969062979431769877621124924525340045828737599306159738743420517410685100239059412794513399029435729941122769430044063188098800818531357523365213688824400132725879573524296338697815093162222942143437080882742242216017912376485676213601154250007788227799599347721225187434227166632332906738243160949104962888648137887092087700797263961915075487438299447636436327892723920661059660619586406488519525773552946496751380560725026543213285794216379002346601823739387825966115437244027572901876219837734011416915001550748507003355165150492184969256798481135853248045212652235394949835122000692715430262174363047458204140482804540948142005474391977155525121528985694288486458178096360403087723670294790984821872515230276411380415969302190511519546241821246870984869687849855890157807881861468085929584371096341324207966398996088267648290744842327571918876735909263562741623701403416176304995547894832881689236000078807609911670933240591699090385209636924882985382904862872930009922789823552649729188091070795009175304010125185127591059097011842726341446223094464139299881142774863635414219570087230394358415994945883584380523323262093961654381812830702511074181750855186504265732719699707103432859426450422253571490885466714746236283430078300414362536245819678738124933854253026041136777787844662857359451201633533629876102925176219316691915448714115382939990879508217452431284890502158804195362172687705370196515713116839331165819022211789687740020245345851423120199161319623148475504017243784470213058957753066446035413988115862288789074757484883631128366802765178795828626106111050936535191272928677620371666345090755216009967940548904063586411387962597564965783588004852475016239445340396144572156585610220092405664513897832007699593458963862142245716935683508551437661108312663554071779137548413566794078440120240436004585406990424429107138095433753591062814657602867647965207604285825816595559485337112907471549551748171214800626419653013749030171374996408750655513221406248449695114399243711533112599668563176112379203907133652781793744237726352938820283060595780139450051356949487506834256699924999153140122357698825256496716365731825932505800711603207833804499268487033102736021775249430293322878826987382440378323468128456289812694665961007419324969446585467870964128797528594912979934829469365047220956074461230386876295985603402658020032504895652111269148331657240902926251857830736473840820261289623563208633736496844508411196224324526556556165657698825209966474234554777497826242964108230271561875520592424231870914623460372915600887207867834961826713141195490550686215699119858190187273766856878093404738435389787508303511635050454575633687460477934870623255126652078687841036069634061745832082059940770481296656643812565195470105640701120163021010157163505174341454318636427018227619184818820188666716703353395873824533978401857372366224610821357005756566847245538777742948516450275633608378648449156465564941128861978691292146819529271585424881472536033044029535889771438047395850633087580079675853284770221399079018122573166841116482003038388211377302741420652517835447989009558684376484106138613873418777394152172430244328774592532523366735684060668459245111749178220561610336174642667766706247616667152517056306142713630144539671369689275990426547759386557283227386775169562358905287324435644240897741829777151192380408630821822541265607354033705127200988526108114191534159673552358549148690381523398694828225926777358129673154068936015057884808696403560162534508429451219606074847494077826751573581827772425528484539077089612837973988562022019402565466807337292687096559062278455694621458540289268099096422669610401765357861257716644438046044252301475543873888619110861316195319595876991314840240125679152462785291858739447947349147554698537934414244576479059304113270485476232050562681891957501677401119776416325360342160836207747305806129072445077498194532201165813902604908536938290474102192021601184742438730258189347361716622267895558517161596164529595104565562143419454607470034779154449730734275281280906444310315941826293672712300759175201330306357138178586973793660571277805102197239393315466329037450348969192195054703738916362925391816657748644569306216067011352118775249300623373343924538396028805825107728132074122698040487021867121465442651067763672292086322233622958510306076396588390035870488900347351435268138299997844311932220652671344276985984752250451855929028823765189284167408617646880345901097646780081684687531501277991161712827722193436223664384448143048017410871585522538895562093225271800052689261096779552250823673276906807609824935755659287242549475678891435030519627739404536718216834236342098227040387170361103890607863624733397055716231990149051788931927500432776078786036031569554220816712286975556461782099325947941521980054078889221564309834712090094234857897420658004932775303666401372327141258757288688334865949025938616380678147498220623874404121830694667973257522290904480410082540908506601416675666401816677756497463319110690885547682957451632837252408304875420977333615672832886627943883766500440027988301182941150819380760765419469437489717401270728454275313500483538879524057816873035961487272977402810733297375428809671620664475370279268820182243298332120550025341507687701916064313286399897394738124385538199287982591194180016326639482409442791231815893215257573935816322655399412981231240902148986961604163383137038776783579633336456396616538725141286382624012911771188444966495407316193239249586282823962726247427684180904394028454904269635864479926302777404255175192153903229061047707012527512623186235537257369159267806291648000905316682200261365856823227371898128773023245322114938425012685430237328840713645035273473575061543704662286284660739880870931823897845209122801041230217365661346596608358984397754705799386363434615275001397864635708848980973704259892566736652957844979552130041304433362245881853571976213592591100932833282072059692115695969242026187850461479777975278069287412475558368444269529526982870490398189955711598232115936002635487043395097716481801783575810808652769389773572977484795212938872760959266912037888166625224898700075819556935493152512937142140508428657086597766383404431223939401494425370709779097945910189496327331503882497541229049317638108037773264658995131709660543796710132374498316493284826592346055073125205724275969278726479882137422644907204125471096422209182278161658667701297644285356531001573515828048225144434958649569524113638115467949932081715058143840032719416009678713234042952920975037928694477257476764327895117210417680946175073535193988513483602125475108124633864408061751451541075308832693201752842720770231495093443583369638506373377373606959475713854361262570807479184004111969452524363914355902037878343960134132313790002264450289813814334290562130202796419863766852881726943069551605428450580200662103364709777004840320010538219117170601271235910844358952358549606901334285562256807122396493764328534896547746639601693774962173239624503853540467726816718376554339734480331078139026050330678138195979019817450935028487550437347796786173663043343896746191376838370361627865310841907403079205493302903638542152623730296853161955846315864018675027528264763454880996343458755435749339849191266163788534733670474997004941214637926180548599155237051991235085328218409612257071048943999213480462492646590758773852144595665028650570414277961494191710615119606221187642435842339035246555811310737382980541613579811560951550617058493016340641312162140494064970963641884689379159953685519417929894276125536647071059793285527016276275763850732218451491148214611133945899138143138625740042052606611558162239925366627857616430626209466096574402507166414361990735844783575748463728227924231042725566575032307574081991179924473710962306657308258170124552853294703774812957774939189931905321261589077443072766344858792852413474403856098437860631024872784091820824546478095120026875052894000143564400630145240488120914967230192946317803619462112655991236567390677065572070726481003131886721390248264171520393603409696468033115151610229673058867369158428497976841359321848226898536794910569857524417503623009610443433848235227665398673101588668571065321907056035448588574581947466877690624340895002140069107572737690831523104474891901791369894521830744781029519427550626065848471302387329458790059761711466829080853283193815478698653541613812109097986104793811629112356388487940491093127326143948406613383269797319488828338825485049528604827315500643921894363428812033437012132534228973565161873187786911033471557619279928440056086920703284995923388127907477380961644715323456177997111807059268063891610307974998922305884917257146285765756970833340023206248806496975704186330709642376268580110612544701777049764634027724935397788060979978077905850546054174306946161691763747068768418695246904029488934558110653276635214581664494708517503170825753482404752414568382123608415756336594110607993554541100583542012874885608520176860009988369665374761136836994175194330392557991000990255267330489090692997652433141834959402759943766985881167088363887045466194485742025832608748726356044325958393188160722694633698807486144011752623503468083111914085264873609020846019635168719282844032814573774261984178664577504411839104839775221650314583933616591399503738974491753501580378456142127820376915620248847208336680716503570029970877272056415324539995449353004124235812429305676934765416845214436369800674355248622941886461526704161548978174651287481180032038660190749283871371291999347882587787785448470763989361726373625792542749959534347695090334544539489246828339021555389196950675526804951083560350316162886743243951438562035641950744233720778923521897880484662377530481587919858000865593877214092296816627878007439265464595089245724968611940395638621699002361036318348308118772339893531707041558600512968687893462596414255700653510083235391455408701302863870789288440931739145919472568783965478448186560022771742305140898943139252309225746191030591634907408746366715085663435115762432358832617276967170114168925960152470953317916455809852582360207572605497274349626444306185941038791135476088723633308527437426320737820367285997969845997532421487847517477224523110872760635668864966115204984804811363127090059762460107410665579241177137635146759255923122502184270817471999561894256129096171899813557322234212714377100080002730649549885806147047353888806600516113268680023114837088425121238607994368474203046211114949794887336925202817881702917534249915472622032897328090441703244941055851990582390583522917088395663504197232823114399578626830315881533040698276480298807451348448339312418289741902430760932539465824696898616197768377263229207820922456945336298319468758651773802334932340477548888792848336070133748692049056373645057449886572467414262111823871612202571770127876834232692160625702235062015238601603770225561516408576434857780911078855121453269809596335040440904276866321574844773232823349206325141119927593757741982513284166897305421438177684829331202561245894974970408438023541305247826238518608869702722696156918529440075335713517645232543062801347982243120835201422953239310626770327455077222576362491471325368740955654274481945954842433278184089235157205929164128709138858102032440244493623494307530373462159981304155562701240334330724964060397607927935387156950811507198352710562589656138077829380601004876153915274077301113136381972672581285314215575235908269420046323335739500177845979843879839723047231351412328127603914652538681349413776618429261307654771593531543658187124145270168532933483722317066146991041883920385991885223861534757794251703609858512546237064168297436976908535825447248620697010076166829768711364692949683965720431010076213458387134016451561777926662820385550095138506683943005062905043380477483734247547722596694619677195619307897026123286148377048087339783151422824018604367618751937446717678997026339494771238537975324873664038171515448349380446595029937351633907241406178753720827741488851804234307180411109296772388395970140853849707831971813435089298120526675901899534788487280109720823370183457019403064658453573339119195657937052453577448147812458267171603975748747327844300474843687972074977618071509218937951138121497302600452743826871428687863731409764458013580682297109008983246635664998793461749387675718691290277022077568555629866785058079821383612230093450204141733585030692981420715994928836669078275004339651032799638194649236524865998064402048254333034656621236259776400783150696200988221031417301075012546367646333839769805768945609935134481692566225685840918729857341284330495870468350803792472050117436604079042257073986932282607827780050837446824885301631055072161078912132960936648404013446561184155902413944871075185322849698274686063204774370599254671621471237390236169003327649067441604642872310558069215888872278911257729853532066690979644534049589441011177690033045909537836522711435742764723874810070449717916799430747045070012955503744033141318602928867125194590770924531700995993388094084424553877752055411028189928656459863087712001681476856333931500077646387419294888769616474261152733757725072108492750843713272578988779428704188984425864209577410757276448041621510074022217908269604394199873701416245644117778124857189558194703469063677282030585593416521902753170246236052978063662906349678321279229765400946195139111309000445868093003431022325658955781701174094520768970839991097420227249275029320902621096757317545460267172042184429534756707767978633488581623351892104340321813302150427975148492487069756376031439051629088069408624747715873241048640598179795016376682885383530419559734020415588774433158512929483140430208430963700762056128852841368921262797883245549299073217337961063497323524086526811519611776583354999662500843378471644973519166570840419390360236113110811675409742420780173111290627771995140289302783991706057673769245662311141186401894738815129836392683309022341342317663966143936365586253182674136911463002264005076651101669572842222708657708103824366822381168484456255870980991014466700118040247689801304478220094898738473579174053199774733784823386596059962624545791341464948557450517771994301901021963463667138256314406399146274496952656136846918595666375785095072464950724716360303633717912829217036370408366215550416506214436641910713215474052607992729886628843149578039801843327683389374458382472113916493218433351350778940170892547921152985888059784355348567282870533523930978849351482950437351400967426120101915671571607694112952738249265006427237803936546203474244222884754431726461022324481007202802613395024015103400422588004757204778191583327288006286185635689004746406582189517777400293130932342547193773322324161017139824903443557506566303725670762426061480048786823554790121264828079608914618724396312045407328760735817183929262732083736899509208160383504325978903305065783628675401552589527669968256886434149432622913804207426655375816530874460801715194690738656276835163300175206225005361644727332081376893452916612179783652790279330806596259651245346014401355822992009367595822378505252522182006746132613689658271507898392753843370862970520866911077015068198657554239030763012058899908200822381530278125983688010755706880794306952008550496089957748466117263663798055872521303896905779116859223852249564132056728139372957961486465034447568264166692757493112169527016568088383785594870688822778531101303187525151179984330363606566639216350928119620638759662206787955738373334863969681875423261138823156167213648297994389789145256468383061982842856636561668121544909646796843174343685410570800130762248732464865788021813362982368668317327268501250672979148712446167073625100194965107854465928982547619325386713256205693404868527918366882893885229768926253288558972873206979134401617896049709275545164246280785818554517238218699481675501366535507248608496112811129146785680234672851499860879786948788153603657551322712382436778234765829778366237571033644047514684268864689299613334046188767787834640791869499737560436704076795354319753049515589285875316435171059911422795736494744502453020627713937138239936366398365853839381117058579720931280878994753307769241622059416829780167949808513573122029646033013240457543288847832577127916453783947380746755778712758730316361295530576384854992240948431007782716788736341399731183893842811648874320057076456763915412354647604750748258082689998446015146947632023203044970604267114920232238326788177334358177699511667610404679718070632731529193206565513861140307134185205618357292314356342993999097373181657804861335222941074012006717007963861024785960546925206209094475100454790255290366382437585231589893730900770396023476848712967747151460850979647960250744517232734144077467620232260627399335809998800850232690283680626191597300052525230034785183481606269546735628894815927441596925893647662211497765220495111390474049140815950587451708998974786511014508230318274467064721285829080915007241951873681982912005650128515619637295550168718600591424158061092423618190601491191329496569587010830411889698990760534230169984237581975822858621299465558191627159959200937512011176831040795121130193585752594668028933376210122498968366787820684291642390879012563375350412351484744243527998742426442918099518649185362161394989006341959090129133545731824021300752248852146038041352663263039262990624789601837667954064118301519260164126780877898980807309262985067758908444634584979743700325092910105815905293628552670760789544595839371731922651902472805002977350044847762281867677758409876181550032738302864503876603692398652290945910470785369495490068501838331449643500973400391102071499119125250276317727698813142158448062210387824465612114138097710800899066787528696304788917786568694139111527278072506502726731366687822255546128418994914369994802855429002036515253707247240942125506771065502315885752452775016648898373745507678179051253345379897970766884785334170025504453193745432203527857187330595190342675282020078249265765916562630859245599720954884934586672524876221036341843373758535839861610230827792363504473259822294193240748433298002462401455413620192381048756583227957235010746534721167437182954877034218656251159793486129554682694386767868365701980796184887122277474832450588945169789494224093639790371457563211285521392565611569872500648230132390939718122960263462337564764944922348203259449453576653357303695495546712811749956736002316877897127410357220329114341567074323526793067280169963331026826448948067066741043995811515667061504522009726283467371069583729335031795819413431906550204469377431908687193091859952059576533241240374955302750240328900396909679629176732405586580943225091394438930912282925531935981815307542216931294221998267465390662587773899477148031107877778698523203790156367447910624319063838579951674472492034627384551646787492072162129505191234090443546753981920091082625368807105121535531498038074682156314147428213263467091597841518123907474626252866450168464525875131632793824226650506327014327181917185576211588674807782145091468202747794111922122949409696885587870453986696777418227402652498709682074320996789341013239051069888589841743579692254119040392685053945846292491058335732782918563177740456419396932127422733253271369325060694441376414734916583043347279686026056653828858923064333417375931893401616575831856288429712943156682794566003323776396038076926919612122003757669006741718154114681990939684525798562435582883796498089350040989774788084720050342150006658864696726922877660317889305572621690849577998954483704592588023863965277928587036983645592202267948045267506420342158949289380975226094357815389048097916056480403878417137490508776675982289288284425756761812699405515011890570991992457102919719063100263616619703090705858689927846054506137014410268393893122329838422041669925806294860512835712925738475482677835801019597127084448250707596345270930045158443202539131632662798829655344022421969035071024862870326531843854411577250984242641058586183664357244501944545211038151573329025844332293063777697774545649530614885181809255769431007655003104798107922886992712539280699422403520822882500835595335917696040731127745349732090223172400863036824986972121872458385199517659884059547253734398513708652242439534101212586092648739441030020405151360424735452618760180259022606053409188666594279142048238226647098803666133351722422157258533716162134338473047136976749415419005763143753991976058118004672256075472434906995712847876677419627793604617471775658309487978396996863561441366025088623132500208917503275649434501221904709616873333791964257842601193431383741729063193970488008999617089614429902196445221625572304580882523032607809904384736912146258134282740081140972746361445317831666212858089135363934254869571820171945332727954599102033983389605842349860008522634462590430905138434431396755527382898247316716758578470073919781484380502148808185178564826772728783302541910117738389748195930410678605527181397430140864192926382301562213143484803001640619749317884990783986350833936482439004044079230375913480018268497966226130630120932567858218684543617203477546125141690260513583314599752148482153831038147642091167223896842287877442531996692109589182050821269114770096563006579042302445444282886275910527800691477697310925441307162879129824993463126687063867043994943285858458659036594651367030170187152008633715409122083845707498106349460159758239197819694063842984041868899845032682640547114723673121495334262752480749127552714768838738307464620404379812078593411742944725845414078661513693086302477982834934706169874695422211757834239548732903132766452638042043326596780513601933229374459402448834780315999508254935808536166035449447259494685592931338038635737754375186858807000937866573698135974074639071470082609344239336102999568036695448526854293893333071581769973342089220171941012068027287453273272718863287423042427729998595722112561717470764307082795934164461442036314541781872198827010074105609995891283096766617791088475235997205220760639917438151948828983927516217241351608086214532078632017514397991488124309347151657135550874326148562584425430137779793928133503317560003775111689902783410363798190253637607451405978865883498389329346496470477608862173210356242830014137195957985768629750607400099893258569729314256661637075243767208936858647300451958969530212609391642481408662231107479438244585997971248113574224092936425501005797421966451742210326805848313802406143784389819608322926921191702485157805444800756579532904218967130540080272000035849660972409230709075553929726368880314225714989482660807359108782647248198658699249593850314815661069759954465151475977926144411310116249907609102628487338139782751721035175553294119958624983553874499800381161929602373833989191710571101500893131727578160406077786125460458529247573132126932888045540053356230722983990609245744855681559476043770476104916378520532238366698632764125766919673774492529631687223332777279770791291850856474850439143785421987742848119385800418989867514579238366032699325218387657275493336606376511881671293916511224706437824356871194143357398370368563003753057060234687972029575387500084013224592642825504592446711435946938725883719656069346202420444178794796374330570366445017128285954305094146777162155018275874019263524535456263084421460098086959999079031190423459487293746871698043906725796899486888369552434856375241092016020651253012659352720031273454836815658851882897927803868327177369516449325221843852991932071058460131134864217747864020704067995955072999108101443706524841623191536155616534123481200134893376100056808490397735765586394206512867073084088451299052353135466654856013078243450047678710061861410573207670347802867162214534232088034618673048694961588305938288200565859620644317595503891766084186324698538771918448455485153678687981911045008651785085942268386275066307591463993230062023725606168026748420340360689646392498300433530108546806586275979213124113380090489324111511973077604002081460476500439309699390387134233138913100071757085599815300709991698344357131231492432027895857079122689321962330195488926658076021785570096986016714840444298593304690342773918025065081615488262867437485551459238908293903437132134176610430138209320337558298075859840032839510907145829947991265820315393955453038294761431040222757008781695933909514468721274168542821023347460860238431665353597081615585253403354108583003896829797561657304620484172477845696962116347971261223860510065404154895713855450414994965769551522814985101803906468299740897247498967188883967576455587055419232441012853955359975603045267425735936214653426183655641094750485537426993100826309127712978313614826592971065799830679082299260581781763853437878975875638453032456967097505194638754279057907728595643305653296066116343900125151211738205698154558666693739081389502256028859602548100145427247133459606965506318424824075357600465551949092585250127149731565874642555107324509512685435149938412556277422019639158934571167382434966142987636910610066382588110641032094683810422836670391357385038547619652253242085945928617514867721554404544820758199475393915482247617399613420086081362613109451206967286874180371027057165626572311472785551801908696041578214518296217021871436355309679338228318231552910364782764180573121642356632718151965413304568185236627678158625101144196207943600187499175070571089859519368404824860648252135851525677665370633621227009314424021611030962385151915906036122242696895884802519840773280199413756181825722849753775871286766686233293866766493156854928959498584334646855581567169790320980960334387671494938415155130618386736055443657474271248568279977267412061840786542570266491771623492158857389957705959004103105508637693205512311643569238125860190265886776022369517464967037676250829917955860659903279138729371545688345145348695248083635507855846467167707709276093043642131664435150479893019993824087892900551313805142443105487317639350886576516087531654133433829751715263135645012173850417443511459668481985447689415562922974391379665692727077315361197228600833677041466350318779523696040673222580333357650471257872063910317403506718851878660610355139128681573401840600587115885734333742352086506646691760784750306990954289925858744295758637301354381742141492530679594900892052489836151542191397751162827306435913572989804209167943543571078999633750934603263180900186923441000420063826056165199116025770584949910083110687493126790154771658007126940694042829514559093367358614231933779860357846447135474425102861918658480412128190016074145884632998713995160570778594718630812224700802550649208481111462906252840567527947793542651695429908404046417969209429345754605914479609879843525178142846022346311748360052043979903758543726266802099466791992417748443029033395492930337824018091732001644698698129825400413036956046917819857349572931472519032839825861859362813682244925622041794187897920877656182110688482923197302134515843292465014359163053770253871357906438944994625565349177128164734880139881392753619103124922697998621684493599210249030697639841310785995672309500403576598271641429015955514890248272299895896329649398171708940090608019324988527030278647266583327340852043139206352456831541443731006755439064375063674958463951586794052224243116531226301898178506926956887382278510032633739441432570799795610279579314032913087027058743353162293433160978265362994913922246844384754273154780816238620622388461181601858281524336674650617577513885156281086409914491572866888548701621985501349788171871878627922354131627570151627699468251083648178603156106806233540258017721843201129960452253397970331896152970053485549566241820172063741830655217312515347325037139352313022105123240767907055485743624432502113618372167423714012290297296704194936169253684511671518179904328033784431926255311166265739065797009991461581440957911571216723041462041365438346943632271133541998482520138404367998567918985026314836490454699959013332183859058654590316728704076637401547203929172980629339408554821797251635915682820146062459238665034569575978891199433650958074104640589690819441690237004418932339447943364328929356321859467470232365795233889296128219394312715790947379355728770327570206805784384157253358690840850983054849770802191660748927683210682144955533491703920392600555284539648652337047492202253410426545879757361266236038526134685863985296431413969653669932696711283977070039721930460925766679785814815964393616146079755712254105147586879388033596522147072526030809875353814574506906798563585029387890648024891191001116534205382488063533451975374590068467516653796340526100652849663436068398506830486807332601816350838569740315561908015738714959940205130799309458399495586924497153894331089553373709255017869050037473485486880981092301352447760566803929475178838221556349687565947401571171518205453293336149193845835951317180505270673434518507392498528741605156550044062262248557525670109756880743117415052018141199682437194572612541769451279360677340717924838708449378982717474974149006647053441357971149238698976039800845694740329043666092438478166515830254691146651221181944813714216663767471228597814113521141536826199117834778297597383456764429108039671433455333920367436868108766323798827201943881592066314199462712600827332218741531219499565104927052670699592887415264436410670422542591887332470278665463140310225789826464117374728021964926228485759659576625360844938337935081967161745084077998781931396728752953210921465219416119948642926166678852205945808469284621289566983500098123411581578521061499243145998298812812629542536352010753239670079434057364067386260519469387799526481939581899930407792331166129530305130061718981338991638657575338323097472074994862527964009857763360422023100051639909632926837905779790688185416602267779012136464805004423165172900949548940425367939249318311029514060738439711176653031091346997564170105977532885641236055476527999841575936888291197084548649885643871093809357479718780783507567233866715108047102295178334903291338951836407560281618752138164708386428722775391879627866053496321860057097016223401396478319888645476722504326276026943648762157248067366742310774322870528993478182271146723100077588517705124827188966313908735385458542753096773884944457518687049295537077490316543382795192815098554262161326670150928955664417425574910031163305228704812050971023102762976734953868764161211542397817677132608825926267100735592974126317137060435477651769102758006793947309538586741423259496873960203587118481970177212479824091000534650885682649790974415935943340623577621182833188356902531503651804267567657963592415177020543475254206485997133664423542405791183041405927995464025571865779282012944447197293587783332060553903201998587878827795965556178250879898010695594700686070160283109527434925943632726816316666485992574985494648027743277449303905823243950245662239141009359408247953047672805140535214579869714769858467854293433326761096166285556135759087965846432668587996602348004820152031237087877329557726782246802309556974265456235945237702880232999380787246809655762624187445295590227457407156764598054382178389981663599609832430846585276334881276151481437488683509147656255978804204136408848324135794403840376647932935525030422831353676283810707889437576428486954901294087801798803344410634596905776328680799828900894685068391142605513576353414863290873779679517140027152932025049039378701011904044105274468211567803060617505034367601323266227952805619742887516321580583730279746631612614984433047419166082300060104726317287669757931896244884158790521793158235699752505286750942661881657988253851683155732604825683000285995323708201928994944320479104851653571194294749053653368106383923148635864517286451428613071753733899238082433777875033661372624994815463340313834676283635726766274040632854046776330089961379816320179962643850559325299636548027848915143070097389179559930112720809997345954293042468741341445925352398187779679306324086520584003635395586950713954968664563819028303759821538748393699298376607713593679162070436292857716394949762292577358863628878497099493749385156423565970301823184030589004235081052513388009166881392534764234372688415502098643866300103213983699577085651170705567557274323764687446067874582286912879544033390105690787737720463007339154707198696117136327342050283918220053173781133531120537638931108984867020332407447984161181751916207680257903935404782455313127675417172807092051712292746568640827475506068554530745677787408796182470707823777169298949270128635623826151781783704909652651913604456921966023529175086583421008615206428875677219002081987374887916666129371212400113401428592113900363584103383281945957811123501994985358873247115604821358891098153978388397224768960418062500468136464985726521591813531999118461722907684721645593902064514404602022214503950836214250755267264065339741599251489754345160917095936162053879625710534978554037690017095714374699870870879853682329682202527598864555821571613160247013374536226971318982983484128966839404374118533014177688194209120975615213302298840112122778399404038705929726090367340082043491574783252577815867940016111274239740631923342928276150921735573462573679535744477852056703333714266481336547460913292331767222139500114013910638179117107883417713884859135080300083471394792856970812071960858121078281329810522960341938204474656135311018865870887000470331338505257772443629749906910837880284857636073361061858447879353195471580853190911762666932315309586424609066260838837403772792234860911755308499327775227175789709899640972773644400441613636063847608996788068655404235291419623711080134269158335793540453566531054179897604721923490636744461074967808615891475561470598369860820174499125624380668982486625474664562525316189682185692689227770445535289205450042455404298860430230201635665859167339048964090049156840701185371990537960012724044067975222696065820791904571201272853685245845902035539404787840917042122352701770759225592070053301236098657883017399085303159575915460576202068028728109980451771817298919920143836661350238820114700015771290093736995595242003417135831772839822628189670910003938303648532400449774114567908036347475548658477840308657227838317774368245772084136127937415658511486053219309005527293247239786070492287279432529948302783760860712398591960622260793650846795909250351027752284809649441186560046086464201846085807394143278166521688887818110634734459975623633895342069677497017564475522591520430703567202486330726504857629110699034951996401069579614554078346192038266758914150255742456257344695429797062326441926994900537181876988927588331735997001040433664152058322106329138697735065367066721362265094813709279769318551222505355166496232128882531513117461692582927880802289970901515361972373621301070410086156558550581154318379858186576948926614893289098616782241827737610171894438576009749938619618053925333515284655231982835551009882431290601210986411115728272254905883206246532322968283154576502482215726893725925292324807216818119687485932221225977037237790928952277008708860790835187442945892359977766098968372191200685710581413554714200297420082439353034057980276106258239055991870310617820299473075660971649826250740147172815952198250889520853706723417818447036315305136953795186090663298732342415941945506312861062688615019527433782067167287243520723238792826146503225884706073981080423473512340003022996258036521611310618875616139222379270660932020795565556258558583233591318823420022137145723073241636908971040608690090243268046648991293234618805116405104481365473723135680965258888290812346364117407865866070667270542234690870609864427098288170467778354712670891889092611629696566121987717567698629637634087269633779318283948804027454675287232617492210567542954984333875126260414241916046557618840947657752739866439213973290602380965894498109492121340565173799508774351853996917840880366738858140420410310886237962676188734267623260232786307963922897343596857970885911511871560797880347572892223181009617585538434928704780714273262702507637052795669882153438809262795773969356895285813275953211029529307751950747645762840168946806685583900586769171341139431691941891834172317724587399594844184179914337263720859757906163625516134324275015077119241050409461707283766004601810573504600721364202160814540372349927573187349418567430506678247613697530261246591140785149174485690772760360333196252259005588848548946672413951995468230456673327657748045030519171168890668031789216929259646723478423251006547176538478626164908268052716894683659958363202078930648443741646081701815169151611551571129834007163716126117180867835415946556885931378181919176221377338293119686133389557957035071808093929306031937606815097177096139889350846483978753100168330822623306396029007811397320281452600011641967964753271085484414516239739773273646577185791863983339400216663071449954356544007053957653971160194213801904245377508377763608257965605724271900272579237560392297201308432972827112207253052608453380048204221479300015011057498236160576502573781087936210406919248509917888522147857712822897333121972950767323803732904691608987600804534989421626254350719714721414593224250149986972478703551441578653465168968822175005726293146675435480032366893800503471384535806196337763796061400817870205427946992405399496408897510909101943738270787055963208355564708707280880906074829616812110184975692645187760141593638712654031218967195446567305306963947885618698367743040477644743349573604444745802798773313168424554236240564387337446687478016347975572499850486222361834128723860415269408393280195555436607122331247612629305175691454438434074703246671998949631751779428367628718934036256737479099790280815657335813490003870045047422169134396109770680520001646339767579139843068274325422166639349160736761928471341366870617672508210548740957303351690741152399033354019765864719967642237224174013906435463205899806936834306472093333739122773428978731169485135479434440981197775950172436851872526323327621124377151074197715956549668587434715408909150260945301957564457403309835758338133267984978871647127140594056205596128333350643807138748955123887303785487637078517696272988719886082741141588035981274455303363085403975798580403279588300532846886473058391133200254801577592422206612252260643504357414970828379706043626259990299973681284670528732420912564370469655629975260779616503091593150308294106583787531621981278288474052118711293699397658184090242850503762907172936824002576291191610587333104978145846840400325450979196492750960298669433081760649624155337968784185951231617375186475407530931502708235333733625321033521240807434736793847175543492149705500600559392775447344854848079432875889104671955707306537219192736433778868474292402554527775777588833707287916353394509053119001756686509951634226825698156639346732604087953167869008642476638007204634395027691068774531165704862510051113154994791645924512262183771097457711560166297770872719930178874878483338108607698067722414754702488989993741764117186015689308482297976230398341793010359195284915035267717128452522241531155397569499039284869563691901642609223444750170839251660182881963274606199751736026125133516933931847206791542745717248573612349960704652588927765792602304688626037619188290191282033445901570161498176373422913153851119878032664014501432574760259656563632504243489147739819335525104194011558601601956226453009460094567123104166179268653576293612285690414646321909905582857661006156684682512520778773043940438900309329715863387135244677415099658479520546114734483269061710436030558985450227817158207360486009989563302421572845594096075906048701781721737521349587287192619354419091747529661196058968986507351876064717491411054106038052275601176140924195821881859009206571814069180967148778374918895871886674477011216757621894386890541186461865918193828740473056638828659191194966220728705049420698618072275174443228894523532004424792399977304357053742572582080112782490990028418204390096185231470418700180119517764103229332906489967277430957239594437930303069530111247955415565203179905219018527228833384202393319065663686705542694599082113078950947500273915890409380537947468193325536930693730089273132916162977057156002522029078687471351137230387468353232706126095070329636199459654118857759986949873104667938006519837133683948938215970746204177675020874742050685401773238441073321730188417053664215096943529699411242495106791627440647515465987295218717476625563312091172042044998644317033195653145488603679026764350279034213141051404777384924890806148040593914752050424853087020125324080905806175457023719026686360730937817362398471600470398115408511396808307638282684102598154827421604896077745449316796845660099463942411514850922349890367288408329978078931376894483528840645210592134179490928891832547404079144295601465840582642346624895860133282399783380086833734212929298083046980113496282423937776497579230788664074346454292690757109077759820754053893957635621528392480534569420436981808908964134373068403953618809617492317139566487117889261536305935333762321169377157451538576539610544452044015806732878655675747855177378229318177615051783844609472417765372690914902483843823868800142487608075633691796457974727087523350624501131277873652939257839514900214568795765621550240251602543452196225947238960006928172402469451494137775905785168538130034704636879052984090167049683203617470625633340117220412432641695996185785263980034243963134796457906553829961197161732153257124874625587731692053737741269053330582829381071745316417454579598684928124223457266184836557262121839727837838647190182515653932791945780120887252663322708755482034765663343138967813481844161647443401861704653790282840281170420885676061798105989612451775157312799498609295184256301677876028525278627488581060153878218297811418489836657035281638606258229827927200344376898106232623547442206780369115891755403957443102522407272272005384003730578558353432990925817796526314505875157767435525737773929363019032232315418881857222826901739072888500374913877832321984724146012216354024345661806485292963071838967869398767298703397696070252441554726403955190463078585703117474665060045632834984253272872019667447734370021935948788919154677365034665596045152528994489371515429423854470683816952220750362319069024732230332446348460521384973545318706544025692771553322207089825552523905412927575159079553425180103543668152358257112468235139727666658641367609833159812445658748052776494412752094813269369272084754933651911766500694156831272800927930435362266447015021289220002313641028777128968332348668652700671016137580530086628680409345906568214597297657728097279888895670828003263744443322279792911067405874488499961666718263891602204857422862016423627278488782268357113101762032515933073970105483906039024517855871513882742492502434144829510649391824822294700550750690301108938199587107293680056553737810353830360108847702843393886479611351720348457656227141577197826242358977380389035328005430147350969253894725513031717819792650355887351284738094342597138804665243903997311937723995852547524609623744591587978529022655684248763474452266184903219826337967911197333205965192583308117885856149487170698588804705208146196440424591291661313093657564686839587625910388233845226174446027491806621832011420426037576752142208920588791551135405386008928452398042702893205762384664373186567814763251808414055853859567730244174866706545210444581891883974310918518932896306930517264814642254167350627345166406068066152824332115899266206279183360402755735513536198040440946873427833770536247942566220289250914415388813458818166679115472870258795717914987229688162273757923942162428662982415156310131721300784781054973048579075690635153889141442666930869135653612328380377415475639487051277156984209130249658453799752766069582017682493514360558908629051349691433051416803614057634183784387241744201337408226225894938328273610201294640394561662272187125956669269036552730770354937394437407022868500274536642965874159121788552035344998883919698453421060424497926795932922316209819000899836312445165202496235908922450983493779721562703119978047619002181957147755008798941158922063030230604203900088027235633542061088762274783469932276156235967507128028536520166440517439432926614145296172069293421800166388955631359233137088854161970892151134585477134574294411427670810065481833820537142960914202370193755629524763307530949863864132031888557454425275205726280879726153300021361804872555799422266128285422886793587009824484241702451154856305647101354642831781934015886050075435940242373718932309099475786207467979191408032862673314392829307142991528263887004571297606553930499981541883473651054233691694578456301582558569461290133935769033806818190481177733365030594709791696517053141142647106923375178531849134210868472307946365349421550724844808482890023569216994200592090228207500635971033401875322147464889365553179511969318081387946394568814673573164228309902035772836330228095128442785146606970109169026050580327359716928255793683244308898630578334062557215155925025192929283940988081725151526359739636635031183557053338196619658698380422584261337616381166904023598706876652397928650722815880201833672564993199865211985670994840739419547419263394370996772305324360235213093284987941255306553484785063987572399014130556504989554717612392725418585081654960131022790854699922627532055124357416723960681689254898840188509202396621289624867543387220077587330452757540493940743875539967148387504950020846607907095173287809273960568032333927382762559848225741273468495196244016068421356347225584195221246530144037104018997283043704441828645194292503216342125287493345570836340441539222316021730950313056350493249030047191071239699611705730201740574150312397765917454477915505064229504198887568752104508466008029355146758009463875680382330147206229552647525363804603142643891049694474971632976705000264186791380568782341145721685739106550690439146495810151556589455987316071644320026880361711574794307638036440141577867302160069580508215379510200051116489637377447533385659422353639497727157361922629510494727314685568117648595258205081862458343059686563895636099099365324679045888158068269420094123006676815534119129571743930384449233481861228117003543645515780117883082052908102986059832304122140045864394182809171808895000365115893802523880036814184348091593464401100422866596709344225480953709079685809084006568223263516636679860362126772869251180620588941413417579696174009002475029457797092131293756852324916795608772000447101253936714597552451604131974050112353883812604930646329413807180741070228573509776640120365833634726991396819652779105519855119501785926991187484794920636965571470139213279715148419849323371251568584990134238905428766841472614094832971194636965959005266845960060058972668704995491769498687044649458828691028621108941236870380887487639195060857491653070750749716680055005241957282515263674585394577046580569459735619537762494565335573933774517057709481681686177858789416369556817189940464289369673969520685485305668941330002025852805025160242344651760179449037194463243825354251855623664871271456116002600805409190124735385491810385604199501104008969482526515329235833137387688825171347021209668680312262011041426199848876923584614126950877979150704257022014859940037677100976550057669528403362001467112604103975184357203011547541431139490944521578876325928308792421164080190206654420275630224100422479935271125948419441372181732501270132866329434433086113557160296508587303858260493621029347637294020427523897475210987202677866011237994074655770568262748263750304952322269497231658893268417360668331707763577698961796555772036879223978770668924631871481123364064668994968532678608809611684730717911256604001890053339515172949162461862023264754458420174084552178899220250597549297292006167707767259054857412337741853382493347270176120561060301435007423844822295100981788326035070417486936039580750841159199224325041963797249157399585214258509996978837062184293270037420603150986071336736838727790224930920340776807939916497510721782553320716269129283599472164703149104839230919442202681896752837266384213192866768993506366463245301224249454828673018217842534297180249803559868728530760887863398571180537665556902271044701409997796124596064128225067460003952665768425079197949198357671270886240397987826852328272667699372343633452586411460792690291912106249248083190086798271646143892357904794121913963486395131268889879146465942158557304302262754205285456143858464461267775917372916978534551208897365105112840171606623315507755256158188414792668331365577886193528500121915175000490038274724503946557308332829437366657018722139721274552368352304206128296046678927801192646875252556178252772021993693435122134703259364328116516164643927361290944753277402348827076282089355391629492470515243365785117032664808814708275715359594095852109205134024714156316094473201216108108085780186184956195253461010182162462737018027999108343620763692582407783440759936524317357222529218622261871264248440825376553864606754226046552982491131372914509024869574462748995417573305149778507171017730250712080228403307589089754423705390448599464700305996063861568333344567212563041880695962514281983078412082749878544903225108620272281229846587851090672508942440215445572674909897365338039581620328341318247858658696527085529113915307900135424144291269324282620020503636891142380501415978196223716866503789142241344105064885560406566217366164484979474894378007251828577955021471618236096126974271434700396062488274893782173965388293350031701045544340508121281785462155001193244349875657044171384704518872777424266604275510756971464230360782379408604935761952398436012282070746861668074805077458829019086833921255730900795873080679121776588280419111538084064568151735436082475778283601355066133122487964016185768695019427221720006772521111485538132936198823710217432060534174338840278882965028279618152082207562508965093692956969718680419744280949444030522863899876221924882020302118715974368855940972888306756331523662887172977631625754414039641687794961077861804742428946622110270627949110150805428685561986097861474138686862470990695928749154150195719565907646756389217400439372598625348649538937111325612484219327790027122359931032615499625656265501078381173191816507357746853899376288053903211548379198730542071771259470460860501547184875212093121016139421933157640478837473806656362459802298549429100719996629603257560601121165411190133886870490798523197564485703058992748923608861809004414779397914549781410717723779096167280328699861816638611429651506324336743129659602610228160147676327150564087134856793206699033766105282733718195820873893587570299083552069069549543425647963938822139412129248525519592016267457615281536896880841913042773960163422632171798706702682003300559102176142855485683363325499298549043854999880664040493409832887555561190581114681177614072886558050056496315269286929720513615920870697594252671697756707391749621560272064976335227240388111385984929477655568262294747288867814152874178542718622992510020560444271420566335846074046854963608457820171292859950153115254293119386113477745065784500809871107683103169451818949174328387582787714013802077014649166421365424447882302988419998954431541391353517974058170185216851166206816834160295711202057407690341634254361071815234675215653038719395786388416619694115701701682627479142636946442516016327503341812509398451342011553594736123559508244483639714177575311281406591689171190725218621234926464206863220759376868706600514750918047825299355494059927818834976729161413175587234241572705468069226070640169625475373970862294541252891172161402075721233688360924113669290577299712637719408466296779398864247719989529887409346465866938473969448614409555502907134577355980443189852749284242514209581663217940240660977442162122177003153436140192680151195976329244585308696027011693555983056323406379314304661270345638371584739833395482425133512023011112309727699415773895704069108684502448699381142247311363843105534804182267743364730487964651339261567248186000142374856079009144326050653551405807681888525677411626402656434261510384451880465054227476183878473173000603877920659290653576706915969943811257582365106644639080999795819957626194633348697421191543211368059845774071011123596772286240564233320867022854941562735318531014476879876611910966222385093850870615141763325367236479495509881049141662880201730455864179584659937429118531208849929958606524263544987645238717693651756786107089502641065843115293615901834700894461340955135067826838090046097011619386742040580919377115764815752286160687289200780619556592748901792265288422079943633098986159761266419470902496131441675377609050764829866030336024382023724956520357846945545148605460227564813406510565182048661369298670011858402945812557043429173939772153320776339218182638023834705051579095266093606751962104646094555056278702938215624588111282395007675201558615249039269404195743128583976094596792856948463562256346908760318193417906701432465302436769888515903293751751310394984453795012925766955782431477662118982933114191340363255333238229289804265494732748823075882079741784844101893387137601233989461915579154082230436364721129539392780545718256532259970334415731446182554347579422790107056520199232245609079748365788370888322027358070321196966853880127030559745888655241319610794670691585893905275604675812336062464219315529397515410938303663342559286526031064924393082596993421380360594835321229272215785822967475351555019130715358807281718525242809277109087075036563293395686854407692052273333273757773608978899620468274428145770376507648951517630454584266152862796599328767540663128803251108510982533759326385434925946809752298040442734409815600712934648058608379538129576223044244090763425572212474669772067879233285127683436748632732396796745453986665186932706278285552524838561626484010734545543447687852247369773436005214912561334358762603943036136292820561650565566788678498592814640716480836118929763885803521063338403056967298892127338337707006855341952378756672804001260858686709200135588398015779743433291461283126506152209318748479986704726961206533899171334791381912521725874615314410896197759988030334076353462895308093168048824339541216852891052034788146735521239097507744227034355780683799725186754202941334903431446712421546875574163394315200654152468889028904840294798627337045564437242417798817475010753213099266379788667222585786123720162792210507007649771277620146302253478310632854584871996637664144284878559666477486802571258418167124715014941137589265678615272358571239971851338188285432331836481596891154868804858302904408804225914782238221795041029127627785073082582015808786650316116838465568816463516235287477404949601978008176918575862773986619961984619225762439601376770245170400700066881732212427219354311459651530165590014225121407884361170841943712432805461594725278020760554058797115666935225776519162391610574874867794604531359329543771123949557656427890785591740812818130835048336774853696662981239759208509856700184551622220654448113886799941147950720573606161644974243073930197704410162370621359867643610664295562706611941015972669932282282463123733259027090651445291566868097262995333763928393595649191170549149935371762714698162788999746154150889938891533372917258823260793657800866133496033971072090848435116320735364613248949555812013249850038734049306747161554469971613195180323731137685159677384525675648994666621249620074199970361297651292449952072361734752451391186222079440667253116851554718671985217736073831671302792618285990376493292723694563987107559577881614286306049676882428700621175080982115114641492559206058204613985171425262766130577698860892727702077476935446210258919515928605223707788063834757486012599088303244955006480420372263753036137074844587492978626876699091716683536517144977967066695446316977794284284180240604610979259084728936386236023947043814556310325841893645692462717190877178042289654185413661917211865294405833215683317404218998902676425849672291676607529476756084938445087087090833173244335853725309216553300992545681578126410432920364296637897226649907325224353487590193216814130122227316697664939463878028980559428184066582407158599183257885435360566084949413605438383793811608287482455952626683606152041948764930373851556587440691839375966990364449739909226224974106221715043707416314914519904776379769764509230511379265647444555085094801469644479429836216345221832025750235959860599167590977415763504355619555695677532857626411904569137782043840974660065392297578909562389795178613531364162735004306475110646975195694795827638611065347779877289324168812582043635857543485872907518534858458029334112915504607583378437808635347362225554449678027213955769644650369290638926637915545075671467736987370312680408559435041498086240020621795223260596476808572234014377855382429123392988273121248027826941769631845217191465348789897799981242704919455876002934205271100690562340418903963788890272073826559337853240036192958496379129007521637839474269445577004159227874087608825515124773543421661793545702884422165031470494824858760782469227035941359302331470832467134522671669464899137570574630096697209618541223233634136808173089450436975175903182439548282206204434694856231054470674107944381674153932654540762108286557895167441492138562987657445219865634435053641031825452280508389248272623830119320314425379952407294508549103665586664609598215488930409201387964054145199580255841714459591491826686831819697091554427633913851143258743102705811086684528580732900437999028191007364022332166362685047810540176404039516856170148486495118896141132718230489292551926792797061138361156419847296059207881413946296726811325013934470120076720156004745675118264895196926273002316565732607442184041913524223705919500850971467877493791440419084893026692630828037017697725041304922962988792011448044110559296296212861833521107744862281449045881426346080442717764650367299336492124387815990421952554689231027091773317911896378082997614096576778549620170097330029247136968668773510492309095368232625991249234635956367206661239600263467887033797283237682431066659975569331165485988962894991413486982399540788599606514480350162306640696432038415282062945728977856705639873387865800998499674928281862448460944394383637128562523387925735153154516920312036686422696148859471935616186668881179716397227490547523001516639138191930966333964750444045978812622144669859836145249465969200204388161631221872333206680095475832541766123489993616053739884079777280087844927849199213931865414094703761475142164237927311926648058988957063137164802672893294691156912414962380870783834472257446280847168549771152659094261578626624981871592694507302632042833831320193536138317680357304420106175312647991796383255588382975623276954912463198008471473485078025000998201959658745736754524430480041687324198366150226487769947438188944926604188406977746997205290874140239227663953636991378904521981638848266361717687433498971032884287145030108208740156651868623320644326614647676732959082958965883323275322691070408620090549126852658626693180630771699799940113154358520993561753510970777694576286577086989628059153433622545547598209667789035201454690329514033287403559214042474141069473839825771704592635372212772273362226614227566304345658576768595463033771058555407009954117329134215035456856282404007557415917614308627257421875712336116173467785350976338753123964781230989276061920684177606192564952742952395349719162550578246032879213510978815592110233524165601216499191871317123386797283250876681777935818114635098246715669596990008676567498222831018613328686434717589865427639658679367690824691774929009467514714350649049761165461588758974527908368014328907489640931843454080756476165958664543390756124628557238440912036002940078899516156741319928865259148823549696556750802147695289918530429387424762928397875070739079683158293717774518713486099448521116593140847779367237963026398438475389067198518672958803328754201475775130943509494532378517994788324880073958529939902574375358757033821647581012420831518438703176654622011928326898152551640532975035977072922577668915806080499074161171172653278139648263666499228467053430458957959578873534239980089417208965250312572270476537526244705543017141408451730971726752938301094727556044906928234211258068998205594287513947528705489619932571414373341423072743637523847613482751839282748429834124364588188554181509560767877787665023856002687429796334383023575695435938180412082402124554653259626045840026216274558010340944324154805362284051437690034205711191747446092348873443132097602790993497060982690267210689504807181134765241898706203808993510707163997446601446404082111010633421645455393735601277685906529333330644917631490975734176358145948979734116523910871952645645867791100325118138923379564541099772271288846815246553000716157840762250374435626626483839714356108554738571008525439702320276710577263184879096442687978640709759352371750261424963694187535102245967821280404589818528562686959615178696022431117811149366341855684068005743014518159755996845816524408706762557172984548092445164730932529528662277407855023388972285164347633684769855030762289025168982189702406629401485447889663970652659838419316181602301262619907493976061396589296947698914626842497479330109596942024188834843713541390525289268661620122000836651928368760064844812291785651437771768255850501408019149689772881418973314673536540838273440660423736687797918232975826193633795573956735651570201813959778795395334810378668978324009725236742082919941439094243296304206309793799224619388074649391292195699388382951403937186009445834545171141827216094680180550192471083096400216855424633669344188840724231144728177415989108396949080784882773865745198388544033207454170366198869017971468974456008580249281383892686511601766612280819366899368778740619800986460390961113065710932073680724467250897779555036179309833145139054010625119106947011064055214159085109018415223512838218851805942917923273029394298129741321194887191716295259758771349024749194918921060129737127787199017099628516836818565868293462553043672780779023906296773307350612549925376618403029531329864388475439685596498817645008750361737384862401593297642315782474961981243234276546613485763479212298419236854665068880688091540540358501542114016512876807893716473916647322554844595641920661347303409137783670057931649294912910140900586509961843044720774678889236252762962811110692319016862057799045972745238948611939085934573915870618779759785281288490969614196179871666838367318874809125262412748626531404729306102863133301028283671108503897459670456402306865686375142228344689667201941046176548348822605558001705392471651324460615205642728843392865609877605887722787512768791239909926256500189338912737502864251665603304753979282876574879059707255809592581671286731248058687952812257414641391192382485979259799362341236210476756098741444435836555361452981354349864731250958458124458903000451717291983580159847756806453641469210371176310471299102847325877353734165876484525283217062585089683980594135652037281408246041566793496262298213076097859987553705608922445939828502108808681570344740161900675603548501253638947998577301000286234920713880397290841990182370963596282183487896845740625971678646689656208079546080071259576049612576297485126292088910463935964823304992837329586304162916841415521402511679429071835403050930929369617174505390497322992061999013646156645312402090736909542058433886872200382326347364151194328485511410269066643536225587890827091995172694552591327777670530123794537535894900433022575172291587811180722697129045872683720479329814437568872820895396705382987218326800178542824933580103604275542176182449199243527887371051415696242782593745066659983784043410745089719596702545236414526427021299527588408011453364233872782868083902517049538624662903475660667307614020339982390655003920072568039583818676609049956786976458537106858243588423052975234793424297716647421418581200279528492175653547164123537926578908123293144874930956584375622079916558245802272189351464428028613794282562782162548401652186194233159035619948264993605000082190174787131396395470807204809176050290910418140261389483160014787811884809311826279299455154343983746038829532613494976307754035293123633645422818592468850778395789795372554389358300634328371728793584474585250754816573294040293813085775061639577576424517280315576597970099152005260963671148119540956164612612984242703856978430790595952143991457362624560710190962998281251174381132500169269148291393151837213889887271423899676363330760384440012606403406330004274912679032522928446535232132294494537527315625582871040249673165486835028223184546850757850577067833539193236336712298137185618139014677574041478023650424530578951193893102344467261877508357034920233060896386063383107179035026148206484111141890697223189344237498222562721115366109717562376353674230223745777423817111167064264838239563143377254364171719291509222270768223130011021656318321388068259593207344167534038391459114914278541733991401912559435625256303109424329129770932959315535275093682854291925413015774866215081261113901342820065702396789915046840767064204850972728195896219242232390929183175237706023523933603193730725219407795702820034839625428692502698207039399461143757951573705902836605838152896781813364969562537874946674327296520957622725415046982212447150074005039483953949512920962162505967064272454295950262288424067835209228552824452674639724842298621620904856971268174822792247799767304032269465283260505191771262877751932404040910241566007750645177730749926997404431318627420761739669622276514802155460700406802139040080728176742430987079475596766146091124064809334229040103626004757759118417460471438849618885220646874590670399835414908894487625166809363968682687979789614735508408054454444068482870836654011944012872000571754096743150574348794646334032198654921583842414554588098279050725697912037148837213945696981162177256932077080849215936796973048139416904250883775136317111659506425814739980568789193674265570746492132338931972802258893844924720508110400820329582216405137712276363672527991256739427576123712927001572553259947999645798959311512383417152173616490157131835618815684446388468422602372623324345989884509247131483812857679928417605023614849307126712782826075557673925139977533108973366779257559454461160875444492060926868871165161801993406631327915930673686405327562049262747949209492254159475973774822321635094364587043165536938440626310992301369790793149186645264934835694038271608286065619929471175239538509340659690719293960512569114543035791565513601554605394453947852882420458140114542496057589467267599127789818313224027136104022488308020577697035644099757345924092928892379159313810351274177257914398289226872951711525174424944638690705582870052535461113321522054458177462861206430048952519104330718051102564901344027437194251098177217217879732565265116067570755665605638689909190482306966053942196757984899844610544023759121597228825289424605707127515530951862364013919725932490366721388427731369305425298471856947668714762022621428442116559532166930765729722576013334042224845249264096401689612373978550586594959808646829673950700845502220236254086381977735796323032812331078078057037445673155211586410545367374641160125685798920566728586218382622519129122402358821541680021027253633673458340306871185659495788055983274935825730360347674495401898401683751275657824969462946956441379606085303368418997269889887995127689974804308175719716599802122721053729837407890757853981941043103937855812733172570750320901109616716917781670794775023490777749132337938075734362390958383035511192304294413941638874513801135497327898498848814179789336437305960240622736915380126293780479623380198497649615016429689161341364884790362146832889400861133836144912733676414881489004723000996111892299601159104113578014815713136854330480774325064210914936732727755344892555811023880829686903835001032173170334796600545591405855872615878617571268443915501002678431609589311752225905572384581708837176926265521190724722922565036484434532814196715312785477452907356572415954575562200523141735897290151653015906309235490885521648130849694617871035125200338312053060499256607991291903926657176367032442345149127069832260883147927103172287284448314980349725621061607730084894239770854620110044654390850411828964370252225069356031691320101177954862802175995589510658306049337524397087141356939760148637502654400103927904334740401989385634439689796545610436566233759746459454323344169463710695142777708011244950892534121549837363425393625671360303507652268137224057873117866283067049383125547653631608336613745687849564024801922777860749016657375637502284960096702834227382121513850326446745478054641745766870289048522037274731455817874030147898218388015620549085295190207461376448644745035109394829611051291531764674353321941497725664250594406572577662163073334419702449754500842165861265825795708728020178216161133786445106846930380759841385017018111425957375634043156424568390717167374241440261871079625053223989732956095527176147274308677936991101627631492978064940228287201302561507776613985097262626410213677549723951390433749158510414612077732832393067754200305378198115885954658992526575777067428098787735314068523472530909732915880924041378541983040470855742998159856459966477555000407051923649137845239843365180806375146360072586477241482227764632851602148820044747420875613335085760632721391754768401881808427409081876279768139118907022976362447532573870109911255920687281027831236584300083343635578785635302279699759388077566650917416146004605155177524741647646738195109893920864858252153362748540097411993799314792984945822612235915360200656045614165343118858352337542559568229797113699264723698153975202553609149833020005564687996704482850863084481370356657349154203515590330809844662102606897157500345463422968028065719642239008926711340844869587239596990714547887758887228005459489851875006669542729423714780745754766163173344170902672643760559380933629384505993242423112713864163116880804842722011240706900261509124504737418179255691790239582284401011792337692852638782039458224298069436794109244585957347261918335146588994860278327432165995205206810039074673474707092191996541952640216721836705264215593426688113596392570001767050903494272275911035993959793069973439572369742501468180673316493353157850074194984626334734145961364611655094453673212818055974831332677840689635637946624283365471038525818179284954332527902019294513733671608509809779757147717936284028430851606644473376771214156306277551060398180378765972415877697971907823619282823034194162323225197434803267233415491995597533654793313833595547514538081360983372232266352178721708261019946635178858449615859145193746177333678428934737607820638013097509591075544005512150438898211750216571881550421624592367009205807371961506191983356697606069751381758442755798233882897151059979968773754387277764087419273480553091684203248614468988190237118403837178835963371127442786764580019840765478864522810072827091039432174760443802803549262776036360703274206401807745650210057286062448925921619890036534989282720634761523731029093633070490242512915020566791159153765429009047539364789492953809637246187142819039178271315306174512749894510797727905493215825467828500613344029977559754529049534496116859588411340190248969977357907859698019493757213955159983819092669580306053447674160409951655186776161730577365541892820826607389638706713737228326170848856292758572260280797255364111548278918778916166445788383596634348918409401240385173547881695490513077577988560837901653127083607927592246117649809528468542393986229600669795237984639403863956993103626974310076414982553085080066200804629083926926757405449143041078696266790240832738647434738131408929470868602209900330315452214594140211618645654750645059575440929918981445110652079750066302584947547600193163819104908732617235756511046479370012461891117589395713106210545911507701330131105827401633318400233020759275781296137168596824991943293194947449024158863009066307766814539045359845019391014236355733301533939721404057905598303195203901683104837193432312992622978142053200542610079706795825961147423377822537083271580516126843602725100613645022849879993778313651403800294351331017076428858260184727583290756919771802596229965884692298396856667074226091770276001051778282378917639037921711760188636434430659843005529971687673416697031129003714527725606198679630463537879195653744980741848084823542770758017132941693093922794446004862195264838281864917046656513657158527432283316038188605076197594542519986232526154011462063813417904308844245283330754373209108765346922863487491891967760581293233856537513312795094723197081038858174921593415051653206363232201453641835205689460536821286423905391756227096664055423839879206884478446585775977941410862813330054894165968276352262648590160862279606259060015493712726536246583154931382466437322456964937302237519352649461492004280857987393984781509167419037188806855065490697960009330490493377243991610515666010995667954626102705507247034345596320759454389300771762009522247029331059472041146421754893148785249940854128995502314650890008211964643659895936501567091101532282779899046553706120937518959428001696374808122260094895559070581906030625162022439188287588445961005494237935646336836563900239336252483542532962881607159656631186347518616401962469336972025542012040343952461179477733247011298994133147644395507200771324427624599094545158095000748616975454421786635838878794061572932347743926563438531496281868559156698808048008138525441699733699527263330963600566223158672604819578601595845441776418239527760866146021539581596011048076941516290307747820721954932239145283372560681903686401517399342428418254329556041265966220516644809823637474198547382480705786413989312480258464126319103294673128382227106511757803795757684865425821241986433921874667921542899282165772704423722586417455514334753858435169375211047532004170731396853228586794747244210060455220885359207450851771266400345594846109194534644440092732316633586324226554595066378107961414793531271340862175817626242598460957563307683593425963112091255617440291944286946765162000296056220142997124154092261297281934745521761281911156360144383559790315064093953107508360397711472726159212041817155258985932719950745595154617059192160037447893549710130854745921358968352442264751943553043353118596973971996440956777585774400825651772850772411441434501192210116759527750262446264646565998174508689965109819212442592322801802183685131067143877905409852755883589867241634477553029280099224134371428973281051295746082288959245350776165996298732447969322697234413272425474664152072221770887461183480037239145837056252619279101241528350541031642296310687743193361831942999297062849550868405449491625467892544192790837828943507614136589421666595095135820851924026885601271095085726530805694867397770095295570423518443186338670184508485624656861594209353754117614355514406681416087767805769557719441917662714686758485623511615546520638325651410599306648201874592352762874520610744085395910103474836968444791489859584750782903304455757352806629876547595575033479091186733323345338647078498231907289543108177956170270588553438340589688512852680941832767893292910547484440625174488420158925163757010708171381262351540441755643903401243036222751903493039887436457321736149416944519234754789112916991199650125013530391556570802801059261594041174885198952484627748211810542057411014965723257110557745577335818129408221004093578256529852140055783811482903071535516784520055364228665278940624197063086718067592714901254987649170045634642238328789235779322657407660220491580408161681286893318883198054588025275791667610920380000267397039605729605034675673150363847401462950827718757703502338062591847139237401404937239975272908240146909298979586000098126425975675672115030229611574762639052151693248440567062239025449080540548970651652688001599849305158572400175676602476304304579761548081738747324929852288458824278610345852320914137235815496165404655079766779964730733527139931964268863266750970460598115748427514017432296621378173552074999414541134201037046508110503455231066713581033285311790477843633509872411539726857388933613745100960364275305034354838727654245143620210226874324754828980126591843776901025238967103308055782492243087118724786715943769916076170234996971953594335615091066269917489792029996836515402260170749236455856198722525807327348865161807531664741215069272484379602441608050155341820822362382483854043990588517545604357547152886781281976447466785135753712129719411555413931598486732817423666623706409898280682574876312536219513733677855658491796540965154076185606754691920357221047771511911540437689744588310537336790055202921769026304609017427173539186681730909112972848212636225554063727854457885914771664944354868693182660935243584972895352521081068565369958095126162028453664614531994114815566415011072002719959753283359491356347681890235940527308821038185269643853305274639857325794951614193047027472186059931156633914925874416815431245476346879559875289659378998654290582329180462348761308582074761572827332508903726095352126838625554678071015977210770562005325536674030788807332738113627688601546541895354150318008217498100599214458509181984874846834804007703146224336806098493328131101285537041452905882839774880051791137800278287002066034173226611303205687190530199272886891153456208228969003101882672740614515467770109854687935231280703430694854178013263421577595355781047017233198254801254934163673086517410140056158423697719147054774943957161853529800028179282648319132867734532868731852951084012132547399042859328546163996072211898701458352307294057439373957181119113982357910653944135367029005765210873752030710425804284019234253213681744653944574365294407759226996127931971901805566559712774801988104803836466547685658821736763821855879216009047151972332149970475517127365745219175112874088376700345648173337973449894567375937330914573300039030126497584888840268912368185083783375494106704816403394220870784642305541723427103930259729052338445402056820091306319185936826412425150041261612322653278485453145127723662803968413617250520180258416831596645250855184743076348264190520649271721739592165641988142198891155174205828259330246980542182191936017780007535251026090305852202630036283880346804695962418926504521630926137779968895189691674857986335887161734283375467250511575515783505523309509171096486883217371132528056422988335957342773654708908962942044926113722078756323615746512557193799391794130734369343134525506636786060267290318571222793299976273581916690908744659021441348182213511539057109010198087240002697470148621585851621732817852876493575861100628573137184811104772020079679964186463067654441754450706617306251794339967219988664964779236770920937322563551960339877725634037437265357579929188849847359122681803467296612295013534383723667373579120611627731405200851680550676316607207491166476492867635395671749064170369148817998432585757132877359250902495330831856561981934820741125690419134067993100771299367422189277396313764775012954872700905991942936788592811268283187142937744173896067385079039521056200970257704607852645555801835779564609579292016889497636011487230277455162736851502660580576920268947063439980949648979464597915104419521793809104894591857998141022711807957272344274153656666001317231962682660566376734932520230918997259121472961209770111525217919210839863720481970937815338292506917397753593830051180644142903817321285770501043342989355937174124972696898445047007850695200973872687326788671246898986546465030369088047486187770593579439493564335619196600882094323561874708460445289826430416403651460358176118920833509689375145175120054540755221286422628158192427244919198324589733422422143878410212954210575927793349018914296585253889178081693769856032517329749013576110924173938361446922955921746967449670044320409214451401431905896614091945169943795588172673979870001828300526448624075882108828429773137391294014445890012950945566467825251864039436100866752571982469277238785465314056115251258267981874080659131132587973153249875504639040425657077630153873229381245060466970207612801759132995841513100867014798150359992559716770627708634268433249944719407951451313755588412666890762813243769881041659757658714019160626369626571221469371465960192421890548618052887340636352188758966956563226722528183304772518575893691430522894011779480465955508704127170124831205476955779226443959738675643323562507340562201984806968592214530917384830025971761276273158859952691586331004966718549471407540600382677068317871316419176411731244428072639464327628184292942892650237201247165363518037840088518417479846816256230872578724900218742455060067288380195820564130084052698358561129350252317750231906023260226024745134199660126184188728353398923218902864724124572474000210177714539419283874319283962975680734266459746820117439806728318731263581986054884609877847472902877598148697465422567471720004462389493704205600322501416575840959033573391658138466904174425191349796488442067191547726876308709519105756009755458238825518052281877073378988569339158527605516472759815002124227579968653359036370175603531560792879176247995207688374835190990903429526805661082036310872220752166501588057825749463173723753566011924863539992805119948393159230581453559421142040874054675848739969176215092480338064841281756134937495945741586700300887343854482193632826562274869860058631557996045977742586304168079951173445652804959142785536150910728798589531925168301147422087557203844370166953893336089677086202707097919317520737824207188344761674377703246433121794211654068782016206015268388183499073018114102291200942969072008847208518662349198825666729843119799428943898888828538594465896020281998066446791612875835037457474221570256706955292362308705979598117360793400142439090850656595120125743812597612922490803246787704524983864578524116060669264160294531490270350625150101503772064072514084845704145130318501015092548757169077049117134141791412835266730976016993076972580129998727635824205515560484715221510992810880108328496290509948837633676926311683326849525120674256196620779138716390370472568740491064680526897645415350872373926731700009316408734864403849962637673246481209025783936707264992106914372789938649546827978290132947514862174755279644863100628612561261041200358125486163179931308239956319368708960365077712416880306434405292557170949981871061937427678763994127502098764565901209220902753261327004483207508573659155089706487779233837607167031283317139709429470384542706130401558584136903151782136504859674715446261831218627618920467007681821202372772521513347511585232040027362269237476748751488664662213201636701569172615338794085036927533719138105961081846354368199532400625702350348406363561627553823236307759417801417382850998656886632562221926364358243510767400755760765394142186929395334952860950444031946014625779749561855646232577947799679385597672606081235188193945125285342539327408914942671838391328364356098489850197304308184239676457731531299954756839774319529091274521964148620289245451824069532126641783954992756879863874750373616512550756051200666082467805397900628191054155949939580684795272489503455335378536257374945126631076639988239695194560828150001518567831229182205406359560434899747567836188608488716908078212029876255231139151834647645735308522286917098089334665306033062059872222405154845203511689304861606662285153234209710404662591218078453889753655232834497818171648891571010576881530857831733538799754263720831833123320198505459226511484187886171238426506799531702495647381535634649786992146739218456265325480428501550662805079992867452200942578834171292959346184805144088630674736752601100485069303763033980420614073779602523411154427004715935810273872999156223657069450717175678522377168964124936742639220963605293315098874527802017288649923570319133572324075838314070124934198956810640185614004151965634000414720581407175393606058764795662777494401551304315846872367105874428525685156103988682162327070982560995892764523406118363223848944979684713502295967497097652562054454098251821821104036798917177042746610330839511768082671014514985435786802162335350432330863023887230063548260767537843286052932569585256815287762643614939621719578742828689868147835036330305664771565314214277979804257823805634464597872957906049424607625952533854461827548483909500754037582893203657231977533566269988179278654013533579961005339611763724463462494458509403759060278364139921189556707901376610539164070236385013205565594967352552832217894076557977340206625868994857859211462336625278384728365210355604182562342097152847115401005800580174415134008174539907329766009569183490890623410326107627100531356560056916084924160755430276583174888365638839453667076599482834121713830073309909778742322517823164517491494847749705902957495132838604103385736148977812748841077120925131731287740253777235664408150160329398432929919930869108666158875136378703192324347793129656397669487507370534490570160537101059512898713197087891493639808454156734047975301289382245545539929914901839326668794927179833085096761521703045843037021007657711990215036393301567580775421329605694171657603901616014310680154948966714042272487693883022655525263234080744267800147900887503737295970939137839354864033085277130923072342464919324524745462635936606666386793500252506392918149086462924507350973906603460534107714620818512538052035697429576129057391893717832510621794658266974002470626307740393865998330192856225035304180871648379580341756751943308516829935941927376758729521898204628190180063883491850845309108916461480626588130501889420110524379426287529567488365716853580330963285117536250397863481509949371641104829791889707008970922632623520934241056159397448600576706690827813683791756655326573516440852734838271091693904740972213738795012196943663024803293354218699099499203585082942278892535720431580361112930926648217922083549514316770678318553062028025729579141696794172546072709795386343110654398282235979955862935648327981827257266219698882036500580298031050651589073594441320071621279313105962742263826881317037297920271389644398673170400086867466361763244176903973216780504060087265710106991805219472143789622585722653526796663605932982189552095614903619889842166989633680501390661916773888867224897403547775657328220513813209063722725176027266573879954216331053252892310762249754478527698240272662657929231053698048056103238525487752980685699928494822033949761016135955161127632240497219756683604126418757504405219750563292795183915135195109476713667480017675712827556919962194502778624897923145757660122622560868081903569994291823611462635908417648276905960013015187216253218867744202884192496129491312840167790135613985282738381152980877073349169010261901271601877596328954019404509353550810895773150665024243244304702235098021382890953583628013017895826980211292681715698149108580802142806997433789298395209725869575032525922800969128968996134097368931882981904519290360847434502372034111940672060292822170721153573487024550444396696176806060647932383346302203139115013120053313249323843869071664582191160041435034324863782496334615130363032019767588708257348442027812063197447961274389082618124468846465375278268504036384281689884218088347624488043388258656730780003566302265367791236583108640457207340005350233057725339791020611462636681539703562462025969053738533421367937137213624975561395607511785741187968629294209720470573262191762393533439387915863321474906729122162062945391027004208930533288444919194247383460204152385273794292734415257260003528487139496044348171463128647693014948120084301135508176322292790807058696067648300355938074024444021839353989684527990052060005497886899887555453102398293350764746447319303177931910886900228442838197378402013522046190705949614797893997075263175548969262480163694895223869100183032444826655009484832528534733518028410034646831968677867585444985656402227194880679068707157238762526169246152280314885806370091482407371570394447529478424164370947428035357137773685976863473989144732054323584253198884321749822693089575907005877119275228774827926019524657139015371730907281070965196081508414527991365302355461784532551928090963486745241152480342936510259415477132470172581058585362563257699042816159122779816727651826129141900768256024240116554243533508048234405833142402086014873375843919584629901961234255732092979384993366971009525514741523053605149206181002356355427731348196252500919800974124644909453053728509087460887725641568787556095324618459512366812353676960965067763641001390659826318101501792646745899467017046152043734616627289872131681296351536885093452386756186906739326056403051575844501659251900181365931556849602328374094456831737640968351386134810599816969929394281497776047513366923540780154103366259640895933735334493637716672002815505504644886540482745916552581425678541177144429536402228054605616189165870354833542134848947448582198216882964914521767501140309558970499046587898813100617952573844929260656770113372149657053465548659449156373224797095972569605288011079913509940292038659423681668442338173054613707960337376366744890116696624320932681888374455659980705181008227633864544586149930378563214002703328788937609392115757560577822003340873582563788816783632897966165315812929345643163593060043202659555758993217742121470994545586477421570519778598715295820683055733129096239490112671103859790989349095795413205230762976381009883242110301703755196293960725144862756941600078363163127494807056767684985797192624929010564320769192001059853845275026241503322569022075627138391647755027320124894393662808339270521078582175873871175115040788515037848816224008466502457083375750999899400005099441229348213622062666723434570740741711700179147404748109252950248601171136888538571157292314107839549558523573630559095686260664358327329900509236107597250489652605176191996212071119315285729863029556755577449453217513770507465450898642629039086278182775724958342982933177073753885900446992041593741385780982185397189138031415685234555510990449349119587302340271147190022208190264374828625839450934998935878677558583957937576505924986069390689111493580655902936753722702519383671706903118366653299399554756127151988789051092099894729663805286229948546261008829753063790490980524003590847504166059238678272935953766380559785639127766180220132741434391980095640001289287979723066369221599302070716265477091873198600525173515579128804610665031312729370442929036734856422417584914889316586023705340587440617854382776664713978759148577390742211971347404688379682866260968728851911431529562639669691181536556030474729215073397995450230749563765451498268169662846719215840728805038989546158394962350501276700599212680544722142634495563239401560592614125668759935173493274421825953218621080199285122139339278343024550192744295944310630523569337348157275985122664339384235383566150656976479293305062912706324200092541041144810390581188086494680158884783487755144589379851800277672006696700856281173998775387029960587196004749831520131817436387240243714160084437184300586467229941278955442878695170985023083485746025692133434669761353154656651532639137534972203557912431222077172593463366627789294072703867913049924746365684219839698529299099335064428361487882518884381624538049885523643627813737765392272450205073684021706021011980606193846573017509002308002230460629801082942184668305679319631235416176991620851142647627522082371899373240040654004842739839455165264581842427370952764193218119346828319217692070055041439706492045452671975106292598969192603637179583107736397770439552040445047855871864311253992897012622873509361731768622527994966497558043616041478262255101377640884151718750765363065319714862367618441705757965410819009327923224578042903461401872301807696018867491549130083769359473087150505319330046796635532804157751155066532571019470336892469350365755651874201841379574571296422164145549464856117706416073443826418466696116280092044086382977314832520052191791826592099524247722064822461908881301838081099477034454406911051377332773172989928171276280255633767687740291217091182998639484811301114248176165453886743342587424847941223214165135925830548767133395676464193219218141606198025614667522665963081780498320706824958049315833015982275019679253449916592535682629582554939689021066402306856710066448737420383591177120360024668743083560997331678926542678570226748891989470824396921384802236598741045070741262087540326750947022943370098230938824237237298991098666110150793898563551293127362284138749275622501150183919624881245052886930916779555506145634305193860275940528020368303687631956981798480407725229312795492619293679893307344019777694394800435604915436828888511398723569145921935469772849119405009143116599164768233131493820290922423771158418945136915890562129336920309985560611331853979028750062952213804478894433642418018349764175480082731106690369405287278823303867663627613940361151787669336249763401696948784961285955745519463622879884769587059466152306992718024111862865251481025248119749950494574147596109288771888577495756884636750728790905110788571042240783321789318216841670487192529372155548338843566296267394348433718112394386917136994726844192312101257915541884048873552713792090048352436800234101246363496345168149630600268035599766496301689005958300487804638466099194872376527007259974338733799282686657019726464741204925137414072327922958049804326483637664745105503266094859189759827195223277473002431974053401950611219249731998896588802013262978659115696279247949602257407636284585487841389098647508385732615097580408995514506072478767561594586831618031227719992250734469754304083171694861934746221232285020038028424661181605614031556320861091718073454477501334777399729951219579738774123760096991457600390900031760700208325998679790060749827710299264786217871135109561428358678518851338982329074895817107941193886894786867290133900031842956720122186284508757500675051025339410296789618493310372463122800798537212139661987326079106888779191634481130383336294080773565053451830795990646240704348573489036255466642807235658361249382737016982110979386417859845183660677099753083846217486712467126208447811952005481657528144332677404707599303518609685968234496929043250174678487243433036850185831954121144118999093905337023571388118768830430204950962083035764373833689846844665327736791469076286570146454698552305605222165232737813293538028958760214553916942856054917399173871945881859297339104497432449426176153714372311868923719380839108873067940616189257091380423701397142918093920950242432605376286899479185978946621016750197674618903526598287645142666138167162464049223275056800947401409984262765868351098454389993986113341646827465907680715047234516039256728721651988371643190198103595594120298739146558007985349988205503884486397932681755943706291428205576913523494473328952521057847745657682113309784705291328657923340032599152797802812803378647446186296462444988017360836267895454107939887626741504653729622358093851433649113910225256020756386067180065041400154703561166788740409878108642339153184665991964803741352029650316057724238929115832535032941572299984533840068032857527238954800511614411906880514869264946802910880896326380842272008746048029040101389892469373188345321400295398461043376632927033676091738873890063368179316946659500632284392377701903866529939124802170213301066690685726822015084504719120400960139837098512243062197811606316462768528372580895461924998672936072413392588678690372806498620642925562593858060122915152576767442381863374690734500231911865629243434011040227143486049962617714290660293820792228775086082629816108491485223689946750885080993513129140851239797989974013770875622977409013504505897137339619891294816218865478970628111831909656446941050107661578254934365752684436667130423966470826948536243863751230093818375584753110344187578752653225719423921148349753465033632448886368505638412782979629931935755590793411895882298912645019883556676813415582587006402341350479139500818567182799165577048893215480046396594899981842656010706058156610726809446256532496981761663031457867816156382069105807422606027127766026467181019460749765856111512809808144101819883154973973819441045100423977843564008768832248860977926670632166309013595388005357532910936641204467933745062364450180069115098404211956908561604687701726132661097895943701449541926894029587179881528504594846698598181789519961260622299517880300262371844848236328160698767497733730699525750450661842217438867745102888930102887020335533041938335210456434762204965996974399093068591310175426232252513219545202842348640493890301388103731642026669479545791084005316133603142970639474794151636213321372520880132392705922784487931394995475466895821355558620766371758543937435649879822753607651389528326040667561633438274603211371171301620133001282817078486605047777452182431210244260257201700343353857492703648075700471496780328038914218931411589421556117989952044488082270439676761129479281524593069068446924950572330448557916058046788611485605843380364764695393732738452170337793780839739341637880548120800845481572471511722718022518375054385912994727883449513302362034825727684949726597064347359868996396096222844348208470301213002701701655160228084748308044010650095171796287953872001314175752132853553278612404894423080677348979703203070579982685205425612760163564260194591972042058696266428545369672299617829916632384599528278268578454809475903085959484428475151150053132507580174650961579538660250511618613673826456273731848636752182105866163782499916019375952670769724473720748324251025643899669600123043807440737456902640038896613136306692149830263959133342618841269361900555654949815414756162260875853370517223927533174356157199612034229317169747331551375067460440815121764355142942176710072122205416924895859722779288274234621960448474054247447334840580321287279247441115403422440556379410942284425823849894760526255180403692246138507791872906057810362423240307567107075331284844547051573776337956612297795020958820071624283690669664665025463013089932611358416054065118007420497582576699372131677260315432453590745814060579309753004679883030734855038880528819769753426437490619846580005764509866927652856062540684193925937180405252230924356623740825949002093480530279428417269716122963281255751295871913622895125727779110823115896281065015014928766156997821545478155174969604424388532443183423422079840020589828698899526365225284171178382000063387372577586312967090871779539131779350689333474884067583406995448169882421488994093855006907972030774388304900996868823216017798805816783181696875516957365847458268927258089867946267053731939100752814787233083308923368461512442466906448703927764902141600451031574660093851460126207766111689263572992059435810631508896309255005630553499001576654428551275029159447334196855586369843380505381140818654864788501302285547385881516651872066265693743084100236767894443917760175654012530241977024823769801402435377539531878677175803400042124517813994078200415049496581394520923675966150162904170373079791991478511136531250523406001584399397133509933251405459425251407829436703867270231352842091954599704794131430336836817848374310536228046233545702177916696393591211265780841620004385076923687302628454954330363874223291131858932729882862909107735259595146739513323267382746781282281308628507375429826183258993425663566812108018505280628349328811901596066914545610769563890898610951088224194600271392033651087568657884479885476576114295802698234431830811067997757247485469868065065068649291808963524441563972545574248845532868189186036797097895270687336845666084818001676106721171455750418075547209188561555501972951719169483386858659810735353442254778569423781820979096965444362346252359187266186965832966480558233925664728902836239788739916120201569823345247798085851250677366425968565370402519898826344759980944697374959076682757718219325670521155934080661700379148129183974789744037100848057121593353390273189876347340828678876831269522278290718775552736961373412640108489896272899977099861338490419703833704170452238583279409632942107229315310527238680169002665789899266213103807376048817314252405507690258984651721791180021893905621638114361296663871308645745164934310782283391622193960098625107147150447097878489547461150723906129675149379249273117266122699728345057197630876724978195140762461031284157698951106893794486478913232327121476124649085274625180815101881941851032613792375415419335245807947837906056395299993795705247130101774751253870814277872830662946664540086367284827857034091818454092770929979904057263105382192187126087576047072076895802983107871570631781640383426251862919239572634746270695838822584524126615391385812445648978964904451054370750168977627592343783763350915170139363018480365124946623211409437319204074661804710723809762554811573160396634210067436718047047086215965379839818201026523621478696165757723140651357463417815823392473840611937068816330910968633085456315083243286104230873396516220958699496963526976268322373212125002882638116275830196038109242297977483904938578146038406597566727331814394404210801319079333387042559835413626715544316579503187785054107701700480360456139612858759925258885306584180392752158791272130175244394114565244069690995418978461818342252973417639175064442931086056008432698823612442554763168679840961076769311602835492637766506942310716815944645752304387742848639661644735650497628922774074060507612677120997452691304060339865035325104920056256810133436201747162759256283149731364957193548708691966412827441422944018475335976880085345084525460122057478258002066537076615314957741099373572819969009860848698629697627618218688898083356261790356813119546287843781884415093069782793415555407633030545264060855729899971207419667717668708068602501437286822179013285480795293283161432439401343206201442809010566174364611025753028935412481386932214147002959026536667028205414411399981788568366230150341770622564941697794727592407447650992501439169777062309343852940456849648547148413597147804395410303087238563434319133042307712652172399407148420048358424667094925865447365940003975815356947112940663215609563110129934052618188875579059286580480877315605233771515199952843404296115293492837517165700003627746016452382040322234467837493179502891099588748529010499826439148946686740762666709047798302833942365523935432100401580035539938231812641350005516112945651260774368079240190073157949189904903944208799298129400701704103770405101687607859514082715965123215728476449091056664103834273636621396734355435303351482417534382323993761768156141885579438063010788922951612047036992743208769219380391536663512969854773376671017349918748742310941281810038370449987649687090068592389139323522066700311184887740669014643627204242370873340932131909177366430768856857757493048305200595897757813412043452826657503876706790094757010838321190845212709779041264928663460867380312062307724207087095952422529961810795322042087718949655750473202568224274400590110833405231140469363467322691410275487040938319471797963125725264432096999704200620898294545876482292080994567158033480911331687894396247414256133568076752393733700611891092058701189090122077321978675381838806770534948366672302683049889890609724024065557165311115453429597318627362362297857041040393734567272448429055992233035131103699732543137738676978045027413536180470335145221211667500017155300858529787819825077434972015425701712091557650277753064378392056557737223322378608522840404718071507253162609829612528152419286556033249381796578291810840390210757655777897121208723206254743582662939932142069056428990963428035824148618984589593714466319747680867724983333694701544178650430381855129342624796417157184589217311181698805245369447458661755480733368413827331596053007714796795760798991285554052153655447755596353693054409567523431762514973760877255302099791758808857781720834113447604755568032743057384746290637313091924933180655125466673863844887537745145359414121681617236118682809044538154434100940391347499729132062065161974984844472651126182571021752615377662003321814998475240650988388568247719481542649421780142413829451058781420517212374425671845026974730751769810058736491290870712851968124953179523947337888577886249288333841300843704908225921618204714628302099530515190499559976479418550703794796075496591226229917673900496217584143351111179830964463552136080372005267331275098550559371851988340994819643577865026002501801217416709703607080297573194219428237046728707707652804275266879440281253652022321545302189846413280350460359570196688015382388790758271175156833515500767668191090601783226897315541930141657066790448012413545525682698861865686591992319974431179015633628771956490876956365491568025161895986051905058309437127239011801100084136118382802776437624894611159377029882302949599415500479918041035170089717724736227043335895376101641739029094775646507120288999958567384132604031202526661959339494444470457564456094539363246124773889855202910728321413778325693913880736014690466624793358290803286410561426980719650891746106921578698279726322908395908099140733926756103190638207631620047823633336857973083764388268629359370090092269526701462600100010068153322593099811585721152870480945988944478536994408614035283763460769913601074387550741099618043829487490381422348613624689518769631575415991283382458111200023543993025655979891037498330945956726030208091476074701802730338339088358260294736099766471382590617740189703657898767440871493284623828035989843583937939203249558503213226270495820320560072879244001731522968987603161876824373643306788304081423348192515533079611068772747122032430922494738042971558159593511089904077537804997675492139621332751811935230043324015739201457060388679951254592792471585260678975621812537361858823254748011797129038092990089205264267692742263914349305033624510450429205994483729325552996476810955295624918296729812636679735037714345208955737883813984958782142976552916643140655091316295914670213307457828585175387933213224033942981525661670759559675198872492777389250812430062265933926044673679283842925752243505995439320514130336580712906584020336780142442790751028733677341421960982344036703155179461063502282885450056928301903163239353707564574577040239260884931748785044714701835191917348853591098741348102907962271455326455649348970574858883207576420760517486106847670662063850765729676291278290611168635016451987169945352901494443196113948740358070282323161626326610646443128320168101437075417989085163551428626488721161495784191530790216806314917255049328595795974842291324439579643896395070238412381498768598580437001693188452090256255631040934191220810304921583824893459428886680468166944431558277305610553416802366144833260572968938784540018024562371880696086334897235137860944329485605733795636899750141039154389589578896534504659305917742751877131616897711036248115507770083905765180911226973649378758602484309943409718902878018026234951613404244462950477993080681065780102191306401130996102859036366890016978776688704810250379301139419163433026333026849021778690382258890708640455301557180709639956742578104409398587828289160034794355966338334560845494293550417073694503688116380100815832130871578980559934585286226322691077923663488078666127258360452893266188977228914151220272893839495882734238807804468432581502659298621335446757735843802469924879236928238547406133692943596799241683371209385914921370214091151862008547895726284530352600661686166420110992719872943153025472317306646875991840088095693082990699936085144464325125138237587394607355061829225020187883253280313899079783361488749404506942116138162998028450214379411121481123246888957978521001395447735086153157847371233553134984182660653908232179952871735902315852306316766551502358317887831784294074015230892107180512412400046084314212066260195831562619860579098049523266630797263136686308021993051803923312299377784831593793808119068688934931225739957869513022725732502697549257655949803067468141231861108876220766345659903562523911842675402261060457965985161880389646168421140968847062494813686717082106102612480284952572125753722510110837201391870340637480445794274621217789567506036155378542021143965464434597865617209625884154384864614778835797932328814953081912143835080538860263144876348593372213999402142953308816355236277914308750745887295305178748947857839588900344284365280123757373455349433593395951222312550481411470681363232243184495565857148707891870237583974063155586899073799342552837563533550309234235434021750253800926995101716886182765680868382353537150027621003737682217479068791320265714018229100991157025793600794831804584015524196039223685615242078904960258518264768746608875026545731398568986225981393185914648543557173708558410215444343668830469665171482994373844770807262487270093023386894814663090589951346277011140590336230471758912228844841596386146436369228941888252499574617606237416717308341175377128191692091739024765391520273106793468959981092680368307505579805311756010309857615101673407648569749415852337100358454528129744945071409491918307968617938708569122041415705816205339802523280378374972867268594947849345376210168737953148871491781420328979551332310541286856257325299084019872354802101003391703239714948086684539445825473818543475701674918599435838861868879823015399844152092032795844842682923352603337205505709318615967593108086304378347515381356932556231927949905591262145841084452971251647021532853136711652005031833630252696650175693625212967799491901583672175360703264251623116233118999517112039560325071942148059031593897448147694863678759296111107211940184907715204425968397465281190117573897843203978626829475594390943967488813935095045568375135975759708915109829340820467036133118149184758088132458510335634603963585986143393104911680431414027897203494903359999675672838124303218560315480558086710488705251264460606012415992262222004866119960375052497223859868848800901262192265668354754422614054178578518920439783433003218540526467932945907927012593585962002116582730524860466672387891995944212613126884769980954012747397980370376626150795806934968208296339794014678819780810461814588530169075549783468955139035724248878801387623191225996408307402938373886421201463193381064725926728777518529155865307214883701914981142754454236750151837410359331031463864277127481900542171909155969371533851099275350011495753874039214372892528197768982033356062009325591069324596453304208287799794266301063751781840601965098029641320805678753574275440586283627890542548211102043010009769831300424365650413873755458073338729979653604080053743824930475757793363076795512422530146892855586556197020748083812838656949171471792978945442721474262141691758522577955930912220476807689105941547616137348529504204805363378935368234328411469748706904605214865068197790247283452734345135316197811548630770840306971961619851092002289977095766047134196371721387969776366319365007561696826946693886495297210281130591163894391179631769333415022488539309756884774477846944802339005810074439262609353261895162262561024873265495464274274812425443047060513461341324357657166782357144298776666030255942878610700320912433503561575683051564053063325181766761569080056721770844862003769080023373991548677914659131269159677719510445687836445068398691574922884550985782813070127582567908921199863856968681914875029733798948760428303273811529218677600723593598794834043912139003972209411246686357817593235006567847795590511813811308612191723596882900785359169386543793956073289010793320185272615828658318202895424630623621470335899716375009148815076738916506336249258367020036476505891226929634187492336669448845693207090156064089154824634573820181320641039565787732142049365018934887398414584656114946276951980168362648670740572206649303025195926976079231552789434324072649665976321407033464166450173142201065009135692392339391870208530876532575335022192173609587447892112909887838289839945180851983574552221305429592178031608655290290441402168137331903007448976383246948746446504764383019564328662991300356372054113802723239507998741632644895011782886539058536485042982204850700624062212676497891837561988716944892099966063321172293991935576792920655569259244456732508811104094872225478187697491945493908501426815317581360727744425518362745000908389755918170668654028446190794580543287469700053109519766597527288007972284184104076856671957669819916427406013805099325201838175674693057105333934453384948930423293854488988494149737803980192535955602194979631273265324786990943116355160315623986312350658828239125814013964786913488159647175565820530454257835219866205455911086579916973987111443732403615268535804453069379640446489071801752603845256209851083666517989308063980517490523732904039797947002837409178196233409355200438103838668503188929877586413768217469832117983275508819384866723781899140186668029816319577361908766962225378689572128680976140751429324915811050869588961222316159270289393567709066776041656794840215548900946783477311279021233248925481309086606805508365447799080265906767265347252632891646113666908718873290847627714766938447018430942565727167606626555372905905314836197389749660834684145475487279771731322037999093346518989557393608959413227983871084559076577341355389794473034777735623076022351529380258649921529916926384197816089057853359969117886903301386485922704735424031035846644630892917739170235492366025499294414851714627254637654909987791941570885404106608309728347435452278688314014841611284798922532481307147744329977184001384600477272602314661956647567704105313631977030129311760683186326932832512812520866453931600057342761213971018668438051193439726896873903673619248965324235298151387045674131298033405119326638915025738855432010207673135852847106990495614376111240188066036026737718983345091885374757710995228162381648918706157818270133614770643672721526964570156932427365168637746960473739876741083712271383222554760664706331096278814810702761505722050167259006553999046068810458163609100237053390472246482986775158974819877341700950550490633054715680812384957944322778938404235376104803449693909127138599535030407517611157200817286536834976228790903810214692531993907279766309445310849891746933872772339810801590399284445219046086232976175024311765858505669723107138027639680649873650690727779027231332603274655990951117348181823939867895761029521466514230553541106323192902012845011665319475170885828990455519012488836631347014714918749982983570134317747396057451716651115854452871928272623620125423216434850811312996913972678033104980970688561004551977910792344825608540177262695901997045757275850366284450476507187751242711068371656606185925776988838889020385836265427977949853156841598550480918973809186946291528059031639632700105068427087673295503734903109514074636607980230786190089147467119230461464909213841496834135784040855956075205572882091996764624359000552109463211169698689710525583511565559632873792220182780400547332180921264836131383914771384144962478173024977160237138989338935837073605633637151861207884815907691704997702842628165823914363122894462889730979655485140376759501380847322717125074356312552268340152378453387622232518088358868444854744515363219680588829247828037595523404410959445136440602680873361278267817814877332319111140056575710709556106657438300199859034060747862706775938333225889568959435431212669835248368169825164026657452648222118746718324974341366386528246827863490595320286562055703180749063118909468957372050862054131988194820015044010652735830168867601596263033720811115595130182169840072190668773444682272914285188148753536596442896839943525000087264949397896555805768781836828569814272439340553527400891057464415916945452952816978137984590278846807413767774103672343030541410502066273078125731394502192615007891425975451780770762968417305329872280547441846414131717268014101401008346848987824091190860553069890361177748295977693376884834584748662472031408992137753368255422849740167699645272285259781675741737906106410846949075704934065479698898167589628334009869392845018765033865584660600319771193125129398094650198366201877178809761314169966068141458730215051047752288938756917361782332572795182260624621263300283538324598062300780499106164004179313204202751586841101693008116409699469001509278489874095769670720975135250987033531935424866609716569932518424475732530634442949472056506509872238355869155613860342195918746574498816286553912358193470550702017549060099178674287169360475522411563706055982693532959328224961393732437399502962864538944312311667734703697535418651499232232892093874807440979581493222693166024960037158393997931535990329899696477735166871603414775556890191565779427843167541531845092268353378203676939972499642223428684247926149387820463374930806126131533295734485770831703525597595053698637353807323657381554952186101219255362817449501081827838844356611877573557646980471410179436779082285397451192357229919635914593057172547539755252065931020694729858497190626007548274630481525766025037591776530004070764357669129542447821553602035999878069025670592633665360622435660366132368160617725735888060721127677019080174844858327282080600151522849119849021162020794906815997410145054232265609761909466378583291778969924793391934386408208243128096072520635275971728501246085359892898264697075159882795250744833265991893526754936682793344215485916125620643919548184230223739625527589354818749171118560143952594417511298193045434265932796727612348474376264656002369382329353326094017224012468576107211070367213197653574705147236106332435824292702081153870848089597714640489310178971102447952476800012124241213786899841414241513492038896686348449016386349116646228904251201791601147054637681502020058936536330675100667811879070236387487624592878789792096387204890435571830396565018060373523576279851511959552286122259476531630475571166648116012161988516952958250547856066522533891257828700734250741353065362267070103240498282251201460416060328250114239196207694634257707220272325087265398920863199515998056391790415314077067470615777415208508715070037945900400882055882067411869131529524141847109921037000067520515301226958366473835164853316757590746250562442276671286402561742056078067935025435154247964167638818870462643786449397144122923857476315273445797862163027247476296920747204163636035970330043323765037628005267006461409033390725974501803756983995117546476204661624147027477699174982879071518019446825342293010189080539828558837649729993246338760256389423571900463905840406727816574510064651552874305583453325396165229825337444447453744811538985621221259555003648000750599792873200512562675771836813804830345816189496889307064381755795553251894794179440370529593860783758750444355800521826768176138452691783723997361208696933669668152929833161223828573247493821749007152790626015109003673735787010394328223159761058587527414591018543922724491799063751021699209502710210698926758622951062426339304607944096071938141529437957554880865394710939634165771180938035593163573292283099324479916588333474773483526783097684397148979725443984299412183542643025944869259938730838666896933513297897573043599667520633932104475035753144791160445751682854653369825863659691527140923066778472658122871261786251277181223974367804720968666732659832009198641087524242965092393889245158610637590077129184761600077046034946543328552902232953146315549606381554918949320964908209061815364744291287096981787433786620262897339032825745583122368418481217602016346385673135517153512501970380751127133953477643545994574975448302586041439094803429600795879194422338658590285408131193843690356067222058940751861545507290481292221739409218755856719848195840743316065450605049801963110487163942413699174491967227781999981449956044223602270616057434768214085721035326633154091188347699115584706969771524799844389920190077154830237254332267724330789571629471877281315435836127710659601577836543438835180218593353816069376082941743862585877635333129280449101296025549426762234272047326137172428850038784728155087845538241005296187289857077626121488251124413855074941031627809142196671539788613340743661059606463038382904824359152741888253361907632387111553600452005910154222134519480863874539256483435278330843779267356233687745655016304850864622724846034536306748926869326543012044254645941901382668494628990040367748957886215756134948743504439556598872470131508199053680834616137875365074656200122911391241616277838397000857967221156614880071615220937808093648780780000793660702373365671573664210680580956566107256910401216031938560655473294480371173300637517774499373528528613495258395910705353186797220028960367089592536392755744206637750721356571763277414906376456906907199678940247323788977497024923026946814232413987981198400046750742768682449902870849644215141104893844085986961123581345538127062463004025052288197393427652387618902692030580880253991179441960168794552231660233226872113088019190125133493848374893657805783970790711473579113004090007943960606025407167206511952793100330314740455727638187365971134757343075711257267907552468455434860538445661066254098636175755648539146326874895594074987579129577206390856664512324875901303278236014769671521286278428156391861390928878995921399066549158303132593980657985633723746817087307773246911487336266898435497318520458240784479621760729730448476488233173176725591780254488448614780057575359198743076969844736442111327046880842051254843919007897028711380414255576265674506588726899993243574170622457088858918416859842129032666813379427829823335956448305790711839709980075986902562537679277482094338979513789344021062066969158235789541946471499169961498011653484607254611642788633486587656291320697939585317610343050406179749993355766476601890804465050112468812674605815559585532429687839816904153975462997848760085313840704019974796978371268836118850065581795043607101398905581785054584750892136992289389679794868426510183122928214399522616181638614156596511201904014612182860399757724946147859004993168934922541530448543262058037073470746724544952294612281508996287116036594100618806520421718060066333818612013279238372768327997013481974016704558677316232690763468564085823841438998272140021898257694794870772565491452994821504035084805255897160748134639304576570671795679860548091564894836724054032367514843030850552079020666692840632906362602777552365365820524766869943785055273773008984899172449800786457448020105629288942556431232288934800501710924038418062127998561372442512015921257965910258528087399270176957991282411532579805393139289298736613815654859640384940815526062130050652062535585718972314906492511191382903085671957359747758306722500147997763316236599257104743225422084151055856651593853310235943113937191626527611792620718388387283642132227783872375833074767686720390029499557872527167221567834771744197275027494698047852291767130670975285485608498565522190369460594970534608981586210857937131900138779091100447420564728146855249407454950795338992335429238775990949187926303623942074841506600970821424901546427097255917227198708794952129344688821912711233391074006335796680228258868640093077087240544963025477943726017857632156024031019756561066831314524886780518172326400994330090099632854280590191003926846728136635670375088631870867728693672148786989547311421727280585991897230324213597826346537032758951716021135147456686123139414048552148597629520946139961654762555254151494784070972351068968669138985724644117483015617848330508552794722446360361241930722359413558979196199925773737672150220327261540264368123095709967466684866094423744449571502094892285718588883386694577328821221267749805086302549542947050240044272262372340933314858125204404985882420146801602901557379349618436703073621962285894117568212322647647028434447058188169422425634316371714663461929942254319251278735563626392084449944499226136764428932287940656615915031863057720573048260135342962395920968583143562820542662627945423284777422424546189654398453473624392064346208134802995327337466136300349093430153642595030372710550935973868788335150876739741738744821882918443076550501282586853397298384181986317713847474518018554169207547758802489324215309487135613920278687580529550064548844632175866700702805675578897184455109353823321298657886329148878475479266438616694610066141946914791987302228895529287811946282496919443667479459894256433157330542629855420085728194231061384081440114542976530907130126266863491435497393948050585225733983951613489427462897216406499196825219550113511300949748092702828523315676819515981854347561253139183254114268631389334690217441690935956656111653665708756923465569763718811369929336680108790372727606240145210232864936954182170856647124559487925448284314517405169351238565110001354993594543834676152602144119040039635988762760222279758405422816363665905591943211275127382770520103265165187893471696414879505464369235747076112111242874827735977072803604259443139726697653739138247848997233012521362888884441941777841424178793023397400146999250642700743707787317153688892093552669561727083209406867550315632805344111764982443737544503786520169735633882132972787655378032092798032685088485936393817662787293049686837008248527484140137767616304858908530334084146259879026296897066958554459620850749536583082145668053655594859471691815540757714918640350802271203977016161149698392641851220697710864877136489666056033061471672501915070859054530694894116501389533783330922429619602450682675546648419110904914105313896140225164512686293136254397173784844031142408179285906910563860909466448332690196135248867605771971172024068958266417037700392358444386384506145402820897522897605755235059961285050373372009510728292220619527082972252015046449226695213069682291467330740419037095998724978528339006873850480579395557036335758433405272340546049870062846899154081062352985038501782855365162221023358232143716772720054825744368101708505123744822106088069132188455436035338442729639676160328373224815699284609876482451314705302208162658208821136524202266657594046243470084567109915200917096061405576368443377655424593672016411867364112128159080239745788786607055761071910927475593351075551332055305095975458339413564893860258980229207862991238514486109223650200530100947681782782783243103892577984977430113139062502635376224443510697690284755573237368195069564207127480027083968302322872025261299621011917019693716639325858230708416765518468811401313208570168653666109022934424954968202871040040543210192507876244568235929526654259703410007284049089614140068636985093263209964237054389861844704833248366207322443419791300544990402230581046805899200638618662895732229311064238366881935248003924575740765645698447399160973392605907786600384337385055461508886108434940521469612910891941229419070141370507391425859884324536282631344231592259580395837785718753392178341799389700954536018645609820652643389351174199223269259111580805657356835114992679727479065700139269902324059615769032436107668865998837217454447269979261298628593473529389962819987398219168804095923669284467440013938480493216790789022509742708278562299598993905940155850377003457067234417540999487119583534641800216838051641378462584006949046123195085470834512073977083194514491422859315762391202109733477715073543862115277554686610629408050311262890899130425957375980859903870202867914122448660532248768411110918118563484359120744529514618907195042634590488258374863099987792407934917239908282239825023408725232556759160164776662107711342689761469320337338715014059419200259503136164640817114357785562354013402177194119437701028388252498251904520837148632191524286322404310115005797606318118127377262400257963620336037329480193233686595012109869306032079072969370266842956501682676727813589988918935413552880136245964263852800574490100042550286714343523770461784885069291138122751231176932577531661567509962810768768898220550033920754727120301506698073655909104155816675322860639926059611311780898056175208909400501741732205050099574142502786342468319008502784563627390474877998373655804908145551747623517986584600381786139404636917494082953019134979057942791859511411996702894463706579423593549722396002296847747042199042443702632195558975681660634692312465708942606376170759951107471366388272650443888337782326097231361183418093552144748970791177022545792972681441184681134201140066629516098265662219740901674956516183446896703770152470905729366324265702481978449858598305488018068694935626520593350159063364921789738853940573123405608533293200351813828049391488568598946547541618240795410577151796227016231529732780257762854420615626540212257740953051253704167943093870238336639003425950299106935170397834313941100235734205196351194107377135599277551179768152167162085151101430301814786652180595829800819928033812660643181924493024769904278839779436841983318091564538429813752762337302684975228007010082384469538943262105044954373139194802783260182363534709454312317440939455517363141189554543618965305324473360578620879592464122834829688087146933310261942059646689081356029632859052295287347794513950615268567067902263617683946751973974379517222994150087357163216114777979907427492996384071320406987130052930243994237829184238952959864585596397882828374382936924546616623601212781274509279057894733572622381527669685594000992628354963701700161771886894348468426295259812382375577327397340827011419685601510180808361132703762154763161515723920833717758833189465981846701818918089935338685960530202529157430650890641481461704991372991706475207563890598397546910921493759342103542628733871525490780679187919946368429925797709499084572277007886067153774047658208873973434291638179127897703159941504799602328634986401781957590723880840781417430286713959229577742553292625592350811842031903518271908077433048901184985629607395587005743998846629379111304607282602325753504282979901774044354811835376558929723901137043710867758965447656461135746634413136153749365223820096456753452968023933522260551759763848769300518558544085258307944342000972073026656130114417709630215045993631169779091691502956524441323456100598769655570491179127336607445156471208856341378349570613367512149862234224434695028755549504560762026782452281695393736344820428336392200671956253422146396699531364538468004187423487035149927766630338657844863532482857539905309688231119288959220083183872100807489222280506922911224909402627995096313280617790548122216105851249023940988333824474192890094791647323821750828511044006891112928796943719081086781043935831985712713888294740198099108652790287416014492143149983912299171647455980899379674259971076098293510083916785746648071148961196245971299276963296564324394601473511621714976852117764758035507256581255146609112348490908092356430055656671711580203924726414147894617593759255217617260495589037090515846466871947325273152349773648435944392142623022477492718686680860002357710110548131566031636634933356494422044842914423143445925084777617140815751292137215177488885944485664295546589464605104076901732798503910304846074086193878610570864081217486682718504504244978560895806452529419399277486613916508300300096856116866676030459914774019300464619792914631054101888003440102984903504099862665193673305710311311404037896308957248277385937876948487577515195023998193643149454586346249074877467706390128116389760135477463727862148893438142707750727030930531221174874331994962282269545968050621950350500707746702515673191843511409074597520355978228622342578009799960252115042584872553412932620029822905250625015097844163816262488039434916884968265290536520403376085973535768560869107579190061062518772680670356079610367242320691677119737225370121299770669467046964936878100790561218496814311825777386189765367934201952848953836600782036826565445701734295503703204617813518722270195489142799860398320137415985702977811003923711666552476185387536124424926673342357517994874245620198348481471098182480026630809545611443189789551938656570966609781682770219011318337015096855562264054875601322682974971431430712774429571242370192642967298132398395962099481366854115325924714088592553765451175169647746711342796019247539653830930887929663935349274899612618133661577445307167770874372249200093445204240832268347047999370504969084842877404486709673692034171769575530727427511482660064727135363059267149074546049888931767437751708055857492018435278609371086862445864741233581006047903973233483353484323963678471490593880924069576488401698196418673117586809649077001232225991788063798536476412837053244516148384945359612592881235158876118438319523968160785947909588338404397230580890152059147908629120152810824350958692898647678065244642622014273574056118528630195297483270140409867078955042032338170264445061139054859639788661267722290377919052263976236425753035162567094917293927389564553031391389104482721475694763522979940989881202863044421575312621631794221165894318147252515618500163058948868363891754865882450747487471731554671358147945487601057774771017192961016431911277255691888516250220701024885747229969769096055682449862873248720466502256010075765027632330167882281777951172326368054496718000783379346312207711867669913088420691890757306591459977938824597823264798442558540443419577381359241362200558684832999127009119401283181208414380051637153669917040971666536672874898023239282845938768767832600963823929574723971922755155240643728727553027855497262926149388351445805859736008315839632082920241588988147316682684124987203083447214700333412004387127327244547021998214858498350881763414866355110235544750702785568326310085472104650440680236912500499887679687128667731480684015568849564574500074545620648645847949848846594233068026250158370321004190881098535762821069452854200257134661380127276196515184328750609598869321100173447540466263378837063902467470560342166295513181546688135093428855750097516181535121180679082503903346494600631857264824838975928867333166740708829362412484845562823580029878731615080665899514479765400378140630469577129080469293569390565490754931309612839243738647481988815263595108792382602995227350464535854685486711392916209026029396165620340622206633817406619258676973214610264827923213154362859058061388491802970764321347657285084896268915080938405812753127920360888363926105058099883499647448629088218812845856054492941662972795308238663381115766825758686972376867392167258855049903440744442667053963587417577988867890728850978411863001500365599853112552175942187769282935061453506059054904062818385073549247716156672846986429087143828366439859782803496640578066198231321876263107423727030522094162076909434298437068285456001792951172285557377772033984301462362094562991132237101764444900942832006323589857681525254397318433678510690153165436697730384765161813557828400806539869914640671867565101540553966189169855641185825810078780799942929314907076872998765810371354660602681492526085803646553035308689094182512874426526286232642287783533724778742820476598314625624459518587631876607650627909428770249658875660506873930434515683360617723557594737320885197712545326914158995935916401658909552827076390656405829353395221186267390569120657745874947452207528925791312773076908199272991846987901150731038013719481989255572211617821728104398571834053868386509391227680516832974828131195065807695539490780336572209716386441531176244522629225173836540498277053477140462300116540706046365895829744466327381682945785402753727439037341745988923716246770550148677092010866769069578915743203575196157003727652244006208493382667251130549089541365228412173660474408981818315557859561964158623439582595333600817713855422636634213324305748313824811799529946367486918513441375213586872316174482358655038857969405319858239338500388655175136441422122521024044048667381050732870447038037438382396913605456128551236539077722242724738349267098260070037363749679724511100064786808099600521577314871345945391147502170624888720657334400081022502894318760984036851606807333847778406447416002173630453714303128271149688422579642991265522398585149240597580391468530174474413171817275149777214527364089261858828777299995904700834565518699850933444191884029467819861086723083565811833563815208798878644507280589711361590911567927342187919631414506964827300676528641802545805236457098204788483147002964269303304154339891026531142194224269484109134015807622000132469879339420145836931119451861919453824773495557495109588752836818543196866930473137129852826257406850639622718962953913269503586572568199026844989220538329731132299919712077641366705203339164461975192818477703193382357017143684700725122131781790287789800454369002367498826313916414338646599964331672080176752865467742458195162405306656529407913603925434278825927179465768694436857957612105691782453122769895636864986039080618258140161699405422965956461049381477809346357339829108126680755209286667674433381741740933365677596322762085632239618341705283754605985141524442658973266296222145836836038834711664261644386320789077988787728880668963385203798727793964681189268102074909455198966494605934329000347450633971775235935025603219599148097031030669286780291600630971734716656803588301476241583379983122647840305172623952019261794344381224450137119202530939710847390727339580253398036473759244686408519839546728153302058736697988517663855056895278768948797054342669459065500731255037671251133907621661253784381308416759981600158971603703929298658074803296111395654017113629498791950195402915205628912873507742530334267609014596943330265625706917250984007248495064309257698892142824538345351508462748818482019429410022276266280305061366399023661092961141767833447126580628262798057184526502874185866607671442362688650637176341296229861675666407491569367050965585577857149959135983124220521551127820632790266681685180761329044653074899306045766689534967196253649637169388334218169776645460671512397395298141412551802079916907918999592437165255485743646011967150459566873680291784509280351883144416266559066267853736295306513247753477025456598492738355876238922393649395109479955831137627174240002534045137293283126603605977434711330734566690657243396067946218133285779728947475046857669076147601839719181164001530023912903741852220405476751776668082755821252413746279017767121349260109550314081407180582087494473820630696445190679761578015440127937346004200024586677344225703175939411082704055845888036503468784405494524788525350805566738398577180553887767661866763607086885150669702927503369149120964734763551807684910057120912034797386558889831279622638849245476080386141722000708920036701077767370925835945065103531499315269283993381551948458701442340036812676242995359044020786133662533713803921663066937342343057901332371651913112720485962540998560060934928675209060284205797759616853291773377903518653831763820605483422840124789350347108277639267307435223357628986067727060565002846528045197351731563393774504861043342056056302658034102554223753697129136406706230119025235109367762079067217782223608876925860823635019150318204801169544844737376054819809404707212527415428517655909555913050545800098481246390275695733836971432442308021156595966816041991742472845412923178509467503800642606702550939067758455272682456285108753144579917238188333025178416536941602814352082408175895896079959939294170136756706662424967018399670130339525819135277292656264946368442188893736678721060907952626354321940922849172155786655750103668933470966769365918636714976710435454398356041556752354919445218797622552073858637646023471027545618850333277303449725912159073449683497681217370596062395045612166257169512659855869286185324080012840621333176011133810722010763601356184341193122203853542596793964061580459652997341002244605242107333016054886995430316605639358166903243462977230027235805371756346970647419212258602194086424819708182698154984170622098251911354178348346457691705189695260848003259503775327304169715703878356290424746768403917325563491263945581071819078717867710143634637670209948013440851943851190983090309702169581667154770034949375122761775371599615022768328521244021270649723160424565788985747673535672024391736143018637130319711241755068650755132079476646888034472673698123345068130992553003082251852058878878003705586853448573407222753542409439730933471716177456746881020823901692996426395229684143015313391134266789222587374376165726057800098207700706539675286994712168849381386541747680260043739827974313892589778260628047113126623382467672369830001352690761702668692358848646247372603710669977186140869831671026188779229909664746789970472604187497314565519129703197322145541416819894226664724118532939134972721812827643811557669281591161903983600358810758506242009661864742378814664236763127906837376471965383592780121993764261288779483872783934130042692034869865193314694547459828429498047057641829091423920443236478109501448208324712687977477027674005887271309374657774323570834686447319955216708224945769484348533328894694446417243619835250713892312231169417513441023831653835693032892712346831636838034334673737807517054685893129349727614017181676108401412864931747323686895210214569679053371855090695065596404848462514506896519613337339169470169812102465187150532154984565389848175035354383484419542575122297693398993961517021949430989011688037915148462099459045594559608897496096194366708758579509835190068249656220524687400376694263958469738464077397081371786121071582666690958681201281522614948816061937857428933096336566033091060550547466915780579273869974304940777734196969561441590302541843539382988373134662579703310315362780451222281954589838904845456774283880557074704831572128715538396119833106875153926566898056059769803164603917161544007074262042189721182927856350530474307961440419894832937484280101364625905151815645238113778639096609612331359901536086243487260826226080244126386135884960783138130928138930740375135280074926561332996227039478575952522728766371084415995531125942478500313790894757873312863733035702155158553185385534800744281459442501034292517407809644900613050996345762387345910553508367026138471960538793780247866727788340126752260854636721807062910999541575692285773226913526799258359522729012408553307180302482370497256822000835133762652351522962515907238122112290172744878749712942650962720109780960067211935201971871012557119466556467607557000560947479864523063874254202742137445928418515709547586814606182663822528053226796616155725979303947289062152132122586642621948495185005676427021110584543164101749616503499145550675238498037198707276563412869486059670551767834501748429793726206988871949980910959186255717315768783457445631474775191165452507446548297047739740918660729626250920897812865728232063773835412583110203863444914954043091519181188380565647278732597867939095456029158686785812185293136981508705911075745635652141717186361732559044609815163152518061769957014668584713266547883912667405799335523417228393354849818382043454163001499708330485445135892602896316245089872488708941951682442515622111747432483528212342704017021095649328419174872698553659062089937122543044751776513089982434198422924346856631471389872155362210776945048085367579313475981425066405659419768045063632799520869951593847484439820396810670489974482413911444325893810620406150275181390987534174530601728466444796920657881846495507283258612877860073319531455829654925481465051227345816519282044465964652777768701688303352589854636838653504045108560751368673324482673625169091771476766405039775603334768837313557485725104857849561972991521329543707255253080870989654167111945202766567703541159781211171506715966685212694138904763545867563802649760731405374606418457636467803607624776435599921089743567268152076837143187590628707791565173827107262019011948098768538301876173122099750799900162278200308025134235536993804007056232674835561479189865782292217661305705700525800113179359892569181166931184331233027372773537501922473683259771282074268329645720520082824539036734574431715976332807934047479794689981280583619661385524965876160145776759293937614058664364726436443116682453071865830841858617421621134676108230285651538265979184026111848611775106644196064693288641469235681717279520199013467932697852168215947566104080486674237963488801633767509129081293952657227254544005420200495668932794519860338636499605888193868820220637993350477880394385034757835212277988763615686508333040570782206356192484998068193143430715593753621215740980200828740896686259458390174894526633189980467377163496979958700687944078267763039339559092221425346985540365741724320301904508844130601739112223063682917336294192707352089026358967319632869504274570028000496097724165930799363818620857043401484135019914302435059658879832224419197883168478482038892081315620605042106273369049292083844974201638236202091193271003145233133252300659839420817861268351937721281724986026154034978255671258833098758203692703748707071838678248330306742241685551692948262217261385823142379531537935828036274348708482038128648369671915166577890703714760626975826634273533464290364940716392105475011855680599374083625665727624185660922166968686899824983672824298884568815749427367614845026452287321903641887148774926500768913393907391443099111556537911378882413895298572081440327705484505274207110888345289939437351891671775978472082283022312833670853463811609682872126122828394049419082542442622732103315963076308152802465918366510915321857947559270105421116027691065839472402874299031968541999341898770398796806535308556029353944386417972365863056905886595063373834278443554223867804319006206049426603080438116180766144585423938478399704409896597348741154218671614461536179745398840991663261698545904401904315709722387980367934230619916795516695534460141676663033488046257673637894220213102566147942338239856242328332267401933810511899129577638117837789508803005244789498585512340047414524754612571462571957678050680498162934777663641874661227686042498447715220368064932644174408395799050605393722398292371756295534291278314473357635038684263537980085262767373964207709198439244255149063540874188873749361695144436725537080211891382937874346632146923784306771431012079563367519997158206612116242427321041313275184339794734851971461601847711099163307317634033772950552244908107009427853271912433556777886834273960785951313591764142016064297997688269229940712017628181207021412776256067028212992257708783016647399554401210753655602164597233039795352709322092685326459055097704959498496893824003931364869962245768268104810400661238346373333549493584342868939450272544923498615358338219795798828154794208121230448542332700078813321623748218295898709270793601668156704922887354147111584179330307326388346308944142222284583132327606914860136073181792131281780883253049707929637564728889221204851441038006421703717605079061929824639535874899407149175600994437246025408994070236631515087378130584876317896676293634888580282496638979684872635082131906855094966431640428771946001182985075614954977262955981173312574354969907600026194004640601493474225980242658793269253399628900991434755048637312643532521366514025965116917758044524300985225298589915250381836868370730116008798480709498252177066629309587407052784309330055435226790353945172222376806187086453510001189326306470742784593412517345023411135407952271097856536755183271978810880314561821623536369645011927309921409329485683264913188356243667125786107474990797324504190416902272989418281300609140517002627668077144285012027361748353483043996932683336193445729026269718937329960981838658574965391704065437630945521023861781205401691978946280819014328262091584976124668614843959726953265062054901907598513175430763848935830984932032608199674980101032690638706695271602214818564088393315975285206568992025362555941375038292847965215578916207094092329637690881000611586095360119835210154726595995386329704175311281063856139839190627042748628443654745688743417497699108340514133999707343027826299362501135173925733914179442645646179752941747352449905365507360325898419804579073333814514721656617112490110860524579112630073294691479215363908718775050375674695834564319767502882635147839673790315750945734207441097895112443460885629192831434600075617371249982361189075269816369486326171417771760285576307435146081361251522756976438398761197983749929636496175706477967786137672319713809914918534284926814616494402730032329475889547738253435405455651654789468054119527726166732109918547397475829999097087179857217089960144424527472568544631797962188876433475821006990316352913780789671852857719371571117931945887820285910231789355091895755763510287641023681541415892234917767049883507860638327445032243639535185178658017303410805230580168741000947009845587891699401466600490972089473185929913316751488266378519615802992364877265316079143645165147880529183950304359776289784878558263178233260244397897500513412570549582176636105304823072255700218018089026397932707866423835312680289335174246122194903785139974871813419351134159257017248467938778840316924821970618734043699325335015268563775713792122441296506304753042044788853883975910156542932208628889369035931374574046509276144815362390908368072442079107968859682989327747046472415555837799517350139363808200167332225406076841594721629238234183199437965765205752124907377363146007222065180493501767021470294783277210334897447125532139433466630154448137862848293412568528305051265280778532394760216153969303596430194166943306244057430106566996181936818390650046835457542757518486105855287529766464396169917219502503754188794599896340848885947377959426410340449054715773578306821117654071841570545051831886213368980533440546373259088660542790954981283112709627822841107432590009010859114399123695309953239355226635979351326120775423032053579711059957022494534053571098576495063429174369105750779076423639950620414718399974031891320800842663695225129685940729452449678488383809053788141647563691808451581239899551213804976484286834892641654316419024539628454396306548913485618564380962689967167445629838760770072659543094052145781164239614665528677378156455152129130587635106635087289226435127218822450514292399090964504498024409843342695089538048946030949542457959150628273792045172365515383050987941581833223639599344673889821150034677613486032368986804166790329412559606390972833319532335173939884204226541268920677976850918087712869596440405218238088487961404550858554322526001813053441659833113182319652789576300329457335804802148138093102545131206506817351461845327420503293078619405907762013833622935483625275183366343310786029824183527885557245040160804868218764270027596785907309638016909292262123790210068273504967385571366247306742213621107986083318115410485469983024881778294478840305473032571431789494752033470756705172947943314386235118537923045288819667387956614165571266409344800559669412739077114519642010975354120068209266776086150562959697902526342221756087549916690654833828709024610871976700308753296583930299580179067232904177770022878107930443899138935073266046938766425954450272288644951730669972566467698653059841540796555062645042996207799788194666799164122482376907451782886339749708352721438357360092692654334139041786020939529437150043247116291843846967497453578109299702550023396986989646979036806397110807400283730069320846137523664201687287787226695103190779026739772796934972447563671904627230417467747577897423693564511257706920604861223574976149038242654888423878292423442928712210205578107872856218336125584790528411141458341536268071705213960420558528505196391848813647774883415050932017941782327394485518686948876513677178699427661800568109051058326802795879751029579349983340054127868177276432324435796423783047604989175743824612431091186586878391568539803771719974524180866331034116297738618511991008853752568805518243087626498107596712991376427498188321992195586071552589754055064785887598031022219751412536856892098678946280258373826123093772204122233851662114164156405461350083696766900275660795847015091059425502538983238397279977267393302672269166222928274727188099716586156521475640510263274212692717620184593888264565617322081961312680233777591297178750196661212664292510467116061820455961203067521395760321789263346063544594849428459945039336593399386967058565534014289094346003617699473530990997760342924474612988429810112894997904062296575142049891084308135675969758608391912882060777475500461291519557822022174086386587514312798906517345451706395487602167990181615106548601080497429311739633040540526030009742492932784935899387517113668479675410785774820975089851540622649846903438965966061521086801423710761393819210260534632622583519784972578738023525418617063447095338627310800977863351364970895434445427096857301742987022581536579100830282814872834800258336391774112340149938769462468594832013898689531380362374492591436025401650721287678230341559885911412966568792331067601377298394747617513754637611062419779394449497683096516458629053444353867446828557243527314802619344182310186051423871853495680777306252389166691151088520282293941897866112335456252202340183597734596305459449597103591533568270098039482079032608501652187922149802839964201205111132597549758182611748104262599068108371233187822885856632966158998316385150912227978693851741539727960194071178087291101629508977722999748872246540160755703157395730695747400274702930693153189646448532705485030389800932763191991444232694224737789967525880447734154867504627967622009487680814452505747403008486651297571168138544143505987790093948492606330034571391322508669970895535352420708853757829543056377221496845086621599878805989623742159298628258149264041286720286336651133475397656834728440218305894554271352043989328407198294647447209192183568972017702599187492383462846170515168392556995930355124115413205924224803329663466317791342855928857686944341540147739056701267455744833441393400979913059901898964160642203478878527587907263796519129578382597264321648010090512823830537962074630120295293879295694738686781393049684133974986717886712552822058365981290760700866168444160730394728130272854236907537848271778567407491311853782128310834077409949903122724427456244892650962320584879361190855209036838650825121027931916742218711253914102976005955850020035426099903818319195243360985814512241070500936760164296451163383868823588320867889527725010889195177313012505791813848471963961642357884509179012859260701112426705840903848906109331210863372924764517452018678756871723784269002981433277508745747469033579728054188057618982875101050701983064050022653614149859099087153017385824205462155499504199482381459060407509114934283216717485082321562785437552447126287005772565919314341740233320476309552546398860757090683546396108249725332402756800044819082283040218074429132577285780243907327666406435356763812636642301180072333907800929377305077526390257324579331375300202123891189021932805962985976895040062017765135280148990283413735579289833073613595610847787501288354472944820523853659557313422340912539406678071030920868781575474712158957091312163200569833616505714151251188821060351981727328507499534346264098545584251472621995406725094582346576218961249873812856371478692349778059182302372808042108233229417911651165907439444563666597890833771618295790147102516887672496095307170781600018429154908776025219234667416989045485925836426737337700590624867255002293965223064499629279663868412942370760773951631825048669462610820449657543272611368067410607952375942696836050061949893645682850742542037053787125226088529266358890358766180459179881501395818831771091898378361718897131818891520991241660507078638350224381400166353451259829626862255993839338256262192350802673060413812717420039912320902097828197597004642914769928811600138552835210153959027612145122213182050136945408901224757671305389676313922318820247951768683805518275052219234636090599950356862096711794545760238692869128549540064441557607870888015041571887464400951512305321491069327985908236928757894413387188710631202855143268475528406059350930674854983078288480744950635079833534814182153528129939142800417586567797666319927376254573174771196277817582888885707917351972532149176060984468801139080655889096822676712616472323910492374114157799842667489764865200833766218873284286062348165589907253651029656675834951422542340410923592180063645668209356356441434229641842652377371785968749516868709713107138787201657235744416061495692192644109789438319392505211601402338144468731224762487610997889925540836339677699834195910741283852439150021449322686446419737308003671948900141658135042169322015142318197440217757544226453655559549148650712237309111413664449319549600959771378406863592971927172546874935169413036976827279979871267369368558419649068085103086944212736870689847470651328603115438394575786532192970173711390651675112893971059032578990786262355035586479489010117595751040845928177529959489794196766594498668565286708962551310788486024108673118141705615358394863318122693902826588697691114498936868530571860865405852532364075229821605865146875883518107724214331842447602266406805293715066749678271297281259074756044695959403761685602746684241393588118926455630409941072116610523124034409897037903211861923038306865574696224540598773100510902793912605426998535910546711633249277659383636375077776659515260914585278091358994845388193533787055986232878122159257743225661061932198007499524681483747022048781253192194850940566983047369016761244628217767360702786384886195009057421957997014504395174122339764429253010536461331721037024280806145463552383466623454731351498861973638035575284134756900499900980574922139208808855364205974089066192067157544902632493198502460450242515688401861902885439899046581353721507079968133913208703214279800134185622765691233783225225659272737392071212888903780970692250270849310467933320668210083608033734449599805596335357897361950854411312777680831734468888658117609575986098992831382703886360193458463553308296774002723368540035681423536001995398902132606443579652665917927799131924492020820725528046184706903257020141935571021519068523655866401079137112841940947770181220692757829897248217346534685044308127717093053867041730686200273444940072174065468821949571936831612451194201991258305645730490405202593729587704743593128179306692317776916022698303015239695172693497836204534694511199697504020803208048863040745547288931071350612361123713027208746033636782952827105142430377819069325837248948593635462556907679469912090208427523015824623965816948649650443053518729680201317394809021085133717910695378474076700304929725357305701438003163389290218178075250301170036531277118707294748031316709377144626249528949199920872145009736860296452018148883905588141310006706875820002503086611946759525131825343964938735106399307020683163218294331909227316147807432793654904561582191485326487485262590512216940613881385766918607720120759522117047839939700158560270886578062377803591189963772593257228282973266837266153511037826221031922445331308548273679257158053325999777992841165557789754220033708977506906934768176188007920593099476263549951086517815990187986841442214501223783765003844594576699759608250725718938038891240909057656437925905255843693263683283028102508962993820932936148184092243557288634098830958423767529915010275843571809803951838653614200709414149023319849155025137223111289784614051180423380028352917222258317350286541958751215095055636439817519081356969667573745802544415850876920469207194109473999625787831737976900507035959740883379580006669979590670735293127718021638125171585775200426292444839434487589117125075819720989250647450421710675132414260193483268220394312064338168991256470458601068844745275121318840424442024057806024567990452274797458389295032199771999990622653912139473823623033523126250357593509106224654259087978159608257736990936186932137377477438802717574166923602225360909027225152627775116643135293095676681963967636790634292239901586799133658935554370048548688725048068740806135905487322623668479799451462597128847632263327781816985525606381127042681990016074398140143269964852474262971753363400597764683762642544760796039663322548810484822286629402693637009965024669522461036759455272379667895132975381005655058378446992658335561714175737116321128175167456551958047287275029177325666367039204723156539852190260405630992237181779703181067256876852706642798746900085649035132943738021746731983927058574944819697173626692742182060178319696053986381571928120302993355006386531692248378993393655304438594563270688225766859050488204174929700666028078935524713093139669214175836954777932765559441499110568248095586628966714518014359220242769519715782335845740265274718873545051119593352854396178640491571799595123854357838268322653657593054722030307780543296212688007169885145119055030615859639412839375147583349265906236559245603814288197177653021350029584662360109883993824901897944823285164569670090623573355398097852916368522053977788744600215319734938659799945096894051695321496893712510719021284583762127891428393298870339112298726352660851157494344037983571926363927210362753911267823001110712731178531714135045750447894426176382337118891007917357650467744042872573243778135154448699084270656381175267174249382561622612925380309398338060718101001630886615870251000628434249742485750116137941393405470598133233647810125182600020503584057640213493445868174695912972907600818580764486138694699873332146778151857531572542186520187385286124240228777718014619978251727887930370098847724099624899501522569510368443991850538018347420787909534098102373060533937673631804855202294119225718813168245978771190707898396788087157498064897415367231205913754545765802086519807643317372342989624046060478341341816911268863307922845265515064795837846244678422776852112794314089059792922167234612395041471907455992275633607283961209034770635739991787361126944531257988007932390051895496851459206246728020350614631123484262821259014416265384545747356937223035264479352952227426951963602316947568198858344665799551407565514398651427424677772918461810096020395590889770637896405249700414859978123394994952658733018089317364465151839620009636308398042259856589182215346102554268471959109479853266325306344528559441939793794621754715991625857145726464821303851491976310210977718397531303429602474560673877171882092190776944409193476784692544870880026371260537837587269822037197415091024757314263610869782199276339164841292273697040974178068910325279865203149874174010697035958074028212094703636231159054825735686012938037619225541195138687623969721595868365178704438532426240262560554324159235955620492530370536094318397242525676594961268339939565096277718792109339553744048477024897380396275007552409137881386584287152073363386768252678647331212150919915726230264944019703064693744666288574609253123904156333814816288962653752133234092174692240298037062099130005474661693811851465751423922694735915424668274630041797982666673902788698315973647388980686942020258389677259990812858995145941212808801597203754072353610680550911012782793920119804468942658463238858488008601442672536033430329174828418451880855692361896391123098720441096736517420810618045297606373744275603117469447663752437591588660628507516275687050777838820545460493670969952355935444697275205342132976365089755830905177788201915183377522745346037711720464119642323179267266180074104710488527473865194600499231049137896400546165710101409659868467199021143481580396475959907543678356150604684939917663234233237197114126632174858932954264846214113721196375647530993569442790014060500334743189947315205609938743938058205157500088093727419504941632500896837724533639025561721768022260903437768948850478650099310004625501997177294412704133255933141272033418921557589069481767941918251731609049506965641230355477478639962710349579663819514268865639576881101938956005239626753448064388557460053685245356894551875119933206448106179406779483608701952014029522795829348573892309629891036525122446830611590706130148081272309191941483397252722338904492849197855078228352069454193077683279313754670400834591949250475835444670118741010760314385247309891316684027757079353953653210845167078749018989933730766356641327078226745745982168647071574048518335764503688583828288325074546407003005839977790629910985643104864813045746406854741658351415902128950560969648136946880413450185803128635971895568300475774895998306121688077076182919487304533010723461084842945948640527736220388670458006380868367556183926173722771384758546004156531502894944383908350175426646585237857060963306091961253663512613644438581994944958293095430920383205632379883620894815725700744626062205671713454360393610769306571899782155569228281652224447420720980898649728260821141534249094604703200636224969856918359710807331782960025846771102107284487012606783573715680761947382131413117820873827875959650880991024761506157470775640112232747033151858229194098355018362493287754145137328482495717394248683429854309518406127080868754879639398124438319543448675925096671076338578856386465542525860702256286293781755409315991004561917801902198787413822088283843833403955196332461449223235620310440710402193261063705072059030278067269270312892561198347863428435737567805424226925530059139226687281531687110111731017284453091048771581129064617047805607453863737263577928006281315784297779272472672132602538071406445327834994974407864126962248557451217003216244731559948258693804002472377782591436050898263101775344251096058237871448666469123978605923039112990978638717374201835033276620198832477684817239755611728648476019373409392908512532043875099405854606030179342863806919936919486314146325684023754457537444619197199038921915143340150908097844778315130383699808323150139013251618947369494870443564946256163949286320477174998993401087233436452223824823028335547011121502206760093250983270573026034558921701336609068290333285472920733462645189935361628199479783177506814536965604137186019413589288593686908269387593472019231930552897694703360520747652143921693801080382412211557188051473859268488613482666932582754430125217957454094729357372786815045519114059804420982376594993470811661961252558182173572733419147603528353681937658125093067098871546041086425291512446163956053976586700029769943863697034632806347392962186319638197581073967196563425578320463852272536242838364175942713727957844508688887383484691333131044093816461285572690925314725200910851730293247902499523491556868677613263779144596380991538735305658716731973415311683172805502493233800242461425696435196410760852810454915076947137755236760206841419653307220736651005766924050052598363572850272766295938165278992264765394322523122126013363065114832863689551199534964949123449216113240962056421371547589405544999800989102224099019081685236939009594410104241669545474471828541946856965403677694917591575183951957859119762353034839805924004072201513341281321218267969614499159244152402772551849168250048371182334988033389746129284670355849795559104406064183206186612614041408106962448346021230302877096635349188338431929833367189994718054096752985048616944462442580830245554831872832448674933039519902827907634320141501979573717877551067275182883389493166347754293388313445000390893463096056276825596448537622361514222567586684310297906653643820157457278870189939879608361922680167511959130478372961410740613183017811826453196892316707441954521974572326492558421390327835481445892045693359918453441307817363430889299552230694547885827625510586859622894684490383191730508366255820051775883448944280482640039003374535613034056764531807165636860821552503540319951333048744778960272850664488429210233919499355404641647444023603890104021414017116768882464965137140946416660339858736992483834237332761309595081397899815622657576844576075872251520062980779408309448196000545249794677719100039640394095116792730859435001830814066150378767820512103424005864639263210266536930653446415819876983421413330568277612745179938267633425033654233081644464876510034823080856600666351445062915160009760292547868475881580552491626045610445998305078172396121110633857264490539967506171543329789486267427565199922399541143405929240387068088594707615022948949558845594860494341398759752604459443931097201941520883976970312377779891580628293637281618073255591857662958265775822598057668112951683984420157462422574143217479901123205878723747965671044149390592381076796093199799009629000097480801630582419017334761387723227916792668989876496031125066454881517173673914637989239940925015476071113778582976178904413889727720603889136146226815080257626947562722350602095270076231488244924073658844674202845843368163662150058995274070683662813235461452660186696101326667656666208375879534194996857976975218912487540730683368013620840131661875764858670919434366966791274109706617222993895941233670457515896381229420193464285688654882131859083702174943107429785060982581287832583857588944031004110662520485296311284578044285528379714845777581408502003770115430258575336512596982515153394097892839748435995326751325650014322100400151220189174738346121906663308282899459624078554007061590870839055063446187095221899814972325154099979208910108794208695601853947477734864451125561879888200956967163611902129692164120074322368337001401800489597184878547831118895278023583656988547138905532621176251317761954438192052438764013838048508815912000025769089943306640111867024763061822286193601451923529624860134273790693723198285869474204193099760392691876740452839121367953129946907187881939003939412019147053449018379067762556187666390071636918060318010656720483956683463871388794425545730437764739796991075143334850074821622699473414363031959291924595321383903746873789924492393820957425615778997030456368062026976001646219103811387894691977365947628493780640765160456398911737806551384235129284863414044272622127018108124223475191751883028106609825988325897801257491240099177614733648293509698008524800431878882066258042260173596565352304882873623837077961144477065441356491450613964915458251416252343628542941044172281509684234305866778071754690696892874956895201686408936752163624678568454299606847768398239895827362127244562563961744660161450021527787397012919349282262508379257032814994020065761994084642776050802104845863403342589105638287728586253973347854299731759584536631548482503677539606163590976229878811695497147501482665473018749243925100637179688425604555682256178969406900709010918457220997146916666499708222601561885288219276562034544100757247285134676860370096309753993381255443597201786252993381520742052741587462676077530174406300891536694364915776542686908554721791090228352692489133153553243357533498108153219106961960982784937057567926125132587942052273107280147055908091903426199690585472662995346637612690527330360004515687131751404298863641742098440612807724434155005350774990595177910233880360000238934715479618377058331302644735048136970414974081702549076020664143012124230497052934545741253684472275004285566727937529819185399322494295873863601799195098535869046446712665460929877155071771444218402386865483114507558592807192558092215078670234145551751970381362259930885181263444845768110189061953655934993216045336983500077662460192538113383752476974150564936835023209511181754784235369508247709034302995366896810677408048161372049659807947607722713164945625141851985223224007530007399221960769492754778073930767553834372282302808882813808324276815996099068439345359311599234501496938084044552730492909440168281714720767340838345139581484129196553410507096396729333031710369167125909768425527122035019653047293419898130562442694912083645361302392752335014322437841729510127548558651974385879292232680884314282541974511568459835459737462157633986189499180079062888570226251209912110192346279613848031211009394547136071191673616426504294019471835988137716476594668984056376970458823878177778866305470834298404092911169404331033960201580760994102137251655382935621655198129757182760188701134962669275401394502464177390619729776665708954966781676671238477022535887570839895236703628153232118565424867170173033942466492778419119929156611923514399624592981523582959077717985424434658692247095827389330435156856315013244112396465858879231629409077493624975308924589086391854072088505690569148642970743265982468211028925743914820057850100561514765424531703622014816640745236388614861592124252436423034519447546659003006390057378588582772239177838847750328139661180485027919238859354410437440243304360458063689378920913334707515767685660320547911495041383296803561047653747500649653327972961244557547530369122055608368669256216831796045834346825271697078157828737750668041720760693046583243939221671795454873490596837920284311802007302665288604261322238868226745703368838075982559969619078654354195547753843925231522255152353792253386510793762156023437356400365778202947241079303032812665129496386524073129606127259007865133490816201813945829579269245910631693643395472121526008172250963804611943942837278680425418404582349234446881129735242960030518982717535090714424078574836646848793713052069085284251117384523000828972433498503034548342152152881182529016176521775894850288051682489264063614105937422470296217916746908855629220829704365019452054387555837133489721360889399222151591634632142984562496873442992478346300318909837701366208529294991025779841171470795845779943417921577043285710695404849921399880912121092256977738207090296928037906756583714856031245266270644387216329474167379601565437088056584143585922072219479802781949101861945189922943642959385523193242434898796468277839494124987254857795262234623797789589882343675058570939208878193359100678455365679336464079750256750715262830274108017977645102490436116987861613735003577597672602097172775242160327440159443733680966002245174789350099195133196556101411547265629221456710142195831989881855166176532251777486203927187233084369997958372738914411444458892269862410048787390632249953551133005700192942797762318272303334815037684259161287737047685476667284759164746420906762862322932728307171696410328345276782494702790906501145876262267478553184602073305279047620596505963069821601230072796424418302615844260244759176161767005738934889001707495547413353587687546739226862235723697605695350613914592014311117801266865706789088230524104434223649118152952528112412133250618079057808876179387503350791295918405066948131721424012751466817002557784866443752512602547052404112720742640013758926161914284126375367264514266255956288170849065461467820946150811032004837885463572009971598315146646280383348018023409533419872067779942523976238931433166713770314177449849563635823585931799736432245651803547005154053342360451351563575935992747023781918541596243844821868661662516214035031494444777089033234395937507144364329109393768904744888628329619372925251611823283506092157911070628529198243371461925665565261553311148594087890441218174678241382454219437184465011021527616866472794165842156610162886243792106134001444087399034989216948363780304517918893810222840415077154623062397127782380889085776518927559342871093686383194956186427289433044694143425369444681842100883656040543825212602137619385456949680356112708226899292004099487339088534846153094550777158343755892206666184237924114611602862625657152964606768216944920505015567692891668627501306197358284849348291523352731424359650185725572834582349279664810878014627256115023559719764445189021068344728880176145514109292911658117456086687947969316146054263146074946471397440029740899090050408809848788929724115706859708247683003747702194840143537609917774204820410874382687849342401724015749517267610298395329271318443299143859175487124392035138021126801918734573701758348645493255176334122295252315894080071573274457657871956070501179930774874465833804258094350890339990523141259762871555035492108095592313317593833001621628180298825884938465689135581816015781019471979352871665325195727789290145550699596672055668370079986414718238595652908585788339885991237933316174141386273383816985750001357971220924597177372994677214629736985455461253563596500604398435279063224894447933178485421414758718858470576678645608423309692096984552646342691869370435435837407787303963474987351033054396553961458844759199214310726579111488928122896684589883683590586189130084018552305702040586302733906830612622604151786984014043448161603509977400250521844977816196985352247612048239764957909591225211562370569484372034044125064182190064974745675916506646856757660014799467825454527685693060883171437571824207011599306283860286760227703864954540153889917179782630137851322774224942502189160113819253667376859806613951077907671559966456393500758958217082772521845026365429341282078995651732474957836014273435823590567072619785107508602038511350757847805471909331250666084703486683957644224151007284810307000382413504037623632080912156596890905502713818521711763490826504837468701985853466251295249731111893006772127044654091428490079456061475954605265810070214814588035881633988346644781672170695078268113755572007005996243833215967404965781597385959247933267006887116056929254258483123301351706843519717155574079126393083821092565142099140858344614863054599774282343304297978484103241642675939088335633634355555920107864496717947022586362418700023041834308732314971489035659345298966434306222989726768720062599300822894494149151894781435219364311612730584697328158864285171364300528844451481885619197014485507363591205239450100166232793753272111173798622688133995914149694228567884812752804788764737931988509344129061616069806247101100779001879827997998483963203599684425824771034852339112464495406732996358819779916810562542159351992893821472721624124368740772816966487852390148028281289666888271840735545686548622138122415479850739120478573417914918908282505578817600730547786849860414930110684811130363842530438210796920990369889811773482636896064031069300959530371525413816718900316995306132330556847369931301358118767148414956763248915110732868968436575008569823420179584896371591082908269361014518645825635171866351711372334537122312924615366615975375592300797231455887309439057301658806493043611492001938798905369402069169893763758906529038198599325238693951176348433149428584642485032988085491874562802038457039002446856655142297467047458888775803746014589190107697695764027106737964873909818239383437502277134505181676121080305275858508488335087504772182804535321825225978851559809733223493849595690801959443167546691288737875931917578833341869133596995388844171014529921397120701587991129318168693808693076744637003990952623751811268586305881870304084158957784031471399623080025069243773053261751307592587545655038837826047488498581302019909313767494059183252915578840377381314727874852538320548907739938729004293174932693669896297548370524543413573423248745911838522231418679160418450343613224758754976230491160462713455022900762520217256996808438655200387014843314436598562325138606062368174014128987041624551478111151041179782649966522394943103253173960184660711379111042110210639766581404938807601236024756778243408941125295323451671190899824003807754237603261986427896964584741535907374962459476106885801643189128152285040053727999180692683960223913435238464934586496784456957526201331895622160721554259333385294802696580756255057612402303045180711730943998944012934126304942745526263036057651260093029666572340953287323782541431484343601714551150331511371886498286598949635886206444274525669470681267047384044202939550323958123599071342962727445264810246266046992373792642684878096149443000561805971694421951002045668358770334531797388660761650590810199864471807986300946559864972329705976897074594090698193945323780714931429812589747608486104374092863736076981404873814278266114746339402159543490778159896997368740177741979944156098592135943700429518367446756514754528614871821404719055846656965101069838603712243849004752813642015666661587117927429610295701431258131467260579158288718766830730764946018492260941906795860926301319535880550338671471616429884928226587171190858976725600890128110567689751763201008683982668031367283734812719375851448160531418133212129583439785223471810614135659148140430756921559627119002243612524530847948829875394458517230575770221909845502300965515550608224151620533518265878620926577134572510519124342260897173821198779206515560076500690518009967469587577084354867665788293586983832576382000208268227537293651894417857924088648990260462837798029870702860394387791656118352267799834814657279005932829098976499011979057912744929023293503699363218114059097543606474226087109897613507347329450021075579002530277481788963154659497317093918453053638349492306682742215059620686456474765300745932436717024327258515709714563407029764099964162906635355146672207027318614127993254472483070866498217329447739764679386890846088879525409555346546418309399491732690550512747863681344329322356683971709121362936052191082759809410730284579648155040821885968507696595143890403782067767412889275110647814460749351582853785788705527258918367340421898033218400336680506379419552010499003949344251822021817377908344654832968821244480826841526861369955990378516550859426368645044569458149661130419135763003953472052619331786270543196214789260889050673891596394007828481574074266448004343082869508415617318347892168793304930901451997523328245908964845653088533413743211898545328110020026573776496826448017197907739939560917315418675693368583844632366905003123012117123066546750372086619900889787471581581150937016931634598408147094185118521230195908764194056072760166538104540021426809037270893444302387679246342429267412119759177375793419504670903948630671333185345457968368672317438182224588717286056226929592741063828539914491797407771407680888286258111030415625207941960476242735358071659141968891698095977178519880153172043840288888343700508656830422994406225329630490334664842281499643833487313986455237445638358853174032202735914383878972570819442693156484555938289614280186369535891382469604829293136150150066560964703425804878069253486776336210331576200639007112887132387329172576858162926367173836200697857478375866941898760345903062679016308092062060451875898390042480802910607553840718626253375240792148169781237779362980174136210363534573608072831531973013293160862695622725524935075864674873437930836856941982735422557513051573984456732973105570305429841259230635228642259113641463690885406769474288274406018565474346096229541595442096961776402745145177965548815035594916840976888166456293406941484215935213965328039466526853894663331111140641582635321689944938520714608525307770228995091721788927744734362905038517265793173062245430143513594607642944464552629258216967587570152912368259104328728598170337770253514550241660372562481002805935300764621244270009384152293375413300308633523782586804731727391206929073075946627634771040661792191767418642261752807113661657055920549851452802387355558489877917125215056840597517917385910439257406365188360908629074125750798982824933828038651149602354355054460166422334276817133665784602729879212403790825166644268022546411546749631667940640159700589011684223634183238344471973147033057104527847095722964812769319851626701715926734169006007746415429347175970640097160475130554600970487646839776312676504916368466032931472141307972004840331724336095894513113494879426732454970272188716393140405802967051136781383580580230028780923554466062271122751502386660468067100313723831688060021394770075601523583226783067655560796980751755014778995132497737410205908204955998372301386601628280468810411454940818923008216119916849265478582443073075201496025951412184642998609340580032818257880794545935352226273805638050370355833247500997341122470824602299684570337345937888472643209396668755075259872717639467515442532668106505190238287057495325388752147277204904557611105953778027701536658346425094288400059643201940903010478194452190651702212863928220843053415211430721312686150283692261107201179985474013218789242931371217842321515753770458785328250592311695413905160910977174552711932860312490100914203318113462463128035442173162350670273932118516464676921780667187713507666223028532944112490215179134103784654091772249815192296379379397865760544622336323706131016701928971016682290761186721459108621897680842243132352111718592991803648293222780327028483343975537544963744358960114260096246941332961699126666255799235453025882105241085038010879056680587892665364149486884902129502652792270708191664351092254057194746900965029941405395631258076242654108204737665471245194923492822715579173921252648423843575847434703862986120169271458120692389797685959034994596129297605829817463780848056469152249834177018440944138839828212572801743416412136778147337990724677775544346059907477258730694532862292301997448931823676580970556920813929397002961840970676268857986332648921780030950362300281024875718333785763104486614744088698661368961245806472883870560843669807067026679985722971252869479339277506966447193049097849329669250275357903348468462719397334383325792038394701135450312850493300576738158174384354331966583581742493787741185425592142113222132706481283973753326092954191534356089255155305585294854784524292589606258947950871499224669198119842028682954070899170572740306262446040066533241001284101437532829090142194778000246800323319431158056700387630873636280635718513932003201043909459862842959607176188799867469040340233993645541803556470263533641199002775787521784370820350938730039461346202319137828819628912726012949232810361832221116418957316500085572812972178768238090541046424063092082023039816201800022511176782607976176196837449476407511605641360336436818186092255853870442128174684912889577945405171597575760488121608864716827736048847541469765149397853210808778702448680219817300154703223849947032296494808770894530736642779971141425245328476073621587899420770842346638428433096835725458525634391206953019675704042241246553124588816321392862169131515088284754328062714601233688036367843507766043063276119389609727907087034991518954889987790481626996915941808906214386038920227593562071718495816807110240517868503343342733914560618839710259907172220696790269898932779603356758504354034351793712791905492622064508019848756814094838616576177018058100103299573142815030699778836136143207319467998341127925994662142043945408017600465227840690077865552050712421992510510209981958971487801912741381456702673449093594028442373928069523848833827640645480222048741280777030142726364784575027797048010852766940245254875955148035953781772176000740507447273365786024513582921601012769681086693382509134328034544762045645287604689969351612552362837437402985658101987899990224517737072605890020562177403415033774815871780775472466059782736812409123631474410100077935274188143660293745859609592189872334793565034114603476460471647979241367169177946038659548368768701956973950768973135149176167631685048267824052378850007810071769636133098193322141146562409694140041176936074928757176386127025664762532108249247668166899909549986926566063260790943999230038863337731823454375148157888913943413342336611470424457861014196276569379951027624617857311351524813987970201163683963243450385435400911860825255035230380083484084248631205132467842046457941505731217909069471156644360000366296243974181569186074592196952743021410738689098134356199365605842753537431194097182752654028345567190652102100331575588388790642362140391293209274066869914068204840018272819933246478319628225342314488238857553829985314330258623398492380891467261274204584638425105939986223248482598460573558214351651806623284457791013229697071272585761397167871632088372135678538540282588106214804945228267957042263689870427984718455435319255966049107565463603962332545874554082818821690586538581846027981009977574576527667368238955547386114266033978470410927172155679241289245946904478313997308670630148748625650508033253092794316551541981537959785717884380941978542143050513855057073488859193403934778740456575020753445926869991397810619216000610291290682525976663244959648648104446692534734986738358197129596469640608178824922502301517638550489698005098904294834807567420979987411211604277372761671720044612397331049547491472068517029251931299493014437100223312219776797244794368656942181307551506292164740446317385702572185034657007081347490098763784651407425359763162136355686885002436593931263939761019661107375449106702237410069988822655050119973169262959823931515408684456804090773370027030750615088870501601812138566891790814259324489254575212909146307043266556061300262147049081730998758845771386031635823361645372911333267472709364615173668552423197631485947226807953761223624945375557458951524172477223966131445178651141785088193619600896725630785752976385567302184757287395900950280070242874770018384091068965116952450143777501250400345875619630236671966597063759430392350253526584141163231566020064491681621407901675446432428796788552363039479738996800451948836398938950134534793983353433235340736523432236371859030915116106887432819152533529084957876632771678325447631036257378693604769446146520873803252500817045066492869997031299471572436878100586396704253200840597182796822017041048731515284324932886303965057380614136318997547352314718639585560314833710184080172479392316440275310324582088803345269070211799398509946975553698459832901739764884966505895511779936625601176056880413676794116058748709710097309411746055401542286419823507091965792389579126229030734036132558332786390439647110384861121857359103164927213037604439382847735728053525213834537164529836394537618754335963788752200899276506356691062149684210722875923181863547075673063089998011010425362376380748502784353129800824947331307988317864352089244498364756056999587608385350074065522919077487460223650955670812528845451944587321866997085586137780199963705506206661198287688541616350455878306394879223408601791376637299065502610651336686666802149997420993768418661940844059578039646052802878995431221018541900078237927661867754379472967662486370931665301430045697954029549998350813818241919960071307503388138894213702932335763988170160147774521699323653185552669778785293310232405478905117445366397051644242273195874536666419031067228911102119591392857302305519839547096758477598808391589005434811972505315769115949679195796231814663117109450951801210594690613059708290264750404720364606453707493001383989661339440967905781890722109289008922313536211000498249557815665077218135468074915454858978756142938127037231660650234645657287396842056510223477268760940721854678787906073004564665941927173926436878446735443453910940467211435011774802334375756279219194212834597876261388744269564727965914235778058545009868765863322384974331121795969229463418551547234001250068690486002647848688943503997822760353797968787940199967934840542227838142769732150867638639417593007763049692616224313848576630688896825532928757386082979601316982197368967929210038082681578334405155396339532791806935560699213478718362965010343856046942178390141951555782196110654211488834308140775818009505915616347652685418784299446189971936933377941582380334615709228458364518878385674142823023102320366559443700457671698922023150846259126036158353376787392679618545090360226779136065972794672345141387803615923735464102226360318002066472281730237852587121297940515714718085462389459639318287908827928157523189600905644438063716023678295845202703199609938812736705641376754195290397750380906462075910074176938966527247439971745143271080051491544160204761506992301923137541564257280001125743291356117395144171068552254274761866780019238549023504921529935391620012123465785084142730244100535772263925060707333674301127482566575331585294778809066077924222160270976675488689145201299152330454164974627249219685111706835967821934317238732334376912815739792139382787411572004907123578927340049486787141854853887896174398197659007637554730296750405961582657633520260262457982444102935414302874600684690450405970129171228719515215356679728902577905265336114016018142954247670606764923902382249060906040812470617364426238796337741873751655612565842463122241281527957360855752979987353314993716147132953559943396647382675272769281563167242536022769238258383657500852817950334252645769746427657675474181110316082056247544811874998334350285422335225717257316248208390027992104842348626165775806976778635884912741451957176582012327047399809304081356274863672468843408484539344004892723827723779864540697146125604287604378582185174712146664855914797928700285888633242812334323632084331454506110720147613601350132210771339421233247510215647621056435313442710506187143965785643938979586375400657035203706519240349000532311550180332690453281973181355816800108521059776079481713800276852806992739608425107005915302007102985286970339454764153801233964277376779224351154472143037859901383803109397362312732602668240568667588986306235284954882049885792359162999553628872995321510755589628143996336045259132434873452683971142234528212798810813114615303207660767841528531082534814803309905297914800943663553451688624675431744632577850236948669727062460987648359147213815170181174502230385047753532975565424739569550109314088272997978850211664077645829994468190109952720400493707227722690807610088318250528172671122614571164284108829690974786155224463391270412779313498884321449016154279011485650215299042625217688968017552500270364334232118568182340876947938108059355064449137319690940698641186694525342373047928883920315763637670534918317279686699726089561820967724024242429494508557305786988801086564342306724468094857635427366943515281113679386654048727071193761180210884415777544570744285194608789199953715472867345733674405282791941765853540503975193616745198351329894695528643073102512171357102059400603456748568797630924051604360022930097855511262306408545177628104662650156884648334993586232521343957347933158422952518374561901958675825138708204271685917750459776801717597551205785565166239830821993514447166514272761315150191780365798127617964182749910901910793987996414722047149942337130820186649970227024334925307178097174051445907689720014109027615767166797888107431709155111696934665012114876151573797471071344885975466947216626131554859617135895969278038460335642382052450286559509305299384265748197297068904298293602020723090243355305791705006117766774823641187506426433992089848684833566668565060962626975727743011831123054653893024128044696086488144899041658488226274899431409946255815779356759926893498830834370074901398943016512651178405072656661962588525553261386560810329883481775176994197392596014129854189028133492141305207931582104640870419392679456644361889219626741023797756361770317980015065363481590599531292559673748693640010566904516898026938159645777539244705162842261713965306093105226471235108247730554039094497492931908087312642849129480609796933450375712045050211307324261617107226773608434956900678920688846490146668283423429772896687242372441855974849241151746075898047936079015161785757568030664849228953559808138523086402252053409039779309984330955523196032699263464507791328076781422278397814176135521237758407034267570114182721141845463026419243112385252282038721708275963310959585605630800236966328433191835849656928309894784357230027727089150291903653996284040238178686411212798702481692573878964224873244399265032011257816670184038764977166461849664658085990706443596430142722860914287307133056067157679334360737496402012219669629267533867601089370723954768801264093257591537300730628702873902719717167890456040897084474452578118826750690105277754206373526225537420182793572540056088381452382047231944615152796584348513332417850391378198647010715585086041613147464617286273373945605127775544051945651937190855432970524630948435278919285540080655465158422229185040615998471401391680437469216747131073962085403343830427625318791869288741985432674123316725104579457160029858981032746627663270490753676621960941119654359640201950432675791856288948278902832780997674835897976186961815051056379047262196578685993065599625058737555012381092974625164643412697721068149962039168702116247669934721210327809666011841923356945986599993706842806727191215944328395185357217176292869184444119523387284481432422493628438694122327333845228380918484712405359848266872471715177359923318393843864266707394482574045342221486402022428085127021867090074597038225609420762308200465218674876671294416130925494895059260102517018495866449162043004260066755136250619272630438123224453117807742924304840166373328638340009042674527992304636464327185668419018434996261479006840448452563295733080726697184375323424833427708817926176571465524631692548038161586352023037251261974468352069498553798576669024243437291008215136470214317892196968045570975659286698344641148925706532502511624769451455852494703228284012003766189290620032014755310704429007297657300601802427194620558751189645412191949505815633981386091479087765560120752896011893456894185117227196682410465003126191219272041597926170903619877307459565257798925708890158002761714396926387915022955633388138157229728979456302744942701420217052364021412618233646538604100600229449744892471324539954762291704884509452323694463938038434882035767425581976214566997301955352160260955669116010641643885666657842227199395918890254078097032174016450829328141355272776051001969628657623114398990136876668538312595918137781174629629293559905456042996115717755935394226935320589850883247402657105939412623801873089663950698503110200208375929087453556752522889042048447642893217906196893888729731708943215184974158678986265529008389294733642693957374463967724382679202236692404435581100933553948793334103555551439360477723954626542418932775519531955281226846622538732474464733825794336320723580299361719470255929834206106816599409821290844191899212146221387911262519544549178101996382953011301604875207258645572575557087890787236685704952889813007738741364634582018617736141984307935213424221618672739359488569026561292109507620231390224913058893182004550843606949185193988044908954695670991179272567591213950270473037652976906360521283493286928855344551896877103713122865297745361251288174544094548959613896940312257926762898616359636907345062727183796503813755945292851212533169871036842644674971600576031869583933746787684519419127692048416297811576386349881813810985445437841553775440252302062370246942826017680193206895330246826138899392496863056787076288543062326240553766863768531485862567979097247103205504072267236658591125536891438989670199332214127167957569291615976821642655763136099159837900805771573488422807600193793741067958125721414707331306157245814244274608214546805191432229836206267299793386809749948630734367731930286943666824758810566798507261949443903310359343674572267264662456527874366087706736752395761004813985693158344077335043608067922118285451540314118990229040016716561297364541836437492137299103009958806444859859444917318711904629352272780955539495449088449729890791354447354152014135130842832439238704960692274135652754362315368229783941204551315673889895335108502615706060035558502306205339820154236922566853563588340285014972382075025110568014021765847105115066711890915880355051555493292184239648010335873383397026444963528333072747788331299657915401105544595125967403431571296770402653856961435577515778591420715577348368905037959345819583042381666622629837743313231651560112009310713041379757449020928225204670001387958696715727176938951604601337772785377564058686956367870798600172719386485696084012269129412714385167011114769730479638467940809217383362140377883016644539119846832258762355879921531855243579824057461397711462760702014921974718881542014498775553308540883186600829831386105359527785366684428638992083056310924260526278906098079518237239608294521639356327410531081181007106920029413164038346542135641475111324263417620806492677829460511974755038698237363887633427567885478052537888971401507722027497159745804109946803548230355352785697267503786577517005447735712203385938617901209190911607045560264611470655105689167326508014388869892098351485584711162238728754252365047183027024529785762023997903953020021487563233226330049905463581348608977690444654903317629693581315709970511241865028774858733215510053801675106514540874366845664631670178836906261088691316485406530624325716503239233175203841019753011252653156567976239252317292720763332388986234321096246564784856977747630117966625087941311990174494389272798457995915918533820602614812697518585316661444683422522256920786590681471790742631030162292827178066837503889283156052786862974666698965349601220279079919716626326726655374220401617928670854682049120285590019774005052199481373552687017958402393956985588832464766426642520854616810069577703239295926330313927661244792552182565457194726452311344252281669791412797711842489208543051604404192374802084007150246956082223289394640774882976059933706728696568108348106563445050229536728250518343214380634534820300911711942913702197746113331243590404157894613881916163341019627451179154143412528277556827478669457827002395985536614883476701726481781187148076923177437410118042450108442996055644411377192608446642770343496273872088915418282089498110496875396613613193982006062064204377010783216106203068025668370225066409989877430600021285354615699471746093776825211650845961545891456405513617862267091262256153465135761266646483074180252730566458119883746148021348366135197784820773222978451895034109185375597298717503893864441029635544725373464578247077637627261404518646089223273640430757381660358940755402273202375296014108219373196963924873754482719462164769453958241049205538508034550953407340718161636328234976421135450319421021957497978894883465426862597101374642141797315701495944077622691167825402145496814481532262294054330675713828979015489263942496602778837600744505311053151788806439037328890601442654130904600819814754905691610976240508265195417956809601103623388890147144247669947151856587958825052640292032254404330368336537348944780055692263648948358683563794834375725786389233943840252304592463246778131138634825452082466797564195349743237499168218973400487658136048977689385984268854478802372510790922796750004843834821645113720702652555033386446232402988868257028580931941660416330262369568424614268937656786263714073345956835450389887765239408976411655881936479261923351397630382734946445031579605008761990729534355660669983706635859398420959738301981619125357304365830573546934976783740835729668971226592154065648861978805365312274663693788533978892749220753935991131686637175329191942856874928983403750882986789642623162600293042008634410516158059108519161148160007823687207450227220963755633610725787694974804382378634955373776901191633391216541798365187146150597904521167266162954777751091620042806959829174701009207798809028389187315207711214166782556973505680559460558922805549503803304131342982004692129434123879459180816750361423932456043880435227914792529982408914322506063085293403103754836440770325322680886745166657593620308823629212743009410380921186071113867806336008577758681306254799615647845250896375357337239719167513459480849233827242116477664194160954703213068654478771816799528990822847993074442166344075570773526228163821769986038144548382674336007277113206316479361285578957460844481851007035151399978652973685099212297599310882183055216911090771240335444992308367704935583374160405225545101716094990474201961287930846535543006118514642124444774545453980728267014404758893357824978915495312705884646693811667585152699261936722480903814216859618821364899532368811248470527998253746258830094197272854247721101244677779108274632624903993433386164017206072002002231628626323770007148484131487807776939481794790253528766976125473307799308313925462522635231181005177137375838924169223836799087571964528784739224362883292793992548871618633110043334033599949006931112145430379028652665981309693085729134075399220357566688177876518728950715096755104331191493409878121610634815591118537092767082882174618069820964368275642925622318029712397360964549039977608045705260534229065113395742134723912370238788126928616247817946656436571578192904428451652411480103289451541178980401842265566048524122458423218587235308748925743274914542460914469607708990768964633368785856330074857209622970929237823956481979973464066020809024137206044324919008465378728291602180252335304287082923503534817350214429917535514892984353280788301626547069500577619191679838137998728013864547207779535289487869641912236394844113982296359361815446077813142811741100276188010436649092315213428160887568448555758911933859848560960636786405076681257908956838662195252590119171975696714136197298091313193681170506045199062567330033842562859176432807563936148234863388137606566007270449794058159463800738104106404214736035766030842833499186689820029835511135980329966567578627474257479829276047390018634272688886460875830625203345290854384934682797004875164694866712836565593706857345695567999321671689344586480222914190925606211189954630089752624076900338141328214705109046484597161943900365455766275995440815485302903693373342396554660142615495744114624423083446924170921714193757875250843158966695135716889585336386311367231740565706773153065567834320949558996217678860198141879441662080653989169681048250147859639617262470372920632149931479229111648976757009103931824479977155304425367277842070008731283152688732671995202850399816129517214001749647369746118271346026004752612260891648871179862058044751630706963255259217531885879855473122464152924512872049848514163061103353915944382306489132982818810864957613264774559318110633829666968343851016092936717981646739528083428141255302127678606302504423023132339942721650239540629313739877211771113501868063533117331489233137396903815098105732907276104543651915927934577596771721362657888720739617189863865483406539384714177423868000843912254211025589890019500266734496048622898596196911034279974794931323881771482232483729605657824247787895920608053449122488881701955646633624723546541425492174501412124812267029687900843798290787397163552320882479831610764441548931022539718203349206107895096875478304787475648543345230595040250192205802481348148941182272790642258320805473936636102123699237669872188754085496812167773380840756060121219011152557246276222477736122717255587718890631321665975422084335926440452061542279257691810325531762894868105453673139821170184787940685512903387411229932336043570031399498108951719296822844609134622020498276631541952908740412902528845302965759454302253471031951806573571912339950240222491036261707388915531854247763497689143650119048992167449185912321174948851807439906298286954861603469905672648882573822191595277301186011099971687830409738470714924170775336363312956145287234638283101556856117684897025166447821737969587121804304211288976304678136317791080359629722007128642406876931356754596886168219299913753728771796236727956048829078769475526770722103315714863504332756270814526175940348866012537071503730864057364024200265167577399766688148516337688723206141175019002097208887606492720038482962487571888861325896948210165701211075677349410044868174186220969053840606179058551209107257031322928587008331312196703178358185825430453255246569242249792820138863522904196399104276809561544152445582002026053126898069564202663301137986644790108061926111934336141801022329834866434627502897944208853683971517493921379903585704042302557164384524440549171239990250200097027397072346662047809923969171766888203185765422548716876386477065463648763802130073076701352482125005304676794339689024125647109042188058209013056308185043577182827830192171878190714608812896463263357125023635185226560498159915503003358887802429351855364226234083448903449059944294804629612727689456513124941277919000965951591317199261203251606126522347574399543807210589006298319323445190892133466190183341639995556549467485528338941721789251141598091546465752930500271285627286939366659834016887649084802725136065023534616405766922403138163471854773210840597825566188114893596498344547788652831734244223710328902905119107335344626698742464252765418975733582178744689447872427083694256004398310887204418066020065781936387348695551005529899306573522167624744328180371593224119834658395027769893938624377801948728697715500798192570525375061738004814039225518204484851191656429053919759925806816040605887916846619948919869301965261036734485305021088528173922759430878644695540967002856550411022585833076669083638768916371982433277400140286309390857079752153427714217036957951551595966493499505735370182212354809267931489635774791513870547756548380681045609530770812186325121048165454829847502703588740285584654892973805538697088525336268703805901833725941599254168370730013576586350750847039790074522179815800473760582054336458141756351761223429905156080611923633717166278446806280856985741597784370471523398847345101882953573639143401857455960964801368845975519495699922653831515699096236061434863514122357474662315605061487011941002018621267182779914536215702102462333695333583980472112651037007276503469144626326768866418778150807505402932519406621041653507626239739025212719916929039535864632550276700022480377990977735498398905834891773338837720424112779870755261603834916841961061914378641440666128855887672803705652924891452966722307894107832657988136691844090728228582915241902707732556465327137746475919255091538761967982113271202836256697148804809175844216329334361521230408236753845970468547051927458130002628621460547238840111016395087198831636979247138926218489302482338732738460838956877988766155471107860966040969758272896329665449924125498728738044394264787018614996687921614482390109155776015329764268687828872422439981443610283973710798227460129174856779766411521775435962117302371589811598504060358401765575271431656646657276223960108470102319257620032012162691587254811791442376071613277267380299326148400752015779090356113879807227585397000693071336030431820602847508303270862243015335039043789432903136391991531704267728376342219415881563650983359530895395613393338156198413038116195003321310974595374283886245152784549091805042690813452740669781830645147067651629743285139176031350665376016820467897929564372529420828300271118161646739903979057719457274557185975147675252562018456758899356159924822963462534041498400174751554856151777483556396589018681864055231114480468653669480084741804426828673517851628249984296865312233085537286344761916319477205127975885437290228356773224646890622996012592233735555646478487306100196075852037710870405895127355448828378970625308024857374648201416318356628563716232784641276353271659175258289392598391444885049820392308870178975288108794624481030358190874467195858086019860213158984683646217120515494894518645724852278089067422643336111933271678582845772808541065467376963835392439044021544813004879338415166362088956732864558997682569187504569745810556653035051026110435472310178131028672010179601694205898286559548782870310887438078497636454099164842368158344367953760341571034523604243930266631206483062750552400115633765752662815832322376746741234116996640394856053133582535552145604420152869977313186908169286074963312362192426700578791072107200292713846642236670026449250440791584333691048656272537940584017774175121697222711723520004864010347262521370880880895843174722279622078706428373973271340995229610456669285912629415801912340144058519863522370474266806870592375454538747691136309031965379315016703148547685074814350724405880752029635097570318266379398069777664774541073859536753450734119864216811197513426753907216449479960487830633802561399281612875700867021042680767336464550430074794462839872135256946708217511158453722587288124866649303046480007101645639420077931100354176197407824367834152623688279828826294188889819912668724120159670750011366825487546121586314566394864407956894153390992145721207001358122166332576141547350361842104673195211878846552902048316681651573367183780105048341123420307654045544693085449751343700172626474641413188813911234147583360405726592036370312677138440412872760820872112452482360435838836788253097534445065341059096897028148649330484150090622864173967210851447286161981709707876593129776613535851295262374489186492328883781468257925853233904978661839680239750266295627906206934785412601714513576123581169452874156140614960043797925497675886494143014634131568780842137192450646430745593706037599894372688644503956365838877226708388234928654579285960714911690585150117442020852921124265255810459737382200587336286721780893698865825081087540754650911359256913472350358595648542912802798632545906796024386786672312456700224571351055151601529950289267348072154757224738698776602307243843366432607726741975965370641666387210976987012367634172026485398058507097415552786740450757278743906806299936473886868214231787871400059452272163278122085951746887948149590861520753877824945242337816130815800712651188697849858806273515050749827263505495190161139952627839618091341325197107948072742857805870805566986501328698992788401559191325352408823540041561971157786700889747382927902015444247431411910762771564741718552444331015025580530811764964135438773143073234144787194311136637466258127114387730295636592015832470094295265522646760797252440587583777208676394836897694586626361912322086146359712111853316013519250489999142072703481626381857686965541119047329026434813863961671810789891772996738285934347182205592089217435350569572211477976493263186818148333240938394381685418535587224706920755006436528352226077553793388103780390315771576851451577690596000394721712253360435358061039718721713685729543026379526577369245172000707601809492237546986485337983625013049175427959140694394382246939981162788913686687675820192898803660149454032078180265261078487128572329419796374150232501404733688648056138470290727622498059955864360403424549864391786977496768114468179135095393447817494100608628009982399219072210454691486759685597026464096799798078119146440856524980347813547970281577583015070708326909618498673189953019122865663039519330435985790325577604045106462713238635760892740672940936769576995328501692195762351006053025330707250335847115568045702030876603475976652993539296050324283183543211122573570261726369594958449911399016514250598597273248858777912309386892727231810428933339860797998504159740215840634746229502812737573871106319579330834476608329962568395929536312855854241332283716298646819973170882976416051640101492492810417115780844169087511507902485854443380590622034077367482209864307664393072557354600052289156883929162589018056499651144430356157481769016863456223840336096183212163947076941271056560996210662503379080274872951800281881995308179572517271360159578331421990870134147279496827571930046318417947042158033869679459583056318042862892183743048622951694709274239746477163380745878672550060707186601251324893927054004907799279360014538031500854653578886978463802510733682031573408986214239441380426532316516977203985300344447533586486417888320850802335543084350748145442961129570197387654107429820820844897090670128931310503191692952734323471495880034068030609651483161552020400862269475267287236129833124718122904687289514749222568996237140121726901493724936230925403547050985444129999002664915394964331282467393592898643103510232904803947112889834091335463316690992793050784007439939909526762996964620418641840731579290998669936982915572894979677364275514763420220663827830276439441911067550237587761426900946678440328829352965423719598394314079099754425296949196138860390117225433717999026483054087169919978851558659355589488211231379244772726371801411689817595159948448192129748561730651138737386589101608077574013846714531262355578465029082471259227161545332342371074633091492387052608478463460337414961853044267112074865501928897882895374733483671650170805920460529187985541715399219974214097030349546674725596201263071169070207018694570178467475242661151509291194182289525261026195268476678840124450882316524187673114883346209175260366636692794250856044265949312798826121976575668285503207768465072689004336193126583375213804113522859361160315671261600694102829843167889348137336774883061419620455309782239061618354360241859276653233306975141748605344556451493072213809530060758483669831527358325378163921500207210906237286833723910811406246629141696264555075367616071585218060576455742383475037168715377245629558312748030576547499770186934355451655306122735687906459298518943115807292121296385717853403391997799421547394310252933334891573592596899988920891566479592529452627921251067460752701067902941144853459467203840984657131026776621894593363477172368884791866570912119784392593618141003768708585511420178099926208870555119275034299437590206185071068416531132101155882777524112518343447339442149243017551532657828598030925321632542263270332682747350747422928165401920400562351333087603831092638055501085005651370365774226951070275723762370731657379096835201112098199132421309335646936765510795485793583137047035019471607658280926587479825569829013085100708660767486661816359877540590739005495922967359188288314768001938203021392269381797776262452190038154249135822100879438512900470755192778100176980514497365499317928319094835405641898523422323675020228932798649259843494271151554173179735936668908672841615995871946349720281649996919567642213139227087913060993305181087983453221203996638192460269058516547854777543055496168675976559994318276806158724778702138451398494346622468486541107044941735797661013681240586640538844142157872420911977257339354856093700514531942596516543245218536452096434143307997565337870010104904179251017749000732757990470563900862190763292315241572712924814633102151035384711605071251742431699546939716479950315416389485516049109455697929258002174819146434259987477822577873769024362747174712477969261904542148654351498522356396364190815401749347081205506000899699366965592330173280954322495809443197981929426336522887699127811356467620550494185278929827731256060140787948335269058024568699928063007587243307014540369515064402705968647586342966344037368535022022630465718854292411354237572717445107277523996772318435192569963887652507796209913772552053274552291082733564617550298324276360882128457460925193260058071919356764646865629734138093564169888353075632533374135822708854412051454356723330758189304483439488961410841884691092159108116236463824799917146252628908381889540577384244979274506524717076137618833410884780118283352587855727895438671519220994645057784930797244117908834278335405856365882595539474685366588968108625755570371122838242327111575554421230298474006311350560491886548015537948585412157965200189909150374621461263101225883021634721360300977685989235073259999948529194216218497646463213229582646003288444326097777702209456541673670849194036567248114524757905024138632999254410861773331075273246465672506160548769047079253504960444095701816442924435795927993269102259683475774381649142641565668420307029613667887810077500924159779928208277820422293611097282104838053236558916233095707353416714581768401175509434278662376073376570583231111139286717650929546553890176272760548602868020792437490602878109994468112296547203433531757881794287230117102648258848110680636880914780406911598417566016967668850112846292308501277832512161844951558657355321432655967957393291588524500099218406513696411232766148635181735072328822424880286534079449806202771298142494546919341558816441106281097841140300243430790146370640891745265819703778760901380579553031896110486888107354646966243593941846341763999021381099442230837591420243003579411309520410380403059170785682401013693761937306308500252044718909845721535597613741007281331653735358179847774093477911283327669864365329161716631963761656165926729365085368682584627074197036279834807407771188740451759725805665648449536692660832847828966300614626170816358271865151557133408094065807054053147233326347814834561535654409161635825265135484988230627448738286745986844696987655772191746995873502798654162422951394191277060507699603977767259191910525378226010671778761013029800890827404947576847636327712973351929187085932607423671172694805495694971758160499137863729070487256943178663081398974444840236572511168511203732505265129564528119549288782417206886697443870662789199327462797641080922802820336039917318693059091170067969292617610372488425175720505798113372058825160897413229499732972487262816674777144116998474441371957393210585637445883669889027906711901713411217781171304151898516879504845651294850900467607044487433435984281945110704025666037197814263138455631284498221161426221630459367692814813194028766073444006084125506185860175277720201670951133059746463580663631285179429250815847338239760354547006741702041533458089113458475427689948026682480503739933493062232327537507106514036790185140574642901853567054780503586537281691246566987620475515425698207665439093192240910175940622967577170030793448179688738080427447003798879393066036368258779746669197428289437269785325332253548080603512606361241473006991432837602579050947633915607577948875247465180435914539733405247028578033416235511450658137796847544917615687220371319446561449609720387255698428812339106648409252527564002192147784719776673294097021022761830220690765814135313867202499159062861553604927315573617988683188314898820451132812967408926407020127168905357544322871518245313973740126259042209179676449835392073004296399727072976743454669604687608865756820525498764811027075968813502536632322352450959981408979662089708084722382075467893810581230631150682584272166684640410320182991542098060598593787204655439640103901488325827923032496521220278187397049957992902064976118976162436566354165630933591186451591680780286865849095906846968824358760296995717430165526382710643817140518305900121360956065797672123815900021720693384436599115245987042639892606444526335481402580551318157421895280948837323173112202649654383251345242913659479115778118271585447561565907979968894842261931614168991404026565911601239447140385810295176511533523265346668656449449467116480279924464462328050737068484649860705945332263459216007174862197096116904157385679192923413395702255225747026880036431889515184141145019545104463750251723823896606592632334184433982419993231233865418151900338176342104216013142218959782183033519290390715858036251446604867315338067778789634869446954553606758357613298743323150699477324872845783337761708409053982962109079395923776737066471148345129135624933019952568608948355143006822317151972746191858712051600188695239623562481678982134804693105903321731883130162226847682322988995702759335827299089924760224329851417521480747289726598978941212744624711872433734611259605119774707887275922391886904503190503550009366038786647848307230542217294413480412801833259545649162381011642283111258341496808991195054823731939660853184187007474614529540585017241421618075810121466315594029116253986482205131616760707155526062755991137247660722091437888422213362050855439484507155494737590465241169252432343999574918915607323316825247301844124577542489312939025019890687829373183921819334879501776060045403551026451697354577903060876809658719924101615462025387344583195216190002491212336867711053911411694291565404688151375986996962449112740374413534434788056239105944963808755516767032169123538369728662359033287202872848915012271914186088662036962363288647704235501852930193392909727059566514916817955541868164622533796831485021583279650735393231614228212624653750125986403454891832753100544048871259123003874349203645608190424472184217550058813262067056105855379326577546870264361190345339376821533391725731896688208569576713095875765237295130617413179610698346465382313842597711465217484959922580774011100061959017767393933996265859409718835827593424267029331806202829779705789449295132803355923900511764827831857534765310574162385048212390683915992530923607703409584488359148546407809965497487783946301691577419752162294628814436408025292894507165170530674717613279703077214872106630109058442999316079484557618140949674379465739881034479243755943534653455879569418675128403650898268142042884934513553197731052155261018948800449527498345132555979378720288976723132240354326221962867573048279921744825257310570466061858265431278281314793461997107685875766920428731114870253518730333091080106002560019739088221005396423597515872361503303457330749277014421020010266195760737374714607751936148527462197482783445725514629026755019889870927740433489398237990284758978827068230526192677683783354551189652009647366250448689316321674054397380172828517933378975968854431930943830400959106843340660556322881823503839198485161732920576721637178381204786158649158823586034879396232899329001898217830374989477827655221728005485268640566244293230042480236428799469919053670786915296442957490512503847247140171556969550926523026856788753424908249307272480823500965074662598084138378332889307259219417228918818343855957010841009315384685957464858203983588291833542215812993985832245686646251696361854533624718195872886715150049190803174316441371835503657154380412071925717163891120471852809863871473658493501737737392118981903181362234881772001084277700933340635168516090416026147684605908635958196875824836514749696269442386298221323049518014335215130108911172064427992254666941137471303716076128080970737583212575912681987297117206315915905713126888630252346332739090631088032651991246497032135910754373930578811783728697434666779112447954812425257125111417854095922236376112137678635656520887247721541637910705912873852662692607552626266618474529997303951914615099954682376278417985083003975976225934561187736823315976057597195053396326425596865686370770103843508683349928569632823797400447610675313499887985796933677398986891991313335548182608964209470135642159258647579552811384329606481929464994725803171121827307791498291545129297538720415194323306501814211308755318461211221743055002452529309617266843090009604356132731964865224934577911755948715323069068868790496953147998304579391989078328638960819824065632817177120281508954452538478006892169016753637518787306004395232045792787491018024930722651542758329618819502868563860913240657990178083681697145824015344039573008235257201113253938407857173473546080062556377674108146166637789978476762450829154339423485262776077072416557832073808720868529138839529680252227029246506206472193526066171791755081529620356672708194955513668286196878444223233601573190950298008422868170363838865326439808445668365819243727396695358472617364996690562186923527887888571200728842545875754394739636168624349805269805615293516473434635876433214231663546511176975793083332643566009652474328957860844903235323283524432359466276766296005402841354313452687512688306149245297057852159996642939281914263107545826553316266356571744361614247290091987681659280918193986891847904166097910921103169539031013056705263911328536841560513478435644175911461364749087762424735801734188499614688706327631188703658521289405780423076528400940663290824254688841798649003177352443632586208288501508905797968208477911771229640591303521448793350693930766976954575627136167990038550924786618032947915373993478789674079973927514328665350599286671907041240817598589264514787134309330830520599254691211076521447063170771204304547070242277075876255203554735912185034943174969859209070298126799593538758021330174210424507350311251323565030793196523492260138143848902908037203903634057572496795839177059752537931442398129996075810069393348740041772695369696804458206938562042099026487485552980137048072367361163790480909376328364296537601207660056270543102987546040934854393136074483403621471914815150445435946587815535963919153959706565272902983066814966065364872559242458010194001578912423482691421564961924111425336801321701014362000945614542874883275697098532396136190275313548337978086324304144553171965086026991316616225879990663080064521881261258294530241428526481564512615705729963405414169775970832993221623219105727450584519915799843446254176220363058325335294736496361842625392267294848513572619949766790017402427211634964330934402679958581935701727663999693586497677836091910658071062585236847372701847993426561712339536986688667937057294143090629487300959580945865888951378485224293368239631147701168539006228247429137283370736605033718839081281024031994030240135847599067606475796617928710220305447387026160056176749953078679602840546390944782633213062484535061765710397894666830644288129308524218371732428336215962646655285188990859356725050134884253368226924552761754314917723988060960116977844575053490033375907796310646964224386830289696147382471638995807723457480217972498113362456510620398050278986109062828930792069144338063240254302174451385023748301635254133840859956423203355217032625563880083293092919510520748007370764329049763484203276781023170692238714494123049396341648911286565897811220399655565947787544278406105484283409711454282517565402992857275384028576662353961073560725237822090337601128899835138929102941296260044529871721086034795407625842349130975851989388102531313876465214474944460767229696509027344029845884369422275713137218728212295777294124572658511760508131036550395181899088542230286953116429086256249990491052454106391966118585986112669209510501821918227473681980373309827542567509579707039025689052790172278703514873094241776718951335002463229485071122768448784485232908782730982724606134311495105551079095184289444708911986191142995613790546550897865787829133517765283838946565477841023902829807972724534604487715865556447350682764972691206523736253973014599773894591381425279540784739883306459885271572425276152168843387615099888131899271662074524533191880801538504346777265613301376226678660922870473030275072791924548012582752635388333758513159288129807279665481287968833763949302166728131086524204513133395176088962271774476105202932155186876792618359503042701747359673927095776843638382883678549190050911528485008487865803156127704757711205036015257218277877895215075337175058452574119365259652008863178439385624445644382460136015179207229061606271632523789909318814441033688361697788505340494563508426998427919823918220185625841947337380454371732691875518028983475891933340568331388620215140824865451120209609719597582763075768182086191539657557878892472328474874638635163965162122621059016048262484186130070169946342944593491722958138548613115789262457004165958670245341847219191573053025322869507212212600577577114997165320342481652069143487924270658875321535709407063643643307914831774890058340532403409694402633001836372609563242684081766463899051966560975691361576530691333441380247425015102624578177335108891504806162963783660133196921942098040183673388114868109146237680671788278299726812217167517567920134062100353295083884753985438707927178383110116421122306542505053256603173375791563168814398228506870116769044535045993535728265188492651349469431570857086289470190701643877586325049826978593932151191979278451421101974992175916859779755626891240601052488121680123031732399822160283340838959031095318466849774031755536672077996611196648323798539560871718187138120414472100932885477851772613919850898752162791207443644217713490768244753047622227091891106851307670890453185489091564229586681095133745362291328092081432611516540273488256984689261207600202985930653165222832422386907841609236924824880197151509880504656684894888725811827447947292136159589528512819938626892165700390161218666155370512338178865025590583773564372551650043094863870235055625300940054555923417286858752960237724761136113600388454237813777223940408553415242900691875226087674385243185834044525717917405385614308705540109753636720206470715970731533106393298459311764869882572262823867555102544911192404610289169346338459591608227872796841528007278499763677284548815916632830417265592798049354160408616125293444819213643164253660539855780090657246474119975533524964750144234437874503139446405976586310069528711574761176003056560372421598876138739731520328061949028081950396141046539111468262407048300686755582572547494945083815167694120448465330352801533803747576357274957001771490863317679504876136941083323544292883156166499551595435916924273878425603455975198946025332634832050405696373740162571567030794754734456532453556844690520095583363129928753269135340181233216823716308174016675622503126899232782176143540022088535801408967646230150779731453042268224944874349949673563629963286315579542359911919257903739465874596219142671639789560127783332731140895066322899493873602526535112792240053842546753309819337350325536050443382149567782102366686755990871103270680408345172106915135977358492918693274076412141170964233510116605216821274870735228764264492006392881488351575959211796465675973248874924751681935847336719601505670683234651206115931892225180415209118686557899346652241034796442996614271788385699133717835799211629479983351696509749910831206811234596221278498290868741232508855076050846409984844210243450444899394039150329662003559850329176034460713282508313298020468574741650637359904326326331208447908141486800140664836325588573388183087910907020525963097145379987457582193539192124727733151843954142905335851567899817271649258866451067748950108048276931393610599824273562993308868574484457705346147791393994906020700351980524223487633012857040396710601981935349480934713073702166867139960592614076563956641816903322175527361243243524848091539525871523909279476670583590237109604813231580846478645348253234342988544766195035907226594797910174220671571600422307928976416096058631335801668315806853785311619847776213488321226178574920663923003392930206781650388649112400831840782934864453291148132485553629725360503593152674446675843244275071057642283462951161482278963759110346897859784186468300294587889226976115795264830667584886977760739288569284402816264192236942954391321217253971860075547548459874664521179258870010849520825326843951039939073979086758770985682683109730358250249177229974940278782813440914111367632651822671567496389907347209606615058115033914628820809510917541837137275106972030074763195329026008795323819025031929879843914903258859586827963887122464241391274514839988908041924137576673520533332611229968722426827826111229923525118903140181292231810531690187257503561731536601402941038262315704640188573242424705669656071249889488710759674227744539376753006444623234168808124418148914661011328078249458638176142563526591994717786767253810164339655233396832372171336121344398744162060781481493411474153016869094626022935153160169200640490923780272403355583810884816668256517239248633142097789433005583831233977575505094219158444177315354994175163995855165285781817766957942716762942415183014764056773073352506940316188280146602462712711870925519636556568582139054845580274446877082561312369830030208340761459897771904908116933979216989179808388498508883121659398561933626812514877297167565556562402387708865932860048332852710968046280127526218537832479002576573133752293340227650630836980697227668982762207895864808872361232457667471409872570123576955786051922300530111121515835166193665863835711890146338523310870882639375504034955099557020580659591936505173502998339244062415875179455032016347427351440249722036256364901697225535841806855189354983701753290259472919645569189704547673537054077965608818327792090052519151222711662168787670563069446972653040391430414060297912695741445539131792728232397108088509894238457374164142883309275355908274650964156934253479666467914432041963676451235202046369649747402950424140920282321752439640052916758282759148349931763798489100745323385925399509294536628356614606050176376643715863551016718339121589678222077288777948409410578571891867385347036123256784752136777794475546876873245176448112074616378973741565918345417925287097090666443886493105862212286147697455089431037872024768514643135551222846170312114791900046927500012471559349835679362254118028948803875847499777655460610665205418074547904248839889664545191451631353472837000685505929642291239019146500394748620564080149704556997204485196667292530223880917446959424142936543405588057337956869970235331835196710817880734877802477055952307415808352843851049801785765236356887618915305178060372076658566634274287441474200206034932827750684693912897620428326227699884126650136989150337072370166694618851848370833646220221393076084625286977543829107325771605416432835664206633080139141205614147060342830985177980395394275638892402228301407509788073648444483836546529324713484508839646677336244796105503263922167142249873883588194033246135285156237431359948021845187545823022829892109904378944336649085663700204230393598665782624276278155666873079719714582882244879213360270775113516165229458738564745702040950120080175634770442667046416223827759236815392492933528319284475786459870993830043259041276073672817893267854726755454031053823306838304246410292944976027964196400508733492206558544599520698146865410573255608267345664093019943616713534899096850400195802957442716690109132064747316682642117608712476012144895765695087264422125141785846775576003244462220952363845299992877049857027456836274579807645983307756625704994146649739501445957666586915894450438366907436839684675264776656716716243624413948381377554012962385023236541923234180762257137580431407678124204697432693693996943870407710470817964293020530781267162809144232980410021178387053704633362473545505121612971406594717720063922917257851761393768937141274076399175992147791199573179336613826779127837146002106165973109329319712032597481342545496929249059184227394747646844288291402066560331833470082989160359489833303467709108223964533072047256605943781785100106179467984869179638981293815059526273524362345315729963360291467737255153556593130916119652864084645648044132756792333850376517326921433938278685369410365326724378880805699361040609927290056775690135782180684313476891312395717768973061261815581968061158967933154248767346591986311542140449763940443357043787448668851215976088193446663464930250666870007515339962958597135334719217780208859106116747363576153559847123233620588599879922651371857874437697819305566023416276322191346917584371306659302404441173213543619841902681527074421124878922337762561759117473693921147752856119699316132862130812131487839166117493854076432682018219669352995500668211766035187203544027730687304586259525351497326520502919276384311599309025766654194598555383136518647192648810665436871761352454500311867883496709718563373178805397963990036646564686366948834203514948422098789411248135856527244305486074318272079612043395724810382374965635418922468159814051500321152079863928542212843289128878886131410753907181420148334615774355770663087235642669029415386683992985764438299421295781539611830104015837731981495879990732063709914464739953979636013612079289828080883625315407238653600552160857057943778885554295953733566863844941642706697465151647907454311164338551718062629149945860898588699031772420761987034551888875433899066862014786850515123252311457798781423907401946463307848549414436990923025276825865515005738800753676165875204307685482690556426032404469651752619378756527273932040734534990864029587943119654334108666272909971090952850671083413829438713771749363248891940855801330404297389941342656318293697241280561841783315471257830729455208677899936912467786816133948463870642719689636161134313791865803815035131725882849772326239976260373425859165386069553740598130169152220528679188281335790110826077305074767006560758717205772490582981516233999018503152960996227345582111247670455773960296794112908166125775122755147615285088631371884759676892370940366584191147618576787443533818335768624268966068180822320562355279728317053817187222219562295249190397066981791340384063323351218744701734598430280891134219440620202165672065970465313038605347528229770493864244599769964978215489717339148134836976984109261502232276325943534652814706804862324394328070009932757805667354738472764709297901147783950922888867091453692147736776915974936435865581405237717286197881907448382962897419129124532305830747486771664530074579107560926487756194977571566648547141305731463360429132948254334005413194722527290564540815062841126857947564696295665647353143429902833428415938611165237235471938200010888898594015231829470966322224262635237210078025858793581736645131070625908148473778432275851175397634182438391969084082588295467953501917115040985413921408057817193986578983450130010931393492901872214212336817521862651025216318347270979277633045593969367859069145881340026906543790211971283650657470190029683870192749361067612001600173370710634807282679446084610989036453020153100754083384765618602849747997196004627539263272538122502542985925429315193065676608988061372829478188623289160258756163594066317461938737763226150844473273846835908424438416377574809362644221700872226379359536167728574281622993046551534775073961290211296205937585818735758674369084011637073157874851161473079546078525163378773343828500138204264956051999445968912835499745625991877161091538837035152555022510946449776592371620987433374905352771934119969413852653023172007183795528751127802311549230325274356481855555992678440314523431544186726433385012410564525854321967310414661918918439031924147850322235096706074385292338881148067602226908077128600632222915407413008351971587342115354534360917736501471305874057563620002087251337511229711096052012449491254686393230667878911796344575100644193910188205970383820238512829587231895791925800504773670208457580474071413658588054337447810476526993900595983745262786654667162723817073508231565141894424124381718570576987365662739516819944788076207570761610916793925437484625863637617823406030053286165199922077714400194479541553592004648952301869645455572759688454152645828911115411800860158891070832895229856499513102164754808316176016689186832603992261301645124605671619055446908385157914937057405884809358757064681349999198349098937791078716059230602793848372813927768093272665723045819861370876164318017500171301007805949530027147330600945330088405537105424840048517751338616757924373868031013685277973638941686503699598079213051931483065356622412496748790596039084903588781376365557420458170817454093011209500798763280740732745659606725561551356761932181953740183246658765773053302296179005128565114787268967545482929010242926011208270635372904528264123018645355876976345927025356887404514429116726040128574299416027546460076534681372500954481576160301229577498568594285861734475159743272949848946620874244387847447109906185365701510798744768326563288040755636163194542118968798737078804260866270692523397662232262436579555522278404061378112743460789201047872747411426338338155154168944463663213028654822407151316983854599557769766655467317386420733395235268725590197138059548584605980006554329876653744665573947991239805464577348476662265901320339300094872912361550543032305961552629001910958334506589553458499477349208011279220209454200721149788061558505170589959512008810839019236385845505371901136464119614002926420534621398210218288490729881920603991519490534675606796321330078527255764646439334161791383960036955787823489213483263524964010253526384932580149225764513957130052479373989069154246594012931832678640733325511745521170736203980668797225491504225865659538756870025064737391817489555825665198831665028688645552861096297385299355267839960357803659962822031587528273257345429048616680538630795122077446338408855629488831471516503635936671349489028067867302822478326349497171612230761844857774383264995777935496089489367754039770594943406850096081457783914930037836541777726422738643119750295511089950430919143415538194072027048323011964534508696513737913922748157243246700314881076492881815034446170896408003622300232887038202619457793871231202181774035586222667040689874212244635649002553996180050411421826396403672006412060943564018272359274419079043032657252227290801966233784451466659336313654327097524939303555412934286744139557204097707690785403345876415614753366557819544121047697962854211481689177766329767468598458241404014689556022164366589496256124880907576851866696091227251083507317112086332970434437332514915390149131405889682032804126272330500444299725805515322372028220349525962663708607636430922982803661260464096620557732044424618518959677274630967639587870100994150882538793390435562863253242897129853101157816408818964735473459539451882651735669916641747331016221567484336985449933624267143007512960340063119214068276555244871999221271508430822429009522615566484627378170885338728172473376508724494188380791987682544297655527562884400108936863814650008332491831685690810061201305047795696528725405379093982344994892743979658767787392410065161221841618500999229332819546844541093537185225471658293467325752075738314657803456179431401452047206236179786168890887111596262195549395503408557603942388623505350495957964187157722353269222169954339889716528050290869488760915167534000298242168640920578067840421538260833725806347767798812409122557122087018671821202181664258967977025320871609841994320508254107851631217357339628339325268084935723353236735717994159259900801596591135068376087607409515513299964505811171316525455449779762820784562915933000819763142169831443886644602420101200696553768487984443265732844980227212291460420777252242323145371108387877990739675848857356203037124700454609153994589299453268049711395238406329092633992676342288166386738810344141079216324870000418594761231402319876239628195379891608521116538484114581568985164382243742583966958843041005476975532553247424586325890591806672840044289882993841349627881378726224724061883375315394270584842256342090958657674568963321210058832202443540105370600649617659832409655088555431146703100515440829531439703129489247765745841661488774324422863383388444233659965738124185525639281664585387372377809611334795328143497016518535912310585613724424136013853283558634872235087626676941729505633976585162813702332125495405202731525733955798400039283545059333775309999975624159876849501532893697913216917918923612124085818203961469583511247056122638694640041529775744032361705461735504625667488452307287680719174837264256763525322445993008322379838097119404131782703194818119411602739807176423929433750112580266767218076620748563288263323864580404681590459127260055063878160144196208997889535725769054413766572678928457950442147201120325361503463691478051611745402628590739901777691417371017425384577723919070110159745595707846646128566695371474008296468957067030598226832191480360451539988054812211629913014226391514062427890479747556013469939096378126706182625705557866418582974368495451124885132051085023783765017517036736622718595385663485095761071559857263492554686895330514889252893606018082200444976235259964218854816441854227923741407537753838620466769328131054389338471234765677155143784970091696647873200194889734394141743379979724399710639359522709996953372467380075901211481861239599793868293828558037794358068201495101645555432640793368825688233989946758833574540558217218061159672059378274081881290233134122382956665617363873715791615588383389472367564354405585166861905761636834559255715281908036240970063585817498072042752660874806989255482709861521209820535283973387676600397037548242157903164681724464686403625797228131966759563112039101957107203548286234038936242113523896442126500251696781922683693451516648957130716587949836307458469092840706720596016389419233846615837044301696531389887723797721015187646892607574357507682963234289430968487760575338194808461271680774361839943908726637047516600172347731166841989774243758724303472167883486963606218780272212927412170301139453622385124559375872171585762050389170830453563171136823014613724201616114820753462620534787812962548456933361273682925733149916898007409960349113270693749101656711877196638186293175185835665133948780289775683688936559170090138968873651444134598263532354520453535726633846577991966145850605195626563102451617058217109396518209800513666537019551235899529519707574765739704301314302175683088820836612045165011980861840234737272339661071854310654267744536603051000328168686007662748164218675291190908629990008754826986169368214591747595139144307229862730526583886528698517288820021046709383858370098472351858345938339143504105061930491048382148178107143280595050666332405442362890096864298602591202228104963807012963051165243683151827440294893014631337466281964563435044137743606480502534187631641109064017969924916435329023810238059371229921511948943047022241253197988517016330976250563304682617270091505274794774334625954590895004646690066615967843503867718787744063172492947089652484310877874531826749661523391985755201638879911576874026701868778088935303659740972372301671158353383473694158793647026288314641162539313649261699718686960974463989980668497443014373403322329181748245424943178835086225587176973693177303732454646693317311006535846291104439928147681316859684351100216552160257953953945942008113178999698297550485445364874748503092613941835130466751657003305748159910995902396296809446075130637191214935918974357706852702890914907111841303780391720436207294433505209193848700788322535872294287474575760892456445251469294541314786580958753290007741152180140180634990419808716389489752139411823681893069124947303382810455037219686424549897961372711790817832671859935843109864766975242486618010488001224408040447333816491065492365483695096451706137602583373818580387684327939564791886695822033641944346083504241782115897348274031363558097804996086055270637829626399323293903310586627821338006133605971164324734729310942203467395779961110950894610098832286449110496595542744762814918401765854404251951025237862985991117407788695803561456573524003832858073469725235044794323385365604907976625952241383292607019441293710298119120177534630120405490896494128506706802149018293266583921752821755570014286275985842490843287130238868260132163891373029700610915818563406770477178597204705734653906650326527479724054718470907906323702575214493027491898730759825416678980334766015675183101508118638438764712863231591947746186857147165727593908951653379648275365934642863153347930013887701354288008614068309871468984648645853494370004871589144881315422649841198998878657822153804321013923042445649492165437829309906185342335572452554294119076122489789287212967207200674837644379197717495503602463084753498477169713326509714158739031156689738715904444918179245976231787791211997314441699191490695765749897756405429443006575117335898142562668176032119600685763844745472703160849912866330986938283408280083940904227623532776945432010537598813575193755926609831565390260301743078456853732866506438698129275389375718228662664653076932437161223387511285707317665733970572895034377418131711375836486923146586049768499541176243775568293100432616772809131529547631292417162769139067978106365982578921705133644491380670815156182826832339181459440321128500952603681577256323273190416553869769146497332527880439178273048864712327258655580424022806030771325827482361394616697146019625580309285662345071416722635679748657708061775476049888193748512393506378444695360020335821854175913557063780148752677497906064509544119055008957418668680046948059855457254539066294612849999542557918425061978368792260115617329134098651691450353571119275187397494711466419394645676902342628666281625066626248183841534519388705352380226699073016527264627794141890322686626830098630537223160185010736208000939270283237043616518910859570422006370005411172693237929200806517358560048529512146133086901618513706088601670097054751761418487629303358918437391973225073268392271222197174678563029058141480162687842641442510688329178927037311763639007146770053153259623260996354671207255543002228376997068160654066098286680302593008106801725694731995074480173011133648405836206541078634711283565416849465786065726188487696573361981722261081545126439174799724555202637750241621899252176981996862240503049720845506653970793396364108247083812005098397039057013309479051533673911058004056462859002959326216186894423721222234894442960658438706918067228100855714495947325506337777372269514150357152353103528758078388457572886506899707578980196594456234263007631287441792370749477886538636838777526439004672474034850526234640909606711227674855939503959861961273655676218198655165829239210245239841898371058441248113565774322264329697767807403864783700752830242359984747362981831832017129754482742972119276826479832657014377201778631514118402073136482205112761518530836329709536083014670051077854385045089339248776357978358702841841853453502760148184780944589697352605458254611685529274508784108768383814534182035144573870441200851154476633107947506364810498634708743289246590016733366270691363588050817326940657277076971493036717832297546842421227348189232698244520075109215391879085659476988414703764052601933640356348284086538472076130939593124257597451454766694511467645106624741243579716357471282658229027605939692750718059930412571049508204960235562261751227974529567845380103051812442984194158163341307704243238211797953751817999996628271665028191639972359334267145881118594548803566157345601042961432177509582896223018624635805683370633866385535173775056345907107482358112672607556949866421408983124543512309180263899908743188715767670069813130583889270659056542344398219039107163831376752152151151783299755565281005954112189570956664958756698408897870410497256817666436385004323554462061038839662321245933921861179302093192689604041131033081228273399407224394248196544193433808599709660876180829292830584916520153419818704945437644739886942671822838053128484576073975138775185450090843958597051879872334095805042374559159254583656131003743927386661093440236974146915252852075766458456526980927197432617533785007897991786453804159022218252373251568968488182049634838309706993824672495596264994582203798179837698023096558149887960144001661135798190201889395093139834300923936949963865717838154703537026761304560802409124526645155438913091834217956717790545527667192588509128943354272751375184216482972882122697122068014422997573727726630699324018497323624025544488686413690350613906777692622795616753445639916109281191538959960413044488274078154308688621796073595992020178924474422848720222294025868949237625736814794630086688012102323245386246206208754964103269701673497559509778338726614580573357477037513655981502853918268462399420257848686868056944228880110525207961271043259813577740130541147695623601280169694902871779970729042257098625310212219679738799118221002192431960134747433410261352178453712788394164745206286622051754441649593839047069688907616205150718465095742271012396068451603544833895919691034287018505884786005499419763823313980472418551802601950703324542629770533369258526880772295480428026482326612353105966257855539304485202820285140900984887237629245830803602699553202482818868940452363597039117077077132384070070375218786845301767299065243436797327506855116823832078490099393784001045459156967701654803702129301113312556578041488182380431230103339320824006529186131587775321723792976658690831537634604669979961259992437093347827877937667460091543882050188951231969123535272436622767734672474720775878008459808958816690010575567747028663126680836871395705645766119367528290540450936092181661365081057148197717049544335215607308996521805571745245391098631133712744100996248365674559794891343468358124232147667491520471880416007593531993148683902624166257962985184661272412132008510435171992894556253878177759345612342948785977233202187595747882690655877599214944501768269037554616475806691190814574182448208681912241069278387667018082696714097029865242385355111930117033808819506314557314088808861299456815946649326530633100379189570773988947109027472975156221928606721853524035829045629461585574272943364162805602636366731313209641981517346123592476141837032901430525468845613411910134302550058536725292768916707406230548214439965957965899149605858846395272517670734613539175873318319479661254914698540242166927557802247626080941204375636775089555459856175840063248225839001143325499732019152225018644964936486908971738835755898720812204684212372932531251700560345629496327864447516242258487713061576015510096503721331738832718841044695157974749043587116589585018227778688913271571202221008349522751667391197948307894297756028501853481733812342828732443875517569991665935507915763444335144086041137417579796557805761993640610602275268569685315064091034299227784643005614243777859237442254113031701249456980225304715291502692143190592167732244086450619795563758020184860986135140473043065207043784873559089487748659032460508662613638432574695179443190212983879801650606460863874030548893159642944761410074072677051270601072823659051600299070761767115552798187242341861557853862106161265468585806692939614443504000702466800513617128775395567838970237673068749627863842777103678502873673422362679758010584228679473099123659668672965219737224372901359743989947475850112150722935138972954379819370364687069590118779328628652877355577228828294889802279610092450107036481223856445322646760013320344494013955077169066341373037875049257695879784018802194735757518541473466234703905301467252562370835454333967946610223800005268329809788371662482473265969428886496964525466665283801209554834344401976285781645212921663943182484237837806224079373022368897014434417109574632981373326183785102695630832773806779868164999310828502972754527225646921086057021064042164325923892691542556687760078774916330415567819908170298684043531584250115962279765051578951033027366527486540945522979610883633268923281081664600370394001844429288408062777887952259887111335612951214012535459420974322647170763447158358051613976458388831512012368774764773879112292499767672080801094858902065020854324065680517069561378202676786074232857569848591319238264303601919089188724945747668185278724743753171780368441649713387379650136525174870291461676835781953354551311904468117741071429091036126878385130823443421238642134830787213063925757997822350417122183989157062039734038273189110598180965851642487653567603943377712461253083826444857640689591611671389738080726971443585618786584176460586206968363208488467904358223277396668011614987111250657533141836704481420108085509228355869326051633736302366433796972784007651159522722945190677940274149807881228946988477029529806913327682062683628065980571820810530082155220874011810302483945603076067258988720054857129932791880049469462664288994413545046520437084885958855919398153055980596610582674490681906637822063752039912565937936410295804306363923861195771317673783017555891686573839597441695926862994980791665525502710291650966015518780572366731653641844313692564333733328407693814261921208814580065749671589342743499462698052340376456631572475649404816538627948068109672910845558263926383827791972495412096290270334107577827789819732719334184945184790506783409387532297549427548877919405869650950103145529552086797280209814589575901318578164442657132835081096359721330700301139226366638083436504528857416660306385125204079311981666730099432024338125556504573503631732066056904147052406412347939169223427981989853720056369092003416999387156689129430120940312416315223586097507720035582381650813829653431666596061252231476700568292010726194320228465243510885185232326519929092985287117342521193191423875843406271744503366945490914605865228619483357693955442950726407415959928393638670310121389852446956436106318959385915668672326165667547248876673763443753772506344338373022036696017927944648418019411103271556982206702554899971022771875608062734520271372726848184078919406197936767037519742239599020276134570329170510276154480358325665170031654114619857360900200725303808452624686353574036990186065454655755846321109886907428267302150247155371311595648472748526540447478609198923919351259402902534873525583073108481180296792728247233772808239650827120324846599332299365252471145156755594948914148795683351219902740315309348793159420039401169615306996980479348803042206002879187928382070512986617003216754833992152632778421281514606718129243200143588206173742329566150733201066534117039243967977225476249624211752144397742732504023493712514958586702056914168270002358030024558325951387107722799373349875965105557701560956122968372050422292535526670470151026278083267429785685698257391109100114921778016243066295860798055159919097434431970045420665192791011526340385821144348222474081150747745852612480564226117673303068863377163899664246594706840837970007730470286918553179511340129162212501987685223655039478938660604671922403428565784069160927682366249959479880395154291224293698072755166001069812899501876744258097713455696413019932256447609907883760136880529867676211488080293288196703025762974980487517182135107402118562291244147242042901717570850182421689088191510903487270116874693902364802860250362676269108719640851719350916438883067003149549545175397490240478289711940076828633570351973281819287818040294471875258420297522150950397871519396452491696677671267593263618527104086828251071364373471115456938651303210964755654653849071289892648408449122696503916905624393202203826795816496736600345730197363509705657719748006617523351679447453368249582164420204467610843531153169483391509174801486165485046033057420039568245603299589999481451690669507613541352032114693495858746566642781692263546868701102190420319863851299589131060523088066762974522395860211037898918939778237110365719878908612971535600788246345780323898066353106781969970149367349131620386728508848708615314875910212772848263229591724780556293445252880513059323420189651889608999335173723768878496790987119037974069412933498582948990767997263657411128110870027937936827439987644416152935015786005502069078466273600696753773999321452650969255736056125495321991308552543741676559435863763216396592602239400899132497255820557262796782865588521593601228333133046284013925750269696594592141849528954502523582588894475231474610779241405987818279302729745063824688147768456743785710165208916863084056393431229129758243473847042062499372342648894195633578739783458091582489434620414319147828247472791209358553253498056280558779907434589050076019762947680021850511337054540025362274757849250243974796955677305459683473447529347644472809430059831332121691713229856090092480886617676744633207818785876979643084980564260621115426059016752525890362133788193661164823371255559598514006127086988759056243419268233860433211892468396716800676949537774228507283542263932317663046963691519122606402931134862635245287145446985157704245470177747860176407121448138453734615505558757454059896113496552466998130352572794500462993689420754298985488016350443242514494440459701468254445536640890551753568931534646684491511080127379731953848196792366024829394295980754797773045674176873587405503750236118923199675071279455304668101110491078631389927565723931367204462811515160909358479741300577872719601686367312957024371838618100211518686508069514101139044362253637470560462421210140744296490706402936531070032564113245692716189436530574781587011422028624738526691927400857524718766390565265879305892292639895707010097803419501077422293236635305379289864698427863792841158512057876182800376700638827238727840212557515992564177228233322410658782771207111620738563578468788324600294955570097402144038717637693417209571780966355321701870707805260778070344929702253382563164787163813358289882728699053596556587439932774076283893471631986142081324431151399228019231968775414741270755673194070851256186405656942114669159386055346829066356451376202870720550742990228626303007682140931019200062104820667914785415447973318344066953883466830217703563740794718974261126816437418710745810384808267936704784064006423076731627800606850180368370452053837596903019107007715451597912009127990005828774657025604782832602280320706644888594361195422949991146673849688817885503932779170719577496243779958142994716544301133018967882976770889625095694811468070736318351276917238359450771596611479284118500395703909384507832167721029581300944574567271112658786622647350430516577200694319587050989806785271721954644356031030768912398752432607497005527723285887416811300999629565385994421018276331424774216200563487689446792500729607549253524951306283081052070130850387087941861290605446172336860180907150795724454982138655314916135689537667577532659338837629709164863371377514278962695773015776986135833341406684843326845843716602686124888318819515537137020339726679984325048036475608193604908373081994236965172723121846430789578363744264237991756660141564904475135341901055984422042362046185529008661516263576834531143847363370448199975493565117410030581291080529091535643894246959066714452846919647217822670943475724524041902908171455801076490183991720688875916333864328243828931760935990850031326207711087553038166649331814061311018171233846309161262057804182733161885923211770852985147172416224233856663624067328449064560601439939864946668338138137642233608621450375898769423023460912485121074127238295315530177893110898847126299485268204132402482870991415362055467070097915450230977231905960659745715224922059250518314632115005074516462837580525579013210643968022379157454670022286139340214741945232384135713124336771938780783829589273653677236558822707619053761718984901742197158670972898969115183436961191033572523412677516417700092191662333609315820685789304083884709887554945756486278207557703962960252334650777727034981417614221228671064151121629399833463678932479162907393332099007142905092019996925161951655297429052900245221223580994893546429968111667443304684541142167172246867796285648958532547373409615441858780436058384782881861477396124288520675763904640755965140377725072547354568873354506103526191494306324180603522648997029793329643423417256466522740536274233524464029437631252332973690884643198090732717778869839246168088490529350064576596153624728592074307277180087639144455902116212187663625096549300593552052867306271711623214696184776509308872512136252604832165544199707037992494137948889088657672608003765432349112046796640905439650990135111296286196924363456542258403669692694530156065828170018680254925806831688122540420361288307585589569079537707509626110144497895089693492565756308708002111396272991155975782943390166297646592861329032515343898692254320077793759509308901054948597920320459217887576837419888363994907870417029722235961598873383332535002888013947210106653510942270600189948134623397647026418592030418501086745603997184775775813492552714513158692818034362493379212233992868935518693224510759774492238831075778142782145484734054175386129910251529795575402303107291537332812078608146566788850392987483541425962701615464406399191064709306974067610301074833083545121099626752798627248157826422293521772036981761295782296748563740927574130947686414052142692923784647050784571728481749595821712732129269245002600477050997373496340910564361956088590527159744546511615471812201967377346538590058714862028867598703529801940892417428289458525353530577912426306261545684656329182444116709121013735492684342428642502479904149199136079401769416897023922560443720891587433267673226934599752341592896379582361714633449805882508430087095190577426620650491512584332469620479540787035329734013679750904255179337978137270643078801933526790397977873358277221877364618159255380664122851268594378883432479661461988952803181740730472641876358734862534842267438363783240714481429850648375306642332787059382721460920704727378899507292900275179112801952323722691436863102591838374848047069224057008441204198811435531283774019267883102172800542194198512475271026937439921720503210508640010541028191660139763562041787802152808069388330477278225534855059691858927495319884362815256098834726649177956743793100149291680615925938227775698147523812886372369932090826295126612170076076712746543309515194048165915278536860621557497061535351439489221456483624041152086857256927306928878493570777491022720310249105282518951666775367442146100465187976478055902172943002919623283146120626070297208234337349553814258906862754233672925456484856584994919151901867444768730885706112230946452988772366805534243207383239164632613376692131542865869097975735182342814785764140012267816347357406851155468097064547275284192614322543848960529077780138343900908571407265911950980312466999349898206042388232157557180228706409183047451753348544417367751678155674288273359896737518504723642547218969528336606304087717011111914051100054598641653161960143600682861084913660880022840304350971546065395065139755948046848615331122990026268754199140891949293128111682778272824104859059151613996815168316562879838646345088306476589760170476967442711474588898426781421686705987555419635507859833309018344817027013822994295344256841461043385658769112367353968529727481809638953803347934692263123994194055483354527892073547437451278091337150785679915360291330356106867297268440188646094934575770978900637638359731196885578121537010558591426167309903180138240504036439513548484118520040676242103478195332773207339623167176229090864168408696961799940903263854679672105170974946463304773193311315259430714336135727458477347501628995621272431397628288780341550731174724737398633129018968548689348155768468035027207396779658136611860472004839135682288103984576563062357242243937541568636908548508257375155955710592959180274568297840075590440420861847187768754248987644651108065259366152706954363679517669229955082714746339647148003319190018599367000337188367024871980429128808981689010259472463101121370099562232257273149733263616922887817760571055449379671569236761991616281396791924007991980700163236757181040791549607209866560386061669170220497162594586736866341012081625812228716921899882056025677565257729042472103887752173260238976304326961429181917616395334651491959372035562619930760906344030466993764034518810428605837731988772363220903675647264651992238892406665491499385976006515873592341104813843034883946932379623525652541227422101731218944279114546186439225939832811775758756985013725423882878733139950200012406209558362148038035760346596593106564487259953182762102593850836062716000082443732237833074187860461003923734048195577999997997074942827060001379404197858849960322831114915251199248932859219348829335003411975848353367049406874880594232708297255898088731821666546607451897041389320990694048807630932588135061711076178324722617026968668131514578764912635161560382285830854788332734834198522802728204504839446526826531387424560063119902655886951105406601619479866761873749290504560845042716164319102834321282509948977986901464274841917022445073145570077742415139262952477189800874991407976402416845906155988511751705233836575076387323509878498408142421898601303572545736417680857801826157341753035671220806879201879176516377923370102187562856983349253827497236777032099138327571666228658772514676165068282561336252296924215750069682753509780378310824116162749080060601333613280067181425400124826062901894989322792288173531382825933892801076986461782826817060462159895411657297075672266648350924683425249251579411902984729760236693308578530853802996288354300729096151475263027183576458073343406147677138412971249348267985081501552402249255974970057141798396254576662524504119542089340591634836969193104763617652262643589613946962675945130742394364491066141460548505756439830061385494958966720693449662152103484932493835993008705069551506333491291771494911884434098453199737387419998274958904595646485908640017631361445386244264433299861606108741926106019766374091416392881687318705032836111611651478872454093109922817797149972265774488820316055092916365811561357692327243931655214184037510685494586276162022640230478292052001423286149316705047536104560433579505301208136257259545483599564288688643025917167132950653775896978387311703304172692836466923204914599455176966611277168951165320693593699827906748269178489568142882046065455674752476179716042172515768397367466094499399037655068032870614932751862975345023716130621880082065353461431581523630517635338122393364278909336858834253820270012151370773287093182812336927055730461062629664781282162668554104573063133344551575520292326188257567031275486695613094696050535128847808403446801639205290665699073942379203213569141081269558562203884923755308580193296651004676736236952778738259018984348999274245689594711809220740936818724922812392401439037662676106267979276224494386329427309145984238530019172800566810965651812921339272237100216257658725998265095430642567906660407617056712253893230633972993917983059306317640025516413499272680572684729592859045694622487115413649882001777054001462687208357926894907157808735145093504470388413239304561758911525658804097855856216079350671350918576570199786820929004898488393755041142024666876158275303283143996878189289272678422930822402071481026056719494672816016912110402242162208876941279489106593655573929269984587988720915127382466856192466665181608219436318265954917435196890886642831279036422721138323115766324481619702881312912706965203218589202427341458808988383204770646860269547102877513186349960005259389402966451105291792990423288942842009370708793608486856725961023869753186634051593573622767733896401515767543308006548866860876341948506288066334365172993988703106761519857070738912909371780636048732891533084792490931905918172713452277844839943336963723512742945148373992349204333037985855520755747565399480018001151907261026592019488934510952149360245754437443522601932613225248795371508710527383508998634287844706057825068598646842291454299965101600849082100567797935410207472867492680777080100722236742522315967382156926700337197350983800042030870508243809324818354430993074327797347846673560445089484303954089391726498506365896778080881946807135373286764703035230976222674387677578550210582629011097473953704617125514236793661020671567872555956395735728944164129048540627770993083312680165356392528039241481727878905681009198317825954065778883425413072699810187576174420621911290710731720108757952142814246075737676403891639253212900877198209142879685762230001136402789169944258399649004454686087088898897776461354694813936230244172407571986133565677410345374984489163827170515584640929551913839039281416866012094117955319905440822026282367742085032228122514251124659779214878355245207877188849138039808024333274120068319903420667189913936961416974213549113397302838635395296094730703254831765259019921976088980267256399853165596349437788715359269944593388165781375327062274631319271836329513307746367025539662699720731269907073098999914972886251647377095587917463746431895994753928825369421938227074015098452680344252658626739918218605270573209172254050805833442049879094700232036542315089013487979185151426965550906316337856442897936881589371497840633055344645486721906182842536567649196300243265776390611233386447089252907643439985254814070635014698435995533856400707724212522200914093046831767998891587861802797500343097711980532326714352024042156222449796147165107154246594150069249288319107792425606597427299748878247971859647538484912092322480345940008326467186167343571249352151440188193614009733152372413937395355333664647483406095718214470365610474243499483574130952279767500323827229718473459075359365847815440072684700094375527230119202708151803132119806165436661517119830556650525209622186142751433032344673710290011043792170797403526623636478539114077143614504460676137537538561375202114985473395387962749747890357250841328597563314727221347899159351304656053044842048260308094708240999392200625814292064161228882538249078872774607381828132245925713871182682724435220359977185738042485682781230505720660063820329183765053533196440128406680836736598434597660701390554038984394654653840286105078378404121782464636367842721535819648300472558900890949990082193557566066969522493714067391352759235849160423364542768841892630716693153042955771123615983348597885757474855057919825796962290269062036623987078605380945076276662495894157448548862700879573804573382184416087723939316539186277672785538853678523758082101862166360689023826668915622472122351325380220742667179109251635886598140370612775620430390077684185303224842426774450039410159533547555918980498175906824378762628947000038529477327686507927364510810283286586895550565211568369084469258086828955617381468125362744786864596088167677830504985051882743501182830206358482767707816878635678758107752552392189576413874500284009709944298462753574098506556439617832465893918024873238543647729929097010403567718820950788785984271849348229965473836818053691712650316667793482452949112421589189876759358490683115874351979686283552829636435523180821505105687984119647098712161281888172758305244955310708337844492818788573323337598098415016749265149828638899559717770501155094562913176527583934961219583469387337905778181837183779748958258448612902432863720706906853344949439756439718193117781781853265878123947383218265136662664608911896028404009874055627172593184929595704428430592372816636421832530879110895352449546644946115980847036600618005577596010405690622829968875997430464725163870947979576909623033430931631233928852491007118202218645950763000960001833157976282355139715382799022924343844653427364689175503944530834668418042252471927499468330031094723355560470552084952195813663136721029276684008475846957989585937293604415449367795001401341695681884893039801396130326534897160527613814731323925349751030918754414329987452605126104840921375606807480449988436522148010107253340752990760576997977213122887207468559589502273356220731736204888235189108445456771300430637541794596106508306614039082164650397806778956204142636764962116121520747288818685028731459422927898999407035785123431685011357656305266591557717579620713685785877142173274360026937924178478308722529076325946707737576502721089938369726472325221875052059841926687189757727483382577869436855207309529518901916218134998094192299356349578466586386804755474184108959519909857017961724232667909052841190636109714180643031900877503447234088432945805740768384968013366288582096329393072148601399356696568562341717875139300737214860577974100784402932923209079599343194784296526426018523458946293279609733430832109623334922354073057229985816502539069622604617871226606924722379130336988045617414275008985540894119075989920901098565864576201411158617168955828554369569673640483167322175270466614072430315376359265868480312268336629737860419626328953760145826737006537825674568367971679901424342692423217595410817547004172834986225801154622885245649123708951884099145238828037251535486640652822890562541567511975465609828618411956790347492424812502062609544628525701498444067686581834524244652698276683128220827705475993922090281922406574376877437078553673029877440903305325420029683067192083804362324027033044609220514993048797408392794739175482237601400149132866621681054226447506277658829615556615447056906244693847399423316997758854394347774721369738473979118223901763239135717766833735641659700498511356723290959585882522858703005389991197967982724011921956538697620017048238494709580159906641401528668873907552521300444601755060741522754746514579181965936114115003188575553112562784602837408769503475576016398977973351980970119624054194303258374144880462919923331392041085433880262640122786202649593435295044071803805886741307640598073247944324205719567468711171431531634859810573911462606333131618575915599329140451361117067213610871982578243772808894517373988944542313839107629049474720000634583196453108922406622294528152231048171434555893459429439277350581349266650592613664532022717153155487265460035170878482378347390189195948334614495240921600744733142293986385210778992983746036711315681759925641835929216821213838643043805850222393248751287610694662165461889869425115032210889077968828015210011145387172665910677185604106906347023110278214120715410103638310764161101946259727984598626639159641204120910904725752588154274438815586558670212644471253256160259845482500804447384785936033938618637645856801500131914668764660528913752069636970573021347676390691009530054696334713454472823908442845275063810901595380784175410463800721306661603637311067122604713964837802672679319534176492977980295869934931104857173935402641243903101586940202283447431873824062108944083766145937800979573446441761902446884520754289757201675436468177494769515361032291890929329916126563989861261428435939989923747419897024447154392644920512271309598588002532336716466824896412121082689083461377330869727935508003253782058622235939522108841008169510539041689791468879658411897885766383453864701644397037400434140049905351103126336257011341675971002342524033136856995964189847189180186494449227992067790025491096190095200683491870948209642601196893692233446257164114610800165234323874953532426179737360078605971421179627736856915924362973741838936172218592017855641259435631119362486815410803860370808276636176486378376929147232747236392787405979580581661053334816933188792117395508727835154312208343227179983136636054996060658539408538004895587672482530579736194774920007667331224151583582942349014337504822864576304287365871130595951640443818223560434243060322995980057462983912751528768608490793645853499642128406307100382900910265384406108604537195772667890796596564021648990976076054492234177851508331395361426619358882433032479393466877508584372704008126620470586071129061048050183955610096725885587666102175715079488977048510568428074122967306858631476477904327089011982205944264107396002677402270685035564969758924384179115112408873503850092632551297951734751465348049874799476901526546550328453354259432342973688104161877304673775190230990016238115134166314089067808174817194608520506957349061927108809165354055229309400700380257105538846564760046385974792941232206815467095814473224607000300003772763439081096103241388787658259315207056232266846120028227678349104849359377241301652289341899935912530403910650273086341403298438713525784103079133547868009305445880195114266238469795892305717611426797691544647063929520723963708409305032465519835052851093641945248147249936955998095946517726063004287043791560920670364750701587914544378085855535218134576429551950986390050027843099608145932169537739718112220540803102701162921224242493392375072023526379339345885340607780906896432158095784233756267947633588273848094840217733544774639573876616372221428458802853859243112792774053523507484274969048232809135632279669292676148866325612755123420951493636455764771672914963004493606945005806703531156039093287652274794664116887366000770822191028047687360054614157760652048179848012259180785475779221094174691412527413205283698049949484171273012310567672725707419482882410357492619095127245031796077958476120371404754471980513786905688776522724051723551993376995076699496922829261983929702291276500158777561317155816846208305080936384967316672411962846870133201824251752460594389479023626009800190645353016019590431203687645750754881681909457774635457852865944557992962069598568879526743955217122383257475484069297468083527439951319107475414508289527355758349131722277784865705663220693660648843416869844032080671586874293876252865973413676874731845065081235935908639810210963318413110581720848867716116508065908011903026995397995151297276786769091325391555226224460523626155526401537445987671212318817660852683808487347076389195182886044465381382155682623007420116432291439432455852599836391546760079290545735197576085120301578902274621983773479618777769039988710783807584610588934891149680650528498616768598501315301130165995200829133427739421665485084968031635367981477241695749991428518576486072308877255549738985050587006297475877882093343144481574999093233460645306977393466492232815166304494840080083065457041138166193898655811065042840996422691093066905797105863787727741768581686152018408019667731776609774862498970901742287943911641890580832506858748517681006814772120190828145694029674412889790237201623369463919781199822222838640817696745095056034602603090535700985753190218662876386117632151198201362536593061416675501422906017254457964694081067668891545224124833950991697789028017146726914266852375551325973781603254054392283420332846832291963072105495254691777189850058716667111573352905984190196951952946450957386148391567998441228824219438950850686433301009935994672534891542798653358116696421297112231873585340721229647371256904028088647933884514152807644393327667981684221519206175028971280433477584164518561086624770452204872616878666935662107862210457024505107585312499418390868258849303008014628240534824177193088215229298905710361033788111957602857375393500341211411948414477281591484526226583792431515508866043464266984029244705242233809446164641703435309971879113986742104842513951261239749054016911210697134731936782878773353837002127134739367718396087356295612390840108593852330561513727695447797888029916495171385199509039928322138492028401152538436728910693397730421192685394713619973022228667000745721925694840032800777645715180355865500312739088194275394682090332573525338708054195353291460914295645002672747672652785388704461083406819735151995568660698137027969775083845756115285329262885531208616439604554280354292895883055315189459331711090851445172542616128110874801830548495279033433171549749117052086773677692475677198385368016990473125975469107566662038385873436277019888711805043469310556924499822818687055138385392310999219891601073880608605100001650040166233181941638933227927746292613235872152309901275343561447015594127284037200727955011318992748327897280145330990485953519382220095533111237324499368023636381739442080490587116962945241448347523432026356612059847560737408409221743472288901394692171645341949173744807671058259589742632827679125949415664525069653203155200153239011460993290453766312387045380607792100878765810933092124720315200327555432426741249896507616213388637284251189723030043902125238648693624049094878708701481878640434055331608303344724719536766826892910542384731515725191374276063707666377650390478657974078184282639588907340637274954859631255276026160665098175262014347519188038540473367644966239378731436870771803664799395671328258545560589927943999773131615797836733504251730656256073688100638906485482376276036919029410386494385601410585628566895676709189531461041648746318999137435083921397522469252549335833013069787945635818430437552581851126079954249088583685127197247721214214918360385433943258709537715506926862156932331734837365631174894067868173977453490511306434140116258128887906343934761238967295705407715941340588551605151504987997850428967924467830318928852045461451258755039767804411140922498747551666949761757761220145601868993149905131949763981678768633950223964978936595517073517927738235746164963252968740176181422834092493256976481560400998255150797507003671600514992116352878624474822688133559253806226955477467894679536754335832474633977364191787055246534096293163072541687722793897899348505744359991210636875023397594425658311450086122376931706874460425271473094862544958451246606516166100438101917868408273475068293669243889378745992092552579979747192351310239790684676048699104768053220943309721942482267193528807866569287168985910563609936561698511048254069128354186178580115171815941100943623591155648678520536913813452435141789238648621410859407239269409949165290213366393555415975836972692650930563824612296954502029793413860635598556297793681991358432152585993612308702621590318273522087485788858467481531211164453256116485057885421202946723438239914515816898667955982773272517366057233962468953073565563356458628218017337432840858128915570567718722396711577037333631083784304802488365957823462261149642600802175960202123102551153644160844118406658444784707901849059245113733384416312367199815208014985055191913378480712944536555283987388637902746831633560562228721164613736457596338104503174710159717023996657269092844942211651499492942193039841066642658028960006104089962642989179417424187349520748005939184790480797028733795756997355965038189154650126809682389664674508215083981991919778455701008767308308999682688590582355230139268162647097799318547369945351957137917669734100346786107309980853557880230629902620618357951809694853940719314908009638730167931836242186939332323206922831507147424591130464991905135996923610585697076098216639221472951349759852302085366083300120276627058263958833148458186126536582892004183122309652836028302468680336829538850768799536933379163144314454124359266004946355285106341019625651481221701984757188385543535011331462995242410186475549487116878827181236966754216296150747684026397279378946439567902699511818995505025792629255835311896492136655649524247481297983951206886983204977717279206377434231710343331653116525113308776104861058643568425710894778729710980278394990971284718525334969840343215999439827332777134233593668370206293631964506177199156219168027154780159793950467127900557474917790172678542571223085019553633740543965157964535057037956547746401938022442795021325336708938602798409336680291992500397240928761489117778058851434817186659845286160164025745675646633442728529237692004893237596217627080554080088305383913825356438413986137466255194238768597186191047507906403345202964540488910696114448985268476027494501623023779520727706512402965193901091676104423051135890115786359625402458529394250864151118254012539739864143287947349212654893681643421268542763566507875623919380236329882588471083695697888454138638238218620064269110430318933447153128195753852607022798667261205935710564770768969253505898188920928325965569005748260259831319205531416037560565372877496819592162233865336128838648176003088626900468642349344239228638977739221475275995753529625770099861890000030090526784607771226379837565737034145564991452985493689825235860854239714591279464446605204708769732246907438470554534631744756420067571741385935728116126190730433996608620020893147191096924473316136819716153538126438544719036678282539790106572468179187279582996941236464129357843646340724631116367087726115119574748205147212450878560838088575607847680482667448011817202533406050423280071272144293024817366741947400713232155674580011465866766116949355128622437270252845068408812855464958885997025443403267241495600623040315029503575240397939797512020280350679020152136972143644534556779140642583162244543088373966946913752599369949983105081153571604661029012741253798138765610125296449975003973685476300504012589733896331164069261489011626718187736020045596917017503258047942401756462680535115818930757162926088867947598374660098980718693101038607954760966712769659314837888262655319187433341476763534478804699077675188489120890683760635120329255687042475944521619302815662539371480746045379736886481176479196358108410064109926495969974186888780095007291212187993120723897131970758162071284045026493264276143104463985113791390443540832926123327915974088212321523384076268639572631208038232064716537868480430691590925924737517910497899770187994401480147980160857984781235519540605828484348080913583733559147670524788585076594819600817586801310147767619785707154033539704801534734522004071671942324495232173489841007009390142997414204884776055436452827926682934245834090751534706439237626008370866791781627638623858899574589060920608561476576998622523123870369388019726764972959456309200671151017169755212360463528140345418667093267671228600405213547809949748286699095168675065050731704087920466101426137444690098198503157192234132418775596239187000901653785683334804048261959177525356694425722641558290028842238737825649047890961722136513111276508166461906343853275055273408761364545753915877199661766717511984686133052350033891918743396679721844392400020601677875822334354001072276107325526544631636595062567337101860641678084221516504988024232895597778556827096081494570147578400930542729126905113652905211347497388359644604996494160536266398580458405868957553205348153722535229305477255815470020073765533429119166119133980615074974105166282106365836765995554140804561990328041608850332382741587239650959706747679661610846700984905907418895531445925132783730991003375108284335139717373934077631967253729800019314269185583607689209203128929568142168340710017971238873412204484973158090084929507645214376128559852462787243466289609152772994620521671165134560159608137738895147828743029413388323388688086914271816020201774338589461621176728025875376637662352264865639774645104540447263873173491258281140609837170469564419621500655106724867987973338815502487917674566950242581382370524747918929779066095596205536319212441307308946983455572627915708668628937588442019858616266332984301164260251742412474366260789127611918352954337808127344602112279616416488450971568959555831051362934421537603659503684125891698388911035529433012156974846351417452086893049246907605158559568592239802691078812752643875161910813112768818141579281540491602877976191779591747662821421047117287322803113158450568114992755491966843849247822960509723613123620444399064611921728331305741870722142510712672875155672998721575135426437236064965904239520303393116130633679115088902799868174937370145320666733061631484836342192461625925159957994329532082188180138665225472998578816631443891773570201338034605986592047075829364917389928341369884074029913853096930588505495350841794110217661838779101371883976768177607945266866097428675899252509411705099434749817209008940570482136932251029232510214607651902793929423837303318345394918880873823747297701181459236173568530637108828916341819300108065801084114385404502223006587925445641066308709412875194217431717237254638402080436798383696819635209525486803772521514654246957600239410154982691596536081261291102306398578204454308951961428262602699078948823089845875787974385366845525664431130578926260110317446254377403135305493537596350311211554469237248497352175686059022006359772696899407279929097704125760261763400239137835078452683246941954201950661674963357932830070877343781435990862793541072174759042786377735484025964295938210768916194989265248382379613491264750277383239610678417171670766290778486207464421852151403174136300483304678507178260676356286612438205723382775258862429701900098602227273505428771848416195896366027534536943052132127287074889326733656060151168730257327135670313583925443872806370285921851157895358587189626140844921472668062150782871506084772244658746142997892058362242391217616663993175888999089128530843724296282945182369670881399700738239174655626285973753809370975472733481439414648788023770518953703628777297157730592603231288809012398563592925819104257950115099537258633963355579323735780813346837563420188121425934730432432962250000384793663193153498192952759921984339850385678986108479901687738633425987942736227158287957292759178751768870352519570215609511241820314578388493290306640679039175443846752213434843707312368774528681712430436807531880910680192596324782359745993923476540082444437669244131352904129180049247387027282322731835684215486920525886931069376323221654130263261181623741632880056992886723268182601863905505199929021075735718367696141156555374246642416275388055650299411683523481706546837913586939511253991673076574630805028256439635029626964513567196128289041355166442825520843418298900066550844846769112466693876806365658080610650759068904034877794964078322063995667393245859895358842599008011080030056948612354142019870674566067105995672552844426082927215618453234519004101044689122349882834651170896929477927101882640037526489772696456205918411591234949513998524687474502890070327321060999102469052749272299624169772973001375234229543473252400158751766234398574546628099525493884021970981364161046062801821170750175459552338761443039999635859104971329957785511426249100562810364200568141256291039461280242900806127016223312606534107583750955954625505099671536814622835111556724896749075029173124872610143274550178018870764713702935802564168510908886269576970729893763929854832701046922419800346123955590113685094854953223768105196235124138431449283933414207580813487889225159061455906189462929274364568248465578055771527759418334208420431695878305601716626906449458042489235880338046142231035051690705514253240157889884051012175533096111710076868579219066147397296457438698128451205580250266851841857679439055437083926443286440371262751363917299137571333063431561379818682108703598265924832119267865006547233252495099071815216861029440221710244695784084213331883562853434760487779359185386354739528777937272514369541759655970736449602947759739380180911663609637409008934384151547318254043406251488421784249084760540286571086674378774327937158976067110543980763742260510320600497036429234256263451504556926094189951120044607209788355720469349446289099799254989371503200369658414006424021031474141757955822014744560622451599795965261044318607586391943568761311652718356736940832048883711808935242862150662708773808713896133044103611072386818421151803173734219818050353937198214701441750466980970862843169921327501604110663024607450097928774091206229038607084843551608406273058649183990295738816704346806573482088436331803358809153261165577073464016130795293257346077592242101740810033317748787123927462861937388330806400899311278459685239765224014304883339851694066852702137969043028269410781777621514238927938673333945780009723132903767942775287361061027433570485168096300890966356064569601677420738155048041181741392908658398049627509187287493597141585254345148068784856906153738175540792417805687926036713874871892171411177383003076771202011943183665107462959244846324970966136760559572453849507619123948747466262788344163495068407548556319806845117894278532628899494665776458517984689672750936393521062086942315056192542940875864522659242094530356347674958006778176719848896606910521907565113416772730165419384630350047138767539752475310383725143235557478123739061619163170285076472967699082504928961527302574658901397727100705309653613516225678048560626582174863184497160104358130922491995773500321574941550166288368580235087601144291794632992224495670090799167905624351761245057527682065770411701452919526397488467788334053858635893282858889948342431041023399779683133659837046747729062808429478503738190197541720152150593179582411354496898461128471004051365479147963171001466931376306956033593000217621175843989846145367842282237314720622033621741798566112643632935621221994457368980019094900217376782739743130635230128030467859256909048529018755848993949574409269245398821471282181064905497950429267358303946976044823390360083501345714562278682422994040637913573946225887503407262042371928738422425964662427819529328476568033247508802315745900376550423623063543931418675461735990171447343000445973281536445755322838512588211562467707276841320452213591462048750551859817756173373992522010694558569396254291013424884572788410253980667692270969853421071807811941086166763021601981745442957500516101440897206704868918312065332137228293297590447734848104721810603734004119770057930143277099533796347245943938290155795248304940686231034920345173517220732857854099423561743111434940174538127787711322460266713484297683108331869020828084289721357306862127194731872183361898908087096669534158218219990743667352446315060128439597088304747360777077369991344166107925604201643636057124538846067007296622285023255482910090030012904710976710311682665983583202983487505766199398367016648771607272096308150408835124365982864149564767443777431235525189015504749132230893715637478886862395454440501185828082386923902902836994424719287424933361287122218279724097763297357496121235897274315656484644903433788123234767397815779227546268609220599258604513058686603513695203357752183481144793591773734912240115226722810556508959250497542985927384117261657280329482079573716958811237344596204944802585839169933229970315176163797156128721750724007564472167798604206173692825463884850158565732952705417083948357370779013878152625955114042336194190409385665801308273193438234824281898670265952058420646544359627005385190961897135279987342855588875142026521030206067296370379353699165702630803537402090574795171582231532651185616780329412777377927012933776491351312387186805948622209685030329489742367344083432534598602378697246930079984272849182230666450985000950108913385522651002720281610153748226833000517053205089380881258148076789723749031315362175833527338777264373609865920462926555237212111624684520085717866786111623368376658376447639470297745885094492983296433795614228005103278404568137916697494461350690799931094278474679590163706577879449483063416242702714297212219367667526677333923037546290176745979009200100084356540363322086079996546944632044502538781592451405075337336125505371443626082544017429831659458703873589390930227392571476783111373285474167222540449661505566614392914318747224878261878905780350060035399108936594650914199520858307214464445643395041002106254036840893563997592291979983005461250629526447776690681610986186424699634137618942291894590628984962083780382320519174771696989942075798417555354236960318623347658822398117117875644234200296955658531468328472915380111578124538283924931221921047220978715271225075383012211380812128079044530931963210418361058879693285189932280434351002319239289525516087610251921893746981327522424353488490229467124976280656232108289436969664559325390887565837385238152549930529691144746784739391680262304798060594724430175460292133260591651147435814506633685912495612326419688019238146283250231722781562181826632531752143275579125329863078247197928143634283945357827762825471322486379094731573261561623079771283948114411489317778910947310645667673659039316357937940465391567710944666587964461799927205287870168964322222985065970291578113251705337039894291588967325487258697856266066555449193806617599291209519980382969500174830838419533924943573528251450312666189572200378844520403196451519093975207776417927860692794937778731279727358254026016658125946367264479790492658235128662025055170295148183893463891123273436047391840687234386848984232477182462213500363223924665730380653359659026565153472717251769843485852474577105910031848305285564322144357183759522256713115955317253465518683376831312435590230784436417584247393443000198855790887246197949819262339186231718430873775024019630073084048974106520242794899563409657599314644137041216831493746998449119334847651509475254793945114662115426169454727816863759266467510493965993703454538799287077592548236548106938058897656758302424323960327395134659768552527626353944032487326492446201787412480501019099522271548686308431605880702140420244251047543024212864016364558639041801178561563320254030920926020981594724241215455475910606706710904505575844288708919644936699982635386535463737695695172133296351115757306826241389508583833829269957480519715126746738352003610636971547573607451293226703293577543014511759949640702814317424775724099629162852960604203154984869013350578690205758882413157209683925119975920981296734634991917987884328775405972484192615974068004187554702617061104499668963959745403557235875858518617229712663970468439391013942707724476619525236519427386822944739428758193887670806341313281451098052134217761012428339157047647010416171881467306566809339332817160405596080525591035820086830158661046322001668565794069385310106235992745503495967443033480129606862711076371438472819634281400352126886449566442130108126636109370553883060872861256901374090746228805467324292098906841401855260862348623618749632745833622423418551556655997591301441061475466640756653681373449385258881665848164042490053717200649262996840839931023070444062575795958427035920513052845839273635388980582045652020358744961191221587810641137908708035210678866972710278613919068994999598996809912694175814217765413822745911103358955714793139681675517803969118110305697191795716012301607070747417537182032569335899192499218349106761667355983401482900686371700144519045571590916799425178023595408841195200086596259874238703475200686489510060496658175131263953298598767908593398646484963925777141758735451137172475937576024113726993230279020695236865737355018381568771789587157123980647515645152888960754674209258628226806576661742224594875226864355949097385156175050312834050323325101298146605270673803331509016897604844312525280476461963993156267476294985260086144044681080341923469120272696178411979329774204459954728383593173757647279343467721129666292864547294365666417943942439123901865573282715867859493626437807739549328953630342803159420937129311954765068246803328496782192583227392576421043988097125263085173876287523013343437597463875076181427777507269643893653132087027493580523470895068238369398916516558901290786479193844932184568889878550505041803147851146874034534985682051697826503594723698767639709923462059630125289681367880075364602637539333346721235607155678205136926753718585855722471759006760923532422617033264081114424898552571526929799081245124612492752356015653845036907959202267166055347574694363218762171248514175211703298633516110696367169167295941513708702391771796851197382194423621291442572578939526234014397112068282460969533003465270235133943660171689950011479037734183934905355135304729491617455341956851860226033982391582837197602111373404611519407918574290870748574047796463230762850661592127089400911525838332628236179296233588576831175821079438360323714005147253642473681977374441838891135101189095337706305440775929354373796373597510038757237014601506195873516839926066037148387841254306873295950544372812505940093443161273003084961560113621927796894077194773869087363446141561977608770962668179842836218092217527877053518129814089491323893209116200042458197971698599857969189108759045041517029515595509557011058327671488434982816514031311776619180537852447395340566215053701816143746545733422942900491689269744346518914125148746569992108707876649477770059301529451144157023310252669238291111601469970141055363039517895835303685192899734201039575409754834679357940084270106668698439024481454386210462616013159942395826120777763041712567268605780432681391587170076205806152405715741992602458229740567568899217179227087794832065256912401137538718395998813318480488535736580155888862546509375705560222412119863290910170682280427902714154115807279522543296353193179225807088577527680177930826393289615747944149871906761776250557644444440134179700874267584528813977365887651359321683638754906570621398242602863335496563342039594652471222057231384384198400577372392821039474737361387161972740781157626566111386101385988817604058323690290374743748030221744266535448615101689276602834422392402726093706258437899336322590985998585231455583488226892178924619767833934005748228078755802341599660122066265618066938809451513961684480482943886711959409708774329627427997839443395652745374582233777759986205874428555060077925909151216189467250083997067165122376180940062110484846176491605872022912280041465693319153319940148319697641736046723236134553267152882986692842979300090950434743085910819253096862069420845757696103239250474320086307345075786221403701782520830539681323021265878278347145392873332083587605357111631702346045859749394377116798289164387450173649521850807552247442309449782270569269761221394107673528246640288198657471743050799468187903283815279702296694709807910568185920289974641093515524945219191372743922691286498320797916296921116133484228328621755830941849929641003189148310145145302820538488651352802236060416986588020437160136940763571437400953951548023017777642563108278731828476524572778131689145011720641181560939172049717175341435087886106327458320806467700083983764357587773643842371145079769527758562106914747868594539733384745621570331342540655963008214253686450971460515778686391149577883090254132244259772073950038437596368704935359998078004887312570985553390307971181671143925936714622064736748101928948547080565072406937621796113196574266702982727591907206531399250714755347022497720618139814838351580322362179671873715746351448091468386573119143264721664059919368760912346149249862913090636493328128178275497203445014583734423519100064683176777854606249834395109659943164986293287667380211122609374386669237091137224689841615806709101062398470784993150637186673122584727468072895756448974862887682262712485792311688851933683330600849594144854029656982881842535499308532987498464542275553273849072511774808165763336676088831237300744079177396322682369104321564774599742243555725958839105809938143343355628378471859327471560587293936406402502884233758754153266541335277305101484458332481745865927288002894357505738603224741161837787184530862303647098496692995728236839984096962021668715935941475049592785483542055071203497260848158572608350463224608198885208842338176764347187834668380111235169091266662750129771435179127494246371628570876235839485603181196052201576840599032685546309764048609416134691823568616302640129642272872978275265233865472690477553166758881821709025712527177763066393630147282944028171585321480154640558390328467778033127495264043619992282924101248611047650402126683431594472259597292214512830244287386684565576555811280613818348046182594034708133610886204511155729966877808769378300502014961772281487858140774066301505872590771942997078670652057208258552983644110541384210546869742418685433144913608047702600242920665752568965579978252014925460520169582355331241983431435664209660752902368356519021892749978213297149173838234410687938281118805218425196904327425580272148552298244287831645532642121176041750969645882724318392429110011701379022873503142490793058254012255276071788550987148445482190692105225213333484336772598522384042473507274458120507599565055138747618210965715979483122387176995667861588532501163806306713727105140929345165675341896694694644129718700809620161785532469767944330752121307297289007197477783080513223284570185965632441816317537135904626478520659105819564458016036512876594180539323942759216819915859058426982508270160516793847221918677686335495421987938991448922397471084282012584578827957458612462871744326860301099410731227992871946749064910775560122473668248144818684881397136565294678295724280068626994015652925805727447904577485646855798245546664773523009148956452312567529782012484430886635556936222702753300281002954782376127921172257737060312122275793487146659219821009705943212980411606067425515956636340394567903761592601790910581030438293035772386975858200877898234731177972716392979387273121487067376327440006227960949263268209460708201114778953405059394547632017108397924994200988814787634237497482393154758685902857469264131771431243467358191996122681242700514317114398994328677361930562504269036785811761521825836889555399839541570183856952902847628036080220350327010818385224048147477466673419215722903727210176970477169661760458194691011764246472590584658414606635421586750007810986994587152414143430295974675776182027846979250674233648154288623195136776375826702515517632714997269892010779170719216476216169627829610838306761935882943280280613745786575462801564515832161263501559068284559040957884601185956424926080241518954428155656925052130468401727166149517235430825657666668459664542660742480502368451169024425593486842633455903383456865704724034839616766485653129070488389982605818662266108632277843977579330834160703937657721050902445624326778489152611674137847812828979882009932501651401792855367827554785373882775747060112613941218774845609113588157115467892861434150032798691351255478975503370920060034894597968674516226023599754838956702255625414258067015904966007562375889197191910269901486265450803382181754411460704920792951038807293148577173389943278195641601428335753807965270467689140604182533998421142388621337243784583160181184997798222731193053530410367562792007207398127612840516444281758307325379104331914896577180446538772836745390501436324669058948161232262993339331943310718317386458489902076249464279339402087066325507668205284685028085778633138928821898371970916866702833463514307099580628509973002241679405606768003516213252161454400336839682704850966977479955265443330407039029398278563875712890263866430874040092827266194133511393778656106391836339236990934682106317462146037975708407498677109829572294004187240956895026239586902964676930626373384620999432811934469150661624664806262979690007294548911557877275663209983746770458930298580025001456681191896408132521990982866023599595836649291965534477931612527961761565188180259910401508196368871520814711392963342812728296542566911849533146384325800021656353483472673391493047523840946728617909925652446917499554176396949797546333881597837658715836996684875063239119189369279750408046646314797404787050462864807382157960283656948054211316666956927046957296417744074153373999648481995069515500855812383799564726328037918674555121639350966351450907238675960429691953943277891252172700349843303948233297093685633482041987186086353794230587134255676649654140100052412939123321694967665524505163722908243932142750562374554809122506253211505757809321649153802290432796531780681248353524373330574144724410115000855900149654721211821218736124138142688267653709649957106243210949758927632215393808295843410812793106682994198246337095898623908700195609051913554199218775090640274212314080467698231767615014365337909487411943253127323679104278912475812851223425046668236349834348440500410109064530489223506336961178455221630899877142912659786027375815242590228425138650258089172808895143124588305533370044257187611152397901033403890181133801502656781785101653924104331610073674933411848640009190967635591435103558532831855558578787070086900661708217225643826706119730768458139650361551447860345535688725735097589254284804488024086170852527108868316788022200404899620809817419867104017386801979435759003281975399968028907336846846082122352969775413307232064685688364093148145446335488178439180517655493807272573026054925998301655490118513497506052982531566687951439674874875814551770683043186208863682724232044801167537447829048272541260477852237092242841393393638159133752414410615090351164642639694468257027512551236789993059829171788415541335414892071384569119056032316589074332976612225146094552111056435823460243411717584490898987200866429344394569907341692810430273610607112392130376678495598762746132246207368727090607719228020181669527994863149549170616017522776743045708727045127132852055689885874383320426158361103162053200782591758688349231606356494043982601311311216874240681734956133733625208227813945989938921647177541822267061273732098362221396973810760825525762296696046916667018475433711107637896110174450711665616897669674150221841448489807829713591024086285352356782102963854729032976882228630412345193936145268566651496492612979382091132693379796270445796528885960726865170314527518854819654077052413084471162090073253665153981688087988524484470709576731767761241941124353199162127138302162971019524322595015474263052475964377601549694297952602400983905301214058050768560434146470557524538989203665368983095759721134807510898984911535401028036181734056095359742719779466979149992417131816838943583584692746927579785636914716972869400100029374786121194480495128998783341063401425383735878191964897053206159768420931828206141698754211238857089674593030140403250864465158209601341133603369352777654001674267801156385113652113266883914050161119644575183803632127431472325490565577858554475526369715340157261719139116160523815443477900042889426195868990976536175863335524593874549974555725011318007992151082502374174355124503578616428050905071212474736957738894060823448835943258164064547577853091484793594666810921538410453502781075906527352260837303977574268948755267467339607514928169709116576165654354303631162845932787917543122910519940094600833067608422991394271112324510670704866500449315639221549557689534928161117736438343109084604906752344038093492210676367849224093722667280819177941808579524808693836623812202481370757547167850851007083855740861560617516008001362759626410392205382352448386008988219012042358842727064721513158868127027902667958531297790679908528012627768405917984222394747897189016582423244205334601925607560730570541086629945626504419424998956998210395333919664257043932590222580611028154170302205685053157884270910794889704059930003083213686912636827947307546346218579606972748393926320992559473859569414937061474249654118377590852670881241223990860322815343132000364730494602394380267653633715715722669292063721186122268166695802116951419694193297395588489137542376528186753766824865926311899216980966792613757989305827559539616076402560484091917404491508910934100260493320287443305443483512687286218039308618974778651328951918989405773163915221224258956368459307557131212674202727889600082481915788346719274516512445759683035288425937090735672790670535811526917519497539326966995165000870950266760507302651617230270146833725058103154713415254129678683702654393977318309316653311248811358266299030252596604077308872044680817982604232494721231682368386311991610202439741640083155336212439812851541055206041154962770136799731478107453534931121095353539525071000520243778484300244994162395022947338790718247308199175144890349673843097389358071127764099203458145645944987565708326676728012841121586283790854959885560990830152273013978290067412534812712325883399411557689583578298332235521448373067992740588655588883295154565880357193829262395568471120639559608957440662842494251632352414885362858464737104441774462064988640546663402528907604449304243866033401142831953789015705758014458359965038976329357573703974819960246559797918051513561446184414351237267328297966646263210577629972210780099682932233938062230306897109965464487354557008763697793652586254541303616027776223819460988639983983314650100635610833843525984002584454195303563852860500472717430083175987248295026180821498152787538636795997202930718428030045590937732290551697529253194894983410278265624138992440026502467936244772475529561653745698741531132414411601327900246762094363930670079635858388630260262300534555750935418785087910956684833113922887748892400585929002269414497386399762611373191871996693749361361658071051658959206006026820040150740514065300145723968463335183698238638445508025665984989257583630652075107105689852937304279475052132378660459698145960431760404507811957710603635905402950172540832005104427393772165346809184164188374457100074656077161273009017739108544245160176465812428163631408286892663031211005503154395379678274918949732360968956156635421610475057935188025269455594978001937882268075836475971287736671589316097336805083962369417875707702763693950343439941896919441988462635632904828724972464735521579288231335377347838637852598308503969945795582245601748708244869839853571714695491105129103310020543040642300022424962133120158309374477128256015852622890169966400753223403323961168110872951481391045131345798735539269858756448188080594198853572276276781534822159005756120542402497089587006080622970267931721724362174867674393566995141583349126908161925046746941026198601139403218187725477456424398948246858168781248135804494884925287761815245795745526738823990440096003760012231118086110837057711555381520005963765045255386290875693708472787195244684751626068963207124517437671388208354305693685445797136534489926580246735100769689253673605108200539960776450246124353039618519847383010442476815971701327254570559339619624520064780151939556998711575762876606994738844724208410925379350738655414967668398319684569029215907346463321572987257469892213180130872434383138145684999289088074388879378121880224215456101416677249901243631257320543808585228765307671601495311539057498444463453755339799282971202895479157691486417277421558571142092422024109108262436660928710930610910378247759956266701039975904835051671031804805236529333341050383912092956398665609200331309841963410842664919719409753382003608835541051927442886213978293815514709879147511773500508188373105555626175146564072484250013149623727647719129424478060939476515911251134313319733063384409051743429628197319054960972257712935971685812158512741146365921201711222124989852231287712902549121309302049619154452714399367849328891685439986388915456821763561759764615069904942035758049932139037695277665696513807500069499125466862601916303288120393189683059958295810083503048820225614814004459760036635180762641569672245253091432788645645764210177809188578622286483662799147262628814773561614913316883725524580799315858719178248644777843409679426029969423511106408802495602518275611813353473775582558175195098314989838577060796763153151082293173088386197564825931021768214465626506705839608131000174745161535090836920452082926656325310923711914162532125207865899141795224120254222629498419243228338815282808607121803963755933386241404941045693616473938577455100116044524081488879739938200326857535388841019176639688584317260406222765292657144944232805132845796407169654164555157741078074474560171883980410562032862246887721634434020637206255088441994923713513805636978604840623353265751136360421468548153367998609487170486487415194093787187519222450260538782058465576978639451160794959718238402418504920786885939159294948196353187765752988025961727946999465973384420590708681224060888141376770947562070705481946841179045689745712589813549991065810128410125051842623527370288724735233547712375816079753863245657632368900594444768949134083882008104585173423278542604265643959393497580493662544381075724064397207523451010599908611463367889503707323744984712078415747670595474373845601051905101812428495033292150107942870785604546308810775545996760667335019676416217139737570625032111053542701272228815998407313117412843255811275654719143610106169009579994995047848803111745617646034813502874666645900886597615133934853626010301970221410407236201380819017550256207536461022902242621753238550491628243189589230843685832481076253993531394912298731881075438656893365522479186867493249465472050064463853743629180109234261716141413199724212273879169140196617934029539882988743721724254642249027258155254486010860676696898843578081428215988176556593624725487360873440389497043238177932008666313885906622708831336642654191394007682634266432949296209601815228311749570164168120600962739486239848803280240064050292698197959148664544456529728124812137089212607100660054585897179192085276213161131369187936001138361657704569123357949676705712644096980908316246138054382916707812912799648512146471801418997079601349014008502040551964352820990727587781086183504666483700761636993064065459816848594685252329235011157905857732925131537840708362536495098320622728639196677683814575403973271241277731826241407128686789353309736057060498111523472509719673454449274224922490893830004237985194623917759538053291371167979353280463709499131220833744970216960086787560478033058595786707907000481255088648772443887847601352460185933688159586606876618802677892972498897241442266203476777110156440768694047173175882213229304593672411522386423582302377184177254630710073542120492670070433696316042932249692484335735277603674228963148516456088859126623355171231195811415612363943918878880978127746470566273420125973032227074715786568776504020341686121452330299472178150104811336237921553693071392460596671631174406582828394740903153764331620582171403582110670139015312818235945342935273329648493160699147714272983519644677547332533777398631866438091099662483224753516815397271857098780189611537928979040772511493529738963498238768371387301114773965277475855631405569290789741885109185697165069231295177351264945469829083119957070654076074267279054288024461353168274631223151656819200282070852072054031795338076816684168800286654462606803935249447351549140440074189089973905832691223431978080955648881554331838026498794538614846102787354031501811797382571885641017094272851427608501791082281566484752805319921552478675552337083133828972660524549970826000222669134782560050491700924479524549496556569104045462299126402457421530148020124450310258964678697997636624256398287822705166842053436055775475088677494070019431316343369465159925314087240725547292131681469631110764369295591118009864870934631051523342170968296723490376977451439626541225234688676653594305539347906473887166985892094289026942488862704962989584562324361920551743181760630707425134026096543610083874027564770731426239627599974099989824879772857766545701224785917465893466293965497916477845887727201768265408016853674266659758847585994144587974460952821228690577580800121264938021732736737065464192600148226114908157372619586778587746102887668701309619518062637436159913072894053868941383649209001261832296049209988607189588146568564039359038430120627518519615551930537776547942217564131877111292726307470742045522473678532501682677146301154841752222590405817047328011740401042674595496159296625992975227306773357932266003006441694295678628233666490453566665224862809265540386301313894588139954576492992788506341719066498754877867693958978509955712805538855757549609956397030220656147251122546490458005073336799761079478240417227856476822166469462734287694565925942905106717647956254601793230768938238294354075425791612328716066670227696467725851513461998347850227686880572377682679294307844685079052753316341715421573939930841597116502530629178772039623615150943762631305549277333281259670694884770119181191357645859291800085145353561254174851144915761816455277915869574196725354662326375903410636541742708081041506785285761376441051109579547604718961383385795471406453641140302993160044502720586201461665812463268500596095535451405289024069755426202285481172291267124875017895792458213562670448240866255367837348680526603114401865776325705516158008533529137708459471435468023324321417620596829964808761702156546470490961722625859594566289500231233489873091640272324015510097000119293974258254970822004223852474309097550444028657146448164435258195403729749939878290346085101105919597073303323338256713654616942921005488347015735404369528932599596686662169522323817496787665820357718336154551667981684489762879299256319291642698573898235939606353462468187670057319370945263618837060181254020642706848749692199817230175729916425051751507285965494345892300993278064361849379089537675109199931986119216920862425742450637547297327940648404665442606030257435061666277655046833395382907149858057477015072215322686150854984490041876806532827127853266248210455378552614267234482882891307388935716121804465282858269970652670923144406562459995352889807704310355432838114294163770013753156616319143125558825514069667506937274293752483107795232945145058964571778257038136599870836047505490252909275344682018002319659170280552750622065044224537945841697382162949917997977666628404033726929850948646641901116840494871125166920124903004560422371339599999880109817407924697627329277671949746577766003888903448247291484532490714232809360062159140217851561190378225246565148157833002447238721786530374896032217875692980121321196777050609676023786077426986946993482191139368875048392630211011205909506855380396060371844952498820360845714720960117413937121744963190271626156533909749534931673000912614406509074866494427410119468984362760626047078076800498468447378123575842918885535838498124206441828954646712476430561870225922431245792231747056366820039340649207710240973228778140572430947499694280329951801782622372604485354065832474827663790854781660011435601629066103000662585999219429012933197227110228315045631709566262557072034895935419137733025362680772327720555458678241113977417688477089225289055959481246627262161669614772370697286524743727495175218808008291508887607504187234617576409944326520569198595786056714979186446949915893485430299574313873902119365731608758204677148750085751861315999780646174498962006805905153955449520902360565910204414760808443314093637963692536960361964842182139623971599988658500796933907717309836636490761643271033285655584419136432958571089815027824468124647482257703589536897130572347044752523596934504538307023061964696724192910775171303587402361679590639862275621265085422478689574621342913733029537852533552178308678293028347693987406166517092995859308716196267532437770013624145747756992974549898235009494369524191982627396943881304274013721717683793816056394611983827204426911610368302792278353235444715095704879991732884086058377692552509011322058879399242754823093480429084528291048454624888017063593671229191363605336478593432874425790938914841817749325875574595805374104189938542578682675405977766034228489728437009373250884254427119166851205837828836097363401282055755342762995087039826618383401692359055223051009160241373546353862719627164670350025031412403584599274611273702413656973421733082428640704777516242909976536743846762255972529060446857845564297701858001938822128265602684798408045388025126422691364725638856510780225415392211411990616901887954001036155678599963810530113505446214586710437257583045292497546885977611839235190059935049638558827338445684039553359707945021856057410309636907182262031886706945593352013707197436039217369043343726393943852113461632550817349130976519006624128258355934065792540619731478636516757681348244973343320000889492482498365844169667105214027420288570846941477195168414492753091828141620826555956168181840070875902566753089853375451172392321471672261135192733004444368247118757819375718219895742130576086427747820756874237772551569905604218751162373592868614213336806450756885491487310629771087382927940537209272759068667023749659275562589199584137325359131467451296831354479383999922669592353903006889187461009155310329845126782276084942990380353098181637856374304496024383772095133298648582561832658369396567890142580194197688434137869292676435335035683326572344879839174057905150604759357291279451411433616442549136155950693358809348568767419315813799029933892083057961774321185511735042376389872049329875415425535190919691036991978525343538122310639484090443986673384314766307979110313025107182208309961196355591889196760744717830416096173691665794590088177357455356722274577134873020336043912238425318448788803448317503310977631213336355762492028763512253186209105782341219295715380606842442955380753923295247203610213758303028491332701066728414564448743606774483412865354620393625531390783188952172258833969081812111023117340637035985528451176578160796959243349859318542495690895988784214898789990769465814747599673806839115088307341832715971306527298977391605412562467020538024522349595937679224289613715231399089602827372456399359264379752443442696978880040082856209217057527468490989533925628791435653699403981250255495322127685681022426682994055370764257199017352176997407584621069511405025503422862606383989714358682833457688581270303695771011367924971849803916170267625064310711955101682114192452608294145226808828694986265545363480166142152278423693305831348024432835044734397345310449948702729072031163940478168404356440414251309958762272240663124894412253115326799187248381375142241792228472525043210332758935914472204698401769427802153734372998161629890531360902565253797117107846761639238083255385178456255981714871058522900108480980632201009946627579275314307487452345719122862384922237566106111254675453146808265215555114440050096293541920183022251319855400905273441274368685534310105025398576376549174256156039212698799245974616138291943617052338399850868439708199560622865086992715288495206149739123935472833933988949483718386823217852470326667795458778408806284846676118059346423078340937117729664136474259832057939231887329411771277852775487755462694370379333556889327589716128526306624919624992218844203029491263719212972499523234426571003508484112217781467806423982357104036213130040722099890480382721186535130675967088699631810021411368694706290004511115308214380777871836750291068700647365471008040028082874936815235037293491714819609966982451550965338324103190352201197519275247977461398021294048280642395063150574556238217145884283537203086120254018945347734454176528024553336147930080156910822845953919244521235399921271653111624560784009105866908215772671623819488216477464852785767133277282012070261320761670364620036068069056477612917392462222299829275805247361261886990522603033526632864212414989172078210402618048363167224243532474990779176208312359181831235182590954116291715531196880674406727540569936117304857743249386337343209337964927099962436452980164022509621041478175878768485801562974446234004154592990742055487458889011800756078201005384984277309437238732715213675508123351679768358677922479017108604700936605158963562549642247177313900808763216835149012980688850318521500753111109022990753592291028977653701962678581428063411687363750169678074279115870321347059839864111518562978498290694589585471007013009013970244091340691135604855964876642482188024394211466549488408305539347022616897896603024811239878634906288341877161918995665363057014548502751251195746751471005488505806888129668326140167485727422023578183335051558490608925318422818795295596709333176687720997987134170579332609951625862950652508322317366292655475253861704758318481864187132218245223626266919425762082336067180713662177622994732368170754282844335422646890374236276834598346271422088832611027079046205843941952056584419527417158933005174922933010803781201761303009110232508486982935349121505286893735515147186819531637783791160034523038312045091686990226880980993496911096535552625863570836200051544429987415382429177130460441761312209922458838886958054562077745981742311512393948864557419273497238350751344894372806265400022755083574034776755403725487740693742955277871453232693333682174972401227646999191336025716724217036497645030894193650158825471323144359896735635161991073351615553953173674912862547281906132465129407691260717479643607086402973691226463956353685354585889393486075604336957957995021888631874204965171104960700570080837671976548173820857372901062843153174745197191217178568561791579989209150263396032099877141074231722006654302775594013977301338046345281680471223270469047468315257881847085446890786473418493094057299736755435465880725487144796670742924412966861153280759451082276806404780568049137177635777497057153558890017625988087872677969229012802376713434297986787801170920530181385700918838692243048555406893897446571826611106064106518386727750962707211241724579213960278012171197445733794543716788265123699139651058995303824965278894703468581233106620640114010070685954190328503765102654127193472000550917396742215701850434830544455525155219526203699123763762556249271024949213927315114458225981818722209856519092012473271371209148635494429888321502100938857366547884760543613637223960388301655651285205332609751053546834866952883017216637140285060328472347099118915479698623031770273351939677908357072910952790968127640776949695280997965468459991857128525352772982874328591721577438890433235528328499649872322675012063985237028417665894490828138066967733585876425370444537153988209947410253811770857313602487911971066679580931857645226578531210659800375188362385850414998411383991130832297415991416608586572871088510464463398552084252688583523297043882919789812025441859697276850075665659108201159186297480215420252393885180575725554753871836791664681936784936234681101079093733004175199032928952703304962743624857735756604560409553120782277638181195174567053965898407877209481633356074482347486062280070214054515001715751397254657756747859220746336151927990773124672245233463915162522935408660978789261401892948861123669900695902353025233277181948213387728033605526754248675173810827793840745422558125559815732249260920708911358744185180197816450062472598167277486927883495064177089664818927096051972205033160739952781960214913616354738285191733737937387247387693300884873796129172379980105905442595996528021244804460768526032083916758732406654671622815926904260475543107539740304923548130216459275962460317969997518135349003429592247934957778343087558407771472423200048375479687281455788434237664962782437549457629641531669083513808513436671841518826006987211367705596244766474785975281807697423710011127205611506782034700483402938737205020086878132302617825296630343514174586666147308850891524774359251474171013678378361155858557252525929046276689712556861742689923672792117047609103616235711805842469251356326012066881043195599966919416509960637318069780280356686816216761959675228630031146303213248137784553927978232990304775762125073774425353999008372149800874628669542021228747963727901059267407357413578027982991380234480239242454783366131271054904574704588403885565380590732761553282363316504828113333393499693525911489962125892915234490839916174385068349914204057573783633352626090850350002906084044790125789628824554854297227051303054476140685661307629390104596790795917455606912675998635783913860712203039247738962305801338706015795437935832921326583772046155697328552247120388872269013272202526346775584444712246446726645547034903791537653240134048938675268296580041739183257465257399657264043457221858488293648664414400762146643753578126709689605820440872119940645165517380853572442351445339311276241493226137175460956499639519446479971745654409043120825750702286466540828158115937379137435296680212689034112520462434403508840243440309815626719850431608409992769625581914552108886690849670507630564745321782663550497895630257256270518588640627470697575990709556479907284372381252278329792588819564527729763285817012453198030170533107314411380634581593389595275824705260720150687114397749532368435086355002006131644700836193839000711826901908006639312120507703339826682189205661358258741894492995637873377311241250432365356937322894935476960766970539519336614650217589812943267135946817776376703845053891173256563522814903929854364149486649212459851995243534509119391809949424135204696104193080340501679684464571259834925923965517289411864440255963440903901723019940821223144494065093532612459526295009386996453174058772945919331362630314707352741764460378580348736371113170974383121043991019023653889997764889715760559097949174131403620401936695110536751201757871246797139205089482998875805345333520431835981227461839650610566424808429577891643062979781200048003083442311924039642328336137829169022424908884223177400119062399981626520441732002236911915613403113160908540274314280618469801475501055438025578069749058046873537610704693256715237903297510600247670062022668630729457307504099511682756268637857468508072769141638235247999567606647136149155034425277564137509932440915321049729749614073975905981311507544667602305983251449701554842688264710937745186398659845538882261440090471165113722275660366897480645573196811462610246116419105751012797992682147589013927163542556214425917097366119816288500109330489766819279484028272992422002988689439085949684499421110850987476514582479283398167419613802924292024039923244730478136317088573052398310335231365036261107013850963477139068383176881130167678777866086186529872562863867709883478814699874498238880388150326537408159412327378614844764752261622722490256037026574202705998889943570165477994327411822254296862959792349814140971032986538394562792615852011745169590545147319694883883206243427097626224892595627514824226767350607923813141259006054224532741729778304550985499947016603650952274747709343446325907111249181405744784362532523722757807171285774867422672644740590921418715275253056454681657994787507965329997843529261030974593462016040686680045021451213135911331568179162725962062007972029112915661296048531421760190861647024651122971790170710408505461562570694553303974424855597892609987434454416997716336137184545741840847430943251132153605376115837559899533306957263464258554209517441942556175750180886641997635994626279111155573525784980816575148147388658354778832843157295778661429903181825159400268997997816636427806925121002894728575451652997567638568318763306224132823842741654830910269898252894026777348997339748611945013869009081078020060301231110022716399387484327799621716637293238878073824017905309793577758019075390317429624577804111461660471092309404512527698558507566170106201566284999813383844116987746667589599656578883402480616990739415401359050885435797118640571551524746583482459810793881633843213935631090075525860143566769879057025976391445550616908717158125481041798464949007142588505188526415364164459736062411045720926749932020451670048650413127237551986884242642239920559948328367609455226082443824880810140856729479174943995730785029150878242439678527005729027155226025142750517703099044976240642248633778671584772580431402685507052287503562681674238050409337290715707145924868274960481904751478775394408467365195786122942156071158543255586612341292330629702330537550577661611610085302438501439182171746310847135650338966790459705573955216082334122450572284908080459579631326261069738317653072768603695626550106081402443677484011186143857156418738210711410014943102055835966546634517692177282302464932328128493344014379968044464486865967945388138719253106128195108234115037799105174307996904722389712273687426218945102125592732425697847367967295432376972331239864421337059998837370196853122338544701617561898003150437746678503848918922486451985640737715161450165911282496209649130832631943392593328209785467393567442701487821871936343478831200282740267963276539449625924140735101532778735527667361742758036837110513220889025954449560909349717987450575815445572964398285818788051249763631957076012728886728168820177254626926134806734912753735698067474753633786303501092200385683354211661080682943394463176276061204729951110229090525345289517104889507647063641564020323621848572927177612254494197362652628438931431021606491296433787017047687487672626413460465846601399243424240957988755988660920407675705124630041550651639696284677588297805488246797941705290396302766849546453976391400275579728554530057373668118218072378968449102760298043302053660008933781984907809565372130524547779707753140756472263557192909999157391634826077206173386238101927102669381244553016680639548897889880693664341847238531644855848951237438324843440579843277378865042982756259657640673654156324275034766592857543993462516901686817540115880621469562117929268733340185129573150753905194234866384959992704419298505776541811945568231847627176064982133752083208829471092453931660599510023783557885292954654252218635162552604631853679745887779815358839934745718418999651907801455595664114666003910927387452473164180698583561385117724466022734343337436131040325987483814491431529188805442626614836258490950118250969701923058456096464343224656118442742029193018093214806398701178514013207702246190399006055194286536634378047727147030164405336243684093838605940309083325432076603852090307896816781125816614075262191108366337839115674593354998596747298011105213288458771968338306769082695302493974205318153580628039108957506521863955645207043832724951507898620534403689504791535987546857950670602593746869539280195017272888757056491689356618902356432334381780913919826421806165322228678686939128115344335910862663571881963985437380311272693432872474197667784204079220884572488779370560227235250314563846254866829373827761846534162555430115306734928782738487457600112819045213057799525061312684595911810293479087319715049709651556568838056289368328871774488314098776690490903366156562765674653260581207847547498429281177439826214872744954048458273161117644408687816909560833047966073266108151421615259720765333752255621920478458174779283691528638820284151397493712564417582317186951582396636046893279171823391189538859217836062541541744149307283886662047757724365188941290576287401496617473910627879127748846446344435494485382253335411426902033019799467198171168103433038241638941430661593880393133044653729709297991746705459378309203027483246590395089945968721062489271102870962744163041712025917868582721210805475538517060245946320465006995420153523072146385083794558187876945043383045517073349289993564888342519182406457584962240074925483134568410982940634282121767841569979970507842700923997001262101904926361113921357800304774957573920460720159574521743951448285444048659148542553082511936030157185382626409645222654753191994424135602803660806639467510356291998717693218741945542459240378166930356440190970522022902688135525841157072074698747151083438666166852432792238437843186279522081685174849201196895499180218147107618476039328311954312882854788601354326157599688844717306673974554302266416875777690035379880990790278748519964482710541541854406120969146742102641173173657143775144738926948929042529756346055114251626266179014241698601375943580209081242024628689546541768872930849543991959689302357634921076292449910043984611689540482001364015715712251896811870757162673539789900079771130743500593362639881266600264441213896466894627214342729819143000068156007599864037693273001307771366411646964210927165042496856259132368226680736922565514727826190545193036901598363522186151137791930195819562557436385718821628843580568235782489682173370558892621002871691138083261985781246773262106852357002684167509521450953203296364689723724033969348696269105797852780084176628599204678997904617777250545532321866337978771137553554114721486865707937322140428770723725409551750136275002331535737446562808926590146358067560641878949476618975968446050084795153307041332248708087359365667132444466335182369352432207724889709769622858144902618252292069406783278179943566091323744256789056438940372218304892190138738202021700694003109285162230709975206950866631543991685357662240903193722427061951191521253333704745841512493822013468838809195981883295433965146801697818339920305781416115442076270839802544825427085879500386333362020624722753863431041705484488695916054773274704258872234123134999056559592912659870752581673667576287803805633053831247034064677914291784193248377466916193866230860005790823735525552101117658463485387163438459155720115679362489685879865254387279354355965903395823101419989497935397258454663723842040779806559664266086779154801526288498201403752253589961157197603554865988627194442209812388635193578792102487146786311027046483885617059368240553442005219171841247088535567200388747910996022623058960863750893690654931327898702800872499843071251294045013413103998207917485655551088364662628134305651530145395561651017983612019752070377816231504614121616135088276581676363107598966386080669954436871111861814609231412066291791664036114403702421418866292889330968667935338216428375081131537147435344623671461570938326495460739343470845949041374203481187632703290169427320856270679545019478261165479780435784840502871101829818912322647477999169948851959982227950773245558491072747040485244454462073628151534171606511348498578036874473985494740533173196064084437267569730547795772311102527318963505897709035007362113582054511113979016292863280356413090214760416199021865909211934795961005349900406265386481901124735346213912299508547404318618837863113931896137709463953117089269334574640630825038885166920798663436689070373662396701330751336461826283055925278015904814055286670731286661449808084437496674844619946759041194046822735849937546398574015944822056568549712432695809605349633449334397264009999736712688982402919192033363479236779034976995517662255465319014348372145977489682317715450926556780109300354866163430202879289492260617979488536110633425013077330108983974047986123885930636793046579333152189756727079588634383100626019787441987940618614574423432055285671849819805049302372139081589435287403653294459614861602962829674499776474267203432109597068474648413132764563539686189906538339706167037496534077717301977101916008206876609461645611577765522849338341428878814482595961060678964970250372442439837446843531318741055891993288146379047870984797681592199898064173634398489844817428407134491303884333880580671902565149186186791462385877268336757646342315592441408050271722025891058995831523736034406743625943436768821685773817337880556771851415362771749291410027628003260396624659201630251156065390076540840140001185297494859486720746133833708392437254084001251735428505050022178230017530824947347733624465926485202745686754029327380744413963057343533441548349831711183670361792055512406947730106737317501883644715967723525206214797347382309446540171113662617183190055967424809940439975674463579500515895371309035168850514310256421100234831639294360865269358783619154468059777192933739833143480216750229291247147355649132038714726767585361872704475436389200205074549484849582500886013806253396975342135838845392704534722705160087392757761622691061494292230746424111348600987981864015934810198861086168512563978792779285494492562681013142451676933942398018295170250056121483750402660561915979452286639946646617326480340737013635596827103995446754914225483634537439799089603560757271706256373760365327922908442526341604966053884298063730651266438633676246244624234414780847857209911464011786363677099054679395813085417061388349889088929563610702645458782011365927152055483564465221822592076525497575100259624679022860649353039976815698004886871857686166876544163696663146619332531666569714084667442426605461990343245746729411686091887372376662363015617233172960689664941742752654004472142433592552514713389763452955452690240213926240054628278750647406638058099902298502923049117690610245421643825375260540066891267447611334531661978946536468135413295937871346158447079690510448036273933869695654608532777139608979088622371808787021485583780842153363046509429636610501363549357527543573139815524402308938466101676666624447139940392621609390028507464182578997925487236242033718993054894763204046033333271716383532137817843984322806924045518921659410356342047109963737570004657760759413315601582911120566223399001026069253099446366224363378987538536275710882723388309163881346969651925333145736406655808920520056503107876635413201153966523297083745454494580742802981075465963893679763530336316954103986513162118745918473104412802774509528962986504000494938387206902300601133051207375622296726176900628530357702953387255993979602340037254097680631641763165420788729044480533669308527684722527546465276827227048906212255832737779385813437928327836573208198371211884138614358397638023393097053303404525362634290535370705651976769991527795443519558730891130878157954960722743659009358491543362423533342129234902955266356725467432408972058575697798667724884172347898087910569338305299490583208266606655435628867646673694023290667419135278555487654373019221325439960551828190378644295972178752821183792449681008492269086860617807711083664819986492867181115710172460168489875964349071944804066486038434586467738314059503311214972851583965127210854921046992224723136012523139126024755957444930220385054690340768473964084677846169861929743458807704071415967864357938431109495032535924703555408420818107836753726287482310311092250701420463194619768214483093921079588168465002435294661273843962963441768147165931591840461545468790929926968933248527094696116350796528593698256319188817141057338827277597809812639934941054154388548907952830324032415426045893892446025023695951353250709756726945950010851803728368007934677070291103524439117399610875798407191825636542298604891568522332388275671222203352283634070674420953278951952829365140778641961163210529190691317508040907759445319798537198891820929825673720623894567058145902792309702462119723835501339787933528065353148043479960344216423210022427919774991990873166658479883416699169102513635182138833766299593792380556675802950534464937339108081628782923154184013316827406914535360902864756926719328832854033675259505392637231851667803626093070898322092650927319368349360444135978935623621859280098353072581306931729745549290888145246863195656431661798968482254514464394663442206887827764288282137308712470947926065023127793449990159185344123221832776881022440397658336344800687402458638450923134315962598388257689127722014285729434069856581371771347103509199364986677499324144138217146468307997490597725234855372510510067536703808263803375093748015741790843667086468974998689914943137091873414396241108287873689472571800190414100238152189257439132528737777085695203766440841018781316154409713193131344980999802278354348545633392733699185227050072609721189035194881118458678208641486812820886925521884449088320241387326909738466083644002424993477321324371969558855948618866313912489580188302764422817240296327889408464225804107569086900512575530507162000290533251634585313344748091962449337252915492348937073487053576845111800683598160288336187705073173732391526131617433984867953750615419164825397646218183200320423254138343870448341650258235160129149147923882364487273154944138709473229014007687240625515994414700100065257463838956018038275112873515274328190663914422674843754166851887346651165776742889613143493290030500147657747171818304016097145457391855227933774796131001538172308968609933542927090341971635105818031994416417276145583893849229114891174504070428978449244477959736264947096485446053603089420989666028810902444878088133807570659929634017561350129437042766619104959162364885796345143210451247486778897136533139915583399240811206957051383257337668952851055299663541237998007833253722043562014314272669095430213961677574284003895621779169486744334614694977709801715885528806097528292126411822454300694515407695626406015291017783845455310859858344477418005771170288494612499859117318685188175640029802512396169658970617822021750341477189790672984450567058782348725109894522368536802342174043233830154829708705334948904866580420303993243325228345083761002300490367956396890268959692403697487115389150420088607739191066041240002498831073611670723786367088681131384547421842218127903970718796590786502732179403417813282089770386606388696734300916328062304295280839967885666146221648649298348392259764634110616740629780302570511923601001715652040996917570854830129146437951093708663254473286948138069955073472710440642256909322680303068669632747724884186600490941380136264104928581687257332109689422209391483828773085080190671260308765764199996258729446925530989053919359628880841050885614550303511324664149454174646825287402313104336817775202161296848494410187747956492262496579432078368113190262802017937586621885983811753234239459384360267775900517424465708696090455119684665743046860911539332271248366520612717078868551635578742198047149344302942816424357228980122420766731663430763127149447050803015534801465367741959461305500665455082807581717140297635484555278032448952244115020056275249297471708334260720195205949613546912534726286070876452363447917970126813797251338930294261544538396296583745468976887222567596392934232883914025037372962181724277524023430229946551135760165233707656229488073583217532653946116495351452445105107798700461830171775923227400649153054782078877485748035835062928733738691125813087605667163676839140855255621578750425659606233432912504120482721252535589827102974299032164169447165596638167093925470787670867228654445289947738852513711811547031632000801542616434921751597437155555910382059443920756002431227639397945486998581440403218548110126192267241294836529629616959699242171944501793999744481320196620928306338184991070910611830514375628624278929614795811589130332735276146093209479368688486097490132537946019866996708766843397067036272025373159553089529493975426629684453790680567247488225772105060947619950765971244613092081901262974799093758087712597791771543331867136058630869555831949693404308789687132116328924528067257371827862677987512182748530102824609634975592584698020940495360453656646530355393334269234503878460288037621328440330961336237231497726580444281632138163678151884012462350372628885788329606305544962800026109413897534865211676407629529908207741421250520791629516033535939174481657186910816762060820371280515353241287745529150377508077499205177473053551925100123388866768093754908630546907150703238352225483119965087119935188268334800396604397677133914029814300434605008296141263231441290003423334517433873131027430288398015216440282795130736379753666295026677559115312742667541213574628428264714251342134489285605327766250337840569893760093155431860927543086327459121320772669364788648590807712793766539748034629638633032125124565531942964028098014755582725213453772728950457149626110069747835730318184886419238864326800988817167466563218235410150624376602578225720917076459887023234334816045058595247663248212843873892026487752620293719638053482081128620119975491844312396270737075226908020796893198112228360947714190911959603796705027944323832993005327162893233647821552765798202243071936627286535575353089012445568298413815095464402408269219241410089141115949517733496766658264251904957886867595689732119290120662686894974986855186275141333756388074803692084549331377435796119029550914154087434439826682152179476229456024588126277233015695935304788663607074197211866784612914098157008131440473063938077792209488757993388106845589791596209330421701242116078834577270992023895379392557617592195920518184936966173556384974589459675634441440306011493697972582231313968814106576040269955063116629024965701078123415595849527143558054644827097562595355085687700576679358125234822581436416494934482545413826186127950599548244744238967584631905613038301433798628008994470411779636299544984117161041757878762964586401444491162548103181401916549716481399606563286182031145280792765210715816702766058136661262078803863180235666783691331908706007452266476081746044099173375483733522566060793825855081016239434095430890322160028861100849744284522443890183441577604143759684205851703046419949403948908323565610630117535482854149279251555762994186056575503985300792828347570056684764235575652804707986095004954178548166489960388869815476169060577069954987709717378537941779105509663463443212684006315629148205809728754883243632279005300035240898511799439564671187707389716554434661762894174872752843696482974921591850326338936679535118323028947323105414314675774025679555562628139212412234380277590999434888665405890589368060522467875002566304934074689864543274164389247501555749691553945712875360007441235101099855731642201628655009312828605333066600878727574294721544583793370548584532048559675775113245249331091210432301174952007597829697856013658756005444641205340941935108910116490449900475855556782693077720113653219399046948738590937220276578842298594783566843580850110409903417208437373781304605079327794256038469648587519796295552749963756724578940082417863706480121437750422102023729586558795122515653203574603182573843273909871185047851500662882383355415040015625816847815601622281968368446081411070759232820876996695918155082768669742386835418768217555878773185810776670571556564196074632082396727511392845521059138890614966208608527061122044341555595948208033658329025637027433192772660787904109474827223672977998464252673822129584141568661424579265259278781264190377787214486715253707734927345630345318510277537133186101935007583289382109454822255832342606313992910847703072763469316270624498543516187924876496057037469564580426871717577380645676713240757847209659498074911854827939713582560233422793534107360944194218474723338749610006423638860199924680019188224446077142016061694953541866438485029368497270834406381463448126995173888083170302308814777336912326645723286493828321727742242334103389270050983454815095762043208607518872898378642064804236561337282014053822682681455098120737650848680607241519176306568481284153525410380571621295543989161133254608287641455312888818038381595979144288908626139942226730958991400549138955873439659530858588888713437079187971511812290119682131006993417160340356544398521462159385773190875014330654670920425235058168418897238356918872319906190954653660220485049580514244755037855810351526300067495958464894227587569521461256772863660001599507994038092985711237254748722717102568726566287277083295840860685370415571365614873681403766578364194462813702150730015673621192621661362038367971457243744773633574573747768709388876245332877404619179107944647101452982287453432361901877946203138440874801325890261244508188157609960968547661715352719144026323191655568310085722368239149472293402688633564651063225802192510910768694658423907881444050605584210589905013454671965597974870380310977670382025355914002936942568057807438720430199397515537619490947803141119124064826262179461833878410439196516189820814516665804997807424198579080232985307372985058284366641193305305974327130352470400470463289688318946300949433639697010097831595187248454117605498239171206792089389740496775877106409257899394967482138724097331627664470432446547573444942074586426835578566014302182544983909107332236957419765255614260154442912070438133627460238269100753856614451081878011435901838253031369642038907210025107482790013652627113430032299030204483312353696765548990549857014525498297783103315740656675145395618574091446003620786007315601767964991256518815170826936545792332504179735544401678297561175039308346653329828469848016639179690285260396706212403337787150246548501953723904552740908774432353129979190827888721360056664594797008934992494872034016245034178204085364944311478323594546084771795244499817313371022378270372178506056326832609983457328385376727339082669410604006946736685348541960346648530724912802656042292527526791524814896820977317843179978748716763140695885419497464444672279300098727775786632746984983550336602769109607282494124898636284622711606633109310836706584344689997062093298957777150892862012821118244216854317617063545129183642797373814319364797114763550631101653347976498692615135252907192728864789098527695049138461725116437068634670372719994524845672386024179757954482267592008500760371980735827613638621879461953971122694392421690808113075354519509585937102534016216463135287822043578888153836495963262049547907392317511191502601013842124729173760515264106169309963127465431460328589838298841707426381889673149924056439313725460867743171162389661688932451883477966084664475073218987126382618843324274941846431310528854630057488962921720761644197544518750613941085696904839886894568163293518642657888914406199074974938642601849641302965480994328260246294168374184530102364301830808295763468391604790070907921752665722805117266128962207204804813150544080156655760710204184858731867245189479158249367226791701638228772217828582365463605968490105764591672454937578544391034306743327541050267369850732479304207675424502351301360193687480363966580572829461120259333030875550316407633836210635150326340638775299571180439017672327203274500763833562914678185566906837619224642504864049569156989755266588307488706368657906541906723807431106062416372872155336832164232163600509868234104809053808583806294660625339622497690424644190839978767375544330217430274986022014913477157833722613897921418292002834187407584622896379568804902979234988218199962066700956397150570810248568394917588998021454809386321295882226935235010978306451059003531253561912043837864457377871150721957983972646870189548411883752989376572009694083098536441974414611090168377272561318241503907526546377537409889189608539416104348782169675179494715547129205657310668161570071056427590612014398066743393608952851866376634344893640496817819153306649774031119462181797833797428032471034821544540056820524354386263866427381179993431937391660738165045251464879982583316690794285992879283884785831736577501145583407179835298290696514414236966456927846747766605392968319024885684413574332364430554935169582681490043928345811656346228428067656865820153708708997842594648732676906420059138805280775858056996837941006703185048228501731888836009434656565058469848017743908927101783607487017797773765496270248368837515858322980247439432008753547210107853234055414805117644480312979615471931122931718686832740750064297978893266403585260069037379400276598525494319399802282385817298886612758837418836968767034373939543969606486844648887799548605130522042440319521617842205455549455041534425707036946124983347084760280571823220865979127000640744942774682518909207111528403870568753095625618999734139290504541034987898252425320057023297502513973863801100804948068976917163411431205703211791298971835645466257509218531260290800605527631807703803781920467692803626656854915162809244813478615705909449381345344054345726950091972467490319686039432579504869818362915075476810409269048167910340830023001944308786056008459352976400079544229178239636713019515984780861887918877407337338519954837631289107279701781750244211632685462297958797981648839566967966174977536863799466846071998971681212006361390078252702323734261718664683553448065713157854913970256582061846351058577736771699684824432700723280331056208030853508944167349943715038362124953406113149327675583288969413991898976633816092824265901580659038365218222940558702599214834905675346429917897368358007321570795841099063330372294616605145871331490298382404780024003832178669535914862864151467781149273679187042110611807640966038320908065019341692035418570577585709499560122805164384396223971101030976372128252063089695898571931438936807984562793380247559453222185449381889802555239848134152937000982705530635366896389640101213365250070456605027005958709459717502485720221165731469576400052432409402944923443317055278290509124128950123525042958471035237126198902610477673690751973272384072749038082035623422033670725514353435050972380313962965966750256535531676194314863376057932607143519972031368242161346670609612941152083553234027536600668960552084277337959934541973160568756696549857924174743437872257097292668057449140410154366620378758753431954354136307463186413661625829511024690794630268935124920307316655118475622676620182276135831774565951714640528421969640718132499486383471117915379020537195177403531509122543054573823566239392412326226499502828394577825325620886084666953234563189719751686493025705911323758853076624052940245334983882065265711211430060938178253684438906570777125052695734876069548538878318252338733170879631957068429685053731360920926541899074370683675997178123849928207546381331600918373624102450989876394405390147352959494536418762407773333111224588485872818815558390091067254929634563067906311059425070286758909634439329211894889183966643691743861538269348237741113832040977248735102804969555569521596393443880443227635610130159336448917110519748045986747929935160585713691417807190315164630419078335586204430727764051408186169087666230846569816021504560489257826465204634727808096114254529916931188058784414725968392497776995141086431033247577020667694146542257140116456263403543001887551938591789419363227017830198657994241062316210696723944952807673133446382258358139385150702698520998102673735946071443250185393733899119643379501771990784057548238955223018075028988603886984816995480133274731163072728778072437876920464123198653209314877464644528371884563931641697864516094362830670427911855386807328743984727556493430121462871327068161265041339616691766546268871476842179255760588079898560130390674461399302046940622657982042517115811785382700242336717982233785456798573796162389940015648581196953947515585028857992523350634670634832528174525620606707280471522794155494498120095751713593421376011837414357451847447229943694481818499518209696996347754874496702464595158831864380817046252869860339502154234639881983307078423805151015799936031035764385519575911173159712694265992333202715431904132000289665857513639071062580570448405478638706898381537502686832713041394921606214362188807288539190063654495108813605776537371125712096700966581476941076325474109837931523519423902387041679773413501693441498329850172656253602504302296679938062809416856771620421858113936385221619063959676136992711169420372732489256130872252037982739585135740159278449664044294152955694264698828120417787772977232377911576516399198594091936330801999026428758453235226381826206440870455045204747612561668388148073738129332082930680071087158263408147543822510953688782576838327700921808447338609746481230265862653694858797147352366350517815636842356625424619339923216280270368963834301068348006922626969152011595524687680493969970530111211515965815554532552923843447333055846635474301623044428779956379430134139307652464998944632505560351794494311578242467726174050652937732468776945873614652231064010140762141328739776058377076465938850949736632928952538218474358201529646272205319164858622284662622635104198861269084963824976302171430882960514685741471738768259664689918845006106588271421704323364099930873009928060829354335456113542812161426327081037786283190926942264606117804486717441889005991831600621977752415000656808498540380325297568443320780141705957451451667295738502941629466969156886600133421777795308029081949404877811101566223472307917129373325991881149723504919739697601410960984952001148976105202607025867526529675732405123633015561678328555307198001043959435314056485575307215844228580081173857211646804831722324248469184615981973230465184668075578138601900135149385462417434521296411597879557892717872071962522560835536556978481329969046968165495227772131439311785753402582987490669871373742089707463954078996949620585189130080386869506087997945553690167101856994985145827333738076215117675267497427187804084814780911767249372056524387832900258977801555900376863616095204837202520344738321829580721807689286758297213632187749064997373499639002305944276953043760179171669301446068289260954701193134061610508601631122288758684891586500691895546319070718340814984390364661023233257521007076943175481174438421316171609419940583021321168733288476192312920951342229289922484708514103884884925253559769877165319083355871233087403182532765583998533139857787473428460705509583883327954776243871699272271525094329224518578663014585992685895256386978048948621040327174509486924594800476734804324521398585935647844038119620066814355580173764809977552055918357720307384312137418007292440831941717315318788887476245721817741662301121240175079941032693447271416692329407282614463556676004988679653101577224976607315324728870255814788546460837342811994606693950658655518842930495321858445424788827457559622635909890424501692359775552612035346827534578057411749749120960218240970850290701172458365587829788200629143794201433611165727908891960302812910257656007495074375509636385983022296596257823621568322843843610863904011289973012978885285542543568252489490442535340520797747665656385137948089052601505803330899350367823765261746465295124094936056226980009108230909167275458143369014932480292307388232179755637779332330703658507171965947838397332311834458398743200184322998613379301694077952445424243424762079207260316607513369984934164980173744742519672079907725261749086140860687270453230438023878977839724479140374986926451699600245392265133338261432745314424837669783880693245748778347158019350184926608599324624408908788466841061429706735534740190031120795978695631824817963587752752456238202728254441368242572140366190684876291605001437626095360009885097077376832342515605864592731285616634332140529053797550297117333340222893416347877703460022765449015541339593641115216472883572429220820901227070538875992470841570593411801560604320387095325520517476021017795947906524668117373577265314696034886161683152391714737219869839946919783064770220422919827204634945985130490035989673382135712428663590958608140843069617988771456204512850665455512729265358275133577716229645484814353516080126712683084589137137800496701171731227393402309162524467349132323864513101931658349153073202713180019410496894549351647403025744843069613037432803659168160110170752634746519649491804516550068566020700490261973086660184674462275420295050855802348452530188945151058304724805069566187699981118053084379858989059493481090924512250088593586789664548660050023577755902363759112766247357543480397363794907797805103631241702010601620805152100700711914798128718086918730249062879837754297403696627165369461651681012829778350996830102999910053155134269154173613884735455335365581407670902624873318539101195379517194890693040966515220072985655698051728429781045017894405531384442928925200977282864286243162376896496318386169553480949840517530062546318566001601249707083857386981386779010285791012874865363316948456332920388141834323683924180235989705595189522530320236701364041677029502307105459811503486350282520167485507081910418469568391300107794192096773026531474706701507635747874557457851620770346055004410571893098291036143204007191126804908273181127126283472336686916255426620612772500767953941131185436346168983866625274339527489196353856438229068152026896721806773602774167502853419905409279689301081741846097936496652533175250379559740570248817509880178699406420175679662587150109833350032112561984299562498189548932262142433824840960320141453410754788767553075591825751530740759915463693303715860098739714409326531726277872426219565763534621565580552842460242122278177512509613683188702119050212516838953172599128902856515394134128429247339512754166262994860032127016518017521468227115719750231306701531818886481843522242516486816935233180791245609761986366825879218800066470297189861761279983148105822251822666566368526257762220895199842357879786292154771842987373214333079260621104097520384336543144731875023413414731255346730860642876921609136227224039387092537304848031001723866416538127438284837676010619802078224138900208935315441877160445811524609084793185875198946090777980321379665333747236144006455376193145585167587919933708706197143265428245467770855110482602702295345058225909990757025675985142346115254076311096541537616435288684920246331777108228441557955258684790505518690156220316011651944520609092811838551449835245233829280936353523105888049799471766436377821053327854550647322531592521986069548205779141676976718663185129518095457138082091368495530814860526524502895994361977258829709239047020875842939695591889379104313439111203218550159172391227730450935519839334786572125142528736690360613970663774016358837801652320131219620301161245216834481968581312171019030958084253117987810993363079122886628178259768210868437456341674665914876019309420987714440707350021696036650909261333142220568197511927192689621641817279780708113166337717783736150339917769058542684204755719111066502442628328854096896550144262950354011980238402368551707887136574058907616063481492915334252449381137137427257400233740502176323138134653437522773564553630039565657241204668989958134386550445571698133556889356607150404519698238345696790878215902194012771225034115502082834312945513586361245983346506719167253662041913258077705826185271468321654860436077895488719275146327039594809808932278189310451622108732813614753672990066545803809298735966506163332534807199476453993624931963162389652083844880463810331225471980848001893959576461880967120323132059121949994733595259669994787345687006131470158659327902172740871633013444621062506113780558618769745539683777070548256960004601753031491280520031423051630906628649774378350842699430677508173964859917630709591793201868193235663905602794756907287860588522335951166628165193588886250108537193127011421688830495422898021609992246912958744116673121174922805494492213701270799587672066015792524871252884624516381715018008146567118656653377025059500026371463336143252961794459564186560563736210900435970673082352885547852318461883388883239239377078364334624932455308210960645675619360740151787529567891955318834050650632028445632526264132806698294858431955187811990248878588234474183984227918937231180327334578002987502883820184254741155516617692268354701815653168942452730189997154625706480949811757011801322964080914115192139915390781283442227311749659089969805706568224653369412390075831192134533308524465426418949587153700821456545935410420575072965510687371183334368922615007714704395611080375902482168719405958426448313656435712008146300485620441489235219608445999261472019443710664229893768703430694534113398083361316721816139521841018031373866846429938734203502569716985447938121570775900718772564190248351160538893012094452280616849259704690480921855775181545361901549491086710071046005755770016166099406937090760723917447795052204485701315138240350227968439413934057950643113481395328615724849213060143818045437277022765520181147159529245550171409608408835804569721169899261920067896056590893415977201662522196071846465819024158446380915240021827738352142821243545326998810991098850914684878816661422790358777418027060502631727615477520395430660574073639255261569090273828266534214427729482792641565541138454133555564050797297751234474420776091308691737600863061340146554227359076760697827008179860129506313115690532118216967660996636616903229264636121534948437719406399234796678197953270959436398582612491069285551150829173905397484049246952484113765348214396745605620647788892308705571826981111180137583660264049315601783071401763933376120610688102500301025082885062306677305859760430730081696509874515831973049197372516718544111612450646994854933995683411303318936995311457126343508249171451109421178325848351744981619109455559798283932993823266387942602272296716427990420144514019570885731938496510737541768102397860987018617246813142930436267665321814864955874687548353062198750528635544651223281876769796778079591901472468501317500802487966556487326329465294731473645317520699479339458554579968101088536055988101026557709910892579522538037587969244874765768698864852828370386035018367168291537236889906432847806885713384644970328024842801767240837162681457945842758627648200923692479471579031806741974600412568740580759940517105365687665241658871150008914884753810297705215535442651054505633264023434566529771207930824729837144506363698227514010050888410239390737760090954472324795423711644619541544892226643249460395444086044739001735784920918540936027993154427106443724743905783055561141448324178035335394407992360156627645124563685310183560523073494454553313983114692071704188778746459108845343198660335728966164101878275990189366281416143403610359151572146564016617803946229654510522383879411956898540514939672357993426180167772372990419152188131595721412049575291612709904548802879225861992101584921910608414006452848206430551356108564096117088260892896649949930719136469679731244085896845756405856982069755966610595071190944866298137670636551351306931250620365273039079449941800090167401604829849125322116128347692811068784498044096872034910668972715828327423969889718111902178443583911246265152668225094566733888333163596504437424330059321013105103446751752652347030325238074447638163791351332189820262123611714387414073538133760266381373862385548423211985107129014005494030945903201793806241995405601150230275248320694383053958517585212998057931018954228441016854065135836822734821648675137370368534533022397401322354700517117955104361477988701794530437513825428387969519629190855154825658077749052144456402432709194842368909712789935574027611201211303288248142606452431145139546109094711187147943763383921595977702833342668568512738653958428794986230364191963916609590167927822096277893927114203922848170037791780714591988515235440869778164171935138636913183269622272891329822318341848390574622271556639837757414936232268865721583615092182297043312649712431303246057340349561547853293618119698726195271580220434866762412104225524010714619430927597424183828153528032492610054446759142287386001888249424042906334925563654362780768769627459799225949472892562106923122832422989803549924172605678826555059306789986994213732363369517789673003698962580278630649150274979387562353051630652348995637558864383764201123459770359249865021111430772435845568327918029586522376726386780608071508146168704187241854558638373809724311887560736561754116136348588598138206113594816278509496156962864494975968163410916014286771944754183085434668617818266504100771727973293476622969672939450854089763504314545301902750316731787169109812253957591944129713779083050823136741033838086122165776641107016144809667875130315703437637601933862267715061642678873233592366043196120721973025806397953350172405564642538140991593282246992760171059569979829394988455637587975224082230135509124971817668730156979468410439807873372469749916656653044252523349011883106200076266560006337375642298169666657553748140400373708690128491271929460784127483260747364033306335862012811413324122103929976212553420589266294197040993816107675988408582315313023550076976145843389949982393333221511877913828264973690038659509926384848997249981293651619351739084747493116153876082080206651089079169918723868521909356863316273455319010997445155079236750596388696210358383007469369952272782831345518065693901721793786159712399388880861381187962463804092405245544128553455720938280828834923910327624174451315022959789335170133326240151667956863321803046933495929906538117670195771042196205172643675396367976600999408934769366780575373379101160823279929835022312346685872210423728899610227964186226565768161006695861564444536385794499831055813005220257194384993501093854467736826408217248353897642447345218762990910474451978673024120458406781793540854803220241551627626209282372266635433188301419123171501288093249322567712728297958476421634332545331771847936063041242922717128500264825795135139990595934704688345067067982891357719029899452491327047774693848755406393895564834776432771106969877861502691399760264630065908373194920347871724712552315362776473438955878013551603226148742985764103960168448719940779101595805373813384220519952962809809649257759930980482765255840310726813124147368895442727894829723066796919548801036190001795629641855681466695896128572616545296925676149481165265920069410449679991608123936543595603171574308299416096022145532158999806530134171890610793387046934211752032884546667173750049987333915021425390387175976369656837903030670981578360624447758918773171860689102111918105522544288776812361045220552219118904318240981532714325629136669844169524326293871150339961120290072348066135640516653354478874489280295473145863949367167759651838667171703903952416415144616727643173578387137553257166268982572586449118411506890193474522138283016717493898640698312954187682971304623726077294958422008282457097778282503412123663194150586903632423192557755788108226783660715972405801297993370425972436138334518498149543897486458620321324986010222230134178130873493715725879084113933257465999938956508307264000030313399146077153204249011523063009422267214065622129780905141104518722960252843444162076443334743754734862493173228153781328485395359082662247565446398305012181165732738358730775983875799083359945701533532363712844000599784795927793194304107249303108950837577872788780372026039101866402583733964309171783127680930411104666640320405205222867429481386077519079992237134864435508261038365947848346495893547505687658745488720893897619205926308486200753250098358303857251374628774201235563293754590214864919539403131515549707152166211771714991193315642371963342427016512873502003200768618967758774507596446615445719785436502720231594314510995595542231173274583948550250249929398340824331572536069490896325392082194373874733089903608705826641509679746335676100978323248526393685457334192598927235993653427739365447308661371309099904174045632891715807305274071990001820264627681395812647152160911720315555203699571629819421581730675124422824015143001898966174026619553971970095664267358009567402260962484658484068163750972905948958670908444639717636653471987834507596134375864756902883348350480247663796378762153402295060705325881563657964622986516651888182361456711392183330129214130705853304570914890620198048089774046699966069439068008868657654817675320198922902868289032241755540242159578951552391702353802119150964757486758985001895490809480837940479477297380770836950506070532754400743804987193128673991558498980382272559682215219537685270800820276121905410587187758839366141286336761137096457792995586322327494388026475975722847775528130199273472051349430532459363405464098371202877363041296468411124509013897864585850479229347371953373690823684295569645249123316463865113472354858796209592384029668583362960140891530548936631694587853224794311590569803518326590537230780994983468992705855577534652708056062682257790225903222684290464651968629452325265884945191050839816588157323080622336912219105383552193286238809163978696578020092249027105451289857817405088768462254669584166885354962466084400486866687020861653713269278287345877970988692011675377956700426286140990697181394579213090569724486902209533577320482260814314710114372495626673970487285487771238148082717197050416020729509764186263784288290755801987693467785095416500300325487566881239749880609501468979125672626227083817035745945915339309103320846497442890865674627208632667277013404811069556418912747792107871787103261469220005382571707340348038938683254548945641308912639701065793569947674149785636265453911429664202690115693677402899934478695659705307250439257668395726689827722161603049223973532402302981085182537795969916192319801341916139097574201099817121913072546331170811153027373652425047780339409900203964541294924204577674842968089702946355605321035854392084228447257549810457020606564220342891413447220628567855360051100286975618005864971471112501806506273330013460134588358805466711162714637987280306430066142937751194967997738680713761435763127974482861054610523659839217674708947014698132510959945300583806018190519511082683801484684190784533910874861040907744606424866090313779330525354756915834396067819756344938738341669539984088913302844133128019213837366154520401401164366259946340145564226943217862173987034014621833305600143826520483201092420668851728344374669773116216335621385592923949254629283267435491964676253907617792219411157904433513307683337206275149082280306900137775261238031665592718427539322899291163097433621197225792326943528824242068202329386627290849627379345905411925765681777138049909166444563012511744540928309963601798932910545506860311729906067999441631067448765258413356843977386818473760810841703429557890921782296304116445406364008909369082778538190917825406066071846472927581804049442809218688752975309411112048392888781059674945662416217461922777371753313043514947926495368851834056957233204306897032126387012577206361066997873921908458783674968568318924367294043118618308891055512713661103069192013781859715506095571013128277708689352139993429877388193814568077119538030489959776412467251612110945770105830163155160087693151340935615934936422466219880309800687093379814049209863270005757686831015070968589521080201654203746153299543050300695682151169517786533446502813899425009010079156607653461351984718211386483897341947710227288328157027783141181428450709525262744956034009465960840310521444274145763653371734672776632640934666383078142887822120352473896122264642935827139164861644447699333723835965773907935798034660464512909096589982754494631769471185236132539957604270680427736741765321569976019426118222950659820181284443254898885119374674955918103083012804163493866251429569007103016269944203305072875197427371485631778722953101456209233814345238069402066658439782457953674435174106954142872258336744448544510721958056157604481547938180924446733783068231739293863375439910557376174787343105641236202579218683417266862384684375444445967145311121053990077875710693363853542150724013269452738652870954745579648681653627941004387902791592258634693902545592321643096472349567598249620300954344421022627523881776979281311662625983335409413576302497895396107305931423119858787849098854547854606873128416992563252187015063540058451417506822058078327294983040304976894172815618911967298158217077206215293011355774869705443746835733960435991480442369201310556020250841628552429295455445364893506192204494323171358044758185924636908240713883271236084320999835186431764032812049690594311868148948494535331530353735678182540058644642723828168472882186664908885770274056272478714475430258862858455000595865021274005153875134498852155808643699780531976422160691273187986170558374518564465550957471209298065512750744617718623407148110633120448870862722074955876422317220391845216915861379072336733072210331905320129842182233049166131737126834448953679920800263017648021906042837864965520699769369387513338793950338005007820034458958220718637339490586048269374985227386315453831283998020232396857025984859458322929370111322898283926981418469512512878471440162132601837905604982372142652682151128974000249705906517738364424169980259573818979040820017273399278696272732866721558507848592978116180203085520701945710676152145112577975709108702765396668554560819583288557288954899434446694150126066347891285733706803550814365177991779114549541561301341316844200312273866669295328313085621745113726586382011728406758491888964067171816863553237455573924440614941075507330122922293542659504179778391819969626366307013365571303149322410733884781037681133967672277971037471882637842603795076826319453546408999376291053053858578420356202396818122101843899932079882539590101605551902443471515261839653134908462687926565799006598940874015392083127910370523484000936772514353976533899159240177578512234192613318022633435533339068675651134248241199796954986493562195149646820421681799306547533599447416553874492262141680819592835156332537113763591598049192060034429179542299106171608390367299264045568285438379453578509473147063933088200999657030362895484821057906559976590309878767238867043224655115598464212861336732026258955248851298334587024942861934043635635210814642575561086765109480921632580319204999974151775107227621509811084084611125216334730984592141835344525782247977677991827474156630614387188316973837176373997329099715243329669592869242662836857581342641187553585255209548092913556192125206794745886071522754713742885715987900845602643400128005767602090370225469671103548121493432274747234962250199521605040669632061597900199111033161636805788949547557263414565913618334493116560576899585091807029390673131248074876644186300493617779640419490720760850819983775735249989371184043054130884272621380606610681500079336124332933062003316267424651850639751437064425760000895905296535211197319628312790766091918686235088343939762917282170542840164222405387505163766512855879870605180810004672514234225094316554178537483461384347252165304953940800295895926232852188766563708249118000031302552125399580700996155065035761357297941209399171398569295471418106931813957939439965758930057109922502253001952202787248974977603296416494483633086573137355420476050228389929331429969886391748139986853073569718310101464949107980308985627720760260469200455353120813601339673051958365897077455235963371381691445705637394058338010016642231550046788412685382182643502246323626575478144948417725552835879932977995226116121049271866492853369104914896963899010144045892885966544580236509678207864335746287933310553149575040211184891846965158085294646248916240621818992723171433260817456833445725791859097328429949356357979109903759718215485102638848796834217984643341636453597388363005958659694076276074003265732005757618845911349581295180407658803926584506539144101435416134216989178955364260088734489908937075740259405942356154773059891487402410726103724287419225020635624258197101997270966445273739138587379002370531642256813817181271050560520468049713817580849095178138999982989631696849404093272364931551543590815868502201062728804656519479986515533591560453976588594568730292845508009164446259887620210753005316302073179667660131080264981846349907205312479976583403725874705183137360676593936668322538241042598824510387082456109560611226032908813065352244739530110653940752497266217858080497219077514506953650284836757590308724888599252605181821833297349710830208920680186686224578575896759498470840526596659789952132245687529984106981610379912774084182242329374401863337335002329039531547511645948138293841585851793438385996313872758976967258113475699387343916798627163420669265767865315822362513444902726160410049140383400462767189946403517120427793406639579368909970113944158211533792482293623183757611333415009437642876551937276272164556339904030493446583262709985694513351516961312133987882336859008928222848143466754652049476905550848134756468641692908309061520681342952173247625786943446804293413945296112726892788412286057052491005663102759075534512385384109369676675929249034351678950902347703847363160746599115020345617292748834133632151957929329141505886786812992769634104655461299275293023824069813814449257916931894937788269224329152012338903000894860747432548507023763812092035495286518142930195150168501641654876726330661288594853831892710297589757182796710231354974672353117279911532684977963803046444047752212678613382908542871697351890808195724354353385011368127415317338087344489586413766900284630066827545061325528727616919923859958484179796172272235970355355357988686645074956272016108448076275453212259151023603743644046261267720041716273239877394228147300535090810483225046668286348216215612598148047689907947715528595180632882596859862975806491520436737265029782060619887222827443057085774175223333432516086904861663871302849613076715548000031942665712048905454014329534642840809580597293730319369521711677924821338839962790054647715214588627622126988213107342803983873982933972271671748234587156834339888100237865679968017315589143349945225951827592085144369899703108144343754323566230150888256773018098897993464657379220584625870562128597600615984405604587120167109055340250429394212957919409071976049973623261686947255920671256873297295522030329331843275739886737325092970321155754511933940537107629448981818681411902749993786540214640500032191703784139043097123163253260153722261675377889685090922820850540597619413942551355888682908302089889080408867701463235484474017237364152300390437246950413472218456710620930108144228142727497828049304965258331025840588773424865355909185151925913627214858157828124393780065938832148397304706135576471610941905313785240681454307357360595073298902968495280975678045071060309976461248371099400606538954642176047801767145252922211715973441768695136031019689786387163804667779333805271986560954562506500988477563981259462843497798262789992674377820996967460559190541074725374730496101639686401769177542992046614103041752220689805020768345709410425038388739871039404039667130478533965040324364141080660334590322502915281525150184745235188965084931480214186915172330838274105057651767420908189369866949500283796116698724250162609557518785092463415552400067866131930196438679395358643435818598148729373482395016461296806021758850290067599668829091757252265568417740100028087473423437404062249058146826041836548710623703359999349338573576587637930937820828715627052084946124779446465201594027766853499307613936154568366493051928106190828563048368551954975882028447524607402734576997393726346599444098871595813773810910696344228804936439920603792661078537506849764087603076052449560254937283622557841506994646982009998108413120245350609542841251982476826071537741897663154361223608712314917634405077500870045034675876178746883679635634430044438589245953893106232361043104435539310840165184236390602550243104618282219948795701785839580857679514336783124169657395874058380215402862497961206180526756234000479841943871661977495214359361893320661245680122558379121166242379108909541111785828039817100508234684191494069360719164509576460904538254517989946584945483328753694560832712874424592774237426286408428427365054343913463304767099005073023950931165084625348503698978890508863199947129846898696252736883902371269128398956863172061268820633527079884468067033159157218775605582552152510955067442700194383287639645088479369352495356777610830748672019845065744841814927875794462577231551908164991384888331413051613573265834561829499602607040496361800104360605182107326038046571518324317962130583447683812834093771118498849128461633681536413873500398216867466897351690053495206809248785454043679583799358975207349481582124193184127034944694616913413426877000179224174663963685917276018767836013052785119224611231792635201755554946583188743301719418571672544997034013216898941062953370205708014762378371642809664269659976312565927887083209238169750979547348705395243265309635489732680060767659518589445259716006136992943414251513434841490142959791047813782174967126073218585099169456366118895169709433799674389299155240473346564842814966131290733075526215553816005841984500552136950337154388071015994348081189143336290916112275699047864240368720304142959104313307269390318823711867224141184981976137267645571411996806013420232530587451252858542970294139198225300259029073968785475545963295260653215329827154143686449719893484916341796536928290914411603567228236688405735681909603523509363393495384841713500401012989866854143935215958783776463142361385178555767053422707717305646625849768814497836616379786513406183476499330025560968164204135946073396445652696233145192148509102378603376911316480013506918810411068342570300226675273122983924444587704862805511837293642365222763848593508812947910970976133767033030574464378564783491356536184823329988565334008331019720882525290286058775693970324648792822966313654821223412321545397327998343793461171104901696120185638656988642778682207826637665163575086452602032136781874583886019922036323846983380902469232507887589759198069767301846557893604971951908738199063709596279292387171615956906275818059213394609770468549406828270978289692293728139229410297624423979207348200431156798846558662155268173836327126652048911722137426826677705475495812968564599640119653078832028787951926842496204293064093614559511950880653876387419080494970595675664481793718934384281746961980710045278470232263134827572381967316664543774155349298237519595208636901987994150509296956177109372754721861086948857406052110182385080350370273716534767174410443029328973624310189719419233230078109711890406875634512947339722522684075755803478204494295350685309090359499255488749130468914213874104728796995300223969814528424082601982897451813281738590992468376270031318422258961388785960258280164089494669326880366057473080080423523319802584646696991501231291745747686890479020079536697991283878588445567344968760171583176082478157841005479922186448929747172775264581486570484031118311790911920447652674269153758243570408623797734032755352978913060678591852225343267038067869109642109582942937913956610037787306876914313518542922576125622134906519037374848291114210149107020803117880919419692950875903673849793858077983618529219048005976015132136611399565257900129294240875022190893263661729131182099600848001527281831723044236167997120607742517795160281864036928694870305974646170313566403230763348910617880899221491460763930037299981229318354795719478237017747326957409164068670881263428652802267171015547865372930415373980854866135483565537115573697337946115124142692009548291295938161183955217227186145619680122419567930889268361194908291420662537706373147981217800906220211122383283571554558989581113538252631179081212296413112576774721586481608507833546729708282755120755567776685402336469919260449278877739366001173285935118797011925891244903941804422759176271868379598410437878125848006573586361748003035096237680913638094385585393518619955997815862861770554607769519739874719232733449531088773297704787974195768510925623298566626528462583709456718146003348996162047209764368764555236039721485331075436919633121497490234898521952973737969264809300387219115156285692034565395020822507085438686090670535552698464322477281159656253678726070248186858530957110987039639524458893577039219730362463710043228957498381204457356437633190301365624944926243545009178465782522962521132362660371860272997280870363515975250236220378186558804270478417450300602046978304467830680390624513604174944846630721014432764508934621604495299357765016762746121119873878000526399483782921533142752244654357338982031016129828719616140438841050175907882368369915985652398696333166948505091063360049731652685196718741806199394909300432802077961859456187397665642303821397184121270473656717684376693339036522418378620326849289055834374123819114776093413433572355798338051259318571878108870913964165326385812906781529154110366284604213748652010528323800348740493765379134000187832810703616926251450153250846977941877297639458776031557297751132102840758318713934652210402754719454267709946754145739830686235020854821067044527141177344525030220528938158180475251214775524869477265604712719641643694003494383313489412584921205900772225476894089066942037896862152825418246615517607358540035114544944531983099186089630592501554691156278988040635703538597143199886643612312129121687564672665752332560380591950497105326476772043072801345147884106935718295537079020630001616647650986160341540263529384994687920289481670178918398758947184081491179153323762749691798139728098680954015343190246510875072237454076779796519472258455975415174908541571859128361899845227742434950182822035731657657947381728712318393908201218772868561425867250702139585242696928839520045465760276172336872796721018551169968635135395645259219816401834722393053897134403174749460389201875663879886343699103773115226421604881721335331601152245451077736051589233498503383283330571617350151303417754627601938639584916080516345412211237303213601029822234585273743322351981903426653562456820074220344969821960845115432653047023683578461825816222279847450701382329344694444593310182278014149169086164449613565787159361479310771339596083710494669084048885072920047120275119544052137159148149626430673570842988893126645342580589874353692541897534243494376056415797250315717395464211271313149171558895213906105154971128801960837117554129173008471317644164691317737935295147053150363784323107346926361003605051313799895691230141524939542561364730083129915381721746094340935991411234701394453051295935284403946389263979752016062720079622983680163174999736106545191116137884723634443853494405987104971045430479294373212480073069168742828464800014071301401265800272484575364752087661538208874598700442492101297224139720267731266319511719324712538071920687630252934822482184970071674975195020683781746307200152029520252993660875270968799364943360835590600760065997297330341698542006675824153149671225968436781655630317025710411332076554027747684494118396403706901506513232073299345436652454527133478551487257337182089699431030157804651932729258675368485668337210672410064728690567804565689167712659697123480550182878860550842901456430206462937287571306724013597170083944457063456537661372354819797276621241296445203086345464511738932423069827380298080821874009567666416052873725241196150031138115032613442295771924812130988723656717391289729280980241312785297298780269429481300415278348580353781898545448545288715966808112143390124014696948202342810729717768041665017210465257002804426910213759758550773952699812087019783540158043278048131471076174784509375357170644383001056733279819555783713607762314071370407028142226932793607212731682443594775638558223152601454900248833629143234738290160155187699839030117590846673287092835729912873997754735190366867886333581050246919999744733500237776426675038378286617981513323335244871081332700129016234356280626288759366371979928371539842960815475712580887888403596663750281557036241190327124694820900996923557671100360958799001235943699162330251404218866483180924894754854450194354966459332003914297592400898057834752021089228216811418860466490060022161609974828394144427641236070373093336157271316345941458725491702360002844270168707827209788393155434072210718568381582102452412748027755178571696473714012586767568127909547010827932547478685857823205234593772244260699291203526454892799093109040154834477362433176068876540580750936339603989649134186657181278713780000923166446376626959878394240661976590597427082361433300020322820993663461096359963084607532576121773807706362932872339380544157709529992428497161880567009568161447317539322886086112974757815913835499763246060808891634009631675566291353125031511606481043074228812008646503672641403247044263914670916217937453726707235728737345052353542151929972902786946132706801147472893669161131175055251890132841324432369554412965677957550855194869578615442337972381739977837622916308897278048467512063949906935798382219392391324417123819515465197596318368355608387643856560373949738055576225196184113835275881728131994699420396792418873523142670382128691849090756965505522450519357881693966850176182759051973885275143561845727113588990697074874624245502563088932019438684635152340613754830039257456104686580414958531766245641970038561473277032804786823549373867911460643586872086047160785371585233672097950099233752155139917675643710928047921356360380639147868403078608463099669781051874152299480511238785987022783427124929500700086789002072902574376894505396821629787015772858631303058521091544202587673976912212963447487692713072549318508153998209878972322484313069222267720715460406296676129380038088481617616206786014363239090604793458159890392533652463465689980844305891868031414335897653561726862037077775881223602444304506573217396126136773527604527433625525478365021202501360032272371849623949999772277251348997743556609131789608979685734977450647327420362405301936425066401668426776707539024866156478231753610893388365518369489863533375507567393289385677517970402680541880182762059160858970234825250927339073814193862771832288928659281654715399637626380154345193072571815152463406343196828689795970787438225112181967593400307536262868448478568573102528168087891499772689953141565231434392177477218035253371124948403547911618197884775251863370575935325633910804859397619502773727557113141700021008309383930441110301460284575344976025701961345145647499670400890809454016918218092433464860993840775520047528510611462863467311568066194807955793039540227490775166013061777470373434766371829546265227025649283305589518996114934654122565816611296354536637775582570815609008234593896008444812409753336065900176046853971800762853728478873871204716362959768860381446731812754490779599171101669892095214582103470687648940979680117327772485151864864108455986095841879598701666106696534993284883370691950945161811480186859435896616804732898490269766312865688927636660490965062123132739770102118181251964951958268771091840775873152921812497778316999263031974048272058793872145919635732062402022885695691619825017330298495377226839465379049163075273993150121705001770560419343657950736356927260563052784985334312399024247289245475921661638796482242537987383769589662034601843744224642333557767848643334260336215481612050589395131114152967575180632180588019028921763062895981093327521968373687325424436565192935617643017010566125073594122743082582656137186090406130272121914143812092479939477253135514684949774215341430109357910097470189525756704383611451175276443910110961009599916622959884184893906490777364017475397984971446274756302179113158786867986074694021760291596137248940313030065006913616783860323890459070969223168727507830016338936451043728861792735791623822724905753538496067142785983053010505623419407175113195060285614765734191059651456225534843636603938694417378329072785573023143668250770978830673851043488357245762564715721442776455400481930551503718389622041747067143946670496718897039851631730471587147473908584523187720082838175203765060007221289328797499479380451961998656374743488410925948397905174430933034850189118367134967466723682233216477902004531097542122140078100957382730062183093667897826894238672555402058629642540031827682430970426568480140295442831125023552703953673459784962776214083537326019727153954903073463091145406160119709159327193542149173163090334063845144976335491674274201656815103925194371823616155927725766364795111474722600952410943814114909571534704897319334008625763423455868533861136542770618143175985129146334459856837091651697091589101837025405198094640486645929912744263371034918545718482395204528896724286518755624837857670185194499215572177564527291390808051168884731683311075096958844145779136620324029473514605362228892459816193454378548886221031309933475142755660866407343247622631854603918299168213724263008892546156053647783089461733387536552638368151857736398734706428366387478432034954248282341779342359350047621544729898991178699338780453366164219910996753338155058160651189705248641157274415899539434737208245562190668948800949141335894991966034518883199850542325929287095372724811069018366217489643746950456414692172859276911843935595709140514297511817786577019938150028441857519321558020681391805619260952966464421191075536038842772231384358019247736610443296046771422519711583460727367469976694586260551892342510667506176839101389490581198438947109752978550749228291761179643579217355769418285128210527570151285329720908041319437421010851031417587725275400265413524216318285552561469443749825595835303510057815573650655294882418029377337320066040881699404699614605227160098463668699543725329907512705609887297347717940532479306101025413350842422381061032831432872429787123105862857515508848502512912009846025270532499158855973641273147710712151092860353613287781764700307431103541000464935886017565267124139398421787543635098851131384242040850631563923036531305333326906907316664128357789304560774719643723539161239958296433152278910589838189779416448087755896711933137327879604684086579336277997003648830056968293494760425077540685841341013036103687516596165360003350930690442964870707981385057279947578057115954685764064055025227950820480549236006859704345328133357407076829191630330869765460851283928108698099164640130712381881130474166401820078623166331607222376232652585153833834649411302797827641617842485267375621161536970085203124951244002945902259684316120141906774413357255613229525018775077099654331868573712703922236601801352306033912703276791835388153442526648816605403866010374767588396156546345962840475975667883982999671996785314850937371872280665182671401895106111058542085239297421001273068495480186683858489198601501876819796937507483471438941538192025427664417451974549975829073540259066956649541999895623741835734331541622335236818155095280591193748835656474264855230451378471157709830062548633977921861038709369956945537782518918359880865392609164366952277065463501645566751152336897390112441832592562414401643355317845463881933379116255003682560364649626182365835816244578174413000493718633553421962688347786259440146930643155432234282073665707589120216322063828431949111019518485665683367282261872718404003153151942465413151311778885961885804549557741313945751503291820925058094425403263709115444062584318710141363909595785338355028999354005228243593738628029129026863437461794167077251701740505249324000044701465984553449868625776881798705396996361410828869259118378249639703182255635124581530818821953244126457386717042629663101978680569715556975753597813883285670278574078979074621572354618332545367480878781359119439273436291744820838983218822147020783937798702805775723583532958624345205358832027879373499182169962478684966344246694858104645391334229260123523210558734664640475671063239905608448445667566092322545680210312416333910216364839210360905892117648117648017753955883253164021767880022378452172925426078310022713665904397475328599162820330528111947655816001104108624561511412844863665439666830663672785753944046371313884157598004196488165728418103629567041033205482388244158994473009389081919720285965327541520163187033957415148285568747687654297454315106197305849894879741395361210677513625899574784560322623711484842630310053222099605568639504368475530964142941582789239791921141041140218405835588767062086442019706103603130579188685420079195621554267431909811815360551324053022750791909059307035997537145362385888515319228838905741194182348074530524755908263116969867965163257897349892395322941939176244448351139070328807422389645795974494846531631361956562351700783070720310325795274501008821866887062883377391261145510830228432345601407697907676778580667846605201845623808400231990166898514020222456688807829979259591825415535688084516324137322698059568290195264086143446710036098543259524839862729623252981154823173939154294580527284977932129992424179114972930878988875324138396765041373688475971902325748364525266028953264965832695695368363422415533042767425093501115815157263712827659053839740686030872512854309988607718592464049957564871081286496753838625216364172207096692458127477691219610512735711133827338455149759695057102893685192012158318144471122534434415131911870085051322082952902656820903313552853857576867733360775550591323360305732317177274440472091802145953646459944562656054353829584659345049178504927669028061893748275400126016490220057699362281753134118194183818123949180685765706093537218143689036851237635369336732231570790209561322853771638219268984022817746359423348412148538978660244927669024912820739721961175997060887741409594107439901113034739078998251053511998758803458647990311553585388338674737501330850895951406323914046615479973032404094568295484806591949738116608106586383631639411706678659737162002921549956264978677052876863478449607745125099236091371291303342611802287974296032365039156160180955896117197082241448217862452821786979213094655354237397413679671121667029055334070751039443167150472295765866135767976207615482479120459939267031388674711669227506951820813055820695537525503769204824390586881934507470469585674792466180250736227089987607265436815949759086245094836292906580871637306542469994194062006172934028865635093555878510332222727649674784201779422584042683632590486054557341223229996586316281260903862642599523284848165936122619042974710186597029622224896677305573923378258202008330890905052167536224100859107860085962449784945880419153355170978138446745471012822083404565915595968267968069561840974401517684211699798781309144624387941945949419634697309023280594912013980980595290992819254674456505079065691383491558572032981635549608086891955976643750512328811558074025935754185599850189583361389259519835490602504434653017138415978430383377176696295870865554042297009140927732787503948590311443895885286872117199492123349289831199768320473216967530615038755693706568416686367595159565364263024972656645703958133102062061000751552455250247287611854033328999351295851528004559968496298574074480028767706784554640134775656129887492689723509227223737089278841665493249021955158699690867119960113547820916068338458028014627353982547610195066850142276764573878560439177352099421247035942235517589156465519850624334019312687951632457026618156587464170736047880317936782120665956801140585922561646264744083606614197518913162504631097376713915812590395159375317575108764784748304526724963175152492627425955636413532717997677974355959871178555353645412229016104378192849576479002683833299369073695327811268464720521289331387958689698587878714408501157738504628389210497375638748043575973372983634945947997491519085513949214582651854145272624043841848383356127700828364721460099297274710526469717378794902112930667551180471909914969427373134853759534929413271461320984781571734781139008720692192097593060090662885677147809161532706853275644274230451620993249006612925757774334194407552991090817938967394105802385124277754422511834817598650895559442051765342435044876809126243272131216673435807139593897929269065789195083898576115030136452523691142674247489815344337870591584364759356349903091442345768444663020362784377828644181787828452779015149515474719832213949977888624734972931329073226061829635501506480486892319250434903708091981703257093208199580031999171815949801723787644709439555607964643557473834986106312219117324085959049759637159641308436010088293937754305334702032515503384863399058525655203911521046793162293828571536063539224509372193794910210693305523124937805300350394459333121787989601967346311735775198178421848326838239069522172669343382812932790930174507629303484157259544250323257656035213244137694028285475357669141372212115426986854841243488186611360628882725157768132028107868555810587788971738542266054881510742342548057319890733036301812084814259763473253764736679055569795069833400522331993432985902268352080468398402585718500693744623521339859507891544735107522701256662383259383697341592181345160721196566574886775890569029928860305359657856917782266496926349596341347600321082346855781016941763400157720813961543226417537811015897490126221204005012844022307230130029189488853386027647531937550091309065710388367718866724902994386039453322501133945844436686081036414403650927325879507115230292354983658263540752737432746263089094449910050917960777893675610976050773143988056262979606165317203049513865835211955330394111353759160207647557650414991919276049146046189544510414568599717636726037102515930520353622979895202976395627048557718404724255758370249565312447600416628938149333430446340297509359527235742832643758026689197713366930250409525122931458965859346214426309650034800502555789050981372617216647946575168493622906968365120637860461304358546373654807237612992715059767280110048056956774547849252024403659143653301071345550691020790797158094402565484925675142890524307360203181871119871001675426572186872729782259077725775903147252679608090147383926368161191649455768425203423470769772739730941257569240577059351383137572309657529537887889948336849008534359873594022114605363416555027037612489920694076631333556472103613832411706376062549306104145497841523824347836885806598731703209282746920724445277782301377924554809052342039398627891036560531988034565585769552319774254912455451807576761425663933914935812086327806694676040163992433283682697811070236108268331399848586686723915245110285423521672800808337157645983171619044723144528410359309661143311135000335913214039189957469524550978739932726889765652152059283952385754966621270197180412699757072333008875742871071046762243180170621497841876241468402045303426567616942384837885766466453488833614776877088764648702751342336756651727208211804415551643727755849133911541914991209005693467844466044150998148003713287839821490736532066983080966019319126283098478782405445629601098214963555702676390486689982279680916080525225653293333514626179641916593853156252572956252625203277197335278778224563056139929339741243808689174769818931382511091531400992779449791388530057954150832572119320821160651112574401502183066560708723553829907030983878982196118008902349898637091568387873160979067063817351960149848377688182143009785326281733243957172528261602742799771625605180782726010911731453938399165716359072969791456012040884511749643167110918252940695719510181801925657248858635958866445907716437212592333139870023826933692224175953126231843427026580798785710616561406854241676338934903867987855588347161021304266357063814297975447479867973746631566214605810444870816472880736033704868138660593588788391569194405658340936985484378693242461945711495049616713872151637456327156773200814079250765905229813791793567082850304185703494575121588513405167581655819734749499724643541999697560649400697300180974513576908384302377985100487631213815705980365551087499502201973482212750828837286543635007983381926279638390758629799584436300964813866879843099921808676876317883586315655754646386808447288447552142972542966288426282532940160752405104383175111695917905431426651763843837746689500898751395132932156880337530058023422898311780130409840894193051987054962400595466774651123348881809162183351580430563084257041412087926318686255621661153524408463787970779758976911855688155331318248278628136282009107707297050242558692253381140857696744657729688842186145044927024630931843871412800441553303037085368872765808219034885400014053961414391497070244590348608669275611108307359612805243177494901254488931990329512630230484138022816839359035176460856287079399317155046332212947910785005577104798224477773418603890437980089073237632984014514689309405167079835269534870635268168057545784580824724981136893040178130494067943339087862541748714653956434669058815352881105908717691504946673287674595371401740403214909936783426408828220516752238266534414639042094424114699926668205779896822581624517045347586040918166921095162374378498703140711669599844105735062827401546158923292375479957863320873506809803900764030374116573100638059995491472737549682211636184981589137477040846158647476806792437899358977763592204911897113032389131640345281295884091441444341618189906091442602628083191984750060411447907518561805637289776515363563350141708680623166424622849464383361341717759848352341859754484632088171892681582018096574692297359293814756799685039411412074653723795177014858609200401400565277904584957457224425183573852931508471658476295563201836427132174613615271710288840625924079749671822185719871045260477414144938644624798500629900080677089792878073049325483225633872580391342345264946160119751221308036041414965792986842482495279315983378042057475661568065819661764589947421777109681978192015082034706273592878605527558552174189742952240313968402757861848783598566819310032634672048099027046498504654016388883151795558399029261133710441207721034726903595649533600715159867154135874730568527350924966553034256372820489846408871650709845273080416582419626245200635571179587148597542402859023812460001239112170379984271930431490340625959351152059539648307461917034108244624379324006098704273003211267211969507609111544080251032101848300048991961516600568970311679662535179109216585818527862905544332161604379867111488279991645616774251228703661803281032627893761369712570591769985782313341962709138369192101218849633026961977545242343288967023160379319954716866561175262095402859353186979408268971405055033669953910047427964666449925867154572484848453805711360839209628890593267122856013636180026892536650882178338707393827375074757248261009702589844258072913621965665060753418044864454858054748295160626497813475564627845151816797458065594745744696691617205720913049476921098156679099582394067912268327358676222842551023449527625452271504500572732706986282224236849039966700762968597541305739346745068724962531135877383900402730952725643994977194830454016923509282708720927336417220951430982496210964728130829091222748308774167099957112481120520866404240762114652885641907761854780164489638330235829353375269169690402470047774019337069146354769349385507697204467392639352322479683559535957139067361798112947180208858396367754639964391057784959747279507725440608478952823984653867388285460835751435525587128983074398288632152907486487532060304725708460755861861893809189294241812636540212678754970186404928754205959897519386488239925643132173598155165245734497323146369503915170571650975648800449887551463587032513565350595452400147288017279088771304256764298567112953828231983430420102338983735509883212998413607574537161165087173029216301845690791440226952128367536967498879956710140976129735545578332884224772842217069543394550610915727006785283644740700232757714446058875531799924663266704420871249684584572365230202487566605163586466283613859033739095796433986024556471125969080463013302619415416181095697914342126839770083995462736198932777717266383274445578865560188109845008662302324853566048609860946600797209780795366492238212744767204797177198413035951232475024512649183957747682829831222022866894557269860330221004085476802044982584964926834888757712365127155048087021332117955223894729920017117381482257311381294136589434136395260410686996842722925222343944103182288809762444755345380480755461451516229018688906427251552573368001158995423925547204543098777513716701274186375103590153879648351985724970733254136216406642869369162097717571778563898899048616436876315016624164821871936183044753656037817974859417309186320079190756003716083231916838530570902348384879398415246982343508269602565418653558963292635209669711930454013129260265062233534055823177167018881172593557893378127580319000125773938108556982933170086991643568601170555403084984504354362623048562830501689479546295574054056155697045995138833180248910507815447471073197037066253831329191499756775003634315626240573767857415849056570109775353499000565519067461898393919718527966102104898614873284600390919146957467467970226224380196163373508116108011091102456938685987205668379179481946710666396421484868023419678549957847748399538256501177650743899043481139965162342524497916801268958773133431608714956930268396363498486838541660802494916291214749602883475006988301596893698701471563984826720886997958098737427677560074203313752487912797615745726713712913111163394778422036315886886429777991065397809271510197273755891139659051993650093412330504137238059337724887505875999213634154573946160915905534379367141171985355086616163753454456390426817656405211925516995116782790651120466531090870793466010699113345079648632096202635524703581066579759552396178779194541197808046461244952939438127999428794628491989712314857045063609351618875640816989953199449646237816707821731383427988990013386555463946153371386755334727101281020886532985197650445176876679664419844887043343854290590667182178414886480466171991447596049702327321229390373134931092666343965787481923192194455890123116713860145073281902370892483426158220501297430884444535078625319944470294584878271891748321294844410263289411155693095655317699585766845914734615264322350103302250311826182075873445771354787962410869217177111878166834677187595257201212710161980611581129405515914071443898178212872824347963296344681478770396204079831544209096105530430231928151913155424821911792407991900407635305989547251960841329946023834310914727381997437852923831499849071828078245582213211294971438164077745173419194445380656392210345902328998852795529153241281951408598544368024375022105582319830004891120344899843384741508611398646887277314438341244016103563913005749318417564551815318011591061698030494059261145169812435665806464191858944778826273266554512545406788022982330530758526935965919087975872286974845584624637777250436259770138834427269871745068293604368364276266706081063551507486369524164378502699453204375127085352655440178496023671749697507788840178515126476894635171934579268346329535547541259938698115777901095264879436552158506500709055673553018583692132935227428800606776693571473523439856433536074329658419062744823164039695338181831154491197136246563156118813101126336769924455617768660495452391442544530018307431881896500641481957235329606454984503142856621545153894812159474469378748660053319492659627114757600000885785607940367553940836261528034497382891331491894572271673843241421024396551634588125235264592151455484212821161999289395175885072616701217302307041641344298965816194512726092784517763607662342233274090072149126792922812921957159000906721438581377465536237692034711161088898397261436036038720066653390080978990601702825901302193370044449676807035772074410638818971076307498109127653534857097130255185800266853815725297002926034006131119526408194320888748689638615961712559656832598460021089829048851802217970742328580365780823873526793654875442049463957802861917198133654869096451301762634487733377715571199404294175166833230826446842041453276462825960464864897770464039166075291431018633837929568717969564231670948854957941468694494431265933977524200524993022758808273101072677932794716388364201130886460893828353769827841114683418699331465483213263428135873578177809500282742769344372837184584115917023607199300710639951249495138111052520255458581835372211889151515932332998995463338359948881526334733301038824791961743906239922607523849167905900083528399550657449791564117745446137643889584789369001977127306869278593556861339289081718541694451561475242664367087594009644297476030062346491389534835897369912775673390462668289216631282672883497275859814639163704368995444189695993385181658186335109035608499329457590355999240937518571159626971872866005098087096723544452569715856850399986652631979068323362845457770076919217087559262908413313121097986407629348138338732834204183083412639261373112393235762261862774808060911572585672580795490273922045576722261204905113320565581059857930856869690281917661804771936307620715605533181333691043818766635072740236105137058094774553877510257046854577296719736819304840045030364928830565992884807731973912549069440397667325401068752104145104601332660626694844846605039612261068361025291788973910578716952745472560736656989924977861924314355439804364436978595898589490708999428759413287396352200493092113474833226744590605925192586274506528402420285395355835764689804001857436669679608953278877592420476518263152344705836127308270903609896743628902323108963107368485649791295187270491706571970720412609243677843527653085207571140801676753083010235344426999552771764630413525495204261763525964090469722355600401242937684725796117495536542055725195216091404194218023446955666184296651051283628356901885485772846607056853045518197515355358739706633850448085677848707358807078726067337450153295658004267817374527648353486271239152165442686177607589855420738724274833140206232807407004580011804593966367231988781644468661863215021960723627942063773778065135661504885021249466303380598397144784919351256998358246662179043685867197682405732570724700537520941456563203564399826268407693161906035951017833577575905582911649816101564026872646433271008612551414908319065330248605127287916252783265438038613175155128430533425958692639088724978826352214931117896905313819853348498747913232405714098439819940820789757153793028058497867860663197931815235428826676955886886808739321824416914194784788454040349610243388856486146971998355942694498887927495030530049249055796908801152724258768041349414140773925939528261446232229683246551275782322572202389646826716341326546281228651279742159132448528063433232212675425636929857650834504370943221494037626207603592022035126842929022743327530348661649105908896305260384511236481910809976158879533617595975802405673731047256059366883286352936280963249109890841785544671784419333237749019955127844017452431002217430116508990389071652926157514085629646063338347271276632061014461630053867556001637422706547446926562424539496158603356921483703391658040994036173640874110577298078321794932485594080364039441489749331605192578328167053855835503372759460128094381115999497607074283240713556314668945418818174492170839012506603807063155962443299989205439656488200247687145653869629648106325565208363204587890281694346210588578227691902198507309738420436164945583666902615813482666667740464834382182734654665610882586236894883606606232881031170704315519658396503027603810907527405388026553758306579049011714850145783770783638796663999350576857260436108336853980475654262954436135559961135117330104133211174737736422453843187328530764775724970716053565868553878778546181890273711539162123488268460147286625087963488060814146202289120382130958401150287540491701138706194996878774213566698340322388894532742878076820385592080496299751468856998329844383199376293971375160194689246294148129828627859795607806418072370526099598486228599207151992238081019008492692447394038829495423363883384033173436782903876669925015987998146723851618534573732178803458862994146421090016121497411701688008962511317894180955551577895345467435584736337009314539846550316903357238399418048771812514913303866621755444768590314439527291863352580983833309955381357176975498296607557358525385826954765864388246377694612019059997876859915974861443744423800336585516283208953394551585834101959567286946798997794583799747395875925798055449368032212738368543403790079200913413430953447458594528495536334215713075765846445183150131102163183642265716014105467148606796938849036178484999664859057749882518604724182907078563792375796485131879839755683900026162831695335496839460022171827389427530105060226579459644791082742071506009332673856852552568029383229084167681819309691513257659711776125398982830262899900353460531172590540326252714990706582795910566913709963896884153978239827092648878368411680764481464524114911929273457551162749412025985492265623871306305362004886862650528223609223447688961641518197775083010568215273065330950616992687198203816578272636384434925756754479763159841303712797706434155749270820044924566568380230538941699980720462246432332377620225546971676326223217930724469425382589195278696453813893035550271633078317419555240642391852757040927221845412027879624546291313847431476798428800144693694107960302023457935020981422301055718386015585310691408293006701179294025480478015723773967763715358630844503889415640916280002701748801676155852226109016322909787911736876187902427749449913613885979060184494480040041077821673361648810166140018934604715210860077099695639727674746947326297062179398898961122612955404127266787923138295190999732017933603380919345171549041259954738115718279690067653100002211171645772221946088270448462727302357091904099659479459800077717027448463104881716633022739599281460456569617769538676782636599111956230812028846782464184943584041689476369145671467725543267714953094177591770879599892409453102491528313815758146407767056048720555302778178728112559039774973190248551910167889493041425385593598800580072582307430119598234859805718507776649597423157313502444581152808425489722856230678716583507723401332807134101402800370104293445742690904496470737074605807122835428783218759289946751094860450210895012316446991724863290510409701694916791125042878276924852982234822692483910752867741744662915638073172044630757369738357808293156614795814529894243873416287529542552540556741462124662511467044432967164831927626447297386118541301830537289605220921334191365571135921503028244553706362815998918383194748840342672728531925001039759347656191073528634952304756074544262801036267277695059068605563545928612675919147258475562510216120179905180153246792877008844271978767976848222330405077069085954651995660462700643887869038302408411224399181569549288533244803982781577185887106265631304405489406358822325345190771334132879853066900884870646346209480729053997694583072988751142886566051847947360380081431606798770646519845550841296585958885003693082781611668436020293817595538492754219226188747312738327276608928184994097505556132866070842671349466458909690324043099191700349052534160426489152725520616479251526878908344254422277304625041937541510632338122239914316174987271689578385833635357900266574501019333741095405513984228198362108029375020180662588556298614750134974423740835276776618339709916413913694119822650612555494031088520043977034767733179896313305880630544100431668422629296373220610847052574380927875418607688907352877786826070551821072834839070328662281679955052668417882699642438842597988928191251302631816491638786630250674295753237824098134243637009100753307951797669873115378016799142186923932235319479154151824053300970889231022339826674745521538291088257300126722460140769270913203535759401480711487022702941829183156182331211226577654163778262627477227653544333456915053853935790820264829235521573503102276869607277633005384444538031459831073964497712392147501213060997623711067073730302475421025183049935389331774289756463246618375193919385982715612450778996276219018406080916184535770653448490367108436041219103153234405075013177758442032828565234742226721672700577703281943459429473186666377158184301054499880292576017345017650709361058637244500165544295936735104181277495334479521682706561901027183885921610399808541960247577576718119950741822731569488592374790502828483527196251150651418641475452139835364680744606746968986665019319004041392866036502174549350417067382925479683762556083371612375222217555708226383860378783793572111310123613817517587472737036568451649915868560150124865812864798732915877616517332771093897315634292067200662328780621777321558250802799600321392741328216062650361854364746060128679213329472656609769125295594922468309012176456533264978740802282209568908624997300051125653300772385249055745484132947962417286503717541597490795725327391848307431117405663211346581491350385557310243504273119604218724389260867687361389868038644517921871373475598208536148118561030016264496018973721109336743029257411293303636406192099390830368884570093728920957181947704082976847855266831120485970945053635230807117278668207941520419926065308095848456741923870679206399111784359130108724386566078570009661741478066329116981206795718777904391211356700855775215893413381187622530311553810336527546725651706038501313146245235341976925601037560562780920813577033316971773370382672782769165833394490721571768151166318039296822306993569096966312084981812758435475818167464135118384575849310088177484728319953265633269256587605758629836692926771323059760690665610199821511127495833405181932003930477789580590379726830161594726866880007385671275049493455144702847931634432441215437463592138585118131555317111789498653299197162121335978104714080571398471617868547084757352987254307127502822138050148375695281234179417776112868658308788911776268230345742026077079610519575069993329487745140655455178437533387795539295513024894748723233659185381022723551193570844540604634438781432242775865670273367418165193660324714358672137748334421278848845328228434808753212614790358698047740309612679782709830234475864090212317241351618552345710143986738769008964932341799359318502195150371110258163970507991805336725688824251714018582862153075495549609953977756247732495285507913085884580153291172625774799106408785877799021089342734511312190680303778721045045287935889407612903780923807078351868297070735485533879810297330348857105125163822923801939772234069920991434375075637873228892876349517695662366754979468398969842753477792517977976399662069960822311241209338389721162304700701863390040558968637742736420787617538407633798822378386811808906147933222748967042430136272733462865775720343033559781617826695204439756321740222631362003488959889433734479498332468809866689717782062359171070698164638329247565055729609168646565744405329975307059922821491956515615429870785704529731048502215261386277666078737582371761642303158422060126298325081214376225610274633774207684497751653605761455877745645403119795981517664604308402176760629253420999937498577763591505075133068767202312848664924528297335611926165872153899717338870093329775975447075550607211547488464381347037199760511033054606176119587417738006077183834541017702217555188294184274713359499750134225632409142307663978504254085749799465155602235502739129642556210840251990770368270492522749996464998958968324222199653373074304767816429199504446972654286559548236801575627095141761867228671243538811087557151695233648755890681319581243997458807355940789059589148122520860729388334088937645224082391943456084087596913425046752894480524930189223633174623276985782115207190183761572710926459870930191315401585584244679714233902081961355166407850846782885829493295223748067799622689584802120439702627567031201226035098874075772041891332891090788601617554826937806482600762239935349679056041152399041535516318926026693687981066522594136528365455360329386537586999385129976320764396349229769495317104456658687854487098500475320483518928511726192107223447948390763286507187392061988820593758282125323253369455998788611192249527835120724201235535979274821519856263590193145059998509060008518559199228545023086794527437591282197741029584136158815770969064936664382333881171454121109440879624235457059341097735004616934389237503914676772110275009411814596567998253764450175074370008878616512000860255341345862174380635616710964964208089744997932089970719471990357865918125090504673634354741883452934880402440166491315257963330147424222419382218099504886815140714448459212561919854777508807069437102061481324014803223178828378733002108209916529153823394845008660345756850915330008685981209560499939591503363252500487450894620725556588226848214554812293625220411373803760990363026986367967930499460648111565201028552923206914182545849690852779679251624683729198335181987728649134929100048406916812369798509646673960753276234440695727728566027164956285506448232832962582931184348190188042411930980764871339061938565497368566751722978766612839446267835360099116365551647043064849087980506124616920049721323490043781258209993917807758566644512770806748409074646242243662792722673855657839056056397763369256820960832652989956404093696050262977955420540987599396290195978163344584571857195073541235379295887549919444969003900574850698816969892080392591962851067169716490941311721601625758295898289963641678662722519338715929541756288767434879542016625329674802067413072477860692531878885787698037132125865173621892682256752349767469491064522027076794642957155132415736570671659008455274665572716671676903144668009413465727762112430991233254159220631729160532487269708173727128026917915186453444118159800384310842940157548067386635389106991904357941816654085029261265797355307217554563883095657982780805668553152812306630491633370400622354909449586051128009018526155144972999751635104641772057326817734319164389493600038672649726989269907438995417879900089749411778253353869327904126669073901961895214914415559878277813323100088636154223940616983137613595692633422531753524402683295665074968137685960698706190860710288026905170764507166642879605121843777598766765123098832464110799536206082288401242773414215222473392612830703068842518055408686613977501885703634564933715338221044910173357795545943225606593547241956402109313130005003461122980861131591782894797051678632294017644210128793315513506912643391155597011362761084130765424770806002558345831495147577595331211767268363575156118127860555832160076327837901770055560182497304122388025175251855304545457010490636031280763567123987943433891559784498355812881123071822230920928637397492096625822299159838713346619866851029268259792452561125122121917889303743590848713580175083129488553130914230038936747107403273603337395507864234571455655197440066086957162443221055385747137378558703316560329358744205564391408028907538145181605375995358127428161926799011609338022803823502646345188832123596931274368803793883654106072934136879661955842579413056199016098055414889093109976467389422220765542499112622225361666438212670238406841169116056640371609445530492205525508713947808340947383536918830017167874183571137443962739853434309748793944783209324311633624869953811956214090902396949282619278682885615830989501384242844230009608345153365561825020694578145311768966465869672567925885140281074972983964021628863183901369738217231227331582263837147925174325188145420279190749508724656890453273164883072591897421215047507089429252088118621345220799785742699606127533152969637419622519852055586639924607389176703511670542338099871671500092184508154297053458175089629279357140201083721045691135041104782228960721984250201621553289890572940150533861256763930316419894946641466134884583737870558110361364937547804292713601577255772040085657955576347421585159956836640559803696696072496396773626999159574507655144155521814575835586168324619565388775191129265205041372228408191010461624265607274430945305906958408759693139486302767334597977818271682923291520605809062340278113871934937419416943618995256928445805741581207686861577834317440491112582990324586000368371212139076709145832849189251127649908098801744724278762834318468146713004621732299367696021364081373840310489369513928360521360065613684102313413632287868823875829925335120267993959349088536522278543685532056467411069254924008737307573576730252882012943626823486638354814090141225725269885933062257208134771308699730611024110088067888430644012363266497726442959211640926267884539914646178827169521868564509584286944100960190723821263604006462053161610836148998339989829073204663464811211819082105708783421995246264550479528528890328204221386807190642222680259043662340909595813135811264476590594125736799760877053809675390628028184126881016260488320609305962230024323395905499621768361132528678090125175404238965640923214342813238704436547815081419769412281055995998859583616363921664835270176946584542969138028558732296810005997364871125061686884955831836348990988212350375922981052285166487652095605031327985050969408574103648067813039396282650763445646202976702754812834528348090008912855160944426220360161562071731786138895682140460643232997876905274033428292209592579206391799159060320531584220520916991219858342592029436775661507876285709804682772932800735644220560986249032526605232959852004568753345337395113837522631553995338480178793487261836546799482894808473051690635472950199621883732802281023787570633979900353453190364144383676110210902799521226760822584273550542285635969395730867881668443079582284724812629101577579089727176091738548819742355665390352178286752055873613959459572388978013660842124418992392336832622435570776295896989872632772791252482634850250525750351519184855525230267065165462513355805795086532991439652138977225381701361389695767455697195990131986941142340586687711020286467210743358345076265827719886329236401224860824091036060990666421155226770081438363150416886468535491230912022780575635603365260272203661240741856955396421868715122960093318714768145495492000200095931942874554708130585091031832009295658994957621059369668323947561109381913407784462081143095549231826998308201286179483034490197006780675433945272136443701143378798168460738633847729949640494667968151478898493711274952068552268359240405573945481678245406412860478341034284873044739100694254653730252849540550596367609069856082948276590831460853098480034081781672195283894717877442858354492634931378600341655513664192802009383470016078878868468906225235748748832745685501127310053138156070589401865674688932139442748897086686640972112496666987117696747716224209652066255238401939809640594449532279816426438345881360470901076780085153061667125742340906988346622423538931102588095781230765846493362937650554866790660501203911113502365050000280823461652099849134916979711779752831877510480938973615090750087801723234112396644089511079336364516954157681186616061280669478341120281648507323409940287033588841094497283743664378174255534263567071648834627806397530692452161677150126190726668772411859762020905387636965710664753520668199137624730093350351762021000555435177229837930044155514365342889553630965285741650706595817865794045392936081955248765196705112271242573753475496555214061484238796855724885367086532676841294449623129124592843138837048399410395160681706475562935461833959753275190005632233797023635313398284556646590980595745597957897783806689961206768805604491076303646526434730623145792460690925645628678271084522554059187935802564804750499056634119443035217956411663581428759364531818730556096669520001332100957072928248077845045560022324401073919112046985229406121701725471596290519590923375234018142744687125770610367062123368131335803770036100899566320912713561332954993592450503164147411362102588019412581233999825078281520115809788687549576052871868242574417630576545490799934914991955984945082012259861179101392048373380133387754252090159670198269514738400053205283687272336380477028161697712857044442036221589548459243587921769257686673916136728905770570327987916195403461278839338542988784961110888582296962810750696418958918138465691839786825936834124809306838269304110697664413005005818381922236966916607405004505781882645973386031412000395632553117355480017996608847073875358094130788564521134419799069391633509783894141923486292259120116407045447895813354823162193399651425518930537671473161551829563729023173067842907253128580080647633398071015544496145597060312300011238034523921678448751108228853117072857580368575182514041557533688641498716910960154061093600565659142397922070052224347847671630592193271729246124006931659365063264949933230775216912299949645451879422443231209663643034764570212815537182515173990679716730902766078726587551044188800681218334368543676909659131607890272947471182380618530265764957224069631925326788572641033050593755486703142030481431566694834004343436269592598438775152709258446330977732790675196751279623956114008174177486242902779518338316930036432086052867738960503012409783820826768103852354382540634436888907999748415780206364848151362312054024891678440052599241330567182201621090645476876886972759498104254240117384428298790605591220159371601362820559519711305091983589052513386523365897173683251409516897182452452284904797830923496840954441532462124579559282749591291653523347730412576428587625248929972826332348698830546135543442864773735335165739059111660079163853176879069682090838103265011915199512822608066824036798323691578279317071967586024999523263583115516013831975001105414089278056657357419345144715229417774807004679264689464320334105164777992709582570369736640999788995695625789872585489611309468257519489084313269116617045554698830713788860440038412880016398362041419433261946386507634841628389949236128909054767887227638209665636154530625412327239314005843861476439745096894352193046901242376932113729589134965621619197448066348006789278055350857215604375453798756790588610977044612113042028990068575385684935568519965741861236550842044451487958595526621632225116584219916816175853447606849904673433004226532302548834133629849329580215297610407654473974271076572756866067437913660012843914367304201392312406958127822013611000470693008588975615996538631582089122174243642682778727940050889137324873833934232327898480704560501927920878477551373645949243487530384182628428353155178926894948323281346975242951599511329305610545846340125509946836396154308870778887230194242248993303202088949285989536731724133962257171032318260040564126154823523699720485987072312018225878348229584282143594484910072728189543233872758315959016817846371560889682715816650284038896260416877379821398356699973183670076504356112265816389945740265547557421241735492230638308619900422427669207975348097027753149363052403455164759688552680255279487855916775946404476572227336191645806233685148057179381159692567582256810649982660335186371762732221767727626502451155507063314124206969107390895549268697459889167011684541410229278682315531723218899735109546405777918387710744364150446974282540496100883220121960046664489309049243905029813075318916274193251551509160099329909220446695078567877866349605427617428674665294620320353972852846758218612277182016930955645797085562184107798575106649153360766211966288673818001456374540634135997680003806569866767361529700484596043851135192050257582931037328863208308128281918740966024583101137479274967506776307270482621416459678142160206818052768862300210692059525022069106291611932793732974455817002084444483311298564956129978628698304147616378026732155833938199641372579481872196868943676591407656001683849417210175344152747530955001663861699229496731041121633249653586357251852656478075138832931459786815048340291041895503906204651097691506858222443297506321988355750352150171083366738624690918464021185887705547942915538050702151275578753704185925653330618972920832838453057285686789787515296561923778885842756292692823294298134703277367980177507114380057585179044164097171901462241494605992427308134087979428340602991972480909682619881430470550869074346504375722502442467232394601418364978711475828379084194533198393581878145521238481854563932352294770488507680352197703676119856187659167372103374937288999566265817620120415128962350743358986184088039961657406441782692979143201816602562985531462063159911291839999954373893663528432895367379476513475389812346575797817286591709951444892951304488526335244831516778801374563131591652811143885512873206565145524213110942624350837679171974783466281624512120391205810191638857789401755497274477379427717201477921814681525362322865637566940264762934123447551495820267293267230832995229863941678474619423956316942059416922209559718643137605613227086757484219170288687984248529383781198203286776908117833718551400630260854260415841815435339465245668438497011481172374350430988709686848703849037751470404642068835288249299171733307959039643200799440560999510086466788726231635378297472443559528096227390037080590141985213943889514182220291060698915674328034306155068899932049781604840209531067168405271017753638010489509206687385738681545680108656490282811676979471266202160623828883984492599648634283655484135455282324422000125742990837598035289153494224348212027728523335919579370272618379056269510971024773342399492761710847223098884968286737682992542865124263742607247796880398386869851345723615189805535518101360823759397588812219147226605825480327110533771584089505214210962433186882366825852837688710247130162736452897835259714917754358229680961906408899173936858964678350847212404244433865173931891540311075429855389099016673187647630680095446570418856106114362171132578901386429696497316855045049529586458035412746701934929279607329076549917784536092832490544940640102317586600697200497273300590160818201567302021939506844598548469786288844505914652115723116132998115344141643465882530263539173160191515597584507614265286842576486150319994145663984816027906030524840554445796298144096967804593314705778286115042144342363625953555266933599190697835884984479032836800956956068074787507503624080004766985992805041505929302777282306248023541716369505496138432813482655686650976434642677390026761477830776987892079407748126901701427821433226476341849748621975562510250381075673561382249850725276981813182106689957058947644081346367239393201702939478358272560795011637717702031794459150944951248840792420407169763665953056578755880978356894757074161457480171659454994885810639138178817094719555929065882119124905833925458206820964735655736271023103533153812037184471160962160509336393994481627828374051790238867191337922703857118522952487584429539051577614952642399755264378428263680671160340100482188428838726219045757677128929392541237355741257723801176979045468796037266818171763716018085450440958273404263029984521963572864602120593317379987911594037404483244797697267244840717126513724747614182800282078606381236220103794651664840245133964341920343323403185125587838652905307891440284302373034353548005819682507763016761012022695136869225597922095357078961972062064759094653555719688009847924039857725596269374120976619504019667707118448404387350002112363298790590813574043418814261878715015263327932810234984274803736523281998423383500176615238891204419830623496814273850301862030110974805047870744055458993516550859553131834657796606311204055808993401289497925357128555540416239879493821822356560282207634310940446156201800299465310798394189175379036184945998991523169203993268909759304378913754503072493730750514802535357734903936007970517337743053556242530460925367632080685235440158652583588675726356256104678594380377563056629951582976433929365185598376273634839703987816689160511399229989333670030648963814864197977910083778745330914570198623345798641578191961416837503943162836264300004864565539790693365178860635538417455290401620496351727471697883721384136677927860824415810652920688225715216049795315093862126694750466552940861926459623478745526922164545582272919022362708041195465843520708035260342423671233526101158132416258608820588485585251128004288322004549518874474980239261542437940789520500866674699176562557837989244158091770948223244987843535456472386643469736293451569536190077910454567229616738768414720614862446378296197864979241312366005273723809096535709810469259589037173213381032927273955670159735932609654812987715126796713730301004574839816654582218037609984281175066955889383885181654345784527962094597903910725976823971168784369723182288537699786681970738416209562689690774013671793643869188978727134797254719426992152827203140309295598839130261745215061861521294417468275703475676551279307434190388642035873136757596456832108609227074046683283227577359864397342807054475569046314790530578380884583392359094213804823686447199620352572236113845613575586998342231089319805863870296211414208096714302062358341665899550825105169415844660453252948543744050934744851830835366179264677388164476958269544831050782963530097497789138720769711880455554588945474534050902171603140939459047424235994975128988456315715986481372194851841624854971877668861990028259697590995758584185836673281180235163813635185913525741465957381691960523153473153090554928716123178893368973766953196421921818873512579818716954895603782845359324225673872539157016266385728979103276998602268437900266823435367874288502305130294659242969769358653167262920558346930973578741001685001649547134649013712601521927117405283869424132598154120811485432179822134712855342545324009380846459300198623448190230971034984493049069385726153857450134441212737604377866830709064425885401379331427200827453812938083155308351481448673821655781407323878662509266763548867794692929268716960550780501375935873844643583270640687219160267377520443736794898331167839537434306240674903836539642698820642314683125045619632528630123388886433729114823041673968096098776090982177981808263030206935038634623972963183299839181008507307084806442983472085681861443639111881401153093321389041926530119010968757859103563592374604010188353368510060191070932298940066341127421177718540856296994935359512930279363604100298437203876238948157127362808087759899476574896711329645616202839292222010602653726030232363335109322270355218983545008820870512574867864492096022883342303371993213275685898953423894313908018605625359378556425716374193263626487386019005738691041036159369961493253121106288801052665882498634374449157270119363220930655975656630468132662088053801482378078400652616429289921370815119758761765850385750439548590925119842640678239363004516019603163522924232157387325198555682949127330880840646764406555737006659828338801464725830267205130097580180173638556118974152641190198609221567856601380947967805001924285521994702192418989739201310521925054565950593411178849364989011321521757061739299839890015344743218174091556903761310690611851985409125588133326184336819344222844981451342514278446148770241081402955077834207091479216645538035006449211042317568909960996829514242767947012263562557475074761701809358637831120402012881224353135087480267625770841378294327399944600222937759890884321025366536212735634061322537560959349363503460117142634190936592414447906893491074424253056659474678866165816035430132701871071404762691908796272033748214102731834149332151061716403481858995260618871052808116163521702387498955601737653826756328827560330740516381961283109326311466754196417037953865067668375590158049006070954669805408471616148313942138417176332747527167060571684270473173659015331802181048963352472200602572993754865450628387623594974861553106730068046990074323502255826675672106403490176945107919069893474496276177737196478730169299980794054098120928331377299919625638213494073556450453574581634597161273758980683900551353939085331069480812696931682583009377272560186951930684235980383121711840215406766364255818805318662993412221398427851490700788528840394628733232109219625130134903942736495500729394906907557028405247992279390239017642240324051639692004523681181140237379321254156067114475357397056589553873123534439396277911179501962298947291065113216436125034052082122809099203296812093560216463276865850771128548331354624454657334196672324790740114288379988977800633766480131148056703256876504015729102609474021941028838164778087628835585967001802691823291003984418933450276323861305335478822008983890402265151998080525481747341123263137457935727545043824036205939659524508155245257048324511560389557117466052167779967162827853248914110643171708013121313771460769715600872012462241848760082913989601324710374577723794090454078123775592995912361161197089748508511342902252897897779929463102574108544309370135719977445445656455010683084882640783457494405097052698244775553887676017543517962548839394741157647593915611940872758120912588908294287932668818689210814662966406205198265586938397955245345796968082161710592218892893479704841236876518271082465589390538738950710081251707067142362643076031492400500764307083743723953639389986079341676797040714755032515378048616482326077296077628623531295588367781631805370382992281811678614512854596949787719909534226986331992367047833421545673601031446661065833936261569861580256477236991910228009502231022678351424084094295432404383023344355383333163001374768748648459436411850331575125559878213155717742053581698171847178955874989773583437497676837892254485984238792397819340359108275066881841638070644294204726987027207421501467181992853542230435071007867176361345991808368085504489968269604182661119858918530901944619491857865039106340871666896406823703271556307355571106017553279003682876378261526139866190859584310979309914088043413982080999141312292369244174915246396340362229029524379557246947856394327258556835535938510163367284379464828165211798056084863660771749278998276127525145351792184808879527384254753765107178999402567713494806216244745269329429205402794993940677538095236912701578254101732194433636969597632463130830575358292518751117459278650541152819278783196099398507468134013836560811397495880493062010576451568058723582517450130754466447825370765629957972626773695721575161442013736085825874298982228823273081383810265999497952018272130206146369220881624063171699526682689077596196466786040193384964243517036783923588472225827674621201312213526428169883506794848246038008202507596942370188603477647487603343050054816021251077336876427554775070474461167325739788120181363929713789316354013136557782409846309884204044422499799315765417384540861063872225183012357506681674400813582205873575635181904320362227881792260161630595998393003763371432179664913240342639545234039473246091033920146059909996273748314549724311532139186977429241356176335711445388479191457522441509744377985012999386282581394179685434684312801841387947699566230199881726248839883142516391456014394752647617204222323006734366780952621512328037154902835554742279755431408887009497248720684728001217094202205498224058844788946776101106454003700752102956110203900639266829919227552877309225404746659929145932429219468292634585170619058175204975623671411374416631239092400832446356883808470864421671053579372937122828792031282553424066816953654357894354123507518272469863549802883032008926240093503612905398985974627623627933631937937392273940867569159470577758422362724825331867374180969920652757388680396647581028065789396808109421977253049511386061708087163932578261883097812696534494146607023345398179461547713808080362152641799416768223652436012929978588580707280179636415792761929252375941230965874129902933278418402663703651710738720181028789380850897571002951228425100385286838192319272783739146372993216449033098844661620876292835673207029150761589770486303366654241587727513926049801899043189519350059930872175853433681460926471373104534533486381060173614555124018559420349951923105203832471237994224353712135724195274995267386656215117828630521754360430425521061748657833633374689957984365667335522625751642822995250184012270328921636141079229331622965055552404182337993381722582201796723056037501786663921533620851264378914535635622899094711351022922794331084633207874438122917278809834577815415782485365534222921058238899239853964786049745943366475714827263327844080025439137418952008978185425170047193001942835767028977144366773493518075698157595921335252808748425442857949221430645529988313584471296899740927755916740012919880801009175502909007362110044321004056151080986621274803158376009218460645161479918134883596504462820951217779225611675742092462049919592009327072463239678997718707241336867055779604903463036741306642620986420728519241708918076993304164223904012133580852451760345244083540058692029155331434683189939440587590220211119929561237718518358888526168092132001492811912125091809878076927128591345690610566622623744468455436992300833521426118527535900702618270975184474940416172715905201734142979335501033105666399391855122954611894511315184500009162810436788754814158805001389443540973937882376114457139690905860662662845906644274953184036238143624605950793829579769978552862376518693025393779006362923875729118691549576570554802277327964033008111542970711219781564087709187736398427960104798964244463030270108013981793160209434840495250056486871753713945264787426991838963376096337421821347781336093343474263710922527546148881929843435374804303679006761737522968502005801438823411222184362256443765078966553289460885749261075346242279379053731611108038418144480242978098657987048582411365975865993764199828582637792209694189522334031965082073093624486275108160365063620915965841486793995828154102786815205084733728313345028044099713622913102409333615446693910775939869294065633072669102303889042106853200754954683129879349950178362190542604987593737309561372652728735931692719397425297400819169404883278938113953279228705365022890425484406078428672996349926417587097241406077798037901089690739325557343139373605514367487047968910109790727232150227367792130132568966016756198751167142260951234147776178339403761931367852123695651799548386433161989092044878593995398238085528326965633342320657011345298000400775329565044519853042047320767646899712363610232779167830205025814590601736432764353388907023397875074536688300376891981551791549635796478616386278347110386711560253331885260212039503770454954059307502892259887286215182425732807445266887252716021230779820604523091888614749594903239413792713939050013581582452780366429867124243730456219415725650584574437565976316201760613264863848407287316873345023867902345572153369059170901769987818956336225824535009041866636403798084856019417881617401449480389695514711092089635699589196114688186445984008507483104984548735696987060479887899025634469995641909994492917946183148793092652052989746613640375059933792427492376202552144247375868400314392413747295857885337659840301517127067111747333317583557566685306675777975897624109311361291527819638653092011408119272952486559268863474040043624328562030476206140157463535991312815305333027013437968118051906760341553476654074338034228137838594434196920581108835607949647374443938941822508854457358395649232288359848941597793229420952090913262833406155957714606636081477145985626870007310353240039555999692578110670214416633002817230874268740280186679688092243144527854014413000397782033667890951880488194151477488756188332359057957979313278079954336635907994326626609244791910709569356924769559532962882186322136645334038479453909931720603252971405414444029605959064200982118099043906070999600789028356447613737946080995280601658755557172569874100201123085592595315699826829763465084692421544700731449247660531563326491982338288081191257361718910492006664510193725102035313786677462604428642883099891777867886430762911788184879989366995048984550024536673786555212479665498229360478500628102918572734579678163748304140022497273209231427334632029805260192336732983106393919132101575447720014736967547276599625256719285727079778805635028118424506266303936049632380972569184695815730152612953076674129802920817906265302821596081527800165356617972821961330798818903539836239976658585775564519303204252129219542694228534088237204982453371696446778005160956047321420313683679587486963250751562284435438682305400624188743277785611141309141641064650117180379024993841701128147914383527486976161065417572368459380124179294101692613452422600239453868898060897164843509914185940484768579152177960986165134191681368548164329337552663393724100021037406242893547429176536215727253028890230434472650050876821923513445384317764937815066725080621818290014844306182912468747136937222863531694940095143601026548479979923419998507883868305428871496262107691173194614564913899858263184995587647562508632319715071607531453045310442649690625634133554922439655977557843978599094925832034651694646425392924247838491975918671812977016125093351911423546076391187095841107421771605936120789296179810778630307117729147221181624089697363486103112647862694100525484858606100341019905017154400700810771302525939744187211011538849867170947013137881378039025290562955588231766593848728535246189757112353717917433193508979827792100586591147706194332828170839104574248347041745479493795959667008962354358026136173891368595014183464817080733957299051527653025292554441560066902252714245938542864687880451237743884891087282057033258441486369013603136381707038057273931558046562231719980384496593967618341907624126159008604501795932808549104826150112675090473685700133829121848725270123576438401917083646449690182675436847942485861312333443054671138240785843412247471810075919815327080839462110187759343853530147827145234434462657132907975844337112782343400044117819708912010463731282710864449215346532407139243543539527436450590686319631329984010299664850366361456820407897329234943119054743583473409575289819781778560379931779632179586868169629045036883914998681677634139059445802234364684092532702230779592668976822409459248159648468818493436481205612899682998426484328781025799460073506469634690959052948693285737136505924098774291078990969643093176943271049356388770418635986697654840550944934247531214610768647839914504486860084068505639817746078045622765696750939500304387703558549858196750505246226941924373220394739047801474406950285273213954487014454393939050489550483651312381690465389113472628739809560967030247594128346991059424961425878464985844398815321599469577044332455420221658853745354762011689715360642385953289392134716650332269045507999702888052799559030062756845669651852125020994594465295715373173664348178028626826782352249787361183287130560833961914019680403211491097254598653246110287264822126526009379150891712944445815394866259838177204182211308218842992977839589002258167992094825612020494123211041263369747037575446370758261633910563709622441825249078956736819376625559280383302005353414644837168982843123356510492626135246776166493202688049772019314747473482495695414907320647333351151043546111573621806100160128625647431583291161842153936578564282857928482818593606628035019217362084841248280571301819746984324913579083363840629353923575667971268016450663952706144119473262092344553711082761213578827654988944935053359284786904014961933567789411908032493083807886311359159371206171688185660902535694252211359244990638932681603449308680471000426277059224937305781811795574093034927176516469655849239658754832957683416898913297341401031201510158408788661355363847589337828567264315194892884888921258277758334588465028875208242938993665698779461982112820644830456473178063099711188707921373033643831904930672396995640173861824757362294353893164331597244232980160752528936863959813515030729551170452039626541735468087458678721334857931479985959670564663262215747711856940348186937971500189867694054004449784681602167484477939116839709586884459837601073508917285392781764339528018745662366033100009814997342834109777755777131442542015684487955087538449547517883660665584144211062396739439560239765132701106767559851224304405391425560706401570101358970595384091189460573034322982718574206140891879739956668199144329970308943372693986819548116733892700459457749989171583045588192751314260752698566133219453246986869911719966874857198218739326341661498318231095828767437063382381582425126710916981038136824195765179650939404448596834453233705770348839180108910022256932945279617789544248972537978119161799601336103880796777287415480716231519267272872343180034165735658105073221386519834729473306242085577612818716983771725192315190978003616046695049827331201541327093479641087585907856474802725829370142339081076194613180649065728484067848338408319130528023423470230333235742945102992281622498056338893388240039570554359239418192012573010254785999149243335636018956515783889797154521156090438072061197210309929934837091521360212248473457362055349747852260452786919983859593324007054538381257215723579179312698087558882230041457934550482792858555927666420816161086182578303882497915592947754998957422420214631950398404350403619224794173575234596159647098497634460317816030143051752765515496367109237084788485531132636181910076433870758481164927426783750449264090573023677400283319821344924216999793908031353891862044831893066823900717937907558022516653870630908926802606948496420147827830856134455172763680319638192363816569346194606842865540034169343557320116555401798788246392900538754173401240347792369936034484189178821744059644541443527920111530303596142641135974896866809568839943821369814316968393803085508759903004066152924875887701069580247017710827048381951103051702828194099273434202562550399332323313070364709301986395958834832853974492465383460112157638646640194129111364235706348509570579973606844710656603812067489545030254169145239677976925265468963166950843440628056190980188923010764709624972349171178846256688315938787180764126426064429406778258153085304467509225108957254656754901346417274541526226664574425151972451901816075167171625342058901076192128269845030920305852085143509085802128577151353087830683578841892567965644754121496390151371242932816913747432902271666794898632451516284921834124758708376940855464323708199492445499445719082808859360616458445981820429817697060460330822459453306731202620734494228287981588234204384889573834985461279938054215243780507415455728000051652806337187027249267054235546684103560265888357797399237660775832430154449173489329685094497325229033701944588818446191423657200780823667340645879618020966310577810024404508101725990011305851913920915515472543270578905123457593083729382728622439940352733330105446937226009256549619498615274950412628668150978133443624423192158781469905875160416307099934569707708353213803071538849588229581887597296021618331132258386936290262824715859549916900815746200083431493076787039366011077095639942903687773771670169781827734951543543892032338970077162248315005328547737597520302465899817324351545274859780802455201993480030953651280144112323252320929265159360502995985350992911515352271485230350753854144232105045056915957134083218856323060523710100752760542055191453951893475924503189379117665792417252392248548991268257023938763196022543556514877970619648697690664065362058766411822560463348174328367183011239868413008255777771008637143425893542660340168633506552818804455602702750011252983297871824741883994451183593647452716648194109655213307030155786643358681299483768706978635002598220477707629080424108760879260510979689291853514649572820226545220326471662296512796944955281376618413995251877228373946900841961875317536366650128394644145799791310785952601841390557075320509413014439330969357138935599042881573398511103134841308787451238169750183970012518791399424787780072866142808602288662047694112125104670734263461015597923681847212266540064520226778022193701060065122702951545524165785311097842643542275803199604394926583607851839547821833550577513153918943775396060427111557768998054615164315269139957549359759000365894895888246480076460902850792684933278357779158778434857198585406508311031697330917641964373682960511124571525981352609341655120608613609240846623287930842982516457859219644030686278657131416158077010136515984329479140147202654100986809129450316469772453588052518037349615159830701557249229378859739650186681787580558390626039028134772976364829611269997956703492019285210315200395341919905958540320960715425199539956867059202121306299138620203039236989821776726253133796649060753682849637075538758182692515926496283473146888566474981208213043097450518127047023894787673381228976012354429114083478236350530633404815934093223937436007174686344978278849586353952448999338192426425875315890435994164045022910887379638094635026544246611289621356468398360914617025976250666876357971672038339961645106450015672128866129318923990841761066906011330098565761713829032459480616566271199247491044805091844778657101567796184158219827792157991169758077590499707224237026410621670084994528942151590804870999869418820628896559814519628003526959345060025195886771106446613700914725043582554032009679577785217517846742268489805081361486771632893587652125832907454618456540977304625117833496061056496553202238434478762365517701735161605877467080044309741233314044114569575375039475364917497351211960950362718626281445104355510827443418867258511375518880383838030661343983814416407094840894594560227015327646795089866557703028790642976506517763608944351129064830352278480670796745451528880027000518288138226793369086681040919662026625627768699496433590320058929969324654992786053882702436616677329902303705043876341164665118058356290844054973936010525408207543400373384365398607215264965646282056170516071298938508410606318375472681326696130242846218854012396679785665639100101366190017480610541894726339078753545012088263040641569673946306529552697119360019199358781185005800759344591698713474733046043318356358738984153872965377311674115619922927014688798872928124257878709527061888540350079954077817038507126848492772530199996083631648579650924081854064072533079272937115942194765594594076530965675771647830255674367761111336122529386560396863774670720737881217280533317057448721151187578801741231764652112407106615815888881956551054976120740468530245465758188669377663217834991423481345132442981978919280065693007653067998482147540956069722219398713780363832474395975545090286841619245225720303412778564636891733988580005006286803631407658357415494388934126947000268290272377520236497800297357870058166919280945921522975616936759398974703136053855489189494784445727676643085785491935370424983067856846880470360511021175510135848550777637884110507422510755513236618146729766834546709835378335239313749384005201912774502191014622558885131317501995222187428401938056694490471645197856656697331872325964356542562851867832249534034616092085651029530945642626768640567363190417078699522823875732563994430989896809664281232089881481637851002451728202545408601778946041254765078638043659528377100970139122207137775476548498661956481116076855997769164810097538547503098269860103365863190483620393940576893802917729890631807827444124493368679170275237538445873080395768585946032899044186725963913511701733182693816047674634434747004109228340448138230914124203380403838610751464553768541575155751137046757304315160888491593702977069024483250121565235807558797610440620639816079545314395767874760065489823742329499772193334706110553090100448629383994140354229795171652126613141741159011298049856835187665628748785331335443441820342653569716432242540476518922735946252481705452435525715681618503240035334889779116595740240771175471211489057352262139236831405888877925095363946374564495204435742684467144849749619028020800603250846811242131427687241875509312036035754556675172285366155476202223584655592502243141612405926622286402376881106894514353200895472327331232161553759995062792151024185855297261425151471278236099854758770623611033444741878306636186134440074811900255382738224899282935616039538373208519667397933425121649527484087673443590129285465846998528961812086590088880693496777997174832264725528773935518698303881424647902718195150356397362376403534855913552317996838086115094452259433226380765664799428900094271857421776367535657978402021446790200824931278818392150389112974081603303947236957209768083148115176650250582657140491812734603884324627732083132152960527050308863577866644272365944903132867338434231048554345535718338840483453352081519854955724951071015834787259200425501403482633557107707813196220194147895762669382334952888588452037139868328993043614403789502268327258415259369761078131847531882366149823393196027546682451454356169339197320178130499763106614390570109169103191565556676432355028090362688124995153232378152725190036041352607881118146729612533160548123146048126714621490556898786552739870904452439042544466979923934147770479718120162321977115048008974718127452104647831477792565207317429157698910093761645366688598963140571961616338798623748329001211539599294790897980141518542303776741098320505593683810198751293953905159297269296033154367749054222058942759633368211108891543800380084265019355508387218176869356328707842938179413891185187643319716296114805608668412965089293774026602714599385761971152098089785417346075845640178468270265067042376074926660864733128434871301094493128569436958189520864755064653878782010536034581426749658962562461988963234310746948855436362626667241502836955608764997334742937126121909582269303062614133878174221809638857953043612409196807167956363550762674139624745615326973785909269353207410798652638719535538001911477495828759618678786881264808652349070238558347713120721550885175865714217471931517485931404091425037261181502166758415769793720753434457766518569507575211762004145263572706894223170303372916806769416239764514684520694715752899595346313327764324561836198668565397495816717568057811112570767118449315705995860965678289234500442622327090772693832860484310592224391463712636016086871981734563380412526972698675176058416220842451310143198376934220210266346000338589091683106873694651704261968274704028396658147821207035437926191836360492134091615840692606764783512694558171354417603840330512662955222435010827251575954046259538044857645361285550278262972959890066277916256315491260717248223509877847029511118328577062029242191957112060439996120654421433247349905607786214670003855228904103359780238831790050148581623081874069849120372108241330534848389374612954003589219915422660239365237006812195409844339836329950491648656625172251528613580329457213096593152669160236456221967661490544203654171991146608967968719725180925018873774954987598473538998091642332786648722615168792272919901203814962720001783101470994032141896968826993234036328803448808653243694412708491360836586980687063879704570913632811574097284181060166306347118238528807939155279174086933040278814262168342285881900884391041578490887017847015866958830296573632915089354963036365728053829595326899734054891650697741411447569945161653702029113364485209327454571553883392066390197462191320779928513329016146733398204945776267936799624959477875268416127007862622790881489291931731465553596994610265005472347675093287745733425152774540257022982561543416055645047729001660143065161087823724864825807502255775633927407345543709729250497187538823952067278503299424508462302516644239638869380357808838917549635835641383171856209444019233561794762020940116407533304366033344700910113528640414440904444679347810273619581178765582722263424209068948941669524953272518453685630596503897241454311165876882725850383295475184800226475898041316425408763078213517965689342043874699968249523438959886806597881699161357621009564372742553954888431793662506126231539918297827507219783973470929287601944332166691473029606647566585080694876959791172815143004330929498756512243824759177758518050488609184390323750034563888030745043044581346222743263644638716677630125073912096259143142496181221631138132964111311883062527435870769597568798343980863164651746510497420197367998078587055903139928807312807542637397254477301116917291471498365136191901231789846543955016545071371525589197582427828289002041856034220886441492504473090561478268774094543067620305259576788273155654289268373652550967145482891125624125047801655042640576040989178497301199952740077232385707418744051662755723574574881442344300087108484876759392181183105995948025848217076287237736114272030953398949586050407628044066519261270942878342515543837137614490371105496022649863777200323364305158069475154554890140766723229149416231491392115215662762323411703783434684382360421049582343303611140901460148886041115529326422210514214894679487910395902175192677140964706798245785783540308892713257716874596693494886695124233425546952892012793537508397113873872007885232273068250302475025471169358800696671678976821569025241711338601876485565076173205621682013072816447169760494479339757503216482154861704478853381106658894661994683766687444741342516610743687976982164090024629461299662936833429556546270797797073896489477980214704319118394846338782758875940011231663467417194626106778677596562343409813055188694870626182776051799057673710719576324184636606495424470615165324928163724051209139783675834854571923396597686120180605538284571873321437851411622650427124408224616352187755041198185199989699818362755260485327185840394258235982861760910168459055281457141261487279641718158580212247122617218591853662331608373810553346893088624994404436845268178777889056983920229024021533888147551508058164234884583447510645635653161745909189800929106844208353240137230584319389432656113986973045675071434761111256624225125450293003931416011866029873521826205008927657738839311052831064641227739955904098515124330329031247227727517684502004719909046825340462053612783579890057536567821787429588359656903526667843547446192465861128438019516960740170596797599539256992652386271076081064766312439884445432840035006604196957391101140478439588581385335872233736433506744174639038874256383065916578146648039022245108125604283766534722634094958491986552267967357181165808700140212661596957215857675203101412789608640050979456649870989418119026165336255774139371073109634969799557270197302523651158242607210867035684684646348903150151620116825482786568744102774403670097480482438573174534746894616548866926438380922387236363973967054039106963300195229044900024861510047271714488095904433796234100432728410810084896057652873738448174034485406178037379180863544120860961701420383288956600211780082336552245782399918759970545733424355047903066398379743165153599157797185291125600153063291564856200074295690292258524297536834641265993821870081536498021493641506816609076912747363246230559168813286178776255005149017098197252655587573604389108703480583803333082656236277808953031760042819617151235571666960971885757491925733809114458286508652382870832163845356137767106867579382912820363394696620977801735337672199651027925410216586503021688228616983497462601981633472211707549921872990330001043070841091406197216886819494092431963955066147879639143257237321440471338855557815979737009736829252203558802633432980158290004566416210802996890310635324298014698957171587590036477674437324491664470967536901705999322324413820502732790764597019321052449871673181046837126219310846696075606504430686315450784275447811107782308988964870006972335540757418333027736873514126190475478904172063646646897583917725689157579691203017019893358915970306796026935279141784458287709645464967300130018599408217496300706735230174319045792945822688792245415548060654730438923880089564427066530651043760454503244404248386418757473563295475003710024240712405807626631824776130234413587358669334636036042504285592986257109469816822562049977097495272190762843819564118335515965485593707761666001124621955551204129118804767373957399558036119892390101966213764726320245961671523127835057634060126051629333712075333951723931764813607527786597486789828131802394945933961679466073476092998674273974431981270186965974635242620540285969662026153610024368286352978292849815575176277624870919319896048512319572735967887310313549774870289642138808684668621796553110508614158922440716146556464896164044391634639652243058472690364034916789309542398536618888665619693369351690896361407172710992644178204844300072286337268773255273694735901409334445932519329476641172187185852702295504988803723997123853977389795086212284158897367997417034528622131336491124335842144063208622010680261190965999215506572979525231290915870750290977937790754435311963946609978246848730515675417446209121043972428368861675981795597808420139131978030206013153651474331916403053894675884178188466180687186444411773041913777793402444239541220656677681418765542325256046829049678379418923233035772352564310173312729189597581651897619080286687068990573834709268986081115630545220378728583782735242447569356297079793003724144281029513475146410919879249114051250024305219068860588672525034392869866800672523336177599557970964200875366824830615422297084430151285428078401637101110720449463215128560043997972653084412397560325852572605645331862927728038987019982959867699592075447279243033675253915869647314342916866587306906460047396302523085907707566064454759539912100558904848017449472760736405108692357740488122462807499533275295747521334969476184277899923216215188503289193312641354266392719611317139189630332831243784926423928959763537651212331558038738611661412459260588754476051890771171675563889363512341370308263592228935812107839383690608704737195929879601974395995152706557308854117031420215425292353320760400910633894437764210022911213114592220282595048721451527720744353965206067905918650994109011612913547012850652411312308538770484073934665144430062317231822642586081546927502638050032527437914723630719685747794751458898847001897565873501606274422374108287785125463902992001766420574731315529577577340502514585079980533020193086875605436050193317350086455588834600035188017244629221306684497181957741952488672055210753625484919812099830554008347682032034624605608273898119640135026514945191871416800385477594280707438710944042023631336873809046630032223889211966112613486491835529277870870357391007161023662600337397590416983574561036392504364596741203852278079216127692739901487171882245063724761442870055809838258391258493421368570183824064107888891445039025609684188032844752412379234991284653724161437555852361024476650584052867340666257944757195441249104483124031454628112297036849174315081763978947283851114244594131065946333805372788017560003572944543577361734728086063687016535559961443330144955693752635328521134947942263880486412905837225588717198663308080961062543922571938671540406545564983482275520199520425130672837323636924114604475895506796911408074884523137343285852054311709285322774672223437217152361580733935660132774543342756306179061925655242764565627840270741921863090218736156914014014262395078957907575314093913092199138063598300125779066185450123767637725932738548614526362877370490514937036078956891988205893339857232028882080557263663022372772305277581131343806376718595173313180445345854424135454179296106913574459322329854866654846317250536789032105603826109300158956857853321717287721938387307529165713593949184309810409444981065621669473787812826984643708704338838686190864499880786490089650996610668184224454563436009559137993076729358788352767477631511172228606957715362664996983038888671223100867314934388534502732430979153573148995114983214409657956080152316207991792514230387543217790035109127133833961513941949729740045251844787876546683811636616429725479611744998261022253294881963572962181402148284235853091327421978849681440261796898200178784920360828354816080322686893495954665031791368726877111541721216522705075142473167712037945515354826882462532654340354574189052391348905571429567370292647230958415219552710502006961309918086100869469854325694016061254444058214700111278646127295595859455588970479477200575907511258220657985063390797113290663151890399700162627489850719149526077775232936626934771269700519579003013678216042961549185119464493099143997878901501686614740000065004779704891067758499147757736477634045772504006889499141363496890214474760435314506297946923225856616479150724942187872086474846147848032739276554046175222216309488861925591487475957534013306367815866888062115963463813424549322614992488505278571050274558574871090788334640666430821114864357777924063419414317016423342104871598622877587463076049566811907942860571434672822223642087497975465269363595295997546138972626922047402708900505222554556747536177740522748724787321042440793328658721938220047947444150164280303116442879073953593170830393776067731479692215041244912805702114742009970394194852723384020137067199184872946050343821829961348497819894517070941850806277642961753053543625141189850919989480699546185165469719124650853098570666568464821775383560646684402499400257152896836381454078517166188631861288883693350514299789596389766723740694127600015011770155093249066283518196777319200136401895130432858510466580617307181737294791986411968665298583914166225656392444777000894357801740055500604516922828189266045437323900401831776212889197600674061641906504568809679027121168418510762215730114613032477010797741432804719764571518153468030358543159753210753441532936800348488175703902731443966117277686795724729727832159086012619740309265390301531895768309357322398362194088639409754553613617722216243134630014358424590141060598437644686895978893234223385729827816264426826327512171725134865614963220765015465382262528083036892638512818842567499297235367674084283877051879770908345733651866622038919438106012094549089015572039757217376316345357192794544652175433449839667378406999737901132536659408094362134411597841635703759329537966448674531944035584323702446975426500983555903494346028345780268042218047229840606600801696102045633038078163210416212989540851173227717843060992827479729562644578595921415560726918806421532161908521537984287569570166188502359132513475207846400046215516516862970538336823265919146950545730346110015203181477094569700699598473422776568456707019297462755399637060824580909343699420351310816373332340034686321651812686555802325184953803147853134364330501683467107485561743827895946285576097627563909477959621621554304876593234504720687325232621157792731356316121296632533972193297400897092286834850558903967312346154203603765082681362478318662920793562903408396922149642265976615507042385976905148600807917435059904175663135227460714700386416290730524134405224173013998197189119587945313534930057262012392182347641251295101977561511727494552390551138164858565089966482956461657472498502324087051280782527946701637422860118404585934562191773417906495941625780160972272480122803015423518952950768313366922611589777341799634374548722082641283843458830509129178057630193779344882078661861400380589747890064569949404391241538721439162283253302343332219457231845773346205063222495241454888758610656723262722154588139520319494420431385516304630870738826327951328585434975978992042915048675840602414271317296779601703766258526674899385152969378797499369718599748751853147688956275353441855669137641445458858413705171560214210435975265863455532723288682681763145013598470305049577686867193606627960574221445568067617731138059830446372501587588785275574642943013184407800924353310094613524609279249062211938222616925629038381637397833464856759143762517222623553230854248571181177363413833671779846937119031188880190678566967224837481067397569422462607670218024564075890944478350650133672426135018503119445174917664223229545333476493871169072768792284189191945624931592391650854874984713001102052793208310782045025561711706518990044093152595681080281517004823347419019585126552832311306688796070138181868714809494650387706282052778914789608427540931279852612301167419032173731019074529022140675417960474269824207834637686563004601344961293509091452361772944178045069181661421448899837749043237531260450658964763730237350006642209257989266455837648120652979238817003369322792428361293238906762264351238402963127297092490667933659399405939314427544571612226890149185724942638047694616147075614226918515734706305161503339704362997428792602112002256115012661202643655224763567369745151676703288437564990061206154691690343901916262777210864348407698319461355673294128548015665107279647307988800801945294307794903161995678681871786479021415511401744443444124195033513143375660675738230530416846837472547212668507327706726301299089672720892845400207271382924890149097876023323974024069888491340256170240875949736342949122314818312579945533956126786562409289410713872184253654137169202642166721146568020030689586741619954005545084564005971495597308126888442412629832246396414332630260125211650467197241616314316263554274248622474243601793999686172158302911366305030349117769232559047220513588008749786006098731996802767535704197471677516523003996219647026856738334138948611313009089787585710642698809256347977658664874191703314547981875062135000482359770208074720366049868541964107692516562041667856524881863665887986382091759878050098457924667172642350701485092788306976114358011279538661140725103936751853704975626924350138284647969151011424493595699014351455913591450939316488931746323058321256307627594662718290963169825146237216564785797154063043341421228525603363425877930086664504748669598461895666638348148073846010153124145358344459602115332003743639246972281656702912635439158087621486061464283987622939320809270748635558851878574752061701042520273290085456346449819279358194365321510118765989100530671447689296307919606598939340151766245074844442611283403906922984825385158819230619742143642044360318109004777379635182743200824604655334075542074874022194794369406859840742391832310472897001691276513391822195116907630008446226796011770797888557759053549351567165202001993895241056419535478696742384181484202593847624043954812697401297287553613954177251408339973884042177284994656125164906183398005694838751472338156269763203966180422130894803103413445345431538947535463109529581053251366517866998566610625727403236071398888099151031034682144780880445489045014955538873346468283806476053783024033182677343095207789086973804557722205218921997842056914015068245316347175862561565016070743662221784849494488949472916311859526113258840680856601148236862339130309379697190951405387377555503934451664679665155546007648862026526192136721390645401012674133335495417570755201320090386895048506760188966306763253342489274828724763057567663133522996111273984631476206505764719456787728782799536179681264781067722729225451882815812898604985584050104568370923363456716973278288319841513847904978250313793191152844549169712613947075475525596817109511105734161591288663549833675641519281207779268588007577324146092104021524404033233193371060683165518281590384984099625294865098149827634249744938963623078107910493729248860130860517119389538152460996642219924844446179052968531400241540414039601536973237733349982359511979407322527768240414831752157400940940156048999192462604125092929056400409286056898511782614322684299264522681290030666842980632655203314387633473129485968077089224396745459177385991538130911141452933507895644914941657683012075919932231349485507845810056320480409539386768782200538797636235304152931091760142132922040119092104384384684979625322234319910589697088525840673030610612464986462536805220455695619555949485298412292269666976537155383076853328595111694084027180330270049164184467158315039802294085651286129385230807824710109811610916212047161131409178908600452594416358187726426551440066898384279258051305537664290090721999954481847728119331823279888277944215138713044519441912001386888199585662663916653389621975900132466159962208876768986599290084443425213018865172206173536460359149257752976870636631456964925783290028698869180904309724832070252029803465784681890484010898820323847996753376577612300713301207882448628263871450986429389471196514644196948156770772634877469962465467088561701809904022620105004660552714054608296821906144042992897483092289404242837075192380642641593200313596139731910127885736946777782396622397625672029621137140714871477863202235063766243268956723052220510271482493286609559060704505737842695440898421974713514814507449919662315179852554655085403989901819210564417815032902147856711022528304461336798978572597195809231888117461352096767532313295193010318113868765826426211787465582772499123548772195409509283899172503138819622457902623711374572114629404655260962581568333827782127511094322910754003347821821798326909761263488484054048765308732414405399895213888581731290138483405466546545111082968669375271364108021362925002036309839459223011374537304567057454197510421884621296594488379393650804459542863658625749523834018064942504571973089884746156254569521646360627802269982074361235698108573215950816465729510876643277241031171309221881010629285680708956462044450616740624552156373631541578714794611564523062903558651457919028071510529085302623579065379759584606485150642630520531002239781226422302336129806410759468593160893455618712345411979102053034194351587472974353135085543238743410308219445568941044456435262113071101024565343530610415954506452096149336511827770485683586682490737066890534481931766854114928270174485148869645993247111238009304606608637365400137715855292619881015855686911480659693834880646767129380467608248528217204803353993272065488082250390370951116123403070854366857814661611867573730160744576446952840421552870299305739642504239578944897165393508891372652697700940789791072275764763141251540459381961485527113988696957681086956451925707602032705823638147025861229032098510319778980832136181488814981051741518145323704358926648288580091005079637010776801186547521476724587084408300818791317111442847455603537752211247445437967696086333554920689677919432210306541260959629509100715833623861069131634163503883666496715368770112709963988558239386962809768776468366320695472094862985443957837728494055898530260360178326593344160302355392571183948663070544321556363233479524693722432183947706219014747851906751500208016739649987131272438371010714371435346511421759714538947520670725818387322856336520727827934312122117282326827797560066401121742911772192293630902748097161098059196224393577569725969046007694313155407533770502656720262123741022209513382764761030275585330642569040762628003810819882179864997563601482839934891388280436842603105849571605680998456576543883026091638831363388446704131138663390457019533887809118690073576433711544528178160376835134962598377288068427145980987052326697001353350672009828256872273382605832498547743370594947500575868004910203610805811602634125465926432368692290964280491310736643281167817389204922068274949691167756245547598086554992560370970867089543351522741971931660910524003036019844543269174923712259802090942368821375298177837097480507929296696600782244373989984966068794253751172058649917257567336057003552090350485836348992692366568039837113992558927225519069899622945138515445498347265818513562341546193737196973647434084579504378538678635024355102743974758240614459719883772206473465594650081434507721340159498399132069069816349380848004183971112509673845562012940591709629469954920703336417528674165120704463240531025278337258055061685321264337601413063630035132862256796734096270489989379957649873524552356146099457717702923310246995441635506775314042042386609719573363848126854094343330422795276795675182428321771449369493519860266339628417127043227149946071216670759532250224267441223688827580746139187985020912810932054603151943529520064730809171110791280114455724472424610571237174673684720985686010405786275531807748600787954551060306377551109053106335185106712324296694571443773875339940697961766397142845521127876444514855222415177672171486336241512776241728994038782231498159432051147153296930423535701688881415809522393618937488284399249903751637589752291344142646175738971772628641550541176381879860336598558011571556933337062685834183447930688098495757482550553152842216737856880684497421153531013698294137815672300313920623713832729304921893494105634490052935880195221340369351884521173180097251978342051169885009352470683740017140230796739789270788026036928381846844134489027820896942308951653440204810228529502364142965466614892220317736854674931819723092158561516024121580203647318356964963686289854894146846549098745457270660765164644227147434225249592943616383117009754140828292955179621994387520897759588341914332318255087094708303778067383010685576687096936003818310918286605139495099232868124214410583419740619799234406671152905287467792045185599555416147349651851797633020806413633255896566478164713836320422163935398790614303740314939855611691465037184315961464392632299614203870422088574826554425017860055779226589669847736696329793983159962124748145608273291744042141323021961898642696465060193645654292319512792126835969032031516426816440529740853141293939368715852347087431700528541832239753707380955409952652105399268213094474366411322594400048318731899922670100040114094921252528293673060993308952247558127527675797745268261474676171008233380636847031437430412387922658087514773036395842553172858969494834411671793934612309312019115913806976040186109255867104906751894959438925111254933155505757950097495252970616080649188143631336936868240485171546296833026887683251046621092977792445568355304119171219129673973151605962912958684200242373972027694020988802678640993372319856539960833305005165443903802791128987059779366322572770344377072705619971070106883523837977865914802779294702582431156210696620723542229030384104492964638826285738055985591789395180243072884220069031840932391738973382297601432355942165539121841785528128864518418566932114247203102359435378545887789724878201346405906848150087810142499291553659754937789985083968693696905218810664833319652890648184457506141790326577711146324539798602512265754712851169884305283384206893782628657558192904550652249325623960107909726840855755478489439839368168717589142528166189878776883870339132059352802267329917017029077879417065224086252073421821267191642854498394795614222376722460474530658555523275613725271506550380507351063175340286739624431265333134377898045987537451353266456311020131243824523675182518208114745491924075538640124438610633174482544485219557520916233510023349083765640829170961858861300458408118599979211122692834052455586476454151523589961140164801973826892813447262474563181144508835537745914090077743109904526093411045782109793537354713108343311968242516773141184818575603560068033380816059760864271033555791463385310351107980915026660193665173565828024882750222161444788134891978794182346508534546839625774700793923076463075656544059628877375066684254789359263974584043788667906924832646561515890651417905332287314315800213775898507651857697754284851066273252141617005602069640995981328060703131320123042524033526606501817950099492882461802001335478074010547312869644659548309443261009410856113695850134544732507121691489486369695138577285905488949112364090436450664172980966465489692940379441523804750417219049700164242736780453960402095940536791321761287476343190672209624234082548106932196937974375974272045275267310303805166787670245650776652347346915044969480132161959400425490118418952871057220325485024300149157815681453270395787682148705286458694648864476536309266619476174629235202633481360862937845126064844440377700343011674328199270325180257014815159977685007733252060337831539227250589950505867089013566865984334751430778477066886571880032765855677209564495228664460449947986552125627917368941999439120554209354582246924803667175130329026113333220109904313819402534408000941613510899773848122124709149421609389346886478536436604171672950270774131453051977102833299274728166845920672554033856566365720184460467793821549852170771059960346150129181923119959042561335380513918635184958887212405039927159541510538928934479780167179326060077800706902737227529344618528704814115733927332738032310493826267773180634729518058814077450398285188824040536639307910683089352669139994364001090953111777140931078380041077831975397075609789982067735371045170231655474284559645015121933682821328001684527294941888629626713864676041777395935588545388241313874840119916210642252997829580008537978143723281184915964943233913238459609984664748162326117755441988228695373901524636814302646638321399832605627313905849018013789282998250309015721670277217423901656778297615200601382895207289335280497629305867613497087654109029376123288065528458099897834478816223372184913431458501393458150384556395681890650216445325847914625085086402640806834970173874572577026064181062912884890926281500388281151817004759214407042769789489941473411982062948279178160637791167538498218254487921782153973403350817087285048622544394733491177035450204492697553204417934974837337332659225501019466877368246153737401863994140627913779001909476842410640634565958757715956204105600681649864001353648990052887268407787200887961085389543647029774863534200856841950792499139494325544374415401641691955624320446739006094940290244345507288961895545819002351267688070449450470600567813910106160259024717182446497233880846361011249867599615998983226633185800402786230078145746976940847774474699827954266513488077053047458849260128892060461996344357657457887523093223551683130925512797671677515704670440928156766320347536814658427973010227156451741496989217221548788580645633004513581701515547405764929374898038933793225145457337694389926681605471742955226030187226939394500265699509535435984341546830910643275947040621613738755318801293188786993829663772924419833436763638976538208544776734487882820406824707002991500236037178713159525948430827683999303694391957449630607415921197167463166702168331224437684117688881343136337967572025744309590273969746741248494035264902486159433712860263586002759131440667606233965176299668331226103965862641424843288705859832769725672841418137500322716830661504980388184330616556166692071648678821899041093660151330971899662262797153082606348879308692021613141819362615196522200425554858057011888649836104594107002874133028678154972555452083962315591271147105814447633500760450199470071132953275935934915261521208823708123136038852192446949795687602827716766796277170276285393778991705977570182669885877290061808176499339289704176829876385099587186327665670852598845630644704635740605132271921193501099332550138977770948428494657249604564751658592896705211683444612545755624465307968758539173984562883038404182658967089582868879118026320750873509058774213748099350766347059765116286424930094017448947410157550395869535073631001188251022593662498815521981687685925459408908785099733110993439888179600240009594308396336211992980055935380844560953070866321271689557038988205737900072128493011194145517707139558120956612638402831986145155823410075355155741831564827626678939769054471299173520527218314839330416664761858518854150254620049757607982770814974125342980580604467258551814510543075439134138657940195763051117763000093136324226327804653157184349826351911696208671269402282989245770736742818776142440445393545161940662005918705446461818268009305938517093109052386105374231844456401710657670708148697871520527432642671112149466262673918675342155972008450706483520664930875299010361283852166872521467880340588816982659056834437972219017046285364079608803400550546112781142386575093826413658562759793430680064062375131614367957591894956253527198697638151562985447101035684756426265633160901299228081544600806635023580352869409150856315552446844501119834628487948380662841360007803610705811112304711298530421988765841503858188391583357293302654836147544958275633656355425537888710499325191713364691515819280937866303554362691133120496637031825803825631539121070300655193480040391166300786520384808915720382478191296384312407334836905781063252122367709016944034084389421994588711815695948799115729670043722379259407025563117403658353481353450529746049468402001087490868574030926100320571688923941736630678042435467306984163739394695711022497075048482797509532080346037402760795196304482141777262222320211039769371204263533137952420859740649606368854517149516679358841265204789107870419710574910269025497087708320843507847902735133931585446301346043408350318701868279373299239606166572012380188523688720773171860100304017190803290127910893539158343317477808152724821166673567242301791376723495846657457718168366284289653672681814196881477773080175219435299904080896894344704974630629937777287446289788703361255271682663675228396354993592179819031511757737956341446999566108825923253005392298603623022294672989540741009981202876614986964151608570432064977360073928950475528797939701611867570415545344575138202567029615408990244188048779922186375273331803206566513016404301732747375858360245027362094929445851938104835553714754036766421683190801344461952175855870271881857267899541851869692679826150179371711509855201892681528238728987603562066434436782206131427683659682771411309385802238587271106189959749600830416934963816141600083172433790972193690739314039598693271045353614932523695590219848691893080493767619722797702381058196773359483414349001522623941736061743565361486144067243854464431255920181107658020222278422743729612369279793010626579789362673404518895747692245396461281946414179676124643462859219594719782978361093963242117640121717856004267857328692655665993510542249991508269528396173001321179081377129251834776202308732109286256944713084966605588757332184763771845827587120283743682763124547185053583747252593978217442957488941945647635313074688403173424107387154070268297390875693196031232527898456093357248391269596412686495190067093841763697344555735753961435126975814216505853797966724741147927862044931416458791006264301853688630452182699268060924325985221302060175875367960230412600004715794930594327917723803892956251129113844389330650185107936653701590168524755838666999301788798185362109199885369293784145686025689852276878663129451180167424058479468247156630684810451980810191712959792409540911453359099542385590043578747610882435467933029666133016223453212296876212185869124960335892970566879877480437441368414010885500484917354932749525861174735972760815890962565264507606828466604919348154093075724882530133955158992230298871524668339001862623530524187473287248909098236524164085031965066755784149597207625793843362740233691870167994904099085214468888454483619177707472446084659428202419406773248717255599199144009068292328218073920005232922869980834550372631052689711959921285138764448799090389647478972600920846035222421417989015116571283887896839230484055145001411641719104539846447505046982241457160967159808710457133573146060980441283622391394331543033721038821116268749558622094353773478656897803019597861673632342652863349766112612737992188186436873838966851071691217863832183942472284774217971051122034847039781562074623966333595838729687084839652029814391578866799413746548424837134447594738331393444093668599495122530369605671148304830531602366474816989072930738997780194719517803109121558676109331403765851442233625699378125448055804679295251089851007149312241893954787114170892710736936395306335630678962929674551630931056548605475225232608443266402967201777652473663530686023252879832682399802436183737376137454301991503595376627463918055734282312383809704172210584133145199881751854253866934570525641765460510384263820486244884603349099528378250252471076583700331792738666875648333475920926193804539408181754195713846228360045880780898475161928819483835885020949039216422548287265564493370260471657563720958271393902748953371131657901277140342005552110408574069899937816677104442999136318048083012619862213801303746269544325254837525524160690210191594045120377182517324929189652543811954016236908913150688098706044482585774380364707621484698139329665104403539400211075780599454539745885709858077939018506535506617147855054993416045869979169547872508984935307526843230759174076297692977640991335298725490987267569097729925432009401672738279781227239380663905356206796061054084521598940800835608762300893374528713301485316484696655802147175301697966711428602199192565515441142054521413322382827731478127735360662337425630267620531067120303857248555030722136171176784514851036866194577101309264800305125087430729046155147827576593500751346861042828413962182822372054554977000988059746779128738126281604615131826052569948434126454697667739006886577043931341935335229356685575330948269320612532278212859087590905558256102078440879773136127487763992841435804753066772593295082612201571687322376333090849150165376184797452990462653669100017194258870420945910064603431572664716075281296182630775620444860896840912480634516768134755555171978572609560702844553131100104680878294017429225303024030609165130921490287954804460435521319592590484879675053486358348758750897441635326061110794842389329736104292081311991282116083133322137916172712707470579199081624182297618966998090528473223394581415038253259333914558615483626763708572706230712405454214931643278762593462277495027253707793443531456788388947570734792278108377519020034932713350069226161807039211420424931771557297892404128790552325405149247503255733461766709280104503011888545422714012719146264143876505398247727668849306192413242010355280231314568294529756531078870025485301965091010789883246302623232949092160812713473758903395099076031442902144687882630327024733243392017827143231001792056991842197247371069602832037475943953292790332522370904612863522846339900740990225400920203363233389281099086073519172950705299041605144188995177166479233131694232249214075808802458493924171248805137134083085486717148796574929772273156082961859681306012200043070760931053793831885358026306389692510230089414987348887382709271628821366108393103990375878218854648649778591394023837731179080078994277731891340936655122456297185947906511184930272790873468434003123214220292321566632271239533783553014776411161739686468523666269128589845531445518388043197652490160158040759349892441174365063397270024174554420284482749025548653551303920711952717402640570045897547632075264329446494700042749994557150973799462614658019658573182860332376471068241242820138954264512761213081704256911400115603969119090314364879352625400447421131742832346258507528056267512796268848755846991043450153600226064176233180217113252048047484736964499687829967778854547028239138398433306982164295578442820910154775338780480676240236605175703498386742260563082212864871742898685574798441252862868600718279255140915264567567898077959857012980772069714596814334903800973832500141761716814883392953290342861945639891393202321340763059330491711633491015799899756736327872426446803464058039848718482187778043814735246085808505056624543753257164161944163317145192802423313042148201943352589496408352512997323836332960000397473106226525256464053783585083775398478151577710927217851980326693680929990927980185635902799313530878623956331491970188161878899219638272330885334566281727788872255931385814351688904590410304133045183848558050762674329614808412562059603243983643285780260407624611172110022888611069507840596711380552805447071046714601932376034920266515333901327064232410156004240193018743276799750709054314608989457275100100886713742617636246064716894605888255248614777582054534113958334758743314929511967789050839274899343684325528115616450325809549076507764054658689961380354399253459933421692815922243378706810973459171268645573284145900228286215109732110447454567619432278426569192246662239489897378476035339388307871893232763545198149796156599553467632396927542573022635989172883384188841569383681688854342179724768781867440008701740336612066019535690179133392166080919675532474097289190486115264133300739108817758333727335622174500186008566877837514762695158349391984923524460101056358766249393992372075517135990430802505408474073716809768776394057348530382984145092608582598925789232856467866789348304729513271463948233485786734826550002008051877445490289768606003688787334058460343360916743948743624678173014115367562506772396532027676910992216756846868206415460891379613932124577503451245169669885070344985766809994653863986028455163195584711003574113289833557625765219626593503161885938564155170345243107174648116691820471100209471653967217974526101857394903439618642283805348624939378024252337957657650453561245741715022591490962928505210055574178528744788664762881259694860762457666867284786183513907328705087833190255685315969821209234842110156424103241314757248127212471275955771439809354799373237127762726369970306712774764561715008905945507472317397767218845115897580007142845652551706232271389291722539580255537854994048281804133558273835236369261441419765083401886737446616804041323553582291048771059233435015786739263210075473855994310009594284666333104837008788823354391524275083180454000063323069491459931572977877929525643153464165367405505724566945042650358774436684496171519316396535393415836928427716993770950527656441043880685354909474005089493344982772329504148939738037092488494401378990360651969878231945055815363180608471672815118706307643666070857515727294445183278541256515715237207588364559261664784509479279517752286927868974101494857264857942387322985410732311321367769160963801766826930817618665337467450244873720659505485807812824554163198854335026811187679975985768083895741880751597657456844348693058586487233229956796351649861349038485955963180106687683500675507902095565748324412590500602357107478609345348582012150494924098973417261295922557651688917892075142433441895902964731731071995751697575155497975303938488551945416964823447242685864894210889298470479153389457066003327930375383965040354074313800464520573519685845538431220939832045996797338711772665056091426657169158929374059121434639228532873072746359176651178639978781547121571773892408650910596451806999922089934568093536614829314402812779928660550798082526050216977755150575083273949706409055432565839110407059418863806501088024376969907722480118916687778722266165106346931475717625764082283877337171493927508342265953038629752637738478411902629681481109762395271926731972855092121408686375459647464962414985018280965376150934602406587928594864226295513798890014287122935077822298625737207193268257951007674231440553120292154061493130645760105060116156039361472812773398509340423672351547900019369794017541761805229234601473819393016168855279474554751312854604275439906519525452224518881272379006841253863774892031014402664859996862872889589506615106599983826853278783380993742029673569779770708974984892320999565166530135604574583257535713974550039511485971936498361538593473982614747115577090700417363481491761483578598805144923633292052997519101146661727401320668185479041210297740716417691773883462400265442310322261223175567121125291043959891899970930468912478401152303030108122984053077286395699011591163773282742227750264892492149285154347547638376301342892411147434575347898533474334684219762436989550344014037295826680435656662687537679551753608036930641333740128657093627225048239565077362280841876131725164182553852622513556755795679955895920741126135604182167651516510155038565525135455113242035775019110184542487393204345254909511845156985715270544818953942441628124686867372738499140643739721930959880863359236313113204879366859675420309249116253548323177615072420791239990642888852639563400066845156207823701263964624798149273894308517794833932129905879121221937560341452771763941348902557308618004913502144138498876756693951437732408188453336918908793369928481509507722281514337576887525571100279007976044296362888681406530914057704003918164213649040976641329829408332496445513166778764446068227013066648592431411493290570082160137993370504783442042287878231810396672788115896323476254603834228096957194953443331142247284063423719663122474268733243411773365794588659842052415216309953931071737726315898234610335213826337722653875772250804138987538019707640070421468341069363863890871853044332208424772691776645572186203798471275959418491274535101370243125366911449821996796625679326691595628070740891758497010209145222921887804443586911315727936828595664652929511503029266862479752800466272884635253945270519652498055555318285838711990544124390534520913116111285082376009064363984994655316731146546709029533903689046120956452585430806789254674567372706315811892649158652369646278237279436498150037193089598274369136163320515115582929902694035607648203161776157375563371881298601788600826160688530913195256461649432435438019992717047717945139508307787557643143834390355190442405513944140716967680430924871619166645507145026750579197041434567873925429698447039469140910823912367708870763416034225948468144027860786129002701371077897356841717527675976453476044069273062841918773748689234707015492307829306567355948841223394074634013042556148592592594683196088293489385397171761953763706563964462684139398816065871237957029818954221565628188200095487347685790780611785724753387147784488549550031178811893923051740475470497112781509700610252393825742478107033211021381674751750465850697789962983413005811830000424880206289452686803334740592399148253964634873458379534194546847343458059907336032440276199562131519144627521433974553874373600029136765937968818088028405681322632041525879174547035785486682086118809487546321048093040887243957958475106057565377512687534740779439777449428563691122772378268550925871985998504431239230173926581155845753409213327041358303796575901260835375062626961116909684305688237512493788383024226170349947050891096412317531930060954127672752926192956953279815730726305751525683190214240282230316398873344369266434665930046631081812685848923364502070614774310783963242960950553782167585022211331580644300835587488043613934112470103729868036719226206114521043400854711779593376206680215961746957036150892575797044732260610695225730371307394312340975805545392504467977408921275031778564026845844164958804843815051952311809500194377098283103904413998913478463403726670283124890918858098406389494848598859448495394293877557164215249933092807525227023371096056742891713821215609531829325598550091329701389536563180018664981556786769702495561393776374359960753695382184825050484097367659298277519923147247544963365869619389085295052160522970057124965115683343519259536151746423979641426690135252590227350241751488755755537076706166741575817220036178783558808940640640884233205192459842363099529243283864921184954535100600307964587444266312567593476055482384995570886034557817175638021689012091534243068158179331363673406778708602424034505033203517836195756349608829034614521616210104877084071631540752832823244445219138173493631533068439475392101879284845678489175776830774190918199766278857805006102120921264029353052233386278246278605770949584886515397520565042896232777647297003904016077779974061644199954911386811048756973343547441816623897726141030834681944412827321139759322242069319077543354687582833681913005320344237003502107357383542092096622442036724235995659450218399511728500542322974962008749500117816685633334019266601717109272144039771400950445457435706244041467847944363494687828868360910462459245049236271127594731088028665202047329648314532058860542708062553003057672398731385347584382539876145640549618869088805959453421620770081527000168212407562775581414050579442868308336810034447307002882146858742239389391758308215112452970167547802994709356135036184787225760748481034678771696295455653737596066751034244833388858836691511479075160622233528115017362605467614230366384441313386798552867495617403952366545800107144717804913823368759326738392420325315990210088480561814903330790698717463901220050426937448513042857502289736472771745817482949980989853660586636161141756878799351989720878074373761617522747988997095949525775337032160895406665273735513397243211824634733224574667288798567310768539598087473314093918925601549586935645930680227598721563208035022223149368501288883863720186604856092677331129501360980226103924327743419401456262057525490631022549972912795802099513590290432389133238952670828167552775665321784319107036823531641920344740837649703272544868171418900454913680986519624352124943643608221946933900094404509569854092315548835504849389891075934315006614409866533930792448783380377198875486609596010508048278070619071812441489821600633507112283138139030662296768111940003387651813202475718333745786366269580388075402831435752012298534754015107808705704382332533847684725174467364409927968442741786143156967738680784560936852762011691198861045952210657820778605915476898813929567224482914607975429598596736023960574620426742144013851592098063844919142695676261479209076502065369204369070378676685348173027571990737663178341360438627701568017740588151436563414693965442655897726402077074763490351014734764421624099609896734682067794072600621328469887379261779257806137397491163035453957759275049433702435615015266876494692441964768019028101889783659215413665104314826433094484892029289005565662747998162734864031737778008809464162548319225827507274222961139061445900894083137876638070965169703197392776832334968621617305322205341171326379165930923581688102309461904192064087216812816325748834898360989646505513804082464359313211351304677221437399790981360917694902217674130105140639059658774903876202940228368102703081503897224792521030606366129063261667223769878384700909370874377694048897290414813867196856537486582761856579444759027787901106198536242331489056929130719375429283975235323297258058282247581792639340465215073779141079744517865869376755316578939794847217784983883132140114874726628031615276656623834565194047048120101746710038681888516839183843204494760014233272797168513174189462613812171495724265355190405886895547426915756986612928565165805524970581721499940396632476144453910881338249147192811770222509728115343508810596332837007721633483486847947686412877249541776350797786093043058886777148409558994697916729796826671663735784023599995143678435808981264598648276029992885735474900606212627532325908044846824133997554003717952081527384373566592981934034943805415869939593480868697962768978132244625342409469087731873126997356672303478999542001254849978009613982175326889127736086518944905755544695714118403142859792019598118170474035152291319220051731057923217240487923399453505290889938159502769165006486172939272749783500372949086046516112907842488315143183436341309307901225744725367305177761774987873452647827081676990885069330179135068188669827933145703303932214830062540498666222307597139632297986059611858962101348763973270844440094899534616110141535888437529793306995761384409964055485807865152539928056668972104447079306153840538484435297914901237213602021918590867939853339524520644766572915225464540529451126607916403165053094773978477256329348143130297422735139546289479258435735548017398128611408592311068964068691984153102657309774549631966356245612124246788517994588482705855389333794405399746219053040862474533296578737922276232644225558130547250419087658361319316280222300888430836206674969815471945612424333563113676531614324328677796174129863140981370521957490366607824913400907658779760106270509943386817714868515259293113263393318804329893122661127222587534095626949250218466109067074033517361209757720153591223391595490966272642558412480733821758729335383380147555967273564774457848338037040296636864850358272644619733052257410677741184573519571975781164292807265394824461856076427327500612114837835335792723637835664623345968112419044390754692202834755306418685068769199726280343703030996938239954133916054079440526711548254537436911438013051355595017579191606564567947064882621465886124827238441541266636687281518357694949394682103948126384973719090603417685604494920306485024952654192129741679246858881369977845120883795043183268956546284420243538319768424215253337663633609032399059667019630530925141240042541851638006909104006623170384112386357690930264030877704608447881971306740515021898687407183915047528939138726036049572708922705210701396641412672478057282639285249940023509681544545689687046808091097981095688240919189175651610658207937137833316000508199514608812827678842107198308417217050298607060458431141026363095526318029444090594380393406770412766138726914330116798867877238486928698731309017529516960939738669216511480189629437828865426018745720427707276469374486533814568057427258036653422884750641058097096850812514015770082784782573841241796362562694886466476899104861313000242636109474609210392648538631285555845672094536106923661326479747469988366367870589621408395596626211242392990898849041530810469866408913785193560688714313889594363655099365372549951944218027196533301897813392581277192029372151752555882222207319164206704826256689437615260014644847166441448351985677252299155441838756291639444234926380884926110655731726325866276031016349448623390314747347857207316138171877291156835292693190178879161095665891496804533157729916111927497532936124002215969144270381388629701996789932079639378227606059445809011201033532341334184011323897452392552316267626286632719394396383678234760852854700028950433772293949857494977522653104312444040165258460917122781947024771408254552902204931517266694076005861972517664195130952806501108143072524892400490708834597497145776630446280588600764351088928580072209788340739905875815679094288577336994406066834404175160229118188432638975388372336355042141126175557109793461176411040448081618654537614499056380926824348143225346614005536861357672768359725181989439786004219776618185044166083382587168705440801670706735495715497822255455262436324053403517035443906791657178271712171708548103873704796785001078684906496037505390023759160235808427910214986293701088802399139935126095714081923629019032249998331666813101006847716363676475120392244486242649200268005341934555671337772226091498692685624421371409496064172230047854968898101764265444316297711713959513201899863658122519697106531351769125853909297692596017811370478834062039021496058181134868285038607157674510730933275357494877020774974807028559713499939331526976736424417696257809255333060760617840553293404846405770566509875005250918057265242054764235748249638728887803072586496926915662414683119477428668834730596040864743217739527573367598689063868592887765117467921698025913850230804865420287223884583542543534292488924202448266769229700230288474160696079817507364657480512184907744855287119292116146468899197932884878653550689844402627630783729969249123425888536997806321531707042680967724456722705811147604301707675339946976035829905468566861773715012443827310486173725264003427725565882318918037361815424816081506635510610039357553553017294658205301416941346985987704452897578468754225000331488655962262959133318729878747829745371769462755268685059144503893131171414011970364495914930359533660553669616248911886090337011411911268242760793771823861286008536882519795485219502565961438443359834844388547063113714327246931800974504158429865897530068335708726628955027336587355668895301604505851502433208572561884019579927850933336525347815446184980415347727154814846017366350284799856780930429479382651219886100392600879529551248036684608716696661134938936138556846359545477690982714173161419210845766481091515382913219519897396129461392534140550299057379621033372978897719933856733732158537651643105733328209934810081149723381700049584439171548472269002179160450675364902328938386663720272090712716888196827220240904781942906976328720534017148010243544574514673101196735784643154609695952810351977538116880786590267736461591735268170280406230900333896659314033294293490721072073867116293873527887706811629451173228564582969888305316781934651184449970712285477690057709799032002067144048451776840351451932467061927277497072707741463541583612939223667710897009224657573711040130017676311084609337106864432973567463104242920527422210350063569588138877723897187607744099681343632987506020727094742145800418488194195975079919682402821003617607000328540515451334749222928409286956976032490746772968385462926839220310063488927800876201931914974718296308191920068973543935596492603000078776181427106721354797882544512304444246345645222610283943391067780729126199641968157404166395210568523617023552629011743067396038687406900676137259223207214243346001584168555767002219354336206454046759495677907666315892669510473266681136563649924239069604097180984567043248252209201833997083683374731640469720261586613289611704733625619939087659614240254185595049139816622009269950680206592674022962231626043057980476491962150841375859512468601554286045844269673813707002635190636978351223209909412189452262907755753576842417138710980812087212112001133014897542534866970002225765494756076344918068492735536457196370033137096709287530106123480948905536274926100272167787125341126415749270539279434126330367049530741817082145454562024430988102654858551083176144099923010859044638527109590073081532705438165070948749636820112812478642130321629542140576332453533697349231607667841759627491975009975861909903484348825686885221265421477105949487782052496981950030334950546471197613818038155283232720551720779532023070521981397310631977367895283796887582653509391219544087388517898501944200168150275085967969437153612761682771186139421237952024473792782025893757647293948848679391316762025873390304291113843259530994124254762415039681982922311608070577962597471346847027182766734724982512517798249141200366590406487858698458598724593524000884737195449929106411676033213806309167034186797863539771231008440521583543810125182982326579102187494538774959311684383448258861217080989297269959377306892555709212344978583322952365128116559970108065912742916771027539772844709463327688703517411605879496782494099301308336814738324412385145193125961723385638681768295489234182378664472662821204338326077468351197618822175135040887374891247760013843547779974742003275479693699070000186490586407620369343787693890556277507274618987997604549855112975605941804944233809267362959453804327472486202007819060848594140843966160930771559004901505841007118059675337541645914045451295780906508388051645695740478420269805169549482818502660174768274499784247718861106788154267631869731363300292845377718336207203054202212323289113427340906401796780689899594120720669143614606235452592683862328499740895951525709717771782591336436510163846167237133138122722319547643505066622076050586560856296002705570828833074842131484996961506251076246339207889888602483678586488835086623372625587943081836768389395157086135665552537144702578235642550471428089278283523828143580809167093246306379374002541797287971441129720150227465119986954118840586197025872865443959384946531696660750006099139854041695680132783977644663786118528759205020793003132398309688236582067562565863981903001514914493289828569660482385756460357447819868360939627293754628958351001644387121666598315619953070445525999421164415652497314098061954644223162375703536237902968539996209719869586516633736735689300406712431309880745752491313386051697646223149608178899760019006358139384982121552146080804236273575132243482102907226577742894318507033933428111433078481619976794923324808956109731516712610752515521993730138344045691919699255831083962376885682326105858770455705661435393111524331856469167378119062998822379550871683611791701949029139519387799271538274903973210375640699506505787440129152439980715557657184766576753975228038615537914127548780364111995285907468584400474146852056020557659153909508270818755688246225916317032111308522608305349129841980500019909178316029547538485449728652404914451723381796132932957115737693368182493681139275513685790533874845160897825026741868773026029039381590053257114861540245245293047519979472030056718919001731661372643127741049392943070932094360581023216647924075991481266265501455925491640637110234265106600983852179214470598743736524185437883577034972167528506663802804273494292094625238482441297062285928512975292476184221251443768504766009659426493120566565390821193591552098092535829963786497950276136293308375838856605598398956903327168068212921526503510858984764016779862580377487735241421205960053757547621302889400051744484670423868220937800594248748963824385650162414827412670489759869887237787492050826763131954336073829994418534787428592610676924903063339155630326786128152148562530122720706290069443469665913486811462940391315761822501008913577146625764390001809740693021569481508083228871827440684859487985651218876562479216320794884269662716681531831310253146571000792254712479954163705698904936825407973800220041526249897785497932046185471978423446515569375593160061372849389881358236641428430478429087874934097213927704484659250553227136014699169828851742400134841825921885056198691697177744085141428529207871281226458610561089677181362316666615348008448886549146162893817995721935171191805931768648971314638936754848971056498417230563830586647790557598348388840632270981712519440874813956042099827133778275333264594220098966792734182762281469906880674250678412947511738638307399469489861046397011149057001265714285655175933047245599522136946758172417876611744861105696658739169959936793747943739484980447435073606368230895514770329278580050427954717419501804483467693342986193909539376510553422040727043120725108428955107355570310426577045809029261300731586615941259391147070818876833953716763977540194835027266692742950307224081272274012560842744815336268597209638571188072164515470165486309428390274978193836075905201170517995513272930795080810521387436679338409454898378955941507205691063868635452254461659920065402949546768029131750554585737133204527773417748587806404424421669914690427521624260229131770930082010416249661368952688532463292234738899905609568318960320001853165844040043014235459774611691708168671117700249939232210367394989971130279972267880411820652654337794965969839703784511284301894974085136447177980329776709431284630503759030030188238547999549137310951382079991446547875575026325122727195197862681137471150091313432484044502131459137621488177212955679045841437361899327976841849150957414747407179846927957110816383564136952565250107966927325848965619633665810537739117984512476522287895169741760812807678694556048504757678687777137532705158848472737392143035028974177507945157918770659274161953756578254548834859369720803567373439509284171228862219024802732008748425309659690204885802473739694626581479606918142847580863506853575917370752820438129256748842612526728608857815028088250952250882777898563214459703747577483004320897840689665284598708289538201868911761576544468419315471755354889729346080717397955508099032630127880007384946916423826470980775022673783226184543303257401750483307954258751264325592114054906222789068908001460067360039678351723100524178164690863832764345661944363651795748508142453963068187674324258404289750767554802341980135530684525817098017606489144509111605587771212610295114219219018309394534983648760269552284342220333269593519959822367770258006588091969902254387035387869986214314420528820687493780223385567861103547164121581686366165068487853609870044624851835019445735473588670351495511948883608138917053930850331148824456899291479843200893944399244854665605280353738174811170015499962009601067852746558115142672966140938241125989583460634480627085251588188191719404645712249577754118985307096208153120970012831304025034202963502428780737730316923605591243680068977074673372942421111235137928377785345328596536587887961721449716410661313014721881916504100448091242828139895771360148592638923013063117324258282458447700125606946291647008439380173559508860410687217294818441481257544396703351079068434196446992575549102359760031076679801510286614932269505959526623942127191256762752638803525616921538937918177838255837084828293022032083886377966017822542058853796313507835744962081325503645152880920413822253206592486382733519746952835220015594296482862159523400183853330907292406212752704912178704670041842591377922673718710964146950717967894236570104371851793743852132472606380908471080082527435171852075973764716940694941246803500485660150934266123034494963203384781240022897081212453128122999711588116428947565710812311028672360655295911159014851273902949179675546601822360531014630915778426667810026348295962196755359248033555788531583714481085536621844463459730751310321688231177536391219216207222884513611645423426864218231282935678429932475599256063376248939850195421639185014129486337290627608414460411979234057245522099552353340963271394537250328077237701137573069060604608191074916436682093125662759086101520073022211702040220487103290957361551306917385228146811989951361401366847199641498357166357456406751134121944290569168259371472014663898193300984240761738540977634187798586610608983989079679796694995451403391319759674960059706410934329587285431544431937433147654013407474309859844331902428596360499296521114127635287266038860145134832450202771436396330811145946072163615739386420013175789450127673506356595748295426931718733653828078703044033722399703515128175819415433346733333114127418550838188277061898671733622878022431537015505329853088592695789260836178858954020022691430671784853003638722905133815780288940369571813918656291836083999892392131855513464639790533647261319223998348796245685736914737883421920068513610071076731853970845229610307296560679034612822212061000771155101329938172677363189928839719559753382312308910634484645425300032204725233442537676488339195455531448184316073834378454392360600137242317160391202127228949992426762317373939275576680225987585221799110708268400200826637066713099673183853465039490931725948544844682987669743113251981962636016103674617515721711735763206848938093985269168174958033224957557954830816011311041150582977675272071928595866859795105999076141270984900534146183439784344351097833768545409609451918638463631496118728655241428493719828566949880914669459283008811125000287942695887914473764253568793554954171415205594906485308324705573682747696215240891031215468250608525447344616145719315977772139742273568239314989178446978514662828808375436411937559406629814749659897701394486771055572330386168104312294502087674789816357955960560432504715888813894507112188916470072275003990313091650503824152781419755734454276216384834299025865976852514227032392777643879174169113048261793961700953703760638489076089158682858614710168603249593285373900037555597265080410809572833047611809388193805437144900357376718829776533215604206340707643721969966187498107065595302806232407258754409300378342080165845901735686836240739677855402626471429614699000026696965157868590379518965937566491518459222787963759071865602206194800296402943894449408627636800448249586240482293782078432815257854273449315253249410388859390093472138148008276170739730456464791494559140590606123409724113398972787503291531077804408483411543861060290987831340963951039919422525042586304949483327847512177433641371414455700624541984253626034957810168660986120084880603180714438836048802307145513690814234588471796995028265215953203583877145342739286513186215883848312862312747505300011652442621718380286069178251494041935101953237143694062722689050115920356891187260500822094272216865197672407797734463677519041324202225262281587547847925394843485463955683749545634798521446623743093322011645387601074197107898027193542715654279769305378952112689104642525927795347813492341626331355296045599815338426078302792807374714524506768866073176751366104074961599183238712269221401188705861550495691373913447608130372715914932772914294059073660338722616708230537623198740975952732359479686643899799559876207025665987518159159666522364311432025936857583793112666193938913250412188060908483046961126186833060022530135300172741554363400304856970074528490844762551885316380677008063249823859470931094539212565004256254967727124224772836083521299476296024647822662829927617170675330740973249815504512676267995703994138789508774610377664710499238990388504903486382588626762943785835220536245569804001461884886808432494759788052100032099797468555990573749067291607842959458039409367508973650314223393308878832205731542726855587326299703056951931228249368092874744913053568375246290261743588823945279851811944531010809535368769669464103617355706663619839979510859093847204248341933495407465123195339953807254789372020633458795789313020909649012723627510174260278432358469644083726870149093883684393881937364484526589567987303769272886336387239040305367599252490595172982717407402373635396045938422759438682623861888014930607582350388411948713764516996086870170503626013278416969687289135172910465735348896953452872178735706183027266655958848340280797066860052066435219506262158214776828141773839914830700985280486400072315576695666198102390138091682529472817756020592184292901871736678490318090456785619401852773093103051182924815386703569763856026931338669345208182092077831203414405195319234896161565883176604894641640675923180196225107687063962074330589244720072355104638340431269496798711280388497792599864912576292419895502239465291885251250368618966859979657907467727766167225270413572200320233418691038930829797029888931548936237452849854971076315638393907359938800644652665742011772804826691178009869351460636022019101643902079278134115826022178874043591206696679644791562504543837875460211224310702917271793243022560815724138365182126027887595768328457960525188217698981834881049416872966080266744460128258049984825954531746904818467270469232940777353519407595583185591821465538441610879096609683362324200237347856025757041450339588719307344976260650961845885457846919931010071318631008788705915627027838370632144125957663102349962272716278877872571934080206131024255588225923623226715367756712736564388256014762270740089980679009875813058353582125676589869374914665884102023677999302858127954043239406746504056456850776600877133672955366455167455611817801599869706657165101165386559170165030530812820866566855194188566021020729253630182985533849686216892502367585868475702956640403909346301655599634441829994802624362213378803839215148252588405114743138287461981609262347247619717118643135702882612055458206699713173460089445114195164520075109854779466048352442675251544000337555865118403247886138019348142031662345849558818947610702815437170543028767056882916855994832780386404240440874520595737837626783342050614664343453224552954223068176342909069998939681645683110035594520405914067277472087289160813967767950365310418743810313424697028704707025840626221780866397336365653904424034540189131913838863003087475073329946284106492817842489944803154055415844912449096642259555251627397530836359396256603832401703617959277016008163558269027833815333274750092160713890516575614934934773780556029895162075631195760572769242935075047679385523711427147081494347250720567246484170646023778690440692393816791087945323636096445610805973563963802940071710315374472112839626484962798437845735733468834601576677656330487713300368641406854030731798528488896058990694959444418788421694366785039249992408623084014918135407689510265366022612466085413899534400490201116018572557731922958770775097113603384118887969652483135861008894322593986372295837089240738001146338228455330806876962106880080952745772432038989075405915268652165512458695426466118232647058381777405028473322055522849900034664241950252856248579491059265739384614211916216393082273223397557720458770950527013060122359164237127422515626366027474085394689285020502892966066856868887028201768709604263479727833121106356938458581207647203314619587483434521427267658280746512623316625537254379806791985727936136194119754404020190176448687527691077192402487828524127790366618405042857390789162203323270604072982290644072676794801799577270733502177027253173719882428816399182898542435584340171229385086865522203887496424055411980252875717060053682189619802354876351125852541087395631150812933658405982538749878757801849596170503325228907172879358383684258767280870992991209651514947813400823138586940583273686050136189026220516277164542080018985104758062793350335893418723769696430272526900437343114365570636383087485062833542950521770207756146919223346582011073763220396009459241513251859611191247585836621560115117434308861224536115833857614306836738453185715917237305677485493913573166372582344079641023959603718395924815437306362701959973805213272671617138955482838079173339535366751476749928082567694430761037914313306059142879197966442374707323517653906861623800887872270682949497220520324866591465781808681265130951376265229699056190611723538571334813414233669842818325464978000967719929585772606967419849173671598619602197766616459446277157926491463361187139989994482447027424975759662387302150311380189845861251569275457601627010445387429349670302202039739127806157392097625551489628545487357644395174094076095352038633196465707294582466792985039797674847743825548588120413852937040959314546204441540595643515610228558077220321798440446803800846757371832489522825162776062085422480178991883771858183017885427439981934461593296466912834833925479893257481264282446382213264154492191489052996443995695554918602075532044773637549885921759426177755436022669619456309388753486453032704060480009011894392832911405270939545822532963917802347873611200503682847990396788726359811205417314308222831344846814294551980295012503085231839421309484444724553164559583496882237792698548378870998366597510521825029499088448724637080381156661029862435987041678580523468663947932579672179506592765207534201602519723976897584107341284254011748577792471619740955503991312560268140764518870966774254249058468135326757951433322353406462017128247932827259975181860203429774323159481612248734459572136556808137391244687231994966345184238359491442865428362195210615293827286360322440672523558117043390406236442660422668818438734621070335771949651824252385435374074405160366412273234504178061401302998030201693071270637740248598122468217164025077578098250558835424521489413879393460447665099159059982697090387630784460408226755967754894056182025462734696238181605314638088323372033101420716590973570918724284391847797823164758244819772175354395501743146365286466091083637117772271891771129527558576384725561614868133044610686355521430196348231813944191139540598208220012188966874924099540706705144427457689300784259040139626283243955226544748042292356097632458244519601905809230043801667253347364353273787412074679248875753018070799512973128703523050432768139503535747166537243137020411587305678212655087742807279992723305712301296896123702109015024788170708551530513816310240157657040724248189506979303338775873489388311434013462750222787586885655793328579525724967532082650672432366076746980413937686672230031221509101378369400946695178852076903745251811418813138634871669550236908288986963647009799953997920415126757047941532617952524400535662235591343591147339158241817945255972131249616150035312659844792749196413769870657924381360291596922801447047250246145348813165402275907632617650083757873912502675501547665260909943456411851870858657013477689965107676295263972705530367950061054148787290051977052394414552832828759546104236443801255347462887032377666434736202401904127818252224706678467282449891058833322837438474008351213813803435058517699062413133125591224233407141268336767578989196317619455260159390114060375404512708304381238101328862892430817420454881471183495830426613291746453178660740388068387095461629384812085574195503890672150812508490426501044621035120955016881532198353578897639574910172026176675892971623594786801099608291402496509383013619630076070150729947271128239243720076801946078890920699399103572327329418304883899102334592179092981947474164543189420827493184161324048205665852100201711296337225414204932368219796841239873558447445440184728553098344608576420344081443495323622756079084343710652802156805451220256418762010732784436628234716976465619596105711543566732608055791875538554126196508501836435535844520977629987586124179971161117905566789314954060159557956163454689460792278885812407757519358579831504792164277878622529076474389317473682034563978596635142365052109967050391412287702713602478033139612741670747879395573659110320044571801320820437967203639881221928594524464807387529256454583466560141427145006792537234205146563394861493294838497777482945272802535420341397647304017386559093368622603135330403873657881009426296599952221517800886565350394595533558986513865310141558137658814170813018382410154815650722815422840596400122406413377637149231546092531290729985678781314570203646233945276272627971055768670546056201022109557766468125751634427273719688790239980305575378402464525356353298022338392529829704218818753857521314423575781424409719598367821575453874513002259374046974610211498140367955393532256780693126977628231724223691865834680930061048891630275151781502607022097404932314771764352637876121719792353680796354107928685989193789949049461759579649812765821244189092682942585533570864613270306107353317851773983982025332080362304418653950587559913869485444240477515587441013035810281884586577659961067935616637169270346518920459720125071495411450001044987226204573689303339821285591706160406641508594675263731539743916723341383864121652347699003211059459394957868343790162872431910842114822638765601682416580474223469722077416555772476107950002489629892043627524601789299646810825839982692047900687079632970421280898116431500179206838640223236195249637884533977597132000221686581200635462594529349713772614093511343214565233396156849283222998373479655282909708229007040010205449569236339537846782330434443226760245902766758245594307630499158876743930042908128631680513404749665895011732969544396528764770655144456537750970326359966328436217046367192603973637312268388028176596415765130710283995703902900161680068355944277519761131886567983417833904303123248810165745780957923552530961693740387401963834404155013564222563493081263683002563173825916416656647122873538553551136706808027200228768396927226180429709335200812566844603086552256460049620248382640928754819591595177009454418496762132301814033898777615188803645324133494135835564183093260499453067497700605029514287101784103052810048836669241854337506499316538858482972287381543669297655113327668515753377220080964158167765122123805895263559967567544572412164194334664797705441802144719858189258925187513743615114233185919328145020190565425334843763817230756697752725646162777414838456817510756553705921487991746830179756094400167782318659159913726022478781206190187643221102668960054971221037965574763493748638044052855368273024083239753098802748976523657050766399221764007647034329859340475313859968438281808034431727743064258626082368590742851132819510736023766456697918533448388644896313726545140920547976246790016539376818988906372065416116182856730765093465120190959253798559006010491532949974637140110092184372664831105089152751400955985002229253616229366597016938441576052181597700283090775210863548379095365350372385657948315371553497737404185475188704284430369443477532125643045831285449002742386897555342947917350666167212441090448788367198365596446432975294547341499080171976341655336046905902985337854305576390939259830079977120114173659353211248155199164207152112219371009148031923309574512410899904367210833067248807234909668056451060071091660929933881250988596987782980435119599779176837338096892941868302577892610850308664979730200050000473247065168343921634298881391466806738967183568631307832412455136392740309762567251617161062925736026417931182849255047243218299473102273546460426182574163895633886266143008234610773890369958594029998284513600161454452764955799518405593488465043088725537737249211041844383496292277834094819667003491217887050108847010823608028470655336454733944656933330517768072890673169310983780668121470149143535080136956444153858281756545624208292957460028691300012095358709069952420162666241526542121973153368034724921222680157795336149409908724370156339188847045045050881466206891299891151704845984487631137118223351732279339347475766075079091676791425850304836833809636930867354646698760698369043044025941677753169763535492353797555586455614347703144023993895348363338088113882319201408303428905376627642977422110353115568700182359979902270464093767712516885995078950211039275988881818237113942496380870994733726786755275845717521307329197464881661088470318767625277678597244019023180326483845066509820233132934459516021429630843779684579142876503448465347681448702843000136312019769649323780819160799661708624637924164598308545950022668479541779975229864223965114079437788137146098627804220674185383048450001051829311047443315994057020724027501027114026627433172370792147384721899149163263106295570246180165816387237937149285913649814425461666744270924721743491577703729013698648187883749847298341933263069159344258141380489398214417322377978053657178110571498048299220584924165821939292470733774422724393934019256041367068033056937859542228364251636279153466825026079547020522303566575194290559170136050002336891112730638930809501992385897506659029436608715547892575182564688445201856592504436548354748599424106944621881265596019631762420236822114436872534495107818357146874541174596338323306460166363242623784006607921263665807007591017126617112143145944812458347354103219912572383068659188447717949606207016972411096899692432586626550220866164301530920406461770823230019037424227414308813755853265588227657098562136689395068628010759545728749522142023540696517083549866449947729568118966777652608543753041633179627128997323923262627557691355636141213998903183298699650675427712628124518164586913533107719665193707370928078266551715042644429289849017157844478949382942808870245879250211906488954783752957588377176539050144461834829967768022600573425590171059770577769287172846809384536490108823440086203978594683863689523144957075447483850362056017653413140700013084947376324595321194426876593801957605535003051954945340288370006122912232458531003628276553065606122641229172660833879770738083310618636346097029348630278457577942258633326890256532145997305340924701300129437372500667662515308356932701818321659408179724532272731826092531032769000078562035998253475885872330528988534225794722839175696477720247833292284855231036396705287912246745204995522588687016778715561724019642035390572130254674991548165697871917577281880271547605137044124515898951430344380010278521498074606520800969246989593939514992445601347918590759493854296346368232832748378206678865058015492667562375503758659540965252850877244119159468748121707645271082321017661744993115892786100038147097826818269118249253036833962211489520521583369620224353776561271382967677832556063475714087065088200659930032329644320244807148904656994910828605824512515794857130565035876122403599122478242961607211149898043770837796803122362284982904645825181095821292457338030911747232939146229824365874946099500590472507706652498236483027399488231793085885880137898000107811558416348106109976735281562268396704283415497983400898492261503660121018210929242906729874170370407967751521670496094798231649684041214781966206407402828475072080074739076527824250397895555998216884220402460029019835843561072916257351760125290907962937948736441034472537563357875302658697824867787498648992362707130538014809929300984923147676138917341700121814065594687674679038992546569454559346247867991976600520951916258694109207487069105081205966778755192870283467888366338435896867604836988719351228392670487940360237987411530460300516265013560097450015501921476376644134051304764934838390449710415792962516713664092713835569875082199575881866887803814481195742705421638466397862481898951475817017036151291971306287161897830775082032324847172985952154454652760197482998794265989442017952130458502693199784389712598596894623547524077505671821784476339861634910920726008037798662374153329195352253473391164918350585918475086758530109733943574188785744327650555799430335801247381908790537538844843437654150159070287297887077644471759605485320280163649284222815884850650958347466574327557377574736293700883812665809281805464549943530577017866629192563520283707505658912451491629708608719596794988812296623823191581076608078045876857032799498883350954758787819603544368690132732276308235541708457788773871391312772348791212365392686890212237445363471194335118734650427755034225447060329167243455563301268745691806912899865939885677750230749677854961750514729641802346210502123072100995998134036972349414956848135078746646406822137198491611967225774797777078293054252005236645246985019531118279992775064142865727296332455132530785323574738593227573270274381784983446721929847686313218427801085412919400052520111762323948562684747055400360352412913081005464948082142645772657101815758275801959704306136802623700826436802760250047646409931309388163328114123908128818634782975652252642622908884194213119834808991745844440841398427218706772728579569224515379305153633637324728234242374242078999777043693105663240300383515344261820338853671429931981556163096164063041900819438432637694054959419954462560820043382855514387011274992522919147310434531038313993070043310702720415276318818773570787873082416644993938010674411221797521946913013256052431110209910641694259438536680299029233722683298280186831672348166897500457994553233603968309585849967324883324232428893713522353166034407085727378141840606657351041973781635094372001318082354468036200197777286634492722307035645155078839597420222960861998257347420235649421470215282857590127855707746820134356242015914521629979396225176289256686107418689663043400427160254704261069655475525411466172775720817060361503072759295875906290070201683574325603667391310112718888228114240323636044974030551098894598907664329427734604337112172935115095645157522745252587097324404152419034345868810133657588247964887526098015341570514787383822941970491226639521749883411668280875547939026252647167955370047289224152385566096825868879822702235625572355640980405099517061617867679315703157362457937625724989988314372783068752879863292093886024821194574941865647371745364416884824068025512057890064080105145798051024220333492076044122792020785005891315027769670484934966340753869340954699730297395792532390132034392664698916086605172755800232092406528219054581952830148706168821091175956508943286337781343562487754398513708417023078886897576110535858594449377419513343486018806110965489473545138827751683685667423271884709923375674309532965467092956470404389554680498052628003172250533364492388901267441935044362332186543902254821435067522685083586234921812148832859927181268958143435247601404362332660642071483760478259552018837957112498919427147790195916512377370393366605651420439610872681706809827163052388758716972368238162246177217866652542461047554258848084726671426783685277478957408193211745383014927104838919645334983446731434725523563860215844538851606639304634377998574558853143427572716280225448221038512809089472214869005983278248738229605780901255527826784694068268700250324592644482050035843164939533758075034155247318367970384127897728477364756076881912776672446042031596847860898101510247703436188926413810331088751308888813075678582688076949463663341561217792031000466782785164169175737894359845996777772333572258269801761459497355844626851646145288998275887970121688269300105223741443496297744230143164339172632683898648854659832506515745481335085329440684766339696086288140330182343233566188276434478028869226272633947460806099538780822482041607236084783859737071360800842851080402796308526422068196090997305651314346879731925011420651088390920464195607293820101902353728489109843777687059791212488515083811990674076752127641536843912752591849199096032643559666614896496281012866130728227671947942527746384425506981716060519685440643260777808523439456239747324768559774277568530942606032530174904278282576438757031393897705302197366224829638944671797408727935250260600656304964621829231677306454495613811288786422780451641004298818466369578852785753897968734503095079057927291380509046106904877350902745230898361869403261256784081544365073318262741638301116344045900198477202805345297836545913320126198724080220862344895122301622986760478266282707326920952912740883880777501987303970812018444262516372635799684026579324191543686409787300531656097213057377004419104286331480649545423585107096620768032560835109545474244666525606640389114826892870514702420296047131989076653381040383489347332611712200909538520003663953233041832269614453171264631217961923892310397839223927357276292387236649566848096657614650779346159484702733202654161944229731162340283498495953450073072107794809785719467308034802562832120962370682139528785408068019143440438990545239978319465433332217043862232137731564564465334604040595450407338475463182578522693626648870878993914134453911996751030626743761466633362400763545105036275578519303396575785965385405439602660548361649818965791006696165736829782674761041986225751381816839461325110887315958612808787562197106370567893580894380414085724120801649983175135849087061970828807603798874791717817247381135800903032872381479976537263345224799548088948001699676663566022011395783784005354570472613692299352078181963152225796064096749167210575173140568085721323113649559395920041042423352891751605480761527481443639711464876986565646333313911321128729249432038171765375806955072352438263349858711890577724567569945364054545873142561078342474363005827447656991614856487830783716878037802857542537255718536505974884219178776886287891591386050428042113345305232140276598096641954840725904503726919751498032388898589055944735317209173805246128557148285498905059302938646370790222428694004379196837497255082392832401781748305599313859723975105848951421927346037668689296191118119461977694651452963959896182004452901814687596077783596656060310911709260499034808967728234524246117102902022218793170884021491435538753866946865603121105783539589631473072327076685998402655546195859861566236377219666016576633885359423497613718743896633575004280725846863213977833184679210585117684508902994526043145358480832653701010528659655078357456226124458808334230414706163383191531863459361655323018883506929890402973242259813762532001044537726646710519680370692037593987871918000992987735463735483560420830079671103465077498983165435468478597538802352186444856596036508444067096693224907598043244246610740729145357296075610208622149214532711694954331643149766592688185030444919470089055022743509679599239329576282375792302043910911709532605889499246034637885715461905389077566930565407718222509851471932936358914666223985117737974895146391261455583369458227421530955313071255727920637987309708783878473775971974839749484530124213396244761783786572258683608346221766081295877322619080375727568190285962099565825215492475578409849340391997398227377243594290465308728782428505666561671288524597128389169548622035029346534952322041429962761142985610872876274175252125416136075464565314494962589902943929072180328267189363247534405347411445464136439539178567009207002941325542854348773110490095899301713220993138925008785737983615600147432585983838805366883181459412017897431351490531976498535503485881957428822224907331786769618697088540507999744650928980457083737636847913504396251307173359479035892297792937012022630385859004142685507977218133882940828480841512538778300895309658821231886386972562412437928420503580085981466641604746804220015258487426670372751181995972545754399454794355150438920467181533546882864120608387329668580111824671477330596947616264153383770357910909463983234451521369103535092854400472264929976838495658882709563653508166331326523280530861602844518779850421734148319318883282105304654698447233344861251288229270469274010281408915228492439037865862111040525989025212178047665335224807765513512126524124968258850352630964812635828600358056475698908702400630449712299172105247608252931987051460481646082056780275653478030145342995569185948007363077152659929178953135985822913346025415623518775245554796197316909022862870540392566751026143528773351379679926980684240917581438820624800638142879941408931732425430585795059520794903422673770815284843625843299748997949364090163169577563829567187353130652959238615908702089597656602410114100483609782164870880589183937513711264117860526959374336750543427653837565112057174447862440044240927394820306553797744782844412660546787374030614227737548179862145852961845806655075505717322488094019514608183501215841649447794613715242707777715822360908923957108660721622240809667711365176045478007188347390390852703536999307275925163803453374065093756266731588423814286088173052505113564684981502284672732271212754319855594066064821035696398611760239398008436715319317896640667676312601456429043597305562020190852742767085778123087752051609525726272157830927835380375581282136570404478299343092382500702512605725737010187820677494327227010961466977503896098534948022469263268662103433581365955599154411745774309818327295321583402756414415071075114077730583441542319392177282470354029587562416221189808250125079987587534855869650462941787461211824350625897490329631537748755884197698717274212940323796259265010548433367625731906171474733729034485657032935422557111587034592161484635173207049195878425225518525079938302277327217977092093055038988487282774318530258800059621553434925498358794791846658673665751351489018424003676134052802871934076622867406700687188250970633066503008196555869249493150726803029105034056064222240431718555363417538439223632616132785299029361451548243551124304921337747328027251035594237196325747040379882501590928609832376405653640350333517332761950729009530943842125819572342168905593058584587963074979939378962503055350015080251142329961489570036066226771040198066071987683696951886445583202901156623126805485959152329863352510932895923314811047705684314688620626316003435568190019794691740472140520720954561131139503291932844405694555450060869324641073805452503767469996410606369875680974652763226767960738650927909395479572678623307921524077359857116639832402168951400539048625127398469706513700571352324711403984574234713717087104970335031705749486966838638481842400208090772279334893931073545868878258321446538381883528274253812530162133113924977629345055603342549985010754808481471914783674218312616546626543522378224295330538274739950895406863205591681938698056691521293512858605467258453034718145219336754377728355259126327393343616369248365862325221428969355388512256985609410380171149632696117550249714455282389975035782117236440522413464515505292488181322958614818400911346509804672227253527130106860581025323498382040392762311657666965094044324319026405183311441813457166999101972993068754130179885877184547804720606867701101839763638621685337141678700532502582388660368475921554280171083631814599941927120891759870830235013679626895493849572824996856507657982302041543134289844689832625426559774767490852573261486705659428189874018406799183136082112229551367978617899230631605263769200195087728877638423143930029181350975806652390078058567599297790153448565058574400660110801143912588627821891083800018310028194911174636783559682241428089510880048661562234082771762263040560266002715040286520146651103913886087585127394998181719990652718961154477778869283282782217130936917008417803647150609662337447191635403627506941594618876337775190431865561515171611496362275748455867736255261248073881938792397190759092469434968934456851560232370521176665169008984243417713826162095701978347048384641668081365498866346791424746068232279496604252489489181371609663948516627417536584875704984898285018708660649650336081623636711572986684846478739780375195743642616215709343858890310211978265182100189906880519348877273740228314371321635411353780896639409283116637676514851053639507165863185569803129176353205769383534002099317425592604778147471384095866581273517162582274309253649190822970711011133345647478382202922844793547898262086246044631755363623604900336385935359977344631444536183392068066621059735746263979968136094337559079907456962584702517938094335200345179535530577960136038002698102573271178723887713056125953856024766996009963734953788986994737579353783065397117145036224708793969086707031255155326714898903515417859113240537091516907110123218074182352875850282739074305897373850117264480376086142190965265976877710323787454235523726474174625026168993974912833885583352698776020589901537083204997314926380159484070840345027513400797418762464925782742671588625742785478797601937652195353512260900397454261474885413678146760371737337730627745524149864800504659093299108084742884914256988271103815566068246947528093642902430643524757677097559030285534752229698113777683117703703502279955351493336445986814068592757301959333384640538951501236407909793011655800894963872338314652574947223092338325847114676325794553039464080505446312468868497318223041522830343198233862213326430224255724611393303106167338178871390034107733096482130699745887164976200106721106266269181473539773682080241643001185149398329636315796621520588721078429506480920508410187479586927315038105472583607819026518258217249940788895961516221589836513865466343229380993841066712783843066307507291074569797967663318499291671281139228661312681691610413529672106552441824619698446454239647115097512807040911899987032901918036596040957097765723200928475664331076728629737878159609427601811494290400002164419148409968246669098781758203967110320814773970518762030582900277071563519953783864219321204751673328309033905555120720539952634218366185868540068085821183849770601912241938746124443207257747225339161890109625635231587793332871987071413172655095219190530746901913052319192177592579249077385231696324778235845665267836590896974149247205532185712472073877997489155147643131436505184257186590168545496214311696495153028261197358038420043845372817180032275737067325113840235442993875677617844270935108489700876084808508013197535604270951882029317001311424325763201014106269646591017885068289786516594240020107349023056863125839904148625060627126682283562919242315390280914997397167102839520224081815236592153010251718926966899886796239669298899414930852916315357052019814810744385402536885102330564432510238845059338569416684825853547271268293864501479358861756576963234612767047940769186595001502411331674504309885239721549360622361685955516763792831836842395693454529057961782985884775894779543127263897835347533413414393206844466615345919817925364477148336000838294791945444394242403786003504947257328317412735657456080707245467982936805272295656791799997475096259178440725272212017156072665072724048920040216055732793302292329174927109352553748681716892640840039938761547882217241259870182669423288421671583929849044909200235089090716409501450358199499783780230358002578497921733688579643293222441874937874464948353122902079264704010252680549089614936991957204873686269486237038670281466578255946862151845972816170252942068358798962179193374085515667015155679972739523628340852768804760507301675569414802451692099043448570219437903710348490900046991881928947009271183825306186171387252442684903847743391627958013084869370243039804503859337011204746390242656577953805085078915167884566029826997514845907605263557279765250980239054126014661782151485027046680768964766967453719969441425617425104072779592627909688754808117041407992054350496399143987964927428000480045202918889778010519960015719307935048382125429611302256204853437152248905314676907284081272968845195182442243072288118003904173119264001888205533927004576142402739586828927266384109884447273172176537026364617199186229697819225729060267352342036529993779324933302185864496754714042701040878237877861697677160141303983080570421648312823803555464891403012797841283169080718586951284551538967207973293793599302403055626950785678536831720341785803489484319757184840222001047892559665448811493676927956227209400076367692696642806964048005231616179485915591571199074607019180605256128593925384638933461449358738963948621529028156966671307254415305434431696605614858782393962647144780374505497100168634242784354490383182707327572399646791686744760199424437178198138268128323130383928629337608790580673441002700250295717630815093017976703455477317225434943015572441786941440195583575879768001644770818121308556810513307443591719679308425148366436015558261825090932477062247328814454173165649348094062685452517637743139687039608643435736553307851140300693283862225773655809035860474689581859291304031126935866819355326310103176586520457108525999009068640201443608476048359632647800502313857442053407759901104405399949354667566403925049443332902578723408454911535463511264860599867168917324996911453318123076278914087714117227905155817558840293605238074483607407554205912727876172683056475323600453546868650846372793537454959729243306872917095012899506199675567962728846497235444753168886010822060226640015916238989766334846965227766691487259547237261637743307537986318328108034455893914882295663415178614733035240176440174967056694886781159482878764475688092027125635020501384031478151911180924126652836547084527462825393759039909596858514831993295871605448845378272354912216247557831325580684139256493786727229380537203627217186512581137339941234320816199126119834616194445305034180784277901317088986759424602616701020081563479633500202495823131658674778115983532996782210601330780816159927985692560147416666883149681003374526911640664991579426294870046994110677490185672786108459666140786527494747498643020085518752489226162643127120542327788762185616487432397230763188043972381308010907840249499159407900158881275676904687343953721614081200856908821098581480595356899004512234021584250215663437251566545786607176653577043777920608883825630321770625405446048934702581722529124272152642469728619458839389351396267452237559719381018452677857032835199223237407746739968961682863086973907579460159421452924147387858679161399472610681450503535559282833467797402612144617350366723462134510595648155981970079786429076218509018236143512093983203027958598964958335406745268010996841553178804247789108801421542700710937850586811346525778355257710542997476626908914664336360489557381987484840239177147621843476209012504214522889437295401666675473214789418207728185737889743215453004208235209707012732501579987072971896729774323855959938800824788062197918341531960055603686372446475593782771325520176220511354707699089252120621226097521911488618299399678120815775005676967022990387888623212808065599011402810199661544795951223601338101142359808233833268785607364260273734251583324706305738392348152016507382992708257392433599099730575135800783225226340753857518147189075381635327040165165816417912482101452277403033437965026964499339709873250369461348945001375103272801655827019321807233065777594791790615751981173235396297211351088237689110510697476469576806159402209584369989774442826980862000242950434358756588522774736619080594195063361090347065640954876898145754380439254568647673774526990400620914835553776988339131086896162304593438717163469332132919961202274665322499880947756006812633747329237897811254254752875171914544071359176376990112752700895523858129924577159887620421110062548839226102155855925304749890358118394409461046441969075586164628145400982865867091935517319987695670745387231036817889556174998553756283614591310132705172137168221136655383468379897267840025535515064152649737770416507043531454832857930792645817037214122602125057806845344651515214652271410134929058686392587794152546960371275137235553545091357384477966878766646511608990976568377603370582551530548111087816289453942070429152080597332859079230281197699053401140105087654343027452519183486132873221383234447879839542043226396915291612499210336643989539897272422738850434780241515759323434965945932664312277307655454737051650647496116649773631746659575529471591941737341671829956172227501884345813061681724559200283698642198058030624055371111248053871413981578561919504172424537075961171255561810484488781425441540600187554362536923573304888103539697574304531546281414441562181692079875707078965179901114130831417272507835147525616779397622371037341643499036197206351328614903565909324597715338965202694379450562582946070451744092756401513131413678550473659561834291758645524934850109818222301730255701470759936913454287998939894309256628429650255302268028408243293526393755536216607828622159157841111143260646640468205503075082648789696670370684677605143745338652985165202486553620119736529037738765085324339479410976793094418544973052081426351517360852804113151529181636156592452209389358781223980605879484753749592195741851269501354889905715925907934490282882364594445574522712390677080158586439167462681299672686972699851539652896517591740739371352506238592611053902676718836092453416641478182745864787539506720861637159605748826987046302262791884964320517112548190554478715277291577334627822994885023854108902948789512916327058990907011290176583085810681068209413460016711960987768130004265219081379442172088610869983792358460067457524814277300089784297458376812120438627183260109074963208108046156074291316606092304573370081034170934555990209893481852155042073129898115135163488153262323678895617737727177886355767866448948485848276667291312491295236568853434416736983242012566656893133883769594273944460005668421649932903954579378350750214170949798583658947640034502883013044591745502661542918241886373593791523078947843611597897944245537608725744247593508004867009116352857611576389804136262113282644334780510795612718183881469733953102137969008061409597787401787767560577603273262512384815245283156325308100050784207213190184386678298476806562027722374342197117817429067283122251960856156291501195278914943699045004601406759581093065645934366470851614894162681784242245508942776183784828604105869465359708211744939568960386551433771772011745876993332779883797437166525085343715479285375518864526688184730292100040393221704470118186485119311778952272251100113477715828514572129216276467257249990710643134927275362654353146846508198269901247700676277225402132216400632862025107833826774444831259164224716383512965593557194810446645964653315153638894595844909884807844894823297506814428551356607856834776049522719317267597571660489833304457859905796415864297718946711856512799557217687110502376463366488652574113386578044038113608901723650337825062082316433265733938143551304283768807617855594338485143961238404346212655527894553537813325427323256926763541549463234812416385285043607377795171304509936113249782921823627358076816380997680275776576476757597684357437679454783351604905790544457067549820102577419272250428471786442178580445616259309886653580482207745827239028884399028369228468713081152282528513554994696795249456802657437817629283665336679245889694843181867320134063019784536728382393076831088618380770239831612890194732460877472734729562462742299504524911025774914867590041506337096118994896709009771125900267787749020742873640585232472814408194565521035874613647843832786888831159218740951354789006744172055130045893623389783033010162451907666479457430343647495904519016610827606571133214919950128721463184474265492783475800494336589705797079051922648216478671790912074416123529217768091522890782443374738630599857233451072157408695162660118064481091043533144813656848166642322529365728265709526845574503179227907344115519987523891450439475935653856996766414722761132350505739808263088109601400385011663006705191640039977469293296716964446293396936232423196717859357192321949332398099929767357825898739748324656316546467663637904535250732047920724584310317831181682447349935985851288984334439175159417018121813268493180415835273224646977285313874411362406896713119619335692899281144477631262355950632439973480649975823917360678956666518909270178738351359264027350988287686501312835720248673915627182315124134872095092541319389879930937905854394003924203665723827188302062147673486405973924602522501849089435576022188944943477497736165293612472580289387169704862711030492187863595400333958035954437052510328279264999889583161441166304347211989224596631048542452070857705854684424400992720257417182802814263755777393384244699739910818156394132480620611950963159033188211330271465584165872825744420347415967755373934831791884936493281596169973467202679019644883700084374710673599888892702373124556319437128651167397567096358227933920358968083724959617025809035441714079347517629935524161348047403626965275803042915098220267610272745321144769174050965019608757676729417581760606979726637450143833635014525916141739590542751704119402782698786778791237420619900307682051548766061078201998432137341555843626851282631323962401498579044533453392473494181571877266855491846080594424288577448214145347132396078575526054899314586219144558016708076230624222509343306703874108087520702193010925864731600694070692907720274007550533709217964358350180144004274752432429051641315017296466611430869132382249979727293046680269645385969678885176888822271211341929364576096997282586627384112900130731224166539363408320097096386737461198779405800597613314427148009017562599714019554494556578786863754994857091496802841003792221983385575343804235209257821692840160186336892362959383286347888338303479048589965558864390001203849033993404296722317169173692218333783366224453158038518319307775385576388945928310434704583077155243534029174273394405823236044133987801366006930699606000939487490302267564079081723170762156019572622320408100774761321445608638610410928159043616412062370891242783820324653559565832471114610232973898832396907429048987780740782971334901867946612618236741443898839822369983140837577433363054833879524097580137579459225684118681061575091233621856447356503636210873327147412775046087945126587190518424099693602269568845423445723098591910289806782732756058431155781144434560385477397604595248134775178943691053839842497151733412118585321044345221941256543260656638572730942517486667877421119492734304883952673292148647812562649423366575378905878153705915664511173022538697107658721615384468807064262990469538353698274751356230866943427577847856331179424195464734476397429213068728175082468238350470615756852941913819649966537369835621863280630544449331125535388706710381329684351624214186634167136483168379149878913400084574772158206472010218551596199846671204391820381734869246999801919123318637344717775780715371595211338881414761390093554360235610588844570406832180948109518787412169889468753316280531336852322043778947465581428153187278160610080892419183352589175321412304152955452010394044880152491576883542923068397683921687643340646653246072504709719560148923755652586368534495442111926928094008485505309340780007740649412726256610152420885843221746686786487108370140575982420286212470795884871835061219056420869052158198490326779858069668715247113724486949037955135531106124623454051596936841224608722123093930793555787134253307035778907467082595788806998381763820473090226162573739706502616037681873947006751546720782390539195365178933811752074835908280479015662101022290146356760872970033529005145578042720461372923514131498216055782864826996401402198793750426350623540094035634608184604623050444288424002130501944035644983788315437421300201203087448507654566402170453719672258005044281036611196180002313577535065017614939173075622262036020449438302167042876398481879874632160698124227187376144715473062576332959604034318535362663410048578358788116899445301136717072032853600933622473210550856476704076015526288241850955647576786217287173414274151775356785062074753161744183608308267138045003418316499681846536550499484151368676510762474611466787644792129070609275546181157322600702837902560652680139755766522838737100590436381980309144693346427732477915570412424537208530247331421247812860324751459434600233446552395015513122195100863904911129455770952280194720628701701343431277483445855580835038435322833661629250177478524148364707353591513104603970233170848152874221256391380959468168110403097451753655408834869131012531582153465725956593046001095265333703739125967719157642967227020241074707779999322829835843215604365592996733879474066866031819062307890728592541775455109636838991397394550373329302639910310708592825696332148819126362192366207434653919412004276846732286948963810832287613415140139976497477350540888490997384340938279097183073946312494009857247678672604175369283675062268617465938045285864260255803650455564135465851895844915981909526426237738320530720876326780529933062211915013003528710361964966889649764099350407129222930568348687290007404883361111501864176308381612337038192285689266213221706329498289351070066584928145449031864325736525060245060431705766319139416629478201923154540001239412604082466431969783284243214637261741718221834418960231259453433679369616529030140114611866323025353931182872671673977619762950656314759663209783750043857559340399512596986972096616886222496792095785126065025884386800155531378767715480919533353282167597041304803392147614679676627923141640974199883009795107554624207367260549826517228124695856713395346641316246240080389141154777363843000291953110093500551487617963332109220118503851327526971382287987366503892256543988466526203971834063803527294503196631484353462001359294460797862621167364110060920902388582839545964386417915153627093908975115174933416838278075081462421611861557637865432230474595462718659329995644897388732610695417147155383881060666007492564228283522298179983364659197752223199288159244178114486306190656056533825076354105900012884850406828315919871790494650315888518698173904868083717533054250346869544661308515479470411321904362137942030089200835932494138748215580653371533540232252001376279431939235080778548949151400013240112464550051516417686938950836613196356485336525875358382425083584932851737742639135192326724768125618767503958638347835675197998852205344884693035072966089193543729420917801896263934028557601766429073013839820419017028099310321928486124468096808459726367706995769445733582167511272402154405279931467550947368517271180926971648301806948410196641583070542156992301006729733379607755514077628679265102561931476375073698149308281244957720426520035525828473707009542892624854144249261028763077779307628446654178087261096029816610681485250108811102995755216851101983197450462716589719594822422071933837110538683830655998476238125196497931858454430771765954265756054498304441428505656091206659862111330883280457092284380931251306513797486982219437362854952869500973880703665013513426444011879681510110900285215557402498774864125763575357935061344053650257277576639824132010173146466721340454760249190546199448715074434851392019296311312738219285088114389250032038012683620056839723487980009077115330051379007912630268663838287580602772380836317309913075550711831852074202949361443639523751148159524416657221686629006314419245453096992786777599984948602589917722543796069797742105116962745842467212070897857235540973434900760116643180019705876287298317370689672283535430612711058572343118922563365914263742912575752510067076332592633873534954630369963262346780990958518976592312505959068731477464821095186936080016262461949177916732464072648821563842936532548651940751700772938313899203710959977397471922235115696573584459282973057082813055534397501679755588714756847680264629283136329025393889543118854899320716261794903414400081349324862551275524676872352533820149706596112773417184971550695841511876970792196158517291139118189013487090811559092876127136432312110957384259583542090542332783510478330319537909708252846829485705537563516627701038647091381423594534131977369033405420365590538554729647613375297604329666930380811536504806460417719586021212482620323480481638048378249268228853874140285439743710731249901405345147831786386769627836548553075905244082239653951506414292281333991331574655763108052864811939788432220541478092772943149870120927985521247068280474116800548029981689622391835356175392578892319996423568791072624852738071822724937281902294446898346241267172183299775715679164551820308486916325553100350362021453801317123059136146774401113210918330990998839939993257452993360982534942498917310852832132395042715664537018529022996657643882703968508474717498324368125383328055448991485382268561789102794114864978548994216840997151526924721582602261213485622763053984853393485182367191358895890224441086310881325064663154978093875476331531835466510569462403448433222590527897112077685907605007129060485695041379734282119341927977507307691857166241080354675707171243122559000295469263583475908566413296831845671965660669203711066669957245367914598486284960081493225651156344551764699517101718364599712414908163434010996594094867209570854373651044231161735499993803709801642488364706426626577720376513115168710615771990351011031183472729193972510664053682857170638198924468952349126781651581923985545873321154981526673271630411875328923534433425306742244693095909561205514183811894274417708382343478327888741355803394088283980418695901461380668182523476011633971816248056072790416370692554967193139603669476977824194768574684855292145427431010810093835646509691909992674380069456869477405788976884911680491630116668119540843015257530807489249650498216301159512253315322159472102272564854597984229528063804282354974011572435645711368994732637099284062792699874674804175595647758419537382261023346622583868674062022020460181183037116993610582700249751078135664372243436577748484127936711906457210597655139088831283985670299017484497893368922699612842493942113656343741641075222815346162619521639794874152777897808515906799147914844015455527342601016709696459538289506892308340182868041577828494737186285667161035061068692444273643572276367153659060081211278919725496600095404823083691900303918945181362670214803495098856270253009113034576754477991702809289609777284508519768322624629662855386167550273113262938584364404621353426515230914935169373779159408075727344794467105742808288120913896682328373374702853033339820654216813113781750559982944541080946429551190826845791103177638811554086596221260449144936479862944150066033040812500647014992055404685192918406526131161344710486810513279450121324356592866178106795178352043281347709677597587436064220443920792430838064151239809062960664255703040210233068767742667605403405151754145163884159056858367793553532331362245591378269792768501714224152344373171694500133683339703385190071955980772052634521894374176716959964019155032858003087869307358191888546743433735032638958098183579252751515936543446603505872953487642444933554406847681163422381244695327541207559989646511495374301658784488118412921017621500408412076753298621982906596507701925359617573587576918407297481442542652780730308223472277848378477140564355897849262225793121749317626436718499534174844168763558980034585325254749162324339164717436666744827266436710529473005391693170948200883230469348006029700807034841207019760558489007976052760096787132685886960330820466492245980383093482968117715738588037767454012651471003932350773463214254102747930488955884191553425356175454001113195133096684796229139103682189503038833981989870859307508348362704269612771398544604770101791456730507012067151776295316967462768035402888890128822490807575590465734369182310452769401758338924336260732033679278092097388382873671280321868997171070551876129160461349208846268179751014628599050788819728129054396161996441875155461500658697059870814549845863618107662013234898233785376400019678429647095002147929635332925167266756333887658065564059955823850501144549732960451478038008804706155803820595290495428960393056856651338943259871868867941858673126777415726279438967174845550483980217788518851798143384276723890790273382839927073706430233648503306223636469155852924906289352107762544007702283186422861149972088012408905613624022703352084682206852951120878679748218809798973596380425518735855975833468794254487272816999338185438072495145188270084845543610026103715955560393277670697740917585244808088466652822655082730456383813855349770958790282774499936575096248682907668498982757172695818001189577024196284738264216804467241952603824779135166122353770162954769482449356268156339164118311965482463573455252731758946390027973551980163698673678813789664296496574371020554403956558742010951046411308668563065808139093305827268276100993112016827442730723936332952948672097032399433040765085994809850365872992738705909233564381676060297089616240085077457977549700555089508664175653384921224947666993239585493814588450163878999695757668361525791467694244939835207959614634151224090672388755743170952859989542788478237854323286152621822883560832722784383618861446391559978889911670980617657986938589166648182809285048609995556140049884498113289834392657649786482521679421853882122761785435347123432284457390232390973877755203175768414523882142678251212574183819481955829991102123671836668960753161296261539016707733823899847994661722676219806950595349595690841343342958575043958727859477192618202370819137871846124205926849566594230492017104264590727455517763867124969972948980490961752768078903672995837233534981124365481867393222788637462745427327254836682150676017195580167470321534316074698573287391372782640544143792687797832958565926671282360832029386516329379078983718415722942773132060756729488891469787601499314719017584258701378031838577003527204913715329109575782967277639724973413988087344711335030566491542770306024877499630812578914786025293780562970213158789522205742908776402903305400298449961626774828547116722187298773700466060053575211563299103679349010820301915557584098028461470245213510527304667489757337513754626489706471587073711713219112570330640337979686267277925248053450661100280172820578683818076817639197057644372778823640949087848533124992372950162048217258955227315200853745196426871977791826046794893137588932397477831966746447864949192116047177323409448470102840434032524245217702973026216907077393417112517499079660920770341148700447982059586104211926294958331842430114987309352373335413321542591805400328919128877635221779485301581764583329866345642498381046135568377266493745625313318582931609974862563452243757638868831881101108906889163398142247257286614711962587157715966119126810895820202825338389729598032807467041022120736293168790932679784410434011169847366804047946513321015962944253150717414873946326710756856086481260175816353502844431977346952879223082311830982195904122500758835896127529781806618242100629784768879197644580441472188914286541796244457111572557943900164264427639199309201352481292023554009974107497670095276828540655377937138230397138693174941440246510126440874661524985365950739113998204364752086672631144518793483795871962409925952759468031271637746734505279427578922802611863653484693360379444879130832211096325257478261552295836337060860034239009598086876701569399532509425486178611605956107687465262732825171866037628516347559413682132321071800147104259751488896721708999247049527381368950897752994767673381504119996941589252037608975294711659241014557426644221838451895360226722428163144363125492991681308663571748887540505229748098584669117787249101485464729490035138474976830230340241268093370837914176791442680086408534179779650004040771487737680935824489160684585124594196101681363585102513073151026029969463536084969714369292555089207141656431824407968500417810036654408343445206764272454353725757574288335633777985467649572887782770748192839457333920062327434031748919903234995384291329951662841488862408826918206590327773130175014934933051837926196926396189555958024733273246560891622835282094607245886322004564639941993315644044606680631689238324155851983284146244149843163034358101104398785264756554542098164674305644358096297495374838057985109436526931615865334361243311219250314055000316296159297360084162763021654304467644832279411230069311975564501445088806669485304580629074295382589619883046519090208144158574418830408631410095518754433035351875880197942244018876939017517816875607274402644349802823770302244180778413078941421184411024093221701247199733424707031747872764902671661831602313054453894089081188630597107866877099270831208992711577108196328253611922506746336426499581128089359772494822285799493615445899960450737058614752835013093220213237195831565686162657047113038354567819928823318769208225716459190775666321681990460336575257531216203212378489488367402630291867969862417522836091537929932658871908719797877350726444965705613982620360055127912847226933476706594691238683460143065075765343196018253834249841727826155268441245437298643725274257175677856197401026436612669566898721686625254772408650025299022712761424315975439318596099224579643752424711955894803210840925288690929914695601120436837791008908287189161467465293768901483672170266523676146847981910583664603488039412273562525892462153966773860609540050575719368133483741074538829555479554213176283916863292081922419937905039794055291680369996226495204811741478536196098848364069924928515341161720030246339433259841665378529892626883574356248408126443567390658132475954343492791357542778765070620405538583129475492998152433892162863386479479952872313427255096029757390315451847355583238985760678695078669443058988923128964620516701797019167674370544912713162176838770472065588773225248205677158774769601344655906107673810750454419279275928570309409485661541823721624174620292760962271041258338082544052141803425490954703184509194805021410188961097793778983477876558820052511553557359383454054210820774818282031422026335211719415646316507544681773270991805290359541331734482602895589814974950639593151906337115388389527000136684285405958661078696690317819215775209017467611708700282646397790125574903203367146860048371130649524380838302371566405814088944111420798226653751073464048721029836297818019073904816888723404601583031490954200874757902021266674777242087514913870878558670676860626772289551528017873595561183403987220544873374465959559498396842096335526095149142547202046084121482914634569119492068959965967794125401069319887643303309465550038454853711893596744546136871639902343509863908605406064972492234970047911418993885612954948143534618360058692620286940465241249690034118339752987196356302843053268604002876524567060669958647877888491635018080053995873431099836583697289535610941390493696720354864401042001688205232727412577474419264078269192194690804790386007844267722491070916270977561664940280272345818551981396114713382356314332545010377653767974638138840064000298189951269533281493937260559643266932490526894532210371759444533585902133886141538715837974780759652055100164324766185138493412478471189952211440352780399288377713112648152421883711164865498204466016621234868790530923505662483903334957907724287172575616596822550475927420299603024481804455211974797362435304361384902158656585218633861067387663635683867475590385768691080052073884853287645862561311332436746800414381981861447773936328665125555975367192650620870537890573032536792594454762832981145086982093696842876711751741651467452789757709726337510019906688752417157099382566593751931369214758591371960655494424138235874466736932897087032722374276198431574740755478694915685093989498451779281474308969960868966696367733948168228178378455405488003925178418698437613718535988607132330970976731479756527692070917761175346271159956617545480328327259075072251681396063839467164866342484003072848668148416017901226885924399823064010604082867470086701726574008749206636993720833845355174873781795174283161631339395116790793545124357658650066484172326774538748418987781327770758417291164828618563597022310511966588326920688003957603835550966839381340587860516094375218679066285601397338297478368911952736224491746156678622554422628541300180368826143651567247561616477987757038305403094478446097166046979256249885484282689482327126959807451207905154741518140118170247275552572865549602405953265463659965327948060068925005600574310465400539197393646684344998883181756174927682874748199950660680642825235727982929092887839007113540159947967899469414583900591433604037671289393136028358788290730010080329409278980327267298195801333615668224023326082228189071127628720308808769365979254061918423414798768249133239764919080977671652912243084331801421966189879013128146774518172726472211094828680830161898493717597985416225645896641576856765818219434301992045742718771327827181326384502764873860107104829427612514158243128451411798365222540768865024211671688195766264043846850047073715451734833049019220798576591090371066348291066411342629551226037594816603871453864591595442900145329179171891431168923301718602652866436346251344574850780084059391146794134464597482414512617288593648116306251782981458647873908217110126209382211646529498453762638267479232704499234036172848709119505015299161365739466578893200117577643930270438886173270945448600040860654497998706277473113736540133817949265773620655151170314476987693898196817446281524686619171774125533189362293641396395247115872188370352074205211214147525407602292014305231084521997983488769712000846468964559546623189425785541797493161655142196153508024429302434969108238073704249492262216317089950291851543876559416447794280791073363706757296720412923876869314559415924857731696901574982494092121132571023643262104270643144399952236355480907712961460251611203269022656071268918888891880091345539578548409966798502684129162862563635024824026713674410753275518533273705999295644943789894391724616483403928102795146195130859215998872606556167592982029762249816764958463271758104311113686575835909698550730804283776578014894652879988091054171902050606757395296654375478644693863714678816665650095884449616266173668551824655521912382535605025007502854688648849284647842802692897257595791774156681371254126240777924062040061440164329362683523236965820300557744820387624661453296120805733635387614500763858916567442530462298533032790878233969125404174765308788121970634661303076709176150722280033331279744268109170680806102501162386947134284841936739689098146734167587378536103701931055052495499340025881010305881669218126719863546112338168806539516252726204984058875692899574752032968906482668018742016811645289649263400986429501932671217658259853732563183795941465065822901169531728367082518537917173910030269797184783499470958315261345579465479217208762690137376643586986904716037536017578272843000671173992090227838134536417888959674564277295698953091213370466703063606247813401844301626513049668498710753737786037400614253808931665640393902373807207526645236854443767421959927920814049490971068751595735975482505295141622982608019729617497563255615498211723644408053554900858472684771185679108467608692872688218026632892323696364835237263912675837472100285115251960144434803627762942987290995271360970783273384536233778788740531102351649082618306877037256451738833091558477448162799764408025111158455846104278627510484566039834232599726396081526331732751975812344457031674697166214301291439156136783925362729482457629443848938246102339659295719215514375945674090828704991826411891560967966739362556990743467428661297652330173219126728937000278478957431337587669966651595127266373215943016178371212963904264924945317127369267014238753805829789118845470987226986639385075695395226191813767454783279536354406428097441355293768724218576254057840590157789861954196996158705301958885334589151569619281919220828297360192253397919428132839542934317589548568194031313270850194773164487601890745431109380812096872211699910584136060276229062519184380186632841904471354443210644740309272543041208636427843622295203542498462681716913801375133824534548736586544579532996701861750199440081812373115146066123368525707462397777758225834197457170257562929013348595928508845665242156893252068816285676916750240802612195437911244359786731472471706405334034208903945294866394331472190271889868178952561237984816581695053572132412905911434156497153289181145532756634236002232212464475818407804365850177764316022709671592061549139481996384299810382386101523445220262776361890896745128671576297594184337424912925122286105233897821929455736762593430009015347893286942741039035349452938072448181939498331240598493251054289615042937382854592913859205597648843376350859617284655636297623684159551209172321928593164531960037129308087990839734168873937596493411682883103682349024581544194494045454748626658734027553489078699982833555124849451766795692641893828489131238002866768656048003466200874334680285562602259667149619607851731799259471243431828640175611832486111437137495781851445841458000041059439008472003206939552081559119900928428973236553080266179876979272015659775421195069654134787386743926114035842744184888054272780313229871809994213137626005034798984355301667008466720172945126770746954180143306412143923080229597282925647495673573687706261063219384919430965097004952851742987807810754229570712194451631134435209173423541512835891048674146778935805838277287669308932433232580162045827941457497673023600170032506156632815230176710774258603281733838910006317598444594039586501412664702723495629435415596736728130810954751507934688639619372864880182096182026260107821813512004966179621620372051968885348811854341765427720385613696158076967336343787389877898386339728571523602380484142157155214676160451803185704844877423945122023542504179934795942877767700242101947004099642835452729884889703012629854928555030895575962891179196187263921733450427682051687718116078032467010813874862853364499961027996787866274448790712584321217572239074527771938762407709531492057579591985556939380589087536238935979666623999500183847020977389571397487027359733976491326040742090451305145261331273034356378486676057774595562242706445734973301221171008433713170377013047098720693576414792273521524714860377845069427475606872042697261305276039699397190801560064343756228267709050931969142491930536737940639027321958249982676058970266040114082308776882463328411163131278563160206554678179749685700146404686387028131534962925618310263241148705841379490906316032431469791050420509944240969722620099897442836527504825588900838886451917352109036210792104705202926345319953614315373258539694194331775521167901559704482575788761599279067641403584581965496220032683008657717421677848095303793661763203688852406288582578856250733687214183626339590289377307498535605068629546822330309176804384339666767502857288389527714794565603935157812714289942467553592245488887143227145051638112730223727715339282268638708399559877555778022012196129445444833931593719438797213594955247013773093858639206090386435240795488907479069685717317735510480915079881402882219120594440890258604883225070533721808160876349822796236879538984856104684278192554512293592454700225714710443368608190934218900499130653578041896871570862777450794458628488503561667334880224862620179164119764739692276143221976586665881053695144872962113520003084728866344571521099058541557026059883363071845679221099097644690744528560859724299513732802488783893772536224504689764161514198391739395095706359488424132034616445036827746026548206511419810623414629860181037206214057449471305930650922678161560160904617628483913981413232943174022433415310028546875484476528010531418394081964279592469758379716887948526108873169415643136694576560593320005077424136497867594298336406633326652611191804913990337449636738973793922908615072315468261063200796480126584106201521234646453326146600800018853467656140557882852741807471743291954701253044627663942138433359769719259684590662065370261777142645478676327547300753339921217371524680637824038148829626503784274778720442679613658267888883711706593180632449486378930765019174840946836039528857862321921873737238874122897401145039185813684771976676163054233646748924114834433667636353657999606180111127696126174286926616400529869960093493980078549623081691534743093017465361909225920973802121841504823511185088630498442362522065198619088444773299440374734371631335426286658496316925441940560048170098432480393369166839875218310830532028846203269754762136572630165262539350103163443919724716681491340716011287842143148605809572327421943342940248897029485833957326095162135456501997835387074840836258206040191793374300020707139366247553520933311840504521349145508020807127213366865187118236975769527939791732311106784463944327137596458910900830024054293844056145707601014946619264374770815988446420085110721217862660103953581052252492912213760505124394344552115057154147767809420202365571286158042557440960270748329404489680340246665301555616833634165177620488575908495914954272236306019792909172013303688177207300215266400808006818689965161779227592590622532999832675984934200485464625604557143069123177374081469845903050723339121385359176792597733240493164581130521251852433339523443653392654978760336331695317647102586018428258104316921097995333494343084882984791095473752554245711164025470456787541814532912874025544059994698288317542375998493982792584800264513634266723678463805701697587384181198644604575820933857981136293793321040628826088180630903428719691549850080291587763998066387148854680764997549615533635715646900047080925606086412396439024174658835515336236171434598507082585589652121474928847119663047313935137611397814898841458079480039938923370734159349911750303273654336268330171754274072282161041341193045625689297196549410922839927673240578852265290980328601371838954150686491459423746487425994957308622342711491948621455740512422033779294480007261461052742457313525111709541963401518874116148462938559820668544116058581522235995687644348011041197916147192379888679657665653104045126761535148361918430028184002731910385145974352342378822646709182598072442568043173237671644931219550716207612712687152744233092445631958110296748451598087010856041496135428464567201423847508233246257532078086143372323161296136559074239527676865663763801350226923508703775701589837542903129078723762035006838759817513512428360445166174924375253475274444132001035503647796026294803238859255651585793489957942198177269769410893393608442643720766061259024575030108265190235663265808062015927302465989095617877810074258298186230472420696876800776635161103397793221248717221266758409221104302642666960188019020007286008237109456672521019261450238783752182282858867710634362115675185971160173649368359384660192253528617110211709865375262832463593643848141601493533081114750507695959309435203178294716078303508401702954120359008605530105534542880219015596201350556214756380647173085931361067200844809053810828221665158958469077206725084188881432101155296416962615755408216351944112720652047142347956182688603955400179722008533705936350563174472460035536281813681093213046498593788525452127902005820130322004027615047296797473251070840541005626201439902844847612498242742185257747261835851581777657856212500141727236402253740765776796830730273910311362655857605444935357315530495819864940200248149457639487431338121479297093051928409415925862189382207655749837570017421284233019973447026087096932243270328790611464708938358685104398126428749551651195369879562006935218017277262002620180544571756399466489522735846157773436969884697974733613881013230951054051204778866043868713192888998900862901489711798022265125071030400564246446511054547249921818691399881803144454990289604610743317359408080662248013345224869089942517964739570589277163616206219737809313461994496176528998058385380028194291661665350101347983400590029662582835603996680297123589761923797739339709180534952722384490590340675233130250277175099677729217197449972725556923578158961355633223313527254677167640001893700315038250608412270071501069235083231304025769976091816944802194966538200605881629335849574279681148794987284250679054882041398881009662014383679403421636621639649132040119109419717090895013627020122204518710024849382377204088635306555721003188673378713134340373199902386840823154690034752456708234936144426547108732551767554396018058991571295404481287135280714737631182483647161595841225634265369412302083124881693661581189745547933163336625573571116115259798293055796270814336917589512401179688630594925877962734581776980997801960121290283902389339736312378474070333430919607696136041389002917540516752813798900773891876504475771992532787807892301193694684854171346745091485461745597181304747090169358843918108566116093403740954085719963700852052691796634154674731363619514174420008048886629503783312497810028886519056385237270522384592037950515012166777278945582192999300924557750998966927662469088239397028714362714989986067398435209141216860594223523857865443265312551507706847276099919446470956813855610852782559324541787972133316657435397149713827292495560858565206905943959680961755438742613258301736327329415675277936630751319793491209606416631546745058972556543203448285832647935574008432926016879176353922572182247834368942229371801605044493134211983765492892956861690052702412750930301254310483285818942340837746646327128071579321574726522640824852595603157425713585596816001941391967539525765510439058155826878363060581865766114928271916415179100087386975116891980407746353486297879226182670746181072473443590619672825476329336073013205501484896380278647294239528120180586017475109939560688429870786559220211072676505785967394072489154384197481649653820249340585043818477546372046574282414137852263570225697122244666180098984155367992290636788562864659021243572357139879091414738470046623748058708942454821063471193941331644497140488377128927397495357534484308566850019162723112061338738795748165943212141474958667117454655664261778557132592013782087185452976947264989245507088500274181372475072851690521674743092094955271859177455358038340437823017368355506587656153590496376349968243050608535094820987280030081281166994334530007623024751630117994184589780103811034853580770717351349420844773166818486130918258276052847243094862959517468356704489233886849377564878092244657773817213632686531602855846691927137626322181573239704817364527835011976983825657952355821086742640283923608407503154959457000784750779673363985307004974484073533913633327586520686985765748451850893034220871251097315023684446132163336183295040995726079738150886470429600078861342716196829510581116639209695664592973874418795877113618735441503775003561131397798532673201625164441617376307000902645017311090249473948133564061792340714963171363737333192748115592172655788632546379680154122132718660581979689427895547017426697519334531434700534228659685694016802688905918286860975048860154562598909898942259926161643417556506482028756838469188529815829026647967775884788918579254811760346081388504423430726040296186996570359975940006171159299054688852569960110445598783698223691820373230945189221012275376307005089526036564656493975986705283908257074494222567242937742292378595971766159160668882434498090279380551021082581639154276467341296665857255219523074097230152429368908234705355004796079489192298892282506986865806537682451932240737345611839329048068237534301755164579351050395667443597478155667817426271041895798327198777147240663089841188028049621345454952207529832648153706306138300264587021176136351607800461285266851169419086608619675135947985302927129791555786469252781678443294779228414252781433395679712909116031254113319713776875659601178744531364392259943323360295252229485930542372737742551516064799922695116264134182555585413918012796798705805414014618545611210237905504962983644231518328443734819973170687307265623213100501081145091409395820879625622734993228543815384832234174039797304145623206730607919270423966742756465175838095227716987337377298952275768802245163462112287472497023576098677623183865151588495019806941492708094753783989022829712911711805846515481995877072180057348174993523345357650804426966595993407375234445079561155414530520167812697146374571645058236921969812385675548396662014200305481107605451551191540860212072608019156051055184425115922182662687500047433699171239920843112630647220442855428302237287080876474486332486647863392958575938046597500252914131712013148435940077291120509044560845154547672045148077451779706083410734325076301777429309325089662171071041242220939119338844926067836006581972456910338515023137707929198223982538459092902036907908323193123684425228198701649892444815768010746939459066559045577217103767555123386560148800746492342706500638611606548616205056847764290840183771851768339905388359838110036191380452822787187521163633455625665457081688623669867220251644475049558793356963985181613099492982394764776169937040096404956899312208624163340916075419990921774332927660751509210234738533188827001876971557082536995570670771551246285962635645343353196661820710369469375058256884552125101218726277417970624462884292257939243454012542339860129638044948292346564574129949193914824236972364298467684184387747958008369064030012393500010379257033308974018085105002613488176752417552352005408367719664891020668129300844109921194690439524793855873896552713309199014524142210235031738094780048174735151829075151768979559930265916524917391466655871192564447057572373447218072270172084256473911813526602285874685498713741146008617120322757640183360315174464305783952618110635941204789307709061887040761540213897497972918907263110193748487981707276871790822059878015230548155915631745079449751108342775894109230467907542722361957660636804164375268519120397896442001149379407877141250044070808937291065166784381324341092685666266115994292156425822001513465013941735192851596172907444632394887578122668071686668694272038626900124919291913824912951704005016083398165277703496627678779015292485960543748958843957533360729021766877708080971692002417549782574852806446007469169803484837789344545128038136316325123090850115470861248813157464286323813110917745757700424128142140645359702498272133912392071638937653572096853695801753695652428946449026529639865138938556001134059945652582100971873188283606605083733804117490900299517794826669658217649464540059712266650677668888020494573887932574076860568791010923435515919651688989225936901923410225378698506337889575864439667906180430258466175833931081964975578464170660714585664758012936840344344820491283238963914039728233394026066086964620888762309966823815708180175237873637790332219030119293078945905564984009579276673665771892919418490901046854610727429697578980230282399714648643013008302855773033453530144470554500176707304172986013607593172463044260516854992169090754488001611474225816537250204636852721078887675036216086396367973404488690781940027829469319830341465241943440387057151635994803551171174688844514914577286934191934382294810586296449813651874262396806048267917674940702700244238236969739075336472812898770727202299253093718009367275163614956280662527307645153140119700540883179492590667006479437497335121730896367732010889341257820753273577510968034450875871995453232263664843274956419811067236952435105459612105468462611489212242214124083010687418443249013606494948504356449083533427722667427767875118479024872742767750085455245810944249057944374923389156449823556254328236064819477827503082757003165534345577765397796029350081722406330162503096247501741217129386626301188961715231743205638146767394000567079452239224493187414278075200475223567075564319063471773164809587633551176149609171342444628416750737943146926695812845160151986548638061551564460234823738756431576770137871659906035631002470668077563823756639328860011663760090883061342281292845820922402595842948793463214356978907351660243557141340480650603269347721490539297269361696472767973406714495717407961884309089214757658079970446529880182743875068651220228956752467683908112889410589697201398522586455274047422785907399771823923736392757040867915115101971233172843763264880795188509847170812118257593928664225087349896069917792443666336583954164282673464546003990277228634627615023913837892063952019906343961280954313174405800048470981810947384534644908181665926366494272127320234724319564511881926602961150521139811128176603319595230048828151049656540329282482849455239567239517024583428871625793860790212491119313607310432810923340462538192809200760223660561001928592340263477709724496643544465019188947365841744799447054695321180272695534947283095108412199547200121304180668527765804915565119301549682977760665843643461386621505971862931312708502062236614936739079323113022343832553873520359700802227756306047918882531622244990384016021392555084641197997293043254222140709155549834579904700678315302160805142555328206243557961295573499537291822990988615503383082691741227723216025712072237264652494344319607724642656704383617136602831904496291056340030373741259847844898722958287178214890733024988181850686054747950464674837660790850678738633243371746827010557829108595778462326263103252755239943862435362624564965455343862320672790273574923602931736088235999452860913868472027844792292031973528314518321386544422191080117662083597281031528667232538320073308094152784574423784554849194175032265987001196267874255167153589232866351812268480518355902498807791889738245410708037791522149797506096598324973580774806770222160468239343177671891465728650978860932940762880416034687574004687529472152427697945187124681181818478783049639077294299378004580148239976648355088862848242812342906639215705585510943578876120385272442198154850318213527197095763755483354902814788228408915455158133425059181307721152320697766315028618213661424174049061390963024267110423732847487822736778977443798179068680303596080271405306698343321108386712992247266041686520274560774989484580786706456351851113548159013124305666966101466486890877142453305591194856322044361253459070778831288829295896612126728669486733492551236632297121312181914837161871701041828857069037765116732597418504516804875992138520186300204147617046175708229941540684107402897482192254442792644768559863158365676513442612422734028731282318022597006376860562993963600745672524899751395077801777271708600706054814986871645638057237374425270924210483877946043334532448315247525378736010659728484066447617142044005370754721321581563227197150574916695183481030719218369437055344518475035331234249791884576457793115344441354945595708373980689530134455258958803285741515350289859713398004928780095091052924939982247593106785120411077753418764304452151010777818047263876222281679591259513220370585919090695000668532576207394004981811236048929475811325123957640547192473822411638218860248309193167054214520532939949137111006968721796682893760524287867861817465073561203398233622754335736926467267617397259925294380099100065728819225166250516856053945368377479404165149625986078184626262489824198113640705008115342410553354754303846074883187852330243113325772087470436102433673769841367058720278394568582054644536968217664904026369726572002162817419523331820698940827185958639507268448248706971981408862160109157640513201208016531202531623256363944792219687496488341905276647865746705114889090528309023872531625129978528571682312786106994964601536439895113264382944960392990108641295595858744878407523329172447791104427485483590192053158004774616855360192779703294448288734144536739056083897314226679941039544235791547554650555851727279399187172384398991467441021027260543953976063474882403958666092426344544176053076134738859674876979235856898050981787013437264277027079913637473449333727785874930228953695320399230422547994771805114333244802806075917888536801638707855574239336114936456938668007822086942525547032056243736632800683536251760766539157576755098453482510779097567947448777663601681877692402434635734082265202212414866617953424419392608651535479510563909885392741509457350773651488243062364746293564824865127088760994530739054171773654601055845949462467217022338733561692466349129197837449139705544818268274943488118554336111830094211524521632686438796827079806362281487057972173178910663759048541517249633299327479569398518945712701581362272146502613070827545807681960412636335171614058724482294753515709326818493237043702680710663843862570796345715547523412903362853259037265367705118863152991316384293552863192980953237532204015585231173962342104801990480857490959891850410363471531751596827324368713635341511426616601507877607231714375879347334309833366062430671308119034712654670225252316073488401290854825330751323242924710571528118990433864874952144471470977022962205364144570705158558517292839445903676292243514764420106373382573312355849946488490963223958433748837262755521065063704573508857452946274457543165352288230862813402658572310674728413776229577686843900367078330868189481286360061895141612389976473835652575580092845317894281672405865398386329923849433718188748976832178227702082485882557925926507212137011735622724727467556808684776710720482811878276265668435236679104681548285735381632697773457775332610512923771154177776191681061672162818168941971359584380838258717192095406324379991765533348721442401591002851857397865370975007817315564490109703091495463939966433539951481499311251928346478855985522341958370182325157081302647329965436030472648557904036204668133273986606298933748230730220425132984098446935492025654121685456281024892721322901548201093185432786070865005262184195244598047868184066207820293318151075553848609057783176701209685591833237739976010723849135277798024453614271407570429138626189469121060370235249160593710718501367550510243042871295038267940624987705331373493095207450387383655832962816731851568499072595698934625890479204331240308509734243499373008067701245726746325215986449173060500368993670872991211070361817300604083796326771852365954311722014666311894988968657757720062113889093511691849698048062009716547269989056770051400968415497924536886548468205923723917332946045045235065632595945558379468683824327275500135114149366920584220217806191078311158274702680074836066269884965557134896548140572298252457217385646870292049202035967867125052817637502533630026516401306024736157287928508706535470406954504687453009735209323934103800819741838521137765466217209292642101468288087195006936507630661633293696818524210818590831192874623841106728747487919740686621683353739988528445651126402343700749356768802681492643070854079395204811176515698743711908653157996682102242017868700583568307980617099259349508713177262851743091819118848938610328542564146235933089059814807881755369483046025322725564939746532053170614897939159419371264495692078505392843389847989907609333732896263962533576238622340063431669172988736806511935577418339040244268653017585705074874855239798183351780167220231966369711585953601776533372057142698969547458193140765241591762622239835720017022845702503469122572602376850859677048863425670855282787968614621140044229747503898186826560765465078732913295838345804605407113934110067784849952031500982222443198543391650910716314665684374223516479625384961646511486649629056697088395386151473513554006007613010583131607989418189953124599884811986429548637552905928450765489281205702633131636027166390714220865841645057910262789742016139876026251122331244884759716377282156217124063026925230509346758722461997733543119295758354304858375255465339924111687665420496390448728734829312540532829225618193305538617030472693839503614762175675417771783354087059339793829581966422569322905766358018756415928518032591545724527368828253159798153260816952574373082972920469241454548908027543676681381008851147427336026036218015046295514076992012141996033862466975252311246706561046665410010299376193472494096205734144831267922787875142700623151788089174041007774178153056207509852733366919235324636804209753510244396487840605616409659212507634552144327039602134306418005184304800070722666708229524228750401439244098293515333797127365586892565500294137933068852960441454060514471869137634890331512253584197239501258149868958360293538702987741500193276931427509183316528240903328026687838641991815744459548311582236636039862683699485044820865207056223723425075936529741334535916048967903919874420620899098296849461427013480479050971975165431762025524527346549911487664268841645283366016569238726602734394811207507414071437318271724725468462127889163965642337938643197172724204349464726348588175614402964815218231405446678638763162536670644098774231095717798136677441812916452182621775808322709149620966122639329190575298382895257294122877507115250329737435429129744501026764974512828127817675743170367788416167255026824139603299757638523744192167372970035041400089810611344308013891527428552409969473809482233387816864867074332923084954599053697032712675079965834056893650750747061833379434007784716658327071610983368462133407789482505208599666049015606094482832096631828437858414833602959330760981316220386099416171910353254962045492607066625241882154849186665789411138263450564856131482966563165985505880653784418755505282611815237765100488903569063660989509378712544254164066695009769484814743919595063104028369957657574983777552344339597100710229306348899560053355114155824034270511025671411594583803703161730758315583024407512694226789475473604056068563594296936860494453920301278430023144245729825330422506306143021547691343764482075163227091576948439471377879866958570169476128849214172601545919657502208921631527566066715909117657287586202461688324113761192331292454478272790438635898939955215659029565342509601265006413067132655888644267149622462735411420688869917065575332729376719916970209667904420981087527055901469892362514229660148820982974115620702658747896989390578215313254846217844966618797124242193878096475205945436351515079258088847569796254088419277126733219622350588522238272880885044187916035247732563791420434378485477967160216203568926598282686568672405923059398200500591447722784186455953758966441533752082290846707431586482025560390814197546191765591768943492904432462857989184292910247424816438864124450037942315390412370050213030428073184329182736114353000770112812435111353563449687121637764873421961252231285449643856879975531364538061034365302261105601044434585923366462417875882536350297245119883570725518523030514164624996106963672326093919440055623651454117287636745378745040529123555251750271207098284375137605980004071948693233892217758915303862333892993188509017913540079101348441308765655001695927465039258714880704718823201917990703496025411986506444310474703298071691380645570460245116972159371669211420451671900844403905672740419727979737685756762903602906884474066769269693548459515154692470478653991995249588973621495347266424073457121075057216953762108305798931513618923553184683644205859391734854594411460516750593177365468863063094762132784802362935076202297382955112785136688664705110613463472888500674112714041493207607215332265503418981297414150823552769662481246812205968484492048569759507920467759412924119846651038872989981127338366022916851375631352128747796908831751241590284632028102560859839777869995845881102626202333116998219028112895916712986016191591600469069373187925815132913663904636298781317382955598963528409818641602871861525749261098810610999062317030267049331418133454308898130975363389883985455966494996555343285887799946997824148775161788929496350612938506589737114932834477008782443511889206603170341524816764390645594284335609884955255445706443115946526003057655989247049132100101937746930950943370513897405164948251697641623038247877917251993087576039741838452412223580428427582850623798591566998822070870502727381878764272821301198439795564372974652448995841599207048159010913075741589788955467397075745603218822208622040193753498227201060028386831135414949924614428253523620206795015362031191208078688371395214013708170938928964712085879897793046629572661260588053957214012412332957113008100442314204777647412828022016331225822549418169029331128326302873388878210517040247629829701246005222040223632633088051975840942758816304643932118742255213727652209458778705214313184731209262430244676058921745267421765559596386491839806529011828923514529872191933083282631824855134898510282923581115335271315596052000078288726656084099784648199884063034129650830334671724794316272900831083156182871927208807185499359996777139839788325669848518689112167936114507561297080362477927135297341016921286725991213449110104806725406915453036391927284631620722814405298650069475939375182731630949330573190881940713821729665393204600120528985031964907967684224813152398485621014819657570048874197834619882583083734881063802436683707268350702160441528697095307132580064745630221844554420217414925806302076197976543479228816413985022177919841002600958495809027906582033518987616977233400873702600085685469179595650787364168877813192057973426769559767063728500509556226174428126891466130961563044447283468176153714239228124333943255037388243334952621246447038946634341611923496618875846326353826136998574731517834025993192331108133783036083066503584502152992391475128026702319798049452996083276450307259609718484805840027253266847146310820272859349820468539962157110038419007043987118268045063162087797985240718246563651439434289915976565975641647531119699399960200656850738047885029514826675577853799962011595494575950092799184931643753161542919755808856476236092248642266270744035203487174080349603693855797332207199978245643597373258304388710638352733230438719698870270658176372952513090535474508006847772776892912495392001943588038294084244585984755857965629640628256357247527835034912016299283865289537854252852971122863164511173391858319242069318893733742265098044689170721163713936553215105932834553134331832713794502536612100770234089571292119071700772049776785843438610679006085394088188537521839075094624774426672915763820168542027580983577968375097067002559738097553921427082915429243685772133352098734710233979435558702865331332399972965958828496706945457718078413993366401295247490841507645476469275080866106530448961106758689726963748533527385946172828358853736778791124836563901999845840952599114455178902421707140606114269490214656150917442436947177321896133179148277006342135734079164039717322112121198372319193648469205144580247461896633991092269880163078657156139892246498623978788584083148421344763248123347238029368077267210505429094975748746407224182994844385643625099152735454586523673043445118466732418419786884814445919149799029740118990253619534607750320460693657423919727534290460672282748608299511987557545152391025790845363958519320229488142020955548823993724977817730042230281329969266050727479587379504175452018296621340080753374680129668579841899855731277357096085077694228810888053744177828805626845513158361539324277005088463206747187526355158758732918972999612268854808480925373738851134377823066483726366820701797949317517009873821817509998024028710343150130825727220909674793511939535563979204830460851074486662974753988734364194791844675788312719731608538068628517468471537780486704600919761186732726402869989798298236595626047656218274525579304161781142008766674898218100901091485854434959412058310521047603846999026830272947599424733986995490660767930564768722921393674463206555225812049740079004484444702318156994853649877426582944476740252024032113066376181887786907083624361334710852395944600298403352208011876811560916708502066741254162860709158757120438490240437777630109710408316236162821265905445906010823234276261780353540945923399542291365809585583157696054427437296109204408799274204855273173364668066645265987362945712772692895807251273799373591774526831697736319319632372466003215836950691737319997302605453021096434360829112944673204708570078613749676285922681158539478635146593618454471340968749750242317243386871348445749238748133651038695083067572990480617790124708175469791537104566421722744552242004099026266841105822113977356782817254465288288589992191969506655222561096440999913727087514363048046664446688076302494675394357671341699942454468028458279086008260495388535964206964874280569979994438079276305533363995851800403913053604463994634230910221538853801388739336890298764733798516196403443058385531174006774559257559268862912477083422742500925629229035540666492116455741807411532314372006671594675573031623129061952609053795971821017712346061912753116214634513019859561909600710952381382331825876846620203216474647505240076067048106483126912921170415108010371551675367495233843085644369352505096014784351959467726099881471744686117313997528435686796975008696902733442670507923482395666513498527976102751217751200900089796443466203150867462077720268035687059378453447184915536109559887176295781582659144994741217231921745610283066018209345774519531189166801615581248223597512938113750194838154257904224265471689767286030610181075711625379987506108372699675450345711306652446493290522660170590419799280667818571457265174819305483849064888945541439442905432431234213855155585639390565822426828379443688983543796695138053230882120974484876501190218425994984410985106538631204198029868563439554851475128617847639976456681919625815294646140358213215347227226455236198015140206663288160859948968662962138507624574917040706576101916984697003518822097314831250707449761732190077376172593566508513820557605713723175450299376131599343779560012242408266342372191106146126255875300507033800246072224158526279684802792006420948929679224639496463488221283211042307312467429366805316242786460734125364629908589903257640353214805682408758736917224400484049844192920344796846731537095969459204407184077267029445401966553740426960185710138837380186962263357442801632354341989351531247586265899165560635610943298693533793826948860064056055269693857445781585488060415098922516048781846017987086593137123774282261284208852410261652009315093182683778974909316892763138092925941736375896248330808315931951711812975956864885910394902725698014239589652723304700157696408315026378770833543470812845143979385566448507291579964881359649234559622168473153342224336787742253096939461066584793975128695800179224951440550982201493690967426968603001816134391146936300215677868052084396984470821657348906954795580212392444491578293712103824275131679333153439713368814985368764791320175847414521559466269878374487245023925054989517336853773491966124052403309859596387828095403789647411739207085132683688825457305427030471079338769417317027780554211832264622933871797977824359356730062651171568015514266738531803713763528099832187401697295296536858620133819401686940953222677045539443717607224102492359400449263421131838257244882617212195872797131187323929740913206978567313499536095345967864641330566158144470635445765107317368180830110917627647069790053145711214578927954439457166949597847651241492723930839166970211130163965530193115229720901548859040505478182329445387803317593219810100586259701663234985978860996261133247507183092309512824820831618799868297173419927481296627560697344382687639164790722140958112005475363096967761680926972443700846830200803801676939774532950872454416993414374995190560921032799816078418008749656223083616238662318070791202974743298669211768677701026862776030767825908111797848307361251361226124560790801040955126179121724809444715938477240650895500181325792953138170327943564506532286733359327398851906056300444415221179398139888470378897343491936453558909578261880478870842131406791011212265622578000657155133615366402475665595009154889771603965239459599485847842940532009094869701257297029522995059064753282643984576523503813556284821738889978118013870421048095220646706827558976120085477509663733315174422627341273074648745377596912815100181907950122933405578622975242663597939596319434969588391012938603518155527666466613554913479981853840491736525303337469052945099079054704161988430598169649608013096070509813647318487948628062212799381033378018101415181180045047018166093185753501742488334587378989067700805826313365317715189890589062084520110000366052828994117543601689380254788392837512853582733461785076473843540711053190782221521442281533024269051439026260828227989370588044045035571458383709135532101888184314783427203180463080641399845462783153025334930011582718191703033053461156998998554376883417191555648537837445790939925999860125759171886289256710760733028507404429504883477117097868427794765645530331164511467144828047922743104581794806317485414477812519873670864395570560116305862231153417160475840947012651170708386882042159473557227611899472266845708895231465886815662855567029760476649466846669503760028894744694053402336359029996243786132807895015557681685638145406252657168578716038964762298630092922444354581057403390930751276915769192237318985459246540540414170501088730308020145719871360027630622316995096528283225259339763637513516849524311927711741311142447901277343797990692919180849867006313952871118515875778805800759123166163603483125881679653168637811239985805623193675597068815784657082482313584592008380696329335208513601770894522476661305548797589205417675362215405479970050282376336393401587546523420003288506354122845145665652127801875081719005660957702281453278776778070663103751425189242480824299890887457516110639099671558011330360418618789304518587314391656691519412694724986327507574177555093375957337214526404537055342027305244349370810344738306275835822702107333106671513710465022366292026459508032536334776780972197554937753219878442713299709209921229372664246115967780768106129866648667070419307835566607787559979962994240822975629782083395106611427502046711229481858654576825641556667657653615513480582612457823370462282434266158524547012577533961782738651476692117524036343215289731764631889277091306295131547151141861873092221856127427673476705371883453033828289293555981771106321156911206197402363497305857985681045144276038461137177726321217124380661791548669857145537252970851381148134020925442286962401012552556223077557666742494750096810791638939669143837866146048707407263919582702630268311970214770836311070234171034032891036268308010116371356069507321188833406673847623493062657688656242380498017427064725160449439775665145911210819294661432936500909862219694268013521986951768289646587678498275891877266436570794646745185162898953063119496789498724315050889652958441861891205603353425589196509572621465297686662970724502629411008704297469420850076668650938986980954541037558168058723620491738765954297634224495351136394392710529429622499509054662167753077444192441161057756210529103877225148363907407590737697554421207382188050079680747400248220785733202275694567062370587120126037904862435945052855109572110501522747953881991230324311554406269912262923374424252476525241143578286833486828065417894787984136943447197307467513465103596335411802327521571106101617204063070887867644903453191750543230441695384591164659257189755126919531651837283789779068419382733386944461998002806436508824728414420331300984595851838502653384718044473252376757682855289319574661991376820532373654291924276980598361435181907982409651971341928235492095794096022103419651902868671266296915105099128257832860397624008484370991614564013297176691111986485708108255067461173984688943449772193988045960911808594594242091002482204354577468600290792405443965907264074695393822345803566113201937713842728526138022190311609898967479344629721160250963087904866439102101464356073065871953324844859839611640515794168180129093433409133962999091064066479645232745485299792015287331585325519120841072549229374276459063564151311157417800143883912120260680331691746952997013846964532949102669247027925019683062234922045593313323649374560922345202906205777217439591174610887216102787616208573997834127802864448452681022546582292519750019775058469946515223258680353471718844836720152180023692860915486552229253094403913382390834998530101588259852693420151870182331544308941080367295779178079715473393534013983613867378390854140126571126836387420094759734242749858466522958609591774571209372412113869152148157805753309455767728443293908507872794366629899796201048655761451866823433045888707013993442835183724774576197012536682359301870833421534877201213054012489155102064218970438729078044787894419465619291880299707751178724870424386402451797990009814777065645627653375432221025909892815499174106026817440491767421451416155772410398358426373774882380728586988616414786733195429054449494188798252025326294382723607157985234728331487197541498201686815558625997130312949703446803697105459374532456433231613702229804029297864712974727655656508655817273251813515994369988465526314549804271404919128384433954511131750703132164040194399366014025998524929170742884504129703028637331320841041121040008399906672722284916100173577910856273684582423479240115766655169195467212970826036360373645556769108947904590531108894288801525748903807173103621007014454535440773167747669358648102758676652650986504741251770614314215501807708313843772738939122219740807130367029441315214274727842308531983358862208804819626645630576271199657201202365215431337104705065406259259956974695970288982803785737160092213946245898808589821510658478444857606005763803697746878332260503775274388090836592803907838733858013585567602243363108971358650344716938078185072783740068276243829722632280658203364684583424314099140529816147307437401829688845326696362564934849573235563003230809393923948496278503630978220776597157379571787315420555315342829522014885700556502431943984307263031657589526537902790559748116322463482135379320336555663392054122102175643785232562326031501114177537158247969250726271153731504097165990596610343403065428969743707359797221975469715691527925548481752266677058779485474194870387241162384439651443009342990675143380809085714818929570585717105390676357876562115963019497319343054470663278088171664347399834590200117798216477171210146337964954991465748054330338750546957075928078714129681968902686033465811666910872640743972756129659028223172385742954148253617049421784228653224660302052169869937995205451736519397553728948267140769377862235175513854795940154420500483840097062249620518942004560266717864291474130767451945791259567179958320297652260366360929886519470718019485884046135233038091994817620822070489735558152976534883345361661689089778805099708798833550589516420692749792394356398794380257594749657022887311068509529754069404688238933279797431164168545844301461159300672325908661878802577192220066041493680286020495346185149891319069519516263176634039947447315405908847946939364022782906895632125020801615953637832488808969222436309531044325284595722933585047490413337638185726142777678584591202032847736177679942105682400791487085696891957808701879759308165662466936316797323437419469198450117007062830849854043374416609513052285872648160951125820250189228664688104920827673472625489951832768924873676465954908566193948922881920797397049025143016826293329285298917011479943674093152388707114819123120958164298931638783037704263543219897232802462099341532329663371618721264715575615758133630077368060072702369294235830771906759750509099748036971577826336737464269779726540694084841135607836212071141230348256395786349285773485706904103177126155761217230528593282031459823987975803475854564711732772029223133500882128231633306663246955961823701757564896397514978855358212852748527562818612082213790756418156312988820750647739648942259838953163542608692758189232915461723710076152746471559782973296612205664824682102414223671684522825324714923675426153871409415718317114219771126983938590264169364534767604269455331310737682165487881634168900246119169747517069753225661076093560121120566439706763111045099063907414816116970950692543689560851131545161776507343595656015073525490804724946665528830699887304083310989424451195563637202556771949045457848273040985361079999790307130647245042178977264806812957852171584893998430689378883448948506628868579449368641434457703176666640456015072688682027777946307122181403706487275424164966520654636204071335929910696386434486849593044712536926989988322875984574149115381107743243311535930622760113345806642238024467711077348389949294511361942999855210827961657240429574774480952147685418625550174185524601210386550927905335322970708066927715474572754601875492084772523854027692547369832068372821356187437732489130322571910296405513220685653036321724927551548805279985304017642607473610514882330267917877482705721943504864508439309027979276237345045632584767421934038988005948054540290211583546766435999391491355386001521697159969257499791597823790813856858510770416752009101544929037530278660837440611334781071341678142795413513375286665810001613002551988361909784469132997600499153313308649381705760969709285553334023447333595049389066226713726413285395889387502730307553182226559712727542754045593634966016400587255867884442556464064867168189687553303352583623819025063999763887502098124190955787744969146132177113859831835956858027210970067820222315308312110194945650020341833982555891280067670246163720740904261168973085128948776405508238544276417434855451606553745765455230954342826141279269468681758769493817690832083830552265575051902858716699437002693713387208751756783347278864269282115472176082780252059355204436046055748196132545543316978806534709276664864616082080379221539744899919991809495445255017575322736596830867116255899474309605877119425517586707176481444170086026354200583075797582390464003027422228288980178732283976176652921798151321624877278920914653303885508629428166503822512496700136188083605504043856088138799897010166581915390075056123143326542032261231440589772325798541553100743314632133126692425788618106686348398848062678398472387443152874652279558500249937899583417511413484609284801391274352139272008430792405652653551407265845471325130395597182156131904865166443508083114226523062614912358701243161777666800352354323570893018381416080895450607744790258681719524658852227533675581337048745368409330845184342356261605725013722239781376189444526129789069428420841466130801966230213908239709993298629686763924898441856645524569075187146601288810258359385041305817710689693004919413016078058305321735685585364750555597031595600701822323580220422014556173768901311967795882939122478913011209425492774750182241285901469672969342274347036913290355100107605695586331534016611381831905083260238498685535058749375176436170734078490783269072249273580614456681260245416043246305864128579218417965676952573929636371620553424720862735261653731103113065981500056697761518153372507324435402247265065360585228106744390950372684387960299384258178479412540571968410011698390129041280280361452765797239304492718646414075732241815942900177748168227851154056762050163600187794239097642596318037291071944725245760891614959291627205401687149543912866228073118066294966691437321297473429278086267362092723023431243289005775668163319950635260896061793378344085429399814082739084976605406752885348109336118309999462643588398937767320655768712528375947550600601685187129892443989808698084548230597240509463677572477532735057759185326963251795561581296215315037552985679735609201176285417713912510219391767040958990759260834750504821282507505108010067590620472147797515052901894316432733896166436428020272167593603588284214160550819547736469013840095496509761109827053452373047756886848494377125662152490055241663630741148011353525394762633510778170849704451149194086762289090196243545243404698721838385793337198731923531954644793364170166295797857748716258597864873304463441924194597104537034785845316762523858609143362732353701859343106329024990908431116825150503872802818893972190986874043163421782807126533593096983168229058972911209739320758250731883377674769770225811833989189384543760514643060062492039100987656167378392802945106768135694141018010454671387201003408532780997115141179692407952627845468366978126492661603139200379650598528131593962611955872547750709646185890562176094705939348331348246224533567855904253260155084122062195733847737346979473284429068253308274566488499683470798059148244872697835362347410953715530416796585558685594911191409523501411769399808977645119646346014044817032855314462368313352011065781865649266392361663649860981766611455272794019172753303047319278202783398842276025522129971608616965848247051748497223559229771108101972533247109163925497583564499749128011825049386941135057009178365608658377712395420333385683596550195506477392608987893374696286401602856900909323398640174975872415837063393464990459671612549383735141477854198428273019387816724658274971179614792950178429832138171275382357139101864653604154782348169347056092140848201286045039195872467746664205151319383292574436100287136298537880110196806657425129769120312573226389626594050759464019143065391517289571299141317309147642812740159724120132314807469029822682060740767520719127009178797661983410419677893332063001752836581813050890358698010662864669923272105173806674682039327170497826471351913156551199191471341686592190637935767354834864512011938080910883160270302831754080088244695045651242474450948494952115395107610860663376035974129009351956758105439617179546291549031064580535627354825336344232654430842030060922650893525927901636466450344429320814728939223817312302809832777462721971872380693994109386596516472541236609640226459039412681120578381558352458591551810017721175349182798679200980299494623620702517025203647249512752077656917466097589674801909025713400879794720178252379262960443983596402521815937313622400005172171031079643847177013438347808420979121925986411357087209613595515167853878301370662510332341445591924912283303059917367349748781983197394904982494599638781021519970336701065805121588790202049188239633023319873434122171524293815263835992268838124925643209335500042721184471763399451656352106842386548235341269257460531378778038779571299000075666914280163546749775500170822952914321291479390251485047086405056194846766344311995115933134600766648899174738638500605142717668528874392777551429062583696880971925140531283912018824099371912063456676293239140329675762776695143313236642408764011867478010544173275146278404234735384823399689280601758075142825070211949585547204404984662473476969747936573454649405266456240830250068733057600772472371863531994390589112635173871479686019529787041288438612644772650824954751643235077531571525265575668711424403899861347421894286382844795541671683510619751176598612487848841384082822462006050064092400111806595990686668069079075757966352611985570607090110844902711934671489925451059673102547412789146841609535586857643263235771172923567307595104604740992164473129411479802354034761285953212181221472766268860955779284349452191866543541118171866836123612563543474457074061637902219803968671428343647939321435473098536106725499758801025302242443464553014490322183096430938616595920991803709430896129531598503018539153080403552529586913577487386854036253718371752574257563732571511581259486173802241157590687690526487404241345909804239783100608641190174332647783880642860510483057531182707342676789929964058455042916775321866575075511513375625177274815908655811467674521355834696463287456976678007087161182721106095941210620394997063704338869423482085960182859861308258841798489729468528816655861423134212412797271880508136929231111291054786032636163062167435647094594559734487000672995499478159959164272477119844306971946092238514111916903835105760734414970816392785863840875390869918557869486781450676232525065432172949877232228456478086354658651480791810885210367811017196512075934515415545929428468958879340733409764684002148166383601382466844164483716433502132947083258624020372116108807276588213311055139871704968352796198769379121902261205170720493697779945874144024422161577911560483514200812676302742771194873313466712298448537472681209133053725460970204802103687100815050157292905194796717489404774704387828529025749610218360251377341406005265091618289116551583966177855583113066362062216505040111104292705302315855467635835801339833298347861619725757980566084824548122862414047154996395669804107948786368502847542516688011497093350118812508131259757727683213805474813226332159974444302982761555268724629949885998654849855611456690189320093589200074069679896433839912315555514595965979423403038848012309839553962487986035396754810799206813968074238397637768498074383597154773893020655472794735237900782082970725870981552511352184065454231208780021955001473620760953383937635164689319845297230174255368584107949040203732105679139037305725951467995420840065593980879852960743256407886554865224238396347254606799611122328911678662808854343343301348442715917097793631501367138276970626476611740694492442615305092715484242621994146644243788060443821069526246330121075048215504871071383894711580315256356823745421657151635490085036769482914719122554515624940703136046188881197887711371318571395498327331055552919041794737124850636802196176578102263022485859959880663609329264127247225297675126571265262766174506512744999886882040568528337185883648255773875037426554797808624098310870236959926329826355050807013386684101281713091125513366109042184600151945315844662314260873003028911411332814058256508968031694326905165655944190279306265223079023348725817860771838274228454901565923777135365627619192750945805459580718357905253196015443266875578138753240619552231017968804426766074158824129526541694195521337137725600162095997041275193689139795622409889357136945912400708042402775029627388703988364615940146003816512429866876728612279389843140320864770485707550569433130383052121733620075026382543064262357317453061866903159443188066371908673860695132922833049300280089063360639967741587805334620473066558703457368850432725065337894608379485228151774891527469800266483769216964458552770615915029691575661317800718648997680372599696710063941021107708977068977366441410792149405911901684889300129272203429361343598985589411970343889085482236568177870490052502989530636619299420877235207713993468291457572880424129628001819123405779398910325280508681962006272468226606297448167805285190434252387480364981998394053796574074995890663897605419305158512927034934043248059846501946059969529412385648420244145307492414193978659358023244632593542593446152773374006892336200565539996890265191479500949483866533527246594901346544067243048115314017338666058436431684008032049968042039733146422470673496556082085211100675606119660597296821791369491139899520253294464045805712738095655738984399051853393765874094360976504794787331624371940140252047215891767989087458811835414278459263590571682490190549942316438361116968190206807675788199370960836360336542456454126416879369124506466645903476588463737976348381367491016167046598417143081572721553527066184739510077383247120497947575268559678635673989910959535623662912639937455588531388472354242828611834145538591476826781792219752425226804188631003110928909257578885449437066301916691061696622446786756564013421330164166166383236114202417643480061684918171632759334550842176861102077851545217897807414023156509201368758697240192028827571825527062515541558689853275331225985627920497366137058391509856182204791947658184941556751623043388800503091348439680834127483233209540424341614111631737436876375072017908584314107434063962519985735831160994151837759341094347019565232376792335672463908281046200096794498534932826158690439865858342891197135393769983594450909733474479279320975700449204904011706513971799040495909055534210083826970649913998354754770968544791799773163590483669156159324377789047048369095166990229024113137898161725970538017461581314468034826476486300136491593053206613981671102691232887002580481756220003810119396601982917980948883000864269062039426450421013294145163846035828752796657226594710292354353039240072886371842119535863790225409012141210295191479899365890377872625900828366808221847462059054766836140739132726553539166315013584182833305826950091243743540008207425545062120276352781542672018868230019256190638660941852055093919290424472501706558276791888269196515124045159213477839379464220037226320956274150248323240679201745357603259503754989634988514837245598245708796222414065121256461935882262767604733356045811980229970675671335805676820755545344280124337716054314819442907842212796141483526903915959547215634413344059973360909286793301806435929642752619616603926036766521567278280783077977673596695671989508276579931793895698858018405971634680162617174381251398525690429487677918459434455600092950944811930488008070301924375581575625373333947769101189557511494209565489635148328346640928180757420835064090280322687912139416990871971372560540559958445105415186609615821744742320692682666270570437590449715015917387536373058850809489866372487493677185616441236520860054676365508760937544104408570732497477341492415137402947345695264745753481904027849993311960007298728338014588537335876743390263345372038301912191345434872309068789189445836622600541061966024794928648450855187468347052505396003704764512462643585593109167237548726196228416198078416867483580901943843295346487210959722366310174439501476394024194290698885629793530892022037926151262965290231900711615136425425077771206928527331802762971140396464870927031237237014045774213339742376929879099424893310199646651784489746825271282133742578790658868724338761708249582451450675716264451763084058795218211750708910573677923793224979977083279928095738296967712380829126805773522445018543079531935414355514642272331217223444206184099503668954361577900151775377141754494496685647024497534383986069030405210497703710023113147635562566353423970636669810764644488953291836273248383962107388537485687281822118430421452298549512823682037576665578136986621835400245147736747650756231767572401919247560599443837923948605607023316736783030540114865831554625742821792055610727956061782507365733772783858081913039283310791659327583052757803689646918787695755722233669301064351296534993441518099619184225684609168179025199930956823743728750124449520486033561789539572018462147135022236630033996310911435400751680696638874890333566704411444569483110306306132135909729481335464604631956914321575240383120682567286714277271561920408855298247000853167505244412024641009089097725053898067514245625841232758970046457940549090566594728547380271849173865412613712398534894743920202315116932817882717266418157441214181004391666874260369037581866426794840270484025535701707541162427596977147863765080038937204143504693242899986262813546995082037823497300887368895470825787748773329337796718418251828882322458924830523285676218296524825167310275745083642593228944994787784642996400951089132867051817523867686967031776530063108980663505224513049515209395241248250885579752653058919536945027239281577033450124305097434395349778890012429334031577880921449536933629417128844465846618339512030409897231114271653761843130202765281976806852066092339361906634840882061077221761039484633632590525605834360767435934540511069184946424898908821004849886455908165390358972788456872893404554926974538082944894518070811884646931360030950248659684594841675110985652458909079848518270092495125824961147186022729464354885809634743812036067424408723184706914742514543713813121633727405371078595160838903205049393705900036500644006884191552253364609336329215696914546243003610316475834709678332601562746289025056263596427946329382988706599122574114216798704471965658645999638383674088968996591840280467849159694773623399333262174666861170403602193281398773833090562397628455012482429694075847312465891135148577119730397198030092212127594177495205972300871091435843568439913981538579208369567771576380047679991235667218635975790786470209854671872865062392509196844099618296139407249139339057862026983598604721171503032592862603505839671932535254238673536699769732960049960636140395564491002848398484572013133984333988753602178662889330585834197695249739099733519433538143711972885479455241600809062970176278147665504632802655562860793120930315777658689741607742513719909369681791345109732766550345928489909432213995762191447094730688567441841196859003570457344014710057362009648398166001508091394803779529540155926284053233407204275871681198875284849632302099451489396712320588779434447634757968256878222104260124500957283995487322232229945502410065655822374972964170779607061357711084458071269794764843161279399879296083499231201813354928628142203494774492845528694607144445669477359873832690522928611284811073026855562411517283752744033106262784815550025280058022905343445878792032105551989628963953525450944582691001467996787270728372253986027082907640506534576057384889954369254059183994357897502035970863220768434652099794166422397269661137472520416346764244594757026831574099020014508120690411763594440043713378626370711311838987346689714204737498769136887176926826219904536228841440686400873472788306814483657469132145464818274070587765515257829211528870932970519726382231478968880209248803417145327335505220832431486415979551165642385922799631100089613273610096306684779581295220903380393301428949391531875104703531448719965049851783148188188480869023852815263193829452762506933200480668077006813643795045210573693342535881808453329551517941634142683926500582589972926079005108374553568547426928170347053443340786221750853261436044212574246134978881165990893711561249346405782813952400535645011883981636446981627695375758332294444989753646723355102050726251452356184074335194083911635331667444679550035689016238954129015955566520124654246048702187875766268694233748105957997527628648468345854175556324639851950038839298980393150877235207446648038720491053509526517861125580011829716457631728196742852661526034399145083139582810703388934742453806442549798820374849480473535114127807780939527195418439941555498430213311681813485269314441791934323317053163978920294179498226829955696656080490319807968826809700520212216696204207279367973944369682553738239001130727216953136525555948008635462903152443535716373329478457474599694902215087528919738672848682543855830966316564203554729464336151633407467856002906594005971640643473614005854010061042365436378974663645240871164780333639387487481931336333427792453330815032177141949083935219664557563302009355661215460220842517737864381761314060332868260989231758556910734813943249497202038341143701436485135419947333763700946415143553165437227989760828830877700412938388594944302901638455354250546298645221340670329607961613460005973389957698570868403918442183674948165690466397052161315510735176369815852069396699783503906581242725448204447039581979084482014439234701857924335805539221647411728286700568926242530352573391924332601343865336375515480144854789528631372893417012569089010627372507070931446323889570458047665440984180860087096540634689776969871134910823198168125975062945110845100650395668244377747492085914537803671789889256852666998424061408260835453226458001588751983725441357892392670933489835976996034884704236475406850822254841602026976829904823354905121852315945792109390620148463097447287711313383679585873523180572269654423960259583254228594372464572050014419267301694221412843830600589351446810281800718341140384272703917309255786243425492874847374932349937986333048739524980187865198652103291375031676187933939503706863163344236282579622982723333870773915135667544638371858634268043483739708930043334466435428078733712540817253749354162503229987266634701897448163026636521691912011040288624631507255360698536286955671947419898488102788421459417908823462524785750518908729942821825299390374734920332664617203072734949498536449870940209265327955194920198947430863395111914811717668603404271833700993077143232694864040238194944767226457292199324769094915466367866439567911441492414484183184073205096169086401173020312936411541598600734726755509083607797173531003750225097156888731102539251199253288389537221319078668703167419984830019368358878939596516512239384071034147677052875191376296318346993729124583661089677950218075419211803232981883277180167556683184925268284727032069650395306640157682863743015219000946516277991452531001258210750106900962869844685107548359283168711057251164891953161585029974560141371699595967676426974136370497060425674786405884762201124236267469191776599972909273513614452396218170449325051594865171453288814317424580535386384655332949704112310206438937827839370449583257243018098715200708157374905317440993903763608142323285078094353116519880699082966515088011589377218676147739344966633000965269098919771651235319665995209051516261536022929479132218257208415050849420574056008675087729834148098019840430084189794297718983783056759995099330203766730383861265094734226990018280902852327025261835377874979112158608774662117412246679266938075519289595557838745627869749330983592423950937533782770160463561114382713421873482277689346623890869549518375544406793798617017881903550103901830284101899256403385935134641779240687113361428505168106288301979143727289674481183974057732349711520503595229702143441747303546292497923856752714457358041813187508783379741293567043515022107791862390850382257787717975595349481250063407058067542528523769140748255689072759368424127084751479544855151530501502183339865980798560820102125856960522226906513483262426001977633999427874965354574341022196281722948409737041042589027043980017412903364325765949032965528937548369594794386957653441271884666537030242217325742561008769491259219328950578974460052150883179399873861035254178310087370166223621730126011041593463333874510381140993729135700662363445048719997653084854915996093850808602198940099427592137248585887283810889351872524220376700811597470481506903511006193588335182917111876828950272886191316427424471775894580472832307385414818112958638022819257597234679426425004797854194730955823846539490972046174357649501098618188688552166950797101075314451597489478686966632709576060561048233978443811600641969137405408673404570103136611073864940987087438216528378815305138842424214725176402404229784669947096271600165761494436774792285890031285497916285536963918117105228323511497644414847652839004910352318882391221955091865493363768374885289449029923051810068312749025734212742099188894124655017947429876856554078560950138127180994439387463100883448626681712556378189514750451081569933738666456143845023276030284254452822636408821843755592412518176642464657675006913082671323316425862760956678507001692884622580561718181535336514320378449085052550536482237219571389395755384453479845256411435283193631644086737695014382121255304765278582304820716449308106227682817756418411291243104133394409337805470009435098703108301233505848228826376222532559778354473984960032563623679999859608518524012424709528569361543339361326727852519178107399074775890273190219850751100890301879643043413425011941197757485311427612977538823043805607931896305117804549825724824318410803639175031170206647856001930495784228181376074650441854704902334755591859591049430655315373412941949990814530356989672846921810222174823990112972514202279970041870190553591543158571587050795005803960049129393590226999227602125053277013412829357220995323384048342398698887788084127114197037909375470646333577090454698125962913392326031836095481664459710500456930074447228706004667747609643804894961706176743763030282137735210932637033217906494950546703730100864312048031595417336375072016896330841730242437387169706650158475373567936313832621504170621269352123372737980629773722368590484226865559907306028653515177766839236368184721493995028835881832223676715588449338093511908753757833751175277118089435192569782825314853256915362683220468196258221158241366941365398698716287268799171432397034649308534896849530678887505971700122474048425581161303313506675654157227287629213491614784123648924238613250371628869136878699041677439253259224373924388728824232109558048824240590636385725096109744194007913188025304227001899560113151603331880834764331047762931107255904366228515890724675649070745961746836207433786786307238668595874278317536563034214350561115516650381819668472135160539090266575347929284917894925680567723775300838574369251785172564889170999925010350544891035269215649426312784365513648791640709892131095073026233481865853363453357219647932877362484651833214491650661281732850216858190473412003980986528837144741365319352864250741510545400819701506003960510301731655194537754047476681263158515305320637871464175444353523049120826755042942588864101244524905673841309975356232432952382658642681869092794712471887712407866312350060852580346955112072644415756821644058535252492372105675564421288139955584598421317804842126398411584712271290046328178825946584541867941721827052326411167862028008602551174074598308684914834220827097363264635498361768341144497227945361078771454485540904575161364843237184933475783836527994445986045868733831442688545404883696808069190147585526571005318924598851890113795033045965254320065740055665169047402377216781687448692057190504984311045627136033393053494762528121670884304524599931177642523138702993810228439383083986827694507637845633547130015509538751506305666684565226660166793872183575235418704242487928788719634184864462303796950275933503716674968767476294680096337442952358574990106850431424329815776556555296099951435793998181431853956879673407096620074229126033212806174172348911721742569450139582756816815850189495465017583503969676720207232197937013119591819681919653107548772268402478816460407894283685187305874655706809800713166877413540833058047701750762621095306718148231281613609923398007392239808447087701926346579852681265910293238819742355843427134432570031992908466880739898662950594517592187496815134173725686631095062154356930440937292915673888613272072065871985812306251314756104414793346939574046477937586418395517408419769698741694243868222387343670291614442821639994998852484682998859264446642612056417613584942224707882499638032423380731585984261407066310369286584670741953311922006145902050285695281281685705170477707797087830691998879788289988574085687120889816277146853582719900689112171810276025521893035250618553738941335408111716764737766919755722654993528545756518924423312188430985067325435283195612249676184813851052041168911902534268211050127148185484551819171199110731496832176284806132978506994495713967554331560223753937025913712100723741710027712676769804485138686733843059696138038510571085407373333771860539045861219719857453451392117280251634386791542429616993740964956742189839543301618973151754872323525309522566002397680704045910369868328053425202050141900111521584414900631670969335089920765678558686921315724708327291602220385912748259088480959938798140325060095999467866163796642751056292549176170880535663634170031753941396628681833811243655962661003542454127460768824643234921124783245665428405283498006154082039229802361506916556327740975809354125353086028195375417992008592352868566213393051628878281870260838889456595351127854121925599113205935338402026339568206854369888553569908827464052729472263957325911446520511607629220917200334900803578290276853852062516742327293679655016602544716251902277957969655214484303348262173818817775702466938884403478409807990847801871809538811115560580431685786878848025916055612722742755401639473395092739041138838854047385484306374040609749765056374320352875045326468121941566250547165479427022941154780585933705073613795789600313730548607941781390684157012738851554263575113322390808423276401768508978792409695583353050026783203367411044344989098690456393456523958510193941431341790415982769607275739765989637465227295533655674178730698666571321651844807453460542452520343176230002504401437929269283944291439386415762033640377560511639994358103161929817280254372102087901469808430120774698543403830076956436335388164444630601194795962872759146473046324417648414279852575723652878637679759544563808063668230720807733433956207991543794632951656521606101595601149258952247579963969781738718408325595519448858476928982733027121885055315590759892816348782019251797046487008916751660774092928183771266894071138019208565334203142751917429216828638111607525555643907402454535165183597477141556392544458511795916269817786456952159706633780620063156242228495750348843539730046587256856311129611415749801039396572416234151068357592190283676538366869737752884478199744082546771534634075787922288216765144011389430287892415970827871432001871412578929362226127034412488271731752345340314759183588890734183824692686235560610587808533512462561610167025598142690352901082724848109430598114757573051743301294311741415538757052401256625511986533616717949348216382797340480491821865098511893760324514327869257573930204422688346844697511474068992377401216194489797949152432938296662425140655551278239576176128062268880741649256917100554845846814245484789299447089284015555951803682345266473208798690387636708909945016961429955179803341973875097826219122611727814406992663857011891962079375392843134020303201113608555132310059766323090273235997638377271607294851283861644158282592287975218670786370501904774672706332185999839797061788356078577823768168938221926538025288994479797613361360871410080969612906194149973320286570961256846382059467421306823878782439189701716345006230315838907937320122753022245717911272343503537568542600173125201715454219131584425439849948698996430892502533497728515370762069148388174207565723953614087452337468784455187639360410493618592253550033507355542795623971888516509699475216770330710422734264481735604762602195056870880805757036524916131807487574671623342551606158624488660901407694197194592439185884784733153138931600171947503708982659799660450060967808579216416487973460642145990998685341648020061747578821593384788553815505152542140370822098944840148991745467845691234516633566521333774653542703932463552220353854904814540736908980141473970404155292118189225822082338382758647026573357198123352853426876656565744824449145585107337711320498962553682148145725507256724018797998754923953397299051526182894015733685599402500973409894310473214371638084700080700570340245133916218209709034333317992238108020535873939110813086836143267924390535772103574177299074213093127287626076669127997642764591290840791645048781466980798813077495864518257193548953705781121004527563375100424958769346593466188090611884639487085352196127689460500237767683553017347873035101110179862280622819235806471520971747376698278391036230700912319694247863234225686755290188463527704730482028792768020350916812523089047149210088568725191599296164796474274911838995000249964412861012216331425731483650987090871076376358575789339637309088028016879868583543307114677428479998193708660325493757722809377691516618252978772206721886458394363164259144155990084035457938448569863868166191182907270562955419335603666391197658259606864374574882284505836811411975614005046332317746187841304808977679564816195159139874117783462344449810570253011964136672246720113488993996867479024338153196840514092411890635582136611933063747636991009629322360359850959072788688762221747255098574307484485013593612954679678420188619041447834352077367875509092891864430615683636335090253024149540135846511378508557583301888466652940592023327532046439143917259981183704348816199320662302748593805002960473547730938019924406702263545242131921918342384528436433226135972368850361477602495972357536538129218173341772742882381061928092393332335879680182607362081318835473142057050094918705924759622598682722432248196873325015683032471977399030952037370463851765324647854253131091071558612044923206847113005650564759470078923363835404814558874911524498163695629396700308723712720259676213866678387798079964167148418677995513286911794744868634255379689922868227493943346578865122799499005677544311565404558762784382037802797348765010831640982990740531629888406259587794377539843911137635118191107638974557522983447960473979746157496301230485381017033696831075605156756717003487003298237683894434528476944216997943147049239032523453093466987077028396834357815162673671701228890192207414575080611266730662788725241149602282424723636871017509568171587487184151663974571956842867270211079524773698047386887673448994696008545116118169742032492443312118505186460394696010521905256937782671671198453014136828831584060307471082442799041229717646403894921444437860905869683060532806845865871295287606172340288210114150104850676621600631888628772679486726166712706585584332935510215066010127383207082449465203074873309550770862509859901093754606068192592510910937695703298736621060746069765429459065624341987633196748163313940659538185191324133979368615160029885664660471913048088152293998937041745669690606253705750177655688423756571911528576287981074626052567005036992363335699656514132259844245193740677716236901901908623142937266527151885332682121300194610163618510280750597558035424146495565890589550979104524343691302925745128169511215393561451150733842548332060174366042224866024116854184091651767723991422374191793586356103105643625335886188268009239303649955365668546561132101229529419958394499850237738609587073194198754473587253362565223954995000891235353068400623207616364473297783455940575398632261729567053868934248420623979144247390340708319699445196864211381036741424312443131891632833095076386303026627698293706280851363205723171509081293226499048607896593648421257168322683302732893845962984837540051175001726315681450281922518473131258209004294601666577666062680152350102711583305500653220701161204469005432934621597174286197977523467117132126276459017289922972329615316231364669033708509444473386019356319050747638682436119264349693219698783214699079629044065144843848543711921655565725368410365778272367146798885494582560753255158310034366523071019988224834271958941373588894678414611718622229265003755169959908627424289936944139957929100554463862003879828956923033280094426989468513291830710519553289869390366745363460606599460862325646799700392143176006718125476623709302991054512711338633209984953026330509706288992956721426702763323881647911807876294661927589236131530099535158519515206217514639027521087311436227942198269496989143690588690189266354439051753333236683187782584462836359335289168941496822153231576053427636095154427081867697352297715186499847122083125468891210160739796297753538004651174243944160956865915711810982880405433410400416264632206156197093859693579783967803102364791512618834168118375764566840523950105508135931275552695891770684430291762551999979718642438911533114611254942174682934166433063631422887104285867363067007838432589446567477922436381397009358451418274347864852162333405909346487044997514331830167524728108017856793929486580704854684364309290286505554743245118050508149167209899982907429416923680481155047669358075169435540785152797168822953801924427368397827356480723074877909950296292040551934812880374094303955737342546972805581112925871581635987908831355015224213991675406315428995849195195742276193057072120659528881887050428219011529727590673731707805976249735936721351280134006926514000818369859913579519141761564831551680931267845263259214710642855555949798432592089960492283043901847013970544312662102493246270127197744122128571977937360314809082088895533281684881509572105126188342740066284109956305730131768663756438582560341446778914113298745685395363747194526573087279920537482492924890926539242345038856806927903257159616516796636532668456037599913220163370302834035794208665939239852108444545884951969327982516516751405566507538594598610501770148490190835826169663442390422435786325110558678996540726395059130393860003248020263639697562811382702242557921671121842773183408935725062336492047542837331007719524629410843222752924071887329786608916337524316125443823691533111734915058208123563867155053803336986894028308999372723742880959925849635241031698763627470185054090095893230018239808204448506071677694585572454932822255676069951342545497381566761461258501365386873686799158362292506714264361133249066598259784493183214166408655380842599434534800976286487739272975147696295219248572267441409976106463544429692577299223136528512690085477890969923718794442006650420565439526993931995688798461310053098056145785488491424517338573144442788731570957277519724212582368841829011702620026479518141276394241699562006917680666626045895894729279729793635116972155529580968761088014705725332915606142589903030344412488868974954839389315907232892998150066463610368022139669038734629409049876083686473813060700575548707889237134555948089894183532673206966706988455527392134351650135256272634497709645689066422884574804193495059851881929137173188163245099063382537777870982262114177687581752341730058132648196100511558815289153808892674683949852703552645854161317172328339775043785575536104580427786851366599916386537135923119037628378612622527099006567725391559269067996680355091851237119252091523395266945842033193213674097005432990204292450648743383352036092772807320218149911486083063693212861747584713781076114773606803645555773864247379876434989705851696154128966475802414371797540922972614974042428444082023883461645583694287418603999536927916696286941032134768879919599523057164093480460760866835690980349384896271669960109904117687296649445006577496094228534642795534282784240553550413556382980928015515143704384204071025784917386493434795565481085719836918536282911736855860660648110313905923456047811149497113915759271586561794922906033356874479898920250573835417945525784638715385607923670097103453569959424534784845602877677200222627130143893002420781301032706930778935998365529020645742345393026768758131124662825519819616215333663852745635320790837976983677041374313119658649513262800574029637780772757909720392544643111444970028798674203762814369589365957423362475247581303453871770014722518735650150101042832409875152841400849942384533567705411411332059639788453134843817863604794034207746034468348734796814848266147129780537919864585509755686852082337026969606497044443689587225020125326717284009045487388812881238997651227229094521523177040016643902533894390259572193505572324557489140113277432383218298932635482021747271606008099834398045596658212928148591456456160802669064360988587359756407803755275181856863353736755621124632365983844966752793463568819641152811451731819172084919979357070302548341221163437571892236550336640884920709306363159956982239448123073577099020146720772342050837626599328361021357939804001004473181122044465366243093996286167661338490575819021159287595203627207417919760986266088952508347486119917640731454127552036541165514758836718340665557957147145698032663466244072505882761123029688922934471616135703124829630808562815906152187170841213047268873733678419383225109042640109962047476467426981554943675460931094611757930025464218554946353024161170462891768508824196559186663544896367815229700998847266144858963425846525612351361364795921907309988554916452067254467133201894724098420190759796160506607156548439768031143280351836434463218042560278926420262530282353229485516846946516996245756148263233372008900279378439619393230568585249967021103702477527847426422280060874730182706506382732759269311696162874200551675666475873636391854290815169565675910515124172673391553488344448162623293945186078780144991505531411285259509149854802379030934001270382457544763053329315287302607858311875438759629741160815145593590229353628316058253737063854236040851994740629394763824434009688943642981104898495801464585364699052997310043739556421953244100768557128667092258968789975094930729912118162575161280230037957521901072906708276992345724318114362709322426343222385196667199593767858159411238584845461890681692911029349676712923027701243585515814502559591675790488379424777204229634158849181021371662007301906848829719815210041891706986146047813134950310284558637001625491417387123243721693994776608408371778688962431244962856737985545417500542101350621170641841105444690622072781296023556471597680318850409701646797154100332658931655846739844914244092502354624793547856521108237925681161634970528115929895167783454742423091278461145731028970239679720433942529931741587904620927161685046593254767481390972042442196784476620203794554556279416668016157731896366891099494383945697032620013645584333050544022854533969813300296265116887481750006308311946451881923743448764254127408073743867560006787500553491557216461217066064394229675695112073648403647660926074860728663336470143149309503388004745536505723641588697270571819385706995044800351110736292358212266665619387522742135491670500159459798270292538895495197467037027324205981692183501803777538948039461902257048388123309488464191746271125347115333259030188713678223029154494059461688495924824432101309607052027252161095533784865950423026549964703462779586806105116720322978212648323573097434611443222373402630587044750691091773618376866097008590833886990822520086588932801822614462700115049043942601272243474441409225153644055759914094810272436923338529878446085803092709735149421279420217735403706899636745390414624293142706036091201003486884255699118360845341235579313108491818951445307271896830057132276117837683051575200477156302980639024206895834577766428576914246715922329645661857300542831046681505288722368544315311356586200172568036495563047630723711137420533548269252046139593248522607871993495831907501549186198585869941636622734144370738019981125082612380679632772000447746847371394593061962947384001246876098344773692795756952008957457928965205984616320394291070648549022294218554729170078330740340419993226026792043057456662253689062581569860660330071867458050618406331727184337380155890012860460687273652028518252900444120056789859364299297887856752275257537348952336734411628247386704014601145975036259239436900195899483984639329873742159586337920246818362177557381875581193588056378100296799322886783007770169478956138556750471796272378716862003414759007866001301056774327750592550297857231265029895346824494001670479870636493176690668344205592916368134970058316741173949569098692716351176360615405951692981759833291293470957737312501950696284048475494585971836876410944553116220707553855202733338420818336090871891610693116669755016434319568851237405865599398160543515523223375478659658014649516873892570602660246780334009742397702210305714537056949106977923531302306159655828492687587369168005125871663476672192454701932538350395768035516927041032678312476079597424077770038409269883378362516583815036830418420504339556382724498938773012130031998027513237779208288858555733364158267559256344026500918131609819915100399274017720129097933444186975890330259125948625118493924590275687933714748996218749861360472459662969898244047386006036977223321021075877552597235576379724012131543378154299022685745402598399131810680511488434979062038632920002206120322970659426842697441403590578160371789106433993519940821318432830383587451305591271618872075969985065614439524720633309222699643434460774540607500419530390210471827983988424032252844703446768891812611985019785624922431521323348586011059871394628654860234168208383084330673930472420755491264903247288148195738072053103479273662702078479576890567437860461257929646882908542060814568372789473679107002851798634894815810399055376450131086520378825920175014099587895415207186193372933141757911732870763797797152742212158661953728801287661145220128096302830316532002485163367516813277144918143751930899285801499800455698874794944980040213160513192642701931690785006738383635148910698686569904744421738999665932379096899909073824567330167794895535831485430762075328928333988291957220572915744523508266260315980874556447296787676827506747678706210207982049699653258895135545380771976238532654826088783312960912075463770670086612085127855207730886332445564461158660941800735112960847349577229977003359656138048722284781825528145550757313544045079339408166869655977410640774120049095486343993078422462019224307702422360915866672330257223456592664152875272913228354888752712691959874935573501850290913270119619461304923118475661680053490886879289661014832298187275452528432598955886847560506983166764051794963301871886833597797419916241969225780988116686273030429749628867974996195143578169169304252178522910579073003394284962480329388570245910454707366035932432805571666248774557472125009052320762542692866609809182203008447636443827485393607485903319797738880558983831102898404604497891779660439318438654888893097710312929716549053416662303557609414831243381615271052211773077402248837442199302607768362069917060327809412691779850960219951447609231598907463754375459883209944188491692960176432599923157137565905806358845820911231775431490516292903063892143511523299783473333408251004898877748338943809610310503323023113881513072034723446098013624465813479278517153892630034491481148359592255779865625883229381172367512727375433254015513571010412120538931514258556236471402749206054735462715993413720313580881220875457509686557550365625506268658484788227287780945748384083999380875506026036681583395994352903427318024219278423397284122676719486051940227478094687039419321793299593197672058877317096219441681177173392065675637555180052560509679256624472180181993777304706715275048095763221108587152387263675818166986129078826698406867642421459388398442929740965987654346262935768469458805238721539838189126479706394650022021280564468731333211579606993781186995691454676951623989534166540911703759489134548218308678872416693127631742535356000748681183656589502526070842676832379470085529062022916431046229808297772365597443952730976928210677864740941769737492786567173505105852449206826585690871688427589008176293491884507205618590606591855314739153058254025280814107995803433347556650625404593990831068564605139400874756643004598626998568030858944502959255106639555564882969067116028116122925853181947327550872376761035766787420071554837454066440716692851517130571467043428557394608071788691601497595263352080003345839532555169508348387367365019016679253283276861222277411540126950195851473331182597990490909955174525398216157488197379594762753039544724262150532729126933367607430236286898871485315899760041995261468333165495675225084463067128300151274315924007311209038554566187612944860877875277069466545887395639041489513188184215401854055033235084683245867666206330367007508234312761705692462324348888012817595004326991688402585945753910970331931020960394705678464454757991405096751317481597055397674326639944306078335020517875097085605640541791454975722454741601177046198330689864876403781730204407282670460249001878473612844766354446213455942455978696249998937623082748941641216317964535675394300241680162125345799073143846235999796934921324478859676713271475996816219164169089729934386511542178808885949529342735831333268066768416547863669256132753295137621036136849088154919545531850511778320396915271378744269458732184712880766433583163986907349921448865368007282259414078208945887603646259522788169126273097880315764225265851955454162521215894896595497715081459458256007354223647902117752822544975791399312681008454670577223504221371896035382133471643105527984692162992456784731141664989506484582461651167246591408705203725914454046824486693941018913432859282323007945043093228660991186136177013532389811445984814964622043167197674558161827841334076381179550058892647518151151126517403629326396260963400085020936049319742843071561519692549076413352461197854638142179181118552118937817234081016646002625717649333829365544376435010735132819883261585932990293357742247823151484211556389460439768061415723689059167446052527296664999804171415205176732899674257562339522268608884606667472117492844574807965017352593853454051848855687714433050916335803298548643357260378131210361453406621908217659758089711301797908155926234356152651333576715703577026430210980055829336553324275762045346070530548048275057515177656060855776864567718104025417057505142039896770964868536775945710010740647148237736307249604102242562714205416278736826048023353043204883783278541149917996194431503750058651173048099917008486604077503988702334690990213896374756668981471290384238780402898058694749247983128357549175412900916207902858922536692420969061299867904892103023438651641819291599484977800204242732758293217007829534467013502476753720943909924543630056666510694250038565924938899453928516545241890688591678723371265241852166332158554395222107435692757772913370299543499275006249760046922661745351395740529293595993987475374084280988649979992566728720264986210251624024623059092748586246245002028200326162966422607099141250970842927659638758444925067152266338757525528430030247816643773484093876078392956977934060448555722915266499286689352936026232018369919140680504697290951678251817968009298387814103074462727616624295003178187373614162708307693651586654202095468529695737053755085942924615590685560996870091114905133165967611103882309935537149664782120049599440261318673847160249006880247682659210994231712121263520695188883066225548917577901004543814142705190289631489127042384594875562624884908679731197417801227113305086280121647137402182931006609357990072965750617706963759941030815514145204831476335264479996107303635275943675566284062604675018637357098293476276037430327216123577664745969397429396095401147067993083563799994583617075616470630181433277798683214589497362707098838279785286876377630846626708489689246728360145373678423999271635055497978334718455514200837766362775356631426530689932220807544339964431511956402182169319193475676763522374377362971052808175525163987913008644421000346132394283298892378768564869684586754782419559319313599396751367850918009389019400722706432803478884688854037973200893205536885067022479625775526175572145593646453037522919063653404988412681697007758808362737756474796082210337797377950565957150811742785899007754418545660461533233255480506315813851483998272878765443170686985681541378106485945093949593017093539399851053820928790424609872950657501052399433194167891886777945820416850386353314358867868689287354244952575530067636672745949511873732386104646660643513791284800957478711821585676623833581371094019456101434859974121013117286487776850231288863131082293967894572606433231125976886657657430910604837918297777412063917737812591586134072751442885010943091075175577045810052469323586759865656443483422396252920737481349142849648174884609599995591560680951133956175602015907762391056946945310447095993213943510306490643025426173245564163898780886992256186081916728176124356617187580768579772286003626626504551252197419070776528736982394725657114694866692291388853514992928327835903597535314945637604667595187543215685946025947615176191160890842266254666182608025803637882155587037740397780762197339809445952940142716642247848539928044799241452438298060055806228803401239526389484520900682221976494077926893999350314899183031397764822111530698661215983628486590538394489650759243810106562441300126295505190975872785615491984787495281803119005945946268698197558857483366567704186592078375961088582180737025255387249336522517644351208561479731364239529479101244096700940337981552905190796198248884841235822162041461903245970866980676653255164123026920387822938170546134716461308085505147780967027865828507646473623226014132897007581408556943445595777273269454046575101700579710928940501426146389240307746040784337358192483694902092542676713864403439965909170407920827074061831990713423215620227367280589401181042830051227911421892208307449866579218031232735789412213426021929629387053876905629911147553705728402959826511794952220446172857337844739160335995274422422730567035491547032252073053753785803391116047055944794256351591659776808130938217518542968551866936035978349009085613323105966244920428027226145736102426300973885265689814006501117434375221760201731523873704117847946513233882168373260283293897672628567043917040356842332832070097228891378298954827640864392287488579298466582333644287497744410827394530648753646361285312426309322396551048037329843343894901864409344281934864584786934416542063704499766828218371986775472139614378282415720089470976827432515427634530767852394747783372844122587636382653978798647472577842064207739260959124347451303361214637575549665359697457297145162988621299220291942550791403277944724690923555808532440999406487985672936108434984713788350372772674288876675421599432424894380883704483275278593070965602625104326238946800889206834156422307809202964583289682403582665899376221164746290362076523832942592783657213894853528034253555975360153898364120998288854168735147592407464988562927835750110731888575473395031000598669000825266727404194499257065456048091863219354678600939988415994978007983299050806432119798004717474630170295592539446760460442220210724549894304187766350306501920335126314927724214982305922619024582007470281929655662586876164679523078615970561756725600168674386781134784243142904129540381503079098551356584410800868364626175524353714329847761325595613141157302141946065601542266951285063653790439119805235422248771359606372554390230675793585132284315031218749633146268913640597282817225854605770039955005813664899645113939468234781946883380405841391839094773410653297107564665075212529124840955266223004215630268332128289104412217911241052347692882052045220437331944697252920915338544229894584595651268511055227352669950709327121959027581064382356713920428950959928045834388874072054346107901731272689141893651950166954822510142910128830778330315156930456577612593127168048372066680058172151668511096161797769729419894230006106408618607064145823705020718981937345708314030289821931458329826392842853230159141000394414587499850857291136577552958502627285825653702657326071335292389450465733475784792864585350660356736886640978097536250963153258267980367637430097557895257059017133509702463892843185967029245110641777012555458654175464966101188155789588002055184647668855478944157365517960412705071282579164373787953282384380764604713026624326107851523949533601807294374979408225710381127483048908235240710450683869667492237098546137166298917265189665660561478742424905696898722590033440736203451356089413612963228965496689042719377780558592402111319571537934594982113539212166753787667406714649398293749077278551156740682092387359941236565422498856676206886808900473911731976934112464111343001352427752889847730883523240913091443281736727812447045260520442326954952037846998449809718804242785745599870933713357336446614925094694247319027785423085534319564374716553585804444521020049638437449070145273738369553523918790236748016348615250625880182258875809594118493340742059926522745698169277417605841766399789681704029003399171408728455057813113066891651452359558324089703169237587166310645415591174386276993855883459891418810708319583888465330185303234178974870796966295209674725762106676305218171677077069721641117263670216983139594495097697847265614431430129337373984329328364311184084045606228322309966630075825121740792609174546464320649799770099618237183698869779853076751494105009884397044511157649938946669476031361187991854351830007516957763414021359663465633368211392066975012512978282015654090221186563792204504518264094346045820216841330259982330446186166250836908571428940506152759670767426867189060014029864224917931669997360003645831411052122556694652103157062348975476263732988700411614685663133051965480300185452231148930467540496840831902338909730278942840935092614567428109107328165674009967399145652006575497618090345815750689156785280158369506685868321616195641657936470177668418868284319170445290115584451529208569085229965996820969657100530122263247997507617374609189116125828195458885499673907882354677986317487286939324332545028419560153286961368891444634227387188802042866838536910729150234835087332133489002618338554255481652841002916849810643865881543797781571515216318335316478371973126273195919664980053138999830932977560431720802843485755014028813606761908458532709000564028835986158388216760374961221368394130797212040741652948145282736407682446683721371662272685632989581702913746059820504498977500366673912829418068594810595865060334167577574004498095453214417316962996442529933998344399980547237638795695353935535346526020933738278580861789434020653558433059452255932638119393695804996327323774546735712954297133331280382278627941274375100570884408587140579841697444296584724925479699382705920315264176127118882069056054858279366991274903392845929553471220093087856766115266217096896928239393357030315341969853082284354239046394748090210812214488172687180751394152931155437269732817408228889422875434886730459568476971273807864922884593457422889485402367586552375894453277964595433442698669294011339300212945707574795914208376590139678758096075650998517541758108185497681586680885058508545663039709113003460623320121131519525861209488686744970925150312648107640436175900646208132090998559056955863876270801659781369279766859219837607881908719372339961599898063494938790484737983579904886870450046522135818582353885660149192765744656515854401379588912435371310267928969933719844804132412366494764568852339085451052428710765546844186632462374023871644945880640915516329589281718010640498448272355429232009102190143015489623705912905713084104287973925842618942074919401751300846267587533194826342318763038776549064351905004468526782734021880337345446594866036302777536389179403088954694109891149791316828946138426759000580510767686908914935051688597691170258630971392454732763524540961756226240435255265388431095601777734969929555681088203131083247415604377941851302874789203015882714574674008066336570222985111931534203176642963890170689884455160957941924764651851860398161512359481017879351641105491152176472226522067043399687625553517301632437042687074394269117447071423555307614070448861025628428359518607527473111572425938860717035564025218694228581157434612680068070086231910727587155639329838283446861710217759012752064623352652820361889349907586362403894138899634852241919467163992800742047773128903636560577919989674281873282796318271666544427619264463904614516185163494987410101130060095608247752677673043903865178854094613084245176148114553979560840041061021299336322689473182177947315217743010020731195720452808450116268655217715047901403443858188479133657262062777687065254248989773108679063456814582286606476428544358476488228463357694880111697382634267052240191829932970785968073752964188160198300895264793710252384626300244542388620699741334530077288549041776037828784691210729559873180276229975527591014765222980134575018440430155185581254051706310471379589463968546407229597942193315927111352868839641483138101907455201229684261103348435362835280791106146625087603809209390873393443100660601535020449147388518387807087058184162424007612629120151103476153207444591404294335653875741027120330246751202420295141209770467423420994407209451782276119581320325711795199165111389488372043345825093261697743901119154658998809655700340441984369154764177140059779624276563916672341445440556505866852717655741280545864676454588962962888738124571733885041757304539487575564599119644257278801613444088181961103809178355975346358847654877395284933927351182092805732728049212735466273174451902403463265051320437920286579467433939348665188887302039583494840645822211319336915794958237293463699647727493491929948218594385687000165108352908760771572299637933536727974330270391984635210531713468820518296106063140772459892454891144664398895660856458600435175099748822853018806052300427807611191943207018953490605724377061670102482569884069731077958570045396348403301471205607383748711624171890618896297524142299073835329056046833851643327261053301196301622586244537882703508142729772290905705406723151510292021447711833102948610102708779712500670427860143432717118524544462173965537477021605823746854686568352665614792572492506107225209177493545257840668457138442305719456920270073056879009709646720036433955155667338810043734702963276139945197840565827214837009347271918686216024201161348229577736978061006599115719178589755366481550709980356532151655459741897626537922798368559380469697112464804996464990710902718270946442006256703475888707316761796626131819672348020237088189834263263408673950175238598803852569069377859395974940715117982963592120133838163663077356247293740553527035734846991093705921715931290784818250493504949960141422873897952706374917949962580417624554616837721659882111954541856023770163058399926436755041593850206604266896326192189604937568116564424059467349789256711085971353956248285026211678162319275288657744128684847494362752716478359225055028071582124998977837319141572926673209128786427015865116965211581440847648628529918813560589820550749946244988237667944920959771248076202046207783320210351942764417384276864568665946325204692225915028436587221345405452178301282307146995333488870032692938373407864909962714391388261880920857549712160139908340778853187988139142971696522144886267568914793127684191409108856012436754922384128639499203235740839420652286983788313771101763553801811564231221322204781021330606288855742425914460757176268308187385713032173109892820128474239433309383572112230318423664952435335905421300745210103207663699367205580015107490306302259137854389896968065676865165318838390936692410590860946972849440904541377026819741872025736521587217448849814986413746821896128150232798096099713828917023847889568930029129904374013793063557870547313119761905841932701356658759154828155075791893927188279544308018655210771167183794505162718790742027999366377043486033247594791375285088198801871274481530096633710404558807938560498272921391778134752213077730618769005814432264765197497840800990216515336053978025818052726951406873613214244446249392772003802527344354119431898630522257322544814622580596160915905877002282364717321851987000027433573889615120964745801735629050343342753150958444124617881091174781853656499118948286149499966809576390204498472834292761513150714731668574251163851892839121787424392610696164327550158749825469002365655145638705922796354936963938317040819715920707821779686677371875885647779860688589335300899611156264195661981451213238596849915847889562427791458350050740951892634074844779933485478884146754003144949336476641704169052690041333908948711317411071099040351231679802931253084846815269128694742996511922066529554831976241468668809302389865474519597581603976727302651751257635045971613013886483805730262338916840838304143063978094909738798573746014792965168354743013352815500351634123315852026144189001909135551130828887076151969664109459286751744202683492407185099149929937028821008622771614586637118263216921248115730475271676860919049344813581889226617365717677664676513722543145356973593151372655715059240507034200927850504524242191737112180475558878339124918715047707643574098530360112255746115045432007092496596929017650089430635411333952984598003960377911484517752391570422869879153548442950902707396576176747801454654871258229409148264788731386342652198233189313121381828151698174869708277727306995462288131314622848174009757383896885670679719977962403253433820860543165166125587188173644185648230590043975904239037124297324237906699682475860109598624235373324059961416686249106817848311060371094151982674659517411776666808833728802114459463173210647247181193705557744203405162738163210555359726265421811281782018050570673240040608610155916297701789829564977292713099828311951645299134900294948723384203366372624760207741339053066168973241059037358429077643835594227402278441905238181343089011120835476687884138757910669222589358290164114463248909510950293772705284258036090181534321627359124859580492932860180428216303595436884226276269940757927299894548015390094949683746994891553292437393785824469250886348923130123770980216526379660509312604476025905831371805275623982554516647221701937611549672343054353873877990109802507484528673322501100062563607322502953981757570771070525359946123440515971785924832062231632062279959523165766633321945260461374327513063615323008268231739229824102309960562776216102356545377350613262002270812663365560928549652656708244455722045185387004452811745364257868766802473004659271428373814880027482552473719731036674685894700038317352261787074079400233902715254707146905411362308075411850845268242446285597408656247152455057863377043359616623626612261541286630780970708752540676226766924790514008677251163127675461388705204803197941802969287332045938881756432556578519843803967024167770818319136493811860489764904942546577896599714510880466935937857080254231720042743006355988512117004151452686443818409030917588968062351692362154464135565076138497018894876590579363954218933188847023706920071485472170007182214642769103551414322595643228396245907034448726854249132562561024538629484253020309235771757888657099373160384287026014560252778681361716448938928408874213307176823390132942909447506337185392727656759716537473366515779472859884571623565013126380827281232481337330617141515765803976778288113748172069365811964171887705292568391025789928647292061182905873269222870316963307680700098965505776678104420765941609633996029625202643424590336957140968618733406002096768109519697557861471327034950056643965526177146905106649713728906545453362561506446021641782270453981973937304149018515708228990508992061519464203091391755587841433520101810933006858906653384186760345193139259000464813419206123794323347125320935837784792443282196002195083551073914561941798185369098447264379224656353822770450263941533285948247587187483803685103604390871493731461693796555299430330696139949509522639523642483050378750264331012078587263416565109797509766943073784365101965279886393922319191320463140639446184567755178111555667509359048454336245059493107179979444503286333410046600595864080889819088323012346048532275837043191785330318705675502691104977269781285446872545502613540916690986583314358618605588785241312185255403370031498400074666478402371981548682902699097339991921689729277458829129498730443142135764178118162367394151705538238829936430943227169364677380231226970319748325026144443337362403355138212592423178987419221412481903563181226701599278028934211746538627746473504291695801494253092968557715900839822835223967098214978168839081613713292693373840958812595703102855461858795242791794222522127371051772654137718142220717407620599391096853099355637328567462142838301043743623424630680516582596953899976029696238128653906488833834033945608075590723878578634273542205369311567302844552373799344686102736657078426450331094058274950411981613986877974599025669426629197601751049476287723821804149827168868691292730931375943329076093175545573679695644513386107296531268935129635407472247080611506249095797752916279900915292909753259800374893368882049569972092539302324622222146870521546900242537920371148150289559187384177987099449585150444705978266305912082946417773912500187028717474245429605499868848884417626936122821085053862297821021353406867089715349472479789384886181244579924655620552530520254789468289373454911530368250867780205174956965987280924225803030461687182952889337685424864217202951256805965442663162907674594222070706765030278649109151285533418406534227036857674797108948159424885841321879195485052641963851195711713064069815321644317200146685033790016054348329315859314918079127055485913448123851756680666267275624733039759735894849851368439086511260562124646955520227821669547852130286921627016477028975197209828441473839634762341768684499955885430385292091243584025006108204377205132098341184774752130074687999188050269431782026294864780254616767479974374431831012888362995722670719706918816358517370255737667614460126291065395956055732214374939517235837232819964530341830062287967557871520108384351921328795962836468881042009267518816394011359465345119339813396968207975139323346329917735783104240102670592009944424131093828213530749336595146963813577515768262790331562457198496578021409951596010174434260670928376098703860080175408996211161636048998656296490918443917671350422109617204773542785044962289337393068097233228765065574570773702994694426174025512264046079368801080521639439792828549619119391505766757902946651634034381684326374979776584477402310251981230296977306069838654116368107218998386813581910151877911535949385785310487867756555332579105432199194668683631926449924003141833044383436256218434741505561999109624166861568632955269144437855187154183004990628803163526435736907460270572342649644650009259546819903513356928342027919846170571831362148362009849382235693659175805276417511087418144471821042100393327094177675184348092023005500687762561564848183957224710667758459498028006395194561379892002526029876520578900385942598576974891227118915051624296668368650512839494177752636497433058068139377277112824905669006718160587604381682889330045208415757145224024591340241934148480989361346186779540575498672621304203359889023796393915195530845171601750082480498032538994372400635873730250026380873364428162867113299160736065080970931254871863762323774273899827522699685430175178820575972747413126005141121199803608336887707845850191079177762538626347618851462103867115784913798918328291888504347699840943691661517174553860485855458884363708655837252402635851486358905725259100464932594549431979357431646759592693680744214558867676702048016729486056413665161126050564676700103051327507492321410197504158572758165801181569884479762590877220302091401985376994212816423576684241920479051936972523047473971967292541352689059378100739623272361285385573791452660589896131478220437739431201403768429335546190132812559421811323388507900227683735787966390331926793365564526009542161889586877213725472982427269902365693842578230598708316727285973949546326413342488059779147776647876474875023328583777552606562770288562454682163358953645661274729757817899332953007871560575881131348003374135902365717051577684559600611550993190259636635317908232151578834901352898544173518063843680190696675946612752362660106194709849388456247689447103040322164046833334046801631172582463065805731291281809782313111722158874870290222775184013451431556989210330497022156903241726081061581274700326302403136574854347593925382259712902798233488689216792749801327116982874239981675168502911354310285668328985412432465962195196924283426608785955394989053530463991301156426948163364093292932682325850694839788719641784059336886731688158762143250453739788315676075774053954956819772052253366591860382914313906537992222459784424171807818474003686976024090015470912027500700640484969655406069674468391512878901053805073630610183803838429999488490552953148600139754038364934682179607613506156692816059208642080709313612949111833365443454557929763631819117137015353139660114006948141447439658371746083954630256332061148848181715072187744739815063273384267624988096116254578165448866797413809547962288659230093106012365866111197260950470839050321740058527138479814908276527503874213372960091802452734255690127963473554357513233349864949545799454325018944652198008438050576078589897830345467003195346353177254767599627809626517344446045954298575968250021607228811847477784407105074764870993190654507309591275674794752689813528727277173703558502053691516296961738407077476486213938773593496643134287757557117316320671986136807776422002841056586693348231858913216300964896836352377629679798346335477516764114339224282361134150276557508610448062541786950269994581657976704437337917290623099695159265259090715800550007618892912601004470568225887159384574177125911662900450162746688036083173442222679326800763920452447173989709520087534841732720632361301691132849876770458081767486059750237711031944770831147633719791258335771803911750644009245312620733652374202466796678045363924644082088215162857063198027146344847147523616195480151459707350268984380853901116413812056298282466453105458040834494098902528533328294668071570866743036738249011734874133447887686557847827576147281779637419441495178058181319132989859622147153962526746213045183902880546252376392540230734076917499866221895941073116358435836925698646593685822490399440524534615824512861723372673516124289170236527167377226478218883941264808601646748406881779070263863331976405168039909671429681476281344487420107417853702523862435352229612738066868910368526696899575908214038885330648006224743752014634973706441444000185491955488156615874686122575816009380920700189462069487566448831556348827822605694746776552128635442776264335403534702884732366922577787963981935467045307841356259677305896546769982307340357928132673436357885399875423434347982252054668599732250018939809792153157029024590429131225751891779421943372980007682275207518734712157752953358627185059565543568285043383587008442695511506897914651515437110970094024695570268362364319304881890343148691858653703814705837619704322871954889737075500692479844244864985693643340729986705008797550908806396407809587520123271745935998266449337742133258192702481718265647581686124447096716641458856574316693404287872479368823034160494752826289969586329615545823107764932232142466710398333682582633373663945434600033331227667946620223183975580722495636534237439521894865930045133969206576913662681490924675608597429700690090494287108221115398912357631377703703220996786464240330811653332927262124077485919957537623622688608979477548263057567840555336167409453800929988242402084567050252773923604464461457461289791939740278192457576462955709541824793396440976197383818723267162256002057642851599944341878539832211965458805931368505506737102527298163592343884314341488473962175713651656329853065733539828516859881959362379897695106635570723044686099707637497188602393068120742080587028477524824402621589339605209678475634364086142346387847400009304872578770369080430168142465481382685247064159027396893918554220896780171615305846495529883572878743217168613502217060945078690814738119471674953100639848956917950664295109119622491224763315619946211006226639446281743073093438143282908613049532838655864286900688855898922652799868980692955238565127742764877970924097084998535744209200302077005547669617808208033553394269767962907012550041400860131797444798743937433576633769599658922286937717416312987550014957155124826091080298180483605841687207756342544152701984985199907142713411404975721625341155007176326633381462456966729197378968386445644143888109096996119162596606437686257099813978495653456791086502739346682932387008579682474845843603618881893006659461267348924501580349803073608031369605414760221204811009766142873006663323475041179593304475159188989029442208132998586107511421849390287260039244110752868575088036241540583225505115907170569847216444453508794718035779234600521837114266242583791583467766700909213068424445843747931992231825780841357085445390338600006066841866686910543638282081289164332496091397211527721378614780667387004688002805939244271688211155022227724940069949950579768901038577476314886956523237036440527312224038836781024532908597875178240605148483079086129596136151565467750146201260805365062929130888167321464653810004537251633882411332420586001803190752416433020683208318020721195794256875432465540451429413590038415250039399032081595972300718430946719876031418325819702032003061624023559638896340793968126556274189277822753753063186105514031348315580198176442646405048528353506453563007437498197299626601969178010619780804910063148838833070091175692857544328821297285625049123739176346081446940411782390439592297383525342247297282872569439622950016537088313174399031539518915451008363741167300460693722662828060336674060669809767180917834883736424844518738222767418840196948289735359453672486292387443555321464620031102089572819542136809850060685335411821494568918024412756748030093912162824755664912722489117440957387135770216539787175033464274761796860775936477499488204721584766492151493798434236084375883803077370019530656043442083713605997677381194644723970100281425533118346160363936617188335106464356651698888960049329460416186970059894761280838156135216517934236009860611837301035818931266689809419304656400439093039626749778548265219535373012551041580429620110257874837362545186240642527691300828136511196273462361154801365950880310384944127286710436660996979188252633763574491533782054423235066723944925082844261395175832227021473223372066713515925942849114832420292229302266577378735128462992280182187380024538398312516774492615433059175607008623778708649890991068041056813245493189375790061183952050589549858903865191529262608884264144814959365360094429052508308639266896879572739400429925487626550184717278952386287548585396035389565449310756327039579908212356853747227525661164750170197718274373795378854443818771823019473870072405879463988060740974279403692501160716963482064376685691484593086759917079507201082210879272562177182457257289314100429837192001228212473745492129477597673922942647476230626719637899952742628922821064910246013936866977344333880900484430345308994832208218679220756559238612698122661301815005730216051994404294172800915552217336495022938186873654711271752082166553535208457149554314562741219836061860503131828122498973858039712893049873285349628178967061091382064434017843305151930973645455134268487555115294180819919301646615926206111292567242798996992422311306135670688049073627753051503447165731664724586115172220464424807574142860843993670290115405700630444450917604097196610970823390744250719649988551414304453577393754647654066084151264573545889140392694687095789725159328157052931393320083717319661490697542480772352843861217626578640988480834729780902864190536754563967544508732041286434983251061570677004157298682641005769090663309656249916831826032293566054249080647468892132418345320283820988872133570129911133007695412168624908319538464210448376127071124515339308682534568262065223778314600037116384150899513166330278738642436292478464893709348631182663384957282202806901614909544327042749649381351967317862856633257033984511972572787739649911788107724311083377844752118172520123355770318860536989270727593921010597232212977015088643512043272793843248236829799331573459370980963436832000091593077458734140964524078015984033422328202259796769818828755939860447865522838883004710217386798272787724189479678276055056077929304153100119990643583242633874207616071459593110274490645809829453397178783510630442393595190911432846892186644160944145853509680913964193954070788347883273098789674942401913883875149857400189047192494016792500120396737845055531173715055553662530771592261665086327256231543432674133769733071681030712709899725261663809013351706804294737997153939873104547942203356559334456721381320936510122926605394665520483208390085579018640844399821803820474181133169705327276836530860082150537902939875187358132865444956382634742840850493249951371564879139079092973335589033986312326349481010189331776398322503409230852300033858583794413710415360506662429494357293996235507293700860305746256355118715641635612209871244392376938048593027712609176160923571201261433667984700754295747070421546284754717825528034856163883735348412884447590861315181532359511852398531476247338675096690607184833819621276318509991729498372287973139706477945093060908564958688761043597883035505768006579122195404727993391682454696667268843519659209163181251570274294982654595887759527153882251460145951175866175289915230644113534882284697034141412821791014056205066434200080906138200793253016215243662037225488744301900282003917539106923662930838626005177044437542830852701460194893281091680086850608699653963958316943294589271815147092499792672388393181764814796956075399873264797745617250623796268618435920396930588367531734227052160454996112179816536907789746199053101499831392528785291652613540691427090113018725444912011142074711713353700324920850613456216328128566252430145027656004953573667927326779086381593985104324465728718380181758500086216349474717365720182760719863333659283987771159857483176465467743186719176422906467952406643496991039437763954747228294153900296347414047549783670831493386736900439268387412386128776466198725703026278536826982618369870938067642094070551612133627914265737413230821851194028093317202374811946918449845198494811296669743575185394879749920052674931803597897474859745899049419872183174274395538387386864305956499400553087614070054477100340687586813163092587380744182495927574449873362688959060388744643931015908313759533618355015747320034220105265284588575100081430601070381433033961071095423077460865055681193951792572232115555093952377370979636945509218562164601031639960707342718208686808732531307470972804597329250181743636935961217752419519654702235434654366865920389938867551816304955798586069620925601669190508838230951436163052960960125488340177496461264371369493134362475692678111391084286968613340880172448946642662084813613916968768466741012839141551596114166868382580740030066254185662078853927048710005517857591898871524538445674492110199947485726255210226279602734211466494139844841167017419404028999853887178509404922995383200074354818644102681905195202434309124708074635162580594081428697061932709071051689884365396756831538315099667078803064688283949226778777869224861841726796899964067167615227232924768429616212819562060101852958402168644797350182591238732965241643224924418231329734724766687911166993892935820431541998684440068778104348892581729471337461815270274730313448064686020505242256006217512033170298759571343577197167141535102184564802719320008877640413566278447344634626652092991676539686390386599053370381439846809844276456681666305333410156560317770291979491101767823552751304384717408654757602360401364201074302967044374394781118198821841711357745211593116005380279539024971220010841404017107308225521703519947988765368613901667657363665402301501830577127687688660763709298053137588890747780421011972396994187193673993456417571557306489165485365847298762753955261581948800058970454120924111300351717870866343344979444690289262928359188265888503417549029326096853293573349548845465234780163598700428723423600711395996816291337670765748881400895645313232924116545625895358510202832305764511042702873627334463869219973960468068942319142004803083201942978176377171389822390196754104106565858032938036329601511270889694112482734704589716282848316464166765641364473016652753258038446625821061945597778068122006939247482874336992737511408896322247412791777707932135634722063873377334301702003492697890508518349368705174820938914475991892401564450056296590085671344221502161294679898061888829100878173163396378670458233135411572300635785391763178642886682165162629027705168675140158494818878226266854413858599154873342228840395368496543990561496601914235926556685041639948113252239760666230148668313900113860748107687045761065770731172676033460829550237365889340747753722941652147694389689331242278777149080321270115338771995549273811820430838637332194583246683212257856629651073352812042593194791969647592821077448209527991205292344603461970177209907914252676471073941015047534528793280328885623884779151734280242180166031221704529231793696433326053234701682216295436410405284019130640332809604374058842564914756502023817960052093069104084564713567270667562137255642901588634886467374096294599264974593816246287032973560837168143951636691462315461345697792613743045285979078013250575372344070182041969916241020760179599786519096422169663940343924935314729589250630099310693672790391806834763978282253018110819105452836929128958270819028176109942647385667799611985551576121837724120485544508207325208501121600105455852021506156256023321691575007701189769797121063627099534673372087179697955107713071864058777462332174820922742514546223209954845774736738674777383985861875998143352494936922826601335115116128196888609145211026120736582386911843222434884368493888156239545629655062273798753864136802321644317378012625375317970201812610328851262633094152715382729187534388550355888789065130484185555706366349276815803427582429214085178779174423526432596218643332194267893428535076725549337068415005066945845967633707347270930280988420292776360535885229349511285044751701355111621151376514249823318440799455284320245598008472823146950010643197770229683971499015628294809879868214422358381945500745807466912972380916059661192017216441740965239288319826151420259669306865184814274208525788770267179568207431922016115559919473101982229561846715167974102350107793206598771076231875563373419238210592903043417871943802867613842311736655925802621721760889842385147974739019780364326592562424307806353363887935528255799385477696682844613093608624429930110480732894146209872225409604656733266403748842840827029701195414234546717026669064997536270983572585924822532242619897979567287876962799310913017724895354400865946206814123260610263139824433880936877863837474718701618720588882627877117289120307427057822714180081015519178792511945301624895111481976394260896068150180895615342834055101937213622769639688373793923112200306771082138634753778001912864947199783305862435032521448018519201528961195756281558304976410257590196112638167272771502035553108804506756294871152362971926200577039104702914321946740211835689909458503922162076215656790460324079613425719516980943233118634708675135758447761704954460329835204217970662074494444263885368973273457832123413818967739016259015067952114668788413481706846514172382903714944350744053718060426725015595054816566482384996160680582589285086627409818961942361899879059344144681212489369956491519111772544417582959581847983150542502838789119060556120458165512512824084662076264188667416557537409276162170950501242470428546842958178485194575873220535523417819732064721541529399510870410476081969251237636501461489659884735267699208451201194219940848418355262026180352205159066196060476770662838394578965920001553259288377276534429089713439635483261755801253426364252374954916277908011077517646749504660616126187606940330736993985753498352218521187019693122767046632501756606628220843622928779620103064110073244371738765811304164692989861282095615414295299086798723089215925880148271383089353557512799375831968944483447272111381214694049786633558647237646847250726047099363760155803049356519033008578544379018784717577641501668665477754009899390185408655526699453366162976701181609138543047111579894880139703263069791275451817753423511140531931548685751594441470517964131284646895501476216903803979387934561149720458522047998032333032675031394685264766771578825953435329266072073728026885047878271666810284689216010585853421985280849944785053614319580028633107442341030683602720754756244120007463728207887440597156400720743959027778477442135819629108626269587265470333493206478413872208455604391963427138162457354910414586004596447729256699777112908506098989043145358260198013854411182615954953664818152334314758737075025484629542752598176008478854941616186490800761240975944090032030003563542802181880197131610702173491647354946236941648918956485758798550891841177295534600179144091468745824484375736852891997501292834943817465534810102675628094492095400294911342618120776405642938439411717599937483960865337762671557917946603764247597365470131763655696558185181760737082311137286752554165753892942894468957439585593680267268278755966020079201823411763782961837592485009442857281917228723280787319815744269343230895072803862428204929739486686333798473462609491180186457181519619776649642208100851522785932041218400173849333864838946545717031943903741786521112497694765590711416145670634826113618702136165097307526073957644366316346100646010117420418608907767336070823875283965211797773222039778012274365209348632796373554244527027307524470397712565475750992447087958587576431784841281484352930884129418244398591042794991732319994268934223740799797479026818107393725315552553904170787962415445253576825344423782435625062107923948417087330266559616282555809581339071253503931692876709937120036676744973941268465900915638069202982282122079314613133932893016667448080744708878883365063980544054771820590504970053115638088352508201288104794593411708329518373213128619347335856346974315827896290042118336840104151250308342787984233703252372070520674824469229834074505162509404065820883441480233443193458137302326611436787238880905137923747993948029201568211436471142006450974736105035281830893649638127019790924590443368603398197356791955376973756944845634510863624628541837111370009232945343910176831560152099578883750157863165807117681329038626262397217421737584450699584181419662614813903519730328715591623866166813334968812882766552145943311060496654094153563466396592943050781566339891455651284072207444628776135970342476073186777021872409517861526525098474871045478049517200614731771927775651289607251031175282188490490704740907884009888285436401905611995762896873892800841415092094419737754642436157305499604724257240501267556724651630280320688819250531244636418573315091605502708072275941393872620942591188172560670251204990806715474341402103896273131205402782134022466570741984369475723835683398680035598301502539248528670927493552430985059158838600715977122407589585164140240619497721654927850705658057935654439056855838426382281218996256487977613376980466691510421655259254211785653104046992834533837544199683647051157548757888411644743195733290596736678099313217108364331136149656756764435485700317477593706054796272798281946714041747465013692111460212424446524221782916139224459812776554362330053849861231401176975805457074976861679140174307238050319814208343858123388436468493906146107050772309340546808531035906797547644023879193734846006927984617543382385007924585152372217882623237083236115298013327947096214064835376155336963850482854221617189086316716866907520946016017501628698344316494025426603573399805631062703896947346021593027553962863312302673228992603661814347917906085988505843940681291452506036200141292473108053073492086557480796121296847616546655204847714309400346477596977615221794910429904297703050552161241330703747569180698101484656224721816872617232631003390130270163709567481544867194903136646525487797334961099128013093627512943017707169164186156818826505613988647830851415497695760913549156487658014903826439150708733008814676166606601794302748964042293856625615567158495634951139488994598049409153486056533506678065175968407562109721902822307944964703303939691619824519547984178422915509968388948508234038484588817343154153540817031055040626667496252992506050927931107529063801557486877299867301498324937417426023392744637545842060172409708317006906857513818818516924072544735472407226370948098988701651172592089239522385002807487927910301745039659095350178883914974658694743691787608128668961210924061134413168070289162359547598041976014203725782740434881151657244528300915621318835868575504540341049696107857434993041516629310508349212107971933696838259201856639569297701765160473312433456872502625770401644378214998793607526917495187629364415186812310461020044500438039096714956521848148227724164327375421531521296149465720892538335486852606082375964832188856423248294802047102706375400353560815588075616095051589550279068774547970543731527411006001280018958178088268384346853331604963590065669898178114506850708543544450353292500984012996507995028440823034651890272347209433723903865826551372260160317720239506718176236187687358057750845154410244861224962670254764931304349876760899193971821174296235744727814325609516518878948684725530697527719218178650761805271247093385335153577584152236156066761622948964882787947696347405684753421555373346681708519037077417016561896880882450986014689062505337369249392143396701452399834026052014286418037694889552732873734056518365481054885559759209313490864165628247820676925749906614669003552121187268817480181371072285822231690930788028110568015967249300410565502889648124831861000662522069839169170074771980742868785836632299448899875830320932739252740118678002841916909184360007995267343929642496626529561984633137677992188494429540766829437701117589391243759268333481361240790943361109973542860280886978342949101261753343089762724881013655658518863986079407675594698826781906542019946892070530949847804808432164194820435439629916611170350395159111351184169747360638986764552529978498384326978185250646945685346601163389078485346794123071304306058491362031731957039188663072157218458891110220021297328647933251345044080773503425088853585457717619306073386315214809290085093532976685480048693649367126348032721203837521838840735034668869966377576511083837517932298617439795631460468209025055025453602975720000932700798155484306741027789877841573798550641592730196784346005748705256944556683934931931512372067672200726014418566062184060360680846723093933495206774744405147560086118900473843034322559643395451890983042748337365753337562961290987145486873267457565618438919478395887892365641005460907698665600639622017831761342527977144755656652231158136971797057426960100121352208311605591950634124289119848993990215037759291527261026510789736761022490129059435373101048522187695191199768333807278938944255099097433249212459927427366051198282102810940536093235378072329451020272274288404177051014622612041286180109614877575918020524195271143310942272492445513448263114044862242816165508108058696658115808536383735205511571157990783068919245310758236925853739814740137046320730391587287760773473776628191941733404621184523962352406696247038191540417108833558309395951507227122629281220326055782260183360489967955609331083381212701430073413454257094256819325587394599242252714385677101474696648329464577062726716576713522060995494241972744086320236224696442532966370295335974895159239469930215198968693363172292086909950424777917388930022234759464856394297277166424939411626275493492927907906492265760953433363795364267717788706633765594520724394076020743085030620479833323196481430112553404493799741487844920524492832975877763763997244461745377950839800513687480245567128383322895674816381809221556061193480779203248708187139826154672018712679899871220956486852497132509889932735251038096256674594563211209276215376085890870476926543560554765830392112191083278086813841634141205860493241610431085043717124875960899655321207461263586876176622378092963687624724599614680308702424924542157852391180949359014769337949653448376095733898278878289645228338900785953106804576607050967747587434050578288852391380331384916273564929568205341260792366979628773258184544757276921094080631668750638726670607835654487537042203443648587450629799111672944192767442926930347572993206986448831978077361399603955406710441046165374236304456077905860100661899124959211522942902169196389012316116971469217043659639341693830837566459644440374599045719473855587427314045758405908010239824821922001028551081221647500346772144458568441330934776293358417340162248339225335637496963141124552821691590297609591859454820988120105554417574811812607622786621944830948411576533122117010075717613603547023671676548601817889483253172576414230315073452537103916521709316252474386587900101621539561171424694600829492563799066785546516774473791107329882024452963144461757599244388819291061024217119594575350591421962784626002226127428079522474099292158254017994295481327385017012103568209287954684963697116264021654948861632138548244092838683431665518092193398660995267435432881897174195598007027394190352738086650090236835714817238106552964220333340268529974268919682868904760794830392032704937209574811125187636801296752789864068809909737237582551457200992715350935773987893676253075410248129651014639103918639082235497909277425637952383885737902876360203019367810579978034725528643757475505369859318354523600366587523950920659694892895978418997072318042529377747586283130101613636269581527035961053869511417822686310582214133016999085329809133002255741920696681001820277012358216237665873252120294611395641418514990019265449676444626870002220172443058951210485387391002065775987130503745808174005190537713271716354370015365484088721454702860424449293713861651814431875476623847446716299271308467169924169177303905542088224189451745607342478804429171826707328383251986435406775148507573558709717473991737181588060570459842186555454546719414169218576067750906059924854001891695359294213191166567469615843203606843531002958963964650620216084306433952110228088239797009683931372953807247464498168296389378897998778498251356393290651743519476311357127270681170318290614524738004328015819567893559505761091545169461651260503881737038615695587142987957550363307184986890030968122241214085585407860449229439172650155848648800094023907354862559601528932833241150181608017657701945509645896578553579815191059562754394264110417104010765587117030170633633376079606013958657270396844136309645486052194546809479213069773788745937967785431467772125069669065862624674849034403908427742887627536247873940386542149861080355188139137968377197374650942856320771209475384144238935442570270927616610654362377727368219468310497963393533386062104402270411301732073903451323488694630896823724692736370773940641739824766926204497804219693371605043509132176284871311640432665353669537485140837590648644656767241413974026346156554706206535828295814076021308954037129987394172719919535256711673613979307226931710736036905882368621646129527052073001484537723556382247927214988047121872492934585929259734396818022587159739042620584407483071457846620168662732219956632513960783674943615113440917289713130428008080965539668594293329534852531232790434437163914886301060724008725125816590731158050218697916988108022754016338918541122573148335028036773828901582491909903785439214550710709598176470205878891801941609374743248178730643199418678901531788488656663619516245663479868732906427174727579219505667088253949850932019214055993898876169238004179357416543524243439216285799764622616533064789225784093598847316374165275333176916911975708891122425393941712446008741247349333475268015864481602204605491014500817562462745710972912335713586416647594631018202409101886565571832220824827124467980087701588138400661660544712984693355491173586904710472435214770707696811217907294374055908827058322117438984067549140771275005776773407420788843360028757136316937676796336597171529619266926128656907892694276213590985658664204314689577804079682764507798147703417507211907919156959305708134726974955098233210337204069781707721909077601028554733748256084561749169829628899256092103731580151036821445741651204803272199104869233313132102933869121082186049817366406057449755474163059527673199384157135243071467164911311252060689683425175814612257483481873357040005034228489819659880572623464237988600652477072921613998044860351924185553721278393489156850984454238020953023484004104165909101919372832489947501468684073772523737263475805887094859931106599533385514596037004191952479266362676900230687524628848477783562895782485610154917005362600844549836001567208215122794590982085022740029081907422473076005949851218999838378147683913644031735624820795849668915628610981505256359249863013855705888731968179544998045904901169639691400340063729589050256659015786359595238665151464337910430335139421581234988000468033963000212138803047693490840578478694175875694335284261755796071357399349263394512669701465123551291379620644982009951863575319540841637487695583724230144229699213827410626478969812343304023006801488682811568786792117710714152910157762485969996117084446883508221060160991255406701942374265575362600184169738314253274527692484029881277091453071623767147443776082327948857303425422063734889299389587486200957851826116347913924060790145095151738297885635399200142697927490539821736202179846576547209181621621764682553713953326324268743400669996945088552075119768947729901495453206075791556706514017459034385016861249934746991147736133862623438142191093127636575288357443713887202551947893268512145081670525757885658502180209541696020870513831667414286990427552259991792478881304368476402661002319334979342408832375290528780289688196441871328987118629496431442262998337020942563718857472468192871784706651716390948608008048779160803846328377866630822913383508416760355572956714104208596785103717604341483623053288263618801943331737223676150718521470641480657486128071970156367424368900853629341913141211322025357224081654326075361570159015063226251373736303422147997200919685968962061744993012041093950941629484276724757376375248590478331487911533937269093178753143474422306622871626191039522322692348704626228388999434049454063903877099317184733424246841553055218776026137943162214346028345171205576651163928908924565127451217937755884742174172123006996332441304067823896998937516516373574436684825391785247220602888533225867993927450316018190681420724297279990261462411856122040478462649272218270741960992499572446619342725466322186353308876877618026133879134895034673377079867798891633056649036970648336911197199478915239776028671030536940591082689506589836592062988041253293411343388048108546956786498369817354610299457177228677469170166791644715287321211764206824221479787262168241789421072705154014434646261969684273085893009167840807975035831181368078247181721429866448506611457737179167335666249888703564824148370162974761961113264179811756177479750215845548550765103991791407819192602891619018333634873348322383322518475445645055185344505426046383530514726131116440383646682048311142747859564947693262429956368829926770093481949127115016482503232480657788342632950388230819675825418858195967172352109928278988300101351502236715894813168160383173965953804691807890034501844768381735733010263313315304802802704924793307151026330753272674491824055868062980636862357050681000036191352980077850453612319287288335108177934832227608826313180229682476387813795847513749715526774002077511038701588569982277572104412493990903124818799709006963383009088967836993079280967680362924173971101949902036630438928286949526484631946895095186493393043394624913106803088826876227067936108442495939605852893167810695561158768044967526194481703722136702318092845126485768177463900592231323549953526927885871427238420135463588581062655744918301222688795982187621493765361526728118615728715760958390714900240970598258589006805203477352893782174572312151160691574528725758583817911654913567498854461569645710799698526462719282542830722656344473863162729222011729639435351668338596525710408814881442280685501539960623298404933476114525780685162441548428878813047244815914197329688589372369189701018241720458041377559032568070580444715009775930283998250659157062580822799679500842746841077934517375621858573866263716375122797870790041079332270488121632578714005486593252004424743438499163203644614985520004997094069630173850193156316025186116073118039805995006882935792369986381551233950987018205828290799547429880661422407517818377943019456867580638157420806527263982173754142455630981376008880235400855824869252254918228801633372511637351710990011686255416964622298826971392144769888679757626397610009467816585123668909184337188640228908605713524180616335794857021875831222135238897201359034363172507335441318031231413116219743972871784375888829450203668412906655676402518354832733074254959341750673995349182755312535008196252089606044345733982617451840742035467519598262789444751116310265171528823679861171838056602772026682012079155811687094443611066921853897136433358533951133484681900780455166351531958466671751641104835582323608240474697744583509785400329731979364175439910717290170275931604958118702666005799026614021260104981508834611802086260571757839458182023128809034962518002931259274403593998539523944824989122109914252061422589886057097158028472020202333323913520816388404511128761426006381724050874795147023974856615558995024021220726912335023063751076290275317888162884542695505356033048315395596937073606798762987137165579416603222806718923118251231813632658423870749035501367201472153370723561591930002980351987475489889663262664851806719437514469912847835357589325029519734490047991907163845323883994108848354657504118214266598382803578247729312394006229925670369097761386749697190844896708636121236204368478283949662979548521171198277510068261872377012260429237349451631602067993140402349130224350782711306140895148554445117739828450130115997032374491040283543368232278684608430973120440169003301799848276075774612099849991142540494132044795551783883629384967050149598471009368213632375035823829696672056825335120159916276298950302049820768719189323626888642759857433350257560201914185442612629039956596685937644739497252656002173507888716372306680681310939369871554893837657324867336432707234736645336245783086039869376512962965208787231182939932794242188048887609288211677046845829288698844188466020648037795848945658934302325279912509592323374174850483249638982670447501793312353197753343692410681043688805318916606925333047770292517703920488564558116453504610456061017650819089567973377405196350527734927193749230878838259858470236152409948823047503492206201804354762786453039963902547730197113195629660018177128474551372093119020845996942110117855843211878580792319210277533706607493118856534864324914204789837234102286560841517547224566466231210148525007431432344540340179047256755788349312684475368324003558415573797210142402171114593712395200469849232636061839531497020858945318455735835340880162722491224805583873493389821897674106111806310874130332744300935484724605052970695279707974939686084599355136243792109330245356693501437201048428796544619664297751154106149009095159006659373854305070820932150484473197909699204959473881470952764765762162609771113705233656943235817650146272925830658398224156179438548298526827919620801605583182884114222209189956470405387893240663867450796906672671407155718600728820159969649312508322631324821815408898535413139556491030088758448551994431159966554729233427252554331565284190450040693707152251268922008098690111194651648715757321805925423464720726371785361430584340226891087191826811230676803726251481268968067610255589640606021933723895945227056409660510065013636091176439821953255580955388072897735341749669557316255138669611761194213078757089370654215150345103268120640460929980322806445554040617071820968826805436556254834859198550716634248720839659287030255072125599852136461191553857259993431339771438398325909820860968178261109363926140365516140309525300257001747015811376789099518279444631422469621064734327451766632929558893841376764102389547995712550843502425130458076818798826921376741317323108082568814250459209048578894623891885531816488038300437431660564002128671521364298799925435024806607074244834768251717164524746712254049423617942599487960961608491112569903777634033208451882567243283951439554381926457982323312036897018450559293476619534445328575056975643153154319070678548565326011593168180285986563034605140984662028293355092640547769696425238314173598228271618990242018246653168019120638396352689625827969763268927680739486650847337048220867870390756462668381008008378519898939165860752843014666496826790653811641742217968151621355104516105181095725677773427190118780783852295685572075876814772509032812584472354180070560826543817347940086387407590422088606023797800853987992264835562384162263967351713448711175809533763858838981052266405655865948204458273103175706140132461359611580670769172518023845651233160963053547254303315769652880553867833455098376337331673540988574353410706401246522229786025986926837767449044091668101288325744136612910413742752911374992163760889737211658892287945317819508662054643259204332168048354436445848339780491496766295836926030798616997918547395461404276312443586139275374615745258934622553617301082105695568776731221677329826451716419418235830365688522201660381393238294687968901254160559489017651294028329911695174087021726146771934170337387412143623750314696955937631967353163728585784555224300712401018101407575612976625342171629012909444906630143421046589678130581709445704931293756594366193864641036668998979920492383140059689938135337984276834978899518327913239110603042116467901152527165996877661062428596157399585460894368907128869065692550397780212923267695772845123050436825725353841610007489680164671062873012490647090698393153504136550185944205042487008705806846768634424570159512953874828456237830762210621401012927764431752183929971111476113701553573300755062077107860658568471062133002729729798624287041563624971642286466129046782109758961939213710094583593419898832861024635947311256937848044683375232120527988947203509799790655735879208238122535842182678739048826470692052760368949796394033310525104215607978299242632144144938097138064634538007986878003125827680324779315380076577594968217374840987314722829623587233771821987846453883401862588860579881961050332863735440204938286715581956775030344862917739691628819675543837604550311918480160663302366518375423358941262638819299445572948140196480435945383369414694871776477265272773882983293079781401179602586571603896851641241404106851167141713097992850346016023133001119633423335587296104081798747823129534099613254754164628109818827896811704559899268321183868053526339369356649143350197029295243342144658900177774075108565523462599963957862099111908731475510720960253940205872046805396269830320276248136781799037299026478455991969742704919926822018532667363999502821623239972348799652796062179507694548743590036946308033657161575637847386683372246386512831881859244387730895976387919746760603697180789367682352843128853544355541434009452240022041493891640536895821454742136574807393533381026905865023051584936264158235963709988343976586665410453373007999984736389887678792898436416877742655593553781950514974281117546625848438863927138574749626256834296240002371518760588402917758202229404036244074206907910899071514387910928823675766463788892157886588738186673634843728744756968633878622502544083395111708440130437199477426031180735168885515850603028883053774190479147567870705281481689256710269013615016249368524265776696521752796955584950965725176827028450575006902500100286449861115000688426999979153976219357846494627233219963118174696993180229900390791235708480569254831105683202472724313311730128833018717802652618791991569158786978364775919851117277655274727265614022679032799850761576115303399488639656744314291337732663355607272235995330721615621137349735477138253399903632120695075356959757943170849243929536059812745845490457525258991681295268593791461095840768744355195991889940512384559692270288052443166324122153255915345667953201779694552575381721497108913348246194036656853072086858331466571069495814305000458662484513671489922206341394735565685022317976506694924779141720957948263609585713754457432641695922412203359916779094644836593727073454575533254017471067491854511645940218450044873674003920959788781799454555747166818974086025640886397303429974739158808631863231078260253423101443670784231600104986815147656320609633050726848636930513477284195115593054978724860387923452832573916211831514929222117446307814222160090037096510439209498069422754862453644866196400022696810375173640652960966044089933969448608455628964332781937050175756014693275693324871476844208164538255078270015823256981893521164595777745151912988347558766898137964127086952799423825514328949885550204302841224513899419872058506793195985307531994583335669327992175598262331489512162931929532164601158665195759738876579175863407710243585774649204337588898821302713172861942444121196324338434480543542130820340810705859538091207010022199511307069010180163842033155344726717535111828050803325856989847387809639373230609232609374211567513555567206315745262957232854339061417584216258850388682605522850635423178437675564178143152936207872040476594348789989536782407267297244422696706201150886565346446343899227737004333944137255218026546199014797437390056253682990720661174128634227834086340555198506782783510869936533526135857384476003838970307794753828855223467580269317312557171360353136617260614985158872813774135101193172845293724919541108258046289832355617079455024691040727729583202376174653204238639790531070399442428184253351238061614513899170599622073886055751275487827467188473680569475099343771366368438915708709799074699511272387748811004590840793568386565462459168235386013350522962066279953730323807406043807486346557267450297669353293074815828086001864873378139827683696581059398756319044556601383785810815772653015795430594782963239048727877032481259901324522301445716778340886145876759003920939584537525144065046401420962820905752127955705347321561589890243100111612406560395217940219469654918249616133227582902793140645503587812244380231081679550547980181552366324998007235529081980457793505680649365509589035115291398115704071751782115418421690377208458111649005586386991706037277754334461901082576783617663329860758871936286475456096379102588356295893396660295044493272343311466329948093973767091858019181613176745903846781706284854975703027193241446351267043909037685060187970429660538863881625516884275667525860226865235289059181318610953323285471762674279870614008567350033835609430972011961743650621019008645287838722309465008876648557434560663858141978751114887971511585718004150664524430791018783245623853745911185260813664817286284583578039105539303669042368620175291098917107493270506172028508400469470051507020898819495528037340226444988781280049445282022557210135716464302413383943159684929649170798416870559390591632345751883769199055907038304379304082332557700269905509331265864323710361725942456896058853648455858438207013431654237828107346889946790237535402070854055024184292477149667885994731160544525448503785621012867071236677312104601874575665286512834873780147498502779224210049014652722366000160051818453453533354215886815827239671601309551002751948161555753094702731201170949416273309072964398163555473336722552570468135618786911016856750812710290644601867113787092566816766561259346358275885315237874191348755117355849127331067919780979783218807068533107290224867725305800521093243031188521004469092862735500201755303916673100604464666473677235479235943286029847253674583871249827448622143466846818181931142264090853921500924458427506398439296247848918750987429397622782514929948087102478266852796860984503881733027633430368897186490299353933579117093131122391259557201388943420190574704740165844144123790692500081447515621858802696664310146669375754874646824265538509947407751692850225200507285030388187620168431870416735805578328223012916049860874965676448206455799685651487245054012102511599593065959796368962098118361892276422712944876738218407900877820850466506930298035589384255347728206705907791894266258268845725781433960673089568084989655755218533353153763772071224052841325619869439240485063891399270459639944581535300356830577960607345429518112202963164505591742382166407529433405080559335863711683688570205555258869142841851529548643878723451451243258560539994817924043847929171614911008613621460937970856017183573035136376035965859535097806846345537976257309124576475420831914130069247599698085338299314106351208933798686698698317276586827367993758948796605048634051118275116644714372534914539712030800615813895372805204612051545648224666760718838040115354478557179805848368458023056028136740314922285382907785507789446882696895035794148418535395888506100612715256307851165210193961441846782411366354584296337032956604778690245278490402872287964273015147677085051648867580166032709863546255670739775404180631594916928034811825032222630738106868486363337370041726153124443655446441967399958485019035868457305038027746729217443840588626383372377791050814035775565015530078115716990504775946884922297465967612185933797135383111826391083454200104650606497078508750025970171116903490170282398355818740174831529694328653050863417602336240049369436062017685736352399944309428960998537217485631440720142363200203868778724293033723923220855734341547183855534539364992238923036892122591629651997103238166521705074665822204378569629820828250289848499509352524126548509479276361282028800935050847327589131748607361868634502524143694387731889354928962493387931992867240511422459784613761211469071348586342427410030473802926231084585243528140063155246736467841801157333688193051485305577932075222196231705052490912314735516535310919399368792444226019880733029887148440091709281213470951544282258862379462048475255269333337236422232661208847069171975349629318340558479887902019373638821466079144134558020855483107277020457296998654089505150748101723942217100295757956127963457929945267115626114461490084687477849323877539349133975767593102896223991852361372991628067775847799967090782143442172291877408651057307688548775451322483704943450523678720242418913952469051782798562857200251753909370285761748321521194892714258387123485924356696433897916012035821313585730845655766993913136567647859459388329608187680889577321339968519390397946883991810817204657482249237109644125436542849326438815071862613181406561553400322327461354739620308226092780613292335102685393741515039212292830116505936276530808454692403163882788842837565031505080187557765122088734650147444443033240662605750979316606887757428242794482668698359246948584606512391818475484038268733920511511136600021132028868869254999532302297920350682383485062530871203614131479377407299223209377563362424050623610241053224069170222314214121957449208100465035192246380424622007312199749380112949179102076641482276370519733963859279824759878906696981765478194675812521668691403664119124456815597063751288202181551445982377130772718609798371531267345686137053992122216868586045024384575345632720317871783818503857566232034386696784809860896754886168425899957581477738493982407425730320605186603828762151612157616570115616064084881003302786825629683191333404738853391724648872485704902251125114895641149819416577273887808203157278379936724216839006215415959943250611046324724810758536013078654892362271252556412234780812169961376209446379201469311391748577120588729709922543517995116103644936378472049154218062574108935532267047870881761656490722454892615233704255413454774763445982513550438284012183242933749662106169866659280305492152529279402413441772692595071776194483425132321227121456827284114290571933831723284085055038056680698821868593760831951118163650180692369460315458934770180772828717204001749797228642191507698407661533758713787278127259269450010892907210351769965165658764607451298944143946289935550303415792413692267750975051133797114691452836716457656182596136040206235015379742484417211676763171002167570431809254397500615841714190291850515944387019560894638992376101488389500037408917779874115681352492459568737767664091247755535448575980426685778074380076883912440450983956853530211007823559055965119642209511772899926744070621775318100899424726594891733185876632994676723777945600765336653185243795301858903161871398318198791864444896315593779381199401066787278492743692831415350826463683410401314437318834830407687537663619289860020846994367605465185957183707475265720362695991761880934955339422139654436262386789517285635543497259309410101202532811636808351849629594444349720772554262352507493585588508320912351630800252313887174289459502090423719910676669132238611930149310102498413129362900528045840060344628409587523593042273917479328269826684826906177304880567548227322000380835643918506624196900379257128606747686337802066208386353646217357907424069585528820179919894367868939326798932325774009129733504023000191162984681495735010297919118593771980161826949072409246418247429480441069695014786746570967278653574028033914463082486238443243404397835456590450583938733851134149219110590133810405311757856619917128347786050856599994252048101789042504510267479405734227156740628980290021853298584256699638204356252090227629632961807086516643692110224241249596759957058290162126818091809218657462816809395926380900286167457979207450071991322994580428849798933909607027565786895011629574792548773794733590900618632956749626907873927987759887560133204518637036997714849336498886021436252982904162087891633530371203002322457952101193037591859393844484599571245644766482219804208996394371519292213159503153785521871885327974345995023938892023957967941559873875397655319414290597616532079117515466697862367500420425425794794703223864056080300367228819553005527494834602805388863582659124690786375953528278907422394459692882961609708551166321734083272714744985373014365737083371787956889400549527900451294569347026278833594806103723272793055050228417780811681639930024079398626951005015675406965010032331610254222475673395450028469441291196013423349774443114730684675667611753647838915494689576824482906127386189011249620703117372462389072947572718874468452271121516173145580533084598930677239967220469922873990439851919096281136683588318519961618080238895384563760610304064309923349427954268030168267734311325148934649518997844210900750425976447897260409416286855707346470465487955890309733280013540180183012049257260932607604872037414799613566111977105198698569896295393161664074120528877316265627903211648261131392490913447374895317036125088141910958691974537805895800062212047585632508318298558998612810680737486302352816912898571971407274372670914204571842646604598216877067290617407036107596010182661932893946023387784640044022338647076053726081350983027502586754904870849415066252722439741955666941037023286311533170880750691696728443390575054218109918814092297429830609399470434971885947851915318944610957629579240004578965156912793325663751064147442608687961043605446992640621296705583602001580973712451247765643298978530212846904220286930899756682298635271987077343773529204291549865419837080046489263042125690467589844809233895207049840584259297804904611123683290145360488251459653244067727216587090648738306737786155283280487028094409463181298516489022948996246959411804840971803421666431208689807655542915516141788516080673175094321451650499965839951261618365648122077896626811565959625044741243348294944803276000814764815139798774039031815671839950459493537562713453966342654209048984994937508059270062876163856812857877214846379948431716076829936784692761693764795335873290551165960030646649230296200944759652304253621458161043219737385335310520183524583673286282314819379096022954420233812601334016247675674248554587920021131503864901703729420460705330384642988105149268996163395552371369340716201552217380774416663428347637484035951682937714994153031976139151531628930435062120720968756004574662531977386431548269049652307805039337011658734307668195125635588811920764224506569395091815034539697648639450505267097339787518752277742717043852021508953272155111217688442660598052893951357251186981718344598415683243294179896936501448560979989456475058774972837713011783624257440305415240384807823577457407108666707714627305270974099965791661700239059033505271842858776627122526271815579263859650646803261703186034717100116797597076082348295697689892527413688975939854769726868714957345826134408696280438347729026339700028272095112220704916827532682121910090373054399333848421303550547580966043892592639767788301241028073324402111757367239664374670052160669659244277135916639738639712635846025911614947489741193480052421404648886487030766939364147943764549568338672632201590766027081883988825540389922692115531495103625407938906815635322701686122081506436724237387968186993259950275971762158463939475415054959122997117925121482516459831173435439348939769491687277789633961285897441629206682392668123289212855837294437802752259512798062005081118940702848250742060762812438909512992902968673924660349648928882163132314734930072211128393084232454840904064072572791856715654231362421427833627681381431285180623931375764011649995265699594597467188716173508001767882982249052313512977608859596898963311972312938191436074866441991178315566881083097649175223086554078678209594851208632382218919953560134285633600195161030607249399012324141928564043107597711394808671485919698333064958103188375157486709561241387821125517321065100873416862515173724366487478942918916775976904276843777423289548836358714657830497431017923472987629478947059740433217711691245355466794234567306444254183250902637086337262821579646797348937219809778248232263973559471921886956366350079793947175260741737136315111916113375062163713451208639815412879461841747542166941864505481817637892488359473421118153772873724777849063193204876038645009366468448633370058538884191819407693523376420389791404160158530213491035617601490222437819501759257299031169096548814426172124019807510914413520889840113100342676048129000861870915137820050866128781641476925419894724690078051110361145329660775800344876002525987354273596543690060239653266432970133235045310290298735118348841133215513864587286180370666421575913213934290630649263998999825587094317301849404444508950412151713140789585780698770307132658588866232337473266690171563844787903434219137467345381891544621348888597335288178398465124794486274163974181164578711092325379148086598404087493692850723040414980824344554563406080480357955829730337704025050829996082843489863060027426519378033924216582484046456385693680433161846176433059409955331081899112170258593413331886628284641755974126159491935584432114887440555711634077317543149179842311942180502942801731853589267346545851657491204864201515931067019997924801389316816002856660374402443417545203363785158048600816464634961574253883503550080489318636804358692147428958743289047420847216495779169782811688301880098323435909302005692594425144918934331773807748236898138359337469266002939576069171362941127707614220380789731227710628643776845449689689229365929065446879142829153263948880400783508410937043246542313126248149324385409003548513210117164908793367678787264698545451177015534248614648585730229722839047891823944145029886618099952989084742198117233967454893383230261235499030762420691370381678832140356731744591865883029154393769028155121489331987734854432316334720169817509634523997895775111957345514867946814285468692980572042059853621352246476621363880843303635620575277069323477421949057465034107454342695368026560477078105939581977254501267329054684843267626765028028603860112950548245426597130132887798385267617833963763012271717800093299149260435766968164116594557814467282803718395538084969481499761429876395149986315828844422379017443863788627054511605895399448086543491349497834255035180480073366526347436987794963465060427085617399675382572482785986578976161293874929822354201637499512796935123361236607896165829524818362172972917040831843545277829812959286635612404857149704047759850320191795875322200113751577537541674467825249376986429944080612511487970814456850630507387009031604137572403370580137925919367837777911149655988150016135432658202426265312552562730095194432361283389356608762850867335988746175751893864069392288746974249824398633719514038346968047002574998565976518933068633901143335785020577195402818493866683285242969513836719728256203509386437197329108175811109715338594755825798833216146063115908654534845804709854266457694099879471884125786902268632407047725913179099897702006834058760023539030733028488503361941225281630015353700840718728632153377652696150834808363148583897633878589673966217266053764056733696448941297092421154042842665395326656113459458203127259397807968320163258310898885439893592508055045282198665645054376742520336797386079647641730510000445752472599214655211545649854025300590905752170801270645458020616071252434012525296813604492877525217534098579680287864846490616075436680945031659891988939926837559105506770558206303950664716990722498942088433767812692530627313749581197353769105393485123359095756150481808539717788744410606067285271467233538040119396058288210002129815905412209024983024651307615354118792234350763126525910001812740235250191916784688183785434126580272283804125869916127109202467010794145203793496372828782764216469235076230368490225543546108327434047915338377071477075861636372725840962244058190114628901567245685427604351603383971716349969368635265531596877386220057852199033054001894705256065178904884129821626257234843803740790538522677765330953467048311104363653202058931553886595702710764367012166920283994873436693584804144703403434879721805437685639752646052042160896462905988157979530015711627585227469750255573936921547563467604211536873074140408173046664815814806267510168346073548731607203720234648984582692071521705601564790302309276209089568104093468346972440586610124801463381973595170016376731806320270195863868857895424241827320901309136304712226376354380313389966056880727764610547836720668003753209327558768233529461486990380380325829229850093582253715306758399941457067840118607421346495466655348279776482228656367228068702207499091523861029529508696232980415923696024647154783825771089498736546763580020116491928129644737332786622281946380767834241442973883621970243964014139627696343288982488050205832384875209312108315326624746709261776168217628342689914313806602272170196718926810924661932396006050109340787137007875141989463803414105912390718443560284928243785474476641400674265344694776875313600396870857138905074834619179885320070920873655703465098439478358042367143094642310700439833267086479633573669446579822206418521402082713565484231985696014502800512053199567856080803955176554741623530211579682572925438176757385988070791113335418058516959510624654869137539910266618690121878944271757969011080751068737890749815383507567750067777775414883931230847109424061490496511278791970388096266142885802661713151950757202164491810783117149932071029049002666443228794030899732560833542916531658971053074150335968878063453678643627646846500865133355408109970443948416187255064210108375689261901433291556142340560675597504492372632515578793996683435906790879424204845055866716016313081247570413883508655096676888594148114754633394598600621618021338327869855255236831997430740678027011957230641096148889415762109209615144388574189775432745048428338133099921942900633260193271906240909192587332946094740648748355163396240136152687711433107971841372213505487753295145144140275068005315553264674560107509007180728761774103806933499235807223996946268412311306303347164057771184289460400771440354993534612753961426656569832431388016379332815959128369678963263965762899817329997468460193085431617177150772879251385734076579051605326351595234590391136631522690896356287776335179484363360684516031939177324184003902092842172632006638964207994500188832678554663173004157628825500865183558793789929005551409554718437001253262508394354645492098869873147202291879428222177945662760318165374315581985068856326961842766264170557514131284318592300193288147118660666975510674934083165799695754549890914805147017263742506252422949333977454729358704298229766127868309336768469363349236606742378209422513523459801199954040849315761827508908933985580086103520568807486674806502748488468572060780413456788403837930352830860154243355712557960636040991563542560738145605537012989190417829539588838037792169317350734440361082644048673244980837305351741299584153894625202161649284454207132459210848399050093788183933797688496182151630099728327848075112413305515281422056269905820764441933609823273762656708690972317608053196480837433194351286694870167526371501945756377300628405676237216851765189398194761202529827277515960082285293873642401177627193444338201460950844674967936948896973008759869273965083199026622433802574219777579667298793566283238989408912589359029155453900472458785645838675563433947733843006119515541230398760891686155871461247025341159463527756108714315932928725551093782456283040870344803145071139689992299773123522163947481216225816300156530648352630815020259667528163128785330106204556169765831367171302205343199456262241813908969962283970058026603260136857456661947567611983678160801240317321256442110788563783984564459010830847967136063613313548790241113227098518818917451495088278472966892821727598931188901295387916412347018684938980860079374488570708850628613421048969413154762690960881873232839725451172821793570790134293953593421156674894186898892202365305013834359743811076759129242310923148698715614742072933452136381177762960603035249605561627802359839716467758015945139150366388848412612425228274973516869526894100186752328009956723965082068337213077443987700258067077181769223041030657367379390376979914067068232455768668698443300408220650321178045921757700150319906270293692169086619864695784265559518069992536418695909534197447818358944820610538660924538792042619032736082091067320660308399118021819001674847531770887704348390751453514926246382517101989910876765432508394276832415945347216829238029250363545018648374305370114405199729052229171379944715246536301748061030185071771994355229574080988705790314427772745144221183265648918094773532065836199928272553459381273788605102667962449499350101098928010823341457310424741240975310257917120660997923121433456090291649354510508785746319258917398429715421323533400645775836342512319603678441353278924970198967325406011133599541652658569819780846987727491025698723035115112399126486907288892136545947582416283170025355773749771102020126190336880315225430427780301482654580590019648480941604836199199423645188147918469463198905909081677442531784488174455160296586765813618971061468318332097573971859494007926785414038372283727727338929172084842754869374751511445452464199729587898423362507929813008316847747821966072871256054124368835848676674158785579963703148142232905474880911501098830179087668909812097407157993444177742826247624474972745462651945086024975076860016834501768215989175345134590288647438137579618959795153306165722899569882559850722636570233779466381607808454218846832703738006536307146348982056139500647738927006017903989241676932325378506710155312621860618934406698991214280879417377174358998069187946075355674334429837844008005343318163911748931984927750852390748475909441110660150479945423771224294263439497427731826211064986519135595171754440339373573835403632730201978819839408402262914466729230571765117394956469398703058606556653173953825516676030866142396528421482336252088690402139651105380513211530220494464667621479806520387048321437294276481711541929537590930015632270928956122105822447742413062902700854487837587340937334805527944483062873016386025743383034705084082518615255371672487890537405689363710058780289722124535078799960318253035412381425581328852264005019660641735825543668689042905134731829429520154106898694339515813341598346278298121720659861333509724063587354036253174501965255299674553979348193777456466571252661156152806008326341838606518994667801437981298996742722602364909623522106051311762279466339368053550492192152336888297287770352133472595605194380922627114564742062970994297096288989932953798994604509524025709234600489531751135645256812693735720569329844258927037283285054088074496608073140322462542392058272482344025614589198883917435301540919910690402975794050000691836324287735255776844703352963173554512298363391292473543554121370431548461289014537368527679099827031534988007820138963559696860459011121214451083231755925942638065284012376878678297343121645254613723703446890709104725875149379011198325463427538521748830519688047869550240681501925933965654531291150025148302661768981563752990425153482247035816587113525149207037460528463503631638710202388457938925401785811583483713512865725535171892503543097687652387465565613611129916182651158788918037047292522624894315220172449294396461525300596052147616187895292185961744335540162154131321334591771809763851308963003010958957820229731087079065599313193731933982308706927739791896224040332297955989557537002459626854237190158338997729095014769343964543485864675857307709561115091943954308528979134012201904494932084456656685952580194443559310015413833306530650393908754911637262582136159699704015576043759700974059796971370747923302053965133821870599596501586393379625366935356653362020239305352173680112192848271356354126194057990754866370112378657906807943894656287963481351869943532556555569314446783001859891443333697838265416314384768733740664307712263262342059327519653858803489225226604407876253881583719843730251374768203573003702945377379942704980772961157643480264214402464939153128141264948878647005541827951889010383420323155298222708788036105222457188068062381732442524996647184050481725929100001505937828167744303797310419757167118861336641186178506772497294931380910890351358917864354602539532858209229264588809106775908394035246034915995005185097206282051730313941817906584075765592716083616156099758724211310188548968715885983164712268901608994321499140831644226324996579159826021984951097439032025319783941165895728633039115023965192468111909886865845248054508858051320817963295510091717962469870982202950644002599857465161224486721052912747099157809775859174708151322845485946538768014684910328185252051806226273931448202698916119824644307054603509347527000713772791026921507048731347910386192568128114713250214389614600356222150531169268479604276451640770694465076355763576963649817999191103501646295992106708849470250963163729999270548559320905275218909800537716456690234590147058336031797045508098192397963750965908413549650594156853655783882126530412496078505436496853137482042583300924946066626245397888951500226851564710169956918552775618262180024803501481056735755760899547305376662834885361503307565112044035095398090990342787698992841709848639044748035887432737562946736746387977820848407608253462196463873701223666257628914889941904291870284210393028128176271841328691911994872554133941600645221363908414927707477274330379565377780738228782551084818215473267050019396123005255061266027747367673392509042501893558043033511798614305066693784245925712260022254538449310607848107275128773037003359506640188652280180899388851775097305251526473028634020211731063532224023584081598996508888883121237611522667570676484690174047398821251261844255174535953545590315151980197651623090777891887604601109992624460702798394077744242330522641651250790160834831533067260695221873957651073320022328617310567405162043261624685053391736584014816688246206746103250238183345278154414119742567188277411756076677852706768476922775693020230100520310452433512932265297158610815374408051203029961926754438251745144322869354719081286080506817351134335505141028450208259452225735691500383757630675211884324745953754037217964905124485375169171127170833987231078642470154442742602152539438068740972913658363398795892651286187443965249049694312720084150098334472436365372707467971959652217006048614951481242365433623068038192676418140633043062086671977760145408250862441721919561868262943391259644810468983418455385727442593006257743563424520564473321910241079665468272357854004056731541767416986558837438281584634832882704157747303009939674448330251017270489312498720143688503138781748920967509277952510099462036241302151113412925998176894941137775615893607413821057210762956534622090623513096056520435889772286108189631527706701275968329265568340071000003533301346373784186942275878467349360143285750082742226786013331458657598318822004529967054058906254481983612769632839170739182830676497183410937409506649787674080273994490889943072757253789818868542023707231338250389322320802011926745514141725134746536049898751719639907976049570560867414586348814805547811158882218334246697643199444044587263885459588197079165108410659634290398268654611196447050049025928674736206647519804783822519771688711408659959931618112511980495201028046298084309454459237546693250454994322705594380895683752143329031898033070422109948668243547138507832748321810890063462642324366892195634958601089327663207837532194167352752978774302260984777595413399871407223799069892451106358046186387820291847718107408100845093413513418075648798232983187583022582600114499485768521177654744751811419879241196469002038540554306286238564005749130269803224252597490505184332106220935283787477472156919623796555075170315471582866461631438752766355920824131240922839524684522763214366818684591389353122456925425250217232754443511209318812278837532140976157236692338316733751474353200770476105826193205519768295068857309424844068328385648728308421985653905387169627228292238868635827328952603715584565970191246527007755198369009593335180162277244051081797407033927949695237481686772187396666247745835777391572593574352687005477097465583598743006770161816139800616972351342888172771938732473248584680492635547576286425166505919402200290973879778151620608167885994254746533001714511920428222801115948354716492507321761943833914198882748806025376469174742593219633006829141426648546563600125308075351066851131357668030584847460311332542190962084493122663721311402670331072200608452754079897720576693035205184485375058945437192479371711522277931446220913929227358735021777419028147023503599648686725010452875575204871099453077089906188675031632107288585208946845807971637193206034801075119389196268822387368574366455771343828188814410213520562541744184722436131567274122242332928317675026139196614971673407045012207385628109628609384350360805961301222022965564926996773906168553041930971365402270296756809613218765214961383500990654984048078087024412300761192938603290226080129526353030156735909663828014396965168776992823125367531419066535142287906736608354321153905875717807375836989950417103849635831164913204904479430206076445055014794059153392455109693650804445024300705833109316819430789354310613815583730456037700732716167103341598194965747539492111681307849150698181604102706622660908959490062746610942810045920127437857905298911736844316408397756080684084398650355892052639575761686269832337529879934742730623199017921764369434312690538559190039199396672793439906569699240736066838702965426272642663144067312611068073529166202654790794113272219633096783130431473107051234097059626499563545743911294325163590704991171620251661691454306655459592039529185122680308890762251063511794296333490023851925958063098619603103883866238857591307851443781042899630921121683932910101482040049313635908729972549707395072938572048405314481753071758785026253615842474495643166289083411490311837781131614295719455753102867950683590458602779601155465605556305883523548088493916914377599377365627973943558691817959804926771069305392019157932336217307055283812437517210072912244984643983186638587116352298749102612133036879393525531820177137973175012356123793876526435249657572438586196241163775142869380359184529812449569699403548224536753390547827416902165020786968390323389129795702004645279716902694403234970284454914928225405225359900551856039134652929468598973613167587699078510321326378268849865074179586313275861356801815809772224716286725758187432270045375371144163802863177568810445422777367977388863004255802288460371506549970844286396755682759838634361543947711338257926875434255097262651824835123424098382478451047087607075189391827490599413883583940073274009243450916177436004187481938587486731572581615237801579948748506517787530178039532046826767309047161782905305200303748910995990971903740620996454572508314200948427885171867144537280387154966020800911453779886330987389028109069160860469541462726398921342007207043251850268925216389163472237074651301669472564813910853383139282164102673049932819652690357673742967682567458253217526325130692172396809571726623670841268638133798368956002016689864693179886614686672130327091300384197136282642456176074518975746118750391139383217179014768810917133935662407788654536480962753049446095308660630906990233633666954293433726373210811769058051562413363877986338525241215481049194191774039100825057966693300303237390980573497323263193882770253607160479840023140496250026139018492037212389891819944100797877114150146505013844916515115588635327946661567267707830125795925517799049484476192743170643615135263548540849517409400568200554636552239681450434461875360802832630826987394200884979241784301995561832368822640072864251744004562356025564704602482419800372907037289679384954826297204638528617001778058799753200532853967069447312468071109899078706451195200963297042499119918533281592535687558935854573251287813151286716137664633807378430208091507809959725490143823437263242758445793740887080557810045181653680679706738827366135011505228965008175299962647540346260519145652478085145787191067133119223910885442301000316841926604389131402219736495534409803734955575378363321021158047638812537912116055042846162365684773653371934160541312242703743947147646617527926988859561399939176315569472416926626516975557172785930474734523502957691061083854928847215698568917764272407620287190051095180354335772794857329864282548846523673437913917009608598898347059371935737270635534705233263826525637424604638518608302417317687920242539216681753558406378707217095117372834385731159701693601346762651328924032140459298536636091232808508851069243005722511571867906415822293911000219457394307876557813755115318101822765712396703701098784943767430560588348364160051719103446226679285080061883523507504119881051422705166790158947044885050943592233626006265091756423387846509188762133550386107664507291400148602909199921826204516780254215178180374391366182754282029530965391747376470239000294608871018897291805243592865782592240931235357901398902813473395617059755620590802221771827342090884782567344787293281663971417074893091190573396565041462749901477074185588688132052237897451791522013778756714567973698250959871227986815323454872340631614939944545365029722368986277738137257983640826770820593455070884491180056179105170241133570029591936039950041321053801745015084297108335503029911216632169548420140094609881446350106748065753976549453741843087629338218179610413912658413994629523607615626272921364797667575491117940619156442772587785262316312091392196604220080357083262797228257786037570952699900409707766456060798014771105026838278482532120630764824982167364960614648277303399986546171571055429620554972369123548021982066743620474417533081317931731468772643705538560726381613957692999741731923734552337295141877643346278011263546137671232299446549625632101141327007276774536688271203108766303745143376784350298400704923775497237250119569885667444693412357010950928961260446094993395470211804306675541837321667438141866514113141499555254981430088408267419022100161972178682828974087825123249237028403268860395373128901872071685780363168492723631668728228352826608826335307866513769020109354745838121328987433996960037515862690063221414178506738708545790801792193859877687909988183977955903093452387044109930593148695902315406579044113819605250513750029377930518745286420828468736626473522765740147642112328006840847524649490571936781898134954821986924219124474157024293209883445454761856351754680596704407815063415397691216538660580638305174836522742840458774138543378776291038481823578200440358932646573271203878693590794260037443260093610656727614548571064441046148123505970349218695621956381280000725866084370214629182844332809275052963009731509561373825586238380221830707492405303297153325659206523875371369004272840152767471926489938373649450803440654115769140759344836614039118695509019053649931099936216923041246949151043795273074028935907579993542457178170703926705617603314409807274009732037934801446097836622855796664258773375938014079741639898827058473644435990255961422377916445833803878467354578078420510439243948754304224321526688416002889981339528867353306224873335411981175031269568864629428222702433943408334501555708016540833246948683037384634666083832806439331595640912164565363113276355650843869434079495577042370331593260308374778581814452520448144799650333624013831794181121745819051082776742045885924408165254834717966408704658935319894489642932888768604732756957855214815981678992703952527163750708279159360463012432282718239851524510661683977214877092606481574497097470190692560714327958980921984978059358755768848695065291994238135878288480570171554748254904203159355082216434906388789321363854332300875132384234485274855829528138841116603398539176105566150021697483413874794533378155232951417209742224098946529624210024058330063203446263918819682477098773746223652459096670056335782347850185028906470161534760486279265058949886670592403619321561264501037826128678218673343877444627168964299341136361571478875100084299160767224273319373878119480440073853494002488369154262309199953342179858460181852924391849433204827109346424105592514408307382328701546072825677180395582699421505881284891762625900581703182137323621564246072425819021138589615171434536896969136458256856699006552706546702458601830831528749440692631760030340743909066225585206874528134078681624904393374930553010223118614913979816322080822530453922163183260072986784287404859356771445011579924743875567425195292393888137756012455146951634360196589444536323126519122252303427073865620886670054512162026366576930149101863687177322395374753788703042285304849855618916936953287387530815027643713271913632554254380029559422784114427950797835220400849574732811206347230410200531381803386334772376507964039285079079927797445360734854320101370391362955953307101115412723184714745100995658503351132028490285407201851359734703131988344854067248500851147520648947057374054477923415675145993873540141381352580974127768522264330067498337178732685143454530603413021074971410132015200135253802403009418913856777397113078777482950149088215835342282416321150194914055242706987747032573543033181762706461747621715638456527155858184722368164888187196065500733569888395119094650108214012266900354414587963618173753147223760397273597467388194267751849319930173956439530838090213822934122458668225684195721875246981496647340356572670308463932792725766406697560552258069575577012303568061510966924760732681843406442389142227439638664877630191498126671157842962793917073191731569680829465437124800052579662688836084758795871822170074251022373414708483218630780529702756011687569227324597909268782029685859025727409801576863885822055456556747482080258798591349047799802826986171957512235599333301815162324566051361624239515988026262951542494603759795403069114935879164281885273025153739286152478592266929406879054660808249393119688239778726597881600610508631243726315187093853980857637095836688871015473557676509474278607501866457867180863317501071624471591150012327867847184310269275439124267187493082926718175255482308094699463742126679403721170030699376911142541070682494240947416587469430397511358546495789885726526101529032550527013861745862044221090706631504132498343115744218407594185314993019986221774982770233422145132789119908754085928326040399984602932467669092793974601521563248756642684738702279171823949386237702020736876975054529139917999733716104255739965491327988958941689026597045194988118931503272082249123478967109903260801218025286747136429955899008135662194093137591152893594329882302656828660719982606646167896502294723265923510640874690340210372324135049553992434352227949738556302805884105014604806424895666753502604691018615836066848315889679282430670682018466164341545089678933235832999816640849190627940825683523541598750539445362785834054317528245390094151465400537932612043970194256072359888313425664957566945450343404183542134991404204418940664088350008117366719676582060701670598006734594733811076687175000497255942375609044788387304919952916787514882999724464872532056524709243173820557199301667969030824926938406434711599773418710900435369062571651628580377128383633052340873280733683927140283232537855963723817767915592748833320135237682950191976014184613869170247683002718422549663091632734564239697853193776898423288584386184649607560742937024882628061994033522394357139489317001346792419896151928954419093558751829534783618626778522773647540176433078619504975331780979401183943760973742054781168515112139093854578895683861913095349381615833250324106150935184547835685036212468282495192649220718553472515767880357077440933548062864852942053046014820089689996905385554291860349997763651354832807106621865043128444678732152742053875785669288809102410245512036529437026347891824253110610755217763539371653697227092745117517499429651317753782141473025025723080144421659862970099651101759759303947378597761160176946037576069363749610399973853890385435785261098525087228247835309909016195662354896218514205656027026559348138767479395469354766559831039117830971462129751506733879844841551055866778089620759460364105681026186935924475131921254990530973291201622658181294784388497764741765438617889589272675158757348331660466448782265563018163696999903427614617531765411838387538476665694025770244399932855510666311259295137187786878558757119942977441965815954430642202498857111440553015646033852684474840452141203585064623430500737797700430308282909857650466030351927506401969142005450009671063164687618071079807701053059599209449203138494190305941543723988412440754424523042952478462427796274760275495367572640131694888491476209197140639039319455231981673554771347308942618120855950424129853605486126458349605668585806285721337259773850414321982403557159541835201098996846609636516117341841947635906260462100931012425806412686349795368864012889248388326109776587861103066597384092176050662788974207066956270418865059747659076985682044904964676167492214957141637209842374859965797990149786617340803567458887077477471156125176518337165119898052890126992556363493405341386884616668157352404950531990359448744867930640663371495903392755375145826739517946820639314538387722375700974686251061986108287670012531929806280561225776936864783987922006271929895420295464720513715050478387706978133867881299916415632920766997378988337044196509006218864491063525862657951039565815444738850466748299016828478378635113041083274015601715839041581883208057055530636569011212009461335916380730710675795770587682893578178617375359419662916983309675913504509046051712295703686401382189977627177660505011615887427043052007834586400819636103178386605111896511533437506667454579227947435029859051411409225817678104713902641279806881310685092970559430205966581752073299765154704133215422560872507647899137541581884169196287485003993901092019228184257468697863185659538252055298944588147083066227558316938896719769904741869289975358543247458618640903104070165105231366617347055299546435784696913958890569255873884560353415576284983848879502908021113435574821960875506400202260171373213073580683777217124498262108608935057937422844703818013153150013898663171307707642255127425195732509203563518258065998306894505609279995971689302405208057730402930994003293022149296745252987064927883282828746210201289735051546593452064866860990418329773357459209481562451495543021066949447010499787112753828830973506772348092373676566190264801751635273524370601373867317581382467212375263522194498700740744004923364723219601074702025259912689012111380849251831545941164387181359681410622882051282190247304082416075126310635831013197014609232828706761113418292261478482986274410543636432453437925137674030400672272254732727721615916876637469985407588204454736354333801969372413406519667334451591490761549886906550313978362567628339834472029946020115772831552569868842292057295420782667759546942468950509696882870774498392646130813477683449651400388083855036137525521245107319773312490750976252393442750560936934003912214066263760617819424757750697420962051479261481443818094219014393842629247608351003799143202470759225455844502963133933080276237842790762978682654878931319390590181956196645996490875364799114113097246878624776903119586766287093385637934358750208955424692740342537016583011200642784330890522372225363498226227564120066459580334937691217621791524990192946251069004126665482806138519012712279084103309661712802935927786743114616505177885996238337155349482034931047525723177029730641246284515081829635265387476271945171305331000635992701024137985379215047800746154058835941685925962915305103465593163432625152883123766069318816049943945175885949839028929975825278305991178247115462364392671275623452605087094296033486679724064661968629489509027216033924898364296261448771377569038916100270667951112589530383551240319953825521185606937775505640924346506245146803221549822209075686484771798534241471487693017545701501236737857632322284766282234529490517864530480806639908292303201038792753744916059070546687422506037431464113550239221655101028975682101529984081456540596510632313035331333142075354689022872794901045821512837345128264717601647717906003764325319806511995742477787064922408567687974489579011564919722630058644786328985511891067888168420109035890331953333345094286085093832116746140538133498542769104358273816515073173236285839869548595502179705074632900578936540994190753773840512128775187760038751852987194588886734389557521052542047063611360129381275684758406608392401734716045515140489813122735934980433179184338470231801975962393553209271078738399862621050708966493931149261452522473552358971210613519691913969675474110805802634461494484956180073986946519943065098377439824283579221627232726603391561068034083547389987476956434044327842716680496302384391210481860475516223147084076680740335311578730371815289527821426464384176414481217825050024925294590526947599276642092621888610434488624543184654101944531856425746684560977454324782677823377851576603856268354248531212715418020039732435630249253635137663111093345609412297454585262045656960531308405451157631822840698365233331465517767336085476149197016775804055912927990023520981104156878171843336381832827634678544403430790210210598408015451329534210590216067198663917689276230133432314713089774006655853636583246805358864481153845040130852326775713924769656430174369060763192815137224317163307494050793642206082234579109722220806637795953573641030613184018419967445567542242019089443629717410991746173364645697977044062865007873863270358535118768013768844860785793245805451835661283756279994348786435170071058951168870555249969743720439956182040543146930907364518157644645878155179508503287749276527503418343477588671651572316899980062922225336885774209330313030353322269892145603237537580649540010065064573085055887735046554127605371595560625452629225180198772440810938079935958988555065852508409672855399723624385688850173865000460972772687849407274468752465699574150422079225557324416086574436075779353202019882610509684518111249673443460764362858207501261816584799939636176595284517152996362526197682481166345817199882570328439010989335633997566261391748654826199619605193442792297641651550506310102579059387648059644600653046830345862041220827477006633557913779109895214509629125552687038135863389488097331330340313072314151140249269938094012310895072712360347248116560703115388129424210633832711641719370558911373106698246012903761816369502765921884008182864964267626494612327600936255267581785192919359343849215982708811301810381519581054736140753830669914262061638370664403109838481952079973984066454235300235285868053594531141341154476948917974517956448121812748527978005489445532780852009137142206129540223884820369386087004822594396631864175990195378525584370281179818366778828182938185722017421169431788225608563846175460836514875411420422310055345708658788741908548663826700857496204481095971575400425319632879726725148709567160431509875448501745741685894904611246950447545457264259273713915761624306296698259703895201102753874279794887438129560560720546135909994423741415577253121306394434595901567996711285457145389984461977026551949417501057833172961409063448577160015091301859233081607898069748930714821065324899675314538118549072730531100966325781569243276252867371187058224631667516845783590034311970778797517739804876649256881405582943153012899102720815836499354026168004429423130164468652493953130897834641830578160276790307627037472397089126874537292980680362872129632235455259203510179148974704984495236381168514397849099334404314487380003042760852950605551219263066000315859029880113277286666333031435547457893465223583765207901775018740094660112713570565745927183588155708210532235189679550261486066539544078600598545650311751704131286805789992273672071331710919822524201771967769270725128352602903087737305458132450539102361178827185642768224473615033771952668631945424562391365743906539210645982734494542327505112694162985513627584076535536804533447241060243225612986445685510431727509813997155310780451268907142827021651135798347718680568302493251145405740650069243634253854249761607481437620772086481035343842455983631757981361106066090391562283906435656898926650025256761759328524157166317408451166549807305267153002245374926216815831644522943021825131637829010470736426091406891980550588295565437429733859965299153185270950133049823671852446338736766985841718751985127809009646052412263469450929500172216867126869782359449319630861950366461774563591386362943071201325958128332523901039552424053839285337862870462040604993930436227145440273393938656367234301749298218653964560019057507735949561405163785002199853157788377430556640948595519315779789119828651753508181844120450316309247921559149569574842793746964569299035402002963068201514528772016229280373299201601660554819127984586109511176905158660796135958223225170493017383008252812221676837594220055795372659077569912107794718058783797056280368385901673950917209531294470307335948195851172097926665088536245170331618194143529510536104168604788229937998103686077237264886647295597029598444605415046966770583373587924090969166886395929726316353905991394605899715847673560032145039900298326736302656936403495836096478752931577830052112971861917016083147211207142733456465387337898339261393498341975129570364910829213753796943653597259316394217345846265678440769030205851399944591643666164811543551910894588040803447979816609425060913883616661649738147865948391674871204204256040480800498912891358186876327485970600198812113508124712431166613520852514347537121032551634919087861197514026627023594195764556116924223173829179327715047984611923075039578626532166016835155417657022781320753987400489445528322532452142970817570957737185907553665994874753978829553225175691881915848772241653331905367528198527069611491748625001242551042611274614439856268342799053148037741307657865058089975993100695790340232597236825985898920427271714559468848830920556762398206566459103288687554448333155239943847022028268774823622659241580212491499089532827471008385437629904630469196384506798421834044465545497203626458984359122638479045302439812754011755624957022409997654261386885893075766618941568641351721502489071044793180451371790699857262857183120449494066062827807356969007696224055867354293166815781282529395749470163705425964661472536057068645542198165663210828310532483777886878637453163870439997135765160776909456509277537329291924356541296480638406735565511985993100466782631143050739861030248862943203530178472405386455911788903533447986377035270031071764966058290208210790219839416102447339525724545854699201574005959288561437640453719495523477575539819111820014681984810256087844888468273888357693532476421272080866269414085915437618017261862816754260184978592284059404227717247626021776675803774910763300960531254977694315577356054861644540890303201141240155082965733214476876349687192484160012983965410402111538100170012775729655304345851462131940575661309636621938122842456350443948376934870219362088349790799577771185798638491547557577535897432565504459035670661419120602152889312906041583890724930272248988202370734841505200541123591004850477117435287167810870058669877828925208822930260643298959552647073836606819749311787608737715124059520862135288422982740628018061024949479716877987691932618393891908976813431552494371121937065764191621981122989709385141642165938586492195418910338076303562251706912014592812716129108925002257091984570816909037436994675737626568203170281921756103329015418249912156303655387723747638527208251986539666406848863444617953770351253009531481191504425550715785915224134240903901127203011663050906659597252560465364919208025465527831503346803470928193253981886577145614998194062803707103284830066993071189848625937435170999417540058712059386870662243336034358172030303884482235669904119770844377499447513077404931870133562074857986468016210829895863090092753551294981406769863224229482679571043294972306028168478581080479408912962214373410234122952376498747631223981339494440098639338653434395618172274886061349453350619620268859275191171166695839443291514301043960122738667196675555223625787890354764344118132173249653881702125957317002118263544972667952219202432834787249079913194756727121103309109979357329629841221029342142174557630209041133267746885290748790497815730387667272051668355456830134490930817584537676950153260598810172842897037951418354101733579910363444880450304524633439143584270778687964250483688001754156006605121355244663219708518064744366597082466364539769866045371508971468150945692945823975281746040723108006033864606127025749628650589901695989088460231974043211968190862489950780542855896963242704696664144055871742514837999293573767525880370970822904302897807796226239097000601520540539151427263614737487156319664676989778663158490471899913522145165110283679554744935237171576888017433945683022183353312522387199595024736105855280672727275552478731711991911993571146688084253708881673845200339468052895036046863257127368714367687147978990352183774000310054966944439751651354758831511679255906400538326366086616427557654542396978752294904298827461482882677135815884796140332384491949147095687755686604299873254950605703829502491426569883048710695792614305253454101147638927392857935586568946103483827884567099495232403516020858199931563263393453476591097642277701632877593228981117590826478995052243343825167096178330016379358644596120156950389111579748884140166804105026046922591724083223966961601691901531733073862914206271726698822621978820572214137415048944222087732971434578034358188157910652287318354521287306736977716596080389059717883590976937416256176801806810667203782037538162190530399144691507528286248769767795083059941897425339443494109358789692166369988385798800726520131892394212748440640477053137754130524244148168071182079838251730695827635699728822712327848531758425680778969071901804521867128053596439613147578106512769328352601242676335165856382401512729380683972631600563686015228033106718166745131733473326926588310331945120031488073657190363796036791530440791487194678200673572058908839915614536529476828612229070289727358044061380463500307860215282305159252188211599813334104512866390526985121682505179942876754734461016088217873350914269035858183160203153134481646439159460771021051210680261594440884891155066365539733798121643891274537727026096655318437843167926860712070979320967864913468648488152399228723827648045163169677616448536419371680316917024563299387116324830492267632634764885722619654343979297641195166026910801872764254197670956113487490189438640889278662451080306437884496983365995541824812217919704897689029545683095109909717113753608404100485914281084600526731415049128519319451893710472391066195455024217053760697776842653931975653936582985972315329290537775677147313300961685163207674688679712190112780239555125876054060853455599727412901216040021842997309199708197575575007714401728618596067064660717478789554477768779087239379330834562605147744273064118327003007294982218485636020364418510393868850714081418251588271876262678149868020852184876163346034089227201917440051231688086053747857756243196403707655498975022738531051352329507873046374334612180903252996328859911192577542014750610272849728266785861948715865298692050725754825490479100280550391946433363211911317351902568609575193893294626899302570852327698245582085207936972077886931351168736488544936694951918212050798622363275199191683634708078035289796968016040957617024381840587827749153037986849089664025777239827067589085865283361892527813156720988676954565631921709412190640550765856343663306946726798705917782809541071492417250984637998337044976636060297829752084163340970462098863540940317293270163312221517541813345626653000092764970418197959691733745332403707074147243549649149625097013936876596122828450885902624666785979433981827357383015618124733817246655934419622163056790621502183186213394773808360053010409197536393652199929050999851072338046839676062706786112224290139353136924502995775873257530294592931296739019665997044662944653675717177188459325358285088817513713046546855996713690768517079081665375618938034154690888603856828614091394644484943345693478900644416808278098492125428802068775768269112557149864430064694269525465595578130320189803310057923434172317411184751039515628578935714706934841190551195149536056614812671460690927702950111904880637938860009334860717702178692394397019897427443000732337166516586627184778353183051422792706831842640899111799766617603746671288082637468803417592520147992539516847812098942567704498387537463808358623359040635054285748145250764431844414912769857379213437138546493169804715217118065631885056990501044204536452792084961823987310780906049341012408442127666405688170040337443977693340627748018634567331808727667509692323938519746168921861005597741651135374038942604960279819792878354118266818526145180674691857721195471346225181048280622220578258215839805416064430204813076440722038171601157369500597696664177637464110736479540017501229662870099185988055805324428202239778284827263832388193873276921366719400489320179364370168727359483091315530828755495714098226486902489105462493172039634459093306147621054766417025082894055536576259432080128602242450035308872563100673588257288997169489001867653480608810433474654639878503328155452191687685806356342351199042553563756436985634139353948149560648789728986052645713838210480914314483220321071672515585423094748857464665012173772466633431247255355716477685305840312286052232752899519632128603609932291736700274884799144827249757538808033405940067877876181799950174226477838186783622530379850283608431086190517896897906831771448330915529158723331136247079185005866775244004906972850675110263130764697775020928094765499216724480640309118414051308421217635434462206034519497104524372269845601629678882675476130663239788986094044475322300129063076834327021571798900394530080420324430264951764395456054281520891341377151456485956477627292871388825969370385826499505819550543485312712021397714376036118699299742999697766989089306980288489340554849364316065418894903326728342932617637768919686196111101152979035292476963839377125264602524663267651456428161277031017708764456711589305029052816075090187941945742697305036611218094542284031433303972467846171640177002178219223644648134091605660222922310663218566841020108995372850782018745252154226930028426565792561372224499505560037670856810301764183310970501044990434638265441509399488178866435167732797652165646953175516230473690315699342247861670696096039172268329974125402057159244639530180254662329452188502984285081015015575792279424606473933255629261982720904704098943584720961432467396215255385201756756055159230112967508155640063534664317465869338673782697641006863040240458429805974980183637268833227340413683899033295574927226707640400000931184599489024664631120552243013907252279079776281937246348062510374051335184413878080890456848321633812461164973359017697689918608197482975054881307077846954578500872979167726942703503877193456986552588007196420001233248175540148648565595844575969398297343824948330623655928695221532002580305760472585457314832089923110414891572756326933992844915012402651981238535762322751909239639154053471805190592018243033887045771292646767027904863137032228755309596837885342842436185253813571316164088657831979491818089932755160558361033383105372336921830239354084298089091572518321310039625689045687670349778152744357171042176779451230748734803894014345855258718155495230272149624832620318620893781473337725163301122154048154877557988087507053469589686028816620655954022902516989134908034223783584473459743488898147627099122660780939339829940144581194396616633917175304248881824494762653722785993457565594731457256835553407287036152224902997017084328311107523935768459003623535064529328718255477063901430467917857664016482203797919495047264958727753513715483994761466673503501951602414293145215860475599555298163856136792283465194953198282026437143887300677693458837977013780462182824951727594978765195720127659904508963740547568546360333538549357915316644794625311821920298110218455661556151871022538670460421396486908967629421551603749448466532957459641729716708891466394075825745746842926529591437186513004904948305983476436890737051635093821899692132276866622874411420686264548797982482777064996168020428323957018197325150201077124620714375990748773036686028926426752360737205832938796065049268604134415847087781228655711190830202321577843665469512455618177376071396579894501562476477843789111546192349736963519411754064093295659013909149814681094500869661868790901040829632416175358958042590557615649176129808187218953970245277219628266719319784155322998144220423311372277933218271854962455213101154993809559702957138522967228601277873598800705382518272619479366347524732999389525138212932682230972117624250885842285436863403444895041056528194904281492067768516407431542124770697392231927285593748179050552004638882457910872063990747609047596850325426663365766290816979767086873680160963178838896849428470521601046798665321787858136916587599884561249377188593038826638114628986105427428103278936352587005971373938490592168548865622364542453837549859935881847368722870175246612711692983033771773140183940750265659911291569135733070310711875084145518346877104983470706466432894419601376302654596322409528256770271807718525581442287436552081291665263333730121842323375062695359320608169676002095959840805654514277802222814699305819937222460238528399547182410345987632582810667434530359519300371275375465080869162326682189958880586192093105948696061020152752336804161361251954174428881567624564006669291826421611597945316418107197296847880324290345610796103460297445686667449609631200123778183887628200708582011480699488989458249652756566658464907365050235513126575322159317976687286820396797266459616543365410383343339110083973073297149106275371915381296013492303250723511450670879202726736897960188461470458379419548198650644178178132571803664975527474606944054726472668394242674906415142461839414499044971020430105568384283569055856595720770988932366378741138219042436021131815121473338535661916029811684124483343365901657796826864098274057029545962475750064583912607055320408011122583566262802035173398643270134608893522316536680689176125831061341117586964256056928298501083864535452384417231737423486607617805456794337874432432990646939471387801906222709063262054913242104689937717931175453009954450713971124449908236260642439607810170513873157151546902142016521758901310612441512700574629030778218964353823162465805176030180405269422712790287220736038184736804210546356955400069517414440386537545312903746934073808683912251117144802777345008928184371129192425855145119687547335080859986569695951308182312986484412098288273757438379147371568067082265021239361099777744642924317716036524048418564155980885607511913591819855587397863057882028286088317066266500682504596759635597786399743959768192337342854391991451880805025295199930831473930717447658735446621052803614989670365514087545213510009086362836042195681366819204374039067022782225188831142363365999698567983344133693174556580482868512679074616352234108066473188582482160051367079235091586710639236374739349719738482236963576328610320811376034945913943040366145726783579899437856903848187607352319261971200085969842540084724917201986338907981760171543253805405907076871748761984360417473655510781982431267261931320302751948069952921566794638943901974589527106142661970714894823348938599673751324089063240820330674693663329529259060003227783254132636166269843006369228052066401698768200142972782636358921519029493076261937795786721089021433779905146259332153042409947086071627763827856558371116949510607330530033446599823542799212784645444984066777983618824409382288744772574457719127995123058232610760643613178710030273212644929553282325792082711691779337940071161231981015280710487195649045886730095563255056166811056535689221597880156274539968872578700605309562694030947538858515835886725501532133085111628141091844547761647903149136983922988344641063841909069600383939529649215222996918361307274483199895050040370056336849275709748689534465144501629884025576582265972451357453217044763050991046706520276917802846937099862252624428148756805190874229238666953820973328004331269566239544789445949923668769597807580791444685553689338805163187219561351335050489294063004067722291089537127179410972323931863625230120682942502048030515071033218212086736561130650624569846998652575030749400863215191962097302661248823143371922550242908293817070581781854396286777997143801304794733866498585830470006583615658573608780585386251405226892597232253148911786753741891237957116729712843452881698594009218618018045014902841196350816422922765856662876230528670485406227874981033429319281895124568395387433615683644683212624447742838903399670552501064853550401801348338734447749951813280825097993486047438907519178344699769692507160851714262382358485022044202743843491756143995114297985264273553260994755062994070155850813871196944631251462064109804001306026865686639298713717700711588462919776930037739037575225289482761378009531289928919122880732785207097179028473266427774029844961709100803609492516715884259638841219275047540660671648427962625381062428439575319881284743594359655308353097881299847029130270974212680749885968082901849488771494596161219358711723995589958663738254747404354975418878441950835730810542381777763630123950555324233859262524250387958038194974856857206508381192658517663828093664450969257254611643270859856376740272250977527556700655466703918872888370924656231694002678191668919252578363294325618104049876997200029956267752459138168748356507769755518815551648040425687383794069980529512050609677118354181355908989823964461194166518341600762043594710727683317245473846206669527049498833872242280344980337670268786603130452622733151620605773917097981783574580522765696317957194601148939394039881880636836938984500181841018993568858134533735229267587019731113562961141575310986052267132169538266631168964258153776990480794858882855206836412265060346977647427588317368092040981128733000710177572309485626441702304039513447369698990385427104728660548026567301277088405244929489350340613862734123042256328002677760700895827919892912165827963928939204834712696825268095675601342763925002365292826324955730500393651914041913165262415023704946716434852437255395105591313512744864993818464947437324251021414729927701709578786009851420595976474447008500012928194111526211287141679807509897435188823846610936464710557101252903794093206029712076763930638491194288945135636383376543483733149610857902050752896160675271628632966089588785275363506109531228761871281944765474759865399745877229348251149237714880909142237811193495171198317603246333458348965591533366747699227092449714186019880383412879036857491563812408690821006054082633881601681897389833564583022858704226906635397025179043697029316827935256040167085929535924436117199801797750135110176876698371182007087721849616811993239662857487544611122777140108630984671703453124506903548904101021222084191396995689514324454692292874590818685987110608574662794117467845733189475957312071210219372016570273710564747986870972544355008948401720105140177046198335848401582089356236004505542338635760156378813460496139049019010711162050219356521118670766228831217234701563131331384778664434042626561273255998914752437393437203737928826017277803795378730557826483425898884957920243744760560833191807864775211090257221394478040283392798839722679668652123110076149419844091124021015009337710976014735592753139929216666212598381879054059099003070811813576582574002370483167392691640895908267038768556889325051188033057585864852536873208247069734576089519649369209234385310513092679799103074562810809629877072309032514490105086062980650260937343709222438496434280218228839163942734539241031522593456334398611062415498701077902779140785795660986459644533457314836049422237169039093846331856994169028443231543096749047064329946632610444131019832947788736182618872006556909655942917022481683295454668547205014053243473584139452707250865372337439298527082590508495439312697203248063868075614007442639125683721994008881494080295263999542142179422113230861342965435014777145722654170418095993440859715520049443425450379697091728340178455963295627223454649677489679502160097342671131733093959840404402597224181880375393796421153694829436136373967216252519970199885403375050466250679319699566473945506423076712747242890471113718587554883864526194457982870719452155331153090986055144352942205636721879917601394432766731784149398574809470264411485644226786231349470032615630996212603899562440425293112478499780732668012489498735046185789184760714458454607466987435001323644513936956857629190819630720718643133433168228346288819978720856035232785721903363645970642551052215157907762869066458779474463710681699702549752348913638614461587542221093587180801407601953400906253978238079050049819437614647064150717967962588183402125915183020131760151155778155955608818608470228194957608969215996403820143403622966651080794861754778554782053997252823459875194073830622619974165782685324107782773964187616981417163715623260889319011732833581274389316997846435461892504487477711311547731737367463124218735956485736944578402152080016936443943969356963138110444021005933120872402857737050239206857737008353743815170644453728082177467881301999807545020274559643481241720616885100686555761789327424967703872143135070878036871748229979310216054144517918572313887362592502702901561856836595582875447224113611366212472137553045492138739965981677915837619607741986578696595727095922256762522118160764263287381246661749438507051094725617852974106460852926083809774648715857726713299498236354291460363480048669708376638634687318843784147978133478704577648674189828514282679132566017115019207194545552731564986854881594194452208205242122157998542528511427210070092093183377849365590724885397193123757854017624219368628651020526421872992309785219082284576433918328377774174778398112175611088109782552388346107724613356587108007495690756688430660280857731720996051966804505663482162350074674048889974675575643142927376705499117075208974177883139297653482742362747210934341114171716917589710575957927639902662815283397546687567519191789725579243285629369180756311086659297778317273858914348642999329986480661747115446680101100556263032455835241392871002988693087610549665874885053194400299750513424908978437804637711056184260739233086559605887550342859591009303026203678988639467766556627553279746047593960671894017237620971824220496925908259235571197601226648207710206828815323270467255230320746435300850649586118851323054745141546516790665152875452190256168450651125189116549771072968608035682578764571530509708566880219850015340975247492351747578177766141701181700584427398202101880522478012002703805388986134498979173044977074033818825247841771897212334492313238025347815597100990527670228000326255512258628440515286300632135755286563057192426777220080242987571443349410772731771853070468244291897977090349739009622767538321861225814917253462923085053396454897705825148153089464578032146984337335948442371232418659444042246855326817320800260988586669996356292305762611686139367654933905915535300594781499680446843697832577113621608157544978720903527271919427519610124765145898191270428912718757541685336387292527427518009142245477366079071735334288996125262418758529897042325236885018537354764098653835930893857739193039371360834924796902244115824629761952322451526841885808879853352902622774670564708625208147007073989631226410484112065072192981288220695044213135352491320120696533225642010424629007140397145098900711692202910162478439021313724716162802857037476089014484193143519656856052150706069944172303855132147555091671374717186370639756394320168490734199358659431522034012028272883567366513955857655013284186447849598930112722504196072658184512078226473460522003925958568471181866660666174102600597075492573476193257174214590099515891192054609688972343531261983541613711444532639525330619137615122111773105517507894727377443566647461795928118276927201136956203584433494938740328687305220811557217864602649720581650092367623548465507651911796146073668429385685138778692063702251125526773353366940481807721764601451276922756719286840740197017622261394381900505645423327608060203719147728884199938389112257265069290449807402967355883244178879384447945372485870418260374926250962848735087688084602427508535512771466011799183237754433635365103813606453895061862747390492990207716012433756150131161472827707056175277899034766044398723981723065859879288312712408628766797697643453827037468034864090351408544193623006350094224796786551326261634713145956806910010344600340838925429629306001835083522872100406138187035908154570198515207323839415304488582897011382803689343831853863541439081927308285329771079968100686904894831406250480132722751106543151218411788188878545109844511315619830730000436017610796912792625153972295666063033563214508216480470816888823729627834152754092233987779515846551413425265132808103048910303279488306084490271819977323040524613634282688992567150776651273614089386203840838652603374960781745219058024956377018989272875105550422143145694918704162587326108613762038697093949351274672967428818868645214604820192330569907406227739207672519378597927112966361610968973452733925575239409852743322399060345774003066994258657777018007512660005219389674080887929611839296853782952791915488117558368788227901100909406066731908237894937256205797110242390420450456682482537474770028036392468849821777142547874885142636259550656604457752617739032371356854122490595999489995281338151700700861604065904326380046279566960090487909712902344106435139814713859981053321874059736439470696416569601009823228452808697103943174482933368968010096599839156527710130281949526996593481554724655060157246970102258077867050689280261954482562714512581985489950405892600357235832562635967213098044228900404333389819798269947775668146914785888388290183326209501594670103135448422509461417593451859905749718791936379925486183811289249342951579019072941355425499575412575763956218626314891999384765884309442832634493882184918057366459218952120320672655325702433627225973693684432723880296331895968081673797055781740228543489181678455961633364642453303858214579739905874064968179879795630623551294429547806852627265843175494819869303598966267691609156026261618238764567142847216559476114212187034583482948887416654542570342127016028036753994234152471015063366830536360834127883141261263522216493349609147524703733319337000113345959966841884929040257638497045500292551031236386215767701693035688324576934040965793719012853938099332166993788317195623683290385942296281969294964036119290242788995834284957369116462064951989382766757945232071624218786941413218892998722690345846762674750293087888463949431590426945780097559188358696501542187170413219447271516054584767889714440017315806785196720827534319884957789152030724359944631167823565781695948588896432328557555502257043629807727125330505789666155295169674916395265825826340160759009449949977938828419031221136479412709579087861908679517320306289748936540100229353181094894789682550199082953164021968508312979839755297045506666832851996990757808229053203013065837981794899581364405318484222047430138090776472590527872009433539868469627535444314800159689530438921260135220541477603538596832863552921522147023150115879399436903863390203321272308791590839154991370411645747917788621439501151145379322050124330470235528503619572529459584443244542953757460889213060581735818529174459398865838846567324866172765777609709368771566894370499151502106792079920055781526670529693624610941555039463636489200182016387518004887237222902978330024120750247801168996226593877344958175393820388298290643721796650507340096910305180053862808286290223001870796949359224340122369264532979451962306149698361170615202338994507120468095779557343334613260329684326928909657224061491427429026079173556685416930796810069094698762023491884023710004377374806939530231491349695730747893489963348417926843028412543080230598929736246627987406116537272989525006041058242803510449336698678152558372924252418506022838802998639041565664701890933548803178432732142476642051729842649929360916927524071914413116597790033135643643884849215569222216953693697352927524651978036672058614023520682801084920033505097203652496540855297462871471152989710524849060314313480726765360644433395319687190507648174306450001557684205869958462454139435706000323424654491894823897514223526635600562358491633098055015726362657492437755668515456791570062706873254321818618928808870132903905622514168349598698303709575110591233206038718254248552736268769774882873836923116654766353828423537107939106505247662800666249017221913011007584501640862111312999986175722374927839080548593219315932148663145253377715403262966373121813173830124120138453660477558671272243712628240396334845016763811174113338782156492995311798010848799520107469984480552462587295496924990780347074509461718801416834510676320065895208619758914835181715719064521514855810247362317957233936150598009639288507322191423451573117431233681390908716647952177911264494656866898355447307658785298693151408662940789236997739909502517300725195249425016916525940739818831528726632661343630760585718134412991830338133900424578244856778004845304809877247137031334860944567347685668499406753923945355341860808221459697105288168212673291116611606871347608741533087928677009697106121122974905801002410698807880808416786606485255881291796114686197184954644248863770861858224402242796237324101516845064922678627132570444341789528709049729286233809356465161862607450300929617792287042065477439562973273771900683100652709602815245489458959662905356471671438533134361816978025310195643909446270558715929611274141669263314564752754656510012631846489440965997215883467159024900429903300351585911843091938837063447647021883800138509111047157043321344875328568195854829345302656962505647107581697007961727442485781676634143132354083071480191511206196161806106644684426795916081492146125002155882823941308449579171504344886532258833464210060735699879336666797097028160789031248392290131898113090200430851904514789740180626812342106433192569792293154676603591593655338879596247825110436840732961084954908980118492014130764827666943912972350996658817752772828691397467659670453679341627813373197180444523845034578131590664216832201344818382037301187915402793297967739098266002974426707271235232420137070173046683243651449943993630721804759317441243254971278859517460330350452379383223306698391471308881410108380894182245142250362256806651102753182806142968124353758533246397494966851018480270391109925858604593547586925435874017327705699491499941899909510837725023457515602342569894953589476437493964385739183146703485540665323373342882117338301278440257054477256569301821935772514072197156413109232403346943286309425654191782879724231790521859025038428654587939378378374619120712626948104367919498794197897255629232315032971116491050721870056897643952799326005167576094188723247522455612179051287796062487524669205656023688517612732608141775412125619156459281386066509371783542970694549661757382377639203159917306379668398604461460271584280835276219716609123966347479424892283305632808375923198761186957181667266963833050187056928570171601563198106184697676441315118564938251297500320632740830842113762005184718836875019074112437088022693265434025197014910072639797030524424179391038255192297184570381759234825173525054814948385998432704257490363956993663098578702889602201545848453024005984726725596167852087344047608848940856925032513855149407770811043241623500883733701250513439488952832854203553819680312072558643065181364241160643641742790326089531267757135442806992438359416362138550869657192408227582569901484039605473471745172715549122780896007055934340402103709027526954809786458884428705982811181304689142407896833867082300667065493050807629132849833623155075218726873338941893630281387112515654107223541116776333029507765455390884035650093009085987003277284634246868743006171227125531691414684931628090718368681621760075902093017292297510371658648255140964702060611399796974274045283709415379049633229421202829692300353457517496773475507225136806619180013418988358295439177836142710241670312929117773901702658619755973059635361660219825800011163967831545122149947520645121967627766517354966949369275139079075301870178590598513971866779860352256604128791771864618711688456792105542773499057435502704774840141363846188217567337857040052343814779401746959527652585388429971562081477428964882820497486606620787610314260157954430608858232642122854118755288485964452190888703014698003323179592023687182480440862350501152381344828690465908409987835058494905095577162671730276164588201062964471905215436272554170899789414401395038489297378099289757577987283396431298733108577754441627444359464467837159673251784393700824591667971079596296596748614992843876040906853654314870689614292984731580186598207686256278074908753849034514786484346596056379826882188778112214313372479384167655380232258505422482419776736789967761339492733159418563344830824016912690147254643977543316989656627091095154845279556378077467047461264859181712018940714823230345472626152702470093673612563673628939396388403499942077393477837264989398113013660497511597646135597510873286862379912753018787303126598503592376923707523924874762182214988267515121703771394123227542296389118528747792464918553356623916669906259675515109377982462235275320437723388338216369508730168178919439755909305602709012234480597546888770324856158863841481900858867719176410320900460969387631684951149870927394259296204988101310401172209765734522378252012793877975381950275078764579464762707203669273009016206909092517583028237018526107142235420030142023398245103890027483524769838058567122742163806645581064909626649865105713368013798788057306303373934655423864822088731387610608153744002327501800300089684088241442534879448247315869722443753367989363400435905279727591199130446763075390111837145945888207773540698172476640509787368981723235497635180833942685970947138282528488797877426493226146313303697136193949011673616921095466093526037612429460336763326992680252814927817785354365191999049853648760351951862368909380347184913538968498071938574842582349262734487583116489746768888349120144368230286882015692272510082022791906458693418548722194333728034338497470820237121987471803645940732923947252117539710922331891024361972261873335249519587519911614558140547023064839766963582354556488697991560069236285290073128231842734093252721887567006860040098481577263303884412430022094779973361996639315629549263412401426791394617395417625536147459315229333965151711497626264370460027678478792253559533810664784068631874451799891665129679500905486348815108333008965104225421775686767219004998912769047643672881513371633799795759064093476850885128717341250355998398862709027968838660442532766533794471669724543532716918169042452772635024413029504131117143351764536122838023245730113453286077584573555073357187003958925525278282269407791784777297942557953127100308965471056079795228216243098764158329929196651257898941480465000728071097286659346114818132679754101365456491336039031804912828257479863085633079405785030882300975321096235832248192388194898349297928999113861023800557603637511419778616206013444724441655880361106975416202785885911151437118846969008789575937283794502929740566507820483496616734317863856522126244983907988751675153579358764258673456092700920805857302687034999281049989881516564158587943237660585415808958219953862859971992817126412814060848238005093584206353798615309077686030468009630476554966211057288846185223876533339775570175756775740978114246339268424116669994963344163677598812611963099423686970533868863045805011151664926760548791936796340305027749677378596167514629830718445084292590608977390606784456690950865946123882706891455094896725431523122805888568627280256747735133574593944143910579390325111414735027578432924904022707824355006387974843388180643948643600526388493130754344168460351288783543091291983695104668369741837335787012706109701000011254963740846837530500716997160086077776187485367205618930566481022864515396757987216496279024802342271145816431499788850683603636780721162472489077565655827240650511515813992127978745673735335661670788248985690626262448436764587583926091911171961085196103741705840908533314287109304818749886770081555813495239812644926526695699720363302583865079260449965378695481857884055517931975856497323057626009631318472166145808949198838764296438467333275985023125314561028884521609458727173417089467908721942032270928569659638710624795976354439962744717603458262542189790550995884185560358439801139746663772242379481925599328605257751157953101542192546811760321561962689057256596874413727563653099081134029486855086167250987658888424053037770891328637977201771823058279550236684611864397976233368074639039666737108986140953738770233671295728968314354869613314327560891098370426668566182701651961030553413387963187237852265513093836179079689983135725195133204968710577447581598143250059831938310948283384958842571783189098972815980782181199801435448758428433740847779714747128066345429005205087730442319765016337993653229620995411523478061025304288312478972821883548446951731807281146839881098692943012304576013660385342178466463602923298436038855052944321570929250740134877424923103622779821325804361279711485253797071855965272105086482586899713399442974950165910787664261407616900912694985504072882790957015511254544049199579252147156929322532914947403878995728016461115525436789832977624215377193815238256374108094959734309696863142930573692678794814887918253452458566819012705241714244585773257355810576182917819753213306924417578505847124320750362892110092879881212764298279492095449848117778958091673011075677270692835099315441146015094626127590454533328479097000090302493092521165066475606080893091092362035323743598989892323616098751808804973136801607896033552559093809948077008300969777971652084780536927467302233706231837454870775401498717712852465563663277351557030716978331254845767411971169894318166289028716174099909822063216464400643971122736216098642898812746512974724855550895867765836889733523093354976422358556967069340610314556047439570204387561872310705914143662489999546480563130122140454642673226710164627340002300939977370657345883994843885301676492523153120674357093951901439992128576393684574256073365541228172211349014266141205210317085904072428492930870548368454974042551686609217036190762719011847150990627540962636469183514260255230786719945421818505655160173729915756716877169195055550770507296430113789326468993362245679528322804477860193353932580248097070591686521066560386305854903814768301810737471904024942752957606212306379669868535671301365772209911312077128630714254019491937396410050729834862805646246987851950760778550566263731362846739901134809523544854951315163794251481965286863648109900284371012029128076166712078755262078563325620945228573555023508134986431048729884211715983335581578258274375680894978555688346124342419140626847533723715732728927987500274788344296920375933722202657999179989111597488054444326102773118616671728072394678314946599357473504406650327457410175121591439253637861485333820001483795850179681379812918482190057255339874209341756903365159546556272357692522246716550417278407552158890020318157284787598516469293908757130358132251446910592574269012293037570671486442189425302430160873792052113831267223624774605478644038843464517448727400199701210024430729507524619451796373092088563273805594475426161891854944189066056169119317217071854332576831314590174949831806958462879229239982958804934847412569155792308527407224845746661877992790081339334088453982100978775906747838508700540241989240610144026092092503729188949321050932566349267841376976429091704922113400128532264409942559394071145387157570673197187555740664100442666657474624976791732028638195761123841428787155030246655754175926979181835671288049553526429880285689395115718983314793617013420110830827940635435295101546934294330431284032299544699495669215396817328313739638869450850661576597511372629877213491043059580903457697369785660300045995963654996768696730951698136393962120026213009066656051226349252002776632166662820125480512741092039143625061651262415819052878604160655652123096578540399980511188036673980210843653266920186839463423097094268556282452575725709284005635256181192409204988720604611477059300429606402887928177884032345616817712771916485767726391555992266674483916005852012826312251003490064460037540304749689464983007408558878061233706464946113203247817467618460974914150852628761882541364591822468966889410807373908893397173014660087209278811423813927746053457550901950609039299667837853478440455477236995421353566542672668467299622850050114736641161601604227050758122475917733419522060837634146356666369816956985600236361259606173514937794402311327428226499145575981314245457654240157594291550415187624770045639855740326781054857976830931715717892828744571108193140351767940457938377731095146620184493527584412860905060597395712327153468752335572898709729267255809569391955255897031736683159302736144724990864099610721587931267077053215663527788348181782110936921524155686842857388953505205297547158916145538397496323067121371998596211862238422369561034373031700641011547205475106582607556714619437583907564293648725613301726416610672448314125477884693109453029619978739623070997819875070103634962406280645204824381974786980863529481747713719743434968466817015769478379140350765805349530496180627523244421248652088353035757230168152887172847946553530263644834935468563176624216532694984278123455133798798370323961782819549720189762215468677953153813340267001633951519165081269902284105836807592943358492687878178944546089118948499214049195114909632837572257556941979977408942903218578548606082763355426903878532071982961698390996717462143430974103907577523452011730781354888228171889938960798348158572662734346177492909593727272672783728215173718973477201881510695050870031961279913263430289834710251860423196643940653004201229729675953187783956315898126586417124943441010871900693084898934423221131188841025892793891717430865464308372226284586375579494545172202868950375912183565218290209648481075260783750689694229700386111151667671145595761905696194691831781174834422197572578709426190805072623085739448978889675429176550851301241471899011365745229625092323827551988911477601156868014007492071847237073615504736986339140938832225035769552150775140223213024761324257255337045239027759776495957488927410498832769652229700453627784472186199057437447337514734143326689891622377675981949474830593699134200970247579453122748718601465340585528095131305430994227540937319003536702601507878260152503824782084493220319328160091072446195918949585178576010009104187550169109997566293990187399685885561658954479239135389112993480515610694925621835105035095814143914509610151321232594785312005662538020370112762508085901690140367014899242467137931685266259760278297333750580807356011253663731356022965474257139421407863982564230945207169971844466596740257535153915553992708256667214342564775234459460196524718121835223498975031016378000117425730275769637039346272788669900392561214356416716869519020048200682092330549171673659401846471481187599528170470694166749805778137022751966239985604386167285324987859832042619713348120038086526194291888098721051674458441508028793518956276435106167958800814205521786246212476109008283367690446283500296169785673154788919888915145402606379568591115470249451266344203493247020336771050383707206787297633926391021552088028272080978981174978910251330861291105140994470726537378043959371206878646717885527572881586247830877884313946319562870973729946135603601124251425822962682430246101150993562855504144914445659154480496660949236403187141744727475037503033025315498646882431588526317460043247045282316868821231028424780698495558910701722688020856809874772880912719777245425205631906542911318764508367706870931720959953085009527402390051254909059661704658749243924626426200953240521392393775400515197089856162750919313293821414093072001536557583735629467063960115163560384205141788390208238114249116606409412321735421526332203720549166891437820030789235513554975236536428529420079857967512028837528609295547730318542941309542529300441096383248830441764623433391419062985507714467607673300702065680652091038000654927549226624174400009856961806876646164213359646371375697478742286238325098294256607537702292713967745426269856578653219941691853659374668927034646762663534647013719168903235946732703256889178101962065300403462497553743539180567014974510228148518738813385658910534557738492025547672283366756022792121928572613129049684355887903879742947124026654915860677749018197354538288382811880977160752519581735535768099558696757408971892810789926305962284396941097210434986770306442768068800460444050797392188851316356304962388262416106566402121723313138920733568786148481921775002048904537278382491490037870336258096557462680948967208709653628441531135507354286177573707601999796285523043226148966967776825234481523402499947431331920971904301706935310473099850434781824027864769863279373227227949530747850175571109060299059909680695449191213286396819523762743483282850995823272727671657106302877222468463926515853377370888689112584240984086224015433124790872622526119120805515808079513933234729372323951363282477016390169724759496014949901189823095071126993949556048769697973837023696723369496798797537835295899175324144023717727665785525657995382328644711229834360539913516533542205889912042878345313800972629805982683049659143767794865792206713040323263891205306434701997492733395648980503391600109445651882985695286415929807388497277156355153990244381091917770068693410063454176500812144414841768516506858936365953575220684937268939812501563575860795211641057982816889759736649434208749374565799666798601796090218372050968179273528400807197015009559081355907354055861431452672368749923380600950672961105093115081522170638659848430185163369582004394667044097288377644544575514220697189742516747720413702751212594142796291215925430115641376025711981042479755309966855226993154560955550764225710682045157820378667404009487699708032970924616388886141281534946565404359052015267570791684532346430548163436432187410418253810883781671328994398338533437264310585403764776003571417608350079958966637941174263140085464974169233358411667252408646285058719312353028600375720237350856648335720450473433685445642222507216879763080920756332155477964188847629328079414608789320697222021840101416410545343485874783760938561215805070593272098639013504793747486633481097032273011478201471680472955222715969306036008641765496873303785337064017888413957713881474414842664333297234732552549631287271152898249095072643408282941705256178083117171781987251015439675061335296930175814228165272848253432452548254922540046004042105192437061737350111182496137186835579859922590563956073799234498300777206930445981462077345966714484709844873244392079323030921750057983417572094534680336607675189512257641479208475378517792676735276743872308092334604224062097638000477764904135285132583123699137038801709828530136074644071438446938780838088275453966773116017499198571846047118455753104234910565977405433595463686986989541564351957495512225165748753695839411679034963790648255393330220155466575534497145350696796016285906380800071464884497020785600260613405983506513355085928834903499904830112158989246268953542402921128734856976517183980078847515362299818361228785341329991925493216713620161670232024142916432268629828838700493471963960822838964121855446464899296816655913161079429765132121223033462352222000263103030994777955368792520885505902217600494257364043394694165631707470104893146658246659507085973749717341917567168598537565336294411513464438161230845986319039471978341254090423668316254626288379752474354263586606085077524715310357484929341161646435398548003440638695467721101868643652317693258679086718966206916326738383058409669809808422987915977538216573646269689511079846459313272228897589672770104841344161517995642184897960593796832710076182769295418948087800071100387766157342920335121364054370492675725456720261688214846667718564459434776809573866273120975419027783319061017030238948476391072402572805738838115749628973110488456126189693091223570105142642225971480210510619099707490540204525531482374482910995245116007443810458746576215574929365550921516886058078235197073617687618193191836182541278081590241112088772626957350126764559848861437463340692505919462271509314100958539053769173958839425903781731905777546075061432059742356067578782380185460589013166657630325447532080070986813123762320321393000800980017893751905200504055888737234265803882474602485736221395423917612216190446633682546759223803158684973854206630035403600714169838345897277656797590821120547400453496980531668577613017074300008829919791781986521223733292519490827094008286741490585409185481497387990050962923015301873092071434127714589157851754256211086068642886353331674241443969604396904780509995022195186687458603449733592475821470038819921668902552196267514531066646579727397215580060717003410871371940663275716575689314450763772746343174058203383339138744075323260871185596258817102776670331096825623692087270336553304836968595327131288923987091080386590236345192167524737273851990456676725720627203387701672377501436677353190157095965764343765003975913962053461181307554471068188530738145365419697266377311051076874237390766142091461314426063116944268386612894647563592650852160596595374267495290108007323561936290560805995534280090648984090123932976642052939304540495978849614185306809611898282115694776781977383610593119536652569025837113141847793577132303253097477092571982092717324337814559410056818383656284962867822921041261671437239044568156860819241296165238027558991079502287088023498542228833756915668505253618196574762105858047778572761754432206979513614523885226688063506645770809258980711092126189080139097288465889501516496619576683024906925220231830249481310286385351803485760170251475001394410811422808797544336042465954275737142083131624777684490524517520209450978089115194235720479361194988797923302997447978241071945448562403214744630115418754425527129147766428779579131016879634881428955498351704197405536677201204613127525320498581152891831190294687644267891876979023291898414727157144762636333859711108776125974617292046220027699520334374875441658935503372215111242490367229108704112479463858387851641612636841115153588656418205484775190731849794033830407180403042155887751135248476150730155575574534161366493068540696168961766975081273588107214122781580620361023414667982112696007585517249943881103550658419797988701801864137032217623887903040772718219827947313377869431368661378764368717655073449871012438616324624462421394006582463050381606778943909279677894677233591223283691528388471515926376423310804489625039652594355670713816782693205760984841032950562244733343658665164018373490198698615700781205108478986432488691916269249378043668724811765165824113502646231489194888318694670796697711603061801345152270548779650883086566787311838246661009216685603132885819247110803302982904242868818788855783328517831470814461356935210237810361174697282618444084933569384645045078711454602295964121001464618089388972973366287278865983503818449483798591326852034565618392495125886958340995158283571489354259294303980270806803195210681323115759702209913058965711396886131838942116261060268345836484104404355975549240850072179979804322402315740505150413414119070097190455254113718250950562367946463672293359446936745978030704472537033659179548440615367022396934977549426773059829758341586438683066256580484472109032990093706155748059754366897754059161238098786623777084617855220445145583891223435466062864863739393225337022560116010959442448608487133555153810674193122447187752952117339247491530924957455845568471040598304649261265083856618746084144820721509962021409507504374343996295300126573109845276368238167238003554993855395531293622457960598887863664631558806125454821412549918210988386335449485113559665578381900334149157555720795438150726302275827903166121681869159391330377491030371728266442909352851533768213617252287952676118033319071283163688411182757392933182189615516226466898581965492265430137662962006596069935578299292118884098720602784106962590056405275271929594283831758794423935876134107737569304420318138671079182881021011737430372675524085760898173678910682577884241788775434186282269021107018070540799153496168853684312859788104950797135202298167200943915526903976318191296680636147774468073517932763772026002070896467657185487449799690161104455233817309361029838003516497561623945656327777004901604449688252277183527736197268513329605588551036770088215772906420031371622032921233273507258019533926427214677942514829465231615618894912533056927741635185720902313346266764225367627941308928216723689230033449967056972891644428290701142202673896655063053371397493323065775529280089125367395546638003476210223440839557483032005999168158934498720689433947458508908556136683602169352577324280570456522584862285202935546493330944934015811710275237362980995519255353302480540301334556105311840887387831616649824218752202086233619557600636791424833302051126701907681496692638564696907893366531286482879730795966350025505491257304375088439231447104644826292427234482352738429132020791214696714354375366934787021081175226996802340431844837972883837392663665748189641337664562757361113616763265493209576937464838269244636190113115753190695838134377418997569809327147854945725664395496886827864545605540909144779872524311430279243358344438543892349299006206981796766551562599256625200217532509451983056889356869614440615245663904316555213651533159161493916843855458242423188746247147670876814285462867444019948008167310599664162161397728054994807494150277631083277270957262114871269066434582458775176964985612013022183224274208940025496351450198139282154417664296208514562115636380271520353135778757614302410725466847750178854366402724188966328220895770934789122762704996565475221183987467746718047723446745587301120586337814993615306786304923756061697704752172908027875766840308188437496862778373021137974292430264968015977169732575813469357647460746676253183475904864987570250360388050938830272803808121776799777490399707313159104614465895427816373148386086392832376979611777028864607488000249801796287165876849129825852958820674619223432929418133573452694573011812885104434485841427328085094532231206844114895172805372202609244381182763078458633107830123786946075081927657513254403033318940757546760224439700220859671815845671628666216389823116541341812993775677991404205307218389512830560731857460990375529486384394196406013053086187850372068524680564098332415148139866143628546875664739876016524287665188231528842932824814719403296981035240485398112509786184161892522173474247698511012884753719741948528995945291744100378763210264862797718013364790770472872890486588393437542899247497891848547489442401494964605697490424057540976175008419906404511964901280607172466880950751671612875283129011658224795381390708463168865233935792972531725904558764952424405093298471114641222326827617162527588133931152753648038009420482239632710652569592099876751367234915882986747292270921899878013884930947884320634646810625816258852902623621825395827250115246268431368377303031245279056674285067379036068536016073796079703513313099223537176477843535398693710064941275016299226729720229502669753315965429742079879485727755086125369435986955073030897045759823539451978089697024674404739704636294335680856685594366587715602918068800612632261333820247951642753295447614437056343794955646730013144220977292867649363556081252603119440809395183161823209035263583197435268230874101040091076971556401228652088731988503754854107650598061717699265771823644704769067477245775076609339701783146356780826685567335541509485523312551714280273534457445272898094612071456547569824224461049089733910416348012870481908468171838973177493603976968685517650280103469655003491226551745704621531842744256406427617215631661903025121110769539913684658988850535853530933752930871448639339269244899368479213189233025875926183480327175768569902459317353529468174712067954417174371922406415830044322066945251176340296407559733648613665368210037713471708218507219628531688270395423013939385646787292672630264691396991538357305580027926004818577388326378391411147248992172771591244510082216329309001373618403050058416250474062828816291486712741444600397582295720099735656050289136438728403302813797252757932880478574309674783416873932387721821627116596556170778192105227061436299864978122092162816556413294516241417665778138077305371870100957005700289926799031244129055478146263712578070292131566403262647048067497936504752643987079835304631533451313056839364500017610614578626569850163183782951922312050059533884917589362000589133606772987678848226416370856660337403492600071405606790549464762889063050027825236023735988628573945395159342762463991277680078288169265185493066259430028283186894269231327999841514641527036547600199423056563135095388279306441476624901957326581953410607860353136962400031696842604882191761664443124892640789721832693620992856467341006499773768794186057853131883572372479198711224086615142795452868075181901571143969929301355275820888836538386453316945010918494820702685675567990197154385624030927117196208806370566420668996049709691760796616663069688034364388179284731213308562004849943731624662780204268138345448099058253514297582633378048876672254660077107246869772795421470692849163135825606026000152329747220031074156522640205813516363442551978861382941806286787261836349079950095712891463850117587931544839025735173899954026221815488295163366150747238775134208807699041193081670517758343324492195569104248370974742688768450665097831020423974100147606855220231456802088650226799376000430160227183297396837528272871723004588363489952745909300021988716110419501816713152951685076857872700006510100753287849012481158683985754074577532443161242225364736321818294958230575717525059752447537688815384945160065229498194392150380162948650115974113231362746204550695913378036278414849853528724021364888912628816158541014238552865727455682350091273391202809928456900882964225854950649205055073871712972261080383087417708410027094956138556322520235978480189435715973460236272801103980831750394885941959931884042422548000313667932588336987360298852500996622190210010570942832011636540560308072476578964198182905714130273744948256628937892386365277143881058188297916071298644535771321597585849857575683208143201868676914106643199798109763796421964975333823009506799446570626002789992451020075028609157515828802997857511637241070259115450061259566050754883423323400225867113409564399500823163946090018522960607405562586551989777397520347959654097112711035972644409298544567537853337748990761188813559696072456135896369340908797437634682190849486892895542581060085481809979119880911363456130578396043721307113657988119475593435934422698163804800631076114450287822328266207119345711687115195221114719652501866707677385354007828038058744835873491204915005256090669175208081406030570041640337787981507852366091645580432617114643838594931344545750870155639942460394359569882924511421568896918961200550270689780452914115855574543639209065703178307222257246508482578025298037772020908851866121268762183126284228506334026859905005554900209698744972620428681561209037199284695917148105331484048275979673853893061923105741496031790685587173486331782594715711573516006548716291248587891299675918976727137879457937089332389064530725592409772423347180376981476575633835327398231913017012727691460476555220301670569993926556719701223977991850636414243074765120348638604268284314096926814330295222925817939304910012367034104852049318783286103830122227456747431959887764406331133551606194894081789854720682638559910875175305818260212019810300968730818641901467293320964897768928910792432956302916994294531131306200718788904703373779727297689350598628516466527934087254450737778647758375597405755942017029945922686216215571134093958343503722811739287486168628532640775163685127076330067129495010533255702360885799414633005152520494973475183897256064493211570355641496545685225381515904615426410232612963019435246191922306024202533847707187229874460238588946451457637912581594764985709611214569706819045967424020811108333706823012161446236066171419709162558575749789881020195703402974984961397492093605486221700001859998793913784879902669624306327946338208115667424251393811493352306412543716259663288535171729009402738750504289395082571281478630691402410157579934616302178058455040725104623803735021819920732310935720434115376082300707244072678961944697918993469504638243842678790920519054232842911671772408719750759368452115838444208602986011686033648481083748812637549808694622519181023417567646371570137597187224650425579985807095915888016513366295227650712789813208974692499837477158740129658917996152077689277971679654209423756263363155159764124265800467261712291104926389280291882705028136843880421035176156272327852126394378375498329498232841539844057574556467234754704519904678855902304455196433853202374085142696304879975094666771965285578935918725748250206228685504885976626523085663380045107537283471203452855416212297286543229918727891173838098535409075725557009687266255996927159766618944968354343454234644926655030821255786044167951239796744253466849903706448727748491092888269808250280855391891268627156176150203329298416793196259907703976262401493917200933009773109731922613066924229913597484671167128806056707796050138112300148001903684200248409210624706419971716217811542135095281372290654779133199917992158135335726571838646674152023961398525627387235586046391548814434076598522719316857038007914207002527200835069183719239019821666742763916133585690208951297184600161971486551957833216538629677713522714637561902648764361175581511436685064460216568293138798091830673706951378972301467002731667666016844801111689391717868076888627991659686943856713638112514978397179451217204196605694283635434610353364204395634280739037247448310124290887410937194318294963392064307426918434073291399658896396420223155376056492617303303266127458641482159722999004933167605682635426952962144196284856429918035789379239826832872502040304500124154084880313022312270650597752462824093402477689912747024272990765596166125996673484963023180339208876261791942065377340762945038874267849173337034876943577740412748347811462195194304380257488078676079894093412787892757286073780112995698525975133131774056216780626078390856763645484807093685078979504674135584415049396306245734383430961310706844072927425902439534983407052910330687038432910485899425826658985569805188561857489190945691565823100918305576294048066412373178660760149302568556833280324496826706145769208715359609328022614292688581184902193050818064688347918884231016362599508667053133185769280140572484546137528794778941721428197005831001194237466277028354549717858752105787979949996847015651366446188523596238739426210716226105132666824053122924154285999199671347476736981620521394820134026114327121342090198274640866076403447610487725855365146765004765414412975925645949550961346103337885537355421413363393446537425404137817301352684681127554216666198838651562369233150883974589404911251410053821227722543618665531272012168084114412550928185558252961728263602961335694878120845671659675174732621306998312418178426628986422295899044646932604052292649606472736845829168095465185315145923371564036331521275595101999460556966898544603144554992308463698224018940449273172868216428701642590141423804121867522265930209493626573624008830605594167532958669654700653280469486928808759860353693071277363759907271515871430332469368033776194835330491086079106525639269040728669040153432057824669429201836019026512140068989128311411484355542744460074894771404961893848198781176071323838601840384202394880223458410160117524887028589008804148878191879874425597693506966014865263658468664412773667115231926470487043679451981463257684468285580916677034344821710990672383954775522031762399639192330230769315817569662780744569592008415694399981085263172173142241885828069135898923747228666763464014427557525972679976605320147130406756708892780849158557562402982352212866635083540153879761375479960086864282448498832155593424883698575048579031102549410166026376917338234653205367658831762027156157482179798243055178416733878807897660468072823685339138681614986250389155403987909851390409870841601991530402566546316993257237918872823213497330856513610672701861844761354818172347666728148005906945561488361495488433840785704466100005303840748365866568237384028713949740843947291407418166015537100664988893212792486982223595591007949612235798868766600126570565332565044454961588427661702831554571984674693266123556957528698715549360955890129511458851894474523450259123929573022875526926179172195064597815494917571294507947269458892851280229671584352121938341078649941497235972782609658347500536151523705118871431224174346860576981324499027167802814989864491806709877545962242216103346574908624312540122990366935694542590851249629626721895276188512916425828776547222944129557092707466993413328843863204475609180435756214997507922348310129827422115310735927311878218949814913134849651848043771799730979085268854397489333984856771438130253798653865254334973155480251656437587979597548045548081748329069109808995660713045853018419107263183816107776255752407475176933947460996149543315491236611032729150626634524635813642912502993351714679283057900201755296499747414041606381731663968468414011363660843279215118915647729719467525293036460301909680474173149257204377468296735409702253769761581200947827432074928131731213742024873261713062541212584032424436239506183444331057097836729890573570583212221277555345506504527432860256442380381963206936963375313975423373738042725353034200819255595771335257177962071675460221908272173363905886081129216344871206605078675718581694397697059393814535030056065214941333083421317857803285302413353316130646868862004383707282698734142176042241180094185819664034141274023867735286910489375873442089071117605735940020433994898895234134081524754508599352063762891449118798398100925522765656609725274594565110260089157451058094103821798236414669202982894146862777999973776503056409793086790816734898278358084069749957575857292566981935813653687831821351538602753418213943785269585459103047127351753084308809145360300037748413036614019941097618709074745622646327600956489696317878950170634941995083570040327478701146434386272306983277307128073105468070099658901208235430139002358318838827514190620288431841105700499913731386919503706444650872562157561930563923467030590398914582764972594369964574770965573971681429236069483970867579332083088995655592507756766078049342175693174488923966983435689382920973469665105482309917778381683950451468144480723073727929809398290226215719333995890707423883606672849405675851517299048106192995638782042936068663128561965224775825014976578928642648222106200750135866155260186642341209762767867356417389917629277680949612559929630973587494318971985628722013863406136891763019133655747521559649144987627803478876603914602080262741966875215767530810087740721542093873871129074330395661477617480102322938307046762377487649390271036363931669398910576279022915393273017349496499149975389489648837771896508456499038056720424517210521762793601740512848925121655677560364595838596634060526432715625046118743636419685744737168340082679682997589052299103423486974168544691609748930352988380405737441394747131857367283130659246022275975576780871703664783069482645040161384696608427055859573777308735475923179245377125289017536610573990280600815129236400484227775370509242781792068786025566273833220866512413218537858774652440554620993615478435191905066706865527465646394748685145824798166879654139363868907948081447899906998845372803100163479843222261958829039076331619033278294212813538332465057105767728614490512220048623298308036728723863959347475609719603193006115455541305536132825883211118838355960533370890220710444723245568653675521463701638184722663979247557735946090812168801530476514264874662822241905080446430443304461620002138091017002161027599398334099060847896715592259312167255219428745830353866556198404404966688923807809500904630414079474120754853408938271645311335625109716331128208901460303668288460887571572753641495985029098782441822046193951258523785270930568331690685988054643485748044461390030061586545404383748917360762413306365051013090699528736729381754317477727783436422130149334813861864277316621289133137685211597631999509198386746192937286931102206113243667085838030483571553137776627386948525752488782111709254038592285818244188151121413580211587943668984279253369692830379113681310972349849161756231520589415819795969957525175705537234174667835010635446808326220097852797324448877613333026595945720899145181641888441266878648877930847836980512963117541838344370773416998120607133150346557086198759927914250082873483957206842930391508547485068908327658262839036558681982942397427931668112347671133219450662795943366693023311682561239289379939332806740019579842710735347876671800087136050170331788259331935722489197729991116151549168175158823773647336263469682871677339106228845665255352818081709262147951101638498617863480333182340648144865279958668956293861242083362650113020731458888778885354645757682826349801260267244967227486590673255343765810123194909468965387764470638651094273980679874605962794458381273564362845113778036603238008602487760277657282079901591473959883807858459418212561539770638252147601483252963033279598553310695970896597617983291188101902886696924204249353158769310649276590828406169442976924361440237890775427084550911682363744862118343759029875974419524339873810604007072613172794484740872088514796101841303491520676406149153333561618218377365173485504867041056242776326594553937502190055698781207955626251544095382991058129237025361373560286359505073130734795848263184362877644282776341136956148234047765525316927741735729448285985931386881962343012381789168520117732923011264908291993962126298969963438182767265566593143802646369456381437512724172553105069515720334996638009566703607623424328450260008448640232710128927167475127462045606342997426154891132345090848471900787478918412577244438745326419817973986702108285515250291889301363154457111508159982558723076753379374438608436816841208127345921170479905882526134910950956370131392034320430379417358573717720307515127033504506199637205988929677344645356865744068688468998969468385574222444093991642201206209405845746536922779348303528376466682696944565991710733958095026791965032045127228989030100040054217253012837266465899837164804906468405979165193183964256147856642715018473547787198260224870211607738508695792510578543858547571010240584888033794714144383880509229603304867107364733500072182377534048491774832791959071882568640102426419040400391247827787402377183319736870405146528713521865579562824932795793777140815054983629553543031505674068080531896408632093757962698236761873247788546543805143156911389539709203279725557072069275372070763469996923019861857086812738858425007322363153365092556984762594742635240757353157440954884762969652815732272488775832645395735044577960701603954583407184610679065938419491375385490730922294029034671085253615813433855546261877620137131723480858446292290109945583175945223767059648176837278907542705402245271970201773195596442903363983491705530289486425131232241523123886857633684512010203195449306667077083476771602783560362665051651845947052411968920790720248275877030633834733538971950496164857726498013735205168071283071666095653581708190170532885435641696720069471597017044532472567451911957986295406365098780443999257669457999966660783527771730335070238724633796222467097827560197192026305506614861981583572541458544405005403161854904250682344022836510549421522031703616320134192576370316346139939701791131298044313163461277639923486736117445767266699636274613742017418737778613660180903350250851866140764595182792394905641967797578666747472323039936770074892869424163381769969951422656111253137765633227990422986845844929828076557356453142541016934711645388565481811040835116458761090643327441270023135129809694627390494266729823608582174735365869561008601965312521695219454552026150667437982895490283194994050166493876789464751798852799498243180881651908889084270469827146897917420269811558204710827811494820686211171322167542077013278749453326957770661815995580865681924898995153877849339915689063217642542958245999619029568975351697653749113436795263251905407385546173523842343150381575687084550488414150663517067992009395681840496444851764358975794483309018184654294575037790697982461440904245741506133145692218068741360996498407483406839455200405741815902632130835377196588365710123817003804891147846506399722969620660231856868377958132456483760880586216724796169449035698786204780158806077508322259057885429344737426074903674430329494493676977846011239180847215799934132417000089851097782061197198141696672924221578782943218162103142561493626478791958438153056093974354112205718382536180704192592764776076381034590928325677235751419632683330710841364925336162784709062895273437658113040572500514181261422264499770907464574033302772610977684977998807880825772071052501004509096371218346842331387462531633798887549788233911220319227964720952424840304425263218033012342400514036341229874837517877919123873227968431593082367996308108830476155186338391337605969919813574029116582861334063714790827900937191382531427567586845387256099872743414441942054780914615105526743178741433200598264963674092350694508430825990631423537798457845458565967566885636065203811458711266126402216049371558151554778422866445122408116388666166384285531951639798758087615277741346284483292533017602258945512092665638352089977991395833915703484653037360655039228684662605074017712724434783164523863858243284712198894622144049513834898969748407556445109613075689684622865921422766998166598268168567925743170851816747380231863135698770789362850620660328233601061516841084154153228659294458428224962682775572689001433290135483141863072187548557410923472428823879647497871959218831578489409523827065895669615286528999549671972842795828448985005989684586965324208640153853809610745106038724680605773502492065148225347209260391281081844453118183270395272892446784851270549868481623897767536963149645126780851661770538072945119529731047478678629865954880870692723890996811047918675087616818706996567428950058813505987990078728097847856064940457668106683705042650830745563303916950007388880927535723560718895967999439438278705262672082147467726531418284137395298580725287889931572467291980592958058315563358269278831186834334321846970289651612358583762304840012274994820244379790196157152967274269011141986579104181635199312021747637896159855577268388861762397506335134893187553624359755077713051300809804077333057447928791697337420197279368831757393873289151799490396597464253065013483723486063978378809238793256858380530460989332585264722516117374578213691124585124468915022140286766496959916984236894646766409164099216538709815766274418319481781679008844893838280461848183239868531024715957216288468833812396027006440052671774785699914284435517279656380491806055168569029694179647461539139851050669874375813588779959897741149503779000400008970738822096375594269860710676458367206417109854450785032356203875436557209183304608969705967067081211280501575639265083806142140059844999595181732435516724836500392864849755133005061984279016826401521182650200714951965197446375923264766015210847463556155412676289821529535696633416305134917973731955779919738570987775993672870878728891660417660648719693559955204616897130364896168216678450113977307241622399656359312856157159612645877842192753038448506693035213846756948927999607563310952877878500138125607762181761356154625719522840359483799951879087176448469793013570187331393753544373534272865154190061480636836135761644865745455487340641506856027383267382125263944085738206783004574985131911694436563159614972486421539975129822556919313500892565941165857481199373386240001246389792840670606198694461084130042317591242727908828084047586145926418435722710921339621227143497630855230730468020923783698919223254036763785284203385249029434384140251635100861562429933520785391053631448546726469203338333207808103309649018392229797875793571529799189042122660511178820972759408792018597013870573807920402656129870834691274321537253744767878783417148528506964066450686483521321563858933384913996741379363136479598654871702585161090545463278319517755630192893008256510736483425037665485198196132907868614893923154304909421208309856377160290115703799414531356840823102031032575666080135632870966475519294926671690751518743390070503826140337414821868389877772917494219052313861996079303465583658582118959853310965830675542245132551655485037219204151558111766627845610149187163776573825638530902557776472626581454907232045887394478082203611009729046984977734001532133491605414276399411399360736924276196720766105557316166318697281601107502618108123415960173622961315282778520576125780359892227333297456986539194535421378724588003173577241307609878497842735356567296205063547440860681012056887136525461248491154901808271129592179511564798835305725909651882680425359752228607418448379447230418361004783671073990341260254581694752868173662850457370757871065305576010758505034553345544658903379068582884983875205766099986176590256393207866121681504042143671022168305042249081980848451922541595130924827164208953079564591551448273484039707485774783513447477695179254374377990305279648925424778487401254098824569889679053446848804536495186146452086209015607363193358343789812515614451651879107422304750420985096334535428787382098609207798125389223260530594530472474762032447440105511431723607259289380873544668938092503137907367185819436628219018654191964036966341341269345924087459844599489183442291258886536634732118743085864864618577816606579734321864890851575290606657091010132202386139366041213432108163048417369585681990364004139228690934875164371808716348737453203734903013561680262905124537699831554200652479713190715531685026568041852195491500063890019399266003684803561725853166537650278033734320593896206171588355228765540039868204644196670761876499819636796626454971656957925562522407394821880174322245637563982972620906232139428689564792501854130688200538839152630743505053687808437219170755666357831890480936465846259680739341907533846222315037664891264969462124254091073746693298142021286500812184839261713072930858665966981591306928824600420807436749775310181389364328949454305739364294717084825474762062971267725558724715379822905315491034333326036819162642799134463763589315395220767692542762789591528565761716677559095114340449319633615319634868748390529647906079090957689362336876641639011861225296741977653868721861746539601055836264447556109796106255949679267669022292623025476810282527672332613106473236067422489604937136849993001255604913107511148301127402160890275223159840068545070600154058182684851768298133259475214801703284699212108018010200759363306812170135341786688977360904363687374127472286434804898792117878720143072408405866469453148183980572059299290195091802252675189506722390680628779141468200095319985407300685776275076880725751599008947249708412207347072618493776359803147617778718548416922027544416065522771282827125454378613949302822873858837880476436909907604378180837541636112279558916322110209376109865509703061697160236125840079839220185547408952696127509009387478092786422820732808615182185426332410086796728900862596692530281342100060274131722435675257906061532437161826529855352590963641187559542235889894803240133043883789711023106553307130704609060192596685556409400932032859860535999625609346006376304639143868601306092473140220576399968800879086594023145208804301942908436757944712408065600516382790861759546870723358776408603753438750396298943152097075210353853468654780889627233713975487202615302392095830524412769469703600349194790248397687000232243091543971201175240409899750787599354324840667284729371677384666046197366076279180513814479473445126418947399305281626440398775124490913766147522438458946135090769600564472964373854847573104511234321497361627153130471504936267854363189105794326616461913812593983548593636369690982879817248597977715427509868739566849908014172125832546201066373576846029494118701799372476518892216846774143668319232781094324182329177872716706291677456699663390727487322609096415308942015502672319788056750825094448723687125679073034373020543721041692484300527666855155401236910133987114125074988094873896051329412313166256085203349767424025544448629234900012792242806645707990084090797047035661352607628436278557975005771843849104044444982183306078507635310564239879962580051741325279144314214616557719951433963310246945148401648357889092056972533474117755945935202101710017699902792955689633367080570376357675107165435005593294926950683314917951075422518408662032721588634779921279985008269190361574830042925536412389352433411544917227944770467894331983865209091143632862025116077617210502668753846959428085671063454221477853022381212361938576981553422432928132261705454989953783546039856112893266649700931929465646830519578766270085007170293556920179769669557880843868035868699391928954998351494345950793346428399709899706714568071973949799628766319749648159148284608706475285226052135852059170057576593125079364535944824633944351835112659958532476910227198495692907652488639270463203165997270531118282188110739437298224225461056101164918853677076611065761862305484903457961748485049552899009048698799267772710016609840726817189394616873031221593488099813177613493556764764944172190863742514374324830321977283465686413715436281025840951903955301388006758463061755267852236291644042309151714740079228121913299403378322929945202129592010178043608464704232881574766501060207656051514246845245072006670096671615267631548517757701528594022299289979601146365562940450611537396533066968794768031846418364636004141504679694038462913580923140230586772896968635267085835418385234499814447070369185090148084622520119788676763178274266076259172603599623779481803012309980312158105883805004983865467527940379313068781656748048286025855591073731333153095828523160711903880528136586634794481835765475424462769161026866553456227327341991944099400609113846343341762181177926923705197224856539809940478602022152323494910167010258709876971053705367518750801324834746179519372890045184819101762570097492412050726182246042027923288207697529957220385967947151911657089286691435212414831328276982841769966903298006123154366395835250689909997910103538151157444167449189719224208967610797742946244204021541704067589029749069756010477848110822009129896967573420915039172644098305342272906393311988120515539489136035748249219117691428077253131083045959014610586977530567454745790757528285952060900726801851877889319155413752900738492112986002311934115678507634217312408586614162153091039382641355756278860120929218752279830450885880223076708539950166483336164808404246425836443139866949514282685025866994582711783202142825710172362853568451961984712327361426290247262256784051728740418350809030752295119297985983889937846107471289544110624194520786164132296804119102484336339018051371224903177457419212637702402619150467466031665138771977817380220953381263821306225208251005029675177355524094752897558559061860983282799382936788495010406327500727570692211045154603212274006405517354658567174803021218875936882765566111961908222815775985051758603956909171322781826082639239136368099381823528137080199350436070449149310204573602007156039263827536043995057941124324078082135369900807288254175412078130826266381701300626077833351299093174150506902493095693355117261819732909854703982239573184346245752532856285842708032046277230474383101038006680750231490086650912326692603589709375335956623775487307159267002770040047755828569093926901048672105026930027861743593612968065673696945061055009593084568666880467989652012182970633909752902754932440995624724928955243560571429002754041613571747885327352674656714876878130663897562181290827379168904071792566225787298047830457744743548035764292919350925777698194129670380526486425046932019012963360206326132424258530451253879459080792996580622625178859707187708746379258996317073935934161315471105892758705060312933199131833680172021602390384238456379221592786816127617596044460462464640904526382227962520352346535168133079298039398906235335593802145020019624132717420799951361788876123759911272764177424258811365920393312647156599920661004727757600201321830065128686516254258433759932428330562516639410472626605892601590931783990197334684561620321557894684590295732707601403560296024422773259280453771873839179989067532789649925653487287850091162604453092013442891417943757233005348610850749407833198717213647718017338741017855841014549410031796615038029617937927726355944479623551009666771579190792563453599466663395186277088340753849593106826774641861104962038888327283941811945370530562817326611852272516012664014051766147699613227954272868124463790313009506875840409217631853964201445130200778024553714022469878081686617971848204372557282580485043060764362136428307448632912014515128900048055695676148645692395893891684277533745550585341248050552580738669102130768654633050675603901840996518071249573681873217818541614225595525142691147325224536127391633153487549023566350981616319222816955012473041111220342410175066791874254966700946939609169532052012008552930547264359028856409029263019666018016301286186674355727840430264377121706565710231754447185707438405132818801794172881588320553818876239537754451708630110703157751533393822622825776820763802300613644530886155042351617232334341171632664401822369557705182772318166528941896652122371989329498654473779083848880836182357569137068871338718689070931001844208858685479908425230728130581314691559117011402432853277660801903887363101670727335192492984631523656301805153182649072111135932378882854793686324682013396314430472675274964742704133517584916614129292590694369117564992689808580426591906834780268154173779540809270131161265676920566308886233142049166678180985183264374045562515476868454397881543995032697599758311651662120284815962608806495740320794807087830472080073098246012332903596115981722958186888839520887646284512667451999409736725279297690304408687033696421130410347428750798016824687063366850242992072781367302282886345559947628139060690109872176747583524644198970850117738348238712197600919725623667076814256885094847884160969408091816549803032179581540648786854194476262820376213214768745760398868248585299744903445950511381400845140489504912429509149003822078400074621936776509713491398249173281420548950716442970236143595063698824265859058468566302327619696829535259358375101092985670524678193190105271855945314280232570086837241186531332351121450279473119868255035142873532580650196143605587121582438349782769477723157288423254834244313492349790406112703521970240805174097560828740301233976040448676628057636638463892069402609791637655833479223229369259343420588038822489175158712982242445477953973160919945243597858291413212923846018401671980633268676187533644989077691015229243076865502113487298994878841821259359209696554676166651216603735571719914203589872653037188296910447584486682360243259817582494063699277293111647979265986256013604462677695501940068107129557183842090620823584876280745361083101824556497124805720156111085063577089710461344483579437682464480950720015446213655766646195684732960439829822980435522536036080570787789301448077280650967634911055852694853430623961612921989845843591555365668689787540163386129139588413697221538633668721671280715552107358240733372844398277366900513393822328641208485048842334132651642817385153275252626433505957828986305765131023995569013616692931241609114099350959230177012076190660238756876827004850800841545210485420606159326998419063249818925479439038663910350742638846426018290682140539861845872901595672739041487372026947519500398098514964983234272843589818602641280503394138744702233628575396153022124082571650349553224518119397919350029389898015994752903297901379182499286672575035031643843992593853996460679689411137981649608783466473407440523258210229238637834335577371425758839868346162382416052985986681099247635059373232040604745757114848456015159126297537055881981974474464716820575401589485649938785438482728246694614328257058816838392735573395511035262299736018813942054162997558680337023182850963101673916615080767005116067747332183441609437212503133732109892077003679140882027830014487710039844283304506504457311663565248877022087167988861781961376752602122033764044669669623848243504147890320539447806798750927745842571147224348808074649314725790120177754918216209683699201111564454563136365623032948070010909287150621995347780285937087969273456753949640567393935021948288992855445786794913905863271040708241660356844835935587448946826230485456033051091522194667399981979219200384050932162725584575057128874928667555705495766080619677013832066059315848008186861875365829197292382635278366280105017747151660351841557426432516938108867384966185557007018443879732534185894579515025321089195786060472091198002283416875826891715473085950201657078769622401214448446098982493468798050220905295074772930179456793047406277205235002056461445392529132001575179234033061359150590853051805465949402786139088735665791136108991736294301467670979211412129031521710134608864552977023075068320726510777412075390325685464669940179437847000211996641023179750877709448459964806574859378108382168007704260192141873299839184855955828327738890019014227091706680459358749044861504623639003642430406461399385307107564474101235788339041122050511627546732850600176194134323089547443964503129864771944253282244387579495832794000701646374807227924213405902163548204158442781336886003810119363030396138945374988393332445756001179348625926792315656237434534307461966311442885749939703096994941634069461673073146435698471498888905279055475563738253150884071500151546055433957023910188346661466384181827133790441105230412237043417084704484027115262523153127227766257458303597511908519511705266784043697694989264033393164555092422435064414585000953466958255902715214660401586630965900441814421130785373561467939954794972124016642992685240056508454354650612025269799423701187953755149879762360434743250066543013645515115067462177758991781754533653181305581086763466233696546901552921040786191775916001244746196687894505388428320239822873182506735537343669580331664507411750421537404243057885570428706889603080358131315775697408692568838148832198557938486584138189865156152657508350981454150330530073889162873886758888229368502742322672451329525361884124773382433025125615957197108847875620232397181968994381889136118154924580605500947733916740547999256891057539820840843837280708932270113167491361264735041099998448115636157638487379834091258111934383411988674562401280769180648231513790010537281617231479922427963379290635679426656904704155475481934835321668033232017320953255052957819516465525149941415522753034868973042228883288264852293882023987244400978610063276316757205532006211916251441146403666313997528713246452155213273723002604670570173157255326613421096985446095692247998113034279721380473312081323853329593474962673116126160801535610866559582897939216275891282004729603813701741238763456454260264863421936797116682840915578242119005646586316747956536195799114958122711269491489095491292992465186185617541742391445956953082409882939217226630748679006955204298269691714766794842446706758308638417549528927740599054282227262274285016987755602170900352363020069640025566679874221080864607180768078386027756857703210846016543134369914113313192590190044198928095956325842972181125250701892824969117992755327336472864873541229756348163093245856881094720143854424509268388759172896066776847360972523295242405588194077488375782874341461025400936681230423953204652597454760969379001318605485180240283629083655273839765518790532711873157974668845143253841936902011512210248010753912631828702771562983670897853560808958673546102960475127959392641490803116189766547389264713443275466935142973525456554972977434658882091271238458956111796943441403751874484179753751995676378199861273452206860354432340447329397644394715496633995814021402774836967068044579935831798315136565328825681512917236446048353848058422841806848838787272391173971624902372563617396211381339790330427875885075813345227914907999478671053089328630628946197325574620143087360854582982015055283102069552694555325690179598702263458653122104991056788293396361377969251171975598138132243840382405783228134193296471940748976804923325110456325752147391762913025371900204693430281063784399279430480015693520172800317387042491818288340162534701694213893606867744894054418626658972331670820138510320646028530437543480284157527931108456124930437858365085779480927938626659317501103741349021880846189207673384948207876039928223240577803291863694122154991741261153426550399538692498692809351283923902774251532735794243931882604865862996538385092132961034935096646650218191681920084757000868017604641196519812676465723989764407479804571385201101738051927096802560880995498690406386460963669811306159212585420576839894627466562225113796395422485156763104733951289827042376706412318891838107606124360047346251007013414116606442477004574905039156418000584943692004990080086512421104508281331679101229247793009668164538683044761427398971912908424748693462106104103586410138155253875180594337470360622732730216265489811530358471248070895026676314069371110930410254205381885867625637300483712145555866204037439555294039053511014764924301022699731606916666465299244816950975765152763626487781923460104730827351848453245789688114642179781865240662653719123779281127249445723088789547537128129718282445902437085539785930823660428363481000328630021060378608395803661393534370370027974460135464050280309453088904147879632637892764260257055232922842059567821229127282849627610395286364911811458346402387450440515468826189691183453996077843339248792604682038711033060198059693605136174060901339914465479671730512929483947532779995587782889191263517375348265411199667529839198418033505203477245406440410016307928544191493759780163270872661749991244443488760041444199564324930813237123381972334882694722517874055415325171409388143516422072475651339688012927146092327197336047711458779246409676185943337749676197380313029145326164375411596176210202160956699994549531617716657659728039719849231625106078403884319653665331338942767065161787142983528668844156114446793607400347314407442163908067268063437619086738893852448763947469231166710173689378989526837119469659371155552401349095357954615600381291386142990929997520016373522231710330188780721914588622437125982907042049352868889945510736478090296699864186193199569620839636374268990507371611709349224729266038959266442738053611365351403009828840765379713762751964809050997726404227585446015711820188843385149853495665617739636661053317138863145825862658548296477750534477694940527640900536776623251031370838403723939141663864578647610960113173026973217334152248363640881091517988340787078175442712706984513406995964556633716479422787306580531121097922371002366654211154363143868387555707533938682251516718554054244415044387440245080247040047871351202437200542565771298692678200756746796133178721131098923580664140812974656467230336398588138550444570548045691246400584954764788903209746309574517860581887706933952645979367946241342737824920625263346022209081577857610534566752174038590397340828728126082897283409796925068375516354267810870035832888932698208946323965364215787434567637915038067042644906718057817901587148625889504611802584681988027461254591307020952418307847053515297089206638358360697007992514275267731658684936029770456317632574485120483732662774193123703761616953057057454093890505772815660491965903466090375567789971831508658486601131461331379913965063299156725655615090327398295079235440317192787653970456271641236976699446636208574200417100919617745569176191658561804006703118287560405104397583143267415618740131802784371523115769534133828942856540015126310819989493339654621635391561140970110405624512125617747945065692327749241378519157843754258416243530242385374001276170726489401774994076956247795667858676921517209735034346201225374874788777826776022878126508478490388558262393412672459416202947970980898936483475099871003685365825319387840562103231421052834984975584520619864000578211705141699313869564692190771899078285359636654509162969564297412307469635840321730278137677292379341381015801740361538465390907043748730515854298915759152204812469136241776289010247532610179363827266751577470971132130266943273936074560355726823665465190627252377759240530500953932378853176207756957839632838034335106794931938277702792505406645656781646194858589902725894966929798374801946576565742786806510261342534809411087341250873885467067178834821068244229596730513747009253879950359920760917103077748895140575198716077987090099015349305197146210485043655873296289790994267997124530223568947289709456054098556533920306561415731971527315347194190908783268451663029639005598789813999875967903290782184748623288015105411858297840954441405069199579532394797288825204211381534309838848975805579549949641092414408077649737705620357051037872198194352914926896463746661260106042893738775693014866354232217585928809576203019446593149159872780288043564726639145000528973819956049318597363355110927949335248482026695743628845731531640813451475884381959286941386774731730244075612728823495458043045496615765348749625672182936964839518447784296669180734533911371293260314329486522758125543562309691441766607551634239243857051784582390020356544279256439948798303091290782506842551575897117353481332427690614016719501658059662382871117719631198474331143905663083005587640405757468592859922085147320268242281743425712192041923853888441562060575788225248257490152034200112490358016088328838802814235381386509362356051406680798172744621412707914922391629238680490413374043877968742448704752472353439547558291295188082686384828230154249080431740578740405080957723116474390663890734896115993305425491303784182989422161204312476286885156366434563378149619108910181552969602993998764677639936609566411064273486065383774494752069479152671188782354292598321525500198647360176553922849292614807987400056947262620472409519742065769582869014570920111351313158798909667665802846669630208507307295323910198137056451712746193388307649938000229573213829574602583315197849158518946400870849949042338424062869898834818310512152126812837357958699428124854253655477382861962581713287043115999764738674307408255408232061566953545071743959861586979445511669842913013671397734326003046225315406730300114500103864630466912674153203039878032496263458978758007829370596950676370088576545589685578781992936180454153650517722259401736811862614124170815356673311244772869376983948326332575991137417977158098205272177743801962126265619496320816001008168244806862581708172297500368743392811951474182017346563267758558436125585897355901578092106215979738111099057305158204493545940737348676596684675604724596418178946511879685631565230369757018656374784117316291558776519691872204500700862159282391154337948010322014363498444305157728022155127727929592262998081467688011081490560273753158770095157538468208582018701429568341727898004093095081029903092597886013504813500842384345362152135132308269639940401336704732124088267809368625026274521457700659197668392002869114656728075057127579372855462836579176299525730325641004828861564463360389444261563861407144103807521421305245107914915781908590705573051476308014165636127422531368675300273339994919680534967432829509393220848276350085220661065164832611190187586236259899831509080015248324197054216965750580862888590727569559424446935248818742357021826410391951455826678699378220925612240702608129884959508958002213990791766669125071577083597762526316746437960479741827457742247510151834850750483806969736423728477355191966992477944534457549087012282967683096178217058567693191818276473894224090418195527549398171383486397997672205228821600638551202031443198428703698688049706886008133842782976361669000199514813322787390020273396250932925035650322966965669349009035544918699994503893798889331585892434814683931605669690109144102320266524934182608198073900900744379460710465638689598760157999450017230974836289783679948659363463208871696007830970430276057665096844451802274444319100682443405838285418969481792700010674333092026234783212731900743983183958321213043656804630036134150117894140635761631888326097393841683099730906203016567332553478359109223025788547336157219308413347775779766703657963339436966567141030927094234136042952607990167210898415824247915816248958088907737344771317837330868932570052895002805281425968577366629672615404284004316268235450357238352527367826370276410263838002145880143998112588990524119575186611459896489088546081664588624478212396740756005676201023805913219819088404304743629636704915674654947678327645115284281642831052666821150902233669236389122904570493272507894269746621100491149596325461053126849252721988779722404682548808197423714017941072121379108333985974921366734196262034441147373477156459293971306626020195806481103998825664069878369145419702105038403062106487338276055899734436373908177172088889167666273437619492877077210615026521778293566318863934731103062190666748683896685880172547728894050514475858465850598140779666943791915949556784515327505284605080094897479944298058391145790425657354775438986581791973832348778893801555931354332611832412572808794715832652323976508063320732400029796677312558557820773160309153947833039234512969936642759477201954039243276236194715124423930057289985861631766001433506056657569804169815615134182028920335155741791179862784001973804628490975142207731145455459213508701039719528111711836415016358699336893927274782569824981360159055352060507985051428236783487215986475734186641654150153377468714951536814086600793674888077588130332146878335173675555750360454981100127809669804275287423784143778764025769869052088742147175616080842484729052484542178898674597267100929402126778206307363928856141500089801672911252577422591173393338147362904527320374839663025267065885780142182638757562433533645108389309804706035903467790269001535819548657396309921987481833212652393355567775511429907754251363228956692056600684569791591624766093414321747720400093594135496472724707583547208081028644030050190663667008153223147750847261253600905601634394222909606490198599090619626673431569854420925934786345885723545652904415611435076136851513361851984275977508023701729596687481748235611316327922996202863895069261283804141178191481040700633443008467478941646752525719331555868211877038020478388818700460369481985084366906399467635452748859965707231798331198793294677963110234041492966676751292901793644963638522605398941010416099998683903128421910923975840734685966599342809360775212133729615893971715016914374496461597922578421682468832494979411465952826168047488699484915124193455161552637088253440754723353255063100694996023954838617421128574961572523841825263635025802972780964735095900578289807357371512054756849975601542965196121395128504463027382017783002595403809035131952856674780512975218353411626007098658189766986648528773906069396208698016051413908773322894542339865317561252081770181494777736053241372346654200254251831936931509158232478265784569826600262533099649380363409190238377872903292232178835943361362305975652470548031330404389844858376608742441011936777382257342265670815019282299154481989847962169423502365076315347809111628268145693921742735327745068159712677307113131710632760101650344762323186112632143094612341253454244381000903373133150742698074370538087429224401295916903469444412277631542757780483783005838376142367947602729229587143361563295727361438631330524769756176355603684664340038990930875967311733503816558592744355719362339619270994200237736363226977302493110662114931200009398353245438994671418032703585412288065934942294272644981256081134776314202709222665738685152398636097125785831040328661968610581809253334684276490776072882761690132823317724176801967953974862046672235233491576255367627370015892471928017317228148221648354288926359210940884975434217198350986271139022088210991473079516417089466199951391026704794959151204760055214248638629129193503691054099848486190704651785524580623292380169244636942467990974965389050241326404713418292817588612002495132460094530965672562453828161537020858462109208178721743397029651132547022314754691606003409465000109369152252705170834107375489223448750220919804289881523577081569210328964115044300607277227055011238981400990497476611988985723081195471914758989049385925197232663612923927475773728151562717115687608310064958916136235896452634434256247040912045899587845054012940488514268172708924033733875558301421853048767651098815502925329660891136547154365939411378578937484012617972458368516768144394740501583872871158780055258195274402584056175269943222324794995593902940762970750994386265226218520519728446776727376408170864124738582278531096998521058851310893562675615725830387169666038234071419277217426286636383309613674576520865101271887299395330823936724978411308243536328965691860949590590375508107125388694033879533792446587282935273944365953816211385406055660692240423524557422178601294858823602294836483129504044574553332971152436281681739038198259331216707592344787046487859814095490080141902667608856354320548501676644130565350408886890456814207940135657657041646881802233131994605142927817090613991779192958658065781897157816034776730811283776841335570627810139802152415368763099815386746982980599498267562640025361026567334548434502550986133856704523708821255514534509221185703215640754067052521581517108316199342846702861981856332110627507182915497885715541787613333941720424293112237847562620236853147985304425475900936181971771918575523147065847437680082717385775947246686252702885485740443514067853712018417240143188942085234460062569158881815040325737419848162306881684017474758248690859704751276407650105611430369684309073660533479456243330219946505191540116873544821430078824711139224660036748426396738826237588274664253892576909915163495644477161666779859810124645894718673852320823436899602284366902131079469701682109734721585248235397153151672411967221712901728811267301152149076437522989785998371244415151587530020733277519199589511226471005497913741393409233444361238618388800669420426966319656410788809037581364415060667922928671577972237626169048502870851562678677390866894167578156507425692906628581671329673875724585114443873951054644913892902187388435565599915891660358632822288189178844332604386955439234652425683191778957122558384685570798114079749874538259828088147862388075391011314830793439440818045197844310053990539437421909617734074327416347056612476579177472180071369513898583869084948501256988237490369826873863504406028223028950022217503378165292965553511873377816452754725250831594528363755795028180116038919548655570840720794693274137106933249288282421095978260795161192186409460836678436334115094590911694144622580417799173849903098106408701227735488160432834538740331163175829333243836349840441943792410680909943001012983513532845253027133089891062585739374400489162357419711262590899162060187657774900964008075885146643600951307502223213218833976469393917050737349457372237555274893310031169075287934412508073546560171018160189102574598663671526547704436650112184363897557705389846571257505811252775634490354532675318631081756611001800442901176305437040939613749164828168706646199524558540594782642507160495134521387180712690251352632664553191502040674184060401251772111427483116991426559635737930498348283873015215620694713837324571542243728003341133752102187721273197069718183526313240293763868983631436941783299807503715487595454526407922053860308224856991294211076542574127216560795727643722786827480771871808556947933804793818417905885185169989858330142006102385396444443959047697061223279406033773177066183886319139626829801630175692156214052979632908492783395397596474968896464988447741959223836588767916527540021209153518459590619193017267124369768993172675251927354640554831460998804221021415010007951085903410964553129628130442621195015230882434082341941058449037433958239291486432331506858141014680495993678936795266485935451463383012784708878635100978470955309759831825865437139341576375233984173680144466614388528187010113107820415473224767810009563600548351702244522032887504676043764194971216585387985832205690679008454472822527178572395933463346770484815697158047491940970094172038953672298900573225228968607999358353652030023029304346407992161870125041338698439452860362317619714760938597515039505338688601490144714673333432759460006262214749791442578171799412644886640288594613461437227608282202254750472139104287376908871240652713227906060564119978943105164868995706975415744598714314023766270548114282085981357681624051609757696794902739657770277302123586647403739855317630182154722554695834807311827109272769998618558283462118827154882460929378455478756783949026772760140998893626464480357657757722043309301316002594192433851394093361538367453454447745480996908905742259374480388654212563812391152619720564474517197494357199399677858333417309320365511407748905262692676200241387990471176534827206578204453990175799251000194903832320283752107283105459849213376521828377726266987283965527348090851991532545681334037907887524976410841404766477870684479362888017674420077811476629145451217539305491931239812121491973219401004405503313437229051260198739556081118879940845257801295138741820457538745009142077684675537272638136550402840163658296448452634546705860941086414453007381405025313165121499014158125673705258197471460964354232578408199526754531145110922376941710213293359306350729410455642875308271500304690276212950558725763545974789689241305717279970414121154670074765895258547352600937012420190759318540614785344781316463434575865903008609243777766147264542401947863526460465703689125807683906308492209445384141925939120395005488392608669830000976690849574174032571169787545228740870312046764392027765151595079270704392852057299187467167507210733958013851485967677062049873722390127621972526350085111692724464740853651157198110400177772709773395036158879485953052852786635614810484403948177358697562204866767005402013873979151286498809293442795761431893216344869384235331910176190586546869162882896168277449749059474674304485724610165820873257895609936930916544267425980110820437852964603828324677632068693520681948785102157322155259709076386415128952604580234760879142642237744255212679212604336218512469457025595438347930070031173399476284846085861879845620316810373587377166736165150150149140079477050443917768769476307328648638294994844649711358124852355364275597278450379619404878222851265321674581386644156704515305065405577831158669663274690130551635387822586452505522534433022058260050673626999617327756548121272193409783153798204280989701791511398191364544193614731915400943931818246090144367148790522996817813722961667879503736826071408473812998799961772885758205947185879173017566794892298052639343140941314884694095887696971427863643730266337669598429539001358096315227505939797369328996445362414841264552289935294451323217522069751630337607848521001855085101741451921054709539102481380421454683666533215934599913466498709638887295956278357645024027945763886077879082368444670949587266640050102134862745888680551415049729767457229941065388431902743398957478673561707520950835728706500029644929606811798211977999636407824193230019420239758870351556498343051645846702213553256447060626616014755153259358325257448431033101612480879982162881663163405246929998208651524949575521408301777481106989279352296884036290132137784346018990792489799541191155858654342968246932964677100178915222833186833257441643478718802147264099171910816051381568705500135507874483663741164229173962309112070388316404421637141987041860009700854790730329777802306827631446264344640389920564174346902087954169000665545023059584079089939116605185504240839902389495644240269337095515739148588749940854444723905695966468108277240293818238988428815897459398996941818534948141676801878959404855045094436970447511401459070102804721192141695150684575486408627941355977816091190185415650850507126166898232714908532127876982736099405177828854798419042328324891707396869396439808879068292073722094602224120249257417883606676290776577284967913645170132981925262702966355665026805321945767676346131090039770918286902240840429044195683405987782206804405646731370992223891379709862663020727105702432599395353376262713341583405638911060426196823982376481566767595681745323208462469740062567519814548120541536985915562930484583926799255000995771736611680706672207094998282705221033020944722685658102537450459905215032146697992942775332435201130120002014507980492995507518668194099781355070266320122107714543528842912329260727957765075298593199440125572109606977249935605001310606510532562712530615204932432235353468903742749016867809626754772240817517661023173621591349647904647885570581041686942841507775954800428302158829469873339515851245001831990348189105455422156879465582225550670260159170371681513654897919590876507561050119048635437390236398932420918796880345823072352663562168860295423485650396290391866580748665390519767131567188195979148600486262514575408857198585745583938129462955355388945499907203055930777190925022651436263545895170731433319095472167575613940861478119133997545109334567015213549790194657305675893536683220069368596436173597051178288034590263554324151203806275819981388901319451455798420146928350234575295940613655944347788032923815933295705498190622653328489437856933031110161410198735545558493566947298520905040633627473840186812390533531229587444053433578456820267307674448006415628676610403456101880666228920807903120781516230154234988691014180977488412604543909739447114308182322143917750727873860682159018572061303685114895276964851260056404369917202232586194479111292953714588556335108519682625914446958940095072930354441653544517043639238079907724105823791876660842385251405059224841462937375105734901459063881357198734370436267727330952397328241249091655509538928081400658158175593218379211474996158851848982090821283663728000833795415722549495869768954312841922090542332599367971957296056262969220505470768308004785356305290766396853913012481881121440018498104853272588961715553689255703210408165647194588628758021786944823488018786962654082814415769239940851564203698553274320428537845628622544200156982276790699373829167861952752716677808388024091079193363439018650062399346560611446394684762065483003557485663262988559221225055030381285897751630425014304721245795168857709398030634661904010161845539776959791514212520332894601672827762072150211478771152862443425995264919161984771880351692645963686285112102944017008823120064843545965925802990785211157891118701058610715445313727644934594402377605343200093697279367129044401379838493285133117240052648662302136949744286423099524126057701696549335970968849488449897199728710505876246393499011466514899043743308853476123172567892123486975202796629789796718506984628922921728816623690876851526961353802122226493292047199895124301259112067434113509354300832385693971271610317789971544745058841711243710065285180247060333523686271690289553097501675755481022338016874052280227441959305995530764044851747905062891300191228043666998275790029745782461347292839858260115409991912455163172277017939308994684560973358547533134609164436313035900552540583754063440716028451851367572289212555524225703735885330324255060469394828828830469372214486053774931771480892009515402357559375029624905177688377593110476842554373124065554268221195812417974444761680714710943149298421720248623066557024241283274950495377738369082566604351297983489199984763547311499062613390069893569855690919965214283836188507076939745378204725599719545112289773765360183026429599073202398791438761802337305445595288907888119039773958933718542068534550623287277529640780789274706217129261158420610976309262911174666276657918558147040550041238744356919265311339726559879259479209309125179224107006057030068338913439557151397179253009689745853566696507816472444616100511584699960880753318867277346403947858157576803199450350324080737258100148233374687752286546140590128727131316018294383289073576623628081684247940836785546711200569897161707526773957269112059039152023597609919631748476884306632744679267293371077391517600871685209212038691634652399160514796038801684604990049629588768044418961657458593069487445942533246369183580585361385230587216186691022467327942787082334175038763992686724450302027001675505197032381050058811582606269113185146109548129116197990303186814134195607369047287876839211397841395014412625799471436954316674778871895272532667193099016633511199584723181776125134415154989521965060029058133613719879910244125215814969597037181396202435446273122779159499663585487659655561057982185220191893220782141520026422242458647415969888014045389357371678468199652603842480137842682733089989601622782573847627100350021779676812072792544081338718884025538149273826872079006989170848724832477986207220446932031650378367635509729668961876147249977179802588932889458533295745394164193107086878454680678145884979039718799796317673511288042945411704222846983970318400328303894763311049452602603417369073160971218835116239930724818423810372487328101797247145213267141817899831837205249886270113518053874567804021606965527049239672071314631308527457797626993664538577693670652663540298550749149693309899279204813479986430107946084177483212250498459564734114972794835329683846959916636426990746350171728181737347128559139014305519159298503662423295064495265981101519439177624304906974022689228594204656297437478390469883893388580670192510659444880999670462766046324171618762698458953932813005457254826892077909989247631821715296518846274803514911943976772355870344112726412912178274179683544836509265354523941698851256563173826010158086447422733271606493551658931240200242888850504122960141926110211342771320394917869835046991876925994147400595412539981017762090559823570017651445677403078275893938819810221326520300674603756887358166760570757097739908749213984548963748265921365429840471995893931346649864077397788486407418607021997483266648654849199531123363270243755708202936355420934308930086734729676666378160138772215841113551563220742329417826717092598354033046797229887563155352070752615564806715279092299475963859895868306965718462379941621764017523971291176579452448228145333960475648523071427760435247713236429624273296433951688732520677666551932950598337658784575976338948928979663970966394010217522247994377470372940709240421037899188619367320896288119663702773454312814900955663218715104544172721993903544111951160377305122760979502391712147577108349879932179114000369757986428567116060524065740796531597560412692946211410534810189377318470980085331904371729764491679678027488267088784510785998341330207509800642068508147650370798769808046161243929649252972133391293894724111474511000245460127303527775973046690603878111176387832688720935385052175208704232260333748646039723384555348332921023764584655590031461514983083472002452615876849563682142186534284239497415893888808267577778622282132131697089236964215965513520986864748002897024132332113316095175686287753186414723097194135239344376626418535308223589428580578722045814391999075615111690363339191724999186237236772844972913758604592591214040246764240987668961040340277781174130708885284874619360555408291648151323046383247213293606916767660977112132415174642552751013136804748185303659851430822411956583714606599465697649554187306823217243487117155116134552565614643608778919100946362005386385323179532128311276400256198212002342867054960367906266082344129654374644463292198438947996675678715670851303383543123217186155765566450049362886585208560888824535325141529818905948866210918934953447038878197490363512926182593094324253661259491550032414363303394484533785403227109631673108235192136819328693271666513661217610502062332856272000212443726554374032921604642009339531334840235720584091649141535615353499509286187784723909397223206028827323955048504483821596732342292037630931600184730212277968645232256302336236459314612704047062562455188397905767208132511104003482267915324947563892896254994577155977649751854648705682929271617782969068229435595732447541728498532867167305220758285332372745237483088231869477802353903690493811179687566497833331354164725208926968456101267093353413600990205372148035231466352782754962672505280917682581939470274749055735849203949227998103189387475578607490556558960321435526437598207802548665206143991314563184614984817215349419376758774236003614177211116417211091604793443207133855070988006408074405184850156499608148474902566888852757221123092286280583234614581156995227893404526713602847963304682391005620199400097554626289720916962267612334895861093087186544778641101285356574642916830659618141428936460309939066939110116042181648791900838586857072740112662787510092452681627533170395514954361878674627709749105738256883815622127823226252467176710223452218269576917925739580710783583196736341028563708558660080739093508561519559016124253389982166706896483897947192851581554195246603655151918424136674018705162516643271406734246849369297942123097558761606250987528644543551688686963810174593057097318378639670982901080060903933890342263178857469037490618987828825499886608731061832594347003636975164462031135525414986236601181472360791663843126072008630865103911669182071777320127321187547812107096071595245378296469725767732661554516558810547459823469433383684037826368698811982848059682075101895841344257627623407520106418157200565148636968346648038722911617734039380563823029234326299251736956809509525840636242061990966436013038694292253822505677619622560586824952313087168395479589141843096219735936084990842604893955986968592045496811591678522912733829252903833919872398598414471518570030210450496384227029060164579378299190084704207035706310416994397473477405816739762865926961689068241476465417827280347370041122827898141974346111893861715854756585432192931439864945764333661756735132069870250390046438344305088705699660368108438318321834210655669174049756094061614467667750569574312896619841122343264800874449947508796132215682913420500126983864630711982990537418047624053864181283943103131962251627927576414488812415000763882725856859297331036289000520582897576909519230332650058335759476427778879090191722588071597319803775983033821334708595714609594998691124867208958684079992156423769431723124212551601026391403891659358310089397291496457721820863226207707228692679141461000376192122245303545095206129317782039325638550463476961920478250053471615386112692637214988448290934840659871434503233807026783261440805161065947817310694332470764351662698285344052531363821959804953003563760510741075105558107468348596879289473360104349383409628838672271938203376067963845126261265920300189554419093727103002835488548212957292534285566434725266942294041003818701582579060736504365869985334372240163305731075269593199525226509705390086813972396657270244813103583970377934537094638035180402469219789833807074945210088629912179382523386103664999618761042508218711521217454682796942302957590533543062367384891995833806815672932797123951435102180023147694586717865097711148701522847479608713484437353799772867383223617277823662095227604030359176284179185663588638450792596301270553352997093726160841724194742696162821801233354282252498435639128337660849922373667355341235053246632940988298786165287981853645694950680378437315884620965784006046052649486148728022597073899059882327113838525005455145246326608364669845278289907289292188874275772284943638551927358462886066356734573215807762879023763516628345574142409361359872379155483670851432821920852703892592327994794177305155086373727807681190215199767182787469571448965193959956603657235230845848497856440647381394310334377991757095773090263376689396793149372712070164701888364128695157031303840923131696005682519815819154761520056988967154338625836576328123016833398057700759318433535231461559554165921717437972882956473698381843431279554824507078190874568252222351896779366281817755994375412178814373098443631256786132152009754593958848431244613517305836516606382532271911265019210536292707997016105874284215554286656670166277480801460478043269764502507882326458686624808505135157759463740069786906741074183078745800627432647477707045522677893525662138634075141746668965222966605130681761863272589744438971008453403988632475881171752062523474618751540232210339036301362861156370233063128199414530853251698913373823604359812397826155264623056627730342476224651201473726841489733087478488063302378485794188927221296854036021171400447769822106793383647293787470825750488038813548067810204210762396874439454487869341704128729640464968438169703051949424405606038606254553299739067983445917582099864879157955610461989856772684089517925186483986808061696299908321528799200547051391575304661325314308843644372719034659303983725246092363623380044307321688288437174232057359289837896936479795776270335954196615992095728542324651665822030473704025167049426763450125844695463989902717231396197790375796497762087260379455569306447988890726882877221232951212200012257702095073235977280328088255021536398367744165738776253380045824132316730565166829527971229311529962123876732602836103802390124070026868539324508880423710873479095010945680264046556093832467667450697117507063411316801188406731515477708076618506738365600675946842956294276768374255278411105710280577898480406421777634497870850106837714322343122757789417444804769519158826416868542846077284826001058373029620365650318698994914137919502780727486184059548961031205264282030863655425816148375724726006650622026272648782401716685250738712965797399801955797408886592807483943943826584639465474637515202682942060164285551472872244476939135327086278249398096404875810912311024948682786791094005587852651350817978804394750302324853539020952414523802067047020682504834229333188492330882595172442775152680111890209295467955098146798191674802142392771546176217295000198210344976124758691642875920063498430200166115789867795235002298222126408384008508625467774996794843939542249480486599849887482560157296236944317531515074447095336236052991255543147293526876294973294444644798871140852237004779937368235464625225840454300878066310894162976643430199684151206680773006244109862200543407445522966574831952543474598127642021899423146988948652073794117228372966331630888442386460069230577068524414899515227560485230289296964017592421535812950584841180053143023595817761415200614105907191250521314754673642704474625795909654858753520829911987811417418242534967304543257315306950708354018336524721847732379457765547651310899639463020135325484081372730787474465557928943753674312643249249912584321998734246319493892845031448570318175031027597717340869238250612848952585802011451100281978941079869024757520434095835523403823874872229057501667916252781613543739215605113108812862357116027696353268641643738193259080010006293012444574707488506520933118275409161137256138230141528623834037617827169320148876219402122027209833200582139371182487115829721019192912462599320540782137734356411092153061104027351232444550159036498638584387599986953936449876755091093557424754000413962621420577055218646806807636007766369868606991611732579324775780721749112454461781358167978840247852540701232516803051906406905022909104357472225241239256693839349478871740018702918618159255102090287941597465907880423317046635646163737166565895586384820665085844447853288019276171504164603806764424727044594043789268538071284155821998860264665490719374324199246842955972348468493969548183053684772111844481770191943948748717020052578559223899737653661948603906827246256203350270565992137496268962604059067818256813598138922654434840249708684722716481075417091684193621757063977539717679135281336226821196507146979969495121163780294836611776078957198670144137501068535387117438344067253461161017109467125432717553106337238541674820483162066842868340532991490787930109308831562084749121334828362414723874003068939672201985078274752139389782438735524577827726687851523868080791050471798808850475547585464023848107637811033824224560081977253493088746569942004765458404920296896903977366381785586059472895783973542525038673080717258524324929085397467205609782244464518784322528311988063642683918947146047356914411278113291828177438084313561799872249196419141397828346681109422218517782262660226016122588592492937286969377213838303695504578858126960994585260715647674428015493852960643320613033985457483700884160831963258432809850813653011431959014046553799933881827034347110432642303077364401825468585395859753249218046551995139501288299443943056334415463417337584123938071648640320221839343731999485788060882936436004440912444428738739238968992195380933475404863701661002794860904702368882351803275257438446848612972951797589533184873047206416540447245352381406192072129759397412172281486886373522248522300692930528418311686134784972546426963108310855311130336653749566528126474606836823475914476626357354031562357743926145794113731229386276276132846721193193659976603822119928521743556209321980369632493750130127323117054455780521128575886302681575671302424271224874208539295695588220015460973214535282452417037864671279140211972514880266959646362778124622527040580479697444579041477066047494286358783245564024974009786315875437168318559994298832203765535404174781520324831516149036652445877582009899985643290159572923813365460948831023917137304054102190665702428271482993585209567392938861845617427426257827150079900680014569897782102556529961838118364428565465337758201757603444349797660626474076319455541502673956868041323775704364400474828235562434972267229127361460427692556674231362703322848705366056014290456295088793867219943119838303338619906912982223882344342005248152180039805485946913466828335404923965922764116719638170970187099190578261834613573997767156032582923426903032082427155333343676271407539815718570020673313377309433581861123867046969804824235255077710577400597371872197181871450989599428989543423908800694470677302790274222183891947302668646166348123442752384525124226144646542412337577619554239374621524758771673615025727981075304385307616095313720248806527854451485086724336783905269486378094602903328306342487346817696581118097983603093294299682135056419592633074764364584030970664848825956867868806411971092814893869736726285429628215043461363633392049463307506114158841496258697918863364376274256403150715531372592086471574605061788161996784312513057258261913807771241532087577952982686494508799453368511292322435890496441476260053522630459439843446348467296507740167542093834657297185075338074608223092210856730704201337756070455610216808848091199396745729300559386253836345849000390655058817243570187563919885784143528308687937128466815725985214931298341334258495045082337377221749841978260124133090658484083696002509821382037837266984694927724081280573736163835218980137937362448290614209012069736586930115477832719462634838221092153651854461480085631286597514949603709985930329049450376090688370943550468889355121012427102508208443266766997440652343413695612822081942540681330944069952008497026953411499628604873668470257711928063710230946811030261279510159368067713933363473821010372499546751219059815181167881829458085841473889768525952623426865908239137985464438028655944445981286091196891696287340771953715852636224768364287258829387526236130586317312050782241694026608316607420701926397419729916532872912147154606232809118452087874469221262567573175748314287964742380854272783500093952287745378253798601192278528060653546094799571528328745645813150207960564432662583078210236774030036236008050466339156701449982108737669475365479429315417092922789965129165004563028496085415444492588412145885754753744055965393644877606859603049087240260106337784586541067567885468023859797903112527931533476170643520487258875933186803080010455695231947752609001930693544357584551239731118701181145430546337460149572370314496821936485899309315626351599886238225807468871591439700109201418923602221672434613758763676603825120665647974339454786213736292414413862402324206388560248074288086295649646571009070244038572301202200406469806219291316578544704237166755328957693481153212613017188560584661473867911125181592020625132053906346865679683594585107770242470644781784388223728953025065020047429371705951790141198050666576251132735512145976753548397973144654403426154520281925726222485145714063604737602219635806464104578455596291462897910664423632429207185686057989493972562225980693374742618943514257663336989637744947146675393067041601386814339212255569727081240004784742614736818431450049554350902093735017660078041599669531285838568692736355806372689991460923228134005551884041779507879331845414365417035412930143440314873243405166535330450460353372741741784262604486436878708878240265218266675536447826028757978265568259629724071536972462424254623515861689656952703317787064473032468821110379104550800531166119134648189606155076365398391781908601830880477973747807897357839997280076748805522569448432429161125300941025660864078452771008330356911236041066731158207717387160705695203602134326286422182176731344776106801524084542762143128421478040722190525042342531333661825136276515747398668601874549013244230163801176151689486010256343461368092591580330502990325383438605052877580030612583699557591261978084169324463521568444486722710188888764894948573923919009394402127180164522737341939440652708674385707312994781200837271212481632314430904012465388383650425380594000305303514633113973056351929537066633046462140293496291410046404402316649080183263047159375809118859869443755776966259232528658856226115282321966458379742070575393327773762250125640774435057881683978595487472990080769830813284722217084364376406352140597232725856237539470612505566766467776325128053366267700948182187822649853292091378350652848219499760306476842361420403378128958568797197712524656175731789316960317364126525338072956000638908538930989677505120604196149013207340274087890871866127261414912608738436279042291061399639212790333538147918949114877407159540915946575278978082465732815386387685720806230655375218750780685381393730504204615485107115331360581430590539432932293589309960394806194207783159698736468117684924333799175436916824063591957574656060020888295831942288848413239978781381442909890226113150235464382959600905635195889736427494788711018146262419237425312305595155904831648884856294385281442756937564410342990058972454855923140192244798753532536522505766633135247826672432234333769368769961755308403353330939143920935823136469456749223126676981676763103868442179848174554971791652902424375995805615002134539037477330097372589404434308974463546760764091284235867710334907319662972668848969390399613565559896270048671893653382193221038858655068609699245255138539825373197947703758746064894823181464515891749473250779688139210060446689896312299447195481214215837346002234655729507724530001134828692708241580247728409123985589743607777371123187090185776917706554659551962780117883881152466730113185584916355905444430187261207964761438613279872540286215631550388156995759225888142723877929506223924490040262087485133631797665509372790197536184795110886225946561239861973154717875960620245034931855365322344644294601274631364943825107751587627473806510908214121884359251402477238380122105134739761018841409848044693327200139807431258359476904816000433816371002544800156716154429660237039866695709400766646891113958060268284134352303926275924450638146179238846910906012049001742291557435125527804098864217596707361738565994968585283064648296911857571664868970209862656907555322466175137911659773513944704222226161246974616307313755832485970185411513250578353057730072627980070778716578369473100367583234040241526824097355298476134957365265937730296731402072185192752777651098488365114356822300368211891162590243493290583100851709658827034433088049493302445366401864136022660203879477194554184420029542721331903780358283212751383175894441268859095246832115977358729058510507008000641776685098159516344838789710464777047823869276271031952231917193321760303373264163503870188667888375036956520638442452060569267464530386245967951007110705334609578775103402066603386903678404934078679379272215666885759131735014054713438700290818961286881478032548928366643400180802519550238767410449303426666747764855654493404226956640038519368572747156888762973614750756624042197389458321492156329101795872133495847131043446882999163350337826716049385226899601107043553355496835246177348173607222560826489932224092900919289370690237887783980518120828544008507749395034521561719455336423591093926482068594190079850172716550986564491232237412453295814042462040815452187755286146775269686246278635416485511482759222299336055277402040859592660159958020912960878660614194548662420950402725830927631952547421640083075750776328045727827559057800152680693650544365955002183328450020121181841299293925302773000627509384950461730555184460906284054092076237820110643455417591317640161601456331469009837735629567736036237928753346604251923825507779977603082573748863207511946923825866299939372500838235552207479889748233041249431648245168802977084562488665870540037360381154935674336929096190772560454543130353622839166574802832307908607797776053676841897935275985932843536774959057639587391589305911502211153547071611955085399544016085632927550581196495872529003866948955869024279019793317474067176527946506205550661401040926203334644302512235761428961545237882110310524350915428949134413331470890567972136970591798123269400698762579844493666610965343494298361671372820188312103026138591699826747108309124305105736452296764110918143994148816906314944934240572487493153236967642803476068718907128755644039967108973740842382632835606629215138358574749994540212080737208162744589240436258390906600812274440842948726803749160844825039273437708114766561032971546391170043685158854712240017428242199955721327934576039498845950155953508129216603001872281253281126048217413948854190541627170447699835823357440100735545225456338925366200836245943256974475627032751144012811555900163022421082901771354575971749856368441021790715309087372746835742554103870975293300211130515304972513656029504108548112227264870697251598574543315074583487674869891255369839219347838261102043812358013579951567717321931651833152312988636219129350581605157499645140878456564419930481470810983292117043270930086875751730186452875469100906839369756030584829845505342760771504269536466857829176830365094686893135925052693599529127047067186370033412032993867522461658590606558960598232581940926189993434175209905105157687152537955673928630173666712379597284728058639620927285505209764104806485627401222047124398412622986899144713438334283591839156602108031192527747346697678024763110626356345764356309324302124887175672520037734911909320027584783379747475500952191201625643936288348270273214719501770418483631504497903238624233693695380095564027083737679984829204589478604349678963854165993272923040373776989689396169011147171503473847709517366699962444146786526808807929802096512360076829517124003935278719818307180713227934725338812654784978178350810647138706637049054547266780800391721769989758981179940869859360413300278738017927252038826437080951680787524416423655843712076551783655005896826685758308476285518452716196615266803604324161847260465378965784147275369304103999754443641319051141327585508021213899401467750586863701875026458553003639326047323420455237536781069877298543855243538397584915357573319916029421934572360420910528440852850068377856296970409172325010709270791690491716927258100186308128777321180146181696562455482608441786267092535625796018865237915413046194696259428997678364766276099020706614377550152397940604858601211074392234387815430810137592254001011861307205157365938431027986085137961823076434429717680010332441930786978299417184744074863719744370809209541678728876454516632596014539694864177113032373091897745950004816075662336078497902684266423061102590940049400376699289501550251312552979761302547009778035695811317809237051497652510952578176487638942139195825879122322566369548972796579637713803400440963250540235634644711887037473824031121789762186352528964503913572773243074133422765120815484885524944214717938241549925443810113558844917253034336371931942373621189896086342045235923855893170930833971370080493414694240166392046458679815450882567471383058245667069627438621219383496108374695224777219895042960563508929520268839066415370510789054816174630440284294918677331613260996109292909180226470672487549321974408775579087823006216724326768619725684469774110789075225355642156680864311777051533354107303642806391060784932524680983091839187388355402936279889331115182101561357537534684719029862251835962325425719637333477783417294490740998030678819751375396742350746181980145257496022297672399303259962210404536557993100309790150459318949027833189435248533881333709466699108370997122247221599631763767777757004056230400060023221119869272409596449615676508307368095082729394569816820681990108408510639344833025135855773116533647821247282920819411069345011370768196438651018849004312154667282636788955007618379401003686743258987219664516949468316775306640688002888802577891937621532485599275328934979341694008358144728599993938852025271155240490278449486850936312331251555185522486831872594850049475477001422601217399858201622659171942242879244231478470653051402059018262245682328714966901439662708719598540282330153662266992115480013173372955013063640380931013389527342549160024186207973190257332449384345412833393426867064622801224641192114824229264066818120604236491922397732300096260173864445203579442907992690518593927008480462430811697356693518326995622239014870072102279105238140256142356555393184122414821977507221360734200287814678841814254208140181336316077082073149234561183141571470240124990517089891583061289169951235215957907672335200200004425104323355015466648665469456613457220176482100581668826316241012035612429257760143779890162218926903379325107735094110698129954751794745631011777102236418159687313357524150816573149054318517363165940896286034018990164338055954519264616593199638876226029874222191465922435009196446872042034922971668573507358890789795407945994754842580282809378525554838025413478904181534821073192759012445534859433138975992238529105080742617766945160649594462281834000705782438905656756621546992515221438715693475190698108317468973895289184979236556909853513286567975137957577279316187311983781091917037512476925094933113590243636787852499206354785875233013106684429630272794733011936245913969488870083440127907870405609229768323230955715191882034204712303005953981329186243210824648519908004706167406685071375886119078991827049177049972528762442898606068925622103750102776883004143149761137521275865100109129524695278344501219925236459221890577335602129853417884100988821952617500698180586848045020858002275649041335227282396446483189773497638965096629719313452054607045204831877011173972680220693688312697189639804335051000758217724078469679999500373498321827595200149763945162452244442091762948377603822965517551960074302342056598031535391590322664572088775479454539849801602757565814770072470772915605740550817936860034567820580332577223534488297216344457382209034126190300924260319670133885759163908887522884582861231126879630897405964936695532889090770492734875318391816641765622191144320574637842100714728410399899796020607235356385153917878113024613146968861483610241200751139348432886002814977506758329298994506174245166359958062321869629390737662637288031503118372294121218468739731870299018946455959489328243520374967991118277954926520080176646227747331229606587538966449219973526304612265865456008880975778706530191610752637114243754578423169961111895594290612702652789029061789580949703711095296227848617151985616979353717338180560578515703369303875915195067111905609012564751164532304776921169986646828784532044055419828986029042479771755472382010855143496833976614098571003866546335811221070282579516296607713052044060446617646960647766091364452455277203001708165584097909090554653493146389934189217499063018608743193721974430244618891237734525066006306574812196782913198615265459410923878555845577103829271745342398831413067974309125430440013210451049975953337473798515207243375123147976724770668196442883051448476806819931233349299192685710538446445956561518755252133646143386122272965538170053493573409658553348334048687864608204701589854586169031729041676800631359137751748926124769326999121475345072887583068529936896145332676242648115669254784339409926712355060260653674518881132203322563772710822988814562407621691998881966071440132228108069638210682226575049540943643639255871984469384647382561426804477354300507832218794534196950508327624829195566538192338808267405307177170863979157533844539853467720499433711427174293654562416509730856406540797025493598623099135987608318066941305311936101178324470098385105547357555519195076800737649136748939574600669942309343307070139065978558565241983043210827800163247484986242378226292790467196428559555635984255501238642057851931032828265354752608274900314597372091281113032921711969716393037528842872120668707502622703234219360592131784462332889446505635518026034206436557400594788830145442471930277438013953283408294536694986481480410677404785807531322489465274882923974357463450651738205032807314745932710422667274188759611417660866777828192171243308180162663758905473273072919659736257009963512495681439474228974970474678458318834229380436916907819141374574031324204509683042066577083510425693826438232537335704038936089665812860468351828870785303858690153717817114939502908960664103986149979314619311162057371236919217278831349712514026730798143624596507143148631608713640968391881247940130200600033159461431471856022617646925677226787927431814446167402823309836842268793784676747139511001788247952336184066123599087177261686538566291396158312202307954682030223123927248158281856683076170116730272746049672214494852491141979547928965582830781119939134760914062236045583811188529102052066903447591879455585189554239914881454477211040049769200852778811793436553641483326998752006778073396083797937829510274638162303560251768901174025579461521419508429719227919516064309438766090223679235459403264153215645183914814704648331811157820628881133398882145188652234962161110397705160752374756263021502528270290984603854095367571272685171599127729355288274533932367513948487576101928361330715521868266649580654847183378923537694840711178712843211973968357741552485069395522980211782218688423963237720655036921139550309320541243311269327778763580481974181343535353153392007627036820620800787932961198204074374186668576195775390730428158924026318783857862673659122898320320462272220297217526817667884839176714840247451643016554956363419154719090252462377566256845937561040244355858605220713969259061054236847859206554974309319203464823875482484904998467564578238099110222944420826011928069300865735012513169284959114864250882943608878349756779319168833724527910260823479666396508071995311424360628408164737179163235759277381429798381491574228854138454782778385503208344005182706993769511473758853358093676721222759290941968477347481931809148142145606552021551317496620440444471925360011780993625415938186462287884156921436686814962935165454919194704013527019546813981446424417936341288511468831049395068188718117989486068216242869222663798795115530093576275824843503430082158193590741558988971802632128411357031764851363399920328578796424032498421294944378833183132850121240193417518939151662898575675109083321640588078133113644165492168960626457741380518451499693512926588900297278327642993922163803709784332580784025884950514437518758928828724901502751000139425560741299825558919888800656249803094411730294611623044944713119456330416898474653099949292225835155954389466525757540453008177563645749592585954837801446880286827966015357177501789459797265010636678777365767794045932218512589280261629923957508103675378457188452449404921597862107442388302106514467973487020852074630435443506483116968468188843874770438486780054597489136909262721940549654535855978133689284088617756838279792189092225907063352918416933778641750795963614240494399526668394323949928909015125403376661217233998504473776536192741946849310797234647132360581118267707369145089146329639681767307971051202029724192413659377970265821295630388618381857963960160353345594570809297548577530115933599211327179809834660763543531247270912507385617141252292690273139299430801187477796950411952962014694005925618688335044108243707324947630423888397379357853595921865265245704398809062754742780171125667536867113176911860746659559120537090707551223418287503188954781141274105459615836231940585318880939901971954650308662968410291949968496865522209053093255901446597638592760106378265149007677165516232616711193852028667753432826041542706609578346597261872119823800772619003202324620632681350774323950710587660590647176758907792160976575535959008703415611043373148640732205870229915834330143134500770370392177623452650314024443460258718533027906708106166355803776718725752475489873941199766040551126888585012087024535280819022675252400168574444308272853269748037586523877417887044484185417688863517365910493099410334492896360631490054730672997976881811703902419943833083213132746517923486906218216118067835282542978302328598088520695842541233357126840512490047182305700169228393344407828013793744491858973397355427117383455792133781845016581997245698826383904606811955432320920894148618177609574742275918572611434651158607575916859451980543050035591611553009200668372536661867913712825407376382663649943256108822243003761332130359835959245503197191194332808496398727335456485287717505838141943079667356832173128032239556403082804130415275351441888023425964637022083331667982535503883211497783585598420992811683041099122239176044216117081739325249899146001632412025684766702319062622338609060549548141947834039207444402293216274720752987671819015621707893847627438609193203139302545501911063608066817247245311644482153706546441934305142478427262705352516052758915051847144408548847858780154459300087146074388681293325561056403492520043072067056468526039799587241874601300487740441045121558934849333669579609092408526324082995280456739120092662270600278482349816179078534773576292478689044121832919147273657405026947984970814983552817886080373360949158456786320343412057267209755499783168866663564712072901501890025444084351610305013316513737915327071504952825651302108684507935653331988883655088650677221034350575755583903599961453188571485215390394235852566556266023336459657014152840502497105692752449991640690313378131401780494082127249125683049132777978494904776582201639945888548145486393880272858903496930172353037367827804661425524067769031223545666540183130299011378730371271719078592554862290095973846377806917991257357775291867110258092530876114406721281567831664971899970445811364805272645088291076973541524315699176524157561600894529679609716364769779010849700885757673094927955881642548181414668606357929830115669977250721390295760219891042209933775582352940445552059811742523491969633999312278323498374973986202785617613713100228274317353534537352589557813266231761503347284444333500527790129935332669066028527606654660773401282824887683074489666701590547577547036550779488115022951626781288952580991490748617643359628109381510590550279899303486943939024514011639960978440280391092991073135282755513680210746880339332277209430558780495460257695791771029615658468829269663384952081867714094015672318222665735769113069659693242647376992365768736671497731634569772295294233238756601266127174462764620021161377274310236863851201364316317260259485172451129749285865803920447842748942709079714630905476361487108429535432562935382379755042860215933105241887190023020321338257085966353921933072289318030347288849006166085882405184971011916605300297915914851031964874693035548914074346225081033483265290418592071740146395530590665126579705234110571293469925241984963286862622786752329686471340652996490545368719483729782709604205293316642198475666411474849107782965517409032335288486427337082882917008920712613897309580616352419083367299395504693580885002968173756367238347212746094608326102155309560645515312861521720188122085336052908655408755998006947913125596515280987515138761377113128778193166796032384137822453444079829703969471444833758904273599010331131752591335810541863607886152309919871211593120875451503588550919102173872685090950282209704359677619379229511061436877455549984383031229050970576051636658009256722360400117725808056486818944462180580058027319535580046385414293488193894846902589352736237956574196307158676312789149084449979249052562886617311155960084162733542121577037242394716633580460389132986796551592744367106343672534212113449085604625125000398302077484215620298691406329999951095787242685659807571008195604173510906114753179451888470253698363570678076390648778166184380068395177316358172184755411911733356826864483208077995522103902044385385098631673258640600011804696512684774156816106559905203586623863995902389408631746319623711142004768602453530940892635117825005227074835001007825284721537824193767079196400621624572459195379928927171301742764658976218878637509846377175114564635613481188126462202532350255751898245640497797215002566799132693959539237186193217074682904133776506341991101896848910506137638558006076523015609092819407014360503131442070994584574701165753802990747176879075500228615138890977752294244771919395436962849605309900481721424903043175081627643357640274908728336695795262511978427298587004971224219645975460776263079813674913627272798331172159452745278846366868476910527427692044706667331509485451286460422136686324759586870687611693478771871854325241644761176271649370503905414289213081383309726274688997108112561843266834918199640500253349950614062901382586869731320986170365094869331038247127498113496508089200098919131685769758907926957009186743813306293687432286620070810458100957274148483235634280559107406920075747384160321876848633024757876571401737696866791943180513163805437300576570444940095085246380664854088555070563780059319906679875659432236317811898787224896463282320476315092775539672081744300376655822454566549768646722713943026497642982704750041377101883886737827576735121133073494954042490062885956874962708233671091107288812900339137092241149404705226945161163905146728521929744790205782832017162479054330729070836530408439735218437857214002783298155824911686000190227573368436571898778873883857432771092323378683266695771049285340650478221700686227128600845382685158198375773248016313236626426155454714213881782611410144929396028344621166806774822360749048392342193592460910094156597052426367986699064138938190765754764128697812543865005603751000925776833017761292756299767904107569412880860259943170508549918417071139421971715906161599148508371500568899543231867831347513155812700985840830671443792669342928297361932537264266177619655974356850673564031888723389798131111031599419062517770372884168907075812505356276786682569402423421802642378111607206946099540673910311206834619026504664690722965590211630922214330383260072702673697317739969960868355355283883295698213111764063500999939950956784626680457657393057062664798897271775589706879657303105571963200792419132762616784462669277239631548168611131523029969438984699358732890946405591104950140486692254468744959032367178082664518756184310056457872338216966068019857972297157542898530286534972619138841172331623130898051580482565550526365132027785557125392460120125965424447920876233955365180551206372294145682351466520997694617720759117365062825399602359580654485811598409120870533612030300069036827532743116453832386221006621150972180612099525534815560744567596850414679939441442213205820110516251779978905006815206504289042852897584455472353023335617863969275679490270795210189835097645645331150764014710996104949904821841037931784749838778989012341299716696333005902257694557109215247167677599975414331281818075096403625462285601087503569958248977502638259779761465269261763106998814695819189859691109950799553573401148842091935890110705581233682850603817416744321193563601701262273057063387731139835009279698659067504192846928778391237293174180512937334508938340253322944327354692622615398171866186378793271746304336371205801856027034684670639545960640305623919589618674739805012361704699664725730033331552948797012586384547541504152963080977861531199488495193361531521864076020618446616326022178940188570157044523330623589457812294368133027240896462241920067145819087392406343813959928894728582975854955952042871989850379303991502186582373665109498782833965755840916215302425083088612713142015413384530056003064628963536551316105404873356513288773634065990437796598765165399668340838609730109412539179243548095972546362937611073724120972892776722583983066385370922471802459541455626282140260735600592502850643027729757465795187455954654262996198986431224172803469982863062998506889311013471585769694514518882422106695184693240938192180684453344652350102898916196333066514580399784194600570375447382754685303901113482196905969254412956313433929340061573045553325764047798073871098321056530711736214588875918322517934683834741691629595775160863083166410458412573122212626443691131135556144561807871825292653204693895441997986238040769218696635451264122102785869893380410752437261148446894108137533174123230136712981955894206173969487157979793189429905287435576401632107438268417055183926057916874098860420185733835297866378106449945374793261724945085395003515600745145059485898750997983042438565780055885988135352883391180797560893031249645622878067760466332058339502858394864995349532141803123327321036347079660607973988867419464345144575835951178536119493855710539873711034140745040788268905285795798026593065828637953311736542101764985555439223394732228503109061052773257454292232446263767885230918412739354311375361330279086720044181752016979561978116757115143937418654486292271689784172289955352406074479804045450304138328732145320141337211651946246892176944470349347368471942996848204110078354027541045860959117530598199379314605111963319242808669141508007984778732915925274333639868013186425840122477632668316224089530138011708890660547508756314687678164386962522190363342957116858542499025523100702192200541062094371676572426698640252954453941143875766722701244115654852503799319978930355821245431539371029942198294660890001259046905725688549654962186011599250327209915895157236288609236949478344178890636501191134393612577990023297228676208212835181008084500689696545554496540180025753602738217881927578958776873497029001228397600950578525308944596139546120252678072112839933393186177935116049138821127386967560566270107403573331010271691887025581422459179845242838313397231801296588115769746630884005050606001852407778934649716347268984272750433563963411469613964023561970938594134100785892479380191125350465783555807586217917349062353540990321310180271292697866240473398482295689187061654967575662164355703422178501586953730533381412693850108497518156081304313483725511245800824901701828981314568824099166466966481892929849700766209537995597793094229800500072126072228854509837386847721983189062133496472595766976138470160860731248066174447074832186300161107810532286525612274851694306776676377713020318662148254973125132461117478650797196277620898356423977142457683335140381960620989111864879834958418410490137435216314070329178178882243797202536521084885789356750062056294933618794202873022396949381332502085034492388507264736933534817841831884440209661804949371303387672017720480779116685636836984134335294471886397060307180390420319484710225108445976001012250313016267917683966974691338531721573057625503679534783665234319526653381346131913339149337248302136095811502864162524412706012322706120532738728921575143191466950480526096892376139338075739390708959416385270572941465347994103550408586395117199058548705167494866137585729014554503600964251800959568843140449406074782617654769652314074726877566309664970908779109549742110606820066437649734455200905006085236112348518980709397294580751573898166497693051218215941730846953932834429588585328489465834304513884845650256008955480285396550293261703354660600579091559499553216775691937755342493325415322427304325712366287270740027047570662772835792843374699764697151580133826849528205454953626070362755922341145238962640603409624384377466563977639766319850479442302353761787158409157453315873460657158923812460071544527070572354662079909645152946946761155196958870455972247831738580267018408231402468765136769252603062822442425484977815046589803873380186734865163733477570545509740201668696550996888724507389510211935823353577729645210847897078460400144795050504523729858886294616576712771195634647825329241370598750354830344022583007726504765013479786291287130149016978271562987266573971564679805321062134118797750916611105124513677808310159828908036353719706630458298661390289197349952128866218362145846869852596076228545096000065430136138201397787376857600215341377660369751216545847789094858122935166566522860105691712223875423347305329628789599990681952736588519023752733705361203339614709889651727701227526535643555126646667148938049996997096587956184521039021011581599594837813193859428012582916489857722101553408773623183916537101167397458614693664776780001614617239516372025765387049485158235307741016227430776316165266552275890360069441805594924440306239158713225212868191646407731758833195991346795547061472844215068184377646095958613410858380432829490775952849141218961904892964970874085492476402104837312888135890276464151002634289410868072791347140108447933524875090439990685564966340706717961436396303825752128117563468384053142690384847524255893171460462853401985644914776956051423615929537589187468565658692911843174111504585288501728510293713975674775460410823175424758379541791216950877625147496944790318227650946804729457866365699705725451714530859352216865966064988962162281201144007767141812063543927321145847790868867739391758878991737638240938287176126017902241911592702901615796456232233125252048980255722396429002050167142721891778253417412243112904992785056127816675181535658327840792454485784089471840574516754143022919519757269654078903528446345994787568312132366074236843591293133467863263648901721490868923661523058127488219746786829724421462097785095999063266288066719485181982774407801343162224269028783552950250189756976596016511963055211414421796133364821299247341631302128997673161856926819490659832914443423721387792192048785384598554843844668170707540748916854175336853690902180736222483980250315043380260635117927210753964022284985077928837153937278211888326178916058974856390055380702698418377401373661621638855787562836530913803497038244502172996838454396850304582251489070374217835749831539374911992074438557475970877317241880164307976200910493615307815107113706686450454276760339721063348572414846791515342969108823782976729903035838658440115859099525641851168041660948983015364209197318656754373463587512079717444440959470390134228085871887026738700861032299629066858845172952984023381891839465071283122568129450174966106194740630997951769609066346896134041374368607787432072976361683295156213745936804816413845998746716214044445181472507564628642996454267526419755734738551473382674417584960931457598940867011070571556006357037925196972474334350031305257405907407263608551060321620467323242234113977408982854551891253655898390232331754857640264185898419658519398022058949993880254431866566569866412488935114634197659897383861662589419806971902882610156483039343963592264804941678559822619365394759451280707201945405009420224329958333190211344051536664752817282530839864039754390479092484080045738986886861995187421776662118718772069202828959864951921085241842107124385440114330805174385706840496237144126623067060616984774659934000577370201815652068569738058378828468434306598845884259813368489004789769490397922441068460542000439961953604250174501019389833632089772831562292102583202452031878932887563080326416588105510583347377638587143351073127100767473430178250841837799186921084122630420542117050870263706610269892868245650758988004080919490319994498423030092086941836786890064947149612690815812167443058126046430807246387715657884801157893003169644842057479987992204074289038060211915467964507171741995588096933609564151303642210457443914354525128260258011473771372713106265187138717321517245910791884724499426767568796319774805573178043388714261276343070398013797410485288952715964224969031387051475711782787854707540632337173414398393649435917121574274697197664818547762945187147995699592861013783910065203549139474180402649835940558160694500459785457863164100158835663692607396263414416204026586275094322922091260682472174629654166522637097227297242553793484458431911042941746011706443025324308041820269550399265275700660714282802451589266895344374943453784607327055004264459968356388111605134883935718816579666422241822510007610245816393467191484698067780014504759909089618660373205495779277843896484190669729734389423409383496782660887222779464039023799579476386453536380046867533649156841802809909496363834623689828028647534154380955700089989332004521569660248128023032617464885657596648594406792591405840993022429985748808480100344642614211572468659614326637405124880448487544192656578670728673614661563907837059903743218151348044847191203425019630801108098030138108413640392448087929037603888873957312456018729410633223709564820997361798298409195367824423244057596229688732697744815007791447555010944827078337483099996264035053035605731058050163107131790650089578840342666610043062125710268410746541608079674925654187174345336473249501942776432842543281986733787068892550224583793836679824201147716563277314262869134410063642111604135661204215362599578104410733185197995133469200852635740392576377595212187335943648755286460210250283770234281877091450877103665185098274302351881327691522615099911112410490413686854176324609802825448630522418182285686779013275574943539475978722507656224923343325086859479049527182114939959623080416336166682215616342936669082458995345859476185709457365242062502856455993143652537773446799612255548964216023794155420519105049703076142603997058980251769240842639754703692332278298853527500305275859526690338795093674399560411947420603246421594556189722596899309906255805200476301751914219430492115554597562983015877492590547757988989778078874647737865738517438221847576665793023831918701598032538486593671456468103727920958900039740903564495112552343467232887905210787272939564330363983701490854118912028241275134489655744891058028117808537554780422428147867718374793255127683749761103217041462874099946877511003146261443861583089124686739072355866327608381638927573289302430762733787208555523825183089508010229845123406638774955377226445757465944938025324982787977893607163643595054093919102204939711632014451347947567460199913780797170124523734230531851958493922143250912457805178417861855862834675404998313355437698170540960281494165046152132426276413600001400958064778459169390047990020626181438990063075571993081767092718379332927900813696550562001237798688050971610164598103870508736775084863938382364613431219921782074052019813937236999822369954199988314366759268304023155385319671934115929773023253280780277323362357809041712518728266757523941650734694878579419958512655440135304577570608168796313575392797500267626637479903523293062060281606511867180794752440946196856343250936262964593597233324662791924435985772002637959690524706286722414922065590582934773295316134791741763543882056533953572608305759330876040202046690944734702548300998855761331934789522391056784012590365574469865792472066738462764391117931313542527438723514493336880159705064886997023598487202979330903678031365027151239236343526870425912772258481928230899014525485662174916104621413503749840075277280979601854690086739203507855425687046294405612008842807141187991380699879407517078874932409267949607661960828736120765767326716481161960427779343534624285085717397910853147735478299283868199500399184056164956850536812301807714221329878046064317628151083250867230782928166334789441710399627915145980752665316164089726007524749581191104589877266468563922610022999734729207848232716501588028993251326605719391956325658141663924084441885235350261327430736576837059800977643576885353595520878385840846454090220083226598757443427349505883081877971358470443410619699649067620212840637583661819490974045162456857732706278260889725298181337981778913825631313495315293597440507846079982030832757780031863610037396919228521955341799339222320362085043588203022950096261192441878763273647445434431157403365181320760504219709694379586996119237571808642820621296657632468975207126265918235804048251300561494557253163856670795727937465777374987953840579846101076530788418820211354486868561554578771160947089581390116395777656717384069327252684777562917527707438774590676500803351379548770403409284283328730614943714184257536921617028142671317913329958060481090964358306290279072124021029771743114603966197718840478500000265926327910142570066825453346871623993906754253627461460711760255268898060697177486409513808014106449359974516006028918616326314427159404718418877605920798839915370428343159456644695997057220367753543632244119826753345953479200436354289883567941973632831973343592057398744672052589463664375997553581576440032097415873273703460533698407990837406524751823119038416951232913336559933721102673983597619935018593243251692488929474672866152809223004152446555788048781600898454353815130065522599126904860485610348247228344850668299131556068828344171006570663935721107677272769446192218379933809204072906184938225909942637988457681381991764286005701676489434183138098495750110578309718655696378067068088523232080266366752085696137706436579853186691143360193648886597117968666827415838493557156923141043448954093151478157843014112172305347235667607917640855670058546163346953150942502550073856392332576028140332207853036002702877121653220935223249693180766015662838540976934590620372121928280954257759565776404751207053744979895315405052789588877590561562689931791929986581225158872499538011982109550707786409435188340489595751959654213826745302405283589212692410949706149494268878652738362628948973814187512006891551730594963419430571642098958641539345790252679056428125119932461987471393612396957364539722439994861975489605427008989487299211086688578264402129357588355218282411090329077700439468248602192110111059943529660120352567338020256382043202183093552266824457839910288859064438193154285386477400484978404024445878320268125559626013578087900972783321210033986827645874238031080393562648648172391829543762938652335400729388704876553957985209653122108802550592189895140014119298791019501206606267287101251131473732637678446092979646095463783458875552086060218563465731074512636778633007603851758377261906346123551146016558485025483661627902178120697408217244974893280122402412682033077376045964468687668849250806591797157000654101320081026793068428501485171586032143766168776076829348217348023923872647383642895743728796826312726343330490901733646747496644741893387363928897002708367018919548339295211006059598976556745214182203830746840068691332640944628174268895372644272309831800126202965933983518927183547926358030680865365140916460190691465422739270445864133348065351036403043601100230279519163744452087802812610759500924081475817375377138966725797722021301398720237249617372101376717875692601078887392945829587992499191711119759490319776542120142734238982002523591914113227692889862308614307777916803642349850778525354497114259315328247748665576024384855101056108540681839129916813636150799490291437137467490694648059664395400242304340062449264081122552446550380294099392515334520723479234292921863975997004226489481892877707540476765204357469290944251457194573058581711266522101327871055940295986879614856623973995652459328849252687139137145737073087050865647514279053785343759769561619848019697710749639185341175961754200183485824020192383761142849460660015271989848003349101285537740451446417298961716885280492228585483315634815384611032606416093468657757109856451907297001596911093956507338690013478964285683727258674873744867781674526769811322109642139164616789570961441596925699248449647730537447095109225485737263724015252275384034858271764117805209183871059368387768959798107063738447720262978465710357866090760789908547439552782848347282242882809901580636379346187834777599847970661244014904457286563317589856012542823202685490541764995004479225662535946389381102233996803746459390501276565466344149714336905928919755195551820510283840082040709645861429928245675671977869849892895179191891505553336954519830752788737858112897442217718147822950737207240903205296574074695609956370262668264364824238879255071517342960640611412621288515592082738833091446089051581667190684213397268251648074065041529560234738572744066198836589918908099989622319112857297643971368535348950165784559913805176260095138569182262445151919085704510941092167301702796068190840145284726242386187338640011091746684794480626508932294680230672164474455776022196364069230592015606570332815867513017636898357716404901950773111692289123587797899732782535794377545832532209177392734668875946349040583224823433567106959756518794717776814077957922097203957159435434305416834390964661160009685247043531746231542182651736023264912848126409023829033654475094560254639562465418186753252326710502481617295385126512464882557572492877370626970385584144472385605648162431123526438683802380998701359817930771025159594604802926283282878263586233370747920052513695034186028221975976009010334573537329164481271011698183322412914481431589487996291081750853029836552964166299590206723520548306397557619046393795834121883448434808134208356479682340423660274739666289670886043767175531437319459995116233150821857100870763700699237001793993416977518571064635933054644743872494640405000611294933898215931201595645232682674787973418624792272228213863389473610517624121836285851080033127949928054894563319782219909082158847981854753191724166588470863343864503112832484430582205970280938603033556316362569052458491295731072254828913964535346093258441017903658986581525251258349713384061245990513505081809873675084459988445726934441373537895701709146741304903824830083683899067862119631137281004018883223976603506646947633060542676144315901860944671414638727895111971383422394265710273639720856822742392667228806211391276349996796412634182110413304243845547712439121903532550241005683296142841079844636844045688049338088382696880933173656930404636416383839058019775067888617016618655836401196059320057549326338910549239283393168014017567111127515839328854534049225224681380920084741841396256951115578355067542652858958782465834198594999346000794109989442545799789734015582830622118898354925336585590310224371492033212463175962851315179902610576802472995501050934645943495501604810068186542498739949163022211110045822636013991439743123321245932782234735305627588256909583860196309998266600034384181549937494387949527177324663179274758351009997677938404757309701523583530935123603685523310103462624787467830934254161742348474880794636829423575056539816397370830236942807455747118395440103118537849310640945785172331558427079146312905093710591290400530981549895492172182734831639154004520647303676019797523176595456835084545168854593098720254019251815882804469799760704126101581197180782286677745148608103032211837995557797778631745241660569592001887864720869401815305194179113854414697533313690429964698015856475644211504325220858449399312994402701721451502011607317924976993278549179130669772892371332934874779691911332462442398943392896436856219466610459265640711511012917641489557046172066635274247416525248974225904936006537407632508294252833038461116465248191057104441083671399175681465817605294933911869729997575765240062101277328812077341929459384193454661204577688130374871959214776333250499777469612630158832800028166893379207474222511377826795437741110866084826796231473597798153808996928267119711552230181214874110842900195998416190407671332403737057464026937308514963817097897399973316713687735522045323972147682727570964222354857837488455190460367742661969689733316536845322591837275177530169284509099106933034338814787928122947487007448897707755636933103942718183641650166153209752630707581196676824611779036584505671158252651247656381352000961410637900267364193485367903562003134558127774102024516688859817453378835702443642353019766878375915922721024079674801135713903904884218240850443815173385826788599726366085905376320857938839877588673340870358490338201418746473832608324411744824440232378995750228003156763850508282455147546732493612085164137107248203018441600823569095590179347043531758115955980040873465841393959039328962115143017273491413571543787155919305039383911240139592463724836457201526174236024054646827130760573752873801272356868851132575253438458145236094687628786409796190671317608071366205844475906112342741821333057944865194296011891236716191535827463867134413291208046931280941352270571880271315907239332454559109491822135377917436431106448738448824002676187666064517139114697159603697004256972210741915956711153222799960180251711625732929690986700313525200895867368203787558378380085646755996422701315930900326576823708538523667760011856298897022140211727320532729329335102495380519839337253548960494989707595244404765386394838561639380918076771381072369329732615658589042837524020319392033416772527627812106997952399469461412485467616318307186107872805894653472157713765159812020369323820459235080685570028219241620156614191189675060387576708673553905599406305525829437354437379250833091329093326751792130106689940312487663081218256674183810042719578116962902404496238338541792482906041962790379348010047569318283169345783043377492406225872926895121168927291049357474211656636662624531870179892715148980076454140171483067698768069498811966939186910627598476300721092943852789500252284083050643566690035605474227897130366651151936729846120585383288298961744001819791660719117863738783515218918550452510645503137355386810351196798034025215011997442746584006908003367575002822747354485089492308853117523552350986087944822142103529103736591643820770666358649340039646678215877678386197324941979791598167198105251412830098699539215790364307441772075247264717438893635862932772784173247002491559554157684120018826040238810488250366830762406365136959773780887822866323586996916263364954547489573316050671681605624272646933655913505150886881503650933493655107817259909655622147390739147106993891927741733637390978939884747044856072242240689300731213077287061930097047791145623946621023981093825902119195083127116912256752098983783905450510801866149001394986346598274963384166842086992105477742834375706857275215347231960422747674599599011096500458119754892410517910506122809719007302872071544586023298119376790749907811977171737989988875009909092789085945313435458045621841085347887431624730434359477542217704615930003984545571142019927783730834006320887815838461946850684217954538934619419745469790363394373822367971104069877125001159254892907017590407022075205651464965906629475687197398080878078845592862809914449908256901369130567354421082305244090115781934116773005718048830336287960576279502886036900560667703559927752315266988144145129974334143743240882673545362909180680020033050499125920113123104356828676366318139515596561606876374673729464312596939665692768646432208554669515475747497653655533823834229031050200536612946625277089384019260126120390848362494911598775500574480285593535843434144295923904061782874436927406818832366924027075379836156965655132611606484774227344181264221065721555604703721831764871521729845934568730803941646890851618352875172187047015645473198150269385104566418787228679638104942458624860818168792797906643723441578522638699488549877485395436351233601534273992950254510607376099449378930512352456623599455952515915774934641124393690931458442190179504915226487229995759368578720259320014755284515169897492715495791654640628137366949515886731174446466728783714433934929658376350354250476624594072469106971402081754347803218193453231897247201126455830659064624985608120314995387264971789474766552083222377619263881916327098189222742982193902434692971421276037670860897543180906043737876251969217050813407153769950381377554186751776211871015555749706097637495977822238813627953240867815417961101010428793596246984960492159738600688976195973330279274521577158222410729348768454181027745453070438040375411499168104760876249246980260487107074827325023303774212243080429652950862244223623403012885760527628956857554292346332422123818079708438830716701828248516811245107831518340747149329394009964777373840317731068591100404381422784182963286730770178647195373669249032401007229406359933971690967611742009436136241521919429837463698439875309641267948044064909994000810396936658378112389496223806230281806414092931128093953899879656444822757956785336780148921531856674969924649713177876497632692711399475576106561226751318778397569409227894339862590504451516413811799091498943743796941857749236628017775066070851124369704810970347274999778219900815306683926138544379563791640121861634783174764681823861763842907509398359294141775565550777934222460251431601731099109318617897582558684559295131964307273763989457039784910338244919602800563877203145347589047489059153661679266323536128448798453386596925435543089291220532964843956929758086980775643799825824729072120905046844390574176906087232757979289540526987436730708069247941374733786437504555880795712631473249125882711574150563219492551219088003694988642112640396426262934111298711613972260318333219243277355443455634505696516337971237783148547751536369945938699868716432019465618344927998140872275309912915132093845378056276099318502137198209711620703330099129350057408914098108842649379306295529902149594763449809579825210224732789258695641192164632691801268072421964021253495231875820367151551405631510996309239896406477101087477761024287977020789430861723162776135390256901231297309647686872287093579122035799484262319683199092386140779809831958078270496451407782115588989577637678535288995328706968191311952853059526978133724799871421429628501863211576054501155479854042411314157273307189553827885042063454848197055529117869797302444578481213277588548027177641046033377728204888367114899968182842551326424912299741315073502056766962077869908468301480016474859864003258770207375213453022144464687547216950810062390355320053646354417689543979714301234821116005450037584579636292220314151275326300862149994568397432346183706216810757831814740848926022364989924086298482359444419212854538170312000426485663143299914482277143556855499484730486351368028670374504024251169535862918576329812355648242527613495860831040763385381387341151924152992871275988169393847784364365257015192090562622600549180649482505421696801812278239248572969571743955166339969144493451472359300200055241728101015573080413204486966476690735166834663328721444477119822054580333397072598676811934803855723057141754521705191995461081707334936025773027011918712472419425917088956855436539238638400428868828198230384955026642495664539272074437439188713481834462323193316940948078899020498264064877578693467136161166162008225670452921758605029059011701953635513141335265677459020208642486243405276520725534083086148194908189974937988582709565441984505122723914232758667217413376772695445176161949828231609058316003552231614539338498193956180591144765154252887895067295167286269145265901530391823168975281732450195339913739024512577398083849514468789725468311915293510177792940665952663401312065174897806197332165286451048661559555578989729159240133150308545604820348766654839541681224120023254124539624631114086991900367023916912128837571478649088693766813958156191783323659417136781190915800954501616598595380769215087178150000955436455273883161071847610224987133795300673534870299162688944109988349383778926556612370169575515643830416577008411462537332687034450521059545274856018367727365990090414528168973791758094006087353983535840517740597126354229404621830313413521653493117405853008835113446772474910772294374581734286025107609822972386227890403234548695964197025952708144960339259447639212550590204444533428392012708535096334071950259351300793216290189825117404143010889406497150568728477985953609026757783913865216981627125615228725428668338973051031786613888112907572620733549704524302017860936352191384553669643976947838411458249626338443248617555208235281971513159246159111603462751077799242825701979059908732939728230263232580020520201229653222471967793278976257633006456477026372137213495086647092732241970762179712519663685744573862194779230606179945104411030991009300397338465423046774089918552260333951843859695765200656888893868942986336432934787798458754352794923874694910860964369277599316110414800128039172399371453807646336888505825279071191507211353356258284867614385472759482542242552079728408336551450706554542118063197976592614725788772064342815039532689258378136803230857756822244043858496393920692628919083352716283706478292959161576579805348457547766907407361625881911142330996795977761134964007919707586939672084106842745710721684523302659660606373867926418268054029056634737205185863190260838497824931628212367444490793726588586028808308641441434082377921742357198242829768737538792868070725793225821579144623197378625216461555881221496001494207325402387887662246301570179104969260289088646344628485908497345243583012006269772259937579211878842906801908918744009805338930371909623219105008092774389780753115044193233467586985886996283704573534720882782198727307392792952598398732362272959560864043977805582564596741362667482407330242186798057083750324307797681351226683271903065362236145800208067470750284175173675828920725408427238927455637282995006553120525664703556878869438904192000380991763804705997573169959233680481833793052116379453553802411737505340762194009929145652994110994521707542090399816206151401259846666519604461640383912044690820409247593321404906133150039750305397886786705498284524282618877635075462246007618044696775959598438333180639422813347163078484880461922718499968411581208517107956156080415499268252519734064384885111701225475279699809848260293020175186543099879132925160940945775595884174635309013734999821834378695116249525929132165215446699030609575750962222590590309203548924154061992023124715837205118467199102117196126010433907793352555692803806901265935212196446402436267451867170195020729204528216733273117875928760378875054566570848606572021640631927480800231204549217203209258702360633206161465073164745409305812102096833045070354683485261076487263775397531840602490615712518443798970697938041813723991020292811976230030754886929088978769506997029013345083443403786783125297089913198276265025419592427761866673655345593985910645966698448821848244917392236472260727705242820002312068165005402770691985540493340984722348628960489683015285791333067605145390798178846177700719076903191007705209137326733056840632786839621864305614489619722415258498990944612028731674860685240676766724523749609037119106611995491027467030690821857172434480557918200439630726576868558506815834421397666239211380629215222390519020114295318588383782543196368336415229662754213321853990029575896756193037435053189956823803984135971206467721938869001928876420565458471946757936760848868905978694971950784841881104327687322009512658741987685902231685065788371194684870577198826664618411257172494799796649067538469758471555401522797440951713366278520177009245072485823844650665543627441409222760406390854445724143591458048051689391877694566964919046919340156833137482627889072374542673768846723736207850549618761432049157111352725526529926575711115808245263303145410171060169914241097876994992740218971953965370533680098126132932235786398171728298783751961500102344573819404606510168270219601341474534178299588203784892528216075777257558536775646409571714589958516457683876282355761867245226564376219868988881601399254456916256182050617642258022918566538210068630858294727282944338336540820260059091762242428296282363108486839272884979545383558547304992572159265037335821622873652919262590972898421366281343204660817128873103024376810768900106938127890428267014720867919848844360490284964877423211115791536410954715810924105956252567159658081377318163857334326558878852638872646417610011394967856992395337531385483759289119255925418087173040644547599436119958242585262752938105338397737155267187500125208747808363404126383211059024627795765361274325014235915323202090745028036990722744751176367515307363074907902054417320956649963264603995906364158539161117929834033752330564225333108749794821518657717213635850092947927886230276194912708151774713690831270141091652958058812146096051471640800976703092017095137409757280966456621761097397780943188913722438073039828332917009838446600104060062232694844887582770581680088193997019050305563961122643588272692250903502203667262769790565821344960075022395837586486073444246410945059705526110633271176265136958648262462107530160640546419306493160576307946323532102045075034079141879588632668556527956722026429203384273763828379288014251551525044501278516533516699609064944873033899547477743626076834162364900567839512354248539592910177996127506839403806552391655138633897789975458453061970483587530049104487497701584571555880430131351935784095512447045494453736526931849663328497360852135065344462149934676156480727463066095037130009531310029705814866238951567855466837291713258403305215733667217531009611708990542610518328998710891079783308470462132989279925599903959946950693641352980154292443205921249680506813522489901032584275146012212594314161830178251165169681120709376191258463076946602852630609204374160791347671923884056166257955279319097824808629074723541132757589131107038938995402249205929617340230090913380787256863695909527652908143605028165128999399040527666291560150323344331454536474118032521677821038234308718904213148852515475148987937161764538414794694937803795934798336005155968770004690176323031446542368338150035225367137672756656731245642485877959197373567890710687994732587635547183454802365107325111506411766347062702534118991449721200188606996499884668993133768701232638164529974189153307980469652849888132248663686647935366511308216227060422168835354707754175189426366684166808847363272095625851021882525017930999356113879434597575743823149179575288759067908357354921574187161157070878104374674979571933954573077578017424707825685498000628529636066750862135226887940892090656358973680349841834225572673622426222766452299729208455633975302019649432834417028308134633616790245638505221703644847524670581762048758858225787724437052226768405342718059656534418617310113881023022675048672594599389409201627185838510516562633170635337183057861785020817869831360631920462845997539856950224021036861921109018159727876305333472367797714322247538541285902594018593180963647224362671406207312860529997324308240971444211223199523923680588070942391823217193818587201728793840967160412053766850400648886871151309774203902791387276073285369684414167972096704216021592074911174277785489333939748215074087638106238966348717213632916095863554307946146905493254669918178249536847661122746886157683234591392911016748991644280822791855647574250799006288274669240439990488701174656726416086810717967265188124762753710464729763098650986335352221386204174219638910873512840193802333492231075926504798382310084987027707999725746968068184441208171828914318836155874960090082696476136935672797951682961550464435419828690626683988599583848928707908386163390492556739688805448069610701918294424957539252492607994252279481708575420758745479457905550323110735171790731732575079406660610085328143873312625797083069562744166117988907035368708182201997127981184025453890036782070435527543253081420214653198145706271328396261677744416681790989610278701043530266362633715441916582977315257968113355120239779339155317353117201849250741338305078467048897790272945098270958760041742856009141583494395803876032945458827863741938650328967893360280587078422861819781709270762218033250934357546234780494132857609242905673622472892564317174342210434206729953856528626927320527412653589226460855358066493087616332660960704505036258825373103799806978076244943650297023280189140491443959064286109644500457950759297785862422553711017219318890987694116042476933620455408283779725812266556586594142294794220711979566695494784251735471432940352426078350829324179953328597798101186711060263873109174156900479302129018884128031510395134228107681528101870460283384623418595939314135679860233638141635086733620271987218867948219064174352750503818107785987114124250999216028325721684449958749914591224439024199469012410120107452510370249815380451564745011126406708775937286702965809562612345437472416063245304201923573321365502816064066787371971051586837922820387008174108760177625909250752921387019785301325955986180976637121399062748708540141620466100920082493164885228106200785226826003904653231760439894865486227578558753889719779166468066633956289883886195930526757362372200058405152018045891156928598699151288444310092845487339993078677991063161983788015545135545561828707868807543345115312868607858664556768684379194249442810056375577098281223461486000772094506336810257958680128932027929122217066381361842743389575206175248186453838171384467197573762822750379969417152638069778403967448909139600740087731923174960219447566120779620195990898710912468025283286048489133044084906147392674026378007036362973150927497906740013922475074657625205466015333342313660321560084114802329567941999557133076996016787670296993590839517862527524226977468265600948995865215068136787415871593636986061244629589414974125660613017446833769116230922141745215854549362500766978088054156499671639175015932905594787376318183198911644338572474737050563142605838613473569877485559373126763483378370313404116601706452528497358244424631276664134655530438183814785703506607050393696118679548843128515143028423229998190327913964322746103051210815266175278586907225030500727738183286822477923417064054315585549039393014663796094486361369840521932304409961760625084503087019555653859428456578391776207642900350661907127280614882880178352950939254714301585629203166036036110154105166551172125672301005681477956642959016099452079521051740988938832700741627170419690424080928851621168038639985786880173896531097998068369722845443855439810505382773888975792463798742098340127468806658436721462471129531724729300955166989372097252302249008368099346621902172179435541410914377742733913505186582047375062191841459042278418468789139720843448054591787433071610340926526375294893911120856842506271773499209710186077514636568255157160363209877191875402874781216532197975932701901386172019677219449590309728839247281927159718468541173464717317849547442033326235564795185426858513319922094592734313443777492295121740537267658653408889776519711872745309624149893745172859364846849384204117246467184064163476974809922151622722969601409934374214450910852066768263871877114846121820445713474811705861511278855585882163224328355042716302532949200278830606804381271469220814359309291560942811898081625543412135255813131196075555183645729356563230161747463904057433278502262670646749742336796841298622081362425135965520953128260584719971471951218137409694884339557432838388422880654421738064726273236313828024831683603501721971130908131806197605490187419374660998878514770768763689330939644584144899546944606110313122088379949748024287545304879335002144781980360534830076669021050958970242091655207716938759072099046680116214277032247367894041151517487580434401297756121630323516075932702899462917362987675638691204599151730056141893034858557201699744540983964249048894579342356277762656602839164655945413918575547866552326952702923676639938813920302238724102423412588756467779761454809625907786532117157093349789295745220041320518758600907647637416438798377166278572338680132939291795340554626431873672965799162655758836048587044008599819521621817495377760850869187011679243580497104877864449418508052778722426196818466161364247524061466619578579689681909016563989749989219336041879645826563691345940094955765738057847247998915505943118680809098684886543759006557793776212592774385552741019338883057753631196666376596256564063687118508946795751567903476493245701012514582876531968591362395268791202525311503571437331136283925787792066917750068564279997719382825942322624897692141624090319676425662338122452425551959951392784958455856478822599245724443395312400351090012327396737816919439161523820757394747076199796915227238504242624888470407108710866813862832645247949479949700242772345214753713339370119175132765990078913779842403249540661089971056677059316716438738654242842970710714354400654968817518316140845405359217013645197251762517437122785568801629373269642270721123186878976249300229748669373327051852163018375752280792671255176854052256643411099214003323101213880813990660137253399478117912664943962809974416043554462599737536754566203485191164816489406341133939857322480710946092598148778801403939649541479847642485879480523692862921906905766165600065762948794621474701367078225434072026248932917171559003459078214491559925497527439030403558951145720832669255321967626674196523899315666875571952762199069029241809912616695154573238887562775631987243436290903528227156844949975227958534185542691607814621790856919730147290119135734881372910849423418884124457567468080781245564173125540482235258027187894441418307571178079304113731784978163644236943100093253661395904298209672830729479519479949322421626657743771288402066986530559137200462674735558722480821121303138627906737960773667397467302982150559513839212912708347937988986916024629118568745436795090536809480995783335257108876097742619845747886919802090062355029925457759039443883686928127640691627453979136003260082178937945343757158576990186890565729707458287234600848770295374183800622186255936631595218190615042231768467116669065432373933447986920212587838721876073246050304350122152435224512120906597792796468133852172750470851496683359709468639191053123428987775072440804271376722922311868859702164468248199552031937662739723756971045316824917108038140378853202594683083473236224705412755355037320824562468243429455244860385144172653638440422060279511867576354484514708570428641795200940380457541209138170046317738689920964728402404938051496710681050794182394266517600359987344877259356240602247195624189004595458418210164303886612699043475852746899154167744037468200272399289950226598200356779596901988769080971113636727472032779553387806756243007465533072532075856329981509453025240294266306595538461052033512451348652416476718881078215178060822775747084292680258962166715543741111841294777649082433449822075306310149096395781530011878889646657324820449810527828489808819481276123214926887818090834305563647512028344850200611705219217800039087155148019482939126933690922806333137759195844592753110419879308704933994672314209849451765543596288008349790203709535739757537443764365489658106524607676765458793971567867740436918575816404958545372779528011014911435931336913609777744340494723989324401528918674498170134872052733002673137374570541053149051344956321776094328908498353661302764496108225914504571399041383849517181248043777148679186081680105472236535792047952140119676238128980301282413890333510980488536139386368747473412842282519087150254837121561893415862835842457481769975274189374419120636237967853181700688018964874195502146330934315496870502547989431421489421331229952857527830670009370774448237064191753988520657689678055650473885443575455526503729953859194878075449353350621348554538938209598970844292021957912134350272507797875367910897289546938627887218812071447900928881163261459787314790135755672186890701486135039375259493543885303657186408617900282003156805739535030525607936732798141134746175254497387474211327868819996923483200948547274161435133131291837834541205180454742625357200962152384057824591640347462916590252677857738345099092677166142285742823745353407078529126657823982911898310695470562147377618599684452882645929210769712182661399881991981561171830561438502371981353847584609591057122318074287322261822513346874696086754567203135741220190802989897601537869202415561764036625966364838986682470097601530732063714564214500659937368867205475563063089003503630397190362834707161761296915090833504643889838922336623626301130272760106357140247914944446417494460358897731090433199532660257782381218687300433157015373911477655490848899110437744748537938098814276173296732911501926415256823858717345673378955402804666857146611604665389015403220983952915741201232811490092099415656655863276235006852942910081878711763638726809602735586070562034418751322871761956952684960904959133889090563066182934900635002992743468905774380540483373906778802372719083831174527108288856653314832660877395278769523274430125240924949664223507802263596233008273631238723798538893161019787775765806173968272588689111990694289845841722400214081308180178500955915498598158514914549154183881347366866536413112816989696550241687640517281671102918007142953201274913642376667508006124552645347773713833900423133641744137133068085214150880128940766729971565074077696490263583358687840639812809601822946562175321955162185576277785327591401095230702429613222541601497470248735406186431059893940910440698710625558948221092611554085251375166214615592282742154931837665259132682686708627028522079414136423250687632528011217660413593252332749676095729639267783661108921665565201305202070620555426419860490452461969351802745326136481148850074198603607921281143890232149405076632790500910225791153348508940911113900832418378993782626699058983247462359089345750781206222668971631204447054253933573241893567819028747404032952359695073551715604340388323203502856297837114868272345038155484968845063627401813631427946029599210336995945093549909448067880366532126251315135541958493400096130997470126036932686431401206664213819264680188471656781012334753550336225644222498107671463801597331984074312586264648121144767613931675022772696805062946413256967166965147434327838818418796866218669526220575588865929670314682050886958445516430537964004582807861441395215087776325794725529175253416067974050317421105872495291023619718793419391409178753077498035853866201535718213472830332429151043672239199591001416474891516800444106251545828306082687827645341981179925622289161952935011238155908497691082406848839494365209151098228829933961286509927752621847976960468888463433027113653205773224063731571415839013488224502123639760396600739281820299086774272455879551606973275917454365079224613951077220114089592369290606847698792595497749828071520074380032148301057122395293091761230579891336244279006157341832686969780877135428208923797359059963949694656546284844208439053703695442827486261216504181595807211064384073881581811818757036222008458808736374722561953302864320561974837115977860802320080678141475470813178655762462990693812855865668192796104261773758855749204072844452820076358386311493094368115408713527070277904815536090721181979651556943521576287346438805373189796021293116542641167972257462940801336072931383093550533058161775319342061232789112366674658695525656675033815599055835159333396524769612343444160473166032790413109136272529265806630895716264656485308994686810953410630279105720804401503024164388054462449011843896124819211128695912527297279022226004215581704796893351296944998404773854820885081712036366353887816457570669624104223835941130060345701317738456565601565822455617330784176405765642827150409135438843610623724466405689500343541879607039891636776547687561014277506202818210104258256843840468767095825561958852746527374093660664588281979275815845353957371326537527200333200893328454639636266676402563894163669189420069285901315869603998546324904837184370413916015353154249601562170602168678858750811673899576793558066990446454769793443909199000272039377807641112345875219411881242154935980056577008128456450550064411560030596333736522838302064580023285320210008718145336722270880844122249917010563572718192551642160383748324698925497018976294222556314025502052667126908378459866391245649309032764934944651796448463941185466623636694113401604577908395988029194565672575834724079314666832505582389975517885375880880912300125341478459350840691408345159003236122298864598588818137407671536038651940296888624198196796954265702089663117170798069133158467773701905118815956259584231239575704574590140288504766230586201648914341847181479131971801528917618408092558172408925800874830902421134035986889037507132762030361207718719508255167382686524718041062133578020289122159792618370333973534933561102034630944168339979200254488729099611017009943682953927275147274654078367104464734538349757070606478919732309387669891291869601844527325179074723594138344189526321154956925602371311167767805327602044947989269110861208753727444251930232811183945886009253168957727890696133343854481382974137518822146309304790388209730922949829475924968896121211182176252346534074689044478969512493937223082833220268554927468656491502621348813228322945486675512665417222997629597109432451449937145513778645245141687686036002027858764690118904204248517891930946510845352455823741973992405893618342373645276329272942723819033707642141884958117060280211337969318889488082807477382641652865031550349879131825925468805870340930291387827901477482689192253938060027219817761482091095153261971351339702771669347504838663525570687700808205888521120345606883812199302678712782307108999945393705526079457963124898628855663791275879652318244840997730546004534663104716927928115806852201758899121812562792973203140065428962904554112061426323587860476545361028394496974971012380495078674813619569488003228256046902543901765768964258112915130114720317695849288981607755335127036074036017925739495846422719129032981329487038864204792090144369976270406428468772760626009773955441577295794881560043534239038107717364856942566678380194992158821639850807784031473009652695012630752978507278422761220625907437189800259263222669308750731038565163079979796159402683648791364131302352106110990402773221599641874279487564761131395824112113854733324083835086895276045237029799545760977202449568585009267365671241307667794008326663464794409631848037467884095043859413992337149233715032166871106835797564581289959144078125242006472594678512255479669743670139985712213642456440859549494654794195447874961763819271907433806686543253691061205927636563116932659426415486154327132412819119317561824059573586921463364458217406729864755434938815959233147451082217661246161707251572701610395293928151574733409361740970955456482811115723152323769075438206565367264031407811654179963948242817610299281510541262894882927582712795037621299724008622901429594857693372941301481128411669798532452619283520441109918528539448065371683036827217655110430319200099033748215918192838233031250044235410339167860264032218398386016820942541035911236090928000101536027564824264899331984356990454811330645502382172726045832189742187609154816487858268209480019734200707450685064794490908816286175806123409851723513552600743455852231750098229111642266911607062238486279733763515798656281417447362097146436560350725263039006039645917877620581787596757937427317219361828359170850478516859089960664110935186321523216461535039345322134153890474539731110443729589652667385944271319352875513311739714376458355291679050359461679042401778572501222685965492039270606875271286745237226942672205324784392616334346242579476007024349235439968780656216608601953117821724507050325243981793955056639733440777110812043098963071726440666869067859747045389875245854536528270833982751915389058186383425844112197017732942655515045618866743463815336030548972911572331433729195954891966237721052310002651962921469597454475860987655001929887783668747066731351073910470070443751040234748445963753561957957877906428912417105582691624009797408742574457925836481603406007901416910389338801172202402852152604446669070594388810037470340128333387753217436218763007471219081801421145644215091000142201117187480391155576476910808519516317053597006864086517191455821613924987997415982756965342767859960537015206047357741823972817236663037451889725233121565133652013665666546963384984123253069227150506537104223542108021762590951157252887794020265006675338758305003440487235887231123933165203146103730184547628170237505614011209006713589854056236464005916598984690036307507885725869025693192532292246049796240548302185477871491875062758711250258486565200146953838354604018850189310843146118029994100400568064728505661934566871357827926672164442300712788057111308657636302478742891921659460997578068371645886138463535644837108852216387621548765654632089269949424675696122412520004636699702968395192739982351444844813704442009026544530382449465289841432046957768687639935109505912502563608285834734045036859940098201205391433448119232461868577929052757106785942292555625302521959853137893703747072645303634115389958144786312450513220509501795525814836196356131784344790297099151332317944804721396999489893475355992404693615541996107362947043984994974017714340525238893484867179495461394189221368954943073889898944139460989972444265935897899629598654129376636368782663399294283560602287478638143949838204732231841036841574423674237962539931087094650959980952505063317796435319745764074884678756249613553255863749084358682004417377699077288473175985722598786813406802497156918798019549441027013350926000551197524915648724458874716499114691330260534080878752658679765756126920191854211033416705507788635229948186962063507423511752262644838872970789673160651364577747549785544371033758127648942447326109429974639787307695983143655977724989825063309107584262091704437779808483107264778205985578866406716505056923224270034760894430869696026995380046880710959719392349630069491278567132154611106018306202360244251489644067166982114094990521312192285307458322355596386878545339090228945997615251064751424335977101498325346373562482530378667173976007137863829820137659766235302036490842511785752868800106506273406479603262280909484065934225100111454794139580878127661587694519538540693355612498574266990573311046337336311399022590945830354811603352581410526603637617333795317982866742098747504427499945024726373095843303062409968306819759535344961625214970555624004747520166467992750031971938260350680574914368573819753820412128086619351708350463104580147976023533990927498922545771254091188293931112906253730592523798575698172590994503793376835311863342133433427426450176273427452795687164366855165127453715990117226395866791648121711056578586095396877136491566806965763387922406298640151231361755428527194637691557292863384533437392534336820889121795161030055346688914792910976104434662801249463385388237286577003487477898873186896572476748765009563121938258033183538097296497903992581811362961920952974838545854665197925161482141010485951190481848082163584656082974416353259805508159861608808668982146438156803571125290406173924587857696992899646056589567340978441050367478457301360106589868080156356974320408425820890695354762142688331001535690966464058666072714262610011984483754002314574680358783819734081248565780729409091998719723806666104499105578200322297436228246073620355680363208379323753033524974798784540942908731956646033231025499314912630710635049396773094744035530964055734616558865669355658805451329348686754090302495189972551905953934091237864743775384164413368790497144026750448709339694353761055980340469114601520547233603771660714162207249646998897113123481233504730554344034591352126016438590901002438848650998727240723365420218259245113980232326093359892972638295856767654651206049521804291076172941527597851056956896944845007692286484433660452582142126366843675994535470116073539725682548038235109400136148275763647758424277139684428132673028484283133977618215254455531566956042511258244571558706694697082455042632811402994004637626303889060305668917237198343947311582275412574081061536961648180870579446711447180306732488102946096784183653496245277870941700312813211754577887188822787886731872337881698567930851399460348666941005898683958048865104075204883659095935852449381797386961102873966101086107115588305027666728957611064987944349934848760939201458884592340477215341663538554632635689068161785258020462598740698268360790269637697488910099444063402657723548997442976056511531760325861420628875259018109674260316823138650659140403380401564676394210183672806817811956662678535909987692437752760065638596992438932983515298274628724552693666148999886389794572732526063186126863079641524415677784900683913572324053245581434398456580507684157715225206999381639431819373599080842686608908966634272934639928228438866535776873827835721388139361197848246591088358039581318647155502782998725040565902140764580650747252818629826646757441666665506443769811321985029414105032558406412663994231267332346948348454832253540886683855620081319140813555584701052504236803065375039558426427387202354109545633686669279968696365601328106467524570031919598857483683111351463878936262839746175170255624456560299526660955540317410056407000327455350227582691043704418710446896487859206305119417667679352739523458067306569524762513494492350567171917314064735243360967220808020826719577827451145581872111577247521136201996099552688271789329314079794797119565521097724535699738773404555665221797268627074011835676625521522680940954546582550154229890893861543703136195170770636088769665835003395411040371470081071955667173280533693828953706679467949721873274586735539274948988528205699593314595004567004269374427010989330911439060078144991846994900357316115558870641142206966314281911457409865155767252426595082644253126693455164914913736098172842216507731355349629560021983550663543077222464656407562269376146658493804072762133152705314844689517244795314017799893104103661653582911539307154788181657337480824255856910148055723145657643860419603396054213137207096115441561539295120501378155625588984220811644800027829424804120182287635360890040526108409948407250419546428164446541081795021958877769927755839657629906935455919448618011460587219759505714503923746717638503762079970432857818936393253386649400282725592205603895114829118956281650238897763645808262739453124840419669931445284048474187687286146485625289903216603597875628322842386157084199653730295762357529831880120969298525663127159229111435474699691740737215520580799439820567301740308307544027816335677250577470280080125096635486655589749418791825280749940246236080293786944174343190643719731083380349218612488237635263864033742873551734395463505481574420780064626639160842043089637567165588172787584606877467696405266198691595123919564956452780197837729844312192491450970744339214664173474666405050818712492549676244236767137111330288786065110457125303984486073359528326851359532910803339815473964435089349332740396318350184246842318279038324236288109655239004298073155124220897541973203088361752931734888611035695108594679875344777034947726780992496489141940081484606374962133009439021844328763550299115150730930600442580238976334501781455547495075732773663440936929731361725650347706473770836415969465666365452535439760195374570667117004879639345555236910930245188334631394969007969222081520093458216459438785714063874099600171877340990897462479423260132146421897651313116741123248398361382230842600080342729607545118758357454232787704173489450479774428359569451812955559485608890747425695334182762964227478069747475483429777738244715800747929571362106287537503029202996210626421042391848221997243806056165521180036306658037730608099359157194905303272114950313831445379592152064064336063312533896805059188724479160795930957018503615629620624623613144022628305290804065917567010296769511779675376100025755481621722402070300643940616123707532614090795363896172654038906014118293144785157510816609261335886614457731744519876384050576126515252240213070056790072541053421002599662347572869647923177063527113053968690786582701002839767958582872119076726877586528119642637634528779428109085387260271412803047503656431506453266705270895293949611246849590229599496746868072711536658399976628369088920420374527820942042494457849311099355025615423481951091750828873336270105253735187889527869208546982954784223703423373545078474801866689436614844058414144673486731292195087271852129904574501986657333385681517634691641775894329839530742186338594399077177988190257724364570865316662177964523427748281448440215451212219482464549719936196044089459857817742970568470772720592763740381359270151484971736123819875002766057644479418857536904631631903714480651399074471223954954915925516308829216473626099447519987685243097000354907100154471920687009313248933830256896359049009234601032927181495644073817496743877256849540077391476714344161689783300157929286693748080482036821904339659210450647676053919864277178836788422181463526786326607443229714281378193104723652810330859692778149309946464820810516233129957601707503683560074099209321188033167407402602864376498954084241340554107567153919909556220414337176536759454597642279219204901622932079706062393760604679466387252022415866613725451939469339997063121215019189265058266473435709956163515316875640093154640021311218059814986884903705882647232092863763805260204313319343487957556998755319318108212375452681076609186282103184641899958404302282475383892768322295430742897294586810327579447844418571475964542382237130558663632872374353897588230062120549602326384200224865094225995784681307802527228752344184466979888734995958677556134750272569745105910742478171659398940035188208107954958663949881353827825206622810773186649326570821485700783240278839755895779171518963104982541271751796267387035485323860641848167374231362740735806720593637230639080010188708282346875997994604457838229046780889832763366966318946974834484613759301037209151485990929771104343545844778443285729624476327168339604067754472644388582217004502819011379256471461825722026082432679631536673352891263368456185762674284683092434268856977823327715294326729681351178858159112077764142922352399261299294092293386082501431850149011740738354982711506840710170306337384914514366906914927396106621214993481678628055980671860557485765103860590343319766930504016605710739961020230334665871499378230129843614197545410467222937041054557451419867555194744593051799270570109732770436564509219835850364395018935136266217618714830966817700827125428189651538514027227471625137532025013231919724833880765454388935780404014983028798332517118728091702557413315934466105437486658298887190068272246686957735143227800348931567546687658348803288892594515014900143827893250507084447585030332939760472043952821751947437689161899172211608855580900439803182432538045528322017554814947104378441083980002535368710781850829078582161434372000713678692403760733920887902242788582262486154762372071463692687137186462479409844068180298296273581230507441909328462921521331484065117819007881243137935838909566838066194775836262223808046041899837153150885573163749103175991862635909894374105406252960460908748974323599097203479213757514057126856690690836913503768641599538747168796504357389865353869689795601413231203957793977669935798788933993290924947950106219300056235940735160517019381375689823617862772989808459602472033245241243012113844078255159529486116728643359760839423538674789943499875655113373676862986723688974502950603098898084715369201459242618216806973199765867119185636508163996264749849021602788999499714915527958351400070782015728636230306582486943817507790619653482371863354862092128236888582079495455248511667219886155658062747194669991219735304301618577360004722883978049917534328495118776046241546605657708919877446912665647868286781721347751699240732317689601192330070438019926087598458788121498849228834451060829847936005551836353992876707383404040144966279908376363550151766707675713144019366348302571458175876664703719121380292342930051593041810186623658893641917697107199178388991070730120842780586504315821943780618576635860472904933030407405055174721291659226354869796502732906772563684794328518498834313339443717514380410424822912639721912711291672154642577144865977705063462862434164791456493108884761764365308348008174718096355292848276414106416731086414567423121344847008683114526627598235967999157204823769960198459205604208179391320640007299019272840554405705236031903809291922088668104818423015614526604888221525933482460854513909661117917613635314173884673455396711383206514746236924995317160621753621555167946099266936013761513327724982502532763748583738272176069556327256529315610348523926412276425657833368103671361792936856894162019805257315988193226426744304377977261488054203974431040895835939650103434746193119803971940117790410979543874024986326427161387635608334350995708488109539902965670840880186348286950700752173394606099835293511151057380176319966240132135107629971491141597360902400647634282661612606749719534140342431771298951769777127577820075237167783007086133073495938574827142265519526354970219076507266977773998321650181676140926444128122268525889099757990864305390008707333550993083142996760562464524830761402386071386389682760722729958201190496127737153411433734303528275426880712302411526609771520423378566244822838979252219492939323245679416517460352820804220733520864517789280631084557050980593195879927070589576301214191786303914720591659605938290441878374083780012710947444829183859506631583690685006049413722537765865555484933672548371550011006380992516804806948172851758246720338145032315425328162850759370159906323368240394948537597476239623945796735492856691328870610340108183132237581157301791738692774240107902423269979049894065713199115446148857128576369011140982661798530101142769380212286897331262386493748141877574095709726378614465514199036752940387932011072726257657830643635429252994821941416779261648029538802645235152738726411811725254025650292729511666182926702556087678193706215314808060852322484883097150414620933627199629048674919075898795700923939506505311352527687019226724255744578833466934236103412167991797583050076177250774552372070718303540791114269193459011508580306249629952333636966860412453717693818401841412846785801073263297942394123079549246012654482013716147691669758426081806406490248086394228106583987997015969000643042715176237094161072336808381750647782943385571822447759686727069975963745067231120252028914952025730786012619263062393300048613026953487642397027388530552238751494708126361673680052416769431854503199707897816294353685119801584113776459022254576311826020487093815465595659698509597381265729751341820258736086113786421237387188248473278119414959542508737514087833193514858055593103331971350192111626305702592148124337754468316442612336961966604094134500309336980904891567155222673730311777322336730704213407838423936488749259181592919158280543209440981556576468208542523184866414731581239589199193188471541580997478008632426607610624002642303976797756655572732676006736589219252566411453688550451209725294960474741333314076147545506404799934561854218625634692660640910157624683763714772096411626054052736259902510729324380628017393398654748916419459892308613328472436984167689092179910358902223831370729356644195290483674533017955204427569855760389744533921742874538602244100632966076585979553316869384018381313719649676709758898806081384408161415255478533430764038924092130305253199676852121049560998531700352181233642473742224186721470396827442575427162847289315002843692521587365255720437666737682860554169974384112161525494281638491167294786378685631423203906695117681571314689990919148513085144008260731052718029583074537990598002116373901980610412087138564445930053637049774563619462385591756771967140777731238260998695533069135050995410145884370035632294004500410584645880371088946679982711406522661154388562638522523586012896043736285487638279952359485259241025710737504725781938263015094563513122914152379908930740500121211579456011431100096245061640686638999824336436283250978179613092019338436823516003102218130336307256416034859444013721661013639953890260859283214496224004418683424313664074682509165755000537409828068737842114044880980130220394090213753498720910128588673217511458583979091438195212801974115147562690123307829937863385381715831030027828890070287978247755540342328436770039449754496732536315961939815342604024977965267753370550507197948118031775889716271802649353281958590012352581695963956364022134942019133137712742114388403963260796404600349761946610058474031326117777139942090647521970176069506196787150577917298838774837761775709529072804351182441155079291490952723086304203751612291560830316891643444217166044896765027242696472745079186941893388516807837535746391055801194162635493715213883558816991501486508021436642865642763518084507757670085092100766119170130664617211045605442929767350038669368381290045117569573119619230112881486173829082025617094490745116025336027581916475549555518162168337968456688726870437232086014769724441327974978055237169131398442629455666492650354694955632997321797393618093005316350336396728669263444954010811802843378464796390451029766986772163243074127322164586074456772882035973420109347321645551337431729193797243747302165185099280189714758273348980653309357428351481283442765088544596835189636645012021015665843164274194662379967814053573103252468997755103367100657339146614144266783131716403739682564948628545879317137118411763274819579318018855834142573856301179462409136248391832817055837186555918432291015034238330220966147981865489475085699503627204710278581366535455526626062619503846565307591819621736590068782801709694979005843623613396244557497053948166342692978122831771667753177398317042277721744584189993859172817684565788808248965348660994651368489530110890678713874736648641673874211794375213079161358045385258091008881145488815949711356698698979921045170939161528007217457748202017195651446206971607821752723154055915365381858156971208044545439295330408504485371469144608185315186389700241420268393474243609551441932164676771087087222364402599003706582425344565069183762156316859510270745640386726214603953146790261398688680482937535577027125668413120382111284770047536290944834243548705407356676832821198937102566555433833064009308212419994040182406735215954001015930522879759115750460385676490542084257244732791652519892447722709558665952569269435028179979293928685122839229229544045043913883674578573061054715766659410530859024676320411223097774408063839907674231707289300114193032876347904791386366186950689999043039849518321820735575010387662543285352528071662032199916834450923580737398890356107792495880032253079833588183902084505127527315221476475448925348254018709044622211685441517462298576972075828685626930187596662995745210783558429957314483070430209856069471279238696413123901140443338054610214268287871685282321986705902059446502623504095014243111303633037233755351569736825253357786487233560028559305445736780211629558981019214723684973140045512471391742045432160555497632018784884026847729750776825885049355764402183519450489454011955814780054300785764149894754866595401097817642643808446249772117615280904449829363253300211950680832723833868132708757694671587255004070777530765662033413526095864277670318220807244742702525630159361969734016637546905718136079381523489911192974218982945602738337686041624353295187255028088409230173366200635670219355346153755487061313621410081098579363841693976759324625841172342179579033573580878341962849563577972084062339581914425330142139495857039905573087508600957007180790486382471005593418229676001203662187051040001029263818731671538378621664678829334867926128265562358974814842241770847708277807773516393764095941613116601363264881401799329866173804839659588997185945357793880783827437101132222576450433418202265134767687466886388460730926569029584757388247096155241001124938270837511534558495177762088566782996108950191021128864580135270177409708699610235477763767101994339599288681426735482820383572335360655386203790732938745847840092857803809529403527648955131738078185894383355773965577711430430031090623258107893872334316379856488533557761168679045079940738530076656863444158539265922892930412612732570214595967144932145190693125083864581215710152052870609923220712824755889605784602126630264574319688150065892172879355609808513944657026311381780752958925121123471037122390941256753991967061716616993009734996603618099686928018213926767460208032059147747191842190073132426679958200741760251235753776120779479891338117902804425527923515786819790354513635604436919443443141897163700909881993356444368833474174597937228572714555912654655235598040162232431826161765716699181696408844238530598763907375386363411195958762104356806208125925554090817642330637840251801742420180291386641196845996185222342615855161310702748953277414489821160110058645754214052665531183348067350349818062844686707708700627593389429755578636827004304929913209691189707402704203388063326296297241058433287144135956373642373898145241786909005658106549662448188914979954181893183671764530788112995420270409008514280344935859799906462750145715838073519557325063195784606210377397532233160813204659962368497419318093240344213617416154368200278640914806368445059824089741658024910723561303719869496843396294508285342042741117253480829699719911605937912380958232079889073920468821549054558716990732280951141382907981549405341959256389423693965171317115827302303259538242647393187913391472131869098543209463699997128374574489084527257273283978999793682654977129367061133188920664325340105938179485894799727123080915301306018732185962866506197093673393193265208863976919202786860276014137305055196055725170235759044528162279181538881476466579074054352805793140483699623616699990860124919744906465533505905807560204564184039380280872260737546030970845181401094715145362092286621616578583952251061952618494147630526574493707412322173900165048296444240250538257444204004129229582303665428534704024592191828618696335386666389546802717827546522874519900380439588817021001218513657277775640547647308315143026873112300230884466278304421987393999232101529987898025016288267781248986945021854710973894372585117184351921408133832932186057167361095611677907008994855738850273478565773589584467625800988415459076479979997920212068228128540259472996651385339581535789854191941175602098226130411716125086515578814436132842170738710268331140740622382264409778328792447417593986798717680127568590776919695179605318923871576667623263114152082130614650391871506634710518939304532483293871418951713921429630712391731163271217129879087681127857952965966579934673742088395734747778588089119524803151841098148031455190554636840661168734458655794030681389095743885094442821200668981384983360801281493851313716973474658388727560096803482307019841123069280796107483104481338712467903153120914039017811545981678499442358123961071636663461587570162956559904818723426222051833996259449591118140679351399957542960412156848335713874468266256117862596656379612881838784078488441878321609832751284524635440808016218396035480296879067487161374897089914475536921194838886189615080143093434681134352464294728822530033361754744099183887550015581286115257833317306933502115496005031944294785384686675553190545608472071045037238194109088234672902200498879487806250780375711943996899256329063082955839325594850761461740385221554313271925387253129168098795783062913119655180989296959488473297414945639960618201995688310376219741214338440501468153056407967066469346282552181017595893306908768645383620827613602813802249024615196612525016842651585854792891297833904036210398050394691210842749649583434954308975954048991883100114777614696533071060481765331934295558854777316276407876183811202536485368774572500922127085757877763215645578595777034583364658039094576855023161303797918866218357070495703389816558319682537910724940014033738644890956992262368272622258050250734744781718811955888344328828316812114534465233436568525191761919099428073093950906156349480910272179990877799263869128007289746821340758865648053846832652457051362206896076707611869915904693364078185863234552251855007538060686538559345637240103524384224274760659330519934763691635273065822066092695312739100875398403688816397973145283466008755403813962812968288083993170307611859475866346279672470412460198245931666752456826791725337490408440202901670253660665162826986773900777206720362390918586047429070897072048058574845075290402964910504045970135122639966532565708355145846560922733474844522735348283868435527513000584972594132150168251818049765558125090228879906566138793056452754669113773593040762234259427647176210998804151511232664798707519252205224325493370656379193733214462085549652004566537963822952585184276490028352702710528691337441131999461938316175613227492361134472876038106611280388523059308342325363140855560390716656308486281654658585187419674757983271963133422198191967384020004492525851859172096008024748706433148968913048867970036828364298580767333902183677971699151462808880434986860027432470280893971473291593026729133551186228052535722359942797339663912902694422991053819865978321520981001401962640043853124571389428962887886680374177464750438897526633882280515764806505411391949160642585272991519208211501979354295011032882458385490287235030583406977620994076619908317601459313128133663924992672129147962827987282931927940264011450480935911080931776994088625085288103160403349228216489235824481995150348524344306416301358616348967530278605822939697540941851214361967162139798043697925326570876345191270753741983743848394298835473345425206150680430885731005098299758090640979345591521698045443220974459145355899507767610478776900990589374336831395979563787814740173142117474861020185566888173625821493337309113110378194541301136188547701911486506194491906245087746226655713341071588094812349747939052713203264357449405391893056430068083787597161158468729474374553831776053435997252236593054302675850431686743270552370174407787610510318859243564032592872709187898095279698223350219482579439136074442898043271283543643975240312961075057904535971733630603591767399623784167495435454307640499807995520044293275193160716843763431018274821457098594365815300935580059799249373015813633356879404447431624479395216736679687036040757937346606665925523945212644080980688826237613621558814763122660915901585994922396156753078391164737020559143211723090305287913914294589137798039666940821334288213270043734172585638208065125621456384886594810535611823904718549942540634571237839272807151211108611092084768066954582428027802746651991831589628076657801993515449634568748666126214913077038082380615549273398190652141039758013435322982464974312684324500658968892481698617911434621536905392063508410837028122899270616110928702281512683666811817455047883958497894248034619088348512314907850573147000538787701397153726967912888236956411784257680316954801388694845689785414681286656325949609057600108542449019965935982699960828468522297033047030246165515752970918875019067434269995751184712277457175710663679987602234110975619519697861572452587077878176567614291842245394096379137657697957980735089151359440982185431796366970009500548445403131699507814018739136882546788960529895697704640052522161473060707007739472821267033162558202295958543476241961490315828382360171525528518929504100447931089973884679826340790253388734397848728225496652740991043371978324432656200381997945161755379559449169159046679208834432701055227442495034955641266995153400007938795284316639725446278838102125461924689105899093130674653088968628204608401953736590421068023725927101216692415681080642773117584167192216115816883401757681486680623676857061930468700241625494289992557422604026014218504838039157907938584446662579925159803362764853321555440000647243211956812009930787298910815381197728563854718191297292656309946855396395310195831524514746390318318884925528293941970959689143555678748047061458498292064049696677442504400292629636492460263331522767646587913945828907145726407623574039151214331185216270755574264413277461170327610764980309742605483519024999437523409641949638195677739447457843039711118662057239704094298725578808001461340601421749221074825863951305968931575854096820448922416453338378201894551860407009582893768944050378248907493292961226724898931887601332522505390968063518818215307677725339245261781049684443530008406687886063917640380204183246244986926541600989957822307203664878572483080018623120287380165420659250776602273757130683367769371229757042732377616010537214502791033468836223335114795915534213172534737670121017549250545529237169688543643297662936204266418081490701387386391909797798755356246156804245380942689268422854486470299581612998658561884302999837846683820226406347172776855856936071839086749842858983575292719795135034629496032175013462983793582244748151149918035269760340656254959308685170328442610987301537208109024691005354943838392006764400541004083607368690770053819556077421209644801119515537240984500583057858135737504505942484459062223882874642517566226372940713500035385584753644797583929247158316228997002907984945023897908322931005088304811085643624526359635581420272551457913274938934680376653427068046399733001423461904652309340117936996950250272110080933388022838871216843480052186404686472426891710466726372913629402256928235073295383733516195637980473690392919391954589216417253848858840558520863253503951391973219332552436221748894978501504993635494307251363423772042143285253418861654224613486957465865669640029218598676586033059352555029326624674563214290611595356599003445174995331644686777248526312735602568996988958184363393476003533120370656239377306492526796647698067760639241457005946504456434963165718092137911537912977564879124222733721647875714218031752773968696102409468436970126745848475567897754540899051928207941804926377100353563182398952416319027760516286887676218508898967008528038087874171349438375074550559555910248996326346456419872317244153599813837049700526651112146095395782907503083728835706892353558854437055913008946602892268451152319532253153800318484084842918847880481871252797288281276784923095788035762251600657390991563238635036509517333416569906850177338098505612818553996233894961890322864256890325379149190238545742174659563370104853771659101343985147425889896396330166065062382041829653282055868639385252824193544652508042355955453382139708946863735979644033415947300641749468001609803549364034933144798100035884242506579022548673542105017535184752471652528521722975966060929829296054723224184131832053701866450843923726222590459264532170989418505563843182398610782008097491674165551198133094264723302402748463003823206902342619137809964506359500701559718476341210976411782499917275795359130049406010137377722884553538070520770160324588927744721173311884565677309695919761950975727788297607285543858506620626986141561294001741230973373556654292461365332011289726872000697772244856122112888043240656524351633056041954166086332551357744777046441486845784706557680823560337724973909024256788431164368991272845656216425454057494435366667660485633936280779086310509114068218033296653442332683026029268073284448200430854651568388186077033973899984560348146420163358696384316308022815985448768142638688425132637783539219809706239919420504770683184678167861584214408493312099982782857054552469670117752020231217462767102889576134237061093963297111269379215423620899403621418378746415157663790061043010305546802221231108460593004160695626636765278640888034159210598536682430434483425246974195311700626952135794634027584297752154026271765898610821852102956484326535069532439572204904446806095627080536765514537341756596044890932591914136256358315667294385449187810875179576346522130494408183277538580588559377493525307067324526340107032712534225768262518444801281713590258471849114019869562060922441806747992100424565582017979409240184289717630496585780224835905578522892712916595099385795843143715466681048844715408726830705978439515062579964344066730486237623568476182013043737764988249715311304573904964477985791469614448602695750226003257987078370569459266602516273074042971712402780435651673506363449091615882665677984870834716370716778690347969374704702003767873382124016433003014557265989343875783761171975556696120664796121368817672165188063160226076971595759532390779097806426343895684674533692663244440332725285746281219648016393197956574059921889848891751500206243932349588539813268475570659310851976074308546594553397092867176449816244361382935684573272936282198680851122733996011986488828919225545767589001261948561753562586365117156232549232819149247083397684630995271354800090551051542849005805538492369566036489016811827601780038835418799039922281351679781141243023556150442403239296777852259756468246076186330544221996142139549313466266660385019160346805082635280340718134344390684763707896186043536153581788314284778535744215541730152873574176316070294512122229000653259800735303096557688068152081277422088106952612010246066555586022603484771840783193992482783647435518867801110587708673663309601567070908569378664976367856417798125739480817477521376855903625298562177773419903720864833587234028370015259385973167094004916182813293990330457696192399324003113622266723781861853360750777569860789142732058285136432883686196273768612028036151525471510258575420525137161195597728313358395474495897667334684782639846515453423771041927318039488169718058194696611062510078497029452194739724946361512894533785310336719034874096971107579499584196351513215452894867239291382577537599979248736719737127600804325638876883719914260500807051951665877762753977477242742721192437794362813920077211650292517822963870387717280521778285702749247164427344597585174543954012775355094338815939367431740410773286988783777254675719443893757495353614044349992207698183441612400244227649737824921812876961154474759710270501139550349238220161129109985783595207552745177316782171271148814608321778044126718573600429122699256875642695726219629946779193019457407886527304704496664018475958497793787438991888597213499053059758798450054798675707786631282251401891289273684859252024626519299706902577555585188246305168087252855843694776472769878367184583779184610076006799135772870545874784610619281042641583183996677569979428874428859096337372585604446682341619165057364766272330913529021644666581849941644019480854752504131022236871835237124762826405043402684742649841928636962099083287820752328384277381694618587956307869942810867522519179271020241880948265236141079586258965356437434369669704139026875784553316234561592874252496413674953950652352589390706342134387503680825149318050587393468346788517129169064292250734422891965111474567967214761838372156931505423732958446092129588901960334826976854291310940338869101905721585433562022656029116387759974271958211301463589076422865915070233497004454186992763381057030577404481051299926654445789105733647204180818619769807478659020676294034340503591126232022989068794805744528297422535124389117285896877017003075877466669289463465595512267805679302485257292263132899808789433841231123194938113611185837658823921382050660764675229178194656703539842447240495384817675890156835597776778149405132623243148914044543037908039153814412378695616660686934261734712618250546264970120408415812086024193231542105905116440453373688515024707959602148331357722118512058042538761124478056353957576402139557499908983577290296540170900198762260587212924883944706439284683236798930585007162208649148339216963556694347357950079617229878324241136716648720682377321963162013429610083178158662915478996221702758962097628449594704369992778779975973658280520409779000639817860523433112597576191498018889429313036709721269917147096218041420986181999689657703658752346233154733093351271173360621318709219465302001710352108139160756055346498551254548556128691071435063061336754161094759700426689719261131661670100142355964379636889278074535951058866293852809244069738919027419269416345646201353826413746705287343001887580569963654666519529374146393853723476675410258869459366894297700665070519802199123411758978627399590768612872266479760132770092817443961332504661461109849913583253573913637007420570764278198856352391250161208590269558509017377441569452689074003498179795712779609067308527423483466578950262010453234861634127720458992768498615974619771424082239567951774844846437670040850197048126053955659308229424153287096281293397142238653192087721463540008453808908045154357652077709868590709637475206942279473721621225410848834168842375317029282954952827568957848309975917977823404526790437457699728270986109298894247542189026558134154450446165209559863330640225196241708334140737438006366839861904292021046551883196364052103871684151970970003573770282282559370636564356930521609037449751257226094060111634843698663115962172144420120262198716712265167352747597615889240174431590565265173192003978918141034045054897606287583786533047991554233441726534816169380639582502674950127658910376051941320339887288667604462913378972620531132561595423775983757623440669205705710670385768979944592401436173216736738981720617517899810299607795379986891052285042263617469282146002917674901479957933961262700872490932190064835550986017226984543601122289740141356706131955039438590404221125662563423967600621418046614112891728835472111568145818972318626686434074367090326980357524637140591147152153050800544053737761291061472574069362117256636417188539030030703434368397343415267387806086491467073234463777961111213736582478173267898206519444444913988646149006586302680543197463643375422745593069169031002760369161271782630230726554055773608985660615102723920698110116525727642147000410719192251227050647877123874022701230380549663866709725773417280484613413486931364407790629484411764451222550039956658106939459538297496972038037918250230330312158535364183155776116252074348844052559296599647807869002959647414980609434199418121984139726435909035736875147516052887108516391320339433067463082110242466337864341644763129652681612832163987495392594605607547842401374922313039443226505494674587096208917784201047425767088187327608157826634560460011380932753001784088225924738566114483186373659654121714939239090343336639206849560767792089717004507341432491387872172649031728736701597771981054369653006121192329793902949853122240415378246510419371561639452728212107500336238180036682064186899726699918839312984503350155855374747729289433359370133374913458930762481087092743096778148120925040533958336887764102595388081453038779279640748183926709535820392138360498713113616064272190608542016974914654822300002852205748518056756464788753097310369616846931449164318333506485197457140722767305960079330833539477644254683345796035767135856874921223778135188215514955762567212497725642882994220951576915884838558460748753434769831582567386132247187480220774088880390918698834842062159501117412560619892330101733301619699599578732772303181613894451793852413366175775093841775306991020871117369982028705530564713419064440666930920795361868933947596140795775446022790163065425612246645103022768618818590131209752310110526863686146813565037203206741126195042301503754702216435888820129217258429515455986158386689694702137469715252952405059146786593518033792548538606672469198012810587346050560222931814993681666267296124872828591165448237498866483298119529067693161618587977268476802296184913440863337887743046650815262820016644200559795711803729390710454382403903893473853296784508216581193261564739732883722148546066288032767122349988818536527504902993757603553459148703439470110331943435266636202196399890174430856655259398357987683306232835108600191399638448919152704953707228918157546899525763732108487475379607687372274218054651800897039644703514647637099043352876480437165854616372921655626508079480918618226667527403240542755860296823227957368346017790096746080048664140696640416367702131271203595676349062713492306206844593166969681965928188344620898075932300472510701785244073497496648149342707727475516010176201030802796224508714624325587141988214250935274311933894146299891388895750247804876166907906320050203073015355956415306121375289515593165703133324870832808235176452434481108651066400679621612720629179283584084685132828248537307784357148083653023929374268039558920259964480715823061825796761031484133281773184793915726008369841878236872948430086286622853437488127188191758238160199430007100741165863554465431663084013658183840715986899323919566306305623538283498221220038401304208749889542249103282448088502099613812612266589492279575522722032024485580104989900997695214307293888246819400600140354284391429395023070200232271950382008489732773225288560166641715056901667884527494924260999941691961512117042179601845329031666230745498752250414913775521561917971419168994003551568832816955958617964767507049632639489645270024777683035699004693993456214098936632934960865804524327491030984616470032719740407426574766604449162164578621635714032957576292426708476403337397091286933536776585177971786008886402958163519643631015023925448442310422603103063024287773056582182041000560990763220725336334073590116579098542708600846474759307567584434333488954164434544682999050343833117086352216094715240892735640798067938121409748999018375351937229969470236084946564729547532672181540753442601649472258440504436570794898129816047517714624033659536721792749268353383551135523955231703341913285753072799235375472331313661817843891136440451459046574138908143139140548670129465303361531419243252026833182163959282151541162791331264675835765054595825662596064095772894150206887381243748713008053052996210009471001976917704042865890940049017866485636983504754137670255339862926176154719759420309908013955298758638107544035876378387298577611157115100265056116793460427424870540838476109590829779024274875311498773903729323867606707567388455359997705765552382114796637408592802720577212303676514705781509936487567255781946905042939181943652087663790417794906791418487769554398854467482605862478306394976114155734762392893788814301209863761712211579940106365713201500951932780889245669879217451094940110861815742322046161304846299665326072582739499411946137278302880265838504868428697180818769683628791943142213426151701766345464442269673146975137780529144555704080809139359530810190809785365446207325196793706361151408204349910537890351898063731711068742840873882218874149747614836320575948733118561177281403075975972667213615737969897209417654107240494765138216178552505921584822783783266194128883713078013817410489682911198523307418531491616334190366477404123296758345043071680751155703196829433838197965656563535542048352474281741571521682210782807957703171181275970241013182713153775876977977432586454314997409620233810906328362091934845351889628624938773843922582628205766830382552347498480710050931872413783129606512801457098628780135317960280777291575894881471277969410858356910466396840529614325194614452886499731047274347001602957167792547958319876332101154566299073052337087489186011461556572586544552399025226024835090374278975694220002152917025039295770548980136604812465781433767248923703864174856769027035658710905359093155383390636174243051463445428054790889135879640395501464176454746670681150622400043160178623086942046226740054893694696862087332924664528144638739363892785134165476652857678889110708817641566798108819483325851687069995770841368402264766520421252913845458847422704499222820766806431830849888493483734926118367449921139779884560926667478347709904235162419389730886554007354704408591741159769113625265183067099050049549810773208100274441486996559713915364807682569044560740432138224392173979260905498959968604910278131771224834376539432795726628661748823023904326264564076173020121561246144954756020076568958901069370696580230265213720528668344891865629313514002579954555793356355606414731427898192683755618330737488287518753973380819523206499329823192957305105239004650196147482215414598689424617862277601209137580352192429061151878233676374665493144832481694551070654139244902495572240672322762713234687268386778265532726431320078729048777535218065218887837456954593947234578281543799343215457101657310600468265494147196711634997295008090404467817778362657963398694657332866883701179572676572321351948254011278182883796324267616262656434072001885803824446915541823413979866443320502674335986433916097535171261847582924449094806437784603260938561012557903288201556642139571137991606679482819103622308391965379329311073855593052712891628360823750502371801566368745839216956904494915822793665462480055873818945357804308996926341017456466296774245224481432994877611288423925962046221232254050817025058868213052338377991014192252259975175957705761120763063277089051389681908051359872738102801744533260780042161317692100778201986464820188343492010624969144322649209325932045902346116951299580194326620771408381635897110999456780492505692154092796936422489261442724852601198540484242263365329212133886794402079429879484569175532689022813113918597054680878074277203840340290341811597498973915035378232353870820468541654032773698547970660976878696104894537416686958660397334117276996065434262192615906355685561677528479410959388891286013760100898836813412566978363744537936651200222760245920967716901354306466068129261471859015767992506979279034839474867697679546602817687757977989508601773328294206528400603783607862261457832885642332025579546550530728278477647619874411498631304368106262403762373946932374022721765686846978962927998244866883951051452555273081304877645312272027244245140244967510569477712105355301973620511974586298845837683150641249372303810049103519122884640410638326362354352822094299901124516364474924957746542031872027103043154946597252477644537067262360391160475111863778911153578102766490310421399058702624485293310429106675455544094943982542610026589739180527256204390995198778634999968558051596022721781584108447112913678468116652172833333307082296343539721073390744963568188057349469821302935094682656065442058626703271858241234202704256812500987633436617179957159642006023316213301035138801310771901149952280318088549840792856746478809407510517894870895893265478661748783895121162076644498878088218017958329340204278659562188212915451792783489539058491430166502184743612739267631845682949161533495537602444365615223972551865058651619979902658598940327301851825038440569262613356484451007551906763169129191320346712143084790296826914683738574993765325240181493918580731873106990099354533935187934066136627728935770680046491253630107041938542259605748824121467266998350835760562041726218241573630972987350323264517301206149834660300626898925023086691371815423496828856199166122216482945867960778823499261093779910294883541462369371985911536928556417374527114560613683974856875795309833462757260460039119575156935973400774637236051105617764338460405309305679155554886769543191517200128038324882075827189100022066307551889664674391074764912960134330011045809727627876501221645244504187674546014717299560452514206405283499119905919524927027283636248569214117178520216881059680622480277291246607624849914234328570004751774490835167019118368173961669111219917800470209048360315656071688726396873147370111864865852615465305348492177278737877367206256171599629225724590711477460824590705390175854468822149833544949717661316660485092320831035106699827860244121859601231698687702523253787665459506412070256278644252546335282334213279325965049813997771236118515406974712633937345549179859169627154524391834796946636926028630483987124717297538303144765996480708022452732677539069699395077277979358298577227737837531065805014835265402969972681057145404159977164118613296695372854863924645114528904520963437844610384959725451468103254673447791736937672030913207912691690057906414188967359498960877154484294699382324319428139580259754891824402920739981806512423838127989737675786410045149943038686468128020944873100972720541948644096008092547924259894533830796585847647723529438069112512951945547350989711496665215381962932073422124414650344985379614533486846162293171709039240805377404602215424672273787861595579034792249230398119517923242256704943831827743251427881285481404294397232070960172921200178669668850515738320563318984221192801994805772789476613617571530579113338099398067392759026143561853759259439577939574743796276450019498456422026080457259145926585080346817053828416703857205226814395055299760566508825013924623043502986831876128834899630983709657668587398474700038436791238597684396342983958437605849449373643240185519981034306269234684433884797423082370298423264310988779129416892109122672447428683511544834607390925024511339741378825003446413031425942360694043453363898548230415367395458965826981850679542969994088896056219377929488202563522201013571118296351079640863283594759620986868852728786904716998482072735172820772525208493207084923504554392541148317960919309992548365408487001590198626348984876353467290651258341956384876422568389810661493178044789457369618196729218499334846710067119162969706031311625606359876465394409078918752723082604193642707925767359992778929884860524453189428213847700230180941086928777023615579766717108092587396527116439703163424425303943563193562687943251214817361059683633534995765686915358275483519693667171496115064491526893993277110000810183416817318779526062603130542592391699405883980669234160133467383730207721797570422994328737286635862296727150149788029302159450345830339854604193080251493252202902156116718506113343431619647132889399191941642185753534344672628022789388808387759206739317249466847419339990276889904905775711158846535218052803526395075597788689742350642397662696333790484639321064410399671854190776086063271734790510087277428186040606013867808206166712222784120349970526866050267036484470857073081289757644734840923289621648157782367273533320025502979948466962903237808618942292195655759820976798681242243688069232481342280871676276339644232135273263703131435855865310108148870087985040946489376934152505802420834909930889943219377523992423601484985980181271272965224382808091604039710685592001101220151062176234857177429703884798889160175738599089978526524734155604684014927109189163378436650824203009586812808938883016103709612289332065702096277396386122885055841874093616610671607430733511467982303704346841992197373849693408371533261456508382874144078674133873996775326679179847885144822608702161347329904408761744530801044240328910654491450717725137157403781652412200974212824410240512700790085266424196782285692713987082279850315746623667141496200991288470520463461146365729025545176663527119916098187517765483113515834629188127763267642514873697884044111617423391378588892876530977601296510428786906405269008961524127134038160891700635752776789656983753134704711854294554529477930264203315788423446856619481678403480079702411978291314816754824800001791909100822709171684111130346680856162590386184422430358252712474819154705495426772214612741556669151754329495856650377415837059652324628135002180397844935415390127002514676002807108657105697599799159600905008277161648548708989375875101610617237411318638916308565546918083916998963773068410187765899613563184166235847354861769032905725857641562648055292082894583015397390178833078796934722058202832601999704537585895344518364693408872794210431664037162017160178898991959287841392904615434487884454401416622306112355536243005438703170754014265751340108376230116761995547653538424063748495749561615700670731496421565000909101378826105047510108873555925094620087580232583777436016528183726241485455848333852102267905156104854082844009673276196788983800687863499402571924098075326797371760207994062580626944251574613127361083000948541788664393511299406700721884197775086295108867120302212771176695453117977537518965797911009937288610530482911861065935792884214081250833070753771735700912851261328434048548027288319601280567024619105593252961355180462040149420963339816900549520272444207364470871054743294060238485756231002504974616381851753934690571765824017895939467697310012572987857349254843901979984172078579386044797028498335364497305661399318948541840081034277538990747237060394738803161055393196150924298198888780202483449938897045123863288735037901222908838736565064438863814791901687469913604548635215441973225584387811688466484480758532547908305341670930882210877680354518896863893974035005443127934915555799665993891333724867085628000967390561896885518088467083365262468274185730468182062750125747379361834375569937732473883793584589685116741546922460092051553276646644882210275784884223304664010872737280158237765712960162139741703301457448192543279909702451445558833521423164866734268761459534814510905417587682235028200498625658543644307418001408636728006203632298306664675861552470032218770465408338046372567216153963706243590932335885863018528403818878279885150014318569762821247764195678447889217100974413930480326447579559386439712751526003377592040355952543881741061363686663445102996131624483026592537834219286532293867644251515522094669393481952465394015317264225175200851079098563419746217728685352418656980470053084440041039073957374443941835099825502341456422610005005319818044567859038456704301325078878222542078977521043976882784307502637304110246116571368292722210038307432059920356117167254276407810621569268400595692136036695956246882058649408416044732712620099367894703739440705691530687307666118652121882073253695383047026452422859674665078247948038634573537861803208377363293399591991103503866115065138807614033479650217569140023301724980390175994826597056751149718725291132431864782192000287113675540279494449309462216387949425235550393287566264523176029385613348956449844050535433111328262579230489497911020548266254153104780605941802823340423014076484375173454596001857429869749094513806674866182584956616963602956162299364821172747042765511596337960694811592621526414159270085019051358404249632857304354233158605602352239665824133046493991424869280233393441477487321264897960744915829559080993053680526108850582208835557840254287878832891452184870613729880033207449971511253161388651594102591482264099848357345083050501804186333815660492836803465758885792445421890471023904307590700865332002853295584970003509996371753023197610713361931819449263914615558340230349553482079766895093103598027865765462062659608876807826546169528489857099922012744790461072385229520558519404288498535669617557163826984686980499813485993824350569395716383362786389950334227943314736160013435100892540941999767808925643177304097597689430822747841176449290255251070486266799258541985801206386105093451795932550266274072639236545428734279254300766140677999366724847866945800049718088722551752559189072651000790860824133112281884291804091953945518271414053184355076770124281972498480069587515243144181750341880131914777160443210151058188253174218187011289959175508240681923116977670675272241724244481139803701399015813681654251064609020541973967789456723589686930201236942856515138707292307460464658182503387984373591814566028044652096968305244758699144349397887376802970861593040957559282002882239024402718833195216252327168095659385341006430473958734261848233708484035699929428908827856600306207245597535115688718803489835826526944151747328330367940048833844877436774743395600154873066946634388825793699263904924897457363191563445591371652190556580678864251016429596697770926419453146201650335236256396477560186436931740947225746113805296205230037850534021313248545558079630978189840236255082521601248206347561521958459213460172874618763839618305094541384394315410426416650214840125557043909007170892126848649899483215550093497135256813568456265193808960019958135619365798583933826002327900746331936289920724125722816086921814562791619524737150194373815529176837318304761811587041460559912640753951790109883490923796046717539885388162115478975542915414664887706611921665115702865284223991980142390438999704213052748324102881877504904156978193686540968748226272635168080951334385589159134295519230415005977967858591222703698622486814850756965550771744703783125382179667427201219620068387084293329672170246923992075934400868042710344468684352214799503241558389752274273214612127439855695624237957919144464999927879965195489083980859208805228215367289302643016894389948877833891596487967681975119163496697392356643565939996116501182070132012143714002607981753185642618751267648688182674265871387810274253062133323663767292480985238432070160892105081057780950015433049398333225973606876072117210843736479889285142167774978117563320752039331661306526749291440138843823338410142812971423085449370061407377542053744943231064636905708264142559261599410418202291270387910580501334587268383940624640287162952546126128015904290052930025161104990477178072030578192459865216400090208396978187860968420323879222976798634717300022189445343707571391693800899705116473531737851497909406408594448539877915584581531136499901700584373121214732392727304900753063790623740943877472200544121684432753023085639838153841583244662217861142165533068256802398188039195561023747347092443370060643117854067931385149793114112991464806065251137086198095424573149415924033971122870552102183344988026212286505648951403445821356328812861231451266889252211916640826844624075003646481399358514290444262731220654624690623850250638761063145195701991991524255970860969753791324632621813472840496372706865696856622309030560967465713977048237064829561861496126181700101102239546625279868712973301619096550153679928854549185866249993220274880682470343471188275801169560481509902803124535016342360758698005822321859228416893688114655671458129555905384276045108353368166212526824192143168328385289158948653942637256809939035164808965879271126138562365431308057803964792256061542163175472288677528318460686501406377703511009131287378108599644053182802063630452364575414393902055926770890868521410827907210441040251552204769870281812096943400353202887479918567324346688336776773477041920217995164163290905221393331309285502680245955987499848244127738791715717987469333038004287390225659764479539535084541093911959648460713995991603531947959137487640894666295369525406236446270627975339445694323239086218650304078980780036974374232392811171184509902026914940627246984400196027217644423407734865544709346299113968685812805322759188062204514488697963527192615565302750588012457066213585215611235724796722452044357617273784445515960413262781714646983185424839669916763005037017495489088557853330605438645598740052005097472502130475093674253143672813550971713091217373775509201244240986987597496122087804904258513745615224181939217170365789029106135090590256179816378510416839976452641388371956960269917385231822393587774635578655064684407039889151073939444513733130506607297502852922804942540697039370218969413563026628947624537484752438276575621799080917598216270419556615470535634277784100430665564228514085291894027312095428038879186649674211756962015689253449626824131056373899167991518837471635405158802642610425126561310499818247035731448140952779383871429090981168431413803222946666362163572860778149661742355367366711121025392291347101702977032980085865522514207885158981142820025342555460267302472839688584808567385409000531624803288277517832727047436285106415612433404131223690750749984871683239269495309352690797482881921693558436924875433504860993710758720812922483740459166229399299511289250144885796468885540565092267092983748293097292739293870515377549047437918327944796369002221907302592488147339420243254331324487113170614020563074844208993014642728942071300259200089402856328998291177106933757477043071499920492833749511733511331209558277350493322728235125355107943668341028032616516161340619153951090904338209445663930037456387015753241127807818869403233044780961184758172986607173878036343787928724220754136775052327834243057209357584406893948457623522167418865369311146391051311098692787917698733574762023152043145241311483373186160332805072907338762979814065419981047668352700430911672646371644469176554491022470934928033438903414301859508684532607721380084212778009318260417612015291300318209883945674323402077011252347844559139092316022585367917923280615777537605273251746544162004375972758148050649376124097465525666311491117258406356582618529695531338076574948244066539036467152375530931445371927107434507356990876454070609165140023108789124860525029946986627009453480423442180441081498297708003246192109429696078172636625878368425704751101224422251843919834932809245100394768778613432711575433974456208684233829808752440791671313219147940583196450289780771555388310429738824842662146365744844434544957416493606387404176922048833467391790072331775243196579757414048801990488315150062279300565991387648922460371324260759139664223325746254926816176870925211152695378921353471832984974038314488010503801509719054850425159071905026692115463407574525619986399560866706934374233276000106144449261465802311025355473599606913745296162525184966034203912276074124491965985033583166935015822725676715898740250250562024104766212601081215456776319234133785251051950919755765223199137495899588036891018186830976685399817772548114063046578821728899187578460907389840582221566807695336844610298280071417986268566220457120726175326349674069203701109307360964786984533848504024235756202500030372964859264050306299824392497621023983420390354101535360329721273539963069800341959255887203035162836555841471863386347526624808306366104243733335835330757534751734082626042395737366856770137112474167860784647670223232997834218125113556612114873842152988054680449972010741080727729878097027905207726481941576830885749145321194895728228240371537255323270311667416674740474133683110917921263295374493665312039469656977122921608087883141475691241868387548693868200838231050006432541268035425080343645176393158698049976382789996907876600377292909857572909598759962055902266898153407471545285759542582385733513518592151310871409990536849976304995384929502668964064502912102810736696914901712966319698990308205034883927470760626152246526546481172827823955576253598055911095181440700656914542564052545041902910298194715007845318323236618306915182719481643299837348663159456529327769938009383951324050751731702521820764848950269757247198555801000436628288082033392218410909555543510940146606287072714932942785900680189139911899534091497127657343100280880576222506654668532124645669057319882546633645736119562119954022970990620721699872903662618867171100527408294794619940950973904134558176550210321661051896078857523759564081644846246914066133924180387876371467590251648915809130405003257804978474398300527676699550816121690280001304469743249718693071700496911968451124544865815825824485937215415026606039752635582675528003260001700816485564823067410347947987738336085639444034669639733091785315334666309023183161479669740750841194242948202259214513561645030591141459398017952903667300345105064205907933921569552087518659653182976034688319859431586812283500038687710511415303075435799890160648822565122130523799825304794232774236982642302778049905646064059619845895119540109423225230325694841308675493125799117405150239864573060031460265543654458828102039471018639208747926426940919210987244605373264161711483298906183980129444233295738937084355104471715861255677114965796948164274092701987637008377847112830334819052275381546538241640849544967837625987427480579397008242437088518699417930008696578504514969066838181204657223335909646623291655190583972995728279024393508393828865519088977465484795667869040972433282404589887128464622462415237502742825211723146085021309972748297388774296852191268301915124647683311906945031398095438980602533087660703316983048301565343305633633573842481539942634328903207152252533620523150946831872589220502905193764836583917994151677584191265555704997224667182205182830982145050557668270193740403213250737044687006145576592307213760237014535499865141826390814067111162793977184222993188076425778118795084233336312024107229635403159108402044793705459766110969662658202168057830739728063587478909963862067312769558722576769630303466949597689876885457194977660455898641292895328673847234228535853196109028337510614709900609765012209161768822318678743024930013426757719151369653242121076494684711622068029849219828474430214803373404395620486701502943473821666188451037051431345888066400816501378670885959721560384303058679938798335844445289455492493452701387041421735940250285410729253974761714082482737930459052185745115481920115535790046665623121345702469210357871301844691534166185089047086112950487987831332113638633546436678144830339021772927909894656732910996217630430338008465893256513028874005739299734428365629607979957642334915892216457598124501429886597705487426693518739740099908014468557912790578714602082883973598964551548407991019556197286261427679988539136918639361016235520929707253665450756722902662873095814094995157818173896266657806931381342790882778423473557758887595795525868045819680603851291204062274042719262564044195357613794649639428266705359952533044530132085392306698635199623737722245553715128119735208064733485182703586794114598094908993480772782621777175204406733478871411511569465795924537690496934435436440374211121483080806079006668328309200079903352137327843310754786639699517243842267029785181939452647508179701054588899296275821301355803354264348745731346720518463812137724025319067788018867742632392823568633026544355126923135201796620140895714325664104333152072092806673498039098203303631173244493935567314491999443628093229929922617983302507374145724806049596395089148450350760395288123231903313534124044364310491160047284439442804574112654877541599740041188431125637138453422781379089164249985612845289107614752379555606247761249940399891560823693358389697239858957989931092295617297428693185553637277876875656275960458505267452699883456351942801441345705340926063013764274122821341011489660690026005872581467896443774677622274021566584456283592204069912600621467875320108938047676847212430224339572197383728872283128570810935352585736740294484901809035952015985102103819190060416821881841468919445758328868025998730359947724854961124349415238990244127494129621239276851441542324426581590469455398909086836755357418308732270656863349990696020824002661245176383101693674596415946110028099161208060528299026957083409772353939054290476059872752089685840294406289936441492977539309975485326746340939894937363447686913202613784685008022743397128266432725493382907217910186505347547007570088051157875877066483090311872088160169261460177789066607731186593275212390145747342067953704844895318957978042584484776899681334311788669304987928476332084119305172394821194352952895477716870785538709901292572949610059377443953739734766034411381514504362995691167012108719096688767943564990331242217062789255531082141146655840886811932694983532314876319542061831543859015385146706852329636430600861508626245735889007472749426054774089123428857437570336416003318674550032149403601008099546665389748550007403511159858824787430192323418710109541123015985236601480251529273513765603035973983122620129771955671627406728779634462433247884774819949664795200148528412789085020990025062062010222621385354237322815654690472729884156178093631737111341080547081551467908493610660348103638807784428973300808144929629899984399155599259231249274414658017794940551222799131066671637509160536589147453075811375797309817322095562233798016886581425836621891728555985713637102771882320637466985813189436327052830116778103024343589944260506208452706899092364038855210464080860789795595653899027421948119128084380252023146831605513495756521789639143100131466180232452868419527415891247274172909175202291216190436612536121822147415440609045025780406076389645643536282473526486023308614910405469243671671828194917867207605903756663570587731129648454360769623398560703799797518706176170478968645370690010172441128555243612072528167949059468314955907286010719803470312154015242884874063002189680623706600764265130533750335793981850973831612795527253037243149893760956266361595101299079500236395601366039750122400796751532898829102377098399187667774850471938507809237610803833084061046422787259939810031299905931608772251464521153135868971191602147810632297556724374338200702535267232825575678323560761986987179142614634089445960056901433242182875735107658611475644898015668814869227554605078536928588139807285308457452497963885873105482974631061314562814965602143540412521659359196182847935935569910511853552491179662830898417066062117474872866623836193789313762826764131433154513144034858020095403036621623062339718525805753641874714754926855624262826864658801482907841662681540765795182400571351372665088384128897260209235812589985648118109372282770939539764191107597419501928958365230679387616003286710482227287859303219102158869485340157581154149361569845296360145622838726611061627016059989997996429094825844508624652753931217990287835799185186899541860269584515810483130784187574858079594493156086297523694885785169324823290960824065962974959978915636633420857974887920280262188693183560277348076475621815606347916836313083620120875613568685915107491730159214974214179873761094806299535879356331549494569219735839693030607826328379068624655275340027270979028679204646731272928070320974447076503237554715333758977931311257844289993889541160819081603696093467646429567532074379125932683371318571948541823977226356283486687815547038328255389050649892710319055114565750941521515088362221884355036644185202828687133833557870032740362474282136546638992772358108080399620840441396714204519131904430622349370016364856536781819872370877187430208378239080969214337887563486308527628943361293902261617553873069117024597022599360645515350560533257770997350698106096546357239609304852684961128937444180329025779113791724963857242080704832173448532373619442333015618069568374097324801372950347428804476539305455718544020756212400289149441793621225205302851473848661958549430661075955344227184878555673086457880380934575224206191260094990050860608029307179440523810627769078878374274995719651958280626067181930385489669091620176085722836478289686914166426825891987432235433131819566009725322185756467794607888941149165906650248470614530024079642978500049352654432268694764658011570769413974579051675567261823652760580519183495704194505258991415942224342961758133859928358757877055735687329616717901170769127501067942778893927738189149394225750231120225817684721455831302279691145346811297032378447892665660011929793463729175912783513726991408572767407140871878657969896759667624404739333582353068710765566743534620112847954822200732062135781796877599050582302987061472877132732596922505505816711860957088979567050651067280021907562302665147305214430983418268182679628224495146975506822171436157910299903287121432314930261928997839647125449493075614874870304414694607796743112772232064944680568444569528167916384847914848820005116459991508143403697279885725703022051174041367121746665133964416677785307187220480659152046826832356863159162628270407232536557168060165585524072601826187879509187513273241979236821861750844845443198676670403780315032816004593039399150081226108464620947548991028150322469550292243385660827177934705710523457238969423287786096897577669603866220110879781866481917896576497838235658802624965794278611417614074431703405091785111975035081100371859845276486740739486218435735548286559353244017998982197166420802837401125113447315992550456236249501195838666220096821288688609866554590137348204261364990981262681703605919123571067759229678098268237639776530231258251947566659790527975188488183289126446243828731304244273290855417384848657972063946833524803770484333036260114945134440514012103134711425254678443241606612462727923821936366564473960097855241919274373298904422740097242345714303732584188225613616813099850807643290428907328969079250078328452862130026599443745680020825188409688305554216552144956080496125688575629191465902079492564493159932899179615692678933673833704423386397350582017016827298864731221202828216934863020459988426117741896056556640069101325381937864797301156184724335268676283785563599553950155865766783789788920865730563748487709873417710237632297609077610452856714099721902381812930097965955511708346955639655223393701518172658366761874430911962864487982040855375899673715155825426151524603632709707384729987183405102452891949728409857704469784470375754890123824522961749562016316549867493855762440043708599893213159227491101508964719052280108993514227019795467744603503283152131693833958071045954627495771048243938157911969001110330754022652252121361130602341141400481650340704929503929439372738441606436033539690838389426602743738904608970243936825422198276421785537614247014036515174513275840939599210041852156599539669995066961877586106928379338915553891291240482386526673097575354725760725869222642094174556107093327687258955868176374024387341517911573787596407137943774903805107674423819519738338490254931574607668014702982888175560380251407461559671070939479797699306433379779246840761513698289148989065212734196120142204774943413403935256531357963035286495653242069465935828806681592198006826800094632843384563741075030736543751205433526047505280746655175857245565279985191954690760602288833596352913490196657960614832757993316381386612449585332680318073798666001423934655797299152266072429846179740303893272740737568653297580647593088482046956291893513300224717774890878389103776205906924652155883716982558724384630620567081092090829892354838242457763326326063776949048205444466919628885727093673815223654048920767378019541558192949389783916668357759931971130222697587631560542048811142601659870795662489413770742839770888193121501257978379360836476475107780204805567239821743615314550763790197176233083516779272272865238901423552907213556073779370959401601245233448851091082070349254981705785858380006311031487141542166929070235424343291619497765079205569625974897035429239871391600016369963436610009287319748282050944765022568164413891128241793717077624074187270069649153925896516114494583877716562848237646575950174130239465256531298303459248781716400820694559703324221631000841921144570551717757863284117777273904430876922072408425550188180284568172516356683719641784758371872120070171746430375333310741244035782337697591176656311151082894021905980120244866101822652147218710657600837523601072650561513001595448901901370353111039699357550535522267656986959659866948233339295643041368830247786952248435293766897180807987725461523509207445063882582663532734286529287448566386144242645275530333259190646186643363069496054612155277049204006159061354482096588384698462757455014068049361690812293592517680863522880089972739589485311173505703512066484417043250150982807942267114995980472809010647972934300061383291884720879769992322884809144621196988846806188787669360295088418252632715724274192752136763285264931908385516904623731153950164700966933323370033728918680454560702798557280471083414064579529141230731206339806253808243561074709314004021617095948039339715021654487766838366816121540506867057918554176398610794254623313435333541757862015766519675009566995487989201460148941364186064323937566900902923626774117820121409138720440943177083355559842491095776730081320945468071419107815208021957105884299289579573801527965201102122423265210200427346425799850036086071346141365467416891894837892092025293331103828057835955652919002487786069914984922608705681346249664344420793726941409079257277656221441779631688212767556843325616103208255414779751345289446456352790092586615427615642568712941304526958442557559886085257653554370775981706535720846741711220924621118437113737268647207223237238187744162237744618757079438018576765711134062037575700284768020309652446372881005150429367343963536707982780374670335999006777927393862611349584161462907973847665371653120174917356637138765273021852705754314530725688799778171048011411647409881234448050792236483519896555614782757241505643402125705417638746537102354138651779640573424184563666444879950335560170645363948036758256767774701187813207014376214209436436517647587148721017440676503247372119367755064730692699901266491167665855095656417314202081698581421124856753698845528775553557006825058751678381174979840527719977104980359661775486215652316068428920851580088247843681584617611603796465573348279715973352689836646572420185702969674531596655230870522017165831480810950466208483122615166301202647803120106751856175401888612200686231756909425068644359663654931556981277007999669870425091386809029457375209586690376351765081677858702916763281233811968622581876352402677421914029080755811588285131201789448285695851946603873090339500132716471603787801924433816789093445778964587529847897909906055712597787727610814071465193045886422127416277405744646826804947303290352740738296171607634085146233208286451495414177737461377028260712871815669702471225942346216313383661530956484066700082231804782956301618387366273256298941233312327799397714047459658131800468600519264298261862470930512840589317129685005142104366455852530826796150853430218076413664556258383657961317427033660868371031103561169719013890242122866550386798864997937056684729606347728229591151071063000892906261319031596793266917807109050213990130324334825308787975844154679073612333299872496277968851380199875904308115113977060786081774405339100247623281109135126353595501948403386729516266640774271419445905064500313217133646117559232575026415733229651870537342942594771865112703899047395873325357611255200313070496009577245042994098524090498523275729924775358148813955674360059170207140671524125911672631871281493587752481645789018328092976903130176271089983093433542996898036241139948950205109553648862295945898672221457860911239659284559846198286801170115447135144246943130530142297255881421058377595105420255412149329175930697483407643008015683119653195629010591428126075252031234739969319365724362939599250932288234695946759657056127756047459359684628939849386049825234628635515301582571819168866867885571756002377050117146811754426655740269154535480906489807432348580502240257412070303413094724453696592172714309060343259396544741561357436495967742559924787088577143582652600054770623118839855639639241879475977712577753632522289646150822113409658372269209168961890729175035377699308967192656868002744316463389184374759669666613107573198121451215702861464938740702271106553880941906601924946339635229976812684863196058377038389286101304934281823125611048547836697156674217672291112957065178024486366915146322948191679578657189909919835902038007751701214284650195458299694196511555059460168378434784504600858390321239578413193083614469371172085203115388329406214117691621985020383654592591565990082607098521327093324854439855687917786642909733323399123957414058770613658140206553913740886331434757467957931875396086110449438894847785677140496904776186626921259705349102350025566974814405105856946237072976188915969555409722025227424314740712410723001639058673075604330269731431592948161886713222132560807968605550604469323720467983474462316359390179244315875983460075850493808733678308425911054600132067654525204382255585508675579694261260024468053314544683421381761229428178474649799312884175759032205551713668462131928845772261505142358850746430734826706562662776461541690029059784931441605115268953737583613584753915374570602270587570531834013277677160172332485161135070153943483696218715133448912427882960792590491576694106981299892605444803745458079070959702230542879651036178810319784403350965211070402544771209817616172271404274090176627933117735230890452262652685970078467665333934956608573756724338591029454048752865487482829991906607909730814140411752429817303625800398340696251159444217999632610104960175952065562975730814736748568632195887653294999625766654740427420367349489463552151449446043422295488259449870887406975790168576907636484013703314888355115714530312040777047404376556336404562709149232388178382863876664069303791440989309298516068951695845226865976794101313537404358427234760485611321326972979372985070896420660149334393980887878235199111954642937919671664129341951531877877393150495984803594273996767320673943080378507695171243583702955213885192899240887287098798749063586305069417621497637263663980369904550449359036791325933389684444750116213871265214356856788323291900765756405854083756997982719769006666868278653851115315300268783361782687052343198622799005149792600050467261384615628407336338270460698561714443697077302151138227810268834796322036164177576097787683218017837594208932868917410176467332472965649293956781941233886828626420934010690445299172280716516057067127334127541211041893883164652263159255339402530601074576274876090929311717559457650427544011112291029513789930731422614758480935079944702261734285652251672965224332745762340363222756381700910955349690456638766179609686841657085255492219515879835568936127809591025789054897363797058761964348780947491133959037575247055286834499653264543621142650245722555844386387303446162309098994392284949623240339199551064153650453041758677993494119886525602185149271484131465977572526269359705974040242131381730448628355125382946071288015602492930577047735895633223513999481048642515659220321259067443749357924829788145426722965529957818152772351571454490436711394750823841191699725676278402363065057137073413187310398812757324067436999103264462815749703682852389015000308198580011901185575143049165205688992573177186676018306157454181129045463105965142519589953971530596108573468583704871272923468793314631209605190179447349941861556143781033369714373762510770665305252995482995161661038576052327017889075340482705451366951752755839694355934525482092957267103573961521619469058778515148052052038241617910700988953619114317372832234822902654341642638744152748847125574660728972448944976154612318743957247698366044488184122915784248192437339723455219396809435889952327235190379461500180126752925344880900603415326267527234491165910285906791820699837366525594755195053192784060382048653828657310394750117133501343938499897780105172800382270698038330989665192976287949741948064906760116503651704225609431558320930092521210484281472073430717038156410941707842056993189500940850553967202455608604682363348700372282359704378459949913182574526943912083617153182132210469328458527119032408022890247180460995454251728307644263922993228059245677534416816918576540048992911011876561594462062694610026168581810269049785616916886494288266524646440172652814570741537545678860354783965053928694896160345938672436969369717041922319837856629781441963019229496334308686210422863725339935338585637102208995489117369101909828810482268984626657353716687165932599426313200299013884318686657917423849876891481415743018016617893771276976206579730268106792584558446701285692610428621948266382089997342199765443929198926786371667756451719526130006189219988897800140455531883390374351706239900079760079821824911695339479363448351650505778324617739547147701883428724621210948403756778799241028196298828960690392095588551357440279320915805598772317423166098441050377522283504054772803703723520543005117595474456628286283423457820823361499120583810079175603305060579517066229008687198910060293760291628998089584408793087538257264283308311969602140189673907237799895707705542561154489717054545624434966074856498438071636453016399250385105210140523375683624003998971550604389450006880735852521313934984940653247617873599732669450580422203559936524905880565679315269522310755767787387977028241068138269206652590958332927748088622806138671727040382946619052671137121030748392485549363290781379863937924367301046455919895949767149940820604241357970640511012354958472511917383187384434003114761050141914068085458333729976980901785138342267227639928985002271622168335579260347425294641395533837512420647846174544570602507939995057913246838046824889846830204763017627118459471148477625571685409445718539345927817912970821408936170728089075111105358622862315902923874776766962110624838261270213258906139864790075903154846973195996074984878406726128711528443124541553216217123424623848358592406617848034595211619235598724089519852771177844785386082006034845880038976693311566064102856827386094045438479411512058436332072355442683735284882705093396637560447269586244017865211111565158380437830739727844626374053262600041934195905111458336635150511627860243921744020122635055094283351596295257735348621755700520757088876403805636912249006812113484874033731622200536590854306649145444099223145645030645796012601093882236722343165530576608760383165308708074670020758934518027472376453268214996477366174293979250530454605651985686385384493640857322900307788880860070847332765934405412807743617294643492475218452953719892474542624216791000848458932548705424795566985831785984677579655479580646325063727951340790866424600634399631113691205377069162048597059107088148160203439703692610562644069783566158855057492501487017402529511429240398513366018087961103447278236062214601519991294273657323081688835979316940805632001475511952363484145846812983398860842034299981368383150509696400833673903108803099973928793369731079014390820044664425877134287082380870754422096838177433147934328210587981912544315849786193997840012436915366948031949150963812589798640207491143269438429096248084189832380750588270300806386298778150361572467885119809048494819808424266436826094557885425149393541654725885977932375967708803560749614809912697627573516484462792338279054702299930979702788804330521132750016684755170903389852038004188303216930019824391203915289720915355171734546813896154325752258551457069734902220388220133807040614821512630510093614348310079150845097377377369720829093727170776445766924028904560628977711375000892548192210264836994579283572839535105394897617467527872555127701541453336629809276459738495281436953748720089354647931599136181364757402361240675850757395152850963467642244940063270097673941143748481409172076679100820682223537465643780629234710594058572531266547257828945085517834348782410462586077308788627543178551101011896393585313291390348017847066298085250986913155952982863102387743584897916780590328446618546714892182695629125426491363427361333758611163973865102113930006504620489804458691975586937536836286028326889478056737566793998839287097617996264048609215133473119438689080630416714957509274411683999383907910133329252596105620815027587476257707556239537159924213084118185289058286969576767182399533465671115115312527168209674667775537059783658920470109759045668689983165002986208960554926338606903214113979557899685553806903199727406238908473088271826829239953212860127673669731197628768587489643797093074605776213378540842533499347600658561377579720619335711546724475434272734892992505266548079038137501840607935367012239629824764203318493178657916902535177714639396737691461203749640035719508062651206610496366614301036468489290011099998081584005965213608370971300139014807571448100206635397264104275769706348490601346526000710256378803506145484548407553058309424199969540473601405924399673537012025631917776664001799182002813587749825325561764576335763316578750078657852109078920658070617493274016010605301309773512289992846674700746263285085909247751834409059695324802044198725778773839243481878663024433474319918706267328815635363912617749642446428697088264014150866723439930131527900800144120940234722584711668455803236797845028573258762475910942679248067243665710533385671253355156506924134501431978491462219647935626567937400855788897827852075371040937120499871881247304129349128860601473521543209646632844898237587343271863465749373012854948657454150132876248615959270499741280778927247182527872228228794167032886148992036087640259573962232792151192238721726690775869699389834603497562816878861025380457224903860156558888017019400208472614964581948873202455111654646271299849255241130889708054701894254609826956820157919303627568569302768552005429300535349511660228748658467654590128620011544784890577786520323914247698349972445280347675717771081074520332177394733999565046973550996845685812434226430737511099984665606432027588405925372472741279432475247897594811604906407479331652107676136307018693386112041566484061280106544927890327749594105864163175882759082178654976065130082431409514759512641247172866378822578980071640114237590550128967745498491664336446157949370885874857502734665554479776289751590243915042556261069808063902302019431945727463967680923512879801909698734184521913576437286680218392681201104616214369260648163368125046142280277660621571935081746951404518314441285400720507263093204590943717976016769862872389741363321279327693011013355245340346010759375006252909058202159152783975649763676541719802225047722708814086677488314205412634178156807574946571334603927416216153873576666613441313451794864029973856797270580187955999251488027879249354637666851579346619045293621142237197158692386041339135953046743869777063118713415023914997150516156461577462904935050475799439044243119030747182302030385465376564858542030053200328459033184780486974169617469720306246732096664779392349110460088793972043319073193837003717891325392227155725808280486510815135062766865413875108112192581647296469149985920816549786370709948080782587815477231620523164592416592960944791180468435483358683335060345961863314902829016394099797950620696283203711774819996940654400083269278622732403904010444111509973856689525745996821179155855139793217832059384965382181373231746095044192354909719754999416630912521269038189040171681901424876187928191181183681646598215064629593713915673813293819295212895368104366150406976187248298042880993201429295651076402704815618987270873598339094366578753044514047723158881182571797150880890470216759258186829396525371527314770461905038562344844879163027882886360222247820001076504743835342002306576459445940891143969208866609539912841840796600370506555626291177536151767709550096746362802793817992398834069204705382712035729860967686186349619226830735739565197507597323459022033094950497603562920205860571908957166286429093700913980870002314265091546833101616075191259522672805040793880192149107013679440133008956972420996684675457665197609499908508210314470439445905417778214153662929844253703675350183052222474888140902741887106372118441976697731450275263488784333733095157506574441052450526532530858711239854749536457842234698631186575716530597010818613455315560282509308053048013542880603439788942190375958017151831099984629272891843990125478123461608372457742582778212941134048854701015565930805998440633708921806607007051610115327278714917426932699706593201178151096153797405056725946687321424260748585906198608534514649343917753143688333719141579177120566709305154474019828945922320484997338223032031127390434441011505808793838031257003687641803905169972728656917350502539217353458041817609896486733394424668044077031186134986509950397982531891698886161936837634005505731047261093036909006972395953336812679598255144932328404270867831477094293665805972362591718268193670667928657846199950908649878429577795189670042034583907954119694786122815155475078997070257160196734353223279209457036942811998163043960986896542135251304034401525503588513070328550271782957480522513415297335158549032253043203829340371507124817403095309672438655733597597880099518851241171990367123168043218816632283533321364084540824366000310845322482041665955588786100926744903376604497893324365195102509612988243748242761533849047323745602238713330764290670848745583079443998941854322365834515818299468865548806376836289611479164713692745652140632234575027369815622139329842250208182701240939156481467632638517110308663896784364638124525636125549202264993225172274863715827541103317074043479216545855333049396262023688085899642776046503377119565381991210896289802929038054735112385089786067771309050337787308905324846831162264668555133525089588898017686471690110184953974504619701963442150207808234296926493901224638218999992842691517438579976592761553574785879295243682537561161177216950825012016139438665930527809729534453590099647607814716049579669747592549830833216259244193585132138142690942405148496491807122539292586867893621364541254858945238124447143858299409541199598591029138020266904182649851276754539782017594906464353959856558444812016968753214129222737727879441191214490299666525759405709283449631672941654346969992916748366818319534577191547474410041082082962754495683936700240606783489403519519767464605469493236409149926190055961498074024518444147558490969312857734329099689866589601189885123727855867281392875117425548293300288756066526682820409989901459430333056920500158721325873014576862938278967445683527584853337501763347732916951451520375848050891357595240869014844617112631578135377811562109335922327621280927664711833612372350152620464531147881678895692923709315813001939053967230419576600803373829352540085619832279577938743055544321309055476487340378541812915956272929277586036602906674729216279100940979354307055797487858834324631803762403793120607309013509239912719584322297240522996481624995710811571749031587992546387615108263368852940368671628085367422909039600751085022166155206962280858120784037002424504366456713142804346862424993042734630230691505961761149579581314403426435825095658450032110352905434336190405905721693615457838770874708526053447495277324048378322267350334121061923521701908169833729332204813498819225961200016172101977970432836696792671600708401075323839873591582107422016038335456730691579081405582875466047710297660316806015576627636409305986284588409527640260061087999466001865391961158707890046212192602646247438986111560454822239891011124095308277677848462752321283619711713661180173197100211819106925588190937674308771866659816356088656324950424337540868975842597529893878960068874206413449812175007240939455229730862229645208530677729581338388420996543073695155409937081300075091155178886664440308492271012299957401582909901317733211924277691543154572504255645626515957775752767387277693550219712878366524541296499515924214742821393917038679199449992414645609342826618526607617914204041982897915097689643009940974735866492178103253725754737343572988941908578462347106142240141166743298849950202644480397284295512230898410266305866596808956038919444542714174001950602901251963696072643418943820863487623852385272113476661609632197685862576912658239530981561411624275448038012892706035807609618117522040185933575683509635537920905411986368677201184140978314530825550472543526550374308586707732331828170066487821333794044688976054090327763342296503699175784846232193362452397132376068991516094644100552401851232290974615771720285872191410148507365054407256744095999620441647866215059516219178949559687941432769480441376369532151556333345063717937280020020548956750747145678441002173294674238619837563631053396747252858469239022898546440773109321245389926281487019908118241107673193197263857441770053720116374044521629301284936391679252667258356627921879842743224582245645716948399084226803000153559415801782824840039877644048884320653016234631360418056851503002594409209089587475782710995649021705206141291299602014175860928446708183065196651840872708187083466679982503381922343435102881005184308370452584690936331135499862744599811553343539253696802731935283385280548327645203868402720659693104935383732335774795181468990534225229413410596850581512107582046594304723001727586095374127472811293526803205609978639301150144807111151285133458687164896134313946903350290284108177778261345915717014094288034593896864963578598378231850918144852509261734308230288752051612880295331374526951630351641687754892073592636634258901514534258451382560303228711863433148200523901954998586959360027780446608780947879734334724487702351347790985935367897217765798230350280283261783117703734667038513092171821282380399277567995840624184998776771787869700414673701270223322089326968810497291038900757323330329283687521543861153612313635282150679768468776502361528227324441909422857445433857201449768279883576747069495226390927481447628563305163667823309705693377339593701082511141717424335205449674820940312698170121616262043684154628753896198366867205163056046717764476721222229608622094272841588838416178194379895850840892651563010603097437980039309555115890903344779597535189530398280537682608879799362078938105206856677327353441948991302393083806267278930149373976467722533272187062699465974696292451404250877713396210550060491347581881740704025904434892393388186950809759133659250728837884331103571199543855732984499576775045122454294157482495791518252091790409107183251916448964381375751444725459524127967234652922127535001138356094317242186875819888397215196157803545430195634524735763364868692193002548883066037901521882063834835098491481356486486676641837604363513787828379587493762879125370433996024855864288380922319958554198403881255425891684104320258449258136707218221483856571510402215508003442824345943051833026386051001657146442590157792304122491463496397520247372295062897526152009066492066833051065587500801932279631894530151187580836884016509195286558629187414688087087553963772862825305700318913864991254375069217041284854684616281319696780028473053618276576738457594853269606246892752683380612765531403805336460356021456017941479193376404256054767864147855543906042498630135765385231656953718527520032804741480477753303548130473779676311649005440103700955947742398697434386455989022212671768459279196238068153960943380504464154839045937832146545486216056741174050716253097674797201388408818257291536044326887064606921697096805624362505179091784345017446850798232225595863584393139005129159934981377509957748274244777408952019928603328014282073723146361084856419420149814255495311290085019906843596584813377176616619377306816864825841213383324937268435512490724953145285313100565799383085204764325202511435689589775537403011051908894246197596210056471056484490625495689047208145376774673549857152712826879372065515099788520877719643027320457007026388925865139294045219687017954477333158260902034545731164331867047075890566554479491885108571012050206057938090967832100774080723874327802440423004366199341373797922676266761751645966014591664652834865796543015039593636646791708284895620302240528700876762973974550605137066835391135769929288715601769804372380328922002118705683796215744573864207379999255334386096728972392356105723675469661191953684463856744283635575457259164601787213812399895765476553122071146293706135419708935008672045679181308246333610635687540378752814562302144155399514516150415813668356840358093205061599094891277352584964866451638916990481235504106158514844235209271204142479027832829856490038098932493373473142631869715213280513634348774601713792666430083878860385699026349295484586264893710437437783037780450680118421577476548386613158424906541999445671658065847672802525830193434435497217562699660419429074314012042795802388072229852061547127274991458615331925378309671846309278377340739143141957643196570691438675842596748947172663423749539640583372542756256356497985503381314197904019425637605538739779984823867401819562486675699123736749712098676353163570639903476432883848196119706476454546138102261169959967978739839911198141542007260144806708737820148610467321111598812547178523589674192944849364650634801081761752169384326127518148369724470980922434134576811933834883162420130371603503256074876854147592565492049274243648697489629714111787174413952768762049586620399698922408226254661104684399566272902449262625297288548633306986681325831931246650179982762565206674602209170423480258426903224488447277966162371472905126764806183639576845598702677227218909271328531341343176268167906373769133326381960268589320102869260582909973292180625125180681230252388595377083425566920652989862696943073720142242672086575733687942820852857024695251125898187889369270170338554613132665749056649732575774860469653385962415283528719630973798749809868077130594604161217969176805358021201344486970007154205133078142160006494731626310863385777901740767770395486061515981492595703446444469002818086618109948775298640796076813803370992684644256054113699426038374643082556472478792495320203699678837911098238697129569218953493787790690593419437298830150331658514568408528914311588194584573074177044786726889682979965042466726599177287378630505511615939346819210021196955542339774205636663585609346714079361978553133451097840863404935350352993740348678990561551307152138144826205436866376760434149037883919358994462564999711141103367008419610444541405930770787742110514821629117567027262852616453385294522500541081267309485083447798666303508068352803599724971555444354573335454415222651854838062659373178595545932865567596149558737590745698813268836343512937307165093778250774778134385518092191227341600156602098999748020343876660904023253105443289523765441480594968102050681462874044171927523040915797292937541397544090041075688165017298839737066291419470251463374729088815021776366198388452413944274108017983201688676557441679648071058106358246756717483160293911823937958802082448245351906813722899041160640641412780463505404300389106244376951740197251779297455864609539144175405312195058304238771324100625541287939424206196310967755776546952420060387262085744819702538868242223061417345231521235234681653216971342095917956890579447629511937134238434806184937644725354089392712662616095615953710753874216023527994641655787623866177665687454234442810716683313924629715489889279350828692621050933930063265798406332565517350731380425139002819665209184947844146206112630966222588942026322857346991385227137079025041556456795316140986347719615922146374517671985824061997301281034693733487792666747614291962071540226387603515145217372862065858166897710388981475204910036672462938085558088234257981232570665056108683465038332939331166892724542146007763769670057834255506371438883617800115982532689613463295734113249210475166836019510027189061480990675655835801882076590208101458543055724570509645931759070334481341975268692238006013381010316723470811459804933165954487683873509936350598547394178039243543136390297894051829324576564305037739905479454305397578725643188295685177056315352362397667343432063272367935901607540484241021338821882991178078866026374855867649018197303493054264182965234575854030232562055735965880416514384012195718651083788408138821662476688102172839144914034607600878208252579804966142640446586975170478360692043002304353496872337848468163085223129843846117815217017683068325914667473983350086774472714306181799130712684240691560699374957637898406253144171995755846890275782480443587226615759042526703242086579532852803149716135323020835203274805057424567222355423145742108765038578127968850634490973055956491563624886138627208444285762829260657157686599250016262270599181488945627766568671686625885895504293532904759455160492848085070362089570566597283612227121315548407922632697677354897411738091859740900246473872119663701567831830046441451571689917393681089112572874026721246674889376730238418450565754445038497956360474046495843410930031888990049528748562697766637941762117305149917067207482211395573399301283642534609583577966862471184036755644535517434290550038346624400954726037976912962895123911353734182029061343276601090665801426992290208873309082857375316207005272569012877594878192152308280928593088753308368484193121514871899768236891705557768114369134891776661038068974211682796779615868002975218003628648020743961975090045281248659875984346041483751280432352172745056130102766780261655305582508410627336740561356180036822365716563988325186106938856196165924499746319087019068082011459349589856928316948888289819854070922556241058336279871061024195683680149697781786177724072696634476497372945767057917660170918164392516342522538130870331303996217302072584335612052578419209335966397294906206780827367354472756777264017822688389476360108892312840557914726236092156275994930424973397906262114431186085564181732930918884945798735947244732706581000242967708132701941451694426633840158525623908571345606855752831762299562574790220597933400434753314262353886135168755882237612171748550589819434379788313951339558117997137969651108883048392369769896077736674710979129024256072122577117338998132622357727605011481024591772431796521030700747442070198864800892801687768205483001610464884834688043660099539656775973617697268841874545148172450372368955284983785934036627982935652275079815359217565885404510350418814782788074817578793862140134709717087889565602976239197883045123292098074497723765349913174406075324808997256818055755286499881882034174253700107831746025851142596912386635234384526346850779193660120134994603515928328008338492853793796643170053324440479962382192529439845120247211162993311314744675877595670108083091104468793832597947853461152073265109843615961749850710447732264092342066877636269476050348985972120258648432973519697866686047585864811723044488344439382848763375960358564107009225378289999944539075068836620301046512410924663806754657180785799421831609354435800292746661077487697536019814433618318686541677296324251942074635826505679471861461279348888295835723024121043416858913980017518283494855002398885274972402100647057409819912748340311801345687523245748087794286245651559110241272265936215518572378119295164122852387110478015076257382415171869687804264838652283834172207498329315226582987108398718567047786709816911109559933721191480683250898897065758098931470457876527149436165525942635352687653872854844331784506514234199690640958667335220001827053082790337931095353757410210966851006432295870817813836674814270199235847807781775430350631321218302451327382414849241028478014249166677076989409791890965180094399403952524187913235088653587008318134473944524151555430754564671032730030434305832906480829319085230851477092951527236104021846038645351335348204428509997016731788011334511839601630806468840603874482000644212906635747216447103199215357903911869468368499040167106443158843907362218208955226626391750195189634238809955788233289824967671749663553262393601500603473786201953181758654091135615209491167587382781070403662002423288962624787141335982946449808980069430232166756638162974051607101702170722864019837225751625364320064881909040657566928021416016448078555480215183766831522320593921164789550931816771162925762278244270837276323195399054793622520571257014327398563366849749693290344445525744993602889905915264838014586751023452234288002021851493187151323717269939839325738516741561417676039795877781196053876180640585097614968793123009773307092274250125267284341358477472590486508528159338466771665472742962836209975248080258831645746426773224751743057946133483565136540197862505862861358681044847879306864045643969005491048038842391210299337649357148486967257452377799462290132132658777394214606608260592694520359794232668907970030649490826255342407403447364417614846877693140694612586229446801997852194319839931920839827931898068719646276757947710256323702849316857079496104733640560673775267666451624096054073850322868637264082402348049957076780064572915520004572831356815852558882691368583681548485613191819824526853657576221338752885879424287494039700528009825209358269505589412640404611563751836130372625988247309882640399172130862128837526431791707441821397915659441005426289727156851593115739485143875871310970151905243455653690005335444883878917657334437982681390831166452023076533494276057861466417305874725914516382797890954998101113608776436937066305194927108178909359808717903221136900164920143615456801374402140115192331327545995002017420520907061104131360884719069314385623748805621642638449430590083980467137253523964937189565378068472354062996675105623291285658107899522867654927993329553151624715304082542728263857471950437415888274159857150409369610531342759411066704782385375645086213255329919368021624836086426344937049119886942013869531048726990686569369397105241374916099665023314272825988200610015935245886832536611796369598995343437480419142198352299262907182508089064680431334135991156593849787241170041771950541752066779761337778888268470775010033697444456220671223717971336165069793293226016530432743969899158793646125029748413481006150333552037719297395071029674098315812423515509884739704992199062354580891872975547935527112368039334022060242829842859989557250000767099470446684664049997447280050875310058046291208493987159594253874003024673359161765975404484041488479978880331466032383596169509233498222816891908994063809334676703436066585426713678341449983586230873336198009636529299400535784685788296940470385867511572863956821157894056763633051652114159424347799664488573684688280741250587609450067834476650782572395468101003336607133389901476837685438769002254690391385556929464169644952290995126464588900705991254941870727750974519571853609908326000449055036416509153007660859983549465749785947676294709172376216045865457202384263382384143987487570052048749573226536213995855107404804102989101684328702587705209204598121902008830012097149218587674152739223295057369035970125140313039760607310691904799035225571498637067978009827963192575573780630470471962099937322788704542806922845542788265937299331490755208792626680363507085562417299280173198549552754053248804116810463011860070613922298618016376737059690838890615613906721569300669179963796151219489811343481695325895823013308961660178544681919123298769086780367839729969157106458176588125115788428385035667323978313373755758439759255052409563662612367189395748496037539924455830140861625675351124138359852538402681625219585148818864155033895550930703867265342900930590153501342716246448908501551121711667659943339778954734162321077321100905535778574978331600986506378981609001110502189582327831104517782542125763180623769822583071984740167423423711388561315384917245982755112640620674818064667792491273069856766264170903176889616336372017052851484650353350337251224864464821799023700294096464197342198277847294202985192822435823540970273649186909014782191048657245478919302904905147574539085213312764385833706090515483300280202539766857927549223175112129887673465201120359618046297625831913024374291039996411300418627005729882328127718167229587905279707049577768420921527878675455265411286113399144659643446863097484813806258841048145814320439461887813076885010452729605061917111323520200146932921665850780653454606877003304363732928974320963986902029732741048681967467525921985223687125402603171639156642602410201423771642790561578130887688987414753383705046035176492314396274957749964192743782112836576099506192919148486167742849704711056640780315589818762670900705470783522938108972227777159937763588782896538813693469211045930919803221263449005919139337857709129505093351749221862860934938014521754459923185629876159330316908674745993978535638327487505324715104477540340339749746630088281027146071496208591208649225696056209470553548140620156616326144532057651918373054878120762735423645684141121677586191250518514464136090012573775079483466498240456191742658434650622117550525189409929561615587333672954579961638723740987591159177518450695880708400832763822949354715199413106331497974338395685014613493749058397325813840785984599133479554461092947597677616298768790012022611679164655864674611657053302625143802028012570661143886820999360423829407863071326138712745456614349943380179976772960438403534254278855226426057973979591257638684951434281869834971738856893952378257164802597298195755197923386662525799463264835600348430067860400110320298782028027184048435084769525593974048055150675294608779172346604712939039495631179494370813484050704449692894519039821723718051802340887695955599383394602415071875730502672888603134982379259932187263602779676451164195676730303804081624516967486879258905488029685908950970460994497132424620770068565016703495721057482835908633263285986339595392374445725344851552655012698203404095455954064954229976881271704997244309997288379715069947891601222283703971290448509924341394070956525457630410418341840168136449286303049318155316953266699396470586007934022912517280406737810752223359534089809246432707375457574973672793593411249154640360955065031663825675484465824075461441484289053742029130607182204175393663769659322316001928726530965928310491116881796903977591941171659199732789444536459482538984148736017766151267759439891943462173391142449571991748835259219997243042545679764571027280967613132615833232153356136619023920415808633802252759612419769748932198508077984156203729886918219880908169101051829441898633003815831225154356251236183796953957458116084290604621776026044690050078847409411512482935040661480454829151641829230520390760928731651720305618996018049254364714847383644440531306827081236646448766351539361828971622015058847259581358172114779626357274437889580481007473959219605374564325135425954822564862617924711670984040446425336631586195286766979225357632318595147684713527697109938115252384818335783193767842401797085371542307935771552906286993415833586235384010116327648253125249834897007961908918141209232872293050849318156629225941994343307582581240589906054700895231453012200334816177336892752666467529284310209008584056683132179385985626052556485127755611564794813397776253035022490344651576246022335942659441833939045814957104421005084074774884393939572714987143675530401927388358331691367912858403554185271620934817384803135833131597487076787656248679047052867852994172406863593278985918780412591105877816501202837610436028282855836602339649909933489165243022135804431977552293098954616477954881186832777134627080827904890318365778540508076665028927768084619977035051306953303677314218525383705922246441004769074883752864464872461615450983979143261250578290945227572505353467376113913212820676811806328837502078567416454255712781228493328229459345876793235845847711083023837772683323601354306323182426750607000615553364939258298173942488560510582073299194786577834714826793617274879944594631306341550010507207633327444155904508652240632081701585224936691375582090365053285654762377612193213009430158687627119896680148616125264668434280183546652464936951142312607732253099969155939997097446174823849688847322061487439628881679278155291734580089809365873994325839016866455822311446537244174280074147151285200425196339261786644311237462278943238255440264802073756295065159394982333396710887046205710668534499107275154549512423817686841980292489122488275896263324225834225496667616039399406522250080517886180850090853743780347831577367654367989211687323126727326758229304457989470938430952388628838343130504133456166375387006074103994819847092994495826929045339209754169700901056021605895435913811503952627863835934385541141676170966252416599373175007452258189506523240764367290724551734092931045981510611365646954024087009543469816412673499766119786858598785980544650036372447482305936370039113094525150394621113383539310144695621167962818271460816509353764140146056576791500057711707728770467556415536291113627894906856985843755834267824118355166975685098104617721384802374912142351484470029637115876795422809496951650548229353420492675287187661232482948564592378199832629685651418776212430570653016092325752602134209035292265080646144824153954941310359501669835417724628985077080768276868661452865019292984634375478552949540475576907273552143782570227089557492946277702661432935936613860736835826553670782812745124544160150501687945420672272902591523112883412121229742661023646799626492346389969695430608638803335885880799354536372302828763344862721600860748032528342403212669070393887877469184522341315729583136725941582338610557646562464650107717220683066326777622116111556437361757278618637666958792807025728508847649706502049752522161938058139624441633955785755078076194923347682234321015371034396298772085105980199957816969401691126751930136459418851094068364087972123712012857369490948489464145530647273511235993123055486728684519751701921559695674858500845619148108964924920955144215681598701117702574824403956393474701959237242373552955728651175706572819471589789093594050597091897165317487287377416315464482793990953225760425994827233661288189669512734429306229029550912814881369151011114741295890262295264034213761877162636342395781322158737399199311699995283855627793574678050248159748248322985450061652398618607881419787378746515532827507425701782201998173072593861583147123645718434582915301430902735589904874064208236692282413241889270923025273308177786937373347169622943339821236961986673884227598862760661092605408610088612982293147863216229612855944239117561308153385144283930138087135878634844841887011052988380300605470292028884348976025307970531696748006387634457727344409978095754394681831317005251008095403656460518164204027428980638681662272493082418437844029953492243968006118182619994955993637825930979656641737570175709022714040393766895118724085177159075459583208181576979316147458279502996915755779427317850068615066415768122557110159627193218515785349254740287421937466348001038392042524048574792020555383301326464801231725157955191597680024553897166767492479617864296511480861434398816944690967516737447117582223478111051917349789510972726962946781494860784667918695086003237812730445723075909237941784207950893530175867857761629519778953201414806710153750172508499630784666100912636792238829868001536963255154980574473125003187436883616952831882750435789257709768801810992080072070169195001092995486324865871208467872562199317305587334927711843362153175896184622777935741201488886585006224828999240515151913087643896392287073553821588893756739979977140155907410653802918902472588246785572991987115482483055466414767369907815315015093208688875144699657955409277246773905749923909605012382887220664376482534496759290896400152972334541290659598827157322508690319094373670677306229986459142049406994969234953501175530421961329680396421740203797161970728571233706355910003909326087217765824725606602484123703632449468855946358741406439676861753140526028661069593604990712049113700532847253637968179764832906227402557956405337067389076611201527967219958341272435800716805019196955982333643335910786641750259646797856762069174757918420748179891295853123676402706845209879476595375970336558339524879520470979767949981731639394267304871802528274289801387615855967717811411696809213071598671667074596061508465410270144147037099608819247746612123056227522425124796277740557680959598913628740223370742098008482832723549370114924862485016364275990651579239681269360436492753845845895648755077996079836416660221244142111263383313413537379809050972154918749798889254363814099041273946537531869229880442248784488727403040551164734785041016855121120746514439660789767149873515657230831290944436302604794407676672849640982406427266451129486282471270881609387072907855189289662313352233366531017647985632421259690158734948841743490455965681730814715946117657363129439297250618345076184445906392950197959083499969665161761483716778920739773193160164833537057565562129713915450625667689132768557707131897384411191644872271737483837798013729405082432362278469744632560630849022546565838062356774422849397799751701750887072236809158460179537862863920646480140066111576752471214760274573586585995508139300167032245664897967137828238169955772535962102347870652759813660719099337867317927040920776755787379749586271583246635666176246396079475268129753880898962642303907281307492486595442954652596084962844112224047587698134720570433304973914566079193846652316637904085452322393384754817423417103891191676179775651990786176346225140138174030389600385792546602319669512547781100734187998552063985226043035162097448153494153042483019428262337820823694108401040370626013960718600098376096810681260228619737814517859812195116568509071661935066887248592396750120136380929033031045536357983001974895218012532822684472573860536697034318588407570375722093706927451265267527533467338256120211001248277858752609665596656355624252803157155470643540717844191874230298220607938437850839757299456118705305014116739707324749974721368871814116737940931067534145976490268028579351056999241500938483251459311201966072976269865505159132771952749453169304646615491527760842150313672102806365578618719810449126217683570670517650076147961911250617186810999816831631405866289517425600958680535445839546672371797259524846829152032841676077119806288743948849408162020972756681491048109891736045193946711250205791331879404413599586267227193545769957052253794034518859425662921004007636897093183124686411017594278947589344898754527493800785796917253488387103502170545926644767109599712636069615781317361557423478203541535007014964236138696292979680258143004410483581224294582119714171357425890899689098189693473415415248138221739719357981383272301047517896523849012309208806625926816731223256502572981019261804822533615777017982375942377872247776710894080838783976890513089352276747615369979888698806838934175840831190290992390151412283560138756876624484872055881087605683640117697599979899781366354882499516414246530596845946046738054329697490350086319196179903199797827642191380896059884156150133776647229300427556757308922362671259461886419616683784136456669161695337439682856934447224968511892089018973592140894890865585429881876651055921584963682908726036847346341218693299759083161591520020048989337324816086270107912600699742403230758055051825778222219961448270530028708883511638831491111494465724870721266348321782451725388794328647347605314066165602755837082481248573203308212706246766105489369189129631732449230294220501597155330097113242402942572006103841382565618918909682108837423369360337128957830080527633792195892224237194348765124687304279541823622051508453626225318481560509720288557682074228925827018596015573931072788107819787786533318639715952216158304238403730162470746584889700119266721830895150026176500811333391880634883398454854539006446274003229335345059787068029542810879484544019991466680604922303396192907644867401887591370408408521231416416900603696172407854512464876679693581982086541491454468251631445406690743483661788337193118047705562683958130408032234243765972668680756818650778573539728554988863371286592352003064208065854459207116222696483298547024915405029538189508543850103876904318196736505408540139762147906039092131424888734354096041409782314222524676888123318292334953924547201167955771887767908753923064532824284409774633990956129600297914924586858980302936962854446913629800766367222486188226349552270637756048634825215918348353018495714131915620474117563875245233678132500882119794597090960184061890867748719602069079965251717929180456677653116927155776050128927281579297521919956687556300415519435488356392119176880240463980565317425110705853501580554565288920039740121016468542174082900920460617266998463454900189485092876145016417454695017771917234024588196938656681478952837069011481875191418323470797665076095111852352725199631861465840559174050497005827816920801714359468999064572363560622054587116123857770547282803976810698238080526750175407322881436221198703382569703641145427330088319858023965934146464270868089439314813791757777948692204476582671530947355907545031916246621584612549159205959993118695734415638574386456913318620019201476455684370978102779319971459682990297100275931898021632028273026839887207866659469654649646891512767457522477946643597372244614603824143495487653774127124630556019789015037258166920098662791457146554659645330381581706159539399977683277105610223680837897849341268716652590090682013273682192968152159929929925535378725823373370067378912692852657374643708342165351841736879497761509702525736159169755083506022529752866833726103103581003555345479522319004653402518730226955742960114231612599380321838701772560777731858122551338276182524318464434240918717155821166863930191785848624049968953184431971814627897586766458974007854807123273841981465165980405268316662491170761022297356361775577130307388605270901145023591462128338577484493869968175955746661773105607941633290675375711666506784182420311245242907353415223742226582574033830687696211321855428849377507451136919811694529624650775351834766096514061385381048549091540229068474793747185900773864655048068601625050706212589523994552737172214683178613983710452722046668848684099683447539799612490886803834496543673071544144070628782605481347744549384708429784580130325194134420078718195644388277302637269829702366818064340791497899520004013177875132686350207746051675339765905340819286276883191926743317498863016431133414382109316957856155989515952542069449476714852149007864567083660347696874425419806599843757750180623819399289880268167991087105065885887924408028372496418205608589900757680984515669420340579260355734051722102185393491934135947072554713950358768183254589375487740963381500858697278923444386150294144737883741336866337463625302325900138380012431059296234979988243668936472774334672923094187377460459576424579182910719625969842882665038030695138074805238592691042971463698238226886685830384494925761018374390621057822598574250021687909903422986247413097439204816935921075860632174837136646667312598085591011764344457291150927786904029035885244392393868248327314858307360366092851434676830653373579295879573251655301023855926438344385988839458272083288141197893475911573878706840054567577059021399197923422331154880391293414030525244761172235464504168965103742554559706540622871127378935113239224354540672096091381263220301552100425392524716200579677709027560863589439691893259049954463492882695336618041836782166389971822502426093966224236982831966352476464739013823696833196231746601123468119205361710495143519820759284726612328508640192245794699356833790770242792236854865441392433502218302240780995858349528761325007954354075416191048957381276008329155778133646251560929727292305403055267641580357191452496869406834555856861390740290367176644814401012132643271348808899729713804810536579300872357315079579402781681355057147588101976988289200258257305851866460903296037800749909385222909359149001283926147675531165894272307170722232617510754292636306083523187794507251578527673030328760779757422960931540464925442033486380779334567390384259232570463844385607851528640766609701751538031040738602437953345965201028984725654620335929630404500852205814183214112070525107120645804057254434236222039688345238805020813946976870827498920240623373902622684735057939538279997829321226284996331054777110466446731356968664434032670526316353367440570451165121755128049948787733307388384336520422894253072865370086593743712759533596310580775211943871344038430296277008854409486596851368916005983336519133244129792940398476749479519734668107575155399326766785616411078448196854617744744239100124721282927768914420558324327762789626148367357329154227074180235376811351320329602974553342605677807142995025957441182995635224794570103697934267623204984451731833016511705935902919747811971639574218886051440037873109200501433320389612900335166726254190766049359769387545385368918057248602823573958078420934506133189003361257428243852088828884660287141518847862786992756296944671484374401081625142681861227417834749512566785440378133815358921396368972820875581080387589765862310841752739295860280749002157943328293585512773388739673656481768047195312991096963670787262953986368630937958763235953855591932114836691297965555893086289656112861285342315635255356059849615207824968660362439662631666238454542827156859571348806047782169746082704246579608615216538811896754248406923278840003786195092192848735059281470969570071644660024465353245098957393027718388449489976120848604412754863050990225014188212848249879229088103994993600584880690718451900486929996880996736299280996977175465351121628742153011974573015305254533810786252959422056935064696760725925157508413984249341684337858246170434834420389742080291494452031162663359872761493347430641802548811435302497911321301086149036303391186767114617197871377443480837473764815011224302884941730447717980301799733151953893151323717230141684307575870332997712270683284045938975316918815968356060370800851346109607415522353121915794547322273100709985700501579688233441091900975931757321627651098625500035131000712107543194010394778173244156396827214176773850972320182687481947254895571904350868121044819381776639563566297556976080716774954308689546603188534617900421837068672894365433781255398188495503323661873974530267707380211903146729948415267855015724152171223118910214000618169007378459112079918438713272945856557825345413215806413228284298466749200076416849360619807956604812106379985889844647211968700174499059024503526139870969479739983577850525067007641187907413966353502888651504858763182623392838281314941963084103787353667883569702933243195938459342650022529124262000793548309955952152461972463492211866054644662962989836699750157095545557799071057815150896676519966621274351322338793575276223020123116468060775492961464624698272874578134219583220015195950651607673078987147860716500187970745561545110282104806992950288479954528872798395573392233831854700136754212231828852411893358666863403094400450112872094791503516944085881255758569785709355578602441984318613953191237473398808615314014569438239428699994232523542757816967622900412379576936827452530739345283467056702752457201278960932442477599442822424959557531525048182538337377361527616470690833556819007837073831497569162913235520925553552730822705889961450794682444462352180869320273296022323982351438048997132069208514506220979299589272210126815314315049112750616457480729411084064096087364257036613418735512220943403057554856742223045472117896188112384907850448103215600231980165513643925840148028335979376702732645953706399613589315116794748390072274529765367224702795847738965818258307046577279254926481455445780300134747321461523540145764149528749343609535328593632566763678856729756380621116070316203666964599654140325013468725263721717369795499048813206451021859985052986234990322863079112048360155675017256784395060237608100451440914339566975295752576950124577241363512217639585031265032224400456567636028871089970496090080890839672902789896617399040706364006000086679445763693582335088657034580605448897517005640774763094775878328222121505921140477005803729580444142283295817881732620266571279272596157333147531930170055862758318744825679370377023808993515722660746955311494493429867931384920277353421117111291871054742674101012682006389369193737643652114336165752520844454578019672356048520828468838928238704980884591658787834663446065595384756759251449475546528401524822732049016990852756708319511257253486801226353157546104045913165863723951451487391596525641336702868817124389732277238136710114459106959236599679386132447070275859879512680595657279786393649752369899092245512932665658103465001935082067872645952099947453625603433585801115175228386504937322906774881224833072738847342860527342679322767306618853123661048277008010465189338139888612191667835581478331792554092863388856957684451946569908167693181049312857247922640312939809524602714673282199221424910736085975818988678286145812832239375406411199477722097426480568057697051194845158198051902853715662702926840728231231733092305880383545998411324473359736990405025079122659385298784584398499746200395206758295459624375882514970613190253689316278941851269560498053130123211110641599003096792895067938283469627065480841896458535103115627222414967295336011032243699118314716035720312734328914388274028522765238726073984406619311555306519598859571862634532885485567690358705902897779124558156309857673859168389309856997991684290684968894840338035796891883636329411197403005488288535639965669239837642786443053627584971865044803225475367719000806681942757602456803600143328232363280273835679441866799124682281122346310106733027010591148520384767802823158420564638218559187789298135551114463660991398319359819858692322388982174659409503698402937076638254469127259949589946583151903390526798318438520292949879012460472993916055451091856864584581753116005716408258812951896874272700411173808359404030490113391160118132475212209683242605547845490057099219412608043451626570230215496764414232770080416372349759925808054656444360751019311886982134764507638199661521046318179253765690330270545069988843304856972068148395134470765097529129583890893007954355564062844279821116999100518037807874198791158741584667904490324004170099413024254869707859537371216575839578259616281696784247602409958565133965238256391790106041726667407678874985656357458221564475729458874540178001299610491787797340998611091393723178275418171360373939520697206377665187656781288825104423675964758302579995244068807630333636360052971216337922210793416182383676837976611337340496342760742249719321309849866928623319529683408647988469259237753055901458827833536649164725052145904636989332122328188682415222366297645904096327595502645135853591173532022720149491603358990744552253745104620479352881222334562491215017423711750417163389987697755275069170127817971254442121044227093172016378312817418234057952833469248958953675673958471656007220405490304914009233716203748106574747302796763823770876585356923633290374842124876571539046601047388259876169438497847832964987535826714121908558288103639108505609484916254068526541753884596945268560913410180432756674799519108914740368649723505235516509839845887417477924322820678618162781007576706054687452557139086139709864544195221081008078565692581039623961722399552643677949602881130860781860734399995427665602367681363005446343713212757271023946028670957607230855511205920178085632320883252732802497236372668864439257114402491058906958118477310654222725373940748514549968486818015007989997084084616609171302714312299255192386575843936759953436612974645810913377459626068676475963015375192381892642288874273327762393843610756008883074010726566672705770694961053293913380777425519107999128799980778319124481711234109579800587256503727351337103926650666431043404912301110785345566753124170297654986708385656378629634806874259755452942021387053735177160174190344331878589067997367065849556182764447398664428985291991243104058119082421671989087215014345986516277796131361432379002630768369980742992139873900222118155908588976411129857070191802935742866293322404308130114663252876001155975944788756537786973570862857261443372918253308167894980294257151329177849370605407178173962874500620748827444520410006230102978245416158025021067851022426180444406638834748143045592233518439759371514164790326366767920486759859280850223035447705157695268570766237373647375397518107203521435373598856993687016069099943411767797792772475214380511818109382516193584023490105283215913636916242059306143563602861464512131773501658637277573556918807132035134633828635610149480353438550858225248438396327068739523847267665274550231287110643361019846402913576220009745968362347097050508335872873474957387333468670653236615768034829994235833632308969465233861588954268570587229850386864628755633341996504065255450940519244761181143382860237952331221064717035414458423940421367126651178507922572071053293531906804109878685673408804679943725572781139753967065315832700551917150726132778258419345098000560294523647363476052996089611628095891222281327517322002951782170324902960683631501461567045312449267027966945113078394558943507301773645407103183943392287793437613195868141520465177715568767639606647685047019257277864142579779633527612568649431410499278110833172658711699205415723388482837035152934772335932902140125780150207264114509552320174559330488590561230013159598546492103709804503767596851552105785355192393419571208891036112819867156090320770160287804033940186857525590614165820965857275692425264135197881023691436566966342974936339639242584946204064108946826617022419223531375247636644774463383613674712608096475279700531787806762476807935199095191804229922203901373374097773623658278825878980730637101587778597123125316657102403478015744747029830754908879938272708266257488150804856465953454687563351842761790124930655409953901112397939940907507079151192733384626931143666939164606531169534054777840222601613594413890813108160030126018948997027276834180383566019672915934180120124926966828145636621005513760232708465958441199016636917226593271419432496641721308591514879137676731073012352284090638539085005443360564816803057626371710708598174469359861349948213597194150518426342357368447551448328825201740834879931289199680309231591079331512611665771104664946777423974762141408742555687069878114839228729995339101470545431072772034273945940921755151466945920839261956626282633009164445072298902777387270725008407428697297026395543800256842059056237040768773857191635809761607951446665631216986430413960113384431985388523128997891658452814951601740606526984543467818963875071318213802458179419904640358329418531316514158945955110891779387316204865814377524373135062989414581890903642670109419332503296296363607544727370397782655368443363021476581198935024018459917219508373615142949967430356019452134243381085349356566517307516465823600464669766238684155739043581318439054177482131277755970654428964047928448408716325137475089943307721415931486205101683273697354355532968391962626857846348171248220966855214483946960151094510586139904003641316036672347591260094458558513564492699217372187431185369963398713699720906786078062413663790172729155196167596277006180376894924295221623312474624197468795138603179412735488952343555474902421656289713089942911083916513583492431321651058221006987914661926607207538378837139956017246084950716866197479316590130298062840673371242596249201351671708702921867721669875696522858214054090203514047176852124030539477183407164435314137304984277348840577398656101610119648754140876452542419121738275379583607610288133072812861931032775507862689914442388587572203913178676436682320206072574912487290354606546617548183766974032928905105954485983381763084923613654273713312302727218755800633480571012456802392718342371132988561094498081380538593619604432014787465984953893218786923458343897327374338861105067368815975722661663422688830299328284018143654504370037808514309561858955527022531311811780976922833150320320598282130242290110165270902572193015406042373637713660018211161904430290893916316424608456810780899671945645546689533502597487767134440605875135075449177190536090394379883058635932299803835077798470267116144802888896634025975461960543222470562754277567079887591446851140506598948378311465530820689728162015916138737154695367342827874844156985075458092755329535885447668252247457696870932148118034296204921471084289453999214043147886274430417870331938208250884633338061358968478621232821254370729262584690153308274292655463372699278514280402882673803866060059785278213742411887070776241484648048808225773692666274615814361008615087913514256561285560775153864952004204328024357716456394998491144658075864314767723637214705870049319563203778580108151660162970760843269569058805731027828486807409463515355206532275207307000146359531171378542750145486897011148192394776563623595344691039768212718789575261647113626665354062551760333586004438573719200895722398553291071640097449722041106570078721897111099387999620776150759211074480465539086073684577111730971035504173917580698490007786725838889346247803067728109468035498967827775725373672501267111690442084929742582403745976071283896044849672482504777889660235672607633016038419086541469682459490810914332582008426974970535836932835217727791153713269409215916349630788928453147275781296210272415727930507126757894406578737590252706520303715745572160540658516363735762939122070390427190838747517497346161521208651026995392545015964489639027102923027208230864001775697231174456927419665129129509314155957822767851363792462222289448577029764522403260074178797357712896947993043851061912367053057341221556871151598651263069940054419358563973620667037378033104431107748099696268785519402389279866099330842332190300469561994603010915769595412014771829486885605954889068572434550347786259369020126395405763883494303968678424806447091483239999851147243981087483330780863847969081534028818441640299361375753669018025362555525305929444617261199838399985883768346486415874662988325886037231409411589809548069802962971964406788687586614554020885505890377767057117034278255200049504255318540238793587753657699416012164897408176832518232415530803336667114874862146856659534114853792757511727359993347433388888740724457029832136667456852663159464157773897031978726724105151599057736286298689045656844766961410425516534722804661877145204198996289591121255581238476079966244577410547566717330359494661656395477802122750948490182457534032243691995489795948860460055375847521285759613060345117828774415347481642228141185514436757190508669980146673445471610258546268126947541795661230563304989481960685996637027674560985210608681582218184006923679027414681720294555227218616479962891583159554079750201674637977369565212538970490784260656731591543439118045423453928308854841490578953606380574672854492059073297446869419660483803622394524749876103792608169303394734063342820766185445187622406943300725833811387825687469524448270106075876137907445566340645025378458036589781306341741147132924112736989552386433696965968371024020288183926227344265144579668154790180063134345511895932125039098249200173992896296518162678451210180979276167584517377853530345192545876429868931238996046188820294931271294181588933305460821712321385428399615717957649135264204374677114008592052188011047591126073415384009968478573067261697936700291139863044963635026371600105716137859268868424323986559101936455147160997680087717133319034583667725177423805765766284214039816148829517063565375241131546820990550754543589210729219027768064107704385632739606390906492236670573894405915558560399021603141882234384488163678478061781995862310838908828544171046397176207030030717121280948963436553101729274540906975866124903799456217761823667095428390998632594513850570832059670968911843142914934675967699226823469472238508665706091150514172735956222604832012038918244680333168693679047613698202253156545972518180826403342961159867628199296223226762584772768645789418752514869815918267630923688169041181100433118771551704787748757612011711474192469156442551013879206313017013032303867737950193642794903664082348495035145007123800214688968038669689274010482020172263766972361229621209160897157092245176913248012602354155566322623816624662077102716584559070820363537833486228703443470659296146526980333086712790141999311137537153622919191064395280956708488130116207543808605226842956828597417514259217997013950981159078520493384441785541330238936286545086736152631014418708089138380882360986800948709747485784982573882518154510580935805392038452081482118561146893948909240303846785760542813359058391365788543726769898245194750297854724041639340066367454737919723273706091998839747935901599316656784607839598318653749916506503239558438870199947131713205987758850680411811659503769524331742077094276153057278812186165813419055644820667669814829746410387099760915769856873057880030403173012264927824159679478789195296882386533238844119688210122338257571547713604411477342003080634871369141858536727296617135944882577823613094605139792179974269041567910280173171242013678706246668204929891010167807880386706059443905321344932295262920024551959566074892015376744498220290877783682365189232779954918483303447182351909421278511830481294238501067875388905295580238239837294012941282415746223588361589408655901212979688084532186526241387031028093178812390184698630456622967401326894929130153761547022553457164773680671532770355893777214311707894559603326493390549191400743074250361459562783459523638416040894897575760199447674085306482282742420191218495846500622993220460232704249515932986490593426017171975674542266462842615975137235476549935542014424774698596417321293278538665755820851281561185032530872639309933389101495465913035883960036676302240424935642745648049372562463820884219766107233479400835569169227981592193538132952587609484332066852179104487488685758864685819967257344139874035728031364102792735866954901713159333776423820876057064636478191457402613159943065707080474091492135563952700242320271687513518952193020648118638331121413039955179105160642474749667388609919308411906339201332342631902749631989553663589090545709294007444258763848038113451611275709181297548511872942517401962507469936564232415656970432654377202904084660493517929029816607406951237653212793594267173220903052513235885621318425391464563993363595114531280524485827424256262664857883464896828249743359670803560905591690143987554432636891135846775167993065573130820238896390916291534597380720476903912244057808161860434957181968102214728870926825500965111349755327546700371519861058432539754198532515524597785988145884349114187797288653070571577045559137096325064812895273831996033729416728601057018700629649408832416226881855975863890703254555634883116122109354263039922155680828854042004081697908207455793133247593187543679678670466610432678398855052992296299630775403515945423031554001121574328227699100878366179859297431594296153824315680962811529945693766504221294315734163886227673449995620829738935331285965803247833256793025776142920195494773488799727249099131027003787922530104351662822404173917459667839009918329293976957147430009569812048725327669769792595282651740598329119197108153627427080521811272866694452578899327118259132213488344839016465245344185428152594187362929817622282936469827951454222787278303869296095136277172192547983448349892476036540321160303360239560764018840835325139597066444877159764872036822314262000621617980718619286895271899916071618903225446971219168504030880191466218497102123801300918175401220001407316814786793257947240639648545592852753249309490680899189967223818953077981479604621752621336816069737673104832849858797486903193144969322300611640652240309642304597232641159795628096662728761206454910902258134875887921631828147728433879088410718102920281266243700661436174420349283048673333228543012617384990500016962923239447545952987958026204262752068834645965879395428188341787318167795642548829572887893355280802688410531877728781017938443403089123720577101018554782403375099819955025855622418450683988643684845303955100043375955417953647225607816999006493561590181028180207807039261520953053757867314149829969499093223453071702146826098649568874680957692731591994765803875459221731368557397719085330450053210413249275463106828627031837373721321732477955872289992184692723623037471950713008858772505611225857297441273196124525982461795707158324647343011569538514617932570796825743953077888586223679745306309126958044504021816485101423783413249102311103573114728681198635655533259050045035639978837520013925233143240764314899003923406343613437188147927638194763264168178955189827947658752270800305610150443246016972501545480234182428906390045269062245824686603856944214547680176589167491677809794425690600496526280306490975660513963959247398746669128977393928649513125963879594096005875536186523517486641616635459260630175386039943459101719190122617300729544984262157154066896379212864518462663082795489444638852617922801735056804379202511836813912584982139645555023114557457873223219499028455901821028123199584916458335232382246105278636130807773113790864397402431854041181154037045509346361251768943937727173324081633273567525738612917915522223099590777415025835156258082825446212080088553932797918167952432082514628979291593128799559846658910768877574140694058188834538109156462953024209667103071083019349437757684174366896653237953085354112153068159557464674662378270260146308813544000693898823165659038289735407636629866333858768341357425139911643035920773859532711938821883005607918649995518812568062091422024156519619748780993682976781751684661080046365895847506223754855407286938130958161954979461937604569694099713448592390030536759429274227888476206951080163900481161454610666713936517870228251879866718399846563804615492867710113688615186313037266644470784769192356113269711291348898081903511309305874107527082454507167638171589032438566473610451989997903698977601356794372160747994327779508078666511225710628006297098256343117493963973246554567497376562964844966177870604213355788538356078140185685806697197896001413669816088586145380895504300077660088340212274979043349343128533204514929055756155250373056856761202233506429917749468443333064999023974034373733490361517865209029274528560275472560673266688957185114274015844618951181459644426248053130054737482770595034264920177479789775273175420602241428327060757348184061397837028728077621649249349954581348176344508937785730332310021963448316708755288388062369823988698683951275236862197302668225039140029093283120776501340512192704357708331396899048298454544522124116613188893206562218579750792432066675979448965395627888410031833038831856209461928245937330099036538510951822934359142273900678995745307575515934028410055020254881472388615988670090151875472988433375300316537456962204061174417170910115235927484316530026836815918976414018375381325659061441690996994977880561995634749665007112076246529468339427716127504924339347785515271998427503088519103390817841588088541294666136206371047983925216431501647586913691521340395495519059990328374408181228923368085761302852570610702737856331150702713407996430736622121249813726332208152342222283945996293794255084226767696268384854449687560865177916217629727524338121324112749283983334430684376231004191162322394446683804831871158836968098217112107290442809047857352366945233236731841821429539794492472922008424380463747282481388070147523838931726765940410464421111758632178626061791914885809141339548469557056153741637148281256555624596534881451934427224524060886196770878339795803991702356545152317448415999398765634982029245640247002834410096874015956442863683427291703702622159091182778932175333918498271282165505271585165115681186311099809833368165953565464763862338993619384637165955208305559001790947201171448215975261730308437372513677635939270620179753600828877216994726969987311651957228240371782771368201368479548945587176248538190221263449615753139019518455854561135825711710169339665281594893213423807049119406774976163422935186272759099352019201855324990379261340594191249875967451205143890231126427116903863412944247112687237667379393352301307157893505408642329264315210117573496990681335703894664599369639854526838016180367632868831091252542223373566428944541378784380937455320151070571178289661967325583616033956483602556495417647164814511494950883908367510559221970227447045202484589072971817036744022630032035058988900655449625191961283417630095651412182907434910619549564129245938797247127241257457170043462505781727372077914606049995658707410329224336131792015575220676606455450731576275560990793760862659201782394319545670809453053762867604468372666436561733678255377826232427594889765538903094369697398288238206419228374597557112633577680125486178979437919776893283003030894752420685053874539031158373072695902369948408922977732821046834108801315116913524149622076057459397211017609911246128822713862371148640700981498481175314204055035959756965502735478740334330354795800012497914101075942964788653329416758399297199843893458983962098520658526437120197891284722596780389454906439971676472430747941227188437787373995348345409917749965515590564913023895109516545645682648377909949467697186421861656591750479961542201386753814506784239161087425600819118587204109680527404852558059680698952579680329989442660032282478475180830154266730078595964669807104085783898832637370103012270136744107112160625323908485804527694834085306138491598927103264545954215170307044021293692408553470690976027123520809553169776934924889967367413674778049397216985739817870862401610533776634813766268443836335059707832173715470857758060079149514543345199740019512846228744310245769247816942475110901661390446451534806098901290545813282964010299965632270003659952540478494114404972077448857260982786588517093517274905707794888146641595228997444179269813624174788084915628951003269741505320729727011209228788545589852269031532925923522474281947779607991779287153957629555443052585606136168058143854261068574616580501128501266845047083457293936035831477987256174709919851936982931713402830102942210739931851088619882529939055481738522512564068375960924178048848265153269526688424413283762691280290960425933423004564467967618167201008710526244772654977159733430456050512831838407466760745771674776294120334153948631520805535805721422081016167941444568815493050835683574020797174024766826908688666317337578670017105676442146058659398362593095967464040160887293793559460854928482160647143390602675122362801097784132542829738264459151907652909624129044400183776418727148560171969431816600416754364338403281783375031766493406614368353047267486815602582833054457055036993982638635960680017438751460555026098846607728193173206983359822673247386496878826526663569634608828015394304274502100221297315920979772900000768041841705499724585407053982371138214369206977554819044290446327920723564574894963528218643181909195616352716591418969393821104751010363372584575396350507169025785748671977239894012132961570278263711793662877926270802155074232299473306279892265595184984766896962733864121876563962449127199250765775209503205234619680700167177542119128072120637559751895300130689352798568977112553419839132808382907640101758382902706477974491478830827735934314598627723002343886424399600064546342606580005462666898015975088218059029469141489204613279760775137734887831806926529322934966431615324891606604036803871623886730058567389480636356175725203739839738769286321842328790948105519786520760350011943691332590933908903616555311624970761861408976912579898393376406925490752209143568280802587584235668955949236811901844251848259900673986713979625578513232949218142472870206720286451071826469965797197695705382580964884796793222801525324695220875839635624170040038975649189379487918922064180719641046948185776839030976559396361632870339740308069544580564750907391820670917076070583020512011471942589452231389476818956058731026149558800221188277541270194812163368192621510418634577790247762103779177716513554438117010107559519447823588677350097720090505329840452103354927571038623516433664193181655557464075847160478546214008543449279357206296662225959420317867165686619538530431953557658874373787573194166598527211240154478505120817285552570293424555607411558981883444591282785075284108664283238596848207500007122823282544806259521623113851501284889219513098983572088502311613863911263841419158622926518461514892088575308618481107038333313057101599560760200210246660689871383837341723607114780236191792884001543491103732291732167822828583023535358980709812316741322766348108932244577058768748616124494881276963154944533953744547598676589092378710747808159181214664331113044353859990867053019833863919264072803445049448183443986067405906411643029548979628146220567171555611504816786547094510784690127639312121452371111734439602396447729477939859044394448281195844904318286117059158081968615141193625517735334668047267484498473673332977331073221890591227708576865028032920830991473499310686070734950335882621854952332498944244853444103530330125861036454708427462069934214152514916446885769916607937019972286810094237725492955375521323782369667495615167814188763677048820180578630525042577417290509318556471869976512297097189119846549792035076640492771493053116934745459193219619368816327206678973513288551054881953454658238620166058562061142081432921494125089469537854427089657278218701708433660057098383954315448263073726918939319233391244113120944231925295368091496073260862337136380247604813418917753652012501823270339511186841071448897853615868986230154056304569343204205228659260410013689077928616150974235093511291472441989746986626926571628101870456156056405401402785078512341453272125880445744830575145329590445661957437824228415587848032201687756774281760803376851447361853659291709958131261344778386017653632701608443808109263408888657582874907017837744357367394789197827576153562177213375069802571960680090445050778676336476899619842197576331419898942546902217410505046008578679609112612261649744104509713586618342383431780640754855218467235077883913451489809318661088575097385680084535482964362910604290079487264819938718914696495150568886079873375165969463011388409623305293288064646337784315654947994799316650027440516529404595239294325886212693261307783567305208652753273528487291740608775218803651263602684233999548070913977407570184967845649783831387335347207691441087891483027778639775605787619645402387696611913492842976578202151088976576624760584493018849059844427007247347186460845308904456747280313458275617688282825496546169296871838724219953119998934357098060115501596297970339053910069961339957807901480060990947714200369434492414977710575721342214747101511910268343615716077172979129872936152630544152701582904507080553644537779953953849375774398626322333613798100542829127253371901348792131658572077823753652048092800464309672016550828203611382691628027122253348730004190476513173899912529799710493572499185455950399725095564630415876470819152181453561332979363489301313087941327808544832594531693219549548150831057866855554153930584248810553088426373926673681398598028375505105655362203692503464514278389891902721691857066704848592531209364297163761837940410084166264923554843336386052200626910853166698724048536912250547094707284642512702389167058283392028403866575404560428601635821499823517273234337972801262876623466212420931288344528076826908670701033740274614205502864182712888022588840678638728470887845975480294885252511772323214251438651350094881149070377623422732326704629141327572929934425472050253847911391661221847430888080771521765162653869069003657088807865990627893163608197723959597564083157614195952684754821467444832541351934417081936043613076221924478714439910842081041998304467694777939027460252291986173374630073257752660872760399558124828584489440677571275545083445841801232659617436913912627250723621906960581425437426508091068992334729611050626587045558313974308033714930049660943394240104825192043418836504148328153959671454501145607302405903874714374467780509244707685784959158348568325379378091321760195878304576793332434724548520006205617645176165840052453555044824941674442333684428989842763833125410270844696496292679467282666035257187796908864148703473529198351597150155100437424587292256292423183898996174030272684178158413641207707844361332191076857686154365647335534531412773595702877504081208831075776347431449454065396663283894356716458439593888315344173543626798830503660235139198474810848194792401570087053899016211863676950699154239568039623617654226586791344528338108333926175690160950299204079452720086201002662530817097738900650406439055431689469941899468234410835300995834677378836726008351771844981268388031086848862462119158912265079475057291515227792928807827836853122324659333791161113357944674343831303858818300479803919898212258318126741399020097776777957433975934990627162575448874094293985698212836933018924173721036438558056516699940701971524231848234902400282237191842027474639284550325059170409209862892462395270311178568559326967605566064721136047062591460034451633696968867813306402766303499053398174697394082361817374577003247155957750974371758962928279613441186531767176604547076962516040931195923074412613544378143282119896272913263334601387942188645850271521337360321306441958710438047643547145822100331402764904898153819212945165603874954248125323061571916560137374356963519236624932208309666575283621554828367225678451248963259782512758484960129025723339900362246426075097482918922547398392754408639236093902876231080486954549013792742022291395004120539449493435161650054339082212937276793557782458522585203148094012997514422638033455391061752816635861391571547804015998327825780357843887285366334204072661781961963709509371103550211142931257928140825350952899912299203264905553881169530575266799808840273041972908144630102595016884899226659914371816709714997576349813723561019568745449795167852296535038824302745877506113601419491675292123534237595511747704287684163336376337554433149551134964731929520383342171840781190772023673617711119322451477876016779967031361545315421555162989509757243194119683859731453850937641447440687088278058444673154285522307887841857226201194865158657025331339555081479132452688301887124627799519604291891773442128934549795125184942461389824340251615194001874809787424602705131149787855073097671796196104903849621380777530160599172460804365862354975110497963612378115406241713689445538634954223199154776353298937427494163032203093947947380326423683228427346257603472111536978719182345216438383588598474211343640190485480084537548407780948593633236117507909622587785072068411985894226595391484925100549895752125946443735685416415559703944269689937272396379728579703530546919455696024494265682920804664053145635530678341908757128113489561986813494113390282161389831929438274726711508781608989922707647409089782846350564269651835191075826772117355283034567125776398472301139534958863209881105133402737804514490287783993533761058136414326270187558319349652678194491038702179835887668299182221153033893520159579502753865461915448217666691037283704894094041609330324110282403789724155631080911407365184875856141161180254163630948833565600693627740779449132065765590723153732534131851899100584495181887000729296856600224164101689169769723356794232047153699175838224583309416306580171832894703514025054233771564856784133467416065543093164727600285091817400053824640925562402205643621778231341772402635435969393308926113483680562881640418223778597401317598527144977434833637938138656376783683006460058541890181340047771731900790554702074044630891391051123398434785812074361850885576225059760147522242640038973612844359549292593780489363634815937431180394344301555493088224085554262391348574786113554374106167464766038122083825655588470866580798973594469542468190821722993754601660577982025195398462545546977305692905980652816978753552392562607636777014572052441283859683406535600504939044999040668843326200879551983298547186602104550531092177164233388866530115345785741427278204920503718636480011081798056224886384035503267608080121821273902328049205618136920417587135108905590181637915179335515114335269223119441302340505746462629057934675918660543760451162470235958184301319655969076429413178955045977045912880213900086616245814307992888640491447666139444299577223853095447066222853610339432257742283388220711561373435166852839931013504602196283380465109556620117037752583931183846534480291757316976632018001877305171209478953467575656590158903683767366845284606924869786524042998383017044992545204533670948821279838873502889048434096091649461679570217166505259302341260273619489674978271302968208257045184248456150574162450122223797903511842639390920971535273955364754638221187278934552750100247441399628573437094955357666715603754641829187214193870782251264068766854887507703760031060056998772785612843471598803320702372071543351466984736689324420248275907405285585462507891213934378681129523339549806929033007029614424596096247535737195026620504257360412327659054822591679813500927189889800692946442965901787664422824761697175273084573616108755316562882075411348651232742144573518585002605737806990179657549650723084373383839415911125589931098645322569849561701570873977240919374927776040306881086661627484167994804644495871901777723068064679790771886904983476750257743937833967961414385391546604111556699099860327752113904359018817909557946113364151268882985768008327640182735531900835994911542885993244532857106938313053349638001526230211941459577700556438452853313738751642372137799073831301186180345171091083517301372728887527577097944326343261145293045220693478511660977789465204414845442842916978788187906927104637456774661134461365125097355246548216697897317521593635966865827530386694253780668125185080161282581887590340778760284878332553354592711673575956083006429631369963981454125326600282171644079987696056035519797347512518841867652002487559556076674157261859215580108734351865599407110613393557345822862022789500295587396325959796558888158190999790982502067945721019605404976372544166516707200543901275938903169742280190236743773557690997701731886436829264023580591294428628597117320277674849128999553453476031939257059307325462370916531139406833363980099805911443169638864071189575309164612602869722484202644628887035973032930952116908993019052733205299331652096909788542086038070442350120136104513123830423353294364793343018312357160339470929662407714537339358882980510055568656434480815921639246103735775248555363052743810591400517700535969411090294130617166254009388373683421062392055175793901656025183094820780170698290358850635638250723088973649730355092248583596466819994459834386992029984553659725867714231177904273760461507054138411387990503829750672006420201538905947517112975641495697478236321540934817204383623274253315858480649596153096803778221356100211327687417022901312642550663082595829268227778390689438718994411229768197972656055432396515411882390832620578886622878854315102470680102043176845110957048785592115222459742522355273147061324931380825098907643742682529908831282769978102774040548922801054837391134823525438469411943891304231165420439209368610399641089639099584727153455405386582586222403508655875378511521307587489631407493453519136076238747983355945855436284242671965585454878847211239739204019754110341434660194190731076962157335631392225846441244888118239848925356393923956084567889330685590958335482693933367146781359009837417676236937089238779990460366851256162356201229963454230811395204255530320363163398601422610800959814868582727268582207642408912030977965801419344840074291064214683284322895799211785098118736967492964253235774023877222661045676290689953537605237635944683314781038710527300995054608664951834056980862566613587742980127337001971812880397119249717513059501270468447724837149776020183076622994838736471522189024909831373766992884785087809370079323085014413945252964196086951461934123789430326354876828646195892228685244198196620638270084406879787420015049188545967382687363903573979261173470347767287750434264405205021767587197093728279019842280833268830513940617055343237654298869183303538440776129294137223221138791071616402644307006531632007109575356716852419027961441775882477720836325931090878654620577591935490788587358349665891971539866123109981531558552134266294858730753051367843377183452311222375292835813855760812701296157883201992186445510479763031420812469690671820531653304372771230013057082306654331786468494645220913859253898572532666987590115455850638193007972000008541579210590131335972726320919602839589895684821056693790949926625327073824219231684747864380011316826238319760550334588953942745015374082366920083412056718704103936156895802918137982205561977053435877204205663114568322725133052127509655837015130714313905042829856485146215552360563946323364723166848212443267767447127768071869883168617990680202593773087118118508862637186860378025995793209314685315945468720738272105302257280511516385248215880518108675025118587968560256890609198627212599260469328462595422804868837975137481755650763974547674077649813279117919658838762943001635369927184430085059247164993675715404325374083973889673155459166192179055982768642830451531880872345982873087277224543093766336731072393012544180635442279254198406310278088338136890218848327180970534112280859442132268651566908656655940528307582167492529442402058784939237491850680564795393773421837375099189838740815968815106382513510347180115288878840347433129030368700400663155014308402905801662420219287544149157592801229556864525546454405695872729614399817502641396273478994911869495806450377143972887311023713700148480401087290294500528682503925006037594364243491457516596249044709997223331342950227391538650741070010573389880417807401263216163859819429316417547901835801730803470209545029974168736201183424525709131911377774705153599691132400464265769030954783104190242423562111443451869668858402081458563824275970941144654031873406168726142119036964915515921755289755259433135199576465510821372959957563300151913668737436032420202208051187860739125995338503790134517688940640150736643651265881886665330526136708831094985017756234968850448800281501443629575824777287634179960693434496483201700638796384883691717971830110483645096977237930014451869235189891492942385638401077138040245167036767566928825315914316041367273128703073408416383378303164296604038202015740868612406996975012254840769051846175240306605564467558840382672587621647107327238626435581960720201227559717776065407190349600223822194685736860313982237898361744402463984669614428530175355080834055714756456000256351240644985336541088278917704296035988691653522024099413317537131826994055937035874601645289011125280251281565417345715257665059408819311978014498419953729171607658324834326658358995854421477700246691028420856595675749687913266125599392840444372746978572191122531351383382376925880937331835883036328005338134362070227527848569255825614434075537898843642155439536335395594349624778248339704529467296095538537129085839746481108395886227125040526677997265092178614050333545468059785223034404179467971363860550335970055802066430740345776719943695141648681842085030785412573793413509873730991361979524596838272753127835163755499755279345429069377378131582685759901857715440321420697881121907429080735367228782543705270373520586184031752219720718189719227883556707500415655262310826428717761361220107468319545506092817894823367133156869260262290250379431137978312031839947514732894021744388395449498810958124480659908111726918001537552052562306008336810227601571818096697585040119110343587325850724384067143773511574085301720271825227449967310991560181278632779027133844307973962174203366257854725658666368793572993248205957671911471478161576879782467105534372327758585507530935950416254873184982080798994251268574289924766715260673685943497189122765087600560634693293687605187900950188259318932758791719451714585193811299482132868931457034681048267690153287362629568831369892018932390894521339958568019801080558555597227244117835252403576057024860724547964437133198698736264570247502397157644750237609780689900586812403922975712733243871396803173000322156493485882851556095745364163112020946541818713003899188708151204739719151953879563060964972887379537692303967570896312875792893138702201845754461756946682736806364131840284238820251596467856625375885548280467249468335828841746393049337863767132972490299756742352605329500362969850052623328465293498482831642737425166054450544174004335047551234398322670669725627017225825183851243673323238607148158766720527627071843203685320865312234160293610742261450016111713914559528885521190579988695691185470886284833699450406037147032985656275804639019462094674430078582701280454948995960065238791885402203325867081644631528676303223830250683104848093523156292103444839242158106230542011373513019442677462810521355758221066496525644268044723837002909598011631424647920117473474702341269528998000751407859468311446831196317536218589160497310037005924507917175221160305809550155274048873302942900324695904784849238002305507353466587764350081096612642649213444054437395991258719165006857008741619348507252893485118952793822800414421671376717607651862229637291901460664850216328790433866216033100185357749109164402483974502655129447763085289594757733157431610458892367008129952683888451390032150448923423869371933728716815561234485340011091129131082499016812186796625422211788897723376227147277189325410460052481117609475720439634672977531980331673457398593478738549738525504752970439755923045401203798266054507055185098410707767583287467443713261962932481979500477467588736349648050684274233363233997501054319900986500218821440790255522355497448555302056545653114171096143319570976587959491607330334121347793850145848788943091076264789847267226300467924676214410856284644390029056198543931970882656038605410813669514900455584280909349529426243426703797231829270583707147542352210533479690771844882921680410055260769469346146997917394780305606140529716778153403920769146852473461658351160539139619254487586388859435406727150830827003977940955897812452766012466739389760729353881237900926040491004715155873844713351383253976649119625249720851398761408274599969476202065731160066125001180859166580028510063309577724272775316136721496662567444729015949527912580090335742594678794389233506879979592051032661326698018574119045454212771621737108422308610234480950427395101626432085805537130224809460538233902766107496481432708853212280061854046082860318872333688793419703700114425140215288913155550407027000803814289472942266899338132761381497254603547430680262412273665396231845818439649932687061241633924772089677620940166519948833263183095245936417897085385373765262321178074547159578718528588250940625324115180138637891899389332597288553191327772283676008925750553284657358725466982337304771757943539039025056552875276847728735249367211989345413493035780200722460783714740049383912323625807476227473149066167280998737923476904669954731309544697207906850759676061932910879601040214808930665880505116498937504146040352991976922111487800659992181600668558260175215770664738771433122492285933947516025783298445036416423379251916975425222128039209597390832452962829952730852659682731433823001207603196401535658838784554234286279021912357647675092196664442546854406651320532144895229872706342036012904134872026775928077423505646142343746562085487588122870885832108249994767506762459094059481494307752733944685653674850562120745893008818131357861943706580384169414517983192142888129693794730550332515109946699816464721213510558010673390332813637209835632452169314551241589181889582272170937036737927357176083477855736461738930114074478291166615451795549711823310597541503521818266894984692066939358314206687563488889759289657078500299021653145609157696960769184419522649044863180661972586504801375569974905118411539520999249877731501851309206646879352021234743188488547314171932347433428558658959032803804010231649794482563202094395612139191178138132193646674092040584007085753827444424756518750125115460234294563897359389787958357144047327392175758772525150301536193449873388135817894745853650583580536640354720317960969471818705735060320300090520517224515515831427745255492615815590520594403944420643366611742829352068988189631777766091812524725025733394052851106068142883917146664686901720023935108784821823219438033953382880384070635719635332374100060229370014790708103072830639667952432412709592365031585523098969295155609815691782631927511934700549652482589591387995265084593178394485778696035753238583730441486816665523227157646085202058850682037365072688410508365540010587172818442837181023317679988390129461630958744217384170137979559720078458776940789594687827131072501464882344504472934492410862968422419660685885794587451236718456639480984029375807258614218365403744688788207740604714250587453770474007704094044262279149528014985607071958601313690176676267427146696980507230500427827206293122512994340200729041411240803764682470197180865555333179216536582436361375513926303644586491116950103428435486692287357866304942590497788014326027132888056435208227763568725289917797502646952673172528282202856486572025027954572152799025053701627955481627660973401716654278663410753368988356169723457619080065704106884826489970398682509450673997423668922775285204923072415737413887625840006988396771298915889781352743519297471118596624492436140932423298728487253698891742944664837393022715756053391671451599880966669265610792084137536941676600647810560237860894709482893547230377600755846987395484496092115001057995985534091737766169596144094165653262286026331150707699361334116311285988851058263305407353791568311628337269170339307070882120807241351586558117942375436694323246483257088523071425332644314600159866467440689296413157890916247584571685394181922609971997061808374715209067637822392998550530265697065294494477263059275207821851552463926335783453180839264430224832881045581380883230675436468877557781461850498619850127539074814749217653086090011430640085964113344654811643837861986233174825926789629237306953826072921891318159744698327451826849052426475397284104204136486745870863628261579000512440050272629335632679179972021505332264626394524603373069160442092386476389394781062986690771087664757031757801776761366670884629175127984379445941395566482424994962117479327922271698013109292179316472024526998153371259287279841099628791121831249993014058927168161553948112480749044261626524343824484858016527907797774215869478893058931284601694069654031253424779246010639783994989696961607422543691986715071478271295435293051752934120717962518150613577671767889510195106555851171249994585029420485266275290972914831039358694748480981089922989276721545359756048321125579767589492477391974995599402547405371618016107615254301659617403757319127044196158812074650707453520865721811647977398466275357791534037215297973062842847952858814075827522826394043729099776803073985088742733120310885046365011893235612801648831082869278640838988689749131661820334932846938223829348184121356814337005869256737777872610487070757930564901909109984216903132480474393003663440146911831864585939403860430372561935205537258699509225011914648595508402927044978850915385000308772038494030829116079356924072985466323326764431492903378411796181320777606096279504254048504673373785209854771902360592505501747093054354068055642978352137967536348097468748398058180805049565424816131382307754355415865941829415473737290422919728843558768955060108283426580865927159017930604725325146597938976835839959997684100105722049190471015819568628347747772650460072209869027991075953862123146874355755274215125102681721282396777692845990951648663395506443989955516020729658070350386450321545878840989452576616275369129726904828424054052366759714394878044852992905294657760988979311844842728054195805752946055879824195861129272756735011800951172393343882358532433008149862410267381115544969880342033030462249804919365920983225565616703249006557592653089985993044807968674815111084404463158176670133090715613862579760444381240799018444609407578840137881735755821249358651752037126075082541474782422662248780798934944775102556568253235569846983200309321325281517549123208805763242787703577726116770945297553303307354563329770373562819016139960854404798931613044199515276023030308413099580369377127741729039340150945082199960088234951983475329281662745830119235199228214771394408731498866057783762770455036901060502049093333561065251444909470410948478275156110638007680101196389735414967711260748633968742369965992293808642749499710247657596442139428621884852065152086436702058264891146269396011983064940609555206886753226080294603010997094952358713636115252491367957425597971822493118641793390989224123042448364842394365174469755406469902363564502051128346485652267885252591760759865821731686620330230588403608700108629683095285715491904754948751047437922207337044458765974627548043658996621131373530646306024862745142882890858048622237549110991014834427293730109603507018265171604474036169890099627418447859855780302103394153794444073995853010740562783219051998613326449256902321310334592163396650446991810633042622321852280052889069104836230846982489725940553499566233644186688689595709903818328153505465156552272596239966983173414632604858943333172606507292692383586634519605433143080940015137063511421969299591152454307989660453415546426664498197684548711681396731502479857034463642124183126484946104984560020369337423618503573744492432934494247391305010415468212933264228087830781773280674791083835470135893880859335538651661566522724502248737815644705844112422828147381131179654670898945042569960716988515073154862622538653705197896078294990495568426027361767657061106447608587038864075674110095378781771199256272732003112831607371242603075734362548613348839958935555430058783776445719139103418327286448101557263136094599462148746130287152851488053324729555687653316699698918224889190428288061517557355212883484408279684424778962720338457286784890355910513523880980958244264872985252039652049008514586811596847901621511946946694050679259541123436544081189542794321414587561039604547507663300103084736526444794310141953043302072265301436115754072240560970490618892533641312734732314746576211543790493332066270228687654904085649148817006322673761798974239310379080494663560809362059809713140813097981465268798400863816578933611909300264338370773972624298364380519350282385763296387933308624224524373890815351888981693050745879081128857567100228244414294641260033656667071259061534501139730942693580367990707401411617851136473292450370073573135894526407147998463546000779164307462482692626836676960420426023796691594238490046900709611916138350684030271068413689282752112066873269766506988261913486932895717371411943806955278870600147038860461173290503860872769206512230354679002958871223925251717493280333888198321262820563286313622858337602721520812913178181784483212032872098367435631069320332218790128691206634541281526227331389812544224794046630897604988190432161622363876663811638489591786654595475509123294944393512404592845515627835468679620371208967981031955025937679223875462581901260893386150262247446528608139540219054938822315341432061240849698755391196289197073555402831240964314670738143131128580145166444826997759079103095000528312767343730142447210861424076865133350819187890565149430828047200300054379753035847103475495701208014806652497156836887925686372230362199663231204704317944029641674754985951354199291091228332136208889885808147444280870825204199094744881018277708427945707094215958606074172433051462873138048196875227820506541898257209161739103645108999469162554523296490618224383826850878423183841237070981902071300130147633823081220887547483554320541480267845769245295749708513572934775696884305012959384035423425776509931384891096452958121039747108911487844567147241600728264620340724956179444038339818693461587267302800958524605226067478589637568719467048692353066614541211186452351666018056692729948550559406427175897891194347184123842551717552532437403861420022196218395428697024789056876616982334549236007500425910235004427558812891580449020299817151286565726572207316760836580111937352442601345003359087269082570853236445288629904252948915513178745131478846150511501824986185634850595542644516875167809286339262184530370867604149989483919058157560359152508194594611069938190672270471569353540605861263604347249877415724441562915445855869757613986340771261090257340464627311477533412162975754802385980138689684847622485613361349679120389061307303084792019355530853684048751651278915222488832854986189653765563536702485563238458908322106918785620843875665136603008221504956026272119266445489258289151265364983354778401235166938483683789323200624768685026007649542514482939489007086010541073992853862974169012559086335312393624466285107323810484026192283158468608959648453510547972877617634054817123757360748400899983314182265644602251727632221392832262704309576495416542972878484922242507038045881345327079128815171010888672649433989605379608320894242952157756421506016000714528742341104481514948144511894906628532169185168876155389104751361227724198845647227542613798557555517466851688745799294114243716164609175076625227160897058966872007445575714688203527612132142453762198918457042428486758479471336204266892896802950999997946682219238756467874975044465521461346899626666908198322512090443264220232009697435464764701758884399079981847196466518927308568638667252616496985818054352246429306960600197640964325720802954477544612973186637521602088828090435399077868171797349275099771430551144433104133708409591829369854851872472445817708283503139200236615180800575592201282208569208558445118872433257490128785525446586973856481014112003924705598950117280877665926505238558622972069114646486956263013499266496464842099797901430660231262471881959091646722040946835835118133086947504800486662512264580890153383746055796688185223445655892234429203029523311742741519044560651423819954726353062812955187983813715928304420374100211947298555324101824975977900804345079623789319863505063734388321504015444567746251338535503893416621487092166152571569971784883342047306394187115280942341449629425593216645815188417495654424052972540914710257213704748859721977834296606149877090679851559212166917634551909998584530352692638235611978451365639993409606879504373236421949771114675065677500833308425102269300354745727568541744016506197851510042381119812156641031324655285177592577901027071562308424296423390975157362911366549793063110253382655108580480577984203700546201145975271767174750555819696117303579077316124620025024989768223041100347507247577745731206105495413096423880989498154075075859738178319734262865365559786065590179710120394396431143874507801075756990624928475517411864635381172591360756072325556876686239960592794091301486513334369610726716779003737661638737522005771667542184404159478409114058234883165384153363215700859893103447014894071383991576545795679281804515242321022548279814473529578758824039896994513934413135646110224951098234223426913167165932478261512403887971494365498112814046138650434384628414902179810408942778534023211064900735963249870471008592814980386715964384502467824508326315536066068878502115174475176274219651174278386571584785314989124182631657440061398679791225793016290969169327140978657027041516913557744280172599705413830674232053275497331521596632932223979375676763869167064431323685409241809323378538099349642205652692329158474720269735088160746973622908738348801660814620485259309086634927193581230352547607020872712621066066122442876912553905533871442927979920944577854602217385714387323709297290787159641890365456229752947748409171631263756705339281490986670945225878102218498063624132707299403029861122391961462823719102750171190248726760824499374254894215503402399574727959962216269185220743714895066805884821087133616352884283453436862939167374423652559381233566701847720293026048026809548615773444433500382490482739546523689530081988997745890304416079562898793061486654885157077895291091072854753458695947315606244976363268138994739065238268404259781058565375710341072621099739843775868257118263031161623694312067574644208399837894378013379047158328211136201125310572524964914183869735707840195893018477357608886567682192319677515250396905143344592780018548297663561541968559817066706840725712114541398080812097141368738233030274703793165547950035794543353663374517159500960696320130158974468475801966566908958224851141397750248674844445140084043840638248432575344138359567295620037808403886784193229822946508056228031456452390204356443734398661170314947737416493006750782005263757856761625515249635140080250107620456679194966594647090760379990140563782691313949392138527892850780609221706457002945031198673732813574651062582115685068232973477625149271764678466560358391359418046741609427195422684548976745216229867942393848903214221618184347664227354100919453574703808450716292887963612510302046489352186560324822379895877059819952898557353482909890777099341706497238647940817943614604055336342024783611501782886448661885142143193364807967023942366966225893398832969382917119222952712961026350058928433224103182483181576645434655033075569649169812696995988413041496418808407270509252819673550419783529495410757945419182852737415856685396711743384102816848200623044759484151038339206135977119222616695885771661698340836648679909344003283866718819781545837751341604061994645308308683967253002931159511911913656347171966007967562770664986693280088542804084390744988363050429633894973424264799700941274884267896017302277215712065229568556053280003787649786806373483265855788960787070351353365695624351254161654445151116112518785202824825104569913727196492089032744221239262560988555513802539379909003772327965965783164133977593009984604999565435628760206331239536141287288899977926081299017608206843693060957265022758938745684718481214573252467827217011442319571955281023669790139591248242827028626895382679300800324624227112815998742998542035481318783642412561890843677089106813507078056916332632271847150640743113192572543013625005480881367644718569395730731310093922876419388675212551750324998772738235078276822805756521255163078910898069195088061508795137573814004143823967584553688020346168476479689838457101458965368183753600151019073995343672226936938551131831742382758412006270335195620489896086374694210655279944934349889228740026077275044251476340631919029002486671432132303812794959383080421423865912849019420335145117560609744181492988163474927775862548065635847083337233093653813187546301196836626011033872903167435537052399157410306404233602688602321388058268296943364798424750487154772426588637117273456224814624056506582017384209675986516687054565695975063735515369106408455525915328420510581943392155300834446711306713585563467436847060917245030798722044882635109397819637050736117325933565226378373132000651811979060120433065731829647068332647332781317621886467638944462934773031854482673452270692410392338439811663576385067835490326642846364896339194877279398910551189325162381369274611696974747449393736988737624760914151695328700355085740948134586976419959972093644022262354108802887949637417201686847532503760666694499889277063075966291256622422149870117491118775366226336759212023201471822394474951133019986315363563775082558838541523278772218460213466444143652940519076397683605194898248046867653834468890399242253827436821873984385784307343449545292181573058784891771588609353388542988275581208431259460885154566115138223093748979545603630953741210387576223045740129967702322255696247711456693374266506755572745090629216453847681660134084314677901883585343623884681486318773045839275463793167995524739777879550532134328618996683382046125483745201367580372862916568168470801439907145598169160276182670169308819809772808456905511307219847490110664063254844987926550580496202513902011124576164710887563063381306479050125265143551297785715670771242760807835523111476061023966872989041247120730643789278968644413420466966162579287658817227229593349235330355996333222161443277651585477756043808457111362309985378301453657212387658568117983014845113986612924676192403695130410941375356208579298781013083995067267940240875656351289444886991929340961515865905092730525555412524326306308038473695757635173966167043057856984216351120486357619470315357570098348995265860366201087134802457852118938293490519682546025247938153599053736063692354014775560493651317410717709998229191789016011842238189073528856222407112126197221179190415406229197484325063793641124636438151662363586700748608989899208937416235560837311478774346261883858929086303464630725040017869726609660624067506103189622472790658311526105947738326193111928252991802582711463897920206070254598057703186670553494040965396465497233359818758313206328061228199849965311802129008250232075233725910151129816175717922803010167566960023518248057881708588002479925697297740471722223798120095496508856346218969765762393247442762363980394073163238425478994333345441599083557732886915442645561575681045114074342760675426680727940050835834278086661683120833999314150365799516945785044880530777276753925690948982472396841942461457743150114423117060171816973353805345609539069324230505319474563221913782255502581429308871946493952884254495456600901699840661477717557596103895726387169651835176982923154480017978416233067574602055167542795204313639837899888936822766464079327423080732393846132455889578611179484648951540776121422750837205899737705094350120788568668080994996070230017468792503198843511740079756957689760244484351583893531225919425582283976174714240185755668671200990816433099160546150999037177590851396031844494435468477699801790837755135563513623470422797828411597003056238165094862765161244996668483296982634987639562786867806997103715069100589306951661691249561883429918061210311878664614991896404665712905030846530694898654246744878892986811757242205898290610556854590784255541136703924008424993837171337413328415582349780717334395647578215466582287498910278776091169109502378807026139860273973138281771464278307608162584550790075763079063173775078067125780727820065216088553116557117165237049457395323824773758677011826399957173913694858867141769158269739546424006195211980931965931184951185225211315111633555010907877255537251292810827160881290072522346013418071064941932750556138377712597860698471392868089624012874647312011886954962061282745085340991319862029755058391311313539612510322230024020392317911978377551147643504617558369755056168080146876771527334637363984837614830440419636065808710442064572381201927196116289473236013630347120778223307319773422612162913384782186505102789295717642572801673300416742774957988517724098256268122564903736960216196201675325664394851070928816454827431235974793951301434381587204803306697982191550477733999362933010190993873873618614032765506103150549725800160115608729993661665248882064388209726260424061372129118590647101746509784836193292909243587853073115107557406291268763413474655908260927467868061665087861778853902773585270329405940509203845922347817540084827211350109629084434844788283521417645188413077058795563134019448342827410748537427342325924891166845390236626446096948609087755927753713970358333622718840374039291867498201668691380271069728719250834845857269822866296710745849664967706801883198727546305013525348863381593256923570423878221116444223873441607923793438199000097386874585816011252947561510190680072318854931092035652897188508901643667337251563588466703205789955200383857297812985521799985005735837263183736037798648240401975372675975910917344676053095298677101004073184772917354141744937202489494463735407162519512487616939000259045771281078940224407182116321240678599684335097397236710510029145527396737551612120751116050586620463597759245507874866715676034365285654842183901024091496341299337567830897687715115116780967056103063780284117905678168888735139636899019806931289034210963808417692078022704297419541911801850713512514610006160123234464078676194632113341329808478409254554196543785376342519988693693615685320631730486716819576159312513986236406330606321751302348189940074200107684305034757336346267906083052246940476159418163235708325048177393948179605190129334557402153051163478055939376217619443339699457488905648430756169459154253616607328945985770620530226270002883110669581098814082808156378608603192347362692682185979194498228089354945230201691210102668059604616405094505860708561466098664977812737708235172845438798744261661852576472508149541000694691893776702531378257679684693914913943171222978445061558937549895779495106124888305815846615441586179466345706112342686749986847533529865786531520499156926813884630002418823640602453465002345402013799941774247798783426408196788699362291605141416359095542557382812589137238977965935301703131724952956380934262639564542053951703002871551385159519246309673885366435285311830393580038664667730365524893965520062595740204274690893208558183219357729430347677795117069941316499521871761222392079268784366704025461600079729257688163289077688599492718413938421932979223334847524063141100739186815205782246540985572823916513672232300120531916719000562093200772305388590989969215182296942095239192812958012880371738774245750397403615503119672234374813341448559885875756827246178464683389568463904148507904257000497609038121284484100173892296450716526482098621294211479759189864122293898895914672195513165058163094932658050708889457660675818528674984292940365548213035830160438786310045544609511913402880453168908048254728675279621903116258609268812657672200223891124040371737306571595081721943660910746104267618012440509786163613720046136918987889202423243342064665994715774919960802778424381861710369549562380159629924899751716461328825647466100584004036717458038232144830888959561335609499435519932987925855469438681467487567198919741242542573547748026133109233304085514034445267841737178548341059085871424695056790552601360348087735222340867444224271414318261324936749252761858032194881262868186421837622581424694782000096562291651505166539307980048846597278698104416219241681649300634002212731099693798204048638907801928789888711209445881752069551056071942499762054845456679827249362813709096213185334933046482971253174183473259824865584243971610002470411748909981185814923490820831156212111061100381425753803908858585946397139902418338857287534002116576826546862365815499037492291119049765203444810051274004207919559413007785826913946798467062581192227224293512476231503546376277206940301630367608393333983898313433659027033899129539226386510949267434024500123668174626083519917459207864531768288005005324082545623931972053321855276148152137388153068457374929002037272451341518114983370943223353815062636704006496398668550054955191774524313754529813779915230319629129872041151836941741222662356304182733138558690686042649872442898585484623496445477995362507582589071941938515589136785992853212658120442767838502147875753177826831386000666212633147863545469325745579362131215577737283423760780153628913566667881248089109045968111138402986181929774474668580176079690580822821488965795997637291830949340277414135025610546194065900734429674559055839445712321949188575605646669666026547843498306058389876700299852955011552991999782140835129636400797578485418726481072667034639978201078219428671324700652056255208231624799952630277990124331224837993833206054321006707825552197623299592767724441986460535482371387549236429531957307700050720361543250249686016514199067126664942474792334020266713359256144034114230666056313142232953204765377768938505754021175629897136930070925296059167172975885690966687487972961216010328890013357316542732807236196486385586752797877926719117879297001562526936678039310671835204398794519043009158716680803100992840617326254120116100622524684943239060558118463273877169454159456361518120838489266642958372627312930568952775010447378133743105324093304900822201652343753438506706924723513206979462707208070660472305497891768951651315745624729618772340605763448879381090193627475223632997260003187539143395899017215747521950892787937507278790779922098502473614457378117027323186703881905299708815522502992148180363334213370812229682359939157734887238166204600387698010983554450311500810902743721777503936493315387546165956288429518712339024703073704812457454015310891283008266229878630143379961983220538275490699335472727975311615532573112757156550978704640742953938998850796889864985357523680475566172503934020765666205634452120411057313622741561018011684459236843099185240123601646279968542910000516336179387034805002526671676874729802955813477798105628957919300765600430204289095536616486809549090426311660114117158822778719085257229749543621938901314103830336045065423753002110193028699043653597341510351313539362891604575713782515567033321738116522084721482839407990078034115894627704317207753966793414168007249475171815792254048403380876804355329203005836251690652243695622774286923367437404806299273116168730603926938572422891751065444799852546534204282241132661816504282786029118769552047162060927929717965876172208314908625421972770959683388285706368848190011722736123525848542249593882682868798558843719121630340538217099133044360551793061877927577967759613947217443714585330536252480225463642272723804761929801661451121085677557383442293766595843013923522589888155180943269206541519735896766868009214441191326574188592127274158549577667370788568566499120747675477041149552046421568810869238981924715707435252466033559799442851311163708136493434195091132246867005393651735811086765311420254813842534514273530328283852868885611113482724495818824173653155427954930636851851883701433086750591196358665139029347101777996293739620611295314051390818190398557135553200999527669324755963335465496063069516597128573818010992133622458646752964762796703028529072138277050740746007004717563206454980030887272502903562166490497852981750951303509043583997520803536714300248921947253506439416639378506646063437457969390870556551283366423870251306217771824343453879051020356710944644574607417513174344980127513871067553328092151757764948765570004575878125203390452907808377946625609015813215677648494931787090990252494183851079263163765320383928903534735041473937005177350789697495656400836231143912505439505324977412128640101961280625389529834739135767712798891819501996789159465264045932197442953828898436909647897172754363916390879417725997275675852820875187354595791862338666703602063751761758867223741171680711594160241342735930851965162919227681197658605235612200575423841487318378770239534646643589426831550069622974191825383557197282078938463406878809656534248722496885881485673274003239731998860204695496298406822350611273210260405541296099097903447068840619877153899608939936169963878512906432945602118189774073865976652718802379832873822818180911947724658920401072811496728365427557229741193958100567251634946558572831328267291181694563675929862356804922668162535606386282776631169349442230797817281241824467359524181505995458244931116466347165204552254070548824560725969507498026704816005877348803572338634358371218617360831628200605590804565831784269696023843166107396616364401686300439253571901202640058881270599309113931040086237042054580516273138213341387654279216864814815717228784062337507958469870067635667683508650868151774127844693201273899671147756789064182124616412824923183084596901791107490102338079087702831821513036454880072642593053184462586156795850273330855415433159465099898410661738103385902289949694491082613074505747003329524972165738359523981997741345516841454551750190605249207850901435996904400474352854874908437987030566690345609214759085374277168700389620150956952960750733938790298086291617471313076878484855631401139209257891502780267455025548403269963535638050392375449243949460670061022886120717937263454348286282375489002776814708102943162075926460481762172115151254842971439316399519779279748971435936416702511927376335888089746602637111058289340789683892692286984316896031233126837123182477018918024016592413337085397830316773705556946956311290471222151439791839124471684366598145883934063273671755483139998189504255147006056469536085775207515109111884156658294456462816176058269549156064678909065958170629135806871710609606776758321493890291564276607075044742109335816517704430893711564394998406123918167045584507999400981796037915428155342177057977497401055236619501661952888831734113478927182162897453005110840122185379731539755083392485647253927579929150028914138779060989592967869173529238477555354497743371466862447648016218042061686341983790872016334736781288086790898226541963967830678677664929504712201053903514302999589331493807388531861004476520338710304117733080206048737710959525138173837607178874286146665800209510066463142022011193910551138055976808563844392883113460585612849336398659826163364409781335377987331673764645704306911661630510243585146968691799131832599870201463468968295203291574929301256223444797588772187039051250125906853489076315420761714751566431567889227005237288890491370295636179052634284363579373440690106954712089489003894274125296301817448795455763644948499619597819309461228450892683073672876536824328608058176834727055991290220399046307285435997052755719156883090064065508091666290647576131271954015766657142728797736844081567450306728623046942325906707664233720474015396120434101255634052295997765433744100327819880394760392924563583555204451277765470977146091406474214761265773668534773173606684926314895507332838737106467262896783720396520158720590287341782444892692275141192649761687256379845358527965316504917397787912743908026412518391173909284902729645856320240994819645296603778383970492189269790609772682055250619615800382611114078589688692844724341098424049315939387514670419106485070158157386384478988538607018090524726418620856388783352002071843108161459834267436545722240546181580336319265155854332814071077424442159854746909889519816438830710481265811713846549645706721548851416226670336584499445439959567487642625901565432441667913028118801703226264659575316986141268308676697904133032662283826534916339738889093088865360865871611585608855143983993007121779864270547736471664383215593817430683712738455179546420339920000984068614065942728896785079455074395917174137852302099147600633304430893364827103884530012647606196457274513720421750467219373523961290091977742467904945173789647396871504568495081298129029994836850103216575451040240594452449919807461979891051914465738027083063321372016231775189781955260288589923172223194877986623886415341027994728566541339619360300249695940234926154033514346211836095195841726001494476982532356790061666534933831766461210987290023204225052385659443158960303651585725750084262532130660881272550382460957497209626621749511631167283583333963977965684320974737401165602378016736825394684676697151746422172001857316587464616483182456889607017829174127671400736569060957289680130830832525927014288528079752797965619422499298499559957562827582018297371810901024869346832434805282006011293499099434413230803802188733560920172423445353686184719047323105729887216009411085046295668380876142589380754205042213372177614851559801740204721193178994096069657369478171931440184305625578227599875949883607262939118732369894054730858037037088799827402289563566402306746221925323498980620829943488591673032334478203089755968640492681099315938800982323236238849433424686316408641087472344947906751777738752594813177918165749214426381113908484027147987071117455195267967591474107128866279654432833561618113095912342882220884590782104991482896530501143876439687829123485134988477586230026856667945805264811167041787636466059222469845681216665834157125218831272216717184456348614313160078097719553862656617206799685901140799200086074755211830529577028927566656909471320232710949016730747113442743348563038724868655824758249167427831847955906628291859348843169507290888624014363684726982899818842159995330374056734315036207454117828982056830722676512325149667354261080559310876526103736626048317082870615529598241388818937575525482602971470044565709641613215284691150448394340248506337032860258259925547942318828720219097258798116115691196770140471047349000259217068107573857927417010945205267878412597765136650965013065194158900441014674688161157133015950740104992083697998344822713725860596456642868562303529219243581237072108910321543044671208561352924499067516243752471764322338008657379787374443344478543850320128728045421614152038359617504847904645848561980533369684746628182054436674595808584809041418561097596917876453991635163755127661829022967754034497755470828489291755136461266038015016541005982951221026348114994226926473308725364229485633964780131878671919688794861212255670958709758898321726114547435768325955381030133084596829377728675945001761356329308577526522258196047914640025418298945164988768608014173725267054008710875792996542202280069015161133676607926044759248734008423821408083001146027849857831501930810965315556387733537039312564700241971940087139668629015537012895329597633167509121154824252966718025112774248407740174697827620544927102368868913265415761812500753169805415114711556740048964440131961572178921059455012672741190343726858291298053214505450670737909675420265853060200713610791088635616394310932546521303586119686759633021804351332134815958339944829176553010758610806449799443112529518564266219648361014899334480711235281269218502426158346314513678434865147914145652184510131549737490162075996950132350926892807303019132145156265220122225127769464515170049268346811608920347015379504874411429334212199567769422054303863738217774242939709701803410431785923974589796344791543117525150220839683008586590498254561154305787785426308951856048981088155576217045906881440589537494336982250320649288676517434800844264807513437524238087841608598841126035473648834315312085868157964311352998404515878391014041941784410320927243951628238691152886353453365186559401388414453407317878364119435337128291503533706448737399601306814127537698475113391399374755646488601485840545287381884266724473472220860172713602285788282481138413763108843814716828342197849138092956920772985084835907008728757756044771671656246353849308222296065788708660123343019563803881816108199678638943102288546972949350017228009108347079928547864399864538027019080773391570036026873460147589867533998819448440417914003288024924067469638962587785174569212284498894159200069353299698243140883068019053998902433726190455182532421138690734881694043861023185287833080016136915350955891220960938894711140050292633902898183019719221341588279743221317908196263398370658014474391251328424273242370366447891257233911404250117525518724752053299110444992555508189056334194265289371402263320640561905814276332785327163623458971754289799860993161353733146765885921535981528522816065373367664419890422854154237951403565832414394988714145632326105172494231827671425999384314811250671038865831924899097944846184093894502034993079352477132674109374282341866278660027121666921247492130853564892859944210936056429457191586437981962743761587705323190226619754679814423806076563242817028317337231021564362943572946915042865337392287214936245134101464290871201065843524624403994926114881950710557867237568002536742254844886426955177517429281750984703953434188617242382217464681997960677154391680649182045851018945225052878628074850858037383463386099191813386173305368380136825458437763164739389957525428769607790863416027353447491793524879322195224800142217669084731303076933834025511122392246419965869741762600749222100813997975266219388290953759016466423121440529988857355227920493156629884591406629372362403781266426401834397014251741186634660399269361743090826383372470053221860399640061192871699980252732576358227452151065273060325284519542621986705043883810827211999762753572067456272877890482093220597181339685328049499754922110185290244715666822715832818996374380711032223369577112854983686891961362024002538861691761854308963473057678222199444484120384790785361463276191522898130197512857827702890927304669738530830768118103350980956693125243525858867597408211282638684889727712261174305756994191932025999927828413221809246564943591280633197607141479063037775037941575466675671402751327079161007487596275018618571746635560671215720219894623474178304504239516561231211403465425510235796835939722581319646292244861319840499214524336484158677299208801913188792403604294101163832916985670956621753020357807954327076531782961421966630019123567822871006203430090516887192423225583754182363434411865120002508900306811266770088549539055560829024096693335802088254151322050322466192174276582307331135988565021116675821547741018637427055247821806537225950106448738983115761670796323184175717506419345935601754048398046034368074257295114202578915226033519895693928555169762392320847349265762399449856371906209800939227026008488858722992357187383957102027334424102722374523191148500383480483173827818894710730590936596791624671261146138979965871485671878608317982915773786664101951959986514597025535787279506559544222607359365940152116051604651943697331362774444074742955228606908632730207388694602471817802533030004966338477289189436418566502630339308289803339633164620683716647268025841178090508674704549749740390448653304595205345895581825909167576858087139795607437420474543159082441800016137355428490323764565090579542182511090744183772106499649439078629964287460072488756876308314353406487872458801822797329957835061423318207612353055552899564610955055391184196027759701844544294282119376539108107893455639161277354327820230651813230120938233750614556291338966345731199887095599480327642561988039825546011454193965839521888634434972229236929721936033082838242975020378148071944519750360256199172233522678392810720316397462862580486858870213590466376090625029828881869450246963619424919135672580885078540618702195062345462584232783603543803161332568921524153282378282370754418536731986857884842957888099554191780224028296839110187128061867657863581771399250780955846519522549660061698334216080281513273408552751937811635767246627090563924344310378439276936318654580942435215078608215763283711922710428022401900729623579264072857020407886797889790556957211546359880859031766576726553335642070849850843336427054223857121828322990874208819997977991342144436388797404328013565327117140903965032257181983328135758107127102829140807733588084945381796362202400336526053368108864498051561438927379481641952079987698722637806655784025435557948354992304910317912063707430461818198143827047963220727737011254581527294567372835659022558934776413076674779772364455192837555342656503979839395694962094493997827166518033447832475670833365228715571523600815919226669712218059982984780053303466500452007955776265927234336313165105742520411148948218006154420571476737097377701842452456758917631660779242302220338873879816766880422974350899451534107699035822227717872168166303058176153188139726166848522325852474766355777170121218436363575012707610960416101193046983885835712701452211728357913624509834579854842392515401657889225155223373127642990360639640421584138321570008982557946941794994443981689795634820296754466199620679255321566691780823627414964542977946641336638076056600730412465210874417940878704824071769191377583233682218528821800374377135680737061078051477524927350623379452749677018139359856080790807740838865299417519968550407708247890023725427157443928409611250407285776721370112679988711054634713910895212411705443567446766820900231556309717447237127418809026508592178729006728745725139687949512136886289128102097289850161206054329628272969849327991421826476461717347824331363187540587139305932663164304543283090830946192139679549360577451443103256306378050920821448376887395673755901361233079518559173703347113946295420818003477289573974520666649870649205588211148626181455393455441798430519090187724542465507742218036558577944308936895619754580893815510706821857117397610914467646847508012551429598191965228379098752286774590058040048322314457317120763607305712784029931119692165412311986419402039419186107059571478617439203427252221910755334340303251501328975153422480166310530607895474985430332692804933579110608212608029140708928730394087187457826081466713887198435180756092115720673668734717199320714551426037858594867180621541762319750518458357008587149695042006790876153945039684671281364538646655885483665866971521339734329106829139416105225854422017412327515380528853542130085231649753201788390286964182484347583721016702909404445158857711957186846507858109873369571776464722131123692933157979989920189445860996961695217725172235786033132651266060102736557565220995641005191361571083794017736937528483357396659784379361506408796109060827808617429234439269348362010589427227705645011006905971944529422106032986440142257399323238692802044526141461288240161255758195120278731360272006049495965954903636603452103030192864619491733232281176731623329084199593900776443933112206449467160896547042167639977065723098819649293487484205346707491781636343366073515974609198649238516303539172436562399625634088741459662199837056823607517129282909499845483337288284373005440691149785260739748167163954033160284898377852930929529867600044786031848203953177082795968787336191916109880360093947991874831195825078038317510345244432648972447590959056729727997546100393937780564499172068766925821226694570798763590284410674438385959388309610684850915731403834131471763346648869769635081592307697719865833976628364815642297794396757533153575331541086177338163543021669430373138899802020148722357945383293664064371642212767514486048421505524127388431413587453490281018318402674346615282596000285303397369826675375375627128414164388870350099609585362684535874829907749008596371074669100589212914905044067302392878642137957677441022613856811047173276250462758774081083660594648791073235667003382236071625029735185478140566530551307460957031476531158587761984518072956911716086754470455643050397351734729630427223466197340718893223794730941370291947726668679131349931218274719226439309449960393287145640552859967402028704308622183913523040971753566053219778840046745301971116834867661197333956688372823364054799295372482144413634369994336726353456142798145428500879279996375575102597993190933913230123935572089047626173771393672704782674873907298849516555128579188463269378627719124198838479569121698682068113825334038520734277150249507948963356914586049912945749698559852307846198992567419348530728857901402227228709255753110969293125359576931788808032771700750171140510110294719882162985032092532833238896110175729268690564585638181992884783997687113042710428548812197947621455522322139471010755509805118760818814438743468024318098833546873026221062159775394091103046666770348349014797059364221803933598223190441290581173854490261967938278464608991944152965174412799834832174057456153987110568202080036143490522405138822132647518556507715709904292337607001959716968585673712705451222496276094080631046014364938664393768086926463368615843803882372502792172049434147696966677204462378333898749125572583578788360908401457615779108088426677774746976846956788899038696923226355136343980900587980722283235670883768559129824525781161895553627523932574198743331778513617736841145456628114080943742252132844196664893861097761738145644900198145213321622828124856482894402630717363087369494482448216121619999989445261225550338835036982535151911977886395469529349078213432670137489258347589085021930711143840954484031165863932133912574642335879140476377907386027038983068625733437105478920895629863987670061609174295741814104117854120178333223983829810301127766181677936187108680428667655786635509302176905621824373903254141969248258653957086158509440697821297737863046945937891946903034425174581195919106676373869396969747966969869391805030357616972019004704826622812260932573461214835487509633671334812873849841713237084226152083637876190624103362206406400483083228735475834664146000147911609946894400916820150615777498527058034199757922411702347807470592343538956701357433916066719205062120168728545359295487840218593764009185196839576286422122564243947547191697513220046451301052460019527301091842618547088983276503779886728549526959645329787786237470250487697413558340848648507983935227447988966589889471461176248230902263093348127662012874049755546238122761773998843613771703664745122045350996827408673298069206796670896398770789179360980380309261602728042751710146855720698405456793157769552041769324613499603526645379241383834506058695173965412438903866478211665372041373123245746723535643535438630281019402231551015017585509778305950595094735581573436975594814605026624727343370267767297188093080449415397303901225581082483066601824029778973574970107192394667036535749793561075728164416106604608547512030100734029292097212096113677357412460508484750199878759861305517216937308244968156222712523878397862227603785616198634668032399644822984148826875058704351609681281994826538513326820200736784687285475617596338608733339688232200336124447419876516120247658211455013869483690437845986573037210073242250149347995399067223349752433530171624716427706090151329594983584858773566907432367689619598185730306503607140123504380722239676460748152108329601038319117607185178008305013702699446450412266013353593173765080479826744732179121370901109911117073320277602862128888038323985459784212642473030113097688645021684196555477074458249109341721814541875705315792669319567323705635079788781797383537305849540489409543784442449542179971849001558516524511784030295244655663610182063756337398384988889369609578856157393174463710237020982789068915968199585807946720383537602191844663362293836442363183584257156730537864637701522547324187470492299560569829457233949345665388097947518548045023991665673936270239526788462558535801413336531915769682217703649421921868842408003104885828899628423291477290326004838986226486139149429303649335845453172748714170130088605769243117664107803811317541115742280646787400609526761209220127901568191849570087804775775435686077880230733064467166759274258101449471926912000810811698247048128665581931887285004066091888978020459564243779663464055637166362550127357647742706366723835748556430576404331320911728043880224270754656984881488278829470985811524207273666110004432787469831374542883347435079146560779005650518621829787396113261227969253467832990489810543950488179289684571176185949613264085330928173187359446130996016930090321374268082685181935260418470281363639488332420676349124108927749203251621748454775899318510507584117592476164768238850536942491113746381098593266851013146263874261715850361124876114892129629876168214913664802297600980127258342114450577217484553886874763821734653567897075149194281922972049344876427377060425360666856526652645733271773305070705242195447166528007947081811388903161252701785890772703425821636453282518969851668292185089774706649854997619204358586546577340099443091538544978055112051708713823633203073123194619273891315360746544933423972503998211314569400486700839203397443641946799401004146638613636163298074732887535706618811583457852421093030377870097454939893587258487101768259391845292612735812031784914432620137400206463566041877761627872715729179826882962899637680277396661810797919977888693389860282515406086049437732959997096648481510262016677433929084398596627788394727746108501168544981039816066940530447058259704106067999745184214064930092469099205173819914576671567969754857179328278622957166325000057615264544341116213108866556016052946763918726390120991843366510482523435868978902492243889564928455309529047738577106217374129903175044867068356294358866120446606048283325440611809734781974303382283080682221700051038945399617722563508722252139992937675298615136868417808124602608546724579219282456275673601417541559237076533464358341437553180153373648918122097297104130704107979886451849129391383285181932088560971208720769787493205086117539207413556261886913732070475894526572912790790947380763970677871904060150787003589263273847706939711235758132608442989803434751639772880834049972509423063286944188915944481299835139761795296580241243378244400317958097149434526972041297881934260167769389054906482065671593924677182722032805241170620046989694682233698310247249943055338957260942024446352537179309377264932234254340550869113103957354456718239104071751279653043328959935849560513691679891256567696612424031153002504994817088769396609042771030383046804813331966211150510169812069651138988083431361126094515257638202538454467539954985345784025733060864004521974759127440703669335791178687815194283375907346442163021563700521686081501136458325844232386842708104024236364344894185625253705656435042029295254560241813963323621075480952543290616331857073476475114450966257429645968439981843406927902448407988176444062472714070889389491411682959823890526616057718086336010383502204291909878647244442386231410711922446492908869712895327429866421620966414448058041734589765538987993823949627083997244555622054788238515885000882703213885200985690850412183204737910997694587669878783557527671091537883022792430880177716263265928828934871912104653630901613572079571411015431503171457446909861227270016527215636832985592654934206715442027991560616081119963973701335573842092864050236141186990636269021877576651344381243798062547062711590207920926650157186077088914608228564202135799571819366515553630831177351804204004829466500939223921387042809259743663203556839001689498692348880406210669489928569986058443237416275573190245885828979370539832697725367480121186933523075866044494224786187572014291135785400342069699256629419454761526648016892716480055066220423873310913557791438096602210337987820766349615290800602625120438360883443138940332479007558348006168834543243308150064666636121676529978948771695102908481167961450228874148768252810023837525740660111043009865231370020992769806916246915172284340934729482797123704091004462584001064879627110343352940809466884264393228675095746905730815167594104674323815540660699507448949060877017712158807959927658518224684856712971518017630496890874395201979183234868434693796939629241271804910333025604722775484134504452139021439680524059172403179744987610929266853954513445339404910220214626121244276195956319728771197519305852565530636984349815203841124206066520927775670647592501255398342942004321216250509428438786033643673274277672461499666369986021519864543274755979270881969603043058266393882904102033941488107563957697856130434443426014795083601111470342833781404988567901630628699282163806575804507337350506480870615396524416347448847273330755246323117858262570371101543462544361915942304154128202051204251286594444436023283310839094374117174613971295955215384671491363737512304791344949665240754349441785191287404045417649890520802193420541267126344744994657269850469792099771901824371683258418624329016953783022654303977494545557674897670152429917092108434732264311615970231336255061768419156485513593612200480520892823091954815855614149438650228511922320286870010983313826794546572832561309242733064949473185374118649545909639853128497836475660833793009338616024947582525501243085337268801109912290182009832898848920408622217065821525999317860195514701192245669176275481405187391781590129024281825047849688013572091751119367443173196302012777667357468520233098225124358818418117346656938209027029024322663069783725909506179182361500140254411723363878915491376253974965880633580942774607492352288175963070232498416242422250356548334474090928751419154972276688614880266090934249474394314168304138924104922091004233444025326356370040628192468170924887636868231107900929538157654597482806737914821134581460690798896970220252990132180010917422250979828278236648445786262087591993103415934153611738281667679851361966005058537499168103690657094006625557289353592459114958482521070871377872727986933729031440431232825382630405104193267278142370425626297069226138365901903625375457772967761332944020002259823718104634900848251789075169981766037990686078003753443823626750914489173453830664742861599794761322378066460299573754331392555530928485834860102428043781631412109261273642764753772415010430879233166492708251603263736071521745381886833340366220082865868550320112191607997840826635647277445947048131493145152164219557615039382652731793518680516055645142010391644842084490385837217108618266637207890670514286260813307727876573334304586576014601206380249151624827598098459662821241862724063236315153579796741181447245169639071282343741875356158881615757938603612977937783303500717535511483205629377684835253605731899887951925187093956532083501017737796328630259169784527997652937824501940541283049545924046884556971872380988645403692438470455668027040190441342381555784283468652931571521973258739146194669905412902989076565106329104034138802297845012660597538059546862695019633692666556604997634702159995989440441693749266575886295958301743204218842382441924732736060843492399630662518266539451393631355039583639436316352511386621713084605284747405102859000077179833575615457875119252576760473247004369721985391403135206851353225866386021121320338888845254063011762654652007897343219906417193443026634060543589624852926155216222256783370261473705314257347415509416971397085660871102577272309001219084023016411890484889336512500167437871843269699799181744679170014013306513392202722135663910856481585795672216903558408322830715572163817186275107704628691646334939649065944059861258230867754172803767607705896711912184709291458201177586473029905819755908682213506492605429090597603071728643452245842768925464051896713841039074776256229058971426157655732935561116810627625831301825258921142726885746437882132007495192903904545242730439164769752028558296371643093488959770277306771870316357290875234813853580305109199910208595309241494901005788181652472140295527169829805077533852775692873332635420732300898822616204017106394357392673929409560818156934518558598617356608597369948522554448158626155946957660462814459156589484678921924121487384871359514840611881176397959560795744042267914536146864152610774314772748183316992833574304972415764391369892154607594532754063729647089537192655780694198044123099301957571207679783127864095693851432501504167220825677320063616372661411031331996758597683802850709835091103391119234073841135481340808023778661483173945194008289855272540474223690655527315310377424177111164726530467910178893453351585421941060018095490670086726806099757786979361615559134847860031423182862622263624761141167098045809046932834623375057093835177261870503589637694381498806494532861320797455175369254724575960882069675231253815925483047827294396939068490899781019281882423881198090439218413425376379509228322739112679753629641809291788263136578945370836787691047730250547680071407380510866936138670489710499295296709681091271983478523834622323981520958873509236799839083031792733260083358544766434292801465368946725360961605453198149800503333038368504455912411150429897536255224324211141453060157916850844046138823140855284877882186854943721224120645220612055689834798592655841792689125402108001809968677272901012652302928220792774968193346799779529634335202067974966042870962224593116388926892546427399567203911644411556919920948782934480423284686044842130023576745748663875025557464065784554746262049232112196212657646972513025203957720332929756262408308510773915798378355524336358224461217570658364432382295033381200783611366085295438173594996737522692351457081112243892291264352112976158764260447549122899202208315861077182979760589482869214799756533058353853642206758001980878773571512996809807370935277076187890312714568770055924905342783019859145115691398213559576562901909394696806241362116641673185254973914463080799407814346343379946479221946753875236466793186237362683045665083971288250347970702186870800254086026647911132990970849038970176201821101319030838583136293802284750709126042347388528015001163591821971978109270673878734201272044371666729209994731054222256294279944810281633973299609240186859232942514920868248270109503677321808755546639367990260923084026617663436899946726590713901584165376419819554819031727764862248664969604309074211552582971620460093770990144307433793066198221827276180500743945156340235768180663599684761526240814372592372845754163465572449517748134485855273567421421598663886156223172269107696167358830155924965074929233317223635931196044176249930415395075065837899097070161340381865980824329776423962061275455555602378396795489789795939240500789864158354125994790912458703107781023043415283284209424069480709264672809493431025770950426170568669564191468798632515829879673543380639391781371328564378147611064617259799174236093428000680135459448970322116106037329863052463582075318496189904595346107036895909084150154564132928683116880342651389560701021603424680113889180111556059830371507682255212794831130870247271092591511086938903061952612165777825416942045701548655913074843371829672082933319394012913009290157572247272941277229428044036756597366979978204229134337422452109136600454407908900910910474590602719979947742665810590788811878309742810587915483958584168446372049607636011061117834799695291078503288750172382056674166457533831485173167163729209965024625284212195826393870749195486827380457881604389876469731472294881101924897878562738442423369777021454108883349942169670379530306776968292770184452967594540639224486412108322384207437328347282153344312559304696728521469707164952698456775614494959802536639047159521313187133633536120108910122571533134397248447151286879359365326983318978266481273889952754017338606025657379465823464777883737598126617425254373035467638257148927606946053868666243155525965019207020051098403891790417205675547704772799458468523060084894064012735294260262286755582419048414460029380570784121993816536802501070279779100239583647601525661920030614282284416724950952724456880365976901996404437155581893567498609732823279663643240065349818593274955800146570176084166198810331742923946632468302599599473008528886433253782188008174138022417038871255714044557977325621473291176587214197690444436986845065932347401719310832507289752454810676247886554605726530452505711794783273322153059639608086052283602758054593214860814957148237720525455690016146944365529718838446610482876255621607051990569373379993138696898924838610411716139087986880609063287172504380476234910461554724150312116559327719582859362061900298570252361590960099451610379050548414281142184912624194832704112851176397892930991769023001390508524771256474096483246812255904204588336292365652706204964996458801310804830776983521298795779493606169274141670274345689469504333798208087365272715831871084214403649059017242242523938707254490878142092967192613287827610414360793954586023089174758010552875002973558223377523508577191185761847909509622895978242898737166809648357211768965019062674842702324137341979465643512377071919928462588133172547809910772519331799792455807292947091394866719783872129611407842156019566686078974342254999773147737451776444024496617230209468097808044594097589808820253391893613850735424000008378664432303187696933100538436953783520468472907778271357825749546986920385765884074277124792800020921889730726416748294491112736479930528999328908207581922516328268058935726496123221109516476466394630340005034588274679366801218355627238774510694910573268969053564891587134799045309248205279543719769163918720970835929686563954250567848478114316192815851651828708050965372817362372425257833052959819551344489297678340710314046009073341104351123080489810337442685473479549294826944688938750088686426374709056905687313511774380711854888168367882450682317456341758206075748659654418064585319057585311307346827622897997434664763355045747801931269479699816894126052991189006407718030392995082067697913635303761705644392540150704574387672062251611580885021747532638992705922968154256221757157219704944379360852078455544511829721508063578749480901501381934756909553973456598778078583327803200347128474610794591694202631982977729074860079840514099797697015865490328676756724012631779064332116067410316523667689504245913379867277278946862318299947120013146491583775000189214326742378060326054561686162603537986610744240578090312504521634706520168190695793290800815285752817289193545869714406058418563098702771505844211130573944081479016179166349724604961980826679764516557495960206264672900562883603550200469130024981543169464046354349922358175727367830915663600802435689530010165495126385045514781318359549786178831112675757742228320813225391442021515365835237731018764001190704712016291659965067347293277389764336529284132365286773094354909674459330260739256513919048348855819817019694418890327910515055447730192265893196569285087382799663061887703946946768105632222874965656610460956170834970539182491994852565775663929224688378158047214965822081363392855049166701783745557841455399382795658298232850188823013775006500522537115467632127873028928689671055541446370219290801906578311174244162637623636223421944020164503501303872658668466570198788261203425638887536762368064162179730388994864528436528014200098497292278880470724886428971606289438818988706460041536058911264239918865893681268312349640925594410165733310804274530506209401391694947817041371388265290439189180613027487447004897198317996196930058145376001436120083129204536703421799349473427467571706264170146006694312897351397721482370796248319087271130732077868505596030162331331166958642826620394403431652036721876909328800916932963317857054529302631639284906484155601271511600974820645526533324663685465645535544361135041521826916651013739229089235740118107149952651173346207670185976503282539360431073946471049111894800367834125417005168245121919423439711208807737421078806291344288068026366714517379025808441473059858097091832235860855499168740443304715528976391561712486178135645831548391217887129293158026434779043193293164289604692836666983606760432824711462823492248553708281737227068231800042589301484964527808746660618400447772118947153661833049374094835303773592166415331991455833329178033718166747455292317071320402537211046423009568813702012906154542497972812129630790261145141953324341160428284347470230893704428252139206238929134564495518375587092105626582681489810595692553652605228165554779640704710259570014502970624420184009377286276016284501879750012990459565132265121114672353822014161534938618112556764875668454046709550780579544011924328530968615421708207287943955229383294562403509569371257481503464857676733769069836767822322905083387631839385906117957739560053449297270255762525348740557899866981756625319053467260144454020282211391614798645384836190932568379441105729486882525549536136148465004709290304890860176451042268965019808854074738869637000387002327613966620122958032427200957727712059104589662081833270338909619766112009030303438459525489813450556993215594390724414651408801761805082755448843266014398142855643239139286308270170856290032951804859816994465945704407614810539049256844799452051787018094575222546189045172183516753132965630996281613047375814271666188376607995222984568070574286046625261141700843833646507306843384788919616420892135017483753305231701608667079157851823645167484098484211000913870982998111653206924244190389843498462639925978923663286104683466099332494592050131673861381070204286498396565684556319777849345401111548099820378091686034516587536312656476953720313775846155544719853411152832642490337231711291530847734890024558179152544437617244791041413397506201267173002277210062703974145155186922031486975058875899492087054392061784756867810396588310105549886813903992711114441556243834801904242576858072290004633831370470247139158815839959478644161443060519719680483217049241731805727113955035169859066665830613443089220069429993176197909025497048875191006086400543778052788008841987562059188325207769560917480333168936050335294500463860030134473640175500810573873802212966714973843874748675363202760133024907682333196087803098570484454190506619603439904058205413538372422828429034941683920656767601092632961080170593503339833429858460154621759988317192492121553373792287093405446473646146959647623718626307757495789560731132580742825804669739526233791844815529708350854042741198051603196460631444899940547980266898911083498123198786346506996058982248190196492928354206232873272882102750210597850843950258809206770562484121888439814094619026014158677556060795825586271902753480253628908599749871523591877735836543208201580040739143097116908673052596137103184785375994445855078957267179119467404945355084278931701387960706704558169188827321551774590654248831412553438566099207420795603594475182130819052101589299089006336776390726362165281969795668996664828223860875373044211130069517118087393687246918509897647667335089538029071869015941339498876149693548104651084824508628380566140622030988253404816653872703606140391107322193894306529677871709097573022812721651377823885157985357849111024890588347961460785186064194889815289248147141806230429105883020158822513225686993201703872597259372995643225617861823252675807605222962672775524682654241805475025155065194626095221618116258145575317276488786350864898701173269937453833871518144819868397758379020159693160310435980161807970176533825813769010827112957224952440643009798071595389469207757640200474757829155862679063780257682782007160150709340531191289327349716356213602620831548507652809662175960485303445958434530719804888069938339713822427813636923457488130259082343218513934318762953751273301766020159313773524928022213283679833864988232932537853200277995713905528549178361476350324906120340753866175203482908350894326284367771882492307376169009872743367866610024607079411934988278444010752267501186241710979213719136906763098282609447137468596138013696450456970319922584017078067014109571055886795760795787779412840388663204020982696493467170840543507875504206604644690769579740677541413332603953776654467727676182249802600741287939595321238439465728087554315821153431072663760752512220614518953657723595307505203904508290128296309196267795953371117166853599342837468656908190093576606887729668606275062577931218183032754611181678878064381871092414527983042984804678101710585423274102596413580104614416015595187349667395272229506249992336928365997315556958669894327238261495826456750217133315138255325528988903507237727244228621176787745120835611136411128585385684392642282265232454736783967547859756657651234510030149400922376200286854355044931621214177649811920889172577542134545155776341684372709731240541107867460638613013886211831555392119142266749639477748408017909604165963691496896970695879956861906890639087096463002930365829167416708049681899619778038999117399004711439827632020245350575032210210021552820783649772875684100234899662423354447286931447666624784410018192119112705959736807902797545866678231445196027311860286995383753449317621056035909267653316062717431400179698802883304097434986865065612700272029226669513255688894034671306808794375466153709235794839430019456437196285660344321843273818952722525113454877803065355748760813444683625496074612008478459510598287921240413201326431151524994444389402199764897344405561295022107732420225247351664145955859954309319237856861671987108553584514081117028129181194714930488627218802179137996513934599520652298435389923315302236104714016606256486948355874994266674402902437866189677249843842182979279340468283259642765366185912522355069642084198458250852138792410746618036500059876045700916423921604001383421900325864288211071992815729944785060001550128150886920915826046556269380969495694373502877873057437081047726281321170643802297473124249618620994481207792429798091697179886215359187494059596352564630705311342101519969035701455387822747538790031519813825196511832583961515542023768995590129498368404515005328128835199609265965050870185130528087410167792071373492423341665024110615735181692942906143827961132887323145398730413965290585807291766989892290973456971172350668794277213587418173300592336338724511186638929592226013449005836310982638969887551814424757734900978051957183364272561297732600585755155779377313881482657513264277998714091541387737202454238639197916130677469605749364292561045291187883689056940642113481499025831447645801987524468014010149494032601595630520380039573588406424262867719525584161738931575316078058547630348907249968002671936487005219982940724323348751819434012863698287891571012668334887808044063880778091960306402548647755577324280665018713937463069016876324750683710474718940015785670515437696720648859085884269097800302005440684014528362677322718934743344432615677052999162934362819836421644948174319420081761008487324862978946363554622657280959123950830686296662476172703273748664786618531067344643951595994375217790349011122038397596941106215720176366278641532806849734708445214662332871863560130484650944403022719188384586052765357254654966489736164544964590377691115022446994666416807109269248190186602606251980011477729766779811379147027783909085245208292433859146471362884917359502299097559067361824627949233959205793731986349489018634669046078112513671771740126146719511678291162220868620437600652769003490346479055030784202547087266161202575486465389840532673151001915896740906973239884970324811370247293498922086548936134104079227009798122365517889007145084555021018813794825466431792830629337022746283894567076776501759280365953729094672956343018352961194419666069765356513067367756049066397039483119354748963908233711950376479352084814172849135880010656827886865162557121801071921518742824617931095688280872077267416212697372123500414472583245625159808789891847813258860300676920412355428563060608717104466634945829830532418822801106039472060991872833002801265288049111054185070833249005973203962824266488580168197102661329211186213475148850245329629026908408403228179774974115052308476223629538718151468227753109255808268951578705519245180339795851205036974601449805717164850258449906996045884345375785973758883572548216743748903032873842208326645335128452429346430218679078890106984215889920552277666170687413046186524535194959334816052211547821501601646390939063340415668536231926099669069820487248822321255061248314419023183420415846987344165544804660467730242526730108234215121347333939351412849307474168797327046431414112386572259666415303922936086683047853013756118502665589190170493575790112210185198229267671152592242870517293853882364999807363269745781318308951862468244017124658760623655866517413101305328251816962898314764051929245413088743678725578436296930641326211946901279808089088826164187727500970184698375515745624002886030436803718995463504149543581871704813972100674195336169925766674615766651979796919947303060302362030450452748534843489025531117120160701047360952365253296677660467805530446459406947994368334555908403849027589807052070268719025160179554989836044074934143425797997109416143173754945877057667564062398597110648994325889359996697979625919537561159153927196991487367057365116210480091521502360335441900984407641350187355118560554647211100851102978655212983758264654400923128636549214163281983927443803744696848785192720334677548848329200347057108104636856147660675655399700392215243955824972219662216224963471645375980098130625432475276718731026794573767871170731266791734699770735806715252891829622063717567457080700390377774803918038270232041978983060004693149272836907230811009046610610010121880923032993678179932827860805884395746662763443833834248235085946414107025451829278387091941472188405212384099774109470256774736017497941718031826453464468572183039334616436855873092651304936052859134807838347275877848666840554645135591107872394214466733024774746253990983636646082343086370760995855925719023724820697314865083060661340194633252369684562835324352361134871950199209936965237005443564569890984221925776922423533592910112483281474704922217167495619744171553523872851930851498786931404734619519909505628111872383684687535841876669101558894738588995943456965301428246087903297626702348530872115907165145262291442434066032478431089994901668398834349667601547297866412863962213981073397129457584886507390355781539405220291696291291200002491245260501167066293676476497025586805573848753596490005500741133132752766579706081159153158839375636486878527133287952165270699609914337529812754977097904923510354977358742347405945768877298773222583034555302510866182655906766632657551394725811699171196267036577046532511115673820351847008492239972992879720797639782933801173064690165023731241801888702559683592988408552917076465678022465793970041329557962316559657203700339131978461830397770306094994919465110168023852859751393793174794969999847196732988053184549134001209164125191797848292903509899421038948371022810078850417683239854611213678012177323209052491646866242159317435557424114184639494252877633073424358056760103283727652871408228564906360021488663752056477392780068148131186103448679935993320426893334000173741235687496894822157417824399779706638966129569989766900147338953972160952368970768511784292139535951892563137243995340361220918824579425321683282933585183225025736653935782958811679678041456069803595208419781488419041720325254191651601736205305288202204355880514267217717756116293465156085491610565079225477904770130557139380074729359100521504127933163764719412271054372750599055979371649714560626034139491926580006898319112513721490021387797747220191513985434050491112504589687722938237029887603346218246357448464893766350803356704959824441511810590717216842469687656622307374252564878956656971660680259997283612824773486459651257450023532525798717368712642702062784377919724018989837699039735838664682830791688745244651322468041322626156668402644843409363016299134312924278358020923554176708695542433134546556109651977613882179087706406019109803490995883327516130741102791527617142151698406842465567253160362010484553153896128897630186910001369942774229666265131187531418644293500022165217637852384029954347585903799558740421516366409301307424084615941082451630288882984491382468875296615359986941230250500576709985269219560267506671336240741525468830467565370468050126949280705688623984176566537222127752438122981935111324059483079313121803385523736338256805757671561823308425313141836959089245402266710074847599254408657369271594276126529705662924020496066096397247441449549944442748973939382440771765926312593923474249104833484121811038637552860056622154211840590383270795106743301477590726400680765947701471788744508216766039066564275365739293167938271079526094222998276001818933108046232026457830349249158023439811561475663767690276511030576655283888395869749211127505184738369948256122557941071295502285801406480305869947621415725060895423545541285636391542397759979870409250752866142112390364494135200785146415914921336180643548598012039457957671336734042910826587964305506994465981650157285505939376601646247743152065665692824560607935993144106879470175700893962053374892170209858573694223029265998277475014849963243095027957156566854389008351778576297930227675237439953942615499154313451328226178310485127361314185247898891278604100176608672255643168639933531871092430821664351693571675322607453641561280137372950887851240460593097059516395584121302382702470556041485621641749214382634954159642380913251564279257277739402490387804865446893105081429761603024012649367320157261256525850461333297295036043008668408829272368324184178906379165358852271331733784158278091189561072040935720752211764835543632997889473363339452961645900974934009740370269649728246949944216297013251461920022015951854138488482558984353358171253801067926705651960486238170518817115174417811541948668810248063911338100766873600541768016345662371587556542309064048990021282979231968343366218138781057516650160989875352533038788468547646280476806189686227724607909684273241449390768932971657449975468442427648845039844674719438760488754537144438560292590808741989095154272284598979504135028084493020013607749448433528056889643726445232690460624812800486378055232029013332030742379906480121184538709597200806024142813504361202231061624028570014829399604831442679059249642780247549850756796779466221823286968037088302779262227911823576392608159781298771948280790475205955178641722376177146360119248039842924716681443186800259631451760109688417787151701593042485910254458604270333815583788970680957358409899684353302969899397913425776431014414577365856166520320144394150763744286295908526179431615828451909266625286281992827136094207813348067274377990395376348437491683691237659388317462917162335430609945655844998872286352433868736963518351936827567637894060373338971703149584159032230332285787190158910633481168306159306347028748360211981258689520458831107724841444767175169195919621985459719654025582743305173970580774119948050864396640861946166812244525993842888388634539936205874217125798114737422438814420909534366407215914650915108829876174160140201653978101780037506012183010791938621837855364809241814284943357320159548216255410008382259598696418558858755885959561641828107995993530776409243556089558679129904481268419986882753151250343316713347067723325589267961059919443850425496806634697644201809978553827938280651135136676198536912173758423729268609143101601360699297581534342285000356628153768131436302193189402818691137480858503094509343387274061943899639154407044462019078064152482589575211014043146690717158994810190768409332203571966732742161577657118019839699466601045444484474064348894919138976382788266123044740051633557207697322150967670752101185480299470281265474804023599343797015374683681990738762106534653128458865660194889566151699483800622306547599115085059782067497072937457768208915464293520765248431250792557318012057066413886396615636825677815709381435393195115725554714091949685693547568904108891387602836433547210602289264003344370561302559337755895765440874709001546240575028301031448949592912391304369040336478198481115642504837540034172675991754512990847925633745209199586015926182973759405815339670504330979035128679921716081553082001010010658817256756449092182153495043283056549278429968823512964043764740250005641880081003236076288026001429720628027541553911316413933411829634993645118837607512477169501044289112406159165075548716084257238822144623271358068604055398236678586756161331982337045303196748658123498453028034045174216695276542034593932301120928204239426092024409194616607948982431119947909739204848931779595873196233397633027495333795700957188581069555017047893621639128953747703512456845801629968536348426119337593498784048962928146464673992716989091300388864926482344187760498741484310000508122017588988500093393402463780052297480283707865046258684643212518432551911594219329043706635479661407148912677336534369237849455336977057274210543754368172684720295368140173765736194030545749681141299534676135307842768874244657816144729740058205777401624406113355760854358614229977317929939303213560331316244258790850295578482607174793449649331669111700508385550553096106864714913893070435313178157624140267130173120028764128434255984641020019692418629427523237646392712741566702916321857399509961026905033610563417156717194736976503689879136812127941507652988777100373119698748549372591554368365209483504214009115829107318100905183897668477721209844348884889939776546708747640824447030649723961675554142483525058796328412455530683311124694128412621233186400083641550701392311199993014730475198409443453732291625316492662732944605630779229885133331545631657845625272224365444536302730907810387599749221310062508187757671708517433825560095572262804992082732971694282712843952719076749034896505844944226880433641190632784301695457162103974048489299281597978368657261278663351845481800638852100741637398363043563150360043824219409661572095563027278818078963363673656009860247107900152940989179572391757307490270003262066107611925919803970273934973526688455305271116641304694421772354580963262425497764575619617486030370152969383899533915814365523784248921749546464731572395733398938755308935701482042411158994324974966181856941069053752322107887306556697580282524861234071486183420691952328409801426521873000963822854649547931943802352082051135295539257370900073502856207368318064454093614316022710975902517073925089853504542496369648989550436813981112785149983126359357169052119226130003987441951737019798580366775837078746126981366225005747911123826765970358964597620528344143881432617761010447525258083425453296378189610740436816579323674419270589873949642553745889035676977918329285692690233194170884543514263187797775424637706751118340273162146459826987606028937083795466159378990571820690245446535769398103438361933478954933516037329254053312436225020277913592151594417895239116889573564021243020775535332868320423286347277198627664396713185535052886433243076541326385872203882473319132184775810780122448808028397401210020035703227247060920316114735197073066329383130212534352580681260652951441838144707176733499554167760772249066385410175407824661600054018782868815361837819916162172440054097595795525949770438902378432460222861454031035937334186573769832423828930058333800013831529628947394425134766998143077649838159099149956243444050795321969054740286578783004718960095740383994606539448482276140074369054207195618853335058476537599189084452795415302239670337590810971138776525538810350730510595359833576277771883558728815935243725030579823199931496283514350392884207136624651494526232424454086131258610894410953436832821275919499321017400535893741921970256436007291460267985962963135377637962567560866786503973161489674618344783006050893646505694985975191092679358433159088177990574040494205235821672776692982446250802563045280417259296914457227767384872474395999681538810365321369751435543058784566254952657898023598348281002595172112151938192871673200191015266772625983584607414170120054505402164621083012418879076354956213953387330559194831518117612017451381518578335788104491489019514086979764932510909586519972874412589611530597946240085462727369400414753875180976602022899577273299025026054112431252496690415795659940561379575075003076328294874716760474234153483547091191242253002770390339831235781252567895343714505362148993211547427923825467212935060375989210730086266739313204267678232395420196606782704350701918899524319854521173628879472783751222544646846815711626870714661649052426617973799319222363806784304684073287053564391298791827616877241166417395208186063858974073371028495032832991961542450055687220819928843742221372069585516031348158792277117828176629585757914949399814173199590762094500720426794024494352861765452686908536405387356386105074279843569960499055638805631622107431337341268528177546615396524081022359319035298225364031162516125113763144211295459597961684905595255041997815618833296463230571892786072605331393949392415925989259721970863465722603912201131825025024751673172198445371104923183836807092276822808085679973380880101958205753025375323054608698901881332099304216956170985140908156302013450744957808863025426594427896713960230317554508008545752069804758373146430976746051846800618904998543158515826395593813695723188100695394662274650707505492986091093749969753423474119004160146675432079604851848872909939298261218982167960332373337320373081369931204280029155250557990766073783962699289426377524423146717733157050598538750971384486750364899388268224327800589288673354236469628126616845497407265813559212035579358854990401323061445387558654138222936666610772436550011272740544626298177902037295658356732126429028130446247613641409445317596599926338628755718470992168061109710865610997082032582370328158851647636099507242232129587501603271368684320888179792089132366631332963131428053063931178305629762128519030833245039818200657319987940125054509242203316079019885725667020946311150604611763316979766114257942352608589389940541127856554355003478447893719387834602360507155343655062928227926381195422024915893199775235700778744589526818563604114997708517209113287539937195296887891572535328799221477533414733246495229920684500536425022099797112630615970916763701003908513296462980182980225086277241469031772470867443185278717041929883041715927325587905296842310748631927080668970702888114767880802051778771494665402678474437876073285141210046468138131931361843924708431231236873846739076817811135317465941283193750580063679123076201589378389473255336032075727936815684994865997044111101169861836608199742139846096558031054803257215718053112867393867615683356976088353610121486889707464802162199713964153579229067235092772626653636333982745692784202454820806366309177318978830228090832218200142609375385213686790447764765507818222544431746072866600339499259019705104940817557868166245529692957354088726175138165031243796734471521512195791157088182118570183974629457784390414320068797734638388184786371487695035143780266644491549868321036657312056632842271289250926917803335658060233867418379104486466416108647406010796501165176898719735307876335893927731479770035904301310845481017380064317244924837144129056797356855610863048028654156730696879901705720066410891440611841577546437005668668142475515933251575936254652793875287816152138046299789977437369472934474675923546428094672128663351255880700016114590416527707854939190312680003015642250110180272036040908001816209397173858484337663132428693142131465679803628496705752093618912779612492714752327129837843083004326180181026312675084417436854479142306564890791252096204415398629043822290815898582931842708417849061857630854788890288838737500348120952569328897766736169415160518572007020431084120643946627982469440385356099152151377798072064213101878951562769575138712849543584356901874520119676757967764595269758458789084646325653526260292116729429357890540488100721613137831767576435876736496884320257006223774223415092422799186770997453056546999614071903274372262732132993742720132163269248529970162173608437096799705965424164304838562769228446681953047656228906931375676246737047758819085218262396927737498465323627331483548204081467485038593840014974811404068338972637513924103509966771576194636879082174254732473232079762982707035480580107107948125723846236663807141376668122319369608778807892789499108496790702359239646165298341201483425230467167579210424707028599934812279287622125701988146186082818027769682170297802088983491145983112925766903338497068534472672579068661499422567979479969004409112788325102910192118697046055102478307663901246138006587220993580585991923402561593998833667078792072003768696876045446727739987943028958612514195804549311559610065590839527460282834259166058339218447859618812992030278931078783031864503286596361435498748339569508510482793657819373453601643637805036861492466612151194167176040957743645827471896238990424916239882355316636223669692854574625568741254512199593468071869134847083947697461671363032502678772500223966069336281260318877282981768519525736078352389358579202582341068448810282779126035332177740347091566746007817547116036740588642237979123087889053323035588705373722733478749747386865112757048743404224484793584894129871245614870798265146591971840759123309996433307845691576188774956077676882921786051187527060916315888033162212751095651834672600070898461999308927678923514375456214945180105173965143014396241735181022259862048984479950217641179627739640437020229546589177262540400466779380763640690119290728922841840353255106413287427979594948151263356230697500125640115171234309335319879509905906894507187982099736625606682057318048500462581985077336618561306228453273844590446640046314853978671503912206400637885105361282530080987392615183650944883830587317644340121739165587016895644579389936763684764722786234446255825122127486845493953575693772294477009058533416808705863795933142122813393235560080677642059010861222932955078748840904642341524595550875511717968636119746340641356094570717667442273268101018739671946441117590886382087545055460075473062155639772853819062856526794691076177275210456767937828494486792479481720721847993070398869553862726497069427296436956512662918076303162087598323094588715692183138744697821566874761569803495970350857949518361733876004943466851306907712550255303790691312349638762422848488654575877241793834171870799310533960602611786087213297106718131917122830763467370978826335528581970909658988118989087327451964669668194889412870686181382481575163272497175285744053177575198105788431188857147318354679184072795200350949786085223935472714025595885718461852981812739957391614420820888934230689949089318034327531599463070122832547530538557281811251843156423979518528324337793611798862614729845556746983217416790426678994840680718924249252585583903660298300789830064263163733504475127236969470862718925921395312450134941087470145454185860598163807796496796404563711701663479117761494183336816291485086649040150926871030543547242310230342013428945051619483926403237878400812138862815203211996596687223548671330353651667317042898705799790632203032507843637639533102568141483962585265795522650109751451720366451057772162531970554056529365407681914864609851227962251197083261657167074077612801798488984776596459437379536267144631468720756042715120922945124735004211939243524388074099362383167017453249214319860497187874765384883966053236085557331092190112955469749707063669089593794622913458588804715939681766271995883090201069356362759971260410435541301807991648844003950893493561530767614423070706392444039349439358638163226928296219573038939386243398388036187060530215915419003772840431310374983610809915780919172197903810099116830038926929043416830985977975846809761890798639287749066077508484220228825413582608816332872201914494063429707020975760055345254845747320882309444678816086114157730919007263025946160098553213503431600010788599514475554411892988287178104288582866992798994459258990885742020335773108794073062439949835337861917388676322283691137871228570986267653648742458262180277402410020320020436724345728207704365053678203524540728214177832628474175717142616768458781473436250054301555566179688656196964612872388341616611136804019077261154554696191986871751362847774769811267109443941424992087413100433779600772957231777024164544550050658954795341378500525380836556065836188338527824659338508660290833858737508182299118569843068495012921297928043816487264579066773582744875122125192226867336919509389679627911269600206697360596081903220386498362514589532118825250281322396457672984673298794638229427961946310009282270611561986864150785255875091888729920972873494755176610111193507045788688816544021258141101352460014246898684658274302456968009547842840940810098527912849738141735268166619393692605217585138654134824764267973431349447308222395153283764409854973747614398425527345762658726039355130590417763406705260438762058773524306984733769155208981886915200277051306615509699898644945003550137651813731771394347084231719075495014670977475489003093028293181064437883278119977307805437164781114668492898889928160125802141498594120405549766183151341767867008635883386813309163866552057194901379802535725576420851305812441625334884078929293973765151752196950587768725460278597345351328130298599250443024884633357992399285265260080140606354966562013857633621287992579721982992326812929860146650090464796924784480449694023603290638663540417269690967044614767729536514976220170622993687529210692638094664856959092843597265149588626792869079255617032163501462567184766328841074118564884083408107248667930527658347708757182301867759890027990936166846063772728958329854552865255393964853374036386429554399615255876351959882623849324600152489925397397906717543985631069736893658189683787554115391077015709269118501818339996992842355470350486682351502186348618036104234571138933546045623389264708800692653508976597691912267001561199132439210170256720518987115937221962655249786273328994078499136414966354525825625515598659788170919055778156593335564395823034399747177560876082286075520135909091378157812040012294983780207499585383990594015124524644211374061921134278916569490476834762529448756041594071422602870109971015622093392679290442617764570669681708147273447522914523213215395695137103322377675327790922432479130602473958522937429020629754058880124178643075596037143725315095842337544401144622032119598749375119106476518636699620253945951069574457882226323079939129956180045144067521490006415602431716569730486417049029901162546829054158891377995390392035589889809695448528313335996345325353687494134888024533522299385424254111612891270937479575541480319708769049953320717878018320397292097606461885003426508086545579683156421503041138191321867663544495247018007401731564167331600545392682406912573585536007693080626236967553482333780301535072252409110742120926501333557529002082144632885251394722588196276439659796510289213763182365501246770206242144888657018609556196633090536338314262752320872523293662639589317671327005177399128295142621534506432227971934033389601451295362303642231528130657191483005586062847701737665815351917478562989715450840888260926868921285121771651453895600765392476228293364279749784551013990470908496186359820861146463263331255358614444582004525050028972459312291633546918874282277172303632084462555753058198300602726885416651515375092840980883943071726244961086595915388874080064813312677428216455697533166694923471002243002477541577663002887454014179459396449078544000514792941337737392754675472223194166575843235982015215108880723149693803018183135832818255212408869462736999669666806941011882433576428422477741733643498637740227089343413860912212601467897163913948343926505097861435714896449501683978869471751436124670616096474555733068769963377771968129264507944929853666938228471146562438645664523117120225629224477134473952167589717664036304072810562716937056061504938740458770858896208053455475205779123962792120814693305052794997221152704036787428945590750299203752922370537901818534194797570218042128548602442828939160776418349939955773636245644983050286500904534065837045900024951990348995799459686845298732681562759189206947509977339122508465975107788595283771460220213736107214158243706112008626110884525424029495592543923004147400016725045518627625794863027455230933654472436816636170273635175331017241081468944862207035692064972507913359934459041459444771717062792308440195030435679774416368635726389459668238324428989119095531529783720544659591727044841592620355549867244739932615203788090517802707671815299505315530166005474494085453666638968513956081536722522497206972450432977423366724048811198217506030256703203835835419315981100421744504037269881962486515398722236919743097445040894816852871587890965179004204718479315715104237151001959175553294037932537174170435928061876287820368975678300648615474873739323827687851628887635977255690548708687726546014181614802782756882528222897626076922092294067125572688570751859921350961311517888399916610362256998464297015969404824488533859483112012480010697160604599947803634539390769903186862939480237458875908517544714271295724943169912808158221870736500094597897223948009492242328453588137256782083025394332584127965816808025928010953625259628458805231501662689481672163248354237086138961151134417619459446807513513922161382856731017845020203732444690537097723215204407551804132174993147338538425152354364858509820869275500007072460148126259615208132010005665545326064873974102607602081676519474174395846579932609458280886201373166874200235988471921350178904161609140046589545079311265205519655970649644257561134096818487129139112594241830034915598277250979449831229508859600143242010843536312373053484974461727198795490703543567400766397336879417395429160254945115382084198006119268021152844097240506005093255509114879769899429958002198603274655497333181053004602779082970290343067125412410086373676644153172726944708615296735794227300835757927840035698014102183421746873613478382449898661685680880484176319413863148862471373832997899376263777360843039931131668663736682010270084659195865198221143507768119050067090112929130808305492895492919069454722204302353838548066393993043317634536243433826176002436912527330799542373471830448287343394294400376257486190569466345181567658169180547471362704663514061999769411870359072421642438951464084687761603095328325035163655096725616595623162713814648679065660451230500734300843276663664750269717136374641083449911834792810865528701869860194984089141369995335145485401991071395017455550950579857833826019094405930409238461973421060961872426318027864026909689325050340882146847764057425201986854341940048184521082079337367054816461233822285629861030995691530875625317283897749951035915734274194701932655651416186918719036268797169953805569606113934293564309855587122075707766485454331055276115943175388521462389433998180172960145039889949009479961974651318722738001891444143555683029667458087235583713100999470186954051493584087295701632859456378009913480563008886333744351078868477106557304505843593560169607525760459385173333846369319622480002525201478415141442631574552378072129361722961522198662529576790897501959109904119925901823840665928099424508730176582483676507360430337064773565993556035989359972128270642530868798685359877754203635757768803400710258990146352654115039971350761512862726799106267057334801322966538090475643436683875036601513102591405874953337054362972857346030760821037761272570262650533921198333606797259935818654308893622870908016273078409662270951647743846042725045448996714692612862095994458014022603758302374427510402266588885343372903909468340732498806480437604622007049454973536853543865599563772861583964829048256049526542741446300254904140581218239759878030136811551802456698998697310712716865154237239951226520516441092876479658242716513787689808116611756023788498708932534110384975497252945590949162349754284213772181937910852320718156526713187693314861475312430018437751858092103003573844143955318006080842031196853770688512266410357895973877751557701101494569300009989826926246741853231449078937700307839855009830532679017196817633114832014373707884452531724381284355430227870603758494175184618787268053975673923503809863972628952015743690848723873472529204921407789304666535746553255778727779256245749001400163968644456208075862579709634675210063392927927537220294625862928744026002543846217411236712762595744655932297876774182276157554849891786789102297707964009921686415140468302401205469602742183677188215858900192554089357995789406461984597467001564120574731648105795037957261224399299289449706179110783675919193032074666702506865934592524408086492314810821495366920035693367198383690201142742845934260617066853969604657966739416762508150215766430890568057710849969170348249236331158923973781711928753741703955450645401493016617991669763613116291497482686116103041269593834094106469788821506309068509567356181547193373492042692861488562399936565272631717395504917920351505487843555299123132308941279739760390669427486312778706653023749382450639498993554154827850401081226231404000541622316855104424471992911888332376194010120253776226686915254152055827353162926083377438661585456724570289797274131515918297730010028290470353843901387530282323870748531159525460487323629351613320539091900255684762877179507946350691006787197839394010788193179381207005400135327110242628706336542864887324036178260747870689811621303861756950433930620217605714218399887227625728126313902878661098759621812767309225292091847348077973198976330853109747098205053864398214747126878944850401793229906773197112948584116726892622484086814044622904247303894084013419532532344022387197163763163114862672904937223993274174025794304209685838243382295280857449894177457413187715278045816593860782942496116185175839722644773368080774671263799936136046179246268921695984912332000425690233503669473347512522881359988318998263962473302236295740188653670947761568035554339106342770451836362091926079506452110127355893406341382501221338481979280371951940865110495652157005619308920818886545148795148200726466041119362589168411021971880193298658996488943984248523900852511989557494322212744290045400671114250466138657310633879529826337808113494119198347210799351030761542612369830394917280741278514494190228460112778359895531779091972408087008449590499856913610017121437194190672575229118972173633319575219986069789254897108368683760314733088884861009989938098053662530009563448439640103646747470868744242794132692636242450873698420433160908395207231638898790902794536277693033205182046866086693126057700814043860828878277626915986715797567980087103625686776479040482088407866949527127940738768991318536501311499219696193650491445166112549907832771794776938968643599599535622479661605303749471846831635238762710669894797855399905191649421320529700716294033641233560154991584771909685328095327035312422469316269281183433867984297897903586264778155380849066516219557120632316017887300787919879560765662621661640761829563209511445022564941820428705745164176456211680004650037700057247791217367788643287780077614939798189225757919104717862355952095817708150471719506481941599674906167066863901573754518942423405155115193714036101907447959916903628028928037695737004272257220476030659836796008089468895587174725797606511864085841879862570904852719938098399454180648381694559700898957959463592878645583259134680700811094683458770102515981784008410345841171374880182359681881185836615784877408938243709637238410294610509987079877530461368807634143443243515781068240928127344195388312141600037362884351942674920406975604692772071399803835523081811060008681381469222244185739347815657406345982845789558362705322165240670940510201818546485506673845954794151639874103399129014933445842734817869612708304422667875766553471360644461593357577122883810234021284743552848788331311716805406150570317437863780555883263529090956442495373818672184662032827361659290578249293308401602900634105607970502767368419202146301764648803657940396615906815051309308316539954827255713275538591806273048494543211809720708541035688862956145540768298128618831132540975127190841115429144354999359784885284841258782390095226196475172363853885333312744280292875850761009217808753827618530771044607152465397303604600253781165699394208189236640852069081075492796818109170773995058187719687364919046729105013398169314080042211771355574043471847926138409307094170751902431013557611825350705288474261129686512200223984695561543043174041255344865936400665425101876606306596695797097850715900037925150704426195647106747950182435443074872612803818120211940377738460970042521941109975725786167032653012712891121923577259062457704410159137581541862552396365329697365604493397309584148323383405119253692202073163080496424771904017689371937098433903892398246281559545665437858442668841769579406538528830825582391139905160349162279274284458589109091687162186405740813774996765929689080019313331038832861653093526301251464884497404076496382926534848601152724689612168378081043810852682914640803568689358166750014926725995153196411255702556050064919514261243039883299854515340199725946251075136546932325069878181950342087178564115122821330576272308324913910923169656110440832023173551916547804294692634448157078386549195242798582273612840170584108809197714211575311799251416168860169491206926749551240702900621091443784684020929921915296831056439230052020716454732371628881854023894163736213260126985562525273806565138303322578205116725031250767021687732721176488670283640897222286166132726072016860461758163295384042284163049053317088913511349661844930125972223463546469692270947988895036864201045679390427421705564232195276643517240975356556303719318113612694841969770922478893052592031171574916706897526943632288672573184196433273762043600066673516776965213768444467950731896886722931196385610322245895222607292366561841134322203341793303325451495012496820222103932520799681483525088205066964675352506457990065776289904341637830154107234626340160507669829315158109018615128538260077628280733949913751361470189555516796991144383147111264264642208327679028200362476312106414116639546628621246958937676869690376816278209179545843564255070733080651580102593128096738311265381237513366264386219609246635677420439447217027998651130766862937380203703728656414118013441879518500697057126516389706538275022502905681339662692884728287905037059252584713708386740754198881374444528652813414701063925117538713616812832553792992011430836921219608997819151073326359171347212784371588991769639623116895691000105470129328900304627349604934587207934466708748966465883092199544704412314559765620292397949761265921140206265818442189281574383518669284127180519447236105469611170459149613999405848551350581709249232130682867903853491980299462054058602761199386261206755679317134005699334348716165556322173197920907107509296764109933924574581536483676545968352934945716700331323872614502073882494359981735523706747704523664604405490209368251657548877800605359383802954356164820742149883271430166197652364820697822704445555672586382052737520498952512380019633733750595023394917754507808812233702446426857981048605238688143773831241620726298013145455203575619681886328483214876158107129751675922643900259176839999665942458533386605836679779714897883613840912679453011974647571640211832184304152306820177578254961511019878852069342189130562175325802770539067216853436925396919487581128859941596881246685914053522717396799657459959861514856788605314691424084743594691386198285367410324752545419186425025939549181829052967885643649615447932238498133117742415155293301473229274738961676748026849406188284231775152828994311620003382017417290236144502493698345027119942843507352500844351554267289352505109880045343748972596443707112939979629103538210472225735434415917295324637832854738654904650931400377330360750555298406270635800886276006156657905160672720140436205691548686844577152628448296666178674628966510190430011342989510388126091951918789423635607849426227796400474503401290926979974294185724703943003724411334755910100987960919191333641232059732635211697691843926797897467634570849493587888517674578116863247042073329613130237280091140797939307669990053766946539677075136609207853532847528129471925278425028691546685340756854921651804771307002592019401634517953291458746218879163215657564386042120546215250806648329064113316631115732159910864613490456787588608052365145572105343357529668372815545681786787602026408835192545903068765564990452013334629018794045434731315580838809048954069306887225603959847311086644199998836639027385070150881214396466233303624798870196377753717163090293307823372277786765340305864358429055868324092886643817665480354310715094188367625690233589079249249563892761470552759879135086176100449204907994359605075177381545064570398881005451146441221101396681788828433692245719474696102692908878619011809889977443403542500418438342844780920600900137173850545351465296533347903317631067212121098518935814467883703127648713539798822755474795732227717338420365219448708877846995678361589229134869339015898799226606593218107286471785551564685395814309127409946436384216489854744229761590612677396653797346476656767825848271223153802048733642622820353586680271094032055166128477626901510370490842616701181603450278307982021189162878957765908371127969242989446387049591758509309648295323978970105030024308688728393376126923998499128192893455636342393419346719928603914661299565734664683038393748534763011783452568874532845083569572748717392861159356840449379776554261587743174317112471213639695916686566753243577661347597336341114249090000218521889416843564411912811614899407475193269059160945720913577710050446370990259662493021387706701030717741390371545177689673415457410710580911409938716393297994060478885809300026517438119463659318089733949519107170554770835617270867213278017303171079250388136369035446343923020047444793219445576674054768574002290676510864858595754828992071841938440370395603353261190597850918187264614684643420674786353545015768035476277827265901897569465907381420659654796792421866643829483247848607032962147479220610410727493013043150596111712418440353305267331004729116214909595745898448218500444663341397580436584131236050945407811347752280314318411902278531666376655052301903260891140483405906643609601025645897102200359739375804058072851557372878275791463971773926904625727432249072897326235031429695334397755895848981589077106422970899187664481978451765428406272251717648837876285591969407878701792223667277697831160936848582327554645476182471919658967978996802773313145145657602347013089914367803030091185037740687703614368422418948065043053771749756794763913481166174536787800319190852251167358802260033630092678915463434026483940852948171212435689596738384558790919227453896668860107898493309766097252256510421199998241144866432902786814597259205656596986207710335031911018642449261896687090265831069598986889828510248048247923031043220067406426765657422829135696361399544435064166423586540927911659453761185613784911558355982148093192346578045963978335914685288989922196609069298200464737272716484954426624430456786231681108471181199043065849690561730262408690134859812762093788136719206937491932797521422859388940508195798778430154092910965827020062101133262297149199673670885419324499229496132079618236520269684987246325457375218317083888200313263646543954861737092953889336323060345893087220471546850382528124405225373634674423431861924051777124374456442380323626623284074841450307120258480057098229674728852287144664762936339805783045736582620567190842982533554428342257585049678420862469911913595032229975158487429434417843864763268283853202639184339845956631298562326404621775842270198535195917239916222428742513577636254996994913566764262296084344958493094722181284669854291239743123898585186791077073686257557107410379703033283520675696490333779000721053652176801567826658067569437613930859412551188226806264586297646177953577038006363066755644456800286821311061773248046025286847970154902805280032316118915178260997643936101794854078968214495804137345472990184859541742857851265283403552794743361058149484362166524809096249078378824179926722816955483202872878834693841806374446276697123458716379151849767709348837152596882297534749928521422063815029046687700191848565326440346729133738851093091116026767201418232773180334608158898057365300746370713164253639545067652474672331959885543235364438344933645820442416286122572180267443899523419385583396117528566748020197466943272760024182348784861727343857091052702082999194289598951899083777960158617524464004272999222510458504854417187468471828322754631489150737927677634831066456872380907669827101227606096663740655915071755333256408738030301627244531362937313331424876400308135830529643853867363616140378065571639295563041374878123931972994879135951071869483060526945258407375332021739939968663987390578140685429761280619790587529162451537507813618767479252546680698483916277409327379656666560976156636647372496136065134606269556003245450552794373089852676332646818408859052175030105520524795618950114994973190036509182699685649828520124477954051303573319263996920105904804147250803210139120517305852638072703195488047888561774947804543266112117268786561271508845502196646304813001936674249162377297909947260020433738025581160591892816410595089047646346107289920362557679436675964806101339104200343859567487639398533009790855714242329656807881230354595752733467974796976188443447149921549754758794627585893302060865769227524432487887204660390386947837559647790694043411315972570882962438870191974779414923516576744161123974938507897175769988644800230648892375222531682934655222754776998199715492140577660645564142457518507652358221236345396073779171315117296037540656030052411916240051383579123331387682363666274561652018518091583609813317054843353385097777223715890681471104541552559197523229730629781603185672612394234016146547583433625684145010942375105249208186063714019487746657884114275337933551009513373733137373970506805793094618184152352762218320041315832860936146363277690971256597422342590847667178025664558693926799371861622744510232745158660132748906225039218134479303463194775430101639614394865285995427499918259778983469656250046975693350855632703986246921138780744548308829479834822921137604687644323426206834533650038924699957290587574190490313688049873459039197260830172184360036837401258477729842780471955344112788765603158722986024870175881683845795218345610682401186844276592785929268745929727921301085740733374689590974536982547204537649632192749882594870464968743799632517168715339330262351789621644833036050396839724670749505546961238031748001641378749362621991460863327147270539126696346183029871530218522501733762530677580103564131318347185506131217225278879676879904162561398493281947499840175309396157440063291546152186867928274604982831570432996260979458689596912847194431238968331744247917384158231494090552717060807918724808864454977544650948644838495223705991065842280538188224607998315033855994722397817300269629972357647981381624538343558624897719282113887967547833424339823863246440849333758375573703156257322433104952437708282615151881387826931738448264143891113852404095790241443144670557526987407287376882752111493326738538613517111021938800630985708151957298030471533805315302202527807272015823500715137748242363464816271146308158577487158800384528303610204594848609737373842262345122769871444752187629694730434016798680318055463543942731704054430126373666998923410604859015471175736224439364793371984063418457281928188088628197968082654290014228513113896006672499678415695470055035034182528773462117274620503795368571891301685582074320759116885165988324745720607613000773806258935161235478372870713070215397702961604481919314103999389062119941426760754944186898500990363893025133199605318424298138726539025147759969637803818175127178177738820485300110254192825234184234137344945800997938861810995247755887152750389846005244422031678934285938600720681121177932118308655277597141413068390629137948830837808288568441714779209426858587163925427035853309905218366117137000155468552926488180982418592499392813202399649773231075450972999339353314843654293742307445594458231597832082247763478997106515178830624730317361538988125050053348628333192166985094893779458673792611330373215235373312870742476497746783072216687434315629775445797099171291422637512499344844433808126697194247844709971042561928720300211445868168160529954803493981514882316237968895411774748988330993295368353142821206655105836307784402463807907695462898413266326112590637685044790803947335722539994217105027920567475991993120121373654530711156390128756625957997564153612492627962709361544691386987782071809683810706994759630885320000024904906607765606482411843840343307136448602955075186859084291150414540114197907461198811564003894489473677548845113639898299293550856715519688361968470261812279353290541840246577732715575129680917860021258124845406436363807824918062934328239393467581539756210975324281531819470201886602653685185085543725736540433466971039415064347636812475180694589158566798137485060721318956373115940905021751658090434450438216677240039305257356158757260358600733640444810142510837221676330110612064337331553435602447883672394423450589136612698820278678154342278830972574470169725850482390044859367661306738140656635063321741289275576805863505392701034718486208264517678600130777069630999122652039462253520475905348626230756960610582522127377525657342849321213869453321164184318036184576394639346215681740643299406990261214515212353765175284788362686417316090846944230592855147879363319478900468379766414859673913609399560034521897542053691898246371288042672034618558353120114095033740061968464656632545388755794501851834231696917475891636449386999741325215855336115354562049935390733154232679103514255372714941251068016833997913871779662994892739109460646879239831554434632942156065480465678652256718106463484005402133111754518389853441729545205692361959681979223790675855774024538434682421054744212060092913084369695165329246013363276322817590889903167951748749319003401655014291166885691656647729685573320580138311570906028847926814371215341100350876214685110819659434894788803147026375348527985258966636018689472854441154762941998356773776431051351924976992337493014627815350861881345844846799501785626090313281509496618878501988093875769978163470466969887856571992151808993854299526317161681437533392118310263633775733565439299241282816741750040803884220585549920038864207341294858083029665701447516802733642831958119358387427427857481152312497003356511261296585070602729295339214786681505053630481270195089599745792799439737389177216249417764518746312263347888804539403144477226868652642799085978370547028180795944041727672385854167769075281101287584164344455258337329049628963690319753649282160632995134341093780034721669506809080782076251701524998910543872682774982805453741782229891252924377956595124489072362392883941613630084390295490260512503903079329723309690757663138767929544787591508471397886051842134826540622501531929468974564865945663950390582086620623274630246825394064500503449342693071718620110443396343074770764221891836644268449564505462098485077334297633202324526236317983446605705192606008799668029818658521635662186492374742325977764320078594480038937746534615159695161705147495966001047516612413400737830365977616403788988791604922338088880417332238943130218300399834520867253405138787098968382992017750749230804531319399218818803557491565348915044615840941849838550129182616976572224468248210959415567707868830146308095567642373421348124746366226412621328139601929344088806817313683508247355681909343699152653686821941208718916427069994841934960106054529894434749978084358065992824784155294191221642898241970708666504239410993681246744630404808542229032445675087616657008191389014645271659884772161097329613177152613380564730999064877742800127380424056021813496419906776535271081282846445976841490023637132997188912407224686142276480165720430438342900967627142892015877064019956581802759413853989103278767665284972409809618590847626772809652601886949778094461326317963859536548427566718213955074073541314496450379141751259761162242470764095509418158015620934333756142701762070775561128089708919298001592553205372022503572568250978173312391953494835162756705071782796259257446165237178069117551658644283013444859868643914362976815000056122158009666077821980455055942230415943726888543146143039411267493961275508602558537098328169752263372089610794347271528440047042434132358119416650364875537964177940694236346294575620758980242998828747457820640581346775997232979763510175459667218092970527966381052767768688471519230642425519493954330478373147671530403067226964239528620363544435099575201718110045836202164457335713424057703698849873000517391183820092499750260183985087653697022094742317833055093883860104111160575081636098733541178994296972976872376555360953925650267682108022853162608720458248008093720396305127346803023400238150342985174344238618066847500520211575496162163330327615770723155272917443975242788736949114236329434431647249714636169916624729718979417297482970540578074818371478506156110354083373657052405963709971274261317693309281762754985817221491969745497083915879167682719955641630686064403383940245431670790331533815411562066495485679026410938906117451171330710063176518185063068633418625991730816350784644580805565307344447441188611474717420562874028779663352334013623673741155189041649771289647578623524535370964948267224973641850638494210053028733966287119303838489499846043030781312824843248329560469812391117484532958661078364762039347728226489869201890629723953139249054385887433876521798178876832302823350050781236031741164771691671455369416186632878534927882983782477322619397743619117118852604107309320881982872985855575109251097002980473801357916636117933587932739924611812419155849205051177550614089079310743565048878054691627471105367281444401947998485183970759736984433953718530262701676694040823316528543568642897757487453733056834770789769965472756572056881923228500973819801911735720567610679648032303115601106815952345992931551180051354636928742571540382643908007169054809130522708630915989387404021819508963161261654271196621609130174494134314275692471456140589266642408243893470090194170268724506057272465623479644424520719723940711087391353151215320427220930870489186731110133078253790549412760007850486946943628509295070257495102052037134826859219878008154113394969222747389203753919874269375697242828299966550622374700032486846376836192584919223602410037264597026658867823254915998909070843728037973171756192575012751925771930504545227371403090003400903175902463873434818413477501297710547600090320839756618335569752044623357423871849555755791691223995232617708278933334914619272916572962284072976994103665739262540996710017538690570703460888567728465243327464564797663242807010151135009824609072752879808015415503218234929883310170108624847736305500344411174563729243934103007512103909001627144774794862844856481096054983023695482048213301235286054656299745930379750957562667659860834398400867708484625513815465159435187107432598699854513971897192336080253658181700054963756231427418522175659734262685799701062203524494220171714179017293559712853027900889465882660690543441609230875517106213436247191992819116813314892532346098205722219500883330639955216669308610994039612953416314069473308951229725695468471085113883404187504122974828577287196892130544897843168836247308979091551527665983827409848869674782644203704062622596106685149828489092276810507843259216009972159363619042846045660553027853207856612322138190824954329137327498109003025769905436665577544474976291924556948824357517177804403423572548790083972807232362736176778561430038851313123305708251515114270908496615449333172319048919863977976474322399391957438836756997822237490735565187565046466617800267927532465210021583820570967237134722869404854592090681999727402603370173094697064494389089972882607945660579030146329140358495119951422332021878941791394009758210995215648834095621593782761206453821827046242955995044011664060753936702980812670942313311324620158695397554765962590243111189899853050534941705060110558285253289987919473555239110117210083211662395474662755840556781681006108103271201542967777202620676157190450524043646383944675417575008249453576483813584477650923635686677795368493095903169737610556663457623724463504956066920618571073789664639981163529633648034481687919416423280627267554268909962869827101740633495122318528314442348980926096679551366238145471828635172056295737109809132653653405041571357263594427116656784920068377096363683510545403631222395292625753432761888085191409471369043610668595650447471553326444772125984140851099983588230353418928271761367848600627702914935328086249599637763879774775248695741742654355066859026198564824506069714319241751596674287710941681874270932744910741021112134282634925903605906539582225605987373326889282452910569712495816856616925931329071987199868826141308574347066101561652374782714581437719091378268103611922572021362028517484677743890452992300260959118614929230903754700693331723033815101711924949128043923136127640930982125490889260654192210145234681039217181836465178757001188104001590022710468746435288120455772717242012499491953866816303608315973020297452460747882286611137265369617717315175553625394492935562921174314357116164971825459885220508240516010502640232389636066222653263367520875349161102645989462553410793436765260630284731417578085827939157449833776779434484905536960102530028058110714068255976406964171938799251168566802701614753505560172649887932904534669398936110386644063820160191513983368322730041279921626351271020596110229644056242628605251261707170340756663111319332945877631615891943945646413772294770946212894570221691039935307929555092924768248894514267940750441724307230878874983645746357480596723613417807174729856101547294354250502616956570297652806336546925274696215645718633331983060585407651714785549326974018814779063346684593522849308017288237086450891799562436873282926560840799795276349877083751699656914507871886892565267420736156710774013690387037235044517392139467872542106329916349258975341716023811097005807160691345216408521043610433820642636763988836276250740187907402557102236046348580704584561173206012272884070333371708553237276648090451672709299360846674190919287108671395130716633000948483208703227585396599690819286552660787979759406197163974521438385206694698287655236178772275194580667710371270319357916868187996885810358830340551612453836962782590574904515759417647319385023620360412579386314025635603221903302443267102626038685236258354407804706438886345325352175131800563658384913853933650889530901916281637108892583034510414761980280141385111797871871499577652890076317802759326707869157096878343456739471711132421775052148660181469576361381866027049340470728979765334931540425356873428537291180455037988210123498486326885607824732405702717163431202927242613797287575273751388358341825263194432761186280145301217270230579288802034057769480066046940073331513432304091120159349959467473675820043406487616844801618736404293825642739073160967491140760614465543907609198653531948305462807748884333312438887779716577230103536918797630968507635959506629109716871026946668872770696807620245872483355439908900980753206760040643262902642776135497343644354111034116187340684512116644956505215389036544445035453482439125467585602181792290096498912101118615183642525815865399950593439697400482880236700739768922802892993620852051487204079882583371657506300953398918087295190421176153857438875158297739885513420901479964593530172266802838240273411521734836421346139869218827805476747676167781680138085919387722016596233040621000147338606513272877722947691096018125909758483938012130023183478897537289866980312517830768952924676417184454574832351510394338291199272871668731797863759351223876826086823483641848107694299080729001860907827918286012973362550868216033832624127075820957953918371963376377227651976988630297348779212490669836161709287663164828235203991798683945210639080010165016214080130668118791298388473920843179093806633679901090514682252683658015771067079671308628513029830446484456599719022424341478137015837204133536252407835913949497518887264453906999481969214263714623272707206834721460009146624354700565011492729623725055150020241878075146057506341514327020417163898166226115813379609367536056614429185087218671617793233719518137185311208848706829645009726260681511780042580184364612749551787635085286577497709711457122487927216532497403290910109838555422278695032279580392294090645939709774108139432724607811419900905077472919471000422522139642580895473213176570579630959486216861660034119677617012769804662604508736439864148040948368713190073264593641819560108805272198711875882198228404329967700219246809465010952568724294327864771349403552240580127919437414380359496269442099980713707296369060769529807209388370608401495217748306014488016761922605094493159540599319726878746166818336803475571160729528176520812544961706190905557333977407515297889166839592407328274518731688243737690150675531118271493732403643271573200409517247733895032119731498760307836720374428361789710553868057323371673686833553663091738832261439048811989953448225370147557387979846436436693791774714196973155386324411399942919641871838275184735185733269593075338888987738067641473714906246131482237966852135275947310396553121360134849036857096031041193727200292842637632596504731129274828236225744041667791340330399678121396819333262342816112097537494040423657117495118798650627446884763812051374562197497380448010160206504758826083801938150020744648065974763478889129163506899519700826155861650636883497362227637550966163130944173232317628645612515342948360557498093668467243105211306557734755099024142983766078511905797676991815523243404522658768778989397822642622386788370125546013620626015229013468198287317925916082567905799895544219056760005808770362741309930249691153010159930153897041025351399604980183612953831924425877288409195817832706552369113915675101715551289722083024638182804131109667852619223958630396451179400334880219340169138440623311774037106567500151255418787302191820307744358492811372632141580378451514080559606127160685646401299804088961834253890844254553729300344605239641121778934488235116332250582976046784954573970743846202907458513625424964483307319074785626273711503423628166488792717484547875057721852969119319898559753643310538291176164261020362333250655227087182268168332541085850066572657594514597368652063184071798646257428085095679417797677708327788973697404546735886839951678967714639539958637640372603409127329578650701896883823956200276067841131488052516475612301345226032226279158624357066240395518189175213805948736982086051650546178201916473786265312517479995427784938373828890263859335861062108257111823643553333200518112475338423557007639565362633011574903521014670239518740453854049993082029596291092006752369853455330393145607583774140745952048828170002172796803527103018724330787914551774340559166716709459524398516717091212609950905464778041190535843273206256390500034884477003686996358118226318165425982156776309151705426621045283605249753606533492219280077179583320816600030891236393961900514661679205951105021074800651632562705452524241122352032780564711822404452193711353927169967328438731054329260514861533212467018705211193848434170780488624258347749254918998816495047809932078696845325896516303857997897310049446353526292749773666261999569552049880554598094609570290328869740334484018549588706390326267302473338121324580865176988397143613634809665087519864639696701302274796268908383614915023597590801065301692056196993519362148503442517648498754397413139510489655881332795044701645412177222268676820193956233864556232383885974994125858131056947611376208494192037902639569942528362046932913062714509275814877405719011375402429619739184650723400328784199765793967324437968525705821637196288182982135581359714214725641947346596185037083318973549014451338952058333571208666708581848275680501378477205328458368939773468031772962426684567377256662753529758622733334524955299061247865215241866683886146610325650708992152108366511613377472160438333119700991257855419637464938464365613181174338278969230993115442887262829419585451608985089712875450630338238104692038900448590614498919125218568492670398930892220993232900467357832715740368903016932091380764047341205498208657088903527585063305886425703480249056639008403616473869792607687814725270698459160490810005943885071102049410193148099894002747053820814405764639778955758815248499567514044905219885125615715222901992669966090576031140467821986122811801443268516324308919059793687940494325136169291618414865167440895150867468620633490831705592975021977040520587350651930618839976205486723162071780254051735523151028732700543265604227207801611801316384132985180834094791279327865327181675952733330675870514746163858515875763657189614518396837935074356341562483348754969366060017801813252954293643309049360311902999982442131308180380433596198903984192175247878623178236675028747021816676725637531446547648587768420081347717943443471880080870347161268429517094935450970570778050813229915557018402413818669946194622784657577891008159288208472319405936002999413185876221017896457318773119654916569047079403537999909405908694265103136273569208492750838262537478614155461792499746730742380922450436853430230910126730885639942235948016583104676778119367727630500090794672887421707929774830204516873606425682562978431771629220019231161059450612681061628177365888410796084848634407220308676225701271367055196732542130188316590156115432230816278520265079163309901651411171416728262427893057480997586809061470155702655268200757684297378621110476161823716867236389414618493682248250966046897451681333651524236801577850035459656704059519225292582930738680363891372599733489324079641188651711066345590998655666849301783428401662614414192016766632199675290976719007889529206884278628707339784581624447042011900381047112771655324095729765782536771091515165678311677365714965293595098491781194900870981533812820444608334022017925350176321758204751364769232511818425191634415885039964069719741006029348474348817903136434371638552605084776002390127246913117810244855143471662394996479352471845245847732307335627998782954495755075555822460079576989527699991543667640749278025483858823182943443806482451914639503287287332874134197181485845569822897824198609678505325816127617872534682255828801115056084400176807070344026989893769825114833650291396419542341911091305733800572355439964436870844459287783059965347724173977811883281713766259290797112004252289988821714356302520343721753936363399847983705216912000112837412646826443694967169787936906046326974404414145550644498692411231015363117379308688923523496242292143908633517471781511646593522445633002821797322094169213283144449864576485025074726987376973375772543521789009103556529864164723106493671311045513505329870848207837519648337260437179235577496817983057733226722394423960933804713674151589056811248356576680638363656367521562090304457838903253717377192237412718427557506941473737112979531875997032787523482991942371666592556183837895938312732503570184469616160007078345895243817690643534192628744785804277584198631046391768615655510801945044960663735160420216417319285562376970639219895161700791092514924924542798509226305952699746325523794633853842442023923266210922786123392956962418773909956444839084463168795184614191486179643763497835695997990807944860973413195494861777062067952976563533361448980101202334572036901403381706956798031832330641116405079092209788245180100954229299715572664951076359977096264263403412055418973588767197110415584508900914395708838396493255064185567445730882624921516581876891323897228711073758527281146973630616258077858908711355312718680478368518681428442531301233632650434495872343097108476540008856076166116565206287261378109835303808233937627059226317628196522132173682180312643968197719452796121763874158376676274494059345487135642345838588736530381372809026221367054467606148201139782809172008064670425431671958807952543106431402485886809253739667635444580438532817270064747169352658965347333974865633245657315046650343521480785531058534464734854811799575921956294697975863934331919325418043179497188556908082984772936019407767546996532443819940647153660698527217845152602059273426538902097935868574227631935359330006192169155501840685180690097069732716214741792263557846828725826432461833977966842124782845454121537963828355777910129623393628419363961579657225754139338768940015473134641055469605197623398350976804261825772959627372591539261753926539866138312406026817409088585532289359701910055140283654419452889711883917381774901642976770480567030240158440552113390828050166557997849637140425697469954191537783050840047900100733392952438255642712140878986057038093686237254357800675115361753118808446246784561718240152462942641119168256059310765747099185760822261709626692853991683909604961973978958620744330501011398428569981834086674348279248730401810687770536212232294985027640530576083952693080503262738010256994692223436362582517057231854537900955963140072201370098618203903700327668358895297785254192861022922871866576271147859857132827048502735620145818749315941473031681477765178745311791138650111796016225496591172498469345711691365644727305779990395046753771651340930516902584709061186715891030837638696824652314461986980429649006216499469150046976036401648861168664189523029785529216116417944095037718320820574983141107228643474735667312974315265932101715908194234212743327189916503875697421544698854522472778531876664858511413590052858685612788054714040274330241935176499144202197590336627983965140175610190200421969276007070437713873771956767357973395879733316011260575031072521488320205657616877276553391865921069486209939694301592871160602662615474984917798829090080073956014825434898147229636245408010716913419681775825247989734834939151286076004855930633021391317623401493751141473892506696473355752773551630215046960526346081788701913205433875965384660677118778854531717203213854415504798743461795742945453935557195177579123933152243519013907677677911717054811858040732684679786083285925490517644331732871929762478794378261515451966392090063548295641159735404347968896897472745705947145270974139604711640943575392996408921316968677281204323241743671948304254109293967603686341034966261188905140354128571074404524784255399677230377931331004510630483754490637468922914169221542347300795846563190373729058006245690479100556738823587525486934420709552531305844719781351592713735057567164374345688363497802521153909325345036982794534884555421086232505687856289637093591195347747510559991457670395739780101804442498327953786947895556734941291760504037825065179084912856053616704328640764492816539550710035009120182708432032434262420744388230785724817244971519580247807392753524901631777244904544559723070459469275243973097693777501926217834393084746350545759287786493200587081446347458576782914891882164716907390761983495078782402791233898552432525701605613837437982131827426394281889306475780632130018360652499028634577052571448613529147341932346790097974633506130751428465839521177022024732100494996155317794906370654071796903063731825612166743798530530958598398064906362907350676315278333443756031740191083263956942334050302891655793793019871103475707260609645805020795089071102393582730866723685011170446797878704006329770827872037349030403962317718669222705074058095539745889978777907579098999065478737420725530995175924054084361485954666985336729068653949146704828814550826780045043176933069106295441682508529869912486111193818222131312002798154827292684958421386830959832065627696369184197732587569200813301033771986297374534965523891277807200845984969834452827552030651819013523609983931683837805091308475680179388648412566637620324268443892982173250535963266903491764510357838573074075669893158379715224791721850585859403698517656964575856941602140245487553507981118793609210954207540292427808869546206507183576231125172157154071660543295838874914476977955883798081656826134659113637346023790394759906862446300519938360123624309024621926622413491353411113984287629014586592168557228602484515818153963919819850675721446864087172196964919221511653325198763653905362318497511078175613090472337835104780907985371157240116148282985896218509174597560253382283746585100519235825839817393090752523357861385392145938241730862861728033835439703276758904120957741401944337365795223239759595505532667255701139384278530713586960329461543250671393566647858436651841084763793763901559288903058242119416392185153460716681711063373487716138825490236902079919915598061912490535028850821723418621673782331204043824135081118452503448561223456021934644709597489123685697806620086245803250826100600690069730309644222806119657901206718715741521446065868698390426708129778544359222134752694521943988229875309517678541065527578140352284189288935754814374969404550595813174208937798186853747989045278822346055588645194327296816843271319694495272487820629524694560327783315372482276665673907884313037700233350684779452654868872411172916222502540932745462917906313943500490762470536715184598614561865967276060210662296331717648678233501249928144951893535961994082693845568120649073941081832561189272376744312106832441006571469677102841887846882451570872224768683541542411956896615757044723503140588722807916159019945201684248630392717580942112468216706189629260182498918495535313866034569696352789003121554946038497590504853485992917236289392156437554455243011828239618094592737358658708683018023691265960973766753016630160745325149430608380761261184777761279288204823045872290377566691705468879208234762575239221319975514137280828035935406538168819473062876131690877364105130951687875754228228700085365661447159533522836529529859597287135652044007351597276056613371429508754401072584680818844471728510102482155608228115931274046806811671950561496979826845507002694699530238463012363468640593359896532735312015949285346935541718628338846001203344443713162529951314904218930081215861229393338081825986938577538399032829095338694561624404194711683378064239694013138102541173958570732666632714780048333278369075536261924300582651443742391525986935391033514282946660298164153544705470963865357756313943862022507808665377424663838937589979633834698488120063054054240659534349217035703281205209090583427210759983202671778671075644202706158308572512483022864093907243259853709235701940021212205284051865596546251290893185961027591287928860108097297196734611530769667527822139499087709114977753202438366076944899015927293405014451590886032429151449368094630556466567584118968666857842591723709534326238245937961353853235184893133154836245346139214074823167094745072990942133019545902641479610171182575496106501253218271322536214784352012119494343727307440682551155393903806145101807769177159555727242151652846573321778773937844151816090991408790737806296810161647479904565256555998993799852044499641382540019616370880047594146557464276322587686239461017663418636871306557171316104489953118915585781295078214833926049638030622552791194565800209784880698529286516389694460346985024772107030068946241988475323187145825384444882210279048064861604033513788780774134388942756793407641544867229065966104759181799517507616116943543917518491389624983431094193764980786724665018816916355779828498323673765601419744360926560725074835210173488079361198758178527336747415999336300596462421712833847048527493356333089641948216532917093965988655767836051481174392646438730504059607826692287332835370539724402916725432844441137983191613851520925671340132548935203232770298070701063204769379753609442070122597137019389757770642453622717113946363124992205248468524324357833210921242704903239653133684058454426328810322000486264109803840470397410871382003560853420479733450853049582258269907562050005939477181186341734317752350363285750195218931255566183402060712463030038350580250115137594260464884928374959244383620012818111174052375603122937081201002570492192308192603768518852441811751765597005974409086518482205559911312273290261963626023616781265166735469101195306801395826352449742367035150176620104730210813886871860759364507648706110070013318357716617157097144021580122924154172823413157953139517161792664657352689178892090462662682451684560380279514546805159658344328732226766469086541871034118354745903004964397202646976342565979930151599502634494540278770093832702058722288293921878184203851208616139520701895380571386075657658067983558112086425714430033781716138278394215680310553351761538700679569024265224476462762213078007658780491563064590624586813578414669531820266730155684570661069833760528403798745858089855365331045558107890224368101007522417064382536631871395516712605465003361970670903910562915330431869569210871830389996066178936223631802792783418214460430308404005301537493525094277424750331228292263838551925968937094721892242190004524003418341833718193093741736886180552978896318325359992969172677392237628789122843268407567311670773521993238058928466250615220480577614120030102853211696692253065347075483046515282463912689840170004972391322915748794274754017928326298692730793558910490595583176321217959382038582892659181774820558759098730406414692168407741096411435687506472862214224710503491116242289423970981735902859330941394345444815843728370859352984289368563212548549727457071376665335444450665902886633320561376729347136749145972033248095731404887766081173637725675021661629949981353096461858165656501264671011715002781946779463290905725591388863224695324277341180696643817651469013673044871101818778815325119519422239188868238320007083662633939131567552501077498827429637006193545289754556633426785474712427188558649627937298660702997920489325623835969750830574034583243828515116694892808924323760129382660782455401673263972963003313809444748029373865224423518159110820584916585224944195648875960671271229866002269822590349818375828807057494734118592226961820585031230555939494979025674650369338863684272260904375007112742404997602442418750203882804768005306123178718863354495929311037495327415516988463501890784039395294522989650259526338608819061836240696780261573917584967080257667909987808395770868856443218009177671971541331292331973528690048504130748508639985782534906638994187001174748420836922029436751279539301897337317583746733593169650836197872872204552398689935249329319383273139929875170980954106386065243297378727103145138293246433866103013724785315722665065247312878481106919115509611059194197926605047934488268107412810990590802882838676857912856503422795657728116887803706984841043259072732006153276748604225509691430640836030920313983271887424457513394040435837907510163729101079571691491666822804569688465095238773190734043054541936004315631234390198448224358005163453706173221344344368814906189565619439890473701205057892705676596979693003042724600095397533206660941940065791515808242053225008493275719314494456611258014192903522902539056776568247291614854986768636966016664288188287825971597441750776888999263410912011017051109935807265378760639736276784910616148106880989616946948250170090715964857672345162118947123187725126809565340811061061268443180391134003015728601810964565783661193481136793911296133838615344621646858517484211322414502025382658841317583064944176217251706817491452826211283354335740436566478976335033334236618142147888516275200488212961404412424990940920748594882926172414900378348194453663736669681681409165352886153234415780643914788254323008704455398646884570456707263680439764001354880017009954022570703668435491052751985764767549370982866837518120018580822468210681377391591113618172761984060787850022507850840704158818199954661434273928836289031130613105301583784444555044976733287306672562397504110396843466423615954130791596752404781705040302918583593449054186623362685911078718780626586788007728518153165343324395308926040019221445274690530314224071612317710549293863622761545995451567431516503740126540993786251716416862314426988664080513403329871368235914416304180675942733257927684588927862614899250523539957038811017021187893546787539726771138699494685145218196629740756064000657698370403905522444751424938524832384888708689482238583066903073074352070862733985937270416284266563227767539211565259552719093204374452086795821297208988296112332798049396824664287618037791877750881343365588164283838607647840207305241280788006654630929508589533299427959827648531788410375972096582902075468255125796840724551348655242217800010273031728095844988014968931937862538020407214046341893567538991069384184985808880378743302365001520172426673698217115671821720636467483138736215363696740230626204357676183069764228197129402444536763613273405428180147594540171215512764591990528102800421757118942031981040435028226929146600686191816188764273117162548086154272056921448388499643507852444833853815278719240848710682112596712188903661400316522916383110267218133039952382995665685131775852672901732421658387985129406071990073311464500935044282140422683413311773191360618202308052261829623681854799129469499736540022931331022494113190838598972971957184922259293713583010296282698245038875993685515671338042181968184328210516366456175008998786246199257333136649258355289851544377031282643825839361514897379526880011305110899598958718965348207483927703505170047439835767943324659973346421509692170011692824912601541499508744836471065212764237177842218577802767662219664698605518573717656643776084718839424701543880273635347702496830546971216915804872743059971058121786805808599469065712559814754854748100608618235901411910363281702388150735656556716545925270010199004487973863297569034752034698737567192522331644364284335723979914696243604520833217233772538442218203352981857880031341635513614020267880384946524160172772892223213718775676969908850045907464495535806854318550223567604684833118095243326338604359809144584995721241773610540357462520454738503791426132928236562785869731328316195559683184239844902949415728404930781191400333830612274096896534453264400407691980181813295446765285926966976828371782758004395038737241599562195009928104257298014622244572158115239245509352871787949460234644485421521879339435543103239584532273132640696539303131184995966862829521995998890622239159414895884152002590635641671548672922574522816282451802165874590997605315787801188485561641503408091472822551826089212916021045883670561052612268162826384072533998333506275614494989398989054781492515707233472637208082767465427678860596317761136728693374256928454954996553535074640720031888414310602491373504382031923656034654963146218574053678643887235163433631470353374870766003204369552832954255149445933832286468764778238390956268667986733653738385724790260784894074584199032364402669127356430470675411087944354874300560482648568079925176484935296430586342040770620854597932194644707737906922464174965912087650931630731471444941520708690489810820402835378773953710063027700856363128704343403019059819391307119883001605513839773511831669973265442174616646476904165808316341283600571757749731602398355119613292240038109242141459013848141719929026750670021343186401079661950102730382085054593330824884870767552713796912022809405620983556903526959057757537219648398033230291802710995085789329908623259941037127306245805917783631545174732560625105189501242188508211379920345844222917329625864342214686511526373789925607594813352327900082112078610763009290145273753041961853798559346155620904326543568417185111900948583968211729455729535714420759492174527226235970345578413460885584128353662068297182265953301507070314183830938591011254242249296889168944385294323126978217547072909096393620907465059908783838689267831404875721138281143653353990864156613965791939612415340622452439511745901585917203575616852713509357772189028856324638628369446320661817685235154045501179769737714373609957175836508386869395846869637717066245865823700334495508392965018156268666972237777178540834784659367029090861221846196805312012774697896252814821875699532306981603414115850448722561312908665922612417761087613288640559932733060875391341615113258651265923451506736016766626488889676722747911863487404564050734548931094144323533442333343530177691284383250541149816253978480529962260527408568031737771867752318268333009554758533137455909770794413608899799689927701706742728830000098548639527208075601123648890011051307939192627630075928023226345671070611931534521161500931027684622105986347355368954177675329696900781469317467938029224364070486008620280827375941748251740196535526172906638974440694574087183140230987822238496281006765985393116041324024426689078108699878695255833413870650663430357888177556097573142987942337019357178684990400129447125061541425709417498842713258083996508772819044230954344423222266715959867800629153340162986071870325217323337246544495594624496350908775298683682407951048544251690701614837555972397947367395231177744154860393468537931712952734599304283657746048853130258102545287253591640221775018010602866547540606538453441426060917260924376934594661058582394561351038637189229306251143170032517800913805972019696520680124263949900465830037267774299222579778113859484808423722469107579835025508375219242172504774030745357554976191021626493706482327265408836842537654357795159514453884199246038767763528726366382591095514800719282140885578017600839610387768314352147305355141346775974495603460209385890405080435582000398998677074594232263184569416506535777180916988271417485895509519999859763308281832749679590855597029585100588060702669385973300181829255381589656841391056072187782888437504279871014462736680849787734432751523602684876467751454538036547286863517004526889489220928918131606448070644418069503567542950889846056071123603838209338555162736997207384872022365995161584432783459635549590527565957905079975851102986304292850295932695195214279169156783992119393394022946145520771722255109251026397638882488975787013939544350231512392733364289481236734984534319411083939453345247964299552143393338813050389545475035992881236892215309063884916481355515297337890703987139988456026780940103433528858219534532300384346418703481501441649021021312917896520425117170761748825929688953050769609147474828831806793783725977337546535776058007532309356767907799008228361050038398230655098252808823021237375827063620838203207333549972353019709293787775434468092025174916793158254324473466395181113519980264972622485378055270416817599552199916350507699915561080917125563906931717791320808262470292168483684717356147068851031899162166570598326152273791105106613486662974672037008472363168946874336446639089834712270844738902698690241235572874986682066981130396110601342257422958530978252665516782072252419448784798213141246246312476654136100347355481749926151891180368796508183892036463416787464487870125511878696557697940934463688156550996633691520964191586203653453438755686564475251013359867117941262865178015228513334511451607441616220368726646207078419995181563606357541690611738308233087145620279288776008310586752841017114855368523569663416207849005934638496678968654565706397445613474016692173031188637040818653028375717002364086076982582226277152490348712008318499331393008352587640494256659481553934636997858484898888550149789632680668199154283061035411577270243986941225682003716690650345470397927575701105666806716729322962164507491704535041166320029767370934413641373110925639400177993962755784919491491050018894214043014247674300599333330306859552544791808904349583889614051948531287879435979446699826497909550986809659926001755705556532766361580472102482094553390593546340839492587004602124906695016785148748648777035111510407725937998891871995201127194301282022657935544490978383955711833063333211070524338290909863984091981502682296284531426652573852545736902490430518331111917808651400738185621241993589651509165470849306336066762438143836861603144919624962884537455103558534790914422846193651469067520378841816477756507423335790899681666113054245439523244803169165984314396225667533450585706641507316021311078306989528279260647663834331752616053490773095879731485051535752168602013452570922394251485281769327345848436072306444045563798456762339875356286564666400679414878138084880664096518106361902537289578415481580892917513487329864516244666857975662163832665847192253823332025518947618716771433375661562523708234771194278463366746962459941539863026515566761553598881811638629417751780256947176725967207625312342674252145823773953747509406502369084437378881438213204129182818074254290097458565579971783700873904567000508050941404116880813213938283199066799792823861773911847119363033143934583226199080356615122786143599169850057262865637208822262883829446142332170336399124189938328998293902745663406175089200565496414284026586045927674062120245681083077646166966594159441167434401641578264796837344102679641658810153321396752655012553190710789102195867777757389282196726355736430767729283220717373192924458942551722981900015951895969867400999604339874300783107535506614991553656999782326275386019740147392134685202466513555134089775916541897374381958791812922653242307879013854780994914273433383832499709854507313009548795548768004812712684386416140855884772012269723073571072713041442637692300309135698996311110687888394336278366632277381347667012126572422314964195338411629170783556085516522376965522809790133694394181004528341968967590824364818885985654338425496301545870126784185631394500345573510010835713796700114402107823122560822776034977865242490152216457415454734673777241077270514042677919631536579013898573809776416438188445168982458500350788741470401701273904608368669290036796835498770148166746134818931122075169458524327465242687957642667377420499866422654022186351327121525537308616689576508341532171114048237505993174316592444648590494205098052613525267782469280309576501231847683884156064037900038146637020743021631788099712425630201396546812384927293799775055840848437397896542115737040198687947954552524985986111079810141108904866253790629452974682920621486734802796037316089332538420610835857398474872044576025282271333002998223958872885335064910992083801040955122481350547762174668969382936788840111851645659823376866364348901050018443572063120993784371233486631368547260001644145434652279648996726532908658467733472701934974697810291006147112822578353333139492835262397017302833373433248869143080074411230250887941040430207586159008113073916134252035475928372991703028092201571249853198284067624646944694815085947079349724423149019190939273719892915713970660653312967345255057332238592080567200700900305203578877078521715199470549163066882197519549649437302912464146731188023775784594801406698087169091927382805205970495287768032006537881808601005882537223746738085416936500457697298027920022678661406951808338217931555129400671039825464877198434109804212794577918714188689680063162992646384940593961284266452048054998613475148791852691090356238782483458486991825604176530778541316531409537728491345429811517580774709483374326051481121580201685615987158501475571274560716985768757819889395999367932759470796123589526959796386309485750542499536852998161268178204768098537367713143680638064295763117467993045155436479481300080592374165187713609413994353210297611961092764525838678803846075636806161543339952535711127385484155060468910445586906223414083452782812745454258087349660311442041148155413606705978883477034724188595397103306740470579097909631043811752488319694905917437392628797735724696511246321272474991281732964324984522298233456950919546642949347531756387884428622240180540485163118067031131205585583012259053413540291418919361782905592303181703020278949876177126847399689349732681366646078940846792183073989714128912582424846005077162944720828853418339156271746192780481796326994288448446581967493877500966802921701689421017621157839512833906201589866247116012211257681858251975318322181722593143982658761550469303939319886435870981252837205430237318939438640448575129287320926945692168051122224437479999834759801380802897527664863051868401122144173642021679116395526652634238414275344820158420597425875122724694753092221379027832317472580245100407129014260998683121215561056521773890686950945874081338427304793875975464889378918336082340977517726466335807265626864380939275074235982247704037828884679905468343372202694930862691951612980563168328839800262538377415380200515925569225448015675153622233893752130680086109568782915184225616570710914972383287065543196855921858237200266820798062350838430499571333362570393066899600310091348765593693010504827559862494577525802892783032412327550700827112385276062119862959186770831167976870975950861860474706223410383713852679646624442961403154344882412644924614201586585181975859179692394822018221588824600972831359946015938471019092660016865716539919090989584300069853931522614568356688987378779684608941164100875552920277589240874046854713814373777841049238439681466352680485257998328437823828881613000537389051872836437363488221453650171282366786592047931188150317440841111103291803833913204896179876459897527362516874577660796291451242863275646294063100127568553392210475849492511387383272703395086479503792757294711899428959596870843779750374776711810285230284230395677557741218034714160968334361405358592183650534636653869858545548632960691622275843638438449125094403119824614183665801051376667215052154607609817312684284961639685923806565748477060524962712220518618276529362619401527948606376250369812948409872666270824576097527112479895678167842979030932445680689825391258021539791528642442234402659405706515977881236937897654963583037853717618765817906515088944953605412736197104075863534081479910700012061788453870434406641804062679740290408144551547727191863908259135212656491828223834075739681295182434601517461431748038792385783756074430240884161933658265348156341304133480973601986861979368616079893218253397811419546996453901619691512917096868223359801224733434222622123189409955699880698123857149982447773262457789565630151527641140703782487106581048464126614174371919992773878362535348984060874978172157984418786588192276825849256508992666364336927695895973666600514761454586592100699981307546141039719393328207521394261750935286865831991366027607735346864220249691037011804983657484522195900435217199155389350887236577355172697986678865139349272212977827298202113716371255877170499420806545863406541477253558504429623784718244589679919471888299351093872929969398900765769848514596892205625421699099186100775510391698017614359905960183277306094386284815131148277653699885799047313143418646427626849545595109550732717336692185858845140753987674234222387386044426604140436718604623611920270032525046316001592667748910523981037305402465003029247120083533196664691237848236458377919116288767028612845135720207862385036116810833263179329706871760673427632939372354526019172801868732655533509253724963052488885695850878118262986387610805167554691295895156737414162321217149455283082609740759415686855163196126180889427648605707569680454070186461721082016485951471294137758612938940013759196019333956337854682544655481872814471681655285182613976985419880568036178482900679178955616833144422507811764246227561302827521827752610165379726147156133754165297304388334652523580304664817653665885008469400007679423603006492130794620727199927475848965981783332551828425217259253977937531304409810458535382573393473058756761699933686588741002521594305507215847496686238862382645844339668727370794050001087173842797836557391924640235138582363014329462689433100959326455963986357517373619668598985858383969420942435377829276466084295020202663738829416157591803708532464304679595396824675135708736432833708772048219850672027624840780015265048195862612488958108084790949771876544607716752856436331114403510947427584861608967445026296756098206302526380669679929938882285792189053304801210656926807902887630592055479710377246476236851092165327756247149948836231820590805430778456403330003336648905823147757552347837539696215500895963359568220530725374147892963853019876257194433547632410929708192212160042722210986163863699581912785476676204058035049887982712335042152658802681058949237721069807602962747852208517052793562306410577303595157104757815433951716136130290954776732707929750971566096812205771246465519715111962809430353996608430637552920357865381459621027921440268730515075832443320960579164554139319417757829903236164950032898301274503192279446455909752405783035977947324443663989063628531643700113074977922705768657026742028711491529127301169750584356904900158334224312402443395769810240411576864048628955548178104527417373053652374228486965471951917804779839946761353678076205907248285405126254789517688564464783832618456566455149882053341297497149627722917894717985188140132222592666307081695447761736798997893861451017219516644304129022580749265320960484488548709957238273302180696077295348629003643563662403317392922552138824139991536950714361204290877008697888476015385221634866789477456305862671572880425202246383921064616823881011032465394215887633491493124747049301407534004322370261654910675298551547620419463258641872124637920581536742589833204979082540380787783668390524836274540332138257195095350887965283689223818270340962625235779472841169419974889465457814555831948190456147152129635528912919451319313508962334407007808633491890467566467252683154350130122870992202692935353280980834138742383734685277239651515723294486623806409085809680019678744397116913575309408085266576257635529745608191120726937502079072020207505366607246472794961429793067075449237572851430491363911868986065801311087444589796261032774478393371264511018539465375129584248401391858467439814937317171136454300968616282550874469011836763147998796200231238863513355197103987204689952844921089689745679565203388169151859557166163625406082700749100919235924967405781399216543129602258324410102501421173471610915894843275303654179598934836089287355515715678878658731712542938515205138672657378472602508155290775308609535570126456878333751819305615213689041361558871824943283290987524433071255989717742341698015631299679174198191885592237979933407081565978660601774238173049762951573700210698360766923250224150268442939264288459927669341656769803228137456487005740996964318606315586995263066057993885816045825459057866003022870192337923790052464786582955299606165830174058137830209645460780119422188681031923660986428516040079155109143044815856109482853763105912221698812898876259966303798920812535198834724288238306445450948493207929824791675995875769283605964461791710548034095676328465600663386441258084094669922844913986817576593651188840592144790399953819877577689091015305100273953104402974496663408063719308700505446929240850943682366881053880017010873255501659840005769138743643595503791624609960227677796494730814373828547269731291691653057387827925780338801679072880563871207785345420408831130544638398190291615080275243792260587856775447018314752672735983160781818624566807121595340648342735787455971539279903093896024948436842378803656843631703242496076202637071424769730121931361403651683840723943020667532617209478277900812567145961098555018393790183652688436782674183954223669224789836063583131400480705705325974841500384756417565142339574761096452333529444442916641246649334220770507635588631593502473274907030896889378546522350218518121727687299152904049845830450064381210989402995352563887178843441051820107597041157445980238453155726733842741187497337307173193868517132262331667121697559526052334808833497974087643246601330273806809161848409187071429302326043491690467036662602864551690552046216800573772879014291702597390939475811892911296193709581394237284303662008997131231735399889652577515300057834664913126076144060032469786196393323181187228866043002012146599022133237654058838218976841233683016857630091454369911862062945137227201030357060974187949267226780986834561855864951183569830531403360808175183117489526894901900963122078207700972442331060990396816784245199794098070152810156588114005853306354310722427729935562026647864080092198487510172195537785505773365519133511331612576745737069750687815165682822163158527897257459699115437182387984188414908458586295433809571257483878894831722914873672273246579235497585060320630481738641801620791440138172405409002887630215379284898614015369606416026875891485968238309962686565025532405365035722183540476765376590058318108913856924175634546868646896972382778934867170742748340278996621495895606080451481843789860260823641365049821955241083191988664422087242395787970648671632725820678330229989525071884752114301797884659879717074469517077232851773229997683041271059505411517607072744951532169259157354097413989747441379853224970703995470685330455713327028447940447066276569770449007192615287268058703972327542119392275907582921862317684415816770898202356354219154421768660652829484879045003357803795555525232233875429592770749499313841990867260539113337635637751367087561206631056007986583739484493105743222292777963062612516789448280895302535395165036156951949642612608296009853856885166673169406800332125503785625859038111690260767432173767755559172409433117232861663718029342360206190387231880646795468595686094707379974848313287752879384135911372581303091244436158878920061752460993911867332726422209249807719460750507992926375598825086699623001502439991224937853192988935662680779080090187925248607215379584617440516221460262128817634942771014637257381325203606976756357297477019699348430480568227313346480816797897227547442520847365123416766396729268528536135795411628804475603395969556262648016339822489266877336617280620262780047680144297802157884695071666086737529294429529812156546801103211509242253208936868706237216228317400671847744765197648178306777411572162217321468362275295753423639073359190217942206771765627175773325073587078298424417608007028379239256885167285719214577891916684810218829964666404938205493045773288297267351638331724821723074217674383187082158782376408110391225419152948490322606026996496068734856398551253375106971849869745301092540250398118798826110246204221418370934991059682961056168182605988327512754539269088920056561939849250022912877775188897483917135090603304807396970649927716022637633200089863248997602278727163792877765375748823088087484889577297972446017942603172757363987760700769303673459427489458580848124829598042256901419746525859375738346395398092556237205327672712677304703331433984100182497132427476495483088518877156064104594150259817270906905325527431308885709310632421333734614625766345360906328836689404544742238359716845960626344437268666190652295237753229171374760266983246439387916902523884496652047645323549185528955675520658726089410610506003881631925594278036418208950374180949668745989627317340859892904508519033638129569910696740416218288370928895899337447309440114396314732704251987347586611435084626724156101678042657646348358307146604747146199942418795562268469617946833311110425729552348023627804054950971168642122050072447003273239429783955235271651711452960756073669784099943004368882675039973167925943599181459401127294689098559475942074468844250530817273195066492937013275108624529907761155825121029834433716189483462002071430761003692263925643128470281653946387949370916130475563936343802790400595637196436627112945602071197574574911734807297932692745531128070380731318562143766307731393879554660716560379410187037867203278608811276146962438852140531959638127116893870313307669464467672306253749969713254422968413319382914712482201209522198589391035691034008457648039933317702081296720698959286650782252581280421618153255962958772903548513270958400499967059453929616556277218206771265476071485624766009152602807901674237041434930430374957380075348951325660243160350337314106571446460529604169153217382694151500359554108172651040725125120234924875508103507536756574178426253405332439073853142547598163678096207965203182500279334484921698548441635267783055906864250100901339815507614790294455018337130147128340377197631234806317847147988859998133549846955216225291499313779506442636422224336676049765411391216738886397828560564580170345849158511076829247581457456958314576407582463292785532910263524511312935490505678798468272295223934335728885374934647803322718661751677981435166363902470811383480623861303125496075938644331452683223832012069379028185214562611342173037457255086675641720465714638450735132950326939569677712386295307572885978748609684674509695510604034808483915592132629814514970122546398459383164603760067803760467851088454158420152828872433693710195346910691334489719034017350931003418313789803032049384100756940500306264972979564155982443588941362090269746894877092709995605738401521013863596529701678940769381660360932770052294913358992685605291212278714078988728566565195354513709018650362738120526245214582553427233151138800219161901364637306505988902855386157516152322995116347822898354913791102127055962699491268996370501320394129916831596178870738061602859107658038027839951833456961164027542563508005589460519961223677177504381091062115415522286295812690676736037985484232506736297263770337673313030499325845174124846392383452483708219582276554817540084108538826077097305783852089846427226912537483303507817395225173794570171431065422235159243772613668757036226657949690491002990893869644382592206648784642749069197941001290124300351302491998457348438726499264391407542319566863014862638455347997066101220759061772743844202147980110616104976195471003754793819860386799093890416024823297844035190269262897549582152194267445231155537895263177510794494736509201673566733291852786410315540006013243079124115492669608472011429538544712125172996941047253762660004665915892019655093843548874352703852435353576811208087853583646771400053328966460364824069940544331509488402840757773931005441395777104236762395466953480682330562426195105176035372627373583407425892653023774281291266305774531130442639014598208822396201420690611833186119087385478291692908740117520537455211228877968564679073895386920484157926769946915615286993188436148993818308166939837051287460309492802617021649346179880660215389819843238489539488921726742423074738392855981015819253112463095926104986041095702717885089046680745619685040649770655756823736046646902992884524683310433031529775449108442584359733354611122612756495826372076003642179479290827099381105368152732568324357154077283828889231781647216565952492269069908764291869981215944485641903494683239910550501262218434556482028290647001654433506197240198197502746451694868727512767362476248092133984982132134670773396845646024825530156451556172429043850789436030877681571875393979328962478778092083929051287641533342675400486315840171316291132008685400531085782123481879093673047596507505325094229183934694172350876330613861887892670349984453393737035220783555152384301402332015900426838569524047538759080395778132199465125447676678725565591496595361835686544893658978600060547902956429157193995657791007123146157295120692901633501988074588086450239596160259089266543926023924550080744347138141493658046854550957379749753389423841576007598030624241625760430721791078161769450406057382262129939050772736434245738892250292445308982179408876084197734762690883439964032312933386358458090650541281597808899084123298853384680017954271777341366619247145916920501349153371304698069850215758668649987846900955822789324183519908560679061651944731643753563766748075256739441915602403035494756880522223815900387903644611898935895047013695260190820994010510068851248367187486524925022675789993509500531538213579119163101716005213085620384273560385037098899050572619717277191811079431157033303135629927109727858066149862874792791001637061629718829991111551211926652578572721137513027832978538036665761775453766118955326081165994695663678366540019261617840433955661376208236949333830172465974634784867793239685723519592452099179305365768479739878475041173348321934230356845305570810150799026704639342891143224536940820098311422049709778690190605491876442854711051642563486144481073908135509162557965901764328831841585671035858321899271419095409204755477403731926713962526044345663873454134414694704463181912626187810562363358301267785021988491494684940090711154510130184637131336129111835490637210899884750418565971235482207034259386246380633465373575166180139131597073666147691278965064898621700571527535096314338531309889875949640448472729410270709863344754237244969162913365221167222797464871897710299868794319144006356971119620948308448058798985744215908093726493044475123718803181228317697256698373569322864525308815860949928849400465291048877934047218716350891861976489073373472259853276318254083420020019692819334823805433904820959086384304474048356942314452443381526764601581096101801432501898615014879759000523957561623333788470924190448566543810406798000323933515160388934841263470051281786643113324882845214271843606256870553107032661553607976500541150493991184869561616988723511328820733624391171555378434869743814560010030637074454697511440443408544560769546880859150148769706339431613037903634116148418678730976530858191695267163347942919119629459319342841770789479761759276694706104811492368172294614320755660035660766696351723098434656917703636893085312090763756214535276843980039184886894831464063612648590634980531331120594239221898090157229042088746458447200933193280514716109384182351188545171963517336725269829258385222548378438077628615102084083988415612385370202888279062684245207981536247326064790010062147529999746742477599245983997740386607034741919015532823445422384575567138811032372498132509847549755022369944304193718616012502420713466014968823749912491293715296415003041984000256276154804536245006142513221120864943535447890220334298820634823917135050716198633728817658814511492773218735502598891107128569064430343105601324025432450566300360702254649301856057315294129070655328529752424910071016744903427146012280009371301369937820243363602353635597977728624749779939710212137160548089420604936773525819468643292738308726674789597288146081037320159968613348359330513870447307082449514143339815940619918701606971235918648446052649509296326699762639947198231000594408294389221777911989608451992482749884265161752634246042684745757838775152626723837888774361700142659536870312635977621068208635417547890178076624784329552930143357755298239380154321277430934808633169965442631275447294080306181572264486062890951917405798534314101515134117256426519093749711810489321252976578857410421504851131680026359653806900882063288486434674489364730175492916775861248087728428615825756886889045552899853531432737026522752281481514441078256530985099680767506228197351321808668779675448830487848045649488544679137566179224883643881087005277646541439098958395158732921319723984139220913578315742340783304549067860780927174479270444919942826111235672666460031935913429036497204946128989720164922853542648990733290890449103274532850946463100291939936457916258367087372181280300769712633552760731786892479494439214704881571077209216528865548646361713080015951820587711193701418577800963016821078905824852014003426344655724911902296201711049035031747394866491582159188881231619322310944585455989164148836138646112654598799416452101789240921304824164845185550718250093133857312993039022695747530254614455451426575041987546873907194334245910199637462186747990547876580051187356960729122127882127128663416919275843685173852973211917606935139840993289850664134633970331182620151321522894736224558446961697359714254846678396986737884253922405069830144919196477523085072880675210406633439098765936524159545416094402666902936287028675840250722809255956525714486209703014115208988445593504972848661107810164407075718794764601734487789674630044460965015306699925397853525509330095344855802157425308254543080292300015947061660105300946218527797923648191778255643850275879638009666553247287553968500585294982968848307258939738369074544759195450670985417509831533017962598771262011793760046337416249366792309836695154891116634583759306714549919638082787674553546433378974728256313561634440642109478406639466162395848731525674125627137185153153241838407056625301781333865627356744937913448587117605694926108638681487444758978732523559563070175426659785419347801091134412167432544304775994396897166794672134869309511644602401915937317261542357764594527189936725307601391910537043006659084487872131310573987361751079014011009978453962322423626295257168066054354914462697326359656444847514038901959717780191000024811926364083132058031760808781038697783727201124643596970981568062583904034362182283785359470829982782554814588751122305478774840309749088877562882169441651027505045598656119539787143432148836969520811294889541904218545434012008634983927185378560503543706756835227536356494538965574458836990389939810195247007625496057098629483034509094599831499239615805545627897651891140326722917393205739486233164788232596822575222283142948491556659959698512813346342236349688252259717364216941140851054418368861463786676265505309676692475835442316093610482238824142352972692597029806370363623023813291378093790856783762384188654025049284507633606299576467655025587465080126816391490410816272429370759525376634874639422619630788203203213562379299084878037887944191775373908290520271096846479527723804300004790334527128656933434784482449569634480989207876275769636409773896244056390255762096453486041543798510357901420251117114402594017070998214807843945767354681372603630968023485469562542310198522205171964145473574454309339794221624826765540326060616889523544937728620782219646723905233010047039494669061184374007495650164375260885684020804306940022511173190692435119611218956631958397641255724884058989043376062112484847115010568529143221659833749243018256806572734614313761329261878968365989853098442496132056824781965379427439733575624546232412481566779801675235420095845015654260175135430898418202320825039050574955205214526938933644321807594012279498131091759488982536199225689229975694335319984701376403203269815579857998863505652506088934564702140945670444769804090463749236195664555344244698083046761848677478427054099559358929868963373128440839822789275955579740203423789689852105788891466493636649058496096650258892374115100124907154438793571943100369068664607257646165855514670422243213439460549228949541362761837404211341539342803107244067885865475626425773882558149792547030836461295566063693982937074940178448370124820984356792270474798458532910161591266349388955449340947726398833992433143202151727437708739980154808808212479979871440125247417481472674978856269545189098092214909996572702100273295043066164196798868490844238670392064111626093040456257082166397421893973850554547328013221749901196421727851751223711654792979276492230379022974237658390748291121556550273942176539752312900623622224651870880883199984952432525174837459786410741121822619957758426759811190840461463431966388923508320877225457260873975723260182634893923231415110879526259503175005683835345949873495450059202359727662100222209034237539537163852657065814404694239687470774055976991139798901893665891579779382679070822051479247788777131044097865191199285557714273950885598594662076499439183839808745464819456887392189328152478575264042110872766687823251911681604686609926526478284365281745948790446023352638932442065056377998036707290167324764236208631017356792634751884649888740106981182763150764537251932857492928375787967618212875060541521523382874252266568853757388940117147016568988162932387092119871461804761597063925798167683934460867115710720409498155207796157269130872394713333280270414748073907767999111176170603944763984416832049775327988073054445410253243840496707667064520230844591307969020726517941382217851202137031508220201542047518960786894344173749342416812600483564055553250686530897993893514087776656713801260149879724009598980235997751203729598413831699511560632715777571841679427248299675148871413650749839142219314245505658252350191806798904548610700243342938075650353437582522460533402501903574845611365215784786153980185210803620132450129850440851820706324528398788430680257308592754249446731870719264874136695136628556676948024538075556399080359255054567217152302725038644433799121317029926063730210131415003535067014096914023315927532631653251831061198618895074697020684261313775501423483512729119723428315450730958634435895208303983997056245015811688809041356303005515960518864012728461815690395144586426022131443518997041087763499813238297558062312841822390909450866767942300917933713602916837038525491726960912911141600461889382535655566772867726422791021208940495164075169662590471325538991302707322135226906899899085150236052970747355855282337920391831694661926413986250947048132751264220246450574003931706721450665837648147075429560113496549524186164068317510410784444652048977369050271064181704052749068792427280928522381431004656318204673406226444202420911998443691671087242256560344867136774228361348528964702555387623966539508375574560835002078431479815568638553371323673356513969659355643228656820781484176504557521040312641135472788267639206732579033107496064356193582494255962263580999176101335670600080141659231563741856526934413925543922840824054870684286950314728832729551745106420854586229241245932448012039260515208690647344769519645951170397194081691030160147057345704486386252309668265365487529238485124560025875271362590230574751487808779583388113166400979952304624643851978638730243697857556473401467661612475264302989092491498997669214969372391585578258984450784109407624950571669325011096204785028816005452142793759514932274088110589873411878401859393255539709865289343767184915673009919814749235550396439024538474824563774243296935533120953101636084494832060125288199923829219231032326981421359117665590454374695721342398189760151851522157265569888224432912227137422912136009754034611489778832436133617692644867215990880801918792051911376939164857517114205160723916740081361705018437694146376421190194648363168454334736768779030430548113918874179194704693330282694312895631646570009634174346896913097087822402038267385229580492702645096212051973011016123674672429610993578866707228749256633574329506604749121279505529008240064760841218728218046265428417595811617585014995060487298868977105247183529177663845450993293158740402131834873067787965727433834276038669620672945143526546491901378340370362370508732509676897514261833186917559205813354325256919200696266938218882767547450085088941661141724850073018170567258440876067746204566598520748389149583790777360383652810877309394472586002814425231610411448337772059457169937829282134287836556142805818046537505254964589436287670912149641787687251959309071311135952361346688572133826302062875487043357042617986613284953424222902178050776250525302883347293512634046910970795390256456763688420365070497086869842426673482731433250567520520022788698888068510831339344623700791838572424835320416148399291634774192000508312337369622824256230836672826894796112669133408458598596442715136583143280447201085306860841117347571831097730816512415597791417815066972708187095391145859364398192152618803485508466494086182305678386264867769128732419255670969246833406147354113968732387531014310608180877871527914548937267227339266826651163294653046624203066222686175041610604467578594707776937972777013357088898345535229518426077673341756846430880272975731963581462311518575933457065030664225132716489711544598180052339215715648366670501001199370620505871950446787093349231788010637417834156405375710429846563984043283729486226126155790682740868321545853868954782114684716345921493286951368844810389123353539387184229636074198483511458795898621632777997568195441277256902095965954298573721755152252261888099891893743171491143986418036535096177290949743528636911536240424397154321440945367222330415619142503440982846093245206798411509516013755477106746463604559805675077425376946816148419513619824337496542284166473001928678033794697968463212633157525315878731193759095702719218347303833977972401076937485450707357524414641459533120938206662034382914603976673926376720284880666439901470336449384109737947230850081629116442789417053173251900158028750370424284536702426095002117785205023935418261589125557798716161707389136966768864356493244044879654657047210653508482385866913984372259687872944151616959874170284607992657723708847852144199877656336622921895813486481513891085709843187084971815460564074233330710471792981313120867892781851460715532284696138872942769190212264095898469915391579291640817930298849045405462570362671750655725543005339565391541442152729097645173557237107875130239848095674669991395650800698543142414707252059363927439782204775283129515953208212635394132550299977220025469915743158125247979850191167414784227425462643608968925416423385287663687777171105824893890327178292278177838416143996478279074421604814234684317140051046454891655258853836536370037762529891574561465418689773621649137507935950659007284820415850272181414108245253163628003921198619634139070628474303892013389271150309503236630499523628003266174448741747734164848515668000758682008988791775005153655742468411571221622730422437724224544327133154338298223562717171833540807492219789507290774479878870742105859557440932957318604941520472473039933548300672713610874524820688321108984651170901904471719652862482133402111239620634010170173215566589941970909381498224269888922473938786853320172610642984766452414772106839787128354039070403430569852407063144977894877398433830671155637948938571432680582447433841864174840661195920371548739069246137993284027177983157793086118137616816786841505680470112317233818496187359738370115891042537133090336826977916598211742459586642343674181795115342175086356441996883448742013287074346424294142999913983531380429110863805762129092026782166971034115220920044854768853447179856894820951854130399014362624293639905092712451269987554975018188547934669785654838898188399731222928713381179612142416531378722801581732503196397921288996524820030552338452757111769362956477820072907484411584716334488135788971019952088799080470302706301387508174386151143704267248704542138421529107999297926083511941982435749900422982954527511235631692692845585325802159956447124998643912615369912697498902727503820410878680228524889716289790135903062894988457645850578985893737557973917069993852096024714882448972528211199338850453258688411574242952679512867645805716987610452116352375772517319128215351295285900696208478411856381631916615080405188175517734695692499383718459016254429071240693083314849885560821011964356073364184905302430392167782248010151913047003121872852326625356269559427803911771530883312754893265531863698979843789616717440845032712495718625636752911754967545096455181282492009970133403090608504968378441073065347853858518336303227577038677788631204484027012624468705066112771920556258894770792976364290965991471786429258184769996794693375649951145272465656727571776003437478357508212905848858943127704961649900473092397308774558105618835621080842762356944631481556776625421880810224695043806162580547443678565758048512501242223947259304131186580929375300633861987425822379969526500168958854589339547160906891360228743880337072985144496852408334171657249769705156023262759878525536163456248693346891005243278327188256156778053736314711500083773010877067677671303648776216104198346398461103791727081585510383111599151149335084735370817066141877581339815454332651787429248825075595488755467678944665367681669914103053324492599551242866691910596002581175533153090116493106704343861388471158693056661768585381134234549754088879040807827878772239006809060281185730397354247073846536989782736940721140090700220097123242352296082938487480911940186061685056415367874955368697239373125296395102713859343226070083833287912875064453201506517012747855534628999737897160643846076506269886231380200923755348941350426159857459899770391362712638605585476104450747389940830290533738275466481079527409133639283746543614576503405653409106177704639681577890216154259917116196293683543531085038644202374673141700383597278417785001501458166850081956306473193171680408294696306795332398498164514687087046190387507294123041792135487412578326271430530586729523491043610858051909624163758909186772529946661960827621865957739503137861707381022112529023353940819624358364639333654900591881720131330203023698831233524612292327044881943230601959907714806438296505488127381663559195110391435373113145593662555173001847040288266530870161922654104500312700483056046252990398435979404511394231522742005704457098915253981173539426665561416600773842270154239582340807556720919566960954932785017342701950864380520687817099557476292397326768351272170902239625602027635218996392312890173158754350225572100205257226721676195895768465482210610533867550464859864451953442007361407440930367920678482824023948706798138761042676624596688132319683399753277881618931592317501314762419946718015645754549084483236044999215373883057015642538713718303271682711220559604051756322763692872094057153701149639342218566200114900120082931750961160902361814875382575575671927248735015606469384658888726628702260184914623674203871492611496568696756712005883643370739322529110491266491221991756347530679848974039811916556630741691545449104790507390303995387177153511077279561177658622359753960403970675137788106244483780722275397756018480142923664511318801144134654765181803603561230576962591465840812780823053102589307671795106874271585959885189894690787706167856622737066619802615727111604817173680362019886790150593601193007481996205859549910258646970685130582326961680079951472311494064751774318810446573022651467471471650247456470076258841916392283542407986820333787342756092389227628532874400153748448328698491261735505208889853544598058038234207473715116814367257508739303811763588094248334386704716837420572558872999104652551353651108388761697245915463601418774821410314771113852147218211914930483864810098307899488348617982622443224840749513912094836907864341349243658950017509606990296510150782244029202546568130921987950841842139688419805382574490643668855763032610468066366093117603398474129877591271767545152882768506111730222382444543871077715053794830184347673114469197343334631315035783804603111516894032568821189153832946874145410535795335599109293983579248066799338494830421189025599414944793737966985515912887035018319169115818507835809278089681991230711103164313567694684289909746934588599395137395556815985273074406954546251972506964486116349401995905052442854836074060120503123343398624477162540460112488428135722308441116309404732514433472051742947315018085922680845545106495690328113343869195361745973200123978807177836681380989714414101810971695940082363138633473497576528461826006739729115303636264591896023412754898715702866979031758708801288283942072898357590889822531673857173110136232927054114985791993074478147820395391959099771917820191568002634321439580595765195866072595589801082839769607570655442373318258718516138996983754655649957068992794514646208954498967796318468033453116669770065116035935130515837344208974330322733927210530313781751465774172658111511193176319734363904180691730646213385821692097819003988255701519963828271925458396034729395501634226894491258884852276005927803035648179696560242761634253642073494424622853625115945874314842962039166824989178701116532941547705542623216381451147469592436610987776005607950581951292545062259942198030707361414321480563405216888814058722043282034660341995487053442050949895762788910248635227850318852967404914734330249916795912443637755705090476654508936347364340861472344647131185077743003220117541825434903506330699454312599493001573921110904226314323407703394635873975238884893346343515625072669957904829012463442863395006523268113861384348520465481837086552282563793027831913278569243054692428509065433854161978976759939159033900172522885762847836629076026555643034661433943406796659274871162275709079215443405068427730440455890659146942414549449668195415600004353817674112495727560132968958822911235549364583428120832522082611964497551457065577646056207990769772961809468818445109360114332073533065438959375867595326705293895472062067861336780039317449554365399516008832665044557741818904827505343536600490972579681008787051809713272262639453778075940523743842735075797938948261536509373986322954174762917901857249785144019114059256812440534827475847451684658979115975167928378874004689394434299388430260897402497163153419237438627479731689848408230894751351671201425190372577280482444625275605902855932423441654708109168951671442258741365727688080828620108252980038810946782591017089541459820840349689677106001027184480460870581462542223170215539182862050496521814125973523628411067261018040649372601045694940798041743744505215897131823653347794880903395436245072627477237625114504186196699524372541089343908561682573894543285088620050636624428339931734354150605859016901616072266076656229417525844585164652244620842718335543985781990924473528702386131580691851719265102021658505007806984544351786151200220247948908073180165695677508732888538856344488331149110214104637073197419458915834771200172800769620394148577567370692508495059308618447790797062646467756710325042302485142396902136252590513136433698722116135275045278029298389181086446267022462581173688218194784489306327984274785225950589716627184843243065386060263755234138209786536554782152947909781648739844197841542670066568132960430907290141824328383918062317220953002874437295770852467285006872978633506496863076442443621032139778895595441693235478040224072751565102545457205907274133060553594738658002281487897140296161059635134447094481614347608655758842866300259821841177867213439180108421846910602016711931591092876576568583929781247094337507738093834399837526870723181923197196605779731816688125130587623527112239800001972095881208710408010822222758520124016665207655150771072335189075854566682009779614339609978976722735860909266850427350825900193722707572540521012102334975925246408492580582435311745991655093969811906704543451240316161580061775011026894130630224504998586777577628417854253029971204299729282194130100652035553972052000271879330652696860428156400528065151917021600013372603630491163443736546096160638903129134545476040278611694606923011107934951044118345427730370154259078733117971242707916333121351806422559864509503257804854920886136222260014813607681482056506278840999848490742928612541972382870300324319182704361492783163837631249451955787157143070554311639118450516413474596557280055209954361003269711781548731648424410986369731477861948282785571510014817847776460866607693819391278093002687811022249670332788927706221741276906050448931842333439517052258741124291555642185207862777412010406587221544606953218784012867732083957571092057839481839318437880221852947814953861493602097354809921982075418149440633778786121432735069321191045008233955876825027933069713409730636612226005408938546543808732581400414079178089021006185296650722005287523563173687279848260035734234876477629349710325812952008947639812667936548833771798903810134989493688226436339098557084004954048073602511766079471894537510662760882261847082204715133480006757700300653411243497632177783273784901013179647763332685712430485252718851258578558913408467794690428878798073515710557816225705670852675799755131713043698500452543673007228401332592251480237083791425347657627992989027432085012760328794638639301351340768332650719996284675206623571729076915937096325381290102189328137280686412091912849034285650997786917023890291025023079346154126592227715388926371391757765483790593861375378337467737344636898199098997282194417550748580947132363466527688171121927663764739155277684736395823127315554764730960663229883638683423719570664295857526419486047915055943350785377581886558992899437733629635923085867392448200511733732199618832575528845584755692004587306870925595377699776271531322119057489979151775568217742801009535783222340728439887827810244919843899484445635838223650989965986108708278475530241235021525134309222711382859564212367448857507097324874550975984760193011552027456741647532224648530641834263368367768598816824341614005568451221833379705561617017184364198594306225016383709665841854688640769408506536196464140407888743572989074169111473475388997585790382607540751004269695858273920183171536228889069361463103957172982147838845990040641121998679663338849469472371162963081788291556435069488894569092278627631085849211434316732308077139876913513670820510751586844558274962236918417467700529631156874241938933212299975309198522884491650234887519300653337705661283982173929306424771022393320199853224465453170974973532645270783421794758724774148112607704079444127518982445493734786092362894106989280233366768536064182801803834232270049215502598479544293260757793476268962789600716786773035936258074043708012917685312907672447289462256729901330466335881323764064725827312795776912628637203019754374516404418355930637482718504232337508370945597689950503072638959706175946705832091688334862653232494413636134805844620868599265287031927005383493942985631939677683958899990729472160799973052159759649361693093335789946238883638194180874631768422216018545768934136217547719544314243036235416706427503486464047509175011770614947822663949241745080629388051110999313788891165513895017672588816479788113980192907992441914240031203590363480955035136887894995225545493473580043065497707673514322228896629067360367522304145045695384767853274498961269037670333084396491021371606247223282610850389577916916183379479450301210908337045370770379269092897522493248268179348093293532207829907527240847873239128486018648991206426272812888814290287049309611598485186146613194046003539786333617551889948325805089183212759780966817918738143650991211156495757132815463996203050243282664016618388320048392547454339901797086817079248952310544464689903872655412957695604866615361215871163104284992504339326705998317506789248869219702259126068797511657914657241735268630456173013022748260370972502236589804639408530013615153205913906818389756471701110031751232098630323928848360722296246904213190848011016257564612160957770271069429442927026399824515699256445094897823105981823977877676005066741613377798953622383402338477380313593429974699440256839098828498350932755078929845982309673063445341681637243783012925839682186211651754946428277426730929710211720781357361135491073801296154849558401394278221612408737286277361006076672882869815590927394239509795111669106334531740764251508901916207178915827709254398807548869521014625521482608373432464458173378414966697546523876998885468741404775654646661265725835504806559391221457276290791036622810343162324270834866052722183492341595219453829776550658334704096475121524901416240885303398740251865112044935306863784699355707758378349498091370921794572877005663986347474258093358658231667065650822925536779499503603019540574812583386362886713088788900511634720209122693988136825949708421103615311337108193198115403048841368228436633222950670355373461354190602804692301890856975475649094289591482066096714994648249594613181964041591155354690387575401679866198398849796427648558494195326548745008442742447424139117871947978579339355528294867452353741427596694648177923133407429089426122713306197055383640065859457128026542207936840830951616870963604146023694470658075080970122960982087872329262210387891478431216532591766719886316454544250235452284736336337151968883908353941252614645677092801579611661859385439682338579558158592284746335391018340459969269796721842889026332722056447232664309249561243598877661144260370175009670983208906674172578206748964953040336759661111206482501908862324750050237298571186701685205382833958281513319670612998210405976593644397224592694589267750748255052819054715931519163034477490885592028875470582066406345769376974196126176791367309255890827115237919066865081346586897528856876388952270667125238106241830560712002799283746791074677303446195660565964460703861721234237702105094777154013101845096162416943691624677682954498718420280428150862398709490181965412408214870745712755711982784781175463790193127876505240873208908845203798587501687223484024847769071858058651973692288855883040674367964131053066877559237455139287820007900919738066515467612893712731357641715508625158578790770683821482967952655678098023663123225197325182375104850499754800819541200223618647014268707918249180982347468320918820804237768027362679136632341486256321870995760207342209903306009357347073673882239897804232882724179817492411585186540396610450607894908269668386152954975956059748731309347464821559710898221300021989053966940881093185624848717346194512117777471671707486338111524744084959884577569354986099449497033446429709459933505489989833268631384600573660916804564064963201366813321552559016791066968436950809925375587827576534106969987617620010822460396062507422254020644487350681481785627238772709628754864740846311164556333607495291709166790194772331232625732747890220954284464489346872662860410097978316520299776803237540289287819660177962234010560834555114968697268744814600642571048753782795015147817838571145756988464596614192786085881645171831739426125739925094274388009970763882068253479297002087902645524720726443585106333490703220030407266761821350582746830571106067828039506748011447050743465298853510245250592289180687526384098968945025052914685223012542385344090621911219452637652777071464507678886977980275076690122138429928749376545541338891982700678708467774521396821944964131905549792154023125189625967495131953995666209806900233634127075498675889902523005946374586827933404181219075751886821081900590720018822207511895778856617966770355412720539505584671178144780942022096212439999479953810064527692729212577442671608403853811794531031952914318133829166501894221016123454466695426467738473973735629057834647288057755279930401682511764998051558334493765739658198206055885972202785343591957550026679019260878414607517334191099197480912598929069397003774758334555050240260678192908801405907878088903824784216994454936808884154831587148951979296742782641100575743566583351511861385639479622853633181598235559205010124714515415194811629771353602249870688555124249116905072484678856063950204719006885015325759727968020121483700551118727727586479180987599079372087051250253273863188406083619094761394510184610289569183473508900434885074659875492913987744179927029932338198999141869703050098963866857652147975395724633063813386942665456974739039381110195536399699779302267616523160941643780691582728028497386839914383001172318913788822119289325112415383040621695285512677398861740560251047080204963656685148429338472902989042245069579838468804070036158025408803009164259188711021606018770096924900875724791972856173560112444094711613559128506464221617445832578133520121205018479807822687893989113810749486028388717698314231722461973548517779452436018359311956721054371193501808588927727299148859414333880480867465778058301114859038337109722760151186585558398241803931555211831673238890516459218919119477375856524676976610397775066942953165890072998579180933746117765437601929603234909987725407672421010492005190558758231220892361048465820875562193670908727359540984340074565157788476999838755503932666077040822783947904541151459984698075016285640462322995716161128878142989622183101607736120304618375245954093711018500623776650840844355360560722935089839791890707063001809522263458822620547623176490929228425282078466840933371880411405412763814432501102306111699999877717519829391267474164802666957678499220000573735807260381127309438413981532494266304843789535864715471332090275879972345236932918932177419603794444073216974507767617187350183103923248263553844995283051541921761343684016428594276668135904645402093820341798436683116678999522382657302864856850926429249764434724706202828172752105143627836716007401756414247278335306601157161858743605776508736895496022431615025618128625853387043991508163496087321081612896235617372987733146196544659940109576805810236277872614512435191112894026574240283310119301689996841593424224721005910783161214428928706991096121234929323677237574240890274246127018624047695253099224111115658087515896545721240918243212917940272826750278015564909461278788493288088186926830910935661542932205154736258635415194750363971103296720408551873513141034874181925432431449332043982312979435147719389848410120958338476338463465941224205182128318418820381620916778531125843576132678647122318060345219384479104117383180367099200622681587925754726036198376215724604911118888583006464533483854875189016164725979345430632448964832327434581324235347573049722528314561749946893170359794251747987044278901614475053279480103795294459540759988357825089940696761784153234488618713949149289672954288097511819809076371619475314959270820767294613517552275257402197739959334223799874274543442480663038050420639232025103637459049989072871329081924316988737430158692489265523678415985512145092750928642646215673505769029757032691673932262764848610737976834218403190855462233959721155942113549412390054295068029390335110496079707706879567003379045773029129458605837549266745577695158880403378906068476817811416337663238283236967583253929370884616756671886406990070646777397665406051147037637763174039609905182183695964703227669251929365588532101643682997361892416392303573047050519685486857538246388689539288587702183095119708148298390808213641681962800212934895730149330279670731471442627305498628935640037486780146225142959322755474658254914408836694520089539663498633462980558111789175753412130792036490881810395589406833261155648961619112506760806087881403474561527965893009916963492338490372129932702347345580234131078001373120415450695526656879335960040946966074700460635518487382154216154959090437218247365303550992972645436613980091153913859782960617733003564852528787157656780326207204629401952248209560212883545033795956722091859576049001547126404014661438431478566416854989527298415504161145616581938056969000412171483416343054788146631489797882459668875188870574891395777639497034255638403500048487266134108369572332070844023664442346678809824043240642362944488942264167032916624766716724604147196997686343303770362550645301767742896760012305411204625071696484085713144565082529427010987033670592842641485806838349077605603095813810109621555972252630051869973989022306625276116494513794197386912419432605403738800666590461877750504856919206501289951462262260416264091813740416063989105092093435900090632451672640284446930714895850983539924971975941559937758102203358184021391080511954049433074449250397192044157858440144723020972105736768090221521350029178190244529748913481545083632490583234428176834641425314280365659640729706030691912144610578350581433746423907971759585986168305746087936915573155705888520635403460448886850797857861822046030156831261523875691432626725395021450594807061636709054534210069314443984327902115646315107178018601122156264421179798336245336723386831015028613748670057465886699574815623681040399848168370891572719891184957443540603007159882833855524082759309421560125349213632528891327725942344037804682766867015700076231270594999813012467131412987216098716056057655762666263885849322036607490332009822415117119672108247903662280444749353387748014390038643764899061573403053263253639320904666252963360738915278762693178606020900443080418212855668037600469316316443966472560270949771366111868890365121389537159719317517772981367741724462639573728229445666931733472063509599405657241404475252891542542879963376591039084309172336994011808740784211992547338391839652897820503677955832624602871864082469086352123956333343469807754065690003764898244282678484103020784953856321175698457037850517683860037511309219882734630992151668887881547664458959947641869840436058709931724293971010200705210467686023061615230690040504248877087412871241862437426712748245339668514873794186845217565546743130887224709096333441071152461457193813966360502834658109829679347298915401922534528000356873029518537869589596281567320476729242087854443636754661952237277415949428794764756017696078774419357212221325503380163754346668259601398641198234581256099518564853698777739642092964827227589567405527999576101192819329495076695091493712749843600821089071429066201685138453355278082818447201565585291218393588174670081548695166375579817863551934119856060198045887313703369572793061108741822032713721666218348969431811481891954054653919695941204826063479406989095622665234970228536925336318412080507048384605846205275970858865867261330899236283621570042647320970303728246319675190567757907392434834934406022844770668953732579139640493258868831341002069951293835079051160569982696851332438484722716182599221130890704741402341854810757184272256888769937883086421279174353278003117145018092274931575237596601034057203912242704553917327558420193334989538441999116390786963126319602149853478326514264333359425074266500742640581643166952808282572870347936744467410715196090363656129932167827753366265238792529302081753579158437698843934796764802289814578785524820688813426566405071757834184938572391985303563632951237603211352097535757862485978920863286528139384395873196507024508734159030648208892822745925627718229506782463155892127977376595450737961866624696338010671474942308016499032201739305723715331211809169274753966903818425681251821010187045476566978154145948796362613473943746606831126794222437247199080137590973022284511001276084304557418042219729320415536730013888137518834896114594954481485794652696968900507000079783198340650280906711096430131443649525000286019634438008123701159146690989081502559531211013499508919095336589844100312268621650475387835954371318456489937302357966837758104539219195442593143398811632357023820197681075708688059996686125322865846607626825413335100823626135739651374581301645545825753574464460159091532858293206539506768571426121189329170156583377697117358306184147983987563847499693472121782956371765839121829610452369097010280398615486411277160890086806451509630155141027448882255958675959322127486327019858569304661561296408110387411090450969751047286587709775919568637781001688478572267168001726221686716911202231259822400481795895191137024900384369066418546642336762838649554608081722693796126184272488869993617057812998331571213878727659168918380108164892272444025076965731310814907861039812225912292202295277900846251887623213490208037695124160927130963520648016120009079886156882949812198163073193301829818189141145356668019546727064204301359498113147400260713946362251151486245463095911165275286039446931103805879460178558235963377031987650235645733592078216988043581037823012201341045006408259741751317937995643609536615791232277222906239261542193508825916768034210540890852309993378533202883589917156551339961069878825774710989358347023819663205850452330784249808638518335001272119451972106812876077589653958572773916270827069926948801609169726297179279421054392668188524819045567951361033257433868115401661158955158772657610391348254056585778903791550435951494987441439314054665105032381519936206728671733043055222693998966271375010110883498673201903933962877546916585496737418538862037449503605012957179028522050014279111405653740154980900308373721253744054711937882438063090971340387959239768076012125622554927895561415027560028402834793122935607391878170988627529859259836145754416402341810660730906792454145447827906073631279218010187118759410778436341405677250409886200433823023141403116569579055015591375620925712182466071013837130942578761605774855499281981197018255882723391179342443002893921844252786267754150494602426368642579052650596962133282612076149174101043399346994535761981831315735289295436910745954770473106765701315121966509439505219804558887439131900481186224832158029174138876003951479456937209701775160820100542709907804951925988235944348991406839435015342953752248073629292341798330035278303965709195604910976277613602227907480956217389957894233746813125144390358579344886939052564465498984273608362591399270798675093782227853056618924742746347895530798560394598606584555655762968939844510106498449497894838581268077688102073344272886570958707857854265485593016508982143175356913428610345587210005593643244269336658142975679127336482113874043243703373520192780112254752849186616738667204082674179803952851797604044529791653207467273357489002167647387042258549577767206159289575818260681313509927666411398859436248462676185907130577181808775173988946442133235090027974799791510367243407088754217921290539069825214002151058586780814236003784032484310770246412393550068643977675707369543621992313278826160927515594553716676135323164271115700603883347262186231532069195514411477162840249314975818484799235879121219930376247749094770389822069824346778794371921830401203171182820736389683656680144279804428669815062205074969818778410463866379890351153963444844715273979475896587856908060703122688599148826436257335145196744411855825522681438320661136003675806631903889361138525054166063394038416056278180246094712387210922459449452879408807941393156842258639770003676393297235261793732488338786114916597119566017060472167106315641537264301069333623326947713375253955746503263553609911392174427045168142658411586803102303956493706186549845557677718489598369614026171926061881301446740555321585118153829882023382689848753881725508701186870371869313639891714886432377113086696280427754257441199782144774975425986104058961465370449885796835781508259667015854450064138453997657770439498696797279226296109949078753195477754308337105294767225324175727862259111113506151263620461474692892303342069484945661565316779751866196430543197228874568854923699780504101399853953618694489955482835754369964150761103577476114410979122754942808830169415952640390232316937214180284483908502873369018420677129232993746575408932436578435145000038481423818043144111969895532776623825127214537012398152933066012586911781201213131445593942671938627748000961027574842661065095249440970637355753016245790120107827955090972119005232652734094264781861689460031038610260249599642911198559369059201496635240055303555273709980936921940519496486440272344594038472813679116811663547592401321997308076925165095812590085989980440998770905252751532054953937859294347066864500978757503794282536426929803407089031631885465720838722190486259358834751314038813129786433273386009919504714710646214941655269304776202262588816532847926493401090455594301914569791085009034688502529153092710552820203678513284640997739358518831140324245765185286361019923663544449095827073013135341290628972576365930859115447313121360864115038956452615597009031166753093185178402494654753729610037644045699530932793529525084656392638636718264631396798319347255203857814283042478863377359941301797782251563053826648525790124005121030303888545134127705465031817502553610146000590770627155639719543445621575023034567243195772650621418026874072412012019566764688245922503644172369477317704042664158263008129257604275890750084748698211593122972478269297720794663741146602239632187060022266508379607433266781353073771584543329455096404263596363610492794893508403128092025454703410007232071214889324379926188227117603561655037303872949493092361797173074924173445223459833236871464308014544709362227066877881153904118696316477118916515859313561572480483695058101943489998166684349648126211446261337194602121743762265105324413423069221591696421775584586285175420005839328581807784683422132943528971569620359357166988175487755309147592667829603808155678471972286597028267415410425757358022419042609742588999934185719558081782679409657723285778348367891299069542900940146210065415117925204531164906872944114241717418678014253378572539950900083860903979826678785735657710214317539954325227068485141444724494257217182383247211335307060865637493232899429265846027372524450400920340528902122261650900668874704546979390887419715479593915204009546652431237132842651299231708510265810086070675275322895764991416289318428744385245207753777184138004364138184084312051104799263555667984272254534181561514475717740589348283304849161749522935056223203148144912510395800871408552528093047879637315800897781756601815085225957393053918300074901664218466089159770237521258986827210501744242070471575275897506219802768709735727616069059889375225738922613025192399948242454250440785824472212190716093521932432935422586844527482853100060257231882349565806656189202822909099201444786223538740359960781944990288912444590729305674969891086128559563584395224271566425277693573997106851317650344635859204139251384028265557192402042620381370321107653244475286241245995056094792274955201567788830769490524407688896412529058070449645408450090686304070302010822907614707563067581093094025815086026413485427700835789149472744967100371546435450522329861917851282446517104954935979650747609823056169038028952997946860304594168840209547691545890107489020527452704933736774242147254620302060942618822506404797039314454637944672756281651627273699927415370570134492517905521627047996626988125883031649796361074339393926197272490138236101248746842333969713331484365999078648444599488010592767080779429731593714779517607439458794489737554528446460924654216760298650132446947043768822961798589693450335537232134975240387927139248602747552770561392051190957706258096915749630960367074452446030566428806275517366775902024848643461348350898114659480320520012206956867271611525955157582163192934844010129915333250002462100086234112205628781014651662911323985500392714698747177117823674448704959040546456027674695347048722879156856002475670488075876149015885392798448409756058678392337218759968552173024724992102287188614717272705846022315100257226169622524480804802700275340676278574458315271488620496440351822525653706856621700372660940981506269845426703497108044523224801468451766314261953594092001017783668124411201632075337219945821099188381363745321388160873253511767500765754777193865250432594439696898815527334956390112522853883382981668471517109069205402538421691995802865129551681638468845366885089122111705805909588418213736908651308915216880193927718732774976478136882605378742868135871567297521516042847643371891124814253359219270269865344501413904663136111292821308412931311210668401676605672446747568470861610778880988800087637528160920948230747399511193536262062636250693458548766297479834953443828690331591000084221853523585342509283911300991016382141953725472403224579979408952693739041521794098314441083068356956758077170300477051727185576215808473736861598613348354378554703135784187102203543415618455394829961391300744335034663303082238175455158241030114507052440714076092725801415352485682863001390977295636013530995286276292752547330020543179020420740033936939197378810724601886986664415440031179247463394386348486378668769914243025468509119970432282692684421041272658326767859274152142769468283893025218922563020040295750770388176341558433847994082632077791654840517982867765959764121401885834848164796527250951232428679863288148422706869531214467536128034846382574153805635378233430410269966114966423086810570244517481025137677173160195095363755603962203795478607042566326841791614607558676041024547184032911152563337554575919096610021604435719071938646779017776816561609362967144757882641083450886485871030439139186083367936797880337426766326182705715330763148463299159015050054447962890347594459160697446841981534782570711115608770264309366331464778171493271829325621198298148172907751875441920529374736892816792679734523548541748430939243854229835601693781067190116223232621575435375787407669865755847648982685986653233474843152610277217638177241498716802740839882612559260819038063165153254074295419273923271111152195040833299173276122086146787022264120671464759158135222316770744165093652929047568914867387765545768561283102553302835868041450311107183873963452747262953235110866564552445867728358242374243523685235503276648898780109583053850096153011179136785181386278616943561680099284824730765791175799353432562677650183509147451031827452501446018031132174829727312268008524152138327882934877002977761821438503868466319008926492289652569841121587094405001228681091290205800351110803841779476691148914334664854943221475380587446834460503440689838482709378395443166998661416212252536941727515657689713711843766974224074980369804808247593084810123186005126469988948729562761537888240017901853666479386981820848468409996435329203472125337369839599627346186292204926627899129250275602055372647519053150545386330677510493646176174649087570556819689638740856157911347291270359419799508984474611131185428707219205048315322570944217618737969741391576492315185399506054952804912596533023860849384154013414633790463566708198561302320263078908620770822263741541306354582509729702184726068817741329445608193248881090688021886063502850618736792197542274280241196623443068979692038527858739935496769783490412997365560013733310157322244700689786131501261396951797221306049610313915859577522306486275003680386269853699266379905064910602389403341762834112332739284061202578306665593848746609456997736220774811109491207169814006637269725508615369420634439108842633602821392925961152624182528277700367844710563141433435411876271654719501405423777866229254029110909941727629837257129168222232716114717713421655010681584412265933580295648497280210978987726805182743597941829063613661966563203218521988500620252781715622896104192590523956159098144339971889889664258097818726558468296049736470035947873217998576581760274008416160714300632644314641255831445686181679569579300696682989482268955303999540637550295786841167369488983233790767102749301969283842459064434580064331953232746366914729051606418977494641843742285149735349354854118807562441283486470712305159704790761590909907071812743230291234287840648489027695155348595870848150234183666703208712961915106157927494699640616580273824601775037313806012161634926709955061582910530850158363676311477547697471264196433510139315763933440993430032436637218397140014317338089595631429612861155065442786275486253086073475887477335405653698011507167667861517524726850266115492605081196044564716615795219921857343358060832004598115150382387214624340770181705296872857901786352584365584428276818959378970847580291408765765331390347704771303367321777436288058500135936046167685087971912926908650569894546193078053531016006722886508315552179042453351305346933414045576190692084758256176622755236212954955515167909631230419924917643352748961695012343219482070468030356328339903637523901769924926972991995059995600368212944747081951834140922726075886141104860157932863123017965154916324971721093630649155378559023809571492068096159778882142855297853969162489755738512805559026192474456307414570789400168988075526475150430142284589519039802915440490050166694762541824645373257840429541356337204687697008369517858462729651215303479530364284357996452975140477642510380184172681319542556812763279922655796142254532720326057454419279976260623122954903797976314016735252517223877264485440854245270900670232738999657559114548779279971712121762961392855983162603236080456829531876136834905094209591753264293246625703404345077110155382211490042620313124930450792164459894732210798556736622023107979254590061606656279871954088080876447487419199674217929196208908783362110655675297392937207668256237277518119899022723911508956645706676640035636969293835346462030321761133733300375005517634078108188613936240331336711541971557350363299277693943171055163786085494814703388697755881692773292051580263167174889185060071938271858660615701652194625398285355742986162845390806044257769271091283177167741406831606158191521779413114057229284596242664329800001824539456189085454248127209651251702235621366050559432158512730817298335757367758193460004382698060643872138063018080594467175842343371534161500403416971820909821622802216214614779594511075788773861750201013479725280531807549620080353082846780263978022467678088842855358793550210167349845228567705588560066128976565230597751596825850023043917250786244214306933755241795095148589048021132905550849698877014552317379857742036319927963845323139570070639035527779682476651464169806411666606614581898450155215782549422898057452060371170938375971918739428350254933207829182447189884253254918293855033372181318466513296570270117219919530135614522399796790866137546689416419156191274256021123723725596011248568847619486543807301959591797653708295731510745491413091818048119151619727581006712238658345293659364435891219092535225462488695140076560719966440814526253662784722479674317691941373294274786067273563203553930593316469740493853026932428981784907047247691286986847518362103012449433083597533259117545398935871567107749896938126845960020551071426633183380440379642517287385182545734963515818229639526436710043590593010993160493926021089637894207954972784954068793669416152620817957758350082215381482923903832903314271466545999473642380052018588880542222286618973446258084523986433210978151445464906680354979805067625109973277063904402760246052876132183959950514937815805744162060943278021563639724793512243585220029311837358333655649468553179594225562287419455050797437817537284826193408580267503530234550923213646804843846572038344424714761372694400906434821453744261906349125786177621570345339085172626434107204439484557235487407199013641701430638252547625590356563310835496421239861724728652490578324205464153257297779487190381086453922339766057860423525981404190557316249639754715842724728350356881798109171497871926870375613662312774702658826668707809085831671146184872580393573901306231752749969704401551265909445797597522341444357448876161209452645744261908921833007694025290968993973881136392190801261118237270800025981591051108932164027727717760028354465503669064042768610705711884740168287807213074765412191145280235683846568814233898588915546876855125797677308545302533946205906684335742091332731002047766553932357017783319217514563272538057644496270258954426652171563909148468548815676617484089577063614633499322775771697922625607398752881181618289173846603662978869553550687454828013254509099816213349611357668152539298046571210940685666326528965654977124870680536455962625768656293273326750263662660767516952406553372348387390104619610456688492389089307136841713447956303972355838852289242612218068532541665939134045009358560162054892619789314547781874828226119357658129276305270797882087350949177734016234445571098988760757823998240019652693753675458768167683757558325194826873208941625421511349270573560897541569155553875949879498190183090256209457442577987259735971427829929365533251856011822399314195822125975554076715719084294283718865616355467259252293487084569080627459372489971069304208049879719303930083269500354490839767133780387303689625957841705132972967607885083857517380988697461372267733496683817714232879542494811735474314996027327275398632987494954167535804043785818727845793916715420150432166509451329340052812594520441789384359643372145298090577594918139755643752295697747349890728201761026821313816054031720868116806694570064687844385821040887652615659948000835563547206318728258536128969439971963006258584170314970484419034954154845153603316236344668274305180024128770529856792267973202497067301052237281428681451930149879270821712140756760583677033664901679324021206380023029663017059129439371002670780542077927343067125976625895052919029229848125057471456045542510927865995112279892550213132384957421135987213049704879480687811737514758523289757151579241854415607475224386266078925527510770376313719654298003855557043140857360242921979382848857280207302157977408204697843453996259490403986462724405697987017305548818626738952840063237989256691886897445303405304040739128196889693940965184154762223714920805684170318972740098318763479876841144385119600686841683605631219724539529812612400482188755575934897264296219354599650864003003337504065371778608657708354970972095375996484521533028317707745927146678367901786282992543581060174382476406198656850800403563898024108139408430563937566522054461743800745552769912572065565551268619609871650755110701562220054574269028703623485616877269426000448501296157924322672218181743318730392812753288960221033151421732668717808367790044248321103866433415601496907275275606301346294740052498991476640900329432234594337628227758380840747324622991488082933503134853367148594135431170314742764164566952724787725185468201362597677467025308413350740707394926455694812578671694064987629108551021272895421548315664812456392629197932572334952157640225732574253488722207237190046692807021386905127559624809873408241693222255688844072850268338822241628856976451184080037843445671675201473900147330296027313019598220165090014144214553939250118629355830500424185927793090544599959484550854554827962091034601887956948496352742218809945938677833068625216997655990729744115722569451733582271534408619949556734474868056075375882133619163968773482056345109293839225222145533670994087448579998271979921320135560335382112678685572585811976608261669785611003705148758469801015245293828291416055011066922270439613120021522740186370295667285838258722643160763206516731923365600649141129738289075570302233752706942240908038574435951899012458473331611857333252726570571514445746136601785790777835424478819420937676328910714717932242374507365716835190108063673691647157546567788449656640089069760255957997245734431603959772353853687955541982881142094910122702984861480924629059529129833421047476013197827604021139096933900170600273196773753067300305406597194281180054800713755140923816180200256164695758095397995161450387999788369998551497959887154972087385455731835279715954050331007564582115179808145760510294259304252655355721382026014728914518205443816615501714331093126229936881515400351122803968770690715636689935854303650128937811782672598705766858409426658884734235309313466077263421923975448066705134186738932137739890161489261831675642848545080755282347608870539650943291627382899087806938304809196024130065828784151104987877028463342402316581634956656555818792761613823231963567734657381886464776978294978940801168144810238639933004562455293148926668719373033080773430318015280850096997749472623260431812662182680518743563772897852276330931869738085648849426077077847377283737350746872741443181862098628661200775364216409340630100889874595008391580995909820006450760706531345665395482846230218275726676716014059102234644139255597683352884364541926195912926435092909215936319176167371685374150996163058321610829869923714969397565714727436273553100274864562089053473315314437583666668954703000437041244307470846278453856952621688149274582874500293012737930740423448492553018696877714220416208092530378026351594256567221806779747475960760034915636080766620733865901327437383667411185393583401492209749501845750517062128661758721537535444218867141453499989018997821757754542667971032559897647251856840361242674585162850418178982705134452092875097822955648554595717713851855261008517246556141411343824761430898450284111654849224889428649513044653929121802159691363794978007163962349863044221162017463114560994067861446991228585390397960354744153197175342677842371415510650475725831952240708348561888419680322170983261366628701213140576086799564380667635894012809440353125318695798840709282402505578104651964846705856625189417568598880675549707042801886806608430193684258603075536974073873753893364919227111218691113881495602002390615727992147240178371251378410655255002784279524238281852351885524470734703830145682887919638920860668441127865418157339351090716551594031434031125800702140560168408901688139751605838514566306597541749625996858065447214914078039652499342343581645527784631833880767740942822922783468305050328867722676212785166147540258136579207461712147200145502106030027313982988028030730652817724671865035962938568616033837326069248430134199341219101471368403548252434371212625123118158182676826695885984771070844771329475742933753968584040091779884435673350277289000993954777337834304966590594846871417748163141581793219945424508145998398490408118138773804688752483776632349661880035517598902800313298406968486685455263849449506908155807454167397483861098300066347285356674159336486836983826041109100651557335467350151001935647563940794366266567092030383170578902411419418401707551833036076476123096005077424360031890412338378442490471916129924819210446374976228706835313408445149436949090375190987517591392640974129778308657451319750299794589284371908735485108743650475806535734587012527612085507414178173220171360116794875715539636284969512971908499493898184631414469080056378915450017450321440548867338537677865895993703731420136096862397909831288085454974898540480131448349908444052131175645721247987498958338564412420505144580683666598294143020866186406172616082274067342351542180001042821315516362023805501512779937575646907645164469521171081656707688206723905112890757643530460699684727095955091225857421505375457887477257430229407743674043339436106239322692832559799392614246355755657947188322603859597848009624752764267993536525237014659757713580586459201946966516910263760892882282104789670260089100956102054204836257711657086862460179259353227509578436790029555490566190702361759422212255593711470413094195913983408687670946451801987485793136409970261647293554369666029514916303786414888805827405368623203760247269145553712774004072613466917868286458836341761675338193481015852424294956321281664807803017179821277521366765212708107095205041361963555867162423140094770455971825725248258035922950837417042986423847348947985531087186306019891212717931003093529564423583373974525901936110705132391671618793911098464634730354294465015746401906963654215547169470340582549617048218804542602489667526821282637080835374560677354694545296977661691883494023707712697861896454387474673340428980799284407952124950919402480727790606266992921520293858530754848552828504406229097107991221475111861700984947689782198134375139534233900546439617601286585124306596362275436544242316149254261112460787370893291783117266676778514270292850121548678032381047838341671332652360977092830614714254298159360114890731889579854948445394916646351216699994064745832428068512271672648893171147211781943017752727783405063531579884272288309322318550184905642401439356154194000705702069156960334341531597615453942564167625753522324628477051744055978465830777555999751140483967713779729511866759143688039569935745003794441212394293392551468178102559821901475230513205257926037835962402098833276742150554431154283776924359523644961244747244876624091383973069191780435034289090816127133142136459794907530943147989797577351045272565458838247728919366828152629073887109879500243120001923868344302934348933766602469306369150008786428477512326724014303454765894037799760166561179169377056745395139673128107534111588296721002242962590561173424261138727685358068569137780656858405301959027393304921895057127557105740888838901593724933563088881220008809827950804986174033274493976793905619830595079250174534801153593161413772441159410299882315309777247699157406321343344867567434243702132666438133697628334372986240190510755913961629004052807619195624844158182314187638494482629555601974369983286798373638617034778374686748896629623447506633488308254097799474102726813754249302351324958516050001667125861999927322646395047474825905476498156307642340234883816139632527332830553090799976217464390760322628099366113347145874357648385953430653144353340644119763831661888885578457808132844042922838911810576968847613464809131282100932315718430343811347544854685061964572103498920935696193085473798730157615038077283359831603558941298862330948298819988846016758849124331870269199161480109334997915063729913595887019697225762313437899578509734407555137560848200229322925087350898608577892756813972301837778083229776704983130920690950433408673079415343953685132667058578879405543159805303676522582047605776264466255001826270889094858663655386667911632827193895527427768947517807086824803202761419841241931220544067078791781922136009735038857340207622343640198247371977691833377334374692499125777138245453937426872412691891847681514964795902660817400856058380444473300123563960570911377537998894641172518244618885381640996372935141462760077766468889801277698528711191954356232641665178490991877682824843639333688013218273176969666590344814700251177165441277071315821459212518748022323406028409163895309946600617989709472669840931112687722757820659161413877342026873567701205787858165844896602434812879761262213955037424867636631534053509230355026636653695234579965399726079976729667090561685850261404846088575407201934800076295148250678750437344479893702561659835176426761454992696413844043960121292648091524537979275754689204076821067878261124993046525358548075193356433385002978219816960863287580904320212414467077267146311827786079122630455524179255605424407838563007771086922930998275492857907971038586529505080161475311543242020613194552027564305686481802909417736313568144050339827723426461805694318411357013697912430257242396046440965382068502060425282457193131262302948508713181475346207877330019811636686076236550565828840742546273517612253485908406724656009888546859126341251331779413507056238671333443952639605977899054318897581619906354607632981494472050428147746069731259614918408980704174601132154906299181066715709908505630565594540338729186584518712144607631188846159321540304907742835196623550567003817832595764550310563333239389814053789562432219543356854061856684119046864984122861095858886574754231408835868964021669779466101991182203172808841777645469707886469887969518187070624985659248347090269269967132019497890846555815742426323500743444877727677051423467009335923042821468897239868743032447130317366337057365444905003022413890668813307414290103011555934593503624458501513514830496470103294451331232514502149069535680607522022870698135687878546812234149427904300798755583486793863985158005162127589752932240017256834121656442958380570160389604033700001878362214389933041022490548549986758939672610939949620596318368450686542695778737590449470130897837854673978724530783841664939317227539501289523778649037506278823888916819215493732938009806771806135845690354461069975750326594229264798433114023260747248951193768832809089198351432825810746196432999691483376100631593460976598934177233736648520270517507620078123908079089687494202962956051548554290391930261973739389257333567394062995327000506761122888629373504204827109670180631497293619605296071311276725466396984419109682030614298919755977752283463011367578778585480093234286716548508424340630279832201898718737804936348008639760023883281036230043072513741567964676746633010566386850603515436684647634056142311068255118460987651834238068171324812016105046490217972500204854909016306621927289365999423719402994825054972473152374090455932899502089315177506593949056449373406311157638404179765556647048813631725891577978324639941917172145675168888265793634233066706903767693778803118522827402080602581542749043759603905261374162125047469726700093129601429642578205198974347067736166980252049762335268566215515158918753381777062505985351343439606088993074164615697309481980280634734495642860806483194322381633999798357734481763771056777382652377769187129651538201337421754744213564137947839011230995315822805097815914194320289155808608561231304078289917757019760921664182649588394145851233333672755193936292459346921513399861558439397563407761633069222538007334843320237576941637079671097470124271315033952059120589051865436594855046516313934130901671981458808337481956974627557375292771165745960332117326331605262179449139322097812329396680592382830946765665945768354435983869998307369185125218895801869595648474991886756897302340912880166290306761913453378339078393648954565417948587430057644199586018560854400512896839717763612149261674613724288643503572007635493041702891092701721622846364557133057700568142124179737611594506807775952966415851526543686610252182457819845429521869913322168847623838870789438818384200304822815787419022754340290016210608578621382388809603216015816615778132828760999335888579595879437980154301154683138669306792445135645161210922618647551936535365151090468333707208665456980480750537840241404635195189294964956832648906892219260190613081950018184664993889369434311300013770589019181361946578508095974403247279181652595959929903448181136020149609320453459981997868406828866038505961608062575918456131790709601859557154329486196846617660772540970637600919983626543536809549159753747784983091491364178270475045091718619489764574886447939521978795835489309752350461059245263109837846888415058971940426648704916478270185975883700188134238434997049844135112703742558665587268840063454718707766808281017538089444319653514963450501824530127771207828593451268097981061542856718873999838172190423211978571029090083519655012012568783435620039375528166373089935989514243443856429752959831603017659632669008158352234886586150590810307307668873991949654631650794098242292407883829747031850003540007653997951783819138036530915389767362936563690876865938145338444286279415194107362908333404050916423680119241511684657859273506706040483068330312419637449866803644128772647893156050160013117128651708794467164764274210008217043688074904992664745393158668087709301662581412626032800416579628003048340748635848450183341562626809475487121418693636103266865092721249450127666713081595814577895760851038273340176580567526149858055672693503286920935996434921099564568413691486274382475046897851630664208052546429208502453833644001310553701595864366063316002622485777524401252689740024662325003211255884136767629412441214513070688067843661387785655542867462614474972655034561329341478482340497505462201144364497491803738503950508054392679189443519159696459829941500777350006079692736796738050939235381984009845695499348701005419286832933589516403655387373071303349819352754498874886981381384033203283729347412514805537877508535739514841806265973150496683997337326869127490960975330708213872529555763741850173055570658774251357994839341696473721216174426834720668101067490355692053532497069416476534086017474096582442008664496574537973005722771781197028038505765237436147725600809216677663992163128351254505718636515191888236063382418705658764848640024077136547532222470312685636577239156978238078458230324843107248582571978236556140746039558365372361355851778989122517124587831561083935957929792965210819685777939470136997761224975150250650587978022757566299534759241687589257471335532445618735481592301877129396149938689302398929809944963209487550750849806529641231555481534753285650106764243545484786940160668335461485144690015931247983446548333004956508557711151729880144960497894473581521540026425781156694563077548081403445365229448314978470796571868686625818211012903121616637208335249301078636278861167029434442659599063569229611199114737714223172216247199930360891534790899383789249236372311691554298113659912168215234108248554546706294901651622060021321094333433039489461259148328517805586088086953698860639945426490454555334633845666523997637432975774896863189730177861454238624943614408501161344598899888946933883286212767556913289687500286100083634744755649073177717037624656909202356996641451837149963025752659382224165760213368163255397690445126064852416193874271942033141624259111887787434341944543607470184614307516388821761708357546124612286809934618060454599306801765311256849252097431055525642153064461585808603013451247960263453216002669461377309300928104196726153108590240358774569982755384206702986417610966076708357005727765121795081484393208847687840039733901001667917958158245116864438152630211540144114593706946241995605920905827415377300192100942512108717691273418900309654262363020318092098110534429680540913917128977397654187847875293554729866469894423912161853571685633103956674539304107232006598845111519614599173082562004705501576765572894206517640256114866194792721778188166497691690857938029878613001654539127145589032730868127663819441007751096172110404847435173986907524979836677822663608342644143596780654123669927960040264320660296129506341634128759874473020523164588695717516758974010456982075360887980282855009600857075517169481020630236007046206775321706303670092174849273517715391175406982289747506928328048155109565766862504610345443043932366981185011207800927113777725769803305448703993290861012787358119707663697475335707247299081854954404888206627601908639967049256948688413404716907417061234048209016320659744633856066123995907541941176697571927483657691166807455799823757483525796839960458137747085065327635784376917619351385055997699609111363238490704674161604377057109980465927761463921855704492795273282309049151274411071526070444083439870430581779305513016126907103223346861617740492051163585528294744442349345120062430243582657992883023547113164025995911687417905332594821422957480244789960061979853702214357771729492761491835025125288987807290381596107813048942747714429316181651824792619041018915880029347691065889201167030394916430788163486266318152664872920221641463296996213833779370906915535563446140555560340147719566788321874280920295297977751545096885112857848285398663796702944846916167897732983189368798610224414377613828488112405584004945739836276712835127215623625680914402969671367879292796432989444084854520263603300486040063202675525206897958690736165832292305497055736266759880775115405154005096614878777921047726076554322030604695829449302337039265969800970249662026258468750116978391720187702481115679437409661644008672351290576256220339336892681036516849930332437407321602177770712537244797601176944699826306279940159076654954177665452110414994867268950096988070077963214786204435534995412428726683922949554925496685655869244490587052938587583034098828820852210740888811683530101662018129197440830706180005819925369439259642137316007126416628950012540324395847384063613974732678065943574905298569523172145363363816561084781632008654686723956682855318079929250364001815453455609527118850145756025930632080998891463672214968798420128061928052763856473642407616216857795070117115241631799827663720570215458310508470372068472348274391287036358222216797047867607109837749728401892940843973647750352068076506368168034509815777981169322393561113417813806341189339189698251027698328791304561394596735707402834895604740424142336227860272083738398428390287737286966035145920502438775988563764800569139728042365958128382436784112030372390087366784171224339194145357372463204311877059210726786230376524238929552465351196070610686036465473370482810097942993993790547942573555730903743463896185553721483384797579251034048644959487814491703275722744836381420404515054148349544038836731242440672961010431853736255223045623233726677745481300391014548679085510031568091273947400565823649480407873226490533280154119568971269507505238007401008162554361121281668794800089972866880563763625576452062894255592500659820688962947782552971162137783061337119359857561648922907763787643330837238681444125164357344755850949982701687232450821191882047384249379742541206147493024301582079209558639229559806196913743306624959848048977291190660742561263278518322817809248160639775239388158801704615237630294187480150495291685698288525674417749367324786222489855226699473293948004234336496590025737703757086762183983862615121933241922037864394611364357705790434197251636273780020603382791243002317246937959624948627877522421579545742117316568789716577520024656219404762887145792511847268973974843504794900711483445701496111550664313522216402280255124876218360970883771909886351494188407537716275988996324014497839984578515235888662286277241673138605199185993822619001110273996220406732205135185141503247912461381795918177153976391309290373809682021872650419982831027136117295180709151449143322005662669487612778466243896311176070918984354442974167044663950689689148048486565166455401072287071209844468082553964314149886385736854487427823033663640671219607969700887249223577716726353430877489410568029953227682504752440647800492198416016054950003237239869477438209084673882163624683265204852235333661761999431141601624699317019210702989714247543069809738710837505019680811520725882373783409237087029991349540695081802260731336456336027435735064060743346393707407497503028617661070796117690662711320358866110918117606555370378112270528610629700461106834060248260248047071682488219793751059170310346297102966431062744048805193373217721517610167022523278062620135152805349597042500192741135952799986125071916788940060769870208157658989451335696944882060765279890469775472729984641949369058378713168267408250923158490159868356015174385447671349299983648494334154100201030876208446664631260538892340423271205492142844734645174484616740929961821322713218285436771661791392873878227815273336234087634524928131886103357516927581340172748651937379882106259355904447903966884467294308911197081251647128115328160299762652731742141349195577817466155786691710982823976759205586393057853945861821775618627479293034578383654179091587493195552198199506514691316011809367951597191500027005938371253246940876540527279405102299801346603161491117116040433645692137436180243867389248927767387562537402190889690498184861808959026456646478049269237795947510452777306924735673105830335518431196510739216512776492718683539702606012107952771202969719549052864933122869842831456189776357638294540779054700904223285152013952052977422009562980159124382940180157768210000261876279289309959017415085696353843996190894230938299649852261132807603582707235272511085226379442876984667186214178356349268108557010237439254539701520313270926942862770239486934476536728102974421752234746955001004322605198951247354653410369420487166500198296393142834811488599536761845140048391449208954640483536824838405877177108180647191452844240480959648314354562154035781883212081775282452490639773435482268330470468863226279766239653932684465653160431522259336587379549519911553050113267424931541701914623772206096956870910212814206465827973902318908623192135362153255394127249357600578063740067708280891975305368933001848653520902545604559750167927374903393844882888757977524848901553072939952645703257974854719641019354775065849495399243602577114457675397875899350854865222464925456211126621049811509603479321812480455364066804772234549338901541531460869568048051325354521761016520280252119550561877328244763544894650229575019645334272962676100606875232339949355600474796061210888809490828819820145970577273113562273878364004704348986591941924606373269128848970973045931472859732399996966321257238651633166901572513993443467763036535765310847907804291884608445252661492358270357629341522032592914256677713733169551495890425630781464668007130838047250026850960936714668472758173802600081149448247234851321005747933242449541453347736876060051174647614430188793412373649718016001985533064127119920283497025440208660913358568082597237785241828617766397803321871355411890936864979644053772714460590167776840801909134360604448800812845651958942404833406321307645364806605438332079264265687363239446839982817581572618049802704670469051901915702120453308232731257506753729137085121010634804017577855121778750285946636910893579883225948792440834807653188024170968360796497557443720049770916726811987534011443248234385669031541833911103377393893946392782807999715883455575720497408996410522751015255663666394577268710191386039317219168353109204768192470153052859231676485673855709597164990658230408393529864434996929163756398640330033423560624384062413793666462232295216515759589117729808867597901337470198572667069215195772632074512401915802279210175731707530168254006162823223432901798799587503844011803548227413625399870747765675985116232590680769042587592888651498584723885015562618478703275504884295535063273670691220519479469600049781720281587765758648389586703393957999645534744571620377753834039568916922081197614556922557722511250825277651267707476546674922461493741370503927751481295454276464332721302127450873272843669375974711525277345272159149277876910407232760420855342758999759503865860760271570951096591224709252667893685465391600022507764786879076650418330464617975202765830823140853079704922529003286539083075367730960556242752410819787353440016503365007545495131870616270145124297213577563768535269715986457825733742430491414343510912568091185802751858425746982111220964674734301211298755831197924447144992462426030946735539339325819487215884567100643981997623788171477125356158074261708533009748678727871309502478821004287917154650883682855770341120572154609439856856923799049658292158815501553249139710512345000781910546053639813494080015513428903201292166154417473040206138704384459388960669048241035197949177798778110519401953055102395123745095762178933624648193032695396878964983942461353498770033505924806514381133072292343142783934792724140602562267390009558844815673991245281529708355361244139732145904804389942571150233607265482700139804770573649775778461430407036044164154097441913428484901010476497678083819306031809240519868537974752338081857577737994625264494275549797060308375056551544129110321140506718380696010532828570961128320953540134407218866319966663577438770654180542072171411478882598432869182108092505556661780388326804885248906996154580921357481070162173668111828698769586222185739599172620876264908430305157295918521101884587832775861301081849490413880780100078195180289896379135630240533839020000178203440881520031561444184163576972213493392179551004351700937809137694195270958982191818303239712713130034271426169492846122231623312897589413346308884201994481063232367943232817767371778523217050116564222855121076791465301174245903819039664334500545588230800476091856856161268622494038894019104732183645558697543417899569669352464675394629112478096234889209006214871250563454384793010341768714313012093921485326923672723077376367957587294508219686526342791832576460252870760361460437333213275801155652050429837846605246540219648865774073606904004147251960155690783484877739824891883598902043845492860568094559407224312813459276973326856752837795994439146017522548533620602725853061507838135424702942162566848859608486623266401439929647163310012265818640012486114695341161042861480868551717690587037061831232558044786283461843222605210224775672059599809027454677991556704575519750829847315018277639881317539226902034421534615980449678779518364535221514885969153706116728051800815171523334734525035803031926620803200876470056744914873604972488255403601036327157288020930965923803586686243496105009282029061776128657267819794156127956829085145250496755637308930802907499450403174455078805137074468908959144045270534258396761611770792597881563555367057787709870343015248986676712773171224948853384609809106660347371622206896258495684392563548137598023722820223799457420942433256204412947691740916662061457788904203704440201978660900630899040604902471388361642063707515722640907931002603001932345799379773959184512919224011470128584788823311645324827039040995158109882885210109978561779022094445453463062180491248444145323994889077257748666842923069942019487596911480611411235790941037971657067809110014211291783697650537236937546612307233937909577217824529012537789723146693826500312009291003625348400203899056488381371639384730185017153334016397969063638794932321408477157146312373585219930789091967773384573913432289761832800084868080257648424571841644440430867305342547681881901258518628536273855829186259164041469041966938061694822742869837269043240120461436773280104966923123863516054515660714551027684959843417656784080645067076436878593831106411163974410348891956029373771529066921997436799351461192686390387737443726926028921444960075393196440906559242989815382298961007102257264236574232239699411365551140216620634063716762327211480179066260178662201920263216923992988826268915817957227106021840975191544431088741537966054463224320050873830327737696524197302514490821777055191121911559736150847712501421870563606000697467163608442938334749998916580846697681670878628926526337876897196939105362855551820477111446688487374984570651834270801571776332068043803277859756210990789901796841661703847612742455599351376691654822131188162031417609270787792195019616025234238967706571593113762939819137242733644245535725621103764023144285146124115324597865924897647800118909829399351412613670184832005664142129650416847173834149041979385507899609285272541214864842644049928395605205835838594494775623526361181753531766146460468094987047957333450465461092610131226444856154859840167213807270224949304895076118339747011632697542856389359001105557210998174184145405125942636195730431069015070044322991014108529558333621055716959597406264597977873462147726553695654046979425576759017462967804261889930563826034369526580806701375271538106961440199292611208736825031974953983011041208034158613841232124012298325510994753851866384235391477402846945311608358746819638341406578629317329734929279708912521420221848630732788736694804229113710958646409612875993129767491128110712567726440108291775360902596865232426996309760955377728363159607767077807908161858888924520732061968804430914326339936897652453318043263576685148218071131460093390651167184184947543570298703014783281430605932274854605973383433113553882726538288276027041105107750409900117279360660052830774450704252872650950517413340290017326117439772613431911399136257873996186401829749714431463487619147719488576893741499877290428901892837063441828916726510146718824697230212836797679829953073057761942324456875609754010254537171475077593358233861171418753956861458356552062733192895761796764625848328115065070350848735002361809456453680890618934323097736680551035571932236181431486199280326083080073607112793361694167767109568492233296326675955086324635024796978474744777314624937757111729733187567587831279627165137211277810768963424950614797631963492532656067764243245187945449941356818096505687296695943594174215409499155736920133368563423943276566293242354660985023565023216033079083546884475680451740574542308090907760202055608884769514883157154012136438819574406703811105349722545671266756386493294712792186278199793351887156967237221067952717263947278810636424500640548172526662855613587593659756769529831703062761570067880926978079637680202951503214874137677265850316584608864971885618049318098643655055886591164712617024020330116503857471818123134960606047499758216694907231955752572653258876560630451613877649211973936619264488444268847678686561793173786888713292122741781981475428977589030446090407484484255080694830831103606237354591440653134851439640896749001942745769886854361215133566723181796470407991157547439972301633974959719611647027338947739931865205550496194261677157755181356133828260995180643892264690817436266443594604898393967708442995246071543543971914139739104114056572243494230989805821551280832505192140442733163415759500030675270188860343775552713424788971430144442825723795675445218987397428381354851953316634020956819238120257126281754510777194918763548702780084411944949171974211666904784936650578899443164053552893467933631438063695073435194989467189193714403916864644416174238139591882348934960842461465696900423562145470356316556000273432229081996394654570822939629676957682712739446862629947544851807495116425847107040607598416704797914363068324004776396437820009923534996575909218106514368224940473276647016755163521831948529105710453128527731214090183528641589782382575520704764692624534691716158793758808158005841933795936112363928032911402207896188382803945243488738940960371842698409475979464492518472190852966262701831532424696805371549814333847768561240413722936057073278498941419397817748171476913430983067597057929721577978164203229422336855846543507637294782815113568403252177408638850767858103430884494615693547413733655992620587259149321505748790065675278716198511788872180574077070468267269106012982782823511032555657732278442420751099925462338317660915996602129966483766472095582578441630886266928944777274731880301713127857808146484055729496360310505411862623593304826819689497102336333426607128850670569976047242200665844764095464921620654443590880313955673387534811138849421375323439610158606968241055957603347865437267916344417263605650441399909094276016427576049813962423693566999072167883084556077795773736543228796454914933693780318713454000925470574757548033476970228367532865144250296564230258891130456673818618510586507528366028648546184318897870464598962311235428375891304722260900866029608536557412690226651669590314202793733601966328087823734373154930774902749077905269564388535457351143574101653269452352383045767431299625922909144236904974184839519732382183571915835910857320528390008116807814703985291549862839609027108148790162968548475612728670317797724723528754497397909923022800778166558525704514190390320982529462002469339899960060746059614131649442420728681157802521162891522689190347386030250762253048564911733004059107503968764203990273056509437695291078728794150023685751170823715421225188847313269232392152090815840121462784133579825512360451597709287156736484779944233728811613407170281093899782237336177468844876462644599875405740390985495873390609075328882688166416132343440481760996373079396066877411726106533100701431266223855720179917006466981661458374271851867781629059837192331807289835533582807416137667736924516769950847919273282543192397261028189577011696392441791643842969712173207258720483930155117140060662800514073802258573218702765433956127816276937602293698300673779962794049621302056686072631287445540426444199088186182894221286911325692786020523780910066508175878459665100990161632109952862133837975094269677439694238509694617550194186045000908871225556154935701324222588921703590623338672861209936539001655634438589684176697804154331824030212681052028640159875376149080065729841405243624726675917593986537050667533032262280622321588111904110009918840804885632968154685086447864710660896176264421102267010569954072616649529893989322248209647470433380758621284284434904906836646549673315204478295460032664761083290696716085820942730119476707591219707721593734881879247499662891799685148163775065585860303776801904858324431606523587530458432934215409151021231213879445678475387967334399594959326379247140421272974218757680154730281609895982885055196175796785068554687427412064683689800352441736080552878518523178377789675792418694929954831994111640715083856780203351893189667810532441983922223489371540000402498591241687677578312199659930098887269765559149732490343010878491133735231329281768877546220560380266851685498413128545510850887624844798747049634947809848892921434847040387805124554415424403983306534721959518223587956931962699132491700581214909998176512182077913283190776345456015302214729839323678832848437556414730627065308966410001317503860313688487565434219015852565000215892000086341664155775265417582201403381251080038530491732224855977657560907115447979524776441148214003755342788354021211913728671237697831449623323118269201530423068541956980550859390735978686833290147444753545713564091656023812809834733957078514833650000355494882404473181834382419928137635650002751270670151429941395125548718681020649055173980559737833949123731948660769516334610041261145170809223194975784553309726625440256867800444277637172430931326422255055815607062386865271975266881897989934344924980910808056414980299421097347365833972217509927087761962373112459891946209967374253262600204063210660377144390586413696645017002747552247535122279532766198149588848217565364809463245380098922335586891126864010735497126851339870687750076712200827040616975274693096417074097999262491773105226273047157599513085065864545965363865675250525376715091474157553709979576117668766929187540609739874680457011607164376059967336811614470945585170177248290649354762076246882597308412862780561122955671684203429289357857519043544722199933538790462596387903477625034559872198988958970415133400340265818287460585380528815817953921062072205304100993818384879374299482422359323290438607263792083680398539154362894970349246681666924005714646968676830566413264679121057329422237337176939572517214770964448124576150786201993620041798414487851377402031549693140866147593321346487181194700576047474617749855210233668330266009764914643116305867865889821353329728197114931581136631078429372058447811737239672494771276229910639938805968253975650098983980615158704202155915739413593543126184063015820969503110244035689377659834653010279957098848916128488732828474884467289143763477637437844223114043167520348087580549219683243000212358077900587123785063218576754423110185999569680438391920439993398702031400875972483630563114040361525632005469064376590114596869773147388020105677812770703512465783045137803309049085941311198538677495257424291052501872704048629102284361577807398055538720948488210561124375449634335346270731012860563904458389818045621897810162037769702394561061683375999193188034232604148466765619252646688739079673769099066714776128450938333700044130957239518693804270897765803092494222487928748561588105480847994919090902184699166901482350303436209151209608491859519085975796554220947486615163914081184468704465929273448544933345964222510601202017331023022451343536169990608105927315774538217600896364065767491432047565667432364999062711035172753429110642365154484856945421248258138430275539944346697660819286190115728049414609873173952349306708672592162885105960018441688108312187783941650773000184485641558659409848105624319378818358192360036448815673387255951011646227895664685869103806706411693546103287866495036296566246018868139161845557218015406090635126769437861103359339932797783926719559575302963251216885665165005329765780776965071240818034948049197737660333269273205770099744326841588436586625433301571544199356478951037131582520690360978122851958107867317402747417685809012500207014272316871527463905073930779687620152432070600424521225877364405337010000620447264881984088212116178755800650746981122245716341611460255040275489324726941105506613300300228083577708121147428806790736725904929395785564709573135220415819853113321450219270424491791316752800063650116056432725352984775386019309180774956467804857248928101974082011481817505203808015485444319032541835416481855262441195329491142882728865377219272667165399395210603549388728191050449450982898099635127795260522173753809414550267121941326436733333862233751760970808260244344857921457263508545475471088097905579604974201064732093219850025746903264267530566306612820187171513838149783636414873477338599183426250699956975963571121450336923587592240077317909688116305590753637227837540354809074149048841734241063530651014658245256588701654291139707549411943716172124413522632118671724328418995464869332585831126292917199934114683438802865526686132094148723346628304904755723762589025541791791135854217824479504146200129106899802341466733520755119611890601683033203285604132243022047011678224832658068725914785728397187620329692698337212908583979815131367861840949303452603439670004511868902050827640289947552544711351707722726136617228079574660204209292770673166877865569525847975509075822605997764580116344901761866660717901382887087332856110067145488119020295878296691599146536851490727600087656198082736580902207741141446756994258642744585436109936205841298249308034633193306450486609481105455856756993885077754626989252677609582575949201444684813156428605904733878662597974837757197979979621541041696992488259404112048814000707093699827331757485602987327806855901454145971983050194797206546791046032709393732000902286228773566472312058978178404530887327442702036709301247330972199821909466007965587974023292807338065970552743621135351820310234196610252340918907688918131402202347659969863854748163375848375046251025044933336612509604559385054531273988423570804510916798609861912755891533671121784793448958130530347812137718493821659112207562122744849420475284390632797307596462894023009418913596139804697770859137791224132022552989412067022189092131837065574874227743726458157688247850423745620976513449169153906393911054672183594514244842326995492591428386498922088176900954053318222849448031682658741396251658209861983438103409923694758398006862764879809148300276725954819782665014171374378529862189845938902845756193412352566612578159475379705975259543339820926463874387703916125717771138036502489870877338632042503601430480907504035700442725737813164664632939418949958192631230609306187789603583924671499204360050722565274291994097386979343700579273297246694995568581275604110570530475703069158288624225512895866804014308497286674123998249358473000610860097506036076084907199368273780437206445028606515662226567242248573022747273767754016155019913630433189311077117782000365861955002229478234695675873753213374788533736624491434208576312861288001755231473074566473738793443464530594196661757040438045000465515818201551674212760272610478443465591023722144198345098067901591711708560866805748584512627006556504965034431843816232412312287847357523976020859486540092009626054534947116354625981999664224826671603982777566638849731963450936785256196633168225801867097650566026666289497699110447655372533042236933903388156729788848196424596445984905529465106808241015971206012471737819234155696348261438184857714713578745604884808413113404849782136479633435589447982405331134619549065884995082045759807030469808699112788905655795506407680438005845179495919473434518640160687257724248638688698830192253008164052944289517370415149674759432597068358342236020082161808728460397140064257493366877465903327367992400354186919499349813390708741400338531228427128391432606455129335229371616816040261739502785871370460832565949191195834487989037465495589547681573295129540485754643595200629699756860961280796550929609704514541602752712948522167296628610743819577086823120803359966155336617171564495084978485353517222839867854734906837984349312029967765734879370862771914869067320167092171687373659189632998579367261944372259823156296538513126064622006757757858004055795525898853984627374767794477465045168376111551379271575858009599997370273762161795852129186235332632980873171766690352284531245464309887510727303210445083698291087508598518394306496706932069410005223847086650731385786840041647914764289773845284790697266240661862114335627381530350352819211329696964365321799661934846117688258352656438314869201086319753391199388850277818730431759141092054030145973946203055566157869898804604259961193871235315306711087920932697073385138553091437541837266840553810411319545980665585350619750108239011098143091890322233678840030764596032647658911324779742124748952181823143822701957744847421154375067953478594443551007438835321782125906213466545992238826290024329997911934288720542753809305954115946664293549400119305617218309406478846561075694695779832054018894171669155636091844940400769175338537296579716753397228938513263797173963199500652352101054150944131552625546770143687633816407707554595308521504499519711685101645168902507126700170896973740071107802069529903919922186520609658602353914824399706600217328842398691338835411944780569107280259030707295492186135085811337457990249132299785925770424303116973175596002454986837824163790453384744899837729344852962023051538281029160996210260888039135714711055812957564714239167952082621950795472261543249340129438625105887413914272077676823289527418837659782745675117716681734760642276703663332128733768699952890299290510244030649469008647274061230131630788141371414990548420874971727234223545820616786280774093841504270213776923574015667978573889090726736405749667639924785377658599316889813536449049344515714865102891148754161407384147892104422008041553216570782417939790491185519050851826755415435388308256165602498668922206355204521196404656292655570895605049450639605020128171473407884288005361926512721320860116917321012116543638117755456810438831862348778397352797315922839463176850723786152137021715598633892380733409693462646895013237665047964842831190602029186285152199133104848930411106417126176755456577669231148365244028919230720898479595295679976970722078196447727544061089894881593999808395328011047455726393088893426143432410106046850033974540097232673418319775497030087864588262552591919460759060161077465617892432687296102042765382751989504654108943869331246093231998050038958831468799056015627547578143813109047606998555805370837212465416881545261459746835271585624425393551083050970584630332519880142528070362491135924787402702456926421884267700485724152245630122280084874588942678780892271421822952820644123479746606848853365919581062549260942447506533978037225253372356910557394465366119066473515809581499900234235808888130091611257182704904705901204560122355162644758052402485774934140688931836471003453653614914425308647828142165073948221260554426262285460212212609894755242069541772359900498412730416897796565286471525371235322373153271783401316521859010620651751888612463088692697311771955247646439331293529259413069261109741250340563995004273475519724450080273506955497796354560142108924558313012835514726259822466777438908872152595361754545113695725648072043610168695572677965184965600795220763521258844392160184236286598321158354121631828057136056733116611904584673891912372135400091792174378364583614663422365214358709090684675249874994996966345927530978313597988589405106232369875468664896625236152261107143862705476000857196440788460752911214639873947027239995496349949714616408040842527792904830390721346795448062957947323328637269952236458176349664322183826356969502849119673215084490030934386430826338713834308675076508549639627944999996121132590231991226195961255833619858174849253072620082385959425167179776242757242109601045232616919162873238416305186706691594046250832428280088520332855253956981781558009183790156470910233024057870272992058109868777951847622582203041437251160153900060912383770623857651435626988778993265446920258635563934340643693043231938977000951600640792719394682695181272463535228069033293215698515945480597080408700296915626223543566200653711298649466705395099130686507741085564391801357667185425146758042397506783205092215165393282420755573307757279208693657810508200890876748805516376694320066959802652133458784212681378555007261541565661496768419609189981816004898740890738766046065255180986967473264962171079060369341183059886279601732764838230259043278931157051764729226463503059372233814337858141285567716063285798457432483832133393176011531491317382811928601593668622851618671225531136391166980801012220070348102015710090040256978701490103408051856755120688275511698132385795635461121181508710617666976459279010163804883291607980262788922919456103947411284354882185133456164377330671954066904025710862274078689233847410098066857892299161548515762388512563499398893615420786654581518596467393447791406943222560799296706396332439196694326321880360191889954229988509074562490978898725298524155104062249325456130620716266013653928802462452560582315346801807710827388777819618424106315587144050745404660931692767080288759393282290066655020625565030655646580764783015566077064906725135793623713779151523113782793792829065757753724120275053594777125571537423326074978503352216295203086188521260593278094418702318403826867177449849891250988001902938858686664165840934330116470835800099172763587849627191525607045886383736887475095886726320751608022257586445981381646880060795651823679202526930420876084117945912485769077802979838999063542220698560795933058600590629727166961709725801065884021850283843401221940941817312010927424748629246961416136968214141357508701748193962284567329625505804545226692057154675942074484029504262147154204866016294155380168229180777516106436642893656134873246848195168896799882741708176295788195976955827521855239310592444439560310869026895637665463569391401476483998061312765969196179194761868094319105723863964955404571825817676113367183709874887913006424623642043512492495899826806266627161134899447083768901424124104377656258964432457409484792723342539222059332243565348468224929738250282811600183740741559895590521498599485803399262350617780369933709428968620049719514116575372701073411772504040968396207026278202190657083565315252270451544796290542794353398343282239243579882020796480511895262407751175258239847965001692684358036674865834656090550313030097248618651144151351260098195769282255835883312956559148024451286941659916902817746528617618171093468020114878542040531749928861155083179142892852665040937455842447135623070288154384547637475384733640516924781388215434335406781434017349009422658597195381959263191853176261798607643503329478756635381955341367006231897675580958091588706761978120290937258764567057020032200892360242147305453588072457032099239572849108291747540179756864593436702396158568504243415274190717331658315408675767378478074860907697885822053930899491321991750286164909357596336157556455338419077083885410156806459584296514048274336795617977223275956235255410114538281626490070610483712513515519507584571759574364651848133573308263590735645192765195094579220776133418283707085845362096644220398120124803492006486156327296322014242406219053601406209267024272318973294263750251545869147583312413232644281666588156177582874811797285578095670429661763543472433435111581896498375734401457223274046630329496622941278069398609678921342344748700979177033695246794747881868428784252742071450361429725504484315620553839532858334880281277396531264522632683781244718260559886823994549160547253983489283995076553574511277910738952321138333972722030871387169060593496015432874079769548187094819877560078283651873334451813785637721984855235973823437602506262157331202556345055955454155351325502965399736843239589904553860604558640336340931806405935097912353704978342536535833605131443013153709698655324553222734234504478398116499033738112838427693052912025636753043819913881437352106325212017604438091712877869670819920697412802447549910127555642938891323904396296094532261888827727058224759846183647810350615088611321350824188211845475016800932794302090819130119321823587088943292034563690716797341016208670495089957586257323114937922902177417649279094423981665209564207386787747363016684067901192726148192002990540382476332017388875356562646790580501905982640297173357781156422692871767676787788264318085205572652133439055726444884580041599326808209976306795848185473929609968000148061704977738722234509687431021208571481449086115002381775677172322400958879832638247109036221608101852014448601833446662897437087189140284180978799065963472117517892716543458249866112332523144792417053113469176043760999917483385660318969123995892178079204223400868988425556347307699491464520207008624901175109857675919073786990982978284120338559111290706543628697145020869117258215955448971428598301194311415315208854866321571816671652224396475265025594307706002952291682641056702778307684658472994883648516880553215714267790369290443068556476520229745810175988484969121610361256706690876942572210738411529195955524552970421676469882256454551638369536585709398375422465365851747107493983178196798954027330400323685672070546416342927001084322528693447767975916117437639488979177859623039829583264900250952355285825941070847014298861741969598724674639820729363384816050040632110423228270185720251006356386593742816269017149241242090468752746898816106074336023409516711516799221904283625408872384699397548607142676923428602727522172981857664021886350959506455012914942141472862329421399354408490636570751228154261873112575658810986514089737232784852108775971413077097588887430947926513839235030378560778958438350351815427927804389663413133070638170859907287537770666164545431513968241477570905069712888212271900443785825002450247146306027801955407351565705650899536214080950192486906940740120275475962742756639387420310580881795666877727909292119940179871227429369248872964277662446538154898896997370037984835590070315214034274363104905065502626114252875694282922345456361007813352551269329237911031505935396284645924013412547806695258871818189203733686311702367535119192417165509172115381608495371331299817862615897847351928772857046990372633017642448320158292501752368577914101473650895628928914804151615682378747997678214473579501580083728498617478093691194711763270157629984546161113144791480128896277623267495867920690471577297010423253136287931013550558719693537457076500398808493181197605924543158041732013738945550096635948096866143122738534252147385348685214052754727861817918413365891221494431283119653715544054456901937286725600749967505969185784725423005882637978699188783858287362923556039928355762145420363343323694654948759544851139151828700445780586175008544618314333897240992405625458407093951699515243344648953327236787272328531662733397679390945998556268074292678852144820195429775855504025525965874793857940539917624979772036041358719568506202527005914736237406100977500003274652487686538918436643723196770448958911767806347304415112449761118122344087090093497558779490640255883508471412011677630791305696445570617500250634586656002787378458994273860657313677296011915664161196991244363463578343387778051681871439110747835624175345749334736636613379240150598496317955444794058642159566485949189634577148478074780408378747817509556136641688655550722609248042560318551771924511700129287988064633818381297319836786322042527820604206329675785999373661787542999293726947180905423734744403663154582412254050918673125021585556656048198743980565025644905107925676243603072458596412355914791513802592233192544316333028536873712087079087032010808475208682274103547112553331994259361510397461325172845732563904855783692577634289378984757581427200727429851720299885891516756193436450549604367231243878878444906504686243785374541626555668652475916639149637575527939150311992571167710824436441498859253751611800923616870727026957196825718095535208185858340623573925397579822989704847171137162791196333872020243197118125671874752171841836048040835284492352009042683344866914750430516391842037625425617299288363248323713714273776623820145999606880623175599610276310138264550395942594879198815189800381316781301757067810871154461442189915614785813274681575858558647182569573090974378408522041770163668865302260090470051142659491731699643482709965914456358268269642151055037703542819466848133293814758543088318574554350422825801873220773973791792538043284679024871973781547823050971614813972752179137238391570532200738727785311189665882869963980266296375146239907095483681370905174722730052921051574472048175295646506133369326775475165438449676547590551536875113506481305679762397051160068255282971686026755727799646937801791382355012925370312319387185472056757776790473293883356800958276268612141347576734374737989832873385921522965944472389673457367863425969248764480975180486281071340278757194680798702242779297831399907930696803407354948870945135375522442248725224762221843520246301001198034057135922812151018635885956110564861166727292691076116788223323871541759350263387220700342786299336042446625903187797137709337618634831612931895642704439649508849257191805159746071425958931779957066653708662573617129080642111767243604097563222632866997864342049306834128225507533723212792747376484478836196871532735388791185750506883635531963962846335676202551034853828688400508990250879773956008389140515541692501585092469954148308698287112046578531805897819447420088402900586400920110388072208889280717116575584238789379543691954319764495107086003638523040025372245586298925979489048679972317387887793421694801587398461130622698058957163895274967524803352290357585738862750290034302903153059485065433054559933647417624765719731790560940805908197695930566556073730316195801968604769611680769844155287138095020279111453084943411863291956714727991341270268414039503334002465930017102895655596778674092598039868748333939912583912567691334961197709116160021574405238173381716626980185685702404326020413151753916001893706988640060826623078802330247964632488787959562417673935302930038712793727067402516165107410700995636628439987089576240438918906211953247484955220905029950254558086391834688471294538807859513805248786830267874296134411605730642574056436497148814666441714300843578752671128864419555579899669591948248661703614436962975651541942922021869844095023727984321475132657943110691838202000148930388956386058238056612188345624132984881139563404404153953338558446075899696271123194741767511500903272652195390031850927942624820842051431555796713638580119653955694574670913051801744743046626866022280242023998339156917104296624925221217555246017275654562413952874059696062598868574051770701704173053667478688492773434759273343226578327536676941940524325476464267766686479288244295258134386934365145685337318509192903201696586812935179933125410629607012693167914122713551807099402156732535627350978310104515589437002268714881019420127818516799341527630638395331519479663156220799387488333915155530392644285542135617125402106202465481687564848240230489986872794089791135039945554691801782001193373767353498908929441352974081805725245426056127077077029695572964477889672469271520434552669267270874128768159088753250807186447025359267612957780889804124557760571899845022272424833721850528442356516480359160128785055618012249209580766704163844659235307232201756310410618005370122775008529616117951754832550247514650307357966508170381649657985412199237467309514429860719448047260471993628108098625826835222126108288668917677910063955821756623318119203993658888472416803562174638207379967962007834083853852709871548841642085634897366939250833229871276440022578331379821820862991560117816476237998024833247614443601587981883970244197139016955521952760959217111775380403622601046382108397890894886082881314197113455730771649272682141357561597383505430056244393462200803791518428941205072399925816463973816129397715345238407882968349751400995805008277896327991629455363126391651060785941398211816749853382923718664056795757487762353716853476118849459283628114438841710883638333842300598518429679828404746932489275726757242910628261566923179166968652609375877850504758365998345394847838337458505826248753713968671849691835717859934144998761417423938597751062336181607213063782680129125892628490563275640586644855430449512968986946433045025361874807494511958914951492513285142245121606541344439562501123453397213136155163736725909208727444819995258738732224424100534003369845761984916252131929610465473060996209820682378708191483193208525760625988931831151325820965723798935380311062129300432362209086558219596340226968375269854360395641750292352848327875932035969875005976376606193715385152612624037541842892986742363084591079866098961960722548007188428746311780484850086877468108157459656673080400176519654017571905991266392153441918991670352384311627299234430527895256867091873429135404772684264065889872335879664097787510080940537807726069914659481929878092671636068032271443993576770306597079074309159395565323998630372422759492240563057238335921758600288235543576067281812997095245477415963285737496748188265431755806962646086692216740056871047736538315761508983300853969200362801309842397307253396648507334103720168548413297880211239492387862776816728906572035483490394803808242941045362983380785990226692242127815256043991329184064534326645504364713288744882080550705209580742992730154388665524195933300185577024886057791466831386150870742144903585905161154931844866358419681888681071521911284221869875497571845633038884136089955709489960399667167070065513695534429727675118136674956312232830694896847754447030295928484671143382960013332035539995452092692520758310987953470496280094019204197608247048118750834007443495857602604367757428090410574742385378760154279331042684244545327533149474478057633652403477538119166850962921950017150329216562366459247957623994864604023471069169573635276024760328815063337810092400164235099128601932734047679313381213174487997935661659741578032092028017405648242296760310754199217376835685688325586407744620700269068307805286534079386698096744253534494032550913919498224187658879879468337462101743561574498269628425923531346027534493377494993246669677430347801473407126586535429517785027699322288426624048731776714545995164430253119436126063202941516254586094469842939439005065586505174052287820600001859232210756166319424601436255205406317648641905662470615221284745869672007498063821002617035722486164478048929174105840392535976651133724571434355695876042487739155419305617898145145840623014642255356022770236467109865044708294667471565954039587218749942842418258092675837163519346037821429776601453818556670227743654551463962158764059801693327820737180328128893509991586465683563896184851207881599678286660472982185498748522596858096430539701080401119080238309771641541552751372042717680243811920495183622716227460359354668280739343055096560142576252299071601352901420216426555909978108799019319593880797878967703630207069762448719338214905252308233638457901688925408091815455408216907883303515243268450973672038620106653041381914768823625044446174449641854122163824662275147130777172815385599932499097483256786949560910774159826984082654899618606003682270658387898794954766521177225868980980471637420109522773258573081314475176075000192903878094361630268818268736984607796949333012251621626525407020548302476119978226942131709952440300826925171388046702553154575521974085245139413972824959528297983485054109584004707667454509690024520795513512610855674532131971087253463316816597441105032242051904916060571128152191167086985239122185844599369043176990498850558672839187290644477529763373438447054589111240234614404780685393999804778738188887599517211997187636451943726337260224983831279945511115950994688369302436773651437959576716581278706343871839836181585178096711358341932641713077157873735424202727303865145299833009062869127483798768843668226473462543992562913248434684551860098842425161776110995194592406502276368475121690044052912683586150463455869238887071046480170717930124245008743024874155981702843738602592443588614790262156562052572919053851937000970731260496957918815169700660446004108008147458844420360335467601356468298097787566304092398563898226234892129968086991061269044791875186915946892319145389834063384817093128731971564837349894189380815815611164286693222964934160069573739778885937518409887378129213736196610555535059381409031811356276528720776405415961666741536091291593125592067986574476270869222474092604442330445065885795600305230284462682556819619827837359300158536916730487049749981147705472643512405151711119296706389141427340740330276125520229971928426721606108255548034691511948589977992128459412756096046717264440258923525954309757789090846837906468299882821315338651264282625533963195704484202625810660379508068347298657042614997686550405972016842170304557988924975328109616223573674059135184737083599774165154676756468449740717975569566338089678755125993590719676812207697153083661011075811127527555283673444123020487363285387820227831420010862780076374072810637104895097758705674502289869073051794228402813697699630896962897493848131160278755890257692355348782533611029702447677786168151028189556348169664122528841313652305975585347143385398877584651090494079017491194367034149879967873364888462261374874745016080342960093697653847326465780464697135307156292677284548123017752767542446321604104004129042126938045934938525718511452778716283822066958389826828543596244833204044056512842931455385185760431451383426509005466555247067039994814620780940141307616249110041874658753025827746690129606905759499841217260075161697264475456897800324899960318663326015969902087988761829094791979147171726594711661756034731105888134507270454468814863161583601193831895598664712396228540171955320126503308822239199626195346760371307597228504581790102511748417562144278383799092234699341073543307004675651881459143709113744535433371162303508292219472820466683109628199360165982095376994272548138588636081005228587712000449184945082306235111714781942410591216586151947086885900599079712893591314215456480826075311554358806293087454647710102395213060314171241048309666958242189026639910214342132975418356203942030101435773158578907234201124540086160043081221414032460715732159380386049843613006474129244081406839050406738333126414452404108439962190519470898190659008354301599495990093536473873253873058334818227811122890463935914201872926809971206625001037762900032179345453168711149173020501694054928490207838367993331978173858058284983796722163926920309881545417202015253676500737593921045866064288158577851602248783487406887469748747750026416997138608710064732823834526168754571613856608538815094083164814294383960532788153067994371658802119947456037417637109895920466632053865259675213779723459136522507443198808314719634788653673945670660838860177061189830110827138704163529006153425611434418148727606794635329586524072366315913712149160222629580187180808166771131120512019559588015674657597848276056807508190888786456540302373219454238467306290513719278099361305393333949730131375605478079316473320027794278555012168878841180431399803187106531718453534789162518744799824935092259296379629881658011134588129578193746682018865273049482502556421456592734563491322085004096615780661418002304046920988420340700857695846898462753662162976545659083961930729493973114260472986000082698408604524763244642841954185518559864500996866766877230068903472998192155010550971209916496416484287682510101276417388982555925845519766765911347584085180202824294516411834169709091155889385336077833159419688827047128904196206209433887647028188507466642535121977410123622565135475211721348590566896516391026140749021758449222727457182589760829723575905350282356965679779741494222743477306366443857408606453752645597776107511622477564533004289331626824156911918319497159380620278413270743645276930068633378411397487548415784573511141880312363657415829109933342809036231136411591179570115343823934950762436368443797738343410558082649291015849734644170396986117839041425587874427779092510625432712809304596566281440917917567195215121152241081079755443376438624678229827927269968623647810750399087026090663933053188925051738991169232032380423035717922551074690792292406885287349113237656110452249698202951733944527668371875794167265267515812491018751541005109122446613735034378477928710729576385877455628709134687189234782830503746923358287824928342699996853441359170107031621177667605055922019410654168578251112877728150386254915238616950385100816557853723668363456731183968873446403858867302124029493487091216408721421091601067610011100027707241369432651557754402925910667298118871373649754664499736113239646381236538550072978060193558948965986703013247148432642893672011199478932715233113308778196939168376286100635866073279621087993595662504257277011748625270570802389076516223648915137497028861155717839005218167257893348954701100426130347037034480082704807573097319274156640627933608354621137002008394842179510710755405072632022414248379667587062162656750605981195075963699648929744691962793451793273961476774763311554797435446737556441333482351959733867673603244114426744596848819957492074356899839234068383205727773510721353421383130702914872805678022820663982963168615575998898875938629535939251974919733914692697239788568215953015649341320311484146509969746237257412526312531050008244499026400312545052642539558893232446896197046660444405605854437762855597407337740665684166402869448813570953793921070451358191090081588871053449230397975443730758965767761633511884272825381702442451825439830486515211334588415065017840569810267051414617180009039172568748872371673011037167988875384838998140625218472205220267444237195458608145901217698626762989234218231219304096484350472434318912853587715589634285583110649638216931215720131125864928044337934993944628133870997504539592972501885247497827416651986819947473334877752269613794497688403370179863962252835566593312355053893060288407472732936102188982314022878478407004685044477550243596054548082058038687619357989136224605098191979046453741113525059432888075683733004969839476251469429175045912912093267572806097439395738524535785240667141668178813614194528884385361326287707472345585406609896321173918893972486256656378512666517146277959659359339009338772437171390862125146666286332805525935194150262971891025098099329749061386398818990992892034866513066127848258578640558242829536653284325957385423874379435268243742320908894778138202363515578736729723783580906402327589904083835589083661946449980270840131281067415574645146644282540066489307179774219527558137270984090403081869901525093165150223852008263846006647527901919965913460778963344434112088136779674960812468755666899780821506542456787484199299149425568674447197803553605263871393947086806962825682487863463914505383716360993925202010086174532609084749574333889864410231720128970602935534902699768582306717295385659073931116164843578039129879810347597693167207227850275691210101722804727835770680006039575867914645909595368753294931636312191143000009980320861191994709331652216404058680681488313266404318275411316121296225376641575820230098969731989592965165978277550340816055497577907888257899875193591544016818332909393824582864036072685669871378526606965047390612412311855635516603938055167051333230102515158867900015245731685988783578444323263281885260451809466351838471357098706955654567668522813217250298310787822154064933507784813447876187229869013938013738663522731910822494565289633646906932056645450515129658228539933791015927266839876197736312942020247401687386428476718793249579460289123555257488863149798596683901692863980984620422641705428681575948211874844613801206416350393212070502589487958095825666831021717026195166849876168580221194513573921064718864148779921924202485967655395025814777911503348347839645882693253351492757753923256142881858189374938527221056346106501341970789499761838376513227161829961065303110520338579334664937429489296966010821810997228252287267958186064187086076579162215413155672893710260780324365919326401196154547648398894369754506699766455536183171947606295731013783316192498932837332407657577443621532610308480870362112689591794303817765598561781097271011384184473010430230384514949200489141005758770770208585133427980283443256440558273575718752602843385745273835516810141495132240276137721593742980018760270494850516996793883697064997134126049413522280953921624618816537747966103897160660179512362611564005256010127350738539597825926372090000608981218496184432325023768473489777950587610424251217529485357283274241044052756543416040710149600919643840474892082996987898521502165108044177727184884205596563470748431160410573627091109199190165716375790767560468253993524544331254986206769726179792909210060129945051182833177698291947794272149932449819144984097702272608930541183930366390523418938442777146949143476119919222588318073819646632392867323145251658047729298431922610588377516727739218919965179837514120603834309978367030015428755060579626696585034856365998441587371968901848364222215749606756423396952350245504047090788221366313197686683920177818454016804562905570456326034417821157927022800828053694404805647998066139053008725976466131985580874077812517206518972183301172119587316018152538272727908759129000156258406061683840427356147571650087092068790535654390224445184791794574649639893025737171269956331354008763635481437080049602962403933985339941750844448028287482256877689583794796098617407275895628642054550829064711070722226852288599816485907088802692907704916667121287322399072427738284823278565758130050177315836307543858774174877186442845654044785085541820302928862054221710805360133914246239119241328663043792206511105614006822931403536823342099617423853765808595964205737782918609239002475663106872241880950829086739261504657423950214210561518362352706839260789038608445762961929706000057630249725585630866294406381976774401324812832390177954214177631677224545174328855928262485080779586485142949291038170777363126293892470582346580860208990083681310016887338910531230162571860304612456366043797887736795067541000616937655222348856062776540095616693537996239195109050315864209472656277925898583651185671302133806023407996951510311854041763662752617939369376001278140854736045623310696672957805158970204085725675666055710530514439837459578432680271105197198209947626811162279612933075452291455111016245468655966540154184925170139167647709078197656348394427253112216426014084412925903092110038711448865813172295627804350274739159121215892345922422123286759668813879755865133071785242739745758576302518421180033826486846214087525670498616624734787483497876421126948530963848639600547734258930648727442104153471089720309201101272201772284517908897238723524690787239042619010384046228419525681037120770772870005410295098130749793575215110516940361761749789895471913169732879756609303755993114064744311074490014104687204275580402403992363371008829606939560700485336144772314022931487991189044715352489982228979371598528587012164078196706381037297072878536373201559990366979363858949334662096871837484640954092285436410226347348227499054159538563166515425064969622862984611524304955296504365138283853520115576390446484189427148978011881211992126623409370593331905755251955588862210706634844680386002212280897927657649785429088131746617269316697163660818535357141050886759672269696574355529133677652518534727277106195126973001565128153344634657964359429352968703808503775774139290830699835676198919542249033189850477960952109975258371777348265469566267112375691165015255480668267603360630989125255161536470047844723583248735500222137618878026723754305741535113283184221345411912316697125442083185733328045716114827261473820502950517393927725441555731439857923142859661872577835010448930894799355172165092802203029757530129859077499928631528079608600204618869218737230489409819704895659103664648725338109244195822784811034201796269849965091995960794353507439867761972891690367039236359902034673370468695790785049378671888266503078694868897362306562405649834673591924923446979296891439519099946741824692476444091161272259823637701688894035809114330994755969784879474321193436282626758966628760479602208668142759119176069093208561685528830759691612705060664496297139964584739646393466871421622582304714972015824271585140219089661890562807255337625607204856081581439560470281788425118568253288831697787501137515773567410634077977000352395559569222147524901772708646286254863827656952935999175569760072138977929196853577683013982664302507030270833759702055987305320219598429551388902497187794596361358958371347808502676475022239548800130034923350652164315840254470155317198113663531598478740903538168791504382448435644225477770867211366194975367190250787532236575417595483162501166418507921879278643049468203966815363331638212649728794257617049264260787884691960532079163752865395002012301562103591621052450505305123838281888487272484487879446698132769653183928111119492352759095238424388512095178905368304434394964035701681590734943706002947587676159021267795391366707235572980357847668992512364068582051691431631083912814418518504989599517818315250699746876936836706465769793263174924677315078859869155854080931133133623149017817195893170087266290848286204757299471177064320575476932931437974362604352901226111699672529260908868606334415917191641865615097967961905295270063093489854308106352422169436073653419895680386628564642791868359226130826190501772128254270509243937379968621626367792433469299108020841834916796723973408645092124721095236416744710804052657177755746955550929718849142507348125334118134146004580983462096948297791911771322213207217918452854851637736062305822651558539595832439472760931553617559135655182223649148151688692813076875678994007137851730617333926191573832786135204119945378623723991003726136812066704068871636622803728091646775954851549769569785319034056113697120998600241884577370692134500517206669698211659214258375195653241202081660175055025385815359477689212744015953211201027580857856492160634141429629039524363629631519219225227552025188715461826591646640957528957077127367747107325101599534681063093621100407256118249740211582334317437694996562001120391046221388746037743447310976746299451669074267005388372334962605567445205405650227930567733815277657667122174397442895889834262297915625037649101760388640857619024345332993186588991365942555789851124600950990603157069666496643363353379709894340093416144308282864287854414526044613209610108291537605108953987135465862776635460932710758085999569573672485132595745891273362194407492340957701587106344642545807064050583107914840640055766437748558800747318778268728675417311448321215773595198491148851380819250464902286143860135369606323490526598861231519914309035010774380356317504269721490130562912377300845326453581530040664749386309669250725379343570500983326064668256612693248079823938608151920854722546776130300961672924946387562817259816810062598789848824474225931484736338504459485459885323484834144994327253573869090186338715518105122239687721359292526881797868672596907625920432688202773232762564453014950603099516465915981830138740076444537379866892889248679192780525981264352177542630589250689814879215768954372359826263067325378300122120884626402446604912509512862834504321185570475739636701910123544484893057247818527361129218246103086773775499895776705159375047320624614937529845857437577875160191365999343605854877626520870748250561091983053238110886914502849234585903289943198598883387854410452927860660098346967640411531080062112711728076490982325997198648411949921106207223747239724651959881838732527665623373789995540861632177152754633902814430389398224979679494709676875885239998732434367250169123560603156985897886115124321912275573337631209675966778330634496343062405527681520586452132503543121798150802676766487205215438203409053594265096962868217899934083591628012916305455856351136932362061722497673248122207157660787970383635750331074779236787222022926055752736229328467121640542582530698386369639981415770692137760666915221213300147073536501416732142058766634483365139004026652018277223228100345531641446176871389443169953433173062052400111099840189894179832518023957894352796142765421026971110639565575220421585371388506207930978296209411561752571589255203143778343940505920662579514985706701517378588164411891941022503501191823862383909035202060419062685305119772237712702061536388810437561584048761327907833100889155211372453147265921832238806159395321809160314758519332408713721567231141468095030692098701969652624417593228498108410559415477778705302652288182699487886316224829131116445851489979715022495001592972851618887486448660771599868648117532110827255443061241677786272376733209273172444744950168192005034343188500866970289200138080825331721523091435225577814562748609732801017804567915682268650015823146459211121010935597183816251477947734973700059743070795025489316233595675061282247818667824430587012406217959838688718514080554797464530909216360323128290011466896178447343365954505032365051140763565956846459254880512712590997721089304263918984590712403502188448511980162896232724525764688814307781985569476420109465077536476898182819210248488335547042054805670240467393275198171857180326244046488093527599448190780957670907565525559285810260085320339361072699145910493990562877052224036889277720301536423579040139688591489039476010585463779321491999512175486536850785507589833259419628423199615158845571716693149697132192847792380628083717683988779264778897792379768182081191134747695015918443858479393724427620709389011421222179622867697127921111277561477017401161164875252366921995800884203999092283925363244180992719047045867913797195302581167763178503071583419671386038534029446880518024567615310935632420846292794965939961191724095452560441580670145553793143950503284311746736617580632688597172985428392498487736965219390512125934675362920119851233379749969523349897923693058577319180376711531092479185851726892773080781957597122523770739034016747302918928056753472548127734676314137600623806979694086674045847707910960286360123054791450798028535801686635947526260172247430904574318824504391358821958050726882459566299367618115209245594400555701516993563957442884295766825110068014101481058491148315162110155019810928701518788557632079281164043161789819537990524030332161671771704238058440020804656087181239615851195505654212492376471768232542420672305597071946107706660133040736736700870215743389776563224632301352433032629051419412511428315842961442054837178473852196775730637866336424321318779175713250336469051223915556313967860617520498321441534684929447835824461899674861703421815202262360945941546116197839321955921573142217678742875976428228760795016574584648886012020011530405554071191417953977139743745534056739054975332610984370073096173400614090688426075951958980273236275087383153707304989633037308479404169038515850789235828320280063654284014306528913546660319840983682251732672853420233251419799009318666101237486131749315420455215880768190364289916782073936898672621873701855474318230672986201986999128279016761128362916055581632868428581991831010001256747010863360484423284507366608845176005749323957149325643409348779893018873654911854603080580019965474537543303318647358212921882294025072510401248829928107744520640521163448294329782536425117320529203969947527787472563400930677177156181186167709615264526425253753487886630202575753378587034466984129336062515718113815318627192850292596824724024666545062555234665675517639895147879596251875780169396323024136854817870560150716372147886594453743627481860333557877557978881785145923300442979359989168799422590966155176303769548665727701179720149084240293197541944932913421807108401617796021827105804463793908827202149882649891107840409092874223312990205951891050625348350498246565583839865123956882669112399969910740708261888414514930278580650226001072762376342636737247048590987907018295358421726578831962264684790521039155860646162754170356183547956709787656809284155683096703838111197152172791270313736203855583121334611122531779787037036370015828990411289538947718026327203463033501440691529685388799696151915032739710918473675724320928459228733465970413413418800668585486901122090542881720386864523808892997462617836885522012430162155871012095003331219900518208201162589561125401645412137483309650708486292282930301483167477960377746675629741051534886144964939084844507654847929490421569827046973361863418615920441131473567690611254224752183688430004124500496622789254571191375422938303273994167363717716569183214171107693035622305515530658111840927708549403356563219301387271989226941107921281375875147760013687490489556011309173147797796911667077708553157328432413487239369608082210274030354327468914420924523227668895658795576423364171102695686587860510351031845395902072576785395140233161406594688684443489577746954174699225956236440955188326834332908573765644470273265112919722225675708487229381914559365936797485914916060936433962974219333655732510484918563131538466759024814749232807817243886512244098239159114398287437345308864283708039715140031349871474322201274979742078441329626064121207218154140224869986399469238093022444826981287961775543200949123518110088216009136095565700773074360829262530839841458554962713154662313828785975574514279936972654501563741476512347971765236956149059936632431390220754545225668472236420492451045942763197038959894474126203290925039463654923601183528090949042304754331602553029420137957516152871466200075087526659199135322186077709778224569041584263879389662631866235047142014418916895792145101000957040473535998286844088571045507536068486654549472549438192696120104704081874696968348199469327048216642834905310898841135449669441479622567996763626893517548272098293787541833983700493354432607902347592151979372422904827574238819894659742491431120715391257226870823983149176861905068755324425357246432835288903995186254130087268094643507295281716823396057294184528306396952280084979848502627923123295955313398338586572830014406620789891372725991865577741825939116881987130505032365084900628599850640995270737859035483871105626234578504131128709983490856086479084771431575565363725938508496178242673092513334866592144510424971204482892979895706686408473489441981788675600594350588050913566280835526546557849481571588119858247698710559638952819455569877205144594805917198588591204783972171330374196634189801785318083915902024742674064722452015302023334740840051718262458417026467747240606189366550552131204933944037101963713119522433837496351661672575652378096123221853135181152609436560297019389565801509386557424332983800023749900459255372665342667166702679786256365443593870123419794170828934050768668457936240911400842352018166191082485161516340379558734200586859469556190357569346294542985505922575935112520075716906538676680278786696875168761067838058612180772910120877112435252200067047266592320130176496201152964538078726854557087286368741583402907496829448317628080765415407260900083587457379003544792485061773579803813129382249849256396394730312340146648518847221152107739657606885894589332531155777500890912399130792364396149130400254711604720805446800538571659868120077951801396868543275252161955297320085460761680688685767872671229331136674344838529799229112670314231710073759684054235528439951105992047918043460702188618887845629098582570493123993871607846112157523997467011293054486515301432203943181533822280438821193677285416825898427235335595760049228235836250347562867824673698485637184268063701009282132772928828167723333458031442373426653735879531448149906695558957692027585357772603574463569785509300734796112551876732074564755102814307333715491454589664016686466082433782283735223536349251264139898159940454410513334410400755169631562799521713781309987780635418097456632164511704138120962243885293615374180639796939113265374967490944981850520595372678768253385206283116763329070311397056064239356578950173390762102228384083506376594919495860835996528152796278170049671609771445493520155884385744752688266702445561089388420205200727702803714924909631610889576183849425038907964415740941858877142181459427428855126203716383717549301657767481468366082649186120563848920842866815461675013945719384118407375073390822824451644442253034564866011110892692828080318330772211292937087151277414262777441141538465125836498615087651587723521545374204955077071237230086262483474275671188049391294860774157372070765896111315403392900615069661749344221713920391035814903882175140766593412834729530254689650590030214585420434774947606104482034952208488616060202227926120150252150465924931445266362359215575350420479199986452917696087187565479571874288619326567182681912083999926741318113783470674158856235832308890536506390952366406221184925293787334850736901621127535317652769242282300250326622894834562826576764989308077333395681816850834272921790304880540281345020679053245026616973702394927170155602820328022471412855821115658647807582279143868550412469025011112632080870500757749380676279284465689417730510193732032985101481236178566752188375467552528959855657754256193371168302779520798429784137752406610614785283161813728150695052409653066016568534392148481069401924076017577231792162124671413204852364733347247632779367552485588225723984402518783556787749970750323528737053075654697008799436363904839647744340743766909093833378145903105778469899228468877746271374915271345676951849275938198879944143360213388618139103424010564191133486063318468899794293448117148619507791859707786781828024196977828727149053154603132920928992008332725244796264303839016731758832792977250282152475239641516666172765849418980268464491828323511388864889153562425424711181801190617064056588255673429172824294433502655866891720784888497855265675816409082121529284904011752019702015276669518022406500708692449313916962450861197688771110044143250036197190773973166090084558046838628198212651402381660898421705518301657266157999830329348369285129926309759509865872458855728449803216617057087888760247168271198004870492282151810663121998374488059671133711133895464789102471428409452540571530728451856325232022394074263870791494612894649790662232546646522228564027106442883502412580590670326990359573528345974323190058850158306797138737176880635629970957489768855259657219923943115599961439954471238386945775796832067488031678098773338940849718007677767030535526346516089594248019489739354971746187494517321382933840543019468625658378285097831423393866850089527158027002679997299906843899110027639574691628515841569398574260793967492663774101237235441135927997830195730201454680950325416216666948001547541794677457703201860789496763469437177407800095251207995323405371683425100858101380241528439472061934879585407101538106366398072302452656156870272830549005126926887175808714558395623495933865972683621964702857259734526215378982210121522681614176249839391878288868721935549540058694400215039559270310813584954332393412722020375689080325513154722526600854388283620461911526561226031316753167813721035447137487158516468383639353896808959067022827927373111265621829465414419218864461385734514036023833266789799257442449959378006231320138497302673538119739300877472001542364644239078377822938628050236313134658073946667518759952312078531839612345299667230020870098442379825397294193929038543349872326537476346506141542081235080315902503684786288517893455884961351306223984575928121622480805909839344875488148591671243139529692645465480614456945464262495893331416717127805478068018941339065778164168382759936263297297181403967728500635144237112787266442997734957152366268509436248747564570691008992017963766756097738042878817076600756226173985644965245146043506387796749736538045694042469547864072345993834787009194086479779107072440355566923244855351707178929743379441850484059372251510746168946767347644228745045246605784863417778491127876166065237282796902658431548269465755613852990148007576607500104556959472298251313956695450678188791521250583550039332479657259369929820006680660035494325864356463978360237190873866032176768767698078885918608656114685335465986389535031795768787556014581847423813285308575989608104987979892639701443344970635187311210640472675791748127946525015968175517985204853296611931297500239918385253339623270254764606826927049850282267591378577025964864729131058365488180670301801469074051730103440369642744097438824289066714115196538219426642189670429167174212528897668387655958695175483937469001837058197886061929234844433544082894255547069987768837531175775101882795081527288333146128981228398028113737119183132298528891791097776432444898209886149095709432574581994079417885218255342349252075901249642843898815423081617336020859967889328451882693995635203187223070573973697366402150881131648108632549048578887470874936971344747308306855201690371279705755096842313127477756819761921808368155727067033274816029679474558515294786742403625296783223129708237391160802080388184877782436951694515695629233188338707172494375244359874754279484294426606703065227961541498854081839169173185346698610052834182674169614752438160040513560483462017198232018562293856953343336432756344530818181389337919462124794882027505252796958865662303150322402121378895736133797241963700704745559460214304341862075414695532017976194289082742133184778206921653781276310419150237258677903606703893690179534032934995616384056877292697091227019511491855237291960692147593653755696907149648952372090157941567599728650311560716699072550608285236260732777958646234019667605054795727198972517645998739361561377100691236907501871529053434473890493625740710459936216220735444188341946105466736113489193452109522137997137374267869889002878685804661297509104703193062280321429867035706567523982984409414399423877661158464319297705863636344195612168020703559079365734010322193450996784610833634574407020816512032055143149819589504316422665999493467919793309370952095967181456146680676651112323882904202786644337274328298863030095880415575229304939472367594321215173940354704914408789717253762286533113902042500969168786223742022734626863996824320559592068617034097312625291871599715009571735151018155768791285357641191026098528494627385053003452993639650773505678319637282278692786209402666083237227535957769944037398975507729492974613210917169451010095494864651970687982840893444638477174055383511359933278407414365931214522184650455828083031481566622770741641789136090518930975022016191159874985684251491562385425558333982302751753846569681938105361634346751418673734150987986665965187789412424375802260136370365986826805525651931641694690077296406684806977897844087808303217320499860956886284508344491040495595223917235521295622361250425133881859110944883192181390330741612050239869947640946779173894225701225264680484316850274465354036143482651789488934226627945097374000344491140424723832035451338136018573887621053590828069893146153100419806854598191800538595610861555320733189899375586007770091409405307771964862245337209631284586284770086033165836799644264773809615585376470831865329693532015947434307577549233012926120652717546712681062493275798653443568171669509408507364872412293980244028898350563915801007711270619112833188156283863297438441919391948577842430654795636314486798456764645548703184424386229679524940269070600005599936714965024692739877438540334777589274722380149482935341651048422479832473061746406487896165497439808823280233450439231064690910834430809878484718410132712358442061255899020914948711935814893770793754225797480515574517512993729831825409677859075578882678436406459439164544792881734244957730958620342095232570548789513954960242788566559028472866800970064608469684268752242091915959177450738262386579373059655450559061412218037451259379291946603324770364411062178408174884790671459900435624064310769264522042654905389958187084632016115738013863208592785360692615308514623535313759954190041381970628661383841298484040454553278788757513915316215751281596183754263782222901132409276248729135524909921432146525259623561170945754951416153249390153051510591675338540282376780590998164221654576238972148527545391918353348719463692087378860274097746559046811325200441598789715557803550147949579342261026459162998835304317943120410977924152851756768054800786103806476862041408112008719969437014449429472591283753623263504478420723490578674659397628138203183149693652287735635484548123876601074525688299130795843447874716188985047203568958963609946335450258999099035318311776457535911020818466772629876200325144100321381790071686275521906857530281244856655372881179487273089116438209413997414939283915670464459320927905369123476425329354740386191224294268638244261293006962755594704683156824875311895161993905344517195073056490528424485460779932461903514192558231415165053133286788343530631193793744513754747386007375226282662648034325754488346485418808409243123520088439158191048087889870897626919854725833579073722678377553949076382312609534650695921128193714926712364155808848898619933544347084778249613947507544957261845755391375664661982426953727424737670286892931804658134266573808156455415846951248878140514291373051699630387738002517007677579459788593538183508309757955540493034639012325014733583789481340569772083783249325837975013733433721043583781397549090501123030492916023058332878135301099020642142497798848518275232860195814375693544721858761183703092586311914995015675633881448275975764180422279553397372763829903685244766877980447422947887904985377821482261093860846425766541168228204511365234407266516917979291364665152852435641650918095170495963077735252270717844085773498260636126929667524082732986469261017544926176376717840046632318299502174650870675009815061774415703034793277018217720321017779841131568455026732579075772869999508173480728324384451998245605444465447666245733229950401368212571528449959838689015071554143258699385309356652439770377991666781965821399157048014376085282257255007895587575376678372262104958667937502610003287457708306234853245831828678715071892231463736341716511800443296181105798354997383046586540591063311996578265633025063918020422715542248958444589804896745658891189553606749311216102528954240530645615226574214918397425945908992388650493589579739536566237194668688735608461322816491597056209143311826371264828307018253213673412046142186401778138753774759229932793542307281787152318091257715013492442938128833765944947591978806912968438732696146970258899000855695189751093605612707732716717494647147479529248357693499865598559386305838881152004022543293471794194534996955530481217808390766992855650984818887874914086375359583425293229809698636448890198128296068174159377556273498521707164684893861612738085958331537018585032406683912336341974455453281914919998074232217026649587213387366979594267200494176113006332193826789763883870958885193781499098679572782573961525291178558479695349476124127858622535970571133986872664161641707334344471983900153510190045863417447197132990881020725683243337870028587590454488040064765610230058131280042053741490529895987954265465987553913157411543123922523100875227803909327232945958938029716261245631942517955673008528782365428594646622535440025905444559976446862490640629082101077386949999257220526015069478069303040491829288381710971433631286143237106454134122836955734112765022094202123914633940168248578392556020953081556586373004004781515290584366544370567680438802401037761510333094481903119090161304039401749569500266332291171878230033292446158416739912173724018122736247927067525858548968451506034337544386894500580973073917759019480172869624031163011672781919790239742476225064503923310497970225048887827976398904891576677600526939109409740400236955488572066431763655540573581364980310578074048397932977380621231782733390590786485697131110144657489250435262479408181249949090868457698660811381836875008379625724686804716397080831590708889542593302592700281198751557445911868412200590390058952533277741357528549068090382156427102903994124192793407400225791276636628678074310270450447556964533688166645379722137078917002569075763398001519215026956980914055609652939937540298348068240870559389507242075532973482350706241717975235980058245203146473320806497667731894832643372622324580893205200435201819570780294348310156571498884669467711166525778652790819257111742438851914585169011557273722516387250884580556256210490956299065045057910151231292000843343767211401171016263153624999576413986255687311545454838837271359010121965349394541221922526706637841436524982118898482627117129167629457288722235152131364714079706979661205162594251973695503729666511931284606305125945062711328127826263149165456115164167318822204492270891501827117422672853422387471530637346772200577650395526128491853364536338339085428342575049285706244234767911215840565512599215481713907239263558916646680028111824796585084700576073474544982963830660678337046514622746927371264827604412275473152075458875391852002725076420242253317649387635278844830273519418270897183021678510316791462405509856363261799520245818919615274438692379039641020875165923064979689463315950484483450487294072943454690580527391430853730846434704167380999899034092053167169242356094714527736696321310061440126328929602403117641369950339656931668882641396498029549080305190939154211259056293408149885446627997373937778385143200032562847861958100828943190271168551059994117299397156427202681932410800019609097315062219390746675445724552519911972614393654262495012861757626433899993265768687731293351885884723986313217643862016704710449704508254281853558312892782236740541273552576683692851624958783700293881090401299019122436310286603671775309195818841659176642626864983208267819450968244060896189803659124334791805476955386074415026839677471220949200194033021088853935595702874407267864190542760590119721256557778089208686879938483217123700272365258387606119378412022040041517671680320372162163414622277673355374948904319975600201437056099834484355136701879735408904121415108482042396532610605881604243520233089944958023951382090896567567201948148071710282557011387760323662932945327606740127819214644075038804070868754520681413531311368471990242649316213616678333264892864021721632987172990960383617155741234702813950285810522196266716269097643471511669693986589284071347306575693207551664310120803783979089030881035222205120612533915303921288521642639180978630242276956708292213220792846203975036605203538399400197329647778361382510091706494254875140035610702308445596868243041221321965593319281816593092250576884422568133917639260259401790718001157984485234852131251277807527610718669667561256833285659491382205560755767137347464550942394780855850195068696216001359320167080325576058433909532288683212245074333956046653231195055110851297216071651478497720406083971329605584590673233546000363098011894070822864976930700440349570730450955150788346688819958883977343583451164927335880899857428218304992127392668489945310059926127124723057898265711598866045739722743241200414762101061740570367374729297701715641176513089375519481531188389089067506656215648804515804652472111821797526033944126948737030084653528294650639370220059979900445665465505485250230796748438972964479088987732380075700503963365722982377237008690844923308258429700366447588369322695505171216623287403040849949645967407113872121896720942205916604240753212688584423330602792676788914750080928875986689681533247777791893694183351234255170014005100978334586827103478285591468220040919924340789376668288969641170404126477872671024156002848413466553271240071075728470415824737512289967175423260321182086324232778450651149010173650573283629410903118576921008477474096498484632589094080556743275547758924733362190624431494412401440604223494927777635934831456863493430603848957551156537182536768220486014558658060253683216958182617724625656080421435997661596976133527088519499148781882434081642105263479109794451693070154956139239577929766481442407538790111212827100945456348146833560024609770531941268457945926506984481949083114548445396371678688766604774554990802343767281701585582457117183061542818942936707238574405728758058881432060323206235226742284222436554354071134312906054924867406682129873050885782047111743286108834847481479922168685692450145003693742203942930918985251471979457485256616744642206110159356035881354133497918558890208683178110468628827321909235855231667382966693903698617092970474624516012646346440713837862560733397416113665300314901608319050331448178756797121344625539505797255506086623997332624253092649546594906530269066024489725222508581315359657238978909130206711803175133429838199252903638318957911568719531188589830339297383949981657810681229708713974369806422546468454956794429391979131163714498938013126102772869193641995599681623283426826623431556592264376923920999822596227821513288815574982495467422193017306176530320279555282990738280957228914503847235444111168526179727162489113740793306179186167870093693384936027971776609002494732870744609334021973477734697863557122619192837761070021549863878764752986518272834596451283088557773866524920368268964641886278195029148039241880234692888719426708827761108394796925631932582294599338376861968315211499555217282973612988535484313954849314675145811467884518421775188650264660622639024158288794523274486345054970564826232195728886172832577820738873738446407793630579325196021550806385158070953938498328841018546515096161169974091295822380619666453381225584086326499655010753797247605360974869391299512532521086448227568329390993035369888034847407790022717761204310951613602362352295090251324410326426127942301993166294776530812235494597603385537829382409590283048700087867309778819802083088386037501647362561922082410960017905778675501488776182856515502961642645860045712952348299508069934217817193607232943757949206035704391679384677149877393672204400165220047851659971185541459977883828177847528913021442826061806240239868019588750208342619169365067296050956668558519580667946694321687501199856016292894090591626209730314420601473092960248626776609967020046914865200511196028418756314843436613064730589224877582247701286022988735381046383116371237500082142681283255352595033577080036198536288055928490105788592620818197668386078797144188491060106193782537058438249494392775163952563601493230591626866122202603279434544262888837139367050449562412196028739135523834511482847691031414571813710775033074957741844832405494929556210456874059951491306363501205162066285588067565835068012610339258143297912795347182101315281563657986669148940649526090662700467442351565807411987013854733922682069703238400300257964843056394942846473671039273159817060036897055513633038275323741756782970170626429441686413629151318776072924363629136505009932453980387354663812642644910257355935996545964051833591927153475733498392883190364367758832037429287197489618493184334262535079577111631640814625520434910804986116050138910641728657596429841608598102725553640182574204778034941685777163644629711023711834937963956545812185924723570781810583067451168259367648122963378667158682799658072457953032758871953863852950033693387224994498944616795468526447252967041053588456297597503072262347422896018353201748785650050646689424268754135924553106750445801666913570909887477354523032022920287959274381357514116729785061248810018373503277048367283382391780146245720405227165822624385538393200231681312283515320935637689446643399458753468361257078013574813617733943490919071983624686922819015405651025452036275126161295502502945829464684176584802434127132742299917491299449538273210165763992904122973545432985981395872747570459004430382025566724387713363994829961625159039882795743586172314741490370798417824592247967118538904265972042577030749130635464365378531872106926062290540013611141771107994148040376754069221557083133189542274660183054452201043210608790842011137438651883218592367366345932236679467685686843573928515121314656432425992149877045649983920374539221943739892584445016562703752254156273699580817508438139969724804210593068296843717718086696440813906735066833988639561086632590792274039788352442955642496609757747058871393807951813522484529215738908998104281635296134168144143266155618635468471708124657665482986762831892686139221535782411430424622727595105249007249965639296383985116389671661077949500859367435229558053735602000923391772509592176237166571587424591546401616176007579578169256506580360974019977141227142066369502671018693605660572747226160013613511178602605986180000026359978070883358886064631140851847865569006404969854678109293290629581080966015717964972869827465456539876937950517631555267994933509350251260828117992593511896426541649867168035300550335834060631746465214563758011460373471307168304613202561480116637079805968569212664352567740816319855158401696277439598926147185090770611948834020774978471418227784313747722655042330188073719113284060017635003196013942250297668659696408318894601761807348509914531279729274377685930404302497564678113615366888588147999992827163249535019310300432258637562242607090351203815948316132653885770558450059214782740554881016472381794230233210362278961492967476535148285258806077082355812411816346299575362121171345068691779598413044870516993917909527161796098421151645993201818740195105984388708907652837490415715686605887427635435500698801191164861478879371758054991845679004147766767122368626587531381363030144758262311665458583930590755106443558585229724474806256079345760184844795073402041920315541286381350945914563101373576144151349522892428192160732789315025272008535971388818184039524656395560100963799323328645233817613781954298197672222275309189084829228947970599404742403062276124694936467982792880680364993464881480006560521915340199597747171377828876960167724514105194285266440241400147550228857915100301165194746073084414654505159229449082465836124180090371465017644108506717887820062249431171662075022497268875369518231866006776585092779954053165617182082423758524521756274943641468568965916648234845517962889674870174936765767734251265020054061200269804419529238805997992603298857215183508475414858630063010213707805239573082229759731098687721560098056219905233703168054625051181109492725473854498873464432919570754572598814217307839320837977000308067440081246291244711419176679929377627273187880224260390936687868870974920360549327131547572734563137005664194082507624996823941570813136864826438952328033321434350428172561023386762685117726438386628816953977250359846826177480267249004581694205761890446865019888017720076862846830991518482778287175357830827451593928976149353355051024489167637506874818691720011274157094757432212888485527430074251926705245442527462544813903026357275686886193425983052461078662390573114781093038280181456048684025763042913511179941338149835543504110328970757352697562309612336401906578646031227764319230548812355079956852132827307542875402086861215248901117858056950687145666359134197317514010171455901511849866098866245701577270316375404222369201282421160929448916833804911195626871262673880896908871657376628155667338695951402154546259947158290934380718844845932415248176861255883544999805163799139530237476656201098120049546331009692093082795416754559761994840499939011874568420441237601465366685659579105138085953889694361324764883691961327625901478076525257118270002223070460687926787422008604425914874266643953521514492014005062452972499414747326410154836976683596373564569979456799325655560326393500248461885590569236636040968812883348488159811345136410890709858138370722873105825481996127457684761728250910893776862788799375278387186607785092688172312283483410178880694949194750091834630658551027858168199794894245214098965058338558077146588614953971224124895210434882194209616809670042570004624556648934310506561485120222145256246981914529531850015808164938993794739530498017258511013189604317302002231350392826799897406890019550658578612477986614377616050212304283447670797931756148116337324619658693814706287771308702060668202104748917716295528797421331354383232144853182222717590264084011645572470005759821437008507681886129461111330429709871088814987624329591382575212684580411673727673508480173841788572430436324558273364333488406041433988588905050173099245258401085543873758967589844083200274197647469763011692293652337211778704045933126521124814183892926144850544215156197157140561243082100027190002055858996600931076715035071336367073667770491810355338968600084118430930701235043017751477340823587342811806135047229979875704348056577936503980811082435717565471467468928414545229414980698092962341590464299498304939603202493626891207194152794693162905433863937435167509459551308930980927159645255924533809497730044386275568451237803246551176903710018595162115968350723733479156892695650346174825074831323350238404439037731174943092576522603075604578493047146108644007478460249201217768831736516549144754083115743116386594824897025788371111258116319325511045421903059855176704709323158890068720095483524924041350387300301051803342104747186047830228923278096136530830098030901381985634852370366336568059581479236435781161305654203868341995046687623720408309082093608941690268343293887242058372584668557548987726455135037205301941172540111954081846569909834443735816011749182876252039790259260536452602575191696625208565249913287262090365420788950955915487431282031315526971847733375587419185786638191343596146498116122728584258000644120437245773085816910841982960815802340062812904637759469802520064864802069276736028864885150184833174463735035604576852648204273687522292879959181494632622215093831224325359419762536527520625487503622126355713574407950956539672942529855991794880315355679637148367310630799373988681801675455927529582350719133293654029073881090110838904052499618316366519653396059700250453207038664290462565591410126739405797841657913610330979395054793344421581781942019828058157004923033583445487052270802376793729113982845806370143891958258325661582117747605872321265240609167537586703711451582491865299781627947354882588174109848478699681436069254719181316830860729627858281678655346020894027123525018934289074110879052513545024988445632825937953439698110771364856838513263398774097616665240670897921419097852560317590853157228480246033653829133880680337878430674110047750322630375082928947995609871188218641860731517727696178935947505500993938977599933307274493838411319435504042587862342255662618267608711757377211345066938092591319064057577449775760878500761708976270169594011552307154212188829730111599497633671137964536740815754917059844562339750812559553746481152755929737115270762528320860268511093990401137008271593479862192019410018295960796260931682001898590536751933272163579814355075811511862294835865190550392381138895034842084252455194534245590688747621251836716006211634366256427410013881493367858122547723875199327389991339796520025371348940493918838028134248559489633490353731289863747785921712381293217643467565335996499037279951829924649234118222662996187924945514261137167368034409030627554675601266907163726793882520087646734282906943636817979238543245911427624095825205804888287389428016086055517099466313403184829246330640266281871933208283053353629093046747535512803806545739508767577211310466355680392351073328192744874700727831769778736319444375455313030357521708987162179155853757848475423223679976289590889797411184944355787660263568422580300362127384063010983642888871618185156647498635866316481258331970754610671120163979030743540792390117380637485724303202768707222233551520291603106456385661535152096119558260239626618149131102677843423411282609302405770063050930194219874069277100359958163711578411191687118183562376176674192833260987688197866680525038562086714568146951257880252600390312284543771271232112027255933377168057233206862576525293761781859773857000038458084010741792988993554059002465198924181347275788282657474941272209558876351455440519289951544170777947891364908324763892392173138514125146421427180916044550959819749587419650564886633609617188982475519424017805181970332412581368435357076667110932281006629956617060890713078491590460379533775096593550951081018783795302182531011436400838729748220534251969411627919037265436836633644299706329979463918959443417147061786324697848278356866844421242332201536606257458881080311922032221446686096189553464479626371745285274848810031887845486757934637599189207564657689250186336331115953200690467267648827257461828014347492698056325627080674440721347986991287557589936895676598249401095685625800461796534797776209082720233713091167558993592533356285455084169645055278447867190628854228442693246285905445527965065917848690713861936210314871887783403949268009978242040885334157274988677374189748524831373541864224527175578259132264138430406741363261124371844182859843612482222614131869132145455836906462570166306704521436252506679626808001291866567656092975289019815621496084556235264055818501166127244322351288379412504469822088549657910574844138023880285709676724616148051740981805218280281684772010451303107287691598307222853393860332439385845051257864185835886260067255748304464824448207423718570606768484146698496723463947424230411974532481302603872394732114531177762661331154256370714951333874687054594927703831022715661538628328541075638769465235844830308803476480838117318649492197176562518835548368194535106504776353287905661474475258879511391633092705327141165958827286724358780005252006254091182487122106876395695551169867682065010458778664189100182958725164595785452554291756620835068646592689578611954746447163223413645308905727641252451653826816051542108105409142227994845517378226065854302975320279458509749561878072442130654084028838546248474882227978352003687578598580744876112842341016994033239100829219258828175607950554416159105374741784793962571856965534635718497171075695944429735065130042778617692400503256330788085554297928443926028334951418751093319749379385396344088403299051238031787200681990022776523755775213301162291879538532820554104444783922390583557577197603749705997830632818433330363513318860563734400963485012143546606088503405772844073665320568431216422187684770889487136065395317782744475347485973393305990584827504397527344192862457276486413513457096814416746428164684558581957272809622505984710442801588306252891083144520317840525586556602151878743152896353249954894994231514484080643221085308213409494414148132703746879886544518211716179110385028432698645228538837672147028080433468818554888227851159166024225607806304424421928139999658623386684324260998504162001083789349724371436176334916202914254713528498138096624338093648771267050556075203643705821232008469019072306150669715551545176200908611225110331924830650274712665880631373901340841758859173443735832979931040539611778787496565581286208008849832773145494855594587793700980043878030888357189515299170710570393385904196236479046811821726857433690375526268643178260401341071505046771870814504271789068583746090397514737880976158436927418345838836132031519983625282882045857081510440830466390893192233979059161686709466735102778891907974403322163875512513052573294989426904074457045678269641442751996121482030444839730186190305435512821124232574882473153325153758516899186283623097849997310733569624488711118929733601342437877779551676814965703286738787259543879784955328795679196921306008998854975017084561306580540854699162653225688785518380584891790344819924608711872300671201161998116637580574699226338515454405065100141015136956197376310806780228110942173380158500166593242647068186414976112371042836453956316299249199200258388962478113428933577222593678317580858532710395974984004506099321674793292145188133171839463118322154575019821368427456206120082563520742621987324024655549980552089363955609049814016854110012095285147102752300374029734545488393762726382198024050845322255153969360737804371638558071675813156963853597764035933321741817164107242442954623594930743841096322736444914481789834079509833603462176562064883667008107351650075923882209540879300564675854357940596182082031156580738156852633510760862464426803282121554108967720505869769826929144756559803425640533763448692350797044792901553719804938775885054122509634343439847704610726332141070777952190784418380360810584659355750197458661538608915962901667565829865932072378338560277839436407100912127162857375107252429844088733269505292472232748010485160402171336184978953784741024575433409735645458599374570695182994250821696467342701254645837602517179106701685008144933700889304561436218473507037132863552847326446715338856722895516939749921541800109664950238447128227155188963345803952619498966650794671528871627238861725123871231284807807132364663813869954358176637351447967867112824808579622764895356105088454845978501588697887439966535766876712611948415310975708947697947998424129683752367045666963990402932978788485735077839170566591755773418499362374502308861941066557555036994107549678479758069019329223074081787614511233801789919837220076858255508660135337538263009885602190068758582202418981513712646333062208549298191298573571338919627195005637036588098651812667442104434494629465309981352144020757737050223819811447044375885340445395710248638622300433781232924711099352629970210418442011508414831551607023804437620985239552786179755178156404624776039485893610305889396864812985642941501359698384558301216941221517064121130334919817783792264554964042035293204413434967790112323577536981065730838884022599260095631808704767952009163656198091246960218752557375270131919207974036610706877293620387352274014372585854527548690465905111585413304198809408205169392944414657190047384750056780173815597082413308101571964985167928687242780414463283854050138899510940992905323233784823331975908901410626674338538018968171162518678507867562311608530062631966987820118975009340090088515146539358965506154111785625613822346913289887873023690462742828840522255987779171323670664742949648725374157893415759978676471608053796957225899021517293630958528476285774120942950309304653198301179681493735147828126912480632370612252220446389326046923424728365548123136338929778103274942006979365680667379668810431223866802455369765908986898062028185239542634027587272170062838476452426699646927479160402950234430548960478503760259151432343619287959328680459176759335409858845934851430405196512191468365138355998613182426908927547107480264193737593028723607653683734134927934648492465920991274851220916508947938654267275411415753129761984034074894616841752813601558799814678011309845069068589604243878464215218370044961935851869093841679323152260694502555342352729531425789473660313789096041302943626681691679681252111356704956938268350255780620913391009441403614877071010096214953772039977413831793361903891818405996946444307098862176067544498759439081906701389978943994823170486570041017881730052062606924431243330962110989239377602032713421991628007606005336884675225663465417828529412500473431767382673727762296240489221834173461877791935894034442470466549073657996050430488973542617435061461225777784263013561892901843053876429245507057225174613254626916404339283052594395217183367160733188260880836332116761444220945908177597525132826811944504687430709551044420899838916543257819179156518739219577313517296680929377012721747463462953334191865948410177007512749549508599446110525397273191609368185489411504602130951144967055858567955901750919261945711420832747854960434342689561930200149740786575937828446939577499605792371497216814431466422612510053250052540213136156831858077821082884504835673421179197869472528071084585160041431489885660816778370452193616847404821880665714721413832707218137709224395868598520369130786512689937698099434806707950541341852426605463079515461246374602478158146939244439679053952065997834146099386497986062733420411754312735054490803482246107555565102022197030499726865187526220097073167334172956930469771399796623054946490375116674368187681065523681889666851789424955454812094737121830036498576925196282011875598628563130693386833678391130283432596801478857571710480178450096081086557873074928947616977133333915720266024296954664976577149287096654245734457880356002329930352426656069402108807327391189614083285684040750268751892083666940853399961175626855832061465522494102169050303881527610934573591143657734736148630449306877502351328829758752948298837154661555341674586915576517243601653506099734806529222034027827440527397336734062739676302862312099167046981398963773620306943662596922436250680232974742418368719520809430981458753529538668492896171546914020485909759918071081492290407008260138355192085591267842909927124301354628048016843552194356972431555849982463375547742251093400652210197457019249470560956965737707413902402543183610436361640310398160476373944715473676711676595421416768639971436256119856967978993438155573793354929671709314376426789354256105489384572165322680840206947228551855020283889382653291997331384522141105896581537289897437809629311385651639476618692449375197977058055412191427369508020395131380342766450073594074278845403814420579985835388912242527731387059159231854344004189287118206389784470155644183306785661801544658216672572866188803698791855746044671380438619531797024798331313325190714969799749156036988657196664129215635256130289850348372040328404685189973089839494210953105556138897442487660821727762267616615537457735079673333889399760675481351497086558295861136146168422407239952017677267125744451588247032235967663434204631542062157394485313699968780117347793581527291888101101490247723515755082037914413741971574329673713855301537001687253692980348060879882372281593509789370973964947008986427798620013702776798491819412483120274269564027271688026058802394608459206595411318318346066876304776076480263547119396859529052824880385539580497781519310247672068841700098068435431257278870624900963178257118747472580633654430393778908806678740898221677116745479644732705696543011398705072315933801113561197960986462942843468470156862137184283870807224443357853870127615175117706787252832741497931104567616744077024813168721911206526681648227072395459982834402909792743465448735125782309824400796346509576083248900766018558325284672612758836984713510635456343577938452784712762331740783799645709489561469631489228397661865253859783085764048031954748497624863658701588567913420027845903996243379789223212425390827019863178573988537538588359155126279236656385458654989797900356364784232586238059851879645945307476418372369813658558318373611798340693877276725528516853522268620880346284617072931139290185251509838893814443124428807077075657806956113162826205915044309988917500469728552939218833179563392809164218152610037562394416095832891317144645890889727823541791015894195245820056040888317671057124520215614372952022646841170902296456061164450161755285065624835654879508067162066079407792940051359925964260113292553200523975737496595525673638843725384792783724329750650999797089308423866520252264832158635012168129578066506047019330276015609220179193387971258114727941188095112268784083105748702124667106914187578525194557700827547552759623823221569543993205272879381570500948590985537721826691671490910032239933176695735317284552966031024975614704378347671280977530371895057655399798836890499086885327129143259662589997611573355557764176105439243637853992335235160738786230332485957888796665911655041971060945422855631107211002316841920446125674328139331086479643831748523185945745867801672814719356127564635954486022582346933670662172431798460446192795626773322511118390321716677272519610759036438047659375055864571592038834323798007146903673601085552065579624995304120847770208419426716459477718755431487988644698040895420529402644315312431301484297776942521533932402174429451999365685600383425676095457023558070038585386513127659282083308677306881740441466845587501920223800624699203680964448414097595852065167476075006575586664881544865524105548985283822138635397289180132033508461420657556322272530577237988144525507545693998135217765515589901332210659293697704633232323386804099531700422987939350342270707479527311399011635369308471804521951660984006488838308705023182956582406599082505797227793081972881440046841297251732077830378958875094431593340564240513421483885327664765725405013025315951522799632646070969241505049533634354672052246704506604462563526814388018066292375538842986494491803049530344740257752475866169481048967045433733394559531581369001702932794163577037580547945895964802912381501703124246419754224196957259949585049302774420788763296572771769959427472259814453966825050580219372860379543310491397055608282191324642461044932493610131979022874676469464330131451608475089835077747142298476745835706865962425326569442019675627194609174068788753304038154743425276534822558019138025125139373224386159221753718055364480080018968316185380617436037209723456242250306646608554654804884016009357856196147541051092389644742349747194129146669125798016863768576989577581249282734234680806810234227619838657804599232416980153688559756990873929066640259788372259773685685358692146293441733625807011430954101687642126957628067829172580120806765895255563807765439765724966205534229839258694694486564754134885281219121963986819618109667478080591943479141502887258590842799501959352943480337632228529027376061715024483679693119826292643929642208175445523060520017806161857871766250389171656715718541175598252638717878502123750354940861901026587848478980795080159456466829994809484845289526088795195857780236091604645978821492070000536352343895100453142604155888599682710799938604321895029257368338214824554582943052433987589808705932535425018763823668624061466134061291444626671487940286275440520907767797157987652710233185319426142508990921833522932012212751761244268403021995153483137211515114958738011504574432104512959505194264515138705598477372563455897285852368602380192052378151089427401483092961865829541382642810734426924198963974058350438168491219403148163223060285602180473157927370191293787642854855617723083604185511212562689899729677710651726355533638665617392242243428412182616458906772328882290057887028495580910039686729119938309491462547765701011223625544868262881583100580576923808717268904279168434787169136040874735676829202569334439184283791363953293831703889139518156466847026294864872061980817324510227269870152457389648302942231050575328405188084449122548633927489420615029800367345083159967917202119664973624631576929808913391306933399959819864946286380192319771794088991815276665592448342246947210305683042473612634561498077513671134663096591409018895508684422236064746130918777782310877837994548065957981810657743140512221187854943963658822236318841056815595254883300179388828726604531543664814861656662415293206042258183042962957994397159498821390408524804775655610782665407489781431754374692840227379645081055701318004368503908365441280920592726462796609043535478200143746593672156987726725200034831332777323381577740097419578172506740370419396583271137243132143972403097906543141525676467531437728769289237523397884189327461583371653360094662943304007214072269372307546860245197041061280282606386095854036267102508938144423263751256260339248497466905726806755855317078265044943018094528239055493450560836038716233810139712958138173345837959180004772186157651508588493793591314847095053783243471485604342827329948442422893095162567744644761020639617880640218217370812826643080709513682096970850671857048242520065916859646855468493181007735229859913908960213693823912548797477104632994796473366370582866332813921141880838964685947948597109889502282793214919487635503350777373209117961278278862576832480540574852688342098426777888192102860440970411761808108797624328566557811532661115992952048474709989705741602809341532250475515336179520587124254571362847742152299314474080184581860442247943313130513230734179015587593538908334252048678853670783051827804629691489386172774071826454172863028057690277058639425198470784192018773138698573492192132913062394608258926539977606963438238974643396702113767522740862158235958608167206754014503111179105165541208502252912493409220864992557971824253000591763833796384201183195718032425579395205035127346485472256183425388721290144561791260155559084972649579584000728700088297951925313645159762239817741279103556570662034929662818523695119639268131091749283552924776518147101061757319552635835161563164151892374871599424728180496956283800469639602073614746837174987354531576771233952701143664103252387905657260560823385578547165411105116713289463195456029403364739989653550987229815483530465651661135737217507610649414385983690283936456781335722489904667900475156337851146364823102440494250290488856661713027670417690360969485133059912587349060840807990490337586230933514914722090333627904996258371392474313352555384049324770545752276583961887346412038891568531236911090756622021838589675371179955546536520277792996654213818062255094165479425002578414413770383861275954178336686694486414259055651749218015348600597280434472008350053483683022340652624511056241226431986455408537927443204352711327586950500930756911010517732659362869901344003180357218332525596652724217140878569190352694510365517557351602515986334320938771778909756105398476259542544745297870452086499965449848826259505862451251910596960147491071373689787585266988355860743778724707463979498409158654179538196033924008463812669307887370357500341555879966440732578229587407713462951424999923623963482944344600085445020261952713764441715489671064087023556744618873311915062462499460539733962050954959156478719892922577369381380964688985868071786225738800703117683394626150394439718076626538224987926018112134529674213046009154851401919620343576554049686762461919261212505449872275594617551234362800457637282571956261806995512437463751678317886010190506947361301117590228562924428447952944534507489263616894094558949788491305071438172059757619498547759587586579161741079658641771339489079766131793959578148757447309649889822140884473036576267794865443367382999683346890104456404134435795281531039594643406900865736301085384582055712151508737956055837290925344775127576285918288021385242841385428749362960091803316015519936364301309854525034323160823771987020511486128563859722670478756003695556833954845669546958574880597080511860423210789505524648010836027532697572818838693538850488685461895078656834792678567833067405187965184253675170180718122534927969107086843847420671528568617165681407176494725784054678013242449420374355806972430676947748559919800670277938381057869473693223161076704927287416553146928130231917988116759652650192335492037662993946838745113610838757017701528018341911713491064903483317772551799782217440395626912874125517797256944803043292845556890649443478417410367707420788512518266088658079105072200775873526472846140956138546427879463372922354396045517211562355133085544642766662440030799772191877500219231783774866385392973163307055945861961769656744494355577984479991061645083259141952155112026269585385015885211205567792082764557415946871620541639148422826150639982937185354933160384928436756394406149579343678961183685655074887179408038303543486858282854700401511263181297496078994534234924387926567364143660253655877961978372268877793164054920724089720585230878641160281450797889246368358178142726811662761663543401311089634670086849370103341139533837149440065396363337345754671085190973507504250161910699614075392962332709248864120726869882591142327029771509486558801590085726156638499910308058032303261191150661670190436514469477204247715433412396122525249153109421818688065513289770546561239528385530622031570602823874906112042140869214571982185047141669638440747541215451134581771216213446581773040620429612113289743532405914026531527335696461601599769722731659797357657782357641027050032363949667940673971309060899677252227215528031609309429809061723303502593955156865247794560006036013336141322922719641090108940613383533326656498408929688286233484225357488213351541275551061765939815586278091646573556925451778204912556891236765414813046951442452048615710391450092747644043258062260189951139917499486826537704444522856328597313108846359596503790182739072268906685775377977089793529917099900199049557325797496520416449073244477853338899785821629268551250868333106918231755099542163390617278159164791063661379452970587963257786940966543123141658468370978306250049696952395361239822517439791015196697542439609635096002464820968525549758706656913729409655762798618304382333769981644288540998379780056000770920545717501060512456916375484937385274839987465660771696234024999157654408165185460818564435338623398540156757106809882051840603761264173943803454990004384999865007181851226234993446368866487171692245010982119524608272055430019006159649170796015734956524988392461560430551778484221262546873073335107489696932145817334715031772791323109389134675329902575194094435426684773227469271760423898756232917214870470991727682311189365832535490626486701772344461080634994698417099513158029721852790754157283982504192018987586226194902274692644582579000118151125779178430772542554824785495815576420416915153610696305530758537383394987928060230687984120330191449991285521552408854711993752500438690450353118095923013219749641547566334143282986414886853984330390514368401657020249820034887848261518565109236427115862836541545169641055320393255812943394171152902388529373966944872776735403731871018243713674157169396589903951658047514350314184723949588272901968094535973053201576788169453899444826271702084794834507048447661261927490447509252975707975272490852792048483598899212883733414036825901910354759369137288725105020776713635226281532920972410412022700371888267561534700250139799129243697881074459097374863268176717210996225942982948977276544443587062328493335629445875408558491000626240270324101743735687255344250500005778333864246285424374287811348516076149789182790431657185459967357264652981279079913360346008903537750266239532889906889026360538386366469769496387740948877695250513314326831820874484417388089239107540035766106925807490856417468926068447613007146995071542444134743464713158318046878574914742981312431998002836034040243908970325088039368458753135139252279143123833563093664075507525536881563878923254398693966533582590813618091228595151046340323435883099346514891426242358564818828709313442878020456225172446737810163399679153963509845982826735054913626146307181545484111694083639051526725438044670955603898200252962990801316818343178947700356202912804139713972559932863696054646532772559221455048118185115447389880509210883958918114323824013189532569750372627557620874370100089567019958666305773327748069627184119523913628067837458167843838600380749512055237622790429080285336295335510446994523090942954337090408251711580917470205480391204948500904284600383129835910115847285562855486825556957377933754806208968807964905434977045797864126092620408593078161218505451934980837405689159093909366328909334653960516948624132956625096734942364706423182351410342993545872196004867490992977715294335576122274597911163810771733105697991644415101415295496311341164015170284360748958170893303493648020134659036194631869254039585803488855326848398400985632902113600581675647654638451759961789524701454146586628402359656686259779827347549583712145270113125160806762773880210282803808934170728757825488040760778564274109224561149317120039358253255575118990557146895339634540383340464767860572931811258211852090028655075790094738841749692657250371817399581650389652681372670363575263571100155960826133201584865379683184706068533289086768946883246827735999487634039202914424454828118032549086636499996961538409508116378028164187084540316425359076724314206017896659347106720552153892601259971385138557020467902069011525144001964144996056449678746692408509703508832730965233174094488752211232334547142617284109353077834133308233941633302265454868112824483266792945432103175320801377526107742938129099948783647471729130948772326772074490884792944319152877481138356405039259063269578003330469383652221548978230965996372233966758677257158217050657998945745015577913572391702274657229612429123688013637972394895282548063540629477460855187589621345924191905239207101396224986925789935589710626790107268912074356500262325510532860647513314767821575782895745104958577081546523861813763243007285779454598894110188760592081203331498556259161772765902211687308945644300213035719091443255402199364341545030922929456199354350793220551126387550733778703220571477191879658836073142989759796279815601071463629025228421442819062788350896450025103269239892134360758851290058522864945736347462795258418174406985145904507377083400047680454642756243541739151390046688588961219221913904181351608304264710481604496921782838992600662054354614472660355976576008364990181745829945931736661606496965146765507491069710322134116466469085130976866111612154415379416206836505036739471667429736171308281261756650678541648314313215471554319085705719653162274820541309720266744022727806590969738907093005963962144483351147280059475570215202312870908765060867797695152225307748896542966373715522062471965279263999905936845869295113152417616792728445942233917291018333322213473496550533668198501165460977914118520353585011967089679693768810899724064014379005852514946633085920619595725143722802838614333691667446078115835858044696458086053102921859004038477748907930796254772304190675150408353667734126257496907570456684915912877421306439304926422959561613813944494894916218944233453974942663935704388193070267068272601063892286540821189605434657261747616680890012176047239384373501927575348473572904900055519692002317791906631378844171053749367673033075407251310758468351724176591839317238041284507496860063014733114158006228935580255985647955402545895012486632020732599290651418566249798543293777357011098497883298570259305745888319259136156212046157108398657689354787231575508080119883313941398410533588463558761717550192557945972284244518157616296601820022915055135116966743416851561969716288685256051595002310129943231846840836781506031738034056202853510746480864636027497048358019596566567113264605737561473893659506392607017989704918856029824021718825679389418615182611183959816054647613122332368434226578285129036057257411789217735960111904724645191204783423582524078899194414694291887453063660260423624392254691938384638721504509323648468976742530167122325770145179304788527551148709885090790282027139420759720073416858499069689024190680709128393295549813387940882104491385283968295572530457600947463424253717106907517793925654455034933189037954318946665928532432708641699257650589517281437803705963856547705407832181415137893134650661194781009455214433989048057685202457843030916637074319027566686864717099135675168930491882408901878367318985519418966352199219162642618550608204223544955563335778285468668108195344147696675025691945819721315649539798770795561680948010632867661928556360606007418973056447401919991131911115035165756807920559611965108950154345143733845442184093881126098455053975537726961632065109292936547600559662408947119866799297106010355266569890125114103905404563884273091984236221695770811594875335974471063561219580227305981594318640064181707613756817951474399940545574276215370660206533138112820626747328543790327644594916944489386273610110757660356648184327426310623055546522320204925349662034690783971700637293619390523801254739255515538808874784669315972041557992694292044928094923158352681273488871200607682045278927826118628264538976864085957619940244614383565056752516060822378894365549291803752218004001639078235700172331777608338470056406071594055945364298804147279511676810709716278932012632501495801245549700843703346657621622732031047735452620718243500331325693085918640273889565156124340492822640017265230671479307154648078828896645567845414784708220261001186662173101680509628881999805456211568660080946906487969871226843055497722006301110984344457432439435775464727987097439443323462098790667211350892975571618253742984159308056549270894119798074108779954065299121302578602602036593024936579433652351748455015541101115877772967935180820018147836789230142417507763538935947415624847198654626468703718819689354695163348819929074344908997657848622114397819149312688489896370202610272940572660985271629804730309539611259400154371042791852086766747948629004187766932940011936874823863186170428504343367720565107331357033072383360565335969414474856134339176644153915308853671947312702638478059987219112556313817948320935208326729541449378103667673989023697703827694215485351738837093003955770413088049246819595896167679613417837413512968948693271876200627240282744930464932865944140056344533675957969797914401072699088078393051475907109548083661341264965074860415129726795053089075150059042560636111578262910248846939108214505678016334567917551033669470895727262130307415216794284526330162783133342301794953781545648234376537649567375233514811609996991250906028829649148081857590903851168767252969463929051892705892955058499893389735846869737752283385999364604131225761939202003169719742714567978607133066439434790085842282601479038645677409661543705582811026548709327622344458797323332056426578965690367355357143628957766051448651540925450242771391933797097047435519972473036517720346818779158594785091497830589937200751640116000828500665419980078199301178737498554978746930066418263243295801811977053013637903116933205677455311286401206638904861588958310229545075006420695034688377427894559981110370936907066622716708982735570743236584680950597901195058320520685118754392850249858704413657684864849708269394112950582629876790768411916038980996533119289071840624887705891615145386700373407931622337114097456777733155003619907463998683489427570451416562859043705777546483605964958498602037701902046176945682750157843546086646284528157316703070446321333459366722642117931562021197110848722737276293451012627225420344927758458347428601771794518746762733608517290047436111616102162090227193331890976199967228527178361257585332055551340944049470855857545067196806028863646803227035258847442711618517491451694363489050261924981861015676489310226204524760123029541777121829675005070412044523280549938383837601822651819619969982710907066894430707881346507650443123236570973341447702108952053692433024046623940308296050660304970130800770487664167661337775625910982659555070019049650694100270455665665370513600685284392564895791093383709530498793001520757535144395265154698368089897836446871350662670644100555714125221967469093842461911983851127285768549867039328059145984622324880078513735814839030297730543221496189860573672268626093153638829739604412384909182834184831012000506650653186928113111205978773607224378784768260736521103561651389619500884356539196813599942182750726394303608463626240028951328432919951347205788711011089533597796027314082269325473147204145845883996488501137678697829426086724394166431629405671447008845267855877376904975260797707360179869199336507347179977905521594968405732189924331922647247558906448560844087071250528564599693119539975368111595605077378264488714710461579065530037987642852528223612889852323727196420501518315201312422372374036418286108409000797403637911812609576469478551961436446181221773158046277792422380129663769004268759995806143677194514552581063244788408989835975949741737532670427377488179103371577987025603348662269431097401943565482380807924646015473545779143912913219266723047080956617929046756443707865156424410350496598253075711796855349696180609514085952061895938107435167390075893714687848057785244583018350590177073574133109328579834068996456422848810490049955143770103412551579221039081889552715189482978572583152707974426659447950884416374832862200487129911721320206703627489542343481384201836051623875464685946901791089432819988731312165183215277742284481684947646053015347330139225749535288753533011274333279793694558067525798146880929229623135234911946154813208121887810495164345318169821650941271569030988832530767264681442434058075837102564974772183807425286141193467171993264941358424744333871098314787862277977022122194061271201011982080640701052111651394256892223411600000561804165057746691704165412645918256765802702372609385772401418042517654591407767664421036339201798617369456086670779756800595426358386968487009711614586847598641553779942641021584803939435644435594140104646977755596404875674926272022212682843931649857984697014038008710642446096357620316741986048920141263716835659062294517436700338412449200963427458165356447433501750629094978296982769026179947057971350138850086736866184589532658171202876226384807642745196494723531168416101833971794113584584058565386886407084215042643856069961835382799702027223180499033814714060306514965565415489077930804311586128256907420849243941301863603778220703575208886778430313949546412816668091836950504636616636951021154847169051800897650295850833073874370425426300592875539224921420392549490483075579390854227919373629616526915393895405771464888475656126027189220295133324078027062043951634375107548981861765947437036641625101913353317571501505628220225173260405560957191483425121451634757902857081711365429749803553820723816922293143757572138404259135991173098764343937524866841294496943812861433068564313396158764447548525542900736728409448083871583517001441307403280650791468355973053054685212254475267381604153440343103405556328268025379255608429529240772731362991664358988920308375635766601450034849045838611969387848850188711121835144059701887032053688072852952560136429717414039493014960737730799012757915146625169738228974403210049768329795912247861487775759318065984919912659062154443871265464070759123758690093049855776909786283472163253122016913250157702493704704232109755799796370459503206512316871249648472043229277517351461207355801055742706981070964740359883682214375549718748218894073125373673003274489107117696105957774768115293074834715432788924238337955180850200192250858162085305154605555692104000181005112689698588030911501390607220671410672141128700121283498717722283857000732993304721763922262247838483676518591249216416473192138609940064338130574575744052469101667082342738749780370426732257640155193205780125060641886071465731081556211381528084723671329389553530304199824628020326798282472333357730052772355011106078781656658309519752888656989457189051776890115976587667783779859779186194442484884965384837437867430663086488097105022354745648020290175471376494598642072621287954028334329141435903559728998065189699688153049572287090498697577999902151536053925316753668853681743293072766389441030796427154744667560618268004476608926183507286537225277568721637746575451883306176220001048020443988959003069473553330881024627377748969405274697309044189183079724540023044024222320693117987017483889865610329303053288089787418187806945750093529108143709968998748911898103294975141370841938682326003404153447697382217109317046598824645970304027600044093681407793052331455311382641555698463999197225660147505798471619423316050069125880091383168835704722741098263844349253110160071239283845795929354476714017161342188054375504988872713433526834890714205660357212043893791876312191342225452557169926989638778010647393250619659527153212335378455197387275434030740941750133766652891260417815697002083686347441700077581828574649825457275868700666186112051018038454746753052672093033634838668364557372334851857757692655448913683348172412881035374029292991845219373722320634078772317901304232497447873287240113284207687053352078192831413701544280365160375786974132066934529782320873013657460415992450796245752771669155822585549495543884091916946924845113980889891147452507158611109429919473933805844931486646513227121979072398808974414846267873024614505306405178875715430862184045148475600627562047683351507309331685658044482260844080452031773595508949068415855420006515139767175969437047443928274575985419844608122160093450304254274831658295922709471134999157644466163753483048115043795939932690523644988370709197484655315929040056291728824575293474078707547461922584734656571452107262489562046828985639796442286533718221801704360250333319119790572628008718996911716693122932955172571994848132750820836902870858259682992344060669476522511805062639315896401577605622730199472428388867953646109887569065221501980818836219576593057436949674248985666163780098729422656794858618336926889192152270914008348143362106426211305996149419963231877779089900961798523039422288542083144864244226334044490396786071101061897998875324420040056823320577224960467178620234837863699143822707080202092717360360721170252426607109176649909203725773854300942288885796280632200943163757948262273941619632571268579008256770562351610694304343957639979199215440261619264004741860352449991683434431827820308676387432466240836710945342958106818491363850280570440092368849402678823409782054257402757780123087462573280900066591494539724369946539215223017232094003207246662476792995543887177961822885657049627786257932469720250940028675703228202039167725157557842190749129030985462445649326560203006263894885780200766695705715105788144031165435580375150841667816330939577698012034905647231515944593969091782611156700835171453576211566078787508130464038311345444195583879038132344588487287628887837925541028402990963349323639735331932418126560531125215581529510284096551328722803188482994263310737502954997620847250873292458295258297503082541832829921567124912976463229246924968373811028499814219621588119341306820703505443829913967435308798912158162129269562394006501825901667973184659820991547866925418624480884503958831816315709603407761786654887580018605876308810989483613197850250985064681840718924846990339635752854390360231141058748078931282295773968105059726389460833896540591119948959662426632067652352137116480284632203992690201712511963925611138316780134189225659499169851850333220217471413446552824388454564033353681892169107495595147398767044159546743872682486399493710935300217819207512631586837244998128554698126780590045416142592127552225981413787583994248765358201347353804912438239809068609405181135482167190563603150472947918748967845051021211501272058692177409685648378835219617325835214647354222600539722607496730733380625538459480440653131254056597745031006351883149610026716277920355038262051675338184961916417087942237994130844046727985415867978976621272832403941216094778038665006002245297596098484064016939252414002393143051313860632993474812386450700515429586551355529963830731911484485956989005480032466762961275273321572601645316660871528804746759264205962288439260756367350962266699244891801305770745828098191171787421232620927894916671385993930795855899630599592067187578072817465799961945578698595310178741279123042421342422650633129448085764409729719728177963599580366030200385900189590068669907459374560742561101053228622777690969581770562218611454991810100967900484860764131577396016474882836700071941944852049692598463975502212003792051558217351758612857511145397463283138155422852439321655638183889711852597364643032837322578661734930303380104678577569565850739626997564981485143251577122739714728560796728592247190850054044481174110125709605454883385712460392903578445620190346168644549673843415205838970256058978702006560270074062373853975692271755979152178080295267983964998233511074343470261165837925792267309010247511634581176319994565716050777065719948277971990514404875615790941233738666788266365871626314377456999953791161995742571384201487977230289435607215622263468559476698320845822233063580639439965830056930986957570741122652326179920968698905007961441687112596244636773433891268738843142147550107828961715665977007433856879371075695032006778388884788658381852768501579627062961711005415011927440452818796150622030923910962652075243850541825324755014500393376750934895755845667914981164592787740517515582910871862730618936953924712774397620326694178007095767795273091429224336361104390023462414963054874005176228919896917716629390525710906230056389138611267998139779189071148799018062002775977044022503297447157916889526239985632714931967963297288299072583019454707159747087423720553928606759473286913722190300931730490962489738247040121470460609772492368600968767641877705942888685578018781855760317885421430732102525461381491292327633669142237759109081257944425856124505132005079826711061782231617391250494872063353500270913181905802962041077759285600828007761018069712831493124416823662075047125456561685610373700985463491721747347691291842244332733209209963311952302332330005355190395604826835600601521942418487296958437093446424183193546398570171252911292185225661503491406009571238753531336231254176298789153261106819073453280819176391029186761387832070876563172980333585561335336254435412529440693177694486442388113048710652714413735347513414425794247800109801726710567341621107842350146499792114254585744687322106089742992266297184408281424662856539652028583379878216212800962355274968631386698954459868596140085483444846025704775819562173725003458613756151047501674874781396086264628571731165860880733588890721313379859256210256163489308412940771119639076974231092662222786258414756249734369035477839785150006784910310584661107542077113615592048646181802422488435215109598911813531398770564286407630945790569549193922279123589671943587004994011469288706835813501017311781709547312117530715783423202111312208856840122439091460824174062960545510043280655194790286119074472948098104637250027522286210711760583873818449996096556848343934285593371746350762108491520268910973424344589371582105715763126159708470397944057143768331876415341591329926653752988780847068887389100451337691145382454958421889233772205922993842894359418636336032884700440307171670264351058792227307587640632685018064480249758663220407334502793853404459010980838676478989589841672725883844279809180920624457219103330541728078267266414543621387707710623348216921075089081584890861643872923608138401931682713881851604130714991694539692501626888542085804928098420391143491233441507142207831700123279253996101675587185021114561743215441954005054124515813263476322073368625294511245425631341154476781881633015287096952945267130369063490443717141896131778211313264184331120145965782035023279896070283756578599321249661917669425387659671894003831985134407944314575934681532728157899682498051877283889972197489624941163378849274372947746429535611262982885882735235180006868005973981505146522008574293163565246154774470169248397594674292452453174447678944179253477736502150202563453032513919816652505378500110061019494079472443499818480504338383882007755127193103751413178597725469909193504105642457433521363582218910809357341801064049849507660809104710841161675729675174475177001520944607177176451291139583742488562517991870224979114468688412555704362481678007546441169214006465610581797626245154933285414603865877548878636750706779062907660235276407199947508543826508084920431602003493455530591922472861911431281745841465575706633124690734438942438942977737231198092940919853103272133284842146049314557032494518996012950258904665249188830095903668151656915387966416942623646641323073130122088625238501980039269970085901832432227509074541144402601421337685230579579396537929689710047976210120938154111746673901237597846278582983928670629065604464016159859381043551568141071378639937079538449155614433318895329517229248808980124296881919012532252325213260301554093358342132203236724398985261954781956353029032844128780079810927409877336111459740811048643426111715655318643541327613089013938275274299243907800975278212353544244216932643802522817458355928842753173191672962806800616641580898613572702600280559937488241543895550796779955568328006716976410786489112149025628241396104020586145487813107484852192424783560162870388875181197158628189361170514791583596811205832883530829302119825700936806741208119735712788530877168508806617177688720695999703834161089519769389099681592040474089589630474372866939685147449756966422966539633727773831992935201133641288405999404957977765572827297740307337420268097272206900120243288558015063286931881129641714264375118753856919887288914847470007220011619836793723964980759545435473732574523719385014170467103206809573604318027349812024981540851475232874599325684023114367383375714263304446289534158913439626119441583711510747218941346683366742022734201861936959698245732001190276355244513430772439279671093887587288324794648087372474014452486326089492838001166311383717986080862320472425396271577092450043391292003771836616848890665203534787793791589827009935625180543356927606026526349393587791636971821778117965023576121821940474298565673571730671410818066923166830744976125308707472134313196419306017503711288064372145864599518279227068749882674165101550527043959895275189145782067568019665763122743975837636783804535694481709518195327375428289409930177911395806172085852560296999349080500886893719745481040362672891382317514738604799554881382597649857532068379839943064526706068523844402267701271667022699596405534705106175350014195629042030227063245952421606883852693328261493767606500553237069813388809133493739222382161350226025799936484480949844629156029780211619917554227202993177238238373872903885720521081800272497218094742512725023991600033659303396485267712695893187787463942806766904363027947467165170149091986632443052036493680944309274965872126292531381429489719963610955693738169760726098101808622771598888662499175864310881457055680156423918205901182085419168678072584883673488014935214606266549623891888572536743626434277080484185074560548898570563022508537013755678528359335942693348036063436304553871909672464436827435858036283309405719288934751605429222308140343417830336457316513890869232423006073625665506967362078357044263379057551922145157275221776963191718043145364021419885558486662296984739761874153538873680483065155636983370847714621000633678511045618481482873694080011842329199161564004867139837978870790342456883908548834048542963739141680516436238148744471245472205184681087653943538589582719263541658357761945992657645242094220787978226737989872631684666136683203299919192940480184169200096268959012864115457151567571058459332476224445578216200736954469963303397329174084967206536254044614222707993840243410615598191355250726885077134114854263193355182592047271898102666264229541842567503685783726016857536258183387819370384997190520473663044368471884069607186728136296013424586953606635084996712677449218298755361639895269782702500931437628774182621810438213443188605185681018548899355664373908438787164401536225610396005709635431019707634580338778396601925806653110700121340058132928162846884486711886904181881204191665968617250219412201504991986679813559703289239384339539377674024803597170859388489315661889190242303430328658672558673149422636454957382830843681767851883245300111340506074166474747699256345713220361058948913205714384546729756505081626754092096417168658865931434482462649670024897533117462888208623787068542915912453842264151019995562682844048979344586341712410424663943763162766362416355037981764300071096309835449019630461232563971703140776269968488974139474594147100172799274881182757387931751069592929931127309451331189730662526025814809720413173539853286601355801469307574646443941393839761159383709685037080196297575220283598149662321671766726384644373287214046094520933530196571135047788352052891080218913715290719842592781610673442054697511213392812045744095618257124638368894384748526501558072737485413891094125091016991524463765170772214407036295198120589731641172915283698842304993204112120958345283143344051097128944592819680920709841442922082833968236055340285941871724134754616575680124307264755864669708742060921749709913468406725386428175043655229700505059798152283466741079976704247434280876547969172312135726091169036954054572347323588960527052248075298006547123234179391906102236094392157304403322348881052166460674299164971452735411726116547060709951528987398233839041808667808874678669997098017164642279380499215364805974718758746874955151390203745739823050664501840205132420726604218831467390586424248595764905834965145048054065184652104502615808466643748325178881379374084303939721521496034688862892388676348946862418307647322119082530818124919966798721970433653592593873122659670072673072898964293697867582348903282681080175749364937307584043577502447792221540502444094337896472152550316611335398373624428170836515630082428245575750787909988297114772760660950434151481340551889630607886650795703914139291193001111576161451749884077475776303970209110154316418347348372042119903105881633904230495706756563812740391749543525546235618554962069422559030830502015111984913334793271878066509073432772285279291564659908994158947392943621045788639467190864350815180949894387143802468460397122103374285786512292424474120704461784039492383821169824262874195436841377715853670354184968074571542803739936123529438527312687453972359579261236099336299912398801462115128412122238330535895908446417024499840968497727122814969695725465264413575299705111966193841995058349999603789279375537536555422241437495307037318837737396985790230994831607675864746072988372940777853659466930004262580493792541183057818877220828498993915007227041201592055094316821345715337727527122880312657438356689090675812188139830420800618772570103869979221050483282089780162011484038972026896602967890374150052523066970885853717819163566456359547280871486099338839385854145925213890555529623309545633813826299264200749886614608997327378148872853334839703874473758928830653408164535680119536802432692621785490223466232940495293734059216344444610927955875100169762162382332706562683866740493034425163281156509451610110438660672454516088013498544743781269684862553415748634900576296390964314389205562549623063160482753545393308872308340024290966886134688600402031928015317661132169255117609546613366911619317840552644280354146543083168768065978105147787791485091615462596325635905896279917616652492911568488209864491757171494361738481671800162589891013828127735123812613224412687441691477935223857541123719921580953951244131525889079607100143506294741502377236206550024665667708912370845567883710332280957831010629907996687085610705897788213592184176132812907919475979308955031318991698647220930116780339452153417854154195005686801984586123262421944412447403307691802734140023698289332405920673589511062600257331390277953092279152357643704033415918173184658020610646628022263445544504463578870551831916910730444234329503669549409058366152969702094550201411947740994979732777664167262905944063553513836954188373481775210070264821834658924609785919706112287485807207060815909421197356833255129343330082660534587174245617904894637141952310492795350104234205993763142592906242285281778292489334227885633629886615081346934349796750577285428456684802947847681034167429043251943115313785658477020319503682886551469344251685408176882765691866252965419637387898526775797935986896607769624299816680557349966328552285029747729844573447566204241758643803285184526227212695875862005527615096487459376693343781343856671493428774233575957677688532625321320130054644977703720780255477538336378311327979176795604646679920604303280227438390389287972782622618244793182016026850361125245848122225388418849021511487337270371996887488891269524600509225411671234135163554527114641216817671666498736303409804064903971080989336891195341833123421093633577769070377218962101019329047471053456219642181111560417794107817889529792553696792048285318369242669123068644397745334378234012670576160231123447365264085507741336494752488251568344310351549745029677890027710723016425536779147709450881834065992687937597012353137109311395438382080339943979780574851412220121090047108882413261275683280811958304310148238507625585082024964502924915781132987879516409350031067802193232400551530059334173232824494187838219270809687699875855635242398674639659756241383740746754693790844360195562701371270516223021379115321270848731244512528986277716569897168409848069311291561811909050006449406533313131101741765710839125676840208124633077323885301966139154314401735677107844522376704153766663369241490804735860666377922096158841636429380761383687209218904107665482039262501613929428410464292869669129952062120868777021358653550610182974915697637385536572907995277241614778812436226299951866604861720225033424814902985829133747377134981603523062270164041294497621809836194992893927818916046454775207646856229165963428537661505587714233845154643859073901583075740940440192183919952831882529900218839840820390827829296334806541298158863787273154367634810511048578535134132438209211665461898307966365643151789305198827651464985977379580421008819458058408066450066898095332843478287500805025097792561614150354553938691988679898098891064794597023329929278050490587935414898980366033280805601617806465778223694967788644416579291647208277239049550082286066405791858596125089330372097647428030252091049861166108277191936044251681201588914258247449168389527276901372795556151200723736528803539540888263280360103295624632246693556544491973991727852668371139930104252679475319848399926090042331977865387411215178978459552110846978576088006582846468844874487012692955222516385926196617936245831759657716019138211107747919542610578982501267431455258011891604920706569881688828367103545906521996574621562673331589805433712748343073019216662623709237046435957519585762703488755127954758203835796251597740527199504758618673123285622299677033335488691100123764230680812524472089244249270511637374886404731036828613534360777759903908033079924596729730724401026926496248637063192205644090183907415346956869111870999530465401205218122013504506787488568594153037375126625493805971872671168024822582218037509186958247690964368509161368864442528517071250149616760209956762628308802212751374075948672779598881282906670184978365590863120828150767772880705481458186572222647776525617742287703011769537078241639461112772865492072590500265013916220437613293133079238066488396376824259489435785586900900263679752115311834125991178813416105902922983195405687638193681358858509319718401992926726376714320584594676066008018081736138674712723452852506583894628549357167176663952113878986561385541489808863637008004255447005619407470343519178170046982443987806570824015690289076367012169574653955019485983134100787065196595306290070283375223462957390652349079089073845059772586211343432905959804343960747910137484649260007008069919074717163981439738580949345422287069438037103667078534776559853124736730927137680956430768743872516152740432958180944592527776478561535390910535773918465888150066848293987773746004208680944916588678238524377061086526391591761608403887613298976522202621266483704709145272878743633205790394191807600599332742382132567891661277907074899270711098509738922594181786701746999532859811638731447633618364554907029226365034991073591185734866962855842047408773870142990245582583018674475902457247643506839841393342689721629871079869545005724538294576430742794749549463527724413825948760012868016799181147270132037254540196227530271732989186304728457796585061227126233108952259938229631729496965660504728296968863548969159390864555312801932696027968177558202536851551125283374928722921710265334328223981424762468299222631816139111180060833854597657477198893906007220649390043005430626854276979887196755427655995823798129313750510133349186190593482062220444712069506631302976559349228083420516941510917233498359477626845464119552559989143420035864121612219352135697675809901288457506667760870738391717493598812642498806059165170760174781601907053439000818513115170436143222664451902383642363072618619397978325462592930492776457925375043104988760042395829807026982396842557748567598977392025665265776822023410251050510353834440327320870318408936360650566732047376311874367318981587610253792890331620783723396507318961342181938610382992692869194618163078131861822647663401536528926028263605570104746808267956815451954648513695763225830812764073035465677795364507091679629220327893673888197028576262796545214987259150425359083891857140929683396442559331493285159868917037804363190005744244258675452593926822672685122758434112056294731303663086247234265529224990899319805450852872848521088042089957891694259171009101909635878551385819675709045558564738430593071094570195186264169585270569729453658680338542023692744586862049572594133983058245673203617897348145977043173887109818016515875156548566864987057215249210052920500893239119368969494382287593782440758013022659900149362736162669334760385487895212546310142662969325424913724226508772603059002078891240361379175769691014183609512993947446259040041332718777873434725077694055749114728628422366010300573383901771110233777001959681106079749571909252857278481724244543976514054590533040096697720624172617881441307189084553272722405114258824516928990322004951905691384593542918940265854900169396185371467423618128911951878971290697215347874832671823128273658486200089644553251937917233484918067022892320426749838223259309972909775784454864238526863022810362618073128164857798985708101130755231495304027264815022406546293593913660109763364124880755922232479575252535173086454784545010014008103670211080587885932542980290959612430615346060078617406631090440734894072918813042380894247394863831755058736783597523457450706085099647024342193600657149898080676822451956206481428467412329254225540475370197181436550742702991840240298647640156679024152892005087637677527592338248450424173865526368856793787410393787783669616416601825811275653715329049836763282527441517086114492907542320233242238007421540654064047691822392055463135969717823816818819433634492838326954885947754360654146252043079008570073515041884967709624462422852697289193304535690087657604552574913382638940394127846774817540485919729471852676188461915221328071656714010981816618676553948541487331602187993621965592550003700316593931955748967560856287010888068405221420379056319816458983540936809981059113190914361943698359756752415050133367763266071612167911332904970288759289151929045388337768334708068145831419088224016780311476970058135488969668592917912783526699700375167459452427494003005943238012507498402235253124567881960646169525601101181656950449460866046178766731493001675791131518009648637028813840347021502169541234383101449346091570276326150074923807677274408066744655701859017839905599570428138515045791284536721348713948592991730705355147192655811430272945876131408779782856225570076960701983670200342229223401394876059366214341723346281398783107931931491155391566039439306874838677365007269843627488566327954430479965147820501946732876369461990276435045596122165771482011421550539377599900177156361033689920470754994326353732357156313637384152215692104755902898359382234451512769953796696070343668723562765635541492366187913360726661050536951763619795667765296693334199047069255856813303869449767287702455888352665326272734405994183861817303940925142927347473665842564327749358744104705120179515725453239505217017804649606458638365085198671549291642728191397854389203382594516499391863462471668297171854609649994205914129352114007077475325173667621611231644885306852368801861424373830258110485434249981749685573290010153745270985628215526620267748258642029657381161911898953309257202456433358323879754761265302837115044974741427266404558169628797968975235444517803566312836666490991688554958877623557413905661377127236518998871121819870658025682441905647497176236005319028403295547745333230336002230627938577369990156873356811699743342377490115418282526312133190230375514181765837199842277945776896506779393057119101142504423176278662395598156184606829074351390167873597210466749434947984091560136294993356662071928809355093833984704834775907299620438602040093196108240225261149917267842807095748754343451098123883844956299856125237880820655508732718698248755647164668732213928123803120149199092764650116502967087353586944708014539833914639509157778417461771580499038933623306095920620857859691292761510810563500975490183612782800821259696280531687997644395241014172674425101504687754669153756693092822489982272519663584809615958108112705209493216158264089124269262770084449432124299366764436866419492229344890282011216529954417334391248986432091655283948502813094750579198338237407598481094111608012242934927448371115695863481461081440261740627475441923763159606155751647170055315476881606412090878930359436187620023190468486445048771425644704617748890279050696726774745834179967110421255059192511257262099063994046156488429930884842120510325762122963085396884883649340702885900971360275826120138443510027649234137091507984639147229563415073991686637098365736017210566448533038870014413331703965642426488614522864038999811087064108023377885472697708209384520100436433695130533732594438797916606368564038341767680433353060145059195525876209127938330720116722496142972397300912335328574567411292033484324283557094202170531260885020765151041783800689351693272901044051032108082467305457577982665277067501988216111367698041660855265477817328638275773146984055843962789053366039818780392959610103949780901989885747252025809840807519285471190675653515497450910482473039607497745996645837845135313381395861363450332558158426268304506633039541633757829993744664211153982876390705121079013045188253868799026811744859683465852943070149482308545596599053370047991836410499190242209664579846643226822920615453003447767024630342019870363650299318206759916999041058037019138699970676387923534456478138093483594449117979646874575248643815868536325305153270151279915790285740111438812196196244884341964172899249232180847756949455107752151463229499142247462940732068867303486073651140766369253377035094409648334328356372579365962895482575084260492019113156451059578743937872572049332336427838603855000693107787485502899118592248791195647954498512764344730239039529858261243280880225839214933330875696607416006947286361080202287968201939554601029170338321109783170586188172747670996927612260411843230800655470727055697800234603441290966625369023036035286567640690453825720549720451257111068102955846720265727469815328624265481941100738797222201278012917315045094570150205948540802071577865978142653506756451974590365665661567046537544631537120695790339020908179684395743331706104729232695578290431656401116772016020768396523960330559913291326624828468233523082904381646926927070953435941185092878682837505995516785112373684607842318876227352642555971043600378472854236590850913958669616906120212460655790802774588369249283055314666881276014406461715472227093616485720966996066738277442527932171814946278454873906347147869232529796241891100553720284300028971568261248958185258257038096840308144504996799810223837997853393863138579540107710821849054433507888392944824286017374414398052790352082013639497285370757138603652280929039969394372244053638541817982074366369947229565055241845787127413051390030855296716509888657676252073635311508447792401992903809529574970373609663597850701717328753985629243552859606997026222388273223678866786779689992187364026887827219462269824522867332803717061787652059236419558119517731019956070724887936476535647454340934435708653793173876076764676440658572010597823255810232761590787256352907989166063589005506240437316190805618589771305930496056261282554044492058053007265294702918280986412993229418290618611713008487445358655692932922270949134434529798309788871810073707459788444436698329406083154179150353009773929451573114287625355252548950444599591734064264742482424267732840851658752857075908869667936793731332691638500143327243677661091513020592233823625020087258789164650302803416719602107032298888235995895433715868088022055704696600320812225956887012705712317201692689409306463129481900078813069720825846941243799367901216832431707112444252787599686109507357004561858620016946245346806427990301214082793777997298545351384955206895137564813152597958257001271480762751830476434924144125157866004807392531211836756621993114868281972689072638631294276701791570169576764725146588605330646724448282987767353672454003983017519265230704981856492993485603501634382448821198450279193168410623970262092999477766790869962830307537035647814266023243250458322907783931971007438824152387757513253742371086040612237158850258806406197065432896529305963108159784787675064817942620602039223086640024727834542579607263878913229789944774218083025088584789036874632406873872250802691269631732343722543903139575554826859793002968798999118417744931863163748156044673201299968015709540749702048373019562281687508504672776952681600961143049149126565937501300964967747029136727535955927620144099896628872973459650184253039895795233279473173034067208274725677893928083711298422320331638391738260709821714043148283161000918481325900153838541887965226701667548941811361655072476892507414088585465276202938413465425183110919072658123949581587152558892890207998167501707191955995506296650392658975778201386619805008984691958234077012129703203480435142385332727443510591101726589215593061939807384051724249424602582673259856656266925976068638282450501242469399032838918525263484050567911269250792833860034214440239183202355210524504179762749860418388237712933505562405243530966475405011698743812178546070352995934087482197852257759020164209111914018372379468059840596707416253297535022414646649726999336589755702285755611742600948704544526393993323667184905342398202383408751326722793669803144298433644128551386480200933978030551743890827352120793091702422908481189055604719789918829149406964224482363351368235080188872611506151940689986294845250624823850225211126055896228225317812493642719949682995437796694526656567227799988948618530203517227559329658981085443229028821520403589723937510364521265736322604831615565466935867242955803065296571358218938526279046761788448449367754747778816394318741808802049599242607084869027734330294054922635123895238529643833521887804266928785116398467763237221646075368306553907117239121704810726193631211855954976620126371369661759378834213492104807276351924402617552093829318199288172522425363382413365107699016332738390799339698125493009430117721018604491370985074782778417595678385986172953149285138915192622690414474754324197909442687847017216257770388940123091726322738369375509089434468675598827065758513121340086221517694275459177079110477556393952679307639713452033677271680744051214777162821703167842348315159036284633780377789925493421844223805136455862217919724200171499122054432678977035373942679903132671404651681688302405463674256349040185917366269192313867663389502980830593829477456092611144035902333975108488486746097659566823385005234066596179527862682286764097628308699467927785397818948142875372431045030400085910669570349679712103345140479824425616806695861134343086946333751558358055978096151128562743409131867478401701593720345165712697697764337827301848725229047326144569800129812025249280983391392759941431855838770180115288145976184164019594807353003825083165782065774586689183647964296911882681585066979939886636929606221522935329099974378569649853600911103037292065666696570487611036850732019242803455909229906334517806972334321557119141113460219357552109930932831925766343737959690500272727143287176257292180346451581045010564349030012842185660509275467333533190438847166961267414841546038411824624301714235714201739914668373179544397339793113055863452470878606145181734096478675778931638514427944680054771921070600073087807672487901627679941239483626383677690837103460651470490139133448301530716990600486780610134649866763830187002733529722210226287202967123256215345376982867297168894759426273442968155994023753039694211316126515543967217909612219998366450076024244430017738973205163750249017704253083134593046093753287968946106260592815208194958322453148257841015328509680129924004988069058389581142770019882886884661900639055883100179123429945356289975784599906735621902667386648438633581848366918199228009009287727853127400972096881421344612582379770766692103147088331403106158489678347728488415788189201889272912671466816614868134906376720623415815704624783791731288381718295188875024591461261382235163241667628048343808192917675004366429516785829141149440030618845900305176537372754044666249474400208190973904762849121981886601219544140758838399498285077079110209591270368131114214379353360030354674946796456117929139869393506434449516058869488486516819361364713129176015690175804773936439404396663758870408281271704234041951075651933588550000902544638468904010184650133497385578206548593297761426086241499868458501081891692264145252149483723354788200905405964216711025975465035525528489736845586963973782591728418898621353389470273085597560089249917491886011985333615032004561614867613986368225001101740623008448120137269003748696649193515881479808038964515078103013438288839328392521966813994069751970469833850963111127802174507023707811219757655163128126164681197112285002630728073338279991546236627812179888073855507892171933967755997687883008635036871403231676506507107254143744162008787689359306120354572102938774724375472230640062273105418823073326053830167120450169931804267609160493154738397678369256020491008009915904124083138605385502992708406166270503192344619139588864259329395731466277646787426558773571678034661530130592536997611083776259740740436134526999358263466170053567571343975487369975355456984570408040422580215380641314351083942103385920265361858848700812836647982290103387662532206228555537352223726480392039800194763127485532790409883106967514562329210365423521860206222545931360124257683231335316986512363922359882231469661363170963147100722885496723975741259247247535961118074570587511427381816059883646407303439349522257677721101897888554557242557402176429781971477947769524939702402792178138089537164436641092070996483123318241771814234465999295356604517174397003963685384520689309291414721598597367982556324717187189540563102925021781858916907248219889519826833269634372011599177156630527851348191958240900393284527970802622304962064256863768609619493066722479464610450432934809789905100761666588093940080794220231724099752570215329603000969423951926506438297729441161785776113279100699577493455078303323645924798191284425969931088257737335191656381278898119943982126013370607191093179110467872522651512587394881682909139453817847970944118213958579957179721902246644846408051431781702618338741222672877899907169753339723727549698750387251944024838189464294627294368073880104636606030658533956228859375342119887308242460300913143659766128435782464875720238641801032438739527112972462234405642328777600348192118810656130224067790250017268137136008812169152857485191341590604414332725932243936014877657944248333354622515545372827390452296207398599384784754431796101663675408400557242538262165965203852751708422052748734432205775811506124661127328360960387415924248179940496237433751767369880182626558025130354819559702255339231373870973641882786942466418340031792760893463063903139902433922292700617754474807088773364126896988656955190422142920437735235622079139305656584159995814641502271654154697735912743836393897411518213337536219904776782551426140035870174642047581891096554842227489648220552923868795329957183028052897170828133309469143101904055363704851517941256563925109252049778217787457939425550081276379923181771828804005181932006842176781119418275779209611159279113737104193801268721872355149998643654541643418617198344176836517071050075521791519550913756719194986810127510967883156240237912624695604633629140801075945062107518262202125427028724398274807736647950071800908425132068261468071570379549951426934167347055347084113113677209402350072478696262167015953322629144954109445769091721433560235816803693032218477097594563170283695863322674008329157273219654195554543705949951824005503995175863014679894585836406190751956280271117755614466726661377767240929418424047508393480408247287162941623132180948675833746964881002240236061882872442913034354117453701980454217796780203957774128280854411603692087329831372613148669525681093893740057186543456180239020654966549176258728005903791173666067792092671232698359013444723877416314389451133067589173639831222301550571986291288480412084069185773071642732221930404648510621347130871495564587644095659137040799793047605820635648572560582381192085517410096975011831300171735442283993895815242986580904605347850512228826580165141711653228375838832513554272350465191807921193749635761923719457118787626989752364233272962539531882780677228765753684941608303286444302560764743285195957307126845713347143578699820598490937511468516703553407814489200624090242025568579421744815169810275733374534227440661085723732696636906624530187436575891663941635087226134921610928133259432483077768610207709985492350277162987677815553581296224841450738072529979186130197808768277476128395590951327012606275380852518993865911828786399192280724136032586835556244336548472967020634663403727486072316709110626411139646914712820921796257967233780029933763257873904486953941555691632417983091713257150243453426566899250279010373372458376982155118907158098840093933461265971780171255460537267806788565949624949291869199228739522149274211168642166119801560313568278709121671705718512549655511255041666377150353522897534487969288208130107977797036438186496979740929125933893230509067722279075772121823814212703870392696043442891704881367292653416165361879538387798862922738898233152954038145592287225045339176985334872725766284730763648182346962760562772700534123167538775643746373077629831867351986978797382980662680608159259011685780813323156632306685825279401140218948582962597236662727802385446310273588465906716160256365970351053676936108810461820318395495785117553829879799138560291634503490227061488164076815400339567994605478184933517780160663095132435713825294285468786914623800433700630457681080883547115752142145990749914372212540499576572213284399702458327082058038105608693719983054362548192037451307294168348623310162974309830508700253213924289472209750469832707232105900939630365874295161493779065254459982251163339472362848613212104507334978133207785677685220317783479155631370354610035704432937016386170508677282401809680471095476740300023013335385669006494114593471693576007124450189625132167970764434325252243871087713378274810250174922287424958484554348343632110362983629950872190457963832585602894382345908944165913868094540449211463038689462393631131094021905708949278453871946059009444308658297612783684336171454328093256761348344470438641727058991542973482535829933729046783934375835825353780945113090658996324849241716313774058936936332931726186817552629344162800112435316668965103512184169635759045857758501010406828305002209033884368437320029453563145157078389811135822205670231217932669197251279429463141624638016341727404767627678087476234721317086508698001222782679798650284977290827058890480045087153619076141741791684607146628893607645325868610184951025441729043014605647271807355917874640760755514037099270499866002356287477521199852453669917722465328960801760290061660940985257339099540176749718295120025986530947350016661949531686031432635908527815361199358782830105982230079522584254897701588731156750682356503866263174921935168949926673612260560037286927009339068717613665119918675502705927756837663950437065701035318557636417588960984349237095423216603751554187392750475438957432916373157667153716629013336690472116257191031923582591223651099386382882145571274064061432996708101983173953237287985683579848538661547376358646541618666319525596128114941943903899009069553861518751861546689221574786706807988232887308865841780317814073511971763887801116292264523904519729939324057208095894126681588369258229804373148102274204212710793667501380931884152591566265537776708759169743410567275953164663702909881695743837013855579288398025324640079810205044471711306960168174639892674300390275283954237315290655909951290080094109698731565994491875378519337800966063924791703671215822481933153455573898195301523636460774050913225050144159580680627668732453255593779183432677757221010072509230573384950084601692702136502217812186147068988648670359563139724968512887505537997209337550694467189769294973975687280057529394031109860216693519015788022145504668525984416964990641751508271651330038554459784168466619700119532413079561282353146996669668015178014563468150273221611462991388944759111233300023193188728659342074249355486922213842623045945554161661384046204606029713836170617058850974776821352765215386968517136228903321608239465703285460913083166708727163016270079991099044327462534890808843496198171387826832203455445539461173511331506587660679490460075887802379014864199762730918653175572482236721089563460497950416940845516580942212844526782944406897922278750928903156200375941373570283854708580086228377377048924280110217416747801234182930156738276988407341573572017593170815174199241699294526119753356792150819231946895139338538149248261842732887781941742929632463244733671092740655690690168213215637580887270432068414916120342234135808770394353294926422941389823938991028877545454852245657228382950926820612892173301307490760333654125218630339404585875939222095247748837691791151593135262401343784558452501046059023896985787082507886134038659979633474642539520337762965412961601315408867697053712895729856974193041367412689742767719712494607115013185962805351688805527805963766519315113861163158726059669148903878330315697285279744600731907465359564819237418147395006623983834147941280104577806907945410291189648529127312503323160524819398323201277507076802620800763633074806214702392024993650673782427770454448998836028824427384777438646489431944493356753572600512787083428221391416198763070246353584177711668293648804691347096602269814029216023184298480440679284301670802702494555513458968817458653455480796237679678323238738141285570029849440002869738102514822900360762256352238929992284256876007367897719274560161613339858800779618784655994459128495246948628545024070661815697245772589970822876549465823598193952537006950480050722911076145631751531819518427421383113021216301965281784029878240934311358135504388603616135325968817248618890451280741703240711572952154213676529204054506821368854930236569163877811719363224654050304943652086658539904512507646942881511941244101931045551655172036602401480757144854618312575948979106931618137476301970612408178316331176250419917542925295109545250832106043873861890883104245980494283191692307452799536254477336724222585073794755925241544792635928273112468498507820327989226345237084281445917902770626782476305870309584364789002940262988940809946005595992391141581953393878321360182880469454234948431157488336987154975055840086082314122083565622804288007505155051963600529898846883610272813917296179055561256399540857293484055617109685247221377977358118932438763914471410217250239520994228594852274949885710164732886733552038444660813289954972891686615001628473748511185220269697748348422889735855272486010367439153587512924336114866526851001906661931982070569530618222622047587387787414330081772314731909394600988474497586312518878906606543662839101691891670702486282328036287518836261642991373318628315237743538019544097133575085773269263650412085066931227575481417277288382558694716860304597671088963869560525382729615936845622181561675523615873776583841547290539631751177005329592654955535781523847131361609645320647182793719669987002760546503915005543429055049881493773173401894716037503184068006623758606041682451741186750683981740827577348437447628512362385430047189021590531942892018156155703997307608450538290311351135597683107401611885448200209659883547821207629697993283022784122573484566557428950609917060091038818633087155042199543150235094330544382021090172237922496930333530968129230384193899410718795048873675419413358328942223009169008649812546888799045218078196407303075072727341208698757952933337270088687734549375137899836542675077597265838937916837542902890825595478267709361241834976890043897025252062973934429420193160172611961026143382960864721532373584325346613717450404448986115483874019378629674130453869502597548609428476887309515052422549355020536080181278398123574623301337943153693856826719714007884529595026559159748083653892174499667643092408375670201976902322267641875318824642307044462828042906619321336538586042156980270640077066373325065340949072912025918359997420596412966258690636824867706708794243863446436929262294196564398314184462557513448491358051361469286344442443838169716526516693813041960598863242443303079392726433165012486412210902909017508621438806765495148363465001929358400248065124774816900132880031394114303218902206352875256700657985569568568043426387037225618188483330342689357952073920013616755901224549075177419968717451557842814340843374267664771545568915106978625975015676741015809127256603776546213922808254711125736348068607301520060432018480875721980999788367683520456748914032847345112440226014559574608056743123550183147099361734570416133169188992388481249144606467346668652819789666954885804863990323827277632997812077834111115601281197034408785199979716801122220888878240653126354903924575521931749823585383377874726115718318799693335779360012254330481615468722352132335801556405293083533604301727407810678328989149820419412964863176278606029990642702837490112903160558138989329018353705800936948422778113293311524348155749578349055101348866999832626455820703258915317591135321448316893035641815361995101067633666238633724934092356849128933555363171253421206435215295770342125135521207275981485903051417771372395769111189189575613426446920873704739321094195626133086579379278253196819842767052074986617553962533779528012787188822362179332450470310724751286625625099812764877139535996015844622096064425363825781902616645196077205198761038054704353482070075424384753898563134707194595647930436300079441524931208079320520838174201583498842839628288247033843140308060877278840061951728197820912118249425195536659275680431266227140413159557260733264829308979881811660345479639583100423956792823990865196934080864401897843557396684494859643207218427679636412223134602585420112576594425992898464928655015275494107340587825910511923566791006335491337367110936053050075309402512064957492437313159808735243922078801041933863042513292645729940536186637366639243987313421149286842354272036394497628891699824163107818011351762947013235146914959073908930008351720008254886761556644368591707098727641346184820959978835520104187623250733101019916825265080667855530856862797613795103412938420690094659794670619908854340803765552638043539602830247827575714501314844859688713640750541976417621388763686212131713983010523402293682761166621390634167821712210912421641005572154120520438459788162772532464732797075116898199389242121577215722851797332123331323251073360076427204680402518617678759148350463114063127229975643130552857788481937893660920029948718553822526457777347965192686304434384757450577740511628024089207735166594861012615252406199509696064549059172667003593815688828976125362529940468215366061016723611710845410300862907339803255420309633914912014361916692584501434382994958148831687455705005306699061020104038235147386267184877490672889438030396173386680443458837515075763539152554718470308639758111796397503719346176579109853870266813615102597162003802740088079029959708885705981327555909796375850700988280561806505046516610802063788328530679488166651044613038774077048831465115138524644983998755984910020050058390429140797117644285155367146871329582156578839157885174594479614345195814303398392738015886420473318448368828804556118929142646760957698153801080080587161414337304567786098914814713675853465414783571801507468871226559638805603302873724687220133624408848818341427339513371212929737514991195939233176135831568189463420562660946731949406101745956654612550776564125892355008605995598067203806664239558637921939292095324410075970900703934825526979665990486789914698483285192479344085120507353644024896725561239324883072344320617507494531581083018451381184261663467597667682228738406160961066146729602636322399568251684128001418128641417956515939763830856433826118023962881861103888850136941833077859018781415186835888480791065696954175277493158214298035991921311994300944251112416849939630856749276954227188440687154938730888960074864403257647433866888098628359537952159713854076918419797402262953485367140617877855936927045623569930509319824598912291186267753770483656432657842606874662457718742244652901909420100089740670663361288059824682052196882646967988246589440989670376033908268014778376834631763008234317797992492696088907286014135683031855436747758031195784648751891643512010637906472748437115470044407524626397735325156417451194021052018922880435282620728090768266825891873481270470370105395258458813773892541341502310742536815479814304927325363637044479602373681337564256364569315967615727103423763424748876408240272167043936431008600294490755640790676884922221679559047079109285592345084333143215751763360662012413677442835268170417163970719272597941542839368562328617483199825536333008881333491040334067739464607065254994331148376235068279122186687753416886930746024052666187117453383569145063117428888251391620385559215271073841870294474266827245108347231078119536609188340236490713394720060564071892191200355439981219885258879132706457697961188618738177244216665282417374786623231554604058100374788853371733118981679368850623284763491259276915910376800640732986388175082618006362675672274521925457787182945628290040795515323930266327481273742413164040853957617366463699225742421809029145966487084225342731913114485114859792091498965760899027442437592331394283225277874564396818695350737676378475813621447394715791367484256166804138203276886501744400848157608050275264151427050316245928120581886503224422774417955830668034314330239949943109227937322671622983122031344286153470549137336426869082585035140394225400947766256009556729838613354169018700011076046030879947865836536028426112864065829146118573970545933567912047587758610583453122927133063444045359089636435144606847083011966240179357750577876060969635521941236081800758977891385178451442529194479658497319557123275890915785297565079801571349947494748517124017507862094754862081441570430653279122062602756687950256518837743089207454076379791099326495492484530593458113353568183921067095520191939448838497297943161786441229579466529815387557918692570759929532372999049865293234581326245273110785333932520171614542293234460601913527587026111693935949734281868479348870598693327877913569672770141016145696165440188155520102051247777208022684281908409033525881611864431214509330901210309164626607364640940615655893400187335253954861258537686066757378791973436935962170399192300543393596118263282930292873580435834421922469477035757186322805093976588557177849012419305047447879762728846625326519980264790762876723411977724579658264193024789583131892986588962614819043340540782324867844564382713584473637322686888374116164888859769510429888101368026532297343899535117559688436249146251226520230010396111739514704949861842757420196896167918649927545825843004774277115109830769659123627616281343804400964798607210651068558609280276614121697771638808698247800720371456694436281732315141740191645658270534878210131732515152325449857260557215443974949422144802561254848806903885382450021855181606419780480541251384689150222209222706927924580667218100997125059173413109866198645074293966041967815327779559682496204285680689358408662243255153623046576674240653242153390285924744122147219297444114417793676345526446898526601591477705341260800024230430762787203285621674393390190930635391633341842741092499388605822416860247532648024323894044763491245066171259990893748765094510963460172532497003921042107719016136696123934388858598956467446752831784330439648555120512887667275939335537548314052812324532528407647157492679610478344130678575868049433705150518243232521240535748245930587000502612481284807747812940547568836620886230417503057781795249891834092692120921800015195518284411441706977697282407031940515775192953363300341656713529783269057267046551168131005388355017759531540506186940379521941365478106937341894895557694193195301463818832646157885820194955180427757137002300239429783766572389879136576311507274944210488624450375006953038496958511720557058262730986075591763810464773991462512635826365376812044883340490574325086685655713483811888163103080785963213269825507024281245024414449747119403857372411271261716600737160539144279049930522612681441292227301258379569496293753350484748069813139480817578432521427981856145070767691499271281940052841290909937321466214092277739117057212513753468252954509668699614245839241888957057303351041591260142328754089207172385996406972933448357470116618241088926988065430538857546570706360295229618831885090064111776303397149061887408639691951639692854118036320146133631573729731380748179869173056633374402959147337653878048464897557168368996077495971458714832658853824753754220743976097270332834626978245489955103019082356657151442516609776895545473811815389695282774022108487399260414562164075404174114270275849508671409380585283204825435589596541239335834014767264110014457125145133974059729180480791626879004287958945418414949939235276461850501993259940250147100676598154609907276380502877252222553388186383780021121088402940355820736258719826583597870939737850270382604835863948210285788053412846917871328964320723900144399805471335171955312893705254363564640226336923689138427711348533725636473569721443309086317412394192812068882026009382837012357431493367511065872642560011348272877669604460436028177579507813447304566535122548317130798407372954899461747397840948888758399435397992255105119510046792807039638581160910391876325166745269021775548402593999672820829344120798487967315100734658938673385038187755223510830805801698454966538344635336431300542856238593595307121192063121148882936736935649552794895123313909709895193375028866917086409408122967067445107704166378379295704136754620181041091887167691749102865791195834916472798002404128344956113991289062325789387534753500221492963506054641766761837615008478831470198422449026583617697794108079706680925260455732319321890112887056997065825909100624005084126372623718992096747157253429264305318813652473418352225527044037835366837898404291149409955112617504618568151414034479024101291654188929067347022197719715763768518359129587132475650553820235601065308074177773120320460247051031554714244585024659493645500899497836419011327435006386376882126051728874326950255739237070847591670129484928424677467877672516841756668959940688797615955101528853560816422766056897390395394179122589288124369657965765064906100697554980906159016709482741280725888943118413672192727917066760670766992983223782165712659586875814524809272586601193830603610307379442090010953124056020576060526451519479745342222055392268018983214212611097485923921665682481878530797993068597066971540924937664133584269190572360751820688111973691778745314983911087606357044963593698478944519551122657395311645890581036973738443768436143695693448609653844280452987089182919222941264254875139463831085822017512170911981605266342159680387002945706226146901980299813056145321585713391311893147901374155557342104809293413129430609352773554918319699764430744286285635660486781386844463707068049920555959376047697172318778589609269730776173828967952395508617825167788372363164345497360124056627044487507703008517874597313401435502367382381144774746970461548467250201507189415638021644546286039319888707467794661513447181740497047503591228092570994579998227316350175450178136752369827061981574200279469175856467080259275561991705247871081962598460546644486050417521171787281828144669255936721378837611014472325616172770264173376073458898399886119926924965368271581967763697597777813344346988176972817323555249597395775678909401867095671253659269124722814702208247360192082555709120649073795187187366972339507392040066486374489195768809769428431061822257137938347807309769860217403920848384406158406200490329502389104090833396775456443042445810563325869326782518718866981344320213817298340826616809251034868089905674810762400668804631901190086823750126972053673720852791118647471320782293271390479256745135154864996158714931804045165678349540250291425834634230312080419381993530382052676342393655913033829628106073885745899606758839680480151597294030149645644237274089052998281127474388098153360825074250468753355541095494227123278557465701193892102308162715568426699768298612032633625909363178720064880074372025103911938036735629218714669685179121413381796865912725543399842025805396323985023679346392568500912485267897937478522508503944361100262788979539336019625211399274856068821070470078878313550961362169444485621979956101638660245960274013754224433369019846562686265375876609672611507620201872510160801912279407019329588902519726228597005642979155538433201865702644941522880994466555604130990923723170568859594493435147039157054463166188497618324714734349571620699497462396342511801215023582929812381723970273051609635298942197642527667143928828349509437497278913322934452510388056482576823125164330690120176176698814648621807035343925662367535474855908575222499512177797441221922966984528730152625013792526876319613802814569328051135713422328345797500851265165413468363131909965594805737789204494611375617357060852586290565876382550943297057800281974907838416113235906751509353089748293506447791383320959628223880597560525532743969296108169811984891024017921148895821685269454197287401038797884880206831082373560681086724459223535932900303138150536318854176609202945438712145818503380021611246046728112316346304638768170063555852155305540029120962437564486078205549745174165757127337031519981618382446753110693038078094029605590159180233806093522581184018458167005122906769586055508286036813402045222628826316844555921805966126698436881059649428250425658159814608546946253885355622503747681757332223687334178952733961536564787525763124720792714429311531870154056421447943829782574338951709175253526174414034626725798548342112532758600534670631974407028765033960412760763664625620064416217507953965721897781022032148795461196823693153381884718647156224491897922524629882840784760465710543367766178082613033095855360891319852914600600187089856735954152586189001927959887663171201795849289400375771664192221153814377135922680205550113138881536313715323247385254320222105651160061761137842463551556880685754589301661392322248165978416050269161074959893889587827078553902286281555235445693717949245357469137609898570488515293488020916884901111426940779380565469638323314529426155214218750786374558240335218865738118637395808402857669104651256531315881908136633548376697334595688143935158075481383592018237965060241622396718065373735901790528649503240094536853091951719423508212369495769195940775045990538192373600374887156416303871778293645361775645480987393623871383207628008707565091524505338342065931384663667981422004660094173777951055055087326142788070362614593056668138103279199949663201535541216936005477399942341434339032480780334363596220279989747130665238514064674767111026416126050713670861379626572734110835972240569496933547340369718031172757827481660414826322658774023341305143820351307680359709402242422821002570439024573952691888066375583943885153913880568944496451770357726237531805389872470138081813683209706671266119477652888227161450472664870531915716087997135854488199430041320099636976854194640174250163416597656294882280759436742784215458482073782813998245247710933736621499646841679467228386226072313152067680601165578563527716001315322096700163362709383481604433243285264276629543458193033598415564751112611106276999361849486469594863549642986508256181848749231535701354831020798625935993175092465230868252251404676696572733386353479854339285693275793826294758286012684313192933732062255181695881949712295450155541384834030033911643741427805072684942097623854966054128718141707898530159615535391864983947927050127532673158056029562707499633579785024818800600354983328745217659417499533238559843409197935405412416890523922816862070563184675889126589716658910448941043655734920102140050402227885267970092625320716363697881346969039762090462294026917593372200066307444295085716112691922810317631467496235807538523378309513816837133432831561416328703773842485516697271222004750623873904783952016744462078176629093701680467561213002252289307945909407921283124470548063300538571146368219552492488412042115589940535006094941591583707310736281476022526469336397013457485372848077245179436104860196851195315971325754882024912726406283487571653292417281411133363302676097565224925148391635056031917126759751315819075806313888773483764922835907521862733927930752782744798155997829022153167836946862900884806684534572324039496609127313487520094998015354935467680719286039366101996344232920582942834297484491095212045344924723122329178226826992165844272598235595078052636284113309505672397336888207951153925760895026429334170687410221984837833689292079306674158210828853741688254431181292301571695385330177594730369194637671395867867852780431131332210040382528016119848777308143872884031959750820379991002431800777746436899676517290153961360304296745153385952296200869533898757883136512958523497341816419396780605994579260602118350704442839489061564584869804073660494851593263445797457048085422574239394125362316698452488819766614427015042203583075539355648713311245703625298452175774353392556932066546671324702363722210978064391790951284171417017459021742529572645970415894253905573389953332338010339863371553051142913330342237838745808589037920319406509175734536728153460087212524347685636951223838006691532025753863244045050467781306807890327762602926441852694188115686149824177218442296409247700411896760246682540341181333272063872078553617951260529885503129332411562416439318031142160732720358110858505157197149438515453678996607235606836946497510561378343802991627385345111270643060445086292671335835030814823066415965373442686351203360628949497492129163560601538058353874516090970927771848101288162800880747032778006222703399767583014105516812651054023679578516351362274489316015262108540634676024080998802442842133537765582861154089694878989502562720632408489215418139548526520927952572736736519613829458089650431326405051656285037678644950813429642914469399948402843389137057941027358730680329742086129458945235819183150880218156739998426370910652872620772546294989610004270999595374275844788531382708636881310336324470016923284971937161592629124681228579611971170546828403115549666879057176237109586330908156799919139887663072532126415799181135614536287267470208817985907067205838055267894251860276495809857042565819361116255140545315450327355211977729969431859723151105923475499192287255899352833580476598686227920974376400221041277776190590568454880894111628813252807429501428726915001161446674140300772308017201632418514613681661015421020938138335483369152043928583685890842586132578539123145638727531619315844422910696806866152990095544919685416416159568240713925063857477795422288076039483213001482544695344723181551523597604649217852456604787160689863862394082953192153308725766293507469560257474758774354224547905587449203801428992671348394362839175367993841730288326808547125442865827915203536050191721522314191484231448275327896936452042218813586833042591339777635984936808664013527483031443859993962713246391401796110598442933653417902275160937561989530897536681961382228498936988546600205339714858756624028228640281144959790140652053988960843048210882739670069499326490466572521466158465038453154302628927648479436313809724992512266212640172991968612903874839581561680179607310036703333066014197845970122188925951615147459987673459926676901318351405032798666854017559486072904959537500847025648003627605995711258797021042265358732011600328051886303343080440237173061711433824193466364701854478511225538112350999768997719130743615711996462782698693462974918870604764993836103708193834957341391935438111009410452966762520272663292249463970737244400389081371285168214257290789258207021479329028734888066754339444840963782526803336652550091257993727590778238663207063054896445149276282260188384277837099353084543223500531446443616294226508186110850118044781446291819419976447084793048775958267248202627284329219441771574786588280864531090195387147006971610285373150211282887188477616858538020407550150016671115360003681244766118507551759960775808672618586654396102664127523727033778988493296984521041403174410181754099455685017794897257174617650253223242315354388882405692431496228982570373056935031780006018775039251856084866364524848108204980523454157643284783035601357176601096030674969084674358206423328946076439787703553841645282947412462079136313425079661212520811490531911913186824805711641224560627767042623910135126250315538991951364420623984218690221582580646860011203955309292375494841179736550370196721393752760417777528264869856732194331383266550036407232489371879479372778492636426198659005430505815774956234330035162018929448815877828080946490515612310693972977144914099721603482820204893379280043715245825946548447261845452445667242279842782892972412261421571126875029498605841844548155257884468616835093634503175160947581664320853743722540374345287641173751631920822785805187480147302562637802123310256396011260543141551634307804110720867425740473911539073424400918461734580941045771678337233278209853559004623246467843850755199355684678283555078068433759449076187722883436591524919894436024229462683041846846369468441719902805151878461905451325579128334958405718772842241405170923323254716944549315579724088643005948426996832199323420193776982916188028116790841942139361950089900723547050900430304573098928651035374570710056565091007074518127934305421656968911573414092989652230576736128810111713829424321401685053466925306560112641236559511007290592495545167920031792364153493679995557878934040421819845953252404149347485708225150743672535394242750209767185087971653091412596648467875934828290985298372910752565606146778016596785279996502792393856170747710957864286483641170895437667705708230561288175424110506856964031855385419889004377928634318695568010126598895636808733095707888835347698935337438042268236672969254970996947015286798951375998192598857657529246945400314121815815495627611565714104905184219967167569957931322772066052111896686968929998082487534307482883201878643450493901070432001460719515528293885998665227957014327444176908655407115529757453806452341752010433735362117754573214357890541264359986588723876395865190632139823615472028702253586712607157171171536139694336944603692384562629512101684605617995159519399829972717887295887531138551276104060533445129543223519746315423172851465778472536675387129546059504515784024406420079136054269711664773222333199207884582033190228238657098557455072089710593986861464873060756696879567677229362237004698008436236807447259296121897462183487982775261267030801857274818888270757025752903872736924472277264034278635855478960148709909566618465576864242824274138222992198237035087723965955105170838821229368740333374238719036439489860365599631423238079184093339270397878370299472607709454692865791773192426281477061567681191515715308256597933702491131277124292757502430238668399926256230661640138966674830116597764977933453026992414210514741118912546421576311705216384459850902035523385159102782433459126686693599149748974767865570380547953784748165275520181671139577450881444498956378281690510942737565857493191039067069809540298807927580835960711010006809008630104436903467143000835138424443651007721101216715691491879834601061679417397108372631160725092912894875295832127371173935805838000879519286882655277597512831364279329713250953658040656658969096081089743725754291101245394324292447368910694822635722377606067855645482871397074346973775669134681357194629328937108838198755454576723382740455975696384122377556111276283088286725547107084253225668178781678821805465128458478382074953510156651365017507154681248696419889029874349709895235113542613343319044460004014532130861476423416102283976840715818618748163142020694864151292497847796715541182217139918253254109355103986649204752987454963120896057944720703461673785164093087877109694314237786899954059135149812067468022148336528677583752432711730806728419095847992551046219394310361042579611219500968178482226829521287561716428584983195280708454912997734350873253792787300429062512728380957619326552149800943387505694024772645127175104072433493860666281310407709174753837874135696278816225228888112414015801732817847901047151268428233670969162327238642185277510963057649465075078569319258659818914675109890268130161612189174474936434547088837055137495605062650565999892736607784056627199894092865899757457073876515723547936855169736372803924472569010390591851602486103674705866815235599781981883517856938528456650330968946420708559280286910765016126417475648733638953495959453887997271532024737416119633800810707262663895919151863340179738813084227821320926205639783740716688471520003148275339410372205942324012331083860152364617555470712002966421236549357212562496169576791202356894278401881133422354766755445409525701229485716691747981300122144801014930271974383515138335315054383743880475321367563267297471852430931123487065722331118487933621280186699065073743542900044947222030092643171730229419714604837433794296634232451625153377776130017189167204132153055133531411204656930087150510221386141394819084630584555637975042697236299636893173735422113589292853622790921508446527409865112914696359704985072282312971353290072530354862208430920564142446530743817170719044322649034228966103269107620173581808306911660698481513394677088780663643466150051399894767071155804924962578814523509235622110305158818450022275050269749918923164754818120776448791568139833048227859156295769243103588184032837319579888500481379818724289555087057724420408598362883303336162566026133093514805613616429591739010015587352796381690403839809266146891301838834744546112196816072965817196968118322615129069804326550301110146446270805337480125924611090778600224341557775946309565693247073043017435523965561319944904631664532054220037054361099127123573526327754475438844737098225368450206871708539082910063464739728759475744592768480443124612866790197892793459295790500872769772020901923544253653490440382477869540927936981435863141337493724446466270765793121470740051959604215433425051445253638953871734676256179452195709359185125329565233231216862282121880547313199818230064250427223671473722914967970710539408454687440669879284373616193021982859155069625189979980937847129693475336887073432950384400789945152953529476210276367048124090582209760872827828033666341319832718443473469298012928241355800112729481568458186898918059737396673600067607264500628221253955741912089812182252023783344530037175070689552786999294710615715160902204240231705536769790072622265876769143760421358597612742268550989136567787657192626685126493981086028400337527836142480130369761734602543150104120956112957423032626250625367258160585622161699385049696493396371202980697891880387200948882473129245154598003868616429097823132321581520891690946660701047006428686878915273060187043985600495070557046527436972465167929541163473711788046968696704804070886630084190903169557010449085029265199030445437221149954910664507864155634962015525409440825452183839080561515680382383654087788099357439579906237255450118591847110007796657267121510870661510674929179528258449020608383674247767080446078025658650355795581261807721218677329654576700281119034202695876308430436605289341574343972250849802959913050182534500314276069981476331456651252635819312141143198621422979970642562498443046345431551991922983598903518801914283645767394161113300515290167853208706405049499677720725462592969806418510531084177531619899009675245785768638266672341615580937377858745087912757930004146384347721047949322377731227758576165988357123800764686515572287734903318170527469515803307071283086440612985091591228848480520078493007266862152770945495998670580335632133693682059530030933405810049330744857225560812222351602331649679069831683588807145635701982113410435287650016635390484052803760339316675310756906777312886914890389213482961099108925679235608340240675538758795581986594480104007972948563365370433775605603238214377976686475236540753150609116342037267300047785346278072141382588075305212057134572548695327550880149716560529899785794166615255487983671401008085041542603384062793257740930690036782907922663151494175698373438546001820313358886677180983829277136730477603726408158890863614464831358095222542122222902307304012793998412172151360787647836168413930355375880708724632209409194187711087473104592571977457847740203711120080518676241344922808227705588415677900170222232032487763039676578739778300348546783116175747534278427185751351216418278695904396516250200412856182890250005266113136613501934328408484521514497930798683772574456244091810176660966786687529324195958995957737938039361545836416460671085646429395502556095784731368249211836433730215958740186137813788504470259825022594574526636413279293379637097734668056099971296003064814506928211077556065299940427651272339564214104958666667655158095143039352276788787346516273381914124861194741820188598126165251765663767894661158737858605509613095947780664316487853166950460180194071659542133051346738220315458224323219012728978491447192415777526044459588203313594673707769474791267112756733464510909154755086024158875894839636559097256892712757286540171836293115992617558002302599491618846695608008936311983358066011541390048295077844445939336016199362927807158673519795602269885077829247350872292823488965676396299582139104069722865931907253362405545127989891432727640043637935828568208606463355854913756933934349625240480795081496015610479967498917686898433956135187280760114260088383419343566151544925749121824423119227604331278749710900535038866965262719800307306386659503076683214495374177490429385645659854056332845702059692401782607131831239054217556043322622529566612590891362949264247001096778157007583684197538143215840822799593953902936768816832077566600075667467548453093880448260923767263881899770715008344308317662414372022656791033272452520627314512121366085146797572380057328276856649105124171990485125089949873021262922428204950140889378326382468599386216394377042158444494518879873640829373484897645536856873138944860567831766555548217325172866136773092903990101958105834162784004564327917979080903140688760114113021966178359981660415370972725396187575920892270749245554836472052870795723789180936201840887583179283651866550668958902808722639108149591356724656650362384782447881711805229070372101655018277669557830584610374261099475378369369188331287615382996778633115767752090036333800551237266699229113217870278326664970855691264114210286703027481882701402140808125265619137748772835579034106844125440494461555401739090259545448408347878456255887866263899994122762630630149663260510625839871928764014687453174869124329131110640866037092354633492800103238042394712887146540404811492276504911924318033971036506234802819773764722308318067479142216464763753558924267117624873650485595795904173222599087101277614306024604568498795457520077357369379395909218455252800100447587423769582678965242324654519355430628696809671235138497767430798908669174338261199043420440157103269560587971048569819537393956609886173741353341143281961229371666996294149021145038750212927104157299874934713999560898802515175230264373598545056975117453695865783958150744228973239401557872226191572064150184432954748290453591841820164433457642964513243623641074694142877386572452545509774648687784504484295559554981990078734775489966127487308881035228385795809476104968013233949516228301887976400990295203981230879228083659184490823228114404201978534335004092106122434254519758600180252029530546164960947455656190459289443740469991558183185179134518932204132194704209406765846556624193912024930131737854026830597836655790890721410987792467334526358910969461719228870136026695046603006133287739001720535516292705389655401674797095126302017535626239858177325838985430873169961107156652839174294254528615266548866905656722809978830065169664229152794107603026367385658017927202876005690988500820465440923236769600605893997208491444186416158227468428411600075602716252529061314711223057554062814406217873050222061240804678949241724295311654334784983958618796040585978493470492834860020167376875908641928997777037793607552768893221703692312759564828796580245698040728927916547327840921144893026134699877385400846322508130286024549385515839860724449594907680580139826686398730608693283129475235769382229648102430633128983269325239321333807313906768845716734828668425904699658449529522031110289512154617425439073760982843244243829541945777142599025974984614090784725193319955437591493740432459764809548554546889216105068910469444484784962055469243309047180771568206336138722896463444346526497097527924067466664417613602494998695365653203155473928930850863260422333279698547887109072732687614859656812432497245351526222413161042170310184619926530780159205753551764202009317314592362000669470189773930706708251064646979645454485940837628459362918583012488543817658615883949387040435891024370098279563383991215250150578690541012415138940615359354504083331473771979461582606750412665412926901438043720338721854779597934059540024561148983986904786028528141770084061239843747601992134676213973810274901961632466110219420268924183227667552878752001404617170901617802919246633402779431947485267859787721337265652843765617217806983452491663974368860417085007187532947759973350458381380960725258439818721164375289777101205023207333862608578460398687113699958651654032506046985509563889284756042745783986881795039009633050903480832483546753024290143548107603225570199334870837055536855229350615533572982562790756990011421289808334655144353185907214124328341443106267813131571390027558399200971319533442233996347305853832208082361838753121186226616271351570008370782592395369829771597080050797476479894604259354291787431576806386708505306543874569189569289180356396655875129797505339105794890771605428464000845294635073529875674010421412554100708983307848287295123834329775351392318941341857772639973664471667679723704658491225843379079034077980957365705551255416683209837809570721333699986371815965727605002818482625913726211170964663352089550788628741549883822129396760435733675852109215779609084786949695693358010956297911669452810704443157443025584400406604738341678542003933107630103214305733789789690603823293941981185004738424811075272240853324759026820712457564744392590113329266858125138033681836553359789378761110817316391587847796520671087230959147667789597393057340891177834488047282149905504142656088171622240551201193095394435757282151398292504409691459457019388018433708968275845219914004115600635839656781409142702228758869688786584584741138402741004229843034387731059540050277138175870736544334167469061869241719882853667386003488468890724215280602999933857064464795566804155644816435780162387712165072413754162236084847336914115797581369868663562057570980526493546759898768320917405974336875930272408401490624444586287480210693577788623437812578144174920535101684655030629857315051737904985896057357322257813107262296642750358785926441321813717523954064247465548758292025058415271731157444000909475333147350769321641392954499935428850816061024827395150598655722715414352838367228552479167661872549556977020154359634867406582629429561336582120729498230314596739022206563374945087775481094744636088819819917800589414104220474118088502728505259717218157492017886137106845075123677660893253574706147784867616564465686488415794418816917355805283441554925194834277018231753237109950647267137327552377873173081750369769812629163598110765205309675245432157547792414005386473476353923972767254364318640644675452398163080256031715421489436494497744207698345297695160333489448270391121330115854787292956372328372315269772987613007630210060680938818974961662381419669842396381746073151920140189059174828725180904646834027132663872858195044098241534770412337908016668433466982779127573856427745940162678886499145715533977237499209561433930965729483024088856575460266635462643176749485437652288311072868851573591388550117013481555991486263799754070261663118415712611285997500253177113523343038351418126171319521026012260208769873075223842379145815200359729025143092843783827417856654240162458123470020233963449028870736062541555254009916787824278541567853205334288883462288208150346786940825511772060047757649554226887509866796165207605904765872617966259314349540582933016557932066180106831041236949802576825027422359074636836426874983762169719551647890097229903469343054767440083676642821111077474811860537171743366474304193430809276806515927848609636900056830574545440981824956445120595433679513398768363782010956603844697112568936551853789428280833031861820131864688390363515456736798382888665738934913799160167231608918246962712934239890616654327736043297980628800421698317156458530118463061595427243037930296501223690050708348552050208938080336918892926409281947718089732124286731577977587385394997990758611822226592543375415178549721869019992955864364958279374600341004261586318291317845139672426793157145968147989085288038956102375942768309559874669926777643390610179747373309353242234433651455813861225086901370848428109631788452554148046913128189634108176428301145916184552932887114028305136514661266797992155170324137145567245818990525432906679404390243769194980890954596599532847844116439093577641731404809488845742451998191412762614117793378802491211366359312731744474255782124841079106157042478841676736394428050578526040119229122762006695669502391295333145858915204709437781793121572053096565019681751151404822659212876281329235935337058477012643371833305185116162582090295561122488055596186669697860556527047075878525487281911774259441433688073451636022758638788747812513677314490744218110317502045404087731775136694565535809344612436263753667087006183448034955798408213014988735099298283633042972360131187554259171618558246014827350331532795461809096794949884934126744965805889799911245633026048953714674626611139745943991806881736126560459834759210252966370414817013197113390885465299942292275797108221097646870730770142936237560307066418397208330285279954368261634525644576338220452287452774535074491643077367886915972221344848805668753980894797347680907021995729006836933542554706065304446717264902703469761112233744601244922635512407819527882334975555187982278155074770824122007482150623631084676748650129736055583864689081404555714413664643097721966222115101788462170734515647687382348745106695368952616867272318933037640123849517051108520032712739658379504776975382795851174683399480671740452445800004367539825715548824861364594569766679829474206514634192326351854134001357835341610917147670998426966746539109977082338389993313614840501956385241544269294939845218459876394530763282587737189688058228188912619377801249042306525746187003478420265046057982976098160614082524427291013945931827160413536496341009743762700726876899411055981943784560124278450277668743214660439005259150024295372308721957732344602799031836833347311961614985876614003738032610634036175140067703366015460333018882369171944669645335924197765831460354904163626651766153750093573258346096359280105159222105160976827222949971653390226796269753195901400405184222576308320856222246407222016777582131809937259115163757778779340442749195653053431962241342975351460830879501598672260074603762682719047771519154228038899694313022308202580667049097576226631404991122348770043476677369964947474033273846455328103275098187875599825224784001536975006256863493744050968776614258226985996562570627894721047593910955032474421038591448465326412194388463035567239289132743088443734968701141976958344176622714712912647949849318303918639995580210223677494983428558079400598899491686857987520356306740969688681756302969285736802427508117794044234681172380686460980894010130698800649958723060280702016047799153153699747698127018712641793005032980986416909519870880867522139892778047512283051951957476382744247563609339138333899498739682791275759707370949866123275685279859057316505565386961932421329737757679401313480637445631768565020807420723153236164749489568590507187381446626672179987975436102016740696851175945933399435044043581611835458408770071526538528999725609771977941249741877489538356421393377964360467132352063619614043201371243373709500745971265684077222928981716925682244409390861846255804290296017327513452712325152466076364532948447247829144767172897901165690590983842494886043441247553565558195703783482089917976686212592648598551482974245961813533211978869906941716664831618359832742558182881189810690907295097625623833146827241834778826252125711894735923999828815725170443301167480998537206716508578505249443623199380454967210693464261072454705951972071782448585877946440221356857793612305334495129736862449651127219090570831008717841705815469784231751519590455878706664399744419289758480219095182103875814058608793847086118100503912968528637508882883472246588191607400226044165406008542328023839925596579408480504958819917961465858084125444722096887974131748124750357453383121570614778507078489906727153618095540677395535528867785742981116815875622813036283083902083383913097494350266767682053299009227814609352256007199881418697801633678883146001370332290505651237117797006735869472867879745286711372018412048961055646814224593904442724326628677172649094714322471592681302036880727105550289622563806292966733725529111582475433090419583758195091131142442499038067476213863205322734668018275320664492622571120396721501851795304771368228805456921868555753512855886714694019932827929631715373594085838752118321881328572104237173218470180737995965098072334480618991356254975944459977848438112361915592018184893446163949358464308914549825877113381034786487403174484124087319872638346906641688094469295567991600198947326962423468073498218944940131098071070150561250838219090689409059552589495392113319755596768636507268851451112254821110196034895217689259359527321650618044678905537756625891825821094123605791296396459755042158643550942173424856029826067237331565617218404334933175389967790233184834020950083134893141790814232509189716768766557311168764115064758271364971733777370997308595050759465738188737178940059222663903927357032123124274145807262478649308659764076847118439953973382984444401759201072647470072274949340215957530717309531922708938752669950877874807312187166903518635804197941529089334659105882742397861639966461715998514901526640550542277409620611166811770060516826687222362770620070175372374777825298905142383506066720655731424096631817841439918313709856159962960511777730505665836236651173819917478849738167532143261717362432711649845564648493405377446529196564721091819892556891043798465041298885290894273056722651129978797489305745831354833405780098073131580876325946317391457481645623648021414644603577437156078321251316106098941165658996009261835267221998441396160868954992326142977263684358799670390557527595856180592515972264914161282778355889339064918230429643515201509078257157355149177469525741704881591381759562673405171116452254251228817098745516273807504589501951643284762577535181696870377710515774008903289310681276289198417124415349795677899886332154456139162460612934994808825772914232591048244495240717908796637839381616722155501420092721781953866593058180789316972697401090416322417343228000271646088643895257062029225183969688468718968697037170559637037395638766905901917667404811472738774484826133729921975539012482794335789984834152187026070849495651993460219739173165899927660989952145677239968390500437044172217802956894142382478089611060279677714962819071023396313669324163765423199062729507588647908814698726474134341049325334584050498581946619419204084306012681444099378020716308947812937261310251832229665943260235592978163225399139214447136581449603340786877822111951432126911256830497464535761865922148982046553778113439490438211472790525943253456198464703810376357141482031697658113508891286756269176219709417215378922681507640234359575584565875926233984364291275635665798251408422476124733890881511581972973571111803043319790866640052159311217065182740539306138087013727805878492872820754104396345635377340950012968276014578859619393027415623000786956254740439689859923337182967843566003902071411309071478016860578644564183269721618701996801235487777630214373443332214835223986450765381805928687815398583105507217670669252555800556681547776204933307640732757266204719874757842047155826090955951215524384187204564603233776296384798886443559547522539764775395703357895903132248098545466610312137861189800104580217875938663202937229829808304007781075405743215995038533851668463213147681101848782505729862204346979566424162290796375865063297456722294858672456093632010125439439892502404520847688962946510599252126272917841754998817239230096406341859793720110006582084187827121178990820826894669028573772124370637977081307030562919982903148859704529145439226863198368572723762125772194854037965453199940175435538110442653993907356899119773249953336351483639105748513639310792179087591549954868706460447246448480177884311541161079705860076929236827608253835804218307305433047872542712796440505139557107820506583051967069615229296228402623743644924878145285340496515624429221490880517742253485413389037440213901111204627174232508828028385058723156990837134115822522025862999213125191922751222022066128292011472213259284319050914995869064839127433973137550537893244464184310312880760246989910552094861660865174955583709573714700561960925988971006703076752487289692972271649198689720518896150862259842744365385350593099846906629623009434692874643940733101963387289541725523426358447246722379334846011836540643682768407256126336668238595367860744312582000051229621421727001490433919454223233748812601833763364129355409114217661419495125161246788361093508656527138546855212582173823305609114313044265019236915546688038221424791220088301786469407805802974503357256788291909166896263190184082111246026281934299423745216299534181252306162791869636805843093277163572588507547182447489940324066929553688215896234527271930421825405488429995882146465910440306132994220538761925860093415183797542389122951795174251050589701081280096221994987619977506155208107459660036721417954914534350391166648784766417447807766462863441027071872090690146756640581844610136612133121884014349997154914358724953041569419269380761986512608406194507745472213085842053300968146860926549644476262731037883495130454723763840756872635796862930040281100406694521708529888412640682737085357443569321893910716874023158425244486429448956529672006085148445800857484324590106128875806723130390199713832141262949887948832313363110744655584607188505421043802692777689578151242292395871223807615641601770315645464419972117467456044666357201857520482288000933015274500773528465367367533640931604095373521428612478243480549415570253869554856303149272832705920645882308517414826922543752507102449507869578225078679637844779241750530068584046606990909734856607186564843883412725736586051025282334731973635159709073022682243875246698885651839323000790577246330669676016257212459833696492044158639795022420008068274057134684708746654844055710880091076915079291447786539916448988874157740131942076335004958019931746737246890458719600400909926530561097164292547336955274635249263818555067153690380649270506618622407332156240100518772096646432674332860715376545122458731600962256015012055719963203690349474600808239464476264721196251241313140005046939139886579969293127516471989289810953732488840258590495977097901633992916351218452523192815160200002858973934739883429901870277787883060390469557241117856893681789330655085091755693754152369488732178070689989655936659220855860955601669436931000187795760470004478691466395202279809575512943599384457078541935735528618644512251895856445968525724889933817873130753122286759792706121391288969689858623489047731361103032554160741154993642424770197887001169823354060658269601934964155130700315835915701397084602449137832307870948322648059613232889418163115073496036433189453773958187115094503282532174712025654427597873948999493731432782199409319382673975627439276954940642400649355714974718410405187131668839700919711415476590215927647844740069608301434561063162311536776466863573406542966725149802920281860802150368332568326018119887935846040650483835274004212331674971713169796241167640777841808174273373488528944368840780844497286369749206340583448915341356942073074896064083219128798992706549265754657387404877330309196784711645996998850086031156475283584556756053186901629547737060651340349956881472757065969495392564438396087361709686553688185823275207180263056332546237040608840765522463329485016277414546437785917775332596752958596468102158759639336019169336131187138253652125755933700485828405026944950663947954266988456076150221777740842823690368367807382091826712497756153550773515833287859789000487880140813003357975501362583752651961327452451946345132580764493313411262650438850263735333725094439635134601233075611671106489036689728737818784877303589457196286195354552822576002182594789879420934092830888590997230282419848076605148767948202100034140355384959038043996609091059284480264136145279052798977350634983725714213661584158573706680002765221763648005424073067081608841058371920550887564398123415254660403474267205650552583371755023366371550454212069497973260965449921625672111895888498363797844208057623190502608605585222294625083827971694862970105608589549557943773343509277354862983627657773527741915621427668129325675968668636051225205894770596900260947860569975033400439057928567674489365572218279494903574927855193788929943875995796863163079589022962830437024568172961754047284042144111866382102593326401175350874961991183825631647786265373786868412908568823055482089889858085312223888404589764185447401110724108359791569465349787216621715943277347742301184338229814660928324903428631328601680134609476484461219794878356286092274503521711597567224667600261934915142605143320205276123464265368188048599573103841748195308597391555136731184911277547006643468709984282611921788050894938825319370058519249800584902672978409531895597543662698048766724714412672483269955391437723429600046038334856697585582864349242631038619384627987478372857406247685003156053780587434490972267320216501696045136537172902934836393692391792752262070954750750276474561114713688779621640953264634859913626107469054123863320413546142318536266357429428018773970503503112002349027501971338694319014965264194587960790198831178106510772077880472538997105834286930442466556418304769774358950916491389356587085194517105819922074952989504498564462175488727708147119752642709551030350143959662994879403332872854254019272516239890479384590704235977976811672122011333869353741331411471432131853525941267558173064264934351730548033853348986643933240128021485453164928522565136542110089958797212414076269051505811266193034531393984101658251737452689636040466905551908734160657510057873153351995601699782324913328495380935107123142655522549323119136274189888360237808751026456947734618391113317199243294019748586988734225285956185055128780489748216074096975155444403823991590164818779535025548962376466660047803926472921585220160326202872701146583031183480252457853701328896980860625451117298311191927183506446646222779515600987291262713309277991424067274048084152743851148016601239379638708568674591606969430722584126794735598079552976130741787426281325234855197687878668234973239296810632367149961805270314119828067772626217791319589521103474432285003544865196417653415057159095600010340784008374572336882366583014171458436565895935621896473949812456804362504640956065370213028341398875499208181296353670519693996072459961941994843794453362797388352263960555894827430673016183890655337405984253137687146778469549083471592038893376835914790351399653681748540427301609368789353344312139994772538674937121821306732306829562844090246115520884244218156870955132041606430251840479912895711595976492234448779339229075405234947315104948359658867640888948997196967651481913915849350100629588128838133469090789848688834782120347246904837805998008477984969628392382491695295756367838931107139427777010755670136247080920393552523067478030546322135829924865523472877334044549911614777299161551316586029612877589680461905599613123190708772164338295925186325891992792097501457833966236113910469509872039017952996291549925254891307422872308854839863967151889831826562854900181164583912019415505820320621657593550970732339983851925988114137842539234521630557755043386668117780832956370728982321904883621778253841559960151320333575734170081389423689496358310032479842624135154575375481166355586583794247700968890319557942889816663754003187114033884381371579266899925685780229511070941746440541432738081606151343520865196415372247303475021025818912921705858899278516739126397324382802594835412930614326095390294023772741951178108757536277373494015834270630614446045855910376383782246152324295009055165621042885421753305179400366411540633385814060679136598777597728522120471504361263508154111198281011659581877211308414866732073173407746614140472645800050793567397024808003372112979732417136291622034109241697968011062804751023152628694266719205495498080368375453668255220371922388203137943343719876798716469279598842138853276823411120363226624483664461133476807764741106377779330431281229714665526971207298755808075840516214423718067622006939738566792385566400880915868820835171946023752034647362942362045388117931009475205473415423707820941837115594967802975870070183899843678218785648218040003385377243909163604700939575037953503951271806394560047294589178170928241596272836097064130198015886067978310382440851294458793862258305528468452961084845299953653318451526608473770994981630229554039035787445992066364216034901715168028222270284454115173954592123004979395774517574947379739310170690325589591179324120777521188779068699696532540957902249071621176748450457748254297966826234521122544140279834300864879349774724747793157477698527992545148966388414473336570870062284405563318143643671276723771841339259110067316393365734984362299862006760609481508892980772311434474219259620091916990621585507634752995904928640044379013716507499031580795858989874332253654902772592842655709744638902617948960268113544221846762523059073644390478985934697331991445280871039623316069276025523451642053792048924549292948139712084104753107545599305436438212058499933691877856229076144359743056620756238309959101037205932500093642140552709148141118468228910133212698986049344072980492635398880874096124317019142604433547899175911209503733023177137142182929189712493939770506045164035287544170473422966380685629583413721202374826319520931841817014590969883842494651215199580409344072762684625252713042567011389184687537096986169487364261290132269083410924066885468418752579130853356448343038972148661899947835879949743256655075691736837459803779149489324651629940249504158121018947544325600202186841644659944453833894192731020489286495729069706609728761074132448965038026834122768422347261176428730441611640605007732227693460559518254402603028701449849765410795065196262858547090733437009293794797492078678485027295011482474361811978514298656046855594020966263538517104250332714226115672964375957005817701754708607810122436061835349460576391199889172891561306916884507772660109150981671625168830146574629143273944360337182696455301960885206134670221286025228362879255789806245290493341473317600233056284154181511351599455557913717119087385558955048070551804107689507922863372874517633322485585854079762814593031813328398632503530004203503661757888068836251618283604304311790110309583768587713399099057445794309751916827925538929562714081813619104547298742405275533779815738767743793283787160050936771967471359311006085248642258553038331200900653220819491225643138421404365517463622380281618978004413188382851990623251631380568636480494795528270671501523878307274406523334376994116997600000348941914258691678380816093198020780065091273596377856689220685035320519912943142760710599158813133024289067787299692348347953337496024265031123485704404737081061668068099432520458831845692088767845263867712867119035006806848772479056593707654600234561150609584936387367933755814197294106555852001300788741665454925430642615672864099826673335939772542275240900961466006955389006345413945268454699807330382114323986982733996746906265974623800852337702623119933055625030902083176939135544083802510953051489563742918521926309305500756166226782648900842633007438178084449437736862634281910386799661241446298482068136057048804696620400680717173145323737604410131630105696618507283040849117353533300729872019811526025926788903406638259783562174597072032021313460440963637418543289620985641832257403324979319031086013627985901568390682522774344578910241774780245674932262337686211671815529936606589847382575983142207354607842132318464327810311145236328085774697105163046427425929574347155080544503229674849900314603547034125024746984634161318690260306452363840837965649399961396843526789579431976318056942644648131748506074215805500539376100626581714852393958405680139926752504465309291358535806572214850888658822613298969328604093636387003279211910892799490123284425171364403916473493801313732979643565858511540296483944848519182355314383246216808283148034741679161641901902990300640230105376108217015006165353711650883815070482616881455346909312945167831166008364348562691958088942985560564463631443032076945681093099737885197723270061612283399109534278102946290491053057197610715158474328980781502498714991130306814641106763705918491152406416925677676407296121296567057620112186812040776978307498488861540735183527686619928190139838552852889834326739466480683158813443737040328048468668214170682522161382310906321988304200829697679291582611127824075670453115182250212849821728538332579944919109771881299081738341600241793669695999519791806739226277867756324817789783333239936929052647662566957922129988246404563718978235644178000147117366812017490838947445622292981128364306872011118058785471402749149113823106814401706116579258494277637806898110713895769705810718699547217761303113853937115833184592024760020130548527604158059529368631775907622906092891483397626408512672015457705746014364943925226386872951509837405339904407077197584400127087551384945427722339037414550964853270498048489373945193753733165918023984638172745591269355219611836016699187283124195488388437143197733125896139996717439123612097163099700495595133911456887270471630576312534772920675641957469977564199383790549293442417077064587356987851511012525075950802292363553835270094390165379403775650773665939390026770449838415760502518553825603706434695427012553672429375935304884447183596613312177767050788349972945626781566065632230775598741743988445540104475670914247094455458851304205368089341825468507877340581225098285728182695495888240774643011496452144642569151861583388473632086872985062919443634086609896047805513908459070519032883061141982259938615345626704322637497874925644665713369267990136772436402106419577388498485534806086449466605979623878786046282728724484697859140851505478232824887006257538742271751755656282987600593607580152995723896563618153899928706618640376786053437636068352679782545021156185435756614061080539232186997264839356536877355483453504291416258823045003332070821345298314372336179918122947716249577841235882270214453381046563672768634083582508081069515486430394289345261545982002926018414999549945211568043491088210139999688679112955989434602289351166016394165959604289542464048632568701167752931714493087027532175794308344268317292621107508057029117572522033905820976740765779054328776504974600229516332746521853581821678898953946134913031675680262757034601024476507002183718989505529448831544927684670145905585050382162774459467690291443193125266059011514843289594177505811969835642133182370742445525988670205448193815324200502567607642726051225362146787645268876524231720747922979544480656762635890580265655891301250629154235073703842376109649366220205975227857048038981073841019348497647095850361110637186340425420276901332512577537097559934055008391335953005054176875551148241537605059444336661605866219588997581798413797066074523994023782011842720008686542764001191864160666272665910052847356902751547993670400735522955369717136964736000107870196749885826292548824248264795286896006328485903532890404527625530601163071319613345839633252641315387546278235458270039755279437595872664070790644000663283506946041421071510604808255139224669123651108910004833498746517775471114326756880815188999238513538687015070312008721148601449958101082667215922451529435572248555899884635568068220702425848484401397074938178923547819655729988971208302783444827846546825949535567077316965007874746799551795102074279000084255556832880259714571177142332226479631255511390064398768031055733987272976245522133039778599349238754401464861850757225840760658751839451849425910780040704535647444140352361174311826764813401686965661746001596466160767896758786580105835296114234153106864757783342018974040599450540983078674796578798757941414331224318737921835099526986810848170559465748899185189820031729731658865524048066729744349063931011405260899187181140849930661289778077490146133785597025716125876480149874440574248531047975440015861149373217874976253863877025863787887075001857000725054795263731755085325084530793014042016846277268158565011661243278504925784337500058409928284414937262940245017125603158922390827673112334506647058810421945755138601320745368433818491674423710016521879094737325695590079698983479911322861959550315130235642200052852666161659803622549809202909154004436484633990949487949268530926442775093147111253996552606079217814389763191760466052678615610291657552022496898328777350362012167211069456648142373518007165376032813100149288576194922826834571847499947462006767447828704857486251990585859732755717510761032032260293441396421704658711925434270285974421317673333870760312620780559243176415533092747068272827999921313660851273891555245376297403522601327208776128971047620423709763966168238347260096228641217311181433596256062442260784322353193375260970110701870750886679439547953865940499440595782012763683769209052419899476019997459695321278554021412630495626368593834853414298485142936638034097138541759354429290572376734785920198921618906108762673463364562834020062107733651796466078503066328560027865718132624435811280860907256143691579505657658650891829128643179162431268828529797022116569778470233385598119598284111390238118885563599307556199381210230380544685729997532169093287378382849160218451764956285557650586431129712439777617815295613311754773439759663561752988610701732297226951244455600021946958511368213752021029005558586221246185253499590049479977266167712125520363050715281301879761920054500443105233886541275316630941242078224485739057374137767841578762164473995529163246085848827223461798433759250067284342523478145420493531553518387353454544844714436850187943324081941192399800788466730380251226892763350019856419709513716372247502420807009319494322959975220735132718756652131668529028471178260808256686840476261233200261884919181128430753674640584159234005292141574192605060785924132402959288557218495817406341555643585556193744579387870181785626225766272033320143932549196815543200903445541104284357170721651155768465018690904201357150010242632813797080912628495786088238582398242041613606359112523406369700549017413206694885739919577716000503196637908992192161801939346340344944404551161308880514620088977268641496113883103151721515376166090673220629223710999732627633708151897062280181583433616598834621045307709637538071596056005513314286222416889658409367290730854393650567846179925978947694011686022561588342770945735669070828773097249035994677632326595353445052025896028717886721785774442399015132711966953087688641084212966231276042150925557691003877153612870637777909895881252487417837745843035081739137023356698575739530677576139437414746734199690701061469974573241351945004046547271668660058389966016259368357137425972655149288081068179468560175605527302830969492450936878634623633414745132281435073425423352981885168673912683470002087724250587367940389548446946940528412389923018192118780933376846669109856393659562443251431253382356543185927270323268966224040657975298498957854164871413904737600597784272142916512720854317055713967047888961226428714825687886717438468466789012271819656155426063939117669269223211893693315168934248111887233309572068494514589533735414825506155017995115237330133635502553089779999590137336934746352595856875728999986396097069037629348629282100549952616560029753928992455840188673352800116575673808755035690798492645440931234417317616754490485440492556708845946385805707283762874520560018094054620976997924500518879096406519669177202475333507521552660398347270940637754649077532734264883198816653404260513919784781265743161594735444248156765219498558486555898629620914863832916426786651292056814948897317270376379867157312185980570020673500476951879876012448375145185334225413053716664477120588394642270079223380149655559559054812369319373822632298349643790415422412339514507191246306493138809108292695306623567212083834136944696758156214250136789831315437444010954646460515231678907016995242186830094789895495705475855529282902395847775873168335174110729044577511742425773994707644369072434251099789128975785537964654474596665425735261879301618071710718582928897608486464068071658132941891808771169252025440377735971629414340285624918773688556126123664158696907159455722599246238957847965210959864283904849423226450984803469094352213701651272555889177917556863034274547374306399628351667358364229647259638624763117894882293048680734059117968677850250362428668280093820058824861719603518240869704630996676781376995026891483561437750697826805541571630878548223210985969741568516277567114916207694863714774738653578271169197492930748071100264088379224391166855693137194552590604139963447596418398922691130459249409027941732393226608243299853991301179722794129774200500491861888631945255721862435344708346325514075525797741075791790115557698126528490060686665942438179600733026680189494326691929904836611115093432326304452005700351089906090820112216001304809362645764369152500210159882732959507162132452572708538699959701219643294014186059403436222972600942254379010526916759909330507769642830636924550257637957283859490776501533646269854547910949182186347254790119183844412402122788143654154266494010098951757182824249909068124544836734721044366839768695590861495060876503212360984914998892392546241879960525407308459832918779627673921456736579404187999497771000286740941629617054320023288745570242076955634591378044237212478417685324118782832520001141101160617461713280897917059501638795757274308604849940150620514378043646284081660679603821883354703868323640574510952295790502041622028843946622231040155114333595864277710381229732655678136208861328502636097151304710290300323715076790659648510826063752981182451055526436944077632641402334009443998138330635413279103758984504589653536350350675589244782358688404779820774015456849535191120885647008162416732805010438040097279119233972668932474384894946646710978697185329720518954102103699290792161907823109683845145401291515395676175541533201095213953954920647368190178203639059358111531365373058343965145906399126904331166887435505356550251052251829795438657290772114680779756096625073516975103699328209455285948876778035509933338676580891564229592181367037337569034008201953228938866086120570279671375571099751044463178593199428175438477425215002978977108968724635194564452102651441859932303399805322374304136629854667294758846441878183520259024763055937571454517826945744504216604249072607801475785500819556881884740876097435230921462987037577082307870002183547140925411689375283721954209871227238571132900529823030357298657223240212760893311017212553407241066411724167766087737294933144068930387581788886424592089646816525403449288223000248901714071640725921806797242539553449594854059030817315610910719964017378999564051609285103190048582451003550164123526974845210366538203635264985699162513746162320837844762359169727332109910038052251847009757739447214494352140473109548725785553399174266667268380871946296406448175227057488787180891729182350130277262843044929440266242832751554541769691005556654693040158948635808323361583908691242723730452750289578459275880080819853618447219218864821823092200928106122863082998206573369311999968927702383203525716792709789779401602433566893764032844331594651839104905093461271822228032885927071371118234870400436579944072785114491417850725823069339021779061927067397931995455667805394734789412270888569376470758022720327545654699121490368170220991894431457053260125728906742471843220030640536989788513160202470360636552907589286207111451736295658081338330095890009266545621020243365858332208394759999813818551931949572230124234154706142510873466158417020783530868342508342111250360466600619960658559132011556107375079603438511922249096414578656686594763471840124912771787968075284350081363099775577742085669323702524590494343770216611972117250269344868585081123776733106307150786435097109977165218864973504179137018645148281187011661267454099490440878764638187880427210653559220720417464810906981678474403568863014553077335796377567564610589819139873336468037259187861680149859314935700378552124703001809030633029229342151070252916201916458814588099097434297867278701389031283087863185401434997870353448612345177740243851146720379821960476554263223397949468613134751215385674047803677511293442988928216538295173982696108496387847258794224678279927769766572481641135593428959758212750983060268426952394722797681412053614641807080690147816727950618696535371356685205304136597442162856666978384370993226211788965319558459036436239865737727951043446907198458110440855215225719994523909983236880518441419928904753007479420098563817986578800174621089999372811298993170950922968082145247770494292889771842676307295159795982434934352269769461434820654606062824719614938655603464951487323608504981105465861168244872277640962955112024273409796675758677431242605655367607065484967232096188987519597522833585615368885448979647326961706684363772882331811580584188778425845354561621546672935000571366558174659077265699476193969398999258451424338095798345379804574527979553196353517108914513638341313772427286735029085282490529829721473626296538538636114437431566751847138862731531874897080099100338251527063587301036110119744617240744518532243903274558791095324305495177308465167684791895121534795130073688098497562776730307361863390582863244139544584405528459174044110975412579557465290910039639567149557146007244689128397168744797819657320123135431475073001399797819624028712748205291959505616022911926490639688355949781400511024312141338226129169886477135280108220087283562100979673232546893710408498437758609484765074509311410707516542055061126424935732728854379396648730963217651311025365139562991465612953841376445198505135457829086999320608304979507671557357489421554808365779896784757577894521267281373450812870315933762127096537942792890444521587285709126474883582764580412598323897570707597825057567361950666169963102486560684605819103213527017620971450841133892904321813650997823860922476485070935469570494543704961717533060955201759969784137950329746718082730501077054557239233116878006415208600930374631003093957805861996447465037577531416447302465395430622239948543936905135011347454498869425060642345490680234319974202621064945247047523411031277220689978274190244790963497095002834176955871830929082180695044355608250802711991275936994447543894683017615090130534995519874633796946679094877704447445192391301664180864679321895208017529512443658456096924913562150262983663284729878780317969573552011941199805980968612051116595760806068469361742584725666605439679134156593524013521644373991250782043265926174910480163257014901125410199115085930218922509832940369355648149013450572606623734461474383803697447300880078602249849950909207997205497176814139678461149174430036067010226128050689444220424410922336182542591020045523782434161867448302783947276312722060647194405374165487591900242632176375694735250418044866027232149542522591829576251048170391851756840757189635772193209475632155382438789464825297308042243542021749427378729841385494361552613785992388355861772366998112932528848704810873417878842264034961286430320617022059412097177384281983656688552223643592155865827106365364291718360503445653272002181965217529099005626419206813919057621290894966088652604240558990358995959196968526084186326619008033614464685275086337872086205805158112319994629082535973279811097924245678213153458035037691916604163969464979457156615167207782179960192315810832289243375747473805258706994266594976664098500283448651373841274568070380968938549811472626453905546324403313313374970458578098724762664512484644527777193443865657617820031074103179648778778475657913864113822711015486007336333028746703096996184337239817551199218533642074131651744205629580580522893878285268843200191318654229807358154622733813814417927614934577351964435367427376859100668937261165256945781723630320425692461108451706840112288506390795886354430360958011929330826987283026977132921653937067393590381315648352478113709245700366368662573593231037305313030459687853872215633914079368238808953873069319220299159785143181193670114051367688205409754391691441107665914980164350891612253226186557375390461838423235361700410381270213350173377447353604596559802694135619878723486868112919792067576931129892337469135863718684646169520810728682258234042215801296392098756750939298766330880647181147953647935074308235971439730969923355835928736239919178310482490320682727803181072830006983482134032594814012961929371152402770859760286794635083516260759508629751577595217823308142509123565874485299818373041808438416984195524357965445254453721625637831520283618737743488601115124765264676066189902048735342689810089132590465860105185309871250192739840569003329348273979794415814434156465491852838622106929211032503508653414771365985992493844314635054172339616138930979620723408929308847977436391370860784219544274050156379935609077014239519729459939814375391875700105705702404190196020887766079575231244121270716812295178822701748870064105896054080453213715836033038793551951032286694722750439801393417091292159081704433387937039976110245144992065342714820982819747163452904576769770258069558833044645968351643508519306517425045555653487252603329426635081459460224811617871624544421522214923706868928866646184195728336233797962875366255791776087128205457696882864173163211188967823887424163032193137170052993818538993269026404693380962533611409950512511510916035908987035189049374691986427345256422928968254595358266491850079162102306621291307644805502424345605778440159575890061037656605715486807750659905085732014398169329825154133318659958691144600853817259086018552240207976831757648165145110756465112257551093706155173550562108117041915530093086647079035181021563582104879051951812582471394985751853111271007506859053267142066690272835846703297999395965660831028912811711598649524339968433820552895511021930524346979173688797569888737045529014622645843805518188819752998399291719081150902032330707707150534399992766103144793019780515056165309258901666602195413179491770598029765335826006854271431364135733493212528059553172031523013903272313147699271478219480455355751586641978389582240563252977921593628831370057859666801157835118375971612446737771277144899473483567635582716400107464001241494284519216690629646100339912811161965082071763814787881499590588680491194657514760326892318585767475518349286519342448973145678231329319964392316147359971608197427209589968297511257839134861428940011068790430039901990964554900502305270855707708203583478447907364859426451425449886112766125354096093925989350969638910633558885136937901895671124770971701487180683100525233310352513785077515400283133010989722763970093990699538056897079445790840796597083961779701955077468532060480912856332856451653634125469387592812703144240169908481743672268863369496934572936860457224730641582693685253168869879941049221513649413453939438278858445843496915194576492534918388987361651774163212683573366654745101126560050583661295899473682396977937816830282392492911710349039217116999444486663419683949651711784304057350710006722977459125922348070204577728233614704812287730100129277219512230309627434614095662483144616695865199053306903274640953489450075209058260363821050821359333246144881591593370720358715270023694907952288167339667751715223528335617475131781788106850366075944903167477441744303131658653824909038051690511925123601356186003584184803431296886601331712220065017560983301369241307364632468220792245870518303670168631124443496599210505365781881724249372082853372787165339884951913928429988102647235864105601766154559775359140108262603046822191514522868616650651480147585486161079775921920240726161479704518743751348098626012588008148409994567803854116958714704622789023732826135620839380309718452199652706611862191623233542938776169513143982224933794929583237305477910238711308786470992627523504783288931410039275718682481873632575114466498683605433110305550611328514532143253083991727014627966946192576507534727039177487803031418434169002565020759420616238259361928339182065898955196429636267718968328622126983886759763932738789040165024688218652181808970620228712118412555017877206731500957040170711635270305387694518249795425509123014064917422014613401830124293411793670286969112679162735109167647847578261491165782575688774088215601163449654129729669737938765806109082103858880616252617039153771138066353049085144414420816895971181611009360553048079843479450735620946714712300173133676350626466863664675646094888280245137168461025948469077353605762777773808386817733508621867350840447699016473840519366000767481706348873547579037612282981667085263404628147501047616634823829721138940410210836348434734228683766055534383522026531627507855259930460265645215643644355475881675972071459349216445484369649926095188463260212968536411416914424030719385366214911773102035591414734933243281444326664590666161419773965886785149065219664429782112206741164573429866074571944660422945713074047396198910048712763750112290119411588886773804425169339292599607400535111638392637013523641715680244844637960980622607882573172359296549094423631208761444791904790788350603974841984452370363177266360162734964080378122780533154678449577106151196753660747689228969434128664964205644468789432567087511899094131229457222593372534543728107523330945511083639511478032750738531172035886559708175831248584260680113762437806637845593004817057901223405988752847969579056024243071017776866193822591450653457183147753674301211692505449070614562484127242900792055404803779280289578040651122681511502138353494203351166592558387732515027721384923365152645082788861741500255103081058973330768973715282170932624042563608426298311978255517323742344834588150705170215944570561735253342556591667655644747298365265923601933081801203655548794185722973794618873420353949577338318087871034198814215933097629132487712218178149561227968027001758591580081972609265247451084510769649934102006252839934771749623619611208048817815276746452464431963893665773562777322233230088093299223371056748756507743740908275509340326629743182380924240904664105517688162857096626638559486850425834049485007627505714960709930179739185933947201404225153277619713865693547485495351031586600765962756836382923169151383821745039696254209062352532173726909950646829462318078209999477614819174631663783133497532754737726704865228665547993723780675771595359612317646362584191230167835556576945084466580991628223058413306306821331396206274993812364572195232900972048611260709829316034488498144549599572328196898467780159366222588759313307063989120310401965006301709298463930824272294240340455655197678322473579170559139810280336549721946550049095289400328027010143860579081993902939974341563046471565772907114748118376982576943968919030933105074841737197681002723571699226606340540362928669868951357980266200742164877046806428665809653478278671741673625437549398095116772123071605404011573094563516794393812414346056554351594082824689159899648610307786427450330941701865252762106196236438497760726135749183705141257145582885330800241975472694464367882803991151804182100576708887068302821586380598041903378612041020145317398960166268156535697747767376637666669436000381224509099747952148304330708331628040941769396042751120821608333469750419756631364120355633904130722880862614323630854849620841772814457659258434594511655074088597497294411861930516592264514381582875324468582568276678105431876833941767622472188741583781480089910715885055237423391517692665116173846707637624922491202405116768443717240813589275444923476563586942837138323851633962077151119132263300341179537045352616201118737643904708550526405812704988413906067204626009376121924915544527539574452339021303471468185013976709287351584518827085154866221897345182925323407031484737856531136544322812821544400937731355041727796910982678021205650237630363183843844985483894712447063567759701102419153214100208579217427066864350538470300913400290531568901999065501312514210547518191058981549072080144147398830875549573729812601225703947747220621021388990887257948491180894049153846624932105865996116654361867224618458261401351572539917442905190790071599849241240839957801846715348684709818010911057300064977024255819613835300883374712383260925237150382705967231730278078317970909352323942233443124993990551034892503688062041958613428213499779536254833391816302559602279516264437932264963177047759872382567289610838082988281969102930328581960993132347945012298219123994033435457938762055320305142280376187001992479481031192472240071138600855508456670550700340033916771574396423181748126759261601784342849721996370035085275811194367077681810840749039214545917663058272252494361270206855051053190297793160467307318790673251303450470324910743461792520839843245509913027949792083264520793482052445574669301401027163160114756045981494371196218751307185188819008988034155237943481272063171904090673378022154694683270261871653882219520317703830969531123315051250715635649572942247378402538249434461637428964351461738462985184694102493953458467110774345624277153277465159040671101160762500472068137343829727309158996387275283347975179920932544039078806620261905573197852988245198591344138961720936482345118004204313870501393758326803886749705387348249023681953570705275741949906739459614817160774702158408454579496507888288866240209308654979336970047409836838310006826389437516880921140515765522025428237952663113467201130403252367345543818870226654895317876308297220701197055410864049828391450644224787444133904764580632494851737500151419901020770499140406453515180890262766692427562656814737737017666312317413499631484939764644841494110853527074459000861173780999596246744664715248674427460456001875833727371450012943562245803820627131676236802254627228488561828857554660416449433913301651201919658241175642423810055591023303229505050716777364649338085652728312911254409015407144000065721233596163080306404456453117332030140115072413147945690447563698791163148020521861397214051875149541321461635683741301009307161080940024407560164625455364339471962394456193597699947020329909148231284686802000565479916231831550351871111219616639091187307100280031225715400956943964651877860111544306280625502090854961344394495428683279965874793340163108801652430670513767422762507470531159636425293032859238677012216225588927796786670265571740437907225535423957570445355024323437828189833013108727207390285032381172803400566590800567076603662023380684342646037016686084574292452425172700679623031756034805096474956797024803395526375190508576329942903593785689989659418657167974016314261931386521974510514861529514447573971636018758902876510648897630035377148790258940477200312729932721331541068129825127465020827202949008846989710708397779983091618698430319383266764254166457902926805027706348158983751444450039252419518815817099529387347055125699460349321639045464676069264385702739868428394506015257723090533678590439027678905707915726828741855726680473403148369900292135522670484769480022918546044916925723573924421348945899712026816898788916442273043047935041309386915398321085952772224964082544143908592616675117632414084845656869212032067606859620849116794700611718262993662281847655947928894004371305688370043815671676230303593802317792230126820421056580684894022276625726334137971585452949749524171799881779521393670134377337922642698749806609810659696163131417462544746425883251669055190961741591930405114074423993269996174669631377782406107230254710873595443103936787752499661999806329684504148507721903759036151207974371846331541841612481084334627049298972120446993832016889736296519419493970450009929777864247814348343843513317785655442484563953216554841838646845861313747505288208058768139853600443620411061832543781069184507638431144699649906634270122142566495983554902641297026073035425895200636736373279732721002427322590619171583614208154787912796444588967833289205813826864719932200973239029869274168424174462486822918069109769135799837477184349120015969977975295265855134552531736762825521062383206543666589023197188654918647016117931717081276913500609161945351396392930145821769926019981873791796226829724250983867578642875933804443200429785650997686113348815180271381023120383624194373016743996784091570938845450806364242688470316291453191192316883931022474044432829724385889117305770554094047384052641290641845855481987638943968789153502981237264338977759496100804938148500299943024137949872279067179559343761271939261125854015599417359103138828504721323217674771109328860465095874066440712084432648198627290460660058810418049948855379832729021702578436134995513718547937348592309777750955119927396755524270973471728473362413160133976973492433936086897691279165557648129770069617749777581192267962641377713990325060651227147661663846616719852186261896348920333503727028464508206373755183283009684315308288368838938643960842428283458672122218381406576803191886898625197511056931431145364908522895850960241280514446635856060614744523624570684862414005386180418023375256599405121219448219426609719666299549920981378278896092137366377123536672717933066077459515141297750918947101974245052166122422603452508532360924636181020446093653446577709146929806486141876405309859383331723532268944431245983374121971354891589763402887331977428888571171536781609807488216541570331897661211034496270805124593620119588071849769268316836534340239994990456578719082559640692942259149915801251535319440311214554023125953459306669301249161684018606147962842624004288742185629966301659806033715208020139029339288239146168382365680157709250698512746638239179665662272835948864809330549717007965262784789568171638369836592042644044126330892911780263273025535879042939063670762209861549181282368778067980595202052817458368319103694154247701118391188968525947677035193356274336213967210485630356286797720854609047598384929828958596016475634650287455017677658967672662258777667444951742141444653579510704194393964885325625542394520581661227924177659935380007008039880861204582052798204808829351190403933780461538323190362578173840637328238048387189675828012698755343061865205646641743962912239398475754981376924413119741485994327698905716614452500312973902461260453467465141246601212087258648684595193784632857905044810584030379152628354072297159745585890367162699927005874961535340996655456371225327099506939160031203123202112406170069777321986633621029023633239136451485128435205767468638180009033684620765406193310927538530636652521605603149515384855726460521867578642937617087987372517021664852710673389866862870099755037561759314913057932552263264410149389811094553541616798411239477216271173832439736797222976062291492174803097740068209865169537696566658380422720515716058674510655722590820528149612381199869697631795220131246503583543647247745623961280612404194124440762116855186710595487997530998461469668789468005134001254067702546010946287495552532773562621740845515979189901532604497976191193100706363702937417149786357600780971806086988188060730033472654374462061746537249605676716279692693386050652578668397019698221149482720343552433799514599866645350926883174367690903396703712816589475511463148569871981286424924532045444667127159496941629887736879232365250843426659179835734855507915668217342944910254830287962946388051686722568267185944681555948368328205431860008293700755154274121597003655233982638654865721663246619583981784186497336339420504972149445250852584100828443507269151176283689908629233537473777425532677200754559032626578721659477354107438465691835338379623499894492408496804879232914762888438283000687279108579942747481332590814197138135784415133609674533196815703806244263812848203419533559887487996851560798606342736187591732359775028693836242313037684692568897149632327167295412924236510759245681011271370137299987921957377520540746300900854288697929757885897170194045772698396478253884469489670379313440352193594308228246741067709121830138276429814772665447799439604233649679225214740627951818903090873049853709397552522467022065252674537431700020275867458417041125021179012658803549204433604092581920376164800178791703960364961992695281057452805734116711196836453333650294325550749243164399687160626763875967129351969229436340893834641962890032465771285443315814478289399826116269538699852668749079413788557306772038959657839218851008386447119797144721162423224702659754954295680613476252856854720109962175401706759808581437159342634929018927478040656638701521556916750128122839693973690807444795991013984987230533121083147713459331782950863774098810731116279905614860722296520079643789327115214201894019183567466024873367808267009413668282040287522534365551420251811543215226132636572139780031519310613356204519629721098588284348976180121335031607099579650713542050030021444904972992617406387269894351669496294799907572793656803904467897387447145939184130116986577364551535519183283168200998455961095123732529077551181698318824170569358710492468617124666347404825725976283470292751239954448830958066399338920278348180624612354008532147999657890054176918403519243540173357101208837213749264365694823271270673255607018215973423012759856007320280054597871751727590981190003941771889820442400688252416435663215680063006867994915635216869138017946447560059082855000053303972844703640008069180212898979906658749266169525148897830684313019915404246457813298360783737339776884772526810012633876565183310467266658039601070199517786426063776999401775293100026133237242213936644375663497280616863295504046273489546293773224717921468854257709670533556489127734063979634316210172222398308083268937108432954920792160092599290642073893877549713405218464884740422743537841479971512282453151785520483148737001841008262885214801948720175910719273802397865414560330905110851418456896594819039992152999349928969482914361224885488100421894951533509008189374785953945731680368342436813837409279966621580210722888734285546488764301062017433735484497751475284899095888874715654208409641767185756323313998463633347416288267846849118239486830698659317786182101861364880911887083125553729744311594670202757664849163705774512099875036461789639229268844381646807027481810577366919909526901461122135233668508676634382415694690716724468535061682707719999376562083383817689318026244766203213568669924413586672123953658581544864922660838179557764710359517660641233621245094053460217983147671034721056037073228054545712626584773445343476679298564151218581768370302594432805582711772591225502799654957110451715525330889812450542048184208246814668546616114172496707664106942673926132638411240431163121053574474553591793415554192567546528829480326187665863955664359014593151468339901540028581001281459448881860694880894467496515794374643326738682297771567631961144873264075693131139730230324864849599493837344431254656908479236886361617953955179896679686037087470860263941445602494194195811288944677306572237739070559951724945046009872143316314153037501041013982669079471540097256733584661120131445279774214141490620269718023185128867447301693168565138036327072540898816090816765940166797272913517089902970645727193453207269384503828145568333545318496017041484857176388952202551625203854459339338993344757500076199094116281218854107442382165570962086277913946777692740669813446264244597805463903509071279433573445100930636627450455359273038213535919471825315835447333176097042359743957065203917196283910014463558243021678297545282241147222930302153945931241501066206429726206743766187944074066733179625353484217996244321649926950129944600032992713127573811873017521128908992302596313585823042794679563039440496507971607770508231654291504564847452473312962035341995625261967131352700589014351564502334127820074663913580390431985417395581616312118533375797144772799862572874481307845610936898348310601699598369178715075912803984995014489514409615923929171023330513383101498497372124861982362304678457751176969412247323318891459525900379151851422803165034871968721246254405779127799254570435512084184056267064590074756048898354620394127285352121646444118759476720258147276676129339190206235947992364232127760113895702893295105308150388678787104966602423248543224083019310294290849870075957625687432635740974427647133727543269597864349274905710908228450401541174762148415837003100614261598093042143161103567382923860814910391443086822244835144818896395420272917701196560369732396674303569113404172970976109568583647537616100214882432487722046750013732187511503358764427831696273702614857518348462713829048929124230924269764798097771482674103899755913683232780451050494784191706305585862865709076887686426140179721832458650248780986461043888960912039070425286491450591450062720163422109441162241546493267448326079264981178250857299852197714248676117037328783028752082827097313532483691391277489456242177020975923462241322547351928733072397326207573551633487501194966901194793751127237849410001258329596156516903610867457584045220438372483319133126259656772146354926192256966623825077478343818119391177011694952440051728700293472261965249338133804282984747572404536656629105698394980640220760932510394930236945819405581614526478231557805718338226422235682797326963159759049735496283953253174732095489550745723821364895410594763247584817829426386274728022469761247926950422628241629726192009910817694058998102856330272925510986363760486493194235881430156016710046225318697030373108315889566705881183875397998493469837744820601259708569238005971442608976248428097974995531080822406653480151016787584239229790121690569756589405993997103377328901898288365451496907553624436732696821819126098142995162127644137580187856809991916730637464689170795773444479179580772236852428254004105943259506217907126540532217953939544691890004681312442437625690735374018915615433084244720349741902268712509040965907113291120727050374976690796726677607280589541331973592067204096903518541039161863689886664413524502580396889902527766110361841797252493782281369754284991910339649868907948895284221820062937155747100902720150753653123386751927065488069049141624581114706077045911881197565365631563240748068725657042680178451456464341027654469586846003938064632314017728439519679614153863970885241437694104252500408681412375007868918555595573913431532923919415796606936070978345029975722727203528589827496465091106649724344999623851990519762521477452530361623337144106771549839999342778922576088513741798881096542381339515283494564074674167383317879128025418069727903995040265487211219045881889497932210258117675831438559711261451105029926737705836954626157606155115110599054399619775884608556308543416045347282754074695404955857652184768626615082111470810357295787224409762137699644256375444926244013577605849821393597776608571458104999605093701677214258517877866242717613057506571390993882599701963301583708354401930101469320267846044773913094309725504882995980504420320909574959013344595744653120763035064755646877561665890238566557921711095676680271006886066058834806280330985430143588206823176490234643065360392094940526678640553744746080272368336564207805967959029256956200354955956731488511000533687493555640060664628716421489996161798429122843622314790697852203023896066352109340497671411884708543837277792432739457170422380611919449474576693781246289675467133017993366512456457645815571462233022684768852770863091331431286480785207214257950157181754824975993129570606452009958156301860609435527603220355278884678525296038183332643974069406075848184530641260028806739277956174974254031874803884483773589136186091109400399814672052648378655275789744224672360214802875016944252465588520171013067712940442511822998787771781388653881132738243413781174925796808561068711111441947181391003269112648406182753231497592028350362303102374781622944212619837705682901031181518506259445276883715423165054795377285990078967662233946284145175183878099506998756671834790799794765516524863298446896889394690779053961532435514198820366757269654769157301652306607035413305655265405803355603768153682736251169780442209982637940554916640979656095986249772987547615664656994210027572711811350656450920149662105193493477215688169089538459999640871045239668109889500174244857924719773678760963895193683223795427854458920228801962029313041776064480728266856707383126086195999857321398597481427007034273402508668810860234639200759686714553821961336630508132266344323928542316040164187999670278097040275930964287075004679137478228483955946407095692170452969910734551426258542537737079616981265767268780542812297684288194799838035280144221725066695048001949537362821557638084710520035563334323597800180380835615968218015047540633034335082521000948880571791662757409515102670131243727295998860389787120494957064068043985816561781623741821996052567746999232991129108463907229445740698288174783418144559365744902958526414600950255926980615637387566095850615679871190252713607933592352089935073256790033533181146912526238132205637243103948858554646074578377403823076405536128109558359229175332530171942556529747126414702635936455120581350378429436068328618971238876614299810725042853456536419012801966804100380749581382526725608651499589276282275789701044737409104733594797848428123247709380821426556685859407906035063774398688905534833923801871058282807485818372894998649454403643970562682863317597744587208231514151100052874529406788672542204709623708695546211703863280379217140688086753397202968165977010194335640502694484439652968700576590326201518732491616430293892895568598721359012277595469488970741952051096419409921836852108568523593522673066886511152120102269874873727712908269810844660205306894099363080850527610336223876321652014544048880435336817576211968866286415246332067229901038352448474701135000869037064305977539506214402120112123029233377655192700463971924353259956531035891298353419134646206704283379963470084856020282493718525075636036577015196414842877082755851525638462015862530535366794186345249238690213958814026849182927592336022061105853802974290108837625578575672619018863106068564139346905047449061894298922542794545583944202439769062268050874419045396228431460992772148043834278733633745492617671943490648705014000649006786664254863407143898279259101577296795791108050821862586881358354278216830779584898445903755210846262817616253934754236281018300052116494042289228767859062528316902179877985461416854854329695098633929315091539518368242918521238462036418027336541553691135232373213733854575552960805141894123971971607066911136710087428560652264269332344886536006875676432269042812283796767999487659398066027393233420744785422252850494540146465030693592622152024844564590747955396137610072106257722886388770737033836906765460655459571111524220506836011593530531340733367446759705714010044183042193923649195822886058811669877749704744055934399992479839830895139946336454304064437420926916883232680305032366466041447207671663534919602184499288116965035058322240314627918200921626611069105631895241820319925291111591126409047786882988496601836558878275368063949598719130462246791859062936446391701335364384963990550365081151631804475409618955156200591970468129384483729234504080090077284600937660553365024225243132190333642828634917115183264592249409349141784939126828443122659740891597321006502145952403588228595498432744399510525868162221465557193590912682717666365729724685464273418441000124233544847710964173168826731859039779915320508887172531312213176426722773697999991846455578311722653173532856941734859432416764772556825671184707648824874755642729097432985547224138732939243209671757236006717568725480088587782073899058931303332293426656663546496397913066195988822440274807477000571200677783023254870580469814949277038051552778501196694068045262668376156760264813367550670588209648309464417656157078761429423990421129455061767859638575139371284681126136195022319019288297799764614957125353352772085288694651263553754216856024216254085047881632941177493027001944227909674465781516131149689780973550126629414793557263468072187548952464278916489896127239624601940980096788081387377543488899313260905160452798456324617080183741119548678602392245683286348140903705110595362146236384390431989861808551060589523273028935019289904095631486452832028440447028438356847760369320436988015582232626155837542123193112782431932284513865574230658088506032252069944835261823905861315974530591174763829926116815076217526609891398049770719523223069235023340740055294721965521419127664066227606785407894622600098741758177306230126123695679196508181185099570635018898223337665088666159612348083923378468460108150722848813881475298661311012459578135780799205857849422408112288798582425929256971790622779132710793006743365432999034622664424586568124721935352426458785784988660540176908988804260320253729351339389002016075532907189944312918632874900390318197994081705978437573933898902450754717550061258562432783540177734938526437692333776357021888035605317899510077477842852271667861875926356507594886265613175387990773879453881830402012383325007282984714028266080403676327201739515729733171145904565403795222370415072658444844521074965979004895877350886389791546021971421072004314873353550732943185647757351331309853496239464720705072435397114736635726015258053442643265942294444548532152258185066043214727577134694118478185656893355517404350013111208924521645354812642790477787360681169198642184637056749251583503024337040640048782747138382350695991896097159618638305620931940381512605125593930316318869310371469120806991812340730901442768854228836990765207744251608232230662065219708046476375614666329673099390837368143719807433330942976763797654336538354869250646340643667089601537364733844793651477446267777576968193359319300927130065624063588657174595851552729184718380874073162605943420111360930426917860314722175751331112362780825570962657019933486936624645250573689163217456775272421132739738429139590343667445046359218971727976089241173270321732527940475178584158105858439405456055533986816104148476984384966393581810918034842673324338117859718874294005516287695089556810532695156373269027985544656474585244745730158765315958747860053360199601763094371596773501750780640462289845808597127499540421965204021478240298113581417255351130982233245327268674428421458338851900208815183697071510115781538412478808965888915498860814933922829493484817424410900004835007041887970525372506488892812987834117372881244392713753511278641236630474846520729453984884937433992844059131460100381436495165038217925293834236584527846641748411472771905276868504933109129190223032679176320021242961318437261183680344366788637484438177126061612309084220450216252160910943186670805796508810074848313968428539664888320568658748612590438668837074737649617005162082555034535676943319373288507632138544232423619786443796304001002682780341028854741392046638121291156012792847781122757851388141733926210378307626426826052938097014856109334677537639506245473446143026192346766070733970540946413968208064732709816039447740615182305132120100051044692355206638254612983911384579478708500655778055609345327917959863732606332155115750479292487340138897411208365309446785981750372450081956187026381334175536207295462289932062429308689024399715097430420614756065921312027160635636689402313717919167744101152254815953426075163907517091493429027162266717414408411398815874820266272701678299574323660541374169853845700776147454563535341779810245426722596790163021241861261509879763265301218795763916687727845547195788726394744644089528838275099809135087428522863036678152303981909067564595803586221570119691388669575959509098660433554284869517213036020879350614372942000874401584895527436844287965899941276005433078963610326014714708483016665075648759456459533157192506158601293336152387681090905881817434342611169389665774108425712411311985122492812799569929665361919551776428336112315654262549644553763699155630994111054418928977473606537037570843562688900516396965729018633577420597486999120836887084662236071379430131558176403122049980042850379126648653386325606878713602563778231409780468779381293847564803119389729137216624793062667702326279749617817678942678612947982463567433265436864721392302772592172727676815659244316711922651049692271355234761252298601928761921869267721783083212768133716890237195538691977946983696152401841222472542956092271756814326272793664767764745763039425967777777172157545270780523588531462930742220985906556285146013214624446198531040417319843398763943996613625877915782487486127101764124060862584276600776483850417305428155006556256588281868351481407318108383073565787458118010526208641086686849059070510738181457215232553480886462144007437802505814027777428967927524903783367551576447048488662789724979549263968035343793214074808273103587692487978379195030035151306203274122139432124022016414193283174602832912883465288499981152451879684947708238245009821827037272459642541470805359194412311389011707076475092494525768787014459859773163040445772962518401430431736931015421533398959593754620753982929375041717458303212570466957919616787368655530724462107912278164345729145443727433742264236012067574506060015732224576968538422393512466148139228323741747611817056522028451933085328979531571764332651865831198891304535114115390672963197162860213808313929923544426901825322664238002597302531136718701236254726413005522269836560148812709421460297826732414631231626553438789014651904557676133563938904503381528329027091438068132651277553781545381731005513814270707445818603489739431938357314951236162527958052323608603628285734017357870740622599896585363078488399597997994973903353464152749654282039925846131846461310113305456171780449450284418235974252063887134831219376577453422564443926316279631241122607495617729425041718417074482828682972668189633801747967150540399230995679246778662765366832472737374470008898947376624021056221331817334208520457110702984743216150893732984527771132471024671701323478852723993068841141958140948036326551047702438656841262654550087957281780894413204584769171877234104831488340958399984324360280405413233905027910383028378974818793639265108749405940320903562440819290570497780617098018636640262812473079557166224504824959646996677530514235017964253579962292056471898097754193825905789231328981868611654861199540570777150775622505757242436487084404073687130116822095692701825333817302810642020810989854270207557379808769399642100122405530197875562358533418525404052903016422806560361286250065788815728474237012289902083296976183274331721585059788794802257294587413177888904865198037368616102952134061266012662317221711322667606205365382203088678853641856693057677736868344992757690275012038545187226559925892293456924362025353733220252277714436517331841483532672438337570872049137504138184239285620543392996268598372871389932760084985912982452755547358307559836184372887265829349064115787954081373453951739504686685424154554998353853633278924959999170372756807118689732773207784365308036509021305946794077867961571857382664795414072147535595957222843194194648887606511179875116235933236119527950492485778362826785044813733469902442099251938771780238825653594479166280233354928854505901007729381847696066563502478605923083859593280279334545525339928915154192331146539087152993852395624216469251428169343707168955791923460293865696230500719466864681404076850600154171884935694904217989737684281428479450611375482175546494690489721043702562269221459072669005852765639793958231266701011212252675913775587694483625573531705329020205355729216691061995520866702129510412098184747200046196216359114951337956518828988545269194732605956766962122141918279945437403659176286183755093200539722309568610684158343745602630498529394632994830754996440581428341524458206529329077193183981583394374366799305250975808712879747792691680733618335600322693902438834463232755383590436446177848987530855899443535517460159995172532577034101753921458751735816059927938699485270673568420677115589655353369795398613035701995987943489509561693363271998326254101026574753314359337681598578269442652939126204525887940559060204336468246665818959622459001456502702383068113747088589477645586962756223661812819181804399846258164715101145697373273720187454584203580254481851224745688383685059817847420950406789518765130950260827739484888287410634825454818325557741901374221307919748656302706223101515661963615233822650777803018629920915149509383874090966730962857231307378630743218816846954446331449355315192702250624296473080268794973077374828060942489355072097285397296856558050975678370723594585316594850285597289786807286081425686521456978435873191198660819209731112075981413333323200394530353232261570612511557831260387046398298919037767057070153988241643073460838384827697968887097436469983296714842025740882396785817185320669664014400431993320581772240319361636602940070627606268333015293996193011632319075264802457739054441075063608134346396004420096352691256536105575226948366848971218669893941855422394063812775807729704643173181094368544665697794309324948989153948369811454481901316114810476128799954255023899294039346138256728313797663405065978854561425174276081842099549829173345392598969164980498305263518676807887943250352475314914605654609794127795782953162605353847927019377287164923049126225510216326530277442786329998250531386589111274828528624002728737778825004513310793796169543972387658767391858620830384447617664739769026522337207476068746893453530177333902429394594145938781894269377788455188016401962834591054808922731998848630900219073085073535459500969002384162439789652284017714753006640572749767797364305846566529069825673201140011163234834132870850369540228823333652529664771645311135794094029363268988510505877870084955978428080450704480152414823996574788918077117035201836931805203283575306787326452663462149251330775315169487440524897717935632064548868267348478079105691911725076787998986353512173604034438719455105794567802276964572005790106243343018991794815108553920822178695655880121115138420005679970613254553470252015236025855839490320391011568345431932824844057671350744824912162408679592320065253691536948480134797864529580315579071244358695501644718124001769608346820919523358254624195760821650223442167315901347500361104261478555932447692543655131867362452533847136844561345834206040138878626831323845047318164060893948076803278993704882641870601795544089465492886621398724728071812926191457624849101092939566749203526406835692357855252636789030665192743695780503393878847218223823489861953983785932349773036216772516582313273191543989843345033838719719092434452909391473367035586333800034054028914533070813366764098645767341515773180290086079907802563304931202531673037540861530724401620344776966667138293531302890218828740098700943067935815594647379244598125114905000703681396498717135935817427025401449811938228260620353133291451162186591993004568620502141194001488402043454176920244706630724950621267929584743787827626478909536121341428182529756001651498063184901707133001105882497558228577023649815753447267549729213838232371890916610280536232863497520778519951794511162533279674647153985495879990072586406586363262133641486430684828735090931357348268011892534739323298571540515677604456240195041958754942092857360401581539996773403836305244124649078370516627960371285677080467131597510388842546646538083807856560816601844980643388301120129792282298987242343052305853792701658287774031181695186382666632046693042477300202841146822426960796098871227753291332636155325229093550443836332328611593869438479151982799004659386248088619141006380868814071625661784714711401171783918500974110354363315709054769430438467814392123472752090823397466716089077700617806857401345356331100681029508743645666013816035246382159144913103566714880400678144729669202941268841727851329378075822746044926385938458283997816203458950892713948919687316543777576405813620387997504486828881779457811702410117347526810048334437775255720326625168640933181931521233834800274097352805916005785012755217925805203745671625740365367208762348336791800725818062411178788844560708592113306188621952856671600957575500165339888063562823575327792007874395858797932539385477693825332806885431753136194730171210392633476227141106587825142429773418738376536479586746831265547320667914032262658108153833627493450195814716378034651097787035513278687066562478429263592610030345176146582839784442476675449422518106110670974637325746625790666243208411980826699547004872706307906613403984216204408808295778664545980463607808654983484838658250781203860493491419466525505241440663685646092549799744346595888998719289871768597761954251994541332691527720747838196060957731991372814844028497049502676495770760523148687102163764332434425835982253324587663567573601447742754354938448930341628183356045947662364291358779641777024404021304858813061608809556415901850197004930781166231910026015647468270472039134180981596388664895604344257078491141596151286037546366804884897505551820426087556465114694626725371517110460687239833750362311537052737410336232353626339450772316862047150558187441096979656058227092210779656911455263106547207746234204634154406529039520227673991583804293433969075125126242544193586963033088666903406466022020902736385383944106199978026530435415626183329747695915877279706619049030717253004903027687493758639952387374820836282276919200662307420633613457018923114305629422550334299338814257448651112266446514473503662662800530956657467990703989786762054661824506472039912537887647196916583530914269844838817624994656455739383678753934478789472600180852203289428772778266447684163864218302781115241384176129432290496430198319231535306326203108236225957770997733802690249716978144029550253234759109296475648793666605908099122385821914126047886975384509562474813730933198032956141763779464871821487871801616407688940838871118888136136179388045909844574844403925069479273213095958390738816954449314504360711981062287771909227462054551976846459194755085119625380789997811625551256702431070313774612136577646147854735045210493961221636647602454890492516488872644295306365964612305180601130663439634364424417661722273379518378248559109048243223050765383358557665877423817359885280149474109167915937617264452070623858290449670008377413250952368394502877663312580546449272356471867287443262715271364713822399667245744757833298880621478550430810253209136852159757395698786162376413325944533252496135679687619243548400847202271948444052994284883224203040413113019105981485091230664009695255732839171107247509703037273965840257881250265631507570570648768062972727530732625549714657438171089025399500325369923525464018655238292292412270325568048795813273068790719617359033937129547597705098448623572162342080859125822590389839166461537099061407190155382789962172724376855111786397465848222383070218193397700099326619850921977584691034487633792769360579605495788378243397780767752400599902385263864874908963743908021547123268687849953668443867678520443359472061088659611272307487187148919375770792633485083186456129158052275596325016200995328357269839978679885214045439825193785071281233557965038653360387820878849657941803428407820590043629358205430137513924313037382479010888026589865839592431819898554531140211094402420027004098218793910704350008034141430535754910689718678491614548832394511244470089686618295350942735725235429200256251559459805980243283072042332744424022161428152423755426393780645405571406982050437475703541958628452265414495920581607899270045877503934304852980703160452982035854239383062529020100173969745428528354609050900221326676949716631865389507116175335200699653613551974371222173122958462026943152788206841467156980885605546982370518399900305884114867048948765960236978323426901158598531174467465233501503409707167528141403088163484368508754260079267114586781963382544920883024214020232926561440498650640211243618123542959339188247198832379072442662421214079996563972666541441962623652261845734993218011840180374560775818168996064483225313155820472559142934866173109128571275326441226712879436482734180193092498566155609044455611644624120052759970911446979008408841839639693141941713858669212895576112779590871598327062647475341957707081929852876507020442680270665571118165118923458591813299684310428747606319580181019225051209763700705956312555053671546171368715419286433801535720214042089190013235218392243690132224069333731082545986307610663299629142374856873948848122391278499205045580251046208786892273229264325128548569021627765279162729503002023952970829642472681883268380707983078032732335607194022380644848580617993856163362520395423704975096212207099309398209715612908671115105315504695973469495055651432920178397989994410209643606817818328989603974431664520888164212726734728353279280727038715286089403943386893879073503606477750722993920372560478804500935236598092841188262848029108031015864010128269800907072601754332249067757235043785485960603198275097373653962087623406197649124599808004808891489622694814013864717630553084751047490366515874475198213232011926483531006243583559720067081683070722287352969343096872123832667168545667845147204420008522613888023570242651324280757702998329759200268070108079104794698643751093228364567390701132484375834615969775923256031240400810876949279818991591936079257648358348559856980985267923702350567738007057953917009940475131553343259101270465385386922219327877565565628564386411032765431782428930721209301862341347066675918019962263114951002196560499731447339907340389057823225041583556212648305766909737156743859076753433755671637461193298137173151165379404113341053960014084250133880995734332171466801794572823522033694779338727989058546576507480380207081199855666474262649704002755928305013664495495783012902670137664791233077536938266196322268422241934188384818386734011099826724897637578252161150697307628287319322139723082915611381932126587511582624438250357872763798537366925781757651777341419905147328592198786373809287551194092926881126133808397828093876271798165431897480922698243219021478042616663952811449870942364439242482836763242381937846695513562274125120279733230027855217122962330089215445013987477896679362874756465285597684470306463221867098980336121829805138936193926781247697905850106999947005590174654407142005961311355028798101330954306557660666489338628970365864045943147292295863584360660641670983683839869784884465790823514024988044207482114437328533251635501951693010626443599353570976395314387328884306406697653283820623537768163685513098395676371061922756977076955076413586797138567442715987379948306004609400785586074140021205846773055058504708707138386167227453652675711402417863160597369134995093108236803471577902061304577858438253777517859107940969358127273796471621613648290616614057962647259313872891184882664487000540342178325370644857187050159793171378723459697565936980117953576679410678916768543204759844424907764977352547327859427020817171077017245279947800672717234908671871406360217796105243094448744665029775370986162302248674984047785352382715368458771089558976192334616588830919309312158254954439717444442908521204243383778209703024380986717912168287759050492267358169700354574367385424362706925950890060252930779438468565945225950523546914870710210919179176625509908148532437890005892778422072435929784341796553625901527964302209867050127515013324555940057906086243818171636798377112727562292787162911830831258581799495106783008422330684399558088193027685818463989096957079595454130425897109025137797249359160430552060260071553857994919095108236430458240940903291177108531294205836543124235019763537446444527329080347725540036804417691310011352053574480980618680751594610784759260263971200791105711224464631742669509397080034297742121629309925092603217975164096593993825096750956861965365989855135026527514797054468751808919350659622398633048896316493607384937272748476570982720321735752162819696433316516618578790935803797151857520170442221837409923629930185298395856116188130536903751706485639884376110615297823653504563603129929589173632764716442957928131527567628017300091320326773080551612215755134384011587499612909634234901468938473640703543346776817940503403547684270563642297887476053285900284899195068872377275759500316766239251043551179674950215878535009613965704421654097287408753605480843964023853824190073877925021187633644698963962596398713454204333913383747019494567456191174392825128969861877695082815346090696476901003830258173557987439395352203381101793088010477057686355686529586979560160257402074217971946025150228353476177513234403834120068382178540372333029640535003332529635125135941569871586320565135069825876460999482853530188172460024661203057128842237763785183841679479666538544067235975269793264286908345623704615793790780635454072606027986524033609907608547601972942271633786200010044651198978257045280024614745195920234735108593489025174080211421482657957455487651132054915280161805599955415689847420570149630085239561573038222495986666979950470452634082766396285968452355375806626927772112374614167524606274168511678354349999018298229691725516828572323727665699049298451579029880542918393097194993813495867180910826318320643716943744411231364025648515731036766333527709560606730480328172973818045498221964533205038782061443503538922050298953855044711553543040268397881685091790675058427381271370911366726634694865259733075942800699423909182403850395950579227380677850552628305196979028742123044585880108269394438698139303726545446717871242052215268684781985715518417959487007175650223378696675063833540600704005733724831283322187688455366357598618685854048660107395453666262663990688854767328897088291644989225501872095456354736484889760156644464682523705130218639697624041764861022931094479213142715910366278141574898405877568137356216634422028318939896893867516442488589144323231193765910577963014374019767414114369514908521138736129564380174994858145353615636211190428442765464090382448183611758701836872906886119855594775190990570036932105396528439555188186969822294236603429697392861660784161487670494174967192540494386117920573244796882146792841716745088440632497883252704296862331249607286735850863013769890128745431944174744246141023831404261542207076346749619381981953133678930325102494683964938527634511500632797621556297119388494690985019626573039591695219985121403726028849681926922883147757326330097916882416961283960133832885853107021037891533989830711820040241298153861618764863326949475109128162591421963162757658480340835949138280665567847377603628000489865435375171888626927989089099904069269814871867086941319057032312178605621051454675472634047362363396316248397413949409497991497479361910462679986054258370995918927096865675854999222296265283696868910440914083366965560093691593929394761405078803898786178080015210968440946684749738458069616008958497843327963316844132705089257366282744090046212823521107846577177597407871574824139739415803576766874828734886758213207047227776317556586561697352541437490727467378576055419766131480213981206859212422336267662769253073584241827748795101022127023577552495702523559374847408021419741154185351962840125665163504445635066261010383556047737476943244863737310657786038965023664338465311062426935697896987271120859588848822002256170262431731490775658808754943326247932335900577632705452634169419205476869910628034866531283980414465786718012243057323173998499273006041887573678151258919190700077621691897042401702886509173674653592104879030463746619521254145236247919522373555492308396803218831515927850595786018079004955466487855229050494648211207974071993588328080425683570228539830748460481342912860181738974010248474525114809858561304717074439199113973530211107598694799644533856786373944712123941170216276360560390823250533707731500038030652904162800738739968018527079025685151843936193195199645011170294468364859096058243703755658897496699528724307477396653621630644027239771056803285929756997579491756485801247295662402032042297818528082175637337786133655466630228087716155824859840972888644160717478564249817458586501792618337497374591820552959283773869356693013088393368841699056935795285367326051943456391805617444197307656060761009636482803931398588088498846610327132226604208757836674808691414329330607634482328256010511277223639748235582670675657175569720569048120250923163405758807446059270982360836492786839320061458920788013001565399708700219758212970818217380730915059567201646069033761950146145415888623345382595902970658551620072584794216861950793981317561907185906525074160805401154722111346609560882599810145465266819839783571535509282151402088693790646151970103450913451371716747025679177262468738345796040778202719119775634911491954020494546138564001458004537672342864453253720384233934986148163179495190531308968655624629481644552718636262731923173616040713605408227578869758266237756060016668177104118215742465234222473397262143833809194704932063055418331059347586200625729860489663027212257491093881020262553173245383978419900091640152529835884072436649432813648217901349666641343982299414177155119247547728197935798637224580213969386663689337106886442982386799182719851068263795599588308279044229131131564498550066648505093133707245628476936796911028751692709136886479407307617372980830514127758353158341455658062993635832437736728669913785956873611097320135348807076128522591652566097766872176031767345609500588241781008135890786652578354517087737198176989259765446244421093437172452033540278781345017356524372240488768119861853260749255711978959154540036310556315931582598751134763137799383331984013580450902347672194990719829484396805989368670216452575756108528788013954476634522911910495201831790354262234476035237519251602426947233719421025813869466118986842438880685018620852111352557667400190327194451629672627083007061412521287622455765125406247812163492806941529179933501992041060280548048371302094107559474776730156511515485210550865612429520371651168205688344998966538913612662791264065898149161306664156765893494281586189311384595816621149597235140347760513658051207580847153026586820626994604667036738027685625161171233433871036889322678655970829836447816774839766975902539450228526925139054098415133333519061236832191146050808015535750100106741897581040972810392579444927908481705090574694287419329451313725383830571452840750885615563440269813344293317548406363764573569213195022542452707427857009458687414030696136934040533620944936375691934013918748997251597013557401783705128111604006581823148811629805805118087406183675528179291155238360293208907790569889476236197795336388138393071063474222780399077829292851859630233412666197994272191315643537703994192830224831200696633918418807053128679943648167543954206524799832180804311571564190326873490332028153886298652353832237424765708404486220995093017246885267830878595446482026105265467240322938924147059885146705604801073231153922594247031712953801036688813675994075731923515728919277033875119530186854451715090784607799042568782209217467571408919460333153574600780910915214798589406245126829797673846392847872268318908057483024906210964518647688003486802389756922198135714301112822817877080051274126646081278835603236968430380785333574351964129423030150918898742583899257073038366200616354161144666684401279409351238678411483491916528643448274700375249835602963227325909322665549400898403442226477720791563117596406065545015092640872173025515650981143746399483992175589157116017880798258129275099543910569393062435414249008538921491022692618576665198201916957543741231088502997213816757491554244656105454675807806412310926505344255323230393874119650977738169082640687288906803935648855453306429179615275345566399895529601545348484090769197672762831127077522501195873921129016789829368899287449606179575293238222189301803751389224637609437561176962390924069143625336323154610993869991501642623461263686979925371515436577697214777491078727718269304828045813800490107074016976567677416792592661999677534859767717209109728008634232649874733137600851359674868396081435717151071997652003673579374302400111357167124322411133094989333567421420224524207844472147779964882164943991970025989067542939733990936414618299644145057395532776435126053640123964135536180056888769841492328263631899536577960466134202357103845308066451601542076236383910763091695167093110782262058972316500763021836897596839275385704849802434913986959063951552086927565449053943339920915554156751324642144881338400970278895365252464141610272639129442541516896667147062436773821489956736825306876813010207059733275882324575243240855457061901980082512952555167001923271745676819170857501402575386023582215300816550360911418006312226724939160255036106912596017092298178174232491762641675534157574605741196856052206938278637209835446696506069959122790286311334931899349191387377306738280474065629760851745797836821581149393413613914882382762904142771134691599003509927596324674561813652748147828015572193496877017166493484232043222880555477810565395350040325139771711967429661207857290804491085814898436147567299446603029316277440169475571187728739221789192585129939070895398847716145031540017670603052967678826504499946527884412209303130820717870174554428479189908667025374029352126754980517839753949144210340647743207133767724213841404687447187425210245056235890568777220918134813640939882193866388863217814910670484196219793133729280378395781858777108173072429431361781891224962337305714223589287003005165742826813838087720701584048292259851632644629409108848943536831127294325404407185304177279952216836659594694994402120360433982509078454330713453211678898604210999440367518037751925523684247174347886371163200100390173012588829086949457444273788178090438660313289049924466130955145438758619986158072663867661316815953836790433950088520534781262399565956553549416928561444617462261443616664951116770080683738417385992578143277558273209756515051021209336127256743368757834998788405854908256084731410965420262109543396289434426930741425115268042139970696094561719051926007205542751127637693427967859668804611828933097139953773392206284341785883318412736676354854508306262694180175860156550303966778288171751228348937519270923128233768441274122081952354714155587870304896674319210651988187297543291060842097254721242230014422673320562242021581114663492433798695906171631126889089708595441131197984738711770307318836211271160800028857553736125090148166718722349029918625186522880856875470211161011239729970069261005527096066829260879314226862708169049225519393006684512032595756326411756222624656505863129263915393522707698277789854347925339369865801239354140320576565369113347101645365573380564316237919829748734816533483006500202501486640183713545806908437184484554641269372472629917639073073866390422849079576113685692902444039280178007343570005801953408584953283024073698288959172100955533981043383133192794656626625746945925722686326898937087124005717514816605649563320866566332492848504247467095584386842611604836427966638139884220711654377030321513523037171012479365672071710337436169158636986136231839781337306482533168966978264925595274010397788798597783322214294990891713913455225152157058301732313111842257148385240836107497044897975872535437761455500491981588262550293518656794166083430330985916520126070641244448373024934820607519662148032461305909399566416680520970131148608582913605221625869839222361854943468766017663043884209220683063343109581466292297096949209988978894386934224165616638647574741302041099844763193372582880822327799053610661466370127989519407875655111658966725128131774180228226698525550927234171694987554724189578341947499588475251140150154591805156394107850117826825692607653602850747930564289695516596025710456782588892201695014137491433186325419865826875243832807097326446658986756120925438036706423629698196679995658261825678845165644710515581672861181624496650698058622528840529262983450963902819950036382262554193011539135513885883400670190305335084391422436111817795287126964002703628991706860570969817125716971704585372285710054165423695581318506904365691455607170095945955976598384252922680275175935136763789666992324556662712426939937125891568029614243696418350330057309234271641490709240453546916482461233001576971603066376267006277296990793683458879534234738577902825127888127016737228831560973818047823421524152286062696162508755085492452491096644806156860345623682222288712330751139414858042997720564658968522632321615777017770797669938586896327918837604567223307762224493026099280355905741410079374006733745296121803794759634063721198069542753180229189602013504932583316586532008143025335006524997576728483926784148931878649205945864707339963607413196350966906340663809265245182033731809738685465027778297471527525948156421166203296635787628070310988637042355060108464124751096808042711242751015343606941784677752953207118664667631424518763017509522069240989022953884777767174335435512142772531165535437281571263457555241087362996978120548892851889375948155088264227981658367456029626576315085658345211702772513653214884021673408108158267093697589960947239955391225575769304339093279998299021875810260600876509360718825387861062410521082344338471763904733202382638292849562715982833036500365302875511827825374710494765899361678740939346368733316037562028441128666775003617805664745643069193858770426769594212101634433691106078935108174762216527682379332298951139370325443845802028382706373601055649669886152895876454941973626779633036289649222846055582666519074980625729314654793850268738975329883427988305509526814114350736580620298480633580582135875647642867501531803743876205275621247450701175789020739005967060182958017510263433434784661770963741056601535728416125248397886505156732727408751549221787761761875302764481985124822174117898886468551722539557306915519503256615012719725089742765443655441961164600244681156018690453023538921940589794100672257246042791090292267993899539233585935483177768611321772239637992842090816524082148859772008181973929991214436746135756388890490200763374846137865112842938086115488526107122609338700043128256961411916452032201359193034561113427981004485291081865366459997129997729381860826073349206980279542833994751057116583547863248065900007367483287569290403534675816304564456359886103162640105672487914333893395473265210544136638671443472176536015389443333741998480214365836490211550731376923719986587110653016623884849102246402709130697667650304521448685886402135424585404557951923058520019537754554243612959283337627483050484237281662646720204791455214984379007215250221627465717665336155965842555873317362483261079271139053620759935214498031171551262392770740372582781054119703849700291331511683506325832708191486839718348689155285270696530406490595689914152142654244834610029922393975960191960759863844595553001752950289998363886398356578350781081614482671256459219249576527343912138456597447383186135523798117331737901168557749899187788221232375040828111446484235808876954343992179369503152173527139707106466925819184250914484747312561733358125026358169006959350926115057094380584630607035057489342573789771403223258463552003495878265765265757816111775730447362372468194235576993573869237547125987929180457928411553485739314365073716728235681588098517329134574539836470951192358727548964008448694781125445295490650497758923081509530388771220779830840168876267355645893615522430402433249374007984058665627162250576081750990947501238121535707621981442206460923335018022601266441308008588532840235767410927981298394095046392690527766336866290354536212545879380600276853539759184330728027285208391929839497435421041800579932727395634815802579533053555603159429313921168664161959311055513507204763425237203358285701626391823856893587869905168291464167856347504762313618487539045523499597004850394295234836137911206085818414850166144549328866819128525631942102338644587211668195412331770771687161467994356470811601591522373303000975017154769261815703082355210100688849066232071728617374035584820296394091764518956995244743399133345791071182894877171779864946303477499850091514701888529169292345255089197828567885260020256807748160579870905264546141921651798719282015550464537677236955601522588111256266372115024042954628215873726349916443202386392595053057887280969414896031467521618951216676864546344599646630578151994145737382272797275974187687580693091440901416612118206011066735748927421531479077259794436539196217624799561439799197155432179154870621225105433105660530198778562859349338781206685781612617054860704641634618016343610771227637600633512738061043176992179336778290806322545867960168982061834275478268266913716719454275751504401039486503089801664804801170368365079195932628661953891738795987181845151996209825369538368934931266987031823666730461784812205055293076916812824562057633832350538559889978220862000612483677110485952722482957244353095756208902672862795086998639618424351668627616527357486892393235494047156144679226225084286666775198826320629281281622165963506100206175144505483595961950034896344267877881568556524195887988861613568975093099861636207136343062950180732564183533413271436431702312048731343318014976809582947861804960824279939005543974970045821963605198624288936998350289101150899701164090501080658427905051646070803471894152369201746610070355081777406363160834238260833164536069367236089844615706863268539911656272044441563565297740106163812628790578516165275635942793089961853413600694559205324937480098441194413281461244718551355273248212202377948169807269129077915845088606357594145635069457927941060284586515804782639196729228059466238959950247319765234059596087615073024154518709092519829559838069849458782017648161308493783544361800721485701453498410401020833674550774171161323598415575910256679769051499834067904132302541545825147612914870901879647627087800542761453399642112484593007848624922572966921047244051423198609134859097446459378932602739102825079247588023063717580440489840465845356967875058978310794228089563953969238504474309415667355217281652759011291315109409825022660527584882012746455622247058930000708147727238644611860392349944493426434143900129666538152658055761342236245170154613761111670467014582468854068572422401041638823346387804927934888432317096827349041432215834702019131788586006743227869217156204945419021666067664891224174449755030725717957199452433882376792101692858426139113201754008030456339158730774713393901398491355239601900525545321831583201931804941925930975334869098959315128982094900069476651456278345114105648927461263217701264917822428315342016522969478622146715393056512694329983904511008131602212417981042084740562887362486750406765497026035195927467623408828500123597855423001592276054894558498421388830344252056396321176077182779813301327955581647640205112235250200233204111602219750814301630102472623048308142225595285889949861285373974772343386131577878191942441354246473215943648712032665806747162269806810893611134678535901436000522268776052475856163745373425589793681297145789079991795606050920800565880350916188910264476151759898102074460541204160811300536441722316003471345749616096646566417642468948214272326345578060722123716551069765191662177968324079623563067365687095273105418716188603067286477037093923698962627219935945904329697718153393534762763573012166916218586510277250624242370249773191280647670205186856941399696452946693622199300985951672114697176866630938834906639207774040468186822896137045893633965285054486146806049060001889869526191574170735120682477400252430067627727674924197055217175569954035825559767486015668105252654480909775782722872231976150492845191790052884185892211701347317627948900567742599678395906303695430251374285031999680364810293584197149145354165395687598534255649020379109062183671353839049750722469061653066151946432414361761891493758365497182493439645282876799136325201177060177075984890123324758259649365086112861651876583119335438772151219992341544088570856994167384770879690818494102552422654478287559733008583478134121702869678465876872618736064428461757042728544819008232269708286564445968494577064266428433976049628727400891826503608245793126484989074139459572020932799939859709857265224780912232792321823038056503549764195956453020254657105123117467209706652933709661934831358048554416199547916042329325659495568944375918560645254667767294547400184422267266504155376795323750682177456971277716581384191206992674663548343442519381539900625723735022722844549990090967703752345987944610505721828207223177762710377507064019382350294950317299182728501580036171038078943216289767971666874825297499810364217089324250972885811971357310632001076524775114564622433137720450619749708954484641582799850272429712537183902952612531214850269961111097044557040881966434574928839157150613575033849483088630731804116842325206242806123557898322953297294842742146293317700681288342587396012264995042748634235249620691995008449218679181623069337993789984752355950391576380007243640224851816637447494789003189962399347585847650351279033347577919257286284852863089254626053611475798717124821717229990240101286937168240872633462665372214954006675475636307754396666025251974687531255046428229365789263560799837786618238768431759238658270268480542731710522114558135978015067120827574655688140093041165734054418298940700097462944333655894225459772839735366278339940561724663398052298895031124422449892800577288994030035215312192692004267969614861463132515270328577480456368734495036707134879443655134208616583459081285083950878086874437860566473282199982029131539307424335836380157034323593299177695125090101492834756277435225211934073074177201451462223388813813993754199986978159012965577331828666858202184252541759768185384942719652448857109567445186241316329588847889725565756661861486598891395725031588803927026680599705078116181602218915925720061785697260181498909966352580020230176710730124992093171585146591547661223648450821929610122113122804545680298403648826521143017656094571228867996644757859087044845632923955833878662863093687364059148256033372468278234616660441831503813194904660347359111508628572198126755660872073998427355085625426358515036721995857686473971893221794103722886445810509916547118054367585813761310518785088577057531316986865377953229858581202246036477252706936028473674126569985012744350641202796211167882551802359563609875538794736903746289081121033035200925520254463530443943935765867297510601822802810449414259636323929460708038277584397813183446884469665643292763705374285276761924787207067371705377769825187627574572608519380464784434385322494393952990338117952840095602503079372412813142526071014758230739160363806389245404686651293683077819565880331721589267735903778599272463827855074098531423746566038429834515766206686965531410906483197563261380790845167224706542882478483676139450170428773788037538588180535370595269952666895447341742143056635429641468489426553655034426819012606792946825232424070019523146492133849775781211009670029681065837281389785984402092269849049933345964074782190063397700338610438972890269050634728519739630993849630220617433138649776624470008273460143257386094149587116754083213947211545789886408264103705913642789633226763084219283934832926428753800657927093358071473847627497200597648888363574220595067660402353638657125591116052910854388104696103260853223232756888586252997254746740402366590063253938014614876677395472096005158657790789312728114572456849297948942576369208931112823745803576653026947180416704585747414610357225205843580263372172159709225953903542895038123364518846016358425630273752494091062829931275465191381515188802632622678035107563685808861860567821716818748194087273112543597210226825755654195170407500313785337904935959087524188356134739626224295015407182778916515779540581980871575458444331848113899315017641667650795850684942096220527878472474618940410169230573000264915892718167694114739166290655592299821190602459431311933143006888103273542610065445369782049718512758497944243991309920172789350323904917123319585344837267096638162824696795815495567906186239792973252406296230877153117546094933832834599383473269461280171849787791856143690594715282371256930104414041874063034688705493841469425971727872485612903876352515476225895419484527492528493251314106601273486202291270096592793499836266198881056970801600275943443246976583087364775120546387089039844673567704773795085494327441930474286728458951900231333497760045273557192714957181316954663601614071650640282446950788382838460109974996849269973643657028709594317700310206821062073758852307148146622419994511923279523156972555050644396837489305560863198862049232741751257351740549992150112985952211159765394442466217798405225277243365436356446849486178243262907034301884118330435258100981577968440140841165421338847189133897146240692702172219795294081868634995823127266981176179940855261380966047929431419549944626412877210165669248123092288529897927888270727022966744130352405960942874869885509274227139282329859109351864657234440351489550838195217394828946095236731555312121505141344222660850002999272137593121810738283982130940846375535397295516320072031186166977629703876452957224221770208587614991063662834620936089399380834060247881678539829352660394026560709802486099925400791634280630831290648213804154312394767517664669007348782483130120875391389315903006853424193720729481756986712062106426877591414895835755793825838315331891444391018791504300358358480222849935907539852227486482705829755456626420356052890818694139829064602255539186926702701933053940047811140641040131034373475845455119299225009894272381277952010249796089864926117129090880309607503527372210736635493012443421782526940955600692437099652337306829582903704211626355526905690234664053588167456028057864783774267928131434103601220249278856755346847405351332955676530864227904938545875235559714948716701468891771187327689470246597652148050696334858038307999137011571875925492362576879748466903144593963521081794573590419474444419747369251931836866088007799802234638227958491715434905587921028180823235639054475314867294537484236451519941316080632027817433624378213919379495773737230848166356740063882475790372638814622413603123958647301059834533839623391694425518649969565274076532909288438682508124964734452382175605258561026540373204709751378855871586227110855548418434301009427029184434456640185935053817959475268854059924173282947151443217368096779395223074707203308191563526580773064502745674492588844924725869564506654803810654175130017464358110828583204645810356508883282676164509995241084147568331400040905671762266187484677566404560799959795940860022387503062276832515096406064981532384969306502083834932865039476984080861756017054206225285206094341515949412447114593953899998118123593384711257176927671144784126238270733911689891041481573692910993177717309649869714713221033188578682296385270283404781291920873065580834627289234088692213755990844205878565179355400733082482425663536033344619718353606100782259899503655021898703454604532778735727489071212853171148057067474043948816853642687780987207716423725445712326887383544944385122744156073846491531236214995171070448847692293019949900017912413603351620502864227515705776538247986139858209635097892006006587277660024760580557531591998636524242826008101491273718616252103475012513275892535720846524722106797429028417985373156146678893128062713820797955870352940882061404734011069323966529130388392523174509482251484091103650697963069366303663529686317276175800973458309407512541186620892032159294085286791886049071794109566461781486064871918300353781450402258925502081631623533236198690869563084296535486550382884465278054232672174996681728225744713419723210194220887592911568622507307425088461474337422847729310275875060246178114986177998874981159826851654987696762981083600688034898751194131496254276584192071724751584980448776482216399698386246298159904766460050373977359802067930937585024644906684324669619985452576432721845893371644619885853963492003284996806053006653761292477654674427952783310152617601879693751274762577715509864544006381885865102968307904586238094749971049545833248990638926164025317935001544727119384157931528507437444757162410171380055560460804477132142827998671711380811700630775443361143141833570955721125524083775856614302826745548095154518436859184496248712669776606141978984260207194261486273987870386977707991746037906607158177545046054393611847012733758581845020293081403461683779710198459680513783474144623981792164452114382999791030204534833156011692296452290499151773676801198815170714987908379121969941148625215307624612179845362174713080819837728830280036368070300938791820042526730269943734237483180799660483315502169046105130416689581112763218899178228212746328589470868391663235450843436561557970426403988559936022128847130293052664857937686736987962474019321608440805969585470472820159600169010664675515137174829434513654988828248780567742031853581182919061872631673873183167056283345988840728101312780345664822695241534344185893527997672497227834977508098032203685210987591786525344918958748159017388347059858278597729305601073640277079952810556030364652271300818146995176714685738353332632800561241292482259788839057548441233115460019786470763922088377101832482241246187771958506249815590614868093255284457794773291236231325757334807019446980342798713577391663538343551623670845413451763148068558049641477430504215840817221983765705547437734071794671606692541608342528319397288565458142273359466097233697791291020332524428510969088249739069196171109229581125606692356516210997644867015401439418173504774743806128494211633961694044765819240254988894773411073122502768859702818347269569396967737886240799532500099893581895480171462277371357278709136484904520131856202822052143296326012384082072750798157934819491409371950655565369632328421829695061647308271457480222721442328808258133356365426762650738861885819760239984578193897376011238739916767373221612287559843149086638399792840299628288430469303250605946737821271917729084059597732299169920190081108814281849451616664847162206730755511404211779396234721103766826813944882713847186938174001329904521256277282280067363147362906368359961383141105624882058623601043646071284240546153336064055075248240824162060226952537194713138319480571963070257696357016278179791212869832290421464500448230915855820013888960458590203736802478743252460077026680662797080439551460765782947718658238474504596917412332112310263760366687296995533639864825435046610363211607123785870046202321401125975592400760980303265801679398419307598722756259799290843803750313250865801925006590828497019515379380781121302159839113465595069573360783202768904840799600438017197295707621525713628879964204953527862368947897453449596007865772428364638609914357765946487087834056613116934776164826921308609863624111637854338302321811406849253866176678734966719166538786596425268969144168459013100604852410203363652157393177951590901429959378817139124687100003736124099078664527867180722745982675173179859270455690297246891651809201725116122745360483609860606324953804284332498613858611628824544316399510357507404301008613979139168371799305921072224749769076796554479084787119587880154479278433651718435216817456703802966224349622842497019338309513296295959818224689207410081635495082444409626962475428479614068771835342116274809831556098891210868298447302506603071927110663841944444858817023462357077969018036257924214795243774493914969965413927583403698147672669021134358079815879616060495566033971272538714136830841604682266757836181441728024683656484319838832290434000114349401590962397140250508400474630552543150860533153344759358974252480605922889383640355610038444110766132228726714845272488972634601222921822150971832714748038054275699981134247839901662845334370436007255841027385241701560095162643038949493597686493409743410074499614644123546906417018438075629016124199195764910393681173964720311005654939808900735740140470932172502281623018643694009010257917126694703441926234329056629229702140092621576142500511406213269515282312431536112284600609534420281564787381119670360756990573316806171703679315495307973215321669508110121601384058669750343582410185357505932223438055270736450831552098494041556747004849677804677071396833273673571057885432555528182294083116913088795011388218499525801606261906694971854584634948831398192409587826322737328281079652028074096547699013004805313049219756105282772768236104256314081097929615428391433967125718124768993543312017093322030159510257131964573243699572309620390810866680624768557243487004991754379877930033968366251097584294575636683588409910092224056269071889739194971235459912264219981103912264591860604387037424630600442299872737414010236141589049130099110903961546165005156708664608231804333767203584213373072656848189056463209066804310831995329356973093209383862773266124351438960775321463416011596472590123138608737234550331336106382922435179517846648287402667215058886293487910584921920178065937630611621651914094436905259532629142314754495725482914649369195483446431392729680205350902084079005523942234601318928563263376508598998096103063312302552900467029438183779259129671820075563525466746934887985790874806419572820056208379904150903652657092952945750254457721708543362390058002779012567746582018888182216974474452607281528351540417484078838973016014200052466520102625549068959893522892720547031744026805458438087697498573285989380735595781127524233593377125026581139627855094736417517297680042873413159363080339286775814890228269283424747968168176481597837184870755094961494979331101563398772271830492450679631330075355770574556264325008020054502039614614645564307737839288602403846600090704874162477027744393100894397463721776890720639401383247383248218004869814118480978597857487792026296904716974579810527933291344767113076139867780084894484066246405639397721046727589027213007621607586416092666306131443837921877652119266732180016461592879457783458327914982523921726685095264033750600692056357535878752902812417874340182425921417871702528474428709400093207719816923956824568388042086233360225891700522642742380969934121371495481908987827183602911208343722807254345965856764956488261756451855477491732158027466860036168662971581211526733723175995560311027943691610179048327341775498781671135867390070101079316367114375488067022315202371460361979634404710632596151334346671680186086277122340814390485420262675262517489029248560121061783466895617973767634474852166218930105076917353088986271377924206191698226423141548705959590404099129857650223208608833102113264848414244705581211566646820910782342853067316434020700271063166099646559777680665669417329013884082095944726982205898636428024856500035742981467151714799040527027198002697816924344339088761035791284460574778253564143729026965124354984943340394929010502782923944493973710790439011204828013320575402599198259100241124084836309042155985470365936387042355149965045073457988438402984801426236117573753687914319474431046631409930971699904804169769211487649387031196659597319171885703275611598896914005043186661724343719556604930374580041471861705075637129922960001362773739341793079927429577042680107402147486524106029316981885559018046042016941554724525666337792668835950686806033477476174589411675412563835310289537741125997348766718446299825745767747736419427442290477868639345873532173368189332418480850005042252202936121019974837570977686829764992083312872357409343945108891940268607724848314547722674551453564449318254619191938066644188561654672701569697794270570894667834345783237054081969450017058465856130367464337195343050696201137095659758616714959132306334753377970404010846513186189139496804791022859919132623819460082976601729504646980385248023802193891148897172224917810194005688276406871793638962179875315344406537157849435647263233268860374466902629117281368097804306151950047178831872561365620069616732553023161301019104947063726085908319145129498990306244449274277955215677993256483719131749806215892262110799712930692747612921573836424599502038618318896474568311268940467739779099561852040472718378132884213431547451769575203380009038699461695418314431715469101659610271867536334630830054294936695626538879571703347713147378658136675032223731251059485123483032947034255891773994011006000426234358059143927425338927240045262913950927086029314375577876888277211402502681257720061241203977142670645054047793346222357303634936570685807942039548197739801553682429559594284077462318487238437294791406792007401546161682802958925612718074303569072896486178391467425410821271790215754807413496455459845594605654756812658770186344047681403678125415974480925049692940015477165649556506262583787692346262320233769631712464272578837674380304280757317967067680021733772525877991381518672370513220182618802403657632665224295151985444135986320679910281602612498178839834741038924278048825440615325265639962752223705901545700847940464660651828555419117685833497747786924069452042692116080286516703881241716180009783006430458284359121778631388723479092200502251790258768568790222905004286394161884578127119588247960222688362518747527465832148645206539405990161513099830522219934306701075232150103823826006402700336453133282128612121417015044777661983296843394892290212064696600265178313596844027393429366535366810294411749414157196643802122522266394022852455173024548674451323648538818469291078191331881239383706560716129985601329349773103785590345868991980785887683079892109347440362675751072647994469970942558438065708280620090631911489451891521134421218122917520384522319143495184226926590877912477200556356630112471735409440051761709494078636725560681284873882110231340139898883677794127006793398561051164100022242957552737275058389204300186725058205484254017827274394551591317860772674016578163274166143004328118738432020111602160415845714064430534908528627516952069967646325128233312358216207250851433512621538994227843883634932326761171015637558275711770629663712187441829454326589928644720975359188020974102996672983034430267898287055859696942468337242250505356095547564117135771331356240662641128155146144048260406588857983938520531803296675862647546643492039884607380364636251703127012446205099530727874522779338079235606816802289309157628204312017720411587827029647320678709851386538274095212437270489657103522195898341558935170377578887912890664888779500561978530603318761750404695341738653101702082359229191649764973301925168087075645013111691765739445659630968163994715738506390264205845879810204597390550489318159005319601440054411835551838878893628732940270830581573289101087663212130236231913389252288051261867256536269352311281942914772649515428343706421882359499878048120094384990728143154767992804309093431698669520219025484033126223707911939206835508824874967147801269344749439283336763136383291408346968373491327453411114686063520603272363629607140847410176555505256621146904244021124947969120807188161093964058469345221538926754161604321875001443722496685082408966902620167727181339258389501893735035061633264258129940795209113423543145199712963455185607189511344334201555541288442627922702957087441762129091329922245146896924822675648250493222831991347451936350984215152285542395063841165569903679088026854037111546790244717118815940666433024163272652835626114197325305850172777022931504285085279003565960021540104216867580682664617171264062230724459211152412095613040798984481055900879463834607515033460947745361035431343619890508259623956110135337381700205530626330323312160834914347455831098803014894540402486384695994249159675639682236740377110043939642779661557752562606504078433854284345702179402635455121120271692256196159302765469540710407420971771625441394975922923597754087768299027434728509958654475462391151951337113221912224372811903018562932701205016550302831894788350318836120038464726529245178269665960381942092651883697126808458800141608887598673840511998462976483322543848574312285541939986495167172651141503221084950047930973678227347006487427752233164077253726408916879099204862882826980350195492814819670108850103004811910362979080388107653209133454983007092553855442969158130972207575298096007830084772033872704789422390939766486795378405519949828850410915008540166662241164109982051504640746783645797366625691068469477050247456083920043304388874444154910353091009968909244558943568355630151984521086174594898813692955773216249057096438363141795950896653144513353453065158708155929029197454513975525703692383278421429545288508832067226626551594660908490912204514179976965790760292039108029578496951723549627366522886459182222059813250622338279243923466254951265978905719062883431969520566721385454875232688038465869325273229789869451935018299628353191159114540038033230430493909175850110458817382079719506363236365194125835365678864610620563018316512472987302957332790756345742065030168218035596765021575227352944373151098321775236863891708037978190708314243656565795246821238318827717636469275557290584434226239678248434752021722776530086822756918663107342223825499667721202641980169562010748792308011584617391999940478304725042954010796112033161417220269301104691888562480332656862804480371918159159041605095694559239368110669639587826777025999190662770818069182233416058237698035942175257367355839635092671706547737242940804491270217221440086358354492338451071092094819766380545993969860704275507193396621505660859390570018696488696945154587779366435599290274591112449068080363180583245927013464593479884817068603758171157425692269612786025768388299220510471679805599390365675993668215420314121015418429837641484673685033215036806905362098162974427904518974614643326785293893952451771956110951177146361177688231739588937487699179516968653511009602535276406153283574058127549514137608498816290394802263765047096114964875295040934426363752908826399916682635664953955353451764327807338144151323125101439781078427520276014330474889314060525134715004027301262522036023084262054447834674845403326543788475576094920087670864588125858163669664233047562083708373167825491651415493385988455176680203725691650634932127792904846453060384327428394894382311457998304647274478885848977484621261159916642712087452789479557266477740447855713219780571006012437525274560001680492287788086667960163784892320369523437739821727782453676727140482864596970921875262961928133684645458096145015165769089656931400107590000331344708016402873928976154815255050814311689205860004368042010264904632726926406534421170369289292630259416927732979196426610397382501309136923660647611580715286511819863070268796168512757572998552981801879145515089354420111629363782125526331127094587966912050888709573028291920759560592740138034720971597168882238747387048045332167220468573950409929292507373927234464323608342614606013300490087477177917151318230962241636199218393099785105655381475771495949970479477925341522838912180916187149227746405467361653624237112571024012622821675788390783165430346441523331916675732392423989963169541217100675615305189047229267256153833996098870601224168276529320104869837877292720221579611824217117174462494629440316925732785990646892724229297377850459311412016185264173766273471400967447514889944335671327180337572161360434641002779087227405025897092669636519549159720759465708071023527827943150022272871935971524621514319230069237546793784084175807319628266762291601482353502114092216282110373037070485297939430160301961422114357176724094115744761710827411249257423233099097067000801916155858497746279670427880626616908440815854251037238363947301114616136006596765063995365012968090550249981285945729062799137918061889822583636216727598245914663014465818912392255977924062667619868163610231588452812847558284519011102881882466086029442988048049289932569360747957484840251259348698430256542477494092549913020719513424483973733207112676023383966935431365653506318312294396931616003747703856213978721553659800236841316640988351068223717933666314302645611873158696519503712272415544409519823686412566734755686809142340439447772653199122476348288569360605229100298369074590960377659342879568683164830580989324570747357216871780989169921962941542783445247299023424042679085793744868774093006877259166081909163980336619004270685821114177426443034733144853960742319840041012575963336459445552430724818190288290092642462991443762013235687421424447750779332698757548357181098933845384229385072997309640287371486401849314637597734568700242099204152826860540053606520194846922652439709126015123604924035690181619586900062995765771055529926124590443799933781932016560964892686259001121455349379946166478324337785842506433015587862501493275072410454838977011707959193795451789360490498946274752972483719944642652695300227705837639110461340409736370174529468082116476714880133237367503952533934379945436564582219373065791698206013208896519544265005147293564755523346245380608840905947356771804645087312626901899416107298867729666907334496450416090470868809749698458984446684115814816622725431143428930248516807517377935887212769599934813666059868736787346359690341840229764107363856719089946153033748908026998704158454499184904793019396250447709022468653754049523949777656943275367423119098911907769581297805843563553536161886713167146893049396750165035370075908140001571453354933007459276186820954694243266600779505368726712972228853362964320042682604759362665330140372216983500650466375728844930820108474768561095828961739939935360228301782428461590532798408619103872191256259190252127579843856766256686062014056606524152121334571896904363634383565835478294823422393289854225242566631385489912144834790421143849004241089989942271168528566158607371593418690850136850030217109936778443544633428238141381963524710090965662999989809308273010696168084728741499656021063464874687766174690459893707006630579088521423262809278724744314974152731390174266253342478168930458340806603799802547597048224831821381399118192972081599289142245313586792499625659985639415736711018457277913689881762282579571402587860061586663028389924293172096656369066160967296663090120568208980517698699542992204977963359114593152255722964657799350354301646091821120685023336836107477728785569917672137563174291159734480654942743767909634803817998729829459270139794785597842709251069793646201137576518196260997764598504692012656781926420017622515562414128875105314959738667183551095531460023263679300571705660569143816370850781984883647849301625161191780226815349038751642056639868320054452011591788264995543969917827457430638928787461510967278273616880429968417123891878698198321347495992901209276157539995640702336109380712507818636112331723700534010485935900251393559693700123782383154337868561963762848114595952115920928500498295194240648835004590600333600198229366516133835058243439652150071905067445106725515523672308081331227783885904623620314670967468494675749341897439608706278689206103462932353539997996292925627331092062444973638467684802639514969887694510179732293707356337044442630016040758646770529196753844834815257072311124859326292222436727583218451493023836454235666768597258605332894357860392424205566952448532427016893658449945199920847567661008837405520189739471025408023749405820564147597379579239364692874689470680104675567231995345010389051460782153774098048714951491507820327227099626468008793292313819511622650537684919042740258768406814243220732490570191108556350574366767209248719449373713859851677578245190169153311256202602900471862329228121749116979191293137593759606756123108481578389303904040021277914841643666153455539659708409758144245596429475255311863541535844116530111666497423657808634877576845842045056126778579718803548667917131879393741825064968108833012152447390200967239592122010649234140150081342264424687625686461465799827933400037103168066906181585688158537538992094527903530732391717187314385749479186631330610456506155996542370761739350377219592981229595119625660106359587319751248744534892929988422432533541455673604294723488326570382217191979583846172693690293202810224964237822328493417825987466652425783500786486018740293947923955235520649561454600717234152616279245054698734430265514862483862430648998520174305702534114150193295003763567741537820584942513428500616993765997185846355113944351603478613445786288406254780720776426043818095293976385552257626801860328159585860020469067615808179265803945484303489389179004994222719909544914893676416787304762231568172586146106460451284318556309157086043907418244272559904969746313998719287789207717617536934703602990596905906578651527864003848716941611214118478817716731074625221910159678881374917571387154145456514097410059207787403899871410824702007547102010633681564750808668201296644256709254496621724896666019013089743525954649874563352593091648538865627212639074805511966828916114985698361290846119793895073108635220552707893555752061828242412898765679900767142689679008382682177771325501585350007417519835859463788623228701687108612127010292325930393737027667429999812499896494325637958773125071111767778592566628650717795092925054729249328697600104467301022217637189044503285341404109334385292763103489866564342931548214649538628550747610596165165346871915099050881446071194766583194070609402624235089986756194510935774808908193279728944812301599071097536187254312370007617257020452600600703893176749866271406224175704833271726866157640885870932310375780573508265454354808373943266954737710047095686879541545951540416404717276883046544742785324794632798524343250432605687952860174732896751009788270258196105681049453728388069733010256442333514048907314773470658255700664718195713993045442719694749034000841212235185208708743353106356373431048819700594027176308359817665165303584072678690786455228877374697062312442988203105401003624188961115280901184654528858176038651567755428113895520956488726001672304270504938109839532252594672247653062475341671054651534614210675964527042881759330736123920389624800164041945295962645380515112350651353348079431558681545912574902666921037964280908490862936896744866056944267712779051140774166645474445238105115797112746899436074488067538055896696706547642904071511148171242257728633759975838274676600829708042395952095357458756014866260706919993484960059727910852034492230879755684168652325751893363168722440472889177639240800970809392886468851242876997556676254374764749472199855734412737326460673025778276193341242210996322269427855524446734390892383614164201646218575492069039686807445420634248858079863157542988707376206010075663018884781902007614528721983116193079599867571528921034055558743251562915071172389686161813895793787005794174696329171101537632605865155717114168839772689955841999495171757452108187121155934735898187927627058294472732127884721611957125804702541465888010592261075083117765642599529021316907632567950869007479224196109489557541499900745949623200786706171159646512471137673380983349464903176911574662653629370649661456363213641608979598052499839543464868843665924602616586332594410150751189647046280781912379930535066525934037382139587834807207416300584119257356121086522468982447510519360870275872959832740230271503827835656878298187308745406245435084191886073171161733915814453308134396570262406879375194358488077850413283406850678456105704725051398832046633529679190055526782661545287450763740799331666780453680016272791792487391905212156174249567084033699836514884647634708628012142204386213286382725834920473304505576160939889842343716075741648462087132253635514841963153601067385701661939806101067862037835363731048514725883268195559471730162851541424638690681874874124439602731599471875991911208821960359840864952705949116972497836734614167038121535724348662184736361202760126378642216639312474345087387679773611705368700721761926665319431808299026182043853315869112221652713395398202763088935955145060317978033366205413310357905274978064448636069248017701142503282031527337150728370247251614181168512705903895122801274485128498316469102531442705780820267902767079290348784209439988458144851173993501266745956150491142827371878935778038262427402157870981549140673666995077784876349060394005059651675375867918472143940408747648577018753265845394633600825002873870372904307112363873603533537695528932508880229080231696435970979609833583746590976875391695920989791388730155567458416959181735402511275493122610564533305362989454238208736367242676718399254025824163170984510324151587989226898107623299251877022870143579847588805006092545574691574422335586587891209028223265174048790229592453168878133337686065308939533515194392835739876860634223771276055526757488722248388991240102669738346002798962172548646255912068602373465638269956162011721725212010990824326997124078038783917668782814563883782529121402525754852950109056211563692238945409146622851163441906846550115928850780415683223192334939587065552077938129838736124504556923024135488612062423147990871180623056808356410754790131206810686443090371212268081901569143746837196888171161914242937594234120419708230146763969178425589923942256088559249506296989182253950017048307931846603115299060328263060644036425722941544972799820410610093820671187326198863381039031372527345293311973136300869893743083425778417778776143442476899433467912810175514386714082479187849223311002868281654190724827854024818883905120862780753995469343089188282166732838144565394540525293163864095586020225008946925466210061622081432072759784353922973330146653442087467283776645076673580417519243630073578073406573647496409009490369002404616188091636288621174083442470999008878551420318354681167789050741273029126901108034564096319166627930316882937397055905565549524703025301370319292592702148029283571216931173571406876593128637059941372429754566670249217815131703353687173234702207479676610806114171425331345098897050242319252952525313622516567621467743203330007277855647496987554855874553549373342118671740005874520611081627202195921937399817066167097535980197401850592053358844235496869598285965924860987495078166831015067592420599502570755221579338113683416115502833240835206262456424731414013767082461797069864491601821266058218492750544640557155689387444544283640898742785238596205957470732035117335364916482140400280982264495413183454395663839915504473550426175145996850696259771945001497483543088280004294297038586690155536492904413673645023518081330691346504541539894488117004748727214583641549818481380847212610959024819531247297244240021138895391243632174721513796520408661561202711842614003489513639792108723257279343857905211412285507970775745190009124281051667079273033446790285252290128570331237474568173322311676103495224181914089032682232242970426930588853820767711253004538710087936577312426420103973035226215954415559956784572448167923018073032866553063940913596859171331599987038836555436659868827914432975011718191588403073963186982480495092890971575717220540571298476110170313303906293378608155824413268984412542552658256782659897073873285202284605393404632580987745065759774442735208119921541431872528352975928544560972767487739533960716083402713196777712458598194416275568340285096970894718390654367617696622936670846907048401873227254162380194443080816235123562825456104836220179486249108282534134016688182947961469030235769521505084157883417117658141173246934282938309082372412036172178310933594614024517764902187516069688424728490893706033774986140187091639686475020977124105910310490221887744356376098310206445707281368918397266771339024652900652553488212920461676336004707549264731632609474497402334492402926911009653595361449236833307017328513046109485849426173280629433147028184860679625935083208243865622985779294525343361932164472526467273630589358301427765717541240854091048130846344152299327260485936778736176829046105240753145712363602393066668330593815581110557940468404447745138002533835285114491042069443017011356490464515637351135626346853262596043715339158045519633592919572617823294562118959310453193242930358524522863358684972037422103543675070288097801543997332167774673468987385124222631590032887098965962624394677620485328127007338030800724091111974467622685270986356382227311653848042882174862015734192244646830225918085096121232269021817576906675020116100688071652774363574816522279869498104307564438157660204808219356609623740346108780562780566295874528165390674630527025612938867751892004789933325390995016924186006318476791761005007550782375189100504589308320163360813663178342459968637419483581677195991222481330617540699423924833839453762958568329971419567830595478962185592471219524415469284449248334496440906491526579961267331224010624468290931574376282049533319135025800266567055457841095184378044268242417511956678194130735224445205263074429503521016418330861538509036384568325168284662271621194359031319625733172799443861941000044408952768180834873531106539756496335053612275237475202220009090662205444184925202598864974476898538083082077141637256576023529166244527617085685067222098261883814969891336135630374479397823544809268480676654575990160769416608500472620624072434060656663985948519623035255744617862754911087107214470715952506732905870789845267186625143711694872591523162499597747501121220789047422370324017220146591298329611836269139337564317439644208100955183027344256074863202005623956196242081113344899267063021532919238142367534044789111215275389774414737207079357925050111925184021526705501627739684074409322698367130052808252504919800238872829740093395421389463748726911003767871779572616124682836361983092347179813204072146237955709895942418921098850794006009983609547430724400929632632533965497610847667972354404056778699454442649022827853891653233550491348046765377926482340579757559981455537501242412777370396166835822568639211614889443682385240184962978325810773908515880165892366082807664102896772166904719770426881507847291545406599837693489806833578384388410139370659223501493461627527554209947287245498380837032829002361587660031261904806419708086066371917710629964828675239559015008402617574756728123054095348857315801262547528686793521383708739420090464116277095454916348180576192422629358633702989918580805240846589019047862675870701420333770327649676351514280206074168360554625038073649501219630262538552082839994805567914631858045106718875860879005258720011844741350442194994757501257079021590597505333242086134037743996455416902335493087272715093833884656505932411009636887199551092115923156886324336391226480240774723186357076832498892901382109487875251118746992470630086276155461162885921417782124302163565249513017510493805740619216615028292199375718716371896036897940192451111096997877461776375506820024094845702308048616716277955763821744874532390698571012681917353383924609233729207572303962551748552097683962646699782930123690160600862889826574310801499752989328983370483864275896469056102154666370594927554809065910162386162453934899385091020726576885441597945875229236746972701908562226661800706840687071317729686880767455443593646986442617165119693086074425619099381661980312141472675516547279402633417204701725032033164594714014556224255869099011687832691133533224920864608435191640636448916215723813038373605509543681339796287317551575512017199690789814178224288266656023209616151808642513373148469462715788456207900111327948040191080107102067063195020225746619266190067554904751826354219425357864240017052804205146476686914647890548682486333828030973541898547312755147467090189543784891081915298377351908793389448542464245760081226117342185349042385028988006229481650144660865351697197886496586544264451111533054826401937804927263946586244873872010336112818716097639608477467630339829681935173580340525816127880194887708641321215244354100239074656841227124841539916495590744866513078814663290512982654588960960166260916364219123770327574392281788342958349306593917175306115039883031750652143577849370491362369099274518860500610799362050560535018862602650536477687758251180863567768193152545707542997715489840386700024217196640941671880700962849970642137503356020648368897316904468985385675551151741291063616069289982937969823951788221363239699368480144178033261554461013381519551960852654987135101759578980613462612086196066185332607512193882259265948098342377579606596847408208669702624346306754249703038520395877012856892167007465213353578297351345376152257736306907700629098789761762414002021072684193099245112381052863797626257055914604990770566788366069215819074759253423420996743381736281297901893962211058874954528373313263915228311322502028513262075555994563539395260773150730501597251352356159920460636097689784333283827511332053918534745510626439716854424754697503870902698863851841891637972939919464705375524931402838896522103806832415568511057382448520063043361593476454310742142739140444535155354548900489972073850750922008465140224594261822952890365627754169541012888748518298817432999842201023521646464531999520698244514922947388920063424920960381131063238266356019774465725422368442627579361524317329869277269618159323971073330701687001448496985734391941244720437371817495982939426188937475126077553363323481440452364845040731581323868455638594741973432354201877787008762590519369561152052511706197274770597265111616777578189919821293809812074317135704050057487007354155889032762653741014808299754470218196762689617372209599510828625077418732359195992862507364636298551374392594253574605648201734195729722495966668360371799780995700637788984473650310626707244357869547173381296259795234052614529797657835213077166628786345960844938100095238536448714679622471422344526067031735365657317627072808814591783551786589198295773767725656374751820516997598128876575724690676942602448699556421306542547712798433907786615118584314957019510091400364457215550893173112041955148513197855742905753722972187688091516692127177000833624472903885556612494942063050100488433349422838146418299447649910176949783287632081688644225177159836970605234956617306868059263813712689677936145070069257130637958226730703862516367068647005554665614243175006224414241833594177305653712260624145177165467573192168696523597834608072160635836587285004026877238938732233163073613809555677560478139304793043898909892518804082581575813143133572429500509192467104147917464997985565848446372405386990108964236778815246025763281332882164418856562940182339543905978740164572414121435023805143701021675734774279017615772344248227923209705706460369656612983264349719337692225780084405129176777762155862961029053646961308965617398942724109992739817512687654516232742673678939959195854335426578574881074539629479554325595118316133515095865479259670856352640137072926029563312369449594567737232417085816615316714141287724600842673073810515647063550418795721308831034723627648543166573506738596893448957029283840066686528616583025172125121448941111578824990186860279770604092686084769184297549292653772535034440075895974375214373862477163884875814097893460857792098076003961251794523179006986935817003083067874834437288758323723718845521161832495955679032908536028059862416130590179917625711629814234410755585018850621963456671303543286853638495859499434601568030845534476069351438683213211200822321587302353257609522664574771317795994407099792461349071433050927313224482818807574125460436320824572116568153954438284881113521272207754435703536200309109049289034110455375537940474890717549616395797302942842768376716573002705740763669342413948349388402004555665897632827046402974732808468185858620099744196475025949408637368320357318799546809540900360257094379119902821251434354699134526415319774931208231838895310614128927271301760163797901634200758961308091580537461306861749419368774555096477787188849086320990077930287908164287130861312594462635272961321754922597789484618963158826563914401063168500332677105119389454119968567838443845958900768263575513124417017489446956122916632106538180043321381103338377883497702229677805474544213522699994127398984525040263068121867106094334601521904105691819377608537039450100993487901874645129210925818951231927517367029311216175747407991180027405515619271040778047842973505609103985714830545077031092402817939392486016520488924046736166588647256959012334378204022287771157538076340878688932290236314160814171771208351266895311718732545728430689030273730804474846035233998379595673564561611464757163406608318885241934040816880345221970052636635552413589335747337210181243124538662790485676971975360227729904582008059570368943135057844253581275445741114890609771098730748739884848296065177426145372063537112040379078770900936446320214703749618913074116981646411387687741138357690687788230802882526901308030943378693065699782860027065804403983956842638047565810034633942769270299754700555391279515741139568507190265406612499172905641360938689020214379427115427523782034630996390331404733959721935885227565921520353514776897206980500205701101457761068924770910074469249049582148777413175300936651431780481435767726898666687723511155635795301955475532127988598840595729619173331606961207595695050997303155858202246453603506511225964647793435873459685048789380492785109704713846733908458436560759405924182271611939766289307926282236322496979142340355386220538437499055675422341472950718497886818585074027590756713575930818464090643687772847483917942098210942810940753301038060010353932288110074384250226009329205135289359051425186773998320092800555773655736736939077965109691908901134317397057653847800326035220869808641350338406450163863856199264716205536066915100551566097049937954698170076572025196289141881143018275198933780167484336288048038762191166766034234402634757453635622361354354810356271440781906623419322707992829750068298529746537406468958706766927084309508239132987366436116285922975987523524577555959095681521409520014962424488889239120853802211110190425276851414504626530368933526783484969277379688666024642444406871418607064477315633842296490375389361030638421746079929332316051291217950912561304042634985166660088618966432161709396408016202007283204911992059887068353416214963612938702215612462602582790171816644930150005490371912397461481293057986149955510076943395308584101698853863150510041720337500701508802998773901703545499114167886654888790512462278784153219776763090457248999685233608510187132983400567304579817068599410154343212918775534722336452875417709510124086664974878426772327753597295318175264124804483927140592273196320776175677702070080374387765371478256344542940279745431137177389553081837141262661056969609908735251821468160642955540515119474022407070975452807734529071901036441162926649686872509601038932742037555549249888508858748702859368585430636893950195622592447021138060907592246482526061126933065787737676366869100193900707882485623684087126125500419568496789251207716520396997130747637414685688701501624869305930489588925380948071044660991582520962369805995105196397445363582623776692103953180668805129342876637998479048607951140122289063164897611597069497653901336694517290542961611542462632366883371743907696703849283474670591686239038629101127594003162870942681004422868719463503168682443254771204562377846567761649201755690202892566412345461492394036164442159473355305067961807110460074786712440644292962060464055616769166584239958214076900713999771872220706676183726305407711243103406643720406499692698071501415499442276260708892192241523440997954506333306898581552156554102916857470022054618918337184480791864970553529281602900262983041928101388936768343453675235098042023641097120098098379314533296353310383477971235689937887225533324522037585228983564552564345230087281546653671799316830245291391088525387172527018259587381771227380089639209848679839440269422629958974726074568079316963281222788857620695013370505516229206758061237509062200400540564976943063544159012024544512038407859156381641943196616843420387564382249885220964190677311326967714886290191979922742982502766757100666320724771596027082937942940104552443320446322317108518547065506707237528315996681831461370934528886272613795396977355685952448007738423117016683409668896336771701158240032638289591469072017994999664734185638320599160235292776103080322723448422333836261500921089675051939522134471804024755495388872700260801521848501406556198314176508965012990246841964890634637809434371579834332741136593014466039542388516569039771233025333439587237787643465558075751729286924682747836225043160719556984755618367675615645213006891017840762577669059014476673073087045205829969602858772859637890096979061935593571052080030662423260635130384569076039286890100905711737242605594737278740338894453408174523098304013567413126441436311228274676271191010349660423847255340156957888454260615721046755756428358955872858165718840649320627774143579608161893736660543962956244029845774438933581942577775487237762924380361721308044017127486837784309312685991680903677517194006152738154424284099035816375758017059355982848301855699921376622456565916120478133791451802774735830888336356260014972782058621322766462248382433804094656642310328078331056593947290725265062745724937775455438981186314326113939838725775795804011294252833541205874694761199397637884757438999053088857186495932630277041046831196467994824982681737217488610791519301580885743947055324316050328004882413076386564113837549046913675956347698389786424270883322518983947377539293747059434225869819128473225431268838041663033855277638532052545215483414206232285119043391146370845501520675858113504474094199343733666378718276892965293290508257617147541169951960891633525538283503831304689401224972122006440231911774224107568548506365546518631033350375441773099426279216137412241504175932177731847289368651020439025267013930751415793106845387123221336511542917054903247624583789612027026722694835691833990527878561109810744427775241181061225794765127954595579002137498262252858249216793624729464881098201297307524390870902920939102575725313558862410063670801243109992168270082632675786476091572015542241750992706888245438593336680894805956648336469777748117730149234776126962795093013428422255541909352479471352850283559247411265325579694724010628480773630423265997439307213812784987733891242540815855944613512453905489817509513300092065512860826442500945789768707149216832246084772488000150889198799898528009980286132400664862158165654027809989868061190071977593387863399599831653976589623501556185772342104861900080183793210704390698252147902793212967300241172851685595158334750438482280596353777359027914870461961294759724541165489003419634359527102363747730590038098873212528402529714148236356926344769464723940783064013384548807830271986578099045160917093402180882366453367724721590019260140268380908991905038561348715938779152946354602181738328679914858234428617157043390859083581548186313335155080754548463411503365614084997075313705588647732453292326039541081416583494917757732358258055314238941376314998331746414332462675220208069749676156056053153541432738643974637951393406201955046699126337645360953867349662059905156215367689944030645603289419560910169641107258500266888157247140533231187321019303745627693049350022387427701535290477606216331849179405474135811009529523988799827424733778050314010780492908807869195817130736318286069187394951155357508034643876285533170600843307828398075643533383427317658288776955680512852841387855515134941354740540238287344978053385835545304182983028093895688748686483379216541399146349973005462227596843591950584710010125322407262136654224471180469915428751896416199728929889058341720708338934203622537877626377052188717753874265600660655902667467217279467355509896594638905185743674341785842143649385386648859420098630153217376298073208789459833136201924471292534867574159557373960917068933164474400842228585583069576655832715764876734374111103160501050619897044296903157232508712777407242220876681330255488951793898584119230957981119457594253140264466107952928546784110626451960115429806491251507180154147335421425906907515251147554462661496870491650234871293480749400477346042035304966268407827597811471103143796464244179753258688650962167841471300122271885376133714046450705160834532855618713685498771931856145080993045430591632491006925191130061355460896721699937943847200888919129142666079523322385499917903338153978565726761879916423016657109752066334234111345693988854073936426435089139991869255670686220626704286523999144690152896718294948424805728929364337342059582020276266156445399574291313779476313569185531220454831288061519667778807582320362337756418460261049602985831699675480830696338462083840774824859589638172366924240361716217705716382937648024310977008682907842439225849262141815326817135819546533335604948308638824682000544364064038259980300834857936895204594670102385416707021767849423744967857786219488194026241885821561714298596037457742366198888371892446763038940488858298014872280445794361658650549196221769845327941969147485261816698452665261308810452493047365858803299753560401027844194960311509419703738696060581501866347046267356656968833922266238020015732041592949237560183656904336398308117998697144820706273680534801848521102594365798463618771664877517704254747861220431372539326873724991384869029168817344393728954329855348756317972014484855294358488866123318500055807103283451976926510689866066211476601914704431306504935202864119743074224386875731878851354947151667744209348791227717034579642468387873267876580384724926561768893813613712873991972844136127007240552533722416316170998275145382036370921485345648076517190867580157055978843427506293289007917043376086381668854962810383430752790194230296634412299302785896314349661857376280106300911180973446781687624559107381240443585857119524055640845099739019700928627083435146756204525812925017425440053661082463161516439979956792782759405698494032735817016936890152900418246579212600611861770000428258685189326816919717467174866049071351538037245984279918787877569727667404494446930506492996804180308879795229190890451591319781339551970086370014608496104588376150101024751969697824170097494996966130833800307284268924482832648047351503463668847635635577894820431643785562247225736022202439093909029582989266986923150798425680999087220480300756420120751158235769467494857776642268069636302179185758823412021317093316538420594624495734192124582250730023262984141103982231776570399664825128246804025776270440762440662926793664074506630798936770964856830121483900178548504832854583190679482618243180878688205621583578828656203901672546951712443221499961745964515804347695816487629800144350236427396751844592452300067456880061785008491978481583409614559620255917503463868644726013498630291975193194980698241786824035198058793766894054835090490109201082577831349184533935907726704695516578335089731175978930834765642328009306414116085735138462073338036619505330129244237794411559946137186435273847859916007231231904253813187724359778125389462741732418610044252283028631768209656500811635971278361963486301010566008566556981354815497202000735242213863436709976371969342050423174115168840248516351119373991593947066292303899270877373229804853584798718611366046460822085975701448070129125065310184710498326533699352257629856252147368382453308490141162186075011365494457602766311255599072143270694664364483637056615458372468540401440957657516433856157954327039049371986958968884567150697146699946664239574822454220292266258400193247249997593312959706933043730578157049421349738695375807997959489054423864802810119169797553736015065895363977561233048766987192442001888951516502408432570439434881758104080406757773849089426686352006057996410134493149466057079077045631441495845255002150659782876763537989098912268149891319485327735510293477099509994203757407099612985047298454176079895637348759171564187440612730989340955494533778942187467717660812163254591496536382132737053968934555856905469053318586011519361871016054546825067769113382357556197796032810745134619974305806399480548739345532283108600180186022052084247475211235006655315122999450871907544801804851812880839621766628476354718041694398403050875657251098055659387200218667229530644463209768307831516527760190826774146445965918829179684519979066864626202547599846253634375005833208832713147615851088699572077505744859364847038864350123134774041514639486202209608536039496472362725622013924914789152972343231017255684412270946401057672477341382678607756951984051675362694253285938956730910156573024934824454363664698680982031911046030118495236095768140535100184078021108567833803790006192839155221591227190076793418838025124523281695221712357340804844282744552702053687679097436776499965820333296453270706018744038640039341321960279563985889792340062353667420781670239129538832537221909622379232883567629734077472365197766537888904258562903097130439674187857898485179148061798777219663872103836900167308266629793035819708624664600354778971509432126424094693186883193612687495191581916043759230676647227689007291397544156956758419107142827029756137513634251152688672304694437373747615979180340949974168920617277117428101927519498474663289634860098762950542639692540497343213625858627508248065218927871357333017791680298930047736783429310689336955659732937386664478033715319668256516073031985568456393042997542910413825969811735209790435295070882281321216460393510958510796294399786456972013167417917273407587329647937630498161322061232452344890319485610018280642311243258303554098900032700139518370830409608873408315730449777367535297320747227429462498084457984752584678830439267865733911291582523183802921759154369484651120783339202026579721649812775657595050296258984391762236211983838077402004697399425703532798640637633603276829269167846684861727769000508844393239406049341413479342718934142347603795563084186232128842435467876426016212819261736491018963383969039065640886555092030246397500260526904927876263366565319713817089360952793114792142763633762120542654089586077997400336598509180827024966522887902491255933496739079411297285588903458778133184578847106657294657218546886406599069757571657902070852841037752574679998664024041630770911878107796049068326465230886461354119610579659618211060764303901062938362290918832818650130979570257914616533906467500483577173347935645971348319935557509701310864253436577204232809962190710010563680172306402043986730791843664498789590701335875650626305834314159654175710311874268599253764668795793244341997757856159763871225451253794519428443074111617450982062221571951713153242167215891584838047232303725271735410733341412422305465797407999730125745961720025585845161055673113231011727724021068329166461639026370011151635400990025790779130495739516693553068899479322324062524814561917978663995408619262932892773865275529603927293953615923668550198270347269789737698986265731792385610643662983406379902901962997548695546578162563186574131272682174438086409773323150825806526895929781681944549091421556491382973295384016993706733169529971625179590477243822612943186638284583845302033724649570012698776899868519433747643921268369837333104672736923209157765842304314357989661801788525298995005557914392265742703777633150782954716486028616015918274959697005214171514813097879661079722984712517754905297910272179386456172625904637168614482714549620896485017594554185787198510953932648539600580819501427835252686857768496323571056308770040332484183876125526210623700985904015425995707673049599682163588632740105475506982831631724930580204421753061035182037885732576146649727278991212530012117441670973161445642690587856842383811055670415530541755811040508087545133278206073508379768739955567142075490076443395001379719816486281940210731405528199975760768644512435502824330584502526395280321125895261913907722643050550504881922967379799161591049423772518001410998683715735138197465874573588742893355871595434335289726585958960203704887768958312308502700549636951286505119028420677944399229164624454348502795663409229331691444946373235529694638632683292403469476690105024880086620612118517089821647599371900706939671057460971587323979222693574793497364645611521189512724978361968909549351113637052562091653274644661469139399138103510243663497465227986729221492441047812103545525483191615623088334332883188757664888364615988830182249905281163796073341549988577981244473052345777051591749574678525982949281555098191742138547314750212741201603121545502392496538982536942080822390448295824283037125633420772789390768602061457035479251279342574138429358485995376056497988374164298781973551561948705800007045392443783625562567379596940052176887464346959368101681716588856641995507990582623538570557364715024880901069214633618000951367908441930814699563766459569155826698479572343197827103373694995101515701678349230776311088298992560057990821228817345793321772155051006398333334634918619207342682849345104330339054142868618018401662823812142200976911654077687514872330342254218473529220881516160588228693407970963666571846631109356575844553486315504351445641046201380737140075265594127270170097099775657912979927434928166597356779366923068039577628767577818632893666104344683563498546097168876946506673380919886495772464071280158562332232714520538348443273607669262954897700552950065288222679903095506028440504072461850414142722949371505151793629598280104254830245913147447904585824480109943441988942046287488372218852879473569827139705799547988399296410899290500977057623238570674221467346071768864219193416664910695709271001351556042258519393974128050683660167566885184220138440173639047988967171404001265365767010634651100508489997398294455126721400759295937509874813412602480684168950600355543448169295469294697061872800961760520524839811141255339494164906820521017100207882180253760049275824460759639909667236094645461344451983266302643818716989960562633868612601403341331509370786919825301785960372712222549252934126535304832876513098373875854545019740926980290738802249561200794741747930470239302519694581826123430738510537555061359952950875400897253320439596059827212964445110098271985190483824036135601850866526913950759396352524500858983285106903196380255966779604656052817843419953265048313776834806728623048775980615399373616673053783373467354629426821804215025690056944531424282874656266254079800754754550935020471465089893595311994242824185646831628904275321109368121023193875280375069926129335013460186327220538913532001046531327382736735814292131653005783120527594071040219855458847402136826731080596911786872401802476334523527789143265174748535053697330694408607036176776685802415447289293645613133656407883896841080504138022429225073857596377992328909173860488040216645008203900748287181561509451037412693965267839202579754423072480094511940902945212389982260252262234619531910316014637409708531659234004139071366720664457677211217218793816359867772773880775840431913701707083123215143417584115563361089682073168746510517424806056206244146699930671668066912000707815295718205944991254538656331367433649356891765102484802009774140850551669080665705248882526818898024989417787554791877510516092281158256836224689667346107938142654509964236140231076840517982670205532660744939252220260203021983587742440317018063602034974165104227477708846276012052718577871892612275889198426048989309494412604554527412053540128772939964829485751953437776382964631375510762306882177733076263183150246026808365424141425477432661799268249262661353817870533846404728740848490328836401429996168740526523790386027280226105382634321564681330889846285959533673209957304926209198106951511404067424596238471669980654724084599234414210841234251210821707414457575721014099053711298391683373211936411737647276365351519055088491988321517083656593792006897868122359941115106650723933380020664123713815416231101707863378236719869819495826108262424388243980016744074695434550735214806334299948839247988370017065909075434363408591720502909501564397600940042156552841758546091970497663854391205373990105552124931650759706675805474294206459668565378085267017037114877214456122828998203522745707362363272660696555740134722422399349252097380071895919220899783511828131349892932686082396595825488599893111638888824921558541792968386101213310071737578207874807039724463707077220746786508149738465231678047598915664912780243067405115213739372720823203302747811874394930287192468394367312079117052380857248991456431632959809332164928251844997748916507536619207089763089325912292927317539611250451272121627713007874853049724650392836514668926948914824669319343166879065585718041198791717034206014273873124771628690569082388879688013226173746168474237362173631366270897807366513284588563782655668725851711669739185627764140767552388646775145935457319082749792372642891907455765844254141011567691589002534252900820418574409430352521404164813529637056850241168652083511542983034687461395633259106744406315611753508164406775402555633799378798973687134957386583162243725876783619706940152425445370681493578995846685790053786826427383793085016304600180335037288610889653283715396614215480739285751712110341192401460664675359861377265547265181166080652545180061364342025947792797329576859179240498421313951223040310722721717692088767520395289475007757249815015134474747932672142284796159679566521544167436866842922214538056205780535850815372272697397426190394620417363075566179072215572250878425261538960650482281186712904378604070881795281511670612161047914177271227487237813952488841345749304740482188968540626192318376473651449102139082250311294728222185516463607922099839079562953280607934518493535083688429073523461782323429759486200914061066072621283414138893940091552447938846067145400713144876457844548038914838651582270610644060584485936025310414617565783432524038333539539261453362858831313432630367698472788882637607600817125622489112508835141694346604862056573116377153549309928931871726081075411937433816955414057400735178649722601452468756110804062943043123961616218475883138945455019724858042554758023329426370457954463064676396853288774601851562462259627997646427246654903282224104854627458513107887823939564343491519473411763440733738104793153074115918197516639801395037738899501130110493798087300004295970082695131597023671277317988492723971490394315117802572490717004360947853844345295306329522993899395407886977958481868799313804837602606039951875812234343946337264567306286768376913504470033464429222225889659316938043057262810091468748703897664438375971231370391766096944554513664772534437598766224007152012398312013532041080510193178691032835335517134386035467656152730239993583393030790652254761364022727790936560742027714720618702498517342077189553140229332388916933446265613794524396073242600996310442109539931068584787788663004237299286135306833158516994012429239625675629744361743222882403894563611781114985690896743575306596713309999454751338227315998490693652251441781057184093373709563637906836548093548812282876458170647727203313348065621057967341409966812678218277717837635468671963262927893245141785733959742084977902559195936503266515197695776520893098183053454689151369532461362129808535936132670206791255023163803135970235581559596606956468125537078044382397796265777860340142480944583968684211504897236832076519954403439662846033899839258643757680515326847810099525549836143879813505407384399551326478001506998537029193188309637657796507223647492168759068012434128140931988473950235585923058853016815452385297323066509823971355315449563404104718669708789224576191452672375871995619900261337648960648053891563695689427056212595600194520972164601339234444208002521114432039367491183211085099062684664870448418511870310860472761073915732310889342866247245074817586409811239721311468953004758847234292857744369010705300963339405839790678740459860269316313863235946128650589383097446077528288211092007296534495738293410125644978160569856100754454944051691729934846550263799038569651297228883074065299938403520054583972166558415478913677613334389434887124607819553294944022617785040475719418788935379802904635233073763139646048168862244613700972611728175380681641132709887754824342029733973502841367829622528132358209488188344945899465370208088256856154839969673234974574942076919212946702801109473019318127169128179364838851025994859470435467476799429754091825813813861092534821720425201913050019757585848036337700915927899281040788314476590130466748466603195612511505539405939624249342571459614133973598204522195699170263206068267686624033226683045899835371293341426587414171049275895828431306905416585645598836172833145510750123056519042240686770510639944446409388489142218988739022766610351226323138459621295862698054780790603452865934070160323874535564192076890665495791887597893161382910351466421994583514685198229502629617683284725391260530016107888127801928834580626286572369632879113603854173535194268364232197925324222581882269295507702368393354751419863691321375334860365374243587043789000030035165926562312906072584240140678063488158759113407377475434447139102006769268637316904629207255643184576564239416154346310520580403401575320530590599852269652980084009745084282310345936027116490088197878113507283071108740456493232851336893731608498713348406014557848453821412240292029721524316916906608117854455253602281434732385783058688015026195647037311950328799344598267755950342769340400900826123269998182460344786205470113750707553263545257833513933319510629094798943297557723363427880243210914135064823995500254731669250140093241389548126803966322124653756762040073231895508046888663752688296240092653903069114114066752582770752928146736980243615173004991151225091679588637706360843904318942760754163707987847603720293337350612635516796494404019194274674574540242735933777631478090991340035681507514754811819530133693280233328455779313977799348286231679248900873419709478574061447332045593574157537583881423046701538211587118366529059296214086915809495777474678939610128717674499366893727831591078928155463209882033802127658758048358192776354071654535749530908726822089480781269843275665123068553110744400684722255012403869636038122967030058093131991072254846666654986566435945309555527861427525322147040784765408541483355227088161348789186370268941759279723139871080846531839236923188156141260652207530969843099856309399618513911576438697124548269287945816055682341769579586219515421783317070869545395274920878346975602350691149407062116740482098556778683143195396642981993261798909309201491274248666138288251500620823984478341826668061813008169936338572446369406907364502464457720263117230968746521322686665364172678194190818112293306800044610611022088170465591723389890399214286502601443791431378793049852903348258221713901179810617805377175718500624486517889842197869604093961768754103721056535775839006520087420764040324911197469015143242848341571814715533298121116396592488279929942972837909319013856669223294242772600514328488898494511293298615776575226671106277736132217502579354811511495057839515978447161098822188833404486945846890750787802896988151895239346493930044802998825683080483185814127897300015368363083467322200943329365163296250251300457960464561703242426307145541838017945652654564521168336171318439896395742712207793588317027567245293000497748398304738768909185988619659840667891690804975877271736212359280615198743112112745274083683252122032455440419174641412578817779578016105264312781177223121171198250913775357630398182693054193878574932302650364286117099617867082549934074764719825279815227108727964569857061947516180771956552446035153719909736045082473571218290299681527194542246888078760689528549678852368264743702447089025058748122595687264854725084903653120959635032550262566539430580048896322159449365605421630433330313018559828342021792037198434706855344323447545112515418573340435979184802597872976548704281427072175567261739163658833158281044827866260598361485121294711207924580847759506165678087677314400133415885947521036347480625950328203327904726355308598894745139840979744475924057790947457796256297859600436736507887559779326699082475565779180675031101889405866167743114940429236997861267972630483881828021459628699825175576512162715859927585822902142787758495570731452148210558020598280082631145324012183124209689891148182828324298006155942007645432136325357975755023858490568287613878472680151825736663412688634270413282255508344671877333841644225101320835420276704235639704692025820948857619114406040643400983534841372109302806945340193144196558425635300655473258376152001688281974091621042139739126933552674049726212169392030898382551681804030066420087301907444266260984436245077288146438999519692702887367929551360699493899293413547703275356163118386621368211236094090022097960863620282329901087141451545519941264957589484778703344335119621803501264693829071319824095817536149981711019162974154152966450742158356888224881419589427899067126869133832506547259911295334999069234286116608048952352247052546737356871043974785907539406353001945830076067765457421413455133640763719879034076339152616865291627642441212634229070335077269698377290928547684552854765408290698244941369841734147957759087271846711083268421038385037665590901130793044251415016742143998440754891731318836733500333573395602483047383669931327165280176737980261576820697123343449670068528070327111362340619364027343482118871465741149383182546722891656349524222434751461338226769660393663029542073348750285144460979902486782863097007756942707427468733444840014212868876173103936274037702049634741941427880179357693444974789908341964656283394144932306016876900678993415303318373759172176701952154674078208908318256515721763321686626093506610932957171750197158402423815500572170993719319775177162625069010382563668531301586600683064503922949634022339028375635942854161776920383165047752853314524664787645057850758361757701787135910284491344708888568343194257706479410074475775610948401549142543305918626040341110436429708155079888243978296530702915388314630455723716165445169773503918642601165128777121872787702051398683757089086470451744995999719078577806797136648315302367329561892521675755250809613875320037099786812214654647168399891153775601303993777757250099745154160342753689048144671712616982059590828401285944538805391131761377260554571620498643601505512126498492686966483485353733809189351246915016693822781043333021717366212052778302006561867420712173259370060535851830444867142692486639019298206458553738803621639944451019285323662643894898311932354500610817385675950427991427070547002873543222393480574854576838194970854382033643926765763373565498465056775858136837743129301057087182201931841171237271458943259163517406713025801602324098668467475256848741696678309224084971361637138682742696273246380104264708071932339486399580284616921737797143057344094776842679837157903126946986965058586088163052425471488268659744446305611358129670576905165210300516043979871843336106215451701238875756053666754796774191088053768553754217188427360822511784122966021124734431732814760948571656983481807508512625800762146655584362020179031609410239433312498408673661287811406531767117268946805169733048183383158431110237699369908947739311957639648839533121980955808735594579988684849887991650112582792586739588977318371947245185409546597349534609646528176784645926177305478697793810110399624111349342214073649248312575336834340169274047961872513164153212524521671322789181881581374343140826893135885611702516816668532658250620507963457889300761107170258330339872967743525437071230081774467008873222458510264367977619476353123262653304671618925732528362256101174670089445267330289537402102186872379119843142187107273785339115400040556886855426207058707896132294120544574100489141918576248502557433850733293672172943781655052411130901840645620179503093612358713400867074745259078773439211118326836246697281890564886111211408789325494136090080725030165818704483709262866517903972108348940334987414451848416908681114789525524514547138557297975934396668245055952546590053989731798159424670522892040457060598158799249144153981633320103496703096655098828907317898753283688879392447782659102692039989101328054369609507942966668511407762379102093092652612789192456523796620148640540475366602243881263925136455195662353762997774702514660358447112129836647988469948278163757134894802193831839248724149905326919769285862228997948878632038572171811440496973931419262653628945136021330478717629679837423854102909650095659154197754744369828639519532593329119607583337520752842670049772172084259524776321452558107791176161956605801726925434103653423155767934009206235442735305585105474450759665329334383515465812452276343498724100441848580538092510512893038977028039447180968912452373483684937723295719929273574570701275531768470726608814188715506611794073440185088367267145105035764297043173482565249613519556739231990252099472621618598485788209602712897124059790470706993312306010754427463404255079507834361127259395731666036508539194078445916199237468344885895633744897180434675596142225328985509389171006187192655090051619180380854920335195453198748073547636080291850992924137556816832447094351396191878107728695073591345646908665502520959885097939514691712300373577806410448454463324277373841163911533558476063924864598486127343461254124065851200135818299345194570961264844751193869317261924136081142237504671914030841492165246388528636228229072589648813903136522453504241800605943665317628083568693791209413651359080382413754528177542833837989732709287802356518228516230910158263267328627031808856181204874027715695648382626807074850387117162040458679878507140288760959772513411416059507304266442830011052585378085027175880989895186470458772885947919459279595976912288222589355262179232113758441494033617719166026845606451880970157272814294774242786976954519807129499783652289013460132323088021873607370330750136275034581052765806665143006479536196599434099805744861009040854419050047447201632522656497280008063098115840051786726946038267498035149999898599994569364573069460286616921431156160659034917744164354482216522370729325703361100952274651313201546901132338998641707744096524723586716342387116900703402488442750718506844907923009818160820173974431554898717286187981045860821783646098197951886496265015442068993686136627104933664725806580706021205030614686590568874051936340285454492811571815265619376956031196096113057799516342734108801456983048257568826281383436552583642095148943328477506468339042418535999703566374370869387334328774680481709224754808017579604096541835329088641843230180092550295283923004872380526307622171652107867952917361217823350898182190304518783130937800345758404789661894308114699636932903897354531360563955132509102716008673681659824276499262205120271887434472513375426323954056256953562677641504548087798456111071146827712155816407263084971476302177438580208513427465652405081817184803681160298326872082862491039325821053836864291541780179509894794684565904916513690659468044094212435443133441036455221456416486615217637397681398303070441740677064052288111238942009767818979255901980421476743344668048115631379098959104652631130843106322379470876048536138307006299838425869839398063643982476650248292185516645943483227652434673821998437333287098112735975476605353122764482465019905820480150984141296339006340093792396261403017736940265679957466925358743682884085828374990747837403969963015876922887669685967713960146682196065340579472814196103832262912214203198426254043155988845785609899411471484764489305860490897008410857537335537173600488812219102720556938270762445715597862495978373337679154672523500308545810169606353921714170998013823665571114451461680769101357771293500145148789021795221849783050003106802464905333015911658875233035917270118451468477872539430493321910690292418147182604829147008629497382274589114849950238215222310691484589461740781982982858436569816778785567391374141455235598957561236631179780716393928347281115758412220020327350257734154472893303761285504586810908526621734033764971250841715513794286749010420917419961094512002720780875307286501422257882732289699241742830974704160290269629870708671116655280069944407338124297779300553752670678678571574725839018199580205983256301463894463277727130416768891223279002251062212391610696349775988722763061515725805624327044170646527035234402041608471125128134647192372921881312064414912627962795348191385834819149339876714486227537868850410994904543336780493991091951019364789919717859794205390757744808974841787584021014138351752438410226796081260457282707949112246363017733235892235325205848351893693194937989474605199478650885206035885069243648820498658578329754316869637176310747157200022710102245848262280075469124892179970174153648285565614670913583931409935206122089515025929978981822064431690609159249223535852951797592443637063739580344708991663793112301826246131127360237108790903838580814835170551350074232072927375993158244622548852392162716637510567856710274229874720282346433195793412451176180091928431838305816604323159855645203217316954482608781513316653145826634266461042505702265501550256960835274264141872581842741707719707609757019456151824086754246684119471975065256967890136576481699440887548381035376877487305644003070226320794008956718766081999191285042030301418636125451347232453439478574308385678750061734808724028345649688850075291622248547427539606294796269620787958520602500186709737399692736826201122172335846982891346000401481124342494369683332764732774496975446850651468131143339858803749881355129429889162258825790149015397037272814187479196390330685272640502514675865426310412229494442165304205024291932633391839534553556526324649263952825717425877886834960455582963183984789457001103037295841808626462278511101166807528424269929854891863321116174814525864059621597656163607638632059903831668896805984992235282302061060248142367737799486318866427201753866147511688905109753302339957522996360685543553827185464231771574081968236798380323095543227166449520625157445379007087223875862170924835332813947407520177950256230988935117286784825615852807342855633303772103619965292977073695976119452716501008790279194444330729060790060512571171411573592013784401882251679465387257069480212755247683195262411107743767761677273052945262946015833230406563824323502395839787918436487808441184140842285447346582874795838409849319902174548456883611293736858325905298916958423945673064291671591415925246356932998421030411116395951864411469409467660354318211586781030379255747451359212379028668352906066172699586650832513370752167291612167870093816842585313329659923974541976004383530408372488344671413741608285787834319973629881512657618848853700625730823532413547641537332765122421503421079411348823250950324148527703947820429431891113302516253841143135819719850156334998356490307493972109860976774333708123222114342738363768335695438326772327492984696682247533974960184629750089958477749402309506198939374521703223338363689108515288870076631075609554277469855155926385766305581691722333125767975461196608997429160712006682204157894848547465460255059332020147677547055442672353593182345565061067245716567154724402668491074205426473385192786245014228991515505602354496510768450859016369938835446432637666757144713830796040794411976731196780412337680840736274339447357548675378848848952814424499947877183323253087136985913605809255190085790191439592402088958725267015263629340934823093089457194739973097377699843571444537884676900626069077085529976357173501870331113515066606734954794410557384591233267297938789511746973236527674674455485970595840438684688297266875673700651529185604858727036699494647869045023920071585195941308864369622002533804785732530436965497504261973447370074846040729355972064210613602310159090996360430521990290556312807713444468124106267561185475777060482332382945809844670934812837937508394444011868672549161561439235771813982256616771685445365330643013046297412061189230092071126929142541260305012299022041540760414721901972471777639407881804404871296274643492549174152290809618872080788811176893946678163570833472528598061870149504068448467365938656207284324481045334621435678076593813806697610770174322003464321242058088404667296220887195822918328334360342508529648739807629103108520996658752074491697533310456712580212738019413815127364898965525756484210152207760877084261692149214453144148233930879338397941335436843213830692315256714213998655655670159710389011542288097492273180969662240208426938529048119034767213446407363748591979005295561391825003833272142894963258164546102947479569995953382423698365768333609094935111436296628675227306447998426263676675050465593103119685714823379812480974504814638871056528769944931574110146345864411838931974748247558148089745582819870684237024332193207097287373264002747574107618355194587809587459075829519684583907730977549799291245018165991507889091131593294923845857378962999741471307078154260194734063125565282299896300230788588702109133347613224785906392774504612943817030626060646848728249956140000720244304824086250649112618669698701267691440264645845136133877553931198426208770513203019313618065920518296539339363564490899451193214539940386052835673550589672967224709737445167118994570032316730718513582298252829250365932466750479170106862309337594672296268550453130359998983093664101511463560174534784835686125619480500115009204770069554352490913205894464547221696693064095969980155917086512762085582262000167407036445928156011718483305141857626383412588677892028419073482694682064071757620363913060857198387088741958578860089277959059620339302213262121031637917064083540252585738807289997073729316791443239133614784708595069577239878914065220959690886792478937267800025736731870092970963778503012505026823619606352935400222912971757298413696447296942246704190433273824851964132151939231155275658289961187854795471284680719134393117703693793693621654883761131598517998339477608909251685215168654347963918706249212796492039932085694982484053366618532576878388950427383580779076182134571084303937261010064154192072290131764755727393526477034892565173429477636195638339557777774318428391103613806274746977289871911030468060992205288576192808965257991458647096885997228853040203949684592382230563361461976021097281060406307101584405584360144353888050716881393222526415208500693404619334999561302607855210296477162190276435655936141018346193624985032927282245932064450916654031284800668084145493386997541072937210442304590132491211794042691542553969053571712850316915632111478497803539280272084913129201674220932808576498151266038929888121963009339804101413047258741608523121053541179156488541704336611674068425298088042970566911924926719391123716338950212119886802972337900546418235745298219983200930699471411207886325590862022669939557696982132237218816604421736724678298791308773000114811322993440208752537094606596438803466740772498463956302450960601519306847229157525308194291110080365069611875087433205934040230004562953115839846870401894356980831186217428146523741742141849676605375585951855511755965285051557122452371471900024734911449354363581525917146207411209502299535654101887530056817004730729456979189826293387911809209703961969404076064649893574553311374098827077549923468013938358535202637001769502306100084831072196426127885422807270233837176323044902576010144506556055335356686642120086322185104208138491638548673021872966411645752049902056717146493908719976565934196567074427711839594429456521170591221307777535757957945940887657808539496477296542544322809537559566152550517217248491197430101145065574713339014185905261742102177258844830997886272093605766809702423461016152651861792800751150809855085685954809564554744218587258624582441669120329013208010182576887866475403936974055405088196636774548711850288816589756028664095053894953607461149495354002807561690039325229231478314224499036770988122585883254632443072994391475714056686837495517648142661377940801908842761452740582938173360761841759598192595043744812188828659486241178306415627799210717418460537302371225748676842913587840772030444875486961736156726289541409280026896027422523520186363772155681139396482737973051662937449155141297648819177967671366010803797596341282202041586523739552839021380958667621179445505023724226570907290167938060884067286002500457540630028660270636050284709488206481986682704311744580602497897818089752511778356962693354158530216226083234861182122903643913893997102841786578560406293142268524911519705521650049310372289905319488650442578627530902650585361290713374349721747522043792146882517560519729276995681686946628909160294515505988972504698408931129085809378764013414697639747466547368292611862419413292877841658857578034421024745365470100032223718412540756356574840694872832380029982029329607702923104173556965418256526184482428358165897486366702766628501312440672240863624226680886613226289298702006199572216689011074473880579998166845062180962915176142522597633481485007709453968875847247331319606448852179681312474812713629536617518436890004949390582393940442883303787235353065547178514552181924121181652617017997340178288673245569155310371497084213169903254411515474202193158773929471801213120808882927812747440881402075320324129066967216042245155944505373205732707031023239493712026130035252708574084467992199293655718386000340060671496189767182086499360662654481995356545315239694021080035499451484984827684845971483777153640762827488897843210493419336655871812399422769543156082699539505520964521154866317089181859254554131248827229592363021433511846576504871382230349070102286877429299413686008184544453549747620286397631033933683572446109145081769747499430370264236125181797048045519921156553634644210381633301428242599393089454945123091885531714897135231932428544119750658551547301007859850363998624776382916475062678314964658411849392638636274326530037427328176452435408752206199050409049778391878735548626743614908968260910478874719206833522884020834450003507405860984202145812423333356001993627053633514733301795215646352165369848818809948678291314792530004942600970031179677215771146792777473687677631015706980766106468148090862323171287446231069207161156826764226003673613347316527782296686432224375954712479157471752017876998845005070513248997759669217803286581709784630657908229680233424810310225391843931718462661912661569212396099106430528623305474795384463830751503343625821434909376966662676257559430828714550513392720267843779347887251340066731575833633934574464969478138142539165721272813356476967504238607887082578875534562515906189484148072378874273407391786688176922604602497859411421968839478684169602094634309903459857807131699629525424730098508243153204978910489912405580402998677698606161206440164001414686100577733242579553695985729250896471057056038250798572729250728399195994935454189870720059706892513349325563336841004756012634121949938482127266257779460873149020260351150533508913416137125177439637796597126821883888908616585950077944132529367893809518081591597494752796267832041779730991599737336429826659037827991857954786901660437023203959389240872915862341369293055895293921669628469537368060088776809077609216079271776320576044524691400992520831475778930997825433438898603727725148217099856481149415649713522918610938667257306852095501006535575644817918084665686345102044274222671382079810169072009397794160086869506360081904863791436710041866157807120422805228762544765192637134599226228593950078132836508672153742346596934793621890286022718930499345762817530980658482787652808882464816948996812916757284442918568291261721191269500777111537031923456532154662235211578016625327745045932251511089294886298448506612763835759950477772973766491676164337692430133891894855681472087224729014114596501473138335997886551881591414639414302232356207782898340880652742056139184980001325506081448611849074539141157500007562523653538236530180675716516313599793339732722323452596004293994838269425663207049037628572123165018121162546715988835800009242865192482404052127524723668139430818493402060326561823545350917405029074320205328609976030416234865997065706934491962554775525904661137473509500655851302934448644498906004976730350470552036646459480976417940489577088946997177386036979272726545544064785834717577257304977096906427325329391147366627509858256538668434778898566257147902698614656830484845953901654997684407523430938564691173136730420136331898376490374755787512045232369699826713579510554677691669456280097426769715908025037432591086341845714049758635121017132165983703593994661349459867523317906933241393380067094246622675067528470957934935647894939912730923616386189145166688848863197319632740911763423274024641125856181586054476357619980252754868163295870160755106745834012020866952141723056015077745309213699916654049641460886500296397813397273215948271439105259789749452972260878485625482528354450055720891853361753644235951133568097439920968344342912277401718538274316156075734540081373416787526706946011547057198777040092058669321694573824396786615648233845403745627271143903224090499876247574596026233059388385645084072764467817458973039465419439549822967150756681032764651505087053054744020883000714116001907002946696319984404897515478063695387340310849071579663250192039910544277193593117409884250686974002807500808152349991174361529172692763178869633303200702869898811650825940995239603726116963426005485900645485046693015370945628339791079069196506097639184840795958021364236159671957820379761269352345275068267163383061710149892876992005956189723522209823410632044134226923869175821945011489460612339846358427528590487774446916139859588210023054953804278557551025725115885264580122695424145719725059583184483708886814356147427947442725259365969872898959428379351402924857181832289338372249551596243155151289544850849966174242768123171972715866508136156550284832934085243936649121023463428343843017007516799218138183517373173959504272550002721925977229996805010659321869153363335041976879677361923143602829635555103427029274793643236604279754224443649525400262140269473822945530738850559054750834774876855340502996561798266255354866816636571888716139673176015449617236356291465009649842981689450369985725896968771211942547805054622473766479286067636653463726398727565895268334426773776319300207354616347283077002331125591935843626719842743934432635528342525921074752868677710977822832878686967514892912745814046103320615657960568583418280519480375589623057153378403893944951629068132100844873404662592309365094065625771205581532908126808997317005840280270376097608618143962209449535662244676934125160838194754836085577108206863567383961323550778080619047141130898658649841455664355886050791474691837422720995937200574782828118458431416340045941879282349488140651384947595534180062346488183552424611041284701664483644058807370276941858264320118337221494256263798754715810573767035172891970847305081649554278609340291099295898683205767991990633669896330086099722279509272417872652047346816516067694814422101222030194432744374919740639636851064542602999118890813055843149219241870149398586023196465443815357211926630712103512729398683163383811662549152133350955395555877959323445006622245727326560279277587536207239401160034021599537911305171254373450372561763308479715344981259735715844763153486962363313746493473909241327084434385402320263844649427994438690483423946301129446502878614115885560165532175402731410664353266032673702690185523174850606534601141247694346848670926964437890807438694292895373350568801620382958346987070588075701440763641622142694091897154624497077978472434501020234865090750923122946739034061484017110483127665192763000429144561387318406728627491120035905989288816986697171395742344317902201250933628072611770602768875536596902182002086296346416789534361542414783347820713475192881286425381978761343138965010636477058197970079488329291412922662593702398511882598748883939482830805654985455700976979481198198377021157868870521440179580301003988074137867810147779195980732667176354819684383277591401815280959787371388235662303068843933160163266860979735595041833637853222775038687514691006520844380150033542131533074637776343711983057680698186274149445145145136675870346267690367535899772093864557278203703500232012231435105186759283868951315640397269944544561530151531264119466917375513560646793644382180376095696248439533568772380971617134998678465919011983775505410168720397208232973773043181836170769959624329315625846532788597722498953252332969478166538227822403068362198755825023700429636433225732152778623774556226041788855361423286212045222077242707816538828128684889187158517521464586139050600762871271535455181971618237728205368588108222843349354748577969097867953431490558312743484689022172061059438792842562003366457730336693526112381730102606159420881539641547912139326491685119592806913749987599910811728409959435308306652750343023376310685604723042116030605813783803395617120832646247764830061802088242757079525662304257425900919424252178306039342134898527556554958144775714103508452574854134304477866728027607825189814577726397579673006146178428400577022093693973290464454307139342852778984812486402514286697376851129080027658143828055858056546183304680392455378869577483222931152194713863177137207746011367220699597980274512836141249474212405706061102230624292107916691392062471227311183794237924086731700482927207496863182235756665739145633575532542221603605604917077622171161796571527710720394272902090798441205106671051467385387352638703320878943607633910108193309417304282659631543686776475087752056771195856174761416151537501357041371669063344928760705680727732316252768079404965521332016653061832898178230743525554816759488502927491103186001276031902275820612235659388086208726598422553598155094060049582670098389755173273823009983273441171029521413750550836858363642110290511598177353579851794611510072856954842696631389629967444884481096011853339662974721998252777789844089085267916763447272920839112957660577942688194895049770674507936796753600710520265097408940136999436228489371285408080826492775088220317105662660258617474497489210099915667042711448923912253923634358729896183282631173486625275900558537225962200759200442661759888922228749738534962291848720990056349060031648902158453774162522026931790644323560386921746218505409327069859325636845402959749816780289136352703571180203337491209399958798956420513545785870113769008315776370480551764085821935649031689267638083347167985071589345001739431801100856200746492381642415370503289100629805713698822025680662327764987202909227680277060516117696261310845334319732806752492353722679409149262869387826827389904428405317073313212028247159342247353446657204224258428793517624526337087610180977530617485035245691082151150512249889350707383841970125618352170081197779935187487064663462257329092413757114812198598610605906103107524056484635600947305436656234025162003527657097590933740356565711734478945291477722855907498688474973753180400913102648775783171574448856440049999178946124635356715892487269150860082371291625723875127159100611884853457923604059931767313629799499244533101445417825540443592822902329287091489766778466849363448703965551904162544448975770648377544650853055138235887854275779379908928983458393191695807497288024639173609007866388889544629452125261258236800162704602153118129995985601371671259270154888487111691129574783841900775641725055584757047886020332006052959578031835775881721123377833250029773015717690005213633941184582376937741412993499492170063666231767463339410415899657320047248536480558562436058618661831736423952104609453145979595546605275601807826945143717682553245577152863332943633963126725655188238543675225671358185417806690677412306460481589656837567100092375352855565491740279715430062157727523885190813205556124343915061526092577213361828167596695663491378783582240628073466197269913187582701237375247290891474761608745017642736313759360434277608736500289790574036700461518217350375781979907905229712351284619275263367405689561950142703248573760287162535120181200326357655396414124951679138981311504523812393414279339949508253419666912287805327790364465074538827077107844917578745477120699494947428296983150962414556987277206640720920212925030871026318489102377557444988067259993935002058716390069462266422583528838367594570075289094811714719612625846017508021848030209028953150829056479354291847160890300559711789532713368386388628625492459621924583352457326525615459495516461791510002747083829777989226147436124677566653300056654549096984038890938958596586223098905531883775112787116422482896041646806215936519103809342322401478233436948738788546545818753695594502811005273491016107965077035133496733550047428181216114331191231231461274697115453795558368676101992288163547837118461468489702808219168320005854194073293364018165595007727672895561822258212897115505182993641211247527646745763023273258786718605578853364045400289843534287433888819194021617041002997534129872236816973766873196068710139700173833862646659742378254607789995155750833838876491401152938209836825312346673547258116345072242062601147706371681877501544072347464754175320498846798522578025860648274307542250516756424285320178737343588382159466320614148516706053567323160056711788175738695768927623863725545278090517664495018683697685975019036278961517245264609063675893842126429533458629316039583609085377781045143727730605824615750888336407091248109362785977500641333005871245794764962183382029077383661595333290060644355700914549212719678560807208078026544943545931290413602922968689765115227029240466893335302256187669522934089538565692823188369372973554628411879338622738694318327889970323354208074263182822546602147615109784305319976628854937638950871568560837256241070226448684047281320303605236105569157214821809878867030936329633752823847857291493855030579782509304752879847441191590092290330517925829183690377943830474722282183937701889127931898966790676759854248878030671212658203979334043093147200935404616852637700288828798667764163889935167419144521599316458613615856560765711315755509096356035189343791350703530601179870021891370071294905125563396850604928784343479794623770902893727562635327840769104070024395663355738082965764782824781947849398065231370993292762138920289459374302808666171136963613158962458547421078855984567880659323176380505862196581984013614729000076239832763634960809179327574923104974439439537603481058882067378255081411653060019576053130226712211621056004204772517762294527060692185944198521413850219737572056310465856919131515132420130744980897992922707158020046449929059747056700799480725666783878785081380078527418288324681482678593198806903215594263305809097849703056778818748302834424203222789379135876543266939952923177536225229349881375617204362863746382959012940356537167863056511735354819608765123715555114346891126975544395455559999857834164646252330727254011964838004951255891899987954867866549669503680009281839236073471403608674364784357338331380498107618491584197290518776211524146877044391444015662847003877419871962020102560927405775442207110297560050158907945974084131190978262693199916180420672386254039742223317718183047564863231663681521461761749421653040012213872234019774786441911615429993893568481754908452599347698815351955672849588103931083856715016060807898987087746946362399697610830108975503846350454728302839309604780082219902610396451692003013672372183639784868932448202245246230680970224640552956655366956073857323940590823285771106625076513517153431231595183344027790148175755975053253055934820311653050677142939675148798621806204666001048113127094289884920990044804512572470235361479530200175650168936517305728195682315386627439771475201281996569228206974351047937915848723053495470241190761004810026064294135748738018476905342435533142743329439302408919173512356483827736663287273064816246278343635530627704764147769154054472923423774875027574402812064611521426452379521333421156522235326841167577599170084261450809016461403950482969342999774322842992803579103453799065513740403577770500922292112753611367519724195373956564864560663843513007328539205165175654803424911248343071294481822436433751153846520812723022395560255229640866802867377002842686169962059360248847180874419098347778813723752734641400238868143197459595960069748383553521605284153189054731676226282425200377853891953252369232593779579211055510310709026134893261537671857107944957122713175844341666994152138928058918793104846212583920253494482165496747118727027757805328853679196324898387219186595593505728843341812732812146619403036078262662656224762182529102492787891609939888889259228134170237157361292262480461511487070520651525363961748410307249295691151683863831262561880201527336586621769020253155690770656388630023937536266170118306652224696910082316386507682385601237449708851641155924695256204026485111146046573265113715124849691411415974775796149042184429418999591220918165479303293201112441473794146491439760663025979583713598406356449887951731121177157184741201321931167600370264522061566915688360562042965046134286594838112633621873550715268095658930420059923061685759936210717203358775598593648202919226135924709125438026421406464295324102528803571084291873863924347930069346696880671196999668196096357852259754192608144925566896576308603337828044743417642820311047422302299999687768837738857136024395153402011635000938174375600333597501567302851826934019566712554776500471701350314683118187074254927813765011143663849145646566784681080344639273150005165131936638170682264674448960189769851744254194053926904559621235533895579479027595685377776662966518861525009092573622228540711955101710409326230212181972455714908518227040898030247333201374618973902019667038512696465910760703863043680205248710301937141801852845219923353939543604533902702524073857853530869132276478115601231706885566760993432549664191233972177472281748732531943512034240699666655264306299470600705619546452261352107475835570002110627814759142951946798440512292935706263340745740240916728439799470343000901829120362340386185839474525759333854204771790788444679449038909158742072600463289241852085119188340309929197010951907536134073115328268299578201973412812462788620836621667414294142853560195285785373911833045118862341066802493697299839281144507558302160321877443803656019846079479820361268778426617157335597512177799242158136169910525611435512273464095708097219911824063420498752802163841798687045629045184583046317685175160770683103920106088542173365972900938898193257510648556309755911269016047772185689588017413438536976492477999976836844762327599003256705552497635716010535817217524773891987015412091233092663005785151138807234587244909094437335551919072119915542754074695889237183508463340096726385411098520851786406975324150153839255564766416699604000991044165814520572864418794084368367540955935291322443416948871499281926472397198791451567394235280078158370194604880764394045355450320204741985430582984844748694908171626980010569307988701694623226207854400580502029078256841021044617620401959972754262309199071890198593406649303371086232461824567431991369159874070664969706825657488053435681415542552780913987804643571318101471801635181606622233959991677585333276727924281618553784281127605489168845126197267863399204158590686642803888124412249655519716153559841087310661501672432688378884813520500022760615388304349263948874949120788721215123947869560759259212348327212111078303385274968968144388743457097878108948592314817001366824034309125555721534915462961868935942096289239670539911320109907814311383274400462759078615897675828555212108320044827238978067147647002566864574885381386119233850794010687862342471789217905730865590448362025950525130601076745617474639486842263943625276541613210108395223505779263138505338502489925646224411741480428185273345616605994239064958446421755153378360935161521494405474755416626802566108390620536236617047873557530351846922454325293342192594676071777373418400797051580406143522783110356583846818391508265011919831565062799024337645041171267254941875889415435333838482231916838577182787220764995699288172223676274846826250239002272836536713751963290948450469231911835869274453853778706891640780752414145138377385783961867302544037475053928841197704230063772722278676941677343375019129030388593837362238378134297691408784379931823331133365979082076996540663798973133106115470614825705836898654778952956493408283879948551859445717968531903221285176870520818359844756680245292938016146168220966085599647118419544938172877053720647192976428263605766795953208543847235510889297382027215190122595640848759214889222592785458871042830437873067618760384570968191004037388752044495471661984300413047735813711058684499382288121673889999417124278075088896928336990928706246222770560347124004280416656063272685664572223674424217954347374814839937244834070839534247375899732015486735031657478868268627311594029407946948052507533769690987168228715759536429718851960572218500852527317278329760116844378112693279496982933691599229609039591544149890862206730096399467775096476256760346297486917384174305361701716967634755957796394085091627806315139991985126341443838256567547662645188674898267164230092160337569131633417056914822263773133728167610439159937797712521430543082200573191140040959543262626067883707678142999158597318344396907246363019635063158437231667758406582658846166058533515599700540538963500515035519258649881846194683253645683620162026473102210957257813804560295985727318864171552836476426340441837489097388421002633175119480516300753251923940438479066823499634375642627657254831410514474118721324545974328247900121197232560126146328115014776850685850597845312858373510879534041359693703878721453518837318022316530299920631768855204633062138162501666950801111297192315333875555149163335228118480379800569093784568433196584897842574816253205406680737993252907476852196276229039459928520354663631057800245644881594904464867647965767498632627742485940795425381415096787657925954813360647531139213737033264481356272429394592413277261489368058009531080960229032217425302915365856639307392593362612888764159126708693449074762056385780090584416821460580954938466517906319275097937000881250442506303588477736036289407744712962661218951390507281127803144041575153417637777617842103783640221741971256487093925182034819072248752963134301988405625582176117834215701389039090698975091843378661443954507946019412845257238242475599516216926835318513705150474631889092390487374548933602232145168052035807750406165656262445171268032940774779796070614930503717438345556943133213749071913936742126739626596034150143914152057908056549932853613553378587242775303423542052704528851664656447300483269961776939361978987111668715575266216980700567353961069333901227249136482846945147103906036916172218890978811581509493294702217744500353787294886351393458118359497014265679249714162319230343106621824702372076019437552753709905995510403956295693834530974684175370971567310225866113014161957038377749789370522034661743367237060808545221645553748296159167734152895677785231458552359206493693901818211751446380490342113855516342743616786549239157499791447930164424681094637857293798218383676645636803659389766871147225797299455516638402717390957687324997911457049218438186956413952161711508803525876892607003866258018266693496516360375955418676015151359876625899688700629343344589538701251990119950340807427296087064144610675404923649155521245007327072315261140367702581332884500762139344743874726775401574863870938136737610599857743690684008095743452905699827249709221643752128862191141390957210153608139862458328498154025199905243329552115329436427677473738377218724935778686379263496041209188683428086926411048432412817529141708136653921641429279467027126376888370126782719920341358434787668326796524432942675248470088872194483746877671035867277211683249863372540340665464162174373596033880191731414831424606252607410379530950005192615527171076100812477492481366609569652098455216798754612561531225203138360899345160649798263869517258331708432038012233558381643903549384044155471932150975746627755868676033693071287918098683227041736139241225992175498201570415721521297752237722673652163659193858335225168323320177866425212956924203361362639855211771966153659563200402527656363761468897336732693460578065792224428000330508252808402762863030172502228952780224396045758302264806679485310556634000577411756299839371579981828969448353480751316560828218266836918935196201896856634972129071023768563864350250040168810342558300506210002738890851379058510428575647152790299377592827007968466090892963722402842844361085821274262268256976491945108849862294747643437997736021062562857008928012642365985241963436234457053168656463403157044408692751407910212631380434666547358142222281614535968695315592337426542134195776162637506245654606663313562506508133088873886073974245295938420868201788514259580744821875406584784274564263052702222370042898123517204073611599602537715963686895653362347900561476538096582921843376134901290174120678787700978468623925416115015925161403196446229109717074094024317556689918358804414580019419242384223479504916529193381082002226853447328853936534755637716893455738871773490220878810034957314535744723547061846116818889040984438981795189891068251388601244094162525577719818566983515757004215284120822483846586543831991474199970339240889944668503053116308628210899865372667725186890460066796161516242656162182620520836848190400418735962843991197073249848737817760968652344933622718452724379903410055972371450444884225298531934937240410110641783255858042748060257486056593729223268873506360282531647918807019809885937530500715813181459681466643634972236580745238034914887822633092653644367038801833684222057194297642674851320856821310184099253791070736673348400824894846723398185704814065428724168031527447071524781932092489216300480485113354857559346497822582245673606660401454403969499617024421232575971234638416985055388272697270610930918391033216456599742480761555011221484848121970397857398399112557746736282975814914400294058262638502027039174972001065258959335701311145256881217548886858625058606444703337980793061802082170423928888443010504288596487374284478842520400542208449106077137439668695168163643218294125544534578253552563369157045705778693342790318329827067130989359994831847368294318223306021337660012153793745591522605110158622388991926110624991347471297180381588708637695722259725057853055139529484902990759336684713467437127678764517864998403763996921435783733469880322489857789260673061362389185494656908713587452133739512592545547922407430456925114335669705109082647254243782907480703671499092483208157398549316331109343978342634627657259849579048595756919285546658714169477227651195204958070927796150880146477234211484821506247374340334471821988193445203430382662043754770613443777889545862192874277315555036822909162745387934053228513892803052334506651805689007319406763953945975395816326975443578973425814018072850762189428857980422621889222419479887070932939334387728165426859938329885452350106781143647610704479574293447562370400441418839263178976157801913128076880387855025844147112331347192554194459782318365961728634572889306821679977823871311779002498701726246047597229438760233101505747271685017795544702013923626545529638151985481866141641717287741818374515670252525666617923326093076815602839784287687567681071062504289071130972268006136316737962039757221073904940689897937588813894097172479522469077220560802124724509768763746870335051125630363183668120115565564294923527851177351443657356813789602727188777957577488900557171407906640640978605715034780115661763946322647161202672543760462280499994576433808475304992363729794617413240541728576316101552519148942628337032073220277233892065601460456932872221995101138278979227477474414524316344298560796700630527722344682168399976199433151788209233739508866838399407435380274483241577153677714224843880673723902606384674642007276583155695472971597497274012651322579175294682801483469960533304735662356174774688532694743770695608393207242446755349377257089329385086093474661645878726436978061900643516672178907179957929588048773259949148049289554779761426368192025282671536336240179553046321316426416406594752074890633073101902424018679381097352900109758355015515117106085581497762867615347629234910094549991576253135757919778490714697832261722654788414307189755048936411467798330437293310932999476628919419089805929567984294708341022156488789804513992344442915093444342336200056187630543422583828626055625148226154248768480277478074904085128753811023147623021179149968663161766297444492083929984688511334475958847409010061252552548982484750542197465597472646287224049878977022822394983121344134808793322835308977501413912251940086505851485960664565729153539800282260650776648666082717888377503642913197905988476913217119147909186710707829790207421172902252128878078179497950170691108643180345685364125306403410157440990728516085200894999640251059623822405446565806070837164268954823500703151491891804729924574654891412702638229395500967447407044850277562518903448499558517461031777927472951355386445094829597373471755177510872268717954097519294007533065331871698279136471509156768160582218086893468675984652932381806485379331587075717030210416831690422624731971876976577679051460023646849752739846507913397325888165228928477190470570591474973704181127212915381724943941930474678301496983254867010644071965058238728198331787899926134484495416211822829590753763752933829762833909532568219918365479913885383028740404745963765431205909728268486697004196630054064510633895073435191945082881149439891942311291195706497620218675405981613587076981445393777985028964512584128382136776946872640723558511851383540142810623598088350233759692410847887402465599209953394910959961686305710015856338598079895057313736122990910137988964586632864024936670932889659358290948888216319245881847910593007337840823497075739821856321757394996998390916137985448012207227852623226921025094489012610190891358085661461929191881286076712266359765595898927046273935729276314000964245868159427745694010811067243686565450406091526866304626826544041316995748545092898983262434688616990608191088945817518762840924180943481424302671785541469681320807759142499083982973890344580695584348033052956816760177758938982500654244748829146723899519345657006856058900518984542362477750137740975646070504005167444116017353827586658612674773681728601540132506922026111957196470827966337108241541491772432791100760673836962607732077309152287663649408750299634783959534243602847513940930684446928692189015647221302125469224980644262056424414869770388648099312275238394044038627188756678740586743482617718061765378941846887186615737694953470183335551001300510601467817356175549006891958220814041894329087760214754092415323933286341179438849499402862679841832682144480146581809990953867618147332333177320724597597084400293603573312119226244310871870238197668407958223692524284543467024520350150361491917857880243109956317825567323218337104110633382809916581937969051527954285780704379001024743130120306284636827160272723162463659907540250508693558702783315869414602212327535468151402124264394945319832305377589256021292353755672636410263316966587401901386886184741311748038458628743224680520026368564254508853599708854165101662788689631648052782849831812816182152448434752735813516973956992185490396664850346990910722929519016036135911023348303379667332266088593315127432990128214085829515053822127110760857014688550071057059345273731754943235783499323829662548430820401765503027846120820772443160221100838628277411383611462880847817653647884593737840725394629413831035883523381731332189491867835416809717338536071044923256493218900187578264232967823791066620022859608714853454026564960846945419434418174913422608029515511067778427043962090731121952110102402555105658881581366526985941748773739697735692659551906798091874576317833182087473032203037580371523179812336759865721006635492994837699417881598123651201584981224778842714326285197746216417675332696268662013860919205640475786819308935230676138201334482303685813994004592751229613671363520232420912171183932256193102615376065523746782970493450492179559067737481834169801105214113365939847808787588170346109366523326084619915647762986772374990316391828511560062842656610630987282646375732834424235746568531512333287653276009069492740340595379302896421760234176265898510695604458854697262881846800167661503718699259715390558177640520894234401241335125963946907624635507795021727245008872776645020749251738027896893095545526030445724192417147583884823940435693021169587560114817685576430276419470027623604536556099047600883261759014585929783822078043023749683706418405260526047295440583904804994435044362041437336828846884772513673790615444716622522133312366156667451264512207238737816773020885509096207804653203433118971725319598190191456514183900547202602411315739321597354429945206381205146256779036184579767992237782116003606312394661027717748786010891277421257543873686895496369594250724245902351671509196420364585897126088050492474265339060576585732819778802178125876113369991528054255306035108904183173477577213034213864840119834097580316914862227707225230911608881093527980015617442360845862234706963333337052851456111467605844044928566624797821366788431456004663424346129161647310759819111012658920679535042674097125100641319240205610808553557209608200419655267786042961799442023718074017860921243884870984368261761007532177236043611655597370405148867224712871337591453352738086062925560638219986582340241299173683079210096438134499765841188581523909066267596774352642095066858623049433880200434803019586224205707105213891020279189190160768501960122882362752760570416590851886732808641464594345921642618145369817267380923737139475875651272360976684298078666866964535848290777455718872349199623229601670361142793333155693397432758797999002217660347802077738042370636363599917048034556027222130010696837188400200676959440313202043333328577549296458136046386642436704345532639746609569439167119526550844557237827299010997015184842756221305322177971249918674227743075428009345231575685675663980080967325826037424094846264028589957707129621932993875480164093946086246464278272492172313992602252058255358731918764922787028746897991761536383809552467752604843329270855617084587646497295162315287055089008516715468441366709567987672702886411030626032620998456875948835629618017593600077824205874243629304762421248668136451528078358957318982038801420269974196293450362572874770049339494524938152010031775859317579638159872981758800694012634713341800367619863726260911591878635958409383723101696343749575559406913271763487580645251110844852955782168899540368788817560852319619954611371602504863415563872697758446188160333552622364012192087699014149981521929435476681266668746159197498666023757413086638240918993171543310517561423238309424554590744787211142185766922974609323079990206338649729043708009487030415663105046152873819358093061598249833497019915636954574874292098312975335760440471478498737482401676669443559787445674698333362112434969038829549788634619316150663140187879652559360728863472442581789233634958742019435018633160565278289434251883360662116590620662649756201176797664044926262347490525124560820118715494387361144859339820107516205757734418530959071309117604550948202063164536511786033148565414488940627926474081416928358204851897567810742792886311167529223236338893970455170460305166448560245895957633775303998049370977761353082770723110314226264418263628810974287127744193514923560418887222734003491664092013226359917685728235784976496767265062657045629833248825421939504491185451896034292828638138241305738506105069066112410166029404438177853269095471690756278725722623426103463119982878428154098765087918907270165492608744472750165114065290875702356802845115341809265174657418313705444976694308028010182807328642621694595476388448683775947319202743986865497054961489795315175388880610161113409333505498125685270101943720829944496164299460803349752078737753093429042209696728307031722595455656935126069799612127155723266057791639549713826259646327897236063159025301836457130086468004436807637154302632492168780000072748251198244192175286541447537285897460797094828958838820094955988507795749181514056149961975430240829261581366694697256644803121613503372495735546807578744910299365347194181961087140570338885323012452306038398587365469341112857832473412002898557281782334999553674609752661776587912238901126896394039016000575752808196814868986473533083672170826235562306429252563491609859278669688048932821932916131793364898388688821833165551202685003011324601770231539211782491307195021293666359668608091407808547703947688502573395521412794482740241184257117533657762192425963677447292993768374282364010063796072552342052742755297883879872045640149079130822672724376296827180437385214121023297574666048919352635657193677996826204735222154328624075209564455316896731634992717012142279370400527699891252163045211018169910929783030459666420308817480930435065673494229609551087896620428084625364476880303689908398211107414494651638916220914921986165093019956395632118988295809340300207611085465290561588758490090760142577713832274118560951128217681079728113254986565398071548182106328112766257986263360731385884047179517114657505660802738044336664465284599045398352253327533014479674786045911531908412343279405784900925785635245223544002398042227459091924203580760789878265660599365869810673460211743939533418713153313081950030480476192809959520397199821415942661058325831126428414679189397093113616936264192066110651805439076569749123157539638866214401199916883280365238834107880839754063263000970790275158243667301564367922529468107862256985539633624837373274145319875136019679662641188106628575921920110284481097551356486439145895972619698268141577815485565638979165553339548340063142089562064868676118295040157319623821207076721808421545540076361073478992374600446726487125942007850012483262436102317423037334945293290655752771603693888083144983022487756992636054690043702677960458932958458698114543222991202194351740933242013697236553153136514149509657557800070958089466016421457009708181929063330969334702225821839924007356635587372925159409810606386102284916439238220540956079937883346195644004094272478219300906774138041588448303352442966234275807506213046482556347007260613866595227279707161190584901719408539964781836480845678496514616813070163157394845641757054928148526567622759037790748714585343586052356387331599292227874924611108229185427286934460675233185282734622795769789871606462861746765440543735644351108296319341797881851531870551527095115905841076731780461289667708228601950672134149275839477950826437461236082112080854733662598301673295306257563293838463005927732381211569858587229694818895504531739338587441193968379543954136660739289749559163911544300348946761969731560137559390393969339891540781492477337581615781389510017111548495103833916301359323580685695721101935618851570817247758162851111476109906466877686919641802252528006554605588382336951811515047167454329528963575997274311028596650397486482946204333000309393286295309760123466082053331858200216482962159680472290086429778269506884708191893604780547637940035128233665888633356421024277957637720155671782825228675350273623330776200228616905686236630257545209401281163447927883931654524477827422342495327192846116236303375536182557596904155146503917972666151689822577723919863419422095101351519158232323193240568735178287529765098279931616519219594514551947930639871208471955115767461218116408227265837602949775171087702666003700177872504496317213007295459137482934548773618014803896356290006326487726425074313700050420537139613641228070674402243151627194341034978483500754939743481054001743020492520851305371171326393569535569659461065237999747691762574929800996757964677108605700549758503339670983124111609541586648967965637261051908415370820922494987601100504272278671976441518391023529192424254428235875182946877846684790180040109715543196065596213027456954814472581444067838828736579981258918935826830912248510981870623548065540557056719901978346066028491737330212972587696509897860802723671386258227139661525396044042659565333008321700737767128097578993335567973118190847222218455360042709905560494401174655002243834291032657656770963773657003493640257506338396140163195394349943904245363674281038888780995688579438500143183399924008665769086620197300781595373741908111808365869554899217013015003960305946840917488411451028162534659932626237121199034320103584969564008611005285453940314837296073888371689187565519539859503443712066421542052022388680955144348175600840713444062414202725950349876503247633266437531305752397754020011166205002249519188009672049564238072048067610473289819566880849199492667940441180008304925460316366363799547458552108145025279485352664798152195874911791217126712293969471884037918235334708368695973195323431877116841370183023485025482621445377346906129306394753145298063471419502881312279337280358107393218254028756205346391401928811025255155791731883440656352601986793795998084453559012943607531385034877246789358196750685411245074771184329855056185946343133612402868639905259159921562256491372049177989318682854718336050163613275371366906119937240597794187237443546735740566932787558752522571130424115478134578127162469780357065111345419830877584755481887636280345400501603097456175488760114958568135474002958774769701644994298570805772627523532337953743612110657052375088469033475057503029433913377569103401520183630053677963035808221045062317359528576980464602589690630175885068991262165858898721739966590828423090373807539990875751488393473879699321248315662258213544071828323290493918775378742199641926685697463322407070278544965959432724926731116244980642171408311731629535365425832261227608635516136019985230935605020673782553702202206056366364410405514414707704014473169835660607307805338448805929195111407081087213526595832035967501256853300328307719709137706166963001425765461614866951772640852572855697189719751220130739707270713020260277345146684853030346263522435351626908648654375640052650962419027365214217772171955788146613839607486219010428029650914401102549831968254390823007582659866552613169034167032404627549134923758264010113091837176234610277778332225416419130206922686931422244110449552253451364817702323012558494479032883261855136921919622611309840151700590057284496229889053085740583998432036076193991815630270971326004935609547126722290979643907254501017951689455869492047280806699731761102995320900385467151406991220658542781099191950085095605894477946511723070886204743796536611190275443085832219405201322021608774180829270609476402973066739231823920032869985759661278087919058625163623346870435410795473665912204825188832513337056968545250587943807241281600143449865431449694346569344610639113328304061783230009817796808854774304906651235389493534139118748308709921054573295321099151691307798233804315568893389704502109691704633362378551401364368551688600206396287758575923497106212205135970783272487138709813566367841469470676203555701763339117141230862391199468260353295286126775280401643897674897740273362838328184106057128760492684842839695811711633697396645521208363516349430789223432064133911921278440908654477780183202348489472121070006055411573699127164512382739560148584773795678523021356468477605092388516001847583330768803910418088139749518946692361571520334077114814785140319437784606450631474836748248059897373759020210920525396242905705140878095925969199503728458963300295845870454785731423185334145791757120990441924805408721240695314077736670292754502145506448943469545437941291015917447247009375804114958608200834590028665921648193058883204622136829471760106014945261486491874562798033311180834481609523001439456350029411925174493356792027067299993863651412405839981382552851796243349352026293165373969643316347652326654315739397872469315294376745494727500468829939313626601197387141865291145285720911277196555209049063282956102262125519835443073516116847874237967064775030348266613765075541949144109406200442182142788901627852707956784436271603693997911956386494373846806793673233176356610683568523324489745971941622377459763684381665693747135684942351841734137730218618905089284288493033763282681493944502983380625264614105716927124680211853174833539141280483389889407928777937124436971472813242029515645480160388231114488722888012987075677980779740072105584632916669351971791789506028203191825425164432012801527190837126164961974758314353688894670258324968801545556745183970640225630493782264496224497481389602665576105700676527364430374992895037049508033692869030327369388947314820766765067570555954799245840668688709235710879423263091232827916735258725595486636172173322750538865918416182399206678573347019426798524027667418528155439368334394749474052094243783951666887711415691909941502794637214657255520653571170245342105640851573592425271402511224379674913099600837006682328478295179362243257044666150239787868110210210531818149234624807897765391558561521664519599900895452488454699631322093760429707865267168241544722408127750584671474377441902956992964754529584884544142301089328501083700918934155431740594453274784419133490495381637752870689079454461361756077676906654506263317862930847389096251898436776680395992439451040374824226019138752972936035376516530623726355124027623410632750279584465427427505759088494203420845891413099904065856062051750559311005407641249759293395489747122326852434272970649181438131925361846751053151252579417142523549520985024157222699148268422784988081997568133023731549323648012226775285474904685530701005933596791328426536911157788569065988967878669217024197859644697345742302648048960190798154829593239090439726998811774024892698257384056327511673316406829507487828639709880997470865368897118694873562707608426176243148327737084261977870414829836005851477917141935045591373070171927465481237089347568829832128653483867949666684715278876199884819999633652614700398231710966697668734071839510366962430686623473557264883237583855709936126424358019382621244187044913446424800137038131078118951507123597973632765857150391661048901716477524684851548321019932968403666953554439265089553265689607194767466358024806032561355148355487297388817708606032159472530973200280826891596386771520938254399446658323836626103798717136181694552905903141329541582665901159484419885763955076311401046723856204726042585817232977486766318129674442217321156794473863801485251650077643681345216268334420400045902486862866250071170265645794829652737005895044644691504360130963529743114238858622160439998961412381608340106961485557928037739212023361910541019301438980923853907457416098905261035755836898958587505492056180974394379743842919913901241456916405295575977339970339942041588356709817847798705655339645463332514137615936237802651391652894117693996301937673365845126763260990937723434538093491620004313893825960814564532948300177084108928482610230794460849361614040764888275067168753849515669836537138623245697015557815569284263082477036077673463797492245042139230059475148762608728516756497004473320283530601354500256893011945337278994386977206453320553516583034196594657099476849258995466505807223048256834696206091281746548429452877143344817676049514920952238863328111494972227736875557198915773157957534780900925662295595736674431930596761301096297478813782491185106000152835808520692232249093017013277111379741793424166799258573279194225495171662157593014149067223179961323767799660452979923475036154506090153780929667446284481196799282151745647186391496249375513991570973010629374077105027753787535987201324087290056613857942878651340900906494371044587896134492936185625522113009962379657016292305525641937698913552712493009413460674596323147703065743173049454930640624494277594193447755930744490644468561353302803924747447418145867439562280107246571755472779703031708379217677274224576594297076877424759217724277644934224506656138178730705197118362230591087576750714619590955700923649553036404204321561141103904974662449359735620000528271903511025797558074894126706857340754937289715675190255471283972666022992495303403076826580787325336735097833067635966765849175531576625135617303712619085638668316931597871830252290108822259914566684922147885840912657049241165335699101399687876892617973526903940075977064450462042312690249603259087049210905176103684134629939699945199834262120162654891559247840624508435986872064939465944783102274482767587483825930891152970504268581489246941176762972930956111983353254564437161543820058437383840188561447277589140416708953777867584355187332435300581093579696441181340608022274043594031095064510917995404077360500373410535476655268801815329802070700367345973903610423692650085603244104815495685727386988406237304825595110411000670536229287813520210060305730398452467538854780265760781254954195451280681949730171825968046529633352397489134415983530414230363276127217473248164658068462319072761568433149546491466114225080538267332316606950389757706960105035844050941315422177171743414479258718665576728643848731406168141006152930283833251845217242178521394182630524585938017990802022428283039697751286548053136681657861404710571681978834182360691441723634320485120178784113268512859687436228223130904154671111003957087968358271907345209923909840947966822296871553510791105928162121615025211511900085618103697815708474855606505155836318298257418554291411785538132966388972960723651478812943367338385070237965196731934228671010933640185535563417855376026911240839302725767381727315630272634552830468267167195954911033857233578567583742878110243968530117101081830645761685418866235779603687719463189372047426931324939035258807643390994569504788059211071393786210830232687520576178431299270283095628366766920819552045538581064198418003306464591866618600258440121708826605215481295445037238490846782824749894705177372730659685649671420640261068821187210765999851279871673984600191912833216827918400169308335565428224276229521637701568460377867563715064994051909267832061449654366374427251754492638231692070350044105430972073887058807566779508792394855257581769702403255360227636636592777660301665607010038188227005570550008276941840397270548554280408206128729701447067563743415962535924534905401432832615953862195893777908233714010645618695855316988622192006287489767122110852476863845513003589072174447835129591910278347720342024003700634684063898414198970976051524559528527890686882632711956940130335085511372076288815902788740456344298884698047387720702607169957052533964381507964221411636511422719303734301880032175544649200293865345627227669344255944468677817622087330212341841654353054686482820908773190671181221970503329704447653408586128959320043583374826783526158798912296124045209062021090042396353333738733654876127946533061855713246117289712441785836639241265441468247816114890620427930591448159326122382922427253501951775186535394345534064381182960401964612894818703400473120200658208031077303485466169985067754372660863862718603296145026947931802829592540795132277533457209701857837320611424885001418561958027940712054110298062857694611923108228066626735970915504188198709608776180992737410991249151959462184814518225162290483790495015199740301124659570456532551158053329668337096376403446661668779099069633274373516363897899354474083948451462733060707607867956471624771734905112851382493841632156087765102363934020401631513740341587936984251426580849181640708691477311378100420704699483429092405623680284476462702396965187186213338940817369549245103830279767086061123392479231417268133033193138754910931071096407932659331959369369175240603190767209180005489753376601130520250242512657714626952353236089725502155519639050262342220782534128779592968338572504173733807009998247339969210318035374645137854476193725685229425471517711463452246895002734003426762037773211120334060031498268719906746896356324826490042855258876429855838516853264659183467303142479039923950068810124620093689427449522825841818879802401473067290593997002934314526633471812238239717865071798142529529544227200153135854690124753850081854462401333843992207442633913867467075625452580517261876715205839461878115298494676076681124158736957347241042045746066054331668315054729755909871988477935105896783889207959333093247427014005925767905341788483220248091566926211321498963136321626398211767841897181510389456483914881709698728090751098365014225026434560237600040338548212393121621005626992424234451072500914098434837020837653781275481608081389401509351078506625905783504278432563998393694424570799848143840282938554069350629594338731504310997985850045967717028581488948116211385800610908492164566906062482661210381074555561752578344801284057934401145047052709215016974172423784305359537585511991833528179035659065468019955893022603879663926599296263354747089900730746473490004750425392592998676328619359594247504639891993589466556730092761605967545786983350141766201004724212115867080876021125839501792753784095990038266202069740466830053540946517310692054462834871966317187928800317757215910398837081819705135220648407161038336781349641422474341953602147486847945461486754542617031811887107825819904718026473714882600391297317620873207276649184983871239398056779698815973893304807597027385943298769507881654267224689423825764118742804423167817798274723799981996734977821747667936826487239021462329898739583100789583413107078082585533099448129924545363733964502581122107685131531450911019672991384673737889272433481411671905544031558580645190473152794741257455925938579372988720959631688956980347404296845893309819968340510286700828695226818140862956757239251738681737417434370693363813544382274228887984347252313090896672749360796428099793774076420111992390033259390816913717160488582648755371023027795025445588807682959109698080408980503234590745224761931337507626664145664453946399191271609055865569800499372822686382346763877219284397991571205201454248774182511635297550999483708777306415726912827243807513643129220088446234470123557295031028859834683672667594739812960144182979689719949332945975584515442951007771349342960816475174677415050163883621104363343895013173141224425138550917381434005731023323365078941952984872485298431131500691706806347522803491984908635255135830607310119645213759507570911664631982484705345932989599997572422383674009228712654979644223983930841350448406014187571070135808748804439474822071673535678904306000716562754658134340792666652460068885693685657818185209391968245595792893264746679660053323933316869126612496512806861556920493797986231741507604126297838723517609957288492374346899063788287205920799782551382488618792927691206525220474740885817919862729916417067772082048916796791168190856126915326965048668217876274137606224149037026892312594387225692503155807313196750558953669891338173700678361495734975273863907097980189315281239493150253362441375713022957854420485213756233865640934720164273339757472628588448188105540729257558275432293605544249626948230580034986912768302814705151387410385293420423319543332262883311939213318296097694429234300966050022273448373593946028511541112817380775697777861852172711060619952927542919204098944312824433961550945124723538232652314298183369419377313811773891197273685581769676608680869597932784671263196618462193612640706493876623408289935925817170596694350675447151102035775289795117553854341953093360490288419766668867594364683959829816573079046376793801681599889228656059138041692786815927788703615193765665167744286696368944146604136327269426450278235946361244290840663532214183547790714868144275998620983777148979991980780620908882175182475354898349219225536836292087329936664495378794631268650916120905277386135467284518169961909986063139652146347665486039863155322048546458831504697984805009476001212613965949954759699984101139218571053333703410463105147117014391749059432656485506373521718879874052782496773915426991478524161796333598112309573813415810979744044641550582017316852680047016764803927781805119625984858616591967879144692111812358645160600146179228521143434796976903933129685575683403422956097680810006059376276136492405041045291046664138241804950733434911142798892497511832619833110292059268161521568610999957231134871919595684108071151476036470340337289863414432019428505170698739597656807921774679065265093184856832255908624513818774097700591059817866577740337483459875456113642155539844766391480060935318931450345465386895282515994172824093368334601320910858223389803061475217167067342540667385080285496002966320608536149141814318005236240943977446958814100451926244252292690948287359452464530005333749772989850291164963264455947497171492845556522545286441444894313739380440774798409985104177813410480359262549881353533945172586534494031284694728495564898768775722661920793766251374699230278579628448708229097404378238517633073453290252653136889765332601565703856215109478529816255395714375096703360042492463613342604938006390250420421467061532800015039552613249493202265926387333867431992234185832346595283424218288339582617355998720526555846639119087010079160607483537238246241926204558650211763022806644608643213839105274074917015823248249001836955256926974698283775627310625083333253692614360434800430839939784815734808011664645948997443079426878156489034730762597787664052176410632601777982837039698306223763934638175854852485842696961573415029495787700868699764552701361473494245155355639594379938632349922830773942582173464029813017017600843941069050294178093960579382261383858190677918863014986302067441052749890348920613160474880931403012774055992266501847545312004810015709525862045900931029243771454103186938863343223264133611639660943718038049278871969580501131611328431053983951030542999239565938595268271404199091426497766603544179968276804305971295178982242732801241422454575104604495481386129934521555079053912589460795504969765379086404546949508585050607815234597951233427795280091698407143845312064727164604061820608882072260578154087454728947938189852929214392438313428003777253996485774092035496192818393440976950963330882425583484850577206184197725571482575725366586043864881682726876622183526691523944537569414186871046763045132301120570068872426946361620073444740803239803353822392567954368793160826796285073491168803732851685950521889720723821772170620637108653037664001405407432787093112164581059671883046609632729485163316282739167332105843760596862079902713080484615439202488135260992010520539088886954144754315184002975424859078440584924561751749751656209578615382381942138583682120997193044380413340105318573312687893906491920586540201487087626062758553948615374162684055829128286052280370987154665915156564019864661832412207955644994380441827254886413562756234540522315920617571088310544673141777690367300059698753874420618226259980164755293613192779591608484984030042030676252732901391111735782828926886048205375553512688152263628346261545849416058408839025818301818313068147551744868236494491422448592583846500606446248606000794071418360086421057682468407206011762192102062689156649090959614506289760455172540780708677492579920111849919923856201972124063916151651400001443712523538770248838244150516831456535308936030017804916753759063803617855944843509040610421127535729866242522622790343943918128144620572947734061177809871867501457657846969144879838831597681709457697495934233786240457688460986335865690998355919465480257178398665091158254208277084102288103345758783439584613711581452872221799434099903756331578185099642410016241837672352974608327380488819062249022169261372069084245495905685495785081984912920616507547950271585097081810930518024148788013160467916353839619538973474654924504854859597623764581603536478230266375269541569609294806351186213618880868865274071819571240832761660093037692101131424054286551799500956577246207626899094773646820549299598020662449429420560499755489459818082304614905649710773936806017947235614094210774451936632582510019630774306560736473325596716191095430170601960117271994909345022004197190577248456713259034942162293748465753325308917536501895940506737066268800267180398711215940687867302680807278123856308120236021086821481300990010656610813270525025351532174533613483771993446329484716790583437313135949589838743588468080184894355178334555815810440825261221613135442946271309096687515373765867433896297477223416870188186080914252403360599689985257053751845158747531764971797192530036902152060076467818710214605739088376500992905423838266926196596116937935572239156959536621273940388674603113351705176082859884824657818750034575325037220975526362184034246763739288854758938619203700647452698890108053938486950211286750215558075226835652213897791541683429202640074883599496574406242011256490070802432946525820338602963338064034678272874779120523250520968664111563595593964760048106685498998819264361383248110721273078443528175447428278539954353058067169798309204290466151931460758275090653727435660559574828553562962791405091949608702422879641548269148667379278049613616940990735174616510672979174425068476190703247146528989926591300108200629159882758306128366991163004958205970227114622198931236345256374713842178972560665445221167404392411739010835018710146021284299698062228780945310306193676644765680283474610947371164870152417725392843683504748657731934905591622557366255216790146158643075199114652536878119875554865328595483575354779289777480765917117839280948608006840297020700055024243782840454693961924419741121718376610559168677879915600528104401458833637804968150231071018494252071490496995347688018548760859664526392294700070271002151069141996143607836872772348100217068761800069191554469628150180012555659409787857594299021116187580831129818044796639102304064748935079827688232285136550211156855483399132174922092185394919025001330067790552896393045247655560399648141208314555934277921500224399336204195722768952540084487725478645445807355330922078862005010306693496662873425682891622246798171992595406329136220299810872334549487940834921896847912739333511799774831957207327685469610921073883909497025794696640002129027580114545922179599177474273476253332776319672205743247936442980452565562496050923350243503630884301963762915574172502369087216002237176575459998418971016425616175684116194745177895767462818133365370038801125689367105501575067905698767363562199205363750216349408288090169021587960253599450880974395959055039745833836643003630209182028553106930747061421574183635494149222605794755116710309990253293475073212040107475468305698522935481779771300838121214998156155730208806851505198535445032983649971768915062425338663614351879690492356447018666630408672426124032558357463415285351238523052710030756476739138443595627907977699346696702981730218219784091986193554770335427505434687530763343990114894183460658043691688282413667069306981122146243099067218794199687145964054317172532118000830976153086333940941209434343300930056750402274463024677591626561362386721628054709109023996003344128445199300626667701858267213713101591951478598216528384469315595684030236860060552465476814348507148634743171203715605430287485974782939151141393529359133165239374504636041188524784248408481117373487295154361030807457105328869423275129077319343723218603622964314969977370651656024200116426506242552179098504234030492496715081610452069700551175051027773535688062437606484804987959878895381063910897665512519514104879802247361599096575550801972468691546722571277396262577278488437340868542770274182676952971948347485188654013770411813510868304430472764846132011591597863594906298030795779628532046150755487251916752723549772578601658872255152006950304813740554027325303338196738294385536698799968182412033436257597034184499904721129289997848141298035107611689005654258207680392100798755335751008538261018325224111699371665518688780053407999376357215763059230889891544405045614562910293123266432782552141848171483903171436877922873012771486329953421560080303558290016673585992683191941946641265434992201781921134739750330128680183672006115435894079835842840380102311686266686479758454010081932994550616310714728791808913991221451930179047815317009917942573634971459556369100965393396771084031891636085592665935714513830598852847786987925286798183675286379523849606516296093807602987730187043012842646606503486979977056833434180850883338280824892313916280048007238398396363404604230509861395676656475257345752800472116248598953062840926842410656090537898035304931387486406065056262695782754147198200894839309117221459218371053996264634075311791173316775364888817679276722947642674039140078023165509328033640748903816718045624012543394548647563215452465036611430986402989816381113230671183213548808732311923132219540030722570100278767661295366277907747740458534651862677592287522793303114523307863932486618662466484116181897578948972189391788428148992258077688056958965087388223120144338493156760008304382083174102740160725741663749937836702497461893148322932266843124693275994943570652752740059455748047940536055472886557788161063177790620241656788884963021126768283014003328044220730862762028137070043580522669224864513826399985932590460757861651177230201545862388727652760177756869558193010181130376833820522768987505490598964140692536086109514115782475142652876476030349107475866611858654494953945418159643675750821470582809834533284156180896045489296796905388945034824190000057351104778633660389999027737479461140941615211374231916564814340430809285616839296664074587132966907599330563555766877794686112915637598906020194508835363394525785087026524167487898424979148761920815740333463567438063655605014567710904328076266968067813392653222008743070052828380655433662431783475930746141728408398696812803904842232796501175232289060302266171017589221818464214822953836523174487949644471621539328357912419442645540936339500207973539933642294843782282694447586339003830990825167160797036290512701700382460206598874650814417953276740733736103412023560251371867102210182941175899143772789146734251064478868091518772329803916083638959660705402294471033113225005587642512443976048440300294243920576889754760068523953891084581207639102114883202425124383333460813829628242247631224380465472119359620908799924461785076096371099530180778947592896766679429300960884265943583088380137722452373962836412211656872990356018330477186125481661203507254349735852357105206731231640830621596336478878331701340871244306744009099317318316315217289171405127378795767896153052891969876535134151353861387107991953824637213774312914313117443304861408802664349424431018251113051654050523192355345097181412096315004348677487278883448514377895045830225032842247621544071050883099324266896436528477490149814603490776660683830246699557551181505802911412059140488383492428144808814774431483187730385870520458778696473361096800179816238383771333412495515776704150370668965825480524203081612120317060194869064793842472749978171948019796017030763964057134733579912119282312179134634088902190041799772258724126757218397407565204357503962838989629295756504433174223157665292853933651131159989839868965247384285109841008916078822810232178413714488668541663075310405053975443459609155005038961225735048950905127701013110442407313016559233120161346857028287662325552549682530805701936474200879667746833974083402334524348494222405648478927005170792214213538538931889430681797907334970093781946296918403424059657617003032106365289251007315472324885560955144958310596691010714902734272052248876780810035703984885622219951379534788776675492033388942942310347430915533241351991977156902781163443075130638602636073577312502291929189887466865140709109833165429411468942842050656057737829647690696446058900138641654026189599927450761952494274946168557543308645104674488515290280452309932157296144844257815762391079905372671170550099051088035589767778548500347721476806449692935333196687472295126599241999760562658717552816266150307058966957307038054393256426695948499432564738596035320638523864960938057827586831890707654586214085916691081929031516439615991924291049589118098067671761682655668852032043763442130138944989531676678217736179599598914382988710134385927766895324854441996411778716575830912242914986302462647421655553948442037525980265002232070742982368948046963449901308296503193223480363610386781732114374267760081536958693998340012233442240673428703122282117666146807046786843419352289645353054964050123741694876097384488738708995022096217661299852998047176919985007209107589908340925174562852331309415080253412837380081777215101862248175647805863834258933683492549183515510249744914510829356768088660867884200739209521514128951255313346847220063717656204871930600692163390145021388163858961142102916212604938868150601505619242373678572410053942008547338643101590421033015366675770133824312411981764173427679535627955200558648881841488908974367203673331781151873848426575035384367155790953074262767339487681753897314922390103508987476508282627960869522704171043754869795720150778710699321910549502481493719717142537778906961502871368445085682648613979692862348358865870857964733138751916823932579522899591655866349047167072240971693348423684174623109029584228735463664702000524379736574626010817065746418865599932179180672056924290534165300017092946855885731146211716347678326682063396667501789790622503892480572942916253708428736159752516720040380899024861282860205048708507056511813275924258115038512911500207291168834879490024343484101551731370021544018513806894907102917958610456305829990743945434429307639842102474002014355736844529571399869317546910688204778389659427569754572039738919083088350070759926102083465362218106170722838003713902217114010017301105843763352089752116846598734127587716532849489511035987477959740327155700150922220985982739806312384478027720206604164856941346744913817023964327575658495981529732172099347923613508758844551648057210314269618795186695629832332808377772878755139840574980972197845972580456993134535561903276806186901045716180407107550629546943218531302175284750586299560406534866775344267447741145925019745908369991482517595887020644738145006580015921508642642419963452739120715131790050539956517346303745640568668572144818966513311994939792568321573469536343833909293691579601851329595310728176975973774780205370476856548083933046938459958818272180020718467431275528692903809813682992141083776620419243906893479244754581454386548340087673322448610729628645469428395851323576045264712845986954875545157686836604462835618025606997060346549925066061211179044551696645341594757586479690413889893666510656565866563062409192573845112724609196682298917131024110724126164609532302694327905802656099642221961409430692727301604943769185691456803617100279687845113614994891699351162853682600378339322149795569906671797427039319244357559103707826709120820865809118009158794517994716296085282540352423530972409793449502452141561657731620445929988361130304770604086614541067419285516233270834795376098968877553309798897257557037898820153757230423061002037262324851873871368825052253685557650386217369077075320216905545411962194147932110788055406242060042907048115065203918909293792892338829519560702723656931749114243054291024852424294859343102344037076705358161070504407581050401583255766659035924801359889346185484012181322198746802465282511274867106213069780085808094305834808835112413218694349008775457811874700060284584628777339435390063120107958459744249265189904244687534902332825580931445102861552067191615966480285376827466463416738075273020262275610453744768808303196036497041702236723212719051034116377227583345810676747597929620991920951982150695358229430184032284316070709857972902184942677618133614509978536257308396863139390876653895253259994181274154166349714056618457464744275911353084822927736015549781750709367075115118941872663608713756244365519200316877374376517130943513466118209898706939688653610017851332992701159922090270758020124231051308715260783427096121453168537116283782175283187880914550068772396722794005117727889095254688262438634337796489342416443435214192242554409426844583472142102215684224997096445645633208110548112821129470518962430987276842330489912570228126803261220885946636990799173277939547026036019917189654594515658661111052282807900913166922069155472381446162942565357710963525578743519307813502252451655065455947703600928776353049257656668817978467181627569246061776322141912752202760826492160453721892380710818695268384688620962192610860671986125531834866759221852136379780127938830715821722113153991584080420918387710648416908730510190366596806631683793788528127683382405724679531107494187382136617194899592610019516008485497383274173537682749181748351034865669198419717765090143330583342259336207866762080459048314879720787394919342623792656443570558562129057409741281174666379817232148984998134280007168328854370916431591020268692915134333620043061675552908692470464332063647282784942633148967327507741507976335423264366601562432410053577604823120699434498156993011383020189778767953225868159588024270040106558373711817572705925585604247009484972067499056017459141356755859806798698171657547004920170072881779181990782783690519501682064036726378889583611311026299577691809481407153613769709210961064790580309648144055814994789172813824158234477403610467371374929573972225127326348882082179757574655244857735633579087659223193200146159408303223428904736522540801509607117400191901551920047255767938169029771835587396226543219603622110593549132812439023747546593980693309068198678076730104789656735194708584146541545235685489723261524019018966007495728093196252426847317974380742145337370076379074778985457878914025626071857152283599034959244871171217410465899636295554425721806357781826052347215183932902725112926490573154993098709060148336918609582169905396704617662340323565667075283835453943213089658345060372687477921385357417358650245468530937203058143912892461245473419150308922559421895229310375515494558330239064224173720193776824430768595268246744428541925569307625408937026668683585814497902011418004671991727491836292158475717647207876604080704226702773048761867355836229278574368517673171870962757861595932140338934015162097786292505122702753514740360649625640313954319446080189920845557273553306378381305862258692219640629371108317526046917796169502847399224433204523055422599961182608513135146272010453737244692290242459980029201679762200254754252764170911066001366994324285116773111486532351200506894552997218741519370493667697895700187058156008398413138414543108159715542710668430318904988694315766696250923654576824577433281570992953308490018354247969127274096031427928103723763166394787142296887021002387457097932181164251200143693293604267472274389586931571401927148527489326682168991317804500564744588175219900002544062244580632286234016764480549095548913105783645347992503718471166330597544545879300820001839563932385568408512631704113807152234090971783643173066487820391715962789043772101648215883377146265069841305599996961915912172531278796943676905608557445901415381659086988653608900678492403840619275359052738189945688310198799985101786341013697136332692945413849204093121255365979255825649088061777789492976753516855790446939586603481992053780878691062549813149742052614293943973145005751690948728399113276011943174049063762882617261241207380314402326789322988849296329177994805529912477117959717576402734286436570650956392953728326839511041896760629058931550934361859370208123038453019343750125596697509573713690135262276882308289044008719804215228113153431344765540054522173522814173342465079350316276192114875171556103854971159074542715787587432271854716140045852389017632024134821135615898003008237981165051424983118204781775826019621058569191066121704993738789173348730959015559943837161776247272806895254350311051493628050450070243232857201937896638026509216840991496306465897624389135504446171973205802342025624575018327006121368289907625330754165960743082789726265989846921581977352303953221042935950629931795078974883444531812576866277929819583912952650042291063197740146084159420905509406685667176326124045531632184705157804442440271470004104100581720813107404615742275726222521123544402961393530738206851049732816262787841634852913604178074938312906942072745367918814299231246915045759350449614198780503997731883670997058179907728902160380989529900870657787397204480083471039747276319154642794467056852209725645276163104134810492890878306697998990583527120370031826183146104316649639389495315572671952819223862505239573778116146676086303049879856033866568111033411830026292499324430944193920598323209427394127667489409019191494375515054546026793002815293573753902926845154177136569440242279391036815264631150807470144098862609469716624963672745253683665382510540190106220862774626681253013610326011050089579129960948187898949505294302546567483502837654579791836324999309196857741918770493904874258667315210940282357473266894686375738985718680432761096360558395410317336821705484521678799925721324618307335483231026761027604097340172347620168126852901289112098475720734936836575866222220748615020605845027221199841067587030826085631804346036855494154401806262620160987840307756167023933572405449386377454922587820394552928045919006870348984495067394931945099898219985431266502877080857315049713950433099381724396274535044079744998084466339207716128212051524284821552517800248663331676050546664122492440763306756271217017142794542703112780135371727307620003910256071371954971133127839171742052848019792567053902982952532983157361088139379408626604042047071451044238875605117253997485534447817376210041656359538458938584409005466231115545341539058831907618235123959831586650957530246251897054010624878395034564444074098971430850242033995947618938246743756846944020269873928324090854395710244542976385016245492001882534885334300894401931345684697967851668871356696149508580975474736254986090306031565805655150696627834259248811043428611197774240274296668818436268594041710020682304032993077672031910158564213069923299784850046153040861051328032857698567725652811845494488658557256519705311904995881733864388332388389626388966003483990071886843879926013525396819868280815604022818454369038745802149594616541396939667506809267617977732419635949769083670641104047291143535317275664407439135214232417560271257734245944709649539110898330904584449621661839674186921972062719461391083201020306537495688737841372316653912713507060980461890886899620034105338981503200587576237481072595776312435853303555525063533537700392964178921321953349783628750834576201612929987629143662792743610706094095798518784938265289554944060054802938856811754169222011120006268825072038515936171843909752040986479783921007387349950300147572023400406894734951247462240591339267279001349464999397444231136226594266415322665368076133739594705205531589006099205409091580800955584833777972259197626194933209358873409492763339450574258464653172832443224591426609802910736863469571171140609946585103967825003081076194676854379343404593776420120875665922605515741396060980500156450034746411539507866332933292093991769839250617279022046077355316010120018099759974026684912339373180933543693198074618706949662302479366158307579564658048803144564285728820681077336685950880008437279532768039335177230345791739308784059799872340825692450726458624416687638379128099121703960677604231873635974233371972028820871165386677598942547449721477372659865816467345542125452297973466649664178354190142535547682522382496074726317662294104198194983396533708343875305798270120260350499615461556337975246657147810839890433329763215233860604353486872004811394965866317392603413109199392536962465247025549329493027655333993554726620863296105299441963468515785005100482144012184766463231746088756697465353554711396780609543431465358134944319816398747982049671827512056698509984946021116847205861656850815639515801078300463099023237770210937743332655017772525599569178389038665904147628345800564698069696893514671938644013808591661977501758317863037878296965706646418754925460070134929202692592825698519136144231536643509554502711933177455448739430767332460510488594880824910632501448035749590154627998665964072864645002382298416004485221549776913189677425183583484666357495427821437942721809244198438620529875134045439932283230865513792665167407719778961469547455881286183930953005764228616937891301605616504936011587224299784394641268146086913544497593482034907626969044956977440594662314911753169329780753845229506178447859863713525931885143720301592597348644219904794133962542942797049240878723612989960148117080581422970290286018289394606223015137395336368012199697406390676231333748123139165592554967102980847895405409439434603846394354905700659001706380412000829988063474619280731190928670843641496258092595034261304050332959819788483221053026850213507485878889471375498363237493939579489345831989880637225089656735548776962203213756809584732879783423009627564252343783698905306276167151633825348246506503609427805887785402665474808237204590219497425572281997218688256387129205451265341631425290083920102656319335827696255010547311301452771074189608666718853359870939108685282848547504312863128128454655410417907531141269797052784718174137399032392003642280464106330587397699239399901030930211215464035959797112523700776059891458794527965215255135210061259034737217768617928134528162356905146171900460066506269696031127749041734029250123379601928584586164733948060321500715921628642055781932142460372710903997395279409415757698127043666675047075680504881021557996569944096958045311990147861246108227881065304982463459094338498188177700468804015771099327874592409307129674206479394785035661385303822690441294253999155183694911541647490447936233070050953490007803177400638816300481324767221533912304559368278985077121336927570867495371692716259763969123170625184073331775741521627818507798927164826555220179872056779132351429631548659139837686372006013227635383344907366389362333667832355117716119843329312206386860844988758315653466725242691599975948564138815228006619963179281876562817141585054775239826168588953852838763030441826037176926544304678855667207016618754152781638905859340660864251879655532983608348159667572500536043916293459254662399127492495524936890620354797230193139320685211622442481389645101865472441309649162227616025219069747943576463033511930919512004595483785778995493875043895035586761797988028562244000068687992200988026236758991504710518912479810725090627796185767179761502795461920251526086040810439244810632377695064336852933306339593891616436671596021369452137558221569553218208065911037796875363800724597429095787086287329675522453150956844104463085587368711593630356216800084163173949577670411971112777406779919762526684413315721525280354407894962051845794163091531034596178978602301721462687103692241430707083310374963321086114534172163276907439666519033345655342305254102588137035683627618525491652906528880536502317306066666471432929268694775312236007837529511096441984321563765298974403147588879602974179389416930866214389156765783729560032229364086459517442729781891306532360771022648151138477790066082916970668181182412653337152837609921220444142332438211920740596747338070036258461440773858980133014143926608648445828169979082712865659513457544965487095687334728160387773813181627173713397016336937446058796852449315968724844027861752413007713043955861587101741892473443977062231748395269004201115405677965766989668424538196104600812327016453384101783241768400633809441796508577662419865901823521580483343222043991606199642060323500464184924393228899000512621047513511262592138033697170061533188359608494177107866244289331595854063503527524227520039587984543166908243825467585935858111466928566463380666553466895695652781089161769209549829503691060611625161569767031842874736994537101913042954046436877786055145544671845744004365814174688275821171769158106423787765868709353886668402770380895470312314433546381287136102605106079105111906687542289024695318214380205680452791030859353395799013298884008109371382213044397766173353377918518090748013797378819125787866410672481491955714313302942677321915986570041474315057666134848666079810724714103885773684916979640860260436077607354958276959444586703493950830895511774452894064359430222576201057205831614830723626566069044340941152401697770185331897432875420888294471122522883500413738770000268629953812442612000012144239334425031140728921561213669497256630071326122117287188048765441684312584549896721258108290316122902949413772774645778952633962456270954647676470090252297563838240706705975369266359672701644183146983026838134138977552614899886832945505935344856596093141309339944533755290478440933631486099967524946098803041795055461428807454170016133963679625569507811233898883831619807390046663041738147463736120912133126168791695874436121218296520827123970765338663253708357010663236912189624232301322782054975746446756958116580850254376963353506047455230996988922744251727479190312578465676816626450783164095817115095978723877819834890782936544414379735881761445904223175341434207251548337183565724723502039993726975790849191110382824490892874082929831710701551484252216091296863553830633641563638715665567474062177708272090033585508690743448578144647676528676207652658494348917121968620923101501071832003960261116976057616730889192269120444582197518111256182983590926831464289663646976168785775521371466226604635786339032705576103018868652525933469825377236348056022651385213824364050933715897249118968702501310550204021405473312491046341565662933834596792164593849075656632506290311910869726631685832051331764202929753887369652591858982140777727923528890488635415463629510200705708525426214917657052579896160903405872947648548148865146861424424840911545132980463926168539651922146248547040601395598718140004840915609859229114216292712255998071644869696824854446931309033383896014894560242862113526586024586396692743779689484241836136538030920809986489037914111732546395615244994945553255943949172681131292311574169469032228634165627886507651015017666068908677169721730708531035750310153476553193296464107865692142331948457125908927294022182397185281892620005746655340411189122370898887992095827697657843534704219117282241985074931549214010688322882111184339192534744980264294094953753528174665561402978766575833653998080779980461732341287082133751125073180887648879847694367506354896669534157023893302912381220331418449793387906701697901005609539530885697174628457791578348132706977164368810569832403365297402473038910418716810516526589557260776934803157055117956726296749461182194716974644100236058286711498569000861703652813198199711543291303438814646992831933016953271870431638571778886087027082557524944803877503915244670934039472614771743041973970664394926635480307305038199119527962383050363701912469078866659857414262147545016040862745035269067876603477309683047775445496561407176805593315276189356660280548555400283911209052774718965887991362083428921249600987935685216574619845066494621142160370328677003153591183552768871551656736083593347852973749481923411711717450795470825200246010886734187221016110390582848501542940002263867674545447566158606393165525021256482326969286401930671424736727968427884772197955699090037737956673581315782148394219695083015181636357639975919606479152846081583774634933890048857834740824651311899106358408233964226399616317116215605929654469681313323936659290674485878994905597121555746145286017766445765375238345346831389005372258869850161956092805529512248292344193755638629514238548183306403252830859956255366100170594980766898101808317711482162126873541496156696944219171698930961832569588886683881411112338405459407066421306389769692908915265173307078387139389091132042408735023903265736595620457044034187405305832145122200700473817695405846934820383377532579278139465894401927770652110839940076385747072734169344655530701059437324716908550516037726551312423393142833907750071657201941564466422612338466503904039863378526241417546998472509468854078083020743764525199970261647476714390157408552159119945901793387623191865080040939811331268099534596099368759833039277134610415939421181735433211243968299501576255005599134982659008987123076104906953773487967450663212685798105384663519905754427069314202569290672301248620186334760669247563236165668227404745964833551345458979061030318530668233019322371297901464678585138177346745712414046173417873810100447371551598086716393888078335299491119090452424682651770014216321199989455420982912969764146295293913155636757706992578765422521484799841039901471100398274493148272496835571086812979998380897480835998812117329639478765818018488008823707863746823795506642938674634807802732585280019203701444279694911642799380484097598019339872118334695892608959057081366915285444915512963261820948766708689810053608356801763114749154018691424400055269656902865150868925186318308154693392885798089001318091750386545507551825219880428674335266033804321315729351254906417536018673473291870971307803197111924927510503485141191723932620189303214531199838637676246613941639646057354449832372171336447521082600935064152300687173836973303277063253382390951636994296502929656339080592293781073072310619930582224704288875812457746021159639564026889505070922631066341945217797652734266485394262647114375315581243986480923808874558635706803406182457351531714904196837124355331651668339136670331711572976742005016074775361559727420179013317791375670682279691267305567619609993866384058426596323587480376094251663748662067499051923327771769070848664799348359661207937504331070327720621716288552105772904329534152796720175756654968413064884711401330273294691677238188790578708641722548586616814732785243489397966328512016069532673311003573660178225490266893034727562901286990034988903586721963095182322081926340365492052138769013602415995708258847435279831295560477132269479490286285052243474166811278783724744598541727358600994378406008048176246950077733625502699151046210864858928739944981710666379550351746380340555280920499725966762610407563650919920656986837967026566491507684395149649255384357944283156314974028942749119074556378275755903877731296434512767631091742387160922085219019257531911316508400776329924339817118501437245924519670782448723409344540153246225792936671044711734260330439041743369383408777883407263491999116264766851980191361058137916690754416966447482080635105281127729017715074362969284132245179622693483420965329786024579888551480771848350388532078220667289261961776490993030212617967517792015682112803807940633958516707484711236691499902119728334025271538885207674548556520268001467990347093483562598392828790864679180167805953458079020707959032878341113231829323667280295596432646767806881214043766715466730689686641766595277425276795317943803241163918965576671231122147005095254918666268750978362108433621845131855801726909575552675932969481655834129622468592091085895628940076274212029866464406938854262329415741399316267755766627389714950767873864641627307696600611267886855863744029583330239663965447504856935759879392960554450802346191005537078529106281890826457627040701923389388461813046288767887494802877909320496268239600357209735305810014772855612525999142086391252146941854068330023085422077731377074637391518184941609158554695760071019604900846381981465050375138237585428751164552345722596545557477509474634361009559689597473322276887000485942714386416187428813621295481915197316146656818177614482077584660579392437030201168865256372354277882159029449346446163582097847872176423918344456490728440136193908931449550379764148493601813886342342770444502155518849026913188782895547372913452649713561003031349173897400554004228286843312071249610285311508448227129524827957855434371100127208801472554184514461690944266593269872732297415051199788150261461408514150017045493023614159547990143568114903621524355497560289331394401053100413406064957685611741736697415416954949983391031860273019917556299830546356614738181138698447757743897715002954525853996058312951591175973443930797752134007401361638063994505354598309256873964653679746567716245927753368916400232357488026443290564207633114765924314990671905697596137407680581585141602983135811362218658527731878165352930926704402343868372651896310869846151158765576020242223080068929914842821601357097490963356911401941754179217549253386420194854061277942020394995924160884942850275022871435890831569745739752028098043721631248208814559881466724271128951866220032103970739954829371119335501691030470574345974675045575969041116062996767968521955108493074384829745490960302990605953611500932902006763203967847493559203908336045556156945210377828475350973440777902189358475260439632375914736144158597991045323324176959762788092571108314826457461832941031948342122734120365821792197827433416912343948438709282476590370885189930561939863590838088306001314023395795886046190887735013709205019009375862659049790599154240006982334810142661386806659531914172823376709787501051694926989430939111002027213108475159488284950910324482013786813388658792580475325081605931210745208153106110313655784570760667447850752772870293159311577518079638999797061905083118979729878659299071930439457162931577006861734026004595432538645871653312978156426498520044698107437454512434124203158284683275601043244263549098519824966915585789567755458013151422660869731133872643728722895923131961076267570980626916537828444315974060294943820777876358834001512508807493735369984820596539021351563895326298642259294751645832845661281002753613661241493410784170200009208221360925890241290377871041018523665251215121664305311451602331861714295055612071119731989518589267380322079962182273657840353289182673623461555388194037726410614185143497708999043890018366331092466480572327771665888408652096182691070035033044264905897145522813591525769440278746213485335775361219217728903272754590194441875832732034953247241435929720560903156065788333650694545778814771506410348493958244085058449584307044807384229112828567438839057143964949468285257752195916664185811564341046339567305175909952177065929118048590245840280829231219410071260005909702251655714277495327587392799714987051424145575407155238685400350717366455194005312766197868577630553497429036276428636238872841042081676319377683641495164584214538999277026215895595422505294561929606050770024759572897228137952577254055802196825345606165158304577921138225471458096781224973968229599653975119202853229491669427385413109345300447246850637227121626228892047224230374311903539009170578192857742561733741276926888174731318165433379018807839264216783298132441722896208474854797624699249370110273113244946678984040768061758984977009170331265118972219702985808308326044999286378095788639256595971551250950890426966155921587077033727042978856126734337173488322246353426061762936159319160825081089048173949399631914884719802936538708220892854786093412774586716644289589632553414529352622293274938032460729209763593009757670347796464759467720032272317593494086451541249825349959366770600640458330485122453302909035146751321369485927230256709601940364177431992803662134495917929387711447114329700087149732717813776055493611916500113886777429670759258222806862720558500775428514137388069257895734149168829682693414349822350053849879765052425758522300839929395761782960498763995880684696609768396034765000072270366746367751886688990109045780704781417213507427135836617881790138016181164603841225750746652319570899361848206921646615741478859486792514304261193573561744242470713677508320169139156725205286845845740696199567328473374082093797736477676562535295756342913911263869388555964518996177030212553292380965222419780932532554805953501730848426587266842025975963367459910708958872658514056521600978593946627022879092560969830672184399158824692233513617781670002328453790403847244831055729224791164273545469653791790004078894522273607604315009743870046426642077659597991660260037438123153656344684424677376663269516752588096093621632222137225485584663728237667327887953814525740845627226966353132669464878220438035219988094968555590841608854761205427292607962942160142169051839916126248087611875735836186730765494508123379839232630292571314187589193786475078908611566443395631004114445740046040871294484989425383050331331295982548487203993588828518797561837339598655594911863127682405312419639136353561620905613058530611276395500732391052865124282027622415728334525958131381722133451121815357762751925764493049736794996774877429056222357442864442877029256945124959532150394067606133723360637485604015690828417486257354386439300210575687010564994967812905664271223516187660997692405023666909539355543208590726211200071804678743332421717258632007389415999757640096431232400655252374205598603401564018820250135392113667860868316468308811789477704054527190067441593484885004734152716553059822618756775029721561107904119205768885927982288936234975546556082118334458979979688428350023988589717605388486271697474855853916511577169421374734576468462206787285273434761119946264964083918433947950162350638230135416687544638238350797107205879986401926661725528771033823522354301774797047049861134625457922380730262214849968050606962745520520334812562818670746379862638356861996782043530804288797246568849886129949867414790704769695456980994651318186690254600948392215114949890859038246897205574918821965817750094093297513190192690123426550255498629796491475452899988704497981420050473483112556964413945961604597687564506173376755666200338051561871514564953756968294873928838405097018268180792535918209328167258396336846522001626812895807756784113961180617069318268994424655023812436717315327638778463022222208881219124629275914972095992854416108405013829766948188292939189460151061266964154001150782796223421881393548705727217746324944111724621063278134376719354809786710314828796180591104865455014939850430867943079129999137882858126326803608344947832190837547728081574820597580722185839683149149909105602389923416268863547522592015126527015485388359629190696803079403629036122576116041743050951635544647158522509311337277285435891488309105330100627495161461815359133764762350468739330966904715106629462825171576344764888371661582958025503472862104004311545630486151318889783614441526540518933893618999850582429328327388683401622176626552738061609283680844879499275417007715873715492716843407430512431213826079493840160303330285948312742480902218811773066005819085571463144034813122239364122509981933590280031333778787178772313947321540309231591109338820758669542385517454594320944934430391984674936560783528500575049507921067530599099492756580546081791920802131640051948808134045144853012669991648886731346749295685561242134169004759246757203885468893941044425411562828216485664520885041807390225564282966090399283104900265768004963244626695886447612830006201184637270406396823101485038934086257550018922261091891582904263292419485921072978679454831033956128627352339302038526427384080738827486129037116405458255180844698533230783346887647641650052623569551387095853170624018388611341359011715968725692189714433459828468934468331412653965885944599626016337028154063160753224402585604048287844413001097575828922944080506852835855486547621150632974664087145839672153574970777477670094131325984072843704265535932176122732786978775602671867507102230343223684052283782797617791640386720869686533434280544814582253363493799250064139991443507307653545668770424040473255303134329763957690769155082546326189253338191137151058080440847386508234002370550598521725979530563555768972457502244621207099147386321549642910078728382925080511749265290946434892471132899558814755345135917722194447886835215740746913300951530108855662099990309337440198464524262026334139657193843897425289526833864749718937752784562753797398779762079559246762277138568704867040854797330899557757045377729497003281833773333411322150980303321647560828093440510186299153533005208229098577499493682454379070705280238931200558464379484215618958300691875920035794201661899617778755611737336243873917532479563386477159047510713850861594425704808813908093717391865212716540721801623659750382913874991862516747286948734317808057801132547177418218015298041271160367707712752492960256435423805554581581259667791546701694611952242453442365562429418179955140201308068224037763504159602159655948750351414585399858791317000308624638608645364569316882581826493294812935642404112270787598966174177391971210634079463189727399088706790424860170704760120671240921858975519302505429465486141452586768275416172324637397037536219664364584692778487656374485525855906275544193291124116846936009682470261011208040358119621759867522949663654734817118327940802045711119917008160114034518807465435629984574321480904209064004894099552034541530429223350518062387065737244241282445458250975621279231815011609701596986707314627076883248554427206186581211159323139578745369210304886285137241277946547228425556497078826443460188225831869394297062824890586933993312106959394371939114694577339594577468582444705258785036439984619035960349263771539960263686753268974570657655493213320269424599497210360743109172131001038286647974365096588852051716255159423844313275873624341308234447773397281959964007571671376796565182538570878194419643318482707233617600935266803030505939148134800857419954174669685651256350023556137618744395934564787708569208914261853821020685489634279289494388398260215806667360866536646821790487234954737812693193954570470993212465993201813700677932952631811194614408386937491676467840784034979416565338608768249066845372380694725111410439203064894112681710182514430131605837917492344159596526023850712339090934448311917627595221400645822662346514767379354269903318501117092555859553468645588033921393569143195248625363861061095862228538514262916474836646608456421404864003098014563762114975236169658956731046536561751231749211014187420749544192966116342333275992260835708471222996709345689332261273974622787087342891144721613790069648235484043138747932666772844252975796742225336958001462471871029923411164190623093502787116748829362560031174790078632754190163424203538512129526460787989536759479020371794094953972954953240611769308668380955817280850340045455502912489503932775678269538278232377286625108289353291268320540558723972474159570656801628215706042936865141139912217168117304205770313059698532498601190860511875464187838627714944710652737916278001203127881183370277892470084240003027864404439120858376167131037391738341370566969908469684514184823613748683540879544371886947986590614645832663226081213178199627098308430261898534589780884142468216868963638850723772904626176359263611296127160821771696676278199908029070859496224988163616999336943544584359220941399228037878645750178894414885957359377006420926770965952965336118670880239988533647400016349805133298174027109546648493704183069353232799694403253579642223488093209176312477370406963662655172160482209061635442648284631879866327317409159236251931116695748027934680833395303565024501453101144338212038997591793164950576888500989671044633001831213497805548955026278957580585361997600999290586866132317250026942885724286744336926704570507730018551770192469445235493058525285602049112427363165345005445495031876657972591453045754134102037598299682753880216589733348653779772786389606943623114828549769925924216068107956313986467111372241421524073972749617485809952957686124240849529288729361137403666321841805595929071367390906528727066369134732538489799735619361927440504759770785025164342087478556299076386825804079619979230242541869584545143668539878891812142183488240247327548357554013642908308940700674734161696629631498050099076738495234875206124021596052194638039987609458520498278141318435719961847456701232651746318399992644860100102174661161394227147144184214045519527957726118184583882354352252851864925474328011223809962240145228476773262594893580802020568694357884231446148267453382402895728098768855615180361467682426069930965024954596045683265078589640876532418177703676039881065857800575583503272345197450550990591192702048436031841342784052527848451747615975240160293546181635690718013494674715563131544319923100154009248838040986346024589261379865204423787680942275560965515835266283116739822788294635405717610164777107336257825377098298857933778520765868049199150750528502106817455828124281079834870267556145089762703045129500032706241697350470954589754150966643234424656274851073662437064625137429579086272006155341907822998940499872436755770524943963639055937478741644977915577649406211886435059618996327686746149319146563141280042621634778061655923899448396823696976247771757516084834389423164225821422228298486325685964423712585566694935799234389769928231961946652334868207998152609005775293050981617649193239426919554047485629130543628189541053734103409121103690925530349405237751286552366261614346593519832335981686590145246249758060380457859494638583291669479572085843831483678032142819162674779971678656880166535677841011105090422262025955142959512947941387445077373685092333657245998555884200190131462874004740632073482514849564428998988709220369593667298478695235817684031621286385120509583588831686635487962882854439152814949636921565097969599186163861245141487287417803037558671291482187453924078424477094014571924534057470338804237612082954391638398974403492741114898271293158517562489093421959029477108509697060007964178303761871428845751281228725637023978081709632390051437020773138891131911081192503373451384875303074060018695519250045290536970316368723109732663169161649956146137428947527788477722454115514739400127525244946494323542615388506806465586686047827374951370329911583454416914193518974202886141810352436906762185713117744090134963201514364267739007344835979587438995535918918434859865990912678800327695836388758688451864802081823835537075395172984014160813645216247341345350701829738388266985253030335261362080631935485012117096310514591814689212642108564176296555309527095110931199459459931008080556217921142379822421160634526318437216880710499912492118362222600343444600089683775597342666547534206760159073534710977506347479237550930798324026848642143072641620312241616646485436155209636362388408041278138653854023414213482999980623830889385592539806738682271128107136239620002903107418924607327962331362962445778964418907594880955487626158772238856389763363622099216101506855654390125658317873380886792666339028507959870648010460075104738582763324382170659431377357868220915245435637950146413427823411967371880870079217484292019231447069978928568011180659596665316373694382253615960681042107791923348657802426307563707994771338064445506957620651807644220071088048543812666881597092566507556578462328000589207516686086333958011590853847315357639956175698588419825277066080184534929364951507246327378952807821344156867546882354574635552161973062521409157446173704612972441528733160049698292080085487883485126595948348199589211831489397312847133025835158023429558553297135478324586693578673153226906857121853602287695334721654513723158615306056947798244822134788571042414190242002849009144414054533582144654191593533779464756100612715464623133001177123936693928196438577348026710699766566167156468349841909389493565551545336880970633547687847846411777942778401996183538037019056380748359373404070601519578150996875219400349876087861148291676330899706249993212267144446038129602113794459276426624741697181046585105924492976016420039372250011777291676610864367255450563055419173058745403878779047862715338641359324305217854820166199310688684104291403411291342232944752871563103035465038430329709363922657924086755507307102088307451584450748193041727449288708279089377523663883482889220955467245809971517518594960487516531659027682888768133700151667854392101736616482739940028519805603441776377640378963488692150954477704447871685537640086621852041763664376729388218322061997172009434449740285309154607134133264298783230174735992832429681750914518935218698283347958696579256707430774672841338012613671686933073470258403457069374924705430857055969934591994594602000548976600149847311367937848281388011675207888405127548542076925623580162182547043137460375507272926035106334745567217488057083774043618721252368517959078286613120153890091583048327095092409793619870150130423475435343990603508425683137046771100152907108448272166884334572105191409155825761473444103881580722423143611508732897144630677270605452874486401395265116313544195575044018850246264501588768393681200127976301568712065922128333541468333815208643047104484957013371482226121656693117025083155988299737521359032182526929774053694055945072671032733190835967525581628056864605978246707218190262689602155668178162742520843146688631931212312180985008311779185919470171244155289368166080823466964025280847616365280783630793438659537589928818860267222519932423279928087926378663766620280664441413122240526353922186681444896707675654154036965678439283531836457723080337687699099943427017322393783503825399737318943843670081692715654331861131476158243320747760676342586803195535793461085244261060596003290386117503484562400129582065864383266344126802277007834140477261548504975196139634311926259901716681053344767857155248957601414619181021711412079433422385045988475281609857743635415483642470684842107180841794804822301674104930128044275706744875392970107369057390287240271594966857892734990987171508995149106228170624213200679526161618399284085591578443453780256087366755306085098053720793083000568280232377068825310626124486025285263179199561212501064191096806038993243519799417876798643216523548238844002578252917433256372428297383191315859425828776554858713372912666968274844981930177824380646548900506453796304342295688843858209755973045413063434537542685775594722500898530050921858124194005911325067599333065994366900276386532654641867268244919942539722254827941563361777915771409537200833594896167491943447650701262518999839589295287945235766326973098805964271483147551605274969450636708716469258772686749818677580034533561656105598134958031559985329950039593919551297787368735372150728823588900135893616932373393577388089895873423716743907982239935779381762007352263090116480997252624131079778159798469711145188754273584594779605458155745786054187490200344063285581026915111063923600084390021807019993855256459346528275794527431924978934566033557328147657168624182659256172108544408522971529456182502958718400539567797051227772949880610488678312655584348636493656519063467811562300703530133206490447857610256411338311635971336241198800425075750771953724205161715230183059784810075856348602874644577743703118281626790512567802269069542234542110899508202351026520131923983054808092757503473900563822676021415183924489231376311501228000779092262456154318650274665404314809399399723542769211605028809404047646085859688910088072288754498660083446214036045102319098471630366890584934072078706417376982318217550398533522853465838067665476282039761301722031134743269181916808765411422655939911545172444528990839054787554421339178448774002537770977596339537710871586063590874867193303404152480222088215674032416407946256795449034310466062040817280278435338316263777700038990525900942311112120374244998723948731692393101673880305261004640712293526770188428674151406604512737838698606872818720935242547688932740005779325345901823023728480663485907746402035676413013357086897253649172091443293183610212640957997555647339611123707006658794676224116851270131245654583908323813713097756711533773082953406053179847210221199636504024868221464565203615644402822343408788425828123215711719551455575977075420594664337303327856325512496343948159119419625176417954501957049552040652632678832669894942662051105626541203711239893105325914575610081275164340988987601069785195001769724749980322270891141596747415734456811348330322110807170358717941108891468478183325838402368872201530634080501348412058815091692086507429185619828461723287364830069020933263306144312716161404909407166323433542949005503540696179828685672074230802653401592651231433184131567704814687292908295693924820066695318583811624387145321200912011169921293464600627196543475823618119186770463849510952263435402716294707323169839608395945114992773878728791370558025812183908733822633575113611982135788046730059977921560491262114605342984813988271215911686172194503840226573352877173580325090268900464024779827383651519905116786757156497004088715080876464044315027037348463904399787817091702198651526211568202621057597273197463847742691046184140372209682417865876203079050680083249092833767456151061331468687302131392654173976961545274331708712080320290328024061458054258103780953429689944979330363457723606045183879962889292283502947401625615409905127881502711814550337657930216575321135181043793479806112694251864054612565107752054888841026258497070030585643297859249071574331441375630956529677170931362677321878518378895628896167343827376234220917093845702758497167334230346377491329173890827547142248466196605880480995181269936551932711083337934320184512223719037007614766866899132550144086718781936170371167802635111099402815411634889117108370589345896541328796374141917115374056148095766277262364683196720350074502206992580075990386895748420365703058546191442387575366165013526316453244731654482669267631739332647189248173904349508490319082087585332689122276692398839722810067444908961361857567353067232665313724795326677554517227416752446847366690788397570025447122747562930696405137638732050323081917353806067205461359184408966974128964903399114745320855322761750509548581795642100747888734785373803943688021234782940674092920629852605357442629838394328884116115777945230405310608753254914001973693587464250381324964910627114810094505840554537006207830308200206573159419517955195811507289832124049542680988312895909731832834616384383549422398552111719150302986628215835371647089125251427868867165390691072226453529306501072084407157715265278882868840970919555154027017558111525151587403868564503045426874521566771666441865694843817159186187625811681208517761301669022685933557891690021603769630159671510720204795110197113386896633025494461235553042551539962839991942617040421943413380971628206984631993379636928442147144087708385072870758471410499123550468856673953814977970025786024812949656822121363340004183821788029009556651876805878286727327143140087142337404019899105519503572240970172733347531904230950712180857380314943632124710766885101267548640880423475069826913012416439899729603145182018058617491975030388778972905489979571977503042170000056223749483230328926475790712392869515230709090191446066732177983838378385997760753948461251728899923572611198417184244187553781217008165590578085969173906032522837948410582273583213448845431045836921134171815744390518970193750031106491270082953286904568793561410178638150077760370256547073411307349772726427074217351751791473761163452092257780551373341826528489286689703296380724863442737600461594405930726991010745090734431455728446248466490962434694109663616301945798221926482253622255410832680489429237803877635371764708850309124066560404380584505105867594301639896831804814398953935425873428361854543212064138892976806361042763686077553353517373770580257744592336135662298777760056355266715704210203290602041586548043373562128518964406044261524093535155275495360685271555851844620892001322198103887035397740575864842778217264555670846392945957955972340092476215439674804520442185746905447185228161545099140246501055384659336027815072662961936046013693262596816656504075268222951156701865246544927584291655614630969267702092336952925948158520824254758005583168614351502679450883382417655303068787797554125160689814314428527596897059572622896296923208233471468013773353031891911661817238119867695333046131633155520459207608749189895291108032802869203708715614349556437123543267753716583257653843292545497883543147031348830824915216029326696876674276147400173335479492119345721215848036198117180930084899416226306499411707346534296703919913755234165894729880240108201841799036343875138346781338997297791381445761085464101266506220436535191345481836731415400424263930287585312317664277753454626161307805315126019836025652091135216394875620191654101182078162261118941603298111726603902807336995439954757027831767136613776593553150235811091147027821163756041625672881037631747977999530304289032257792284858928139297371886382739457857314871133535341020161707849003699005522569994129268447696657062155006433576471445812425866945156978759129216425024911977055750387317064071758419023598595357352203239222686023611257369022408394237842997523974643757140214617593806767481770921757046211374445108860263990202689260960907978403275245334263727687162262502681519740037382716853744009953368484331829887700719333541887719964350328893824871905007718589494338499133234756868227998636682996977125582341874923053140071129680614858512122691987604116051244697911263302531950506642492596484885214321397032567723666692208837812199384679313618601778323785184290563273959749396662332067511806974331924536640810643187740440286848221971427687760909711796522220909428105110042316737573279096481923481205723160738767445050787698125321469985805803026255777613348035049467818403379322609874540616389690830731169338151967473524617692999752505142398233579256440332668229580070441793908840057769720003556480398291124521868744643717813126570412150123813022591235231562048953996134142803603651082736535246404940626808358860721843847310618246009764844303789776124185261036915632934320998102695171365440981036502998572145558682965292202523777706343235798991718721201562621344577110613299418347653211659451969215986796652664151129750666310183896664962832526861673322078710272243193660641507559807295672219162908454219021238458472810704473096551179460422314055278689845820566335158692508043004581110269670981358101851168051647852968148384505508027873208566891699638698825079813875332921955637845094000577777480666831595037979224577512616778944492573959532990439750764985817212324042185583371900620333371543710431261430075990881276581424339547430577179891963776228974598441316667997971133264693038109977144357504662065828812659377573622706285298200843374871707846774454530347646576459520466094594535766689638984460987995878959827302334024702897403083815110498505047966336562476067618126077438833598760533237002970106331272846618745205886372115348186774201362058913018082970971770952820765442786104118946081518997914120094658088184706716507339563924971636346424370582653920607784851952729157538307497532033023931796977488844881320896545698818770143892024853204699539000328312244061371684282457550211287270232512435035635341007475978410793496753594786561915569895132321197040227935678801818008051665987653322063008668301382869364193497252890061835057551333143377881863782580446564830260858875195368148339217510005982319271645511939867094890993360164887043085463287577133214467279714388659129228566507428045501734391683541617465562791895510698367642163957240856988475135677555847684531552759193380421470562733111808680815687837114417951906364913669416735926763988890901180214067687937954626608385919749233629262257409770191780772168733544703981041915391736273711081712575010090973494554938628353826449752573991516212900982669875232594717967340996804352187785964958994523047342467603566806112058922470993936922751696027741127023402325074753256568795856025128879380744493043877325543763359332901614872717749689289657269435401388448120237705717324118978896179837808060293834512688994924645689350059631471531413490061569075962770350235789488775441395202305763863621457517414201934228817832039039200014593716526183429522500637157288335173007489571440092042368151362206071615639703856100725279758962493819296952449129888113604125316333805185185862179046683480654551135279678420026707590808543964263753972967480225049502245549783194255495614529029237361419324507652204140748383632160153181981587657206233434519256536164209640559973994584446126354426370948231843936213219639398349603230940998360686610366181130199204186615288478325131032801852535381327140318517527687444164475976802626499034479142068135854498125995748072398134718443842771887500123861910495412286746663914896867300137232306989164017479461834413361926265770331704576323536255073078813037772024340355629070001703341869205650977667757997654832425060645852765225714468090476393887866379870199818138337802231388320443162233362985238828926317299626362268970443351208257061053258946445058268273575939479258255117265746198444359782662376374643211021328150042091292364689121114422988950300568036535737715363804902905459688474908242293086913600130311632842067470288571238304630045197942493931748657176872642835517486778053187445065967329778992192732212899498153004864338885926431424231616169009724443148680189702147329898624906905294736794640692971315684006887897641700536342333749300296465197072835669446166839370888891749496753449602666953833092198528923298920952400112982813382875868235285075140695417957690502608006542735757010221711634960310379894807199638087416166249617616252402304958838409988942130400627095520455369189378679471097408748073235504334039535073611747752621489905917007899021656816644153291534943660624231561551777470736135543734344158093660347304449611944606386465731295000651808435356300768924548161805682800032738168493505398858785538012630161035555643345455632466193741331695934148360513811416161860581830017049099602752227688088916497874435094646898094464805539116117038522644056316475727241132429392725928213754821758162980448582765406863284178661862902053041514514553843303570147716229958058547899003588519983482299383775118293613181065369596786051040649456812596856538130702112772187006076447970799478335571407368861809163853768603866544770917038226907426542726258944166438907441973781973339898440777706407701809706516712377360637948036362328257779380609391578675796124416115369019683831527151151715680989383416931285136726190827981699731405870488376655418525998482579538962233958559396243807091973924986494622430481805486677762163431930219005490762266724008482101773986642188249779083179486891970007338442250816817458147795242362658923567468932634548210978619946814303750259082761752852244210473381598248833324737105425417586977678968412498421246951874095122165476701678684863763274379166437987604696030481921432951442687117858986115704952579603179662513154588756527172877343677287353865111220383262279678857176482877423257366350223539144685332727313421663071947959041754244332375278096619691945452887921556567536722683668839639159241033980004904991966822961271102284107981931371281114536130496851259431788100871007213279643101866041806520125833488248106392021807899338744649298830179021220337122344269243648606735011863013322699051557864792978988719203715566523573090446994062788864857477756515573319682180742485364997404177981527906478984208326362974754886144851619414126210536894052511975018158200289722908262223678986564717217745902209210880415796196236079966336500535475087318196167929201145785070791727288735760406270787638114176361324364273681453475387835935330387701539918057711679439085326515876678565714483019039093362041421989305426093055346427243769714595921857463103290395383480579908965979699335279190229167000993243987074095862246366689879980578788731509796896523550254446664907777315810783051082900315974568831115742355715948711274212487746008804812250612843909137946699993201817489840382449451721732771895538015268278376654094546520425033719077887246576472207965657171356793856623186390064238887666966967814307722089335363370462323896074554348635981479202817727608689043497576257721832859642714602095122592526728871460724304960548046847971500013083771391786694840300085963222661800510089020792175221756814506694175808581414667536491266239815201916618506510142045173110694374669365556971857774160785814966937114151924700532477793613375957610913777501533657723432927393244794500190451574166286692352483366803869930542039133559840702548451387459587706587518054254252233172328211252846399418124333773994951850666468797664176482700943723112307044719703099320412366511678631113836166942713865411119731942886316771160458219010589753719907830129491823423074545633143798550108804415679288262970307597352586641313239618651142443000854393337310809111158996144885435175386428664822901021842937189579722485423344074027057485735035005357491281602168810525869418345061336583505562378307215367749536913760994707528438600645108858048359748600590242144994908797000368484968763422916772781199124847133004294392262107161724104355428878560302492601345607287940188609689155837143478002894356042626002539126950134662903386479103731176267263675529512160479734796970542706287060837776250945857901363061919085523172540061275549208365994462979837230949706364934288915344350670854101711502067282426360348877022922931091285604571996496104454382764841263668616611061784721970347462177738437977508654018131102663225886526584265322463187068604775293241107765953212684853837337190263735353643339571953362372924810376187529859246773842194109207747728677092221070144679491263826090288522869288902688707175365907744459301749955097437822536964075253313415363930055921377008264075176124952213791811861808798532201569946816199783439025898494628703352393619529475369229103935157296495237500307738836677644253665523960937392250935838249552129629803405371714603526513826718666699928591925651947418406203429566069439475627446350143824888421301457855458960586269230760626974510561771804994394975060252331069884876846500742916228366220520619725136500906758036084454017871201487380481674122660540857794122626693627113149666922038192871421360474174463741751506625195410599030905525071984217777892625391657349377025531568881534448798762248736973066586118891788959657307385129903632017811787005089056854109686873863783697689826368988169129413690056164443370180864231408593806561451073433579238552260863483820302838341070470790705736361090712769332738515678186253626315083976218389373871620392809585417236412002824806019055412070508057202241125922866199617945245218455158011006801146298571048493261044301252571231199830253266530029561946491118053585143318404837488291743137509493550721089963321701668364017145640213896503310688773155483860005761924533789237207772398979947139614747038997752939436192101876450885967903652196730228941644814890554018741336186425733658952391998617050613555335208084167988478776066821411215389484655935570261914959701514974186524510717873587923261347891221248374362265104285746422432884069455837869382455890122251812364274128196586608229492962157265656379416349553361384206018766441917311016018830765535889119105325546977584540505371323343598906469259885270367791537397138159549907064538188240462463063420207063033155396212296837393865748653988303283897712567459904737298209125594240584162784762783392198656297767497956365939558990593779199247814504813119383228149159831033246477887650678055687280341219317666674642665114853883122451767515109565895621465933326939075652976222760530986445549980368243896913491134407085328980907460841967078657352316193019950528084720863568823849936034235904739534868758573102907866643929789860268709575058571131933728982746796257630336744611418799407918542702772440727769494685548459005058431002639682786883155648332206245226917095312856154419879504870466387969059827714289929978741807895508390055461237168645633891910051606270141368213884859206152930207403151277265943811090348086687854594235616158296422008244896737192107506137874001126952168163858380225386499749571223659328554592662601115429743012728267499741533076421132954267478955869616297168732274072739769306756131485506690589251273978796018082744541589483780621185137396620801826885900878653748508562598765934340978920170484392012190120530723995964603405942738357601741343375990674705326419498643995509923980598123390752917219351877532674428239690803205024038340519970413765101206728292432881831593320697413759584312586322220439512714479494182801523434202852492812718121671334549503113739322428477083337140558033025347656694077008917445777870752558169216047106586223355043038396629724403560773822723476851511195398456297890900303949734588201020889895445802122096713989310222507968384721785699490044070605074802490318996926639425925901568421656615333540654415100670145323572275842644966125305636420876121960560626720619914163638680234352798255422471466080375181408147347531095247506004318489546214708936413018131137847736636319454428980326429540195846705858804281222044781249927191260982629412043660923509233003376851179824257692531622114871842168976140672343878847602441893594830809318595194660069696394400799140338578451380149411457860965775969124543119016856313901140488502178165318806752455079092293096619177010960675704674500202945133454157434723629355619550659228975726148155112371872896693533595224942515896814725339341195914008100575374190126899756304754523210992270241912849753397287199167576424072172178047290973630779063269084793724459495551877256759353352286377736709411557623604001544749962824425719873092292333878247429722550798742779883848184348755890787728947797292605468179830439113217776120825269908501518473196277580761352038861392003076943666768919585602397534554077622560945100228730724871427129557729027698002567629895782034652730621659365617869684484848448452548257144991298793327475206122357674669038650312655724970940526917991246316046526104149835682329189074390803586441123416931567194384084529254358700923587398932361073049766967174806821008108066785854753087630032903681370150499541252632440751037227542963998971037575449949789063138848039382538822914855655833482265141640436571363217147578842527449848666877082158633074556837743585726883175488823191109913885562356205115406635537330618263935010947452337374996014955495640732367206815098656220520334420840665924684102919661792640283984145130934069875999535012451370858934203849876775936972162221556842271000606644360926403554347837104250322740843146208646432466031216304514984857398322709833977606564949351239841913296569240356156646883683129346843975597216563011380891874922075978327352939312164084844443361957794484025216385445213937211570154141107850389130010049756897120402431256850122431968154593619476210347086703376366843472459629495873089929174758495152917352815345039771521248001590235162673514951934004698260568728101414351548101182871885241303026654593452874339527118049153172124272872125426326121574260499563512007953575127646225140388965484328863822978793649927686773550130032992391964787708083717568943373891493324880863748767170888299539351055014014439564571112564755027406395174840969015075225576574863629009221397309878450573482269559924386414857524914909674162182807912047359115715734828840185624437695738052969709877933596494751595484728873646974279608004237296762314585518338123147596105744245104503538293818196889142159622486007253317449622765383669766547064324812327056312180351546827644378029807928386204882446732998246627768248526253654076817348124116697895137853251995279258462222738769021217407468575479410593747340388328742318025007445631967925437389143149650328680385882564779579583903689540705154375738835174342470476107326129492034239849960087928514171298892901249026508711777927953789121958880823730174163890465819784739376259722203147972674818244271702080878218017002305135388108498188831260313617121882486932410314839804809629073670754893878176654679186501902989613833959836845692968866952319474974337676957753432145001201227236388334378302524776003967400995245615895095018908323097528550597265140374428097919505760633838480788731650645297250313004782928958412896300001359882615818290072744864592568747182683319201961280761848076665463916969883822670953111472404951551090086248493198803989779065523072690292506112556190795152974888869444554022978782991229630708676004881540323446472464159148939245791850917477113692682057682423383696602033638214338690771277576105549724063422697509147107774144127903447129182887391055673212401517903712162670680738044825481308787148341007366538915280849871508448952283402554987042184918633376953240334977134780505625925309532439662118661005430279809466171596860792422299656036592714671738687787137272851878535174471486461759939696135746914395664518033649582458811856279948466704932199127207861474470303820775646610275105351867408046320385935848129515876004960252677071687296249287783117328990040856108085776823887827449722176819908321665572929231155378811369787683534669941190314213531576929160300011408553653048110944283327187461484523812983221065058509916851068809536568955984973583075592219574152984201216691672275087788121179537356266570024565409315198814467318051406130450535772855516413572867136927766586359096964621755835080642612117613219910713707423174832873315326662381214444878214666216624175624137070412158865922307373510340624677593897300153906333117197663165992297790222313638799624108267747357143203350999439037694163853026079887676046001027958770652186835559580640820332903323012757766425758483716354439472894956144297212746412250758162198687703671996053982750131718224602013243345920972569493053203792546545079354552277231948246484322714660257787080848713799615441556004017228615907642104267350843175605275529636928419583626104846787739343626915176278851538964349656271315699112423285812466791037663224222432551005542462646623908515133624939672831037386992979668992721881553707768458687761527630077733732470315696500779920477795688021209023533672713503527511220220402289247919382715457858567812844813573087028560633887071117307733195264040407047971843134939600363298941387011434783596740176961980989525689260663771146335235063121901790417765193506593068494058221766852211974002257750380440824106389912234002153413905229614211732521622032741076944627939467376325446018722007562632408199945150384586533433014635525239943045569487619515531023017600854116274380753758103673969401103859732935115803086727714486435916589952971631825996239105577027376360436929437902440509670627873872681266668375028748292017803746611870595784906915722305625732532131465998850685190389984754005352378495689142989412563408567260918741150316439701090614933651962751982596016359150104030315395211192900329860701997532633745348258210713599454551657164341721019484329288137197437270607140964960201313812885483972206350315423752700640056448516997367697924229078718882325140004258716592165940607474668730046567704865517458734099339006702137119619014788405589043205677539956155617147100292008294955521272304791344487222751431262373454656965419699088366289930942918407385762177688853618808606916288043210868781702168385327988674284003963246450908372118692877355205012826370313201698341453751904279298851661229895823247580263285658664226126894277045113804706038157858673484870527746234094656120770192389413658855465273502996201125998607935822722422929072749373723106688850451190294598264159610703070429566322043100943932294120517889979106388320965655081023585121852303133536198951006997361730205640299667499530145669140184180043903383148561465472524277341116320991010727178375942418623531030433885701028106754911567696697219555013178357027244152648787019877016965494294089185721123759980589934222138733440188727959517016156261574829999959214476886095368675025785744828544194443967840483011348975842003093865621164670090870650675408290777188597008316261135233139024718826702575003149814066323834615079440453113217436569472047749685500865350954331045113265392085052487929478791566078289071120341688555963702754955167260387734433490552345485789417875951902143900364776202732698856513533264741319182208404241662533265536461521626213755298675615342241813247538024792244581830589966034811905247761005427203271277365747310803117590118689480900528384299370827296351892359469213772049090943951541928972642522360379269364050566637238371631446810253062032936627361630870451494580882579856167866884816257276734664166096249401129407268864024218466537693030243537775598659199836938114825049872513925849563498364026183158300079999762145013773707006592218616565371585100306123916287783506693022996660517510204479334635385642832162748309465317024773088019350357426007597215136836588149356192723385017004920830419678981199680392794851074819627788442150356255010479608174295971619896710592120157139059392589605060244464613027857888451511532957662417304663583622324564527351459541675136352062419540357977526115723232912637980125566436061215752441693420780881980972793422022822637880212660602023010825876233331371100226935902888042038931059850944945993947741289964686682534060817617474287812329671411678787674738781545928570871771191396894052697043784894507584391815604795141048473716282483744985736234371834590410979758914427216792330887685157023699297012222329302166999463655560234569388732951729206703531232237344590065514437969357489110612753736261893513061820011490304068712948715629284378001185778884297815631207421029592880144702792029866890547270102196799586596556464226011336728541759559874527561241325240228416284810065777203580552912058037192908294646733437596274560483990072182378839187247496512864161874309666865676664900575043928120182304772074033663273576906553060370036016146796237135291146090089055771355748795154683906237712655510456300439420403675598724066891944289596246774615057212211185581735931226677939082245363769509813909710215535725391043697614163362817699752314203172379748180346019066671586916855465763694689815940531447530307874964045847698280182005830749280461176349061337893991612877422518932398631815369870975392205695323578128280771618010822323641665641552128598697090687742388048642454466919774999024459190518413862942552969693877538236947437055907769193226616146634347131209247622287598904375110172921361594481250779307596349566206085249324396208244391763787948660179009939471420722874663246218326013873607540757877897431357524985727488907763793265460659735315963630008977692426711988877617380646674696328820746494254360714511736396155634872996804138014921036877359652429560870607169506089843959951047290862756010547438078066114134788831687939345896251905379237614650429435251046366963763404735307045460604826093684577944031783104545095523629243620282773434375052731234517645369455732542567840509880081847802440921676646894532818492510090543886224609448355873344295572088524294270867403741215788057654847711851725810239400529548270248136948083844507656342781016229881068920008821698598832446963968941853483040350937395228049888342593151872032189266143005619537750920745354565321327596057680076026301602707873248825073143726322241634821290895455972476195362170119111499959998195315478436018733292424951408777780207633605173749963231862834960007245020520675743700409126540284105951080963116636955842491238456283181158340202864770062772700330973779078463422942079320046274465294153183362197032586976086943365848982767250950778682897473997089862768353960994749695978104298844558108955633248842624865244393510293818610742905171491322999418840365895691984082616701986840662366327597693166987617249833100825225320325880632679519524078939061387798857287210906786067192303138863114864602656212200527936021786294059031009416215470725586857313702279455812524476314856007351265657582577608590103608146459242330160043055964462456365349010094214543523873018270816474288746065496716674284935608333776271641974834286600676073722441401921649106323539421625387905962167424717733300663441636696117519733664658839175757455342656684952151951326874641573077709037188487151551483911811024951589172022064914200882738081505278493957720108883399786540187012117152864535452799159606561649070987386002041969910093746616532599646206859135141767850441152243060529106029786764432349233918309417599383750014435849564578932942148916850322944188436322228001193938365071500562403972413300766441781401284149277368842473076372317249896596110332278429626980333761830829637382468525584712126158443344082984192750413821102658631431291101715574981803857513411557748736871527050055857565753889768115979462060770665052309535712332636274463731627685535504676221130028635011309393320036296596425452749942969720480343451975489488868834016273017154994507338816542622063401008787210730177850442472148520205177283065171680152945398866466320886002850933727170465615380744128238105876513420537688548033672369045389538736853438143740709867748266933754918117657238939005027359071169254302880316141010451918599054552127096002850227412373757256794131690860062512965235147181896035942408993552914522085741334035300980279822176010610702255166774059975428518317979400626294528153672702310228535456372154916173586360281621235303337753637194463807824339039369514669571971909500290711173687797928230292800253135182650105575028977055687715996987631562558324064551133730083743514289889583286387701830712156067460855554917637927398458770368273373127844327253883190823348960333230490631715396905024512186385950482718534296755259022358587865572631135090246489227217765662959531021911172970066090269537245160893945665821373758785208569812947789755911534632356047075645834581680837250373769467198632728566087130189015315513809387175278162359592867123101702251430988303698962087057498476392418891503856798071433530798709769499865928474645353712572969972592604693583861420207087086054565475508343524841052694849805687838531587971853332531764892632215240571757876154528255972927538878626744604906446864673251619013198182778422573021806617235139351872378833828866575944684463492772840954227533119851465257460781815010034113569071451938284034017105748346170352781679803453010188710554073280356064465531701013571663849772903608235037285700957741444749798873777953087823423739909655227364790295240091099861987695325641531377768589040150330349329514641535061539525976302298218696422773974068803390602565826021452741340956562225519297267380439393306481131808709950428105355048853543992284557785539839141499964478688835939737055396285113028229743342574820673315432899134846435114413225612245419779497472978216803780238907233046911750062567387292737212698688585379273860971748617761402060782812320470386619145078897452954020422746385125688577702309500096550650341843736797920525378916859438169558097030703631139345690340792282730543351258130131019060237637895979304834322329142433886744995700474853336324228455324394045028381418025926287158759293607423728801234202670083170501269286689033891402625411912340196863542893183988152930285358824788662280691383807500283806628994382508772804831573435298288547796520129247146315923819046383413250013346858477521554891662024482873977855685488393315957561704321021420853109359495113601708906225766921531889161450343616884488925492815882315453548208279108070831910655785102188745996815650633952063803068506509669322984419786354919382350451860919315221572070454484447864815305387536614178494097931909531993438223424439354590056657154388241206989405459479974061658806477799705938492858973773147708107840841608902902030063414490795302697960838166907105779497861196921143168375788590147841610692039986399959357385912820417016502204154319701994250972059177095980923420473525588366596475113613831203518864898745652149000202866297695407332424675344720394812859465043793763231854137726463432703189469129269842918459529883112279416717084606422935749114388105075228239849310358078705177968304100013389798618379159241174606523271726541087689765595802591688943996542278867117297421011369024354124059299182754988033138188387137191136909149904581052982579790312647459856542284828987633609862038751655634318038880175558507821512116191673031085661603526807185132752582656924934610851872508837348054443383210008672273425254214880823629521371882834189602879531716655315241969340936553109684395942690161456562453524791305814656944066877691227402296539328973689396774324252911188559474579578508959869340725972538048518810644729074728879731795828637778864179229223116899822095096620148955663762458168915966535776809747272966705375221268343627719894873990740157284377088523776565901772255647630572707235979384788126167371516952584536916182214950018704914366611744462110616683737218878410092544506721309658707137615467083413283182593890472292341323506276944724520891506974270086148195327243549396544397598475390784458521284582695892659789081093249537930997475341135268721322892283027641812649148301771893023690978754154568046760304744758810957835323411097544717079449344527484909268157523745336821385738845516245250858434419928404179030958461686572665813537572978855482905802236602863655077783845684795347774429521133322755732773373203399983070673128345380739742384608812265089608242706821921095772318967459681841792088212243684172898240830516732386786959431035524865854554986027492321570592141803866161567834060665622369739755722467352549315334328208268672043943849525032292956277584215064933893295908685591128871603692202231663268712254827540368767447698383229530999026453941742324806218315086079448561241364415542948750412405560416112467023627541130242445963731911494980054107814080618436664551656914428562426443879392929900016308106252905456741864428510375924738516086309324649805237501170834191547846214995220462220821474534020702017447303998503287690031399605675386756357265253874335944585974808417725629431623552598277522215680633413886810644232437249945786743348671286658243582086184972110578815694718660000467662440257431643713929620173067972818995101913425119051941246430701310402739271372195162811204212533747113802471633011105893983425435471760696241268322752584181276279119872663610065915204130685157868305523259222598609897940441333002629098014790329904461899438418879679220100904302156589896752084406422023283596701987233864659725023936062299323576873633739955661676317146621759737204883222921430278459487713091001271531423776984195877442455776847492789653387170118410487522751071263775833991777040663281791589246014145580734600082654307723319927807232158627683434005022492681983354024625478626862933371060494072589727262668934594721465740892612100979488339847595726454287439747728225507376353621756077500143034258377142885625995988214975179401753632860200407423638681740789543646776464524623453512691913237374817620137350460476284126435867496232362958731932377912413615890199206805384736312737270914548711314892608996580373748605450156372145306751784820909484381023002787627064242182878696057438546503401324254449486293249283100309409423534254441246196968447034293006820159406847150876478277206270853373089959318218563713786346836815139823134747333961830183685544500286261208077278617354426165188781495912232814700015245598745328168564150633695891217243500364998475804705705404844879133832126059270222124509734171319301054395452772415988719956164947234182746707581071075134282149450864915693957713583832932462117076643550404343543459374555295959610360530920981815952742339147489579919743384280127601684388342482077945160345300191676174750620248383511901217501731254818611466466510878428165540316797518123363186839443312591482828167984744696901141896001304438553838560465438604817563987359808247809705902899260675426555558568835244097980585044277629844308948269652192446793549421865141275800368583307885376122158126678922497497213623007138093428609724218319800486432861968469444231619475486591513093469476819070086283515218331477029823687877211098602797304684798713968520829950674154930584308407983315407579095283010694796878397419490560165267540534820704336253342196557379771574283425460024928713374620951356911999753376987441027784944627668120831499430819281062321260102658235558748132492021840549288176926327398575698931719668364714318432519865754026569390009227658211443419422383922069762104523904797425522354162453720557212372104842771602755136890681321344011306969415454487295098292825494731702188778694659036829741012657587053983862800171219879182277943619734905127769272065347179034258932386543067990680006429746039319693208169970050190761750247106245773903250212563740429946863471279880088622576191997039582038807720671489423331188026510786758797730007119902413596846896395788823092149523835882147164004380589393066308032474162902198427173478035407181206369072760213045354408327969670352844307241562164022437079580389187559182378622642198899488590627577312853878138608313029362669103760325812790444812735637726056802726477293413329058199087952456707405815731716980765215238296757365778068443889441640834871636214341180834682610895531806994993038997961803008215580609368791463452104414732032418791251067316780126268699812414648435329917304876937821309558217649111260214269888714424866399724524595292751101805319136350870085686629888164199346965988930640666284212051486454452434464810061757987032006342998214373505671372982225360797968651568330387353533352061707264559498774249293035825570632030348684752796097149718576471685896193619468916374305175836538073887416277186220504103874549475202183698123396027286782598433977299330253577451613799224357377004988577244603097827092381847960883780009025103298745130303473835766511784464237945162747608363562634831950256028119612305220986345603460225664613464090358072033161574874276213115793111817357605528809436035384682664662463490052436020676016948336282277411653437455473850118906803450492025409901175479404768246871524989673016056178095146879052015217597757480809802200911691019090933824937931911083039252675898692397535818914818020339180724809508912374659414224141788329759973249036119077930361679306302769774064309510399364768164301463715734298231299735515744891579076073563316056737678646397169071793619370846504766078871793943731122059569877366893440690113191359671350084788885582729980053798807637642077362971120295723364168352836992743232932118986077958225846831144996486930500551263672197620810972491027121875336901354503589301583716322201186330436988051520860204506392081376831113791328719432446677970987442533830095670051436061124330296966260081505195687863128255175619638221972912761133912126955750893078249406121131230719193893579420954309560243179686508975492311698897419737281236385787889492079491101471667207328300149782013627681051756731086666403120775766775712860632043238872267921582541101832460054306190662894403465675702789163145964043731354312897867976149633776600460292402336219856411243520823121612833535905955770555825205521890351527001681005443867764553536041349076768451668173927467631784465824643268070648707989088180478906628954053017958674561178555890152307457332683381617566214061404322896124542578689973763196805585665597732374179522609043403811770827131646935539487229361325894546616227371441733295233667055649963950790258319366273069641907621867589758965941886526884583854062664391718980009671090437928338721395561375390627322878745544703902541537528286475012741958275116987922366185362757152229773263617659439977630197390997528521189335858066137366249450677530102280347959058216337147079323897002403146025683804123637195717278908369902876116495344492692404417147710804411607301973762198406834388956307272601356129421742989870842511488889585827155014811123115524515752343961401118452916040513375009815251603384680224993713037824640546569194273506230008424657066890382204812211021991859174632857940510411624599152819162002247084828276165510910454422616003854183753220020712917231046427976973645493940397141046150717112897607906554788106539512533857195581401061383369999747732105851021021543010307711514946979673818666951683667489596555560214451045343757913433773659977925872557751341670087815353400188615115233591310974408182501507744283122416902132787160819978188064748972392824879566705282807301867257014200728974343671969421084753545421400295472707141766967309000185821113801399202646939607572269263639368779741403156694563120031258916425201795636292115621713842572135192456440053225028843549851579090698623698685511630296760136336689031158780041039830172679360258141392662134440656195723457919158295862887726658717329842278110264817476621513663563893488335921470701434626608138749776147892328442056800359591262055715927942978348991838466405965194321239170007127420823614175932138476412124164429501553922509663203553698583077000858807092000338397565016387747895786722863952795912821993401625005308516653988816612299173002071265459359810779673464821048389858638692193552588581383800990830625121252249600214818311046942203935660567471304932895952839869773863815465814634222194342050728576641425172450772404230478424922757120964971103512806100231553860484864956354711846807636986967158155114960287517552377348529935900628813191522052390811258505321793705902844595376205782925509289575174811905925754874787793197986176624745692200522768834864232589117847624841391963749540090334649938490896743790875428358588958172640760205265157599244702790472507934440222428811850844200534142697636902245007932368299638459770814906718914743415482210104297781949917043666242009619540079239436045633060196302724668970977123638500915496579848493011354586886612583241537220109368612796797059359065311740460298576845877066456302128453951796563563595289283208491550331776527379082593938836841582806732304703145195241650046430856742028417630618628678022440835123918689621177256532430242091748592706854211162278319781579041019527516653213321747529545974191423177502178040367448096568080968513542907148716959259028295566292821255208484227387922169353807275589115252691410778079565209118024068578630324382540957071068029001755370170954533392800289716663806824098138546472523395245887518896693912861322756468121598947506667958720661043667071745494795620878534979183817325711828380140812862191068578190446750403180221277216421110712042592636253849712888800720887901788656190721269090545025208911518076448727136757107817347950106240397795925110975991149131437483121956296757175005793463858082448029052927836321856311139789510471160278625183922466843637470939855156965072881234419254312136933174713531563038670191774944114880759846246806444026006183712909915821090766713102795252035817137243727740102977248124296971619361354588726372852237122159320349495138121774545621132380048818265866623308824097013046003266056641635317189898389519701503085766702475835790242817921245835096555751645212310501123237512625236966934314048879067584057088175840965251004929493907512440190329174515894884681593223862917632415486401573056434223750204799425274167243988985935363899072120677969598866277581425129831737119991936475887235725195453295028745204202685446802165181701146196831473434011355305355433409112392751575770585810880893251222380642361332616085445486121336936842834960879808290860659311239488979166452203773493035552061044365818039566032604208679773485912784744263560468502300128969826134744614036460863419494241038001437955358054053531015839781696446571760245546719829655111049831585334942075842378491520272658743935377295973876604010883052446884001993300538393441676176710755806969950630696285149189695781006224122235619748272066336017653023294531543293776449933534639102894521968936711764675919941594596334196039340952228562089740545817356734479184860599673191956304616021802513468771772353871859725088003352809235633320885524275334913374667459022659061363678221447922884519826964819509637552448471171464628204554350954615975952426652627311252329571850492728245744984156470318502967313940246023328557031446008394676076795195229882639304231209704357475298066113983286423863780919927291217234418433121341121460962287886376015701414737469320628271245864325550067737542991407834306801294641838827164163476976224259668202368446209889118777101599665013297523440427923731821637274988056308754475733352000007232382732405206919975651937590586735493020384527455256602806315400652800295142483166464428935287667205128440899006259507888613951981685786884416351670082538900568466313947616450818880604842936583805003804505456560129869261489633980642187124018173017287734262716981891481950111089464789301706735700620202464836775460968967036234472667098887936302729208394241356765488393939271409924715877926333508629320400856451591579900492088182750731798763491888787595701304883260081570155398943519369969731121449950696441380447614086165405842091449157805662532038677646279804414501855185478498976024323181218757459690528796226400164443573790968016565694527584554121783802719844632525703206958407419642415339637988659824143727239870084906428092178605493849319974600835457392932617803788942061728196779492316263203902817589618048017149978092247006302597596208481930345581044315682363381928295623266665928097310534766995704316052934666097128627994454474450595995627119315263171668734491920846420297503313636589895588819494425030262442555344503189984566478509245328204278130913579605992851460790966892236473403934991703598779938506630415784944819978226529860115517535225133799232473051052942205465689069587647902457906184062632944842722072707457251867189886472678098795252486085698343774217213277276579219943166004394335750879298439507365373120755031673664130348522760400516849853718525877680831456745946405908527666174470301388708462983064465897209192879045364604153154045901561199263509678166175536904797108161782048077990931442853168496981369657730751166807633573379311154561550760058621704588800584952366365954885437172835101816316909092057603135802331502614543325353431385670165745682688996812940340847658646156660940022523813061431440238706774294489167685662865932215034307865654171431907466971642720698919120007926729963410142666855953432501376730072018542074038630700034047455395141007801193642218886848545764116357545557124590843061196472085400216618664128779790494059344694627757394537545899013226762168343686265819806846404433293203684560676192697953751961732188793063518200005956281714132662986795480415006483979477203461449359735861390734927417312830749753495802643569133790531818418448122115072184410113548081969514072741715591132454936957346864522938883482649663031260019220848172368423868939233589088227283584507274225100792033403614287757851295242141914063738085338586608745145695515429132511329945775165775582141290734903693027001802490463376765497680361694846899118402971472803953366692050051335802280373245569695881630246694309296104652091208563544860423480029029318953826894195948952326070556435623223950001247155100780163735995775281941349472068370694047317571738842085903337149468690303154431249846169818426126674157480566666819037803787492661930787593114725812189733419939384388892024883601410432458087457655116508992525094799812134903563831690763393900714326326300019404497873039296998314911189839190309454884484109458626981823056262454834803881054695068137801118509626020421276697880714920980981747714097601389445784629515227977739984438731037098343588411139898815082979936118749045927007334798027322965344904148721948842034772004651611487155789181976536014484657529605947416914332717947647164575722890527276292912504661967832114557634569860572974773660626387921125741136018303184214926044238961494072010431001732677170904510320392549078863310366445500283760921387306895292862768550655211306616584675259481400755845594929869568903655959525747901584136857765474072962102444675763305610939204808044478679111741917534455378712768281153280396363015604834367075620883645858538223570157082426091308656408081933572452489426110810930994208105038100289939399194308708107117227129613131769917528392125836759919352240742537319651524616706476418038535401750329160289142104941836319014875678190963831530482547576366233105158766796333125794778768472019885082380418600302178767500297629201147949201830186654418924385822607423973848163615666163742887951523072606423455110183373066268473298632492839689137806862244157578127968196795646113909047524279535123552226538159394178709537773365082604263838734408704842030724618911331212638071028812675257690432784564235353576074460712277030656638572335865638959842265420239193495554266881565674366312365854967700651449853887411109139702983041385229963890525839371551481767980915757625426085573979366835003389993116218330489581196265610416669663600664738113096736159542975548906499631512189906186552026108576820646641139673771453956509349030861633441911509683732087326249897477246451594570771971073153132633287414140239198598062141815618199247336143795846105996396381588397887288097681142895747319411592313243657135373816421784758783614666256834856025339862030041140288825859774496937057263272584367778062099228519399649537569271095856099107027829291640457848397223099469955842247878860920795960341423629323836855801182171036319089593887137956861960014933619539588791295010666171834794341314025053897316236271749067428852519376240878115893655624990361829505239943235887800903707772353367723595238388531481004942370902855884242122794703720064650837360300570389946915433738372987994387579694645150203825586589803061235456657048605040070477645192590179479678649426114715881241416195102291889473510935984046195093712355106509466067441376510811447311105382376146419004536666885004068985022495842802913175701018416198553685977927356432642038140309996777449793810820779562682730748828189673885528549044787365506787801260340705271487601856886122867786454749369181181621743800179102219267603521607661280079065750271435052423203889442639120620684926525971707527407506686343611763106550993069478943027763672243156985662186200303087299447994673986377949953309482384400471335454969608885740511891162598228728124739180340413162629111882409996391245525559459304161528491754871966486123293205513964663742477803218767229522304132635317719666555012999535752638868280822459111808564874413660981362875090023010098558029047917385426098044549654411883386352664848740917996586722073353097821118751416838012237031715489225489777153614378427933003936278788569521957863965464943084795672538638909388056804997272014530732011356818124895249556353577278221795120234193417218872955066671361147753594160725726379186435126795128739104155781242170838193547968067539916275654120806474906630079453414478069943778993542456037553850179696806196462992556131174064528323162100214438808693148462103034237965345645620579139948169856858279032251820705531419490896615584214232319646970412211167719924596670694842848299360063823940155131276355250836751926029397400029587061630115408357666223810464096242879235424686805352640955734198298015726681923633756025685596807937166587221209700041914182889900599853247469552938862751683799046815651306573344817229021567113065129497345200086532138347773000476095139178345245355747975078626597046410939058268774334072873139805799904251072267018303967374776035994934541430501382817720982914062315501532255397792326614611677284829646227032360622290645866198648280418260939056593900359751577193388198927228335362072951066780652305616414495506752435659213869520337288708998640888179573994427147009975617500816494945850138109805397236458265168442092222477127130112097046758766670473722029228786813910074633703684241350335855310623219880817300389654683271775293297480565465541817020140429617473390596910073385270685126651075438026746851678195043286575601085716618320672584934712556153281897219187550481687995465623461271123685894897431869842311691823804717128821776724660946658505202419727315152264521390551080991477193952232619358235476080484543222392772834203492348434322997444870495328446501972836809775279837998346995919314613514214920901622071538341201627251154294046745791848435052125012857143891299145926181792382434536974197850350347579454578309106874882894764929330555586932524699055078651689350401003428254612413301500073598777888844799049092049191308197973200970959663305155427097957625089130143441030071748738677327953709129942566777456794772852298897601196116993564777147941977173475566846481252820357276962118846028853122203457213577665254996798479247053392733017496432608678033790064980661264884021691970956691094208859883635826850690648273220907473467449933730367653167656916828530045180160195999182587648276447094117698866830550384781477980920138937636170516548298117183109306567443254226997217287597360350148624120447897210967840220172171696548757554172512509370365672342491899898698189190143457167680936302138269750957539008732993102407094998679409917555198832640423959288417311179505741629754643983778603296443056247110650114094361478972212403938254714840546205541733156841616842161587203025262960763688540541745877046888035897959760470862512734373843710037826556324434546958603116352195408878653180937474664574940550744916172352595583514207530961840476043187240471116858540614463130024384286258450907119560013001336947547337687623794596091853961250427128444948290901004074156313261498838894496805934701991020540536104205620532258416350038344940170108584690441716372613561638475793335580118635925237920877695490547600172486936818728225255036748810450907265103971945154609624386488303656180269998043064375779092212502895616040962120718343926273913645797388537326208992067671836314138828814613733192431639311372652579804480679786805129691402687522352336343170325834184223013232022800238453922172528475019886899827201019034556027542861023065199807894808949100311168380128036312394067735941067751332664696491955604718681902064036733572953090687651668984811168605769707392425395481107827913804582009485530112192897385301734485754852302651917395448395090968661777940751392166405184784413368270097118576047579842625028880604651204360103373367022480700730441639570175638636650104635289119177637350360845806911346724262493746230780636887384475684040210589377085505729329566365180020954035247935466230161827896611835759429135089008266405847990714001598622897812793420567589444281535052881025783239052736290278354419721588852945921332888090855551973286292145735326710311218903747034174985869984757784449991675788615892056468410772430724221941427108729450497242530179702964750751427941540142434062113337297391884996561004530132738842758763344184183396501555793214204245612067809663890677089402712430651654077117912823645810269671294061128809866781094058174795359722419614608400249792525590542496058807793928833890423815792938109562767609567511696421338483037197325984278123308361892767486236905778003091710769202184391673747245426887788466139051541226675270276920006586020653164344072128480670503145296169691619848101072005378254587369504940889811508321407841851374063193327338357854773242904958291900382836851036912040753463272268331387071569837562345457091464857725493641698386085913535041826334438167731919616785461120681939927931361657320281075131891655801539581632361402978255318432388768284778510702216721717134112238943303338528486971493806752523140428296549397107752891143801433945250312340547693144227421658268867551762982718803552748142326539373039001746983383150815925904316846844422598373088156682407238709050087350993412295942807442557127331270771830655314442610325027288647432992931471268120264357955979369877355466722754007087198850391503193775274162984141224117421430892958399987063796967060788735372187153503416828199962294176699009218928489937256806283745149957873384867759479975689112182530546086633744085769804907070255945264959116524006649180581644986147546972390889219376494512447855472733958568288773344908757273455974817362201556964808533726252655271264379351230526254680181620106280939764393148957077431117749532224087504506779375668279046156416957037064274739991366631436072936099134507465402566514009612668401188902787456441039902454226986717446015487285665981422908584358094141308634345251776910646789640315751454509116206920342531088636790565702223547483087869064571947197745163800252127618116691020266079733069344773433356702531331738131186673824120940443257840754314408266840124853294280882289574716860547989663323122610682858042569046945385194242007880105763133367682439275759324663646925949981327484773721571082347915788307940587466376082900120237609778382901036691368532896436971788445344900631156056262887899880918608465377163887967784822002852673806883319835565670696866549971237275824605091777925780259717229442860202603538503891067308403734484355956902411129010136521071257465601089422609353536844221977348309295308022103816632690977482964259412446001162899742286767615474115571616708291318400704960305606526021669538046868255960602349080530660008459710245627782677157652024101813375339354746511367455730413629402076726485953342753137686208490730662611161915786695205050741025384583612010100556718189254817276733372458034795950901507081982329355603370460748243080685549126130215089825834307003622036172299296151687380882488694896250801870072291368353929891191809375851298128724567314635311721595748166004855780203797932854896482413190981988826652652037419172881911706696855845443612520450285082000104576475218524270485774182149716245688090618445408738375506247142065023682925804275043040706043902924441556380773234716726599191297690667871739486738708149655694421422093321191782259655516092017398573972707511069180549675001656335719272890955112522225162650169113970542680970220729931826681077926973785576214186948555693425300507007274254983195084285666524275368891273512096203008972069944785065850756279754002153251571977235917492659900676610777463595145410412929316215650918394161850804178134212618912921025878430202520077320341140263868147877778949982758732425104815273003612687256988965559554366480782760281880794939830009280989807656453622511079743255183751669617011199725115215276068313750184413380186639974470584894341294050975215504565042242789255618624457602221098748774424404982643400851085471701708207116605785169063701338842361729978949704699166217464438681051699249724390740850377256528515074050265358381784326299217804992379124957734684818876153289949826457398040075777187500792635907062757366491701321733052366738384822520138512163874081487796384247195894921299140420905604789925442930878749186140662601195942483065958423664543987885782793476895553864526741994543415159863626988542147667763361677943613154065831446621376344909642583658175713706338654392846849353294166046082714822889111299601256420632706970211564662116004535437459781879335855979936311549764587451527025920816619901223721782197316782395730015231089883560305560162411706941363235499058575101311042612885918486744202579792325945027049247178730383391342122366179629316896865017897094467815675969269594762228673860742383086124538266756518186357779416139134220680832110063565437480876059539594067737205621523707492022429373683102381926535622678995962032440895928159203613467481230273401702733112312564681575256185800168349341302862671427824117223725568564240329031320066154819953402093002467718013639877190660225101153417004146904783284603611993848704022552905089071426407771239749024506078436579245754060222890136934277847274982955396058835921385387184852832749796937547148578637366955262134238454034978397515988450983172487061019524226312375222067756751349043469325107642760120438102200641386068100135126701524124859868758345691687769761005884769738798060967009171066729875727639487517642115318215180783902204616297276551372684109624473682214606516365361725308155604974255891940675105704598149302849698178528290168130210602753801295291677054542899466150555731651490448850235038875163997469307560086030929009980893107090243054577234903797275659126008193510808783261975945617861248464669886509437642046541288728478919945987119367500621384895686900353366581504265279088690567696712717564803677559600379180078613290895135148063022487995931484026557904908903255582172661614775551121746807094800054278379939283726333931436628924709047827816250209001096085382794256366949582737617499476729248638385427887180630989695344114723023358373728885629400503781766920948519440583881309837814848388073800632023876998832802634803882618003241046822996085349163292379193994454013197000450575820459236925668294704830712786679088355750950935364469971182408442778331850683065948680412392355511171495443303719544290772285522415296740771026197866945420612347247969604586990172680356651144427628033467439288762892101486371775380864653864780775704444946699097613484772606971292966672572840434458408585048962433325515645335814005429233776269632073235357668089296461563797881021781155158742239336882667471298489416724422365972090920538693308365914291072674597808936106985924803629969372619502225004383871023531745591687274071670427341130589444560103828570500257153420295071375238274213169540751349060503643500752823236775286704616763938155455420530228013864234328668062517709025907419489874870881845525063793739913900160425177963373554998021935314157717908376566829358723885731061963811428023904601806520750834065422540221332439386442756954241942645075637832620269168779033762923001287603095733368329685492336825670314197470038346642532607496416644741104016354042710509813362782213097581130574644561485861700933519473390666827018420001497786766024163510112375313893990612990486280993590714685457035029459980819816113538244184419286457893613708534519632607099237778898422199927016514730816337896716602716775686967701281163432252115211806241966761107493068088912815894355185806643209868982683126564506209772908875083395029344298942676856049827272896002212680927012635204885686159574190859802993154918639876161464375000475715982030413584654080333246819833858274537036045067262905306194947367988197072842114047788900884801983366361974195451003743299640995803787897396874243085942237667572812549691236940399258680658570154954073966372902230683412374365169933335749196176800349557406669798898818394732926706511227486072386779834631424526880121195677162156727991408263544292704491851454843744417430748831834007895354631197679865166104149000669489995499081201186168144984603999431548915152119960697949605598843546011008656300574411294494807801435176663764276922875422675751832308353795073245129657514288019807019147385154497156329757751700237081727606124573717867240608073462259026891499839820810102692031672304595906595208985174338880665264800484786559632899852196321145409810664535918603153486062632329993926948130080789285113293284987423328201458465693219193255812139926439184641921705459937330502261092498210430906056374761502851781024885441664030130582988692596250332870083453247692892986759228368820574117107807166547991280233559622170253536852681127890966093471881022691930389237669840066503995881258091929829459960554614282617947764997414699359448118145007658169536558398259614371300157501405267368778938627911968128943104289964098534987165826847624311838092634182784859978584354790933846946756705382624635040559562015708901131506781435756568733473376543598047523428204885361272512019792729362438220929457656216652067090477787331333213605238814281210658819367537562992693935348378636505924274585491403747094845753307559109487588419104208261076590190619490255941563445397843572036683275511604220188464306654170868833155810438573486878166810458806495543152508120935003003516902021411245943522797547408699838355359706144235601181536199505381534288811805435252871545013298041458126699142476762896094606307684187510622395975330523911892726288707567699666877254838902535208335968064218826990210076392517325156210107895825721893688960505552750447307347013510968676238484625984701127084373232835797714363533193100122380586094644605627864230704233285127431871374486075374803759079822861613801416535421804512574039641749282796485753999064474666447123812473938510673582401068994778895669876110270749767564411816767795948132310501170372292775138463249908111826398881873604377903059677962145752041148081556959266323506482735145683510080909404458037705731143388368314639160433421228903117106413056425267990403158014835645692858087147354223960195212514753533913625498928749586228366019785152187724638739940135322124580260454017390285045250881229681623320337364640347915171837777336600614971213822064757155872958343194494598231079427478624509267551591889709839046997322160672958695596532768392169217629908657000882362383076890192303488467855612022616383283340662008796949559013687483984236289378850968892383424659442590876363661363141603602346271717690241572278151742108880740180001799951352354950739806424789230381740590912905607138472522263818756600924786373166860247431780755076802189287790841496401982318168103880093078138697362282814786174611780577912967227101075041311531573884885021960900589838834600829733888001895844843757864718698962173275796838293186919329665365367686518614067138462032036345865126643998512566600114991985140017806644493914169354308278905938171911374049256286175876305934368081279211543624888286036873389236334928905304951583188522471325085253249604180093985823135967474249839237224590904128118171278506186667832689881529220990103819865230872484998370966239156221669161957209566167914132712057553623135330087888212992347858458234578144050942016677123014528352767571848130218903076388141397699137659449904258632902195173344315774892789802455055575033562028981714443936860157300509925850652072661784541653459668117171792671819320230150884683382808654593656849278690918329869591564801701609315041904824259496446509361321207455663426090077652400109219549457918879845038541475959036364240302503007621142597361960454003356724105856706812317449033728868985464641503753545419970416732466380686204685616163841075698341678150773824101797295030620370959299235167986055551613062942605396064291956057178090007895524315423289540491102813528073247230568583124196890212624286214562183801250686997646504103687589869564725064058024948435964859095328148705316795596287602479156533692027985973604919177026587113065600796836919609508561016781003114914072473464935781224363783147001195222787098246664754432919126161184395607657089247166180812419953926827051240633609526517470306727609402031977246776495639829443680814462591694174379084339268982864041190706605803321205276737758535516019584164525151683740992914457633632669881861051951383581528218992952205381567006762935669090053106871262918343865322035285632299793343166792228024212972382308138538502213127424207828491714694711078319201238370466360556619027943428142363562250395126322194629109254099474412905489198061077158035594936803899110012599554230984043002951888096591487900963758932769158571363956706120283821744847656750004967812928712412203907656661285503857318837782873846768142320464405482786215797154196813976585274816822936637703143383493346540649645967807655351126471987303328943297975565029561471719065585715427759144789452831873417726951622607480679607991386111248028234159615970137784329922245884526936386193707057848364249384352050283327131187128770399128645706352117879979353282510630523472461442253963285697293673128380639635022541037909492190781741895592987269417618070746659469203218378379008758375908026992963423424151589909479951832117227011904770086977180647156738478541048350449532125941341215877547957141683885845903891435050224968844819677354017319846127299435869584183609918342477173725361976761525032371055631824931352353072923765327318498033318944834712465006644386514268584777971696485353746121936592370089653964153205480862862132044318061160321436375922843911256816055460385750751301812323239466399311427841173312107830067733459471749556064007590589272708048686607208621622740922903863987331221641799101635074517931637445708014814076310192484910152972457225269921332804159424287798257174708003854743256062586943865209100084643922359944264164194888671314128502006510141956231762795290838042609698402098328114823226191241962439177526447266422539691039280415959069565451084278968749916764918529690478422392147732485734581904312619675994066145891621586555686362223241308816414824866359498927929830484301992112868676722664642560565877916932507668587961460293395425781988316706737060724771327671328443750466336983480547067829419631547223107376311773974927309092201145175136988430484816891583227912263408972351301624475691918918925484532420243976688679681511999487578023940811753363357183981948667978091522308756028968508283551118390704658380189771389760222903906590330499012049134093498223097969492083722861847953533156321667432416755878404275691608847019073178514860345186031746355510716758917611683831107770868462473635710885051868899475280228929638744053768810794189972954475515024267554685315457761130149697566213392070752689228133685281971488219894303988082890781784179917104280629121326129059943090266642600827293508884914072349864376628202285367752958305505852972314342113188641008412684295204745202212089221989273509525524916795792372166561733990878465043372038592625497405403210022002660152222160640770876421388982109168149987020707560020303318329173024875344882022969345963519904986790060305150469324627152769927918341049938831912845802437749029898281184414576619789531124754517523099972680179221346626337473140359987517129972226884177983291945551604171446982707550060754410002535265221453382632092826642440841528766980048084029790276088426769526606891678155569776953219546432763598569094466331791096422796852087837274327732387446934721459034083331501054831202462803532757904665381227585957797325212209098169809836423403468888162625985178602726557113013332964505821641372072703498967988680480558605408962409668000547118261085858782436420955812218358709099894107660011423006319152018602922108658036439498167035378653638189535031304343504257782259361817923933653575397229083481149516515201236538379192658502364222782156184481776206318462256221620880705581864722538290143266104823446021661735969563855499938425280939025760556336127076224528683381806762564402730912240845200316956011079000977594109630700513665574193804195106246396202641977742484461009221408913898493742924277540014297465266714793063109074140800420654684475152563696042751108022203215523176249576937763429772577479354131491635029925185115882735480109305390301979857647223791327363608938708062361701479850772461839627346227311338265216500292570730777825351340476041214559022225772465101443694891068477692678740487084475740899992479432772132824345292297261367144762161280549342517645298565448387408301862327295733051687174341163533608344131496029808925419318889505281885774465926961113909640675285436599805217087497273031522689187622242350667759132191116110802312104711587670604442754414350433194759323887388771462459410498462040883901421932869379930926034399885704418063263426926672763422879293591739900747354198790371830222927147901745428792182167008469184860205511028527447758355292939356640084880447946561465600241701963689483832880237127382949816317406463763203879256686769293920868613722800897232016872656810482121957358716533430147969035465000253245426775336954885863311180835727388476824483074700664168667883936419015941708571053669896883910662713643659855383657428645369615841909143569767097218537330447326960497122890626250101725960206191312095457647295346201588438576545156011609688025777875660345436731424767872908412124423394902324836015022242097316039475650496810041249225429971207819432931563926876737058397635850898558902240841238925743932434288645384162104999178965792749722658416341436194035461376177006029037031744316323335065867112291329326431970768230309530106511760103054449977322229798660969633654178566986530911400486116612265493154464779675229385126982088227129232578115136827616368791595420817304562395706436806953494912507434573774514478123805072724145544877170723698561227934015248437636627072534668767872766166115868281425868714688108562632966198650514989958327512127117752979220703869731819966223859041533816885279145089943356147913838528969962951823794955125935376469832224669641132862289207255553648857913016382603029085492611119476668113189270733987928198858637863530791314503438043367582547209040700563309953286352552471714508784589175474954471906979632995575313683020101516712137752458317068928033752117783316763005976328890757746482425372850356555329712908353504508530757516487210076873412278005938617039321266903165699065633222372407518183870798223517618613864438227885387275090065437937565709999316707720663552779440224566266812006347177254981742895720747265984411520052168056719770458557411206321001586006508167377345134576657258781019118281217869679218674325777123677849615976203121258735347731655835068671704559207767115485201497373539433527096935746325953606852459436728744183607221788244389245643195495031300408651884436719629279646751670991143342310933338124904604398931925097493177883972287721564836747949536470438359495028680489672046307213100479134981146730262962036492956858391236600952816379940367715895412638605268014106512051204080129997861740233023621075168556048436574880410857533930087077407261551563137410769863019751064952515142464035745374700083221812712800954978138632308951382579206199613029388880168752784791242911563359694059593148837023397667705174616532438464847628433337005892592935834862591977293300449809682909589346982190876837521644243482104518877096485682607166103824332479654426968015258176410322255525239355957865432505816820022505383600347550304082362156410231896647612127466348722222431647128044237137014840117060727190481661667754947392454152409212029698696038174733604320927585523330934436267952917213326478171586871248446037607164063045482629449749959772333642520373847663156038728855354576906201572802427539355399377454751274392102099591760609493402962211851160894824967789999183072748794875970253658184233615188601667149623674308090743831834520098423786687122689489094234046824801560985297450827948006996203342127585517541657508030528853389897744015999981650287390945143722709668572254429556550958982431202955987274371456952314517391315787167471167392161788903704529474263958673482065312468049582053636301123557226264900843472825807118248409486503808391968284511999796299829920069145550504750006473041476005893279252079979142149708618773165633396735084560055922159871262059578951936548854910028040931968101805117851892728296672385092203921622891399069076908793761479640065730877301530426560388684830382729764644501895686998779044346112553657173250732438670636979088133533688940237829639495138396782849357573060687103852139013102767730848398545707197517508806942364583956027148659286143745157821747125094911374521612536560477108939254730181456619668276037484443596964682694302067716950707819238102337462195037408886197957288572083567394888212601464870189949794302194529145323413205847105076395176675012431214954089029327818521573511350357230898461106323115609319517019588998177847215069936476744969622942664253227458965780026067809016843489232279449986966588084282645817922508579354004787566074366806046553935999540060674821392816669581986544862537925945868717999529403480905148443121788358120973379903918072942734168706336676283240182062961585680165000828525458047887277022116903258668742173354301119938106665449321081169115808209726825802785250768186013600840466936766306764651940593220084972564670783744887722959699856867768142572521376010549092418124239709328764981055639366270635586594200471123938911227284319186578539447868570377643989406765414061341345126240031844013810184509456177529143403703630031328516201781399909862763242977568798142171646556065385978195582388848141205467718745934424200890904002745761034179845443326473114738240832210911992108148867126626201607183984702560924253451621400539656559530467388536987579970747004799171957616710126825053380955030479475460710990816543622484029583390367382006288404169180215328238774205436137964477537908943499561005736381564162831717435029482358604112817994608713353726266085299441259128320667698906930029652564596262707524012718042735993534318441392698576329632001408102746067591665255890014469409216134506013238075823096882540179502965254852726312529337527743499206816757745923753366121758688687720284030013332833449237549611861600525036451237129273479926115394288790374828718998019263891321428526242129021457866728883133872315264872418001769412803075412869571220070936088659703204369314952244442536089963386034168234782409259091038703960912530461264509806859688211060678726519543559761199738885549616456199506009889278049245057484010956012171379337816205834406054466414334397824109095556467870209040696805947775232733231052817756142847563558582075210431614558384859110051508939401556513649279378277767246512573092439754031311550436351891026647180510979472847361562319831763321966330956294133245960214529288687434968051988041630992048659962706807550958735040828102878974875779792871919727954667878396226048716350839133616922400892578106698778052283126736144248595353443552741963396158065868647994409194410914003463514328625336676737277460099123708722744720772369490437945471381052505119427440490136192012273041801934787153417017249241681188097478447198733462833041764184074129781253059217929474516282857315315640142237560102626666985601958322322222497087444779718747245705004506858818909607006144055442230267113594673249216683390898334874299166215172132789043384438074712667217224513448921816893572496444235614524254464079885712417305242632300758553524338979513592776194678504770116904797775954639362587489489582736904151510499519686159550964582525435762309868548789611630766842948293302987650199340680175049264021165180802896500287824762438494429392589948992002201938572670762285956473264110198366575860341423597778569783124388640666055485856823867432146338076194817939002419379685535197009749370238543748190228788551377884013996305424232853377996286068774497503945399904806802094789497797874087062385441849279304425038143416021085166334013869530911265364354449533028160260461029230576939090484196014466887706304638260868739265890991957092456826899616635645486233303289351354054157435518866665146870560026529656311418069434377289512638528498309019591752336548123856250453216364893047195233751620820406175512612430693976674109714824513125222453011268274718314880947084767044162938721046108932001419214676859907710460882396051422860806208244748542574525879253778477777146092342712700443778501976876605618412970585145962673581707948126180785540158270201004144309577873355815160063653255593831031151132629581789201282479574834278936789974870675639818369227569140793291186874072819320254780586272096144407510971689840986795062321172354589682913182426164494165214630168184562176130914443347199069645819315433141493641058240326501611398572560706753590691164212698713071118616620299679419752922701933456282389540619601179510288838511080534752843049963375746649437596624711724625186172084457122427443906599255374075469588920975048878930032999494357361756870358473214759664076064300198595166197264858364971436719068378788978453678284760906788552682995922652108493842243032162221609267267208608615050980384195885207769241732556543521611032299532990545022600432361142717501349926327308966901247287996934898492962845411454733924807185276354451837923929176882196585888888504166776352233934136216308701897615434804059156638355712310581557146666860804660013555071886409557510306915939854826839246451707186434859905440420670674791308551219553451373276963283042583956658307658827756716026834486099673094952397516195760230493067345661484095018106881801804622517205229300702984777511407449729751285735626097369142983241590306118096121770376874923838555003921555795604805810283612434059397872441018062679811722327770183031990057814736461528185330617818790533405109711930210189587238554333399408192566068933216545344609602787074723791566639827798778150587405415045992794619872153988887609851105497854067440539911661636516741935980205072219380240839633800002765658643600286937615996878364849413415647027900432157217761740126897717506758079100905769591871944651857969488756281021807349168163438608088109052258659414835381046090716317011263083096851526715074490989618044664803423753851536012286855807383234008206523778145056841017877128773550172793497654945465158963935278752815307959234506614840750179272837723726215175459075318889102948689216015337089709758021160101560306094708211759714776383511396290530657233681806517244084534224193070586283716545786308330380034029725116064149600179554174264817469723911816725629963458693782933545569413438455803429769509613974960794049604050066671108868378828385495440921139470874830806244324914976143442001927018959030745296910804343280800019793648327470472180027492262699537218580293726137879349235440380165187617880502206587821197161439332331108562311051740470625436601968314767562617890539515072559242919127755209116951672274810584082721211799774145713943712735411458875720480256009087216498295062234369141085465558269680197010163722405058949705636047409350396712709244106118674195917517032850009758130003414996708815909103268053955714721804888028165664022864296454303973063095295958294371023306238980795446589416822600270292693675248954495367898932518516758213789655238442701183598043824382161442613204095024942317086358954295398754631059989452482176455374182233046982793264322402231837875490731486691601652959096850241596834256766547249910860934870512055579527917195543412809283103012702081785836470401169129092901368831103678574067770733785227355170744308361062025142946465199560349433802347454128715446883924967049332279200379128806102354680201234869836476639567956482836834092997135237674885391510381591930142072070037322620636361337721652882781850610511012811188615695188225192807021509403344913321867856246155851978471010067673808418402546068186708432211852726535167683814364195325494366198188956134404464331544956460330068256445691532386748138876567680959988395890229664071537892598938602402322161943911765837184837685681058838122159513177704018696919968390129765940175292969702589981738367447196835281021853201694603906526353474988226871444440998044228908532313116726163453764195939326233175840845667543526782383373094033013749459220192135313458786750783023994237835175981737537392019047582950395260323859660277522849316952223909208967697860156469746560905829790033710229002709131685710373088129704916692717071581954681626547994070691412767837633681536114022875488204900281913459530489167878978049313362918868017925536225197572979743169168709455482830478482080761111477828139602958244367585525982076958858150063307041627990907163734472411229839534396336614518515548771378381608330610284546166897213035453501723021028197505349154745402573039901026094131884871730594850298761145278201590541102676190381503795012949953873309945054379789096841026349293003375334548417131286413492532023160373733718247154569722866136557041078817616641671637582501992938562836787465583778061392794565810949518939757215832530374625144503429410650605301478039633374836978020279090036665207387819604759677458598638546609399265238409140874900188691104979422079846663037667765547958322418561778504726093905830837544772103823153893207790203921334181094479580605784834133705671023960060500638027920671254248286802628068955963243184599767926276209459485752361873241812252533748825637044160218587562094570847893014177485962767946392308528539632731592307656529108308264505899127477822853682839153981673263489206433043338651952474835802559404116398972298383365373842975244160582504961461357391693801960547877166526352501027651397480621782861305311953527650065684870426049318565536010366924617903242754313210402383743031622795622199041081971210092604591115859626460885243517054604492882417025075906568332032754016166533288785906472439637076905013583725786091537953445416445365984386768384577804894010204636232650513683496508236016605499967976692696956222881076311046832517158246108183501703663594012106622722758117512859383412533178614610381632407209966754283747333507810720275720991248083242012620700427623917323048816553800070869996017143798783025581839850236868647091346105853468380494628986202015633972008878251209114851057839292730002537672225596966910955838855363022512169042092122758529857245306068589623454291643525738791461132255003942377227677934117179250051238738769094089283914793866099260078012921573219293326136268295813696705324792584362201143104049335134890985964987596518666839915789679450409185414988733671585875655265480679776430438543032572744127070298802343965657887662037989127662998296174445904872827601497799117302682112195179470677245001887016711185710262920057732923021593181376786258222890645679078580289150148592598707716137709026548969506168864377651965892689208068003081382382644443215363363614699326953850121982845205136445522259273586791514765732968941550386394859509437494025956018462344758966885056196996090025149513364061801646756719271579153287597498360195419967989362579623980783222433098926260902799867112323320915461382374477646717056050793767695918528433100617983862119229914938037714682016353387821435116852897753183740314118496903560743871642701201368627369530311978214243413462890601061147202563169700306514571040642214583113114865032080838341464005252529471129876677314346269004915018727158632956427064241300881776596113093530253984920599742644170130543457682903475140347454832264950601482521866249773289354468415590861341794755400571760111230185428347463744085023456708506571712134204435693626936372778972916652383018144323235286289109871417368438154711735071465892913040119181743918970033169940460568585407555940554597385913234261232411853897447041156469555442457400969710161340723358362411759529563276960157767518298935477519847974971843266035614491788837814994510830659887638986182463171863170658263520608943275374694807018186823272104979180387057090931771951805645136476680097748744208433844238620865522430103572077539232336746902478372336889522977053296524095413548919524273853695525680564767944891994925385946509670697039553207200615456566439102129609658119060710687786249095846234866810417280992206304675196226562846206822551570371417026888966622721232685772714308217933524848776474044150244618610939428861987151532665861725715854198965257000085351373017214698323032044560742665996802838647752851521813712049419871651985700174220558340387994224014972978319421525550859659951431798472431974745266269766017756336917003462516144496543414953067619382840760342837901271763723813603728164240731242225379579667682875845196395128843192962670176694392534157436697458392679811649184593395286248712086720674228360971598978802041926630795786972645661924204865468151265511279909575708689664835234568779894871888649301316335334366512854688411511044237918323887990766352985000740576981240300750336014060967931329986958594562173146081962267750903433082160021991425406511726281224037979224999458062436540227117604353424726555044712411646790885353660533624027516452938384381871148810720049428460768180171752171698194276308741625514789899783777754990715070185040138385807165980560085217933538008070192328575565397993014724247698275668818078352694906065302505277164738617703924830797497594573309904007431114575949067143044158475568093153678782832106406446719331827951640193381722432398609430872222290609568643689856895392070581956997777736574975101532984065801536471641948261429906509062317527132826730881007042773622410896386049078390696482567391630933927183736251267546208106990055975864670422689421311062327871335941948660187073150998356951202311036716701603699287116298213276190134426210482476979513455987418831457571474972817665031028048079007250221756052408726252332637473701045605187998578101891102016797990988445123568569656741864422685218401493316244325916997507744504632379393665144678570391034372014940550694550644057620302880362665827790951313367479675904294696825709803526150645179778604607717489790469266789012993508416128493246394752021185237691133217898773164825307131021840273238473860636329554496162579479267623137751020023509595924510751020653005837384043594757954949852063573901566841698321250556649860751243212879665553290010286606150226615150316087637640209605103526451355745498665095665110090144238404293814394246503431437477247532091743673677804675027556695116039932370366811416130670739586495817754230737923724836242053731830100224875259243564501859906430931920356032297977157931176615100515579328714229402923955832170911476567739516332305299031868461406432619066895525300514422844851835310365656799042209686789594976183274772498842566433934164710415370249295658852558220961395541208217620122873300554806160829491484810924164448015066216003539397842031260343982224299978668314674549530064133409261157473575085918289178772282375720408100813412633626213464349249636123184364959319391287326256164031434989226871050584269804914151309575206466969152288575959650102352070030180843507164594631941938969257716989063762759595537362583225678908975583640973469540952833164410868600191087108410609309538455908019226054203216148423938088881603932285778569444603464575778654922197668151016015798724509270823793162823376272181906269344745472056138445605586652954217398125368801232983069486343461409607216824874646646759582067964529452407158233336374392360612663179067845146372179291976732791994846626914511340989891639064251299925787397702237074383308107715443899791310023148918421760493747989192477498258032661696506781461533202814547611119248601041678828133585489513417618061254582094803820528040048215073550095710431179033018349310196940470988686385815161588334801193945421941075529697447869573431439816861737749719179744544516228995069325836374530289446527165393459702910206739522242200429635298669702370719457679360864227702289100177547932819956126960711756121454226215305203215446906409085009366083113940782676870838671507377752294196231584983741949680598814786068604688633130691345327059897400066683535291535871142491838811057772267221220168069137927680143847807049479656200216919629733701916048205437668021122512453650643088437584208585448330029211201693663959270110250200364839841619490191894047250936804168868777991531954398182353950465802720072640649605168822386399628657571607235007132542251661217078764547277365748358324241341321841834901882971156982420685393939662362137606955388672125713664906513732398848304109187069564849597837735956052997349036077382905039525601662720697911095913954297915745837579589089603214024439342029379072172474622524886791087008892284626411383354900648439408048981500505317637444582070575250220433321146120723023405829509794451219882751577806152777679468011944256930047747735612444752511255858340131889851988995943978665027229357115811402281416292819742300489929943885434223392571337291922932869429453843188324467067161731925999817338993165652274651043892248868153620875249616922459674447626141905037401646408990936851900505032119402650764365129868974089172138797382004022440220259185320323659186785762764160982863311391460955961260681539961184662311744650708773598004988954408391227076480109183660698288600794452083348918507293073031421570775957931428880576679513557431698629737401958751209247928795332034102485757060401509471274571359540063504022688826180880501778923129470809595060277508207613415908985152738115986536018281190326617419228753307770387398149471979385099954317366009951327761654208287202026351027662716388393605939575687086511429750197495982009953325759183556696430871794667356102501762594630177841734252606628571318607471242150178909658460357041598959498005490425445740849467074354362893633470760563502714995283373054001395588033400499016906304398972309671062105819023261815299390685576069332839953627827865287403489582543664484685275607821630666160501950994850362954698949453603300931848541250300699486817450338471499817662221359620429220905531966172792878481669308391445730657937936792195130576027049367104443627730594285512345260715385647289781836052819757540357212944106148015190870186332321587085772475444024951953923715159615094593163404454976454520981583937740336544957018983754155163990564721647855693873286380678114590288013764817364688006085311237166282573204085642488792419097068697926849860609998259208578721972326703746333799914145876155351209184396173537891371897776284552185768641560926113235710105160677122161643908520677293069101595244033367089285714537446778100710380373062164117151157701968848706942173308844913281531075802914942644445553267430559132601275917331429882311360055771398384416876468566517192067729727102000379188547764921234072172978212948394762441887479802976901622491706634874795694702071079919922121945976737393107780714436000609323204841748283487599159108742474851324130850196852804838147510788384400108395115667900206738667335568120898078992390929099223638758561898232754407769676464178106084172305200458519219399321353911877922426536530508937980697000228866212881042885397651444557970669760962396003786690971151849432283022675396504630758589151097063637622833082905381026578833760086596440343772509711036635886980998190917357122968400878043832846176714605240060591720456485283561106703687864487913063338030836352629833609123678551358047863549098489921998856838040984855638640295031884906066908822221279082502623355654028423450978210003128560085605002675636289165570492550396028172898319045034863774319340124053269299430796577855562172484345428859434079624184666107641726710826554170237850792048671888897800263127869894871764395494045557477053558257016998623153859566089856184845326176112358882038721260563027360312587876502557674005120692361152653979863560541307654295593415059929346815308881245102659285392851449608519196106494035685935823521380582874041837101496269183448086810908985363158433317395558451403998750278994825179569177832144547967462269170894843891672465498062390884851766530334917222254233996928349025844863328812144201196945008732194161036549738761605007551390080527086498522800671202451466950911904157633556508696271159925557434999490930559887218640031927573421223579297910079479682807700186242821590805418393255240885909378342929320508958533240443244651139796515915575962938705440947727820273453123539228056769359289245531876914086545304912972133172755812823681790824469639003215403263606144411088897990700126541635208573272552584781424674220541810791422327083121745318929577980257484759048341245282250589228502644776835304675412006779423758868712924698654620898652556504475758662099048882229899724916112019214228438114876394823881301124914402749806626486771331882176411033298614384774783490236588668931529052544853350927828645871707856860613989884244466287620504263049550323858310875775824839778988413521113218868632692591011194479931890998262672029605812723225973973787705895726235704415070372493095474727019061469539874347741579919260671823570653761348532927910546538581558045502453410634945985233138827803384547656902620756780181803794621388185781771493250880875560807171407220768281540868855777189163441377358586788066150716080645937447944012193985361239058840982284045235596886858310320219994434996769952395811790277846830157653430847959452683898092909492840859234889376483888909475613839689825079436958771344023073196827358165188544660339450978923641793077795753833784149970422275263102743808888192741325414855255950450814389409862054089988854140957402336319265536095116298885671444946597868900911556503059428286326742879916690824389462668028028172623044452929420060091629785989312679829971425019312401600818443112953338929973106034415633368435544363462373320995124449257877507803221251345845530571805018029619146914256466832999323739674289894189078325332043994897674508208469417619282593543622524931078336049085604184764913371337738637497384130134401643528786807664239318932568191309915335800415917046244305330694627051660687872144023698135228761563826252517846485797905324983029107199672062004145870367604044076284045210650849729408500428560790222890056482571165037961599069737620967902497682229863342096602683787917146051264003545811869971568080850380335734112292435436802689115740167803457936570137632415966230160323365701843096097119884895432984619952218269161590261667376959315252229070338763735095471324043384985110698746562034253451967073995240264461353235106973012663110682329832831048552183603441332953274353009228273381124281517531698518900027519955867932166784564211701152183150928997252624127661952818407473297872931542081266947498080246806533849642147569733392131593689116952957565549050716210737905525745372415298103897867131084364524475164572129903322018419646807705210019668366937218150241107474864958301034255774075731746527762872721036370313822807480506990102854063782928605975909557194015329876894623205290211781446508873473587644252105871754539947136312099390439158711656254870606344055521214916631494459781675653254409598563549249116810801389208885330830297077538553328025327978542557310620372398783961659110221044180446308188401720324088259314771720973765890288420525932853303819189290464678606812515530129900442980187038184170169891677658881118118880484994632567458288277879453296144192128315199520748672745408712521780616815258332178178734670316311532897663602410740847606133913404244426734750902724501008307546704922156836880103552988852285146065056354025553058114326476962335902247440485446649923775260934745848776493017892389011298436065010242103176953185579665975074268742403194012164460305646293605849355985841197271040764393044611071267812657128403043200318029536366284824080968712989930531227874167314476548526594779595582536642016822273964012398914127201393183982271834681688026019431759986943180486405682160472495108317099877587566024640328812408195087104812822431818768037281191335240470252189251861255616957814292351841671370074608051355036743952946437349911497067182587023773352191056711532318234344954026862636756791124909318193164628916343607921658840675115282970511417337913137182963319224097693993769187901410820826785316877329195068426129924056489687761135150013379964751852623336096125174875833524516098474969699155406404577697728925538624463578429643350655774330108786231079303632132438261545178654444462026099193888267155630285177190588234309869763913678269176605057139880875131473991796190704082094414709991016961181727158836828397399882530631511981817613499577834227890216559385776049615741313761782768032617529448154151176951220800604500633048478771124860837124164727790493829224790438653606690709617406444736446674489123289235643867205043012706975463522312664593389531667147153776358428487834893516933902595506878943724942964942010479342618636284445573319507215236142795619322077484322233296339683612378458800364195632156516355178047116648783383412492086226132050308283770022020289409018228234379347094648536536314140344792197807786550783160869189609512101667041296335193734374449095791256799579630031045294098977524977074183963225034726578336963113669392627892494571073500645271971445947804519975114913502776380584173751238216138649662932891495057061706522300507652818951372212695924168139474660259663411708178449162302280218720312752809468562401081717315856130121380738026807133085985624030381935417769919906977813543191871301556714072876364615043629946010593109245875695410946843247459851090286214613979068647929847121924665202009089676910442173057096307992485931185031655864193859512144163294650982175069837331057352419878311358814937083234619598165677371058108370106574698854708914040926226220270610454719111722571223018086268772538307339835938488743161197385052268745209111139889322505441842502488461926223586315850922355558703208032231901485710633113074788367414435916955076138063272417630805481346825182038875716497750013385603301350844928541337870090316876326734357845467310698798358154494118311164105934267574202432513206728675673899546688952574059110840812351653990795830610683440298191799220044513974681951584924730488507020738951916555892652219897714876492499892987280602804288035245937423389768253168987562365845477103889389067450878723924241450815564875279775809134949812354297094837988740487036947672887932658691132380089178473936668371559362663734874470323280262006942233616739768480267936502253776424262042426768132594462358215221908511144031128034876529463041948002369212058259552910076843565958850314522113418080195111171909164511912827826757246738057390620470466701764372557338081174175506350694150280099500324430911297164206823057388830921727879206942731872882112583096930981094239158120120332604800489895208921968059720202860223839244493217156605901571701749076034121989807179380776667326451602854396805270007226970133647956209418679393745244170154312386042361252104752267842910620458419384635916113665192265623145681937635759015663317182866737588914968378478294842660131250147648394544756608496120794840383382640256328623592879111951589785540062305474112551948776269167705216123659793299664204398774816709541935766364918794686732354168180080229777331419500682399858082638987055586436106784653080808424158884258077792698020345413023145768230217637426605006057635853822029675292666072871891039763564659553744956253627801172326526007577291297656054032951872015695154295404619981098624833608103104773528443802216372252029077400271779676715628354094796530309237984334862500428543905656024777226441595121345372223907405128580044215536831319771427845801004884428022608112088287778116582628979908878029858742024043457882052771081008799657941667183501306829436243500952035783432179563023016664791480086546846600031749209978578418628850663686038291244615474515675538991122287871612569377838138833884030983403301858425691411793445102664892250058270327429720228406423717030795261957715045812760905447109577813107912514782971734600606659497214501706126805009995146053830813079078814649589917458918826426944856841589157373786607274874336931699107833592177462495828910898739460660215765852505240157347807845086380706558036036677564542729639752236853191852763055485983213226114117693496654032462984547591521109684982953476814978251800763548844361052162858998208868917492991969849687718383980039593412466153549814628915396302936473427220337387675459850436186131742237411427592823495571584477047663418992925963646800439631039089485662753698681154298286263368586906694960477115260156512814955229489506796106249366854416967308447736159214123233456034961242628872851279642374004058503402729207857058657078190658149684630747427014359959462251609356814864428663175179549172616844912201805145889147953591280565191382381933739081845887793593754529304202456609402334848096353121414976700220537931458473494135828348384381319493291842136653926315350773045060117058552120719848267841320443573331540476144617243046811928439407966984018824225606213887287786426752768674594371590614246670717043165519635517208292341541350013746101872401053076072212956196304545099290552484451369095671615289438238735482747113314087821377552030567138547271988164129895116908697494835398444799161010576996404720518125433654313084147064143982276524833386986547072468385342585822073705194274797315379156364244362938354834400565868289843408153115315586522907369345674166628713692420799214324844394533320614000536814759438467931981339087054363856729314171144556260377700543245928912662374979202040555891734560661427951229483372028272071848828664947892920470881857835209014338095771750283208815077678986559773649654868755732196247353679130736611333591064183314022191890781218036109298300384776751564610388837057479522128214727851144623905075383993326437392146971166183140569686445492927293664847018404226223157517216559757439992715376593235030993329801008065263136077577528267418183931727710631513749536936954423011657303909396696196359658705099826350847598986447226161680325294153764293987546372551872026108623099096230746328576293376804532836458785991766273388410468538212448011200110275321403408752760537101829446154786254094747991612038618826305211160433978302888330684122539383197699185106345618788104858658606338676809144384028555206720097917151783533889606626552409383850498511115517246599619686167428161260411125777745252805821388600092447833304054140397805589267208033586005331231958825903843104157294452301364756812425393383009545133199175337128869965484555397028295644777492906038856954084069381436748813351003006711399574495224672750817038402672513415876198273590635565038971643171487075511077431771272505953907605296247072262318084653286951925187310078917536430435634991482746995738074283065273628518245149047151894279410173158744012390269739448425886216541433812349353871012571448033273175937084678423998936227330657922654383395964924578706602876947159633599655027571694340023611313201250849975066420090061498157973001111266422227284582264260293472313328946299632225424327972549118293577035675305329347082573195794968714349999407951183847207271770340046626729687038272590394994942593660292964404362654605679984747013949482019997274930700101991384271939291460012393859387986323160759610773464431686195282637618891021132111158185343627232217218459036298376590792874772400279180656572713012437142310922100138787742983362853939862739084090305973577151274366738556804174799078241285157231969530521529046013951583135160983544138112275527481765219377297095639279520648628472197273886665919717333380617581472794412427479930779933165765963945110731626567924853572628386555136077368563297934921780493263963470230592789429414889659301556067490271949268795072272449067336476451997514267204180711089760572473842075837897719650415800500083341155754358848578083485630590619753228244393075520749580706671833829403959278343932726877343276734049970531292714977842217292585856525961407662755512029174449368602153849368568161948268648907542293270328906048265365564544680223032865365069487545428780251084244935376841748910992969873236323149268062597629197662473318467353729801863694992680501020422387276347934143418118608359625727372239615546987229021553292638235863787816206313112355171703280958279059394611093737614242091692509765957320269564986049076288601094420424770157597339792145638582229728920246731999762744096548590583344568860735511698618355413545200238979910798433380313272522176807999676478935286277523708155268677292895181244647358219084519006095932431723664294047318246019081527180119123054280224778509752469235474556557475529217309487550685674308838197520231030406370029151310293578659952112974032471921930685647102282318833001745700458592999812948719154050103203091598510559592048999020578461688006183881111423078353849386972856845837171300570285336605436576081935604860124415477147625547905795198854963168991433101440710957365056694202138526872477547962093841377879821757138129174949748724731277554505285843167463398083883663017066052358780013577917004494310047914404138129616292715220522104844769733404049929124647914170002590316110215397374665865186203160555791306305261118102680462005397095132839824433194297166941276352033481987918730668845880476459692577278121676905572543622732316760598709378016186944797039614531382895972211604280989487938801451089231304485367179730130325870065554061506357882772218282629150002942120939353637220624356810578102177901987374248797634794887289891803206979953221398628996742164292700090328383579759953763138973504376295852862708728131790271873401910530938915051717794043753032572761319771798814729099627352307257662224974450904590217526673970523537549331878160530405587448903548342171871074779335010916720806017125316390931065116688957465888738878614145731710074260447603237491174037119261611075784111104766403568591509156207539035383318431125678478823440185761426288313860746975984110353149063290962309730548746599790433595994084394229791955376174350205032490726299945461494319531865619040911634940567573376549117704778780756383651236793962265613042733582352087028953476773259596775541911517760481527490458599081050891730060417028742144533102022995952691020963977704843852454962176060775662043366569134650949694830056217410694863552850036780164472464760088195313995098314079490040740217067614772984991034834232182384256783648461694082708335066812947436169022955454096168334042082366930362482508180171426786872264301557414602502515664015727857440414950160167445198174455047839754573823307758839740770798333657017919069730567826294387994504797918385441253992198311984179259816660215472179885929273147843203664961460943448786941329327928567762464333642410818526220654755493894445798970811779562155403221726567498405662483485589830667062300559860601191287744518796267699254097022516291765299213724084263426797753307083919097059102845638998447894874663973426679782426999474905135617528317750874132511083995549907200584748279730119091954312925302193720814376544814836592632810370275752065009879635850297051038862090396525757488462091520088333015160205790900040692157059702317888957846059228942107169116338974007464188437924529321546215460600301989180492119291163757519824677214177780705757259297681199648511956489794025292612789745300788654459805521100593070636900949815548738468683713805155682839330047329897021870845776039851430628189003306945674585192281326223589196326552652602759606188364983515925532659984201152078652120542639077011564449409750278185374002814512514580237481009561888942649451064449964893195367805770838785444241358924130989593906337933165751957975275835090780302961086073203823186720147606056368705243129810352285075057006417850159796050271247730116532544867801902683684821060246414567964345288055039209805866930048518167953834797824453434365294779139171382257541751125372120997904455817200054351788492389785028052330904875117895255500077746345511648469593012730918764769801440040498053406098438821656391109403728317350702590821085430181959311668931115274053196370069517068991942468190675149719052908702996318249538222807361765209034548002731990862695707789706230509957758672926243832321424259731051220244649644218334537380642444355477442472267150748834172567567602693009691315385671679414640779713301371034164404622453296803843925844404383331733083399305594074653663721775879118983713438056175996957166015203448700746420370312094951079824515446594252493493457437332363257735818410748154272261766706363304890644284797975963481641466155385079196461998365073440536325664797793476013026621015485449990366216690376168487111956059313886906780456478302277638174322229641526281445076459853362467452181037598818107699022277107180636274082086012570014246989027591768284195711032844649060616299959146283625843899918416886026240398578337528769896226458505548003610031684597742160474162523643203340942313591692600807506332477351963713994813968931042814302712505414074681135767630813884982380659538969643520466947518589227321611049732429617640224023140948851308875663932218692505992819742670637467999654829820754444831439479360868760526911427576731115080564912618679528326487187876143061278284324418332975334209211352223541186996452614244201751804985446838348397033726729998383859906049443060033330643644255920021332668952327205263862966957890743206921412195800640631058668318632603293617464273524859222924513036547637371918561489174821380371229150362573938138334379501663246344814477740581361394625674606330008967807182999736507067728529294778972121287794986383026734146309218580409948435286608113418497676610405414030591632384389030332618737495504973320297373768465286111807850898622162108423278186655447949858893102471096139932764154534290632401726397923793022721904042662101101781933301161474822468704417611332354110253828513713718406502447662682617815681027629557547045008400208100388920094997455079142271866053050746512646124601175233562102709316689611947637631978077191244272462442257124902021197498642687957134743694573685414952480201160038745405885756804592893955967185061736961845628945411228864702754539159675019272200662227756665719599015720104924125373400887001324229016452863678537329722266922406319690011760234087997490291786704606894187754021977797190469549454494879860533047215749986538340294684653002012240977414311986450494681833216242036347051211458302307892515714955391123418728492199249875177065444769417257715614211111461109696400918267810562499662315944912550659456592276139675416197312805847104650818675525166177794551704479907024257184032126583935448177538402556550702712741068804862174867967331062663503378167113791439815461723598934070748978723369745471874737650221290231923306251498150635642270407102535984606476850107694126763285768181709748682964057585276057960627959799392622141334212967654143248501342522340108869970986216220005595856051940075048598744552545114837038126465118371304081939192859115933290022034502830944722226236073041789305676364371279046987359520119683231666383912779372194203002567104005094773273950561939206292915547409494540119825250026091212996057246388141797619820875841965737643064825267660426521131920606307734743979727888929075062187897413370924585788942152542857305138769955751076194909837631370518657618003186262473676291712311045447037286890346287298031738080254036663595236607387939431446971788552722476098560001009663857357601718387751130036133845681077478192336713013571859326556467196106178966924458563425792396659917482842338621123116067600232229950801879079163443788103711182504900342838807675408193115359649209007966337466181138454355487063022513842163131375590225102162886743986299751295592361032597031601787918740770607422579156586637829651213830884214089476555532579893991247689326050723733161704694089206320020002177068317139759053632036883755261706459777118327436494256598067457339951443755395351510803476666817172533633971206817138541470327063676298229882706134209937716317312432232402884533936452170453072570533605210581810158698017869655648537960446841905538232830272148509530547809672568662958957659467983274193506268341953522540000614640295218572482685550146047875092406153825801365518769440744069161578342221245790559361532495114828094987575816424180223719827682102548031522745754473371401985222772996169494401247537723996163104396181432866092248768767111708709156008923948485354896888895764619255707491753313942877835151485161910747216182927548010124140177840202945924987259501623240566810036335868809468677637749112039896306535640502393740447357591028012447145540298998616871392339805135620734616201784766370656003954201562331180262367418612425822648836468684605759020957121432302871775243122475660371331393835924874927672333470104144648413944549562949263354410501970000407520918459352188061399743235920717382932522558809244728907238821138886704194178515864100047204789167201728023661768854509415106400215059749332222930014965324577724449723549414365971903261413470838468621079062195567346231189429105541772466474784086855304930139338184759162953936092387646216901005612793906354471351439350626843297847105920380122698359842060970432800542397165884369128715572218741517171687415703875368236457446122292721878635570347522604124176890448000052460052635579095427269575433261266367364142785306503240547126264514525593404145151068512979743128863995368281353019825180076201905235467964740774166683540984090686638116218539459954480724617449767938150604152257716777528816497989913871711158467968464240282389089235206136020927154308661936277068561954925171447761954497159472377058398069195207032450608992716270687423216933330791903982055124020063155012526960141898823996840545955858627515094650310197135580232186067099846136933270644055575262783733565081298176852923405473696266185546820511767052547162954932855835220307883371546427940453560208703889631901185316940341953137686389523312626786730001281168788368497313792654146129028145419210427927942575959741869893248240650703510582325940015408154851745307562257370599015633094712278600445950943258159291573809646570287827968197773913814697266179848150754603339888677717766287686593680967484089463256862704164135882892213559363045323927506990708947587069021218710748820694420669969079701041848817271436984909891006637619307789635904567165743142076019284867750587416756085287914227169372601231965792525989506379523297468495951902915330105672388873305585039409458504820602694872671536422335497718355762958889702044454518696127930011775155823479399651441453283223741178129921578960350263094445892521821251824415621208511869346969177017874905568379464995721598101502634359817098393387435319536180182009589428484746835298076916173022752682694508790862635208467044503580721198297403311287743526859711953355470853079437614727317124573203269784963189511617358225808408261474312227817734995376159585196207212825060345159177851121528017590349605291420065003758333119378468456367170482131628927033200960710156063053210535839783446584770559449963279964761806997424045846443322937262798655409185158817257836847187430526608170301581100599126810004336910853654779260654850983458689018066975560275846578165814481586093616711861091776242127211227230842030089413425729875376096763643784332552281530388459954479739430320768648622304635723223362072746058769387276862275491721946879789336687089658845736699461279795004371015665890579244693647468659589926368798434212608537693152206825348415951304862473681034763010647280981414041550038307160388767577798209275571225521305905041969361991095678306380059295113495907057253991979700801259025684644423789008963270568727707551435920041612632886411647322881364912252946116417072982293507396841142585977883950797054489179336615183367574091009447671038875496858702075182249067807652409475581328040561726600987734779181052013909096960878644990563587978652137475773714079541575514690908410059678548504693203152775455383814493950350593526631193088651195174394681319119707896069425083653756192256721065518718676069911676783240905799299320577194150846779290173376297803685296507488027598319951525451843286888461816930093064049349927615395248659308904644133051997234237898066716401432900776534412044171527631083854305680732364079487564277149654701064505173690490046957933578484775878220679452576533626057852499937972652169552264733819862880721673906446512276196606043413499022557635030311921108015563590834395762198353461590629717805391291487110259308709993448893041758214383067623565949855854554297887992971193047176412792184154591052212514093878900607875777223911463612042213872311508936367675199543567156395196640215007629231230421214924172438150675254475563748194201528762927348028551620970454748184064410268160225866042934453650170758431964597325099383205175737926940057113275357204781763405864445845901936125161653344244706021211845489035125251232443147173730011224417505911545220778855543514809604211185344422886028413438910935326471785652958196577463389308478404484092414030168333193313170341479085285605452763836593442988161600173609931148311463200385071020772215684494845309478525355093606586990018577976425545844734701043698256872118344056298960847526314130691429107468714218477005942605812393516748827380365344369626998897833134726373170479502012101965665348843663843185569380938145948868220191151222644761064367823178770229833924770583713924838194168639687027584562916724440613996110453033154127054548516704537636437863012999109031245234058278710653617798950825155847557074170941855949344625895070029331169639969622855087334715395254545164160368790005598132529201055213447785183113928845812858072643160796095269825259416717861330551216768679643072552881512539051594217709326884830322084317286169169841838313549759600497885332859094696100737040785947414797064624752531640750279712616527845332085331160119841353371409420321671859678622550531437067327874117037823509628088716845798428110671295736304854734533705437861188719820834778402436351980794780622070710104832625806954128698117852990192823897713193918036723160215538900689297319701037532346679380136600381300261705776892933045316706926713698266022767693786279555635038237743964010318884536916722965925932323901951914810945532215677359350403892063022416463760858520219851905664796261373253212550584317295342278362935046771335131337822910289066946347576108088605755976188783223924634585021502891046627464850845309407434347592008383689512262082897383209276690402531631455953843240589875663165421286713708370125763915034594667520865706636577192288097921352386264665955018928127490957331151985624295424657924013112031291951228370365427745841773516647421792452899784312684978509340591210706490031621892946058607417388862716084944374931020306861325817620420575088814152222205351377055465625776905145551443827019403189694857851241552280976454432553958713687140109671952970744963593876641402133593088034856273263490896894711297207390636997582898555974801670861798138474126642156636923431072748477591660154306403279802045976372048567000558025352016385919102594674295447003803955662906577506937665741291723393816154305621635964333450730348271764444971205129760316594945983825757618194353987684722904788272723266811497862510186488020434956747908717402080852456814272748704740758051432779125136202549008071828273200213547148639033820644327114657583347156357377005033668944584017156887121067039658184647720581345430046801052813547054267644164483986730751008381882772458116991196784975389149462241135506874772580510027959855456110819595857236052128524024461948547296945541823382616022941412015400778784087390271094442007203980387331163185374283102610980781837141889537990667746015702741368387183720219561738063604816807039810487466643152015424869446062425663595502383112749461248677504788042837993896723914469895372161922929467137530961886498119008196516751171088966858158651504489632204079965173102363549332230324627048703747381513966597271734048522177211995837005965466949319054968907572742736293444687730106695780950168800292550855008072445618430116817121740225189370792014659140748721422977719896111011758253156518978987290041832446796642845173853555006410611852350972803639533148971077698334278520806733169521972701069818173025847570346153259884652202130157156307621097259678152790630892001228446288533797415005701998733607435039491580981583436703388545096646999102564239587222815576191009491328040391286703488281171102885255392114912713091938967744139072130867728210563360669519939759448677381986552473269095870928733604368942273004962729745770332966521230173422151077741620460096626288706314187255884141301144594400041208678773134918008673426891525524977304765791994722164259897712795870191610781716732244031055130876640418118344038221895778416359724471900303576024451825499166850436103588728455948071927004875933987835836769203546203103450689320712693230712917376208153197272518711194649819335441752568295097247249613613154328686078993805507603691023752190992224894379850695679883646174534695250943707624720929069190284824067808518462448648488869246789595351910386531535101953539251375385912446698689235319107762046690256685463671392835595869469530595911329272196391617634835232824989930196458231417954225561222867221807528488542089919524340902647014491523393270343704908661174596120567627838639614062239506656707090709855888529318904309700466623736598955943578257947465327229680308982713044301866869874512385739186861265743291001116218469534424019428139600128562128597458527898157457483559584028880283205175962758461385473607786732394446737236224043457504285625410342474761468270823841914847439686026733382318966624057658725523656412267735406695613937657382963030944613174333750501054475252598473160508028145740945375012686116848050454414321358509092900391306784768682783865681924726126441809855270261602990893400652293204039507768185064199094168735460208319076271988223818244284448931354031541438819033591515952257574927355031673268303960072927371158718222004771069781318265781800736543834128134899383281809030113582542297472067969775422857378300693554814452804791342994967648615749329750191799353572196983904593755609174218742662953329262752880532462475774311810314147925962951211601369971968188474516517375135568890317490826825419078034518985396264818035363385355683194260908141712726902238165877863044247766772243703822345869024626579985894358173313391199557074253539217195247041978164243936302981276723669738755622175242243799086719523753943718758828999307400022786073638823086045771370629361072849919157186382921636236883468832683780769873049396691190378708747709059904896658455356447251197955170784045970322401603652606544624983752563294089878324987403944612839273847107668236723996980735239621643426221615012497605263944772311881673648749306647793193959680136866714127819864691793902109831763400672445252165186000438556426371254482259925472437567058047124235490582174822633066404754451582022592234617783898589867959610620397107202968936913515680980306365615402810143716289471259983610939408274226647784208106173343805169721159025579518276032205513007135563847581351897586267208782891594592565738722823801324201452690551288745180130256304203979678711802309177188397030586003807933641865537245320606502794338664859784156748852117211667570741556496230308914405385932501042713927816844158370110427174995746647265774685177122447346890458352995329687846497093133350579106967217712138387357648668124261862755692113543791951721335137924302366814152717095020199423409028648297574948198483123643022044302073254359549343577711230629892597716031273011708992444921162768396813438728211160457943846789723184978370223231132841325920858677480991673557340613972146227257888863672624528290520362086497260534031388246905210969617643766632109392439895075396894049806192623319130229902622112906018357226764291638643433909781071343247220710253464469817459239864545924037260118404153333521631521722842067549579398812996152225614668609568621785124204365154278029478679618476830581610339799706102593833629335393447502026845401105308625539464309364638708242240914852633416962358836222950839780519253544322356318070639262942447500067676355149100776453883432291154877146498894596038034251176041769660924888496441390092776069870877862599129463174226763190485205302987104757147008555950090321877283826692593740036483956567366848107979391522124732686051302819174889843757850547369604094720369917897418068840567670330994355886546023501953187939439349350133740531036318804157942977693225194827758322322936920915478558388278323547078350803519061086921539403421856695995066269246976131631876915134185436261657341251381562126093355035791832506374262823035818449723367047062291010895980518262227025979868993767674125225989797641078277179918524577956910536398093353671619619695628597531328601317694762766036241445677067862588402907127030306867103951337690224109724685282535947552749781856067230278212378753475236979439307628680872938399047027556897109621054262690387265211312068844835677192440524113287552673930768068343866433602206555197266494764612474820516586699579539207649906951742071681068470855923852313278264523253244712380126742842061947785505425782582833677145232284187785403276683404635270028798827567645798642301028823698061441829476624006248104991171044343692241095873099206643409469923188667085068663587139958489464368170540450367680035910621817022323642538340602518360537503496905869453614283337194830798152267620182013528366435303315452953617801826711648644445229746692543436214626358887940321926363115809119402759038857865683953186003464882295152582187711141074418848110231951078933198874859623776825939486462477881781738444024839966817800945576909688860468970848517029859188482285723703840246203580974439051354478923079370732694406087547698278094544512769080757397030696820389079655247204483272366749348623794775191367650310138250097733184855896185503974144395677769120188674955334813174683377239820779554122246244371794152023548355677671672834296845631306969697444248956221413018261275257264465146135460659863281118934101252072575273951779015393396825445713467746419753839373396623241211415103092228237875202362345494721228174088848043303110799512727799115717304514618722553007474345515060707050369540405994209790332770223548724659104899532160501140308993739370912307913780183879157101979268990840872335660106918423598806137694119285839717764653497509382428478887994781671663592152101678888542441094914891431735692752773051496459133047752609695578081817179302432934482411705518939313412455875304677444118844116529608864050674362084468381191770713581560970612049338062609543990224923809263521611045294894068942368657126281595541942707491272788818444809820618402925417971716270076111391138776192938951482364089714752913726838275634866438013667038852856647465369632677275769249445457045789583331260906748903258522998607277715088993113917428408080208721908856306324742065476627038102906149805707974370130306733223719473904942160126947298513563406609062925240645503458061701547764688037769939422310536279874863599371853303947226730236019702326860927222588540142070450382399214621890089505660451830846982670734175405426750567090565221101432840481048966257017256782697923906913468104803264366236055032067686224236105757932956066626671489230138060781669393193682506876903685203362504145889237771867763355383007025373570459806940916843409997551553176917707431182114847067261136225932755222991940737572646194822095718120610562858329211755002578617490626975080249168356848952267729052772785283042406606062556055620470283882737674130022998680956549608804911103722744159943774010681099233606593176756685851918265693449745304875570623851297145664396984514041478210628538243371734267646093495697247124092201873840132810157242444066052405583905897265633230319759083621963442330862672887740228999771773053073540828355774055205727120335974024434575007464005523128161312601785415146250371576743780224302584766731476153787288757984819594437759414674015300950095247556918114817574162434176874607170917091765847721423835779837332404440431615170589503911825226357134443753291187198768102586919338815267636674959018398510272222622464208937466833648302588694748080906942400350772258458883784693260177857142635002681587657859860207668264118022453509397764274031535868849524047856116580646350451875893135677985035231595726322954056998299484260704774655928697788715167849329204241789990835764429724120349648220584765481147905557406627449632303202667982824131365810261619548246660783397278081051625289059320521540663960266233189642651857401666196483992372685637886504397748205541443140496931365342577939664280384890581071467654438406807256400670991749292691090802506169815534191608365831100106137019289012534252961452878549557792109697496867596195845789617908529550083047933080809350397338645254373162747946597341571213433849462608552187174354441267576449551708307238726833085634762891255050392215035525428779972647433079875552550604819534490091764335275776300205157610947130628472418877349157693796924309927235271785966108586590741959325767885943401800004655287500156850881448697337566895319463146732364011273532154001449350621830791736750147629611427090971904885788441857757490482434366822679305189796089192004351461375509108618932358931554442601629457567759450434190198356632349730180375041105329505712266917845201710861891254639013793714023068562465611666618118741249359515453943381040630848406265719435393863334847239714292125364632055235300244207696498719666726971279205324665161848589067946454420953537089085355575310673943011163958992549253359240606397623104615427843161930579368696123832291700310704251662178455455479226843754270301889768595279245705157428883679541785103152341376710423075340437507901503317001369406035326769475302591867872989935460341879840177602013429987940927336895787583129206971845147520460495386176836625271313225645267153436290031963866149159586051887973538312866874334631412265139193620396179845215996588106026767493304365834614368306493839138088071411424609282398450640724554647894687018314894480540122823951014599291592068380244253638505775515756759965683987547435546045281886944142466930623392032725666336374024990961470081410403210554783003984798048253135048164667002759537461903886582060908431695034453891068646453481159793039907732875592013786790261187625468054096295993913213760945856582690940715500286375982298147638414896494816424590622545236964741522662946140580725877134094557067048376956663061360721065517789113254527239307528576746949223236536436799425030862813919426179513358487651820559962728263880420800864402086742441265919649919421083903725350664753158828560042669332654517808514823132361298628484222250152576676810456683799619465334427533233851147620775235228833817055531968658963263117873737431789631412386503443087172983422208294739848216169561834533174519666092682921110806895474074915467255029068588076228551908863536989695916275857774618082349193846266405165552746405561247909475908172790610278331974132347452350856319012745703374359923867459359346099995331518499900741557663569758213587962675780028442472889813057332767846663603474461370617015446490883111210583960096447291377263962337462752843307684819125280718171779416698172512942234835516241674086325125381962132359077874747227145329969282830139596070459826206613693403974858515917860973262672409799616210674940031518515514742067992637210254933921715333581541288164835377690185364632388171211428220946615301466020577779538981156283085823546103253398288554542715447938903207023253145467679407802077399758495449862897315586535304334099527448719409382613702224118420786352300040459978297633433384124002238013642522843141230957774456753873198964671298693880216862585210965296664701224584159722885182039510990262245998097783361586639117830990282428141617342322391498153840117298763872925635464108873414310302022520823775665090692800411101792730042579974566766244362535318492105047410492881758857190753524662883744103191634298846070026254103796765759550034311435598059531393289904841341665498347158681853030571663432024140396542531133178169428147792292236656930285481648521682244913188960777071480787918005254543177584726887888679512447190041395306059919250307101161011239570950818457498904642019935776976514583497932360309257524515730904069237440799708432014211743509165440264436900657975261354166402514532585337582564078137909790429326191162983477006068139976420523859734512958991281841561518621981702355412878053181310377846685944388967067472060256346234100747680339670597077316106527682578494234095920550976519780831675283102394380887244835466010556310560354976313179127368087720745695236438612394513341420303020425587264731257680584061583046702114668938253751562557586524181316261664990339389424600274002774757271309723272887961747999494630796426819522924006756633378792110117941576760089463029155760726684551198565417267489162752500615222196325842729164313576621756096158372774951201625790052141980124055842459346725484491264918503945258682114066906456241023915044597120412013782801230678284810341734683727334402429151702424885434351047672028007141554138226072351684185666505742242040405874474592443005181996456972770578563128500718362319355222684768735565294857165236842730726036423884067333040251390886410340813890355684714183787275224238553840836885949585219188954945252025674005599684886603610205201608441923635726502898747589686753304076767880537404346488288082484465590362374356075066214907494353101176394012033714772308856849959646774786356916653942420865641163022627940886562700932619586946742042320838133721477650169224015395586379181027489633767608904822452325661734888899371552198493353432674490564030222668895281550234873491185944618419909172100621778802841392161836292797518229809504158391062000835784403100755099528323523217864300352621624926435562667899796440881261584222157024704136957522981738438966777263020299636625262829716928297027428614906591438439841821576472479998765469838923058531105039193158859838323975225936996558656685918525793291558666695268536609078892171154694789553715674624661920731542202184686871304463973830062869405468652273423059565343413490529821414644081572246109141982089875578036121391239888985202390255634084292707827466018139610725165160969854480604337542101339699059884659471756779926070286999567873691268912509336620782124666481077181810462733552840466354070901325142538435081707423548372769898350642054172888780111724787981088640937265421891341386570593827923382289246216995937891881074184975539074759391773648782268374309203909438666155913400142393470938359445412327706998078363445832504498523143292014001174399215432201262635607818169331271805551155199512512736466773996864731452315205754853599148653731265114185089379022186730731076203615660807295299652399781330522142842291837409441559170036359220834494476227086831020611593762214658015363461852959999856038690662367884153357988468843654285638850204290824970360899747681399499423372741831303921371358535922644000574928341793670715076824916881291369059370237299099140344427011543387993240867575154337361152160809500179253270194550441337403723247053614129886343520825568976557470553847172290861886630827066590321373193795293143433763291486551750267791479866701223097465837411812859746275559748864451091110319419478368976123438998596380859324442767380242338879008427356368060100221511322414482678975362253402511919703987863426480226707798017066934073968029372952315567475752079619468772241171843120797857051216773953484845887322001554581631829912109307107562610530156217731020455391261929685623409171001621856997276496853164354981246662227451984080748851119701378275244043738213623269694479359624680605755753310080689778405510127144840356904688057304197458298468309000548808549230007839534208085309846379204935156370675299100963062963670500416839182484543423674229833198599858600232267004859225535317638038756104954354149629805364514377758549556104981850309597772149046731641152789606821978361122562133741773971214658298998263563239118952493371720099343793686334555408719356792719291644410679208706486699318829307771936980634755841847246389885730419312244026771376700862909869949299846536926893316459615918070731913265318354103502434109100458109923961909987675162223397549529836871351802646146523870293365039776020354898888319113211798329929816671875428466386827630454890391710510134450932532196656557451186151000099707927050391963740806397807228823948311043462270238068437232271106516821895777827425028839448035246568121383847307928048020635596103970456043590844015521870622964500252066179013377335092850359634957911686421056879317188137166582957411269229664518094203045584669340486802273619054339393351277382229501368868774749498175588049569594537119041564714401653267052909042878998388947234304118329942783749145749049393730596050804279284682812332894957936955435171080350139395996565887033415818951284981899959444640442238687759420306663679852428407803240059295358784765171081184849384349205443488020735474296446651184583110736400818236843111565023877846051050478439929175984111421657825756464674638753045411274234308242003210809443894084661569810230653865335699316217916042768742600922439540585084520822345834133745480288404963322212133203152571646051789095839690949368194894510373790291008525262674595672475006338154100125961026322186483302661122371201933102583547126968682377496575705962459141530338369135735281658500584879664610023064778460993872755463817373258569040525450986299355637381667796836953088235097541859973957557701797405078750966748260205537791258687381273257546603607263989163676414210279541127829069604041193482966670063277036451991434046714589571070044814314487626318377311148981526720431997984683993671496523715983838927880429274491627466946682103154798813898630863193142881728039529055784996439426361199661243952805347412642677462838696753541825925173175805999778679278336651317073388669326330793794494559272235024543082796480992600219210359354968815566209879517560241209241445034923193169786700582893479724464010849409080764043891232896095773847487438545870213965293086346938302849780593897131674233281586445597024013202745931421953070004175575261617645258013796304608280939885443494482790766786503168669009228505799881342039342296063336020975187129075208883449295648852913370868984714902494932711497237014175773924593150619249175078541629840659697210417840713816453797790929539080913518166079239085566450179072649693990870552314294683364397394216501567475099597772502457013805947956245699668462936565147349830063973035559193333331098687220913574055883711385615443394768577592166934027109145805312425311838151879456958252507312342277483926000837734566889892971147068245227884692232192791783735474794169953933742248681862547514790492282845715259656614958047520834765370962809650905767653232755797188271621755796882834226496536223425460430640261806197370213790709674057167844416481648474731375142085593201090119801559193472095255576154766118750308531388712032100958048777564632896885275237872488007273962749647904500940650627026888464431097942547391145414572176101940955702313650869774372449981323520280737143233290173565322280797983048849754629318725876036735300682908592682065548437168049108037276681416465258029565386468285278361167630687903640952616559538550264273540672665074610170069771772344865083571214233043731260781281414531338094460227427438881603578231930194033829287345210833546891151321054473955760033569730523207314634114036839955586041461668196341247016068750035854475513250773857126986159419794613484945711748505144419847548964796939385627534655183628068124111234377440766710406720883689807280649781259309844401321539159792695356104806984130229917501381539785401409421813307036617625113121574086752775005442985814539772058237482228579909237971979000280968632934103489299665293456097543350064221733092802916534812474481263870410028086291204887042726592163432051031428988525754142312614998959705540815380735460818099851001779849801553603123104891193523832381748004919699341125051822286034750418698876983406410711939733647174822144455223555112646040407661929362003367911709014461337867838404950390446531922171322054527128655956809535734385754586214127806567475515878495973431907187389635554051383097263730270213778990198738852338600586885240944462089130768332828221356076835968795511343522253583692845611021173723330039460933504630166559424613667909998599166517488358848457878233418956547973699435253442901704982268343525656723776600947166219120754836259691082459511856180654350309371467403715188075297458942767786220763480522349700559991640056617877025267686100635333837101640679490804931815006510809717329351610118229653803246764610531104741595314710249294973010336762303839843303229047290487410534413872947850673050028851903478090007058028244733962270480524409673998983177215625230200947801721724163075444070740759183846322566430992533740824880235780109550268090281880466962434524237755706440722230339298921385787693293678267833135289642835842776180247034238686050314121555628123742700248040125247431711218054595604618254051968184976161049147495284090860646818713291839871953370825551941789876632323990769701339825101374460606493875305589974034256633809203684926321874802695949038477277872917539549658305761572629354355582810947284299469229645582780531181708560807258880246154019131115716409143842655378837419086540312479025703402490768970357492546760707444752494731754764472158932760369634720111295239159758322044750842098023315610759973618788267603449854039890778766920028252482932538339653849593184964141144524507544213716065095554934571756743659372693373274554476380917242744932430317645838997571897309124765784220225444939249477140704485183746185566396440178623490252516721940197888222520761013564579287874656093100475254380878595474059282183277266614729238193742823031756958793786019785200489546982937620235661613634432844266313978423603045848261120962576250821674679169178675121374784901848871235335154492998838398690569867888141230083754251278827513929133582066080311138627251629243659574736011819102523293845230456491963607461994201939691135049819760112280967804166466814188993565214558862301310996046071169389870193869370662046144433604949304819632548241770651196287065775995257242474370024405706168068119405682999365622600850410014001954880904196928060844826689618302361271016353775053848431860976880562523103058168967570715695271955884008886818859679140983289704098185844712887261382147427044698937298883356216947677465787538827095035405273226265826413053102921742947971018844285438827892750047772313730938337320792529398428660676746611391322928734340270340019660333647093401541572493866743775708541745899936889384726569076738913753580802925102767760773317415826981717897635403560478161274727635012862055840233187252490061151289552939696005976211231534259066991523941158747500540368843236877681999834913674167894866599608811450014511060491606339090029096529985513050243650947240766726102579231027968008444621968238665774076033167021797308442993388201590376881389865323500301100736659077778863772888429086682480621061285724928214046072570908793266977416683008610758279959587090055622363684468382367219262109553077858764977005253833730099708445667022489232454245618918106107377997876832652778813634904779168525234634703933839802512140923896523198183386370246528178884763010690343982448390159977738737064963325372535692153160622264348455926401210634690630866180638616889753541483867803096607660975224841600170678874147738742834934974083223892685960820197784829993574615366590817125476624139655002178737108451270165182190076627833884785609117542509225507259324091384967213171737034161845790476686070806751406788677421846198143701033052816168296746104940541579589572824433110425028394048038875080639288814357964858948011545140433099961230233052911386903513511179537910960419981352539305405971175579404921421573833001686152662556769174708316351594818595229058021825172914226262333318229469665774390969929651579907778052383427144258777703177372615512700975698586538771239118891420627694635230157276563055302616886116385444720802807960653464099817155252192013997200541300620281286737834791388508292163160755171438107126130062724697417856723185884213119700871492071000294827054280566205043323296693156600166594817712951479566261415393297976801860148025485455954549698432296418859508606787312111404875921878736156219060063261039006023635378438784809971021837155515321283367438107647916857519369501394054100617294766829816610958318360441636825545205900112148681313773494573843156390615050626650684598172151277617240262347282804833234694086920703802898805830187476499623013612091334361524798337996284256665631188070607747074232375389976843179698904202168615315467901571410124761412655304149494220548833720432005942386982794213999550420303131092322237446790433211782622702951991402923258566434722624928189755089721077740004255433388131528904410686479629704968177222137053663310247657956096373003651685243551287069576784597944904568883153409054606393584466073030500714231713654122557220570388220769901699961037508919871312941290213402372343063429238496701808017981437005388279531837428949462673296884565983683829661760360259609579883111496578790809450802119516431380410720193440343925795232965747368589353068384380315229534113171790223625052865146882566769576750301313783608265143125767985925039822103898444375819830296332164239972446065500487836315822938208834332800502014702486796995990504817087285910057845044227892776947830599209393433379812508166787785866981158818679120905710621986640560241247941578226376864415820478326238882312819314712717317076725422975399162861442803206217346800288333375692240790155307489247392603238629616234378695584624483901037002231346499125812551537652588496133311946341722148075437631209417847510152565466906864682337083437467493793723016965004358751628696288011711880777006987814008822622874193964269769933838126513954580197686942482302933770678902356601115810369709296463215715505970226863916741408749127116451009811842323986330320550607490049050480144440415065979949303861906365083244752704019321697436137633081676688975192113139099770363551162785067031053634321391239913021444143421408154091384555498285468850041884957485761061015479590286864200719869298324238622403718531425661629269976484263089026601051867324959205323430567867786113852994786346649709118408708494092949402048000072405030543150209659325786414231720321287966460211004401867007009393014655278967587254084909229240857226307432484026745715929419564042680100628444063647256874370846816708404298485110817777580338623833238742421141565847306928400456542113783714506620229235468235382443687673640475968250658146096730262909087254331354954868664097001695051720930654820463992074040696251975232967327744026785200558250276457722777755873651265456312550412349284937276444294211697900826498358734209241445356142702562494187287888121489631300479037086812041996125581041502182050415702491442793149774625411637894389477802447612982227762015592590646632186327475846461142448413539813392620702065943638645227246645786172274764147894225653139403141058548862791697892134115077091460707051008948159510839044604991150582292012350189707036310656691049091476204756326848727568330774185579134382080681687289767066003662713263645935098922196891508799395906372010938955344255554025889416352801920621633127030170763991371174403727051420094254640244675366484661912654500338651035268283998550758820409316720102207865213652906650992662985962079293874223116751936397914005181493349156491766360967479457488409006087593637154336881029627349284179563624183278422553164792406269121974916921817088496740897519434421805112298166151920450159376631490297196107939585557006085085123226205064099864651440627868270633926300756052154945622634923688022912621182288289839885203380753859581583468505738727004590846485158665950090441459720885676500068509244608691672092953144523216022617981211693064590939504316501241545707509255969468942791061873879589046174365258501988074170166746202656734162414852161921133280328945643902367022370764176574014019746967947032067789754175588599416211019526262222671164843665746877498210597892623554121699547003924013336708293955141712233058684599467409637918567169404241577040318062198520562300028695292621033180506383941923340308050184638269310598112847045454380850707381068852493014039540241166776585438371331120570780828984821294882298121647032561283870139417096435819566447722623497186434417831672066139132384603418899160740648947842854355727758811400218093585653565383897437814513289330817356449416955891843289230203819382408863307677700532970857744679818867854119749231671836314208836799281239067304970489351983509575876931470480099897461113574848926600968462497625408625944890987395831913738866783396554057281641615799394308839880956380975011401462293590630079299761541984594227477913110699185928854231927917329204434603860389528491904194507000104961650825430348821911101726742133311515855507567952104171468020962708265187496079744272287910402911205998806081308065981452155338904414135847207633503734542679454509243579747811682418713274036105136977295134599321450254344206072397899847675964942527023592267342818056596027749957430812826174374265279911179294810610788065780330518786583117883407223438375256191782635337512890931754109092141148818030512738744733037072832854682992027073188446853693001949769230524194417881976008764175292157680146418315341219863678944822912611555081208583029411532364377845332982891890484482392684294647263254581315786199602390378980787600381388203856781150228752526436782240292394043457678403713838062411021334670841702128913147197588497148638093696165996894268811744262040129328449836023757586984501610950847962075201274816180960344448200735559167787422162822135336984707685144086633353442617872577218057911538025827552252066597176138398305543641567976053079884401415874125485585343024317717538062503248556137477647559699310808286169209729576544791097783543419943434142153006302225043693275393237960846388506083047629652453577740182617911411300266083728128415488875568980982012582132859266603216587188803973471402395956849632860789846168815841264998379898012682489241418572417963998907600413583982734259545881027771833650211811305384154227373324120724364265615368488150094385016866708726957955758483163271225939148550250170957042076906196315319036044310391046553950968156138493049572028669181864488074142096803774168038358288372240621669769782055114242002966250031768179691266370489406559656971908697118056214570336390556553974340339660238163029838132540986908816400936905541140136114457163813986570589025638598496446820409576275954118693198824001714045978198481116561200627476208675111685434722382831150953307711165070909025146797839892680209538369318211938184631709959501796489306192534370032960956579916123685850833601313980792243398536677642163490305267062953288898086758283442880646697623908590572073058084467044730382561833956619685418940300400607887917257712003394105509698109773253400338096236523492456336856705159212463983423549788695152120554112124250320016267015672017870502035813587927856068243146529838958750100204376104309100086776478937431592259075888446826464832519492631462071377078530368673295389156568986135929389095791988449732038325330310499098927172415069949642916843897233721037700149030723520793759108995178199065167419199298100036280077240863523420260388775194099689375841124338258079149530852602272758080101126403749571125427777974048167465782096581836173806597833627824999243126356892619831087078176298630707012670465174489582045160776681814914817215098938158946876861904634838497334257594264415141301380735717366552517222362293736892543635608993354529599251163063094153940802767397634430457500443447401601001000113879908462728283359645110014053095758716380807169162784997130776504680809606003855065760310570779003805162538572508253352177716405729112126956284163363743377947217610533657633025909359741849608847297755484514971716554771919583940742371882616180848047863666357263306779561935758897359720035234183211084344939790084014660187806049456652731527403632282246841370438932397215624457867456407968279926330218050228315004252197264299606764517383301389815898490636757745885870335679721675479821813724141807964509420541430116664503176120251721074697848089149675756993532810034601773133290486628025205090547777721203387302313109433204043875884519253207795190726053772183095549116471536366836586559667958991021362534199930620596067179682338214126731868337559082421080101997594506596098493027547078758310192641471678578172893666738514072387856181075569399607216786454663097646059612234387999906008105525389199850223257200129232842602453486699477273555430696739767022796520536416585673602807005896665934394109411727790630451198189085535036965427800219331543266811082857792818895328034327935568800987723435974540538810420812333871253395079714455320149569318785459415735184923718609100719226776554495060438437566946930398379504717824791564697373155691416563055989585672747647857750548000894836080633935717763954380166211447423498649285434156170996019885059021611572131347254465378866840809724987074647714575088390201140138450801460361062814388324916674516822988508702003625878555565191889566927413458255665764141728871252610034705994026492681958821696212319420778684264264781288645669584216798570287504580123406846532197091423498405382087168682856315043267688905047683159441484500790809784282006216771445342594649997972915421547254953032193023098214849667327490119491371438717705198368484334520999391940182889129831256287802592520490266267201278835435504571415054221712390888917050972968538211092823146268926164976379402419872005051492064626058322809143459246487235739866195563512323936638962086751602103574219346758931807981641769911982808190524862523858157063876623952373874322341478255171674812453250135193962642943181032807710497495387534859276000378541865111511049314698518422344403572873175922922259102211241237250763941129629274009677319872031374854418893495700347295479392546076248846404937111688835850066529652825650309410994307122028344205665081967372743073199530044823237876298969772006895665713921936015046314783668342819267798928247908646421166160325048960982212641359346511912257006855710037554211172709527924206274106508876934302020720684054033694838934211443532537207840305999934288288706815468513358680490838944269029058704462991794945865932602754491223976656300234804182445674737484334109976484256148092437846192345356429871988999182473549142640681412733867606886557044359260079708112027807322980863718159014095098425974883659583751805959827801673029527398538118637308321124034374744343895294226345377705300891754120175392983820323863178247741322587882670846057620904350402487029568333053704136180919359364710091510246745038889204539224079990069537303854769690320017943736918208890391289823877019241464771578557550946415719464367902422206871350469765289694356980952548143601629238166341021165641698101425687610549243176801542221541938218868548557676557451482972297452497565197949207118156302603899189586498690757170208013357238621354337019172014002893836660821484494783187561165667659009329436593626310415369327154917236541537997364176735596186423576456380783454351381280441992424142341486264446478734572605743883851849397426165354416614975292349674702643271385626163414170539794249893409653987780217353451049180766523359430913886093942684102710637586724562232852756523714972295635816063868072194930741371375192904953402112739112657927510090849586821207636124119587228564728735233006233637623573237885265076386304536870380910387959081933672571221093805107290058579524791234814949272709357913410994480109935300748298469563881400353512787034118882296814935318277361338008119420859464990984853926047490167412493779977409536649050115114492346815068941992283616998023530920756006697867719910108202297009980128708562664346827254103231794640613025634885507253075741597170513711724642688338221453979804466576136859024396735930008405955699369617384087927909463171120237474309531561212289486343634828006913781216157065255632542786733995456255527116113846044781556445153398691198701492388425706330258258466210108681706512608189979349453327248560926692914670522134057364987380610513385733828433171058111783375326787889798646363715764100734763519795475471427032891529477358943006800384781122784094176696741750172995085082247568574055554652878643783292302618481251380715875653562194028503043350775475177926359081163361465651757822059930634318662788687568315562019286508159981962057742909010333892339311262195916458415149707932281557125622951043803089153210514111356109091155555457830361794704609131361586120727966095878394037594187592125125895642127057640299113041369767557068426701639126929102227118675029338720531496387714601268313736486591931247657473415062104974055289110891258751380701642124022253057152966748934577370727476173359566077098316519938029459785202158477310656992433051097299521163980304842511428545847452205077191864705394210429394890947046525931021308364250497985707447557481972599623549550573420550245889761297995221079210608723120704953657475307264390629381467142221045153727947997222155451868637401204799168645183673079491741033279329392477060414723639223395735246964319514668926060052881295924386504001429766594041474812244020253097744866312153938869519979577667786594755276436909326360365598944840901825894381381157131722870071885060584756412570875899428038404582583788288010496966913973967774482749172744599613278839233143548702779109949428138519229151923908869602253786060386032097491499979414019143913003535284196968278578308669682015272765777592171392770476082948898982364832364204711574177838434597467441797283431150469827436273182830128757076144586744160718710178832817512424779151392213373163103449142921497216351097829045662884987679291886809819001629598799406349426949776950579578054695754540175767536381049877896912264591607495498678715778476837372767708087569793987855300473131492049242725566284340231746576181479830441822979078564495492103848849709584412039771636624560941035335986087143701143626179762982732234864714706723457354060018123186442785120847929338247088789761275532582979353023573500094036630899568177327618085255274472412261447486194458927447827836627096863243475047984541499267904959364865605433111743574355784763927932845043265793427794606389672615942742088943981170378970385056602344088358509604705311098360207593012174073289289468159476831309447638136969009545781865690257547295798313985130427481522630355384991610379235639129225844319588227348789095103036155671729079720182279494038840524266550681029592095594138000105927657293593109785734343681228012678826682666500397061228799755759400944560043197659486708829158166836619646958423664111227077045609899486614812642769759415010470342080278022396114983055673868773698839717641440953118606800771397150253760603382502918363915592968493141781514574727568746227748817710866331749032591672115409711010432649657605689270023023898918462613618344326604289569150143833060684717224016974655589335784332536577637780914528669332151730306620025965209775604718598057271220843387001707433989780738378098578462244615945748906160069805774862396669222519966999755079505856222887829864867172763643265150745518412046884271076324630766820489675695324214771279518073441109802048115529323152789483588261099271616306120652035810542335337941815296622049648676544457699275907774660308356094394574319623815930023595202109980432093805010928693706182418606259582931177529157523359901377993222172168367873732378531116016640264525451510958583011964864413140247634043964211635435575596643436680397059481447505563482469171935595109294388518148165401079262632444720361689815148667299726435934470613474313487114196622046925842191353052155671690940741267568347478252360476485401770245576173133144079798590284821316777433912303688744350517582435931949871296633527300921542104025879661728845532574902856002165098674238283541987514376554184846487645872045750815653605147920392008394088802743493122102920960567103921424112035146053864144564945949269915244530252974509927486147573673990604183241361798830444013729342660147091495457103190753999958232159143568940539139056807709723906372457733991924997626133691618628475006088027271380716536291252370488889554249668487542807417083142503517111307195956273381993023476461436055370252317155287926778515401171145966480224104293625612211845542033569167767545911375781113030401701343930541337171118028129951597329730774722286676157823266897316583897321267208558446203590990407011649193450569176298092396037760009983463193667090770692873894660419818411673669779677902373056418710249406554167305758556389712108628983078947152669823635494847582537054385280675232928291949855692992880827150465717227748311962715856689824454355530708081143615638430259955107507142134761226727103515050985875066069958096164380275273724377576644108989379783103490845669496767111497983507659577952656984680246714906471250916230551772279922258833334557126522519054239241284594477642142040235539901558617471735438811966892901766662162352076582091740231205786676861058869675857768384538820325494396606825552811860764667469159045673641837997052889129917499143933418656978628570140136504487182458629856018206699575041141292281243946895018980337976526516988078088491328918003649970837686801188615376799398645145790470160073998259436999765747404370349316366683523227976230999480122625358206444523817169724131223029177275455461170229818239178758116203255004411719552748622583058702213085840811948603105562131662640582755093177620112562255755209690298685683748979454385817511771943309075646585437784662540403158447791629301131150166797042065675400737827753175181546052769075117835523245175419698209078752594461190511860770490856698153741747833562325327770606062469844310529360952335514162583357332184598625036469896686772476331398272965475978529391817911320200377487989722029245762945505113431963849776270279562121912605499958364226987452048912200373127083294756630389286150940863292949233954534496191008420074420529255185772917988375662981701676246429369408988624420080155734621290667700111940686581894589852049444713807644361130661731106406614982969200692078840697699973216722674813875581869083185127947541178210000036167863764355020929092202628156265982861987374317209458349677349449448173266151510252290078619027029148937963248943376533687083186665518996213986959609044518452629816411373678670708596988905680821309493150215696104933461181446637468889747440274858380609891781729695357899602124350289635585986403442142674084556695559989111594630920396589823092961499287165984001199047759428383295093426686347724963465566527925841066089213473981957667801489830472266151169564246970638774854412956086577347411303394632536726415346855584971376753241814669711192122681148061869646478663079505677549223870070015302753577835116312869495163992373886994732967137666835416465127394216967518626605711898296171732460435539582443691475194437145076274200075991949962191110884992960858502094860552483684114671172495282695818317524619283817968462253285343356278078220641521967266744680138896102475381705839476744163800004025436454318142874325781152090562910128337126282823589640626144384679200000010386971082407320294873153147930342360318733850080664340621539934693351287569115782500474604203466940287769644349647340313522761224767847075910642901604576206858612502364761143837130314916785007733042387422477560852386844198127811449445478814985100184983472321049145078767593811345183763835723072408214553031018699480665923289990992594269613941487246058675936006559668447451227067370121887698501809604782800905834373818820841532458896198531614283001275344172098880028394337518634041218744420016888680149276321015232131001330558153209741806971644326524204015976807410374223295147109554315463372894624552618989529888942830094673538188851472606762226252632347974826552696270563880772726321821554317219253198184820598274899844291543466463053750180848882363077037230062071480249999160031831320959509545747068205159932906301508022141979527523930498987494195257707404702248919597718030936360163748983398582201254488727970101223232084299973907991034707978268899990786455153982842465486138403092376829364201436767084252749923313083036304407188210138827744436389509438783263539255626563916477438817438348871747960888497109583813575515075081828199015650297723764255493466933313830654163655489437499129259718469799203886276704659118148167503483195362149646118956117424119559685433114274391709666895845721630688371643758885728413803707339667561051234367153969727886551609752956931818397793594924741726311280205124376200319112136487626361988008031033073196432238447814916150035114832496561209939720362436004103412912809716140920759807014856083137955427401890995435226904280860334648753351993902463687232474871213553006290377946820226945481224457051738810934539786220959201894859790395703091623570648148011189057113427592253358071733725200738119970681186740694512226327585249215414231859287117631292535636472681660304119029595172394751656301220066021772395447560687145844956572252556498128618587122980426419348382047622251130393377130972648380004861915213859401704976442200753341208065468527476208367332878177873715344523792749602127371316518613117385515544124164689233830667694225125640105822935209113458183674971848609274535874470568730240724141867603277796097404062102463007836732438506668161356890877248730745523202928271098792548954773008402104674587426449215732770947398784067817961418756615494928762135969431960730308869277920847713058064897059438128435085228187431561627272231661078101154716784210823144158785194420115326868587444496006294526896712583367140733232756442271303724299540430762852170523292287074254891734270128435647646870722041748163501884850175224643628626153912451337962251082973555455342903085925306756927555432443106323398748260468776892989866347985049052449125194500725004961208791946669945822995818103033548724745127832493791693305217171292315915511804960660569567258071843742126781808040002579439301612211923019325955907666496457921943299310854725273631421558233215616533488295602696620147801302214156735597794406766469558142087000485929247023109122293889619946222599988372684049605328930082694110113570020783515166525543308440270822381151837785129869849786758589573577493076966948084112257633155946481562331309238621150276499010345186021085975854772679711420364583860580860913657476849843839983909994119630797994996027871971267266986442357134799012748135968696443768636749856115488707914573731121495014719901087311350241882316044475187032763700941093933458190376141995373615055084757340348282056981131529721496638596499567685503344753483244687847371119146840803877924088163994004410808526234393213844233780268989321042772679688040933646680585328285804584064195774871206499250616484107869930827502553861679227397006796584212147328622182483098436176924270648414701959650034435241684638309360999091867290523307082287028607858386689774478628774688206958473069943361678919090010582425797379617860286210178435972111147377751141943413581812874879835752704311430483363267883926987071371550084503658161466002780227616844908325733654939984092217911151669498862680473047731383834030897476395641324514926417254671797508760234679963642954654137083122798766198878036917622876793342450958575914053271752888217117785428209353451937170105759048313824975550586903822084320383663693364923781263761595213498919496708444846102142051242652930599666488017600375983675986972702446847187079490449662486055509502977737144816192949457096601528600849431970890661050204821552541918221918525661563576975971895469668115790091026053944963383553967241685613153392733969160249446705249060652075714397584538681318326792398980865619536705508262844454815575410488644507507280714263454103971093671692721010894646622232667467798502760323273905182729838675253727683393607775821666852422800047141835874704410204686404681134040441602717994588867512255293951036131197892375367076293122085439715280276568955219861220902275846125911581921119817481480159402732955584331591378670146963957455407676335383228909590146337178703348553934389180068399853974909678449177630251221921873852637706605300169928060213773548111070733860409638964734207599645791503535443103715782834735270797229001671402400739573061783201104108708899867393688458701485536014671614266210720522149612078068671624295342087545772277694026970795154174659340480970390062535485505842953300112787727982161065640906120983107931039042564536429334675483999288962710952240957334925549074185485769578474870926773077520099281458250470412988509539426596316498917657137950578619460333615298936904579939307465574075511529503305138140334456073340720024085393394827726892453379268103442722089949584635410335352630871212998784795541778767640786689309727072541159136155048760411260995071616246142003147207031545900274192499881439108397856237591466917341699932975115465746212548045688878872172362345191180126424303721209841762081473435176932618105645004689606977917198046652839145953649002701087780552228927543853390634136566328495028550744596951547069579552789560122619952523666892427541577730292301955645517803925829841215460225856343957211662653633843856554281086178161378481958462498595094063766334632735186614699752769702498458185549549890781648148823368427910011107088609156563853009202739966247551471679746977946802411296192111630253402713435813900165801701786736537892337699881148358641581205995520142763382980762607034743890639985231138071889660620924705222558871283806344374499314558895396531246331160572491344852077101917639434370638812664767535206644112837964027986162276303880669164597884695386326941149916608266284322848772995575286633407269225982165376123378215763304675543258137355409483101158948008559067269760338713379458869585880175878327875036946315103678769401675314550876826466938082499071132396095608088968348971751625107714144898669306433335135229912727931780408820269971860529320233555428181150632012071221536374589446070161978714067009595911809895773094004648949830761960838362657401640791314308975086331565036373843643488189647721215970074889468686114429690157852862329106237510694503103474424591532328917920832381261775210652709934107217738241505015845041473342819948562644888364952849497318021746316984666821433199960271865507477973401360978162047218478748176658373349891814126439855737154650237147759469175940422058244545487545457808817554795175460360752043504765929634144796809634009732769776314103449928409594247855929762708554639358740492548348323984414014460945400072520682316735227762273189081454551349139087647896724924146975246216043677421461058627198365283326420994548304628676876327645207839521076943180517084086128280455310539757878976629566014596626837946679523931827280758545758652735299008542448074407638624781279683544243117808895939619973261221080309805468138881026521588945802955715663542654983116817903447812570215886664119362902365146710164201163596538274792189436981496621629440217562073713098947204237288073436057755050576019284171617946307308478600835128883713688310504531090914830099369993146080389060422189541101891356313238717358407603054393167130600831656692404277306020806408012441962228164166746800956513533946834187758088314938723066864611775386261972245900571495274822774625624512589070904588563900243986309385757076882220177747951204453920178937395821248948797720210372086937491675188238105905707150010614440302137252647212311143418553108299447735746017518390614848307639402529325221159523038424342254466379591530516129502198842332765498137548591298732654170088657770963679208185314118866520111904837366408686327329039085997651301676407861936733982783209614031302334962652884038246760210295379774132896858065479322818471970950510996963415661119496432067259382951668685166762622065491783130053835860142757601386066943899161353089996941504309799924200484224010198071550265144134980572219526354607113179056682369954578033099698959898443365894360120048004744631219390195564801172647666058649575399648096221990542770098710218319289898288312513924734882341228122828682788211394918586972894369680427338955004747221459362520568972647882840720565334784968712778619852992690423399518009188663248174439410848465047369061789996211969602365414971535787066248918293303903672325645928872529254216810636519408604490870793072460974655116454609589344253388577561877433505646810288443397903546801695748716852784368567444901362269763652358332512629989403816004060334253028568574874731252079965495646049535844335486795268288805912293419418526374425314837129276798450685749295652975781096474958288355886139617341096772714728827639673064036594543295540078423084943830169286701210967144575427723404540741235871092695299059799535246862758427702151807011755076609565425001970484402052188814231598820380358153157654029359633584025583661963501345226103250678220349323482966716924999805320791112124601017919392114763995556215433733384470205506978322112947933708293289854677316037160223986430572151259337922702636068823526763138460742404550796246991389717953496398688411300625901642548997827329818175601409388979549203941724384663103921500070084653210182352288980675323006371733571604392934070848050787560041810098509850431747210422595686019943843626437174244334762949927035429592113235480870501969133561280714034206972070961175273097527105511532475230943192448926229893666772737233236089862844000947833105290005474374612049890242214991014804849377689387096958565399989590914732715753386053303402425512997376217642458081146375572560023494394822476628697047991890718234415846828394956771292222377098499325531836378918550263506070231958222201750043509650904044813975124099442404384101031039730952202225743855687207282987010753915373494736299243620480485730112023882080418350384257093040919460214522414518990034141892336665270287122545509707318084229559476827460723145046663335113998069453611848649934472355742487550971575295958103673565566664190371234297440683870082077749621202963221384784399546351688163722593038287257794334249403358510541475114605734567503522493138655738135860460612446029578325752768580327162254480172398294980619287614273379681151736450401498072146109891421430560546120361595970710112290972466812836980070704186239783307344371401837630649673656425666392923220597339481185035137760741701887431058006379458483434996047228070611301130599928073773825547590370099210786131906553090799914284449500107243609222920186035440203725967584971021822166042249486625911276477665190611015356333378318176033228494221403191943952063971364964754187199081162696796805294345200783581062847465351292616541107041082302158169366879146853148681890056476411760501347731904172665766116793828006270590253647970380262594677087378446494527501991437622119476893256554273712613808727554858857807168623879520593997595423017351017294399000615121166261431391342190157171408802498524053630958826253174420023906436219274390540976948677319530335107568151876229363004432164344325009589168888714624490917900129982908981626519601165298362408757548602844087874617250502886186084191006026540923867088134652935881631129258246757930786556961825358110240778511215469069447816604938041118304927129658294389844431944018268194725503402748636425249299100595178897103738725721764882742865503172087669811526015514874628769725032472336199769609400145116268434317907131236038121964151362366578715785487063851786449000524744486686479436055319971651884700680851147518092598156731678037411752383135328441650194095465627809549341869233502842668854504023744286089109684494087602357711690303693355462421817038784528648453360634539658250823723236462879803104818684714323126533355339840872402386778059227773188564743683423508902883668326835579079437123639590628884260690152971333132374473428590180598258309281219399487833864262736813963994510344092072128358894204617311398052472885605620585390071358014183366955546740992535444918904263344124435282096881076791609019906664131210823643608507945401497321637829582168431044125771828901275609996035932873854742137799374352943676052888574132150156233883431462564629988668710845173292487373395650874142028010643308143527034392027420058803852910359305329000073015964233575884946800008787665787922467591033804416005140676650405557499692114494854303357204106022111242504746042815960259264367609344168998538588300634856110621188908190564274635870838095282604234757806136028628269127408573605210982753486946156340705582620966050265497742523096522427900418320094477972782215657193846497300011071723839995281724750982306619102359633452744193700977605819814449859134602511164351394531597693564617734922444537706732897147497806660307604149049761145362945934732822885802954397073955705602353559887584953464585493544535529363662088650893119769834417316668256354876941294232439997772259471343935909035159709099094248438082414955914342890927459888031095255342342409086774446242111412670849210026887777932125341107287893121698890983442231379827112532382898154990987383166513584344396723480067937525713437918541501024118793119825970052736213352138637031453308539401037724704766108801706459243873767772098543732903407762760661681784527717493985555411198316990050102655684004838429424714551930515347783157222014952631877390160654189941716964782420534284677741519257184784033232761562025562366803600403656393360932423424108751035723587090376582990070875129511421784948217703238016475478804024561589409392691495447425721265296869002896249563890042518543255377023672031682406906330951201599840785996696856091066688756329852388647645589806047856613247075872050863988254604483890685009963397597586869911325504111017402241520232099844774474146901140674886167636767592180723165964195827369183793324888733613063022239209901348758851494641905115609537741635474085052320475934377624764156595163846754160079249451312365520325011937570815290746212882062557996983564903803792326840875997980623545663654857097946660243096870308509301855317768607736544185180687150653760549132680241093844985192095022898661574274038877267558278513709508361743320692129637692655525756229682982527108589468374088413195073210704518381329300220144992464289305534366567444612822770029865824154042038664395429187754568298025443514449199618938317134564971075017892515522056293804759493108721264242048158754890641262408780021520022721535393966110529538068316674664106169378922343067597640951460294713189594932924130428875716699003404830853237226009215401484748123350720146292226693023275661512111392348193609794192588910521873585769918899943055467978221828134189852237397478919715826008556902716203357473491229145161647145904456135623311743275565637796999511195905680778293304708984332964040802099700616187798976846938286536412586744315764811269863356050798163883683387672179552007575494762692053458678879469885995481668882225408395227781772971314426214580212199860459089625966878358187071077649832184095400499535780122406001256656798982433084367217524695086778433687308877196385678753102514025122852563855840275099892003733605022482907970530476752676315293048585781117560308340086048867062483693798968518755441294442020759502544255732564593191910663485152355008503393113976412313384525598787113456439480169832708963614454966836017168154561494748615091800280342245559789001949631732179070860681286550061923094402708780859490914526116158591785873632342732189423429870311337020105989359810754892112274394939545590688201847268552967210452102540545360915261462901859253506466934152161940957666920725042330145282667986452855018429581345453207654439908777484112022457344951176510120910545348500341341337669585984953907304953252519534079532887666700937188469776556263745397511341555315625410424986988618087088379420610336818589154328730543837945047118525465076354935657245918745949329361317888175274132982226163893991845559559215496591157972876195415446642577593628913240863458533780939992739583809918017491705774239445711159594365833751694995203560439188847685372995243196953366506098417956941280335984427029955965811943068959645768453323866296892224301088309313707052854761598726394556698176761996668487866167760604945514329623216674185420839906090024843836578134477377205837107158771508894261603012140745941572620288739741091113623728561118859747656865371642323412873488878616910356769368981419799119399941499536782856076772062403330003120242442277276771156790098474183084096876686187565279312960072546814506165195739215926809697361949945751397771627598557696201995529596369394736088343105019701224064571669697412523535130606045148502607290147971720301858260592724786622304416612641144706600016353995493720682479118800918615070968655185655655784990194341844614202616206426198912339848402482145772884659567903305972902558790637516428981211739534051316817162494561047115709828329957239054555256034726715995612171794977542090707910379781892407500855567502543643960708612139086106693373145845572611541548531013234853974331186274365813372270558667493248322920402298230029719140011416547991667378567732063188571453935525293175350327407697787092406957683169776411533076706354071330728993937540750954138842537559984209697491410238794954198074925157906005502057786843061772953716080099206243114531477535068284752330460643037140685764725619949874264701961438086490303916626740171260995345568570147302667545060144192651863576082143309034914236258951267466373810388143247180086287725844427035284698318968280754026615519981947299033252310616607539326704882803887919800208558627665088518903234815119051285130136964690292345298378747863196954861275662765389361242857577173141856039700771858842729823175478619400905677635948270897299400478944662989828173658171517988340074298763752565756645681497829576604914134473360643853101669905586872137965201100126529434714456704277780383114365573005922528372266065727942557292964966857792844728955535225609709015424764446227682342564555908600517614820296136270830927468150411188070514377273386993107483893908228338420815433457286279237529131697371089283306401653069810072388239089136341598950905426337368084062019958215176411663331292994372790787310310724213149865784945370005940659574721774313535630501270667180820226978958547880692208800730235217265518463748401881224470046653791570125251994556645349809596756012058693202999986192372498717091212738399784791372978402766920685425485414357274811674409461240413980503534485834817553746766844877185295923696974160134178415286059900194447168536129862954698187113380656926621525952416572666017788044485904561200652204158449690081022063386541041518190409660713421997340783397175416766435427191851993759282777343114915391746451761807532072787263956371271086346977356695531282668675837741390895108323884573500435903299977743524227594831423479084660473640163706003516753797177545416625958175471746347664806799905951617507342364027253530750661461778566059846515472562852319269249784368153613939542570022276724448540152014091614051648889241032030248927170527730744852985396093746657443314265828718182524015214249870180514362383411459758698135614565478160555962699057040870445946981610575466600439000468856228487204774308678650972726506637807988760643281014020617036938739646750658145817585943551257677946416642468321221612278623880129053002610597969025080199843916059906336872498010986539509481494251392208853151497244743501358107978340504191472339344966912909572478678652609388106749846013752946666517354410491975183953338301110142219814392277470305075881814009396095992033001339422401999741099199580829254722216481610025944528217764285235928239694426381749157406462070305808686114228439518084728392109416840635616535994570752722163552570317833897411469827012479843079327628212126723097213214284047163886847747376635483286650929248258947415392054926430129047626192175425154578927697002575359509066926457125591161520195456860605533182610695869290902890932279556687084308377849692025638367923544247224084202583495994911931817865835165280577812804304435687023700296873862540888348320678327824647246305312330911824768096360232637807651085427224838064829699073213903903236835569947153428115824164145105987360188017310993426523738667542386976365948224096477555787976214320752861376105906432393173784565365016799814143907187278311012269307013268222892051357157637325008032525655883114410793406942866182991816943339438417681847954807596504681171729713174543087300241673972386072136662181577517312717908013189735344111559729235048542681938672870754623898515916465007322374335393550168531965587242561940495942659090823888976850913127382464454504969903532408988938031378942242639548954263541801604957988424411207434641785218069169910319213844584095193712042427594136795843718768460442816302865075231800215904061508188482578225359410020103621813897507158566417654234711778281728429554400840100165742177406167782755346437367633164258636113918671486209174909040742798530292032706473655411322041376469846870507057705441797925181788069444048060210800617400814302536335212153593745009787618483088118631525592348801284908317153113570118613204631213038993457823662505864863061534704855880506451637141073737809958769603226787346065502273690393478341255136927383299066316608489100709612548091922626129839646796356450894135987870110712099446750360423082164660002101214405591647904694766009264480880886746959282772750357879255728705725115471919645545150514921782576557424112014908839434310342904171552202944401581101883817478662247479661222435885514925286051413246422704563326496534613836720969317060188603649784110037580982262145215332205987950920466736213458496042942844656948640506616067536253008404283076232393685732127001235384245923026912995899313024568269653854197836913661733393125266664789872593607801523864864910361238793935825877317812928218143259707239804848075506956575965928659272837402923443099134611990930690272900845807285922881662874835803486359080806080652706265232127811591131047097796098734488317565284670765733815972141522156353048030265305028638767917200007176803617024001922530334141313001956009209140399569176266985223477410075939808888144686829022805603653778540767974779590862991824591330892281268639814599323763090674303047493642261255335524260803345863187907359841172143193831087565675703123758842148312955478428267832643949395797841863183082772442944146410228218026691898097082740863393706946231085504619732284155994278427703004454575665056820285481068035842756173211270897672773122390106584884997357153967372040045561045330780899367508912959763553224123144160426577965285231559712930785439306411105792364620965936024296516970900961838260427850652093411431716459620333562356896637344336018817641851388314027970424596092323485964328592552459098046958164044267078491122904527599243790739116886604624792853174160451755148204871002780734894037766226852856956009351552191568312278703083787473498086769658558572643028000584291840707452430912032181572793226695082321576640905366897522775535205943020311935161793874197143304671723432504941178656732631213005675224053577665929133135927625107906810203593822012852030113112537975987480444743270489077575105023688553967725377234607364819036001584924524691839338046603219435189466388416751888017771961378631995022825883730840197571338326204104061875555836682566136182919623136817683694783020435146758814739634082955465914290976182239630801498866082326684337175144052946171409526150854482483203633098522536817393031576895636469469354498741430641019215846326626565284977609136193133257541480455740523142053661816876522085963030985226828794355761894314395905471782951274801494141463369094181174606711959874348116437894967123985987286661845606041572776796189006960125537222448891126094836900432863615849323658095219296224203220346664392627655741261371750059815839303183073574604975501858587034221858599874035201823490988040363882430704049977052365138345875446578569233477754639691932041743149197840027213395819518241413758580508630332544218956290145889333150591328615274954831120548912446480568402535482751942444880198983616680232156960606394980032616027398994961530974713979319902160690416909885502022241019471373108363459004395815113785233383796423423007245537980696973468933967148554197062758955946909855383162538360050200593933530747573183679493443588630457328404153749673784934236941752078843847803640880228888367015740752610606864879335042972387088798558004981624275709028033328902338800876563216676450705078578350536457412532603795816193983687053715597082930769774584374610404375252232349281854280463864201549460434755404739661431391144265771183068669812696092317924142234304276211980125724835303960951959748726485994268818847566981070677074272335121098784447065274126484386345275031745513427391925325604201043237168528078900836950719667444954014262920997465308007679128592915660516466425452097322537364772568056321753124457834285019641555203461361609155061991410790722227679919300108279666171210972349055980259224886776955762462235419389747104909728955582498162513440050991880456846424780741272271650064897626183029174110966215962206460280089602805768915447553984368046125833721932244762736576712717532368908945487071304626495440907777221587925307640147026653770912109681776608957372512278267391088116562730083772120974561744846164938946580832938656326040005407767456819329306708628844583828797609397169595215901769994738798493898492056986667111589835369667028965763236025753734551678098329219373214820944087954292819123108032925046034012822899318756616532218839013417008952575986439750992687632156978163431236397884577056806329373154937110722460422959258169305829250836675945378759843625751081345583409562668038142099222902576231873473001925038028256999975747396038661809352165405020430015578673444382677104958722586567630244820115048365361540995267824950024318901157414998282712667640514444067835109234920856098869478204236750816963662927496338198282667924713066957272202176701518740766597386778995224609666378193350931982040646403024718375423420448938285198916873694653157827775377757359347550306731518328087774314473562229002545268164356962438209112899236122611224264397157815640462893187064393177145274011157785911256660648464111426961080891508722551498026235281930819119812282851325709841273183717970358614043321017218948905289777642949796416045448026227736195269856444560897272669988977827066215566160572571236530723839084736854662127719624391978131560331862839977680383101266544887614884251150841580033692901109615433259923193272500296086479956388676998175268004702931796225174561966233187491374876513503619202893001940350919113762825635573306194625196389491594527318789676563989146082322639494596280745178653727366552296089102451611426793528709204923067803767373969081296545793614582598082494142443179716650058686333147502038345394018473821892360462009786516887108891529854815134322198307064385114219450522995854181349149277152112420416911626616587611152147969509553463070737841644170959610411988343439953154816635970083099098513292500002707795851870113533561021352391994980376056850820194172930008359383235507567125751539126896348891649205020738372617539206845651569785732055949226558788996060483965226187654477362138510313647810538328848214092461309887741111940122347196075650602417737207534017203744541612050139618294371388029100513187249807629469693251660831451910073487020924980205572910224899389077417779082537069860031071136491731428979162662499275273933081947738981247629726859320768909095578737224162382489060600713436669485330457355465613434286249788376514340147609030848795733243510650809340512879137632233019465305093639590320154300009137166025605592182771333411077421159424799319132243196333064450189913576760274071518226033692939032842486410434860279422843515227033704508759714086806854045533175612666325105130433066865619499098525601906337726302607599695962025336277420225101392404819035429160016761811418762729550424616590697140895099771761235935558223405621104315847131409021134948015814770725511011270284010542962594013396745291379615308823272803722597889386076964792954985670430232895397505777079796484134672361551708752580779998483971031840416136984600087169313287444441470466683318587137791027777854918637966526077360596204523173962805322632178198571113475360768157120830645557829972783604094839670892757328776990850314477147287399066461352673845153049925297896826876955213707134123095521100622449467111889832380397655379333259638065284273405708204367889627260044350657800929397959985071665083028170533190684362951880795464091255671999193019380864485509730820149642983265572880769483943782108778140719775264715185557713494191611951945769481468016989619039489518683622898489694774735128056405843321237351666691254551769558787628104783007468626449069807784794907601425505330485592782492592538900508321497219326817399709326936386137369180901940417013814040335523592865409591992301243435805725819080449680789697328010928150960508828145072050091320911043394932952345759132013840394821587689560525588425346981140555637094968704920160314563967067490601056576285708785451045360842628683151842145886549092904728328333173057772402693415969610005672218739847406582204264432451693391132559477205222090369478210979821971457623369866055116886342531628201840230400614660347282236703866140626497756644494100219985102584380838647033223720100576255450555354188832971381282946685714510320839827761362700555912219784992926624499719244566267864641426393626194563120824720373567794428636343383872795207090529805092182405947124322497280073026586123984351688952791762836040217334562461674422325438784055160421917047359218217635992183603868673711291346109251809995866458224971832662588137085264324841515926815475765200681990661602630375317824124808993779198875430280654520652405655074655877938803244534124761702541252369763310021894334804564635928473752381621716253928159693645377198173446475924992590447466363729402006107331071953025831850772361552912659454126799996883498408360358883166514016136347650876676907496362420824923308456059758462974109811474166510894674854264551552913245512209897123288941869030246654420945326784562054796417441875055373649247385062809556628532910292112931102669764166706900812655731639688376365659775841163014265210337949196544293077187513676349301966372960268711551373026672078485524597477332443172401341663377726114123588690441133363939172180176630410040712731440618255356028610436508459472770555088462145439645323440747684291969410540256845158981212885914654018392586052214710759228554520123333831525756780672033281029962606075380890509603320442166089016073349187479301580656686382036365487550280743321935003890305070604962678492732475280410886289693205382042468738654315348820584872013688812828110828510938925177719484248721295756900066020664177006010595279042714677723750094604118797696604612249723541031061994527604270440431118235593193244858745317404711574043671037974061197595777013040489345303649148199115316477163177269149530514214007885098978240825137975730681423102446806572140925828368045832998244056662289843837198262580212019456136880853676801707139016504711265691463082411146570268638423849729197180514648299756770784894776547674779699368734528274933284314259262090343974551780387416848206363253218962383165088134873752624153906876946300723113655550226856108530267951931604043291503852487175745464515082441944340234624414462301689670964807784575707998388668263798553022961744045675678518633092188840698678554679500929386248242414509058726019496332160561752925906910830738682305013083008325674793461463061476422624491091564610830866561765167409000936380410417277801511847351282585656868751824169614239140824229977447517756288697948388044284525848549736350747227814391754136961136258339487022172401888349178220403243531040650265943292903207086160731605540472675818853177092265490392784515532000059649726274148757053344159647747933584595051544912801149096015438593021182246292365704641300800142098864598111806751820885155804880973718982511963740509342928168244495616106952050214852851843734962722234018275288422016882827887679992398570241456839990198388096967199880301784783183249445864266104925118240716535690468176013934473181793780243937837332235173439928094984612524140683830649595638553215364110603358308865187530615702026861752700160838211005248470521930279838691333345978300930597134406680240015215060876959778914563171771850485191714751029202492402022507350706454698601807768483341766142842793450335336580295089381135990988579923414766720446275232209047082973909355727924658487300255126004095733019282836247946192305392157916578828612919302725850712699513606770791905663078986158004714356283010618897283280077522106190991645965478704581799079146832013790875846970051736757408919027697964724755716934837380301483672145515236979958037362164998512901398311944992485253856127812729654465579921958029424924901868512736502089324599984491826189450575144265302521590759195161054803374264928969458468024344468625745080758800226534754318684668698202882763557496755519738310126751651961937462643492046740271342499129075969895707063676851728272073116296416696382346167818548799927576920177357749796662096982015604317694307144532679223100094409897407437208073523951368839168721424604352434936731214021844799889192668918268512380916098006395811809186242678362424519188943553302842241562280786902076014319870660608745227617588927229059609581254009455666562827291906241280118314606755698871057509255477227749758664383114765089951456917868359136323631912509187311175538214286672257622513420878402211699172503053672158772112448937294239889244604145848579237001960602592278341335264238970392891513769795659179344000948474738362011899898110155016492702222344633821527400794350720689396230801408713161467794735836251126755022203416955497079906781250745032390541631795325170770386729840728769112028250841688976604092488326947195865287899805445398520955645367945324639214240078302410887659826979040260665753736242120343792710298963196304635115911308181403337634138618085911782578291394420063536863024070336849193494421164906923238266703771697339000695263919978843150342379912423467031270662738409532440355279999121445257063968970708015000354491240796054317609666133537432965751707810270229059408462249195765831411937241649352236731344578058727703922111758394522981615214525941500923857775653009159436185381969597124147717225770759898947204076529677018965958808342607334482683615718825525682651067492076556704599174340893641760345965476790047212475467108107703857222596753236596426439519641154367990271722905453719402664115150706323489738839551622833441262812638215828664588346025558160334202799410005939160250996556922032273685487951111265479906772842621546191777190396388190805930902141291140291871395254406885385474795976763143763076662391108948468719497625741620136940634434210769057106378718830885163528731768540852054608892387828014527142009040731595033857812807937570620820906456831468875652158254501795896496664160535966778189964540949224099251944588284203485617716398006351310448291241735993866123536007489794186967638623515700312183201476168633802177880509105303016264429444360005989702399783587620394920778124672842164532003891095478263513984399245336537416730689728331339291272852061323470332440833207142787492375979653846234901653772633057792624099085372911632736304700340608037110843321162202766705195418292461197437099967097691409993220223578989402070925813978932874481417320705858943883850182975653908558775541153546405430754885907589391425188383431879831032979348085210000389393250604501080716785568455235795021097524353052759132479438910367436925265504197804310512973016531618212713866851539442402374566819610000449932371813468975216636191113655482454428050670918034734422944856320409759969908158266586305141115038215019614282049985464011605269596993181665888486317495663325476799406518646100264776148380004321876541843996081765106784476113940713784583833894923186034945115402833549745690979998585349181090715839088888949511381141604025805866193123890593819309428207910983605850119917152675221812949169246970145452479561430965554104844872526569260657415878786777127184155579788617073320626214562445669440515546128059324158797792636111495141437645281917352905998897771520315557543927222963811731619222125896752658474952594725932739483464551863596683523175776663866781807073460648254687208820998533998305103672301733106274727092284441096088095866160531681348447705581598337062586398654164684733551286235027570145297095923093748496989933083709955486836479645195765827102605719885249074881437835099326036355074378015750969551280419438104801062164094219211618603880550230431613399224208080495455023434658049097643874473553573017702059794955795092369213463769527456565947061131405424301206663895376004379199018806359594046966127891508965013700324241745740802671584653251768980396960491949957700375853751213467006908041475629441374530954971245797021771258966745882046388710287704860465309409303737739738343364030553250500927986711327711579393947116709542499126493724531281142208386150031384876775770707502821641757371505109708848045135417201090390393584040650475359630513467679944507333709220145327767064090281703308003755317863681128870452683883943176855676405137032256680867464514610984225239545798573083853732254932577692136107415345693783475262135505513764343258957755472263584670384955945607183687654074788463561206545039451647708551559227450512126556805077208963364306769846779186938545834695727303409080854515661905027475708949693730646099502364653651122232414102943418422564802826113634057925863839360175908002364526587983463451972538176170930722196610754117170738067469514506572056269898055687115527603237759639396925973694291273100940621864613818915419632034882499357141653462036128938155808949517899270928927933694750935787048359094469937762269038274394728365571689935359101791541035204803966966742783121342790664201417090368842897650270381966724516518826692358098146310934556001019392177034434154819266919679960118781026505839871194505054319217963520766526460355052460253614352405761172002531274705902610808959729255385323469660980970764064345660609751072896603765088518657829790336029708262221822497735580545142537313744436201606968039971802993688740139333056125377830988932928234322496099396785803694609241081239501570588261753339243512176169103158906927493242659746259505812652108279783065687283155742404672696802591002102960180223559112411034240033552517832181115847246132601860582550541701061433664277218665827612448007320089429953730317329102265088633329290486658243948028616720987665925468346474043078760546888003414957159441566066329314047692163548061057089157861825235105424413436358770629682580575168830446838714647326465703750515714018724603653396770860332263579064247039514924344933858070591766453635319615585928307691905355496544616525718464016149938526602926252015288615979443740126217042456151438135077041566690310720536389613352190868908953066674248448325364113051295362080399440801789496324466814132004099854960434003398642317943755704496193483079047462548483337604090676407991784368174157244878815346473540988270027923008016875387587002623875749043925212090694426860444545626080954792238872910984667314741152963181422916014173713623761131230769467716455376089379723044893776411012749604694281067515686053938227407313175395128199677366007133898861275454560725005936133573873647285291702216777927644098746867908341622612973032386476491374096091770705977511637324650418306512960387548555311050922100176808262439101607024202723266741029577752881959863632997192663231265164495775168747038113144961088750973823805771250548891438309098357066185032662497482178937242765375180461255177672179154444460502715872415181644443420941907685639368559020866971518545296892027718195429568457414544461054063639272825680967414831046141462015966666670682256910241168896366494186119807715530499938453823290196167288662356645218216287206197456724963600166605701527768131802781199971199453044112622717865266646431451352220453494680493972465232693036385937648633138290065674290127050347508386069154759169589365607593614315546330370818700377280446588527886334983683755888241564439265037369110881807659235085078035071799614452162819945079371827354754738734402950827318485147480583913661170769463992415250279018763045829581626587669913739928931511589965622100512854870092877759886920637477173420938087458392548160749994480677946185188595695094780396859826991097112164715076925256517103736432230561008684827332914098995326637966208443634468396065994273550326833026154284023218715186735900820744175647341426322049457444134554132733757761143003699970540322023074443085353234661655622215848630054059337581426074295772960181516008532325953711516247298847737331058846758532108556653147490382208619432083196735394411771366803199651126807059498298727336786266960645734337291493458632835964085995518442931884011190505755715569849693908797088622660286054036846244986369150938150831044914165298914008606204221919977662649137595676619552272702799442617859103036588914203558489330013511001321333130315540091977553585558308095269190951523785149671801281058866003251188502293226187525331073704312711305082571649269229980406004391912275359924301218206291765367229395142394178451652926329319639971280858910579506438090396325777464176586450413601823076011356330420590809547761359476771979481614999024529502371393271013118503844928465922671029631075055516525192786289532343535823134899490517485562068124991578225776647295768376951307098906459306001093123166274184912534906103924800673051662315611864421474734182522489557066678193302579790344441498378880478635630937916758748926775671994524812496463342435912340986433305439437820574598991648226923058335865765203913263820127010109306488226668182885230963072826292380186697246987453731842637145328842174756558060231476041180133364821799759747189256131926546249751059606120075070146899613187024822381223641992677124116521158531724698659796035999740866195941174787411124484675831011566762778480582783351866333317415156166973606907539710387644674441234530217075741513381530792793863406867223414251856255511795449344816633654625021833348564205113266314874591701894780009379511144902676653992558423778480230999126885412721960671304122392243883892820387568333182767189131811868241366582324353786867172363289180098866102764198831028459315198054895626935808046388149713712786179799545206878258727815882760903473902529939769050497175770098159189463763440320784111305698901281135116941494971547544762468728439855209609708057909801942715264659052570250946772179928509687179347904811566086129555730527387189561045829435965791313873450747537094094769179042097028649059169483381148767271633585569283456612178330635166769905240891249742817868013505922065457446683381054987749733276949425064338856565376688882392339620664261667288599710469191436584392292777240130686233861746416614239625589497358279300716776035245584326883858779569317710512291281661662446235856650479459349119347626994715549212777944276969511786324910156999606793127115229779629027613871597633978202279821001036765900261493216893505395164450177359675376262521276593916702296839914565045543935428543733052819295322453982314607783654047472558890240751399605708096997274247080502577500753062305891457368303090125960573197092321560964860873472515507785299502626677527192544099793059166997668013497772322954872327690005697506642676748719143451375165986411341310397602395968354682907936681016988158838249665646287816855545136000074952124067225016150661280353752374403594425314024694629640514014336314552207116914247954239088470804106922933860946613654586670707295010270182569859701393157990990670218955823838901912291380483453150862308825110816680670650348812899170594412894497367370297369827844370912844756188401357064337310263291851523686832424247506989764737519335289248400568104302113053728904992953869690029395020308318127648114023810302172594659254464739575335440986740165505536972977770045533603373709073923443892966307705336396232146730006564854315355132010536650849199405540899615648570173800044431644178073338396399665927377173197047731117929545582789954193508436480991166892941518504646794666624909391602117310078047892822551562577581919604815697196873395108152168525607601016400897026552965392913749553633964446666611864173185175250681510179713602592684994998268094730331035445015806452588123562923709785537866883719094807028175697060397688170183879997739640773397088905170531245313710957826088791576709893054549005093012575073851375436063437207375998776160063042976633376955464992266395070674348863678095723025461858408705044598638663166590312005350711281513458820294108751825491288099734655889475760470459200906735376807153041469095203210046717542502214123864173699151706115410308477947983588736547010305353512320999812156140249548589883547562757166152771227545083096481892538306735870080772122592923037805402826356177612349436914044349506273837910408599603271925034697957925334394724131921795953836772939173655649384122667965419331929758977008960730229257628508769713248129679845658887090358555756359398081917284306281769570169102681058319167771539220780912176160493259416368501718840956917668743790721668950072416946750170447451311544724577414623375868074809841250667806903605258786774188352535603158204213449260598469547382220844225683391945744082269085638549153197701171928257939598958890152937158668058846285264942530655684510923892220643192815582306453769568406313187548254051000877068931851144505286511590841735073297778298279930872489254715111909549169434012831265189134878887897398691971868336965734502254887643686006205069711514786176092720759484811837592839308460477307402180361279849240261730385023858823562748390850549398231782240271576673607096361515884710034785295106794531436920293956175623309231989373308036738622252883385684663184949894398604983881229992629136084233640757595496303897178819516133090819964782892959643540610318521340881097725963170534128565880180274883755481624020687827112812014357342246690478741833564039342323546176796564961005760044269662150217763955528824093252213979881315337936396106862977316248971840236532572839451990281250512707555384713143254360562509500845834644120345879519819025183101184370575120346887976670036466433740897644163003957425440869723001980852187369163296831411911567853971797351993517517642063924774798196701798969718218908980161827205485983009649947585602713291687520788129629858917170980611214280483847407346171807783547873664437782177128780051750909392041381925084657757161072383426128911508949246909666188209742488510214893325351716739970953366833068954876985316883228820511930598951092900860761350238331688477639467289607593950228372159816847909838755401481961820259977829461225842249102964368694659747087495789788272447901139301765504458089508120236939250520949159993717318133614031172559795693149600699616655097632012523196418640825703155913854852738011728396441415884619225986690558088641457545700251601767685119381150590778123513474509231563334540978772140554245579806697449979528030627885751203039643660663088313321465614944207593229534673325612109913844769528029054111497231917304004935251149578569403616847323845396985917954776621205244472621588758720070474301278879397719814713645906062974728902560009902541586627231684654089909505777121889026275754936730278008907230808760230783192014228409163951208960675735848569015422394060992249776435713964858568229235817052489887891661196248569069577704092814583791404288161600606552862740245496658090950080027556623840657144134154255915418212713885146138316210833564033047021130734933522812941430815926213198584706015473678307927755879255753931456575965824923668184386681689746389009626342769160152106457906247245685811319530650503194094262444881809221200607231004901044402922087935311012881809715194863315111524481097401232863020634707530901167290806062539601880627882401972010928540382193804587611336496088957311862742002393512694818707854007994522186015027400634889479832944178735413336935594469404884947228057707581600213864943508366194225768017490645969713651465620061980836523109807399380837210555053340778426888913955361959531980556328630846051411374155448643633120419332251817065683923560920041955688293052145450906255899321234225802631600601988390454925791467912578201075986917537674220289379186704322372607117601536292378723238863013509412311724914345855008595403801486837573456674176765545959666398001864085032259066722144651166495342034840610009175203413464879474968398236655949195014865294476564609094341567166833582755355251695775762256857723998454285898069475499043347406023526294995148869016686309764314923367575138054671028086536137809794319075725214685345557479373372448853970755110122809818661176829447436298882331394118556668640595611458744866512289270412428815199032563472204839303832474617277302293307766496770815723758152334230527263976225306136101357654733781267270263836620971888425541903643283545089108710837623709201901781514846506898400918969086908813733353750034412029046540907117700373480460660059641897428207298876452462616217644968599272734145810600067031619908921381921331963695507702887703004704125297176267166760396834281330437117187881555239584861917910247807824693052245462435911927142377485030918702030140018534244181955233406694567248853980781575407342146965375786782200653953193372796436980382389429196865481147029604446376114388865080061307355375917148802283881422111639413822641240849387585818008193068672385640401662778974982869325276358645402208805214521762682405771111941867972642193446247691816196518725358805252488642092103411845006424376336885250082503888540571300756998875724428333603654370912939603946588208647927927411094882078633552241295202008216782255027798301594090920807060692069803067759036364249071089626748024577004269547545029362797394721025527487751213984831016142850672584358659783733439731448385245076330922246701759801885024381282878080830675746089458703189162725693185685741479767503692188512087317771296032820446678902321468330959506980935607225124762530100271086826787953361559148550691048916777421675762619385999657517588641935902188175218747283109585930970877296180143369845098374780932634042405369112736631907451318833717511787335362692977113475049749604613704117952939022303609917324312206227420124633520860905901412557020657626383763945871844526225508435973323587104207408934180247150134826580874483876741702449103754403756220204461225853285114583321541671506158900902414147226818623679488864598539947379168029502393282874272982123707048680588577798137033821021514214461548376009905455399469047972589059948828123759300037840625596885338443834699475872429535569039260532437302311701161740878398186687400029080799370038779742227811417675971165462553403673087911719125785242542994933617779963172529814206124074271272598216910126253536956709606436670651706301575575336520622289501664496516890043206475387508758914194994049624463200252170819467013722524210065655957420368706401969816673155154328807042089424181784321602457595132524419828816743839287862989157470707130738907079176535873344211979815376563157996204392205278620257511721293602142922913004665195359491896087243934947811315724437650630091163400623297853948231551603198405298171313356650881851445178437657992578394324069202718345820333209022417551315821695810425757369320814565270387447938977240133203220666479464712578322300645525789015216963473190228833976141802565724406260145768189310280980862812119088949276130024568553513167618169656434031158615588924781986227153104144716570797443884594882740244887234580275944859880096310123256090103283994386704507390938741098394478832744778012362207590423397282796817438886885170965888671234153263245162302410303885430325684534257531721735872260735932115834389333490842224469536498006481028101535876643872959764270771933527724283643408834651124156822705899495064353993910349121964368273539804181191237200046610699831606812331694026913269011990975544723466146287146164597811139651979937705783922494542943165585310977405291477724647856564598733463173532349008054507575227338520446654110873307138710903788483787013091211424394097309749305561096275294874524958475177503921028886498196379067070681177185934262074212274374392407329803950951967094639417161620622801993218334203219436744878934048828636719954396507051971005559664597437459076893957847790444289820153283146886089266017748626935182356547191584177530829010179005092250167525556865401863210993217377353455978867480846571477155114467369296223086224899150634025885331992318423049982950924093558954174254017866986712901261711828928124943349405762116107064162997227334259738165581621170700254062179598981233372070379627973896239764014711510933244094913367552966812347714996443977631106033708919219807147054521049062917313684062971583316712506413897463708807100625237697203136221864913399177609023571845369354947117045053563191328744351509620238480190642298369581138979776780111892797843713880699956482747605070187391928602179129978591109545328397725076218726150510650487199415465609345542720453513426537983798894353768327589718674912555060285312112752029493652244687072662965575126116866081651747922495681405344230989356535374690645411636472221255571374757986062066510086079509091774057096469362855277312758441230260789337530601649018428927578776466527889153505592100864126925715599447708168287659099616219247152326331526696856405831573857245333043303144199362007706065403699659568291316062425847516865806774676606832135449569577892935300939056471637794102708754156578738798472191045828917220348226148601587083404169720486838182495188361781150385640302699475556630009959830125736876014738800843167096447655744639534217127160686553282564331928823359249562250414356430187603651475237445928121902715381470039316965160176136992652214572928126045653455953285864457321662673988215946779149591148729580686379839678870663302838668072712179834096757929939975476424860986790679450478134055073062120066874778479868067161217826362586189124885207569470349060883423769557219727193667813483712696697579367252618748020813439802561129501740102614993711451690889394365284492909606049693316476732660900405359570684691745333723814366327071291350655626305978381220137958696306797566976679816135749216905535082614099460664888305782926518917660706917288382973325918301457847362444382716235297666766781630330398733841923230602267805367418474515660768324416908623530507238434686421707181134333144380792037786936967499964892345622316610552698240030892367542220839181139681325878869465693951464167073834752065904020490504881460908408002826256396042672915203680072203823903314719519639563726728300471252377499857453351034722249517376962566545984511174657482829938019272569402857320603432040562301168841695362759113422629078053108418559493900070614486577371874437908413457297791861043218926465080263037921164625501800576089426889072229241551948081026543202192231188522661284032045076633497593386899803255466442982790208124075947599683351010527462823382653170971237559260574238223347462862696612894539512295303677584457796101843005761267594637042675932780773553729002388718532669107158284549161837394657577756138106042442411864177202775037418575770161536815583906279382463579401472277137094760309126081180901799728477167823630517205886108786414784909675451737394994637100375421113019779076520658241373649194560987875688537140637511917426422864204909953589380501687309985872928154348358714303782615193981372547881475842081774616116457447264482189298284949703087471861958926887945306923867272915521332787619849045426867888397575108433778661090027824214365440118285486712352052076623153347032847687609417354466158189461640750403498981163846637090654562894657954242914239805471757054235586692951591848285780882493446144879649501083356628001061858496086059218513072369713091955261378168175263835830522289632141227782192054889173034395624981933075629017856299934404057537025542520188367390185176347683920424810757677398603450012351746903068146530248555809177201222328264356178311583572504072587226652616710891621620927846664281115355509263176582207208864259383877067242908794874375583831926369500435498409696120821037573429385735178091374473760107909545172542782346468226444362735096147541319979286172077007293036537468652426382365820199498396495076235946235147735767219247406289383383557281756640381214742823561559923732859135611042431923398925108549056815941286903691293857595217024449295512195084097618299290932670911222323468795627012755115853116151725935012771485930986659275707760475590963496505667079472310990448764969794578970448136261821352915917784975957255964934072907863153579916613461621191953216914670641637505261817101258745654233825897388947096997195580233083306290378722827989551384888362823350135676288412864856181413469660748618046731853875936122072496769048279581174148455423523173512937797192013139972238999202588304030320439766391534336257937505691409180437624740274817148532541402831435440170133922528203163719877870523155338475957343503168734021518952084786136166270583360642268333622507685904888945371150184929825743849496177163863796757321177076903262738851543909913347625684606586163973597021956282197758195807932441287649325353109412901271740625833060312942172266071036962656184424596493716780709520816496069696351562646836790617872073895977155089523209322203912407400295620687623149535686517200463771949710671084643288548090867758076342056613596575684292754400032918926624114929528860164212212471298547023643957151617564883551183397322792171193693578829838355771942229985219466558957990030218371089980911253080478177521296996326253191611553002924689975382723669074192742755728615713274792679583066062073926954115086666848418868398078961654145376902711852437565486500648426060183388234003151091501703126595594156319706436523392561761149290240806726758799106414664962663914099843091426571567290149581834439367012659998948134596514106693176809970340515424013031707261655758090495543656473128762826096063419338164605102764973401528039133911918948191808860695215594337879662104851686886383222313227958851813938394399199964831030636978075352540402600851903408719584925424342927128232977823639799948716782600356450522806096908284028428569602862958244335975427050861579716667531201552372266740076215760938004128972465205494465394817993539865593290783865456056375648715613470855970080113341794905120026639312491040621289044520638543548233924998621939545710151604368785445632816697445927274980827280187717674010610145677050876508272826253871013641763706858721466173746508932307192804370484259855447550540892250145165669805196576064871745619036568298237822991225171087728838840507471900200023251491580650191296059219358217868350056776201195985314009689992968137484420323710652136137515055854660156165832730011007466177764871025380985062703987988609297595459646448776330764260291930937730431344607886553501079612294843479362286411999196019482271905993489131744416342090216379372247122004110430400323214959922127038127066300583586362390179761255730284535393950028106474073763106379489350072724814311780702734142323570296657345559466906688989400412385658001010710039214368953061136715308232281625602065322823378635712590993043451263066710357536560259330241366789273065896421090916757399919773598576680608036392986370859733167679497175941708733722021403649368978845197496352390656402863854612934293061333963504613653860632034772183001120646905415563030449386536186817080516124962610928023735557686737807442522594887392098858208806055123543392893680885431869647251891659438999709097246730503178265865914706332756961294616616041341052233212843589114921365729065009511313644603384821496604780629830806104287448377499174836019282324296551037583365041084520193328755581752929438994228831232057506334379147023420701559807158157890356601353543754603478615639650814078260622890917422960630986090914185997793062601119835486352618479761967540524535851474005868822893442273775059601693603596832997270921175219691250851422011036505580771130241961391658553393434755261369179246191866971631843974895284169126640593675423127168440294736748531207780331417838720668629796499690638456473624955273376811462242003268196139399303655249514863185224436262097519517103332304126526903504803595068398436825523776216156470266556043815706914661750415598909701803844650947233573213451600663988428998000384954750721929736672405578085838134395693987870085995371390286414701096988492296695281163514472399346656768582298722651862380402482090044807408421394692982457299796056259266963537916294542873325573877029896320974007687217333464891768420614039271656684220455203563363119256684817468881360000120580219460747406355090906813599494378340327388324158499709402983120739841918053925202635466474125182136461186730691135805936288681272442503341771666618165000315964994605588706434698803071425341131399419838922489074633037814602884382977604083946898127296439430858338505091131415727752998673839217926288668709231819106226235854281703767495741118587197404639232468356366664770819899709847891808991978438353047462167156898963195776656080075447994298822393033710761008364541566563517692779517298968405073050954753613739304813693571440280965487080884287427331399881107396355482657745999626491239749394812451215996610879348444568677851131241819776414177442743779842936966407668197822847159180225195341764813854817806628582948525421045850139325386407051484786148963159547703345922267117632616630460125300109880446916458198865145244723963410190567958453853341366363601318834525617991434476434469629481642100481693534235647850956667531879476135198529072908054493118158425096290600143712292908126665858349639532634319931773312474865223372027063287269638846572420429658450721485319973788770056593483611543592969147424120751889969883205053648438186188208047671816459958481188185432136292919332683009305959442382378586858233763761934528671204936284902013619395473714114809355231165870936447465269210333945718726868861942111706770938948502002479785856508021810278036648800461509192778117561329719063711357734407157036418310457134824640714825341324957765528511206194845497320261378809842535037969344688240894115480862433396058609198267586615677575163563393780027224927780099422318104421235963049997822225979274330146692658956521357256669063539069508898556670714445794807547646486375959074041523028878127487997654217661389525498749886965806442727061929187066314251133352737953518597558642584577089509643520843163209558548262305634944216719528849466459888479592978965760866218755482753564270425395878663145881734620762605548741609493711827846337499934082611751576812300453078483366779273226296908335956674933943119219536476662087069744361882204049913372766137774193371645638611620459828556094481381843199986834274222712688788260029135928939199536734273559818887368139673527213538340915521453321170074900860097032637474520325341651755198580635436963326505919237651831596520442576840945696180236934945166854454404697907664447472056146990167672146212769927241626621894273467035885157280716470156875599762272152563307263967040231799009400787297725550768650211984628313139756363323737846815414712560071147821352247150177381143258466615525953526237217536899059396607774477474316234833951130499180572781962321907416617891404474823584710387062493233598269510015241952475997804688055873986352393835321230768722990690686327095618516902187674076604591722199569206372756593061012620196352732350830174210312259244920856795981114717018731166593945115638088169180852390086544331464932854870877074483663890861003076557571058744079572448814796602557711822885903287949650150557730744656452496655838619672727824321813974589817256138962752692272173897002744612551245113774490218335170461570619967659057074274448705402150170627061436338742844934266146095126727188340266884677974448654463318354088871844371270874737143506350286622600075346841023314637213746718212296616111233883238465083501191682380827415136973083866847352107111017498019280290260776618363479540171110673096798793922481757133443842666322783427201502423284109744868931176063384307208786540524230659724247044024533651273145766515251914077525296729607794281438884093247002640203140610268698154679613771760053554025082748076442216351398308576562408582499774335517272019584064681791276323670298121327076860291153429497265956134752261743784613174924220232281424618899525241668639408851820516471647534839596980719307594918897191917145004114170526953742984656649360085474034995840950758313361309757952031917978322944436997571420833374464619021423518558444586703426246710036315462753217248701920838381659589328302694157391668060566861680695036134387992192882664937200184443305688793240633423024791873727370913013887111163442597287746962525596420654225101038653406883825337963315076075956720490084056671188384686685990699830861068916223604371581950973823363172667152449909828122352294326923410831889248651146855138139748720444930369157796638812380755522152630448606586678902107542065209024116091154835738176034974329494678467373551062761494420857333683080460489559149796982201186750480827979071934903103191260741531114505690083019036943999972103611613141576736548968698734221123620054482923999505072701235329448163203085499859449859321471702454254490309974802484685067173815790145933187352620949050458876688573631883141845767661319126182169981168104373850201526531520180550752725555014844986703108185301945502260642007723455905825205393953128782646391317739856640034088384301799368711013425108723853537108992389111979413611743187644877837562290086169097057929085042212691658053366400481448321235621429780228874782113385520036562351242957590150276914672876073032048764854734737932785429909927474874537765359360863290211167009426706739378787068559447040913565661871268275362748719180723641450356274814882936745926474569561667406143989703474523931438022261813730724466341404508967017784495190514745734552007246019045433631042845630013519342904379763542326075498474281488698444487960132673118410205543033491501226867018263598459068719930737199156572400945691887353635619469079573322338084382446997655755205796345070516487230310898552244494542588083850433153800077490808569646663126906863720838608775939771459183038624040298693675768130741916561708213396455119606334197293331183994747752599715558658743571088590087589707710805145327463334132288135400113066583257230552316733306999587980112907317542182962415274589702252402487391148864381097972742233770777373561881903055318867564276200076628535502535325024389111589296204881211989519091978549544159804641208694870624080807346705204677573180949268807759800197891738872308571562381274759462816680198030806165798262463775423122804481283766652568426212790331120814092330285812187818073240392352969798356325037764432771164136826504730430803295565322711050597063912232666013584745847007461109063484724791809313953506583588828568098031630373664477479864428715780999468973796128175015234659792443813182143982506144789520680209567981046364395539945803974413025986617434874294907362786807967669061130092393940953196129434626657655551845226506980021640998876757873418958581913922399818974753492446148711876062682144878359184787447513560949755010389901525429475830921774587487581937289364839002165898514773289893232650354090530368885976983903240539211395606838584139658510205593215919215571953148053791145277527604686470134575654501976377312162381986625840693924241846584529527753360472513880747869493594192116457339222535177177673232656407664069631782298523367788087578692307429219399089601511261344467954511432600451859433838317292667660893280011371963797963067962070793654961341178904575250614987815234392322300730758125282159429134433218717740235836113249598922563051027449436301001440787776084063817283004459341510193204892710212498835053690307573553329515165489660156296597421725174166137323234527813540609008549658661400732340856974063315970663980114041964438893906797088671489347530697255413913758738487589261399935559932130689584444901293970106665882854794291684231915592857000346321011395155588342157037834037094363803306192614718794615496852800222901325767157149018433900387960051373778379140074483898294197922202929836855280039176039811589849842775664552613724789234213829487865628071952565798782081292261445813040984414169267255302330856070050119611281389516650655110030162559000967049757118467966600760225288693155854983275615226450647531009143001424779856352763350118076190633892057563927323051269818910894816096704108115931627176221511315971669409893068843801808657581475741758274140876334476969146926268114843402429828691592500560955026671941982210395852062090125829198874913620440999331506343638319261196042118277741806358843921402270178807974630568370255116602396745359266034204706230946333422970962171566298530806317854068394102966782090360385084015296828416430064299859021499081179609901192818640109784010638183318789774770878601048008226588030108471657025243207525204994494381043611056408230795070068605042029719578797551721859447544452754673802391771602392533390407252223551333329969207292250992970121473584851035419974508013588771179206864165015339219089559106491931121165151745138767497731320500406508769517123710720616055003735751009727014100160777633908858180104543194054527827112757127392045609887994591938219717647271922747816641110985722662677158439060048392900704467956204306930346432991149362157114305369244988473889004420616975959891843329236923236188084312542821131795267014710243075700134901688215188306672343762748432162363239131942824332534222841099048824433958239291331510068273062353946458359733846245927547581534098023062672187535516745713990106468130052188030347927354733197848138987691907579014452420222436586391816822956544089302691867653337129570083698627825444357133590559883557269818096385366488390900620352996454453684407705911632933119224938684655873523867347416061712968268961526225979036989909889296497029122346827926400239934596515329804955454781392465249250674657804995004332877690694997576021815319646043958196693602529844356217860584965112705513251050922098130112881065112504399991236487975532204276076934547167186151773200299848628942699570418880505137789290964510061740169155147595910495455585462663117437298255118416824363511594613844379879951570653068188023353768547548298654039191590264662280613948285116370078291060726256168400259604480667979281505584697078579779170043469539228006229355692744085900794788929463913013219414911460875214551864350426705230291224835244189411958338103383891520025220364967678599981145868785240188456104373250309961910385331852116995336030483679508164658488606438260079400776883968104197095692903424835153882303639089274541774066545728770266805942537247879209682748936378368809898492307122402366395197105083424572400797046068860637938588150860984780849768782329773868144145341478975028421452238168026299942969685244440367411353448335734975420309698703144181245686831060969798548237953194617696809984881546213828744513300294196395878148042854267253792041562601840587968905540101930334799371521481119355580734255657624620195238029829516165953769452106440071790368292609945490682927048424640410963501365138039450228993875172940279089697538295714811157336092736190164213602311007054951657702551519300736010642783847581972014420344277960715351515926529098061364538679700829665422353463640005074801612960195351140820531479157594128670745505316625563854861034234875698395699007365845000698304652128692591875678219305958729627965686237197075176219060140502916881852598812812343400449387992588088869916586353154065235248319390301852688120919374321981323195792311622678174905675664805080300476497122480233775287689002737901124194653224663559681776662536782070792886386156712065861680643350785747488863730591631134508267572603525488397348127412968381498334967949840690895902501246876892606816398515809173475301663847930603196231397917488576400797176217047326720804509374593201277932552279599047931022470529750934476469149429820853019222765233548611244132741753129262193751335660510053523669862267567953375481898623644642263783485954677401181014369319576079300777087369676160430857081873756081182486240801580705061999161451212543644669622388493344885131089160597105134878187007984367051112142753763793405450054060003386809290519852979828592515355335764873931245378813444348074733027050542840229784465131332315160167956547252105515211800042812681551631032517825483699277113406329415021408532665721545460228179765802417411495357382717231384906787467438262225426072961982104425603278672225738232929823755074882709909176563099360301170710452498146129681630718117917307117767901477219995111476306565346454556777574516356726409108710930709273502942361839576532336655143162001922052774317030888667485027642547954524257063205804912311663560214062546728611071196402969872912075934306514971003509812121906798764691172667718454362118911780984426628193213049106095609475130966153317059335561252913822780837887531790038545367117966883178484123678590138151520009092578676845935266453517097240265175372134880664314003073506962683423306519557102835406754214813615677030557800795856429819541221082013281839867938906775363578150217950602092659522593188063739316129172910617732446534444066241909267328872336668403300998066157894373360148302675927975565056768414407032878606813936651213170682827666909462921064868541143727117213937642167519929077601199325256784694723541420664455639187798157870584671672316462381827874648322875110314453535489251026388405656294815299364741994297016214785263421288716495718256941192780211337242379575960691585828727972890253741921505888615994071078759220099397532783075507930704685356979604446026503760733892211764038568440593016782682112623847394552520757857945261904153483119521277559412335066064310841362255113676713725120857095393078350532773497075281651679934165942117369402442708589983112424278679663494644066889315778584448837701602771006402145891400335487257022061958517916099344858960328618403871749673415970402213878178803015259761999268517634947603524917343809227193075372014245088765922381104605467190770930924282168603946976117781654402079675666505590794684314502320155068513566715730010770767479980770687875333581598906172155867907621462090298029859963463156789508494944257689093281443785428304718217154252057224970830847002373974570699065959022251069775497151034317783387264826425960825915588701693418630831284888215741894858124296494970671995346365235185307300863442682576159486501104587693712261110653326491759071653023410039374740816059061201178167042507392465877350805078882086733150757471215938944794880964696951763379859188304713174285967993953924972778222366741814768574220926980270073630786948083910973378943770361913173976607566016734087504731802770751626464028478508053591686788751422924177790542305069028814512845452383820206868672080027409897961927827028469595133978978183257111097827944780507825443287579973114505508771159024612101852835135547817403708482139753229890030981026385217001317801200838325784244506825939047572649693699202065731979996726758879900897264805369373886591283407594352589301874557411251135772886634104799509729255248020460607948710935023066579523651887525229230143197297159417005314159260952147041225094107088938811226144353882390638315407402893603158749304620396712692951330677820362447574837451564815259379946176937616960167570628943725042673989711149973115900653626613927154009170233585623086296747575067242913690034303950825843186092890443407295379303522642784625313924545247852655783423359804960818558963326152054620250725952084706130805519978480410344882761964217826540384065780667395968447472228007872625816777960503738686692298139942326731127191931192107717270294986512605977655413045027188202198584605538192630575112950537185410860414940504091836340419821149850199027005990732223845450077809933509405284359112604429808851522494060949699561138470033148273807248787012417912468165671268262404602435667444294620145279950259643068607753560576375148730093113517407300409548300706628885834871559702515803685307549476757006524877884768414389142301070474985398049991508042181524390150366743729498353774423388573911322281318827406129557481752242010967077888780319526931962850077205595982852268533294058920081770111302649282069809462180407117832391297620325572524145515300845647233354934725253976026998017244903065713503498695683746625223600167194441925809509035240402879900783239857592992604702670392396128724349197345982099724524155503575061811796812696692145374652611148500387021251048130873214783112867692245561682540387353194124915386275614669781217922368875821804004656532356548692870966876217166116215583027787939757956415209096064714432632766353855868157458654584272029246400364715555522185592505131638890739159396730271570477398060700559004149749583823349296918670885187093012350482730977674621964617072263544575704247942130662025552716714346798064014491787900694743138574989441743667216754058501088876739898049716495360778295899916900226984792018302123841345852251238074496574270112768974860154725046696567508339212767806910038854380485297328027290373952390295457430234757514282666454931810213816934810935549575654520488728398783652365192795146497536012129903887441818192260068613164334439622250020526363084601554576835715230664744277374073715420099529548919704805432300360220089965192780161843994826358061237220047553022430848975917465773863956772915115751134579986964422950615374811114901713786066384238813730347082072284348831346870466033014806571013511332135506063955782473998301588275956355608553280067809788314526230730303667240161490395903200443279409732990947154206459419218496898003828468599328082088509932025424451201949621310405048223040960347488969098413090170282252247970735471531653499396545956472554485835427252168708879893507223080080906032008071303593163654815476160974034806236334994101830284055937497497617185297072514800000990767705496254355157590251010084699610993796663044469508797932836035511147625103234149015926146528723946201568879810659529397414806617136077277170251748691175545337356399909317924408375983668023084803817497771172417932649430062530411316006126650442091775269066623923253964086562261416466491601225985924187977871775508057651010589419245983974112303287265228892363966473090371017476935797547786355808124867248850288454932812961315973640656388664654984209123189068327519770529503882986100246230282179118386955312105514793438915333356626520205577126753532844009234542186373196348183268001860446493260204460395702932314939616331878714647261630676536675340074065005709439174358224448526410945662780323146017587489781924518031985923398992133309318579093672320590021007928509007082989562852947286037655610268116065913833139539857941618956706854344921914886975239332068878989742062393073296652970672436929846767713270197317356851747343023910270702180807787528778023573819588993840269822710671785387813934108906115995687165757424849358288397223601484596923997615078174044796832400091283179629736433017701388794872056419333768015729009876311184653279740222932872679005697949138791934728150138765401636817291599248578670045887689231622050948869584753782047751292831583866343150745861277870733693133542751817943205660274025111569779195171387954777334706106790421334088239692684315531149955362161429044384150381960046425678394975374513300130257655955226807647059436211939373690695024763190426205922300102153627392626081387131103407599704370059906862057508088921314921206646582258642920788417045241090004908791354329209112774213648492800058858885620258098672203553859917007441341579842036688261724965454809608337657490213605136084845788701502657372347506535502633823832993999294633022446045881393487670316073354185965148854700199755676375798942918410270215559770932993959287572199482520677389445431979119087035095187519591127867826560005132191829188159460100000112188361533510997369237363797547705047871575809011748860354187510368315126966241373044878447290838106033220544401042221756129310821068212824861324444289080028659995846191187808113018060439434669340351081176953462034600954851002250760675632995238312930107332219003279718896275699565281645970445152174551557609237240645275356123320073522150469011993537056263479451412053976595240351902852068394290111573963685368254610256236156142871796161177978234604235429666400067721677581684402824185425428475756553162403993210108112440079275112164182297698233306256502115618142467605453214554293856168941632113441302989305920521811136635227667027725311571434662539786668562490273459738962957190999823072823930728930129282756265107852295183106362058331252178932891487581883478531861995607915586307784003334350441073259609945342832158766720932903773769660570391227506791309328463762269236236285216889042431506411033969875398496200354237814479419372442174393841972714800611257233538860080232874934668523522208241418262659365566654263068910083031826292012732722087141565394087275500475853182179341419403177998318716500432803361621216837122714379060877880752219881656803068663555234722009774375151813332757546810385892613801926926308988849063621612555148688388522470126304376824114938063578170961688802020543515511575541486399242380965451037080452817636547552844926564681081332288486952213389242924159064762426042619734636309554064620330414515722123684570462770007309591889598577488269647149690521034742427085669359470138978077466870148054948986099464496439755573541347118487870188400655066796447899971128389210024224968564852851963421649281892844945476084705848962881840226907408541655285940712756565284457678599248781620277976570532221929565236773571852798741128643492999124071484688350075894015936105975005116847109210726898190107475545872148557438659842386765409131263980766636221610624322697847095286153440146818291460262629502297013373922087986425053058293639423394580503637131756542244391277094222343210691935479415199563592706791446966612428124556816681492411514228726195418234526126503581202908721946942117520000416447878592965901029856876903890633087334558537079572069996250504953696080524785684757260672420904917778151481627699056631948117270570769978089114506648763576983822760534257736223528462613658310104712568609859259696579634547186862747833545522670406424627240799133866742583365432710158087938619797432565846218022261989851057242052718125550786830925845898285200532414822338736529038209539176357898156948435579163792286292471332489035709283057570620078929788424420751177806071095629570261855637813266424000866337749695350985353092883869759028185098825347383419641565150253155440120844860920753827265132738014361156874335287951088637462110802145986555187606557406263259333324918792054053561220768205393917059027580721642116088689076906198461942250078238261938109693191299612455249174507511627469718553673122370549395707505264099507792491202684485040983737882167240485576925286105336742235977074450436945996816580174694363782676420297606213659291032705494066335758221144460634195877109526599821114824457251967121113549247558401907032559136576590021538961238981118118395743399694285379488671767039309572865288138973140303511991217258039309794717694301413910612663074518811474088280081532818536419273017131665791150957209724093366624473612750307179889220621409545937144345661971694333471848528426330458498309534858063421963804875987924469054939143565813639803392049993654876491554013762321695656558625087973509180907982586251610609374116273064866847745124154451044182030960284569316715214018467720025177286276905613643581067277916692499478945926441473738973502206804792904436725460350494953858652284483767611762584140870958479580162367345813563516743493425762206389377153074021674408899670170987089532946672114148409962257729881368389473229760207755068002845353980137891677455203694140157255298213614603000087526089809484053391835826516151158332941030970694050974735632129916527384464024564762548831590056202734685263883999046794828366283620456348035515864155110298277515414024121799888040414649862139885078920400643837059204687626882038041843888890333304782442617270668313791250225485838852115066936331759147235647220217662632836090452511210233591139277145902766411922373644682048643285353038639795186457254902779239316774022433403804361329314360216279974067215197697326806267158230939590747175332411988185529104338946963138732226577751360134566619040478274246070890809213505066358427962287436857485422267492289993511556764113463097907608743915943702692333527706860298007141696136323468194743612462769870853162205207758055936905557891699264266278524862677229179569424655236406289368767342720451550816887737891692825573447585262132018697945854135965110213137560630771801711924098675717077354458851761527302384569133461902000566422852020263185393778149895645614140612103519753477975198685774590635235432929411986759285932292167576112311312950958773098211404293221724677762336503672618625808663915009020251815038163674351903996570355137058303659166292541509498239488812654995512521979102342584429997831810818391345078652253351204521053202614508435658228252857009986198117721459832712149457988461422840011876057144973586042146999993485788859715233747813213626823948577918735947839966888107416269174746758834368191812196290811003688644792582923834297280728824188747136673677591823849238400932298286016587787022100844054835568692392453727193588645899676476237768281259964229261571635722903482550027057609810065737067579009609357339701808763590728012531517257815258671280985909211176489066837437464657486993895270680127331042491759411076959706440480564972084584879459284109961693268897657510094511799766135077322126770266955813805283877413326562850138445330728406616279021258899961678088110665349718522997681408563736474035808202756982249531606678983603154851333504303609925096446500174864809054133556755871551425227239269249489211693586616069371813188418898503479905485893670942185039579622769261206052632167306785244404874454131549820211583103893791835667491302000482819576624052776152624772951364447477956858286635584915380855045040938024671023834023376153672564368312460839474417404238705317313653519748843277195626365541659257839949481061327531974030998504038638776605771934541595141075047767221595524085144582735341295270286457705305480002142129957484824836337407312349694148989826307594982787103887012344393729438999264593897216879615901337401975853853575087000159737251483503206528000915238722872335948388288339957602195188503629508322723113883516953896834795156515014705524786014351510327587251045217189751213227794330354061197315282319779432829574158187645098018439644134530223008688160601651214943479194675202298019084322765945602248620872540227127827452434459427778431588254466059181070076197599124251141784208554111863243598969881163418355105383063882156166978366476479381863722217521441848343587013955965009912435905858759469941286439067306988734579582261359875420200462664421631359855496107047978985411100589886587230395214237067457526809654133567644657237328333204350338065954780084251588832409546690181147236591166678341819325080131436230873805995885241320013241750229719870695573815311910230241385793812649044600687758288827988436939506718696793318821500419301282487054236321606876974512429846806116748872287587759904110020852764169244634649777267176408840779638992002381229489649838753574620785954560977141065458135594514109366857912669206644270702151803589296738346094989111938477525790777982085355284044881462366089721226156892166619292852107726723637074876331484253332912414621192532588067794786279221238857675166160993613614252107539641451293537935864241367648846967963714765948462246145601009540760059703455634143192538782345683499592172854914006142247915870369708463593902077102807630556931307052138428258171930716462232943139434614974613950311259081030510080216355228355782963834836171643322729421374596058337214889177262846587037515149878455403335028059519452324340016452737785395023504009639524963032872008427021496688906855006111992841107436010718968685875285372052572520878676080959111733396647009459429652395300987552082101933883563962231551409807567165670383641033779808153642752665065120758843263596872086306229705365418142880871810931073172837818401848696591361121412938725105179398657456319136076948776585691212644452868495860415362458013343772267077539348020038402138102702619782641085263437709223681027478621017233258767532197651808911751451595412709873595278436213701016425605435757083595080648553477545610389358277719637296323639903776574279730699948645596245528969424523717414725937677035136945040660736183541190511817638632946698673465641095682440974362782725729912836323754021029124093259415943483266968535796905903313385291323169329007274517239103183239775602909176354232491784148868599465079949295515745735097135967683220524087370736286864228587189671285461851436803727623657154480725544060824419419995461299476117502995671828274920623692888819388735555818465414066187526161665779951064002581751607880152550771325268636107375175101544248739092437324261992911995158494389467594644408661748921507041148214314361763260472629927335845306706283315601986886322433245263268301120113747214702453873312257330162650935724981060206713432022492897706239029016634526364653615546878641919237579942684909435312287804862430172638233962159149526130137229094435859512937930479303726159234679421316949281469150879219595214140935053758279976603738904253263376646296407110222189618514537995464963838408503639519097916246526035301603933306969875389731774989000263466031799239627942661212056090783097782374169853040806664452020714194830936318958962295171497035080502103678655429557753663335716805177979142639938077663060220482009610077395630531110480191883330523319938836869326950654432570966562905716971039319117793555700074989931605782948410013194285981486756683845095888519271223373355620509355117373426793333575268272002415256453756747110068645317726442088034710974888436815348340193765039857467458912134950470486332366805714543114554529329547914613333173903342683743587625801526559579468350349043963826396422185096729932370296117389049012255486507787753917110855413260994615906653321924677987517933567360677101417788063063661275751384269346737627617065680934024773819603116211502771080726317055007334316044595387309269698640449047933715330734488404851789397393758104139442366466106495525041276995079338417100224379985500775364531739913128939267191593951000403728802204456390679767012142346856912970132881930986648070825398154752909032981821544070876752915765992023222584886247936035480897836781045388731132069750566240672145514006991156882604947405033639570403754208750554029463697212918106233946062957986967620358027333338876585969831331278322959593245312456418452533085737896075098363129745165497199424202181468456622756088954238006693152496310046874088077442745699906634537102412181242946088722982725384316319354534276946841785146546927224933980669296777258847968490158139100566151272175656042960034280083109927741191192986766581000648135608540734890365404686523957579962858446677348060471071064993512507015382578852863281763911961043522284509484627225909133136466159601945994533023600793273019374664154906854464508201073564163500526903220604482760743943224210982173518434617542162698658513821919149592029543535990326731536587758928075536603996291499820970974088321045134616468441453924899756266309829610623586001584496483455961427696571702766328007960833473670164393174518521797309496953069630096121068792051366827305147910654016054964300404574502069536970796338688678729741786604566291802808881867795479452178376968497600120616785698545127849297002662209407340173029485810125056250265909448480431090130424635871205610154650214136975518398832902203242324420129297594584938722467956625693827997930558491400669345378874218670872135904811835697937261839531688795689994795416842901105700363400021475392508660019041745457107831483029218737587823556799935256961373123570889349581021498663357901713097121962678463648116340546513220058555638282637367125935319605147335063600681556638852830556631297075465706362464686776091161329164445109571928877354116210265568360202439104012205482626109892688022412661787541160656131686820643494416109688678232825022887993056796219147968666854321302300722970739591895358562279593124713073609764191012605652638060966352031445151950542598645847856187081743054915116054558292188053671767889476339918347346902319006840263357627374622496367764773574556147188723782378404447560782145287050484736766901159109854202645194708578653339323622424142819565022664248117470402080595517994835834423210120531204459964458162344905221894664062286332960708768612630046799207322045655562457766070791803765935092091621610766031602636215201021575752490698605294687048453113492777634560880974138549500691506052784721221345055192727573163678171237425975515879760283322116553532552040514413470098922037083463992138669408938590362063788246624302224036765201126067621997351884530537039717955619265494011213699294535736912727377613858831105600775193512326477475700997161510825622644120361698115488087593103449524755449563312624088303946625408252866156843292701409752938886008216896805017196921232594017575740645682515825709799910744797182115438583025612545701129109180332451916423895968413927392028978046602618625302456513419729141993229240815559065443415824032072817575405511189553896246091110294916933003396041686890478725953802115072311661969177256250456284975709252628266058614763070119444277801086455178084817478643098141101978093593315892692170120965080346372482765417845446933266103584001530580411413870159122535222939762854983860470052409311329731285365096658732871990761118050742771102360421645378975997154997109177402414060073280654851646903179465637807510262359590569475138796766994466235425631304042584457899539805295025144465037639829292162916392857292669596779979353045731471506095375222578800179986572557183759505889387116604279959690647846737177989471397434526689648764323011043715505908761299195155013351832879073035986780424172142829912837789971481429776458132143388037312704337168862606429444007296637424023516873536921535026297425000070738872455307694173646617013585396107476905051913798632358866230217842299287017882007135590381768703748270813576211287329827005915075225768778619353366688686184015021968889812076084521698701669093183969656476616465043715826360995032315776698124027575280282435412808344928542008073101307349725151919228707935175897364538975031930515084621832251107725810294520328406379494330858184461163691776838251122596657590741283500632241589051427617311526430706046342536831685760327293655816939961703929286314013575364886720529464458945891863770519061454637102698404531888131940309338220978050069310284946071414717876330262213658170321944687936169182779162573923714605326825516363624044038220856430732347771249723921628544401629649383564308135813588788912410527290859666970288542907968801338548224310879713482493011004181402624492598531208591123083660592677715995842529121928971106127764681900607468417431464549936740242550315568243893973161208097906282436129987900512674770467802611625625769539071515736959385982850360239600814646111565118895877790884998064679663632324085317079546145033769782439589925274475400964000468470789148867744140058800891531033232063604675382832689346138323306177277369896414917246820138694571056360018134473447357464602830763074016709969349570576678068041531732156519249825373572147527861157927894136536995059891767927283587830709978911112688028073855625845715505899065669235413013929046527397850459573658887408669128480861485998859845088787098383958193576900120100961390787926700072385547307699151633162108649611210091290707632253204239471067079721077233424592335424346277473436506970343585148641505312837289967562495886281616912714127167589702576492234666527779595874308925099968754426913854382703435130671105736224673969644285687680301773550269979587048552960546679860926711757745765537121262370401385537359829971252635992420220372910250007575204743306174463372049400111930779303144946728225556837314672760025916962569760923307960938723220792329029100028011236178097643326874551224987160983225173387498692194764207246824172742483298408805088452384865778220935222283059957146057109427705738532879091332964212555732187933966133151032389407304979881130714153118309886139546048300827555551802551819649982177773872486093116181957073387776231287690916700428887655215307846713523351951009031740585461611841561545040970177040251161425585808587822080606170053599767732047189155801599741506933917087746785707514449411613963384937265759995534852107524312873401652078374670863130440051184089165082060606501577494078668207376274049858796204690259253756866914805847424152096564785894316205493705501572129817219505667903456586847983174483346272600131290596776722385895612001077618000827384758743709819715608768811290038079793705236908897367828492297399609604418563767102005085782587025596936292274335478106497339815223281725551785008420216780937972145894478932020347897421412099375713867471305745800444487005050007588668622995178065697793750063007080270892856921420338714311095352314943526775262152738965889787186775914073422715382572022362439931296589418946181474340184358420149367574885753271498960471657545736798748665950502479561364721975906407060592818453428949863108603991698402005435882820383471398561597593384186532460420916379954582240056435767272345234297136184767976323652449629737560558561964608348319956699464309870331157446527112874266804881509632774736847686146215126750810869105940351204787736895972261396770666599087123089867728040629285573317576582068039485697067978498824094685153344467091921406977473741568481929712753783474903407614638314890794053068828669714784782634495047501721756467326336114041319819625484875188343150563621539332851544175259456367390704984646978840876420837908878999185815561563596919446551740655658444174747056581339418768155982279350086328649274208013909962226525911459521954693677152252020859982559981751931120474650401865740485512460137696749275809988906619138173667764625267766148019001573420981948623456664205394881730443191926987210193475233066617683798315434035883693446455954029331568887534051738102295048687735062221614504788997986186951166649326628615191716470772344396992825895935387998484445764239552057109737784515147061572642813668455714805514257758780077518735060177351401381433938193683408321663869059416853144108636074425000980199239347931159097514736554535982580264110723672016817805208934671361797546428807102815194992845510619623578357838341260059261673575711172000646091581766526977931149126701865537735136799043286775407672322695459195884746669402618858889933503989493078407594508539328407855915788279586410693844782442800568480008660465890405805564256320411944516888551069810647637933875490473419841162117524030857991915421904342206206228996855680866813977748891125485226630209347810429959201862012312330182259336370416164916461016498689141324408365620825772940150056871514845858418731442923140728153249156377896893161637554590262099746406985759870088246439742836344598738419839148989752883771876210113311682133487127985252050841231330670077585741767488072504103670820852697134854522760483730731907560283205462289672433197434797834635820392893364787629297541422005535790607369103936479852988332402152359111874099966165803580709090367185713135594574582553624229802917223513431213387209998308146751232825418668090544824621006594715037049489245060401904511459897869622879826450042943513602387548830953483940624870718026748314385436205130157540721646254285795031308306310043343589266219847821548294227107359096919610390720593550990539873770319854020193912378497850429974915468126737504712981477739648703985939941712356899066211248498951874276152870660890937760698787692375833973342648538842090695349141967853435938556238726478806471330270720880414768119180454107071314472409881507902288422599707364758525004974133017244935080973992085500751056828791397993971524615207657495269118542757249100847481793035804496082510626992650073860304144459188640856446965478355315272476834207722298990554591673898804215595944596320758951422879009863277453314804540902944632071259458866863693144119031694355633333192630144061754964926197991469917299749043474958654759457252143585305913606125188011390566957952086179693295382733776616088345415298099603289007977762269129969445475477656176546467522740463112224357293560216599324512099829005084672154570110945409621521778803585111796253150457173926786578420526533784913739725398262168848703300689449471648983104279448180751184811279493510051663853871573612167490161378015447574991016643073326339778144215113329240169301783820873911484866915618443200531442914888341054786701172201501437040383232768402326795134054697883076326038969371687614497510364571654973134136695624006653328479669342582568095915897877541719454450665049970358206812628916806670112033146195340138167096446916717735344382532073275190581602127135438415892941503776113849822433509862569586284615629122626834057084025901997206672591238089881123758584888059947579533432025568971338656146210568748054324240433621416291261214398729487537979700130020455891278325475869267829335595282017378188217177939206424619880479445267305801909749045951384533438995144869308750515580379775234449642253854171057982044333820787456433991319567356427175971490285504579941829050368097138802141825216482910688105073699325061566858158159793229678409955581026738751129216857072643433224918732231345529052165079178509104670674772182489519370905695013174447799522194983712631243416827664023103557943425282621081363741838848766024039627913264857041550086489385762924331069478228660673651174531791661442158600092597163451220755831282350972403736766741051251290272589706227787454403321255397104136980242038745171491475488562566317844370933358671850849645306532607674508063131457773319860552956194619170098954708761496516725289679044147765856078018391214355103349415577911275091222019048839856605036909752644102156674337867603295178222263669988706524998071382185742156823294691179130650171539908820161099417132993146327049191858222259280049912581196246163743740341440492375979114546259527761001172330013631114510894114408055762804496701066195088317130245308819960748375311305875538111534816928748546206613065663409900162767822816293997152615969224348870393862334900114480393969661762712638161176224564370937687825628203907843912035068506267912805795687122108465512732184624549251186467557514068840044683104214482142077934364615453589186013388858871851844621750146975685164463739000116757638174030006006982067075790092227396561073293869567451135661660319064529402307438196019888752825696612452855311396052643453292168337523951847581088121269956734679536913682450690421930366685344264461334032035912014182487771404960898665984877072307633398131721300864861533709507239451585053028214335806763818624143101455759198130783528219857417470266107439729062041691603243397746686640238754789811777404122638822030942271228641885940424712154913187228657644035146786470488202343124582341291705870963754387549858693946340265388197741226661088759358122316284275074233489047623861788118035555704336240853309810783389528024959804652459476521728367546569452410980449207336672613737902385507389493765976700684090016568938729259207697066776036261831848347019716307935082128252081993638251334070712926677538449337884796240550973987950702881454323056939733969281913651588615966472243085551287223704187854632521968245283853522139000724259335861292319209429486665306738447302541820838523317854456635587229487608474414992546035491987854604088085814497532701057985453615658109142389766909342143664282747181619069657170484687701521048466914296503878987710466269293838417495025205004751134444526975466275522310679563177914145882330224401060221138268704295893621980895447074561252489065552757706015176992872958099557065333781255181981482830398852332558337269388207500198660188408606869047597082721247449223702133618875561347193889990686517307598902492028271300615959352217840743577640257509797500037020784954039456411463609018730761737233778650765519088829363871035478924436816674650376389817191029792968791498889812295738731019159973711899105177498388805680216488868254422010499781343086867700556981971355089293656125861562801988557544590525047510833451969699344966052698296556039678698885077610824609736749940729725129169305353436178479136643831647028653797280846031387743184737492886303266193021154087716141840249104298272471596818840072233358672393374581213071017386291513536055497928892223468246952230830957573059870890057844434594355438341199013752697680156658171297717434280410890584271813588586008178864112224354791131010856065686952343461564394498259635192873401334174520833417826408095751655482529520451043116224824707931805604872416776261116616482292004891793698472736254287255176685087676940495546295546216539279805232065964003632235825770062086407253495337868307103044303605727697657604848812343389726418991502782333623124229643378111418053866096923310073821770742288067996040763208646557233926627299366709367109895631556251276841987904146032729129876769266983035438406370630944995669937836900229327956440402238536609651802984705372797050531880068351045047620071618944991852631176695897635134957490930255951030805314849827826756337096240645088777378854408084813335365700542683592518078394700915131585475095612551794355965748604204816398233249384025459357242457385220614244697653702302682033822276043069322473568497068232179641927291428224565156080684027153188662646428600717313358770590179356299772232038112821809670820826059608746996660716377248981590832254436892378761380884750441237214124807316176873505053187780857039007316754467522246231479708543733200071742672457008459384824277565794778422947888336632457933962912022127998460015267619399728721786073034534518408363796281663196469130173212356243913643401544024142109526383727235975980617381767667053263278740826318751984350952447138096752689826235843514567143798080735336118770513088249231813583247300108031666463678860640060092697319555515725175433964149322540371586025010985244651382102873681245575865436383748849736562791399116897536783635315440008507354044401422119279676990919808078031036136412872794767558545106000373695543203276163508917168444107970157444140956111182169748236550845281366708533677662867706890220709175993477981871440629352431237477887272594243726444466294326566024040584183390461342160791641496719737565108501241372666653108670246795875103152209665966435031823289457446986188046949859601485636645507268150789396891751451255601148159016304709117191086423071053927957124042363509882997061644638156690280101366374011131645824501459874584625569955971685602486037916940285040130269636251971307138067062475730265623895697902194725750924179831376740614697166474642276484401739477066411824990275039675190361271118370354312376664504747740931411331159255722279510069669581307525351767605819631362423816202747688654818797800880658512406951875535979586210218446720891178780644678666569077473006759685040673957264144494078026491506182029486432046331912677100027487168434069178543596881907912572938019854294025378998452997531912254538316155054969018936526462517356295043482075728522596863011479374511512391967377678942197424085132460472931746641704984402085391137054065242978626876364396681096025003402318904205186710017115337191800263742220788195460865197728317639536305610414844583360314547118270885457067222965629931820955000360487673887404715655048679853214056206432587744635692249960791677133123786591429984245519984089989065718695958848580555286321611610296362991767009529391445774031155860098434942629367110879873049505790921362753557210399805930554055370209114943196049917630277851706379769104734425911651103990110593852069611935319254340883778796595135610982504242490968094318746179196851065619263044527389201995093276201361816667705578136534766030620717179347888697567917292926634531353732081686470886548516420894615851662735904924469778126001306068322042312679543756350046167755164106904005952917609217022184957093292100714876751179968977528726001756137894347447337121324709987379178092092559837664333891969220693775138053882603721185658700764789061857597562726538112076482674151766354584410802005847614945058956039267409791090449591555520976899221442519568341333246428109130574335967259192403484364172322404526409872443804109148369489635238713682456912524985039569847629671222859583252978891458227521204223381450127127619674326693888115075538455831926173882858592281310626889256669316760665647656662813484551228072923920941217445469726330723566791617845883968469381436545733291540610507771602404819751382786400591009810868765602104833742071883778604120491067371861284878606467031001769954860951896706679877603286071100148654785204386501365743212633272798453801113789477246044032979171045655823135673386579938005125508730951988618966176519548742888770891596489657185333886671025114647749989237897796196488558552435285179188732089578719978834651184171815922130637067666328436607653005223688466816634390116795607775009822122624627943548464538812838261958427553420426598578312836208534861601463545204047762863078640248282809342530720818290159137259789689510738912334614568541645158099321305913908908977837096609357313669360061999568472755990442973009899542251982023302948318559814884329740138045515034745511666914142749253655831173487960920162872310941200619828441324181844610947887446804292326517933996238897002925499139839763540020682038251408001574792310758896011164105072464190314215240631113381242720524104571138903679794928569734499243330543604614153735376625695251129177458345861117372912253621129313664609863048918515106842424826488177289621481022180968036989637618945798162371253664969742439282511967562575461834482992709832381862521906342339570887022067770933373034686192402422778086280718943647680160529073630562704510865247453356293163093526056481062811686752625614926478158701001001270208917171035425307303394405546401080111857247465528855412758847308173149735248976603558562167992991446570013271249654910197765204685442776290666531683869223210358652932877794352099263670718641039615444907675808403926817572702661373227223333390564512651100096708859421293940294470596882922985944276571496731943708437394855054302664624294088151455989608815730551703893790086064239190162316336070273905443160502147707806317290333858781560305926050797956254438629409537307888692492032721898380627627104029699333475663995974607792940848793379007361807553450383714075661862405895155604493077233027319881682104987796753422820327804151531438867822445010699071032010115266712708816515096963801737470634650586194336307225662346255397594360369593778298520758242554304303110123665055670474384600753638082637993651817108259309899557134181354330125838559215279775258910716205910468181284378836361328417310744080065381309776928631833965781805231176702179228733508713037916849705373085348890507426353695708976164152464255359134907686517663093750337148638252912497280878724390761564190761543163470915951667217707574902812473308246293437013955169884148396827566559644586911041801124682249250366825617013366859737618937806861250019278269984999503433299196260831872805377513505980823091709370042563541455038338457100810786423037701810148693012342486946560079768216700674184555662067305925842694050066152127796513628546754296818936055241759431127729487506968759804062793732315344187738381755979705411253669003103365354169988196169193987454961458845618874721524981289786048141625497409110271389103649657555084884942856350543674457977185124429222561552935283051533607425261328444813535923576926920814871777930434832647702133822486063980322112349812162194310188310427269788745961972454015366667685629258231566000125713954779020765409649685328088566953431917858395577791301719851707307371688346058873450332999714893923040719579150461617475312442114902524117116830313674427112496904560701812143762116482044442715650402877030296474412142250474447880692732069441892663152560775567521669977816248863366638538584922609366035843543068331822993324737522968363577054016091058272122047963354724824095007554931132497035775811509741003495288495582913030857062410109031941548019253182292348397217141246567927740757759612591934721807352515452667710209691045298690316937055892922923327236800590469177471159343722854288383214605842351104364861553862540269352463961796381521881031219201119973066706733456935685922294421831979263338847089790105725744460544865503756444780091081928056273411346995949212624114797017734295093259325692913094140426956041348125392394000633132265874978995457266607693326737557236645079522261405323894594372598906398817604378832311985228611476339905875056429103034020833525956420962267254725227525133770602524402394796902962081265561195704238993579702975249612749804278618698239414508059654639743020909127202281082594541035863690360754126452784432082374858296433993630017001714922896216277771717742572690068286656659660789617371918074983142347583600931602859350633941286949874301480608118796672005184959169161530195032897225233990673488556312952023968558006421488992300782229117442963732879954535529937920440960112387823269312417039308978392806211772542630957117238228321525529918422149667477823864741551733547668234810011233307549308806522854542365499992202605501398669926733124807835199787889860263360523958069785824874082578438580426369737180594259183209143385748109752927532987059921160678427106061340663295126485990993294896517353223153677506879784708775943934919718613310852040635448139680411241076020724285781370688747842500115620452926775063154741459356143380823654638264455749365886184923218761048549292232746731485966173989591849324746140677166802049648575686381439439501770513638704870652798552503494919534809925931540048381268854750061895956236294929104387458659603426633472360254856282755279483778210038119117255368959224084809050038163786502773643979007214646874426238238252950793601832585389129707560209422610458545242048839577023646343383243359746199457817699787970798254607166834209488722107727608981932175784102655100891076513877770349320946377523312759959931604137233526942107322996450658684143029971625324845123724910844716017037149440198840258667515769562547770812504229272863384239801854270633822279455469862247071855286676125039073053255874412690869232392276720875181672532018974097686780460366461177128405978065962870593240366401309770444538561076279432618056026292212147055918522892291227026182209865332638792250777592314634935609000859859400555968789704492197243064963073281002941261161654772679668008311754218883005150217610802629044549859387999565480829445289911767889729538764325915335871452023065705588961383241063144821426411611331795663974915659474936315275322809372751905051157488469175069532740654177160013067798067238849750474161953697324997066221205550072687644699012246990044316004410993709575958572924279131545252378499446113770661091743420938622090859756512091333371818087672575870873463784761590216030035924313863224578300925373474382470181389784193906493007194027074986542619085445814721262697281008892295735832762967125229676569739623685381701598341312286068448316129783928367436721851834616191439092066628154643688799763443490948534712292277600912660645934900623070621453110334154149792551495333872925506104827926370089722663655487927422036791543509046668028411712839685310581763214883140170003205273668065303879971821784517298457006881783533826705723518521115361747315383369756185886966409948261560659262205600450329689613874776368477335366382154502931476114558365112818773756033149562846201819161328576352735212370929719400489649071859010729446150880675107717372778041764598058936123249048376729815660322844573738723975587888702600420302438883783693854994680606783216489815631506617798986738815681227257367428203486952725477845713359752218449980535397439729146710957013262231256753295030814564788935306191133049644434793913226789279672991309096660438719970226728187170667446026038768655336025597610525471737438294926323731957162922375443847487533880943731714014904850670973280754939559800329368552585065304247598222354801251815757900593068956324127290120492634574706419524270014763784243950972413825141352120266866396997005531315469534331171325322806098052131058610961295216664715749586658372253661336525019799783725351206683845826503546347852943865053204337935204798343939586238276238316566169730358038205318984540142728318670525084717256744340484944749531950307316801155327788853102400044227369583488865713172488794097048716189248578436919466818088462239071351238134621192713433885845628443383114114504457697688917750772382816343227963953229119209015433207891827514010884263618693903944953107111023553779002292074670290575202696162001351695005108352502819095718217875979573388968030293351525597747348365860985134588584666830416104015639887896217737276591294602584918645743544296722251106448297236457902360727442701069769362623740430266779235947717040253899111687268011670545004787161052191703453589669941252316925231690823068003837149255902437269781857472801400833965100551548973062780205598003327168221516554744274054987104628945409080465437945249799955477853630169246109931940339939421872923106152978582450857134308672308565108249757217747155575422995418632361642685081125999324865852918979959054353217352157372519535712247610991095392750787239913940974747975915966823136033941268699583637925754143774882383644638071282691753856909904865637853080259448115782653666825316605138470255986981928749888061995785912263697077698694788633554987014944043564068895328205943407809796459189977911875762416414317366138250692802750744325235860402452009680680328125939070049787718283740650139633709451126234414695357909684146465696192462898688402299009220879071930686432480431539610797636947850247041839452335182353481052993695414375302051820766083854166386948639160417868606606999049560856915462747079428530150534013867092899629493572360497782389797497578097149706492408046071363687759980763462086277688747655595277347288116992253293795497444559765785644046894543275956265525008626213991109496513401475969708054315257556169322779332087970640754110607983525157071309961796894497610750684259735040201134308145562916189037763927816136946172730375629298268274353264306892079474457336197397453724378038525761677874110498016913281643381011818341783920975549815780068949796232313201602148414902152035968470428185093222300623482789346473228442211404579995133942629696940707383767952832290413732437092147474147026373536085637094073893688594098865310562429091178691009375573794019854411282807865078138950688134877480926145209324463234580797865913370205445196177978157320918452841637060338792276997756385983517340384569932993640524870831829659041186671064078333496668085152083340858501761212686006381187126396157918400807203324453243835601833223839322305285549490073260970275418268614546502081328882625959683056712905883038355460490031491076751397277196439343479287929109778221531681064158146488554861325880681043715503403132465623892457471083242136199098260925042656156768848508762497244696528803282431576603391882327258488608641754996209361210198759576163241579580968272037208227363684231185136683979083578384764600770349271199562793297946860972715606522353665678912006831311731200650902642011985405987245489927007027396140930598177894491395691819313189149970543116060546609654127035745592942469417754240642289487339157569082310452535555384393694974061770702669556309149589978038788511877261098285893563624039014350063457483081130926883380416357063084981745300645580586950392413502615462892863284211275018117195425222529680905120323189438278885403134307610702721510700170742797682778360778828385260113945143130205324481789363975332077189480946519277055701972383312082442678306394383879000669386959277629565425496851736598911114107143579673796623527701976666705716329852893546839984074382415546132981979589872216938940908868649324878849755274105488562911015510280223345438252252592120274593465682223678949988148988938843299491501825584013722876126351301011095355655402817379499486426424787936878366476962630753432046421935229802164650775926894724682437383199731132641813887132444890045331758394693001483218528036213804199613507233872397652095388525852430643383715972100676809359772726811487815725985468234548254421859439390489092285383714455031794922328715351563657352925436446727011139995560683758773074045308731935642738072828438224061229547657539687703704241698256496925642507802160577954313265439084333449330448516773673945429394598143359383145045155709576773841695459808845559916267948144525002265765193759194247333248845716432156905086591810766286432259913931633484074757602683272191671440533591183873967643553349162691814271447060376537191300443816037391196329756421468338552107362396633956330097710871342322043301001232217529527065373589086881441683319625957856871353587128444994188152767363680256526124332915096892311997755854548975938178484545113539613208229315455646476019096222273637061040549287991792422066298064487496090089237419214359622869324484480436346716929693260818285757785012074420422081057345174716992121596580170843547847965596260588719368413243533685043453281642656381371366311685965063361569480623041809686467854473257085011831674345368455554478807420584611487701563044973437961542060103759148173334666613489418751241163955544648306351424814415720070494124200625586088794459622491188029042426180470160309362821005326489674444178790688785116127411698329049807592955871813734112720888316030694251964918969756472127561920253833732104900445551303789136805324208358229785279323072582358146916201980179789100236793364746652748537506334890755629628715467703192170163009385139284115769581145159396920008685483486460565691488152562672079876294908597312731358481908988847715312210860763860897154381113950064581773866512372376436932285660194383321387900791777610282107520551752619674119137306418000855036929100969939023058982734544329682637285276230246716929599700620235438858856333126305593346160972244616771213128501149329095189175591174489410818077672460041164120238382107337000856878013942439868885507049034265301472065212693104661095947037509866189341256604157735545998889552608873526916701504769283508613333743034759094176330067436401424965632142460227585261477903721065687948343103459021981380092239107385778847238091705694423798061512960013987896301706758644488152947369616987640048615693304921105617328649878201186992181342933467921928690247016760016454791944371302077260001539530585617136677532109980728312214579657624793426942229858498437962883456851694075141371669973053518362998509270261078445849933505253284054094186158872544098162078116394445162246648977336714178671097611345124372546334869596359443955686058895596225306429192641891233889174945057722365709292085050091160470844592132076273415124981955877252825870453478312221570553287493035997524095888770368274999704063964145447648185388048837690727716826046504025308776072424921185970570148503703669282425615375741065814126081446931335835395768794806170524834615289385281508649741812317575260003274404038846216929240001847230242437614266144376780713641633359620240885317699242973045495496602322947318507133782013932807779006767505929812523315654901207441944174500657087107470515010283857795866192358029461355566822139346929815658426527596946760906222536521524886394387252257142926939406706264488821506360705102952084840359562264238976414451902377923131796529647799604493082211342312434030067907281005109737169047083128759270029171862018723888551701386744802233541256068532183896223114922117143277778390180532480165343226431900322790944120620874067171627081555572491127984474031733674595778174932475114750949923909031224360325154616078994430656735451020521678047171209579319114227325945006236475434550853010566811961475337051549810211963841166740257396695262343052287592676873492346103443247670642575779810345751923012308308612026914296128565402925381492416386841340782845511863112062856072413606205755375152934232996509573412020810045350045278105721923464830846107398672614382486656345679049949797753238935286570713158081601952025441655464683383170648341144689264923907510886029675954262641342637485053777322792821233749973899169324994573466722222461446463713109157152369612521612585750682010184517696970355705381033177711636689829849326519686075607388753959128221163280214274403703119017752054878745170695742615392730709852087583711357496187631704400590383949150697527922975362746392795582032005884415680472258462511063746418331627102333080968577186609580714384519004628884237846620732703998900655711667549295110213691207773570351825716811332405493470038769998768901709522153534887287186358064314712598959695925758886638188675788620020471425278650070177182989244110337337208428041292564035909739501867201873570884574911191568650677757551661361580440664918986568895381162132521015737748514123834757625675703986516797769339113385548954829019078718927375240823454457717420037679556475032828099169243446447782389468108443726341441701127884973981487622813391041634155627466762750682184179744920780657158040380989999025839024353908194540226865120743146416556620960230225831612519976146937975625513546413190186549422054416253998492098582574800785046216603915015522806518533127312130496425630406170413690142378821665062960963414230488030293633716395969576236360914353629731074142480403529802985167966935132923820213570028850379268973935652766243618111204567663314523528492726155957871370429027832409179499640501391377680110345219318928049005821761574089558183535921454616522708492382738393304406502077844022440503125775896581499938252010016670411550600037452018103007910151282677931168887228417363782301709219881601001576851386540191262144239583716128822460257807396438239480878741967869023780844034020034713951615767011479653426412604532035251985931982987933144620419866602785354491020711733581909526524919947765160073912908404536446665537852704967375490869447467411893057316569120369603954056394112151388134363272800010455304196479472733592685367433307499258255320392942779942983693818488173092576573069009581572892461881610578263649138262750496787471834461104774254123876320179852005419348627320507240672991104505075623702665213237210493506998168426580543839688306646117485807453536518308589990604754779051676706900452119967643639766531389460809269686135594956796591945212462453162681685647120242284280382092395653816536815119482201217145141736706671526134608952952187334917315958584238516805952196469628016658674610560011945107929076353011512916758624288003213860339549019305669891034702752312190803486213677649009042157069178164609266045455505083132997054355051593385147466874339143716488507589839228883437999914838853114396337825932748953307471562894366231154472751335230174971834912540989284963340652216195144754116982357388077538494339951016769502960209656819911577178123118932361665713292174646051415313626200853836125152646625245420652874957812786724905009340171507177996941844823965434149862455097791179789314509162569391644978868726559542286895426209313983619002278652460977925344413483036959891772913227233924349959200976482353742074575901784532392687327641103425379537454114740170128587806098189736197234104555515254018311940653207046898146331711405210344559624787486765335769903998481712274554540308152701719368763673927130371537371049131118856073081197458064502976040348783726924133951568160756624857163569340671930376633589226206641474215290929152560467546704979212882452014423541611701940338175560157772663669697947686616418434413550214125463630488154849505856332337271586528067714090846606205426159961068400123981145089871585694643763576717096739422127602215401485905944179229753072690726523879113475871779900585857960395588575848490094306961555549503852732485769720656191773620792750665797358162089340636630197351787964573592619300355108962384678357262766003145344818037466574168714581818455198932766973381559590597152676834519602398650806969678249697696117056776311178826734472958150378671097275202757177049745346021892118967165854004435429472112673972199194439129643824958470170044720279932681626908876437536727869859065437001448655389830729724999861043976109478430182836894986187174815733865291954427459321796089930217643610446499339957960595643173906394940471899321418235896797476281807749435710347745521873186594569178790600513688432970140859865570196295733592332050235928960477426794281843579181051898708231617766824144917188965127176253166101631065683429850383858660361782184811996106181636585907195043714265657224059778794455930687210821937606075755293193957163658584440180889690279255206954024047742299545766409425998192646070738404575689225537668626245036120952104483135856942480243485289714183434249795703089200614593989776528658632034505014018542828221817757502494300196315669462334894311729521668698350546426401315813764920266355720855887669268562289008588407097140951657212345661522469525673148708363169984932581922504260885381528675359125598323175976765815901885611177700649189723044611667718567618065934920948619057570554582024533124194157069102172011164889037188892521608056948379352330732899978896571134506648590254413705551446150922230078999081267235132768699208206097983653363046969348365497070182687307153372363106562734188347439016444193711202126406066490153547226698804686800105208368075296546962510878831584869502353615802292862784863952516572889748818894115973980264791634775086939311833338331127460191597435808637161809395197997992292530799638177989114829245667373918327373316220152954035607843839637554798172901724521851366454524854699944408325999665054179525576361413194818681297824641178461918555578213077430258683951256847881630873132565217765226125048703757609468280641708409556841943720109971840813706757667340471470384926666565825723437269069170366028888884893902553205143658012918618858300937186789985323447615309871159119062478069940217641220910491925964933295156393401439759531741722068793454263597024119885827403015683655984985378126780909458569053295515668946594978937484147157857051965604582949352277272837116925177287202871311051156068919424477529775108372607321675207659371460483094677594122510773933973925661897333408875514279527248474007052899203775287447433094552142748935960161701514339074369777528700005836840615067092860968883572803206415861436153191620957305896723944105021705737187588797561955457144559912848602637320101199074615173021598688182103897865945175684434439110948690236673696228808966987342638930839026151494580835286238490799664157880853368839411944880725435310838230409041933644140368041962682340548125322301588994927206613976384269703828252764828446392553695571124586226686977384709099611116268357769987187619402499946336010464361409580797217133595857922103991193572437905842554699711040089153019217722986605520735865596572792057608051156119302038102907030212249524967551261397112031179627245900382079705912329085910709048497542581963263844104334733004016050519934464901236340573950150428737112542681259354917707970667642461774149277259835812964540476674605431349381008466189583067668182242261629734239643284492706298866791488729602624135308312678333491889755265856882477215899677349308513016673509864551280646691345831469255099474281700316010096150354234376397229369037124310250209712294161074873358451437525693151647255033856693313591736767942742857305294946705569544427835450349997903944299739775306866574550919829357412446772605927983838792156982189551344783224781016364298437429401064254933503597429364841062362853435678974421379287967142235731248884131632104114365961848280605993592445403692862961897675344004680414782662686961754901014278990514024670800377864504479305275383355306527959949072139180724153143435696989938010571734370946858955422415478051782119932725958255255774195416618567635398854325946422527288056788884055844790429967847003631804844644484799936384880280000749485194388629267307796401318625614986593522394211654778194739407308005123252582548109039689193224503543463085530624158362777418781987320426498422533202535215507136317992636862096427062429578366167785363685161914458192497939935628478307154683816916627254523486797188170645704396124568273358570232289748555971486706486366890721143295198388240259174320313388197368134238879523028653946099593362853028114444776364237714154158167254713469641634099979264388686239984342877292856937015727093132803767164278962061114742974781946417442285011786044229444474756732929411565039726153936308440341704200706789621122822472931994053776831220490748783035877995607043823622064460277983039282457253037194234502910977206214818368724416441041416881493903154186870331031271913149825360151800322526545463228768958353000381768970225905244879643049363299294865863200634585838758854511057607705489008893233513072580571405667632170100852918776043329912393706092555470495486819604154111998575282376500217222386977289105623755073014443562419024081568018123408887100014745836695639004362965953593471680952339869026887456671448896672948491059874135557031832919777443281012129043935852767258077378699831751021379067716133832079903680266798995422644163576731127869100237516327558626800917785475547852635743248661932646437712237637799917149740233179784110367527002453593178683463435302886787842951082353887531633005650295714690515627915262499682431380445488671938653331805198375042993185459486369587924827186478916269134790628868402628469586752421024285315755227868461400222877682325669746058754167919962637157263039750702940137562633991410337914349622837871017054927297070204455014455149856041283835700503988496660848107638135042741607110759824501419289835976329767631221140304370883927689158430428888686785442615802881048213466515732872937770004786069459375013985085530322920445750175423720679991144678398876483656558362217808939508725073608559514054475868774521514489002034720305442616632294597399718914316146722050064402161234789160094613708217063872440533978948053089176747050528895001112412007698130473691499970490021326901153682273980974028917024715766657564801588974579032638271087681051558927669415773160936241101949667606404481204237079923657368736865533304473097665379894727338137253283997955472526941230363372782350576411056506212984976524670483796426398899895721486279525668200593285507168092631391434672399207920079659418129925195351602053091399071360403712897221714524528666901764905612338045893518713591639261963697888146663544719417937650744203527941949011855411168240859895121218442839095754500973883766757989473785826642839515768866502391034263713190360745299382952458499122009142997765916494902989847521376039858505838726188309693075306366888147141627972073899683066978462113908784805446808327948425074450142846090281367891601645249863172665522193860022121495621699459821386735783732974705739973149642322235512169422577899966332243987347177915475521483780297894901181191957430408900518838540079907422145398470111491175028432780104333916073369134932808599249700894635616843051434024434239856499565358186708252293872117547654476123623005050760125396406119494281388746868906049478791644486511054604534097750215145759509353756261842582604157074193989071077843968717077721054986317906693234080216112567543626486567274638130540575238573797904917416645104548675973639110642770988234620974154865018946046316020320213906048198865257855864561185265450421447029085148076810388016977912771893006343835306814841428213333429136932504801899884594126331070159285231268352881335741734858664857884442312187605401475141006470481105229901289835774952600493669197378461501894225498753171239799324422663288054583279082996309314999901986856962372220287954829532666921611748845966862966492706017944068645989855580681793231180151430553667612855662753135557599939459730231770272974284909659519923333216873152725543428444393310800744287724756847184317730440580991184264202040246625602560255860402390661771095295529091821004848156649801771377597236760065334020949848045840837604627838834731057205428866459874756643967182124679564636783073989342878151957973847993178589804802639222054257315234646396466321469789588958473326698582925561749313486440909903148282683686442894851402681808326399711196531282857265099084934750156123951092707159402818122234875357434685135559182717612750807345955507553041094900257989952535281818463157466127059887914379037759798998350688639755984576760278845154011081601534175694135869160730584078286050820553047478795446365404072868128528434466128947651455734377725300956856791861157618452771739459802901566338440817376264980570305296978292269118925913288397971748235691672996767251007344587489219641995731915585158941723050383128341933872912756899879824203234400720734815168531996946336553135383941897164179939744072704500206704587202781799416532166565005368297654109227937320070529481150423614647086320858701422437603461167540620966289579267062788087586070608978500153244167436625739806472705990554766979357339354817260130326112991910455669974201644583480992546854538672786684594468498881047925389084667458014807904985659122465035816218888687617600829459034027284042077052638291314629151273443495164063597403948063867123678413407959627746432315894913061197066208083108372173295706632042207484724653517202584248357022294829391326980621525922469170732189539254387054104297103540892313664463032440087348118899360254223141949277292638104114718327831073570555850925136734627071075698146193592116887504555451032942987634547251992737463211096391641664132762738059137892367548171398406132279487152048398388757460731680235936484410551983401440313373470799694097275203069364778404429311076933813482647971633238455826882749046348696733515439235224130173895867385095917465726566739574998975247886791599443552843432990077114304355517639143332416784886925393370189778086221644246039587469411105077700791924051455898033393225427586149770266489605586929784578528335535425534875433205094493332532107727711465021847768267694580552576893850371291193129917089845789429999295861875999304553726344725729434567320423347435128495440194073719222814618260337554070797348059619127847031676132919141463323539341300114260572522533326756264451057903295618887163544150379998077666676242078708474247766114067205871410709960840341336148011943699949280877851465220321372711704415313467631883329715636126527833327176526729844632526216035169958241466489324610664912396468973304408540699957538711059955317341249148006958502767579045311938569196222200973263909139544820497676191656451975720750832828234968516083383398212737508559204641561779735544702816737905338187336846254375937774699411411308873438883992169647958352689343745683750324692942834503470309993274526751597350703804214066008630556799644919375775299590539876447615494303081459529255793199887365127076837065827269529794981216574919506381266662058761683470001238727497303352478168630655703320096120280998431175109194519951100580001773647906142942387515109413285770112968212604440026724586652336948750620133644278047095089415018459254635622725997444749104827752508830045275752232362269867399973118348955696807481253334140884346129599493730980072529038795915792228705597778531908108794573445991916606889566974755347946800786059424205513067094749318820333910647762079363452466689463620697517329069142304884215604700247429220195283506711704073624903144268596149783573894859901371670757252657543682469939278998956106825529568637549432850214922356314652911110599421270138818048020363141921605423746373344642681943250600105705631363062800894549254019481175514404208528645143686174664553972238252474591885448462011292358535745658693178493014778140467121794635530141989139867416126061446155440027484626596873840435922697334331892655422607574033743970954572954686031697694017293766507361525762625751027019747428905029841398685094980221025778464923006075730515492395846410274014860041636085593054327198347473423333154956089676021845753532938923647844540114975520014720894417310362816811070408302629443344473236915204158471804754393104179471643790308353344656688837302372250974501326450544409964112353687842968919444434303974034318776446934774134522808265995688972538068562454452851531698857000376048127630408294373962639343308959111099419681193077964791876446309789398826182268121979845910989059016568458671444507796795587547718974958802350118288290423133424502085487064202193286977760885661133181803213146842765840901396072017779140020289408618077246316253679686034683264708564223100597575554660237946962519035765899642515971567723622830285309427651737279028393293045104426944308545312852869248749177868581222818460452183879954895381320574107588601828691991784556617714899965319343610188325322040799466902944858304947509379250239553853191461436220834429238848371281317735594149459521435399832134692022692282133715838445872714722835419754674218446668498256468210895106274146430634263846124995077004082743043018100160414463718841273644662380111054281943714085734023019207665710461991605887500023409756596056746631072839407722954573764083736990990568717025359087696814973621154664660422761484648173193907415663586506990031003956488567322466888673342830737200749790732384821039530768314705412052702104537124623742786008966369823607613075435954977685663610415376375061607791585552182269028752992567827485225475045860327419913901447847162288785808175283500702774635423208401808703149814987426946998758905435449630004200988091286912381034959610513538929215755303762149203353188883942097532636158544516540028444214144417191239921226148477581348680154307843624968883746752163859442996705200885200121731490727614802993755525169865942230248208541914275283422194594752139459877846476876271477798069774373327483565476942285758528799154223776640593341739693834421187761214721914274164425481951846775992050291963365547940171193836251076060234708044334759890344108463016582951333676473848430306871450718921177850212113015212074707520999892072948024004332738860059479580708903564761048924876931053313460652714678719331398469483066153072742360506486799103886165489190619261377002530975533337944691051702736128656179401838472562662566659750195587336849247025761519599315816180625190230344606830713304903577037832206622589963207467807397744300098541300218341058697134198961404577512162636996342987490060950841624280128056020428678770816001905769636266191913639197503712765188597559320344509597398638461311842074700019997267692495618575023807093459329644305126159383735486861686363542690465064663338107781715765810465278153059548410796706744214289488621375343640725298667215622283370525726593225834387231095213763257882123393830250189104853589104628073439135388876742731040148269132972675723491834709161598629651282966060487917920043211986625389108574167597788223162821594502179813082558591445297026154922395965297511755226432787335447705677781137585113207016438041543418356665248324502743123997501475422017828479538125571675024360890610970127756118347063231816392045033473810250615125600413958573934959016521526908951843971989151413290589926736407319316697845227911857691262734063553580533416729304562501034528836474632730188567485113901645131374901437721673967366067377045640941821529501247040043063865045984978096096312951960133229717806146778454543799042598653534891718244879333790327602167264098947469077679239165703963148379201261236563347734073378617596777566693573727021762137154241840306612117506109498776216575273372422798561377693831448584274128865869298582699644985762579074732257464524396221590155758324372715703319359184463162645865306167372515188573238399978995600344701571475469575822505572194008671475307356754972540248766513972370585136371623813618850517161678497955409241002300520185962906060565673690462440091495746403161656551935269241683929547397930283186278451939819416937059736918010985697636598761237096664134918507528187305953141588852796347449536712253284498998316497278697158328299639782832548133116977580858397081893747338919083490823762036007515453678264735532341017197897638158483123565979894338736582044000663943861132617031551691051483387882912863999087047789551820255075351335462317888223000129984593839039339441985312750388386064375560640191761360774079233000458911351747965886483484575930471791175839987646163612275267419817469401363512728123325643354958710909158489228230100133551890922367522134721906602542028645391897925760787335908447827153636743519948726865802970211830781001463856434230392921474393988495597316989323324153048161218006020739936051219539894862765448112762000413814456939785252016616908773098646449734672372887846562348002377696633916493211161961669025641484885008817740583115849684090556805430026711914346899254685664930184648152782781879651308100649478996995363815389900590209684646773103268130960954066479115877076606679648814010658527022627950180991410213311657332866861754375883833610765252685492046382699847394093708816487071238417179587694835901388392094305136525711729134539423954484798761635116558060045425275882584419155665622834149663367305523803695893294033992216756494400501311304509314155527383223287279392555759555874644450992063322709141411132149296284248692726873539941087111947849084094228503794168748760309240395219982384393427250517633288213086123154562367348078981583055472649560622128259666473775946633339980254488521586269250026655236363581198277590154605193817129373446787386060335795497172684398125753536425768744966356244566397103379614277799782759552273112668231254797785327965868362673068607363252756480699101793841602947335493180258034622458713695316906460444439914875114236814464669902983435677849141492670649470158337187129483194481676669676272342161543787456816852796068628565686120005292613424668791978033702020143246577249880517848618091223513477950665280753517860553252159705030706507220496529790831514465534386383442144642884332254560067993361424407553887599122103221513213808945851557271691132148565718347256819684568136825785392637716488535155266539832416244429874509688321761359333634539617449185626197176871844822178471999355317092666190469890776818208726924890447346129823740804784898297456395343216795355059827367356689157374835815894707480503303637892546550758604950329850806478617351990758007454661135279891581637345472458609865602418212710442048331253569091862013749413425646706660278572356849364050870061859612212894992725064046382406025911733436753694695765166472490628069580441751263692320103211476620054181124618553461487936524196814694505338095505261528181032691076753600055703053208077461716404692790822112603931738832008505602922567738620046669985588653703885429790947538448194805479062154273264353302118166242874396189620248675573758187317427683122905465694473727173401973246890290707927970996190241360002978996599161293220947036123471760482131518486953514632545247542624270894708463134514431711916233999770737583214441200766370684328806456271878938100176460366725333284344863941497857037368823225877177941631270546409922977843801217510397061176322334876237523124200636884363496606774729656031961246551582361054095070507705264439544118363615078532224169908614300333193209351395217713242997132981930316946008363502946995951304439426903281881241465015740961541223557285800603988682278714406183744104348732229143444563430270944551219401195283954699987316862474698363954514514269344905872370788335663417210689136591782740935553225303341627940322397503063143615436783877362451291031026521200539663188671159704050937128411309667056002826456065254547354434570577392558736604624120985598848468546214461324795974290691155166043197635976283676169682017403534344852735486832589482191835005048051519564196853984694439364365735926814345344181602502807445299032941020543276731508163433799077373750357263204987070919271677738866638543683980686245707085598311815281729667482619130749201930312201915618764916878266402642831083710989636922321088816378325142652374986592672245304047004840811780852935874742030551957590224691907432426938027284374827023774738920394927469000003593471853843599142467354529419091323017627668653188385586002746684263283797755611262590584389303007871658502984752422877547532861803848244698840895823531310155200769876439449422370979040507123177468616151061103894162360814236285419304976732700285568110815733209821135302669911158976051221625576397518547509104758903458524826230547229769165092111805890002829072228568822622782326324851971746572230861194597333543584095497246739845250346203046093894794942831909439746778300353287457780443771837916292376017041121703820891395854322845869226673213333301673939968807275039491805375609188148882384285212870356026297294071800111675066597415383181294108962274970287317223738417300108444353770481436053334414861177740742819402642007435102717988415956487398122497129161314526015915617768051732518635066215424619873153545185526095988260174074646719779193533669392209701675947257654561818578194568625788320097480058910663901358666705151362054426878067049546356654389097331748088451207478237442591711367553035316126835149331309107976155224908646481825123065538501262392223552723072333425837177332072678230229281737283867888193416721986418872206469458361168121456357129553242210346619168204929748220817258979403663012086319468820774617603739243796097350335904500953349299054295019244642341934081557658187268183339386572274170688297268106020199158239922293086847766760751845212487669000511380700214021183314292542941554217396987842496423576226082169489359477025284684779685508505076797629648344748973171975363247846505172090663660890721485733781864394766617827753715325867736100166439198851102309161968575810765680985430918578602015388917041901222786359425104981537010217913631371425840522372988292854846091296051480282517616756049826109038392115552318797177047557253181777473829630878353036556179927378872046285141446118248056112358816619683673853967225664051933899571758904712626828094166653525984759694687192721261453065361077627523823520922106983871621218716840726811987380966625514989847716798597714604707624099328398125225347838305734854510292270185180119697767224418733222524935407657752812609166454073106184321912252219301898513794677991042454113023588006737882369986197101998755242354807971379340147428350814593841640879732586830612278684985175067556472423687599888897724189450215277364131675747578233488169701606706328659183925706700165405957482710850584903904381291713574128134661591200410094933585807776239342044638770559616521352414236389726927780977642930365574022914770355348534132354072578600192212760394196280701842291861515186538968916270006981342667021226005605133843221029376005171069396863643317567740171276967504268145637333523388455831226208214644091877325015121629705093268127886416987781237597693436580667056416768388704068042476883517867953224222615216486862882033591495523254141735885194713859272631268235361871942793231172709124119144332214043927486336450084014953161158107878639142959943369175493056348884656482389695676244839872782574069346481650555418005644117397988783436008433741476016592997378460341940046228823290544212834869763356307358025913112221504997323417842733504775418126255915634523060755859381635969026902035294241726433603192492506798552742985858334591438231169913265468725866072163427281320266993360519524569964188099124258119743783472407781490263820387856327649962664907878273103937518690145801881246695555903070955031083485605374522280911762679868401777919537994497104583382524769480383607627662884499632512526498936194039721404966505260712671154738553075996932429761126483334487297777453406754979819337978056451485230271136348486255346794143895541214286163898350084689741553851093987321193104836902052239403661377871996768116493355645439126284154419631639780917661787490765986541562287154690036800613527993274088048416581031949794626152725393519136606825367178869450033093129293796351609867945455377563926294804969695430060079921488232667138432581855124895305046959907344317391072193745552591681504269795255757861432558905316011342155566052794598999365869478029890187818064151562179654665042874890141556282251317337038693817663327857685414779429900186029240850772872830898739985673171206021381297629133462885624764369633542011648026747146337252101009502164667424224303171253013861773001285644528883990944163138727150323081291801803380003726643550674937173586969242228734005503312706787157842108103702028109462963945236920748270222177610490591822710963271718570150196198423641949887277597279250649427383191227837941754176364864817308122653292505921673266454002215453058771522259025944379216696232101060615982459247804495076284888463657652156013964972074795906808734204510099869753226372525256124119519371629260353820576103562600124027344353972232155414430134599385323945123872400872455013998407785199758002093030519097984627072551709379014381489753675838357719315821416844847024370723743892396191104160400831528452573538251070186128632780723569685163553295270972495983176427160912839324323584874837750152896500063818695698787746349213941475698326818666859813361955357361778744044001945500694692700471969499257195302866662874731230244863492867440635578346563833235530596950967284425361808021405283799924780562301309985155248974085450127483926947521938136677324158338387675420170537280628878340216338207065676868671026160713672037894472492817731016589983400589466785801284603465109756997896717834969567618703007363860261705522332920641143799826083312905036182993517133995777636626396302350374210019834494296746363240477079305441451432183076343109802824120608446770320185814872471298309359494103190179885575162286806577659413330556534273955574819664048548032490472282463805770369261701274322841925710639598982196817689788051353908434945436545092555423240828122377754973375943539203748214233372916257990617855376159408028091419183910048536037817372886537690846715609411526213047673218746364692350034972552751833790339544723766434882941310596305310545166049192232291263798018021700351692255582422239704506916300506459442480086513700751522467472461127503056234965705895280838142935603637595855737154854793539235582037397776459659788909605400783656930958554429050773360177736478139530316485801330744980465870170930224431769556369286573889547816074855788680106941281079804497680301838851189000429817138220507446506751107654263274289489256929724598566459349499267816942781010140962660245025143232009459532659378799043249998953479034237409690206057999760048935682000440349451010925712652426189063613012103528650889830866209064547266455019478837968626734562044789961119812580308442871832482366905182077526873069252359700802653895394819012212521058241665343488543839994546775298062134336335540534964478351358987773370534619581651791727819378710645040531026353819361796452033131893434982707889878717338979261184633634054546458461832741571510626242128625909926801241183851859429298515259355946768939093129787395416061202111514850269298368501252991238752435135872207481727715845939312642278121249986997990754748638483270542721077009259171524652762503585479001441874385389748573110234489018105481806275723841576709461483779190604791798919376516527072911166058785607018405751608835403279055527708064379209700759988287788241866371584491666310299964502852008258039542827036400396907082198817853799775710992974655649380934017318201373921622445088221524017976222793335464391602540997980907718603868857768683172412262802158938582887495516376786622522166122424521211262813421034335055834005146930578057735482015539550788933100438618437166372724444073316498203043617721106976451359185957011188053852883651128436293605662293369243360424610461048130481100674781558782539994717184408520815787499881074588304118909223264322823725864456990256304503246543892930178457900627082483748789376084172149102299445992154323464699460119440972271547567726357830967682011486960212785661688471302557427702394367594085947818187040787435319982900226712726888996772596174095603784532676040473743411044701836484424618006658063246534981233034878055687158425498390174738799348189305835521358242584695295086911373226665213652142878820790565490368139168601817248659578618463574392257264239714200469271076385466295407997377456325106995386111919758493684389155572143188875051669604709323449933629442570124159022325771320449892109673998943276577749995934064782954950490014533468819606400541092842598630354614739847246316290523573978246392601048691871765911630110511413564158173154456160731013732576669829850840009187881098749031867834945703636702482113686529047644669800197224024448772163504142970700603357491420344651337315870210055122481145010649137839048507162357254764739255339849252463432827213171984872198900933150108210413592578880659476208860871020339231424700367931184305887026358743394631575165057502940243485348269226308206150736983661836443535318064005828343568588168793377578018468706740373464483146811891564926793753834583200684002471423491164964250147984130741213787388562460376355083933544229624343679152684150924961365598302583583336362882645576496773599702349202125769954769836987491440799895197300917888160091461676730690302853661473046532407017068791221322981612864606522903783576867671341098372039381498169612729859437656488945035832416337222040240803824825197649476712575920103818886004286655390277054372815869724870157853974637481698510292191410692870411091163503136157015421320263098580625072080044746532333081748869125269694828598915646109322613972753705759557646737468294320522868199340389381557281987117897366294958626594556890227460691447210554279688523713371112555623381326243173199625114332445548206792467066084709747364869549726873108003860770843719975997833207908914540560304427772455670035369431109483825675728435443938140728505068457649713812471065503969472332130383294948901724853237694561272824530831155867947968903398686561225586093218685529993856121450552242586851953142590750711462759093101151773357203525756493325837010717912781272597908530487224211287030039083409133945439988687424302170343530996906105622011155925023310785166795671817733306554195702088066285617280129857881554788132806410740336855565425917553913282271313565762823272446313500934415131562473856021529306556563811510354892653979129550598924227959053245128716872602070517728710071670092647842693434911603962344811256500032135701484349902527473172835038225659813128436341969106996188003860197520577668563689331388315979756637487206194387343425778246541337482839358633908471079339468000685207810986864628920156200989856565297720637037021039102351635786721896340987045302619403755114481821673144139495121654193944719976740321128071005501652448730407107824404360067836260195375016352085991588387565294416154058205908715665938059297225423263501040263757267237729447081216273047258087713009802391052203654147782467496537284299089470942010018453152655252030007430334840389343924593798711495300465754758065525845156137093877666523996477105207659201241585167658317268503370841677874950387299958844106950577927470687171389152539126871471610797371906472526471944116680293473070339794885487134609543928641923984885546213475151590597712561582720201345083054909426260743657018746423196908036974175541786061833423716220756780066068713486834144874808621087652187574036279617884815595870362067225964651115375592952786733190567028490694055897479955369499551402526291310411906443137160257017022120620862931583915861118601818443978378028163829985973572984328808856198740668537592034405350864708832672815112381606556039352543836440702298288541428233215381865466194130370730213774380272391226332577711512098236789463893922526523386563880011249237232217300029181932308733965963506330383373714387310424866005389480718605267812687281434976533786451332221382356669310274277923663275541064723939471649844062593038271696633612241501110137941866170480812788620042017269811107118976233312466738976334719050709762997314553225645647829203080831661688670501796895042337579996574814689673401061807988956325493251616896243360066313174324475817922642409931368899058419642667993288169760005840713666113500427872704013670947268055564480584922019678797314137898967395857621196558348225627597805387045611101189520484812756179774379727922263189050242631646914197530015437297603393103610127742140032432601747199896640606005773253739262118146506542774037434739156599222635048106608156728845832199719330547166835694150690253682141407191499967609980950515481556646857735657350755484175499958118724054271202411867841622259967647879466444846559443036223104443851806626370313212184846390085083747506110782847595624913949344257717997684659672424281191626039430257095501427389441748276918131542783111861909767230355711744771836592847244802350072959710961891310229691980035770643302153986751921836975143806608829081613164554084405391032845105597880082556092490718184873655094815976104564163240685564196537952502272769566846821259180785063125040032471344009700458078007833146225037997219740511911559215357535538789657645947630828886136327194227080432373809614768890390951413891302228040357909723923816446835050270345522976271545411076818222653609994923903731551404859928742859917949943720695956145761441920910704629043351814439490156348111088076585477905998336593436198111468682124155286545075747266696806894850637236477647564993378512601333455341569652921258330323191632125230062940181809600011927122255265445108205336641763697744656752786216747867078682360477258023492277708516412095116416439539832604128842331248331767180066594849333331745195016898972191630509494281719220075539453332210266176185967111120860493908151248127061752870888464685884448424972462559812916964058465154482356976533455646149158395560551939504586249354550512191552663891165359519191996801933246669032622689835628737226349276625682981695732176626497433076018008285330367941889482929051171031484946394632192211048678723193823788726223846618273690964081983139789823868477649741252471134148536615131344120599636824600478871815851370108925337376556888548442973806396757394906968946262013893080870295077918422050963835002279607667367987509067047497314762559142490755583285528984667273701104583902577701903472272753216027771823633213794138308664824429362312388162198105084046445083112131130669192534556676903182471624051257468867169627917593659033456344388792901316659502365161830955591786663773220217583731436796569388073880021433140554654286367305477792170488922950976339362053708490623010419291541783065044379849023115268896227006702548810662816925288782437042237945605913696267549603760324430353840178680400741812992603325762423320015542093321381375479335757400541715695046516726171812990949692599576384401114926125577976765550643464766140184302069625650976134164888989431899016546589857103477707374988024650787281725325082007244300187999329151984997107729133065883815849401568074532486706653360815046028066114957808382698716932080169319418244788765853102323573172152793221694345658665172593168877868554732200376632677061117996753274955508262410980201052355490507242307159897962446143419071076835257305447480537747693649588867206804613749444049511679120096153535656736060890792689435214540064298196558567512962288858858945227981592889004304413529760690838968474041706647415717471048732738093653846330210465920737275048779460059171067166147811111648250600050124686738434278375004810038934029203830417120711064670924333897579964189105368536961951783112278817897506677740487524301913482113723371767827179291269439304151409506583795338920798910577752090979130983630457764927742720582062793504568665275022753687168181990542733938886891478558250093245648075326571846880931475907861832112663237476364641274865093873309231861938101427914754523837227800078720489505633520782521918135069163534039605889754470736004523377913527338995372690401203578742507803813145442933141704897831101351217404341225595992506324737228203271724556467638812256099451341164099597788511808442931046601436166238795763704678067685842582673051883483367301838158978751350657298146914475669462880184644766783300111704839053427690215202325565433656263811231969010186077953323385932877615392638026222949664150892224246945486441894920375085751884412151112095772480776230127093433322429416583674061190032910159594498319355239312649524992334480678312807047078567381781483310491787389501175246379528434989845074520587239677012640577209913526618453039135520753825611332828600950326343832744426982369870527817898687824176854217552072125818902913842719450916741680767698976871147958796932175725712961895847037549562433655135592228604147514452746641900098754274535085097824421739978959339637314293093546630360637250821859174907547272264183094394249330448924353763110803096869806464871782609970973000676054327283812863271387581636988381352478344599259346168690520877467134269696509610880507255991163278785050839957630515515307122408440676533137076828588542777171829156564033614208775586337024468075428440485501270284181359308352890345782823940320288191344388228512805443793182451624311700681490562806975069374154953860521934382358464936834522458687184308760930027676331435619555675429266198098843643885416934476785789642711748772974190250006863096094386482886995679447543159926031925342488097190580622070379215628978349278891836953808806881071638497690241190543369539015332721693232591180611395107571877382624129153107505976439330237577176340502735084953640429756359009048388098562325035602110570707584206336232056518456512455255394711040958276925949207690975535526125908235804379849675305462243753207760169701145550803475537510659163060547043544924971482827564873763185733928078852776910958681780498052370273916582473855953271964240798264368955563542290613861088262211481607746762474472403489175080312514009459797693704611238430187562899585768384303156044127615352151177661828549618716351706984233124849106064618624996575201170702422267444209762203316938168297774010013871237576729094317669596957878128868960206247489679958363013686991236771660629186327523526128561318755938306965838024014480448213915951387093307375967786947323599486015179762565010552042582054157601924262359770043047668720724058370689833050398326469336655350082181663589856529349979370282828825418024156148115800009759998083305839724063635073679158100953281234273722458883686645148120917780757373087313116008566466640225307809169319749821669976016271856436175787790762536732399137704736204640135509738813920117833785526734197899623040838197615362903396265187214976715304437650160772482524816674038456797278929319092860256350584947485621620840526503213631050517613127788573055846616633629698343428841697502316436671908498630842178993730567779768238691092207335363126460965140044661965144514883089269075992787370142782275573655779065958456228325699085366009363080865012331964867554995183058280894966073111784054728621386787024628938336360816550405005694620220290017215788894150523830528083769275506785886389121628537890340401996737267292824706152603597073090578157279899482682103067793764807262192154186942972729018392342817723216777691152506817173777209222487755538495350069891328726015842708385064228704366354621138375623426240745337902609768565258575832431598041933381593864948274561385021248829802954785328357632049772062613989969297574095821252342293716512539253663036062216788754561224061047717818088371679361468759567692878939152592768524483659849531337455083673972516385597385682032307265573039114539819451320660327561828274002087550065197549301992119357950484849428602018564896692135923563704835282992838879095829708896191306187922521431147274928158850392924650390004899629529014128804391605668504868533407550841247652283458478242403708064106864070189794835802313869559003474737876703786894090687396242083243035616640155959831043511021984157834747360475933301135852346636802017387757945469872978940898311935127666896773392528668227470988565650601199993669265127030363725712126934107895481512056811167278722272141779585849626456928932209388993406870879184620949657279915020682133063331826915826794923707483313476728850778974259861675841277953909521396806555700243677986177179215761355051468451136600721532055592381336407381769857112825127344497418176373842528775353855886017418046032393636226474634104004412433183128508390154274143585758518159601363593975781338507004366667749363508388942403046109002616062896410158440242698068289060508376579796003925539752332816432239237314718586062150423511577188911007511799542942519572986835496072948278126691957376638040609924522033005977923131536655423906258379305374896966431736281798011356925974359465930974872107443791843187105743246711176313944137573843091135698085836169674335118628799007668049847013174192912677101052660746313767334440301168072209940275486443024970813645664624008743630265496244481762168649497650581314392329059311532839350079141785998607438667120213911776317365053563240880008487831262203025840657426946947368772384339747389314332633474968984183437619785110899576625454947291622124647924132113684079849992812306763322450117190047659835862763087379673433599128868914711181953985505107832492138720503047943941325614147617357144946856212989526694492084655022942901130206532288871028742439217605613985890087987217775372222191973269493674843190234912361826642777875429369426062767698788177522185081911010134728080844778463175718810810139431493916011387456641042050554571065635146085865227961083139861000136227234090431141958220036388642947140084143052985412591014422767116365037573224265789173598678859786313845493497102296316209086219012589235950604366472681593678042826062982893488802029504310466707804043185248436394599965686862644165791008343001099543702101374096498401901915489956448849953226273750658936388607261744256915381247637937200066900833009316553980589863317869942105501691912279585862084756417429650373040551897015387366693691399918956047599825496737264961584638771243168742787062876465683146162865227625383700682173704429548345192975875784732131076504482575008252937166249621992409784149839376715205481682653392971120941959175138639627148270509871539962027885368570849205469031771726466945696173649732379514366943624210755734809881177319509716750353664924686328764865053309663877166681390269693059908402077044425962089336352159822584148607342743706752224790529062406022707228811683034751969744642004624487439784746989025731136946039040936429468788608806440280101161968751915662638742618060129070305064240617531011157055042853154142502496116519833303754909086444192415828043335521551361447889243564920169106056618958974736118992224624495685845450158488220000164965326645485102172368790057369922619630622902301606862777841262404709815675030588042683730981701234439869935403048474970046578155591400652526979235478437051519497028301032171482645189163975575161919116259995289281440407284043297009460913291642308250478294214872430241731052079230893873295278118314519490749140461225418575845858159238757775638097180211100428385942846335388606471284321477768813365013350478618529046461132371987125308005975102678427560004851990590684387403822694602007015865255606385017849441886582672330118091236333165241310430096704861053261358887645568595587106105698524982220267657697087478642754831702488089304431352832946842258545938403948884850442723097609338849273365625589386022984821467558715601505573899562600612680888109553576445179775141825108516824464821547147697658890604577821385628213295015191740902573556615881311132094985053938358805867411722145359466059637446530659522561777813893177662859173224441986817475796338583395767091174371625525134876783080706181522820889593850918957104868162419035735222963182496800159373885045886657582291234109623651234241985060184912130127592486290929155054384919284023282599696040329795703725286723591502971057076582708310269468506299705050525026945142567725554017034112912861918286397046204099822878881133900564788466286460869290482395664573191229445233900742278260394792899474485315979690058633586176869708985212963770744674007133424669393081728948095547407547803120315654034339751523522710639656178671708859607918643390970767045444441405744988969028933290311632863912893691496114779676020612512244277230214567630207657300352161041343165066301254259529578728857058111815234084581135609038757457459312059163814765526418357907980311689270940939063262622364689452959788388539161663182907118714521462295479896346740042736471796836946998607079632335402159672611097603370163685608917206395765407102161021648963857388407286584707293081060440824648256981675601623111235785410111850955293209887481335613655462432382778118983396544500432879160231459787287465998169431493648348152021141205618219295102943767527615325608407383616423291229091105297207449170197955519770830357498164307607950124716296970153374304746665030985226310177257729156845167892290504427231736727829231869809385447464204625765844539502984758087681523567071972196205253061026520487345693651954070759178034884496494257564962372094928842344588233177170163943822773009054449605480775654981130628826230434675848339785110573746790899536457938423831840650721773732628154004053244494439450011949755551432149611385101085686573588065854858719073991828384449340139685606116995101139680263294499559751659226825937540777504273922924988063802810848102646215515830094936638623190714364413465556766282987475685156477021134601084343634068232867028986011087989252437480228778079854678790479462544495417146455285114155802024951714332689720195291810954447470905937449870325863859590285104760036448540899338766369273762162595071507802904488412323999158301822398648070305468326705483562091200008761602634928802323593292691203426084521061780077983599769716211071179612055384602783129772793615875097227417912080405220050207932451731844927660180586677928332406806904828819691747918857111171162447974106437882311344438491097565272511247417798777024712681167822075739862669824686742531428171027975256335138835503387895471345579854707500324374169100973351834404146393354507665418536249419980409028079016250376228857984306935913879979459429622539221735172344820443963264051704728199130665959100623042689954334133304053880252642258556014747176999246275995486902013228053707885744265406110874733994310982230802872095053156766026406483581118471884049971565837781513469598813729678070430474767521611642467841853223847127349106343915746393565714040716743866994127586682983065978684117047496846610476737945324602415769379528217798779761869753519596883178143624619907905216096840409152666943430513411244255039486116562957806804578372265291087645746039600885241031069234263995370929112363182177976102662830293482115752405002169618822982476228137749774171502674411599335347111267572240101260051965817699672106148762535917088625789623755296106600571287423657722886790989793755799735105606694305272089209765666372690608288578361300117542433326206406530301732990484103827478072430607439176541417941715049405607181623507170195995479333079482368200553363167663151531670367322650391883338064588349325389675658081674715499290655812041092053422555477784483908162400942467094952772692699840817462089223999196747150742681805338878340851916275293305554245119985171439379971917934855100234565797579142688969171475534087162633904260202643769447092861916327521287506429381405210452957086495235579358478004142240352209931964651180777338528726756229724980597023427840413776060128638208387340597742184847866410951273647981544772317831428822783371722170450428811082044389350635008606750177203566401045660359425866180745088428455930535504347874268951693644085769202228253944151334163847165528199800139098068006147049167949622780960497072313912215984313014840694493829801368995094974299514022142318596878736874449826955276493133327163395503735562525842004870911365699443032205530000594474653426519982325930704153974965892423084337823895447673640451238095084722569939007908695781053365130204794365464291476547744308487199758596001233542197367345927467880411109739459217458036588487316960244124848234591534616714392477836282021821751142797161407023067334383382624749634843518972409590479509845624965317356316251067708903298347468197599085600571536884837249024481080050078685899896907067207065110292607393648295063192055493717261368525815032970427618169485290181181879800709728004653895182944960299687572548099186432135439851790210716121035333013468087599868373463952176475769404292601726300504451145961962033176728209699278784774987277397616323345323920516084541777083128953116907428443351497347530539344463570253791058376048469877609331589036254164937405099327407422461058359694309323619138219048241271736261561144966043174546908525579508238856871472769228203935955480090739359841708742290622918191421547887741475296449092217309213386061789684104499703785049602423865072192400823169164476143062275739102182270485375455054355491145676362272458776061112505606949551190164649040692405777763639759859955530388822794396845157548585474568391526680846019507253381494566914656998419043640701749602389649181949878323061407767545384221730578697155645913791017511519599280575131089320539232769764149139508309714047696724663746560253975149640700075162365257808925584133136667353254718883118536445213452115251717258130500514326053584118909750567875202253962681835606581589749945603602213775654292362348610309825619476950792398682966697494106860700250286698138290905374312180651582093578846240813889476639176973267416442305152775709446743935162822819750739315664301620706378952833542910825584263173845120700350449434589069726107805184689192608343876738767253301463043934612637541670113205892129458411230793297021526219022116373665569256986117083055743751221036860284611230158186863678317883183801995404555772688440100381886396090331949540809831388113681042541917452340235543602366222497773194349043177918916517972576152156536226306843276159730986348530883552612621435578581424915114670439789801316097599167137281285868795897098493725536384601327625581599955772353012485171222064339116612553642736681221225449556432894613694588615154358107636647597140758270393168004312457372037064238133113793990398456759901983317589541747737890179691418135923432055042280599807048188742832583109172804324900683873710336565832001214276025110291653898426208363949423191187423014039596942410948157281428876358759816238346669021340711079548769148751387813354158798428763044639621943417817372486349449445905802087164000243430328275151990256387536909466228742448702564977402565490833202864970387001147397177476531097360398761281941545197086110296628220004978790258021173460959776574791690661522752682491010342505283118786972898458161326610654950754552341664406461033873579908984740712313626870778357112744231080115229488661746843912451023192000424715679338794633693617542607626069071073006141455496219311572077053351730172360086242976023124613972738176222594670216105557258210923935805658746678317063449193612871973595055663302766391273223859570976214136263807978279070759033514616402695738952420488710575731536826163647749948520008163494822077530134973472748897681886715379309345418939509095248321699448824049387265817637481875479979226701581248427873611119684009735534987083845280553539313623344600819555998059387074062811753877425140810701712412109583946827691162112455830212973948455939136546922175091358908055268323341428218234701750026257452656189794973909247452458650459363572135471537622447619188817155684487625061957161092933464676376658091962128663752508241738869915679453523117441211335381836665087769729120426766296363189170921751154752474294305753081385182031153162387159735470066680565865616765823320763557212436482822073981445975544350949671639955450969030683696531947396159652567351328640204014867062828014254220802646210762885168239547965593488984139542365987113363256065517268404992305109020130423326827036529779759277499084963661095864647816129463757364029636495014330182904015639620629343984470016611159212602173391043000801096092594896313511150563500376345100618076436256539236616501257155811030209632324031229137428579153892836787957259167850075339575784471849862948048343777502282702582195710993554746851067186177258543361284657918777998389172118629331851622706355270673626410224384999829573230231944481027117086762561343849281682976871705540110193257807548518038239174217856849295626598660960153543641577386749933839810861146080960233418951977758525874565010759685500909884948771299676700177404952087861862128838077891243197459446859945257437383416747978168925761710278782936795684051278484500983254349953580374629654826088216907606343136410564625204154251083806873440158948182190467670312447173402358235667951851282627021819961783834780581135618754814544164536972573198006832303899724722722466957254505333202135378680026540252469728858450231982036115780244938462520886658650360132896289556668258397305403542581910473915827301727412267361262430311360875504060986133693185618624513008628696091821404916136187176694786694793244165739065277989473343344945457604366059544533823750199372162873468410808290734525752274401797702512298491747235880200682842040342124009092011960428000952235292453294097420765556061528043776599996158348089597502869818867122861153050420264801043250860870008065455555412396034761167237774239644649960590689969748376515061215206448098102523408473778620010747277275744547749178431413942148616512149536294881012712743289346143045389930212130486595111132787487085442836052182796348447590876424086367638141623864927869886605064646942838952581407787164901772631632839368649001161124243593055038368744356228432037244639305731764992890750807559587574512868004645601928179706583118974398645052594659263482681813995294237716875800231775353738762290011465955221474016651986008540089919000981012527786157438460800718306964892360471861409651043678614085687990686400681041450194936764211948838772926982575791247149679578125686083247038434281592589406186728169607754831193569182082689817161542480176793448964010413135370324836275537428533734550449757662199074740324496563083903912949422713631845473177466758286405307256703163624683121676615431810410961792099159597218911764323265496876964883132451591504395857823888606162824217131749611642024598903295142602971582938399749187410852122936086410471318840034924819050684684825629769261776919575594647121220434502553733954462631601247321081118185292814935635054274558693977356897048427082662163297209403288524905487059967454029243632582715874034899210162482487280256677365878677901088691522106569392570546397651238014603210220227502879949025148426877420741480235842192234508935954296715852195901719982391770307491788101769386228448576041519364481432733539981259262204273452746837032164849872421824957558815518660646217495646405554530705274540335255810808256704861437809503654397374191364810460434444211016730820171489442667462363137085271902375703244017410041243399799370444417124240232666751298423098241435348748387743604453246771510176924078640280046698069579308966598338768528861752388012856267528507302219216541123446522671748004752896995920472617875126080374356156711384747048946592993517744221202756476210944910607820949459335583534880692733545443114636176300438514594826544358228111548107505248980285249664549154911962311310353357306196012259582727300317741008505928476605181226567971780472172995000406120568904232037241490224990385778169444868698060553217809967928649539019102730751462661206886392474908276181270210762476617521345467269547161624206839742744326959802366551393369583267540580944906509038361033151821009969703352901763362821399871183199787455297449168768925799870744999587922426485656910945862613721466063917044083590157202547074806622828418239816536531075921869183813680157738525220450212865202043859714173873275072749285212120658572458079404384913254682037843797654459919100679794907384285656959187080969199466098815504188369137392444306840913621603836712030362118365111473194056404719527290742561676432168099405944529175572633962114084419891480868368860291269702718947686069963258305416630856883210453370604904841531477773864319102349580014214868050057586047176635129729771845602079724233506360413214020089084257725714926106079410402364803546085137115995366115373330826232847927061990957702337965107569628709626480720952044131568185833085751876915971659277719548733193265113083501597415867436019033024191337023124541278067573380384367811817810321839124523266044683682572984663861009849314408053000127782477825310769678345509137815359450544736902684091030177944864145960593861125745883287228601106285907309316631859769794228672611124390407967327647872141017051482647464970384093010603314627298132807005583733371005975190566161758890447420662981952178135306129080010056093818415313484393449695203863493831500531774657179683326161133518867615747011393478389960017997489289504169805298434880349005447156085559095310000580072880677887073603135524923110085367726507153304512461213485864761655211434198902021681193525028588865132668496739939675934734511082350401349946167417948754956564131512215185975973336864455842208578974101086925155234039863069817955949789125404652835407174423950581709653018439942444117657258099799963184214062062833871000273068140520760245498140500316246398974998428142839560353265771058722019542493222694059214575843221037334856953529963563495504150229763561596810439313473259872131368227867317015811224193321049198622216957891261049957584595091449103920944181244427230503785235528170713649125308885790302890418733090187347361353958741154003078212696083166444082151993571833608582819287318445928009273873244142106836916089658056283711115657384394495400045920312237332474096317047634965259366414845220848591711279352688466252619905843090693068690765637747017524454053665157439015813884381452900320619165040472022157104966386193641916735570013080450442047878275874134299503726741770141133262038277825343719820524346108018298000135584666271807202029760018738823072928214551915015783232765941015039684115107723138305516869060564576926111594905969493026397693923946244323822783423327110282813186361641624176800836577506712866655748366050913499848547785646963364233970027562468504929124871111133560027243227234983765474411345243777901547611213269923175764461800011187477319221968287382185806864004448220020396300300659631147224048881175469512781108501919766376330576671831470246081914319337734360953396601579297522049493944785094058481716234231702956035259973686948936459516412151749234627108121507814447341858979346118879461558773767264825257959948444565226621049722577032968439282670332067811629867474466123508328734518291266551303930511835108706340106134449450347107079659453732922016940916391304244866168438819937316342346570299657217397688380422749133939413667119892947110049392738744629272484221944988023957067235795837463662725083599303483895235378193498034726281883312233659197828417837632605974739337437249808855791597116307992920029661575934768333547570593839945781166746287723754203774270471658752093072770312944433918778750655329263019710211826314740330749619380414246136544799886607525399704834346710978451910366989786906739690208395440177029496436820629019667119277660855614124017671603494763626708423737519946803619486429825721717298379999802524587856054570325254471098000373179832196994306274730098646509614817101028578214456733902804998723648241491002308433829331586312643913913929391949050759674161708569374393858380532908055306472620090857275300629772590656873085617806077440335547889060873520967830328308269279681417040367632290036441341977091466212363551835722441151243297957520347158648888250749143822905784137002254550565995469979826541092319458103160325255108578927402519698451247204961504332561206953020431427008112045038015322542428526878361015662696921468016246831072901131638587193186786603907603535535079586626388694742850513228561615410083321564364709487784933160950140356001043272918745734690144657304491163273439362437490798677785823316531537238798249072838399656058281889491626012510769793202324416017815230292592637119470083352868621586808535856875280001247323964377634459995141889670020932580085701212579120802060056116670440512585497757544963824035430443594320580917612214553834860873355438339943154886459197573235780110411087959809170118984246680559211416704359643505519718299157823874056357592306009203794564674849430235310560398569440082290418041251691833021438336303204514114254809093426683327680928471047331541942420665863284892917161551035529589202954927774807148378030439040065118086023783854815483398077808008605213129821213107892320416796204524326396128483345589527388826704551100275690972696057299604960824056326087712022551069944747575796739573131509661461962310824796504196811742942612225533720109782588250163956647362263058117786322773147394356903912715520920202836101768854496925226780705856861145961901000766376469264740232610959587492331059063215966385364161411762335157969325116881369599922440945516525292062073271728026247774946209152651544241921090466571216740398432915951189566085393761101694315548983212135194357576759330404939766630109449816231269792733883944408055290686554736026281726600989926522317581814977744976290755182788349136436774348942129291491733676001656815820488474027389807813303874290070953771014691741585624744519270108290692517578495480567233848525931814474577958815090986165046747222949273979548345218537867225812272708475836356757186352993770521698027649935798497179536775760165807278455921387160305058759808437185952371784920976366497470983539840490609563834010742713885698874607439557158322031216895070080282365873611185185696421670860998906284104207072056382961102466732740885252980737762947484514655118428848534669037669138268062132811681245799973655938605110263635637201134814129063005284552845461008333781978458842495953541039159409789826554404276390717047906405447122365550041717771254059911656554635884634190008466057909692720691474114044614533260109952434464255260590524736137421386915584274279526693556098631684627368223826020995933019999077394972428704191762369510939123094085906299141443534783106033864955669910397054565173674564926082046170935350589911193434016657001652541431327099020005600451875508756239992686439999069860470071556851951338731913944067812438217065328282979620721815208843398772372167510581685219402655245118556446311533553974109895934649429662738151906376327430100437955455900815976932881132386651977212082520664894370156325756328316194421627571268941525606240060104097154830237373517836605130679755018360585114259545667949267422505351846880632508993555847500636020054738818655938972368837069077400156150487844370685234785498385598471348919932554781065096749754628354022406724203544868554207658245692813107743966281275666403084247853880431352087321975935931774105007948746487797551419017747813926470219418129848627296078656266678830011996794815134119859120664981430833456090064144212859827288082927752763262145827086645092488925716183506723784103771943329275061565621330595293069677160964488743909472158487451512937513308949299752891561140499389452599723205125019449415400525213008802955712739706936449965406950531295146016868804753402243032209488075289400095108879103547113303036766447628482845693239934839431516561889737064469392464779778214680163395773754369284969851887969071149196892961787400726771609776158948800113561176346082311928517754027463091255308878407628083606390090466309432135449514485498604708872927400628227881932895892874751025292201271905760055280903659670389824260441254859950904239515460884973430300309331813699777910015869233041120482580019383056839632049484716507664201288382438362953155023453053098826053918168105501371527823438870226402490715950558182302113361975198289280510226066390006518255062703515519632999292358120894799224199508469724478675367459073821818692738329903558163791150714677946215394017552374129983390256761492446407205373634046214864703613661835734256085359285574456368743607690359712246920661695275059033413493313458963542661441785720830941215105829086397287190349417720439790434529926910741965315449028096237656723704812509643457598033046894225715602501674825816008621118181159366779422603019793662461180316824415314386894021188593380722758535987628360198752073258376058284760483811394043640917709780726398254267766118730011511889944491168672880565328750738051236157165857506978033784895257867774038955721695694131023011392142342331574462989572446121796047963638910967327778584693233671695511874916758515288077243524538899191071087964721048145834138725158089062372172396596256243879625052252061276409080315509227585205584205219925812926657112755421012573728483923496841592912753173944653792955463931508325492974124445240055522487754609104512625784794836603321234829353992696837719911605284667789256567867670722242764813435900533541231131118572023981924348859235270088977871410711051765144117930000450661304970932003406598515613616815861570873359487951703337669082137683128812155051206943545499242630172349365114907980059374490469962259461001949157719351785509658830082720768057584146244599138949126210494244508394866771762618722834912702086669008834482898190412614114366662491455764843176040638293971772933605369512831882200778750703976668940446857780856979960789985516250465008511250161305268816201468934570263227621322558186450926799624671140656346991581891524954110293040061416908217224566699689997603811554606107977148404541714703513026725619333295168431387324724643325412273365697763856386207628733901618860984638918965797853226778392834775068992839789660938467928489858573435209926906192089629496097089773862641639574185388338501390585096249225671760746654973727307030345060283246752789537501820746651489699251762316193193215620144360345803938275976297807888069936645610053746203980818872082847451239961116631704200461250823294504770371594780028428623685001741926433555601055432435469325843190528075676586313829488766726238171659368579457032460221003070583436193839773044936800688388654909860689690140349875466254380080200754790644050075630767307425968518673707179227907668318088794061139913074764678608925568838415139563657792438073118028883203945414938605126268000300268823799159732729239995275927785850604229375981379244957177629994872715036932863410718336546309240197097213373757568540354748770316003660287867423878342309872444287370396319308801840887165896419550344808322691691269330615600749100871577102731204804212770011727609510131995749438544137637685042326264231911103656721174961981259297558197099230146878131562537014396807501790935009045165963751102486396758957721300632288535425745296760122769396538506060426696411863654561542768477200960950128677916735780432773700299919647504722165792301893881792140100321627567634848259850405307962717994646075714157101288369046758575633821887701328942155383272444613084665352397245742879585359815070722643415466167710542296579202659814935140755225962003626630586634464840789364588956646937610222963506632101495118962381870074353825393786333514004457869990234566080585197009864181488607412869760469049650101795012766269869043269154120095291539926583667003742655630358824706199032314179009503613387921519519182298421631439932735253689975601069415620974884768096115289041171865690698883416931231291295772953768578540561156944897345973754552222550782039719479305491405808860801018745179686400385252947026300898601225255339630939694861604126385422491079050853498514257724471042096632145501982522452485923114612160154599779619469955847371443898739234996089365726066989825456236713189566373906853158390843610990400114707920414864143272603860040886856367475244741698860654402998848687561302605304276378428249523946509765173641241990027699064036043361011056498442766483239710189205979315618011546011442323104583046725961132270270778526289448476693809733899253964325557960198253682732085900414440992347663541996084974626382378600928485984766940703015078548366956918051212340107302878919700946040950775702788365386662994620563462567173552949147761763356741793231670779787594834201643450546064670245750009402013654050557487593938723235249468741354503667723557552865294954714506571776311136212941108843163634464079795777272460705334155181751353587064692716248451598143403273399348387128650824558568763404364338834743983331454656720219050336084876037296620324950072140560515603906569856094488367466509868329009802118654409145676925047520491442842345432340527059938861895136325526346979480155621970286898101655321018329687105894223011206576375953921094880924721611839127966703532084455829453752786126408781770881284711099238221730385320291213251676351351283170048395968054854788081263434214618398514062810673311102904477391412456889259796678315138269897802006153434418183397390148099829543166361328707146942174786882253526994844457826867208427440590419223681675866676578810104734369583371186715530131262653216996459300133091946955556172016771296406223778594052664354860415767727094184311473535348469302049178721354013376626057606076776867861139904238105177653218482518027244211068900722047911180822759291151593981751127728153870426257896373801543676399915535200678299026444885025835897655919039481878333420332844802502741625402063093991937955221337224896707644169091745370243440350644135673082846664953735675914766459494604932480864949679026947802934515772754370216349700794583662321670981867122299055308004480373357023648459024949854281921110531499460750812251467538725564333361176759442946618633958097057076065192562800759879333316763678849730671032854987710166409262482018942745241859075813297095906082762634040549979074201724108964295226404276737186757893565138981341276921933872605145271356028404990208525559740860010364520258532120638342971780001403949416625690774747510959786173644354543800829901508727743708721746178539578076910223914513776388246476771251160021213633185591695872801726071429737451974485082098295108348507064069753791963079102998748238157071215391614447704686743249273334202293325405793305346834178081302685099686215204094608054948323004573379675714772907550110818432563070817745317382249730129978045166375412756830239435272183179293045123389622067287904027032566617433737096510383653193401820701750475163806963609177961466652972422828997394929830987419368977998140147409088235661400709428680202524504258714347700653803469086371194496364539990659890628005006113209521450880423142606067718207894637816742658092023445576373761766812732630552618164048415876776149129217630950288961800337053061481756180627077284574543054749063609414052659512854152700021462132022633886580907369865943711391072742887438770929641460381908407868805285639277184526264900160657307516793456967687631432964556247290867905392503066709073479576054807347033798195291114835373399222719756138849089334893572833919234380712777841960486909566342866613008145513236621066487298087207892811600910391802222844946083628995568065832489394841899789538558367347440019114923507367456496946621775272422455121835173821302525003189341189583457790007151763334173970508729671049304367533328316317377653074334641345544157071438848360116420336525350709724710719996687973441145665128173441567790796493492308807394820155430248211483036045324362613698310028078206050818842521297509368431893972197135649902523493079645345076719021292735143593997958951683110512863003820083331462750156730584344185079999561106622782846848278481973234002346745536558498561855928611796709135527072873826780743249450684603498647192374317594560956063702594300991059831337144887178037269347011210385303466775848520429253954992833965779432207655445106012270367991884422823964294757070671890515185009730174970162450400145011169856503635092081915942463130375351947280254941958387498552290064730494661378623202412272905317473488120436489758351412754507914784023800250141130479110867025887219824051305376881935593922838243216307407441124573740831620733955054006419977435355956656931896295473912592170136540423274685784563828198415315980660105007356949923730294425976605140630237821785344396274614827782748327626228826296654836674233359465945694617533822802400975682685476233894374991125447213379112320637395780168359304707887283940330631997976355177183883552697560699615128469760003844835845796404185525714456861993822413428576445786947746650520292183390042942557142800042623734205809373050748708210956582647103326526817922126912463613854312450136002765116755180727115389539051098634466790872147212854346534314273659331689496343123597772792325999402340384433560633656480432942321480627123955309256525265113970662229995896990123065165885710924772588629228467510890101317062826880432176206720455095469184887782693017401855908930833653686095821983799034050504536372758553156972056295872794490323655655114735650728102856602908543787628753161653012878604568867832814708482296768553542374719413574741053931869055956458553970337440722848460997139686897228870928894305167734874023447498963139721827168883441454047467910762186046755492671365673009220158769838847638786149933405495863935247654035699036297445535878764244866925150327157600901677846924651940552501347252225675648355937821016566489998999538175566398407155311537012785992357657989358805048061478115711981049948616375761516541151194361221163900960985142711600066166191012331580510082086279880000558252655841579659376463808957211818302393697117731514137873410312036271648027714814370346918059605317276577842706221696100370571620282642041548909669025595555249504398145162451602285515862819938736857824655476075287769971997640992295383775877975937190335833719759821956694946602516600540998295754379527378788801302294901974328256836838117790484261610223059537461688208508532815135863675812887868794809039470310515973995466699806781754504819492297251563070910898403345830161547087835911078310717156222582639997070078157541383388980493014722973589935257202670611510482470907872911705160081129431211153236073315073843010868602818454251772470651415524991182347926569950213529394684383854806632036543482665026976481814289472313908271567585100777912882854842801790386044120754251361949169489002533119002287806928848835890302011852754490878645578557719440757778776967218272406949113445275408219247374494030953383051964951427817688403410549966242906409040997555913404970671044726031971012129044172032490687400904915910625519612204340932627090771329963508194960386953699290180838503671849157211680527263588067461718352919064338869957882728105457967699010740482853292990637241835868984114870250296124441310629902508507654689341833108937257042605996833641641591834661597316829579716707384060050761066540297324446925482919676357312366226963459650291746152929976720934306505890184869345661211614457284455099712599537926067119322135299859713735955513406689156587788955009199878199640882343178817570801254904388819181287915316283747249812411538754289441067156277846914955447166296182513303654559184883222403665049374974406117340056910188947663291055909053023330634910435349327796269445114856448636341016651912955875228679008593622703688006034168111328572129367409914765421018434057601444798875504274179613411935037857038036776586606289509036036431827872118951153429258307002444792624073462725772299131984033653970391194487640216227323630752274145353456444644188647046082705613843412678922154506861245991282567986752947018905616284202421118725991976477028973852023770230335044406059834479207920233940612990439274155493396342180882133996428150772436078791723750144648242695546033241359679494109006571699048336047294434875209553042734722202927374113985364518094643256194274834308636249120359707156428211417155190147949280665324812979227827206132724309718742105880184590261413953131792873189621558532188350147554160182217971939003733945556992838323120000008257536206813266691510978524596897239242252709558403935072956727124044840122130433517973094357011625828670735580950115456286429457260647359233083662746305580149683301467209637097000912429224187839959418821153363169526289322599268993192951009558204322399076129207824976855408219315949771912870279006056934432845295015679605666960424846200606263529066325877293039120995993215320882404715379568423864071880634902147908962899138341307159181634194752710832864378956909416691999550574268907269568287625284815267336156898658666624610877293782489028629220990893848734291325205628328987165389408256084271179580245903471858803017163611276726413079948957750436145129433234928635780289683517967040849492701515553225560852521347290673789568037311020609039313645927681698849607156042365481957265435086360852515097979515632540824275435260219665752773302916331783196211940901914216221067772687557237211082007413215200116690354190682059129665434493465143515070168571555219888820563047340081566364592828296966745145450162348066811011760650541703108973377251859888516220699741313612249390022693153343965207137818589698488070516447276679761794933499956289623374972440694036365662625914263634948558153085308487901279600496891300835107473534014560352580555065084505736701860340159995537685581831257559901078711347905772598086951658494702846911919988711610160022622202602926763888135469885114625733639600744974910240792729152616452305712837235222821260096514508105159378652237882052134448856509020185676317490745042373180160603820595702732797804842429686482359451384319923477676620189948217761411611132399242295325054120716014221181555996157081330065915058389594846688319200794439134676674720478907193269413134677417128728803635175385572757528919618949994864091298429302680346057447816730722078970380371323830721073942953509722632895558333201619611121077510607281651313818224782504658933169467351449276996837125726289505855381086672252653208894034517039781884836593614743457104442958188710604363955289836811261264557154689252315918746042222899033422324477035329898659894773536020326527910055515260914768142066263220248862887548503939001250588816620957611381912790094783034093145845822497153429768546113103395788455524193906906226491489625551063503710211650540812152268580931043996021863928690377380578387328520355668245763493183308544137862123976971862605822493038685563267932273146654568099030350558939965756208407332302442255325962960091401055705237280157826968929491619907342858941963615778355991967434321031412131189628416066359255804918346083993548781892167743660951558422829460306948976572444512725435672839920782680407811833946078227176389638486940240823085488498309597578582801656090589506939809118269546113453163879883330962352318964829593048703757009329027191673386272506120816042441231301850609986292538113239213495100531324699850546079124146490294100121056856508341948517624563312440558479537944249789660126283014577951541492764067933069055885569343108641372638359636420071572840736804805860873474429780480624256692090123652554385515819243769592876881951045069340410453355594738414232492678990234412179945195005150689541893829419243894505861395124187193188127374887361857159961767385819550983680507308810618956807048548078824927125327246626944981153348683643726248975790145112861387640188326562888187832886025886070378169712894129253226349867343761985224594696274369160116166254253406850727321406186149841440282987413426184577371514983931971123869894059126536534555718327656171444065352502395423287645443484062921348192168522626193402723985708771007969493543257247727291046703999527331650933466432004880418702236454388782941062564114510394301672762503988710947814918108344934840214619672842935187666855172732521025025795710576709135694628234038917184347118355785064532072303697953889646994842014304064145888088305638249209039657005975358739329728130849072036003538553872067514734869552451251550711717548687026227604112655975084834538037297946514173374399409881283345257545295074090941944508297545670483921424376772805188253933659978669684618309560534512102148006944098880204038048544542242933813163231180344721798511653269081312665912023620693277458878912379797548803357455638169224897896403544252487209478958240701125308234693603535382912760112647514845417322171403327333947480508637531350535429182261360586713597092437616214435279783478310532110142920301963495468197030201843395177533426849344209187398927455294600586902078515279994994571801868648380442550328731367454903230897105488740921715263933827019811979929782769653525609660245562108735376063306997954482921863061940518921454230448056347994742009756984784301115070247641047857608718835106562925151360820387247599694108579307186114914341481161574701364634460992524278646910419117058241658217899885310914316738620739076005989354750228702474840776101949246029611607822123799808723066124537453827186659922145099296431714902206712102907633839665568972471896480489717559832660971474134624695254071290385798719565177953345641736515642103972576138218062633721410136593444224005717458107736352026223860876728710019679554083419753725293180060931598831700254462385781932659230177627430048302254037192444530535204026628681546828758496917866748542040347740767795271119616086375659239581820225445773233783304834863240395652451623230853985358002617688090136046286281948085353088349148670915676843467217412750282480338705669904548543720081059104331294848626344514427915962858113916530035214908019964411793734285511901115740875754355658287227142783873123791892138640777761584554846719709445513300971654446816316738616948565886258942719687751331086617666236675488164479346318622277997762105447765924938919411891206303360544398993819246165218624257657074253769260467467528356805692336203533375336752259416384821815271658339138613192931049522747236663035093500623983243493815524350172838939560994803176558951040593288206337834360430863819022598902639081368611656334627271161225130679931781537148027684571779632177904770106210856792486110784097059817415187496985428439341798384165916470384567895980788243098077823982883279520333507032605810240209930836950935179744212504692213139147572760410156481838970433752238612943412546523916473282155831140911432777035869985877047945819442077499480749598332713299185681359212484466817578937972293441129888006962554896075927189637641825708861941957528508299201171417422011514862188248223712384820625799522336874847091252998185273201973961753008044193625841328697663571892562044591603500724683973035716669143786222866887519574065756050607423382096524608705692268594742814746304927106242420245031758949761899556049567864767043858612960125346507650750224158540274852841422340353125324364171952899640480180564679793605274846290994587126693405436310734056417061525984951363351580632214310055827505502288477827436956155141735503810419910465509716597370844101266258297844259699960279490964973662965530630739500479120742964661867121365919268725147580290376393983277723689545466213594602199989624804148770430654571625350065445799639758037021905262402442221260421509321398999162272010416597792766665129241047104848249387873636234967897551194098218893387712946387915598137708159124324683848466827113254636084465479551028778500135096196525413053916971142580160161028560564306649514820615296593979377195062513021674177123715118451924103503390458575294008244736734456857117704093810878835629127375400253769514817142616696149370418787998838905642474303021123009842935950727330264956648664383558929847636833038704434683091253426872885087256362740852224851343674203520795548692746684923647138521661659390847725587336427434025952195610455573671617563642478245767651829429722219857655645371188500228882083286314560508673442180735729223834293866046444483690503003203017933297751202360173575926744510067841616354219054106857602666137737950458872133106677843798766115642286202407918233405300483321666697569589686325490723616995692548505673448309957524618052148118955712182676275923053698901829298043654713456093831128307303387423185876413260445886698933302494052581371411632017886586295481457347323918381181335684709065504776067105913932960035594496273566232264242942368938983928138087283892224088090688689778406501820223741591225391479758466868355129538971553741384298752950031817183639968938325966520108038783698886855041472424318533251467354967261216160771452238954863111345253707666853227645397941781574912972030035879023142773411646187809107573470131876755281632197826480894776949581653831644353472305313622340112154984679784037127908935123365782600541993111039921989318834039659651185112548595185802675727262354424305584654788891003333166800581469978660873900751348996236378647543931673982483116998884487815630371842183398434140413737900725249780982267285141173885223899497149882443555967261605844388309543824960898958046383992960991365780821162669422171201974557038781902939275149637352256995765233907551182011741541839840056246913149332873546212147515865629351479168678087558131306343197685753784477174059061614961996078139738490909389682519626004410853817231247018109462612943032753003509374034357947145507318015328876936939895736863944036876550851692097509821906063869648927035360861994632374159274825062363695406378190727922909446801771384349536790218638769124171982165601852064732952034300229823207082053489869721507411023654016269751417573405288611709048683462589841226713916880949415798664664264915490106106698948221295013110611301320285329343101784667216139910770239663457184286173445800265630464189130443247232777510288920779848893764857069555055981783480277929190739349115279033479439996314075629903183195879698151009012629718091289690925448061516778649500800980952951643809802354864840213441134557232148051384947637452266578434637206233369146756719033685252569787206802880423626868155755672976462806360268151647251673546525253796469408219344025655549598710563612171807888537891116733503963065835279388254058291987098181716773772949589884526229241836677605155237337747007823678350674717289918421250605622950050825031378712592779925801033975862674023652455767318430602498552390082974342861898867002229602535509360645968598075209462470055250077597197754294065964690590217307409240386911182498954443290311494477476798382514281090073870476963247044328855358692119555279150925221444703161927712300504621694217473063909479367669048765322069299833765136562423088151008981112970176894192074123578834421077865996983821279655981726905879648861760085075294866103615650899548832322896920299287390805303563122749400083068502848976749573422689471798703559690887922547654192949313750732335831745556641843666346809828752456461056723924441950011852218681259122393397117330260585837113522077170721798351860411427063719361993740945055715895547328910412292415886801676861148222181115767825008285207048869549585480367382245060659133268807132561708714529373075457322930192502693453143311236417238262853212792219487310032451518840913578577477685236141891513647434877847356428798386332271713838927085772827659144450967423460750489306289517043807007228405549504335679913269805645861916945013513248731134967551994323323454347279458523201612992269130172232685779059094768855590351784239190646812386683553903296207264015088439823397584452415336370762259252119505258553527197420326524172470363883880730400937682420435404904531594430315515467663822834653658384748424209044730914914709336743559455066995358051563903499813903858964255504339265824930780563288587494302461161461326329997413754614681041689640137356039793315496573562126174752007116000494935626188647794792798713409869911780590285570211216766945628975044474943662925572653114497494078194885802100434547753422756157301920815027370606410612700171926813299470871274826748809547117700255312052081916048995647836503330876975355087982270393153906018021637315613791754953469527107387384662170316453514574162900244191684022729592197880208849513632001361687282568522355701456746554585668570247461680352654723229180402056378804351119626071301462077196632726248509577728178250264342735126877865460284050410443621578582361462152233875782964174511030063303962308604195264116743850746396130373360217539642710721859831544478717317626505955673913640937968646921802098300817990225098090609464099446707935975497766528321174168551086517985205796757828588048377151983040976094741307607932435004564671363903542752931165048468922991493490490893451269884805167876683810860898865395691451243731701585323952153911673447799261850304377199273431212696983412763608982001040266648802726292173792128523307306047426267919422851153859517861548888179182522781384764706377717085729782656381401514251433350476066120970470103896862269393650414670507674914647580744490241787433636242868859648039950908754247545742352378589865669834968152749743664323727052192175185313090519215759749671430267447462802617171032262270311319894655254562186380961432862491991486966964851536670558141312507507492210852130054713242958509212543545408602409181127349311962172143357428867401624779707263265444535151685252154045180092050279016560369475602499813985573652036428441494678131401632436899223041849574208138926948454056098342097621062091912259622738635289110075438439779784095857961059959856078934748548704136387188551138805932466692334139987495042473565555875148982948840694967177714036441921296782201501218608594876276474637850820124870010574530494622453977621173425942751839070313422650909671339406329708391368988609631517290534507359714520562656064158593550907753868746937862627605563336195822171694655101454244057949075224478061321064036035820368703850757865194005036491643006359708208979931616207686843750616898934878609854503250726227934461380318809455173221632762790670889086916802468808330995163557344987500584044744332197542953549585887163099427668011296538175730296895713404402795305741660903696252218400170845336785578169474978603882682711423696385815201539095363759028188031549152754757435051567376385903433586726128588322689073313204720051266488087675956467612560332324635110796411496889206007692956186955805801402661469085376728968374821665459669100464896277731360973103958208745409399729252143295143773158321180674233975854833831620583903942214933587547275177979056050171226486758098780980248367981189691581921597243663869292271497436484058108416328626998444924366851485009773202582353478115667024491012731663748743742030095507636069256701708872442239026677617872264104955143488109754212067650642163500761079954222113612661659052129188544884016656510715643962465136203340325070417047447111587227961459842759417876829514795711380734613381186612893352229264398571910863120113382461046343076982220899255467108343309751790879179059760943264470981281638473865393598044210375793756129464268463315033011070879012845343452070216691265888505796644992069576011216627354958430658679131443044788974754926379642641559679734733830981719369030006984289165823088138993226877151852592083256707454921988266118114962457880806496585106201866630995666979377126755119585546489930633962629935298021346628848972244655706865400924571136411341056674738238197925831208456140084407807819302077922805860276803807340074401464318007302400560989382494499962924027830872705256477086732984505518937874836095911467633802274680117822745883479237231545112413008543686537229500809156820128474020584096610172221453667497365932727242240042665088252537189158324258965712732426134877166661045501253364491896306087611221404957523518205095340482417714869956529698978652233874240940532628539881859923216979658913335770111972202815474353941685819959122202026805461246087884283301899441755958340206471320692079195135484422413207018328297939624907898624875565165776567077838886244604004752740493646927670809862806348325393957259424877274241413121913491952753524304855305306104586735455847193577622273531059591422389549750456902082995180068026539382263534914201039775878558581739326038208862509609210441671082932466468514642147200923380547069268724409484699194297818988141419868503734378555467523744662626498922242606773042589548535331451134049162344719614576787870938047333650530696418080977333028683139266496971116737909520698437881129429402754640409862816863860945035313629459514127649487489349975146351874331546315398211154185143323625884892343946869262897464904261231641485060891300048139523222557668942232997743483870698161737654379943512924025628784313535947907537272661685434395875237585605783647691693883309423515500671209487897223124963186443879365768293188739612893839031775569955337151591402568655947977853792026591794604765288767813968673242435989456647624202822333533992431130238616874268436947599623266891473912945682603004098500994655885519612858212867012916241324742502437815209685116085877832761873409928825342407075940685440790067694496210153682160299067353398654268426827598958163397019015079196125445792106036589942248670237429803459390259592178268144972739313623523553547147522623710192254133707034193104867005899251862786330429767427518479746129606205896728661493267423444899380715071559117831491306362047695801318642645879886947586584874846484078371051159176731659898858979768414247352309308017950596856281994073930219427918243617887822568610647660549616115224118592409418833195806347478400884971019717638201183428152402230956588156656690120864684261260266320195250261916499876268820649462902324706856056990010847549666669140970115990068129305073102228366017905972351044555225750544314248561553608341361565587620299689767085495889457446774063443680115758719441870335266877051808094381447424506618961539098078538980309975176458147606384220697056347366671479095201419997418158897563714178440557074141481461817267626849056198875210023322390672575218262005893875137830771673956330862764842806656480218924536370217213319038004787756765382063448050956215846831820563810283311091758813490126247975289462348454544903414239005358386886069664891707147863478351798508326669915021064312802296970545369567941979636919995722930081073577118922377502082935321868432056375972031020004419639576244969554884417815649755741258751813083594867055549114945980850562170898714768459926269717175613525141753809639875373612470556667165802131866318389628611334529554845989866085805179242069425447956582715563468078621994341005777317498411240581681917440587140869947633481957545790985027550259011478570114114416924536828291151449907755993328513553119773022167005916890435560691013035126413192956593104678271482318999050622183322464066736487128751056543731203442487256878880295718454131422535170130280254062210801248422276216016183690023504684302701484156566572996580214532381087294027438000324046718410854500337611450746209949007315366818083471707566235758762832560239870940082336619141129017096406598171503115340719600887885819440893664710933623994517317815217277923915889819566081031709391844274761377714357182661799192448356839260508616896471078185246954285593050860192815209073255857454942042441029937249298171608705115191777953419118793423168493616188996614238509146894483581253075393875228435814564252855511624008459854788209296888361766214900588707098956902323915610611067352608222054108139858592680953002515030323958090890476354384704948896951849339697184327539435811038750807431762674590875781074821051285639987402952307110564804512694126088989280368882048546134422811034475855653993576045311370578598887999671674767165213562467459529905366422774387284896112099339173579722413845807638758293164562192690099950845109509501244777371690227548732999186483278916384633485856569794509948752818311889220977060780330200273346813214859165917028390820876565274318363144968264002279924307161790311947216453561177761038379535938389709260288667092607758894475741361606690293908107980706303823037372713464965416376809655896955776976257011351657247956114067235733680555306453316086296209667489321505365580457957391618727835209652363623023660565290794167180257016052803796032137866056054205940825156915291422130193893977280943216884262000012283770411355204025685118890798292319890783742076385863566078642157533999866738432089318105786052677477335882469939250387247066663175885278055422755074355968573802554783978778213548193506981519596406269040651970590438761917975293587175389521827327309078817704392565443090815980177166513991693799768973791029519084525251324997226857802604973419571419143109117490118128322617275168827910980043180430511944132289496704876017487170437307757242576182297217333693221634278172886042193528567098798975315225461576333811275156976092279260215714283423823840327849738851387572334980281319483919982097120581711456354557075777408743951912588528960054328897703008693801478354558575148576457346105065366722891138917622392292515456779081375807277504331344635888440555591603347905620809209478054313202235351228963072840120491153207489549300063851940427351479291495176357652379156708880053233217517199611876768186586584248591782341594327235943799681808571776242235099488647006750749693943917670525058476297853982059199661144772181957367464454929007468539161010481652675920105160766816309018395064233928887459599861890130249401744357300143993345976668402809890736859021845454128513874735737669671989106099444298660486414712001922230715159810181698217356393492180359186763746998687887298641111746944073715714567188018778541164134380059581996545486667567995002437416036922937083736002946987527989043263252235716742815395204179200504335000730756633276844444959663195370744815081297169881035266388205744317486901455703076339328480803663582998016643055011973754665409460399709434764743036762145242212658170718206445687520795283916808938937159501050348206519103309390644974865348587711612984458746108546691712597693347185459221829682959576653193730041849705869800335262594736189730971093246398438624218898447389691838479946389860773398417609942087857469937593308668041846057429628817063043064412267044325391254813172783825727624899173716958213550198129569152366072764924912998584003735145618095915101254477066504437157488333238544896880811992483857680123327980173502558717131397374903455753967879854271096631401039498978461028251016069162203433383626025986475123967410994808699240455766806578590537596070900906258319874376354218209922526966302351815492179051042160574138789073881560195925178035115165893885588674977538466428613080438845534997867034887728424066207746665894626862039059101177751296299810315737081673624876123688974815253447051169422175628900851752282991416072624750925599551006269453925744634820229127390912095156570233955781335642513956288447692159890906315101231485306681649461003935280806893180385079240323989484134398657494564137517981750096268510751663977054047821359497366374778616954463588401132594063697352537189289008597242017869480548300660618220149017659927178922195438015410988082724524118340679448506531733776091441792265524591357633268743995094856220955455771318552180350572182467495868866387898466182755178750989650374312547476179233454496442721974455629169692899541353657584372701409823500790445682090499651802280817297089374412794859918692774892965417950139391307144667931194352029568677663316112845302554443205537059718437992343185980748038033906503517532103601870287735733601875695351940932740531941877663100073610924118784410841773368773657903169871449374263423530445332896914782419269855271283567885271496784646094315025932684854936967488922021615231252295888446665821836490790271111628637630194922125271655540703475547526120471142323387314689816420203383508519167972701629468676456852804063258683649262310157795465210245560276594394290916035898377625366749287193275323794101602530111695936615497163640001876987928063756179634583697083512922633829590218993672977157868081026208530166885095282300956410224592231813089183212019234211623378444223390768770459980063038310647707458156681177425704891575442939667372784163721910536176273043222877016312912086351491311761076518046164293957806843267018510898975692104433758311920474879221441553768522664126261115625171642023957888894050805541342720573082045817368271742558789905207126532775576112849096192509034500023233366714915614413374286468273372994625085531417092385101189911533223672252396473281426803198303530143324254825983280799431726014694943441095664952927140701135122733910284063490452270893917836354928816233318126813510414989366402778523375855053386096935849082200509788809371880236431059169998195591648220775288651211800398782514012852141703001942323590194583100112423774752631638698343344668074640610676336854572953173342580966475339968161014311423267776245107129868002446644298306128870480336852862468192498169412693728821903922066244387812888245405976209886215930729059611138065058313443830658660004866851353375115386800801028218094855133818931874354576058296041298459493614336599101616650369559700405159546062496347352230276727889855043153897947401741789183394887738478767280083216830139355186054602059971483336099747247331808153866213788687367261017377302783644200817097581600969749776481665457737293260718159749302741605808073805528425795057740373927965967610323456450703535541548416909898689750498748954499160886202063711338821361136484611528885496258383696759889520412738064705331179504106134642283579177008411590764987868098427682083989307479553281771056751351051669167593158790407148632259146182260528885786579431618111148407255807465082696334744655465744226385062139017115719778482109240479116696308693633499865905925179397727471652055927742359622340121161796233237525232794987471958636588620563290992426244116725357664916577167115805983424388780338227282039975181358877093684723521446779881535130989935767927365928157361509069499362231292335384731546121410048815094123611623387494636363404020141455872687674197971394855805502467415118469939685566178775655126763094927709313896090443952490627900425859638820029211565760357840106734769796414046314764257807927459076989403120296390030234008153143579936173415382380271560696303446891720647258990388120170420538028992755502275245866986593570236509931908332919172882946137076161882838005958486716232933040853846765564694642248717174453102566711532761845147274299948976295972435361185148693743931310857404277156677732019040037983226601580861790806683091330091196767088723027568882575971058245147768249092742900996963717843019585490818800521530496971538532825761428095666089952289359008904853284055139311682059345570830019578894188337474242745952616629014429634756582825102813986627479143360430474363478589528600008730361846434156117469638325008326325604847828509377356786775362444150966293301729688907058113186936469397018488876054831557105489247748455577404207803433043589615979232370715484317080997596091033741384327010475227602264925180495412215717381829034657604068377238735513071305743992199776460800570403005405909151602872706316404987609986998702580775445718763782524275093599907713246856724941618439559024555606099979479092393857030499587168086266599738932214035992909456572043807924264735995802652545018683381901246643296305041310406832029625181240912045682771898926738377296097679751745941344503014588259375402497362810477758320134541729986516311626733968734264265430353384012430243989180747942535798333377204844958902330040586927121609770603979347192250644826387699313130595080665440658248254257176030910174929367989446821487082041754179824480227079848564301965996589534613261762566383516394245939614696544657129210483060818430849921391908895357976641766275891256058597275345581875176413957922818159160806993605763851741641352733674524469723020677924066168082365274193531621139480428354933583464344616798031030987774503749703977886635611337528156725856942534430545988974847056830951494665609944153493639763928361448876987156427598148050185998762351300439646575336727371741089957048697892952042011457474652552537805801339483181911675140928332966079334403888355648665846946033663980456958262617218384312507469710374994423896335933374551388563154681264830091033453581737188209426578321050393874600555471175292234376045870241106217898202722242872552844403086071979397531339938951375938471536488286774504623908987565079799397706949817296904746453301680748488111659883760568113911892490774988932559452679531086132433210396376485039698946656249873491851408927373470794999590401200226375266693618571642337205278470441116013633635536953622525756927080295170357962838129735538595704263431024468209110844861356113175742888869576758305929093168815068473009674971743868811743430781538787665703624595003826978918000017625670319303691452734704612175729939043062328517421368843332267776160826550825430102283585288877366613708142968551686642321058728744782739344216007907886094254932834438844901220118347429284936455828000981730921658163754853248544940684776095455353209914219575864334909015654824562744566502921497969614654114702560376127013614457062643767410287789373551014368100893949580628530999993892519669808815614366923718719331326553774615259583321375957657001474787072043098089764304087724089573439192622863024470111389542691841456113488555423207666005440059055969716356800229323590329207783871895467197226643775003320627337531276783049478614644481630781215606194171900710840964685046984408696941990740407587439925943375301031839797237275348844170194496583352390751708476323700896805068538880382567637207999542901890056532633584033708406728611986481755556019601678681804763258222959183797374698030627475031557561965510039813085365933030850783895893221793043928170044057111481829086393111778200389519498023313662166412969604719478113939085872681189928506056748429971158092631029582639852694912427302627759605869922088353324004812354941050964729350094260509988778094601576432015552348517693185463001131010092631087770527524412289729209276328835484007788146078303277410378291532665115221341867686969193826015288997225729252132343836907547764935409466083989407809922220659317651854211772887467666500895357577903979307055898613165814753152808896819810669957268323288174466165963612677569877980851185335201894913449874440507678934938425517887203179825942237669738119637921056666210523423673960878862662383440256791083933909408584237340771068142345640866989253934221814692495754507962740792419845474471404293874843584178444780149854850814308536834528404375505255672977267797841370353627198964158569104357176841793729954334519534311469851025755547705364850808164153726008808743225564533911440391505427899308613296471988834710965481296641047839573430232884022230653544289516825918788420061210526553894141020022700762426604338253938597815302835950303789606239760439213398243663873559937945517225021622618610273813950510923376909648761118762373464560091406932577074718628859534704261192078818666358665930647470372953172740812412433775792721695394025234708859810943903717580561535403644309271861149909550295445354879063129267297108042309038460341206857052419247169168806942766887843853168834051371444446028290932902158379466704516223392879050150037855356676959097508643202111822853445138784482251206411471675876537294001675714623955148376411376149289096079220238562421392666861821915356451605646930614535442700533318931646787737642486109498938163776649782108667797531620560563755974603456978311380601504278418962354150759615805661832381444722224841801224126955263340112089970995675919961636561667953940826933416241751136932913092480259111355544567771164392096308864171663572634462950851962845667846777730859123050021284028489562295980067697509682644907544457275520128244237277603248484666732444239916670126743436660010394803802735265745591819262643981370196330125361458074076311629826913440048881665302351603385601163843027902997192538748683992476558257647730432091417775181742612012747925073721603821027795422198707708095648004978611590121898485363869467153707961247628995680981252920606888110569419568977252484348551972900126259085873704081234500284552051506128931758424086976692192883225547497684324673902023814027415470541374997777674905447936621122486045372464309335309774741207492130568933905409326852198128839077901781362713540234598554454884480032308052317513659002894457085338302805480796660483840103540259735808352306291381338247645080406234012908475876128998284298685567593592577037158558335225918300364616994586027392961457382356144763643368290175078897424101645348069755194153988779298359771389707289816521330601051250843663907434000110040243427220774758058335681401940121302728095566965910462531942698410248309597577020738447917211179311044541998558328822988775066612081253191429782681455445733313849341122908807160349815170807824556939982587150000194153737414978104455487957071578734059611813483610454954110208291477732761875788630728856463603732397664548785378211681972471110639329359117687869172365575022935573577065790985742301160516991618200858347665931808346243426186090711388545174826444563232509449349649692389014239200263909387075434117241959035138735365308971098491976650552457755866278323572894391096598696621123885924052940081373098653873739202731457684916659426533686901817904808906921775415694784865485904303282394223630752067997072181010787290382802096337367292749527245473396538941144284755196397300122926213553038358929734082221916417704186110365379731377137172724427149200194432583864714369316736087097107224548182831198372255090624355235119720431390531393297670848191880332368750782568668526140324653377093648692425383459304814269768457253894626453702709341852431137443102449002269705762117654158518806960628660458098830822261516267663152077639467409563602264015130198458821609865644221095315622608400267197755345925793006772991925275301242984220229471276387514504498059725054509917513936985715461139220723085801823130018907019354498554757722761739291442881430615463521969158203718475058373182050988260418461187152384287403953244347602526756997833132571970286145466282488791825647736454800100931854637643187889574381913912981498067270229221837514499251278022636690656658564456921429735661447714744098520875852551744135660447965853060434969623472378670544658700291091494264652388100707137496538793611844987173093374785548136881295228415494575403869082210941511889651916481891280200072759960578005418287404560078656319697882757623082661357396862417741551056921012624862834957083701842758060456389219558843666176938393380876096477363887138959640525531319058278160712958396534276766235899678371607964319260321498102577426663828834896546813879020777191942352762294128988554594413310204488070564120876636596138966128863966223843178112881088212440176709745033078674116201704061145060092398267734559388163726402770682428193627587323111406275718718263356177656882433215023152526984665246130778638834230523728441205080360128519124128607858415399088262893831362589886382282240784950056423948873669475865611605679777304133357515237810223199526279584442915519616962998592940912538185961631788878687485529760866316666557878229356812133975706525474159259588463530874166734008871815937755792566530048884496936042304827463203280234372093749496201748697180356104309715329769850294963363519425131581458055619403958703053826482129400891443566061488586185007422961488201906780281384554210009834461108472407009223028495123392491031393074039780282282705107160801621819465028424668509545653218499778196361608569378375994731117217624913573217508072412651943473052929694740969898605998931928664995269168851038556205602524105642750892392342980099231527659958892296236991270009009056517325502893283804685198906543548258655258530507260500312904430726322789843296168553015926759564428032401255186259383903175149757701807456560983719609250524762101267229670132554228260639533407013513992702236995096841936604758383014221584455606517805986129752650723318758191999096022153929856141938334794082731744702327169467979887385635745726355000087007538161224315766221855611384501155524133703835791003428006533498409911185163117962327335747308986622592435651478595051994744716966200991249459391069356371631341122804452512675678885453942314075777587740187767075297884687966931018051877485663506324122982404603574780598610664419045925908396283067356779139179549496030930965327178285551401911548185993337530726512252562515175551230482348085782738727748217185685972467814034321732066941715296588729188346045517268755732591809337505553259965175048726914042907481370236244975038225981715939076480680694484424666784521469338329686655670949702594637838063403009120383983605520617558308615623934892299878859924226438385705884909256238805002473693338507854920386643106563482425759593251494244929670821882347883299273444211702643717010978028470403559495625886881892252407911354175383538790377159176754650369613171602482736422261680443380239803174366485455504403373129807286854434952102841818214997691694210149198634969857810273930135963858505267304154901340365349272616551097624586959801206320516034182298579042938161612792710595754702555515859665619057596938661628627795548722731241483598490517063662828021546733472023287959619072635867285413381904852852823302639563263158409139193051203604752430581691087908610868320685526523468380283279682152929573342918469765276313738591928397988498703700109313583435056948517671003952523413017005538755228973156431089023855216472718923026432487040027531582155504531726683926102757997084356730352637549287490956058511721038756754418878585517524653862351043990640379284292155599897877078587120066815178050383192267953199337100416890522907789580082473581519532732027985680052368659449239988115233061505448802828954521286490559897700734864520236869436864608796496356559020751402621156566525200817121447324187958043481322900955844176616314378881723533882877925830661128630524059371558142780644379494472229425390727609508003675544523344297997232222710593608344263772096563429882229640219938242498300643224926225273606421865926707922561223516571345915987370087253155429752374043430486359017643387027343530719181635972376504829013972129609737086761324239142063607977443054790239286540575535548177028400130230831947516079976137604558222200126682675904178083036338346530740368200346834365534157454892792338071397676080973078338883785980396764075420372522101908978114933152920275712315547906740647954638855158780944773037763386693605973740718896596848610737690125397615111156445259461616692915796917382533613192761365807318958159093479910427522410585679409919892719916742347986385344578281152450282469242841579568246547784297633222648800629850273644208668567380992080777891508721382913121754564301810059233788148413816626782829946654311332399378181820812291862403013489632806901804991289310406281186771667494814800663371347805848037468689007220662626505784886403761015167613162457394376777221031030118078673679510346187697688055496321620070683064263913242571020402127103792653490557888915819878410239339312771730159075509254241921017280742160215063793178655305219556488008264942006818871125078753841115076761700829080862583266280649119107700329159129946310292190553088322198356786237446334885117281745756095311599324890940193989527567322606008120410486929419571751140886189713771151056472805358554354454406066579630956965904761354993633997269392836631014157027600114725838530778562864335628526540195347469499873991296500711295022964049608722549077975379519802609368864923841622596162943664083003311537606781057845360241821625723769005053503562483081847932048252893249842755628944655005364873201433261617799074610431814534114364916959826038598507159255173487734802365995197692755804445272601197848724117173779910826939819354300028016761679056759023335457577722742974572617140487155629904284315771655735960186584056696038051497716311733934084719368307206737278073821702115385437909574268374270732160351008573777929169560772418577263197118632659301434010354545041398947458389585360145064874711530908609701931915959112857825702160143421450865706461617014942143834965486363918069299843759052945936077803532098651298790899887263112959552866387607549736929107841427059846352268462082286665550495361814513649611331784477062685825934075598977714488485994868070402257971732605576088789758207787963838407160832370794672150199988609001786230177391426772167698128145486462564600959159485040655768100832921195707358944986079397704949849668863102142056982686615665265862214042333234895094055434073834644833075307478207111884966274318184935589648159772987460967262144780999627123723203306297558501101145215612608860802119604523669492898097317791186150882543968866484155767434521172072589584412214302919362454700876256547514226370947749459148767346711350661159505875224716039018591543297400106393145338205085390014232026284385006726309265853470700978150665119659758029553437149809102362798774547283732108750968074844742877729014035224415990142129488998058767748364105666485906575238631181025493219973655657482131846519482712193473323394310838529090442124543243122947703720817807611783831013641396881505870740180188765498094122235356632807794359392103236118467047746989494582598106745171942011923526890450083143364377599899013235543829704050706920715756335225514617379643595721887048470354588185806784742763312095651454378337477689022107477669972248494365077537541115488823289599001776405109811979907962409989289297366124899039836936749036122551501338083396535426839993088398773642094418596589562459697771602995114680283321106150599351010632056497539854889248305083167803988780412013325188848890788235650706840939086012188617063630729438847360201387164347742010031626744092561879735650230109270202884053777744639242024416630984732851423581169693326508382107272713273845063802072185744570521153204530259920317364928020978582708063267677309910725216500881000036199530035948485665425194874847296785942893888037964565595013251893700701721947109687699706783562436028671506683766852850945570878246040022562259091598890732371346018378632591968333220927951067747875719285946535526284488056642866942206960010114344471950207675774264941028797513488200570792479640869547522550928363885302180590696204655326468317422669771699147527558904458974722802538806755137543247806477244996361526027516400435203587306068774406185707954829700644928514362445685983019769904025996944133822597350241581053793084343148643010402233939630137342301552075371690364549655616014136891863971000305069023450844739119579975400584454758339703074155985412291289415582786799696501629354192626220796247027420972331821662630902001822539079977300984939306039543501544075427356007276685154506462081244032642539019353041993295594398806640567303454029932784338961894097965839457629259705373814580678808635619540774309248142219531393464610504781089132541649793745563568255985079809974798222045438914408931361638214190961558699779100085254051269592927940849743786347995581436612201020059946245611701398977273608446323251888693158468328454024241391231648825039508181303137645688382894905252934160051590495012611170494459372122255952412602444121613600723090394901228063693300189495982330650217151243230671990116627176121581853599790857665955479867081789123704838183575415572330440519768237937029157825837129766883004033882088788516182394391092664765172419758435174153433549530219880120787931974494311125333298373127155084121782413068734346288752918662959827233323213670202153259928305469935821443775845742137304190285597572980490840957679496815064548597217316209515063735987684514234147961426922434654524468005178976067256974599937822133878601592311482730284019762312744264667600942652612075068426047898038430256728023353946478952354538785519881310584458125826989754922792091761270633091157909754857312589405351257915137416858855698492279711537480422993706453833252243756880613654863111032719863204456112422395280802122473963005149449497482590436112531538724558577952439512069104898232048550405011948821026948439800009806719666864446389557430032481162133468324147597709353332506999608962659844590698599905533241538100628635470642025582474897200727749258194202727257955922916204719955431692614238385866881615605160977678106628030861092613991279807628132428618605899953522933100443648313569267088002290669485971760782449575756727663112519569842599470039093290359683850664873302096015989679318862781969250719717169405850808159181337311530666370097735973604787741645245123026609827261667587923237326900354424245464856440094644003583600943849136285806837864680806921674812122252759933196984346595298674543582138555531755751866523338800460960803066604608163102647379408202633487402739556790274435809646907393720739585403996621277165908714212514792866978348608263639520091914091365536228259945110229570749359052455680592572673243595564045503854928020296375509211993799181003543559730855708483447700749448792608454022694554039691444804936208031278861907814446811197436200984782221632313173860013509137444201608568694086519590127940431825115970067256321654054362543974016522457740358601650003449744386626266705401909703639203305671289450719432184643848614361966989405301305167839480789281786035457229309320501677260049087461813025878664176046921701664564608854957016308409522032787229177801741852180342936612318665872337075454445896105906293121789333316695621667565875031390675129899490280516932927634913663327449187935411161716499164959643292436297382649281073395080829858334632712752926184532066304554913912871751159766467953095419748373013767282814212397494030084231974712362439895526175506685411642959697351055346247815219481095209537529127447689365492826774017605386565456168082401042153789000567425270125133163419539815077406154560593840109327319779040600379184515857170448130734689009482044973853601445606323504548836591831893117151131748745770070180961480859901730776855123108102217105130693866310212002642145613106702703862672345040320530095758079320163438970022705880847315618313273193569503119144455234294935247771288952925019398411836401455299901415108515342246699073522920428420392166694825707234030435945734606020781970911792345289755845050742978828067684441789448927655267268750568615267605513053287570004430133712708091381807374357099843106580988829599932082925734640510214244764031480195290533755471771150949123381125921241368939977141344384786393351570627631642114466066132980638853593954553356488046609616835999407929539414242367413285639930024896296874914591278880488413640021147934121023442526997919936712165102762445229873072536137338831835292645334214435177312772142509241578023482551439967477258520650037269173529817082987593684704363839421320271165224771814377138159323453035457245842173821109771351942504369458460115967861540383075385674610180240581954059175668231623670052318396966803246510825280109687094839806320704356089086396839356136154093296582442116025234647279837471196096499092379992814536902262253868061103286663603161617312768343731999987672738374194933603199821253979690553091758306279536107201863698699865494472147406556525586365151595779322838659661031227297932690817121836204024862297208839308206828578388075046280155716109450663559771445126773596582279996516563103470803920584966820193529270413370726636471612988051859873655570531793937138853506225980535730898357387108425569160829748311902843852021597260366333703524554053640830572263703676791367094097836284337937659493662712123775064253661454870650525881127141561361528989038768124284971001911047210231618197862058120668140218358320388197724859570696155011135862709420991281474330020624101302130651556288173377559151350257421659484603745269853635738435991117945412947621304661314683660578696103611661422469891361294365829112123963591660173560165279477932245509266717143774666640742114932827148282979581653464214743675371413001822624644263725209823387244906533524294045777560235129021509730854498283468590540925268832226087690836149128539694400883971959137832818604149866439448727636843536709892615870048501556973082423145492092221112645966049490915409936585761733262467549046392151616344855718415526958361996712974676665718336958627990982544279500972912826220319837904033399916436805899925762478357619663260295290888991527230977181969346665293400745855259060013429848546861349566869624415770781640354446615391364273840943969955994393477574386083042300517887737601255169356359756671881095887708125045195799114093313618025551598095041183945411397225244156729042029325393802164901471726212951336321091548645081985417526507297884967808150556059990136859720330885958750870932158792662207958759522968351143450847427876361231819244953583053465253831481743645773057822259539619322041634678660931079220704024795082456526914333244849057503307743160749682728214383347779305059866557186601061354413545144309977717215465761801396357649777021065948296710908371125573416714595808259022625454888762763456950282804905444969487906013815703481946850269369753385496268786243358333090672663179517727656242456562970108105749460719383240966748527644570775963289012390848484384108170012395043529337892392200960963814563140677415098081377957747921088143389722234120264299992972190511904167072598653259232727463283152502323142317731700381551785875588893718679181306933810869358438146716122604978737733658087286479379102189687997038014487561813861242687390947339378841478993295957100097105696748346957280997923210367392632538559515713768998132130695538998705245561008412025789833061399666796448362754561433943430195474193799118117578244687288389780488061167133115381788492850672199632311883304520838304008760078225976749458453865490176275608788989260872388088029435204311645681336907781420586872369066803518895995860154564791734747402918654625123127584562081508671541818181509929245259015072105609558230382280558203232769463029561223032374727859660867040843622218166772015189117347022628719698925684025297076008221360553437256420073481920290248887038384542086989632724914059615290862488366726882445388523100844750429598862852255893910121750503991158803493746426079167162079434706345844873192888642694794289769100634946564807283087163375869007158489570654591431583040337869748764981047792734711282348549872504302188997483449236000499291508407255025467506092291414072042987115452894085584514058146031097083230593808400963060907515008727080175556793377054266805546007650220538188012666443082419314270547226999217806811684714348178013481651521140207786555886218505023437991827400733795101946895509172887386099766991440652127141816225439784986351770065057082429022188668270318239521602289821431977038343050078636775670568169566885281750881499134203993377546601943722981809490007992729679703404367843775242026925934422990840631500981093297159462204649267990069098196000094252541112358264027559377932208965911752734263983762689219177660727320526348647609450143172443300532116066556837933429308222385270313790310136429553388737329691847348331542828896151751988490794215952835437396184467153494318159226413286881818659573532464243072804262845597118945024722327914323417611136917873361247966916608980880073836657423015964038900203795084041924951391124589602415206383508095323356549539466152084852064041943139240541150231568396462775890605205995377014852324844422405548933087019208757864600636280587523321239881214311015738114296771590174600049759748422264656713249710968416453658098093001908102867979406287594939597844454755319560759429462358098598148441704621629985985566544940716919867232954881471779380228503566893087282463924020701028267956602278541441563608060374615830478408045654381741733131033440597955607993636496513221986237410295252017316412241371486146169262430776643206835246509018390088088052942657263499889179947087602361310132196166544093752783412201043785524217513804908754487151138993020725952257279998110268100474270745280818066976575893644771670301984386434595917610658335642023490421341015532878341251121552836587653996535462389908702036566179221716282888416303957825831039494830987205228598237506657342567433808778076292813095148185637256891480029091053010501699481013724088227632255689969189105890274549642868514549172643537651320969503641023204578744557933661904744805399173137902896809767178412926180363743962085125723194774015621268074133207450825284637722794881591005217723836817293600433832368807674241719486209451680242201492264070115261721970229471023283687640801100171172852207156631058133029336786412788217271739530552144202821600972818449268783333906764505497500631627293760628207021247934905421490304655839432088429707348386016884244018050720433299064209660735548373459723351990228211370627074985583967580472291571382012270717830749843685786019997029329738929207827065706077238993922011089354202677395023562936428151011048334736049550978205177014426658653797571354066878574664636118034626824027717218467961469928664762815232493503588173099196726108527530691879029390532948590187587794391452943890472093149850761614405485886364937640238213537226463723161453704643631648341300577707035812764798684982072213725323725270734428812182696617210693395661534611948079968672598868441395134431641144418245751358224867939791166477950785170785484705243958218724213296925432850834931637035347890841031179216725303666880741450607795581321740469865054419636375404091954868929819430190834808404595377174355089259748052304498749829828662412732344624675789214491612605571621446160298120285907775174936299947055441435643611569835643776828031358255958424149458554553869209846915343202816709392200992522789027094566231232585811522569545073403617838358789952045736196565780593597835910469342285560555033614647673410288951614210184087436646331479206536760568237922713015949721116055575599463992710500328685522338823119565260542013144560531300559086052427542684731046224297282102988433990953487469386902716926538572144591788137843241226555050239108737435274054205337073968090675807808404290239399127374609531051380959865213670273212509219668626022573121907319875597942634591633073890163192502221997028031726310506776347391538675154144675284674941717460779136044353903249832841649997599610873039508166649445346250828248706290977534009064787052074984327979428976817689220555440968106766707182840625307660684648328889979094894521388348252100561402535829185889124554095789450795594288055441551905245597424519703992940920582742186053240474187059674803327883488672787604182957499179256983291370196555973341395721716026993170010679919673550403924659457536820194341206237244628297132421571065635111005060855258430470718021854389239940232003698599649129502468840100857707603835216700684694009735588016695892450988112416529101125561942609098170578751809235119508498814083183165132065798435206858583709418648205279881842813920905816979999792392426878277075482807965003632449052990832297996832677804096748814968623908300633521785737972038268033796447282311175373886220234613436742234533943171152045160599303876219208963620790015823720943178719810521373884390842384354891580237788401529485438399783422782573744017281491901932237933753320695779498849646438838950307658005868307410226639865445469125750519729761143629264793929370844178371639779979256610070400071772401504122370240101441633824166435457414841005007523219729424300823683484216693235671119171072266637315996625676316087789171315190587391716791660332738190305256858289011937937519961750708354514902569165993629311202600251725338681770442697912450635487143285087706547092815067372733290508997818247842697245235888188904083087720032569986194554125357745100874780583769007005769294160327124039965117135976187866570725476122360378252507305291341767912910797746093532078884168986068108607854583260680846375627069561168706991221038740236006225210272826270814696677767463540756429700001126259254736691835941078512149328966767258083372453385280994267091528631763107672182468498466709462886815949281853884119546659231271546349137783385821125104269624823008645449579743338767616203461002762014406979043250773695673983986672742313818892056265264308545439461472997606124103783288555096164234698130201360741495813026515336517026632118811150916319282977276549458534851379567432685359687019341167987962268437730397505996790950547631211188201390190992498594468021691977454122147804467561777286823782214098408315622433072342043970724681068395126877254388992530276258394670686789314254753090988112098873971184160084262686783038577237099097264481585125881391472672290693596627876958940192302649560235561037829274137815322571892252640792908880984232678915352508385428624742216588629447011017806268608811571765769051039111722034845879050425270845389017958908208806478998004856603577870617617032752509074039149694259376309653906409109187671234894304764159737638884586691373885364233118810956148700166718623834424564398433716827704227442981456497814286222482009564716561295588263780266455928935053614851165925935270140911713268839636694229042106584159669236497829464059690346631218342926775443196700589501630362498142615154042046867734285781288156465308234774872632967366126474669157955737475956133155629669554279279463376278593799526514863679002684965634299459085238675939102785464692658267205181974061317086637038202776232125018609156785785735234681674982851248758274164558583730487041917506146418749452264289262522481125643223502466427664063876381436956903228195450019027035818876631380192434336658695192211898361597076894277034078103187432271729969290326990139702164675347038149673807407440568780016570832093842115210402586886186217902223555352958348324160434590749930584793739713223803737158543413333389324612184776865679438453630062401229401793427188834708024006034393242187312167649341486598549105239422261815689009187569138560461748555071300258370283468627788625238100983688749718416257556797631741622512743903537091540391033245656197646539540888551651596511739251440231018686730773934399398874649169197530322185757111099878079747946625279687306254904079861691854728321708287500456209655355110837233967922332491458978966397832267621404766509754539865742950466017364958520827361711862159189338893850431947037791131361166171078808902997541089306172928452937853913749528626574348081811160635786950887921202969281702133025226991470196147347320063371810668666918156843935201989748825729973913980660588278375133468924951148769185591641545544613756089664268416119488293056042628546712043365639858311800713176403277208937297469590376149249283164389579807592912274072440549950428443816235043936417215401109256317890806747109520663456098739717427478429348594862261656429274602899910581276249313443581081218170641939047826554590273508250232699931310499143914523334324941875657131286670585480558254213284227307224070421803570443820188343290204509972833959105542265373646140611037682783893074237299711713491941431219807282679096669684083541047182137406982928036385871803390471460977261294324445257506963034057701357366216959940355913880685276404515947099959899842658775109491262859123343112648086697158957971125033095343793493304381274938435978525978052870557359983196972343639002633402639558772105592521438879914785158847452890266753312929829036614498195878613212903923087183682643670191820897842638650076825295599942178605531763767417372554651265369385964811307703109903552584027878826151895347099011476855164656790979429518110734420979195705226194484879667519479443177083043415308309094088981114023664846055511904246407773344079480947995601606464645673075513836375247753240054063696402101022233329034108294873348204843610556174569243559312213802892618753139043646228050574418556531685871278165960654611805791958393848982168246800873342219421875533467194324127234217816570903804336851649719128260026900347437632112089077178559167676511638915775941722475092379972307925323347201150696555897216277193787401791041172631936062476256118185741755901203491426282756456225973343357905268398219187425575488882462335423143638609569599653274653084892193866440622841596741471341718035222946050801433246772296591570944616384843407808104346878384072545776915059696717172994082244483787428554629325774271871704902485121431020892390529767010491180541692309335456720879053066445732063582577078853391435264890527956778212635629459481972676002774308787506478566867509823684486056076878396088540770618300715889980873878006568997490042360086680065896366599250873513938460033584517295414933960459778024330603802308461350197961238543091854804387988491400995188736467348860116056802645090366196626916671895008282862642108527024301885746752359199814880992117135539186987335262097193442853140324599715356442221889443177973342701034664112903294295392986785762531938748530027723778832912277311580466159002258630231521975062049602961621442806264576508824709678987575080544948557669495959971736766914396004842983975543457573948846381408371438329135257572506662842228784612908660199962048022361128049100456550016846489869813507866738240591643552019723214360693671404329337069132815377063126027377525636433100102216502938148272018506984498272372019142146050397440310804344315417141198337393764350441240973586774634596663499505640516198267802782557780759729499404261253924442300055179908224014503358472869044043526586093557862226184093530441239927441638532608190346052705047273665449759178527560368084919986232811542029461665449411288254403636204339146693883255449212545125473868431818178035954314540412092345976590223752274315128026079453586657127490618749423889421376836431966344729217947781241559229168697362263387499241042343303160802889892440144736710128750076837958746278405721652554819963518106731816813682217847130812415775396139639897216126327899574620451053556605386779249058478320283454731023159499389011376602000921434240708679327255351751411015868397679375108891829661287757595637404419638776596349895846055300822453727900665122460640359663942021085659846242171767116810885304168120417119977371584232883599253779918520626484353044923864770223746353573741328644338487101000325189769282002157459766387603834152138127957853259862441987552915326037209039998714887238884337572080309084290106841013531508823623070951995816602812562372017335073466117022086177027992250465367863623141117552350873365242339773332087929556343481706542048094910611335916053743800871571250733314662437928239346942909815484375805076865163277012451309577312487696374248345101080741653590856546651967953564612251927401571204437046162443545635494393899821427569379768225372234137391883274789566617789742660210630733399476265511815201595036751883677528629415103446978484607673103991248264789423737746289752374765716065006703362517202232196793271303432252468304273219712206351286856992912220517550119803149529801577512771143519326165513452221033665081416333704947901548368513159143005895709589451591372810940868289921221294277229319860025087689281356895537542485912275340770048801415660695542171158603678456917001992605461917503924196754111152045009438193557182686246003973326001539876023462864746061312565435878816838321080375384247166019497628069407750679030886140776327953633518636009149293578199504530933553398382202546782707940668313139219077861774008501380127939170228113122563804725313523228996882772735266982843405416114796831583757078334512561326852751840981011771345985563638352264954418625410086294930778223731738551296336420597001355443870799404802280701440867346392540419651221053316233283569392468853040777929045635017835559391319602199734473512354323639369121283661449777103333643219187074974782532512937163984767447460254402811125324015756762213567296480447141181723605208721764028264287138497409710097554743654261385300917613745586761801311260566444484762160969843118733109985867425163812513479846759961251062646484609443502582525942340743777673438907833802719400116174199925173658946868685910419236287094071194479618985689376714197498459272034465225376886657688815970481148481629401009753861771908868632158676157685359090718832886069083118715885711228276444325981388116484831966697959195299991856798165167695148735685927311284157864277623102315798457081736600746355765783484006049657663401003031829197425561773905023160699467887151624881150125655463643964795807749785244255823445051010043754584813239098947391856391556329799963465643909632413333096576337370469555632066273726692237617673959151948992396604879812977174935178159271409607596533094832230385426780531474084333968109992796439459145836541191182026656153253183006128863861088184804954289989587014694710574759865609898118904913653475775347254886205837753671640662736063899052420819942212391655954042902837331467519646298191809920785929611564727307491060120049092299618362284284186689282736814813222731233031542711367920859246501263059139735990296532448409824310187261967655642417333090864583241311108168613800107873430863965749053018222798701937946713579912057234143388895301441192690895361392782782803711973051412780840700317908571930923412968788584317430532940643983734985200393876116267228735740565815715946556655485001103493384738418644754400320920851738256252637889808762916455170193960837411347117814238263757610922221844095141798351484958543956967911223936704894699415803677332487236205735084022617387682909347860478537460442814657228158863610147239246537188596095298635311007024203337099330118654759925859909474904632391775055535945515810824726791055763743015792857260563014118305122743784780416504964442571101683408896420591833833906835536412296713048369775385498291732883606339221415306435686275403084613962013374693255950476626369689487800818605012548353745373706315890795271702998020000238910190164113268910437149942877147334246975703231130184664947625243929888322011343718556596928157584179513685657419778258190238694023471730696636680395631391305986850526078064533667948918223883386096044762840906378429126717889658191613790281194185665962172481374705309501834431860193254117581335753127170388200430197221995764499990401624027919527169074062074444131576095120140734386313112160537863888361371267541842854143250328348120734284745079370836060692124254614332625669201145193661449391217596215936908377525263492122880691089365799942410181599992553168775652271139820010359980481824751545340539354743207548590890570688790034060115094481435576260998372618938084343707400447364953624558641646406563833112812704821275880047276476565703740812332218389725024830924806541713133384638440110612585181134061856927233857930333192819292716481464243699774778621863329856125637236630896398563425066492736337750675444501134619813803823067837717689594271478137333327215881993365793076815169838915854085971583304789987754070793528420494659526307257478294949714849727546098981890186312382622761152144003052959490112901104566138516243037671579436849256565306176862028342069258932916897150435320373976035425552377351662911242620349935182557166812138288235649363475876066183064795819362067647775917261359727844598533217869233360194345061957553896880595458031332714607422585391366401123900570945915523688716513505153194945453496671162921614200758200075202475918293226805233224973114179831543266470005082041150346679895575565463678433087167371255010993339664501407327910188862870523715226897908235650646691588641664479341092768659019321665439576892672026655551869825486708100281144694160273042061356229125165191744191818301672013115407827046678616482273749087931290243019919583544172123918177374790480787989557399914600852825362498667271516266061156605459091082475136270034045599064103093515376177115635355283427771991254422434327365457553240300570298983631613575336908109318138966762049028680332793476289735690582730604310665653068710140860868539449477727782570846991893833653277232233372909310705692161524789303352085186593093722530627377622648070156501012744407910766987319136282538605548216300960932583599366683582656232788377926988294472853329243196382721901111518342467356063132246871764682205678662465515397685152839733780677245538508838067642918646714791933715870983588493619774411895862303534125746178360163167024775154495830452771135743552905462675319513607820133043143233607480473490345639732701636932630663638190935541319998563904148571532275569924767053871331316332794687268441574123409139982157029788542614727329774501290115330793995260554517279050987353702719564063689641351576424830335794314089826330579278992906273070127231690869635117998895823644360437357660616320034815107949150805052101914997600659559286500496553299765312305129508608532068604652196376946514716047117110110453580467240870563739760285818460535425538687391379261273632645149060409235873216166335197261282297890541633123128778033488468974398396396794542555983121201560457313443671216798118499857515084395482278723073724928866653138242484336416291260541782623105293176646154877643928902561900075294649146089635151297764434782389519283588493237318415044604829132407099037898178823678389920082040139550858950375147469646713235452276889988742790296735970079267239859267463191108490072542571883148283820463760300250126641783656311173409202490725671415362732776327920983952883156345799001725209533242996122037268246243832858512970973433348326084177171579824827939207045763599217259808916591346914610440927255558840875425182103093519520360975955158297786189047914602344407642514444591314770946734217608062658741737663378202029647045312761808930323409102163366271962439359261922034552539512489197135723690614178309360282835441774126605102989031061509950308045424767294244248014114856110318684530186009543682232919446209131916015045386851739916583662617360042321785463779474457902147080014986694732700559837326793706937172935190371764064457306063994119028634696658647679412668111845102088987419646296253632198345518587561495921048296162133475521860705414586889722300450157313977994206719780467558455034850578185262060684033273451810967341838891353234597609423807854982478567263086217168769568908432781893793725196512562801318028314642622290807205586899011356858325608113151971254390343681380957513863930267392874030827233050614531102967541125269135838063373327253073203963410640704913114810066892244253004985940361101958039456929267901386021074626025181213716949473963478891402011762528752335528752073828766761449121904337829602291592542925108366516963672085367364898299717323791293137371412603068459880304100573081645851419363967824991992662730883806455507220914466616477411352507249021596873422831075581478984946490204550621938529723239646407542942423789245384262879215304580378530259969541571348743493082247852246636669167445168368563961112304486838144424147441417588218281065356102577252580946240077895842945295374378314156940910294531566073191279406488827421420953594327610751648587336533790464150741989577967498280481925329569204304043418194368215338725592645876697188721214595505610347598601636034459456865351839019761448200522453333318432798994716316054526874595378350729481784080184253599157503785345878703225298597150325473560209501339094156734833331603998540151939320726017723558663212620297183382946901607013014201003105778931924863426114668778652940066281115949051717123284798125552522133905645370614050016238690179557471825421321779113116871575083432476339060429703996035188254946676051072374701777595816001446736024627663692050491912022494830607587097617827199521100476539001464495522715313495182072016075335562066706511041664804099630781656807663399117814110007383105352260406377865837814194650486003741954220142557590512339263019505886081978543550634629042397746277227800670805845188371202531266680897606389070181376967211509371287213887022050680504348389944464903496037405085417874648109230018257986394481483772515394848977448631327247381707798166251394065831244102004345810207799573571620972008626643638491053777324870980674430569166209746015689308372349114514543332972750326684899682429720796125407549598258642808212595889973600266956837156072658949615851429403407231111543511923027134734464426545084762289482441974509202005304754751729744973895800554415060129977777178308550912051475890259425665232270480721400074537368108166163143144302109984937985742089154843369286186362355328290594413392582477928153231708726288739611318235314118103415623165006537627136499328792195174682064896622866417190863906726466740864598240286365947680871405784004339864356330545120828782698200004924011120388727704216198650641788002413729807306655437614823073692991557879884055974954995350102067633491198892489811848320937317517207311663755232899336650656658063506629258338550100105469364852033583323083037712565263022304581006746847355294858122048733931522358941182635874160488660490044644792547900157978602058592171211916369304129236165453736859619587654672283345872886049992098720820743520559520581638006698827655521374324734831607605148605018118453697648207003218389601174618773470138107964274656355212224705583775757883050716424177495016768619233103758693582596432785322053668669115334921861519586989141865627816082603355225110828614659243562260523308182967670290089215236930776101003959239039654144489437937281047896847066903136060693219605533514085875058646102518458415281551254576957615882845181859437714703620145031709090359934650391658402499067284569848319243989980664743456208553732716218910336810430253908054686228855285238357211038127808557066949743686368364213686697643134320729607915138929003977714159792197551642108170738095316195979403782327908018074174318659024071402580108669560356321892959002917300674765942978136388543346407047468153570526599095753542381893281747236374514764072200004166310869249967053072771556749382527085003661176978576288652438843300934181401116685414405077339542440518560353855935622373590931180740502847930268305043629772304180509240581749695440362340018010001326986148347893233241413320378367358478451634484653476226835670649160902599364182789930630998962660405334936882893036444258732921264217742803658713488390789889383221263363653269572395474945928956469964277760270363783049099085348066675793795209543460251146154406670974163296262580012681502829823339523484499081410745013588309196026771907044191159561005302094194152238901020614121777375559097206149211194472992769085154655267124025371562416758603207872681909927258045356652211707420857430600286362606997814632903970272580189220269494148740565324488725891870671532679924452278104562568001857049668984908156372494868315402153999110438373063413517685814132524463652828526257969528314411055735393054511727231469613333197653215275678726811656222213946392532785864766028141300637319383930680700080995221465717926273553185100092065338429458452907087669578244152913004054321018465774849313649330908253614742266806757121674387831759277701512303274702982906123769306656045377944159478681748388140827723733734286464636240726566355756711208203291723356410428561602079532437952016698957690211434080676974124573666272298469685440537856899576309383964393917029289082020756786255475230464346110820150346223726051762675213307655329983057863634314038413014759550465010650700155553024336820099992229774937165817344091582142979800877430173866099075653621538465334868963447235628812308246709406702013917576893825685504453689760648371253299576054330755014802528378393138506935504038672835256340093157301283370990095462707242181910118624855524996586174156129849958024086887949184032847120703864068221439497585095931525754230208213647439010833981370718028146481294627445556383780344550192497033074302692655998485612919099973525420893793442794421215302417566536366426260059902460029379641584379979544005844768933098539639783973112742104499097451874223387134783896976834361975302150512845877966117442365522087543810638138903712230188441906217744495868817053692914254343178492349596632740823358395236868900115918950681100767386977054324861927866983100014024365544053719670693820253746431520151885712321105506772069609355516183510964101039094223895877942240098520511488322574462966980978796219177469611767099295801842965940581292183908153188364360934022128486004363547486306502607428698273786517509177339837958245395041399055139215641267640346592651848337696642227906694330527875433104360831198441580468153628201232078130305425840599037690933363061008394402344574770547658027003536330559305809157390701730477041039336223114396225893245807804807125836066410987437751698808246480647306764810769403192903058156008801475695241798530010562247395880581128647875923240873648019332915835970347649336887953323195497703540559441336008185525594421168166181212321704044453684343716097503676801940243342726262774639640577714098916163447256506932581512001613380700339511411712493887812531948721702810455587940171199173565792151178332187174523988423071387136902145704583062026289581443287394036005204517398221883339225418545506689013240724530795579754140064305540569470952348856144367116468318272981985743380991426648461104712985262999200232111473177889285414445473504958866142032879689846857076860108054870421165456088095024294504843342423232740369409709986044740673217833206455860777414434960373934034474519468319220417989341734764072266791573408967541212852406727424418035055859382129203455552012687859711246030129409004172390341148483878873063426725911799217463944175003554828802403809074357617638760942721576316572848095273942270852296353936902323596816662411848768106260884959219845779226049571664484436387106564549039781963481251638308655722159929537022610840362584574198159477830595547621587058939567252065712792703836640651567619734375359910858491974524368935061760673487185655262678645606536374516491481851611798505102877186993427127874727607105962291114043324298435156503084224739939994023594621923050750672424843041553067132404039120153420471986913192035532265016964332190426590515211552256542235604104085665150198726620361753527469136678418496887208551939048495769188028463622910222168067843646323847605821958287838957628900372014780774004209352606734857275176941436961879133524939727596332187979313805626386726902882209185289330726750341628093514502951475756134316642080523810644800353633060704044329832454351723881554997774474265875319692708915083670993359754129770948682267299130770358253995231654020087658239750503166493164986866972444107565322868167945032905610800009654841540347074019951381434764791671147193226289069743060820709923810815028992461637950080974232112046041099279632856511602718200726914692074120442984619209949257890972285028327695514301747472207811761745938566201978343015577003401389489431450538196193881516176063062684299526479717650395665775248203950649327295349790335300976116413672111721141626536496429115988563702911739671842228056873683554027108871080905763612505746456574356137484260412035159034415461700691052912145875826820445395020578845537514940480465878424395996878808755563203268134953077811867180425165251244676905553789308074317248072771956168662849296688813753917646907950584483285731056896577533508846592571543506976850887714953977422117579197851077826617777028038364251218602169054095543307139810150367549649593793267590666297397026296397512887108367504257203419461933917757450457781534444149614202826115440488091628462672415747642317913121260605957938171665184777125427174883464026757854912514685287503070724896750744429332751374903032056566223953525441812030154049735114754603215461330232182632957830886926880456249754153859653521221696700554842340574146120112173083679518735319314286922805978460569778597535296555240336797665923290745235603358695101177668509851145912526299807048540052392918611667594524067038436990207212384367749235461400695862007195884011003134940137381528436104012151672731708439971263607548664817828229810088455277093589998548547204928183879245762589474821233396865497233045077153275634238733854213277384640205245141053438060197653135562290946129349284824404777409728785501817148981724762035651794582193087240840535668039529121223587482058762083890641947733404108706136849758018663489525764471202849240424141882253746092211830838494040383804933450667684731293070341519262201861319838144407895859159932221941487058371345562841755136261926673971604447910376453216968541481970230153700496717050774672351104645804914899628239844438791671144144062089188025021009495349650236622895248715472911711069686176154609676011984346410520206459263768755147958504876729803460112374326411937836121756872848442565151351835531203291076952500434980681918046097441437064101296437660082236700791127397582509759645333769278031211251530408799154258977744653843559369938154071893276298943795740029260456896719067426345188842067912728905898611731338175032731209814681737058343211639474303530106403840289685707106629996570911985422869654685667736758542551150556250018482479872996253089750588656233012238139444454784150720722155392992401627711669685232535640321402902681382448586668541381225428864605087896212002762645971795650143103256751242717528254062317024217403461514213745523104869442503684875555709558584945371170002059794197895420570633722445235724963976132534755060338917933201454927609675707614497594389477656164016796088690974328887611040102184100234110643981154072817516497851912570577595845584774846234226961480300775759093906599772344813570650604280298803475549010621630755161531003321726966168786987905502651754159593651731945418219773520508679253770839954602401604331726150182233864438383267648427923995462240587833973714503110144217146038783695331518018544814610340785894169295380860103735502950153665234756497748943963473478553646084755316277060245783587284178054372470207973206733849849477373016019188660574318107233132536256619152745984838532643437317619918030327567028370347171607995822693249102544688065692334613409162329413017569577946503911151505815824350886152855289541292130074882461691647270333817180893455845934165741380387778806658454327871151691433331064056459402430849926567689757797481220732913841822501535103608559783326755508838176374887858094323623988970027110578314345713687027646573779093176433642952012908704817732030250526188457575077599429075938506458288331594498237943050556353702896807513325114564912852464148657769711428681307282750649149624856641901868881151235211947485790203675390928604368322602966513372941501513968276912056358475739832249135604442012586116679739236507863649546735654598347765567695976301305022293697831919208431665825750095920459639337818116968041857201313168925300416528050822982002732137302119207597604044695748689688057153109018954989455616861081445938454464461912081431187245370540018396116420061041249224596923245209462438333341805087545169544882646890214589161386541491533031089113026030690203699765762040324874022599696372751592849696717702754350249419628204985231274161785005255237436280510475478378513370730876624609442084544582663632336152904087566573042824412846335397034283478626340092368233986833708664504904515013368213860623348912468783398554203527016447500748978586389824679677608902162223478369592557679223770295273954130660360512954808463980626537303634474115891829430959709467482864677946722059462105402526947321897815859190465932516063971333824491281107136601510733485981076349817430470757394907503912570232676020543152965674533675945745044167189038561456897714754895547684881893387983030576196160266693329837726626229969458917457749778868149366476733721609079647058087075259666296871413049102455888062110636344777967995930088006396209577775496141386862684686722658152647351909696406387903632630713485780494111021167942996381438883985755740974565277948241183325249764193378262835659347135817827693786221072225659159872012037076631085275412091323046650814018750021314001641518425650704227514211945361195278594829924820372030783938632876686885956740008017146185869380068280797630201334784930125164778066830552938706005365150538848292267268384358608353710511093270019307336434761101101975615532997129383877037787266557960363228271933206666513799661873209345534850399797908224540791058016893063872508471515843312883804907459179382638815612916191446769593979078523173153453218538534991714593845130885689458451975157920698712087504204651579524978376129513641840123020363762412228831445862350473220497689630635310624525123674314029732406044153244015612647320170418154186394011227107523713034556030574963839471662626820939438100674073184715711783923293604671412302532554072162703084586829420426122959139263401427316260800842586535323791618876717366729929615442338143016660694817046621440451473759994629589856718677086175993244339121678729811317502814844845034933196608345350886549507399609862954035256468075978091123807985765555760117410467888347259085318245019363555039455137168499517195298588207092169199380176391651689413927009391033831928051641808624979785002969878515478278424999941752413189263501044178464896745642906048880747953410107349453403943187884311264726656853328483687879201767036667900675331288656914564019876355343026543589290546119883611924070863401791745219442297070560174389237496619635150026686425520718635523719059747950319228140281524314314513231276181011623754541116796921393927269687911871698934618421478947167959228255301876463748249937934972771211570876848717218492737800569938186385598403748770062497153331265656467995881868631741348326683965908649769493751722303921721907613817483073902888705281158364068297261949285804001025714645110690045577538194484937107050773175378054106242902427290686903224542353702540883681896428320075064279275639489526011217118019637292786087300744500433569600799390588934306172270201270685502912072138017792663896778426435295659201357135705248855690429347123529971826865280324560075497648352777841871491089916835401317139208540509289136915820072736169904250414182481035064693949886526110393073815815399329652058667953910132357132121607133422641746244030545148628256906110882744843055758710224846140861840098831677764332683198655343745671403896091591869276053920171045336256084516036369225211954062152178445750318913999063915906853687255820222657275515481992403411681713134440907355477111024579315561746108468517744982279905807475398746445939617981270518628374928433834330470903903119771398069883756642657632070278537510070589877507967348709615689014719054412423826105448671091704437561867913090592652768401004513404660751630226456212707208103942022414636942833511927669944045495496134517622493840724490301747422990023910150342598457323844108899881366752578086343355770288238774559843742940807052644013564848972248422846086566138148701042812608362107367400383226581121367444674916691146263201422782876019124759950327639487224603310540949851310988640882736377118744611636443523623987856135614814439650952657244708149400894704050969166472560633173343400136486408667177448357818437003527330840681586588012162835809866622216616141814881781002449852532663688774378074081234999119252731494721763715129028451461789941776598775226638738597187911399183026247492582442457092725444650257242581993558517574992415715024242150452482317267056725022540065437690995743040352694112353797949132621150355145394097041975812133385434411148856026688238224579053702926909525586156428065031940773003126313566880606589207338466711876692554682049535310946943487038462727881892580488521611171964057878603346584205160865268942516620675384258354301493923564383805747665413801686240625551571284108679184127109407446653010076861999112534300689960914661907812595374412933233017408897386272301572398512001325715330540117736650984585570972495129892491896886937530534806359525827429956782354598726190962674398072360119590118329877216214946173925377223572672560918890418560598653673701217675367596654642832704845881943640068713163868394183824947474777714244340761007418185066076140935066630123105762426516010644879108809249964917961204743371646968891951817703123407920032986349487658555906474441466499417388189567188057343046043189957775724773490096841259387000296660911121517513833926654537360323512179528661131233272934895373382735719456622201072134198150149550268905760935183519037316923725929461284198389095166820750439974195406621218331429398250074859224201285723517549427028398977758147794174748250733822155287038671406978696039206522168267074001200123740363102782663362613154694315885260602884293028992580270338374126537752449756987757857460443046634348340675206715200694320096383035919218529081663165645175043460605711813258536209795357380117701670212613388940264029867009424024104532513264048611372141141176199450799025321934720818236586593534685020088752620950032175699781357153607175571098209323174169775702745505531773861194993142648486565937807260172941215406222455821445012753870953423257976878094765314725570669852380300203041826202265946982511413595160457940942947342168789315791431571126194846755910210053416348253856326370053189153936457196178134667118393713907531261254046779652037646341188430178508618784515008795428013412700210933186396360872781603569527262487081612098489569552185606200366654505384894433115054234102825486441140235770201031054255472924716447678470952415976432800913262129667677904949638818536035809039502419592710621419766321040639644831641844059457921852410254430614764946353263581194107731804998573863869268097929736001137356667752128896175376785043260015706109194832734522816496838092712795254567231547008368774536822958658955654648924142034169808466315544334180953479787508253993112846509002711456994497510383137093055046933878139986659744134689152073604064738095282395361063843024226083628584855954044992947883670048447944862191955933061025718637789338865564897871652852573200050480937742845450214145353447889975671427338036952423424433433915435186134810106380938322013976213385784996013824685830875049498471164751075293606009669782712878921979851622279330408761036709682780666123903884117473070436211727182258255674592197175906610754844747614167293659533458972169723928264838981628321705365218621465634340011600046035186221294854933258576779877611270958600798976043834431472053419100287360219177709963124054656248115295281079743842404660909185320849398255392897045312662208282830417233377965548705302368624046963140654779447713692543457785037296059006875639300649578586571853234412874426365711042158480993961310622481586320182288859597360004832398296389003847457685457788235592081973372466713841024590194984108754042215625154875689920158649772618973492932340032049581086029155403477203328506110375351439015312858988440378844649676514946258781113437463074089213943103272570313273132759565767995648850907758203857945130736165265853466298079155001796391960684313440042544531349207205059228447063106697330969846840534082842963936537110161571185835225924433857714724254303619341464876129049846402666662633661704579394318627218934338333584868147482951920604848025732130766775747780712214346102799856771625228385321023277743258038521222788932434221914796610110179130729457645345713152586945008851271832961528115772812927961010802693149678735458922440559702109031030554101706167429697454598058056889894406807240668839123670564511044235119770848376190527957465691745839238188739882820074677108081021419103286661191220626149486018604633123198375553798889167549163398189548883850412265030326241898460817839438643703604679717657375106320942534463664184261924575683500003327791205935757980489177641968535290334065381461402685630067352776275657150220100498818425087173044056274635977397539050858663754607518814228450421676044871167584624893583829008762895860998464034987024473771060978953761416265074748215797453232220308532189931716994445247214425458992071207135424072292060178497104367436686350006881148741480233314523759514200242883463909111736741546272988914744926377435095202657654625215058318025710573546339623498939081875076789491979597455150340514079852810069441490609264139287977512193833043447860570261281595145457069270017559614319071409489854910181230015045463591965823896694169877965377114101760963905172463605876131288945114863667220681731806417819017669756958494442827999492556083550257258266909228830683832485763944279950910164986770837226759115837202792080203863033412986568463507285176727546556615974677608384608970550187431349448020671328845000107379598651737921229453182254930280959133007906619760167515649235763025501903277982169480108940742885781217623275694294129284839302891945166041161099296066367583173670506187079339960672484149061644131548081897546933269957889762792729208928675995539473410109028031284399956249452729123029865949681088320930804046627671386509681337183468103525853320489688533110086242896300643693645260677995162908590831486441996926131069638200119715200463376664228671169888812819595139747435530113802763311940671498765732073851920882120485458788119702521532201767465712328729799868297887380685975599797688566769743417891254333866328917852626235735702556562407467084683107692128565952296856370514787754463812291019519573057553444822192983208865723815536268279918262833488246588332879185586734792120449604523116516675310583734460753410113233483401042778130772722415697323366351290010277077878847166166149880715306651319645619052750471023546959540780529252508930784843282949158224255673059632413203421997769147922069376418238196582349533537608329805443987550680730739343857237652000159459738846392361972420528216614875004001257748226261753818785965472432421096051051404452519144745776055078297255208224513755660850812726054863368034149971522600794274068992571892080928608425757882667536039589707087238369937605447559635017301305398873964384802212723851720301508432356407552532115491893817062590776023218072774191365975843459692841137955085529477899509284605331658677104459061400010582129224016499011893997042898155264260302243900735602217275026365987972018321685513225915903990868747058255572956072452903292435464125669709608105915803645899587785516171954005506097882813654925755784071498810978284049682350570793416013957852652700295677794693120363524615249819135938313428744820656514410245834882766907889927297840897685576692021083442478664549310910862427634201434669734754895882142303608593592423648654760732800596828347111966050246116019853546967859807142104915498026919046714422348111333757568231689088102974844444096319462799634095455857728128049632215486083576790047387167128677592683186573168551701136186464069760716422966703426590523591248471254522198604219163856158561389092407122916945583091499737416509592656281670366666403199521566394886448486529789424406503655196220712281228138521227178627162937804635446041031870636667376712438051819438910398478236248480926273468468868991716343479053388674812348763143517340895869566521334969683205641850481900349879166328554101494107636284971622390142308713980102151393252408682322807211554312386734555203812396284844353386800751201203830959739426568424806485622087841897689228114428293611448020973189179329502694588699248999570186077585347670714661732287138878239357808605368031595300286287607330243973762630978601869363118456960391255863409990379164572186412768330868091244367239801906001924799592797017919700359471988913660877168145063944870861454616125994312241262234797120669238773378385260630040163294393499708193348182762336406336598274263372770420102256331919718790541469948744370275378195909463509962354319425618157090899438965484148827038360911958930942293589409273825461768463978689862332599812837093880833028425025653237780847760457260355552833821241750803803354141845172434468109418109210260099525163381753957656418630606016641282839697701336182669625567287061502295297624330573078002157231674547439015926043451467975122246650007482220291057430767782383632339474870571017401718842882574795794997485463770928649911669566576973733039185715411811266875113291804712873790625338967785076130818993366448214850085490248795255201501954099463541582200127178564581822672654904757719575328533353770171109283214827308186928484531763060897139384783620322327608710988093907820409895399835482747517887344556061633330266038850219532935174764104421919697082269961695287743631497362282544064877819075806402866351766744312228581366083795850808065393071947950339917463643224501888401029860713788633020534376111883015085308245191544222225510897194211345262741381742746274799790417459018608312300235653056618734324160873689797725705033053620296366131772530311595365183961471182822259685058266089865162712982855529969949145364530451081238418428916816444283525361561402305817187224764790848766107185851857498753401366689686418659107802174195950486343735464355074431080139455697258833514435412598999808999294072102470410827517655396520083236852487849982160435204024602140651831799130342977976349619717291958486952341214938783607127932360101016751593555585808101109526439960636095986440653572349748267671068412817861994198488331851673275414398374738356190569591183783699240691391528400259542835484223681748086009271608637334965675960157801222653221161202129373290427880073079398223542351568451020617724133601549306382666256324964441300333994869948194625623296229796857052573454644009397930406220735106235423241224241030028912311990324444064353078332232039412477816665654008147436818884237408198277249364195571371404359103806366662177551696696253960097949894519649935817191019276481346182543635892433459997696723092359405883589466624681142629912795999562110998608469767996659324772064424549932272477638808928374622298182433748820069497998440269055971185244288818970626507531191628988959549778436420159092861775156423031087610748742176953956096935466709975006661893285649694197117999918039000824092437113839407842691289549387885935005861607278814764203958798953754632344233848405434200672017837514033673957165077336541073721368884966706350932204630782938232875018085552444061066037454527503315567438346015150742178876564264390945430279574385902187572914466440347582289409456901167177125665673311416540957378198723463240160864305550446094529956130993720320383039061256218571622565578581056924089641509780593888866584193530331504060513124097621910735843428443116920614670767218766824525270867258627485647402057965686442811765424414632888831113526076295151504828308942739956608529829946642555032917454963604550317433272551035937167344277329086003506528211955343947923612138224409732333367088758257112904360550548976800943703760796552138418572402657447140657756693363693089883533473367999939524640992338256200712496121789919247602648052531899139595837761061637745977315297379531990463336999778210053419470538989981471259303315620227356001712431760930059806401900984178707462455156319748670175474061458465327776399019295081853113073465036263329858654396592965004330929614703703724646831036040253496802529172425684480720301547173063393566133421133975221318119395834904458379141437734532536802328361242817450148983488593036760944892187160649349559608036769452379146602178921521092302488909646057343427050772710397981077746904109708929769608479179242420662023449165498987289495667389939269467254419282305493515187243551027251311813168694412288024215530626268156706372046292553863321015805438437536349631235934985454259718871842729100975932475945166576477549226205177656143049856389245994793541152445063968084382811526683947685048923004489083480397166147075285309641487041925930037272590858718145553347492766979779845646151059774742889733743059088152432982674617898671803570557070176141676392340924732908591122898622456649321303292566599465178682806975442352057551680895658568371197789241863953748318223145644035308894769154190977708479049984028685486822831621879520166145860229438838255525292872974344000487003696679608099704720419491170853690949260163027578780013492618869587333139704628153609540186319192745872144029084806014361359685180592713903415204496574129680732652745337226437061306609835698150900646314211310629416511476314564965447134482540181058429256307827042320774336202644876343835025440498403995205717322826547664599351147119613611268762199631391780900005080814958854251974496671524561463758843990369877182482543823037661437465239578938890467857996365721355101919872953308905647635563193591757431182744694735497082641244656896248458570806731870351566370081470342378128079090458094811202297973372585964806535123505547860463375031371509114669661939042473225384978196619814643899559797698403351412771582295600982637011093426914270870586102357242014412573324012719653304742373127044792107947735519681936617403152685522716221040373294200592509711731785399352015300952234561351935970555769825350004291976621103329685311104891848885636336766282978407454698758811581429290790875064387240807749269672094464046156187322166642187972183160752004392778747885150694879353122606361241997572525832091569334174276914605898637927206947063756759287098271117966659885819734243513896647190117570696562919006610596728362735342947136588148180170567447862581278710098539503077227214076295387261083807515135492884840874698993773448803910134470388644857260586115698425781757793637604013288618107581451020477629053065536494384018040182584145284927416481785318432771152636836115619690465953171267367422039447560255543130249218383082512971010921994067876615413494445060374740529785879924885003649989064118009110267718091283346783746381649124220742485342391743418962850262395119233801791364170202132733404750514824331558054603495030495907911055392241517294747006736687661701049807660926587650048903241962115286689498334093645948721175225491055095998317276655133201671770559515306032148224143593274348436603990272284512424193751492228723034476138794180342473876344845399399979314164945380583889779278813702323627979354783435537655418311636578469764289845730495310836105131485294037818781382150227949429126106125207978547380758934841079125295235554867282799331625809298335644672619283467459549846039235998358117273733732761617395220211694583704617249098358729342643618835003407747682907717478124323820217383237558760423449868753599984177805942878164498529741802633061543561052300258852792025272029963091487200174649504007517958068858643208814379785274158243084956780110806001618372587974790236722221300261947178701652521434157956251023009497591090565253862592065212165450121359342252220369290072840870636548718352031764276763427097956267354560804464783553012062810433077642362789487897438573108903122452812166930392898673901536763573089080843921754119884142889680405396949384175672535684262795167679372145792557451570543314261538940840556740428601298394912995436521105607226830671879141950601394104821368078801821853241979702687168752996181040371626647035991711689238410464881316800055338029558033847597598685015311502114358902059683838612375416068295660789915111883362947850621593138096493048591559039268239025790347822758696774857074091314142246774505988053354956225338689997132446853550819382134291934785274258495304551635486823120935963459496128183743236988090236492815358855529535929415605905815390346544197904882320848585557501154141473856508173459009015811656221009462849176984884503877466350435989207506323511508095946289400807829858061086003921214852241856465127559105417541530244252857174446970306258220660079286508426678969261565996852928001759755221742334514697403522174567664796815030177358538097283386549536211962458358653840561380687549058502354461882040584493746868034165730961979717799612530191436279070354874899825615943198336667414064460298811174696515148687847000153571920005696384548829245958028992326995486616726465337784267786475911496182141621210098977728458046748232966788320642319455526141267202885867831339295548086509815211700979829124547637161009744967415671533803282134394267892749852939869387601196396035909596268488819309951660822364729300386639997521371653747099673033228905369292701609521831355438520428595747299372438617443331811489663748155599649732296205346797696044943868952745611436238764023445044647358262407461608931792059023049468917953607702637328820199195703840641038594938771766639443518885159613585298909577638821900201720291611438530248837908727484834506333308620638211004139499990488290574585332150558004448027478643920005299738557851949356686133007012131561498150108419668922399188497413485177946042976958461968666072442809771618978893737588304920217950532772675917326763622167876476804439523111294586428485239783325708783186459342590872057590549142817821492654777161490992315484275644870245814468893785915176435543121654654663697694793682949207985687436734227042197835014886653012917614562888493861412852939148347148511600250140522336407894991620904563478869983079569364627906332055670248253556350479999569467755195692719649532023533516537951512621249546084421991888474347573935875134687737136918284684361279893037623877648398429393019670721050387977337723730405584332790860196021652605896690773673105607665613766086158509850425628849594328253212836933141970204461963480228790855873734642832317415527741309136576641452771750985810219542122682488052084089007367548481462477859449962184017253019778401103657727755635224419702792286867843803934925649746389318120333146656405015577745203515777036842705099906968083062250090619384840285349033691515311343729653569548626911055406137879303645987815505443445839756230926996937690215303462762011347516560370799564936002735666524136939526434649331730771008479736977509058871633498284584138694059761936204906483673824475044908062749161902283618621983068601580643986268134145219639291750412548097818214975935605388085327952870016600645778270250773247979076868654993558250732968441904060957399892018237247242609865356710568194931803242303669434042383670299808860081068370839271727115042008109335146186323544143238944473482216948569148392485050259930225331020858936834469836796960372662562082770052684126926739108535197010335388001326387536503534166788503416300088703947131374780626017732799333833753079853990701030125247261681030897343599524930193735356183531804973852529353551330559978526120626742762005270397706583549589732503367321789990828958062671673097555992738884017323898621340731643696057949601042358368465952649293436844865925199344703373429932436371598093336455306478093131975062207276980262564854713666680348550660478910337988845712492803818096650713288496328154981700565000292204076487923477963776851870513318512938264333466061728986818080491387665464840390249445062879771352086236369115620691570407958192366358724299187277786411761113324636005143297975997144183035267307433269088705668200166320284336279163619181878496487487895697028463596221623604708752625607332604020141009941565277743512693677112547741580718679384735927729438126953425024672528634066281695711450135280436029973461592487577175179883702163269926394090518149194392090441701210937446414258751381370249796135860795571846501888539569812204255180642534015495896780211084927851928092290935248674603588456878364675218615729569252981824316419028566238830685595894063083534187273680803783237125402186384730703542597971169858566739144424862221018677135448036085939510035822174004420928082063550321290878773650297152589501835082996989593261733370254658444948184369068677570777879891214025123704449860226860515669829721445133706697939133932899806160288489313577689435252333976242509888922998042869343737140403810770211571164069984418030636137272590953119206643490656046065972358880697911123673353532763366134031274805805508632444386874590950119868190400177024209519285048235265487197017138686398021348419597535432699323754183363193064475081160224901504635142046577495901163445067087355226415173745680372416874840044612710552150706584307950670802105194362868060614349840857099404462575898955985988339292407294012237883642063420298583080482950315303184409366388114290374435595100392723724615034939104512822992152839626938027396259073738224318785583214724423054723141013274037507354126305448710159266121473063745965971567104882045879043822062861335911566877435636307072016194096264974087665841263209595751108777485777107596400712850235303275093715100350340213629824585404115770873225118168676451048826432334886645160656151050910689663169930996035595324761896573580242892498720397153434966729502563031755248302926921177606587211938008547301713901004606524706363347458527010855099725401164004135262049006122236005404294446934443884797364657335294393870440609256418799237196291980358731912259740692335804246027056075310359509501205926041221460623718336532875220263433496810394124641803645660788631633189797081257914663271226307001232026198602428968960250661256401516590603083093960187525744491012854889835442162506513657756568289083960216185208826719299956101508699093661301130667797359050735178081003421086773873128289957971050766101077098209584433036453987042198142491060469344646588745306347922665283100688119903268250533471604304877130286037344795179402764159151518904710759560043991513522380471557356425585668084610431487284595242414107781942417648074824199452579729952386336719839333600118728244575367464440427215768987566342389485823552648198586072179544632256024085734288828419493466947721642487456550621421274663407280362616145799290625846187162057554998596830280069078880657851376928323373118359150469939955192285159624126759332629099122182105006480310885797101632462802864159194764799732473129439242387729672487883526165658877818820933251681510929646137089166717647372946207863290383902631040768490078397658303170189443545656976245252431071245376294929099705060017189887494664082494161337040013453066832117429651407025499721365577887602687692758395392264210525944000267509769086468471716149612918103149121353516358695751509905914043001266061657510550790692265293167465444824164651388674270866133484350232050337641298673589936227237701390391104914142080644145074429813414510837083355915864145703938693891228066858923618108319424076577674961913716823164927909809782028549593041066702069856879481364979508285472789429783076989267133293536058733923011270095285391448495128860028105400434226759544680474540155223203123697493631160781926740045403545598934258705724076284048800432516034561117982399009045906025074838070933568728573993472767064023043295105037286256376664797595196149184364917480135344199087175619201430566700966203549247965346793281215621982116686577487514437411572233426909279123851098120586825446749961196748887341962319729297872312435703554389900012439245583835950872000389380453007710501703994518124333686892717127142509192680516052767953780795499792338355557136167911420052408283031043991906383769551332132654328133267972527227902437581890513557669346970908176005469634240307250384672837130834873044578322801477680935905391294506027125930443643634083683040063302137709400983640494253503618628820339504139898514870651573092811201333477751161867367817172574400648545058356701514788483884968742777908879923648315381065976864704644863971075810224304834166951021822354639828642000962345383457614276489565472497207520449952537163905354482491172735066864521442442993424355822308034548436295697990147056415800920083966621185273632260328709060203689581157574566344414912946742371467485050299220385574367674330242586767011663925098829716459508289907397512351439937492623681382319007078574371088353778835447442383958724229165985574287244475264322269128020675402267997538373102430585779024341954368196086502333865588108888068457680932947466403303647124743737193873923322888333858144643440556289509873971874508036383590198707035928695416200169281430176834830043035310644462201771064805906673992958601106315294793033251302905878223815733767510551009244401841409395688047206712850588181250942079876505360669079958334595817540806099046390099852756788842758073113113747493363057546421955049734979893621549183188422657324452147049182747780186975620483273305740246072335912858060061400226522319282199347921578826266645373504849833785698218407239086258165594321138010878369307002539009637580776891935894018372107183618190237298737910936593420330400658142193478074214907378141143588839339004009438923790185104448698372894398466049347254534022273613196728191039689426927525748414802190884639590682170445358781677438750190693099276621814878807616533827172988340940301062502529223066738980869955972019680880745221043755414719197812881981735689810985285040061330594348438654714452184071867320289375171536644767456766052789506871608851263237832690130702103514124393207972394275823038771864908449873893289705244597875132195567659706174748418415732533320043286444300682823422379738057979701003127059074556114074340377150453500341714758359283183559229705416346180781941739801482098280794612917642668924739896109970544273659089570295319641744751463067634617983939822618785393271041132782340494793823177977004825638575392649404342808398825795471942857377126480956737295280658863117926045354072768462544519550473012244376946814147898044375388182259713169753109069074269955383721948359458456758686027653365600991255495814510655352311831788403597346998659695308598823352913170781657161556179047643576379696813373690847406011685597895670997773897831175014311008095665287161149624404343016327356903621244998439445978017637320707352753014340584640422083123052762697655074864264985472272507082030347929272950829306152984987408192166394897585412506045540892139060579988927839047371621208057663824666696356425307705362267214827853004627718157491602559671536931176935632022691808691017156724713070643856416037837281538828593419029632105712327929877188104519510303798300874318779525724308399750422650666979308163130067994891175626254163928556021096481485256127255516851930052198762402900018363058807712322554069934747845609261376652089429746046015707949360819098203232432985348459051461219478625016850445737268279865425153923625288487217544215222033122836442761229686130976857561555540704037099930093359529420244979051251822009080185745859950324454701690296634175295065322501669990544516951429370564106117269492104717954889237653983975806786769104267421535816584528612830623336500283979054015188914674638341632185758529408281306508527142290504167923228302275712970128707998571915576912570473776173945498591338084511216364399884544130362875168677907584647672384497001842465571013931551424573530193386019421843486045043125238047193189512065795757606567410314131017820961524084902423963773942780351988104100112749122558705686980253815109944912516539851546157379831583408444728470647497775831842197669108049916992442259196905310172127580557344641432418641953515871978862955267962761826871292842903254728522891331328235284734461226107183712859026898891215552420656495240870907982112833414631562986157475951018301281119723369416295129676857176198403560627967327954425717208992784989806958306536453711540171278137922483635965587017180216482475003818504260401344654322002134332458125682758748904462544304043101365268803570488501050586478299320136068971032348318341507788595256004282581522911434536241031357958106122143557493269086520360349914562244017452476989863728615322206289739263663184066819934886777603516650482382068195848925065597924563751810910283484211889670822355596592170820893470779166774518733737077395074315966338702304330107363695498465159717316439145883380422077360529900084384447019963296650117311732072673087217206857207477184942721070019390822235986246202623168409111000730314494828137230394257114659905091480176267734352568955763077140760740286369600695297708245134182127045147288502739958235171449574994110064082908960198967891951944336995817661430864147960620875688179871557677312329891238178830955302337458394297644378258452911662838625566139158736369757735338058771017002889069132560072908091573137083876875827626394221892300063118884998830756705100574170252485258709618948199329914325737445569475934751055837848780022576578801708895311873687175373938134973731245070336473331186701655409647781233573923522806842424526021748306869562545176982840821873509721877956306965699244441116116148429990781913519270199160339577486912160237826893128565386907433011757634837746686712105954027808313068163345079394655814557940217250655190650836458188523500913861941666073408057872028837889848293373516814391966052563179781970460028554200133747155499328934719085268738664452039489458761123450890980520085839392644815552660073456286112310490111188148324734740888222968089860998966468417157473055241605064411972551453801507709499188961703169659350939808304295476753571807142663145083435254037288110368813110673051216634902410302604034703614672118819624228238213971125704739929089434357942061885788112654137664970585043816012833740367181937659659119125732790318438770550288723394664571440619088266728035921176317033461798655525047979731078662307288466025979285085880742935412244571641050794881980750423129154136802180819605006021207395690486997313874605524529187646241959591684520121955914468974855181596300266953979342494527074742712209245148232819639195094790410789398030093870431642274623280905750772387255442593753435946639020695596234357424799541606986606450152582836743595926319064686316747610240851576434551633207601256627559062928018925727454259362490749422955892306498923426643999111341579986898257928688922527110960665894271367480095615407485158811998596419580658715285443424386187716301933749478261853368503744812265321885477198693516471228918029259318942979285786157217340709523718159188936836567727184530433465412962288501744713306954459951498191309288434026276175359795951981291137274825315682253710827562199512397122581267780040700076366929321450761594952917833509920178047294685123343663019922608537945201621148033918000405962317496188649094147795993077133541825631340154141751394368640385132031624838005629936701309283598089873706401441833257512563306540036018227400499273694551620723869520370948382126007794765046775558408979411508184366604205837624933827741070931583406250429970727991436752564428790113117510001065746697835080149760997762660858962236733186407196404427402306675858265185558628044866072919561446556352396858241152315439810185867035016358284856979884896520896848062800030605188344930279438912761514549525541389683987792252695653885146461289168338476460290491838460688488468530006277415672028884004762821510232859405304765166186360047568375547441358051419883070409227700755150590748197867740743510602930843491761376263279152406404771443562176221186350826315705203375238516654638695165288012534242349044275757794006858458816811457010635049572221287676707949145300432724171294971318577221878271381976879582135929103658446721229131405512292963392020772684918504413796596107281346759942108884992163201453980680863378232559706383735235682415794357691437588156335299793818340919360648000786655448038129576293116667801378784143395721094837268937462004515489066248257917252145118398771524975470562414525032138536557408244919178944136919730981006514066820157782121863347784474267171186405997093124809203003848647251436126170511644655109773041861731722279784105017179087181582211337681244265354261784701261645389217602095454971773638263513808249203830629792564350882976281741686546556229177139395372267893748100621328677951471401407319275159925041259159096613452349955677228549294431780045659450362914917566831269794058167665078861178503769210852650204691600506674917352594956576094028464891030750146803557790930939558992159145218035946928030330805251733519387142635609739213162356751926066931900513827662008741794353902802423069328953343142375306320673323846612974798920398226132532480906968217095723489831386050120107903992205593925263056457200043450788565424104795789857731082230929864843464975551476052669566311873326461512923374074600905370435319768165488684338819443292462921778988599137660648947384482860759473438424090294368316237623450316568917429381459661059170196956452646138983093865178711314518379309213062054961031192105853120915703678179381779311554890604467899042291832921842056663310648202230575120534196705396310565475340279894496991277608716622816840553547854531338042616222431982554532801399310523034075311766062398382844590209838872743145328460408470529671160727877162075885920887989260668819640637653270291079469543413674470366690175077868394916360121405676935840335847826862266074802525470116161154832340472389431971699930132560831968092065321092519096960025174115638181948795307159220728963111742772915336891897873013704240352437827421724391806472520539371008450632300169144641189353084726609004134066206639422841256968791542168098090571557672775381738271664401754996787017914325895241405702380642652129600615974858235908999722602347923151764116770621998718764100901674368640593347593394503234710562789572955577678298071483535342313741542716627234163741848800745299228607349115894454846444193259211383649362343937742366430556707467552127224753729252470046718418700833658971151628159389367187707634982827342630037796216875512135263337327468507365205387601423176405059591723794771110232812963029928231285680720467067662181443338071864156996274160237696026885837198670317490518628260565068378168699769894344803091418868277049612866307639335434022686533453239484357771483510709411786390970289042409501130489609526911242602055544968031471107103217710235820440936425202827145098312182508620656631623189710360171716902428980032588275703186780004762584102031253264924497732938996560942200883603618626072983550397737283881084269080031557868552343889034881670675959202601404332790888652896202839117743622478013848330159427123943507948718043863742817761157588224367701388703172316943225979748563879736338867683968544500625955727536700895020983171040434751122116473249183928016663412204188233340486955003117517466629541667421009801671496188489233537964903157269381995130912243182947669636766540647002523826084347534928126128216789437353856393981827201579351159808718328787857451110480778088092025698552293376068427504651996930143499446887358595676981704655273031058616275766431789146959563738490947923378438092600560780223019939620825856459920369568243215179347514578783372965976630687673691924975779788979578645046672719547715898858444864576886534962782839889735613571230294466331055391601267869591623532384222575655102387775260185748654915945191247736289020804041255139505348932010603016395997759711986549797899947517282958254059281092976218846920527121235054624698476790693563859321072713001189447387211616123549578690127958242402429037464763885239328418445549570692746848187864883490293423765574815975228077113828506436203203579259004638755042810472695987432429624935332210269279277156961757076544316756427514818927111558537186186295498616330480026464906202280314611684947609967935169638260046490790412821417159583520535537000741767070257531841440836920938826726924687928742836221529671492821240987991797175330951163765858553387005965393857728082927982663130070902608238209069954644341916014199332772881651166458313029958332526588331716469177640253242201585031864589171701139254931320880388248047412184625613584470264317646847708819229929686731216594275586653393627299971247502044346835596529768207350521291009929368965557962581380389125772137710273545639174660665244322232952751444771248989137468227936643418243398625049462960042869170300454456369589546048551809733089099878141330119325451571528311621751652325203792826616985527068412756169516091312454365252248695054392514835841999218172337828266533810496660484441275299239721249714477796200030328267800058963422033783250678134908186070485094239533813398934669621422677799184896627607781550900943612775895900042588606209647682682406992246647077096234643693015690854929591858865261102575275955049082984744043085908348673010745172882115596176974428020906344985585872092335514963214482043407964778904075266750667585072900992808914161896526045947329243517078364637555897547695376399642028402356477788141656347031098329329122004343697609915624493873309757621488797707464793145258080461232533954659468634725082331940032914879077421880178044518831585149279365589933080445120176974916609945985950462617196123575163184494570482285712684701247596633022844808256394030128355416930169081834229543369754771648582729100341606560175471135825713077901261331134966264651079357718942646776811091005845021874506476836846945685995134658209142038085214336060400263288017898240652209871262202097382443617580515488126385825451724653046992080821195535528291213091119798725916150106390720728557801531406779305028369102294034724743843967473935369730453252810346601109924760178303167022178504496893570326403238645434985988474187652110686110128608471435013197894968591355645453736933453015752800728167081983162578135604993024005407012928153898505850908912635438165133188838074391347617530911218867853091037708618194018220795968721312038466441572412903179608450153193210648447229432580340202695231333255668888862273500568538619938766323772059615692240969352709755781925409668444029006991092479132754181117195764633202982051407543967160700767289894004472552984156765991003983685027051091769459665538583104492148813568299452697315548100663161871149978067836705789739249042540192116460508746197265140857632909887075166193855095260668402360843858740958913845953001298837922308330582290949519330263865715051640564970225500072271759271435269242022480555446676189534024644518046161823806496856714866385932076093133360389724582472064140463743538401932234125826643478265073120397005185956859391264931958843547978609779447890574281765864598849425012577477226314395306279467528727914614573312776392072814884703211835605361508512294145783398949971668574499688147155668044012056920537243931512600459005381532399809112152221576732920494326691342714214639901383909585912961340018226321254100338670813050248803645665337106711923987383537769331964792713139344510306693398482609841405060463311709846510054947654679284499383304954511896818401949825439193543002136436803403836525710952781673034647913651723069600654235302921613149329972117326348315235643480752441462575590842677491643215752150227016513236696439345170598723991870867303804891802648156790024404984063565937673584640688763598654987386750218720172610444524313785459621379608896912266675550037208352698812001933457322755776285413642951651642499266870338199714327887547922593921233042152798440931185094197785577716922756652976886687210573569206821600464794391061989932955895514579481740168798279796057496280682894851420419549975452005142572174306823179405238765272928458459015355117743053502663937633894324228029927847688880643284777419671676681942919810034995170446203888494252004472975740315196516838363973892546374205416996277301050115836441483526087569066695734198469400202173600848436702970153651547089187788086542066565533674576371328158399496707885085552326844530439129575906193509713155494217887619404301605375273308125665626303200666271027374840505021403804129187478570212451237695212847911915582866790286882798647219634962527153040634330357028931201958410177309707434746765910724603218419559164183715046846829966469136143314562747219058620310028039594248259726578892969916504251882267219029188647557147487348123189800494982818208314794760266576032152158951878881604441915213813823076626423242803171575317376002327365215821053380128056935944834702240458582831695891961881706169450004755995055527903849072611888676589300972749862917346489384316081549362035683405403344838961689192832510845934810295394606717091115920810662421023225393969798052111114774068187002452377372191012178623618234909378434391824263562636223986553122532839932636712658925425794365978200184265334854648033871114609522376190440070074244784865679112126706250357439091471932030370376028616114477959262128092945609439936897892674920366144973737248782112837206014089570583998261992500845675140909272645396866064910499709564736899489480643739719710749176640836844010355862597625076005340597382681389247582505932389519149994933858520097784892973924243165294831763564272806267311480532817367355271158630927242239162610774338514927372894117490533089501385917077474640764650416800333432699246089365498172806007530625440376326847123965212088590344346350257089132952222015902579419093901396917514256122109871634364356344421486735870502837822308169660352439224889751824555836452931628937405705363232992206314308821269530791032816395256462687566696352977593430897622565380098590963364701950974127420711392856656065738710791719181964456944285572812579073999321181710571469880338753635133360701703873171153203265155597802311574512176296692864161722998187236099605899111100651258740915158638667867657569351710341847445019447014122392463244406648454901800872529674481303806108278598216700776182097749641005396774976647933401531936433557107674795497123857375883776244518937091693408073264001853462683624392195746965916652628870368471126647518886255304638413648261074778927086716454892633244119496699799663437044367945362120158764209718931291612129948291926903293671880850317776444602453981158719722600371129891859355478740415346146680880178864687341643602180179797313897883018466621907371660001323917664071321360487996533976202380434901467370500781207991533825821289167324709638518627941978693344621176884292758019457443229768827478392936293778977162765450950957526909827627682198975017957667308700865802606797823177492183300203275477207085114475424219439792011921840586908115292802302632770247325042122824748465901355456690494584788917240297345829732979745295785287444787564711741941223947790496289328397321059210155235777027458541689697639493030748812634411131732225201264762172528933357331581994123612700252677545482956438155849769458253006443925911504554324281940916608509610474560728932239194759156158480611972999343387468712573411251804717504193268586617516717191949022650003305471923378777834855610359410050395249787673271397776329690092492122375033765737424115304994127660508905850233276275486453158045871742202624367993175277174062046247965675444768216581171764304170087707797454835291380709100465714166387008411892682445370384188937181738477007266329478163071632917550254262890286209850453604710658647987313901839836630531876401862872169676571704853080453527678730051575954359035822210809350917503434398717660642243043770155831278532387467705878892426933165835061826708486066737056853134402294667344571832311776773479903871955536293409533475878000860257388639301995825943387574523212928048667336161705423545163921109575227138578519071647067247531850127114178657096626781034634337885493038089220698984003409491357454281183596918591936754500703363634019070461344593934114061876415394217329054714944407589213250632199019194521811941594103855013357868818877533193297164984255402701297130679791991279106799400345116722750804909049614050378151224203111100716425689508497682988096676152116551732468832713197102532916671092708132624620454462824155284405841826071315077074284778359766265261041633818100047057447361781997424399084196168370139787113876607477618301940558649016475769605425105528263735493861642164710146030154244110194158466441703990986097127757408417604590364785019478070895559064384249438972581295146333632060730929344984165897928235569667525152259488419203689827439253099646742778255715502550756352298703639354939395337704697066620616713377143958948740258636437045436539106191554315335742636133286304210704892094364958392417603403460806452694643276897746159043541268635513263185609559039081518747429712330234066902666158447752017412138172562159437988959122415140089953399181787506975948389178614538370634069346677340224721173357284844428562068824162295750938400796567378178996475652542383191170517688951954793845084166167066928456473225142059757110787074614795192361364652314465068455401701946901992876960942589385181539180252788971502180641387024345931884008427937436784812312275678825149867184016667795423771675244735418842494373869523116029770495036652088156309853258774506263376205530227005179347134710647200323543203548241525424451554987575758111840031453560299204038908037095642722213818120483476133791071249580670697172396031201529489273054463677513076260346768433775418319860089898751925643389826685397903729848276822970614323967481079599132560192318817402948235714031213196916811273030815353627360072458859046310989151413444154467310098698072354462558701523399316204601583673315969172954669236408319594282023399611519993747047741150124016520536381664460393720075019353713412716207444326633339176898645450922615174570787707516748805384948788264206975752203029776884709704256089647113020681628890484801082209122796248825654419313328890048351807291231995723838044630944508127732922047588400365167552309749679889732471699487750895868387932169144748559607512210858896194938855598342089169236293170717535335268580940299401443582145602750874058734503732263956328549203357591673548389615055166439021759677965751405661945325862584182740920417806307913082430170716282795628403373927615538998208384892145418890151991666152036175880679049578931513229658641917717251470183358903767252495702931397115063055529582535861531115543845055293874336440073529776128849071986329441099245419516895987127661614199777029107265025750203029810409611980509859534126968689312588490503609696913119701848021121200744691625828369132540312588100087239258707553485644592163137368642768915590238660519624917080153335364796224126896923680130990110833113241688893673458923343732644161928272121061109305793086422278913050168775675152188022864799523803238389213880988173853599343092519407545673545665615429261702049797886762177496615406373326737374044444238727816416626771401583566596918812053946149353316669594811842268876557304422839436685324615783102232264944129497671489519058403616196276949528395349726806275694242827459143493966375412032425030456646570244569774763154610365982509938794119581873162086208131849796336936257221043311850380488899775171686237462567051555403488218164341487494254335938084195668000813355531226542902598339522073527576426411153566970487857492072700951796193943511131232061477193771406647202421064931012372377295325453295790132931013772421911432019245475390827918040864267212686557055254086043584740554091534819581551498914008145599782225956133650598332911837767136542730044549338956977981457294331418968996553428965343363935484355204108644611543412496538348238906409927283412149361305739902409482486127953113183329521599556782170642766607181397216132748913669355002362979225513104170046491667169466949546988164233765196411138281935269228686083681114023295805544679225442454351864331710778543050134644754538623807377114741596888072108502334192612499082614554804209200236284996476602729409732836652993667809160242082713243929198685530443124635056725290399347947900929097064342451986126734635870342093783187468583518840661769364301659303283663673422633279466343682264669447251531341471392720798098691278016379377557309780426993664287822316665285362733227507323367087721585406461361082458263389406799070330653716771375394542752480800503015504360012741896196243769198237435015209608390830864763411205354048549676163532302204700975144804060874830396820601539756672713807652978852242794410768991980451993779017320644549420158076651153270827808220734422293764239114358998621097132072411628345476461593580891511357872499216953177510846215487672991076229296442872822548554447984166729335087427911428539564084606425593546288582640703431132298109530859043408496361852856852660958529044926365931085940143405330096567786787544664582885369529499345973879330719797305661526820833571506120797788316003709668397997279235110710175975517234743597427540706948382703579796375118792682056125424543902917096889859458265682875966518325267046997116365872455372894562710955877119165478413000122869454017033756486245106334180276341406844718918754607645862868458277823670277588387201370025578063105182772654891369443046605182944537202154528485120323920856689074621530806862793982116904556819442156223449272535062837471098143049345852113765401857710747768641806730545717643047315507019199998206618349031629095887334564587278595073650613608226622085871650774660693806724227639240065442401418890012667536854003605266257257267352091513942924315518800279183627616124572862085835212943508333992518407913784273595603561099472156355943570104848383725096689173648662678348006282752907898228601877179333575460266926880424285871753019326810331361293734886831889022954960820627511835194536404618183852678962998244292248955952990753938532044576258119884393237504990729579366412840902064551607223015145635656703299210902719660347294513748892198101400167179699671217195033256464588776679515332129656237810281681052415554348555755212304742614664417237673419224178474551600411909935202342158615030557297592922175575454076937426939632052473281980657229569701518058728774817335698940568635053612617600071584508316409463088359461154919994024020761971545380786640479841870408907070983361182172158348370280364066214634245518497643888579006905206832320737993305394800670855066560029161001136733432234375922969927972099056109037147957101375866817753298586771536912805194989402452374912654592987230703981350473824642507381130957177556526016261515349716866923103174569861600731774809353513011667160952135097177421461376647887680592296198362646389432378957507272776041195131400336723677118657832957387828826216675238590414183340227633359510517063280055264375378679801525327490353131381950793039270538621140282341200285811412967286496108953761052368494501250928125409026542504492597395260579469394101629754689995473553404596698085160232976413450577232702664074514972897496759608335792261490843735726850263152238759413127425576231752698877006327812687536903467707091420178017391762041305103778363373132135516523656815663822502969035299692462103783057183981067996013239700568825962012873133761247983931487715895366381793108505493505947117519371361939141700123676321541738359524854911901634132161135774681584183188333100145273488584322757700003286222757091738827706601614680011145724711267827771054816312001045912456601774242433180247138544429273149504503200224475844896064207941694630885676309377635130808197329796474987931774104682685255353321497709720239657184733672730304632492589523641270719631325114666805021658060540329780911572859263096665377369213116863256153336775164119899516875773207856393492473961419560511338140778063618677346380762516169015234881882535230163048226744335783883608247689511827273694886212245773826559074904014642997125897791946087844512499959557754687502918585221012393265722208981377251469123317608768406561835894649145291389826239411039781205015725963720707802446247773400116398823077447851774850321242469570235501628412550009342783874818643421806197298706290103544145649337395330323890866228328000388269485413243536933408495678225911197628447705966629689673221205223011689422713304711163323523998420427364098581466344495705910685376479689026970954296801072297733230137279084368860059813555631040318973748126719317188174362327580168507775803523832859966240212315773699506255750876400725137736863454199947384026753902161731979722116388822542195683098092839577438527413564631718679609220452706133605055819417815740743688127729706572511399746171052707933689572204821567498492206711407112202478364394771047936284635948125881021089372250908933675721798106466485878003317048434555706375361151143302893283230137956174938688534860342942193476712094514977828561185914144876559653374084959622928515202224326123124435220554510199201765310182493467724486426375145616887598959457090568334656907832962050279375889170523300428754576844466079757936505174543730334843230041198309904325520191688007305051138390663305573063436633693537352782475629417250078302922266890608188341171913490306084184716032786722708514299817946492606962445884551027023947531163962425187592768460987241353758623221765778220889943554179639652869172465856345532094303205487775932676370182230522920171909137984538761590796510048930864036970668578717391178372900258441490359223037663989140063624581557841669423941454193881145001935098347987328133407679857550627304353916088241707068443586597153449641831903282517777537239581996405419963646049958295097831779105095695988652782603907722035354601949670325437642886377614679800733010774721941938310266615655746447417556080901743607884750758233151189071886436851466090231089444839468297703227795423673135281886614582441965458459815292627232297942543327347570988307447899134414457184433449629391349731801355457598503723125598037142377737926417877183740616763112356265782538258638819808306660771401058318711715974547465031020043880288305552052590094896605851855916473452544304663709890207167036086186603833451663416666234926969141923914768222050566260892093937374492044010052021132432477452592054364393609380654291465675006940358970785701201584350166912748553367974887521091573583379922335736747951390088693872010474919183929592951284857500047737222794319772136792334467561714969075576393646026961895174150402318108561182238042821799647432917818905338153603829528357789833566449392496711927256355906154645185295061141288817109410917995191140753276975565801170013551190429673010179256766572643942589665187346183353944485731158342434705007201216202688735947288526435525565792437795423376903524443729887773025345777963774439946429670659138131574198456482615234875074265835310879639839708576570035877653442637532564862006187163590335473867962206616905881689038921257274614955413539653376888137804502945319941318260442737657230207974332660547120544899917096325467533745886339543294416903268303809415171392878575508308186273471359579874243530903782035036259818565440093129936220043532770741394071124097049504127501382321424202221475017716525132691048382736750952714954136650389657099304656901252251326505646219190483750755663491816278806699870200554199614155458836867752532522907074771799153718862940691204899193470935421483174154390757640185750158255473124181016339773328646493530343133247926518944947125334555563684429740054833669956809548318805135429854832074838759231559783277435579907189165698162200944818013108073679499564485868253471983951693628905211369242739938704171064176268351242299337860144067939604157633374928454699975760541101234986932214618032898578156343827068056198660993109830130396117441397466934481524880568451131803489184664683553291364158039297923777553561763570491875551921687399076096369611762861954350568785036884222019601489856069203543744188656804591585085088325637490655712692299611185209016113775567079004446939072073348278498324201630381614000674094539571327566008940360932917095652286393143245613358933936064596423764226277252763654010796037092304998445108621712196318125862823916462433290843750835766886234849538701586618793052503587770040107850936745283710586560583414172230143472283523451398186021186878063924457271783562275997515158827955556992134284500849732179684558331725540582975893539669317815914016929148275316290844453189547528647465119119604816829600190426770185429158673141561475748585926250161399177909522397454370757942940559616458048803007920875739074540753052559721646789006539753098474768012921354812843950668447214349746502704379645042142870200999287087288759874934698175503054843475668652920010451679983865723366638525655563141282030880696236894409453086331071982873603351095406010619434398998331916708657861645503445749540152075042961139498899376481509238221879601867000085404205014781385563986395741040603846403850520202898583750918039555767721082252846980392006708893468501324386328729419149915848803781790417321985430017657001205008163057374591480965351611580231457143021013486229464591504120054910905256930003337580033039920544000569352738073098636547277905148442747650074548156918454130023085163494363038981132846121919644379725497019910181609937866080339069612534628389855570148873103440330031519530654051796010116565634330277602633361016322143594678531748512742393850419045318044124289757631497753349433420087339395150352452566151836015402551605530698931801557410236590386732291155236914283501524775259019646332824176804569757076617956000485288474516772830938815686201208103849145204221486169729304871945664478365768883766791712072688219920276756797754694634702179604506955384958826555910206120155277670030058555077146879340244436324133926991239508761431005410949898191864099270581948294025864242504697669251642368425279329760622387491680507555418431305416000427804187189665728275803029128626220206030576624781502326600920227247548518786149635777396281531794754967509764691427441024424688797639805977956507651202429802076321271011608130035554516759677990980005303004539745623463520253230283105772821508651517522053380102428103014581139641446303784660168723273222609978296385160384810957655972184204170928293606150387461841962785551297195821083570539482778701200179622088822491155775796923955216172851595439016714044696373988241347921552075945305844920692743004163261491127475109052104095067980183017479410859026541695898388867826870653997196524455036494677282748621393321388507713426132013014024602441684972065443314687450013161814749002788454812907288671260375372789379785684782153872908175457901986651477331900985301573258964632344417308397279228612517944398805661106622918610005655710612673860667854596940807776217571640653810514700446214899186841427798324545404601313131394512140299818800520373524160554598835083961374299258738306371407595432095690505780393487627765419059622366120269250364314067165068687520158421520135273968117647808941337101482599983273264096166059722339302111699518640675246288610461457023158351142224342744042968959892453008338825718399463299866939221628557883058175510096321479571409534974719080932727263194615868753776162051121087469069902364943462046886129497773353179336323507367018231699186764624872652972794548894348742468864488657499487897356800444276750980647727316862493042077774370065847478525513733956482387617022097456142984213325961059642747525304477516294389767915946527711515081207194219142538108634472049655784244218152155592346025317791393821270198366771839721302517326643378728669079147143734450945892492966560030955236074171200525190846848784345995734199361835926574578889178861622402243924392541911807250876008984728826298529545262522130117184498340281784189081963106343980509737523832018399235986860549733963674176918067805412320006365209685748386176692924801482129397684991469572033717335620781105369826441206765141238505817517835782522465017623527020512709371478358973418460530928560940688906523597232497996479928195074553865697773871611648995861288921548614008496902057110320215370242134797826790619802689069974834928377820486084745908951517398103683101279579642431175875877317019037962321400391272620222872821465697150927974132515689278023378208158023899836000086897020261540445435856487379405606138075008215829255191230168233079165888366898773016757454048464120153067299377141281483409500551630794225599803964844302028645423561803125956750821104701359642267589902858290499014333918659276496406784526248175029663382584432580001342856559234503295873185002837827215776431790260149459955264864684630113137274614028456481552444149007606923797414766956909339399265384761304707013314282096634135434926626645327321039303565999369923727644285838121108833004227425701023602019996778362623323866210663333730204542267081607555769531593779088798730458319926676135819138476908461019396781870835957436758279977589009222356963904026455180599959727393493105270354870287294992669489731405503344452729665676871880193355800522152515572088653894940771427389989433153203120295617333834229969943151848438805205129130507587259835007157408549686311316440956718200020210517296973044981656870036966758142248450010809464243660089316122195311037679875630458888411092790783272730602297118521071076769467751511582930661652245853681763088914737030358751924209602437853166412854262062115498839189652567633975979547040377136886198076841066740687524027211603262393460239628095938194395806877019757587341280070229453248993129320038525612235608488563265943087139345621551318364803200021620474526226028168891210322368810173203754620131296025248368428949556449203938391314923078270152622385314083052092959534285902709173164330616203020986822122211400982402452889906779500024936242944125527806261393737611988111561107492487404693019662308379592644103578441109463310481930714991950657670915188898024811214134060025961576165220836380118505831438600115041722890608552696520791599651107822455308917153481623122244783844305701676739450767572976332173427663496495376953206305782205320752817966446908091357772384058121275302119446298501527891498576627921893976873609651725622434969171656815656327860728784659668490268565395981770946112900261792042380075087874742003239149453865144345982800522281675491829174296205431023568912290501702761201441432262916479032594161900694931137672087808777210125309728527569633779722968974262819197942409087893898080683911275866911244585173741279037854746844084369254793646396539544735927797422854303968646396754322848861253984148133774076665539379094283708944225675233245568283366983311703702705069965221303288766029356275190703439876952460086303357992919816290554936804268640311239757129600112548804165793087085725783651534082743191391028720465385837063391716459812249805926256782974019026132602446140635181765317190697404991530598969082899552457659439814888365596199672493731286454829542163627262716704932283461598033355210957951001898856430184649493000188605097496295634846993535076268103752770364590755691968443561252274871553094503886075505690354642662337476712112698683215190540402667002376092473286850162819424476383050734590836103796010925016215111205353886621180430735443073880488444623359477345538175445977880748711836965419542485190322330802299111452770337534831023605488821830773044519197215068630357853214476902376654849923904223153767007699869685919533463495649696375913189255822276319241056309861754044553296664249972734356953966870730679860060539499415129369585438623419602452616553290287633761194290835853427505882201777581337295559953088935398523776596842615706219554492315312795574895282165039444780239138556240620528536105639225283375907451528630313730580619037167340757261767953564985927498566910157018598311455782371227393650858571637670406214746834191525808259576456139352939810079677819320131568573469524598837489422558841046737332473649357383962379230028424891569400138668393484550530279963688548799984537827571974039487526587325483462235608532857215464586156380063133944758336552035405662891288892198565988407925095955900928155010612651857993781864170357260753922907462322541571617187079362820901886391495498707530304976484607003551631690955969658706664156155469396502297225785023902486349837948878706979981423914139096793429944044825446946383665927927914348040214943145021524546585092593688350020862458579787275285021889201163374960549543209438209210285214348326557487121180515721160128844730709680159400872470669036352307706989517364330163133091446613972138341891986401418847149851538981555217412860452979048596954475937677861073716210001015153462151339853595613024439422713259600045006997977211176289283185472151626253066778636231176160842031729639364077227793533889556168528694198628784488046263577093498806982507180469346499068360970764545715126315899115173688080727869191947769890194355939220130834267680281863334718690013350912116204540241384069088500108069431226906306235256796017433877070555890625033721829121575592157255857676113049434061037294027784187142547343601793387057898759654944809832663655753313012958137251991967265511719443763479713607369962269821344385693085777281858996046430604416451523196248607083845913719855280407138783508194873513022549452471668835755430704510972331944948425688308804266797298333553960325829680049874172489510988300496555912741819957500567414050498629597468906179521040580705678452438431194434481334702492928300375646482644498184640143704496048743731345716142216263958030401997752129439086699842531003006024911722839021277518607142577114551383147665103302751934863957882577332340759397681122581473084319842805338547184779757773801251036444825442181933537050107899037736749936930742482148128441373152680837586021230187464356243944313596049667973191116949090368168152575888338782858863610511752280820516484775758066789302327569730897943010770978316486907231741810689498221658550207216671864452002469896926090390532416844576968624793095126177569952743345688709773779821424892970948588590341619974415223169842861905144722922176325785638991656339079068901544213495025327893122529888666506493798623725816457265518942981673645118393541736151165974486460747623152666008170004384603790845507002029091023037688735018979647321635215823523598028418851612692872808460189164516928207099695486292308636953032010881760258389277642259085640253328745248795358692412124164689251184406347010595554129857242872674136629134285092555501648920032581322689862005833539059614366607126945550504711815259417837648930535036022641800544238457369510470541761416311061820499464641806965245330864032955887294581670974628086866538394803674495000791929662238517238396911025321978387646901240888963171411530909414347965463668514760251404845213021492789903050791460094895113152640481453538854970159404317683833191678375345112773880400563954238280056423706790280068819244724932948991405518456292709569936582598531995305642959403099631010094964709361974269733173318941942723756669954783801446554097642261822625222191830256742347322251694773801471426814123020989011159079884114531756398469479540372885298311772821253408432179341537647509518547714972514426255394058670270662897205639878193600391442402366252679797871087206822950342161949551461781143032330841663711762897512350876335213423007759165621034300653445855094250907574703474835591226721691205132986115262367945830302277955238681750603946124813645884128604557531552485671451340667958336609591177439070208615983333248678693941165648468775803987785860344302058405733902245657118555354269500243920826593861870506375394210467898406699902274182516782889364979308351872828271645499287495832392723054055669511957381428355764525910237994461934700453024315565266196041307800394793892063657465249129429250185017934522162269030423503409381495565255143115519298230824663654905001780939251859295348930042592126835223989976794545235545553605679483604498279190615084674802994004763015372649916127770717753438760003868101138042293222049975929159821222767466281678031377040096981364481857160984336357787743458440571437344504345207011888209515108660115888509889338740017239821342216430044173786677001188324809282821954485104895246350815206325037185187215968059409932412569294513395909893859114023556882876903819121234227624247922468198648091475906783098148739180649283308816015378463977893954986421183612223397095636557964620838022993059676442660768613840165956752657205263590567264729170889385813300002115141574414649370973510921675687969492831897486976560607158911615954825232091079338976192469748797753147642231229596737231171861531179576281860585469756480649813936483762488112662273761009946023784489966315509231656300547458345182427995811372387006470514627704214412277622808183437636221585992398098775063660499983951720483816743277104681576105966502522845333624636718599481574443804207303031277623732766967687984520436925906829237545651329781318711752023577764696348765748288631643872405434163947451784041695906628310725974073080961965549494836604092083689442175815630049309754279156052871403529891628860963446260751672543574417474785649164593073293582851686637261255738945133246036491780198469278265186172146413594388941885821283112004472846386814066089152994073490403565643203500178248258106483645062541505258106632558786540189326573669345220511317727082717185695031931345060044421816116371283789965964011727982003928524128133876254758322281412305269697610194706297057191744027678344293760673283252566085931948216163344927794481128571611315563986369085449330383174351093408013665370482556582746659960975925052189224295153878182873593811207889430528327252063084911261344649781982337253772230427729992920673037363377864278553798796801280072023715570627552021135033267906458175472526269547976528137407663082789399956977371432107517378296807910602247785621999925204286632004814287357433115685679371471687061363307941936940129942712827563637795867620944461548752741675007158679109516253439732803549193276955962327103637710136924316363681711042911695676488699188417664231335303407760016870673987011848817735303558483736977261762152956845203749941287058783767951690743616211341532204393087159670773047797986655533408109430480347093460623737416521335644526009981754013492962424506228768946086183319012121531139967457723872849725519024409978687741238681577978623677795107225097416278361258260168091538938613221732791022172603189765055791110866400647668441812292206823635744299938812211207777393724047941988409508599905807222146838647462407694605963175663698654047104465430733516287809410127018183925591352008213341479467278036613861023464678000755416851688044708967246155940588163961224934466267321199119820322973484270747651340459747793291925041008303271631790395763287895001206226047191154848200838521898004957007007838276006919342503736345510273498643530988245390879858000704958715962230014752507097747660620334768942965624187150432548286765786793726231229843452547567786725157561040910573261835917729618134522785017498895750142939695188670493690685805849989907168289749635182279538186294951726392595037615542193499870052591554950718985730353928345071763311623884066505725235152628306830186260009880120326181292734079274159171708841155822264152866010531095673143575101048087448746836869979657817938842810225725096165548230393998094909124831187330750845537307982703842566736224814294722301694199363165426545471058686768547413291291375033609657224108871277186016502852668762491974456154748266676859103165975269036762854842942188491828762783062555212740852797123015501186741192420931782030863396666171022085500820821776201846935152665361748639849767380495287051716292598602613346676922851744952503870690877782354502040813378435795668059668116687897377232355927049888425775115136056468074886157772381371606463829280264015234376928179799435097937513954696097460204780334799530059882356357925217149006849035221114147955565115478595143659756282172341022183338987805472687081945929681698835237550176062219831029997634053540749299018191998367935674418649438507994466877746567806407176926671401352333139468858988298643345888372848730043913372071200216659783581093320963406435533231802738868905224442364004025321832340124333638416749555710642163571406054904075060426847469733356706920300218471100462545486687940869390539111448523481423049556349397092246409077494662967478060387936837846526270559181193052448533387969147675210836303178868784962618521378479601934514014661141987843679408258097611935473556839042390824840356823415204132214992798883552557061923277011292285739962024615151932765069174042041550474275505799974232316199721848019602119405513435210776126164498423439339707614024740253915944393942499251123613680610482095777465562924135223245485128041136986543729139604839211745584352762104760922053119650644510733064930066070391447941451530279059631531788577720817952442609247893676677749712067629839063695304694444524910366669449160336750919531030352951715586615522555356680950183056585886732821970893832697089973628309814389566657507420462993495631414682672420976780591533666019442566737610889301929903932018244623370353012236077216162466457891129095972106279863275425225685045436679474562919087069114369008694877144174173797541153384320859407269582265581628538164300721354702019555255755118318108080188143057976472356904855127363543978744804374734897974886512844879447358179302714502224812251185259555015917208015839890130963460339439562951040823905197988857246358095999476247847222755510537262282977615518647558548573928932222945683567057611715389180036684271292045318932512355129433963822416884487482297160486988802104617752201840714136062251604651655565985895525017484665973479094889941453529737172547441647990625318357583357555226927337303217952474673887966265100482290420097052006720426598179537080182029800077951925723654979992618663720607416972496522645100568091716805132589389657112324848063462578131517539036694962168649046338890461976936397415423253374513279228187589021319343159759664670759327348792911924302175550609687285802438055575241392002701803035861772221285655312898836179165748691079050235533090611177957596951618170764017412717166740450481743672947699747911874790455735203389052297602557717375283591561399405171492210506095427606195267096570388818243427455357974679961023775120212836087291002369423591965527981075725565131839440462173182126479862087943225388115643980007630826747814903824997381817851096806861112330758161189946242408091227626719725438846321715229902962404293392767491975195756030096412602428299270173415045299504996455926400154491539320319243333563117938473731801452681501407439036883994397260287895903747355619208585641181014708349250659165390402999222904432152909727809132847318684912197413993388429089917764894600576017483581974179325693498415926640045547849704037189133173073006076499529657665512016649355913229171209646372978517671293214646790229482364909300833086003988584856994862259687780924372224924741934886854530010104562063647955738550000912260068617898728993804289493563654638413850933055440621247864493755650802953922143432828907680697530103374292173255214694118471393926035707777786419049592122705599474881956142683153221955782896127830326369371843101884475062770663003954113712272759151850743983339851100349588437620406942534169068661331164071729556892235326400470460722763559980757092969630803414608486502109056381991784488024693336300778661174224222356349428580266267200311516469538874700962387808148817359508315104283228324014076255199962161096597830850163392202614701690370527697152273475236289448753273195136325921019304154704474893849099887124728072537415589545589684768659177579244252266942350631348005346067406208294948603084468986579312833210596209283125646351035415552093545029434154741771663408646436559192885422906276145310828906315491225730349871673749423819053458661983114717510073538695475497791342173697286465823664441331497810348596182480785937082323649566731854003072425684647909102846893786624508376762446160827459870486066088723350717847584356932217863772922403361420953271883244065062989511482770765890049303035681029743514888574240333151139453399862477640257181451117385811119300380720638317418400290413328018722706350162250091055204271518495846715773520477212285644503310284673348541106589296320629131857016443520518083348325580269989168035985952802114115953671141530773030957970425600478556993841934109453351081173185427695504485743696572223950926051364696878160891078438554959159342132498364758258948866957522760100889888672976351296622895207384875608384870617190724767417800113247588842416316195344718516774588529262072429220931402250018355920293330997692693184598845542923189073660263032180168250764978902272464398686371956390934089458659300312764846371484339979127442542918088225608597155819283785469727764262049015822910752694819559028173409967898160893113012432127885917865309190631272783061182988389968705450420592407540162222914211571571976985665044340381122917167511266431244432265317063591571635899678226191703255683702390076526355979712296088728980555938185469638727905360129232764005174822414149353737186984762533711357539722613115208230107136253550154868719572496480971476021956919761812180476763034085158346754465273278494042576487239116786381489088444020282421482384797414986320470524154113525145664982923927011428002032773786542275692878209950093135506661136939187865468028866662851446933370593965800734627475871571225229078116490516789549743621301644524448856421995249678020721802889861204474707368780692281755573914265113666383079163744150582439638488282729043894586613824292467998724278630738526618867110670202912434744399276965041783368957845274549801921039811965601648074342543846922250633416046415143167853406059855838838160421660899267218540836553697706822190623211141205497793151492834205757880022643911483186666091723589855258317938289198793117356989082686479058126995855190965673795710079272225871885683666731001637794444119745079849198067890165550492554933948145716204326344691718861626871577134713406128118017084074139421420687843033911487563134626324193436504180726832422101822309653797694675058148595237398480744622633166888002786913958474484558579612093431245866395222867694932471420584140569785008443735305098351652746817814420800694573023550669163644294372208084719363211037791120856884963737442427670494608491764585398768152286108686133902773022956104933991999488468884065834595466191912697749720823535754587696785725942190463379810102498670095362888105526817357672894386626075983112897077512979618549480877225180585482861346118740021183947333068533013593240670147889906354566059942766785649001812302652857435180582311513688972429863769385617468996835936732786087550326199476146139118110520450332247142791769878345723294242996877164555853491921418735998925460124509860879121036381179631458400520053307551631645490236442424991408145475912664985955796547256997071111936378153888258937694327243975213669840551591082245929953951426510372726307079901885052772946362920605014266204865001176950877048969227807298891682686568875878745991342041593271709451843264339079834721165314033688171728622992146915091233375367147844773278941663810854873316586735029750222108984155803783882946174231983072051569339098378623595237975292270930527400329592234009155702431698117932734841907061794211334047310567251256480765238178454843891527988163583480284237245640598902546964676155234756050155243660432487761649644578798535087847976612802553799047292344180834066937009800493495337592127817197473827796206225835958384916154203535485056524142787089806868313255485625794564450774632916276658269707938294783267360475892786728251037604063888134922432941151059644450051369507346593815695808374773889544643731228937372553574063696671447200377682379776630139657532901305477437713277036610507627067764970669432674769179013738189857451381411126503699707828933348434694300018575480704085367086567671381511593910967364679017607552208889463497649673967203429916681216230344562256304566549454861953828326965916428849820409560429630190725072945148615122080867011959797411766948389291139049136983012134026273555744175285737508968487803409279862820307946271241661370255343694310207846958994931554098940230885865333706073195512149512781769996819466723737268794545339309062311467456241401200107212380439039847190578679135138078486284793200622796613653598641084959055367158308162774102163970359086659817380807579471619599280435804752618923242678271025034364833881236165108275655644336859369783758291176333906205245079683399769907523389578346195897365738060726745688235136838348669240768734060670951228596420287149054839685913527291204928498048982430186842116458603526006691201474347194960975724357740473071918400808631566225613124696638162344060968653531530425059191497279596307223042678732962435394639999917460014683761970001726821109975874120763146546796940756931125634802538977713255051706606526792896429960755390659243791487208345113391622424705561579737119817648958519324714485374656335702648236091836921915929059359162896025656707948650690254699446112211324418386800227415079284009267874386915568493018662054274400074857524325027568855357346273986763526562920224607184081684983108837020001872856254564351915594213690728397819980860561133219196051687117058200139620868753474649949977489657530155973665412946318480511744033020788277618720008681234124561627065588569381489032619104049752445956473551361315298658362809251923077637392970567170040025469522436637290703898039626694504587849402189502516934953230678610886916074944370854453808210723012594943305804391010935365793062006127890015182963724885551979333406812705922274078687094824111281855210337800122329726977713564306990998792398893129048128752419403997308064935813291529388254627215193512545429676092034302935444789971271199490970539630970559582052138522656316807911801789617862117542852024879682865973286098076240834489628621778093361032101749918497057093288142227586775449893542025399897085814883750759533160788623063353537563712524117385586890709898411602339709472270576403103433382515037780142839341226851011169062291737394080376007089913246742996691247938043164744816248698509970631234783848935643446839881276680406151353524969189449212817371393568493538993280724924018048672104891724470212240640349697335780073982135672231052328125088430332139227149713535890243308054891520053093033153877986670696760869784981736291504389537407983879782422163521218297055659589653983792446142113871358508412226793722858963070752942759103930336686073441982957715061655643784540570562090636472788413966640985682178096640073312089345070843098807488372930394031019579572886958353696584916135806876899171468746663240428951898225322535409750388338955360538259786763314383027123147738006778512788369438680388917147014641518833170742644132368886156117946627787046081797379371046259920875091764365225599747782743967005335058877795472100515645329041057800772555398413225840514876893254719651002774316516683884803412834606255693864080327484054108709745835323067942682561528222126176980131251767888145822447796147154097822744557444067247110671713262315536022996472921330018755832575395725775409667448964403968939520995866920089586956479605148870692698400726757831459160284436862886945035660053467112765802577602015488738760984604275993978903902270199434617689677348969532282659958145341968146086420547197826954570308631318562361076300955584515337599481809632070751998297433203683505478540022772003440357901210861261087995127141830403348100063613609202493121010357188525619818278863075006146344706705764027673956220242761741678846664654288696651773482803904385962653697216367137952758702080622323337135037815777650939598223998961087328348563331213364542238940581596045386234718503669334038199501524150020307428019640121619301049045640338481427437895475290676364376550088778085453924584339885863110135818457013194979226786739482243012224098575334781751341848349207940822689130010598322052548353249495388158354765906391026957780856196706506333414005147664275829200626841430476299707247198447518654731025727677355874693801694460614968554834669677999660190923516557575743537724826532930852610947794253123560635775497115226228086205240998928650751575603703477879432790630798270947214636889968770879364308453852162234545445961805476589720155825545707569390234059042225596293393177370999030074474206404739289932855620011267954424434922789800746247340446758812440726473155050394387210819570498049884295955849443773967633731325599669442581697010631351621708283441159311261979823663129128483881859298930832907528891063834310335267051747133533265561239690945275727457732699658628170395863597906364999686355457181939182911862951936888671248167324215022885988821831581142937998030142140674680700700747545714642008067322805467478826271726097429847042465805685410663871064882583708071298211590166625507113793118524447404370016189038943304167254993615796224918329062733778485665009082031440262743477584635286327105832790048597481023591882724732226493408585033909607334365379555951424089917468664114450956528096324425669689572521643300461524083652604893046514795213375446643464155094601802350679213237230416992067614346506634183010880866748181795105414821206134383427828333659687150191533441948768482524150879756023889329580690501150784835071532388653559984926290777971651190494626490652083730454018312951413274920488808921912792197282705906935481263895120704970361011445997444548849940875943785040327640091086920484763450078277424865808982888747928463029027507414062347428938155228085879023251668570779394218985165242138457962213839261380535102092001563679353753036242645843763324777111753251482898793375876052455227591325111811781256806681116203574723964931879792162742984101941345545452120858230639683875578490935997154856081207815744115815667627104453277617591313560747747183701862165988803726153046754100390964013044161445570853192878269232238016226047830680589822452499057501660991513320557538167507663476150669514530265210979878696308372694049100319243445139218083473054755165500211592360610549932149637488139787560103059037271697591143741819767445705065530790232113020066515241770396294745360117678130546670482690899294590038710404697609137360298261260501884234635400109388508899144282777269131280886296187351928163753491476801253368095314234440784537013764430217711032064214523431926873198241419315227838396887110625953066448035650077125248806029924027970968135655653209415873616601052698523718198115819710319670208648607016377221500147659348716286883006288441296395304783469882499712365784717165633827923298735847542604767650000879908216047808952938757353503894819864912639567421294002562952567266117370617681642367153100476833456995756285473525742841665755393511546018132890874098805423310789270207482108862455769484911330124495028533984435365369442930791440009108624120356601992007465449826898084486175423958508765488794566304105454831239505140370756155538679977443350307339877732594592256124873871977137914347497324731763215433338156376090918043663811842072307890133929432047135952778942220881654692942013311807210658557451176582311264766843216409412404520741215565597612011550078238347848566779466830938176360334892835603685504440517734825699512486508969740335381553896136122385677412114968835829571705995848745621212309201852500184780566083032102627660149911535918565141851229014053387974690266532855115424427170296889084825765254801171074972160629070119288494507705061385156016428323444954281900958968700526546537100430591775809298905692833441729600583918112209473243497807832314094224849819284711984824626122583157789314382053795914364736859728741932208813751853435505636136930805701287230926945698857559808017823128167717921329173292586101348157684518861065346121090799199790507988141558205554216581099879940573753677196358637507890880792546123746177520097323311105061990925438775034238319854997433210702567861158679031363949892781947574994057493835503367380686669580258902660252809252172172926631978387910356403928820368460841116620455002100377476463878361878362497045203302556269432927870831529363692276404775776137458714751581367049087525240903261504504992489553853434169297746671861750245364886232567413179687343580562175858857045511619891363418286258027742975773755776433904975338821733610092639525367795152101019506497683298155372070508170405640825863948847239655668027259535932537489799415190178794049014342937671863691243157641355834985839228153987831247469521587357179162243246436812820138110661419888218580207671893420681188936139775777603874431301262133923199746912306331516791175514126850718192928050250389290925942139746414448937372394586045713178597253914173543303746577070575630295438585619662035097271227879463648795211994857263125651840803109923909751460708630297275158533290469630538830132364901703956996554124425717689996783995400544265453401351327066698150921653008935402847498745999945051344394385221629332177033430252239341443980467921059215129829735386942835800511909993842416981161587634413637259024569278051307539243075622396277945126764195183863790924597949399631424154269622968581257737812449147330056489775790738091290048024211847264414926849766035475782281015359655795963513062382062854311419077541773352709251693273589903726723349132833829713545718551317781831324215419893342064336586719892076652059817725968482498839443365277435469066994073047244292355075357050149563639682139047774833657428872460931416392236042940704928981862334006548648528157132026448485707010016447741144565330579357555363171320874168022084875831725202449124792724769364591908710086600524399725559659157281748230503912719125079273781806150851768100334016503232491753513981320138364842236389461060992986372231712514942742427684269790793353297507822162573850856422595150300765754956609595996776482346354632781896764898538769726506811590480462530541573930353327177339331645272709348244291704595409828627902556928645640512958729661026773962015863829350310252470481491489578674889238736173535058994979915896178029792472675379361185862876432408019642306981649742483231961450467048310865492522371563383239152142324242926436780489378064627781619637157786147495223843031123170153862457473396892601254828467078374671152096436239784832618577894940446269930836329698976707353500471547069004137726952997619073515387745750508212921747068159800520937992381927498037180170533547069686911794260637883796111722116005081777852997317464938448055108919140812302360278897567926619165517431134729619213545081732553452266895312599344126631685600775963005303195063213635126209996025394625320436633048837507965092304773618091669160803698983403764529352365001271843569926223320354951054879081092343682189733584705296201412578671794958606223837210441129092900819856996942086334694723205402652512293525715485196739823427683790146022885558982106568474367270890503617170062089501278643388063598188202113962571970034246259375683396594898581998950488933858739866398018978151618909868551592452522659289322379097596379616256163577943764489622709435584735272575342101634278813448845771603667991616751673700778584039245332013083210805446955197463997623695394425115832385055768152353387083550128049332511350176487505217288350451241132706716115930245556711641765989222728778306311947501858521589667937537989722334570401895345923452339184736651074228522532424893093307223486146088740874034406060619835464277213356427465911682556418448010263024940034891649647582816540292300709743298209684003569350237795781180811575133931833383514447659811819809277788601036011669679255949568262711056884119631798875206293544011934851541159448165156101556615262041589560266009872158307364272786620605410206067939159545416596514145530461079818642159750909259514358118179897949322309393381407849824082736259532744618797651506766770301965716496010328518732658720869658127497867364882882365973487270725979064207581318313633906137874820444895030579075413692354916336546406439983708241450143269203012450514247323176388462650918425966949309951364029206733837906674096230744715518329689572389706559305317367939360678105951493162332640990988112368928276576655951452965922570717904750212374240473284304224029349966754240052573526239647226192835202308479752396761357439918956708181734597958669771421920903723745889045173570091387409988894194403046613332557019955581622067183343381469411765984273663141333630664937689995610608324473524825211487183086480140655839048459050453597679237605651096688423456206921254604264367258498335741399340074000242316181370947190635346254592954311080837520596425262578181215876592351685353803747647905523077970920254557297558325434039603562552605262261772481539498053350168279128268014785132306080474561011284235606931470073305466873633857346229535272245136059288909946818264113988696626943882629585699250761502837577481444550711506920391132129734549533776191808473138166959919284633314251240448131853489661846517370718453781302611745940072325032372021094197476674030803643688023313313893031587484176122781032622272118002135691304881660003926607650213649888652517215842435993286457332746583922434672879521909609756465914520058151482717109901577092971919609630453605440055597184656776050099403779297135208651630715204299037381374506863977594530567691024125259332995442105420364102981310658694712290890341690304777152224511828449399060614440655039538316836885373539198087072985451735246794387985596291087933063509659406973738063924634924093941246611200512168481362556013879427948715027391488011438148458285452679355932154006604224433142334029972724749458778155531621063812003800724719256898149201067514311979560991969964712675830519927206179092453182853039209291166971163536754933959698765284557496997127228370702399893241900631463567596924767949769012574164559812102519558354989472073944078760315055875653001051020681012786926604717041059285563609018176414609716764591415941152260989567619815877086551329383202614627555879430003960273307505245681816894081618419188815162363102496919365621537137526051974932127158447177359758194554070367752884713006092202320561646874538812237403167846720305538248050043345294770372349511608435556581677144801185759467844949358638913898660805638241386588809408783636835571603015659684124000713936521441125119519172265933366812238878147481324452841025558394043417121643515408135368634822320537651876604151094183482652916837269653182094720267188483580591213667392179058182548321074595191902095298459425651478649930080713156233840715805176068664234584120471711189179708334406488575503953775087012661954064152768277105502763539128524122493147237863466149884369844567131286692958957883058976371731405591868195113818267718664448727621472542619731892054540393003206746855361032272597547049446817393364274970638161110969497545389252137799193991607936378885942473290342405324448335000714874262015058876963884279350340509975192289497816447181708726030084090780210455355288249981757507706573416936655735676416273518822483049824684642131217209674688609444188896794529766848403861197540781664745241219007668192635819810088699420879750669930730795322043102522980104258464947828610587935898753912490705240731321849387938096044884134321098721442098747885824811447199978301334966009374374285304238863086993788505852674811726763138176205955403861614341348090232854155310206656732157545790353620018134290402895281192858996327136406930765144715800688788761469330287874357012200398386595348418436253107778608111698017257129868069607312157287717902864709569491981641860004407350568001927864803429346694366207084757597652661373973680792788225183223635745392922593228120565155244161414936298440749196253172826605718484871048218966843984673924552650241400672003204239903381832315963452609451546691745188661354318570120463444106897879597467622995931776545771830790569119394896004845908696488420306773996829674859304667826916300061335340012007658833436975579010570892914684652675963667694213405878796834499820538153992316000250765549883794889753991565421309796172528792132854927258749961022185909179424997745064274100476428947759166083109834377332196910677092423084768735227728511524581386887590053659383003826520072158329764432435970074014505124258523987109125829194206078020750455245306354844117720205763335280131629861222883169212278399492202845842634167461490694878226610304112686718283651054873256992763663350689286917774536694498297019826744188705649456553571800366316039248173854142993258364421820100564858697943915047485628089321230079106654171519543668654302736558489275001517718985133176911909764416061039161271963781163781776148884612364901355376823864678860926020001866186238777813466917653671409501358760081246902769997446568591512605480082080354043041708802448094952130680073584293983354811334521771555260540070536843048606459067339559586407986982271970903284909138752187458831124989985688934594287135298832437641850256610822350870081755592709769851210323098954671869972035114446011589379953881883739295718280289152526620982643954347607854622227636529964183240399221728231515174705961209977637442803433047831333460959470945037454415522233224316076442068584674276831221253791969769707385616745438783985461000935712300184214233239407875031026902172798452742431935037753201778224965798338919315185684225869192037776064261906897320530142390188708916263592737594729678509531210695951392185751459721427153763903559409045297326507434341857316039586637603877132901529784551817451905915971113072822060451778113027290737302576312479446332544004670592913078915411426027007222190628701606353234122804201835249156344922274779850771135460640572080186854679966672814956169721030315151600687910827457108577204817574422264617533508989804404720440179189405956462582789415660231228348156091085718146451605559398179551371074696462065493509863001780984557653627428441132743750932460682812105417568931137194134326500417023960576065841462023092894374663863157992696293411557629483886292332271010750331210456486342797207893894360796445501729679441190722926452872300835219632236978329248355863833929879906680426404856597069669486809758178989510370662243833322465901870304345311116038250433454100746472817693518754503229402025593648448544085295750681684603315366890974997685712330137578685424677870018913743939520944487485932825434638892449427456513034426170838210481352752367292629995749348338409495923936797513434548813819268532522929609823003764486187879621855433857664260823030645781406832401050610956542840019388281256285508199160950898751049433974901845066507280993281862913682835992591097355319643290307164679150572587676612429435879706231767947505678523229059978339750170915264449887568062430997020517081667476948785054673690413785125029170723786601011900613878735290857025948706497399117617843052845969630306807559671473107450672674944852695424995099880561403031744784518420014750966713420848431423731514609296963155761064177904453990144186513685180140145190900507247887870150642412636431440350205241714334828683093169145100064336467198100422436016831258727694112445762774904922474372710771863327447254303574290334598828167552906007898526241376956306548089587414807593481733470158068757192960717507573182375273469841820446968614138163526408393729344410134549024410391657992586195586552963161469179841190291274911564765826435664681668287013695535924803243651500163111475789080314559073057211746726517261246656044275156666928791785995439675343623870216729505307723427926710828708999731379420554923819069701237963326162180060728830060346782341768262042082989339344061888018221678297417770190574535682256075532778048453681393396038321078639478835443569868769259099077982134607997215988528793878608636001408705949960608273093065212852302352699770140885003674976254528719209039229051892083741870442235599853886404212501374553838718319289639811004345216184988469400999750935603128624195066135118800677031755492373237740025194050250673123798175164981346354395541558599213515663741300206968759936181287946963551766941453588816303062615844881444325217166262785247410212110749461674119522353063687880195509159781434143645956407199005973957757599712110149853247881635184279086612361481580496742564219822414385347905996872538295703491536812233079242793258896046048792353803385340577079605121144532188668329059339011218080795843162712131535942107554132090217334458840901638885321960558453981349585709447361013678521881005450466116493402894011655804227329802797197353043759255919629768251637075615665616712011789270306276723599368970288705299153847955569169820437158157710484826863530382201177643864929399082609503568102779690355191446482496965914831723992336990098979963724780061180696787825606754762428934479530008634339435900503533680061642566922864942070510680920628018359436076021300122518800530082582630757312271035799868052935841181206323499726007351276751052204174695935321319920629333144147182938409718175273812681714774724791267283747904546950413478432084667747677595644949928070297847349199304613280005438620185645703945468616729171383539304917524242357417047084517762324534205043704467881479526462552910900407717263084605856735819407162949483161171521857260441765503328969543930287263836726272648119249670544086798917106316330128571590616242302861724264389002001357595772235265241514025621214832905208478308175171907471573761084338923045410554490523086867689044625725952292874081371113494985970260381504623823915353004857590698690933036041788267391366266838812276376108991114181049602822712347733107814110874035273860850387574024257238898698632651875279556176426590617642578295394094195451612076803837602549959397792925667349523199753863068447008942126568425386736693814244075290244562959569785726875944633833861162123758898334667508380088954275149727139496965754609364752317547487077699840843114936073545774739456448216852993409894559701776934756520556817116502578155957024806823333917211281756911964278385057882567148302650761280154355779016052388665980589888325431601533340664316251337624701311846570006884210616219000501975242809285860741148565913318674913617493320207678091269232026805258903353902931503075854757198138619490328020196308315314231473549487892159720845940721982061132872724969968407626738168721710725430565681840292297209314632659009980772342402899936626180433660010155253247069475866666857525883514710869093583531971924227406967217233379692985286817440016644693588720507225876156579234514215825169848067807306922447833002916278564644177435772993690505960100721745915376575933246533909780271982136730981356947576643715106389088084860367663392554935390161015640198534297740043898324801568080514626220560849631723563994963081034768127982189575564153680170953015475101519001912076362074999333578258517590687990044004892088862888367762734589859284871299883538505270866162530955824784685286092311688148654842813076922261186303127414763634692159619891859152745193971172128773263273140268298676247416007070075043153788663637836317720668225849136187002775248355921990563319220100583274810763757204756105094695403847654946940516962376339646138602043695927809360300707830503243017558682699507196263808048978545195186241229838174089568464352268832391076620259066823097608342392779762696794238127396237900464636461046916550684666728424128752133155855113322137032546360675182256906724273112164152103733984231505148246053225809350062752900058276755003440938694130168130044787994629870596314145248336253759545578658624237795349896833598911848125226287539864046749880593592962396058823187466698652544327927591999942934791192080792189921757066240103270062705792017260733923740958337783076193715359793351533387984901249227777997868824804649464858849979761556318044978758194076206456550179297158166616561051478868799024620538668866907944541212269635095826478999538985621816710548065080971714441936851083357701696063437369157232473967440803102087427218384662775852418860410947596491588886234641428050365338506970984059333905292881893376721246966804906621925864097875381407425961589758242322568140165888850075911819617309044320995255173019635541345569202297830642599248743239711995556431479517091052137690982160157615480969221165039035580323950872627820986019834092359798183032028649165733105305625029186302043596401773225285031789107280859961963820322243986811075767402826911010240982248928391645088895140510065361838159469651732516494774603662949335481207477962488125903850382900186814646613703313082039841407825296468443038976758027772558769628262596181880556908756824503947046818351893439466225191638949609127152584134174964330271770167091453851956359474166403191025721572895450814674732073817905949941918214347279239311729349242965240846866791928202113659020458551189239875766857388329570057618949831359869440205208248512867175755599547794236373252411484267279735645903837457667606597321621437528608278404163330517932824502179440767461077134534390467987372154292213388131794605860103706437232188324453259990935218744863080414142843368493818295785286880286426157164086180930339576357025079019016444778288204273270871669069337828902950258193912410183356233312413897239176940017179893250582418398174800417170924093336989075609152933378078737011332223413326227654235970992341999117306085874987540808999864147400729080461934866556023190170685600289510614523575726485540916293053032110085666093401685435861564172087478905979170423759520655610374168843708027976872467527736256899527636599508130302064515485969570693530784329404105253994923342523113737000872909113253753043299574909518642618850772906050979947420340018027238984035337583809315877917155455497268386924755629962401881472331746451470098583725091091559491347200606433718200013264808197640936058619952546433611055013771014599195103656343542105031837844663898331297386817760094747065526882747916262296291853994480385015035149787869435292936971593187697163591719831198129758565138445890983842832639385786947685770870040429177941631047320015589907436360131770752435128013086343028275946779406160896058488212389757500889606871233919319206780386630778781308524933678238758475594026984735024247525338803186475215833669932767034992922802963743531172795440286453474891360339653715267923695101833034043184648860694774564704389974833877551080162749501012522505145858193550353529627383858986301533117005992215162968869409392169369054687414799561843767344560319079837138579942618047451664696080730361856865645064255299862057097190099020594195654310682721560154907315152148422475605968997986071285718708809564781775255974500090050355558311571679839387283971146382414211578015951392297405253992380258630628198028806659493256454355093010888956461960076440599525200807478273688339437961227003048049922187274675533513989273741013711930040569867749838276734472193221856572020083905515972134260199151658451050398657187148888706209570240436807298582830622706170285893853145994130967776153128916661070551183686186744419520603466786170624714985193865135062375448330528568480309833580357259509116413201944939008415460033328219554602062644349195432932264161701414790380574343234346668443932040595175571146935644751592302109348217202300662937658475115096865393663563219419655933875235242137220134822226170168043335638544847257027739697710127108214248638029750567971977390830630185984459251873469012254959735290049921696132015865725879599020424782346310214978936187338997543530471596221760891182762555442856521231499862123986033561053243699098697319490113197913269591614254432207870050784264494400928872761259542386665210925749811656716168341132130531670140396893410923674391234497169252333418926276434509914969958366745631350858358537736028940852141073493941956848704587223821420057874439766877403748714938505657048693525868829844158333773376451604534164835637628667996098605445190639242875590148043768767718996993995295211253604606502585709792509498476755523985176790530932632803883380921070272710304765710056132334880228742998741146897700828174380391058864803225588570270592219801473626761406605108703156213716257511933956016545337809956095546067344625776510686134093964203259734166529629893757171558576824946269185380039207754690253940972650823642370395870117565472049683604514111178998087174887612398247283569687891314377082896301774878002875328017075977005373200027409247483606859353965456351454878158735518195600581322276671696976736369274262736229295212082937936842519338811765937838831041100908037770736626248489071999949260833720403094928343748783052537393822389192863712349195437218831910833608806104800813839473282315087756285164627616508724388474302711539535056655120032585376392537209007256870069931591174251050645281036225771386216390137729139436209861055675027417579467124201292137842795175183082139330862122030686147696174103517223630265257449892365261574245092137846119759803754557503908134738996555928735464281024172149619148930664790498797672877214362881297354025587192519143136538810455671445702019864151006852177653758367897423025118626870493778921694911824466282427238751756470504350755962141254953912786476162842983060968562126332626864216295567379973511525189875230299642483710572103037315843878707314905923884076497136463205713384257547230039276780553289644157818026227111138119102811071590830060553480039506964486936500674505850545141037803270129827315812411441978487719861462397112760611739719400748704022508299377204196122168330629839760618796799312647235352541456417571241960446429184739780271788334557702119955368347696253785295167737509771773768668939306833306565308887517658001376388252332181242270913999571382929889601103958313098438736279831553918747342623306968349664347367618533057746002538138197143000068464018467089229511379509842682873233048873664399436652988464199863861875936101409963370354383427919223203670663895571029035434234705480803897669173056389099318834512921014616765687324416092120562709258160506499359345797989324807117215914858671543576623784908104902850049812378703461991400633196306932843661250164579934433049970718126184525433965750923408926852604493560599773874137351961478225528935416070229474651227705847774699112434383952129970135327497739629032949949936059448192405179146836538440399746435226432647505246137027930784701885290030783798212892028477006626287254856107283373827020606109251675221680322970958211025141132976345900937709792772389019242373942842378625682088277999926571154897176025124275789878077000249516453797785171062539120572386797503634221643506915020698278452156673597898952540124422213968319412605276806352590602235409402748075191445049879149201192043541094364177872685599125209191630160110071150082963928832802550740050818657373361383701360006189561703163525919441978538937799049603930322116179563264024574634060764671503326098254585003032802508913357166609301391034029319526702038730917219474746421353880945399604349497927843280048077826847965300052059586492371526741625689957255073822951372949801704220163345922289035628195793863112811835233813440419517764609254972482172228779004390040297118140056960233361342671853568381787712354594163226757869011098034374864518954666498413769568995505889793594699816333653157491915179953275915156414173245220828175028915254004868063792872390487043659016437174308233199258010530681070684007876376736736778510795148548391022966609419389054188274911215631675127928918292989657062216947439689641816486062310809623264348366746711338058003977593164307597199395597403759404861860758055419781867887160175417132037462813975603981116033174668825175451066678090476727527883301551807563780586142984684369355746672458964765698788115920944032751116796933932644150289677481604537565202226135666018770950534171930918663527628140097094103983345461469255820464752272047765398497287516547772193709371417575141569036339285396103579878303855516925772642234013162174568526286122199112473032133352773075192042327649664790593905850013886238121443048742665483650697182296001918927973339634691518998378223591635626595027606187515098545444793672860139754605310927048389271368332402910322905748716376581850432893718343905998923991866913006197948491356151503910138078150516048140008429954270700207516213299112940421371961094899817706093052970976087534118029095853145789301624331318554847558515028542088568259599033522484512946353200663092704886285732009760905358809476319855465414715001541988648182097239767318837188185911809346647165706700272672477793558121521055000427576948796301790064184063894793710076308560077898258744557528671515761708886532668068986709448944914078598380961891352918604812809296193620991160853375646265294908417727470069527092848544748666167029999686215862611199341707847945194393997931689163846969767118038850003693899163259574001551613825384660369957564288439310223944669540966220839078234438218118055294517413227914899162134846630988548050578935535147663370759686481221404090184547284047269737686634230458712096769350413751373935101479420850429442817678792465463805892118387452072534017653973297638355496498788050165821896137185688326982474936951844304876489942332959309129259365041342648928278697328561039351088422527604003087128643401021147668349703150344737148361164587521117733909893354311062600165727319782178769338241244412681985993013936221826757001822738030491235336599005579080807176472747651192535132716747180175413734983037132505938598457781458048091564970498996832439813611921297188443610722520130090034503284259603305971961307896551486680230650115906172089848032167058008584146124498690500528635576086258187923430901413257393899585639642151948717864111372619582494872403130650797602895908091424073569192849254660521338716544183621247539660379104046019898977528846455624549960338813529772302729256573880547692173687262832106521729834354458778238050718144824048765329669696384543969500409939028928928127551359412389624532277500881401231451251356051958523392717500443222994425623130979607596813058830544212112290304564911915390552801100062806138886635060234656220937483025548649304537296998899227132770780314831185544731667748142292973903398662799935764268404368922883744605860621451252826500232402943452537371597628746974231374905291552935468920275633866696988483013875233268129022112487086742786931901300804301171143674134506670832589666703123278837337478700080016157168543411296224605223862163261499757706226239895367505643542787054295896665788907524354142182901919628884972379821738893029330731097895188030236500809295560700702626126604366572771328040151552876931505844980673819035002576669171234552175319846707999062787207224276750614052941950736749633243103407356530778184329282059761291472252800594951101527921185648464625162894809650376998910957564141741039273854161352026103414730352181260225974847127361661066017189418676930686060081344939233297733959750769397333517507485345765885274560218456712681128950966820525277605233453083024225270165783801296515807662382898793948498747872588422403433241975610218621070848478504866696058659730053003528590307507341036329663519038812732194947425217990954577483266469218661939961955107360804018960879257075412287869115031111077892745173277388489677977998659217411279845231546462950233776891232754978167665624944105319682530271103954622494818823825574208772497745266434694941872643701003100937091608651560790933857029699356370329351879212535193363666354069689688092241351644205166090021493448708796314299169921659729130094028930725742258354841663865726490166618323407026326791922204710076329481834864924700365402485602229073507900526454562373619687826696514291922334320402648505897333381103723628429258479534486405217271250372845903912428432948795655445343612193664227855840716310993124032217978809803150675416892475949866483354221463087195673767403389240658893588199993976342260766297465426868124941532329831246550476289313423479449954213452298137366328180280622628320705410446673574700062934506848761938178362885136279634243801649127755235112137813047686339841571295251347403103185336208409634134219279001007958024465431622128402277965934654986235121161616450356759430891235289831526656711567169943271549215592752198519364377228849564327179880589429380752324910225329294642539618767157772702431410986413253744257306601520506449321006695458667363727511440699005179436225596331612414548526621463341217244739588914723287820404575494876245719839641820772613372472011180297408931171102152414908759491807969179816859220010802680594915435528309502778844466745208169474927845815718841228451718817779364259316259087046515060336038813273646314852874859771371845952482212804449535751596410644670369338666097239678911852320498934215721592569066024879224332350361080685385353651146832890173769032031736347454636107362627670678094194003679662692961361161326276246941738685059647910355627747241305907645978013302452936329862153160303335623664674664183907931341257524430563056138576605764199469854191139361191384555350357203341512239811186727209471321901849718882919507339322337297340223146933506115741350964186445747399459828232979887345041142627698339055955796631828702239556958737227601561485226947805994436825820062553498124418782248842487084358563062398067780291601918075375287798784731129800120016559965486062014231411573391089840396058456261776172860396495088156443355642743301706327805644847483567919168800950640752293672019693289125390450421868492121597256767918323458657803726395859732259656206572554940178660517434505986200813339220781614127217527707353887913991704410407714775887164938794896220363757527784027413761233246014400640322839686141574662507959288167112126217501315335443416106936649815381433680110201442419291493670359357351606316203400122663464438451540634628650184197345279742877406392108020462963872549080787667349075667506220758452292662393105657190338701285992592905013540597381544688728294788031423097772982529717539038776686849599126102539859152880532875673659904256585457178060404763915312751346701342210541873930420688249655504103612536987831465199558716393050216274115481257908083058599695355596407155604962523225262065363816452046074575762420487216189894074311383486085077876752067557676030887041861319822910257442809358033361763026374877647846601076518694193292498036050560585788450405310063168197652583459549794580665610935595494593378825415170028436768977047909053914983265675526210463324464954260182957335629129036591714627391849925913647379309951536298164556844367874439570394179299985386854529228354249917651243293644204817965657681927251536667622162179072589926626967324342121418575741486934004957424406955680133162442716711027137088717988179715155714618048076719336207704007074466316610564874902801544617205197045604241998095881531039458067846613748723759607379959230230621313576581541354966482509046273831156638210589184472808387726238156762359886057120604331832463806558347124073931766659842639845528457109214027025135685983167813003575149717602549784827412951102364463247764340094070581774750144673169726789474112511635223683705392813591777932180551710367695961972816530396552767442652907944338761097107362416525863866422882509789775729280186375273138350493205584378328824272929687334986016429133563511896929750605335270346240825610958746807080102671595506420305116146009005458014064989258477417844305816503975289376178575214051582148249120568220569000955535328339114355878881977645320375100037186482665020920126056160993523775910141288301373899244318181344904277601126374062184890531355039667837731995431017211368571199617380122646972468474246695912172508267630810237627850294041554188641832495201159528732357797859051432230482254209931970778190751430206691315038703248069971969928429910024686172293241863975070462151541538254366721685535908687682568009598445624732718522594617085824503244986471110773008945923265784620426314783438978726016712681798497408274929366764857300727777367221387593101319708205682333374410356330232169267685868478901906963192091309649534023245001809468554674286307347865328109495041214183291440702775405641780341590835111095336900788497820498641055920122458250761167590219449128958313541635746235897154141375385563549542324130130933715290779654096359497746241221238679945723527490949885992898071974260686384414107014124689188225127842953846872495351874247245070820831597419196970345337818690567048599639313445264877110845137812410771921553014445561027089669781409596847315974560524015900856501301452193949912363309220299971504393378816660301066801596327997856649392745634808382246744438904629134824298958731864310419988615552138757999215864816898830896224536518262606178202230983819108951314290259596857728683328539909216413885321132177254240904372902829173768135378784267112071802241168946062824654909429121101411101249390172168372995617232706398717913303442722034748051600717717408683068300385360801516352925004266218294953454554457552812884463082819160743086133429763072239831535477772179143676335948732122148780542826216157575495027165903586667131464937528884962662467348706419510279051793721258815986541445517359101355985032364808676975963103290806829352400181259317232125253534959871002991920738039556330979631511218971673393388369923540022043857986579773259971487110905571433136083421271036207482585861220173496302473023319244794592894132207767879874562684350887248182962113995689090350522651432180971905629415894276037782723410702201152060000340856011370539412051055425797043370929229771568656143366943478870994601380017720055812892257405888468483849866070257385990630509880029381336242791197979724277787575167040961248813175441614858084434930769558458151739936130222895912718214764141478919431612417982646493045873097664774927011656596771637495701588683368696385480878185339902600040779855894234010914888405376482326049807837330658713096976900912200624828515935425836570516280269356776557848087305564057234544607903187136806603514418397008083151648539971627967696455531104516241356715351429064704559343891186360573936303998042535685255970671365064860979647437483392928312519545653758818558141812905964265098931908997687212007998910965673560679236168381040933358659435386058589959051560734241706356398899193795700129301018844908557109629115110507925129330828160093328515863542948758605705301083789676117101939780888948818397189057006968859800016836513514955834411013032579622631802476707328581277789641607048983983573491220085829279936120478900754721293201008697943669337341257836239371461940275894943550815383900363649685932401443990779035186789815045966259666404206127364241923932282681957965966142934318027475274043749547814806716100172416990818358891419237369143227077092521523767213022910420669144812849007925651753276653989382539723095500330343500787139513638454270730605084351242190301035152343845925896925650092388413487776346950118165872576052090266317915146688494625934105290673355541002119727755422736163954041546797502965515292822551909300544593373585254817050366082614583095204711591577323805684008246546669657828983639322068207053646781542722589154388967902532515682602548804004657275754337432238652039233931923140193750281226175712398589216201354090813315017806216668803186749282931090647580074139325145040580416451150866816305458682940765974024261019914881363614352733175151461647961233726910716147747664136296455077386807775592053456287085299506430269813338083314996886331450378012503308957486089903417817844861481736465614128143841113982422939608260776954413500160368639079830230289065748502124285490127763482748813403167707485996718432755469027797220403335798808921101274380094107276599934839419092715484746501250937990969206822699562067156161644135906306962352798704080018215359709331317218347841456490415471051117596780881876423173876575964375817497836624757861852111354350243972204401154836223751659178439848172530372047620404304356410819221391501133185870014438087219326063871571850726561832948896349851325628323318694198440598922075539880256841384451124277384028520459505448487387893009034253234621072934048537166879698951547864359562738551772597082144299042924729394870744850075329388855313876101041461104737026094650728896984380533650174476872044309850938493593307042130878125960995794803538702036363711147081494757399112714607532084473526088465832051644072715058615110406877354843832271025759932599080942744753911180776025319300052145821013575716489420458423364483883578099137645684151524257796771918624748830942784644915258517726719398203372300506175617841495688319210418415126385048387991776001040867208135139267346187594335068782918294015619621317679090956460585761360742842787198588758993302190248201781541415525618986504332515206844324630103558594103259861495935753658463988862659528823863660652235553675411003846957653620068504801733213374035971592267387543201719196952369989954718561181070072447959647176297882006240058574632307236993941905546636793255126446906343730019552246495530874246238204220828409562049002491173562678183119186527289069154010253871039944663815362938580123478367519638666891683918891341666577274131892092703182557031469069665293352664102731661330461595550914874589799283597072035510214431540018578173812186087154462663498548486945673315198366097189169259876756000434591875158228813935643734520187541875668978021581871254818692699112771994047535840363258177493127956271443588514026465105417738991642906950349991793195133242184043889828550830312040923873209005913727549656399662961497146613994177569448600331461333427310217744122710078088740693173722898743776376786754041440111438673143003307718217042275591736867667575077080830869940281039058770875699581221290956907224292327387934086551637047173930569782862926778881726162546888814894586245910522687640014754372234441427528778345014549429080787955493868322149710653022925130380178101056370344271002651127473424829917667686248176794009879632701152315003470585826203701014751819778203005784906134807281654498566482760983586327346986610019396586235705885456080025597369066538240875465003552386209899550219097334167740875244737113645817569244433579044600536657019940790358811308387720212405379010393956709457752117548161805120544948271562848303275583094923630744485268285832200123490294180463833577393595847600334140743835710046725807312507424740375761965410031021186748907346045496178859322532870194386469438142000999811349765521614644952392927561484932003477460464927264321671035237950746974731712944470579596310814516969727254846935411211621471768009864722808220600252585896412554734092191572219677424719274927546483209355424314325081450206549907632632253233806663419860466632342711961723071130810463086916641852094796246797136049886305949968603293129285998070089151388719912233191200538679190900454060918973119190452404741849564141006152501350104433561855165358436262580291490924583378318732110924882039771321411885594402805449704129607255461243846229492552534184911355978746841205112266941165378070580558093747876782668965096907441716556753424352533806663832851428333009518567255896247570194114126178491639099221429781476729919143040517688149516457662048429727709063563740387963365709307294246128759262195052641791879150747560059069724001392149486752812423249889838635330213335826079269233812500561015573219641549520799861880318746205897031933685831505314889891036089280043815652147066864474512677495284584698304327079407115182977033207977844172528993464874697524765581538981826672850564890084095186667854207993075910968457876571822711190571767519048180135230903751735715864637432651119155358525070563159374629343703801502390723216578812864686804528392074126237220557508033406326927347393875828695678870958486016142636987460004296668409971874709114158837108241652815427360586014777350573183385335929401218313824848643772500324156540209313212380807637663845592285672605418047176078889186887820639021442015996002450886482002195559139603053315681131553758362383310611704805584842749395812136495101522842197261820446982436540911575307154544112665987004937230688132486480785549969330867256496309363478353150227794135581847232042345328307146058570839455624522568285828171026591914637092843916551730666567675625757400981230889110726264821551521563938479955681242029855902076170008829385681084431619740678439242640816497818487232575826653922480745612403503011785125552767026646194071032378019850273279859944134529650053651384661816282044671147485482525269581745990395064632953636507895253636397352091245324968824992791887098556288948186191554116968119826158605792478462836903861991892348460995724178574000102230174322448492047382889503165232612812603463971991722869753009059196430955928882556174265681540870620298409286348792639969832031413356172349407474262417243175116436171647170639366872207034032309368678002843645097256831450998957497989495895089302531865125441542628483325029733461367382825932313693934536467609756471982235109313264483499786199441906462713999834231285189989059600515708844631650941390623763486158011358510859548889135036950268179028187739941259728640497672019479039131962556094595258875549015209200482061805387109194158536251083460552310884580182993808690074562705283346869004195351060306622877195664310342955996610559901833467314629862593494671522466212588428022377534224177574728892293591775619594813455204326875401127352808049901154805599391801766494065344116983541659782389486608394907401475665648813835929047285564123100025897176664444403949373087072150771326345633327326824592596291913348807545868118164313491421912939912135912086186757894699824937295826250187124835290184055590101285228791728627265852457356053454362987129492418034314029144569430157568229029590303370020039499353298806355177100367569774844534233582619475612980045202920001738582977766773107512991496846761666344191443882463151005846214361412905190394367621162207667627306646678629246905254310844486105225426792637554619150891002804365534965709373097073656483032347491136500232326977668971426051543694217151902399964063142136848837118922978112981360293866056222960677771237225585213783973284744544019052537155692920820709456076359739504549850024337475912757582651019682350926669047259074955281645354155199281783526544242055595983483201738837416721960896724517251769536121480969870999077041846850996624980400350109367424354177493278969210565802840424394579663140426348527536147778386956648797422491054747190928612812544716972100813033624311687463868758935364355326306056196679012896556218335516799931042098118082838987069317823392605345265497783346792434875737773329200128540900966410633023694471215228310082424058947920328417261050862580685259914479596517296874922569162839197412307138304686983144719730275297084134382159670681915615105183673374241350719050606985332995960817647746703223469837555424982847263746971505852476897009949417433578864465909749160461427916593932407691899709291832151362558082498224336015884158689250286886052429385200959595178984365231613140609759959649664319539772769085044941659385898178822480539260931180185712530740924304044819727495406988540254118691556368126030770834595176868753048129020865843387076034836751051986899603387212194285272902122994084419333960193629397953286706153582253472406550907626761441752830601061342748422500564158499216893224242648093810594783559142250861277916476483369259084079552465726582684923138200785484529540494828055481351463400884754782433062967495199328250738976083734206016498092899603452884486983321458106455890198478204324081667029557335588305102158579178970728424838756403449472308757463666229737760765573615752629749092820791384234706946757633060860220454051719296422589794661404792385462912382759195219254520671670843056431371001619743274864086686086389113032717238196585843024197203123084437366496245191666409731197168616223872938786624461033305567429534708136090772335767751608177201998751585762092552627581923144961204009986596683290933416125054802374390324232371730982200500636883218836426897217903896562025793039349675907072230465385112749180501538528656582079646197854374676107287854871672593914452946877464635771352359873256126744192995660267309103669525584041136904953387611635564539163108066102811198066237189042054150179741829795184038794528609017764518085973802453647329835209349239284021235931110464495481682169042204005419259277919054534353108135806064561198738529425724641418705912077342091124014687154003996133653751720144313457762759429996309386357478367052167954287456397801799890312792013744567830825299821503324676809485002927060069615218831442410101727451860384580400377881061680060250514975321517709747243965154879776092415250675049008839529322751328810529453707591018893001288122516039112373977665239578938479013240641089023094398220981214232201660966790688730196412210208998604882700628387681101948318479830342656634367923756989880123017117375490542692667663508329894047520362794589147663507752581367113284730118888819316386902290268496105623484616261498038520792278468671193964161541632711138970699397242293843423467134342810903677926993238844164908742324661393629558921613525467136669412802264416437762709518415826474766326286045754683361184678608791971037374357936675295787020995281002444165254954005398625464539049543537924745114325003092277127504382742609675199852921582013159435558462331183486448976684400401396601327779171942557067318291472643512499924691909861391726243256287897062311617908764478430245230164489999534828878249994589949890499436812522815810609044473513472146366631696677491727657278143677981288711610821914151221534546889734817684036991283607635469238704583626180372357937054478389014721579837621438856257248600884491100251334592306667804495177341171668227677553582259364081221806100114099526206743724853522801445103439859071045310069909061595718384986695655942781976166100596278218540207932583915786371862699513253996880903638644834146961242418539409346916367218000766705683368714792064194755219047399231938597707499560076685422995771853606401535062778669076334237863575813965704942660941305639394869653020790802427043386660248318852575224859506986929771844200952863427375419024454423601607827874714912660382322994662914015545180118280312878396076790987721268657157664260780351995417907881785821703856549885988969788881139855272822796119524207587934522837644979594521997447033413944562867590515682927572882072153049367010668488654878429739636923157044095154505914001721407739639600586482819271973376814470672936907784319001563805273668356307774451255741048817038243005638480928969167495801978055719368749216596576808640979937851407790180539582772905018727278343818282933938783503230111320339404382387480408172799175628842315895010825393425867586883370059416760366601776042910956548379798731744448491359160431320155029715919411186520073397192002233268762529831565617945847034387487537234426553010312308965368514209295405061519271153664612040814155521769470549598286403242706982212880514701080830780452200961557615633239572225295235011432343643449245471090154002915592198241649772438377368229443970277528923958774236579341139593382961956618773122181202395793945581435655129468703925171196372359055754867431161183832250119440787943405430860037966758021793656235127823446160575486583821407578771692315960030885891214692161134597017321938295452076698902865188830859679600355888843105153116668653005341819258585705294295156066801574369515305465415978822358078524098901621179016005993752962485552956752134508924195295473379152628689523740323685910954311247807139745299653859293943217219731844367318014560700855563285735853991296827023855665895313839571649284546473090788389616621245210267333428916780029555804329107829618509359121167321010175865089923907174354724905400752458400318358160486093355644102608338670678484891976649254374446912843875351306802111291973973947464726480946084831984960762532709760537122038612085750972847851593099116307501259738550662836180336145549512201091422004939840307617514995680994963056741433815915030490871308833463827909503910199151112671784378015740266691369085034131567560683633096176736954148225196754599484631252796023903477673716564228644194252152330583585808809718244287491241888698119807240105739370470989696791050343624658919332884560571589177896178008121316807199458074169905319542340944071697328720804913334691216282471025818435010885068137911577592704104115178203055784088816319576340794225068659473688743223957843031408639555519636486963211635592324273406725094096932837081589924635183357093326228247387925361270399475884372584392929986245300498881251112491709023285059216448967129207701994386299806317835082171987884921206529624265541688640287364843126111270001322360595715521025402316135534101407740081158307826852710201720965792688173733183145908861613395335177935205598063453025569727574245569826471186809507235791275787459001269194769647439769303866289236622322407553656015630999846974027011110353879935010275145509415265368734908036294245387194594230923324968085563451368573563078106119694428031088156568446839088524683204677360108872903690506827150119176554028373998238054149312933542989043186209672343427308931432364656767963599212717754080481678388550509146292176227472446754027644666824497945808013145086523108352403704394907344159924350368533386146636067733027080029536322793392840329100840025195111819817366582263067214555591090795146832729536721801358889387856458753844287973118379295246462701812408124702705394356616491039198989393848097086593118790617754025295931620775414595453537596772510062986257496795601247045810109431782731870741601478119243783570679755191399754502066337754666038715127086155387591616643846222051131974512942058848115817003784412884640375146861220492993054709286567729847363576044595457737973553441581549397817244989433647657273807781302045193043458008910330945897529883098150354622818613228115307297389613637801461299146531970197573553282216810516464046549140483019898009412104150415806061557243561532579627344836088902205825817221956034217913978127118610909790499048743580692187430160879410658328334556404453435090368663574617124617324910021999399121951347053451700409685848877302880346983622609516159777849924595985616037840035072851949692713675001142660628890511520040230749338300177750791438437481971435836519702248433442293935391783036372466830471345292691049756081536164228587172391073878602708031575814411613435896694959476548299081084925799109973482529744100132366829611152905085788412827440144555705291158271800455004980956067836621998426269105517604527782559877835827328567657743074399964207092147903104698431488891620771047436149971040863673514947138807814532234856976300330245455942344985799076336671559726168294376251194318585856134650991272901328791398309508862197589354344121408240103481400539631333624941597187999920779626029307248018166752797097472739449188059751572785842130988597068319436468545076240820193636334979003173409903774497752939756732206642910215158639858425644652444403443595557265244748095573431496448220130718374462332548354615555160147890433431448730539882091335770989081408164080103158549431545662640007956487922084820305485129232081082550571127261124480638086760590762422493002071541311746200226287823668573989754856546998724019736936724150818409758462496379651891013056874942777984064023717954801812096504665698770047214635929629889808150186482155302504591275729986530777644951608150788943312927881361873079078775035606959240533353907862798201918454819823960238545759587956351961870866690222337374527160938062423681754605244793235976610330792048410330893017290013743727300953069307802744438014296636473566005849487023137232961647697811879146252637583435943221311875553159797095925102751103326766640935058243345391039329117810850250433224939905024733265052837997380828855719629290841045392073380535400840449226242343533132675698591850708685662720253282107341814603775629522563780381788166408127601528656015213232401453868453058600350540942542110715826501661009485011500184262888598051998666357134159962744330983928683737163320854213229303187813072048467916209237079528623486064815449372831167898480105722932317041994949891710753600489927359688862308820612026019526900971291431154872310522772028948959143393649928266178691322701784757065461481158622609861099760101792943363484181065577922563084347890899724202994216392234210514649067623708819519764007215933080349718600933974518846633223950615591121160524485786652268597718333572225872280270271370502244226066439388784495555561022693776779040635392486412184400842914002194819914554635853467656123165500505699776589086432516067898557515807482931454538421698542065136558110054665893197504943660383294175789887866362594272939356910586844425775426069466382775743961286936693689043526068989997489297340877645200876605971758816404156020212932806991431424045188702634070410660663724569669516261254975248312556895566270574609304653454556282795934701873624760410837532112471810686893243148519878665121402262274421380185842198646175198672401571202236849152360753937411258616313903737304386815344239411166222541115238211286523498774933319846667883976160755224725950437647198130269749957959732123225172603275857266593817928835288527615798136928647501127895186974515077766593916161017503287956834675499705556936057973656937924080975994808017062106238929300109547037755824420329154200894781317017708638378769424167076878101101988597453391140751072513395674329494576028849034051784378449697965840352387829657896646106701402242095086565811102728184663280830482419236920579908547232992328361259943367599279345789984476825086144179069682634652653503863697912987776360179011768765727276780864719548903591852247818854305109636085625181788666808888630792712779408717518474540852119055185636299496505906708078104381380614874632334189493100113208048177101827109912653060717411365981747377482120547768181782596279638686745290204714674503837612237205452021635788508068349484230226080749246299982235850076452556532312212313892637100226505661859292193119270760640866069292623609511802221519049630088031974414840775866290323984663031671776038552349793482548009316253481246051117016220083808533683322388765949116026317273433766789616589194029724073174131106700125737501991155647607851371770239154261476843029216739510141822141919193209390335628722918656109126349175498310864926479683110768114243593835679485488538989211014635577550200180545036476204045731364646020135605775643606748471911405044901202094409756804803843003674406398561520764232689029105426403112182555755621141037643581394401260064232755281340044150119979891488691100152083669592232008350323944646867595516825774051765658932216772472226252759119140889982960033936480267928503527609183624037279845676319258626117191286532208591027447276574232206137979099473317254904126349205402938176422138969123858142872954249645547538972950681066174375582181615080064768511211421116284876555353059083646320737556773596899512651205686550490267309255434646003316984243221192659964697271246635110744780558521503064602233159222186640936548379176272724542499317425131381538857813922015864640851014559824642949189667922221465304809503251196374919046115526400939293537844423241764643714075209536251308694954027813836857014857810988578790438224822538152956660972388802278497154268190302595269908642362806320629108051728725698237523114689790213371108182427727941047806579301748846632347927595861522110420705439392371889742646194713709326656210123179568675815275037478995659788289408570974782318928238888566629573654315267313930873174441387646494981667265074971132611120913310378366091547014910462741240140103720665353283596961211427969608886714197714585821922279195089807995436802418398963952276955296053198106579173624070974088856832418110816130027184585830818559469909479977925433260778604520783938132225134815184489867786738660656007987360513025648442750255223199051414007147736542983528207834715257326984300469686355460374068485716334641311728112191870772829806441173214240431852221954518514732055970783916415311254629420536552502670222694966598548635759891175634009708919758629265864361442464205139754704034620544505957298622767183685933537841118996523580774325303197801743187721689929689808770687590693012906174449687389387141776805217319921897572628800940462052682369385842966435188959000387286321082541145343277882082065672293095227400426241428716774592786653259524883211372862818349565182493886482283658246726446799357861248457598217951355403691119269077411880811706420692131221455332991753529270334796238215446025675274003493177753933580011281976599788716751807525645352118599980977346293477733489280162514234827398150801171398290471491443875964195342212790745067434617871223666389289551330406947692282465700565662390662701381273177334882251423933272403144456910973802512527059581950482698846043741260303530762830897667161196940379051172121582789635222367255036474661894769043198934313859745132522699632600727372520751454116639096413348704480266135058382684078139462577811608884454196325484696152345281862526942754440326471694971990608128955408187259022370308992136128286668206358913452453517550800222708924700331863078362576066164704437904439509270888195902263836079350542628008419539617637513134953627802581922037325693731768271549930916578417202030329096159414655084176970714479724937738450208439134278912720214931901623453946431121142132646001151176717531529579780848266576768090904402424622628382719387671372550853051814491859116043405353081918806098001882835176085796337354092552367311030475150648988834670551197957314264482582630053921920464505831861475577583239202257189070777602181090151966344659711398846404674673549312297602529823465667073142234669991002961297869890431361627324870703379530382667378143772530718396355604106476076460585675491421902906580291606820670181575920033762347944255091993873186242225156989483869302223540046153729900255623397106643868013098489973940342313077232235033143848220288165147074558189594090984167594497072395065310693272612163903511923113499598179965377753979799223041718949261595209379179503413126744165215506822405862356196264650285330767055467947908656632770910199358484029167827540191903773084586190866010864317743181775039284338144168522840727563819514100437669608047408438927538150470924528369530044018285955686051705654230295209061282967840513699170215790481034113122059592651257628939626563057269974548068470794511514668929443015499871934992755623499285565263438334247234059802741102816255071187725489691064937943619947316490896376642730309740619318788508498913934405421757771443197621377729353259688779653426351797312030170851405809898651898695151509837866088787184235786266650374221691639955398243662584495143918069765780155923663600224657850939280028850244982069118968080195966409868715074633582456669800847025754735425754524985863351944012192228209143738522634426868103610424652959439668353695932124974110732335952990355229349659999336994914925227369559742188757434357032239457119615573134861812249926722383651003833163852408041649396260878405898250885982642090188229151105467674963721871218006054141826639884437134279490529761864319276505973141665822999343154539923111060158016833066977213199301279896497470823351019544065424549142148550412734017348954457676609900034294241343738319619788932247583056927459571241884078146692058885522165875330458685738702744870812005135157598965586435514990697318702132433727908366983123642328497731398553205334551987273453118199321875169874332259096974642984049076435667876697849483975992394015331460653772341533740256460581584554802833800869714601652756507587961873501574007295370352737704405825906384554150445063546468230689159630576991759296013953473747371294015028825538296291019402328663403489105459589027761465256662031148383543251000527558518895226837085934445123023341571606569894365674999270346493229636230094611145767057831392723725703858395352646929964854154780973673985734714296025941989865987910487885372512869929219976985590911217247340950644023066996649003143203225254749047046507632502483099270382980654863302788552896814618888825156507101847482147320165707364176243759481413821413140079750114781343187583246509079740738624739645886630975984092258035621324182507289895735259857250691669155435094686009071260016504040693126817864343957349730784695574507152315632946139586808335383847676203522365994674987717215397739753159006924552115403915770319541944811771337430583667801559397631516727870976299972392558184478704009187186883948872887847273995708378172416950666934624721820750099444660830460588687752041576740466410221759016930876568596656547490035912878205175594854368818126342225888533052798349772314110385248036578744698653963801380184468541502538157024618282833230383829926010568465487468823383070600733467238746651437200888508190946062694884066005834649193566500583586581827181007261259704908447566741038839586883529936610545156624416737160461296044509503243386470366787719796875136018077000103608256278457005599850296732887870582117492859288553609535394510478797210594862402430294869563657305498011463932020010689319509101975798617410313838087470209039651787488826327819447017676988850934715825581874131695497674952108910056255215019243236449254982232813932404351958086231393612907171975177253486448584049720345090958064820860299781135673787637319772205343030609617537834513211687069545747377992646741988790182181626251217113257307025454538599469900986243199047409512050979637779921273888749054739880575054547045030229938797507112307020115980300695323044057979324105155575477222434291597834452280012661805143980235579936560815123152250780734961694316028725866211235437234483162152699182475534248378823724007774364475170625790975475091053116353497458922677286298839677513867562867035425906499550557381769127654445294403528218228455509706663651751888823823147079215937004303045294776988214713783431032628549327719001722057220127284189166811771103338261112945639489780790498246269969382419837488689426280868603991120226540688375319684827894586243304867155826039296416874753789546948608997870509780246543051019031856711041415706039371281140722900319384586032538933342824196331419026301843474554049149469277570469406710234010318162961822700306869959785407579142656936846587495708932766705711142024712314229607749731287638985361792159810662801081213336573941296004253602730625393004357849860135106000951328000002141413377294462057347920068787151327130175158812757678600039905552271665794903194163790928475566137564790427598476437583642591604848725231456559740425990441942082783778520632030210350145782368760177566170116215934159813685325000631487835243304144357481306145959517671079639443423095243520623381308580686096680452523965610619637595203642854485092974132369541563812180678994380655857345492831169778842526908377251514899173881958578568308622849602094216235068851089597711617591756544900541890515872225754692981126029456181010445158012693709021631509517103683423632049284039998147471260308637036157304819489891069766637730102407210026754802726899713520508404235190263606251445374788062619109645413396759987519507115764446230993108115097945375215890286120112986252871381490856067060677744266023435453121819926830084183984564675429834620519066254917566258009027981891664461536719069066957440482143558844862392042763863016265582866495276495608458976351232612436167475681445655823863147121379150719849059037742805762479698224351075995171648328375310235100334200359050252962900988536319632668727735891748259542906753243457907059955657940559650801085930035913361853245042916788503084076186934914405960846356370314348691698707096782350075842641904381510319767165072713972716018507423900883224120967711634928369462894439604821746779656412909845827031544421069755815396986634082794518701173460261294195668897140964535094695033882384018224726646614577861158118410689241481056093029279224820599390824979157570516248328726661607738930046128122934570415107514028216081420092657382241146137546394357186851053364931429180672550023378633977519542844334107148205575637586888467582632838664045372658557219831131128919264955756226632289523122267587239211935828726492992755510571588388073346789017567168181168866321361310213637319030322922567703176781286588370364881540678674645306135749731052865726415688908506599238891047321069970231013727727911746167469594110942359374328298095067429467727007524761126484262974403982665682040237238919413944337194183028960920337258495828371135027444351544993807877657711016891064306786844500417198825814454997613008278734700872240366917673220354965147574144980397307768402731891634065662893617659464169561684560591286279091269068973242785196437663136727252756684405127202352981591516022236241133369504331301382787272902218593550985552897783869854298764590421819118892416430641657090121772758626991623534086990468925533812916678813008302938030040581242947629437673875516995583669704959761945944720290302831601773714698333024591490951701132348658389375027466493714348678281052217583572679776206707955716844517446823751789988198665062170521850589023719453718099217084254507933951660524699167822988052321586514361668823136756250525156081845729883973521184411458464422892947441949445721817355454469096198110792489149795074049932785305788347964418849384121652934721481927430669215561558400216907243184944533399186916976262568854850481381345283876082746127326496883448516676860456388137938981636669058703533282392341056191736479725003330923103005912717459134991775607781468599029112253842021112742092340586317066971371046300940739531400082680512628367199893622781726062971066634379956787510082393668142662676615882623512247138384935700288637197760041273327174416074983264450232074312983739749613870508954354750353252672310049578471295599736582586236311387148775430078438095198767153482476558368070557393121348840278554669383962397373237888852255366899921667916132850019739178787308980350444680511820594027030048575608120100065270103089412859937712593602346104508812919428053724977787748026699940665101715447293972066175732593196507678228394367027326509865384854433416505022412894287214748064359766458592699085361651192765069333057784944482149109973089037973258313539322607957357303240903837209842385997868194620896834612834061410967614048918458654381610746353914956506990568860752103345269179107518678394453733969976389101756438991744778427734227796348966854867982771892556231406742900676830766825538421249777823172208746555346408816604210575758863199803233478032010638293990721591444706944184722861591490136835313123999733417411337598492368560432298877303829439153310093620167003253740721343766469826628559809772027768727054907206516575065587031319757586168326371495987003364647468836935851446566607708516072892799484550751962272494427670884285520506311887029273998885693986483836285340666953737796458629056413702434356934996464896755878895709479071720693223197354478173095379390398770158743290930894788433339488703771200039747109638466686472292730777742924215907831210401354790193061765347775628577348133094846386548026661112080869539083030030813258720801089952082947357288768833870764913788072799781523560483006000414558307818040384329361607128409690619531406154773490128468726871266241983169805555369436795374366692346268213748586844161434765448382182095412883240016760042744198785130945630011771449030984974046538591171248062884609313690909961757522458181603057948727724846327946625727420699683835241297936929594034536061284441875941501284714410034535035790725488340119764787862947698019716179807917452872367313648033686920565915315480835747959965156240185044458458120870703162612364805424980388129746470877256568548580625890987164090723507235036462871172663567405942447278890188581725602797587916740372590953951371633643862673968671491745633668344672977872043128909352930317139634180736960724464734905724069924424984735758070055208479350783078385283805327529954221026275662645053298440492375085198080595272361513768993895909606746464315160224422003433750382307373918646798500911504993255490059369398059358495386603995491297278714448171115069189903576749130846057202709068798114333084185320696494338943289485837428641404228908595666332278194009947182538120587362704260967032318079389579123483970117658799916842704118366156398644204068651458502885874311217252273775670764801610883950424651641543606871567284940877826702115103097315225206224125958492150435884501515754028283628559735350176823204753565314630476754342611023478434971524594049762942702235807774034605537986878575140785290605537517394312196754146384043885394431318486355370700678790855760579185141206931899858991679259734784559527703305620528130563681709227830047311098604533862189590338040559280237537125138641027245327937767417370269617344018788911264767112730386197870365224187337200906275976584859899855490606137490426036055791652808068465720750296080983518246374155829440364166096973331591060091292794145236213213464055739385956804891905474584862788664647427626702471395506012961807872186606788149835568318954763462354445707936353656306625219999533213859361012125712129018320137225598307585858578178710509612584566568153139485786298996095257826616645842298827552539760408627195496278831924690329863279272194035541662901714090698528857265955069881234636545429284764595308838665983087510878221301479772247539410469308861737149750588690498618503073963752384064925104701995389585706326862527035189047710717404257658000345517343261521250663235262775289481383648604893169448371223709667351213980793965125519373505291740334418443028675897354029815499106563165680395157571936029988248022679890159593279025594411014805454345005165234855691758966750596306755975262511010589331109050293032081023263313835850079826613729451614930001022302595191043777929214746674013818954235639658398859477831062954588280316179905810230744587792906631746629733202758644430346797164827275318166330326277671826495612608916555537520906685879645751098730653263308992536913283159606413504098348671779989678457388047858053705251609862364826072215893874243187818569881931526822629451601174422753147751139054861454926436165589288922096775512772113856862390219023907249180925828197297065114593513871464644359059003442568451376915988832938964494731667394909168028117635775009436085709292663983455778071921570494361129428777068806753267672932949685442180540244745444559105418284164283779042861989220308321107646175324278562916554493261655085068855539350912142214768774580713922899982757556226983428125749101189032141405639724562411846650222752484143937268659941091216790135573482174738938107049646533810586873203043471547937188956690604730578075835691357015013117876408337438496082290485746898198072905048345294785251498944442256373473131723151770510809879207738440504841946048877275970033628616322943563644269911945114986767573762973148311205194399520881142376350165286291968461287152829845950880848696207756955681348181176493575148849691276878490925280795036973907322997260997802603438236568177864062421023994308670623125415383148314805091232953897280847072184682448476826740070343204580955755025562560865965956029919240297799583932211228434562853697761987082811741162194611922764543140848180545112097758440224535408922870219444248289064657617242192801016841635313924017472989400506241923870362791699888424956675654032600950311429759941425510645611464845861066708528774132676437376552028699349810970556940110564430996903292729125584557457706255034933453017011144762714057190545246952878220285077846267493895061404012542077888078685636118774178606758291343480362903184515321737593033147095586788831237738415746551747056694097137661293682942789252170531935128085846504015545286347302299573540634008617277434302860957098450600927098033517933435933847928330741348678238398891975450277976606299527488432887241578907210034309430863022634127766212614139278097920118218889382763628022656309726963710310701061718026673257621039230240756429332272196185885205512306778133376750638840471796778760750269717193309247319784724901158745333897535141134808684316966782830483129441476758932074239598201597832430862085988445135787031760151425899873947207208461202724149075333237348538671046998080000507299283662464991446775656349280289260789708462847638573629996200177528471608575917118170916687163331768850335034076996328927946431692080845829411518725046331938732385430592311940431657656488879619650310020425746312157502827895000845036416625466736681210622700871275786751614872980339703354050436265576142919060564067436994614516517083669968316646079704401788450583877295410974681520862328666265532723936968501376369812177857277796975728932072489867998237330129912541939519611349865363427174820333273631913446312246850337219415410424051764898060558708974635965924136340225254707101655264843103494989411866951115431490854657545057493685901112594705114991405307086665000634836259460248792454569812417066343238805573415390658511060283635521452202625993537836768812591035337005268765132497538031170164546244959702626125467674954159647183117820330678428923544812351788176183506848802946071629704531852470043381879014995564422207267194752580007192248431147204315119878639325611380455562149839048744381549385737042374477573487068774186834825498522780557300743186898618085085896143606756870554930576601876415567576494264855256110494000673064462788370874129697131245341103049790292932203784454092685402104938059415647917324090457935933718626373867764643230459477439583581004856465069730455649301332395988643510839896780285607649549777998268196798032501402810941425616806174739973979866351039640794032632400402515361516324036431350115308325515823904635391966032720233285337725234199268166496982635961647074140679530038441703720178431785582206350233325603555720957523993671072598008253301045074276070734558829016576756205543383984600716741633375644939168885119228640389549509156760661808868911218656798947479103015563314400135537244318210379459317299064498643694039114531825282870268070703264221717428999415973365586061516730256572544438168781669391549907107491760622927847161546126527424546732599784159484061919731855418572811538611653742445335441422213035241857668054191315589423176241387187878767659422773792737682840801082437207489729277052824604822392432894443537876634520980961289989455223119265602946147530191522453398839754335450221698624556451789137234388449209391672660823247607037481531460426435851055670118116612528974074443950211766674279668424987000373938159831536315449494700998579782194141949415397569242914535849750257278801740777294339761134596072588415461360222607741622760023449624214933487493911498725194252050026237019425630962155613625959049634393581491034023690399554273241983741933782974305358039652966023262145331792334324733797350146144175511350662628025110902190731217043008120767858446304186433097167350758831559398997584299099702533874078335182562255053120952274887944962305023056011967733656704634134846733999824631657645643865406267567595666402545430846448865100307577004490272773362586853663063774272706375807503004285162840303642684959055392710785677383379772298399315236972472797119123534127531366829735760182071591412587686565387259285056180848453133932455753137405316619859857949709149523083141739679382777828895492577560068823929176717649421850907992096290943151326404099258832933263246079117701486362934969999378905692417138278866629670620950992634208883062617464096376679588465799086836921709381188021359920805212965505014582463579811105932631269863513725012271562335420191989527262024182022806320692357655648369583461923227059328582308932804189248955230121017028020784225393811244280209095660733672003315002160905578645408138675497489559280938307196319514356213429629832558289491693106737233613220103309017740961312584732318747510838641453901971858476526405212271391828490497959795797333519201987065307449664627056909739827519542290318309887079174850044249253816124391172215061201689354894985348566961522502311075278252897271277204670955693016745439978274665111452676937637020987427889494018716798030361673555644383533472335735586855603985934583234827407357014314584532340535054426669679668857002161768635788825212839181520840970922170172986924225721392656866668192161489090072736144965893034549071810330662123286017079539429426484871695601266882387874795975354592384373484030532294243714887059373190104801340451354865482959108712397097445614217938153262118652817234914222447788011441206823420683313050003814677241084453577050839026605578863948161288256661681191079655616620592616649776341881906552449489568409811648207770480119420998674001781370912546601721111653613640463558438733402536483127273414378005298308880126836529070094907272553412550217351680974431939932674507505954787787154679054695603530203948257550291970082571912755071512895894381328441147942904737225347774429787899151636581919328683183819822838221440683300174744776741857958866342340681845616135510357953029352393382420777109175302226579130872626153701061538266970095018957596571229036456044905186429209093250360146831194147722329687994520869036083747633704173888039624441264802222043178702854497844322573443135477815425659442946880032012929961665506871361825562670434494559263089951736488906776321623235965119780293019773336541520833136143170804535758719195088790012857730234205199358155730733085765074481175650877442565243852228817756680218265080609462295989862848165685985440810405614206020476571335760935282532529961480569868082430216345375113502671307875334378405418354828372758438273655220451048125911135680941684992151386015390306089157938898187682667363968330638548906869723543930566993637428000784041476235597048944767211184461178378196802726185130447814533453601803685450793548421307379372346002869202838326571035914642864740821257727693389042477938400872470865279117654404616332442425205518180109571924233394165938269767627219343726221967591528027070419221153471846811695933537767394463035358351767206623858860504086873700579410007239313150390328376697853073419235829883823309742107279756341848079223625160454207728726286421775928336844651445818894437265210085488524781844996575260533456180200723896313133123657807346921302520818510915093938636879749010791845623162852242323808705939725644205800910090118380976031140977855207132565018909969652484195727103717849714427699706234694719928332985199919047723829747917236626877873471178793753338510472515150566141153980961692660808580789013075295189861432411727646545008300817676335640337226820489767097152431527032832710264922570901640494425539688531227614841835469719846744807958107267301379097366655181421960413686073386939504749285352241500844655772843205114847046798203984699096059767757013334134473874870480143727570557977120889243471776356218803691345603911706822449473712818829125347078215691745919549612482814285480417396360936980075923687429199548858151512553635657399739815027204448497709155568695531434745792716143674960664191640556687637410622957397976841541987162013807666210594215882223684723102252890997488414950011364543707463113144261745420498328706241870029441579166953826033932590030386266224531530469680244939122847635536128468005691257602352376612819903138103950340449317856406671827958222955675979506817647603219771825811598004325068596742841571594053331361800296994806871714943750030045098527090675718477454776111167527726956384964135191253989126530912920099817351687372664736221476090111449976490101788387856175896258571559887120662304933334505860091088746769768033611368904110472631883164423144509494433418426007845361077810548683219036050120657077398074622446034603629427907617207218687266080227265483519322516867995210971291108836638983272665851726504058558190776668917520416376149590240168273935942698082800348056111978785657742730592059962219851297111655721952996156047151883081141045488289355573877720635593523316822820753112169271385052470970042016106088488809720231787424387392712273748601627689970133184015740487553347363768128700229445710132663971469038123033927277210870749532035840008621191996247514330571218761750670115311984376340532579951078265124673194227787002923649194094162639993538464714230512664671842583090192251475868802998752240802902531562199791456582340911768021167281262803834746277892511848547400169926328915935728358012450852846674885357202144626559319510774791153386436603079542316877621243480687198119512360027962118595772301883664695183712812729089634277864162441550451986506270999957986115053583640359664055886951546331149930037041342410993654995316117160158903017918246097310548851193053832573033498811006264272369317803286710383434252041627157754204915197868142308670776393584190080102779773689854774251220356364561982226932823551000161315190266287477990350915489994474647698737729734818787741491785765792621047230113714569610656510783732345655687717004715802988224907496431859909771273298674932380640846123226680226494492001364103695218130081700881883083493552553608676552166140431453563141591657219573833043326150528818843849512416127565627227450859812960429683533433785533205965689228056091589233903779231149984692640848625347966530250036844667009209075245118985951698176332386615410697612677850634887809566958416681131138408235709207846512791331581278505574671433851538770194412552238094797036859914354981117811882422148590016985137312598109246044761911215185078579588812638589636690389046483215835440446221973821741739063594331480832348777737903775145245935243859224714329940686337088187336445847337990317908697332192568097483796012824883565815964853893243556595242214205866425995616572847882836686341210181456634029200713980378934833589794451852986925218724233580651647381906155340618999591458869968643776660391560152494855155756472603616173063567842800942175899984063129240498444357563195535664980702229447316485234540087103628585131778497357520178739453471046795312558019778133990222631574188136106696139394874966659902224609387636144335496239267286072220195836534384499427007066292593356397947819004217355348449046298194104890334985119561747252580432858344030553126005574438676702937308343250253261184798862160423308951674759097561192508991675473242885948421048661908030709670849400582333182544105112312471693823520714096621893578915797722016913094621835805613879928253500260411516296871547328839506470726144500774980846190927307632510660066565813049564593780940985035532817723962807957983125543127883383768459388059697399317193977811246517691332074920065708058439466588904970773696222149719850158254404629857724104273452322499222730210953286485003874008913527357917487787346872481016739588697790863993227865428006826716815487138624891758750148937786937705689859139791000684825034753321654456753251559515942434498911578771598669554357631117412509087912533261310736437339663067269180730359437999832476887816931809869809904277258946686600863280283370134301234124121831161989497575608402148978349035699016303441292210878111682921968732735078813532544190434922205153001405287582479995635429027100654522313990586102770409870655440229467934620325038929855213646555277870717350608271582132370164610601841346803539752482219536732477116269577390456743898712237246169876793052101936707907494110886602509712218160575527795261646396579127271651553929779007658630749671603073359445188892155385138376935959724077200719185570407777630347864207115649756930443643167171188658870976331639982889698594618729413967401822452601003911966692232293402265316652219267272609323509416540084842131810831525443531059652189755393120434645025794949695705930711994637194839003071492661248781535427036332498886872348899525104912564873190359399519981453207818688707253803966747620833563110765866746429668275432163892949794781001334860440018031621824208782653727374805533881277069498206807423837760123690760107352081958822046878056521715471508484920170515379415451431084698821239489865459067102675737725219131733246841405566831610275450941766199095276018858203346660742788076772510470794022257433899794379132079519005893438640321932634457239550031517401010787989392184653801831390839896255679698329059590637180604784776338210182177273787402965417155467995631318829408570570525999023597910252041429871040509086577161670085944745033473448037365112279384415452536008934224630008576386125881482361460417254027301521122584120933930394397588886278555875363894938030067165149563995151951719969847855141899675854003569494156271131032387348825808895998028001133148674969031881658857261319741687580773183529743321745873175186706681724008874244338484392322560332907708309304151109767663944240080539128874423778388387090810661814872195962848286039228317875510186702903466204397564998084857423623396341149140882571188959649035739073171815398924610872502908707317539921317702272222484994674024287387488056105902567882849972725432124829294406343257372842783353462195389006145465133395734760322301293591322404605700645933570087735563192793830419627751575756699086122182545274271572787859075824319861035703571578832759021473595586016975637186897388947677873759455701460225235992743044788343734719286318519057532830963332113062315315217850317055717179235617606320584253180168499443962685920206775088597878052907315073501721724449092698565195623864060741837429348974443584867145008604510573504317585166836299769419951173160940885106539195943912683719953253620909462461283649172500876198754251595549044630899061945383392284124407157646854186103242909306895911929147387233787271479884658453120599965710407243694984204570584980755248405711174353598569632958765880300770050704668455045942037869985272134252089990913504147829617717559713542053781869508019023697677350004639877550772099143158433996146779890821790316449128356915018736603455231257721837276411887602584510681529344307470236332082325375147092191338866213172580496399401744670063632598219018450497780948579474494210614699161662323608729835937205793349787368402070278997028566311993790749115170071936332274608186289184945612523642261435463280063574151685660647799172635123906955170344479308668736187167793955076601764440983242035982610386498810540123335006795268509595972140997574270737971895760524253942173774411639206971695903096216793671617476118919567626380153695538213920060824029858956536011630739277513893004709831973709454759626867328953813304801049339290949452209085383537005271984636260740544363062512936105427422024938176940388029585552739043214576189296862335902578134329239102769510855051846979156100963878925135278230000310475714311976147941192897412344270713199188018331247996173209252070339315970482943892447755412481228903425958779174986109818542733754213194446547567643291213742697016945204507755122644550905944359684472906577560986860808755543792650354867431376909200224776307345728027060004330859662760280287381686617860694427423120196612738516223594782429844501931870540043657437068436903807154495162134442477066925498793398557300265945522262650395247417004082591195411852070649681023074973563302813813130828390803508579107391798145257912474468750076740375203506086559406728652129524249148329522913165541850356163843497223960935493598252028370673062744739871369293339184568069721897421748898896623580255005215747080290613304094020248680781751384091784092104439814261041854576831511344013179949849624083968428768037838578824292849443613024074436947116628198876155323259203145602961211864940271637198157302005727970309898698910365698062865641336971570520691365483553787309786514708102414523288498889540114991305869585513552903259780287613570414299562245270024442390785196296805975472235505902308061913488996843696993530321827870879011627268633064129196436844222611269121811116602309867570586192789997689852406910025242947344910327559104482692378481402027592509645993502192489830227214162777806493408433282596837133215041547087106520787248638758327134454028136892786516654110213701293543374277056414666119764103925517487716378798657731170156390629973274485693696233772960479927717812804968987814062817065023727980315431991488923376647275894974159120421676434154577191740346684968980748749173763115410623202841407943095414074002798578603707315676278107761742341125677260471327730693203805825836291892765028116235463601797930515990203538712105419495556217228365669447279372381160628098531297485191886040827496484972842572588485911351349166414537371612212759600733026250791262298183204548384551395081744036178289330013002560524784668701317202112169436008964768607857248477981977185666382579745052591970987641328871814663894096231470384337947456469049091950323351428281222659466408429751443504786418951140035079419949782467535293956633511675007745766781484759376242954172692730642669479706758579373114498273085061211451673505324296853825072777690190930982106247669610826739689875436110106433847727434660014304971219073741940899237292260425196445127531407464880420873483499077096680183002735356352303916998715773748608541690905936583348056897584043279004026445692086027327103086634981031654059448418407987003785877072934483715684409624708368319236514344445845730521643962413352794583859256617352001327705979037796817564843560508846600088840222666771379038339225474206831247990208548648818591959345740564853505750763910340687268600849648180959040441534683933045780211209304007616973190059152476592717501036392291004400740648525311764336090086537980332446158296589390729286470346154562331632995637062769078875500407238805367753104136168579630054206408732981631230076732384108559035312927497123429796820911121249648190896191530850569846798807958015089871771877345315796243757781427518069626141843048165100688793423627032114656996385832068231655968151848111423298870295592074752561786272005304280951776542207151311391441553183680216578215359611161797066775308228320129127528052424220828597264677017192729097246352680497835520597400629439376851556195735812826019378789476926428115187279025679045618396274083806946743363495321245954649616506970746176169529256090199120650481415784110888466103903627553230965147840262964858499980091132082101447005154960530658534666026017694652828693165360059732618795536423721302593678386183933304367600236913489184377675451001237923614157101229153778064314741452489308267776799631795458699583712720975673627222370744978435946339460049932928185587060262806608616131091236483574608516356106242764749898129183001457206757362524251370346426612156236328639511128771671414442156242172379127253410683593147940052603437927105127418135910991279180099350323632951771449210969117346658971051193033883868390067420310374953181226809395946854886084155010858592940750776571326170538482032675695675707700251781913628900264035192398087103768102071022169353586726780772230421483564000095041959199423649810779139510337506825177493229899262634308263322669552897199019494400573943091609389029366487714887670383454141060157933655520997081120866474777282613515687692344368110208603576781117561590065521943335488453194974340236341177385764622453821983428467855610593421128556318286944716329999752018701666866851118612953478917827365868206985706563421380544044241276913874382613833061796173686371854805142339241859799131158771038279907676014423426083928750356769383123601023801944945430748098120241836539878261634463789644720574656246394761165623595658373727030682597665041181655127389120989996187692544545473649878434261728996863238431434567224058800964109387117479206398280304328400631640242562251339048650514683826583252644167782400907851222048541847963216943429878570801823547665499503181099186803212149813350145094820956770281886860138599439741116259097417769785807636974583550074315551439393473135637267656358289817333983579185138028217754001223932774572581297058391581760108993829956128899362360555671444019324953743078188418745580463460525851773587352113151415048366244031834530000045227929135126526009031611660819527795157686242988546991506459648942535656021469730484921700398957336499771669758393280525221207531829001115696458950327985033104927523923936337850330013388735373804765333187182927177754138649821849014582782100621107589750084890946382822864535035805922030522704625855982859768430660492968019329789330224548751162262442062407020505290138436755511607056826881544712167644114001433474121224594457574255045585450522815906377201694540017970847328342761346468477744833203386720502342146543976758264536330047351449477186868718610539627757835675520090178207499605252441188612901075128618982749930130558795484812369193356744280799262513747524091669093434647968191063436653360191809737935660008192488668198572001015040570875313018814895327988970423326060103024250395476488978009555741656020956073526485245334999006284852990785608567376734495420779310297163067127722981742391093260258416898014618298138387469764182275846539212676241604930840789645956830921289949779676520020396340247425647764422388283000392665130868769629274459957399627326083845092254861130227759365435617145027409267201140862934994725224173338513899713957386869841461519468435670266176314906300372583661315424973294573041627090330214049863903285304790041812619135718466798485004603355861056063388049186076759931513555776188378681739285269217278008820661400062731514499481657909902750069218767407413154010277786277148316971784764313044938670619993403808433682780112340253869562152731232097794856050702598494769509533878533089649438835694942311632976334189224323718547793456218577810985375352378442663642489378463911758643696579736247274745354250788977991068046098483063827436726508066708910932300286286443727318340221748793702484686987508120195111072426547530304082093760888058835666793757474825566284827368532522534128195584015660685549283225505914162447599963391693061278349784049077727643910707999287730469192839764874031690030274139970497292860655257711296294555478752560518355092856279603205162898790763776145339616114809743557470523492864001731849504243516951394419389230800710510372196894972925057251329644341447380401864775291719621911620568727937220637080628286006263349967609648005865702700604073280361889470204393020434927086888969211072610756572696991006743698886135352554030166976160519797836264967248034070696595198875924098305974748197447344988267183429032218445962519196425144574892893162901267482101687521800969360227407553972550036282381570074042587497028263038564828065407435083308481004126931269098234616173214565969280138797821059880156065132035527982377450639055041428382235109276624337098911107116364616097482692476387372430509805034630143980186072333842160785864684398804907655689294071513181986576148179656145490294812142523962305111629564064433994584957904052930570334625731865941979574867817150804504232394863725854382582095146124165424159816717422456202835858494245105957801389869969736333998594633281170111388913063592974873554934431689153389247255559498927050136665795637050269101359173698613394976309318896417198739378673794235545284994820849583871195599584775855281656300414012086634313395424561355596760530768937650628588847582261274135375623358147043326911753250363619038152395843677576037752511413035191724123002933448093668657307791616726950308389902892979668865261378201782862646373533359897870422922032716844708086049515020155620084720467359456223249894879652690408646574187109386534682998489187610153580286563720330406154737206658257921974155025333813785606816958197848205523600256630084288481593652900478723540546360479613043350815130163668407888582056263918496836307775731445750267756168734178543135454079260553046149399075357038733835113760082992892553078265068700638336909323422479071525807297044348573647907662483395388196179619379124883099473333263071771417871487716390452017005941173366031252081576304020010224914651197797759451976396133989698090684473046488247286247390688904380768128774973627954013037025970584184388703623435154581506863473672476651272798873235433960404816057206591691372603385874833724158085703035625948428678117657250719091789281066285891405378664055531248338148330480421260720915267364294637831340805378802403300675790571996759393833071108822946296701055897071659637844135116108273680296861404795787596871271142093699475755645170078824600528286255270517287920746182703725363483075095967074950591445186676442816518799453584041673830828593145831956789019027008032110293112455691065425970577321515385635097764450271198500604974093673358170789234640651314196884270353868803567570811317943207776322441531743957849385467442993419061780269144893836447836212819228328480731947041860377192416583391711646576328543423871447459782977475400564978630271658079521106192854160389152057335572702139363627595444431939111081391893399639323221948949603466794790297303781601610080303818151235056266927325159816733269787607611067727902118321600359079484622431709520787164325852086859620367274811959127081034247354341526367773545194127469437130874040032391075515497871858620337885785217390511270676078349599963294761476596306917456453444321270087679247117734461630604699565364608382334733338251147151873825503128160685830383689395432941002938030074798010588113706949666304540954855074565871818624233353820566233646738767692534467734880890513662770565141974398330436092442515995870852141274550446357539407287525305078833335299213304250867717539071838685760790540301850442855218929902855238247764305518846691284807569635252817166627161796575889899524126769007003871728338997853910556135601235898312991733375180565764050078028041871063232470341287093990111721271500071703906540926813103875998369851456602830391384019333546075833638477646352874494555930848551596336874828137421512210805825332667572321990313578435931468650946562619488187338529873536321091566123680982573132608983170479552799551684649209241281806095536254171058581283941591067111061803291986700750272809483297235599042716991740475952622954228343513446999584502568806807400432237727321601234155399310466826796951468294259912798061860723592328994898850397029944505337311318686020066457868688304530502863995999753381569341358017442490810380514120803944585576894492698960224994535634255550801549321931673414470072064804652717918157836660041490489922334282564389163797164331229386074102268026898860512877108944778475764768727753880742364445752451127934074444991660131301336590533014319969844921354681862035717522885768397679011588979742006420774797492895250928310506126319402469640720827551201643816706542083005854922617075146609110971566324238478562087436813226854468887770970911640800113990105644932632735244746037601684292986298262780250859744523162270235957635464598952189905625674454574946092815624741766093778500631651186862597639494888877979505219779643330436258823905213319153597525662131171019729452004650010097377074633712720827858938094123894818878826212214522273468183133161457206350808757119634552119788686983789606849682657308412898597812806478529934689004148703765037050770975725550359416522416919824229507814769276830027674516463305996653194465680549082889545476297874199191219828727716444604244438480492231211336191926250537278538144896275011669430067646465052163753368244996764022895145815586864402629598508400807002354388521936267180223475021451046635071658987582457961748139192362839547703204586430402517251415193164627258433277043118649739338765170865467219416774724292568592759196237665342554433714682392738805612558404697247895095788761443992095133871827532906911362874288865641586695363820114503561633351223555705738016014765078328098771359285742250102519595571249340725167543283959323864175803194155511556102416589609010155295903681317208024750948574720316025649764841170588062712010979531783506344652439668330240428306028795277845625671064803658692319616534841067585559539013576606674213227032543467105929277815222750541341519976818962965889039893372727716811126109797274339512980561620091267618108099918496310708961082512110872017607489299535743230377272912959444549759498416084670770823293263761714260758827197835281145239123517888396643905035885405212934076076139178631600182917702162116497403039420978767931529116735024219242764609448202493469249830617903169306099196919985216374093473418005707907218050863817523202865217132515693430612354822710977378443556438221365239296084714145587588675414624761596335672408927552352019080766071026539960754962807805241687104512092543549768790570901460380933211780132042722581805716882145053530430054184681760186100889032239474868948335938838148380486771615046724425424114254817449854603885771171186628400064832575505975472823259446798723494920130629069389490626334588600433636864006322503330191884243386749761251378127642621249507248107945350743441016288552027516333425286429648044598281204515675229758674659044065695707736613144290024085357506350432865853386211171528494120418982648249728313914984031257888796046262830060160142882034207874309714754206434818471013204498843565569593634575450533352150301037749875163519757235128120179234616902002362962703022814208684780745161127901515686812608224274248174816635669310617352499743463985861624272869186679686704552991132567737704183837790565508003446120080695542848501771728510520066365286834429258294898885841050076135809936247560674546415911457040733553227566379592250328839482685276929455209749082830172703069949570796250733119488047840183186593547959730588972031914026927281206564619130091433594736788963148067740272740403579609525656872437286850458661954832922247480400183368317492270494134074916762069964560518519785900420095343534498016769532951163146744803260303887935197672505693801248703663684478572232480853063303430655268310527506925374542421977753053507617285843634120987446463073008059261789172683046760163834737261239541635328708498937007254225523526051002427662288129278859180674478868101246314796511636956299556781945251492950212319231460500097196016699604466908939956939796778889676748065440787177208674800097621430333040809870598182425366996502930850442728447047781724606727400869025672484063579947361602255183091655709189907208168732948694378604636002315878381891395149182293996542032737862315332308277370639610609193155917633229621858177345590974919341015507540068813335570323530324697752305072159455924339922723845530166956524625354456210982235389647421195444741969256421635904510269492765335166757079239695999591792533719714483955356296158510920490937517208884436199385404109503069387164474707642683323299002063456876789229671310291169314011190644882838343962761836936664471141596354138234623458789318393767693508958796797369594184067197105600441498302713697133943751245994863042760730814617667547253586330568484716810616196944496453357544257996024293058197306831574454085931832781687090731164429000763750902153325440832022529084420441968318486039601568130865235647327232974664436787580210631627685058110369084332894688843373734582294345939957154383590371793010745719071602987832819745505964288588375880116952688268870233029849298952745087160575168850861895036443281665142459653245908466167216037890742590589845400256522545024420733786831943570520760802509950831071138581472247409165762479992910889792794718513993930533308874904803012951094881896615151671129471918800144931100508685580997219710076226378659249976906190174455621357977214668365872829496088704607345118836476848285661794624290926091299166482315083906511268546071956937320752221649368289668260558714630054919182076282363599965287634820159553863564574830564067105053721960488182393699259172511073242732964150444802534413908045437698642269571077738256602234765432300446775405753677238927120067923880108930256164492626247227035635133158017199520346284432549692901331317698214956605068899980124607399104788230202694320557084960432357470416764978755716353088407008658428688414881619465967416030895993397592342416117909478558548759949298877678765627757623481499512993758376893518374039871832907543666150850570674514812786818296364097605204408745188259742959259357650756093644182103829156800284966208710186023142977356449589541655421323231182397602366883513123374438691494454921240986533649216153186696183352998253745445196441326444697752300025154982188125504228494090055166342018655045985268300231102055350348282723853955131115359245259665692443654566854761848084513994087970042866658833072699713808807507959022246037890414679073308060196228928777196248982184672116983231464457645739095812844858524079736082865044830297772796434659031127095379967739825094730389099963180124609104622832428973806635647287962659933554474514951491291153810137551944138946531207119494205955117556283828489343752987909174037890985119240590257861747745669021027523662415262869265046743436760906834042458250310118427663846569141209447411416243642436296614658575097827010843259814622969160548389580985186807596258387407080050797674074519719815635323569021284874955838922486496009888277611489235656570963742102900297799371006513558858262879107416490022363766498801437986181581160470714813201633311629211901313223780518346211699492919245263383014576233796074744092588151317092147312806913175423476844712273621730003224190421686306107249719333363959913228704587198325382577957559964667346515839400275500279020759366540090229460482904170797715653081236382635965342399434104344178889860382848180932413759342090183854345707443016072630413303824987505260134153294881087963905983096138414239136460639496785463060380712339002840477525100168146790512812810272620982869498803672108312759105452778691138207976592072830393997113655102516497834579840412960818548366875087247785988539648347176857268922862394552785940496046827982625701580023178903775945093388350245691804706507294559300538291518474823463137214140370993683917650364186980304394374240218011974020304325457095469276519985313014182869377789607830458543895222966687339512070032491051251885985896081178278301471116443084410478048504619785107021139021226335114615087281023580963792255536236509299055976053884407862932098989268853956932847354377728018473567572238169386045472226355252081087267147008605934275433741472736814241284762738126992958033250422764335256877424578751041261121554916357066609811444905420054612364928446743497450657039184476321228291402686139829326217560284245794540173138087275039329375412483941854788131068624087987240607404240035102197698000767646748134475275793952098274897289058386486329091912188066944163839557647600416492952975985176736326885263761753545944430733511756853452849248580500242091514470699277799750116508214369598445669765571992344851534526263058756351362417333630587453076086545617166379125105465454212539790615035154411917971903206575197387610392064595910403146599053795027427789143553248739470539732999306529361668729989266268141293326409500212471649765254956268005494348817503755495902438884667504020693401750713299889081555568178830033598183984261227070982134455175444673401870653910520606146875795037956121750230189771238797662417197299529893687262036960579509546057406648497021428600209531171615986334367786198419135969623909631414540628160560063788851026208986315207693617389463888169532233833816486504904179096342177353740403498620021516502235529505776578981434189818300002001031270989575180695562363597292642712661459206002755249940008615783886589415231374228687010770684136453546967409404008666628560509967261836611925638850933247214161639081007985638295301337152050767412556724064248463517222109438617432963263386500594010879577559150080991284095084943756465944813002482198774186080126084298762485016304654937468441739842249922924198253647732105629793468366441165448894496099390048832592959007653972563801104050561371439331183677274171572413710841782225832891971400310047739461689341968823180967557105392690087072876294494383459728317870891527845149330852529086623927719563031782925558389133290801208900883656643451982601262180344041944893837652160938513925863691856620268344675680463194372569193728966484229106490771905334443552503533932460065645049744502499389079471306128565883881652821713389272010251385935189409148781870973241206714177345362707550797656920005844374491779902806504653177360881192504898428926157836338503315567661565887227671136909179247914123212327103466980836173171508136633413061614629412903052101026442981691535830669362292165318078425294934614622744310678715838673587151617865684148387530060136081616407456586744815479761800196808224902273206672696191828464938507272138264416513870331566450864080151973810794000652860285425660500802370678360030343715986655538791517076047782550078408470694303144956764128857279224835848705072383084221628740047352579503979500556516212854665881235639999684257611648918088151433888157493021361760769622956775710986216541157934704410494705531962458077641952251432631305724396179225495912220494521952731297870888811981955974750412832712871378945691822192019516510709164943527292460460537805845726900365796715339178836480706419961571994544658736654958051181628093162443576531291029981291848179456858690699349366312027732755421599986580754745293370821194424136542536436738495953590760036098155832958470377368462720638791707154072250126051123616452407327699458564432755534068852142522055020024869539504080267893473938102839341764531206613618820989990613155133832889466509598120017871970534583649661193759570589110561860607366864801870828863682253018833696727089937757256018097669119424093273598398987230698071219983450147120736845215122306464118272833025538143162669165919778321729807950974752411196570649902461011924944574531416327919564704317008614789857762291723812236024623367262871096728309062620635936686157380326189421876615135778554944722604061715461507018750419457312575287376971321492951381353087697343251717712881057201922804832560282014092923947423550246156268319148928182177290244993214458742441557864654271838237602729607440202950565936450815051247861729177934396330191333548248569010604583045497463571389836540784024809454057091050322315964489315515275847730392399961911538185621336289816472419148074856052009051933557375970771928199368106216623158156837554440317035775477932167720770823562308641688208776764071160736080966946337513825908406974114471653723042672198386874566817858716929607686403393831194634199974826835085045933241409355834248037425645355222236113740046923501215094791792367451338369137697612480129132239914970369190368697628627009954375261841289609980336947197736935690945627064060888569311351975737883612352665889789607736588655944136143804712751595501831318813108871332583864090093566106160036153502153039547021686218332066472267247805019989442881536233348823424683482647213414334151810596396439544559939000484152671929461123219212796735498652612460911010586573150841062367185435435801977361141332188826443054584980532451530236735599276587120428939965528002415473490917437001754183750442069704253751317444379181338477715858080336836937805839189897960496188251409684474255110460234649461320732512452032328940379644994743010010845294363430105244906955336996568640858142858452849883527785037252649149497986569901874863783617862178366078353944218049815813738517992819455667849058237694784732867112877716902325284437297670148678160520856395572318976912219198833818567388278026660900089601877890902929852126796605047495603630995122641912643944220296983162910025611884230800302448014111041542976399183447089260267823413938688009892879262130270954322807927158383736347787201331596362578535852700572839261137308510984625857551936842172603787330838864152964540584592999664557127488924143567028979339274056616225658487095808171345495157287244232291872565086805315028957434426022744698546514720582955056559339408358517152922372783272859507184170097297196016767859283124411812437545408046911135481640609585909710083385200118791529854198573339744908625681184836475599372757807108477561779449084998937240134093969443313925096941012467097486209510757022778429730545938808044336758215082618786740155736092917886418418416692548382023100149129460201578922646217535646979392015047318607405800739396547071667054102325487733027156095198841693954274410162715398905858512486324549103644830475427936111115855543589775608475866479822180081936297683907059126957440983172643699010785892907712964134294012578945808405623203558508027307419866174460448806731321026645824673510536686117335821758296920562734061294780850112992785155896296372934689298099885116561822835314728556930682879480478376942784737642167554227242903323778677637461706155888629737330820076055399837014711982149623539305430312429631111941896889862374638833799324248942744661101852481245991086580004152444199080645930376487969470303164753243282772046190449548781371420855590509727196199167690531551740912372251295179605010795038942236045326676662256197400016587336842441518748801403430265492241658285416942564890805049383698971995272518610084762296118616443428691332042189391493580995404404370460795941991245646131477257849382491450462221460204870485364635891440728434718080276865102724329937651051197655695992927864758700681643082447427073329418248582389253062751963381879490515967318789052961400605401244560496309605143540609827153614274369572508954882617794922296529284703865044700186093727419899283196536072916833900067118502703744214058556723564456287701179229781351737046470838640926989096445101628910210260416903478110020915956213462836561492502096219770437529468010772472821690902566402145917032729037244295943600691902491354352034046688261735525720986915246115419654901078937139935784397158370336457801971455488680520422469832194216250967738362700001694457123422536301711336355205353651200112340845508695558665176766431889222206018286776574546628830004682482262311904574222153942737108582804404415732297675632141435123857523179327810981506374210553802953836080396796817319294075369353349980177169218434504900201414171334428599899500191124558233804282320576713271942874090799371794227752590320470728291035800215569037376710939538821248169395308740096290072240715795217520867620942665123959396072587284027833461960166521795002070555077167978135635123298646818130157020719714099338656451510153851231992937632618142514613598193274280879166402137834865554458746688184352959880030107017456003575765847793404718295667134769265402368155465712718892363335401311975502934199287310418959054877326793292626066732247929326637253961005442726956315623507233988400741478374186588532587092430515078182175362563511854101402984205378342505768196504280354030098937372311661569379713835035231089005775550004229831430271268325701068312569278744523443638268068284549053512406536032395395446087969370887159769013398614753547081326154885057223672015219810501675701090535664524124689230924627500293233438905222290646860703746996685032407874753064063773848985960038691672509690499406584577343952782327444684638429137472682073488133488588831662525452931850222947256495118859190659617326934019255393638540406233911537883630473062575058065146454556633630619151976184643842863268638176515976999333567898260420232882632870277973552133101275685092218733814981790748310619706959065137043156201662605342066088599557654903686210096820670693226081546140787962500080117209964999772842246283002605558563183234571532969162065524437289877311739080748249504606792085969870635373237441552422920688569336943123627179375701355442563305108421238517724497276919636673898740879614945742873340680089455420260462722519590540816156489412305560508358902304717558287441829955118990549581415802740477021763895067005218519778289192399012229327854152444359564935966377371032156561642619169723415070841552807363780598341532287044272934793013933558072218079454003727716035665607505745223317912612280257625447884126805859116415445337651227628569469988453807872820831590856641506630008405744194473832243067964613502024737466297018790154913705699634162691804639964326265604572283832195293793788826877913164317013160304738851671192747141859088870321135761210586855470798865584412291766385006233032230248614672274660737153322203208657647914439824688834913435431559597247802743803357301782515397294246579972937666763734728006081726993532667093793339979919971396687389724766569558537792547495219002155198110490771089996808482307104295431992194803713513148781196003441091854104018362792484838976736761950074637075027111482726237640379553818618316577017065492179238382848049889879807591201714343877759058262614957316723742614574935575314336429874217820457327890028117146071814502524074824373442233580531147089861480138439966992060643115070178401555043511972646718969203069476664237023294360639631191675712630061740315644136172060142764676875566310231080856208384509514402104028524615487172672706197966900269474063384551974805241348118142317759793573640524680137626158162842629869727642959932006676286499800078641774419027242009484400043750138559960508321921974652096223170169465331088693667513540385066396806235737661694682887713280627430729779752585160734478083024661151377307132395343818609313985886969544973592145118742509351879813107862154499957105415618227802543710727006943121942569286117979106427114587295347834626308463141240365103346067830371117462782993219222059155068265132338586355232487511465875127170408039841046308865194631771091553604774220527476278039532967810528010703982083146974256835067588645305480912592852710140595625787037897793314290228453928223463915407284923490532087489331730738679626189344649907894226014168186441853953403796215344543401605292930919594203470439453223846166462149320886132392630711901668685921928076972995919038452988822867237114310981283945758656099984610839729187033431982278469269272156171829091425987848568639226116287759036140453976316568216745155382869176255058669103814718060416750196451548374583111404385134128525866805083207365034630136816511040740436342795429839244259274934380923951498610936281260969424645383385476021040587767509962433318580319469070268673690894307617077946291528951441344288073955431418653421703351156394109452981825455461551823161201226742783845555009074582500743111572404398097993877795319168216389205581573041763315445059014983338688598768664431168890628018484027727504768380772775762960846520629869191777362717811792519702657991590100891980361536513530186396804649739193345453343167694933739791490046800660561582966737796148735123769018028471085359615965282771332677455298085133812069107181205239187247275937824735647940895626661744780059154915179612234441623080112070344916810890444326928414489578054283804096577021319415836895460541223771436815988842198947276703165267378784771554907526201518569141620844911847141998967565804898831911983081945857050318656315562423732310996770463753542276445370542356598145168302124838754830212084468531226731062984040452189241787364104658967740966743352869948146843642377335955532449098748756474198803139368850491483733599799016880355611238246160458953176622037061289986067193833368381160660561550202292067125838812506085255391439993084968648236006234392089777829796317305636076253563095916589727172165692506525397470825328331782622478732926617773724108962956591724732343026871562781862497963696806305486958116144038986681670675579389544868011234696804561655965389733625532737489599391823192569482719903218495850916693089865082693914741512919953553968259515881667940246766455031663059461012363339042498994516918067879795218225358357916917548628305716677015217482833656281204611917142433176866964298536850095813072413943031691872773548892509678921960712669318872547427613771172873578925343511489130089825819849000748715316566423058431520433790357466776054380416099498366673624590034343076966164082494781531405104115786579707580339840473035380213237581417048441081029646375907059625715004228214098586876584209501405248229274150378359962011883278541052666548069532343469776966948829119146663084059398131227691485684751811689743467952076920442297895799564710915626843281177388892699494098761243927595817628596239269217134544935734953202985883597397811385538850168464472640644635829933484775560610625645817317493499336528218114484783127641165232965072131154275464836519586735331369438177700236032624488713059695252844361552906229306624697378700373065606389518029219193866525639477976843080969595376591405481127671843281630585741604804063431069180611943905684195362610651371998417679427362817512295538768673081938003074108226574816414150990918911450118816491090792574048715887217780896427270370919675039043260849807710976933413765000164467692649168240989418254994938565278427611132975092926381164190433352647722237054656932350094868930700633532846325921911415634807099571981499884155538394796078213916161820667827421200927044412490443126494612995699186790392852610552875290715778024476065245201801955030307615710340363235244666897904679794133989841083069261376835530001309467712856029749025267922390973502886649349073918757292400508441742097556877456107547814092748362328580514216609914980966568290504673646307286227979510725198121989358356918788998341258142298222684558386862089515015499303145239636645966233396803385511583207429716401917147860905024329131211899979326672751167871815961930869132682293041293895407056862716244271595361841340572887347297602630971626066944428211511068660198465883694609109990157048717009005799312637928125804883984411956899009222982570415184262414237163992651474126218578840855857054217577666041527450065023149711236004420844612698207747244841701018285869824207972136054946139234987252231234029393836725912147917357875065461344391659114678431397686917655934564690342443968399119238200068806356907376783687933479158422893966614681541181378610870004749488141004277879139224702039158940017221979851888656239709045855017687158701105068779864789310992461738385243342101292642809709760444109854912021365549192601070890686769677336507943105106280301597248719973307709099488221768577982738277868122535948693274961005751084673992448122736039935934247369780153134387867123153812632174527136629099354035563011992695348174090970528953874745338816319439036178011510888954009218451596569534053316706443634418556037268158616908717976190646728497802191017340415937458681021295578302805464029643883816554853699929839452951292833467132980699298574566937210011944260891651225037372811714527249466140084707637560914376050148309592893810802248049539410124657391777569412395362697798520318126930149762352589629763915299971665308494332007717615761683569563135283292908322165860052515186709426344143990731898679237768131973356922870024620180504175657764610017787067264798462528947316852983043043097277346416605504977979324184466481099272682845591458179620837803071924902785795393557888992581879346168934246903759873019158497043002560565808683680123550179315950073270261075153350079544582032954531376210051128412078303111290588747721796750263678298518760237860970278555304285867303973805906127816135462605828770771634553338978592558537388638688943324849874772796315395435671897984072035440898198829949628681017782288673421922824931813939088903357330884759466341914611956104777293446645709873507765271603322385638051895084742690862231599212247628388640647329165244361373324799921498471573559181026544082057861881630354659216214213578212244862465032834272402681487907099945925830084678759406020650386030971366913164578162625739178367339603230341167625045715315593818308552423321250292452886194564226939378294295076184793000973724142786224169850356358981211004984229595251372696242313791501731350009132970856846653235708793420116660545941832054858663714525595112697680350890628326878179539784744781185667442682359900213985015954643135939113667706244247462107199579523108088179043592422678524841367878776246950799718212600475230542740827446845526737574685126970546071423833598795093851894758505514546971320811103811973065121173010355504156073698015094315351477530722402052244324774402955975707009567676949221285860311835351978138004797684799930733202311565651484653901661129851828415115566345851706026322339383502463162309549065458736864262370376047127336767876397824305984948420509177094165804388938668369420151301150442139830511512075584647629996893868269197466126054966433472095170423752996826956954960321198347482227390156799133635660219076508540576767436404225461375018455289892852372972529155844572854596537225246353928048926517852939302641894212670610874741647106968170463424845406127593798267402207288956309798263559951462127117387277612718817633403834271621897697866070719397752655661136065955878081248182415492620871333170772332264280039404599630589775926088635902803019743703251139928021914938317512030589039770528354251185894594432509633842060042353062516071824004471565220536182850204600584478587832203498484452006593859300072264278818731886888771835588370137586385228589102549017817508321102737640432892781295586495206546693162933644325624146545995387810717262081447120489113593954044944863706310937769713671257182373792631434681807862887455657738705208220268960261428015348864483915994563982737335557797591822110352069997846010383043218417521148989382919117163858337996277061827876049767977731889034079347492364438087938322910321461230962844913409638538802608447828059812633358325474156227080876478470786887602248528105841439435373441791277164270793975795092029342220611639897789549933895651007300118191735301682142017513092048434271188015751083785782222477100736529876606041849269317401196873786373129087346316417321085530786551249951391685396915518798072293805166488691379785847939411415769306657040295413016180172066260210490793643509464276428268195316787145643436918285148541607450475118841984643874051060467177619476523464168271012939766827959412884986470054359820643907776691344963153252743928333794052247535358879372958397127794635021848200613472316544057745430180926162268142358677350206978461173198501102179896317228323050297753033589061883482154058489362912043753920544549103670728124238815004847446467407889986554690449957454750083305594497933789275137307696104898855338219700091976120195859709692292370106103932278086620072851059558070068072341737949397079128759509883393750099319761978648847501655398681808801049657875252935294325442827306356124785913374941878814768788653967398240041423828583735634995528195404623655409009307783178477942281104897936164340813113488399044258526095614610377976932901601792913063304017675108788323742883069783464131150540685478674234043078680592747296658773570865570464912257093666957085612331862842471213891006643044100773840814059144362256685675223028425297541880436727803083853380547001167908677170663768071509305236624076506915112184361932561207023484660130913940512497668221369853582375841126675291494793666023853551384924681850156658141217318079631554827370490315198058753747349933487633904504964319043975193280054421434011809748315989368649882201674720464628029712710911568144346209413309730207147756449012657109459621634206378419479248695448571183167251436210455663707239872453553410350673927483067054112002195824430745804891260941895946649434698907291397825965243667907237417086683202637145906457204758641118183544854066830907135063546916152088419868556093737199288609967952527143612226828179724380438123764836680238371143729481615213214217338436920386219674061976776567308444661797043788370553364064855827434988364564444631094291054941622251053879729117602633144569221104863774409242551202631785378024352206039869934664717545237764658884108061219267195982483359326679041923318844409041504354530221758926515317349768449893559465050035438068339831712727023199674423404502554082996449423048704533090292864593902406357650377785941519174301904214507477524892223316775471891039921248241256545947637050052041088711256796831870726041489838876143619996913454852479901304664322920336209604397871455649593792453649984272655088859327779552114892069543692750865575889414950412986058190263022374909764473497795973702016725447575129232101498196699169406123347761616048790976169210080542929175393356322255443296728212321520227859534803210611263145047257710058654800069518410651524959221671741136492845566596677834822375324676576189917738254706789561335979648395386855527935622184442956064799337246232873367222752792535682890601194444750153222441793160822363012109768377948166242847481513980567480461120070078321217000756720438026288937774296966949025520561978827640405274952284468693563510004867324587473793760076101697800470566848580824005796220031971073394780772463039133277375818741960767673212966897431084428143388033995592262252122993545136520401755143701280937918328245660572469477673743447760997052606261647308498881370940864193633056815306539473163882240756153233964449510617841066058963288167202616507954548781475079697228482664908644096219377894674918072250517851732560531538821049597667612889520242503132349821741930455046617154835965494198023156001967648793683132546388473368390093248281573110351999449658149639951003350552763909808630473059156942675342757334897000930030386930268732937120185420085499285320129507722786450882351474797801109192228696304263451558788760368904132511483417966457720194524461119231883683651553155881054033232790831587185701080964427773367935559324095281837009180441821260749262953032305601753452437075711806020813092014127291544248099601635055504819512092491060751866243002247333488248417912154175880188312943647220014461142253254395882754211157090184747634463486653252926822423627228003188219023012344002229146267521871600198259072640510290216776054126658978661283693979944982758565469370537696665041589006866373368590107404422805791645969013899823609272955499965530460231544108185713791836990893648657335452518831348779668425394386812474678933724478022197162399442182769942494233314964383435076423636676890290209769778523654602602835631660461865433448390176340040412510445915411573202046348114226022791373970015450865911180061092911983087503398619578062644244263364887535318112964784845317599274626726069039667423384703378169148647565486795647112304297928349446885009333714008901436383866100617867250022543978573416423690020751970268268772744652522182622988081009450564933742004219331866582223758271669267405759769796467156370594555241791180379317529751323173596093766782090517109503806314205218498404506708252763963795331727597614588089913454843734421659355203804536749384400000417236719856691743431668482641289230220638876538337291012642591141114237515979853363580461432835908752788083705957977132412537102603932045936044475380285209515049958296835477022454947202747846283820185856037964392142837238127413799771885321597792096122977637887543255005993831909179640576211868958203840687817353478772187419649638693919042784465963569564115506987988289943453040988978555072414373101323597248213674613130435716344963868921080125335777785167967696900416203309574077182098232451627155965059346204012040958071789532128713760023417142270048090954054435749049374966801095412885973137900305193779526733926524328871938951888809861552609775781592324253728570413122737006989069217482757519300583834092533012740459473127039325859573681514901401499124281751744146971787757694411954678940609215872649843884037467817315578757214502193148249498315539368425731274225970748801116382556183817241193460683325450575763705627623386537315771295049952709331086331130113406845419030659287551711233724684201082311409585219137501829267826001218945731345854550845853529028028815795204490343577571710879911116585418405642482153139424206269372453016454160588182801919820232467347437040963983941873136805821763774673264168669636238081283161201808954892284606770153520608058151220113530745276878760938603451533365890067398987529288933066808194350879219378361603306649043254241024384449347369342035397492842423065957005793202677015312340844734597220666201319005981273678117877270612749336867211660345451723194509570148809347197895151803486330291699634661112502156796063931948207024728759677894516059454107583751592946365438574698869617699281563749196066558650947432850946493640541874962800025161478545390989646698657388134108225269038330935781672669341625364130275882957434467746778283504579804233788372417242904584980416801895206139620511726390192305452962167641238637526142343099723129281385572987481513282588868737970446697722546608652502419457216471856534057980896293719294082234735358585387881135934118119766309325392620853696349215663216342592939102286100545265614042727904347002957017010241159894007404493323071928097801141358349282900280510705403680787252740496717334075582467375151319070131627005471321229263135446832972554714956674508395259070145664522835829658429027389427842263043370785606326797504749388018155075431160937124087450856630565153377504488479356872456444592467996439151327113449400128953543314510479009496493369214186670867159030302962085202416522602896490303649355497425795447932923331161342178785920152141843796411288520780798187225915478507377707716638638370993794810885869819233339798208894315265741923049737141233917872317621553253063254214527182265626372374683106726474270835331813643174118410823655406975206630586109137399866366959791256725024044674509706413669293135088573034584731884685373604468924051334028677138379977890563435391238888374380148143179515476454541871540042263528630540992918247491670054701152925411468565152377313390575532342641031009478628815578486581490943008183772052752268013718467628854045825049936291999520775111197142875250342051702336725037333032933891339820536777870522521092344478825459812573371749931195736295947851287655216358974860975554569311720525805517283381326901570844967817414498626927238520114601622581153414577315981943414587580621576100386538796149262657964731538053582824484230283804515326148275052600253994443929435176014074720773202072201025035731755026083763080149756605985981619360556358062272081364074722995039757313634528942094117760515596077839170935445306712934205486315261635259777184488601405390731999193635564087957559149185081679059476234347033773122321050946523465176197221380704618716800993002081159207484822608750131845143756311651994657578347443617422383879347058989891996925430172812255134860244142946795238420784926385853638345472492430747587943520637670011744880065183650522078689678843087362748601685620416872021293306680960881614435801391096865553952839310071893445146412487020911885695934892646772307781177711617873584746453397187381725056441011423649147074471752630671505322860128024747536515465181455324799954199078467918751660851687856282322374257670360730309242020998349278902329161738285094587205679374786801561798687902587596021409834756158691775897563945791513583526936177459854665474515317364187517615668444577802264088268132393838419823593926829650215253058355719738421632009550381397511094968739056926185690794597742279684908963102391830756824428020464722986857503854463250498639990128255410658200665857232335055994960496693473811213440979730245965315264752404001033882085172415217648602879710096429988198806711458379779047979824515805257253698119815539214249937715571846205299803989015903040144799146727540007469760919854863786796442538735582407299773453811340417141137630139816082466761951859373705371969066708382155337567000649524671873820405366697438749213614433264925785888543304683069150094290705269543889329266627890535829834958272525807139230636335017621861814275727881036778398488610902480244843977695012961971902611896696807056618184952793333516605839692913562419658010076882365620738315539013077356890565268907549403058554605893217411490893073714476876255376373006055179865321680683139946328251116272786559715150116171070242394022943175353166887922807803796813720315408021149401828426020416383429831498597563766358395127216095675050200971425731045961306152367506836208257601405419366675956298024022165748310493585392573774955907323259269184446884994435514612299329342347441260715522419150016946269346926216559135336062651804908289425409431026077915552617908142971339352801738985177316144075313682659792116437947056506043752579519558030682670352088407507829757628919417109035092730510092665003592003261839902268099391884307653558547749251007744772117880498119384787994976534424767054403798846229254932575752187449625394121806600913726357927094045194818165157442780702420811885627100682985129192120753256711600313398594521318644095463442133229183848596731060053156510795273219374309633460008784372147805480419579312315135846583152752313192646079707963578748125753436129795794202856037255829661254703648931671053221727849215269195985711470259670742757098968578965822141366587560857696753490774464337834961823098031878516472430632994196739787427061049960319637150725334434687849599327534804516495649176377290779916503019144805506361568529382769406634218032111782963091417180513363084677169467565830136956878173653004288653347889141924937713648568503933456481208936276169655892429718720505510002526704976692377502344658541789681042085437717910911579507889827229983557510280089180512903536911258221155508728028469781294378190960520714275640059503281586111514888470179254937266282124053651048833824384873341845220592071471761706680213304179087932012691708352614736653339529782277361152850290303787604084905955429554967787227787247934991194086938038889933275072753155714488888856788360514196269334044863222566898639839315634714518056808539183071946073971157746713507971979922853417498980151286814225042280407826116585078849225729661978579220958887937080067867253055270415815762604589964603628046181368647118068306358220204777723103587255304965912381608553193098351987631170281144975900315315263701157733045241045560090654821504547725724106365042414804052854836173796544459000292349867615427337421164759407308374395387678433603920362742644112109252251871367611650718635867278853067358886845987645587040588807140652100155553596282380784169452684770943082112157973888899303551137384683539180998397000594538604831077996815830707146445910881055654648490493220688562040534047564157103920442558126617383063844409095271397121081913326247085071836877804954618177499860788873132035150905353240548670043809603263625056175491414512287171444443699523728610953967957788669461401348312842229416446688577931612624519887290390468246451445525980731969614024709102271503639641998850150318046682172491716749612547935145770291976033584063676862586135198356483259728690930456033685019629637678324019544896078144487496666361516175298070563219964640048357718688133635532515569433145299137712599299957591268116858217726421723808814202434276732111132399367502262683678884418999852296083917320303611981080901001715987907711294282104233810380845535410477231537998277260212342992169711302433234334172912972985705401471661877391965177596549294931684056818807319330168966112343261232025146467296068248636073055088471823959319959815697266014647265971330677701194147108289853020472881515058408602354432062615253969433797330765977489053802680475684370579027908998063999109564168605247988367088890332841395391032238796762395856901155163886236267320659746797382619820033855333428496650503927522985499778276088952506843320851942944110539729994156700553631143703588181130525801174067517718139714652609209428095479917368919335640260026910113647998540724097668304983980583069159146432999815312354698208738611972512406665146108170687311729435798501045696339417633036186228943839488949491131995907425013093733503185423430533554470134540504663795342989692436013839139321291586704791675029090138840984147181741507074670712876068968987905647680545210442558115632154947920254792250017903116482497469547002352996666757029402929989117790803782087675590434010257620059188566470018981373553185070723115117068120311920100385186868642105739208414146353416426826012244868719259988745873751772944629620081405879083380623977323977592550442254840542090445850655337231898540865971706700730347989127006027762044737630991936635115383776597488178840931302091095363710243676222084502418391579638200381372810331452811147538899629250166695424155503543548960229619657165961999584087516618424605773904922173897467621923955553946505720481296335727807801780859223192226050484719955181747689553052940005771065984985889795136832744789423208448507182774522196125996971954720305480543510387302397068115764971454705658258103303490731551074304726014375559304894217495070062457659346505394470069750672167809963285731020462579806971958399505415485149461796780508769219468272011212807796620421302511252458111969021306514408731245091618543364834069553928388408731155803543766446978281019680901078097816725247844534352311157071108968161921950626014763832549387699709362483589975186888745172787479133325025699930586758929304838755790389324754823701356974941828382143794675137999457889957812528436070360229740139024711479285343324788323784219508912273483440073355349196980082751940691573068692575453676134612914572976455193174936087576139271582982965018960388618717768538582379311329745958903642919137825161500783126035942291533885239106872419334747589551829864236971260440782842846942488492466861597076574209998255619767340358326534474693848880203892784319646693240623223651243855005758144328127243019739798888202548127865248971244951642968152773814259691799126010658617199705583061433446910233025862419430330490546166380165311042608636518709350485745673840063101928475393531093531115095575645623866692347452914320705745835592685282825859786401296977451639213998046738737446618539278448680899959167316806717462550543159847593909938637364683492147654852158628858744741980236382668668657115682799206794825622492382665181738994675167866340427962142811733409745867445444594599905829874453230516206666657133108314126476791010549957577880911113453219125799846811148039487370617451700671240364736818383374190100374453328714672120864253224027655474100693054314347436432925525510955199212436617563581053436345593811630219286110142308809766348398351899292004375040128764716461132088602193162047877795148419522382229653634510836245964409658562264667986077810519902407938710268155544003164079753556713101645054770098265908630169622632706371795764854860221071276423357412338894812657423781484215504566414608848788483927462578694173312475130432774361948651668771757886317580005147918260538807485109190188765050415373780610010815109091448230166703922752680376136912215808916091543803225275830489437839866987624685363148023279684733399808782552079221715787267936948978250630376937661352338069427800361970596148532903878744035576337135453131367399388671919922538201622379153883424033295963095799961397191853510486760583583553615465584478181720975371933837896724526342829948682952670032447802412562929691895435593250058864402049940450672084562419353291401240021418421340319241656615347827448557626899908705184560878914467938135472371071247137202891202176626019612574263591888890987665164298899489911353671841458773628246588737637943231297806707290481051903594404714845080061065963677329897287392585626402868550583310008161038086120258282832050162148217056318153665701775974902157199856757965668294204343814261827384573872558701988182902784131429295570887001567825274166080151455294161447720350698533117174019880123525281887638594685001305086887700546692360653906019393492755317618104623966484291811634983894631295044410043954751298091997390490220161543134991348097544452069454313749191748920352512636734991243750381323030542460205403722072124024993790422531362875189551043226328573005053511260919720800962426132958178803368380250806886144933308852569811237935400624951896248788819815384265414077568136946328182939739865354196224091876301253865779420015190311519387002104389830060412742333650756467543196701722742661349447128900953088498192422092972729227611569504140832917147777399318800353933163882616802035436442051441939434168138029176618726610925885675758310810343435394357052932639717696465470371406889041477713039645473047618034279336399650967324945674436043721278245100328221880796304660038637894421345203081556974745881660905896403430339026703864305090552104174510105347369339683268478888763604222268282713956505050084555893474337451604490833904171981137762873141573006246242818487081359471484358058221900667885508409803047104760794006898528418166744316647777628417974260375997674889805014630379244245006574165043115602702991405067441607244039749579497201837561105331667818951036898544814118014038234261516000110159130371110391363302118342308382531396755453133293743212004621314110925925408584067062288406483361873206799058650452771159421880052279025856574385696304827281448999304537235956460787961976258531860795222507566344382365092993947906690062620930206107653248164788536745213233564733311038951203465799503504811018655184221781850312816824432458968855137913642159361167985416023717122686542142394998843683570492474933502830012830737335286199684609684822128056572923038436637451009928832862880283302566846780191335637864631895481720179180359863954002622655753893572168625469119665251374684311596916151484068344364215965061911197495605027318022224338766860547761016061190591514705870158934622371141317637875490000885998718708505895234914157881151570345494977387379903476293967898789869659272678446409086865004579392760043904945892856807716822241805194421566722267860110106121558283632519170723471374484629355758082070892572123886528106969070488024819895777612733211982647022785145912344293360866036631729611031896954165726618519827175045110668344122410031256441333523008793192377525939784095564044566383744822841706365432244874772685979967632083785600878020538964641283200752078521756442602390075578314263937052784333206334264599475793868553800558080320156710355793276269627929659363735247113458626680833660855712849511676323984662848398235216192745522558262312853270654097217315606705847057738286278397933001227895137331032978790038750953456709630146835156367566308638656644820771898267394466188110179248678344091489208795102356164657827656795121175313452369358048089696176927102706313158070369035515468057591468051700771382749076149193603080782231423037363872905374708532549571217582537867642729820485256521420105881781930744685891705839675810424305949891598207204526926116502216564820901973087204391440170776615651646114578900726888051848521736284151846648421812623426583409407306982291342034557240137388891701791772259835960209797355541838036824721962175846684360446013115474204748500117904569799492084553045382373034690372921422230830283541158293554555765299153529116591776964129343289211270020915032977575124617884779042194651792289414543133428719967923566492285436921717266803722747922146087392635041502594681315410860355030545928651808863025716769740913151611433978858718734577689737769031941316243528073844556785843656763955239869845285399732992200831802994885993591477866329225063420005709409270231900250925967982529827439782788683863622143506213000504618506922984457080072581834072198558807730765525652964746755071287509093097958659481811108181444806904317825075648755066638985914296510517308279773503342080156552033171858051281671405154214964718653305180435621234095788034373910588659831606472700754797239518076747667980148701153628942095474114531042797808514094281671250191822968742019536615830078788495387320997566735331371050940113132346855244698533937800084852562288491811070400801037619926586236552748474733349615089693945781360422753339576227734515099376837569993821590068540220448571189197825392547055111157308199487543144584864714798391578175887128052968718288160597208245684964715726223196175439371703161723435758779696022831606986072449120156346516689703109889731053011851771227921051571808435878045102263317031462274834662821701978257168641900645033756252691967761737872366316659911077643314738906147816629562984117828852885187054120522236107776049526013012629132143566471833492514373022055402111018701653805203492485863987667376816643155839234826769547444580411061660190501916349030633827391329919252343798099329378487815889044248765006553903406451063499283247892504170362240444661885678906587556353285622461893945223564827435180935886915349660790222855875884302798104064579979883574603320615187051366239360327873346453288421864915149624796017246862139773225646385023276658625513325450039427706119706533722008264160476214378940162006771627360700569443228487838930720105211189520127283046888893184226176912915907564485675612185676149876368082352610275608245354877847384538008771829063198651852733227002163014076606189611994533565851538253541717624476810294746496812974022442979460552761727306501951370757820387964815450643926419863183981233534441306018154895656316499063138508295248295208163010279196616321414541729417284669274006943961622749729111152312208018991807116495539814679424782672421194556069839197193141268041457988950528044076524060688843624396512594695412785313489111886132076827649064565391325078880907631471559931198534713110818060021538560521526394605835410207479795850325657862164385900226511926512351564017481122709093354772422760629319290480891042435266207499905436618219066161021441054002403021819484028722296484008657811523738255478410655024446703097729638921811452931700164231044303497156118135309063281339500316113390967424794055355585475647385976035920779950032234886281751426887080728683748119543051255309095301585417470338659671551774108837779544610476019682876148344030039759868721005090943034792165118327446583969025779909535260000822213994259282330643050448069898637719882049138127328359353101410928911101032249938888447518216105799977015514360679221587280882060798643772516550027476343170617894424382767757119055878686752372287389742133171206057636065319418309177585157025509253687708128979132394992586978524602535094662959312049857624963318581231524674025946022217901419119926734083899846863633944969033910520391072914692848041294066706316083429161859959667394098765136794219092530082793138218109759606476289802166898003366345444717360255614637295968886562040115854423823250381141809651471013608424489637645574728752566188617909739952762727869779756529610646872333675225876016988001684646450667738006776138263095038451886251264961883155098206939235722846359666515831108446336169406118527115940939963344789144116096547843942525943846885326493079300146158535185759891427496203838706405812764595513766311380852808576884068877153001143668715287625109828099259649779617622950419930927800622996853108061779863240812972607543079913436283704200379363632250135437751749313967711039942850089096232339911973389363618622065038721586052708644941762659362749351566931034646908343261085174581589036685867758536552697025840105327545222717013396554398290962211819171443118938966919966541453443914911567422124054327860511331383321786384432626477596784332573658873294227147713551837337645412614809433878531515946304128194486011987026420936919855199036510329314283478122808534795654771163674556180458918816390124651276739018501300663360477638848306767602363696131073468199311586615245204383760831267656102240300234280272334241434553918234247728114813035313156120945554910080224070204754271554533371600481864911500097879441715972139809655963076968928073708229583545781183162955989968596104435192907646297804095226773321288000803630410652423894106453481743450403537216943254811237301414405883280738854258901469892299631702861763348366505589607534164602201070532843697824337776385013225097798235248930919405889157664513912939398802020637293633113244192851000029717468125559272691586126740321933021206316589148558160481645559585501637301890942811114615116807196834821376148795478629914109697049565870423731619453393336578075161718135082270455991087886461749930506866645760215748878972260019141261526893400905525639276086599601092519707877206653426054905050863780536196731142198163138194199626911566952468084142396361026813195508879995971271180545128369402350513354781903002760316714254479074077034231646557469855515007024817514450882037486906956871324176634912773035114155284226370022641866336323955341041398310911318274406513071627511242495816873060777277270913200498037098247836098887469140294826338433127379384146309683470947651044214631860150419674053916937113738222830287819781188806716714642202992441719288605049307490462682723514756115979169277350894318840653035256818837973351949079262813713553148922914324239398222585745077397347430285714180323628500931561904654103308822939450362155621216091092925063835424145641882227687845833895107034742425355421313549505390864113870463998056046000234302816515946513951322846863504915414785361857635884639991883878825694689952827514923246395073994070004962065436810034566797168294860512609224680732627880371838073393769579284457986472012056368924150655510884180096704445615068636965479599089975798000795570862058031204919247369726772281953976861223474157965199105112895280787233050201702045713571669348247307543404749938539961016079951027965351710039262260171497378467119099501802372124888642044306375842887142955822388717395037233472894353071968118761082115398626066094768169515951716201372179772174023019142121689185310304618942829349911410694933583862635652840825509495621005767358366249329566610172716679023818626516630707949595007355680337914479834939369868458428618048362459246298475042522418311802436816212706615670737348825171300666261135015462858979715039533100702324723013510562629593985595746028877802179581968292969681546028255163157701063030766053024695540230093720608988259424674895647076623529030044664460468840758205244177996813393212014885770646274228043679812262806390882709957967178401898896447659624892417804030734612997307775859945463445463156868034349187310086661039617588287414763192639189697023089339598964608697321469590074980710563032535489337540318679220572260521553181799157497905540632105273165914186632904783279577430228397195799771987725325789923658478336124664628987121354962297379038416774718705110323047569806907803953440484792682142907995497858816619797556460673983565592505558091706380871413028529156783438128492059884625881089529700577139881081730561603502318323145580774105541917773980725565516513022655326850364333230720384598931134029402436392322086496163836934393781704788933543847401560242987747921589864700480609507741979020062044654756316952399878539462558160323056052025410981462086688641368660138008465394767758816853479867399362004453680367434579965343382728343237233264128707881680279640655370569546629787513363547265823650024683095444075712013511691317915271360014598769204676616953458839759771643561135391091834781298324374396142345647214021853724985720502602516007395834633460404579512357628352046995646679687681865285264324311182749503640837868427464505262863013291236588801027438700647506461595769827743267165634214302378722700062086735212593626686589012549658376508582584297143618316417355830799358806571552177983367162427858904332638417819955669254226487434771590198882503131221696134013385381306308569093308422358709895686171128123401564742751481430898217464380920720094900305401197417569962099214108050539111117442330633469667284060361951512633801893397306055076789119387407481528732578771327219560197627614587894224433223761973245089724350495783781208295672207332987489547225639377818076822814568588208807287995235341141492794228613005366755606517826712873691592313959042119272907100681765189865812075154989115708257033542038002671915725101924675081231332536510692663403125062856925023026178266165794000448937853454098171898013062568964889161653061296110308733277095651364560768835950807621177895727757418362426723589629946552156126674984485486077199046713421772311973121303828184448075117879382224439049150831359610585709421842926112357690567588861292930478198080841772288120815873552732867546321138557094902720189018808091504530357638859892941461444344063917979080742835061858953463119413897442822849726658629360775042494839082350770292211038164973183792168442314131737260797534873303696870326029391045772199578749740400564511719873711549057151356223752982425810430523998957235995885817583242638580394012236994240130325318525014489758013825730400446388836232392576733430160408148877782329965892588362901036192053659982339838165414851701172099114393138160152495916675459918871002229463976242055050419988972261339834010974475398838901163450823885839741939825906992923123710046587891806551358996220051325209588853277142061224880995748493940510908541765495332261381787176906573997654566383694404022036446958810851658707712401472592773838640141716386903557044127138579211080086607472790098833558918739572428733276952772276470542919319768083649853659001182572439608413987459180616530523294414489566432826867235486119927640687112872531628863790332366795204297477087197021422689008099974211771827287064984486060761198482653239118269830144125183304210765757428156541009764627236072744641811137561769964046023675209080842705489346474229785012220915265721618731561074737562437302550215862907355171455426481598883667202847940700103335738895235318281262770789597548719005977526692915141024139306288335872454989778779482832883666263541856807852023116016911295110759856666090240277853499030005577361910561719216802559748854249069536591206209201901397153623090903258519852382884946648198198201860991852174182184364944120564490652050091967178726000492355719423110036846526940939723914772406170992836274142849777386196173577145136374770274020169277113470224964497398586747858172235999821182625549420537373093268870126481228822848334207890382302585735591241874087983853520543425779918072836244463770295923872000579415125992768160780861880354836017068774286711012670419542465340793755865479120078307801628297200311623714357351346137838423824690506589371828620129132216334013915625662114364188467840228271249612028903407364181093927598095163551700120273518519720342420438206635815307575987996595560351367288149443994845950674606322870833876807928601512680540991106001757084976236060304944326943896600059386749828423739777369484144750063289946856206661560308937337180458735885210050861760476858855748026730678479010436001452344061414966969513703113200517287761246917167580910338146160208138500715005335088798857925383035651556250600091438038772379178926786575222138591847218040243244556657186751275438515596504513577286785795359736689132566134066995919621021029054487080128353913398179228662399336318564661207657051982059460610357135558160159424374326594065732017487152381168583138998261195608415435621703586404452252927151121149565976021906416667285737230880088273673956815800942332211448629272039279964144261673561365081859182548433085321845316560457805652665896224265249768335663590565428421381817961042702019217593960798990628211981559345070474886539566785880983470497792605105543567774360157330005081881107785059012046966227743681550238546446177182723191843299995751008210001591351394211750763234870921682388801703619176660436781569060793718816793299900303440950862989527838836620903661928610539191571733544535468621347582457092236537625917089002988760559980209420246551433661252090483133813780293592516554528688614157363617636251633821243724700070078441694871164907671746189795681342340179987024202029660250956961559508879304839104148441166960533162715314907600292466982059347684624531903133403977372076494869832763557851398096915495697083592585860077118723204879691802642896086532082395009114351469555762899575328055619622702897740653154804077308356946866538394297338293982539028338107566340673730492088905208609788313784145008601733714581419121258302735044378839139535265402049604484760815858894250454936117557432342079954233377080655691137924416191494742064876781126820203651257900668535508802612437814398392089081271641653400320616320560795710490587526759955667490646993189731614834549017744871843331022367127136369116492731625511604405250542828542465561769471774618601856623067061051459962885441948220000315228341317004419733939318921131807713273591770574876322324588807412979303489685989006893887645872392838761245342857040948008024410914446664244343256364332652351307825146812419005914966495758584244182824721332817388486448394027483233601477453725181220298030722957268956098006178408438661419412526925927522489375250089391041886935469154678668635564639069451400439318792667202939681296189724398467610595339850601616475556588122507206978765416783980392222338535906178373031221641797070121949021490535284804479468864036410687063628656508073235290524785974958805509175561947427400967494687765472340171678748195719479547631467603776155031061226342227534075568847900862636380617703629995924474812135496252738987174159761131746782515183871443128703975387304353283471183297878169121800735025200208338205595038407021699582101782292371480604070636261207669298024312257983123780403275907192066471422356053361035532750449196567751049059552225564807731413875715247079100954714716206404187817182794473957496995244110767939750878083115811869623224485955414140722006087027567646771075714875189689912968005842119642282007773636881035576649967397692485439788693615151128645312404191301035698717958442688820917494573465077640819710763907817521106671937147294671270947708266977557987497285209254592300592565390956827712030945397719580880127206043970329464086662211550919280268777009999549953431433137602265322385869782145168085290633886048927478703628469157520543142723610351551317227264322687142098873708741156179814749766046184928124802661723355731164853087582540145003910005359754617511972510924497960774086737322515769032442084235512789733049201912586122241203322270709237819706160999731047196472430856571673738883762822969500849669402208051633671818595898104886677407154564380376744125547166575191918571846350842312265975132649666644410302157926813638637197787278101148361647985870815847433335306174628977792948011799816882639695125955978733533914519303637803365905653718247477710820588407952818389830121560350729265397004625159843031216573663892483834979496011914768013920055596944334600014735899908499964146362962321980970495989947665022894041831877769716707235234092470338493807199629232368901864351163770841652699915446563032624277089322926236548077302132283614671500240572629976598299194585131406704576649759872035252641491383365449780701234523208720014955739067187642566527268157350042566272000912461930582374132387860920162010599073440956411798173336629360419995702541960292856964229500308668996717440029807638700411876227353163613302113196439194507177582290652709182194112106007092475728445745264149587514862399469891728216093222606006394911406873109907331712951374484277199652457704514656919990662989386052633877687855463624659807675489250464809564851710259830118877583799460019996251273087517796348089814566050973006709249110282550450863298756806359117827297073147638474599456612025614278843992225946858424629672960194631655917260995964444100248703975905881402900904460206127522463144679768797660433276121193642754530559257938904398201513486640436624924596296204340713974444508544270554979962360845845571044355375843614180685352900868660393279006736274783161863043667920076397016529753865061570929740501449344609577724941520638518364529544619561514011989109669549184094085470228614753626541404294332772140450003629965687688241595132783412314722908794005684703050391892493389219847117293406475339004310452596058199642954786700662603233873180288477041447423116033584898188351361146873142239721959685853903661566109302304029207675213056540353455841100661530292112390835647965030705043261028732880812463041596743532404493185128871473023420026246844747596062489995148343549058291718127982449110670171213971912875149996882555268560584223569427116802741402835329662664316019785678608392640260036877107359175581925746975135059168745165514970327154030003377905588022362975045465806206862591480958935153828009646640639781830026259265808970884501898239404218426231135281627230597728387233547589129604947631528731788290446001620648533236630134481170910880942276911736534463199418250162555624813454777916224524120401537831436485950249526381627851659769153830421005694021406407843738432186816210681091259140564667898578332585748128106630284302817939034333057274396060883139266906577613579261700587004076163869592702892012460794389174538752239621489764525871436202175073497538259464028730706047209755110199706004107948437098098602047581069211898298056002918632086348065197916983014165554525083306914116729375786450614172476314965820205637001383428408396365052355575479692177521793782534931248063244599579749341074319548269401428720814509657213249283437338854010793744723486450958289514929283128487887055907859453409529211867245497451929825613275479716586844549479672199593061831305050545425980784147222821692962765051382179096430574656971983266854559451705277804600469268533192709468149980603680048013053939222129926488924074571195880661082371209281299059817677674118723714207933800993734360087059278671249485376734709877694185843069617886143724734447200945608641477557590473039857976873071089337796245797900162795701822469198473084298221444610849683909007671588951353568655228324546953034269661174305924811049696348413649722625461169393032887696121170843918163534101754790719692097363175587439649861978039687598636576730053509552549192178191706395086561508748185801157416434249956615907520933087380563584514676701271377055840324272335030071093255275936137153675120955840316321590174328244972878290022257355742770850766097843518459229917070851925284138216489328364426702555299805993179812826201415951276777107818745315385018664015497193341660191684427224480797162446456099985381073787461700390269268233123899746580802538651412109054269406313120412086599248492764785473283551753328185723433095398491501493881488395881771101725270918794095896034715213222974858771349856896484595978500072135454558338590741839504195523663932872109915821263769453369525835505709502139509169160902743371233639401669721480080102519353247331946731325841408349346828124981136470016972497763260934680986664378187760035695194174639971948236598985916739077850825232703001199524302162749740608276979032088391070929131050752351063764675101687310532440826249819112427454024633772338869868905432430658511871664638473047351800228627021379610352917598813298000993852861155246660200028828721378164013645807362530226009985350534973401775850391786312866704214837171133821991566249043225633973060764474092530102635276186956510085986128885607760996227262716837410238578198320537471520993011045690239509318982919604010736271057980621159446591284172211735697549902482301502595394499910984875834729345165243474424249862517199022099369482890610824311223683090315053703190707071601411219121586834742383698091844509806093061323312361518112165860523798380160617983990430931437987538898535369882303862306945647190388867115272698689788725147541941910715697351832565475433540744843016478398633193267168059169823633441458194880651846080500388312451962484271662562914479581187056351844882956742257975072906795992518436711574841945142814788561129962006888612806806702811745797764646886378057043056212629133206451276377629185892565684591702879186382268351997479371597168089104130499926259932418142893175406909198657694684132434317598552401315527060180419450673013474516706172477317992883142303150377021849153136848463604588680461159955561484601165079616927986960944347438919509508175745704101743488301085704843762506323694641881061919792251117442157015429468357476987671677998973465977694757959908228027163411469249273635610872004951486850929696684699597898823441369511376754203309769561227188537869003177298201701905775266157613069184931134238029481603024621701330960586584461130280520120325432578541345671248139805541286661269701659125692374606454198603055637254882320585334188678654507598435484831143039211993658864210208144967461846255765143888527229416693188741008202525717745541194518631714698295610568122956300556786663827361297382348477558719494591577165909113276998451714142606656507499322854898974422865572238686421958692997639290838576663843045849640249751302539874157866635284055287304367785710408860035898163742864294199000939610724947499708052887604876828659619069478591470391946836751344059946612970178581616718667577820294732528168747264188645584351942192825391364174521896260086624140254043571241181876177258287830933376278437722910228984309941794880193078489106200607606113962225633664804730805242889644768072958129898752374041900302733802561178392064852651565030359281443960434372760689919482526221504654500183500871878210006059946143773385432017365755559502551804724893342210696261208688147087131065472253741373961727406065373326278412636872562067321450401801980426448853562074460448605189462388478569159223147457783774997783641383182478940298255977065169718770339297680981954330899861145087956480904400877165796689887977426219168861068260061896820102095502154333023534360520272976343430560068886093204993004993819101793144233724728296937873257051401876815505472387301004582036991287267657107399909117290197134692540239843838333328623079073115573889117339382748052759035752976626913026081834983816527874772570807918013988704847198790644240446552854882108824792805131385158348607163229612414825416248372187969858552736512568021330381137207849367458644543043999700136510986537403934828295246198329493628442673614738678583652011660143395056233101008588168136583217851047144266853816554563771533061445207683831456289972855336522438983764375435687950848349087255660086394779284378897722644617419701088190857133113428270829983239570953978509769873919537197529687552372092597902440092227186750016248789170574639519633209932996576415145907639790535559835174020546282221323499003192584649482741389279408221637800892837188213286670333634815747498178978885601608238248667898162562147207386195004127830351624859490054093194635716446512851771434000361134075986312537013774260517660128740673346760477048374682757785849485736823701294462844641299027065281227131191813633824227280346059072914994365721944370523509236048080621244051128137157864853697548598324867837061927254437476268062984529170200069832439568540614039785851046582694149579249605805494234484027492009890884708766177463728723543658211549096155920670922954589108337915936930378452286212666549222668388347219420232433822888956525370126354307403655418700545136141272236355953960292750103028254438160135069070507762028663424917456402957527925571623407567755914020984051994907333552239952436226494505458813336503655561891954512980614107644845363633158704790175119291807590919777928841059393220107598815929361335921752746887311842460735359284129170433577044568699816454318788643935540662347839263561351372614596520555459063530948510151295943339167616898895876076239369542876386247120186573621588948995487881538858940281746409491187623597656522202597576212563586703126613248732072027374226769656147210200841409159735882337559427481009105912906996832865141674389158292685224195271912157256315666846733780230637397389462502710622956554962184768111280756023645762976175107328183408246781306278434884798755684330298144305961356255856031723111379068744868462023284949143621728193231719184104338919673585738637881948070110265171015786616025425241651111504006693809100745031887702869251216488129302882952022603826426924935341917161097487165313016910677288104444587503463910228449166718750152816122205750695061840962616312644450944519139073689666598456399429598308101669531011343959761512844267451547255151890955645952670614222373804151110689272782493184820995518104203255181878298677221096312769420471704560081721756625240612363159889991726417606856219844383000469348627612237944824036353817568388327408534076774393967607552566012689903161493391512771066132315317697015201924018076499206363040781435357095569297287186009526212496552910358596126870935183714186438947732480233165678809191889606132047804408829015541385421577095842709209491892891174412522308111426338773313648519296857450339546538612594357931533844312740882937209931083225774177132270120091961431342631324679161377921289237620314663801021765570499368226887128037158966974168916812268272510424704413485379315553526456949028446044419738850623752916380805982202667360891421887527617513542215819002702774715063524886626030709261212208678179009610145768793173998492657294343271248601615650182653813418336683979730276094780759375920314275519048695084498221035721823628765100934387404006674755975279917137535437609838844613530780161700298923042035572326173255309186174108294236469099477868365372319485848032731209899335401856946670332439166020960652436022311528976381379469888131211017251449345292928545615323911910183201205983780208262107658029333413026975313268209095037014013701704732835472658724052748857563677981574119100321256386174664543591102934981245795189731031237248036897398208163873180893096543414372275521768872325328554747022316519422473400251963585214930718654973498426468976626716384144862451293013726345370702171075340459421972468819001566219430810277040335926514073564088844641988704160068490520448872553259730569589078921588974726800702679412388740809305677803348099312853559150766730994237079191763727787873014058805513291290916295684277600303642261798736330799822652200101356564385073727534299150199272109865751685187961250932811964779513924687831840565091202061556487925941545743559874043917690595806436622442290561098907523606167409778530206714312324653499252634713779368966575458014479532106411266716881656493129927738172138558514044225572676179657591691670032472200133061133754496728482742597727528695899087143188377821477699036685142215917953590260337581507040890911682176289307484926358969284756335387465255766402114204778885950730279732703497575663294098996301872770395990566732077898542357052652689074910022875210302614334494278773892709636669619963546972892105296587342665724059711968221178687276065091736326312355970990150951841852663303735692736438537482291299499936912004177594378164542156652235984759604673167626841078569909974332428573280828078078190360811635715533358815301759743881830966078149813789087770993551635535139202767851468505528415570138076220843356150195074158410661628753312502330438381542619533712369848980500826677996574249224259767510756475404320553351902148949974320120726456950725350656677503806929422318433217809236034184096782490930603060821556167228270845861302026602416680115542621143912770006574363715489336152020038745116249817581390879309924818230805866858352710645344716995515514967584408969393254831674581556125427111335262554533364655703236471667223467295127518076929621510120750459855915675756330060741427968591744441267190379424897913390279600600146354696017837314100982788487263369489025951693647805909091337936292228508511044280434082961860598682842608934718491663846158920529403090338292147408079372529513750736496714828260804342564672876893846803720668117222572499614070745075023814612141958089991802171391724427988058165084559399488783832026078486253642444074365854570833201034242454485736570668117067023722093871780091248114116956692744979313772274163585707398904748580798696001758069197475964328684220010586497800958815376388498388981073497713152234971814824667805710293956584804313912525913264708473565691938090945356828300141401356183927088344626896718946856227802636903927486906589688098738857296096522676670571808201412320117220513853051675963746055774579419006464370048018096063531030087336331162711405543395165914078109988457908395677956052107886259769525425874935340813978644356969408411846425858822374803951921381235942731737683605440238401232749348369522012176058926464285596860427001878957161085838610163036631076599822168606158031113072401031601524126430539318931898373149225062164168651897211257733949380033989838520939306566441102310494691120688775221699293502873165115257876094141704270865378527062330838270200002303793611721366103457665451859998654276856021345275973206040950650889565200689210653045895545808511132483959328433990157908704217922893404249650500522758752243584252524322252861585995688009451753881851544966302379472408054298316224962397250025999611452246704780267335770585585736840892027164880437749673320174164159820621515187788189299277465310601496186020885280966803046565146262005259485096707439986238859837961467513427883524149186238512568324676242560171484014112274191855064429290407492347011833267456872856401531855383576273235399062479010500828460184502579596127895651423942571248411652974486223627248272734563124572950114723966413394190396085195410363573722793753998680257946887766651759149805914861793845113973822027104564960740067613551465378176525794991262453658312338165242247510138626523127212470748472340695771700205368620932475269972033938976242953584890138225890398967294804371097645168120042628950807906928904690475732561315344036632664163633430905929978877039999251453078832449075560728328868752005180374810469147351194205041892419344172770573689337324600675818547573289157873643098483977829323555743375312810092019424724853642928776422987929867640568094114697307802928669041354247601319201944492768380585599855914750760771679314972288284950083914262684526611809956148298138137618313241955132827409912476738228340737016306047112844724273723360471015485930082178896491095929863051113518062245532112057476426014820661582584091933855322622968552578507319489597742420959253548032191473042583801955597406275857744471802735649026762730576234422693475917350801947744114979453039523311755534675773657434411505640438539050513505885393523270752384219159167570324530842125504427095889187982992820817336148115519350705303541472103785819625074118846030837069305366421026366009584415826172510718220658657892179543301382330256530873063839390243479846645899435633842850055424840233851632049381643622472392172489489125833647013741174102415486758599820007691185918754134758417418312081537428931995759691066581401954215811743145736029081789185622602936228199577781541017861264347147398490625685522186287990951134993797114831431177965162466225742820188213419250126347652694073234250932830973298264658608125134458497035616898172506790795632711755291245222768124526840835261592282027291115045503668407765190619589048940300041541689020482011464095698894773349435282801903276914478358412039518746340181928691291564469214290561889864815067978072132950149750774549084530559591774144533322577939060285624637077866471371454610853245552153029812428222293998511647841596057505752465826581644314259809016811534619925593481333998931822801105176327605361577113199373744154969177246112369234602016631195122907089023643483535136581636610465097217321557495735369860780842684046095300890364223618629715493875147470730739023289556997680454420966004702135483028328806142445777554745522249500737244881029077040105418267518453008146702047268090959964687431977714428380267449212341337198897897292995554671453870842774495761233986670153684290387677998650698718958683010729968056888332859109694872592187074033749111024295455419408617983926142192655608453415788908054793472041260036437244626652150381408066605366649589996156090815813971276368795913901157216349038682033739629931716003107156092698080752301324670273028415318693919657068366230496333035567098318976262766249400901451565953841979504887189148386094617785990179245420743097190996239398277418981735218665471383701451853595409547743602350441470424616246825679635890157315225902453825341025832819229270835046785925755268210722081142844744636099589517229134044913299758348142498893481469997312897258039081257255837834096749285570995722067070222632371606946726451967630506783902881165698727785181021903368523998405448399193333770582259578999452146282308319163458240586338380604370706003004693008372513939649814399393962580562776855661437212771803925552641485791933056488654221098437424406035666422726366331452320610041292518024502884439100251409847114619328429117403763388052859388140194738625865510584617977084479453444701705213536165809262924362443132836181475894861504978368406200033128082932371595035189818345876494578921357162103390887887894092883349099912586698481380853929699245062170471396263641934360403693227729816117900903489535583375440077649057055685966315711010631767218152955916305580494109798699678187708522915005078747843111738241056896006285948740636949179823876637878400260788248057765308305193905521338326669500271238661896772757565925214873539297054555104083129502124668968527731853072625577771364212821318420447299527756533904140837661023528946166904904966133896540352148875382363757524714660771247017656942620213648964423512204155402759176622182322009298111282287270418216903980729657531677810266741769278435656252568294639942032934755673114114827796687589562513456928639827078690957721249050113480009463564888705439767896614602274643478350866053573914521955480356596627428093901316778647940082451190883156239227820344062795163583437743093816580269997134491696026511407260570440309072463813239072102867527189886955230166589400504428150880631034495669911351973954711658486819360036677453162425541223303090146008594620028373910263259400949953260587080345107514304426129554461726200305816913891437886412931862157896703045912890875789211015783433394055728520059183161165871790293253757342719596216079967862160817819996284046366949562075750489293842141482060804561135278207273799769703609908462402903072112159655388253583960573468177965645115367586511416379904925957846526751092061619919826244163364543817095668284902278293948281586457787896401044849415130228142934640247942650800757683684423863367291716725693990422790504489329487705637903900558497609579676831998395424180274572072177840811018824344757736670708642029168000523310479599651206358241809076068371992796363529617358043742132966942805886746743607689039584302227920074485060450295661968497364787108025819848285722898503945586049009246634283080353929028497463070957179722120013666245418645954573062494047003306759802104599834978789720601468085586735129768609748784055568590098331788976437965080410240150173623729294024128003299906661416819551007997023270796827052602798968862881807875362852363367457397017489944589337698059480552739257374364661282009176237498949536196545144339985128959767175094703720495530822245287253892766273617461213007078689147650041547970837581256768456560897882068578197988264621345477368612264137059318339983982036197949830749336214277429155486254312644358965220494403428417878714422256808314024247486062642468424163136718340744481989793189879493356602437485504468295850023250269523740080252748098877796487651445087704517798770127928019820982341071557710359188544176412892645907309527746146169114186380657995698147697832736704997460890637766532572394447330180279871543527482275372079217424676010676280045978144382776479775428247007600547156020552893219997756851202652605006875931703323077229381577597062736357210079129701471227128684120617546215498602011465423184299197153970501633272559271753961771073053148391537822213303395317234417099279861481166713342750607803097747279711709932742173516701784489525575668930557644405744078192447190393194751001642019580570495806534605895489537835375244705602651281359789014853083478194807017260827657145877076067584253774648186630726239449432516881331925748600024054695458460472764495816127787548586221303122007204065448893534747008657269626493269014146930636093223253829005859575585578397060540889154921526741785465479216891028175449602508229761922701255563464795278331285548766929295897787367238392333825526784419242224139155134088893973851765230990164247675477835671114827274356879759982521829146848640857348495661370138040397846055152729635218862508074444654731899320163751735185673086233587743739882556934432014161433183217260805837460583072519027713328913080247483742669962309098563127229705956042917756850692031307267406220224820727074495154492436230212351603116028036297439413412256169690476753953533128168688015254267666274269920573881166353060787091101146994170388494492137745185260073244250661685897363444744144436465166074810307730564419912147004677928595814107047316954375150864729680087186918477152939497995368278607864217812547755996841498623051510894917799234753665550262165947746180995719102004716276071775445723203798332384157653930949451797384537965740613030076097514478837720841132986816686118231068686384617530593119318547121722163945388966893406646816406301185891285496762852705312910121153754744950567377679761117319662212633620278787441752041530499874208759231195401949158779417443625037660622475102948810745609194823242685197468303125593786385388414026370362737615970482696312587931950065770279691381164217620889442246564051012254188264328189758860534530318129547102982286168088933311628992751358430026875129743018651630986047548375634857637769983451656333845209614284897121794577664612124098874359550137513731434138256691329136605729439264294505122078324106172561471206434379223812003803861677561531007271312565543602206268623939656573458045448111170646578536858713564823116151017358684525312957186705763591758950693933700621406131487435038316973041427739871675938518908587866989417273962222905851615008998461830966097733467902662188007674762387257028706697315918294586006903138821912350529235143190720415692711089808589283994823782317745615365527807458874399248266783386517248800774935542234730716364183620107794236759456619711323647850868934490856822709249484147809492541347473806204649611328262793928406998738632185459112732175808650982765980148360693510878702645766873378947777011344009458277438746812765756148794742786941435423380604389543863379455944494186004257034938866983071215012804962198906237835238139266566264568917721818030069874825404162086155982237251315823041468872761342727396605419083751579090421295138496196287335144469046208826779483201888488874021177177102118189654495119457007455617454612016554415127970215837762556495390793959781380339102523126188457923518355689480931049630724618175004731379165046089370139485284438348952606503724918434189677279517616222639818834162001849447286061908724918030615141600890776070665965424388013524072651574035239740116388193223622071019871603842879961756611619121753233111900710188990827593845469392245614109413034911672681393552025465745665196114792463980001238309665930792902715223484613529931728870109698862208599684989918645345592395614755392257175132962890099701887760565062543681394641977836451627930094113417389322363187094516575847493422810423226592396352763375512568829695871295816458924948172614540937465923923595678696724501489603410006424913651708515007195524360481098002655776141822067427083693639904155414338134658861127881659484792905545477744990996249043488568569748900914877297009535672899366675788225937708301353826860924663934752980676302580204678456953771382074344230203957466539355122373779900621253413538629164350676221691411104608708297305387038749906114071443878585603205341974761624459528572019101555359867313570401908159488196926868254625929502242600582500733592253218551418775551757293127170615273084952821492859246799534135929713492058420747057991107831967971793143504223431704995900135214666703236417720776039210302764384982074813993513938757259209645140139441215247266091292776890759692244808996635221820013900748294530098395353457366776253582602781711129750030079049388032135815829902609018480392162585284456278283684824580975040204356842680817722262485375484908473705200802433983832013685476533296780528992070320622274900058414413486040587508892159023286300285544420969847598064129558004280097855038934039685793932471254046849343267160371729129490040222906460233676162716465488298987877400638800078796315947603652015498468120316425192506233478188536866235358605382278608001848149892687308296190779480513832174550292049910010175938200028423703356758883172760562803268616486572615743945525042072665404193986756801571655216961476313501770888852391920405842742466403180817590193229925125237294568439062609134530817240100296954963203824071182610119927457861501078210565987607064660145071659817715077542292183129657573844234477041368473097233482727356669804952112041327886883452685097991576933147918102349951209269430935894094828483915841039335516561863648922614423487591027307615231928130124667691123022128346046952069795045959347088255876582815873337394612772252653666501138422899184542030856049251457100588854807408099075704519339310994718808141954457286024979221378651601538356267941512901290664778917031615305297764001472325609059389034647024576916872919525500700385387746637834730017082770350625409675174630818908743920937550507220952665035598331483114848347291479495433272685087757804996735565954212968739196455440554982688648099039545217632100917035064198187206262921729451329855124879627647664047542810715283192267167255384400298750554535151358323371233109291534001202003796722968682794728043604344059557355663681501314650767335202749767932134208727729931996829220619713159614680397505171514677916349278289921687839209007183297706407480235172802422390703117020124486784707107866917492609491166243898859374661903156700029207069476910835945915503547329670739728570810087790487491370299554706380529566184504231388755896427967114421160520188287984636418397345855132420273734385242404223646145571686509808986567263230373890372524348008730796513681145116791016202861238718342051815384074845785850733411206110661274780417776871988463647939269347987792709276867958799418997725410880829131275795509907009338411247480475859305816643301562799220643805061054334639765671651134426346729462846632286649743427402733031382648657463631410213863237029783282418052628961428988087773995123155201079577700653360213280756423299184715670800223029229061508016393756700080978701111096209332773755495257598872826691701474366969982193069082983947999343338058935875845323421137465546666524083221747906616658989456253665679866194413210384140640491540065272819723419015479158314077393916912283058711755565229771977293592202810932228595500226377536795983142425957126025701556395716884473670237722425864363132225813492846206777121778454516215324284975391285791347244504066377809783495798231179433622894823151819379004201641786528697401096117385233854528034223533794600384332038583861383732243797478968395261935770050684781975058966766812064823516907838519630939321201667504685827136894885324954636959682896718308136781347845449340245398188018026958377735586578896842686242612931624570081984298638733708381120661325176270679556277590416852421734626049908863532715162778867108417470096226613834934761938354954781936809753049340258386810512666347310243015263741893913592881574786005880452601823286730759801440849354082585371032682602429436102833614931810936032561495509189691535838992527956034072728549304539368811523803607227271916901030209451640177597319970619990163495948991913751136096914343157121982499645913673027462487046394257252172420497334610679391007480512050695914038441685855946416573381552214137491849555458150450084092237541027623617799923433667389825980113088712476685523335564069672930975396046332546223198900330502374462181774579034731803824135287109772614944974339865763311120769393454931450743412119848964450930314919368823962334404533339745623395934909710144243709261814663782334296683648795015926196543276406071758809128300495493936492026239628755263234181804089222258928435201102313030916533394111145391745755931283222659814756686490588990715246520961943829010494798034644274149585050680096440660612114000732652740025423679801540367891166792020151892371818750203545286459483389206758960751253413457210879877575920789116168476018028811797218727607805023345271639705160033012907804376036706462338031815707451462725948814454882138340675898602861978494073972027588949811724835148217734962873645479761975035089503553873525272801600910125852237323453853903192766671924071793032488552643760257869414259561959840711232369861208931889984054530262798932739957055198349562825707984920644552154534833065616278060689133035009220281456828326874061598959327167860224644270644735075108813708112561138864058480231214505240725702139935726090630334939188957367142117880453723500416693711529126897168814705356416780414806954844978497174265622139667398301003980774433758702887898531853271347347265998085725220201798990820765592776471601995594619578544203789851681465829974887206973908349074992684717805877716790033293545224459247617969579380865593413534182429532336041209611895976836545708256125515143944769457259663681180817071079899162077388819337266638308092950414567629737853186195474270443422638897380742342866205458432995868631634372291142271973087178125359468984797858988234564043912876149409760255571291990809736037281719533666273527910490945280529868836451750952701039535789434789677999954225181997448352695280183024313036664023599944533267726686246674177146224292903865452086436348526169613075467290673757971929001535495009220444730841837540080004728362406529443618183220916351709475141007654016872431391430388398768203712851193904453586699210129176096033503898707570512860800337184172929618581644047938029794037296362089737127595954374863966859660892581175574336266471361375294747515708663295741299897604157271343502057824196833811369549429435115397957583842638007635558657718489980086712204974377287163403777429547450345712869099264516946138227696073747976604563415014996799928687952078965021799791168270066577707346326987126087404166598793814035946966211874018321796046107504045001607370802441652736901708393800309792061633030320318726742959369175513225920008532978706856669535595132998941662353662758557972650560075977271593431087933606977350090510372092179342610729809281082145826911386440003257806003354386973040433273614004247985515327962269842834364460169700201797558206652531089218440629098152700004598101538856825647815747102540155861729275317639803926207079937023443696681020474796532921775230590055099556836868936212125045027389408022014660115914232628962918458327597448152816311405903653578105151850038200527529841553105970934543735541853702958407719883930230153416919566842513748778432355557166121225115556636182604064791479646203426628930109296927021305560586053520275696239898660507914225402130776425133982913890316554933705255185705482179429614395529651960748892768140918429058130877583245482111229876610304796463512873437408286527506084788341555082258930479661219662294494833451324319706214526937044940842384466875077094486525050612592681297591324989080836871492138686564650363196836512852477787561782285297576146586936377549255064126297979781875715860247805982523327804958739966071877657614711755667721609499044739426136102094973952572980153312190266178705567519613301046725889839039903700198817275003819002923772839351401164738315932295371069618744100116676146939553609582369334522091835054921899698394721353505892926617235473975726524135023034920384584862162789096512977812653002056622514220768690096002016413328321664468230318058638234492093989492607074067965631455238171934673215949902075133733074041622895319132226325459398730479275590141710762210052658608666017444910088629544713288080522882770220407634665208048097428102977530129081293002551411529231061930278612147791413607806332887997490013724115669290546868577173698809407924191499014096972959286896439761841769586811940793662036264260699195424973435981217932340266797905599581309394598265918467121624612011736317423288840931638506189738900600451028705579531472915654452580683708334177323088154165585288216043224218247559866455826670704899039489528791253959105910138723613465311587763314685152183807734750199938124620683061327149594605827469631644753195639545069334022989133536780528387079754762287283982322253114381360697546693514427421717997337316690704850914812574611880980623471649766512789107036061973172284961894121000171727078262609518969081169899283022050140626801037204551784839090555867800377449145510810939853747954949265803459404670461307088489680376786626820498676510517318719254479032887122981063416358877385062002960348409725957017296428973418363946762759046635517155220953941111523156390929822921314176171830268546924081720802905599157993539526484434926357038283397208014976763201145900505101620220905563115382397762438306449246128071321869259314119022055280786308430724057557221023520451815695184986103956466136471922662733076806308622546694833562758229282034378695873604715838315005175561059692140839668237584688529403160353982030399239522725986095140366852085741332242117478905905492532382657462863841501146781998440482289128062319789324575172700952321318664865194372717668215193833699492291586353602927862959214271881217502376795260560688344298123358060731518174818349976819217778454855751856004084033897599097439589450167815066241054807764905616457382041447081489608488521732185025404602003362534065391133972063604939808179137036349097109035248056907271503435852558133806554093300317279293865051292374163950288390525582400542424454827495511190608653681903825585319546878453966925929458964396292170916134713830389733373375922556332252607738840823535439876597119555937563576650996244917160960448283838260123404205054269230700103010923709673497729885323852154599199463076820368655284572322831669067174741412876643840275030736078350056575386136200890314283262907157403362068856534581968516608435563205895125728230875902570714641766367605583488399582876861519272485106920896819703968785541068766723890873095906046675957509603510345591642844885520649555215411684104527015917565185250694708849120802666646007406862511176708428859072770661011578880141148778593775237000658827864139469729200093049130942782007584462734273515757324344199490449098004747507586254761635102712631821695267416409888033374077920770934890286715740796430191763969951314283910048043697275634645439758183208620146713054879604481520604888679989660731533644271528464429688254981454560557196203189681585483021696219416488074017266154318103520784121895760999107017783326167575716817220291744148385569806919689172467884368266053091184390984915112968113748252490932260340861062243259304087558445505060276116181281393996806921620004348542165391701947286586313851677086414396988979372795358200188674356812311842150679618834674072840955028510199734574082600595792328647094331755774738187251649546194220279714779036312190951572520226284117689186979560988099218777182631922462428818252835883498657741544002348995703809112762913149688733588832708614152642712166960012143460775397944353469536776365066343127317968013295567955496433867022110863933611142731239341112245691260554174890229361451932436135085148021957550016038968853029038012872174498077284217850337845942221024976187154158221045785323064183820282315689635528235951753635984890211450944047611917596890158625444388487149984678361966727000860340112218845297556940009864606121673468730061216511451907522886680439441740704178323823144105281491354840566840966395053150913505592926034324511826298586746678115670683612897932966651651857053927449732025000203187674796488852866560359311302388525884120259351895991666929278178400012732569240733350003943720276478584767968901524710240811460983503191923607087959150749279572209001891104658810992602628281862453683588118923817549191282016801136781781978717937735485262422067644187295882504969571922715818232502981697164281534843989269769295259239369756696321733920435586750200017422344247342962308583081485953971261908049195512350359757628465532660518703581983166740946075168869901014941803029388918610712121410642819611234581035773479729882061627488998212877698623395218282478586374998143738561636328970884896734183023116315229825084664220613409572087879598606764229820925068000042543676235170907940290700294516848885360435498935826871524709872767453173474581672106525960816307529201306390248120922329526666147194564014261952474905019929664350580654342821508825145466114482183705641246649248053075927811520478352204586980148677277052788283624982777900417292722479169671874676881803358601790264744725453157676106029096408489321691076196030175505186918327194272529679944812698399502548899158612571005238008128853741011336661163469553312633534532807518378355058095265443022487018490593730650656259797920418678667713165040899175836869960763363501379020087866492110950770428659161600782444135875567020537745464559989809439331482047610692600975331923982447628247563249630587944241393639559843439420927601552590446325975593129159133245486466184555492645623124889967489123258219532361807164315198321102740887513283680750715991278320854489841276569449105996109570833977360451486710548030940778061054570669022546653383431581570128786323367177632817524278979377103849993459206457212044163870510660087882633701446827222662314160561903123406491759180450192237477153527802173641089101465617051790119455068540657749325665634862898606269870706203101668458490718745840486624109114722626797221446978829778552547753502250542705617103270430374569679121877487109355585704105860518370028460415866210262551537862891979564026098922438352872483686033069068347817602655599253051306469506550175892966867853078613655951600628415924833843793870785815447137990683932121138010455366298075791931595372839610370222825589176831201330410064517512331089039724582679224399230805344522386423768819900477689395100429462092033084202077607819884243440459649016983767147268395727593348340413980868047434840186809820617669853816255978208191795976157502954612335761183467348750473900027235993680493393369226672874342004407361575310337232659528683286929595556976967295006933491734040767339399074769999504026452155472841949588369157178256704754232427556754629196894523688827007638037337104675039932286536306226829186660898287076382204739374797069639782628058000081316699450980233031270323543090014730065500506831643723497839794186105584000910356860850008562999022616759563957450301388123373670490167880334103421142673296232736033831919670671900526745327885671849968422496609116021243099480535063274359785206898047134390528517924584826691413867177944804609092443689785057719687816706358004699899474194823173618243688524999436602011358165578832596783729472230018370961187690358846111446740871782322294767889096730721070178382116722763576958365425118655342805141127653920497018499114950086167627879913830353515638402498128495571733317698462659182143725731359818684223688685460686239728139138008521175109682103479219065294016034245789753216301169943243212246165906240408066378653488720612025089795349939877089238363826776508334234218659456627575434498891122012652866618510480858416825422632973387913446689009011838772889265415495155428866390670453638675278797110678067169358158739777667036174961242256496292030621168214545546729167424560813389367183523863352096257282817155854771607098505122040278564018194455105604899132555644392484452472694149210428144235265348570261656118473974557798604601619129056611288194561533183946608517816494590687321130986511139063031433427895424420768849582969735154985883026537504082975918268634638839992699905682860447673067306484917914025330106659912905296086623083644334316867391359341170361070479927055789121565354967944823356639798287123930527689852761702655425136758521297606554979003939676939226938839422085168533655037177231777066632508442798202244816736805080922615143204583389246133252922742690703363544492856466883046420686449492050226916070660164541582732261227927392181178801198744229695881793532677739724315872980041853130677640385471297658960823593258175645238522037706285262164937451685401338333778541691055701505196256123224875556857492210486729090787920051565896549024929645624826883720721195374217657239302261487547462285815332075998990310826533571900182400676281436079153564618286331373814000518161027458717130323710588854122993142776991324301739898484784711560090079450796570913789069654281650837294703981164166040097795536445157694327964925795578059263793198541722185455657087108927764670156188218288456173852519072482649522227450540226448973308982879155166133440562802369846246565951330866032819226172104789122107643346558464224436420518150567136166784143534221058177999274764033229875746326330525974843272031376963787702430384007109690621522127132057993793537123213206466392878848771820716031388504776119246284013813592071226216113221739525578815731624671519902733898503353443956534076941842017613349600669783831096341944324484855553117911907417268823077963061755986565442506161495144247659255932919202845313282691301816048179441703004086635406955956633062369302694891118213930130779596104924523309437348658214774751328955523480505144543223500090411036604804210304323463378081742923848977072774227954928724543281103824821774189614705838953877625405215215507868149538197118566735254617658037875171639140105908922166751032889663205517024651691343541693244650747271277290152136622883166881454168638676483356831949929346413324862657097586642210289202266055652712434237403079346706580614745284166289740448929020319647445628212257054995917730289072503008837318723483578176619117624022160791324671762598930480299818245460013853561697090529187760653375595099104784195261878814351915474360873426991767237039073752723519879866458823116259723633985865173400971828125847408764180394523752134516855646245948588128563175461485806386291883026685014583906150283341144397457795368823674913218154359645335959442716667853051310115861854635493531363863381329528161191243709536335034411734810254579108762841926240362162472419084962298629505589513373503032417803856223197680223082443085227915698062450126275720258370613860207562823145148552692953094926211539358773148357761895322496496066978759618354936150330833244647166880751729921911026974834908694346857031884613839295435851749459292090583216978030242657274259337716002277851241889234295893672695389258970471914522539201006818209325522600716117940843632512315172718985807605298580025418515689944217615660186930414368155108434233960367225970289506262469639474807132920845512429636631620425857624295995402036174289767520686967916609225641075612541774723154977932578494027888889842838938411047753499752715388485713545121754606576326296734497560713225224315106099763250686183624907287761457034842158728510191315604912122696490857296597637666332276430680966133085565504685572386632814928612057690396755636070944312548214985722398501174344973167693783662837961147331338418944701645014631277052653518716044395568340816961106091585461530579233570364133126093909240124161644646186269265522795211151415318708919898614160133649267422468817721891900724075941554164966756421318168233125988137352708422072289687595523045935538268237165633290306183994734724697331862447154264388452130329921763796018915500192371580243620581286661904559852698120399761947627591213457918584522261145210379988888603822608374400047487881002978409337919678864223796912832279018910277865212374419894397672960444375805110487987538132750099311284770404557345300189439823752310524280859796765449120499045513185754230970621816156467384523749602475926159648524775344239289062944268906585920362657688870789114974257618804945730030560961083249441151709475316129534081436597727580180645342761474099798962416320440125363689172338485688863694769193351211809509989860667454357763436448470044743695931573203114388222201695058953886919501920843268555115113008318651045286727416874523581998148359079935660612595011927945697280953559284254074039078085306675868353100375676827894915088779616081053628085074535252468589683011726288392162263186753244255622639979584034017936563512144780518268486598446340422986828547883961891433400574500623312237590310958047872574484980867738782389335295887943629275314359805377866437740542096092995486406004588300696445995557910656894575856049407223159749090395358677802273468136953465159008970767076767753845702373487695131244820588821586401264304612449319843863658386237373202691232067637308326882026860190983754104306343185734428375979078875795312725946237119467530702383126064952124879090976177522814886013474554959934700265318348419942476944973041760404856867644789261222793783811966591437281347917707260585296091597326028311870940439845906793203399731812179412010427469311552764154516641483966541454543862098481875223091635892552164439899279176013629459431547737470868901477523141603470423350091618674888681121589569147569492386778147088676035109940878981722684144395015661599742269471230648859688472598802158417092887757113005757542078417000467375629896011933506019201549521904101387272341003500229403755924104266371708802411252499361260104000957841377992960505310417820602396758543642669391784569654807430210239992497539021098714113188316209214107451895773495015781924837342114440451893691008119964523443740560003601866723090250237463892167458358949977737744854369390362361270063491398775972275991904273219680862742638177141659460752883491630970319558695569091626221760165102754872873674862842153315728970020610716929259064654700537057887931372605773087427878064930229517036724506865032271085702107484430929696360500292579132695570554849502137765262439124028312694502624498423359834643924020335368892164188289224948735235777795439045038857900991144576011806941553511390344430915406871958622278818419322486347230851827946639643475006906985335550456936421961940958775640021290723789336558450062495808661729989420408077513313071186277880429541355733959408776299696143055310409210974316385248062878054482673770081552675315186138037906784381040290179241144669499155066854382496959825744325144244793886011793353813888911502147621574826339541432566886823137555037116703793056111427165322797511793922033901992728100650764600831605373366765417411785234581206204761696805399577596365682863763176390390943688366510195218749821931501902761714018863808583268832567817834809415083286253519464154293098360449656384919518071298688338195489216570981855824526046065137413081348755447417578174496616453320492515910755028045693797265413507094891979259782628036614969457455408956783694181170981363348673651510612708577353033904264191493534451309585246968529902354557682085181381775241824433808279120470974761863255152072166564279915380808162901333279582684313172650685524843496420998350599587483880815475279739092178414067109193847630884853933065237523277199762977020829598847306750915441898709880512516087653418460120345975052297475480915746193941665219976068024282688716978657083244241469766115086329746795364135721806739356948071009394244414796707017808591435587809700617400997190452509080457505598768814207837891289112332089783382618325857899928616635062337340765458399709498288814959383586060427598249749637255169302357316445854334513116047972738665108520083055673749458173332530641889779480735212095104611263076609526262689512781798593500877477133632841525032656946229868562358432769920602624134027464513722729345754060445932391534520684383338788317391095016030562137063699631365523663170513038795429685548889095475416758516256607999088790044104589093599818924895462703873172094826693557799046696288656429806113236629110963405833756790673438864758798496423272335404839634620522017879859003120435101488782747952862172641498074848437100768014926865825198317594195302334608200479926022537873461347947320888497543324872504796082772036416304152284249600541403101545726183161078275896732444501136896955960006905858040174446576041087789467632478800141557278785091768159769873045339515888818145839961597252121490500972781155897292222277280443679163197631754801440196697236086226307296727755365476547525434264314801327934244722540451520447753850278375297990448237732292960938731207211929559918938147292442234787158722570146642093775491535345354286831064729432183156869196060613195228226318982519421628400914142234507270642998501713953282626195931157840375986623253248718053678657673033371101472321823349397949249753023041128053884325258486818055641272421340799608770745366476441601405095268627034731623004442228835439431434906419205126324088021884059750535405119945790712582402851683475333405540959051601098672114815033440302631923141474835693525376498189094465184751444868999801763896275378630790530869920625366832008436741261434730644893180482131581264410541365884172525890780309821161784258543936097324347138421788413013749546250170050661296527783135383914253914696214767506958106932180893512171610298106686535702739267845208934455621700512239296075628427629702152748886120079567129828372377364252124467713704971613205471353225363201496510729183578292208347823316970440269623318521658915551143850029766213833241671092062330301998081779423079797295930580892918603885918725633287681645676915431153424620608489269416540616731583938570970376177272040322924074897045637737921297088148868053639902720345141294135339653322924112979658896369906663216435636708319462731169300513417919177641223322394871099434081960326075011519350357074559055553179612921149318894624386621844367636993924316762334443353068806140918809032423561499583998743519896015223266006528816477734777597143713057286893690055841844536497577815712616016004804010574859476753293620899162252613115083296580345116660197505473268374899576776297324214869588130218547943584420603913047054273660249241875257196710968591004485837726303707547455170623842717922358545438820993960914359183730638356466001673921673574971737820125950442078647196590332911909216324305950087878403441791804858051687501004312645374493171508294577919867613496552318819877619179272275499097955191001836996085793379961683550641311391790631496390287577817287588069242641691813644667969609477275083404434440364671759265721593623597739794045492281879348390626934364613083862437456228650834759577202675111342590669843732790891152345438346512792795673264118191002230073495034965639507387566211230320498038885007682919344082533220311386035248407434970164888232534581140332916740588486157891205151675184811846009272866186392364661477205120753985698029430881695642811065306784130724810412403509226395478412301358266965690018499547999405672907788232298033598545115153445001686116546355127578911735827083187745445856781293356263599876547669023310565367830490895809594293686163755242391412724139184457061071514717364529934847230821469060072436602805648827036048153954177521807091726254286753151709133748264171679353857387933126120016053429074121400422188722554698043963382662963009454179549205088587377606672475724894503873693501226790759820314315699645426637613925669639626274220163315707931778412296781399121972127270820431470733106610480274635361188400073342649277348805100982270188148342117376384173831066379486260652805930383072107373878326247965139674422958260122817129389882649820166433262121456415241004222420546697519516233375064369135263397346992345557734549404448081176275554513747402338760224693475684324486520210070287299832703081140435266845569786333130322527716801938569842661999571886600820745875384500376369896011635962432557483428468010738821997219576117816209135599615608514199131005490408100079655717379643852056707025711476212648862857319761130232365087379872847195883484219777643272285349699058841771238328817148554812350760191144765785506746153350377118735788991037175604741631523965063435486686081975232956737238823583353294233088092815006587253024265245722332524509602333877521231355645446869295134680081717959325937201360359273837976597909264729608388820274987888619587821780930919518060550746543329466743045670754863105276398251538840792321754611380598012174198135110250882286964848584793457965109258267599924751398046923066262745654087548480405441365979852900445534165246685934301013614976599645385934097393946984440978444114696341627699128788882933874814763151960089124092780144423564917277338546584788945094833828335771354277470441179380814433806853987133172119011084764680058715914939673053084384595320655639067420630058322455165091289403333389592846816059488112664951323265123095909864833328710020161327285671852094549202771324339841160540687197033058729889069459627257075816390611616796100873374777108105748490894607448717250974697934025588533753240984918074071899625878942282447230210549341695585407122295048676089860537528263869609723498444806658911844029426700266829407258526187073497725493401390546950426293583647296988691237983816394449686759452278685902597212686644444818014061674448585622453942435180054777647317791175805972325587366151569388689857987473912936523472768720448487756218923805691767794108648218908294650365328526397699735515691064266319694754961736445904827488768089933987726424959650942377547853669820099111084064352215398078299017627209338177447397466728597372524206093577143688905948899156960272291363762214997053075738586268881277419448179095805695722845664539881107883114955651400563444504725310739553169949576981745410519003549514005396801970017666732600737740695855704702719155132209150720231004076408332203698791377399132673697465867508835431759067067131397761998536160858709073372909703267434988844014264901383236850466635695648187434592798747751740749601861033593419791457964503037350802871443384017816847224134394799660743419130441966416980081765645952054038083789451408590274782962778169548361969669565386351292858907932926579274992464180951295546226224154500846733908125527975673114322575454582516970652556952436919465387933951238427727842768766718847093973366526843772241369825715492395130642688621807885069441735713646010512028533650045764245607222383207717786015843949440910904621806500288332891144110877423285294340836367472472259471837792561410963790739678258974989291061821862467841262350248235217901450746130474962068822889090990440319048257366366386671980042759753018836650885265884483690877196315740510726739149914710716254624292399939417528304783633517306065084701694817756451606086607251372884694899272484650828789335315187958932053057805496597789705512127739329710586742847654907121282677080540239314121050593619175453531242290393646871464225372847259624240194823087839528713567686419059961097997458692537077387288961093938790719420799205265125685131596497176489854432415880720864835546785697273747015245582796161749568566941520867071269273512509360251410984726006296451891159123507181822112170065136419659070217985446481011256238588476578729241118481342895888807487401936630813405891906577189961388744796856604127166683447462290942559699461856260588268679479747133597033204379987506154665438155145855147831648605912010397513446372880332557140900606283070816596480487975178309215522727885239724856614230004962237589035900107626582419336360686427337033536742649717568163560059353401697529988957539217792017121884110607577953097359155318183432720033650451243763475777491762846976813089468515099763077120014234956164309988586927002276405577473633963266622805791837678219628437084119322733906305652800861410551597604325922840856586071264818524237518541799951683690331692931814577617591827591069406838530047112177165286601455897759461701565563090163941707197700017635196311258458253988258748025184044343011573503369498001999495321279824646189589722661740301648523277208489624995677982900240073039704733639077062266788856828441798827894766840888844343277178722241567619510613826167603787034496374062267177683732984234825941549029466891348769670931654147105481099452552147060155889897753428914750400010012826802968461232196622156841036821860747332878856911416629792879899029548130975261265910112774087469546749516237397080926711320644452319346857230992882730429672180286892433038462013827175905203457602967695765331646646222354481320253458056834784880079091484599214978116076664169845823926063442224892755767586347721115868539529623255892793762254007685197538884756558548777222948237715225555575972507799842922790636153810916036517459586895906464184616922728510745178606421448578135501378654992031095433708607756671111217936919823928581223743594167205622841461728051671013082508021341143957838981237258764030111631576471433148127711607173839632790544462744187645143264580711910366312722063944541711414948626177618635427723325622154510768895338623336223792607086136681769489949579222441725359597254276547481059041488892546107935617987970547804292807932638458710036247593696183333849806594116288167351090434388949062723683797806727943788159805282370017282425872246409935315478257850546048269725002913654866928253193411160510360861083768678948757252533458087266692902249774380659832970632098999361279018166702623768074697274019905723159098330560867796537575928391440759659451151251571633310809538144064370949974052645637623053907016296567170743949226166872699121773328975200770192062569589839108022459748267301505652184447117660025893984035480332806318199104567577425812968986519953349352004586011587606707951695128020595573394491652985190697892130758961766882109381481685408166385736855221325849032224058861042298952562282935259609231062381862667951060898187618910111306775730209259025640238577507050848017715860736230339587572031795934376961335803239512339262382138770007832764818377287874552887091839638097440930758671529183294557999667905059481586348990523656248892775246308746174522594224561099945420508927841862408526921311627677972573112151260234497977446221588466198302821649376447964031838075887598853161280874781308219748722971304841106819018843387501304307703726307093942169776760838097394364219678963890624983410783173831072146534583412528598700242661983520785387832735046633076694926010413517581161962422274707028114841342043297343298799272453558790749852740289478199093626257432646161261938838230875939821574150620592499025472942020947849147827585699077815670693839788443570624883031453510704683985300137501608787616731389921856188897976700038357766152302165066803317722662233723772843602862261490700974125681398430969948818243936602996529130077127376560222281962791479103788759459126365447328544742752114573544941100607039569649725600621963046007785297220304627022732506010027460129308497439572397972535510329179099256180483894915252104994029904481757893928168200372066342327413700058652774051188895293420791858101851476047885184520301133535039134437054216523360643126736454179982509724839963017734692102395273483813522348599958718282662759046993638184240715811252165919561254722578873104052936760854441145624408540215501302023563898017896402478569242058550438719541255433363064871182437900452200364378974234669108774454385933467837613393254989883072848353998940994564024545136526174976041909630029985583658454502191052050998883663484006805379439897602562940720130758465672905858939526931062606287780654549130043398291326120650595399629631044818602542073561189464285378392546443159958068435689856868304406665194047213210133775991229996938288688630362098133502293920731410886958480422143542804012673693790776585816271041819664113994095901714880334339929990971200929098518266379722995824737741540695339525595297946812316788057752581932257483370918571793099217481014811633977845602258402806675537955586380622748945596505731095219558293644306129398936804595140010534386443312793195123613596387758227744644598224119635033871261765684251661409710819079918427245254543907207026315924509261211698568259367876494939151503893587371689535179080002517892154175838982142088794244533777770306272490787772379548513744759223644859604932017178295008926605559359989307085804299469137009603380116438205312998732811513061034477220316360515195523025799237080059407368495357119213364756633471395657843826660944400020586066416155955762121166513839797327194526111629646742629325063875019649322843388422094184475790284501121297107535780026415976747036512245572611454273032767377622298799790932047733197355732598240177598495617575767363758767336897776929518397175628556026322448563083823945922270652271567091088294872086695312475232323303709781714143933474799438365973458754338823142875208358876450509219622517517506739613411838208190001472683154138814741237581967148308978008450383602448843345973164431047447397078391215737057504734139531507021551665863250672865021187538696515385551300309075190225330278487336902135758109471417212473402156729502993967170435090731470681603725888103631417293570587754960597098519295063288838043856124547295471101061765175871277409044734404203517827424441373049194460964922225158103765528421259222809160826563834818125405307154936242462976913635412723580037913942138482027649265963562622666111619100297419008745124445950189116000398365785875327934556755458436862007063377359274332306040787652592045358791044381575947082628194998061450666527933658283607440292901494877135565934759989871060963179714574236378674258721886938080380141263396640192801964141986038936126791913765455422349691162201880755104019801046993084026146891056355454712680814608749777315111199683011563223206905339700991046301696465944106016289834700012954451327796851507222984366734411340616626843852176148265770941772150172100907548822085160217450171420999645463378656188837644042824332861296921874338974443015088714592837163141709854399420644496268057974641014972464816089857623479979887068228438868210818109976993235716125197042785883600746808740790402757888622442044223784090843030089840431993962929333074428856202078758191381606680435427190761123956423723210567788182892960900352649716855530849440266985124657224961767500026676739820620416845119940391282088792464845561297489786455395680205647970006876652468668499540023960981933690858889597986760203044728002886871844634759164501206354234596099451386207436167669145347846123210536665173452344377828922486706274761380841575553392782297728131359448035574354491511960423679022004757131612747992035955698255030281455510774848722011138375225298315990799927971536153467890111320383657971148853481100057129784031412545290039654769157509173844553504505918992990465956887757503988252190022442285519518391801769519971075404325541767720732184908013370637774658531651759381355876676762362587837000794944081805317028672255390933343432759678002284645151256674648839887355358434844752166255220806695998342788664700581299250790573910651802525382341485851058707963415245092340143903694752072575879289354981886964108240008036612269543029918025282572252306243545431024769817687949766681683710258985663130168610442627881094741182716881204975980990959412241558014108749656102353050510371388444648296040476088560246129051090339850393418389456420940389105052968086318748544194022206098512679622019694701636164641811301771340942689478663280492322792290991059642023788028615483374080448365276768535556159051818582259067174996580556026533567524880029802085596605225783852499969078031202454076975028554872767543100791670348393542862151212723437521977049926380284480261341479883793505862680096449850228635052115320149460624503466265939515697893093773652390623774144237826637463795759471897526612181401108664830855588939462328377712100462020361949393215883649165190730652576423267414244881132193806606961478266995635416313835825254451358669225173896240375477207275417988735350939892323921194032529341828845864695984706210065964218450283541991799489015671190321778786604314343949220422732225487124121749512300531537931627453103546609185192341439045637671424730531219245782540457686532076303680300213286704321009723102639916137085201590913346618031175394518435768893062666650751911312585246730654136895302553520545124711572566913848955237563456227441648763629582102201856604808048516138490299163130406896390055151385427779028252511685520147545941201312110817986755419071424678050464312057209739034156445918354930628745245933501839423426830923657983928482916167032336959588420133359751581093928371244808666511522154616488359541513109472351755707228814823270073931742685151502173636515548741614960732961903993988919178327515323471481353196781348539355051244908276164083247332668764182101667959020293617891409950906637722103931084003190964127839928397867927303407787324800809482410097120246788722262402927185652680564378025241458789890689664725648068873805736457839526401170084699506227035623994969695819056915330318641051763847906910086243698554349854336438000263742943290933816122340832051508895296336098791426685225242604963775474189003242507044634382698276556846045675701267503408974816779378038886394449605582667614380065163099412443580776688747298019026532061256690379899443242778518994225585659666384610873322903626129332349845263576205316102728252841651658440161425844011170348445282661789890026255526335432589267388095979407526708325021119777302313661720650313296099554246589838387043662579476128305059685453018538384029664835323273150243765256137412436549434870342914631896541480108977827580009593735559101841623991513369094069184273857793644148086793775600934029458308284651821825347697709698632976000031023524881103566003033648903119618788696377205869719332421737040166343661300867627761767125851842903927938458411250672106272469928007942806026257300571492197988311993116385416203615703627651711552010773602904587532950954186479640504953107548401914649774146836170534183655616037766586053842666186132571041787015633578507260959064882228935771399039162598599792350021011385818762002012818616892155294708280910879528362713834115986310076963842569767193062269871839790724686229249201079257596445594003780281563459805536438522240397190088659717891613993421744855353942905144205585754296361241873915494666995429279742624364009296144303449644267946818220357235911061099746083379207443965768041361399669605187653196270179379721859750930755873301337004020336861771308714721816942209966386544589344027952581720891385737525171597613296682709296386197572327591762405448246868516523977765015180179649177823311980427491753598055018101810929318346360558835026295084704246222583837892282365365705753297872035431613600910707017252611593371042597448569850032772002179548911489773602708497933471467275911511582330456287983084574649940692861713172397276308292001354783142633998000472230958081390637315180500301524123576583851602397257732283468793057675815003704171153742698880884660412774701209742320213828789163584244110847109001336109011764402837863412396998172617277400699255179412371132506204664338013411240418038850893145639709230362146933272537123276630962518970846746978201898141062719480729992924243851140002555599392014378114364541964995793172880989553386732033973828534689224530150975544397549542150732753666372774491564557121934551163992096980142396723467242018725214135467961664973759075485677928384480417280732367347902096580020044932827844395977296091557416253344091030079544741558571587728576461542219577330916463350203889499260010799330406330616482695374893258632177897235704395041409977909865243442223361372231728418458422765351773200906899140273401221007389452797446444516116027979848659460771867451603180799558276489072042781622781573280056191954971327359873601198554091472230125178104779428721359064101939662071877358008149881505302597597629251673931185781110379927800388086537217085601003519317317971606689728324354855436042543561732893494460521055868632172700819188997878693798219692248808768620175107983260524128472712398203499476035098909027034440546649218472311166709736801010851798235505021315274863333302397858181067282617597306641533993346506277682435131060690578408666215720334157498051741100609166602572589436809569731093826764973930201040996180023650456428312507936325567656950697491922704902880088143668809598574716533080883143762957087916980436254551240882357700520203543588321968172523104604844718344917209325976766073677636864499372187826005851009656917508634645599412402948827032160283103796837389795982180226904014314875996416878896993367743821747926969601647372449530318182835681837993922951834272210345430771787271320288608319435036760014171563627606200924599386634298835792029207812406397946984913598063180540066079777445511214722224890305880394579821613071418478503248283954668841408993363597360306252986554075464716410525180150653790144913047630282725073123351272274876086815463210221537340867391498486538935640438895103771131286951389095436460988701280319626637574280501844089584583008880985719028279208635199779966174568754140682077593073159166564282899018381378609791888708563142597725931824649399535225353288880174465853058673917278093629931288106700712365976359983392297525269043899777319627501080994694420211067724166325472759156947208470340963687471380591427672235616868716463139302022413934512714071059769529629966950661801621300785224250835939675471242155410603545176282710983115129839638336395483611217309439635912579302580908036349221320811846433994350083583826805801926864986356787486417129079263304672092764172641675450030315230263362627491837302478353509162862004344479412346258781812289203847830246601894445018734490851206767888507490231379127476093727939522704750482205687087509507110481885840144363613829542446923692035954968994280669698628831107789019831440647131087380670036649437412165353693090647247484266953666791355999838226111202051308017326682948545906886888004877576853422586977208512414526459406441983630062935181921764472719839374931370670193078545119855813162954631134080039947009261763826075339477246135205621456570585089353589392271276390033744627336213989932833375391508263920454073614978428232889659983755866628963016984102122387825064935964114422358061711139984890361540284686579829417520661058904470879374078986340089618756393594466153400256223621717769397036400237282396239869518373438049714578005712340944875877506169257949813774180181009845231781300497275425357055590755369646789298378931836608029709245910566413037804606321906645898002173272919025004139521580043451274956069181342229461935376273257019736849654856331123552942488574026841029542598204074227625550260292477111903289190592037532022766464386284937052937885379657829586540721378090901615596415948224607112276634856525678334489839031937361964976387842377683712059347996131354804430877679322377342845519454075750431748238500601680769245812882425424481210904015853701064061293788535748682959906840735946874040447078874945507463102691349936756325166694894198732822261879392348447568629430225966613463101596233092491870796429631208630695112805170027129834622366248171620255363835374328883776281348931766976578501571108408882172234395638044434205602129530795860494572623991000278559470922292514638460739607251892734752765246858962692970243932088582194248137714120669154208790952501326701179994799109913964229555477710772033354241913205450171090239368386553424878713920672106947969435326586961437158396027285972076269888442956983143289475469034917211131063827896740146826188052189181056014705678045259463621582998804263350976077826747904128056196020576598929834929774986801593911183244853944665063193419307879170200894519228828635335316135066074543013229643473793255329727215215396129221134004743134794273857460667961726994515517068863423244736740751798034998486241906180068614114234678284226674787617417521876081037150523737701237280441322346424726094585614477295963439732191926640973337674665597352793912947709038362104497489821585199666532055790556354956067888771109387110475255120679936633055961108411821602236633272709029710343790444937093052519226519482898627429744797525575933900986245858358399870380483436393833298525312034636436004843051174136451378364894275531787456234756616472369559973242540237794012848115283911602331994121267344505519265964759347171084123677367400268395862801408723884486482586686233225890991734257617307589447062900780049329595102197185022554168043710158819533626423717122586252574353226300802866450133011633075110984428541740060226197019262678516596167249297027438647758501685706649104914423547779992593513557040504703975159807786044807005070917767837422326774929747628196194050871219272976720824820179436009430771569546411205903043942723039168119590432243758513133353429388680730418525938531501985909861631577134727106386604975741232937179610023920952261610081567152638779151772953212219191543680906481099026825366965950274358241621119263221296079601775529605080222656188013141162003702466160204837847080330143300585541901292423436022080674396876889940883913690620128639315978966711501457596330631667685471366153657757042935308626815071076864709697340114145269907929826624754193191960177380625023162160029947171503634222525718406151570430765575932960554526790789585807083611090625326308816373270257454599819525523367470577355258113031910946551081064721460608022706284593557751052222615228416607436179542430790717659565046751670081672773117710757314271592484968548428666645679286423349059515921557707210261874004373638309647729657045737878411772111096228463676666700139253495369697899989867605759850597544370602208298793651153221055810494682254294943317911227684992929314234952517545260994522348237909280196346542159635171315501410611703125051122232777931591297003791036612401188936165096787354326707641765935781235999579905555906978763442122920692706691172334912684188133082878645418628050580251974063944018733315716735628499076004422715546677243494176195293160448331933125969630855002840211623804874882437698796411622485998543945558687812022246052623059577889243214372602765413579705248797948495773854530662081431254360525712292685075755769490692809378157979703815883611923883912212898482739002958041364881928666518367021873189696227793611363337672122118315757828436033682035442254262913777691402255898138571379390279202866071267453272617391108171744721662107193133299639075489517244338412736255509323567740934825877934683598936803384114960198931133948811821849662759207700592092186394472781043939234718319665718240931474745892555746716921233424888103977865201078326835590692310392869142175370207295927898459436617113199309402870011811950354786024264067380777649667890723368814696466733940007352139326897229089031676913328377351712065964906392220055440733673123107205190235180614255650096404852912216531512429828567166416618458370719881894770617279340695221914130972378843489075913563811114265753280071062539804119873365711675706986979773937041970465202290371160183561721214223561763117961236728092087077534488441538646448957054970963106021794037943065145295733281752132104957882775910194990612617480518096245918493676164288948437179891693429937970947922385163277499606204446016429733264434833125074630973998953139526997892392186056960655484814149195349235287636518266426265525503376649222194918405473554493860101717535412224880301073934217596845832586525938897714318902176645275088549349620877026666768107829853527867344390108404320325914627103844068286867695651720579624550655971499085328652054386276205108989823680818789866626660685943177828540084455102839888026653644009347198449550451864260074726838511531892896497326383588469435573099125099148818193285514657914606142154654370208571363373492024473610843415551638248377217708855772560060220802241749749584514577626507276753802821442603870056525836962761489821340010698602549451829954843650485582772890108552599746500388878070782450871649203949920287555535288263911789752451089806629248308276710385934841918320080222359111140746186339666760145082498064957690069264125142396314872375317381478462200930509391787908076224704050288397148072129028565722308698118402063842014913941194178486695873399390545674428028169709240620165614333289831889194706485274944659643981787009562683859826732504639733338954208767654095383733975657363779735849413757055922035766790417478288494074446466875043870671831444788872619835462967886277586603874400888815327093871615866871131523178405153033269682002075867128899732763400638987070816772471835294483031674890328129803710449807293253745091484102895063074070357933345875411583813348747137936398862135183001737847934320909378093041343337760406161365185556651450395765821603829402497695283431795330985500754632290958064979931049765803545311293658721427677997437905570956460997676680270698108950849391537007258114724476743245995076281693562407158126174952722695088222513040210621363857144512983246732825142749514895815602123355954390687749052194213018264306747145512723136927830983166293128546064539372181653526315813276050943856189691839858179357564320646170591055991100889061495991672024468820538238998922335400145584604312349271722902521914513227939359245477658007528722571399082614870770912448455056040896163334633856442922043918832955034489179160550997268746599504795781839564449910647130946561016426030229972443143744621730777902841821791617273243348607744041104143881803408859875300504165293029572500872191067057678934740626221958677509569007104920365161440701316302187569062320871377421071638675492747238039192477240970072856250558351263325841625487740093990614269535993366952522370785429291026598874979118639191028199714368303058749242848739279556759795394784125071828225392979683449008277516123953106266864944176492885158897247940549722692352478522380487881160145849585218858057685651264958272672786940968312550565031342394774708361151843605071072410224842737331563278489247513142143472436538253350987831900199828301256538066923881597261760627444005805779240590822714370333232211717844837811899473895818460505475797181804664747840729025755042282471274039775400208879376400882995455116766401293100888298041685969846534689295574412266002924151655301208973886894331505994192286078227321948498134603026477341690886170044151152252457460762449091112905362112486812590965292299257502998534604505689263978875610787176436978452370810289403719226645461319671357241531063560591892396920552377165653257362294799419179444291057723979436752223878080890449535659842853486350018394965509928366651861006601768215842267585959534939605274235350967107697067363240416679774025828593281989349917920992298285500966300985890108034266439704030361938093823366372583221902362736819718882116695782552567285648903795355623955769661464095896069274062408747114105045647151630907592322905181444732767188820653621891267467342360732504483504082832113643776148689152077589594893777233733394446134688808421276860359271573916652663160137636088935635021558271912250324546353517876151330409288423780691511760961178897695783149973983504693722503749480481628523859100365936802865081260977349977656246644989252729730647270485948772840019223962670158340638207911588053442758140561305617812099295161597923153356211039657831551114418190044134145461908588255596496707561409494910757456814595418380103102467346788243849834195346208068645135461603348401500820997491822117715063233268555223797288762666702291716013101021555382522811555850262154805785433111283098545582719722644917157994907956429619590439706148316488395553473532859374337466727775912243143933554474784209110830122289765356823303566561750139051831359386159973154475072617155965764428766372858884145719699738667522755150894963737085866739097694781527115720276027704451765671560224536830236100785065117604375820478241875260649457380859198417320756055419161554041907513160876846308416310435965523826785982497804621316610357571266375027304320645369185633114839858279495953651003386606387270458703861670306055332349770248222796049155955594499118583426129806231901103896827235593204218997281787564206590133561530924009671964770031482368472599429569290294081487130109946962209706508242037413988537279577279055952028303060106417326766183621009961950358775223169817607777276114321941706837378822001449275662259991843266433901022803263301539082898225611958991780165196030098943267472298692334781949726044287975298221886973869597035634572437365808783127374820657650293313346337701011793476929127345728316747495710952881461527744680787820295666877393059932422316012493454932358234348272280102500339719513074755080842669726115194563137056108001126176424939910156330039661307304364136758725592635158815400793422452229712933369233033981578430661572586173045872548649895639480076554541885087337169307791650018403613929592366322281899712081967520174095731593603168368551790571413025963220215762904142113423303004302264648280830337019684684730181174872171898038444333264450375862470623290613803218272875318149565717121100627519248497699381413456319424732883841142832923142364836533292681077788633811545096078258796647013885394697555674078909278210244801032680919844236969839662247557237507429345390773059404664398956472814993950423334454938522885161609745528278843993970309333524266656586165750882810417623970176124229411989928053252467446250581622267388600013729601316176579697350482339864670546808617438652926240318640373587894051761083086975707297881742089113716720005115351263978317104258812892263882325431864390504594496004465895083091622699818784899513264846235808216162481774994023867093080173179767826073678411167241645735556780381220471487591950500562752931874321256842091649672405797981976385227836300833910002826380293280048881410037284625248392803514727290462213165379603488657386634621505613134409530738613955705911221183447348823386773905807369995800134673332797481113281812789520960188191255643744442535973198405578127912296858203796859119338522919030204823955457564087858979225867733534842808388979132213398192143416356841288518358623050606801333039228384526706134131380303618399348859975544825859443894344596366100032487917182535173833399238022044988582660914926653152015291600928478275156780622095199450271379401751269070935121838383553576555890721393860425760013921818022220233084417957735326448886341812597987556804046180917544652848775441504682654356426641817946937128549269358244035304743548799888617798535928353915025378017845624602218582622209660084039596377962932430210370836583565986155821249280964234143350581205292447636939988334776014471790045951181880666839671832791918966389223603022639143603977878926291176895854867927758228534160003688614074677677344908256319791161242936847082977764451014433612794040027092100318384233028923032952925092276810516692999159746835365559032937503359678201051347818932363664568928189933955535181940980569843280063445221596057494494132166848320451938045321320881904175408942289974664707449146838507702405315430486437397421178577327808627245774018481967988429470218322890081042927061194275178893446936361213930350234274593343137693843429783952628566472262266408624262631270737182360896323446790990545989445888314884321848969015676208866904909564127241032567042726142673069856347167382484722941835848741543814807043646525414348410543424246946211102668734639538903996430253441252121470984269681241829679370631869474239481205312088308926765764920383258729404183882279617131574955273180280192521588494866256124260583750052553948737276078354016453589248492384679266535633153740621270371243669653335150031242773332689548476768086241138758785938828836836845149357886635589317616094040844498932908111242394373698459574133831416915939858938612829353607149598216013064387033983815324034983236054340092624191376266162633716556223204414875944739052051278463380568908886137598458015403524458176339658888252711425230035813007117151425369415189339124977361615192341451273318653617275675765368951743901894996746307622879409701785111944491781897003732865846831441253775834647645187512128028436131214424086139054228476804216021769294809871562751553916040809156392466516772886512176683841753647299091433045150889132024810085106138403685787024597997456641319680238059302737248450989013611718714151716470850208912479759723608102097147625051155819181065785370091327627768383542750546647105668053917957173508843089626602312673872935430047801959782388591161859486415562726171673010209770577462415484926416569383649785156067984721819378681031251873390615661016423935951610929000775304634464749215157582445382830864459085560525765836128336215189773943254928189282362763343666337210555039119466532933091599119659951110634822297025084298788817981750672767245505579988182819754888434684674296695449505425659400963375873233431588328969627323323475957689113537593068611677771199111504427988094242278395529233949968024660466968523539771100653089506574701244494632462746059779885009421504141324756498013230557391899278485495873346612103856480841469264120381349132460957349646433018692291888109760926520899380289731527739122763600876926227077678142213917535655500424394272488255277277351885617360793238300773556978398334808389272556933670428167271971037515343834010685283625098187502612749453825262475214645480605262641354135649248654499373478719172193826748024341311154585783568330778779474505781745436851033384419835635977339251457676752668754791810042905072677121796515269778346224974136781209302056701023757685211483167002178970487999987783267041988297084241384378941577129851621369794119822366547681795729330392188235035320952033347891169316393291879087143451724308565274017884045138401215374088106435443552586520196264757443581812085795777356814134498348127230045712303716494576045826735486726244761153756002021133673875977789875345423628203745796747596273741476458371926704930141110562667782841617248271001493347075322390515955966154371163215332316803208723907748608370075843247849965039235953441819352123522322676128776556788805323844448760694808615807605919199428866918523088301688126910207833402520257654357228109847776205045897965314050653599523801708678481596849148444966096110788490695497428685977712172107584424656001402549137242113938325694000222237981967123015015304291538823183168945902028505879851380310129902969760238885385238096606162263897323079664647655167625056467093768250358254028661621341700371760806436988149336794712431823655924809014047892918042178878052428336659114921081393156201374769575436811820969427760172411005139408287898093145097049772456113422956312701580807298043012806880255289972426926952244081390675064598909400620026110926016022596497780232869502886371781334100833569106407882762205573934450333151925656679595170495226312473726750672671750250684197468395239307093510910292438925499281675284609813010028304709849206038786735129292295313427544797310000790611944731106258740857589242978319684644916870744113831367167259654491748069798944656731870781321484370848526487650509056779316236546505454949538766149169156082919707887360644649552772557323844402045463983871944572431580858721068551851444523300124617557583831359558045888714432180722506336132362751408062687457319567824233736093596933520368753258766900035614671793248432787053391395420488664913400474884378670412880937821108105245842623831720170702676852887477064061715812932443800504053155756396033667230130384601816391646420935873576720808849148716738348085136738872032934257316303472507953900732428411430699302884441414764820218007588161219609957981164687533043944373665418791903629839395928464096985531560683494175291785025823339730799593669694255667714533556545810270569393718198727832090007035054452291115423010445235020901456088851379378291436440189774756494590753871215693883466078324214221710658548169994501608323419793560050881620028749065385702593253057406527473307276397860234405317342409526293778000456863869478766482665078863285743220864199031187055716955919977657707235805765591442442699967435805787767568716029337968383790532967082071887619272572883463015183781513466067651438752046632344874724214928464932502384162265388997347934634076878504182166426288279134721368946302365952270242100041452163362552685660998757102314645802501004031748215973353957708800130740638559518843770942071503163938912463797969784430302986480262014973251567581579706151814268843556140094118898865687095719488910265036042250610867098999721698443735665757812107754652514129506103888351267178609638781886380845102410207979786383080509879686175975471347656475724743421443208792600769574764423506913168292239784878208804489562310209056354823996900477374073877272432340906657498793556464851668436189831431139563888843911958188830844132974523930581737792745746083762249152919173610186959984209183674266699975002322598999059423054911963098889755734844614211148889300988708718961067367637446964222493879810710545351876474443842530736633170723648596240645273546121608795202710753468808417985666425236443718958822950900725066783031306376998566669345548313553052870606074946502245637240702326261016197791227360700315864937434920636670556827863215646135991038159330941723500922737934211856993213740257662934237702692157628389404996138024022378208115273637781877974990202416505864532785702320594535641093409614741808266320078557832763700368095499063523763334538600878026883659602270239463479032844393422264653540662926139909334931019260384658159168219768787837574504955177119472150562098697088702794600198438267608220571224110861840860705366795448588248218322286461756358469135175158054173207774923297424244403812831425971133725380904773259087864787511442942677797529749376287323638722651185244963085923699085554041985361521177958067147373422682801884745817234017910080794399881960126283428494937536086824683831630714160275966648331216413702686166788029872014144324757374138285663639899597737037168410501894235239234962248175301439350335466293399707329301529867964514925739413021587556317799640459213084239412356301487412896008670084433669339733390455604506016032124103846792153163184925615468457071937115617711957657187089875774545296996899941397266774377197485615865914947527421952584690317229855048626475424132410797388367499236571418988322728191980403546803392669968836825323749373918964194297302193613270618872116722715576974285487526209449067081855065679432089068563551014190994552038979146872995305212204905037748357239162731729205115340599638204170226237959183780923984610429165232240696718359610610688563169662603493903334410401163638211932491928335251111019719321711237988152484244741525333785174043363790017515142627333250763119137567252444271969704591831335316828816319083951257958963951279130061509926609329209812749963381644532801962638296580481755466870862319947208972028363111185941566838948896947810560678541732323223897847032395611087922283111768766591064502438665420589189826068074135095001048266994695271689283609387674924750500346916866044757980110794377631704505217019924469345018514642371866333092867429968758298832806611263617844929282599912124526551535620195520332311263443284085341435961653000047739059035607444006502068209049390999826003085829265547581092514807716505773408282394491371822547092300016577596966799510221749719129086937146942788899214356145637457781461966040390040646923816609721325321430542040436797325038138688712626749295747092071916979828151477896178373275459907956574725122207994952998979276700432717855167092546937754503522565739351247084613869886320068853378788280925167841433102516027381358545783718541067735586602713911196832741952127841444007589220101477267866211600598839261194367449148150903781819085718061608815470408844379915801169511401731600816396397644036570998892965750171904383814824558018313111109410768514964212507794038470164083279309585648298932223414999362299689546734814972328017304474104656404799258057028012180899443106220587180733907377650624285606139294745361619818799778819824238247865087482196952979449631127591867447925992471267220516135808322154297525968522460835010947521145055641312676060586581274891456410782994734537527473616372033208145365439613696301062121957003460377178755495766524862405578080520555734605453494491168871422349113797157015045635181132791189096989412298213271992965615942134544157469581803098008802401283713585144378898441948491475766156209828101607326491160249866970938016357452064359403883776734047720993938169666745617452829105775050615246529708985854786067097106324276044291684711825995938511364905423184379983753037851694872850084934472756219470718264317227870567544477062633168096364793189056142807849802727662368298427746779747303400508814169668537160012000550343830521302352672958101024906047019072226656330170371156433431232803445994427191924490293731315950001666778535292701158304293533176055428082260920424812106435878128135366165126538030950625090275068887218466835954524372184042220436754293090153184365147019037429636720265315739207381506421411633933280412579404071291419539580653848354234743795903557550852559718530899916498963300235047607631135873460327159509811959462728796184827437081876287327282218397988952308521758985443244786170157286786150461361116626627352739170636319677629457019957704627849477791186031424173818832257637580758862683243161809142857633551630444818354082178554110960641120397087460000468677570959793048546065042896634691210430015305206334634389814991031191430831203607627330426501511283913742174511801049108586596365734743833795146979070374749155751449172298481742970574767380627323848649365830883408171053177281402031742258025015206882942395758048239562310894649968413155049267734503379445174259724417625978035487521437926124521451823219113800282322981957177657675875051745583337650477828300700107543357018349730438734185646747098200073691838308018836161164662505714842678802937705493755460286817692362267547301890011568918314162505671949891301040428582613425911652107289692544338178864639645561066283382004069251352821675191186319153073056993249907185768998089154828417689993694589347983415516624986016020690470707519958186283662514576738905428136535031845588468230040981182152322725725451037750946449249605233991411148202308453653240550489909989978481155695541612387250644833225665290195216890555088061401571324181473315472052810049508588543076321961387206994797942464746717384090723038626630266850677924565331988358782360120826887186563452614939615184639611973656432525458522097670047412985571090343808583033065960677430710620533107386543107658619440653151827164675810872448594268080216837617745766219352343012212866133419784577701311169930798948644233550876958183919674363514411091038957267707610008000291203602270310523107702497566743645599851393012425781401584595590330275823003579490038718205790096725706209248960803861015205826762022228818121832328114693626133235356943677679585398355451363912856365409992823760891955447805324529431869342361505344496048789432838190203605673111039666003068104128015707991169164290647146535048307353136156714857415981045148072139590286823223835705006895068815738177727903510750268078840233989980486168751877939128550808637423606282068489290768347518347819300419826381627208480989447073850281372818759924102082830446121104053728496501758055731707994612655603773363556964181095721509252094108097263553503471479028103976402528223387951702418001368879548786854013556982578610512437979662193655662657303593736189310511112734339645696931838487627834074687476685344901094884801047014793673652094263430405104054190915862961812134388484877610520957445284058774389756517923669003153374771879587425462357722728301441457279164695885113914997960855070718704790769546244750308611899965216136285878109368202311314433782244429528132081610691367469595607509836399690082102374682425139324286850771753061750372212259355919055525451995739248728975994541103187182546637219634229622276924312281822715805779292403066849978696756998555014664193666389638537269594322483918243446693209875695884918825364988150926768320831454018662086799288662923284669765692285482226668092890233554136335022636748683299139096217369540783166476725784481382171020732212405107984068734068317345021625417306518606054806138609042644111579946235414081953529759672784722747281489996905505879116895458787254567229111022565018965851993212414393523374895494165424265452769031253122099735456606907554794331296100480317137426179387839732215368372083319058940009943439599629480657910728914497748340367494651265528908147050683162154262989470554350019254924874964511267559910742144308196619748044994023871591649441993666270085837422371995428228392943999168527413445495244309123977532583391169588824711920394823061238840675276005848368065414195012289057283929079585212499391263125036924051498955509651927327368768619916263030304515816603598654796204841007423520634255265493046584746794259821238358275813113980532870702610795897572378431390552233466216131711424999305788097294157803898860238134755162158100520941078289372388943573073146900904935511878612146325399720110717017192567058995811432996506247029952272430511648741760487952134628673561249152646726089479474441000020010453368612209836929803991787522162262897045628717114527508526449286753012818773240878418319312850501606088982616617138179111280730619256705306108674925171848504280493748094726545040547315717499616819912926977844743149700571951350553397594604632696013978692545531732517645822043786583842657089341177342502278968790292785242086178724076587817026421010991293906192406409411118548657873716802181688980755496881901659459197424585599407251767247459019371720414160781522390606796140539666175706111194291565846248161582396868039747336012104441734255918673882524492320469710449373903988057188375330148680727936394262504485323425415289801003491208427754966151738350857296537316627103740057082962175313647542339667825055978908716523787022500625592148983275813678703490377860649153972769925055654126973402088912980165039123784020185069816096467514729916414749509696860515140302988691451466435613135913355871697595406196316797823413106000879148167895834509812040058841347650973799212165889144971227652617370804764237187921646262055102143126203702729989869938314489539570179815042746603154031848655933450264833640163987656413200229818047612781009210302247399943025703608431316644316427620709251824223848096318013081340130514250896898923169530785052417393967704303140109211484897647936240018628540411840425409640088123685824805147685367649491335069129260164631313356057842115776055261088094989048855590673746100229617926627780803057614414691659552325958490587337327472759155672654385868198193648974618179982503531356696859050357056271665501708779201988885594146861096626848842756628964226555371561187950535906639143229542400311849139549428669712830797568837214028430276644314327293942473256751508416146614187891530743443697165577587377880101911967266609129345275159619928703273819788259925896037507258887005624138531066359727180753917527639404045320096662890754479983873325609804788085608751392463005723022861194599132019029104042685493624470385046933959259699854322071063511120168177450786916385441950927363157408315817299501861048926755962415731225788570146398106270624951532623699994698527639820157869137439376096613273686827251769853756303986791627497458079772616386736219165295680061178151141949130914486189218373560222172362412524942245448224541634196624882049299268444285525562871925522817053618235058868319823848259319466775399103654703797600211476079408819570839685610221481449283066105100888545198789658132611022923665833687120643169053370502936973717168319997834771356645633325066258714905426206597023241380967083091498320301312190533452628706474973030045448843584962606268720350945183094754032644229366596818332493055521770327938452904301576002720038439879181172174435350188383266248734820336738416247038230126379200062489967647432659546023483403286709648772662450163992837931376070089230682312101420614653369566143993390183455973138682599702076356936037070987532300950450370246452867554764263405777152904041040842775113909091343804024162506423678338801751629118130747046320532940251924509905191837018662953707236618097570051038839737691520411094119993390375040386793091204664637183133355571548862469269616298798902744050325568832325558100381859842929763412980898140121633365648420987505176597780723422511388275769643895323075374515937729788733249070213353142425975162001016206467591838706758980017369762273509163166021592346358282483187277780750196077842719181972600734569311590859239521559715879687049514859479406538324524633829678461265739339124277252377599171557003807940269970224585978739086254729017301300448880700187968146774935319445323903479680005749897438031545341596356087153295149931939349094334770789536966861836778863293106843428098090539851007776402354428685627277871758471544760125401988994291959693926948925266565397242582554129323468762434841256773894516615189644591147437430271760140205336984059437718911704780245244083545553355041862813379287052349169779445050072385666256703749739748170968878802141370904403810643654217711617600160471803711372176945150688968101941898439369616740801845685131710158606778310792227904609626628394977652062591836981071049566957280997285960282363266487473342868001589732553007426547122958697816319343432452405352659392573941733130786619773736396197271140232319649964341817595461191115411082291778177175818612543631418349898379026586960933875807672086492270167667802850990791567669427504176284893279250674374506592686210065281551981578176051787268950358332439299763904067480932528226822477369934999116444451002930393107142627989796158286748029885781289254881820801583032268516661413668615098878006707381263318336628549666540744281395266849476381879602293964842240609972812211943994815031306204960923269714202599765978031559586066709344248094239949653331097625551465417728378745868616392674355848175256916449556333228047262902648085463002094797521632261485576615092796251464904742954399767359474454375635021788813307731668973200884325598564439400200128373533766051051242326347394884464560144503626529407025810995405394153327608014061538002934275490428959449835214295766929027753105924077789259937278194453073075385432853073263829904721888752651038139440196429835641270255061037882458230844135542517740941828739098279656053593261129378856809678021588491603498613370126317902299353541445328532451352618077409304908381764128652446021327562048142830962458579355293145686732912674556679548052679166442612806385662394527672852398661915821825051814611271428274276971819547301273510686213630838535262283957469946393072120913551228575806146074192779573247525069582738930498585109981372044815299586501447933982744577641669975199355123614354801284633349163465627300633251955128763440805053557987455118680360223719023891995165340706488383200298579560203639668510956793034625632997508264524044144696422462757548355949181108336622335461994367804342553565613179282177237280969999171607270896528755881832310145604611023034949325673452426667471361687990784841602660723690079763026462496392340236498952423120095463539972708237366795286495290002255384639484682914758075424672586213517331465904708531461819704958791515474880569268247951787343966390062815533607545189421926064839015820807487306961985154017580058885127924455881026495885174357774344314525613531970787648128242195164909883048622248031588944406055227943870992785011188663226563404237832634315021250432716642069909195752322976821035320905226882101880650700576523008515164819675003288860709668050173359546114058031848423001957202974687694905398861655184281028591066425884510701632292662041880525254727300115681807011662947150298138145887053837944090157441878530377318902836761939152378015950965507303712224791971165431746350061714016811596124571207831596088224160959358651338071755346612869381355921212530952083294868768936749534810460336473952235725346686988750716866821261017926933914049384061064935419096335549803297265723415912107651772879940081374506978263485740959162446865447994339617525053660160936878013042480877649819485196167883845582361067418611970129283964075029683925106622879254261527424689129102218318158842678397733183009716932244916587185436132374209810764323354678707839680990230955887229072400487151894680563456765505485666059960180743067344993647747745613992791826291070530970418757669279165201614284608835259245504608692619679378516606173814723905537858484682482239685744023433782945985538912304331882428345322332848019927157260088360836047980936991910956289845197516848163503795800479261920482546598127912447577807180331046115286593811351783029779500745499791921447556470337981525811404450701453559281377277603000561993243772590279380542262119071174822130757090962314158973567725628604404335817304911787382817213179783078317253464142669054475371584427635616824716284821275687364375804218293562841759704307899925548691829595523640345909563150541082387283554166576052519404159595349328099608791972995992329651277073196433865087206028425123314589134385108874715809151371350820556735768341731942188778651187732857578477571669373640876064496502652563748917204765680066337593783955181475708285494294789249586527254052904235438415944610936358531281988581360297884847567227561915841265591055479673909373283736427829134957407262105203245149467002389887458482623283039881859663519445585591996203210148199166947883400453019922402634587987169964469247089458310574723875569599220788025395953227493549672450161831217762618630489256401429983845076167298048755660603135432296363934911704302703134323519780945499047610671881209741891299884952212384898768863844499977260853054396955538058270866121874914747351135444573250733039929730838456535003809969396797179408222334881882507502881666301798395118767755634367545004302279706161341875184088733475479464171632088806019555235290286613930001881190417191192108560020443250227905343054993151470967447588168552788754075567988843086853685438258611506071950257621050841277818932005969586143949873950332667206092100008451609540502136942242830246252960116245972120903395766129791628975975303478799096455162048722266455921233200295360097348543707642605281048329241751227996270177968493568699462933501638928051676524595541513937013298451539379815397067514066149227143794833477855610914920615718213193904056854604620991309669634382662942704969329270907288388732349999312412317289956521251973106578994333194087148410812494673563784209706782016115529152414406348523384843418677668584878742486601215962370760618897634605997302636956522136372991402026584507100887771037797208939426432559807900883502219796455264793168696597624449386179240649199851065335225861465499268159123896376804153711250836668007338886967252985073244085019490544653495333186222646267612034671902015534325121492210617392770587430139546586906758578586133985853468179153627860080785573998183696793551402072232722127567097875919369264770323697452410506275562520624006355635448666756720297139576000800253516495986941390002126303232496735007378140826456227835705810373710471560508621091676624081565624865607839123500508706182755200939917203347433222999875023143629550618673360952109514828713497034883734699284372893652375116708125571186183117584369742296674963883568155090127847172368815575542909059854147823613598711959677301327047331748043323349777962276687530319368406423844054136051609469391381816550894435402443154171511375360894915490049607417268145814950207511555814724164481446284604362511930729323721484431632026955156192129943943833589920898646172278160012778106811817617788994160295510522630023086060419957461835375823314095424370523892998126590631141133789435511611151122329756131036229347951969383737719381476743364612574150163813091995436417389514198042977183895300189552365690282594413799491229091568723177802788007966821940490005772985205637870079775697373677258816396064875893647848215632184876330785834606372914876503828520432826948601025192956195544032745097885446515444647191705773186286755907651280236770457594384932799049016633798386287844805514508530784386636440301727680635541819745533168550572809339232421461372320878661910000996477088246435574362551022634260868740281024009489011865648325807489488499552722649774219309470369518718249134372733188018957050568450790433328569363740712324966221418550566967157094234234369234128605413117477254060528586210787328610505730095557677701659145156292993516703035777521844276935893416949490677452203208420035116584466872701092331003424443373357444039384398683262116706167141243306282707969664684256896050804402452137652467224373026384973136642335376850636091005505620011176658426786106961749779708842517769189280782135113291260184236777115730636911469994079855445854038198841076486335242234013297732011836574681518154194126277867377156456083889639294903560604995616242595668698762125304140099319523656503130233032287698964620280061681853799686522959143167344988865700311995588884712288633149523085615993750083354692872781478343742509387334571440591043554228842753697320857034697859907261634631316015885446747577769201893092864821884991069704447373862639789867478552097653324319234647920723353125463884403499079744342566898515659520743646310403586879093387622312464377100654638898036788796232796096914639834342091212040724266673869076791748429591871052661921081859258474821143695334961405955513074410739603146650379998213342209997883485509456973293258406669585642399932153078681517160816602600856059812456957151623856959077873807912619249808120501127522293414090365570327609032985771139908887349449896826361624357190735134284315416359857001021640234093663604113863041089576325160203581024898114939581920421821491789014620938458240533354535453393070873211735060468780300190577059740971019148254664725262494940075401828224716810325788537265276725016533862929109646239901935684017619488907790985006975350798733950152080617926566712077960303754148467362183329473065121214778384847487949729573227214341385172219835918336130120364626150515001795308280286109475765211884112124436901450176874845247141853990927576880842634607217707422202911446523901603329027574642420053666752094093031611044449822982587652401934449430367266674017750930991505252625812180559398068474284824664816357974529776048616526841610123197559385924175755843725473358092870654598252779171106872771511006383080261571115361046210578565664371191716179097124411162936707145085330398491613794238052852729444503112281956340070170589309491417775043494804872599083802873418343263237530106917416251352979342864410965291307241305013665747526921358425959471215413812165051428075696219145958645327199125447528006935517501007685766082526675772713648316927743235669634051061190261358939174627235642265861555227227105161825466584643210537615243495416573780037065693558261378722384276118082013229676868117914521849485592933228676175451719331022181282381928893224650005655588407642447906210611693597341612225207476727099514718575488906192302149134475636880831075828257691707952512909623677784795894028575412594091614779777514510389894897312316222980417026812239185628512789606346553101170064308054952567042695808210646262125620098740236852449491334564724258570813259247566856101829748190604461184737053231884779813224691195987560393808597041177562269935173129969039616941310046886077088088596712837696664424679586366018401192288388813923260259479910511269134009220180663473521664761675980631465232460660818063034964764701810984496842092538385639320921344420490944148377964415876594691144408252350156061289521225044372920960084220532516700065912499104496122815837756238075442315775665518492318450894552343903151324679316811271493676369166484833127529679987480426342417604296347205252078357997026230801906636311808000693986169647918910704496291446722511226617387201010748288388797214029556283599650637751106080591147901139915731637182505325091031232061476379779197731941004679412613065470893181356856290284823538530708574913663138347083353653058422327747621666001873145952317957879688133183938022106158997871904608844059067130903493601557103107114256400499260288126018767227171119305111043528307293039223105640991579820739660538460805618947827982589348757623653989640113369255796400800008341321521804693019738350559454105823892209553165129826522940091979717861881524019690734350326917666249727934138851508848669846299797326347859010815984366783991633486832580614043826121584685453241685749173859357948612807078253952150529609574940674894158805828400721454703286634089774940797011373836035728797158503464277032584655136939606521835006088282785975449683414405130984867745548678635440600506053665482321285235860526553472106467303744609595124000692003513513490123332521290221755628185917589528393348220607014102703784156009059573553659154758414881697046230702442947394390642806190778456530964670663631321801295587437332292250296847792543486978760680163140178709613032864654194504679492671055789265481209836877106069173091558356309060657624942518708609917539575206774782142932027884838370412567233091763132325337072602459570969354179133654533607630699863087285230150182153665388229618406787059138325426859889565547007924333107541613460134536382131507993236154557641222039962998941810069023896319287688979731338123467081217989533348503268994721887649688665980652330821995841950461316634780352351805213154386160915845271848326797670712547156169095121229211284389970772463360964014995572115842666743143155058065082938268264931520755679669232060687250357003211848296233407372447263436565871977794818418433162748152589706546849584108598108199505929706751312584686422936268985954253577450775280690829968335900133625810705913158422619449310200910944400572269712713120425297999448974463660123092485163031942997255243551982546030463877724756555500517109312379034260174583830408043750060577051704845588991215265851487461322159987887882360649309661422589679479724525996222643076753906383009331427751514336426347235330273184195101511507593955714385148042696003988072929728792119191533491887603120312089946127999483447696136860383870732659112317743017379215001252837061153046839980197409371447159093967671355723168865834867710869532510406829614615054570394380268964772813720918313545831790224975952123756177693286487898196013284528312306180062675393046390017846655785073549879940435214482661208468728557555827496868599517763979280257230766118057595360758532777250988066118055133736415905491968119983570074129815512342220342998568998151995268950841511980002603682174443260867545533535806731428761714718823486748811891131205966278357713592489038457325754167386834702421768726936426196702014472834053512721733618935740548366067102415538437546899239866910607342939102515397123665661195989542980550823833980945064467126648568920453735526398516962438043373920727852690355550975495492621696132942680713477595747898228410279303674019001453651509713416345355082617109847861623778829099907756349947385544833363952093296477804824153933751977769057830673296484332274280589464620958635887409498217153422417823239471635084822248201124166701101974695517239524697493535394082731115317564113938444235214139821822857845417735987052418023597471937194423532019123930038095786405511136803579004512521942763550097939118842056760941407808154332758845088334147939622035935876496781440587135430453167804974349225922527816932848245952327459655480715045494382140994784583748119256217005664048862906460345645993028262209395556405147246051390950683087160338527302450776361465426878369261651936375796397363918299035676345663811652909293954670030389231539478633024678500871762678859283187240650380945157513874423623560112060643693872047041199978071083954616006206825400174201585679247094385900683719229299439260077185165445668384922688115007508086944332887412018280239236018429251139960820124072052483560105737252673955684822773554940377908367311448813370079203773244931217320736767198528980160912135890251180923589018574339324639536740073753969747775506551244105748318800096673641606366680664811332298182287850578388653874588976124453547249672616313128244948984691168791895281546694696420669432325994832150369838652053945109228456741194661431336848203463388311757651566804986090777848938427253943953371581069748472107638432083269303813683410451353535043425846876241895918187417508824264632114438795495757182383049676481718124732395800628994110032549807708090329709868132719905609828600027904437221520695026917567135653501374647860569950898882573806265950274519579258769053235698956774057405287584183441138049409275720047801031521630210376910004794491148647593882453308532323611186025547253947493313350940617138134694248749761328368025543271989994290381844207640536221849629927790324722627145803271205668416852882328845729303034128931597192663798047266372051055198197279271710813056275550089396242279570907452832033774598403078222862806686294060126491375551683766607798794080934259673087560780816566639295847148258037382993938045213167213709314564349200180022173864353865141151007831446135236915478207427703552530543792519102940458066826563696233410067881545495708529721406274110898091495867663643327222117232001431129642135293745901733294492764102219906097509906161482737414697243336302929867622739373580599119724727963445391070911682977295827623315076556675284371145106365155791033060925904473614740748642486598704391457057309116764693615031881669093448068693099647868380083875218996774863988468198622510603675473672048288551448487967353972278685935032928992290950278240919325892219332090435361884945519931545951048453447078230156780128737613005259931493042182157218541280237618111478995498104493851270894881705321360857802152505958722613866686046597361617517466130685479012931519749490420478776693503546833193541576975529612553238259817645724411793316761009585473484234717035199663922012194941356667305831568379674324965772198171595365401284830472349677758483244735552800343773820163226635047118412825098722709415430969401278801145697690964305779027047044462019828591015741645442047458429986417995617337059319381614676836470340102437374069902183123703823000958207321484050004226021835249528616269402445207088204534758099656421100557933827272139520781847558026093331210436460362928436987471098149936333908430161101474107362286168101696422965241206682284966626655958874054322288969397015586091746479905192682488964812218295768518607670801782280752888207926715293394733858517519563881092792572716851461942422690354339730367921749145125741549895668381809058942514446125306256425103783019007936159436026465690957970003904864264629938593121254489880152289748249179292704227749990106561956662094460642147423799737406458125657741203924364114185420201333832849056391930048306449105547731334225644814442315337666847356029284555071417417729886088824133596598408240383244081294273879541785670275454429046760175418336551319075473635038351323189668377632840864933041748407494985350686958536418219029995467411984626860228200581992935136147666120938749957316379596539824999864873957298317854026527775360508203619914461579958058740211693173737519922504903192561496961965624603414261676672735039453926544547238859740321870293952570702988877545762283348152181847082911474289873119489457549942768458440835978009868709059914362062078505961938618062619736344761288447250448335106899931120919703564412415523325481904767621116859584018356376247429540835550419440339483319447170067258323734955938651203480053589068302466055137677152754466409708877742333076607921532696376464541957251981271997307139965512638858994593204943751312556209393133940029575893780588591047831693184222844530332526806047751287463282558688610503058809114132949043964935580183386686918591554306483688363395674192728625898935625473653129258784547070879813777703442005412915419336813746336835498592176106200347901933299964601688605102794630555360447490972696905544450058838627767755011672218709522948411463093996155442650295108993522832547362051423503088441229623707866673069950676036922032013195729078146929560005731090236120667678527366546475955018809123333542776554304771911208293119982695614184456010971228166487373756320515799268203225350171067453039512954874684605319976220970224407036294223174087225199009892577507502914037553760603956205371016864190507012188475674908269374487819092708818093176972460223895327372066665757341109770603854393777911202831875610810631476616161358871945961350630863398233496912978226534279024440885687277546353669977599515288311226277894792542038160571059994299445951567499082366319890165968058376998798123793057535381435804507311574326021476757667827042232844126459059810028846656322408149787524622889731039024904864237627709496027695221919599257330155661125643542803574333705169324398616854016952753701632276918378101259578536396726156961153385733534219628803623768394670159785507106331702281917882602672063943177522536426477628553092249138547834497524083592053998603183121426198161590824242598544792394836507584775573548949116565695466566950822522255150158853029299441295291372297486495266693734679357755764003136135535175021860243863601929251870552933250754787169117241784679918362446726318281751909349586482869834888387572158140510568124127312924178031015360919282270838191153961241128016148125132494412913778928069766249428076680249473940043663876406891293032182617979856058753711913605188359229951808072509454047006304816419476459114765549908999712509935370712351070766629027522411349827724939368212497743717858408433557959601016137225622473252841740386064195603629773554651196396863017835559625472487048456884942446368059812641292212889133022748337468729376997962070293957393609853946313389045591053645310513468802662218491893719241986924751200113054395772947944895058029088324855778463731647441774713341181185569487888769519595761069772864601092494248003211882711641434094745841218915094981303863093047901045365743319004347962997046707281370209346945778861843834046373416260769533119602852790277175598288182375631148831473166608501290785107154113167341996590915007970712131535974318084926603391914675119859763001187840894815759615294474427883778692109466829800014675289014185278602788852995238030269779328532354656501004555173494234164911992534935904502934724169259348142180302108388183276795243798714279412026953217908836367031421279230985268794568339651333810391572025769233490738321078624370296545019596794870683464186105048269435633273766066033440802143508455645217750277460222858676901921181274022868894180550120383260693059493693444669398383641390148432086109268095719328126981221310148353094262742697692939400118915149550109448283099019945850896100116264082072861748144692874170142072937905638466708446665177109518297766073692452050993606815968323864954278815212757878336344975127890560179363308817750268203076899611782082845054091676338068963721731054600804391759834447710782810782220921294644633119874739230801173991158118170155935038152562163458791153806765712931478307171226548200964807003269051782084985435843761139607027749219471763188002156940517934224392009518829104711438286999587951124142745187393895236427110993718554782181163285849743089390118117504290945453719192225683245577564608472940927331838115174462614485896660307102472050871142936955829050738333378200415457782312868921213192833433488079279149262333119254211379066293132412670614918138741426311326695588275991388293905015219114342944346596640979342539599550228218576364427958872347057066023047045322780530987453514258556815884466280426659160914502997125306508048510440456075016799412360741859305034714849146270991549051622006516749132922679862730505377853160083381877346508664493877101864987744795713675271583615391796414532714138457598371641280709565204300565390684066245513414020747786342000354008605234607181028459586241207488318607104947835637233596454630859227898184052521307331447181097745680033046161241606068749059195366110427710288768832329315908044683838589737627456783595310939587828962651848590116907905964586314882203195443024525032349433817062930195774446382278335575121678962972520368797072713688919749276451932965951702977367024103395937031707703249503517484412711895755442379245387842619159950176982016860303585574417522889560286678086431265281300347014673554206265360998957275302334939633539202428957369963053425758291071981930517586215475745006060985591683682632767765035234853598533626045227531854088585816209686453887227470841505937874459634952962998210048943400263311698869351678483312258957137541616520318563133100254878159731023681806310773104095006244548031615132397254985579231808356276875810347075701340352893844969389963577074520736853435044210115574358632553289695931260142876096591670403266495589198833155920341931340286246833979874204804714897703389837096123382258703302706254057560233402182632147471497084541757309564422546186763329051235558845357575533186035792336510382188471313608737943395260010572616028164252206521517785297129526523333029886246699556830443502724005674979381136600824043224623310478619905445390397144006984439966915870848356504444114841415428349359217491575757377888910470661794776068579769335390813311731919933373189231097857160824661306106099929202767543438142436199364989340906951669339642658506533298641044313245284950915958824555540095749293769927797540644227214823105963364434484895581890355973670403169104255837508985488200639617744665313102861551023262519701231370573756899400239051293192662324246226812920676383096136029503785900702339487630550121887594426108481348698856102520150109157257197043134138788351122730018045657888416971093813739547841981888557033522171139214265836934192324941872922485545094766871946032937364848310372237727720441188301727705053983842939818658691865219119144185810339250894021757179267336182021086069944306634715844605471528540748341789710245582294795096636703813490177073040954567115840635127470472577148919276899840725065256398706501728949688368618441278542653440304792956970623790520586233563698261567169912240796245815969532948249373049938047231749326675688294029361881232427371080457887060157560385634398791005412947741701587423395741689417350403537026139111957542670352763247360836141899495000522100175581321996988695494023541634216333147623639939410037455095160657633566401290600502352270271160647578032086877711797956965792794072410637312223411492905917830836230379700477598265859189866347017491165661459779308745074724380735807752435270002386369476193619014600158673010387885801299707083636977155750541801027427935530375216192621041538859532757095672230028083171707320555738966456153056431975858413862332491182057915019619751735279405117705840104413472458047482508681537957726556158287407221875495901164297229296127902863162921477169349790070809268219338032404035908733233776306338464214829919927710428030167835799131845436656463869474559725515936005130247575444856345133739639212035812563974685900621930119270708079919146520661047513552715333161569376562087581006941823395222974841551384666737469056168215423222794423497647608564563607533102418970146361218869234614706630816325343312420518844013561930756223812483173273453899495397313620347603660980416411831184017740107509248356612497171218583111237318346386508007317317740544436423429090324718551030937229975068312553413973563256978429691232540662614729824046414262977686723398193731013381292448965823046415955493102515760320109778077050143464644676355235683103463586392133501026575268605199456570767342084908167154785458055406841104024987809568143944242600198317631695494242315424535414816208895673099031299610550963111676429397247679815437925060975562510057491752774334397547157573566237563367407868397663223781775208146483232217885293792594074903073461403366318421699770389145631828792518075157835406315046947843008414723266969367422442127879165011636925362277677784228019464391553197946901773403599162739428281652400866387646368453978575607069435292069537214816214915079998801736591663508294022534799927465688922962146883807931987142259889512685342387926119461774635797690830663514342714402992593142910633979716723251264052066152093205725183446426067757866036190488150550293636776671768404144196473931317678578921408217984495688504621731511951161569927725144926735479066563791309283446030226723846694525090402171253760317995000126529612488583941624147378736657708026392447287303184794449210997897491700184214200849730084129035027300492128731578627962950605195894168020971506840311958871123104278082276478182718048976134074268584483086426239416773409140252743589844213469475486216738882831510517763922112804547455583738536978457760249275153352451031585387278238115239740395959644515535446266432231816194483534306636702239425212872078221266858719291522621302120796678931612249921633409045509874306161610241612198315775601971647388376969482253356417296610619667837566103525102541494132464810989937738055554485770909052274698979602420673395037713712593013033376131564783004990730090939656306617967365334275094528003105927986323824158929897598902616740418028685715084923605283312089551491384331047105682861047926456901756398541340757874330552239271012151479008464480170313436140250159007285080974961220343440187122181016756507109852449378386947711874510478353245457875001689883052462206458430171618670576009228564109458022576199883635997530553604726793975073017868567875810010634517837042015680069799342165382352263500069890273066751992180140875080951066406794749914175257925315474104423575119402844881859532772458899739454202456835095724953318107456683347061437416853112195352747173427083388824118920570566000388289048548356840210032509271115517579777914547477897097821885317952902641635846651293018469277613339342641633829836251494327273336753234044496880227669247998182082576609089890816727887780090027225724270370528843102582590196872773802297852498982502568378615117006421564092952522956504903795972886299927498092513927547664592434936216268839738792727860390480991551523128215351297472390129413481646357925093205299076100033147710370716143862241369312474258741802670628569868948780845125532184542908131260334505223547409361170362786752326398788821082596232485612138059709284097157992953832870046700751931144873989405704674580045947118335084766176371004961834918657549770466954433882215193872780558101993199573138571045993571285241375563673613992232712580048363681680104409509564229728967108873240280263654676218696819156772804894178681709490021591930455934714737642422484877904940280785433787710263102647353153851884080464861327740668318332811855277056353085428962882605930582718769611884558499586235936211251809993480116510932775428562537887504126016610564947063675416783202059194501013525694496342253105624403175552898238654200063988429640362308220818988282489663272201449322596634816682848958822077919683489184795903716328683984858584259550979473192295934972181286525541824974521073493217239081478757511145673763279186154706919861428881665664627161769653927400443172687435575019464501581502696876951288550152051443034139004862561137443936302245304927321087576562281958734828670989512477149886414665528789675153761378351860280796407504757834982960348486820718770915574543440245709164936304471050497440551454661671665155382241228226160483008504788805362000927438428255928117243412037938659075343903390752170541643631503867935202076237329030796377957253197654250905560284291345353640343928546811036534135312665850076394467897105585333493873578010265789028352936137665189491645298249040380743764018605094634669131113091441632921019362480915147574234234799433862346975855829212754767423528721987012998500399025733058801318252570594754839474032110701515486921422353224897724725193265686148380277485131974355128763479912431577649446928175444754199917498397185528028672769208144739319243595230922228308014173250388168236481430549178391683468359077309501225864645287974430371431691087962084791527310752235306794309077833870490536562401886399228230418484154071458270828565813497668040589601818664702015847673016978307803834640150264451945921800173557877088136397420699362788617147571378363728168736421094079437120144052958522103052003560136818406029777285798064174745423920036340010594122053700652519125372837974132628770070542875301358922415465104874334761548270122908376708821601015353053828286697127200824386286189807478318176980939880232017458992637191375462743403300059363620427401186275683475892488450502204335374552411760818119810044922075783571988110229885373487568366903831811997683945708359989768515253262763162472507230889269373483913314305908034188930733121215235691307163655819307009220896839233449403268740261650169089081193082094648514592003221386457733023283325759280623369983998598277429577557513751099637391141811278105299226529578118553877564400887523083439195208844901974117265264153736589448203772688222977900215257660587040132357193291732464989841398251519994660301110214495832154082257502967659847976976541486024167879386714134708351874037878014273050821960035681408421602038502414674384015600052697604501320848701187090909247477471403314105548623193554414999856550830303148358225902620230994058791518671349881390944310725511610358325842432443404869955738875911197445002707420311097602111169366481576392039738951826661264578140549027406539870249420125719643971185093642224464600789901761000481330551828075761727006439788096740239584724559088644917919270339812677529156336678789280392185147396451734787721736326811932084558176364246249830975991794740869462628869409013691771185861662497399849906600739663347850095670123881920687124871479905888286167235770946369191545187445831637110370385411559621527641134506087092807637598676988194562483528498382878997460271656085636393136076475006548746355594331944776767724119997600840701581823059145139422029672006537967273871805208155836628125780844637102795559712147811966116652268316639120558262265028921526014855930767784888278081595927132355140146799841260460663608527619727342608043927478218991896353016810612187007800643281223863006109555707590424440622674637055377743283875722461057324373703704316356840506580800614328226078568473577228491323619263776076866119849208394168404832991217557567509972533157780955544467456798263244752670914646492330664513434347984721630162215336626540063514786879955747031114408980405931420727162713223730124010090220211700050309025127764048175771984681154766668421857190562147637852087173770609840325148521948354141138989204717937703119329016601100443408516129444549514168614228503540197873069944453347041263901475048293154606611293487766472772385923714862023025536305771410458520211150638478200750528867587706051981978255849781285227275651670224489991026629462918234798064468336980447239935143572777560976059075149487745173186728825668195509000518578997653391789538270822766115422163244143785663191667740505490524903710357453279180435853777426295842594149580645810223477733876956810451441529149778147582352392713621590994490314501404709074349503469424445385595763052134735473409722447933977469006292564236842571263150479582715305357772793300006292223341903639255797963719143677230828219618583896707759093033999101460671441173336261917738553338835795113852988508702792477235129972416075141049048410349622863582427230206354142062966893003300671520350080956136769877406071005117559973262181874260097705809623695505138380774394225944271044085553101067124973577610223313968077408529602054264644674049556080798008251228313807009490398675202019250920888461309759381511976001491397355030222660222702832297276987441911003510441699899332768927865443050455971887413690755234676167655222417371891000966047832870501815007649901122114086398631348105981165362723609346604054237144785582613139759302410834830499478985377940057898258523312514764262068414957219262136004608383806502945116314690924116369460776169563033082095265819526434059863057626242972946115001244508856127568575354361213203849905388773361242661147068715662048622151413312781627255520114801351295495370627259886162573174919238396834343181702145203273196970830213759048860807619083915082112561802724489865714336459746924752965047494035074922341002618178779672580707921975791658268714302704595869810523551414288603326806881159733042378111696190611189574494569146177628977731578674096506499952942358976466675079576739479643342478926524416526220424863111167261401422151766467028057987476157855647350391067508496267763502155051532563647890396793849344097057885601356529599343435310325616794568376674106553974217031237960558610347958000003099648460034195996416770484389900610218394075656222094254279002078096931600280454242576210000309851225149244615044740059098677980877696333375737012363033880927119923235302585367187846912624583852084158482600554829117623283709922289775010763969242428352086144747413642858074743993188113427349450706675890491988613530576595041503299193960943390169118805385891058456903291332068955133386510366500344379293953544042104663058861734285258023135687111403837337442783085981324870447959536250875491247411310033001217473595738518475035556536623757111982095013103967044307030022901223925002486839176515532161398929400998466371907660019378313319203510310087976076990795895285749217137401244576874179572487222130556195346522377269313942079526869322032136243160696193914879270049711013559196595076659713229365390001384274322826884940534052307574821999803938680609215669953249711909273818931161776205587535449533831848187366732090989829404798078452497917980829060349548409069455658709090070699286186384892918808920956427761396786047703431764713121952559350985439132437339672155200982093694012144578299970144395548804442000124856054903333867074829651444588347088620872191879500562750615446666456181018750969185282253871669932401760257540122890798618126519570547515446357804660933742259273842396672954217583717606079981723555587983821866571939231160388856038116774631689386203574319971528711068749881773442940713201816065379485098989152139540695456269285467302609983766037484009031127837235214010100549949677673394271148200064974846025894678242940118471643952057158277745530721960152688332175630680055966129771973239629382420438168108791657171401087297232282151612182176648015887624452983280689166019959804570298726872214342095197566921561322234106690850366475331529324001935829324370240069247617586414377676260504723227354288518475097204644241163796948817663270914456869615335048691740359155743020311382332048460133133216539207410190678638292483841328213106624298303105684237692303749167534697777666634593978051686281676866569959007344804109539571549099722268899754739240100562686996659961063663256522986213307737567399932146355237032098325903589669627983954476501666900146855719132174504178499964328094469414728143851970829006021870536319383621670368687098920004467886128292091892808865851129857615474145282392866496059779159736295179150805292319042874791153578505260213974846388670463116680994597306684012005263168030046960744416216907182925670913528549707503736556274913325004084550346742778473797026937203754117068246297911710273573551299476306096065965566096872928606744591882722869992072161791998747342269688977995719240627451693397580765969307802144567356747633269553757123608492573186579742124041260255762217105059999922554130169258575113440260463812878121510651502490430913400957814181933110120577547993474998871941411167388569240665213143406277420671253235327526518162768396888634029105752694889652677497280766406264604486950994079281127788141410607448666838174948197269871297473426421348082835852846506588971068772615471430711769441840170908553865044000367821119017463567420965763798986599184376601521635260829907066397029119034909627994196752984297582637593724237462739088102822935213335718881547808095079424787995048441414038063971239982619510705452799571463793639265861793668787188874845485410471942410571507831087557293084479658796573783408507330796978203998805557269282689452356402239504654673901216246269632436505513020881494817418442624095514210263134534036128436290174152966889039139597371509172196197521389988634249089197336506781329382880332903666833889281689377327907964227340063962678860188342660070654052423022048934703073445858797665322189505334482769947465198827123447236684621054220666332975587180842203079132385583717087884982767389666743884392276018215627497147342478340396433266775740595902155925078054244623510597471640127836314697026469132845284206243299171831516718840674783140823244104452005771019930782744098241467903321780799416844926252098940748704741216696346962266842769066928234265420666340728060964794612335207857575916973307824145505497904967694227781775603312181804244754423723552016767263157213734806290865629630867151066684834566557304438753685291661227987270249344939099209218541664296402702347495133596264274668910448446648424739508673600518730016694268164393306068815663801722709500046823206095072001617295266867435025687537260710702703526772368837517205876440510028253141711182614448503903460433243984787105567531784314058139979042533927280490213191004540228774398058407630080480339436828350050285822909848225480320568357727968958487049391263797608591511584007524093039931580540672440112135085962127438800936912332631849679394366495089399036645748544358894530562695096108434044968768996144076527115115742869554112599619428446598383678902330571880672105098906872464395974185958467477128699144582351918060033506083504737083396793730713956121863165959969735395475836446389463128944057409991035415832965254282317880472412138813578239839675217456256020428104782736048306855817047546262506292385229936122364675249176091591938107332741873421135300378896662480407577831546733168266248353690848242228959219538036335329861355521584600271421233495229217814505653524223859991781737036115628882618559477147716156746212958485020670636567287874391685266429728834758063977796291965681726477681319368289405466865476818518341224648611698050467472123758984124824340894903657547209524014921959371349764913929856350803631781226831693174287632241317740441475904590043973688040183226707914963587263066456445583268004404053761453769938341322077608378046556782730914454720749384866019713676242764965306816026288236123624794842832731698727710126407603356239106476181437279538090602081975444398721642788482172108446241772393677460767182804273789592156482071544345944727839442087139592162709665923845774740931594986102209309557993698396926130557079593856246811903808508420274458620675527028732049493797420809569114534687458635003637174976635528217867123628054909987195847172672259522808362496829671940798204812089101359843643098454008164016692185906339432826142028188994177686081337926371853111803599792237566366960557390007063550402786787138392960361994127036751327145453661484972785774959606479002864955739248682999501803723688118052673443236878476193164446963946491478204543059916225423806734689597950194466152101731469610479587577367741025497428069974953351125411668976405906322446299435396294145442547748293149049871521131140681914902468510044464397613048882638696557229346969702665280738228039059398615154807243622749506532501813639494258751119251419802144318434543261513950873957899975891714866020260842182860280598149090435861451200800373908258816634811280582194411146964113059277246559697422107493267663935121482777276789197490364075626378998374052695792994393613876187017766872957009065045563001633508949750564389620043765444613035531491802441653342579587648627900951425431053450104288953314871812036190913658409370394480554339125213811840907855722576924591281842006003330036958113217611532808845444126262121415210456987015968410367149709578474960972911802100952368651957167224089948963488607428506452874015593409416259787636345664346550378160626541569890009844869391635820851350713607269985416552115663354077485518465046779422886931032394932962352542579079307755531909612255541123595938735398434241073866296342221220422173978657517212945868544583941834160694863801901550748769485289760390581069862701402575150267957441963383904747095229909392279007775335669011219871336746431153117687031749306091157423444496828251517641985635088912857579409503256068242480802923397641756573943613674190949899064424331338085736081059797992434240982260265397422941028570095023791855844182536536972105635108364868907076291794283914686706661627914534855410319718140080392625112222180591773255440407734299811068936693687565363292484080458100192801473350257400549086818228976144760267054301482161645751797570940154272305199484515700109890143450586184170824034707920621540147038552536544092521484124889304452771646778249338185235695065653577961532297411222191528247414198105630755661754364018054045713990262974422359132458520411844751147307361702491693589319348649262810372899678675090416228035578698381846502390664611871122992568893273457091191292021265064277011822872839129162578676074849420175113144968417612199677862813944271933963630957877990513662817862631076529323565320909274650076244611346091851086280493522330928213577277747631537256439112798743608330522855208909202612207191450144685814184094178119063832732245180300066780883865568850852461798874582609714135678795876688658439411614363839949900086915943362304847708471353893007949673882222021985001001481441084965129051959227225287321181526233133597226847755524238041778702382558120974148534219680957607797798433479551025504258629630375219341957931526395160386806181636512422999705668586113902235357825987130661224489860984087255502401819172360596668371303409126984609345223842326491065409955953905568630967297322095920678743823370034073779671107416337470915791400323747615729716319168769246634234517070795990343954104956691290924861166956742938730979672690955008460414648133289133005225541326761952169644979626335508978490217307679129786665843180005308058686579709156970493892218151232832852934008672661647856859913570343416310463584657612042192100439214377113845817704031980740541887834783713704702277623054055338558450239165954313851213070326009134127699478721437850750020357683683285665197676280119450479907919348970698036555264655933347661769438379731124554910196014919813436933482320964308141668785651886445215994229888955912627131779066688853772374878513819156759520033365681656899385856529118797664683171460081049369734993062176451985228489850216955545912184190397164820690946643586014368033251754064048064495023339813263013473072002144324410581729567959059117213853509672197719170349520487182782112707296274227370745711451961394855611640621536062665658727303837003019192690906835008716369697325042121840662929206654251100292358251773192409302805498456720981993917801395268220577280835102485273251859199877263501581729702243223004277184359434976322150122635647953882771314088982133970202154879530976168174401879886039799796227997091313544503936489938538399542199819924649565866307114209044399233316157040414244456018430072564449880474799412391258033153756298806548749064781511800568504973566306347087392062824094816749604655532088604833921593309352939177388751034631639699361348644560134974156076413589290241674969518584035467630034954821813806201802177448846898714089592114811938916577814712293641262197755029517960293010335695160730097111473206526002715588109237385276490117276106072434528597672987931132948978989654884422464613212386611344096351994245483719613023354371772655741270903747821066764480219601962844308255893695776177490246348150556678860459520429056134745336608179212613250700153488567420045597414764828868640890756555948708858666927275035144797715367190520666936620776034363561298400542098017531777408678768609562217395439190521562843850850939642389361834372399870224199359222765537488012696972322535043555778924464563883341544803988461707653019720987237243961141664845809766147142875362279205999259434983590232084134529323890416003695938911769616360764462076570844934116563584852047384884166070559502027462196449164428645301803541767327244638647415656406262301668523018411132238523815031588725970524292665615254949585524991674331145720995007870563088758017275203188738989628587086100121511460018738855147878572782084451616446372782111165298431911031132714731346258997804270672720662913232463720799287990938578678770918648293869232560108455943487827878001839959388010626433192512496007315520686934202661109692647762881761751480648103040995342984522542851115714379058854650070642347205845436066136899545196721821229045500430102054468325055267442429924666673964667059854276322391078233136280157769664082153898615550315885132658841841390912277007406297250534919734868665917117089106027821003882295460319869043744918481743389447806259923486447906025821745240063903772987257551875154938146236102434505789198039491676951429897348582456208753142042893144131817543163363988850747343564931579017763376496252128082801078941403747270815553442883022451530449641266666416242180662514545537480607717822003349045658660884867673789138759892508136751840485593769909277146304981830886094108807720069912613075896696458043161450141607202140841520518869351659166037633123072170280906579041134573944594731032993200381276930322608801888835215157902880074106866768669570340342151157511434407554477894807697498376505015387025307305363576178604695479513804060013502105877073078408939798713630255021893708873497172797935565562998825939634523465495425411109305226417851915460048623610938379608792562777447445091175512765028976824591365069836752463113343306593054854665499437848327124867746470554112900502451203864926968545467236097327492031178753217612947323038147625772519205497878839601227799516442758895637719273605762654098286743262209553263943727879288648445816344364838201862766758369824603920200868401706716769018760404251795868112672065583180450277142641496594014696447400512838411897416061337609931946558403699227259783032736411578476619482214360624233135203945371545621358351418939935410628849120596966225055159773208842052994018232784758385238913199821762915563429294584207114758699410047894348363671380597986184023353819738868882301810751609669362149327639510910090923836807123200097030843417162576327687415380974988528383399692654856150893651174052571734866122635166952438913020734624089685642987157018629875215797108037663206093963465852133250157847766798994805621196328898357035069349928554522699714572877968709731126220961643770813289801361987179428124423780665595120098013587054855742748596436976110175494312494327217526154571285118931175196472957175663935743717403439770908543512239291739889075898318577117310796695663271821383598476832016326249539142231270270535512491970647556960883532638726515071604661753049456461711095867528485800988903213211140890708272037018393870001161906457856163868299099885038355186499210020555957930621662958752405252426198687205007093702182036508417233780721736957588985150082622085884447428514225249691922359772105815928973720979997126212356746592290797530505161810063377112393238356459450686497446267235245360153694646897040287806562774557973600554293469853650130615991510495762472022022681877117979395549828133690251724273175948468437617915366822808589547418917220759612057145133618259815847074024110864121465250875823162624947315511452372573616832665057301116094696972623742374762122548824729082655942541064345856287690562227339742357416724674412821396408651873543649719685791009473915428331021676320364064023049070171855914045110568740806712377731594643152604872480615106747752181592360567883607888459743576018673257106237405183933302022577444062361899135458077964670887881685446016941956671960970554632267449076969203521156350004545648871815219752032621773948915421884676809940288027432321472092100695033471321940163448831836478483736260534509072828854645454314979496469612821974746250395137809874283978234587747073456450458454337713089779902047690761628880870749717324911447099862248395567129715750997850756693424490194043804284980693769825660814092816850748556987792857777207971428433840628945621839767965619745140781880202998358423158754135286424298857251334950732500815519131964694154400218206826971690366499012742893271603192253457251795726515569669781453886837016077250789279486792539170226265771433355262213761250357821306848452638880399559214372103571148140646455384194374611003429699314980835023080238456420714839528587836145252656578894499265140338179130847156235498286616191865043359608251471176207220807977885867860167211080425357832700301233060549477641574284773420488934606335158382504895202384348826949953985783769720879250824204354155225130359627207876858287551770927469846503050385514354308244997835451292504152113100129724024047844904232933900567615898352029911850304547946552263112259185720915258302223868533128823328105472878068450035899712936974057552497369497522779109054077490162659651901609914353982823046973549879171300041405495766785271032916197488333680681416692382824621795165253660107418611973666469082631913943346902306081619646653783128343069192393093671228435160401024666111213948987531402379698351052769592922132947581732754004899172479367929341132897105489893868652726316472819556048671141922095989912170645323655764142597398058629658815263089442555668107540427980070507377001540933460199571682528864256513495629884396538685652976834397143328030888103372554041189069719217980399660485589457555911175280120427302752784766547378513338825757233277467045942464559473558853810519430252587094684899619819026837018829471882712528206109748970242308241509524636563592485623824886238542001103008010147346413534485553553598122154080984724988119207544031595660810964868682722951457099974432846957686471044177730941707663746597849674728904320750106307255442556399583913433559554490388015382182612824509925311042258343119948709130129102870316246698748532413692293481013201594260663685608702493386485847288479229934080958621811769675900869188977425902267210553226596985795073641168236975407462863490094274821636000919322809002799722011944812522531009817335725998321752141255303174968102518445893001598157072712606473468398954560304858911377598509967498831660081040812765898055094948861484643275997630648384572087976089958600840112807699615887444134680023764915917242757618011526976005564006322113369770626666707631623219595411026758319258979895030859675579595549400706268157776297420974884371451081189255509499776368831520431152580800203608562543228618214794749613910993784388920408801175883698156663671835462812229560219218322072735361509262376301555083362553702687434634191085785375941482229625068920716670881130534498349458276764504125600704789423816190053386356883950711997479248845324073233341278128030297385777174791317641657314688569989011168637022511751554964198740804514346040070541796460828952289778579949617357424290753770724749004070791475692851964881667316847964570143856000282065194646616106834890192287478401267452104240080763622873539062817074116846416988699799046770934196781292983846183718413231092772127078110896045822798425991240585776490176134799685126522101471292949662751524889913675470956905248646753502234873170327244721447340544555018182442660546537892047219118486106345005359065826407945258083420219525737019422088319796499771060216620117216237980881047537940220110238573898699518609904079668346048139915828473608222488302915906254364139163356411321882622174441149554211439103298660530701086579798418097128272057189367249606140079796167490316500349366077184660547809131948686316303951325464918043362147856032065264465580930888746804214059640602663363427113583668945953647486939397556652197951174474191928521098266605642382281768683430924421041660314355958900509279582865912001753101844516937397151998916529847408856472678736758768295745411347395413207757269312853053114143355167997535205382156416915245170014058204999607954081966631435168585170224014694281105303919351327756423356225785416797485964628879027698575021431463579961103366866558357669865074078450128238830604187680446533630202151723678121818519935104882649328498999792681639214741972793652281524690823905835921709241828458200060548011828287733507555790092409944005961873000959057072061238627380116183470202045504069067875724041278952915876467330445024090435610508249159943839675864277011864012112340009353573748845830594276641467060016509532771220276673109738658347916919799864655450180850511315065655906395566973030644932655065645415630215478087345313055593645050537172976609558928454206195105616792842019375707775884767944566955554779413503337131639362037707828718584635364750315814734403374642282873702019808671835098028846541581292353182167885632519021985247944490655600144566340881771403380606857714958009883669353806718228049954377658543737215814842867048038379022313633122254010187116830645404551853389763829382953102021969617066569884053031469092286289913713602308503674571918026638676745740744315744845740869328449716461357836355234412895581600517027643886294754358874498895944317127802530255079302916275818724500134844683071907210219856276334742998841169696115326632470501662031345688401512296523811981202512014324488168349703509266258341440715450090551775322237174108874796270695905017814095037053392800056114585658961749010206112596374927255596302806213664665543104089734990411311403865379485490312790361913023008938967635743565735709456649228037360927911414274924426982228374424322178027018360480552977339548984337738404518903890657405512590957498262051076061736552179403955144641077702273024791809410148248040791306457274832699112101968008830036961937556600892938096179486675622970723741123971343188772129974802510126966536663649491485801672498910666037316678867621741092810950890371789426753636690689968301334049479656011786804675565114788062848874705517441964848736229597872337990791950753541294204310989734548777562782492637351257306592935325871656911500850823911422041860978526028622167935471574325212249860801945388751894323528788752625919071378978602175535675597987568941514933194269788030430082000860532804406409601651444484808194313889713116389175937624487344009630189698990081631026792608076567482987581185333744366362401235508426054608061666658142429985678519168994561878091118002941204677229596322757571561393889762225902776727371421755486545388375891452283204434477545665891544720749359535554058127253626700890436358777381388575385775119323232767213512817562191437786458835527822199870432234542259229013039791468033328695718571809551438728301701271170019048654171801366374376395960163631809937421024452645028244227769303806299059496474711785483348750260758394205674126452131254984304047650697512477841052076444055020836424995155350926369966247279726557884896950038542493902290922008256739831559797190735292897369467634731401887134363210546799338757751673979327175036971660615582084787084291248724356047073433601544501038714959032333651116363320215132210357805310485898424573292017181836242194389204774544980837939705230290815537649442745159436239501158879368940435915732462656192029932274837047910309925429285079140638761232586690558218760973077351713682650895188093208524701032502227581803081293945562174431858903143704093084866902646029760959248458955201457919728848269700028583038381213440795638573133893098686417638330821509575383941302464872538108676662239202861953994525439351397945134875939370210632666633170991575978622273674054742276385318450253604583343431960560657237644011519404769131708779183273915648322756301251701933848032951610312514385044783922212921746105270324244512769343348435353169696813753436504727552861913202563108621698119958596499027997626422448908876140186340364072587084919309506408072517830998524643836872259497710804823615870996717019847557577634506055797560450966453785137770103577392188784883044533071409457378616961357962346110090515516580513872995843844006986348303905211737312655276614348874881928824669550153390484374047756302596777706244408908127986950865824471869973052910302070505476128616664892932373804378463876065423253782088941472806704456900255567737847568883463684164212435268974150716442997068250810418881936521834824934203171710891385128256027885374185823420664913071711252861369844428390186736569089800983861322195302554712219937923049826574395638749104494851088600380518057986152640717497025886281012386972942915906630714633972942979647320290403642827809172070688712458613244577477142197302541357387246966963765406249338324924649556325240832637905416410905825932740321423456554938325130804396710391769617693177460293252823207347734188390792380988279217168194692954275754868062602239345738074792525920290921943947633338919957320704552302095706405602271620166426525171985915496274231487755300435096766451060168454967964008156457967837204635317356759064972301128668397700586226844745173435049886213210005756739933659706011879330455989751300028549416419280086110884279775785714494705666835273865772241550480094132254774917734547273428717184579054439639837198496908988195038053133991871756647078273534392721439247851327863935641148489848548720680906377163143239575568641390636062493433595669102339538881636659127735808130354897845265379109766854362522647197244434317066092217098307603632005561918903013274921964524966882867583355439204551215261848389306402876153869673764816810895691502071613420670237165955786030474338588610448448524893081132590779924804724121022808374901500065255580123177517417723546605777863282299183459960630346192158556554858129591926550689043695191921489912853415866590761757335844619378052273092646825054009988672308976129975388070316196345723919635995881026932371375316127395603154408211808266575777458318254397588481139544581226082825843613385236138108304893658059091718826682524422599993633429935163326682637552238792728649814974876011343298929048697341897473864231850234003284073037842210264700527239311852315489697722562477623016043274299724961714352851279253455768553764693998681884498755417158802986054396868096155899220037492520195546883319146564954222864131312729682514701150173697774047525051259117750710271832333070125022694450519963329359766939639464778438902203116004668631385782948123572835189470678989662761226384568048683238698969418175485326822771800637999789060061353894696298622188599588079410530451280312597263766457790386992244560673142428276575690939638668596662860291626944102016981447058625531043391660154268325318011877605966722112757020920685584270825929603950837560995091733294743623506292144236156310195606038551235638550800928847812333820675712926770219208486047515024398832997296303489578797732071445521330363783711788019719951957468039121985988492256949847539541514010312718874438529373094537353172286199255424612199216821443666719297480428001132094679915613652305438872114108897185214251838972825432371226306753112071794171606827134391811844219658939125926486023832952844554195486396430577232896179931634504368651664833987003728529615606391389982151912435366634050485092120246418001252498166045919901697590918783073215349499593415508393578167483818603859299013493534280170089054234932850862454637696627747938935466317728137937564235771677546119998199446541938082430829483035610264653607670526850754498749445788603390365903767422600810068878683626107586275739415999343582825471021827119518260194456093800932185066238214533973397332586724252101014168705876166089940803320975801178937134676816577209634126589063414728057476348156615204320746250674841301191918709274056097717993668749725309547376283818030062610063838220436537925964527557835212591363392244889267601052461848665476259767524442522479942468055144046676033622832719375618990701433455145490945556565090179943494535596664670393864119303716892128285609994689683705281016435098590278419879661512368811488971007398204021610505869482193942766052007760421481261961098269165682981972053230500587971973151411480300788582525403044560410769722596286853446410005656614382865560599785236684816506222809536720436668327168587245827597620449091733811530548933113309081155302764803292805959069560291331989178294837810133801442996344545050578683385019308235514876047763488885585707113596075456186547898412148145034067258432878900179962366483869880974041969711972839983818265324661988893199207134983867983009187700306011627433623751213385751847979822980416462077051868428338750928995652106992923630028154839009268711526984180501682816924190053594137733022751582638762819201986650156629801438727523007187218816275339618364000318848968566040241096160407882761372061570125146145177037416913283824696997487076022700106391688799901266873550086157978301305817956472141977177745734802417265146629809335110439826052047491115729960846535090499693769425708527152135790723878269969409233497811571130632078247420304730794155952486736044159912996362004350646995531221237504515876904231939903501646957740967300501037034315576547289914197898601829148515938023869246506634068240848207563674690506609107970999319789422375240868034667847847710306235422641798723234665353267662006698381292512210841250085108360489393898455329502055529561138469196506943650941543455739451212650959870099125884089627814770250325834993794532309507685983412039133672056571263484890615813601089301612994877636394200756711053051108071447845555173661036789973866546345547159782955977918594681500698771004401764126916391530507276032177446829709435370363856242406334050598389530589146780961220651130977233088052017206099600303534887040955695239432490240792882758315961538883186552174335181685464883815910853454985975287290336871471550321827308719040544947173298067312912532929022514071625404005763617209902620332484894640368587031331101988103597757279026260907233974243084302179024585086968674062478702368781271251107243574901556570149011411640350273891169086631586053427409288027032562104430740890292786751709535593540094442742663648355061311351908620200735381605795288588049391680203195499559816908116221854643095305844341604151587865075864162680114146184195859056237555917679805274403085678553322393865180282772169730227626101626228364483591377966203217731355085713456957314178065349187864778109555390526732034350166649311137629286324789600868728189514503285852213548403798982112397371427427588583153159762347380329521555521742710014192518929202881949067760944196716688616607763740690616956638741896266278812102017168265698580668148907206917324067353277316357693118443503620945657732411109172817670049250904089776781138395065520685006529221868026459347499702325612570205978939177082220551525033321629227352898697001333936673286747363697769456082451149018354460005273105623886300693893795969436769828029718803066331460505363654171524899272695720978163046108938058965054353979937572229592086279409753556239592076152703126920908512385796931410639453422601046521095684363973105500206603512513945353003653383541278777961645249503945173621792944931298585779968452657526149669777935668607488387780421969966530213254707860470257602148775658774235821872254878662310235849990403119272869166950238059417208560206935326179131920631370485506200404008578180409643858017648682670641561840023896518278088990186290086008832115509518146322001121453079567755401256560068179556074387582339599222971566606570701938915679529711001685082736952671827117883589263715947533748220921003035853326874725541366758701241707929779309041875137426609893810528962296004138477865428452735608385367425183546994994095906910945548805645721679602673122878840091277214764811941132848550927345945104039360073572172165483371995618115362083889312631547287770642163502179845806354166589789542007426348693303220244473600183654508792473879882004593945285486856209729529749455301622499291820675065533239086903773648372626586238324202819276732841219902038023311414342737887658522999738133705856076161145088419712983179703953918711605536126571202929391573768451830297655232378868905576715390198456914027993505932731814369708284687930214132448800444334774122382411637409827231884031282007906156447434092592813688614561746587466393821612529410806189057844690183011782240436743832360711156368241018413058268741403906197263956751295759979146734736137630115680128998429738268738105040108542130548132696598495030339935716934229046078342482943144966431979105964599122090200047458541280532823996006076777465954808529679445849060237820878108603702796486636473697956710778344405787616657889696237378217736070843630971330433880266249989089789946261334402327784889275897999177374938400171600603837095802891236767623732839881655802985069548508206923475200468687818615411150757653333793461242896274287239604841915755412450475249198328352743851103589929581380415619940170452093643056130184443902488768630795002574223399293314097754985934669989499185273954983362179546871784859247999597883124644133018666278427431413708063251315166357616915986363245436692519345296861854065619488206958245339020325704939980783238278031555489605328045122453765666283983573985558399973779589604284149712645438449710053438121676147500635488908697856767941541978892031831476234983072795937417175138263190220208443783783258855245210031533983607093064388450891279679638207879163236589770389558286439206755558812925976821694390695068987619777463857296457533391051888158706539071132847739660359365046117368722530232534821222225502832137104665757317869981693628416882965055621892479984593994129713354228786864980821731085989640193791612046958307308379543319372134193642893864861252577937054930671512783832401819059107999890470585996682417532298751642803352439880857012939785311329250571029923400487993777507654213543357130829269455661847507097751536424407736517718984779198118512425438322832625401804493504983235084617478724314003515404574113823283554496774699010739648663747838810883324593630921392870205133795389441093841180507835702570834221029202299089184669776068614307017659353044856665651574691949357787172388086171920150097040589654719597812424957331419183346196568680386549927252886600485519736139684726308628448469686353278804295448635723001362079603887383521791243208419456296553358456166292876103459652097333700897473781435719430237812587014273743331647737913023621112057911844168506453989671072254953894829540137724996190130317535926258865704943609922411430210524693863331219819475391237524903885187768453799637700698565221292691067609981842245506183769920461403075639215501774710337258736594190010683423879554912469954389564225073855615326441244302781385204249480469817454442884235298099464597618563219636760606369523954463930520597138418917211389756382133859051280032972247360888353139892207357930495487879989419645107435768269355464932677703585202977752194673085749405275052579138271534863072514663018706902605221995802812354227483033385328750947814660537976137567212027531542133361069475927351132069808624505060490466762933375432907240396670238670656127969594821673167085233901433203736994495820292249140338568595706452357531386624205286285577765700169435047793064525270490736157437653977071962998942799596955395082627074440268750561538034880358764806679672980337870110096732980105583560051756073331729900881971137609948644032435511195762822900817367037900235218694006569099401041448676702162799818286981366540371392890395103248964440827321233530183349921699939783826191187567309862784380047074799091828770291638921600117597266773161013690449408695181185290765213856810379308828295250314977105740134090867035526329961593465010846549852326794721940379829080086939073311689393289989222452736502703997269548183533566448100908343992341589004271114837627884647275735400489679339461070985639571076248416872393500442047442295087790806402304638962607082436310432954646456847639429436710623030141944422603721064115845926030681248056699209320141786896690096675186536978844063674353147528260812418108567401534744549393414252376894553106079024581996436915373863030745864837688175081087780271219923890007130014350769062225655013358770296667084020518630164579872903330076532650231626428049356878451802405646657507269955708673389392542586958020718950411987728921958093109940846247446590918799769968464808556891191440880588029938518283219229658614698124882351134662272850262561923549646346410087160129058019484748752375876449917882522337039698852742565699676855822544017928473431095078501607614085271444021861836142930685554305386081651341727256176356747428393385440697677808833847526552910826696296424856624540366862296194385502136620247376373200042639381781110181809059024841829919428243232843417900012794180601139995361556939733603234966444501023921996587425568669749550620189025899454545939496623677621678750936338015508473939922690727964069661559907136855564297867771934993229734090543516267783351847932504249562150249863670296050081306657547461976864197848371896276205931803043564820476384384879343111059500986961438012239869004316048033847953340257615915730209171068639818844566735520975385625615108351735710052514257366238390924618545013467653904312023506231550869591258009806060769259267687947400597872211982590298851742914896986815814286754781161755828730459618256494605323667583306062681533357392284056998987372053508197965951965586986338008323187862155865888616675051400787848135465993492963090597800714752970765540940636361618933430872297709357643399471889598758903839897822248677635003168426614305476963879309140330417631828507335710259098440643085299762272011612129084130919395243502240109723472572895736478745811469553914142057527772070118376435950742737530241227525779469336620407309299432878451489282528236402371454143808778696945911391119339806138080988022534247000830434493996777226900833287709181962411832339750258298646283695162695216208408866284099002518174795503010175024783137668923158917539326171018934922603900993611583438918327505605460417884367546536413041178860641241348466608796574850853980071919583294901425503899422184776007003498038309670316023298097626227836655774762956630927244155156891828906047742966064260662041668108205595013586455995923857040337997746725517903929014131554512275609121950774863658992329252052770102803507316803908764344322565922856757435082692100806766686993793988188845597644066928387647013992797369268033562043443721599016940430812961951695627031669280127785997689373684181949381990850198676174054987316493483867992421232091927340458145401471592164614266000272901734053497777386022602945894298450709037309774029503806150074076395327414538237655342099025300988135708344406428619009781360580241509695880979855101723891979020138573360959313647055066334449246485850846761346395298227016388675903706013160697561916543364601955678509700141116259201195703298480718581968901233643293428614546864455584042337035889250422609778362619294006111612384228385524670937240517666725383231788581045899351255893452663377017297882089343313082317519504419159507511120100697906211692391528117040504930942025509446407721475495902356422344906745926348427027383638208583594810303523208006402254161468446250723402073615747173789546747069620836846513350235370870708797645052095923305082789390982172593344968224777093803428921881248117478280963564477195814785439713898889757301748318956287841188700837885971939408423203467724243139413288652927080724551258621053180315863328812376183387852189619073218995150741014678544558805289766337775139732751168981196320559434251203368201394053340300225929352812733644400274706275498877129739579440960434020843174291720898121064222340810459992282094290079498324873859515877934464003296995999984573091044078370971992229284942876851386171459977795190735271028972771555270193058576959200031904797209381504389382608204650592536165366385803288333584425511329286270712581507088388751742466939290252510298313747063038573926390302380614406914385795261385650568007703336907280265473458904166994253473890232955523743462584987172999487416237487224482991127074223654503391856919140506456257251052762327192674102157399745650309813759355058492484430868197920388599779022867020338075723602595927755867298558117234222410532878433023619076018343769401312238289115933959986388707469774516802674015261059983296167058213811438077027095640893249115927415074801291737833909430677366230801619084319665721308607824909676735488560216844091653169736293268163891467033567923932564662333504873950288945544034810724728220375854386708674780203249875999965992800599072526220379362315599829480561022311003172513799852924825639585139924736856314239275278162564171125135267058526557989213378647710545665030149307054722931936005919442242573851981173687760783428014618897867130271107033795795337356762918238562623732157683571172492696422091560736982488659246586326181895542483161571722884815193981034015647257583673666145684099997709145354751161461733584925603774307763622117169510470102560117436685589709605539590939972558938234650348387525248512369713177252186675841157909044256099767186692481230148626921425689001476641819773774995827903773194656511949995033742883821660539565617239545336855572755321106903635046514729977397689302255816508478264823501456863395415848991088394296564080413509639952847776860053292027430487070390725469456907231459471822191383929467444171001270096731532455828682797174619304724774034172698359735811717697620536806138840282654839181892473886269564435275160602411156258301318899624921680979759340485356370236629577760110047440914963181449723617100477556768622766344689407761011183909165114776462165971828461784003892272320441595668660917807444284935365316148343139496809985110614869484419640091413806849636861263017376711267299761970813676905896161474571055169950826132663738006606808577193011369540237458048336450204482119025711080085925502191516844424239141295623785695964179539422564927991740273643719902748612662534363303054340940328239015379242971544070363748784466469520813006168401316640842363129352534150956573530791036815066641380181499089726028996358296493885208962903447778055440348872873449482239747025331666780972372926195646488386732856204678893005861369258717587046029548281474360921735756804629711035100172374695571513239188512130572496540723529106829790156636544968452130342746139939977372584520267192600111751957734113011956905350056905676682885991123538631761363301342579577258788873708557883072214449583591070416403633733968073713713814875666534370832790495382547546103881458188209366438897991743212140643488513889213495427340758247526126197961676381335725677336883308160174063835830904643060944751255416263751110588470430572831956540729865955697385741169105355473334061082628711531675132070614091568985062476047998742544619902169354017598169410881099906072967206035546707062016328180279205304781649059360541458456223522344842048199544439144005865608847080781235527864843331380036504992238562985547662867670636068607474009828903062600271985146901816413958191290932245953302652096337295275963265076182409441718539523774676014522012326965889141913455196341200436926906980715122111723855243394562461913624131589774324212209386739008313419086256582776252458051006535859716620301439771223432707151663954404437103510828073356999263304424960610432640586373268588687254124894065521858874961834510747238053864838841451546186767878715865269786299726376573149186607032490434180997235364023080622754688154318212646312360879301991851139932913428321975689364613199120536637826816745669080374436284266500813297778285037488584473053631212699316239687397537761063916939145722349483600224961533396713961070889655812649203961945339880129428551059488124472271005800827195059435113605298757264975044119397261275688930725052730501863020938926398521029895917160090568891815860994189360977575786738209705997566382782520697846630881810264395595463353134804556698307430792242319299009783105764511564589005943635625474553958152498350378767932518522470264208957495459616468410286080743350087077975619245793657823548432119095532771216387686294863630033864289562477738775992531398053241866760507408586428966189777303577678247569597288208570607602865239712349972801675480728624651917172138467293086737876718220102788569149046874774303882402822073749244953365982010709438289401171240328161026938445641415656030748467594398481561091040755129411694246639155255343304162551305021418023908756372700527919013379578231454479403313913298861531695357153064239981187366284784552351724281340770114445381178475147520850987438231916543432799585491778995000119172682774897885397078885857907286094965247876174069011793547103024720622494723887257007028085526414053993149500416702169495510327685661224225577862807893291903135341778600294232532408583516666326222221503707951685608850316768167912521266576150735897241707883072365149548927062962315394607456825897587529016328195183088301153887175352465378482427895633422649921549614511941060826991174507861972262124718129955422627770087151824574609771917032927057666592254990667778455244044706257993440335701585906987110066823555353443081503084975285460869790329974185774518561598142560659440791817366482380678960359499771762827972821427252792198573448428033483103385591075894704828889719518298717215872192008538606628888914647228153318512590891516422802269423295918404279399170911670667237687035616858794785816014258660157552665283891780509656208559860003594959938795745505138209664132676725563919432050212243972893582532932533030339786136406246552281551680203251868583001406534964904717340340291039932454819481286248289298589250941236777681145502026165076643839290660986025954672816521231184805576058144718991642227806669264674424822614466035852695736035099259181166045936535294808887244770844529864134346917873811346716981521783535052922531801785926523022925997016358002268539538925068997814643418279755007536471825078800005033460622962619287990943183621514282733328436842953702243108741266613305649447825996342259397829520956760792723269234998487474157100938218904340889349946559798827874815687287696130730259016774935446278517893583667484049573834720076972057572804922780814960028969180532396854525402139206010182016574501838978968062761359752891152752523294197771907085024125556859910942866905527528900202172341426455859601797547823724935567631892624118109923185452745139706396692094835897831631141073758400164073297176204643042438628210924370113474613787879778312039916142995154367187017447680102328291934672766421640540256464942513545575526168653968408108852729716405391317210483602002731706882488208670138651082089736779192168758991244349180386434982370607275477312084255159608812526171461317208268712406152778288121321989404109632889445645026303542840217955895244032709065523851549638729096456526765871989339407461215292668722718198872996270178303050879705107396800847791600895417443786303085377758132869027428407866621239249047672922830361376441241870028590194851047348928371409836612615694077012148454922144828244428354529053746766404112393917903179946381075453797953157252670395952295972264676853858989571919406140895967336877768872064973074058388710529089208005205233625099086562164962100506082779765156333034779154528803232360656603794682060659945342987417590293275141766027272633659662048935598989368375366666336288814021388995126261344182415219359372984593573005845902812785158542620608047504485549213563932428167782802517114459716637881250771261774277786849070120614575100085988357689369062166106988730328783386354505273144631001492298980689774023177259060712010960098714816816390374979772782113594633760479240632934774382548967194987360819511283447899936354548677902408926669358158811607607777133805306874916181007403405127335482074940269313645113414492288890304316749941252488153641046001498566581361492959945908197209919234219129366595694368638275306155100472172763333640482693962594651458033253063269727270035254085652348065474317705718223477497673689501401421253283449237994569641388920493735189077262130646018080964815154573443539991067083406495264767245134133302497021166447484016359912733612854549866444914673399364982890611025182114826570862028303922388400208044685437255404301494463225567488449436041684897854262960172752604009793143581053655948461221383473886676609160015950580394064388191402109214990043987332943623124948908490198546288198205074933715241848517349031306806373904368204249687070982913254998738300788217322840067032750869862848786689208257950326053316715602815192765804315232214432254867163542816805246422254517059446922036597651328282465462500382233189934547373765378894006996455147592768722354693143294162774054718982141060218505370335102267685711416019638311929256028086438276399221726162334875655040135894124698511677942172435094114692156410926151117977204617183118385609903620899479537082940018560982763038831961204545618268752539660642368845990201009418543265347953530613369950163272958172646633906410561544731638022523779499755978014591442579819657581726381520962122198074787722373801347135939478670750057493996683283096679281792168695447968158518496433489265836765317597378434280657401663149912136797226268794597637003347395093766741721253809465171802345853427285233364805469908617233004684327940540146454319377700325451943067546802704144917686463886798701340816971296063031730944755210384773320993755166605663984124878351068665968431772836908248287758116295448805821631616276274383348314129525907713919154594402510788397098602205917988754371044240018264401564819527061404531960014062397332502497637507565327071393305891390039370177287443448922638746003442818662814005861685661332192209044429433988855833607819565562277762017724795998579975538811573776250215768254067865887223496115154277029933069837726837200696833364962169185033767701752407865627856389461900461704661817363594442503553543516941974251748338064087591826991649812268930523983943318907231714206091996058743681493708166350539145624767450471127127768588287925472073483570024294529841516494353987085258417712921167476080765240404735243328949430535563212798468303468884919408196281097266418410048677021224241714052410181865566587534016597824995878123670798086664687292671141018184851847734871112714039514343251873004169861219454884123522465030115893498220302964355198897292685364279183780746446855392829408161979745014889239863413618524394492705481572656407240834689579808566324061315195338466434031870369136774545168328179821487153335051830219165190988257667441065932873690575899166787089683901689729064823187357315054048035271194076659784168079551176312147634587386522173775649779773056277123355404727883765162161776341075866544450832055233294971311568961741344230189870032961824593505529460042593940402085219877412670270877786223245006614240298872961530539685381884104840585698237034068395344074698497865046510349406799698114490264851756955149383652527765861482593031242954184622275021795760924897645632627650578714000752495118493629897481756451633559602158023312686199562048642155438482990083851248846673600549237171479972043391116459351633129202555797693510169403858357889482280158430944142950610104721269963210432072224021879103963130359290246122119453527996852986694616682087822043150774316612789442639200051834210208452977028340087131357348335851531585183465914399545766770153171719065474896806446184975647326669622250801584810093182622908016072231429793131179774670537016952515573810106708232678591500849437546354121647952687093323856927238889694785056436183334101910313264650914052152215837130814934035067305976060148428982676901254817039744026137032056371713686956694614250449084478132386456699613243006977706609944090302563747736361026054882357314708266932039710521165620918562710266844995131762783916500580954415907964434190573776598019668750798535544564732982710221331080760661153922798989150072235803917671573264822772100337831786902528258461203469936554922562296084354450843298058630701951673971969420042328877000189365976684005994224957911912755992926318212110125226132242148661016069660649249627303880401524282946954207252425621742110872962077792662339633774449117869919487454318518491065733084682176870420923127843887810739301345350990952161654532314518899072416237690038379430655145225666295857244535334343152192337622347040841996349356586637025660724228366369420805038741866987193999338691721107118098964888354130447345007229264156483836558208455111676903555242881388509094517760783410099855064112808419570346357943945840225610283967472361591117802420650832685851260459133427814167793044411416732754563867539505376085757347639314976445946964168267957691616970803526854399561287117028057258284611696105726377494568865400031717594964123090409711164472646046669949055688815616646597835650243124785928713484838814282737814835079832978321377255883530289421241178799564031954534562934771017549502890204311596104710924277768764426501829612313284671764524621386234444160424063347451639998994071770185979466940921728722867244830392969302236968252097076754258338561683669439226509947786636401710342518400762340638293892114224365068246361099132420285562801215313126818144545771310602310595576504740819114078279521795847545313980785031611909267557968105122139217262709877960486680737178629144533438682880345941817487691394773794674433625021933938931082103412835599902458840406271205787194643645913938710425925151666908374723454118422739765457127535737245236245371636388653069330430187347778402940073715834802947637920382936550594169070309629495083223147385705274703138078752429228127212538422319520106151137931645209098253910787757140640398871402911164490680975543692317006981750939052208199775200089807118470374793545474226140271594153477172189944639337743726896709357168471944842170433651735301456469595509195769861726482480218451515353609806867207722864421118774684614683638812129635370775649292606738302120296565605852282234660435525028523715195192148618478580621241865923478682849239317423702462842458794511656613291058148740766985336365567233416814240579741895478969831783606941259912121856636378293641024293119819334149599745518353962122665479976745354628627794005811105564406000649662613918863520443146346587841200637431449813873310858693830935498354914204146611986296692006531849548701418765888234255980028908397817346468424250702123553267603397717107515566538277265357755007336852640384358776965507587934707451944924497563009352294568981332005882309951107310169028707337101535339500977883266666596939471693958955958340080724055431467256943608142209601836298294200522197798559119445295505839691936368765049269431375473410901017360111188958762758275871503216726362356165895074029510382277488092222180829709107015444818976263638660237256361623074607083608025529326284252439335620281237627134547564189432849492021796681619062758528877849810547986600540364981166520881005325573460043071671176707399160339476689528106885736085479873221546997112845777238205683012543091314258905277446689475487690238039308407221968229041667134603893024410581608986165019590708271175962945173649373593437395176640192361856932869247659899071575634327701490064918816908336407266873445760379177683472566953103898167220604875444002679873101689284267853411149467365006294167193300081474602718968960609508642252029104692660723493761579190910475366925273314326047462838201800498620474599388116707878639127511953402855299577765684199550692608883760897878273970381395258040677184254870237859844710734604007344227973128776174588709218845295701833590187115884096920859340484591581878534033193160630086652165643268036919647069026090812064481781823767046843315592840513901480681258468622075898737865864246744107129452735498423585156926504989212262452790454086588283734197152539207738281456019734888278345284435827063736477396671760333851948152670783281348883099906651514184439367584084161491176887880371746076566511090410759603018369605996949698259192534970758909808745505493225928268852777879197029166808270598213715333982116807346271099989752883526033273399440595543793917896696518107550235197448934721711167323018050821822304243890666473134812146382942364843382560527691664637005099515505834285696667903950646129994436651218047317234005862266874623901743849452003621852177705572321478717397004497353574229583391722384154308502877143587757493539177669345300047291017107173456181383357893117786496656668743175783338879246430477332972926258211301616456065407576695634074222650902781525882208991927867795401856074157064601145831110739433588293941733136067126408584684775309643530685049377731231322658225208613790072875503710431657614583375743586216396215900737244515331090357270242822458719492510483857818960642871259365441322369616543997919163931343459931645795366552711476646403523139829573424737913900531222486574732767203289891275188441034149478773550274883336072572730081973109159278626291453278519026809511619604399207540445399277610024609262648407773844043218180503721969258560388100606322243734699051035128148124369183528465681437400184228092754188179142911015695304941643956416813616328087761155835538701556522143022727712433701471032352477927970303609817541802386352290927850335136736475211973432325959988643844277053628367891445545387616613975711866299379073520869228326393069100706829653623771284374774662996056433329283826308607085914189355564614118484025125665985249688468455089029022839029567722917289586172709305607898714736170246072521838921739117749591743410607419750822596022225803000508191566760342319068494322005502605674557643629305693426891510217896131262182807696095877720318774374592893156985959928835455560833335085032315788719114422401001306998044544806168517312303271454452681329117502789615800752541366322208410554156067890809601076496385138821525764697770018953288073297167820357123092537450643678173653897280308873669277137848461685893917031394821158042257323374670992488975232569808432340247200120128335690474636263235894763040727404652522093912468543226828082589281380912869232835011491564285484265441568877561450113522993457682625352381847368022365430552336896315261524024861762785000396733599799501747821419443425474551414663883496491954237729539276080364351243444953082589468343173352694478211231408151259245531194803085126071428882983189946065382028803226082637934982948429658587559564436868798622385064640912223428468042630578588841162806721163744356490665974136712249422569384380812185280861464459599833972750373225180643976196379642469947524518527436480894370263943582416200724188915482481798979589880319576634620230924146447133225825004825672124108080353452858010279772347641454485805740221606171664523037390564879753476201491991733084562910118187245361023005095235609147067138902817992860366065019891714093711164753373241028373393717906895934371014396655279113546583856644703816523157477515159488711971241222405004810298847383881591324678258689681571774190795329574490763552465337663136621032862481645087536103928281947967071244054509308528845697881586369480031125916584016552353139787844064687777020291773546677897970473342217393002073897869182466671521849877989984975705724289340848090340442695480259685412913433731392809717505986422866879542353178826246066636636625379764748191616103671351669366084094769103182105715146475197317354840235174798010085666806516195679113336464188993521737147150802671352575710955877040852445741363657169075389724635529933621939140231750560544432693400058021056421662362345100798149037885085700724291529969609818796384140244545794961414239890069580908373793137154148550312266153585963192580073231704601382096299040895143143129787920484288357926919851290763166113752071455153152794053229243278578419475499200291329269353546555472707744811910615986807531795708288465171818455401347200343018971183672755749900096528412363410756067411826011910266302187373458158286682236648496766800326377377266728411148177125129972468624487598222110736506221957339632033637389959800384345064554111854974237384123026838856337597240602900107290498692610777491346641372518248196147802103847924310426631955119323877639514923475538652694817540963919664671372439180865608645703594849143426685017324365479955576235230738727490136123162979988700927592686759711281573608728157729790901803591479016674757396474094730018415312752531191561546225602756825810374549986452022329243525384868357270205034680718917179319557205497585104423847219773321311548398194861312186555428872773816624786671303575923823776735346208356029729947925794999594498502919858060621150502300881898618846750388386069340395331274172455101033886314071856674039535337537147387932831516449975501074375622676677971088115274669842235250973418608164692649328728437917777986345491260108069395456472468551485891637839261241601549163347209240730101510839958777048775990492202594962431007054494956245976419013448151716974712335410426081506868412534832651666259350479813710831184464962811350669186097313050640155246135753226488942595630241147404071788112975163596095479237370720566419873323193542376205372312633710919691852031464399494327282648175323184595051978473863159594364076687250433639998735369861069821689490213462890906105818999537681645177040252869600327860123225668685153012234154719064014338023887226102449081907447701060114618380092446906310538877335187538587491854163286169020202369350105215304645985253379029810932689711224284246888143419027629126568376813978633081199415388686430770243997310938351501016528465244698966963072472683322096753265044463396732802532208427906368710488213277801083002024703899486965400421431712989269078478064572384898898703672357010642289135145593626289693373896489281501603129122694379726023312560074978736778044128652116396702071963496217130912061753643562489780751601348985699962295081018919692062393867077847356321988388012273550176447345104648357571359181039222417521532153593517459151022057350587326782806933957766627273635316543579858784966886093154662112678284562192777074105456663417682127495067337315841129210629826863486177118762674787991949989645276010264295385863177775398585346574303387185531459636197585134808389852613870232846573997896792824265455340757740054264785859865761981082836428016009026421913921039667752670762495887978714081052195092571516852036380375282380401277746189089078468373063827398574321118669490509577309347110305951483078856645938893723689970535097281207832810805398768348349747399998799534950267852389278028762379389826529147881149061593273183480225392999505599530290312301766874302804606660369637172947443314303497484414593382165075363112314922805169651323296706312973681112706408400169028325320543987284840619038616769466652726410931287460549893612111491768752588664961808257498733515871555557412142404170323982934906932013207653347315426991036020801482586482436634574839052106695952615055304385969088602029389960552041144220122130533960219073785377166507498928307287773766137736416693480199745710401665775339139793813448639202568641892954535681727682750662422182179779588695832597842737887300184795997588596020306564471852424555075043161033161510833287606652185683049964547999588910556525879170866677153420474852770491329984136818356944572353938379825305444652120661969592944454160389776664488708321788810474010985313909124592143638112247287171036774987755017979428759989230973664563583400461827196747121765115001187639979847585391896102111149251056705862014957361536698204588135565933573438614592298915034716636187908841858614774476362867046691740089609703411342485611892389852724998313428969958804243569647646503901104073576691710084551937596351035838006227669386120609965201719058855472202992756177922017581649340550040947428805347969337546645957210728588779795350333712962649269934666403912283175723360910613023467564090714219394062215459537863394408715464102052203828425187703805374193688497484473289827776599029766188196543085268958791876680457202161027074180519096287316205847450797751713931579945155377894310763534090769838966122564441836477443484693188292382750071913326910420705225736422915367252137837867570841569765582989940378654023283740498864454348003690678740382355472979372398088742440365357579658177222965878778607697992250325766809107783305274011256216330556365374612028406427865524008384987393524204060687609391875824597938281132476760764670976283972687344525719957843178186891262641429303380627744948643165950235381818278466423366957159763632524100403520054933560126589902715753837483319755049513271321168855202232060226834540292162252188477214000146916098895689319511402314107606425361847324748954532194723488837877005246506206029218404339065099030859752561932609586334599257935341426040429570106441132216505204148413010569422544434337752629524612998532480407488975548774761169483261706902162260023536578636086793148828465728118145961453050828748252519334250514527425887888430038275598392082332240394400058391967648350296702413268346300683370864311425733570582020062721078511279406759141970471411740255530736234233896029975556733149079638187474149018008134949013360546281296850622305223819173733837201431375570629683005623407784851466132438565119387198071749019771429757361599485140245506828081680282555682538753343987824816517769011778498037360070525170158837735360598323655782477712334608098475696301850786651218611881701485782032165016114842150653194040796984463223185270484156034521019515703185194759537445436755219178390819938063186874212451058508538507050802187101260497336634836295962619760088522753317415102289573760201564684926270091678863224610545369989943296425658844022132317010856632263602116757384108117303410187349742220319137586598233885266202329232391931491076444298441326106072313222644533667805697912803314875941408270017656180824095111349807678610710995302640051557914570179089566458368980067904727692502197463743761641209538367516834462118073311012760640069374181138456685588635355910386528316939467716018261000317938055932948644400517665916897489574027596858262248295604475696330785054731883555766099287656517761581663944895333662208068099536368087960483449967820375345670022705972914045734931939583241142518948726120061565941758397916176450589240619589267939468938110932338475486533555688926269898615027922702159102566130213448655967660949441720231782483731042458063281141799330843587515568137444938297485468992299100201540543374680110068986101046665664675608759812248014153282563099544005670654591954440374658031010504367989969671657429498127565167741536789366233184049473851021890679682351510550370696025253899528458877188466618424922431136967185501286616746544005185434111010621346053690859130889956634078007410628338379621470366867622769835585599442589156269546950786621001336118658299788613339468499376972578593162039907831546617065357234386728477973698262932546991634644397770224017721619375320357479748367500416111150356477313736702773721127531259428834257644034885325292912183667804154119020857596707362458728718691718487110110626678221024505946105353937520970794954227669090464170696775324733564277152357743471373363104995046158091354199933795633684892178113300986935956690310213642838849263386441603058889711655753870493947295901611995933336813033380295248346375468867681725149574099044595905756876565463730277009606336034128152491776191011667469336039966218601254103236459280787234927820233853969607786000612972661631241180754321995733796797449996176073098842990113872839488249995672218013037350481881368016730721168532373454710730470921149821392943579685253063728750136264880301232487372389622181923733901866422071099111433989251206967686298479634942169030091718541013654664164496313480240333955638647023242342009466923099033001114268245984790415180856322166250683339844190069811670584184622482241680159088028066796276580795255620616356781416971807544006539970951616810111186365501792472111892086953663903834737445421789409396646816912664168776207414958524848988893110702256884547505433050706964749189209228414391954452892350969910804249448557708538685289500738881792587441348493408402966815265157531167090328222531344601613587064715725930951953355405100048416361474740624540707383925527325850314529254538814249718384484976344601870303033398546958359274789204089881979180169301734765687031483788525515864124509656510139736413150650953557795077897079115804268022457388394712622311560656939782657155982188245975872827314007489340512551883188022972534069473673969204845038781728316501200149831419221436678372029143325130663194546316539888378598009537690578724932374038630147772830736345013647090729000675525377765173633867559104288874022148690530387217514468061592717410516578692903154689665029909992433623939163382471025638157079335391944531772363185169167666492672901613747767479340764328059171855930181631991621324086121558051930180693783544397830986620269167173668687817205899866404144781593167310034478549231052475792613034781178068659668645203299350565050659306108093470281547198621406974208321659514630441088034901306573202549060564162544792045963140559531962671919034449555410870389583176673241874452715067084681888493612889706373329847800657010597931602862994237394081376404882540824806417644897091711684716156426955949330775446984377349583336854820063883734998790368768300798728675346637003107589337080466749417920823563819833625070770156825262728235774906382569674561933049512620919944296711628111543031380099803193257526254703900004025538389960022258564575222658264272291279000847566033736140237583618498072285022964945693214781684023398415682406938342436272479083102541895061608546752259846208073416684977448421523818374373247553154882112628274338948261983921058767413278473519174090124150870001525130610951690779722667017266042119922903937323794156092770823176686071414185614962131560178247605310103802847379128025713923052817093418785004631753590047126685518289750672068903311134990174674201364305942190265938231727627353676444188425713064645650400914599971310363353340089903138858842816160224575362440864820288895807675602085662023838113681905973636602842535402103516193892660032513989160431803110010235314718000167595078357246918685406696458694914422865184283044969701497944876946568662467542772749904300346423029002747785382627614391877522170670621027206307267126865760430447235708815593759368527457641706788453640056343748584508872835192290690644920829353416517945910958257783096921810403242649095898425076685977386041012868914471563129544353444241012552707180310118823831425861962987059457858093455099738232200992193195260649017813476004775010048949444468834127134992720408534648775797180695509274241753519693389025453933708654964419552802211619168396138119855799089039473306421159589134291451137583431323253890892048326687249374872092945835078919778597339555545058511374762617864272106040534070226196430996189740347398873913206674625974681326285137137274182991112080763102973424725980778547768577810894276018688016449032626835935156669062976131621856949904992706113784922574053257013819980839187617585329301546674370445175004639988037048738326044859331213777271642877774626892569232224589977520090964841812353854366372949660332639374673415045820120069368463823389113418543778377784508039392832570756164757970424713557283951793995964040081958987885171794293842158907018433547177635459826756089242989859717456197093152982574470214219369301649769577088053301086145799279774306296586009870459758061959491572385305930516674406830040574379523917272278674094681428880327444611102998285808430304455963839104661881010201634792173044055907463319477023478550864674183273237601620355677217142368310224761761635708032170632689254742007081810084228699779428091316991748635989653160524228323926563024419346753024185163130776141814009899493831851972161667728093731893526160720614068112791991911098793769362274991222773631005712804194871003009430345519668982810933876923972376034142946503713086388134097299947815373251266736922881822475682450256414265717098974654238875521607297606386551098437739499196707596302954182555528849752308670692102337572262313027553213511462828539794552974616179734300863802784200184515629615550135246642983155276663401125450379011269830880598023855952367568377699901464090158002572708330911773613427348581588607571902394338539791444492073022559685646390369039782778798985972483360909581308485729787881266564949882301875262839321737117809483271588750207193830283107919869277652634555721894993470805793159009486495331876573318159754009576811243823378386541864188141613613685454422665134791720315972331238769531815437985507290027143654074916681690606137774627984906450291543152356456228105114086422202033874152541930674233955992993151942505357684715804654045008053413261940084409236774318880877831890562920208343413716885460600472204165449277222081750967488650754010606562443868008331655804352557701373116149821632771348471030336116796530223886844477565462033916196607684649268858366765335721417363843637432722324541686287939287531476908231214395556367495114236224875985448221268904762071780615122061066362717804581252778056582854984734685424619894620085988112014143082410548058567036339585818053076145658306381082463922914619087060573070580713125302277675002630460522619219240900782752736582150519405986822772509775840509783237987472346890377354521502479608181641514140024618891501252407246084715242150211794146174879325489600804801578406463835246867853045951756669669123429977664964751132017309453215850970168265851090099896532030236387309934166544555478678380873775440415186896385184736531767090192708071203526021464699557052306575450682092494391208583763879652544251252756981763379811574746617631814117073428034229812955298779670153006865134577157889840435398124682390180431426371237479274250164683766714472428065238458030758744478824165970979405587025387884664522022789267578514610353882449318252794810132540780515518817342446023700540505505145280255985609257819880976709469169364812208837799889114110020648761323712094487893411970052006588037991691104560631522907545413033299857102681496321104823638830851114170190318441041415781382603390650074515077128896910834782568431450707596476285568599063930558135209749689396263680894108414294995903198805988350909922677376340121359236673006153548824126422100785079300207947432067022816493638162061945287285635785924579728682195075225350541160779531449279213870012184754420554111441171485742639565024555385705619227794590060567942869962798340717940175490849008157014602379130490146946909228053370262452127948961761735644102766566965101846793500672973123830546496182946902766289008189686991068450667973176845306649465219708787373294420824249018388289400515390106146331869474447471929910284652533463221217699944144868174296401017633736662996771326589407039811563160269543969777553945167909171808129470254666485283914381169261793408456606442823691489148640117261864629607206600246591693473101968530212157591769932182592729420800412478199523867863939627427750529336670383279884852042413792611706459343097867303091571391624794701994489533187373872031234398658869215583900688276855958184977785405581946350823383505898111106814067455289144309810145867455524127033427749569422610401249087075759397896306136279072683188394600111598775890918656548342294556989119637315318960464220765770919367667582356728614055306743124687702259298444669086299414216298057314554186212224772646920162142420638893860519614087386879484487750538965254022673416029016907449308467818616479763573204909520173030752381875423002377769183877214214400232853548791765848031137435194791680841363886515936728728709218705997730648374449228934681160604952614244931192199517299468952125490051255033146991576697466288281769340193653217707796813251762384269232184350341080741366526941892579763882297703866837334854573378170408155136081253622343791650742272121264095575441705542782492832663969050908141927815648878582049573364094577054002067929438456113129187318799065027905232725690042340101047412845300307553673860247577303510976994708318759867788948814547348078130423405976468972650781463130895231467489665480256715871828834280438978202727025288389451909586828300146809369158298172534738634287713570294728546308710889513451763275559875399623319053598051448215755913323092768356246770776500296775401358603769611933381372496959085466307925968486963301874895038170817074754292530338646404032527481720292130967448102557370986242864535096669926879216014714067300101138164625732875947609946059834478809852509233639632842095433161614868957716466388692721919755772149212401868014006360279653973081274638734792223541916197566892894838252630947057434679255071598695405817143709974739657738318199467535873616163229342150575902246772417314111518513622986943155476629182295191784524972139246414415918522909961830173465722635756904751869771901858543587925152020162272479662886643437997489997502700132176637109470815764530299387788608540896753310698714541642549942870810929544588759076859327615038966762736675854189654971008412657772782767889559952587261358401875048183381747756370057729278844970468544384083461040047631757456715523896541940788133288090454555654858919384109157331492855106349218746618561003136673956176529595278471637440900539618913002735109164513659586624612654679977493755807765320107396568450255402237325221620721531018581166642012749453073165258556377303735216864137543942773774175498633018083665351826187488190280823323535339490852073726119691714128543458231278483589954175725138571573212185002775480116676157964514827576268959868637160148179110243473832213077990803021752738743502028972461152667923481065312226902772843242235052566968436976789644964046221026321155183429732947234630532867513898252788473189282066479354942369958536107568739670499568196232703140385658031569666392935401465044968475029144516446788668341302251382477714448953360269417635527860449002229640176602795836543008395265198788589442050280952621595334283780616809050274483654375461739324345109049096514355175750206508988722123673123693613180077034022934747982859099553014914947940533376206712360447195397307077638792019467991888186244851492983027502400159982756150419170271891064878222801011115702744829093072079652636848427831198302593562976695656696059985817314428873422003059114783710968778787246386135801687067347335895599008926486361655938881393142703223019619600879145862174618292996282964117480086837193380199915878902913972200514067597233150383914810299988493700305376854926942789167162441793662230214836914078956579693134165766487937744244993005015993053895330744658391546095020794130278421242387915668303680019288964506243704231340127760239308686740838747847467279948276599354208700558464347107840706296369006791928806691513368423274163681553854990041709140601381942598475032899817910049492074539385058336149164117258392725527968533719794773366624432999586191716229442736719611862698842679930980116802546557307344587262905092128092170931818100586172861370777738025102149517793106461427796467241120860846505865097383271684644037713823292462928671392378046702021756564327062706072970986881389516544551623592750837791127262055818180782674079500038560821016185853573300550174040493645149915704150402881953924343133634443986303086462201819920566507246969854706945952966038711910351351703949041999370379192470224675459850358692987339660491707420272824170805583737561065932342551721955985141297636429833437000018962811623341891917469595818051850350491042504964147831711024468840111500158491188941158919256149075893794799826397377357636435637939383602498851030454071754267889835369442298657868785158732884589852105903018701380172560463569177884233450147861994981419383073289293982469748578570012863422451408674796137794738158060287468206107616692256937055023685798689363080875708540266028350500129989609751425941035165074680324660562807437872427224323489551504872030729084294223321499873653618512268948473439395102170270007489652657029185741752619249283193314503389076852758248101950554941962419044887192671551277947011386324392923474839914453166157761579557763074453967481842681178486160704133147591394166883175042000646810355751809812507678505310224476934468978045951054560824661212923203867138002166338525019588642181934018634995610538424201205716631359059218437848404409684211024312164801683276165772369725669879472835144035718752284644539207865905091817771726089360157328619251039305777810578849069632983505033850149166132716096262848495654655089311329626039802116394449350196324629260302981296569494972663774620754258167222664387014509504069268035212288983832761416825155033229320554866131397954127420863503075890087276921844351691099287578330931546233804673723608731895141868859998403154017643794878443020756129643612526524686764060876669827302060230037104395842133781350079784296922319447410343907015132177599625555051643934881618533425293056798084433006095161393174848722003648691348872295676315753485736144210779565082441283833591596354410758175290172994504735177022151655390194057149824813193103809481417732019416383189826588922750893434825110077123004724403053041188762160749571601543429857913109799594838411638941208601822798599789506372322235492593048474932195963541957105918520555973816479009893662983669367766705822584805114425376498327524585582521536808240599482272052778369323053800572208995388775672586694896097075568713729728293301397060226157873569113566724606847095264960213877902219409600853761666382792538267202949358750446523680124109680080424443369050205721924641482677449710408666645970833116602795404676700466937896747832026076375098155311485620817764969118576993900239266575989813624564053768320579047937555199478551160547969525414726272896937205842874107590422829905699545848455525153451189706940897042163542775012494064376633130674219051242777198055543871265147189854755077158742396334985210017995965384814433981244319400161122268645651472693895259154922599478627403210125124211267291273632271830991246274077392145892346637211032908882782302233563168119960306818755452234902619122921427319061299813636294747165440573140158884815680226856430461750639377767100972685245937284518811656398283358254435666858694761453450873086361058805851759857164207508717347586889221310503741039567844880375605106837100481462269769191616528091286686811907802203366952899182245397209806539754026420676258301735678538459051745391908303171845905025222455044775536042636746985667740940397092436401125825304722867789019071526832610092647809443584501292519411761700036395837921774625777959178208057991905406075087842243513940436435718822415854376900249947355388152137933695989808852127825960025203273276939636596927792482214347899943837441094553638247898510871984729922283768222318910471292525463259340219215754749968130621848051719848623254160041454562088871025363185561820138401048365916560047535518602258545253743200759077461641988160320819207042195481141831318275418324854657601394994916206557566797484302955164820487120962990333126585834549815603842939347389063157428181294365572948872246533015742218181154005500408130758590537769215798479481169533052648750498026656542963401800801629199312400758214595214924424320359782795428793638957300413298264437281779425999172876927338123958309139884706995293920962909767455961636844063182619409424016603822651437062166064486074867941272111203523197792588764223528402182519150550831230476341141483205048467586419710279583563428936822400618619114310270556378280504958880011452992565674281327327233857319885330113473045563895514904873403676369109278045687972947642451448760129093760048897314421178330847103542536549666585439764263548988614266415494934215592708559457566989460680718601892686300554371770981487598188760589505035334535685505296768676938886982861748844001881507846667974020260507816026530612703692454277634277926295013512567952405893719711799055412461391205219549172498568393262016321864366532578286181177845434956467890657137168984783736205880243826207936005625987317348913944798585086152354196340709480782660781098579536388511765908686885606225170418829914707480971550401283836467935061438837663217823168312606947750378834586469483581950865148815764667765927898090800706746445381663571557336854374009521609723433072440607051475898761082463498978649574356923558144929357597256000397602603829501380196297953840855205657658261850983699738160552767984189961659383387042302320175349841369782479273739048456917643428667558011124048309616341992578679739268334678086997069850338881234767739915722631254773103107576129126497684609553693681899242663110873191947992552112358887837406136644198561687828234974743924700592515135266913961735286322555646784537558826047652303021803518312581772437878158457304720920208107070456599294486375374754418225810402009506350060522609565011236925220224581729788598163707101185319871255148178345644751457628002938485608921788073436053975525928244003450224068087549062060426906258574721224697034162138263365636119637130982674205920784224771105553707777236742294638543686156279473331094594442511719047486720399092199127407739990988295461886388188380084138323431971540173552236643146141749708161333758700155442724710790566004392778826938062404132407650989385284279803914931716727617923942167667152389063289672007366023665569933039009202361691690135064846318495556504874020443021571600962736063776528622367934676411762537495944166810182041967936973949090956172931067358443978436421670046910399709768462249775453570783746768357443395664816828480535939758118624856441208323062017554071951589746163464128121331622864029796431371942983142065732514578161002615753806738319298575024926896428332091155300630262511213791304509393346912910751330938182380882672056114329146311734894705794501259333965114050573586688742930720494771954806434749815678348742514782598269358380764129035611439247339416001676254847288740886614909607595020503011528858974028879922265078126984587609121280575623101004030857143238631668591162247164587068341370603725654736345326616971140281661602203172382651208528876338867341776606517355463349982752115530767971546803120752943649547043985269653219134450677772571986467707786197944643035487813794488387515405660777584124239516343695699784214430651631792397687028115740301520274241551641074258750509832332228534700508524111616680624247579725737363745835371016441180881746670024809944002292887882343145552424571675705232640060955347297102430161871352327755836939911463436084584956729902963795932836364012350097960144774374275340937446964687296246892571412814237063681273165255881909878407936749723313607231897629641735724918207873531368982952579205303935143475884591114104606234553017665167334767973571168389225713556158614033546214702306228684674043921208881223309106811033112485820043125550880569278483795929379099868784500776006917940459783107835716639513293459138298218399010390811825846853979694482815086803334435566676809215909427005681068800674437836690560704013185618905623555402844463062744733064480211597882424832917427980771624814395563241846692874204618524426003888907740115786662275870517761462350332296699564518080469672986218586295223460825613972026952550934794374031550160800430359490334045279188628556319445158061152181985714361721354812638873594922325294797544849670476306419256158877757821396487027278682022427960873504783883527064060304930423413647835357521366196633588276060238768975691480045294001698197907148797535081023916547651039373379354388552672885169155429896369871259645385809214602532500802718879487281207995361428045101657996407369895657760280608723007723706274805367716320841335348602204679490896107099376937584291563023118786613246076406142103095106141286985865527819028976477480274452800779879445601738701055369315966833300829406668887852385626623054814127391244809875200308903493968606952383922445421610887921214320591188075756957444085897423661173351292266977545580224145354018144511802487470906250018891356304879281423544287490433236972985520804713138387511291391507299857832469951058042113903994221268924132262738274434244387883198457021842645732439653777405667858645924660367547181740746682001526969739824007899579153250263822491280822678009252069237739841952826379143046290244456400258536335545056345353684192780023501120276194293982973544919495871574646675315592595595070886506258320413519836852235197807094671653096180342102059071913275154488268851971997621184151858607106454607804557736087877321219730608166932294673598255296812251424970707166937099038697843684049299253199159663200677449695095750820741556759648966253386602450995457315246595877954609459757072523251528997846294157942186919608592345603730196722400246683468468174990100841947851437309516526547909619510226047322854427939640961848885117291944064311215825973786967710099137764068152921577808878435655532034263300157079363018485687661851826063370459370490175453382632310302544823958487817529971150702492099121354169297665365573234617398032547409351822613631245735222133752551870618388167798787436501499652634549050795695308080432630658081984549313502475752758567386155804634608148336089926770011303816223917293224355921878706864332216419700978601441326586034511398298067416426256330285663842889467374976042347608812512964341745210096899442653746954387484545316046702631456733882383505192065051981123535757678107749443338957759310012719241770428293041663177848364525798455385891941914148996461836564823067389915000966489693606912287181280086168731335913098857220602788903463336210380265563690260792571910447368452362562744922159584824912316100963398433104666593876921981862999020796957212651262718991073897687283188597738409885609479978222508819074991218485971967293953607271727190235660940867424202936287260790752599800579981016385679828920627140499998123594220141972631117973449293417807366116621192331412606964414441482113415882527446824331283482896034682886373503006830292716319910567521855145578816115749675272501026853302734175123424549645499273658872634145305504223844406254084403516962227572644614945190827684979950905102419896571146316547511094148839212684914140770109525813616393186102931575459023144911690364399039008303813127577773121912128530998506603231852058777181646625029095684124422771666600949972137392682862260668593800301785493784551134492113210151928069518095800966104151186670407623070809920680152268004780496173329260140686092116733016897656340289269521964619434184233449130523068849564161193589647708146025244207276399246798922505483859267617220918008611518018858146579924863077700466166802593244234589090544175774864260904252434143969148472298732719870697819959260924276053237736200996869588326298756078507088317931117188324962709478441829831065237252205503500045987535797172402285411377293329572563112255552920747521623687980985644588990192976615935116412259626292120665268740487352356283965436672700996685321829216532973090699525381988323370236103259984927781819340771363650079009492928871949480067642852383259797718414204083042407750872142066149636881809268930466811222451142948198134078924108151806983063575340915072700761439662487659803969596188929133157212953055719639951421361613298716146843593948085282878839084867168633307190318679510072186882239612312137963596125229361965699859909786368985740214609069904904512554449861810503882380198407516017073498653764226888214913200279631351472281147450805168231318592938122583127774718242933183624000052604721153859791424656104516674741523996482493343496330282608207422343259930104809156800383372360585083076443176121851650507715878192357838258531296774079915860511505724206009447470904311947386044896503678773148450465547902996919514884056765232516387581537264316838798388960695054062178614051248588632768989294198830307282270751728252170065031288120023488855168031822054291333125098063614648935411836550789021861297142404225123104358164368267469795092741875885902064374130487328511006328968618730634580609378718921277118604641839820012036416881715440340544373093168974310313844358834230586734990916002691096928113192802703990831485012226797771201109654914711909463490074891626943285688081289796929755989863171018614292137293389837545581599679975756674879041543654728315143504222442868139917432045428740659235084714215134149545983798683418324590708631342912146381970503168487794779139715502818106942700678731622637357724479640992953420019425061248810128800176032504397360782956959624041398353851155031868300695097197710435275295767984958308012755630633117306077245966877325655871795719634749233154330926240069992993186842878829975218961339036880483612403484504296507933490399033842218887052525697585256348423057362772636695554040152233497145072731742104930948711645396505861954692204383933921870608006207762468290934326255878033711610934416985148534402348507690351658375153254008532453354113559538780386516261981810228269890780421379750245794580932992994835315563943003035433028416724215648074479279068206812141180602604621253463827676023314919072044920383240866007088994441735341144244825865639505864604786241274094528685822660162470723361905991848025423088733686636943205703332554027838305802604890730798580890100418536203766364833099121476572287723556095815919306703156659020434762566238334451470711174238204192696630660764766618487937815001433375155416169442049899846242650946216145102492865614161593716477129370633866614687391330460008223639526167916930063059750982947214831788987103756320099852123661959487491102665881604740898695698078580660106424008780960086058437687275035226912363019088886171351586839496997803230634179093847537164533332161891460768509677258323021493347292684638539575828774317764511729362433975809134821365208667047720263963514373350789385592239411133561105548565761455283610680510546863295228773719351281159861809464148103082117684182460963702379035930803049501678973229099052886361896921905704823319361895799094227606768223883656049636189974177783172174227546233686285552606816160623997722258427336681075477949828190877943309329538510506795651476135732129382023752896484096412812104909059553029754816787190915689791833423241204983653387148617254696890258803917972724517034333420793076574508147592575968390039002749577136112679657215404773801123392592633088903593208131548822919455722191063521874315902724595270950235910944235999277227348775205434806024754007024112508395803256327405853593336606562685088108877167225202599458201979729563115555672184859147747428467981642350495677953376293539931703299121453316280215892695708804615853133905629792550803557411028026984878084072261220107730418348096563141461574871281142107163547972257988638523670509567764257451436622570464785375598870281431228316389460196892886837012185124416054178185391992218027132970200229635440840403045594377378792044492927719298425822428895311515273572758750910133909591479689373662483890274513982896334200651268371347163575015015043835863382563467675605844486060798847116697095481041677433652897611593381063194006406135649460017778429025358644610558040967936745605600254900300652305833812904656288835166705147045265209480253712829757038451617794523307424396966063984327761593714759634775071772878750432647060507297148093011940701932154462775518690064939848854962659699778883516949328112825533058632935711187388062948721378699221723589178160883833556240611086996947968174723806749733191189737433706805106377357945861400637521853495563217557441775150851263160028187320886363661336887366080414641143095359298886049449873552519692098008603743886157156143622019853714087852114240515799997268250858036520334198413076149816539992919664404314518198277965639327643813521527631001942949888561935792218760834861443546266931855074153230799550320935793712271702877560355198363207213858868783799682214112325420524739617050780720134225469349605923766166648243973815573474676535891489411574033406924424171409077929245334437147116768281799642208635016220822333764571722968539520865330680009724413025280686217392863714206890721347769444171581988573052620608973309994202379674175384822421165126643907186547116992826439388587534365307199021335844793543929419609512471620188409250566890524112753752426069230849535069838736944984156845718301703653052334018043918687840296386302857284074406067823619125739426576159747567159393338501844017360623679496778398509796707543392681364496968733444316240962428693105668475095267019830805263395237005348193259824992668876724482056062178462048948883418170018271437854269688592713147901475445943250165980300757506584551024234743023988565866395185169973380533376943117332462829156605165178595945477455347594520873333724863996731307391026080407179487211414916981261961768728714284201076440797171475075263223163731943954849848871733003482988689837207063445388474640973351502708215703322780765920023567188892991792446802273462836430457758302252473582047864776845801611483900244133917069536223591916440896325243965929102086872538966161327212697645671793268964951305563870439328857508060936396313241894543551519765096739139896206719016188581046299842506608358565927407762880556045777036513414260030811098451371859980573494983946703126660638647634515929197657808931839604243982742797159145927217367207866859871535408932158874803004762723080841166166271455830623566826862864239706690699157641911731648559301703348209594630500782817596095906673359798209955518079787057459148950489521193760624459771903991357938411644920497653323681950858055744964962949580155644155957561465696793510297229279522828113461848936694552021134657064671260245604917485228986314817962405825935738503760079728653268612457129645793650463555920838326630818319735234263866610115736770113721236053743440276950692348233126274369270534115894295651495665842594948639716735258885523736199143521732033911519344546315499656161000326989862324843355452736636386414223740317588088589410924330214909103834798252439113664588602404208668316117256236065530561072839217610789103827948906853576647639019338861335156735695953562654046675204885003143170533641993280029310019061270377421175502948431053514691151691239273727334533210540265209499779725156654597988688565737381162536511572511938262617013404681570033371770637165468569428196492094413980760434090246375822176179387576082087046446005154587397489825014360012528367291730039058288647190956763475102161833326747947462573791408324576750614844960891288222480578417826683692732988320090894127968701180690836066092887184374338252410796109988846336694269240212364551039505440040069631636950294942102607136097879198692223090773624373556817609750402374257742255803620970787768112383279220733442062749006060344490846027389704040274745684505308566257952405098213842631000273668825560168961132861186310598425100028273083932680543329676038701011345144532554362328585181712058131049573413376492233127188827289460627939341375547285204282921714341393084983267630108565351110415713708588705883139571690463765934762975792895715930410693235183561719170792992199592686897796003332958766392861259218811014269167481924107498872810670669573746442678294346550813533968245405116398424982472866267783460824188744653971154354582047795707995009099278036824582013517653806453664928011202624675970428795301513803935001144497190243851893155343008601318264828427619124442936145872632401498430617457064889646285464486821533435957223942828943598026987319530376761539757141348034813433597994344753011552229209306745025182167252227176387289382411745781576560114528652809900812021566970795449647797146535451401556995687449198798385768880119241123069762073607528201661286343846489485323623131457873399217822365618508537334456961197287321106844179537091500197127634335425294035741843960439938746814734938800491269155426054295977413937625066984533082430204217111726632098510899054592763059313800882768456556349036417914360840397309738432180953486700009381642620168831150408994141310264741749214997000641517010227612264496425572450532846615487335644964563540961037104102867287226534825346171176977266338790814574101589763951379830033830859561710627196597486400974642862757317074669740134873597368014800783185295216511469741177583968471210786575205501903997384277398581101532275182266306364968688576897248543521928723638260494113922560321406036234012794412029712674748769865938028749351761047353845102540288023132590979048305968281578166120803794471518715141416122603649502081161316943541769885197109298942275376789191129575912367076808056385535217813453254115341386110372400627466330694609349115219879359525223106052570255198307938028582559405694084413939492426555637271819745789949759161664457793879353053853881276939814838011115198359056605603385845064605842975764260947026674748850313751195147021339701206427150691592633828460212982468810778123596772132284206444719719502428950346298613636693878553990316719694621892714814267789827494381742108666113214152583233901132804300456745016478481365071735885377316100801891097303990544371125679807221525355983456743230275203782772368701688020738877488288803384139726829365314087310862455716278779502094724405719063008224971664761567353796523994618985283246110283492193364950604421913218683771968901024030435129905634325655622455100015963173358743823746522703679506157740326576443155750615003028808641783919267887010502632515262150527104887712803190305598173870949959811229098468098417845074432476313500642679768857975340287928533313054589240815116752895538081631684593697015672856184883111550879295858418484833726517175014119902179161014878109880503013698501026499754144541398914240619892693753966595068811899476832301681429702500551326782792330677535328360134346316834329795819376608258209116108299240164068744511634820237563455505499483004111653971095161588789372978676359706282909422016785701739894707740830975164599358524837225619820685298716597436469707414574215533201898932638153623058315579979299140641001441617615639348228941375191173955433248587354977718099052569283194519652366993623581719792321666949563451050618252821411976957204194023762215213035866036932399194717960042154486089772847934791619575713611141454937009743559850533554997882785298078446044236803640825424662458104262743229658185562565698037350028307779352837415285521900164203973376858470444416379106157461047568388938464764576122401613975291675421052584138538163866114921632809584669756780503840685873922654359333725854634836290786335938838302129110319326499056386759208162326969371028186175564540696020119848199683588703045349059498652413985825588095096288721506975958511244323329260886211488847721159362455823009265330878242012360187377760437879099739359544531797725852809811353075888867947555923834768677897596167400913338102552805507957708863227509524280751844438256804245092996319166242998555898723941771944546641538802854506316290558379701726018055182538901716472577722997761521034239761469472525873884700277530470210702862991694610562404429848851613043364130428324955370516806254454580127590165942773250316846406044523920240370116347076188089676979397140558859081235368700828706976028770125583996822468877170635925022118431487393939981046218721888681575192726655638037935761903618180251142611192172068681866749533296663546978571620902586926691770566639677532535813692670427987229791457851963034334635789566086404556563651879562441482864020946151452682421868916083522644260099345365265374255625460966870529865590798150451707388121582963033045948747613027492692566619640622595036934673688975967799013380022811744013198254531586146661681352417419650477000333822587895156947756409180943085549066315446836578046848634472801012140735413798179978499174285952939899095933048958802742565150907297866468223936766335773652638232764749232563134606550224670580099884465483566884141378687266276588911822905387373013274434622948117756548790319321180030448705872802097616436416923515905315356375173428915511282566451956907225121677142340318876765806078456297046705210566932208512544974607151316767690372657672096605746762840587215990862633607553557873058732680867761039748611987429171440163023200228694110017992813122103120355371727211767145436207914994926498476591626587386985890265856218674152571103409825013514841353901105250731821952797263315164052073225047975063978465423790983355215440865472125391602991160853570427337444535681709335016430571021642853140824188608662973198870691712385793131495537695410551851741526730186777308664749227841364866662053142655372563551726862529042945461262397079285042934957281072032902004155129414193668390426472397990790983020814645272883950306840563399666813168808273810339232317280383810666123953252779430845085596150841774612687391401068888772637375129745450568874096999559079227547345622886435753979375711694382654711391922500538947418751803418639851553943406775845380657176578046085702330550290239566390529350444388405980825064489983626257546313520623441438067897739647708702784622865308893222942162665007436435847702024452769834936713164664921223180374079555846562834325899768213982592687360278968720829304142866070194260718584434510842785868280724078784302804062628514246628392532353475807328870579646928598352624880408850024931154043630437132729363840740411075087446214439880326450373579363634352891912659899124938737003929727950822358885330626114652053486945109015688017456536343074421889396503226292902225470741866070560345457196139432736135039503612065141219025033626713795614522992861790209968803966728640492397311449816528799121736060169627538575597562180482329114860219492393758718479049113251231170182474246800999384158993195605440055775564621225984812953332037135568744699261629213285566091597556591768471452820277272442085506849582219710366471798568507711962675809492658012114931097012457674443241490553335048628873650880040719487033655987948558959228416730086279315736248853090820769733180913656825064999040917906393179036457771140785824782310090238081185633295962702374934172217479382531984182264530688867695726194457085602590570353561946708534658553839810149094675808288839234188057742013062190282114114552561471238359461850328306330771605891622874663240555329328880621737686312855972444928064251518244260910137557555112451972052331014596219151485465928282156209677429314274717997905834254054997918261146646402347535214844215919729865820234506661424224728715728207358541295490938970589769751541619189931088216236590669043597715966051258171139839876895709149421827400664633720335685325907304495751532253795234248880434080477219983039165195734892554078632066558968653315434311647103850888357610359024392625720835327762981990557438148999348396664420959096437429918762354573838958813715864351757102050798779866072536214488341648980792505733872754343882330311570893785168249174427660970384046574931988563417973289163632155293748022581438212150801341079172037027776727381283037757096129493357354198019253272519019657191851808414181511359566892428466845973261453633506385761979838524495677889591892621019210923915087283783926233212033943781812127841783204870017638818532649031408393281405461664590318803595599006087113152602023368330104675692446333046016705112331892238944952856622608669556521262453198548195821210489414966334792827013968841309099387440066883836462853638058404945435561845313107928460779012169055633057147054773919240328550626498724280920680028883324986595008783944009672241033286318759719112356310230513192496231989664438387253822015366687883586567059323112205738042320696441267661604742664790075329219357171955221906852810274870835116391488021446169477849218005236491875305502606668803699620972813422660052544350842043529743280569786217662861808108223106294847764878099178199660172206057480128892464739701215780397191215660800013281368320246586202055623554665174085665266153215937202716539484977062648478001295673066034037876591980821232521378436578024855386695481661751604431250497818114705356627581782462065165559227333958238763678228013112726167827385685957643649746394044370622405806262917498057926754080009127151886898875240726014541346005584099084930175899104204917291466981510077280801235943401710151648785011523512854778848338116580817720402230297116636734824658887946384946167747295280207010541669119332213083726641484993958614442467150123164522445573886445505352517528678614813643227406077453832128235023704157564556239078438780436634093566566743107858573757155195376242695798241421069362375920984210414434913587031547315214659796134687118653855905202625535414142597686478047861428590302164927634544037979350629124495366401178795111540033387676719493561840843403357893521483391997559387200783621204216387088310210335665865600453989705371523634823165571808199679956311828667223646995569015554692702165134760786335008704705795323954688237452658098524792343181916057231626169560652182101156063150454439390062042299671320784018535892627710446109564346293394783991732084829505184283751594041860613604263468094226079500482788163590166301567701530180390139226286963849189550248404085917182077897026859356326717183836012866736343852967887648205412761727386375210347279997802708871945781766962668151863543001670741245134910132155517318961271296517976802207484222828420190987775138769349546393523433980154827589316386968877207870132699866309722611084767138311414118861539222497494051297614660712257831559087590556038115310673019457689199379266351701069255623416713358397478875843544915292591265193784023130952189651566538671678900288464755373139468240227377259571887584137262929711555247682209421457325209306040216388416545700880947226440617327738809351785835084196976264105047193345318032235857491772267630905226409605260304836336532043371634487577209353271641077502255473360921116083951548486631722935721873430316980270222865218110778963428172819377506950671968095542268540498336168517223326859000484086864220521558467071301986684602452392897500948136944777264174429237064494838549549255571908230325632911829973434366108770835004897367018247901784230363560281681935152139254385772618116673229347637850739790339773260479858230867362530942870208977314351368315738056514501277847244239921084126600624419283954525373395348491554657089350986073062898543656605912236073029059024857508763827383653500799937673817521688016033868478419243555092980431480770731882097362532300385009038640333443065228641405425079126374688995609721295261555549559204998258550546117241985968398766590107386410165690532545478199557061186730661885590381507138633087023403732454472393665572297154425818100478372068278278081740653089928370898466030912353820061777565541163589686872852229400444202548108578479786509589960029622934383543553895713395580137541507871186324718962242321463148129806778924941058338510378944800543124637980396765410333367455738070513648927239382582906901129525312541861852568640532461236853771776382460495432790843822147979860814343935688550461764778774437151883174552566802937943817145806830599069768770281358550692395998161420463824466031190074569910898829009772190036899123216280610901050231222005579447576230264079391168221230394506433898567537196013569309317801737425278841004446483320073220931023992488153965470734735167451178323789832859678183493781771232602195059545988131958324739481497501102030364356273924949812639821426212584320855781670843801132425125869391881292352783632839109226596250085696013792943801981325264964447309794321655429330656449622470680540618099845640576813272005665555573252355869003395550011244712612851136951480675395486948900351964258577755022605236936090047849440583807584113114423010932501084363683302772301461706091359481867789462545455228973302062835484064177950386875365803189966201352692096211902718966971715860483723334614925449938573364494628603584952456930077638721709282379568011019856616692202625889170711933620522712855953849220598537180127357252232287477534682084020334323345093482396483068087597657028767453424552982699623725953967916246819014860931195635143499565744366855271719450345758584390552730518793315151537306705806180900141752908871566276785876727193564762087328543315011968772475606193453851147190229054170413191693654950930983986884003723659515360548895058743501756187018209083579477674720062358560147823223346319502330802724454618197761443141285825317697694350692598204662422573039352673174060649279909506130503797740490278606719312345605779088774224920760710400775886318064655440965199240506359654585019269374067657439965992487052022044108945791544701000157204521976046421955686496792388993199411194205293613046148646066617148277337390369073305490611071921425234632149425901418009661399417419184481988759105604364064936011170643426455663226204631431306539761874307532129957200482655570913035972882877418720615172830878526777163622171480051768701321581906042269549924559390826118119322031607502405237194399183255535617136373156494363282956229616256872432511926493088341561825456904722390796661952924792192950738953921486125960545453132471684001533531461791117089229838873395383781897666639762252404848720111618935523627985789762158946920795183124977352380692350116057976489861685284409845460169300627414997114658636979092209312628495941036650632684739242672076415524606302456813808071319566025782750735565870405872586107199674551056722852511847850933479710572550513681538646503992730571125528144344165059636235425884987442762832541336380757013294483712896161283061411617129558776578597344104666172785867418933301380203881739162379463855186268103935069779782468407790952732545508789597774095573223167783204512111503902757299933813348103695375018956568108242875911722011288792899856132147554183027627334574428384380661345298527485024534112081353475932694942012247331030043104208005533262267496328311629800354663208976258982068453727143147562560469962054889804309616081983529989496337148955842446020673936203126519559366355238991819306310500325798638183768081743766812145896011813382088591273247061935889742433397912910723490345560194573975759523867930392704429642880543236150942033067234193282422806003434999297233520114750820041712852429413504452134168160927655126366359274098640706409173835255484861656919542910026110031571023056184880790839408689146052899543235490485390685567325447248162954184458119685014060256723344863697862983993026238385011726496335531877929020650086640926755541416217273436730891536216008930584981389776338411387332480523108083786796492184108658900440222271171732156294381766540286262366716553986229096265486563933185255886529116115814290642955807851796660781945634528475339592262730701707107882609680195203130898205518807862937876330545999594884980045238549783724636450176772330444682522970345132349426219683367883087384522667941400161291363669935705100014019049778181875569489795939394295438200122817797590550764695623072310180026277679131269913953878258040602333919194590256887205110611088174549525329071078666401476470180724120831611710365906668142067153665516834478055684611974452508285555321655449145258359324900543858877149414037563292237107075360129101731967648371849782407351500101262976812200973223761338572375764595096727740797724688453112902710391727991179323464179975262716091532853726203647473725109319403200146845772447121683129434501538798041171132869728890596970313700513426872352749310956575208400678080672767027025051472353195081484541264218370686555862577173309178792324132520196041253840365981953685220875293196952616051857280640689658345207522927092163436476947350765767926378421836978113898120613106665817007488758788175976866920811380564765847771588479089210806752571234893034697561797612367579345295008663720800942846975667066410082538824153711016950511296720657043141348993693644129214145082073403912759654723433396315408215876255500473327467603522220346271287632623863841380075962333810374000524796241367457870786932563647394074586745053159535001970402255157640774433191708349350126701182231295487175988022805854632818573534967510904362813270239692659464011539631611038419671734604474421133655735930478126293619199939066485778333408148761184960384279364685518947176983429087313233877754103494381192929305890266059175583544133792029636759550881043679987976313216525671212169836431196641300473422930507071273779403114571729153453419615566704829569302058338012140060904537816347385258583592055882935535191945213772776390905453383705756464650805303885436869035551603154676443429511888404390840166954894667600802253112659254329478816873588490190209327151119238140069176286294955772655523075789493254184119941714544642845919247048570626059576640075210441938798818071946380142878029695864002114563098926881070184814081319471347058445567452350662389170688831507077391033738292658487862263340370081582190261036123320893853744574464698190820617810733547056993771106619645247499997393597726042990763788203793300327367254202582385609845065641982616898348892449362961665501951762718436397661890084296060189164955178646827948975114283054923549509555520169005861731980351843639389616119795700123402874013075306346410807264679173335322798025381376141964385007155202275714077389873049433092566216251822283292658556958836021511609322203632300389328819130335779480281701430245857527616106928028325336592196413887355373941638766422380988490408965397551766157048637109269471503516464608190032772943363981671363555396651985080350267358130474020462186573567861577197040565088515897167121077591116360169819052351523658485164660154473202155223777590342625866019428628778840433206966927544895191950414680299411850101166215140492222106701787932523191778694044086592305273058900181724491681088597407168747350500547470880667719754829551247991558941148962527505618251911786633203780032076342515767856919151174926802173607203099722282716116245114002226994542840688309715720806510883571193309770928484650206370065544708854096687661075182152073598119298280602524841443736423405217990153049442405716146111255593487932562481718748960201305856238542504903436755119790250667469938957202920318994465889009487582355618856898566484129795941601508486526617083623206884970045882443669763790349313139171899270358836594983555916773429310370047697215678859354407121302377395816786917553281492449541183012507656501917483902302563236448443592273294459063294267611895009433799568272556685147650958061155142373520700331947935572918659993936783781695513030082766207339092082862498721396118591947603640255199167649553061229416545251280870144981069404889290521691482515769469777889242104720036138613034213201363885309667805145207371602230593508139727313242320436960268372542176839824602682922113143682569587677727069722601450714460882181748818136835901988825641407112781798751093930573094863307919712888873761757703283275742616600111388522976972823090746798949217803269931381250255452688813153292366310426259378140602531497526577805065466384616934801357529471807953610591237652494029356547604247431121792740663923947393480075836455479813276026239503698233036369971360553450880757570257590227546490100235461011710216177860165185407476149888125397686692309719524008094179530474427925562418095323714726157737151456738581187692814816291645463125971874016867685506510495230576150810062578289118324152184791800873173582560054239297263948597362523363947362075023484790912423943220770835515756579515409914769876956379946144718410101320148445023323753524177883464964537646769772853454917314093649708736727308723471221354241791599317363357695172009797234427476104096741637124124735452864684430316165638388898337184392992967575179825644256957747445809888218039375951417007080495437061511203026898023425678081688185937122206188384439507999774178157071378921462349969650969586674491903832548085886778088579896434509366850590029196409216554775266773425087736581535914361154522490547432422899850515227284028165839585384049096257508051038280604518278638260022825419272471913998488221231611892340584072424749770836840358579041948076334247052153289129230471380501325892908288887862933701588746438770482080348049860003252141671104755096412656043401318611890051895521664764515811081452857959924019185783806059344152846206232714882599349513783654874861123647496823133531097560321856049621915750583080981254171878777166795642882130237797261187648788696109032006888393632406109353642624697587827809827477767210578965509273000219096769698860596234490025482041750042587455797824395740431431765174952979440221239567651048471874066123665927996597303895019085524502328125275423269243853299618754038808227234452162343619494347430109440474874429199457708411153414072490921284713461089232929262554687378134767082387725784361534562746639310764610114356181296029178389373574012068707511695982708625710128934170115914209548922273056835131363715927282895990876332332456537167262018488003380356495369597916765667214256916795722952836438098759211870567621015207993146681443079337700112785932087016626076800386582990624070737071730840984972042384911460435728594260642357091713382592562864935773147917171069828152915838834875233344981354225086910104861106519920471834585994145323658742151478875574239111448426169952503126670525969658847881464400693404393196237331310602262980010963762056988531402212632861482392335415193149795310406131244166738474197902723582773606377056442276359268443751753172012447264279468309324480305977617782220245553806861374413880422598771747789019592582812123156360622007011873878616909240394568582285840070770951674686027419703406259511795246532449699120003326885276737652441416437175869247301885841392778820836844724121079086864426093660330933103190086025747700839732177077367658276757512168984826584791041083236442938341123881225544108273573887876639701012680962748474784091075090693418384341173819728052966608936778764034495596673487513207917309328923405482256543029200275709003419627000010803761078544972549131651468844627321030870970569029466038600342631872549924865237873911240744390733135154013537842580006809743743651962423071215597416508524955774331273637716617569986172020403651282863283715518103148715133947403363047750633549826337982047505361798470009627913582297445320338699766135169991816605011974673458816650452015247741370686396901027704597259343155886656425630736332938395528971080066632858623975486031850508402864184220714284396234695182369470046841777157590678596852491535618209693509447624086680009926476920289924097246008739778578427521915937059963717959598639377233251217157875212312042478898170878981236896983688687984723458083590009301403987183645904098417603418062577560229501173950732833598745640911310336698851579615629440200560196449731628539560573755252070848893268898404649015589179300428003139338156579787830309279261628301891352373798459192361467435783349444572847423042698182404130153346655188463812225195350559032138189225039435651058727221877708392827247312152205755714257116775668807778841471621000014913961474404058163665337687294010333370441944225655342080605990655117154305685973880450096064084295924655914803959120667420090820551842689123415243934241761255862481018245238092908589787064317970493622678302126824802641949035607972321318259063062945332342159809166260259984468772721618183645598105574874033768741086217755273733283412520754465396453225824192953787824964206578681237520259935917372103713667544688969578456193077228229669659472359260720536797202424640325081728052399902387358233328197408265865280661032694013235410739906049219819929005001013653117288700613172854335381572941784724736346459313883840319664613986839082106272475616575097741271156707677397877007345600552925045700920386675837010078788612926490652144969354162887632193534529271200033062026109391097973749124955154331243626475720452366996202764052214791270062411581049393357265148608632751851155687122634947352691223027670653021916761392578786374867754666976398012083960458392688508897208586912416250407934745143253150959935430665845847774221863454257729760649220068942165675204900339673595979071076997585007406098136908988297029457621514423838149537774164499852611374170903430481589349210522510108990732157464970581123490429426178177932706321137939350669341292114800594956250929437178374882593778967507017152077481020852883138372398586670950989769821280119849432171511924198162033653972213202521062323144256499172398963022332666506182345002532055281019289517978477512175303730134600805633532687932065183861776755932444202251453188048121275562399428184014710082444526073705918563767998156661708332704864187528678387700869947991796909430341326946485023342088687005274883518277312980316232835574662639794022457250076753317897227253588745741225802906036086422950419493000384747750177511196722340684474337153680425177330165199576228709932999185533222586811625108186070793996003193697441032337547946553230658281357542931474653794235425039763119374082227565029242724331599819188190240694854087103928398255838822198734865535914770531303721143733976298230924794380430925441258791723493590393123470908092292506290430155269935732400696772657129725141240062937103913263890527046332286214526308534807562449080523472760307715510547968435846186486395388341429085141337265850155054718628716155519148483989069378863366084332050921591040098085556289601501478751938436437495622392209330597230181894948848226834480746419311192066969131451350168575411778028480883857345446399997230917247027270883067595804936839334324529424934059898663956830670213062750841336840868910573874354819038223604269646980946316968515398159833582898335759339124632785970107253625562692404291664872384426285035154148721359033555918708994851806781554629479781975979203242219877097503360681674995413382040748230884109117491343971003143980889328777100389342126041099324225568624247838740381020343996594384526681360079243582081550540864408606196629847047904041620453619341970265881030475866998959828016075458855629518881545991925499755432286609865450713850412086636423909194628188366237325179133083843842952122946238466221457261607267734212261897550419431661932260516796064728014769586095318103711154876523523156161048763516033734476615653504598107289069226160592275312797872120958597861273527258582105198624754838878032863824979159886908814056042753605526919250866553489595786637440113085542626579459348932359115648242553299948522268073094609671689043580824080319063992263406313670301285347014645968988436356537198129916988985973330759681639180964191262450012258435862303439858350518128904131001918179821942102003687142487473679150898039404491195244644082336570868021585932274164441138636812287610009549146377490325729128543987018776123058528226028192516111229891439250658476192094356414998312010413046602878560871490123790085860309254036796007799977231394712717444509129193046039165584089185866564184141856495491881790614084116435340328586196857483463431612720422921946189242406646990885740738694958025685419206929643377802027514844284720122252000387370250805412550950894127879871292289684567665697188316770347292216210587797594723325210235330094738555844081148751303656028952469897872204731999976316208608451469777997318360637169410020444028242463921045258224745810290150226564866936659173923852894979597026115322961278381166837814145178182221598309454483440577112123238717783648794388530009216597233992430644951222464034904977353051194254247037894649171223104679088059650221256883242866397066562934000896991873370058860793934749923862590788747108879455365528963281670674289283932415001266915792427060806394825155457177714556250945435666247824250189317104329053426392749632379777425033572443434036118139434328003474835937762694800763658072555268679799984112023949724317234971398353926656989722003852364365748458368390117264294940537458788403424737418941400522032302979788131850393118372784030250062029179236096697268426607515478462696657773012789996037359464471857297051026027580653617491116645697652033767575600389511741310168325626657262147826474379581868828326497681765775528774155794391767639224685434318869324444965806534849731710483909168762210727968375090292502448254846543941175910219787644858472023051790161007466989925813380764393535482734871749100957063858934845345907845730108454190166654701594880289604710494402938664381592442768170076968461148864982856969586150694087491820072265508571824684635108966693669618750433958869446995195691838790412235377725503421066144198424171594279017535827655266756686805623269846383434291456270739625980877464106916343937216495536174616105570154551328900735441009671101847866731821367820113694318151487740965322853785642539073021965420710314157377651520086576467674906887309822886766360216601409691327478159759854217913065967620716028269318888740037228996148618550767617074772916677827932148347851102221864154293956423815571336047410169706886099609900163367623272929716075296659481142067583873783091945941332701211456964243353389799367310576121592531720235257492587399955297140490186701939611061383972489410006885539071620917507476484926231896271541418612636189491863688747415913172430165739036694336984385435403459290508357179356123021405445198587773045118807353757618224613244710668784455791047321828104711284636659921518941337558358017783817606312230389708591610132106107420969873959403386063778306384341988601300641439938164994906450729022771884793064993240713389431147446507580451149889598668469875876999923404468705967726993085215740404984329738261401836708323084511648401988719541664898720287599064403029047703712095903444910647121705402895637260694160962563091730704862214159297458043438147425113577476490446681940471263068920297532470416940771119000365199070462390844530053645991300722682549808840418061806827530791714170258237906608835715963932302167005136753819327590669291559997831254618729364865611331838053456396193124888034368930057638393693380167741150983318830768265891612472771436612694130323232106783270028933657388341516857287265643720791680862639662207413209193133110717506413842365776138173326538230727074204234497627154673872607226739166559105915180372269117289155204232449217226730741364211668865923458933334756822832322915877620757665310866143455828671389808536121859217159778606794019100802162105961498956554355909367372788805550435212984575294282457037958492182870664272769807806909741759901733589641877903626985317533603452856681785810605928666214398014647678024967346823429044888777672135450913107500412636926667687493598301427124241597905827144360803631015836987658126968660623581951180719642109773001609390197367782967594530601335823269291321231606374167320978163710687890285349604845668227852611858640913136260792179435194205890710278992748256941265041554573708508585217376097063698154168903249422355413493238503490621992745533740359492527670394161802756220836673747548644467675695386338774199294667118058193331225769620537845899089624969984859593915798206897896135482031773413984193952054329710050396942346800366871338795451044893165712449293160482730507146064671745165157313947841174726777858032707928982271737633255864185423507103759493912972816559603304534868124920702618482066498623822527692832461056770130580056939771599253639925070605200477466094539326572231693665916527999765317248023726941180294022405368234681345746583205032297147922911519810939894307766416926699315898644282527426910805936145769423940012860544775187054986499780721242703488853090127321598064258505994006456068979731800607108562890334059211706864792205069717653848699893312141725152521990643393090137168132939844308489226840004887075561054934977641947671409547597804779294383823659751567252495213195698789469280831661310813244544357889689837908483600910494355125986176036518397834087966859141688794059232334952543675314257723780653051182682153653673780453375602766857756668511511722084083210270215577303198389423110169107435871787221057850820108305873075083976008126272126406299289088706892333822655953294351331608809854649604040047295662659507652699222651074490096943035365155703655723988319694078287936979306785713756923865752385341318538490053866750580402401206027298842658824540603751270133268939407228198398874192112668492729783496592981150050455905308493078064212643374856181455402085459640602419550859876252023992144381993787787012165403750466651191764340876629814075608959431613639735064784918001006250490005141111756426846724062213371223677901570030946254758373064075681290956375351739072183824410985565110052204210969855940727544578472433786711074059918420536212784717974281281997662084703474278786419606007721234646496554328152936020241236647419349206448513045823108387190661095587641208190596963335467914392663030557921998669411259993867939624240169834504828519524476912643929704097884940424935637879222239895174113778359648693174541187323784691838654768888424880658765390958995026771660034985104153891051954865899397401437717742293548790906306713732983036989524455504735663136198099767993775916345926357470884509516755739362619803773412958814324040069463220477317352650714074667391357886629990616570323109387366567609261431433802437825059702664306428033058817913780203350685331278365394842597938280882023276064141077898469219449613945010148120262933781230789133822005460429414332274635651292861816718633896481388490794713218710126500446831966458479522672267547268120271631068054111103280837612637481604710571018924069773315761039853065068087032993301483451800749489245995227753484652045074435389811236973347266002882226444603409572710307309607777554795150407258003372130184877346867299461923682865592707180637431485971756183357460089383278928554426202477434264304714154983463759789924602514647135658606814469972123252252574343496154790892209596292080815197119489978592361954087405568643131390607445234777778382325549316751892091782724926409640331408660736526177884702834380557232894466742261318742595364087565042665275993417949710558204644321165508031935868885874295890434850478920040183808461150179239453057394013248558196417562460040596776300890067745394777006459021372185021345989682234154372041971288416274905133341133798805545915030312806473640892185717675911184741587201386417888466033357309836237649372467529970891699698040940930557596401002523610817777324685200893899765928664107612917333186678400835858932992649383740529424269762492495152234333568363313251864006253836660597816956004697905747655197052062782562784910399576200219677843289320164271329195892727638329587926300062354397260971339234598053524236796622095504922053453582172718873264065120606885386137007753035024318058377873268091098872796486761113455747880786849715281972678098599758115166797489448144524472552964370744692942531138325108699190552887135964365164781862203192705800847803073637778244125531430729958608478919587439827615702299362226713231685948782243213614228044482090262867815641966777553375253180911627238569816273641281937173794014679537943617894466505232685895675417611477200989396525850468336241720106822324078200772048401326116512925823428542875367958207352640341753291038607089153618163063669503115014503452837649861901276577035736177117141694406307101979250078811369147875594807856114322658948396092295162162521542248542012216637663862504306735003703117213041860242455853463865186334553317268161329323112685009744031883305159070429675822536554842208230721411824237252043343952258658247114906037789530245675427634626045741751039952863442189591097540034759548868530443557879175680144957550386961688943577884491424149039316710095050957784320949706801916240211061756088028343175239703564845841518315923595540616676789772526583441733651363314080579169688364788135314217779102640918121303674395924520905881661798515875725721352716324497907905157985925699561166943804774917646286822173301231274341076075420005314491150497958564538639197899264813550969485964383739169191053347034943788819791477242157014092980141727430890520406883532657810458504227590973135636477901025151370410477657138484607737544596857492533196740774885605590898248017296173078122953539179831769997462888761611465959056538516978678142765323452600325514144969006927360293798772193607029283515309242595638306467561512275106874864102420849278339403799201778454876520139527205169222424990767293890511064162230307151734676339158911106828690482970307430027123064601602374920906133796482193158146188368219808326495055486835907553456854944628081587588913642914383537205840343758450003691308012095856300587387943336746095712689725147933050877213739787039044834081631319969675021276249186881234395849094102220028381458643311797167429495293296388496296935494657255628109044215963876737815465231930816347470816486243465227943160197599820785481152509809001130044000136008826787713376060366065786637069976879174609056651061400989847232390628353547905949235960977178970892187570398029367305426942142954353727031264079256198071302275944886357692323047539912139410805903466044332471439581933915079100620610392327305861656238196660491574936030216967501182133415615494404860743350310708089691068105954996777332620586095323434662903333396041001223488114764092712768990876763641786494058955307979462172115363109188630687953412415410009559485287725318233380638576423662240836848452092888624966944115836889971682322444103871810858559303155798351890624019938683728208249615049117244626048313738566161481462134014144821995664052537435122099898134077596273364323354892997712346139695763124945135766467656845447008444570178841609254520645021776558913863958437598975999701465907931497394780452212427732245137157397670106061184772532887398233400750593440491671468099374636369142629877094295998970980668524035411229871230065008340588517663332104471073390391346827134653144404488502384678873630633460400063368372326762243000558005180968711343335430156047693701220697419121828544471728100849882592878275252350832447225387368328471030745855159285589908648040460579819543550782987083289868238676704811552837520508354411859359454340312845225892179861985313478632073057394194904879758679244334219790479158494181017217320496356821852275758187025119853201549512138064770202490008961271630414422830609298591596587257565205554616278124229832284095249889055025667520025906691032311329343878101614495651914446477790372400497271280074152270218950410149591193285664033179730624241266981240145791547867071416464032699910471632752451919276242473574707416019161354006516286973910754681684234424554756378675685277772914866596863709124336161837489838809603777811647121499698312090121200116749558015308777543131708663157048645248278823130190494628671785355951098904106023745768231239827325158798411018718390213472501895180433543355389430402763388754479769598102276013739920749477936129512955834476552011631644609044197302524779665275831325204218013018813453523225721190102394411553183553572042015943847111884971947531993371111617192217483728228969361146502972426169556816917924211250758741248919742843615670493843067357690459635682698901978392417192652467275129795936593653697971468019278174130821319261118813615603644139422574568831757541416174900712930851944445692647278059070130109359619459348498957233578620528707971097563527252148460100990342739067867926650257364704632674397234245796996317310350015804940755859379151844580757515372144576814198884346936996693277505758156150120504708720556786989264555497267357960703268035591004597277264928931168861225120397074188747333431197397946675193914054753728306599798375541847540068122245729816681250089143231731798564245587453369230563481879446974301198747366850214550564945842461354282552042433593295154606870923521948037131876012995297460301774331353230726337180286850450229960350008040712313192005669175871306540200501795290148363958004315657842628129863866765484688588966548362619696666868096726867940988711342213531388949887163097483271049042181862117402967809056060703233307618095795636643278839353838241880681160265950114158596179377846353615380392307238868275617178889404899876178941609235205477418780006645121381130118134584317090736684028185643940362334178053804540769808676675855604882038256934346399194403452449043773753488185060588899114012794044261885375444289260971332214058419385247134266989250127801958667104589843402853575824900368726812149519880586323263814634816599927478445077440092400085528339764299320853306641912856589119528792763422662749467585801583643756756148818876233251520424101558735916640648925839055348205155712094037081530483335866368749659165718375922477372568345018548174275885218388810760154501856565091952116046160405691079031158508273486672755290102005033850811335754642726643961639214237762055032759695305268779502972712673408534048874753879934257725710376462324301582206708057777670441657129519308083842799662553462187875897224153498737311983067332512449344207389844578666307856202434425686725052567934174680716461445595389850194159396448109110730041444911123373466180199742296005035494906588240979546312464605265723576428972863095674532716325970659062023808285595782108814367602951687176014055473968432296502194820197231851085234430221205363133715848281327536709666393552768963194369836358333609131758095201471189228177138437870534506306668315119315131612654759069690260955510546222456015533401590413340350303833005932254803112119011447000598365715093172915644954263308735098563210209478518833392191872481494323229437995117207363134657246732221624452785652782511605189843566854475987497882276025368048029739127358744388304704198147045606431228454429729535601222704514092529327386139501782237387899695183011649181683529510047170597346687062853475691367826014450832742284198268026661260500300774691032996007290694598868861946836929059586124985572453507808693616154440080981235676773760441701530022794257758356489784770049216383066285728775343149439759948519590257852246940744943020075781771766188663574394117956438772163876050544029552067425821734246859642195538526184116153921016432983829603002595389792402308908076565925685353172960238746857610065400507478519689847126559762661910327677041706682367128336703183529962299535585648839180733610111039635945012696776033434126635570131128028043637230819375692794706496540819142951392491857856248101724276492821518918807228856374946984376550167285138334794621656539558135725070305767956863369381372400967991249873742603970367644570598539779439409218913839825036340069854321419380732354484311676057987605544327331364753012814540343386477861432054856447513794646822512239673849843914656850725867076875173758039044605726540993795987259067297029609405611650402341385491993115942792422229748361600954039054754906034798181198837759462543070113369145749602779904148845931737958646626402110192144156628457678977452276265176473751966544845392399298478371718274991056519654811867771014035587776366649548801677280160762338428481240428282255725586796595310490911449592367875745787732996367863447577521310756410995399762282620844928604228630722851818755554221073958982418534490537532332425066881181938970208685135949144393638638004140425267135204820813057210652312749602218695628129972277244341293475422577354999113327848498499128561301454345891859208324198970507202387771821874703526077432278840088564767011443859464929639860607793737586124256167639808224829520731933007516667981244076802650361313036554009334926745580372756107855157795755946120245825214417225566496799023715549550045708171129394486820500593398507044693333703181832567257902670021498745202234970951371375049242433314252423095549535926837377154850022909776441648859561526022241942361877668166616727316662600337259357118400348518049130179086615015210198205304056845386231458485893995010317464948827364102837823922207748259507712787403639801499570006189536650600116869802130781034956314544890669836427324578503493590229840099441041734733149587402574593283900278320131275968339408683821971210903747795110012998149202766482805863824227432954762670081288923873691404327401065014492817940141578667129713481904398099441683963966294253082686768180607653604622327017906726487967925859630238728923386500040322653533143532446773044793618511251374900600794331084674339074476310020464826625882320235363265977019685169138823420212292978951062029275117320712728343863716261104557896261566450095653438827622829456460661875657312070591189191907158983521400550420226754569389509234757030468802454681324825398378700786328936124896328544737298157109259306806007967496681976586662680366812202752181437771216149137240896507260104156003399704524093200156841080169680897953552988465229789851977442613908293939799549523425144079293612810216548288142852113529499212062019964996704601565186908698552242405539981373124090850514666434910393038747517627003256219625634227180228343188840146628739453761857621344446600847798663678640991455591818801813355076128932507704820154668272560105139173021123465489264401826844843649414067547336506546130836395981047600548792969815423223618121811097306214617446690939405711542793959136864782227890089545940354138049571298251672998533037829193211249899942995586081122396170454162897847487973038875652985810341375038097063286546224774211850820985047145499901893440224103360407081248036800577728511305078067829685801184933335185285773264936240320671485682012618116336334054180030252943252488134269099224021445851199206379426570402374637177201293107132102620485701722846657080797621078484487329998565010572675010927956766862373744337530055587195964217797138501692103533825592143244074145937722706098720628403759979152548578189353791619986554260019776422781798925091343719501436164128850010817710088928391605580771906587072945483705380939388742186299625097499224744337752154029805254709579045596401870322673948486271566239867789684907844209607863240936098198465191291302531158048657729067351373788100877843362522908682180358984356683985993025530820742186076740491164984198573493837210772547511920426560213558790242209398396113655924019480824701166228967907534385212154196122123628831486011437921030784787353235723749636580130767709659549937939977192321480886487440211262405744884282401713114997086688431084633961293011085862884814779733801413950428971614913281146870678685415863494613653221734138306015477957283024580487529254645824772198003284600514430125397524005963991219464931100129225955260006150161429528083759096676878903879564612763898913303537039120486032825476762166708385877851798646583276906522882272650879714840658115937876094914382767516553210452749502952403539294871229928393565856173604665773752670334594995449395313491628775931585317059504054714735000067380419490177714266421741933268773102149200472393866012164140674500262015074710730068263337701883321665777229443196718353188222748342031552572909142037731211823704746592114440160441658184564250069538988086435017426608448032148760710912530060431569724917978530189715771689309724114755320623958300330142125548184170886187712748510540460248453155536359670040604799811706223830819390783331884357023007802862169859292930559812821181809130465030537660983460978069602633193693850504589950860445152792806249013017498245587570875072309093063344551679548192814635198213035466671788866239732539213695106648699908235410266828416970865566077419346906498859248937470761021599686668271766477770834752440733281123899982867695942662343725595662399840642707473746984923656943928694435607844319905046933323774139778467515916681149668530438411270641026686269887137541882213326183993230677239390950636632357056223554399870646047166943895267559963632753762584838805526995241711463045447504898035043367110174109720761088630736956796188920067837243714753130469090146245194736967436331407728488071632654118143166748789020139714269769209022235722598226974437185229341983887508076469482828204171166998572152843301149092723732478351114687303280420761873032404291871122724010917719176072528875621505497844191173154068988064824401374670390332468655225774416258875630869513844125005674459356399633893489296437920278405222198388844639518029462854797406668833871578030932719272396111617097936244311645970606420741789810855708470675946361194053674103840426201216211081128253287169869597497725923915079627390494026113135231818309933200050683441399479272369597291045215358772064189601638238503703821821279817370501706976696336088665824517269722165506510211535594839737655558903057859724817862322775593931712116738463473503705686642794011037876345442247219740742741943894262862230857832778016776959395762148248541469373950072572953248364438840121500915627539503394389636592362728793102922996283033374503887240733146976656506053722631583563856401823324354126818911921435426185573732169314248649610209541908766570735787338420452700435084916857031731689751765533302421364637573756000316841922894660473897124131118778353581648919841472569646235917816237139449857479559332981104233550909616305133686018498305195843438162874160459304528957855840558448334500107112187074145490386577287354903852799195758165390566358496475926500788748027041693517908418930032469506056607552434275964186528004561861410893129899817994167047952724850951188298290240829111229000873672906622618640353373570560706010653827858935412016472061720014682472219748277835490364463565880167243164767269138036575794834366885025283862193391972892348248195584362180290837332675143361249592708122355192346850025929325545378170739215052428762414203855214088498189218225208195384261089825497095149069097905925824999609012654354792652218707747172440968580359535302817664390617635804416150500500982691543984181524938862154413220779784062429095417670039920698313489134968506843279631997101539934429597390157270631750468823095379900237606211769946473078126156986094797420565214333442877508461721853311035600186989875760510594631439070712497095689932859261176562325141315989213643076421024278140074133124625893251140009636025569381543781936361583630377366319485531240391740873260340760171188045076130968982768143474194565737713751078330147565891055891853780256821446164172047631023839630368094960530325599691336295613355381053408206574604869950679492289141707512346600456602516937643897652616797858480622784679551046470668599046241493416295145836407015288370906219499250579458282803201999860287487060336496874942189902000969440622628050185044436880888376444413080947548968025009463619311042874361656027521840879454459604920937474531549654430705994942553972803710456879803230903660289372360170950417827580265740406025951430988448356193214947101268611056491597250309559637689555522306846066135616905337461914946978846956559248263874950292140260731460052923535353043768552003909023767324686711974160199159511156214541907448189678765814299514068861942268707751843461332577985921699807106145830820386501461029700091193372813107491726024776529763397016039663815493360452088272355605969188762685854113867345866171718672156810460422775674862610563006068442323627754627998425161739411353225911157851831330529661674334275083842746213370963432901512729563318902154157079415634357895109446764646524972158639436879627512255355784832675284296776193943215868720461661819920300527746206708912541270050254318027236493608192290716203292240570230001536273617574622174693028527897395412566464967529645508544421475101321507586222138723804506100109962304598868746261256972828647204354215955951579237801989243642109707190099762257910633275557380118177604317910223875961830927445966720489749836631489462307927250621064890164182713990686316581195330908824614113228088017394984487497609963846212777356831237075342441052549297838072346204252923259373331987195084969761992694896788007068351341603956056034082490751942752516064960832171492839649870693157090743338201241435056086329700600235221268454821715598603031423098583044538578124408543826174055359653039139146640169191083937377244504321429151220580076711098706887817957644153420737527521461620233085840991762281219390856831245973768394961508153601403754117894200279446893031190782573907097083136461335197370679203312586248704096693761159516792946135385715553036317494239539398985863750443949167524003848476640352325833974434968866682211368524195531964018061447447059550071707019513762973878736724623900953760472471841671233797506821326007321889937088565090044948524635976371409996739581450018153113852301918225014262707663969232735406910286465376333595141427308244749808663826183780238298579678470341124944924075350994878383700119048401326460722772669001691269059434140617848898941585951406021982326311579711213369925633648461377796397089001828218377527468087871017064232808715089247995791419129714104101935359377549162347151736902980744084197473343417805763572483992969771402984431524328602933926457713651638314312968447608665354185613474058108198754514161143331834529133083239387803165607918108251813186398214972518489585025085773173787416073351355266598849043002241941295627950802113780864808800089173196726318159306782384146141001479706579698038972140040846882307112819615333985621559191351984177828529957551258357201919179578747698397103777108192366610849555716397485133425961384671428317019322588112244094513008027709016710515076921355249980019850426993130537210546478319981428244473561327640311138212786715247041665437720812359735809829740303315134310429723092226601574413820937726636376133183996038031806006397968779402308569595398131204548543486031579655857699447823622345254044911100906076623361299404804494320323772889511942291919925308977833475677190239004045839486979280492634046560021895632618735627434737338281045833357221072951887787505638408723944850087552901826186248704909617552695530796397626166574114097642238776194208427607736765641321556603128482602541371986124129638358721677358167690744706365047370860337923296882374117173475633521186608912716867191627106466612162807842568352078355758353129408918797227924696953853297985914693130129013189458778249768046465243210184572683224898067645187594860840848749971615529265110335630844349430529161133257990172207249184240752546587022954678448488230707946055447667864232135491544015341566785793453571949926223650894704612723872537558506282510471230021909454016992538346849162153575745272116072000822183002075992607274242894520746940732684116096304008692222008102868984814243072964503614549852714588467367139456276331473457551226305213318838503839744091538146057446147183504243881481838850916687910211808015426053583629013322707634286778943764962134137310034714120235624372594700202204271205533615366332759856149363368979136297171349335843265519868051061506218203494098866801379350741131886722524506508629119256493080828712811129146300833937425056657625132160021235043679785795454482169163048004079656323350379540993887994315464308885321204783740316834987882201168530887202476469110292596839148656537607790108161714563571385802410615517044329714625140303453663550902942259750672709143801618043626613451048791868739317557332277558211610609774653891396436343468158797675416487030406151980995235471774044528622745967252630499171045367018306761698177910783212752597104433761947637043692899627459852920978902846933919115287673274439308136111631922250545932797664892303980597075769081547207360290475906124631097612350265558966716986948955867295927100289117551227294783342432555617525712476583254676255157915924094414649720643988929016331507189931478651847183009731616097812982900583377941743013178839804418658241219031734900474042451274834588959390550645469923466189249626487444103791572464616721882324410167946976883192203912809289383338315535191511278188086471279685335717591237165322539897846049789272136035992868677521669046004097924071925623699499572258704425012108858974899071805046252407700621478864913855793384682825176427863511407773910287816272683477086217451815844332564965231385770254849413374903643631222130043144412280537791233260909777175985968251333758479953611783734677180337455085868409934394764951128947209833329507563853706517720219976782919286358727338338967721509787902428857758193305936750227390704752134940811398322711646409734159723547915982545837878256611995009346508346762483134521962379813443652137715566056003198344045523681819477988443151358738383480014809769237202590791782958503085546427845239499806453693289646036176948112696149401629837605183578311990811014381177998780200657297430166427641215801247855607768301948952969735575002871831528133766147080143772056277053730268327573406703922378293992992932998278128572897280020148737154947213939420346858040800623011881181296747432240290408782619789617103343999064069803040134291037202771721036073393447955879517128573750438563401458945668787576890010425179133746991969099779954247035386789437170543138719943088129583634732423012370852907675693284170512559996417023059350355222616619788435742668096209537908392614348637092928613166668511206329881002190501311422223053952486592609881669560128668841549424103353579219986984398958419551184682516170671630913434384725985563740440753925255084717432144968497137027870293220208669170266309762263437863337912589626598609711780102365194015140371167219614243569571446836839812458245812998368061809417814310689896495315988168843665026263773925237163514183484068855545084109760493643723404270764592547353914823367893772340615926142677735385648114023259115528417657601185556034519628138176450479210752778935659908921819907398064537887452445814013461195599081524893247332416537539532573367578338920299523439195391839000305942669713993321000171279843778503302094438329233152834105290018449320354582027905033444229387280517905072411158124421943812881334544694384890921161632897433691021471145839884706762427662143289411735216857420853982445517459967259212934729036599693900760587034861387961641782572838802784600700371020626648923442430261493517221106813048854455307031911016913029660705541496174668651656728250667018757831042994571215136060698563014417095961265673854792320128222387889555245131246937343633104144781462073850136710501939087699983970965466719884420339421358603656757878111360709840027068016145594583653205209015898826001424358552924121846766972794171182342364028806468197016304016203896730083408592570182851101705087600410253928272290481880633526033368708512334537182175456143574201590122197426927940438225991510797126941787216041770887975191273294312894520659083325549795493521070310071759718913013080598605133296754930257983103010014512506534611151031645863975232135838884279640014343036151074092822997590407040038802073306463907324720275833701000889852702036027303154313012483224507489643336443719126602556402614553778194688768599547645347525043596272827198787005877557715051825498743529688854771605152148993699319729682841487526183157051304430072854909439622492866059173589231350061914419829294023132154468311672308186460449565191012243470394234629216318652519976088999837344381351745716097352991192897584954063776866090603665061121773213924945867175447083370470516484430328169453736208364352604293779863177090823330012119120353782334246050811129444286856734204850967295703886684161936246592708567368424103861800722460139914384176316405334082370809562945332121165329019739393450709565258008101892592013332202230256320036076333528549462158165097923672716958270016850702934724331892870212628036782973965511169733406881392621625870248291959714274516319761504663627934028448779198065812118515801395826148912852729046741550813155580632231554695202223438976504558443616207545201889142164002174739026590001403354135544495868339192010814343000698864721958515098924392798857358144671046418494567002490656119105057292752615049704133672518299765095746118594243910535161950150664453425627364313528404384932315850075877456506087234164170724034203808767222205133123378345220991685209139791119645664768723736256101830445748445533550103165808741146205644144849743244783324007563906437207715787568392705619956349427326950258483703803584991829644539218716745668425910470453446105641384220411029463874595888879267860766228846735681972882770632944783910787334414355045764978692042871320957031252919425320092732757877777717426292960227109163146371362411855521414794689005656880879134163494463933709218714804780390228035463997217213438269922967940226658361645740175562036553825389822268530033706774327921127011540435404352059989997797442034762990648193468144829042075621642106084562609666992599127772298890224159322454727385787745889130186805341936866370382780227329651000014227634701910752884510085092520837806089297752070593962124212965158022355305651644765432749421068075880293012359183906921685155437286958402634637171609291014366158774963218982815355884149286094214735655572540658919754684605510073025604684866448087034935956872839354504512259209771631705403947676351345267969293062648754039701840254667180979023208201526200580883455959852280886574761720245202111396004319690372102547065789888610720671661135830220745254988012803033395934853932489506305258389277468923902744862643323600389929551223731880429381465592364598391913420546797907219636614140503992227108645413567430690683727705398459052573772466941957633550313995773338352728905357948945975468634017419854110240305409083730982361166144542204868517657289448316248893224556725966059217967169446701765022735078036106641663559155800270709276681070696619354072233243017098188747004040237311947218097807848623401871394744755890150437404716286081033524833168371170557695536202056702206519436957444320099257496761838627823051257068174757160952078375293470832309213665607659883189971007308219904244362347428564643362624854023469397683843297998602008605110402935802261896806330859052015318179361777057421827713656796316491607890377682252400311778345930994489276741861119178163906226832459607658789904575536116275079824379248483127013391835032047538989662970234933321528244672211100959989375547332019271508453380395363077096882257994421961651865201085678679089137566924866034841187178107446322015341651296669489433351459167808836918918151907353755010791312270071678838438621701098549323671086533816521000809832790683484912322305723249326462812994928238178009050144054341295764679733439357116900771784604841530828457053867401757708286584883655731671550917182646007023595292332598341025920653265103424840983011817541891615006895953674206536762705516208219991221895104259629694714704347123301767901555378726645604320841918377261492148505185143651990958689714436265419769227088313834537168992561064879430588783333571676224752799084142323779158268016459897861582507468429174772068373547561394738702060343943851665832505814031478765998194916199053831647468053746780460211406950655421047934766166912676051932236188389434309995853514782545909761975713277292411816444312149651434947248070940392702362826100625208166650355558028210401543753580958094039207016584127259274556403512754177178582261568959059782604924338734036572727146161939112358723728990001084179292560132153133987714221274119339188798980765158448535634290063947507795247833787068321113437031980913342423188764361657422579883384745242539284210584607472272322494851190825653164023144695283577764813677963529503409420692359515902439392653662255387219378774586496676916610170933907893486116086309567169714968401314882752181786403829893212496049821724510980933443416242173383769648353681546905085877503221879817499855283900444489572520263225447860051231708357925089385722410524688180719109457842562877451111802360528435525985647349825522754895862265797647807952560469682723556651777325929382314608977524165254831406869316639607481843991249513633281246584918742302824335660623527319915177847702100652825706289105742332512081170544832966597072616370079955785151627424390267843145899269038173441448846454940823863312457981709322716003892214596757070172307728143972972751677462384883501383346502325425157777900244616647798809317912772217042920510580752904250487569752256108320763107106412579622990145312715482224530024913666338284949800372550277242331585657220508154712005850200304856231041607112872923988941521555744407321356404180771727838979440535916850918000143144228468668702518502809537613778715191582298831800739604453772126407240345880021056226326926932448341684538307814296304598932668896271029773639511629605572903424330418295250166690093722429306982302458975439896639803739870137995147369101790081554808087071600760259045709475327789045337778965568308117268441262985647606056185860392265476242609933838779231985276599176983520211354329547510812878153612680556475559190556845110753553944386300699836304425295676671758444580239146171060170799083923235884385906695847908077514431974432116387733740891115663258143930192654548371367948027806670842838389518836174685755751765852246421140036899874957850289617228773887457562430874869746573830401080502018515845584081512870221545671220095668194875732496433475089780979358682969779547246508003578659660727803737822322537390296170210379477265352029923783615329140340689914365656027081249177316273986967615746554051147973545311540451620009492309317501056975371513116065188834090233170048197131679158880621010012623303859367125384436773879238193243955990627868280241932865167155440961615842867703330844067450747211930346792222826976923773009206954459730165509643693746213277957644411769851535658343859748350416842935084767683418158894028856814343344100801744159847593720262652268169170713623533498665911446050008312856056357323174479201672343675654041361722792459292114144510958007014874854129599922736698050592235416943552869849869222862558928421621797215299479592359144951766003554926268549659712825562766054889774671242728080201176400815060076353538332349623256400808525879321536995130251207611221410206893043682906956737668239020994639905610340985587097355301706878757103588248787341717978285537150236506029137240646973348983605617568602721375519016674599979087710987500082500864380364363573510195430659045530018573282401786676853795440787302663441055112966768913227066507698984802664649768526054370013826983589183897906023032039844433009560658290855585595089118586685795844004665671994470051491424013915281020705620803978591425494242292987030478824605983145117875598097705693460486097254741973907865542848802820524496399059625590317145694368535298578685836476870173929005671612298860257497437912151324435769155017614507891352470225377740304127460151292302051665788915186480590789731173201235238275381118894339939102551885814850357014374843762495869401038958931103105299214604266611309920531731459545155362455575777697820198069315939026087295553689083753726530772642060212160128871937960376199594176382083719214748387120555429358805717022479162711448160335900853910048808018050735923009079108599586762141305584146024819011704960793634190131596237327426519181012262369010557599510716750898927465361157461099587391738871882746329169618952916635199048523524404532671854815650159104229029804054103620384596361023278725001268832529366336296960277752249839717239172875704777509213114812775175912942433297671500031841464024141084680738057822712286950912705428977752544780870601545580301156936487034331092533567760013016217224606427255286681572590595064111558038545699774190162840133342168964248244363106531625990606353265317952720253844534216746627053683466977950885431609918219258958217926248653736543029233367462918087615503896607300341748155324135861627231461290530473044877661591922269234007691978273487614594363209969951065596785679755781029753803593343712018028236285289898044479291979891514858121885663497705322767708473613077888386820859360587658000152044757343358767745033165532601809153342877969156458452494167486384312843338598096846652462883987266410329919667495620883707439854547792672488487213150316083662523791882639412332172956149511935160049404997370997148616409425806841911496601276027420070274688514375738687074457459260558976261165317097990515025892509578718229362585284716857407102707599400518146744980408767388551932137822171006087314260290821743677561716383242686426393402901508882275167171892630073426697051452105816627288522662070372845060754364380511281033226198829281787805533873593194344848368288878737055335380799023441267488716196209760914316198363258302640206296642979582612118922071516359941484781159792304449037968764770951143071237627778963188401236088450862437783172860050349849076888274988666569614067027778980295398636581734803329227103795744494233383265134068348003604353731659506404753066363719165767158451510962603798510698501496699568001665174255881492648123637782513545078631752581766114907315822177134823810108404176772767096818890180604534743121028017722963865749062292616703900571414806002607259981820537720837980994616337860360861094314084968487542388364994456963411875470967817147632652383196388997888116713506054848039071933685657129289153161240013845379661500108809401893906100955714420779797109990683803819685074383045774454505490339939857818242587059688125355429438712879341532207934141450731738909574428157289854108261669241586792268521318414071443943415021625979518967503084752391280264697281517192191840417689805381633240854180455902405144682588675045474939337956780682339406033775562925868028159598281264352511423980421166868014749171577435648095826445969398570467651190481900583865153749496574288426517952550668480206561949199470820630603609661558978410076667934731656366005312304402007871998334733697798165078782453287680120516828381887861949486170001164088465558593639566877304920605029797474005190023070457566614048889981430597297842387692108574682821767810296330566908866005557441782991472395147095565178779634033655961282966387195101431661733137625501935177837825229012450882840754787462732906887848567203526688798405548084638090814743658641382172293732856078053918216442518163668713272541960908785022900331772604434923468718143777935339022822810471340892758330305773240051929036838138417547111958871190590973200067664261673715334638942228693541356941518618005524197253711499127040163861635703144264344845800023415697840668369136065502903832288558067301513250323698182865474756466841660996031694788893672111132154586255889307842872720122461863445187730471299450666540922674269854544647505453634834738260647033292307123144783655095075369550747592201681479375373233904920519647283585157097140524744782792447123754509801419828223731708434409358920992680271999427424613456095293101134589375770622086075899692687163441378375203385546607896720994494437927414759819510512232474213606223924130083562157687396051184185486205081019934188122672514130399037338919441309765977266516112052531635404956209775126927420620987332596207629538787008411560607284912335608005153089750259252956435189383217918587862821831373666128545398716279316463352230171791250401912542677634697619025076229400796432787565858157117127631821366197570952318543333390505786371082243781879907644670580491969689620098570865876035863319304936583469422521444579772319028103532716572105085661797303334213861132616405789181064758959095205971674878208209130994150137707547783968633866359073151165787948534009351167164218698276809062869545087042658608021222076929368146028137198670131219484997186000135695527707940417708177686659085220107453238246655668392001243925610506383440529584758844141490391737204856411811982477591339487729538605714746013882811483672743997877011388809883502581367327730800255823935882175895966431963946472814389056343383767923335822434799652223679381182822397426032131304982355940495657677717997742690403918106665516396757293596564509192984963056880795391889724129478355985934550332757618695140123646962731151185623738325266275684940270901284670884150652275701305552435948848684578081232803278374565486607519738817075237953373445452563642600007105099518470669702369183547849077829219443388404110015919628146807803221813622950164060903729058447197997613259224509748929481496900314579769444261269507491623407492062308201425089331677088501306224124470002892520272034982814682331011594368690261225635768630234396795168010002934145068595792718081271186733574622298325887224340219897491248741498752189338422400401454680255904711426205405789334759315400413782805105013566481376191264813357994027517737336025421600822961014480489395661576245301325137643847499747382096372401342571948875688541016880315561726953359506094747926264797606366807999303093952184406000699737026569653015412611587929922956105864138805333773314525705489492806993494193679244773040897781725682902241256494310110487739402505627341577081391190201217863572223921845714557479192838288082532628092486122416145494280927584241446115888425151385105043565811223749473669923440605661418112570860440176520780757151072439974758884079753413906311343964030552100191104252886512362375796220530819468364734787778182493045055043051177120584055746012302562249064133945983782733308575671754116305709519348103683137924857690333242935514652802194764993541881905312314878161701368667808589265380199644037393780531548342214646635489563341806319067931630221545853085325216973161792048580559805737630875100873355753573145081711610167617288340232475200787830476207562459067015980671467149291029772201642737795937929189601736078843901311414256684559204013195456795632705462109501123514490806573847151133227407675763133314638992521328506810930148407262851695109780112871277556312507274685991536874634718474605218853276606760458238942168249994405962238038541374523066268633199619119834196767987640173049598820617763343172971206452144156917530468477951518947548434414841178311309406908566274303823835555302778066886721456692350929561434193707802754582433675874730811379671881800748110062632999962632895825817004456053828094146600054179955821007051011569458234453000716575135650615162757774402885004905481222435501198104651003502221907519489049207495113534734247015300437504317478309935521680114858630915204858217094561016299704721691600486262478733424181259371164499531915477008445905505764135750193578476595045654868423605053830484669872349162619622019950600273223103256543881553012735080386526986656163607172848969481971220689360664892281992758912530723352344373424492977014735341455809916209688009770802001066948415529035160232833904765339224068122293137773698762467639777951685471237136912528607649989599020958333311898542029123131143438811575724678466901438510947107150600681479710265692101274438840630675932437097794386527007041355615141854018589648264630065495240604895509937666016251659114079424763836140720810491921748386253642230302593422426455106588560886184094632658846925738109678977160123293127866022082235275384868076455819368829799491251279997237651732881210389344847760684672312729307344726584329218602481442977130977362951428230770704545830313167131170182915034680681526845858011694111369209796766055275894031485249112236506603360227113626508580807080797538105058066955830888362435529879978998743163575052796079730991097181937315651240265117010878229896535570590168399016368305017023656612639475581983422635920349114443162308295584517063912433767804131147708855778416911783411246999641893004625055588077000201352131317314759845057555988402193671888502134745322875612773078387147204497522386510295128798452346610085598130938946399715245470641947518177918115570484498551941582911811037391757935625308949859874998437134859614547631936937688704189086726531081786640906717265233221649824588350714451520058105721009723619326675231846875508841956620290802238759297412097243989184753012415358762812966474026712406169180839987119897293736245036227333210217381614124255355280338873706902264777343116472551953576849581870284602165130063600373142656787413631355878540806674520691004302283529391381455130685233048971022096625378101155437747812600503199997295077469402813009020190621822644378362348687627884208015984499565570121113508518472236505112721544133708807606190639410000873995258075891023617541778589606036951254660766798660885904361216780840153671698365604706138744483406167189697971347119784851400529926422583192140383672772906076059125486103819538482821412204301994190383065812738145256654084457361154760043937602835512826560880637431614055754220695483906959470950190373595088765432343810348634807633280077815568509188360427923357089532818194097752488422047596124193720634069148176523917087133162714613890866314539978282461285583980750589324818598490863237414060266224668652725778704577909510309622061107568728252023737379666466803351841837895396821233625395902438455385098529238924128525405140718840374088269641083669231202363868896880460963999527247141739113161856850271677932463925654417119663254404803292426575032432031821660632749919078771871107273248808214535634768563358166379878053639495879798051203585778317645005609425534825540858570361179138056183512564400553475171630028906565980367278315615651525193519293193094826223589829567333673935976862152871937156049106473563444842965948737497556954624827475530689985070055262315947466266004135588917173506648006485321372960356157038586491267041499948640799073579488402521954459949887256963012616117886013553386947110079714602961418557189679167040554475034855889066383605313792158971940205264986521375037432064790231596415636471346561174869270039202706606980974233444816306188478210409767568256341467072084080043388333528880624196870521213304123566684710236770112045726628078214229002214069322118460429815936131540304767247614367279312521225709461975580867517123207618091859217540086158026599816109786298640546002573779592041023950740814109506831643155378079398266559506552318419382016238323173868391141393926156554216202638642077055375144866415905956906590198899798026547027711507924968677093491456266637117526993494710132228587245028700759325348113372058598936714897805403909293742912247578102569694912645081473231226927267888810378040441090244325794075023297614538106504003837650389378921961126431425037311097524022809339663594603836255346458998172615390062510941610978281125735888344339909478644319912424581538217994562342904402083335058921729991077522255472042542896340543852470286853706808615313536669902141196035460246934714116343234411998997690250976017508858797285472312257973389837332368266580298863646226387298149967670457763293566030146041857243662966619317352227154918538820349047907883078893780331453600243759306381041736373367646756073470548557731211868595640020416627910786343675226785445880778028379317292133923595971520463500341014339583499325806781239549772546238714998401590684457337366498801205384998532151946020610160000731240051064488110434622209407627819794243988037612207053830677797717872201436091739097157585110537812029315874963128095664001103295145515211737852451822541839605520846540656796121907559627742660831285895533899501442113481469682615505425468021336533885171677136631447536981095491652080430344008517268321509212323103829373053253123527222804851156361335412161123858713147262591744835828988073989738354632943769747428588418553294924839503725766659397254150263166789112469501001120280212096207249269739414311168502570978307951915668660236509515539820381504301148117001408079492281552665529952770524584246120890847844675460231732918418002071644373076906646480270408226480264525171610846564395585053573980134697976116902084448721072897156773571668230783089269123486896168482362039391671331580035090584480439716260800216890325214165238059472098354508155625480922504404058532537894769774712262973611117409653434465143645259895258005594172108936207434405928029489360031832673803945937481266586500247847773138038451003869738141424744185790354298165897018272708791841415772048610962119406537617843396341566619531267837884055831044255133769009300442076437118345957397078625021901048642468531989777363761471940353007781344272264558699795284394613038770797284853446809376474943450215769002642242942009890285150999287927136746587024516445389448915327941829418087061292523102401897682774545864774260576908525174818318191343204834158166425247802768592447173965366857619051515329494934395744467802063003697651206634993711858677261117479512895448370812561715237180168486660752302062579746865990256902269289592133833904213410554264987064245695090292017959122547476456925212013510684827239566263914560952924453599101245661413966791232895423156724143395511879413715599502903850485597589961574107440296804773693386070457155932839370478657208825420188045905222339672395789714478534742246584655314254021499764822578555088855134084985941157503722135680978787900907469293869959652816285221205113288855097123868799592086921520949556154099576193480317695160251695469481496933648277686345032247637500428055056138127960804936854851956910934277525279245553286121078519578752618328883808360777517267966447329192736254164956716140724421393811907546940084862412747418684777931590460344960641304341653592794546830094532121019238142435416463415452468428817078424693091850513400865849686893119505233048901998025385827380905887415178454611848845313619697481745512873086469785554683370293188652572671648948537602728993598980164968594248784543086179614797086290376412316727712541533870471173945761806528924560071328667008704445154996750656574597321367770378523933848098950477133009670381394477198883959826839944771550456845388229510655751500562808123548593155876232252328906601062539686970120561060193042526327464804339636894884166570588954887916126744391341429576391560925644468825626478530952760021635411851578298215894532259318460288533615048149546984451580822752464311497988682437261595829927938332889050737231798981920335253992650008698378567228506119053354542875234083903755697236408459151317666824828187863520567108926969578875262245715371697803659913184355346956236340175689259258331308869197656020821973950261392605339132843025283493988840782811067097485308805134151657111034823219304445705172548252785354932731733926295663930167559723763653054171983133322666090649854258290131449107826802519356629752556120154276734630872256399363565456937531470829357973764551393885863571563595023686766923837917430896568497487160076314168057496826677018936914985983358190619524611692818086571868029113426247047750123066876612332415660194417013429280252178866931047475489883557001334651715893496013407459497025811733621926969410186251335232018531763400359000200798550525090562130403757628425184437079776561225893817005573878052871566724322816234519240546018600542216239028742112217845345961239475013626634747136211545075425121879209379147932414231511378128026722379716723760530445909314571185474155933593839889769480264817294171889826125331143269715421368928629171474009467531310573461814214748000342981879304426563646348503650121140066764993318755823139532779967821835783754805137582510226778040420753588280675623643740955563257158325410273165165751200212186336028581305466677260082476195738588468570871883920470689989718871708115363097506208455106051640658148556061377565460049770186923350663320012874495149281209461128263837517755167994740057155738972526346163151667881656694836128963778527801898291473319549670612477235825175643278092504797379582174949715298012101280952584811853815969060864544505217150824303827017494391675804371083270074585142837105863534340330824025842345118054998410263584105632516202311894444220308152973667337814487712670390913544093862131128226018707344502622883001757761116787151108306942636649521862202071455483425238080896404012897316120798188043793101989809367772794232920763126246234816728208830967520142817396020735073631989247851500885149436285843441169719824723978779893758598149493834016869375032290452120017934499915106914169751687885695320274065553470766467191517866283591737518847225524705521841016979243940090423755588971719939316387328848028420157300148199526648996418985607221078758170869999051013293249968803390034229473437023783726735881677528428686846288902261610983593070960973788317996836226301892195805281809101990805029132726409863334085112198283087797523118282676794742312875981112938208195945847237273341650081152889824053465907792962546291126158785122692124957555140679646831092208557437752597776141008169838478794809025399262263457895860490523069278314389214150420150288933721115895672049799882494603507161108890897988121646839189909035271033309402101283259596827798139802734561022671454693474913739825800725889542639505136822479929938506555294216039463985374639494216823549308826799714150038838695994551684573926788281013439643429139775707834974352937446358673239117292512242114931332265128532375860863194480813661229921931553829297312204330754102222162829914818464761120766684217054397536399310393512521306975829720614991081689020364896027362544126790650075555865534322832218947351108964215735892682698290413996157891109402631970729045362467388569148688870175852237790960652374189552602778782269490830652954877414982612480321407746980063084404287408208042528231909928498908495119556557652648539549804040187740255199344199748732759337315537851231468488258355973978075564352225214130867265925216769703620593741212768577447598902444362825950541266618885260742220668789560823744557869393657081607352733337988168300451060736112315096273621147424349447146892302329313208727487052376027932899111269377347802893366858532147816000144226074630804610294106140048713886457376942106842456880367850426646432492315611453424593180547102992330987399474912775870265552111742442498586537405221081766738591624441129531073085964914719873608307658778577419771475066259951120889331967371698986923986464461301514116278984575673192177701024373519683481976416177555553084042220344732042461756969684919747845408039104156086515264953536035073718387947129284122868183425664929573095082105661607366664595797003030012877470386999692978259462463808985795650526027165729773339015629717058720443395649351937213186112041574354886145204648313132783700167357299194961078868238305503233335758389053473488508714385353105780691733549723328730974586988365799545783364922127546691504186340120662154582425172262210810736730816393739807049751936110630262454828491942467941082797387326347658304175782235179023289179368264192055343680403947721264976963652696281197692752373958064132282380430813445638864420151227585334942363632712147482930389955571102017242061635803928495392226005006321507279944371836060837446289740475783552640335532904330809439931597415156493515190175392531324852745732779201945385536725956298709968212252962587389424310182519970743230669527787757747508945425510338181467539099733975343484571562932111447368437819907067803105662517311449611071967454443955428687272956508381468692937518123386996482765553325414685700559027694258579642164014230526601083474451899868429123782259808585511850457316567419701920774525233434420603886457448596861246291859733080133905122496618495992995847434903927414084954664460789735380876617257085891855268386688878383144223723299598738549106254651309903525593324832222994330948478350919983792841075062970500469292530522937771075960359794487359552632046960148039784723078483359059687854092063309719679018669413124256000996749644024916743526043694216979632179675231906307909276280551242578020702942321381904798425118761507132641518721608742501187048430397033276001780950313073586334680850193711026224507781166999801076237837266293428547702347898521458707192419890648700185542105812583971837597326629096049852772223303476858393818240260031049123098787268307649662119456693410928735308838665497514593421483516150750648700255702407951398874964670835450701557679080149766392470210279622795747841174814721119535104528690629483980529464532035620797563214726801153875016075022851979504503010950745215450953879223988939791673522691714602489779446370370557614224565464482299251317044066805569182386511376124096188930735853388906686904431777094352563159535146615064689030266184108166654403865780779176029371382541559550009274880980195872791054026825306960715557731795773867967260944841832245143915459355109132550358889734273812290028057165767429024434337350214698547586324908156377787525668497093961384463100358855185944364632733115410765703111559247266574136351662145108940206774331481316960558338251405870280568713613055603767491040466031586567427020277734409447045768619193122722861903908781781458633369744330265754019336000850144772583754087486312094421003035596533558679474319310004456473569324347668557774415769405644912114698559533128814940868729419750405269290144417140053436901465784398383858216900702939655395120550849521956409502911101546508167267048988930108763206769147544054742457670570999656578060760709723929997973191336862852964580894956345167699828566914385337476707344122051388970849255140751648933907209086605761183855170723838058739496566187222602881828344216667563044357175319361671954961593700126817241501081673009539628187826373156234711432828546119692348024799686238203770895686082119656917242120364295620515552820368943519569928296746912215887817754129278260719879975226902960194347720729171415890492800304032864469440705707958139626446305003864852185063139603352398588354085589781911836644896455399749178490230665203121090248357557610443587909239506924165116810830915335369161678058160855334483008086959806844650289219745056558983313321862837597842132878737606168462670710330747026652446919595644178998692083612572956057950592620141265192643954067471851951062726042080617564699467855322369119724791054099091804947395778630059824823215498010567975632935812267204326991007415410935039894325584202602074493146976043722561599303746420165811031154332468796472229843233233974174455577761461697893059376107343454165650220760323946455241014845101515065545400398081591475208542302909567633401630360771176093985350450056407986627716884241670881280455744008054822631112975063636866527176568136920286302275068426514426566600764100665188529568286761786946440109113415011309728508998191080275827824238186097597083950346028424292847661286403517708031932116594899531522503264881919317466130745007544052371493972602029020933353373419295821438611694409556806441882687115851182421107326969256932911376578528540326486527417118724640355653699268663503166541042926730958763625479291393135916542966136233239883897380613004922008226837720029713565605913508387483746232505902505921540179468179294020420812786136590717325281961987165975454068300804845417988867760127685945529974220585486753736772565685923552476082518572453176517159699191493270987168751671725362496886645641229081447187981031713399799438298219552257326498124098226299563794615238426983270284647455069586049086041313923833568338640854850446788672517884645900744810967432553213503894810827260826068613520149338804030271098373669348328283656158066354689956814034438660126607282954993775310659094468802397964090896436735064316141285230296100217620036904763840163187651394768955123238079814520382747737831949851111962741032316038803528973082714795325929439330698926087591612981581039046048481842493666851397025665700897976224768939366374436903015564184165175750952611581091712100607438785128019956653633257621773989033154952993519160489116303126344990208242225876935851589303544431428700230078445775753957054449294439459302917787868185444533122680479630188433379771937536292359310425974967507859617103907336482364165334887419652335508096268997438740048447757935031941590725709299706823039362312948498685368961411580915890527080862676837536753121465492600923925203371050818582793685520016146027700894762216338443916159088124481639407265595179049935644487986057735620818884099162520354452002634935903362851522439569350546366860469336907412300038836220927302629977327757411040136106159294649181172032015856913297828207587750094294319211459332394163236409085690370181392537156480513003831069392977921974523197182422136557382507711294935873314466313640855670137125973767800979208293739949480069370621388751384680419432888522751953574342429835033991924223919416771311845615656787461552158150170132273548157785225852994577918904892623991301105852123847007038888887097954674298207975053804507567507078891185075878993584306141966813661849355088072516682033580450837516868017962902195581389564115064325917010005939845588787185009202452698374254541723343923448011630075731396012712369598543305335188641425627524673254029024193892032004109156347087700440938109492233396301392660623548358212655261433841772591800618205559453298133986805879107874288100576789213901331664979837079547518280072436061899677874063080857144573050275441403192085679430366152629378836216856348940687124951664524558892678455447858727046410330620832906520398015144346703613818437166966620697488072507415717875089215218497656583120351409409604134027760652567567389020503595098489342887564829257141634908408188535146437611107606272671116050212746500915836348526559773245522209914564132864579656695345798492473038568146481393198706630115268054036244979375703184118846691056173435808230819727496606630058538177233359118299010149192982859888002016306556505153076074409893329756092916237045087263510336339812766077455457319399079038964498689159831037250063738420434518890009563631962906502851832012792226612000282731555316841776820339007345663584270433271655814214333952801474217307410995029884907477755614327152884896510307587218322381849887312801706794476356842240288315015226847639993015465368830732245662288104911022273374621152008557020878832614876469088561126262833824716241704143811362646562296798913183858482087938223947214090649638014160676962077254572411439576929073384455695722734634582697062062810113479944059921916738946609946106652847122280160338980273716691849238465184912860336069894129366305145264763570586856573594617730423692801394515534572706668440910200926316745534733172352149622652808938267972797394420235815330993681435637044153717665683632316894693933590690223877566405039776542545627362980043492698849636464810428712492553097612556042645651075025822673926670794879475858291844502758806916222716948084383104390590588628681461591147057859080146860478713767308788158469566131829219530244332381382569355172320945679404183866122390238892627097103705329136166059195717508136453878877588622973526879037358770433771569111979315720870637978899575386515526263624880470830438595899976518200624357848558475250096535822698777947757601939060739646759154847229002903306979882150537946619083441324904260728259439178900930810413798629738799811297856244162444134032341614329719694000038102995748772650722390277193651586392916441858557880166368220501686167347096306695263459597480565167938559862842451805086504273414131449345909119033911416505758745082934008396957260467489760567526187084666654730579541294250949284469286192652125112178630053665519890016755860725651440743104115810828833329630484310361306534673095690476824021918687105455697818588517318405283147597348411322167414993600126915194511089718596243818947530283417229934800803577159819913359091306338379964965084311819967168852035494996180236396381689866442316458952837667914760204339077490161606504679202534347135741510971203801488015385873713626776261733112174185606485928379697639218383073602686093555216921623333257819593469258823441767207708061903827261584123165036081538333660746717580892014477097027134353571953403447842656272976730131871468233243751113333274794550690592759224376449333282557476822795145085272691824296711533903137652724729893850488418243246625594903422546446524501512688950589170370744738694783913213744617781360837473794852531889060375251588018382819362975165365290484678668315635699129871266341171023138790433337004329547389116948063350413219997486840120996855007640043372135823344601025758717040669991327690685115924454937138039225443493076374201693140378176398581560601770624293081065231612173705382797500018998000165473786120095802358851175376602225368689100264348131798877100058020126640521397058106728756119009768366020422019955002379224624812783184026969966532690149239943924191638236530612299511932669628131529649869645432002503938536088688725826841175138714459359325928610580221255736123772792152498057377869957894853595877193509389550720794945836349198914841853474267829401036643293240299221321819605777778277021689680136554967852829723410059970464185525723726166138481987941085267193125129682238849570348989000473319309318930071732037420755609777874417372014985152298616550096959852683317906631948316044833372410989252908528317325888154095966591395826939895645780348998762302075072797314547125402484578550094622002496367892202786773899793493638545544772928931452342128468633067690638320655002667107428937684450033368928730214985902608110518210797464876079526454010386813197225119011915890673433140498461542095407866330783049420166859116866685888925804706802342841228329508329209632126465082303677836600942067519326527842510798817386471094209374534046489180237674874427314472062398690761745745421667270854682261033546789873379507005580093481114539075282706313554171419341876638751374042470600711440238152086821533687044605710923714296230929076664816809528779229929604916033619966054674438283655746516787591982802906051471889901426084308033286550349730820032148189950402874175274638698399148350326140949072138014887314129267995486165209219085497446768639649973387868778333514540064439992694549953744406703160014696061138763091163537753084863065319276993504754076589040802496936170915564139314229661838266435931821002498782388831335917728249819601717693217615256762499865768566149736901626644735771610579215126859265358898390281488970361105877337379720112635564091901502466849108105350579101084202294131285879184692443580773727626746439532168072452455676691747143427794193398582048336054850081568629090633253509650791953863671140116177797103566034655242101113350212029654167951395536497691097880695526775705185542306326700103359464835761917298123475085487726621297267585097233825172383389111064224856966552429784038180415458636945362145600822246024352550031097503186738395923934045313991517453125964102323483664901264242164234221474070459791128736189394000899688060856103745894484691328160749126064925011125529846106695300774958189239195850448924720198685714885577514491556807660203808336020451047973955390199737610029628488343799155815651045456001547551391292031127294137237335483427259839786340913780479355005642427289961316525018800165309174442232469172740382478062759172844082072754751385992195042144719470575592233634817427298692278335551928694056855766208373842718685777870883280638768178505849901233061642887678195250596906657571051480715043647144076397214577083142505423415706982045534102596637457054872581218179275660024058004745331204365182720527402006211485172427980672933590324964267079713586104145561051422630231284961501125229099592235277896904789092541657580879542588210084867832948535064960966062389015908544658166240134273401181252389922813699020869800695016556030136719591308988028537004341717334415335093098854169066076216615756174791941172910972737608203478233863876555154581565380738598653377212621058844649012385473165395850575747035578074815048013016635928800001573314840584333682897179932810497333908386937280752167148724732117532223572262582707919511459019873242002472478877806959219429386026340977113672875076399834423457043089716961115782116169072882051609932224122052493742985277947225480399856839057768332663664644365733232912627186590725544654730064509264673088328372663073422219256474173600611030133432959603679620252825773473702648439765227883191093876408413105390970408554412955623491408766597238369545733386735262704465631266849489398235033683561719852663655717535671555433310007823980853400135276255400598623107917241006961648459442681162380211440536489057663232605290083883109375118620643525174742900082994086785072263304990304243690686997469090736489610471228275733863028444941384427876435487271484577665483978064743251375312952376817057526813936499489661654593884973438659143922614490872898887877332743823262270248903814444368183345854899630035470068292292237837648879162776415781198170089158197276664795671402964606123957326102782934633697051780714873228580352756885748443158134761923395135812635581888581789127873415011704417741259085104882810411404651268514754479744104268659064310731702548294539851246878740428957836737317405655022793316849739483116066660057377574850497741306419500726437658828860097840457929207111054445677448731775911072004787955867792972839146823146946949944550444773062000948337531774275495202278368092368021374556666803091033328829569963753940068210695311143966418869349749552299551918935814274328027450437589411738197310273320961652080655977552903795294086714680553170731581293605018132876272681659293372286655739017892077688792997492783603625031354481842386864286058069074640414535224130944807136669339101442783909645302907196007102134116013367615446035142979531159241558930450134033716564710312286187782292872575237401451113518234191537013108917116813464732429225687236262083774800987798979036758172932539646502049852763110832713579342352281791940065439740710968711688217793411905872309482473364277976538071296043362019218953486263363273646798680622141766926160635056976301012546532093317281933230679253414146767709193220194187042841249799095323206905300299171513107754909116791077773855608834261808971640420168473984355435230619042866293116605492638594677034541127401869691061171621592801090509681172404636484522599412375782320512743679301851288852159366909392304251366414952380522383846149022056691346420601076771476646935293687285354653002107204643511938934921020102768924415468594881866708850004514224376694980930105765540118627697119430207306497218295238911755117545944270470430364523741462655917744071356984653818132921689164263073039330811870323849701222750002852879381691370695645053307526066786291583958891310248214109846198915634984645729330931022926322563346039761033853232147195906188728144830065893029491298324485624056779082050231761834447895070888544825048892303040138483357091466883219113388795595941429450914627071887100993635919613481667027382949876139353052114534785150249398080346386876263010696162507145956815642038512147206872702554280950521903180868010304165816890392209631045168150042774810942840102601050936249518793911829036469551221086703258108574146822371356948921654152382706249071962946568890718969466675367358315135923815148059475838717553353135615610839347581338092748221687162545762548529917618051400055903512598227520790652332693000984051518720910746383681180812264127688482240245602687065820196772859940045716240541107489974469557999333858808624733757040362228632707345408960289371112600464279947415440447192985500282842015302723002010349421844963898606779322972205687594914390361384907174711060186375296356211399127286055166302877036984394793702579702108256253961228403320620825353308573759542309221193097276188705148855491127933928379805614191857060813106183345559052876878318108475225114466902023048049952779063634888950152810949237968242467816780477197550061873596640764028656333968473638658146152426084342536344989183820988471972490747275821966409849990146825646065627911265104256017816399207715078798986563556123758547931877976851504535605051969803388288443122944369528259159202130653044757142057330914780013457312898091319862723309756289885676512429409790761661548915812587509822722936777320307392911503650496156794653971859055666387181576687253891867020293371402978211608444334918253427699838294023482392583299618328384855116449585111727137393513333579579275842446270500809107814961641823377493687415094485272345865642601248882025214677758414954768691554134454901548030246688555863970786300238487902117829619070730803594981394363398255856273863631395666913983861370903397415103809140310051345115867863847562894464167761858061151943878633538178933198287873756886586261648661034409772669491691247807169416521358937991370744948917768912096187350085165356513038279229942430056314863779984094846056936630357360527081580077324159179555820039403473651598428618439423362424478096587582003688993517468275302796993997145456919914877393939977619426512164250153431209635457042094151825805047143702313671301419104280109702887741684218794721259131011478863300945893477122159191390746412179621091249698022000073059534945007677499621961898076514800340251660266453474005403430356113345098422776420616504331682790414980204379087129303012719062405159083637058294051426381281781134689457296841097268296827602651348570784355189215033133492668865283952375489961081429526807623971343951429498808361849678141205422804907518113450901846989752150527872290133263765522302450051715799807445803097983412876227233422392129891946222585023862152478248463904835903203423867307805990765640976761621963374932985271673936732068599950811138527976209017495930098827924283254700159975583965146335426442574051790596327539178387667396782686179428187799063103347885924455280611289073351897751320201025129953158661642998909355284197734410287013270684126902853933022875596787565733113514617488461027032133875533184505479710430097975262865842112992640508185816327074091997193596463789739065995204408945685228977105473253998792238082954072434791881960499719961460907275419876927083871144574053915426271466604709081901865498377020240547062278563766246272828110010171253220162046329720150708022201620494678718416423766261054596543121840399048026314294642602611985381539474571098687390335435097057181835508573873290993301344148727254592758448301323247995625283371318817598528843284830228520460509719954873404152692995368967220546970176912763292472573087018748048858890196878570154120543819746599886705925251271228604310309524708884085552595839370052822014181729787476390022100286822087132720972040371420768066514731805982454891167173925752439118053628459979713847938333994750895257617578478339687441168957667609713488287081356220000289846433473843111819393040727592679654141778229532719256794110221918117609371231465798056411531770404241138212440002150404430126158150556212720527543008802361307002169945871598408276310088891177879959465165184125423883246616452548498243323558426222398411075678871281915065036526927673425615181322784219057967182217517900422555371162746668604548478714180630752614183335441889323511796960644661850090894236259034682307227239383203412112401432858453640231201876378707804963040143007737403797572358082509706287151907305604344399036246306882220220439097683177849686218558901890712189175448286483670433052125538275508414177047191910839179446538809710115932406280904537201440199328483728237460913474598381314815668060684041999267941020468567667358559437970787560560236505428447337236271544278846876843754912063781267854617376484347892759232382300571243736656930606442837656647417564544547119228630672526323309931618120460358930483462229188238296308096513443456282163094619857639947426131373011037335683359687428836265716302776133366029571943661938184567860270865805128476172024726643503984632786979775870619925671042018866950623586973681532917094836993673078541783519402235283304811105405456857790492531486078668628048969470233480724321589724557674151717045877702319472236403255331883644806373768247548425572297020768153139357966408474142356801405341432512417093089645968267181976792617661368366302213065240773716312658369193707759469853642076983421368530024086863288554990525189093284202387751021518598206747272331361343850273849110430230644806414785170171060766528071994785408440815289180189074890699949886006862761391130262991398817520381805311908137643485817349541772011422209361733769916442417964688836408178384163762243527535367860956006652660783444638658017314701532592230929137524239734639473851788654436430585572187560185026458396106593125989409165131384492840500115102512010136587762599059124263354095147235432052625219409873670382550412462955066264804305495220831229904719774723342947090272890542142053975975841995505254342388274956022692017761191440683291036066813666592788286751382082740324953697587299959549251542659074435177468946183473138523538155752990007270152163070565874273918280698264455483000728141809104028747225686657339089827312009389014181704367742501793668082957106638174161409680106241749833179136185285177541798589250866912173084244665918311970599641417004173402292350645478175511915257027074926642829805615808159429125051837627507812281423652765979257243139062434765979426208352386222580705276074334060153461910405851856128039688196427101699105793023039774664344842281314362129516116982394073210879389120663545174119789855558909075590087575461756120239513304073827301947570248427137691396766677445268918715068227250082767782363871735775830302971064444603052498673660813092749238699757592291769746044927309243152157880201253488776631692092379820077584755491184427363525610981293352666929758795334221528257001758705677649282409060309534654167539605015006434416108492715193613501271724715530769276774680268147378111000646421803490925372011870279196265886450301377986308551352365998832167557924915613584328889082867694957062456856307815995502585473174603805497142210626296598057037390376950143909464955747315896007913900089835415815817281794559136522553780895711266265761608879172291245802914487807633676029268061966344627898830960908282529594588776699928194890385821686682672090878187709895764607318452260263378963346830611940608466357059162698121900559665812627142303820751407416121906555353813339951291994416743339906089008155048021571243208093311154391732932949737034672942574918248241228437747049129061544080044326268387669019206449110509679047221948772694117150154777374114704839189419653072057065812731815796186966974467873183956714029004454614966283941919103057236430873821714223004683587376907888981420241686899836436806920974146926671682285564541336583312429274297290693683485452954437800034746828343116893907373173889164127007848087007078244906710437075232141437417082314753469896327670724247754765547722714046165842512942252506783620990232092708050271928873400138661426006275517753065082242658175831380608542607098776314078721984247599537315717582464733453355368455614149447734643227160922132911441100387908865869783430764080325909590324088734103095152151796512286400943492199551372505771485596907112754370802085134527883166943157706773500265221917586147255983922531528092291129663986685343992407818426081954601190395707100636598576017374734133865437698457791438900518797958718153023220681525515125148227014515150854871877632062813159455038488990999026438876803578300722916940736379582959825776736331243358407203973343130227304115401359682978490138477916826025972147146376179724070479957471457247636330408692263032695300780273223451772725370527245379652376333023371873236712958405174434331455212980147304975963441481334746914122528311871434985731123823423339997135054662591417568063244359431000074298197440503846495441272318415673647370922709945884670031127108024273185146749372150368466562742913510149798386201831894717550424513548223361664635878935073273158856538793042989136394355427881230635952677855607575942682944687756790624765744016257224502968153098863834666806012639774778699195738216969441432092816267626052792008440577037007903013875245667874388384859609734670070149493348882071532139178251365820798800243926671845152817372686448403614565525647194494563485368149047647897348667186349324032571774193065200891994279365642512675699353883391682317388487292369060894513972743232208621646690956375308362971756248819530888186259274085525768104878780681144807392468333173231937176748549208573621369946474726233794142768077498513659830711224933063382025445543750362367393387349407744272972210515326957184449066214520974771717232371414864096217774387701989554162821778797689656980732756290449035517918601780576472821978445802267170353929926933962237606841134419120889760189774634917370840234694477673134770184468610548548833394076881782824771864661734046568837461018143477980358472100136468929818173010374284081423067614169521266110738108768057341497507633883546574312857852390283049692554976254669238160971381005440767137839463652553613806114589141991628468809956144930370368428685860022601875358528509596881151264586645666776592550184013058392411785269814333750613432783242597071860759605165374411153561733835310853684166134634821647789367732796955440237457441932017924521697701685758129747525209513133630920191818799361675944839586561670996533263561519185431857576442875771331098094680437634465202707555304240522104716610833987172637758680071442573031962775093822639782540536600831797070324809037773098414856093257010537389299353383523549687936063179547309723206110681521377757688676516188837464567812700642581066846715093022332158245131569827252614569817655225117404305507040249974932363327327997120476793720089501058681982756326433429034262760434963295912764438826289488652656014118428996059171233626886660948509649776155224559675663955158855900744391433233965300321179853761615889907015008886340202068627244943716901972085451955388982389743069176292801965178625016658589997126089594808298343434395617333957706440426336506763962826209613016513728514840764221149958552623379977703510297205102437278134493417192906547846391912771608596410986902444312755243217287428798759552662745863738716136091520821230949083000707045732590714062819790819062773432345195383353316176546068120080506043877882865433939064495278847754715938242962544869070959111705633726803629554330147495907613832788272717295912768906366711168405498361004910653610379884455225580955618139830739917323926549225563530550175328778415854096037731548279564313128348162815080803626055601354842309918189199477700381078570197664314161402339265554519091639819629243275100339897597597727831201831568927429282900992074926038979542409507995524353435665984806086830366781684645578579138939563057786338666188300123537011906542531446203288898578711043170060612508659385514502653394392177120550885079630866136756515537556342887755289243259599095258736543066624932514309953559292485535700774957956282871040848489735268446655245382652426264033254742259939936578891540480730510285383452935724295792086327413485143394307281297957325407765827406573315796836821903990581992098418130011571466761969551998695339767230657452542294227599543582278190467383055202660472014849033320800029378601471222772934170387192876139899074642092452284957820292903005206625029708566152385896598118486783287731163519143814979111793898538489539278928328277528431844349192494136003831964345672629958055117027514776576528282032212702809832464585086770359605030426612109811618741370702880215707617843326775750017147676540995726551983523636321303586696580163353522821684652545780554297198165394449509247297610532909822433537131940345230093561348516643535533745127687711148544737089199383904600953528986263623165670533152482306365484734799035109057176122485507946119936202772924611232809764419742902534272986929816442630152824511589738053368498142269309209145370617139613050040834829226686271292110958782765234016323368005439754995556107169535804265228722289068170964417507780364088938651515107405759313268054005738094843435096390027652255847113420992486364694957655415885047156001434372002005993683695235578578572312203400379763385748646204840411879282880362098829261625501801258495790257730202663842092875992424996195004910927592928913363928092435554314125765636185493689728320739553250266116890036843903696614030239064437624454410849913566883569418523049276992256042449945503387847184302220504512233034555368039119769598471157472029129315663001325470435405673073621328381719405540553411507300730178383341591231186308239531358568477439766771125972866577083085480940190858171812346831725179623350463105029501730901159259418733705374543513518283048310458596742221111726379048784480212989343876299821072707787483438917972528566084413096739532915795642687372856234725619227939696070797949003163079291066145795224191785678284751229804883380263422794018622437114416112768600613291556544205094693129309333032468163696376991441870196548858394631075529250049278481202214536760089204169870474473174574904963871147802892669043380833475405219967225230144635202848830609228068993538815293971063265664977509446906584769848362759011866609295972733870195473856831851258276160055125545673135353860218044754085471884506376818463076979497951409911652675946217676039100550746353189350459730378006141786512384814913292464032792241136271752415337079435296907836668817784710392432581549382519756845708105116632941357283057103388656726606688013253927442950674613572966833002994451951959116590499168098659287067044013129314594040668136685424920586623487729713901396056774065283411475249883892523964262716659193085442015568429823812144608623096797213557583265318247223421607980736334472332022531628948756700370143863508539789224912410716195155116081063848135890767211213718396022664237271525599172282432593501197086952247012868001594823655309993031893074829113572202336198381137181754949330715684102391350140706553186069645507989042538809372461203503566045199229123948600537736455985854973877284411416015678618176665128821953596248045686606334409980709184903588114670314868623559876004663299898627618249189888816372683085711043074483767301278951019622638442565648482545031594490622556227207927444991856236142174141254925612069360888148655524013555454902719962304483705681808404807427175356486220631562923064024152168383465527600860632987973257156943674043567557529850118727390514832288293545856503838927232770212321983873045042424364116965089266624451869578820878149913373767795323026812555892994164842731960464422939860353525783835757291586272182721048765733191295218803870841435519507850958965403270434807119020565676892546487881675949002554440596059241347228886382367186094010015772771035900791477341185117405027998141450488544091836595045605496609276402048380135549809290602978211592161446737059502667388643734456586830580276605074674010568987598479354184084824848290397078253161231235501294142323003778161413878334009851950287266575131308885800830332494865171959307381760865800566709463408600444923846458008921533383771448972146103913950825825973686402594466455172012869811513610237782588367867923981982411536352745137364548874977432609435361702537820542812308009185513621583981353269426003160171837128650813336616630948703644540970061859159279740299284505609067275916421377023823330034867325076859345386692066803686026429859962170540417579238698202977460773280746751168282268106713884317799945214712939392666177422979596773532995788972218542794242174599738072648785362957417144126113371968968779378033051815057229113057810027706134475042287586959140774764494348499171343383634970012994190362902350008238516375841302097382178567583055518215790993186078824057347822285049654782348745396522045268597630176428159751848219803750546236333773606744527341349419534727237225069404898208518897858177113634607072454824997101401337433490984617438736893965640963031323147356119634640908429327468421781037036024974105926058568775625073464594594865764989250478323699309578915625604346566567401375066381977878466481144721826865998813721681525077863462887665089229467332663347575055442228820412695251200899173220688276364233673410489066630349815196688553089657490864318814080710021868739512952062549278467136492118962934885422755401799833775361569400132659176235789477874594282027631194214741301502717562131685780027322889493734369591852724075438569371085472767024510219705484168062466568439598115635590740643542460594172014353565355184726648748660396904614793773653643582118412871711318490397926650875943631567472605852285804852712963023305492756281720614867673988765608673859075883546563443846845704560934327849327439007015153636374715267293302400088274007912947938509696790240112958835298762677221805034090559967244588475532947045349561696156956048034910404893922729447816142977934585138217325515857201104589982363288193693469227272030761360824673162708013530147112952587868518063282302325858872833948788429319081400499305766854454421125568805871331318516095488459614106190297359113692810495488079370644297624435743306919032809841170685448584375751745871427433226867843720952646230555328680205394498122668518034452752850697773007496511872888296075049420482365914638360050237651968376695215368906816735793216557746746745923837784235262810027644997251322125761396297288462389315106794389423230580554272113158320105238095729122914621545320604900155957917691299673551191726890767561912639650621926411853472778571322279193011228058853560011162251496691884121772350667662024926966652523875463724448398979663076947962551209047909525338015290963579040499116591372165431906683455335914531576358820994496201913076314337213834081999073539643454227798891468548887647544450630840195639622728347336665301416569417496573831607776467696735212899144136438833359530977193213445929730175516303824041985602442816265764834085767995573745400786942522721788201283946731647701712283437483042792671728044760532579106411989090313723322211951383342944431268065105136818059742241625420656595333432768768343172932340353046719228879952565053264525308584436693125352877875597396702260356378581146656685594320777297527476465235668983853213379626327659271561536390957640374759344502246540108063286181238560304594876828736869493838617211107286410737695462112505603875765783847657546603569043355740714675684803252252016343455794515283071983181127111783518996167024398914439250697455596199822777603918816353005269452578680378767267166976357600070831614281215626269752696063906640753175892664405688488074250944549448996525835519132610749515016987188387917979592597689448290096748044965898870951845683083143035307709763175202408699575617828918216661063040551927292762660670871886898129164304399109695869897986627654148891989715948367318319490764421843322084697954913936269007488502018517042302332566571973612067735017634405603296454075620835950149967589915755466979599601934505577654234598334992451678343089975258301003827260828813658296737711294570827207909830665442232215009603791143160346516377202237397001971172414045117867652053412447492867856688274133853034226332577945753895738842662282235364367679463237362960995782601507270811911596892714386354622618221494433211978835169615254183417979056875839341536249558283097514314459067399476034372153230970377183219315922882377781166337798819479605648076412737508999007855120288113009089273737334574647048012574876091835516165851193563826888348871811117836961608005158760302852149578909205577588292894259586303270112810286973682707063031649319791272268675790918826279878033339140554625583348677964080961903932766324375833681565361164338633853412059416209291691977337903611384816444318435200710764190470598302869417857177721259851021927921936752968165649796627043302740608996056258748715507319403557461928688775655264164717250595535862732048621968861238139249831801957793361079198972471530229618748164258308807047493596604593250485161891261091253889296963013758707767430671577078812840483413411839815364579381453456839646216610951222828951749285195200769415045462659756644637636885147383365939926864364247721368296373018164604122114325435430092403456283132880418487504151693812878771022825740986077965266600758286580166918068446868379873821768828162315159599142665416871882348630880139030927229491741841805993398422704223751631606486827736608123307755512447414339242596134238958118287638965963223589818001091555462174660344027299514373985375249675279362541381024532499963479453321347273304094944781818370378258650420393539079558265591261132992703411117024415308972564137522002950742465088119570754678974628516851786422863916938746220531504111939977253826327449325089935733877426901091641951451674904937805307406113183845255061288736893295005175650209765909271353202388762026478380540734094674687811813868863631780552463264257446603546044849484501903671227334466199176429579260716135927772886969042631676768237907155710923843700978040073097964714920929858106835255605275740405671842847439545765158936748321177407031102358040613201494877821688724143420896997129141310156617361588649893314487674091885338670641315539173006081339624419185557533472113904237339629257059057488872123178411710240905243837710707392354569562261218732176695938528574622750069037852368196771230095029780966686555211021573222423331198180734077739222864319354950462136850739215848268797429645098941704246298210797573967529030414930841664526873672839748797495984766644769628870580877599397755005719289090784158317177466348383669539351893073730588040225899978336754294127529299098289999340881802363102423545783239443199640325202247776093664611434351781967042789863250962582815095663513136481477910699050628053354734747393484905454824549249732620020462732652746697111221540389638465634165952137853797924596574364660576990694959127747347885012060622560294561854829185014134874065579391102824972968061346682021366678685722882248369749813532259832427484061908792060806665117871488116710923077584796093053953141960069043981435909198542467991512392168953361754167247917531727769646866764911057747327242690453082493215269017408285324682964794387565001163140019688953079433333893669283893300352820160234404418238311519818102817356963489198265106940313179498895254795207991019549474224781180123873128182412458132132528295340636253858539980109190928270614441957645537602381067722043411419658315012615651298722061975783983442298529050340310749795921524233893237924647336441732789532946832085872695047367202118076388525974500361683735927367360103087300140044355351701124538704510834991398837357606775439034117535188656498832520972445923511235310245240676273955351962455242253878826658830274082197690113258732357053669135252768416388550615172407718189481932190283966389093650293815508013652978947962701259217048476093550892063777287323395419719505036886633797666476559394089814677823342743003312372135853489738491914340319629026338592442911522875156763188716021453319251373658731187728010418180552415279083257898588418228734447534595760176843850399257011289658001325538676063806910585634927320582525430162461521518262228157706430967670662664222706321529250729908509850466859771660661083940675569519465162737616504582067219035012360734816395080040007450471465765466339920437620160501037528705755185425555780410656673152659785094734907738583962497084812109966490148044947259214693720866869804005499121499257775826084907755436966813387848405901187554899816008296605780822626258949988333795975552537029357441882460436977872346707780337486066968752457275432037793422759296958594286924094318593707753691310000973222559864542274781846985761303414952935509906187054668099101419540284780281890618493766591611984826465619136747106460837793854453560307163821455292531508504900582515163444234805371710476067634676239691168743433899686498114740861470828547233496213548595155036201092230448873660854924358071270674011444769018123442494394423261333292008651443401634087532668666917787781827748753149469911764448716452109074914144765860384708389923684451455307216440764191475255379339330279168988914923478440974812588033354068532063821948380201641541674575237912514805692276048632096215148821301809951915934393336417988217863918179506836625930526681332405122425349782574765142599027388264214245276879226039212698188937005020925765811145466093455473808492745848638203888832393665665554289374954178251606401533956671490864147544477993235746279276474482022408576961976859673796611790348971509317445668257308919515222838805423074988606561695836101527482779380715339251975716464720299432435637629157748731461120943182207106280385756213581526289524274205980971234648302111511874387277335111063161516239600787587435424809007877839560341897489351701977458669417675015340686586419516431323685687145269078961908756239656710704400156769199290804993130503420731878014600093496401275833341448820048525498054153618141577817588575288301049462834100471309403739957858321784093765370932345633741805487823651474640304504761919826664781130947376492514883737619213265224754921746037549395690218851032633335545312225399267126345427106687220928550470829561323793375403427947907857795005570414226243424184941835081500048360940474245299906040249889623492665249828373545377012003431031527424235769676649237757283628644737764809822391894263792452801901680389788484410020218855691035721959631854103158393673145463722686992638021573371456190777347308939535017661826878427012830729736120940223779029592334925719288114824884946047218443554792581761696017466648195232553397129528718583653627049748253444795065924611987166033943456655595169399347851942129181961151981562915008274774946780865627357973773047827802130386563125983845722527985574912358958772767571251451518262310300928115626229743699880919382273435227879680524112487128282011779870278612558288071473107628531938425705932608493308182731201417165203915061789790293851589668934043415444603039012850448983911925177770632678969823903556903740460234667839261113899610962931277603330667968144585708960204793422859498688161471571126165280451064538485603972470116107894347963159099707251432851511713173619978324848532666808855397177556776094579664943974113189112279153083835238187786436475799134855400902165938222837498018055139210289894346757421094861314385967766562740863441297498715802919467542321635144465997635680556777868755724041890138286098390306699810473079150549952757531424998276360732384976825323875230701469304113028898503983024397934470633792053227322046569649516187418122819268593607836422076283393686201596003335008967755736671136179727554348390097177211878170676784787228667758814646118491333642478914315516023978040669964480835037036803733650088762897960531066576478668174150154200105797188418115328706899304363974463833843629417527082887870738905828686364790846204350380886949207547463102016749580250278288732398422363726616656753656167271000071349457789355629671447745591079450033800885627306920776987334224769955099841672373509191455646242723654189985014370211899180615066949068447808407596557261435494771131046662112067133926909733912356342932676251502011901748086401774820115821298865591297644576868047041629062132923264289160576691370631968738963345366610317475897817425414062353657672880588834480233766165523718564116686395544414311708794491295313561430107585384785654111681135637764148482790492083476361553918820992510492402016338794977217157132624386853948222489668057276928106864746033894682580757332453587023323201210269871876261578447347834851944268112291277178517005306236543269180794087366005649140345085386070666690124731420354869201892923870256552733052020234657128801509475375052738260187299157093187347163563331028073613556960753308888528797144695261805818092748837274736357392815722289351847305312576222412027711846535244365914895137620025752581954847109949252548643788234186165913393754642453819285454330674447338292206407535235313558948464781948314941383732358250222265035533704144079898440395072607395101374345296925493747985012202840834239981715358346758046968318134383706209008211328297608670052726974840129940617857317249745372937062010759139560521829166588515034301926233062247127721037057663491860620668167187363652623746803828905196523254887577217775646044931513765874171744906628301178564952316571618706503847187599557499510566915881009148962070806639940120720164041347139977802909320893077032621096968032718632963691079227102974173472560524186355375224565936094434242529139627786188167338491093082817950982206454274975132259160362964923508471383627384220386798003203822873907779365768827546284061551025793252169459538605477276341434496581580808298171016302413395348699348244721596510996859544313422304582734412211469468882404058718112561797125081813060282279825457867318129442845132033726259877512129273205613554526577619930176964004284915760984729367361122426456781457134203747761498858433696609693035184114027516097263219199143297760077808308284614582444807534946411016394977775537743667125064012804574563880496229649082548605838326581190622031589293285133518064864992755505492732746267923357938218109157790026053381940546059867461787600666895469385123742067714945343429881445907820638946241440934795750393998804510833669461117741200204016451891582438832630526323563490841841424703605044487109819062947980734477916753110828891676218369047604211133307574499361678086069113202674798020584132537568535744489924024100947617834958234792382739904371979897207250395044671800625689009159335535178393326764343808221027416488561721335328039884547900504096685086878107358789358678954640014171449954534737724287960420965212532733054187137641137715710232184191819043212119222516611068037527223352699831825697963619241913898209922397627256684075076999775036302387686175055298260332197981312424913936790352976285863969659801607600714210753173293864511086038946143496928737324761044603922977138309479945832736362493512063449175940684269665592998668741121380042483769331237245071662419991039391456541258280692417742858652570473140110958150056207887516924198979881124503907643756897676039408683172040196627268519276722170376493201185244470087484868972881252602295793627810772077735574297466501915702102970413077126888927820407396595394413329083203355954317055166431449234056937278407979701398631637175983893472893049126684290706885623409404301199841912671852106006137831099149085153262376037782854083121519895489448811155991444592491391727562355998473130353792101242273086785050763847986499542315620930450733635328070914436977543798523616994962239861562565909044056753375422502228053434054808425902156963230212239122859958119437886527554596326153902332456781602470621500880991924009198009924068904999836491846147827711836740711793025007633144639513558810785624108681719081210490763761914538859326508933867439234458588546573221634057930841517074980343559419707992259080703534005585918282842063087330264280580513143653125303994061581982591176856404475463192027180653370326923774102763842462355826619529740239727007741196469743613580519031033285124076479515589277903793074452877048099967028906345581521623255926686038491935713114874565228988204983615979793951411236681530325834185953535578919302840402648873843998484496306306068656219239223567400758827430274497433885626105702102351913798744598273103795224026883430714273368992272403882370221703944912587775248361347008515651606690990246475904153752651066155577649290994593350546823702807054343537516169810960388780614374672879095659375992041014548854008403014189976302776851506606023992483874813653559934246219298957514028218964067371951635945795370618776451586211965614858636914565795292466701508666182441670285435943725135369401693804292055420318948277749661333413003642508541537453096340002783204655787431643437717005129670772856106738590202846064995563717752740357512489225961473800055321862693254656519601453834043836012611808077778508649521575040531816278967595095634367614764355617257192940387621882108460157672752299231360328128145275039851287847596011769884870666994767297770010009790131750202126882519225736629334541092975484380676715064210127095666782313431328748988462849108077408173362943507180218262571994273254800658813809001609299393968104438963513519340110197965413959038984422208211392965018861357071048757333326867910368856835042021675524377147098221260125986898933805260592700471137963245706801685837751438586126344620949683552351446509540558633367510114315029240360095199155525837247212450686283893094831834666489101372676588749055150117183720299139209084520551613763516809160444096423308558660180255947667521527381584297572594061159962771662862386777030193587488942164562027345796611549184825765768590643286638668600109360609630475891039541890609987909928173136998282022707275131012962314135389885920915620989810410232010881263508508239434775098407049309717362499058527044995720479679698626643143981012334952177429427878519306390935445051918448196559642973407853675466501964593551643035834963626179598668046216331756479578389118526517346121483971542604218584350275800602246426340011967367904452636454111080438836731509238263945509078958459719844676646451591719697331335222224237266678833291879654177005069242166575996706919456050579819322786130881147332880764916885332606950955016023755104013032402390566325378544863598201047298798599039438751969201086113886593211047317485492817452971475371995494868643611653723505875543906418500472003784906182655572639321599033322174401826699680017029765898638060038200174045011903515338369172262463934051402353030423150251141117281662251021030997592451074831041465330777346522291635494868012068313513631706301016593649240854864701349710232535840539438512778937098634564193861034210763844354600765886951474749662023944229950066876238495107384797161970005278961751021301745356013744905373940750449829561543689172445308725576377700498801063438728667641616077954138425146861120590734484265460884834782506672702085555191372241912031038021280508565191188838435732241535616497086725022148837015935801170512273037608445190807709452594106866634531030768136008228023975925967292346348577966968295474961219936824111465236641210151972487414999076519973889610375427239240031154810920442110191134334488132520291864269272292901401003988817871374772038679896096507669538332403667872431190601782944490629622566487138112703201949266324476071622938533834277541740698131382699739004873898684695436161951513965765863624754911842275853014127673121809565254115861503701357820198849410898533064840033847969090424718326080598684301214192656770605093221097918879836319900214924396471050171483037353213399265483480011436126615916577948409030433766692228933524924160818430268314250808146322508304161186695869621928833373702137800339568456907369894278647031720992364817445917585518605388874873683305417778710256298467723159752547644140981120618859451024983042584893100668370815956270851459444403719584127769262902570163891806655274951269478116841077316446080360008735852195535060789765458807414155497002579979659885941318733961781845532779016866076780299793890841879340976430951089838063477768286966129051820698271015055851289529020738588232136486990105905081152754441577187352704828803505381169926326724148437226622769401896465138266248468270910288490210529429936457599674800275771333495775419546749872043310221221187263516307386923935218328974191470613854352519993183613924576819992999656343132117172335803574125570221056447666894129343164407686261180484369282569483542855680941548665348216318626614691540767988423498030131390407925232390448508360267794409740442949437196929924342685698006740634815766954477850853771019418901534659277594219308732402199726779358736991507019711537346726046799791510098873609115237053027561764106499035843171260326276302395510918529467544245040921407314295722982129630951674703564720394265100159694223046123516341168009731859259585849263204843776060055802538390404904288704117412139222985410383358791433400513517404481101886267673409928004560243187790499358184536264567263763576645398821353780659058872886594927510327070652139380958835263191189711119525943292340705179877150449522749945774074971319424011962649315591046322265028791778335311155465963102470237377147985488602599318654936991260847627830573678081701112020592347239446643883918041530310398484319000601799119749270877016982206726083298729662905721067368079345175160378283518858197519990532072179986984570361533366913940756400178398311425540424828169403926722171718713927256412347398209711790132554946231685299797108506941116225279146229197371369372261508188903906208632159455879199908070049244996354558799802022080759480496477931703608715828347003354946252518883857131284886634565465538227326416499460370562844848003196981130295386773677970463519847945354981900403826402648542578289446278242914462944458539676549958666060501062189884999617476967639092014470194974445111721437637632336539874074876865599487056900540377459106136160835505782265355873583528159929427378962330457136839242021973067460264592904618966919580425385881125205500749618341131026312925924616189401341326788665619848598086383986972469444311034958878189507240085779590797468644820726702693841993225756919395690394504226745487587393800604170652431251112323853161896678755508741222099830154411041123193241507711298606610807101705265245250970754446102714466360464058441318126637192908890801065506070753097998474125901650197396358968747475509281793144631837572987704977474485523138363126911903021052935184285976623635374601322171165883669964422612993194791824124260321714537083775191234666954241383176891551420369714543050784030963341023118594440983328031802539373090183801717765214600104790518259029652463402042160469871826383492017339690769983891523031204133882309411185710360125089491469800560101917801473456634414319774842280856106775257055157305408343852785769705745487186655778295597708276947747650089414630858786117930131667372187818728885254329465111408736762206940455550202194083356707385156889940931368046774622808182090058015895822110849544538103561873058872348922253896000285882176493925878543367963699517721859355925441012959090044190358440582761264558530069736063098270562663050067300099715171434442237773536967244099244361556680349958885543086791489563348599822583659699405119783806779645857945097155534655688164613988031942954433532290100354457140091364415884732302654510093926487506001006723324546681380921351828170650980219667165112392161333581908247095199855808417939067221061433539951122326345121249249486847256750087081404746776534137110627748914896427128439361924523830871652430191384222502074249501957953601075942385408090213935277944074226217031121025185439260708387982071114100088623789975534611146949641655751258692881276659542522412019098272965470396101107529032921471797328060395090709612812316836422991546327697525610745557690426438890139958465421430732259290571263251599760594841276028236403372780531190659901500127191433403434614182864203168487764607272008807131642444016253108649514636578373291939679238068359985480300099550708018379467813191500459931386293614321370669088085516337292370862341344754748806331810997152005889637539683115791449488675723472849763561314761340200830671403079758313597085404615771868871793810160514584629302579636663881904607283638214222861758858443503314681497082480038006229840164955199047214744608013923629070777226299789330232790156969321497266491094302130351059845926042363550719758672483187413811273819260479863545542457205892769989402135102463550707193068794315740217764665481541941932339107108175127605002392169326391779294413432116598445926273553027387754888833622659762190493085707364570988254664325017333001248989878566277242242090609100639613547545463584452425020058114667881903878800521051896877926863829732938012831099024925738113646274203837452686566205045256748123835741671537940684618753048766741605905057046165888145057557028958951970181383078593556128396522892169638320266683595204867625658168999593514723521623758684628837360359894151950008204339233722267970638901674779771226185436498934077803227398465426890552800930012829111249335747829237547240925105926976275197891040280709048174945026338832609137421565905806048222055683376658068537893968611731742090820872490637271011898393156418529583739723709509058868992832257187432448989324570604978647943917163011463277611889995734395208633028432145469688382687482889914614805491764318605694457007888913931668328213112989556923318354358788910797966567959367294910129185642067299229681412978036185839169030727036241339957361078246747897681252471343468106004132878559360573774953800429774728312564137546954677574169088770487445993007032134436048999775689475118047373657012965273746756976652981739277163483171347918032081428275669431964502141927249431271133261017072112731509900103506641236125782937127930180937295859848183167327708750162895095550581218134737159642596322887663920456449822791437269299813373835306116592245134447640124475355114288074337427867006617950453637739144606412523853524901850606125094680997160142421352376457580212037128673073968380093615089777085477527893035592534466013794452762258430225693400896676687981228289164045848205701992955396767932688962071028255896944163367574951950865662804270891965754202901016625519242910645530374263692282344118985858617456662853323149134039447904922114396303360125822854516785588205744760126532683702077996406970720785023999620725523160901892338284047273752705564710108605403532427326265777679795977678189413985860129310530333404039365151367246770264660222509559979984533112133093107220917175540240136430215378659496136535729001349738335692269237356602602668981557736471899021308414823072787016652470515633581807354462013189518610945519104183737604526112098174047465275067309600694640956906432436075907639897505370542485385183024144284754343334231852626984996345829101941094772259064486885366885038751896004157481724703805827654174990769959335391397573515454660686663762098241080739247147385608875806360009153852907167823046555810011165666501277341123728963502405107978834682726599368409249055041380823095283073233134866729208937762168854999777567405732885257871840369465357670314186935699524637713465100765042990338107573860259628109386463078368505510083191720030578496068447227949406014161001798048222943869449162506549560780407272077967389643772642470677040609629403617136705527516659255851420030459797874699174461846253480516309491598651338465306845619528702335972608738664781147551446949846977565935594314375921377990542578902248307903654002104929508843514732991365885423669534348020127797084760638822181877489890210422588708877100187805973665425935580734290078020809678599032012878967496306175780483051104438007782388049018485165105184254527300038433616102825765659197428779124523734704970158831052766009392874758497617780424210480682080476016827325444827826257429817141112436183409288516963975947199517592902913531791568137368042431047664804598880221726232778811449385044400305699212971977811277939002670854918216753017935498753653033399808711856196927053160472035848673683482659668412973570757982656843730557390222045704791339286832062921949869885468476874199960325835538744421776859428663691439777232858917851521462743466922614039004561044470580074237747881403879498602002345163809856558163093117792620549100849846520344632955442903584249022587397046954970947680729770175065728237455154318072571020392344708461661173387014234579562775123050550440564518047730149870138124876564695979508672009593688925280963130615080013754663407981892021853817448785905785607733083125630202525430059531506540233363664340468988069750670596384858655916361792989809077614437390250876841431982869524046322545918015391037843352785865474452042762825374067698720117869825215603835959669306342681185182872582826938977805381130344181686274385473442447602672683645265065447648378219301233151749134551672651810158051073917097390435204918882354824232085556415479295603372556190827465611265347172012487222231729804099043308892455105487428031076303377742674616692546728663510171505244627383348467770731722927862942047510758594494378138253939518357746892420076971669884724675528706122956057223709050267472242440603926517140870631201911239486609494146369127222995632451071705596404367622161910379856693789572234220261017491234426362751347563717453985799124748224826587621900100499668333212999208702046686380580459044459400391843951979033355753540569785185104759184672386061946106617569050935862899424157261168124935746184639787158433846871537117920825359811270293365221329455415983833336437875669355306028440614278059642463741577866148614476063753176575652745819223706315004735399906570065081545624124446832384478214428194568984687262520519558167642467390463952001260358297217509070508648229157060155767994471623597927882903920166468401359305752454326371941970366257877905176819140066168462813323197294790156625545294440218065163903689462568126103820946955659719110486513659291071510645694395957707466153506342418417943548036323829616593406332437550938223944732711580334863698766884826913937527985626090414710272864533668598445879370438977045032565493313008032056118079709604629317146411688850525691714839333443213044474253424507504385279102906972938653331627529062511585250721327295250513999458008208229939106554942965246077356637915963544891440470890449385321048353878631430539268487918556139294854402863271912788826476482358991946258593592458236436557324908996972089553063997301618438094611606559700719287977805282396235980943797561685365835313976420323684683390888460559184173392525807370075797897943847297727536765392541774611502691797540076017898137731097780181900591015622455564430353171439079777402269963905575150564426941747055456203590722637249940310484154286017918779750495060544727778335825839441587902709722025990374393836227361574886175156170800096411243310504644169436645686435576754998859258351859784759939129933882643146842081325644016696705344936546726493444072520451804140735873060235167128410785768067556855406844033038997271363822799424253435275518304174813177269279129833341485460897857803420126941933546864236733638793056467521419243835394451234713290991117129000358955759425552237363381131879925722160166816123013442518226809025086827290891602801243730140776783031857074779311847012985330143641023883966804143004311641708565571560116804794883245228004794209798824448239131620741860559073858241443641035134408839250370731074132932720310275723454039031489837009085299521378865154014632691038551266112109671661444934967454307940493143528440681426657573539551287034266239211236510423354435906971099381049397280217243948346117593540723457668125128205461541771058079896283019819609102741621494011785333092327687643159387879373219728399727552329872586500087221786144780130520157985809600947663430437340340519314407420561709952653814090450605125074258440274168063568078173118825026072353647164026915810107535448250660250016380827071082665762405996873381612267764199727772942511881920260531379019955128750065422529646196556307597508540947352458085004171420182535138371386379140055660315660084456320679531053117914575603952538257918236762955552428924141565041895424072061384226454899120019185384488322083846727731136310621822425817518473848924029255774726635671503669241831809518276423467943922991579441510116081176142305365297346184618698057954709150172861092532459750756539099764717873300135621090037603029835078871287667824098391741101151245374754029816583371763858105262676527877251383946799180035025555828735223554305423523589435226777135757232658622210258363773326504212151186307057072180673848643123013272480814823835252236268854567608845261516660270940241914379754364916531244277479034709009147601392289338236424529711948012809847139959624094326466726459573913651086978293188520103763238727081339891861866679362614966730283975490255833035150985924124068375911109314098573333109415036628086418036674099947875023602798174159351822098825621606695333660688965265897666445221077094149584513217117846991426211751167695094519911877719748174020564953613013901340255405713346681373801933593593816861989570964609962940019783049575970117323942629775018314893446462330268672570270667693924602076199174937966179821924984270693980635681838738848007223020561010406888124662500927305886767183926507351086970659580767864211960397547539217200613418828193440020054741815900901404508331181962324278802230373234254320601883718425383209931244391482459039787613878614593821503085343194029748696145703022759074965185609619427152771150759882236025484496528520355256466948404831830938502383595945724349809277169919887882195856644693461139732072882446859348916314474020230890987178451581781420904834318610784650729926977861324369161952501180561496088932685249611708130142336843797738895095463349583806474673930136840881376280401621305833132548910740056436551800687461320202904010923504084866733642038321148607896329255378484956138354953910877151205827637745447372885683529084148898433835241091233127190364956558274000911146285705647606536195457173903371235133522791385326217044998438467857642233611314544663401426492777601565787842595819687656112630702882423984643251648777449771208091462729605077650052820835905350855031646919813661896284903480188299526357591484026718508757572279123854201243479952565290396450566306758382251202134879795585275779646729217057829083450258864603708672723332607540031830300388785140829606735334019412562413433621212773237798303916225657299086093524088650790284086926953853641058492477257197701274480688972769407076801721532850439117587606611434225675118417858474311958367329221297402926937417399793016258538577148728134967079388688798248162070577154615141532964423258733694440741868863798153436445998311783122044411808530568720453197833821436844980160151692492229393657470951443176574716328502875149207604861304104170866802657761566847081763078400644564974751932271003995206076643037218101385545811865123054083475503965299953979515362706541487155052696893480194555397676877277540711515050030838743685752719535870124790225449121840574140508857021067186123700972280579014609483202867945739666907140647640698359711944986909588708801842138553797480065916927507343765603703376554313960152188719098388045711362393094344907277051720967219015346802562144878253031686875477131168855257786457601164368516496110172090042374027097508012556409714922599949607677298832014580186080850135085121533258199771464868988052703211249573271323402338203828645890722145745318797314977048838051285379708078720957349449393263173797294723861333187660822279188431364754289388991645510498888231882250559757806579577359815470288146808319527161845168176401050162828170785169560040485734931218643564479714095789383849785642359766279909608251937793536992246625114272613691116649610772347130162180850084882574888042925673743803574222840161913241158615084239008778438348690027784768461319719810339602769522026049284682769072367289481425263353643957264855428487042797322928761498697052496680381311660241165811541953879627306858546625302016225457092050290758232239890108064746379488308389712196450755750473100431874990836510919962504194995482577635605193372642427537262261530926751067331820634610238749464939525011651560968693244732715625730871518531908368979131534408084125209743274994087325938994559602009046304170367592830338940169426140021001943475483537163620264961175837727321820736974303036595264368923618816944673209866126359571688405606965467355375762255519930879218726153958605306406172307278052719565866668184340638215214173482745065583888899177456776822781151235096754155185561614636529749114017766929669045229290664776278497689844463130623848520399147900043639171153801720608562065770488434815254762275459730636216886015902983072463662002263285895319482358833350865514146770350493098957776020718646450000276624590212621582656619018903528393712355417609969511707811313356297577138313684400770845345059241486278692573319863625824806608716311770674436146850031175149409566652164708010751458806842943503207963640338609721526708963688344369169712122967530576689698996648892257176913522914019010750219997059405519387242977211345392746882713461702445256448493477830710036054325958389823873748993297122693241195274246677102952473051879495744491489882499501612541942649929388265023037547506071257361225445687250085761282404654139299724458259119838820442125076352939811517684592143489571513417600229118289063558509186578522769811181442209959152626450043608577316266694734179892114452182058614394986154208252326185800617347425950870620679429657670479789647777752286633861274355077454268445256443470658179269777034856724400905074163711098284209987874858172168187537729518144358550936041619649565479303230540821898148230240213434365989921533967835999447877621070818795264024711896225859820813710164538706215782732109547609753832331248959472630325361161974114136881816827191353416866776990709780038814158343779302995504978833994263544956836402636574912434512677111096682290215559419100047326307993413192754389433128596725328984712085386670780177957737689205012880313122332870065170783550220591684885681917731592959525754274388937009281159458231115053739837767393441347548755812525357114084223268183091591831287337717050076326541102345761738778907585057526630025881430347248904467853398806622703687461989162721135503405872527203414804155497157500963838164277684203443895605764813512554420230634347109550988755589770757931223855166042647093215383060489339171161935532915058039403003497916784562054112407559241613602150789898667742210304257396247567318446285006254622887900742857199108176827908145722458434975201943911354067256789959076824844532172927661570544904926477156528798246662904756832186492172946673605775779708946133115458097071145966933059449347040627708417886726600874433690870630889802862901236133798491549190430924422311932880892400735315898873907573630028019230996269770309607105135035389935013187864115906413415802839552070567061326108917806802544527997075700417698496877956725189960157093751998413866919698753425833574704083737596142149983514766467464160538951034887215564621961793146706570965213767326122636294260140308684680955861894972218653620487156193763668126773426074184338511910986490145295757294900748755070175697964998165446708957509639638193843600301542937977293315123764652018921940619534457804828515918714251137284254303399541741834824482218544409219365483331664990335408216168922044426259760493528748598440722548508311229935489747610132006615302683726259492762772872363115594834070629545624570946822577240343496472105468415910165822670048803367651793936795068607131038555462506116309029007107857808849594735065389459708489651022082735481201972381480895970085589009882498015985403899805528093416359154359909523766504218982097670825280443596493835819893911189809099325556455752415498262152965491788522958077246434467011744583488652222241915646386692726706286904471113317047979422401437996918923037814428964668553601876731488323914319797864931374397686642239352196958330235380719033012562633711053548676395959316104846346347747750218274070564387452459118239464402482073597084795632343040345754635052393844779105229815152168599542766766265762975090326119599329135001174865700746831419766628325186741911097024980619354990610520438882812452959192737540937368518203765827290537251110645604452817824213821251652180886740570520430227482370264600621388519756934270118232729922871274368118426637015744558460422628934380210577337495500722600876104002103715564377624466819753582393703460073541628561449297766741976090398994793856436172014229906635052081135240392282123760341079496619391474617474233601514912847939689194581552330376454664114148307808081898241634296031630914031198768962288242512701869686503761585655862641750760417920510280209808420211608760855685483645470873934123640752014531251111596231052437703123310587086843409556697946655936301177847187566971397349952138727741962586626523512909040489640057738514758437336145158618850203373263517420445311623866549256875880345565596639170870333415593096952322357237384498329394013866229665044186606801676395257887294968051946436467026431421266630192634285811917221536944942625989297753135872600184342868457142009210249157358951310598945315066224696480933928834425590517445883758899882232762523629898360354376212552314021058959268303827628868990253041181518648310430200424566634899541245826265610563285815652785201871571284543535430894628313244196393661767034806904175848439735123495233667144545051486453718167240889483836798620805854456739908876033261566209454490347184338498991735582193293479958372027009620314526060275235086833280756884284231221375968387147138784601567679755605755952044341845063612723829379288086417036264466360737144069016312191661959010619751803554173830524349747741896638689241418269685862797268895467402328722859441607510940392948274246588593165334829897298609653286308190134095932167148906260039499448168553453432558789559012213509563562434078554747273695291080119422872714635550976670253423209598667423283677970699760043292430659397489516634191701510787788797472657115513766926999300238366787199994494462797830689062819517354509305597606835105346985350142888806906721967086982352545579736607886128764311913271653276791585502821991719533213491949647142059065565956231584561961494048994033223493870396931927076549298568252988805839012327799545068545295260185782279543711148664052544175817164872239805425918983575543144438861821616911966712407947824732053134321228919464826070935571644251723584341536121317110148650701875345560730607809509702406315937798357075376560621420048367285595879061657534958582149075126525887203913647693320449601219950992532987379633622731938775813789242207403948502808689124327955240512699075596034645501925701248091780930371114839121852784282879169202283982932317519715067168028480095383933887862284765622573737697397069962620756564544574240813217859053579769947394267745026345586895799946959617752542328822858803547995812599496133871151312958536432773995069098325777024522778241783867145986702417814507763475588609211636770654135211854795967680976717408935813364242549363729736095467264459710863818906325793481859883785777086640947434307880662110960567480199712150798835346859019316218971912556619354020737507190925490058020972562986165467360218238178633952242418034694461109643882150358707776852557489515534666000491880373093114024204870570861119030757791594759442556606628387775698685345358106088853043886979529247316640440457553376921988577332520380617224147843441470893556425766837858305502430037542603977014872050857611807242649430669717446044861544903806375280546452839228490045097942214727870747415837717860822381102072854547606447186442298409862898956572494340286955806645987322749823358858638074300208528672926891651034310928823685154519908771753121271912048553387163581434213116149178068345904857477583892541333690140631389369105797259715732823774071240617916272540297884774872889336496875842999227524117937040091335193369532172582956958951353716992485869391681377723976112495994873786902678110174697110743622984175882363355861925365430808527971982089952235487990498750760272592601687186913621754260477792568102988269416572385384967834801255772284464246065495403284656937281076158163263241202396782840932248618303304830355415237894473302395146631210660169514326956836877198692709599703698947368376469831441698578487444981196354074139583834292737396061352164092094136857083201229964240640839332373797084899775712587379918445806532808343602045044325641634998358218705832521403776005266707502802497189153966570299695005775630507504402501341695232817267869677686655324076110891030073898852287704706476742084216615649514630274650871906645523898460406528471675923416910216174470596102617160212674978842281936371330268766846819461978291653162769987194381398075264167573764812415627819133409568843486263530670843921725313055922491917140602665435349229894407056091730876030239231166807197247878931174600885068051389705192720601574842372788575387811488926817459945919844288130612475143869244022326408530942124198912073555416497393179655140790597557868072456234369157561603605491969381936368388961423667111459845913482510153360908109937975129665384308343277797382979191930053249354261330862213105982070699020612133682222040502573659687813129635917903916193244553149940398207664721187055419701637279555889698070114351828911275781350092424169342953732043827512448411848394552681633563843369189055510699864240535116474180606357692532314912362012343552411184580480931366943595745367248097070848650240215300676309863320779794644429646315335968891997943377032150487897151154647951921010058872827576303572421165659890641714736716799490187287702004484059487334216042777790200653909196514970229293147193410172199721543855553040447321369648793369896486136121057943673083119100981159231762963515134264992744009059646009362251220962755529334746527963719295654237877608349982829657187253933816463380036619857165702267111010290634379845734693557098577377799583410598373561120061265428416517804227356103332903235172774103889869014286863522762261038367322993810178622991187359288254499051100435258399730709034306575218156029689466568697665796730953926964894515003568518550436494041393699163077639368687446690072370607293246179999260220305693061340613572630723319976145339111129433870515833453153112007090193168708063857978825357619801797172188398329930759668247947161075706999575838188953559070304182915572178109152555243782843833717463544555508697651558441477573905632529676068656644083812645406399352669919388867039006673907969521192836793318877910162255663545336654022659509389517850850541593064734757132311536426204293090975386146346434118705134563391576655719046171898101498309109455706376674030765456029087853181704114648366272701394613286684568105274303851777661670373750541325922919186659907915907162187642144743741951796937929445279694684298848242958059450917651629750950209567680443519048531074625081210998985298257412457418568546816560491770282656601820356704394769042772120599153376246411622335505797950848725874921708683039144727361394736457749579302316390520702129967151650279294799081437351287851304449142601913922023188255143048843691652979121682685302414977683807859727205670865821917628601154162923561942631101626373856372294084423750528569625085039126494484511958822817002486955087289175201315566828731727912031424206268015306194312717436470414199635680300793485339246246243123237789965067785195952695180055795840950919664573522011042890577073623770032365906874021838466548968354954790744293734762020515929213466538423507562795126691620529384591454520674123719997921154016644219540437798580756495612718138694767816269173200144797209959584534012902214515650273877440570599780441811592187080756880846231590519346489641149722561870474916137625026178723589342586854407846722597549434875890550232148193661830949455646838146472449584232871127130739572135191214719800879729883465993462216824602570957644156546634485026532999419031284068341064939059810323123390709265254925707052238979457976377668773950740984083414524998850595590337661324309305746390405444189803854334927818180084759147925502269384649268627427182417880242199475410711531158636197143746654003484123783630161958093337477432164413992380768600803239356000388869594619892310482068147180496171443510574337682747780161464446770044005295502554573941689552453385262355465373309384143886562711941607802543059717872547387711959999828589885074067316107652979929582957751883624859642734836114869537139549197339295595873217691748450297525923588808281520614660758262605368300548979738877806190956267032635997380155873089826229108122969354263663263666438598026403934953786839190214666615427062124826046947711020717213333239591074102717214900733053418108360714588056958484048437275777239052598673101219450280894020698661647021385329993502711094941979250528454628197452505485101790217337403311979592971745566112347030628646510535097021317042998859582410719710093565467551777362171149862866340587845234476899199527257651383132936360039081030914136815180900715663263528668494742767026238716581655322711893093133259032099020307865048783790343981773270307617175978270968143223368492243316998688609569623525559492729128274100897310863590175073976913379574119967904963833021302045679917732871755414676467334155236434410899966164697937161810373611824211601015799126837376582914768630747535274926512022704560187511870617312455961952112304409626420473648570416206921188842448768774889801034659950804208605818353825930099774060148073547826840679174899469897642446413562319524507007763541831803090526176606449389715333021169051855984963945706615499746333730247573928114003302514935851435132850546965246909157599879236772512374793906050952136259713886603954845739419060516514509867372003888845060992641408334509980283997960195034104962317579487223104979574036087362393921563567868216281019417223400203136626253363855138706386501770492771209331063422762632865111135679828419546073265255721655591666961137615982742955214756608972681664742953490769187372547977736566380622569912083778360382125039907812610067687407033803968491177990288541784079587046773335206354941452231421341953537110807446673979225236954241254044609715786933452511269093912130005064239079919910811538585287168438790667419616925464941349728915767715467222316257286255583396987815292860062071188775160718099772170154081540013806523164883891520743942062398350127637261503938243490916835477501056690689934041372009694556934132078296967157535370200799050785403846206954420419805780706486675645269010299654514936634060763297663471638830515146152703341923687379491589867410490641981715700650767658191845799612691841896567973792272925239036852509694337419664778543993709020770304883182117030100153618106127834283983664192801214781120020871814763686273105442688428803882630323273640466846328082947777459835597826319548422489480635372046211212421848764376288704272186795319346546209543758468100088990298367701062601962700735407031482007106893017688693097592455131689300841957790861239442928243606998958403990963717630819790364266935295251219949020702813211025530758108380266457814044259924256124752192498155545468924524758419628555583554225325353413224602957646057031894446605014096491901520894020926459800929194888274017673088175907528336768431502796181356094758193186866857928769403984982587508664582033484777684828533804832305285427027042292649758474895577365376774813546661159220741575332336633565094239724173163185919917856779345856163166353531555253508300653899617965606884625335718488298425736770029868760315864343840768010143269679711494645594487426350616435759676273200033419707329214246184952129918441690659544780731370274248870640064352458921311023988782628670943856615844067164100758218488393916599241108784461512053992506531505787432943828089959913979243183850047536292498614245189545617214791192878841556742803889266419569451345253992916818753607038745155039651427906351220300905871579468066306127161966517010234899413203065727424671367984348236929901821984570374357517509061139131376890930268616329568998406235944607698769239773326198986102020950716039548063639912560237620689410727182201701961233028408808490564758777920018671496001936500605802284537115330258643451235320321661860145282566816613918126655320270244468820153212477721416555316320873202487307226836815414416093092807979953573792397311680779728102142777427009739631896643882531412447416978277828046902293515136736188323601588811343183596911489919104716524006700426048974851669946946892586821991392461655138472492945401277187978226733290588008856248910580845841448527681940622928846350844875029453923468800510021189392445481818615984291739917073899903665045193338601223665007180103170985859910456099316487512169586817136531207281946373504195498663117641165554791518126863195535424803056933854692247383577614948301320565346956572419303331591053416147755235279934218129237091360575573681322230899570063967962961020153401668287587771651635187331328674321673759649858993132573091470370347059983945582499424828820960549904969921162034390025212903945767132230188078214724426739002195919664957769230429956705280030013506286158639687035892091963716843774506029000669055452571650978369193688666769713219465153216893650717633962490442136397990068002125449461919794269238952056265581586589584519657317546178012060365379632256522685722168229442990660357209303703482984978190204771260522122868399763387188767403594054473756709771875137190545360917160744478696771508366140129860817673102143666388285561254961484109290580501322401774810114481604177600723301822358810759778734255442296906231135047724760655635694639381054850777428316812398266395623910390770723501763599889943849447990263458548372172398881290252603949220216720861800602877452913046261933583675514490711269233358020794640998329511054880256273808797848151108936337303428076356796186138074044397698698190206870489273784215478398548626438221198238084295540347095579707193364518997705764012419034856345051342723592837147088710343842594193923740681784514299660400226420998425175280490366111831998791837947284230011397224015108991030219451418524359135627803584142947441853833981310099373390082756923974981760452010926533435761895633965384650443920120594966174987477742516084639971097689439279043347743943680715046156382724321791150780861143339805028085419989395329463633184281079605170776466433157138834956415540046226458611961001595906982580627414660054468297715048280271975137466186286091631566140782238193171289802465964901537946485184013484795917751257209441845952440437108095607375229024563636436433440751001144935790770415607583193330116528073523750080671727966682395620849043786147145745443903007909571563231011783330122337665171293339736536171901835589118316525948119472712973032654448132788244349749127595465812853893994739193156659667547854931973840498224821973099619439155693025885254288816824753103766552935196033783127590451888851868395239951622224746478053319025697921989237807120970321844801448229942576345713991945572097862146412457264463572707072516259403361039588895405192736680268958285757033006716537853571269145497627017379231023250075267603176585069086182450832999083186916084962902023335635008434113332457320261315626839983143278148025487820356151354631066756577273183023941523729900544144422454636565530741392558013733123656449934123074480381870022232392047641234420594005734496444224098505095246779316245752260355407455313053218147714725326060259289175750554840542113402557939322816933200247366256420533584930860810933446060755281213587261361422932480133293044908035604607694726446410543457495953795574354171265698505562457092624308768235560177013631802726736621888267903673853656293617759553305551555405929936640775185855397227028299135245422258473860145655863577231693906097390133943406380637114448161899429469636641961740607456926951449287356659610860684704121072166172809141124842450605429219955860357642515719764164153897484034663443823623812382818782718449897078404446050853762993700115695198065110752410918832715606801413945778856839925617206397042465649698523282084035996570453813991522421768598389369534435858206166268270536064219893216439981663425338821494672984460270548042747796895205586930602780635153187175526715984979849293372373282605786994643587419309970786075892086145347941466557723312344318895023727404542289901776073711318367054450576612975303390072047809393995222932220242798131294729660829388477285513386110231769880510817692427095034966080996590714966758655296457174984924621481144394092452909756116737102823370813121325577395708307082541175118308955311396466071813129775777545148817307529736907399367278186486229256198506676674723767355597866679410999733767188412307276519285228209301269583011382430721912637120511230971565012179306998043785918085349374077017564349831494137508108168961797680773360759594329339652158653952608789742989229801555377083649662025790630945809071734774125598361214229415184376791409287936795466761278999132867467024049204812106698820652920177416136764991231977685991828730394971629491422627883980941293530843157952170328903073530767129369484629012356753215813055210273692021809537112895612886449193208063037356919822366248062969495398133699338094910425413089941666988725813463160241513135904807097527688097432099351490518745085700245653230836834182150764916851148880862270174116627482920553117019883838987755490824445118931180834668858295355023585090460717079304735051338605118615815573203377403682894728395532951437975233420813271491094809132811378776956125099226141667375631789795176638189414821968500853032872592772026306619523456158436535715648819676650458208930317677293974193185088693099261371157684277570246671257228768138958067256875068865605421088214807333833903034570529911555462380895764063004981763348761850335138052349447484678409326594127532811718372061011278440622702593997010430035270771676570796769558090521378154238293425119716608323074109580486992887443162850073319645325032080224420666996879369523345439706178049831468585516806350141627330391085729557554524052723688811681702694728858811666778115869614542180355283636036133716211313192140391103768825074718461733553733721511517869219517893566751287178423369099068134198996272870881127092587652660994007186421772579961132692139510332333042530337592664192983731288559866883800646658498234555480722160568292689103004985639642656902752948685979849004601151689538368531628327576962348877386938038186173362988228721479079174293225078722725952393958335824901022596049001442321216570157946965464144652116391379398124930164576873888967608663042273994768099567196598435049962449780903484831646583309691246769860773754100964351100215455368855482230788511134977828269110105168457603642028094779410265076323939981308729872636326218828604966774211310367454569537702455271683026589166335346328986533551074794331626030599565555944999914362014924502177097665887149371146693879315013757780566093687327228080740719931493101670477346810454643822058253723335321608049543047980000209121119898739671133506610579212123996309154944549834927518531131451716682187207848438361360394939334219871403412613716474538855789164062416705979782746546727321426621359107070173318712913156680051758735763502721622077810293990139894750918342265975526165244171924737246774187431738827687347975427587484737363310926457438333460690200160440099987264458524681500695653034182872715809964976977725370406658956722445714298948426309129680028734051316203836438277047684641281892423436790329621252214574490533920088559208704125275224176661861416969744850145614642217634380675010435896530699004624729383412412637968072569810077458852065907329356790600703778164668127688494036027999551032933132466466994643953710653457226405245617387492484762295384916950425646943092738951472384664070054137212979631701374054186942300672698997948809419839350410316588939430871060176230484606016933087710374771660144522856345018414434032035814813852403710362166502528603380977706263762460198395443250429362553543600430392784815077362590686417885325917726601190181736442635885267487366243892099760891184243899150836570638637486387750296546014889315248521359117365810279317663997153154236043231341902122115396883577027368838841476710664675197797198202187124181630124020871910923945057571457614493866677212591205938403119341978480876221588741012312254945963724267579586062121644341398982302902209410997546463749602817649424348445563474579654036233410954806709597731157236051203631317798937569990700514991840435322947425728501450154384275078335872981096069105836074394560300728610900382780324972220699496894524094944519687535854373504132783805052911660956221667997978229300514925795831569446635348291227678679479885422728887552651176985179715637310842359015131936693383512191628168679708344341785499241998406641630043059514393357252211567672564643192240638660945857231951597577201390914876234416023896320864318217005559686739533727830457566165285335890677618582743717584787175218882790786851750120838118169948068105369565507551166262302026643515203281719569179250138469899684028281155180300881670247422742165349907972194177629014210844546573988395551657193313296392675014212660906895935778325372462260078167559314816904743411805666398582214028584168142949446941295003844165968618309723515108549704638039464615373516518482135627161799662918587149627587467728123340222516330569384952854367598119201691031293176501096464938440509038119979786464895401068497709716610924693992750693655285159354932446190195934374624623602334179136563835232963269495952091196350182335273621658951406936402784984265074479721455477079347952778157136560355970972119016403706379030205708152220809496236606009405667988794984024008359429138939180873993630635759189312098972448288744713124887831490203956142240511091304734177655343290117958454782938011043257172312798577386498692914525120475447792394523658531592377259751630037814475680814093559346295184877814817377074797292345330810002568080670237355828272950321247118334721749576504906617112759686911510993678487545161808030813549372347230392156756804608327008420224969561976954396423363894948546175183016140567222692918650397670804767343999824260032127235215018719722610999234323383118511240835568915721358351262808177818035452221433646604881549022199967715743720304937986771701803896860600663267821650426126146782499048601064864897786011780737562404007225629696664826363183865412315914558121303072496012502161082531325536729401928896636520481810202365808940463159756975385997323804446916825144558418391067969015491273752869036226253006274420792474812824549453990823051550639742070163416250143252467920095333110334079354169582094576727626314265348552039492902973923327788225804350162978332550804849146249557981487345712767921075455236013352116572749855025757363151860534610165010581479217998535830055575297415793216775196243115132623990591926969252975315793634815601865931011778497917713411812512834723439019076986213426007019126763442063133234658425983737930607212179470477633483929522281649796888596860787606842521138975062561476814625166585514921580030713962748007878405105288042583533515848211467738917383487362751933388297334231900333409000695475778331453581615980351162572562980077161624434069054826461360456503397949896688409634879188682503138359923088566231245530288465916033823408295053899856451598785094512955654788418012425191270039410407757538201019764707557563234341007017951246452947739750491911964374067814087320298546128755756890335439780833287738231293601458856423772863916089881490009980378698725417108819600555925296557165761916533570383533130807501193184257772996365731272786020506040052205922770153741896057398494635625977817208832787253435734910967979395469834380537211629107036615666440299068151009373623130895536002465539151788465353965762422129469186804172227964772617033870518042720785306929481573829152113782142487498657345010230525213947441077139921271145369838189586668170899554172475906010193382159169927107784969830613419719285369947346141073535812728934677528294434051768584550944750198177889820490275742460370870730993312865795809622339558719056537096084890262832481537358113794080794585438184766910406279735082444496968702955693623755365986525284012607619821691382735703726366544493422770835464364105438069204957965778713155914474495891684112132295765911761359788065506375075394624024281574784318315925158464007669583876313316544541844698795867640656560860525540050121908349944940883875766998233294458872126377183872148665399549172676363163825452007581842004862806659547000263582346683317722143592027947073516598299737410210848948629779377796481903196294064132793244118199931867839853950646509792888300458851834832874155203855109939122684324854342073666635036223759294388185193787528690469468426759592950183038957443414878793301143210511819207734852759195981012581902991150730172282733421508823971497336781445076982793082512810976930601016117896383873492618070243353234090233078781311976484234067787589722769652257785793851140065652587171650411838909979369343074442965705990936444698395790788907168481070788127963462848784588183232425799782364210251874429375405867249088515800594458740281790570202965432538406333655448009911870779337271572035233090691334765148547735514889704279982194042459684334784512911433026007428702394531584082101855589318485683641329563705776521529431133601943160437298804114071583408233686430264760481432468189549127918452299457123215536601863676356705850137136070718104080263710796260894544327062556404926639400990951404150374844154689739784042670688279492667116400522305263994718792543307326633082534006842708425945821681581166550539307196065455258865254142802636454747954717998885386683810263149465683936113955812379362492259917846581551837201530210882819893921204154638888132506273411579741504795385159936220068788315840326382328527308307481775170919207125209507469586781923597344558079908417534695014248423063728945419698928044198073036176296204238688559750698467979263482180973579039551907627471529102779759073553020518714286179511233880174948532749564589168100985177459533756470116985304788790919090359722583018788107197097294766544718432476432953689222776216593425372893377602755253512119020243341743657934656344591516519270500625843065901388385634663909120103355832051991696741288390759986624466518369658402018874723656348821042353362967825604667931806464775069151669978937538791415020744337489029762328439277897736128709895882044016762308074766803731977162820419006044931526351469030555079301758714098677238335725000901449542660815705720448876405354718994124421664012209526999958439388289257290458281326934295940034457018742089521705631906930007916493476236054230206789022059216478324338888169748313896120928301991065517569940259035277376426162416552039667415784815301753246403562640532785519579968737215705057107475068986333555363949587362608250137272527301488057914158388481934054314507631510600384406722548536880050707389374739873579425477933647286842364248702148442497043853523931157565588621369045420515252814389594435658264857611354193819505060669630910873413572736696971535051464914669616881893932974483849648948404079998068478639347817410675168593215243044436280813261725085060949301429265709688698814926400280949343377834443446503859694405137524198618644593429269729110060912954369655042244164044389721457755491948142865477641207062052686926077351400183625000661149016735159771432895523834229841271065261938546468456795078384537681985905182235311554909505949874921179716083858264603294909727907235096350654861767540647777397539832169983317184681633631689554405372857283213947789986836655872227795529817528060929226649652037934048315332889896725643607327510255971073952699884408373093369818354112919198607476505868960524167195734319543568412434772035376066425994692297727741926253740625863975722380028011973440746712852862109889909569097764229848652902450151779012306779971843089782937571701781682165471856738329491529183123183290947647459508391750921954651246546873509179066857648513952728464283023705088789834817947071981765590593597257225089082313416108431760149943452569519453319452354511502473892477526196376948693077989555239697369741251061520799210024579106977114921046127292901051460553498104009416151168587817006436004151943126315753156140456039927007406805956185715918909090274844295869783577610834796525398240788814510800406187193305058888694535258756394485393180598401674039710169621653589493046238842758832613265631702112457456598420990485822458829103995851703097102441847775665455277192441831041670814932581484079597342219618486091008807814455279363805977381888898551567082491016529217962757608516434170295207407334709825705513745423999218676374433255394769150389838504326328269300798104202953454562565059793202238569786403923165284783004783178536862021623957281736805628035560595194231023880186716660074148241952703694609365704470196894425064745152394272233412540891539645850473367488411687935468950120570432189742787515631132750837923020746543693672961492583490960389658670823710980182326939553730013909069303139187141990434284832180076662758514161167856192625360656580593259822084537417476249839564499437673200689844988012841386461611863366157977596615647902286407771209749223701085844071241339011305344598432543353108898586539710796073991993825299502966684088297938414842536476695316260513463524822552733704279742472026260476761917221292062814255835560486057964174671470533023167603109432476797467469814959016727914221507107401169587702242295748201858929434627450270525383588924356167878285458440222086086269217105663196199495049675445269194409849984566154723768879160473177210997618618994360185657691556929597207152864748110989862964160041710971991543089703448300559947378419210063521010453635794204244692556950217313925176793551688791688231093958988246167703919988360005159616233907526448711004705712265684668259726382877683544052484494238170709833049914354829877066646515162091116684812663511940621239689965687587203887455624972429785003001414140706007953788404376706870186595445806144352820106681333883573085315835498896930115853035250943999451997343470921983646645758931792803925986681874192625474629536835067567707745915814850229675624797257676348572837044276666516793246893154300913971339782269340894756496265916796523524407218118901895629816467824537405536888954817271176853862859666498630261595690399059834379227295737743108061365162141417534788936365413841439758660983777630220925080753715256457700271005991824934400044726390335327394426097023824514076440395508186109950235584892380663289129623955061465512467360414293062965502608179278822619130953080271575547338046872765782143315434060314354805631363962426365469245719553139347338717450941237595953276461255427420312242016174367735641170428831999389879319747261192360861489927753762091515511738143115077661629339810315979562230388831341787909536503890352085648211767431523450048960689512646686148615454233009453372276137421803149905941342648507600744187560756372844837054730644142158138358131552513662176921040341572847685740459571243716860136296973722802106466116418917647449554089664682965442813906528079772611478683312095450613416945091938581047942543356711774389891986635660409268914448697131577228302070629313749977358759153707064595298703523468527634040472207991309084727672013731831581245810971257178022414356653997587834300167438161112977037399911467343627708445240877896511140295918214981165068017651501957730192918274550352351411264261180057181877797547965165331573294834187341770825360628672862814620246145714203017521490289424465272930329917221325340743791420014742095363866640695234255560307063710920414984868774227376629909835707682457944624422276606791596660462248489727271824317375344511361890051439854660054094172723081411646630522335426716721597480540444365399624008123468056309217488939318793742598780865391966612368754011015146221752810696712243263264727995671631489524529739311279510102920228537394810168592256829934961572904993899497264960760741354966399223444430263069711615944217498971670039500403214157646081562880798020987346157556644177193086384463646624976049234291937332428881851390753471579515697343750533710415945754869406838520030974385374509125978066552465383172133722198361678078810430855437041315783093376235566307308553774746216578551864529489033730327622918079915149320083144212731710651474273146702868816890481374095463960449144253364090074930068872687582055700515820615570103631784859110913378210827277221634209849569109468174454509866362320236510819151519687512019031040663507662912168446256200523992323501298187818714328596348365365476344019291495428670506883476011046724677605311687446229149445894440421632250646680010422103732025958389564788778209909709613639742107642795042794456467320061944809122900135803163320925085788511867086595804055286300916902536698225858403759156507900236455643663305102733845975730386260799397153542253938191684405618267199991268312455614238601653506356386093323103517945342752819804416611981451055009879404005315803429385729152374752474795457823301626914631765920426686768002781977108614463702924920369429008511223294762583050774841406637855847782964835866744818899901872020273705855615081744265466247369823260773915280289005406833615706597712322294480501380259706147054034312436109306779586822295227677643584699177299386492063346363399009754416828950213357010929135203371577141436694587454771656184285872252712581563291158794590335189376583644909779782483316025227032116761313001408604694732987395109113309389134130651601109101021989664795512999792230294334330395578098862824775661481648642859808122363214516875753160573488930006856480198291178383598390728608538447860579692974155724681400743307237252285496006821554093401483771531600933766273261030305320885267803630080787833016398016514143877571338835816027199261856271329678941098607761232970982294520710303693981829431502256814952176355234477495745518037540693482432971560959178527414242781742161975931585401276349960196401697977579382993569954455410449808977912951302239396079515097055962303262916147609022030929865558648085894631350896277044646020660974236774678062553613060273881389516735080568506524838246911606610599011596270243360417882660037834510111976254996760511582892184192008184652228039775146618406970901256745181923556631135096332746058452973555999374333085885139856974087584409211774642080721327423107685530217072694762415809669568753017503049182421846631038334315701529490073072107923433177466309317019065731400353337780714787389386954542358145329553551144620490287768968260731362993410323193488512675135092077150573815262440066535146130523777067596640346587849907618402634261230515207869653612303612770904804428879940360757955100910768389356913336230328836211521608246314882260562586645955445482666723400574558380072887051866259184372772187507520888767673884610198817597867983503662745382141946980850332781953851667268328881612269293132806369219863362125096770556224106481392663031718377603146250516672738449494034493569586296216207634210412165197454183602965541292086286511910208660631618929358628578909411651780273911540647623945830336095088284018748302835159653494050315884551018365288080282596176910637565965047057500313680535052185585682249359672828299173458627474213531771012006911892292309891658569665755923439717964948617229863060142791098229457822620343275730707294319945933565556303112666273181312667644606251717748557720067576389968822642367102553470608213191379759095461930412695234994844920973711582372756755151733458739211324474418768321494231252499600121871712874670973486265255174686778181854255311460501357930389329213470567025811126606539824571288972616495327343212283618389746129567102438321483494063091403637505599471862712470378745689701890051540315228780544924486220235786203092542078116887008696783865874854767540336018018144216647585216232153597887901141065057244618845013904878340624902591335409841673831474711525223481598741042835069291578291678073640820929708235115267614124452478727349067517590308804119006164639488426717432358152213065462146272226246422666534029268241937295376187328892228556379644853309134938651290520361213272250277921903543607576111851865231801472142469053737143113177635336999331449292710728640287806793492815817892901744515470024319298208759842393348489008233418917448422923214949475077174575099355674674363110130248483879109542931573833783936399681834797251143782393875160824961183293977251356656238162918365627695469598039332199278567163387492240675066398882763755938902114604496136531531577079563849916235336854299478486552183023740693186485043665792365940165687501521904763505601682018417544311203794891228444810535395178999884742968801254045130672310454452772555016755561849633877063573788137768510147738651707425342233289356419548293197674498644190418458079504148589436534768813940578994829876273572690039317945265182924764856272648772123309691266839824425808348547402711336657780238677229338881652776443980032914927668777391153157080082809193257436888154518185634436427948064347741315249080351608891878745687813993108218479489813889711450710687365286939839962477006889190414412886677444089369861455070400014494851124624102660417443244751325870464652629136596926872574973866164217978467094846176778109073201490339739877251393018986590768772647566225621562332111558893525601255919411905337391088518353654597522877065318488567505810497236910269035908311540386083289245043422253797196742490306883374785075686320166131121000147777500176521492146156403652866966841454635228992711417409006214989173109129982030365668180822517076709587123371954672655215167559074399522703293554117838870728570155925730950946110365961358185449956879312457798364335382512868593415481862042221605894255199225751300414782577790667245362028973911590307117252457906017605983382046710352431957740374462632342351669345791354927052438966687916444949023360846025235387928480582315400312122359560955997024120241950924814543640971686740918405175081513396316230365677538649691682022234824309128912720491350296479881047998859250452053758272628805573743880827011912008335515345140839565641751978025612075327261208617994486973996904145363371038021299224774417203497970336812444902549389720344072986390466322842981307000618093783753669829345741520148761527790207048501504546084156585972766982874090798404010796309229593680964450197795551609304749649061724646674484344708284300169782755754715492697267055454655655772777050814883459242719077667216521514964386467870328128573611703152653477748814850397558860411239313399887717201511929334208634248659082148446780251937403396278382993579017066760386641536767814572002483041765006017035222108704055529007469167027271341430871023262833997646623821217031483991189338884495063531777927043102757301284578491167419705798059712155771079722780237370344370711856940342025948922709201311985584967808149568529608591629160791254498822943297557704853031139952476410980476946232919416609728383046948193343122970199221653409240168703708750390648869923811568803056131034612551020660905900267824062063851206445922160449129686856694366011443572478191523108234406577076506864292082381106979050567891920197047434090111595352883720079669544804825952793718335688404018591388879493072205107865506400987029047310063917736128309612630762982613145383812828124926291889791742480456579384874097739895766308230113672087710769442429664211887636193941052562371259204628151694388826454782782601601659258219280473104177896129876797124227794054655924261811201394019652612210334694303862122785405654168454079082724995935811047173256523499487856726399035998431757706194947225118979057079801901985753996871752104264967033431338359806195420451258679170481940753174287577751530198848950567622882759463942384824207317890949500806858901543762353824857126215566163568784094052818912149951884986417919221775327695289852861074945512703113069963422239059078068167526782192159566107994149314916820860703600109120776278522509223978736215600072258379014170895652707891394625994896241789068738877594181556853337906790414257299818674381841214651371108983315683650045264708751519835952951922677840109411407817784527849829676445551681863924252146833457056595850821093774545206410908472057290011384758536284729257467125071945405331131200603366687702825852845864134310385301867518093565982451733020396940273884729357489060778448959215147213326288439135965880510141902133622808984451252651115135652050711311015352382845514645736233558018095286413268521883766626770362202927634515495258317399081489265816228780211856808501146090945782582396578004888667420556506304512198960825846741638732193752000533128353701897118449993409611307403819412071533245907604104107673852357004808014358586766068815735674431385992677175484562947672257438377918309585906537935915720607953575898600173906943286523416623119206679251021872482332835790227201464539411185311369230118369047793230783062951436604163643243027241528827149082415766083302187190097607816397185087196460421674581551228008255635268495222138118091770389295311658088805879386081033271207017535055685641662671096634450372632536296884332309991397287965597414345779826012373876664877687946445667523314359037397312269074089887300857811328188027373800008642343114127193684872125322823358085093407705673426284785023470610735386070454744728570106750430933476048398627993320781001054361867967952638176160153719044423708350419965046574158869160123493697390788790417455806442452655308832225220593431889116465773757951505765256393656679449890275139287920245092652365747598568993923937929179768710214042299435512510396241032251222625423768146118954393163911730293092951956699807890842378037400325096466079851114596302079653831828161211965682551506713153198178471466763185216906124155346757022340595324507110210740060228676224661893201758449278414872550349345310364613154488774047504209057399682873737488230692925615995745437586904376429608198780019108452452215120228648206755701249526344342002982011359263736897130996672006267934934001268881113004937492059804518392554920633061112789409919062184644742416076670696234827202314301052788729079653593840539328779979243347723933757909914892152512886496066469265252799363857721752586636388928564979395886825347550203510823766751782395953411144388498021078424555823587012618981387629127308992757151135502762990046559568453397804196799949380180202787004856387466686451408850695604839190534900279210324362011807025823115930140925963536483292501147613820389740195587562649283362298464626908911039087340933088084336040466266478910402996440074112270535764970408629556308643188257232341939892452677199519432102630241686482108502724276956146804981264102595667488025599075424235188050538646112570916596615924365151229918077059099690677923439844379369292885574698989393662828177205633345816233188411768156709592511775493179460338930616081338686225703052194384806345874843573643795181241923462519259248901636239082632162691056402432867843361891102126636635906897563765388695359762591876229809308422925166397956109874393086945838414646392470475316475406511417723673278874055451369775509519731145140550208894923474382188977988209040681416862900096957091840955011142729864630753421909224992321297767386720680281109206629227182640492674907151479523801181672670032425876904423430752981133303123367311763767191902713635539928256503620014855345889951821626817344390770013197761313474574775552087086003738667817170068620402373602614873108948354738869043584137557795343102074385072555581165059674924149553642962459156010772623356753475771062807812253329597880881115295390794558179352951796081076953181634575241359668251209366399136679872037934458803118863470279840029007251283005088006504903676784143033420852239937194519454084778650810312277395953972014891504904033610945267655569452599006706436364323283468538090833145375223142414459611684661488494345368495372792476590935707999307553102190443508642882025966729313551962383550205157801771126142164872096860698862128764903337316475856298465927477954847557238011246751207385920067899674866452149580611096132341382524814268219236837206419804835178028669377987585890217884005163159737098409198854044997965819761337271659937963812808506900163660525354052855879176132540950853496115007883806818580614893980088592298024293295731172817491693687420487848111296666964400228890537143189219495795934098038142596437637846860190903168513025843245175670386669093139515728023308910547072284377507386612768644609591892245018083201109997051177760478547374732632638039703255342412858554121552332445147462998822403578126508184381162887755110870005373205353104701764530583714843736760444053261905143950042026258201575124216548101705006208466799598337031948093014154407219375738136437255784935003249077787969031681428067108587695537212685000648383101850725709879428917212888771457904163977927426322035520900447179772501345242171827873730241215554827466715440892997992666117898189667497033828994660422424946042502316061312001670726190142459743119794799935519958735352102630538036436821791390934453510716652439026743959792423769287574178669907828979880660059729058723716831654952036109101211750697125508340395091764344951573249522258492949652499679873070327882272943145805915300747978836934085918185980761578179268742681999543270595441354779545113358537359566433615166010440106009587331723675299415536850854123220552495205927379558423902883213407838802045003313368294843244103415395299773220482550101298586164783264311954253550302948552006548065084443782080121278888255007209553289868089083594822111342141867631511447760279436945667331436916902344843141553746950667355146087017738189888002696800744853746633031574385534118146793205540192559794712206667678860020854459621815451417968478043584026281301776185664321368534216230261408625071356496169213090917835061294213848324177894788615826460120109032727226307169132585861095279313188872590597029758225788698163925436102043109041945147350052083583498167348158120589112155127459343890516884236269605160078690185830016336872324156378635084213927775815567751387802937254620255638696480915508428332764390915217207197600793386603846583987950883377553288697650096869083154308132166039293510977854496935639097428284096016345559429838102909285315462474606314636550523587852160871014126327499283714579941086834373882103292234542339518604303817333104715320410090940295232066534037380231534289249580590483536012069745758497852849297035920884131816248578269230583226926996126500386035296911169405830829254871235713464099044697095178849808662838403686507577301655359005249719484606118252626845246788264796259478285652717807887461581714621076783474401594011118527377275468957718691055111189974191867393100433456215200425788174216000735312482255209216608717194038657593635124800765085517698799482913969390540687375501089196745993443542831197548676485276034609731646169034111639935060006676412314654096023147596371340910085018133465420496360304798089773386535965713233657359151412262874206819253533255644334819782723554777547674494225118643778636399976013826788474093858595620436810755203272414887333996624588644015501987491892659176063763439902710745597866749059222103592397794175518901154320517806890204160634942922130592352136034319384608640036742532563967078856530851347712235599988048465065896691828217957440853262293593904709952875344220510607177621744965262572915440549394336866432958752593440609487482962961190017251879487559348650638262518909540353106118806136891390619580142619427658315361932473108297217834099863061024808828804051540374018345615687110045053686362584027051391305910510625436455585368597222936051033312917489536359471527762729459160065645595089510668039859221383394874326020126322422122013904282103307777157172284771630176634903808472672250058461566388635593296600920611692266257029119833033257801183751591021092547057052406839608687369645337174958481610826566605371506741534265098125727440645483914573798278315547539068870338876699962856237386122143440762191533030744116696338125481006807215400001164821429500032626644312304186915593899680043559201419540009629266679925546216958043659422388419697887102937413873853560032061941161418109578569417971794260876218633997060887897457133267480648029355862772932033561313057362001141425357961562433870377134595432910784366180151077475287068416527008142742230260623711697713909305036871409567122389511881127605783725185743580510007164503500890318241877995489030558669821176519641889765942709673007384761970293454829985813673375530966216217246660799327334022688720061074501034527596940532015255172484466730449502838025741258221696792107815559002019025600034696842731823359826640171231828409671241127852966557596420831420240082498271460197575074752944214948091425909897842427491656365279149947193479690632534250878711911081863803840485627858369928932534275717126274024657048318638616103809117210564162502250622511793875164687192763195487109118533500485372725216040285225536872385870522783332455703439326603092063078286015330918718132201590055200979734063726525933789463714494828766921103641625150529087701626565326406841578077877753737418513518962882185389434714964648988001307969716225699246815573841343729157699248589821798450912025131336109465298222017390683360331997874300670231975115249629913298430639338930090260524848149598825257037360892289435641058658022389841877243287121113368308391023424331187303582540673303378603798667892197039750885912823533595898532834236366106078569558582356681756652818043625719682277723407297210800684208150431163562280695190130148676612460118162018889906201033239875247991478874860602655764732553332113305874533923182476531122658585762508448489729423592999860694446387938932582682753055466906874720348046615848799898245111201907829254766004176134864778788593611636706858174637945831649038726392229292037466211833707062647967059164030809227809305587048721443175767221166953772854206489581241806478434371885651536149950844459942607560027873245619441766420609974062514628206835034841944942712973096220603392781933030337652964147429348293799148877206241676626633856418505143610861435898080304561509697898516970360177924295987904250683624004571910224426675467405438257808685904911318838340939345902453268104288281178814898316293750680574941535468826249533203653226562295155421494053556516836113631606226429996349078578316274562523258660137265905573786861152413931054864617394007161879590717951984857092452473482628171423867112534970599505221733139578836554988244877840426343336570483187657411329351121677922760189562847334217771258494304530153530941712224406137154242566566802581978691526494869710975066986228743316927764620419679454150361874009651220042277005964588496950369924823830594133137580142637582095965667454727083805736337182265311019385665858099340523961536438600029614355357740907404291588093810105485455858510978521181415315064939492258508679251778584027224122559719348021417932927347349790341308942796761644729424447313459712688379827590056693967029774059885193685439173163760520390409001841038371007137921647926161299629256933873532835926977870824105450841164108654670549798915413227487524827923778701015715703883620821643037579279972058453608288224368072025818241235923513127709037318707382427966495970813814526858102453755890867381530869210925263979979412445900338387724320300999090160649101440920817698015274089137392737513400454374955645301334109036494469155904110126931455383642530497737963358160039468609696156419361918406341960468938717965315241819350987022818398877267642963662254029745758580699950067156348567988790677581967986141310544927301811972124127089915599886171030305604242083317134444868280104475351357738470622563021270354670506052807500770046925366003473762176810989913199168345708422272856012092482276268176646640181559859685618856499149159174353207974759128878621151539900754427671343240087736037834119514958661242616101434773800757744136122065792665486065659326625258638737581226383313819820928657404595082016708065061688006688164264911633968537505555615101522883780380493017638568269879273173451193954015182807643378717678427846318493234444563649687256256306452179521150291469972230953339122615783901352054079850965336404084080373857946039252372137042860224812192587036121732741635956926428460580034919858034233329185579018629331213114146741795782059326700356968017780986343593754853151891257787876650918663192190748886358920879625927870458640817834300162993137877253700965165140196264651018634551920355916390929996318182788998361912973380153022348089916579930223084978636102848904354210581156830703553089774390101271174922914163417870044649239917922690142327018032346778493115435104332115732589279311931977937440525921895827678017294235279423596057233921044098397841454067676197049099474238858309217958158064346471094242486224892629906801090911724359806499705317396863924667023213362998109204137611615536284253204364836242044010199841851452003804142575904330774502401637129229849257497987954991249422808506627462140963657592584421311173504873772147381500412040053564689674497554183704374365255657613645758617044608094613829382202320267714524521427437994028145249398050678367854649233162700591849285116030152294434047783016351698934830320761260894901446510172768702815518513598753354488193561451926174449187442362177196657379793775278140596091317606996263081361683796501909975041497064830341753809158272958928180620058591612679183725819832055535342632783183275030867288756389272167045752642714102770824083178266933633731903647181666008629619893240367632389379522676769676434578028326924031714156747996726118270539588964996729164944065782629599242501619649187539346703360848327273738260840072978297623723828865489130406007454010013466058852963888586313630680349239940223603511895908365282609942849675127334893717090034028010797493289145231715873203244014992872844067690474026309928197246703907786066608881190470432514496413016135051056187605269711357040578521359902659067896656180166057297392194566573263789168390292859419568639424172623382713346931928017994245379486686901393215077765147220719385704474973065419298089191244322132261742617606866491912697281172796973936848538068323937993560953974040629903276251187412268404252141380637182353398208607473916815501924545494800803587321415085911248955577542097192370192717756069505669580259124884723787446227149406933078640967263734047185438851385581739370048642144815481784131583196752911495540055404358792805554318392363651918950028146916711315980016599423558331167952619369238758552767700374616490700654228969508723800750656640913629910770295976433998457338052050713413634911083900441357816011910789993263394242364384848713430458695276237204277137426210381316947171951627490709435801792198210231982177781069561946612331235050375304096282735080977209189485606947422566992692012608900778372736698024439481803769542214098877026018582238773257943738656462833685185358011598635765763513865864029996882368629558691387658084259824579038622476618238134664120514940099037983532815959235082576825323398350103101484507268864584420749674287709059500854650909706089853071660685545619674589571211174571273032233201113877274211316625379442466178799663305562137163905512470052211480804353439732028790713935460809105929921252951185796472655878965387917906912361797873214006260822218874404351479866147940092340764440075038184265748115926005240493877550907962135708356895296288081545978364721926943662339363415824460314268603445569212594151510783007734152001009794695251932944179548932716843911591809399896053538354708491120781818348240080658199821234199200954933430613838261695978883558646961299568866203338976835738564378248621754592671979076374244932988300322816790602778131831492333104794759572989261713917541692141040418167340026821309153890435126992264524761416272422721050007967206660876179275303268484477700828053462553987464014496052144059369395509714555817826561923869819268920836612500979696220002812210153445517248248933518993890856059487314526245259789084503550507180268715598459609860315008833549433212912901899325837335105748367625113899909369121913680707454730768002410239720437556698427471960137891563452142736952684802247747753819932427341774403104862950374802583606716013207487390887755030550456906039535414379870132256865080005594669984450387531014352932564656009234705347082593327644103915022807139228560939959176925286360524212427429940232017141977183878349922120813233347693212650117090484154615589850650928517673422217650475440580765255789278886604092301678339101466678343016924980007556352020095177213485250376482311076282568244478254219838825654182476400188090993263402873125053661692951800672533754955406801375524884008225704167229282087062355769003025926267993217889326888500339485482336122380606451461939218732110437221686908736884763067551710464144777964254570383579759751178015183741775152536414381225696292183148901063369552317015065757557966846242722038524852311152383892195855131642140433619974392218539903542259046418670820957991392454471555506331375143133148443883757183906465058488305568870470770488476306384668811715651069358031603496047037862408159301423569489657506840164186675731723841902276578519109051774320994876382101888157211763940817089954123261561542592919416180536473941014399396061261342542223545775124220093978163984188708708928648946380046307375950146155462088160317149162472441972991848691110840712572041191518160199779540129191687193793529672810466015762227611689911161416451230922865810747278391131034534557234557798027236573208861391103285223442614442122287698952035093523961213883276820949445575871314268546247205262029387715981227182730349253262912279550355222155290986912751171142622202234829874295189412057482762016781288739805695732672407349690558254411084114964666064064820857072376931335510425554158702697395109487171671182440654096949816408980889144712925627222526453734115616442200671854066457247763881146681026089492620743319898212315135957357987836895846549928651162549346213840705117749925708701035579320379626480898137229411786597012641016830029057011358779465513914829865321439024926083670554302076598209565933434459653994558168538446424955888691272184978745732013003566235806310836571430255536642204587324077093526778384765828259407848491116173938788587406255515602032140447065948356954020457044691387483803269102248819693020561629055207195225776907560046869312406768656198867979200896836147368583365115962179323552981541339679355549026602531874117487614367135667199857923816195737674571140719599931143147168444803817102891394240934600432220614873443940726463122446818716704118736528780933573504213830791268839005674562882180711131612148886502449272630223486507138350497542605132833031897821318854415461075080198708288606480488382326160832162921771196717848501204178740408444832009222522079968364968895401192010462846204207857492643358107934369593364730154488685034708083763626490029767271541951746591742869158424086966661553871204873187811826697418730907745082994306142410566788020645828057866846256767693556188057302714399598217175645122275292308277513931488714431035731673487233358353890585836400054374755348521203592642799656248158414956170653519024554228563240716983601576434254426658717905090023058940942911124621100390516679157033882900592571417636766036112488173724807637938722449324563771732586873565010925056072136758658142357718642630760509053480498745750052162498796866235951623387268286349010886568572806498563292374644741655942931518717300372570514900496684245753411050568055380211777813789764350098588872595899887814670536216322506062442949974884579008981452911225270516541858173640503738348307679613024066193527114151891943490819738443743543370210223694198640476245874993381569815908922419539246032817291157128926258455181223808413536151724377881815860202350655029762090182228988453731655958221395699869844289712565254833198413361135726888191998844091274207717406325290302415698643848592007639895046763490386305251148722292667381464272130347999823786904586043097865339290880203950688129807524248540775124702823002046638696307976383314233680494352534224527183161572327356754925269207014599964552591025139578439750992496454755544798166104983865749026154397851271311843931256754561304672985632030744514901044244861812382722814354053302793069823405201561996660293616821705599743287954672402365407077305793319391339707653668853893250089905507259097324043435549445081128396580595089125226469459604616889446510406689689567535982082963146953474417169125448898863353720422398821740930129247352109358417004195496780144125876478387629779982970185509712981852380086044884883361938154591376447053722100610148936277029833220953879940758594229159566196887461155705890986643461136581716906047350512042106875053455326302476832049586244111931186689365386432175298472007985196594300983063566655348785110923252677134738072506393155721066496483358291457073580708649177198788840850303981417309680564167673879514224875191971200809444600591236812329678936032569267094866667976186405404321092313566302805943590438305002820813379454130901191011572382402471463013678902716459763598441577902630430077336605729356094945405095957607181179902005554190153832372489051462448271767649145859555706757381220193043366373098919050525999399042908799366916573334975329684218505830149612907320556571447527767121555801893036542469704306588201488478171772200953152294965045975628040430557520048166123608600920795511175214456275161148591607377027807620751219196743752916183053489869621978381260634633055601510117081965265828333564867435527560538735119795932463905591546495458446019654437814324503223533704699060959302839089446509863683709635528896376954155212742079753791015099401431130657723009484251961102281933727798625737919668988983330582312429461390689196742829969014073300037301730658163967462235765428762506398919285682714068532895553497244056508076827084812673695921203543720329477248000865226845304937748490086397352574337435134172443700602004190707796387522684748542832776330676483011978595766148967895216223488333714145152061683187607155976498575506236902016516289778694515800486110234157803554393202403289878478904356813945462570847186501469414276114429011525618866879064547558563396109670429666084447103103396595221647239525645610523538890160272958040211559301245492906794841229851174559716728535192769980057374789671552518387546626404596646386999382770882731318537526574259895710723367171222044335553763438117369597355915698679761420048627987286507578470528200502096632342109098149418835126400485954921471882487945884137339577456435169424495262743224471462750391335888990842758035999901580439022373483710852850445940331013861215691696510184049303860327327488597570440053395671877568454483183911236703978117654928867456087973505335682975292931341463495807011125764467512266837532825775018584475413810124478627112729319318777315198085108738378852516071649737062126353608135759809384891279312281004561481766839165967521095466754976849035069911889572461814380999755329629220025147056128326962629223689732309380118530592216928812306928536075339475227196005501636487546200087158765471689662616431771203334855431849571999458437172496379848852206924261678214117800648267632169078369251548630439751802962484449866229576455605942325745411627356366420954851160714045048499214167327829665473564078094344038921485646900041010073838589104920216696481757826348013216232507648215155956357402526980767202683431035660991304093795792924471288466317514653528791021037506088378573745257373932832341152495418048328065565960880020440500895116623807343405444555522539639130159816549429170541124237667343050029391109095287283838410634738576754827295644376183856545824698606222542488874109902004793320051459258695761258558073378285329495398835866895421452245399434999583400898049499445634503774868757680277691582684166646929503944170281907927412331044317364875646741400707805257894339626088422921307465945618982914633756511557811035722438537976379067759944823741269626682217287682170439976675662871274779511852257579308833861191841044216632733399703964354573774877103850088705373287902417110397841345366338619718372531181236098053825318149592209475224010383486846772854473442471929385267661604276269860389083919984825613439682864963550979448361591233163967731925802234778469430890432014694411715285367080632489530154237672872199013342732477424313495012472271882198206121324431540486729374475844098740854130366095015503027680683517315075952574308446203488724472011962864699297980438854070242235078797429651094568409235754838677307400972872530838601219742114218909129851395579436197209071737120340111152961266824627450862431513247060236262023755110861459175107041068978034297697389076924402841539089878167312769560349618367521935288960143454160330207807100432643809559479846690599640933076501663548332207022820123792384722221697230955213958894820642369062875185093732886099293023754448209237159501368987196398320894550593630573647806513476626501721575095011464530673710449094484461402985478381448563089960158562170303413976983160116715312252718298937232375279231657384838691693539575673533395639369476412935203689405231956069340391157766910213821495109697068707560615084138860787397212972974519452603806485404616119897730139159347626580458067750204518945289937738619617414127474761271022819174570215722104544010154015206334141135991572566497610707125688182996330434090488184941716961864071955592503095356568905998196721780167032010628936614274666275159734046746886114078938246742186798480718670858754145033714664134179397170466998592310469535568359434860680246010736774057197621315811424660979555144463317132464001576570822165622162155585065545053366419154615608986282315332569654253416413447102597437033642520966323179748810566047927047685365664745195297993741573088501318137580870289631691848098312047086593472752887276604707736150661536685394942736098570994255868071926114920724618695813681248190994008056943956072326686922455334226845326762387215580130602443117121408954476067829218710204264687236954217423264465667801125499441779809819052201445091136962789511649700848208714698869703047579837058690080355778506644039127019459827450312681586620556361274700676368879237131924628246007289741710929726732214107093696201996320838933915802005924618354653233189565225113936635408334040484418934268215935736228106880155806853166770392043718172292431734995529257732535136907400045954671518943444119554330046581972528685724824183496396883739475820551358404901525370387122353733024708967949649428302835802179490016509727696044126242730911775762624285901400844332095891018804631348892655490263558864103220802669131885479505079460782711401440523675052548340848792658913920364586989227536647360582138700126956131632196472508066319746976997186031402581807831386885024867221948526468460488327700002568776676039069766166660883105259354710256669831421501343388546633872534052811112364648357197934793515865071898993818300618238479616042299569310938628800732280426772068045068611507224267961987104729740370176962775663507670380211371462320982641250235428267002738717948717723573616108052830905671192689054433493753186873537598283513065286382854644950105969557656310835371219576605233280508327658574918303337954553153621823822060973567022611892078934827693388681384351013816731449808777899232699990783379790009751089074764867095128482158235179312235712468149676718533811411877889042882276438876750283720783997332437355028495600520553434575201946819034886421431134986131863553777099061401041200961712342710619296074064200063860224743803915603264017034795457055318174388708062373785708778680516362486770962571035543233241217350090948049011241543674985089106098454682045369131664458950481770810635392801246729281258896818459839224316294578455825461343381098763608117921096559192277429741778354354283768927857875379131475659364898061601468551665244880642734974434023544635232660235772009198736779438416767711690577962291322946098677423301076225888425342373076496112227965897981988397976116375006521678772779692948763393548653102735876105136372334264895900339829865941780358780384696279427848261490007162952298277662336778985736717447129889490868642080984618788830087871270772423339413459785283956527476851146536122672933338525151746032959760473194110436809165131181474697902515695962179967949131113096440358378893961071217706300279308113813182289147963756827295514388057288825089053284725807560203246924538234027808100719043813610724579885808544244500175221486200352939758725845839028644289116427539015947945744081865906043858572070589537849137866160321210747992380619013996242469359069617469729610422950409564821814370634476442069476403449308566056278438933259901541147035122791094617524907795930365552008882053254823740598547510559407810821899450582160427103595344237411561303489176951974915365494989041960405394365470642277220497488480180307023095531304590654149501745971501254573990545934403387897195844231390954177248990256502299779588986461392244149089520333903643479104840944120501445161921318200582751256113364829091267077401233465043700459294213254557462078024708094313646778588710769993961822130358605353364641914058735876807981317945040817362101718818816178464640504556143836295007284095572538616046119008267854757501479559910717714495235532146525008315860476197120457301649980870343382413406776479312867258558579988504098408748520487734118063134675010954560945119249786837043517837378798487153712604505295073748962580508500842510807723594198221448134457774451058314700644540349084827225443795193843013337312045677404336599133389954322162899093791669314683003678321671076305308429689743192104882963969507536812005999255711472378100433215551308138792816534735594844638155604992985479000860183196425021208417591013297185710351765699356017012403939562161813531118948962105991047906289839065040068310950121144173491403908279449745685860209767088933262392143440472057765851884496180543368422470449337041130106699091083147630830725268382702915073473118448892448788971753486445243422855069321304280357763502815045251149744023540107199022149502084681534573990095868863541299331130096585016618286158699752592854650611749860307338312438555460231619173791078022916274228710523999576687832219289439167845194486737380318771993567266948569590312427412358805424151662457780347437202334373678876731099162684663469641820657377196600106438711913487608167578254172555342087007461142800735723277261513070547301028517340936052088280088310632717283315825939919417823843310614870243530221357127590173183902043052167268649216576498974150565403700057649648835493625998802407192480895465776463383740218187982129373952264722901071705057528710083608127664130286644492441884919702167223216405111714124276025824244825411938291081235078194686368263962629243925494879472380392598057405077481800130702691061683657228733130193420855919883892426255624852629902385128652802486594756376246211338502422757786935317562413598606433592350279440863813793727019374677235302775111494783015710053828990787982638368317951846038122185194365730546303182177359957132323579607986748056635378664657964634135231919712514092102953282550258710720953261473379467355346715413843922536458140013867606192404453821910708487076872504753414434265813780778090706645320110302076739349945180406746047113294767051471676693608858915303971277110328572853874533773058000072637523147314167601769624448646896966065120971907950275847215532073330216121844032206285894064658668113304907712407161561544369738673886266122253359728778126157671790811770384898552894669254937804604606241407854485956144264126706718063520910625894794902931302805661847006291351663347358581093144145328821178252735813787357944299393212053831352536598077443075564099473718556185581737478780784248690091127709426620936494350627201667217741016625491646631713166214242863643841211774213766089527494430874775424995263483903683549535928511045596220013593668356317691266912020929769379502454809206613901820480873325073886523170610595516924778679540499991792019453133143954806398330914504728266327141382665416783053196324251336274169824439175433835520622009888670223280032866840937583310100324358405328597252080936187390757954378189946524360336941954246395921194635314081470161539607034070480704725614383120802085461477515907525094282347918050182822673757733159125065569202832895951627614237090152652731349472038741675042697504664278055542273627138484679821567705302387931971685010118600909080279023717966799581380951747048815070815801906568151202647374624009939542550477720492828787485200375327460362247951759528589713415776039058312588575612110077909888572820137001181972185983684449224730474968530222966567221154180215392241582902656215632067251019492414779708073468634090830713385130673193491033483159630576327398476413589850226678749053789746486181970184302949709889160195740072728533095552272088290579225456181270065560709969405067244983917138214688443696279072252247420146292875860845618142168667941373986969863089823008906822263023777929551814103339239540142798381457440824652714995722087985061110297102177214006275572042485887368169448107257746156878906139564177395677406623543091718002462770639065370351034877647814237934907248347072368675797072652811206820219648231778568028128076601983173130384363945078241789647930079537022820239178638119324078790682968769982750447122771347071551192277904045722194470633354404030236766955981858276476871099156069827336176986946260417288289339150060749625338020222305998773536160175507060183432813443544740684820267248536847506601601704040654753951102672119454296441047969270721769772945998230006557264052599423587467144160884444092908473021655415507032977766250781803041151916376193716947289803259918609761899487635581555479462106622401164573625795227118030967188224507479212468241154599863538357546009084420081602841385435855923808870957183309677043789478533360932653587936736272531374856169154761131582769924246862310671029497176469745354927883167883839197097852284316966720409425768751675667287378568735184392524732507423469170141642054051559588130897475111558329823600798272794209291306921769853594300705543941678463367349945269845045382714737666750789933330179876523252526267058382408998695569219914027388440607414645475283345783800442738226585082819164591106109110756939063065100514991191618289450428319773817658235424875803572841423725528596745089595510285227643032413127237372072788341122017804153495558084100943882647869250000962482594067191687850094836832921870347925939831091797881999731096858068802292686262992504197036049617405871224835810299579067627049760626622324366559349097841961674805637453795315144227940591561262393919643092694997019479039580501555519432130649187577110327080385041112170280048028553114197703868817305993809705576437462251791756672667117611805617295038700954275534481420941453982407137853228970638253688071070248662946817546838714852562743949756159657102881373864591027685115468929773498588929498364550189939452542518846193826269097742448981460801205209673949415922947354215723706550320522161989833099518178869881334088897748633295302727044843544401938659723118356568082787734465468394146954436876012471738987278153250530243346727217217744786945968919390658128283287505385508727420329699977442944283829357604906831509892809021133733788021764975674916521212522765455702467181255411917876191800946363910110349023857008412610324651083274420773010544011894244758955438469591319762870628408499862931822420712829857847598785413685081203005523184772564200532042726945106534637730235404055483306829727645392725722721062383607254184235365851357876798317106052156469990177607735396419503770705720749984793468574870084751755045079187111500749896990274312681345798461827767337835299169613124121039240564403375700142703063424192421962358062011061330034372193827448033480826601118198480148701949316570579334383957786708084780087707438072450571641859765877436904293114065515613229402563090298390887602182702585665610007013532551052913180481769274284511515675356093958459084831824067250265724801383968337683897374280287170202869615199355375540770817114198877950862523009910050727816464164743476339494012016563043549968869392755911789694871529119382670401768179758016175221811901532543660864660930940015268525803849254831064502513814777109432574672675983903925509324943580052860952547710791531125080766985101200127997592301153999873603104112367422747625469262249454400686993723467032525774228697875622823484508582771101522550943307741772812776960576904035617132229434174086766160130332289070435055638017544396313237968515046944873040931343312923758190186218488352052028138345145643914284286072096305224077826509709350206771090982845401606141552096994466549568668813670271440219836146957728200980050982783129635670364894908589103916224360120130836232766774282533538530834167112418762232037590318419324915664399453191816273340295343952346631991870842068424205539858088770995709090432221759957376548484379849906359839182620945803610901526148964930902230772506015240647395168038857440921394343919321768771304356270342925457063438183534957010444704449483740242619709845785070673383394570602350870480840424420969701498534737884037637942443453841371354533165075999912775262615285867118523908074585956338254129458667442504157808323906888471092790547114805454379016183130085304827592125128571871169620238298547418549541817152487663547379921361644729244109425054264068503886696053939152796371986316059863904345336870059036642023337418833756320047458803164022151673599359839887709572602604984518651585405490487781720808701005503322413184221567678069166306979219651911274776136821479311267153900333382295221724851615775685069541538225582540139919358320097009571173215187666793932424490448165199483735234634375327219083550943564476729645610781376867336549934173995860237697377687496679111786963589919721866812084543444287026517339718177620447021041860662641492600159312154572822303352886904951452670236165440324419593901297794617657374380548382342286877040179797210900736006999540554249055051265111216079164138221333111917285754914393162230823058535425600851240375552306895507981000510003189305659116024695779484799141597739548719815589873883133382194644447735768238799048182000856801173252689381241228046742511949097266643476684987717831479626108843981072888885562172235254243299461771685214808044321109836171733851973249338164150311118712850915940184301593564429689887395323548286090592013272307847434338280368953493642607095508734874714574159545952669134062230275981867113543970550709812808793330015654939185891542705709330563202709102828968041593911932792292033298889123158761855845339083875066413153247059859877681225167233486645503469782029374146663623098213803417158013007802987973612095687606133562824400688689644557122238445703965103435723651139743688418086570406597634168847205799334796526235781439963784695599390734662189927534691119384718905996763772272333682663450656252085496837178161979607481422775595314499336676166115840676175547064898954639710385535159499925594001508872089820883636524239923077525816776224357465772808771781262043793416695776479476625750617783320006466523743928450830125831113123481988980210432998497917356894576178784347523275802380066613302497848568743747935412871204127914756067432174310892138067861722087186365659621900571222758361001690877831349866351767932663979726443558603976273313527820079938375690004220768833390088828112628863912636082345341067162058288675345551601274141774680832008270232531660373626531779957389960606017171613488482906284638080143170096417175280704742493762617193786710861399976961664788175168881745994161661005884503640521563354153497668017957353604986481988099275371106496786501208914339310955596244786474936086101100517383630795529426185443782674751334492371073544443078376662753889269098577644020914245512550022592133319462595299947536811236517912087045312505008069357971428030145965287158456565331643827805564964135767477245012553728900010294088188343754654331775831975882783854706373726742347097224128124266134621408823944733672126610092843900597756578417979029187362727453331481441443082627696412979586837850701420049127855040053641147971217386572812247024429235490989128396975819453046583105759491113385479542197518292271190445143213200392311605726525151108228983912762997707675653093303139840123050545840590959309266838796005933972191076097750782607199690343864708156911537843317837450390836769512165661054459547306987247233429658228369699061154556976220440549649452121134121726072624543944961350913867603640404659297034801923058129807083743772891349851170527958606031607753188297089927163938295942586221435584336717889960659829968522854547110968497551997236588822500619327718193023670933384422212782208447100274796668100914655159141162119179918880043336220771454934975274941098210047572977051364637987167395101150135864683078494517710545660940119509499204482611387691570535535590027701874126605781960021969939338917109686709392961273928497671002401712967563812833801252380536743622646362078043847677037739267317863996785515638170911729298811227194781956899461897545062448954821682535177236178305256915063129809906083954543001562303079894239794855553906847161643735863184721562311066957149592102899688183590320537920988893453701562154581699644216867603468646245301590466506324690668074264687810937297935636130582022783634917989314271874422995315733459280214673496027138864835680205212081939828337258253859609226186839815402561694839586146802045766681948037262141654975791562052545897640171850816045621645540883667695379278517860967863294442577346588904826437127422674103161817173588635335260177515957996953558209888118802106247228214487416987157197298796388075891917435524236971875050495881689781551987795163777562535814539352342021087820828937851921433977368024365559111622403027703200501461935805134407999114078926061772824787218677275995117604006069133145017605617834476113139369775090409999628582718838975164631943767070834449425033988056197152485061304805811418708474338529072034507352638212693478925753724358722569444555228115194835920467462651878869395965995758257762697826000761563360737805304272500694505553961833960668942810296319277128752355513291434490260955841797929246872348699731163111245098976975117341451114995317771916448040329169225755935459272482750017466961863544728680465362084172046825474975903974252271366582757084573612960622503018678184721631877566231187477830527294834335360695886430004607990365553019097164072976793122464828087959626214991214797080310525440539009134989281053169998129049584010369370502189058941454227492336619610130316180511980579904288648673172197281109082872528574485978170025285596031863012212648134463217576308640900168438040551078626805450002830127975721529846955815927304206136581180629363068387583345867643445437315413135013495468512178551844556983217771691937424999146673635225857252624529625165601993491365376186777681264075995040198299183754447853902673420667054034016411516406591338442526607209550509310197352936181939715675969682098399904915378541600402510575483641351822567875844951870168472938806236884855873112562728240709059408658257124966781951409873873470209634322496610952630231351491356331694946711900343742900463191123751809586764083354914084891872906498891023032760663141892848358083700822119100914536689735485250426423249843516549909307963279570739183047254061441844957530358220549710476717024525567618677244524947294513441224092282647816294075160209737474620487938157549814054022260686502413879910150426825748287791296921217813248829159268418034869149511784085815329259404329372895376188425306991379772812437653415957310188869135034038027069423613509600120274109460118933580129633646101929248275511693668580395857588653145509014910204345780435647385913299740657451439010013415249292227045719373589210820329096263963666708256167990238812889995469267666409492415648753633364203861319332000686897168992923475284577085417502447305379856051336163454555646756145026623257431220872894764715221370559093943539012127569877565949544235968279396623507579470869223952868632883528036213113049569137299300318732300033462155752015980166968535014413059422154971181222711644828907852602451305920163475860902657438948620460772187251372371447935966379229510190932612960334849691380983864958972242140303015039375945519592297010440947932036309726468325817253165162708495479212994936763798252083634828372406404989151088617715351953911343339648372442341787226842654732856127972990109276915725678156349633654512023171205804509137352526650371422221940281882047748357908267476388773900545266774548204258824998346358889710830758726311353346964340114168536741433307567141642848703089873847853732973208707879949019720422261909258616216882334654653804769583985513758182184959098386680326257786840396703085221238716747687530212239325241148406575480637298074997090498445423277698905070276295902704098439282391447286406294100040213563589766644895161668684488318428182627778519281113717628549115040179312077603559806942754216201341056898353141584421832831405044140402247763550069907099556713641806151391403747896644458415754412105037894017421209608268405449683747670318648025233961293798328095308723559912544341844466664898839229773852325768657800705659436646054275867327022986507103111731570848139831835158092960560339611825095318846258728119918151712620572652134502889341255440113828224149676788867028064370530839138283546111896748874805156542169297078158271542201693062546381215910764109800680724190893533187315881922382357472474329368416579553162525215440491333011518805291827766399780222289728047442739232537719604643627513270761932726928565419178204758794927082976081403185154236966099982085770650972393222149521814656602088456997199712862489041598844078878516077975771464254886804498170426969272891190399594386580322060655842336269794192479318235346432714986573631933339818361123132300984973161063524153427834404779009666415955453465646189042214049349484632454638357821850586983588804637054810505400781048006301219147477884496063613583730267201794194343946988828449291447690767481421271153849011663270239449887695590421721949062363273958236345015582953243725239060939038512700515086095739612269212582699161241474567747699971171415703869750293153299318607310095476235628671340169043280290944089059197751176348553407333801224803213729377486843609773687108994777006200668117607118616869619094123278499434617969449047568031045781682667586669231995298045867060652300752173984825520869932545046768421672697568081681083699403570320436839648345661784619999425787935998452114318886049170394090599104756107472788332949451909313660922413438530109449380715875635978997792311422622600397288708467798320357528777981525590789932549127111283810088757930424785323589425964980527753981734545520215652374557988527677832548493834612292984153860078537856240300009285786832234834408391073483711861094018238816866725927414290121781117672762888386225942120272696668513024077205510436835994101750476916251775583348020914340573717155064061746252347055524102614184585103623301937013941326887694518301496202749654775740809299140704606959105906168445109460755993392942410635579224469618410956263450094338551581559819014469368371578970145462563727980525187683587201394539352279498004375445393703295005148146318794925832455774865805636261422302713774850131330892994254477128850827239950816891947715621805444331818029871680056506466807507581902947273237756671057306617540318347837824289292780686632913865226789849336835682261936739665153069828328873709924679263629504401793313522047164739650063545135991071654653876325126060130614309849899554556189885759823754723210288706108680859381193819754192498546277561355062138036603624317295832315740173775588677772993446031928968682967185928413854138530965672067705558311039634670812799524297244662773947599991765792966622308150186798833949656129089891817038303983793791183295288609287738300870920907351951381252630624804769916684915828861846947198867513515990741881722580051889497169245636026111574246339571674461765222616956535877109560912556407481091816535670507783257288320822140593700020007094788082398287951885469221009258494165398347463682533510638050649449203367432593983258402224791291720129410421602781201253375526531643996371560203246335334136992187435123557772519124695174607483251713604363691431354074767457015086154929168241718452519872278411791542510820434549718812535891489551471853996568190077517874192365965274139268872934847834166540005380024889612289023701682716371239374573603660455868560968246361341068705721845981322972601061099382499237061619530688334917115597844855149197444621016638150740954934999958450509066683587332014276030468011399276875726772095079673140302272319180253103771514940248892703448327904749415097713222424791929831854912045721604140850291364144314551820704872694176623557148880763743043810710484436876098058737497349335534280531469350525809260496194222745084231209047494259852613664413119976037121944227132526042803667982669687611905391810916792476091296448538343930243805365280039147339139370502557043861943566601771942591832973418006363819956731500113210854621754621946913541441757805812860742254104741525107946995184720046827596487211698095006870091290753506023896331064725329818050011188194571935961404905996038359943502560357720141103717926951519122116164849605345537078429166900602655055351151722023868436776210415590058436740538337515870916085709721847619048363504728417751462983166030354916967167857128475480553052326182981950280311667158962930352993744270950501640934228220570520407679096008906029671169074168233263531717860597788770056273319613596641501531361226730284390887940401117147117770503436483570907299383006360847584803077314295707802732963104000665363176310825134068723772839659563582591630176714262528438929530866937115247936051079061502764129059104190537121017850522342233185733221639954502649449145066010345058117148058520640916256331507001041468169478563516574335206014748381992325379893892186047994456992069304147860844889140581932566564431762939495954193587586660288245359749225814302150835174989095511659569160248474038412712416440490738477964913060939385164696418501586944552591025713112558491536634817164660164662512616873762930130930185843327942647399529373199729892608046327965745314407047303531637753462185053405371199158453374523965554960225040329968630272601502521366618595980267572238791442322813873964491382517057718952530244782043401884368640665039545336159828479217570973221320827513389865091537027552857682674809686527319493049883823110235732953345590405572769201931996487500928860010314580909275591784827266286361779130591840166424916718772559148092289225547912192022566364531975894192395721907280036857029682874249490106873267490419741545258345854037034039298858514142509169770858224688152751716534540340060629278571162265181421976668902519267563198412324498799474817043798344141075103464246266802674712212125001950344025299201441007355261827845600880219504125196054688793120868321359166641716001917668801939608670397860959450266466030216430074779163342524888292590843096539592243095288235243262979966653815158337747858192276578155015047326957761043066863631525486422297230634199194271546150986112080316628740631884484734329262939254149978997756254836412084450372685502042640366380698642542109960413393094218752604558450060653793352485651553363534127610531564304600283639465812853301172179502624654768345378089197763573698168938221676826693328204070706274913691928907756506633730393727881121886337197708284182770471673855985682939953702871816173809039754316272430351159545681030923418441230450706100132789747595741833032449869195120976330603234554014715874897166641732336666758819140456434759427183425604676050694906587764346281472358842108406470574576383984613787301922094352617118928109761179872829839218248657050480409284986711529907865690204343551604325471172003943225730915125986782528075329988733846203127862125589213578246783404586210514333938463893105702014765262115325312481216695920605621368568282226708364131794390711381739290851362849186147569428710360116346653186080751784560055289628778328087768369823928724628121259352008914757671840587619945377738666251563386782631275441993509093365291842047245747479364207427629043392364907287427401815013879857777147463990533605109905980672779238057276132781741215536440910359226892346180675209430524464966853447174733503071754918116621768556601665512130601925688918113803684041994661820622122883263987827100470742431258180832559444970359623342530768419968295268273852076268462907816092505911196344280857874741627489085618062811367336577732167449036753651881328471267852746699019893495089512359225329710748741565014364300392211857899193722266554327594305602766733402277993693654180176062256390393198273020395696182871239025631440850856905491555239506115571176086551915263878740140462704257904541955944408884101062847487643944452846461520196440668918167791209468796465499914828649580501897492920491341796087856826139770652288020030185815522651329308773417306517904617387282394619884826855974387351258067023469351558324694414696497101588433662917479228813927884142213104421800316234878561735595197481234077078211289356316392504420617701957531405141432291137339870685649662710533323689888993538972741881255651590801292629727935244613166594688642912741150540279111199370885568528383573235383201706943388964659472546639600710272004038671989957723929169464216382550032647077219681532559976765055639468021590027076871786642545981856855699397832294008230025714802465373808324160992801076087929584108586860815173771605238618485806647092684160163041422833483759833261045115288042523760432139621467245511262161951886551213905059019420379250322104266879432722900983606649749155131923920090611255059543067110494687408493623869985043212706653013978038116408920733402756806184263639500335555120090240668277836337461152244763797868594819321526460588792002651483675335756222695092111526765478204669220533306166386291891504711143250705798627314376093629139869818847232080478735953598360291356205851842429168549873736987341550149679926644244055314477653224565060978368238314309670592223587922466960356104199887936110768221279868889324073744972443645211378884034190158475532773347985376260186317334636395706927163788944748858501596471003841820645251954819462829096747678866172740725204747668270927606370377168927704917100052049025259123195786520660744847095384851692036340116289388228610873316771279069542144817730278202547551727701548959673793438229511584506189695479000898680999845775636915306176089944835052328208131203333744292451000669073866541797703436569884576350689930478062871204657245576574318024094421088586037965945468116641109937332122324636521449076127692712374579305401598591415038966281942636658021954644940703580113371518449581648247283148644641905684666018768475468538213095186966355799826419970032238012197728872904431871809355313139734701917612167243932275863445980274071792181933073055057700764637090493622508753305525175250741105039669433995066264958889619657833896512465091728096946460541155869383445019086692922633473120359080563932680233924425963142824828289640623474353890012554517616878668422566721339252789161706883969044927983053566223919260648071492362221001051433100917208591977477174821127144253573435876664272059924970305087924399512272355491940045392598205923318435035815124383718389723445605990967615101392825234677608004502862696628920503513406461862988413388162278928479519807353671569000213969203597390116459691406768838629700851355470484471115492742692641351039813914496600108747735499120733479442736881314363682571112446322310401161956591355566945756638868286481642205161379355101507716823162665808556187140302650043214276029146304178167660174729469523883626452686383418326485654856034384146686443390126713572464586394039116956017583686521399176845718792084311153796063047432342819540656186369731371472937811346718749015886723736195882131666002501286959806760738934549686611640092897339788867055022042040250312764006639627810353810990988615479570179744469537110524673329445191322202802583235515382726830273676956032339777555440309347916784059868446273078008656286088480253489903356121880433840004257800224143286433989526344476740558912716708555703372845486457600340355595832219847049479940432255647249276061026329366517223909862651734201183124649707118345598819406790339383162696440880016391256025610925848642042281693196741574531311692966433771843480506053889623170297317080935825482194974993427698994475564050454179461183279938047224186819902777655778022552455625794245909581970560696646795208793302651784195847297410889130417256909593499794864511364486446665372484964320694823600343502902771726596221795084777289190273289254385139663423751987155560005114446670894485872870010658945991280108763971566247934088888470898660913708338551636654810255955870153025938591945737730906017677520746171750729927004324721063386631427684929257941011012058465960199142896728276656312247151980110974301380427419293893209260923694124052582747193383462605422121248646247527178985622124206405335220709469070887679777085739951650046106097691674161992066023843202749176108429298588151387410715120121218411487186009881343502218102319382254585867964434985075173608887619789280849626384790409125758127874381832253827987250611842287430323394714893755864571791802583893095735309554974680302809090350740987709982902560665553270029876894831209669014275950804335616047907598434253423501852247779636542884315961044895734643233888903815384623339625058390273485749484728882694273139073592858840518124928570361442044302334719659417425996937054354295424740261067598558438179820907661170445672689057812112408431008200248058841143313876729799007715550183318265308129674111426209210588407737594417864236120282765667335748353117659216987530923002105115761690548823053621931951106175760174268481794882919327908883668902864717330265114167942201806609817362110881296620527820868247748999815803538103155231878769083695981328473383047792513565396101562676657334185715989247629813522502009018984242540422399594271243537428249179192270100929718279309391847299305064766629702773298216541238721706628431999632550239693393658397811107054795940404198266367520718598256720456500028308990108056217003614055921053969862664425338901935397528354948175430645990585042094980318280877346855278668604548907766612272844077772145120818619799815302504132485749565395730043088766224146370738482647192802606039958356836613332044286954390830102250383542775348996135494568345673777085577096357845902231411122522700238098040240354458908312127967512105318795851983513370272925454941042985760734294544607780288870385491853477910544820009855169256258416768800647400590679200929316384945198545240616877744055122907768486152165975367658730794928724805115476627154108992456588633355696176614116016552751230143349480424930392539715351238926868690241931297888352698556975178056847228945355106457351383205120596753290558633433910031225007467071783769084687778265609934839601692579826327701110633202122400737327546611582287001518398854435346349889590792876257834370419277558425046863040477081959182245203833902006295816410691180352982973783015006243049872875963137977830611035812588502921950552652588221409305309024483482881551328012239170616909427378221402927990804888513142563999391719656351137511950545342414256565905355948296923069692866244778838213099310498697340990298189094847221548207095253538961592753357241743998542525804687277103081164985918243984912957967945396355476439910482500188766808943103064542554667944342764294179632069349469526189482369976116430105736266539330128537957256368269444708023322218765566217630877471618265859137394688418838375578748397916903362704850453849061975572415784701965710409425806720738153264986250557686064233524210986582803471691819108969874517898224879717581080545152718350534703175844669510164219456636651944098694541993416795653614598060938922798656982608986407193207441403276204800214009682555982366314109234754293733619633241349467380600000205242338938662389984268592139146372073895204833597195373327277959045534606155272006852122351181982014374716736991737245558048170746728799421404875502685177604442219190366221271245714425313062202408927153876565917847565215095538695408595306641302103480902483109308118312495950951835573726406072864706601087454737419669847122157691700976263229933421162786969900400693922395482730268277694260845444546734961379643793984529431624178342818445050277039052202448937956383763289052972237350021575420608216727998620815368655480822383486199604075177512247501700558693575344138869947323403576843572691222193559614668616244821095990210458039551418592282891090352730850479841461301851297467083169722949079673256625408767994784629057367265075018345863253543764917378213492608051310646872335240985970656232484722559230637184263727709023176878685238860325759361393876510665359293217033999948843094952734181289868948861595754138860874963889078115017485427506821537692882289594389101522199540955347880570455435640103466096994310106206114125103997848010764403371853828703140872013273198450312325014771202194963776732487664037008157021443952603226279884256937583647880690379966451096833132005947959970309975562848969283349298676154540966408543507648025664464619415955522213516817092741517791256307516014226219453993863171498136051305079527874987156188020008524515325503431421384825269035480227130088240489426683653958148619281996264688832153818737361017075786897737687972345201227956721730464666187121435002091836444089354832588066875912126663941267314657146582784558413800612109734194236917369065959568781336433690512030313842681754519409228760440736439008257773852871136250442725707676293483625554643335934205812456737463754763225042454287975215471523117469023640287973133317675888339671066667806607126961831374360955696051540404998742454962698383384370982731597267388139028421665554983546904330056078951784166764124782102069618364436231963899737171924135511524377922386324427517305060429303981581081917129967034502939272121219666653860727056420683084525058869986936235860683620668520123518350263184130209240737946962076149953738812840467581024993332857627116990186092415583035642498676449816253489956338214849766589281923433592337025695790074033947973751020559130036325764214875471397623062714545960311375441758568477127368051307590991888012058416972288086323395690360211633868457285350851597731271064202322597949758082167583571468400362878739455077755159480312322645723892743962791395388228503543699721836058819447495133959397610730269908925204893462638505118156858296704954370014700201315180677499693315300588403073292670064513677277746801642212611670321131694766991012678460638034608557351671427091513056444745480071425274745540747479059202637060234857782760888713292620546727550942104486023309037822197037704802058542027041624191370924327445910044311971310252396856448564796599553787199554784114362982861342155982177712358518982198207966486338706490427692120879435482728934405856631757743679004408971256525377778830682763038208219264650479165333935530209774595436184401172582767784152147599152385635036897814097135555066655199538852144291641473996548994388423924097306694517100789447962472990582620094008655180984720399166167621746811110605561351756943032090492341588143576566648115226338650986068374894967374045312264919465786153460607481598460603347540809270648715079047283483624586624167818608842613301655290389185042003570254460370219336632328037622465625415137967020276666282549890874892074877007314120022287145719777579258156994546012019972593625059533671773015774282591911109112431882058486890753080219852907459998414884933499758095081349838470256342445053976931169267102939888796774708137438945459390228379089982677767151458061295800776870041754798587655247823246211496552880398066643767480819331072275638240704489346649031661005110540339374641030787506182034760781426245499491991582077065634844630522314274796588126862575476612481856932417031027138682315454821952666899552861193683506694277934342279862273129660318667994324038514518335902329567667929459777952062991773376007050224887782791809823441130670035453273740544767962970565486555252280845680863811897014650151894889520105182133491847636670720535763833229519677148124743414915505842245584825603279426647621830339967737188004767020777676726576205974560117135956335250030718344919757663571133012548251760553766885868367062119245652484156696952560066787072394071442858071974246918012313943947389238226782652947333282735883289562880289044227161103802158808473733411269183239700023994370152821695581996568502484332211456734407132565808137034286400296399189061062101254493094784442344764960393299733631165307582537676215173109328062801528961661716822814217505689267578399555479363360724226983481746190723947334371375840482995440036702577799985403845171735977089228718680157803549993216054226819421481762704083729863856799151229981465227434802558856774272911791599094295982929673737408560756896181621869035342885681454466162085978815837714368008106422443748470165370124443084310596956597009801562561633950172146861909964178973869290661872546584673211967207325822219744872698386473411870289675727519159801151232998423180117612085718098813622646689079025288942812517830436829341037098853372701436683223654608539376314146607678154624486882303414639300767112817859785010428353449752022394064425373239723747040112364131941228725596813393483380956594181984160312375074092166986619757948995373467422760072043374551596922904536119113860651426118982343288745899318524847791121743583126203257984798463664457569979134392999266491122024348051501483558754498374695234034339056576749100207183839997211266099676466785791832262853353008847558723662918197989398604981751067470735449173375038593592573522083369858451480830584032492663324801614685970414351901032945303403431809461753603630645336352748940754854693929027401979429516679930998549158693090514610156574899557749286602770787857205456783876637572886026081826607246937446778540652330861551013981099321380600756284265205034705374222165512899381755382597198214710455171510475685139427483302560500127869674932504186654688189367744889878368875626233411886292002939939961260837834538457550580722570847738770451271430174460295176221724009808410352919078393571204739102461250762917780045161252655428388235982270412936965068970540235653314054822834105616301952998735606910891010889979864031561439681111823620414717891113376409319434702519092006052347496948727665478529446427273209511424511898990031391149839001692190293790209507093491897773861125070208946650346681298492127019528545292720426639052188702328420124687725352550358037012795081502448983944062485434589241427372270513146798673488827458403955669483867302642570545192348590362506266790234210640010941405413266934597800511093878082652361062176709013203664090502062671900388850853207902145646135450914109977938277776145631995278926201418359500840343727600668621173717366291303691696129791580111019932599696746387919417118203555908014386936623561604661227710085658145208241521430631916305520519704361839073016187272065606457272500635719653514576546025206491911810340733790990825326818587031517105263052601627709047281368851382200412788653438317646532045165309768005617508293303146586857897355376406436606371230096591841036862112989102467212903448340388928673310047625414117006540713428416595768006325653820398369057593172610915794145593566492332409483412681191706332175524130491715190662366980285473670081674346709767354677996248093513173007008157152145181004989125714446925721088457604019074641764686405083714686788289105996105912375088364191713012526810926909665397282790244481557516248129017161456773538339004373982512483644942000986659653725434016080388578921482148187622176126729866284335095270009947808167225523895867544223681747801078736420402724938983009561605305174176588826184361976782084508940398936232006611385123316750741834387538443437748239491311374139892302125816220311803254410778668654936453902669533751227979783865182525945531524837387619665043037870287764763784034623431021433275963947122250254615807261317777964639896675999124149114579414097792671563587219246204638217314676653505130794722405029577811671145985630245240074535087004795752203338337194859199551728863238417693243288709103610966979006695098053278925974839363590652417009272987714016619791819501424291995672580206413382106334739610199109153875861968822896388111355149847835592335215446988842898943573406767353490678823667838731524048444137910429258798900410156564728754554276828177989047360093054204759601354092042589706195411874816445060914867035019758366605991615165917186072393183768598222793961004141413396370222428385964583161225141539097617331507679830713554453245846250095668498542075537606510679698734204731637986898286564503420641496053614156666102516810458972321332957087116863737941128958899640246213272008756579119385257050638153313132476290337599006150638258040372215768088816412665789314880241959607510056808320154345005112521859267158779556488246119441875079723515852715908439786837571906266996699424447940235992364984060682948189511526037451270084729971268644466186157985736123448697233855654614509614050420581329165500915819984460962739861362621607771974296221687543862657741251491180605456176065374314425588234498385650724422614613052065695619917809516890636576015035398517704764378537106931951580015282636181189721428253417659811114819002051063751326722307129934383751677967975086977675821575385664587252803239122238924662252048734934873101797843872578283479280358070912226138096487806170182682480792136165904531358529576728547598685404573780776544155778255226784950024878301399566618785548672772391548136584531950942075233526835636377316383317634254894601887089438037606022406052026120276121770324749456533811618582784116303322779539538411424541190683117048967768942863642897563860493073255988755738385930783292711736858868160765840995245440178035714375787141904774045519774741574178714536720572546569140662496489989408664245372752227699984712158556728197715237667542721477425201702341694418552085900231575758676058786075076663535306679163864815701390704203142949378244608895388461081555379957931496556993021576684669215100862463593619361723462327723019272653321382001765463590799861631621941808548508748695970453395122293845747949744715863820494345677286028583692395922417811985111643527908346151723332054144227153092823331372606327648251664843267012855133690185498485210548139065075337073408491731044882201886419119321262347022773864824380332137267122696532585632376296423423567645472631676835949320907333601520168893051566890175911009743250704825016670007268759050648402153483742786344013604252028612776032639461195388289638222332986631403167006081371164169929493168709945486575265704689418935613472699689249342937630037727209395226791237091906214822338878847135266961389538162694029651371963552625294072090115013780819201585878191913984534760872065901798937793600703916831842305378062646662120948620732638655270464747979663906076437319957224868431219084647335883973618184001635229191612308967580438074055049117972098550505044218252907882445757113025917645393550829277773903234292367397083223980005757777286334631170678977787987569419206011172111114939989498614339704319191073146688010613668739356707640232416019063559300789286559952711097795788661534516136147982080671609733689229169192779033285027432193792132112934282880140800916318602768689213439492627718063355214161437404562295211061809155075558395214982279793299205098894974197424807013417685562459449356583923857323561759847644550644135608680025228490241413759196067606448209710652783066883411947880005023717827055759419681418466541558985765228720209769653902487772291155302632907174516523022375648746358592583573459489393628446514673493871688022561229230706614751101301299252956716089805633581641914989169194505957973502757418183361036853328194576149681396422755471178817813231238465208767692476723622136567380976748753426788467697436936322030520555346852105854414557756840869255449291280364970707064228234910128905113117618288821591095639220409606996423953298790180284455919113934817005022453306080455149301107200864089244499279402721747601068279341955000184870667872684637437484232281642718031576671920765760273649203924545596709256932765213248250384753605475858385340877589839930161531344473303651402325850583504771138767812267446535501667673952583577770619414039433859474307076889135970385681855316636494728157337831486307959334993980238985812536331375956142032249812866950978118181253035147579337312900234459347516579245890640437303131128068290362246878646239169422731389644222402756929463415359065859518922491182356686389006587027833513400129490425725520221227358568285291085347001867910174260239108053925954070699931952720500940498545153435731889078965444478616273395696009762453910122815545969907898988476688652123536519865534592630446122854707207389885475578104050202216881096629843864642740152366544608577076948771130371448792939006103039953276289109491959810555019852093866446054981154182791315507925237840902670077155462944046027811143732097665228111222471807994458561868401153070245601211919345910675205545354519783319459720530057383477944891052350718540956751492599666195257589570317004041886397658927011386159971128910223776884865447618878549464660106189044440894645075572451212884329554782441617318075965789626406255465760633722046099122127293655971477055490347130314383753937988084667860052510860699469528161242076115867136686873545722107542896178442731449115047928817632108095359191215775317245139792351242588870891679746390430047874992409055439666048039401580355019004599786055881940045987309744461177099529941460430108007658932818910664423094157901979031238016914729630600433575005923858988020862508757540681536579819459417144011895537791281714627467144574240008761495738521213302137250269339162670845360115959898979160727856494737092010816040878689511176491796305735572515610966053068807550931405736945320401871985008883889860325836262615057360644243362875556462430069363496584075106928603597225560455584851078952690982207198551341736628151544304162510717643904735930168546887217171653645988823585335920952219638627563427885675711602965628144832389130030010542621002703693128502975100884872289956135175750237083224717399393323992189830719115721329244158925142296732034693381871678905121203170788565994981864897769297420253703269486469344923908761150002857253181502505676985001712229846564672793637344349836785969026166657546078880271137185106140854860601977712641768924588140673157986796910264209559026342494049318262914801232418805646267536566099081535252822064677935522600544977616189240015987064751745051179039281775327358384245565109750421229057429410583889824105834748477172257949333012280788576249390148189167621097039904183144986996703557093716280296533726125471001887919070454868964498506179011877572620903441145378252675126151020632839334670199324354322671060335438481901904953820677207956119810664008969598337608991128365083733323805199508072131283193570211959650665644340980407843224231842335654889118222142882761014661678715811982654911098253559466580591936342293335841388959894803970456590586314807340190534804783964274393033847903764046917687569158405115249017244914039914104203823103619352058235849897660347458315923577320502041271198900789951842953480768090129088907610376720585352620403880423153771124594876952987433945246820909718278965689037255339210373736301945859754437133838246690040079986077989073252733049497078815509086283886997758014546440174779067626443145072280038095953484682188182194927413967278641960855196651114018892589058797184293315669687538296170049951143695044744763955368014584559743712112163988372001038564822634631948000384449115833650567842294446857746085316571664678547932297004545617989584845334950252500645909358224735851663918209970125049958840896464300902057304038471724199175899794502844752297895399309275751766424709484549867246844176728604016857943181627197985170830713158047941533967597646861306271880023441532405560032484046885421268566776354676460110457907968012834774503901928391508163266771848450730588719043148007695228519043097025249879446565446048226272272742558987273208109759600350536588815126405006563729996886560963042829161553850904761612768861906797738531258199885304632636419505052263819743877597519524320002246703842940290397843666595876037401861939068297054678134605068090453181244374401745077970765327971959295389997135748478525850781414934951763712842950989756128317097862209452210657530486774111386795615424897324027171466127715401578901928425600652938188403786036699859458417568862097529369428858524904636130223053420229250344768897073571651660441325378904202639501992765664691954304200384554858021820281403695963632654092221710782988647001081137142661268358814522723507205401526207023008849906104941654715701179870938056854843734096824881105565810509640458226518486668338408507352494149837244976960957390334082510760412693317788299510594440702165729931512315918839474135071067608060484876360025683611595315581842154943644923691693228995755644204100034389492377950952674440101388979578931132088603232761121292459133761046839895358565838743983438002234984650817414699371606217380403614486655567498537453050647858627480325754653836842171091570895093784602621089490916676301461298436974945551878157157292765559801632997477193505170466820042074527956969394887693378253231563722802062573908638514010859236120106932287242846984895888274789071827368678303116496050362464290684402810207561198518657057139919665363860450010090071170054162586119101093767473436937540600581703367933216917400309480628905152008537270247893897096047029667346205572695851917434722016002522672536027328440961417433274911471976221440935366439626635323318048193305950443748189048226795266976008341930510296602437999636604373280406839831663174189788957276018690335535095773222958484463925261888745567802553094241722853806083721150587293841723015108795822393037066601284030042579451067326037255731624047713444237874517324964188746548617535757059860021907184560561352194643056372221893841468486663748412385280834624618501345438016447397976025015587690058290415051973203759022144840521764693467774691182266005635194840896879399742449828609238648898898176364183681731731897426782410442096450036101123144843534344895640108566971901865757536737906943847340707549942006140569736540965389564336259419095897696336736069018980534664377349899418827276926126067443009272172530292408241467783659257889010573212006409781121855510015479579072525972836166167477097970091590519342502845175038173825953258131788605441132111069222148641125545965882811000700500185684778983581475155186605401323435277649191802841825856585226633454881026778963246280604108999708125012956426529824558436479609701486641552183070230284438116572816607044671479983788099099528073715250384278994617474355716374507725024827705614775970602643976191561367135715829954704936398007386002428635928141923215167919467527572241626220583358875794554914311746540248010932124385867810416830765138847460008600333856263891281762526706434867149140553520519752981617177391376178268235772731895383198225336800543895502736340389352523314209539225876504255779952470970859696400096737523577744691890782212709433482261277720112824302054327450143730563068016129829752424329530062364539952193719250227815059211387429143577196949189472615763176147161339356333736184473759946716883996735309846317699768938539348243815927211453549636613951689947121806377425773399223448399125262557285861335700996192730042458988962381469965013271987188303193311576277322013784760404653067993268038060835423888784113280606007452158059369778700912884184962129849754538122127772029066453190429857894089877869333025514354945025248697297321321462671569627475139075661706711458376482726934743664245415841767192036277674842483243605164984361954507132856291423411098994027910945358362674154386181006043757272514773942992972977211140481936119622137621223658593043395756790088917166223983962355571708779846851458907597228193426263739663090973122494217020852806838175889811683990060753875381313243278344461404780806140030789958994923435989091561103396872103995205211990977854957040994298403832300576255112575762574336718599728469651595361479207712221374825894213792376293099978960413552294663923659741707232039762278987028369239176245941489107638659723105179652072779757633942152168346084612565597385058504441581579076948642502369953944229144897264672910780535404616549525080000204399383209299302672814601986829608184816160085874728495659659213624992314931421988071550179539390437138370587518392218846903072171423497839719774899545109261833023128436178916989524471395029408274082581097454485541497760724295124502687119240997835161883855835741803545840137269709149460957751426820268031219287900966514960066709626438619833652253119767590273958761387862364929127678353405556952486144685230662044779528149284600180744390586325796750927387084308139380652969635229458006855206779003905311474462462127565744539559471108576865156888698488080712604705390024025915231271289588209076482862156398938056934583690978857199753791224455756430025446035280438643391910281942448565049241961209605401161128097850096123133150240250951604782455955308810607161969623508016662913720438306531937057793784930762124921121124939130252636408533667955022747343291830134613699888729879340923624898154467550812261702961661764991633429365137823244985513297724455309691313721099584314173961105752696812649036894137682062029771656430939039749776929661443900315501943845802692690352747550072910703088456596955680935188018610260632146630187994471181170166953204197999652780276409356536493955285049706209704079628029758839669612896739185699169535986797362756729332869243161717112147986184428822625169652972328234669442121811672855722705883474156256162364878392864750999385988668421185213032290793116587852370165521587862645532676345676946293659009325392408084217593391514514693246323973298776617064829201722629468717920560245680572421391503877011620807566107037523949606483436540420656071386628542714458014875409524653913948594257440732397720359044000917057114738995229648737446071013437636269187737027443909996151184311214344729003365339188497566226734183710107049780057955852179399285432124550431253052020941168804318793742667079966858958327452623389028232944277076269804344652606819244014279788870280516645757910789287214675413422508739157421553885031870538625125132685167946490807441346863573759114868849068606196457934925975762721389032617519409048163328022487599355967349379336513369470631634709735154278179813630160692456197469671568160107077505747599752685807738148832785254114299637313171750970149835256203339278045479792959128801370412571059663276460047236300925978694791669034655161031961900554275834226188122406744659640644825585300732893620740166193574240658303806095865350375158212373304576118085779162950854122338227386625535349923606500400597386182487819013241254198710839740041416355600225236049313150933644167814009199317961224942177370965883473918590636765761401037833620481583787656121814117958654554611659738724837206933535708641283610038270530760804979354087081879495532647043303643199584130091151957700969778680424575391289230956560077348859914246964001531384811659921482210299989375582341136256449517124212089549807635061465238740997976181532434803498758272519442171824098394794765825277412126571019674420220926921238017482482734621157711048618490076514302917529235030715352353809949136111361444109058040406078872749192527536964486051711369683711697238241880384675470247072014718406232152116740453258262305025585888651001041139802921134884926937165820598945412076397936605534474284943246456906197787338759878231463172799045409709713291644690050403090384830088967246013219493553093594837242659392952276905986462855522701209615691560204010516338076726857193500951155935773374742134709481121753151292243966192705330988635836653894227781333437686106920828982188902432050918079948551303259632832138417316659756788079020496779504164620813766801723297897234498925646858794681852692938963349867244229625144470481137700283776579092240791542549419278727002788048365341369351283223669730434391359702354853529163217357603628417193195463064459488397308928587771052365028050392211214702429253144579611776711408250065889906146488671887488846540259221022107162419697313567497676344222346401043896710543230769967928417079457900423339458014783290270443374913436004953304830374673048276876800022464859020298341575178891141174828009364033104688988207688272728184006577581367736537663977084535325960230932919151615637751564973671733836763318366781628970368276847344972040818705556376207384597373387365920397918797208588186831627187068591336846724919869088587273319907915790505809091214486180673782329697828275925101157692967503836902303251258534462238789375164921063406927224400791971003302252435659671698162578395045915029765232695293797730853404092022506695769913914727144085928631532701355311286519333573465049571914756370468961485050263117144765387237208450580541538151857799261830119862879094859243305254333172875761160319358097459058953604608115094647365690136700185364468250499028952016695732775555815778081658047255994492965488183150991217284886435671612194802542076810154144734011301912002466697413824285448720017440298729934081135522654074460810068248546190672774576697942408277072459884539244204977972494393756372067724144592461140756689833939083220105290247323744756818769602987635617127054309494913445064171018250012528068102545346142977808458541022116450786425546984894708060560319943463142579873435999518389833968481896681015017804988984343439809604929074810383084760799721336857065061957190295096201848179452833514366358749380707818898179863194656378423057757841124065624960530737574876336994036488902388607891580267285335022528434289626749453602095789229395415177387354064961364931670231100428015050719316386434378647418070433770497347845062481732417972154335137073685146612446571216848775486116363948324323639246763076082769455352656549054651082051533736320740724592182978916992269558697730231742154776879659234222644454064912427403795972025902694158640958078161045222822617504818441769471826250076954339081482048521508821484293087558139151634909836315448048938601028937166790742562368950686779345540173833443859903837421477883037146234451745530294566961764722182475804427540124222019841469461276793371472496737871307972645343762059276018453129148565294489747689910164398357082125400257183684137212862453096352603119128148901689245979144466366973113972283136646700490604379301300347942442686108537830090361089473735836870982987897427490024049548993781767609196750966334818260687816870229148204306436412948880949602059615021503944034678707739361349291588344219100039277706594951192529495669127720252549336874125090959646928454921430092607494033465098983639189164694105172003203468269693894987999856475121583997805989793838123866802201790619618666566389387261063620134012518495070062675120698925478534643346763657648838480706578266321479273088331719458599600896209703069261305283165603394382495343372382693751066030496040026775215244180368543488336084684345215668034623563618834127119696706998136063148689528229725666164756542242492666966255124607702616630652689910977132000536092452136979769359666644875513626084605647731961482796438583986541533001884014453640085360245119651096817693242143615059383393732128419252873887075924171056732616795534015219355201066704644269212152009262324586491215011690226481634617715877242581344507414387173074418752020126661844576145427476281903129902713442400506579250129551804538963129845400992844648419932255992779903122566093402989867054538739451828970935416738390193886539356307877934638024066594862609191295881608959001659806139960880498725009867189080922830327566926818327934763928856304227995855646569123358822548338755515420078030054977687119414929478073100066198369028127443661872632672093685665208957084459571030660548543848708208332159178431532359490189394014991875297195851134635704575522764140350967396035373841693619740954979133800449677334554761637407731755855550104250965069527746961836344585371108640504350849747999270327598810790797092929422652437635917116185216528716066466622560613941505714781436395796281716781812402353778159760350778517164397965823568693237835017300867808424463254678016762318192254339150534107919361368901545587457058498287548197176872376800356709903841730430051892676995029598525451955634253939658938690938067690494007585497541846996940270118138101525726384506353528159623261452723583285267188249388146300126549779484009297952472030653246439202883126464738906218416435750642208469565857762356107705237128020521193269368732741364979132562137011366110831570053523529712635899859387613349731899388373979931219457566212573959812389112639565573919833228345913390908186830472107923450898501492650063749133478990467703406401425781064092838734996220193716433498785687386875812490851096904598001853211400810874898886499290533345956165776988318169547355533800906284210120905671583348002506309790869863431556259513370236823656812036887279548890278087821948039229542411852884615148372449874304141460120118238147579107219649512276395452960589694862744188780236566702071344517327422746188976229229690044442758338750090234659047145899574236341645528530590744186616279728947593261542157572798873188697008208804869999009600005962626056194396911541567184079071491485613208055483756798063367781555901227165652084164680502815748759804009478325865570182517250946741665333409780117550011378884670382422348284204249362283492023795493737903969450883825186517942082093199460199555555036128658779297881400642713232060550795977445876584259475217163384807264044971876078308313244500666437949535517969434559200163538959441358125517410501425988251403994364103789671935775226626928011269998327868148046473203619220328100841884413535876160990905505984216366021753338304733984997604658968582899729423096078615477079894385547535203830575944471604926843941580377345101072116923178324198679407122576418362211685265352630613928778381784087846925858003963559738620695766960376939117206486748882777132723440084784924630576400883226134951982245405336088168146387154622234719502626634100428365217893250991626015331000359435345508990682495011950780092573885072093782428769859170838824084676305509130740355535127966382218714325295969861940296491184285314308437108619855939268685138508161157312917403237009909145174390102642490236932323635371241929647973324305875042096310996229284263269034019631181054684989711070257035727007689490886378055096714401858717367841135287143882808200042503382216958662665054260617974672159745671753759981268886798416197236906134032396837960687601035144111098865316560236977021956738668362325828477998198060805072347036182757707186944113662516563053782669369193966646093870549335453121734952000025000647950100398605725248601006093401304137842593776905872565304084891523282085722352499268982995669372843987835792416650181136904305979407947717868158278409032534517571739958474586727372338337699199118951634087022687566680378815068611154680459460457983064910808446269673225023548080162861087242265364387849261676379646372262596887360272214084553216179135597388632962667477243754987293501551915499290499381059072012371910335852129928787888458438628109127431624876442773534010856131455458643314495713748999984351390866871847350718621601701655662737126530635484058718278613243996691348778518737788665281373448935895790550574546933128488300860619783720075048365347294936931502955211631468814182330385625491987716882987135886483722879923707044994231496771716790434233066918167590575802844770483787696625250035636563008020545085823783779267764944476436777089042382583071064490190019843751090471313217976489058430012489666691753823275908086708661581025084616082703153490248244199283484564320550959531819289738121127539646644272126722517556271460704441814531018603116398699182664630874456532878971585558152070563820284738248222704638031155326191636442144402017586306297621426678748230429087506166469684370853570746163469664167624753590579095292366601802620424221569414363154592832882461551695838473181956414538319938114556284172780934230309287879385717811482711924915020254876205906766846547566345604721056133833727479144515832173429817335309241853146681268887928890750260840948591703716316865596394034750167515930455818750602529110420160653751060858878110059748352887805101823771501393571133613160904511036841815270580903132621264696200309320243687179712585969963736793591471299214044900292563424987984252443777356869432346346482402622674269302582547866865496713276751409290019747240645589524757754985977242652833858110855955144119016426829730668652175552974112140421027035788964540826052507808076358055233693095513716597031518690683422158017100189506251816069086922688119416321456081957666256851154359618635530790925863621271577522162764593131466876454457981253302204300418620627516031817875516086612642151935435711845460023658527229302686746965590083115626697345144248195753799575171797053059009617218256439017173865896501410029561151571689783207933852346993518257166602222054188125618656276652338914453188815361803776114068449426942754054813762327336673054956007845098184624019489934354719259164731622107342177325499052135858684406911574085915336929948288518509421831020889733736390144454078676671056007354739396217525269002190319455947133780354531858820819584742875701193481087668849792681915114448166816454696657526097372048665531437337740164087219675544952695272483631139024153658198834818477464283445625338937988250759578544400534721927562363570793133000953856510077820932616674678166616914595506217862527475854295092494003346262672971348240109747766634477342717612306888965273390482685272778206991872043049850081871312455765548426337223776430970606730754041193008545350478107901433732202538636086331377640736236256293091542786942276354293100061558234293639850436349178488738378913292824158363082715888523471053731334982695529692129995515726735192125252621712712358241354248394323532061437781637497946966802076649462502570845139272826403397013998148301451014912982240295407991281625208170044511848562000879235617667522472763226841455979909791012503872220735901802660230029039996924590337097977047172507655951873639622189874866019597064371051074814687660792978122112204703479400116617930599656819363389187315637460514149258365792577342717336969623239981053567248496081071675945246055781780540520795765043959024305750287932388569876553678299488943208126314803522345998701033589000214429775924606627340218055342816549570147562065921137956758380635138348032528434272561995588459418117914109799716869978967480705348908943414913280975398038038692469897108398978458640483344100714081043142121867018315933157313577107720527460164879924552506680468179154954021606963794534177448621125730481029400503500842767061851201373585655062310378657714975288998717425915303070054116909651339504050818292981997527580683179351562642509790023673455958917519233642041728999910524413105096190945514931714228882541089579039437908537889487751462038913803775202831951494850471647206021105312215862804899800037301736927547594046637599960698557024125155641297498715663665207962457524297479179443054013570408875510565648956241293324478492078014902012975324940831061210991647693660590169204236305350234901588474132585200075639036450929126942291628360296737469942422679728102450650369889422304732582988886594660160487578212698849864402247000961051758997925717610202577318684475789911302743296398224399458034699115263165315536561406550393943822018417256239412943672868900159119058720278277990162498089049306210385694598158104840264941023198131383759358827595651720515290015464715392257260158684608546308770461810066523518070428702666156820942269244423306003884709420601490261115403184014870559639018051353080718504140015879864380284366202961215823622839989789332219408575592009101990711005240638842636208924681576010190798973966442404345177657950211024721251358587125939641693794279858920681593239074166390166548834909149344518911123768915138790870805607327264391634772107527069811315489620961286776991097930681749486509766821619298968805864757607548287567735795078131066971658391603005640427255656557341073872203697340721111179956686341715367886915489179480219964502167847846536922165933287188577887705436840580965519470405300290721346040251071238607107329684298046402742503691101624180987420932686024528422859787783820763724650999350126027895111008077672347228435963597635032619401376139758409418007190913566009166796360706772018892780992581515950580318392131187937913894596834498052335549686427582055691171010184323651936246718821743044371085636401949976223301744026831475325396400354374962696971929941452817199447899817459435608130792816837358625557617908653967510570587822750746329137911713388395794313751642639052819547746544088347915006610098281532856475257700823719245253308318496515946921874111548004715221863785051195657347455800789336310931968311716486470521853215037509542777119743235544859548302979606470581271392453881107955342736661948296260775379851866964229925664747736708429806724173768173737386234876139681830758179570931071638309375520765052975122951574492128770282142311076430388692488694907125128265447134280508552757925170298155520834882757906699258922764255962842988922129585437279974280691450121934746985722716424472584808274547941992874002296938530832207222499365686927727090012833330516869874717276761566463725261218905386249846042066029823431688773367243127776783088683958989213750301134341630588054515207783918327137637301891755562671026097436469420392568543670557312579812898387208585255445415324120050458011610143637280062184540379910425508128222818273075220959719448520436723342008716736586440902915374595323262473045484702539390508588648945652135107048935114548393801062756992685434346998577240002654373229838586461057457932868276166791737133423017121029608190999796649202122299336605937548856277171466779007485013890204109094612602208852258155884660861965521239781469989764439527398650664326445641691027310311546820926837310910500762449613059131715090279713386497908770041958927206615106359727866327281009055802394526082074903776722372567925711310466684019862787400384665927233847744268860145150382250885754826791573609348220564786581380715863394648480109723597533879176137381028176416817964799525725150152899714467700384867240817288814035392029833545109722662725656024530018539322804017994840641540421441988701230864269455427329600485672719679010966741195869357207928274362526112755412577171871802935595313149248145860469548732573182587298657130687576504652168382008456842328750224677282395378618196703954760896324086131738306357136395461118593337679470907907014833664346408348248300404790933094140334661711834736188863148613434669631072525743358020271028251425041672978653266596002567671364197837807741873596197874706725451703721768337134593180788805163681281582412709918242316207980221146761959948621456132621065725402647463793608894897838410859468577636603627088799474185208847011762367832566333399463234042359590274057072932640039807892624004761013191020303358706282363079114055389212754846962501772421462331730214598678519911135314573946486044840557590820656476088459904294781369637340916918295239505788106400854793164852110966636992198817514710789432398232619891980921832870240174599138057001936651728969315437645792476974653469676192292755814619757664727166666356187422290520727109975891682681476119895748270613377162696493222007872210922632656362894782381019203196330169747827517668737435801117390045317549490635742325047523754596842516549064898871695684958113687691542432964285310598759466709116639091660993547213203281489615867204263538301443305708899233237252122628065061888162165555550575473188181480649485686514859809653727703628165667905725481710715228775227864898912147459623706283091675552218005681942774259626208273360139867173554428913732775656914350061779490379119339101603047484053808235731860598208203898840915601529292465248237380112735344547094071377114220588706778144377137770845260071576030365242457123648641061807557641781420643346660969257136902684717194425378656080351202779327585826474649621964967657199998686576265459631653080401719033994289115545368273063064777352181176176532559492890977579325213884945379073447845237700381722026334315817410850751005278224127064903833732372660127610119821734459560098067427830627457911658738685432447552021538047760466111192046438922107964386636058688003463354420720384701581253110706609160918378177423509402079963902975124519514439959689118244313415719442103189539138237835244029043992294167191476821613156768689567850289923096498953731969415717909203297907169131103393353871436350174371512466154272840629812137896761743370208396677083430801618033641550894719992664755880840486676350564596018557267419908981312413465124323333850546949152026150731888060746290370115879710930622384336994721699273342269064599146511910935436311408637082471929162405679200497689657539855060217719855370097903406779527500072719074996978271807899852355813712242089518950539679834991145658296557967656726519477967653477700103084881742129310910864213613324908370227265523954763304129002966145903463670469185494967652193255191471704499992936515590744288839079725996776633467671899833860068146765748516243702577418139927098378678606009393690226486077000882281736445319962929435617094960642896072509906391600577226067564013583838206464239389987382962824629397836429134952137432050226190778526349500098751793038251669673010889625999620235780807255945259547726752349011823471167177579461783716159605565664337460167091792780536231868152412910657127847029147131241071196009884983165102842706660504019894667252655518149885168572475978826553963582870201597484341670056631018950166511736858822704263397203172110682189101461778378738011093765579321581391006258889860248276856769609719683257772158653560582852942879313740582346903965762104212027742178773637576896414903268648662030503642031901674486944873858741201219221605495124710505199922271536895364430340007889439620571074486574211332989642115479300044188227584499111049565062611405958659692134294694976891090852705050642399932414370582700209287925755647650741446317292656011188183146289839469429928977658307699396187151831247805757929108962002727924954732497566825987433659187109499853486036653924302972979906295661307888372883204252741223323601716820575012685825755773514707711164886419959210319500575469964451262806357984948568320140966580131605936897098213949512433405047253548400807950228475078338765638659732379668040585413106811009123840046229140982337158079727059837626303203183720042418839015269256848597301573819507769580272169161645664979547835184176220187048958526727812255111709518927058736549252474397791943187529542320680153423678152766486346325982079122416890544772110936658859536884688073678346673490623546441548047070796026077471289673161174670050439921049625724999533652589322741978597557117521544927719046796274561580063624200850916045083164075467795775979600780062553329005310529476480174338196654014335983455508608918005322996793431660777163106175599125139610212819811185082540130059418588377772861001924749615719653817396554682969254210264272303061102394708813256507384923471398583676967622450870295679331766858956371901729181641509924836082402124757805917633224719124680667266418183178420887425639330663562295739164387383720631433746973146155191979315060640090402915150571619524246971496358890581457313174668079957545834404915262463533501791599997832922700433201964276685880506986977346633107346270379724311284084282674490617808356376984587740849798638021040537652580346381766816660087662047614288961794735577217307766276543232950485718600299998119397071643414388135510790622008702140227491899746922151382521373193804260613679489042374837320742387528606163406268140897140469307047291499823224123280114280320420312447649656378602234320514422004510939408675939002130626196771266750440565866055183453518380956370721933752874091702819567743176764769529600450376668257493645440123565082733268749831392056107154845300455000361154826125186216612948309975973195748644200223762673191777895923699074767695151384112498825416667420515318691281385441509566858057837718995578915036125214425141747194411289569166913317959911154877143391219115701440668618139381978077929463731035637935704090983528086043720946321639055452810972805325457889385479985565397891734415622356436720529613697566377986292554337420592627884939179808217882527429670251216863350171858388051628080859944134712973035951439848733660245556729934969255600842055575488574569543575463228749957342369731794923693175235370219825455955917654474084017535463162317873410146147752488212890196549113399094183654022101456735445642664000089760374878923630867768008660519556321141153386133477521543090494226065862652157565839737740752879750434342278098729689334075614480999719339104234753082163753537051376202241693063874671095476707570488618531564701966725557974076986426867121248230974802197775140712115196882270533042330922891316948502329227181517739545899386518451849610129067545566085496594935561120894415334230485348575145602023425721484668161344174532152443556452193479161617510179857388955549102583861334821514563605300646972513802389048206280339222625414462202239252555527541225344698975482871881545191364849083145089091909049736441230265347375129832775178033943264006913135588843948762047629772841715808779145966105989277067669447326723879412620417031070119593240686138156304179630628912320270369799790627360288503584698738141649694470352594340768809632245353968832743143640238097094054894497066576535668977231456707026985495680922988677663909968545743960126713569600262233918415116361666638491051075056155899186361937467645183114154940291937361211130148358094271715845053536527041879404567938853937773908704901634417854449503883223202912245269302364715161587675655277499153318001268555586316306136461227838885915207122246764740659475636098898294487201278744361404059957864881162327088641062285045128719512532334944314635641632255897403349949259177382146783258656835054519119589218338002984645609999324791803540293696730783528549637624404312389217287195460478828183619002833688853448802722636236262359355053306184173474878316173139529296346781725358447630263453448746928124394415287331841373073674913567965123132264565917622967764555464309743038832276988002168852591423074291324057811546767025261491466468987346530493634886316597896609791702576439638565773766997965917826636029930049129177999308712366976402575516236443046955207129728889408813019872301524036264809045411716069265312022935575121065683647096572294096931859695049144382858424968670553613827590383792149269285744645200156185517217618844386270623861314083323352365288522133186409468004181099374494707193527975555808547639005394492719354795372324618984545153025876550084711277706454574150494885917193038909301458102728189985121759493070484279357389065610431084795142588545323108005569041748828363177015960806917153829349320594654082079827688389485431193452829574280274579179882819525639118296365327015599324775607054147979670552896539816299883613263757466702630840509489527104284643434807792197569726710400275661790153635261605040566425992958433485256149848735104706010514439031005319075212819638193446335078367330524721736580757002135712983925963271543704471012922880331278776499663595030120558622099177391234071796915865704610815231744130902992100587871570604739960969941461083763725874977134761829108927106907420430396801352806807327475288087645872163510038103439040710562783171052178618703791208263703324232245148783198737051010335218863804760696843040538502555312125696459893581658453200013803531766377554773493788335834969835794247403590491354788006526433213104606307091179660385466884180583919778072362344088975784187660965512123107655122282506126121906688414759497013926613905828532106116627449078827743016293996188433340958131713620392315828691873481353412811928722835375761129989633353860574303128636806870963587058754624984927398267693866591889498550277043775744536246104363773828319195446010570277637371991719700972028993364646901201045807412425030781774315902486275573198447444220864786662199513134488993053838137573445243793553799566869069985788749398836398575773000052018491615574937944087170932368911331202003218589039253850537850439520989785887648221498979617713980597609148175357297446538998744039513329779352776917594945618568529379687622801878749178816392062809015007849978055098009742732517556205667815386961230424403491266559580285099264552000357113256901067983976747048360345046043332411280034215269330798279049602363596497745505129813321867919271717604209747848459516193237351357838100507244556440838529287346773520784465639895823941186518551737054164014200542445323728729765917041437915270559272737664918220985726188165878402491823383162374981598636937281548358890732916333133140818345618486546240761006414041381589300611806629054453978585789048483975754347044243304706925268372233606704225104182897675656964442619411955504193917283902913781195287901705262749180260639254538702820907666210442371609121998076562268792890691716966736649909732295778429899233692988836496792836223021476971331572407596453457152013034999119006045308844555362960536104744805073399955816773614315498376926297949425883154231388935689138375031395961418564449323894288973930587609021329756269228131629766978422972682567055285869963999447011212904917002730466980460202178674474221531801664862501601431576807434964449721374765481848628000236683855639186684332656993780080281685559166754260941014450960386577299181376321246142557873402351116536601180572362568152198690462003503619324853239444248680112438949527900489537068387986544253062469264255548252037951088224075146521042001167241010434357727773847653542246822940192763035614978998950090194238603661167431619707811709859292521564368721884519553737029352923521529968273209129424692432311390551592341314717658237521337630653757235994953545806206673217319814999730820176710841897021947123387205409106578033607382257310322494149109797471002517960349127921370283516529664040076882505637569578473934370718982142950611401580934656263942190645917902066246473429173104152914299772799363391490689668178492350951831367469470237955667192601039336284940701783085893153637384512441635160780542546916534042909024244246611149442106426364287944939281527059662046960296284096131459625444673868677702024980321792538157736481284696608483020857193286162989314516577878199778790278789116856883551817121152161198083905419691336044653375794118860230732184732616313334679670512818946406584744550556100461841894030753680548604034271073441958808297991346926732794622791691486254257568443523798319008686621327175907461882011524688216458631243538420013982771197051431136014809120546468434108905059844144677524328451503784543087049532027390767712462666088874821303744326182442899521641119003201685703547451016825964007560059267844614679639944631471899052725353552286057615524890350105987843499747989383270986062244652663918326839881677910051931401058580139963064694541749399176148795628698048837737828296554174597284170827402121106969570340749460599205255398308169504162527159960652784596161056738589024544108458631046755279670732491820399735055803724105979657588348550244171712199292027869556254753582605534883530572854637224054639506500308695480699030879739725565826148398769132394568482424020562376439421114840794203443385896128286182060709851020738951782135249990127033465914563628549680366139423973287306208962832823742080837351193432061210648517493094487115066201435332854831624452748110091376297648652280604728808253480382558691961285251857158992601487435462329103920282994774104880961751620812016828570708053115204467509369057876494646431183682131765756573303536159850567539284958044619728744570886143597535076793027713885986746290139284631798449828995220117888256160383879783646672161871532393055613661824684149008356631849272207278092305527644891864407455968084258261613627224889414787882349570272110708903543374555368426351980380134228354990151398759841028425246528914593551447372433284222482315273749935951210815472449006698896689867585177678366672544017290773921307354203818788633903317534060050836227749382554473608646357342876028619245087787587776368116179826645552970252330163550063698824300239244909688649752831004078246803597855514237419335942201461012731356222190847382573759183149192522130059484861964297914870540221012920854793754104728128557614783883766536382743363746599490987372186530427132015064409843376178574334975843231977538847806310707146468997290292061053510474462149642901311430692684973178928313124858459420971286328874341982593001955266686575816011848470717383216603387486451049891354823785354482236044923640354305957071275848097683423779918890449444699418230795182062254707410103074293211642536774672822040709504175232283660393008414350327191377747913746778508431635216505205138790186176263376445344186980488175186638384187503790826813609790528225342191541470805144885052473021067761008221388663144454169829442441036337148044965828161069253029811808469652345542654322735111790721679589578277930635458104496470324714107544988354054467303569521020810819248519300448032579303879199774967131325156226082805839780082652168486690739696715367678120484273635802455490759047188362629475733184287246259024193107031182153727961480806749578816105522724610867089547615076859081935392776886329170023924087543878673992474572848537933696805494333885262456859455335666735879470833568158633757236710294536570617337707268356547283905653092117378067902578415234185775983648087452385302612526446848691393839874824726900355123180947264833460002423930185200757362098775801607279942591034054919648381394645414842627377571310978771400944369209171049916961634653362639925209405981768635585927759199114073734497671411878602035845239556457958692720976634592814292375017327008087852984796072737010042142610875490049162741176040544411259357067719761417613967818575885773689871988212406345661746708257469359482558175141822634004556033729238014072186570644957221076161745851309129063386406934635565809620199325099651051200374423745045113618380472530231781049759821013027150039144323911516724537910788427563632347548704430049468478297220132734958989810981556048319792544335103299031166045295509867538278843231644474903290419361179809963480791252136585368045411034281825999384313243623861197781785842700260534122989699353751717657477259910125128753442969645039367682507115751417342565243471324960297040108559268730536091880916228352950691302204513052061569404467907812236957893741581261507612398419349619071293909953786002770665937585236755551875903172126391803148241101753339249272878511324504988742087019262589730541970615606428311567800781080530493215833519533241825591794348846943744771116244336261105357428268291809441006617992079864476876855822461863850022472836344969169765286318021229622528101079113595189671082350710072159055974696333645872280069790599768549662811636023481335081231126188588971019209990951964665698272361443096340823558969604301532426011159501047474417341165765273348960266717478319030768396964263125385753728957487837200013950659607036101252947933810942976692664477795477100157384913102271054848469786527645347685051645345111604865539370382642646937965886540160198640462365485056917965744026684193406555726330759620840205068667193259622425639664408816268871708589426106735495070974938398642349215101064327868739153035569792701678754557634377178447350335242071010303671455851347209936037722079227893320104121817055846292440647915727571174097057246856615228018065559909188817680884878810867417146096268141831675633638900059869547112512243560952194985681937677136194620334929410529263415575703407633844193747652988193733678612464149715032162529423272776502826343937402369095980349049947142469242639747607772474425221302792738608024126606444926938734970630661795398143339915096402239912239204058398418508891855024978397495509340983434167242568613098248718979410312052962980352100923891929230464690856672711185371762308270918931799790997522185125860136004689657331805529286418931916587000975785114835218786812512969489799834859978083310394654835265141715148936132621048218172722927838831021146609847314066185189931624900713272227882158870379537356811336933415752220580428479556597868912226918365065582464880301460361563635561709446432088719678530534302632752375215326708455868783407666408182472600213161417645111949111653507587868783005379844947078563480368429442840971973477561774399062299040391950441922033956602613846977124039799112377876109660935582819259009372106007148998831600226892632082100437780365033810376971209393411096907839152754015721178413227124171880392660911494143169331035803214820287078837392249381805437710906257702574476372286535546671435956617096992888627076451307687045872218547728192926429212104481096176211184754133787373718892007404517419415671288818087663603640208761283263141650971368606669998734958326667064034421557792426939027899700402576934002689446123041476050821677591550545454755413739233329405481365466365688930341655330922811762707112429632907148313903532864839385378684888847747591731169930862190507654249883500325289523820482569386140380301227053217767097088405744522096069106835966707719094690785061633091142531298575449239374028684732086665185036761479841854108921619164218314189529823663812967491754760136883733302856400489119972727548617570456082638690641736905815532645674845463615095425897026562520387031038166415266022786115828127881218251549248156066480852580356086349427632776484528536456209931727024961669415738329864745224308494156520344132232500486627214762323559590028570165718060195968439314592895326521354193446514234258662745187758833811749192739834664757040215636435888283847990650203157053226110125953930312908287534624178996630299047549035516191874432992589856616808029855076903331803820937720981521156092582046116546712446748134566192050609770985178130621074433834599382070356049154942248187199193726834888025762483723770570921888025460781374254495870568389711347869669176497007762205510523728286011179930889823992614985942977496331650945068916884840784417097565664496434351358330985367628864814976720467710283949805074767414934413836131281662305349752157036390622679551393734203907037423417211282058650180639614786511300032192211360897503945160143060807033172873754570952614868015087501535077524078920393564394829328100652978077529434923035956690448100851274740389297333876533525015672311011082927716805875428938210394056580241635987657407776728045346245456531977838862640930004337661125870807056076272070573348096941107654125647678753922152542396910097221065857729118156116293663211017661086876157200641594525644648919794615742394772758016194677881933752822080371811488235905302955358793934217327246359205340321416083827265716293303707377127764249285700046004698313288702169503964598960663424308741903143952538561613163087067256216406073488078102160559720659551416551319414378234322905363666613262820592419276685779701186304724620859261307502285024695663748746110450707466603291958853682161441086492096071105364658137540122432535022797198833847028577817857625681775562046377563939911332955314425402439073947127297449139643411289389173761305443537276849724154923685804136402017693621842995941700846172147071354916506060990652072120433422163496582607023570314363865924044210594360490633123961944416662487109489952343752404608464604322499891131779700021373091303557036103694461271195416943153277697635164998131504826968900356013388002590202678981682580259487137910364338609223607737815978957013947536067305358715990390787649865323258353450823501263290378983562293939462794611868927903468321365984193691308452338451921960480390372303304776478422945611475865157946950606647501656211116256691435062732054985624581520129844828451978734963745980705372406202442790574651927374194019821671307647760026117334100656139388909426934701140113881543802766425190059174622907076476396228420405324967328415734880466889756543476993811647668469256294255148504888168586808074704097820706293591233293610550189679438980546420708013184009089536222384048091420586723951441672626745135320117236363746706436686336409931893531351278687833662616476810594631074144191917869368583648520842175654218541619108236387952083463976467060319062514387847512366713833022963315962417013697866625407065460481997868949516648235164646834229772507758265700418587908310437759389588021264215355946047273561015774628950459415701608366315744009631275933383629906878139453953533418355048076694080077176455075791706676728408820825433922503895734736776701039603832299300599077267466373698187286983670860346487028705269106614578469520067025423164689454678455563796891528373499712286105560149252988608841476050262796779452098015481089515668951090464456367343534703451777139034149712245555385044990079502731015222704757145175115392635643958917669074419987333710733578003861378444497380596016563952801437426133799017013276633243674686464405394391958849991289728022842647662846108258393033528110359985973497547773120055861010929757153424407195809031519290271592861369723627224496293468671689143963193886940206576242918027156166900642823401843083649847447327433891089878536910761142544268009608080444894773943915647500763902155793946091614941877272129744791929518108750147361529028318156591914582002728856694461155209548681276433755025032926207933940807915904696550576421185508551298934055815927090721592742316148947844933317965049179073546431289802822256775109489458593195147834622137969250131943011327242904210794262060647904594081878431364472349934734678736333905648777298001409408813895560632694681680587537666259834862911234888797426826997524089439645383959511078105641355424951129934743327456273635504942670763679073406116063960894848679361749136549554882530501227582178778364758190075117796554745820738958682355716031725222226448615072169624812058688242968971151152859937535555219913963533194390747256139984368499084075054129712978987931348357844382952788417789565582866234717192140501583838549190644440904409698060242903216711278375662502082421107824512855565932957725120793660464699938758131191634587589350639558197283198861652960477861164755401914937392697345475857865733789644276622406220493047495110641636198503113522858146165051364431899171036775332210736186236206686094741694855431242763672268732394297171683553070668648224841194736166131320749809573784859946980926003402532653262909653398326904128607595813778293643625796327022137734995069419701093649536399626812518869418022660566511098095372060677588420161963695246570435625225799092276997236229993500651289389509077402390618583499918378353000109275496602595782478135778033833242130864399416244934919375367797016855799956900348253000526151099592821582946042048873959151932465139907798654287797241654994187342863925291966530325159331264199103286291468870514197481611453817310787663917670421176825311158240562116774634021189064924453946354669122330347308292929640310010509573300309390183300348049564642752094923417084319527891197749231048966956780901015723338829616488576905430799695971286060341619061465306812506765148943019702660102244682491708343104997724997406290369698722365861847660609726084293393725586510332824124803542817104604513902382626429244745116201846336903936848679008247156135626544827037803331680071021333977510884165839499962982762174382561860503952638331365412978325919574615572170969329613931839456853857494711767384911070984571240609348283078265449642771865605105784727115726517196395239695532507691481922729477760877104096774598639531768876238501461616260101072382537187998345041669488239459464713199378187661904225653227740615248421720792007974878064177594795755043197019148850880475063491648640487972230857210284702534686872077001952902898233579766234820266515319323071278483951447224241694789583858737993524705861147164001864706772851074513278886021583010409327722578607186072464551571592640907213194150527169773591531864704514869302933581578696932796526770749625505398944899088054048698408981303098564512207041756683585037089297133988677937550217345438651736135777326111737820249310694380317866235708767200416387553131146683584733607039935623288429821870082487875776965341440615264308982505741078437082704697388183534694226638213942849602701267709616972236750638217092845694281904470245914808498912460837995329318130145660890959438085015627173478138550652127093908680657539380071606603396992625517864639956611088886001719788978849913529717972259570010891715417385063825901829235548587380252974692493461363593261938080038892183943386495368854117304957531238017737592123328054658178403452228981281157623151877565906006984263571055389705164170788282013203735562085853233161867438786681208454562436794020398796380497355428078019377222855799506552143049305733264379253393154842527868270770149514144409842319206365345615212177262737267706701084532178634603288229176462700997238036881669927922036935280794538213241257066352171980289987847689784473679902041115597218354507940378332947189063140768423250484079014459604107393044911603469833266454476571681172636438336820905162270135148839611742543116088287263816558540978637756308882073017034873221814945035402930425456971273902808215857582816422775634832696912379278618040230774552835500005059097292366366174392198684109320613120922026091609272876229036206881613853776422414001426519994076577980326690956466422202037943104323183007561103223820462713680439422886683812549689710416589840348557177175384261249500696285588373762517037251304533273890781451734610475310841236270994819220929369875660982564686640018184178979430704717977644523630437027134466093829670899460999375842980568683889008936995322053730942106008542417475221047930247209180430919133485718196261616686536838276675544689240404119123634375630435469883794047645106025726652017770531343633074473346941499820399084872391562556793347268918306585842768198373202266111054844218334478878055140359266304126151989347551030137086806781516326523610683092116748818094366848551055115917574793921093954279111958821500009714875812699148295907661532912777998825477743690623473227330995745668995665202380005803544932215595594212431409340147046418028696702251985129408393313052424412518116650571669644162315509986563933361418588903431436852891023208358134291756354722923263755753599307605265895332779049817116887962895570327611239309569911312916215925853716298179428854574735974708601170782100781430533895446339143655881786965725344677893876315274025431000668977711661629383619316061377940895775049756281715410185404704285220629951783362556825645452407636991745635080553373916922808652466563510222570077650293551351090818526596627175007959653987511388474854118934788044118806855804911205125496615328547345482158746511803980769907600113215330957314130913720560616534802792110148758540913544748518095919677614757081129976620095317506689781449233906147202081861305250189039417688631837219220579665925625199464258286353107130759102015411703979231326138078214506479962333029536317156733445114081075015112809221434645676145713322827964479522843989755126597398592190088062816844268010075284329173100321741144136892465232269002919731461440434232702498478763939419353905938650368290529857115238048870083605873680668361196300102219659692128986593112289162701055880553633041911295478069270151709792360161639877655609502480610540428176484112877691988409165635088131003130084326515838175654791477002917419280397248453441823283014518555121389237828301626077767493947862910021438011448291193757215438406186926180083113775604486769338291316708372910207460496760911858669589234009981976805405799800864754204693271251841537289787996260989151235481746189079396048015256326127622491491452486404058499328340103759201631691806031464234880481024841199383434998377813838924617205574189364551021504662046894280132924015197338878013748301807821295325154527520061381966982048081627985768102065663826029931636260735024282815607990155321071937349936706427824511956688989432051246268355073362691448493010754939373101243427952236665525133388605448350656517086462305220729110132037364942243781438979224285160245941371723717475749660070475628774103940981484547475432397084612398651613515667487404687631405930856466816671685145151617031377166010762752478963896067810690432453416801489974600185903528107394129737527036834940381576837749757657100557094962971093074699211105901518012966371154743157890013368323131728941646933925994070808379185609319753373672769673788379324970229189053622314005649893026584583675291258268845856910648697505318274181648200258735838252062818217446044640136417417207526843321851130238275585351143400199532037487346353288955131734759282809480209737383950755389058147571691370251825874062582180942941363200391521686845966243026691453301201126885606362673176737113593752958022577918072587558947968219618279643915066909312666475529734294079555398922175089583000577081515686844178124150731532013426658542406369384581116432728902285316942931575033240532995160972146188358017198666170025966347755896800891176704161598800489389555242539519563256863461218277739301557275228368078157941688488287873477553330591583893212259779917830136186777898836819172149774602991673463542345114435755637455587489228361994329466519335046765746552245609189500332338780603272763422624932587055407531491994038085183964412581886295985602709882793204818088387395017921922730176841729360601702260220887994477360028836303993990385969942525405007312334695095663873932800191350954736472762363483770264879296092339723300210256013493889315152109855637351634294748325224397008911815470350379490204196008221801633387358709060396842891040336277769911902410415793809138167672504316162263556597745633906028489219493835593500942335252648922361380846806197541793556823773061985008596951975870138766231378647703594606652834040627938572322071899022506070011286657031949317867510608193898515063057762420482293632839513635619784714990544287268349523302845439652966491030328062219686538801540398933659990718438700905204603354086249353974377603511527461676010298636811660719401058466987392446645210920508654438929672609898267934837508718547689025637733616191587942496849961691966895081368016781975148735418128566158297481213144651741592600426855330369823020559283546280775158135225146837114506005824382069914704666186128859992883590589980217844631954311774787345908249007143981677987107534887100719699348780784519517643835722536968480036456252989037689319735230735840657037175609022363708889178404982868210542321122223910188628493800798562768838206033582689512470777549792761510859402355428950260415428525357848141006163251879435343771458379252679352635407691639456754433272207950454682018362292714863629264277156183950560496538589986327973543931110781472438707810845947231729092759965611489023505051748416167029038422385608161437383099093812012453245273548446789284160609040609512876312596666711583183717387592738432408344956796614633175354866526832252202912065055581110166381771446117498613248317180247027062013876127879922354211026623452505373331103469407659015251846243958036683063099296444203842345445475026779939478569793637370930338841929962726830034755351418510315014556105370673475053696044915234596640481818780163218430490223905440151318097542144900467427397523803526443265544399107203337198035667801056827211030035161275880655670102266782878642031674960553029100933711578653515262124688162715804741922854712923377981758156102363301942297178519956070506208879934213301680215979698324302417381051093898145962241617549693110602515953874285697130770840014136578748190825898322441242365313997703455440424712354830935076715969966245879590271203402320361716975844489930887277821550212287652049839338159516633291979688542143307965307591860135777326791743271652524632740488506776630318035206797990195744240139776288378849819210890434175678800023319029939061030637145527473300225391741231115495905206346670190445006676079683208317963611867505017085890916133685758540000320816319570113907524515969578091516612691165330491235154342044190777565827824643703762795790258863495231180827884053517825697659675137883298773221551193116152126431294940710964684692385109196660899989267018093381036592602432379513603497652488892040043896467227670133937063506659056514726994815003958762714009352317392985603531647947173042015823617953063352402077412021243264017264204327297831655939818782429581841986480327230218792979588788137751195749341060804912327890736632446774639113016364755297548823955687779625871869706570148196645299076451569217965382846576171377274606522246565309690344792666925496463449615195329294248346066153177077645683782612785155295188593582302651440928569672673015327137466104412406884447034695658140743948572475324972765906191306424046539528154713167380460325968058506932972547847463273853887412328150974852342370591026287116814845625488113842919881855927531022665152917995623983406055573372475695397376282955692270874679689959389305328250991641680486493945069588092132017566525474183483407875408354689280601260992261308061003119370954480880162944229755870115833153303336858467386592467427047004639163641208338527819171107699849052207293011975411427390845594486666681302123002212106518332499781097502910036111178892038164033608038864347429532019967877932269060059971145717220314447421443777806757873159288258784246102810440622437323934465161455769353632984044542024796196440771622531717322257968468187518560742220748478132977933455212713482199108693644517209974137781949739571789497889342477767701379362075700266565342144786944668315404633453585235141510332615006683300681515962954518511882947704036793076859558873918947846379527248933967143278682725921581036948535169154957789594358918227099349285903952575919475426378287371676071128279020834893150553462618128554620625783939288588705214665670765059150404991698552150642993835415955274408263153571656282939989855744959958325998482753961726366844245589291300187073399874913951613535886229519478472458875787643764051679270372458174237145727740474667997848417862741335387854025352761735657047964678862620521717451194234586765066756087514619447984485772794362352681015457127013942903164350224697946120082976872429075690931995072261025646531949906368297248881349472884161712845856485338343557900707949895221843012866706292960027059642740793527732272601538539505340766098389292098314894046644184827882830604376682083209060286542262561780148711173606258704263492917338229587182110065488374409105001924760935122076497186771437845351406103752716924002445830500964859181016493403059202291091287661512487518859982121391565315036246696200159143308589147647269554477418552642679137452501829921340326280206791624788414498063892564761002345744257649543952631358416878284889721003981157351699620013965561024397860121944608427460972499538742485904888210949090600651750983207558958094594333444232508376209549320053278411737974107676900611199839127107867000688157653527706618877525956329499963301793802562193319349424807448619513778532667482131437470357208324430861694468107916481064997487689387174520381981574706146863658629519951013818613311730120622494857495625879380242632753521904814215534833966456151353110444677556806965154061024880294897282681999756763733077303040094294916631096590934334499587398724588506179387078647529767595079762024419336988343536038691859357297003528886525899072561728819563637665525666238624056920156447181148825989603056303216073872230821538924726558797262299550843268575133725225209371021788997082942176496588486330832540594033367018914388683405244784444465280260995647465423045339933351555674990843210281790866252755007336209482724481841402861777758895130956506818103681801108048392665588633802763841073195854334204619237716459280526162222857742866892312162294971988493930103858739338878823784272757412682586304291334852354858123680677122558775491377559106334727168368537961411831195868272803441792928461597638376010644885773719587458503203905752776662316751930109998679255074723167792355726837933740217761616604707381980601034117905332393727927720778721088756137146893676815908569660560790874399620580094318008214142283216625384329630038714587546177513763174176277519499098963537437894498767919420035007634621753243904251371361407246059357416078172235167401534998635643474618808998139217664219406696142882023413360950005336960573185850307708285966339802472101178291493574217919247331542221168901191174639914398284232708558596262812293630334483745105477216649303506695586598709483930012700435660925061795040515485335322655665500175679617229268764346578783854789200547131809900638132560766977471108697752709668395199222678915838957642893153663736073525242998903766907693561838385192348757427072927329345883691843750867214389951584829915789335513360340556617520391011427877855277710829721691611926522757468155543065009384830695328692093330524356595357551742246359552349842400685907134240445360829839067045492364866156958132242213901723488726440673467504751248391067652450352356898328942389182895532458927242252280488473299899472846590979258503304759367092564415729916838180584977524936724850578753399787158165769536827776859106688651736956753346874502142603930810343623815523239886142868073461196018681035032232825699859881810337932751247663594747452315974289158748891621751865488622473394372726426640938863829127461242770168964798203416056300289898688599781579892207399469328130768801789092690476006140048775878124262302312075183539595073387828787702989319215685175641903925889373363029014150167561715095394797878089563690720641410563291084639253061964256521534621796084266443954781780453144141256690196991884559934790499433618615014458512582418163842604591463225458728160495556967519008263172602366753641005352435255961617229035917168630666131168202755824647578808176666484482420532176580453429465756369737481599206737569765320341107048372253202360987444349224602739932677849883241328682250640495451942687920746785485488798439268270883542672026178863205353479799672245697219712073605300516426209802749697849291664306850943504505442169040392742576031012721425452407086654537155600760594190394225328052197149037494372628469424455381631821040957254059869150926343237003835272195214484183779076993875464922729867970766058582315542245425526673105621627002623304392014364048876045574653864909099140198471965972680574618220494579379436713548701371562856389342762498928367157446757892062675415032469229068936529159879433294655646906939758056517371195339098540963115366168069380815667758103141418456603614428394842650267727333202028445309037288466099466931064037716504153330968194044459756997407833325301751544643958967043622329402493016575382875098154193042782261270126652525486107022684373110460082704988006147117807555916927410624981936764675447450994347972865422390507320046369911966686353338144257777884763196593781406488538588593525878063014693454627195917390855830613216932630876792820445076088229506609797078023198303789730594963784380511546142985349578401413136868202711591070805694280235271210784112429187210875548673105594228539255200223052111632041270681630035333498044926139685479675002812622977438341403825535520819898445581131249211724431623707148750149991194265174412241131458963602769595808593726634879967927502562040478294822974372282661759005877535338538149567312234784987327218278007348123386572091133911699410495845208142937250984089281681041615264052829477945537583855506873964002665108003430627348188916775266879708960991776638442612980559357432092247193493156508080184366090909719052640629643913156099077217536490205731546363877254733575907083069178459650868386071794639330073807740067602126771984944738745150422058383061002554446491470324905612151348618077731590871502716015929743852953369244333620666762674291044372541683175146537850563231791476288518238167170320505326733202196713189636072516955971138234606481926965872444109318174206411539786272727307348040604335711950332926361941745435118961491773583812653544302274628406251904451214791151342066446964036640634535233058488987568601944307239996488434855197773856694440214948990377393334856955448598035419833733968659305846138113561729035406285022798310515810942496561332714298766266156743257193332918577204643184632298677421686013229870779803806597366399981265833501352578544637854528546995295281076464475772700977118636831062310344776341176848102783682521833391542891200849790691446606260404723986546304124982088414438292441098563638752551319479449786100891455972783010393394454889608061169669392554146708969164202106223635130267595839954828702578150067295868515720917346438762662369553068733127493967105736758109595653140692099801356773672135608771668261610010555591322913379856216368117676536508012112972135713272671633568743032713301003112807249631565650825882070187346160194876380606443731074571663443083219867697136792498957713300995453292760146173054517559544305775906446740862071416383521747073232775461140128009668407594477085703881537870676351701280701389097458013891645220880956483312281237432520796673100845743656815726688183613378235311572357347297966734188029459288346672897862561545276221361375385352880413133786992807770439143395420146673225697010744699641755975416893171609810585279701352896801952282780978340179361708682154670011056458338738235097523516152518629081281874448624183327383687194600328734524134794238048571440359996841074710399276758598570904438720564085653740453325263757178958062949318339525425073406346994722743264456063049015748838702580501201886816782449178192310700836633084074440343624994062603023334345891343436901442102241028102013139454842005355041637726957579832913481950901335968033590658889068922542451725460999052315084948701212798222101568430069913039289047957023143307439807457180072439450309088096671087879234446130843876485315138959895744595266790797531462697551838795626232642653526500696996363615574862299869226258518450837563061027036240553470530000616258370902828336466847234458503057811276953994915930250207645800740184291348022173943374248067347117866866871936339387290873179265202416625852617832698559489091096442971393902316191847029848224227624372851038772798811271001521350542984779282461770647932017267453380776643492784044385376057240941999018892250299119505185000900610111991088017538378431097781163236862767926529344399414860581625241222591858596963983271723004420735674913629384581216049249528128231200520338253243139374649268687309687386440065553059581755885822728160341525681363021562488317923840625108800302246079646228756566261616209583865392312705064092720931069436563258338080008167368500023089771243384335195397819596985535728428364973476861947625039956479556456318830419426314223453812970028924799144180662904893998574634088596696831142590877477237330745154410169564873155968430228924142717966260072725255208506981813201967517769324435051148951664772857481495859487939920668266191971971999599328731133316512903949213116205511846487461319489111093977483700343380216848140863775038083549832797272087104009111317133861780798204437049879479602002280803342485935618579759882178391400185804468591483563228099042681063624544521493568155598205852067795852536006813732717505961575310804390565651989151185654622888076775299867093196469906487562220899745024285221500503725040974738599485006744245671729978851719308529178871805892603172312951097763659364974246820243297257878651325355811825701593818832976877840906253557421422329367762831352425817473828745735330262390551176041572140620631289864953389587056074831862579815611887436099458116534527214505860308784378783319729467200848488864302556579404785832486842177647460326762692141809948735842793016484533869939639320387848601605148767315503315089056548846149277557275886766914068927028399046299845336919297520799862879617491752577120112258572658110806153469744779640379131159422294506783322134327801780943739688060359259427138880673951219007931071661762698393351955024262950659194653341006711477412022359816612082772048793711663175653837796398265336482210243590869725701452032692990261818748589679327363361690201409944412488291552373647790970418117028726958252942963937797039785298006970680047771477446788651596709883329153130240365790143367044935512854909697407351417434441223949251043261894362541982413155313168453012399883409759400094223498820608908536437076180480264912475949817563434177074118559453137934970902670278849970674166141824693920974456179367221410469401238229612510407927398375912217184829094162199786314770111839122757855037852219775166112462541963821703013752292978698732450551209221118064007956149501791225521259576530112296533886539824883895639040611808460270934572369945736639100708567798851238996259711074540225752982162559081863948526839549163128952377360939549306293395952992126603887647720852546593100924915816397578699551909964182513993116544220164291927783463507476979144735801936018039434718497423330940246573835209419895544457055634629064709447457458659285537672612065923591070578750771080784659532839516636490719355201011617451703481134551299537787940979394420175807378127015760265799788700848918496686217773367997160589025245261395873061150579422364326375596615204327388229739028462603913397406005633729199427876237511627520513984859264271337072645988703564368359453362711567482347882523432214698537731016768143348960690518759558209119918585168165787276361748920742410954957170221438861412114209103171494318932368874692683045036255077738121915715628184494544783702689881786241875276715628214862231901113688672834612497593276842828097088981325539674583493146488594776540367711103183484813294577596656976299154595599025361202185556325589257393237764130453613788103387453967545838261283654743827584674653674304062865226194111827540628345674457810837600355706256038009298788267648864178233739433431612676706613288101480623289735810355996494707893729594924757944650049535803223094639082917183898970237736655941966981440738021037975030004996335583562914699471595612201898627252105761426235186041125621658406346058986161880193920316900759255559981431983144758988208907145558808206783700873987646787693603253303479912374799637031029647679505414454234561379599940135268167054057159879149290757485576364355050477552353444140173420252158115539789779119580761431594854838751046492611906607637076755723960200669346130701570954223736807010042423896781993461966413402325477095460312726603411981346457774526808443354906885443680722371615291388713452010498670292630997183516181180466738354542321777641891271839167286568560742169407018320297399289997447293358917847101860434271140029671032683463631000840554531374955506794317678607138459529905609038788166221198015193018078718588762530179663305693499050765554646540235392283421649472466607808173000253136672095696346367306884843330410399551768426185109456847188005511161203842370813905160917519361714503592278154590355856318135376322125258704384473901777799446840840343358932397031543648356714695281773167991567498050282142137591278366244690164797479007113707520377618874603085474345550448489650723340074508361545833470693668059291751067629534025112760320511595645401643961577889582663845001914879783923857876419723042049813320998517047338128349945756799781075715267716914661185526458436232548259126381431951792166016316427073016857965414622271818313051731522559561532958567157906556514372162899658286993069051864341721168342029398938713872654244649336112125583043520935063588347497483235678446990533058859751366968177369516773148908328362256741679232331284310041914414508071161140182381729358370921411572601040256623914418294782970407287879481122040939604537713217673072920036993240704622257777024978227880991220066662840740308636254219284214478513189923813491576694812080027139995973777279374010430537858348089467141355041055546191925669503650575088515747116063414863474110976295358409603425922809750271614683943318956795167536105620976299927306023894865758635049623264693482462971279569737944077806981392943173981497917753124178905670275965735844428636261417901011981362349595521381892638062348598220085735089416231349653750061105941413870861702151564142167255086965885548835728047235021569670380013804677429460707779389490537372602460490476282336939549288572002928251041915636831974615163940361705014094523061673855196689579989470025624658422106195143260345869508938320052846269787559122260022232043844158862462667875135624257312136697596786784657376624593531213417097074025084741292768988011834304084284679323557074516073460670590428503483222835175561078231168460179800046684018938590636721720651431738936992383353930503088330642891523737292697333321788617776222923952711354241601318459348218261067300462214947780040077732103474651100897059887697974439382737012838106558708446217964313883099232232178881463531149048780866872521330425226083492322597364675887737317175043975912612811791467701475305944231529385172536197639813452842056425905271863799864448773957222824519133835576958432120788550169696466271571668222857883287192653108709389428865179926895801648460718230034164266658516847419272723708173461252460009174918656400769729043904833745952921332481477917524632738795143616101662676694434368663704966514952720404781911859473673382803067260929433770282922851262947925257633819100999837747645904056824827733344917238412108259895263562691764751665730787608956817377692525253195542171528637286912647676797226165049537640140422435525001253559986352322457258267640263633954370650542310303432293701010427846866352789202252683896817276192224023957848220127573573381253692767234969582772613600057713944438340432539325975922365583387226498152055100891270741190491148414605499183151597979057736211037493597931082849565658646607737365609272138801590770910603361308004819254914755220602689626850417210521252001616631371877596990159929343512724165786406671921296728298621564885315705036434134434000684862381135431534742764569110025572728334330781897692317697616177753041882316829948084964745847904395256606601750972219638438706833120672825732040494404876603015090607964600164122085971470610772575926839213593405627559960133077201065807890700158078344629850771899612953036924235900633004489651299662747393559484392603181636862847408501078798886806735669080394050139106632309229015704602222049232393572603600416189273541859080053086313566069031856543930049551143761638509680192379582991986283170500227582797211724195863479277890967879006540024766907470712298029646514787300505763239648503555061370097387931503898242869673759787409069953891039397157833215831733850806371029181000764655548350664438409830111859595831286665673185257603624054278357988464469381531945245570309668655513375325364761238412018700975639503151449634020238253363338680162440503771616777796116403483356839527595614256019257210239498323490797949444773578090594277910556371162580559203520847538772681081678283373669706437739622066153307862698073234304970235872284085430925759102072530660133944884144921750237760041804186588027592682163314830205028873282802289745244636447296066540350755795921990972760405060411495515967936107448509200196469609029580252428286228591379842997427625211847660679209988212483312911256869010456484087219680459857968461178275414960085910653438817970279590647813739894443038722183120467491557847454255665898986745070120948665492601213184534732704953771393356432740703234704245247499404493886934744777887874071597092949337026493955103218637897159271286510903903736519431133583074706728478361912560350313687859308393658209158708185033668763919823564485576554312555677550422654419117422735474159333108798063337008835542721333209817097400521105630061907127465632053201830154514618961129985832287394692296907387928536329082054615075017934155819348429115750331013678544541856399240454321672077979939186341476226994101466961578023210491016801068459008910518275731177019330185615621451535112932118060827980659941196007341593149694785116984839792215000631604984867935306508817650128570498338354214188967504905004055624115227936863886490527019834300404128139190750266411511327059447158869395891000486689978644435280176248493906437266665089042657980150953130133503161507164574443736901705399047071429411845818861699766240952374415636622888052158941567738842560165161329560492447399573775146876706434431475374230876133055507434268503651767699551234099747865717616453600961276077353194894790336608933733213340552040936778519506980175231162550186692837634500649745077122309539681655872035876554483981683553293280241915976546744775815580296963249618275752786129320631601747161990955738242634302543085047674721287740092611601276372779585270641400277094435382252575572269985038905259620361723807700322565487775452989038399841665156593504338410653515341891315006023283089317646733639618844974254976617482458461753995519326269473723538360102777646721585040028046548847661211579981232195693968098661954703405074610147185525239020475276436089241863378426860673839595646279185830469176260182330151758214029264786321718644502860259459593227689002937872959024516779536602171041522305678268441742050467395518142590014617245581804287465315671458650888883642525973710002981976061814319084323389862992995804272144512177757182565886801982087108123389339247841331204301920797089574270256094729676112940559189321003785006837738118897721431274496025070828920244648544033010730926099064995241370801578024044573681824926968482877840927636166402778788936902734323756298441542983981496283596135991198389218529249169632282763587031081033508998363005939332843613560594818669265386485071701156645423913143604960521465047902267515983130421221442757668713255814673392339461478963553343022417385366018530891075494060655199693689638761475005338646521721748911630894099042741730093152662480663183640457907220829324745184343778075999812058835342940356627453027942529688257326627750021298879350786870569323680650098567056291490071741807496166249446254732568119292294139824251757097446795731235676670440600367263554735186038188979025180686432292115251709745732100800072518731187739295128504463678546243554301573006621883102152274916852990234323101133192366709922212708025201119969583292520232740900534649272454479903114313510626499850627729927653066568363569983003426359314311481344462602238630400603620009282183801057455089329493452953001469712916417890567086478307114339845906776977386918830571631523376417139329746930523315672659248851395083601099978123726740839292239310176433333603748239180559016757729915905046307762270691219435856203992320371346482254730974598058266370327458578119130274983303519737152813045168400810525892948616505824187299000286527489071422760716377296914709769065475023667054886493743046403786848053856139137127777496082302707687939419243875348220145594399417548091197525124589855732113125233767246951920404667209060290181890705819489049771703885159046245629246817778046489284616599478551581461989951098277111034179652854911912410613898843870507672211930092266379186327406916917820821920670465433525153788646987779799036980622003979619910279392765966053065986297003496382806520002919211614109640170372932705666037471186041603472219426449345701538133412953164297234536764624802550817656405582583108197782357617207653535828762924303226917898430371425571012469620782956859569211170961872512105896584649395679516504509114762559832746200126653725059621320085983047658177652345445080217264668742037119087721486165438029854396454757026942736633787104299356719596981866883369798074181966369832722746401169292608304218730693294515722028934987842129993904781345205592939214125493599752480080919047424077881949950207113276457662245258174060326842626225721948464789215344503375206714370800209176794261607876816205362268386330137367487332262856076150477787153407820293703147163176675659747941073093526397931595670632794924788110738801069166084930362920817295817636081061233704768052755197248353865682214338102822442203150936304049382013355105617071941801089484177679909434018191464198465413023866845556066729565445537959668035597070903098303645900522875104538422566992480630029824184002918751214590265485267517138548544149953460454673982076001765934641865890491471314113625359524463396784031008308507872037523232139093826167958797227356341391071969644497285401234816087226161544423211247293083933085945706239414200624931307524999611201656637442160119107250634827175099075480086851070992117720094871769022627259985757424857987350232316129157230476154102482331628838317195341595134504173456282879767412937576991001999503548546019335942470573025044031657042403165710082445272865309740753577855749762670569440743303006565030783659928977106289037713661957857839720368489724768166905887087972955117706992081006992979561963187264675988562346256078376196157825151262597239360493692071011509182956926794300761754581389133683579851468640652279268361225916221852407499175186910093000339850216005808425348376524672712815470743210107969016943271970428706583024137044431298228344834242310588843843065430123370898692613665157457248031316795974379325673855581666177269863542834352918658756754958710344316312144647935460177580976439928577131319415033894214776026834421528765733564232222897824361702632894046257735018820142800865388213474062266005684175201797706548451832355854181252551403201742413598715924556616971532542168963301419923381126370959590522369682802509229560239825376408150226985948919530704656444418825049349547616984931189292971309675188254931881165787466734916760233610802223395019238651659496489662082838198846035452500488724123566743121938330337774252853244680708778563546976779575748664875782640582513278045715310067602270070238557736188218825267108051565241938177974437977788243362012855604411305638553814394806233497134929520774577266154416649735454868491035073983772636748178381146363302744346739544879172507281969988415240678614889154090674379412774289524023301218927515186518492303107814995277863363800304893264035330191567045633094312539374618649814465752653952924855883862127431628808921147692547838125853816332190603024581482018440566410574165767304896997578188039892221796872324884093261143376562784534827431256686016493968624754256265317291486538791170144660103907730308037207111908944064436695019763614978997145719607092199769519299698869298288663194419360521265205687185608213218768414286665124415384287670258832564405167373640689710549056785785278769068207288757013972101460412477876134643511891077525578302266316631192931614245589361428280826038176822346351237882635485919830500248133499874332113149590191744426169770315542515159757435050697001611082278946188680621220261332128927161549737978657353226283704897568583363843387543004416478556599061821746596603140553643681738867731111101920707572333768025553105673562175616015417339629400917152213487266491357977773082632239655184255702314966966272399628240514682008720908123182556654631554825627421135577091912537370495458775428776635136851266291885588442350952860176274339792156339198948023432778947062823658750682682276822947078649555086173333514024978567364249758146694859501162577581141748399552231060772021234591251520670353426651692011505965833082649701448035399241848594693429933325627975364693715307071447739006562366773624822987225094864760421937468859391733223447076539471347966932161055527875097472064555602270884221151635253991167916924325812627017198328643672997221110767235259719133911142869678070896382868594592625324050292900332067058833767772152871157394180086019719186040903557238521878862030398286350317392957789266589217014923135692613229517620770170259803950084810701539869275946123681889409061540839827513786871448198874402929868722963247437338421642878144041752526252600171729712164498102747885166987838373722021613051506244794131217766956892076282270444308179543425006317163162075011835758307587905375738216056072774346165731607208534333138161535417509300509294186503922951134370728607465535138715945432115529607641077831959255723709361369012450547146531945048862799996262613938989495588948593434377961886755859323637928897202236362831835462477796758626384097495165318030757626115651419878305873682135567422546251678248232193051880344884687950329903626573851549859719079609231713064459114507919548042016739590215761375941722937569467200760968550540316770061364467314757938479280932334760838978387372347057356342585465630994635235024850188160480291677977509704423394385811190214134198589402513971593382481370400164246888622463597774342069026982881915023513800862164168767525874470146015633381153486442682547791124247692001270599573070111164659591810412120600067589299580570595305270358938973342418988934633625389528488470697364147541508106352093379558764852939845478595146937910951907274237743192056274374070413186775490266374087679328955266840467275020528699595454174297203582363743814684859970292083900605572117744065136777897243477049650331848856225338602414675871125891511546917483301272824004990976622144997552406749111359657518914092797739542667258324625731040981695858030631852324255908246687139082673459760574780275116564451763428404934410070067373707625704204779338451948568041928429388613640467858212802113125214900326143472430730052754125778921134160509270087073778960901251067961376117502187045111592657785171016023153448360116665424884388590206934298620458298857092456957212577364294880331252853482998443606521327928131029185992035185719266193631246229347756931634205964671651108883975693212300024293834419978529884685710256771067851098063349728374990940685651569150295396074483166165033090296729532880060006669680785056429813813639320349662474631536360932652590329697948943985735101531717625681150133361796230846820502857952953998141067448025196478654346219871254377912229542805648350573702058756497024532280119628963916619030367853166997700763004101437730928871553787194597699594650350513249623959513846956003380578094015836339627385843827151428051032052655996324230414459034997325107784359228263428178189178634592421369426474739799910860356932939669053647780691267561912990994428547089540979450146668641243279416190631084988118253362967473146175049179104971143198621343857172620499508918102704580277069279657360129853757684633340198664648798386016529821472776789079226106960605929207970662146803991500538085158990402986695037026374632924009519899321348101935496564014506128098750842808600367444443001739530376014492125406527603482663163827800884519388400304261080507794602366800278401943944507601638853939267247672836686604975564728930519782557070697215371413373871251307792231033678003988027438712828835477294576027420259443643380306158466134822695011462448277879015096967155873115636844972812800437212115935384927348216713488608124078664049753654551289019065059597581950575310392617926535798467249386641703896973343531618106565164890940736215714538870979814699643768464808327575604435161707705096120956356182732954095467933296484529491616443583133765253490498867487717126757204869424640164356893521767039860978556100395488566935603269462417043925279943176172034172923155686095395105121079505062119903269704349062660874407239544032508277279842110232787700992895632160508227541459738847111546244173944648571099593224279846956785075621089353861190304502741371512155611827184211896381474343812446039020173318609423314563792587400114588883020705531172230623647037474652345448331242756286060507684687316541131789068042533018325403397235572330534490957120810126649327207554717716192155321044036512339191252883638941095326392329442070185519186287766179899806066525837609322453417086287158532871135795617572592277269340655644887205932844119745751072266534856521659394052432759850052410186002126181023750224556866646705294991850032217462796421211162787054982408584706148131069543782529265115508519987644403899445168368318193038902872509327873120409781523444790301841114782833911859816172168147644571553798240576898393592523286312377837287074859252307838127871199545580103707221902345781351149266319809724597260450344085068298009868634757752141771884947626058212489929348504621502778551999164478932173505185346158723398347902903888053688202856286155536351078977341197458853377143473920311678856811083514289501573406046702311303073738857810513862352674202279402715829808574643078939601254253850119800582536238738758961105072776887708387817755039244606307986249906234583955792738189098069725442289554680413507041419412291221582356880601808386242188500253757050687946139592578092213138956003993417239690820355059741317418446508689748660887013553990882966785298522971093565183959048852833818192697521605673065286482051568298384435532886492452923409827283439637251870813288686512555573414909927626212443871243753496437707274729890039120283918130962330201324261975567037840458434611012573814802394783228000555638628810975309882066262952597807279412597973962029129232631093734423200088203937025254952523374184957471687645089993879920769128739206819126712943247615144759480748439860633656206932638407130124053235857071284162080866594333139055000410036736052493816668574028101153794193447359972154152592007571904853116719605866700679572289962235362627478383849532769917977028225780439889721711598606400523344563021719429354811845492105682158436297682533804936543272187276632842902716617624773364144464994884499261719230858731463107928418727406836424729368331680338256187368832044233471710789999965455249305994797005599158531538965470148703013058558312407180231231740552294845089747690141337700107352208219562825615293274253446706197121129043115935939777009678174635639171772695685872058310221510498922036899189144869186390746948673031921820718532060209854021090286747838036472313285497418593289854110424050132514884027477590760218167651078587012578516149408358999115133299289803745334128175645469746912584062077045987251221479585951254251237016081762407669180621233971923965845342066247579420452443881676424524778230408374837207027353378339755003903845225371802399678707389410933451446774505683417810354487972393420831236972929544952854865911985150730975422348912864422920883625516628194849697895002663588226614261006214056304641144424550105084332999600317222262974711148103629441223423980650700201792101558547754680355161860450831071876685846267307486454169505870712890309137717660590037287442494677248486283619589017792832360666429061523222974369586045347160506332254423394718710957639561934731214257341247739414418142653773839244567438086844222789872974806203853776843476482205082336544928453171529500571641663322045425654599534952807047359487572426341373794497880391076473562653501158213337229809518689042973869262109497042211366976507865143134388891852692589159220767158643298290530460111801552155052202202548309372235515571226665790841208345628779477227251380081214977797838171196446531939955926835508395442609037353429099011696028863986487187076643216665405861461689393041427978037453689855286109393349020144360138348054757303396521999534281345143063117732800899373637159861734896582413755527196122196065211536699654244615350562110734700414862202608553651799204125978451362978273611023126335297960408269828352453037355194809559899207234970637211231817016325038070235859870062306513536110529864172899602963653825937761995412395732481194255852341442360434666058234620318249652189218075593947299536114004031749131350956220669097250213325800544710500896697175083708159189512328576346390098416238259911568909567491806532995514100665693955718913775514986145457860919421347468360820826284924869845178515032617751653198284817511933848888749031302649065027984072362909529885154400001867372171667673987005380602309412878175207041070780085187873524360941069600133288593683998077865637881163106545601192654027306658070644150697562286956187349967134749572339229897639891089739199854166949717344235089944394259308039671659540074908441740531200012126843398848886831120544437558990082522761824250136682126505793778783211791157549141901298500024020771347498929603698479247752052642819734706990009227687957508460523428679245254367497054846795190377183873257658901052685226247729434173192430076008060606029349098967682368233990247076402311597455656267817808348043795879847169049079454442388252239075678943845683879996575882655713876580413220649373875490832735824385530254748114729418405704881015555532165869353543430985469801695410323911700219252405671475163966288178934545201807307370682405081136629512758374278845417979310011081484303870393781426114625840679950875681866677225520695704115134285090222479106273839824949904456114717030192518691003743300367667915602168091596617291412932617492813353712857719840940540350264813417112437642836055926085312589911040037376509018394472686650254170813826085554685456353101408032113730191938743347202234457933774470279941818990899031071541641744361187450076903265656541065332343430924498249657700768081984453332010880520017878857215327224603553455452979508409267741110878222143822724115887930278283737285445331266555888549037350874990733618929477173371192381642931929994747620933375359373048559386855908182342298539872739201666665361441445684472284833894633268497775620245331282786807686030751579308010201946191836038781303112791638098618422318020664752666734291700424170978442481654663016864968476214646584244071006644350315891113708296753186273112600670176884610458443591411705437482866409353753114483028825342144624669054504334926723341144589961886127660900945834155211533869164526531315185214648959246542120335178213655621719213884401586103599417248049774106312282144509651826950537607751311456463163565430047664958569708941067605557212512857155756346714645334586946421756228154847793336914054105897101110766068923920958288041655298906414162925051839017954514692597549214556753621549645221554462221670272697575492604514681567027714071909237329680772008102699109120148840800382731282772952452778924716171971025264274251250659585838218731178047934578766456069522947546162489836954955145881848636169832295744023456143823938662378557362589300363990345487007888641986512772662242081183835991752048746224490025281944560234757231000117916754811017568106892995456912447325929087940844248172008229162579539093511358867641841641251575285518074805603921707428068354996776338780918293845285941991266119447054025689701520657526058388993393269307509326278333775709417909639010075505706316529819211739294790998034660511048770744858297073388605302930011430518662380963833401338636517267679381976059511056044403117966220308334013983347396635171139828708734726352260483968865442029073379575638495725889359231855824616874882776554119922930760016556639228579301444844252025950512714302267892945511349143194626091263709228107145796590268937777929063258816053423780184342406019704637208461634606348467108026144450903337793477033720896315426713019127311178477935733220122519352133255138682103790698402840407132933385938053697427618468677194406325231093760063798212260353540886791412418096690451384296661368305263587343647701209615074905190986755251570323766392511855067215033134585057137530996586274236033652578383279847675039921651035609483091353712634897345398108766518616656323660603208436044897106101614466532451739075106115259198949916826912884927413277901854805451414032613960802713657131836997410095472674072147038963932614649434161209634787531339544551861818299026723796476955828920422012127032198669151733740296782126600942977549123487023135953920885782720698574634084009325034550135162652296467118700023809305112514491009255645370929619942209170124597282808815895972036063998096978189102014004420073303062354096367328798246798996904159132789289429695058472679466570521703498680183995936148787749276142141114939905431775674067861395422165735677305716425243603544064999914109768826918459814843889588970950504839582448117671870763433592192904311727107741451147046878041139677091781658887366384114572334909972780902437300450833705351874831468684460448145695412288182221275241996108127531992434360444486672125418984300569381650359967997956124200657010758714569547266585542370132609979150017042182316766447658030459573995783755453701070261074911168375797008828737556436786573205579027075714206238008917938390943725713968380001005740004918225041041438245417550056907725104857903862746113583305338292618743230445544770563104834224699263035692994348851497744457741110172600747999327576118139072730296694629788875120617913897971017066868617967870177139062687862575729085759612996248981381470945437452867223134170417726503303986796624748490579800497268059366786019910752710036748954673656546274158674967309878979831067058893669968160695350455944064632174970186243121263468997781177340858028582311804168895402710692296517251288208995263764739791767196059293064449641530583955301045976806768332372506163973692464702576351286986044163220275851668185448748753944797836909943363069433131224675757504478771002956083356939950200085414910486374364141094637082648036752988660868938403086120864848385886078140640509210112116591961898365301902465020588629553366416945804349489081767968435292491536555955005337797648719095981917318131128518604418032548792994061209793448176091616196695351907730472412849644067117702386967370285592966925079203996227958000654433184087391868577179392121710394543114228143349851655727783867732205047618156041925422919123416302700434663732294596204492249526829444008625048975853087805897954310058883350419263566771155358183738157417961853492740099596205974074617101653894945215634631783650248350312398966801267699395571303866637564127341963885639484661412900247113141352167879070657680475834536992952993601579478624608655980227452310050617894202069446936531959920515471232871764888986675748932916921902011871224649615758437079782529847814385913671495009150527095125007829304659848295697599694409258917691149592740370121713589208375773019704368663941992905215052264843025907597982312183845722455206529486253037068712680803667816940537920437439180446676209256641040865393586167702647641410062863196497052162808206355435438230814036169949620866473163665734790019613350895677978237124730116136602468385113508032669369424689094769897349494551754574952403074889780896445452770846962632171293982757423743034661768019696435516448227028300301070819258181012003114372668931042948914233136095229488017777699407326899432268644939687198109337698689278876801200862842127077078504710817890132599590245106425515676741584677370935820509208730168926598580606536305984604258893907771092213958596308741389046190959685238778359217048550263013543070863739976236787643956915692687654209823008048082743366554373736665169917457863764748170076620120202384141385242214704199756929261672019951077131849149961720329251186226225540764432140180381472993748835860047179693072742382415511232869090579099263922160282336254938400833367135272841141706996740540593817982000039601201638981570252801553029476072849418788176869078649383381701409222600917496820805775435417946469309098508895684662480574640981543106635166378275623963185474411973235846323248990925848153033064525906356929027728148585549308361614937633842854206526479169909662264050199733728952293031396697294814776109642287658672970997075887368739961942591056103823064976956675456562866970283804191249580964252077995877826515906340811593622471885198402549494697444435070486262890414010251752625340291920647815100236086914038924269955404284814642161593417439311217103350653411545695337561737873807993375935505373072029012290317762866396888709823695603550250687887127940909199286537724002014742480631551818137606052197735005629246309304483668275291915604793129826585539542278472407026496228163234074208230944806610058326130897502606692909546218837530217421295751512243015907988320467732413826987505957240530655738306569829489961399474549933931018713518080555764967724237638843983797844452042031127868262699697743577259834229731284995723942897804480716470147824830651903302361277935663735638733269488862424505305389894968941279151529365739174452442986385749706221992612220964480920375407450516170655329686452371547514360388846925749499295652806531086122061634561113536730531484589841864746956907188751757907752557257023396575282319228183684073044150461570939711111972782604303419184394618205784128637619742004449629322861485884641002900463693807489212781402572996815425491597548737104550561860790326717691800825316531499910368649944007627499774899741481055000879746037136941097739179960499908649270345765323099397870537478725437515638897610809428892268430944814867757279955532188201437033994061107341063714972278289358602543578166836678600384502959846483876254925225555207918735731732018125933962628194204961451641975978680431135048163476514409459587295144438391910781550648134371011946493094263617864422150535489064428882570124329773321671436847303726372555733612990560933851975787657791748400928231029020425728066883331578832643311595476542580968396186183802463756600790073978612212772299220593265414874621694450750261930466177203939335498210660115064058684523277980326886771669736951878187143884668655419361359347424247551100594679938468646810080566889170776673031206671236197703440161814341936429683471468321764658945774961726798528940365921914517039629277095445128762219482208331503395096508324275951153465690377268894772648157157923869868323622158511595647292433862344498121504846486120831429234355883399234049526354307035926765458833700641329289188584196060680159763825729204087975414475435819756011794581197317716976901477739951434255185292665286861948268838027581411021597479595755827082301334640718749987256516221364278473166334616131248570386737603486448463799812309202527529835774691909758848667947333353817737499484064508152761926385915512310305109701265704030335117437403407786094680687811700463835196982206689659438535933384437279881348318984697999683842491594676358187875488274691985097215537087213787814231105895793708774648575935565234369808112414362414967176374574811456967409053832234193336008385873973303153719327539595518035463193646060080799802045176034082513574984117103490925516329179908963363936653974024994662950761715785501095247562781512864414381035935153522156086127132285626003879466402850066916343976114692699536331274558045853411266519380725421249724772951255950801347796789684944209950900432618179597368452831540010201670942376893832568533612710204772348842373673024438629024670451453486872894602484632974196677826987856654423979634127802727006778733307318554271335930023517210696904761333260465186835004615364598791816610707665611976936085318731951925411527860098010968002796724693553142621214687688524198820460791296795194278674470654119480131823409146876893728713180753137901467525941859465762779143045571021776229611065502383224419144060459588959526698406015942700514221258586801316118561612882659796696144925095422484291424200601578663559801064594614618505531607022024054151718485548328814190115545407402760015802828322767516812168259312827060822209425321968785527676825383566177028065632566576223575190181275171153605316027331611007467619574425844385322633490616790387658630294537796754907844326669743023786338592636618576560303071034645590607138956812399776361083413739659366730161197689007107253227247082777840797865599068036435572753379449861955028652555359465911835076495555737135917913625476163480661017382885330707889384579721030761548552366352629630503714276748701992634211480538299298653380711091908339455564601375921373097296917124855872219859447405692960718781996588889229939848380261902109796707408919274322512642279303006321941671214947309749672539747090196461377539312969527338466358791194519416271595112728749288353795084235102616572949110359408955899119023624878805205432553189152980772456758133777027023084117424813248679778483415981518713726614103939970415866833714448675786262364789692337203424528682318967159464799987107145842494200399763685192759429511626081455930095011063171488490765032697512453291350903991600129536695999285816120514927509126246670883257198364312029990102025053735779353563925720333138426454801154050230878422901901053780264513665804523093366274504514247316546315292324071924884493179656832874217135504164258819180978599949990874184550856434980376645008064575429102018605046585774057054543155514849085619345186856430866531793610331211679226313151885678973522818641049581942584177035570761938777729260971822401727166901758730752914891274428604754922961126901783458258449146607459280665166996276394501102464327022770960796936081159796833910516480525011274597848915053368033798010882429705293496712542551983939517705275618998024983492743339511142882565210698460988691614948446334218793386064796033816121489521172961533706081736560402512356615215347086652970685865317531225557127162611022173079374610342643038827159157216029385535994227273199314833316188567663076381067835763164110046873705630129149650639863081797367646306891054669917258126896589322671279820899886218169956489126814732767896865852893438661823457867774170770055002524005861171146621165178026337590080812683058509614756411395280690937499816382328285784435185788581265800862298267680554589541584002922838400945990380392981917440391001502069163066375438040632030872396353389309565383327075549884470599158868968122600116325941262194883571897246608971228404620096202174386401741193885251628231908191897787930991414994668223156982138334688109317923856095164284740246222327196476158272563242859185231866160323193975217028179008142835805991004254621257590625879025509055739203694380504094240298023998015262185888771335583753342736719956182994057186917367033951852179165519146948201761402217389299929219514961933856073655990392621698296435210662967434173722225441946374373248304087948838775109415599562884959442603123015367073539557973797919506087913669836670911800714656077176748555412595605461851519295313507647667792100911065819192206862327397151610232218497091509853247221549802119900608830191537578240770281052601611055875194522170833592344108278087947108052553365406425449958871055139991553763759979295746265067186865919612313542315718851669738081665531238116546835230532645615906264190729793219150809471887481503428870889368131394143837978276262714618878932586943689387680232801410217094546924517705013382405317925119607476993070650394270516664722462784241413883989454831454086402909388947359568326303841466015486708212471856127207250202835921956256155919255703575129917638093299719987360360997902891853964842679336296881081915890509353112342581313431088161856235988472240239267035882635683408074785489615453236787121221573825820058020994079244650272748678074417760725670910466966030846008695502692899638419090897684922742980001193944226044481158132883659089971863187524961515238317175878899623233676774899608426948538241637006644772894208306621123920070302738946289915406219549354412355843540818664555505634316798548805929367049835517072983770129190062087915563336783616541861036701462210177032951631385177825405801804439919069092403279665377638878921881895581090443242780383541211612391908217717483373921541389082342694693911684717455820255201520981228210798528659481290448149402834726213054198582797761756272656806402617933048359436244222961582963993732986443444201023029507938978287370030756384838112732926522233368864852238305579551101477721759549198642737216533299447542243619683705783908221474341469505757501377695075078665501853486418049324286332094543894065363250733942813229397979897784733717979241471418402958899626452874551800598438852139872213112318446982538476395957711013785621892973876121616330608825393062475900406761532297241687044692407547350440755836788078237140962554627093660581727893517093726742837900391975798610099122240875468213873818925288915938343744209308637401898612137045167977078571358255926576971435440501974466145582505592143973063399194611728418913298048516531267797347101284499993600000319843285107135466289673972147828107930622673373650450652912407576050013228900919904270956428540378263836962986235815288115595641633593286457090858889544877275114206535488459393347287361145580288807941989253348836563095734914380376821718617508087511465730844423578909237166198522625168640261387532319752499600644061324136237179964319429256911511768587227285095539283094852210621342268945249936049704382206558617434727505806616804377567362527326198632956178010844168685540759516670708490326888440291529015627486402785018153018269736286445623843844736977403141652172610108068867778746583252446683682459220230345913711652228684884328636886768642299332019786481819477702311815028306849079209644036352763326262231478516138012228076962400370571957511228608574851953226005592176805177523436754758958133891668233198531257270590823541203349851542872513572188376143773579335573629051898552738029657724887364556660685747600151926206300732641173884823620169746196323474532004424238243036305089219507412828830797904079596125676998076379003191306808613303043446859506287860196397703276110059715990073709032746028345332699298008574841284501889983360722040445991083402974206453272509390484487283043293646129816598557383185943255620859173752739857152400882534307026431136426408876050060807695115655487038576301052282073287234140655844394485407820837380913241792343905688288088624839279595517174995016461605242327897341767710830073799009479155257422346847969877814450119700978724011557990376611201820945045524954117278241725552521361098818835808226768665447240649934258242953320093997973340019673112298430861558245992133527569791939200158580858288718823893134429281938790588139180806842239129122633378420798975358291235142428781124181115019024172712532439835359884820367827840151088937095222208991173638209245336029851658622529128631265118062342217616186905192323272307904142287219902334064468522537543509335010649610571264522828759556868887738601986132093828841364631654835370123521696974191070529035815931178821635823415736774898671895884898719658801932453162610565039518397703744992032970002983877723955586700862923096697587674281016751189566890368298940552996818428839526939840579666568643717829078586960200070748545991020078492585539023296496083102463452771270605340197148614372619444048866677984779594158686168801122879978282139483246432670269586375082494651646388198884367455873129576731220777432552238987405026960846313968520540517483849187459660686116197085402131366267114217013125063920898765894874662265181384865827853602636652435125363838964377851437116519216204529354026501020022513306825551602183095957847089215339622779016876709488927150556290250260734766326122440776113594524198884119228164497445746729871779478030910083988914531195354165049691734899930042661357140574770088580176838003713746860750520048860127353424519047959651310995374158795773395629901807445144559933603807161942787196812766573757504769196910002312079386880558880032024070248470626522722118883878966991115922524632700396331928075071809745239913129856752299411596781453484791492410262306518164574842812832373092988597344812593254620259871012315125087246105885025144052702436063029985845232059805305042489869042569872255124494518623337181597286773238055666970230253932420646841652871866614573063234477478405224325654822048193267004125939090844183389393493205292169670536532271937202567898259107663643655286442980566819761491810601160957781606099357908686405617919552640830039943798816902067122103954575224513895268686608474642154800917857636221599395020524229342029843866994677617978013486907438771209634173454822164328676627596762428611157805437995051521161946068394910932354957244036774404021891462129671968514204481116416303352613980034199202165115306779104599086419845475046441040919888452552949121585348734769806005767450551137199713347128201069963603410377597323356672522516719750415364914260918367641743487758993202710672329824760452989355942816741620166608185513757214292445297176319452824201574568940174496617044994319157991841374409044703396027949002134495421382388561567229754600685359228730968164185971983911962698313837214500292204559545137024503440597949579473463646636928130266994367025300480469839394995676997391968219128652513470567370933916086866281313355280691283382773490275172823619653262758747832477810006189040754577064836744756163514431762910025057352254384861572916525376267757577941338779642487183637935196126562372037269104620549441316372922763204987190545083814328715007149509436709855631040467131322764233079129520547431411381722322761450828779019797050941819307149256021383646222577124313365197349638507447527140287257436138135767262514578138348219373469854386462290038220000609060447316156289913008694949749619483814956681091142139313890382226685245132896964653042090041734345406857873333343381420473691450459518182215933828578346819000172582559063649800388971099823821261467742364103460678945601616140464788556403994127215535639417926742167453788624355629331696503330682806208017700119456325306509917965057251415556777313217365211466204767071451277942956502398235612411110753285086873676792504413701504720620697799103511398319543448158810968342586689121958604147430000845240795689621781860965724278447471717521125224706832746324417486276077726264002269916431765879867257617436791670995578100059307913729957223690810178431064804571353085271699347608167619207571188990599325482553694284399749459873488931317931459786909795281556982185193032254635573677682051426018291438526692987497817776840024482583351030349499384852646794963999501367331413168878994251864709771087776434307456683584631117265362764838931681207512655521728837455867470650602156705609247488977191431532480293206065672043837068427608768819595463676221504895652822286298723467361926699664522381121815371563155404610009159543185442669856475030138809049256883028563862507649822752643875776710348796239020307875650196769281584497534297743505266133131786777167057627712645904098915047361403264539262096712733929640519403171672990591889750226556169235695682820104343531123516730674467721708370252647049013960292235449995636426906609543104876596420424786008930921081061002443956622523861093815413853405819887453321202607869233334162316630787695628043337124611950075652281191958433139039679917008549695413119487372826810197996657177249010128599035074449775936776803484824714338189209055489724866486420542332146847303164788406112495348536138984386830095684816110023444006287988991077900644505407516053340669980766088819831406292453845015807835698617184379719045288643702088751362837431293990254128611077030641934984432928263051574337062330319969207233211641374799947772155660630253707768638660868673961050735749533062181976418070070837088124507029751014833106534852832531467260970056924546911915052542466180711526010987039210006862380569725170563224191459335942039072386149465772929524026270495182109905743651393163891976409246312088948534973709796928797887511495567989387701034711890104896860248648408746117232126280413284235163644085277782150041549193649112091467103691963041753256341460727974502493436895573480221212260854392820946844685944648869590189585589395772973116816750968755927264476263408663927299797494105316803070942483257398838513253504088340966958480110366833907738994539285192385362300178776226274908680804275050106307063359652497025900202954751272508216448057341624257214784458857201833130549838490276736563782394738017347169964175767513773415569548650356935557612607546335439598786657633883484326279044818832546527814711497738188793067144868496350703503242394959067567390001612595615960623361605267587960676112401055289453752883539633551263222784052758229355364854307716116959764244931493123603427769742908188727936894249597306887269790102546724063557417361975982272461183216047019613198584626467714090545813872648516378867919331546990504358335074161585119173648320728574530448955543626272198371595797434928957730058179845456643156069662350873265261179610760043598353774391708061012169311305076836760053561405125862922705322291944119708241166592370388836516282675643619960203345267202755172256274000149473684302363176568445390386613313877162161244025266179682137571750539269672904359168648514367450625334665325588865767752363468601337312769342957641378804918007458968009753423205747880720939277748204419740096257725745176777766170739927056677011313607348784530892804373390102720484436613371024903120043176969889244772630338487400930400562262401092293716914353911822938279454292582467589581988885683018856159765709852360442637864722187212886540283109930631035776510058771283063990659058411238921384844969524672998267470604783851193786394855395850228864041186303399338919054550059381966600396350877718882575979376824261957410708601532861469719677555535817962852205144824638299722438378195772276357202462561001170622346702617117331116516623449852290061745761530776503767095396305418155673143864830455248034128253794534255450741755326719397161327276583140638984874448205905167419042219136766579939229180531385952668076718198718228681134337160131751325766551854635831677592823940363801320805209583991752860483431811529540445382756030216073580192157212722278238229230512403638314709599748628463767377286542681573585050502724663502670905455606391424652967877885520927433124712827935467900967934041110944281679472298278194436526386899466013869696320919741100743831296483052832429189257016493300635865501699723852062359418268751848739466570470066823815859170087607656023320805256912638941190524087777129441300941880812690869074138793998776293058999167681313271284854228163488827546496316947767331572985698048170392431885925970589596769787206786564220426024862633909210687932274419380719943747198993481275025047088982408506567484297686720520850984647697140311140422342743535133011535203815238378734748446134302468465384075369509706522199276366856509655248007797978427252656557112650230870050291958589207910361362514875079574424595972988906918648126973579724295915036402442466569389701148723110399556218184324989519383121822319296871842637624338580070080787757534245980591731328965797701040139677435319195720042441272792444056036245976731975028238350392399868162170539690601704864253101136080680618188748345887463926158560584687739227133244747916471683188458527741459324467319863718945967089283523893870985997456842085707005436000387459514001291755584456507861427996311341646929461343037996069391707779680338919197200322883452044862430707107958438544034221303667040243681060131508448996421269064207209312903684040187886278034574701382187523708425921424195739596537471045171573174693240212404263357089145427078801464380592312477528799995364654240191657784491999569361221633487533518919008934756440129459973429678183941222055994458947898861113197173533058448625603577864679779251798519984206211924251270089019600750651511848846235973947375868960132819240139867927578480342581134840708275697384065319769840402720300239384890485729920920220485056742201675150489066105753827393765539569836534408014140097260429517253200636450724235992087864668545387914593386191834952701543155916682723375033359035783670297664736331678255115310355235137370608229619567673591613173974238909097083108599408238034684507124996998552534702660045691130380175497414741862584382228686553633042408148648415197495143378222317771628966621534863100341047895243927843427617434485504486441118070789742383286258620579916947657939359129538292378232853460658545013810506845421791520923944798125300890936404941715984681958475370069719326910612250356919033463425428043259146368287355150610868323421188026940201380201186519246016158637676637061972350313984975424730644320700757691642863181984675495172591063535849978999900321674875990715879708424899608501566822667998588571191901708443456500670061772435244437199455456697733938692403372349111654895000631759771001653129669332314544695900097787996544950302111378722705560881045425789173127175320661587061276445190182721853848486751076254816168565058225969275054029138308669416350369653118208679702025622573542637990904571977708283035079787394661413357679546690406873658817765204509132497154989529008356729741979402306267748692246700356151909100138812208991628430426268743788659654161883461425521989141409444691758205034751286126424523141870850444740198074198795620904148868662728537349567862238894438029145685204238112034489978725211201044240390072825363900641470549486593776043446221463842139564781398291375795603079822525385359971882214216509697904354009926985021685319557640495293623747526750179671180856429985773081667413332085423024231662428413565081805467621400779150187177986727033950339704416696401040442568822282359290588012581789518708386552581049117424007210699229038301442769043738092271504000550386083007549560610001926471423145687240615240222396412486131344266379176653039812578030400579378269491668066561854119506840848066049651594281686996222403841004297309852178908748025289937291130584927665153525121967760423780956667925724124585281071253173262066191158029378554469265241132846676373158382564577796746692340000790819919945669768195043687942899424600482388058226140524197523910873296803333593618444117393045962925175895203445735084760664109959526933160148478700940916587207621907278543305276199987348740013416474671392235258160082344612692807967853613119909633665604717902226236104116067252670543404724408317872863329004205807732508757550624427906552520758064152952762434426879365024641520902922891077003537446296870747382864858872622306605246331272197569143641883420695934810936304007961452108894049218115146438779778516062438079306030801172288801984457698313090595252441434540679171311796516374879365887770185748502076670695329988303132413543935100922939018192687762011636856646819151272701228370872603719809187757764475853071965902341197509202812613193740921691781268736582767908429550472244243739733483733409210269467784077832926161304926555626472923022831749779708351593548155367393222952313344945087624671747027235753163747839573780445047399656474595252705703447774636597439393585864915251811127217099780519825805222639402100685570314057076651345232262539695383227816484395648239112889549217935709623483708462869278017432579996961201307567991706214638341634667678897171981147069393511627212422796862383386079092774446786370052980285919557638776337404541680674060373766877003175197911273489984275428677249243154713257329831524776452413740715477023509591750757733431762530138971633930600249864293381475039246765138368882876457433245332743289112616263802305868371410409055079272903445087078135317660846762598594301309613005701839975864466388367481990336359699992622376443718551930795336803209885928760754463452849343672865230509554627367501927083246760362005748644929929824510828077810729435783983995514052529515282501873698651964091772520556537655429827729398635784969425223382966013038231014941942816620375909111587101835962129859349911906584660708292485562545774286734994023155825684652779228999063400429637257485501728388413207291747620574833001884758002625533006934524339703168580656211753905778370922485575627818083979169719737112575714396492845584324438146675997362709292845720765313638246697205042758886440264838427579433067465427889449527630963758639030976108843707735870611919444854656355363658632293857742276846114125122500479435790138043593843459402199924631029335828618771893691062494378040335827784267791178179383967363443398433967337076028259648870404683698629487311815636205045505937866703209967639024269535489763672874536455848715655760417681648415518915305587341627988583377009368162608819807511883511221709201335839882797936343348018731417557430945792961597745054162647849957873854975096033773063410998600723775679058159993585278395190753601166956667030914860375381409462764328008414756245706922081429772192890598606684417428880150409917848049805236997596758542899097681651188354502218368294092022931117467167542843175112256569468111822029746068986632176739949872887135527565059758286289692245509190218430811487543458450094660331316792615496272794924486372293724084703782684540458966521325651818947336932892371024237265089310843121392857626200346329905186212274771670882462988889743401591954600677391029710800668903519294871495767897066892263854616724339917362542672918330500509463215467699171772370246461606542375891939679342756736503075510900786574996892381992693005698053576772715147083963367226799676907792867665647850695308603645955815247198961738736297536396185890778823866526763080863049051994925182072601822028223716499545406767885460456760488530390483532949252586457794447139919948373829640544697553282768234890303128842804666120711969072090305750702023904721870705986506090766253660940923381066682188394320792529230455819739777387938158428087019106658593223571038698605234024852844547003038211316830746169984536979657509139552423535565172739657785088776378530396934744950125278520880437647831085079015718115737760779140016462052266924636402582967850419358555969563482008308594959632074195045548100439112910197693333382524831787649298829406602729121769636304268119858363538723404050944811722764825807687509436510506146551356693167798998036892674077803783680803016977760775456155177329466105222511011386483783633979825340165140341090871182323022746763114789729609340508116543836725084946824902027061454494676840644264115667279023632603870012730726254674375778820527701007096379233192507373878112245064365581306654393196471231939827405792568926180204342374187690914764851140600800580400960139863191848037027065919734300678177172396916912435225655920521579445574205022223629577500514667490991049728644675001440317563641900566148275554679283131837263880647548820554108802457149695352105908985130659305906596558641816034205380989627907245709881591038810655540002061902109261949633278257184448190509107743667597964100750123015719730475978324196865272946985978627321568598060800508439433458425319599367314242616612708894976967581958792199743872549427827090090013388426087331467243263364040852098898199196560087725963978605199339284226840518345795454978257957077294780537632889321823682340052916600678543498765589929948673688399300436442067051976159072988768873478656653548885562744743481367461900394360938756562181947754875446278494309082639294971145179466489964354446755020240067312129679832076744614461013960632788424446199766728819875896460561331539599316023884156143782444020386899319852178768175661747792485302289074167897257352184205122240788288548162148793925981622890107959958098575589316455442063841626353350118353162841012565110404225279981945160085289868291471510000454177234673458255509125966166545042073304137661729612530547460363736604083879855129112298378813223941745451472065526552129793670390507879455514070064266017352904249597025708788374373471247131231295027729764308307423657009995847448688725166291464794302906430540959622263624601704467949697478796452076715284778525984506206111801717435688640513481836362822817400152839755985010222103912352990167537997818723173247302294295288835273119198671201491892837922990078789551917850516254281658354765065795157399194831981511784152163444477914568158878389030316872795731516567708810693433915322351340720031316893253555532569812035127364574451009885786923761652062386051186460571680771698546613004797193139191160789944185587061404586692242325157318454169371188140911334441837134484189018623517713224423908962655987663268347294133775188556733384676695658061732284254460588867579394471764113208981718432246552839827669966589504142089011967048176428884410613618312407464962321903973159427422188282923201295729911354109612283245544956105038757835539592060218963050531498346911015546379739985869185809585407103047528454819777958851325020260156054032620310474522149779868458928087756730013305562397596138845991209091457959152518931072330453819217783411406414141137928235759903677344144975000350380068853125374959035808601550969613990908976881937440935453440312955335600615849182565903427907551291077392550532176677842382400694915820470343184391393531305730078907783017885701008893583498661388547390751987599476532631252445915840282576758945537286138596122800105867215463952231184671787094802932698281238582127372026273296234341898208881460024072711508994767541133948307100130803241487956444626450324988266977561019289432306748511917196479552043244857934363373246298587102827426036592349214919499995528911509398939055224360114829778215321823031147645091604863633799373357616900678172194921621665704165024616646722388573659519353628797865989871609606562028011876849136603562597733878214114767536934155812187729920943159378735307510699179393025573006083745975293160217886437346114679040842325683469163194102323231360677734740204775699979369275661967763672319976285878044718673392735026721789591012651404557441303824001863875904611539969164520868627303636854494145893743666184638341873576312501135271386016215713588380595325810862661050152003923639029216479684703000957227243904953141009879096442426378749038353354124698381526962156363845285976923994136152490843197388615437876643516005776642704949426542148248409465767602053836079618908704751182856785767318880506868139726668756857116331464112000600945987071141427680229902339155335197753654520327037873711882534742436845645935981319224318543880482641563926659491104833232382931638511490279442727362240893549814933681300508544183457077245985809999537811693549568929362618230354838165653642188273000774485033094095719865224478835307390626227353914638879060861822520207345774293026763880203007683004233875570924201300170822808231922467129508237079688354538715183822136346936809411786973102232430857389552359191150270758633309102515902312911957637937459032796885621184431039705473836685290189768916881705867059251928678749359950760593360378149184300654633983157787971448742974214065991673514605327830689454060110995482181331558615315153842714703540741316091835196979360042518110589991800597006780962802149757038781260653218045304488938368784547354239379571937145241115054597809727926776343802437233532632436231106198134041537809532750167141490645874946305979367574740460217782660310175438599324450108093446057512221528089691311110304771781604567358977381905437075103637740273968820532370847177436161485736201792803116306761059934260166395152063302851326446743667735042930224117314533376881767423453536295565634059645226990977099935325333130403343750141123422556603071324713537881733838779093841593293553505122880312948775165499233649000878911789534900259437823565417198597282307596971706931564837340473965094558036872338477906785806336435351427958881995938570023565632308096684082072088525611560579952256410191097158483320398843530987469043424655990633533683443967216092963313495067358729972312327491345458157102025581056510600818735812568214012199229387349438483756448326290708596680060459662021434888523732731983957526749467836249312622225807735465871973243000836643154938693891011250852623587321087007529450217521775284311263660736765575636899614609869250254877368225970383615445621998476591301377941107766133382649465090802630648070320576558332481348782817190115444334110593646146006333765866038770404259609541533619378054816453451381998021030877471912806889423310765880877693307463030164679696801110877121403283543468114549042690741663885402708660009770240895032839080714613478508958702102321963027951953387124595413364100927236458462287484233124754999944412806460035633544221418406683958563911371831701329491698155775913214897101451361561551328816082953489602756675600356070903753162328891542392597908474942427473467643889821557075989541797764478974211100678067330960184264326066748994641568982875941921884647783144776668239025486175361660631892364754708782561225248466076760083198767481477853700647688654507676331222431571522342260813120395565730528593454426128374708087619465874876405036510074845952610201757670626641174913533841847753475257659422980077449098486005737245891548359347697926374870406232771998428608618223477970526161842991703836460831190991281080851944413266588534112390495041652475462676894693775158849852428417404211293769500551804807643768595718901184001349308522316811847474746553952669556128707095665072228866432149059805622083216005618552550116489421801680324210239857510129731443635623738574448848573192737934160477915562329518224771122708158609408354912090203975048760950010735173051658709886994839186828331467615358368312254373913718195175456054570462238677564767625197062123851402762838642781846984070509724498427375295792685899756822584084565692076211149627143347456267732412583516856649511166761306171982864597376458522555916701900832632461630332768551097700259085297140214440019000906956958991495314167111616741347189394514455259635426494232582401691568735619930563501080851424580080692212741808648646350721738300264018381959808858175817634427487495040729112103353465632688260625591465997704463101384506297290056860529329500683363645161455041713914404796567491774519448609882838819570736945963394561734587030649879560931252099422631264844341947320050214938972647477142331121036924485992816446353945494916833207425190006104419831715373489075715972421034961209361219919278875512329916208006602281515643364253284977330168058124683237355207533018780559146807755226507485992059944397763042149506214829658692928461407024924077254962457118367375874032676823212146700260681577049759451110840052415806094104830907081895638506658781825737041132916206515899416798736097383337629103835442367726534611425363576748989761497216717678559645672584615822459054555464448211967845490869441857732570564942625548850991908549079524165634995494672074515533068154290171457571836376437759344787871447644448521388721288824547509464183870507634281711541622420471503507852190434160640694117188497232274828671342138546799418202246138432909509461271722038823849610007510708639649565062253043778721655814261119536897824807523650580141821352690148998328927657941950323033739905484657277232725842636137580847822114318044390798278821657199513397409707006007169750162776195478392303354342528592839045246398989480438067841428866593200903407691862712252173992215497256541033732156588674618534840690987451799752792469271516188731964697531925210663441382610244207586951761096606202352993590012897009735641523738717104247430932482171162567779714678081829022511160963819249694609225539616454627094977178449497536784923163233212497529260953397112592460815314058747085387551156727101841581088334794760523624748448881373000151994100155356134875583898379340611343284346618237183355263539839900669369678695698290244574444096220461446177073020388085314805979151808778199284603801224298791652351034552488050210552886018478412956981440244851372895438696200343002894639304573065903218504408915630755648052671495994976501799724890282905281616636881254220320566178587600057816873916741178037398314031050650026128212747270089758139999652418721132741309216815313094255574212048919383148364940844094995022783179047965840559537059045437445827480978567014196896382731676302826338003421263337821869357763003813724479862387565662747516981058355085457238432241108520763773970284367145864933460415092934157421658645448649443562606090007493504733502647829990589585007465131041620392861995596820821396108077744387593791651869853890066270503272932081493719807532191106653249400464134185222848656267588661097794806329617331280222608641823947970309263319495906010213762326534729752627446384021054141191537829296937558306611822211792819717538705405870935498079096233126810988685926443162572680021576672578205621312072829105102819715469621870310678398073966075689690344247283216060767384189960979140148304522193410537363348732522317095068227498331049782962900586513210748562107365166802858019727873131816050736265620592504662160964451181250520022827224645191272634855281012508110557332067012119483770784237620789792841791576184885946421924482039343191183637049377771429451887928186685447169398772022362828809113926104167927200987038381048997856942691473516116903750448924714629058871706771157870547978971389878538137892401642148171697652183962884678295114059453025480179081231451957564988196364405129203696381133383077861880615604366124726257341998459909707806049849298161399153497561104791783304474212868108625974104317339737197439517942577554043374821910617002158567255559429009233502313756517847071862450462539898175546105690189372539631565569098085936656875220802338799633119831717397849473115805761909336119568430249850209208668256622721065076011240129014922542496515689732767562716115851750731899092046516514396671506151474249168774429931609815989889598474048196726732410430781856981393882009799131537245533423385948830357989228618129466139472144711214906972309832793273138595414595137962994228024756078006046988222921524634027296737089934694772128910991423522082791536352733891003812180775495354439564900968152390763113447177014567095638088314643706751282194904386308278795796071336409067917638481059221572162283629559533976523131402362412068436893825152939704547371958076616164248771526751916828715327887512119605977157449626248406057773672377023045009109359103840205437525402561068670192239454899158903438182057736658170223159482865310315088466942971232411296868057715890834436234136086124657372031813218089070691914501653343963920706012131777137752392609772020878202506041185252728381833080685186731247391224442009441507949636338547600390380191027544340372354978256267179195062504754071097858029032504464057302653393244829333208076304208970808263716853969146054706983805860590564063042774701709471411498298082085176345739250383119213738113735515015865319547577577953250068802174044798007586996608780334409080167760522865307304724670352190464616284732843923614767285868563310625056295833926497521544837589883743365054391278144805653273734757483285071591767749073005142526386607214602082193221680817251608265983891707603789349584561043967139861846649121762050374448422581263568070055501968401254439652557067632613602828915927158019185330783844293552883437368821633464228491278075147468561114229855919966281533009758988368465433516651409101009090731083856420829297545624587518914042133522449509975265081335338479180303015831500660218996019843186627349006750185087667468564464307506506232830603050289737861467425901117604333250818752617315178156830689813186124624572794400890726870632048542829481275113484533238687959073475405505090724475678878215291322688789180290628322650644295127841264362153376931094464136504799667977011304686160392310915044296730588662871862929424340391789709298973964154189086243367747139479715345648286990346568326030085200805854616568704655039622386436084086106500582424860761056209741985996836198614484121529778815978356167439335756265814471831882014955174426738203825985484082784652714828220794663244033467959526296672761810435907965145006507994886121055189499452178971726907503444097235041779180072970417068994417085463579221366631866335275807612821934929680520138032340106631377408505333441426322844390873526739673915801398004505785738807652606222428483279475494679749394932000399938245008932272998770774078720408622220395938059915779539591944219988039112416224793053094498720601599118934936962281545129301367801501639371886617183839219290435286073938225689158197803217533195550830454305854686115791376273052921897071989184563326879497087732060008526221844695264537488873732938365586985866903417108134735600421440641593307550001802018626155300236931107887957501849836859337785818074698551742084844269589147284651679894641906048110282622629248637977943016326358696414640503166461756046798392961695883282673372434860876165706186759490710211270227341598145087548957314115292870423981784048996422271533348108870045256540764019954689384365021334113495320837617881425711280389485231316345120775685969217534843269518355777361612157847249951908904161773783433352974394787011010679384677402995928890774975129423658536430826454550622004850343398666992481796031954411939672396919441720920425827259547546587239131830034988432304068013971451697620217293953771026936312109470141080418816689362478538164239143852844314079848047336006351807736628176286324579076770337160459025965263137245130554372625174021033323110224853495305564828906854652397360248409692718733278465135586553203198429332421814543792328803458308327172671025381808451865749236673013466594187526523577354061600287647742970964790014080655727100465218315969174329500490865221182140440247618956246837910535437405555088544041679899787575007503076736121455763884445907062635834323464550984427816243434514036165925333201414181333462779615349919542797380272735040621452372166581053031006166029751659415922743259110581741007481495103754703245220616971995505461094695854162053711586094690561083044245432401159184647933785232884384852793785005082383940229155381120440788405382779461412901428452438162281387271313334622576270074581337479006921242690279199506143964326581039130957351307467496876370890705630744671408169910000223290559429278898572309084000462518204456908363902631178889726301456360686183646451803985563490616018982542655933481561575476028561677998363446848962272008338989303703585570621667332049628403845384712229842953182353664018977214320236969140325403383086881814422110388220283400150077696377737699051033055128384666526856658012062431030074729318436809462505836958748182128099418545717432880743084837273607405476647484665926585561076217442981478710112158907312062262442800196025182019195982497936496082866695065476694681714598791182348994128531809667700706576075976812368466002678492776904844115338711675304497014682746541042191097114766453688104234709287354049576906522061145877394215279831359519571049776854308082500038784573925688790213944209094969940933647857296034731605539058439565877465251584281641492200251914175635930139192271300208163999680649952639475324921359152473585693307534210035241973128239851736321817390894533406359418526599502494692337348444561838212920726010556777935700679538495338459996766274030609518232296179604593392558792807032116679910041748459710545892426200931138936802285897108392806216062857111298471532864600635848221281955175811905076890106873729153307686781157109340299303298299056627701059975417397371277774791391891111010518071909667193520138186530780192565037093738595117034724655984854144212980701588825863969504177983424819663449076507933616240672751632314626723578905950091318862881318534875048200305837533595644439051143166005397380819452316237269724650546334409168430956140557090916918411126895897056048729112132909186990805553742227774039887469509551779690096763940799056840030443741107498676746111435379580121114841312109205809615277940607193829157544832129286934059923111689372568659876689102736553977512303146306032667767202328632192292415785462083322311848850226314856078528057200828289363228477810219844020634617592589054778422189687467602509008138098426013240459141453631919595748451629961778185444734762800060945264189251812278315701465015831521469527007274974409570234853890759638920841799686028317027346346608586813526360531027816806196728403706469380298557707440759133844882092037172691985590355110177085464302985699506780525664443769362453297855459168143880510282904613747338191279175357645614824116631063226545369192978112644820818816198258805272637769203374416632601383200046178761818617393137689798163146861100364859194473936976218999033687217538451939309224314151872349315286563326281311734364843216230140531916751226883869101411369437664701316900815281263033734753288607236676584880842648630257432119851953323568154499760964491660706943890862149815585389564754412575233704803006535422452764315360820496743675286953969320386888813564796191489500752208608465959216482435896121245484163322344527130994311931629435678684127084078595201037743662544392552729272857433245246312924326643909047477529663953373652540958356506797377813968312011398676584455110864879731129496030458660011366887522585329160552810022780308296445039605262997460096384438423354081373201736501432605104416409311139903107436777107869407372777742283380000585762218726174345828768032651565697523506716771696049797488296003888981601172248983402381352378462179439659988380998954953073406920455997708615031856126090425281139632749024061432708948982653094248613019000798247074167074755571495459013142232342328465279433779863907557269669136486985489474199568221258596943312012458415840727603110190027159349124862537326906754995705014889436864403300293039677536999422027968487257092640346950227970824423518817629224238256222416105729829943704945714546194526461981626619047197370161480332319315425382840849238098930943312886973672750064816633752292648553284259976622153865887363366942989991754061355212288477328760077539775661342053804779447254332514096677941169187270468163390701984030697899709879720790108424815269092356358114549680099801392308753874580339686902756237207034614404184564531594907296018061427480074756525540988512990836902776834783206957706175582882186365668917507535730347455465438813965216199758434862674330286718509319595750602651126346870521406370851496493456517040566653465455448406149285545490481640988606740466071725957303428688403360632718288133749549848427143361833599601010698396830924548114087707756896084094349669728283230424598875213694943713926431096611689445744091765354560492171619677306029374614684171521331028443141725634951349016923385794554372772295777458765038330929962320774728557181948642384323976000422391559020994998086748251878552019294347406455589332971632849274295093478900757028938654508375421806450255141259570101573481187899162955486806925326210745509077921539760674432725215274949892095039103676229711975848080931534122505149905440132831282641251775207060771676982817416060662633059480334815785064480582388917545059176808935861507933800593632022214251403597398383158124249536002184169445334352401227912822969548938706319744396675746360439366380872289367851798025183877079736201438012847948783835686607902024783383831135198044566702068972389684516893300860224988063073545149597070884958368660983087273814911935286786875163141676358203444707289775734765646728222162570844335104758316302252099708464559704600428662264626693487979803805765249602272032336612948360399224410169478776224585173751845512856761344362365006324577070054096849760723489650281460768517561471642147911464186873666054210461612894479010379261912395803950776735803854669454332200251889062291402376205028648033776519473322357228626252839811639210492224445704082774301470565020859791436165716199655640180854161768971431399385624496166522183404570466055765138170051664248399784996108238478373558854038841671862938085211794213500328555431403786692567243764349408832250967499095280188710724779359602793467842708871746546975259683804000905857665734925824740498125245262675882522881982779699282764862177824083448574868585093174838535372770096337277204101948224407094532531477572013424756712010836890467343417078062063592138059663353308753532347186684296941304089234772555866828493093282403370793854800066262177506127215407375963912217506696169501172387149026106140637155270908729070446225080157475827996061772241352345100973101191346733308060018027467362261088589964619431313813406909089010003325803912393837446541363923335790912145663531285132943101633400537801867451246426048078111722878310089162842284256466566589375258384406783444195134885975417243762402355458615001114008049715994808537946642639956731005621733107560717983400936199928712921844875946232288584581027316748629286230354288172245918359932221286163159367656095304691028262989538862222447783365930028819701092000624051869833137835994960118054016016609292782991310649160821237949889400236381767028996411506001056652645835285047297610023110741078066960599026731417566928412060793656762529231137218088612212859325980136968163952629472951349038323415904808363339337840381470650561339620958335884046680704907413640295288864187070783128798747922683521818564744030210827955790467902283978109243192136354695996721388144614572451506817064453337112254087420752789262686920223899229941094616247444086360534180180651279118808577279879735514701546680990048272287536425412193589788766024222574905059755365825823440836122137126430119664343912471883906294456428157709828079598594787222035740123448224041679287912059469936718596020081033131328307251499110500918696101684423760221750058726510003198377646383560157799183292874364052111482761808967546795975110624821825996347192795486480623857807953618001457544193196767509576675014382507126352342012059275923866124342907384858573032343863924584676900513304641083815883963105339844746299851412161907367053566528756120768880994301226607133752864688910967123603165378254840921342034144176852159649592759330368794586431312893761664022195300520838911751921058262539838691961580474787340675990999955109601476549993086330810494521916082522041251446210417836795147105187015703059934090452141760481041871480315579299739809818319945903753350197974565160150209562448823273369697119870628264222491899362966001439272977866059898079045006156515216297820410945920616453683751743953200367149576573461648535107826135795296355206552841235763495320698952893922701355969841979620628584350887076235891393640608729710067806314620545080423173712314239492356328958083760999115702917215855882065354420411345258664626059301341342861822706229413225716427110951513014048574305539950638215189772394815523259069778692864246261691072709961654013372130911203197618764772759907537533919181719572987263036833004299228347352840013540504844081153352352850204432306062040712311327656421932315860974600597283494186479292134832683829164433404768770975489586648788675362099698098388130639418363218685528429259152001274836085073572454342203083456976499922999489131116673590123378819867871276351301553022857599642049589696882065287100141743899509032117955948446748797525070408893877821446080074932583286191844489721693414404061521664457511226762988494576939503647691109951216087316088208874427186274755722392559297620932731857939821771597410618844530059833359224736146795734523939292373188979200855374699359594175965476433025060294485257888980599925137085904600388185039904234779984921929371068508458472283936048022506594158150509993505407346839022254755516772204897154468502512718223161631640847162262237033252245934923720206789504534558588227660664675400638672301594047965003897010803370502454126681601850805861412933036955644379535137139054123800958172176456618228788259181350177528155634321947907930965170115053351859094097501747269525289258781847115936535497373501592041386074553200066145697315940078260116457149431028466316606726958283708968469152007075288285478535624412009258587655148248132657399266788537169836776673901460582359201673799527897809701182919443128406459129539310375838109260863798964723767030822895794587913374293952367870679585201966160195232489466544005367346437329168242000154284528424419883693076318740967356664075974626173465522699563485466814381707190997793407924440150159781336509308020330989170218735615210058939985984340621746666166615769388374937786053738924958672703638360741943230927445122219501225304512024308105640002805147643063462198935277282462047180460453588873770569546962473050946744627262869119653965624697942164160872151643142703351980423581879479993738813245892214680429582215047281471919137987282708626498036560667573402594474285288908270069897160832214170807883180942928471818664054221299321275161108450003089856949045850175075308517806175305095302979715089436840607180453504524585331399175706117208761004761381080078695464119388631767292240161251520649708114013226078687860177128065095833172997073076049813175697781503751468384629310282550702354660972304515781305154514970922466764412747035355789572499373679344264082902039010225110380040744740172154134610879625534863767386693611036546369161392558424352490514765875807076417758882825355345066291041011379964020237277300477818137778236689276688827818522531521150882611557118485149410940712716397947212590245447445871057644634399892971892159310437130206463271286346440297010421992729359100439805926123836004106160879237545172498207839815381391482471236622291126821316515840472154390420515297757709156777325679900041416605328948755485539021652567316696203734327048935881895175556406826721012907760318902847630619303558143361911807635682775864726455244279295221447651793153599685328221340178961376778437228124710795424575637469298804271580754676063346263565397504737219292516295315552925428034681087540862713880700440945492881143799034469166300171176845531568341380796086367190544495408900494518782420285144060676597705539639131813830502529582846458253020972018858484137966418349632702547725728821460089745472007809749557613740871201252546883534467959684302219813810671527067168187973939237403226978962734117709004015457083695743434185489016391057305084077535109379102998853269370263121616998279029285901445728430259151105015088908866137427376634655141760105270884112018776649986584779174237987656378458830806322247739562777163089920811190785454774807296232560390811378469281094219639160378199639912833318366592360544657656275253815517496463944310686367500582441469615188256353146633303141156069224351979027654516295997911677172626577795178337873079850914958953316187202692784588654376442376903260373588686917002306809171752525417742083546759432987750895596633364383517175357260440708491039381805607924816211772606553497904325248007680931767532345365116019898211011354487013711232374025807203204743859476029302557525133410436528343387374981750384456852597114233145569292853928413732023395630196435385676946660282346412206794671127595621566758389288251351069486326243300099004173738877568820327957797974860073835465586351790177310197218422726683386790933198912112630241446674180214916036463359986380934789043994902750242161295240298012693849364343536047875249246615602790297788283607821067616273012882271460042262467057865723098556218561998297665169156574980415063885594928093329141417465572704815716437602818409396450314480491560371128543950966740271709630445080270368569206365183726715516936799746294068091406082373901505858938167366172718481744468588648579972179768533018153159921812772037293516925501214410461536154449118338051988302371148260844289740008267559891546459148615263206910940848735477975210675688780950177759112534701964012546822936797705128530045819878447711725539765126979177705181173037462429260730343035396048249189153211732316787183602287946697702256416883140913525065008694134285196238981265011640062818809860011041867081170395981896143758568868487561179478127937580470711652391724548848197856723354898510783715813361097805874171756865411906901487088042722479379745927963300578032225855239757259014274138130178690587453852132685076860741510351256533188273729580099061090321544481227730383520058161638753338390686457716758155354662721238160352617758285490231917700891100693043098148800924746578664362177082638784115496804745068909216114276000441820524972458616022867161289847619207429757431285703072624302775320597662186365718167020279785888911699468640981262959048084304279559722137720873532117096559930060536730599503235412260362925844218124808318552732768846665642789057342011316831277392481530346481419971059657935871460779697404094310504635193890339170941598944456979392329839299094161075125674400585754521728497006072887483590331357697909160462672756883757936367187721287518570849222293216688820486199268693087546927393534484686281397036863859874968569657111215033556731062832781282532726493974108005179013418815750181724522507689136044153677290004481770626693149859999151605294251641370994760073309255845262766397606398620386379944535074811449601117520246375351213771817793925491320091654828028582017897799920151766146549762871853041038270034508602050362698902873902587672771233465594477704643199972427430186212878756544934430774690050468106199207523140487212997847968891734294544870052777302319714440364637791054184275979412793512582743652452766028426969102700674810496769875630418219244931090938466362435687091787512360481605924447619792646106201219051436101991946143998702684747217507833544291136398774111204323393949201833380071732660659974757108691757375633824284130713989240986145869352794923400813288422597592717085339338907235291989287657478532106270781149331687877462785610552446416395163685590435647751248528382849112406743202952002315568814897016767514130863514001530606889765753025044945090200112407725686907712736272098284953542735570062468474886957779256097758211984878097907641382802349040804384573929720608345895507537817636137000329210698334018236983405790233339751080297902437161397907023203852249003041733813320287193226521753303690733183225008637395286761264903995909856060564121259210952930122039525495171541817715168113749445042509259512450343438931542802708700803672814154389456698331533368606660507695659794713558825729016350479083169126358878783154468922101885949028610256334979865362203030773078834587632118572273724335334542161438943322668165531106653867295935989041829591595349747004203873081066877064078269781167402065521304301417271081920089357970497559654860721071519561810539680200942854281712843796026349937128091530604660295410740414468382177180094064420064013796973810370006202438483386037307082466322690999860866024926903424910264015385803797216479089108093801768635027568961399161082136165467619483354249380596235126045952578259461064661187172141144836167112299792050064998496422251099323946208328296218321661298969679668176149363037668038504264014179861056153475129503014674901577105427247332638803586079702225859893715366013505945857264812895443740083446325909652487140019042813421645724735179790447531045019743793876738532284659300106409070708340383158484189049263936813401877653296733624488024284079576828865401996856112543126485936468179520525983685798607554526545158761391254190780869582646345265774647089440528842225290692515224280491682993866702705211552206414006467508899398768781246120546174745662791047077843397590879592864807683460293085316313489657125384143234845450349746649237210501505090757383833734284565047745192915832293897679642463693738339793974662961183394132135483209892177661134869722144411379053123907179005872502898873685618901250556609377082480216712724681033367073594677498607873469049303755141609220813960586455153040430700908160441579640712702902853295405828439030397780109108946104194896489685558443607220088712474527480740333216873367112252732025211952406316452408606051497955324272985559998904562466844819708633079975565231548299461633007004827782775520639922938091622904457895484514250504615347066194737182971928190643787191690751955147842822500237710714093067785120691180374261077375018587566171287676180303697334656664291232230287319105800905652738036242970614422342447634754746976888385895331112790171982448884913285551449993058639827772445850636343422551107038430670045357309285045568677385161692817609993453422786888169856670856918586727567370400964598371662203395804939330219022343732282996863715161590209910844203939972475842813461485659059299642753257658041529266096453463730561088814611310183971941049691585312009139872067767263113561252513605333976753078701356866976018425129353673426656592814567646957500229204260728050163586734563496652252280338087060443928996542252146516990849943425219570271918211387673305084130867399784028056789088938227439997379044214386889993875457241037795932648966808345539853397878488522015029120386693706342476252246051439506993269377400402763524937609001586934120881806733795139632337154824470468445380609567321210928565181815655659067463846642186132659747333976691055974706797834315128620159304183525065890718148169737969547089719674092437238736467975825623464123159110770726089517062529350574459846919831556723545884133249422688756159955152660639012393037347920463653661739175746948708233424755608278207404523006975787525996618103497560575609281218623511164065455585470050034824981872139876259230984297452397494696292317204252969191824092874424978655314401535418235767972207641443978793048792574759409801263947295145983468910527539217965384411845035893013642553044797347122090121622681398260461553755451849451807829199507003238092302970595732117385158368408904307801490872671739191448222153596960516829010781439124104401884064005377083766929243725597404682251592562118130771281623079687888934989254939762377591644547135840305223022612300280609129953242243604918088162015900967759826824418530225319543292624851117039771207811681818713381926248825913055716372120155265780467898586715399904959040550301346600309813759109062376099151302420585446710314321365509848375924926304640159616330486535076283366536687848215477065668065394716043235230332582230215161311052213403091687649938254287731934280031983467491925945220253959642243738037454447646969730384147359456326907509658253772471309978930268041304409347461195289106168279593443335494260850522188199161338325607507444710508069583695235785215583752804893895098268206010832849917937886382633452742076377546696325009425212147381784085076290897430818724902037147449008006948612643345372168882934016452767908170688144701448450756765845778733087447878287253704013984655978776006201144278805318292506285150592839121740910632568743958991928157056888711619511795992412019902000159121433182610802754125750788680584754510093039666744921578195740656145974429382095594382021832926331628844569490353895598057282293963940692156786188471955396621995054747961540753188582023956780939767238283899919721145344544568750596936291404473007588731163939453403027690987796737767187507746987477418105340610201326222495552698481751178802513867511883449478371623500764120479744785700830683242330644913663769841161651693022435331548312362857974090071341518971585681603993513820952126615669259083171676494751590839892691561947259223279233201199968872753326609705612043759368376354880322591892935827419521845162483371843001634995837417051933362194184278517657569313294597870075594667226585898444290278226031165607291247771367040958740201248087708587276121360129247305678783068625791958280916165089717139786888597199436484974395723662987984967139070295786786198219102455859524654822707312359200687159942381527489803972927662849077758844797499648034660847740256637698676773760012428549379847741591194979981295972694244732531811993886286820713673681113080172393555293473895739976292739919705488548701997069169327834032913116132868398265473644376528220559811258256702321667807878008044723112842488591708898175488164809512723333432538828166309934584222730422043762861627711884399443491269092469280892570007758691051245233149385146915208686613414938400388405441346169415864832114821053741067489491886336387438494762722990048993672059205985858320050304238926320112310754528237505502456225744837845278295305910217691300409065582818406276864720418675932957313496429543976527335024348784342024197603160156075835784064297173656558068196402907246144924349741036222157754263559230268104678023453033607511547224021542470493083411461196451936468189435884988842229408223622471524106337920380384242424708486874826176311601837045780225395081220041493776302815524564268076510128025160275561583268288372909444636733924338917419203851124281450259488374406587677245108806246782301733022014783915763195690643989732359139506536735637525229261696161526647932197487440669888520879076137104279157064191810410452722357525684320176543254322108431405188969014860346175067643675150125024946918217125249450560389417887777651340649911843112618665915294951283493192145173062086505716072697427213791136568514282279002085216156089808416956455549008779627063177839009416227370381100085575599900381633625661884452496544449808938313205145415479042347653827170760100101688702260514284422130222105998655760033510053325314250625445532731618173067158471922881625781908932827681431365080593964415424517901375129028830926266633200169581911022057293801319550512763414693542409949016993804639428242348829622873952078181759479834937222990992493678223187158215352551534721387567760052081385802854208153752635757984533271978470955639186742901643026174679878467263144173168735283326725040708015431607531279795014242450976928904678076802939616434658473626793695330625886041941261216933556899114615819197489408925196855349292536416201366168159288164333253931015917417246667072586880367113603468269540230178257215619061396850866112799985668007325265357714847535341465577402729327986635666055466492666881974361767185806040266010576135881716955247975073956735540426935698967757642129666497227729423344401661358605536564193700495173231422096529977593129389455466826479622706356686989876196386100719162423731069373963733739290325107285630392790047982757831846009789428248576226452935398578699550498992180619897790562783062726784269867129128120903892429031340687937779474708155370178138726489065064444127368791044582184311987035207448226150951081632706849373379126512705429664404966237890371334931289223032097728399255318466233992449975989137714893904086257182342094843716544617340234033919397678581890810796089182302045846912036480279492564965907432881578442551455235177302244020873699065971847086179861840578261958047682319159550993657697296501711005555325926052688960070574204303800070503629966488331085950988787795601111017690764485853801638608397033940979717092572020208150991728321731375261775017833307430114750372162050260186638679064900340789621048399898040774034948736700214278281161716037097456917685683057624019012690251477010152664965579706873799929193391712322346679439042286983447835645816956059498639089807334634192880721223027174633199025790249722577607866299687530751490695619229176790606268284569711974181112754351001297786086737405870092071346583728726484379100523648292662961126356330070976937016314532351354968582624294337221411228552766264821572089824292366868347437965069852222015984459431456381600424403800164114936512994844184329341668869612570318207188141630319666821378582243332457772008393795395042286779923521178724722198857065442434419115267643575635496162797381367427100981715882187895387722618870538208439250776878584312998569335867129810282823424663843775481903697554146731730037653220671812392009192316932805570958602456446551479031838912175080449154428856824525548569171503954208196849172216326733881096646327211366166223795601063868579572016345345338026790473084621061545831666481878663050656851041026711134983070197165082191665707820446977656296389054094838287101843892345278852049731356812021091261673106288053028334918337173793764525420781828325322570648208066724014746493344889749105543175837961860196640156669656252337338148552696179272601479444579868293170848391010204694628865590133370197981929204139862066169588422095641548364715252303513183975233488811772489304243109203654257784073635448581616595749034310976174309660521929043870744543972660558518783979255393525167976611945350729274178805976126410348184868522451597754749413434027862506670225579018006066955007463318457318240438161811779973597575898472036949172544858168394948367761299520820823509031988509563964846222793528285764624765738148091548784478972950311291945491889215371080429341343683911943946595840569549396338590530716289030579482201464267547802939158102359446206545222317808565785539514652267002712929223094851373059746484646313632404203509276353604143356013382953411693409457592950506189379441589452665141975815059720510829317110190907941132613916579983615910885590912796372607872040097635566406788204133740029537435378875313272734143747867464606824388900252005703718838472924396199477788027065024535422004224722234039068839881270926010168889218650808933420484756036052999928544984526349100635084613477292791442394165035014418790709516283617427012689405257415319654318372394623799355477502501160713417205913571412562729783600011352621425523856218936285059420963182186136539381733183588359144944994036377643319915711161787835507591955869282692780336405302308965614521189543617961050331423996508752122006635449559634954722548046221819544362416978567692224528395469099885041992011511976717354838412521840125170091155699196841835641066739625101280920356659174876320825613633886813800586039587099470940622930655581230984568330538884975528299268111223733814476056535695410405785202439844954695127465972963610384691462653416800056536837752706016764938773262666935642422222130800515211325214617387491093762797195070536724051774938484859186015793719026815063789674225141098701799855948370037545521018473254618333355771759199551636537407133875223058984098538656311502313840394207094798008027088476785987576412281407359156094625031855239208172082002656522650263573946562025145337246285968318809459481642140004500000172870139996503971092497232321427990039129026355117529098198179070261791557638331976831944720547461489675313851628774474371911420453949192187330974330434736196927311152682514689314743968459805931333007788861605405907561376766851856701330620560932012769190408393674440027298815921805517635145609339974161474499626988988028531691452177826031791126962918310000809484137273193653869701196249854019615123376884375038476802267822672123723188604463242924863494166121304088579889952433793245541755113611693963964029085775963689775615167416583048167110783388992520835717880569930268018530044123811261511281236749610462998395549339242247881908223095068367609401594792847603172260250941240631387781819095221900496248484595279901011884665522731570760415940832097442511805179577302440632045217389078527203563702332669695674976296118423112173689930771962128950019639927386276198044320739492647688744989584610228045661050889031969495585915682523354516338930309685952237946899259134486487209207249569079337260790561887448055238882752846459710362759444716654983384255857010536585207265709835065659729057338103813852082465619416470553996808205786170830689674696540729339301993069499177219947883556296216361793097816175812933483558415796617915965682192833993597490090034202200989938729297890137238552833283139032634075954533385373349636138771728188066551510028716498012971360746969054702199166796939206015339330908135994913922672375794601224848609655075112701787022709330977910585958708920150560173108215127396241698216626830750833938673341215644018185270412178324741120170517156158975657357520832681010531175508010802673368363295623213117745082845053550004894588953618012295004189176296206388966362211595122905541615591400339217243462482920160846379360252360351756864876887713118869363210905027712306393742810425842215288141733522569354470486775626178952540485274342998833090505648561932224205587117242287162620217404936781416128416010628167703872097896606053514656305334232350178501160150467913535502232528960471450829794627866047490271580068336267850796978830522374227224002628665654824556058798601511418334706828034969858228486328538321869651029274530719315032680350428033052936816539262837096025222902244953629601374196022431087626814098001924626455917672200651137627496408632606791081832580015660766315752625052748920928140064687876882283139412382173522707236261631948028227789480909421030615947066954736993594318244094452234849029986075428356161242188252408757839690047603021179203248093866122121303633957192571582879609769448237032032365574217541811554839442195510847851075490162844012262942640851002650920658822940781989094202253899721884024680797583717280678076141823878940284089428482155094022522450371703053670664615542196339591876505841060508979650765427126992328945219994307716532432438916025170763158089168873297688206796008862702414446840822765751671968708399260302128149211400458133935874469109808433957019895674974466886106936479190812276150130995957648908575916842731636771471983501188427196896193230638945239229302771585897320997375307207658990183541724027919278362044974354534096862266765253365262155275278349438910397472509314780426610736654826204228208756569772387215165429018594954422329991147701211669771109717732747261341120428390247760448199979765722925590680493885428716043448958568112594514702423657681236587207868471340868332476495704598896079924724630278168693438118048296666029522758381913854924763027431254991643197009599166267971722783665630762095809542390527637675701263045241361513251957666866705399060460062490633037477064242163752946981300071351957449800766489579695903348555197991747858405369535649254558258794008427913427336650724836563269461983192773679471456922829916290850230495887767515542937239578766261654114939899783069634945073944668976299861292033514847117875821003238207321986965207392273018831527568549500709021289654183866481251288542388583458208256462617775809637192602841559357354724374071433051265239854323451638454890108430938092685877465192759507956565312037217357755166203758324747438866631546326332552809362004766378918577559366070318880976247498002292464943631924271734217564711536107871463250920136290551070659510347786865306895130917585411179428212397605018868519772380601842685916916914143787643905708688137397646241855084874717943055148348503997445990725562775087603636536738170940278310101174206945818308489417043206666453628299258696640958364209789586714774415673299071727373078757901072541806671432932203990118994926974034528860270827225203293342063714885662409779497743477536774021479747183938598694697200446643584993301216725530946109528588668749301121294111897216317929547925692941662269776633961056910049684165002936699044900392732086349966262511360242824106190356744199426999516942677312068771980703777575630977782469999380001703051544451695852455860687893465148381739013968994567293667614600968465554340149574565463646083658794272716197216055295080326674572013438284900024806744346129154522073484999381339273221131556502172680986798572111987104528130893170217379269081638526533218473599892675854905741739286397069511796454925669489280054329818880884458746510708686741270619431894405624457173584249069818005655077895381789492130885829849658882094056014628579090855121766828070524094162943349625415748904254111644404987964718534064750830877497024689578365848374697672341054080410316548558597457108904074283389565628511512890394837552467938720721892260390713811724846521793915043294319889092911901018898499537037280346653308454822548864183848239358094114856314431745179313646058491120572295869992284151545032337489444114268375869502984216049370441408931595063538697822287036226514632329559523993399304351164829485869872904756048959229096461024813932470573993894846725446485755627023738466480639108668100473635156589645405823454146989891901435663724040344433355139249308437260743638099283555040604144966945092484545143575204901079558603074740814186318672966817218900481808507103192506284779542267718590602016145528949232239176486374569582734186443283544221201063863538678750541186586399131208377846459254070273521309411270041809192839367525428059280028976337302258507193278577934774392218172328494619188214152813131943735612708105649368738643463656166748660799233906800859309288425516548085544745586780015942921142573800611287702510802716390011924757773713876273709215036207984260746670060190361404036254518365087877487441438183122493374428782599665592860107831421234012384439469319663503095239116422532612887721897094235342014228682407013446535809134601945688083914629530674429327406777440317800334761583805837030876603053910754622491126489789350838467280010145301815789193078609532311619160260832526905731221330814689883715211173705842328994371547307686302702031222093826211617198171879474351121320990206345481442975619771834459153125323944577375091509645108589572568198645150615241329335558074462089542490227142086615580886060279900786909950730947314778410067457195919743202862907970354951714877859274368154659892012804601502258397508558768830077998114054112371243246009010002150009158999228529542639203355798430399069386621769520552869149756931752712056262532472318163129361722979562013455264491347026078586310717358668303835222704619769790057653886929112518463762842904548422394654576391614387066636452217583464657609865665635765985054010250234276222815746189952008461657407935314365741053216746428002842798414086503232250586958579141668209406858658021294828009019337831754116335096823711433821132454048933488870130479008138421193748507371945818617773944616647703814769514733859600100656481496249788694830904973450793812425130107109687355417796497919568220501905288576531151577593530582339019564829111076918441917297705687583081904678994951066234385617064999036063822981169004354724999746979493446879865384553491457029198656892170026916457649130708239169414875283190764624898045139553295620645525238099880227419693027122155513889539773580150020271453327371354966329200270013051479405168346180550118587083549720301381694662215660102358836058176422225800088550996922219336495985481951722497076732783256685131190891857479399272225302155648894189057675505062816873518860162345976751900022016428073117190764730897102240724252009827439362457847226266784771761454710002858695877372221492952197839151898909273019257584190722944783586037831313000916483408800013349512424397258268085652948713099405609436259929744620773274043240308486539719546822527949944991594333549896739499940082505395484778561119074297178496641165988356572094028980330325476529310233136991675976884587883090475124719203074753920165788033498277662012582697268559085121905411331932823260691634527387742507279699581688159956101150863357192643188536006820990857981086012713620389058959359143853161050748027947924593026157642191991162632943528811927834616907531109207194464230536133107142103446615544809030048369102616067046815122561569137645560696454242643252242077573597886360888711143382274743823657419078731915978441347711434961953394057526766237921360332000537798589785743904270143566687001514283206894322983043957736213947469665353772730169649406472373952486758713283814444195179831900716640867241697527830099038075556893263200799462879032546519682842447210160405209385892693099750058351644152826238435833425157775480107580752494167192268949113379654657031355955308122106501548843456106039584536637883844354456226777957563474141700996184338232445889904259825226977478410002526751363952824889240456999348596654803060606311998337137954281572370068640621012121560167947845385368058171200719460924713687207548557312523446457404434486146940982012635410309417592052098671209883318441548553292695832829571340417003161186462770447273364779250612554619714385609656778369419397811712351702467810635378857122040709476309406779833109103964184112994015818364655744264248557428480419949690293872092723808037389257849276024604189708429262320484554354764428709719543549746252995922624747585090218100138408291886364530242529944556013313632670784485022460249242764042894304899529101977390801534429598386923477508694291960940896147305331987809874554002884262152591415639189483430865633469413378952951645095283749799086161991015663789360518944760414248082330977103291045285896313573521694530015777276228686262977448609991331710863245068967462361020753876746864609451586449805806320090502624539009680586129087168207820056375781398357040766937994724401891831537191405721606001581241932366388619740239450538249791062300696563147640322449666734150444267186875309809180039729471978400594647920947505236353525216003639557347033377933929775936109026433367937609047962100532016806865837137703032324936338902888165015243891658931194784224416697199792947585982869166892686929602835069289886802550215214594541731858633269895150049786980061675328142136281575571950563050231709325806378122191528128147343673793533161493166518916657931392857247053114950495688413978263995387777490146889583256881975070129827360615613704059065476041489310751145376112491970730681053369091161685725253523002258595234537156830602207733906397894684691466606839757570043798284787538959835410817371858955890485197516849749749021857247751748108794025340158087828088428100984255122752811804319732976160829874240922826526933684711582815202818277813511164790841124350277030878891693431046979685124314754380682106455936580497452051215706941199454653385184442268477388961295576928466094643973127626511997807656512347469873198164505383771500920040236626965575154725290265015048614251711380536203452546653515902538737389856818306866988277493540215485590730694429279139508823573348729357906827879544863079912517097313376018864561125077807291655648732452200292909545507998287037897029859169479454292974079438045045698644971288300894536930596234866612903609436333886348403630286932199969545622848100061060655792233736365633922773250165198387658751478496984739989859606312511160138441797098542447612738201047291182649430849401663236166041418831556481380705582356124277402361250792759997094178659448624865614443563972502115925243504343952884665260894055194554244640639863939841221094789087774158339968287439606080746796242959505026537128185602501185975043050220086432977064423332943120631386308473053767931009120495757829706030448104786148340156016511363353262852425398589142472441649900622016246685510483182046782077437577780696890181160653289060345164215588322203048832953995625188188160153682132140656636062396873631223572753637885560862197606638559263999490944362371845195114512685282059274075486218904582707687149595367009979804490247218234731044708023612822646747768046144611111919441973917516045757550674288404140203794431737273716941809123117511483894199451301992099724319233223497602051125258597682889998280285309764307276009410041084497953145173879658901139148644423530075710473274291343600023475150622906941730131596054947654954373151017486561233050346490789664201700302821686439552250469020308245990599441449328452554258352111814934253999306122945495052917885169399291165203764518549427417896174486571936916154099168138367087530808342249738386609094525626562208766883720379437122270901850611913638248494889781943585580803720050193987126413847939640086322885940285814539093702584115518472104821531562561104692480519176301358939372941628297772657722899282798962657226102377349212776604167501061532832963199236851360375123036084534065934454566953383005125422528250362725698875645714371329090737498547102848691804517830232482123181478242372017455571182318016494743565150312633703342691139391083235106764688444735190142104474432686194700181757437128117551166847633374578443054274763634734178743395716469448858378972902954406236422632963462156014690521156036354965721896940509642979025587218802684258810308385493503404326545519434236826745842382861279149833243157272795479410402588335693773764820494825635592491463976824071607084023880531217136298799346573509908445533594309650983418424721328092230716705675890975096145083628921481697673725494969482908440991748744008124123891472115321189221592651801254216552239343384412470347351836045266430886542384283309713462328611687930515948590645715476899789294543513269061257897826376861214428106933401150552650766196134328562536248614852475299944405293642767237053273170134375621505930605124350220404148439828801956722460886394204496232210597134864577882128767567616191225766568702900288713661190046997234752692969943906533862630631959331039081442883205119290401961915398534368468042322414704556909168471188839005427096919110552407050416568162411816904636480446597657618594756436701605837273392039378031129764292049666710598596389113188050577776783060411113569796680626920803815285907715105834896821740525614834620184532117572027611043257926960436368530704493880186080015722003819673889001023709176105030247436162612366804640152526203612707240361430241103613505705754231451138807606566266641147627501276317001816229448007997524823874570867726457737615192418075823321736315445520410507509866243109433041002316449659951305629487991076742297720472919166637390503457747122857235247156012871491717068421155956576847494529785414708614478842042908394574225471063980608156887470252622363567899664903297623875822150184002124580978399542365613413671885638743616187088469057714527129247520167706696298475418031971935288448732601221494657019473399283839794817918186981794127660360885127616478034765771343493959046950828532331518088770023840949664337700365734161389101233961504266321365877987620855430781936607112524402525975907385820617142063503565396888727699362113350646849044520125074305953141855738180372437875849062753071636665139618645705508182618556780729928326909627488314569239607269409123054946360918160277238801104094433910024515457710670637280086383015511200688932530913928154665192213535078775398908834567742015314519414958340155842587194913694249318921079853696677433408778916714822610819117495623905387594384690162637106290562247733250778738013246609865709223445060468569879490659140445255677938376527156557666847258823059069189438041092834229000107334167599978123748077468205351350833125396521868730451513664946882720672687359551432399998486654118806204589774705471694251474336405437093811250764245389971191228417201226668378433301422856030338109847743792873692465425924072754799688077631855570246909497914107166374403445424877566720665403640746561424609461097406564178991077106811604564581076414808414650044857852793116066761308354113309183570976911155863877597209433243318072281708013036650874535225561906756792688519687085095765147204635268678425924935589169164403805761719180052688403542802448706837938402602527154314823421811633397081474874029899377860663145319635684246981412850186379866018398683862306788595710758418972145028868570802002336737397765548368595227753647748591759268734469711206034899658142270083331485842030937889668599158764952763249735450751036243454641252011154676866614240368194108882993629827400405439605931820191707209070816893563201388515276093096641925367178871133647270007338556627125044229032450771723665847426604798922635452336568281984261599892020210198719569112074101327622186766107382001929881144530359071283232325604428415255086968319848128921449988748419293618084094918844817703197581813331678317987085453195934208763598709531317228045308636545708771968309299704923505515874193137738590910641181038010188082855087612330779485168934877374818192038970211648337006267017349776093102082604420171812291069926913574812092283934735327876290278991527498754686213543930091547508819534167829146220369165538707038789220568293365608456907650962675060749449923138958356925940132334026932040723472375092223233878659003577790251645976237227114742787936134458030588364838798837951516659126133713164632683607470265080523020576719187562231422257663224052121256605754590253705448604287189868185824297817244904840893482328788368410653722652096081138068211062062720005852288111842520053890484619873561658393148423009581217191277589020905559540115075648583342348840004188166439511453668255312295788577962903955476342772569698175341161001421863434626326556081481353331621378684614854284066007610553870522167625128442103626141598798112561205768349484678609446405020112932956061075543585879997429972479306636591168566325194589343356919240412444966602391095058503302826667429360856743481448747442885848380913398149615520947029996399530250302256341068692613285475414388164137262797883842990043422370031189331264269192990473329516620420929172705714045681997058500930486687592316150509882816517006534603612610970888078409509950013255064445614146496524679530335898654606481778839502618517088394861306587496713217431285228242278967086049905768869983135513081579365393857526089585269419577594584381576056372300601089470030307856260715120015606826150654323473916075638254569189337580229772457839581464946196354119501650383929553637561205421415157439508142596005577652660726203986777551548847991275716359609333274405567107208187837385317544622590639180611017195400932311029504163102023447668253059955878361738863388487424076917111127450599515168156420912201752270765022290345076357264680541390082203120378270432636132476649184253192887167301205897092803523427740383814175519334736697455211271924081894856303878059341299914814099718431452644644533704905598104282099017761260164350032802451563777667638961943679587417904255028863251702761990009030008500124319229583747280126958781127620493361926097337944125214801370807490473627208824816951665733899995621321543023890847699327534145869268985571058072895094490546417017836833630328829949894002358925311218600258380618476091829810162063522127125339222086064833325427248216845807506790109426591993313713733330810335605467507495527118680223794688660546641511866491734703566328995739276259725885428723126710409504747936121992960515164049677531833118830119087208944186174425606957990050444568866252459534910881494943982507009558580407829420022087297240965946237936939377218705855260853555957873416981700480507010814121780898733685326587344856669324333158710338209194065556125961686027437099599723546611263221508133655464221948897454600680282226253217412385235969606428023123618235652668669282819977095474020031122057073617083611212650709138639108184644129767242983823279886844995908034535198245970593631100254844485173748338303968731272039426910479999804437090564716457899735492678281033918460989817112451765696091651816740141154381253448198420226111668222681570102239367383054184906486930011171671050255001654828069945014510934724241668403809190440276022806659977401465451976080214346742412486294132418934644673076158303701007404983913226914781941418704985583820102672262796979608742151990084842667362992535308801335979220060063987103814014909695223947256972112374552063054279530535956813343501996107347976434800977488386910925616136237304332664872176664053749599281925456049890349322017672263860693229433189985398155387385579737287059458033724416106681580400669111825539816757316545715350553037323059613674944176216062231438387904732820587985607616639146682772764527400669369668149980625735854256375886201654415884162124582290119030727900397762958124872775151978433479046904826838136956439939019683156885677930247315114211041786786116796624823117771539699375845621932215282084441283610355042824734120522593329029589313941054980823850695128876002175815526188859397210240052699606825664622478261252544169677466434840290753849108731374867118540259986480582308911407308984643579528597167825794929256520624217705047070958391430661141725438387001443340835587210000992792531083946273805350748062176675616725837123646643759256205265874676441559925091309121254760907203390047527125109514547043697911097860436912679465213769327334158518625608887948884633246668949421955906646286297948681593465763006576517811342552850982324857557774744087132715722151859720082117197445207818822330161288752693811192563774652626712908164384227441992098599284583255065481445734190411196934894176908837000560470688035890094082240783922179128596672331162701835261215307440701307560243773405094878716401532029853835727443503770057425172614935469519258923114926282994985290231570749964793592900664625840499783435660606976660526408659011352033740602526711242441897931853799980824730436598795488855021579902781833619219442255802998649251946932309224420641848884215204244232403939648863461980660576997051085346913606600379263716094761717376124398540860695511955846548954264199244750454932919129975072506619568116654530042947997210402563812169385653453169127500076260560629603585838699246985681964480847652271394379847527400652090295579531787885364013004565463470398550621494574180211308129262742866379363070248082241400125416148575436908666259638781387962687055442587373722669181587454595935540274028309641052000462528826522805368964391547233417213253115446189729079566206058578577654009054374828381641255574524045819270878542186652930682231157963147446840066874537291465753116250220808859849318292498783019132781399619438414423283806137296741853452345221919655449772641912766959280395062269888806697443434052909528534639106027550102230816786063493033926335773266328369715443660484474910577840819208747058315536713748825223247001949570315963022378514820747731538134527050329350290898388982211341699423709358683851397510582495825812496050800851596880308659241328933444279592182255085888378427016516836822440752034629995844166308765297803235011561381796455640105052890401622219767873477631631187884687473253770135957471330652132111273935269599181739939003382965084023008835249346817140301974988661526093643038913775057504240116392007789318978393365582097438948849794882337058991913230169088887241970949275414313856434594412328849816368048699918344874570674051279614639998149443885862104705611381360646391447759779831427708726811415229019650178071307835428479402982533888990220856374166313892277767128763725541473164888222287840477664405643965484993309861373648028794952589372344393255086992942302725834923279120490228629939603161366857530453961329871633188797777130695388730146980225335188114869416777011171364683493701169137714934870092508075556867305433544268322623027659376166311253942979707299039579729895834870025081112232623776054573451070439001447819039262962040769629159813213971239654416846163812154035370172635820050695860660816644586093408863844228984590077822731750812028431018446777645228191553953767341895645649487460339495235392452272871911018637083938987529636519414457260438447651261871192997674647456842162903905968587924521047089408237612148210168547189075053369041836837751391950296241852624650795409253016704424262812489460743350048408228635553195596584870909728149220904893869337765980654173907763505548695879708561156752439517030996985015196368879227652483285486685371806323377539156250207676473803378028728180250697404646791507555797982601169991056714423213782199751496262407003767062532481610119397464731444820118713424768095957817697173385100299833434271470365536190768864794626119190281263079608601546901294575233573758543906134300430214910009707824536257889816807282898726846413319980938731350637171904368170284985254729618858843312226904387449487866652609924682493952128142108030834874444417604053626832171592601607951194070026367588290103798884355161005734490000622122797200087108083227042550931482085202533517877638739077747150669707490552180669168924198432163994585165541322513990245868105844741714754369424683005878713519739799195656286632367532202721153326300650779544280129926443515466101791991804495405071494954234961811219765574980163411857211649601193036466776055661823979690302494377374906256385319958226953725044618539138833195504553229369276541358843288066722111726139639413564973383067621110261562314196733380465154862116047698968254411399840707143126203625448203996865802536285587993162454339780144322477654850729207870347663153725887528741729253395822493416585317422151695155465897184711535331474985979571222218546385938494577542786020790570679577440917965318032072859073254611861704844739583938574370573819496213934971226135581687054244678156037514804213438921056573151298775500112865343937962429280860306689307258493320881381724239899605975713130398544437826957667001842945760749562161738856051251422989302864459121088386776845953770565046081910090795657094098200889192597472351640088036940844070465610636641060663436781631983098884877814159691134879770281415150075834072269758888065333902841467647647470228382211578498488016885819712720868433334377173922845264677235782645275815125265695380307494104313824796446924081959841096621047429925920202879265969269648095030705657330007438918448077538641442914755753004727397507254815908897518182940912144355469861729028455629202249921439562563043234918442381998163254729222706832181123445783104694914063112914229691408606153043399147382246976745658489368354022770262081527214038931879961734911975298560074335874427530809990032954961213815348580380601973295599789407621239119474868333879743186732798436443471636028758286512995670924419299904184841209662170656973714978424254505212553952534272574062022734464532736688067188084837061505503348514404391734482655387284419132037751105805607048123479875510788423560206461030599629497635973772885900353674861597147907655240377024764324221666464604746881926110895443356791560540153985584102723591459574246973057976471362660674684250157267625944437450601983784490030539050217309148458774308412304165498211880375343366667447431567717278875213590091893235502049938029857613402239317966654120966304314849284975467618933184730975389321310000833303593423477006929519212459271552208186159330105268105826686742571918421257788048870527020620148595882118096174377302114272682493605789886520932258504181325996489381238520836840780771601509427861770169339582470136080128071209556273676323228015440510300498704768439762036514835856895994396447803527539476146408279994848308706958462361551821292932547761396723944125039670590692478484263800876739286523377322971808494754916604245294397091642907385700531680543025471204717516941561031895357199347908167354227545917977607019212931789464286208969375232412561796116048236465767422176317435129823580858876537388018314087317667898173659133545284326997192298806272786321252516479053795501477147214968718618522736409063364122636083832614953816491103935235316101958292585336607953013246091170229913051170339431743579961876727670345099691478645619001853610476578876321476536090615644402974881575160621164140819095713745670878128063852366172951188703438830144950690087286553797091922640066763859761322290485980823971815698206062218280341950241733959824706027977760398006823660588026026833733644214855441381450986118706616329914467324892542856465111348639392801659244245818551287786600323561103515190279692986552657851670023982256598140673872679802323513754155443162500183004123354776383990373910402445986549579205124533064943192103660446449522774517897549782196314449925062027710365588461092190669859630191377477965564496370667421615828765183842505322061413080812848021049440327232887388026428969372118893715648207524420197857093594457098140862277070632916238694771288125403803822398920452925753431416844373274776229176771758869386116091038215918899926880698968491345206223702443480721331426886339203271781380166385729979012863119717927575504722596366796949515226074025101789750592433250239003353984748750109255979024357938321027327988976992742284989380136490919255420204055444906677342552836136496841114089293851774754318827307888779881060639578022761794300565481711014360375039236540290759108779985313101962713091017892981952679956649117750310218280247665612952414236882382939278588402542808490505674981691594339085768386928614039977875640586208132374656216557723779817126774248538929206551918896814768820260239501284584898199003516610016289820591593198969868958567004462421016520200602104772995957229064059216871909761398528199946056730449541282148159706702378135644140870048128139145553737694603521946164259157835610112751863929622614246543865933051530801231244667335273284043613927621069116846727964675455344014257898060117410512197363256603183317100060175062129047324678799972314857977157853165638174987765178574535832140205321816639429199340892992547344483431774990795632162990941047603602512482284823260577103672448550712589625908551569567958377184288741788536528083006529842805397122821466065952292144856932031962652291239998661035002070977538174928776037536226944556547142508689476111123336061186354912259272815176668078067596287464405625019749176682098948475332935070641278099900174507089714004667731228201461667473336239709958225982981914011671580247481814814618659479382321531210346773543626586306232734953534061373967262977780054056547367027446097245452994133518438319539082534535838543832382066897059341021639641388292178673925523576421586026771911229200344076559083102197077775492051130876944228957709981094259220729936189675996833317861270293745234386055240014171325708052832957003693117756560019892403859427167907346011791897082742381578245689973325121580123233569208803704861086138384579442671504913957516521796548843136767356285293522048157585364242248646155286856358379509217737130568007268961221412664043587910993102213262500373194124720684586411723821040385430576219597722445079416246000584225367480113937176036122922846890773866585681880941250263379650385471764251607865079664469009900106884677209341424317288647233257726603934292967394815033869090476704984207030156530373319627532930241648322103826552446197804438964238806921981670831807780232143534850190641871866097457792511395016450508436853789719121843774781338123479219256662308265200270788658427995152871056070813982636770058558568507738701432130242417257582674384406708546982620792718398006017161037286337998011455766161033414801226567535846264778992286005954973711238392027573773618919925070645747194849156549960252686678090818923107545968138881655802678298539481242357807728541134409984104196841568719967868449443452100253271982386666752749496352684452907690427266696626746178283509991666288695596762500103970489194702059384932555333567319586346416769048415407239622486518658511051438537701051055492755377997553833664802225857294741132464570210506949614202641057713312462287573526800391728713180667599466561359803513053326035229205616494088967018133323983259647183264600792805659139431243154461038869760918563823787923015265459967201548389744572961838822241000210963384372709578601781748477869258666488589201383830632049522186518699514334786203810356731818011015985036581701908743698796830461458563673594898566876211656949480834053860611498841436952196063906769843288910129888245128732928464526318998163707445272464631646915203120130002715726990327370814252107582954849891641358476518825461753159733670103562553163731998186083342215190510584340821771140277081044375274214405121470296677713091979522352569144485452414883632124982001722201279834774492574863244062347103568711943095505751316113864108376347546502051004175136957978086266619776369470294093395444567514037794063366862881880355688883011112596609832067621992305589811109037361327135917927492967767147390568862349881665528884471451990824997787076217791666049953419047075686134728593890980797180696391632626157454542117671608546189904281270481160712190135573096471640657122175017086429669711508124494814924097004025853858881225493488802101660305101675409542022541889412522456895863752507838739535904075527911760130631824194682393069459672450847817944202911056188387072013184852789218902390391047577267207340667442664240302355116808967004895635249216716301940430398439707032380427842333312797267626291465202964211215232886619329833195243381615893931112252830259221645687924568046281843695189205690670641751783513837218218671311020390812241086084843000014837712071310023289369094086947919360169589491173876711391537519611920881895272516480562655169654203166182002842529512388222268124862755101512793471168002358493486644092638603365126743452382913793571702047301887171837458734781214438663300846475289752985432822575755870821748270162341932593625066331507800527559462194308343540828717211834146992816957214716808209297690054094094754585546128329196122664498497580399638664377959508432878638620297195936668583125012376013202733841704578581456469289597501337129613156392938647103913144779656199931490271658063941548538287334218378063963762864566631490147004507937846566252707396490276901256500876406823932303430197232074270544091339691600412804254007923999899377500281471489414157627860184362525095512312960217972557710702088164026805365517557568970250517376993235565546152776898342489983582588681071205812126309452838511808285184081635941222148084885325981033516772659703176493120650159997251842352640824879424430936871364015632184042425922823229867901080636528400876161890275320237512070331704767963715644210350639895816853599707378494497507696840368962855489435048191028143466288471312354723217887221404384273222406615314506388894879473744942673636785989747768680146639838876882711878873189082212012421199851594312411346862384213882644101236083399762542876301192336138159201451067541084296469772559512689535150641002523607923077483266418798601090561351540178928990863450713665435886586136128398388369280089944603248859238416379753480318505081171388099716020606538927381160454452705150878368350325187188619634809825694659790678046639658174233246783179830769996357300058977044191243640004220702775773450954596867638119351980337942322474967594855222608217322078466036706823971131502139083894056339786710945142545794294264458234556345293657358583353836892222617502048414700908872652788389530538689318020557597461004393360051961919633280007853540812431213625980031656086235563372139247451880836061730068743820631398260116052263683703532318710904784806444673337031425042572563179561094132139727700755871107049928662597154948806409403864400724389537032477447142044433230976282241404091837300692741580927012836880938571289968311912898733718190420768235083571112668252404853681741931355892567117011904185908514808870742316463464390819550938231666586417308968375478074978794220674960538225221988258829564194518375762619861062229250096472467113734752786692811259510403988829208365921908285298307237306138449333665338830612692689583837401026840743754995957234830185256254954460803798603404058975126172103395226653364369356217117730655253127293530461651002871845981829764600985956836532843364771999078242102405473607164336740981623451099632756969098060966314332714438421051190054926375248889280255315475496744441120325456598194381091510278155135740594539471061116988744507845891129934532927312089297909713972838045903819737403909414896681229675756938390509566919484732109372644816890400442045150820418409777763880103927998893210144962316514403875578875855437590977944398887395721977177808355971099048553476341353599157228679581602210616310850579310506175116832064091131162680305886171313999218579326835426105456334472239676162493131167778799794623327443523517480755592111428671856020126470201189225511482129720910397675615745544372113472958797096642380109859991091240891945973312961355313544862712861437265981225976829422910289094814034898747200094053570895485167554945834012694945666016867023232675175118532671149052002336501973180684420046644671875364162308820562072155745100459898604361635872213057991472480029629946728351440368500684216238170448071270024179593064481426882923389323141399107041174144599713314428039781737826335116393569150969030194525313623505553153090959752327752324050770537200521077979033747172789004703903949375063213133122130205452603989977569369831177100909630855576520873238730082765104155558829818961869834859523954641317691283114317631983604704020674648243260115804343369182832756100441143812006569235200513701414663163627233105880928551576783881545165836016252162732285761300116556531213929629732465362478393750430591451878146167966225281090776555707194061058673211864361926421165860024266353409929558747765027819890574885837286804955667689232771224671231590746401852182273975288358611825141811094544424413608208283362195095202161819267164734801625451031515873523856743951898560441328579097582873865340189740836592568801708721135762465775385531273263209257937341251203427644597787153250028769679363562670927299906366272547189165951865889330229853856906679734197291874791041276525307650945995126688748105163155316187666272568489823170337971592829747753109383655728787224060143505783613070090188394365433808589979298451904015760832964166893308093311151072468244870291740715481133462422503158041653525051726018258369305807906650934205533420534205418386692721321200814010213420597843722117908721659816760351014973676102502726549403697538540058906513828214744737850405826167049129896336996760008532646348094154519425697364513577929645326770696548562867021478521250278750100306631953049477040418637362727906096877074555512965305679228491304554968674864564268554912700495291342215626648273627365485845352441908607318754422601557339846236022578353291934375582480389239422111584896799317377698923098729216252208739270307600094294617169284279441208850775312801747920732521889852673415982449584337128765342926428254012002467463592299064620699705564024694380163655310491987781796759091011816327199128680598181867562446065632392748638988887859222165076092798727948330709700953615906315132918530917577818314509023785587625555219822391127521481817042166457316582247347367911927003395543991591151264033885883381788549134400155118618432854733452275511313431992872864035775970454514469037249984200146767062827204206777788045279006371260309664315947162922913850673561953782964727696364748689403269108518398216146314501711521633804045538308302068845390026858675774395183914534447447208427494749309548347727114785458081770518650874807503104966014043346778572019329710646748337415251600295085641556050343815064196893345322921014895353416084168441029802095018373594886379362755283856847053752097806667557683981637867054109128419861970106640573878567039730820315607060524315923331962169419299730397033492168125192850771621395046165914662019786169689887869963166883646092193170132228994135387309737180373865799778962872094773849273912982956393008584274530158270372102841210755894558282260959793741751813850200813339150514748432824324634921273911258780926175719724086445496247091479680787796966720990712963961213796474739246006273631150657745814733352792005687061199345544762469731042768533587330559711411783735824496115818817236676200708564433732345918873698052051435766862310763498322544729244054978532533419616282261565928333018601437916264257186718253671226660662467397158959124284838390568179909792721422763175761393480903712207067477314227479770446848470448545364981421471835340722985344992660768875732797765399697939178751789192619141264419986939188349762834920743265962038745485065835384496822208242373903481221230877901782736109262791403731750679354610982447420683594724437334913152986380018353986433077249456943689424652333710150785439400983310551277898436363305455103104901858403219773006174939188591405467298007010877735648061414407825197785435458684265293188882434929330868096548511505260611076481740977831205930953366983336815195431209131865988123841734297109901777163424262022261677900117814459039845763483411317456642314829425592842366337098766741767144408085706212050945344621240186188312258420823812741309972917160139819036196393741668741732794698184149329099611249178982520878756111887264464349519812312037823770717471428598142425494556616601665077469164022262206848970559981793759453020802106103506919451073389267333798591252474076562928498113555460496394458972377891441225034161711562295754936404686236895801350942964893908451716171183062418286738627550905428344806146136409163839253513808355037127039739686338666095665822261996101541437102816119423728791627287392753085166662955742415749022325128005798747358066795587774191600969768048661967764419823983352851662271396331316744299664214673593845560045764860875801218827501892586825477347045514139992696207089935593378953845373549790314350866357771741680955516826745585799408889992844722058929334089913185050196886613984014302721355314057511107318908202935406537484562983426169364031087795985849206703004024725063908887271864590374876942891385104370399862369665269341758181357183396625618087901197714617483343558005514286549476495903654214298702656041119510711677605107024093700368677937854713976517645155014667171665268662851305497449662632605874954464306740169999630272958242586355252161804886536867002029804144844654559122588859567236879229533838839226387079810082756857118848513376287674053117073825982803863385536799036069854529168027835146537601984295554898878116142506097421886032479673186497669297366731515028744036428128765225799663873712146824431967759618360506825762663998996778450289089095013396479163584013520206340611277759413017842890830244107810093882803377084699653716674876119542360636568534295677728876272694973519399364436716714893204018721705776370237214172723031803478824451874842900947556224484368714394136898696207523995908221744762419629311297110997090908349279329867648298740188209688828531624481013290716537184625994591465915199731191789095371507488566030387741691455688709531634470056193551560066933308587102342299352539252993366841923602244363020482161807602410711075472257229466679394721355939157712416451662361227889623278895811029962743940708536774003345214206190949278423334088211142752460895498019773581160893227537818614314206263739575578634121540872505108405083878261590388150224414855800781293166253713844573413132875675088842763418265089129715233019012855907172807500196209307314765908228422955846564238931445876170156811968570797785276722329244514305946287710658126202240446575373280638976986955344683994211735885425961024184698823285659524030783842379613473748880835721060031168479160047671883303482312708718534233065219790784646670082556415154312715683835329049259032253353200815212560955945597391781726792891822018659023824689238605413414663614220306564232619864515068278624942323843453248247957302297986769719936432934110100514363494803698529213468399745863123218161670195494068589710296298246148641872517808371764190242849243593697403837774589994661980628381131653248787308319300270513215462899838698747999690890407357116867120785661903964724304059679107450839127979796430184816390297846847806406015311278428444261738117325293552903366031322380997593761730845414373340294922763573967921962928176364030511749709556184133258882109741040732597438549874487863861719297454877734742430508090921453102500361991069608602030757018718676488659425314570050093366849796220668886651797638438892187881835802293717999450558192264037006030679927076995629062014373232034264110965516384034901326539516959540627639331130087324955207633515333799640911317383308389549860786681179593979598230118605251784824063722877572242631894356333563442179561918315191709804116128625601631363903017360218945298733570398459563813512803190188703514109472286820441170486876275876993770747650621075690739961545645197643969728020395748753482037124193246944831567627601941050881045595547922238215756692187944509737225244645381214522048296708772576442647966972614796450474195590161234091215103748130119725079319566323641063732623772149588187393537643367540679794041847415610871042767394419466362836996410424497451558267959797935213007023668132402092740827913503732893356592393759566730400704120505074717268217928781176869972469733709626374968134311710093929675409208235506780734165533094718078177999019421832847645711615334120783931608775028918008986894780036496517903946172768885842622680592976651958103226849721425088009450119218912552379082573032713825405614450993318476364385786834173620123359433220410482363038541003315261074573048061265779558537844765665914669178389635062547342947008213930566612534286895062510297129904444389929277680288876999908221082869777205370982137973551775883870441883471343503374402426540291139942835574007954678779077105696657403064801639690397173341700206528082176825795633383611281210182050583495179308141354649263270600397875863310605846468384001255101674968542140830067195100404329030082801881439433552218577036515065539442840208650232973389865748057121836463659461756265115625687007233301213483923747175944557154605861700991059543898691264163500372768876330108691943552723882805900812981241156266781627285007630934263664060612102581404368008211335328660680126613611939592653183743584939771533942246106928177085357983541894618663378516123544053780766473918777948201958844098427104196947102500465187156429309318507835648825139274962167079336282038272097747254985354672349273263426369557858829305507970064195905285217985511962306696530958461532213631437313296200186673356633292929158736615698294382465571844943557166173820327056753330912309600623665535954022669843040800667692897770360709581692899967385846232195173008602667879293788358370810422357489643502335653974539856828241990165489393832326877844403040116167238213451624104697552711535340064801687584213837441511072204278805710942125067249839892883182966054246972350122259049967988343002641807962776730058988710240470860350537870233682842501379510688274334830871570022807501882320693068955768704026812603135037848142519759267047285291869246209152131048523024144366510875494445674209961427735489733055608034375914200717335625702112847793239470762883229005639846360235521047502067231002154023019742882956030164960695310442261516331865769111023028184905373167248655719575715580001530340621204632082289445156052080973519461203058782674328007900592072957495594756938934580058516489880905430594100462591915057049092238122723519484157192850758576119672809298378677936782830830275503000088316727433145672835568790680666103086486337014453136313870864058439596364332527816837511284560126492632490436879595400074462183271902697385726367698795749907253548303272278450586672819539674823042483575945123693622411431228916566361767474683857231906001674135925825125837760868811186629407024387839407433391592670662039457335134691271918871957577875087170895658949598869986280494957823724781412615693715920619807329815538126226829662948875577536588103169411094500628000584449560097516952919090257276664073636831677053950537918154389040568928469445975852642511804196837504397185382138389969200761109716641401031354461540408360858051729261038084618602670844293152263022166890024229737575180420228936869298145654583123224171108640569383896382180602131312193230261219970023522234601196419302241561706722971341091556281608727814351193329765818994732094028271267805897835808171986699606209515114533507197449917066564853504470001911150719858065806100081122984226797791839011428271647081051030739738221699019599886670067456648653183756680533870106267675166601884514029376055329254558535554024442619399294819081755041176021614557327222713470626659939909293391052646573148000800136848743409745240160810037193530403776926123498342749791763693041166263133260044839548610976676961603489802328412594748216684487965685874727104797898846581961806567824309415158011375840444823194277979684878131112826965350120509244744810072227971193371411631242794576934871383466773800442114289061365225063795967366414361544283507294459528342414052406530911542986808338174183931610935879489887750298288630100618303559178587790594043311932749739755472483413826576689290640630475513684184060472156762457694692536920759224871305855945482371795357138334839526256560259213737459259501488761634513330908849960650183560522827522415254396683688164617957748202432471093808620899653699554016712599443908589663604876169283559125825788131286078841709400994835834624786549226122089409021297607495849817022465083223490321442070751932132395777490995314249110370005252217455533783042132514005432771941261258274023037669152545437105003127988515404978336325128819023123327375691560472746526280333207643268941524200377974104503819565073957086790499626253060850094903369666000351435570009628493379825838279263332957645514928920899706932593801484640328952349162233819471828160147832675685121860370324522253214983567867539883112475961164693493567404808956899893293864595566635448899981795588796270700779192995180731118887131623777143806764268290043540616913089396768703064336406648225985132991738797631879080360286585144225254883051211890587801599177118163951198726501784916633679712259520897653975639148138811075486747611006887564917437351173755450216747809203775589243087162699222020983200399593050193255860606223020690417764096536896020224925151110004197762145230401804772774379754385575119594785438042172002128436504320244164986872094270037088698505493251948842486561788065657941713847358631681342869533078380067700288376969862133871577878655308737003833654498794432488507409070120698440064705727095461431142285341548137930039776154796009027648981226318426248144134050533619182350501274268243059495926229496471511008429252153638647594612387380660548959821607231965033823101827449728066013260466991269094886610425058265219681263253010216246546958071436062685560893178622485643893737874649288353335688905211955222560389374724201415292840774064804382199816426079031143905286313872124813340241210189094797925167418496763817952150159974432242153456597892578808822508872046011974251512892573224955395856825854510568388826180617842177827907202633410177205976913056601584514354824691599744982875653024111777084109060510334850025629140116395517963682406993513155233657404662047294810689141732472394202601780787504183912068009143074344777160937828801992653585097490639119510272506933550115074850628436876519388057937657688995714496456065269933719653778498591795750514296522764404759324685546556314123203791513401652015295113178178319604412392267763437935958511009056929276397246324113550771429610894143576716178020064473017999827461445196619936997933344047367127107626788129076766270397242841939145163379176603066186973142742631287261205457650329180245999583956708124234826243711102887368254168044317565958320652478636588943548478846781215141905568412391966055406892668577602041516969245562402561467061962379523795535999203286456010648462500100066626146954516638869640167128054272042403168144905566179907340878138694148283385509295329705873930555608884205353485742947910748745130006422443054587264329631408342000156598200535664413586295124766030920052169106107226161172746133854394266149588710568798936650800887664510894023475801288637149615891079288246378131170609259854852640130299904980242609710490269408647071603514413361471432406738794582670775248511800334074810768327008244579390632523731555588306459497118834252888811851372185011221770092056848617149636984930896014760181154837356180568065824309376152318713574494008483419628773606103623014413684432722677982078699764152642024704322977817304218133629058280392843328747011116958293974488833866320457018916031211224614752775462934768076041482069072081529930078782810712885593580477336537275507490309799932965382502538447043155019047512983142794433936975873031793972777269770139717115165854906199593213348534691314637493177668532575657478709958494481313930280323796223298953807769990974911017742950294558206415671657182058884814799199937583233021002636699124004739305879301509350744024636974344751731204002493904514939309526055866878214812228774605713865187001792866544689673677141524588744979168043510431474117882674117286615567283214269174122242999763938168418036016645599303453874974625360041524737023130006908504780895710735122290011023358079118827612130462757437697962728784502629223287067672532917034507594814208145221236709068439347581748299172630785406876217202555929202357614556493348183545697595547137175013745834298226229320887129866458225777176180208354427785707713102304848164576582125452721287716577611289229565907411764144073768593255236838549842253521643757954170890110155081449718998137840675143251641929661853061084630363621745161354089078942826079424993927170006810430576123654453072003849165372870277372552887239706414637424384118566599727614654051131093272766297317938361130005757733639678588642758327966225540028407646505704995748792687689332925903320183067159995086301997879257789855443970598118883502630641965980468787842760984471293136046880254046565205850717530486600759265153416166375731170832110165863431598076607849366363074405998679650652394237693321195188423419532090476962667876730213388036226279566575106849800610599113090811496254737741347837090514111186503345702242116100556184685801034931568708230044168008926171960849775009120553562731746717600822476379306841240162865201784368412186864239825872846521992522220784975593929523179204428405851755100135450177545147512304257388978729664376889607133667049045963815115556658674326713820608842146548938932419010490124836591382277064897040992564439985019549212999998162910695985527349640051380076258277485741953548640387407501939714392058397532068829463930620822848223784355377452118084584851577093961363536907020593255491540400252044589318734725437753693229012262145288958814242071536214224316695925998031261302530638812904061356275693566750516105996813433197240110584904304460797917416052637831477094269280356283507336304814310334597581977631814057157236819693729603961031487169944230522176705045884664037598941334848704332472126013641397920939115038159485256299791719136443493814673448042153105970579973905299003265789705090634421285864429701495484533852978467086021215892967583152554971647228333392272900158608877428576946732407982224584450456169244373491521703763464785070378823758862387572659093846547781223188804178128112896422390323835803704787337046755726922844311864606694392355225086732785605499866957557618997081220741109753197102934951058380146160527597283008557160436471775590924142468092746979621326140058906407480819035671383452860950585719073779752819790156616792597503711123292009192158570140796571183259363856481029802926765463276352387833098801826743491502536655294847432131577878337836026911992323696766359040079125353687700466619851976063051753705680614778519121640439003984378008859132920169177179230440057462520294181948287610798334939932983976072968758592575968972992710830900187322328472422849470014856648946909658894866434353993934504531792368316683968159002355100392081642484104400340665191720727111192017116663126078471903908441096385299837398709868839372069542235283552435313971468489749918816782112917863053654602313076842083005813400988799088049011891810079739828444520092338397357173276347765399548545310644337122344586164049523247224564297447261194622038049786229194051582466160151224905107761450020000226246838370360022610282235920994532332573427496648500416402894387712407966697725133755313462753022472229151113887914745422862744041561065791428471171469023547371603170185654296627093288981890388072811348274566166871784454066977725114185400772289207023984862333607405261841675078670570344628738870773598088430976745623928095628943405602365979698269913084310013721332533386865959074897267201030815670266500855029134373106826599865856337094595841828439189895705286300270876289073937772748925154414139822188880374003595960049543146511332830141088448094786307845937456116208625702497383623473407818453835923082976813264754306647380832841706040587137589545096325154013426034675886673945860279768732415692568457513858769248554624320361458757176108294919979978880148362509104693094604001721358995504409723332495574794717889755875971728731914892485734360384056589882625138883869176512171706605797520111457931368836272929096075636782658089749012015289256305253950378960807215890834533226484709508524109013430352540012512672861731006183678656832936212507427929284305700582300854716971910117489533595762301115908000418783721799186822416666528212604698744595861325689695185418493690235545264130220021583948461109416102671267967483969279806512102314391691543953106896785914508750603501547842584536196842070237642599776050542061061074240376034995734576495899573371597738699815164706838543911052711571300318031678101102788392641142059210566206310717750385483505248247990293822982401518695768060591596254615077020766345110822803026149236669757137382436019340203883997929025921355292960829875632294820543370744886101242385822248726549954671672461345432833164689394300403924214029656914302557657989113253682230733929174450955053988119643317631658677738874865396616355221768702187730855858786822030465834087592912726923141286404749802778548223322902918325490813382508844843181103992685734053661969375786559820769408901904739803742972240445561882008863381413400869715545867082121733596188584957225411572108086723664087610824425757755795503719657207519416958483798280181845660144393535743988157779112310633220433190620145454372759202654420618466931505532033512927286746969619723293264174391048756017116040748051533683782689166568757631081783025660979643235820638704280578535897306019015557935883313423936498178866431593685116215157588803492432972464494848276474859685803512218935781019691993573525257781455980916443419586296277951904519404520446954318666555448405105502338390767656167502079823473642044621369022731800185284087127199188738654808165732370180847372874972829277606213160204188251173662889898086948654056586214553644765092859439929932334336916860526476379141862449717344875590415025171583653741179309236611379504105785070296221546440827578627591119727241971219226481307340482962449656824187940221188195326822931486826220792558947022922892674523210195333820895804382009757049035911889246439518587785500613084286537180065169348157750242674224139438239690821927074179977140651581878092165666611418028577749704384714733413168450361309434216199690481362734214605943395452683354099742451791347668325012358026109091332367404355338444973919992803332458670808068146280305021149263734904431600710760831235438766410054951373733535477114126245316779847733820227126401507486771070751543479143776528664662843081967846399573255408719670696248957117360024043128981801986096025297744322691716323240099231734688980625642305397972144596018585688200563248122838882036582194600457277523574730287592429108712931165712676897056060811394675170516966760382706774997861431657372205106511918288559017265661831166579682948574012583637788774373542400196863734201846228889853052383413720658956119615957125141462435916282146474240149087253148226197847727481960121249135012868297565741577592532118887835505333536652852539621750912073143101064145323857205444575924771086519838110759053877613236223932558136410741709857056678770883130571747089551242818402581492859943260653317938547227935320455945492846626634242749858901748092523627113560368459508761439144612375076418436664492042555237022967675752806566161342085855682760643099535430179956033601952865415482274270636902341036565676322808175616881522837417777099114331299319545165364659594949546382781657379029952080619966942607870297715203266924463782838135937559194146873959913346301205541634910848054543541339435024406361251689160230642151664992023026005071258132466233591332200892903530925049892168334004011247264387595619340770349182310988618901738612525531920724198815477531112901260334706241290088792109824459570801855133574458470710535599739287545569975094799292711084737771551975325614110627185012425691881417167586856371605953893006347185938576452856920127831332007370999050861781747054053821631892637666678964251842427712668131529120420442368502284413175698933637817733927833178318109254766060853716613015367944299505950132741853890385428729443094939498637667999664959588712818951404031180086555982206619278182262305632559744009043523495092143056374475860084871464595703796418691834625816719371724869306075705284590378300478977226891018578202317562744280793101042400566168519742377079667835032914983334787697431009328877868704320868197800927412923797515100448046789275845306415642352411770665263337736234478698276404518008812334578190756112140500479160238983604838336547292964779452710844836531318046793052124540579403788918838508189997740774748359227729617746606814364233322006470271632458089578531086886920521986491181270052653590423609409407298318295277422031263235546955052263989696205811148676375996085350675775720290244433472330678909023568775779451784529689671114952088373758269895162838734791067128397975342776109379509560914962105595767384848719343008362663842963205353141694308464258581226098552789675149855948775707145928347914675192745783546803394184585909805073764645961513895759828519852663634998501929704412941052797179698633494077290523773122329777509117353437025148721835150690367440948294070978189938311244567791285019498310514726778198739122714185170020249933605177239996069392506517679797334502674439408274644162426407980160163779723874250564011794903098396987784309039725519534568866113052981984731300205785220510235482533439822768871324441448049769401106885090993674155958439190303558524392992615899781203247746505732743895866551109035138110027018037372263000335484436913494283236709147129744709696374566465049674051299698438426703277023757110125536937763901040434343759169516099683867766643968316601895055788155161023253027125166627294760276854328493490723352455978290241583569312566214173765740642130482006710725692149902094982976262058843482633041207259441449041707569913201413993286449537475206955596810700158370632851921669021743589292086741423519477933102182779350247776517409097981726147721006943662448357249653175119995992143870412717050656977293817300367948238507024086577178695642716019254646036130476177979737577666860070162139320302139334935091674077438798068771946124994332068069074687399627554750714148703721794050978056958588522915628960743418185709560145517720257644655718238007720287973618436927162852167356624168802697147978626657098548236915304746183266572141472806479748063987390655406027141072104409030291155714562645784592494741150892455881688953275474263645302259146374709034358465547495489958521412667104303275442755998555850464503368812763011950670632491029105369476699621762451604140530954273855102742156859373434447817872468864586103964300597408158946391108640211094386252021832772517357665194210050567517428774218734488390010520868059324167766914620664801702526168091957992425138132156062402761408746954807211570556739908223816504698841390538452880061050326633226076120452115659293584442186370011759407321180346086345068134956727467973036275084977625720583173432016188364244397615037066882476690335705966594810698035419174480321806425258891873797516090685759465328168067712017306507725068866529249301743668795507685531000323563130159520553966737064274187903261567652379125935959246107774358139771062796705868679259290751716976920471067410163908131303508912021720024932929140921019883979115195456725787055387133888354715983574541218415745476801614245487456137773152523528066911745096550373385752792111435792978623064664713338328932577809131030211232748128898741764106382699811508733490603607894801644314466205874585413130134793493479128824709664561068310570591208532742690814717382259041339548775480069536052695451233186960758118172436856489025764432679955409271415328724608375039760619683253429140543302026317429958434802792149895005092308091268772113238663196255149324010520872374233993215442065760804250722183426482518501837231531781290671457661611610633042354902891444136515122956308565392577925586385419454709999876539682112897493657573887092378536509708676891689800008181556470062126301383358144914667629013468018749281317853470029584891162036337585190728057218901569080588397288337824538488466696121601261663220998690264113532951454332605919679000161847159968551900966228915980185339313787670092105084325187362677187458996671246000380609544172943793412633354825582334701221440419395127906294435143757030551489442838921183416331607171153391630474494956370049198214035319195990035681976942640604279316420669126660879212558713038825163139433772697175148744120693067356981518430118166338637723851291778314346523995397962147562757901312339453129810281390678135755955677849936059684626542557467768724091733433156583212454772883358715563287730827170256157749416501729182124741709164026353710002063654487887289875462829082944005428932456981945009441245203015810993629466285003453384965887778918211869618858528887228455703946914210381271090700151673465612987388550154956563938610912827777580559159927578383144580970903118621022453576215101733555320986353183941410756927813845099774605348219706527665777410936405165118996607545310270922215476912782598934018347180804966215673182285555407142051310202275836450939789623377869733292359283111634297128833980071650026264352667808867922203480642659725109703777394036394039241263597536234694011651092330599269883086909955077203899872485476489599475028245940884096603909691073838274682562964998689958404957617678738039112310964788918157966672914525683650098811457117514831872397010303414282940308335880920437444944914176027910071256349916172456018196533699926910882076761220339798336420506828203652324725006439044312235551871217984447000601189643319196579637230623889962812642570445311414631945260845370698172034889099916277231417681013756229255023176005972390821461008715897403359053896050004140197063128079794192037544955980987977532068100160185755204144018377741640663085844439225202472793393526680515050572761631019990633931352372848281073918241640672969952420332824036573094900914980247579717301226921718649993994788276998141704340150248014953784319920310661365076972090090237247945973104714026103992499360498319252012336529656455288548091561381446800913884093858594744002284747223975466320902606621016263755795079778804941810582196083430564481788425428375125106503820290742311151072672479409319856660827648494049905425539659123881554711256211338576815892812405531162148350549161686748437914116802061739236404209449338562912493561591499151155482069165983841172187690693833911356000304529004630486323664281460996978042632674423316433989423802845039318875144209055936431312190974891036016776210651706523543619663013519374244052371476656537373296757690739804796977299483377675096532638969350903306030687583778748806792361289723606272866726845417982740545996337126304562599541535799144499036565321831126793653322532276979481352448696910057453572901647467483713601385240731975025729953310210342328928551810370851189287294533087808201751059838547306880161557297369960524581407129627176695038887945820056588192251098673341956501651852061925079407921541334955462836544687229866439978126477926446061903593544116122716479185937052657503937823057990788867023479004838926373992650002090255147125314850801584273867212700840993758491256370891291928917880164818406726902210643970268532417065606238075870417625805519589965059409651336312381662646960570793598446911409721445047413198917627520735765441026792910941421960551236245054647443301164717388912088151408524837106580939677650095428936746357862931193481074677118641125410180483524863629528549272924417642008163264276612585619523113003825479356214573121634928225088018692502121722313319704909076149410392091155991164766975097358685901429369250789608535164065699222041714545204617696361403897486291294847310222630572783544290198730988593101459664702844395741493252628713456369212971172433552305929247165497737689402360784812044095362381329595707757149611310073040708419862473257135513761262002543797197192884121316058717014665644116208633693638775263166269571641289259482938701024218918203581505426491342191530700520666472357597168477275922008330275405392465967754930221838123034449416189376439851974640478018771710223088408683694775918542436501143288455132562928105522976331448184245488868455764354719338362907281393002983694740106331735594788055240910792665805178932626299733339364673645127023948889383440615193075148952639270418505417304732447313163394304461800520167971502631083096028437895321371584358385505793992566081049955731438500463523915872331213606699677592618821855682328187544269230008701412608639901253815230289180822464718062539548994475064200012915067100378519964116898423047200991490037919944507233310131543555846553851637715011423837580757540988680414114984573413037331358523350437758876695902186793564814037800868967766022155439907924168187748845819202947742441942634699410980321589652819853128721795157958964594082474845996834179492834966240040507761260888377887696886862826507694560257936642811838428562005563873392535556622553051021953328602690748521837078112537809033567400737941597402766678634168091446619100084374999511091771709293062524855737749176142378115649240557486420396064327429539388326108943956319838295583491490924538809845672331791076144650298859713407798104109736616596623681783182211488973965816673948949087327883659998340845579960285187420824589895771713627867044706065067727498663227970168294840009531913434267585064352488144958584425636648588643223015900294478846494747592078422509275375213214187598724529236859945017087630194126669265118099803260377164254889157594819468826047341144557084590020073576204958213780657347985623867401865677376537820206048795538067099887011249901966386573043458125544247239656453915944790939145712089232599447999589900205532061995227353514190862038313282680117552792755655957340821629870875354410387560341579748122318345144399107004864873371851043622639999837542752287706719248000668458957746462409217290982599997654216834323320068705780485745531510337979963769631123924800941895056671610734354655777764276621637781996727529984562161357208163326231802055069829491624037328841956183897415831377478927666750222885073262676472234654912827033058021792433295601286152296692665826792561130839721054820848563529599073251764810268960365496790892054954578190617129156760162620481055788714414701885962947088410645972547278834531553082326182662087223435996915869006865138736307863726590814075377064253689464291705107018061866665585986002799295045094630170545920810967230112319462202134065319090993581792077804687533197512502244993455729885977476318312977165307214809221529599200178879432103863727061157404202735440149369683059228512639268862268863331470884351843378229013642689535568008653061953945781844761479396661315459215671707621291444653843827296909637665951165504161723867422803496284162462615872299975959800968796299591930219837568072605619084972216766474528927568165844463967806358510365613595370364044384849632549271554625751177522296687007396813565266035678001117975220419395412142889107890775594182155294201546367986468697823172562828434365156516314379919058269154423615100644295004924215646389004764571363259159367784647037992463918913852886621875608103942895470072794821260555554289716397406814147707985077815549561269137985589744179918732818741334771640966594534767397398796808026758791464216442411753009275204372892645942295972683639952191519321231111879797934805125043430194646776617148000799233989221582246791421465939207522959105875022093310707167607977874125231254522687354379775464521476678124320579489684146204273275669782267775753336718292927021259396597403715985627504196047446898647867099782933852593011878262311143320608655085454634263274166680893081450094196286561076956020399926373032257666867446067373797655556969967208959712403704560379004892854689562041246259683021018227936502129164709879003132968925854219503532139771682947485121002945299435286277826557703347654694603915413708924801119545605078463161374315921524484905829834104541002930744423435131067525980237713893875797515112299513405182033643923328252184414535373015260234251584403751652454238285302573458559586373337176614578806685651193256242139189182165171164490868675433287138183920207861567896011923310937770977219133385485849700287508193169369625505619313116570508502728918833439070573017553958351388987552517761887366685008403803560757529704565305548426206725554290848828407943110694827785544616757352713074776933959344391946444919587800364161277247535079066080687169350713980258510217047191334118376528620869999499960681589860800198784754762754284635125566869552335245165552041009279369985378594184688416301322708171825267817401192030295089727668876034043897830990120034216858712617081920147630186446599803974036541965984958995146869154578264963870892479661461236448666650518793722106656257478048556734928727366187918012542306967077166215819062104232179936733103479259989734586082726302891798301343455820685398409386803678704289904970460126655052326286410259185687062972615706577153944034885228608666948168228568806192281782358003164890169526805807145980642524111999425049906564270372399167759442620455084456385347243658386769856054377334762953613405365077781808131276871673555475109500154573873703515526906416510567562969225392540843247359277144346233668830597341763918587967324148903487292216543823268075553608786022001991409978902848068240052264060602551901430714323665029950778048860561738367583218763695322117798197973660844538957057213570709610169932822907789907956849351565418553954043416843347323643966276857517811601934546355509687138082138641275442990426647009734285679980746831530925214351435377895633146297018370230536161603885123520950099417477490341837584496760392446906256851760474883595638865947483738935003387396276856932257136130133406980594847276760150187584984310688756993135725664415644043504926574324794639444270629562270372585436039149342759888324257073408274210013683830011820027124341008904439272367889171049153223043033212501773898550311651189567964703656116681987318991817568888979436703665314402055142500056549822261938902017097344353200804581856451629922074243907044776595395370322249354839240735189668551179343863466195103298744805499032361572778876184604169752618003194673515646189994963585847463836030970893949160027835715524976374708531504533350755624891704040208052128647012575209203044318698083380469758030616554234764448118621277358227260500896593858797405790841519874019161862836532377788945745662609980679779710208709838682137688319282429316962939560817326863178351716302156467285952976848820126268914156876216266757826354357178151965212075973691639070136555117651329758001317282208296788978882580928650398467204721336255744943828782006126546027388017909771034045723287052368010288910718072099871564364260693544966851819187157247970793970346153751846388083659159926262232980701678754229326546503938698942005726397511914348631122386660624883586913034793486865171819557596201022005216479470719524551173700691056658569004793878523899087358943482123565538119977882211718950020021849878699444478449188711394772803555254536208086510291722113936343432590411725332208964083178632344633437266119857006492666258525239288413452666026222629966874862257133782980358155714724902530205751099387985506444267352428988496391076992630808894290321271852239821980320363284052870464877252428636166710035721147902204426073644643354566945391131304359877293784997730400239145343015411283065250075190082294747839976936791524637799958000678425474192553081673251132003933052842433536737448295948302462725968579556121233037341237851843788232904590090790211197491016473871050625631897398029259209256499757038357231697332555554596877704386452041664343748900179599741315609897629057441903675368588728485565567572861387608038913289328880015812921844217057940147898828534626477235871912012865270402703048104368258585881778004305224306585402949508493121517114366214364343039535710905104190752585673805635513397076144552615277196382401616785986752775166653167096165592004742138777623680976884651856965970829454874499486052950989643273661256598493201456519942621901705161497084754499010588755652355112966447956586453312726676163910499393088211904062172899361562851520184874977180245048419191582382064295607211793411146744841664784328508656794142134587018026655627524133301480448233211697455475903334030628239686984383904670796542563560105204571100083450353628224960164445422770216818350146685044108880818311889879462252093289087517849363579036867127948912027681996619752286369519158775457805302577246586152160980056875134297555947596991929303890771121597572992533587761874583946179250965578461905489804893480447025068845052241131191401675047093548425566725658241797166027900624386639301560677811327947481700537003022493908769205577105354348963355912167851918208752084973096158910647662372479669371654081866808653643127681348280734080075567461727711914341708319835200745290624388522466286554540766330793510105424903029609000426326008858974892388776850680757605426149714992110044925729595393098159091629052983827621003727891402709287085941112439446153817573649847397052195501784123367675405724619615270680385292842783791471449151535181671097452837710491511020420264247632593657713659526000541875709261178337126411839565100663202025698646665616641876127010614378433532271801130074375437173528497095763169390564789870174831670835517716067447403907555144435654624851551297008707647574572416251944558208575496973758361463133677854811055206079088636474733761520216305807256671025337937124814831615850809606784520923066051572182650704345046737341455607859788477373999874372649373876628396092820095604025479374459247844286271512579822573090205199328793191140223440089604671466863652448049954612668577746778315792806211450638081450176086401667706648813033861142423400857515464077494555081870996873793260511983024926575591868133803457685704338098860179864840913554522706044079874188010503733092512199089054372542930853557199029664035000776474658664110972741949192023654482918497937643853474415876595668998070258769239666520416335442426580685305569593168341899872403605108999912692352766100536394712205735460639996806826228601253352078127693581594443272313426136993306670179782686943782739329103309861243887857731850199086116740548240575060075171839480841791883392377714420984203634034156988262882657633371179032428104872875481976486314839191202712322235837728384684172799988574854358853784460980214146609002116670850146066320027717884988065733986053246391262525365592757944236836281058859562589195388073741993408827272277589530935446859229773280485469970861020736424546242022939045699167276134983084259493942385560104863205778590446007593430973058326875517172593502882803463885486591994827783229540672935201283885386322242351673841014006627900792788478267634805035691672544220032613865214067285480731925861758569315743761335499886162807214834350414959016104139150599734464861211094518641661838817201870777506145715058914325138820475242074073545833999939676947302726316133172950776642728534249656251848842932622044421212141908905601211050020271894843321874989501492163586618326771919998446481789577088536980220980577362881690969739026054623348864272112316841254670544390915066514881360077353043637817434121872804709771404322739370755596426055669475562940451398294719883560954678476857766592563014573630973513397340961013650365960189047162717213176648055582324499823100227831820682523510850228709920860474919852947855582732512104672201474656227565900169052693095828866367352587160009998269210915309871234928169932905170830489281575293263563726301827079830048547318677464555114742622149152269664764299879490923768019151090108742880741527776374310111505321474996946502664224072903889540953303337144364719333793208359774285690426340895774964514136353642817555919795123994431007080232618027029707910577725430516356929563888057444469918392056066015363274778626015350246125586702182307251789584768127691335169108745652745324799544912902670631214361525593639645847958769146565605629455402859714789923884557662448498624287888139672571650381989843017204619820821579823201845577575978807998854559680173218138978654637831830549733105368127743007711816144347253967728133806623224587532100622112690062416976621740434693758682929812819618852742767007835593072062299383737790709888917297705788439613805159781297716572135675064111076584953715805612229994881346093765170950130897132558085309960984814322405937535354023389870104523346403954108332141958045930028154972376322396437351974298397394203497798614706220900655003805857788226477935838925439252496215755126041796443948015994854991288634696958045471810117711699941702405565555085844987415806710785666420799417567378509101059535416191345454735999443188302527062128691503325847672019407044887890727870961668690100959550835726304704650629774559096622649784928039146568849914540085662715711441141299068959670926858444428380039257295961959903347111573369735470938534580650339603190527647718496707782085554175081529578184924027437930653444476261554153303922942671795904042828288267721874017654114992167372720679141303936570643307237471111922622873816446160484792565178877982011868915394636602388475977310905278804733818855322572381366836252994912039892018277224579436176309629740991321832785611588939873761277887237710008326747047277469845650296338489579425066334867007071757200995590863792989637610459900135117844776681089891532155937508217867551116217184369334759726965079969909778453957116239167771479195501842886998206950813369491136714669373951466624437817330591218678848338632757604192402498809682821259062209579702096752031488045910730343072540928179335331698354517530738792251499816280747936081841560888494678626717518182134918289080678959299136375865576577303489496626809901558009365157741795383243225018266688786119128325641460464730497055097916551591380844115893604114162726714226168494849929114050325972195425599626473037817471060447621249141430117730524542327207139306803041119204498235930836338938182328229861774895651995406774635357621538152896719520755364949918365013938359095710284123994606641268034715652339704060795954747118075067221536463336146826877098145959007763404915715289676951208392885032323376588035730737196358021269645999689310366525750715912286061030347574397133931160575543452464026492833063765403986735366511221076054573270765625383723953531640384327858981942701713204763384804548827526900753862483458594505388033910124449000398399321747637911721635886591826610919977133804363616479724050439992953650396676424182369721538666096588594158489643001950415389511245728483417805068687062222396322825180801010430585443048725292691699977522086797876810929375543820537383282393791240179296993382353493573052147357369903728486614691308679838660443465983840270447239629073572871884238899701305994683744889917770024706604987480567595675757233416502103273643318440099090874007550031778109224332855123926131306056527793720031253113872730779605074682745678430174051372853161101288332055890640244512550451831219049586178517990758108127060670992680389166740531177013650555823441564839050872961190808670205427370967753048040497988688208182377040420126492869333611401732458618949153992456694806504266251496436993443472662132015511195687984447073253108843102062302506883355091469756454934926235699568715253532125579406733548529516794599919457806657101113897943461175614177433065458226084005789909749595718988048189245660325944846952841737458998549465691234613685809132371287833965028960323446586933882637008682951050546024342682729416904079170383386786505447749221103954658326466195883354675513231812665918295179210047986366874334260322170279041598379563733590920628192804829114918983742936722825055989543731579681822924254729121486451698447547364536908330154436082938689002220911062077148590740341874178103164723874928190129357820232487762778664642930612776267503622265844715723778178344698097442168332520833532291025097746075064188747120921756246907720699506770653145444075260175242796293087714437081083758691931729441659363058184456374339600114617665859752800391399279495180276555871133198906265480169299742268791137806180625010965431758713204683500897325881648050297098545432508215760668013208645576187133709005687708233395136191065493524652867718572942308143736424580597756685931679956113713616433198337331529593226795612234932044753341991711208641981956696326910586721564191813218130764033425334506258963201469993841999489798228250617862750013422778813168370888813317212274510879696912534520847337366911168214701562776297654327292855990075252452480571835231361655592006026429749777835290206181604117143660200055289618739473767011117053440953295903750302647182266714007207106528904323854419448383184713914558128403502137516458594046651656216698242209992419186423242649507683799419777953123010111735927442636791189310081235278678179145571026359037199429032351734347306242035062032880082390592622561197660730083138464314024655794502819780030568662457139330137848085517944035247433886683423922177147232417642657119446185858975159692910224486142773691374333496504810253788086960946867683010185979088450154026009425675197659181811239473842090262295005848721288545882571784619414927703630509335306546600583130740036070253549752865230652571708808657494347937611738086068743904120967537922132051047364333049554981451751563723647908980959023009323239175099118206784111016026284494812284834330212864286999502197589875704928198034357234864660970408866521074500617974898858337497478699135959809001843337743344099376302658246223309113227102412744060213469195129845041261995920678462811273146174591316379969401296180588059404502302019591150695319491018511468650574620423056405362910808264826049238805166299548364458709570533433565778896885761918450761047757147146380265714446217359585273971731865286518598041898125272752712148992052588890855175703002733879067151012377701896268530414107914639060476397313578094436547591683728894768186922760257297813057785050712773765724688535515527943014379522529430830429630043975264006304401779734039696734338423946413601177993378419164151630269718896373469228231895667685334970014284576857589563322293498935500432976785740192088544760545661071766727427087240417086514656247088513431305890968716991928097556036370923717639442720225232390378694102187776310131236396705124242276221873639281420284725910652755464533873694946178444684185626658478841021806536395364527608997679322542694868017714798796053756075423745268312784421368538980162968983338595635183573788894987989475583320891391266862712658916585268437989317130556674765801758504433770058783868082160047426254201199882804545944006909063769985284572846476605556856524235359862707619050447973432126113229228021795247340016556463141655239356434883391778961364432425842821548010344253407123326800064919397874154040327767547172648067678231916899090114080559295329813383802881924040571322552686096118127310248005231816574679079620336358175583207267669649076498638258214834292903951611388511260041280016387066783700679334811250050872141891043139307285498198019187070309844122815614916009759552698818478245501686461134176736156065679104841809055484243974999222542348751132747493562219487208037013893803962849355638772721830079570864680457736309332968786470705490799736170516596787956842338898025738184553634965283123362049720618017674404619011168590642645232397699466285317497239611545963896120381475986679306083310379411016153020349705965876711137432163576508749831094167817806238507214678983462556438684854239215711680310619008602280200743179029631300393729819205121723669101909323762331985214166505147509695895686682677131615959106907721731225595827867531847610376715157048737064108640657207319092416126256536878594645895187214963627413055603124930961835723463032111276002669794158764712044665452224969108210070907490263930222073568811194975122750828689436551615166500325239164467146076738992966675641113923802806605382314544547911546025917054480202826925331420866468570940675220670227695961333834838716162653642891679722050890834044960736017074958176281837957901408569735912020916636364104423994709032575236004249231996474084533017722209208733582295904288362498522511723059446679641655889727732153357728447659839201203644321546168174408547341706677667020188021502748599290524240055375577647475559290380560821870260843201437556320649947457835764079616127946542076840516333892950252262130627810580643066823584198589992155048496959389275012790982354987264064233642701015950479822778307101369944778648051560030618041721106284677004409122282631139278331443000514570103302866725202934803368958904957168362520371605931983591580958376177724486249127109468527358065235867070249366937989808722619072524028225170651705723842306227866108960339150081345067882018066143127431673595263746928591559919273315545188781752748086093330769430003032377170938419456174184826931540345728497396836278266774105185598149049014264385799553023840550991208897981635044135238610939836243393639562211854790636328159146368378776926852627596730204326296155841765799742066070732409094178309402492694232850402345307415039041001936359738331047752454143097323279467849085568592629926021995887836843407235810634692747934463276227127364529208187643514028726820655544448782635273787447952698327698932708499164836811333249228594057791900318056734858769899907268905434414694041182594742829053112777141461457782995041325240228425243540992989291214041557258753169090920784547938300943392486830002606537700132285315316557622760282841824381178909443588746919390488104369332665365729625869438081342916632522748854654000488030226723404454150765262230173573733583159027281666608552201279005029559188489644339946874260444630143522000764744081907074488666464174935285800929790954832297625468958697356318293437465231882918516364305884832178475180387763708817888958440202468081228518996799609028724340629437935298035204420576674673574452674324123693982584183131512545807946276550476656135600127338320116032730370869121456568044717066022733976091920978301240914460882384122441435400461086424033974020390653391281214459357485424514527697544657690953974634799321870070342796082662230942646538291916091300023560939261776115603997480034266442689567609835096055605750782178922284713730690310842738065755770799560919241064254501070181302215683891743479142438182987421232964373976931729068915331072735767622624735133275235171907192872125714991975914849592976301480079076926188889716414555692544251886374415033407589662072982820820530587526142268825103090209490475622918707205102371199067851127883457697142750632043625751036153630622011857707780864004912427917460681514842830755500927168359678539149603185489135688308000840362270930591556712605956486734257253347342229227908809882800380151846079190144134612603061279135164199420704773558220482272038675780334952143962117060403607338354802713421920296264847545741896020076415721826907346479629584563769702029060144007442333849414791892627611739287699303416601999584775573835935838238612917496306669934805724310947346637372649781103815989669179472726773903606570329688688621975488637477304928974700175936554914727841369658825351438191805112088976258064856877595456029999174352751541109048952426593647540427344591224404308002054670328265856945639023838772460686421955733695220879000315990228935375864091439265517332326883297497574083894473153296400166890698762335129224285205674645826713110105890160332675565457835550602241347839392699829428982782738856112313293147483480264269696773532250956798354756044156103974369163287318140263108273769726471032708583504830526886690754288533932689782451232385744967560660855405991004390240795247488007722115006297686914503371480254758773995975898583093134624550914987085934345572228106921959987003299826711025266020580093797345861213131418575512350892214559435352323774243262390127921611689051039873869881222404558632568994371617762517280820803401427246382482737520057823688878645264682953916596240573793657959777193561973341371587498099467200414137451984024652440168844998596424344715214706630439278688510712976353310807567094453723995985391982020041997958879891648679847586908234724864578832483262075499972281889003317541314199881997053121717038088159295077677056115242493491103566555298553415737938111428713040552291596888550927843714182775491482214508030763304905893687812232215541277548461038724227934305936902814084306279977897059501481756650341771306361788582686979197658918100640341281930960732562313210709297103552945018182519952421300246029937062829139339769208701144694911431238893742704009006063426677426449706182420591439780019686519876949758552996316645132820885831402810187879746259428703542592095729963474179872168418519610968022521373190102905377094368924143216876587271966540474726780907181797230413635904948127451217330935791527490986784452325198121404079800148281568612025418911261607818244552057286739271694200236344783540941412031207736041097646504225192126708682344061423543661021870583422013200714016908897221506949753065463662437253148235682812390128834635932060579645362069200164710956285737857227156183038289017502637799038726337292587819692764118367732748465394932742301622182924608002347382453672706100629301656913701781720863902658815722779709843653431452766826481324050414277219192917616344227017069315213103127279371788030124116182326383610974179625471404937933788127373429266555396366040800421834975295506880893189162138380469315376415814559721951324740796724935977113647637611555039594222187487076634390699734527256339151663945847654142677032829264097227723172861516120416744277834450743292598532940272239884894365919541220663971657424424587295911072280416179426455980578234356405479619435933944059925934225107032709783699897541099549522954233103561634402368276044507590428231029909694890568692904002453242565489530096869289055730589408479629169357728265701587279056026564173769798705711300300451783182161735313545347769827316082425636004498124787435896450918584985322783370689911560292077134527713710947830436161959094591403241644460520040032996683000394506189053998663423062481404643776577581215265274868504161528362797858758698467874791940345490120874118181042371062067444031138765864210460242698181420495504410148666090614787036160432652609480884112980117094251600418740981438185716165088346669037054478811899645949330639977878566417325988405313248536427350781933084578338825057373944637856956890050542080188093979004250195675678507133252134911069104129448828592843964431298874482167117358558225949913971571707503366898940773999612674307714720097037405490911785385304364124097299246385507974288134012940167317976363161667020452073045732843325012369971195635088535788594247386729260996240574116048415335581846521812493210538199891470545672176536401785363354695112183670720044515389517791192565624659416806855346881062035947815713896436194135351127510440160295731582977833549427756822013797274327227922602525815107952892531349868458548410581878638336099776197671410897219338992058283610290660869156339310796284296537631016402262848493043915020709759423864528820818104103516591179683441799523983190698707197816484606520803861575901544843316751764792537149436294898361215004717252507095731790623946807919409101918587208388515523347387814324788603396607665751171994464873125047128218495770752396877229787178637371100522253576461578419954053225241671461354652059755958154741697778944523674544739995904586757823521263827352663911530717975042408280986560942738969123780762930883101336633867336348363578609231807705787000155505379807710158161408960489832388414533762159674712094137539060891097538964374747307953866761620723645592640586127900017579183589344762105428780324883186908728674061761303880565274224252983750372732979627248989749676452003633961204748563011521352591120670287427005169696564232785555612230131831527200499686808704310600788600205021077652339028498675263248881323982979111377380923608037302619365167627387154107960919088396235224726712269563251617946157373605371703559497470768812227464685515237186358723044137120502228410828389436949366421046956316555736134447399828862681409653122398734159413734369659438968158546558254489191762626106494976054282105345454476365308272048956178649179392288567652962534817255939205495710385691485812089848790935937356538090113708987307299940693560235306485728772280382468899795755895918915006734131527724849533442650617098723537413110351156100718891336194006698268756555698552885745602377939874573609040400068628611332923051915665425394548016428129881044201431345624167218283854140496107657702947510449060403769849233943581259303373454981744254172955404095340298693569200070447128947333023977830833569074157417959087049358269785234932957610048472043726595941280969675680040955411840400861229754019871586879841311428630345136528987874606605595813185243306261463804981806794990257430791385464979960575722854344523118348877173532836574085913252759356650469732820151957669881093850854951451876003324115216426644256342622766543423686706215386562086110740297948604715934817755392181072419001501666169717703130555925171557217056602105976540466854818025978953180376965226022159459177724408932335410584636770955156366978088253086765924862648599092880786714143679963499705741900164536880663627406799412212863674491564331030949581020391613190479950448291273641026647929953732990833817048700463743515798244149779470258825853604530659486852303188756415640429148492128807578356114974648311096514875751320088985329340058576045694670654555714690303785355390211035915190347503132967186119436124647406367735251180733996892944308703018012181726183631106313633288887276631803941009578129349744856923305003054585116054090769662518097587042019593111576940172286225314081228561685809978260956426945080607451880280372150295375353146056246467079969928115153951310886593119004541824316529155973849432985170443954365770422974814077164945648766325243011397789051930373713950092789378210214590793730034228678126844494425264506010735489213711615158521543634684654052746318286257867029616850500375647398332925997679056582623102864803740131236223041410565277433950381306883127298675841711550237788072859143699142545538548115201652937410101796097816510037503730005400634602701395458779728174881376067114610383006289561822489605932001147271666602662535694365859224866935721650947182625633726233332278420517962290302476171230322473057269194249076458285029943108182559039507075092460127801735022464674914544080184129772291744560714521307531659490084823075912292453822377721152051569341753670833953167263354083299474330162820338818171589681212079353286470605730383511182493954412172652308501563705755313963741767154863873998088455753254924605219036997723834823671019113555864039853117149919363670195999518557889282513175250004193528684969385171129212729788865501726649683891878346506643385773040544228946368165117203315617287650383988720356142596345047058676275165745791016749195391267686971168027649660187336175491681723431751530881112584053635059325760814343373934506647105982717215331212212755735027186140849172316819675104466296167398286905044592985938009922697472942259317605867179033674536498037637815512544079143328927158961056273152102764594229333239924371616102077903130238778116262581712071062426260385827328152268687030860139905721948789280546706640290422398622159681673821613177202669090409219278028628150660472261139580401033592774957895304155201899827114090411666918744604677864338453370957419042589947654045608958461660647791512499205801142640686410000332475417387723270293269293829727234456790700990342665938195227520905019204808020052545485977272574306213315075062827245403661952671588406318433313600378933228934155819153858149853045248391622544652021710125961110910112768921024174063502786761528315860586925421534822651196981470000696603463634737107554064544088229794226777840586464421128248630255297116195235224075016640112861138007654241266828031531749036732427505392533656203837325721529829748321940456050246227901344844385836697593234275814606537843369881033958771815934204743901538790183804017947234970720455453066653996724892619251687375299647164250105916185732132244004951800232953070590399566011000766583665906060281335989263396803739199615046088677801683704255624108103887358133217003374613153696460690182572019991270616960893280839740831697546948378897677644229031852505935785248878202971846901603588606079792341365160437399677143858460185312481607108772735754255097896657625400750185933034959402195006506462271282505359891814705221069307404130712448204020200290029564865858480323558781750518460443458671105610663627668693147481004432444064821461038142472276187522228384138509602325692206963037043218211145810392953812128210861362983802725750648410538975761693787334697276198392170591752011174883813519995908581026539763023980992419895144833909150595083302483941252730881700475100490252815655337761442104013741146572570114975572641985447699083098200544656934476771924927587400100469944127113661270784068761195813458993741781888895660415132969675930231485417699594897683663982117480190115930245779389211151678344884358054244676582092278268082108815758634975240445762124491807892627282136438951106358510675643698714175379463383921553731911686491165147122633321074862153044951849876435512861026111588745833112876815733149016708990929328852881083768028477861745793972207272574627397107884122228117745369719750905517761242542719883256267458342052405099493415028345908734317227720451521225724425561788147901942031083022917550268108126788122806955984082942220933402691787383859193396838125432868429327670115141681336029555194086003904055373875589652712906189784246269401992834064305078354204807584407767999681653187854208706661948056504131503903737806702254753139236527093458034652502813534991283825629668494967312359914023312957835273738408630631726612431342831402015717352848783097663030297250091281963553658342879228916893249781518116873073796654093899369590883861682946206593211107835243855337191553882893378803390914650089049967507720532497950867599705156717391598241002114635875591353072622972867372545146909994988618814076960759268838836326432819995092113360387760833868720456391023661294115450888427995776254079923614857662607771796736005663540498028262182425239829413586778881768416351693570455543812228915256362617259986497461396680827440906933522236458149194592494749940116031436314450831660817967643084412242094600582709205170125908164804491452649209915096869994628521651823499997406945562219266375269744500686935612171288316069205764268688477809183931694758495899638525814212017563851315601784169190127680666152806384186485018056995866479406953069141804248173134880830624052594097438627295439442942292501063286531383093285398564497739417774860985040219997354217573768923641497801650179764987258461830563179644599128531943392715797112266168348903568820742490040911048787886130219330949712110907014742932566124063778344176674045887730334002815102269629004850301150013384706329731565922768539945929345247714124919075459907497530912775692845759435175051958646265909380323882135278111733124347563285677997173981767167847333810078381171275390900058596342889744991117614742015415227049398089245595180728586821419408113136691539565255531208001388404791217609531733034310388801484737964684432657967667646179145721148232121663744222835919638830865249175337133698806387537446062859665029782023099056198649705475643822833726839329454532550381562116441784185738530055736087477589507362253464400468770357141065351844002297675302388185690531105391375022194471240767540524904791932891121536828229591190063393648639770706630420254146757143898991846242094071462277862216564204937337853666969316952955510788925229967132880883549671813252618938103487785375817647994527668903420720860121304381394846036958253012282576519235209297998895955132958790614097179363319116464586565847548528256906134007762026761172647128746237342876267624787257296901740015359918955369355214917910176532997827522821159290168277541351739267634991629363068349753610884398035832485008995170992825045310312184044605692827785418064596956882758304190093343898044940247115463845792293263467173875927759180082394522339175923504365461296629243446370624877424855860542211390754725734349098948015291452781508153105185621810613798293550889954545033437360599617880062823135426792366001787469363326568311532777071656507644976634581955353423500187850206532826980630268934201593902615949368395403305679809086335603938230617872071571924199255013051285739589548966989077895527289630527625925226443296425525132448763908867934751151349748410922570455071397076765689672120452688033724720530816606175970991293227461609999107097734818972591570330125192136230951786300883369107662409666153654446270472158529915785831662789240482675560742956745610948743739594225478395779992629707937045068263848647180284066098825811342012113467837153003580201749497640503943847373081262534495459086790704745817152151775339627846246981476490523510822454325555325709939638226343025606106856753158952355961165186525694174137439558624657211065246416457533037772837477183496929619272671912156473502846117453799441988115324036925167543429240429140133666429670798486010379831201047969028636419785998467864895069296486453060406573536657580065164096143878465312923429018765362138635122771700070412778797954950597204214379458824457441205535523702510388162292112950196100458507297506174311911823768880581646070098785164224767579697189268474199754929727987346676551259482176252007343152598940189221905129273200623255087501704234554937632373551524698466311949492641328373498207990913417468980624917280173952296516844875099733771874406064079834525566887334130352532470451984892100626234631563939740548399137549122508554967023609662861077295428902094136148325674353538222534126583116999705506168883328381490321952970346769276287037487310283908340949757335950754660694706908195255057245362076394709192561992969638896093853920250295022157184828150265804985257040699789484037647794483541396723315563617610346905215606860417432292391933190771399132755667216733418099430239563472589407258062799270402979884346069683821420134169910532749866744716111956392045678852557991053262328401303606978117190929002555215417837075574985100726190836120161781660407278305750777647669626770560235759532116489557771408109610874776117876317108000411992862905442332578082634715762273445838051990122980134187078624396491609822089650694354326075263388179716247706636640621848172766496462448554834270823623656268280287574120876705920560688999514686336014019761464506574854687323973218956250385058815403676743714675713333210118456819576051281051115914000824345612471572822940450453827336304183587719695184821864779422642028940197771450894378090362381445213550019764978878719644990992965045184068862087074798823809754958412545540999564733036365946781369750021196462741238476981307379409105957568987559774887596965076449303849977015110801972663853007093655303568238492562514963763635875663436340067592800534542581798857767852452584356241120719511129047002953462619661967925257180365579846642655680396424482226706046806478663869362590518836700753304073276369362025199025910929946845701304327956939232669769642057741209829487167476433641505542328888976501538945485272575195300699186479780364970104947841997523097318072984491548613540814047879716906276149002389528733061862254302665782875635285378139299140664055463248389584268716020445716652448598265738673764764116562362250881928010398031479888832703647896436643149096293505464001306517626197162960102518856886405907281574301776766851837328366191715722497746523235115800748920669575950707790531058921313203271906094956587208565563802187003221192485897628191581676084012991648816805562787831206594611921523643452181058806631239077561844795859319276055648099696477642514973732156621281695199708054734461887663847278068777843639142004116469845456541626958331862608596846625084611345077210144303487518518480774544768413563403500586661058981490896392856557047584626771138304666636996894251344314756876346594320183906903398709435738918135601190209678360799558389027532341971916223226367151156574458958115079469559979286578946585892316716164874684314832663934645525235664958092404164595052967763800695900706758187320790699203580704886615412961059899193774512982291430077289434895673329939128050613256532247470796621028602073900641297450117485004347231382462013067821151005652397016132439110392433705249544017497305815892202748258754475728128042925080644037372512226701559451791503435836176302330299049319328765152786614705658909378095918617111887922005153983674680387034440686759918453545321247411073414643147822405426208176878399923580982975979868460293122873914770082479188824454007517211969437855626038722209037906464896740883877740502553769826631032329888743658595732601390662216315903955454920091346076771118447672610088955889657080988730651654705771108227836559503890960034376519113184666661878386391891805122688384272563798509517405338973027403935980415399984059824935500232417613405993921263705881141538952012229773589106607009680569844674664727738986116203946835957355523989884961641949429465212720272061318766688284863089768010609004143041449067704102265504884214054629207696805684366548207101538682960368001488835487786511168967586478480556130396594380252858956890440460835593942075747257363688241183701387032664782386118851322856950822432593759200015247731119804500718747011114003706128434468798573683117980772035160796727551531175939216289149994563146835170171541579815147904581189290210524994147339447432542753557777537333001692732834986457516244091411856584061312133650656953417500585974433878416905577716482722270366666837397353820698063121394581246101834462006302917916659273206689173464685759761561123064665625319956102057853297923004343949191694931023526684287007000036077717456441408938937284193468619221071096464244149816172526688543079703754096160779395357267567521827097768915631242668249090137114388186472385872044189348308218462383158269832451842300744580015674841507531288276809676074347483187778626278596850428883360814931890824754639053018487387641171650058617322396216278118321532343709821593645449300703726148661008265796965734860431773369468918027709983280259570834034183018973799673332082606619412818080875827877929822895234352891396517638518570906704841725344556732629747125598895403516430536796795749433787458965156647952826797386699052460869472941374960161605775240013003134546189191297495045401813455000947157095670404080218175616392717473143813175098906740678110078036473203469309430006361786653286250924565236958432057048945728862929316628534057819419052386663076327130576309656592624131050064099271536016989381898053361956071673248609478781600874851633710687952802561823666519669645359927025202294923665571650722041089455758045365141121120279346568056333696965800591780357724458186079898136570892326438384316739308735269191458555410717408087556148595360208447003191690229704802336015621271107763902273345009992695289709979974959255565161633701670150191350765391641487403482249827918695713882687445749353627680380245451858910854160679124805936513539524901784881045757029398500869745823111640889004417801048396704909171800464146547989356881288200303977289920738674090288004457286691414633075407852349105258552833657521053392126277589622856438544872374476943240689062040947844783600047479075224477105080604915713132461434195736322227136306093364700832021863631370251386184055431930828541068646608922057076731379475674599218006098791478831541301771662771083021994455247050215304292482886137775037220441099750207391647179126031960806304254565299570556803474782173600772821743475972565099147510108860851187351538493525419094394071363236355662218148202084208766980284640431218826297450584996282705629653930852866322433124582507430247236376319323765001625152385082074892935154745764000948342282827331508204097350357941473340795066673354623274096279080227860174880724465498268667072693585389483430768062010682297869673630795241719447996312324720520868311296681492260225543991101916060631546369917432762882578576687934756645806189393364318679001842411219773359420920676959963444794352974605192999540050807354560710025297124908043350482668939543539605247585925268712251961259980006140939059192774948633993848661876060305009437029609308087418914842254589196589825739861024509997851750632681785920200316725256949222780846136669922155394550728316172000432311728174519972192340806916178939534230185471818288624636124217557990941397398073316390062295641455264205116013478348692715622351319540973188999364127793920573089072896517125818371670913724409433558491430726164467899495949450974147259127720615942442499545891959159985418926878322077680985405211061232418151483500808104706340600063609510471112179500057006796468788883117930108159705771137419175595353347431298897179235539715780452041875046871290513329671127098847987531137947105644232202298204315486205557459471858966420697505167319075447781456375754696503381617298797799651053049266523298263948233766929344928394321018775689898020520115058305100239163023346901964502829872835600816658992897023194823783350263288909512532122805102615529005995946553680958070816557737499766877897432623213638632062171535032826766500550268354506508445184637255935151410461244851940542021953524142682379542506801344500574480209764537644923268581460287320272906904634867808623473963022050532352605054375725421134010415493438335849996543095464160843688201872239507951201502464200862185435739969778519492699377021830019685226194854067640439544538525113031853071592624431584986646284143020257173871248140889029551870384531161703214138568922238283408870773470308924581640321295064913358984030552636458378945337290387111532256439664826443365391966378494355410043501786475365096984079097654918517528945081002876428455607708690460870368325331393062803738499899243701099439576663394422627672044854686106864750716907076173174927872789682886824842393237903177827894566177431013252655080689271731779109306744485851331076696587230087809872483053610341943830892404299943633734196310385318481574745554805899698101927753224220003990338043259885950587757035784261983184698583260187707425931724988347188341488103546492708323983759624549845552533696135226925407432519060446359266761312976404838513620613408718762591857479250748990654442090720970949056143001860741795118184204662686987866286817001241453488864920112382015677783087242585337208142603057629089099332392473076290296847077555038868828207450441874359213998604612992410148830192127887626922409869254430704802933084351638729677796687357443146535325371771218610288003434984673879082614635231648061666565410095664001318389207272429601858443602652764356659371236675859871205200347441052638050681242905820062495602517501619442176446827230798383417295375287653746147894786558705526061444262771028041925379275657162628452070344706674300098945470803186719551015902530462572049918469287188567454199362289744268265736820671242830953805670405000416673961640736533492357371481040990758184310449522367338826369834062340057813267358122914582432063868183332438139873748737771834596636526503304492562208073572097846246427325313947935121405323543301439483815571472838203940752782113066900572864487354473592448100064644829756896564110975202717205716214895343074098097247176519339622646268404250446404153941648790334003823232921512428493731105667932111690049667635091880552064809583680588341404842529800626939579557965977224984225172628042314254718232418330547778419354698208178158717469349036595867615152897750276726872037290881777180992689536473204329311491105554410038683112853407557244253648144826063625633761102360283970899044126246106626405719829901349626391339717803103646606712603940943384608953330868627652358879545161979959491217156560422330985115935564194922535175676465964455446101437794879024900415853672697906717716319356377715060300890347715661247544842666724970887281285131884605018894891461906567418086418472992007396952212095416500528821309996178839057499625761096688191579228994470389115032184769303586515722099365589009931067135529625405312993532277515927459968235788574855726838186120657943958633801627069961214203069404791942446936914437569683479051040604691655494797274966311270308671015553667316676822988609775374491213439511825668405587826607395507842911692920576720624628406154101078934589710402222268866946070438217397099076991408522197194575050733140006442778565289398691752017966442406510370442335013051989356145898168041533151323300883367944053772695914570864513275630789596960995713072791301325933791203002876053196599781014650775499742885380422182678304904730932282969893310235357388411477123314981287739886505480697225499638209549896824186630356469186721255832292060177585787757962573016278285100057120333792668936968346525126375271517421792683479451673513844033109039707380673121271717927895467591553558875527499496985853158137109902384223033736835458951353235303475902636515282398630998962791747736643157112613369784901629571054576306765833610115333624419616513526341174587284745491878454474661837784206831152215644295722977951782729654699214106969223005934729483006756456158545160687539546466435443341794621882253715608827760640831061154800550786031298836210719315046315260106085843881503460006949070682494872164987172820424457936990649451805861707010519774233907454758243559894527829194584053934200954529689717705839484578912319706695466869735713462753361259843056264314268357139956269597225413938852397578730743777393146973430042982380359652133656793126699866450100999809195801759084650813981348433569268538001436547842986961541390076058841415844821026878767486538750101847837615894520551046061546850946293007552180562857784897390959594501859873819185901444388476338549154330454953613161514923286233686478917037179605412035072502336477165321049520323590486581151264150578800802869312213518844345012847271996557254461928147774399951193887078101929762938334110525139438975206943061230487336492328039391847280152995112257078591949807077172133496118279712590474920096958177654112879592397017462076260431355361956194036577339649744184405830704986753583067343958812553482390694019087053133832714088845377362175311773689210445143653852262161374527384319635442794998138402285349599174839604574958621770700472459622061801200192805842299260867593065164465306229382926438587948920150198117057830059311816539951257228677301257708105927235458299549067928766472723647597734029108175919565625692051797283456100453601663739661933204553935892331851970882032260388144822631057506614618045788513612948022424106593812173375840752792851260237336224914041953277950382284705498263804494701609956731283879862115641225576263565409615644230982456550399614362450030080776952941038223456924497475158579752202173595259482824991610229449565540310460289815459104365151284786536119525485460982323460760841764886125456588014544368386128706308360120038325595418549373339453210415814815698002321777476743892811273787657765213639902868114670556141817321516125280937253468847056118759837993392333491664665079133009376553503528237071283004787298523752248551867591808629934983203067568549435901406328072585488418891725005875325409467862334030636533088433793583070343489172904478928032319231206137643996006668346983398407876119140480999177697013982331063482780582484754193548801433992441010203329211133969123966130476670608081415837915898826409367754679684857899950143966242784349269174500527402288238966766173433994205321840994172819299989146693115934667188262904136690644185782354810787351991258892506542564009833762367000871550287850664748102739651483800244292663549898412804133436413545808766538670112526408809077747033367911172555246016380516116860048618317498998908148390433657213988133247662106953032637455326709040158444724572763124380537821318781598520509514611987904096541160597575675733633555347649232897398618346138850686954791035205577593485413017815252941396113223718271360455547092542441933711061378673111783508568452276212296605598095001224840588482179060606402547052076395481916872960846796464028208804225104692877471422891717297822267483649427250773418414131514920463811572264703352569289226021064786628989265439531357416071745394989617333425487530127378578547604113277420259136303373881388931566654422833140836007512756066294289269344557510961452913812262121230568545698881657508507072807946402080944759179637839452095469142059954497525918534175970747764369545719292365214056229369052268353548237508489918661636680978655721806756087293993399715044149759366278524826583296142342217884415366914007691942090971062787957437130940471902313003510574662881412902805005964868553874691619193106206793542790138478866147341436746329181206537901272893619715001832264155087053136263861370501144247422422881651042051697156148977951710815345184470316318804286129344137778517453731242881248800009896914700295112861602944550595155729416562838778986678925221591386345046527375083776821488766883129729353525017854439930553957856898567048828799332404992285809821876589625905348570342354528254584313224772589922579335412079026549613479231612949028485727912224377027401094149228902848968245980146500747571566166908553608186498012524995548438400975508570118874136269482738752534714552650026564545831763618069418325669870754310863446784251022249619441224039000722346260260628674646840793083533874634146139808034426483440909369562374630480005634259102933648787464142668014374672180627630389292167531198573693805197439694422250033599865757121823575602620831532791755472406534162159433658059532437098759261217539898327810483291800555310237332375447729543291341467367435554011438296257827349839555548213832691000306846476632351498187714871440105765281946050872381233208802231545837408285268843563769528908946734203497549561492675813449536197418716561377033937525264610942745433686341869653563674484564870691047929588739729400859530275879093149443799181230146267919881132572034453754522024180733605126854584252002274456459831841896867334571945528282270074615161643182495829203671366716369508497975656311217085454727355453662068964557832192590010049820245693037974733177731265446395024204866346423513214946430594211415763861443071648181982037542859330520802820335064039147706424809810354388989804499275808563275709973917338334160893290608004924229584274925722765832608427803260664233476646686014900366444506241443981826240367207980546109174165815965168426520125093826035183933209378019185492004305676140974021020432331839495047267642638030380814075982648447678358805893995643904942917254465664452179945623405425854169619039985690942012311320772137014043303078348835379448881213088825795766524805522008301286000863356568889113675176795972866328512204691845695091838569520644060283107756337223005871000560067524841312032893936987774622989739104062021012926644467746871165239204115489474100646508781547310818212483565257167405392759384542342675426903752363954776364529169157571910250110766029814197501402492369654439585683341597944906541910559000160554857527002485178457910045138697012663564787181481582684739365703337639133724344519524244602259227796607579613860457928638841534589595271404921302386942879985811005474907582478615702188371916468104589324657311820526921455313085152806039343991611819005058774076687746216495201616910441778723072095516266145782109515181553250576860440258513724376434014484610426584788398523078913976525757232431214176471554995448504088840447833246070141203703699876005422065836711163223617021557868391728625906743036501865996801900913048365378654105104276361131467656691081610600920700920517517936307890319742029091049646724356727497126016104349160744465808359380454053640453485420888530714721464359085300269991736770958977381477212633403254574011728342138454900696281682156857882428782966814663335160341162492279206381116319208735485990611431526342281724577578357565679275794246982350774701976153625708348630190814698372184546251774507127021227843714141227785496840328730482463206858908581749493936903499774063556324866840373685015325969676681376256181889465135826061937659960613623592122604439183360228259043590048200715436483343121777795643813570361916877359980690082106341503024912352758397019945078269671458505886443311603482539069575031670378559752009811119779834136367284904637417665447548654019173198656911802992029511456801857555483743351153740907281291045121922084849900909246688664434709860704650050215105663518652131679927776402197621371015630932885319506914965303337576805324924454125279790186595048497790069651522997632226366480088979709676932886940152918538338753010810939215925022646628323665596825519748847052724543612444964271246792366496379537455270653124005526547328626590972847618141573149814584759224893544841193266865480153655796383757965336264790737901469119700067913814701196511740902479871748511823189199195772529568314364524050478255359870847716750720854773079007446863012022765985169650739200917054163363336305443415852659180609745118429441358057902561031721097206503210586973506833557525225597040058332465382083249390113470593959930347633116864182219184524236931931871625678116867546535522961773400637653566062789023489159244807481495446086922328885384253072362814287789357134751590620966974587845205845850305937911228262472492163387718661009295808195951774035431794700284234886280238770946560984757136085823259714000364692212337051364697715480386618323323303573332718028874580319636064670046147216828751882931078004593277364817057062480575690213357424822584117303502014249170511342758952925811227116651397497807042227463658785883713221158657209479124139772697343816313116289704297154214234405190451475984812005937224325604771962683956282202799778120847227179909217183199764254092995879836874289338181801270336501127423624642631258539222320144404092648840626700310972264671462331841810520232804175567270180452972139752309130082144185249188637183209839580562784202949906564894805867785811203082595376045477597546515641975053328367752434804313664764041392186978564541148060144791435976224990393255301634714633483388959538155895031903406705395786603031611240075395611777020460389510730590738731143810249391304551333019728809268727753001140728177364560931588991038663874082609311693415533526682334614896497593043657521098562683427760542220095097215450911353881250186788798766701260177334982848744662270082482339519513259558485351440300284311026335861969278179996359555336408764494918007596380270549305321901272988494330720643886975327006472315392150338872294288782483557508186849206203294453470523648306648706331043867335833110022866398609805564176489271525840052102596355696991776095646973492801598238848576727103399880935943015364148782492040984800320885196882714598936646592157454991331456620677411503455356211299295478348916741882310488328658646128631921005772546892370598016601535330755504384656015838327970801596113250700493134725383001761501367324254041334375110905691234438732636958640313192065076610420388729554886358856304505394914351544334499340487533550312596922095917994834042094627625043698866801086187398605228267720978400477181763808999439982985536281742079733432191076644867119002218052896071210353656992106556530150000969834915606109800895654012405742667898038687700964564326331682921567321037452065255001375932014687268651696861548303694521762059408702117870963826285400717409876607688825081214515126533250195686758650189208295341179534242023988059184701137707169771141400584897266746873561921022908071609016242176255979188539595626905669472756154484084913716942400525564508415777550157903238714842271028486559493176961530710709340182581881214934814009195555814257318944768314895837955254765408747081658070449955383763529894995272488174381677230295865876594086660822165076051189124061627798045992988755712843760676039962154011967281968648276022342547131947160308487238887398487354879726889077112845782931653446135770842229686484810960053456830359057900532057903974465610021951066388457666376112374222224411146841536947965811004152020646035701806548900316075339659898715238479324961225488552983251777888796309107072064256195259279190854177873888134331732059430347811463154458150141425364557767520757425856299741124604977939307740388359595006111931958525422820636691052133829484806457145524752594319516148817851625120411741436720298404932589087536129954036653931600260941861979937716672712785827600950194871718507405503229714468435874681060746058142350110955238936973613819712244087805180820382218710123094663228125338772602206775093104134138313064768541852075677871398199588133912201920704481839201836748595441668796184814757904499494185290696788619277719981172415196206702650224137992249798919943138193635751466788368616203557910940591351566010905577743366876536761928237674432450563678296571805477605078584168155610637424971726236688948198016136635910678486505537168451419715914124858050342798625469570591644034496166837213989684354101658911773854977389991483023572099363592183963306809051156558607012897694077463714381210920567309949592267103768010217867583650937711612787226390892081249024106434255825886430067514422081391408896055486840406168427231690366527233506470608040523433659010511677245332355027304554271371354503648031792687619742648719211928987112067713136535636635545738622011453555399667133734503871453399364988092553137111638853519185834732442916508551090653265773925593254732438288808196389971566689155797534224898748111091678492750877486960061747317190146122318070543109570113216716494595100808413302984844859729980101125389542327487483665726769146761529907438779798036680349020061049186567336920799919025311949996349046179475990872806382109347266525612818489152678034583735582708210362159797150111190441172072638184351511954185446780236281710522308265688436505097500011731280854026367485595324041869972478008818719095133427609800746284434649445483048615355636457731321311248985674755973951831848675058248838588296665452554411229614697222883783328986909056349244281124111441230546705422222429617675754558052062582951207961239419533977288826518861441944044038533573465860806142162064591099032099886740871081682947849357198678637524254573747728527612819486140007535303780088375485857886868263001986499401327741818823242669370447437684885518264880305956656159489448536182258389484220069153312258708480223264504217334263168510519246327283598862526024471236186156691785696845481187547812976362828622789847938493628209193945598269613703983133499577032366186166255591088992978525686503622194675770044198602731373745618432536582510306983471220009521786741695158179319249589399257563825268069116584564239760345931748955080026653742659315471315675077529422405340422218729187231709774408187940634406599558266723967552356220124220632047667785135659642244295535505401658011425746412441175397486458557586088935258016416009283552696727650873622361173427433265819479197361572909284503737277339984013148354897025902428924753022777146309539426072320480459994092674679830794214069761147578357723527301277244722114692092221172002602042094953336241963234329642915199889865070364682382174279909880446170946373081719055345699097369053462307288679631717947952984244860295795758623520248732884342002950922548141036191311556246524406808692371140871442181705422060048583369132692558420960471161921249305278064217806542574349707524755012989834283468289724103314718654139603046247122729296705310718211911138719469523671178756755596655110396894072129050672649128354253582736618339623213039645899734480877076879697592470261947576042864178585243560397089586916619016101720353444286415625362900151699424964010164675168294186402855539445162941775144309699275524587386613350304675678400336335645123079915992660036700502694581355949190973465775207850873571243872956039735135559422412085493918281473923206669805276500160849045392370889396099301291096146837540282824055604195317120312563193886180104151856060472003633831149986587325510806896667712767323600862423581939080107841276569246840107807051712767368703818500184673843868777641942236083507183801672267208563018614963584946598999073470071806760627613495863326674443014640920421290545644626399791416769907888543386471086422693888894805541124360504511166814003887584846895281261811459238553528309015500838117174810644015082388653523043838882534476427294453584595081610952838657962975481262890399750251451403368008859016332428664269966655393978553140376286472962493739768136185275931883154618784927366101758797508291471854125695755201033211277626792472292414810676249089988148639849573549289317585929827276939730246540689291216188181029057900905237890099794322407401639675147752928288644622422130797926021263401451369233636819585470712626169121340937697360063239543711911192399660674057752227016702228425748256467734491684425694039718746134181189778504627256430300624752964563461696701758966957397458777186660349992166580853469523014172024466959354444899393556788626291761096802643210607301180871511489913648248030867921123380564619584044551760196425374595561314890406558649687964175169817084415333154754908803572154829137027444438487349154244492022047087618853672755103292457904208530625731831603746570046402268487813972813580885055030817617295072658142353901200439647017504902620031216283556681347204672527166145676232583275711189725609040056718208165263967446196532649667934072063651256031447802527676431625155278390476494712067414962980649842954019148589135349075066347771183339894317458001585334880276159125231241787905258680225667161857128721622779393132962690991517513797774084857139964831087543915879373649594543867104694628486268050351523561800776928393642682868902172938813480971781358862124766423939351523260548593552723736845121647296829003173567906856164564844248850261676229267832424638757290213341632506348388538443581768338637713915796328999528760701560063551850390434241362247598837858724144402720174333905017232250939411680666882234414632465243990031686120785553815404088307799689721899491828145632183387414681410927130963900667846020696855669337492990279639433226327961241324324942406793869308085437628162789757428876763393492593234152640664689734984201876249302322698185478779228437419770517122141530376794644912722394799657477237215551932477507906848172997226737601447493586167309498841003990065858136928597858953460005257759928377237444201370794271270248813256659049031518041792735731988951851601145678231107982863324282611659128077180479726133856013762659106689522195491860930744320872211020618654973207809853160522050862199630295138263134691329988013994726905363043439846418639653129453135311598671157480259712829941621126160219127553622200519665316326205697554191029793283237018597366215003634695592655949436237469860602496643467703753931201901316741496287466479570640778850120917678849389712994096372230577105778468056510862061008765376854696464474705461493975914397174258683751106819191115819000060467577016643345548260741993581381723347772885835133153143945720255659506703985831158094444680442216032924161544929118875911990473121712646477986244704812206343719857828357117096453622564434671205456440858713536964363339238119801850250950771103376097177355573399341261684525991465647813024512716868024788498904292787788840402441246908955277898490162592910878588616445708979779959559918269158307331758005892932070032241952328551552372919668537790798849798427737494481351002604024771003554534201910438368555502624885699683184964911988285894239753160538805736443933180611295502466049907574131893468385963110147071243880723144995357014193455066654425802459963066769558199307209726261719969543967177994217281430311979061176621796857838444855984466674545800274274428476918453741476229117278668096127996513839011965021589488992776672121609403099774600073585353403734407407237324660447002760464967400947893737674951034370217989486569489705312286324327222309165637145900904538247152788913617098712787755814874595467878640527093049134475644751809409773734134210663980440115296357166877308614891039851776572473175328349189687337546893453008523650926532927346102555281150821647896730153444750010771357511945392554719215351677284476879224078737076924658578123408129487763565828988493948581965719595396650031752274200669164775920649152092187906990312649465977376639011350141335585603465167533863512520210325557426562407243348541879826734844472858748294975240451406378684923413580856721509165550579662161806077066613049202355457226150619429525079299535680517307714578929239501174010034658051014759380336961071716678018152781721060244987509520756940710560231323144624218006943563426484950811785432135779328003672355637074764907402294605588918845984265031740816395650286891328730939355013260665632670227988010231289294268022598692024008611802112625241451930534029077292248245248464161671235312000699110227870448733557936465542938031215325020245635614680712325890513423836228133564101151938028818875001026225701505384121970606091190609671524001459445313457192913331448696392220614403049450850417495165706273509585921812139802002103262684331062637568675918290683801986720683465159529375242649316976149407353917213849655743013677357427761841992276281318168164001977140205084393858985767865276502739960008010686070024730265524890192230754289106272016513047899512492606734384141237325570156850836932650561761414188392518480481692576696439894492669368919978195071128556673757571210111838649983353834440008011514827727774956127178617277965407444300899914321949902180540409265188985263331711024403645652712698501769516731340774893409089623873361369248736365780086868043287620810252547077219242359937308443237160155517927563957658470567894382839475044708649465578516834599898746574265533063974635095313039979669470333338426687290083256008917353060165571222958538356671190758192002256292625506403074605869205070259881187034860870171555822996492787078587812272303603860041437779186023999258259626176877464172535937425474164554084894978145100450368350200590006322167864554695778862810417349089457182273000802489774112250475887636144669488454108968641284379966954797078933426237084438006955619996579314314131814330134908376082451871202194629924236225857885588444164700229150968145221525210410122408230293712441692766459072684273028661304505627997924259770979130956983102188479886428074757980735095374930340802104289892501772290793266258937726176684662841518111443170571154840656718774270391967409657481897201066714440987732103032133168163465130107501448459710454631542306700709806353650472953445441984023150969939580502808873870337135667775650179979377425606206036998589395073333623472986086965672591969902410423152579040676470007352623329088275202005248713196637900071428778564291289173645208928636110233373259894917473732044205878295778228600293669763255597236443293379333836484326842737025291927976001289561936197267960349981661840554996106024223438087400716588828667540366475327909426130663443177108693844648328517670362606516035578678924474170596729929168448957179448389055051395358955028237075937055077404026279160671012375449635825106193137447962360228025497642599378419212192658807231041770935698793362239812535132531651637740732090474066081640346677814523306336298922428779803131513595381315273206860634106697947855884116376135947385120328931826773639506169271133099947805019036099264927614681005928023900721956840964843502651614210801276013421695228868266593415695445800731789421801159227210481705707470165300833466858419649202903598030347324953113761852045556965081534837577447350606319148356265338279369436120996605556449930448684039258241854246320282488215514533211524624241790191970445905608322372259577122315097962420223597521906365519481708479498454153017820368107668419541287109237101169982279395764219836480824663453195951436944613196487564609761117358639648322588127716202516419587229851642570418609729617635286314016109018896090180115659937097332238427397732948971833651037871947569365038365583061131270230226578926689807717919343179668736445782383394170375070124916938397044202866556116762477575020062880369668445479640948530602384519450975439112765578161711543798954528239997384274113391794616291026755669519137307621752691556796598575859075236077989065500286664988224740483376315145393288818888080535213510049035293524112595161232898463768034667277152549191473381325406092633728916999731619128702870457115604245380528698324666970531593955974139882567285022200176469247731314063595555257493124952137986469059144863794636808531286240919499018719041086922329648781098547182605888924849582009748282246312349611156016469044334563513030107779215236921812614520032013990136075889952448591951694886217872119004688093904934006194939166136634621814315462010595622792872627693771147526189922230680146940289534626245571152205761643367620000825952252351462637224322945971583796860588392152879959058207028299792361883017574421561675966066607217463693823365258333416968029184737438795818131456348628436027040102925564494072551981542408271605397822965469291406738489645004558072545272079668505404847632711847145198491524760216032233530572298170288318626971130810622949761261765479070699998064570781627313855934598767656155825100438975972777013069728951209031225684145950317578212151375199257389806259326916345431207598836524327631658318648576257174801438674336376932720726766608979484143562614640385228924493898308624661352341657253520288422955112930504368840279237941691369148120255027117760482415961004544004963390944650214854597450514768779803363545902591533646190528032784325575096550792000293544196911351323279859959843882124079404910368147508322292827070281111324379673716075758639054595985890559305783357613370506609493513118281071629028927625216309442671002109574770717575422419878164370184228639639471817310072575453358747699639393858326158474857784201045810016594195836517608410652834072454719235510338873748288883521412870171788237350974487175974238663775059768864333232687551206641455431653564258073042295336185277193825015843683699719837899731367629818923947005785163788752109848492223719282646286264447182949670033796090118314820433673490802011430723931331089543820788656491313624368934960324949979108690764268236735214759104703754720211271372877430125517396306150693676654472194322298947152808883307092377247521419203763082720679171509140584583261623007745327822000066381953682843614557738721135328295340584981346647779558469067829993887208522628839891237881261273046009618420001849163587713283649701698286283437184675498535693159201362113496415498868722490952656620552759601339564418845900773470477550389325901188780143874814733054286457160881383831522183005843826537383584231679478102469129120333684576200036438723501613037788304493400438785430975352213728654627531777647915103027230189520089191094370048264705968461010557996405089986051984462505934245448980219636568126639368976237875965692313909757430238123841214391398882318666750904556349348076586356155614455613074925334136728815126818333586158170911868003007954090154468780455901439382704855217762057362980358359675238027473264923045140583993412039509981417145058635824624753205413424296311243419306490949515947656070109125491249010218777015141547477228587214624694736744202665423597380604820831233420360696222306466921925237417041184439859059361802657431463110271376415137746312408738976378472834563598555969143507455781794244554114665362883416279183606764226461812514874888808799734986252008685831100266148148558781813783516257083735139367456229308407408661000490984057391974285706139227541353968946607144106677141391111538391638840860789171727746578083484679343016144220656958505906048792744143399330288070008268207207725894541322614355037951135271544948931592578507873305669669807006326173353040106210170832785853952121566219145973497472137231650449512200478167195887063485785635603447925032149475247999874913625337309713559220386812751930436253320009507301219982786420591300089987296055241078261092711612629782348541372837758127645313838286767626490290653317147000555617474997454221029418212498487284230883000662890507423123231701038997962836329257663711479008390160585001124237968285731029286089453222296650599990055763736006933507686692265937132156453296469654261122299300717389081393808291191073458219264201172969326595991708810462735742170564077930248267386605270863893583807660133952222555618063555025323344198567536774366630731147357217937855114573201207006661188050156227955758219574446495677947618220179013981294457802831330249314275205384570801754918333861864791576042508205879321001271199453798822637528157028353881837511643757517210984849807705727606615127275540993293789056583573275677608144688362884296087200458186038563502248950086681959532705264700011885013934583161205486736331113635610812410717475031487030780010469392735535871400739189893240997301193462162108700816985812677356894247300728534706689047380017523144539241458624912333005199430987646370049443168977159713660543577414131386796469270095426846444305323127403510457148087644464347968143838750206309212843556458325609968537214943866913743239852818860651725577791557207666361467565235579041588602985234768603353406526193879726438619658732593154163367990312722425488677225641911198377518672412295925230748135408694769744158784641405910096017953742621734880626441106302317817708416521676455808686567902684099235511488326452752980179844061237792845172505052749108135761633329264050875491269301613572819157478583992306397475342581171152685228772446277309999271138660114078132831057551166229072480290114729123342360843618045399622332242112888138884672600267749612183492564490189280078676845882105338966187591838646649787879975400598503971476197970118274464985721881024788657766766853098910887937551917914134153979032429149650896737012227977418179650183833458231360387462549399258132338612930531384609540886755284259788685023658505256487607019004493743683474314563004820649118971555340234193021462007316961791146915934498956382136775803176364840330840683120390676709787443198625498989580382958489780676852891942795280869259083898889307885934337959943901720254154243459792900280093486262839488491043142943127227859798807055233032554514586894131448566348051442586169618059811272771622130939856635930196653913401424574109293469446988802764563336798401353171541443323002120627221605575660287645814002654960880000458960857082058914973556583951452158187950267990432616994238540949422418792976797102815282832501627504812558413915923153620336108988161062370537256858587485928241733149670025536028224655498054845543761791649823969237464933202060017500327357880745644096562625684626825238489321047647014694342506780258936037878557852999270578941323304291918069955757709228390963868024133701208943014775225805363071708051336828190469123297374749378343055221438671646529895359034145806041220597251958777729353789629517839128593224182105092282214614346854947759685023748604060798835543514623609948516341782540923046229362144206549224833533989075625270389189427064576846082961820411172483914362258331090813295570511892169646541615433234049949157376061601854468642425036640793627466866189341188185133542338798956625981180662877190824669065147417145569965162036087577380016271626656212572296736610045265792803911736558104119442317304902379503699181281062479150063655581933882662104663790828526816363992330748457114269230549989309129684024593514734542508054494614323923056128923089352973991910484633377392429511235895013035037212992670138390886505436992359832988930728547850904434262815692557025241119984260085988828267642722580062296377468886778898711472187365579594310419186781383295506695588176888482096370954629042181547560691746696688202349395284746502120197216740664110094952391651063904564047573447374435915026842486018536321508481462969250420381909729122494798395834695545341226081622828195567097882339190710479520125337440884517497649203823527084600660015090900875783263816835410927863042136220410431611651217967809553152103104733308125939336944303322436015806871775115214454206711528269583661401234658407583449649608719205494431233899152791677488756234803184457060808284704818627255701904633005835923921170369875774446515993862644643207623745957053447339577195768905192942953992350407971735921609862811177604631162643512193305350997976975122721068757167898306936797810027363703950933093830757789247830075441223149123537077274163743318869547395993463777428845960425845028323599072651648973902215443408749493182145231432888709801909055828949819329271964579034790358904107023036336592616200534812486358392402197768832601592407112821431735988516643322805266347646417060037039098572106156119497245983992558493410392804709899204870317895047279201157627554133907329619922376054016031698796247100372281042446666570209064027196125480520524008115040118937914939720680476665501489248977667378518597389953352953214331577926748976098036755828242525693802052711097302178081814021817392513803813381557121837575430874493023859365325916367749508085686063046895440345470336344419777223392247003542803949270686477179699160164248301803886203132168383531646055800621139758129020106876693158953117616433941341300213060542600353605858266909932069576874872426840392082580943804659609806335735151553369516826201774852673807135306894404586455217035718555817040095296371326899949395535749449226135123419638066132611136699428739919297436243078538912537397910423666133645476235620752038435169347487724496726674050883278913189207707558588094916671623816005160931920664309102551784737519990932974457352910366826293413254513863501849910305715924120736717132490887289803876051568378653713998253855839062199519357212778289570991875386525983306862978555895974497824805589057582960193367041995033648021473291898467162557986427753521922036933758693375614725799516416926240910744097611671920969235404207479799506102051855693199010402566055036860193571900342114163522022083638256541562161015951110761186369903382313741725364985413522262890544438418288022204217276521863700119055731524287223849768296280308161707944166756193064082750281511283007477160630422998775122501992808543744503955634953666228745006166630963244544933541994225402409381596938185972231800845098308732170975984974640147522298148978720833411924317531250463348533840072911730989612326995252756498260328835148940875616233351205177580546113024670306826926466178964277976296474597369435911401010217579118576854214620941978272493278797499702944546211215028678427417555715105850700124709434417979046620574169068455153229134995276481120867844010052883062578761638591358421743167303643879381876618268102362751878107924111363433657867352894369423902215649307439896704611821649834041794897216907912678253222242690779958205859729494878993884441670542340773181734071816465243440920255792126079980061032164278990262038497389592015485663449669022130970647548993419998160487531096861561226334210721881566700984705303066351214153127542771907384348709045126248835035109827442424551788965860315843470325545993194029014370609273065737503655041858389282103746026222242656464460503687499729250015662073620733570242981093944291086712565895570351717765704438549358611833213824286940625984487148679804105363825187440349554176488650881979876224657883057088458941640476651998384829987722029677663521513003846292592398208797015097799921680269970746674454561119650187312771603354738604673048324177204761224494691680214559173241132601346175487855558938170039065929415321609122526366636379824195516686765597811680592008387628813795807577156861942871128867253232268884617696698173020155582862956180816758609006922636680927876062208729962769591293348475654290973591698156743647712052437270443925476935233241226169052968433412693380424697566772730848008868098852422943529035111569809840551793538437259033013588101522583696190980613361317144546459041626563032010554720945088384663931660987410412560465838395811331764780924923874275776482768963815461300685054386746058640030028808049766236569811747276729761950726257992817260431121802214568458369925704708671902590954161646945056641310562426003582016707785813160985043148424641765302503163575381907007745734020071628416739096631421698423584249351716125972027770449132357244195907621980048082724179753845121237795310541429150095538128410097754157389145281487484747473186184729335439172327172917257180753605873592585097012403689067085758054001541149581507246091087148140886524006394476685790528967750373346918606618184556762790397171428082352268110089097895281460157224451291215191120278685191643385380614870131042677122244235193112600522269004495556673312130503859735651087784998810025247803210511631705457286526426342173168568798812452353278743426502345485979495686811741771459091961949223482580167917451730440891478849999158910530273966233807934730407589638462556343549020063221505214826475437134076241167871431667345890254992741947499656398490406339400072694140685554435404256747026259646451222823281998157098480911263112876536824653506165927286413165237388061985566761803845875938981469308708664860218534499845395496479338040391924891982059005126903274646866490147399324179165002435052444002251790599321048561749950082245265052931693889023550442654214741876257915984330403500238648615930926025863121668344841865798811229220219824714471191071905935909878411093989837960776114491915584962055706676250441332703596509612149705781126067395544928143100370553202476651292139344540798385555958419958498845635813037223498332680371531661087643141961540076599592006098806978616248958112397746245509250962727405399694804931642808773442121067418498370224086111286241489269719214363903610949170495095895477287221909282491769313721655663434168079540717924881702254361210777100475972771109406923514519405092775632045730388849638520192855940003296178287654445728508387442366498014433906729253962998807179346058012800191065748303963432648733754682786603532488708434984065166261196132282727314883674994933326694458854235785039616549053706412953017970671750320046680779145430953518784613211609261747386828445470126519645352397152571714990202630187392282240289790096389836659202866394135250964524870041416387591839816526892116241367024101446239889444788443180488574638041708664813774823285947835475306498307110952836176000907207252938551943783762743175712872770882114705966951789640651247308280834120423287219552405293424606341549900698836335489582959295146086809875010075571796629837696133344553398137794955086769516251428481756659904326807505540763547866165290786005354785450663928932104238069513257912121181790432419446204018939135915707016292581929974311716839971207038985343107898437720419996231044738368347130934590887139591767851886117821288435330423067992462894628270672716341266418708067074868464808222450845474606486353357418613096218776426301061243424503732577150302553967991630742339159592889806424761233400709695657433396698293274974767307126935931434347991924919563793228417638755626399444184733683096591470656772548953094134609363659012675746487459186000091431364046085917690087954997160784565437831523980840991627091702822077194544318424630258516286510331153023305939194118568433458025587023839888163607453214803840328829223448087221199541903391788831541446414663886026622580199175134588017876902067105244300024164795827187596329896546239448912839161487520791053261334218284774254663416173585748729056343063879529121624517695616738279966964631379859501018485176703574132877603239359618182139921490734093746728868855193046902359085016650729350360096178989494616507301274262182723208605290178708624313105155754018434669404211323045217192399330853508397333970240772856140870333686668160516314559508137525796120474720985601435450888396248233163745722080354765926439751820891122485092171107516688149348388550815047465097328550392796792225479448109202696664038155583886669154615911818643581713466858346128484802419201189450526600384214253325898690477352359265992052431074209843892640940296432695983038131075570713548312989211200118812579400988488902142522107037824670541514791183821134536263816014564553036965926848212846176721974076909849219788252932622071534878052839667346494093509087547029623581687055813033995064588129274759249365323262477961718694677921531372193000223844531181254735123731415949856508092997683779100356903077715197771027650308255035226177488371097076072861254735733291136751141761501325861942512682174358637654295334892722698054571860298257199317062180702331158989384962684467696702581529812769550193460844003392582799740394267700768576406680473209710408458261810918916177531065697176409603864958920556585171474655769574009938266243840654812745797357402985573659661686451635267234331889741363880202515888404693856928257464323287551762299778689281596538728214563078072742401206297902866122894371774588414940869287285318230490232121495703190655080784629178012048330820016532972186264499429870575914123745627031071465116161086007849797510188160660713843042164107442804754377924463619195371247373261686028835736704004475603356140794209787420815314996475164353013762157798142789635987397077021574373330633238333414439065419037269976170474027540307125981136580092881291151640211124354077932334789814873933021003729149400723331359304615381735979797526649148775453356883619517720923919272492117752847166039107096633239481234393475674435687721670373010357135868266028554441452048464967618121542371707639801662860829325406533615606505346549648322618468252705840739259000657027975680265098485378269274247066073997448652415666714382115366078668964725599304110006674334665753490259595651670525388727705800569423993646069412890998052530646176784213329372988834028650912419983157575463161080021504135754031761667239421356011726716381555931425352036364486427792325926421990643714700095382479632864931092008407954340721785494612208643400247643889011644091705752957799954165568891963514020200908102018846513132210425102368681765939048662332935979804803813988882277450479576504073525981099067554893589431225686203255802148743213265615156086353743521707847462902817820804168703414383821212210793391579635152175769975848786545779599469327394229279040765869742636539207415516758741306964063089234193029412810770166314562878820979184683741091309985365926276013877966464510562295831216231018808649349834165693820070453220550885309542647102196333685236045363986924160292636200110276639133367129214765749985648994821123049848141605749869898703117297126846322974701831883541706620408036344439741335940214868255888135341129613287830691178233257648878402654496433416529459703992637784581912540644415175898819350453781980912145697257428614773070771260640445043517817896178891794517280799358157212074933755259965287899529811643586665814744069104612352201209279641059724806648259497214514686623458048823289396912417776203013036169080841449076745735598202856318045409214910605572777350573184863120926510595811314264165186797053389784799800577031250455221748059681560131266154571394519447507596868380905836110569836147269193706351610296370531945594479553830960612549211554479837913398956327319140518632291266296574512191779165774994741971853532285506638912846182415550884004266983324533293483948647754107912230758409087346640517118967447063647924833564302833734119975873167209654051220274268137054276913443900034314390980210368072562897576533183039890466657393147306847750821902153945578981392312041739654257555621198602818134366045813539963971560128668998771698334596981266538909647905442927954363121263613446833481168361622049441796750091956195322495316142005707778316285289320349138534270804085493003651704225420172588761233278972408299719231087413249748663617363040810877375453791265201318065249319258045145302036444884718869745258022059499041121864703373297798385007313219678092865736851244031514959525255721427918003195080124577875613772995659785932408671624802679973877705159406487804310509128826520338781740964650084417640682853357689376369573152138668150937145765340578262840243993266159733137806784924027802807852799772502694962675425332096140735222612182440210725827524598199736982260825245219884138649987696684171706620397604092544669351640004206110071321192353239460064759558823604232535254095011191042940899431496987164762942321884086448152068396802635787499911555439761231150515169729326606930264787753841958233060423457176397550301750396887680117704106158072053825987797213189571066104761856337103671046423242200967970636046800953184271158589376574180244180726998129673652175587483530122031691321449961983046239451397010922051076992258697852030662308714792308495365763856361553475158338073393115036702528890567386614169735716221212352544175614238752700123095355825213676264201636205969922211987472818378612093544037358539898917262607695261296482237043533298583673319847340947524590207705046224864053898631702567552453785191518476049870423555060550577172849850138215688008012298150278845505596548997437053925443207202739154896325816115198400109079464648904113734753976969122054958632252166751726295227992439519064985352946099298395605990738856446549738793219136850671747668506104304613473460415603031565363682150264439631065691518274293373284118167874115710342105866594871156189420457454070871474754016778030274891171544909407250578931227299311637107684430036791831924685248108098768056187143035286835704013408915578679593455781914994129903970703329888612272616530435301833221834126272471124748954810117154351786602031166271544612658841257751538749711998897878073933833790077293799166523602802245886858437483239620769288536011160935165004039994220518547132353167871179169846580600405634915079972323423254798595032997764312547581990235666309385647051748620363227050849107270174877906123030340099455415627697193974636286468203440108745843998775411312192102991060519514368564406609849786651679336793463576863984639783972212310611569009976977468927985477949480479801779911771779119808392910271135260338483360594164611753630380924414839777689594930170475698639038407334805155605181089548826170438560344658648511583197394319447570231577463748412396694366748531260698969463734847649008658042758703411444663487783792002984820227764106544633665243438652181113379861716047579178458513532496725703625591068353129043462869564991610226839942988746485951186129432412376422696598616662619723521103585918436504793541812212171433539423490806075044533892245915504696315407019990402535210255104951622917958357365182907678651868171146614660433941293774710792004469489579914726430803470801467622972077147885205457793649722451323504110539032330891860444449474114432972110031646602422681030088449245479707666165550968557096458761357656890807621898730652697320671636188097206891538138721557910025304296705539575060616054544404409742150152448004518493678069098148755434214182378670004159809223424246912497604067154953735378344173501138571809837677016410630968156623539924070871292936840333971918247951771425586556872819221675754717924530742604441599503109795151605415171265558838712172953876411046761978663235141763747065418418124650097875788866321981980215150674762563045335212929166959460667020111121209755072648831579848905558528262105777652984036133041429698589300404412592070829797852914578489235379429864363480654731418883239750300764626827758713804942937766846605340980195377936265620485804984387805805595429801111994339188462596409918677554991577432363018662778270428700940838883684132795721795130227522244479603399658323273291775520508508376252518821009537950011939095121197888625910953960992689817084482630997763652550113887119610486292121634536846892041058111877307142399967357137575890781955944390076205968601675512679247347667946188661028503715377154860371404997447483672613271304516771263749813158334203913540939842951185279278998453915633811297183773414938499195661557877919784977226746701012255791136301069852630871735047457485066965942305828438930454385365703699947944541452882100546214712647251753056002736336399171401777035486644075899778160038418030417730176571698728786418473800569813497684811391645014023472963529364809271882538620015179037623140432255028387860339694699302413623751911395673742233774489672847184134474901909122330589507310973190872632992815755543704434070335859093830047636573366252458707422012272010109712225069261165545240146975200042402630146692016004852266601909766607072871045614464202006746692191654622449371614609407708597739414592928181960125233735512198960928878078720348080240386257113162456276264400897476847804976981016289536017020825231178911422566695699622521443976548315812969417688702654163956051750370788730897949395647082239450205362438658443227148975155390393294774121178508803254851121493381368915882600061236813537613415040552476249236056215415815095341979668659781225792848966762964550347729354412255951613170234689351065899004241584306850818484164822325812431680032500504676825031099380148512913577494218836715972309167450885601604625648313132931384043701396237045285630833813886340751983074818830785539295319642833913171330992483755909483908766252494522761368637051190294836163011804885428601828614699827703275014563018433744210223975555704056984313286806080555066956557302449781958240758150740107235956360647652261000459045597821145035760171370722980315731723242446990856074421039125511074415441109906316673077769284565302157137107455624063722578930248978039552635704128330098364631804833099463040491113019898214084858994041068282035928497339527027147018454962229431633515027270586667977807840972752355479150486992457747904577939369756844332365642038423610024952609813979469165215893936511459958761305890892149385308322361479495231526727806865393639904585150710041328775816438214384868471685425490511631358810810592248399184181929001102132676015924847329135640303259883697108102280678142305282579868440448167506970615496811968064430552176501247814074793027367513886881940021496372772828633375304142259802394056452851615159211556973735263168962916287255532543219442552041461702329238667044966181278943702747552574117011029335305217689221742866509318573256688706594107566672550228328688730705983281110604981207526085526433849800012907472127017649962099799607782036199297078070458816574443847048380161772071500504973314198171885711837016087425295030324777528423411544635382016116810508023669369429988816749432019850651315529058402388158181263204662347028505733113403167878771280132701274868949262776872249794552217656810162978127580448466691526156789826802048889625132626604992338335586970201762652926727441261537740532857312768243170380072269134937824213565612644704207503871781333795469554754030400806554463416883812376977691628338683903442615703272269782714346145312198553524744590072133188681599493309697539793989637460849009728846876696242210157229506902547452434585836623228820591016650321426906885528691823124267601316269203172192892148022187423524300423497391009442722456926335560168308920947958040037225091502381241762163446157507544772838791221919747341231142202480890733804693097055786681184200833311408485097599367032136085965160211299278183793509668553285642137085766104351284552782980812921077850851505822022127017048742170492154615061532942336220146592149620033483277057530081547781154258481312403250649288232650962186082785911314271855819472550890522989394592099249300499594486379213491729916512135574131607428985998376800002562580555623637225707883739085056103546682448059686321424021792409396101541198092888059405783182933221041036082140255419211078745358062453233227979962629426609639211908040660934965326241741065529968868026076016235652244982860969939420404653289980946964132178895093996333745342265653849779224427267979577233565291659097690265389432386950157528499015518836786384376743561283970081969659685453004611181384353685945655590892061390101297270378672890234049994270190150203023394381045591822400264428132660173823212238647181879053709207035792921929830749482155947828641364078818083652543128110777727904516965184442255681977988498504012501113425667207618515234304959354502622914505320771524209395852700341913725708971715477341263689335841771565444516391924343451361670747602481451872514284003434262257272931575474167286726594081949830695742563661240213367790140094993742549654436134219078181248985920566286420700017697421027662637552048806349007178809600386131204287745405891851869319162966375360547624739009135844676640742464400349881489768658696997238905355509908623328006096167189262464917909824044102708347248287016163094468432379451758255651138195928173823434712401136338667297541354535322713778669970637972520458647726110205174272361812795838425281602839023666788979029107009236600556077037375401327876998349813899173232171325922322790687675829236847748214512845145082648951707261223650097575332165384019870359848912934840786606514888425530115194394957180705221075839261598002326995245341895308351257790044017972477551240209001651604307519986077367788669780272483552549257125644959207338627898666407098914739536843051254695271355818672611240223705197473794008291323193931782915996159509369325327662832735432213953985302386313595145860526717869601345408684637630752119688281350112307266379665484288774221551096091779074966358975280693021391240570279564543488812844910419592176956658149511323654096314134445065717920406264699280160512678894196268096930710061851459466506799282444965241304859160299526355227065617637993966574760413882065377262228061698319349612807388073866871842227281113301627760799864484282006059789627437872224736790715441440512536321923429248647863707602299234050861889730556695689464623483429383883207993668811253713457133499699536156744501189506005431982977854005480100076016270282833647969420967607017123864701161707977422263310970616382179039283651492885347646933086398652113011295831328434998648568618864323304100982290109678997109910991186656427576635713855370427344511340325901006021362442905732190475819863641947358573577403607167787500450426736450487948709869460746237650879150430098886931588363417295154495863996722650061108299614679634447241101995305555556369048228598821373877745035428860978550510745932585508187314585140929442978469358977266329329559338229185784612831828575992647932236275593426603794710359361244833909682970007833157501432070323182791269964167464522274409066458360611590620314707768643923454012061577674258570134265746671180738850729173638465585328709923594356541933406903138848881235463406439825794076415914521429304895332617075504753881274613778116430558388600116085577458555035041271789696574155615930915381005120289667734564275401758536606887286652962670856382207430159685972930077778218698675950890789573037342448576989034156550534168928699430821973058543632841137802486198895367218964303507295205797631569496720141907629593275742847466282735759815250423665073597809627171728159495964416081418137178017307222633100895610215766146595497705565171075747265162902039901953338625242778104568129798262043172028219317202610719713451170114853122833477890041631525867612048394547658179673667515498105235310634440754030092559467249462212467547251222076884187082940463519208646659961972286492931496409121884735470440470102406069452015756896993071530919308271924073003374326371982611812778473778641498949737940118208242841294264032473806542302269028408507271267963646777863300642507167168192006972438445574473881386594525495288093669790263464960554008849108220037247351252569783490632032175823836347125883366839354710873659200223028141662077480500996876119598144970495957681744846736155207716118999950057605626373002237524868534265326330843337402074901070875509546850409524599001665905081300592982554501751067901746630769207828032624587012914791098083150043140244285520624976822407384369169794168262462486027606728204297386687054862878027279137476536362990951935404618269824066602066425334916709708500466526058294662472342207774127599885449760633483825880390962149000850622432679905999401870712235086247801441706442811958847993923787818206574858133919517327781410081870123253621550742453101809053846351040566516495080568059171804325602581724878254488088664502121026401083067035247767880219701413699298846527007842927150133584430892086704595603275310400243131142471212843300589808132871984773140575790550452336498207984455664101217844915228120960768828612978374619600234416852816453934491054337953118649917990623237566453762372992879337393780518016245322042983937316679702832877251664347393519014798735161807654948994112078472234295603487759722989027067132302011633259994793598237746192534688705163873228497713556504566475581415015191174781993119255518810926239633607579334717781101622278855666302968355032409154453078656656216993444288395270067762343930389956923312755353011707904293268971734113579562026962160700730608579560490104415009733445311752388876988164001891540726036236950552771581901473175913665011704565521135759497951629109334176133989616266234708180714315691712241075162561862323952702449393596293257958148521333499787514062726554913608356293778351467733105640333982711068042735547905876812804446492251670410484615857537882857157167170426503852658685563531263703490880764183707328301078561725318902489142155599152097673444184456627584459727061696026767189307200190560808460683456399036590106333735228471824033945379661940631399464757014995633747717702166180562829232894509843345142647529237175872121448138081689049982201328774162284407702901598834063408822514948999793331480552129620501552400759395734794674633741999043666566094911473487968368386653380836621947965551286873167359673629673488079908259796248217315524775338459802994321928672057823430924163499310841392465935151942132914436618798818859103992656026856056157796024520004856777064367413710277356615313812041097484711454266681884235911977915677627603271600303234607559402285051118917487583839075772058357345443104068882291116761150008356897373988566692137436855501663281446089027919090365987398464336074776927719894416186201845926518228141602649107097827422947583387731219366883357376825329762091172854219215801382059686737653857168783902422859377670347035932002135240307942432600899442104795356430168044071257324883347776429837181873448466927691575736290442379660374678756605510822818479668433973678084938984000686417352322309961772683682140112575236603506330646057626023676942598271728343558993668976198442756894688207460742845811780952206340838129341023717833586554770513816115702527781069979002893224032004246696354579936260696997993444538063324692980630343237860512217635714297987692250113974065610652816181253360728139676967645917787736005687963790292521099663501549301366686108159951047382401634868043305563172756392074955310194833824203704859121581657716779102403750493479552726982352288471889825961578401987767695312425698455727500772178464524232367709635007469522815536701303251819105997379639733385851370777897320289698836290661588233172000264771432131326872609364654976626320013320966529060288205153351700516395486609030693975914192564002823707753770508221799514707331227613781877008601939336269392188476897021423176749594176932287402281257140456744586483889178850511891781974864026375727856245251616980097215303076865485163881081198853717415920670596294486688951225662527415385213496207893828672387935587247374172829089504860293581614896674197128100385884976099221501554778639677942189888064805915193291645462394983200692346440822616822412404886154676912415796302043600683833992228569791238436454884139094548093779429438720980164815981615710866013642989838588524369187047009616857035859990046660294098263617805180728063685504971089843840881175455517477544097643023422933259598959634189642839325426675976876887510032988292456341817298599527968887412441075296231124904758638026868837246731580199731994751828414012319022986506211266675183293434122342681553268507397816804652623443686752215242717801560388490394192689861223078513935132212967458258663962610633392602033234124797339294470108310697350869794026148467232944153456104218280706688971457032922379852652728118335191834451911897514795666903175732720199561816241370327274307421557436504434753905554173534975109825335375029111572692354471956502050781527170070085518031006165577089451062170466838907753091188484777165938688295132139491952637856092883338740401099020616075565220925395612252123273056583823632721077117857685402562625250727394871978946702369746272998929204407075467479917071613673298485295718911257884444225614917410162640045309141870609240782811652355578050482820564036418717016913321061584655701483834437523922710173310861431952473104108161887830248039128049097047508724400797177697454197446573015437235775245877146144674318871141834044763493327154265661449812836457125915282087081944611531968284163741000216728880641418282036692238343600107314324413836337089528678453178498496633088876317820345082992218133556484895050133547538882763149478206343426417188041965245810267724285509937803200583329016458108845817637482582271430034778340941207314481974688258010541423836156934281321785530074941601197528806733329415876446505167384714459399618528097523181864839078601383592696874429260795903370908024480872416354801251207464487099935312896886041452772465114096107589540580874538876772179610741925773980037577622774392100224075704300982345650463620636160575578232957810128513358600912649159404756181751887576608325798720999189967284522331249373605401625175888659607711858027437642167451837850459853034341933942524480768785305534581426203065745377008126703519706014608390888110531737097050484111624040215423905947661384006996160722542645221189382060972356972817714953793694966218175485722693053381172998829876104566738711832135008437125991813441309851110042961821048575838040406645042699406725586714659442879769343198265775205920928228491277831586459262564250049947299552222002619117285494890364074396732032764721572891217730344520739335060149029943543748032082079579411916336455980683215403028317036781046493990640338662737257112181703901850189441919450722147195102895720148389989424637526720943294478664590920766368735592339092207670617197218272467605297887915858966464590769943534807430731914581366833470800040691236425442071335281551000015476358314636751648482937146994501772986489188639348646402222410495282592437555068715994238924612658883386052502219331938693712594321777915865265226766447973042182170323428683532523891512891944246839965998881805453695170971551528843965509206194611745379085369488817893695827856271412440137728471426478286988444937590258519698682976134673950603827659667138277809867378758249102119093425493012156459928231827432722921697498200177890060679726662375262204116043673270968317238524485741364032813638049985694239059153584066308479728343998371202240684622004754855027366136931003215463023604765362817241282618177477161072950130058923481996152293144200476496808109262655405290356305170215115799395006453476834890151215179338361114823164342542518470729165853666872330603823779338686624333933752168387038729792849020183766273065343381157151361182098411415791311800171166246876293213879658180047059143524465920954870059855092163601946798936522759695725627176943496421287680601449748077007215680548749374258040974705656736451183148460071623410987702693596521938367714282495897713922160734114964891061688813012665595754582283542274724667845231080267667917965429723205320824405649681146952539607673590019206788085659021343762665525083831217107484749066308226921729485786945859793329404650834196980398653842838578784230255100645151301647445194180745088424706536900803822873348810784034926176830160183048244704045203992230539812178626362225685792564339951141902095937263722517070589104582478392154309126066739855892303883799510443319123316984104557975702264540423540248254554433481129110965547901965084902457026342253810911694860830718076142971278605128462427387032726692203066883106949561225216640491154474246944215044481649442485892549982603257431723200407160875901240463733964355088201440963376588645541915721868374842751701101727305234245276644951893821650147916369334587165073398790331081227371404351658596453543096899421857285218270815883926537291921856510511881720419187701671406685713812557314631360151721315337766494040365375965827544338337318250903026279603964500160103068489198824202369555297402077324665883621275789938636715823740831444463532049418156691949947289015958862766626010044294210826775180801173059340386261334876173501204992237282431292537139848234560214431347031987904544554790605610373571366241935837132072433334997004432971295398007048496632714222154262350259397025297575311805126153189824024379287943917461096365703334432877068148741611071394031325955530228226650233013863300563809905741897568160795795660611124223006560048595003625172356373271708743170248809405454901373938033996049781106413681665616942286890148862079742823763022884779795820503275670092047464164437887669809227294356836791146529566131423775285010148183858073154253855493142294199651362513387027073486992148474813321415277125175534475030963426182441451466908288136533141831708400353150344419258724073206568743567237969716312257727781104682731121864970819819275301798480988344373704839001445898323385665527266552588031886063956903387617568219185671738755997489148808181153289051355395670606752429597849073227006953177563877551324389193994027905891462060849014559197940488219341484219069974863987146991558673469968358743750897296322315955634728651588011778056497712431004666906200858358319799626220978539022372769520715870116350737344817733591083663694716204683534820508770908669803364922035867730212733984523594314630911491669778513908844285417407537518070364905560047297842793521519341866445719715634182161471304620419239713805091788793037461833682114411536607154164576876804552246175849198757681009932725889042099390078940405362391126191134278354450174400256897037949257014994144032665579544466408097920061695311018265846127152485737310130283515301971950805390923420699817984694105014740837819908016283829850351315736717680284865447718853711334001895245933122504139743605282899522023195309754556981272637491974303665110640666737499554347159774873352481059393830304297205339656495523683473655232714723241452632617506832465201945875215210173308564402854563517660530600616261045944039487751957612620915268206409709518936100653080005612005550722369876023891718714021864486983814752780097318999581348029210812742658283997740012292774952947920846899250212325781582190910174660858326479307802210514662802383289607893324636868564050649603783751942502605729169221568491714424036824056278589798739074483950902014017489954148435879880955558607062300406534180591995704433663965716987124252682309992328334061562646009439297357020739250112797612786863725832402350980784334527060714348060696281417869404790033367796455574445619184640743575069424761123215957548747279981201137472191224037221626081296189998064917237965943270389438493674084514548907898776892923383563586356205616543997443556973083160270655511475164174144614167295517442917076727453702955689512288123576793609660761785218345575479985402293629395365655115516897379870112148504550057803386842815355316841621599746669014860295545228436314350261346902664987377087960905947617709142851954526115423475033787364648983616858693286009091410948164808664558187703919883382269215828314822089626121299782439034866317019310723156291895682501764138553971109455224208429731199320667965152431973560340478413242346390512369943808409169950931745869954129490234356115599620952801854705769926525502222512696827186782556242711915293759525883901570794849457171319515950666971180026782079918527381236586818484039081414178558657117026625945680162192771141755680331559983167307557247666596384404519649720523510190070202685927915516100519472402919528731305738724790584531105972947554167465677420831477646738469740895377519203504171849299895609283142191340535386563840642186845141251853502722487550356075618218051076996744567741141612195803698079568189163820694050415117916219284087355895962588022763036713115545098646029807532346414975226308082161931883398443834930269178863860827420786965696280676591429726465294627861321225976678799901057684256578287307624842252131853719352773531403341258649737927548741599167007968910486362881632634673204042698984047114259438750662909161121906906946905660851471366296610086305611020778550583108781144673585815474191081458309636177390990881774191220588525894728790903620802299347608306968867533065069673467689725208163102562851421892394025697412759818421703311151767374887963254715982124515049646043105377390681068083676080238186651351575830532639532827634479946196819057957763933367635091178994716995419255100034912487989607888060433869717466143556710726515517665013335211826970721843039020632885302010524356232094381797064197064733605784505360077590218566873310421781455174954164217760827484150599637658139657828755779290735472430378891119537127184972277212811415344830795237339350259645193621827816124771041456246339834054609190469506368825919067147986818490139098059364696120159773404956476322375950249768368452216992364421047001253238962350003379196650131710092075273394704318937204815608612599689923567240473629405793217740753175137703567306438227547276336307448902653475912677215422930986357339519293258697796718575125179715746722714722499034694461464815197414546464012666637749619494204964854880979800830889246214731882516888239240408624849588670895384082172041806109082465106202680317550865982437227729363694459771629795426301446685882038178480294566052756463109022883935968812685300988974242659113428448726829527064347048374002738561233523033851121974007966015326237804251188689141298533694128088742231907377204278487098700084461865204234986548465777526242168738788868762968887732532847908242364305568193184291587972737448427993680919772708363031220823907194369147692819677066077360946993403831891569476962516125550441854426231626189880176993619232754497127850352185724565695109774219360705022951269608032454391127459596332856660380880729937353647091905710113149208847679941907479073035914837328335815534674283620869689520841901715140059153941040194126129434382984561029272041453568728886014314546259441272072989519765137756985134333569936531749340557775509935944068954415929225177817145507755576397792073879875827988728400958915835360687148367583550689392912408857787812326667352895298588704804516805246134029997043294969143968190814636164722456300010985312168588032050618534659989170118248159055155103624617696013061628909666516807010314844524351497968847032039241119689220673250076528063939664723066864966374488590074494182342534570759221845023182386396301530991179861730239151731258593293030154473392316912086695140077247000925647415098168111443528000481140491110314173856116290857994125138234417659910311594927093748989778706919872688471306074581529021612309615278154520278078571934758064993917509308454765269632843856607230748679774939357978260128480407392807916112197030932464190440108911519788530450449714759636520670233206287244919865792074236296487251541886068969343887654494745945726221195091248983711683567608717334013012434306979611404467754753466905634234173220045294094147733309624883495495197182930720143368728384919593592406940147427622596695971459789679492313435578064931025475409540233323155941490120790451140293891438307010149956307511421415556362830089600207685050490513637189649002746624419579912518004968146549621746002883454881749358253540385448061401284900183089210076048782191040304985517724364521042588754879491934582184350832223646866557468117397913884816628723407438398466841581208725292279442258850220300806204212590245307092434621485345223301643583203413592751391968281878888836070175624927049146683166895018296341596144218872443807388643274210407562212501544186760595895291444996136420722810706164097594519891344767000915498563395204489109903226019976988328602319091097001492617957318357682443297048867520225890110419078976740420750854170810207460607482096002298012602742186059888597847421809862224162729733809361038099545357543356803271670441048341540178455134443340209066666363336399740522685396744324823525695690985920592193673395197619844553008479962806855994422186381427295038987811090480862114908334829738614242520359258499592652170289279248662239894740969243981252922469776092393619085153720592910837378387782321960410086161185774762413723227559145181915949625902128284865338569507472906426107981988909502647780097534599928723491209922716725359607756452447417620341088870534377112826596090801788478459761993673823644042749740400276556396589666080060016465006485724590039349655558490777914226009191167050026950641482733674971888173066089708996013930021734573641366161675643202840492425413133238164811533727125175874478468930934162122608614845012166797258132111374327302571141413179406519803667270293354732011612149856587822431523916825945701065946917805332434739389570239250403250901500932589590693968333148127491839716563376085214637147310901316802688993858333859630103099602040006913726727997849046869304016105656430249178545429749550353326193328441322332696760628655443253712792857996226882823689631589510225463423709811203074646347431302956769138632647813891319467963961506595248197064028313313854351073183899239247070665117250689658164435373394787655852753285724408803393409501767786413093266916044433711764700437080844597129379768151438133880145190781706146672374873629816178586228249504397170602526702474815418463728960449669398935934481584559044603272194622972848427813538576392366851006186168815264186343505565040876403353048262287167673993572828606217366349710108911156002976731479399030265646315590728253341002304681600581496097125591933190979574783930320150343918083876270194084386784628157283701147526542283391763571095172003913940326237822339664023862182721109258651702420117982916303184462096076494049829842331244958900995811490657980356767623247901947838087844112927588243610038100813295698715598805685754562223230761086391376723490372582183840535755942345802365506447343328165633777631026044355120284093039800090011654312495860192375654407596996270582367746694743468553358639899750982442849394154100902976513516228724345103174501911646213937586993289844591953047714523490123288362470472087412181471469622736192463154929204937624839710132214629722936796264850688016886808062166692394063442713615110949503736257191486982017107059250539718336807173176139961604667733156197796089701524279469123419703967731286584268188364400187920463254217468039666513219463713445353863726440568013792281703384416315985302675019462739170153693944004307509968300079737287742043988346039905300580707919067781348027720705588095044379698402845158066712548043418146059586597954731092914552579889637069555471626040792129760782662086927955757079585230427861969626824124399093625070939981223552342509796268403282760310030923370964100642364898549305276936880269110066199132307307214526083449445932887386157586290606702359509537145580373289056571020653743146297465902305841704504274715780221429461684503055035413029350042964779116846447824544644575546026765501446821324497834797015478619082131548617281558361253541454315355237606007918816632218960983636045941231752443389036501854194222833061696030201752161745712629333043683050780000619292448943182703899652918007326732019413380212776620523108245828056111610681292147368134478172551416291854841852578968542719297854950822091660307902740851069025880310451962094976819641985985040645170707994370700189325937821536798512208007785158815096142936184611707429585265429321955773131668347052467158305317924505761404535215327959674208338520611046384023768975647803791521345096230041515011448472827707781899754305468371967169382124774668691269086839285870263303034802703802570045190863808988512260238611753714762827965105449482395230893313205668929522948363553101827075295741342746856639610700628996497413951865501480452710097797389505906431332225069250121102579075500935539965486240745521250794141815590813852777325160298026130561268019623167808592120775976630351901760329870020818108357556042419408109229394523434597364270531806996835424458151398621050904400005325038811828980073468938516727730319924665520207954077402165608625860484233146928329660834639239822945653927539679405425295919288930594464256797368757041359922504598727278528644317605374947638449199081767483785461287120412672473729469268660056075286771289788743999809180775835654132380812103199936686167265155440601959245111457758010779215490961733688275828829108360151254822445122220468382148886382668822526014662059771828347706409311810748697904155332378591169410874924489171369362021142497649513390937687001147867027895629217513206449398700683377276784407931542751829927254459837815049528681519259035876294400446205092760563578916550519236116049413943645078599284094302045934853475628137566639785571007101653186517584065194307928977782197380327221646475966201608295112312468750022481133869767973144058439064292738392203726918787934791561339207587627488730198747248741321897887947668245963029057805596600086099358320280498125470553484393204431935683255808358232870468423831012064572879055984277217836802556846477282576888238312886789497868468903510718163763636191248995183639208261905276010686073522174575034115776169792281853515077523924938322424881686498437348937232047201563625527093943087572129833701136684704709748709940747994376794441221673029391236416259578731729408673866982785721730374833496938361310395781519821149269968906014078016339282111301678669483420222143762017097518401545937913843370377604625909492811598395202252954274156503320949372572808575446867767150559266185434873226607101057908931968054264333872865714236296014648512472523537263679049840714132077717484660526271513601436633735937696666042350506408149545113696008610954915289758925107072448202920987873996558416473133300917350698597503205385554694094640636234238187722345830479398725258013348464478317669705258795517090726704958302667099345609216279270243587539983608519421951376992911464673853564594064113720067333809102326657180521476777443019216150323653520938009544779457259251592067967671184995391927478109721516640842100618995649595195238533776990762502792601841396592288882932558109210830906630158645509270219677242483531604398490854715107050095994628471527687141242488170768266215027196389272196613735353762995448461087614122675770652729728560931295934789853954754453467209274439505379738043656608160018085950266448993707682869790889856148152839899316120594606877482269802479892359183977522371485329614869254843140421284447973904034181891516952950979715329541359755543464686070497381532053609340899853373135258688100821179274796010587256792716847819125021795041594349692865563430568213477123270386186572298132480685994547543241608940743862311148677798388526493641839164076944347780536742667843518855514431137974698670844700523241516218961116220823177732295489126523624011760816178600110800526025371407241275340927346397859905184593950629698311584062693792591086290755163163233151832179224938914005866786844632728460012155724278692098449987488543768884809817790550773186546944692555161822453263054181098096126795097849074738382971819765107014402509703336773289659044881830850111200361449011011263293207177150750154772470745768674593080354534009791545797181951598169677266736621126288036798652778711737871192758825370292656819521264246763541870663972052655974163930287735057657386930738508879341984667444745500729359601165135163965911161428141244075970379771257935241340471660786223996023898106624524874167422254940531411507599250954040661731492635044295720778001718748001286798897800400532839647863851310720229188616327978779724471201394929491598549450403909186886466683849315258297610868668086240551282092880838957199912412201164068500179015009723902970480761668544854119745685689673520653130284473461003288836711365941139100022074635423836675794147876163985749478767457716622375075798299920713861845717236140680738833053833658468804615252988550531708327598321705162295431503416719081919701431676923233988458791004219831878180927737213797132654579072216668097432480438400746466343636867499507262435025257507144670257928024796203779491063504492316822666188990906013087120087438581854708261709068937877913533679220717358234672590405177015417024130469391536836520795947751859028444485683836563360897598719259932240339844262565188814532040665789489190565054900511646020390369419043815793383433140086422370446825559267934261697019573027448558716042089774132953232111781509641694667008184104787304587615043896389869036504700921508460948939520485623671043872867931611351960705106331601542757423659208159668852093815732754529405069257359542232583769218725961057738872874021852137660643353439810330241989274718236829891411023961873761405983089348475682482575823675520798546400417385400202186117778128625255819870101606602646517122550940561011724447734986570287770572929441482525230811622927215041830384332527039127794325896794309958387834182624931952710988577189426368428954390171743436564457218162716175685860378162641083664967629366898252337924736274537126505943624765668755083056878707266948447781047614487029379133204844362702572232005621575781506040219392306606256831235438789851614598785260658507960873846799007857233838301816914203047827360759426720328786298712863627888094151471886508134503349188815246037776757776974535113749459096220771385543350589016506604696189109571142495374600419843266112704376691809825674107255311077214288242306890452105003206027132211750228750431897698194134360086322612017882481864893049220039423058176829186690029432886699492121819026375449107895377675266006517582607932667734364981818311426085305124510516612733738760910659516303306114682290302076401844504100094224351815532331260895010796062257986477825075592264439993357212349830198196333620691449016523664953032274493055125301135748486430146634533235970455924733150802644122528478617408551320466531694111060781239928061399452511907355739114374083661263786629009398673555208915149168124693808808152122741541412282652556163924085339829763878565977354241065563906521376928241486796233502776343122910068646092700357876154265055659450002348959219952646645191581807894932341476095163400301451949434080385245162886622650172655851136528069214129169445832564118779385060223259934219028428228960892369905594717607964867712239401111106033727590576721523314040856461451424814938197120181897251839077922435099223240695591178306316628108404944613777303864044551918305805911165899085269983832906421218339896370372863166510341314313267979487599995771036362651355928627385276357919904888852934836657875922061342767394547886552613089074247544535924683078917250208354135496423886872040193756499111435623521043479238597453304531007374643699498367748751714293254988205733193349077508732565092558025832377408903898791137228609702962877428486803579599391306507836186487897815540225133786258650788388416725619018259106839287979079691343740709284664000694681882808908397703545748836956316913997122751861955563992004363344479950117072269012583695939077138182441794292768433447973811688273866597449005127456565859855488617412377340859817261879872353800445161154407531145394356317132270341028225442766516764138118479767137575493769636694824007085464016555378275114391061167791078462483101594343249553246239324101498486273047971191732850348191064313779913540509705699602536987795628479472972042051537641057163346888700997342275849604812715391600226496385302223809028947147994799445313683258780210372786649639000705843437342247454240766256676926915098268910511239123691858623567228625873863614006650591963796406033786957051448528869832294388391632609627758410534154677299804890057324239665011693632958625939727214626826144076340439262837974237769416669489814171301829024324057230247482188817721319316029676362972129507794073199250234961376847764639335283577844251906333209065944259175800016281063357601738700005783996673535371488760794253916034212633098718008326475577257287649904644844027885643460649008314346948639890080411123894470787749254746565420248470825109891349951302943511719134958339476712924156406397854179747449111226197637739860356688039007425069119763984691829726927904053454694908731758091934763227971939769869957549366811336364778681884680251204204551908467425375927574777516931753578574492564442240961760700905121378392242220511079522740341233902205856919023686758115781979857039617739000090538805079675927924438907136155427023382996347577923074887904226979503784767769592029167023614809510523748589750960680992089639560289334542755263950804246695477601971197698005127038103620647659211281347525625724244547626918968990250107799225714536811783444032483152892038020061790613312912405136335928590629512760324111274077955383174907489966711720720203977194490190181683474309475302277819694372801036061204986883230151344338789388837797343525648860403483992882387268661163656584882061185950704582940236079175706706040269956445743289309324765478399186152810415163300050047461659891078173578757177161677860458599858627468496921473570378133597371407764851360743512087529026646306007261148521224695490810386531108727226341404292831312159766035202052053845107544055790817469066927824331601200636337111313206728605010990565557048671316356057337570724361545077909561186912159225644745207790219029842266409306194764518553879298983669141646385332055651506001194430202979710070496636301404372167958627050366177933249763885450505518123647221469350095947152196514947490087343977793202548738002009724970378233820444991609152507733871372601296044360329378500598352871645756631415604313692267349502700261471265740370182109741032090531128607009168886950035449305489484826981484822169951545474163140680955997802921939679034411170510617121340781036090883214580578782081698274775036928223639221617482387504432721288919295503846773715800755766423169854333650044091330560042499529008083267191751718439109402026042024494821545051348998348187392253557005087703664943279893153310066341630248022002246173359698220955993119931740001614596592629693988269172409723540132486269211258528020134123200391527216791859943927259812574175049231470414586092077396682801757076176886598003764987416015391597243363771678844526457038985050929368093156841851317930276710413341627505643671135442471099433504376277806921651043745501530714410881851545228256296596638050633695412998277791745220352373182940831134776525928245426434990670804562377237838326815952977768223760594513896232023628327156932730468657424539310145847399034467931363075431363817199482440382018814210166957557822177724000807688800578266361285500457512632601711938374897613877809196798423689131283249838332511048349047153470913569526454996685215008277349236852480085736202745236490082951969898674907186343069872183315923065506497576330196243074673747261621452281812864930697369154901598369739260599211599726743584321606207104345715859050088819614799748510700519614149449724629234829579120842513828010365743272914091744361550139679314592267184962628601678678391585245764413443716804241367175588836345241279908211719328123009317232510840887174796392041792009167256920315991047320061619207987970803709463852523834870089222504555894186585032390856029354731355417886848217877141761833610458828535845273008329468095745098989867630116590114859527001861906231962589610731959016195840847933987528599466706376342328556840349021366340334028170066440350097123289918553473403413713521008003312677226370741470055195221063240464775017087790438171899840942994467909083786027665143218701484859406108873068266380022638785559751845909493487866616998798487694386129733189893793189780593280133009113124673482644414438955458708616373369315078498797571297281810286173680649293968807936675391283168046838835535940503832859424894100131663479259923499856381371938620995664198884412917793478988490425025707418291154644716088430523027252684773568707004716917745972799522876809179708282228311668199837155561365963785729328944824913184679074366641240673792810432992233991522526556043563904762226004531238844102881698153425039634681322844867341109021450862017304899942422243667711734226587509741517263753450829511697372836158177858169778867551820561100285878622486978788390385073003074345855340981235077406626909718183011449355440394946532552942417619686794373026530067074252514001936663109263037092361798152994349574355785134721065824796963123344712923790568046577067567223464109396830707276393537592793525058932776285167691435747593681316153391097818007459350495743705762855353663711217987745091871004467136090281430022576462663646057711643589586194445041868675179572797411361765147921915177121020741468799489113113597542744908075275578206200190242709487037119052748373993646678608595619065795425713231115680841579946716411553661097110533469734474658287584713590237075876704892317931354802610479620912759713817011813473318052219474881435671935371146237818115281233709420673233685284766741731527956788954071441355467439886795145354313062428080377032825909726412460910100240322505633430493551253318651217537173176774490803322170521085080203282747995837502664113067779720587075048228710527793937572172318154552716952318042370699519629206789029254773673850422453701197239492134292379310479457587118942034095889102639358642587237820674288730199596211304147545580077433229062048856755066733010210517549935855122765619176231083640212048550871119024273063598497735675274756160464931004816892003511537227233701279172026828862494539789894099108717113987316685420527525552241489784373095560155716120609980188152971893638953321376677940264415469584532438322402852447091916681364450627811468298435356897959777475368323690268612126129819972718555714485954409162622393976042782578229067995617106613497549774820141718967182819480281275846974848061395700753378095540700576200947028070650818953955887561170569533273835631567633035026973287472974265631003030611155816578569343913564793701831349257510590898368488685282283061673863524054722270871086123376498069018680221135040883350538247778108700819950276077774500179262679549553098591625432520219986084846848939797635114568844332213555039402283031218406199130573896051515828251400199086358876493979402441646836433580409797999396952523190823848218862276940954248998673756160121993102023989248146092467528350597943005200767151561687085626234608931845680775650257358026554229910022366077947306244693302413007320518430017111919735775675256507409088313147008723520778508388479435097773300477541848195523570030306581638685873345818067733185851384200099796300196369026066601984877978458397541507405336198618421786535044316025810646543512660910806640271833922651790022199665323480518115219495531302330126748015662389419916964168580218213405242357594822969104871784701529149635785646644338329882628082870204368372083134057113683703394216749271738915968499265259488124902499178776600865194612144976608839306448130297154680576815416213891793291825389097193271886346172359630743281513913490567179928692263305442898239788763922678957628154913527063711276043419771567783996590014927304302647974488682724778421725004431950453581373074443929702651889641869140270416105257046536749803582282732445219287167434226848442439731406490007303613330897063790434082503140356974007694845608016399698684854577533973072149972269414204279345676569989983103878376395016463560600756606632003718423773786716053613229404912219097253217435980884108473005937666073507314416250437862268545754313575005669752511652358867549550562862401450732076373953844016873627289189220566571538305499022973963262392543737144104626075812487768900389607322189801357238528319857907932174594674841719707385687781736097829682358990242920226470050377760809981918971317053152741250575865690967077347768622558947554197398140405138486238037976213599167039211747514205007945824086299951143044844883915856975446454988087261105284306924751284691763884776752125720905611243772654736286435487076328430961216401644394785879420968733510379561104796908595994800636511795989256196395852548109980591032375095542873364251437420734086532461765872655435091886147014782631881649964494613227154377606360561790072128055260591916518866526813488354909438021512128921059130217628658472320466821144869985611865414783846064192521136868202236656466524122770736110746698544205241727836844173430058997245160700570197098572858345978922557017180556818828909675404616437286288623560303108584587042725371422508427059520653977831445713985824027412354446516062120487255010467013654614005209282001594161990213503745972304340604628066645997497787135926869272018817750575329038146405122955061844614569384854419269454717776880121735621255621651126297709330225122278394087800351683974813982240323565758120298157635324599527243338802928091941608966214955194384565952522780261957221867901036317169754262601808167489455423071115686136223753708632955031228596541427364289746093960974170636929145498145600124945191254736357461014387725933671064974583087669610997862086494578829938289306705662821871893935898893360902639556369190090303228197020841904444869992770850667441535973469528533336605911240833822369051169442536492422918308830186863986756716870735983222613597899221007427903901279925126603822863140052065759983780397636387357113944367453277867862626515165116324556208932661385768046384559776480815823784288116051302738061249934243490965520259093536319421429222299126271158002593562019641628578604651217911891076309656797622327772448499741648401367007799153189084081195780636841969468470252251259719015873495088765635859879090911976625072666619579142632658925964096582866221959491495349102303920119603643493273067829901620886044274662365800341206403214488048380833849986282985197236224296366906100089059954511298000556632601972541647528041162527208353983009718892319420275726004251663138664821351793422393959670002107594414734353234635936510192174913140503156567281689154416084708112265317681402624178830983386538230911298561747213621027046724180648918858950729185829740646170768420184272270868665709391236962623458156265563770462444815461865625459666931442646843255618998881663834258744521631993202463676295939247720393608019298207372874940234805191716486151548307025070935212546749461787636902833651472620707869524134608753644358445246014597233960165439715679337817357081685776656115162859499957037849274532142463208216883968475655917050053724180228586961905881470255788638379613459867941169458179328819052476883127516077870870453977975205255855216191005219366263624349486308113499147240741633448636774160403643960642463913590226296117109720078888562885623426752054694369944968309327321667683847558927508344434583100541684748045691704977084996419284857545543373428493662068404043563821743178436955058852157051551994272081708815356542293518498740240061315951546870379601620968537087229367296153269228731277072808829568701504746503517385000526426577108002804638185363484678292691328852351883430406539690168584256158821810037958660304675236689204355066514678080319896982514837113488838848731796800799682812894964819145788915650693023047135784409008089741472263553095442558162642331988714634125096838814857375581062429109571465066959896428816928495991928985051198647932376569669179225152070110276302401986645288356352497117714070053251961891844690496400535526057182070865739791466022186442122247809128134238138113170215837630401167470123365289693371538247936206353555286020097732054145612525057409658202858145543052091962427918634509669097301478343973776475360780605009073267245894427997417355324278367501267386537789680118047922605930696953988843251878131107463439242243445016160555505946773588456743940697272900350697840636307868988815866694954674702639285775113413897006335904846970929345325956048983069525635829292463092913966070103947028036858942907479344497457064936446820675204250057452467776859529050088867171013355853035033922398423945774170559727458749281527709920241626909385307009644006752389618715484786670205419132006187087055208512472604242281904377528602215974561970303857860590288676496237348874034827104652351206480920214672529557790092196485749954164852722027189915485944702308526901134324581195567418130465288531354362170206887140139090448707593906050383953746048225625516761444522140649239167925385894448951665050125244534708546693792472020465455545312622640556127820642832086436112221250072454664056059597968673382429416402336199643653211065763327613468966234275618205264738792898413190769820227392541238952330835949243234631480534108619095806253667611725127479032408305354198684705210277873869620489570311270058701066091479418024365088200097338896614590849461594950716259115342305231524784912855776620442905633371345554080406451192908323581071657737526112008932814911706212746921592699686750586543014643962042763940467260176933473446908540945668578888277098356225497368914392512541495905802764481017166602573341033912441607567626332127944435225139900511482237303396322932619572316442098477801983532100822062860406791359854924520700508728164873263013103157819481708717396068176435320237450782757570753069720290215374994869756186381354965587086794628325892598077943047163406784820297468424479289154404272648383020757523963563583043782966538202184299497047082881211330857881904423927586386069411953527336523563442818184352795922564740307791864229527233854037630066382141317715180883943559690903339280734443157725850071331192648897411357859625981627089991791828615203099480534189208444187289210864841457899106118033311294963914905912405439523875991012850841503199405136931219569665326523368184122748190309300870020966710970082833834181957805226854116246526839182683957597663231406283847505414633527410486874408526114554591616297404369098156313555813937375218627563715529513389607671700392574541140479855585949878029134776832930226200549159450661671741841975429894883601458591273198013313515941018286744368672425264376582497592517063491967671094761726882884259504908269116671402608917754019393947278500239425182871954951682551013037308008702647125055552250969235200797721482048776238845674078092276954628562529823570955739301059265508874572613515292444985055093638651346718088288761449484806371659326850240689187343534598257785860544531109621690999511232711878285566014766869814539913340280511468555773167776505810278428867450206475919473120258753061032342242081966946310867159457755365640687101998493174767414855386650994838761318075356665707620611790320961042402334394196140741114131555821312248478297509779328469010494559012304152835482009979681554301670339916394602020311072814343922196300806975508261950846204794893158266870020860455313716115398193249180161712034597757413979559263503430760326532016019853051822312225387544588823394931848267258961370604985482268020342335323914915136604695184627816807472351769252839478316413940806028090763891114273929972724705442319471529851957012160137493456373947446838783214287889446499212152304949919950536197566675752361977261971100438497698084864739528384104910159275504741921757757094345940321091282385162661792689429669276135113243744564184604818917798490622281183844095551158568407982748772940433677280919613768290980879080118400712747515824617091610435796815374456212002966638092363254713811212355069245446384579843836012133113582375661396131018348449139250396372325103941486649509431187612213785131986778125800752414280102567288049227997841153221157679720713981194279642395220106975692853546219530997566502015199957562162962388126808135804289890817081446088828085841503937852336548120861222480477477272154296283383790477434554900246961141999077939055307460744926874380275170388710401473002539988595102136923359931689117643065714003817177982636014126107558625820088468742443691392353687832603118160706543454940151160364504239296947259960512357786994653249737950021721093801300784705785830658304865616698607615537482394903821255982012140741425976923586564093235444948247928705901021644668451359170209499482913382359537888652198446558594664966203604639134044011109008890216874136617112594579816227908132913316886215446509892763539344650356687278435962546539818439004387005101958728207860927409994347590479854989734160084723538107032344753355602529794503346967343600950067261104822305728295720667242268451847325628936808532706577541046206774289189633835104285094163995903161040291638041470763651862518105650410038186952632248309700662638482422202425191629760113304962309419939093660223499559247893690593523745005121522486750647078663228355861847680855919384794473747944845841308854375926462232646414934448148716567461668330613066645759565501354519371536884518155894048608374828403604611092058117904099865834851705734039161314966644890043223204297346813842397458881101626591061443616516891461052309701614669238966350999609434823434931078283891991625793501969773839074745493871358677419140305852736246818860245807090243637476236937953223218664811792206627660717332810188204730867797172296835226171815547325857472940591021991249913421426160641897901231148315217852290703117468675865769329829508228261849118389949627521709999038817726741781699204230254394778861154092059596129749329848366441922101467366626822691849039134155339655881465935877656608789857594354614446805071616223442234657446024500541160270452957393608105928640267718046245040661681676656940488854051553769689457064777354469600883217639070227602941036013181196431202553616277160745669973719852182842889699105400541435227794107685587559711645866282758346561983247724309080763235666271164168114199070833202710348254325596587633927759257160805540575954022244337227603373521643817141064537644328633314879779305397037390822950848234806882577960959489481850742746656540506613400721204414268923733760531157345637585943757888094692012944460665764790853452849812381126077532068229879368519652828918518690548528969394285547840632780707690299667026357554767045497041169052164640319325815990250322529396433666493625886884163882350195728755402608140662100300713055004027374616269507036240492958951948487907031983686110369060932810293440169569205881006480557785689338579849966673007696702981497436774586737776950391000064901414137513670769813313096057756709065820659781545143131229545744812411998876470957826006236724818333407607597357005614862346458207272543531021690898465519131241095725375989364925144367161009033280577517856775182758948774432295769378918687842625372577395824560528204647207630769084948907158732514653539509417259586849025677803899686672472046090323752856838167820418869067911440762126563619185393661448536898687159327334690197839229026937048496276804250844357342423575663257632463687883302747006900438030712395642747252742753711926094507834801459989406488287146120502729525887621665699011197292421747829864324693281534433267856772910175128449759589845652705260001029424325347487840045804686257479119898199361494727692309223014809093970022649689129536078897431956367151166985956655235961974855452796992427696649968544255324188148100264750888195719067235804369035185081388662624297123622234050920570303703573449807588857391564838283693462944794181807520422845468393344930584733686373468449608880289903212320566909139585144801228616295904349765983904367192522665411558390820816157316731675404942784151510031055914529059110045016509575070701768257585180173613792951868568034236552707051751309614085623612706273368934955800183578283811790529044861821162397877902430279172136716167672427058559541044359453727006474393280921310317608437781560669136181512101976016882687054016178238351092043407543708289541803043392743111760249303820328546969019574917919717291522894389152012074551232252608774772240247497535137865284268828636134160047724367390981670650182902033220483151750817517517367942878504684116947623845815433176920055102502653478126232897401161836433062256104617282594181001665155607081122426567986719390220647593841583476815628084929228135232601680195520751583269183354815986376038108794902443568261824560629174931339642322345571501465195010183230240474458371836766307392623808607780051960433731069208232585053714495954333240926579149664935782328492300257642219596778871101695325199385589354541921276059067667459245751745251621834576422772900297748751494278244284540596204672828930701382908519701640437521533660017981791467843431802853236611853611259399608431253245001496159212566554847937331171768747160182967862463962141372210914051158822157569654226387741954226607233356715069561322301534006252504430035551297305210800893654788715261693806310867836266434117377271643344124766942306254072585453995856077180153071505949588157599517128925212902136200087534166771449621587769849400446432415669800561009572916549327101698760366884944747250975555462959961294332896499992752496322335363466972175214420363253732408265865341876779814531772750476976870147944255242185957177377215978075361310391437173867054768112231666831619453069876124467495835489886612251841426312157649263085453631762411760135646892961649719617887691491242130820165117245971513056000811914309121763565882227751126052891049668298270960568211309547605507490294451564868693006124824288639278551061276605917805689879573557017942143249918146173115200114910695819028746793294203453187778465989051129129246553411699688626582928974810565036358645438016116638402644708677706714778477329154780541790553834385973154249626289215167492677541344072948679243579565748626928017920757074647941923686923409840609615899318198617272724394694095190183620113505013818570646426442363827227891148687147148792557450719346158637877422150113614123400403203486288595302180913622199377003457404044515272969192488698708602121458483639500849003751073509911361907645946502825132309631060978155536495393919203361183575370833087702512970354896150741028995727184571178979473132875635646694616227259714516048871141521858564805033649764488280805063473121549986088361057009557597595703848274510779891589894771614299129045806518286297579399997179910602862197070463146808857093534270823108849107892301779323564185137274611060679611763935632471016844076521048419165273544846029113389227241483977967302327572192342839370300877126242061379920840344212321497286092562981347647306663144447608488049564871202280915124233890675254483282073050429931397752546508552800767458032928554117716241944655085274367062460945453605709538935132333153396042602257665580268732694357068743191665341630003149240307072660226237553475317096208775673773704054504887863333389282521507290864558213947527468913855359225272908952316883464319783085385775845970545368619383092180270766340067638634507823196317086640102567954811448708571430318229860637576593770714660303167510877672856110518052467268934596441843015565393696119989536520517039214291877449418925740654012883341447487453000592281486355914460174529562937815141050964567179548186707521251429738644515484973895147049145788423242318373119536264918635626025188242950209923031665317543178705657500178062807065600610782403298058981505323642410273495431818827825397617512056485124736529456474282867898924484749115643468774616642476649954275998678700878721236977809443793617704595132945689098201121458911217775174417856217573218863052442771597467907283935213268140961598385957118188511559977478074216670104719331631939097953990347376166060634026383280051766747603635007669514963484761917026473933274463150505153757365100326899313384717807951001669464631263891300997962865727651268697902478169278057227384665215801093332653300179944436285113772132838635433011713574798410744354382765405197791150240180878526307691822224248280827023041750928246982570092101880007768931409755297817961654672891740291463421254249485813111095457355076409214252761816387379244569182366168909655667995483842990752410280363358021043030368483730120947124310090709767578656048783832179252352015470789887845448653252402456973702550847960557231738721118334482331497755365383678824359027990060257960361763560897063068476564738147897285989664720786838892598774587070408367897318819256631627181768589933592339389876230273741843941660280551140646031216734499961790896951675452623103758453234755541893968322884343193232844992900310242930777955748613663757022940272811614018318498964486213260070397161419915032433007531596477449029105842610286266315231819108382596603129805639901261765883883330253078965908257973105938450084757519182761552510548039905401434093717906351102268081921141165425156668831365617473021608426035308905098986117227007724238836322047698743720291958343476141673713507624078184373610905309913872399559250558649867650205809524256973025931258134246212223632723848700672685534259148157190153869193507889555734153449636473342246429585620164714767076571911530663920058928541917270328035313003162404440075975439595298789866873947616653349369564521064385060495690420474740426686026973496147322157466369615021777725298063049694397178855280691156198331521794586962082215913740580808238654404849345326377298510597205105497151668369711616409351453045033452166843884128512095829675444670184948382638566167447303621081364771817485856425205748624017898416986128536101001462449415735533710020958797227221383875861646331830383729490392666395554694226661388118663823623985692208315506645243209259433919532538294541028858388607338148215492134615402915076495537074488704842775651742111858096426116093488797571743120215460963758419903912126515283274361481941829280657965057721590570351572738506681730425045406842331275652093250132669633313384993490380444367057371151305220566577600908508646622473021425167548314517503695512319096314939357939560245787906398990790609947380365293840534906305752866449025607966720256252371325465841832881060737057812756600274346941218949861909406062204808821127643164483446945128359672071226419864046554447309462538379851468146100837794788749578757881270778301587543390535833356729306699180699975464026530084073296649977850036198386130181843264958895962262118001787286865137036674122647657785609864717628491411021693202997944885692790846643683755621249918609263576873160943784814238598018971653560347936522397744473705435497448956878466384909468907323786414468992308567749753630165995722597872076368328432788392064919338292888139126244274560890019511547689082804426382732933293719804072546805872855104098418238530969163709262093072385747396253609760665597302357297840512837259233938526903607059350891187860635424288811531995332875972351111430083302006699043888313232153045589786558604911033485617935997044644939290813310360730880801672704571990822503690400386357135526532405866874821156112902680286650912160380038488445087066124245736088310855138508718097473357247184724593642335990600424521741147179802460465492921300931158602779321660435856516474257072258982481156177779126886793979285852896176228570693505543430725061569539312236301861781862184784291323363994750652903044107632699791893665726026919771028576993737312495075846034239742311473328119015221631363371663688137928789055439740717459815294094733518184889848195365941964670775464370122685155653347015057544274342414869089341698933040608974964718013226310316942666386586690124420639979488081788984394173696867684209303314451434506463640733511693703001038905678697611673783562366613643538937779642182869345650822601726952216591406593030070950659840280900324832490943994199862554818191531450588785613875662163174821215617349217948547110756763767597102427545204701932131154901970817437474456827834980398112340325802785319254531046588633973741617609109551936991777256189665129627465093391668948911162886585155465348115376318754964912882508622860388559653071258450731604178953594651365545076146046362985422237243727150491173187134169778482601884297740000817962413587301268962658607655790117881407627104352889388813446252931660334971622650975672338527406288835509767860091729040725224749376531767345464405840334434560357912271793224207688717711930446433660846588342119526745319620192598459268005958745396448096823273131901013806123332696985906773685525145665937328692315524410290941696858602824444426993993123932976337964675946378556471561436981643473486274356835033663614771803457209454282458274344072326176472496111418755008059146711819457119619194987363394286909994305259938757594281936447555442390971182401666398795561739307773738557001782758899173653361735323543584474990123039081351980599799054385055130421812233670575365548815842583543323135207229938189209539831665409833191276396296747795277361064169923523901821057548261583415750621306308578173983909431060729101804774878726033321346704685253084811088339886263015157718092538768264257543613841063250886454384734519087239044687774440071263994201970376127748313183905467409015024316428266200086407808325225328240492171466095754616862051535041078001949818299773563164338426486389448467056553756234564831212426148866923165912311895220764956877125007424111831015389591360085264467373144985743525634081120453957276545818781167391961805424672977660146447309541040060823572034140150678438335608349028375915799952738108977516828862912701791225936092387592219034176168805976768631048040006868975394153211804493237830996332964241405217613143764371387564517280819688185465841677517011285449332566411941671850048359572892225797682104262625695478589560433200695089047511334507004089996448346816310981794518360757348569602933002883760448078201136755915798886062084219421427613774901403827987684940960406302499818151358953613277618219628606067298608551983317905497908331373903012271114077271875759427363989023409991997478369084967129435527475816658735858733813857486207694787386315828120408526448155837875497652790594534408422255205893596189132868267131318955294532075548490090068050177161515795726278231948549756060664376138139779556018819832572718102518464649496042065136289818048960198530389407722242542614263864811407697586354859281422991398830916285036539216914035380056784622114168565763054724740492566204021728148023141829946077988400758558683321609027574566606374640773395342141330867019720401117870952285646219419237509686465869407851573115842678340639095242288339210062072461016955676538509420701580219787781611729187506556957410384967554528161467859962325647535170674894868866898718025214881028682303883686900949669290901702959095612197905504019376236124526671826577239245202242657373247828083598624706854307129791525565891119186597732556486861426939670849250369931076327859225161163987635351451117494704157850273367343318306668473078469403340494819979734775333518469803989073333371457734672218672227899316329684153070642983806857085033757043086976616279896205510473214280156438347239615759622311964148332151962373092882185469619494614201639935011101637225425090630848219838440965912155304755330643999233718628223716280550323079887930247176624470339361410442800488747117318385938842677313947160401328539588670230118345106900473601953330186268317917336308178087287394051442456181054210746570689981692640330819800037243401342548316304430977157893149987844553974890307998712756950284430464787532168052620432841090682336507647325846317963303262144127266709263702117405097801301434964065469002523956119771658780590124480838308781833090683932384456935689339673419022161330676677408083902190109593280254487574490766481399475224972892890485008939734990472402393849822587227390426669953335917297118469246236361857941875652287358682619997540946354960284649280924153909990184890341483030411728640440344293890488503923953374069497321175061073389686069325878645679528704447694680278462788571930851067110200524664957572917499718659442508206754516207879773917436616830133843800818431695017006857813578752069898762736835130352208071709836666387452671450535025325227991987024303166668703656011224914106973287962636803734585790498561828588978785948299520839133434218513618312921528037097268630876965831233285287491039956271405044017886722048174828642154979151398003299272400312090517059062784329223960528586788240081379996346602588811761999115117494726940133779713231534189422978705517824547080831201226362793638418572661680703566956266264428580468905672975880246501499702745765834166312318870639485035813885564527816583415488739963051068082965590508446389003235956969577658416698286957332824893331954563274760064690408067422003537531875856615394828929192920366337507217124094511757767627381464055006138903768286850709671977698959066671831194079147205935641979993440172684909563888616769756215659160408623589699911156351227185095182731837911379988368620012071123790079548677744430762599296114444555006402699042405741413835665584077206305937015216139434361700089162078424654987013083699881639908129621913591372955387227903991381772515939793866034244593247634274424033538784846546887784143701451779040666706547061728637994859368041726821154237158707010478258520097725652170726461953482592986112517730407332857705171797497752942086890975556349450266630389063418896919243615815548300410701237971742645140158688525211265564057776381989412755304673220546426914174284527874185355078787415026249239981751438153789354310551916020408272721249172121006407872135741709227686723120742025951286557003698624749551209933203952797725147848516613228119180467348755279218085638852636656032097469370134711833793883498206566725070830886482518204902503115851647631354735374047575670402071965920753525713103376784510802463752837113183935951180456777920177604481120762339247832493807748658748595612838958967397852968838041302608332374451440832786418093715032688667354886437813434497835583399719417525657292541073807888159258911874174689202715762132707107665200820277304556432290239161396233122770202685369176188191791144155408855079083615030182391970935268944235066469304367694053181133091964065300173049275162049216718566301220990660161926995680577078399736756218537306041919886864922888582542451168912186478528711827362899326021477270360764783385295882633259663735009100010636719139286437343507724171497854511892889445269797218598131248224189476288846506495379730562729362275370849784211848720683537305417913125386606892830978312955966399740073513545488663671456992635022985252390708254833466631194066175297436000224880495806266259400285583234513074653020328995984447028532670862902252385496203272735723955968428287012874425317486699456428359394173642135612307624425995587788188883421295507425200070177924777960108935596480821792296490636295073727849991693491303063858752127755974824857632764166816364301698194755426061198540825164028148266047516971895075407680451088443594333459081183712014374138762657692850848480404267188554488155731063886194020331836344473233016257433618325249087702968336559140803360516023664419847591499556004941272241572277936787574330757530835984833279271778444650270945952616776533633668236730805091723873526529830354589191550322685433745842574941086266867030017658191711073852792033289634851393731306145477325297523763913798363825243524943845014731444283812367055232817089289583033990823695576002290202572660483317976802333761828426646960791698965678055328891753370117834816687020597608472407755890891940334587987157356789204179261028193401863696646657962707897632583807791071915234421476710841686149284977188813434323599675323022633594145911926530755200002833571542000584402269491292804070669131709743956263111306521319769379408960887950224996338374618568787179062971958372340811999746051588444352961694183058297795293556484034493724315183250516513235298938548298871722681724944368403954359133502438959218079723215069419741432553260550187234912251959828763088444530456085997814253864694958020755935042838890057552913710665454214079652502304544946565238992265725248986718064940897617144237388776501802907610655918790147759287024074947924800776611515809969999695686314201743786186372424790187892782034956191188423640751751368998219976490606791838832740134466938694942407423892688488928942055897733925912504192251882358298425945393432156490863348054588416544751403991872123001477748583860735119126202890075652624066490368652093666975498117937310115968105641535255901604045696977909719288338829629070027391512025569048232610503193975864096891286338403779424329912129228851498799400457093419480943721186374440467360413546604967021940850479415320724921427282313457677799159117049311526371735702154401642567783887727751187390380893036268743514091835207973339976753962857420570022634851661222220980202601866727365507380673299291096855094744555602994410119773044345673361661891420684068356393626020586083424151916291999502430195289637609125312704057417513780611585149458598361872238113764634547817148674414715475754373917840028401851536922600427940359868013356631445302630777233569272261084672115901437824310994789329446991996552057111365672866304915868517657020423052898572096241876160117242895699179510954681720778235065234074866964295665232928950284303725548840737023518964615249137415042965415138607154162129428684803110618417401910596823457301877183615372326606757627691961818880241162569475294490604456434843901193479805945904508133637665074782940511481357218265975673370716437491762484202381598197222146493988040034997665373354122196636233595088349682783503270338715303537240476396552965233114253792688469153421704570909182542391427789150546600629491845484143090096985717273290724694034888215819354439582471182697024426382517410179011036482641447994293422309957646990067005428213991846379782303807380686775711193313553873519007792889915494153072317533962068642455215314235785294621077654163481067922346461489312649751140563904000543988067779842162013241738501611823867525592106066833242414307446041489006135390720323474535363384196138405381478021729916298872281498141539329230727967405354283398847144688902773366172867222674569723450708772510080426230145964806395913508831023365190205721544967754424047432890021461643559023935373123831774068166849782135198778140729759885110606771362619772419066418898876166661663632174480638128145807052296599848836923788684090586684843874628286597455306160501798062753284826048455137586625788527080823575930701532432475758031936777762388232060246373876615386227125886127236423226111071114152377589450775065572240679845777156657043080489334529853348640014982127546767340414067709096035009708497645740543526932677497819892155280404456518539912018072906895407195115414150026796274679766257003116616809535140065121556237327820370672078604041566188300009441423733299552564830332113211397707483124202507991777442932298541105676969539036159206249293778563336606133810862982526321625593963634470869060618826023513670462964948104823014750974087843393803157377268833642592537824617953571921255063580817999808184866986288279169962287990876829502148609821805952776969447861691847487848308539983627581433666677401782508122793470455058852753144966071334153556644690574152004915413136904305828391520757299707123399883574307346370597788466533054433540877798706495532272663587507810302508895164593217829423120436074970352528609821466919864488180075511361989638623302431561428130884937199371776189249740136174100903474865525035985616741742885896458095391725127343767472748931240821371146767623690956642064174203896774076656100940976844679648661392479843036949554148097105660820727731806005318411396080468710068569992704189117448178736495834808512178867114496452887186563625452091731238677546038248854874074458387725484949900339981732587750964280961403406412156920665045661828216083112064333354210269938670475927882528708657325808497391182592981708885705667529047470686217027350917094338641144176245353183291859751973567052774292757011692638108840781734404097660167818823678387109733357619431004914856169933882953342580033357062531020089958089565092534535033684722516207007368758005241090374383542981202297853087042697302597647842667950039217683963541017158958195600382111246061144617739575431359852352521417745542578704480352028708331698797199099001718497334891637017612188861104855634311686683537453951795038624655351687684055347262971215883764621229961845481656133740797348538900779816484797712165406787459150839200129820399282769216339453940840743670695034340355518081850281241400084923663742524099151972457751448445613088611825766787854514208435619284106553025357984112481154265597465128717648109365559125274548040262003910762776159247174144246955418801810336458202095487936086374748415582006029783203877181262769447521207883112861655201562187932994893910856148475256588420537683352093992653938742073593086472839159388719422336151173633078500514487703247360993061669287219987118563537777135414703300381401867844105296152477002524608120242493703709064592263729253304040301727786803851650355191202972053942212951257022132885395221831529196161352498638050288887169673655878874049991558044282540051855377168668107805500261420355841628527717367441413561764965171128395199347661259109297521034806484444119035996225670636276496116146120426595236101531266747318255414741169481446629130011719802016889227466612737188382366323323283020908740422765841833394510812764404614655121495224991736572937410501895895316853508222685305291963669573171862920108146719794551230752818452556060478907174931564447125026375818799572788542915613006438976435281086559137926146761484729643660794317631444538570830847066723596848062812432185707846634895828255214089013609188227000252273396149927393023782123615832835551951678124227447814475035199148292277746471705542003375356530365231318419971674956877997439119926910203483290099546918551539089704666029449000369097833276040380483810527094878512593386841869880200462943095454005033855755124488830496969396573217247762070886710563673392891450094078937522326333962542138395016401204101662824568583917042756420094939154081429991473211401628075085355049506342359110328142409687814749413450794880744732255922909845498204187136823573326242582225260904032136968132725402948388425254183415868301049883337593912890702482810210890094594878926672839904367606954245401619874280283524409921385348920895784168212652250108678470379174647964306966347299158268446878239950462316801313857894592413751930663465934415201142238846029201746778866664359247290440021243007777705261293774451651315536453365068143497471583625140458716745299155201884715319181249498160496917793457318200125041788145996670517901681268693816431875523972859879838529272923938310640415633193561524911865408164176031911451831143826239096943652406803967067002202111818982406928082303792515495437547699982056716252836674607511798261191953817698161596771970311690871295016388564499800629493360310744726602171822679713181139385800095359392496720620185065157496128857568870697779141695289650238222304384344615777737497425638866516292434352904676907122177490663231215677114260471101243382266662629300960366134058484829309916944679307004372304867163975750492096919594602521087269170490230019626189425787656031397474622689085377248868259690920416822139765413143791663650098972045780433214194943878119475340637837041060370569394282839775040175229644592567846468080726899953696618872745219138505478687865103331006692593381738928670222626012013879659870718469502742805946385533206409536593071866353633406676401558642559226979106218094556312100125401660746113503746583304111666405362482925620491580998941246515138666169708345283579649616813479232841677452904341879023685463381843191190376489376523279362210808353544164018642981677902384806545011677385008827685660653161369625321309376836767729575045253424109357349909596710323202212874506666086761641497628956111176919493642566596523575437912944395405150707318547647481446525980048070911976689797676115515506950259822062858398087095976465058857457831153734005478704986036758448702329006080278237935378374316302051587054999121302404290934846781251779196481568657072381603049610589834402598501814272777515667214686470260061529747381326054689737165777879116134602131702199367941887737565671975437029437746970796179702767771294455124672563240501494991126096874553743339359031710817262602568733884196708868896348236242876217698751651356617107731823449076500380218202953377058358671347699152745735232727922385503343837798560391860292734323147097909546835696477971563405346413769359565961852307166546856957890351944580397336338281810527974463683867502832340949499752948231918524432271803106631495517971700136156777988697126976567958510934457249247905936383009141977060474874513240641031625351941823829605834642732568603312613933223630342965746521022721837127396235694662913516066454323697404481034282981616346203876275987280772937959336602649235073473300205137402763778114685076060199949156658195347223223724799223767601117162710901816477119392800726866153528085985283225529819799547145812452203930101448124076427902758389552322424563093635647646627106981720076778354944660292135138930547070326816747581649038348344644201564178986432608786503843248803643301957580299287105803566301838922623213984051241604212613633169691470190693563927045158517247442558630048997306237505004392648736455582655099843483452629676175223915102225059127264379500924078310618829252989256149580532319975257331647345037190641908654696734999211298477927598915880760982913276107422925091201832429433970982657206264300758363851490243762775681080236034494767528893918420630371271661949232353288720647673456586170219117954295528223534602323144723657698110264745491938204299413384409220431371705283115494689969994009533490004738748511762732214017229902217042115174383425797779392855218230116690083117903071087159926401339580829341733748461996831671565489358873375544357681384304515891276840661370649277624501674877828795823048697480028085199796967267392282510094020950964747958428388226385453578697420789039329048577143090727728434003215438469352575510636330017838229766260331107103481091622508797847458503780844589248622375916751729908367870084880242749660856831189447668741373909730114275739032871068995936332593186854541442158890926981820563312769138245441199326488525221687495726979946625879803200115706037777820562687802770431626078465726219011078848357775675219470482075982789663697226936410730647990806984329877598372272875888353626769732140261156492098488252882278798824485114637228010880008087121772226433869438032447548705935107999741014777745412638908784372186846767582358900457727948336906782871500331536266167914952000942206031266672306755501493188809650317293863763424916869976446309184249441369302714081633081266823229035564600606511588871060688437396944862666866618779267650606990736616947809582699776973819440035128838589847917451755279835529016458303517944192234962851017860273447397377979617862950336338376491841430745497684103139679145639500968792144769217765652534674346295136047643780016655807548007278717124503750314868433169619252288502581444250413003707510817250781838683989359112276396605606612614716010626450252790039247542979874219467860899393722670327063973356514460454908616748448361109319888439244826763139341752452676521448001410670072070219964265713118523650457773040504677245836500146489379200289199679515264295853314382995888961428909605235771575043153722582484999537244704470482778790951437963566834055018676606058065599924830626014043212821327569633631546364763977965904894486901103113870581964335609505146936460635396699201618773220747312112418278493416421680210952087659181230257235515624066628038854221202963318008816709040279564004770317619281601152726601042970084545919690409250629304921645490262177922235554479123926368662865548739440710123479449087783519694364344145721870842292996631494794358451328749882674817229784795653835986158060720932641003190810092398291903989737270880295290821664406085401821220459821822892337187809891599065145840763525010746456123768982782523190257186885949959869079434956710320509315223968858029538699843032259724050787455266945572367405098628607804001723485534864273129993908967528098672553004063293439817862488845270873519044952648566682601256205682316226658129476512225713410290059094496540462523791572741677157108015089291114164726347545583967502110815696050348446684268269967277127558829696843857777995071128696602665586560240730744062391945870091865961462219187501017083955781293199733492408930130474225977297220028044284789801444394317982888017260371087632483254401981790875354570149189151484159649354990199647178232251744963454306258405339433587901961375455106141666115077225006019199578309646157608555202972924842778994388605675489943145188374487737275894627705519741205989976863269863373063238746413589869520769055331619856490517010837878345140760833549483562202279737458549171768557878227984855480837220202786344956019959733519184850379182809631453069128271965440921609383983091153821589400977656031998665264534471608577637583604634555557375815160428077417921051472503048001520493973606226406974695715649924272623163360634595084037167575413875961678788467838450544254922514844535148751427961062047919609465984950020257042077536334044958953427897742199462102091457154203285551750793513249043917296843122588837196913073368281656761645287705737483332795690392068898118341260257474496584088592630714464038378116542512609178257430423623223111212377019608762317095894903349821798528229114240780632579428520032012721336231093469057554020177354485512807348031086166659762794643223424581892685006294809008180914628734829711799101638545736030634546637512971234086822450465949040379194008402903543437715103989408856578238693817248052010468175917558132637604719464590439660562348238126793818727458230705564384521383752146586727132053871238668069229147938083859573681845288507472416880673735126342197797014814102247499404854232445330595594739105449814282557539750085122685269884620855630070136988831742425760028595338828292669610611198972203707109856643815089589789502821885003759653827442052240860879259737704791616708586177764458228072774519704450109626968383225798632774424304841968452479100738936222384113161886128051191682097688600056651173650786486620035772453173646753982478027487782422172089957950695141426661711862850826673698890146933053277657557472440024694950702955766355604889521542416481176845244710492480506362343946174859590532468398120351280352992232397151484549545939941593117745259978497949070080057399534584793610539578624195066804392350572996862558936118634150816946669430221809954126447569693203410184606029774525549151691411595506677199403759381032888256323319532917505696293758946236766094340503515538098355142688916185475164931430867129057343664931206394308095530149935961164699595145304847485753419456669393631773035514330948879478069631785059486738986783003968710933702605632930373098486549910426754668963503192853147440431910221527150384956779762729633708111651281996023496826961446180023511911866895817305247107967861160969942318554379156909814938976277210427881257524302095923916669332816679569899746866678281273869176543782349170917394204002717715850968108181346472452330411498397881597839425195518696191781016261898859473857777124325871118132639468771469279505184521034983647091357780146012734463700375935030637352451783555538063157849209385368411975424535204218036947095352281606484299290848229158315070292211039202276181887229760723969505232963625657397584887313433764763267452656883362532043779505795469833561315627075724946205141501452187558988521695625368103451482736918722083680876986117628877115458035354173761203020538967125104995989229112177002355057342027233735947168337398716298123057611261935237798982776901868095129326676124373586318558658892086418836514163633405764463510661295535538335230693466537669627828167432161596460759161748438535098808237922783128462584550254609613359634655931210063925596934416366306593025040728636699127890695447542603700013782529408474730606471925544259121979714874921289404087383753103337915023012137303760424954270088431987363126617959851241128134882427755170693092518218164453305336567590177761895719206355594021306913656103528902550505353177929415874896797837810283034942418506860672018609314129294094374985141463810715431698888297402534320265875682063387050918690779487675238431312424408172522342922346121171409537136922311010365715641662593956481887386915276733909579293405504099794007056350246387004364325633228030569048189627019091521804157646530943421367929832973782200854727203763282362545817429561198649437012131450256070986485793864769145503680154106232919499166987868670807787008268672237842579604532668987484491020933829851186142333213025169174065434516100053907536673664944884881422085857727158296485199962405477651113400116883445815970406928120151842281341810442886424504415155651077369325875503252375184572784631130698217081322045230419097522153508468838229857859379184392981372200447738404637533650866175381434441640570197897927284175420105654019245133639947677048415232391149652672620246614337198317833686684854283636015212907932864338956389704084804121753292192638155475213878814645743229095170269779641240388519427393450057093586794291559868220655436964309578235158725030295090123864199357082751162217704752584340226238700013352408077689124207111607007428144727867574006419999126229271299148142879007345427828596376151462731805758834217879933746964500958966018417627705237551807614276959017442849227573044066190310807032928581899352116824738562247106489823436401726055263200968810950145035474788649379391941400989220300986963521410514846063812384302119903836104490178401062022327050202429179659299275345111189683172238782564885777216503138795720520856708945900494503215683154161317671494991696962334078765335420586843270256917812103419443177420421899878343538031424375678243786965779493632656106135418041806627105325155402477516726646811669640958635394893407916215106231877608252986569261254671755163432928950330839628261821004337401301853336278771048970504830047838170494814694000943596147262013093534555362635440901759932773995681647491963117879305564199235810694094441240745989386576344283898659588284866783055850099178404409861249238415078738482390556512128373469592799220523335014590141292210887800948110766121778690668261349815255598024006109367080768269250292075001322774858005028932521881417996310906934398893876216845544614570982781674525342902734867578092967112484782397419013545967382490392352486800419354146941850665219026975384739985495182903154381504000957606449453470465273800929010177672516127541571828274055543495929940163312946986187473445072267361144820514756703997072777907219393901203009647585131593210808147619785649883132505578350568826108166076774419507252321660800280504067303871081164964140120627512679898916463398114088284263529464673760642796430300497073743735330578813595092307183159035212124860432909185017534307037700824595017751037069291080273062558733354463676088219036118190567587525463926590948014272749416336913838280638546403651408990215487676476097362992346355435366658758891585151483990361160803563731996446004816121346662883990505146168177401879149910702284620947905835945193917777540559520352120433816279281731984233878465989043376668700448048835630280657802995669029827595615915736138339342674353223516608123107809736471371429678554742546341173217548481407246836932827213179313580586306952035330601851878042131920265496731572913532191577594407265852717053326971667834481146314049374019989691689340241727297766872199626705722778077151578360015348330139300888257339796411299894578583532714798471154298248632171084819173513876235063481541167957593249484831223652058418567795918398720428815791435187412876169829591482836785424895932957891013748000294622137497001081176261999934279501547120022554472144338273767855791781678289612477153678128295406531107451398284345442927320127006679373975946852200431128959994855739537545238337599874469360384565084617651955257770350525199922474525588448951544880567212949795531787235137271712263099427718735166341416659275745705505644927466841856393944830949413314320343759319888673256606155010881152782800927269887950868335590420112965946481035502712073952787300139186323488294693924335258367155182307641560456953128777065976564248831788029874985933081587771657586028229983591878990797633371166352558667748087673435829659388053642753645928129129543507385862823442293809676934259608255050921415308664790251105486152465114303627527187669248927965899925270640146167426134204459891975066431322713269226069776763193254467715555355186176576564624430064298774347940409057878739966688930515301230928733245202728430729175922064517988943347799750499152463925207810316363026144768843596109545740763575476253160911782053362300302643631108406660341037112221653893229916742792662812277398561319294672940793080451792869211216410241809551573435796338275402311395968963151071311096278464355274996879569115038190576184132027863584259610296502045724102287323505776293289251309707603839186048987150173411366325843719495925197124184382275427619265076030373639395337630237497607088529222741648565607410741765340804606553822307264517281535875228919744263123825874862980264979387580406410303002779928615680155730307767502510114618079866566937281671299790678114852763588581040608299964995982923107769630643725553814334146638510439731548702194539230133232033232930469221275382164953005352299160094841191409489599075388643881981499519210418993471917778841942136836798736958512412555793899374459620063062909533483353743823881122423545088988755184739121960389320899627255205194244626875682659605434005134668473095011644390154548162129624382867030060435092102619732239033996895591980525275179725393934563904932861881057590951181798128363636230104675959792915658774187437455311953827218539597252068427714019532749620705597256410079133592340984788462914421950644274380305683681568139627547148862997182972459617118658559563154700240598836030135301992625529353700378321780453815903013465115003798999040638666872578766155497234196388820243122877100831117947159918846360658138234541443353552374081738461776410042439233201500826105815127513238717990570564075320338506854934181865786476596088143427780274999335573648528542967360341534436673712901284796185654436365770260084205750091031703454037722203588122603355751429436123179795143051798759526443301947238631454774373518477037232479610820016381852463136689650948645481963888420768178838976286124200713241988019855660931144338045142756684470248568942317534790713363016837419102067714101408073013260043653212893398779296085121523338602094819368210741009659256948317172896721434045960355309523005509259581694953488185778932748397933216223522404726812774782774975519042690503463464233365601572325693593585695112513985219053458239517051893878370533078695107922064921200297501159046983187597176198224834378936730993154032498865063603191063033451998535985786026322014600153359704401081876079764169993173173554365780934971510893118672544686708898304956944186957912986201875847016921479648753911005552549566649594127706394867393078645245637650861034033563598453466716951005484627811790170846980618058520538210222291472174855167573784865309069048098188975683936566311005483427465732977654869683546104926162426998185760661477999615746968999265040116720282821990860900025775770879498101283199928305463777373861647360765787074043161416452444877987551882766321376636045097388601912824982128003297016499391382639634237797145245279994757887123605103339470605497271406476432053314082627718546302117074319103611731563982556732036622445591937940296007967230550781649088666517573839575304774911560063643584605820278833831471457550422074796562081631538225317807154832950003828897841014109182884160471622655331699620665579628805019380780891187396008155140486552219284766014533568047727424592879344690385443586299386169898577676543817122551023773001136402952138935605061591512361523310535424233071784659514580413595266389986601641919623141981776235292096516451494313169196287852319846444276551660468580440954366611094508915500529197478970116118699960443123092056816214602553983502302743186820276600550799225939143905340158514794844158879432764141004488203745187094051746636938168759085098694007230511032917873255867304364574588716905425314586849177721115440060625069286957746564456114222944319625163818958525681792102885743186239456753245610013421109970764679586479164008982706182445061364774192320019242510420064564341787764527550622114748733567451862771967688431861818353849337346080565549463001571320006915884945263113257206534404605084002482309748056153343779960728887721043605124701814832474638493766105747183501618892970157045291913359915769448415126876133107945779425374014258990145415127313938604951746641534520885008655605422147560874715733721307152900258909313891619908882461312636709130777371650115779704838703566151987454431914776053329743477077581224319756777424651971412801214264202648824846900697799443233725436390119964759132200346589975773848441218902312498771318334248887204567327855580713469621414783495184868419047668362218028339520721271489009826242596370014287744574255620214592387038868558826097616238541826739938967743885488889693483518007914702791688248984690437822230879388779039927032765610059074882228373151246257667956481462460799971411606654881085526056898433159057857412459961506936896768223732190057698734974735031060215716775687555069521347426543875399993385946067937401079363608075899723218021088684964119448156797733159770401276369669986455928213915667086816152254377690113291716736330778161282122916416236577559824260801444521310756718859487175272153575177135195504127570134554277889496138105711426508643903486595928649235855270375098357301878875096370504551888640817096709724095797476128479278213463252424765290299665788954745243196024133660618096509451723468425767767310959016282329411245127480151979632706415465052884086973462208129673629851023704944692517500891031065625293722164205598295249025526219181415900613373232182879031410007906221596743408139156368244471921969400740582573310844910827860848294695682401086017279644820946988046881173156611857070578957567651539337170692785303945854634649085357147128641236398902373601903640967369586485966885231500365508042217265364461549296626574743700388643721399316065027919707083603259581825358359417927271107690571368347324496002786853795686090389084672128655248534071658035697547152792891207255523781271729732502144132650203938976553400154761858966978465143487487731635993851054996079357820430658829098631228280151529539945886121889564492330081271115813547509270090794182087795020637368483905723032482049543909129861706911730788651944849127161908277343030277199739162691196027319874991543706282579543040444271184639286172599444073792113008796640595084752759104988049114679400176025378266426180212881661467469256679993052880228444537175014750529840704586611693167164476047764217742044381667346298084864389845545749534128726964019843688160845394389141882186564837630036048658730641892834594715744630406193703510900575257851811219767949340115333004641557372312048727155024439454562799340159290971261742524913918589334604262867880036190887440475769099314127044809271334215172681865572032612364999394724979268197488864958078965918460540707929858254520769269790164142786448693158670261261358993832237415059554547967434985250816786092409096573381665509033786487209973923170600749899042618072575092395288731790478088454196166025075349675368278395765393248379313882802285651353961376923073909952086045480892983728416824034826942333581205661101534602142722185906573153910749812762514815939934487023844064431695606939362819134168956652208399250496282417197501916823440010758721615913092472813515305585062056363797558975485409004849954946464821633050247981382465122255761007066794526127524118766082084900325797651564521946523817742156556834301315201389336433119872185284559439031345782621550162782809419725792030062708732617418941876581778600221228743494472449959661718104939602805338572222069572397127160337149077208950586175950870231347135304932273229887479974533451672561267319685720674010093615256352159262456847269614094650582739757368107841554388924496686980423068403525248860804688370676784415829543590770623115217201877242645412101796999342532003663488147416246572119549563386052610676970158571328192183283150652565779297346891036545648385573588209591041080328080334336510361582893886817010517073198851783008188250417527279749338918812591058212784890994289202673356720600451706112272690031734320858166910782479255776116717415910229731634223135031772023347746103184562133313938966291154940406912418888170487297100362391442769960666448584442897211876265141901779850184617148462292772630876579494566287742344279991684587294765723206505951956535142918598546063597705452140963067379708184443071065905272476311249629941883171608852488475570396006025932636175753176850196714817339393000625217179824217954529678274233695224526477482132479056426284446401883196451822679065682389090663296762216725946141316663043470367990408192287639241128232885649101633683834303260356778030885731367738122911450382063066603999634385100898696923131180755254975194060764776577849374053645191092141295306773073564004785068462820697158657837094350661108289909924194446030182442611121971571604387699990474340897986086661891574320442812084151819125088719909947892433869909519629987533040965014928545558607240905710398316284752818448163496506958539900861717560395829125943725551936236247117053319924281620958591736711015739278469675463832012052128725235753959043213917525568834207034071166814554534542682971665651757365126425325738894214014726992050569850135409669643246815051712122254836793511228243865246502412070392127384237271723906959435015909328449806204868074994233223733337183480841403195594946180224330046070831312552990396334448886690615684983006938762470934762966331586713318456148316918309611838798990295107631330528873237408572895092825131034803563306086377660431760962899018034383858527562014341132396159692846778735778109725893744239061349678661518807626259185319264095267966946698816325937730958970868840056820782882272780809550642507250734738348239450791678549701140200581561754679929332003908021213700067543386911340343402650519867966347558026712270983336352726521508094469939371690864289086679358954848972615618759861723859647545814394424662982371416578586643719740152282107852265732478979752801714213849400843734822486799377263345250589449375715191576659330114117369020339855370805989971549520425830109738240973946578481635926860270438394055394500833730067641052170318976470131142070723871017743617897181089178896163734614836704314553501053677102566985770423986422338988255782741969784300138931123792516367804469235294244147677141813061857353302369364314851896793754438023538347858525436529951527641606363093523862806436304940274778650175766233878444584118425574573851110861694030542376539473641386418041762721907675731374703084091307691797985563216394408355941474779752325317187461278431442548848779548757897422247953978512664889061241526724767199196413297509769313429398810803428063257760981763452786828362671636558817535847679744009524675128111059687284345008143696394548100278706697745980317824247534152676242309648911184015615077570315408638939397158774709972109802292012808090405939017048045815848599827439274714290898889367880249270738316510912242823053812784847735894373578957942324942810352315563362877732859082527691799413153721454750790140027573770946891834453805393224620122633934499905364889764340610883475081577909979782858489186606098600580433189825427557642435811076351467374201977382948830814739153216210115130488405965637556150404345705013753788672450908885167660472681171785710989155861457701879248931684004217265758234608840061849748887336215764317188104280610403582005813976414401651952426949387073851333090878332282279103166907746902566976559044777771169114905124211567571472165455862703097372231639046670934677375849393895928660508718586100690800944550089635605180138239950490592481714743071154146135910532704696352186991322550254733140957475831645619640284374326944826417641575122726438178707461194201535117109123850121289482567321719761624935705257308453192255196826299629061108133580502198394637650946748919433431701837094120235934043371284024764283437187686548684946952370790976759224301612000180711193539782059860502820252610142023302837601920465862739324995171979960165588384064630933752636579079929989055913648332253911330075346204392291722800060261134667007713107093435180115780156706034493260961131156895569154242576966756056621932144268271023479172288967885843504724499879630315911733480703272523806996927279674744098088307318755340218682415379141512905603696910426570084819629701154372264365162955339665990360312718184629063100634317521220149023050895158762143888623700106378158840521548953865768302047906197724988180863539822467505265781764403580107918491104683456051377564856569329524429693255988307861383700504249700586983169183422122230049867502220782428690011615477343221396274430764924907472304125286199216316660351852942193644130940421398841414353654359674366931194719220096123178689984612970587269250175661968176589787564349723706614886151871281158564969681748879139822056222756527699626296220596414375708259199286074956378791137891588893664317264929902727892799194471560400318011046762391855603352976230792178321597834785359444067303692670581699467350492011002651599615830383312065824187287267595144588344750895605269198893961729633513777676615688446383334703825707468374790740444352984720081318481226599108454247539102148633581352496607098681081094318958132621217696452318961014630544256351627228329275352357300581297555089994838548011970371127300695694035390727392029694406960989345904554053963467143635393637158104100061452204191383891839125653250913201319144327214165455869877664908260861664392098827613111907941040790910217842393913569035498256334570800542029116669180048546150726936404720056304629330076475453993790088840139585786973213579895494239525441682789336495173390819378982153078153097687040918101318935602985215321820357564076965064195185408895891830299133305645186886990279281244899663127366794306544771965882678458834765693082999739812457459254607392179870853158864367579110956505775164966997311511965835997350188049125005610539904414016508933416541431475615177489600212072509120887585611848206996780404169679852493216239188298874429588010538123837754694717154802376758891006281173271187443402552723168542010454723338871453273354387140117408740995297224994178297880285627972570621050417777470235580047771027387320556788219705883569882922921826301185425925581959734099787280640988776820681906446494852180039888640465472168699270962905577172795742206657629534588744132087079828635915681490823952396642616019006290708635362648071815731047086069929511776714935314861573865100695078150775061597044841279706240880906000555848166315425124517037208602831968085716406577193895789577952250508668348536242374927720859226117323239798454829576518826377356779477229384227220819110443767075495782918047386927941334463232894565521236148908551255906718576562026036815503235722821863905252999532468915430317988171993172108877281317179447783785142112480420966245351638533735442384092966990531820643656056992523741270140360079753239533505765080390559226925181303065761658625134245953046926916569754781195875967949853981385874220893494653531945875867618489008125355138578258458953268144916081321182549636948083635572081476247513330278506822616983453129418324052830762076250169180886713254117685581356375138238998679457261025092044993169285133039828249747152626120642033635021405629376434308816332278358985176168179346071215389195903420295599215801257899521683356551476636352946042776159687850480856039077749214196367401299265904193301092966948067519488689745100810556069438545439918161833480067901664411300160405622975019693814012453298154271508329332196014893174540291692341049468213188266045760322373766201825642022206236706253891008073749229593695514816049804470322863834009951917086021164471698045952832937397213549712585715925376148689610306085110065540884653345411581524443995527865704231294477403211631517831465482877724478026704652253324645205215554807764786679995817534470466123516721403720727344367440761311030915482366244592761907513793731095557790988934720402367304441272545767763566384377347718683945371995662972008122239565843212736222666275735512603831323092380122185751575009792680969527656594151251138312540640179233936023667675618633208483082020668151610191492318195197784022442365064191771910139843118175524176205868473605982574136969124080367559904691996186017758043898851258178869646005538652692105595420487220887600265289810881672664247450432991419249146094423006073339540454681101402757523031735655721708216546040711641699386733721539729536780393991404151312351118898689738023494840535670243879565736933868475100507629591179796697603632808833559019235762828539988344553462569608277449868394972150900298595316177839261388443492829270596344587868668619928224329627138572028319494068151274836002087020782143496054194754063078043986410112546427938615577251707252773491080393467965860640143345077418778916509439905002040801933814099086426120239057642944679569811633681113400101852597894716801207666995773046650706145571421545567532457796829448495883062920003228638216631526623990796517532274834155216630964932622087715115984110641933648221639560257217937029998803422510644902995753614642645006390183664588559104481965364279207966439698855356688647118812597982805280784775418881545322436856017576979408766235178510056816759014657055762755070991041535064995107750350178195652625334142416767806538413995380725627828478626128376889076862990239087186310046573174559783586991408736765501094320552347402809519093914489022885928823832243679611277099253882995173693970930543284352875983744524717561845372207699829618969076128071804509212507531203911509269562518944317530462104143080484875287574814402983903673099526420762694027606291416488381816969542654426452417114994330996584401785588433452062902651476984033916595457880573928077821549725278342688246141435295072660174338285914044945398767505998388135097401986710003422611966157685330575732087815426115690051684717051827958700079773523674511884898721722626716373616998120409196357923108654385504567096311015237251549820500797148492574121185103062469863279842341390303684373282920237962473783260740655293191616759539521412374681656656139563337933934599182389607691008097877146701583368965750548135430646482117761187031982931275331473204351952464867450259780826723462541807615965064069182734124939910389040677688598956178505195028370727634043866139097567865368906411724159223826473503317606751716935415944677734028080421092613198664691350966167944372323104894671213172298759078606193830989221071294860697750683956687043874568027796055927430135637196507274135187003818457148462591448026849536945755074594365332780805829484734034171199546538356944742724138201043438397055401547406761365564689041939332881802855728655248966229256540045961937877980216708554832023298042988991895244815765624011277568941460014152475901498218159418048260600903478063780965113253223364456329983029862403166252794844415803467129320504090042117927866977374426259232251330586380383743369669681938371246222807969666087082482561016594768801017608084027012058498793985332577809086024280420398127402319297845151328527420936341859968993932881581221492100648356940469687503174101816117366037205836941171433521926064191859094660999346312181141608496444649202637337470565398834282790574192299773031238340796251441768502887616688334418873221072674359963364439839417137396414684559986628635686498362917039607242934337743505131822615580280196596991578204447280807252111574781686909532171967365465124873619674792173760090822652056556178611853698874567112753713708626715505991542540517841919742609925524075155664374678201966874442639650057366798014772619629714574718096329137681045977505325151906337545956002426007544316249390081922899512281579850079435474348733481591621381988518316458125121575023171757325897842756231472697760359195128183177903976065771289422732999571065770307637185556671396025238651428486397398020644415916536578750437126346306992833759031960579345418402080057887912329047772449100196055995418568880075961210900532352147181775254116206330950426462111637806635601163885701117117524566150573170320037708378820024675560906565564828610425077220662251871192801467507176947839859553425063502831252264771555650562251140440203902901541422677399886757626068216957131589280344168523403432999472527313817352730148223505834917297504802621435485421284189268709144748406257569371437502961442979007562539268557815981020197183010487530756539673556308764311620102432079561006254293402984322776370312613866930449434902635905038378325411352335854169660919096251382689275688489333079410293938636176960136120420607223288370283560157998960376314013239797993392320726932342724511171665951364304398778049583249626605034315090471268913591948815400705917828690986533024236302876172952978549916417107386535815490381564570763324533078464083330934379075143599194044980175142808567582122142082916849304540143924535452949875420576479991249122189288999725413375184419078119224342562082573887649182522109206044234275440180719673654029488117162575678523566333090803846344479149400813993027976344707317231876656377040706318184988900108817413139612854010909250267301619951947014245903706478045503556384177754402848319958317222450534696465523259748069234169731445254879857405312795214558930956502982184171608398858525907870766892424458828196324608864722318363964866455106255782096284409875943912948687786317329205794353785610439634168327790332678155571133966078254681518308463686799455099601342297849354505990638749827893195762736969092548587729595867081600929405285407410608101163011907007666676162811256330648855857869315316614621679552559437281674494849910444464352089641528428747921904108011415988778118480617588357688652110103364318074182342319770354954450528713243011607218527623952808120317317540179993993867113240445690641586602621250973939242097049869679108059211953792733988548624811971758251493283425934738459319129863741399886900396738498561496365049539679818426618279422632930585735523133347793698164488320461415900825717514732133973617717617857368645168780727610728830339137289324280635820566359822804407464691453654820386125618983735518420172299065736553500113519665720400475907514451367768884924260971984794291070629628686511276359814629518816093647202949257068060271586623537474263987034427324443596070584765137154579781621422267940633013015370611081063095646698616723679717066244541627785513652332400833449302218080870915876065724819613533319248284036546951556077335975968941679494592219662203950024073769089795887603723898156622462990798175854127214196451577910207071121448226089147578561158254138075319041702157449068387529859825903059207951593979564559335828723232695622200612660288163224204617075024138570846565451830215796058351301271605379788167074415788360329521413782312087598262061757202701459794201930397330346997798568397905379158684268769971748566941883354102753184009711592301997288963593483953306300122670576016353624626742896342681529543164655478212730732174785746281226510198933154851403143242891442807555751817695641240374861976574853178071530344942137608669927370279103415779486834248259730801318413636013520201816048230595295093122842844714739090869898925555852855882237654965188439625641793086285725426829334567013912258188386239513509281024948824592958834978844705068629198122233026463704007505387210051110856412047425974088752017670116259146895552137304064974194384071559275994142773100914092539630576816563338331789562740097504997257641669971048009913566470002002028618616273791451165359986181344661457742576675355743613487918215449557717076235448047786203659083644642973009285176832868376759492169526399666678440746391804868092191375935222036436373620728692386434382346508578004350027461905843247793469600605843989466934904729440570659451993572667833143616666944811317881402539627136990228609407620382791111866954693753090947324459773392257712968861888306151744657277258646300023625335680084888889921686907908181496213381473231100833447136479210825806100525173385232196016504028124315367913379579480412681782146845055133097720075251524802634048836618107649544805595773399919453523461096866408654082408951723864269160254189450636718716146327948371341188922175448096287689979086508238210258174426083818683741780264056356937318870893294246234145459515466961208549383542146674268030330357491454186183382510049073861222571804038719302978739013510936463943103720019229375990158261064809283935478006513986747413460889779550182749935512235074387635861553742998881930423130936090650632644710172009996629775431648322363162158488901343307250207825198682519188858137556739308208351521462710086111465945952976225819370482791132436516924537425267443385272410523493149631512706649943767431956349184667389402621672165017161603233121886719950619101373033004186500504960734066043518255193987246322393034387206358778440604626088648370470810611089046666339185559434387260653620912718073103994654755329626650414522527194434841849131371230795162954789095318739360402983569157700784711991731123246111067036127623419821417438459715791528012666863933146867299827041914913876807438398671275920760285898653302402043854195288037446060148904076302965775287782542412397394911424539078892486848245605794667439329792481162539916703022852763439818717915649761246655832722092937841393417021412589433839209241426895149769000639588578931975407779642394733554923135491518512666508600409938712672543771736260788955828741701886853485047420010249035179366325446964876749533074075585791560470405740866386221554042604412789539328933484350574716804914042791084129986089159293229932922751083669595191916097376102187929571615997215991405523252650329262187654143040018163556076069823249614248419983611697790100904462479092013611849785504911445639910052703769194250184536340614762123063550779513359869400450636526751708506039798806638258616387941189488389422390092575425396368001890759458413611023788244343357709927702144570987573308809565091840686668999282351055610814675387466013581313074275533865413915525116500480238097904103100878479683201732697953911879235051264449055261206253539826439215344703679619378776430601390064055414352082545743653230927610336253442517427019794566106543896923066291804763265702009240263788435653434187063385703062598105095108866790101708734909813833915250548405741725322952412133835347556213183222941250904263861960301268769488703853079320695656133709365743797527336695751698493462669847299088057545119618602205138035451609891272220321088859159663231489038185568709511436919107041541339449611145563874383653976368796197843268487430081911342534908658306606231451652413949529436281903513504323739905076351028704360489325872795773656149247908816113012524102559175980984437910643821654353659243433726191515445482409323189831188234843068183121705307034833834021146164704676263573466491931517669998254275367910258238411966444875805429397679462407670782425667504378877463368796686863645874576974694630896130274406176008405955984767936321858850876136390524879061996085728206050437880579802428391846222198952385618743002950137257241086088341762160511104375391543055822564121971483273469980184156705833945424846082513687357594947413976173332727670660849558809712153565644968901144066032237333381963332211687241367215150360722932780637376001405439548508668675389738410674967641105574890964962328951942261744805521048606827036489578465679718164215916569342316352696482057931126908944073191461919595883860050569456020202205724093644779768764924516364868967822542149272357741024044604281782958846334497957867892069558890024926084286261632813113205482126289038140281146747516070649219288172150318505927361973089255610109887882679728738080408043648140603809555078660168974766196332140377566059922994883622019975555116313448938022455267915997564117415721790382532363416250865859015269191300082158592735149949609115139368631463743589791312512182941670903959136766664204607719234143609384623265026788465300831953846037642702868116103298777436256838875687693833045034114924115889603152531954557209237771154609178064845372324471251763922401876464582388782588253057671011326057988386195919747955465298556256044485464877353390255720794660551230287395399664312919633464608750853804846046113390250712160853419906843237239797089426030095402695321006074044248574649997814048352425197641796757847124410975109384617553660585479039179493435028853958569362937130729349946885664284235785767262608369645759770168619547311919694375634030691270877741171390319705882824294608214704317119957389377360636057611915582884172875422308139350504720332172858404237141126116933039303267992731161825960200821235932281069168361542337578088511686110310005465865878646050014098102390305531242760621863965144604346955652897005265565490578169375906380972149389740334574668452619765419944501340621867830568443652954896897533824880748378031603974686561907271652770349769974278512037208648899787333149598827836888212652105418809006625263926845175064188868191258832393132530562713009806194862459823427659392211360052911418722020403255285345974651569340302244938340160135572804940330359477122875085397120916606894883595802990180403429528135851158017333988416543152296989760614607718416158560742693946368066730710825858138050122463071854876830806489974695172610016202718557570129462631464018451011295733210270130090790806627867822055948051885570451408134934172451155771643505085199920258850424111283457122188854387030183952143137896262670483730042460689032994546536928471432169559994156253679096420169791485324893959290879922817840365686476830891392664281678251933118153390779870112899949852981547112815204464602990765750491234403650043841565890598144399410299457014267762004399019788748998097416716126889042442421060267767003632556696046302065200221792955681330496659483605909022094465261235284750999578767087443481150036455579363667017501058434080885727168514450829543528782009588824127092990392949820305069770543397715720314719954461820213601142492320030294525817882514957122697664357350610392114422057298535240466030633307032515903232493518489151372220592829674896317756788761610990415311132623783856101743941009567383567476614817823980276423056276590230028953436394890471907049280451566878717096766292263249493425089705792428268662655413876920598011633356473850010701159875012891535674698287158376472302309217573828714722639859744349500142516355123040650745583622012614791949988251177504967769492505118701697176879882799092117125077800408793225811256258790707694907391685073962758437529248686535951574030281717820545111386475643643908635845456863267873776506989988345125251404805075829955540665535639417408336455631273487565170201588384789137976116294629002474240333788831784324529177419997505164201530124324792223471685861668348426864946824260009971311293785899753935674514884529655174636202823973995057476211940959989906755326532393004926566540734059598355392439350229154321114630466232638898756681723882029982825848270091396542207213087823446341356426482899526295278484916074310332016496949473133760078826830725647956366407472626739131911809885989654167821596536771359921715096442821159151133545507026836894991864434995673877185061260193502757281797202668923971863511098835783997866736885281172502031179259449106245097607947571553617236619523278222083045588751900035616748272323206649224911508700989801672466935051464161422936015253638389818531332036375860322893982139507261982130257989415172624819318347417034164971880264048385487531905166901890777338768690766706055788231464592761987295246275528835920219957992833428010535675325508087768912750660119857706758620704007212061348980441585566253594333376002241737419618728398005263197789984443791425643078648608046932182110291844617043267805833586808752735276605646477875739590098149916498567754002911782442718281407946277660982186709913699766659770074059844811130706284019035997278083504497338405327900368184719203336686729855505891538806853979797605824834424814329257434243570891526882528808424740882021659721245722659366078108259461551514018907737021700147140042345276357739265143539989022497164222380253685677670678824504833518788835511264631499317517076721113092626390470671639189565068110115583389717305003827049344962560264306819015682340802169631052059938086355430911748811047101267734454699280648317912095232018355114346079748381935588298329911917521004947560497594617488323504358214663630661486022193242133435965585920006874478928860407836201063292092214193521642401601213994510592679806672294217027332084330715382882928558501075902022244963456898969137978877199053511521887225865801194190293466668101208707985872912972144643105465315447320197277452137622991106370100781430846704843009352370513405365948318674616967722242626045047369003521034707004052943381506741765764708406634698573435932715695215134409153224072682233067874868793915757859607832578956640591073015161013944225632907616403898875270580399917493427019646336598398909562314889819748561344294189475459389863171388265363585140800421093888673883405348491909361540577990455841351056386885677519728363598987102287965205449003666685733438266579482802775310330147437509735826879417065709295699180936368669678229777202038087591633304539940271298174551241470748886693335197232377490020864115267350491755907128216424748027172043351168273353182187091020318677843314706926031504636939580823674860470898850961016458016902605368204323700186745912281520787929592109067890161621184578119828443138803859926644505273015913849819675881885592477938872017161756830442178887534928432845566037932102618528969436040641222984648265259258268731142033603386590930520354867495949025780067936307893972182142690459786407230289457578441109333767938709143282699440086691957908028300301821184360699285371756915849266550116962185166939526581029989127926087576468610043841909549144460845511557970671573256134461391438166236787740316986114302387669521729485801301539463098679991650128495167255527729209683466740712854225077646834761464362927742078348480272010962195537172473640226143237806177102080477996440032786167539223450873715833573230443605980015665787892863663835917433550314140063124075376137810346871136401745198066473910584272296391463944941792397819072552652438973674885904897730740495661048489432550476587235101057873140900412641211640153138795935860708578132393854793952932927716379234808026153468625079306388781719298521937274197603472372539686550097128244882960796378372613050933912849323830483558246728907340827308517485961198943631458141880681331157649778159905136117830471469352470292977369911786730045249017226616235736408705295219918799590133041296740943301188924701961890863018127829436999107261919812812677436879227808993644953563011446686743613110897297996946662908546393544512866063300829516899010859886754019597048591858995780642961604148692397055618446056807121621636881453972222548271159215720625961888894572381144590812545918515931156335668838341686552236859342798128090854338763584885984839173301002808959393223613272430905414410224246905605653633120988211116385015257799800480695513731628110033631628311299939095361885645779873566716324803141528067263162175380884976087454621605489201042058041245362770902644021385987785987373051926852468414926948156148137070620000404372668627959270597559388337832740157098898012061066904853904158682655246155642915172986354500385226040542485311391204920827112705209421761669732319371518247857159649050258288256255486607834752551372668049133738138364337410802672809966431040111197022031435464070736898744398644981634163092262398023616293575272099319818904166685774897953359020789389307494460995541840193220777310149714328334604846224985797736934085827083318392816259810988083065603360690045220694178341938326963156584899804180737196663863001100512697267221908565584986530107248790889905154528186834453967150653313308998184320502346377613704720168217274474301431524597182880592810538834520453353444781896835185974036867365640192628004205392307593455997258548538909001166976761833299442795603103342412889645439724394437551114192449877764033221989161308782207465559252832753713363295898094815714747939302435089250735843883773514910160173124627704753556075228660179070783758235067412500647502657338037591821220517560674173101515516187159630915412869729657268083018693235326004808101945218705782509168529411607123313870739450623680188116009047461516258286468034212795866733489059068490167787184125891226978747558955375854502375251027837791417039927646866635347129282353905426113907164056201106285484325360339923062245912692367866281176660490441018959360540583502326325652487178277285845887941252684524177870471604258135918944580973207418220009211607947353400418052996175048021255121812329864035807334225408976372371798675688173318856259570396448018179098706421489930636038771757696795002871216192028002447103473051003474637526986433134346193779864495372227120275311292571822386941569031199240489897342975942217318448875637650140996009364113546593505865582044482139285892605261515387117987904297551483009610073479948846295998463040774187943494211302220886149193530488274449505804205522842036573732160703969974197742251433249909252965190190675054074245070277385614934880943314702996170363577820766764984809598724815683883530110074613024039547501289109484817763566399227242393646886270571038900080384328637131073866114304393859246143695379556787318618446284452484517297525293935215937532956837379292990940730473228026182698575773484510818147582155563592677161986418989852129498039090495358514603776205382230581649362007724772882083716189150055137640299902107478674071118166433132926105953228716801072417673621047006546148755288268310373029095676828112188353612861391681791666271975659658154397681452291895811586761964803369697588446339671026757651031065141461414817923345609015295082821153560905833858924664314576765322754649644280071490575958064758059755841216597468481041664554448534061387416929236480079496791582345741516869726265000379788560463766997979645251924701112328540680135835210200247981197897457645631059116564351568395590455555301109758359052694506885619321173227116412901240224999449634678584701966017001717482311252243260065313004461035863210792636387347404510069846890259181373806418662418422291053276476067479278166282279168314132687800576156806148999599449037459536021124183042066609142777074578315804117777724829435532786039434360768160036713965147986766580409681251502980039594112092278624941460066112792374813936516024191125214917394286013389510421811054416844832621754248213573543220532721038134703545886862058212958529532734242302268000807110756196012778994205461817825394030623068547976281268132774556483097370500525528242704086119647527244095520291359548198491735192572384909045528195388647428870410983535792550967981595737705558321527352286328282930313563703231861937537463713643335933892922237579732542346317993822412781862781507185572575959137704006300965148003148852676592315316801048876076936323556748417848256995405321798317775326447197868810120419699114139403252067384416290896948822942172215156249867859450866314470734166133184301291612889714017948671276493924794547242621026544847566198355037885362369903343932581681784569514075744671418746312553827335960096131560031228256107486552995689348258580402844919441273705396598691011808426459134882577451917081392205889711843991452724010862032530975650382625350481593341573319158051255170338175063701122553407996250112467121298105085325119711726464283229794112383606258462785411849691695016275459601820603241700297476225935543440427414948469384370994108483007168631467663153407574175416558313601633404314297061153945147558100674571175300749203269898347011978098047754645259003979172504628530392725158873242012961043785916826940421206043869120995850792104436222914971920094616268920701245275474407765614374381867096985102473546583580915605834362074758660068122447711131398467434937748908650084416192869866159456461031158176873513375006100019947061395049502950811533008899280067918898052121496259868452545303439481800307945563425372984231881642713852069027609225265096750117494980335289441060391389772146284900838883645183468668703874329369347728707356827264046234605848918946080235793376965029256535257453569303625322066713820673592136609629629677511481426266207322566120643512524632198424954367931760241710004175646328394904117046746183708162327802916484834665111417330165705412320380774912631346072572499653650678316973657491179529825751837467023615602462996351266304811333650550279416431679342241107737403331903771909435304505222746725215280860135458761039881066798636605521967712531214026386359715061919483126330349381120078250586532383577899843561652213374356940540206884694187920870353308702732043273666408671324779949927426689421303286877019827547535547634354913023837204534518439702899470601402992472232041710157315363970045188319116892902284506621144652111346622649093398866128339658500443062000599696115376914150260010446044207424290242009258159829902812182542437189706424231035252114467520692209572824516828273606539707750283263064299992187564696392378750645638248208090001009558879392689306516604222540051331842662684792923376151056636393676806342786051295149141128209110885694152467791312360702769441584590365314945154770594435981998969671787421926528617131062840970690290505144330053241971184136743011103283877446996367462458775167926980183645432173544218579778877743602745800635933058183449877858773298843241940474322175813972053327586689673113094428601579540589609461477243729024907907411088037057353753734798387854753628555899098421069143576778012371619367621039648499231849144092640164103707396664650918176885300454285569488117704744906386859916364804556158547547712613167916028833040624022328868038642785524770969673311302721435564426991424977137862159432531248064943756471278240951321016507675861359159242109391846000114292506719533746673821001887988109348597150373628423577853526420412072838979780665837810827055897459713457570512781376451927979138669365183296964372123656350696232236727334278350667134005784472514673460928247935360938140375970068113245175708762676406406590071608874875063701592939157805957672512837720999385962157290740154397248447037263821833755514862233748131182318438623295065951802479361954205721024376698988384020951546650583057687092661621126445726115693730779163216721328411578631100560553738091139639060405103973950261456723012957651022667804237441652209608110018001878673513854448020796602596303543869723610256680274505680248407978515886761842358811169021997347766429025400345058685413002705484356357186397079331190871637453809840355467885677081865370736454684335023398972610939336366885608739762831859179699694432372378036538304551747684030598840225202532531603320865394047816457210998629974865657998618129808289471630527665294117050547180848979930849730142158282117767497061302099974836314746667824685782035810052147050177679769930818587058924340199411387253114964580287577008842977216482007831076124562909280897872142723308501331831842476835128152517910382751556882928175179814084612511099904267694288548344423745010517355931138216019152317965338589018940520415814502252734361224887055962630428843868430580249896440441085027001316995009879587854325825706544534380139814954797719929400006634284234781177024091292984011293613689962732194989155244069422443836488188450341492198620012326527000605779881247650252028721589543552135287380863960591114710658562351463584859209134943632378138115118171993684630979629472748455805774310347830560502907298658681742421326676131386162559497656257175273569698361098258920974883837793842453143416304418600452810581417713830904632358158407796423051066784982957713560688788572733519735333900852898275049555979312302521771564744897158916459156368913869288087591177891673992564291130669936241155241978702172867544092235041351803705117524465735879375049335169985719399966575499401300067473710094444214791055191338290546737397542661363407344534087400482872408336595138413774797289105425815628213338865009714972061133961258640894377928254765561740650824435563147592880834587250974943104811941540684161956450323876624034378550436534989049273431224752743576584399260129695517676332718999014575805628918513905403722314754002198318222218808561179679844548704019247893425988760607250776160624362568766072666364977771982517483722607546810966725628182987836071554556085133062593126322785561020964523857175393718368231698180500750231465847448016505704780492809658973455643169700806030183194654427542513210681335837496759037326802594982138231523139523969996672615955854639874036721954243133943591752022449278718608620412530561099773021791566142574975223185501191490718642823205321752389248685126578447919930213336002739416944345184281341251847692530422826828052316372118176732841323675168350217255258327730017702010093512461824832277834493314996359461695786409356623887765985011118909565315233152083990354248511569484564323606664201006715704717437149671903110476140000650905828143514979538854180470827948608139355197325345156362841690858135132293929289280562630697900790628026986339134322277326570676145640440004599221405425206983755712021222053300514163387172930300714627168541277377364221456417292424562880274937294573077658830300026376311178533634967105590767571170389210296915892837852076748649518208713527905958538955844936365701729451331748412109390078082781249871931132850196121919834486320237660235785249193013463803693974069002556721280249016619259509960646776333552174243665421757249571697588539593768640940717107624796985351610995911259389509656226996304848791996671850019112980946420061260348650750592813932138704439423334901777600223158699862815860785611530838967940473072617334552744239546546192283021415608737272351280809994992694049577788689773298711126292059782521440313762034941346141167228809649421095844576444179303584174272878453425680051376427037489381470320969187931469957266401349024571798552752421961315332885605299298867546643562560776086511633321194052937948664577356044976762145563979905444545829978788619138338019216687996999122431236342778023213067819740868310792105487045559947822329387829302391929507047404188460436865784083406142383982961129353689039246197046127300091982123987084405272887656082041164648579241094661849082407489130574654713098612132637977983881142694304781979473799377241305641387243734732037086292703238653885567613585025845541745700466250994321762051654203171108328570066569640725862576210402977376391419125427622685529473513393370144481361255795134578953453917135509452126231831933544851275653688482057497731152739890304851114538564402945716217908334018895394464432870740318119424402872933892786783140128728370451000517358412570028783690469309583142953000010838699966394433851546585225051903648398478992374131583736982020193905858469804357610321609789362455550565734471735942953009503137473068556976330970756889661844945722655783007669343136640116034560926976001280044146349679238145128098387461309213156607508155964266065618942344294186070847207319953294663450333475545810082793195012360270852309233047554796401718846809660958685016199983785302430243392389178700167833138246521088039199810952555902405875025598163506581460327001450761118571123847164655456926995178625356325276455319607020264620329712429410553321548624496311877883276545581673486180963580365078748916074906749956606880648565100091906029103899653624691165611250093083620641510063077383907025477436805745313291482955128780847112023644625664390288203988711466529549958150070714136261542828504628939368803848979502378152538953278979212911891423016625784584689222807202960620153166315468478933951534714421445791977985748394704472867420901572737205523160848163074951068836488300440913147018280853202399117399311939166336759674559355091977068131989731217592657938931498328560570140220896174592530900154123894878002170941897157191841175769393107902398388898074693677176544942459966479560632998773662884309538959245778343704297403017461591234019644931585759523912572914864038920640377613114691452743195121122741578227169520874245457568523132098422224671607596955540363126035410674553032012875612838645688589979475317660026707290296305595045203739880397723719076446656657390530570006493208449128769894131098062214274524223310339857072302000877183639947745641036579211119884310046464269102391988610300695777638479419744306011348308037291097429287278027762333076806876558128811221341065876327562375897804299335527067321836358412736780231523807043427368598322808315252605563381985524121586866571036411642271048899941244242270681090675595017213493729205680086668930120210618986597936928977729841246072395955003576698740377076859675826055740338818341180506999634282215318259925945433599571555014084771984327145058860514011609398322475394322300183557533867394239295370826622243098086442275242992781152888679228275263110187163100615744532794490139968800614823075362800905859474624847121083647577161762983978761448651684700002272636601732737920790996927588487102199434424157378602887938245142038469994926518909743515402862989639872456856438699197228077884245014586178262130808100271629272124925182014656408302332802494502193824258500405826212812887276458551445225520333086558091487066905517632773981865026921185116902737920794492471643752874327753150324596570736290419034296125174093956760968173450277384786467143214760935984566427800503053469481452193506324289326445334612217315935359455755251699791192548418579735407812501395570102019674592785283109404457795552955170789855754531824936548515915911410519464130706966875598181756080323597271349317017752688574684221981470065775398895023103240563203523778412718359023483624610959791570638254267883042414682296040380179131145478860079623621667162376955388004448793403772136669689974375141854324998850636019980262648943503251727033436433067809914729748627626488532396016443540195865173780859386240584027868128856861277521547479441542296554013108658942214661831014417700630807967591942148555006786115495316523696563548873676036583183784485551124026260122936421353312307119305840636620452589670181036852167422988044538433586414507200181999896172804398431489659922379421260651343471359555786842679178034826969039175624487651512384313956869751895106329031333096828676991737845442204608665689975752324979653472403401238928519661677354775612056950261634649626416324996167146204420001858868383794979924263540213393905424769417031628182440676735424581029200324766120963285111709232531262122397512927337543868679571160808163115393412729704203455766399951977174683543703638905424420892943428887336491191976042038117744672339939527075708099155254710502118264320326873783791780098215116219512721085000790999484230480317241128680989365794248089729437511324367398163388667185321249874659526021581648211436934185888073769968542376937298477675930196114389636010175661952916905333268462620834718610063915010161151833738096529202914242734254033423649941861456346518080376071660796586661661346115370976231755291740212887938566321191668192408949486036127050164195626073644346719331948008258203519747614625213105904579912653739618024155693477452885533197214058077358823926722917425616848310498586627820680630117541510290890857122379862577812928889832964787776429229920818507025757838182349925340308301680680424151976375444895050464502238656758371617020620468583512781591113786323205363611143455225476361408640449667043985791557509163814499849754790990673433661745814214810318006497687951871882789547817615515069288329663189188553154492358115956374576205177900699482597446178274200810059654854135653677916127472174158720436232754402115157098416721847699763631839893183106666159137677631792405958729822475296682997527131657637909308438461750154518187260513138663316054009585728358491472204704769144311682093834141002196409628952951175028475989387017605504385631473806073168454305746257446412413341537733065969070575623332993615517100508883909024738523281216200762649563854322954473567663044321020681946619538810733124618010406984045798705981327624785007840538670459856632554712277789591548462843921493853016758578710966942670777974632763192653752885339228740246936447567745238686991401671936767472841967674032794697360151622714280530734381271016811413362196473994835923009331894874426416895996633963225693315024696541650976756949592988483364492736153455812684306009991235468555022032957488769921092357139856435159814650406506521577867536642192375079444208324409715091627904806091990313913146249781836177736472920294077617708206044489358648710339380140583199784329633054291784499132497372091068139541129865376621317899407168116832001069097416354207518232150960222588622910560836139815726443783107199497958868216788652566294295213049825987608017674727706712549476330459500130018218465020246922670181801145531863367037738862547542114017674069637865068131584586042023597288735181858958908201970295758747851090825172995671303787098961486636472463425778197282234966323067026760200052151838820704839983269361248886231240260989354150901791931762811824428693709952741918672715120105664707201230784336321481225802435814721249474648901126691566925287852972192843150960952568830989264881093490305972821105163431846738181425059550248699305492447509145331487336727298409493144707092085629003992282970293278142667031802866202577883506665284693705171836841510063952637108161578886424690874451346974923209033845532946838328602354788241137210364385852895611522209798776479491461791458112469971885787601952673400757287069742498381857385529027768632478623915813501371751702968152800145857029922963106587416154214131478440246197146470180054399117335473777066053029746592689088871021806516458397050573721567755353021305044392162866919784468853552190696256719991943260839209586632298238500191367369363244295954264551583311514664707024102195864788852938528059710949496685416240384276491810741350665789457357231194822585299799315638020728989715286546798253731386599420399468996780908071706283571582716274442414933543359873458541703714230161990882542065329413093673270295668244925424872638671548775495206839342749057533659991019095528587468353150420433134690331076897516890489571612031646568667375169524506979760103397019868211089451384412492542434494811608823438322699311674875348735980360683711832109912473704858809680807637052722086079424954779995493730151035832293306117906052917228450372247009786770116657348164275792162658068534191650009106369632863723863767329199375226175073892561151003165910969267303496530533455693954569514673986638767258504146634043851999475544748864419954730270971678451720506847174949264034137649237935538848098407374082126547118490185291809376731120575653288190573760556989168067451800482207349228398873332293541119835881051762284875385947809990724808784765176937939328323925225768283383947691206093407964722192131017300454768391843798473532473787374984932040408837336099488291554971617437214343526592768031796587407798647078785011188787962595579744885555239140703225955024177597734584358754122451330369084138503922927070134800908925024504776495877745314398079910816845053581904361215104605824166592648985883807905282815764344839735237598146074219148129352475662049039300950027353994085794596801854429882222571435013485327150261810625946462403390999322857760592501132796627688249093590826090881893124226574110323558446954433122444135747417725188493337921853371542759963074501148292494567957241118871716412842984432939484493514982639557273488739518786584701956978454422077764502461715519519803520452214725300425195820579237985517878106152538133173090613850020470308088020383521435574905820375311566021154881224442333686596443977433934053427284688958720932101494669854462143466495329824881797152574820159548016856351361244321046470179780798975143815524851639756065946593759964732425365474697479923237447918166838201974832002345433042075410465216534942217448786212453405828038796254574479950470925289731595709800942303309636888352063008365628733552277678464373144459583506872008590293949021077001366170947772232064284264186920294092758147010190107143355289212684269755184204521903908728464437275399326590252702016811471990648300529403668689111333849981429447617970791133580191050763467420930717341298032930023808583741446578587011555507706516216405855899245532030118666173063527033662950736817537738057145527433094913359188788183427316595731685749425383912136164022505091336113794720946212473496379006667257441340442627937701736899212390813442006927543688948192932062802111702996479553114082610597999618642198192178153744850486079492223936172938871658824754797232137408145233663656747862743500015547799740492548876223611787804140628671689072246367912904448680358813582645215125095111458888052036708242953119465597572526420039603732065623430999065464374366832287367610742623335962680258670176536907911273016430759799487848285918886702795434047736805029954783495266647924511043142625754700349395904323892453528388173798636165883270930837954550258335734115542544951453553072987977387712901420806347341633439310536488551043438076666610214155200957581111169115061273171146342973288575166658016451633885922313919185686455708245009196986723260710629965339929049838439909304222145465488819320771642469879978093551318818100272004544077662953419358236803874174530584985123016579773516816977873786685036866778418312256140510661755586153419373864167484761144678920485349452306603242175848808876304578498407043704890976271476199956382038179823373391005615349840974959668301720319817962586679269543986469893013580374910348266361394087657281217374882822751590816386302561201384814574703267858575976989645747389205136812193070286347606967192944779827643180209784224278521104321989728803742773571813290747352976973769446007130569426358770389608081318350602036669844148436166546265099374471143167794076204850705771456315379962327351560256595402056146747944054461310534234241105808507922687371253809128248971667779534831627495919856346756491627436336585789041696803723941447635556195892855663106117076565389520444303782316493636053826700104140200822949837797490413703436191578504655327144682515165137775789518513714507660019707259621497288137319907300614949285269769068149470070247809692126554596657923474058751057237052965835656450101535011511277878865787122925048893222103850544279090194401104444002725914719490473658015727982275377702316967252194063131876287251450164410633080180973963111608285403768720673251300266481782562961639687942141938830650992789573882890653996622367196843987127502725392188986427796263243427908930228460068092528509164248843577459750635308590819252431243123697738597904271854147043135901473493372564924032197397416337088347749131400478726576079135309780644001991478772672977806537850263144234315696918313572067433289631558641450940188262297178124186357872042938426720090719716760328762775572707285439373783257697347454049333095442615977813985432577942469962143743442264031494455506427272528627971234958974985250142354727872211505809687000268605164593532654437500440971917441730901854899532336218302884552444388677664168558119273673486889012878483668969701981752167809324706440342664026702834259176436968992004235222526700546475025811248956677670691898826013551994486876936623673743369271722015157036958581987034438395727726605087465760847362658135319818621603084883769862690077342021587854299785907834562276565347011700055936641684900188826859594068684865196848882224217351226919174338045759453912260438615505968054588014082462774817293059810468114373822127202810556281025465820521159583790083861466683964932794632905512704240274225578877263254632937313953529949166071019462757950985500392858799234939958340013064154848970112286854719397586172624560730829497823517788772782168489957684563518747391386949028896206814258287006423233944815656788417554838066917348765060427631305495502223106189364913964278346975810908861891160557423870599039539066901147039282109346633875884382265145757015316385767309929318241701629591886860633511244421196615626822971720274727949970313153088449501688569615824735287890987307265864932461747430931424562200734655051396513375184812982673027665663972551919176891308737225790230074835863212263284018569541909662752416351603746510022843923095525762453969777330673313694231289111522521783942376497949382142699430731264620783945154388303724980433870119898643773022490573391798452823728304008070473287167403708859763882454693718897008245966705017608122233824845879754822546870093268389776738724785240103987843388355043270229919027453047223572476940754748690754022012371987361457137627972121539284005510501091817002241500540163544844369124123039433546866416628786236890105917095246906754733628278761405160693121310936897986045431220016870732636974294983101149324592277221295528722248775595226701973474219707989363062670029967709263218107261756171970751540024075298334925982844083991092585634021146380268812384928156960222251210035021454014400118515950730465492619666602924656140941825654680774133117887266763195780493966785170562181721636791188351836455228163789169598575734287135605409341074740589750306723937721975355381625860348953522779897223071302261115780948626065761369922279142655424444348597806491855131132527975944665510563789141680242613261074427133473656326104819145237724057108076265401819378972516586612490253827410457961747871498211205694392661511013173109624565547291816241785462625087661877345708916292850959451321541777429522429502912548617227561491012626490434263984889361797327904719207224161375172141581506871705790037573705787869702760877460466577846508563647169396107084636905878392887064157690610192263584705216715359057720613722578422701519855821845969359838056239015137440009429054584062674852482254625784049125991425404471930591284570640830348195787070706791851315929173789174336066894525557346383106326039215603299540026128385356997691471286149259796576041991786566477010480275465617255548553552885689082346377936129533987412830183218817921116895688699420702753581672499258236184054661129447860620528591719469378703660764430311233133940244595052074844279941780158739870151791338635664172774884313573201444482433137512705042361551920855386525641429705198313317446462663582587121782335036541666893998760535042236460132720614045936095715041162123519555770199609811781346127030729695162212422466264571722285142369469100573624147911781408711779212135677447844402331139492558977096624046637514308103923102689600164789500135199990993510587695829632710115537808273571123758528368022045013803041931029215188885230114184314524131218812773706210577662173306950008594111890491916810193754534346235148780277531913062146564376225217909679487069989233877718553457721633776966258426351904146687771050592270627724678870620707724915691936550265140629422672483579402110753702995864796685399504667925217785192455980616054940121529883303188216976294122361496785635682153395870922484914359891411475874410332919129275623239148861442916616095198429899204323278429308502876393603997595965699747073270656528947238548593073769558549506609833391526299736669092979445822124893937711331551331210117979993298905132881843612684106989712823997905922871301877846245548264102199130696357374802093946846754588515760849601626583042341007630292502768172939877718695212957131182395515503807818781010375951273272569955062819269555179697274313490519985509068724784229304992847843506006476750908343416422091774563370556748608447368169292116416487415217917783157414902576291685591529614607222558437514345907639440608331579328379620006308451977018922364711434086739414736776471634385109999959832585764294433096186776483195813441638489034335220576763858929220840079182531703697838441750602053147153881326206866444964748512265033032133270840145474897550847781119121461433954689984450567246124399874879831484891435266220523829891753108542849542932362163140839639454141396049973407247404500950704568371728610182958093110631711724019373754690340146409023194266011257876246245611798281449054758327996817598500495499274279058135845677029432928153337245665337851880067771378641101000380947180582004025886934357966838041518801017253651945112796859143803922191007353938757476501431173599346466791820646829985610372076550840812713536194938623866377620359494503337864306831098910900783092538245900006979531431973769340706612448628008223206316717875258442247303628945360837804535687983558907546562720977973349275776664859512616599046943731603444531468031182359199073489409525908816191113843823593923101082913949211132788546007211336972770516624683308632038308394517028573613880126542523801419575102717904418368517147743146980685678756688908893965288766966422136535655399124694606594417026331113361839278206508700850712176226111302712295970971283641650628352854395012723448901767347518177757380755866866176906686890893700833719798158578725905416471514133666701122084175033210632262864886788944289549751460341038983459584344969474595018907826266731223629219675641196862987570882675252890103794329841096069379988342388971951591145957232767653958240283926209680118420985507930556647563833196011053949253430360447715018198537739145804907979719528872462095636416672121805027160760701536975201575381812336341545333099316042605462308188148604703865264244183901855415802413021927587144188916704386185174658785820468588768336711455598399282846346115078394548623324734143348417186625162215627858076805548156566526976202214909243978616721246295005407427834291390260733692730243631432532460054837373762995622713482304715808253025177204710738476011307351476996934814509234593470856026026071859590515429445607657050999812436587859914873019209501726763766546379190266423734932875003449609568844361483542329629492372377824752400146490628581052419435872074952838202531752641139453163205980293822426204478452009033013096566462498555181344803159214502288318115029289332836003899435136476701789580275905673260801131367308075949362425282784924663944988226751899711656536346409299019326215945374024974330660279979832332457111748517495764999204971976273505461590952560236733638315434665583555326439860724863459392652710937917677681983856263951845299485107587501632556411052853888781247425579724088749308796712970674642009468167088845865341113662662548486572439521682865419896765393989854516199556848671171009638670449626740434284690703420091632836444076369836565981148341485566833958510581485584412445407549064239821589945155979270608818071842178326797690565734364084393984722520399597175173895268003337938409608796908046603513131831296840554670464656290497559880083542030426568218218071236287651827681432230171628764918386432452763706489349543813070927836676463635974547168905263388399299341216225370744783808836169824817345657407792154584920572859042745683326041256235713985095463149931256463855038918795848223161424755509573061652263752101538001215942974628132417537929118660359481619622764174887290292838812276112054149233497130080433678999898592437625119397195690198509444270410044617317707647284587749847128004611020141545196796778703577571367610460327321132772230254751439023698970677991845945490854331028766102675246984235763303604346186290396333069067925247017020376505926129790033451204782521775760884012009731386112553528051583476142763979834297873794266187375508094612709927216882943522246142213496431563891118423270179002856439578454627151968169560297112632864355939634902076093372474887433867280013057886739264888439906579790801750298470230132243302069357108429093701690832563887669575058146126823522178371638341499009634537679265733788882242144796415262626259869208501739665136571060834161081389527957658949038464919391437859124650209221948180996987961276695747213852122174058409961022262173458301795373161487572650233716127745842132351362367346818578456313381584932448039201296682512662503067000826706735035215999877336099036995320843908374578557845963068711235529280148616200654334906461626461953467303236111396457625137403962506451571864274264554357361081694692068999521938811629330399674256301130627024286673789158689245726023075105208098708397558025388407782005225529474957791277242303307464669958445120734588267586001267020792636957840564296084039536221544255663824401662572207894698902744755252249881609068868741124150257246275770798744431978423942602736191488924582384818796003907615762132810806641652197326713995686828215994778175678712511052760056134224546333692675198295028259757565352328959861944933121021727167068368101022614225892813460543190584795786272034465709389662950923915460917036947089581096979367737321368104482238413418493381920926695232277803503878444178379132608741509702372155832940862484955558608059457058623262589842650011810711369523815832366087294868219907741587682252311426379490881781147964411059184537540367519143356433117952067177744594744558249650733347298954644276232133931669267236237718772071201840286909161801088050298270908168676803823229518541309808042487719842444185981839343530543461433891573711309826634573807613339718766320064070158968131311331799605578687849298849138334359307394322973433996839674648686677110816778909825120612442703579015909916715182985465775466233778489212413204452878395479358497498020809066257298686644712163707933167686791612156125683537935178956643475470016524987956862053986808827336436662537666230980739392731834053634054663848804620177662735318731382734574698663686854269184721056643680553301447456376714418914259933322539853455804605933715085008843027587836829342474122591810697126239854894774904816524519932329006972987491552559590752882123626883298037759735460312495431891429806815232481823040938331560349969384302943234464442618139929779637117310785908305338176194538805277083665441372335405386716957473202453129424779432057709490697854117076383030048499323960894470931760289227072416449722366699615197799297896154565607698528266665494453402103053391183942380716502727115753524318846210035226445167060586200675153060966835281129791722978803946852468880274358480428750300768458913881153779512166231387903515299882480327640592609888258414158089060237217475420093508927372533526337227928585278394260024526227582014740439171304012289726279665331745825652377996944528039872367745013998962335378507362317256420187007093393956392356768568622886560469426245167224927268843665807669280648391858463286740178472486930876657439345614935147778553092105889328352264417333186097081072872675990764161747404821704158134823998919703003973147270527831108945659263313325815998404226369676077587862035887847886904747080718870563149919135160834367985112782887565945837390837580002341499106218270686290802716002873163688995243656611871566211555976812723453510018496656398488146638048776850358012869082960687174809614257613256496277322373516026093302960129238325505044710374256749164554518483622351254480222541503292948926950001145360249934994528128847535387770339374480935174612696313422892246487148944009179492172345934259134158128935031224651796365832777112125750198747810415766485311446492304150252118255348229868165911987950098935667217265994698152942511135045413738884785727351138087275855576023335362590447950399728847271402095844350868596146091109698557502507564682164078135828794745637584825048151508902834391097331829604734053200446218280270272710512858216650241718147078175912176960808049107928040517924570607954284227570056999147160017866631593170394260919695455876399702508362562789539089222518991041850791912069985934419196199703568991462461267764685515198313666818665186493347108728679296266239081222346696225397650560571242484913041163139254270858973486762684092150310153834082121805059644152777381526219221443045989263718385695009875432917624028448656725354893213153529991122547992843214869918086744745448131226443186228311266031328088531653033850094359639184548313037088698755608914585037028510281113709177012621955458820215032498350640640450305716906965229414720339691210822970663039290731271392882816165594094290407555374333098115628162427523424335431906911512521922151208986195277009717878376257954831998455343090881476934968005561110648857036720634926259668658171166348375296874616659116267878005050396166811311074550202013214373346808187738518614044359830484539269521714184713415086821343677647950870886919320513841729536711211030795567124000010970133495089945151427002050464263714227957236307639953431652041447137322164806648657077927852794779645285767928702248349135295949363482307862683805843128679298253452018719215684777580010210434151601614624797298647111337329765666650287257381855703871452924754034145007623814852194098736122958939749032634545356145472403642175650188283338188937266669241395073574100445720780021740714527992198364042083781657704182608076300526666352747873493929085102983239847654369264227369028930765511485663181369560581368929852590953201936951060160248396053708218145381090082089999198654785186059042978833356642430370562502090081730026201970679642000113131272052989153294418832981633691427691820168790918081721134325446245501195639879550980552003613137898521329426985969296772463786225908973858922762586702756533252059710395064091560541810080534182395739037324886814654503031669478346862538349079358351104708013258647959682646055511528662608525124767288969834696773201104273730225992264499554665764889190080479041723695836897218144575642860864654648218542231458199734877668657706721883828203573329234419723770198938894909494164167669315625495832135758766197773076577345536810497323909908034376703121078184296067053277006774311761868080116891058130552468343085424849289296574301708215194966030898509559845965564812414347090566245611915865626317733464645043038619536801721184873793418234474269991119396266817236811522228136256708610331520804149748526668353427653210332581397697384248025761231445090205937998943136091595559445041374141676818018471774790434314206508115208767688963454818021338444663796641063488017681292816111119481952338563629158981375626500678729233413027670061938198281995488885186830477172748836829778113036256916985896372714941990704380037833318472510603487388318392767837307745290316156271665967252891042942237715969294894418869813709952579086633942504482945125250373963681867187640283824813359079105675013869230010362078721447772845138979853217124737030330848282060482104492467349807388412539097907492728711681782288752010791035410928081299490329780669054625308524627981759773575172127110714093923748422722494997370030703126594715240745987061826125386531546249476700579457364148769157623996529448481938641926647873442018463841638275922710385853678670591841500888923906570730031081169250051384712919808320155498452924141486226273516671168150608500149861371218833231745573805485122208254116226046986965141383911099106065404323647096318396711915423889973495665979252896851704428671843174700151451841619219786396055525551338695756680205697961946512233666323854947631743072516736945066721339181658608920039576127903991951756413664063607182655277458572081012386793074436147097611859995144107756120301987824210001614586546160949195171567374950517837176059710718921814883379359278766417643500834280433752519125815161396341456328901695993132695506619012762579166459943376257555466025710009252366957915909508874221393592130474763212111135442805368071855408794936605124755930976630065885787087091848437485638003651115341045554195199025202884476131250985667097682016243871209106440768606643119305711091397364496732581130935981119476901409969580273774139739860676757349806094367772606212656869723551893173138883883779510860755032399902565655879958066847102428918899268282013581293556170134311809922244495976822232707570090200549110698913542493167015699434808301623811398971622148503348820874387459863435069283111155646045028545218910715658653640010062148496734903457576494278755762957851489753022677880308830434961543081279567458390018080423692921697411755754402832567982012627721189073042088157872582829119095405778127767210879870726956463485251023716887845521083886517291432302503535418708617325013210903304101657615904064471513776081956840325601611077826750918062897081704463612962361819058064489100322745867654891057947449985712428720067243893268113640052129894701806406128873823521867109008686749481068740490525981330004934014342830446423374790074407148222696459492383638733677570531597226991592058290491411875877866343970175903429922764885562765166606791715138297198681955760440887208259553770492121899892816946577954222996081147854252664764885843666664484657850271199442485799979071904816141094542113024489130973748879208289924088470676859447502687947219605990748847851502076417255017117525021607727494807469409927378336634629939656811776556851581959143337110746210787158359065671647273875189034643862318871378863622547648957094654065320065125700428674581100408841120330914964129108950266554641746577419153498535264631526969248733617991449028450715429913694692646396745168276428336240092326384804633479039764869750697927093446232887789977186529363873786757252582897744778792490130145389532936611092299773092292185587012874903227640100329603132230636318760163654803336808629413317441622454500597304692499922868167677424818022477980009759708826718446357627703778058294502039696518042629333104524756725448618216426562951474591775903456291248010274364188781724807681263869018949287905824962830279048163848322946091339008699745825088839672078288015122634230756231285828552910033416524378669170703159188545972503460716616446491341247295399329672446494202431785226563615319349108310031168481559268787854647811385552691692911056295906404286468177845564975556738940415878716033315446092252436411702627963332894280472526082570035637485196941922060126148057549778434701880973128848947780053330504169346679072636878952195907862591300788894051490611932596608729942513224615446668363951695319816059509333910669251762956025778631937413086902965164761426779932641738443554454888418908480039636942713926865299078632495300210559645102334059711632414753953292607083119171477813930329761295920531212924574256986147088205971487575614826151096064783071567258717556339156570335532474568055698162796849499927819919421493621652699688520540649422498661873443549287111661747836499285601591884602897004638669872397067433384616679111245706471039616424574981748535168315527553450242133213276381588041201304306126545862354069791224007519733117068710706079449152338769567091963299403981869525714551725237072525651495132025321754190722529225307001227649995921880282101034102505717288064744801098272971067665810929254344602414870828674002914475171344252912740721987287457249098435339883376645509294339268003678625414985005174225180317677864800896652421963781370654818517757882836233052832339505530119510857685323621979675062208964439879771134471327950687977275341217935390083779012130707803270073026508540699435950397259330004402285027215091881825660941377344550186180348346553797838072026719692347925784181601512119612604942201011201986102807742315019553512940591656315225364272875771150520298530483414774849189434193574337269742304707606552994598801591737537090790452329134416173519963122184493379801787477278392704679974765230325542591790252587418819545395793010992494350379749149446472224110927305708380959696407225309863221785907090789688751972392354560017530560019816890828759072146983846342733441557771866963843510016000762391813357602218693262059308951733281822218130339011591735130399963501134197715418469339934043325938727619888397970077138776142043818289771672009679475915597759961140962428642310734823414024143227181313043042077065953265297285833219325086707268284157889964511626798768675513488170112420838169590514172682195192565142771861737088326115700586285154473256899491649792655754906073393742309799316350979436313653392780300816645445369466313615960206011880427544152647682734746956981700006057585712180626138375881697218710970791189798135290200606995396280822696863711867135566250567120050340950090886981230191798803340015044792719600186995562887311393499808748097516193854407433754004601260278818924050791779681153782085194325785076436317497704430036086105676614231444592962215125359959632962875960022405350593241027177128623668742886814408991352293728141503858252062701590401668103133168367898203875792617156889872629452699855534249315558288658361143273010467650666991151544182340510462763408630159622974122252536699468104237621790343427326573327425306364558066389648506431973044384878085813624994420965242672072433865445925252804406224008498641806825734880012604661724731563789372736203017144389037476499260150723414613458213773332289500248038419174229471492334704649547028956509737715434114422915269319944580926750665401200988132097058182425173007550259420687396574730933121920958298287167580894310326528046688132015624313767894205835978111525464346569244938832145760600353481510396163845554989500523551114285730945945540695753032670885495641396537412821161911963091083755411468887659121269835271503498442533365777248144325163211461043950388282186532622983158802808383078866041816403693529544193769021300947264814889785414639816527784628392035209864045059668114535998942877846712335374315035502592922521904140805112999017146309628369168597420238219125872008739677931867421318424151525753882326271977532645281366621525733509359871491015561141899071588144028506505367391279545063508508018417691587811933689254315197386016540748817278503092614860753644829614733386001032763305801314503377917335935622390468569276944884556485999726378634640484038472221021400382858895279511441759379923748051762485777969589287591945008933541228928029498190225790534286956031578694812241028419209375262124196975944832310190037647891021593300615401314468104167509043853783917904013980987376087770773438633996735219124722776726285977374570636137031905591138681730880906592290663979116082361572246625959261501668583606281273801384024714348727471858876188114083858044151945653134334549155383122932797974559253576735255629407558927910359976511525424309359470473774816970156206040893512792178788637543354816953960817481776198153348016489687465000260406623463234041954289579531156406501743653649362547602281119658255451259976315752469568100682100686019104777392895002877769915142886187139410552530484224867879567688665087938985102175262568354112555703509550428058730042828090887063535730447606196291280478136883138814701306042965077554810816702406233501542374532985809056604069780584900422871422582374406599899906858166476967380055672246719591198383529936548811473177360972526785442350308484840456728317539861636529781677461703058967484014837826564420148469172296569353838523764232639273428421206042876587291053118157626207662538769379145370901597168633687126053790300657008039968273072332098919942375118851011845498552527099226584948691423435931008716045799781601231072584418409746619805132197861416968671505191987888999512826378355145174226896020151071761299620733233617205162971594120053116459109691591888694936328592672228799678250159755761118546553450772013248332566223511979665425248042543918681423010016777799621789415685998557723084273009390307396855111269529116684860041257555110810074711486540626867304946538878286118316866549655422088569185809500498196891177453936619797041271937112736532260355204464292326937704876012515409886424713629485109746716697566500514848490224706436472729771823695415878589312447958706312113258743373516709556312596981666376993597475077729565255852677761592094957390488751163356597443532490939521332117429354133221808404751569517402381777094361598201127520292315866039537541231798945791430859130033106826906028051693098769833182237683515656961720043269436696478123121451131623194509388065836709231645404738034203486765949487106306003423469159786532767216002973202591387024616734678937932044674882468543008549352174433029413684793456154920036415471408496566827565073794922133503469737254351806403772416331144342306777494336701990368772217790038835218429848323469521160354903308907665877189135238399870057168097799003327937295820145374145200762910432908309492953257943064581749549595350013052829215012343959483109069222210580752304496372935810655395233385759485522144952801273915235624552271402337516493275279202998786513550008780803270122618553426081774590706804484080191713150863877491062731107188069802654165312628349215519605939404096664136356294797324434740947665689372519244890161429621382175063606804400509829766283181638773205752821561298891750009904715921712544584287149145373297326733923673230329748480836047580905327048269337370085849207900257019815850125081212644205764178606439410064548144890108853908630900093876104024332721360334976423935649736726028200008073731019095557089794892691459271922879441365843340457695841906809653434770594251345955580194610771475907713731564440779991351440832200057227651413105870732341467140873189971503111850713855564699950454799047029124211102556262251339278967802316811434046780749423060919842241972119684397826792819669350946563929921327598001347515152109830380222526487704085058180160442443461178696225014001208078396887097617263402880323764412759072272372526870995612278473683866083930966876576110184520673845044218231467036652868752896673275431974081952548295141609839062755328584293177886228668202996105214954507041099132883759610550281912862266126508663174054745087009843128166994586317078966238821768132377876408853100465254616275104983194702926412055029004571654288580889556946205673566687342716093995086452880927857641230253402940886911248148045116387685030533348426434722017679019216847256716157754062992049271187908159283817500877798049276185902980585731282641350884502300336070520221224175996782355132019592477052206266807074775538440335996964480667483184313949401866193965492066515636372881737079570261688218825202320892418015871541823403083903506691230419049607914182067560898410216572497180509558265103695258566534156175417575458337665604027768136476910936918277219871542264791128634512277293800379342857575886369208955486323580523538593055553463026703186381135420894739892914292915370332546822108475121665057155861899411949467858095513695089150288089516766559890300055202961018895103492790191300896220659583069937817160024535882869847148504037717815829874400107962270190159707673525220954479664934729952679329685383032181308401075928096542636761547075922572800846522193128893036103280862202209304557842830556328114668550744459574186191497825293752730742002122662572421597947393599301124675643956605158227359091338110964093931528401402677762840685777683757683279373207477899788283972396610541109419539310149686564403276300922909126427695615823000624586778114922084463441415590090813715952756010408330773546935017339712006762066851510560569899549769053347491479283954098383709163979517198570217477100779717903297941576773980889558919229128157155711262502735896501567479803148760150244652312281231751374525774068904217717496910255934638866899439660375009277231922989753861441852256127138124563138636895618347197926721334291875256755784098222001465663027800128432159548736803647454292572229264664887255907494656776329004066140629739208038845619611624599361960161375558649934350696693034028675514616960335273201247705166992508484364564560434878443967093713304796968486688066254128469790398922674119935713366047506825355910486563600232151629111825952206461537838227710190899722212778021468114498121095377540205075264909352126826388674152286677503026315685319884368449784534652180230628126123536464078861129448728606263741226236928502439234445000705929154934711659944686272104824401918764244439025955001616626390887542686008422794058760011810908965512301628991056929376382175022555834820530576882985567363833143146260343816547336042627678202767327263242365978455635995908370172851348110573024225268874088527874816283301183568123062816170375638769391352138802131457133692549863575106317746012535346186874046926873431481207508234807329425405536752425654200980494774436202305932983607841933211170033351815656682661024955484008998972755659916195367030126825858452982927533842922660387102075800591848051391499646555393866820599567565416166649871256822144884945495397651265912037754210507130958143609358854869765965576994248983592831078985015007991709517816631185653084731721788538666641151187586308929024673521455889898246663233814410232221940446466393036366043168727889387426249990094143810200339461496036305087768817934473130787946068827036949163344128530622848196740532167488050834058186831346905851602333663038699211062548578040652668297010590842405015526189247932124498025520510550592045742183935677306045938742355374058674098081974432806483155846475825028138747775454145262949426404216532702418686419321876271668897438201008791943761243429282483316592805765135083914878190039967386578032930054592069242540972494484035804069501324260720991450112137005781921840927083782688842147584916816661878222635563138123993064714940465205055616807691812506613373347679465429425770890532495733940661338854015016284227781308767185762123691800728484650359480911267927004846833212882858348868777730711064637866436373674657637878031231295861044630954535513967664373822285135060800741579462266165925323483226340739806506454423260360572514490067375665970052914570861285485864776089695595338824647450863229408523581720866814496958119449387484493864688256301005093060409188097929447439680245858549607335966651976806016829062481720806466378646454393066710322433500144024893303638922174961231553532199709802719758596426166171057269123063117592502473281404541404500590233023351501538403471307389571222972897145044119636022715792480064677477425986774981010555754673766767917004759008365383212826439210258624733530023606378320435335545887419526581903092527557802063515090024929784640814646400779483147866963776487594442191671392803500352418369286397021739588352021841412287587444413754656725450605872380330835416317839241881396957335208918940846914398633796451035083918827499887814910982779393474224880520276900850718625239397445584637794582716238010111016119084092777829906078595422794274679519886993293335099408725570997195987449330973948624842435967935536767448357716185846718499915089720820470487987684524314245603854525452089273513423731863700442891928014287140100543132567391347162906564332578658002845142630112884267682975872018134089231663312308473049473220086548221356065661237625155827723936697946952435772787429105863708489253653032387325373435659296214371051267849040197798813653710255402525582904050485307721767282940969691267804847163184969260335672232076265209174468298376674078856548500051449378760981288837487048710892448209441383870591416929072908700805818684716263394229943501251697415802496090728525818698291875966278100045955816950736354909309133355294614675952351729721170917101889798682593210466452985225624984035535524174686039933295582484095554052561296581399765786987616260850426130042346968856097930366900439870924832443363339657060868041064471209254173145382675335266847037693219577458249011409980817294161586817116665307991747273266437835081343212061687615166495923045634936619014484455859700626424048458665815213710677115494310409273100993839479066814176986972203987546054623372362785610965565132348900539275458961087887251983237878060040027066933945103401964013366863314411373717574713310204591799808964361216201438749267840935388620351813749812113427925271961243522720278593434186957944280434455475055818155192632312268441791901599675260651099996854312244608705225183137032157154947362746301834075147112958071019420817798208867411408730195060715275305480613183139313661766943719771025051203941434304823475088123936134129744281157547707628013610336494020017072236667576170283997635377317515241807839789653201772462987736729498580170388150504686638020591739688277656428198554038640248653476875993709008117182507057214496361709395218882611374872822479548353876108806600724456222556251606232394006646453817090138453535563136739044229350753700283998785695717779606050938288133484718559672033502817208849152340571678132160579514989155862132042294524895851951920618746196938234078976428850288752422126971322181460000465924833139324928044412245468860762586579963541030835359379542558464503660467148941338220060467732709750605294813402249672666459687415211911137401684812573716582070171386120998858084502627994003137723751088031119495822537597278359295810358737748392009167252130732469920840359631183593939144363586344467397629463318394525702334773098420286210127910254766194495559666687348941904087757750885973733181024687063637381389449182467757369144341084946490679653044119310026545310046929049684917429366986052918989618811516387989753717426902165967883421761429997882316851407735793813257114124854114894026568547765566974519051624693874203594285112976626808777131196636347799907777154052912015021396846658714887048015947943208137633834822988842020171932086279127175621172919670642337769346020015579364557419211053851373903762145163106519158701911746033743926224095364208791114825042865209344860559348480762779811534729062556715378637126034671696644926830519093159107463977467336586519736347397979998464041026248605077264633708209085622487178260530331374810991026349315820431662351405950495161462095650729577226747592905818354046264485370277569163419077514726501142853283924556618897595008901460986137895459597773199013602595906123387237997757434288378234739482272013134071633451741941232001646066777630414632813600110845393890463579426800362785080753032663109342721185585769574318747403369812979099003776826032439264727461718066909786665567339041343998086206116319527171662316615518232450853416899906308671967034805585448195541142423303186935925470364768227345113327404446259842552299264705320062309504478120913730410562460950120860793900550245379669175195093666253634623246423074390512873967222578395191669027182414409362952489164317994553677676722331591347808254352790128016689910298617214081497127298832848559477264201933576700162954447755214935329419876668465374176407687293588818276136270533009831285850949710118429931358485745072576121384174761745399585818837814227705711451766895300573483599448304527972332523697915710399692055053842634235834017873804693286679147817968309858358839170465915854464820292865311305598734209076061860604013953672555609425586274981110659785897493531213823702402571850984371990553883941150532304171359424106078853253364298822850577607720141606155335758032396011053471904295987190529688007656025349803622931987517537306107903794014172202826737089071842783959825309158824333851956270186557671105539167205546882554130896254538507309700844339990079093413540139556023308019881732148430574378974744389677715558394921082205818115980816181641932123189443854930605504631135718848116872019502583396688302986780930439767536593322761676346163683367458286174235408913249950117659545753781457871030961177883339160050498658080777268120232198369493450285312711960039097576019475617371452843788000902118810281481737131601861005340657921911669735125438862231601696343653037864230531434052729444548066941049772175996825219705825836337831756958066391783863043101416904419927561426568981475781137243937104634103629639721838660506964267936650443637870837531891047399849777584803776589566136558563809048212225190445890605447921093933764618254807719938406261796745488242133606013854888788221435100379397513511810117230837294662413783553759006242338629349062095215317064283737693073109838472799423458286023324064940485908091777478370470886538962161112264563749155587022370337211207810558354274580491097003070468926755634776104439735950422166574911232222166809865321781462032533044888119167453227615067420446328082382555282734990768391027480752330954721080674231023422599124193434233165618758980036161011883429077554469292391724905486357730549668120860165801958803352251356683511374131558948940424668784327565940564603718992019884942687574206248545716870565025378062292373177087253099533502522768690199670342284630032888745283908100724053256217607541026332039966522029740226504860076320605583399363896157830543625103779022350379512007692479058793264245052592968220201843512308795803201454845123806542108694794296928669952549804318712432786039659977730336871331128881379969712744572640882318871590317082123305649203001545204211147615846894332967218390623765185106968393013978652450033848705119264010525653979757565219486974605779531115220549773346441807484310668979834759183215809558867289291039738657023278452102544364154088010928490451315243935877125079416269197086761618098259186628136568105189750451866196029073485067958911036149733464977719853602687971335759925452901864147694188233072332966260595506077426977513921127147212392087506613029255674297721758549054623082403221025945764945726944253721369919911896361052986038559016490959904701915207392939847486499616785386301513697077253373421543545288262807083724260936525641612159481158861390083301133948440121807921660708991269113840000787729190171450854972884873658669089375607243068870754721369172986708972710089017106390545322863193622068517472638162448966544370010719392145067852415836458236697620941481228401871670419179680717207774400556089153856568546395997066738882799613183149694697812666135283669485357334381174091724209764562522642419482515591522401777997635138083670194435516357484777742377534242449572633569507249751237511699210958511553107784237854126207445115650893402974259911306902540071897119926568715532193786653642986288092354488542127818144314254005505593579937735543638637410896498104727237077689805956968529100853977289640278950737906714684428513490993358021091901959207061400973103223798176406984218284506296982371088648865863685850341156653625785931573405618324089628109792615433575237671893164752215207046479519094759972263416572169545763149846550024784993519102303652146638248951948730259010713606768104888881281215499066662942517717046511688961902138120374026882179211807832785145371184515770289036954171886885797816919109196072706394959277256711718953278308683655524813083333824481388784315993006805819910510390156315816745328845498104207746083732104269815084493356088481024339482360222781659389674262042426522058134721123730161675008508066278289088343918931017861072106969039153198136022875240179624356888331333330718872446982863900341186195636987318726857677817259045952398635623687354156108043745124969770855164884974809433149731331888017348068283618513790447602524289815068504735732147120339383700395779406136641323147821211719881740244246124876566956324219213126333188311772942253127437654358913836208560128636342569031079848064227657314168137468291570533023797863847386123570589418430236423177026037857504331663712586608131255531920353710471283787458544568412984609401685360250988509195273513070634085192580995517481769772177825099801902328748589790010866742109617150337430846519037451528645324174053719662978249987354714573564078765821386555680372189806846015119908126257789397409802141608088550084839720549009610544055614642559198368908902354770211241632604501264686713816585535870449752379155306517432001956715930341839822354949875521672558220926794747784348860860253791575451421004355643865103548587779596323991839205797871639900669912577376466275023992901674495109788211286529436797543773336657602437638398092078627894396357309746933945330171627518752207966692459512485165069633681294526445595976921315667273731692257797827285632934982674183818987851147334170640428951035830821717179786441600615186235386286611129074828896575885075207134633038634169686264879828335249779061300050745880059783730270082213319065790978072427421531967948622148935482438903362222691270966534379476478899261993484992541427552302601591134956883526390573394904408790356010779480232115716381910325232580649424614121195516873094495610942633993665403822489722336779895180817965683135906638002328079876604368358442313600395394523796432587611464395483678635007520769717272734513425603716205746316954178855924991848723748492398887500277077977743535439140175303702528629826220571074130889880469361775446365832856681846391964819409793880419895615729076766100347881610743279245220324986037697519727747947437279197064135692515571406399081498525511634227697576932790548028891506480451878594497818536613562318086505838690185545613887683196075085950443283843114910859756791390308736078974298846877599889033818702989144771949849888566251063787034152227997182234570464716008218424573434820532750692020920129580271433703389295725960761864890268833813024676356981530731393994348501342400036411597297164542971836913056628751618627851813867068343059420583997739974689880378990646178873071691544772021718583463564094273910152065545399454289770836107293520482861332247352198513038114121240428060775711465951952268442886373456065953523545943926776747462004938538217372919230030599725248433653006473648018975614421236991337712994281579411295609172499345702539847772681699714066323153802475701057729730039469554059578125089713013780101659617426686530289863827585243333792698225980362459934384217699513711472796036196559511009596740560674345265744343842501017010288745475732119937218865940504762737882178237378081205803817840440667087061047779718612345834501876932166120734063622362989941666442400928225871270841469393953567014998169076885258122962964313023631939687106307309200940814349310101316133452332691217629246855487055257417004054414928952624593685955541160505579401337382553448736924082345354148846508890906886199590703702537048721140474938434032164571293651375723800563381247463580818447343407586948604080136587279124387928619149963444076156149114461413886938760984595580536614906284718625682143076576643314343374159481434063197591765489987407303744501661765939294877359050927332424564455682236143730061224697502728341984964764131166953935471199149792272897135725525247794177040581921035282357576424222808051789623239634194778939239207308205026788558215472140676987339423432086884788681569987429259806200330137284612854467526028278841375440275404090399315798247275961914351236987587530352424874044950052890386060415939002957448855060029686156545330132804819769555048192070087321973021929370837659701677261666231684057066473192921161231536891445349781431475645282461426657177845439318331788603791215658319806323089711251943985896646631611255263866379002716155128616757843949304864486431108969601879880543471065455725334483797568401340357532335769431026418879852000739018980390677016705691622972676989132353064341718548517863407763304815501845888482488444976624795752707724310099721595192227801908683975859606458465673637507206959288967965814091833757751487692283559829975168947380759554816599963108877206401981417000861177646212763956604238105253041526445057426877251567991461356258733506117955596407045866293848410605062853786629943713151737069609559276758414049369102004875209852429759029671759201434247521503413901887682908795794769632843282068426248939031021246240375078646709706900466659160403172728736866615500772752286499556656681553032527435871948601745670323958062087270482875842912316585495682311961226704961086938546395859476625503200262282070463926055977787687574556551667736868894979972810689108924506397920871911944766925576277755556390369207885004809585546148617916955768185823796849286796468805640463481185879783772550916608653153161732508226824551606744270809518354450758476304822250624706909721449955270961361648600796089931780288247491464006738476530386509649033847395322668715424479463345770088363681105400943500653873065518281872727001895667818737338535939173548266704718681102903838599500996258604703491483580847887768880061669049326160047260486778173224826111731853878513569290772060166861070077807969391793261681850127569181165427696948349183957353455327167794315825116756409748255199238564210210206485364743083375769456579264896140229999823488576963759295124633056572729241102298769566870262896107700210336213488022815312456639870022520619563364004059700175895731981699871711903173214612383121211655515685571215175255100618917371343178427449225563639921451675825996343843714463108160025033219965760079163413435606082237843324491418696945406352591835787520362171799216887373700824258066486121846451376118449968478850775978071651520326621310679436522891683830931018817270477644969599882286018521655095575976003363630561412972004788915369262678452413065801900134422871489887849558334499975682329363898488275733341177342302206883452990031542005367773210425678218644969166964206876806019302483069962727298705379259819125750723757069410103209738216181812462843013585869382616269817316181824054303803179637669871397708883058461554820288467252879109344425516302139408911087940647158485651939750262678643397704785125542926070351247965913726556913416680394733326201418248053342498291940047514265773736834362653375196436186464588759187652130988914417711920823496351086498258418297956349433597886754896563942889535336160033148840538651657436307086882991379208418987401073190536549804960837699887182595457112487513483060058822793024673985849442062032333401372405949988948729554155372103910911292856199095234771028089451189443023213811769292497935850424972775322119838121223798545125697200807944558163493110343089193491559301690595326771577272950250066519928318900619554147680182765625799519567087743447313803527674699723673538116972661688673441444643547217815342726656683950927358025019593996997764175033315297397678213497214635062478189910974087553353463354786565489426655585561776013841700529627583576373358005493231827366131661689078532727861498923541807362209670322565209782626449073163407105587433174573774229113050968189210924300863924109567083659914477489486275223978441702535414852553614318703780076186953410066555790250922113057805656448625369374621462788458542462785256605998066017193997636414559127022021261241643235457096526072301885966637189750295549876123798489321497432314249226060880094201052742682966221581114777907677008572301487397928574065957711482166109335806847992195683594915184064166371548821740912356130104990673325665519814643106648628777695588994459455096237082663501838233770041367717819245590057606044927732785598767724407855632002230640052281897105519660506552064681794911151766454478818165572643410392306317345469364059984039871569050166460179257137260426557408865801750523755976292554935322167742797174994691493144922685688827958833105904474751197257651578164814826651143105820528057215254608488195037879821496049214120165456498159886883874524147438130790004052162720608669320076023744501844803348316085802340398072022292277163118445124391076284005051771580436441690719398066830088022966468947242770206020566266671433013356827335683855915357104200925467068731019255486338063295467150456894255167064081899004657071086537787868858774302334238501100561366855232560768452636046584953776016207205086049851850972313071251901600654531117262539273336793568412916865803559418741947277450073296407474076813628015422473552839751586222141624840114015383507154421355810817076422344359079446775296085398204138239128740293153757885243026151274675386463844019296293325976328984180553067276756511731035226947575471715265061555654803432460871323888569659281605719023216563879685943947035029227270488385765552912718450307771613594860699529441637995685350967538270239932424298046008096853224409199678005229303380436431806235718376893999758718732048761436855354711275311991763534261863357345373926167977126347937671128643232673523148530070534283585688936158691728408317378395885068591704325523271942288645465562428070391718850678111925226854043057234441694668302383687987937104328423532131597312981962574142939318533004470442204839418777721198882918587547464430881868918503153396879506815386234068034822898604642849690632252146359144751103580393984453138265848436408276243479919189528898261308089640532308524722104428269198588664767450621476571173977535903558647955683220407145156667694207563740326342899199045556657920653421018808941399066018244428542169349183835216312263674170112319181714936337072863681102212238835463382988060086311476450074631913735254755630377293967122310434816013017322115445539887031976713478852216936692903932628590717865196812308370194177560246981652989526639021727310888991620678267726069226318968709685599124198433958333056784483228752897631506618530482292075101222252326037186181054797477780686576233501494363457771827727623505910272697361116990845134530879206114948678856577160050982855006760434644692162438976312447412862526689793131814600438678238446621193869756950884411271470045114799729068718609602351722505675890745013051894431042884142921327749063970028205646599598494275353793431357858946151357592598364646954535679119124200099827695386773016592339405389865394984214930762818224601008928364016608016885410094967675999348427162331944958006317498129881718138270415405506753637510285817377231695105695154860269587961647240746466867324079634343726226238844361276061576697542421720802150352608359652117425003872126179470715938376818657190180516155806424429854960742756667552185253825049326951955379638498384053419498591769621373151788116748935530374102857493401664178093504798562552185339919218043000355396283527480319561133716517124701397183354360702412854757551103143459515683235536671321412566737149413550659707009153692267503565825342472266078929406064351112375169572808118792136504111898753079724929550329707419548546650785494374628937565375908027748380779072271486198367019462604848000514754432896203226966507943491373069723805456519325085233629612730871015074506119206290438835410144259788592548969358117661850263426941701306734654140768027985294810023296388429949518705390446054541799510721762321391451825170022568802012663827741622405499806879744779306726505562525988516654959256166212124098119616785031968684561694958637579852525986189913879542882976725871216724463906280287671626525044542556096242929638805253115779280255289543312059941792366218403088858032934173047007411652547083525052814478045541785561452078618106307050981448707253883514769659292517452903294327808336921016038148796012601787588940190426403769888930878897786161489486573060461245901527799403978139048050257076131307320552314738252521368023081904899459933488551479814420306775786848981716548451047784188045683777524663968244942304150361363644077006241125783119984590802538311146244325723693779998779839476489989532921653017429073585092699539770073584377602090547911085469812461861114358343706088030257310837425845456114512362946457612183296842647507577697216972914227017721347103307629432743700874406992411594271209301031456108165503198554263235597242749145228165190534931620931850723504678083733012028993997412858769802430552294154530997443702712046018728507020825537013634986682762930359383089590084727352461957838510560718014097297975003614655400892878730442937845731885457251452393335915939211152610903604470782031127978752271635702244388225841184327745332203141054788794655554352817202552926340226749765148343840124726009951258777401249483838044850478818613718802217835244351784006745582008870236444004434768517229488459640807162773810960677158905108682190553931424403599374826034006633338947954865204927596853502899830097044314883466955799952615073541271403597509810895125724264714099259726955690657594711668351831890603459872278012843908471235140521604398393011119108265526902251810375287085693545666818137900497242161540067813210540563937376098256378968566977741923610386788458698588049596036100128403300897920074198379402956538578286392474125461843415524396698520074699658604657099157981372669664918381076567504196544532691760211068939294393960679031595286470780666994337423777395975081176693303140464302443243413079062221183282307110400179180913962394123693613558939481985628167613882598647469721244204263365086099128041915388820387670247927576533102198232375249320422421001980154406573412642613948446737997141186459291646134737076063763696344201530690475760191750463187947341846712142724957645045214065355900568560387801078861479308288617678835218540436569289760244770849673535355705221453647175138944246286929244673979074532954451862930766508067672032405131551516308465870600869162097484595429741509558542159486190943208846194940467180440544830023810118434239340291404825174636322587396773850469030544847407292952290743663167135924572549584765527782616283493570230006849189697446211863931709093167469495451885725604855410395023209894505075036364470097194943203885183370451969980683046210184404340335194565335112657231413103688863389245372195324755887061767979861844683858563817437121879953676426177865719867560841958980352367037534648070368071694055643735847938588199047546727894753243514584450333225417111483189533072450170792325854925156753738700390499249765039144378848445575980989927665439085796608400231797878937593424376427152019464674567173910975998420311616651411699032630597311146666837897269933551871469569004270179327064261324660560421038019287022213971496512457917605512905474763649819371337367654967333589011513770770016233626141177356839913379935439953577269345009816508328379768257546446718344032387319723058297563093399337765063141834543776304505571714775726078442808358582132331116072811015395371813417630672074033378903668673377984505584826969807920265829352859375116496941598111100253892333676704850831118437405136097785120340975211873115176413242862986413227864434918649171935329565571479839399590750316415362646928483431627276606814518759655311347761988460925131047030481446515194928211802832042797202725671412289332507418325559673665394953806094455644803560983548035568508896477664826292724585102259022970393268789190987609926865561803356629254153123280074293804519599711433183755590864404495219164585701016987631137485055113440706396200837754580122476618885795964669461422193451521007821423797402475662900309153758405255252916916031227281925001820997837054985404661023939011388542628730025939450679260762836326948989802378582717810065519653996401422794253973135619298692173585398069410439319188203904469894155050436008200626656044255197374621871604428018437060666033668156317625639185551205389591852770086094839022624050491815000689744664977255595809128267993326532614914241852450196643789906210680215378240215319018291170923252599249734135017167440876643320550767212342201453556048770364298719317523753149341893207397704394209684226671783909951002010212296456550389707528682473727424055699597360570065259504753223917941418471828341480485670285436502032754718667194519652383490062637775246807955541983375533100079524547240887936658791584625349098369249724530857563424517817498975056482637332029100974016015547006681785877740877306033659989002848697713637791076075668708977232807362520546584051958145805165765405655209982331740644500061092719112712078528273215274600563613982927788558252900997843898391688728294597097449176789093067483085521709269043183254718507841177658254729502942655220945926078770873051501416740012026926195294729491905242207320496518845605580562086880306416336183258520756053249634483352792465077949257507789252639145664004662484844520160487767416625742632271870399996760543906079895144331926100573903872874493040538261263547503456555888841638805684847980626540947903837858168911815008941754828093000835975015080116087874266392996142308636172892164724911023735324996959853372179190315996480444042502088122076476763611524720775425120356275064343322915613735637109494249061085248072514553753313544209127034999515053293139217176552095986078452415797415781191532868154014289016053705960821350506739687831102244279069872300796303496099306967479556577471888118003509751750704689825923219245392721363133214642961937669041592422957620780631095151866769474579597527040454750633384460470228188938911862142423147557349899259453473480197030365859398246699861776753502420849732789746714074198672102097055512763310330713502190706276182738335149769820103732754989538822830273449026182142347299327116144816272187974462952765792012072105777268832448666287147760286815008642011220995227181608913552452695915077596626414461861491922448941354047351165512734058841228495940776082123890377740159897658310543459672969918038419681261428439398260139456923411117163971438021084867427871533116487824688657988805743784943138511704595491945034338948059664187887427014214822447849657458669490637792283197981232935481209094021795952508826557362497014687908441313162504290089881040706469473466425964455999972878210567664370780645598576514566725525404076511879465771199623202877036232468462581076659677422638073255471942788829977945724973934432838730226571551882065011837092129538387035710843447494689989458655778676611702436878523826762878522748748341051838184308409442596776069031892052495236906608179718055955472564112308145972430832948841995899736673104812865993048588246393050064828355422122151369540420038260482631357403922920990433062028043096500760360787802764961818801023916921989872588641685795955454543032135904498080945904736592969929582114554958218261050827682040688249248566951167246458044358264237545717251861163348850953278976157377808957833794059915107869723761489081746674872479748777232448957828592189569600301829064764312850162152552712372766222795698352861151410854764073984978532071113528429311660374214826057977309804867216485084591026569489990750828540790016954314556565686792936929410551977626035648687241736028945535305611453066877450759484804966253946654100034806571357684014982340721101783623593265564907355227989455159024630354855645993656905778470980805087929373317721908334164478715048098788631590061995792559440992907956891819987349245424615802401031413806404029809601568962309095366563021181334530313212470446735123794679640168847655147531904844886529297915949752159005773238347014199677869437841352207435588833216504031430845571566456076918749975506727734643067004951801505564572738342378148418902133560595039271615620593320205270336268754607597105448548792430099339573527244988365974872441432703378849285666137271443834191950156586007770551579085928415066939316277306121856653190209404457552030475641471609032577521572919705957851265066162346730166490176023369983767212464242002975194628333024484573222550750952843364060696363865716105220999639425689981272677228543291711350372900715709854270002974845784406306699367135123442650752490966140097193507588074896204397836585568056948827216313081073056039775457820951048506809273847595341918133451063211897621923215116297582856886520391124495009080510238015306593000073423169545256113505638046031252468137610501554960083584080635160378151557259249841833616459535859839555493877502766260904539723088807326334055052437072555695769430260001581263851344302911450019320730430924207343028837686127793728633298997132649172954273221274584782089321501364467012669317592509401412389044878611202145461857177591976287373936403457160052081847547950991676336348799382516192719612485947190472072467486481628959649734599559713358182895500299090919141390925958342581389722032429268666036547622410922932065275022590736245346454717362305805712780461721414026695777452743860972634532096886215623032684303728108767038707903149767930368437757507354627926693787081063514050957524056314193231647946703264283578523759534169743336856438658843270440533974079257891795567889568888603914647265186417060294773791877226371241509447642936860767986843144941437609459829900643644485782426993671517189339884233887549260134960414471465622192504363703421229744540138947077978916005159789508361628155089880994036404562877649663036281742182827835929920376291151682453059571400864993510830079612675108755554952794178452558874815961628741432240190969565692153982382277565467240219241932902962122173207579439096745501767880003356057007757695747370500426358134139036362335852229930730726619536606768489807266952091194981163604338063924542821579058716357731220881140817243881168273204281485471841854073693728125538536018571832653455869276301386790555742437057277700398840398758231445411826988494797925451469587488855065045694831403842667115074469449186211435470637519702965464786175842389917058540000217750362000003822463491393087991966463509165705380818286744907557480909710148390366113476428980984468921094548615340076925557640065554405125264933713590636823216527323870344774025301829969741748934422815613397867983190585185648823007736146016606725356817328173153752291961163635615490836801646417670945431761573399985847310452046322108091024300278709580713740883591067283363588185830990546079776839805746388893677398231243208188562974465071248867388918623047021700060541246531304036395471895167306931972675439308318627072380251530601490234532244106317278925985039926600372201134603944941200224576499148653318182002214860790685996683023611827474555112319429591438484936097390659953985254063020304168841384441015783168559601284068231763900174913437427230828337466336651119642654273965578625621545105601761372662890741198447405160194382479778679423109805207360581484011533236499323608214236857393651046039634001286702148722582023665015055394479592641046613973238691055025966471852816783941080220593685264945906600731188142319181404537591957851566455297943083766132031284674461789774070866434212406163002713468050370628742755117120192812447487951256646618894777589675817344969062290780166213520825174033440050440773279646107484675315070957649224050407199513714798599293840181514704678465832318502132861268994210778547576489728447164443388659449905276141514018632606719235081119803152438786482848075112185131585822946459395550476189645967977180824014926296054083278575150301537682203019301258720464343656937456890265023599029452806396030224054754749067213119473000893098439524655053992423099134524569273434020329701933131659089766484771765956256030053747330847013041571290668393628513217276674232576879338832484619364447302746198205892996695909183815491825497459691906022642350498171925013105124683863104160692356101224905751778278801318255643719303405080107810500530083748794987945507461108408685076077654779236818866338925828975137720760805385189472389143649051355676555765573553249177347772904804418315783593518179390942238495826810893208771248420662326204440989172492264504858489870000889251040160652292515105671933231365197069430030746165890419617948204739755058830248246410735733421936917245230852847892057132051716148954344561752842056258349271209838036685072419587863701420093657218751879106139371781986880015864236781610375751299736446088314562088340145936890914005491966461905763968077701619662675991178286648149307210419541762274249846871850820689738519283046915969679908690003130094329424791844899431458218793556683665545734999421410009721090495541979028105818502660122974994618918578251394723504262353244276591565042782389995420540912505384176637654969567094942485580311760037554765077386900940860884511550041267769673173833053679526381741136625923009741899047183444987764487523786524244365468382169392990071511082617091666650890803392864391825439868907731514543575659544131032575432970569226044468208542072740831379249777702078887150828748698834817354946022786789656147550717167022251720765822574601043947978792294796461903693276358090487025057044594871076639312929081574602903066587957193658930992783783144848896432302233431101493992668764969556515644317151258162431009061862925697048687063752151316011351593131998038571266656142153780698547377369676058316710618750691836165083597142254112911649856458320498690780369685255220129215692877032920205333772227423868536060836053259769390410456572613467363460579302726046541265534465317744861790736785678088884044787081147421779899654027138924630928070237547236449555687056323941760183639276398130973525382895341145056821573082340704602959711095431000190957516003992020765563007064935519064241987059820509893667623023152142000607055353873034063264387582304609681295017082715606808830016623308411334167469927311507257808807513152570532087705713052192773851755657750520577148868781528995085196870047583173774922387020303490878638098608026512724586280576427554166229340492894620873286620524767729902852559031473986890649618297437389694466402197290491923107668645585874681621567918492840687011484629283346873440971806708601504557570456444002745233173040911659116126241650052196828225495429817410653134433809724342238541201254843130728393679885047729861040502984712378545988810624358573003546639776585807100155774970157633645306004765262597240476907057815522880840617167372538011427479603756748082245192531678081467398184598314460821678481330318039886709985160380431432996875288063411720171205271395104069113592439835415725820205925092642923525464399392145397254884389130402777211615051245201825360651118051254423233881417399191429440888945566690051888247316434155583522324609000205223947089818155044865736971784265878538442758313070446568603073972743764616208330300377044369188597544228108207947161359419626323058257407513937982183946785660161882383817992480311768256280550653822643148748338179025052828423746329613193644192247147587736009501368515258930401729194135329373186644598007706977916726165125615663728678167484352905637294245471156074976701571572844049552295495311205030519452826172465539981134040031185132222004876906151855662107143272697058171007183458132995990907815710143333667262222126301733031617590199063183361324187794877968036495814366978608413778270283026979511460682016001420236507798647525562550702551199746613392079620491098146731980111106491297012787191432215799132758431054839210357863964651188186924811305533275120992400362341323905288980995138781020717143801575130383363389494262074732416694281158472409362728457461124483232850091891875409876655782486031860942427530166153113266278327329536701585242651341662914764771763855551130277689876564054870906950423480160653482208040708900304829790158799429053952088208541648875036226373478366455160715432238290792723612940537596477100150806417475608590678864339981123095275160047546484801052023188737580666550063377907161731017726049812908747815481282963847979611798949170901557529418944747290300176411260066377126286335762850963093950429483282079491550523495945552476906428351066443142796792063400922126206749342917779668494870322707165407469958877799359994873626902155871200318874256785771149476741882296265543370169141325742977971326173046654200799932961593322217696720412118055033645102956948659628772634155314980899109961686644931119486925849292744863175524708392992835147974340773692064042631865742061748656387066681148578968111988264320771672179415933631260869851478043796282091371159236119243145917038037178457185210040003805369150615178776262864631262719483209258282688046230083193543153428386932139418110549992791520317085340379710686210008652266242986682870754293430937697873288341322620365081855330794326215621987332402905260695061170768593589529764037807607745866531250354166587565234853556553475110309019481701979586170652703154104015201567378572519256452316414463921078133848315346577967161595217542656192628823023464391907212454157612789784483729507029959515181348093994820297685500051909887296172877657150421562572515053694280655827473246331745177825208385894749198511676586300409800222026291872964132025012711703611258873864009359083328178275648409151428993511826421927973152106672472270279352494079994548349135355285062413601085608631459553632508239033286743102416202943581348718015099766666589955314568711066173150049801435725233958908199041584329074680455862410975762770124293398501553339999768310986944909310961295054832371018273360056284170726806856267221835481203517912860966672249254640530436488895557940906028356790418164248487603742239526282391590749554699917941986462537404411670089654928047588881308567619935074191244531286817067827412664936613985669729682817748188937841260035438769311010421077393385082640009312147497713480032990497312449554215895742329438905420455778680800875025288643700443965496907811790306589650567284555910452824033874286306176578460123543614379378811401889485598260753147898165051407991290513114393100160929341418904204573537364880487726053524643019751453952725668571336656429549298466351818769645365465474276945550080278062172943596727916635747974797503519667780601600268057793848690297436244164150037497072249972322482161294267466402755651645230106001464334610225455366731627951169966218941797034987344834144932920825789558014746962929557291010783623714552116705996327198267810414687606151530008657892486690893037537221492915231621797886146746919699993541958813277638387038283895686498705534768760508435494238784081869568130192226244066660748007653586765884116182598708783665259309220452678837075241585610026798368879052295491219706262727160546547716429963562982119500161817448659387673430491885445760985438464121925001057725483285115471879711871976655120476201522700543323584610188127741604712206584015023249502163904261766149161861746723352117026092058011231311457242537606701316330622127479235471061946140027632665336247660156493559377790594644104600656048837106678194246588606461005122504667936773855592414633666522759768231253276980900906567729867034517998215129071346234431745988679564896262872879214914377655230580915697308538122372891718853258861931558366236477546200601692707084893703774844528228352743762965838596053829684818255944023768793297157701949042162835553525201080189017423824882097286250481027803708679164240271298758090996720155327633583810663585670711510130857236137875778999181842578450006071507998950279014332385078886574380735146091328911239366680619390612054069209334922587203896505494421772751378788007150220611880977547971990092102683140896896551727044151277248438006247167460527629021623228265892637485709311666512671719528244830208577750926246268274128553809425063472624447621701742700339466462384291141554753060582071663947879271203519216133126190748491645369321541405557192098369117609736831005703839438911529426180640493475537462085409622310700293693850911483861836172497054302095649650646187689830307511083987588222335809694332292470176359089719487023646599974284458432911699725046758685492128578197934819480448359074384450827517607695014785357574274466634284043008249617129271940978667602961606439281300830068536399614095271039705693539862267769764028298607280811723558497275906854412542493623168910140906868931473169554069243912156311674102611270381820213408462698889425585264070504877220644029207209384596142229021674420813521579459374665142765019169767970633136925678956051839211485018510316352836245850997448522545530214823500436050015844905090744471059393018874807014858891673867746001521185277519795627173802850845905164340208642514103048806430950294507553537158689350207670680837189729012453752755361650985381429768620704772579815511129337898625741617491233282491062834800851374334386233831568473186704794032447076724017300155044960446852690077291222925677556668797917069233948600711251694861928826085659191175661459781653801197003606522373331020627291522801263406261038371438608299242366726688035953697551452317142368082671986588685943994869670757913839762872725350444753938976634204401622955723406126615515834554114755040125604888508555247762887189254879342120275397115236589692618783024576352963217487274335829133717146266408296699344803734679983942536739901019761340274370831807939522688297866957638425652800113733925760796092051076205051291553314498077200963243187811816017764673147989611237345572030451810194721073552683765616689695212315623771073104070327408790381231705716305674377552110675847914743679732607196251291722788389588331176167973408816568285266933355019771383110653129992542778000643450610149079961002281345896678627401854951061903700701789972222218605730992516198342358163675168890547141874972526319445374723581140096001125046389057587254585315615045710733002997464626192326736966793785657397125069930614387278755480233783482330067704531586870742799959909251256612328188843642060516849507092049867470434610032731262395057918133846511141579418621164929730038581232389914953227630555218602202465532401669045814915426430560308083262753521349366969653056734160919347381124397884084204273114600518559973679785566521442971261009997302741847753548243837270249580178430452517397334514842580139314561897841685376330489227398320823059432923708139666192357738132309076378389489492380913245742958401713059880657721952853759409101755030485232052378196452923303226791441521880548624911830917309921183353296810089796516939528054279285228210078271674341752761611587036265915995223520324996106203960433442037986306056301324959380909153523419502136115736674748994334180061402277252378109469962632036707063822662260288528350951830867480163851206269115296533269327624771903996284307111781048827360841518287571395939275661903985076044460148701004593739345211975764575801458253675568825569954256881692542329665977476875919724960535881502072916252444236962641339135537608173554562076954807465776156712252768376534971307434249402830145107100838057004806289491747570641733571202023548703391861766152641581389823563747661907259556777927802206475664503336659287885971598204199638230707243533383485749673633008587395483507676484002150835769375350707281332244528778505074571172836644998519897012864793631909076653058076081499778415364456083145163252872627764052748641171329324178872110770642594211855602842686526205006525383701217956967312016578512160014443133020334709600101151933304105961603241568266276568303688499304662994982413814290358373079789086554627800996143717643295892011174130569957039785851761103836514944350876034672692631521664959032264681485065643145957992085828451345673140016088130113727764809076344625324961393071300211492753308889749459550086676696220162577229198555118438948243759701293346021179728278941197579804946505614941047193636773046250101256663956321990326040253442814728218315743051569346023253795168753985594076210598075424116126176658460367065222002829577971801517708581298207820521834945766153814866157237678933520027576189774082971750364665657551483732257233185834976973895878271496906095169459948173037885766995243952722305689464518034179952232749622456691706969813865374789744637410105707232512756141281220064390420356543697237679305108195125944519289846448293902882509287596096731825253550959967214869582611212029479102015785532525177223547024315462651663302428425546572548705512214797112546538031309757643257224992720015154072245650450604519166051597784206863919546483141024803219928746688744403293703118330230100960362380740962476398824789509394776449128454674714500330762340373282355570758780492203242944482650780625694828687631627420537569909527697442740574216995597623826906157666042467884876383613266051418587272863240849867693165374250274439422943192855348456642174948819185497265594691156492518447964182731335214812107748245321856059631985644575191548766104292490297436707494343507555565430392645402780931354736231489406295351492274420250542673095275180564475703970658020720127079860124738467687349991651423699328111800194429664333537074350608263045929403250076346222398590757672854605547059730992238107582077842990607018456273961664412667553912385909034593553931880822661097023473766797537343816478973001895821958104076279656345205752693032186302503915819247682062279525856777153861410402408278230347648673530187333574167854851684405318854023589150275320117837663407746902277861404001901906245816221244815986561814681094387282109623809539683161128289097902686122429872770185997825759504317581657441993654692697726135933548668924518779037286954131338101491905355873325004109760940403198677043770245687789062987543299894951274671995538929483595683907124965181967056613158536574992661735893519542286669593590794901161993651894965246225594900785575999268439067155468997554604851093404393205709324879305549790224580511779200146605273699615880725602227036018148326044094643537229949199063549048723350862578094706018914973352187456667706092719510157777975797552407928896614039925030101249448570107594039380127737253595809351746904576735863989310109202209099319683387674640231492191031722148390113176363891120326184787883054599867798718071323055106337473567085355656031748317137451464933644859922860189526647119338840581498947294224901169992256368260673611016690030000033930039022282415425141984588856853049532577926454366172728098778093125601519444448481195696157493346401517728764958553049463542620925558148699015952865520601105423531142325264860217741970400279468835825011758349072328398172317919356210242931729224905194491244629537822831108035192336045116297652008005946934520203425308420797081264323618940418528485191903914291298309904652050952898011368452755581963565401197640301895454891121157225703903595812817230749647564788624587406794953372623780736044451591935405754081082535390887150180389889157833355414481970101520944844538359610871133965842955806720963103302420452840028336086313318313888251605562218435801281038856448631078629632321620043604090767438662454367025233485164502714310782737708154122848482523506795411947390210776218340687732873312599167839463488217573880997906132980166150111052756108500201320652260505460781618093320541540875775737088498373072824214450513699829720267489203651851188437939611731624333470603583647815289152121637385028099569671765053699776891024486980564652893866986943520590485557100480767448165277175486196332831302067104804663808483063942237980474262493359173192662707563103456375629695005462247051288787652066621869989342890418085131674037071133095346018444763230806021720834809568767533430905677005383230802778500852165013467811998118873935219739920127985169707703616390856547317725587878036667122642003250642715310647778783373750485295948786471117992669154419017215810722155076962351617820617145722430991932336100014607392636331253547001366803885481213351982079863751867633060948694898576463693020683884736181447661009629261388772059140789168803689552076461483709420719162927367134338138579892161067455205563988395135361726435355942457743923951966476672618500500251535560556712487352790399586872055772442152361072983366434610192786548123718193114849943388577193119270299780587993232001732570706516734995831452842243781574491773207104086835113818012815103246373178263461203493721409446323243223419069251509105528435485768298545170261554694810317118910574347983876036376524289114389706279723675569804215319606193262204203553073275348874007865725842658790531413481238384614188424930323122544016045756804136176296947308748041697836376776151120861804403102857100104786060397847588336612282080866688026497988936761537213478469146512344138032056950368472722899144003372485265123225912237776377605870775764803797459696622843900768265197364211068829510709402926842002016942800026352449514655840486639576888625352023178048152313479095845184437969818743666729851860120112517485322826203933277208948609091904362456603068498764975957762754307529443136712719091475511350861868123929010985833815323098770346148108943816917200151211237599590822967759866616884404226461804649381751500431590056064308788586405523888200111685132141569498660318443900407414523477406701948584425982231601023131343936592025010961918099877994542974829179290069698926636504101131467150679573280345095069562866836639064468818282438307210218601102953898908741725759063239067209434467940465049172679986293007813343189453635022416045614999371455060543523786189059369207600752423227007517351694996492522190441656885955649155938440623144251316563053164361364385702274824775067551790114542800994854416911347184000450225794607633942062092943400608749495660312963539774382030899904863695356235938892730924417090515410664706081735559122309545304362628226189206653234418777851095012827763437294398223055769882905135493848845417675495217283167545672676853293267546143058611257526082315930539702575683365756638042401157475805193801327324054616077891995918390011105484974453470033882731958167919011014194449595453194392764800628275860389437324122835418977107222096110920448724262929354871180345430786332365091318419978761067919091545221866770971546364559343252515796475171386031266299198078982422247550461865650178020197678370506205722231458845035560973323098272074552886531058120806991685658029650276248458789005433269227627341082897176905798771447522499397812338111572601827196461105152201613138047369719105545493402580655554671405771635692322380964041054929836775984448494935557587888732337274900145167986982782169500253384593814869333986146210606773533902850634668203913916980104013014353788191803167591953792054902479494486361232991034962164427017905634595420277047898766388662486185519885940162766832655823471915380132476917520541842159971881081344011608908758558148600849766445108684334484239733048025575188639876429550517137550609763401429115805663867771764843852173434890655485458273758236697086099258341475971567122949691732664116266856125606521954953743992578460320552706354789994185643728054804803341079284474787083524936972889015743720184263137486212075320140617251260861767821535911956226657801526485083050965595831635585142822236249468743825880530223191914517872539907740980152212471050972051653079294232565660227792763944736082886276193741114463381103248772748505137193694386172364595441289685568962548744641256621342011305449087454847509353096092121168084615621694725790131590685391621183089108960811069975495648591227753430251669028201280287886888449531459981692077643131430874950277115793283540555464339611915329818261418068801612769607405860513412380321844128108630694998680028989430858945650779982028031732163497935312190052366525540239350394822294564284470593558249813844717917789670409989420183687813831112351975697016932088545474489687750353665216351200447371384565039771673675916814243164425284755049484015061367663998413214889372070483068970678412128492728641991348659376433927192388185354988015838908575265041895409973429956015240605731557438362355132601499708461806442801157036515294051058122368311957731960929894327408099888009704567398101554673528161182725160330985245317135102544068749976276852376681194740523767080650009147814068154240724458877604659861052409884813211196982228603593198546437265740033598686133258791435743823163596877025427715340852883714717464038178229151876686508146531467201375052114723169829688854829031110432583875709940223401978459662412100528787652102578607898987046150364666430787738830831212980108283294003011494699216034422358133665175031653085357079793437289211607929402487639901775195272218112650266999237087394773375022801265419667992559596660734013387904257542003901824343215076174997884615670943850356251422918286895337669418471100727297505033034140663459772317199600149141039504965237072341923373446137733039451416350936402451891446233800776828263389483120440449269992164700884249524019943425968582204328336182610269472699346069287561962725134046645711306562091935434197646841698411965664829540137560382983477070632622204043616474404803710789177964450815374150603049212912014569528040998451345383022615431798452790314058918598869030777373941122301762301137371284129538564613883186134067134198273465932705037118567653002305023279639548912469968825835890347776281589312295027225145929438753184852547385062233495220020915986658954588622333235313368972787040540273629465604960902618793969772502950256133508807382213434783432641596667401294716388542816503353214078291132769912913702367504391268433357095173797094063741089292433015815380341689429863156592249172987126695931677867377647524841205506001535649755113984144395426555468325275229226484393687908651139690201314927896156620275111051692827315643035519396062690168737223696822416006283312775007392831964428235491767950341605366465725085934910766155268634475863714530968318406929691772063343061963716728205309894768037115746399428421886519092713177632376735728769601431911212069766350157646327029923992183983507038730891171163464111789507120778470814556432952001759454136746323550472477507751539129868024233817710564425548210896102005930259046179425508403392344103431992429794352894433249979055457787095655857565350191814607647732063005265932550615153014044653578063177031050669785722512647293318255817750858987422894685415534808987422523083558462226627613313792882715713225482062068351128129437863667755764602455068384683932970314133682383894297008673637539646925324066488689230978402401414318345932734867453339859505388090915916674977330737731849421759074462934370240001998288772642703129228843267661810265714650963214533489072951179921414440579587186976132521014044354035542256653639413743441962046978111869923524940259603982790678310879985495978845275903674102338986576506332928952872988045941011489538339938932753129135976489620828942754341872226464538431846597422788812558998170222122711459528095501412067837728933750117859491092174882058207991856743285304808484978727289342827739551061646229696311525612894081610669080798885533117041085051740898948711841643095859392915630164618377299306967035115354772803566231978168924646573419500318057735262809786398580752005104171854886755836357784258505582487845562221100100980714670727439014945952829257888315154855405335445128272013073732840338397025605609076085259972947381426161359453236637803928614338423556106782276659930468677186609020588907658730343525309664103978713646706412898055071305623666931673659238410573910913045030294845173992348837277861684812365443068237037811030195589356526095180496925901413009611121185145097876139784579130162234801919697392414031020671080594745016754702220633998195783567624520635456021612773690288348854691903134425834132867735826446526709499370596142342557108017213622983293666870026227752381578106290008587355904662833299865365897347883625656617047878939512370318096573392976369992208571959471412022788972952004835599410101783896679791795315777967036043277014623992610830332742617787052713702737609080267372466541185471380662235617059456407787503400272186542854214083924533213894620325185445876278925473729491862300148864656770819544887419306207643240844182899293264549448328758522724868667916562398311363808232594192582213860487486714160555763127746069290378375321180313955338056679458656906609014275783056196566825571903027155746172485818839642604846800146506210428752048378020817374297560447643531409832868704780913246313180926693628409813908468887769748677301244418487757126395713136633748158009959315668873462050251947244581401829078317746672659349419184408647719144473622866501728221947305157800458969221233661695446494991633871769206070149917730978256660745531300078937603415253197677518233924809954438917140104894619642711252071592438611916405000053105299322103847010301504393366311424522996825945138305917426581259495095253519757445889534943777395122236829536880517727247481837505854161487385150835749621052587602856103350324189811961013055057801344018835106581967366709906907112066670400709148550843901660631570178450307159046609466050242505489331006997958100892735219995723321189732917028182218223274675352375795025177416823821480155551841719068528002904754088182478766824007647186633200791470525930859464701999662282559299445553108076245050785152559013844550325912270246425974358683141289898081511754485642939065199008374804195819209926545846099455284902605884142783116118528933586260254550175303170814164903547245199966129255808016532112031155864420091392094791076682643713946566585496126162607165697669651599259846394366506078192557814161588418665108174764684245611525756969459854783166306778450685028387560763137786152999384316130419629957944456554635470005352068260888717833715846868453188230891873113417345113861029262064993445929809622835913084319895671603023573268154647230748464180408040105485405463551180370969633664625970547281403439404415146264220449547155905832735977728214772162511725376564554330574952544560469586856696620910109899616116906065945052565535053123571613782637696588220941393222330589296456940227711051260000440343906324649258281815843101411496991687070187302891568291984769816970436158947353957578797983248358671061662758846089622480264339656985035459762130364138934747438433741133756823015722368513473553896948935816297373381427127404584832131678740054827730946387099927809730646787367064937341960660212294571099904839739567729650087281749416490647427291090043067407766792362484749971350145368888299545951605508819230194768454331681373658509705361245272238163889169430621830069001402243352147614327431469357102814362029625420544721331531344392947819182984603875759854284263728770553789688822814371497317993884828188839425508653429798405710467402132217912707105302286902577714890070879889412112735490463664749485062918563275074384031673579427498727755188937394511809103072757650925143060042652533190356228779572128610091592286224552432338781010747032938012135206613225462027445009485379914038084339869988335357176608305955872163970382398557927495685205852384173749940741011582609291628680489827468111194955770887298786970483493757017983492116106138183589739585316812627927129462241356956785367772410064780452457512876523782646232148721004337592183592814221735184985700875342178805790478874323561619896371585436251812662633383834765224800278128801444737346738375501486450334552712196168639326388105302989870729032129471576509309138373863771596157616387153411951601581874277721707788919768145699379787067786443284094903153219803244945309567643031252128809251675006036742381654876574976316837515945116971436320569563068919610467066046240214651062842808484119441806245160925256750072816880564740265768833510810806343645536121996673086698557731470601530964821265907040682354947074452058644897094332048805561213306127154817575479910155431087533700140931284156079642180952163616558711717350106387310012914357372587032511258357238226265696551056802722750960741319021997202012522419095213781887461171284871349054342177595530601002930374359092990098624920408389363901383089441283232568432843210398959527653219644331535750859554599601192313879914025986912394818378888084724297573366755825233805688504304194923924328063465688939554289317806532933245165276535403621961223493348777926205828568526550937198932437369671228745688080832124370331919545206482201814512827167221737445059672644006390631312333767635269790193221361176118235981173901757496373622252516121732796771394478129871468820804941868357279702372054899524118250290573490768385627872546842046273347480681490532002173297230007791544806188550492403793402911821417935360237201852754557553868139648289659865252382170135957972446557125065940968727806767394311655216596357696407569374892351228637784751111668710079447268958763886607392188885599584448260379855666747315620312536981260012749142237364377505009189126490516609632600984433736379352587964966748406120140342630533020490889015206080009803151224928420924953959513695464656030040874666006972682113456847307937918591367560093679259579928238009275367686563681140953300139749733037601762663801501447264921993971057081243383140221824520470081282980177793654726219263675903160663913339714677261550588519599910422398897437713638172533106870773269663086588078124541970402054167776576835441339025504772851107751070357718913476272795873863342959227421958209722481172022161713586614555276893344601595292813153055524017069967280784001868612170336600789373030180747783747158316098572244264155016710263022524788457611898272529856530782443925509226599650908158111671295922688003417168151141900565001380179659458142064503763073665030968993091838282256134873850348246816447880583420427372404471451546225645902760254880332994149044087467265292289346594197123163141129232526103359682122325027606393654060750665566775932858425831995639862004302189431142834643992218229306022988089747664214265941693906951217472133435735912162965075179153611635593824632076551457902009119258276584937416390276699039180831092300371989286032574618958194811211749666668739238344925271002186641708588054274904669582468512487001237692116163288588538156974160857990100605500242583914535813025072114084276191495637480247402783017128405723076603496881047697980004643624126970839211716559577925721843901157199057430107869564090460929295036651428168092068824907176259906740013144645962035067801162588967699261042508080252964488854918048414439797636994988475737984822848821613719764507494042792571843302783937626118285137069377008906918126050418924446501353055247553359266388779547589911795754218364749722399533538757381673758214987314735491458354893747244518328085315481610914843165004587397882404560061852555588474377628383095972621902000828232368530631024151331341430746931517295005450558728304771171115303011321722188997169804173698100906493164793677718346276486068752824137949609879001104786599773380209152597465453116050520055268259265530446057267791358647313941971642718360943441406493136658276520570203040271249258037693079712560167646161883490314698561805977127728743717976051452257613042894956275442961096204555789759530959968426539552855357789023727469540823710464926037337754646900244870992643744023283747025150039196272180293037078229650610959983413713845503840911631045458316955294152734814240434684739873702218777019175764584600919463977844032889675708748073203219993367082313202708243108288457494652057200675034042472479672050018005294546486322899910029630559104791748686906181367904031004593430660901251639950782042132878828580188405837543374536941916794430064070876237125476872976264219850399756966005667029269569419111088980626153865983993722205603982626486785294161672935600549393540904825909851899464961313722048227188032318578814510180574769164772177477987521974447351892268775806472313881103920400347239160679387283169551444364499888722427997883442348177451996435267353375641493952889097976932180880916705384000425192609496711983611350895791192240755558541583731224046550743349790929235044563480836696257405454831351531516481611582991311392786075690565591310537862559630630453345433976444586395726925407026896996178087682434014550544306439368587855767725550970762385531806921777989540055491220240808893697080330209645901821967376864179826677233071817099753205512882521867738927570399389745437108282677802134782410517498193917675322870356009312771034137891153321334793939088850929273857999338955476106248302148521718969716466684263212121119352489322356601375430224733075195735866423891007912156884518156078166235977051485241961060032114464284162332881381427115478318981082002401086216147226692575593262375821920714043408351082151481952150333631272305025017456402150674670633700296071482526246587518063877724170907919987309490862357685598632129712639051246084311856199284357498008266578261579314225131613592345105332439175836931791854583789312070905683977635495567192951504765473693099268199284255832190510355347716482850665422066077893929631847952031428622885434739479419096360369350191393696735413755449859059218377707168386054840617478988592183665602586239250500807770666637018494712718124411407078056940302747928030843285838947674773293741179949115615529695793997671909030669286087298813294451002051666067720733598738909571180872973471822810788680499613046889899020650720093946475367884857436870094328410437079323600855317972739780360384779218236745332411501199319107827811029366913339185423120264467064504473004984976122229020821175644319649156610115570864274122737329448153477153805326625350449952120461067489812967521126361086438964756358395045125217523109391931493168787004523881034087370861277352957438399878448777645883491476836633141088745782065345823890369532145469231460773900757460945516134461252476269583318671651459514839672909710937872962976376948078657061927699590975959381152525494688012452636511348811599703277241909892763992558324865616391424740597975861200278610932374814756114391930312656057042552530101883887075867994137906500411564111890037504871802424039612464027666081865459063644055324749518768446444002846099820010034083321368034821352127969476069195790640338845212666568611831925634816036977280572633894954228638404176232609014718242599737598881886953139061278094150397890506934186761808342109189806270223928839748270737699496021706799647882774324462895052592456420655451083463844774610707368751578879283141098455584139469035210024301858353365895578806748193821365742911365075553971777271290866760832703811132002260263120996288719240457976812372423956812959304089553082248809792130233249912459986540771892084320440058995707816828684896309332697925871944510592034610045677086104408534626474545224804165020932924140209678467189146065702092385475932239780070911013957678562937685075053965826126132047466068173569145228792077721123423925761079494373210223286746268668455999672358384160046556362275689956087910818602417578128000236757044177505001198186879674043511420701886141734746197260617242227961684334778533878885807885696968724389986482142325558955373471888864148972922291094846566452042195457796727565887572861974591725052054668364718233818511478859927053538248252134295141522353273139975989805643527542136744469679545150166964509343141248199077559857608388069494947153837959210164016554472437488071256104293060412143452983131233362990838376423807927806497169225587366618976723704784601150969089159171780215611361653461214510927552088598568146127295972859726482125535776318582532856109647390127303340394981244549941433809587992655752261617208269908192872111027325622812694584772920105603224742721906832184081147324386714301450783095009437582116428145600543612884508389644733455999376723119222898987511365304474262038126500183654052747390875525912661794768371984362402703824445645478432279809866165853752415752047971175865452562906596719176869712630548030029178567596461935372711865259152693814764422050091424359297427024213491233921751145931596481147573547629605534457412397695097969438634815440379206606725746965328033520129406386974410117210586898640450663195934385581127731097022883769652061016329707225428658018460730393886822505505959911093391499981228275948264481211398867172229011517599042027010586557689022855039427085936841055447664846555741109800338458614051478218993711815052337521881680341200598449154950078884603258332035364833141023638783240755375508198179033319487263602730947154508317979929309842878573267290193077295436006535223420619631662515340247595584318987734827069659496375415068476220188844121746229377604310913095404774827267351677039184649818472219021095058726284569198656383240550484261918279572369374662470298829780298892774718898702083082665128867212536130735492829590380032318552771320647156673946620040362948454303435035836020484714158973578237706913999857481020241037086910801734924001533653703864694565801994376003703268002660442050160341766901488181077172961486703080759094360918146506049130410286332638686149938581885739848742421989289646904774838550804718813640734981063057281145559314537677392160846466882473814139350767479748018638067860193795843406767629435645371327379861796927153682030862754632255076405844524361302044289349922775257801213612441709747507522035517391862786062001127250237706121938872886204996723323538042967111557679488635855836550732729466901523707313105497361469294226849907368057835780998918111746269914581825946613265322906361736857073965847108833098668801311637887629172898356515535383166609999210556094357746135259779859123858870773308486040472711507057725860256745393925410785266526022353681907872421829116977828821367728180083278336239120231595188673081036314355720553015306321961207920332325371203571054933697007155924270504687665572495836317546363608988973143064961406092275886514031796643228751925021778356936538821902103614295668173199446085768149207532483898498960002369358974218126745591490637555989735819881424441955824095757383927383453366756767035853445664528551782371854221017072371789928175898141886039423765015911631719742283380327221295451485073199933930022883967059157845441190092936183587087063826000023563610060053727171612387472446526952083624198826251387767589123507909258030711654191402145952436672631820539913161350758250625651418374560239229289085824688830895363588412077524752067224736154696901929688974910102766054460396766233580119674167631007365416691753876638840247510406386294668364514672571653577453201406526008678313882691513848570490705253990795821672017359287484557638772623140427951461037683529173381511852016939271801963218491070974428839858904349269427060333263916770262119685765760725501138198950565931341348128954571850352893729532202648448184046101778311768894381878264669146955156773847073453867971022861091070256896946204288022721595258212239404289892565639814110795944944264349973677688862047804267925947677105050415118596458339869144048666503521605704428826763292361792574268080827828781697660299081841104408528256976190106934794040571972717809359732802209811700000058715864643040788581377476659599628720507253048124456964631319455468099776059504471618067766482390932633870424702456029315860947041012792822832178985133662850411279238294051200836439793210240885293720208880884895424179306234921739936944208162567879003388688915046010271139301294785689305565149372424063804611948093385166734519596395984600831485988653073387754923724471636380119634031015005293852663895859840736739532587830060057561891509434164804581082547390823398846146740158944527966252054098647744680341352857123373204744414899345363804527500730298192533814276530749349939124632498101277777907914389093762124848387161519524265707050072636857315008256447551622800059935467561087777992140215575017433982257830136126310887172714235389391410523871618914299846620502487001564885401299296435605820918525872044443841144267321025419400145035007580600011244745599639699708788409535350989418280304565595697530780826199115205441076976503718177498084167390740782419331731340488839709751683903850416956551883126989535998955081409543159090674463235143344136868275993208875212327109813079424944523039697385066477424925598311970748875116243926022001770538730492989785073472216484746130000761076099143398973804348825261085092328463661477222859870147218127823701563618391760399841380383870802639523649339997233238826453795474535071622872070766411794184752987795087633871832632971407499927798797008560260034109031552700721096201869252648895902858403767578433348595400618411805348206543918293099220175694047878158426584305768568493658808415083007362462947672622975544516010238299699668212509250275106404132504858487569287441859768700595676297687714138637539692910108243825730652832677413393977134622215954917232396928640833643417449447337169589542697866303959367142410686070665962399210377954493943842286189856450990749678918089400551789004432122211085124148299147745266939897435916029974040608141614804757413638896288826740280571357451101429963966242328099523029796564288715312827758439702652783315106132391648489466270248481321843085514888006193186892271446501104951448344244951185546796055420466983853235426204090617798585858337591043009622796521508702313176051510463496343092462316293472032441492121068300863042859507975568186221466233281564821638396615054902057512731055248040630318358631633012372862083447089494879936426869095604900357271608423608685631336232719221902099345015811743822048716742879237484931545493998021397554493462262278116263324180781245135434576295492799293600292996474117218146104431907727949997972991960750053748703464623242164828091344498579746161324755089861222396900126999613304843040011201311580061333095885988852427404704360759973380720575613075915489525850958753698768169705237915690914809740806418883374355911369442335789098902566232699221748939613920544624525855752790857546665166482399963721664012004729659574151912224492067717178898693620508518282418029171069206655658836298523928772909132101570987237534125467455256752554293970384814435766308840462305146898542987717980399140545700475442024854092242708560687362950889875032672614568474661475574510943321430882059356202457910508875180777666443982571432403707239530555959456188752307309474765917549672759447847760432335022184046592348846120545470883870573657943643698022630496235615370501548094932794631132450546044145745515920857367124570696321052801715690814605601370137918043767504514110734512565026113156920444361300163793596014865743645410860004239158736048231431949236274991904439750262109257772824096093261021469789929991897048132716204193607779788353587450917003159964976220064487903750025361627764347851478295604204474388939091240479094996310961353612079795326562194420770300561369636798335057677716143935946339242979539909155920203965049323252256606950200889957033749870625558576265640310258730969705671760255382719376072203276111658164414622102695264562335567553344337314785095507400526241213082150301727808692346103037426171950975479355536697928737997138485789299062081487715348469472645943425685765203413914028417419407526447021999848998323729769536219954064979227989713405062733273085167081615940700771387248111307111007319787141733543680883685441160907707142119523549387446535606784352521884542412898810797391234703065483461390640110725508208687279995512701402715850933888949102804853406776494864560814813381912710938723345265677926036739688956579986757363451780761921057171793180395159869249537773579899026834368308216140942476690058943645245628017246260764142971344755546820824862362151048036260481385655747570800308369866099719716807573745971581578015725933232925926351234776129873675625163366210242280303157532156456268460080298320468950840489999454446257497995530000646684665445053431041291239862114635834700739511712740802083464756328945602418078506695829647390252127398921690681482834967571611947611383873419997550267435285111986552691154253645019866651746215977610622804414437248715667378666168736165106235990135223181548817065147113287165534761495769955261937561464189554985252169306557573976560666277988751386409460965527873168212951060486441297186831811461472740824409461075723943825163695979820462385363876175881916011504183278349224543502157686313889968901162188344346414076047417244854179342490371295024010375054779106237334796465072036991499653501247024617485868997231124671321799063224792926805917023793020064991028918370994370575535936815690430897633398894744797603244149608136940221885685232211904690088621100253554024957066940684375147176292921508467021555838981466144123850253594235968165233697706779912762275807823714027827397692491400377706751633411588405731283544434615336316905780723694468755327719887046233222347880139098897845887392691546899286508229041253792331874936575818229703614104860095677530513685937846257968635369176190977517487376719720596479550111447233561510722142016288465186962173181323377832298274658617603688217496045621341870719387167614780448522346779511359794734128659299498743169465878100512214125201132159190098782946866620736275832037284972948514104031147580805876463643507241708369972720296935861680622908552479339952147036464732177382012134852251987013747691707700030529758893042102133170704036460820716198478908416555578042051711312277913492972881032972471113876528778687093745770431963443553564910102347663174516741479933248401626176392642875173227888252602376006295047680788851344523528063311357146333255826483804110143417830261673742404426573508428011327927125359788842408748054149700410031940554536864966914737375299937390260010013379603025733170106952977124126699728666846530156544122459632898650922580817603237401415454929080718542195648750884505005919974538375465885265879864818500628608447714354792233545837788184109570170432230464781755085571762426710855169378979595964052731543785746618603863723144710889045851389056880483941180515167148344692892375177099351380235245953937243931251219440157500119852753167715262958771594818722105985117633896264595627434850441274769937220010124236517361864980118926110151430187473920271255430392268908539509422574732184329960601851936045868173761163749644169036928031759383847622541118938690120263693936469543570136384078631214518466813492840378329980583549408256449233229020586174637160752792553803939889365973713264890223123441902214023184262787239993236857066714256207442680755938355428390526332171925290943573596966659144262639599531449489052882975054698315835433268853123819137468520910102488653061758787857347324796070442079466115361046137897766190228408741444323023446158410363785140813036369585323575002506814384286652964856135630835153865630227118466802405947312780061196890545622733383744515150540387183265446847216676065968092842392016968826712046808922637412380516450179177793553654222356434824107268669363157976770922113025781943986320041673949980637429118701003449193474441361702447206759328487010075900329085063740758801617241757916846702565814054442494964210664895743579998552229386675465949625790863121955379988531592664239708289956873455220283648994707524977318804311989107725781582214873034044437026849746769846284786497883157433471302692849727177622382395964146966785610022655232680778702256048595274039137745599492622451734134414108421796050958018556962622865537018406357123546193276643085002332454734920168314642923511848416093805731823788830457104097875805414138355823514954864752677819237170388284457907052554921062276362756286833645265505411357666837857180967166311342282945183778316468758361959311904327306777673317701194850457349858272505493999916940730069472070619461453892449211177294094854247539285463513239876958688717205065686194950007027108381545888774088933477039932784239776536855753781792360460089363223049235415389174238893559422298846671524411117746484720909316384477274481098168971138277173499871948940386646861313256150093944158478661505959404025020026623618686526364551533452600941839468284890602715134915800813617478651037656227105185714107382210414791776446999082318493840157129832263759749347327682241077251088297617992780419367158345507598487190929435815714593285382026336060316898202339419326061990940711504277945373460334243472208564005393602364802528218139716009669923121760372142525143524814580056309763826995865693444281672001140644882215047295105072697972926224987172273806890408155578741170996769750601102990634400433536956580262374016088607350561643713161820785948649540177859607368832412175942044844715251305504147528421066633618738839893757962821494536577515296898941744247725417960716220950063183654451888930954234362573124967801273112200791398953662395610894990902874713992672202911299812060654097319197162661987294891620928122718007778661253714776476260416814416746110559223034054218061377590312981117472369441228127339417229029606805491855186585421307839218221510180627342527763127322647575621782739081475149087855950055130194656224013628282735198014608478237759552930448750262269458255687639643032012832196874112685799442899251914868438210472266645045982595385421787443704939449849231428817387683685176215250081866912239834843900334586021804666815957858292720997079417361266546121907948036294063800690217155964931715304326168354809895050487749382884287728390307989054783369871113284261428621333486327851178713438492111621212001403826540713927411509172532618232133493450820116564147953133120925705454711400676399520881034194173939331916810700444589150050645485864990461642577760394433961118713168403731670869621482564256185136421587708113054759794896311306297445027663304088124611832859897618916231586746349892265685053700327680336909528733626671924981195828547502027363912788004777067441395719766421794538584624307352011846833347383701044388557235872677982669640351708290550608267831586004430980254260379694036469693649072503350551658126643216063872016160899095796601999402688742713577618826599729289637269742269483257853581620645213445291902839962126269412097069809332302652322615938134683783539200976024465656584386215820288716050928308777572786982462839491122115348673800222109606120492411194654815135833586503469757450632519182408273062221751928664331887412830424545555023146911668561559484887360679091677985033119216420490973188499237486650076251862910620205382007266298023328645239258962953557095579159446081406110455169559874592389649318194082138766962261561106085114968682692205730539706768714033295650536561289673652445698354506841863600296310703275620697786362814883532567380194344333430614935894885393493032074624684048441645337177800661951359466701748387408453315002550584302029473134708820034867504925872454710109167899809212393582076742945352033607614337103118956685178605688278900702608990602897468283355352721876666420101919984673252495168720807553018656833858287342894061750204465946367922330754555372963106045056787866168261808701777815573726650340989066716594061024281338677691197923282501927109634793781799092567737302991289195125322164226811231824568283184683852068809715977591224356715302557819161332801232107186539828415281010785977477537860945853227365950762830496814096372668954147793274740377454840523567163499948765460988520351413511414465778813783122217097648075328257858647261285557399161203295028527409252726759630535767862337357250987641923927535608254097224811347546241382779626281230448230233714001081503300912063293182170030779239090518582478574956435115421656800936190175801152066113162321545591759320123341387144014467984589321417658757225837279176141892923944696630762578123302039998047608760793615208917183797348258437220609412481978548837632398897137313085257742209305241967894896330849259712290328098130311782418610170542914909677093127104128968769136071851683111035894663385461775055873525520329507693780143464457667346647362556506953752951772027733948323331544954717367535006068033607771811421324758909612998531209303197791914666872321095869477818237997760942324671201257428818575167659116665325481631971135616570620620340854645941907622297314899280558168325561460360008770031770316908346755833360452639581599153588327202635724256349101191842198707390057965544080816344111306040290742239894919694730187693521749061345559740875533136401225743180571654150565541258154466607670826894412996417608657871550358044736261016462072934216066593834197483618974130594756581546307331683083457885928239460068763341071630747246822615690559544606057735029624543251524601726009807388672824013858459380767361490030142438674442247737977842751909733778756605886331039051347234862882241314522847941412769146983089035769356770957513981508031626204552031779611446727914667113577801645698840054363027992068829348873375369867162310812489483453028981205847989072680222068909386209459540118339586442113123520902721366147852287437689190572341154933807407879739807690073361961403540189724279873467299113484660838196441823783735418528233755124111761794573416036866407078359509272079416139663373005058389723394812425951157034031857340647233091019625137716425428329063157496581462583870009011234147528786982340092515115137436957671943671851864229120404055192692742039531798776680095978234555634265482609133284177223039201963965837249068322503575975239481221863186898806488556953881249081960936598442133325262143935112670745004073024327077726451057981004228365833019393740638786391979657275468048891299792006151769994523493857838758093378144989723592391022559545510195714329638031076072785700339355987333019141555822921162124228424670684201708094540374564847436134842796756694695647361776641289226776212731769521666786858836897089450814253885087753271435404860583737436977582086904470772920989085939586803264408817251878175003426790364314716572486067739511700836491841865324579426777655353715741330121874644555063704182192776522036901683150172040857962765084147067580774313172224697049232879327606621279794752804932852718954136663549057863148887138054199336970860173521234330351062080324415540210219058508049126274338574884875288251039841155760766006768253948082831155417073646678882152427809302537984352072956289617093735181069253910876257982007136035199011852482963101497036114403214502061325740245863985942693493962188204395134674910301675479752254717861669742944743512708291571036272355350526672983664936605003659598265456400544177491935907413090960250221130428588447159852108065195040507642044462427848314617285926111461478048933081377613666209108687610955009232754980453656872140407833167482017287731999252300680897976748806845831801083513324132305775659647872507305896482240774760216571628670977793454460530639498881754992878507747901697673400577784973791154170206717671412635571566192797648472522384762837995717096647214939516703061058267924149425818151615299279167230937414328444686859555882553742076969410159961030227080406131581822362088777769308007174139821710645403214539294926087667099030435666953318785610913442872363435980281106684519050546421396639247429148269826809397833008543895709030084384312913486098138815805675007960335614892990273545748574428515497922229228254130518068405025415896113319877181788595596578190021684446890402849308263456351092666509741786939728520888922235936022872823042490705157660689715324360224966714361789114407896478657343802527267917836191719473840232667284073037323741724802522375437729831230392368906996993860344009949552472009763335826949087661873813843674831205617067522953907183177673686868308872564552507806816757979597034102614626707766820101371127993995684732382753619886809432693017775314804994580780066103692230394583907432386833455718976370862399967867429097669060275083088779316754205120549766258258123509072192177625546427076828548711483125670892513126883999217658186858044221176693889447961852671734486739924996985887341721258639412046435130709651225612995462039025531573756845840222818091840314999885949442743491451948501615546310019696882901285856585169643768942372447999268676589588176023198870434182433118465486508934511356791390585798813722287580182696381898077859785429014493770599068903907080113571935313714252319941050152291889209854890715167990579249703857229136180436251401216174208135851847389541225834649253272981819558601529190755615433903854952027565686181350577466594742609532096731089809697736115138112989397023827295183328295810562873985720801276423259620236397805725751755827405980789257590147443500746741125458081149869747383109331980398131648335552595680407345942095001772122420027339242849441129685091527953775152861629779272918895624878751332135686936880855507174518024880180192136611368945435620356358089947276988424834604691365646505029475372081704679640900470279337225885921710309952372656065002869588941835207367412961449704331520267518839521126192528797274620772076002181815911746582986664884606427071905433677320062658819700036814879663843054049905713748604055625865685152673206906070474956255430600516749982310722786251172865628271664737778298146560426834954532561147781784942124842235534455388936679957324556240009028401545158773698919750391160121879522920941998720595168925177366571742551619325126056027953132263125529917501719036410208602779945415167106874030879683124412920494155809271986391705184260893907178588451852218170211433579346137661173726153706661389955463300323859294626052750275355270732057961389531399416582630329263424315667024241829302305887306096688013166768221906956576471427829266231106549456820137049517679214965179334711154455650649696317834718851000464381401660862328212477362461563092009942059030677010094401446004998907780244686884169118842816947331060169254355985337990293150166559139867843997753477968197290783241812403151120073045287464856215807165905105409787398763660540970926982974311812123483274908736723140873939392842680325846392656999149758533434627314403998951893344967601364515209305776620613436310636110529338918965686860058454953449747314465388110054030890442668028343098046353535798377709358238692368063427183936318983477725582396833010380128091261859334627107202680684633883255704814767734191190088819404778408673282507849599891610900124513026855825598612855032643655571956992054545519000201629555586197014396872803923165755857833712228072032181516859659582115288637552113753202716947919842244022493968652101077811879706369130034023326509772829976103012081181160139788674588717397475837730330847373639060221358808256377449163517290074389057505880715317661700457988817774253344053565334119903541582494889531376954716807612434328468634290840342546558377762944362794540439611805541389271906562338179297662265987967762445132695636170969382098454058985435752389055053893414144466973650512448501298997367855872144743171150661509768232861076629851158345214713785522997547824217907598487347087556236829146056712138294791954846152216262192826024833879334037919225251365631967590946969254865758401106944736813261638457049925597177881002897632205229747888762584970907278455320655664132620524881825547921132549285110271577884245607064829854917796543216419853279452975901660963801649856066132259193943255703100256621272140124663601059945779357036327797535238540525114206515683903394120722360111263118510388739292137078267426520534465085327453308113252779978152958015847022933276045302048542455875809770746160303708125625558067404482506011465814572652550038780380426797248814562219398386330151895250033981828797625235673870718555826630900284549772867111258719318295924401944267323212033738102717728114146891634404913775196663945257821664816387048309931283940869424052749732619934062337703661886237652370031775508831467149124916456918776074570776740433933281878013453363986591247143130875823360975120259257807069143758412800582799872550383661685351359042010410945684730416464423801716576084681752441037727245378818695953371036608001930195676763561928756978034743025696300307921209958279127639468545208879733889084983488994796613794707839214765136993947178876352771421816917877341621266382299393988363613429508419514295794092494170909718764268053231043169112102053397696284463531819900389066311825236826479457976800422446697975081745986722534611286337424245549510029390018244401976533217922917137241990494620497266514237122110685673097763286052799746892823609346147673744612911267787316811413872156829367294778477835782597866671805471733536277677650833525523082338414707354804634717049156623126647178841963948019736373283375260636537695348338497931375575238620425441638451064694820493840369024253345129459347687211105458009447140696098790380395073541130333806234787800566804220587883824489039035752846695461709727970647065821642555311688010092571062932858531094874414882288102629551583401733566806985778804241375968829668316253595542204156235278588609525264933522437353130952297425159327267047931496848918976552345864207128637534853069790871934333266374021727609915522677085626790098860455932468995327120893370000757149723680999024948454557751567081748264585589107024761412439383480890503035999256971213764619004352873510039932252038549345735470836402344203073597290381429072471945404955736569468686939642179003385029724223057866259921820514790966148891165181233548754764494926526708704376127166739377945823327479040263204709626984258929242568641605805741003814788539302321889306793341399864352329000912367885638241666699970385460274593804157665457607923275305040233144925813661627217814573348982487463735631320295281336006315614020805601673577658602898214418304767480150264457106553643024861407769707016723655450289836419257495860245086269555786104937588752161110257310789621270281538980720112624162152694988592413115685259611671729863061579432630121588130563582274952731590834010765365727156762820937005056287567363267266466192568093340395082320711171233798384988626238319216627902628368522826973032778440691463561261359230154026321979652108180378883669217966049119309756632311979630793137184751286743354775872644451185998482980270421425991356870716469947467855154822725387888738246151315995377749024817389383998195003860232968664877048539768389118365697700302241867889120269687823402543969666061869901261575938556910160890398093385073326343912064228289841673490218187261733587051787254347492170344521287993194183546079737582373505236286223309328344064562142970239723328773943581777962096358942121737143662662481991542064098089177219988309429406140375546822993672153257970842356819384042053951851874445940197882734649327321605400639600777323794072768110976556375609175748015570950005846058073672879787560378436910445632237440843269653270974308881361744622161873122858647548264097575760231386251082371610504812623576671980386826179790484322557433957640991039578370671610481516347477313828932652136825509521156564113174140477744480167297137276166767357814842283579016200486182780552430710609182775022388655318289279270303556872757963089616803365523165655461029585597166169586079273361402921735389771280377177033123812806224755479481987508274541357355955585880613862569219259214791504716485842915959134124749629896142151615218303713471333896286850986524923679034262730296266838511159872142453881742208749385464102561866369178629588050307584184474325376753556634787579093957869361229595206539158328733772818939934609600920539575171857976211447247167566984225967588391595343907669362067358217936895357125262815426255828294457896937098173346019987367136551693670141974416485994148003624243486202557696330526228715496382771356294925977879099569380384047973366094355541872175989166715346533823264066252816866751306553775496757218931780873307767481182477696368714071502150982490920769607171816905424424899443860597835636097580549041970763665135055591867046891690697657135356575466186798840512459966537879224173518747205984565953635121703735250755791818165322681192542204022128558790858968181372175153175662702351487819219758215471150899943270076861882783811884904369624976652695632858875365411450526265964849192435262357332462883386428324993278604250121556017253172154581492372022191190112499654356968234010146303245852850710658802308425860561600466083643651725276865056835676736944389127420085685881233336082058917735786524814098332788333644783023811431860309726403857093572096827504100381844490388792895744395747498996093822461785022348794580180766824154301012036296130979401795986605880499555367217623463112768714267967642897697499640538303667750491661184127265164436633004566893672087025025567294401802870936010663217202782600012802892203060893343867702917953286910095944189587619600297819108474672670411663070327234702569381792719307121982234546984692308561094059580523476296874987048928639078556726637100301851909764308902284141850446167559277993530893213428716528655946028267219088825830113944062162437941792657286083952247061564762581222755522101177080173346952443233097372203351895323294223480402934253319985868001714137297637407866047084186398640457638528659932090503497122114936005573576186997050239098273870017972956906396410441654933480785129406061373227625900750712782998377447540834316404687703233843929721954728058153398709187470807851066207611380505125609028494011261603528914268503957233804962422958620355643651531624408734900153169650731930856381025946689999835024028850141754895053127618478383026077641412943588264483521079541135750801748866870078845113044176829273924679005321787529927370301321915115607128824427833304261781685869699980662770328567496151787701635303714470626865345993647373305314980686222376159039133147745689616871995427577314509710548608372926560325095113674110514333691088616108296775322842853339676822065857309867445032216467232915378374828877324934343251397682360674750201246307829668041972544686123898394584396802428526387689093837748126233469930104155431019263920342105954488115080605149854482051158424985644303391920265421757258448151628626902846141752724787394020919027870266999774549444192966155191685933108730756239576747129427693331367769502722703134867113366656652832206464959424858314189916053678786631254739165443200379613009514993152930367025053718128707290252068497656798227922746576604004131773149987846781330231716986103728264993675124159409965505777582642561109744088658699277734336031181041919544163677784622574589444259685489076759476347178209638075260907121560006629262411924983773931371495314632270472653060176748629471063699521484394911259222735444265213624012786235201258623033885497543204529028293123861706248469476233402106586331007243789510857256443522128309183001049500139924382847367275253443297328150406498371314554980507938373967915232869606969812611057162591039544179935910393867556562903684082560354095556941851429272874127268711867133484954531764091500917829944014726846530852988228797076276331845794794874741795032876514596893784874759429183994980903395304491966071644217511296509006482251138068853470139472568172770333901990896182438273604099327725278210380415773184789032501248859503189122662307874814929073540799634482167207161540509903161706482833579988397694274558140909692700850827760484509203921726052209722409068776062724451162465229080657239391772740671425538329739615210780420704646928210748034796635397736423335538953390254929722153584307034943286219696730333901488883918126362990431965691770038697795808241539595952999320206111112125922141973926129339027956842178526185493258049051783820433631607791479568681133651722845230256171065083641435608725689208339560256015652433363467480342907490736706909390642719020928882932888953655272041515991024624073369078592671827848988832546136846253611508990096499641144199920149700405384108435090455297305764421139734600743667797441576365190383171396899866423824795704559505846076913394586467183191725345286891814507308564228266378197653635212276553778147401908440586433597035696631511842979127614958316059381514883189820925444129854576279708340671830545399939608060941523589423038097571728398299690580388371047991001311900562212662079293464252733921412291133787297386897323642587461599847960324613249513241455705375668811043423439051238945931985134599908151168735952379268110942965049681735978558646677686131042676768078999462733744188367550246750875131226681974958292842266785479726834595148554404726919879970531055084254086218444178898794549180236947948016642984520508867625481447065611754111109518019749317169302459240985919899630040439160266689352493835600271376331087602074753518872978276416522589506080159228502356302585957894505938341055039933976392352722278003575498103034089408215869459769390463833460650210735550019417558728209223426996791416543952635665475109544216133917810416042048449822314142165175049604037747922194121222333317615525690993291493970143119618664415751460133334683138088740930718587689076673972471830209051190042150989508324650687109689553285077035309344625629979750299367099265362781450745201475109609571096949504115792495751450686353081802046547590262550789142284774470915237671102244309312670346638443339044261405594712692518664042287762717961032422145239023030690080751647292468047316484541653083264087218122489680774162061671981870021409236830465859729307031714484739601317446721098469239697220377785222176547737686257019770823102808368764431598598793355900182455308363746740271002290663734920845860914159586175048830202898500891796426088322940124858304194908206437238780388943933652128153332808838755152232918111558027691706031017551075890590088920196695261157981878124868855250195936109431198681016026477995527738794718157321398826791107136202019716432857525802474913967999180000107376221188654620690425747277607829613493344315428912320431091827402983772323172121328319021917179257949825139690984842218816873587641022811019199064759921387891679423376046753424588980518577542644202427194133994748901423957728979019460979205427085428417420602771549551758239081810583275486415163801358724721867683802403269854999269977595759534387455230479198875254369415008459355827432910820273312669994766207593839156196128071169902030994440215281875872781119900994003354895908035925965730726913143317461247181419611486661219595792658704308268074364689539348075870673225199585678413572244052986713555011492380371052730445276390294087606476520180026963072015825893876752668461172836219614042675154172628790723563682980375903042585636755432043020884357564662016776171185746991774924729873912138219838318550597803313463618533614264786170187863096107864158448327327422488859008675745068622425806912607799912031822777381646058608978469126064238308463332320019767993560574076564173186110328478278909433621731244477246332301262443290383693261665430953441952643301274124433113653767281424148221296582168228576004031070638521464161090245568284571367759191401515401058540717743094708048158065523885009882298678942621238510085237547383738191721480023141238686073875550549559204420703766088950426722317245704858611392558339223708441372529316675314773679350846328864569696754737231339086467081478329218815560748645619236403881274722872782577281239765061724301798727531991339836357700120462910595694015959185447714947007233395182589875202138359996194060025478389841107070515923091660314801012126910830607079335987516783960818227789557791798841383609633656387598022930910520042262257660851551005965664379498345594766592812864670197637246197035498504749028458252185723132024142708042431058031922966269921298829656975811334275410295249308305856976987199683579603502293224006001701089788500043889453170874866035180095728831569043238749784120901115285771777059157972567087913886252663661196756673455654977436397220974837803076639554076696151720733132250410693196322540333661480758217553879533796528025537912856720210540822403921769239620469716653944458475649602526723774810447297253266054781301729135708402511448773288699312116493898217602688319100178761512951882957873415847120724438771869095916169658953728828112264234207869740833756297598063292631599922560965729348523370707764184715186107762482837447429458914174445856825334954587027092221376691015732223931520351370263509084866494506758869882086884047115704055204268765662477622997928227760408248877456123394178626490419475726904968799993961539366411595126645743399934525883553994678870285683788751892967060867976507135841351520898721810132207142292110546757931118573151587813307044668656076944499729802594967927835628246621880349120882858485121428567544916355799038960838792977927822548742602837029047250047223940101631420884501198115261873069125537541594481159135693606782109232069023273623974802044374215545116053027682251472854853636338877836632455357136756069341297921020610603362438358481787302525797687581027302053414772898309841437562480210287296422990077154155450134175844831808930862653548313005709199927064439710723320939515358980917117048562115330026895871701692243174011241910131059203831145014297189393461914576991333825154570194685918518237651702832239710189902397209884054980649576256637104548090496476689350702260120138250343932777808408373848472077219281538583336412989994452943316809668008921965290670308780813198553297933883039349753849161553269747287401638261251822565437282019701528737339828598618925192563287507189937049883932353390891258647440100785357608389956509440408172660868455977396399052214506175216351963945615172736479172341633080183348100387620681727647572748752127375539314550752673455355109710015620663096383288872485581155247305002852996822237965409775999384604687310338187083484513517079267269706024492464916438521004091379381190475171747201637945685241612262348030158111021801579402487988684578004498968300230610328893664103775201701978465543540230171102843508838421582442282290174032831944690216893240971867296267363950601322451567885350244277956536877763865945145626721691817551060281701598247247115920472210270617742508808602051005163131327932917853604069629764432067274829374010329096026068809325513948871969286948356004740666075770031699626837117921198442525858546130106039363814971552618491426849931073592912790152562562931301819992805182910245299309640987015171827447708190221786307143426102645848478620018178734128581239636117597344144086470723767174493824495114598215606452052677277076550516417912136535246431808847031560708549987731478121023514442981756222567445047761978223091821128601202143027328403070470534438707185625370991099604116873842566911938851284417105054955997983400480265328472769799258551032027773647857325563510623439586874315206056240257159753188297921205397080393284597383357625555777350748713763120790322418229831456515332622798171899669890056032044512918952799048665651920769756206776154961726902963277304787893062800853843009271120123515030974215303996289271137433870947124252745275278762120203878972609283195578127213121104538510801264108861137418081230803358919033694064482601166778263469994226556834181978835033655840305349627714865421223150446279929701628719242527030815641143341087028975940658289417458104639778398453572393523088452780841082074409540605371442954124506735820261353472814529533669677954823794380327740755761293732916915922685281507160905778692246269983338871388658951132816239410883838962658283494734666535198530242938272232692700574124246114722357602019968729949523226395694738425128971228652672710405021654140307824799618012812587828876548345852905928950458829898752271051569635089767703266979885872467290549394372112465027007300014008647054259133182259041698756375141266254371439679116971570945364571486793846287684992131223362069210849815555860729640655760762578533612364382338814744136082641785760236104765695134806760423667689220753535886419988300582888155791251892101101616775565043351974333836537815597975769944366069700533215428534425032147932291388740938347131181080124179896773259929066030749503789080159533099121682992949758855359733533039891831577899168945174235047977855538753365531815819056927451383558393701970113475263148275720102627295129803942977343789035263727605793881838140344010645347510227218619204017205401369503256249225187519802113942046159790855309587758694829807467801241325856032922919032098226663953578198386798805728902288651970048451759743188118618426340981605113668482606264799817014988429234756922500682599458910587131320759978477349337983349219005054155624152338135778958209002213471252297498105584315674367915599749429491886738243405187504182504229891970904433799894067931571816430531166882879224266322570151486280132253784622198768655915349397674855852533250659682822007162419766088619208128319501186747978343739310245995711022977084643338655985190457224935500153645637466186416476215278559054833821886925621495450561222437719333877834670857922193665936077913012213254531549369270029890528416677389440909127553544978471394644736419439109582807138210177275177567612966778468363155180634937989737912795073321457722770611700346180029120506170644055772357250373116150164172953052796902395765379339530479584920804978446408778192720728319831590725494352052845411173444678010508839441816318082768121216787954506269991604781683935768384715550705439191426047744850164201448064297365837672345472187334576730865683541162185276795353097256692563382917109320666056531454343006200871012996908105661027661245723714286489572699254224534788978793524141853044145067617445899590608247848027188567823055064509590603822010693679073141772553913113239563064752076747643615096796869118346132070214323096916478828358179312278585451207919993298702913815562240944191365923956061087534156405484552940402098803682751176469948930451731169379882741723005784855458427132535984711769300213962981816445708888278101354597091647584365609965814996122102497422066916106877335440359157105671864615259233335799130644649821901827196417570216302199803417009533048228186734372239425211983027197258470198636335006883387795209463643268758895837439430080011365209581938287219175277342071703744839942652412234348549073380566478033647084590830184457673689223259272341312238832921702452332519938859411074258676135341342223124937379665227879517839659630783910681787692477852106158718267231039905787686143088473838603940563610096209405573058237113529858956013484120952286033583650940925395879921768510039007543938613444093414472489366047030240728967107113498315080281529303611799745453195197169790729417349308517873746970402673571047483872398356379387093606218407880377654197963792297568951891996932936368538396523018944725389366697289661329561969503856295312142319282393884994167978630877824579055571037304095653205310347128571773828322019082382310823788983810407001377977692420772326354769869752929849342248949148436985098240752297805817810951791380336595530023023896913425857660421400776164084998022960931341159906082361613151760025817607314959694120965771778820865451677225137373153203865811429470748640104247985140048459160455734828565015704995808830350010679793800130145023473744795820869988359417820362547348457112220262262168390433505408457186733123469212726275649293284826949155710486725848886885504564392991783385699255096663083224212095311595169092086684059559572397199485973342541180578244610458451180636345493694286441319346006499216164853910349626158282847519021844918124658706463781124223360510734117948926487704962816555459369931026431605155393793544071494808286632870686274665804902535302502289627372927910246430626424834011675219160743590817384015600847089927733808333799664530883509947512329107139791748903772179518089897895241496149901569041740071590327328619187294952370698979145697372994167694539326372843675686265670051587766062776439368313268916248151337730401282415029508260217879384831842746133145150502371348791218658131744650857593684434929238309007529016672569065402489302570227180675615173605065259796800817898135254588568620326471771026162035738644740246405305235245592653171460327000579517477550927006329785356462046901766060988646635557480507869038910725906102387396438186782000923497875248931542023767217591897031939026125330716803393278619729500915957519016050695591906654568620320004372877063995548731227794442157346439801524216981394463144374686344820065491699815396954079320976601310066289174646157632022780589015602413117298440114674275406207432581838717315396453479801121216426094287335601360637566266562697636715586216930366613086890672774180573096107808189275671985549002275812394650608359118361856669201647290689594878829742235371021578980537276177227915153968331185516738483410738835428484060474193057376750476977042898665154853921306629568677213074850976138387820200029613664388847944950470708431017566051997438574785149928628482008208753835438661590477838303997166325938522461525090783856187919447946782458068682515926203350069714154618257113513973920372693070868220048464338224958222928364311145082116978065960118461996463534073452913498364145393678622423686731637639970419120234525194738076501226542574208772775768836096107886101184476931838934598024011775511969219354763673804360511577726447383720239022978465435717504850608570233475122891978274937288313800259840030570958621394096830659841081380296424034940609134857730496710763909948087884219767913274936957246779740047700208544991482621315291817920203736635143237257795055742880158184933741476527326493688866144511516115839199271764425891044049558320146418561137955778859901539090331006369135999527451792803144087343285091338920232469939191660333883736269200625115250570025811781387478190984305405284986009267857228494287500546831430722272405939914932727747555718934071614633271876068408873621967890100568202539038340116593198232987213454785134586752857593135845783148616390641858715450834213834587913168264355113339401546134342390186893005532597296833223693245666131255189331105360009257819593176524800950939633616960175559018720667742279656298390026668527379494067917842912744571667910481659534339970271723896244909722152591774203224630142416458841890050435282484358560132273456068914486550007202203545174146223450932439819487954820779458020098660488200010734218126681023318042750472242884244541657410351848607772176165800521876628923888056066967909902460466236464430979861356651411914268262214583749788406234968248565922281242725419183547860346104582886453362296811447887119592278904468623647504912570925932848221778904972118507320014966401535342911635601821085769985267457485982254258042920409128794963170142406024961746614529239651924274308509609815983349159338244417534688934203902543991203422047928635551105237404914572729194846757691079109125037791566988498635188998595823725293423565020669574811363513059245867733516631382493577293325516194345824663924662622326872029558703109325671417707586434403542781403087889786120966220650681820756562230142453334891215192283244719101908367355077122577777022261266243379259625110909807560743826975321557990082794385704862905734228900629249794225710684288054431851546872258159783649155754836211344332759259738469919756959452752028956625078999624854973230921359275103981152349664445188583730171195389985680587758074792154085302523763155648295449166193019319142631731771640924545875818124078137111094576861769604472398817602348611387695918027878550012452799085712747432547517358688435798524198428707925622859411571392929242725570300386427749576533277809028856696197174050466941452989969422052413364106257202978367094434124137643663320927147625129161667557574351952111294399007373466110479066949057430075099537877876602168172612338412631752644358128581093742728431183164700187797570093942754640698716951781875928908099348992968688687254317342615664831496499868187908081434049166193149134651744955822923045786806527617011372053276225714632223710188770450094408662555950516243460671033018454931532780733018716735449836955734008695593784699440374140735647748047873074838161672182554889959594962918510394972727698816755459516533909299360807975944999451913147978892342378964424808226828505272721442809950750843339321552588630988486948358803280649589109198350937251615804977516530997568824192735651777438986039271844645827295290285397596060127918210476936504000325639728901335977831133162680832876345598333826403984386877111841224256105092166210588341163664264852974933899829760231430801770642042137964109418635104175233770452561621801641768099689986820977482572466677048534422182286789092834292651223041227077373032026314961802343296703172524362540807757381257612914141172297641612918838786565842221671352763026034152273089474878010059702448647269355261558188370898969052517306319573464943968838512655548571929849975089744647747580811259745525430724504968063156153556497496765529994948858995480310969212761804350834768296971844859263028806707321766602799447417328587881718882621945919313028155673574384840861057838708276170878736631891395844249476585444894117853345595952400969338052818764020239126243563495655253719361852699016196937604070873911639277139720700534979452255858800183348003166109837364974496957614648990026040489610912421255056627698112487746829677107893567618073390421337216369001149194034973608658449066899394026644035000419730967371281957634812921554403494664833419438869186450488077837069476280457115926606703680376783193169883696443609892671870062622409643517294126387337933667388267723392598174105928115560910780927103388303029684567378323569478238461980442394007614286681332728305669120803026109016227318428040692322112399262565631008612552705915718422112787916603329278188550889958411273916634050565954712956131811775751593159874349004472196268193411489229080960705886335673892653161077516105555993846135151146164638051784570580233360013453825836074924591368662587991775026494219639206000378825625120421532112826231586156943243137242628635222407481814471684784140413292851198413309451700040877000785453273803553707910539329379071489028520386012222705868287826181175367805728555204208053693820794979165397128710310219675956963844501317443031916844125506141747756809256797830724107902130207965922836463228067046527076881528153700572392790102489568385439653474565186488514693989044749775576236412887323138986967497903091834592536383406794071233684187411703651244393192276297560046759668235235441323447235540392060951367746845176895177860555790832369528958945935752300372813541577592842761359689066915144085436988557968503169411057321030261014712314936175079585807244363177050768672505930058190242692476027743771032142934391629142649994718800513419000041708907071001260437279693459802726768752111624004709838134757977570520322223433675714209621224477250261467889838079528231401473977937963616023674814115372024114541814677080618791465232848976247849915412227079091013348245274768325350016767988555333635377017459981515749284973526607221971469023482464858691320975503456388422910198866200021128213222874942918731808331636799243939676950001440054828958239366025285704610780102969391558795834945116458763563123015786455058401908689832405557333608463392611909044128388683089421466133995322240661499033597541605222325593235553881330791870841880112289592151199170780461765207162077448316129777677952676244857168774043180911927180733478431131606187648544754319881603531220000923116213456495087730972265314257967567134138027783996365063036847158577477277982480957637028789467488189617005032811577110264875141529034286578944044516721569593051371074219488485346439125335988878550466267218974116011865764826301021686724792800546904000561834154388548449115324988978618334951105385775056636087859838770732531006342096034882148361013309183214867028509798055923427563583048113584327968255470170097764272489291015580313072166126442085029069149024350659218567422401756374212009051457084116550419740835488651727115836447275778739404713809913266151400830730196322723068248961470432106125640742541432642372654709921358935125518750269595577237340342133391268688279681115318436018185134165800113164442103746233984224002466536712605265872898680378323168296405248177424186501642107649176405310546500040023347389568209798837980242152951701664183038113159226147683218940662701559704531493301892820765080699915931967660432643521684049568700995696443915579992570312525242692612765479113247034616434396006584031127349186318903096776506509236139617839051069476587882440105956837833865800744220332498366063906659177214016187963961555260894341838923003156901908148880684880566068235493257748827246013912885955742894760703721394745251295622726580548062401519759931044745283252859044106950940704765218435625857640526440792228478678124658646415944027371484944449605332783667070683733151575431030012401724644226713004322295727049646070257833797052753192234044334034833842956066363091191413368206297356414248565639014020329112002448094795204677917883434724995167345689139766444303477328270220629355866575168579947284982887554947856153170248780754472274394581381070156744292658304634738331615430395494121009327743116970243156020189010879428626638627080849188243806540194523227112636341783694395155848510884964495876204643099461791641506581287671310323020764636591596555042304713084450642440912606953164757979118050175513478456735681195589618569413876097005657495502528567113851088253287500049916206549405931189039250645566587628526382564322614792876119628587461845578825538829189817872170742720440425540891944078254560832302191834192383802662995684053194725553796611364377417959264922329613362319282269390358541385635114983903038378610512174969062525674103175541803948390323252320291786113674048219748773120548695408103927483288947066387401539365387500334566633997916425632010169549931368194670204993167045595318136757210782169769768617366234151285634786502484361346403225403412280342768619314658107339469336579723461428071490012669373691765509282285328497966308632418640188219627892334500239155399700028420659028887260362618335622613083947521659425600045428772513587835591747519427670203119781462851139898970072095079039951583059224042612542030682261706258216569174807933452735058029348566905444645648544882911350824328560199956537252342436015917634333259128905277700331761979597314747734091878371501964212956462999899641918912829629361630366978716356742742645772216783595892947511973000201927413516803111194812181501473647005024294581004438608448932488687074974124838381506338817977629385807583241151835425888005108878624075060799557922784036176566238648329191857979928680861898884011481825270171077654348428729269229617825092155224788895277456452530413980159431606017199034557234649851610341302201105145631443936439525727770060884471220281738312401067379707105324021965249167287700834363436713841851030593123979941394897297964100313496329597152853897946241330407696430205539235960402687734812754975749286672948808600504111160033212866427370542389182590382078289188183588836636568286271953418507464680219922457621489183019166614058584434011063360079061846882986443633951202319630383580120385653634054669612327290886369462491930540079509987296489622682592147523257027556030629179396898818126038246648244452778488251185132340668038784245629188169221535324855001017099261545602891914530673106366384709235343217785835545109697028345861424261040517889586439563746967560216043128509559864753562277468359072053736833902053998871223671003989464193560959203567015341621083449297633152925009184772338988887397262882438276015143102619599737018228076587876604841328034076052487966316496983292729412916022620796998334370590980261916138163698735950286822248135282265285566356763092846910900527050299488872574159701976577775949315264220800903234447576059063494671588059671636742453931829026289118570747773593585399999587942376217373592962239833482773672468841666022667879954871781761068446492529066477200543578431550669568419599766934089720773170155867329841409211848408739332179764043973306028665299343366506072709430563645661827243554683695484651189094692707047567900897443467168812345709376488597320931493297128371335703071108496050114046177277824828043999538701696330398805023671686814374911570058906820356054378659079663234885755278183284728365631207119997245517822080983686692104579134732943611180677031238588633102415522247698651258989175086200303187055329928076348928206037775197966309604715825491932607728205404923282921229895029065436956267107938730082157462090658033260127321079797750832488366988146878728300114099850681290690003971360948361933198027309363372395019594792473621719923599039798749165708605443254761407787614222564509887037960911583148093159825221183894708580791954121179194060859033279061602351084724756015074432461466521240655915350536706073312660553096175539435184173788743497543475301808685994461138982823731034523505647068996079195478910322095719798573446183073472909908087401775290816976192821729193128550474431452190368939367106901483833075137826471715816450670851995030942730968407828877786983011609387399827779059984637348485572862155218347713007840988581523544253804861440404184691541758346952848674818398087177092142086492257207824304226203384748653288196742017695051394964925141553704543863155261414731155291020101596326065171785243155668768198389705904088684362307849449586141021129405145762954200380712175841429411870403377470384876608377429696134839156323317080947361917682125157520603171304309584657755596717520829375851940457440912505092869259137942768031334778357892908785086302872244951640498674965449499438114428520862968798089076549563965170812027432125581830881886142149465498334064443750799779256034544992618327807951599445430521022651003729332009626915312162965006761240068371325953575063364148503067515508711524474607891620878191131923383639098833061755298899796345238387805610157835756877918525544972382293882646325999648762056086698455760420617886422708187957883907991709253859603713373830419813466965320159811651372098782041664521467587305471453233743472121959880807717031633716850708697280939752429202762795391163872856362463123380431076310987731482332821661118688029638196362783553257755459497201655077566461710243415446130922628525248742024913702699983688210578047570838603695147955185481450692105713602874018631275507865768364988710678258706341703492128019822383239659217250876036269230564545230957167844607601476344932619195941983629987556166455592513417024817149926416252826082615489139500408201688583045227663365440737161383134710820773219316472771681115256588362894198239203565788012922110794070091051401082375532221866232353343733987691564597799616094929967767544594391397195806662345203756393122867258274470830367626312094415505681964774507812122035084898162969144590424364731669985368068158187741578784429779844523420688277449709288393195176193689226542589565260931226461068146529340501248543163210671787671537142831875802703404121416141290721844788501606730694258442686557057189881971050049644850417257624070280800300317472964498367741223438170131514977688750457284718492168969263583699029704142818526394067029658822667614153076295150122679516217049830951559244542198208462471675500413096613577564360286256248063722782014991797639838400043271185658585152578908401097767909878729917083837932241129704135511110811384228659425019580836250925155082655601416206173979544264682379274894860153102529773608126335367527949074220311675773313514249869799059232662176961302994212141291445180047700666685085493350447969952902191230415131835848088909205587143669108455988781060464453511447479662547802531808211976480392334419740011988680492729901936335483179623923388661267522546904105863483034301289268378076831936261860065240584324931982365708870397416063952861385921791674814567633602825316709059681970071786060819140029117851424432627324147185947489968493057594716931197869363413867776025673144741080123828658562396559016970146535096569810086136093760526530903966583119433066462433563965393726917173393502216770311191764781974988907962462181840957475735722869849495226611891619151106008677711023160345155463773395877900453704000050664964661646197462034507718229289406821346248365932550001008083625644401908439383589188880881351744863828334989820669188599187338443560658039644668507070629068564081286105280396698827381326138363820613184556145227334332411102549052495206632441127539164158998475956483016341230487121615810541126032070855616919306926003001801876169660086069533041236066565144077345180409506409659547227920078245114589373680291029152298639055301157979593799615457894536160664778844976373510315365770203873959778743053349652388352900528631109455989482812297832145414394625312201870621202215303660249493927644905480666592512905920405187037243894338078822799913017445970619886434455455965005196244945911754291257493011882384878266604642982899644514938743077033972404055142695887324380877585293021415935571484229092011872122752875341906562957130182258500285232828906316870283787851876914570018236000548007651342196419452587758175872555538399437156189900687346098510287439380321551931920216082333144668738524279698410364217687776859373035785407742870920711827048033999161767769214341591286027857075150626967905337920862672701113926201183967138666421206723167867379658634930902628310713838537915537122900282807250266634244000900724985361208736117134603258791197524720636031839251707007633297160840365323168671477140638977971166389073011027560908448048527298494969893235090812592900836408768986832667083913664227920430667137196782524785621296798455114017312000926199986484694118111431072754247762142482319528867887605512316951604872435404784008236851897815787651381462458370504659467871332599277940087931080266416654060059357504583188336044884444332067032064722278084334735323273722228294512323455656157541940248521501914554865578796881477101346258254851645393395730979594555662029051377681654076488548061191362369462066767041860063417545990931302551918305365094877893550912690059680122252860676586297076589476836973342072133593779619046256675033392574759774264623520241901988928835169772227516460015578002183643255573109027283659953416595897702343534011656573276910444819854542188938039712971825803741855876431360390302253981903096144013356979440997333553071514141758370289476739334242662217094773628560790031430026278648326019305398632795128268411149537653506531120314171972455833203859095428460150228828939864184713333747998718707423980253139109431528803596963899080195576645609832657786779163065683226833152420186592787034068736306682490991775102088669824379792779578656153907737559802319532046663666232589747313420276528580513910313728433103229398932535469637883351265902228572650216491102217772699088375674150730090638383520768651222682478935688509787458106372939862324933804433031351337864541917047597426150781340290010539260449779707428397199571891881365325745132164817874563053047703894764984034440886959974683649942745555569055914354794470651427813312136970675928222456572707623605655882777983614017020965105356441529858520623442632113287658197736474391667558409841801703239186292168036337911831088735103578239042074561659198067811383631561169438675318207636302511388299301207842659066370785402361188732078941185111853767141525086417847822741826550134493124747554279120485666741343949922097824979468374106721109828404565913698038718364267744525566992286694660710793523882432124061881817773305851206234730047461167798231861774985355146844408633105297649283173731188183208683573449982402705443335298861231996129824446164492040550770561102378634328089399034872175536853921378723016393457034531063322193183105705015775682721883313697159241458275464675764138764422821931602293501546994704763484498966734089385061061662519169408990160379272915026524962357702705186650883335318109601945544626694134430386165274974737860455019356434186352830043426781456299019823079230705378286422888578981807502582426094714524411639546152798005073054730073713489054955549235041360159553118965910941010832214383861313037996027468164009234895184960435470843762104836458600855630516733017733095329955646668812720172567728442595648913622309641267896721709401762834756935104100466518937709597618147037559568095288245175204298286605194628045741380575848211779839778193640544755870406035424302825213051797284110564573475592091498236072726485387069328663710020627528540910142824132971116759968871076691417199685727771071888117691102074449149766338913859586035973817567254645812405646914087846630125047959893560550700766342936117562001587007145265286946588085455878238125402465240310510369374246004147525688674149771871638969282626069714069145871248715847423961657947332267977106386492821410363640745107890907180059761558625221569554356292724620479213395576187123073715205951032921298679522415328685564640203562337126829866335223668801038455505582190613310940617564875429699128000491590569818117868207280323681031889541525542653652907750808306484898264114242311903194816776526284024929444707823413745545945897863508912494169527708013301166156721685422317292814385441560802673895619983248773412340173316671884450842730037631116652443514886102379863849916610350203305267302866604760129502012724410446097230038038604805872043834143298716463445998695315204440747203671698749347863133087989526070092642620439745765073488293715788832723736808319284683586196055518923609902839894437228920165207869058012558491523279544116396807894802693587762363318779742018083372440868773794945912968474890614694292529077250462881508646545698602468204019483632239130563196635403233178946201870745608563755288056950464254569692338972867982025526359942178761789611333796723200842736355752781943702426065722376489078150883618110832373686422933260764960818209711195842154554777482745512963401383223593802083999537307675374941414146800689810394260402954610764793560035551686696016391169528002179651425240210775294872602519227474771854442604896565712996180140867903941673033928732395443117606156062270469901537823944964221742032599578385831727728203194917943358318418524603106666306907482020123985919315169706146336143607902433633245226060224786548856735563039280575136659521353654020271701875219539683700786096053338647599092402662252190031500001943803733922877169621063070513415658828619970508849981987355878969948402471025385375087477561424429584964609020884141695912474581286741035710746693587610536077030979212732062726224322347569337942647053375635643882026201090114241996443181790269617535603952623793357966941299621344310496986545950451133804980834508080782121542925134755227845261435173041409122505159593189670651541846102921176239460014630280730879308946134317520523786038070386569086641635377067628312148393508818786630094642168758997271702996800368179575609095385652584404525966208039065660912765375371174568382440572474655065654382582733021774287826851818578509530819985063082210345217156611914332729485542362425663719429093076782258116288353678536642469825609606212830385602863588241104136464787368737238058134611884147641703560542477081950485903745361855197451269429991093592048082082609726533159510850530498643484798947867250443211783340594163070032600168695604820832810019012070804925211305497371222122191514174045113465758803613573462580033681840879681406293222017040948465378277711678503275310259709645209427115211526965013978084463548672688318640801938825710865642833078194496887681276916045264877515081610882345838758311068788047457235869616164580781192378112344952100851088409532329653360615154677754553018049326032399193116356931873812820227533936506539150506870438306592490960736990304833476003593188170928380499937828656499898454616641930301613182613770518398958395232281019370772073571764846785054214469303449214242161124020020007723487109014323850026961320826663071442577633698323749836285140259802790786853341459244877356508779233418876216562945698976649248493548235789128615199430554321199429570680695254356231105830186768063681257876515544642602937913302176580466865438072008204597763733999996020431207586707735848314429980307204801484860395360559596615055498067875667779018049353945166960235736999057156750789604155171767643292117896869245172616360577613171669675578097688802848298881970495245026233726689858204644982618954986508850141810006606570159327566671189817407128647741868247915204733152774540336643683073188362314829155312151556940938243758480529976605492055881108240491629831909260916440331526695420333795611386964506956694303586147342605362855210209464116969360147177123218776587329243241920862660279703464779529496335505187221183936812502584257769727734102674051542562449623682995138553277544381700548442643742738180609991504596008139908857414852693148160497088512078354824602173124077352509101463808423337741442939107037520594195340467630346984517981951217140089440774219268523435047602642192234495268448600944620634686129950497773369337048300655510109676143413043748124962435181977963793409235301441077420223807702945557056246775823388259380360515859040542758101786303466357356735941080738467060619705732060987424210874411233785277390959459511214822143586910902408717644745999459617621600003620394520266887031373105178632067255902031380306414088886215121853175301329466264830887915952644788075909196729331328547286127153459269184704159030028684740721212509273669373832078663960105171635564586535616702868644812840746804482504295747812647099001265887401222116698279482497887857597915361300802494923185732448454993757123424685011912178373494871671175194844679260842104561092988327664756533734580205517071359116847428283773639792259929306159239313027262791897280545411060439246207700878248751644525229332321333073753443803498593490830138715317367297995978385627487089705800218396614572111506341324934116968781761220159077399643848997456872850899640007617720434180218636862891604128585423022362538401377952721794420557261001517254152043295062961969891418310487174314943596316874739028291629833873900491979081441543878243246628175356989674407233260939680554712491406487906868797238871297652689552822377461772223072181590663946863448007773124441792937539244829671292502672284359746502569409324944171752585958992216510431299870588064204134171206613076674389823037051525900975546069171984125189167701466002378360566562201632881353566781416669846476191050305160387808669030708388254224774405683044572947670493061973839714030384447415613660381742087691010349321656804528656968605426270105936226420393593237582081065741469302877666093367236615545822130066044832549691115424705493902200185987458833621898866264953515052362935327899682695714057730102723808605880664596985997314094684204405710325550617898399262747874034339368415161853587109632352393542335381806179522726887980330402294525424161364633035005580154098191775411725845092079489917312865736086735377699536317356809970315504395644226808691729841560103197722482293729037446162788210764064502779372582637466545587216897840013770832584297488904140113316041176016345147533091456371665294419165253588440166561621099931308271871337418254990620087579799011128187528091526638941867539761866316000999106850695905426662599413228882255470220725850316244539148160095394805085799534383759235657846941369007039458193677064027718175908718366612318603343103273537861146910112156399752349354645796636861444825439947433644301722066858050430033186064621481406111284432948896796260010693240412891590068608221387928773910093837901106593807836358954813528427983686443320755544610689391576972081738042810064372264230226360075734671935121372731358157476909022272994576578211762800800336831279111535685363652381169803957803465862498653982483483811156846935427525175378250355428348399478695879986942910549418937187273821669792388022232711491429232209597460852327270075637583633813493290513706663608018878835389091646380067048429076689331613026624118897362390845533192858702239359606694972026580646524151585439246351146133606866048140172811826488560227805152235115412364666976184255799407462998053275772899374663177683751938482446147800123413435286418744151116570251817470606370950017616853605176724830551352657041969431613830641727070429537567538304707319003357521813593954919272279255325458899334719138670414889894076670041846426212119346819128973982882820244823054820008184327237982644556734054824413839644704453417345304781034532885145771050502599077415173140150331355960548679543890821099437083782451896001072453670454801843420123954971100171359373846159201650665069228658435032294171815437515251251950545525976682765637504688340395288329122771431076197752227749830192662533232500748095818065929198561506630199265066890746410096776120072693556405617922295812376107679402460476950649955389419692292950653687109918014182853786537351408644395974405013327176540999831677498763493997222493709871771021746634341033296653049384662081028734943702755647035749797587180244099711112759452738560781718159634407560834742233965554757727883648826112858109396374426146806128594408360886400774407168278054180716259793546251841669685981582189465237470795306756910692651287593435461705912254934193036972690081621086438921328464425785791210932588515834037575231326000260202002549962855613685501136764783430691920087834159679232697388261386289365636753080328086736622833367337754097811369069524724043894848374205924680340500597375646512331485769634511132110056315008097254943482414515098175380387948136289993420279536260817949491708453465521793550817280701506093313371508518187951647860374851319533612026948881486542536163142875044245483834655569853164361346237227941365111379035875730279288170943606920676823661381904741587910139885510848762169889446870640595050527013224355540783271715568431109843500343940174579709402314428351234481605271651231298614810255605882200935452649277568801366709626741968463528705559499969643484177163975021300710743803449239392086803976207955552252427149698189505530180248464032573074056428154333499886693086793148913769404059439411033095937454213306575656604769326073703213027824047754888831256607542079855996007465811167655866670151603794657717396974504531739582997040154134363485699919825240531261006248046201682532318984472099574394276285462520452130918980094054446259045108332677610532334664370330830792356224997739503066449989972788924726526425443011688968795118693169603093356356777111333588127501841768490916441212048943619359446070257896038770485616632811026058188637783898758415149747957994432174037585009575605768128554816851374703431459592165034756861191648355812905271540787358166417717657277734096857591202370792320922209065484477419045909687634704333247178306980968048226959604937425820083205930203882472788676096699275621987314011713445771389949422546391035495741674177029045896614998001312260286642564682611238549552746459561609518969583028189428584435192299751669821561308108429846414849794193352830295355439386137516855608548520690192698629262898409521475805278280543606737190825215226537477792699224318317597683713141587140055486360626927374258688454898626840827505761308103450232640607729833041943103112759768304250643213762982395035337599450030423841320215191215045572237536460205081092513871357235175969784855846473851136100789394228981544989677693979073968597279239889852549960303830245393873694128313263076739463652259420354835463549041108621972792601283269482724811476479401498385799736050558639630839124223367676256518457538578128463789559582302429335641413506742266932704106273692666597021845554730322543625776334916113467634325988554335175930805889386626667774412970271447566665012559695756787700286712287699856071863343029886274479870884023947436105653636400367577403639174833843972195393431336512688504003220559703807198348059580192637890194987319053521842336930033767472382296982103136293807414519249506385650097110970732545104228038120824938587960954462700145899008588685117460276763025167353361437768814420447089964621682717203619568522909546845585065745080449457987834623847770672491233758609042969235501863293229349730832652209012466937106887876293329722271591396315082259208906421842165287289908575843871586028437634468686594265628739820376776082940455320793970925930842270736462131506251909702024759621470783825393456166243936142818876207357252492971812118015574462780173567351367939555245892394896818803642214087126376823869197791787914130185195808528059840425981329383668662867848498531379319553913192969337284459675961504654367559616156327382584798557260715512096674985801906988334464551841460209375562350822732651226967212329544339331920868284131859201945468776416202725986282339695731886361340889494923629109926504519048549860466393697371741912208171224951579455218045416074132412049773475904130113570764334553264519888934532082505338578849864544513996595492231998361773863715536314331410831700445969505563310193630396810645777343375176674980072863064344742454366335758756007769113908649163875498337316221319991341936389850402388739795470790041550756126695924013306387093625343595157820382502607280041434829713222198647215826448135487980860602911842728269464751777103339429473989892058745954531052114198010566502521375294162486587840337566655836794724809868021552739390748416747916138663450343442061833712831943995369903778438055833046381160482224005087962749512403102024208995842136866989739738343598514240438128446206202836861195565400356510350482346606954599793969430149201431810967720212541667063172747086730322030627109143961448205733081799029446900945810444022806017430073987152105898788949828370996697440876970396198991242880377702688448628161696082173615321475022800571418662943109903632077233710849394998630689082464946697578583254714544512046065193297646740611403288120101919102857210829618023292901525145101684531709994671788506513295380109232531773086762262482387067012925450232415847139058471225258267532934506625473770954982451712888136256182279904583187846603447414858546214738996130615151317029547652165308631228136197983343003200233896478260949599754004427102791451808409980800933839913717155363870747319557457989244816087216156101317743735486717827334632064363429436621315739714905551168201239851358962534632161439740926591456701749429098047817597397285834177960201078010998999628983948740581409698656364697560310180557365399323781093098155618506759431019793652378621410194196822045380582761469276852518547918153541422157323922325074602820115050830759783898903346604992370718164666990897242027851385947131594987485718937771570239140179439515875518808461711744688606764259267359699519075482395185422333405615857539800462167576135207132290412186833169456344876967712388059634445291102814663953069531956065389753116583350335524644282403317098155638767387070199164646106749745704039874161173042914339867043798216774502431831814232508079123378376534771034542829586089471299945218983029429690890352884777734545151662584195368340640686768397399981266267867868986984533251313875171553679409753656472295249171124115131136968324185278713440735426703512623238958683714796592074834865752557624112302753263355695816722920135588801642880889735463036275118548491080677501694454056995150754748297124338716869869540639930737484876088015096541341171240869079449856490188835530126115542305723284097577784885228672334606362461874698537296669197954837988210840128774538057398508937315383082543039956892508827796839691094831378199466894253761340249752939435900231878561743974033326460693101633156711335775867380204777319149961299331148867469146123810310919575108050865484556802792654497975382629444786758975293098537085703307294371946286308968341354546804619662315640047511765145167957014209906708519076272696463744624682454359265600458992798074653340107240510461200532584930415434390445071296991211021943767190730229351050467183972696544148567483746147640201346227070401653026737673026194281088851011990170282634257004678445513010125443661047892156118432073468029710114046845460741792476638237863149947645721972452939396094648951960649098993079137983028062273347239375675304046564845911622938917239941141632852335778484383511427361125389473173405247466300483209884331972200404997256549766657089480951952508712016645690506528424506630833842376372705076419248012245548858532695906628164551282286448205241376621336829963572878467273504125759727311465781348924318022410444500011237922279498531227705667229372955027222846923036079949784995635832039376377304404701743546102181570191784786700272511769054727456148921089429125128733028908165230810069829764808068701326853028892528947476754827002139261582225360582160369440066026049521093986932304385539352740407726439747643998481057055151863506716591280107811718687730986346136352840706765467863811094388610390255967184324790586601497606709465956275035961225989457632176018097187187309933405127632246283677235910726488343681754600792757925079315114369558804405476000101617280930362734564393165599459548369134273836951156098621953775186777096564813493538172719914016215534553855222845001761286926996232100805466601010084057747676145924694389421153738026099494420459899088614851143877682195177901829082032619434607318382698617921440890659715007877735424412529044110073037140307216536412342927283608973303738382827701592135670145876133907202912509728608565350787267131221496457399752793029088819268817143534375236407960507989001602604663438187761691746977974286022981943596547714207100205750511834454338941625203248070037461835308709809291677607954695383696082226758060643870016843127095681514334664089326957243250468816267496600866220073992906784230272806704452522809731823728350263606136425758395752894238571776529473969019966821876031027872442318298035478974245847747820104462275326367259909593623408881467903262714482770698154352934865149911275975635747096756536365933962457036147591311945779082611124744511738560862628646952146346246580245110708387002504564467816140020362175579770621712566303444346950353254654278633205960897334641662374491436994050386478061177330856772231051487581172259029066542899166230417951122066962684513732190076739592889571843989488272181207855015853583552482507816848389882452333558499284438138791714380232209285903625124976469773830043768517440322941874834611281535686511162656686817575830801004436215357271098392769047659645345993858811228445148003709659728214462558233458669745087233922374677325323786903814360747968438897938403012452024880520972217246736178802977887954798687547331374463037369177229989130039289831329430957568892870849401822037926426697439658436462799232252178548975762329548050229499340854103006086863472590352795079440611438316180048527817588663654321581429423663200232633632037599021408841397976898329704010024039862011444664364979799862440239181124183881714338519271118002940008988781449563555799911714935979837317663673585278735733726446670679068808408161425979937944985396691314559646892079193443336725219429072429281262881896443230729905506535813050828669659199018213176140400173945692828166874486937242383971047394590300889865984112177742181040215176383665123819425784879217164785585344076765234441208048716051029925847884910857429682327526305600447517287124017601114752676687634592927917932471992874579709907798411596937076554119540975709495481540851326376097681836745194953484464451890220041456995061488614063117448389719844501634668105989485817845642503538608299084968511507238932515222733917544594980381867095565714548255616975451693814262353735150767386325097645546793688667624413119954602278245669257747897421507109863801557441327853747052914285338981582805640959328446572426511807872822565736840767467097885939414706201395277555603070707626866860920569827829196867206984542144561011502380083171923551064908914797912992475379648536228222553073738587707595659549713014316518545627855814537954763561802404770738387827124170556439760515614713268074345039633258802230500773925779700940566839616331318936768295473813492203355265632165091046066255689627058503005556889011664602608747941035146290078823547969366308416182480114029812887357163043024180992256626190327134561335778356309421165940372575320536707030859677571146408346324623748225368763373420238089765530044665189831902756398719934553095646533806655198375037171696317554872947661422130481586449364391732059808394356630890851136166320913324293640129730551979213734970645020918408716148610213973186664796609068594619122975740694537855854763557771349918891164274977492372531969135015254564567363130364315317107183709817663074874696982919659020883311938034113953834531476260989564970993181345960830424792935386100945423795789351334460444287520798311617271312850199379797650805936698252093935850683906353628669989341377597884855667035017687391453949407857702185779811450351177541843697224964379123046312613479169786700505395452863120419014117452448177032228757663619941401206759160328854735256305836897814702184836068763723164926126928147736997578037653862727121351550953800545233133164153800025768784723097348127776581534973693100095940565795537897367996888274979979029206459348578916671207027022838193932111538585251222426566175543624342632982180510428695002835610102308591239065168786873444380629108917764611616858759637019242478443328150765528539699297120031075714399370091407469134653329446516032171063581816327461356186107053887315342603847659280810693509327753820947306481522396220982169381802662093959023328097538228640122838423064276253083616037048198854954861784774809611015198123274523096387268805856807785455434496159789290150056616383004395395186461635558266315152904625418631141941040439221390189870217390822686034332681235375907771860299786076684648708431983039005322798577493983512923909917410087528983076062620867335776210931163461657816152941540361703160924062219539958351169678090481637012516092086347917681522129690791197189937401383662782400633732641773771915061760513505420863159501937857335787588861246833744956515717088515826446844517012350950622093366254681315057127537435180983199126880552344783276560311922227322557278066107522159794725359085532034154896300200521715185781087828188040563527809205694110799884778356881678705182264961194233762086424962173752074884720753389326928207274525528697152680663318363136232831641288007440460536839977415588130962935592769475496619404534964627695600693989761896947017780073644075200222655547064656577897340615694741630919526864709461069697841970818102271497602968552825741085451324003998173442469184626361828457138248858507381250496072489740146709286290391036354435009747811601471028973841972077855074230711339759954731794729750044180028993046911094201333569968380411004407048957945145512560496379129793073215003374209205376158880745233830615782527178039369868036871083331197733294869482656605326198422728513494750149547739065826075124897663969931278704210839786837321464415510426716921402310276433075331763826686497708596367743880256091773743048351078881457843369460202663272564479326610745050226813368777595756772835305668429472329784287347643078063767345944375256248847309677320895852605130401892690674756558939421510379485182299922219331474921027312832223964992410078191254254503268750991498893379138164095118877656518130000522978203875108890422099002425140087743161305473687213654471612146502149250114936953260287862531315574643478552988940353611051012168713616652916353706323593748902536205353858743717971025337640631739473118819594031083006007745251300736150771491578334215091623859163311438602640307059352385751049337250075715536642703788565687056287421672195101170708979578185015115177889805913138933597844881233254626827441021082061742848563438733500966094880025765694679592673497719047381457978117229423960334082545757165848899347852350603623556530326465410997771086198050318208267535614514835268849623676092525973848634975446115164647020756836731023270779673421272723739312722706231182346501772104653476694122306501587968171639249863340823585976155864056948391220201954014082185028582317958963212416578941250846852655333363365636901909930903652752765329833393896589540413907188064201090138836139730783254739298054321155121642069872615844306626783526458836873505145185610163782991812324953569113048042044770610939634336451939187061276393972810712249662367725769264169654974848703538912636199426257428016462224057055797660990858559170547637289490874545604683606286611213961393349271286958550859638836990845596868994454884066887278427184137189042862612346683066920576307568422694995065450336681527427744988650504116167906947368104326279790364190085850965297017713002652843701063274351541002371450562611262708765060690459736295734421316998125432331792664902942404257852513941849444464296903761909614247182480112796976334114860509613316558837533903256987662869370217461208363820256938110296857782382660518145118002525874763449238663052170073793836787728102102713220617014592794964626090292809287140147603061470322306100462140459179129815751584525825313409778343625033127226969238290811457718407347533144105273593143120724327464330236201456416225109560630671317376388259741344359268143122583751682247718288235971730901395187784898919105998624288620334138452468923614350043735529843591577969695718935056575225325713589181999134929520701371357091162270955581887852292338071995652656601154938273018065328842655330417928498560905806554507250005427712941814120568367744327393713993931162948622898167769944877447976829897169295562746359152204623519081158064348032749435507325897517631021593778975451949536017650430062670284936435038862558185582851771360831779732244661698020831258923572924953084505632496539295237470045334900215280397477542950352658868524695746902908171545360652945025438826533529026401259561050306696188526386933721396590669448117663308757554361501207833040978251013918267202168745869819666318081754362217645589190729759215579083182784629550507024650044697937529968150067650380289443180762142090872694226360952838265468419106848790022009025841560027234899347213144974712353307433558767681793606992193515895597689076120412327960689651163296948008535863661486191921420798099179064275647741512503275404828912840248979541690115690649144648315864357788699861483628824383532472794260219181929101177416512860387619688584082815103052789934864272412331139754668143212419287907258536238472826235170998815846593060580566466870579254385880508325562060903352372824462592892765056003117888485135301197079054811826093088831682605847493656486435879696232007221895820943697974100604807983188420296705219206481506488383360029915845663795709755833993043234873787972808908311695469715277896443124268362192696194875792972158667845120580282048035974383154432236358555112558458205133766802926349815797323565169891356366073492325052352749904922728622444652430924322514212286335871674231146667833789606728281411429883471496145385549108124733205555739818328358123142558732567672585834588587574178714349291507559286981673689695234548072810560480698996304191049786928745864562831903541208391544214657639596841933368362223467296190763359533902887246586180926170065145933506167120799685545157856024159975821147549139086462451104645153236822105760595278037354998987941368949426048086365503534039740288214112228805305775767173417079754819376790727630091738029005905766785023143830680579529671238795420050312772736338103773828160984377907577647512376497312584570781449560862459696009050753321265873974234838292024032080468913888034417465548000280687983763054034856548654023289580285521778854700881106704690711291851401990970943366940281221692047918386479629724292792786775746449304808781948750992332076476730324420656971345420319917919763649805907927713906092711741297325173710237031127227867890063244591707462479723801195238400917067061020508262811429194507057219977507313205002506249036899899055600925920256785196094496600217916780551511293385664877671729221028933045062064756090646132454036060738522996843051998585306487802026098038698279382741998896554702049489667163239431150983598614004985328815294786709665043920892725271283512098126304980059130083463389595940433572040771167470526073870895793077217168627029010839428719115423132595035960651383721012123163873739456750759192884339041307938757907904040075290895669308729938652079905953639659503308596860102277011024806241140389572396459925377653864690485434179856121350137248620962106070569982769910433381048833964525260724343683577315140873924991345899009507450273529427843751480278099328037497783273190347641887130568676023848248774286037544828428824797841808662735311934516693399285005873231862079673934557853617642142034177068171195259594279432862677160191202525754306489907575173587130803298268228144157817122957554176386640579230436731578297378518886920573547696033683864432164349673926089468713579147942198357840142902066045169961755266988873527482890002436864578921561951304806041021964799789316773459518985721221098764598380036463990623771235074886172308525349539397280555334235573437588428320199417615424155069644862559182996572695079726042885912651352692063656843556031654823890902378356451644447067646281995367479995304621081632550713427576147433857628794088271059124229092388345974982125285823409753760046295110897387874508581958929166322640754452441011017879921398949201540703512852382494716808208717234115485610679527126572652435762179327070973935758007621871423093192500963190820657750965313423850651803892794554701531499404430099615778296777596909255029949809351912712086718306289940163083904334015903221649732070311328692171315007427586618640896836839447751073414647574511774377979612115154810006209965714391198996648951709344229220225203564295097370960493403856351448602375383683192370000936953826526880496646182897523787609498823447559031522356747081300312461969226955600147910247787438626696772712877882997501379474664500510730794194048172284598319740229642465395535661913498597637303430097841526807322123360056252872909763548245687439171911159467195984089599637336083588565574306197234961688895604300309053075743704347956136053581207843242321865576600840730416364526194682178708607487371906449703874618115757998116522018134053629064648420254107498997305823824485561620422488569490042738858309034677246302797261726106324030443850058203351462709163950520470135004391118618207883691455404719069178742293159738701658704867888752268504487305559122849459130563280042794355365292455334027424520032411685538500836017079150249578100999791198731109006694763338228538261012140167808746920189016209841785146831848372203212972023963490729873896710691784945400512544940751180165787534830016797531640529165196180752004347712965583191044715172155797496032112099598953205448184717558996775902378247072157823505120600263538947854516979819838909396423401563477440427882221026502354574340349940800714111272195319417266060487605072751145865808971573144075061731956564511840779627135976347719934416459917123422148014616795972488042113086270593661563417837419616269787956470861955811755111028884361740408050050559716657324656267537931562199899963623570808341606060158981968721258263001708790021665074501233727131059095925734364809396171541541560783287243081813708773317683760079026174360280848412070929935074588961097640871522813898353117689043602730577657437347391656842070056902952812609105666186358587768468377510302135022327136222346810732740358294869890319826256204202201834330999057814805263780209621814971734935332254834972634549597598018756666579834002308504578970466052450512449632216591783731880129055425644530684856576312467618753279207556261034839441772811697462296983205237308158020351314478315929564410391163279679026502976528239920077484985639024231432654373924865810034534480738930632101314576376857799668932757920632627755994099326872358493018958687759378881878701639563561570532860199949584677559676184961374698606995315175579498656820895746922611895016649604289387288571193165301208927731415992777547013022982143202214180056701386516500103606208189329556254999994301889203443858213990872707668435791855359737763677306311295038727993661149810060712022473614232752361304685850016154851651554934898024415389221925877600764233554145330113570430129235820063979100414686092470978010852861654319410728927572833307731740737933962676670120994443330367595879633075765725982096933482031096859103990648594247277344609489489331863484316838165366640065810174706523114374995332254486103412743530377434566423754775564769315627146928856470053006131836168690529404980965569860553041904790803857761890351973888282547610581071489092984088657307430363518531707592557422538436948382594792996967752752706804918954946780486639613792820907390810878424468407586617324338030752540635787551459542488602768978739151225815722676349272138780960743122354967558548744083800745576788548716929105400914265840220864824271203158797743766074541153844519797756496418811860978919913784826526690870527388383921710701389481742898550356892564701017175673078852158084096621486997663628311613662371040159211704146376562553038811421819242767260616367388961938626488287475817310042383546610566720170153108241402952314221928676777696427233768089892152515686715760050383508923536816172574668937572062987850706436339711397124528231780719796863922424533101040236185245509487047037151851670022817833660048091584133121662668526571024139540461800328347654111675986876700707743734916741976556542592803165768043202080632138549691247050756724410068664246911805183439104794353211547677086290350358471093308031549870559485999827473092830277900218577969508510986867834608988357913461865592424888950620879749533994850569145088647258675391576914904122861067082468436961724531766902947055238630038383689228131480320548504128640457404885354596010698222946616404333579126326515798468798626328277800789619919299766492607374843550618022404489950495173745982510678576398991977389238199832943301951738864941702967561938808669857709778019640979810171042026252127302662845727455571068773273690713339424151614608532084305264862020073714827651122043785239031047496580272904636760503242805296403576679276550932835263235133300502246231048171758147030898005095221087656824003104740322202891351865753951452918007426899313037709493287041697451944955406994380970253702151834381822346031945936511755031085939085837059032491529506720891689109499643168259314663189761186938219778122064078734855188989615577328201492620097810313891430287388905278611222009905524080186820982337330821233397314109384736880482115637551625908472576787817689628559353470036847142875124520586200581171081900526635715731340045766421396516731298819638511816800911693648349512802214641605731996250243813388905405489170105458081436206443979042296738710075202946858995817394370076275843838948743099653322991944936172410028232433801377808456732603555803057258707219846134620204703523028853086914117951309212837997716287279784386020984083348547521254449643852886090701602575187231112693159997000986144348675528245119092572630151389323128554125960904247589227400285085321582675544525651025050924326988604468019291741132142546791994636436474887329359138737372179156037617067145238396716114269162458216535805389253862095667158339955822494990854146399209042603006247173617836061453751614079318721778255613990822817764849821879735447555912795180355644730019709327527160083145158914944706600210708014207161939300501593193336862453839813418432011237801777049218240195776721516538664074679241123251186436228075342683038955844648014848582186883227087898596807968750587047968876470138680121403852074445233152605448798537061571661614332081592477053705847183968506440023036304917389963805455234011101175592893781437296340007086280967992793462094881938792113175818212113432116770130117987754920395759899306929560847900176826681968327609266783295867478592935395203717290897140199391009361011098817347310697064212932127147290356923989463993857089674669793098402608610522888681227476396261632095855151401298176893527917512399531153198176700624741036910907934138320305705510135621567040113390599550075357011374540173803467283137348237003122958966654335120220396667434479552850366743334840714391004085956946423570460021285972553563968140717305744895186912564610330669683376080688575849907843888070149845055575591032011596738165645274199806700010958960911254175767184548456339982137371832724165967274221045270346404848900661839393537460526573486595496649113432837679760719717310288840597284382195798697538467284794012460113294224540771833610383175784842707080997960753692796491049630800343062502703152611718290009832089574456049310275417305130451226996256139760317363948572613271438394116239309076346179994419060034146030647861469806217867140734166492305143044084311552766795821665738059598827310579068548350649374545069223935995563624495473464164929238237123295614026042723182707214431534638087216452292720075897102290055263730695939614599666757128548836163071404568512755796348455451556602185483531985701390027295457315982483480890244797038165084673330934821420362583072467511345998502674401031969447268395551703291194034677023166197016978100187404140779395407803869241143243534364060697732837490355676228548158003714631455367982497237181369412662518194719280466729238533767737700448277132529202121229283935457861520833265071542224970630498273280547949234551928469511528689378809467991407871055528527283433351617518573037986100058670546286149151467863626826964881736188149993442037451288195483720677932752139176967227567620566073666613340256403875461452878530826842306549956151548646172446347084246415923740309102240374675146001287390498723689169021923850227818940711687223006859088365288046968700453250449672217347499530541690225882696485478093869693616065243878439522148670064396461169153124358152423280577940436493886642792900476662568002554865164823299037279916824077177502327833002269792614435073473237782687277065913400526172694307794329766346111461975673595980468957190986744162765794196529638489318660838555900985410222081139855923915275969331370824704926353346219943619889420086080674574921254267695738623781701837595595369740964900284362178270804501676200208991920673843932957933832524461162301427047497634154625011662979446148785000586131694837354271674693548963664410184276291352747012102921123908459384706559332870263611691653131213070868170375292204945613776251947365497025338790086860675088672233664503910546936137467241764505958844810983135833979138891837132973932699809479282533169572766028401241392491898288643307640595314947217033247547149031818619566559312411774875901717625031069167663062176116554018321764092520597853510381158451314796576351334311574550956856887050657411668263079347492339480562056518589694199984245662624720373292597454754212891178956171656511645366798522692947122396718175697134881965711413011837751752888011802414374878341302937990089470956418749275857074230154848708661130655717531213102370103604239595438170486933248551032270981756213096032610845539861452091417731906428229727297926482685103089438073198236780128347950474080537356967478106127985787694149539725753337843443362405382514367814084886279552929914665293168213605321798809595638960806695623961007405646649228169875253658346361263090548080716105410077232953438808180942925596617587299332009744851264198032582057136814046352481250315801118782617357040591571190297607268901655301622049408532266351776667404284753416055721446993573872968381166670255943188563149349313716226559102790979416932129105003635437037452808844430107109275586414617292018613716653203723118895306125044867614069178466203592076854101455725318562730475833242038933963197612814407144226750895949101203578994454427848419272811479644936653009204945768086989890961417839715077522328258145717454742727406128022766584649335916383427766911242945269322738681110069236736554712408713779990011724114279688241004232527445822146539294944521025970366174266014144009448375548958267703650460893752714393411942057234849791033587105887890926517842620310895665433220108700386222883553348042683084624990905503909130103045308388706088996742243676710665651763674163443373261102581715141931364293424078385514438911973867376588290175443978073211301815622469911390543692612239710358137999750693705080664265935209164884984926909262741563825434736599479183358414784200198084797053511226539818771313822708955041107602057783669845747478619643910501755887698244327154369334475281047245527241894585371185613385345843666883652145430319264158387592307842102588234765063646482305947425784635677776968301732601182984370027222886446463688987888772551659515453797482089341991853376424602167797271675238592183751203478969618564902361341280219341004270215999517565635479392422315886532841812769134950081842294867938322491469955638348296667529805586538480486561268989762574220982724234631498270596206421282717267420954387419319676174126383504714408884177129260725819936382114205455501724367224919502143235677378434334771287344041452111170395090345594309175347899647168157197132830436851448029172688391946844242465797969582273588138265902128005961860062480820009503468488752314531710874691227373969928369091727352626342575665256910427867048030527044960564894120739993257626850618461115278589877620181499296470789298819806118552232836418684341678443980317942703014552304899452846349728363819365497496115491185081916148418096486812164761916721380506135187023616043640031362350305167249152459074259779322911567528702533464106713506138812113254944041863783919498296041964047213884431220685273553816532691255655636700246194751502574791203470610922642549020652921646302478428833360646229445152749012187005921084174821765754884224957519222280427660825421973987076919658113106891076511057177903701848939159492750858341816400648590413198844770155391521782837256434074401073404556310043127052914479606006778688583565819423472995805720159979179334200192941736406905320553031043524853658850387074193196285636723924914108201431780933427679900251457216006258698541794400235859076487565375072859077337152162466468087483606793729895911849210545260981361417786890032748211479267049188724418540801720259761736729888737489886802241180658090994032587819265019976157538974063588341947270081418933682173685776579629868589600033442988269708494807811304409775248657105395563543132434779867984795004800254704963823520794099359301275934411716674296436498232454844201055174616868234253037139766988448625543358095746495883147741225995876260110221362601310580860901911472843259089881269476953664821095729800173416396688769480811976827133605928713259031729039450502542539397913495717887391545876218905440279148651964867956438223059723645620703193737149696644312452802532990682703932210965616839171147882050495985327918032132030253767091110471739714561193966180103380316605397141303522301737679942078560137666107959090334502257098683846201384797233363255111747338147485188074801860149154003118432277577279513671393383929371596343270086502339277785058984919523328287926376870418328026122800991754314340008295148489516861896155412908985898061915548264799878912049444081771086669490797719312102388335311683926210531958430966227830063142871693386432300366268283521752296363524781384079977993921817091466323111641633077226492893389216478512351543843067933168863681957641618643669787572480722574190270103054142421398504708679754353461450927071283959476181368394873754812969668212961908061380022276867400237468874746776002990805431924156738315099894518809601586078846671880240169505451984343243390001232324907493864478046570763929707792030181233873679379007803222124756688801010913918745593268633036664942296313785733130143289683284238734686743345403882768051029069046517437202667984728474778795369698879237135723750759049285012456069940775342935140896759215338675060934803650836484204870846405269935994408403633709251974220728516607677062109972795321154505941449234788539550529728116949371988906319874158802571423725008309154034708805236276647383983771518905349735211484165945374277677925592461283215417550387770527120167567917829493685203449691128019776326819432364313195061544576271203532948307403916503112865699256421243647974932248980310121524141329115223678853367086015333892557540636275580390412410876650747722220550907692488206969293854879460401800081132250688116755542517702039746371908313767950577776547128580353862696823248334837516887738680213836625916766620225344511819017623356157375852612752510793484630604660029891969480985979664118219779531900407108847650423817326677906066946733450265812688217944519121277327263969197559045524367106891482744966110275924689454073055294193536605061065270268631724596408065704768356422327667492700391414558544040465471906971976199972013822020970052009303921967703582986288180072332262836830554802148477947731809439805398188247292427141946866922338673325744476791998849600583622780333118564727595880356444377728603909407787976866218552729987237519816863585036545040023340513008383276767989915726404461522459284965314998237723992321553548332663482920905903384327298124086712116987742733477731596574036686635042746350665884326305606483689077282614655095303227692339123631805715703346685629052154776433663105605765151744382804049488429575531730385303748851019638637609453257822640415494209644896862154285051427418728589697208812823028744413001277744694173245545813312285104917376781562375345959335932897922021046541221111620970316827248919450984794614779259158147396539243720869054645748053487661300206306337976957444021407084727809309226042093316477073746735754010386821801220940110630749964915909424635474019691126323938925399561084902010893922338697674566571655536623515997796751497835672263140804528106372395902993990566030706039096720013836835346416364367480132378668692432614441161703509791865271558071904860169579863753991199823023838498889195713951646278233171153928712238416343494103474233092736342643416658764903037058690486039995317252363008356723586669855378067781858295668487397639956018942177634841110594920749967592129998439741710589836565460103635408069381527412329813172443780273704884925498516976280865011977195123042324585309051012814412378166032490253313242621557050905928513593900469525536978298794325093596278810149209675276737162564829618462259679432775815228378535251842988215826871629319323724047613483940845469573116736162515536759346823328282284849864420318498640220848680223885516334027912718028652025023502846916131145025396571357069043869816399056820026568584533907589980350095003718926946080016795667452989343698976200364951158025252874609910170245096825246407240926985663087100509144981794884763815544964620795860235698019452632485424394938756803949378058612418775338193472004101339963729004205773273083840915657838134101505484182102570453617423023394415941662798139214553007913363184348337406226787550931792502701561828963064306446746452645613507002655258239837971553025249601385752374557356116883076415749617679268830873837820964609914919979214549995149124458947250978344659122871049959899537894269948244926300861738626716258319436763919534701356992451025223774999635485549294773830114971310156683579090869037615249747270638280377311799846617223895784751940920063022012909464863683497783948711069045465193288320357391108607055452204156967514014856338842365818726990092092357740042898055539479966101224346556009630125874937721029942536262462687777629473760380619267406705342972936539568458776872926003664554385723515783990000480131461792949196806178029343610475718056715819791494217647454397223187383224124713838529476943622586914745996731763358632686953925337673213027166928785311059392045781424962893012324298360447371759014612701948329779630647042584793569359168089766748069252335510259945408078132183757043070520016914327114320799069480171104822385441295678443470420294937735700797026338209549198271903345567754921440332979179190587452107021569511946645073897340814751321476604448168676677649705211065928288983256465976081826270306917378896781715731499695595183674160303949865365306943312582404975253948691027098986030720246496096068723313751869955822624939031253064993687783712973940310243714740931599709364037220221732478084825582160043383899960041727365195005344326105021242404739765469509843817107889761326874545598163670270266779297579165705624020916162974758231247480680760471173385184598717603264141629456155949494909749484319736574929826215133776709223954818064513311598615501763900472474050355500384989444623637404356839755837853185677782777987886764174468459786062414940776616011995140638259016396366322353832834189723756274180064467272015231392561856109686667018508119808626015884493586646906579625476056809008094924774459720979096506767424497712043172875648728524695419609267832132407711164128349930719455247602503218091147216917386297167882961098728562810989211574672679518702348339268723867507337464173000102854747051443102974276564521930823770290446842362517588804778055668364345371276435285645350641377013303752389485544688437064959775375584190804041927494564879679890968629818080734770087173197172205517670452287117572298492690718329065263566328133715948505088506544677734175013697055429635377955729622530484740298558045441244407629694295617064726022549178247197552181301305799601285580055446870398914902114776540303064980895751086316509072277472892517734541087118779092146498243150008570101321890097987608826505636917954222534471875246217031360403873014682038601208513398824443800238947893985566218333762115560480963652181730007657014033480948052961968980382510099532977149384774497164375800171751870273618300711122456999167513636125029943064907969991620497536875253851173998037676410657222630657845219834770935253143854422215480554856254112089474874361267954004626472908393230525055845321353888379666294975139358740207950534734469140528730750845781592120570698575326056810111142852352728712693403179806081602197511373637972802851257993864431565416278345758984762133809493860837633127030598244339249986294253178221946627821992965990207554150092932746308470823770529650473352457065381291172952190896358943126527835020375694744047032451917087893472283920223415164286380803360802338818673916645112128904689132173676258299031840411939448834520853978246214869922067560053141199332225863009572426222000365857790924567418133545302967535284759143558114656433536371729533207605357605516132290708266387118686661522756905909030160185462057077565643377064315025249952297589018918657572083681787615412451687786860203728983486039480104763591779433352325521020545306636228876373622759829462485445485670560634366628283190867427241196562215632109141901722038713149926471542005449165374303241040599946806184994691033603731405301195548581316230504298358760901725707308064996574186767064298375358411111343648814529592158118388168735393055571605700351049095366155916216850535529733114154833654478573117748667136807915272409411021564560466308394732284281953792132744716483308683986512156142994520673040031992517898327344955536705445104341731231971804046815001493350697979058249085985183642498705994972211606492780974761534025589072903813458759142208993404251788238521096954442224737629710070040948528127180121824107190227515112393420003313979011625767982615438227513305479619487181371326079124976497544484418368202167047962099013219769491607235452786542629653307459781629875787715172639347967082425280216361211201495612156060100332729724517335835844112256435208255864864570010607089355643973494044834557867311907399569211750304488549068825719981841325923088806096902652649910871541092207781300583089046514975414787539165526871887803090613866282329779675163637143585082832983687037430199503250793810537619880805339558895910540913416720266347918858778380020338408572521884100177801216718252800735378492102277571576332175981774507298313685935094999576772156594610590442274908363814414291760834467093753294687344999126713408009429378586780246053441208695538073224467441075369367597519309299984339368743156091767148728626675899952024971945026066721347485300297310134076477034612499771959362847513246227714302569983304450399957813741350933228393558994014940509687078780665253330527583416591216956051223164026554196418500684113095175914729778703895824220693807826580723019358536912357884859510212869240825147484171094947951267262393839537894246629201675508781081540094733167762579620701054879673274856391100379549714174888435190662158142869982705906455025312469672730486872335648742053835763031658537990275287034557784973811201651725401595408171399340510712698822846555249595571495419048337098194077117324840934533370149757854006765786179279559731088763793846636005457937384749943265924661665854750523863348725713120520041987494086771237297682607056053567991944718711275752157614539360497883649951135684532289577305542814964001634049991187432810381426462728049509317829197014945845668523410950339422065726454352715639783573226161922574798819060159566379386386314413794235569966228558530424057322843545696064164168012991018698291783808344697977886131094679537757104432141283996541699094681980012208655901041109023373007356181935535864479200203903155540289214025276759001786700341493452690636789638449406351243715452845305778590270679625792831167524761159299504721698324828172809068182454016930969448847148436533029726366079706149992925278701330593624101393836455219657086054928141136356520886692998538858838112088179964326748337120621175476928118658392710721425555448975263285647492850417529970371061612024775350616821371307546902508101279963182036093038179971870787268803024906121672087380559776371025039935266294881809626605908904360829229487544569377815595597888608988066095069422332291160857605917055977250082197666015114291118543028323041655216799450325928705483076754535313266880118298827144057513280236327991241714635360385830735442738953707012527876083372353422580004797103904454411849789083028675534505417349202517275259342936986722326264770901074391925785924633335667415652107734517862079022826272753009227580168874253618601450219379300505555131528768104195871242110325785453114174852162791388769514245021988333053112572335973225988293533360036138719827314427648110897473242739383653607005233442913679572479966486236912911412867250977359019399696698552683573082394457901012724699576652628654029100334397843887101425679514198657933336224918612355413986585420602625524661394631364298586975510489913989354487577865533161683456177723374328962404631503837566246010587503881117610174169776345121575227387699991401039870350031731212719601006921916716467869154163109093897499051611093400112803487837971237814716712703864383938836137178908779565730445234128145263079741632441487759646709975474723201573017138464212988458853264999519263499240737023382969954854872318485731133531995451338661459685273592674349927796765461325328013693438021107426506273445906051075867646651769689669429625026381421874334246235302065745033890395112945981462887073412308684845943507998752676340602963294310579289437340746434840566315806848784560926884745082081443299377443674239233746800867064342790962302948071473010203446748377642398952454849798220278233787398594376288405679420537807037561596751705648626642804136277711212303591451032630984389399254350169040718993982882106865096557475960301697333212296346495857404419007851167926647737273230674186648605386066531539558119290040328691669025624399108699049315257893272825851802503372345177401333572469207612302276530031140683050451375960445756109412181912723442646544604574294778312310158600398524201630706864955588181452801475977143507654915206883950585600873654424106123485869089837419644341146313737877174381947419048507647743288861994502842703285398851905923441682579318023969721313670765279197293657653363482685191476350716739492328979074421313517276419207650065504434447035627445342634276167328670736931579734545992681784816618213581666511380837827815163753840345435564578685950150671050053872251355731464721809099432440138901136418690944858582448757993882517710556647347120230271444499014698970316972452406619078057393221933674018011393199146865203090298455311802734127014023311394614538090419494474386025877632730166401010237814825417664784760280217491967796981228536796747477460446509089861897418901342790880627366067811290321933298225611736715412732504291182685468692171140630919194368948522266421860658661992245304818188040612451761592476910967490023894370388565141564037309007117339946949320312434732074207716631736501445715363921537795422815320994049751492879381315226372803682557014482804093378306505068309982139826391788330027502062492419409170214622633435199000821808473613010465004549608538977450382027230687807507994131351128524177538361116621530724293047132095497869620027686409076925410303163918415129243933097903173743598709008676392290465607909497099714260100352314860024069583405635387546000749287672397677002697231091998523828716102473593498513162326680132828537941630212848661405341843991102337612006458754968145709235059595755423281566545401188251199944904592313985239505638024331458359233829357691104785919712208112243874756114109608961397501611710047324263860834229168934761321597698722185790728097451330270682752495499213683955715780097592367781340447029826013231847580058722381966881850836875873544830167998819422492736899811015133333776943611348158087342976914012828862381174742491817794950911082273195817134687538013968348752533215626425200095736340099349734350770478204781808380183184989507176417434017244493608888566129431153209154674582166912774741647795060518297325354983980165756547570991930320406443126042216106038745216287347257964342170400493468180780580068575842453477310318919839520774239860515806661882029356146542705472235868957316070171862645501339638101987924720520065547653174624270396697239732118866223415712281328520271438785413374403153083837542394567804757464262147324427150162151096922759230340652172732836689341883177749370829129595369353122935378634744496096696492483831673006316412151710433378321614208394456858318465508646015601134122473589221216217234542033690280088682506029697522002957673474532273178123200739968024811989745815528982935006751076609528568708259733266080428214144212258261730455115217969114164656899911772234757512387786030015996921860488877013592289659619437557587841517739786969538522552122777558035300486380027283168219808212609433843054572682844174481213040316228676816387372223615936598415286760078102229070662983345198245854033034150669530797458320796624739148409059947208013380073171149103328907334330504501434213355740232467193101760398407052345084457455898216021611687338992586057148859520809549214268044571738099292358489849044691117166533481178115365079676428092573545164873472032510864715861665402402836991962826817570708784853991484739115450598841707543783502893242132914290342422069416196588416137077719044113872801896252402251751300442587906797264294443115964022054605038971954929181002501980213271441397968771020622797540591830512563072791923862290356448394684775050284535559175416748351722783891610807475344991708795121438879781646548252767429879915153773477138161816284110234679963361654436317364193601965131881449075838313718463772951168815763166662309701152902047751454401287209068411666872501190781883072667392805445044126300772011980646752740101662961636707673973996273478801909749841927640223105330542614176086721311607356884936047752412887151974943498418914442709364270317384635268824246245494040951606261119473626148632967051647413626184591998334940876663190671254621732467469342601649306425431152022911322594232228258673799729456581636594880713982326643664448741778837814633812829578979771208311760743513816531729582273340529436552570961924853258894670064483284051222111381682921888788611664321026717607539253321256824742870870592737379562091771444318116662309232840946297250353292207871675206203888192166818988606099170503845271003439461904615305634213695963275747249924820799913657100284799185893519662458377252079219090514577689479204722476181769227555946492168517468429467876088209383037174541922991889766612786767954677428708561488943514120187827338539502223398610398713867439911626238531187950551615041769011761994799875901333462693266848097840200711367969279045655708751126647330739400025225572076811774055846521493462571084568317674696910761666980285404061164865433288219463112783576200022059044425287529494572294093192049870702770394016814675694067770250860790245108725961641954979311658502093522493866641000759313343783076057736386682118207899613053762332113036488672951250398144215807425637174824007005127174620941208666487123284805603339876632339551433629049739625961292438194725513879714900516142899990599537267590489344697077841271953583685926893481215707880000872537506679036733139564281598303393477144586112768381534233495473930363927391499683584383542028788867546767341772010395643571504232633419204672272750451648616858164740782992184223727967571497576845220301735711826111332599474171452761466267853633156791283194194743847362018519583795331141358732862578680706692606102540808495507767874904747760688272162871732175776476400732092982208953621108404751003010327452466163401058911386438381849494669006610637942742870948667598388996771108646331107404822011381190407109032256109220281930641057658174468258421599128637919303921743642580527051735856495729942080545629635570510915353292414675066792237869787952886122841544172813647696289668828059381070436397490680517000497940853709452485372713938532512264832496068001427948535204842751342496228804439458756796678548393223221696961260805153791092613415090565728173248111189266109519446780622910763031606029601757986694210898916426233479759626281518694122819161680923065030552283595020314464696420864990129592557465530683377237887895699406770685773158576914069788424010745697173559326995087469464235002559346661542725455853607119433170614353356973975666909802336442071277014330267714753874244118779578963377992227675097995599711059900407083791683571629521259152897869947090619814329802046363892715351668403971451729608096956281717910730791800347385407962412311863743138365143482954521163876983308981499503871609547364029397012122976567372776852536261761071673927018018045297340330376672243008522297900092388837150922829730866889954664363353506557077377913592645875609299998458095049990705676658149892591499061495208790601697403474961189674397221552813701458809395276671423316641639311787667147624979732021246939074592061684330483301905543524256911179391702319187546959674448808869710314523050018074833501672778293643230223667713561010294169198990690393700139912941084888898017776278933342844267382867789191902791667439307548057138452849550381440671438526622183213865039045297768520654850134379569559634179907145643756436113908787384279094578264573801905998595583733575679712575692390277440060392785400550060947940672471790845767697704674189199064737954412879966782653934174994250353313779510010058346443640157687042475808160261656103831687702699558962627396897794887468894792148359307800748187289202099385914792156886689846964249463736598511428319701710942362156803278061416482480235299899194484426065799977847480109531946929329956879030875103495809067794901186577684759284100466559743310184677092554652356141304009620947266729174478773234486924169118883054713316132680352569971660153232822645207224289416834573645407924496560669826855022657672875383957483063024996822063920326702091233060212082938913769615410074687578161132651950410200100325084789047023896143853355386958453808869710609591602275262833132608558199687663829579443892272524524575595507443009233508061033726618079630327968101436763528581941624263007304004778509440728734815588710486989882992715698844277681827998412396830804090265231049159502906147813415058201376305880497419708579608045107507203343877314716445019404693273455574792759134079160682376073427859449309476805597558211864832808204880358236938394684588360102924736281753188609693429585681106116718509566659088652822198208434775466437800862936770671155453368168527269576506189603558237414279703932970707568972072682526681579852731993195025545083755185827639895368772317095279333307208555795371830336812465473541276443177602467615375895343798185512386472899057514741777535362574977007748003682353416413294528678250958535036527033621209127676811894266408332027552436133233789904613980600816671220751516241460522497711347044823218316471173910376236301838198872598375653988680475565426933290045360485276400235369709499781962389239646760709998294849918118067885542481677958944212958894745188678832429247465846800744737296688113816283047890089838471800310989458282334105760949325746675013743103585170697173318051918591255259682384651210782335426754457335575807095931905922038344362496721623488957257634199121503315292916215703754612767464028043968258602133689652787173420682574563331456775612657737608896637967963473608503833823615562534793747350815459620378020390224064544424061630624416437924013704751701501359835936309673419419802524982912214805723477325571534202782232211777957903850385322324638435819389509004472151390986813492258674683171922025638461903380627972800483713515118236908863493573346651451312949326960239853930058314332758270669418991963485503383491694232317207683518976056308464096278519464431049334452086282301091630361749611208723946152797022133313448513788006125515838866961386658727110755242797563731706667669862860375666104936493538137676194401224295011269822212896645090854111455896547736913796926538505206669569486742992417843476736234079215174614091091995994278486591844002700279939715255392686176006719211103516530523277177528838711789089070847208462065307328071682528395965132053230513160386749687687998631657334738971405775910940458877293063625363851681856558998910736873449315889287652357815626779241294963208153395715680361398920995261644043167660249629424605490147522252693462512325654527493560239507686054661015517244037355426143840013210673164871759600489652767321970986215898135790947897896048744332439941569826606793201290602436350901038188410566572245256061773727404562819241080204656485215280471750305427873685429671426218538417846173263694199357693836193186149372270108237229234464771285906525080658807542443769278861796391628243966234985786029610682438865113979386436664564292975385592202647461938854629719363154413383534513283291024411369285837995206427615586790281352833881643489439033537506186904795624119800950319323850833242784515786279675701914695827337806526466528230898303448123779429739037544758670387141502148774908357105238839078956966589139295326314190021564745298761872646260287021382694084349114580551708042784120366376253177943276362913042274654413812808842112130549862660441039738241082694530736824555551515642126983226319322858199159438450841222092289520290056469078411794057846132737531469808485737617667720000564528695492664297956598440402683250945651145523470769815320880489583586331842808395921104371480302128426252424270023773315742841368168001005132120915834829171265120758818173529886955034292719635903538099457147181704896631084500390682322235485586903473314134871397759411888251970543023100621734415170050160662367937771933080138106446853675320753250571664195570630049955480736730289569445369308579144614594636333829151570019990475538770284875431061320780397997005020234535855147160612389150996578214842480012395767803011110547469728839411586788358175086082845611448334099158946224588914716116329152713203576946192664623739872568717987204708228712034256003682359189795920415149795215107664602742843807759774187312737065946968941336429604369172108377513611679682771332972464423656018344394970456316786277099491424341404661595777653790293630752142438280377955919009585957926931584228659594480541304246315167814281387756218423184253477108803053158621262828896775567728149644017812275659607948766080834985785517799042455417363673335121614094711651155434318137724483504577859862260273006022123545574592127868420041433206824927748674410730702543692325000948367569817632479963295653493394969005870627632295258733105502452210245486773580364348807108707351039422032145276794935380253801581484168793663008845797544313996909847472676301326974924822949897077520676785199076321743401841205364459084538311131829346656702248956807248186279329006127553352695999172199316613286770242607061620184328451769191008272212673621505743282731733457705677441938379282515192207642320965150351311466361828388757471808376096994152791172757680163962914428192833138261610866460178755820200396592634475807566650055463477422466054300168340876071583144870752162479958487501126459458833229565185530170021777702071577182381260365493664469357350304568022203957021770204721225623499135860515874705373027111626824223542511014283493352349536575660128842800589249965341161478424499339986316684819035453527029397499238301452076238834831063160969458085290134553731158576421559824851795119783535371241966646185878831858249575067896005634587479870624424966076381494575414569181301516435083990624984350303355146331562045558384755619054284967791092380311533027767835063980771065797912355359735951482092463541797669334491135569545619032864511224026485674819064979699972342519724893413142277641787438514469829680740664255871271644321023239476051241151295399746053554279142090198441257085226021735263209949886447268805097935072539752845323303176770208380335836596181717326542728806317487102638004535288171915256255729905220435093960119934202560311320678581476643020150405725472005562844020716490227773317801818975974360221113070261304648616127180509275799951237934955678225266008885478206119943297715862589343312358042330388575552996825695114819964350767876387580462298188398753942741479780198713450668541932189230697564657328987298780541324551837347454995399657838370515953052109341105944516650421487721378083744953177435985712745161725643488227783369555158727722483295368035006020962450848644896458334733755052040366575852976883605353309651827838037168899447470083578611606554430197430275849092506444553091033988208347475528867374391284952329303962656858471553297363870116036091266922382301505261508111481868501708167294584482591702109080986259527770252662171880996945864481086375069742524411389624711354259342460777860213732833889206219434748270152249955833318201489798881418104452010233617221940884952590662354539323100488402615008130274194431433921331128384486654987406902642797657649416325241860203332761690131919239280450336699954707184362522395981928157228360277087262409265375010117399542869305665190402931801197158158048112058938294719857469019221450955805067842606029268107162636097378185535988727356182028857547225965321979338166271468029568148364786510473270428919748083616254533725591407571627291923580702672553582184474028792925550773640669971847749991933575440787624726137824917769922361836188557007844153377100167510307778590436434809490986607485078825131558874668475994908713835504107074991571288182697894120966755852563133020058438110440399754771257803735842053026938522278064407511224535722247069265350122444558642604261058297105965974582155210865490943998511788194453958520672069245462574652396298381609800842116483011375950184133198771702418550685028096924196323850081403947137047161099686959896310938759140977917011025562648334851261076651652002970379015858416344127602449657655609682346992089598039345486201711776073848185081107208378864612732530105342763697781716547442624925096453034110254407263673103106701734520929596971621635792340164640440518910699864896446062976019385562694698172830228208874918320781529001630161965046276161787581702738958526837389855588376360496764367890362081966384934700141281663822762157012217338028129791829914193885432972137872394875404914334869048735174879062050055228511238578188768550802829665453220379258007119321509406325361088098026017710267352403203125364393083510379059733038361140804665831721374615658055833402381507958408904132923109551674294501840055163650024903980063013727813196641252313680564567631858357337842848424975976144759124086280282511499741545910942151029685827910645556403159947386480418109936272643732461853044766020848541678889120244363190690339203352731445229299009587909023720456084711944676762319198925844564332306897117364307041556440028791514793569434058816792140544617555828826997513432889142185899812057969291087248602512521862270570153547632791721523149401386223825273220720331409781227896978845644601896477335218580772724032240119343765588486784543154133270639662832040230937890837951198257701841018965610642775131346070425414114541151345516437820912816928033998135743294012617924861541210998295854193357397958645148506161619515147811882447199651811954478700779194986835264412335240614830525775327922767194626300908892547767778102354861527759688571643940531366666480963063156902429453998551116423267966635106839532869083144923985911995247652672192877788522490607296936395042761223179743962041022157353434906465308601659312900915893987543057646575140845245625889073127918865347573800343049787418551164727459719727495058584104466774293910098943036314030767744163630036432997465400260060164936559164801809338893770827396623021078773572869148721953639950329506692440455019940081365017095692291582395118510025067675175361991778101838758236872985001298497445611207434583827199798940937017838942611547273886350309320962614601161764574275658454419793094851980761173516756859556034303665321874326934336602291044755484763468384131871363429029022410529267466116933610001066239669566220971851403098982829759514018207400501608051667468769471428586640413649838065813775036621838109377291595609138642935647911371217910337500232041201662572805425316715164773608067244129769194140371781763605233835386757492404006796585229978067428383269244908303853004613826661789452040987291963310336120368010375834870195723531669126716136829649364739249382080003409186780143656517946355924155793542983384572520875317671494392999717941477796314542335885276313398980849846125529237448226269206548083091398919014707163011588284889331727172114659414448353277212932717485296604416881664105631617479165148906822250694873160082727415322396285008075144844283765403700927688570435860739882983646400322786153982985327846537689718882261725211855734448638054824623125706430564781882509210595633622042733175700360209616611535716306435685317096124194612447051145799444032132167746797375262323237597246437137005585767039204066091300968323175858668436656599328208916027063756520798360490334749053593227935941826672816398911850455513530038864352532255895698258416007597079121212244609060074268323394243830563993958939626781014656535181231111570867060839663534232310125733886349892391637703841444475902236642086264295483197273823923385560830504802274395862978491971059210903180370038549183988053325072979904512093558991043053864604086761374195343092385153472822213426013132694715626686917590274500070646158259676806552658366134235162958632307429771816237995011160475830749706530792120403467468878702612573082027659823954537845939972428559432483521049103217306572227697029330376312871912184727720075946329619126724657923399683029738082174021666529801885304030813568649219736466647530570871642133019783006048590421598411046267152655905520321165151052263508218095997605459080343400876001639102511453327394703812292291715779262375096621396884958694808160567713302693788054242000381403878104530645295022664390048234791600596505221537651460627367388070931892001293116312170339677154696354803439048123884123284642569020688821092882447720574944773417001376141157790803905053732432671178672731811289368819478958569762599652387336912219088838698263168613429061750515509153525491513900555931100805217789936292883167094411309413260759098465561964068756617254341215423924617482926306875538870521137910972310762440245576513879500786340767372187168981555707915945364421758411124553217064140278074776976508211174158088363515165095304037724634164657917067362393193051667971001519449226903038184321796874300833892540032434899211037334002632778818614218685227229220198062218670772366079424326423177347000171139475574217454932564525617347494519535672857426749633740304202068407402471308449656862549470677036029140271910979416718817466702659658714124647882052319191668792971364326878107819834165860981036993679591743129383752411970199498406801909037830214324103993170995337381418653128610871677192699525150451783192353352091960526584609096793666189382470314637608059061188274637924706496960600708410781229497089393530194998014463768032914489179369791655285536102852158598097288501591101523707712913816551520058404177835555952343161004001049790012481783107495457251487876025083367239393312129494962390974687816925346929896163143659184495131432685828440910798201361332268203348307525755266881603270737493301625917099110517208517867979665060413033401284173452035755684018558949357474234323819173527361188912806000768852089094579656984895089912867224418242615571230487223668951214276171148803038202456963341872095401093543558672017614027935689793589525417774933989642989910278186711487177677886278936960529390178974870090885455877383157145568031402484842590889232812870650978358331975654956668831418241757685267913526416016685673090356286319623698416586967811836173209640119702632223843880906932349428740301596719534315489097185247427337947960701297112958808075822049654724098726964287651167715028447389018453186303874823453699824093672383092544893575008174587151164970327474295956368076508798373242878086345517669435706245050383051502910184558391782995534397282908626575338774899873557380226123228803996914085059701199860865343693240123378580339852381560166658585923420965343742760056248650883418520532172738392874216547034937118855977736932369926132735340267686568960926148027476297008171608978717737193922287911814510323069929206651686998324125234873289331975879502644870299760305940491529697714824207299585586031444175308474528689866756971649755536215467814849959209737879984384319006110527899338449510342051144782972306321845145443951302931361046961037927408720744835621747321492537444231417256744182780367151124463932756297050975967586365999205823534285373432245222556734127781583885373747613796628358825479381842577637045569592176753674639073053613152890282161813724270424642080463600615517767435258802634259850330151935804840137294303744184437071233438827992670150693288469297065990534519351484273425097104643510073271302608595277046346979203027416903448748281961133462526285648882755785737099766629559585367364256963382942976056869980999806088416526880856729977398648692560566575963102791520323875861410765089195764622989778838103507416732772889743387908332115832379278468201053172762184480976575332191844643110524995716506896025774967967097727986157798958389387969061277693249518865209838891832820460377585165609439505909817013950236729390511768960489635944670738206540855564164747213517694661649937692619813555431635051271297528786328235822341262079991091758993501562828678560953799946684295516959365752535323551520010772836727766116351097063584903758838489498178380121932261118419930335393883722381007043355301298935995943267986099305929258307653368811146999582059982934503268839184239858995096223397264703852157104621978495000744902414026684880470005655111517554381515416965958215486734854671992702554186362343521218604573437473205749247787643578767033992800496215553112491605502531470337720627801217954775178330774829524162463303154635459026293347562500789759463152028504639809200002445629646669530050228580225376423485076034144361320913020399513694635135770194656815190303032704781523978981564712225724140840096583153697608849716685379550801782829987195559682026067485142005463911624404314660247703975609860074861675788770446224150559619977159008741903070090485587177734869599999841630859329536366564826866414864115540589240154394079948103055308951279998052816963120559530572939999615836680609475764271317778842057867372445563164514208613005652235351721874404247433470820666683935959028378437234093375881030912451686946659995734837496848495488081822381842344411826831766645089404746499149857798307261548041834051585688300198465224595014888289193293973490117726238115394860731133527495304369940354158472025904156070360144734205854392475568711060791437595333841312223375592272182469470733526019198874031604725705238726087982218695940762042535821217638422442995148230117851197975818885104406610288446797078097320077465879834873179283941455170031388754154953185579900164054923967006112505168422549366104560424775892011093254408195051095980764559112469962501076560960875473176365134079529985393885348693076288314680248500860158877850131987236774422189177493678833944948657791301279242890819072312678318083423008539204500251827426347768987844363962928290271516652317299773761604841231467816965743691605077780389241409564888493862909277052589782955711132114235971023312126278102213012656037264064734186084436162047201801497576603929562136231352692529231762854124355683955801468085442534677842802042847977217219642420630436166013220640251687880751962338543178133995128398036398379392160645155251847941805957970090951394080119636121692556299140013043450932976685941403849232420110057738009335605216446708333751469918682754131724478103873637334543873910033798561309133194413603475071463493162899416792408165524358423382044123154613188394897945641101704922888407114660339836354409517823598741395208744130949627927022041157836503947008824795997359652135360341809304724818974820060491101289802313372885455611126294606357070400548427547928183678664234396423539348381227063943510941234078114107104173508424508438871984308609762952919126014645610757960611876929919224345088258513748721856446327210718275577396758410117138251115563721432903203057823346444548603376916763342281900921815037822599279537467072163475514191115914174133321171214913721645840977382294749911753733485716060415631967282555133828987230390338529705897152435834301202359309215456455173479730835144991162797259322236319886060001790990808454052655159129516009249678049208575248056740815338071653130921554817495786896602301585762144361719444880962297589186577961953349511540673832551058057726176980523342308438045911045949421401186082095095682228292410451318627323865264113396182172041129905607899284174085310037871914105697916871284557230868705764933099293087549701841596070990659318399834760737928779781958390520834457919824324499459022208715485846017874898389640421989945953145935031441849467258441178507551009270630214406046175416964154688147286835024500586152454861741197447602180764008329884011279744910082631393333571868581453856276358610837369684916183262945631681049895377513473684721742487621882502922059676275906282865294083895741199880091348311325444380567706880464967762171914248276466002586611567786024467578952992722159015392586480284216531397143957319335944288819697488635770073001130769380487176189821856767863335977219444987542334818135145186997145459448182847526459106489081221668962910322879943278429959729227548835076852678830397183996881710144847238508602591888416277136989586816614515594172056003100459436659392485120263887578793198623766976318805093184966708247176728636754614311832957196406967011413103513840395206170121409948738092804703650367930625796459929115997855376442123898262144170622982998477094186680761920526790982052915636854826310647874128009664223497077267818717228922306055115544556192821116067785906480097915158664393938085179642288287388262749085825345686732356825530519612615390115853469684465182053110217603674401809638102578631806001249842390914604019817184049296221686896984055691640594265182950576750794041541392185552526168303044471952762752276547081534478056612279839068589050054276043338682111137231382116721023218620083378237036557542495805872739899384248623487566940608652943575317011710095708549469790038502411464248446415854220392013138071815372274745666798600702800278151298381880490919785161762714335210844986198792265065021166038712709253456172069859387748944393931301240387722309592973088441109341753885779521177198553499449981775300266534103513115016847503851882059789422871791435120127409933795364958257759302873237804908441058795420641163528638090586708235729911497796281943268861571809562509661703346215175136286198868988912837929655393536165147011088270117233131743167335578810529350040113503275468828135622577784322363010961684300129319033915550253582669660668806464539524925679038669184690233145525989821481478852416793649450151719864781548165466777452789331321815929623238873929131220343112841781247407013667049173595121623988467953252575088692049812961176224121185415934558789156316829148438773811610123460800574336466209858825706875544548163807410737066074664296386214031844183411453628390451282787965901732588124498404818844130800214194746839158508800191384569488480948819581943167172320456689454986531834276007466478821491268522037323906742760387238424054534775959042376188960756500644170163853249124706927787054946782360022198839469594497154466795461299556179353987571045461771601593394295671803410520844741624350611917899216735014033494196123490507281857745485929160018075402759609830369252562478616886623437014537395952169901335342695761277763587591270109129089402330730478182253122025551931462787825621079350535035822366801649207604529605596780833364843813400066069831762998885473108593429094657619375692596737809932937129528697824574357748268361897108649831379345408394835995403513041299891409586067497934922341876541933396430257761619863230190794210062359226500225539301929127949809910104361857975171081775256163965370987243002424736320724062197520164852661480644139202399971326657089646494749630278666728050891295516503801903321107385459663477073953208229141282730131040826768524894200185470233739827524685648932922840648537736279582939864910415744467351862133030507508796381416122956325941835552504702489585229001216530686021032976577768807708684256279633011128609105600990434110723054254280478324893753305916403534231384712025051879038618725781462455179480976124353698710705512319545396740720125749956486056677236829095042387598979076581360777744884039612566559174141055824889639890897679725497673197007028068401357027678722916022955239919983817701024083669470043786342214461972932643050893719546596722221884871096682907098404045659712533818184203733327198900598023003182320757211957222273376850428994984648062690652958268366895973232055238254979479881406477873653495171074261434034424114419564226036756141509663438528521305679015972645778839836586668354215640533165658126962912887332131874736915481008405845101648445132709052883126559281947521921511676913677648847652533930479028886840700996610604359187753794545047316804816713143389606770509467010142608540866375409135266671546583100875760684321097057809804513176247698997771987849431542647956900043582513014745548458463779154305741066821226375331000397196679302672307971051035819708481163934004761399764908627761638626578186504790969828761817831013039043723994724935999819216709576107577219626621105723485698610243222851979924511658328641866509710638537569236032350537795173644844017187305150831145902404222934349209814800713938074242141344842277665717987976649454747138661974265657635623258633926070131322619988717261543474841041745422294066802625509798748289872492293227271615152660559644829866163912044033293527654721006282361492642244006889396463382282428219828305958827765390630774668331158840114891921311578799537284989718660601841301558614541012496648347390129977674134082064420997745183799749738134676396004571160033518127751831647360928043605377903628710799976085847685574496039617687792966021259829562231137053564123930992549573016664082119340848848634018899783448271351858129967483664483307751580441363418541063627665854302272536441717952387339247942380697692552029931025627334092828642422934669071545849771023259045509171363195229699173141938858165565280945156305179777906013293006595589717090481636886882040448949108084781969586571396715274942443027021390724185277200140589472430087607853016180920508498474594862726088944021168095048742511933392493160487593644363930870197598848084045689077062917309603100908068125511357933718163334816432886357186078403414660075432018195589611871448805804716700948351929299946138566161692333078639861977473358767493434576298395333094408356875000210743844146917920387022422479930352171750412069123282601182840791035697217492024271608766171595027338328047771224140606124581693622190451728795307518041001462330317455886450759141045911158321217961015631724275489507452099869589046312776940868855836900077066577631857777410044382486624206672425888526309105531676300263701849735254039598367303550896440221906884855257080046305805563003016160328873952518544255353770600844293560099867158211168763513297049308933302274101451750421183907836123771174659047816721815666867762607152073098632769509499125766064623105016301081303961385438287436184667429885366869979360623615351729630886461513300465548605036510829505014776831134786031324139875539469014673914134681134961234025480681023697936553388140321131316559877178322451646662419719673327152272523590035360775568362195106298963961172962179234729019117168744658420727317973172453651997517987923163939130459202118818082040898951030527586874712073784700567653810272346698867134123431981633433697064619637376478464521529572156602813281615907608925706738066860078442380036148384255317257929812394071595387371182000027790131954300463357756735241539282850418339306353665513691551891474638706386424218500715801676450980627337257386536741803622167355733035703531228243679028453267339468521665120547446721394686699719233205558233386278629262031178777469717963636535186159696203731810503338910489767409450897678936954914527121866464728889199170573076169280824272747077624425174339644424112182900664172364022326117911361422536348021865482540277871132100754902494198531487131916234553617547798925175411187826677975597239581923924049721754295632255789500273865288266147480038925501874117253020024704725311628405922645838354896413164023487213075533210091467960282849659643530326900117601330977435718459586842149765180613521812592017631559397787824899574002834287883011257790300760612060549417113792000387135993188919672901626592980430360345813681465688138372266718495037798527203296318764772953533845246171350328238257078450022188662507585047084451550658127605192064746355413253598828383766432962256961505562792006851279754869564926782878677980307138826357367479077651658107968833928172270202145640125825368147884510098830810538247603721407782502868675487768395997110975626270686357557666615951991326427180965954500428270683856528706301058397167905805903687689011527518563700677201266489917926182613781901961153922978045416059352404077862496545415221993585016696780973288807305570143280114785895672838415023379267118589972333509023386241090685993683998279643104731529459019046623315912549194306059719784108991840322238368444166649320911700292260054707103487195211882252361786513027910543389693599360224227963836594136937529267725735385215525924559941080426553782605876714568210041084795148328311309213011696471381819996189686031661227814510621934965372334496674549753596063211601246401265747411891038956995420058175476297736952105064569004008046216658016977303247892947631246821150422595569426027844446832539856094777748078488220864888385382445493494597718034199320487531255507000264181654941509417350288217559883689378913042532584572382978158604224925476227196619512972460723409270223567601500467568226336193735651178851115454442121181792107536482230332161763452066011164437729530284887946713214412457882840401458931264257438028210575128590345847978707857610454405134566818518800470009741820836366385217573509234811902268746368643373873935837316390375954060535116399646688744463094613602706642062717901106126463733118737741565807258157100065853200456993530610099703372284566054560978329714127395540294020880388570288665604160489463675907321952264028675121617012412509410586005330674422249241552650069089685899277921640776903192248318094647015700065074508338884783884123838840544874519119147284725715223767546775980395490851676880299937820519758895224812701013967021554783631843005324638071763021875988836750865763317283570787260811425245855147217236453892756714777974147866362020990067561831282054215993647071263790728440758871906085559172477592616675330644307925969327567083520743817365153498909934079890546992116056794119033547335237225856102835975708360253359824920714214395217116337404787134293410508507003966287285146917023079416765531277613700790452017203494309362328005627190954174707810265291009947803946106571843789402816716669639132539930569050879052193225833706836077353713993612414285522413623996243929724088015710701841666090642578052461189979392906890587668718090450531811401902843882130103993117245694197238691197397297790082330329479471685422043197651517615844020167665750589844091516152109741804141949523313275112154493714885620464415509593918041958670206632760062495687183636756514947222297734317211332745600855323405863933869467523052971751368573049964233749641733928647110341882445460324478540480889995920755078173792455582801492437468404379117322086409275580544125856473040274794454478985497748197706655515207881844433345213344398053354280857886412238325106311135853731149853430084917633764845729771390051931516566040537079738597721438625725956659135381154128717416851039812104737410670445776642788099350361947321949501278182366348597199846955325473870432197460335622460975945978607235929024811388756272512478685965033759842121521505255821040730763494534675728229670154229299702581217451107156751571537602483033256014953800881856637881307296483002944483031287961172336583809672704926029357006425025037715185531878044412337007327986164339509986776462615255139185930940464428749990260220644209032797798501190759643863219093701655127939625039826697002480040273794486359309563131627245175176501042963254093725743046909683760674047136202725404490062814041664614841998247145049146358184052805346505941257631819719156543303734755174032789076213930214812237578093609870440355428290196590691219484334916444806552329089646037931227298040690844446042763733812320714021304504141444600276930432070649284099027570082089406628954294337207716245819729275979832912347720538612996010642763469245286881862844528173175187875977118027850211058363746521915042145768918063499108851011127921879907592216475964804469757854673958441964913349799997280179906643763226962686320912865406370729314727193090747658716995587729027435123271374177561759643152219695333579129656302998205012818859337444979031746637472746500618409282302081835677340396052537594426952807307028312930858497022851801911836272643907360184348472321051254263744798314712131119927821938114440450910452120899903461507850914279684935985600448018754283475040387682582132717282684347857771130944076017129098395227393568171974762646928873368905410821946879909626947529063873367731565109080553786420872477202619201454543703904432466524665189223977007026135874944466028803651485291124552329067979757550531780868139132278305553399312307396569896088873013425237827160647929917342447763416101467713621618497901877413036657595245998231115934630522601454400881013352788227788100173657019094967822136591048947253042081661578686039229752382192311865065616616835546195822160277198691285553052500892279839210469958531888507075416340000771778231136702870729881149849054596132317745538563069688600573937106726350526246366512572267466920649799113548166452929831664664484335162553219819687754312924479441314402858751249204937353290615060658878886964039876408735025082875954557474134695618621420763447024110381416335990961906743229977121054970804791463793710274898987256450873221633230746074723263625281466382868765843601425460157923383233449779021033416539538914042772894343242433061314537472958443570743472944150338026396024064562153822619065541054703329337557030191132165441560367857323468142857653580065808683188392661140113566068728790404186972233059975460730195311254292621096019170090165905637107204470479345306259281208224896341275312757898031648847122629701628315206569846845776027392787628272050046073889426391331234265398439173497196682471680597998546640234264000532461482318545658731801568149953030097018936792718272604402480567846635105417893280756962536452816134900225215104670024031390898594183602324489839439491159748378543751472261329129571749209408635001827511531892451791990276215455831372855378498604913550079716160222590487893509026106112716514470841503672739039804337334770629503268342491422876749559487522318513715585512563781180821549531499391088797567725588954869781013797807455932675138968033123367528949368441063079180579041952697357960960652907715178412675280970145954622140102612186749794322783962926080750390592108134427885332811774225754710189418450938536031530815322922392843280125167104755833551161776951499664039111657969147087867433427071381023828820176791176568178360909773503867027832879376584351457484615966482341664296190342121226568351752743636471978197112470877438949426944023350936317909298861098047414152818314025692698242963335346334733641690400488528786004995841672724857626825123114727949323238588107147186128511707785776958512017670125149528926085803759242260286087263834406136418710847468611298948358707134773358205528654991835639796175638026074390611474199075079068209555095641504236616172533271017294080313253399548155959106881148161374773903896804339053961782582990531948873695423330727932361399617374066921020393732972513084087631690914693121893884507591345775702901521423215924724222774581035941671240760157715356579848688992912261958053149581882760234043310890422106216669099908544919842569458455925096371388475149374312709690730517814720530158704077665711467261847844408362103502742130054009937051799281347186373552277950048725022264093410352753695622276003492977993835252137334464321676901366449316856731043821731938154312750502221492689456883643596016958403549541406917806395665132724067510009316589809443487969785356462733877395310926229252914390598570593309247311148497383551181512962896374364326921047228672258105197816246654038756426758903530884974130509417754322784251946403875770272118636838053732165713212995458271377534053175647195951395819950419836602594214386324542053401482414678849556631114166075622054955839561932912763453307847646280218765551213652083757992302338869439781133767941302126243889643386314340288971467952313305443770437781512109585662114017297413227329984845869324209192339442062001600149780044595914807347083122273082997019801585512712160242790073471553304639767424250807290832946513575038718508956194825942474463628043742745543173568721177228351639104422695397109760343845565956381195266639197447371211529432305058312430912808363010688738522121453662459790540262174874667054393282136745101588429891959499302861853234024430780376341622249047626194598583548024706106053143086495258616793127489443733593868460170091983463163830459841191884092680605565498911590156305547843738896071441415464989440260672498206429538219895572119629284447697375589142192429127111330023895676443543514937444446388747168417880313308206541049787546806218527207788298242153838034668217585936752623602336167567110657679462872153706946330346748336716172121894619583833524508919876914725735938557233950657379798114227986121980071179608975910871882519533257078269098098236366152047060347827769465162737908710678080925805862854124279205721848156006115493622339947177308479225024446846936419989817840890728125850973903012019966738706490226036848772618468761353761479914071599743304505470589629224118320906160536766174265343596846990933936455566727080793740046540106306041967957874651672186941136173171211273251204723745025159483657095856127920058713509610979075319832032043485249180905177547957084098787732661252347624514281673718181898177948889358088815739337418501066974564667302965657030203507363926697424239001424806478871516827957413268030671335317363771958767443960946457869448424461252207591113102029354216995003398217917033817881785436272057948560850232164160921923960650869591226492616289782044223198029505271901169036847577638523233857063131643406409257152308898418286643741296137872812426175681732079152795410613159033917544056178179781724215638957924691111065908792498206337504891012591553771456518028620754933805657595491283492167873242353954236566644011037364180752320455137349443795446143739031928055838423178891494366589098103399871614127831085310112365488337898246284470873417617958272110807735760424541224631090404285480284084635859727648555209453244093919363455391326465462389586322658546146123600174509357041599592843251450941247057584900041120942258182197633677727791913682955161597754273430358836152120651554198882544489181767655463184086471136873186085779954525537863038472504997410863793608499532745804640472111550219112387138239642618061274773300936811628371481108664822708851668868799843743348105949489835944368481630746437739141027532729329136714334709454818506479318528035532343742170766068332363381488513831193500766183182031728040872223027821623482010978102913125102536248486799545964838892243173399415895214822981334899314462521929073006755697457848883458722646791722576795925723051956396061720688164702059584188398106877394302527948610625175236626276667520161945439904974922177244964638205149047073267388782018654846792823155789338308579700799006534638649831558028409601619453805981889081691645845860376464060284650910376829851015051226691486438705810456404824722100181446596482506613668752943379226232690955948489699385287473965874738147060298705917652390990386638309365677129812213894246774861212147743120499407499249862024951394463214203294732505058724464034595918455494640293940565026060824861826140238267098004263596479261898996392619773649427602801459141967804358826596936306173764864333771814512210743971703933138566791602018860512185107123024010093248686617636189264874800751720620252429870954285815669323672025890419799694651256039558931735119915436287806679248429804809877157486657078611689462553980816699692008953928017828110992191341847117985994439942926369208782006633324188356258377819337802156039553760834966966839397504896893250544359619619723798577355697454595016627403018155896792369826123389395609597197590117319838087369334370134096171196612063998666464506364428121377339963521888935023105028328760611498544556320766066849624938502805913254828765749380950231338916000011808144074130316187987304643872946814379614498651282874207588701121850931574731127948840809179102773586193530574321716143300849535137397573084419529802317814215206115888191958351577527988236515245657104217297382324872370792656071171972795840927386242840914571703601971149429574615629298136910454079075434148861445256218357051713307738635435191817429937993408398428543608641750638203572604925757734309557088207852460257462781736382680169093296408966712613104677895894290023975981440695664031582845509288414661215000645467624372975295826517605837016790386408913641626115625302806613993674513504773898730321659394298114752328382650446838716409941969244474156835798647405162578540245519198122529465867136401818085661774548550968892432671855478220078128939976945268342988461929227600070376917141867675815903553059691246580759341709562076737282259688569884213161851933215485397473964679643437180680315858151428153181016102773880477003299512213848260570137799667401032613144568424044669217975810211015845143836390717363836667377001075083167362448321690192592150895582756164814724327426802716611359501240160797433428808706738807906252375224046720094359351069344491172330662084437210163654079928709875601017946061720064721675844058881352420436152977639533440850458534047754155999246709556922033024553861176398881452499806360879505643517176065047113324178020872451887724888693458015321459448675852200832697920534327620856677508624449788689147696702486232982314530632632416943730488853033459328189882084823130159858453025371893273822151568274099731812015190131534408170599232267417810076466182121482941941510098015031370875189638538310965378695475238877431960481443885898942209442416065329231299163007902431508876912517605543548235856104166992761825708592305797744719073291442620881001751459696017826179515191220560149724839827545993305296432056157803788947669699681264857513640628521667554914495600722465932835118697865734439187857281483688153652731813594392658836591006188638806883861780053379744541919292700929640369007464832648342897577505314893581022305213425288181632913102743274090814009321236848065927421911420199983143758608129709027153545529700618462734261570804296868202665326177516010698324092838351763074309215232437282042656385871103845746002474877892895977161560111838463553177748846270081623207084847644223489132623330273140969694004718878462359572759653476243340403905839480934388901322132604353519664007400156101344842747798944244854922471075562954474842112633314283602515303862453104980065210173675544272642907451520054209927134252011139592628260488122329761928655194625159649600433364050444722981618607449249053217955941042334750878131915736514587431676433820297225866016986134443861164809385691530734405511229261164130171849549761022346099891154775687916812358020051717418348142628311994350865949088364368566652765390656073691166120439751175622163685342583703743611468036248369218059705600497319586281711576891931849137711671340001839066868100181356083916566172383131758224991883152029759385721578789811166558503886288778336343296365772083258119174595160142635165343644852508516911986813026365859767586804877072722750210485748182040760583226341264024621877023512552211894900994768157998881291905145268751734662317519568308649312957564377292651253816244396345775693808486301357431498387584987920608844644245539781410835780019234059027400211984663059124001253184132448693218597250975672448235345560807952676958287999926839178192782861357384483272462997949316322345365943504332337872840092444578442110840767173303740117387674347735938446052584810773054023434942868750602759614452082186133278493597065080295317894358560881747229554623669974586362021528815509815961211359812281643540115564675403080392163489032325687330971758034510997292232724908522330354490338651025420856295645689925944938270924291389992711921678390509262838607453336464137730811002727833287815042855309458022085536763826862060900014014477500713079124960826406097310024029187943729222387119846331612637350432256120671403860072248442521054165158700341670892030184874551386060465632547492003505099447782897062364711496339519475222588698173487103077943046548557364910342660411789461481907485176497932958051131831080601448058061859506607351504425134555216013975538639281209169452672075110385878573094167873719554102892674936916536596032820360678043910285874424179321082849005357172249192812010262850435033577150505275007919814072360726342705539420780928204548244855023610184934098903650761133458466346051836138772231317368322690090413368923113124185731330681436751027578924427517629262935063646706184871944531863967646144064669433779839854897221720592003170180417917838235153883979158870900829539247927047034126406758525090504289891347868948174576682757507142798214945828081092606021571670031240163634095881846706327199386981807713904766891819049609537814396506668171648352902038251766697469824014012901059894107060781022160949156704718519366152009400833856812272884457332935347676292282871094935576948770176105065437991135046270547946395266173728305397915980034722473581964416542934051454968774032173978904411838979078160547809741886889417844811573154881653076396286809042951002155344197241369782562746107852513042099976660256937896378619168206315590091398935985821634076526433849136482249336375115409602705440152721703651635933145141439613809881176835308125811891257903964464246847022819124118218384059449652355151957555133879071663085198025105157985948871213553119443602604637347425540388032756427988503524060252673188684096501643061602336214006095136626775227465400802407975023541919928846071216767538167514685139672934837766984003259190326145112359227551794851143262267117925528706689492102965960235274192021893307866222611294729046632061371911811855467244397539849345563842791817685775953333448079599843347326479524110938097742206727009118307860728651160161224582608188133546471988434968626218886058852005138272233312193845180279322612042318541733382917782394666698205015208522958851700911309995504116089468736559308543971740990872382917821541493013141119832737389822700668781142379856938598540816283823237344371609406443119585326625278646627313854640076845226883022973173575245751676487879405691422282954899420916101086983511962599847582456384106498366578490252051600148436047652886348452371239425985497891729858336788412581051105083384835550766848828805826411578873104207513880986421397069190273598403999843210674288896587452838999264514034334883444208289286019940315309748625608805497872964485088892167478934029622446352966968315881250333994778477575027141395012322295642609620703116593167753785693022650869616764807042672303652408922675243960952935996758154414539245616992306347074730968292640598784767646994848338364134899104902933301811611533685934158134596548523971434107841341525029581688842376494645967710171571337484463403319438606901424908299500252665824463131065157360307378441122506980320364252418095460257187636621740479957331558528109507405336443895347266274644471879088835115361353829787021471465640359197327089088811909719798384253024229398579977900781850453836111437905028714686568589909108952182747903448395167978096569364117563164598966721457889982728069822620571584816221238770613296346013682088419819552550695910899352948900704585917849813134630141004755568380001362701040939812418171010550558333881932609664616130857398407850757226052292597193497048245070455445077235340260696743478750718884844118816596390473697532647979380834659141948607887393660417656927116952922145195779593976232706698898999256155039752667219905164220442049944892001882730355161412917516204735710905888561192751465256416235687561386611911503446034158747851838069162065632665966990273591663340239606050700006828239178759497116719298031578605033545292762633799846964160903971273064608513017477163669611430912978317050950866465021863651436690842430476657988473769884245057033194451676506351101647777171729609503014453942149967465878800857621956843739485683519422172477255209426811260155650272212310390440648758591654289617624934256781190627267140015650312343913120143775779678317988229947661839096488439245128558896391375466801170791150312123120310195349635488691755399636125261843741990966969930977346790760481595032818429715861445579185685554489231793918409694374595109596266849473299192256328369789152448653757814037971012846534954650927322807030234678183909734452583197743433156717218870891755021499689102718453708802561472746712663001036628720600860905852752567237111158039796966995800989259916539814735135600626178658840179882046029854494531092936683508907066305141517285455394948059522837889119073179000418763425117369831587973135868334178383477659559228800517050513431475739704987706076382293320770960574248948455578569798426615590703059679911107535289589240297909506163652698714430519453378425458392670565095483919665420490471718918260950036794795977521167904837758580185089240648842918818753605866108679934682987618515313043796912788860104543574189746678756799740514599678893416840517775523528669383149379176785947760822357263214401861881618879045130161608053194533805497039100299213841368587835625227875964981848164605277501765647181833312870480166783090865255505190869019135130401208293637005171864436300286727134764782786462468190026716429151127383589255467612131121967552325763189997869617390635678649525281091455781740999650631950365356772167040208544073780382100717360657866232386809336373107888964933484905674119687127804269590179283840880855671381347800813938242478228180100931671159146041750488243728284044393961400964560711050348640330209184462977563963876553634792733780052607557728311434366684405022304524708272461539049207879347286874382749236172838672128319609241670567664572634661198738309346671419215235236138606459513650166531985835177051218715199475985326996514751271316413460919328676170554980544293248657530717166804835477321945462103055775620339483906144961816101008109454587909867488643703486559015479959759027290585081004514395873534019922396156869674795321943243051258075933099126929416217027257856807203096207959439668051834261965204991628253635661123531035956676797323780022080563873307948112162020096086855434374401230016336093160965943599840711329196869227857010475795233334524941361423938678959867721539955476508064070171010375387106351671804383442441159717517293750004863452992436600038532406570004964291861256328188428443530248825237147488332958760288609253885860926755499511168546640826044949331318895619222058767095556323669498915260116635406509792371308401670292718940545055278381226172576879553051374231012469492133505321622169001478731738615443332031082449402149038524389365062778427449068904938729604233656709005246130004769002467842378945452675569235797415880071530755353830590711591087374821453857758010257636210351071962602322244247822686358393380368708657346495090649718633850966546720962342138232135300258811896215003124654669691077053843753395630598658721455243508510654999904562723577489481831813549634166004541754125593518074775535465078874990504555517364010963487411519693550254982244065627200117276653123129969245102195406629475998677097588355703165216009587477499757228322275967885844148903519424919499566337579213766712901650779124207324203299858923777166289123663320423406279561878813260710527335040216336730844813150122676307490374577301088315332000266934160081642202347520310482490186547095495960993417456738046028334986207487102544837872562625032063639659822052788686095767484715528129199186763792929340729921963922607713008586928001395040808370978772654886200079458504291500683807545422816686352340396012055564950359354161372883486267200550680364580068724636790052987654859358757997243307224325392381560918649894184115517310471586252355740457345000206054457418989639643852112892210480738730218936794062794336000209585836582775215764783264553022395019861213947621533187317104785164973223323826461766625005133556741713120925191771211835034494177767927947094336349588364455853265575898796889190274437959762983481576183711904802362778675799956190430420651777233484152188831835179244117408479791557988596197050427137023075837228161764702284796969520463389234121521550140259761360986650182553311024869098467770810535986417096441330980012879479158225493857621997497789727729772365032064230763241339793045195939064980914575479835119904850478280146498425812679517457325808693147527945614922681173727271267236307469602523503969798370451608998604086522236390328384219072767811877396328136145201715073682984361503716992274024756063140786279181996154685315356355915084372529088998912561720733128787680013545757189363509926116130180975812595619175918577259027554642902282592423052575305951271590221974207056493161605779145272663213034608498371053349378194845493955013238972818853391477917696428470169981818913500473236212329911306106827772878043068135065757238341609529388286072872928445815808683553638330526176410753222328426279702101139686828203546050269036960628176299836112541188796858129206581005825583043692441877613861982416592695769188398824608585589363464920356648746644538059324762451078625279647223351614253614610000606958546466551698056722094680062044143299883622995135008031306542407412057307060139273806878022110847016277788278480966468238343417374395720116110476158237579777141122960774520670786345231772414956921640059064312393952345025033805832621671157801223417290287206553251177266879768715303586557385987856280348311452087219782773234571052310356415312588473124509917152568834698352529145382166310825011841449161982368355428998580154006413457239821710358804456500345728925278557006922191180035615273562526676822643678512527487815967992823613741633400132034912322640200410194699470951237053457084235734360526231951786117382516717249965820319507362991727119317292940470446095647388515033802657972751325578046899550212374608590854490667383821705319298243041611180586673712499789819187422670815873835840422794670360878670787809527930540602175072980615065986651663979375035995041746421319102821104231947032807602257616712757387940596133661644798909245740086831903096913346314516190153497261172848158414859507334443385515748453995951854562247188769355759587577386876247994306823469492045496982199535626714504545406934317586230989969754425491716254213583470599919951474692671658082245699543452694325857462243013972267173776485810386222604873081214328297076490592429649020000841367804684631826023070515120701953058843677674971154293366751954511937808505064235861025634886747524537154153627728280669682835303068301603153695572170143571681096298029466006824491894231757360805436207337306708956301496183196752429878522968686306181562615197719867753730430555399309597957996235959299796726166553273830426195364707673200132943279549774154475379318920613252361780978074587957621213735964474293375827496599639624056819613214248606473563593537031701942036849588070716614653670452401224210551313128008572490128850239850904552229398375503550990627461845774422477472946671687802028202809452485547485532579956040400271821267285005195479248695486565326634664027090753163410275467799735944738286766911286120033050841046925953462098845096100799136029691052037077157343921489227343402076464186236966927436825632191332205421918130367324682498455181286978815690470539500819158903031101899882790207761666286966763526348210896097044992135701819700787643063145704885955477978785201079990655324974461835550173181482822383067642000478290769560036093704917323279137218731360979024595299296596591440977397093015036079388233021691905500617857361892134365800344050245795962687891149475572982550666326695371173478074024698132074307674919587561984950753396153535591819144809107043783148290834982332181112957062091512371063282649825541516618395318977349236086916612229057075954486180677731125884321127755818080375106841683295243060978093990892608415143640153581860220053633627965324039278018043160523623354564125637218530975488044131510416249760110332749580559102716615432909516961948416233866547908616534635149645992332444142631787949636014417795687352770047932505984174247708055248323982999157047709860071027763513454081109462630283147321075361746490068365640241144194336695243532554950367101890914613039010427119688747233991211281037329491810037546616867447565288757698581931077183955130030089018374814195102605554024559325277154024638683232414619946463373712197705524005451945018582466999184900727817408559045030505330695942328055586994701529157313824688152021317671790619814977556449571433026984487400245137568025903470427248917449446476086560386312637037753140780087839186903860698769239527015964251150612878506698373809923086109088550567205650875381164026606450494518764701316287744536302830675540933476927043085694419375598565888915807770657444897832682219033120026459839580091498690582906326884353587841224394009046252016368117258592872419543239702371003789251640332050562196050481087313865686801324926217064340207274723745965905079156847062185705902950980859556199193370807897902365905355526374337120631392072985541153609764102090220930860941223963954515390334117107401593381113285398521131755669583721361164142545769404683660996096885685875271100091715353815076324355225353948795912592604316354317460334695078017636920005648463019636660743318674196709864180445157897368592473740012876175204327828771847433659327243003025269819830130282773585109277676195876300991290594461481530085016057758569856389104400073861623888375580369307807411025943499347384412956475573345843408799635768021719168389363508507112597866971808388520833605134553974837829207489806872848877831719577124834420202305260060190418087022220301123260397165934084832985073764812675048799699354232711226467179616550161734309474231200603625988712111111311915320567477056240422222772924531662894497555944544499546692341922453573757844958157204793390723628059278812283847634095124240929331899296919161716343635615357354362672910504163247531483229531288965141698868900233872011715552488295776076496984802459893318230448300732990388225062260152524998666884266511181407422384073121814898493377796375238896127436442408932058019392697624212410766550006288711318898238302226036586910776139522312672615836927954216842958722109914184222381292187111603204139267226983333421845552122716022259216218080920255212278968287424006911050808866279194282615089434083544590486206924201598389557166861402356518272922538757323915766485606721538523162266700725354467654382063269850262795443231076753992272114051805812353485048716101256665075836917960007205438870191798978509772401736442211874272596373167702086130280745194625011479009170962924949259078543170375529166675400695531641748852901274541974599490646109313442309259806698750766213452864703573547890181228823715145687904995160816842972285675604154816795069362652219535885504180085636882551228095228380129487338126190346480964817611618051721785539516256580073490704626347546310698204796638049077416865597316815479766916560361339402922296278359029557518862116408844708370155738878941188006440024626186985229755196478056115015121283578969165295149119709641913717810021244914209394080410411708308850645915362320522132594498652997136032413864487643836896995161322806825416716315974673885459467716233268005733426950654371475444184493358976539744733357956382291297756759324444215045438814943646562556391697866899126823924536020357077019211136789693836262141298579839635911437816178849563997886778982574077135619153708277857456464138601455499215923508700623416028040460239261721332666279439188764293942399659682668331939687574384639498269102728124549572499332090548763040088048916847555218402401257734936404442390744528161235440732265472140434479349882324504566372072357192697766027025281980088770536981663317243670364467354067884639207232585222317789764732189126414931297486965523425614057068130070868488791572158988028103400172564781268145062186293041936117925091339575537661793813388824310513571111014473475704614031562019457686120396359892456794031630431978511920491501189852840923599786426155193251407713326419208465738568697944636335797087633491400664859147558922878113630313788863929002795081090526166733259322675735601725499740099557418005443229978415678820008334645018481303758399992255671029245848852034512442502469256581999297082702453301992600894582136398854686167910231916765445341342934867187781289364089104353620848426915979248348623386447303579096360808023662438296009323563642527008788149661863882987813397251813397792951132741169002634723590289012542007976371314494897506134654760131400662030305299798806989093208412758427998687621719945585585363251096348831128800212009377334380116916370315810286868267569000556794375164127387597270184490802609723318693555036957052223511931717989173450399644663241961306976603256573000112874088730794561813542203778203254515705332875265463420142613718120486320812118017997827835920103792636294385506903457554478376517355310278588880209703108672930601089788514071118001615818427835673040406989919053456114051260088123933598736685854761265465685909598447396531745761121546873167988030165130576367035432113361120762411888184133964786404549765393336373202445900629977236786939717263433387194472460768180968214860101152306229932955876410466163444694353768827184811168830920026635500067291062926108917855628903029541643564324562640169858579082786087127083505115557455484665323069820365489663010159905868994529666468625099850310479823787511203297393557224407657571222974252058290086942347415967278630820209186195169302793970823749034180228602789985437498603667325725828922810192280213116043903566871946584261740108040513462322775231332675523809179917579650086960053057985733838915358211446007706264425496475799384538350575656142356535106919167043678703633687592248182884564360582613895590253587382390598882307819020990376913856451493334126886924965923320610201940050618473004177349452126659328875616496880151103926484569113471981178000731469810000164381238746316585790047397221854508326577373612200250153142968533607448628999718120692703557269544985391746847688285189898470292918574422559444515084418687662392750252356046419429591545201610787830173942521632762372093385129197935546323837259338447262394270972443429056524443606956653907135651387134442016273827891244905952157271236973210569794717156254316891797322201902211758626699451718388126146001936438174754578309957212272615382275843009062599216831045886938586088252149368987508490343108679863194364918478082948845086121982009023404529475927470431458302074615150979595687369991945374527547937748275903623327459372334208541868453272274205934729201806100442963106697360315897038557218209901297208540549507125260928192061499176255800104554065118636644544214908538631422452964050097499608549848694532694548275761610668403828795688095879979282276615507677633968383390873093831017431207115125448264305316490481058706411360953771337519125337018463451172943056636548037790975324115036160556230040280928782917264179572459041021224474849362920710879344888429211637693285834130975085427976461310703792591661472333566543722399188482068909599692729845515616987649605616870378427617949461098025091735742879651283106913507195780630232807824806917128964607879578078627811606889036416180187551638690993984082731622763033026074176807257981046633081739277645067725551339903234024564225859969537843044613913969109414737364045242646029276954048475203500391859774896278297845681444344882723509630508509717286024108692109120488331331456321973331922206468371580296938279450411072392155862116735605506669101782783441262616981657431380782285161064137245196194195144786806824062772861396404093765309300970630796226441036151806551243252844419702770618605987346161354634082882209463853334111031959691470791813492930212513134686970318417101683703479881789267446746116232244201961065604828002671422523146994985251213612390935137594369562976669616862810619167010561610461039622346090339551300016532360648125529367695690760257543107750546413630912299376190551009423846575812348905446863718284144625739412599038595976191828599064399936959591968066925312450290040887941788094556162566391122813912434747695537488055148767535654002110586947492442077225886738865302790998990041524413554823430685500014555675856899581287671841723025674941460645092270157409624810088496254554521924235700201767392368744713121198030910859308656826031299690709869312454651534131358291094728798025299571541832753077921239316689432246939561462973813258002213855442666542421152119072436486050264551733466237538230854751009327056716951843161723846318196807628399087085002079724248625045653674877869711696293073353035359111773368420256465120391878148366212035648809178022912900937079763475816862071652671466570353333149453977748632225534142947518469036453724221693616335319174411161186641426633943983663587250810440346945821467787849905397763998827886352880582047419788959948782877623453410816915130869095757876234295119542330185367676938477103921273677474920421527591418614265619322406966634673300654144541472421853522638709412239151913425674984217510151393821173101153482452003069512035036890823710634698198346421670254955032861670900990231514172986003399051966301496292395207891590776075572922673111537541449594908900988573937189955470522825359792023542835328867490076882159410928779625992366204748764426564144237111609239557951563137051086781806763333419871962242297841430969602783304462647757966793187678490829051760517628956182842580444065709081999378368539232383828589317686578552872039937810864636257086887554676378239029998025404788607582598768961548926427814565331564223273498090206173716551520356567871385224849436593946707984260742278923878344446608385655745417876273166036592162721044361281696796030403817582400644284266496647999255583350282448342022400145404136679518047055999959545719316110528816241928299956818359307669895875160958215522367248135502843061463238209633788756519068070444705566065088785494579067576996904479675790592461991713724064270264633254759577180281863253965557056080148551929836752056263793785010252683578406697396065689198313146056450559913576697542700694870924625099347959114546602550097717681739614421930609156074762394464729294976224201536582871500150545151559466644471860711690536104811366844542421191312363766923860660266104232765060774002653360486055837192248035769016963130698058131855472587527931720957063922462105405669835339618470951471231056611662534695279203148754521227995014655454648967287614557231113904422173531752745508445891022616118087312151816078652262376410770436514123574119745639468972374083556971189930999647838304397606328708857956595081087739475880619217939565348243254215194684987468922398835619369376013985537148147942389925622772882873696032380940446400974024315695623747819914220087503828882641412886901767687696114775947964498614449466286445322885012557276184426788696836492648079809907977250239920178740758266385195798596778583342453774468109308288778532199106173689539839425208762546755141963981781537275818086032389416480439894967919110277495027790625963982622271842021590371458680529277966926129755166827971576127220970937745604663541573964328653968727486043140132287152622596330660692326246785362599953691617980088103139230481680944388049920786968132435086224594473466504351391990205714177403038535693719396570091196879799866196060359624458042598133095599904648191220473663502600360137055556196936542738737841138672283626750459772954321741609728512327186493279107271804299546145085965217690854419403752509847840280269329417101285128403950810236502563245623072530332172885886772303125450425346765496272729440277364877047491676076849900115729758590679923869489512758674999691005379803596226633764058880429872094403827308026354538103868776715773773749166388785838495645866938414623694249472353767596926753039245799613062858632928052705540970872771743892788886118452967138699310493334887191761332579140199850662527356692789752471776966158255585808493900593568573503183302974815420121100419200996331599846903668766876695074341539157464733352615336907664946605615177772689388198298036646904521414383591561254801057251533441257360508720831549010786787225345821009103761357511836392410166379452986054553474842166586623489665937983842638040047859901361056233364491524237734071634582329300493710742858659826615841589758100531658081781437326127392785964181840206191965501693946714378684683992687830731548393907666439940619240710466048877077883292446031633265443454227392570141343786016440973642310708536815761194113188346272161760628855047495086485856690438580842830106958809785133250310887480122017072853371203198269525699673267218653942188773748994143510965548444334284427856801889182119149519228857507079601351763884663724755635500840702392370413657397030112348615152394727676054950688603102426224617860984774084718599752124543818205753131323093689340977040727231418232055376238348108344803209348362232680156415256548828002936839660816018590486478405783300451167466749287136243858603853699189999063480822913407408156059000740718031221866372579723032437131566384616861913569104083860387158294846583963599951752635488205798748214114495621151871854452494803095020303649003229407204466823977106941858761787424589889945476906350068198236722427311491958841339000102909411953347353848065434326909209509245474852949684090364193552923408944936435898608447193450312866493921070785377976452139710055669397721023379365151495727776024778926610527822346509255244103261982038563816357278242311340417911568549339120572378175450641853290927489747976115885973472386542297293879504256299153981842465365606146898378740298837011602037318862246383622213403331416296578767567130119834137796530960544271834813741530302307572886339363531294041965165211185205991665576088495014883657642467186780624031352356520405252629325504955816666522802866890031830168474299264785025410961209981951037909883930085752311123246518133472478315311607809997864649199578446118942553063433955670794004808974795142109625669628318640723874663294379759827103474731106335853500566100019222746523151536847278864085325303200318303303507544826390548661985123325882548742527895167744461719162179668577920008437952774181686791990964794725774571588758892740845539708733973281279826339924771348330188546786813155793499290404895857212932301613732145491161296558210946936431452706109811637168697849271160804699921605753579058089855838329114088313884182368652720603410784265131497391109376172719537491662492808288771377193621421336349376164994940242602934193587989906818622800653057987118674337980645174023173219563567041562649701584259344940453704876314722253321966270918723945310126389547778788791635914871832522520754664501682874941756329802938393769087865484898783958684962153097715252459890566809587557860715163289464053145306955575860671983551456974786169919276231617579128041584622836184189972765947030842252971970986419598314988324345090132869435014430960331167700983201046748070658839654166604313121634399773750902632688573554037421484410521443402659946596683061825158851197529127878435177997181447141046523888916367006953108672222285709773267122145283264062135225331888900320014995225733543268599026509925161609653259730186396630857157445643143514404735708900303163382737160150366504345848218860204627916578439365591128609647491916890895403089270301268554544265328673200075418192464554021757493196458317187373212901215214837461603007200545640861662642139793381107044502820157477383249218985508160137724148349700986271289104668765413873257034804956980213166208769934654308063593338769041859748071750267659626152741635578690003977745968578951541929458033688857751212914754415648339196763733395983390306087662645834906808235422904125770674440676495159099688592323129514565724260580768591516693501684683316387253235853739015281116011198804184169798932740111662691829541693674674015404844435773773232568839067219693931952118713925458406338960085650767821564617740745246993920336345849895165723572205067450847925000495734661811140429174361776708977793410773459820902685823674458389751513656066418976136206940200558521277942790883464802331461134962373744532110322015256035842694439574921283708316389595367297541243955288933247822501316902606370945926904089292421827748507531391158098844834622782934453590665842650107615851198333120843479071972411952256370376375540108989619351132517333848373024660847934331493232477657883182186101530441815085056865338417605561130345914902150555795229567321873979107743424789855857042501378497449712425704429871284479951980125162139412889972762882223879348603620529525767154728926929283911432892019252106374798547019686326320601041515270961612309417823802909345485953805565814398071335298248463094816106482509075866930273009659884602794259775910262465407187977318648025390073720244278280681796033271991322372878673113521569185393670260765536842352731581247003210422493992235909372392133227450413747466385667428167770723902467364437615974930764893035032181568212564422492027966022480050491468438709057101292127358403516339093426304329343299272121191636887423256263725574462409350031192966891961124261268623067831832555742307374711311512776062127173439031213850285520842044471835722679172716440658353912109293978928817657409520800616861994709712738062714954679338560330026978259745282176022819027513665278847924995311879264388302866926536085288056586944913256217391209383341207837003688312724260325914978543164842248217911009451430730086138651945015890410189597942499374411818262510617839526646112495717719592490686263959264621539907034423649956479287731010990989691478362116028943516486048897855065161315132320406221746822851025366904119747539955846082522733859456157302616116110308818888846072995867389786692895630387799231764545084816428730267755590358846526651601178214233898513139014092178726194968810140367579772521773634803557238857593715660248416720224843316516315830832879714736552677957700463208669242299770425149583152026038074649177901419742274103647589221007027997182998457856288272671192060366438706990261312300518042196131393424509721321683713288338335241940657478082540017168899364788636451310251569199683238675059747322091195404751980663168143297346785969930209237245526607160465053755473278930526085623661859801809782067703069570194445747306811459274376475432427166305671568642556539061699521620606480817938245694300374267180918130359986688720315782205745777769765070383105120484701989478066309847784205417402912974810301216870440194190024618868929917130652818815316414750523815839531919070320336634758245193893721231303517136913588166416451942108815935057400697052501227818172924764448953853926134999346452953370028016642075050334969207004122614156770003428704131377259985239761775317621433333455223372414789634621833052755313488631795045551313130250115602386782234880758212815328302435416269019258011048069207342933556108937565495847186002680512287434503720501903220103509890224913917205570562967197921449710264493886826964023482008139875267657683331902662309644475210342766688753289156685497389251373842230064291679227447876185851648111955872886351672915615619685375727181536890997936307148178460179577235837511465852222941796756842877478095637658249526338972547631761540553430971754583527095525402268924641276492222861695674034532250856297170495470428251786167854016726691191311175535326637870446501148700176386218041601181141447900258703574357804968960488830536862175191120990696180672936541545695572000513531878286925059099694146239634660595698407616036157692867280543153595652655721793199858457782798554210903230099865006745561303697880817394475744086641591465425644151708042412942777990558605428230501812148264135694401063961644025735091632540672947200897318740189375457324430529895891071175325765610837213197374598977285019145084656960812346971593603314437435610105140670818110947868440060441153338431984504209389364460783017410611639604018944170175328765742585312643821251542893626373439397914157588267624624115818009142581842222518806296105461649947603544418428216002837898827239081321552377046345550597426245432897288252538641392800908855911942465122134594577370693802287671625608032102994432271920758084097473781729545342163279640705467794084746374169990493751231202502009540089271761436637073062621191113390753044110547904900801363028134550617246999933541805546360193164288472989308180311581279317457297750766750005521773991056847368470165174892990006357259381809614184880581625317902007030437842739077984616683150762010077192810883651533392956287484940729515387368120189392734344968157453321149613818589876786836803111105128367486870010114651828651073028089646104975539279794656764881460835668250921748971049860704042076655348531722948407525552737471902788146017131649881923883558231805259065159836153293292449085644872317052227904437634279415652050185101863323903853579326191406746849406702608328529488388862832474305821511065132078120349026956149710919410828904850057493994369754804909195727767853723833203390059633653336201373022380237713766002615621484474919123113470196194447199229535951900712192430991785441918941649309327803743896865561067769903301467254300415505508570778504586958463794414918295852528509153339361706360702180087322273717565981769890045290336467957951929733290802918449531758071974798930317806724897419166334462553746379682824141243496465329130796983869254356794315263599882517650834036365029636595849930086570557100010020149721876486618035991329651494191826621062997866008318957647838680596679832649632992667724780534110614188401456867237446302999759129768860694673446242629377929278304585446398460860732495451043857584168427318895621516234750304080056644686579966999695937737732972070812862456171194685680354400222555024228073520880793650654496902823496176562935580267854966019749370038460319650895610688285856367129065483537039398990262829929505471792403013908626633902538206063103730779640190229784428669327565869123294384255145295812373914795127011930733871427960148280448019783130441671798438718037224325555376699064453858284050574807803302059062717797071950346633521203574519979889986396536038233899127885716508142654339138170588136249358016804605579640097179812124273153419640309739761932020843663678125303412776581267284426278875299331541107388061556621302826313038696941125026733558441198253002787152234955227165120947285070677173869936648523440647664572929223621398091075094457681936182569445578354088517100838675955530947243804107780414706864273173860175365241318449824424427467972365172798908662997582504672389065853515296339795074832260789333189783775517612250335284355976211054773751976447349609814133062169743389119603958924684829906065524331667600225889533960224239413673096244722834233302721658280109807098374459709804496616179511354842827013299207830459637397825890461535743905741014211171910291638892194392845376165004275540156951133274090140186338524118034801524390871707872837875342027542044595465668166167456005972529912657740542170822840720435927308171801525206806535118164156528990831569436517568644631761876300818291266959437869156229280478607543907920828446155825452742941474241077328649881483051400558742628614837956610481761550205958342135843096767481240642181772825707220972294789842962612797255549561610792219592590284486114696458147087814573668680808214850771403290442170042769955313565941277825943535827091113734740795349209604973296674094165403478735464136277085117306850751682696024902156968571598742253128356020119316887582445805919160213976782276915336358269698570726658078287281026001081629071417116028765862800000430683229764163659807354333250545179542492562484454542342380478227939153480442589829316628439881204669379209129950842044048986732975645676066804635312083336699467133649159617678133273173275345147422450761776226076944790383431690368066999908705092105690542143331486630428498341668868186321650073635075945166373569912766704133801059246609055395070110566365852289881600266655071680120430916103560091762404032083193481745298095231833895718420127611171478199790008702091064562526880565151182325838717116399242835778709065067939601740070801798528337077326424409400122379390560491662224740087669592979098789036224316475500494279427289245101311188746486364454688593652697919781507317756915804291168473884520509280236032132850778237261078644870667237517340384888101761782825669196216508440047529825511036099066320457335544993971447156078534440425377870311535757394101475083761610868371755258125797110262189501627905805658594974108994856323527731004786132668428884276328931332647161349208971689101365357584623074171454197930418408107621837717547352424607150238835210764327858327269723884244529733455550048458139845955549903110770488819119806756354456901571889441177859917035328492726918274511987851299372943237452391104363001707365661019848131503791161835210714005755896628945015210258268781198913493830009337700176336111958496291483459167630473170031502011113588879598111801906286644941112772376012430408610875793514950793328140554353293591473174984432523740435902319118027458368870276295791360068209920330513638819465416410653290809094594946906084438694094684178563859297010401250698875382757193435540780044897361126775106590647560370763822341750751549969713952853387658879145789737818836724239327454636605000548908907750756442108500475308273947018877296841342039035681182698415900786386906647558189481794003481743928053181656725287653419579494866407430984464291824892308644545792376197449876634374803377092427608906852496272196584478692372627115916991451533111885930148481433252869209175776951256193159134578327705615467526081311492938646718805385249406208098525691450883563057591524832732395542611185163241038228109712453759205758145738702421005126052807528837384525107443143536032038301104376265933228215911463255000954656905786262557698883896862342874961945413443399405519461173414698112816897791858548428018184548549960129965204660835872853621907829252113870040633357508330185792985769640492339520518426836346191747859511595297934140455018437121360493043821711728628795531394875826759155440647961133223520768276793134504832098017557717706063711330868297879427963938708885824514597677391687297202246413400986149309351950568363503792667089087734663918188072218273401724906139286845889860488899324576395291653822935885374152486016231372712984603561025200521288917435264642238737644244143603145526278014392378698360521607810999474264893484298312084460842676054169807256251246300931205858544407605769106858418613406470857806018365017015127997425320390575737774784691497417483011658408929168491618965302891749196199127592347590734155047410466301568801301705197907732429284261506110702373440699669768283695153558970521727216018773901388499100376996916894126471675505120711270457923693892206809811132416314949132533961690032060553859245201036493538595143715016340457581627293864753192598808852862871234839925395735051673668027367789178896641834039894048025109077250290063372090277997631985348575750434114012707685670464350070234670633935303247765626774798954209636858947386963832551927311560218499123399052504115442289763603803430304632019452126504298026486440226333671525108871086482237064584529719734072187170398868379085172851385921644416738808412417433147565669952221180115698718605002064823793465038315691577217393792527016812450177733026720588223979010999235974811889402789012455260714363350205718231782303838944097860343889228142818144018886073290379073432946612079365586782778441574424557281609572245417323353172705759903921004192786585558689041995598748146443123809154726282020290874861063589298688579782199816616021879265773791397695764718600067834920876511322009598349717655164711612341227762604065679845025260264187223511241646758037830932899962444446562067772758186047547771144149967829250412034650149621493147214662488877952914936461155944724775911195609211113752670423716310891370712065531275264091312262433064617451985603352561724422621244581341789810212717588600951239044683312401409580422502514639454752044828776770025307168880694905999044742396282701560593721217792949007598219554088345645200160753851403480236617008465164697179811891344234979977462128817992623124848730507451814995018705295981600780115978273679677570879848554395530517149485252410681848875506864304409538872239194306069341170482615957829709481051463895652330593328719949161164990795026450954510582337834542917194651665793027483400637869009997019259823214077198692154136543842056901260402373890612218212814387359151548906685923211865701134748292450061997846919104519420080481600615419340155585657117584747657482106634508989268871488301103018632738120823095864507313775975776823229334787378706032421216497493537833180468708862495332661817601254428961054413177658836260098790228045797427982092230522184637789154079036154962700884174932561992579279210749575265160056595303563081795046305541322540199690822942840349805907014686979001833810563624074197326097683243311713673652980941822214527112757793032525138962540541468003889666326659938761522717194006690618950108796293691469459124892973880522985704430050993458626833713143483131620432618762801898677965260998664395804316759489241968746296717234422880958805145127165139315649496138660727394289534317152861198674113723279602388278658374385198058043147581481131640833249918880948692467934961512880441620922833020808039011011159823882610372425113715544761037597146083074116206897192583705266389638441527049042062960433699790342885269477908216300388741818244139745069621509453818082880738380356978655355880655957914280801189851288136946589370554381500924358732840036475635287538416042417631964450539433297017733665963426177830628907582057882156970159953816372180048508316134186774003972896169812802980551622711486281003349224502927069215077783846025412833529175088806978439904888787073143418803425625789785708431812161393730967788269095265589897497977044765993297259576332011084687115677659538802282136306479659760216623639588218260471679539044958080255053365364079617896202385676515722340023067472182712130802978254730198386683859287910321978810595630893283410793929251342195608866477394197014956433149084029184507866625207423913521680231441911678417942419630346323055298057913584381382646487931887520287109416893899994419846608916773704328502563434387776935367011916640400727809617805809677309217234850387350317249980836420719799388377024070008257303308213579646199926634925148216390136017474872920071434409402840253596781207562886269220417830377441322807223917796144359697465864535194672456846938844414428461733153163346449979064694501838906625907503203461740015673963088601735462546906188447428128854461113086558832507354653558403890832470783203128505789259800470116514427093700907115941189421002343508486725570408380862282033401234099489642220771780562234165393217709674969157252605612515871172085443331692489324519778522688817097396870853608823453365626705417385208418565998038568233857089817172426553690488892432130389695180420567017405011599998365561077074680049278521013356517686340684642542936803056270141119178517822744227131122814236571666057945320271757301379958157005723673380095161679499570520221772922490536659218677369400906839371901993498887209803113481298075785066796804143710540413300356425441017853160673051440471188037937934374131334651689089077543542786137660230605578264552069104684501137446339100374116290018699138210165687698027697728021421455453282594661999088034309111120524098805566632086538153118764884738169041189920598831408347502383736511771758119134506550474533440408899276487675707050507999694197097630090437252531439459775069880918901053551287677553929922998456735146377705101706453510454544205205530343088060846338584840475354484622581708839151691559213242967525069372684974347940026186580315224184233970349510206382811103690135752602961565254046628702398233375055989958944701661681349695198204318121397363371891801832444827613813609397770833362159582880347788542935514674623349398745304421248481581278167081185803007115677368540489571436700026783703063902760013580471567067771139583905162990124322123185175371318457643859567179604018181491359756424401683916431041469359921041226852053954211373222597573496443039396629660356625806239526505721688116060885911971365223345845946998698969016544276472005552395145244289608966347794672779375391399799594402639657334661975461659270884327395826437707772302460038940732597089573993330216849070970189871233808676676099627353355771682522770409101676875401682206642640788554484183262642101666902717239343971822645165869550638363227630056348120506839171316088882141872572633966231961887390895693478971225741685746818259323889352373229604418718013107971434716624687933885005465778886178918263384523277203999033286039244931477538445536346322868941961571326726550447276635547560294182120028083691247660009484454458614143390768701537553040961199195167960170003780569357813081322881174685176192496383267975274917114482261136861418788926862967501750319259798533885876031993129530932030526545870221440530834185267952860328664668413030038268092532487296390612148276123410650797203089390660317241273088218353854987765727848868021319090676621443704477902135620915244112859188793020677627112159941981152081700932708237012451233546672341896193545052465635106132014950518133343181013806095867774900245604949644912806029676105920738306536014354621688364595929642186121521198257426998571431662893649961238297386557944930206923454546627117926776475539422699209280817291042992142070877377079743140647967021904788799052566609916471889289073247578247422466342856518210206806813028418945631291146510379310045225000351552576663855804211348333914070569131405415548626900184973551111707169914776209828071977639982208326436588411136360436030556845485589815480320653682836985028619732005786457848666290541149503480784423267649432627297401791900272617096532300808531641913880990067855811089034884412708477854785491210914811215178299691666472759124472345558175405677217565954655045635862118581735132163958679262180373150977781299637208530394218246844246639834702278551021392558947795270442396182325898091973951331164317594636057247767205012367585903992966644048624625560477824598757390011763471185550752654538432105431619529057783949054112472586470602276357512135406730413672324849394650914885127726491141976403197793007591343640368049575052491124907752557489468044273590780073650269482089234013658629780760383201810786127301400481986351890074746682990007402323103458121007307672896465538389591031866833901289724932608319224810247178365646044212115299884312181486093713095970867229776106284333583261263937649565738168007738055689442180102209845141539837977617937442332740647606290925221446318951401923800673246958380920885566546604255378304357712240472993848624094751251693004370861055619683660760581331926318226715700790599317747648945466489845448553794846632115915494893648644729295182847443528073147528433122774700479540244920228615984176290092273626725009294726289334768256942177073835301217975214762154180509129205113245146671177082992734315291201359000041359187077571208957097589675751489904272228166164754009133497884009317290266063114319365588377743049141044238261952025084755075725999002347845642314494687328609740544640420356512973591270782578069066823560235486884279662547945209959001540249243054107405180931505707518423503119336985237093485192532279911424686701406466049823611272687909338470295834454838275467084115175973612881576319935727482465926368294131635297776165285222897242576221146731295870520943787864738871482100064678192479118269346786666548422026897532635569647263405351132739829811573543621643620768438526757170535698438967651109401725640803926374777107869206731489049985652676964515481254231978413173304715182388703628525988400740147639720498125887027988855280976340244144717446710025294006554449942223882313228970010399445320190999104422853493406599376585549504811861019500759863407871567624946734100715891059981915553456237875737263021677013001987374899905232017452553790386836899189321637728000452094742285423739639187486883744844073998035129863263513399216440181585501503598096967622452775592965159834288495358137887796683375145258911164523980787992020398343427658542561047299899023197295212548456752782346345151067231337647969905822780511291961252056705987525901218503412551500206702084199636531513555473902488440442308401175499649958898071147803983793104160698828653312442404461148265742307736005049919763107822037875468236400301309256693350223086377191550270393166079265946289236663850884389756678973542029624514914270143845469577266650785350627828352542934104287081229989610316797194009124431434879036350810200803594352910349292506096153110556825069243477561011305871541912454167740994030526880815979175704233016103576797395628031120145536207476189153189387313187994340619259866778323587008109636799817787407418223358804075036989250524291297260909596729663011235468032567506538261640351347966836309353612235541281997128475495946283469842930170648109247531434815616520922028505985276923413583171349718793717245128220910767464875446771703667576335746567986709543986171936725119204317797478928469852345132992814043970970413127804088500278716337778696744216191182292214564063762010542864327480120266342472312119545930509168980575246402082184595240628325937188982382521030520539719373917229589232776782613982581431879517487866121160946560648113341073099094750532133224806927311613695497706374312736347207999688617768094143577503061433723074559249849558415398643807961152795093570053154343023592607482430924439292228456778378865831728444252935931584716399860897781215879833751381181732870247543845254748605598719577620813137382997586381045657724745908698272042055743148281666882729272402791546350495566134558751750833598683460665033867702508895065318836818785747660037335234032804802926512956999728260255189547303385613290245893285313457815034735286378812440206499306320058758548283427572881649230962447637504073500830301626025280013317150135246882288367533507323708861468948827553273350362498731126037596237655547404612283928159793145665500941216584880068900901782445685225393670112191943819662618136348171926320996469370546875046724050386998134563091931637955805588166273266185518366697436095968157680952305609868216510831770102623343137129365504908233494592412812691861704220768476248127918462716581315305254578277481105017063455827533684965964661314194102876044222948199375463715131694917736996613414703671196660478178347625195196159654221521941808335958584097751198354279549079658867834082660377045253381235750707043243795650800149288981734797997792769379140564588559888700053454984697198378659730742656370028745218242303472611486718979177963343988992170830679105968180357861379373159205947246372235182507278418961857179660244994003572960517048700696088477581479371294536032358382758565809207276134911996772585804634295588008485022244941568349648250948127702739518850995584171543476932362079401371295752587260262935408641614098330067761166289043138996211564000832367534902234941036606209425431312023390532554004832699438453819921290070819330657328040395716871532611855749606623173965089699286415517136312684521725359829676503131299761425347473756688326863004801230815877411681115811356457672528297313877708172058985549838627277311089085985209546767826181543148813199931565032238037767704803586243204923982296816425226901612555072626871359151708708129109428292400519916955789188321668279466312567041137342842887314999610393836388150481996217529386180128475580030686642563890850875052248621328048368360394598694283696345100949949637519796424840337836300773378490372762519059988847425579350012994217144677135266892123069477283147271479755861417604519716024253154166781560489760369524647366121806600183678387665897744599508762595303105719999687275580442036085877822267411110573046997326466479771817247246426685027026834017280831014065760422853035245593723393953414706156478752242180853975655733576004448684176732962176802803829439262641725733542682862472430848582918210085775645808599031972947021955814564337200301505617944881063787918863910763587419599835325112120059593735090155971670612190820910379559062297894395760561938358351262750257258228158363300148342038192078341620046853131453425333947614480223922302288378183916947095434962971510077267658432054800309008939591948577334679466967409145796274912789905662867876890659731533281957505850540275167239196932920495974646546819492192638075092698340765726918064974053662376180528997977561470403588368722724084832516061412991636090255120019159668880093447555248738289256176785368700166649170869403949078199702493880101441283651905382757547922447345934362938458838101599254260320009536172887630019621644095450952854970530773587712883198939707293200981347067293624662682624828703224686748241686525815562583302067629155909535108014304657912459090614671538958017808587904245023566174392135558849711447311155015733017413958583975199115777877752383421710112968222474459836954045029737913750087314443384510069991718130700236336269392603981496118787082027226735098634282743301519926329364524840699509856167614983801208914343199746952003852439162807726785595297421625084986731930200758169226545479481390378444574302176012263427432346580391866356293543371628893498290806864824672086815496421675773580493706776768752274567683297907467542652951296435119942897522937639402428665805345674950614069630953821144281634406942161335986573307084797355041118801539017605493176948752557709835821182882250736747882859055278156807283256634873449711318897516321671933739355213366756529068302812013968985189165735550850189936700208225542953912321851744332958024966235211194561719008163080873707156644355782411624290663705098248341586876757758924591557379642370918984250223936730111130368688486480259244460702859955518535296611340885679138701873609616303390223963902554103394939514601790923900886449774028013904311528519844803055275024188313809758259577846488823860624228870289217303684268049642394249299263143430884559297528239432634540427848760704490240835977224367345624198961701802073014837268103168810454737892434367768085327279410038641911750095229407864694655027154113529997011507259450778205252847568660768298437198721472735052156184072060641521540358128746391152302781189464095454105940786316335707704296741432949468857169397227227472922390544141255345431287884924149367996369780901027357267470364153311359227093572789302020132237400641507083584942810454811344843958901288668101697062563890044057768544278679274474231558741929698048847796234774279569044782955387316017448444537932968424979628088872174106467783357567252396984715034892530737375678577383481811022830535841435614828050443378289807444699012179285207179275528277312133955357406202974376297455864572608178945520894774414140877216596859509220338846818876878773361618716525885756938461972884615674420519927000158553858215127051606040305692633804052391077020233310166323383121857914228453133011068116930996585949972750303254438359115090096917793489856477420594856483408696578777505070212286930005810516024324469416039036293292641748196638380723591556201567652145298466793668339295088090045042615680266302877445256138942317181138914342673665130506198301112047266096602858655752278608132041333529195376105620815064140981437937942554905031956577069820435510692065593095481525267700503433001012611351275943965375992231419873417363772024591891204283356286092295474093090241877848362955868958455225056561547777047546303199766416044831885495383769222186620939251431386490250936937864425245230849693331563282902796771481217331492332544297461071486475559212748894402358939609991687385746776822420697230812524469271991594963342395799648953376849420037525348780552078613622937186727379905233975953050661659026571558389093380444627073133995654441513504857466222340764739274531406289689978863812481598050281228135656042662389725666715053858319298158637093490897384100979603223086604921430789280993875047747604596273674904930355582774955565064188754027743685476366267085470051503319908203076502821657921310862088596826221725705570091087956003846702390333025217660059654480231302020942913119242751665196465262158714674846714504008916538480617732901329295467098224766299278263352199803077653801250469502563376467600184386184105813039054669764898948455398005236940256582347468715842447760386126005597260073790314261792939717700069473767638371686195227474382268520783979820263532777287743084689393318778685615414423166932477883265022942481440547037438872215445061220227671544735769788349236513319141287243903127788473571142300901528447811017285017599670180599660648345814770850820291891819499270894658457453714797136781481947376358653335008366171506244598545262109064015600759567696443101636068450123013863126096030164638678644796800657543363326081596257096301759598421394965648260643255999796492324071806366893708394498745243513004835740704426112915395040406192307586748848653388024466129860148077014103812248509313180161335683870486179415322192774862105932740062693644650477258018946031972511811753154584278383126848461302195094223566294389934716202832381387221228876462841542834821749024536703591639323475573886419011535932098221513417775728742270715985195023777277311548936711911429345156493173880212403555544473690063922944360540778950361121400822263717655914295638574139167837961308370342913341210668240624922978380367554273758101778040856794745423090331369599146847776516381345410582361797508383384118012826593345321479178812408215451557241765400605169460534623282734781831708394124608133388828074080546819013486867488381542396745501141437965105524411961423126544155891766010466899249582923857629466584484848778027477921588363445873189275747990865900265358568684205285473733808429515629728679546058410190437405855208279315838524166482299580492028278901288693158246951199305655996294401076509774087875692328574739687017667673179225529780087310222593439213328315241087839422446268029798176563193365369446954752444992415497047443972033672227693387795692020544825604603789841554551543992639446736196224355476559041734004086913087727040747045299289023370927408118368079199439974537079711773331444048185064196289147974263582952296158528055393409679638459364395621322068671046303090513025570662380085346393859332106377698688625973118911884866057744210651237064586328711632079581016910934817806227819209285716346121660339658244573685295082047262761782928628007534287318210353735838225917801097619398668963507904039068297439708775826195492469733903742599128041025199362785344306041464979034743773988397626032820782434648233061905024231330808281975787630368543554233720674374864733752322903513256805407583320976323882885967435811510585120933270906749319005741364857550624369215837498397341856033096270292184779062710914744510785427201523950393933353515156752916206372054793175761052401275184334157580787860605905236075811459255910514305399233136463548906276326435093283537280510327697224227079349357486709137310249815213199750354672992501506169657368345168373166113263631876995711306442493244249129198428165819379918993990474664475080034701010774637041848419611114843071433075890454169832655044591977261833722989686232526302092024902418003075519989349649625060397572378646117762152254809947728626809282694648769687063230700782086668447389157055997668302492400618794253636768943692271371866437919361948686037353586126655445981202695368059548948271457990031342681148339314811156443268350580992941917822172981245065082690541341825465360047739332391816379626577856882149702994402732056605478294479756926094626372826931538090148771891852226913166092536908590911805011448004766899048062896586787063869145340791241784288293475418700774812815726665503758913844213402845556936208520169378172114295256575354416289281767026334507075337296084246421939709127145341598142403794845104636285391828511521557489904624722779040383814204473745994327683143660266366582284978902185195817018355643503352671757537892344407718707823005089148289219977766955520527239777104280011871942967551080065859187254620348005917321565696718979952719805459085295386791417038422136681371079568684501712619366290826381312923957619543731892966069486997572301694220299358294619315160492136945375656888753307419162625420003793481155499434732714420451632846280844041464103317093297354978054533755170063896298047166800355495287255747446876568766740786269472495996490072092730210202325723756778686042754780742718614568610415884138302600609673617757981106216438623871480115515546603466849074090220533534366204744075844956225300958743352427048010543389686805776710400779127702711791642756155451233431062288185488163018516710368070795415941428893781564823106956122230947917379833066823146196308131226705951185199784587848049860852871738129549517760431099261741108985445221422048992762332864790265179099328165191251055938865611447392286874214147786665998284476363045920919254455968071930588339569107616638362140363130943265356769305369188019898879877819869839954212367301835969610987197061933575844563706421152976411966552020142252152992897948453364901064036156493102579460392743777695303390856183017329160084583067285649440780329346084865409312431066575454482286434166625501159836149177460247618925542437479863783497098366383843272420214956209159641688751382659869574976158995410965972796412674810277091668035854195951634227710089080257884214263756790686100332450056620472315394559119608926820630019862855289321937944015839137650800756002326679010579224987175653251693505736314337217175916965280805353365683433857453633228427695895324217869027661218491741813586550113505496695960471510418291359648535004843414344175637319483000998572812791866383544325885853492005335785765649437707346077946770935733572301318835845156518721284662310992401612844617533609216091782340401491387928968274451105857907065883871015366283267477507009770561791924163096417247743312657519293851296238781104996760557891559050585671801185616283251086717754764263368458976597522759876421699439638143727627080006988591495699318816898549039671739094028867156939555618424184404669025500597540267533857677369131648960854974737889498801785538465533025984652990123245384252290124550437430207972908547715056047609993617057204041275821721550100058385668751995333886818574653902480781245130892800114871233697860692413808634748477008736383608214437946271766420200550062254673856158777632705445538080410745943849876926772266462523997460965621521412300269182307411721795431621806702654548967840149759243914624136779919940180665516143438395887198015369333625792769919160290005826594144409793013350369174721721922255357027834669240912016984808698569006091298575572448806731052552068285045209632628394304635227511672047022764031879832978112953971382182972588038944202685449448367736565248819589890640006293945217712426693157127446478456435203732491787747417398586123994499952929681536660074264931687421513679415790155065025971869700597412608643509302777928993060646158461133742503638212313150252778787166044025271791263378181165192273387682794482786768114030743840542782998511830102809460592715760183685077299288809861322999623498654763692258079562941054796339586484515886028242981289426413415965632407750757540095873961801890676612117185098660264541023183348793215398390168223103489803316157110606180940785831241050243966801052117865886563549680860740870389329326675331817654268095493192778410890013619630042934401116659570438323096654154841029064929970070748951466234674529033975578529565518792762330660258314892149240369706298980920029677269393405637346233888231689764236806910509409188413198115817339393787709254182166439307840870103330480872744824482235309644555569255367835699003388471671053235033982145190214757291988914454745525001281489957088455909065620753039601372219228679763209855599504694294629703151389527529451462689869256413086589363107161156119553203391011996503292022070259250513233908298741671264869995114118673711970293567974970737376566071497399547468355671847470998025974311545285009993764264287012037543780622468793281116853620595198885992546848102488663410939472054666720143786049291286815968856316414913830804911877760809601264080442367382930766442674487354628415989343956679916506074667587621105504210654194969418255765050066382651966467438266402045167297580340259536268796778337811159810938900581338792072363827092236277054640775455892584017792748315487038151971588301273994386018899180707099883757248841433024958935559891461363704617313216993170540133603163304046372466751197147770739115570823179435893600965551585600983217937218547143313776723933513235582615088453453588672595896995660266140282426792591784192571770982670689777405291574147983776277855496486689265267578175423371948494956377742114713558773349381269016631090507971039683615380826871455863633665939662197946036412864583660142095988714858747015126235261031122517589892078255839555872947845290006470234171274332622524501567812974587625488326210983599009105479955556832144155007436007997149730191883562942289216668787735580482165956820876697418160684934013278174493282826821414697205881464463050548701586912178714079398316581021046993883627214953324651391189633360667517864497330216530705450573226454484314650820835913059054313104436023671388170210819523204894268635352092703280269685103115213160997788448895751966994859716866809215619526151378915901379247759376720362306863436064171064685746967211286981366594621482578626283558018641257215708223153628859810520679908275867916741679121581321422008779906416028727076703519927253001657338834051053113853824854845846784718655395224472167531488354667913450825279363946908571203500022008948276087674032486391724883384887484557939660537373090229461687351589262657770674105517729775368454258817172061624452589462686624493082273695855880622574238763888548439564897480270860605330314949301578823363423198414358516034339195373124384360947982732852388412081928490499821769656148420129335519980461930802326814587501683015279870585434212870123206550854685400323885643794175350853397615844341428221946984881878190775760540671057287754750802726885669751545669099045867704157948855865336919426745290228152859843887490189869589563034117608483318925790215421907946780293196105466503067754555442387640616271059147087926257691253999765729663810322799552089784652855258376377115111039054231342092220251886344625312077875029306601024603616136973887530393747339013944921253307041143549385744931076916158016669551099681942969673140163080678607636559389482375555840569732633193794282736930222147536247639791338939137612102890324576358519882468827740730526803559780166017579365492108420536088789211742594983768773963984617783053103333683671660220122705632275640385291913283980186868921194284858923860464931081652325724129026964226543522803849995829385127687492859183011256747203043664154190097830723066135043948603544732447198067142869032909101370655335623461949091063680016478258506307972482475104770359510939839227590006610138051126323070747701518023145131165804000241066609876559871052747429082407701219686982427220443410715228777987164047543316471140138423359056194730296837699258680168827104076542566229367601564361322780961542057901151838002181901180526686783590031095836837794091951248344909953223909792295822054228255619013909530280426777994540792637100776427098641826976168617025858417944612569177707195250518393953665523078710749941448496947612288716908650050472210916020473401160131862317892493492349900949354738111917511586502698483229513543830600757683328522224931444925510767515917817262831591404754242119198759217660436720475325308132977455607232182926433575672898576283777906622636318421789908820487784316114903817894983061683282035307443564516592080547119699878343519592065684876203714579304501584082837612294550800922417042051841431138546314595104268338947822107768374100216312145543603892794153263483646907850237497709503718034524504514617134395711062308753889939955025447092403606721682192415388043580135629993994490353109556846754047215107735592791352695172214874485455999072360804405510030461675199300984489157539068773703928247301466788958869506829293442274167135988240932212590695532211093661087543491399404830158587039642841046296142714055582274850481312922825104058909781475505207085212066071065796069895321552913558066061732540207344876556903078380742362929558218211927175696902399907875638896934658692888397337913611750903823326959978235585425790461620162305037476190236809699808482417166568758005761512566390192946537464194113090609983283453636858123728896933229848971618107524262489842921259915423514740708526871967697467371003141731668200869470097542775100651340681777070354629046130521234854350050775621662496656938775435429592062556885517879258779919712273896819697454789406173234387650726972224799436099180340017957624446002125948606887459395004210292276625830591176845826266223530769417829075276648129523722323322617186710019308173943334721019811761291604708376399724220411580867124693457710082108652243587587332161936568721103459100689820701101472338912843266886786316663419593487860249056903113403397623037870515093523493137009327024250437920338423469646937525176099940689788032357574247283737365031996813092842785704958465576646418895917834528348729424674166209064363525498902333830205336866079295049059073514910404573186980381956403015046956027965767698803112675000535078474111988578617144407140644001956257273787599273148224146161575033982263689622664072814954469078361532808463109051773989138944639006842315826844643054021993568727124869967128350546527330826811331081404806855906998685175047029499224858721826856863982454714899924998542350532641729271220089211651400922484774769478632737566660612506781115586897842073268819990199968354149236051790323943685636017481185328771525587322019254977453884126911845141595921703441468862314333469705405183742490992486672199504853812789883076742636578754862582615783269455506412631107047930327885015351478847095351665842320613320146566595885351617583810016420595726116700629775244493896700969290168876147600868171280136449843161783954819859253217770546184535479360727722051442957238883276845221587989235257521969727179762285406913215595633608807775077899666654365553286090727843705954972614720688504547624879250451346117633517434034839817648205317785531435630728422506303562695349759804542482430907062473026405459638672281197128190498732442109008035997060808107252634258083064588090581286832116005770518797123029790009102643688397243054563840155448006971156871209613314959976443103019669590365143362957832218455041474547328466342106048107492660976901151510803043067651562745560052586032091408272650017211371358544174327350351219487289184913117247672431381973219944614913781252004035585506608180559735246703556216920519034458517446680326851024746473974105331824565189506947425125424457916502768086594366410517868515891345536876691395460559998874589859317837418033021709888243056993084148357078028359540080365357919661219497778491921866586563638836958623449775152825203317894105608993219422071649755801422446640536682445608460561628798105508415933699146987679245215666363441185437544208327348420223403077063947064065285343742909414518430893988856739335395398911703405637833555324473861485233531808301936854455017548260609455736448754726680004552424890713911475642642454415395781531374675746844375487794171539842877751802041787651975020017746059283875883278987493815912537947864609793080852260719788840134089971474221899280038052157990904320993220568941909193778081837511727654273187618227798748381699686839118878830746456812931958814596656883567384607215240339112942478620726964653433313197543216148083901761630632062629845535940773495536225378894386305925958174361752799133923944026939391656340033339214475583816354321342061362213750825270527968559114274180418712332394514229602919442037706594178529031169925188213286135931522312810427966987917824768852029738696891185811117354189462081826194798017347988214649307112352116790203224938897888340390531861535755592766741486296663076276137823797803204110978702457162101903219361053779120628975127553301655416650676118382190072254699579730636952339773771469696134759673038557770662454522161307456565565964222358088990747569897053717489089527637001627472229702008843167545646244754103877096128212550878329293577955129053839207571186420932936354133091230868898273685571319172631977056180065973670690941877513627539818977765152120121476301824090695573499543718252562270274316192855319126058613273712188375020315630326891112314428997303900313730708688160103488027645043325158970619047983379042784476301872509992072685251499143220408650345624631695773831200026670769180036326348663505448553388597252839429995580932462633490660295785067332790384027313677984007521441657364981040369313890989977584493236589767207016551707675408850979763969827687709939519551309718181602992269855332807282108586120781078045063731029226128540018773778488639228108436513517370560827699257596564857219135647716804628759659454334986247282023538177197675073826164031835509797564055505124290383757471670420183201028609798081020052928284010863984036529742970881572650174896913817202133816908026426135935465376175058355207701666999892949451729031930787589588407796350641976731412591222075056104720969725933657400507637429234169328426148908583244154562393738042134802482000536304499292958122022594527522314310562362636426316319406911602386565670165279002974975797276791588971421219619318432948252648475398439749248658219021726419577057034126480600487378333497445538399953408797897180813819664457286609833415887890586472422737585715870187728262049259572684157755832912337435536199349505520469271557561875312642110042794476933589177460769310127532869184874824050358480529455592278781778803326449156270178884930863604333707258138383646101140141623525287648193993631965494907072709538666864912463603737627453799250487399708431864682326635015751356514699717416306086805375355831394976233915539356430077768589872963694285999069238508483765559406722488635492161018806420000755367273313215732503506950244118799633928571953756926123410805823318537059461329663660303236042446456030965499650557196819026659961794416275274334764590355004736452953410357912231295066049887474118149379653124582387131418783540963130670424750040865989600026868070528376347657614249043248349413161095246811872345476224239346516756491903135424445592186581694306110033208571620411928264713108520255931069164731355643224094403321316326283221916772735334100097833651468503932039926147357948901324975751289593522177533314342068165767609390009408236735432958624491653100059056077569707141550100917804135995542574099259702926907869498983947893058607222346972966557372241549618847075457199805777164734409717590850315322154163556950332319813699478751763036264992348125072661917459687731435547912630799661242014499010852732205055345213033274321103882459530962748283862879966177472292004789829578681663785093115940240104780181548526144503225347614037895874073055007062350901653237471559293421507631475537394078918844701583531996354305064338724828115032885040209990828494333332623738269194415852407593499969461226122643667007230255743265947001930899466477346074299342527590966787703192080018055117994768612252048651951871415771844831377378490214385721753683314576103131657345174381402123579754506923060956665526998447262515834320650799016639133146014783253685486310899033060852144002336374465569815134346072243591301613021069258739764767864850634016953944918930111344318204194709243295996785082419011205522779108327897593106107863331486019782477626188992847270577302203581164930878010056274897155165705231676283953559775884755074129427465236693586713796880111746593969900776350619864869566128875054075190458716039302255162317922928291981170581549600043371711835639109235415651146201176884037409383542409853710982685196207659908716565891109738338683276814559719924571776137847438259302276271153391866349700992453192533640200110178179661019518522911612564622108770068539560965294596930585935213068593779990414405371303191400912654147678693042052416540565504936068266098409349369372745651068975111147807247922668670065946598428048505139540052719299999641730272096773954644653017043761269531081220738000085549144032640802321280070008999266246776959838617298017777689565832020899374408154237109465431607662653760648812897518595366384959753184472159283791346918970189913839906448802725660798626275727567667975289415945435165186349441009897319015295606389225074883655251877013347066612218372499719205018854395711271773598237718455539605343616649266736811017841379011353668307435358147919702120043801789013596304513130397167587382905955515192756493257014575522857510619085928224712701730613457474876589921624078421793847102170513871192644977872269107335131374668014006336377112548917356736989708781767520538546673688832473478807173425786585402425476579950953850203480901233838289904888288447001138043809732655553983213806766274626846820991578994088519666017839204202713096170367527974690988867999917610969875615631446856706341975388551123891433405919873882508846397496277133136077858323431580583798443371723647184299549982846737874219638325915476162648506622598481452370947006261497063619723455730537927626657393713125612197269440957274466745559777678009553058328557836289496899087123761139460875700352024396874512684223752911868528649560999058083405404661646728292927216470430568164769430128246541201390071760476726062785247180500530719731870839930870120495205231218299340076758468338670897905821556347880099712579915549411978873749988394647276755476813862799469615242366840018506848995705985386944685219654140123621050180514331016745963242245438994703649599941133024913759268418397471863500565877317987336929470119130790065920422791087346651684108289506718851827248576904594771494861299887292216563158820362276083705064305320376265992300154545318809139811488762812514575428819416934497632877155234232692980214076458993642520048568415546718639547657869216070704846603153345265470387686345696069105877621037954470766675260422143856354957845769749683167822654444817615277883217116740052225977366773914804158375047222351449225099681244492281883487994860221528034517190323351627479888056323508145584970927959311117979979311786317600028718734672947247362324191696554132225873606818199941857393745234482890768219267400922385836815765409123211343733976825028553188952045173887736737876429713361663987183969228123641256406482158346077779961278994105278621899136331880781352451220624795068106775185116088974536030253880781166874813362085636518029335735825798201384452042759993397441843596434904957795824899929209835600922417596804072373908890472120474610502521306261621918117335312805832587813862293916516737163244415224082568170329427838462242266820991766512824257125029971675460723769413045423752359563251014206883404547564081342357906967424934394605553248953984841399114629650065208508206680626386460584158132761018032449259727112394609714518223940002974222497464897360874253753519069593512663394605976948686669616576225174401863119531878904670060194920492613618210141826658252566578699744067911079979679561093753899697850006711418594510771561760095435138698938264018620779662685156297956534046872270517054581349795013589015075064043008587584054386597825302246719544233968814004461057562111303620805136226429158354966238400583136207949891957641822577843778777161421103290940131110463746643251983671045765114091953550495835441924306063425813601931323939551711525818394608200280159462491419867928546825855423746512161633660923436544082346768145521833265349104440850041944450443278506785042988067455322676496550915293674222759859169357374792893392246259154244336626484840746706333513530877442041143329559650567449623356086908571392138994149664205892095175106685682216411272821732025833017815539140711497251335871328200635379279495211569251038749314803475033942859055056836397947887009962531837568879372912929065564148168292510125200203070013758077397370946579563479176942943965737920120689946008815858050435379690609132349987400597369851256088892393357702931772097189212027948634459538682727879544139572318302018303543778042984334821334540333514274384005471453141712238992584639592675199691083418411128862205838433472393477500888849291788930676763892326219643733740465652528532759603663315746639055661693929424349567829255241382719158539699295419167604826104203071376331444603120264499047726954608533023681781291135449717437610151804498303455351301187377731048839570380665724489356251103922682207532641156416562633557449627483840117672162140807104180070079559606095667950046539751304873564910677273576903027189620883927567030144108163328237631200796953392333154045973905517040752284424979824064758598130518253272364036336897134810994168025384403206662774970987976462731359905575546932250714240120141164869729936393860291175453290864815839340100114798456781645573728279868510684937482441770821092380338585051218091300566872298009939549743162889974394992389602413863923354481555147626259977660018183769452063380210615804474738078355603987412864565583770918495497464033450817585909724803631441704832017992641051352076765975365547878248975115216412231158129310973887760618882760385380518709247428073698781407248048881910212724967916618265969094695391939964267379563833173420830864951190518043741369508712293233592996950116516598958206328567132426782107075401434321984886298399830431296334706592720621332285990811197539421744384008745190076131212675660084168255578832988304482468968805529574125910614391007628448554473054582549365747773256481002328492858544857484424641989222932947141955651973415162283806678639691589365390194903669248930347478388247004993316842351446531013759192523520598115209437750938752651423534598339843322122560183913120468284468512797611034752949864532330305515751130780060344524229262106711487980973302315403535584515909177888038287518943693940463479206452946360817921304621668837248066337269690233352885732568296767864201411498839005538741207720027669522502087654698884251840003457567600311891092086246366861616532734705881086875473010117266789325749893116615820891010792883474453171742679741846262144897216045884030350075639384141081349417578878848600174847134610346996870165485166190468366991673326185440886597667007118079612454289064827704449663023825908754925445487923739189810665325003220533625197633404106050073523843948227857724025308968866661950126624414115917761255447086867088627723713198146760436126872270666279757123398701972900231535389601779173377720389795478151285851417085199592571398137049017890177666883295545318319059927748005750470356505500177055419504794777869910054548545275381033910316461783298920692047310730364695229696688514967120767404038985095316050924104073273961900269858885132224113856966062490564870036110875644510479314174612095752239915170427833527239346396901143126461847238758440768705408755688923821210617960850024749559963089163553682643919736337513187378559368862667421148668697175774550181395494827214304513812995819356834511314291897174746706673105303721879505477967975011257215232468223353022373721351016297399452954014323389420303434047546533904988484618210516734188133060576962662121660705775336321335843530314769539920429704809665557724762056443858337591954038950382932680295043697515779122806745985935465601544547197163386147414033981284995662749398028621123024723878586864899950145551782548033062510411479863670825198083375987431482644584936289833800973964758025830436715116412796221762363819099925736352431329805399221058491599441882075958230978733954793047296095948038910774970057321566940760004403958778508941264602437148806490392908084384544535569429501559049526739033849431488904719394868658493437596892038741809061025462592039130013265287453149991285279064814560712409044089534999088943806037614146276472745763118556129121117843625689381713575983248818012642576238591956699389701203969422657018716436730999714764238284168706254060163866645748956126543419625021037370416169524690501486782492026154315240767327772229289378396113667355589297667050212300070815590761567582725258427083523224581067533165920381487693043155650208167765247389710786854846445051099520338275264725623706009320109172280173698181600716276839749286132925764802452340610895012384730763479851286952225291328417108211158368383743089051558792535118039436364900894224676141868872102787011859019766727812494072647359588557431435060381578655532527967675364615486016327980813617342585816162628469969387323779533423499670323912150470732346477809107688471893337282781333940982579226604421499725712504298438870368086245020470129362941084294372192247711554147356290451676260407368108366091551915537878707941051469007702218896998290755886832150837769784016320475497294296736640370551463000747624110324094415620304714892851627928232119727544684687361592157563867989959925962915534464042914108362291207710737196372294263547296613922010452222697202007576782350021648706977155935649258193572632539164870093472721740060688820145025413429684189107854867493582910732955110621111952387131080479226020970151786455183799678264778749700168131626972467496797634890094942445990165903649540453257130835838642138176677487828702321395373734114810674228760448333186386933950963537304714765968782135646685472458668572235916993357171839277496726518720188424633988674920970856557827791143231758265344460114726687268519658184295245383752357587550925221553958973569881598362835193807539639205160948396976853029826168356721926165102331811662667743543421069784290783963055762184532826165697100267829323514748274092945078487650010866404700143081820138047517983202545370438021113373348648839540578362021135865322691449642979836272798949994631448138729498563329928314230576817663413671950109511411168873367116083702329613596819518862873287828012480861899200389769843797746863917289375226533940917954791242922767344045970282119847142445958909043600577817585544467576948250664840147339509371565568068274762160824088549673392623403136885032600791945098652210805125665716816448705696368047237973645668622380885849972331942644065016178033192355558985999794579142922966280235323410400536852952612454022123241715133676931324160629982000494054244322823263887440646095131165891961416357920930167450575954978319664524594519448216760928579439992066189851935939567722585795906535822151274093000744212649809985452127860403293566444618717505242822273221758025849430817987223466322678387162736850440905461599787177298493510431852585551949799373866499898150897644547003936138606392346368405818129226072851061701005510087853262994921779790805014139216516881758865301528547278900747603798143133713516016892453118445143232272137281431537685334016167938770682962165683667465548390117887291499238030966845369907225403311379843392339625562195338348941563635998945591970955660982644905144367202335011991007375155296884275712313421692131689685690687778783084107487242631258031430365468260128818259124881370119872994138068807469234702436412700288298483425447811889047597932114112204107222868255710236148257066043330796516305061106201609990849872782628305963198267204269280180386048680784145450250235470726808999941652475692312783688421645653186601978049546752681510283206838446947333105817112099326134798364344452982487666658915658234278280136924749172300046088659392168520091645010720035194462359737153469311764021344792292991383870716264090450873255129441316484276956507956394461803706228678816772496266414285283021693650153536555552788763265825082693033281932020866171237977826949811806630024841922958755987549626588790281733219493165436916352368123160407732502254608712335436935793284823412618737425452725195335897040059811301904346292384210694480652913784750773789493556199738788175895175053336389901208195811955430164274082436939181252710810806769828964356980561082049186617070067290395590270261688633428006388452548775629460639334208504295420075175012502243371569579117470845138657350754771370334412240073311131049891766381449568326875302186960380126818595552389175367813211475044192534887191976185979099589600531105591934677753389367997272870022485097477429676081294358502730840512996599021590091040216131334187888413799132131100342507450094956341744831387816276745177333048042559495222590627239741834626668738019199298131496937743917718862752159918690759146494359720737472676989058436348397076325735165997892419994042054099377803498740707487306017988284733002803818169805300852278874840266621134201228342255668519601261853086887078680060201559421924521234102306532902408833221353418946208607905139856613863637234412235918362222154409560073736224244046749445063797711980999430408666367774868963982740888591660150595401193704770973588754697240187688659186463565622794415717602889092012993295041025009487110279701453593137739247351096203264833667448017642178310514477784662708221635412659068491958546059144149355249662937098876041869624787795136822413473876942390095303465478864192721914326524600334399849081995224700246374535247090461430317802637570108203412482192433130440259556168617145192108041731809053847400661891712915160723377034894207290570874957511580631390704694882829002618803115820705325964105928315440593847277307800593383875534388510583316751340689711160800696245337393729679377381999959486355069385349211629383382120303691973405600684959441169272032184219152415194779495435399653320353235784483695641659528087343270480894185386002977747017732309123824902721467311216062936989739779138401819313143355327073536873237913152859904230744458145717348227598453669904820862532225953161498059714985979784110995143627421559760194562071933234181995027601014964059608696068526677112497460399444752297623048473537874974943173170422944939461588073501749741436446496717457259613140223280611845377917753149996358157765481986398328936981389216671333482350808776415970600784832020272223951428959295951474168796420526011826233617360323066333630175101759830663740815362614020305539224637778930718106334231886117016975847697702220564455938175654896645055519870716329846589998714124130604342559946285953746886517767206403688797696603763884523933153519093311386051519821306787315050116027817793443305782761659642369158956147532188648416053898494207562117432153079830408957340733771354710891276379534735388500720720156889708781336648261796703618450077442241770285683172091556471248305381001911231812792003198928672517714530019052251498135208007445534673343084527425250861302335180127746493486162954447874933563033831103964924994428703737804585428596606778226684492165842781010822409176427287919213292014307403294497199920675855660078398866526791800403755842386266753951114040462405265157954850200050589308397442139393848328700179568202768068608887707111483231935369879953786650839483184693146613639644690334061023040181891079998605944860822858861308860690832137741136787813496300939603047811926996158472896823778858029919085276338066890657991746180866960522767030234251234187984957784183833153586911109338396995227984999166004138732448151052953362560735475570283313847555325961032705123221055506244536521576269018706449601941654903965630968465432116109383329540679963554006278290169480916292865864789909619929077889973139570834884876344087196332999348238848869949799632090600243704268371405465087707176492609341482128186060133954627165184317661653964083356236664210635139000967516634646129074677355291397652749902297244180764192144837702933337237815799771696152162034340775425102154730512128219700849392914419174077202090189689628323368231169301308785928068528710558046940727772415525915070136157058631015860605942417589914227646766348375006137465098305024716390868757371636709738870322685973426965525275561141893718677099202193435386451388008524772492100159816306907403936523121909646607112008750130085557345734532604049885324298860188082383504115443142808994700230603155332508554110897984370889095856856790499215222429951838883117575304095077078516617702708057620246136987106498201599238297469674973084872252685463041956149855044001212261269618618915807735962044426088609480558961055470253797749505070799250917716054610012569140192884362618438404994596845278159203251542660333776437025751459801740662908316620555707749532421006075447439463195651002977743316953066927530705982999066721890000402091080219854053442246716342575794564120777634146144141663217915793065004760241718713085797055457129334163420022057240105459255505800663660351890855697724643269585424595770691582539907662043194762654379915437807447776908322470744085258684576786914215545218155085804365233926404429378101879102014575152009949269804845906894897326799226260734577438691242638084752169519371268573561170354486594071163360870876548825387118077291181369928588137652049360902304815420896273676373123425759788761555543704989116674583605405251736029714029714157650014584451390487875762987044528400969104830683328436028030095802925794425730902204145714046156679318611172752301022981825720661911890184626908193809376897689574709422060125976896145653456224328923845410066066426799209842833562615309856936117850425878246187676816306624069287623235144197424140427027020144316780359356767227802664207388356760199447381354564303195757051493931475949869420840686380305965810016282977281516882469096439733175648480862810588841811125724085902838207425726531830084664688881060352600268451552643914140030048353207344140650747783525196122582347186864395966787465246732073180264227183057368813806174985173447856493347417205511127578363825401495230202586995021287361586559200767044224052680952751982245324062539765891071558256094508517055015060696082474825512779102008659780519022414756658182907112960892972410409090133599657109314623354416860673917656906507304724100427347507017150099836827959132429222773748697773223246427750258431948031455118352662089537176070957348383762853062157906878888811980765686232223583515149898821177183708747586379244048945639318117312649702149540040634982923352147344421490814751742642891019277619131668469619990215932501747539220466010705439318804749136812064906333700108474653558694144715236218628674061833046267575976769762297981441955293237755901966068795426587840268284230784757760198496074020595969313136846047567907298375783637468424064336366684050817469532576021206582609671353959658635451362527417440491917491360479794960168360282853305300055156816635060880776122130723589673334464911144131851953280992553105308341799180279324387427988280528692189105757892701333280491036443516009722001618210627249456769009438424269036985251693830573488873778126884853037987145459185788073717134038234939445344774074096390906094663472771299405416772568516052744650596713635854257966159428938089345165439285375292948930152480723411799912170780660148554672780501952915706366524571588417723323215903487955729966198643434889256003228671255085580603638258709429218687624891939522978886046946418117835452123183112132397054973826401577072416503188885047106525844630079035372493487261468410254861009034576511206546090245221617437707119259366022376027210025830387834060406130418882065522909788444654259361124494499021733062639449143444723969926908474528569875673097889008224201071780018174587206746759627241983086021791241820606260974290262047424960273430707858554241117328937363231776129872944358095569395486458641989087088183847244865071005516556433750955894886270823776546778542362286449887635743251495312947548354747630148852532449133046922687573709744163162083368614148803992397059232216046408325517011947034362836669916594156320317246357396546790368664632369956495162707017607799219322799911973275853248860047714140778388897149454227080753610635135317003723583914266720689707979106782977870564233055019686434926849736689698643540028099350764645701129080412348583467380076610780125982647416611569302562464583873811011008136661088083743669437835368543433436327467867871423253205858605301282971042588135383052282478211137692348632003210375995192305350394149345856550139200310871701890957095037963549252651520607770568144818362206059647904012402354707039039668214060863490503347865706996809939826042215689708893115190045390885512270687688352617757695053152965428167303019009809749349869823160389209940844399060123960143959417518435078031665584048114851404387484695362492920948468769947534426083297440364258189426510923990243737617426094734468365212121869371927447595509459766804465607594554392705408477294919278398042656217699743597627301279739726002540802861394536201093082069063143337732963788874803268858552893257169715877253321637353712199926891853947941843487146293668649808794048167061861142448129841967638840139554342284760245280630565306082540894815597862248190616797583480804294367263197891071260748179544360975509615187408108091751112886056491900851447098952714612220535221957143766650206528073310709213884665842907903771635104299511073755280461621012720997962254622077874391548151734358500243007314017333580239120184698192362846899433502757796168822155801441869976409345897139718642228475217477435046723620377469352906571725125014632101338771095804956941142548185648800567817451537860222245479582515296208995330051241730812596243280803949724184553907181083449038961798105672020126531236129323940757353542551601027438687361854585855264548033162246338169889186681046092263003398431385480279928708934753363045682274906029138744628829840842684729324361558998449962278627787165259019217407587931128456976252465516849910143618588421518618954317450618625530395231476230073756322675981752942120443725188432395788673052449935866531907920323138757215793401909574744072057691390502019474478937329790895390184692156173688967627656783823231613958575376838107634350214875210363813767119931157758957172834444832868834551485455638999519933321452415855346975089227960059957102363786361671716959652163270688250319472116004611507345386272077408526790158777677031482490309733788596435501409156415049521188155691890123570624821086177062047169094656088250382425926133174061242852879506432546428357112725628323239029183092435166913087354506654231477045481862559924271053125386866055287899354865611806811234223896173550048382087245366152142769213080669204587661200024251404131722892954091795882441616299322134570324352461498197712139090185114621763738204408377949476434597083078569686868509814728510028729202125060288315379219476168215674321880041127574826312034888810669710897106376856564769841087942942828465738912655932597066867201386691276320358543801263698115442897751252620803069605454098310365471263301727216090722294959626380033687394473777320699395066273162635375357459699685477843872379137025555479160915229763566486304527365332809826820750081760835844125235186481543014407853039894820919460422565738914312060168873687727506605509670323067363011000043210851048831552794184453174963578759867198896108722277434756022126524065328904340494553236346971247889713176514236125267524118483685153451306250579316923321877751738109593397717299273977412370475405746660112776426220937736959758840468704224752570007431338969504133926934102530835317789263527709050664166001151503093903232905899502698014407405053344082584455430929492265016571972658325306964645016895570352262964926187732373772863517880467367420623685433596780011694408842699731885660279366634514730312938946847405990766762801454685135820756954536992928093376006922829477627771304155266649262317580292552442903536990868748951789972481234722967139395003016966671769778857415807862406016040609157716020579192785317455327621702985460433140654092655614741719531657101054093816298834008269780995331591807551850192571506116857182246874139392024595241684584839911028658940154951315811325310051166767976171616449104373943521030034569052533396802320874381110145451867024110783569133047577775182258468742516475333884304403534513294161594300641883371293511667916793617201368415184220545522275164155548578602275558146201985207974940301646331564738995301936062622015487643804861199809383922355427263420946056414461847175656691587555264243447839141339639868869336497000048449442578560221616770786360933532112880079533662639284529893219015229012804593397117937868590769313588292763726986382347163533908309512475366542576235343523592333262799059761324871842377643475535271433849355352360594207870166309069148970987543221931456612558313087259919874329768520840027514472448778680760867039486322034744527659425273012978424206674279276111901714786429012509679276333749106891709215553419075142540568634245031901611664962047626850024891172645667122111876410559415896396012373660721854002763747912540539949802306737250981533206422851660603671094045937508880433724181476434706888339144394625725898227846682537712219416828955118913771107162568906547696881133562203233069361700083149708655445622411383527807515891852468672850752959713273721457734295443675171470964583730176814690679384921213310273954801128511877171171160795131760469557607518012634759328245603422088755918189638019667520830850685117960715280577262870081116129732127151782942416448341352448733585951346373232366043877391846531045015625606983763296445068169129520673441317411635584264220746623153461612254646499246958828291904211228261171405354289958424468578602865190161813211061680729052285400414170460968350262466507585548230275778976395529379530578421062283282523630597524707572412074026456387304626079792335929197412669481712106719457079728735577387238246619637371386519471524206513787188435570645431947794249757434285089316808241367386823182174788568877290629874930140807703406422612908966856196228630715869966660681918262130660186620935258939466226115857840527422603588172795423299249359723111412667229363959442209813984676820229745387876214795892810135907992610330515587222013967351818561876212243671088060706637635460528070919061493262466652892164972688178371305868312046827356957449249387881445469806002754784825506975688891464400447453867416586967120967899946004359923161934689104908035076760195377688815370290273562646491183871044049418327187280874915233541562078116782160936467110225939909101530798148442831439521964255210884719139404986593832110906418962397418444480311239168580047034981096796772537854287985895900447216970350719671821007899418270362509080800578543853598315903801564711907886428037969226582717930962098525464511671697015497315415065096992597157348881191639577302078365894335431829875991420832204988562800858852911961282225662962721425389976289139516316003126776922140046804878541555047001606707411586700672276097947018428855851573641380047292418071560420670532813964290032474016666181959293334257571807058544536334198191909092536857748680091590413166025167167568518814257782490744513095240782234647370373089351626366364073502367081262335870694124522813268345651008047519272648538392559837712650215386745805063394040199624528796255588432772770528555848883069099436582879358917991488188639789820531333834014725231636513014950666876935629633132059726870151345595872593970806503248397530024307483593098584177408327680296146067308581765420949366897287187524655442160834732892692646804104632201340046019903931940815268291694737653715560244306832685608132207731102758283204636680252854362504008450839608749734927219601869678229664334084780864584848629513367919340737045741185798815147118915478054396007369653600672276094973167336138311225620787927019970852887868155961039752861131021839889871360511452371093991793398321661321326616355636615895200466176665480065075915192196019834404268941721545659447679250047201342337608501497884350913196957022861784713193610044551853476863786351232323890993553808449603999407146695315334019945781415853778596134023410611692955414024262273939345663951146604193705771622954378191282162835735608909427395379899510946402954322014515019073490942538998710336708377148622536882422533057928961682124486112610478388532206550170341835587596763148239931652524363770060554892686255042042685954875851269489110172720276284529417689149501625399568795566920547478393821454030445394167940700949283183503600115163017811586088185126178775446094161119219861834304431304928567214637729083824340368586770454836331357958136546684432427824466901738883717822488345126328422808606514209733997226465904986926896462668941567675378732524835361794360807553674891897168291714889766430547134985161126791434076456156269498318998914839405188765689130509213029914170401483569271185978445330187216329992499189025034733347254100755474622764596281834079648272809926567230741574302113180596541872776898694320673593707140489313793948030313108208085927172447673075507888167702121368655781502862840197869195960962675364297886759329276387450534870861651910772851681740620223124082742206044701946793454133678914254653621872457257942687805290144888530329718978325967611350051873181099863296678765598541683050511927476993794649702236901849295346095658377515583254259998120248359196958310792726524223127709676824948832864928580560522180809140187569150274257964663488347463597366486518037287202237104616453498726500014889881316532885226809181042719948320252719810108981166711753039325462390072823919978572088493325752115036640520829967758486261548381556092200456567401818430404591574708599205229135512955503473732771060697976801325614543516446855621433401888367401639387395295283802449816988798114593106575113354161910438643780472320455596053509839215748458249713051021469887082809089554874068247369786744343919879175294741026029500456649598312763111783382042961894629189465377761203802842696033745410826079515056152951120889269976947259855196901430838141945205276095805579279671302976297867612755645977447479401160289048563349988564795523564458155520381879195400263054498368344732054090849529685274285198918950100117126460555781643082552379657999006556780200152891040063133858387572864646828094136406557324480994750682498035006554717650327791816635346187397812801518331580843159867845478770517964366864358966677552108258687841112893459292769586454365252584027482962934979593437222992705062315794897305910989591675027256965631434194697929749308209419048568728258769919633191723889235932675109799687964603294232714943356811592241278987358736805377962691808715681315691390556856765849100424647787070513134884100010913899689479023457418262245554263947533814834876562559345640831999289916846367798366382459925807080877170182688590458044569054168171013748682518383525599436090627699186336927077365234633138190294409285942091535053722942794309487792494505661665024048832402603638973601798668866955036211806739773942162076109011469360109338329790339488633344733799135976861702589173208404973304587708146738529376762378159293217127538270992571949568996575413695385811686155376198170307603435764719792735231739189730594378070922736633193328500598127553832738970838046027763146315665114968369439814285525082291264523986926387952930794517211174762103554701349790589532586870408530209491656452183893527182921335092690216109251498990788740081825859520723515700635742591573312021728002837093598370807728875660738307872401457521950265677183302374628299354102530471149419084602704913976146742022204572608684952406404405355319424550639051444864624290294535084200911288291730737108772498629664733091300988204455673769643694957740019781163662839210523389512558965763709020936989224093000477212843151817568903358518181017641236982261254299841671924760918804336425471423958888334379936275009524229487213233105317682124768567699482634799308091753251547835775618660478615134710074020994199369909622055381714266484930911756547520025263745640139864411655162793645538570367001749367833901735647958691501159985295431604458674555697610230842020381167013551824831419492256547721580548938404204760110224717728845945889863192648553782002323876204599452933991375280108423561945596819167095594677961604948552473440965748025649073302606403659660118681537584716260364490308411438506984895148815990156548024200657449099525594850918006674635362983242253996378456412896149054580445304214359792951272769961689179400484146808829676758838402193611666420084289878122267426915626005469668340092733808177815476893808227260161750151490902120181089038757773036022138745658372997236896482032678986035825712626457417384674844745911037877141826977160491206800829082392988154000381272639611505193662473071482242639538238440268183698078464510057290266530775894658790128626610399992801488506315975682072366633189762167850415765997495248063836185884206113753891430801597847113366367288147049684855599805376386748348439288515523235321182648882804978953952612015103169091289653214687242976606576529376403745583867997122791684998946110032116423085358480679904468576361964477942146512856369652612672793035672077809329865523563595373364818567152484500119622643395969821401193886285059247002398003479848626660963218889919263910923806410963932773663756264190726771367153743990296723274619293929019103515568892344377240699604889608613293097485931226310661836686884617982004960898033524221549656384081902945151372456714143763719255632920376843270039034135997723572496811268025298400276650103405411913837577917642364300329613494187901028209508999981690441302826821255648580626256431297196134735057279476477276272257550501389224088626224520901249833075669012009227442985553533539492653312489059342989191607252211261295009272230115871538728906470506409074865791376569541946512869612414180196089225609634667897021166298524408221611764132116720245244472961068206714494595395338600609250114662133328898868816193100857057976151158627959871170820484207368358116363674504435017266527315211119444596711710096671847467924003059453434613360652600251824887321032889712703735250500537798928087501466691367624026359534177884684473831432981937239558368002558099412912006082769253411723372701694537226503869346686925557656906158247399950222525682451122837935791618485608969930879900422995911784062369900764442067049647620277624207614906733183470080594181974266566509208211363626308381343734972703078269742894678522749461110718842447658972226390663176093534347001074070880082594775418574753925831074016937486922214225164771488802689031889022950230352784039163987841018826813818413502721174337214095543774300050947474277532727149608016960832159474107067592873095858218003311288868889520620551597501042907272332059907368804872408775906054962652362458517376635239165592534632748772368759222539912197767525739610497110175100487671205983557176313929327066922842874206490240654053737491953089829143867288425487767273581325105489066125747439493068992934013044686913784641812454587626394919610514251557076748961949835192908659202723116348941409414232374529162806388250312817110545316495390160542296606350647251033879920837810621032984266293858034720768173899020194380430704272660467070251110280173638167709484449404686995447037503543038160195035926091218609140285954477964506590805805614448741620045302364940520135347075025902046846507078959973161007875220909720749385133884172791642168014085257966070554207505366351199428950229828349184392028421156508474130053480132781183615481586133807781282048367984829148240038665219904014486054139672606755736586497685144845266347265549852354729768753397890497552584608130585213569963683913193528430533472684527360865454073604984247452747503527804811454938456455889310137737646493084074169261503309694315862565184382967196742021119187110625911504069977437455532525146535226685752015465392359806828641668926222294713634663003845924474527888388636425744293040967959255686378437560810053187893440699913870412205242422536414487830841319993982967644163616759422077849490596133269293219579717234804068408110101142362579498575360314572691989477256300326205479276866953647675979590549200586560202345515879684418800668861384208905022141641087710713033424758346548048778603604967557575435261298060942858623262318472030810596987924529120794844061735373264655398484404695504806388389709633547983766713769532123815658479500792140010156081905337508376209174165630115722609332257484887904964419424523623770413011603622511134908138910965890727276241135011140954810602620169742256076801496011212456971144935875021792980508631943408082184121319353541798098227896917108050110426211874553869294893814005766628110132443807053463938955938995879703873240027262371883206872904689994623974201049987179199498137118828854077614760362042441186224485989425551657598568404008377457808444700527135335323126384069375065356300329782567007473335433410016469041121247091013804940255849454331317891818662911433882323950563717865231947939996703165083096349544693906999619391975005260263807325017230954911685929165504514574281167110638524727298629054717535867182442578778146592650232471936920909673173333498661435412426000935321746165815277841011463290163677068334297157919778345268122104943083526488447213175907700242827568995026017226909939476684250671723210864030685613366113721731600945170048518652981996573645887293841499319093488031895454446553285906848430498442811837839819868873580998105201842337188468242911458967715523244460319638447206575656077639364747209463293567885782101618023691575096727370730016426171016958017289997594324217075653577635772471947555424614735592773968497023329108625000723209758944027296483862103288633132013388611457464496125224935008762499472165786510241094812970088822487207314674125549532755592864829513775240061095616731064823959545401228201463354076205472408776777084632519809140861074446175274320318769708483864248363758395601831943157870166204279176166465035802938691007390997026934456018063491301980378295286875617230787310253825422180247686029539331427247767949015673976216204443962785507162622656155107871748077534707292355689016838517610774080375731472695113362842576651743110498533179181495869770464086440372730467204045427721307336790135091181962919701504085941073300239560586241400121232030171604016394061450083808476753977999639398339001548800902779046828666859021172487555496365271638545012016010823013805332718442326320624961566828290372229054017432662958728814400810780798745021752522735077575977333211887599952924440006736280174490487157420169511017464084368812481291662138021799263564495544504352928133641392691487574963328274780780516768134271675499508130087719755387510662064090240249457094761348543517749620545538010317629913679836509619275156540657364079368843691957189508124977554298985193851593646797664091839981752532711936407081963665167028866715030077385477977803253416678355562398930495620948990025263291889412021460648668096996636054467418836421350930289574248870210832302018307513297918606005192780135707142903332442812129964171901190710436113549077923308892895477386794816576660866794965525611283038904141932056901392902000047076629398525248991638161314691995084862549561932412088048209515250437851052137826520708097107671825630775738552999751839696081252303484667541193193767836292225224471213860069794428877704409413329964997495829634023211866316885080241800819620922797967111622824247233042410741380712825896041915276923765403041212722964667659248342892405047746050976007499081843826257310926106617284628256977336052773332711962670545416715975065926426769895450930914492329092557493204236400189726012113654181325824643378411224773136268879208890707928179415888207128970308484609874151483700298617939322555993187016767432594835420093439591304327543829644726930265404777146943227069306820654299127983982178860333596786387133391055439610799601167429320089170897254771772741924380975920296639380724324001195675287441183847562394011021012333358895547161815214276771685974082165342073803113649742415906316472627988852831363038001906175138873695588885159260997814034448205808436801513899227379225990374417428867464403348846237560605581008471314625029430227955586318688750827206489579888270815504616047358072345152349580120682335700342014249526412869671143012245700944912729887913102231017666307129911303739502548528489425486871272393059708413058016806961177434752335476182015728246474117819022953484028123861141054587224865783960621700812278634057320714627708196804083546556201644962755398648568519544298985070969864340731684612314462042988536411332203483787875908987865009394902780818020969984666957173985098221167503928357649183808441048120923846617077226806767715980860507259951722921178399135415707239475071605177597967652480149939583436201270677442331047501262328347745963248655764483008816519696282032097930695274395094602942771042047481685891114098162534604391151799525709376941068243070786443404213012038255042447501810033181445506210714253926723578231004204840589347034084564153242374462675980032723245581710461333421965316815471103500934231525029052923693267999776097757634140776119168483582620094592804792224915193029215253850027365916862160561822719148856782757342119730380161037154199543004743200924413971676051671518486774598105469072444369452804290517537805257474164295188980634211943872520653145406486438530787180685236527399701822633770393526879442741877528976747771632074646058465602035162446033958362790801008005815516796774482008288649887992485295533765896386828644310281709010667974084653713710169084773605427319212417573513838272498296919136847835109188729156368180325176002417449295176614912222837289465841787534603829403246688723796798375916906736397158592211243610486441718835635505419888259042432274229077257810594568714872339851364400935950119550730990766694645243366597751462983958256418030350257061172747419086600576854205744174261976574085949062403935963537173798175284403520749780033271897173323691211016950969053733114072301856436663541742904411313898376691761613326765138976110424842784416321885348062883699493447967248364814462710766016936597681395359605127146358205536620672007381052746900912397821540587437058049153570853961956843634352282294559083734870842224748436043544138315830620212057988712235127829497329537142154341421361965214406605058933214934327612510893207009710851489020095602463322993091322461338359047182822845612919554687684194885940883700370846066681310452746569094441530326916297196957712718805614641294795796853855663553646317205968383182454094900402027995393273754862411339526167799067491475643465874723728158007439182844940818649302457256808999538735896914864360644007096937520538555212118224522500830700608798749233638786553169655892014008336050045208917530888849449934750507288896756817328437074353565057328869454685090022048985740879870898335858681333003066736413682549630238508143526507004497943140748162428741265140486808173800189329529103806555334500858290193357651297711243463405407691761940992335004901367037925990494426596820156102571204644910056276383222869883803815339994965907750365767322139903732467956622707826614671381047899956978848600795163379756996377049385235022483511773498754251538280810346939225562935928593919912100455711199875608290195472688770688347201505105510128305781210021450123104503201827141077211549999988036010566189946075734958793290799781475060744537639180841742647314581046985253630455017218772171143860213195086850842475395183619585505236189636672497685838441483523221838479752929586152854663380659357248273249099263110121791075236858565484375467070778838431356942741312670122868098978229737247197773738992604535108344057565953705585809277065039002202836330904058673729029506553563265937927808725506833767170691027102059045103197987637615894787743934562224755219744223812107181324616994856039008878566231364628085641648908315075618993126205211413336075606440262475693279998700268300519885966284481914014792827480682991141875329424258485986682931847555550387161086784142105282546792347023804003112228008604699828040314173483134583018455944601859460595418585364016962198859303345570083580393445865072584865900662565291460836474113665518246361123947831388117868127816265922067556103932193133702812257138734091356648482830757028976176803141573560989307667472102984727836360029963744601762949023932743421886693995443742086320781734831100899741633942591043465065230618318526126378720918443364304119406449330679911276139754038528860028878010796391190575964402760369238773999199761995678543753911314600885654545306382848043248063499519039037245636661910881383761596029739220765430198496666125279815299091573044989844974465376608288899824690959966245694064053819306979860411850134628486541413864493205787481495911584485775181646201894954850555853872218831507333146640270688480847088810605489862919124527370722133337292030379059251895054812415978707785553031905064953423863367584066685597073825522214273612210160918099447999609656110085272183648598781385512567332460528145640026919551072029314281061821315056358138907382348749891137848805483601533096592473850500419013008239849513899389577609849258180112597485925374787019252081243424791459588355981275536668080656403122881847842497866303464793943682816099970514438774531298072877146988094021323988527466761787905443990778542334458025465688766596876035077271462246526247600062452473803441808703586117496730596589240920960479877768056433249106782904840593018368461567689272746272670133648541602222863890474202281900437328841983491319565355589630192889268291485337549240475828288901122750650279985763362802868709639640390062432622163196149177385776145346837443461838598676068997966547492503283694767534003774040140207758491737348578031840976784995328219476728857437439468502144642708506092785081954925350532991655396167923112937815636615155786528723969724246988407172196006890250693889942263566869680519212683324130472936161641360574036692858893249237931598447928500461203967477655080334167417145568922301459885967093381367146515822373510455362099283463789364141180522088586830604939529805395599138137510321191113396096011417237788244835949862540844077795688438442738085498821441348585417315411818548173640129389643679497121236927402021822004160023476720954344586817717780165678013779991423223135721243239968617200019663092715181369614681528841511757501413328496374597397363346809801111664528468083860791333557982141135795445563537147097874386093215256882617899057231848987378124236173458516394066062463634549788885792524351830487620984433110583649603830915324726522557489621846244200760565646325045814073005466270640548142358415975463898634388616592148011400596294868875028731786637818112719711873315883219705298560027865176099530419905699127920184286304984164830711276875969169733023637565765563204152228255895875580516141961211649407413497990245968835378400444597720816944541102207709754710057084354080431554780406213168445243382642331466230288931793915780709563141217201893907899070531528353393887222843704899028852675904160522338013323772493703822492496927521777999260811979069588804272895731676573190948481865771171020321824568963378355078470438084661468648327360631984574414324190250744255665688321108807591091225193138982388014541844675126669158316379962010651576377644805686992611648224214478394068468556011348197554400755437162131016410120143444070601344227208650410904667600930263164444653092631149264152361520287038891436908304130349282402124310345935434926606810962754491826674201447124452965454169140170823194595958498640591475212805959106188660326235564875710934880690955543854709181057021178449929907154635163120705801121963422459824333587870166830287628739338089857377548485206869810374941737236797388253692225521516178064164517542260623204495421654167892454361838190860483489214218332670580680006853325611718434608792016402080116519919704160256890190368664120107128520467011894439253888660651674296936253509329889293214288790826746432228847128802570099364635391113173639391529480336601355220782459381765051876321370305010451728551886914653282769313292227643480872473164962424116821744378599580659021829255184836592619248688295667772632455533490863258928116038018848521148908227836499682904109983568174192221244844538675371526079269814638064902351750198048000221070960010447955542869566807455857072660513499484178917424820470077688526193693562148487040292646079587557956994048481072951698908849284935596388458528611685918738785372294305350147600247367821087391148004843304833422209375040426106735376929135001877402783331010610545252585556404103637177713341618059117785994281026505013191256462572567192772395966826536432081475464742552570527083391892923338288466023897610656198103440070572054419506209920755486147696683430691023331160960194192932548819780366152072929165689197064870305149106350084789341885432650545710524095246435003505040599950408011163514231301073714396061279333963073894685234399666563452106250956128010429341724836139777557542301911999960534736903111220284959837822173289600129263551567850612629939927894201672795059027715548323837047219717533781970328015002987615510168378895847275911282618863569655347131067469568970729665859590803164058439028523236816125908141296993368401489064353876983333168847238651353239928607856065860296662365518120134598251320754281811522058371287948745009246908590490548553665906887806637820247776033703768653619211221654677111503093432216851205072027125466763714902861993886413546574671296233768247558272253650324041248360946535169033986517264407344613113475166270552317951864378910761683888830548178520530351111593341646600729613648955236054763097751571235235842466007540724068868600440122298996551413455335373743629096326828209218434519162466234754260183399589163260763473739985196170269627696060055127605870461671908811515438062873808645738735600695401923013425901796409724853885530700510970532980615568124808658562719516180882000693926546405956674882850498792566225407292228477750990798621619314913247603176547866115748637462481799836369603982916972065861759172735454772980857826185667322089761623296982466218670140725234789983543521140322318212767065664495407539974984311060471464782836370553347941237888283311397297880506834879478687324137808586028687237194438310080773652754197598547241715443145487348378785644633668268972181767568398733490763638644542063306126723754268507042203818202969346885660744965328236596563972062295487285215040519564045279708231182830277991670347107973252461203231600917499619763169467041894246195285262659617532066316171740454995246936683029833440175193201040542586037786486427215375124734553862262663069815569452456266714762052166281861545282277262995086053708604290339144742072739837537530572813085423950090926215048357132336898231539944895627262160821788326839758035403415026747553036604660841157552703040115781753253228537184412292084092472857211420922856554799449106891924925068979023671084768164479137769024804630813488462187633993476218793855442973398868167620499877290769477334984655967373341234061554318032617361028756648484230861073181013020454265021924660784672652051425051597459120767854137558455403697367821056696770684166012501150652795769587144938760517400094516982713449801256806520964339036750606627533665468383167134207838629696179986662475654849825678260741825505766088922391180936345250638660976250555482726615303755999487427386650039062069863515622572153518108407119863395628867966666153679485864113178082610686275861560253599897939978528741998408145720372058119648766626501056398259694749189653776659355794752847523663189356415542233938542640913493973291591060100745382132763187157475299387685959706102748008453039466470113230061046506759892689666902661559827237333156351676695219001963940289824250847756013610898593957983630503416675957098877263037608126722071424448322480067598615458774046966780534014535162113145318110365852521082189802418440195506348588886655784821146734253793810450748051127007638095286574920612980980792386946114016914379244483956694106934302592445914945669607652639077119724431879599576500907154504405615575063406644774215036703252160238691972399899793786126286207921528041766035296399851008074693131273387938931409592888502812372004211398490366912833781573606059036078190207344130600716145544760052287216568870450612804755094022382328296886027377802171573843278330574887537469630073381042767641722297843631528335509141051573683314379769965583670728822489433434034253723687791100149489110216173641149170980549877166212016637111420664690175934527205202708099578890571230749860208646269189296011783448784892994641802327315124188176442642212871434139846512419016723497804309226116133698014489328169837386325440352557623698585991188158013279693975486516399629716379218708403099778468620762505159092063952878555819275360854841812802475287364526075370725778854664001322596461185131247737085889887440862442795266496724756138036071226129750420010745422856736239626499320200282441359910271201896778134399130783464119173047784285528100805890497663324011598792135455847677683667085536471578526201798006966043211483364966830290062900485159956004783487824977595281562332057750106895000985305669481597500538089921793615497588324611766425610725079313885954073621308546543084885056692455540377546490739223547075783390798317544152689238655728351945574635176674989997373010877608477042606454587448152913897199560071746208302745033437834728632432408618560531166264596223361430046021549799059828812020062577331181644409236099357260449349759211640537695489351792098664368126848180759288716725341250864899078323172196845210689859514761755604879532125442334505232103673288340727752991630666142968650824907919899990401076841559160797111371090262429710294802250106905551794157950821990289657583182998009234547768788212661071510120069245475919722397493859414554487378879325586090280486881572343088032132147934902572122257126500374953010712854327399208385764903719104269570108996569052668053477448227768943488274200155296418312441305001295050425665873508450482818003111772471447082478672389991215188804033440588630637621655588300387346454212548095973828916612786416423952420705499844516000713639136787185616067000459742838419536813735304278151612743309067894124867817329500020730509923150272268905207591039768537401297818646676187489505310963526343776578477405342079260232921926257225801226530900947168319289053965931570237427807730994632588169812211740888218537283967045701919329672307490145354874679153795366839058328164773476270910857210947360150350901092249917669897628533501484845231041636634148914582025027401377284625593418149585292651994390395574759637095784362388785721082577648266225724780068037761575390153965973168484733312216295373085453162975952513772380606092301606039324494298045198579782608293611518726917922989781162632485312373052514473584518383270165559681006229981711623363427399911627164024924656646360420196619131823850768061091300633866251020338580043851973074250618439043881142652049182072759156350699319729965403234682289694028276876023444248069581194443157287206345417254189253338550601008916582866349059391910901594241678560422636100558512425029483812263509796909996350135531882470323925293879346712163470996811135748048439189934911512000914525609363418181677063251363526232655197330248275636598464401126028273121622254638802324515700034967265232349644508309223768868424877176719679933626825584795369508383870399745885419029410384124681648631135044134131551357823451957598575352625161987757676399747965159401009863458997489460074717458734087108518529393915091426307798770100030129365404273110994897072412521805964859669642838620546408780528177584532246566032503172384509771279704367172882551702780015093247483866995069064356278899618322132207094590586822280673615564224842753545881327911809649252743924655202976155957853934617258594896321551193542894618291184217527196467867493246022900729752001627567137467844486600878584740226581837177108509313952867169659384958817351402942568894120506620274765189914214896394431372033977312932449725825364738957635242806778556326963448439422325297428477094877234450612544759798649889460587023754419570402724907711201975996384698260838264830692941114256910386952236204382197042301888723489372026309787658502311614701146725609232981196732700185372298498542093717435927748795968179713419419067528769222453148279352559263171076473195844175364842579824056489551746933970397814857414223298348240838247889689445522238429854429526156028163371552783794438629596173875973047291555211314268682915566727453211993843100610682976392174073315994459991738839212412417253432748082288832343567012589993916753577100584768283453240763353806021033345225319501562519029394648650323936954626929540501428532153230873250677011335020051079220999783609829425809881706800217515161969434596708255663623639844550661841780628964647476269528118099138709502929876762779381163882472062402520581079032507423927797975480482204808950682824654104591181229773509895201070975220370418145759237009172595175969499725297023526512299452562612207058489303318194642996532559624572363978103657355811776323872875840517801574733248176405190430541213774100548512507250923226261266098584045531517284163966431470575944996787991327006939117039452845777787429838421362768301166062654033534539186648777827955074034689486836673806304393972385023106192070177510347404226477247542398563480624764362551741322799032849085542121085314581084261417524246556395162437145681750236485194935302921102961817383500113598421469168202432223864711845772945631992894864979048473494435522321840338892835561740417264939846706876186580541164879034212304887351616605994322690872668356872331717811875117480982660079620175299688975853343567628905754621945502699085089740821482763935241919361546450973922947144629375688580127438724628789650688062849878596813809966222300087845696500987285642934735638970989821902722171980660012946524193956132402065404264028390686258054783441951547080388461335660838870772370657851652130278893922570513590241721641270603548728253367251797107002915267139643373545736515025181404602144038319221709560082316809666656524091298687061941860724146969342904869716584458320269866476747902440143853757450369073057167878059936829183911304429135929470147326521277494642604679371670548059723828102291930270555016618820260687050480811066344404831883049312780749489039338716912411992642343027457474437481488716262357435087098173189784928511798448345015964518050480614456111855414171842820702158559459015294959028647986337096202646995435387135352377175990751754125948727813475041949111837378633175172415472075986607126314111229563294880173784773891807345019447481535822554543346821995093335965370368148612928788670303500192594055699482536703754288637571145031212568089431126793000864208258571002772099365724886158646041643824175724225161865704454799272980753159767233829430214668914373952723551206009402659006412029410369250713153047602562825905804404317634102377945099058947949343214056342475894561922604387907585715037029140353406788570578905140718598911742267921214535628787776828750397413848365431761043516415854498506136046416462768070856918489118113156327934249534803167800463976092368609516700166188314760458395865299988711599000056660623431167448060057782681092547046223097722318525601969046253036102563803309581464315242402140079372945835845387230333728074217372944269845681697510349192154243865830043421412512169466175448544195541253774265600939626239294814544346057950585431751218519136910565568141182297470071892731385676045677842010800694426823630420512382223536724904976618603307572562953031990409202341057692230452958907810424004120783820555075718178200397959631299764945251605374061473663859628157036210256699701725405089536692326822149956699727770997012367477039375414311045995008069905046903430652846443431386877190433079970450695398633691636630019662007178263604074791742671457369652751213840792234178248341522227845546175283894297501589256515378255432385541915016802040611174960885239604776094499332816217918727919541589060941194030091939010029591797777223144457263924634682837564206349805992647750032689100093299571243791891186986935014451430348187596263888966824897671897974877687362124081374666145112098695609885649325938734324157772260429598197572931537803136292664138288302923689227978220790131549641509683273220681721230467065499125653640858870994991617675365274399358793633589176264801316536110740547304825133807279960577907258268917600965762114531690401765592907742584993457582784377149495561246270232093941880734118013844425172167425225137783944729221584489186775856497201484022549633173986585739895964587720580942984950936977266644362987621533896356858945504220482147364908627003451788348846694510653807744654931918254084349302433164084400564645445842749636924186500491908813473242037515773837858063653134941427199084098873545673802188263322948553718329281222910379078564957409123615808639642290277662337897280207015078472349191675331208938258695901666472549128334129756031173420339113980858189005981579403471738553283058740076742584029169968530454407427572111828184818125337579853394165716642941847540968252307075495897905034597463379359548502332868179856465423652679559896237960068740392534184457694258917294204794767205417312382529268216432744749529936459092311870693270930449053082221029494547537375789339052411387394486675307923002350130268159139946119324650164421621276638516623609995350121801095241531557152258233932569935264101880157347446861607602437486889877796271625360392710634106150500484993529554020814554156921930072526940157473866794861601594799579643142605186537345744976323295007334339808336869496309044822562191676994474157474648245332376554531789124980389475553225865715515262269997641437873172324046121063994659277855355426019864128883616372347409345312327709657850955629146330974541308353254292834727631012636106934087570053082399578482451786961611313097751189361365682325463665898889243526194644709718064690130273393018687500301246985308091071583183236486831617903096433075488369709237061940726103073727009013591215762331250775468583516723506779496602444703621140431687495577765930575056216439137574325226290566591016432783966147876726663760300307952487583224174339103898862560642978631377175395533800668340346581018687198321637884853235576898018043597254665791262659518837587305707602511072460089226095287685959576083220206766034364196441196859151861338751844900773865925944633739355915685835718877913491811414271526012386889000147814632063531470772290659569609289290685619510160657616039999703360913979174486719965541052358377082895915067557306872703216853675745756036701741864789499085163045769845558208451315236115186156734796893675222988237800903001702816254597438003508346173845183884353843499249668617403662730225290597829255505640075531775937831189122723154698259438604064144939499150070417254097994417393377982267370403840029441518542358504339068794641132049085291220507424526706289501309704681500487729282645268515314818294360634530515712993829791222864796738501051249522065864506605459214691315759178074054951916856325991228542164208223293827012414924662911309776404740945998008245739213155998004988189425921507713096842673820860892921132700863854414766350989987938088363310953925557519787843666782663256396914345909263386304262453037234743688464806397337307598630470915161030905463490784933509175347137132270878951403762168845488614330689950014701156963155080950764906023548459707137301166285411967359131764198990160688342323232161157286983084532988898786492594868761936213745423531685886111298841186853079315194717270366415134009430227445055496691032595957632154975845766983744313524975266747159096334110896148238733112674308772720978525337486173975368820464905008104662879906619401797311502619809213602126754949160631192345887649344217007866712469778734093082340434936998431520654083410095846304924854559340390828002639038923432518486334329778885339843218974218054006087747859946445067112187159773943719766098479755358187011988081583376941566536048833845395074284021514914907634935272473535631160563526246181148865629883600431083547262745134956521223027675870833551148353036639091911596131357595785613345374359354111255144317943413713941796908063985902413457329901979361577664064778860447633426489793045023901113439091298981237472039336883817968403009531145543124261929467348712960177169608388686561733874533289231181365702682489203326897157569488858414642928174603346633145046760709507022856374812117111572759570951859534252689338776195759185150947329193341195918565372978399240799059394322618109229433569513335225627556094154216817649513862720872314438186294308271877848326588323749577812928043443082578087681367383634336531905123429227720729941247314130434317729727146874666643190256114254097190078779103158933212209973863392050559334593289540964190797989678056032677383586151921631198152216115468302284311957562269595258572094064588023433890430355522321457960731679252436042555672803293930189896785489380986982831075046237704115812751571080994069718198913076782837854446831937320890570371826424076831247066125731582243782430644047982847723781827842206583458635725935034207142056891274890657409686901363682266423345369922622152445702612231933528811002875811700898888388097909130028374412075353045242647270789248595348696443521558084671280378233028819146352982694947613488509492301659772741956201110158137799500172849229511545585246366652099698882329261529183921928215364835927321812352948454586563991456108762478729158738849780362920478208798844615136032914314619589433472067110076255653264281197360271724253338153085226786195504485595203549529315724721807324392814895633308284265683387925124249650783481650819848941896868368909796631277000961351483934283881276272848426075263177783197698303433912301719940839857201446856562340273687775821719622139538950227521670931843057825707474420792779306341972869655202828335820006748434353735435741793731076352793170555063037666910840450914295672390985254516499619748367178273184195485134258674023754907874976054050250396661316902266422273221168187478791883960637507268291860038013833506256052540782342608322362569320258480302097142959896501380465234198547512113420218327145047087428404175341254046931649949082062644994058834589312214697182508278064338524508962970798083011586933391472145199103443587496727460476658479563661883036501357150123502222685271909301175867234159849723255305954788389886633633591822003670707510117505505915096012217288709773213272405747837557305333267795362726117310371953772554504416042842843258008391346132252111508684653132123852690473621302630396990531341559282034360077260032616196637901611071462854811558496786361984370169914850043272066810674593823916587792016843779333305249821653256082602533555058138425202685402125396382553565232991782341068966222809497362669954370385675024479860576083884156175170489899221561331528253799859764030417242611867458350509593912004958300327196952574639682023836404040319446689922355022520165141974182374598036105915739613828605400453296294596748149697488728120868910772549046879060252103739673179020676612378824874244454737149594108677533642733467416039225573009087958001190482806016755797677086488289032638838715541632190475909707474358260255582155944662276133197681048744434816226419162652961282329018607328899495435612708296192967164065471734513599849196878938226807655338475773469229204180852475481348426394393444412836865927277991036413493113496967805646729710879186712831267807773247378879997240034367961648797397460148832108230222918879867985077985857030964373403932505053327947985780210804036909866856713199531152806264398443739032246333402501468094036077776549951438980629611112212177402527910313843515033185061121319241610929580911101260798894542802416156160674187624179308040362014734112549603371996784119831613461956225234094462021929729298377652024006512584074975758080710428011802544587430701110598898908947041145751518107479720549452995727344603206889887146684842833417563431757230979055427158851081933108456130940847948812295722866258962671651551506720716876721098642332463925342408989479133094268259562565739263602766931885490359899797970969674869758096498183658365143327513534168168330612034706572522537700904075535024931415603123761372450695826071090459404160727069432806055008295468965511225892673574880301974695651386854846803688718645352775794752856339968889822328939513165182271185204507745440464068598212937970876517042381229785898372699147356689107867599837309669285083229281755405555824156652697801543759277417746493133438254204938034678330636170040086576431516022287272554404946788643341542233086071747444756623585203601345202313907061355288953412958451307676224157685814371285802508269506874151993163240874911960741118349985878005211553452844511944937582447810237017278264253047443465456799283215396365723199572238918009503438090034628632905935758082806937570770822448346057737875644319819016445466390526170496711130638624546795683075318494286588293788884467432885248688987903612892063885428600704684344813027962292284892747380520051753866127133563950279633104889456125377267902948636961259691131330510802139946131762643506916960985144042770926140031253223498088380762286304210893757015778116873343214602388379694425809552442951242748597737068496924824100893346436668551413804740250851016998627274676540143792483828867035492287910744533044295350867569583056619934148685093176644789227694090110871757662919703026471572633554207531851687531501405270560910440569864039612474694707712123833365500830225301580529224545558323543080751952358980515157080566374141628780040119687635067779467700709395030438142643667839943266304520162576554097512166762603391192524091510570151248251867324672372935637832678704423506383187411042384586019040079626514685181909816730907451646115925375102614855587921946796257520271408976705246053283429407351773414777784711944644064175191245115349754098544486616693416254159295044277546057189130168748791446990760324748684696441377321228913238003172160410569996258141882278554343376042071567819405483677882488382516453492407529734597103598212766803948516367115396138371717167757413662597725438487263324403856162144246970406264403825324740039810234269172556222436009893222871334079272506934563193604945442563974873834406144538694731425790262492752757191870082104130927962635138655144184982047887020073560654758825159951182186549566699724235404692643781321704126536132952180828978692611850958174916279267161582575233548060437508694443964339708170192226956103984890553213444915267554899314641164072969666894357217901573648859211024668402055072712062826818812638003479855257913228405300497922554546455421368770655426107806818306963771692590003214704896937435586244406806743334871566703805405248796398075985530118056751022615034827083481397002521461324362173479208955053306031129562538717247868942280472278142612606220315744830558877470053811027439056279874609964672896101060458320692572453489347901175812980618686597848061948131293517546536424758881950389181162975469503034538384091163149253149082387652582583679281433598116625087841291963983453754490277061937062788321095106569020230213729239047171986402579903574301803273363596207380229476665350542834340490081099571852459122569146986797817600966712178403812626752900045456937012888332559909168584002996070446311663412242662444379405857306470206309375823673453862050736386604727440885139118224954939196191994740393538555088145870849031913756580924393794990141621950671342891440462420936423685744389569922270978884798904110131870563179103997671069177415399636381635404336061677655248350459764513875425203060354415700091497180185477159840331904065580683594623766823914962329011027030995451746261495709879577981742251371204195287880325860158610964351557402390574873275913449021125196170282264776583712540591107361618988414197750956612730247132371136923447556472186290219053420036410851010387927889123343157208227441017406736964327836509619785611600726313404141010454899668514228014519457824682539400259109717489716871865540711891517950748341391286484934492401554510336612540802768398125146178420750882191333024675131514436635458979615617935526317042247933082317045159841856920166794020742867938123100437381967574322660220749505602215966732140149553546270134875924887477814577517347388553378242926936323984684366406341147924317669170404027698497034681739739177848901697723341652254392644658809847361650971339923497647224352063184138563569095032571745276630607789182104590545367803105667666302081000780511390313352979315276411717252410928756207123135099471571411305586022596013966560585696425722503968892589024787546607524577014363322894881538274646032657919919969925193270081632320339938937335977410011527250397217375972867918966146152788045753401685154525601180466027989551663392360179673173715832739780024904002545528543154948555646268093780423228183540275533856210185568489637856731490594406443127741655198484602313143475772852900781419293650680768420709694701609747311714362217775039550109051233909790641585257870346195922903139761618538554199925101894154320967060422987377766737612777610375366646352431117608794259433822393038464483774509432514504336735957986269169861476527343920138855838194782779600718812441832092050115724725002365257321588280496296450896302159983711643847805688699660214433683920144062814611483604646040208923437366574304762859830476057476216396470034341593096817533288641022720012818744651439899536601828911213498194116399711785872766923184268493324115573726883340541950762746187676080226756287042833595164116289592156347371855005065327069851547305142679054293671496632216387837373901721585886846502458928503053853900658702354152820618762614313384276046508104204526885681803919988464084717056078894084689125865831254368912543238994377684196777908577862944770024342296479828921845614989504229698647412773493327708741778859691591804756222102076370365260049356463696849533454893757481750593208717107777795845149701544856825740659911563744936941527327636049562397120004821721361578701419726455031808018286593064259547550301498310487550937469794962335165214312825439564806461578876079913819898828991765819062601990108557968192686994327338862772373761050362106489931591313203274930087387755002712864545188970760201786115589583001607920230060076816784144002856965434382825305174123706004811708204068129449080141247539945406120790957791639343178800193526692690723037724384001241539554538765669199204081832128305772688230126694102909794218714765316496624146830480458541671495806753661627155291816188105637836576194587346253220272771740789779183252144907741884981153724541662626980362615407195899783062228236054932921701383866552837802590433773942516949555319120439175753058847158768531250506926846614886468917397257502854938552118528864312631743034299276350799854116984474254982968257803351035500391568551520071393737884819915001932379270080317947250300207791941365494509306395509141527385976688319291835152295357752798838913086984607922091921165610138236660464237509599734412666039460387394071892994495373084000870823454975783147247450064746654622232768250664775991688738159434630985735043187838156273346635307252820463578387304607057871719736169145552809245345736892882455519881485041962038964283112181007066122981523969315813634748673142225373542100652516297774559888450208838308864279771574033229138081856757321841659393333028569689937145009101534132678532799098446121845562908894856279447800824184001122908542147191092073446617323081527449980929105499745343862772627721749482772721532674305731834142050945755497559974953893332577850257513277192305246735261218608560893467687806908314843997814845706762256343426570449495319292575225450003294980233469041847974715191625417621657774706216145073232581667548828033070744503979093228029758628404476130224732738682397169285773689219623476085294742310841017714519086954147354342937093093150303497084792514957945221116701794758480105508343041542620346569487791424425434887219521192905510121485135364751116057234936358078348665390356500416957594701021686391972447281493859430936033605181248055469708019579371520756090537349901054051863088786249173112018764004338526200198601343711791262082259430758250688570248612061850006434655420613526717436450968601891148871294644769325285163984566297038192151223337708420587760843599965459863366847670579597524724707016103514536566444943846208302053819204888150844748989253323739826486025602809974264579480826114441493498722094064601873350274035989127359501440846907079675553370306269917503311721855424973084073796466330980758163309594193324177887870138489279633729975626152791280253197579033766978625767345768101796288782600153070961898121794908054235113906109570621430625570986745383147789541140345615028849455980594810481663691178261725349666123276974092882736319237897547406022551486408578057057223604103757930843835011197338897739038885074532733843158143516265151724136004366759041765119897652971738692333468403889912213612688251936786975321055221638452686397643758421987077064554406411577589935838578913576720041370161879952240294514853783716627288132968191932521966452227649108462211183195849723670011499609656573888728098688553194829690924384358395911808874127307057812024585585777607233023772294831267745759019648256597717550331735845240772567894961817398896265594614548470129788355703296617603393922519569420357664822450591190387275290491113171722551152548757003392733844951861392765443145224061755742355255073666279314243300652469927795031437002898650051119071284582877220916714401721910238098812760826383761197039112360200161665852231642656567230100734876288569727469531040789017986472815626032493882177576430336634365233272478829445940008469389140728804681711618890992144697614755567019951748632212034641020701364687680285017658593125693596989546079994813971924017825375254404004138629811281857561765774133549373298241217627487070190370858772632954970964951287446848314479942935940816916826316176032636207180844490901824518771275106241493079242798807049037814620810945380084482464969354592605561396563937248951184774308412360821755676517671016748875010468544328261855269345122305362073422194558314100589350317567577336506432579372422805647276206928922831765309091575929554177750474201996052315114508911839457329866398190592613289753497661487526605346211615728608415509715833342030537949569202895949779264124893794710680080116848156876515949867743505377369017373316757753534335080962304935541485713303072264442931679113356809187592548157527882570064943490120654626537707675604837843544859164273713673105323021408942963651006707613714018738792805049107857994389969016459756745048940691807169911886273901431455758378773891774851480054086681179231817956321020361781319973060276579961073176070675212332350751494576990095627443817027467239830926603850046062846775249044096860471162336516177044754317616726724428009278063361068189262460875605996532894093867051900917122127524342284845499444204378894803150873149004134003333808311894007788455421372095769786134653954598285406785746751279068911292827229541670742175651863336620339472070100324198503328478645446862422081861003738553696812592822416990203234603731731917389761555892037788824647586622371486152125414754449871525712962326395944436174256529717033986035989632701121610630552117194466735817226499785431649052132115189767233870748591428047348614889953638960941876445753127283126615327617251300254485505918342507782423150949162034370867771767008827328822405658401615730349797521939716362615979424866029214067847825715179143611079092473281903446910104328436043568340327350654205365252377686832414340949182163475406870331686847285793619525221827629873431812119404993388891765800161162824496813004188919322912143169293583397536858430399793918970554739763570299425254421324433461415400143850742567514926342488054591416008904020118455005721118671745984942258785535025459905693835204731005257915381235789683896389837146054789021398305789622142763226151073673603574639591009019160121403059940805633664058292166252590027422574608774368445471339309622418119087706021366892440665026897666309433476699100089343531622405672172894958416473223485528569470997452854051825174984125005813080269608464965893496863194189809721240158592648464010641645006344946365932262401257538130546076874355240984307894786714238398194316278715093342683854869986762553684305691961294401987647647257131018879683359458831295841582947288170734337311978255558401509691977159307539865333185282022808225997202457482922754817224038556844746635253105891817047616837036532940565971266419362237449439163482872655488072646180240462518688276252161219141490057556992686678555433626982577829575341401630292040896751048770228949099894562179233579428840900755974205655561695490626852454296533309384178406167642767141520026531829138013282270648407313242034217619209503089181689072802808642912905540972528473830410111811089985652148307052483575690118560016803842614251150952568353736313048517258330285581808469651454749649794627672151438159730231148115594929645729278468353085841383704858630704018882982384689776735046470516325476166974638777055651012358706720988089300599359445949108162596966949383567417054029951820266468312254657312054176161040205147920785425249827243848092417337267148763951072529524636669399579400995981977121412947123218501091364281033358931836651727107943485943720218651460663842604327912920083591933486172369457398282334242085927137427904387793287205709492131687906788611024449086757877346720252912369288459692988612130752108414711908928442043309695445493241993481928298431908329186605874626164085800142818100803083900940263972884510168236254428487231933842146456964299571573759588412490183039809100770236778339934166249579098310725645511050211218043766857312580774399222694456834526857557138182137398473593045547161072512629036807222406366205413360894272095417726682920712087574042704898496398338580918550738636996640843691298970093139952939792969600469126328339782784675377339395356377187645726810178386887679697166919009719893696132262239751213216885807623207679042922207496195577593647034566894288319519118247547299374057142837636116760253752626915825152483536890846401367266017814052141050636860520320324895724656773521750580940176673382424497098555471059377834810503059432690946620897720053160237858510771762347906467456729801597378715126562008358328176862943684943049337124255986099272475768722424544071499525119578603145596954746081206178193881511029328070037564312243828797583707929469857080865432058615649270551169985881249807272422354446872949834267138962903030754720999951215281791044291286158061503485663618394527911854593353670529003175216728054980035041775043020954669897667358745191707156392034531478763382767471152277493934181857822934391357088750826642485432984734502967553021052587431868437059191146577682560187679399688302994370307980739072047631814174824198666012812434975950612202902882527325583551849411403144052265116340151920938226913546473299734653244102528801285262451305777369222667138835979162397092396930403466826493075828474136767301828927249888645938186567201076260259941131463909680269444112757564693107475606064050596725459787944685185671982034403521956972759961265457841242824622146413398235336514548220857809297881365532682002017577831183782875196493197508869717156400158488114453569726190890387394100151957581697601300847871472899310889927650244042394647393327111895142299282750082424942509493091877115560633163661127365043148042027589031719344652432394487202812051446097238132726401341241828292098070853477791637980180378020237709196069894913866318976958528548688553360820179073184293249592070924066319808739906995245156552923456511780490655411044745919105474688837965281343011406055803987724831387955013155379215747180997165626836475663519609035322388549254431680077098505299850264632895011869402599589602917977707984063212328328944361443561148078630577040546793166315847752558196339867362587631163019291326378942847064124284949044290434209560795762230041107419511114324409753576344520878841722823191379736752067487787267437461487979121653480229630672017723239579187667205648419206422905294021806252075756502214515762247184980202778269062903398711188731130537347832666165108164048319186393170331778821831324689146889715823211297733355103111200226037798079359510738752359451952767273225685410969695223296055693108013640200984602688912690483039030631445638318954268847424776419677258020413276181567196063256700818315387666980062146322136328459204257660157964439953769042007129315077275197874038177358178834699710661002942230911728879117806569374371071351143721799745837134393497020982925925928235631271044783882364210127568278721030177038916446301598632081864691313307272482135780394959590874550110380525226495614439861015752343395829211364781505622214254868816031715429326796103773144978918483104733271026976169152490465931946872791721492385345410483015708674948384420049101885065890332277203150583395515559764621521723042007791413595478524694644959393946407910074483510634174750804248068078062139376913070748496857798901951351501439880657173853871486899897918620671077445306571453365275450118742049568276290472905129528344157305205490757877347861412160681731233731523783252347476721267079989583355468760993877438463876998943436322458793855162610259139850312935241470392904416627409069366726069905234989578198150944504035831697943151761396065762028251510849261027314247024582367843991631751232838048412079858239873147522676173682348988350753848400566853893535658223928537834413448066079857105632615471926131728831602591823110792719167955772399387846963598514844077763909392491390438084939344857101234137577483320924226233205212161735389018772364574222802035150056441236366723074860241050460547570074830523119610551055923318001180530257438611490688336167157630039056165008212275845276599902278107529958289788552300374771025014127241974239378206330360122293647107953989250508822149116948827882943832850997618272384105058686892930977158375083049906344275873361655954920272023359689143914573245611787737299107792234858538397195253145391208996486597582859708260235426844742661854023649754249397984576507273780454643480098604781303478905979141104054902048239425887891791934884400767403763719712487368771936346808434945543482430304762054832083823590146154060281107632401540173708223709032623962488493457273400669894597492566345615901558780315999628944968601951113839738648653214462397234172195801221220363595246076463926651895698246544166026026158509094353049711156128100011407622137686826203806135872181437554436250072484237813524689947177839136327534456962074704777011332430672040542550766879617031217440828917052927621612068528289699874090232514233563738939779526341569257988605918707059117454306923832447430453641279565518472336933200601959240857767468900110791990027357857739115611071438804586872015120755199713365625596756028683524727140050115374238443360352684384987914150361786806941944923851539598199729582389202249514930680566593317536927635349710499414476894988848396871913226787913126166378471364147787372301728607571060437680841855559870861180398975474097165339568274814290561020680800033524762530908109989948999821558117655604539502190961890832822114373314960019329964488384436412021265851840234873132009332591091476207309106997175886399526104580820951115929848947148392997919810585224825802034440418709087227885886078733853899714646157045347244137862530099590175081289055932928791454750874533961383729310959693681116834148562195661475005603856192729088312083873378034766260758275795180449163439437376592706221266354452369130097531801982786873746208603548417145199173864470533834831190656983920128619390785752459216113110795090047555756142051291349759320264042637932210677510457823473022161101411495155861220316188388195704866770659003828709348860330813767122204462274944596327722363495148684707862275011939141279731646768821869417790395910368596711061356793981254283403993085847675935479119333151948748538521024699136882498999999631435807233744458691248236936900615191842667189018993886849008976472534054345853159126608790517331024187503872713108918830047103630101409657163640071179955881326493010377529405593841275100764368702704590200331392059170376195598366076804465801692179854462540281464257330854167102083725264992859327709432278459165115122289334840474818409203176272740222573332429501376932840578223833326892466067792693232160150884131977055086295526690155727647022842999647057935826245180660878713830414898811228905316932916347187296047355247389849193806884985913617226019975373742082251391948393299531765807266642820855132018513359851525071409091101542761286073922376267246637668407632953044528536840352231690539276573431224579781682515202518236067582441655480668926860518493980065606543242351662017020360056567991616179546898242738203144424444877767664333900582283463233210452758582087548391549525190661841964902968301262575370177133302426896500977903269364163424150145926551953610336258719690380209932854569087866442079820322159627467074528564686387307919418868818307742993008126509712785553761630215067595426941496047134411827625102474568879058077207546610993726402060417964171514544007687873764313767294159114132730936666206199352860240005161997332250032023726213467278834143012964535006969774231246170260171732456599832881223516439905928248513575897882334580633348272814550088818042942726655165127834989501009825444310002489052904733332604929073759377156076079137870530059735750339557199311598083331980383022496017957030495082565494360002269997775346383317059379903258757196294646656299143239272566025252697412472131728053449843183325409253272519902865967968899945275790608705685715001014703263544301659572044483342531158578112791885840918502316459774765532887345830802989096687063817640820288478193174856280088262559514599266312593912551531572165960636497089631620682962690598509925273868330056581951472773735794710496687911948183841923050092710809727665559607834349748853963097583643901532931832939867427226396368901865251618918065203943246495218127225394897266903856431716486397812056753012601897623875820684754591082797606755789336692268728529654157175642999472098384884617665210002969041779311339877690897506389860530899601212651864767980651214959538902277172752437485431885695679626593490403649852854412297011223584472432954099693427474048319605089741814785698237067243804017206532741249519767505177002153563390080471814559786546000759832447341492795179020994579181997093629293318903510905678987371772925026169863984197439720664306960416523439455178183075917294393104260854279099242244146637064753498934662365911176117041245912352473951145682415702045835650869070539632254225779491147220812003319379577788684404090538723750828048207877646608318699681542866273499659150890682682122279116919826416029356227383161398155447262963071462811531931436105897479648158775711923555724641917507714651162253391757969826959675060838794277730792968288938250090831611859593912407281820596215360986101199808176657458707158248571309275547812595612868702577845738841517568109383622203162992451936706454870396725490099917014599545007535550899811946349900781376507991330039115631539873995690643718394101672258987465549062111551985552499128131078869545998013787517428517795009664215323510600611770611642915456759473813810993048570753307081651474886831521568562394451821177835259414992168743507005663566867720090846083116948782705844249826740785981375589826839100803977031634001595327160478152692572485490383487636201839444313663078123103394954558870092028615640804226155663215846741591672997379102824469556216855031845381842796408373551348104261064445359664763587475206343249455779569358452702428735530556036780261196273421449781822188818354368494217704496812138830074324160396477543000381607130544115507095427061779804061445626861484704273881327117116420443071284148606654142187784616307202737076781406306861749907322042345871438465001800587788004899725077856755137247659082760692207697658879299838484733468399614414709868221472692723971241959177855584127566062818307142535637546672442702305500111672364023522135683960707886863744853940036463935048891834532992979380502515733180467522529691615338086030963361885165281628446904615646170560136759470090044280235953283118345737682955903169823420071721898999996065252244366016679105570299603776310838620783171592976131565440167257372428124130188231306657369654681212998753802723242506014543830921317664082457361583073098825488090078337006233780029133998854586820692703321702749148397167446594082308525705968332465350830728986114749732978262141928433846082551364927322383622560788584472315622651114103293098580930602254647407081912248255024710511343317544099277593988654678873020816997521432280037075886906178699524964142779729178812787705006092309063745120942954076668853503987775788834034007533809659528508727410407796398068928301025704015507715485286089600925307851622399155301610152363806632324171049233732407245931104321643568250527472877390541486749768521875570398679622295148071423462168631743512238358230189285668554456080895966806564493273352206384284608959387228085570489395934965349673933736860680414893022930065005930686103767702787974828548159132951309923229767033835565413203423511262471563830024456869013352230414582302429718443197117428777495178466203278872743498415168834852450357281893081406327837577852122228474026443447008328584151738130223266760362498989603622943617083650556595846120122518677874475180516142553689021032327481691038255947345066675945590633711349798135958102054253998985242433242960483445404826508624148220088883389866239037609514037825405559690059499119149529665943087642360499897123598260473066381175372516678131024138592686128101085433884621546104535541559060507164242504052884544824714055676932897862061492452183279480120564513659243721630424089867045823122529494337380917674955242557359079920111551650284138859965154205730380117969776546820360236910174650552295836984489694095554496213245511022191193886258536836347031573721844773178541202337122644039038612239016861355311723054934897463207454419637915160499262064456442367905060863773257080970967453045025846124008348233123309653773384581050026706160507116674841321591549497674884262506283791252707068782177505778792180735761170264830013393804470971540107618895176194434065181942784837110016930662281393549892888465921057059983031046593563917280733309286597013289546009577367182982923761630525936733927214474120070848818352372906652210335757016895576600277438127335428127677693902187521709792875421386877421325137462513043138712924527657294832284694629202727900731987543579932738561698438910560635142509546631517011205202469397722673053138197736364478115185191079256781500399405319742156627322090547132695393420815743085920293130164251667870776046054460588856882434968749090257164396064306484807354125091423667785067429570643382611440317853562555125589785275988469723249098741369748518389364295710653039358568947457315489621686962543513667532542270447361762686551646371567550039377089411963294962968488139341974213864589153757817757923919062106686921271848891044246019449211987244677200260611037471914816409552897694392005611929103592613207853580802499185570438177234607140855020894441040920310379074888144574007468640780446456806348496930326445614866430404943173807005188931300114742333993305960865916281977040451480904963381863728911672939755075569400908066365989723752841013714022448440681463018799126605068411638787788869091224407124906954141151972126262070015290345722783247319432567184174744974017169357537319295921337149904122566623402500867277341278059241702436623179579892189137213362052426045806859308131947529144353325115203922226780130776277934976999955171247587093004480306859663698250142247051800701942329623445179998501519151025234902781017847678672970966408865026426202947822940657737156478625146834337895416406800830358356357376337485377864093112843074032188520917338273871711508105515892863145234231465593525161682006089173870276618167905682856683649840129379750005782401566840339770092802475609541168416417690272514814148572181112084623140431444639794364347195363371078220276508400420189043106271437294543927021459269667231773876313802756458194958129147629386821507789720788225500583192296627207553496962089354781220461039157064065090053841131919179060597162498233315091888822819967809361712204378118577012151145371911031740260501967079389254054791752495039077663264445215524967775319125938332130890572146599983586508956442455174199835327111752272833566627800585535152434025006015896059559046630922275012421115756353902039274529377450664355439546445730783689295737751187669252457676936631567583891675414414857084277524847361483154750097751327917776260273522963895247914715296378673551813249691698457010054479660705378734533158371150808402917659659490756179149868286836398002775959482862008521305757557731617792756473394077659550033328085577911988288766308754350600489662122214011799138713904465182648680325509057306277516932933971436908021938111797099611859053883617051062189289930268769410208529476103751867491742719484362295966960614467884153978727310826930272341693523134343504852385181450133433602326728685752044327281337330414300714074751308559743782033492481229458069978043745250364552134491851751839755249755746856878011088640809460382263156637986214648360625481474773667489506871194749257043503146606918162344536678892524181506639696134837586096905760297012242640529577959745068712537249366841084396534688972944577047492279366566050814018722118335958149964320827243672828419567791003491481853649245819923062664460314586184954880499167155916632750405171125630530576437134904206548483636647695013101825083453357321745689237302561528468412701930517664327869523099051568975707112095381300603902429489082310680942989208791631481258460175999180070362110214901240970355425850185321505462938210968386124503426986940949571651542673922575717236926329879773620626806133112068627704239683080161053747029937335797016548300738286189301669286581683294179211573434538728881535145123388633514672221730332342388299003241374710245320265575509978921124799963702992155919104783997598910414674513198708944463603251622335669582249416401146047630042773033043331249880685734795200912499782650899075539240231419211539264860851980810837794273104825159127308295761043043508904154190558746825678573145135225436820754206720973716917290075488736206971663088974804735197402416185667741400564482948210952429771760710700957992195827148152378995346742304601482803801524305665879716721074703939013959920490812684385102603540031789546433896203231678341846391790627415363108924844433253671615159685865590384105362046765473408662777170119792820060419327729764296392147927322721937053859090355304211843475458344628693751780764703989919964917017812177052155933947911648458402207077620618871728573595686025028399984906523465744613849783086483435608645068667405410430157247986392684490944822015091087742119325987863673372532217789187703660220605175202062217972999226991811925718277662523841195111951238457709666889626997586826739649367924304729518034583723943628584310572667325384993312575311813335289448898923058017229295406036810206587963921414835653842227506723316033650126311635869478383753072994984455781929106380199149322764962251357992867343777182907689602233258678255910941892516078531485174139214687084284861112728832168700033237755722881293430015236677092015973940369127077725193317178992711940837486298504716416854019751496599822539173489972124116811168396932954632410013649829042226850726907315841212210869658525230112572586350402505084994126888743093184003654607559009154447107145322998457647861399357546514084028002860965875348788886780942534556726715898641609536803469358978568086947456471653670963053949446024578776246720394716572790808030442439525357617700127436895130725954873597506146576128527789151099091399708688078128290348633978092778638012614951644830603506323210176108494089430011672258732208280534495225214562875932232679907490242039034532629949761967352285775350187985123184735884592592408938212667228294688773484314377761498897229346510916804495078050015529327073520578062511194527060868794708186757782300287157265574283004194632344788854400515618834465852903519897425040024490343299709566483392485798781929856826292817387473671865313572159518755752515511897069415574463586880200186428910142075366594103893470238126707351674228120096674027913632964358262128980969173081936530984326452468921324188921649973844154934451056289037985734765484838997386050671924194559637091541562104480865378601231691433828196426054074440111659290984736717792275368745354382819513655022748077048591184209896992705389349739276494749556763290046906703950874114505591468523296851461774420671692283555409036416454485997681704636981182697317524748816376593548584187554086264594188174430382487635176247869909015658248863828449671814531612520929321203982585552595932138141511722047670903397874958594532579920597673428950677786900997295821270161048474923570873675069655399849744525427936543088063234461458480338290800619212401532426054858425103978257293684691220459835601160590718999598578878430896608596671753122862310572833896779054625824861143213130958440204330043052812644566429375318159960465581842785086298091044762075770541568805373400664375567155679979670662296257784612485397945811017533591817208047445768011408005799028422791565635570124574427630866325128618785660391781865332488323889243034192281836435120003773032089272535199514889086364985369179323834998911942382898202988123395934422760989895692857616804109401068331008831473401576653699878832469838880339128505055859700621675359713971041668469793741478906999003896846921967582474840088564802696897768748812237065785456974728057290674676263615340901347361679059954040597392718500280067758250926797471412863618499149279932221622111643951351608162437311062185126099666668293065892389614868082375279941725674477456748656262042936424212976524657184610089795539473648430527388978828510119684513081879908716223642524174774950658139445987463370039659980547656265681139543537395980475056179738608898522509073144513548867759542473498975608821673853861434868331463103183999796134296906415699752371051963403480834644598708989320547774955035526696683033951058363498249086938125707532157479444813731661623675957197857992233256992652557735576861648660103048463070915815790569856482483439170483064481734687686188190474586662570844142950107315968797940087191600311688382546374732086351660012788829060555428999171745556976502853853779117118737787428691310220892018438495866444443677936784232063192487590945610643256796899837318691193052206349126575142891778641611093133071661944501542727654939592103073775732218682532470232166654420102157657868741653425940511035313129108206371674394362014269969159563268790600364879718359674188015129489124293937602957472090983608967625475363188508285308926768611588711666407699678456355210131618526807727364283800299233416510354444264726748531891057665614632875111998342154836452210617276838759908257732773374184869656848968348401780800963376698955720019818459295733432279545836934209687989858766874228191037416786103267006041000841988571632997363277302746450929300668917445085444579754831732036508953572775222579325804014909650889818539936209583870146255000927980024982102155740881606724596244485772750388108797357658365430690795100264078239622471040088441966024588967768825450218010138091972318704111650188874713286310192948089774238399372629500469756150141005792428960847531087143727854056780068968951720362692684909009526895025375250140960680739730180974885875177120522691141832081314389817550673117257091411074840847681263696506735945434862122668124916018559487593614956259194806526524636889521421770552382382275599089101348645932066682511885730569569977826202597801080238952453324044150479797529985172638623849956981028528331677846661868294260310094552612413883448586054961988514192685413542759617241864099880258120646836788898887782801851543255449834261772930809531697812773772640903121109237343618975340520596873186645658086543367916856983160507867022545079023120417553968111364040865744242366789622257158064483662800600473824909298301225861874790037206486942126319760706503928266346374935656357658508991299357069168306580140202639354120084787345624563611484124508149583444234001211704038349719643475708103023975876150162322159667124449369288449830435924500345566375989614276488442895293496802006085277949237554170779966387653229679187600229985782359724795680429716531079235055149869608261553816049026235581993702944703012682877109564551597173629914076513533300660414450703243221051532576830479713843458010030459081354739787680254353336022857743344518138051688780087985606424732811213299692163481173068750438377504241039302274971624737903516220225104182043626222107162935656028414299080050054137595292889451113531907028414799925816788881283640522756836559293086267172051243669390402513153460415757774725134843125145034603637078058337199375583560352041204365492688476149062625297132853958987443423870676557512568012628594992457496941959632523968145075698759330035787083218888375704791000311886335330060239835638099266584551519831916993578118192215362111387189781585810672757141227348699620515374394577338144606509815831112170274558111508704633339788704697076202452322328973444867499033254928189491401073022944092670533944011521622570564984412201557994108101979877439482420261625641870931367883920066421870828803532530200577097465441242372230758193828150534597773527074708535320303207506157052494471973755089391317513009273813081039959683355807209917681672877047357442000300113544960180543438419031075052583026365787525844773381963205344563530376889238523850852127372173670708015606752473305686805966939000049615976381323102241722626159676436555881792165427883017410620358672411560844228717252942492641791125552809648291013893232488472110034936942533184983351675951530935754982945128702191737033852907146961770429802382142298689754704208166456473299999029440491661171446409922976536206329815082031175314186770473106026006597232278685370916030563118092562394379783446582747157747088401408835636180845126138942542381585521732351394942363636174231552630026882611473638937406948136511961682844149696386706805915882749425866769989690219272396115653690376374883733704310279618505642517718810828969895441049765287566837631602187293517870207184496345323553246070902644915100892404465923854672145954308700706927263000904483603878401469308209795845313725558928587029042481487508056215057497754536411377844072837213106152988365164614385717789152358042027465993899500135110463263637820579393223058034248134280644181814718341688965186299749645010411178571272700550416600282017425438534494525082713905360700583518335046862898980007310784290260452901587950683845741318886551740399345407286328324196611607817168483065664590756265871511335194827392909379772803423426045491246619814556642000775517651761804012243023183514268181482740480523124069765031149016215606909270754121040702301812937761477282736056932410421005116385774100609428288259875623371962589501410624432654339714730488203730320854825132554477756324932921462195477711027793949628174811563228700887700024471858836365354828142950251319443013351552701638329898318535291668215495715769016807337571096954347968064633123001205408740989504475134307273573231723963161032128957972305844473184174329265360079961839135706400476852315512386410614764357144485976577315736511648538112790968274897915630595195365608353619627243124827582972426756091777794243946975589848614512679328802451545482834756333993535649510171729591860234582118847394150291823939424190314972819893970654042978365499107445240557879656530629228975221648488250926463586005702785561234378243757287054016733732342688188237732046955370764232785828129105612744746367437235006128501669510657761840434239887192325055857987960672439413735324627942868217654087892889424267769490128319336940372452440889928678133081277206758522251780471981661742993093302060246998088217716467388001057410609795487268421583589889358821445902991653191061471865269817215502661194962846053333347577891372509269129443075703789812258134468579516642922221501646559769713945151116171092168666865602627178556228793453075542589122622947020959527284866435716385087574188194119608587941297992696734812419904020910153957449807130238014624925056537022048069044248077548351073080554631072202539811792953091979419831279277885389254549861147957315247096964342555252313401253229080087903727955570371520813760347630581788589205952497808742644814551198872667230615118011807881303134352156575342432828985684767836758689197120798331496600740668553580500556687425024460718248995781387261933104052350029489580285293832517406272893127222553793084456576230981363770111041354970243384303229292017973463304327940331907692110473069818550030476076154569306478538796601579844035562692258355543043634494533194722092327722052530487998089109469271874799762788900623945494176712404421722618297552495147820620257313301574237435393907383953549226910763666968512426399049594746107645154579683000013702646178728851654706742665254335899839065460313875593370569895733303162492746727443198394476285826696623698491133983545728586029136594404039722771783509544725469638189790263375050961533545983538190758723569688858085110011453879440327842384264577907128065735608320137722183527248365332878614935691272246330611985234041272045546721586799674022642566845264222478558550671165754106124078980849241013470560402225411870052601851449109961277946475977741361095355137028079337106008071846947921941216350954998366837785182190902239783209175502251154145867351106285304113296407191994393890269355521126536203641260389905020711602810436784364884175652746666829106299777831499643951124103324546118494342208834687815486684448233821035213060307485945599281639705347466947590182473562645618183826677793117690613271607787878265146951269676146539737251969805957145639107536279838183345940936164862542088752932489124906438182561551499036776353211872676659400614078760016479049197789564265395122172706441777229186936009079855048879824191829913309210382127176445136204536926668755833871902964988705507063864107452271100625178941116888046308015526961566235493800837957083905601327366737233161534126939651178062180315245680347068070303867781586331680652509720158068364900768527331153407558458914254623192958784195665216792126512916245774479407960214295717013297899584168045361231648078470836328002540995524298146395161482628324884035697272792783447304899363722345563332021729903573173478170645919598949595323164229879472770314151601861949945181379855490456020401337020432645277947293439839837869672013369858131736621139507492281397766724814261373820918626119206178831077159243021856864218601900691823446284011423607505927681079530760131871638125564335126864293081572181338913894664343233046942551432545360088683269253893783557859761462939168114597998912337757271705112219748639696870745952224909736588727801002075540856154994634264779768370147758811727617436018177856543758000537091567140051876204028409326050866580817297485028535395430668505731138323429423977012743556881172429604163912225599042153546952153617893453035257107596194544209067589244840507640154731852099226692949025753980450731682154931514235940448839294966781393328324091287899114533006333562552535142737783545323148913033783608453546807612311462711847650786690284695765469156592927827496690811884634011292889005995513704964885004303738076695646646230324622611223112828107223766818212914683223464402681398575020186441278545194592681176445346534151748165925121624955505174554842407907201450998422540772766804572995331234131277724343778045702815595733343163054203451843002944214531832791097425777675683636072845946884247280178393638680897532862520549957240041751835273827591010586162897982673572132078431633622220774837501756330419009069098937676289758019798454037482694939198928217773491938507922653098431355423385335060205046309349588920082284951344462085001597842108950600782075995772669942820026481762623402893072099131127560903374857020271391743867178423806817579219006340022560472037439218336028527688415933473775176336211517992720139739870209608025813372264411527984556639888228843925306726946793501221882703278218180077626062640418754301474644633059393938433939636060683227932745238601147253214002604872077099023934882662775573469815723899014163356411962285593735239217796866540257825871543566777637568292238627604960944418954320885419983279989232893959840373060610214323857258830648747565481230477272228446760762598484783672060878739578337122016241894184804587062585152329851454701255206890228384846421081295336056488802996627460366734567420701017352877723376318915791184073578863559310274374183111849746236241467723361920519726085815297513268936020885717407263925380159588771793578213157725504244633759871592193580481352132595676269756043231032976164474408811270596015745127078327025824422878262988567350943826777502063010176715995940238211098039084384737404935424811438860580463513315546057797404393568944434013723113590976960598907634124670226701894026414114895203554390817048745074969119920799966013710248057924637971545539762034262944153563765444112845848317399106084158453628623062071415462184148611992169095194641751505942826427007555655991603502473523313968289061027034679417415118832251430748279835125043546302354065607359933851516272202275679651844416013485694542005839614919408119047106599987351073562805608944569526385032415813696962291762266874625584138287655594500617712029088814350192009971292692594522215640012824157867370417808458659251760879263527583899278929067032947918269778441911609515809112784153345145336624883223802817032876752952965249748544811458852616723123681732266337409708480992131059069024423510323611772766210242828802265666398640409844328668322641855635262888786496885730359767661482511649558075981118265912224343311586148265508286944188351261182236311727077671892875931946510071495570110891257258636188675153541447730467461461387269892229925843916264340021810347851017084418963119047750894529689469136964882359234863583676048075797224145559451746897667460950263894748515180001800775648174457135074110085446006954229608742251256048435725412845508186949075168953428351408533285008453693582513753536410675580949029517308403643587307878656187186592493766108119394452715634309979583563836141708250694136009041666756658083926462400813302992745921135573037213553020589093453602644989406703633525679397548385326489620990288396203462933915248079318667701917582433821041404167223646513865917736414611762571995442260928221892583609299068037700861631214939325058900591264291342949088536371060458124271032808347456427909053785987424923408910721526261928895008972279658639432918809952480765156589482962298420499198159642493943063359140292043753413279100853170542790948586687018694835337276759595294680240254850294254835741055288134550806585974884001825665309614357860047044971753377877610756286385940855548370995706916429022045590112239419561377058055154705539766434491788554327066304404193008660952392030304277405208781571817504881035928603258340487418530056233757015685650664748388951324789706149563030488662776303278153709479002337102911487406938539706685925895432017414542987941727624183110520120396262384876430192965864594972564735472208158959357393981481078183678977572338354854328088216326150120167551685941537753624864211507987601826186658562120450819680120001920587862730169160124180987016715649854607098811627306282772508295290997404302106259847981422778873029213443524634077254332208181006612947531176669537099494021332647641354774833672358280308769505576487154467805507786001435587767107189933728545368234372349352875054146340734439736677093415259271485218712140168070094160762766529181265053896690244704157944534752564945075588211938914093518993641726025162183026098234459024658786627410260890137923153901468091532658749035894493499127468442145388863031304913596075543008134765940799000602172345584657165541022330347805183384187320962535980811864868474325897108307751994682664280155017964854945673605934711657998921528396511857570125974037439622954591928944772736184717327180274671844229322447802603692324740167793757437369855470963953521782065343023011754860775565281434806042230325459867176254259988907182958870473767353194929911634964265405965663608071664372456409427358367693348875070141220344901891614904609993626517746455491404868993750856213582677509442973623142554886578786490801489668647452866980478885303771910070461430420452620255455090749784036620789542551800513405978228569360571924753476366815137178335804112137548367903037688347621250291027868832785784706416124066852759108226472835288036151150397279297822013328572410340388918607465060681022260138082003086399996207644377254211020045624577110076868640537472601871914414160697458287705678505674425830416935958354794931675244505616932320588668682610612316676382377477403370778022561652535450196219266528985252215160985663744272690642160349902980266895307863004052650268583727362319915438942897200630159859239518395427526777414482328909067272889752845108713391672817787448606523741919410713502745058235884629122385146909324935531985688750456457814935171377358594430794720125480019032558068466107257287974083763647895583032761511542722990827802852639384079353092898146919688911431608080101767675532485332786108658311478790162312617277879498837613267184156806767584795152565988352370631530553328432210781140547621152831549257022419877010130872554571062444035716153960268205628338453976769153165933883428597290927052487231530433201004343186720901698818828617738052671665355795645416130056695022688713108919167477242084702974520837644041272499877379770585046655896737395123903749937470184352465924522762629708680188745328117644751735242757805304053425745652845396920405874247511416094220348215124620580126812073766324592955362179421261481010554784890317512611865795089439440461240070182423452486065738939935390320565457329094041695904637599881173505410803303230648093642611542309182442903733334702306413813035672928354474041443342702084186486774534002344609412037183452270981185921273168571377964901134062177316077810803917437429640683883332996598044306654774950957661384345853679916731590220649682946792013610169741658555470690574861653278118497799031684666378020777578923821168535992393313464778761671642478358261630895649642507429520585935853986406835811544003309031801008141699502259241170447599953727076795132414025532653543108418255475803600595945961029513384291734421276326379088061322791903293392999748983433228720470053340288957224197491586250691457692264063507226896824367297626457083326180292036641502636802530039526839610056410418849293059441517629227741529695332232050820159805095970827576109021601933192653295314197720315517922831922053856066501551345833991664908427604938185407186447996614678290785598504051618681002063299136026303572649053646997166086903606754583764565791028000705519938541633048155702080233252652506094596467148788011103310492295526229411302845425809566797512912159186391104621745481985631321684951095831052407637896778363728367800177329115496199053336500938592768641175824704517271970521356875376745132919004055805610460131275985542082164772963119852894443135637680109361165742503731041839688584491580158117367333759278244774098019493626548068575679868756458766555087625284852459807802247724142567976020018336256045447618379406492095565167138239416085064965131859290545810666358701776029254972371446889470961225059918793503644852838737333540221166847401855922079900484125563861169439758208199606390674274383535187741798453566545560821222697659051048424296306252293640648820470953259155579346681384911966435714046502187263379461220636176548703483108376769123526029049789021625540392677633368284973135864422656854980226006147299459987224140564100089068794398425622040996750739192324566150309495436001565681174246839454534364777180056027746345363817870979313136560187455241270341466015914035139364726723327899907844391045994744080763840741201790885560932793847216872546283226657845189456166382379199205064359484258052191215180287898388780461340844681323371611192379317604620354535609307567362327284108083930549021813777139014328557531767086445276046680419970130721541770970259835430890146304171027658010885076366580426966782065942521916935867993062733225851800178903614908749460925359038767628865624668170662078995210139303140327104672400526578013919148480769364728953151743387621530809278340464124718805379550378814781284997318921844848184189061127380085567327758885580010784863752777543345514454442653847548665838828604154018830136946855079124841802033021128442722969871280948065571022322734835448485126597527726966705757416588966858612237500898690879639195742063422684586187959649905296946535368460263243132192965821138852585257338712461735008656678648622638123669129084714408033335184263116838456077472057282216974893070747001194829271155638220051273970894341762734506359704296889756938985923377285550713942212133696290221143373391120925358675964943523124359543116762034955334279303804932992912941354921259569633528650337079965321019371454188590972500740665683297440673514620419878961039866254404720031772350022902365698498046592892211629349348559601362304848031181343381055221570516875616706532279542234861754233799312669960721380322155840703584881496933608478205574311049665934285865591723027391292081611052705603866726538695356226159332047446070332583096377017169940123619077971614470435580203887461881478052775859779167655662620869767771789679075821202253841063886185563666751136789788177945963368690277506008149375054680268274832841052866343513497477590323095303382316867080996214585991810291797665257030381494468877726775240509415684106323566966406164946335622477416265148385155989776287080523022733736182564781923433723505222559780389811824365375531614016940198524777780588812668826081273760421644763077150638088085052653392535037411239461049753967926392442291147196521288946446274605313204943636944666858394279942409236527456173523193302786376213003105494410552692558395220232188432029216999775025351083068551414002836192832567690291831722960920050220340351531405561949092845668934694020856071970632291267489790964748808802918477945036331973748862415872909279150296393371000808576038768848477880996460324414590904603317508766155050316688916043137595649023542809245011843882292216072282434127113031063419945301739646291728859665439845017418747378661160881296390369215262556485859235397200400629358827999404909728618220616222467997483725115342250826476346335015605855340503546574593821020879219971582673837946712691147120258083768499547256789986212092088913950755840544702193854191425061030210699955233254106975202575351143043765681743184366666809007375123297819346250893140479851888055018049794294207185627760787424855610390784442489572160847893627050275085557848980592979743258604949926306243101845030566214419681872296352847983378663279844678429513236114424800711665200718906124070857288768798557307819192498989247749583478023284409420628961577999356665086008604175388188935108767069216434131308122704569484059018743417655184688703751129409295072504353262733701383044528414013456127277870081746830190897202910359890422286385609608977643595325039183492306380321967615334192197907594640626310051068375420224042452905901997297438264093013491201303386433595137042554343499673527953195667607734065863937276160677396252406077141823815460088856538139528043067123479268329304201056328114902202929756290754012231559000346169091897637682219979284843978188924662112187706970456367889543720407945890903845417635111414673781363926237499650468544854756286354836547643416053026944985384252663725364871217327923847232373958774214888464909546366938435012361840057809150283800179986114056337234418031833296059433877767649682318824598094189008556011669354921940411552380869298972163481066402516160726125419126591298237124277825373463089471706042772553552952075260483849885129301842858215310379237271586217120983399010162761163638328107758802919176793809999208381764779664648112998627964512122460090373075233363792665161869769392034989081330295883811621663558451005603798714828963122076589584758258726229228275963136221302554074875771112261857408360702678060852282612384203086570264404905944373977114307545679879054722729900106909642746884090555902953038480269264269485099350629447632360944836579115476768533187763821658442163563990358096819092480950782580640173417731683660885086783067106498560653576219850224134772731773143246425938494581197615323660198472346412482134851287887391490867746268479367125974367755227183861358860230395213102397689287399843417533191909512739759767101101835285779289816324903657966424995919429230876187570369385780868124013523890335388852651237307143520073304048753406416844490202031049178853397164521261215888082225494784975671567917103470139451791929709720072948347883273700728927016625015424905341382280423122337326369663479023370001971786011471744693873882900478910472400198194703401678076878259022580243360599474012658851645968379508343642508660605278150092405777575384901821288834933746455829830362072885798238302495458586630289584179667178297416863694878751958419536411477266590760669718715329354161984733055260654599819915028700615275601395467154030578902725114041665041939583514099894080855165977838374810554477240986384621397085588307250531976855161042079533743604831566941968121956123340484327779182832864860615796758769091851987512860556756668523387438191969787560767639804318639238009663060045035835817329065573797664379626693333063950908221694685506951859094855018477599253647213862936662370272604597125864574866018434305950994353052302176402102558869283591575174422026003222279251036023585772532599753126810250506307968324859911561042944442032628531811479707483148489041076439897900819610949300825653954100013985617395587890286683169003729945118083612337663490019427110096151850435418427053116084394083487716066110542900296550188193697501398927422002806646317575164363084713554523929221430584912417911125900172293537813763263581548598784260345762868143364331291446488675606330732422018305767806584218140820587653687119552218964442773204563048325322986502877491229854430065731604551654478567210008268550187302261238400346374120422266123868221809308618247758013600952288276438644552459715658418586336992888206730267561582507597841738246784504797995756474723609260371136654924687011059342411340340142418612341861879554554874094821067790367605358097771031093092278012315354669872538225265654772450843027875301366583978348532564367970081064982770901808345420755148183137139744546145801495132759363564751663952899296868578939464690255971551423076496446594849839927678025322335289958668985846821772130417051092420206921604478433645871348458740508596497192593488970697546340834426791466478294205468984799105883149114164461839571938444292820417875865269439820250662283460267181440885812781192819051745822811820890683650062063342008205118176529618792873161538846352245035429111186101692273675316829076017755268587696851300220365795449506028855533729077929408118836871585924105301739129697037507040963457820983204125591469896597639423722385538538562321884348486958086933732282918889696736257261161827292287663827245458260698024919050107262055854061962974741968516382422942887267002317958660782291250824288491081186282767174818581308833755925917575566586833856726863189213323729920043211060635379935659821278158291863154563260469853866563082706477082078635809217222525999056638131285947575168802557466930150248556147734305372518053957644547132551090370572183864730722878128806248612097017060884535346323001507936889548786467726056321022263236545703370133906760925075153200268740233550541159220893920064171859501432211947730614907618644221706378951184552999086681619440333505021996500609816450311758681916590608635118633122568890034633965232428796317837814964942233332772411932603056801188707019390280029324183092176700074179341312298162397039168988166287684886752060136307309807047195286924757116838473755149627177627508434688034982645368898455253341448324593450947248097406053000793907225894071852472516797693910793831258851555711655213793909819955040006531988593688406455405949904011272213851059078592902060346304110129294838754515389074587619483039046966576098555400953652567253959718604144089821313364259093120607775677993347515811579089864330417286738593145243609995675032545693505001217519565788113973097511649000947908589714501256355244834419879443557403617355245768931466590188242633905181497234806507380455800765745698536218846994230672242446037529993799455495651473256709683552904090954820393649920881053893118890412801000374314492125239041562671928268061803064411542997759526035644505407514667187239452785906059839047010693280732537015562948871554169898867303760630638956697589928802089288351978234507430119218521785488615635617560481640071887132960456279856468960978274754896357943508276577221332261144273283424994420656817007727112816932388389396575186182567536185204408688917406961956830480226770717317414245280667456603123409566052481807472155463817999330579918132480868127657123573173500008378018672939880018205555852782113202831070785297967307576784572614814909032274416808313619644215895499573934203105396787877727710354469984104237168498103763298726337925213864484274358784779742781281185675321313033188448869121876763292951331752044981639214253734803709864133404401970706516379561926190237504128998151779860440512525463901385773950012990093290315485742856033783515428895153368564071609153831599707863426948461330472366581267524636496389449929302817219983074727542794849279295451137600996033875873999584226726634036550341460217348422645560723340626197157143746159890838922713016769734611313427383571483464688031430803180310568827697199734758129433074160941256723792925384864485706624179167541418316799673808311848693785406981542148586528008085569013663571809938957723447703724334196815640772808054451463304346047141567080643154466253209160764407928904729719983908632789370604776266442139449859635681773129829413364736325371381474029694457450756850641007806737385128842382195706966612153976175696158744414104469438693028092943614852453111680736052344229022914402741410274072891360913265185116072229434008698873382383324483059443000068623763659038254368481015851537443713084703562823453145138863385775889719315619926939135351215968169333934044275907968202481758121543376955779585828106697251901246333423535687032959878629854889453434422165326303659778391881776203382181540937144825954839532132916759621281813610991350009859414569923604520068368266023975889723453968344093382547424875072939165859163994075229684848485654149418327481779191110569428865526128376654446969553198836482562438155887015883242918770715677501060896987640878248257738124714783224979793580445094806526159732142949909173687070873887584377560558484534830201693587946247437693838039325636831271141897952428875601185334481119676079552195230884732251447029407658336488630351777926440929759367279872190377008728573716306730600740277562504084066395621613529962647812481245796011710952616964737093420928535723678032810343984003403137084167532034534237400033796766618232736243553622481862079325881265100468524282911126599930674127554782650190805471400158124738139930233493792276637465517811346574879085158639083429411809864787570039013163597739173869691633743809485395237719600008875980301165985887536802116596199305385628578879424657051362376409055426379789695400864590420784843192183548578738753816971883845285706820705390461337614384206025858960695988876950935544401327372855707321694603687048399999300805016054534199820458423414451550966394622908819489176550245453125921784749551367064181588298162213628484056802284116335211252270500988447508469498919824897725436782175360902096191992776908794438844440874879426444339915224978735242535815079252087615160860269639933141333062123459301376553645921012152871248967510486908558976258788057703134173893206343014261274041151445133432118884563460105498714091726487337380739657796590866970216729000007485460876749433196251698707269435311679034861279114109661294378213779204896281930705490845603018593867407115277864839553933836351821160543674977784183871951790314719512186039708404605051675243746956560586579985272656573206311696184947957752426635732333109043498182364493037580628271282140895692898652066502347066159314113791174208514493573167046122891643631644641231420853042865598138111698233837550639858253507796263433646109470024502630613299275172213899789387913133046687924501119649206224531563340004594744582838465713976625655503458670452397827883951221952884331056246276636813417088527143146648270216222573837073771688883189610238001758163644904869827035053988468801702753867717345519330569729725427339045818173898107877285870551478484168340219385520086715866659255942635867668638046891621946979843574428923358221667070663521663047370060839057468670982913115943904202411869627402594983343719144148275725233611562482290907336709670035613664945550681305849539881055077084990285698828704241027570183529034030414343336484052761427365742910565179030969169789998204152150618050218950774197536357224088361531138892588067648694344502547488480156772091351741549867640345995749674711083934337937287058928227606174499689206636007541868921248692700174922882249711265768554155082868034995329114843666761388502038508090968386301743017126537491206534176394020644335788298197520825638617883379668467044309330662687664532762185931899294751115683008880326851092927985981573147740612035075681680599300248710852903906162991382402632129892968860301122686986570651958027611564238269195128642220250963087467160349636128785719942339266817919410037410641976306635596473333939121432182706105941259986078569784732608740875963578218254456327557944120062121826028912397162395010720094745383260753611580426732309729125382981732841047890978683089919327302430677879422698372586060596834444107060962122602002460268852857614482631158553145440240573210565199298152168935673882615822083301497678173907720136762570694337898962159627722706753693610696727046243625203166434598408461022953834850821231998952221331031674181564332564920223345579756439013652452953961087479734886261828563461814150514785005139075297143666762385187808678374532894688157157185969677900925388004389083509091911913249401423259560658976328345499032202472691229020126956069785501660957324394034511694125778681924011793044490390515041337476431953196669633152879893413441557656346393172474436696509782436038331431960815210293594907296806584931991426110065076546535145708536048946788837879436977694294757735019501864602308038363315239362141431394132961017516410442476062496322319335294598157988216872867532840436284272172338229013250329638785724428511642303294866042560927102675500106966638167627891202775616401882029691593818526957356101402326993538268104225723046159553622474803249992622503120217981507371586500620389338684984094712475044343232206272604616089920207039407405549936943907815287749030154192786352323143515896278270188500025752790312379534321702964928784146757698357649267546568982815320532734372384211299010451558577841243144329485716146103548548509311651769792952601732699407315920622255085793396502243637815299144199912978179272990808428880091437250417122059872987914316265306502063767184561297330043671105374442907909606203640198064399936806602183181879558282719899266189766616687715596455477216153099529059100335714831062161431100640929519832636299491833876903547381576444993479990181169519017079660906658681569041211325607290543326017135998756270460858740982417300686051776022586488844232663666490683536036960314182830679017754950144458613359203136347729736880553708557834505765142602849959765702381701610502319454645875521325592979169706645983776153655692995390925776822809248203224199842113819159500320108912708731492338133874655247629036512045777409401050494564017121189242100740637550517382412193125869959063468991290194019111112939390615321666469213913178474605460889890739542627136197448354902166234966558983512470935320998699711009069122498909113483161855347310274428689900495039249798447097636118332513952727861644317126435279378802711106009466186571251644638156468292429708693189710005000313201218829681921644670364322734379468646189734957177691009827515439608116663614623196671387444526521287796378726728683169804987922014481429254671273267674957987224428777814240121165779537695588687405501218459490435604434745243856588455421036313727606049548819316420861484646475048990575635514648075690982766128488324509790996000677547989987530008723648608405143744817275084713599378378867744244966391415882533643513426596138674562515676524010458715799735570492331407269730512278618129729335762399388514576510674057767618879862128285604142055893387470573883390189030164975160020932779050262298030743754792346551245372889767863717205600731953940755567448161788773762807712512797481836606448537037913692214735383853215647674227656309009309708136276076890912795508256247259051525624621000524411049715947889111477442416190595125048061132193029638932954449722143445122606306089371985923199493536799459767877311560776945419473672244646559883818471630414064837495425582612743233169060935954837162489814546398397688166298310702650500508157742247045978323101025400193223013092211584350212933478477307582793493875958949135326451756125868567370814750048877124566695718106835769328766357105354583249801944081185533810415045744795529718535733198374717401618768070048241198558418178189894225981010899755295885278659885242307112576700458043893312962519104420452681630589613697490133042560439836258350001917369481434312261884379609339208436149908235960525043131428791287395086676830012177009923253884898882349686743975994041819040255551229535648011137689999262926513369321087089619757239380468035240593485843740714304208448934945517653194740716625002495458189795403531860456946749630083748632932557414400833853807334459268515138614635482879778747693132057011199471458070047902931059655530650527610795924220645405001372050337198972268987445552440333918362184118257556274903623352516716534652022824038228684733635922395937730541228308734547713731302431690275336335856194450385824984834737257566457615187241638387023545744808801636010629845848228211310966094261144845767388204271156966043947490650746058870070240279520986316637531820420504299284206330069184920414421664090487934033602725084081807889048657771040819620507631445930510266400303970948612321733237730989606246086173911615431910468301061730627868261715652957909524379184213132267391400307232791900346544088319622523619393988504499337973303361852707623097023720229348151351199218317944909389504862361562600279726616191006135495104128923007992348805670096255146572784531257430276611645160680116199481149106224783885470460467751295107958574793243659100154956964817991289335060919821532185613362086292287474998131822268784607682486280406258271816250684432081078146358402045537320795430438698253063423772780726605049374733892518630133994587971004378679404278814459210099626205457701970357873268405834975764791826195782855532434280107173101244590078740923619391372872043040467346528921093737029345854646567965904304798186239684201138268140914536224949669243713797442904981279026462171173232262130002004613610402102975482856271149234195564646647164721972846756287648354874551629414313172710362415230027087833796092028211889936778475612054098454305003926183026967987059581379641431065186984035923921554982198158362829793726396499821208062446323866735367134031092758795677705249297654116021665924212418657970094640939394101874157719667928196026049418260147385793947712011278749932093303812666816563435393478722218798430078524916617356634224269603158566518653015228717433091707624379009543839549397027097420736424199975625741928049592601672358522756932984171887515805590480272170760653419051129196665833879003231362056174383391832860733130026340807061380215985578405855541690380324106938473707633518363323266503704908197880760369283479934303748272885058679840783065254257586257592679036214635691798253864517586744601062864512517868009257683459986133749007020627432926358648610933101605757928936943341765032570922267781045655726174596654731186354078461730522813494253656215496198474434192834481157116995759344648577204705138715443247016412526048605802947653703330255503907333595572667036452216926791100999385358157993899215615499549372309612780082531715936458223594267722330531855836087955619481440971884368295241114717293211092565020059030745375913411505793557120223206056433156375291320327398570023261107670293587900826062898392900375470055797235054191853030222967540738595743371153627123154468662362871739444575762756036564615569504368703023610219257503984589283626667435338512070014025117285969285860013105303524810959542257111797528061121887885000202849955537667036816710371118114942606704924275043724298330772683492027503191748557784218967719246740072185626059442952939014496257807559493646330994748139992021499259993847702911804551780441921469131053074404239639566726518374861589974193566643095912055180270002428657893019033133026778789423836498657111206360051694516922603752592096250868565959128180725488881113358196825841626015848329095583193233621836250106336651607025937616289382297497145286966288668154348383524637855267039545253772032980157268854612408648713301292206320340868716750179476103858546685522928903843964360032449374653810409175871542072177077627362671469643690837171851525305516893501699844306363356459617749478739733092274855859065733581490426440174022314807156259262048953623468862121523897266177472133356297378645511696165481933564757186735745911589724386227618511144027614298973743699709534188962193582508411960132227542077678383856487002416162402811066621904664547713261536541668702044634184021884508509607475994581132200830507134407218667201676604220065049829686849454412902018558794448528454785644555511359575372396263930815133363674002493094990844894961557848778919930828630522437076793079268049142508916146213276517910354247674498188283838218258763183613397776581125135545237974081564243481434262287032045648681630893345941339026115620657057808715166769695949649767461454329895776269183989585808051373206623147776425481696985041557345246428723195937919395593721178907487010525434265263814147317351586947461520783092661480549781126249641702263512195352289316522750056357834821419357147186719328390547398608579887938569804419077688127740034796911642251424615573076902475951251978761695419825741132119988646943165768688047421757467169684071798181305945480890757952740004349620122398198764745516285997879670132974559188161269306048121204926284844578803481493319797644396490138933185331955388153362026903481417608420570173742556492757980263868891306361428677063193157597476676653362152162001414723163359940600789535386758252733272403560297160880641411070125096880246512395016814180582305554202056778010222413981445667278279192065548424317104994978993138464800446677473755252873941429350820021476791210617902227560774293568359990160629580191989367476093962660440160018381867965887142023387815263549949714398301058427913012693888778132358778483338500260817172325357240434635860691283534638427794111282117604865021931106795890850407618406035313068512926924845813437133395788127103600237767837991827945586565134883690061797805352202061453551419286811906379413251423642200991147771564128008445403831700777657954341264858370414845911047999567496458171857043108288991189031502373717522397981019501085308638366474966077919904030407658935499617116708967408731268139090882450629796316618789471825112028105689519335314096119583836244057994024679992040693762672909576209183174121541402157727860879499996781525761376432481847103378491572260110351527259842628608625762244532882566833964099542671315420150437239129972906237744077703520310502136369605185692854015818878617608731475745221478007788496374791685776046219550977317355835544803143314291775801937195972921050514530996167371606630843783286441662958501435256760385909580876549514375674496230871568936971296641527895904878458611221429853667910035831371891348530710150728054561826880648355178114070008860228135063877395436808389854018409441354535388553790863924333166264061718951960319273781809728764277794327178330169103097595387590156438038010099430408932532776892482692730035699965453024978200462965015912007627931915837320130740019120336977293541267837275892066456802240068631881033302237335240282094205759918717848159217230229037803014044858327855935809591245073554911325175822484377430562968827816322983949940504018338822547521027971366344749731682757751557692525643735574219248531573704668549534921395102883016742986309304640852316476949061361440630877616923402222943687279900488652757791921165066990764008278016220902162199774241604707882474482676243581724829249286181012371615425762972966093511995845031347562772788271586820624372899245508518355036392694660539695843576756410352229921160767800373485961445779296563756982541781409301925846612572677012859717756540139559188132901508815116788549085496792832225655168889157385689949244017532349812299208414158022813500995660905370219444448518638576772007134046750873963083557837367440927305571792233834000034284163390246091569348397358063101891902614160460001890058788162282731937964198486930459348732901712035499678136683208847874446135460598426674676384327462992250476906939320904613823149450487352483309491671351480616581358442170516443288730600595633167572676129126689241256044274254869939436065997989312492167544040705227064995471727354377367879249005337687871608324065870877161735892925812002172125515709821475171418088761775974824499091781451432483911931904442037603902981701075246826037004438769713541642393119920618488597000650407459496495843441891468271237453652445779308904517066199730795480560708823759788011962356356746487676468032627321976261377867396974232802777214561696351139771350453408367439258741831450848478529034229546950064345314089730367795211214237564479479103596375865237713807546290524968805762764271583769725603876561520168518759452840750455085105752415356961724609726174104110896155683749474817256229711538178875187791005455043412046273935844762666660023105797027022903495821190631965902280443964684975360103519779958997789101150043777477139561678955595078611397351694112570726318750406134722536812342197456422047925721164803170949942709931185809594297980847281412236532480461581236224242507121000089874529770629271020908267601988803392437795829903447388064299545538228294279135074720212219131325722449648519142308885692796722246931890286417263095362989265933515826279551417120782880648248721909859428154327646627071788895161714124296492038599452450422261700848395109917956325857429960232656638130625439127529933130692764282322972256357497185011594858884170556756816164303203503871875577743770822970869732142992068180808365635894981213968693206864449388803442226150226938523209829910984854641331619366811616865706905282568719093261902329924257183788239870372982513941523242134977300901796101208971243629273787321985103315334955613565177981779073498149883853418702367528122766555881800688976372763232138249929752214934410854781593351168320014542324441642814857414587188856362985220848110670166436682304633454384174212818692742632470987563457063916751856759970297186654342293385341073121092101222188988015212211901886100610668125120096186358429207641867866114978242088656605345730264847626142936018953112128145880209199796602626283904944025113171488810651794404439477884099283599192404839809102301450747291511687512078789332089363620870276887635906774639576398846639226345473925310900177593801516115498103256054805095996765130261900460681973036769814950646871621407133840847362527556963722861054561028906393574103801212709656313082239410864505080858492842069040856003767311771591625036594625588536062771808918283362044017168132867201009625413040910587451680209719199655064935220837148207979236158587413030048486104609092933702592421341879814215247002862151285364858747195308608114052271470488286559943764568660830197537460132604886856949170448909405092315202968642963962208582977535453913380414134726098393524073121625657718745957057216715943944797621773502008834759673077369806014827436893400197996435414981426009262812694729105062425844062608193899142173488543707655937743543961973446665129318569932971874194739694382922609146470969093713395879740252155773357204033933873030505358604875240652544855370459605307599362988508157187288194202780472538006960482264002203533462082792209632598969046712737561855367056265709470519332780449230652708720689991643883329947691268996560439015442907474423120904628733011172874021088195015449319945351071262033772295364471078232296054718470634503178453488595899735296235007209266745611695130636136819629821269259709794708881090246051223194286676345657104818655305628902956203022193899732734597649966960611354300450442509589007733260717253448364973369501355946946695583726817262877706909921823102311450902126669790097467073805326738656032013511898854792952145785265416820576884265356456370178564480555535181652521713078320208681077648961167019833675554519654677510495861297480526680902563820244699581267418974433059866151962700802708531043653891408181699258747361842580547206449284378953863802514459469889431461267387290622764726891367953011358811744107899756241662478024668214674594955581966983951353130479107454716322949572400765841773254826545699664787243408548643633786036145579381886683966007778755753973380649354711664441053760282050591105110056520464032031825884570473686316255548579025763438186179398539520885763587741089385701230147499033569452554935499304069159053669036015762243891479613642529972593892761609917550485048024983763970568889192931278850888074669750053914458887582780514370594385405142058974287659839392034622451485025179530925051253236835535492414243456054211895287661179554471385166071886416555017008206478096097921897456056236588643697236578414924790536920942048249904954554031345167480969554724678634942776879413507551518378585054787734940233231018715875720572404677041394007534427990086489989833706042179320913859269655932822623704448715967108681318059645273334248782666976539244391181603714381640531449391832754277369399153535850443194918675485927651573737942505720435931012184732441682097127230491849210506515055384333496251362945290759273111900516673808310994331125776860969638615491399739771046490028136679383213870741551658978617093696038778744372842450335074451332998358031287810958748193080470946551654347403162897499256401382798098262859361503099626573474513244538700779350209689121838005212040895314146787739023100013174855249238456387436301753498255770155996118253188722120446176170223460896850752583866159550349419881831779403794120697801710761739223890007289975882854433975672909129782789012136384340047843148300470334451156201490246740588264899966410717668815216511096396373808119646577736108616366727287358946026037729183089578818103727570765845342803284213043149481343654142053829553488118503729845083956858779821411894835372804548774776230824675243388848483303227931864978206901645074100913635699110700461137178615227572836537914669342659908553350076141098783019494679576066333852399924383154694479118266066358858014963548076348144787873858269433833948882707445799531843442178401034444396864135157608542571053008182470026070849970039484337292102297156600768227889343497679866581502466620064637648466523079912957683796861980105427114784725042817563052655336738573358323183053737577841753295372346001906401334516641124857824984845913865825956495013482680482087000895718298573768567356390922376243975492775862273614762805058569744935968360071797931442486086864270820515332822685998549335378973526436789434617879485555685486040041586507576070259606777807417059545121230769829573279889196621055465303142060953496513317791186836531496839284560234749940110418490968923442575898406775461141381946131276211947798201393583364595706837926500784846942103000614115207187289475122256472665436551822932701116335319417441878413791844875860521913717047495303171022056322552359648419961734819395257090911911556975051818229314713577929005848995577434659057301399589420993712995186557511467532993698166317092301182085029436829863469040721219486131956920312878777269388493491591138440881758536900695498625832684136365466665024237871892683818917841527115183477003071650248214453244682466523774101934937537311326307190591290184474211948562120092372513081630410177581909480165760430324882289475986589325447499227762336275492433653022354967336525735284655910271419243372956801163402483523488209391229899469104290513142335363751141989625679362725541428906649040066109561712340225466648577316763482330287736304605695860444698408082936296995097830266634944515598822467168678775269224001100080533424607391177844289822374444164382885985523153207205209025846054260572857221630057876646848652073506236561122629937243762125203375936377764214545182620990415905957316877244917122401703708383791389775267501755037494829350416442934568154514891111644642297502542480751187144833992285493935740742381709038995487592572001265251278796919513185409451420769504691131112919327547840950035515375058832285884116404907569331011057269105316713223044411847982342750035320151616833485132470202180839509786365422785129186555569872561004609280934005363508367892088623019988137071492937075799592083493678809685661847971351370697344975939411194198102364834427434035790783184529505424816424794707116299109794357359624826770448244194915813553726811351538692515339683478175008868998267045542160501200959106378731487288538979838196511482446062344029152014556617440464044414798871676364314014579363987711015247146004642077609431104021356545089267864338391885864900963796900266323414335394818289873296834468868334416054429891021439876962249518092671937092348548452042036029274082091579161850513645156668212855579683679659381604263430735691138308495143082080271777195968580269957370800018299966867778692612502776027547882744080802733754462843493993780103364315642572261138265388858695838639059388530966329965496901799890161147676747261371785405487375654426077544886334725908006006265868055754267663221182429946210445752076098387574614720054350026597839807317926288327255289427782466766300112903380440943269411811881022750475537804227385691146265225659306009497678447673589223974575568765520868149585771207747380637424563396658160952188044874451170325264556394138798295603497130673643730454845249012795841205624509843296445971670142900353985854198981033294820300344649664404004900343493949339713587158425069599097945299304139745797438052904803836662297128857793310052709910917331616785870444242246197410930562665105010123936421907500758761990363044900599189445395999818224911347249272380256977490837471287403064722410698063128240049758628260322333264732640354489636047770578561436597169419824995474544472550282764548676168438934498731521661629795197539617122131823268708187585675348220416726030648652246620058605850309292652193782857102673851870702052121724243466648231457624225001045361316561194497167047833416367665236226724108762527428887201925516309609142300088564504224334694762665620173370320630287109907198643791063862536987444342351812920859507983713348658121170502636936845238771638735422622734760513776919964041858177111256023003047065977044254967252378066124141548799839087311902338147801287739733915028296904764601701485255449565861875822483416967841781727765741319428021096972111626182668382263162638152571940958743028551450257054396917309356262919268396965558421207194339918999871204703445445482271174520321369826871974545284326312740245339332879533416914351382154151982727736068384111573731353981625502612203627078404683009476278624368862608189587203950830246415482740507090788640081827816867884160158250130270201057454628109145223187780486029804689926161773667579539130900743253075729972498443944866415384132231420550823883233396683502065497282588691805012309876018435173373327334144413743893396291204089246719769464364814226147669579328658968422013536153830817914132394780401662753770333807165155825768822245528307834449634323699110088907944393012511114510172717511671220287398242992503722814222861413104304085086527818683709651997658103443546731510120968740434726097428784443792757921770881092190437626311948620725873664608877993048171645125395638500570850885049071046282557547451596770111683249610359338433374187032199643351959887483767175039479910737045737235514205791673797825088644587665826851167713050328458622269636641204182981276610641163087814073920464829932604200784585472337874503691925617790116137232005253166763091772820090581639192250736380197085692853540110557574297934060759339986915500153332928956315159961996702778257374405479719841661049503244903845960791988240687497304019008566067084762654259208446898573420482057055150586605371542608886427190606025085544510093369295847078095261822205247438575521113961725160816041182409953077662232586962249631176809254139059345760426740809935385846621098421230592839802709663582754216088092446747555785339476536132461867739176439479773758613636213521943303933387737004225870156504816988974583502864930232030318475402315729606632557094537114961719604932897403709171342597594660198108149507593269334433151537417158581959684045815477815032038304060212919975023664304841126346357785087185736230570470658894259498659102923678210444249788508298894803970640926837387009780756130440252061193759695656941231608894308261206392346521886796462300752125252010989388400777075082665701593641383537092764851206699198171547704524137800861148469051500322592383323065935268336730630720839317310625380896476940788916522874704824222481470744011971618334422322349086784719411011582754442099727565555758253007876965240822976104853911818435711851654593976569906807425406597199953141238576573908093475097899393891282872697111325370254221985947240379258227409086476324116962970442019409557004553501512155749005647754996213136575481708325400271607698594695085564275474177296864284713949417306478882137444438359426865969352691599407706420673901544484938924997086366405879055794373543246496554932002198003500611608851098156552715229022320852797437192703189912186460463959201455109117107552452184725927766256041667584786695839921086778574674975255956098930805194677410433444488300104492750320606629584117853058051892788700601756701331046016860057389889482129049749451030448878650820419939546855027353659749779706377721203845564329082351731485040959883239215595817132140368752881074067014295901912087826189872763088796216071864413307704853723628960976062528531448521321321522603942723457790773928557410458025436294929402745445631865218053451050135293570343023584150982254304291195129976965586303664950036023273416808613991319598117903724065431295052447702344947735986901808440812604366620774066301834856492105733003691092921498922429179590179846312323738054038340616736499759433421008145325269706117297421962261293203442877302796054194144116101586124549661082354214375142758218810651786437543495666262318642150767530465060560382237085022988996131985955851116848209943912110752734384942602219670799463687863470637955029560611369538565547426620315538225965757303384938452353071179896758673410087326597617427974176366533272401876256746434730012977333461735601032026698741620259717983245066372591895228053806305892562350286723539363313930259214734374154861115819526878075955621619926910468047050090215271177763415880005626595672727588044239691748735293974865839358248100625057343095965498546347819455222252040111884033684816168013212590974780786831475045896218343975419010409872083950007807541594384372483761187736179221382233713121097855096435162366871185544957206198200273002907516485177152205621942261207801518613310172793668030737515256191210010995560957698555308895995630722617750337236806240130910726610868894162319272130469151603942136590698744225357504943180838589611453043859787630202190669441424768406608255602711142560552432264289322185071417299768636398847931694004546816231016078247654423780410166371168411369254005504485976771329774983203620399496802596747351148854782826328712455960120359163395214827614272811153145313400628972007060449783878866352504268747235731907831918453995816141600833908774665020799347119677582845912998592819261953167860727347006676688614382400023892589989547856314397459373744518067026732044590087627388862426222491011979235957671707659261467863128935356533641591362012409587698361909347909986210657333073064494048298463325340467602156015892370823315611178347280708151521923920802422830750918959082377863940246728858584608138563669575043131819544016196514013396302669527547811148506880554861184712426949995004811284315350808112677284879476442386351439875020826321483222105306764416555908248013870920003069525170764803474150359183987384048922263293136214550338086973375918272358509674667723684109956033449551208913825563734067607954827398850181498738908010925721857657724887328692456761441567827913441711435513381513982805171780557592016895279781039232199230981770188294551713750665902961393196094125719284637194767913033080955845951014855944062054579436353970465649657411792273542752886727031898034598258037605704185593989680583303052235538987694209578134390395689660516196349242036075519143332560408505736012100354761272258427370686428821478390965178766214879141270995712862733016402917126660180524683368013306935458541122125325150528985128033451486176846200042993452301710885022586792857329184832978805739820652374832551288843334644260384353427135140988145761424836235839242854525536534130118371709465473911024220620795704913181794485333478220376730824137462991143744004670471875244480100951955461685285337120197844082583308400595835397857943872913066314698418714315140349436540431458634886105881140481123162072280938217819387453644196857684639180214094176336750501811642580582831925253892273173464074908407557874101149224155116514569689570810718386630467128749846513649415523468031772824239591097546351013494103883259419721625313249737790276898889198427212384485106643116541544194778299487778831962615828518986349205157513226492562660399069918741001134743040748208103953432581055703539325466635571175549592016988758711042263741394152259995535029087815159585100438524587791944510915397814592771850311978086992597391388645226259425620764862030081823880906009827809247648108288575116612389694643558731516997300865342312403929518770280301720648000659571337680840879440411090454343291924816532106365087084477306203900816038907016517150876938255845025245008845430279720406312370833056419259676201698928925145722632916276888270248345796041767637837588569395268760135617367141928343566961318032508527287881985092989840371718873229239147546584455733160646799923230225667316202786084567088735046810364645978994585761071229908851834279887336301281418913134740326793440294958104411161254108856588876984345352362842500032046656976919990192496601007318429932054953211931359391521903218048615154676752428263706145128245847719548719262534547833721005528775302876344506064474465569719786247302535722669295673810979322479385320936399575704421879162320994791410375359780933203137199734986767156291705917047925683730990151378708269010474366488759265536013466878681549668671070017827444096867935201423903995139256182764797235760215052846372819222287563447224359453614721070848433657033519447855375864376683189894284801926082258466469941490422413023327961844115974752540277690809143531123671506262092190923115117387597244944752590035726451857457233397340262217305216248824500076771289848360976705115020324495982637498465210826690551074813599604220870898205783665052181851542946861753008076519872252075972107588211531010699381356205405877470795028909032215348022518815355901364348508958304086068554664293559574886897656038939097714931001530119053675189808952188457421232168308140803875902527368311914208180677928681746449591684521918082425641259227358226111140290842872873391396183964873789098643462961968417403136594362420425487521450137887426103544715372411341172983619080204444935847578021543662638112340700791760268379886938297877449925335410281448821078765946620050967451634648792936711730722316067794106551021488632410095358749756083446276774513555322500346645915750018747849346035936878209431533450232082607501628572910113794661314714462930376504991147602430083342308894264207538743805608815574777118032164214919215263240490966948330978166830907913636572336993459886853202517702023170127019730961924815812977085098513961975067670808935255207979146322759727620291887676570983241850730966435364881125694068597782966313820187030966900670172000638616755258750711235926477959031720924079925860312979366007115521754643553658006415094199747289417784595288482950515872242432990818831896958951443875044233600413548602005763418868871868911379863242333358460516711963647644092572788266571548023885671771096491330842114493257992205791035100497510471622494102392165300497223734397261596438970754900534562590568134349118204788416086560521683730710346017132614441757134326383111600497969463606050679147642017639634434434367915495319046960864826192839796110787990984693032715025400742769449243646083518105811383002551230315343787480164508350710530776614255872521598446334167992776748171509307347980473479070180979484668069978184080339323850777442193274178923902951044465414016597408567502939858204707428126594802897266426430441102241496591038881031800437493756208098341793494121598452823067894344736566010732571194011556609822786364483174692978505647699983090262194694833188406167635170567814600981411554041648995252165997374724907561540574496696993683578242830722313522642505748656974256851334970398152698192760204325020187160362129329809305498726210068217218538345149571137362942717310030341681116523981713314944551702702133161535776191012722042945176514991622953948173516165759447747836044279312715599127406102087239031281437619427818936042551177018871168725080293750835641384262511802626383870442998637729835239856440008826846013349580835906302320471124735444437486025642615198195124223743710569143566645338751984292009949175838298271690620295084031449102085439695595447846971460200124225627962513160702796035924160604443110485689885051953340173096091422778169604221004267472327249237005484479027594586748859898434005272292833216391128427444499888417634073994263271129508539194274777268414305627581371466485929423954501131391412140092836253195665440387632593552185534122417033933352550479680363548202029307559549793181137205499535296885347998083803566080297200196934602105562314082308629692873409697629437612194051769391040592440856662885360610057800523351493116652998764363224726379789847507313473138183320433354767894155886856125749844571400340596788377524991906198534752116182763556895462631367634363248228143622522603088674511897628934599984657852866965282593258913748527633628492062177742942199722131098743080771928533266726480062547961541600014194531022721584938542345656994050272642449308565775746208632343316227138035328269944741513722676877139767781923984703648886132476687235316723331380961608820260185060857599500405385790458067229620382589748388059196208333873316908924876679422655852319624507136010284291939142634887309536503823343792079728339167644290896426078595443674761118910444304217755932232980747091352326430464989202443272678102766312813744370510021653482519512951762629313444791205534092542270660087835604734788608870489562821269258465930705943041353077130969488063339416587856552974909981108291987191748874839600303076918543656878212188999320794546548805029396192225040341654884838854924395510366150762539072634317852101134999431510445191667763940786826147148143976885891518815507602347621737502943980521166496034864593755617583404844008313592118498500754771333654060277995673160008334406855372015385114302291495556559100138754071614138911513743925887961057091612283419678442692088477050805169712306626420881119152719836062182360114059709771704907482187610404923115081887694364138762980346310213775798293551421400847940378802359539618038528063933720025580726436257060476192237309645734649431917723432862823199715119750327705834610807810737602915108446227150875815285721158851792115629319909646357191261299180670433590742743070623492701723337425473733728040921104541712788546005727162345141619465270055150449064870923658120985379159934506177718248320927959361285956825070715580283928411827050536398933234371563926746003071413959833411128023346638240430281175369163789229763604170472226388147240701909182598937303594243459511256609446155449455477593549625275502003346490879579200051909704929510491207359018841759002720935518072539394222274098037670039152062583760381538924357030985985832159289478928024692624375694039813272415052266919667891375996796688682169872512246626578307047021115315293838063401867881816505445849217655735723891585401383228768815565073860030353444271686815786407686582498220373470915443926587482204320369775993875058624660561664367302446508506117684332837032349174771079617275416618412153856408267654201117536971898450179717070412385753996935787509630743570528214037952363328835263467478694953003073703290267717036764086540388298074369031039352962824353720172686864310624312846558665659541426573521219081969300893786086642724958275868542720903865914645840458591554125281729610297389646786217683051855837341408088516558297295786567365964760195297356035865365084313054020358105018247468078700798122739920994415003165350164595834384400870983551442366930241858302521156171829273814910886692470056065144845924234170649837852359529889852149587721292326523628579656570608642714387245560991564641405925855199901614601646946775384273350372771177280370807094288177626393783365753151838963697870859364910875329680775036578832435584526076476654699207432607553033096004341042134543987781541998085158871305774561624427125279571174048315567264490623670690755392869608248383260504316708184612319328305067622347559387180749843494427871276777906204632123691365834362107282748921484676735024921180194105207788929459458897261080466005136672100924471003165221885526664672618335913719723448252010278558678480860534340835854672763895298612394717895262495535405398916895041144531789918737027179375008473236469151985053102595696308227843337250267843449645355168729838806626062644970957540475927756384997874874693111608617453542123135619693204562593056047154981837176139906027927806566408405399204069345195376733064062796280069446211645052780759018161104626617299813817330828451384989440164410120847369809997894315662985110282156589832075630930408889509782893445543883045775433849425774431426183131692374220475329866725575654797659512582660356807650315542890052942010416962512764675442723079981705318039767089543800572138519283143379366963511145212687926798872296006526467391439169606243014250109621361642783491527555269241544056716272683759376468277355543269074195362290716058869526776900542853899056609492624511490891475649461480839840021757320654970529679102295116610047903618004993309184648595185777087104076631297326504499275181973583711117106111905992793313044161171135489280307044077696329196704962737843391234053653097003979271345634886469431064374216848068093158794325111965223450820664051751459995585867497215302527517321951255700289219496739015615672683236290754351401891018515496108554139292489040861060473863386301599759067639763744888598496600042885745661915016025399584599713920248442076362790677616943023554689233578051666355322735269000863057817632975640821655907206084489384937942753978986126228912692010995729120643924947547964942819543551050162934475369922674328518985839963345711800133571917959618110179247024503634777081869790792458100447394097812512964333931059653982480178871410859295834923600552743228231056155423151067626369723794358908259627086112162099799026414724269496228932284319979285986472097911644010281804370798386166730547502467828967535072122610751046706656241294127022262676760175981446292324198312002926313181298803352599214892326930150600940905435475247567195811378940737948561739192683227653226799138915440398950074364334776088946687543623802813940848437175964814101212873652437701895156055880414688192120795866876958774214884897879327928633645171629484451489999530306029668578483841754144459535673655160698464730556597609539421906537905473931936330881695501448146920776280415313619232094655961339748560892826540144847577980689174000582874275852545269193184604385520840264996092947527198671610011384598505193969830813859675830237994443523555036494931779579044047758402963746460984327092806034703309090479245659436067585875981074668032203726432238533639305873691939806752256181908203637188488525972576607012731538334310544026944779482272869981309216252260591449926700260852709210896128610377275025831765790791925403476327414587612988773066827383512618011525036075764243884729566075502697133291889332584868367927279078036746347076025779936753908316970008859358605079359629588219990140671915339687905144074318384660152745729002749819462878342201537869579927642540122178944447383768251342783623404349882574292273121705392027332550537874632883554683371310052094378662604838493942869189444403288227083173010594708865906376082499841566273156119629993894014356807614416500060814806087941557734797576806441685203733253105175178692792615771834958996581863637547798785812479409144090726685242887191075663333915293843296168695684033815015883255560322610400967381952032001782116976907554855043708991759844909933102634739251634030130963381199289421123405585223185165691776928272321514704416085381479527744294331016044717644456233230945440899939489980831325380836307058346261910653807159022589948581370809432301311039025908613349467356934853912116278777095682953663906872831049570152431561870126719070162172318388354287547489690979754759836507540827615075146046064425073295822810663191943606233907890188490234159077049053153127500155766374877501666462528855505245772563138218924907279732258949987050769653736454890575253140987280988924838497895055862249023798854018576023993607516310610652298293388179597346403081108016335464284305594365965613597020839771641865847151465204273516401402947091937641922657113129499460282208928984866610870781320683620310743854461323506840255112834002187283817033665612396711222626959579071151271692027458565165462639866615992442112004956968923317718251455253882921364015142325671902984881349772101737182775191404295019040053111537460587973153043209195770801527929279490654047668275882795116892946809524832068169775150056678079316066556945989445901886899073848266352441637098176019493603098680251320575002045114171905634209613982184477661321484845062724273219106705869038434543233517873507281959582440659787350376035559508784309139558720741582668851801910058573370624668067042091859224063023880028094985729036775145625065065740544195071144775951015440781396437530761125898381555229565708339114340746752042855689473977672891991519992778663951138679208015530740542762841694195140374588741294440698136423387706197052981703484270336589249285268938041318453375752493294939586102145856164738420757345426797297289052957614902472993755628073670581658858436057933132298599571718090482773273890216521943762825579035124381311591189975226285110777022084417676424013350709693840369300232266205384332658078703304057913793053234529427054383203331102463923415940501442890639225768931783317348195331567544792509984165986448526489106062402507392539001424387803471593986455725057806739453556773380316808643010403178618449250316760178707249838630749729973563000835460835806864109587083483315513001184663672391919165058005156606860907090639965367070657566767126215955683865307179703962437663060099527913640875075011536016691784043827986829177276649826244950250754583736790078169361059919000214969889694847297380729422171966642311146405115967399765717733715301487096668441041803467026305183499301568456259790918928130064169883820784764835193279338219314365117339879915786357906243876938803395134520388296968713029797364393678650978998376708526177420558255699013635068300556812623117637423219184694226080433904783846865840593970090944405960326656426249048272010840636906705870739895092193524552089224040199161244625528029038820136276155508283662094231829295683571632690058089821085232935285423995783920270922479652977869212952010304516563587017431782666902211202130883659809773403239787802645254527193936440085672022653601010915260249615307151621610859130639361580681708988971406771264134581845963275775350342899443200549854581052826224986002997434222633203505881135889450247966988676146587319710426354651689395827273679983367145507573356280913543612331180944765673748849726836292422619796107377949812758228570427383339842812156433758168802890544836236691738890378741486788725270737884854873288443961196213426243404019312449393425806560496939444611318095463175414623942319891324939701134932483682833733994493119839960667086061284059593045336357080469753130067910915536853525291232136362805948650149475246327111897397484190030786429922839304532843130246384960548432705612980849998337545381115315198495502019515050913307863934094566445868168979828474537102561567879487461793152164101062231165108351535645849813157230072079285371140056932415583935598890739087192718103649211556056676188669278108014722138411494159225316717074290486590524544556885767663789678926843931239535526169047614471641730896121770429975354435421709578579749115485763243207120830414088543414329576800402605250660581379836346399622240464886673563224945332481057031565835236338946012500234939592516897212815861898916160757516349746774606092740217504318929470387163982004706537905819407170398501123939790242982789388525756130037191418551031463914264302258895927628523074411300637400335913418191421265183649528023036578229080018805804116698856657348554417126986908214963874828776074956238655843374547003726560273065142084738338630649779924273363967545051582586094651130779341838754843382517507557451883185545944424423706183065611137919321025399386810418155061393828460071417947251464088390128957434234544297457232883271378422255392028622648819083878970948197924781667594468335580120548684645533911044287403914749059821842292287276724249434272685180814068458017427757755988546758472356172460099631712399385731160091726360752210899836364199512041113914117911296330937885096419270687617195076379429176480032934210786320987939578576022497584941300677582785786574149485645518903560905755529210887144679602073997699498664304497297424672637902213356630676932531893024982237463159358967874724748284714332757971205154754800004889404681178045137594384151486064456891232297022161444160050942608702455290963460838718132540799716078139152608440082631774398946985750942264761104343806224088645974971119568683482412426991082311016570172070548101095051192708930756148520407528872284788851808571852689416645890036143796763007955314085810617637468505294911117828747724357051992942141850168096275662349241359629003567473155094382572795066996992499120389099066634185996031184371097085822581050110971399642088680781127931602712071183345657900560806695820479884203434257426400813724163268953939583756063095858224981497905367328839497961344698077795152880686448197453654100824905853738109471675314633355398249139303329214484054876376990327460895172039989543633740418203025369480393683265787267843506184040132346766062341793259322944686399190598703317917900330532105689861469976868506849949441294071183380469048735044582038440024662170981456684548025038143116343095197939489784375218596168207473546501861382612586828595351482620183498392811595723972116419011593235423817144770909334475388700033280678713896877140510657698124948022106058256830102661566741359605297777504208750487292042207778013902259975514629717335508553546042644165339636769551625587863401193173263848397895602928254992326091439303101595089324531856522685697210053880264914467710290555155039679125754440045414354103076855054834290468102404941424419389944104247768129396738165392906141289762022341175459810728806457378336674799361991582765488973661809717561615985279531073199410197061388620775559760656275808342497073349919395862357659680220798521128079306602908797783834885095065789474615217047250142563147037415323154292432426585692379014105949478170825530235586032892087316522820625531116207564902781287468514817964348499244264704801009246105697232310079083979146062829614144224394193956517223230625855299498567606179676760580470474922234575931129954075036115540082242039138553327442133281921571566527897391723013496741114543539214228574384933040031760546221115044784786609332035859167342838767026117945672958586891592987277168886949543082463004362429525209817351981570592258027064267505129354383993153192146156375725184308143851195769014100981210000725404586671942397133944509471569746183018707032127878744189951258328000754080173072132398840915977126064726949600377381755825868997613422765235836231315346155044668682942372931185980328647523804614121190129067516615508747235969341760205050809561110382677037283720556008023256906510360740109649162070524723348420935136408981274797088427218528245187803875037943452757204406199890940363212950821102541877075057123447437186645409771031043393626763811365554212033419619431828447175101424834677629703442861133966905018922933018297901106113693194342760049320590940378738936795114385530040581288785202417578422134797084869098978932476163617096792022262005149993762305006028806706018174727187436645793432822692758479437261471468844953843381825671494473019226819827984620685865810480615108301831283312438632932230912819359013985382138494381285307494435744921771483467302145753248946921085787461740055313799126796437980580679142818019083728611225750244252749242656133267882769948818367187064185783156985952657291695043200873188321790121258108220175171306114027388965198572879389209921344729837582685892080523316741089583751410138776027205282216351392512757618600859349677211330183506125103792539218202263053993607051196438488767461783945200977693127352513078358922238995690465274158403717479674698447746919972452305446448344570164915157178299074086774811490134580576550395701846223978025113689079535643875687082709707896686194538584868642334554801914531739891630132107532728853924452485601159668466093653708550022666619892958890591725700297149026113130767923495094600713509260463427232481737007266198265587501831039784118102829706955094938643769107490554565985781864076495350214260865384175081066729409911645036047334729485072477009770173800619870319302453069921211472054904136574385020590286589761479034273908535243588861346275175781736497465013375141728312279869401793113121800749232523297179620084128946293187620663671582843117475063140579424580323717989382914071293831622673653138587372637142596768499069005760305264607884601005074516721683577068575867829573036672242061655164391812167807626372912883501411714891319777725722782123980974086085450099146357797990193528194006358964547954020879039515053057097876609949015778365955080309574149297801946184129444922892713576112101510523600949495434402102223791978703027343386713598049583159478937049689953101878223946900935994381372462559289953475807198143402415315841202279768305023844696070158331721856672987095655093387916226338944070631044881157207062531490280369318375589160207057240544616608238451845777340642117935692676035596155723870188797973376947124308821225179543864394164348345019962709773073418350671194979482005884645446573082260040318270034552342316878575527289689138345241287780590642020162688482033160731384055555444011691634137738249265284552359161995268865159366580529058668024006510219839706113146781684142169808008919774113901426156663349148713796727957808081565846416147320879997752299700456724797890914833906452088016054053007699368606124366946532908018910404555039371223605019841877149968985476640593835231312097660154008363391845106572049900611507978573682101278341870083433888554919744323499072046696872835845305372696306911004200917731044180134885242295750209604075262635988964206285849468827303367430646582442302503029007131692477771280597013946232980650937465555247245397831028561554500270587426107969284417059020545781192633500942844875216067504748746471333441292772848378976654979297680215715752772526183801697181093330993863420402032261404658897482803802057851348233315091730761959870720165200749542025640214614654028296376957628075788363614859467911437338887486691888629809136262336557150794975460716820418906852412279247167018031623702791833946919129224326715114868425607266032229462333236586729334025244937827525599455644080576621596199234495438287864782351115695952377845440905777593135825655544620805163265335103554859141539429498557828343723708974981994649706424184878189601977652044144971102363897595570361378697988643116023770240118880836688820064917259191448708940378184295969958017327739143119056328652487931069377197570430996904266862836597901796516816371264017807747140590796897800795602462550371864844157764240146451211540468012332532293912494357030910057308168038357197036390215605592303720025295307210471801747493386499551522859585387088365287387290383516078105253582536486017615261966979826455571259853233721677905921287464754752620132950404015577280450169613657210781244354123060122354995996140176925666852977642228093459426189535149580945879009120856722641656556361183901342173063778318672395690518490728120980661667950567710248728801789342403638808706398230630359791612332096028992296293343058883873752652014479493580038915462019072796818763999734830683496677038690046287361404946993663847651408896425185747356338892755721626739451828519036163946750089870825780996667665968611794051013176381964691328214447447169171517376662700570684071667990170865735772691794291704860968768487278506135572207259261453621500704138520207593698091943642809079745869598736034375386168890314355815421117014418578634448311116461185507364279722819489443464167175569044549990997365285749432523828533694160556019090495737881600284831130476664439096571287510427672808109173144882484227805895265826654743814025995530440384915787049634285949783769376502442386485096580007329246179658614792222226199423579454409276509527520871581632544964476345034185889052008013078359759700065812725129884203574571236845676671548607925394512884284477358161326166137046725837239672908897504201281108646446026467924412692579974243065038244776215177372385142753265601504464426265243254993092039473370303501030517066604946740882518328199165026092028749856910072145698143056142768552164551178690454480258093413680790397316829112885249332027498894181783604203680457753459516589637383666455956040588492920748611793171016179400849121643478750333753301742548218426963891016124157289716777064125994246540834849498218965248466379585760014463960202511197602095065889384053431770185361075597927488118425564601483359638360534119344795203725301609132730463981100719448464557459801594272931020321484100661142241616923543113227789538518383817526027470533568574986338259415117621456148887814239199131274444463912600755407566510726900813796753916198407904654008256079888306934115162496338811170166622359018689358905902466398449470236216368623629277805213911240007636423219588868098762756551713849766465318562113556293440735011930811336099063605498543911784826869609620411751070566870152252966356414364731178443697383599309582977518916327092795690373232820416530224881202498379261844836827352577347466310897191360199400299623900729562434154541134729820199335875372893231898765735490227396072314494066393839546702477655784086065323039239516602768313432862830194718487510446252344930976736735859481560610982397170713817637785748368492559063663117594604120504247598190851629270534612452353182697781751616840632312735744021539399501819582769849418397017603691904558771834913036024811255757744471524292525297398495389971406607646218390059318766457313027255669952654891214544017668025199475568645930633158440980862346408560881069618527487278286290300775517283823608713342676991309595140288211923665977758224168432286955470982056848083537575313542611919035432328034197749544052702159966142163534052248632179492986920052960110211968188592475975310017698210761425777450714733252817636756942628067880365557181019084974900372953431359896386916453264519544295006527637767971099432340210737552303559188060949734891512270988697850110245912196241411377768544019005047272496401253517051260695438225372049581342734899391716538180770546871617688248814202722556682051154964932004057912393074819658387690297872061292266464898803517304977015047432402171475864980792580819330111381793930633321390774502792649367628186692749525521260699666978486167097817989670196720587027859799611163290869841196303751252539180704508739604699412247625190169433371101804977321922405023089551134411451079145133907276597064124156539603562029095632842854522720408721227501842487202309516966324093998139801751598438530700818792433634833694007874495879976993626266058388223405767910260609608082961291610304483138202113601645065186253780241710080135420782575339534371095970206283759023229377660848285967940140657381886263805486389987743862477972808734602731145844436215780711716963078368548626911142948746952314855881747509390256742922423873705912443428370715329562210899239814082297046920349500514433607358460327559799263792032019312628429713923026912937756808824566475578703454053246164021425673048792135400983874927641127390063327714341918269068581580110334117411047471593946661269784675476114865650291140298775045616222922489795890603733232564350341326631324804101830489838375348509925893350685818342670855925947709915749606619570464142371841591192578813977011756294758181756482499628237987574909923125554580213136307699953574305343222620557463964024679526185110006312152715642875417181455670675923751156487727121853551137133826814101388136839052886400889438691678277792669053528115679773702699462388829025526399071814944438602749355820199844397402390230884949174669020751991064727475702448829093446989808870514422959399940205922392967821206577290488206161564220639690647526451239661510658722064067924822072803125860014501575678928772881615329626958927664805130630338647388520639171491687682796896139306617150196243225307602431190945849526991627906233341713924085640785007506634517563754735924742538898683913830419074722550866894947971577842499241109660017298501133713784341597109057615475883309337439983119575137784247252405987953494548976206355035888674824398597286750319122274190821266327657845714591702062794352532217666779219588111984131852206151584780506943761073597870525757885204011671101466005146515327090146713276504505482745819151889830930218417333301472319440126025286801500867458907940960873081636767913133243838063803654982590196841480178243544705468014876341962267268009120804578322527109509800043150618776410116307489375373509954231432976645239816659774194330633806887450912195458396171080299877001238430616841631477166508021015134172175527300644698727730657767186118488553756648421712568031340632988277237072905936567540346750208272699156340166402360208095963104309160997499248940540691303296631992126114620714020578527629149115769455830222718055273012288539647139783702611649710296370031163097330541405727828860510115191023812471711789352294178768396595752526130567450451770000475642434812659508455223144754639432178158079528918845835827707184391545793023749066466682418170344447915746868091847584548080235918439814984206772846548428781567762585521897581421817621188674256103883898252167628282909186023276337022787123326005260863928936452878269287340921457370169975275342776193964209067470412094090992948756585481394963614995235937954432023806516560456891852888104664927858512680598888150280662559937951267033607514685723221305896388063232056108131815931841071907012211733007481681494628641928079920049099875430269963946902468822464972159800498766062238740092030036121285816788127810609260888341315353415656466789256671128643730880338899777348055411474004183303138970055853975912787618305886282368493540820312519878728989888673751090014608746444128334951392867553522033608152657424703521771192897956938597909092481174248005610883680061189085004803731245827556909066788417879686071630467262149784938937065352712410459467192292374099848284994797085393154687472548593559048636852384638096716437236127218404728181918916776624674788005991934544034101205325583229522261084260619782995683801508726278934522517848756491162467592634923800400033554321711860638405698751810584664290370228681724857832823070958220271359445544147187953995064870411213239373573164112701123960604180650622618093447000652498990548510073832726346565257536754666363100742196895621933984076872530126739743509386982254838113503634204912631424358370071751374148905360382955707930360011735689107521784454688547794087081658577839841064879421520607768448968394684717632589211771235567656909328217977973866918504050554011657066598740038276320616732877549613839518506822627169097161520971334093788698043353488551693211077985587643824691443357526941142668566804882457321830894158495281959757867189041597908747080549640721014082908114233160146583754836111955305176223749718268122956612201742417271404926757035524429314538943478736742658682817341558651253609777857359799488842419633765375563336841808275452864446514653948471935444787548858766230371938951749026935048859447682749447520151337612288851766702683692527244360826080659193403731762398449081754365906440156921540289624633616869099532390822000767856661674110443178516338742845589184639504965412387058802382075047448261291277101903577581498625014329184385032630379304660541011356047947449694962500749865089833112761186521196702635520114151238476499550787402474337942505518680651447443365284487441933907798047851457703585524730976791262251831582308409573473350614976437875378308423169060449129334529393802169975366703232101749144690456755597708235942268933706549942277409492601294392114769159943025529037094358724382996605996167628481236975553910377300803418532925032480146444070095484166988325667526735949409396720091008949964913355023107879697112907906218390367907569697169570875296753037476570670042556280310410721111383659776166600824329753712129160722586346087666964164938440791259776773858767394251623912511543745885209441418467903449792288391949391500472563119050271586537694369629813410396352899509030680771176942500591700261420740553620426618746133207404379912333140436658727833192237985540768658992471577584095207703394845313518333990527925500147118984146198452972455454629445999959953536489472360428230349762618893327419815042039100874366449650326533087004480131001165965224686344304242921427359127982882948638858400282424522760555949881639739688999794943295082502429413640373218091927140091091885505582663910982099628402982037459258667876281169960694217138736311401591544249089662539580970889880559610085246759864089839390590656638534606699097807493552237699010578218924814333091833727520876907785671864047677850652746360293050095411986243393945488077321625295570140159547733006724285751570511773681702532381532934679583097535245785259207812572644815581121914936857592135091584757823389238245471634148733192311636316762761597928129717873334022334466700770104616885137364972359734216802382309990232570273793900719688300000827424935059853844972032477556044518611629318593617683996117530009786737253778234467333820575102717818574465516174718203654606204091681562656742550872988013279083975618687539406480628996899650891923885806696646628655221213474777053715966059677471361430221790474208043882045991357382519474230627778738223989363920086614690547667005749149201995220656960594868058984503684055179975550690692762262701820825637029283244405195139603907508524810876996469317546947056957445618192763134462241866090458398833175419006371273300145080657755863751575412345461641972252591469774105648707673968590735383570539074085357226584565606640873150813241671478198173748243734987986455888985582967664705271842112237039364626128539919095407134832888706425637838202368084334994246121480863228654232705498531347929585811370879453568051433786639686625563187313294082671372169685942952743271992770789500843340534119986914209154904223714147436206411769122988881612229161835833257482003211232780077811850000955120799258690316888998198997180357745248656639174900952962762888969396309094973961820116763516013560636011779816996801786562393280379487562833024958920916774082041924707868426049344227090003765450657429293433548812917462751147817541605557450303982749303709720977313336077086160533441366004824752779109121799436309102160784902254357804750413604512504509536620093855021199376435917218184309880875486198295490172131319360902177772416201666030302926754599113780129232636550707112425998386471425894327866558336725923803958606123175434527477739469407186386362169388970715699071050210856601492861210442424382347572795958083483012915069408360245665756208933110267548134515202946563355250706119979499093359504233519296691607379991491735598009409997865296181089241549995987372257328622796883974055537499111668846132757674709672519639046848962893621718032129447364460112434369097367972750362700825867677060098166499346696973832862635911050168075502903226816785073105807553113673228152938637239295610256568223719164891234379021214831469430488518601554349834984767601730766642246417833553416898619228770884822872226074865800255191514332246455468456084156173670351396468995831060758224979301036177167983731128940234897614306338391999225513357434561660258383884640741296438146204882635809302139550200988175102716625341366311110403795044631949962065033105439352674324246630158572757783863126001386855797719849792204811168997292911212874447862838892679854389510366115563828273109897238311745117597766933676340484709018405368864704325329990401275195326811693856303320149919823046159084415958843887832625302367453280671205239281574078453273252995914404429601088988209114848752882537308746761787151977154504549423596679736015979221935248560115013357487149402403857540344370398178946696530276393488839556128123350492530210555056928276133018386428330415148799567686788963460784591323961818476023369513062654994114989313702236490682923596962015579058102339103151138317348917579129229386816489153230699065445081116504224869111076171027094966236739201801347475997892261166340118834812219740981414041873550835701786500764111571133941121163241468326238710228487179241957780763022310081682364346285891639849161226594896045817756876551453697504051299294104626487214828354453828649434565274244316886755857606655029620989876260497655763770350624875474229763951388162074937539097926358765653916994946672208754593785534147026283947809807934339503478577269969909109476065416508015360823506526044805327518597636145878921471332717130992686930906360498515418299527573753103627843113627172681744133541258812492578497575193238843940774643617534016113196703139072374940740130957168516119063801613098949418794328150226023419475284136582864058056652927272369074288168998402740332072064092459113842923314185888208067152177492150445748111481119957473438989798135085227724967381438948140404379994243089878193942810707190630921445529953423485336156762133713429663078493570766636840563816088236897891505884901720192348679388424037873061518609421143365733557984821580703690260903723177187732837461883483544545179189512304627640782206610550593424701202260473338470921441663684096880059764827769297010123924316012337008365188505410205530253109046213828187154158895894192258057234367542422525164071989698301627994966135143953386438062471962168790401877135973976200264311482931537056884563873578349001424898463562588099897238595474369285186321969456370894001188218650269416048856186042698014336934939491297384001691742222062922311027386598843326236468141063232597030844471320496433363884501501990041344915456212904531023700588544809907583132912852913604264062455838167703095461899146669727883391194603322015622607656122626291501475914771397730351193175775678184300989758757121166171256855736025550994961610846519520788816322993775478485575714883076243573147628276921949642152290747490622461078227039276865501877528504734677431787281733094841763778575785171915197837612506417628994543153260464468630123999719596134755855907937843959089937957263380341622350927592490589731802214511374968248637666008474407625371955082464300699180027042667296089784498433090603736369231582372899307214656142635353187143864485087101233971718453165863500037219584697271327422908965156433315932114671178660027335582716633110838925441429645432513260295076795173329510957002506812454859021513819062790476186859825264714222554176601846210138001227251239669193570404483402973588927037459915550862700606909682769759990321095919102030479766434839829464317622181094437632706937699374325820721910298987572314805172615133489817520230007416418471265371031305609873850293456803896685186811403732870793791740211495564648408093281926892975486492157777475477931897698609706795338318461423037160764483146542183285458945336175460925578581422316134079809371965760211048447743638725800688950808749682089197479604899136552708965994904737820497743297179933634560670215176038192127863072356768484967657183499883733294693043787290314583236048746132426336745488281705232445631924350361593921353676550493534210617190035036391394440687361058826100039732843699447625712794067765936934886289318018751338902827355843841791277880261683028578113305880658853507629996367267433994232429912288245745400387032737901351638979041080812344973753686620913244310040753577803694438994081564936146169855070970298445409463697039018057010608726742595096982585931094510367707945894830228149164919796679481930970117524102125891503276713980211417434130321568807246945379773740186129868176188325705842393092571827730776203245163413923676948683590373283623901425212987852353457363460869980743987350719949577209297528373840813768534759764199747205291649544996278383449384622527060887206069505783715849754466598444972408803321737471660771104026005135946708946781645809108197948260685486332245618748767100097257215690616031589635760603936684276788494748897203688746143362280720288925232348468605523734602987022332912561670687580104223381443249651517430440730773049163061389891964075264932372922584011622305888253596960681663925979555532542924480914648224027693784498789563647087769053267748197567046539872844412962809088535378885137972012128774498576190304873926241663221909136967537573494895604462944411595006969236481771508150454188874029702907579350652506652601477520703052219901919548008180038349865638285881913000265200051612291859254622277510385762452630284213734829834136697929522617687423031286995074672337198918086297549907799118068134829658316686428445334977768140208969574889031004524525039308716024186697143666688406993806787449610909767593865517842583859345343021545593565891321226093939727862605035158940208590566421279898165292988638506523111794491178279922724334638729611640623778018879108115055502130326885281383956892109509886832398015731385570867014771193140943312488512206959228163648100874324454525241432458238979552113633330960978575565708603906430780735124745476398220272329049414479772586532515763387244431457831496691383957791729662743772537707593514411866308556331470548997173688617251949525061722960110575368831965841565974824092693994373637961431840922992519965584903765898026404456532495976218253653289428265634770149568513522007540079815786998756604675348780453330977586814821502426128771970052347706003924499972767046361666749491139421168099267561546796858748262670654917568250159150447649734798559394815873644926242177430277894872193108981925747008326589400758979133981197799426432472198245177980737743898832764840165883662432261753528983043858768653871531706184912484951612990480121067344473835582003438095276067558957345999904476421974705859973756756265913280948851311280274264850862456390591545860253401090255069071565048089992477731280819665955296888228844863482552761944030445143384825903134815273550357446804700282786422682683278853673789969495313096799829973554170220141655139226302000280715284931778084919468254301554925861493332755383582559285901483000272569038504332108428980721961013918924859359203943642914724895722613209301760866953828109640177772623117506179209217242305222928086013944506631912040942156834736844510644238582060216682002874913785257819988818000082827890060533548110049951007551095956255657419597704670410631439054371637846370098974015312230482969358884123971474094922154315688086662381026595860737179580858318580233104117339054532741314302774420498580911305409000176215891102308906858992311782823572389112945551203573364362689896171667702495443997674246652108955086245500924280613012661157466406066858514563700777910658411181589307660586145955989596194063907088638885516691252436153523712329585762410864770233081905150028896920057938854804631019003394263182047111417604743512292393617722747684207328763757966683231147076053519481243011048161895325651569080257928390836886044479019540953127350001774709691691834481712044554736563012657829141436078786501785026440198094275979167366101950846661183809317987039045743725556156926369862364389958514418515142430717452365873981433120288544171583589409591610150423218260326943139598204356835800237376764565244882843438484590465414694764667086804965981485424828072822721664276371566548508027359976597319756615066373383145265520155762476560731631306099598916269997303082482164035646245938048586204738423544038924861914730583637697778851926963563666060284378311926147606273756622526698790992181681870873879080426200009391608874780381126330658092778148229605902616526070982549460441352790618048744345916645050397894680615304988877174746398039518623747837484561567796815816140233715040189721772347951546067872210324493653881764754485135834462052006365485288257505283338212618313337549140882210211924979691970163647526505750010928234192656562792814420192602133895761862561914383515370958431429002972400667175172649284536082957156730425465964374427905330502648157421684083214567573660462460127477643827186195345933018899029462696633551254894200393742427670675907088795116018356267272074507333803092064051688544477532966348965788519554223593281498158874739603437276535078901356597860115335641236013804547722491874327889182118292095264157058911280681606966189214426182229973143008139511102723417219793877364195834337523014814683624228348335500247282448480721669763676390007325025353027010445241695052721890009563457053671855286170458643276290418543857291071524309017969359682794153436783944295065973282934966075462638104995330642494803928388121302057735954890945248370007310751801910318667242120790139518241723734465952044335896340001727497798203894785746881250769678395584967409014188790855476021760566852902188849665446937675709543666514812888710633438142623985714152098318604991456457986305141262176798315326128619853986305457165273951560010150087563370418730661830394633516774314308574400484793492125216818235106896222512578013951057093867955256206527147575710026350479775647559893383892243533061933825163400180657377976043798129405353349953130719041531929907828640290730145075354587998635662026544539152664236799801704229494127645060069246010920878264670773898034865002832503409997146570076274744635131586072839381448649897201593523436465168706080150951123751458230624406846306894043801560039711667273418377926470419648920960662145603364231881211647486320840967437229663992238420418769421674819433931955446181455369496496225616478915569533975734210186988653048933540748097021759635820260446692728842298012568991917449164831483876592221840946301662257830544075458571950972853316362921446722929970005385147110936587818295046283962874464793235633093367188871176930705525223270668471035761049492583223801253957458709466666724317124992918367992745300062390404778084266706109187248421994421369346563768489984793150447819225169364252492534422042542480322303945175938060190817098756689072415441808850736550240200284326316524768949116572057267097303027619134004585149039474720890588465540155014436494554371299528910103680543447870779006738284080795177153243753526395517782793240794587959985030207194360727541995099569039048711845379971488023645124870229362963530806729130590095301365304750465667781109939476393108009115630307772428953930765530132273636348218376266052235057886919223154160282066027387263307113668777854656362802288865677504714938683571092442118801540862114718670941447050947521190079934813211140208247802871785849613888551764150371661893635139928414589597034803746611172253813436580614830578192982466085776161466780577085881539862410642883294414304999304213589402220690137420696761578513024803139487560016168301202642982824562225483518937871902478478184044481288946360559964180001581786281738666728179203018099131146446556301229232150758061197839671725607939285531156884367458229550092823124926485792140220380032281121839530771971961079247428534651807416149207642939588836324360884990403971714984353125978609784857424523059558475850379297344377188714107803094618339377454051421296475839021078649164076834488014238468993071786139888283171882963592671591058748022329764832384155424794338729498059668605673726390439573621155815950625849794117800493979122571876469470316086128536034752936457636608915737663332684638766702191736691954409092400103506954464483336717383427496089344673658432079485706233619262332063856736948415451115386757644120571388594129544718247049812698923772052956631361766757774573501515777580287258987243720174397232945041718404085495900544162032043413902181821537834422429251775608709671580601880438528218706244115340314938986480537111104432604039213308465276085590388692413027486215225411688224497225829421906987049454943570063411817558416269022434606841069718835997112803216937111439137553275184138252159184857011659194804747657083529383975307227878573969440783000116036107994220161308568071979671900155600749171865773309325993565399622668876361606617224711566074904360688215527340992937328496934587872543708952665752645387726108490157209140904512229963511827075934054266189551138422878491972992869144270243684503777071702124032107794076254598396449836848817480338528515102527271758735767574863909709699489705553922458628153201565457257339197952313422167044376455952216298526418819401656539663715490074926486788972263241913405913148524497868479939187050524406792680945917679851632688670449893390936416855010890276978381460906152982247886653614380230064324314130895324326953993927474996409348805215721248678888309087625847880074724377148858120874352928194497198335269954233411269358954652312479541567686890817146991538194485469239258690766835570415193417936736340966837841701351154896262155829025149025841216191048756880191084009823585791289684449577601956210411346088168175499971261578120310805061920413211341887529758932347619009564297670796403958782174650378242950166054869056407417508706427568870394507044247315033993805487735208641647593345542878799041860400039303157258552870825935713523599216784120021927071117879326133820889750830557255322302100864762922098170897359184096334244537665185323036055587682665270195700971724516736025329800461223539221369704451362290819307767978334499565149441830942911506829144627173538588355433583170459347429338067956105356129556325467568819693912082187165302193904417337172939547235629582819312798940706836484687668479867667507509041375761292338317281039567660677609754022804621103791819129186622210231383512319867934858434755948800350667287500161893814128623224810318226976066971563088029429051615529560355903883925134197573509752519302851911608765426220002125149765277165571661630262420359864875084402059769128175346865891947889202726282971397889469255276453740689423057143122879947379784389162418443629203846226816751406337593425514820222364680077765723513310364625868999197062001534878473787493602943292728837244353074032226719938958470437607063413330320804937097573456774238511577833156942495441261558878795752538326751967002914197767979961463021578047039594855541022173082791579237812462080805234485478101277149469414281445564908721611906626919715183458681983821887025229534059215489128359382677522496392119927453322854955285220503248806228743901291414610398511497240399038945989362499343679893762804958498464824233544957393290329914065912891552261308634973074717278043923931678847392344877032823323341046782449500579286571266563298885970673487900576785484726678475493790587261647725628521926815369244858952770086223709116924561424847116771191973623227395733723609386079102907491735955934313341861769557987721629610028285347283405920899938946019045458585048540254923251539487467255152444523139349971189196790967657798376332638315623689129801182778372425444663603152309050956741767468019295755137740395943748446748874961181533862533983682090250729573779586133921028773351118713572938467811370432547938985736965230768632221088656619969449822524799339822643713434491397988363837725498634890886607684587364208342593612872369778853850184532144041093699134370869606071485189377132091789004157982114688282637897097937888072098482141122295514500272112544757964434532246122489660459858371876141458380557708242736573374070616803603872941453628760085808577138898058428901519639845408437745770309486413382314483458707933877639098648675135032915660951207197680814592507022914221995289857225656843508320712633675361414804180044607174702541721880829866815711262244607339080752000500991997978356814199642100321437546569899846506363560646009993741576806462406279733711353600752673170727470804347000246282477320186569275360288140735843718510447931271051650261149074721608287040931242004465501321888537914883159398037232352288959284093961117190880977042737668892341192689494462750151468679233501905309819004538899110705395904202772333579432646449458394855059103959963913796811886685806260392147635699898291091945687436809576305663419365683488950644100224062433383370141583078558389708191160638047945794345197744791130551720774242811905676588493280253792269885531817834222763280657260121338188663355400347854414951785035491896294005089347000075183728917797027350057102566413723462021972512858273876341792944971735387084744746716441014406796876350962468222000442409651214227284183346578576751276709126583454656854369405674442840570368681317308252774110260158734181624217518610176536177626181694437871674252965757625932289037626572440384126046521912381546625597412099989617965598096351100277957096741621005178585535254979626898775370205047763056608028170051501312689992596088658622395789805107739284246460794616275540175768751501971422882328097186208585157868362031075067471251560856377518306532152514500979312749943032443632851374333322321914005545466562522694553650237616309457761908622321395534485726795022007563203024545505583112565576450859409166300468691998807495629336464104295712573412831277279953963281559004049342038722072695309832506477684915923672225680179566413882232569765018893524404268810709719590564231422671967375697170153947925644503778288008048084907877439680880671888195828091762915373341232513965026257158289109645975312940679621020175381196880032637016765801265067013613924480167496284612834760438626807049609458605145412324393343534156679401519426692542017353758755518940248225429924475928365236163508736872184371527349628957660428698008741815195530466567286680913692191370396268906556918905679256499268876593927680364594127927529591091581652036140949683125319380936374664368184299286614669318454389491683494815609988682776180596527642582717132173864124629147602534793019701580794592384137480721227590181643382989117007457726748088763777387584519194268869640738473279115559906268818382040972301050982199995812137210142838145137953423612533962448644651123047566751234407183955099933339093351781954507565383384566741776357580784260731764871600489375510625445784571923851122655830156228490268166524447255791520541859490888179552321484966755697143090268698486320860228805355318380096736863564196961584466990912156949350979313316514545225127867996464967080801873184911410070279723377914277998229785569819302163683677940935612613766454477264651616532287419394684828802646972326303237769235950780979657182533989173656058691283291708588662302501328308478974288174448845028145550565503926503223470632610884663249529394978478905880903599817671459679737200889005478706756549029148948040707701293697498724274105856791955658849750913498982273171444222339617728789708860327351296276022902708202785182787752385243391283013588918613733585503733577674940837543343230529708852549683114373370970847840825510182921271911058728512188185749298349879205481808821965751060439314258663223644094698419280139871243844188423800088083147451010326416597575348971952200204394399513113065522779783790031765454977410777828293009827192089351772240982672976239107350701794649169585727927010416243637304360675947136616495210788155531519372020917868693693135022974893035053705288884332858769771159660160396905478201605479246532814678738038828858204706232322517215575690227124385807074737649470623792881555481807987810706063340505602759570078664186616608651114576229449578721604821150176518385979940964208902657051874748692489406353848044476005192964779647009228117473308946725328989917237107051091103424932909786199409199176965172856762936174236291137666950532260702135150846108588610977362216145870342662587519511318288095013770295741693565963925415971044816279791951011425876096367169856144067257758006969707362519705060364276274413466394322639666316239866223869846511609593229483843316447514112159505442594736835435498572277700014837837502636721995594471087159915454484857431493627846601453897299607458151315824472806399837071201656622975317339531122927193461051636737066556130597359278153549247940364005970006871919238259210093906819107830005137255089926185111406711048518215658817974154913889098812065423206472180866641050260580281886903496291245013986984072518682686571722675234919827046159930822656852445626804528065824041797779392585435005521402790885434073444405068864385122626462994189461888110947544713043421238150177452168900558242739754075230488561446733051773803788956978695615783120852997063620681210538782460057141534301751915503130823119887431701855092554611690772339175401552062549067314582987988400869087617474891425522042989316787992836867335032983590608255347095854263356415122646729258295421717142538663948341144276371843389125217754814814479248203601298005042982951125059423505273374686924084227688140761618586832478239089856388854280299107593151414175191300027971720574945297400106660744227404955711891450265650283913448991704794206930861720085828295915612379021311544746526060685753466405922466100985304936108921533348470763269912996467145549155773137884104635044410937329609869125501191530736248134940996493930330218117736834085387701721152773195587860685387829445344311713215375164537799620051337130799772245060589260587300995447910800177588241381112809780066957303872036957677635531421146546060558571924794900802073503291229815110538385146683250781002084785919237492645817207724795879765436718725001524396944776388664070323432137387689550187224385009178363303839717861953397211110023067767645126580571801787587676779456544201435959303163155316618749357975136454734545033961068261767393635642651583272378808076549248222549652231579645418774265676992412752182709040013405280212527571521778169281783989259410670831948871390902726501792275431837404775470930301820630132266233075346159593557212888086530171352852476161394359236302754509290149038050432252805324543218942515925911774767320054452924103733990644924640755291745408223439266124884063260831616655807649527316008004597934954461509318134229228038684831514078595146617617418812756487225467788224171432413511708824321214360074939800666526505720877250698486981013096002650223280487050487641010817473546719050986278853458183316118841347387221513536791121995312092109512351381663745550114461393512761493255991948478596649118401877995244847178672083105375258274374463269513312226475936848588399079437960067833528474199133943707759499120646920475500387961836808271085227541991176605490774827952311676342663202098434191663236472292656677034966459553469754721413242822140900055471424225243181974556386856465261307678763195193850138616611449907955250066464410621471950429026700324672317611785818733280699256785161035709116953923732156152564545907170429035098718932047721124087993124223202088179809797145752536897066078628386520376837052519053505284365635148424993224709058703018243022327610653544780894324261828853613673448444393341541217706859354577456588771379372160683248112379101654654493442839239867251201046267534617701830955239141293622185158690930652578494368164026767053544728151174756976497835181847217748475379086236484669984267251979819369488387142525076872580036501850474608112261128578332023606587417308519738136664312320713164927417001086491550797485245976630751273278943146923917268405465725796588481952597449731297664953803480577584860070204084447594905691822180855915587262046137558119746903807976855015058684607105000936494956118155306549296097274133315440360702379016606584920681372730630193412955114472471817866951297633654609024156163793746535292587559213310525178649367348519325548692092557197904876608891894195766409050271097230287469060606256076449078863039633484205515093880904895925435995602642100388748859710527609625423451378161441264265606799817325694261778015243652882421549938954579733745066164740415001005638149604228547255121542655878500236472996513734978367997245808857693911663533999346499317257406612440569187044807535479233191685414538031333811269113011316388936523287550978425036153542759994101712669014231936411178320537157739876838646646172651805693168935689116560292216526108068191604187625819036680341349583994725011259074075134267143911923469330945417337186601760317412929071570512490160457612923225643887473805909222018605967342292310891237031855930760493301401916974139327852120765914089210628733257023120730890066995054571533418649591902270582056501451130866988859731506392549035293066757356230203324569445142526663255784580068104141834919866776766224075445768683470831803715115104943866123828112639893160224562544891536398837627854706480267075755805381585241475979892412624427886408269435342486995162675189601848362283582829497754792410550049144457666748603853195208275141950062771260222014195244559283725981079054017448540387143823350873997435591506290963681283723087344513881356300045520027554321113549088243638329568147448075428447395554781268387695678587202599407022231211198796878007663564952425905498646588545329239208592979114711555417815010953523949980132350660887768561122502810920854578764619829800715999883681347212823912141526593479487853347297686080231039211321843638986263958814199930609970154194909443839055557002405295388534345426129029269372793739853190674366862572811094006044508344267037883268964331142415006552507298894590494904072811882178547960423682516468120543841572517995608467953359717764991356523766012196812810146854233840036997879871134258217931159699740077729019234630896049201843690832944361308931475877323659971896390748559015453721170750958567598200936029552275707613823551137078025730596083797460768966964243900369635410780180353955702910368011898164167690349478516010279043504396803881532557513018566595150524981664751252685330445490182735225381547261526562355124289145505370105941732282779809441644014307021362664597801822176209086640517561591149817521895078868620050286317269846107196854423242620741265861656400323501664545433022761192474538948286334719207815759905452100664988251271338885542758866806729621738231318934441678187203429471617771122403505391173660610831942695865585263512583447868580299916122139452188018308287126650872613640000334557714162631726954854384946464311388118406876089299865763353982223925298449015949107103631439321307997197770574505592801101834864289638830191962224390528262926340877071518065070289719972507476436644397776051948902316594940712330044830088297119137605922424348332523147206094818773696173427366705785939355259177097207457064284842255250147364354225654828422000536320462587092798254663628322155302438809453723833736202097932868128901310905507446013666673329588074209929200376487409559043480753258820354143268356041365469021592656064467883455055775459857128104773017323391063854399884391762349337847238669934529046649789930419490363476103433516439232309306051374135903393017647914600145494118684504766512406961710518926763090242434948902533273662378831150167823955622491681130119290455928939764889906917356962940845091312462153779690180488347388244997645154697792498302433007274628556761040707078652815326522126319236185287021089481320677048834301884735997774447849520519353184580184939662468149417058043859294846401161526392582386335012509884823122162844423374476693514126180915064321672118556312709638763845649583079470429039408237563806372915069024121483815951106372465584455073363935585627970191906525988618431874037764541649315072859529986109014080404425435417909132853047582892300313206870869363632536176545529755048321306239228220910695520314170947313509380872114831840644571075430913673208797011913425724898563837344624120698025286274660732090641831470095665169913269320819130703161979944127615649232094354483682351109128199533182706564100561868969116058156030785861267136861170602886553687355317628586316299122930345390343643888566692629767720636860716723528158615573236208424023235792967805177448729859097662158910312123430831657830270130871927734015655284828829487834481209566850714908961760779315688757482270693294665788744273515418128179146829119518160945445526904075029813822412373383748390837641550175741293864602905495927231498092332756477028091318988891757017015362780984396945285691795896068703884491639790002652434124902630068651919331409444880710204194192254861453977132658195274454945878073507056404392304355625869567843887790469303295787283969147907327251249947310800588250307107097863419001082386696693780685554321614884641836866565895313598021478947408306640786745225200830446348440574873333993585232123529111535041191927228270479271277561234589517831994232197264568511570686054308637068646020710476483994869285588325668884210935367848812501620302528512516947198009626302908929726746857979867196190838896835513325208836167137197890423417447904534914366303139226233201591752398486476802856209038616244721173162392386451578781443317915409572627512171482167872070373703800391900372532380136470650605194370263267486823989787328407825348783324490956671538842614970609466111843088590066394599215101827076636336079091117881915298866497145802357782703748105046292944364513572272851005614688218585091573918383133440678558924443830349697951947746844212161089579069264150884842494217352437013453034219276350841790966749360843283241088739008819748174944719511865978468865444501331025060091729010729771645179069736039859112136002449670338178153395374847877448888385137586406465764214101702781193372430624989900829357643836132448275910948053814898932377188481183786453526293123698391542789372567612280597591085271564581849252141415637006604801186811520041534846697702118274573547050349671322727779329017687421521118723671812645474533792957578354224482628162812255631408273388304451827524498401696466818951847534142141749426615564879115527400160816448001197384857986084051918156161577760444877441671699287549236198837510507716166369433317414793492765834355048084125973117963555689663804963646770125955203443767643790487913106758432468918779098054401206523621976841764892469847349439438623134454257352711046345349300790516476322499949872711827900458794280717316568190725750402453631471692449275944155193781900883367465338393437298962826567379838558018796228270810122727851200316272717561451408784526140059810725838217980561347107626229091813684697214938583176436455951079201120058733588211158011988472275245378489831469475363883014309111631602830023490065844380912436321381565813014428110696064960788283412592869121305833529428484134105070184375786454967729231686518499844564071348645293298603332611692282174589810104355596540721972902404479676570677656235972897420276509256479195087096258979795773782609100088675473387720444042865481184131029940484829638686915073201713208864162261109543191701197009201432917866059657644819482048796878826699827178856338085699906191984730238430250667374671578198840857232507251320543213030861955923725405941723966960326436647684141220572299890249542442151059206012199398594264018854693542583868492370761878893065384763353818482837074587886896374047340985513276763085420229586638716283620695448057722733772418317172920288662268293766268409937803517087152179739949879925153865498626282094942471957344520798829521116565376068944971731349678675929233649833308715223947409406128636747146157541595154827002133051305124000223148737875938197487429366802580364941356693489699609789893653790255968756344683787335589866872492170263851138914202872668598934394334187365772058201742919285561006403087603605640031734841585931940070066596157263257372929801199597262376136786310174733183848206277457568142972494419785033815124994488391859756470088514758044324950097426702110496173905267187057550542928462697531315256322046050939402941840748364652929216914187702388088614895016865180939645250954585721643001041837563341451689504431901876887942452495636644473961635359045073431693403373435576483527554807570816615660037418897812340849612756025186433486197198250879962150540210348725517926786101171137558645063077459640373641265865284100929691986277323691264935687099032588558187563711388314807890721094551347626274035692315414632687872186015429390807738780134367556626342422940679977817020575151384016426710675988818713091665919801404872600300389503749045124594563002252450146246034618797174895485217546303686776384573624716667274329900610522115912351320117608513574989585427434309332634827846931408864449776078688130270114888228861293206376864866510327798562747709920902556868659019504635070810158247584055052890383967554050843237235000664817922422469055007193202853215088473821256344359733263500194523263664626179145840932429134496316440127762895307205163605478226955724982504206457777474932145636723883304213952260969571971668262809690798412104008840069119223774313960916707208069743628244317470275339105119919714608731317118962459026708793444421811167132298135440860909035655492329296487458022953961955024088496109762385456380026345606680282692184751020860217869687391730595277201268915733883059507199223094229467716452292200085563407266305516527308601706292572571842049847194499965672415957642583585416905485176129040894492443253199881523287541823241813002380749549358276089313224345343378880178779971841476945007552444183043950864492475941729343347544583825749604060852960605481015278796591996543317155676704511681778650724222177978201403042938201912299411580904419580522290058648374582016454910858224918916987454143546149009824020224473971273291446325175498082272899147852852809020297108089868051320708463256932391888283067733890830161091421695953951678576820297216510812478410542238114452909158959662651965547775434925428850587281812916430190956641829399733481200767429731485744769029844975780468515397842173977025881843274398217103797257052914976154048393534163014802801827698703216236531164994253577217535711713088794003776684238370717581585474950002735689475447625013621074045740489729952815958202138763184337038768402245016805855682227034918729749279040666081054611112730254904255955150448123704749163923738001103755190311966777416097848558796877554840946533828141560504988944868420797087389203038846131677094201487425203086316588911047128946277968398850755229102847294113376680492030603568461959829986956228307829310872570582188770943657324564716721558059369389607843507442906973866544844949902362229812207828875882675306898843714361581784944399421795492586221175359395591427073692322351191987465248887347860790245686691567751439006730544753028449997564719951459392891174381789358081116159268892130953443541504005796742037145401028198984725663529230701833772581492523018736924512822852527037118775271086167510985267799138127672896087845265967996106300237498641122955387268407335995319260494621502033179238910066185436300491101469928749061252904257527812383324967859264675329466220137061814509914237927670768957360765420030105728453307558928603677819955442859895615395624737470730452701754177030469858286394114808701495479191692761901900632743689257183838568958197148320205624229846274043153064566597921829392062586609224303219371664005590211963820551358829999578206179365165706806939013765226259356537333885707748593569415323853702144569896604901037361813083870395968783510039128675722317770965705335493397514679241259192631769545494143009375739644026424668782547045688771409990296367037246924892416592257277520719235944935361002600725212556821816822964283150300075362677322661460187789486976953019863166636750007810514412140230763135141517743304962538095439906313686410594854762599155560953244970236364779126043091732679612468813796305074617408055472127458583633559628705388305988247575474426176941061134514451249782439444399391747720731716888413682357741828764979870996096631783066571339350224988629521900094892359875394095469699905793516797810153534475387562826810311446207185396169806413148589753068256812394694397874777169564148284880655872777577032665214977736535150052816426091671132795899285066297777690182115906300231458741814789070466033329676054654155369345970816400547776045589340553997410301510820183341570231457003008216448121828874585087426471050179703482539322813679267059714492585547086888188102397801908030181794865012996712206480257166950971698937024467624713753021337762596329797427914331095833467444114253135697234261424124489901378804569157797072970928014675091564633928553897001631461498973488525789988610234085653299678896773247402910724124396990560005298651098882428055549882124540837940151354004557718804090437156229488620728902255722080353577221551651833122556278066142668567920407468420967687333256767259643410994030386554593943122327339167991790675083381966516955851139728083548632648914458031918105730210343982692615415903283750673917007860967452042343698681860122784498504119068877251132202657655363961926195773136683534679601590036730064181221208173345873040951037053542376970864178565279173569845549294019193853483596409319390983402585500340954520434180524871150102200668247829232970912679325489471162724967742922992235826570286947844824616819777054775194867121794464772095021152520177256860518891164194445628579514805287608887709726601019160682968254874647121951142216850584031840585893531480502349535253992334742244254069099588223667757740036038081079744025800237464923366320964823810319962826412624226199756439182150900701964947577140175421563800354689722521244825608107491953135073263969237638789744326551972828011290599559539025038106715378821088321585306624625131095378888212756411919042300606274460351644918242740353941142317704886588991485547757334338324537085418196343001529879232542925799469163597714740003030107432893099497565447858907692847731087292635794039059238322324963421751011979873519640322962587616879943797808527791789254315776597726915949315576627292623929362583589815530441661004169137383225326772291100881526804662882193985833097086086340489695995793139214636375790357220891945376445179180838308012835333562299916445516295373095058610475558127338263237337085941618299053523486923968448996544480160358883983681638364706948513591269960926730656715358613821171165440614343356786291792716760679632010717116534757934025612309031135065273828411816109011056998113904932817826771810207820109201588836097387363218159367709000796954904060185255866013998893508310125935991322826270746955258126450409044873945472497115468262693246824338353980486466884682771140372366295445046635432592650239000389489376061421606958809759657747696465699182305469963061044189031001479128098939023844336583654029031838160083884216879884593116216241103763773805916489616619947965906877035520841711886498462343735625936181783141381029250186029190176741346013701765263377376330491419623112374155238137058666261373205928363061170001331516786994361368478636592374691515651763060363733301157708254715190949888300162683512779388287945676814681302143718814700846661911228154827844722478039359105707514083190368199424662007926928564189557490504317676445506610021742390908292277329949581381890370167475020663333583064181442052541324369893563227276758235792608354222869597989311049557102739068145107824943384616363536405033822570002068014174285058103716431813657030036164517179486627197567420849849267977745695427034300019115746423417760433923759256806786868290702914759636799510879000042641350018602103987492982998963765434548933803109415838980461944021483801164363535962134505080747126235371210541978592151110767398233839960452124700927387554855970532646530134778128565161451355683584669214881754591279918455246556970270448170547537342074258921716695346389876326592480389139870711079963719799365344349639470433170912662170476185112929180041278060930067341048614554896016917454057184479434227903426181769555110912669810570154753686228281131880500210748962829934638204769786493168929975795653154745579641011109704232911358365619788439834184427134255464887218407073574909384592326403664909105032713538798851910998785519177086857804211654553380852800994971511087300797427283856811840703976050778183363742665234071278859383296284856052240081098305122313168366045274506543750616859726155506328344276435818929703724121398239943647465584550442265502173172393391433027572328396669024949206600768790250835031907473069887179763338164461954575447136421448997849136593150321776351269703141990122568771539127451925819723020679911417418016594838578048742359992398468907672505036324361495500406435197752778091989748406514159446295901242907955481086411345137275610445118061649190111951918733362856989584020757833548975226632230562643174322442567572677081414539657329066857637851266275200674274254812588467262271102670198209104037596009235775115873526671319965434627796251860228884371490324606916958662350162532592980779867700573521849940903427218267667444084457452069296001745241556650409287841856500098104800625623455508561647848625552223206962950665498716934353916818939152361314116915789894154256496483183544834585181469148406574517593421902508983831450739300740893156570131471764783035383437674868384185907441258499574211042793979257945131811295737363266963484005316285136916333025167508378542039099800990983217219822480054849224116584193162455279677564588048914328063321983279052413033337274687708891766666482703483544208992095360885321338809264062534775924870578617400270092574013910156710676110266402855269933942635503414456008707906524521772006896885955578428425904752745781225183094255985108912894011374357745332032941546398434087072157833701864251372728548250497250332986295397855522470860506435084423378534520256858916008083628148132872470078963796893860825949321960975865894879961843193438172196434664359079501777245629292952323949765076324908077699518671875986557291409241330909849852045186354832108731211135184304957263575746372833461840433963116304675037637932893420408812460117636599199327681249625083783273343778325109077898308401342905855269063184141718212094072798658552273963256112786402249442567671376118624510516576260859841264908243017427933950404606740807546881025837103032078686971618918180197664578049505528800616470876715200255927042651292260305449608231119896432008202992605611032699021612007018539956691087278623119439098500075347779456039937939050870959510319570208546810172759052859796432394914736966860089285189749094929496637419180432771780312570619142441856715390687263865387539307036388941644991741973354873842977238326992643612427380711503502657502311041307671489923960321007747811586087738306015406973145936857120609723388941808061157175991580508304941658982504196289145956347830843087606431643938089155966312669215178429654710681882627776229452038179827132152715374054071105167615111404124331441529868373392023394585822215378569269406172110784837434222251927228415256934588997252127784503281906322455666937222236350993930724567965440202390188146940112695523272903629069745291534533667710509180052640029392632243978006506209753295249238725559758855219925921069985587850869372595882768735701587779507603739884444187548613724817351435915886886141619030748422566672406027590542580305101785429661271300174513822387357996738996243376493268317429571447925555946353280316382639902648404990027259494378574929611797671256428283507731057132103539236904597881446927188646347929476895777571845272745625274427201850069128599982914439795875491802519764669161281368954051033397604137972665302967277653466973446387363968844597507664497186818182132276359300034989125082818658409949793382395135071768839547233656293796994879584679626920224970805242274896282033145879509498367301883458217374155222128161899393364140529524716452017427229476727233046475034105242218130754108367059950093132983223679315145487253215660331054119221218709609915155142297837178414333428212040763750856744373326902910813107152652879754273183999454723268557359415187879319843855981349978689333711857007829706641284027301262994019178313955120119690523703497879886180635935433775522205018770064711686563092365021479164023012191249757628721663861208397476805117922183785713657863477494563101878258554847783400883160502215316701696581527470955622223632943877957035956254740242220333245366246695813979972725939771460635942364110689828035157866193071479860097063359587507872955290198225333553124648348869481101925133827228604080213878620439667533318212783548570262787776970662066284646523603579559957932038361218337706611836047257620811393185109631451069248927871016914580638309929881653972687405648370775934529798638937697590805115772623222890872235166043177993410378943428414555149836755334607441186705046090274066057015746991190270535114927187076363404680027544276794319687232144968324389420994670260542328047471821086436696281593660793465154381452497922529390676303942403783539822450279695480618589647736692999556038031862351931966400054785008293054883336035665142109851779177362884390598490299585927815236888240902739303340736102145233714976854264521179021900296673449929364804801353270022659565213321457405929509752266889964336485986349248345344198549577484089817899072515582662079475587891723211517858194732601386901793254316974727176547133517990800816151440041960578011232814596677801428998196966594051105700064615977952542650295843650590830593015194193697786150054250779398033021233595148631751383761208222105543173547277044798110127657362762520509207817655423629968302486518789012422794119903860997197384449948185828513444526352635365647973401721718718486721293631622995283047720648622698006753071375835377311490094377187158097741479988030636923648977559019189083354116744791915763513812932105564993928147428149475181926276210590797101041807728336874853907565020513381160599062604790185311897176839813191255387177104567293579789280741118147381939446210853580361179114468019495169764002918658853158738611094597996218689469614886550486827556828999484513306173093298764389059156525549241200395764102878353245488637522281359012853131323569358301529464199648310875021702552070323540919562290619487651494055841750159826302936582565923673879319906088228989849429213234541658939776605188528236273672505158387937657998242521762721502920896322550590341287441471690551606233296534896887942688931393588575190979884433030098736590026466683414698474855323180460748580540303198187424306560800646721927413321981485393160485955561591523093142562880127381466928684078711898163659830815120890485326752443953916872947248476195312901484966898632199194875343219903955902021159677271847482812337652998362781047327213654176657677556702439357889516853680068962531988125828018253297784436073540998996125979354880560075849693738657577369237154311673542261398316624169185355092137314255760963290497187439374044529155631459011082912295085638392945997729917666881415136510144734430935941360416321502146069720376641466956692152591972834732155023084704927924351833627451339947832644852792250376141648080197198633119741181562819912528948348923877010599644032935888553409510921396307262958558667857492078851925075705311465822236274774443278766360171835233022111395480902397297153582807830637860813198734558500279017669966987566536352235832742411619934156604604682440706986061719582939196664960152115466445419705635240514780873430221881923198596358528685210877489465016988517023525505821460386061691025677118092558025001623554297253648063485415754887979950443770479742498945481338854128680052633064739845151618100266796693585664485664302390775054067065884485734797958556217327859566845046015314217545476200070948016456463909930885640439391840244295456040062455162375265564484854485327982107504884370099293246850881535569358539815062953471790920744571202916495262482159885046307936399694869565631472617926528202839738769398659546582209353008227360728763768006515286003151155740541894819626186595525843515757461714216139786338010284649979448792676666794549048614195553886487856076838511890046105736643519468142880439560123039667391758227303469145102540215210040838326058331070647978160360808577701470088549553513489076203026778536649638718348662447451097724490748665864768081509664707539967858386913224601890974716150028436144143274046240556467375938956782065825095088992826164284125870911607301050013424800991545828479929704703989704205377602222051779911682264263370071517142449481714384359512483525311518803878280007750374459758604849928236666484510230725192333347823676974080407112657793497121165457790667005380999414763773907730333763214145672435223854655978971696207211747413186256158135675694199908818426844686310129263008182350443356292283607577471691377229983728535139480298305138879767384296858559637659938007238177127462210088248401528068524217553234385144892678934118745473509131780045637808421957149370545197156154225417398322128714007925072948944647437384147325468760181062723280653893617634032506765947246392359362244760086173032990058883104441242490642185558178774035943354393206800483345392328969818161935485005297147300024201242888151100060341588896515629869215941113952574490991270848172375058409503501454718440324739520127015971653761701195092583131540006026884386761758440387081139247086236302650663372201775783147263578628622676587570726340470961396120014780684580901588208065764266150263351907077378663001455921784493136054912261707424019567861902004861346767169377180940718368262399105558226522497105154634967646517750806739927540339388129339003605483326857886090233304671357594313633105910729913074228921406026901286340327863365201199899658073554499058146962799809394323977287325889862082907972719698012852598954766648161849913349049702616850424066383372603217468381498655307410907766623803874512945102668523093952383021708991314356507640282934963165221347486251914531313699067654884242768860693062487588906587510689993388801436340973107763204434727382974923321387020923532474129163032915214062372755623556571331980186452846765834869656746981790541155532619859316732555648524593608057589153361744583228823306557854666110019827821882065756780044559398779213728183765801063084823958619588175646051212944817523061653298759477673562455664284496336430865833205263247963515780105096937354624188342957179533852619591969566527341528639592873620791231709115362334499443632917345136829918202570560960070057472311944955199945875282351514587338431073510966766670674964761905388888016516326628484128935176802727638913680330432625877399686670873414301395400423571767573869225754481221507859999538048874932417729838055894994024364292717785831783766232517742340187549993281484279657079201348273117401324199939114042693994340644819283635888685963617059912696075678101466611007108763790458875362571296356301508185750616964024344453796605901940331233787895728206254034276822188673230009892866391405593627808019707498953802053937212307777372237687990417013131748325252982060116784519242069520549873866967865397045008866497727582756060978220520383465518396919429618491010581170213274025874670390467389662576170481328453243990984120488651439969317932944215449841551052546541078978731912081295247501246578091679085207306413196260227276544566789261381508204879960075346584760483117686620804646681393567311022882374621134341761880167167973274493235505748392918610465644380393945252962284701335660725970574930659022800178315653313658362188667344559490818231842459499497695776131941329945330928512513541051147762201241474006219714503557392149770660685440753043374389836484431042878513144888992888361674948537019264088807053272007205369481506160354397330847723718254369948457373899195298140772371012710849925652738178506790110476620444665799314392501852070948018162972778680611750625617543023365811837851835172476855964123956069419246411701674717943891930999475427034919957221010047285936166952400149019708817013939496544141534848472393352006046881169884624429899306312330226513261423244596465630986485383188605690402377315725183816713747011758419117922380692769366804679655768735982765383544177241029162484986800468953554561295254712115362222613685661427469652981874291755361895971103508247831061550473530737074204658160472417463985087336069165594575282147038879856471616745092905508534461213626701666957578074283588414405698675892667928576941429778985807740201565549590277661972792209073373630565733213338933770342140707340317299525068480694411243437763869677679955955134209823440048015031916166669374013354039367724792003310350281325888406023869432748313201607044489986105650057543893124729082924546950159138958356315470330353299999020920082097839821080108497331538648096125026334724084860008315643892404368203083468145500278257457103217678041635409980679717401262455043294125740639558567094430400611374663672493343697021759374071270266496510281237555022278711146686829788492156628936438475029966284569061479945783594779441981684454888581940706927973939084090585876177433981295755553744335761691432694836352975697676611450269228285694826118604455392754894143842641023622914682247015363897990581373082749546918634282173294646533822473264378926496783578758410932198947214249845264193093896018129525185314808750878758704807881496055143133662158472645133736264173813796727281448741054317983653436928233852113975270268574871333139254752890784045719892914024010277671123330998520309026356945297739877491168978431518224230196690552161594768909304188012197257049796489799324375909102164896320675729140701442539526283839627482503123057305679523355505114453328602672814731889542094992145777706750478046595789885604106198189353859928897183662440378150724168370853041377704512519284847438264294890673790305916159510281013019746918604793769369588303756940861831110121694192940372459163298852712443016027071971221433248321849542112991076771248331180740640623053813771837677804018974589246170180521696964358747537069356055374939637591275072368350834105474916395110519443708469045745890284339925627237705478072380354823277917758792496749271928200779741141616776180710057870936562846491326178621244050391603802593467910838026807402513378921636149636185619250709739407961112892400743125524969502964015996980945305632586423927770076431143532205101531957246696695970429824140906319660706089920817486419847543672645942914229894886137734517747787095920561227353365005871302323670095751355981422986238323308660473500250299127534104881696149759157020805611549964999275929120439961224690677852567517141494282211805825536945435007139855359710631150762969411547612963316323751178695257994683331909161433918714278627108915631388373441076036317817861619029966857542433807129160035867623141831384392418189111659003574962754632443338849358418362759887737803699810778417426846638296937362517390732870069210622893517895234992152496839544340462891712799746623788341294337862783562083225427512234284223740690148952588737388854762176464686514793562064864057701487358061058416660856710225909609874349269303483208962179503457113578598649997375249017479382949475837944065560752331758958000339534305949617590010737095580446816892187513326905193916244858355483297915446339109687943186404655393326114808046839908303706971606801426031532507525889573547255551619336315205159174689322754510760719413099310782434520873204200390289999592687705037979604817157499677195839898646007108669709597351552931091443221039692298546362490398152486211622156103491273398277099277266540936120051036869582569395318217497148495183292859733102293809557445261940270389719221335035507238529205383561391559367513123379273460575061454125892482236948669129005729872739345064793958739595489105103264020516363677733542856507811088123554971362160854314538642662442121191247667144707539534542792564067123551353252034803572904291535054211366566482170129543315545023051379688659514290599928403727136921591431088621235848449369514053336081518534560819694217700523853677896311000576820406539538802527922479573121118527424936468476593126058357089310713490458816029983764085620625857242923359945434383546333168726180235454611234358795960424023260245338200007361043180430349006587582632073949529057780114010829585528551098446791602511477361326727415731051168537177908031002448734796270251283349911160198660225961663395031566809263616128756776387054494695886827477376649803014273589847252857272247345339575551553274220062783218064352982423295375128193554056896834028331368183358255365239622059030202775177474573808898544369686072641041842681754616097667044567531522123746151073713624162911903452770496862448487333794513688968930408931549603891160565061715005292036054821546865749187990713622487987769864426960342383456040098214762827703414846444678467116898897314078908465139167339889024752631737606116381290760658060298157672073060717066957793794358320759159140357063804193360078140886540621721258470918653736349637386385102441892468589903273724402457114202893046032447295039857588807668996277064523080897072010750701916326301262473297322168058059241165637541760310536953546379780863076850090795934016659064409278083054534089972814983805743425847915202236531701520243151019461398285414731715860740646727703336342366007092742184920587580389667234795026352443746035583322211973669164282746209359807560399734568697796272224094257103106234473616764838634629306123682226821404879590061950329123602838550217356558834120736578680658213260495757396860786279120176818229567904388686166851076875821896131606784398872748153155009956553171840649612189949480149731322040041933698723368166085430994313229009296931790476110390789223943875993402849265634238150421603062739303221882859669152441884939332719716678192196389026329831724015808050981901858988917896384765178355819689124729774202689736516991831345727631169055763876824244656005666057271659414101176129186658921997805219430802238751052696495034059351562449354161914525227411199042920710440192772781701333063307572506461155517539820005033300054001343054263564793390150006276567985358760074432863188136530795102212644071793836885699105228108236144990385302397540820830177164925458266962921552488396349713723175162722178611920492936077102309339567516467053997071773765553472857499033400229780532420088982317268523877272537477755304656719880764068756434914135464877938199999704487135476357297529435056243003144698143533283611092217695156487768487220780288477524883232572535777030745345313308131682167097770768757396929102917057691223839091926776886181168101065333078203031254089205860269048970428918421947583891931274395275567343472414067065582373343252266311842876404926541006399600414480634385804789987337426441840896725113159034225564572969247487461614018625040176468031968587017083557803948497902651277468982659821857476553385322757210402943700905825578906625433415598022338165681219172924818874435710794078409960184902661465481929212768932844535927581936048910097234393136559567952769331330023946169576649908722940199959450869076393897032103375902279031068201775234260935449736803547417803054967553997714518678622722897792260627309635019972425234820947302659693909703484119195251607344620640551578071382018409743173102099045742243509789319379969712210901225564801800280102655446131542246658366171929773090151730510506459551084223725132552406210126547043860128128271057625348914951451959417537071226327021120101150595016789403134127861586464978448347554197642990472940452083734647349573276068719777405606109914383449108330564609753201909009904374780109664928009563808621683710116296937787175496833666661487401655432482431931379231303906354896587253401884128083282059354980923428138674422683116786068461850595163816519537252965017161088931444529070610097435798243744105967390624236795624759655374155999292939258393626131858734327438187681535793901275388106239619867851412982952243212204180114145232054865777421203131999674520183718864409349190344308313889802706280913811928363985294674660674282508541637224759246739745480311546420402475280487008405050628800314578360029761371542380155227387075683810377371204555820881230783175309450075942312907562102240234308011999259126773335166818521664476958332782014519454572940085158755809444272517541873912953753893715331042477272973690304702418823793258687455328111623677344711556548364889017552786601145269055683404737026868804567401901136286863881208993792135401209391392728758401539799408095913600236042656520722004866294274296065488926775452620805147264740112675275501173881412814948775787378619602211847840768537163800016620118454967278376931604062337183540466145823130155668710583750837724207437666792109780840898394982506297063960882240937414673256425537414864534230882519898127705934664722042473193529781394717499753444439592122781185124540770125536119232513048590586098572210576016610548565424767301206959488881837557231730481961746338879886331214290857300395997729224761466491758692646357522785951594469739112421495970614454801167905587853757801900315853679291644300949213005026651740310589480743923981547283882000165012190080279385598686307113486055718536727805280318953267426144504665260867137220597708825836581747791957261269692716463601314752453353831866156602642132878300595450567865140234756853972530648459634945125150563842235945157739045918419297695030785743700294819437846705280712549092187663932035836337832155259812933242069926701585940678525129283883999640458948372665069633219880138159675946790876265992956858504613720127271361173098689514052043772047152189646328209213463106328979203239430639546164568300443858598482791423852670017249722614234201709897918368684990950815713576543249883418734290442979322745113010276683764999611803313449888649531229530897897249835808404461310884520292991153666415676229461755404003578153373635251486247654752437611766418842676031282980880328711278676352028369521202650501979069975070672878019807878945994997107891520306124800468359300721539309698712489846315036358649403076164841486368053920244461377199325792604364256631449446147206917013338059924179892339345970084707760716591443474628719148812571423486930602155647319368558109109215350423281847751367639656422551060594233469263654613934422814625375437363105186787908163296059306721176938648729718242729133256537543628936716309946788804755362220443839762264983638418812134647368943088728655543538290772566428524608164137841367570107186971098255899830673842274132410957741070283554461712726725747175272460405953188989419623543337024275164382221165301486486711331064461824827289374106522319092228290824595115911802139592786669227253967533017879785831099241924364879679230167946801186883306718630499089793124320175861505785800824605067561206991407738159953153225519285685514641845941828052484095985007107152246856692688952618157137873736291495625213755338598508724742819679361133435795457467734011434002665833605452690020802783638545585799155822298295623060418397075707489062478908271177664304569633873571056737200243993944485915447422112757302448612221822432416472952728190509035206686579825096998565008272866561824819428051268449828940760346215528667206607569205318274566024078391562959055272690968593758878649197008311082436792906576969335425735203473761912442910571800603582146579704251412072371104262181647004709379408449309765136265026437295872838586564379348885122795255690586888243475831087534288023086667764194000662180507823563526880255766648882237032088066032476843757561777757448241630664482536428319934981563419517434541292920758109902049857440958968126067891271675107587878837455021223086645863057035659383808206262449604358067607269846184746793236628753923620934413762122999932013653097189308712167331013836249583494037510385670720336351244054695555768139936355377972587225826256733390691038788244416683063865754235650167681864589876672072813150633551557344423953029494007576664431659341102887745602599507061334210090155537896901926706689399884858731423925532426234213906563055716286488451121243927669965708023958455017881309937544643684593427659208189448191613502172384897504214613854495243271261051679890122903819431747992084394441287149343360054956776619517881374348192150244413219976441213591526377324903313378977406427468035457143654991312676434943201337360128867544558865597554977379935009341542808016476809100193526604041061202306411150493860103215476046393514933401608004669476302768866739433720722111977683728807028137544653084321865096627599713025927574884824825696672544605332348408638401063944370739659178524024113674294071274504133242104824972232108066958144765359143299924304258628331341844036489179006998977125706891317625251620726976574758168451852019849284189148372320764882128190345771287731313309900653315376239234103686190751853070892952305299217801609998610315565525616144835325221006583484085741096924578435953523290770001560999071761056728062648165291355700555952369830628268398055525720789511808878291331763121461593702195790467573349712620104416734896363226728381664348683834943289245058827394942849621498582354745503038472243471310396153189165828284392081386879753389293634822998084787279272680976960644959195994613404621163609620497977418654158411968920257907425475990807619349921914783474677896947606645170518639566025483891851510753095817120812721167011818627997804328620773935076436443456764207835595136511340350983843816995612984485673973115029569996551544247485541875349677038459696770379466645478592499128319549054627469903498920573344383470247396564623253218474195926396292596600436180324042718176423166038542585463614964759100411340162417035411040778067512940340627036964161754131345207216867382956954340265298933348037728540592404174250869294546491423880320274224514296618926022237406764250522533401618633820215236212172327272139800338060223172518380225837914357505037181960716643958777745694486330489219188429202442121740036900829255928348212837968945715796747243416275395487927623468144937851541206549496197426631772722086782114220649367598695941958262783214360599206963935689023516071774352528521652568828176910814406269705624066145776010537209507235637618096053576588956711646907573955125910793580392076597832120330878268592355134560864433638918451861512509615627327241108926617846428041402200944264677819632882755740962236350102562462207361792483676447616030427176730110255854244807194185802865867074420534486689709414034707825640494775584791656975038322615422188220652777762073416319146900104262661726292877020361618588561209321651453146739942208008544495814843457612001779688316600703825757798120339000169091683817022194276898132463126168772048527393044168895282792877369160624494360793824160958886466301385496523032722029401699104964863847983996198449408266204187296607982764063440929093539679425046768649317873655144754337852025539658674657838275524772218779508264731299268929975444163282083908866658778064183665239775190585859385866917101524242953077123275638181980303900448425989925289986603211265839700869409053518898335217248955439917526189164936349849454065622370127513631601156136735370830894915853368415188809380725572167037565089716641886416816120698533170912360547183071212978192479998679889823448730683240903857164253341816076040351807862991416045132113940881055985352840400139764536746358781409650921225175599468212827784756332209517500313547777460959828201502208391717261615410525676883615184690724633241436310304034350873390075603560694904782451963773313994639458925753300371203684666088257196994476048932552788636619899332556719784782656236485888907697770208821330408005658915374828316956342884612081495852658701708619345278433014125353508759794097944759741257248248190768543588275275932391270016015560860210828867929672676739586205036646385118850954618672412210295800627096829011109313588699506558980973470656181874520872350352928476630672488702582456476719754434720653753527181821980509000920574912273080261731951877857021279834032722818576368105270672749076832717198828610876931636603256860214260367603125609900810394572250404625168563198410774641552702791981917257707000797260710413109152967129821471758360254191666254931276391372889880463790377476133897177380651068495872894045481461595684898686748330918921877602105478390589394958434236937982445139090915001958178912547241433458766459814819048337723672279392235728898991044028650642935935415930131195436263910368890744802653554762398979901704080126404905939200529345250135766322264135424705250219798943976523819960302053401180606855506989987664409094290031556459486174460521549675368263983038555583901106455973294527268002870429283795632613263900132418518656557949401220404027489521797749712826937610873722797123369344924500960645883899189454993999627699443091563155213811811209555882609601182548088825231592783902487583463321401394833724711462490912335323994118010320591100575683011490575770851813568113813285916280688976301009472472509234181459680210066258004536411625070693648291218056220936122315504080843352410608791335429731834004493829844586247745401683427736046570915574440528255043403816259491883866629410212165262764277997893154932166222536725920690019119841636446528460192367881663446980960875580397648612048928710274439558520020201235910392466157962441649370859446795614887363956262216669982580845595374011368154538118861775967492470676270931984796972015596783016146247411941308104515734091844424077032272589699123398213543498843592265824274362857414493250071840561025128667140248542004808027563386704741425738499359592055987088588052050695861200910425730554274006782592894883518830268738472075474779865701268195499559565863654982613302953806367800005920313411077083102499527439943664102850284013110745974657554170283170960716027356641249433524000762935065039407644990511591706822985996341975625372527373363459055654939809296196509303456674695334398166417552118252518402133273970094899861019938767393878048922577645745999192686660988984508665224661221122855260842211226934355289441273591594194958691453434664593413818447698431606503135623708565529518345213124024770846933051820404064140497061752249784689033062864140165197242275330056357660394920744206985268710656264129781306533759131745580334346438424592000747413882955866203123719036260464803847205416712141759255721783659660811127114048794371677870404929167033560456763695996818533418097062875014950257728350875994979901774188250573564831730149843181945760408744107787326318502662729228557800974875196765331839589532553699880877383781203121232497748691586771632547095895629473068000017670551051232902576580465568699243917540173756628458863287963482899972268485026659270158422505350890567923083384061569523361804871616518307398187190833825625105249817818065763662546750652275229179132424337023139773711907126335107848424721319110389510430575958352039718310689922566009521659859498395037662456331073013064800217573710012961854363702636232028387166656720559207987557265069657505398107511440489199887251935370333898727414396258434141591280847551328078992282614259811477004974841021078897583119478374146112781121399880271232274371317045673639165084662498334993254683617707591943904890476877468380554780031667915625821928282695107657830903074212314668277330740594261555464639211676720578878622038933992131618566825470311179240318577778133143725198773151475841971931012257967636466236788780785853846241095672478730978690907941426631994572768883340257764316955958528671477195241334370522008071590220303051450108320256388280989070604760697145256845538104346412672444838348518151809454941666086876100631899044800164590142110988644555140156506688639474989252430710419328105834757349012900117592380871785334692692889973790379859236077378582464166741334631330602393590168953001098379178714030687980228099147041539705635982245912322845628860764538536952482061009232575400614575535327218521705992817910192162844150100927334468679249775868565884829342930675207150074845939601007538226824023323730911136047882910224172968557039805221042685415277217515522252309711792528265126696391592486445287001743632407429435802777407930225475084722716434368953427754899592548041090369760801109583302832396801857690787877009237445645824759582513090943889039523840542487788839896960281111536387969720493735609020434544072776096488072540618169811957162601227701083810393377334387172654642948820135041493767109983918336466383091447449854413144503886695581911140563424074086200883601688471362548341225032824984951834223080241980037601308260885195634782437531498778698517615069172335625043311176380414926586000974166633004846208666548448101399946862890583765013656611231935537489809097357859341306252203623979853710440680089012525965509881332251195692714418160391978988081324526153332045110115081166075214786984943123576592315279219982538923432140856473157947198399766634789359567785950711995429920604233021792443996768794403685331586737792747554631708127119378783173013793157815450070408472601662651879703615765361130449070483843035901882091975711540534283393359176992862967277012366758454227949092646936242986839218201028441135811568073273513074727199153004594836473457438581424242524379084300536521993039246699686411492996521999931451029692805160020866340788466578404380269753925082307831669961784299270533481371839451717138221158489357111442473344212744356590012498598691927741429335968449089485815674849828314899896409580124675258546598716135945082271742356643852522577653587497387275464258663949509040275620019048453831326092073728066028128749909439924657205362777628936598540909333266064903889027748753266593927318104919089352197317092299905766036910645003493053310483748108362025737020856692157973983504654365845385519003447194781823532362123620383263990245348472054339726570813821368405792907663432883531317734526969686002248579690417990031882414872593805160220840855408352630706508308300699864079829129923116685074595330725769307001300991264936881586704332702414194287529664202480437155997844388957058845727213507112829691156760888602281674295731456023832336388536345392005038070855039451708543298853052679723335796794328319237836970324919570324135138130426005123128328377359041636104814856555201988164316854933930852787354802326574611870658820194737484137576128158793798934814627194198975842710886545081683359407976770004166138001078992643972598468908375884086918058636683525241115768091954712441830489286079632616778139210209559001778785030358676504968639177796549954238551552279519466609903412868356278165455332202127818327884115463999215595314093270745131572859991076304019518784528031339433256185170765352848935862079539929749463923038611897339951348183164259062174458929339724677639195550443373605036278953578466699760986290180136451429094619964702343591748808951566819764514226406272277530455466622346378055267467895412472082563762705392641931237392274296712132765041290197046618949260090058480848019983781877003270305087593961404369102868424578569242593362237001925226270589818356658256445436229073158859741328594675058170969842001996468387364265396164236556009624561315875914609585042279915651813264309516759490732556199909036406953184734347862674570674765882451959999428630706121009592378669479641455521830752592255402436471567268530398319645938472264379233054254459235318631872993393827275990374454240789376741009812141001706028471295208121095829064594834342004031754159465566742645952953309842794610218646848621252464476019658389909735351534543025057047729538608267603102579835896158146521180541234961308293707541343060446642379230968960775003249018865364216888450905875348479894300701552128905585819333747740587766739286386411724780946989728433634838196011371761612111175149339028157395809115130863123182787752060085992117816184429298800200007052796866374417363878933694283293439119543602615803358381543402307185934718912816268829631553411737073492033245886199486142887065909260493862617794248217040673789655348752886058534747617349201890150573800553500367175177226149529028178337803544626754944098197748084362486032172534861312019220469270441304326520512083612993022947526929289844773863180028181259783374852367676722199531870189425190269233330708206463394145408351831104871511428437504511737561476798081077650130061301656566730366428433095859664148887165999840818788556130386839955068703504908976132237304162611745053321368368802702127838810370930012294418435010320329846953803944808822358434552114914335023970422630079112784747602128294404512563781115407853901231952683808913622911433963512909502660064904551532352492371143662264633705875294803481174632153462157680749423584034352961600959798548656414320472087125027064588845564990223167735410313636651767217423403956383271453081612349782951360505711698076857786138793765449773413845615979768870780486431894835349965079701438971829898145185389347578503199709873491379972702439988138507532171436015137714573399970297313140055073454569709708712278664853262330914456680374781435577337320889654138768804685820335257095341960981217597116171719261630625441214992071092358885925765485036621315317345457135937522268156962672910728660415281553138271947365602848447680089408819216816060024765502134326749971123526905224889352635891770046627417838955097199350471933213327157919183713649287091997421728326398857710868709262352953721293307209321151420256026621923820119080004543905470689037692551565961210477160563054826770384091828305230472020054668298854899266116130914674467785102698017888691972007993248238134656073211750404238570768446374132030215504850163722454837242301620178925925596992624219976028034409045422750587209913528029662436312712781667736523007128499389967821095302014325481371045427017993396067163566715723606935701914552461391423764486782181060324650705464084286017184077299766491425610114132133567556359069872952195464073740990906626059155521645547539536259555107900096621729302069330390747831381999116238829854449105009250525645351683188478993888272660177924323422106009850582958119897105609219040738352726887219780167997007997776092400169158548639931207989833879997144173446069822495445337013216876804158123804427812493892607266783829759618800091891132929975184273792911334447106657582842123516761673113516632173085484468650523457725499531309196150202951358938191904987543329783779142158841248355957072930807102264371114721061464367251671679634171977727789358629185764113334602463709952324938852696062532775442582610485688923394721518537491250858684523127114287549884979286950760442661294788518956332050392537658725186925009765639992931015355722830502799255304463984565507892516022247791698053629715391402409362219314064022935088327579083861560216831589154023602897500453970723877225260943840703975472580708937815465008833603875663653513614065515753318220605627070217457142381156893950947621723479061830638359141588840179517816112892287145262767559592104336344357222424978705988780834740665215005957995642725282464617474926688740747582075536477703339854983314369527775834586233823960956389620834942864720732770787872759313453943520449155703467471514917386748340385601059687398228596529105955172417733726439314709314085614732949256845420562171303809163334626423271794149265100589059862086115660192788489265687246910521674922744442120851741483477200390129426101104263383689928366688133327605175055827758198304844349692876394563665024202260891646461881869693069673232091248405459736590169637849385167107617699402003353283657860273417114911328937323115979222507639771247145108628106331282388353136999687321798053854215681260098351793686744030563997413209156966325883489597225949335401373314204905670874180525352189863271538904866783552076574049376277102852583456611390929260050329136554253296113840782971462849244342623665304188154545388187509328876400535617033563029930653945026217097890775571317669316521142455476941653435982029385253808251509784164832937769656456644546003524299061833506486274174538054355919608958202294729172328770518753454619007196005400802070647625466492934064492588595751074064324575443545708400612128425627027789022708924351766952721949788785110821850790926817211843520552419230675772744952970166542724297111231400868656641015517272004967190507385307468642073689076628100443404243593428942994800582956698318602934919711983302034851797222733347183832316605012101997003133245185170844457204787606244593763188301858022342667865461865009355831892998011806962745765008598590775238879399938988716591709527078242235319923733812578414454008372475847121363924014273032038443908504441030266187725837500099757815055472897244083926394577655740390369417976258419713328692102357780077688888782773730075599769024426790888718035267489545246160617597385328159608540445059972589616491423721133336009715819636863959259966762626132689785466475587678231776665379520307827940067464928977656222712605069895112756081539963248421384672307903612970146958588113529986188751965363548801299113012440868913876264687015746691978053988485001580177528789597640595877028338315945732916103284617114145153488901055612562285780022341480540557771568858506421168158869935990226668510977703447104296960124081524687013735305325913761851515601485866060699997779141464944327760627026259208222917926121855921696067631131851122928966991832335988010718584849075970873365291792260007433747178230088818229199245262700117006880192973465611457260508568366432143777595954188277496577344164572020140705621567850813826575335410807904875521758302963705345637910572262966331368122186169862322079281838776468321278412466568001882720453787179401677952011106550596991322829214249775263748129988105323811001185195572413710328082151251654990061325152291306290364883799044758796582936856251931382222719602410756078861483013365017251972290904214959293936794318787964871559649945736584863100338098639735623386544596395797375029019158354465819494007101805031659435413682570609163903804188749914156535403194533745166625026954445768193258049105246254520526944400133891026956296986834067610253478250486766509959064102852078165258324370059404397819311496872937370548908577511732056692670564729555358790812020542392139563465503527163405636030577863330727139460315452706164742452136163348556402339595612366429444659099947332584657254840808535146355156043316519514880382683620062725446045256343203515104079972636004576432980954464928632252871124272737336762793297028053674756669767958262538657695441880313923080932662639475437390969207377341157998267966580622467088724441125647916326440177814592921244652960753019231819978716407227321644076502718186137986774234199558594752232510759777878642724109050691570529475560438940176665350023885559468249312579705670747182935277071052109777676173776374471133167319974856380309052718865658253152343128985359887191445959420065836230794550910908986303690428784934799243143798887053845507072750198642680835972811355456425518912341571338344977529529318039727715363279101593191687224207857989598886296655360342444989556053098737765307353492322703314562501984432823934931792921515987698689309459069419502448942765194017654471188062571017554227813471423928404553191555432849554679717688341414947468007909811843694381544282386582781907085730581419676060181582453961638976312305238951108035812841104617608501197654434684448221221294008393366856511854607700209191805313629048196080617074882851843941943687214824516905296315369582422646084054905895705274439270837658905781355908190484629843376441656440610875995718073439249409128357567997666711576927142885779907591401062437548765756431973689495781790902690662550068578172376535544352063636544112888109255230295712606216012364525979301793324845340171426645474865834226216039750660791676104517936526345515713800738227123076225609825339206554731103109477480682551068703251764854093969482440047328091929169582518407418916277322860120541800075857917712903539932902216098762044233631824694342888184835004717776768715735562326605514612539426523249318072535428286145295320581276875147987505648170338690081660671058720227741024175541700996330367046362525255479109182365117301942209844366007026569742455291620162638263407501315475175723128229530519490047738628152361639659925039727914213261868299103678541912746228404072972802516256249597865572019125909607959882105019725933645970259448219005572217819364347622021684050039648904339314537240756161407569748638383922547107288403895150026022400582093182341947907271151833696637900059917719283594403646586265776970782053399772369953507400728783264337629228804335978591133731565227532825615215636081450584717756277250062195982903292200019809686565712747626474106895893378210662640271218720034962451250843251459663664957791556140168464335522122511576430185579333761521162523621299457430540444862212755481314231758469237063421349279147189332921667575337197323952699481369799339850315341394707940571328847191030670828281540633729005787869967842856659154551682536812040525654255238053172721904988382103290866942678161375420714569818861953945017684347610260332798759545523944447210080389211250833937280426027987449421172436258670060452128603576188792173273993352234002343715819557861911907046236851655082813497539759051969892701218352367712221671243932983411111034561520793839652955920888526963630096603016427474523591238622355049996145859231434674584878046532007728695893333664759009136427202414691560486533043352352847862749582557688276977834265892613511614127452283652017900082900315644942608883369081961137282736849420703182945310760565004598556994162562414632860149272452164444899194107276544383433371450425082180721469924224164412886659377018970286360112731249047367297187457629502107470132763361048511618152864678488916707862531688634237883442331284468913433109327587541563871026199541829218372840898642881000608961888608762754674243107329732599865792135023981573966332469241463330273606429386862947157337355322598059693514073947781011173890814207353607722233916420694206379509910413142689666993357227220111238566359054882222130848973790889537246352998745948044201641719642566374855300546467922000443494170401087760716858646909483888546543947586219073953838954774369379080932366583017594651044871534294195585225362796942192180634393022932237925055097998708297827134060995747018908161174868068138232017302907250416825604949552386111249146811458014457956718592282642371143227084969206374311287418595567725134326457772497435572151930453030415197016134293398887683102477771668012510730276931747924150019463367296500416970033568225571829137647932761292195552838199943477535000784415055684808213230325387646838833565308916519783378297119856302809967185665253260853031796769077065075441861281065976432440337501999753538230375375341622077341777836163254736692472172690472865520284045944661460818327864384180594130571947347153060111314449693120966241713440455433512361854815566209131843022211985181836922191712392052932289652734894122430304855501611233350507147392425087460162484183553346819073529852200153120855689421338070151281036560840783710685641922488437047227286545587118158564789415747387809993573995499876785670360104710231499212642961628349648599688770056977436425885143703818845153779379162428065235720929976935755480661659267801195088078901596157206863732397232465169623077038372561733358657762638614414479637501120256113289346497078787940341008768400618369004455241934492180891393348321905866767599584970376146198085237742867858011866631687095920594789866853313135934789079093354459356030571198192284047463173552890706612582745964248661582736530876900939334278111484099280091967118126837587388311009237881480638853218719567991129609248316058812009334853830175169678089308384818118984427453069856630312938065274985384688360608821137758597547071732474045846983913113701616505660563868751383215875364674924009465592787891355830360033234938231336474047282222235596977517730077177341940776800200973476985362035240254254862651815995441389788282116114512281250576282403755056869174237134518314087096800814626201845916447391563395711225158748627643974444253109191027579168927318130880350077562713236167837722378224084157561432209678828482764937263056157713366580940122688092512283191201383703876535348506385009062316486635529386780306025022074335006052395582723526845601478563448309312626493974108083289266777018553719138069810651737164713099860117812482087615932594510676513517092439661582453845960993943991897917600339975024390127196260825883479084652630269308311990631207581487855066493774118642373454812868107559998437026384026269571951186309140728010103575238051429017678883814661903108226558133385358507479203716541394815076544579219297083570837486624511946816548056391124255394973622621465152614278230759021376750346223935510603787729335920366000013083700568424618920956191551525337757011298360364540206257466224093409178191126491181470095851922642841342887055966544196715441514336875816538876233022642535746548255011412382046995397166455940833993503598328483114420141272763951650099292297988189793403065873765630078054091249788323932128952993282877703777913359443948022450904881671404836085741323955015496553468440270770932025845246228607631743668539356284183883680707683360428494019362298410423531459374532838918811179561911314734642916985830815965549289454026144769432623250165730314430143844604861642627477701565011484717146386278758112534285858404121210077855179309577778064435346494463008652963152641311956288403029040879257905294288721796133249644579673593431459447606368881468771657265067040676026851498985438644789413931306395814263905900465402293098400656602345561583449767013912856017878062262814429484104285637533950407839485682841662908549158465383931565986551490674301913192581606065364609003865783624169300740315544197592162315370963293444338097082201439861623070110915165989300915438003577616113392882927653835343899431595023719648137686667768690429672285870510944655748055315198196599278902970556644179605239009226079390008818959614580185542765260753420732968836184165393673019395001426683407700071009227617625772237581662168139386296128632598618700837685651436549789994156928523299644183232276040688091199830754296325512988504374887070663612469300878893431845259424278358531481931829535354171154974551248225092258794969082016705721045675883741426156661298468247851367122936177965765891460122413326230540816136886970443410635620096561970865011376144423721024865959982977343009186248851229220076110311388073617692248975244789478977647448955730197109585480205449234825469367615238166395763968120154881886450244472036098717341956811932807227502665732007010268238033297176153910295467114717515212652974557144588613876550127302074557585680606561693929176692653900774920782120438225901090864043576778381060544656682100714789864366114425729553898515186873853964889110267146161120515130232227992313238964512848587086696184438414423340907088647098383465779852086633673661820319552309725833331614885089896666270879669944098037434847661477933296032090039364919008874702027299055711060774283121829033643138337847362053772727530418941254916490600126646835146803088333616412260073813585408765768902921891250631807250906252956114243171601367728575708982276989088200885582725840908322509843527465068141702303365603955826050929940218568164821209387203137454943199893161799434827808640013551078980305987505827892928602176656788249312710914304453401453816298123348229686084387518819913672920359397510561483409894406643302014297474656020663954093330601472093313913607502540918375668334223569329239910865418349188041140448761279272717863750688349695901030815118743795020128081078754122784708567816183317020462727102885822857837028632785559670766440730780358751886189355127104480911555885958045083900433957824664156588700095658546187098636964355459455995919611155939764765535864458879179631332165589230294676797307947175250321895073195729707893726295266629991517829061649505898585996851782779368207643858124015163963543499602633470324360419105277027815145165909211301886738766466369532338636975544295954194603566185855012493463015720015770471355211896371945852486183029791789107132315642950330968327401488432730904741211157752993566892356229388707344679501125327558904169400816003853119302286115076366122091696810953132634304762211602773693362539555858726508707586074824829394780803313350090725259901192593049454621937784076782599476486256973078125301679730209482426265619909577786921609999493172273475881954555804221925571092959900035037016649803920824430908637809497511950602906658351259578684372024942887038227049860746620291629050133440522326793525633955377347030793737514081002106841281467652508644560597951819573846452220534760037495989639270268577525036823557321536991247497717802733691654304453755061823529161133078776219503103379773945932701239090138124671069084594161602767289073344868971754094007541801492224044794691616018552788203643013780764194473158827911039245699911127773365854493809315280739029995971547373607598233974637474843883941811580659293317382578840977512660563276740831626440233208557430543784356159719227894133966996072856059289183340249225938304996530997764163476046424796288840647898597068540069444475121828181125723419857648243278943665131592216288794997526587689800296603221688661562517881002545464552876434136658481683827538088041133015084778392217274755845067828220567780632099691232507720304976185973523374124204587973105034289963153706741890287180908661755776261399511117782624944030630356375529428619208958661810943259113763923333385615828033219519324828974177619159325431315772141919719719532082856236485085656987797362732273596213574224371955650560921983880576020990877074381064355167518961089866526209590179773308503008794783302354166665665501974458087980296102559696504698997377463220822220319673224470453796963566628605744906580626240645559618196339993120191014961802893214303531400472796080032665654857091626218667219438031339739678593814476314804636513428213473415223088672416083604833834858964869287188625651050087730930066007765336850035448991545384855402025837958082954186055946476452765349380797556761970257971474312560438045198265486363421549131534753635484205058098368465968959682047225047151552070448744994526645991484095564957384457681797233470384166894050945243719696082363719530079097507262095598986779145170024531078338405479804420522396341126929609010418235012286241156761423229684016675605671071525640671557252986562547242190821847852075338718164204144578002311660505541582661326351672312544135652972257471852393239524347883267703982928673942593267648636389806674179637865197171498193121452946152677826152956363586748128195185233065498021358274647507296888840113483687840859032551367914064844173044265850170807808436129139342717713589082917164847280114752398764100871296118751466684469829645071034454953237543779043465278489886890055746549933943015268149474547305034254344007566601741532045545009063154446053220458181150744742307682266058024829900753685837190892512427077398786957010763746600205271649927549284542827841358563119436296624028914743809153168729675819068124456796979947202442129935175842611442166139647702566367101266187672808887593673510810781932428737448135119969695532897209403391295656466218996901845030116235748438240219538736749432003837574219431261447183399543707939731991586189892783104840239083419647708636268297595579781080126274240421498347966730584729474350376638262695639353280390560147116094388382629479512245261534052586484377382035152313964928586236328838530499359542373115925685932630308284963815956988315687246581367438926125367190538063660648113478333038353491913194481787590629059520072704102365998236962200451587570720311763542061191421767809245908868662795434727958027713089426016115444253416879997748749308424097070556874189535793187815393426117671315058891313886080613701558257797276796607103411145566426887043439551255548492137893049653814165694552544582781898340867162552919541912565455443114023100117900894823422784143418035016533682864246102978466987867300515137433904527725895004978085952297802119381011408680107272385844715380841804304855175369528031503876645546600684975132435179073070955642748782002629068484748026377885758810390789708182675033949475630558850792590842574569910271156813178699313487300373346015420334019887489875735930366829341105461943241900500729448473442529280588621464023220481594961294054820825709682266535640791106596711219785060670453018176727860925548439615594762135261422106249708922359349573065229409746394286901832510254833387290853258679537378817718627567945793067766052925978986443906410787618179109414229175800759924581787283409595064403980657875088704079897162795628864373447164542871902708590708007903865599158589732561188353701328072179687738875835444048217081791002834903130836936649333267161466086611033167223526678783934160008615388584857880069085364944261330653490401202164120426440434421763742680152646003799941564907506755590315179454258533089134018487166663661022114337756526978616177520555620640287091704119226468008044003085138003214138805411052724183689131181441304940413743921225845300652268268850637133615465592349647952661560414320151361338124532222140215335341649658675557304913557430066830031219787539139879566274237490642714276985698646716818883127473414277647806660216241213863427912541419080307987675534022942489113962313437533557627509754622107015506497170248185862472378461053455723664974122627389110468838475012792321552901181969764755069464889827149836921417043647121616158345462729697930733836058591309488830404941712004425506941191188216748999013828600809399522616782067336828498182192389297198785060123445816120178577691572242841007441299942124584550427583509313057336037638039655799750936579938920491677782604129518190413164515187886227221723122067870065692445846410230135345782162437723088655215830430047886131789182896410125145245108851809425116564467102970744252463947923335161296051556657548909429667795739946804109101399824129622855883861568085297901217586443245728321566945222083362094484520851045281229992127946321270084522381176926436799922253294919349998401348816653027808907477013719867273666676642022864404644367144276882360554379915271879265916551282819893229896260839476612232189596697355027743830083201879365366717202829553596586814409025354461869987553387752304343793764534825824540128299509206945800323615151325375334575101387481170881865505772076653545777245230866851500562410819149289453987111367638479522938200723648076835729657927699752330123285876242979304113629793791294571353034647766172266311900852077691018846746934590573427991107017716942307403637133233388178472336848384831504087066453030966947553697429233839363122078456250695861564513078072437653483418839472658389242068981638110970785658024548954866320923741518649722826562539707827157517592304321864027296764929227633562373049984066501928570858442512348017732762458476962946568253995511934043086611925746244607559791676657830557033791938189753716578583632384394741650184758850411356813343135725961240734178376088845022155705824427967972322899938292438177908696845261375710368337657677406856765633727374577390909913848131187443855584470073508415412670631340392661515790905515898544817038594538413426089324744530774507238940902088887469918962774390831895417603544935503114033151155290519032171790226919829094694654128499747781529803715563753703063400784404961952332801651070308553283885907725109502546531939537648046681688309168447970959805674099907571400148683438977965860819774442134059469981604690451350220228396215070807750151967042736586278133654237365682218691969536253223179042433523919813867748056862571078517155612048560383195275914407048206699066144422432532775387540850312929528659309037628827948169284664703710671927762984828506319306509700431677275838120059584101048311576063582449886230428446320354417128958003850317883440075473012945671109396278369811647918994728874503949569090308301401675081534781627707867052045897776424738421231074628357732236304834835535089665531213080517520404673076843854236560936602135264344157140276605412691322695564090415821447648870001844581367070619839326246753005169092098553087942959366968664179979389830304568834724791432677385707093592697862111287789765997803218455906374318706960990589611506402178864487381301924598942715753814796136435226217181748524839668501799042206847748936832218359164832534007538938865568135248441670084253109032528230656479182452775839423997516471680209670272296498128605241151939840982862515203294801503217731496343156306123154335174754357260837991005456221625162527936659079083458266043618102975339199555225830701806783834808487572208886889890233188641272851385377018108768040891340237823724342243742698221009433394620358657146342731699866176915433748511359225475093413360025455512214901554635492618460952777665357645424406499100454760043587025969775304775997796410354585800634681564680192259451134337737750275038724772708949229632860837834753130767381045499232194581280276210775254183992327634846199009330623378869806155065855528190951324178102032316643478769237803996624879981889215637228570292706308571750603342202098979960874658008311127545572896651937129909162936364371263571738770341252549073654083308159427091996614726469852124492015932885596364093548419930451289996469025692146859342387666190240526639562457353339744366235876563137325322979548869949853667457507061215632030935392430369651052317161625265409024072765363759529497285917471411181546588976461519508212862547987866116717565993376647894617468594662583794807739505357251997130597187104128777259792143961407638841896507890533042223645939424808818249450426161160217878055411877620518581477826689677172245361641368889505331255381304169262897336713793842578096026501507988068271287112022540977004019759808892174602039349412014530368488476310864662493904784977700373762961798696741677684891141159340072830738926130077284278900583981167316919316793404034407625988941961528707332204936889826029986474097240640145534368732255318215845632248255482070551749125198917454549358257785176772784386931083221899164364922434278583486610431407087773896261649531855758622314684945229183892234967402734509320814201377374445539653458966768462621538374452143120809675225342592251674539365737303108259588448849852278689457404809445077217606027720607767671324896858734347408953979313567689345596817530362403345947262216785087487534245944427051150246732850567083657268147602409086477387725475649430716934158555115957602362967823193133458460198062153743741204072277236138441605590499569348754263533967027084545898327919965433597111398458287321851880937645320665850701027389420273839773148083200286463091028616977588174489395976960395411093749693385238977860069018864899378514109824157004467935231096480202843411876932778518840509944065108711066975040702308310591557997065597976012797260542704538921052506370510374528294722150876064539922730518676520374120580821576836147802582239960084371346125981998428326592947631791850444454458336760851548120251006226222729108742939295205162445684596353315260851954456272163473099875144086197700723650835207017430205701153093012964433066853741077900383237522964081407255072694977660153297787927310019808553790967113770382287354581613825558724132121381849411224102551175542183470107931222079147362010371630385711237234702837975853813505478777922723197590136927482033867164234638799892824476803819389112821099774196341562065065871639553862439073405093684815872772105491384953391164784586611591486371431556341761761770341967913786457335865451894794196434158460328187773975555039261624562483083519874587175362710648947845743059535648739167858966816534869142625354241624543142145714470617205948232678904817011523689409642392295287596228491958917656844556076345546264372302038235177371871979817305874545915161596464825653409126345636207142806547910545642419660881720023606101701659464727280570535182636775051215310257448900957452347747387019808538061471681513907439294061003632825941168410628861928402830989729386436057993605860514134492741224299715317303302391119194028852835287495644140004679031944745701341213885251786658063101305133618568493941494162573366278049665846887138818075015179251808247368354371113060640301877058720378947400251742577034347293123398112863233966540793186561389645888955137287594079771334376992193194863905564677746415636042108205977188349804821185584768333528812700270445037288830767623353100838927017376018737167111276320991871986890667797914588386119787226103048299268770108808700716869667323747120515141521584616192156639371763474162060659269443020757217828728176679718109565640174467257850210188660476656194443415310970342847766234418598656139840598185671753054461398826448344089695269913668724726797523773755734333552606000062371668467075008619756389321729009123381573039587620982096220921891442464037349487507412592998015620316964549288864160290228885279253595581056421538225420344391035915371738017640658680879604434273362351723540927743032953719857519659344943374037148425057889428811919702306435581231679458705679630391055788620783916569584467176077333424129231677318255026802549638212091239550050643944305922865801389977866621975286523017208491954018580797633847070480607159000648186496591449578393034906978258098791335142800892020952996689327509346230389529820105264998680840422570614677273725935258183227621109299704313362096967637626176453666304585531344750584558809851269371079219221942013013659629085773030031113075383967942957226994548341869917480126718237210697903817732953329451258100567581335689261608412386904298608683783235685165194097635232278752460734139958809993874272039955356731764334318952076000600198342517830004083261706769155049052709706985370237568910333713136497599039474396734103673607382034372097154618969670169757165513439421751534688530686515800874249022152639323317387450265938045330130476125325171898743566909774591419697100124346327830797360027252382087689207371318995571528367468564538056936617796141226572975615980237905876457142091597289796448552735952605492231703448311938074795105591024232048265086777258922679514375368625002362737323716730944130402964901007368601661500711580646851408510881028805523098955011858546093519951725418545104725656313036053247509077256327690409542569456869785322040956415968430294287878239146644983223964481922621636895290158504517743789167904068947361193405908795867223003131671147164985609068517729061319492885680359801303638925075868685780227505930236419201896075946877082906178002146390701479622814469781490736386001605837750430428079825349152684743927330199567567446419616352626475183535266305270049624495362993601036914393674486674391225876374772304293421748919929523486120865474025742368978063487017072485792844951149115762744712110078167118432500290573837103723159645069305588508172447775777508518732329205559988398610981454335396396368347177466027597243127355435694570232285118662280514760523706311850150522050558228049501136722443383872987879634370139765427177782687233327872216380691482839385005635504574220005063006595030535228272188938201593114195974302391267952116181467378146244395360146745937550119181909654629893261578267949900263616669990315734849618853347378358070640878548441228103310712521103972160797673542321408580637448246207901348237352216555828958672852436920979778090773401671990801969867579479913138840547414019979470062324306754160522464085781584621459933118979123688170982413952006033359740687856576910428218798431164670222858080063170532709781176583401492664162445922199104319798741415941192948894130252831367320174886789490961865304647538513769523732547434574947270672010447591387376650114351379086179140974745839086298564398966597955301929061987722000695927763654915977235936528317155972028967649245299704937866084085651576600205165220422895199908071518604561758480473721242853991967520761110509567413562298199886317126944630365078199399039368746461170437701764537180092990518549954982891807458725097777507888493187253155124091135933442147184616973253704487646206463969342096978546593372958639111638152203967413494057273048087905861493126862158991394171722909849396526788355061332941878931548406447879627780892458590073777408947420618128846350649450271219035483125701656818177086509001349439937336720752286039276352449943183796624629359795770494274961564322985433384774978247657678518348562009782821973352600448087761498666405229327597819729826640083198409969425220073208026884398075715359642325594775630761037444106038105018081759941024343669340814556471340875479745292575669940630079952103800900154668228430762690442061527522805459210905993186072810047405655547069891465959295560119518789031388508705779820433712387625209673997038967324062485305127822266344491101341271763347284040380759078630273428727661744255467388733178295132451846628767663423504907200348366705738241467174127730598993125838814177031759591750588006755273752709209812641125705689980726191711998739562232718120624131385061165098823818014600970181382820400721836662536828725535321971755968347540929323862798843071306938929591761686922927906124380825144951476723081488084780855441337754472257130923511302007626071211199624197193956055007367020835857407960686915991416280821041005909494705698089805276535065738486964453219149080201542705237867804715928806570807637747851736805026279372379247214074014257383348693409220101685326352180349092587118467973959044032519862547625853990187629928080164500743771119011665546662994486153447116228047472326176190842015695408053849999106312620174119957942239571111141327594644923748082390494115305301817012905085982992155772223992241847917169268754363083950799291544782820868180826027044976000368454387406650566983027343642783020583269428972816328009066227862436953727209268289920628390603402175838183492740054608001470251320859265894984392418932917587934328293383691044571049215155070429332792206057006563912014241319859056198586114438563625110676983391914823953096898483710243717177511766445634444983237984607361908967966356458530920213314948436222092626142103260846743267199326529416902700523052151605947972102621979564823249226918135960140561469142371818710048287178348233873705672548924550633490442992237937135677744336705324918477270503108829279372175968469400402366823991941559905582634637490946686755607587861922271908424409207612986630718381772232220794854392252695878453904104745795115739768704090302287761656109038391415238674185865437634374085642995328021942529951305182014568918693221989280176190595937086199412136929512659575321258340468412649382307918921848786469762856984528648995204399764284077586229112276423838813753171329103890296519086576669095543205003123210955612833042546262029476253536834866329917107617858969344816999859730237031584158756159881578504488361643555696443052110003318012461387770423130060888376229090068966426284426959878389654732331282198944318799495294679252518748546803024453813947863032339111345652025119685021311198343743515595555783392201330454310179580336904501918958971548553079152019633331893560032902607763663563775000357189018464637487805384098153223198241162553616378304498491702924250174332306786957482754991392209596709214558489626716501039935850410959175100526414244543398989003096975464953365606432535531683826428167530828515655479405078188964592773336583878207320201732752292911970144037357444837567589208626884323313672424630231673393934632109312682903935722685640310171455358582788024571056970668984083350780209468363224086520537237436081755619657009933805877176488809182729208203838059722094673369977348250093340400210795383480160961338105994702407142762632646179160785644356971755942614762228345460544474843161670386330756879664767691389094967256705851102164269106348431092390880839827614207763714181353095775044623982228538491894263500890784254277790299486299003382959689420027698767298465765775406659522885753195214004533759864887894501611470439328522555799371078452962945697987020842518654232495327202645389832453115004103439715917431230859099161078276124246547805252399843013515299925326302399401195379195501794022005247668413766618660274250009742080928544198860520637121458103861701605161180852230766454363435829916434415257041058496711804243058676289177952017128985249479645638382796280375571625171612228189411652291339999919544450989941283068494744287102264257533550951575121919494014425596851597228106891153513641040088016873076249476911669411395659575765120558898905101834049683491998156763713914292031167025825054801226796438678621913641068657956754544856847614081232549290481048045901839942253535856213982001471719402209219066085666410559613450972172870615284286036490431924711277125178060393591524386411553168104465718252865682341444020153159071533893537021136149881857728949730870023752611336943974934714261607723316630502258106685251012516011475094303867236175773899946871226423245645799241532225491597434167530800920996516397067457791366617625996509330733324100818373908041900913663755003037340190488508865227993138704602999987056917719575459662904667125958239880186586800935091815040606051908168211614617634742159045838672447311122337509426435856251138870747915672293922668793203005427490669215782259489566832941252411800822953246382168981095348166589955745732082915206490874716673331747709335839294860419376639578345768028157370157771698461217593932985934057572814782532889579728826304174885405495933052293984378364749243819924158095570575493617649020933471505232431945901692812271967154294260851511052734849443878524089668738167697676210995312590481093006748088479083397935342813916502633793726971210004206179573755201695820466655020678358433723303849814129591529460435138736007716226961655931156038461725892156988432862064151454041862010545204464566872944495690838169477287266379241726655798851774992429678274047277830548862351822063982919393174537745295956255507273925241134387225666938017104692942195514884526225841453961807753118043666354158655691376314355986791610087221974553022099933955014922530352860133900933426861947442998612726021415209109483003816987727243938070928547208935574861981427195495751870762929287525557989010983800510669905947516876148922209261256884787772313371487352973654362238029330000895567738096017171125919465308271779738963057412411633348024625651036951008442443541543063790268185822268690350224390783464111663154673602466017318213128424508869999861869692336879972628780986128491645149557231893350244484665954411461478919122789937614277247208047033338316503513240016038079186609070727353502749495595263761001920550021584248254848059160076540595820166255120864932189748621748809170745224002260229151215889635000728031301757823571850856108916837736733349994465445707033638551863416697512154325593645306088300294082718654590224068389085193208391440840152346012652136436914107055671379440638129830722310336133313688156722187985629094691091056834366986359456198130833768146344082511795075504200531505910373176679384487888875305273096810899387580902511576032554232973321791877114173970082244091505579157235020237921719754525167314229548349761191537297509000175831532857092026815222199469946632427011883966824162876290142316013507635060086098991674989135822151209204151079728052316688420753060992088821378983675462124121568556796155175829705743294189291096418115961018586144976866632689366584016525565916920382761468356914619167615031734815609567240080042825309875123373929469599047369045000182399524356054325438658078334363881893164070902255410110541922627898496715414902252675050962171052054588096142455149807022514604903077720823873274141560396077087088859276385453996761555140705484889676107241270575258376053356609825924818336862923134818792611034948582749907684177785453828867675772415764807131350891528205185034794416041469015122443432162223940603410646002020131787733390645227460478918927834607657854546064465232511628292145709495198453582669802804631330034670332084634603024463185309019813160750534985508662032399811873759188692211234745763068501508465547516929587857854572097732682087874281066859358288415750668265166704288295678195315834473211563129976580782577040702848512579117606588989677842742340008259269404757607681294122697546655292806215855190264297473059604966368587919058617727796344683670827911242987035959050602724191392667164384866116798009254450755277728104540018437048630187287640744145207483954724527549685818504324586409588616999191938983593828930056078901202611121324437975843321733335656464030944645845661212838812801440549137489100635147267453535954134700510877197664424859724554609816158334457019115559969607848874543386458899922797028861543778079351718488295182425490620790537345923648984602650997990959689498419624568567155471216507259690451665717170535313581042981250165024467421470211509166529116130216760325177325095248702391524553154816635701550635636798750120133577913640714026879913911842468690993098194437853970956347978287479411031537736165501825752823737541276844329273538550395697650606508841800183792998715881666277868085162726567176049875196742049226275977814005349353502089256238696288345072860309288383729857939514244246496591032281076422577856014722700179310738529957137461946892459904218438147128943891156612264167818886787116354617285549945591765350123395410668025058717018792858108740178811786329434677281478173095873558612715732421340496639274563600660953007015853402013445475573556519855622768645304135358793392944639606433622896198409592744643897673975243159628875546751807801652160207752990176372903052507721947891805753677554162630724768791174512822894304972095233394661301585212398388473146660334072823959696762757939632935648770433406833965263021863780861813425881633264299529995680074589532321864495990932254445299991639807610345378012779134662328222859938271850820071338800824747653590480780698948371664693063146610682879394328596496627749825476451833960843768929654990486797055283143646603047232288418285967294944341700289828759285863998164127751762236499176812245650334471417369972877398236600170626462646621287528764087284833251979156987137742741385940078425872556768654666682284063524021027464760110684924879933172463969417217469782859055343398324413185788815751791837867911458904225593625434451295529705435309534251330547663084387686519913237194680612286549323716277829308320361638004291216053552659408703020411831082172714832197818092036970778346703227767489986481766622993489847808597249800920761146843246071803116054409271475758531991959045908547817339257140774279306032399951698237919317120101875482963736737850198516739096002863624433550408024880035201974422907253570284587986977924436819977834001907016168039607046011885089965908658232712000193725704215410423973160587322219619731942331741095478740573237964824923911795594058942917517265674809644594605147190220169252714907517268086056003960145894326538629672639800917550583370963544128809641870000839963405983323185299454096129886420131928059031246096095023651787879888784947585263841390167501070705086635054822531173319930452044479674527265043245912939923882708783496974712762681236146747874511381504827319107765638485608797142607950198858939975998848340264228515337010726470006566886794626003358891406080060132287198187954464966402216258823530030219175969970565175164422285794536508764230763449662011804337003979238038004061950911112199946270385262791295460354598138659425409485435674989955159623081015344739733663618419295247506487465626349227305623302475252124885512882368215852435705410305440897680218155107617485043189900529974401811215701634437169740644162786045803354281849118991207925827203947353489423087857414247590644298828980325571573848727204723818026136218343314126542893253448505756391559163557291736160715639392775965016190559127029445960378107690135221285935654828876573701048352165510756626837071841299581404939021912695293275296591450364494140969258062426848303314600468634160425410948328319563997925794356547870290750129362105725155521983172877337846194651914358785610749780034840104293752607619290380708263163909480436522658795940710432929060630135080202453173327496658606189462402126835860982437767638889555238629408576598166673215774395581831412371795625060249482084472281428291337273924934154597266431378266119307101660456821596927007233303169289673671021988685868639740417835812554414266496251693371705691734925460350621577378444188516428191986446174588430799113114756536188802909005267935632761753016916851057640314170528223920313363098425517265506591651585966871063600184312687467658587361962571282566998960328617563973655938301476111126808497580957005217965910740581223482622260518878810283016433817122273720901226076814748738006156141592270819604818539216538754839383457043438055918039629768872480920363685211010301276334145441538901011823303480360949661266803020238766806333013238979496196943159381513009510741453126640059766814010839349675506296817870832072491804064994876783074794922283592382313768210589906587026001762741308129440906660121251518232491645677709428221921914294741721399629795642381737639367148356469017176174694269418965795011997770856056210503676114896138645431492786102433612040205239393193447674980306332158354195147082563611429948615003451525569972354880447258483545298643452540012247566460419319755607074974742087414521022357367414784154899153914871956558600730796282145601135413830282207599083631788578270873908758835126319454544996069767640328677398185515225897528144323288888424473212889481668630494865644248826916742585393292506177071161651002727536282047839140117397589982616106139050562525319335259160173517892613990163207464834931296678980083252404964677698833921733809504446855137802663457753697049120973327052461173674906911868836360770406758398604133955178933365422903097035199409723877091618002113827382897663254090759930954573858628221672399450517969866184442027401444651611816725884749131651510186162635618490736905168021114468799748494286223925897009497677186383151486971678476815414489522234976547191701276684730398335306094574655370303178503717646293133096648510931521696243660878748211641410539242562918423520408297821194629749181938706411794902649227542715325455018156503404518402772495697288947578294319884448226113836991239331599729039127273535924873758511088625437426218197136554923247702794675321137699585412354523495003666948751820186568826907684501590558869564638649750680506904804195118307320456648224356134175295022846286826465543142298360030909800474033972874636755185689326207582229504764982256122864660711460565299491422651030153180067367163155654504588872664009826626875981665010889615465300856745123732056497735704549776863582372745041294661209672095067522678369242475692668026968710897799477758098085286105415332211029050007212157294490073609771619301787745188052867042035604757827163074547650372102010793693146279244069168604936549406037171902290894149484027767483081994640631960194065285672329231753799926178381874818925965105278855858115710136208275989418522771671980237214457139417477960339747577150992229019212257072242521132237155907445801319031467501597590548044458832150603471214316219160519599197180133412653011226486035379701618612974331422104857366460162570333360762864360090553913420754625958878677855158379107041940464919219172468688461754659783547988263129716502933203738477577911420782615976334871297792684306969936223153187585423405874372343231748974497424550833054388744194966076963273404147991023235391086863388228200308103757375901538651241507972997381512176697849757952456188270180948653923566519563743069204821243579269037795628658916762999983390928863845271012364588442062641307596410950226169463832385024861774884815693362968192137595102812041540254241048993608642668456978418375074994686690048232374624411514450655621860741233236512239921698956834054068281303759863228922478534412343710058322647993451845255680644499472447722977358769828191131056743913748630062548214946023983596901072831534256294399001627715566905115754703437233780680100334756760017208117093874671002277134096707508512810741200010483360396090584709402210442059206805221573103475955094627667960594210195809473517319741901491460801931865592350735405234023018698464861684973919838060124298065129354373660520717810535058499537944102241677011049602481196782087897010497334595238170157169118774843051291569880465236513847858003570738442756296384120105306892155712620282004997229880173975097025815564557786484927614556722274864155019744061057095918251866119050166365958283310914358369442303264789018800724911251279312544882542946739604310628795158743736871672614042066676289765343042070706284010908075623829077856427497730143583772433992853718077943134913891489002801157983394085177669187037094301820888146205449119134153745503737772983622500610110451737007760792412641573329803829946180875179974815575420824777165978481370790247595488955603736174833119389174834932906165432888290357061772145563459830256263322157292431958618943238232897637846478427750389678019870346609520497722370219712488689505846942268023693388782692370772941371419199441857643861048395936539299613715247673547016744894125651913962329812186358622837954115245748319447735135847344928801288295722990492311884641606729193749885872999435372105606867993144149817425024842343215733828827206169549887282576831085387525454845732331491053622234472480068895151161659815846784981761020638401440672562246402085998411451176017305274720705051298252559500207984031502655041876773837338492112576593015837953102871978612966271343057829304237510980530362330503140411362954598752064425565751102855056810361991571156346581616550798735139947019702987674625225413804693891874348635261588264846128757850092224501469775521870208019529557502526949161760111309040419463270344873980631323121839089131429606837248380650177367765340893466412475340749795459271925453055996765215297938989000385411409096311671111744333911321509498861181730547767632736794167651547100889931111063572240596126685420773995842906368004152173313573010997859892398928404965764639290225771836058663938082073465672414497229915902688112631984058160835314393617163703885300362199081359654452931593460183647253425368121512891523548039777448930862994771302084881578441095993286735615461551439796119552542751488695416364714733427912773074826912969305554681415484509269620290441263929209228571179189848832575144187700775899757416123499891242203546039315805117800071489128351361070178610216644599051334364936067831899075467039874170130720275142866169838337979941263652380440279539931724357722598091124451807019334280120348269895292046408658929639429973321978559836295800741532160191599633606856988008147345180478122834466483083256387214098610368442496302663575399449080962051860003418946720251707332098035653196534428652991552041162455430031694100640863399034990227564525361904471988295718609273680237570771284123491521575268969262425535885363076178803978295090784654174655399011537206131485935672598372552750925907705176397345572566010413700466031288701442113469376228821914948813520309635797954471839756227746892373795930313478573436878659841986133301361074102304586971210171606461556898543484939152151002273174411364342551457862115419754860489908973587683680248449010884816867351279585431815019521807342287760225321882595374130550958996571980050802777462230236356316520569363799071933393819654105630479230949494978888860245401411689000601023736318329869725430064675058129720438154923735506330611004166749013646007855563749637150915921277564817650123818549426548931939394928111725232016959355291653818618582068218979798866464007254728165279549401900095823171514361698557516428772488067664983858482746237843788219920269922341980750442127852238059561073019969526642604818187705814355858826255490494827857311004657819929308995943958802312651635013686284453089049936708846386163378500738372530028163602092842570402569916395751456569555355491836438936457609077064451843149076953086618951403405362282324946930357005472616208581905101825696152408847230970645985610233660513679005263351048691848831397532420725103991296925430688018544336751234104449500208234364282214250650663008731158530472929309330751021787182019478414499657512877547376071632378926128856171713137420272488901139523669322903461052627741150798923527202835793754448574654603789037918068658060133269808614698610483790039653237742869815483850156687240534817260709361075184236801341695177278153632743494423957439446432690763720087812697038422003312726494400897555411763274976280804554072465763031079264767922724044614405504115959957937175915787343314197114487390496385123997964858974751658210565300108966824393813672342594329860849300478642267076977836203514704167471013915314991741434939247749878522998565416190872994932957521611821565836740365373201999619461096869016453787092141548859839623217007961299689461397483585969120327842153355140026565637704501492412186640829121811805348885247398819277169562631875697602755658521228416251478255872545024873707436100501211060810227889306465870406557547760929145678098510074083434128692784985253453989286369072325644474547639327027542100417208540167206943818811913729607540279752658392488899045487452258952655399547931571588701659002183763243748873673799917734999181047270779907644124200180064880092666879616494100274869512210312082348050507622265872383034508407283343208460782576443334687788431042507518229596152826444949243179841818218752593795501097962378071266026933781134580869016764192106667308855440087445846624576562676306228512706211397712436590653593795734810447454491303824338029632130218534931484957954287309417826386359947647241128344285221348278690549284283045421249524662035617664167389842441349615252560370141059285177202906144280901744457590985667760407746205999650585286751958891617505159245449616925292444061547965517417671682799886558482398983584668651148497578555227885537998648505583990170590404317730858390010384534239830018027811148682583455484083906078355078613826429896650816756676944982598513977118473951973385482572818626097139064034109662262899159719422802041580785250676769366794652226057149615819336836445756931573240407172509466773321972930732684985682055801828466864839399392027706941762554989873715003541455531096039647339546351022572424950749463698983603207667053532427795765970388547661834258323372806551244908754995138629700459701332944784850747104088507084145400585624154523463308476357054099455212085406365723487084619478759853063795265201528533054588438039570783684190166420125702007986203778200034100516590376416238756523014776826792941309562458630022479258589782415885297833764922387538920407142205558416804550336122693399337439121687617000694794270062579424446863584351807625334049586302679365011485560596263900566112179611803257515154406921446403124655923819928244219264861885869564307852367096496827373680484916997703084676013326127856279156721821515672101602563921362044117613095734654194514601892691793002635617806322922023494023888376490473765438721561248637100688508446784527592035384174817583917425988780099217303897571998931814118845443993924004109039099866086922359187882568876179750057533400104079981593090211538499337422109451847068751877780018742741483437274797073569390397045979066722471465001512861254335709805170025004962326101686285856498815341067936490848754276477500791959652957159291321161740645307764099813475959244164671936554206389054015696414683973082888376169776674644042520740206975000708669046113808456210934162244917408772799650944413825448059738325336393973427121699252217893628914188082478741314777289155191425501205920377412469773976996082433419747220773210839778631768407887050207475439431459487998652471774782618685178256758971339419773143076623182297928283406877842117853507756634886240010707061385440452926727109277994458025274487161743201820723967227135535370209392380499685301140401956293128033367929761540434939647367691197914685230355593197620631073166227763091355141117347067556247533946565267759424656809618553510615052552368143984408244067867126147659027189105951222585452437731119347970992080028091988534117082410238933832912850887955946306258241186781373254776593611387332614452559392586382727252503109575568434817804451167952875231064602532656301316928608352416713667630186875314181454443010144668561028119855897406966725225197305367551582168546218009335450374172108730145740828269149353478508416553996519963702507595213290156443847091079583889696778736430238384246692394960217314774574548617403257468908440707117816847287207093151861151756630804227689279658622746574662297617951027194304808733127546398167218807286209400484693943268823347725343087045167389434933899239949053450937369173054430315381406119541683724854243528932934609034336916434273239791160881198130567300713656889579153064539246242100671321591538662472664880972622215743254430046497209954397769270863092687929058191211560418281226014511974949794458646538529390846600856116007290204771788637491370975992403747514197487489604494027030694755989588710969719043758128328479245461774453312515713110646803131772574062411356696763602166947734573685899670850748959547207855816007584387412255887919310132462733273614915443275076524725386165375038447369203948776828872296501506797253567655232920273680114258395233730784958333694131040413213015136021864634160979900654049692960760168790168726115888866975337038455480805234771539100819482923501002582196784309764230256861105534127099022688932920493247773510777316386375330155160634134529601880468667337653342765566078749424487718076270303435356385359006191858871929644936262916697744816721295104211883132724029455073032516600086233093118408458298142526510609858666836973062573968583714544778435239302570508509688923938885599922739776859140372093022686967971003807750595190673792477585254498367122421716401938539659607220949730194552503248787915833917648874860254473717145494337152431670494805009620715596989913108602079718923505003560958871993158813375681302569554498762998851960000239072544422480991896362670539981430379168704989578613639041661113866418537898763806005761539433520973653874285974656137524787704030229584710833277888185340342986454022508693921020871126589314480680744439333114798155198458081247261718053690020956620313110946230490212125912514492448009028898693483074448897434874020930128801117520574785772312798386020037604054600172643983310443626081344635776034580998377156702267428371799695842558071990291901493337013213795795264647968692010679633670338642652307504315470274205050724242030354345080387892919111914335312111352641084073770621762139874107948118052449444769657765125092768245174157856449521743295373091211424819530203492022441703106697606145878399965811787543639643545518564456538224072979353555548613415292948887422116469892171514861891801607286301315101262881190920473785803787982530949979998481641843504198800884276340374831029602998557855149851247684803959193617597943464294031460066755127941657145513392602881502016574126176449620421530099611116202021557965022360344873002823322964820763543825181299492694692461749143362666101610853972955977931310076730427448648779440078755482422104059928156472196178112400236088658557355054936419294009446293255532670085144619329839929517061256168463268066248218604507254199103121646491668395265166676870329737641282860968103309325149039324729476364600110941291317133398337992756531178676223932159704047735792537587389242284679306434603088211953963950007266145708410700051276076048158670916286775024289804533279458292763377544977486851496034046518250373380917845185900718821504111363623169429259771358480004637207841037680802575238207643486223449468784890586986650448745875627672711357553693701620307138683637625122659259689047386566062954873760467161919673129499905908009955328442524743836114999148724340008133909313055039946506974211620183457508164804322806312515191480605394650495047920524727967745919092524488774761191056561033315649586030664549853150571109664695502828183793831278603466434267579020588111543610864418505371834958133706698626421495572577546253382121712797877608251876941617197777600900420885717300171309028047931478859737329023410562186112889633354246409916948291759745599299531267156549973730448741348173026336309304300729531794517142537242980176551274317457495506106299176837925142878470323411678792773960926642774356534174714796470398666639628901476743802123657590311257472080165832919426975522810920923818179631136898796835383670091405398960819481694389971353573138294993464475409009126588486675155045007775602975115764606362094048356197857319614160808434645677507997935463344767862060680789794199608380124568931878004645698260638440439485140997234822825618022523969073476410844089076900186770556885418865965755911472738168030751918514234866370353761839291766804592385292667072979347203328200602731983184330520240242728036589766263936777685610262880540160863019908602085934492038573391734142186918237492725295891973442243243278307728974404552697145794458957866351714270963765626860946103483929424217745748631773550767202037255502173043464339915143867637832506592273371603577479397169961955588596927871781013139409961110241487946489144882443052332367269066908284292145961339887569083746040377485001101673580933937354904249384313263440765347074017975594454308125158708086385383874826313036835532811161412961049811259574138439428163631339073461340992915776693675138902101661281978463186438420183447015404075459580355743376751791362677552809095224879305664924087823908005160940012227916652414372927921290730618559915963712166146278373437712451449441335313881329171198881422395046954619908668785842231422776293258195562642071641581036033525899827096712698439125418969608812981569979209824140272481505515410704084374511468624403942781918957318257434604962005000916948573653253564977680157451644837476400269425331736922921987023467683113305688525086035645196397961967595844192742011972347092757410837084216211199064399171258195864619618117810908217366464046819299100407689178484898172832361294043840213971871196362307589657680347210400177935153646342077231430170565047494546003071535509451322174437663390538336750971228116755493353305520117757479000314128698609211599691139017531763558844867850537740113234985133298406092698240502254302545668701910774527827538070475604179959708336296865883131822554200697719779400115316460990086250004798202706588003869200367576284314010180703930900682166847012568957226010242539476796433771988249258092676637061471162210319911565385927443267037714263914633746400058649712092489300155932820605359555970360944975034788944558165569841098452265868323741581098699275205970403318944950255999386140536094849779075938069273738792966933551006888815280911585057937922187313497086644731689095620307677244264997696252416063771773931789653492163623917392473558305657645909099567211368990171181011841935526317096107965237794756604484616697132204559282844895060124864459680878003209780799926497127969827256672473788763191617428108707132164564403180315450472280469874069460453533276636100041528802658231428697170129182795799217797063536529739579003665481452389427264784280414069477064808815668028228178409735201284204105484943381975608285809351016210121913867276395494517223162034020674941161849110880699574299719844850367072588299240921170487032004217553701895959356660596930297814419058580673294919641667057450895045131833026690191442770540839610188715826364150712652981514882151856423853571943755892462382024593812137165150138841936412049530518873551680785736101548544179745936211968907164673510798744135805814544301810129897044150888277771140321306039375256288129161065984933078380548252895649436091249467329444636802443441858953789538959510846879518168149362541097633814053929933495071220063735570377732076177257500756946373942372000801904205769683499739960130123747638828969525786988734860832368572566481302679269661989869715055880836674354241538058046576729066634262818573425647142119859450582307523925844784210831234518129651347187273761090154327979389002884287704545901092119205336525223204095940472320929214977453529895545864676118468733413367603093419256527765471115166688188592405325812520127812013193044345035818497314425617184096747413521515299187272670557447442436328060859415214624019064780327595485645308747452401278049697901501791878348115152407017417269171300540295853751674920823382693418350394001442423787660917902086695610345995145251394497579963898808982036601719388224978629437843318147615034700690919203321253573883143178606503255636861339190676933039489336406188425915553856773455411864798926608789100272476455056437761581244287657030182769598784255305998913474214398390841754889236081401511794787405177634372918709701603825017336448895763012126343940480561469894875540898950840190740856353700026007202512309618245607493907303941526663983005194268700164356558045348097079927118309433287422018814295255990170169530774982537347798267640833163529907646570720513792153401083769885149488891004942938116690483618739468361549351690320647142881485954863810124447558112483972883653879993855614830996082768854826248661101350579553272698241129252899053102673134641656451598145798111418151086355045324977131770751962014150563670901388029615853221759428739513431171502690045202147868309858485781708613115621245761658447885042040780278963159386568247391164647039663070387939020392173530322296716556292066645903389234813807570051228354811587750368768656125462410190383664646270374181908850202718876575460860094289369762112761057475748363069562711099276778835072719702265700761327517184760199523341431684659531782219927665955394080977455392951047090619304029003739458893104642376445205962641482516288702410876707035373404978723873360654184328944020327455521468206378726533071338917684041805439327553140055843398998276840937565374907108573902705630707719822044166365960986722398429166882875086878643366803924766487189296292297574153520835463113339348762960694177011094820287795389995834132305188547421766070508476837863333320497854615790318128678769435200839311467836854213232035891086604094057116867718120232865180558307064883868015770041270376173566846419189301814146506268925118764540441280960752109494819614492305072643016322880884178264830187784226501965189260594497728300854924120090881780431203435103525775787658509798410206263808526434012058859774019239445138731410871605387674949223665001497932434363643507863344690454709123334338534315683890430636703807434855120928466341923743767003971884113711321406973456344779828563265243408991119363889593952654498291425549805165061149609217870959089076559336061155096022066941519137610092367108725341505871968720726493248412537144486680615401987194856670519626245417016889917207003478769113072619215359828201329922008168762382535753338999711298700233844827595129293115512266714051187774359588688897336218355649178087122814456153283958190100014932728363942235734256775260680050707279102285239883167759075971358371837181557892352150760000312310058707014706830373788805626215997236882634646092118117744808401263700852952851351897265453849698750799172413246309938138814373343121108005278025898569200794648697241591046377437769293909308261485815614794438292034939231841703323634115918215679386747930669092946049438749119017490022173351116297900569382941855769215521437952217976514600442349989789160063489877675577785481639574403178661955981532318030543039056323009352676523655421216331298810051610615979661065182555033245993240118058716810740936028729749108847371607155136017414451253157953311330713956263887911489994956372511041563314973033783672657118224581402242452368369246459226263277784796699066150029177657469230329922412744687349920823576578548338017820435861440148983981350498394909857559218569095671777904227935287685681570544720684549308656341545685296492352832310112189560735801317061217870115512788283705082771531209614202410010608249646614475539053949210342209649036031428991302739342331071748374752786424255358211176829653779366583800792289632968516838382291766221744906354273204882425892946415892967666477987103632857331792506002643121493707733779207655104512871187018001297942995531450418566919133090624165305669502127141500645040753048556409885747465003288907373870110215965913908884198424314087145464685643439516997991253109498117313930247726064278113811153342543297365353556377740417198431016752332047292416367586240221842904990562378207402651511731953525339880725538912849403784631609735018733651045757841475816734171201868881874156698773289410166402941180654612083132467828850711524125086047146117995652071092511938226711462616411994806766819286993429218497030548781827113305793374282610524776397401804819637211380498157146025245935832405855883466552450004493387383150771604824885914890954669942274424722324878087157800800710951232880114617329913896663682419044267361063642465003832582546634554414091456502539620529423263924343594811370693411429455217847193391423244012244899719652240027381778245592762765499371190023163456309221267740913440650521145520198854629940781880092783470295690742445343339367030283313101059630715904951568199333827305022924032537311527860293329972605662659628990421646766596243052114212538189559217807324127211901760451119593096599732205824977469011345851317757797381816236532688849013242130928840870895621293896683816852577773094234497963522065090411792392718458264527710973728022948288141840573984127254582814186346356009730725175622343810221749587107508797620864290049233257263001195479660942235242884545460643755868793059196647006269206035423553740042248906895539701117240050781206187982843798787919822144549723677553893481978617773517400548365229409689114899005775729541401299994794719116039562632282105141196941008033548102364340877177498652267248919213343679326518132956762611993402796463180268164107988452465403302666768965535577400007655459853559612306387471435110318161254535411945479420412475743757098632748746146408034299863260575301537495630736331016427637328440310661607406403734039748273634615616019859944720477633252720508146536697537232808145877190428271278014284864043202935275017147544948329609948984304640738867067883445524082800411607500356939741156919370444595851484961253457125766727353025963795097588077156082063898724651422125995289035549132012421334771716230987722475641215702339212320428336176821272736782772363107893962335421955320486227903323184208129871761105937189259581644140108183857852817536680299436312597780206914128520921208518557694658093802905660930830751131540280025909173143824855417253886501209605856514844660494906525994692989593552574463519014362976575737971719916561486078454712360768044121750417009387911463595616659104498895237986183907301440722083434158603177449890833520102113281604207521338613852855126095602717212438965654132036915792574120449402547256264618673533529507125365942395212354815362342590764713801238792465712236031043486540629240715727584487993696047573262522725405226078584295327971230123845377577396874854074096869738635144310143935045950500653961623792213620270595976850383080838768620479998842082194747337437298657794057938978510021908654981624514824537189836976871776712736597825646140888631451648394411747308324176938467957575738671158101981602482784352800766995399115187879367778044864487722236014672505339345239516133712802353237256733910275777756566107489668285619417040849842358969304704633926735216967591489743605906536231632599687687897756462604236922018795257483040311008364430638918298135988620620114387053113906291292916015790415243240228608680765649845520155624581581387817409166921350388559865592020710405284479304601951583685016514335220204556459805234629899039761353546144350157419448050783992000665993995164936482648112659157343277427307467305070211650336985030090574302813724553721514128607557149041304721787387560022585760038495028577344463367045900965038145349410171144101026970423365501063459713488917433983269016336495854334962603213247422749625229945634882945705535668350526623801585969278732615253701964320582547327576981767159986550637429637876358645351551197088889969317705395981984174446187236105498190360377011520041068430031057606103016946674105961888789644202489240141818815112963970061381003863704126530655752153852794879645135581616479034812457164906296008991307359480078941088007855667414832620866558657130700082820546677446953011791839797042626924871789699236424563930558593233930210173872303209320422249127094198680502250456760977031942456810486248672974876528418448506813961029771961365061108188340898769642100240917928631715396877568431225553111041082550271656018715795562310080699084327487997957777720343836422180604489578918942132698104358093099383778789284636370345179420737121238896697646768183654004715368432869969303393768700099007305456516558949070650620352420014591578452570682296472756125607079683983284355592949753283245030401361836486125348259645681108458067129802432239231753156988773756408417448922852641274790037482331822968483790741907874950570301054755950598190374671910219341351595446632290478182794510280528937299367203532460357961379613021896186112268827084660607883046538162366772749764884527981607985029920158475372584722286321041805445252327012640309112080881651714299030422745928679125133902325512039436958726183214155525587854356113921374739852563711588480159041243190185721046248107509655862028022528040784339519738585875706114139791531621150608984047569099929913196419812844281501171269085725309674906743113700896239865194213909944211939615057194685774692715891340659247128621623187132674976797774344587881218127988084262086473402979432093444778131789042915719311419539219364334843365610838649996681926253235621727338238111982133012606353760668907286822409987292348216392531738032460595705808727276753342160201237922809677019572738670135948064386252186665072207339022414035346471245681763727918845939477931855042962825106458583136737139536529560749772887872412660390975536580953717039973436612536119605959638497553133458812634503980857595380504007871348783922793541242829017100589397771296319915474576554236466371917605223402853587012011196243978290697862243406892921775825107494311324065427283894190288230397040457366894630110071376507223036150272526197612574356328226542265185865778984768219004851917419472258868366144442529496585130549987100041302922825772243568624264558947570709752125655709042733536164795258255493247806439894433057649354220362863973720901823075140425325681677225966375464246141787389727113429250462452389872084803965604749421729955739119087997238877277341312278172116276252927411970855975403145072069144076973632609162560190225423104014027286597003879490911341525945122198685298178502285926061565499473944347428430748307178227307829556242256458607742079510349198499232819022274288604894896887717620770877663244781190954250553898827350625467829885066154279338195664270539464559515584105301911014550814682926503106379282437667207102875384544855601479337145697943582495168531851702472580601769801312904255190475323524803391682333505197586852663673967310022848397245221927788886382233008592405216062499846758569701888753635856074949954897196786666505017883412528228548613560693679488471854511310051981462198888247791221327731259137992424330634223950606478154833931359871639799106977969638040981120856697474221842687047784162061926700625629106071798604603867018369171000993580163774340346307856292850686188228186763628267611505757074700178968027274270022579187691418459659613860625277872423559249420222358381373036963287752930657083367022603720444897579780904195098056057150178171111888936460016816365290870456885547391895208108682596537785391446548891434647553415798700873053443383344663192968775812231444342356869906341667763240696225226411408725284141626139775422784689549362212739201040998437866871768141782141515346182335691778875926889472770454340699501650932650726994274861105077559200149548750757431866564484571482871609073170257648606619079701902586226703992931561615160716839610408106829827077990694798841932887916646057074449211037878453391529182678553098719130949322782403116611454393738072171673669709054981704952033938893082531249941992626710779118972454604428201822836793730226162526378049131702219448363191097060991625914536845728174959528026792175968482913184129554822426047923312784337819005908456605633913667004742255336074877335816225211774804463863912996567403293508926056082561777296205024342697620412639089078484195430641229930422703503608492123605718054583972369191373634999981898663627228608737872358876758912847483234837331076463209345684398129112956844969914125024124926851260667813831593213311026534686192274216478657620377191663523987220679490996247198927693132825911647637958638873769166389284580509300686536588780326057222936763095437104644030349632118397612556449181999904989047859968681319107283601083424131964276598640379589331971592687893523557402240267312813176632985150851481278678059056302109086629148780631033629156343756380323167672445993313227365513918754978008631706704387881306800927888581924962848355674938813269674983390282258841610499985204074070292084826986722337147173419141109905136155457656224197311884971547664101500997956684438587220352402157264879110847011562758336864183915321849332347499061136725500836273475597660839056038001097158710542620897697682701681499343547613564806264446600086993835895553076646058805269080055508371497857431865586558905907515825912924009247253963485708820487916848840136262601856055984838385982743712019475098061277292525241708879806899099609575491500444229072110548730954213895267750709833041773306219087454161719001134742754107172524171504171830195830185792080515312399075509266650050185442106926373335097666147822178906744049336050634879485744126675242859130368311904538166614698236790963509425040465066690296788330365487391589726890776133211729440848203393105763730693168312721420982239942366956530453104082604574103522571354396759443913928428014940680181887788139622850912805699953424640981141382966939856682251593390198436603014753478418510297209330128917658896777483230447340326299866470866371748649015673800412002731368524650548230402687601311256616153907214127176464483701667839291356875949475249003987001078956343906472866885601658927043249208134086451174040454230068235206272801844894743199060809461754365408343960371777442415827845511574411164760626421754819371768014205712183594956243678825609470962771427082834896581385355293940052076032311728904326764778058474329966960903538239359582342036646769613384866510113325506911064905275129803019431861907508385903399255225701145017970975567282982470149094647228867788529246627891294330255379881178159217973539833885703413776045572820019957877921458203430560633711568114830841796217914889352703769535133539505459122787170817754185535899996277842096569071971384298840300875630638950526840071092835238418468778282973400596343001566803306213044131194553976698056552485668559638013342046917597051418545841412278244661828883202275398719825244113256131167944828163854466168724736932153555129215782141335256208829995338966139093240884498939404104862113741936440266392324501890701642922832229550240725383249130223617395925438108823648190775227807189394249275781000292376917960703643786750328395797537887535386215675057430726494160861763038675004685105571500032277689039949393969778532580946414930653728547462936888792690245015539046594393740559942402735224262491412312734858034316168010784094597891548376445763671842381032260343130926120173214371189762218329712311402109255203878203281310636065180588192239187168630686954569509943904426646150645473006837488741183705180268648070892707478101880901427928881912345256239892696533157716127588975654463763214709972502820935139425692188444506269412622300566886113995879879743382110831687705117462813039391437201355665917953506312290568492720660355200345929558465507433503684544544059681914809281676736353609025323705498044821315871355359819411046585988012938179577400344329346448092287207000322959457311591777388879393580162821517034763594750652211744310517875443987743702676957954556680120791886232103267646683140610637633658571988490876495909566799739187868844353453582380916540555417292329314375212153262838212006315919828834956689906657618109279250793913065696598743220624757891639106209239924617748160962720799779851195137189277236581513762708630291627610349208407267341879473662030368170377773967281348659126611034614947240770506652773833864366538126277694149782086258748027095952813837678718079187919273877125130491829474987362499765381497721833215344081537815352471745529619871161359899498102487987635416073780678383503270511110630631467623912528111843630658699152582387146867020062645291942571314414062741657358293170086788527310243066038225745876268074230690620473843383163983369216240791101114665292065386643208234902481218620154784058192622635544460562937075915054239432384388848984850925227017177811095315901748542314377414810231451335353203657068339227789206626759383152153591348545894212404341945117480690389438677991969465736191423692992506602103556985264288118955730438207982773201627959707483304427380629456717308034265498358816864645620767808816945083477223041908622025104558415786981675948219169840905008599924573145961192185717851189536787306443214264679818866243900313969674560731137724829609766754785333648986948589010426943314145900643069183758453406597300264697516701172639603201232034798737991904441696359512364977398907801292169053199919912854206488705542328199657638533547369246389611511455436968334840920481880995176225877436352173985631356563484828907096156584955547212613149984485408575235413481103347451384502141525459376111833531452301117886865897682397755673708557369909428261185008938421657793615969156741579588861726697343673018131515948237687775194697816697552954770665104577189429680847236046851059433668040656764091614107537497612218747273656988041951268626895030322418585514167982016335802442624516381685925884830884819298557624269707824994837972001184631941866782646235595893099554947495802556272286315399115435750873979678404554195834611468134589740035710518378361667776164753147568048534890745613715806799723536396643306556757325490244383868652445057402363616542954119261856194676612004543329261080105352817453845156328970300344049861283793359343643614857104346359707491145241937833939780943413617340478216904216115822179753431144574964380129109850544303760797433705415529053751135619449347347903309833868332677382188521473879050591939385152572645422316130211480242430222861575222234562051581842681559134711290553328131932374041076241641721992616078928455744210512940532777483025783233949316793212040864027345442291927786663042504000969375097415704617299062523001410708371733756942477138200585774638032300279920897685970977908602065466661409581349681585387855859348719928055507197818081998267146042080903932701346128804632860120885280413679353387449841317033515120592706635190790083117615765075945865487045494323759770187413772324116266859746402501148883149378118790302963929205474170047171747615252267231863099704244565494322079257060784420429163208812286321504808445397141293656414240365089258021740828238155523301116858073392913577358300359775876454465486488571139124361512102241009474659956234630133079007745963012025737819714356448349673256472126857739303901480389283702786545854666730049632812724365074643393475794766270247368298618878447410647130323436840884116788048943594949666884386975726700741014606351356369014218794848032928162765913436077555473246569512270524348147482949671133722325624492389874095945788507745473250456728013725618268682449793385074283622688949871149748624966099545073801725161042224665748138795548769608246831617223313488829982567660051645540205444459185031247658300402448553538150142079146758579057025039176552348388702475204000676161459962549803073613365596421283392531203654956044331084940066727393471301536710631705671331431050581014664329413929295715252010700419127847667425661987380171180405690508540777666137040182971058341401379587687112007265375713552906078483691275202454507785402206910624512349076562350498432805352631180149541609314963743771273875293195513444802092963701318514396712505952269972096152733267686303289593440566630167057203788052214472732933960440564724301297960305869953760388743521079938535726966246644664225509670001818889311519208316592641905273749973726544831797379285510923406109125324742594995960584096125967041810273494977295393101493144014096921108623219331380262671530669145291164453625273796658055661037953774853840196273766201826063109541009807210811176172019768771058238442789492181163539186125710230672240516327472294506028588239608066488543547413539398222685382206467477277735125398643737311435503925333438875785078038091558488718014464427124517510618795261266572319032335447220187310359470215324997246867949309191944310483322491356160857492560025592015734109094916210582382606264326379793740803509790169271169835798737394016835778740487368628429135933416416163241135643497923537312027742141852101611718384002596116184463984312458284823615940857742752291888263887751082271253290963778913686925087119209023362706993227434247314363915323392297459735692376260003017452416741945917069634415352460990906945626575164717682679693814904526352939213247340409975946562573285274987753262863654826094664752071032836921627460201916501881315297702924958372007034444631575863771178604772211990746849275726577083650236566608231402606520684312213948641772403456889771682606305400680343965113287563110888486462625784168681218234512812136866489377657418224867304165032073057623231623653830028623542242145387061407714597185000857323813557390589458431082420281425854289411327240570933826773248979148607316556214706418134920393202381128250201723764000521503784261160255944049315890840161183986008890227644286454772554166769371438843031060068981651923202411814248044954628514162569657415556156616314756532478987902709362489294413381630006081318441325660952600311481923627836611283960240738685259119549378779320425446828211304756435937758405626428151525263909714042079812072454908215627143946324463047199712489672071263735588527987006694361104972122487396765829022424444807127963809884412219370514182115378508219774609254468424990934223987966897115037481964035719831627259812369489096833716539054506847843091306576852830960082607131682542439830869282452674300127220506499405336818606424368353227155197753864936893059637647296108853077952114977687496219216499165407180617479179348662597676033885555013678777258847361355756168449443293880497986925479142088736655811759232895343684678428856165315869927225852034439231026791046902351784743518312302254581386686681448626683398259882861842413460267668526145219906572883089804586949907202515928005103931335322956958224613799271152796117532350395142157416577643784404264103008122140299833753660166840887720542387205480352493243546824667189686503952454982385528133536351137912803062592729309469569494432624408450744047437215375950304129429724832677189590374036935152123399738883266947120345923392082977842628388726090870568419784053270285394359209868182436244369511351819081392567075459700171039039023948040485284827788189788968534126081611435591209968969978468345420367296932513623991074479852878745297594247071011672088498786893346942812112399611590485610598345876384698404473587664605479604552146820022941461079544592608782686045961751388150884682890617280599814475884364837121463200354879830080728616271866159430385295548920526049495276327137855046679945259171587364628592077235572698582601363005673894553073819061126003228117371316628462917938330376736975750926981062116172960044944206809346085112892936328692397017987749557697437745641643255140942752990244466737901087534523843086418958144155542773310247749215656190515710828383223519725471994429478136096582377731897420388228047515716344668773965058801780060914790631018153754843438847191707395360590537615892336065329183852448153744938613534870153841357167943047163909177033862772830404810004562392619221553055848756358373216351768526514641129537937081394105117786981393899987048415311524928580525457462570852260227693523743482733495178015785617336870994463099419982479361444538330087451058300042768016173416202565785711755981140416930511155280110430112186020469199046189239051171766768869670247143603473258603702513443643247864732448206712574016488789136333632121774343803395182039425543440672300956771238231579426561462859575895847643162463468301015653435270610308953741907163461434903138979284462442508263307715387788729453649123885568484863837589690214293600287630400929037162349741236905385803965485843750989667764013606780069718032906806338685455884570766587785367569830100409222037081151371261228829126528231240744137417817280309619740440637739992666274802932251316911458539038720558053215496925155563657246047363294654849750546678690105660212836873834793514862218216106313436647743254422169847737559478838366540157517260043404246997679216271805699455749950292991036206282643036124348421009947611672774872344461574323377937684624011185379582027237360257236267762011767635994419376527629884568244924155389536135445095160066813424407203629693170919007530999651650000172553500839801342864223411431403294886209685280749145414398608995938394479311677920337254334858518709812601893135648899724371593832172463715338304497843111418730570683598982855906218618608964249159157870866900543186126699965772711537122681459778670677364605611263342740175114893850672715268978513111361293628338091329034603118521264163257592128713144080322584754989913170782713190366427730259591944128378929223378487829595317927957500477128316536940020375957000527233847037855871503111947550132258139240542190097263455014354084173519201472460810933601544870559374305773980941260661683675826227732670006904235914987969124746860258112739964294193537580017206775188563351580988848602131828785540086099118582562783856722313428094748695622343044151145329478275857248783682439855983272215478967085730867959140217606280080796188625799785235264526853534392710671063870543559383119261492342880739651940796275630601405407746191872174303181536105214149339866643840168090253123100950410830976192454132024769633173474064995155826799143491259812141208785670644172634001322395440727139251800283648697669813790583891934056345751396818351936369110409326050787856133319713425341145804588696451920317492274504185221435454073851863616538926142930254047844676283713203629825001438695681962563049319066045039625135736439028396120203956429771728136625056452002313544985219893186876905326943586594067842838967570987270233428345877331870292365614984345955731582094748044671665910312096737349679518860474740899229549538084464382242495088885753005125852416687872431672968181539044778279136363606669466653599619292265057429245353814896925956154712072228974625862738177427297840119399546889925675830803919411076707555093602062910516871892823105033055760876524005591674122696855722333414413275661529561265719188436304125050481539058088019443537985175515681881138033406502877914661890890075841245536590749658460211637995437073708139779547467063418929754116603638797750047368428644863912580202643211133565269607481122787206332682787871751684247507971750027968894350870929824882197831439170558559960802681249036333433583380037908475711412070051495807207226719280492523726601891403501535173889065025600452462032421495097031925486483460494277610611305086097300196616949146295371803272346639920223063429403005025588081838398278099365087624875096176153212596724411588251876027105381282144229243334673594136159939911780102068927144871712122204634177933025693091190690880237014129319759566973271957826085452515209371362659450219696253798868916610153819148285688308549263097775002484664735992507437278036259411440488984724960810538824391211056143120832951121110029301501197504085034782588865679367400188868559884552185452178042097633209339809811273301577018114866229077718328486278127903375978692119561699909840109753195724574549723209911742131485421044663064055110975234400395430082199046741746261911674622839621800158426092756259513080837725587558159032101920894796766555587989878635300350919416575658512933490759675719263152688629058676396242067651027395344011769428906479587242801892267479423850937412231198129536180984037886778145284935489355143135958075200526465611805776794818799035641928189244441664405423130502072714289095703914632754458805253769374172215875056940732521020380465144695707947760690171272330938623733706939979132821958962935271139836311408637877984904492163401975991947438004871367167910375088609606735269695407915271038933980242829015974609551058946419459429739111665912874828280719704257560460445064086200881079166883231604022960825302594449649661118578429386556397774864171698292554208438632736301661475188726665954261248437921531799177881895212688576366797086302238543953191432704378824231470732312740545233146821372470634457299281613145489193869960926450554530599198789095008138464412128160658138860182332455490854933852791416560284324167347496000922268619338576927114298680449452060894644871892263014094532874756587969986921681292722706716037911831197055922835965285957709193364703885883050372573859381760296881642031939672582486870422203142283881617564998195788648893331087335668680609390322656038591665790303956283611711426532731064299495973363508505994355327113672046011636330857091966565851869341504041490965406230168097520974008543323730083165072363050017774951997311443073059131702763235289824370284069542953357873705763194789456907621102451669348715185926595856879805612544871336085272542316277466981755750898226693234461763263284644213984001289796727848219272011533109079766991961267582311495732402028442941357172481518565379602609268568364703483657458906688040446990866629132515852820026981586099634729880217162069556005989582381122224036847886445548601396650831150736130970158415495773017721221915605986239742187085603114296994911549237414243350811935655490272449533748568712625558426523533169775937175619991386186778493473565713819173472899549264839793605215138549121256021967987633394603415233696928048927377388774045031295976432185670751894295344242180615590668964100349224015589082319682201658790761152992525549015398603420018860016289505794398362877249603741811304093600525335780165790319622214675572635634110527778706836302062484344491190269201290992922002084027454743922482922795335913637783924787973302495653188261282126282648334408388006272683694361141786400983133733282036669183520947998577876008124308216315898740224470220674715135198267251648919458079893486064984501738391139454280859782484916899200055645644056374015104012141655043383366940747279523259155562745793899102846864781808359608738805992814219487719705873458769238574349167388818576756978138922213136392407571014184203686959972472754851453505179928326072948727049046006381937584170770448771964288513438125946975177323448444877960178693944923146563418842184177556892155786129848640258800305378329892867241079888539959238389006187253585164671397252100195656853855191011504703526287181787231391293694081558405878472009885161816644957395459994498987636355671555243382572051612813499923130343042939376803156087177123317022016873914832250054806675208186966314118703641969784472001979993839085388505360326802598631846695252692778687471631948527918025865091531496192755674285567497207132530317719927692100402181388822592094127145457131833562626938852372211397974565729115719975497890791953673889830049332907724939445114326020597492163490830926252056695438907685223515871325515113143541561134637143019057760257414217254909347756386904215983488577859337396567290065516226999949870116348592365808956737357035204560808736578225730327969645355176520583282971388647129225853184046144420780946020978813331580071398732588753989705066928431149581614122870431664645365098938583681800983093968447518750226883027294061768958811150320916456762430661400766222912460334748654470502021363543596525063748788774863797556407472339536600625379124575549943970764447539046335921865847911416964781478632954472358790028252605154054528119999164166027555244560682519510083305915534362638124187178668218947088110982080146388872284430538371849393729647402932325401829121198005919933653286327113955562626538882288166733435482917477929680664137281100601133870084621926091000098730737390258670205271015076082718619728244771263967772711813444247084333140539911695350308088196709263178101661549959042303116639807573916838118261546613440317278827275017234879122359595649621597401657470109769800541605612871680876905664184226060663707209401985145115794008018370303013208485987919827604792758020144868791649228773009190274940184707944908167833484042247447694074678145712187242776198267402150337278261228308518856886835925833106937584736400708398361674536697575279639992699165705308476885201086532019316849179225129243150684105635984144067335560234049666253615885531967763508545728451491535597561826796500792340083319990492867978938725440028885547950142528078449073127147144765898898762746584672422094012373499439691910913426367343747010207932046796186499963878999697167182248234975895874623025462150876209722307177997891760260271710671287080089733206630164804750338008866490205115950571244557744114883530259051766763116188499891683615005309488148248277512974847037999665237887311365890862278961003292745193501737906116734174404122431193406606628782989553002832768676261009560789469023156939537283596086805094950217079540447049132670433954908948749210271136070433545725341007216282617802565667386551093572418263941656341188836063045926717738617586512480850635917755897594948708206612008542491357350578382078750544960921893908559547360336049092293439150651799722211787832184036110260403081841845720812946883425293235489166720875448562261402813077720614276051242691516181817491989646696856166768371707822863455036711085350409752267364093058105489268373667660061679039138060356197167080710593430650433043797289061420042033536389329018200659596086209817465516817219149262578284126615390981621910171009652360602058392272042526684253156583314606901566882323284825746825103159652129599986771880465020125540886186917698204912630357894173448328886998193854011438874508664559855913023789343770196681247585574925705791244788661548386498160448625436427305810926349255521155275183963742579677547879898572233903962868602518289782673094141953336311925810054064943740662430019464868117771738575888072326342879385634293686020175320559031091694254814295126216162305876896550092641446551444993536646630670357262497150592533238656711913399444622537701524862655211018735727926846526107929906282771563421150447844413595836763551132846644874284080917335179650332265202861525502306872503480326594205725322182345710715712859980779419482502863427099822141175636028060918164946259328148862507186817694874859505048458081318120499944211466982419816550960975779904578620674912571872232614690163354907467839605934458680515797717144460143870455688373156493994032225579309290985863163016158035002725181322398877127019575071353310217841941336647171565247918986993233283873837241056098197047867365093683393163778944057021435395994867390097633729690992078217063176555619915826225642638697445506183772272259217250762414355999858720593610798508742030687329398497291053833646097605149791931205570841282130686850909487204896021227276309446731138207819946102952079601734157799936722874289529523087273716272073554227286044576026084274168725450664184205386763156590540842919654169773347517785385548758971431985792210589317962893930042827522226439855323278135007704480531539998399994963725622121981275618628836589031907208951852940783044672666690406862711903614848880115255655070838377286677030920014592734785281981759294428227702583249109370463329612626117024191220822008599148319398215575043344891389114324120845941101314215414299609241492443065938238445077714828496620928298449066925541795022360472690067633594624260885941427828134924437229153987551930700242719711042555473360416211668756676723420344749548376505242302121313515569713272490590076518719521533780384468458132910229356188340469191546983599539841350847303702973340098868597329484282511019255806175477420860245398726588763480732713352547835160904152097976318504907160475038294358861532812077842006550107007261867969309678846609749751473690082228305748354277232593213917574987298530336863543265495299878757928005437986876097145676831240760007164225165673480150267888062843486081709791446118797091042875134942142111909480943586363874368667225439033963266086480424542005020872792900744565743446292753589844201838663858665261913452347194907845793686954988969107644040243065316617487212977325376808013512344487096526504967460337900226957465925878792018678038046590787196623481468806693549968476004176122256258807806501938246005835203356074319958199107021224038119525847598546928699219438842729265396774275076241287962991040372890320252937117128615540796463970568762872146488873314035932924193011703359316158542878105357477172262019658411446415661340294868735935739306874770213586727589914533970133410875329797034935726455896830075642516698035804640515538943943628060552427156454030551704906998263728981700126779833170574447410698480455137832410399284256897140576221657199640056373909559709278884007288104892190511583706400959001249419970672027563624852674921641892976050979726707432249755369871038156755857439141856493739864915540677399206475636419108627670936929063225358848439880747459113739815329956954245275637069195357200797849189007154283646668815677668758012283070652473651911764415936138676495307556559219817832784967176402917825507090545389927654629516427491352836092312089954217501970461951577161171838565672458928865145083743064127746591129968636668008587228219135010116133665866195174991979456158394069600907479887019840098369969456189314281207779503797000508669277610534618949288869231046538926426892271055065233732969434224418911347479890425228571693869371242572172686402425201617711007274241581799431295797355942799713104728666935969848440671354048184424208414335945455860721612906218357698897705298384093219706813262200284602542682169038170485451587644183563038559767154480285045887727905849777693012600360005620805509595851333575888632208877709058804287143443369718346363523437503220978076226937339165588540472588302140149799856331106497188659558144379477525723136725719662841305756910091109806163566058894975249382112925499306889903879441450764115917106685691591251639586767976690358987177469542357839453690214499472406939744619805372529129340484239209867700818787133604323775259353910318343051885891074774937652444545371584758630034183912355006435628003451649663147050217105114520255716924263256354475894572327919545065117333072362148914348140020682778602579798233685768941973905398323553588950901998411863104442285403177504881697477266257649420568978179611066368675651234191428134818885003003498557966941227466361627420680220749415475859426671413865471517456771494097781040247717801044220865190153188496321345381465789000265773384811481655210509265061265905937917273692804135606081920321643476839141970686846431398589157866860494120922079814761735075303446423085618753538894842542509455227202567681949040217284161171561238929237191895808191908007297277594855289988755192087070489556461068292740562658405981558434274152597792208473018602137673954254557043970782570079742291643448651860299308154995019018017163269755137017263384693689118936653157587186625478930891172752352173506898835972315913192696014667794557193031074966544189624142187535656054720332249739946121322737835874324999704300259478428109572163290923916191108626987640076589116964029497999701012867943549766700168264745145687082387855319341667374684656540696761154093392869200470388838788245871298305099267323305559471605214219739832711924610524322007114152511051715938116025566426201103722984615755960957106252326584734513971126463883843396896413544820266600388087580032848388156288407350498473201328110277075786032974911891524389639078968863533201531057687959790347746453594077098068019443121457092168833015880951167773274634847180523224318369813101301859675033462051891899017124505234369986020460997494105936100662774788962562084323634818823990051949664010278974828694491482307037279936490911524733243018656340637128022340861735973743211551417013049580770059532923614952988111805869912812388912942984523518737025459323830142274633474014932925406272363284246824519098450919337285996627850623055357350713655748915327950193612836355246799252060504106078640947292626573769544920172368910494572807251907618675482946718758311862953501077110310565858241246876889872954089389294508869021069405717917088556634985780816187129921802269092024540792870587695174462892034248367079217918460095110724645177001264172132428279118519861007086030369019737731612978441807313360682971913383717764159669983613395795992424686879226506097918805558663166352071005867432586464678957134694060005879327038717305445806827688998267201667914997678426923247784515001483257961574370177877661073388211114553079080820754743111694685174927942139887409953093711632896097963898415361567821067726451172064142808528897352714037127191473453578206011416480677772965013344829176667733938050573384093500357837248216680914211230708398409304929279840658403836676596954128155054637126095254900826385827062689774873411462191078470830467903820090395052515895981178468660625555479675824544248712291269254290651755117070287515280948584777620113006532725177341537498513649477685533207966871823002073366007486994136725911934890090551403363438319393988252843926566710073911300516893717203966767803176953350596527303794715634566901709128921729031882478858526774665796869096141691606019140349650564612490770225953285572324833561480000533227206957659155759413745366352916351725127324133749573675391510003894626653733247717701485547500738122833361766984922405971999703634347843167077654383905621778270232215243190763410640528556363187039311363475201569685190244279748013634831691994165092054694112135603444109021422579974740465886974785756106600039888533403530350768548069062272515930641982320577084582493745022488235926617911858678928368188956326051149760906249170488835638212924772656447938106050377446660068897698330707018631332590730970284152692618181334225126060440386436500047326960978240419705852052139392726346658066310862538652833729400649960056444603938215767527841596253357971069599446331528934224571477376883220936263431090145467225104315340097945295786355263204684363532158647997166104541439245444949040863137050794615578817603331872835353152732158815562287703821607593149397238399522649806666902187963656828131583978607169690517271500987097260483091139872048829068320902300770074053718453548507962688705072660600402971338854363945796345708180660617412519986063795534958091853432583976423104149806443480864135517604748700075384618010074428404125457631402098999657590206892681099339492600738168131897812027736261330214290976475415587829542661532772925890492821050619956972556735146398705090339376758797991173344359314630807368948479703878745900843558045078459655222111732191594407063061928544416931132828806488112073780504212637900883487009205603760190898755427528788729514714832748150277781984794884463268833774907426888152634787060004024358384981987308164257125027115492402693659622635824564591517981757771245676090794313320809766355200246576698215151364937132224800307142313693729427244588648259289513615670798759710650979790619066887288311813767789912635754469719096001907114114968829692721167643804004256374353998616576860379043000384188389773064938139817712843285266699827582557139875937453007734117569845734578628625107445463286314231526125820749282030394661125740241395961821559323766994165660206816214034022865941429955964365645697281610718055622238902837901184803977061545292297607522981775236812717435406441504518334943861379107193626719641836815878525296187199247728953843052272771136941924575792222105819623459327372771554238710575070858160703443728162204279342510618167425718286034390172548013187417289130061759426084344340104883553601832198935355096577241765443935048690529433277978952420790739277194643867832223397751998515921805162661417689118402450576021701664072772712328041889517994288029625163103421342408916603687506413545884762689489836155788796983885001225617307445992551470459677798434293971429911778016279528869548829547271701212298234613508266065892429287493172117239346873980893477892898949289894578005321864261123440088118561623767127437666559609524747957344214120989708086463340873018874656078591200777264400562842108994111660460072520578456069893177820807816483145015826342348041266256371384731010024028714937027182183944918480878167424073331912634809539577896154228261262308768601104563579934374745388277415921621815474221555840252389143437276558973193368180191956994739967099321863633302223171184859571814067182455383560135708573541317269032110808413277123570236435699488419761517602336225765753900643815943001670141665252151166162108477130884180276344380488400480434785138570316029522053329075416563864392471072079961607402477199725049079362228389998700549917604358300266433441321843197391357156458889712194128601814235174618158547858336038942332729786406604247721769910125045454497825776291462265420336147561674077855580755787325201396321507595640464784979081548850870673187996817845635806486056277611305637648217647086643927456821937510746744376940101205467981415143020208203126432902848472003223382236331263770456458700045106115568072172283622109346786810587199139711842835425448395719490414971896117144317698063716641069554749359129102621773937918706992211550763241282768789187788077963162239664599343673113051697758519699305825635139838517126063304282333307372630502210931549931792258664203275508484835152035041800500898004189525970298909424145450433685527942988189153345360365728353934352832336443646655253017299308247305124275071735770703986168735211986578286840474783321702363763934380828241407600867831895423952133190623373204022570136124867438351383399784308780623627679301800154823526939990420558188545101914802871572150672971289535302311621543773234690913948161929633976258899142871250379480267754139237935558703662461218842201881215493467133342644147489803647839740220670319703803171043143052476805935015411291336484121764842826924823222977193350854998091879066511281679253465556389300280013613115862108515234216393003137234714595320592875269024221487576932685673351008003958915603250160584717243832838048513361113322931550904751826041955916867272952925686334188974465965675213720057813881687784530339727620403080742869761633199080815582169922996409521879445281520412921034455624542122426899108988007958541761242313617385003359413642999486924803921922767388116581262003265189517690234765606897651451721926627438625384999673570889447645853374728370368986389604365814406833563413655554425086841876021690658625033490059031848322737600510801834475355014335742888387198995717493741846045339637338968621988876994684581932496288479450544596264521488106861078961689979389569233943772126025309844119846639320342718633278758865966269750076304594258926976545421262451364646113078556057152681794066862902533931294180217267794018875930807985020470667204898155659649356005790019639161779173799849578593158577807016253615061999091044662882250020873190972181430677127237035305801951373960666927769564076524164680545899733934516118331179722140316548779045612687366788395448131798026186653198600673745626528177878486590624939602623941886784433695156057020776136574712461836114931556869404171785108123213782489128771669871969436016746868127620777853184012967637844626974721049348445992321644385448015261303603839381656460439125369164921597128786610223923875674662173372797918348736766076170259205378650885652907426068155828120840616778531699895563573958005949049059698952157196325578740326998322445063009087903854547226672135954858967256569360231855404162596225488523789233580510510843521569490310217212002111070674533382038190763414969080608045219928776293608928848315868215713975942784229463980832719620789448067576497803407342827969094814703952978314524868669336334758324748087027148687810121948828975313223036137231326967571439827986747406801956280649747706639444995460253059168214274664551666135386182447808233209684428746622285032344639653041530798545892375784392441454416318917730042391306066949564912884857018120462473877486147653228620436151665673519886623575246117969103059649008440544923307969685268007964976503193567958596769366860987398435564034810172276242271472758285985804608003618387089058916766779655749532485075488510760754870809759075461422668473222435107175401906078585959633142128520434499648089354818355236090000750831918301945226893104121484517557236352267280395286265079990732339207788154732866752600901936698077274774065627547859365986195340701280279269655519902658198318619988205343390707284285067258992969363194265768926666585279283349860710301209112852273163449952495450488721302239172909899680171534799624102895993397196819788844592891019221981547333437480732704519729270650528131046291538104528328413863582649925132519317473619627986803226485135576330500221513308492840033782130275283929362248970642921247088533508067243177397399097112845704680385235672232283295663878793875061509109528866372512018655699943826934011965089126082941138538341789978238527303056462422147180263636872570643724545642843646042530938662883212498729996629522249836451948555466748927257377982084867084969826813844367177389759524914648094296579451892423239949962754601012768405340746660773597154785341023821935279220288083227699676100303416565363248959675229555378073456189175697484483233179601874963777562916633574925527532915759357987498819532639276427808131232115735708679527271475793240220256723353326818708794632302818474943865965422196225269930526600253918787244249892499620767318544178747339864177290307373693629341866348558239894399887617044513528785504532579792285383871807964167462209848819569554033096368967717215418668186683802572505998534119513296539147349190883672652059619097894063387518542400511936563566615011299012005956154907418090988753391822572058637337804876089255753962916192198653971919880396245131552738668329270247746898181343954939724172723515160268967866463846755268862423398201540775025209055418816171256377991604363546671422864705400246572873061750470999641032716480011005138149469152562801518849011515459760282834495627125624562883022147206606730141562711639252705777632939250389004409670789234491768765072794732836705801295379014483696549152508367639949505317277005508197715931743066744187643029023874524974085723967066776437074009428605082905357599927007929769652787722017785973401558637677258674718854421481623322389658878639105697658175059095478536311887246258778480646333975780006836314739170545729087367573870693031613566082834753450387686812825804732013339522995973254761398046705963396019477884033307642247011297292686924655435878122622576078216144134439075286430742584516927151334180867291708024526907090209195739092943243905398486116063416629855768722886197822603370654762643894853786802621488397407977178339049348108414485961118576167345788542812436325963349759073082877404821856432184808507070005716012116854967503669450924653656368344443718640049695742903274021565698454896723153695368838608489975348838480448565191949543271570686920453212594705554788924307649425632313470325068514402718933675786601359787649307293148212706652337789951251167268672937795306881001544497503764615981243822529805859657765534829382919583350407495427333176904866066642601316591865650956825051866128550619855708763211168657856402036287213028356411999257875705667791228950684485302654782537578291810073787527054170945204294561309814275553845336140271602634655146109259504157822485297975279789043508782636739836985997436215603975198074569848841145982519866350285553811093068210752962661313340574875794462327398799418240091057308350598960742905228976188346237207516550746747882585266674383113578700317955837854855737650275774738031266132859906522964687746015932742231238318183491278594858980580730888107080858027986962739900170722338534792361254222035612005453214580225476437159963892685823356200281254746658482249730398466993213994310327556859137835441465288214005216356026550382978539530030752519214610668694373130252675876374210739882558520523217570555517086319604390309207421536904407013521677716788631483689225312356326453829579214318937850344398234754045120873663865237290477723855393668739614486747013295442580376953251841069447135988060559884292691953435748266448799306499091897636887639003123778896457094215566928189616925281845713030101042664049323642445255687687957171955070910321309770587664852733951369012197844834391742772386657416445418575652135366425327751512888444017716633381550809464183319223895400541276955738287668080966784221674725365446543880593643235093789513667768112855322574217198272557546467924768026685307235980918843844366156454176615142484018835072600745452431822907097516833626785432742588813051835247403691089534078016389103097185433705469478170066217781670947070336767045360089891442239178910645233284165728578435876696349960875546709865769726216796102322926365049686850267172269819299100790541248679277901827625194584241627296634340449449808425203646332687021959502123589243806882681079586133893017851791161462331357568852431904834614549634051517303144062913077244029049546466318265691855973523643545793610282072604895875717110603260888604639928196339773259963485202909660194410423223895299003666242792667852943477466364589854986914794429791818524914804187402068731791948902018111466192815574100421215672958648969749191598780885936701021845051026342607333469370232992479978220817418726190909786817690009936636330925671046659816291335043560088993386858730155722341809261431400957693272083689526963712095433589586651590953344518017935795272289371651686511730806972639995990294495347950319263993558668724902374087490329500107250679642010337127398653649173433611326366755432547028900802398376719205380725079660811336364704817950769326917568790912553428405669044058296996253353400311086306128109639510484790485338262132576387412313527911123256456390527813613495780080477856062057980663400982562268024903998051663089996532360886181493605156224115038342234329143595036963049270853144375967714100373922195416748790036990647405539894079493454139720648494866314697627982619160184727375054093422248329503329627450668162241767393521815006580502108877847475864304764839123512922277947084993803678072070953378261443229961445525786802327437847749322926385092277937277127125943955732571617638457596234674261545603731187835352157841217423867544655067851908571022845340932759309068114875859672589472223156694810428007614604700914756424680238930870898287526860060911292348229716078063377119169421709773105850238391504629207657129644388408925381063367764909278374192356673204698159778035076722005369498175162932992337986817738822513053345767913201186665555524816290211501520256723521882234969093383642444567014247727686207638135168001984745482500643805176418959549319217471372283980318060042370340115846929540478739579107009791685162494252711781967299847971841691513556982670193364749536790958919896387000594074372645045469950019997768909622407083261156084326097549410519295028095528634286027933416560800017342844841548111270395069349765767862453552080752050466654568131862283451115622394397157393015559656095425656207816319693929306859084377415918215479180174554969245311669679966951186769134975546627648781051078872351406388316959103850980090380594747416356318579272466081220083329127006946823119795384218894346137971547079360808301869589516519444890400800870638273610236452072933318284901906064251035825425804895773692421824943311559229396570553884253813790614497715803493301562853654045513329226638919205373514309647382859774174746848997884343094180121825181212679246978364185260980589233562655185537006593277210641432354992329805859385134722838897466439114301859804877006831969428190183721285424846788923045891818087238208099200598297865811024287474165419392973478364492674045134590829143891061172992095658258827436846860375532459046978893459959038853778239291800431951705361593875795941113620217663060877563040640566627469204287270112853969764361571117343495224317000287653618487284063456269646516612209603300372380437318716575951567332862506734682921316580298823579087844202345910694360402551436947246311546740266058713958602743185325166328961906406418075555738721255739093807305617831957580883627481226457124654782748134299618897232302578534900228489274558835346890491987944160360947605197169427597645879899523714786903580186108088288078996137385962328112164171937629650195882126202580552449110823535758275827003077551068568267284211324310931650324505606900324839939248455375419582506529079458596559745524192271130744819380392582208661667241041336986022680228516121260232987859831452960859608018190714100413844337623333815611818837912660540115011250128481478518683605059419075981468793202897343877596636238066470988419365651979218519854952768053944131793661901340188952985819943137240223365489045767295423546987073159748742983521644539592413389715543531050643511394205318551555938105105486686241683399658793109038054199859700533899917269570558922487948277110979520757449522816327681273647230421076829228370520775057894622244466358317919602688983973143637222837109789597586436801230563318430496869332988247230133545188113119957231664852201261415419664057147633299367256886461221235339239059994600471020527401331300512973454125207648747227018620608170839736137064909862362097538914102197778040764587730882922784836340117067559023365624655166673643631311687164968601309540054862096295347009511837891154943112317809422854829872314691368645812913229897071086491133937786991130995052934786671757692117009226853994349222808230585275307397322673955404036316545171068957999247756058176821948063498184120123433744985683297133353249273605477989208613455689720458492877728528290440752238060142825042057238995117172759789129523263866229835839141790560630857927979241179876962911952871460679894561666502678933234213325937043514747693743961643671540663506415515106501398268449279891463828949558585402024485742020525156926490101813226066032718307728864116698174579699114690188524117760521875722529615001446997520244209876416025504482287588216911141204509358373884551779270292105075520285268567440191658675062334920497503211652879660390042975551979653529551027281956537616744984318138305379162178985063774124606158739068471041702940961480474395304279254817533543695537851105917158570584911230816032182111232559732561450458568397496216289332131851951479678699311515967528191405697831098174132310626597565366614248781089879631304330800224188396598249832443128915742731933115144755765656403638079350111342483237619285599516622431837056925613242505612128907992367965348337850874564326976679078024037059465269182272589312888200034266827787537969160149752594817465248002604984515772591157997421875325764775103591569014512152756346424602198125256908296779895166581326022431448784457402346139500868917024559868750426003497913321522463423931318509854511274181772499956633507760648660629340800238066478114413333969229624864207642984904891597452350928393618958055608035639979238269252020244616391726484733312861795624987670780212482415114603369316190713607067655950622325952641552678229747614218859326135270854626836301568311591058995136576338548544877896450210995343599429070582954499121717150134489088320404919867858858562246544313932486264107031387455276461891584151867997608839649308081245315947434390405340526614293900537347952076426881868237740106985543444421078251298382186260551197868734623829131538072694390778399474099677597410401071570219953418561076894506571251348407454444308813196292551355970751773237748976935165299347313111577625245341341690648036087653864228558368171257756112582851928337027983652619053913683557031696690921023927585861038313996008144207099890559539057797679391943152822542757566266385057010428202646970921744181671966768979033757021167766791296018974273562979025855980650753785771376083730698050137647035576214888825281329577593389829134467624926728805382041641430885720149317855066420903612313649747037382806799714936155957132655745439922982514525889961529898896911470193748126158559360234041838309490017066974246217298441793876585468293807508567351662250841866983488395850646654478215321654342044476398258541859927642521574928703096706618611718762878562235917668962072006921020996491673874860259314884715745638301226655024402873172208762679294729122078342932975495684241622168407617828910048478899734490695129285468966770671801820521306450561228835727390878182148568388573034674110474199330399582990359932784667706077965797367515499276720935702398404538081721215988830410435008809722835665402783352690045782206192421659293424559683114174709494281593615326385995132234960943407050081131150991727673297479370840049960610906667260177273913921525237293597502766055149314810300597768622933207804563995742937429473592058644240221856272704074708577630122109229212652340089388315590158727269913318996759785739030185304812098850285040669605977710524133191422243450590938873755946775663555175548465242445783094505303164649156577093229618314813129156214371108373113908941960084048305370441321601530741359852225548042266792080116058722759881474515164603332957815405368380050033010043287152578944272025537352151958955840688297096579793226450366876471253087791720182290893763979461428564906934745543679315596484293291940263599946043708326326240332038684080597622117215352487417690370648707671979592216956946851016486500110813964058382161520009825809867593123234177047998848971108802599952067410306360612484586537737008155955213218682457973064613608768200319473539518289913541049148447078370506012223371253472591766464449561602020367416264160002058346803816877740213721742498232915644814630848207113805559271307202583360362717015985206603550457712983564506924817854784022190853806595000799246162913942438643096898078953259270876413287200192800703227809764650688479733146827763029167237408881639446936495845086495998622797393297101996959567333095865835749857313002077705183118853083828657907021753218049233460998179218689807666850028725854127602037019609700887489887917143386135130429837952245917641418775852381705940789430510562851625570908190206690660772448439323597102273208073064364196642357641366273846902682861655796391129983020786086509251611573763101264713449059709734406187222653803263545063088776095606771973016769404525028667191485935680252310151032534332209679241843763461549139040311535632753065368458172111810861512510973793367355661194818524883985998786981891065612126212511260870056941577824646920868000658782176696440256291011875264083799944121468134250774735842638928291955074735756693279890920391962181920522935155446469380117412900054257911277930810438781588716990220945652427529063381823897966037632433166075470155510643377091770478243573997500424805352936052325291887576596905097916908401488465160774876126644450551417705175272082411182465652889648921607134406951105450523254212839073707747899093231849681888558180355776437367445866952845419065066574019036338155190122318470321785200495167930798396867058649872662004323510386767322583945251249754585631482983997248441670315106577143045625065765365420417992803710872043903196131848770196397747467552368222387793981194067960299531277501939662604717727592004447447969602424620091846253950497145479136170097042253967825623166488397426769302805224607191796498187407639412001508768400524553972001049284514005944857315887132646595760136755951525469410643300006064249930680572129798152451366278996118757003998439827589945354795001740641333259424306185029784303260329769479908746736293733176393014407184976058684945960664958668927862012596982569206036935230808822311209751447554207898922931855100664876854714650583482064454953075842524848629371469426040808492251677252011677043427815822223701945004883703497602256923263528991990516310130275340988498466136469868037350679908565199171837008467822883343696440848109872225487263731304479842282348802719113639831377523373499823907299847586384311697230967648045387550903761455322628281781409278133253877367121343074846540099692753920739949318528695076790646551116368431500338404152660554033068885959908484120941248074300562796419591171104897822134348000337601097147725328011124804569446630821217508339977547826501606139936848778844403487026587671201436426965712194390866716999850023953690679484332343595801879697390937804933432143831249161941723620160873265668985763736959140910278382246144318241933939492845671558085524467037849827562454231520820249759271660035983485345077640985662506811431176402235315974207555921830172266652722052927759824493406729610791824801310298655688725354725747329204482369537552166471186196484965316647071434261703203832148634210750864985208865102186666102316440161501612187377556784813090599246760381454755007892023160439107896130827491112612642071283955396507817859452115539533405661635586546489723855606989618282972314030096920644769884555720149184129483336601016063399019222266833749325529952994454277261869072210090266592317420675464087734490582715564145831053395859918383555290318949053123592810854644320141265816225613565002646016147452615462814196383640887779909039011887939056377004005842921568593078488037113320395898297574635516867022755080252139199698652289757224226481747810189246584959161832065245341217346732320372632498179799143316014206859966712666831720024708825028038479440259626058814908806686438361607330121115744790015252578251686809839502171348608854808851523143993359341715681430414417125830998720112088208430579031120241521357521214011141577040934660683140250449272703859194820374684100608537461418694308101206461349026109327080447838210388417543937930965330204313193203567684870336918138535331067982237964621364425412047095751893256876100573715083541114225276339161897005593236320276168675834126468991165704275136260928541843362421207291146952504147008009910877185213421930470195980883709616797814896867366864502730924730825534085939138893498533418468823382596083475641580535364826950514888876111980931717822116257663145765715760602996709752745669119558340163290381998385234699697013847078011808039461202433151354926587498551670433818071570534104410774515566716370918877400541211053670308891296089406887379358040307417488623935011542252023677803346508569154391987679957214678067718789416476510317305266350876649893825336611187513239033559741347172847739323665293313485275789822310674973615756965074670015718246850887599755544392842738115051540729105672362202711770768167583094608317170649188673805493344801885513982198704512777321566991618222694660484731713996383823060911858045850543124114094021500253481401307448978427690209250584189521302129683670534435813617469929170792481815832245782233361456719601993590505125638150868755851404741839148097138593593275041122264865733563862348768387098158427834252223691125520013212681818916137429960177546427361215685571414302441903684316559990136432027999476053715321742376819057656004790540333505118685291209139111792158965942725117178231175561640519733827649928599628641864707530602293935659637617151919285247763284890323993225623767456434239852523696830704494030583455123472343407194753456101919096662808021324424116215836032141703094253750862975627033368621767311539183234381781478295754690685737549012630402981001223993672215545119972457182999020728555671928524329626470265358816386173130852902525396830019605557044027750283825321922754468870759661430712421825358841722025672793740094826593535529970479761168341592227960875783794530866303638021730130900886437688829087785853956437348344201148291786144650625043433677680292556170164679035900225577080966067898955777008664026238972357456479183205712764017299803813189175405796805930521602849232456779124970490771970071556889988472324671658396683576249837077376672928748093240066517417692996943475514797642083585443137899183553270835120184539050684980921736197334008461328699819970587810619154216952071121354859794787624672519697951505417250897986882813393510356504523271108811502130663614059586276484859686498306866840277168319310348342623468109396581991339121848801183337224046371204682985089873551350657608359036596719502821733339757897151111287008499516396074460481785832944360404580284110983028337323945073214174099664106515283834496535398388670391510569715315086196381734875478904027098245657223367080291304149864990494740802137978105151553160731741035365434226018194597401367125912194935137219358897234446289231510263843832026270373637492448278032749155084096921572178241263281010987395891031354261096743762870883737141199659294228342855575899595767848761103630485239742876389827701892971484431868751744709928670336475119316481566560649526706388473898149790819904775743010390897851189017789937532809593259615696161728014086053888255436914855647584826629930729914877514480977355559200618342594488419470850850537935501637239001693166949853336387539921951586778663515817647652518631286437288850968694277391846335045897304343279981830398206569899529371445465808486657269179920782600231486148861805960178380451662571896265793588936092306077612126313661904143039728226656681336696197560695155453060263203279394115398839038769802141057966034114193688923225819284292620127440064710298737017950053817673062138616018501254480770262497436579508556099387702234670628629873415160910050557587089437172259505986723376223328624321634261817301891657663237816333910136509363429107616827447727450808582521922296654519903954454393886357647427513454903733616897413579791943900371422050633145935067199663796492579748900488205071441281048022413442943353486236095185913581950752109706999702232830702427890993411703453122651210673063509053963210462600775716397383885164851117266315935755956581136173948514299566531690023494947595678751150843922921458194088282600965231214175775182097882705247468370597435439416963065455029691964212226596345656890253029576262216907425950940150971443356319897362155242861209226992688553557439037835744568801725364408870241388391467386019626794937531814835486376632034654691439527984441737752662080101910161088753384987337030242427347805528434606551914857908443238480371427341017190419661849928184417264820874923502046088929903971360667373971066817406197117851687978281440670790261635598102106065108802923740783001921697108834117596050086116374497641212798019917064473275045339773534480015781133809004389035689755898565606513873098135403276576326885355149530294297384759403828272402209946906857890458720710100464248218464474557114781517405097959966489652718771429201855271749806143106070706971440303244921142385775747242463377801201241520199679580790221052715732884078920814042830598594940738629082554732908950027075634828474805043599680406125001196885300027620789002588135775614181307098088462354642888737824015194919470146297189765375684298927417594583576662913994978901876700130467385515724624604443872860395949050788228689860941219883315823678365563604796972742951892020442040781828354464673211392843129763149135230765451673602517169250714658089123220932635029279117824310684802941887049410941928294779552487884053696082241708684481734075203224922591593525009377485653769933463354546255475465667056573165448025751662227670191300897361825927365290741883020847214720112428620555593022657607574077608758830593071882913293552584643580206523947730872326724175072543730581007186812095721002083028330470223932686645706943195509085457607950356887058858964765764379504902336709016013932319837668778256579859396928809003660206764874277459163749829768669355842806583678758672213645237833886623144867177514169925029468871829100228381585566737782885001679727760064116234752468334787422870749563986311242637674065039857419245523928827790752170896990318828199436764119264608471400366839253849309824641809468165033684260766350531216537554908854712998791435195033199528142233055943855681581255177553085865074237497618682901263494204979619265881481017141953183905975976875753735722408142429021816831888264541307037689811631253143074851018808396155109541955859850574080201657557922600508354463460373373849350870212927136075063745728400784336777699107005843844643129972960327137901683038499818353178422880248872692605031261717029011233598425340211104762166449814214002618312181012514768806936416053609201316251742629651023674155798199295868374844131984055204882292003898241596666364485714725157687450852242437085272859517830325846786987229599475543744680709039328536128915091806309537997928370127806617888094568305960175519972902131751398744429089135192666923581039913555393137827237234007938459420801143242322970761695969715271266974726861281370334019789087287721235410307729289148913552727992441515057297395695438694629310337209170354529729635987925500673305135314182081760884807430096504710647385956014130803089082296897950746830453951072949332400872297832211636332637839438736781876381894946902965081154261122759878139329746156185710044225641757323620341191830980822430431549156004189858396624712964454201176035688315019557672240983910672423319361498293462159264625627214680990236249148632288562650759590638226754171373854730690104320845783451541544900832887032246016914846634090722568695862068397453714568846166854978150012894072148778945070619003296316134587996414029516543691519694643991533670475828252667459197319247851710447276237539157234078806905742604300703753533359657847606953126951424784319090288459604065755988338051586027053315689726544880869514010780045368097679740959098186171918406737960935391396354528008625679512448468353219440613259829869653777976998058963307943324848050428943132589289483275137287457813460074596723754958580685134408100878233780126894562433674480381813292487513326672551480937094853064683385278727203197281246856412612775330805807618937889366060226666960692633228577307603796157953193773383288177029041476388513461038996353720923707118885624518357348534690321274590792472518540827594584361647044796865327235425071833022136710337520869462973758831173902004613232657924096279869675671929020643395056243528393352856253895251558950963757253339673963989930588001381015310925063719670897752678487320987407877850758062353055862045549600187913578250329583115491392007531072471974306546048742828934818850116784174813385505665702611665803305952098647755409200969282735392168244756193608325883734800708965706694722958510164409948444014550157557779274769383668647282257058933263567400920093155848950526957810316821636692636822296578940091309290539190601944748808150097070599314256500667609779026960207882497182053902705656531751020906984314106578500493930035832344693495221642012648572220735513332891883540856336441505685641498136640086827296151268581357845188022600599676651205537440460628931178857243010657699727935700111483385349053335694407269777856797040684395658813441533058214386842203558518968371669784699792044014301568932270240931060078680857423553112445024373793318102540001051041210916752558104722272071408944596787730021305858731660786511293461864271081945851705769454935594255533715309403166407508211014076900302402325913470602067806387478766611022587107972734124136628102569574417296248985832905011552299155487629741254523243827402391890429366040217220460149903083109524023459445653298142663095867869664410380984884589913800623460321543667963850094996864299764219687157211652548605515863636282742364756303901190115822161604243588258836429801927148166139775728569067805254223348530498616029323339403423664066645875882623824511197376033187983658665253937446986528534713443548776249149904177122991112965103342224430890442350386517503333321330761404886535979907355272165493324188413717358561274839894776648516814176264965303965301036610105207556014674071718942139602162505414510220937735261471330914628972413821375663893324853415852169997643637461185455990775057531044447373612159402643098079675596076269536128646425172404539614003575603958152982848028716167637133958871312820054642066889751915707963265634648593304290558436102862041581301874303962739092795254466812109354630804715324864966362067428663923670099978847150891960641207690137135280432922219352581895910354600521503141120769945798410473304906040963459590289644042558320245187765877962454183044830405954325476957703489356306784620045388507669961762777212546098505019547386280220121873190797130112923927909844294494631350564183377111361426264821170037324904890887394994690606501577828871202102293564005969636518039031946846736461376164610632024181082431028325956489091712701231337643008235125806463424829546393510331429920793563788275105625272235388051164491798838052046310213368023796312897739826111239060116181889614044637590884642044577648300812542673368018570476654503765342248103721541311586900028357738861445785949370897517715616562460685240460811668790224532208724050747533575221832576403331583066249577521555675090098731423993003494834505634938297372586846834576392775417624422348944616977175920622374230432594520677933060136125232766959506625247570510142227153072271343649076709759312685245680965203635490892872334750021852536309356638590973142326442828419767643776381719631278765469222240678565802574891043754391427511906882582779351303249456014072866196492846477615521829008284986885185875039358726483618694556268689750275112484176365404582988553749454964403486514929516503022500529782972511807975259521586049571356844883500376830813200530674466769096498828888560922464748824558769388320133201535083297757658719807652045359430445733135279152254822767676380982212466930834427188857609549269139322632325745209329211056996773965898378239730321202466668596316247981369617223592045125465998376287656983962033632563347338543813549408123647771078835311727281224505683581197060379997853505828695962087073019376452291979593579159628957391096947542537311732836597220201002953087727570884760550653198416639626629749102166632556687432857664403663162824974633770894900396906004023962136908686520269501663290278613840622415155430775663287121023374152384735726207123163912592485423796135938983468487569561531358662471814159378448613457823286636222462476728347061604293431706770009691949337197264730464680713798271336346811137687331575993221839993844072326879683673294383507820703339035185196094537006610941934330153020278686008420606963821266175044668853196049842484482039667180312539184711727360326478626451431244373716792928761077404584914087579714148054456360628286250974357250976547915504691184171632969610827616085513110980413716903793830088781395756052040268165126291697680714420539900991183722663667324266884689020110339290762184435521794168814493462224021711317208540324088400595312937760380246571782983148805406707424881334793434543480342685047152226307961080201870147538993356124510058454329110703420853814247843808121064122085087570328384862383111869442165971868673662734896224254521914230413476053287480141628126427781666635249637709817954406120986969536065589139013445294479469554196453370289287807699635795309580372898121292135634471646338863512289171548660008221672351098054349630168211354387951940487900381625994106967688367499806456304537627610732313514563895251828681689624717589454142146549199703405581206174548479948762494806273574293601208910907942430582287120239529674408449028381289446343044845857072173173011445280777061711702728760578027616334685196590933087831659370131252740367139532562261785573577882613085754963282466283803912439286923786641193580527633444693835178284916360884501264049031206795896436459973221046058695317626954695790544655575199668730708583382882954085820735577213870999653932650422948267385325027536272255535231641480290894948537292335543995336150150181951172866897128410267941593923373378989508772106983106728080038475306712140167264477112732020062350303824188663591112176503599368462649904836774917543327948338227473783788507786751405244292824088741335663809657410983871309799408297096669941267297436240654298149878684636209277361973942429547293434004093201641849172034066242583389214312058729585280098382692384149315444027063060835595574606570986553670312237580272221883234481291519489997768461788474549178509129067312837326924947178231254776453310883735536636286469339718519551856882852835804562212709881730568135629200701643760856251967119527639380021268163740436756478257679343801362965208162332618106905921981985360470016192918169694182733788015102549305214054637896677498032189619817035576850868945237567283266014951449104272745686321915428499920337345036656781712468441749633602941952619196635205268953356791416024192425299269807125144862061207299185142628459358618203849005962986335310607506287862143732566829384041423127531046238168842352627341490613914690890223194024039087204024246973794037139382391985382905411786144595155222169965289039003672628482668349866854190790530237563992793277963439106710486687445699482864250240142043601559425370050032634596501773779381273802365853867317689831491487320361455452388186088057071883573364716356370479578244405830404295489251312608041643797137660329122849365758874527636751728669544222637688848000824399060204133380809573163586228701014936636715535323788394708962200050193973149585512549806864544234175175033827136265009957466960769145728765821216503568595784073433982211013253443311399050523360747481787562673843427996338599570720615296551260468044281975013294564767855876867656369570394292678051527851961100450959428232825359456251187492891288509557938962242846836190280159394953031369377782278192194107563717199693031105455136549018859102044637573855114504375657204156602161984031557072113577374281094007519039676216900024825427584907660940673611623220433950279099215288122720078465420964913998600290679188376574529148379438392508145520752669513115535290833580980133180193253068982282969704647056236788572113035268897326398130703995947362797145816404597444801676816063136712242116048896355405009804173207775139381815998207643358907004789178155188133153827443400937089959649431208617599870684971020889378801876151707657364737720137335329261504661814181184746976237670511790231901899744672453320780691686935526198361985171783688791494430932505074412935084983643308516422590855149944677766915442777256704012241738136394321041648263579792039121731709430397629720030514892051384052933195148361812479587606346822097537190876416650284828828996443463399294561154060553945603700088298797240607414478314387439458209145150876452230447595394844593885164066945538153676623494556865071300035042707942720138066230729589558460243691787780503288241945037210561737759269361253948204510018433798126682450824013602619137174375878696284259418315758865076372455431084056920898196583589467500030498385381870428906399963498735227816981167740360292594804506354817958129948108145573406089031477170473163024755076763468933086704082099935734266820459377381358049326690849377184956444207906910114324383239005311476862339767566089138298696911320213124838650402107224985429194105016011607897682915108611805888905096620085492621962735943776233825198592922816009525831902718505468419875811743160371515924965715857625903385573543062652734825695814047887116190471665071742252974033035760459557171581304587141253409883603684974464163911398245222129468060046831185472918409626476633716696191743210516797357273703794488091828964729622572901873826624752321512131104924770495107688455783968397161947357686886620142521857653767051488921390679198557928934816149925687688567895426232253194318948416588514028977657853616864011915104446025538208653448351441519559386119612088930837056938460833952281518436011472627151202280883689154973926106319768972884080245783088747449045601514769855095012075264095882167845240126048055846892719941069953719754112411959996996135769773742897788801560111908527241443514937501408731199622509867904781362032012736225606283280552621858260882828376504095810621483231107792987587298969991479380715212124900723024064733442274061523268641731275880280520991587657153359748986653890749439805291936103156033714006734872088649022376584534971627698834214532350542022252496745669381276665510376393851414001784180260084731748758258250852006955415050924224595184288796601035382073640381078472834665935464515890954222253105833592363080841642607528833402697797532393801520664645931331213953537002722456584365312937043079844035679046486059982593463804929936357341041107182005547537965403562426013469574510971115474983828892499585217773762470641238811758852040566192909710008834587088254857778584465700964190423279645462295473937754420083889667699796089216600849192616802664264270342234364932329732522948076944565283655947399177206495526104722401639750651976054795377836833333344233644690817058484232728530285765386240384834089931754448173289225941970031518655262919401917957105755240783616660502182711318241906036889165781196712989120671812342528709206722224978988773682725963477253299483985607077184731007249179446104840863742835125304953967655715313355751544849539428525414298658649086756790712351952748766996575088670875496183778547471538661813840082295856811669314631968397676284513911263170027203979639709238293491372976457829895495496197668389401292497854048706635127074501723474943545078475598776947306134899576158911188021967218943218592509565289452602715920655971624033055344145352172503362359879433039730462440924057045159345973099600299451972170180419610390143618640866810174858572133724737756067708818993583967457128076927182570541067253730923604043531435933225833248550913763170834419196895029108347105305797398427556303000250552207523596360362661137461425926926974511400144665564920505569659192899721902837676603561853151741992443775696845059240230514071077960514297289657200285433626321608682273786181598757469019079463043570080361660680936262742074118616080568499986993609447628386086725684899715278313325300092965712370864066681839960038087628296758044892238214594501039854446013842099746030329555624462352814539952286729597422687404534090046898974059523393971334201416452898057559745422492006488858889337804010014355829758827777930357872571880532542557340430280378180740518140812753067288017249524969421985968998563034229934042354162861798791349942285503522960502003097912003811593470683001998954057346896857792901891138730415535777164674033573996748622971792710394703467692522792750940630895290177839408100340280482853985784823091015378219291605715745661218951091607237357546091761338088605155481444097444859232454611421404603941019004450043612474317266225498290165202260054191663292248139667207265004773628597853702023724600237079376506211207147640417556974033866783447331883868763456959004632687461747067071105372273426328165049922149750423484699892556326412623754385892108088233125608163005970817000141566048883736081150591425799935646885291785108825575249739790944272794937906936545770181537840014871959151370219966583028825481262707136462920766122187459890203191282901170174596345315111139085096628942001572180996066222840538408908614265185872335016939790081117628907365474519572212151789194976024909440955732538800784069027295979586522994498979615383874608643313883213389846668668484206848462627899672138301155907795450970302603721767707986731407512230433475335630154474998899566118502570787983729586183173578985310809351303109622572185145601958274588035975775175649169748704183730670166421714014209253398654490702071099440925837662351247334300991375367992194909284619123321881969991721835296936705205976144646828814643752676026648373244893418890507850149397761107843234523755220234591977545488161804288972904496568185313234255610442751801856399322578106573608053510157788611032117858961319474623378952533237928693961186710720403667175502819088159683825658884619595845262840325346027152982846697865143937821382612396937168399446018344948588837709241012517430078606286259443073975394724198795558531386784484417749822339563832656766372451579136376390479286243575881977743082761395958955041172821838684528473459438495395241694518372086768445364911721369414411126287999594629982077371203918229287056910851932043256393271281554979075969953339747924558773495609097123873660021049032003239949463370543219080430368175396011233173248866774384450939417679032058108909829959163222718637264639206749049471545800752781750711518488957522608282504003074362698452067771150261129631859247145633787507589228973469834609954963386575089000451433418955843467885752084777800895545297171049300574694937620286734305766454904792986695071588718822077314686292555834747068666842192683441977603605689589322727955391133240191623953056223443860454006800296252732525564672189994715999447462095159230163087951626945802980266566136120258481468080137493638655813063104593854297812402907279256202061358956080222771148914576164939187346177106031315307215477346217583413768497708749400982424367171628669220603341033938594204442106103860639164492353738889578692791507706339274070740880530065758853014411225526198811951681174139777679865561270331271588305531939320529970938345526594899182612987023710943136837285068355795586098253583249484035771698903741371488194156547904608818989131890200267410891587446097464012243367444514639607949649719690004192859413798512958830470493587491423266357200059547210651719349764550346620943539952566460028369390667984400702716740320414828560540405320643050606980561457023058168377277460146895896897472943764787697834255381477954254775586115908806918477661217036504150704700623813845404808680861496144965172400519331504716827203005067251883953716887681109394444680596948228603904965536525931450185059828488815548096979621634726574277991286829679124642089646552564060007988578795734705495792884782113082928261140761200123001547300961326918686918022301846063240353898134468354843186176075815905806024880137749871055289405966475528208227878318949901094758598397966035471727808960263339593138273929420260905412951544839608132262500153951051115922328476687008188863029075274611027535331638147472783841927536147902045611087686843887654821090408368871371522390027775429903931183855951935704434441812653997065307886342832791425167413139215808665495843184566128487205445999640354035798207133909725059031031244777427441003118504672894691691851642887249093269186521535615211830618517547358227950667794234460619114525737007467520764968692705427750565845045340441183515709391327410650056343947210741757904385394619056357052944954132163225001542259384820749111169429355104711867221826993098007798865455923212781521527606133569397141736783956191526712317256202906176596283337813441569512126988533394698172024102248848128524033143289077877999980852179758184182473394919153742936683546066824151207772365497366680427520698820062216385381043624179778482361174141258759006943022240481412506347928380107709140775309767161813298771385921283794247111905328927579978268121774754599249151513666700102892004279773043348637032041583151138445543506808675850754746028823987201541040182912140381614888319021999222780437568333299983142340845689122402008816303808825597071892555018114548538794162789914312418595601928101062268161747084422244995121435579697740802496541985501638207366690813936032340915842953100443109947919357862363753329340369202085883686454127760456157808664255478943804387480844803027431736796149223987400251221306130049946835539554249079651560502215696954549043358222596973871471607527717201399823410005817487991287349594224902130577540034684434796023741586725071492471580424229224502904212607792025627344616465416486559488196140059977405124757091759389528513053330157228847629599744886958417500027350758748165234719747071819174294875476686870445570485085043134563779446104063345638225658202500306864871212171821630695265189568443064962243112024720845687291971295898415241632935195712950837894607236642049838402034269301739045251222172755153003117390583449426853179429040956546128018755550106971108025156083526272445328482005308958112523705004022111065333961612915162607061775827751813056752410970923014489098168506403950703914175099240976168770918725528218084015038863768837983879411892102493239715865984256018575478903679409458446792069102887959979550519300685299458634238759213702742476086656495025605698794127713988693901997261207232333561062621421091656936000763986724628970179598872670889673052199235259495976785243479216349743023849974603323782774329526757722077646044020333817204363043993927593598493001681273798656554154313559269991885383286912072334748318365525438034376616794611034091416636589511569954112865787472473209828079393977233705591042748393203266997824811653423835096071752576945776011380778358189975480723429958779732928076057399755317436064164157641728821150853513266030946536320740308951273779264319380680733393432847823081635746531138581584244573189653590032110209051751435171380728344912590561544717990425464309985040587012469052956142882846910483021413322848562661443560677360375994790295079442285933393286542889713496193240177077845944505287652375963295564732746956099566848799899658757457499286135848138096190397395413527979382754384185784763730482764349646639172591169340012550466863481399647158540699419722948400811371474410165120040614204366076582945033288225805916305076892651208461240571306200558982036881898057567430699535019118302510212950349076794198609569211187399642719204168784615148022055984521901355425548543904981642283518916131656573191376612957996572947934869440701814537697454562695945344849926278696948503560971118868886516513295032662242695824632744445283970036953204697008009291483978882034832076381299059401653901839616520173779950526170977924118286138356365982610107570821281874569262184367409728953245158239141776427380757331591218426688295482933991760800138142974900542289769962516578153910757464106461129565448976917149012797788540024205577908434434978903643006901859183687891592921830867887564626200016318527340168878179836067572589825599758327474738045018778216492793137975904692519921199270776396926665262677001852459946318398199371908485907998940588331814536920110307589421584078300462611593430402071348186724774513538220116670580688224496849963828509914495614483000973087574886693127694222060264898965060546468835595500563956956761695755542947878564496988423029380745698569443836571037305092114715129974035027554203538381979920359624143064379738209986516970312277006356017860525798891011043446545795995736776539583332590197109482343752618184601641386483032498406045884939618487736753862143690648042829539216260596337032006715422595994737504756783569261825310210936234592408424945170198128635142311779527415672718250041408784053319105377895845992173026941785079732203169749027151364404086568078495070613057539342252353237667031466699118840584132243978370550334661886255613607630322228462704901575682324886029978358011857742782345747418991778286887670911511472556845590407736101299955505008375487836295728671053303608270567557586587350199176984219718167906116725083848704594154966886898216237079871341334550969665246771870881393757360731082141097950174981372936676190761467896257216020010945797316379262090134664553088638601689699608113418158829548927723128736841003134401048174932885981346822915538627814428194236436252550218017805132032613001794814337943213932244308524367042891722675365765856706867137732062060040949478521163725521560609613937771592145102807417387479330932051039221228498535091706718808495394195560249815108786518737305517602118462991694656346466176485292412081225393299810856657265308495698963336880599620908296063461872981738927842931822713568655839569597422273448272303977574892648965957327827302656620775274068747360387167350983237310442726763162590069650990314791702248110424518768172349675403120904798450107639697770247641734060893163789550842702246363553373807516736628609409554663122984610194817459300112364838914381296697570238193783456476242160388815494904518647756959802054895618772789462610890427664224989316244124539949899856923483984308661236852126859738069210803885442417352518588114986121744357848896173452415115763640892492600640734620703023663217799199070173193102642452661990684071634171931474050421019759431439386019126688485307845404925748853149428704623868955639461703309870891429603963211385454978815784577899812824514559300857156602527605636038195320717594523403929036329401268668515396982507091906843866295608063754481790506804869729012405723404362338617868559550256567819165628233354671740801068263003849070684225436902357256982841876963299321719852990996288990054718443281536501799382872603470798355907315212260011986478534586849584635089049773749040404742902227451704947213603120083083077960824782951177561978781406818999357883485449155408111254984912516994034048493991518799818833336896468869354790472964791285599634262747481778968124711803598525868599946556395065630170704356804369171530920168388435599235112672883117038446971762279350082865523968951543850300078261028850309284987021627470336889076044658644708306597194947728966075990609622456378348474651971836034440647448862111240742859325971966468504698178402345990760150159786410736230181271566530120321547727955000817123756222675528107948207905397146480706124320871873751660601105064320228302891385962440661145145657905813753207293447043887504004688330180850367728811862418086790557716949860641693789091461982500640696020344000542916502946577126442639783562472722619671910542188713718445280108983734110978391014664377748058170030297001250453790270743477752796627547583978949961862066022386578093893297830174239344148882643453232852673531471363220066811785447019804381646198427641888897043702669707892106782209844701574670695679750064029192380220695145258258248153523006254830815918857950343371501370290841650141159068098521602872317618198978434495435869667419958032466407790172161818739011337727662903886161275282190424465861899468548759210135860016219919541004952600513024064459390704949780234453654714845955664518674472852522569602740445706399213196092250480798175244505616178905989517882785623245562804836026298344980496886116744265489863794186478269467466545803315733385168172677718627719043206778855542688386723766087725863590817613224869414505013230657750720913915567815871722713535208500151454919251817705917438061065559988515139290734042601178858662224751236287880991485414174755275695328817174550900035674873661460624531454231417915447423846995265243516379423314888396419465963885071106440273683658963208852724100348534849518635722600089804512195025272479952682869223473647636643348675864085997403213549361730803974265452788649163829746848278902947248528442843842110597237946368259504710949835431341186834398915519526296674195735190174883910703812478994774049925572922696050002721143988112697407798179791393520221334796310153311870019184350175176676658008532577196028748471933726727307868833923695088173177207176410354314477528486829558799511508547366474132909656151892372962600353098226630969243107519419491848875834116553478379171412687446423855754839821534665548534425340117907034044910431573148702511920228801122940930174675913600493643638035530813131667225009586974205115405306842810929654177493508940526825787452875171227892918762716475485691791093860876507436736665346485611557964590951307085449412196301346196398643497435039780586596649209553534832362952083396154558246348894061215537240589136470343847411050009683990249687289926603906447714969297368805238024118516501582337914911115042803661280265401233310530564431697691034002182589023245182385474307420490947782510377986936352512675530388702653447786935800037825262462572357811209469460699460707881872222587771941862748130523964207298068116358576895188240244044579229322104209821159228358847610249790123390929838895427131024621792449904244260304782822774589777671950168267002718562138528507056421076289014727230370089164993570433600962402223838276577300915570814125180272520611716550282397234888532720514696915450680536356503776381555969147503105982762691517814154207188303385781743055419655569170393813774971677753238110058854626873766074150899858726775571299707935797642446630286855168788845926451573141878468060941024285482348200906903983027405199617989691448390194054075423210024069788416821856878047475409657956813878803492294839763381649101852584638585172755821409780182017094806560184340307599745894002150648023041348504127569362353544320474800490199617684462433339788817893847945359973784475684378211862182209576067822839398138306035551915210522787945759401312222831644359256683988471998558734840337504920381992202773385167842331198264091488979139717195559616319672869564917058708511576604699653210762063689810260364024945096746108001708732943092307279533606611649738356525668360025502075226784506951824886817331227390462211979614392713778107850500643224643586404048022854041039420664650797347298651286978495709737629527509681189883829193869336404592834013753497123672312205256493000077018449351452105959728564213801952834330540940209150090598119195224861354668980407154821609306030352787233200596303018409648522911294440154318011273945421209132737330904004754749778149850421952728667996937278314755861021968683612044533472349645353586283009713291934316119132874051403179768980546712383183716520106071159093766305922662678891630335125124459389340233466059873699888885246406414645033299770415742181728942228743655134925305531005221922471352480425753508198790701269577292123282511448827301665613291633605510142560142611340157371303092934363247055421505769561902047216737020594947570412784766365762942922613072281030419744521301563355820834991373740730968840075067081343384272116072744645059248852923823620205528151920429808164176129400996267885432639515374140804874519953203665002951878277877328878784649854115932098553971013932309188494325506514461249528051710754461479337663286860977273055816548834058202631045116330939423681810274051411142422668315471969066162209310959292160793365109680335512926213799079911531430600207681458159124730991813707571637486744853863813437089146440682684165353375361905165361804171023340825988706899697452073996910736714278882093260853624261459296631315015317305345852508779727506523954710112111927726942216439484237955298650024108075376243592428781774950183345918756136483784917017550828018147178675438647626198282912493601331043195452104495420745000555336071814560928145952845193255320444169383935259391339895991677278358689740816944297381093254035857785858812521389003059555277861009766468487650962721855101193067160603015787474706629233982000575897413564061823562489564493489542645422625384887078649821502668107640558936863087750130746784651921994648243138547076150609655323994780215658760101084926033830769671737636510022834407728277378650728172959731623814712895321122587133863206741951548801865851295126897638070332547356514018166632883440056426878735438393674857281883833482716738874788883365291425538237393707728123782066096557402767344180940905313826528204137327572419000259285350916127482412317959608455392865747667850273555296227601508489427731324481231600686929142472326598152609140468554576924156733543985396996026167968225476476781165532138917299010213763226568109310121832992083234592246862034922406348598543294607304072006847033012380027652885624163295654508122411387235849749460047740769372359272550710965746571034021586277892133603059579412938527743109373154818199282467124141648656174897059166046213956139437340791445783901446662824094642177553768147119667711802058610670861603665915995076479215762639152129805836369101564196363856327139073665748683641128090149157629333412863997386782043979700923555647462791210524977441088424363832481965614161010766428055706308096885798259323010670952330045376220068099257951936598142278899792893269679941021422650281336215859541229808066243739756677433006192832151887989254309334842882468976923924775056581775085692038178719703996928035440110973783863583454028581690887836093104069384138033236963268436145922096110958387813928113596893678056690581167253408720196923672667683381739805316169033536744675699386658173189476972366734921161291553933419875246207675193621597548531050143639932193983445298225738584840733872605181150751265979880025117623942043504788968931379271029385456100120257696421676346608639789631261783999067978204081844474899713924662288068323244297655604295182339935139008046196562585835291582364524734672508567822880421647433120228023578272179825691979284251547638123029957592753379406053999233890778903592492970182574305354403949655654556562727907626915647316420112895022734850543408898831443235679629222680595171917154851695209242819758673041139894840702491430346464663989981015896866644820031969806883457103025365579932161633019436876286627842412757864053051875588780838343407285708665340201879264036854326365519208848550483922638830101417855846613013392175759309361887917549880319144496293477729333741485629287190326900637317033470173033772147267782410984146498210037444805955303365383792085227269512844117907133637729504180866971000087881475121097459844415820257494769770005895594708835146739983009368603399684865925268944567271130169296944615296578503704773516031285620601373100966502170207211828758532590094911996758138105939113692443507631136522485124904018204582164579822354074298220682851613159397252841358607116801430537440630798190623410634545092272761825662717148834134021025115841021761638778927817095111132857032095655799740451629644901694633559477591659611247854102734786864337143668475599509101998832046302519923267990994354347467416619539296353877753209213850820725924279989787590535323038594000523655309989720687124623322720609812032824242256924432184232108045253256102077193335375198775064373938021813960436214717564247948545483164594889826111265773329552185431476293079762486468518479855811079281546575544224796198526783230351073751506432422004920370217784859210099352924833176073349478290792841666312313975434504890658857033263222241855376258690208599560536215182238167146869428430000694343996220566340684592249062474285968886614778090640736518802242093286337089698661008249901609355453957782197229361058326622928860942087846138431437117813540653132875653450193170769185741978967426661938162317399029263433770973908022518956911339684466513763257312919340781519029238181145442211336031991499561252645798593051139530654800138269608572892010863701548609690208274128285425607093415018820820916510089383036100004145212212186099016497571048662589588349536233158349880211582192068050756020890229609885971079616621803238129418509793175064271127914210323576211502000598824578271343365415212876368952649044727454219255411912921985790682369530620000270500662031964054664969875982381558395197416305048952266671566616623961186192998163442915873690315560422937959811963667652701724880358537573344923266949270677402608708492002124371892133940147922524640829817855990525950360285859538947620445426228016053246658833397026065443479817558653010687228610830484733127937919660773772389934218454124077598933450631767218230214549229771872603901622112078146741366362601814955291504112943281824521905065359864126580926266467486611308201494158310381986759825388200436165968692423417926217970831214700984100412282858223770724642452742850254162862085514901729617042994248420587613251171292749304050989733446104842472612139551421050888006623847035159265364880699365494182472252752800120965970147152409273035934190289050233273763769319852947782356119317895666672651539699782776483028396053170292050207715730152170231250169207186073996513987514866488314619898412021936965976408775398781705781666172345698755370747447532964736451091325963220067164900374734866517051837958510878859623654547604349827963780527298185915578491698955183815426238869108144767362961952935538851923658266570926317295658800479842797545682166061353151502109063336013288128869675618060787070859276908577086027479838324109064112874217288251747557013332207418094852113481961489090258227881185065234863445687313206370896081173732430639031887817752531198819029708785059454108537340992202619325344288369823608542217486190537743816193242855720847329238843707874124268500908332276560268511669878030313471625864824357560423932238984956175377181808144155413883673861319294327353996867611807898922370182840627476844627045364713268873243862035994598429093736785210512822406105587526450321150852772293932355803638679177386291886474580673184205216128213788079278072115994172930803208644555709648801062332887996287915955568972312041769917244157005778202757826262641512035813366557304550406790228992118654286334893987067571768890226120483838807065737776359929621195448291775413436464400051054111844830994937333126090555159277826555014861496364064466094518510475177580748359579262846169410385862062826700858412682338359397471139180778873191243956050200994573865789147018996819886182570117991431913974958049316252778938300323394576738097328188573598797744865817714820994876672039289510161712835791039091936969227192646596493330119229285220443903393494770838257921488988933556874290541422793087784575821715335258131539947076531731791260606260853510347703601923970552725106683594659820423013820742888884999775066647377921608557151016659816671811823726265588658335201653393473969760538110028107916600927126286552231073622225114040549897622429047774026429464114298137136554295277776287105711052648523167591895681414363749584412996495570918520564541232358538559750345179380121656345675434862592686768076636840724343902414328671276403217425541023353505542935909522097730229799414899984076580936892611547661296826595415744344325240874244334258118821861933387325750460272575318073724088174731151130205593211762735129179760818464677887607343671472284910440284430605525422926288699390858815976255627864410909010286369625486341438581997435740626810330671871316349845105844285159222895923811238410258034182883868378635895743291430569593836020405167688890116887907478242247834354005596285813822974795096829131560983542344437218572444207138632262778583884234160610094368918273220447639111228902034328525546824584347636374023746609028816679465290410926295711530732076468658462143886591433224085602588441460032384011017765567750133225487288264034478579967955537304354869452903915020520306172931953181741689055443694623797518917699821946412618912788359861409807027323053228282010547664280256196570866788620837203663197398372580833633600294410522590450447736588315118150198044192520631314415994753769092629325435646176247335182861678273053231547983111924004209645571424791180566568128204453850015264479730642513555560439201186185778870898236945208337578537690383872601921224326803185323178949300784766976890104524712989628122155917232358161444926710802613474663497374144477775793983637000097118281234814358766959433132150906243720954636148753393164236668496810714767574243265837498179778694349120108884928401554634068610023869686419334666184697617642235705352390541142518019070026503309186299791180927813502513759033302798288396451316606994443196067734869219558675320364049653361581361783316028924805698712504690995426292969318127107155493912793301507710015255814867647410195454520537134384210977125889154082945767558926031419028177803850218850720538040362388908293697602238838993098349823997859387000150942315271800008620807396288426109426038694656968983942845488764145852087877236670996462418688310188581607276297271468714528193888028413396261892658078903814026872246930693873620905766916644410011403576297567161605190359910544382719945581204411134798700732451194184190001200848866283482567399250582689874819958971131019158155712722527671588385947318703223314052092819567692305742843942092648250368494727511317273216143969596558465963861635972466338997633199841079837385045470483818131627405454665118297497321899892085806430970986977759243936269832448211096098246621926282312291203558759366255728441201029588110315231461957999295908821682460625380496101804208993951680726220452149175121945928084748486891620305272086820283133272945086598928886495554427013233060813968609690064583593197620658966397793103188877934022961340144614210821656775119023350748770770286199087441585641597547317094603815576371198457953391040291463823949535746055625982252071770639586593488947662069307516500736856525001682077490663880128733331804654721883073645322477175117924961325019978219910686960398340883745498060332261260640359019956717570692491114368442154084422661313433381196685681785955812358392932042579844261964179058960385645682175555376631034533788407564472229359101485004124738086445833740533167834120560680864535065368754275669195582758656108374814445444614312488228128102079866302087038519032015712198999558812360346754981428316456173539277421539535553040611955000131037184952711996012508750660710598870564983550139927060204663950458930328304665524440440628447763597299884983474123713171159459595881156408938628258359761815339169411137102290149543282236565577665222107963232758008150118382927808500787476579064218042911572149197395466804196256938667030809074552584598146546142108962369323670580403253982535408444851773704595637615900289304775532079954433938828425131537547690689234131351232260736049302519398488077280894223838215537525898474323865499668238693881735577678779639600651082551335575003695835110600469919603244536051797679948032520469303463862933454628208591525017701187977886952037907371945303166720485102605960636345808630845884771282825678189009376236726680445192333522498033798998688644046635992863052996823021393919389227098973867556953251207400707663873820814635919297493766412186283027404949343821248614011670245953453730104521089508437155337431137471472718554084036974413656125712611269139587386835667135731742111021828704713860779206923609432665523524951311734725436917402340222315224059391268801053809344776691892251285565944573437032772570139967164996658308521326439659310753801720487758478821859810206346728987996343384889761963069391593579738761951757997878344478707789343834399045059153566612276257828116067810720099883969573777404858657162021032545579676051546849497780562653784798589683868435006701170220390194796040698887259509437590397370195318419065879124726839981397399965865210967300883648314487579995305471029840168788620197409135280927812273428577497481309677969831219499806426789205589817324304958526455371304835059014797538297454390602255980663840341002942945581901123919765456789372984499786255730222399999231581317223157570892827322204177118818301477662314664366294660424567271040645724047117765180610911411128285508905431467327229323796584831310799817030034495944769570758114292161469649844425403567931940512982494820442494914708549323655983950135929525189946432776136810420759153194520585049654584564967908317903235128063248117413285446722384272023332717520806764417141530219032558053863189826087701901884117586026818409910285343183826793512396261894480351498690877245250100359366965842981295288244989303123324271537481491158759455278917695513818715678156005185286383211405473899063573528288472067189974295189192215701656606193116765457827937859615935782664886358590772188988188263091053095404302339663455518122583740425093883930490406776960583780996074761430639138687325641847691050533446960224900176541797759816858270165421009538710394080718774192950699981351097681247602143476095495455722157117124889167843510354009185481854951935474537911490831486889135449152447804045965831471399660269475943486774304079198208486953646112388473428953845234376464150737624996968735905566234862790447718984280690038914737849657630088148051148850259772333257475222455180871856396336067566568166569911376570257535867197891024649600138020494876440603576305434666784627265576203490325707177737521462413774012036268271317473077778146669702426438918947222881691549711748349738691781451674745386398831259075592826874476933283287162959629466362193113178633836024640897854648618176003056843862489172004379587693545572047031003631242734892350924858783042680824052862482949885566080386761054435048173881622270397363094076550274359078962530370907549166865118765347911576135719848199423865589002796923846710712930543048229023443831791558771750106232227214445646920089301679232113240398893599013556487925398914723638264376294837965180437820426276409273200126492606516688322946481657592281345710490812213406153463091155646838460966238548428795716559998853902948404697443003598669962678286617920414152898398778480002485378520130612208527187172668259561933268354004481095559351041109930154377201863181016031537616351098144182771027153858061750461089480000531497872581806117865118840809251812711131577185424207281873370140536669832403904484269846101422923429677035230604163382697911414919218878637936336024831415345028696014462663871286664385714219639711520314802973924886652175392046777593778593572412107137020949873408959706576789110147922271104443499082295887381338364736638205388676658826358709934949344138074811587054589566563162486335163672541601730776700600295353413324134657172761217268281795976990130839632615915318044206802569453139096539781085688898049053702573418636158973541693066300213908185332238704838848886532367592596955727173480459277160749859376290436448437899111264230789404351256332954004130050421317680353947951716431194314393017701713326538600659996661946242536141782254151994608743614846590316046875483820740782485540800149012263140196090535369485566359133169417010505455589455808840789851190948458741152059007593966759401213583250800395952541427461366957867003631668499335515161190435702517081215850466978865368022912072624525069587821017026453506289622843230640498953439994845877985709266546586022301228358233429012170552437823475479579129887074562295958465171293706630594578978716864136790302800711569293200589374754933338240455454206460496982558956067215416838492077753704627623124418878319903750329175759309580478787099941948489950235069549305789194996687314335931142549067751789197781676331119638635397864060609486923462977496578265622312515764048340233333744329548262019974533832720714439759504567425294407064655326529695860565413352404668079347034103152799222402565632221417490337121454521344930581651954579377499657553647227712151529527997403350503462457270136118483471579742895824534794361338651183399777956537591171888789244690119814602093859257071596945879934835016791824833138130507348310855857771179080498238460736222149264332395028780066381323454556666332234557557319949026134666064980588384823800244640518754251861132693296886540689916161734431443311661784155234663987394130277737498802053869767696536957623337801695349070089038144763728123949089724456083169960192780285409131770094627782789467257103077896694286825206821860155821428528307797207503337242925726124223552400821346627933133157769816519834954679490268532509222469780153165490148983043599959737662385234842311097848656256923901934198303555203040226454111549366776505613527471764956514844991569462300770567698377748769376496673221604116090078214064938471777560686698785568588282745562700921025201496249468327135053432144433161979261458178475033377036795753310386065754076040481415434630081916143192548274913960020869161023866581391557807114868363835452035893990980215335720211172921461825010204026353356558976014282269003963391795621140018829652719748764333171889619570628769971249016882974175425462775863562386968353785612390454563127764925653383762104889976282319520867700257433381025235499401065748480726070894120320147921157832946065960267055396353205693932044074729300582487603004262634713472596921642119062649917324871303681521254229117678713558684555333614099389745060294153380458174665797726753187704472624411442541695751154991730891176229978540902040991959403907876554125252015343252238710771966490491406906060713821015262035407098727113038011470620517868811845735880855865743169141870166935787459678311075080755803149489249413499616720376005006803638705962135680778517485096198675069978332801374796751458779687212091593650889291806888187370977952739714109898939253443667713206695985349992529934946597057061943725821850392309878741937056710747125074916105604196337964671078192816251422846707661139650461235131998790838411063894389446750400285738216360068109056188447499977751856027398069085225720006694915415804040790310782210916935527151923345163356913423447066008950370613438567732135976525094875911856240022261374413266700192172861539286179418708587604312878399848298749527256480090598111641824798721534876096389329206224470028904479000089615924134138214486940103366606040238192248222870233179393267945067628039675165208055684934412931085532456978192294393696458285781786124149559370111088231678207713061219054866545951077520829062949876331644428852341676272389737838998518066625245663531675001645009111980103004282682319498525766927501971092502283289208627513464652176016531978928412309094387071080056526642376793504089064826798523203282919676427047672401885814404342028275559017946804910113423303608295599608982889272702053349473444818117799459377067066982354120050632783562104429033242733588015266184731059729986286376860608638253466331061605319152143444476944831391040934096007034111007176645334864077845578153006994921465792095754313850838980686717523203577669584034139130411869063041631340027588044137564302202957183752195853508809414179402170675025936367611768792482340707823816216235153114466147630869755426571665270465833828332678283039328579327357837441137524256295950785946305369073724024361314400029947738582409217259435354394313590485276887961558462535621403341111708501302412870930389392561414733391042766309940815214167289151979158405881923875589580442239390240051009049027185717540903881364571956767900221748881403065161010554043641878583328786204242971518592817858408332205696929035058667682186439118726667736734798515093277556290783142051879013866579089472655069722021511064660733442309094269553952266599998584320764694553929349803181440896858509025298861136802616753556311599977892049676256066924980304944363753907093697302388019480930163576154318425830440989614331742570713826460523771439291745133223771084184940955288353911775244306296179406977888559419025826630595972030916084684379629771663472460667693628225584573739026376536178235209206949769156359140982271045682016838169702784537374728541032118041337919415496070275742885732367419619196802799719628764351802068109705848132069116591096026894914047016884328283957760909037068477157508921063370554263950699553986042195083767736116721307308488463244128961494523236414827096701166733040803680301718201089657102651148063309315360220760271752298995235493181455243153783257649593957881421274925273332452785994151623320813671620164737413867660700630657664592185482028227459462499477466647771479604822420695008695496250640396386820972002311661614249143347883545521171584804044451458689382773230872393981780251662367043710055361070647777151539962780254259050667383109128003622005178440147477439826125585389815328184684663406878454869799388593310926691010341905646446966792865749552198535776776708406499167343097821304225823604121132585857626433045476594695744030495308558626543110394663744207210883553639484713419355597996954164551463524533634180127350743189182431847148164865381407230164252830924676663418440279588108241988419572773961677643475186441925278324663034985357883543365271007103343694769912159557414210665819051930598004266234077848940745477150415852717138471329232072646065454314196894130046267763019880391128903436816148584029776159516776567800994110182914723073919130394202465114546058249869162748846565413461170406364918360557885746579135439098650013418536427096562852684187679068952292534086189683204285287711354516672784793550948613571799031523356771832091879321508130737813191018861973440562446714299363496070515385662469644949262186400900103190657951803929277780305282339539263630846842700947768707737202541614749907921247662519737509737344548317846352318601508987768109669336888473234776634425206749151446773682819702035273353426847274491690035211525575760751232985029878599962222836256510168057151551198419102675732154390419157352003483611773557545671503954642758430245689284340319446676731382611299915003674288903222057760643342293369056980820830846916962395217297540037466284643841103309145405616470061700325286083012669343835905865391355314786736068116479830421481575833480541726429942186445514511474077803226925975811113420636617939880107150679761927345241533757704630715580005360014828582021009424468997633334524477091783233699539343926856070940963915638525419705874328921332469031912111454887877525325978250641042950878398088533747782635189619378458113642323211621947919878605476829944873700945565184305263010337815382529484209463608224608157001681183388116279434964063157896738435415479586643805983428563379727003951765528284973793330001542938365876341417287868282141712002434059374567336746402983090366680876708839228279680785240696578219874973878037077028421351855727791787240632577566424743745352097271624546221097853873507736077652274199778413105165142188572459746360241876293560226545525081742651424175029922387230180175061237248662130422983272953297892061928354144535233105333792005352416321138211396876008896733844051276734948907684076821812017240791539368116106621516810561164261543708460788544297571465031833757575041167876366688344580919467318622567429535525933049032145994250085588559788878558258208498507997377338493505800618719565495600513719154312272483616069695656465815424724427541187398688406186810876111062416644448403489072753078546427015993410196005261859073779079098140174811505449391654206101024675559599803033236028122518909359941705773149701706221429376694011144820915046095027269218785847340215602745042358371250859131332218988093472754673764437398935672163150220958158652871100607045666874072297203493614856693535249713192461223447473252792065053672106333975029222219052633214099452651290199957182673653060020259477179043942724625962784386848604931895362047136235388821035970120036464491180099400989498704246818566316303966429927195574796837819030733988212064793659422923341577442737762415666048576450372107420423734425051055424747677200133957201708402173259602334656225613494734360921085618848359668378817196659078675584669660304429936668169812260556346989845040209802072773831937544364385854517487749873690981119756329958026323369882637089019273539523866268679222856060625503531869357734104125488589564797510904695079205263906129249741581641254841601764035527361248647256975769707096331646004320253174805627360458176811803626445220313573699200427951333089011765841576664643365367641427595832639844933215761941521415259615328113401227050380347520794501350543175267915964149350076672124129207985812490247725489476271536010401986660397877625576839124279681826702301239022823386690209575528816689061126672657769589490476299261262161319756488390211367574355587565117315871878531561591392468927821431436952001352906997152630012810221634762619522909477953744139600293949862100030726484619961242332741019460425233489724830683709843401185396741024093821248446116914453417868853555071012361469007787804172819842947990040910395349376505448287721344122668835380702122873505431418847617713879175349021377688863995668484300333929313620492051640412219382094598724513417473926920417608891055863497227399554459184812534890613908447319645027251334763763275220071314537874370178595583061025200028299031266939365158500041811971107203516547957015587385980172174946567191982235354476099479064503471913203112913720601326492509978200964095463375924630014052042361174452575766302536318634894908250848871468800229029141471983385767811033065298860876161586802259251045666273518804864730951122384839162529717839675568026226478909165996631238409309326298402689926308794802061628884213874497785356183572556710977395856038283423511540595165665561609823537131235777726146747128665985629646959660879899116401264353915799146963817965799875417482317838672310058147350341929339270738877112791484828658941551436975760437221124469153910202188744717941971247589107188901047283015478512742419361653588912610068350654843164175994872539821681572419885611119687229058287137953991649996555940395873072407752795865838874395427416398571967065787059170914173485002577465233409625604918000305804589973040621471060523505948951272467439376516798838740166217204711917086025102644787726882118855717946900043462254214630094132791142101332522940925018508612592931136471599781645639118792927970955903761745511797842581474406135741532040566947891555585722139791357480795133333712002763817900045989491651980418946071581271636163672000909894341503082060378101684310816814836765449746644928408021240009297975437152572222006130031728560342064061807655543704153301345200384413409784865743547479113492245924896912217457625308227430542399415163876992610259829304977155688331794721258482415079379365752352634789641012030784764324892465129292039421574446386432243369390017553681384716937954465171909763265503509191603911199943493253229605388879930735780455462794801757247203920728042318427797530155434877876694796028053699203992859037477147937545846194563803099737253859942231351340603553232672951066764583366225962362503394094000984172047023162395081870090502427503852895134423328169530338330084301877429993742388851502478803082879866460871001513210607860302940444942323296479586941486447578319702111130965211570959244440842520245914662206168036515661843694998190130483606001867538779573702661449736824739953300643731460810031601528818872722434963283883737021979892285558171019743784268993315928013464788205840954524736012341812029518517024414512996237180415441470054059769139501068117533299841355829810797826361929220585199388942938765928110868972041551692192824105578822226337199880719342175876340095460282007713615071086922080846734420525065507338373107393202582616399489005452556647256448994534872170210414690548052317569679783061053779272712415885792933096630691581484616688408628007525295140968057503157670256115195337989525960989919291001857149379147207007319216488076896622066199327491909602312163590649490085822998620143747217754387655514789834853008259353414712399651367642784125382147582056636842729649417621900893062918445025857286187149748861320286874058772372495297531539365131663736657554314768510940019214976697337764585744286761802896077670906685870045286051211928239790824342580675768574586258172793310385729002560541018697943332565801217711506841368670998339572157556061198672869211167156301461051642294638620751748418691085204583246129121177151064965265666137382244516541179196268562437486695590435260739600468242086163923917892503887144067769926308103412039345595409248354608960089353255518644003688026197096847936020839185894156444044630262222059485845421901891417690882462187532019457791441973869064095132485277708212108926573658276309597079889152185953184719632255625182374907259228963590729035611936215159852397512435274680405723212406944817585735880324771390862522603759392785356837648179383273185575546118824614909989633321797484560818281829537828604703836707858883131944133943115053145631686885609531404037449880645634198218957758605841644799903224026538674714834820638622613310014388454177913410219506647858302196520498334063848643614742377371622365683284562984755233260079068028922298336521248362218992488957548641339287443838759287964881371981641379292850443128843324233684001872052718658543843775693889846369984694368958588328731229166017167745345045571842331162515922556670781983322298965417519950242830536050228681295545837574838993530036514810518567831156276379321676611694320224160784696266728815677025020670455262235787225499796467411026326186277560304775518477408432508406275232523275520060446450446073227190233397047642512162773336068235804393934832228503197926394755357592945348670776968318671968147778882465746315170647615824223850308398072154872013245920227973591127113242413678800014455030069741579333382232142408135552369731267285783670482992584360790386586450932476825643097770129801466738277160633588553088199349325021040192962252912000691559861493013521950188744451535593390040450554924616507225972130755671504140118691937213637963680100540899963636197225213678119907385759566848779414454083696935460677254691506072534101395519201958290499003759715808665569432498253306207674864402022434609382458681006168884524102004905743050649962031958309258770842135796555290028748081382558295563857479697335745033736118255966782503425095389571006666021212602489906595042896652113518291782247556775722100420993932780478428483002899129263680176540632803891430403016505932285424137831088059118852979282936324849045948110536598332244291901339449489478597891828645299984820691383973289969769775602686519016140306950422546621818056718613459445206869950392350130059492871305823993773025255335967070199267430180994557100634882728206305394275379078734136822054919367957018883071603063539841395285383468028894472710298901530121400858652155519134774418283121424655446600673895447483409665275727847877106561461342820770991107231420107222183667442811787718722332227799943035094312657541882949182400818277797872593917995377005517792105462635288598263431930054678258183616718536235195504138093713898405214970399176960737853283577769043238257187203365937090996004117434770355551585121856154926419667264955030786864733027085640027814113149167971244382940787025162528411336353109579958806724765271858343574058236581325491854314252355474121028885092473203799539085029689804065691306688065429694669527079659266809312959579869988068273597346417515311506794084869619762648312827219017179558359714181239090464155302223527617362106773378969325700681439524400043508506947041426081343489101601986289707715366278753191044422389433173165948409077875838596209143075347669796204344205868296509016405868775221359581775360937973190236577490054932077624818027952065184154440317096282037645052786626931960261662134317218209159003211511923719746518119748423018570898577146830115776200403059909012810051648446519531868126381598396844231208138150236652844933897695204813098445566884887386501313354678773323192538816130834668881963169298649706676275962902925563341336374212678988776478288861289935446893442554405873472508344566074231571783720735958975210370947081990777403253743522493280915712815049859310234792941132352818748445474472463004430334976945569505394420484679264195496016662702043949862904614657491153529728338815146958092683645448438957018041950415200294459998844983813032884399875718024857421090113643987971841701663321865616508041599205964337917916443417921002842777595082853988976823115471969888818499412622954693922035064987885439563968734653800706456140691283598200427131403390594361273282891382436056255429609026770307758133506005433492270858421902661043011593060146759803912819911725198708152977273209755490192019581823265252885878679459214817707414409681091767576075104308526010530437244173594192864591223988382173665838041852672965963518841620692818513351316659237661769838011832913445235745392305964432502983447340915947812673842066986715326479987746772377294045823543520032316316568369277453895211228635457154666548263901408299391602805813936669083663265872358901279569520165101902663130517978979793105261612606846733278088659285398981709136459018166400061222672400231087258000913648215185546527303727063994430899575765117578785488815152809930816679541751071698187667611861443602143762435222918457863533350980572115171464542029578645474961667831294698587532627519422629014860427115137213615354812825814469627472185876071339718608149780337716424891483232239004824320810474620873939581624367255918746421023436605422179350476600671567326535442537209973934926255344708076114602360063330930350399932281656817585032394536002097978807577666422907535380642164616178326677082849597138369186564104160878763180289745057781361525707352524529203469768583639525401642324686096957921717359871791584198800624744509752783440303375615171619297700896904302033397537178418272289895732414590272871559652175350266529774776536764109076448791505771886274948056890198118445043349955787096035959988333119308107271562648603585398493053027057846731933388355958396984981971925233485698584660252374211438544201603208408671272738184784743272608927648049976879566365356685923963971012889976075932940747321631401162184488511038882829660282290477214874081103271385637791957978601363798623150238511747367378675842792623943069767968863755815993264618976901956874351412150059434245721283623797153957795570124605770443770212178018432340890157923902530188143702487617266343066143908206764768321767625093837740847006261261472099461614433194379417165131374878582334282604183531375095325224931989390524133545476539294806364641318215342069125219893087506157407651515214762958514026177155182591715385351072738468339136203419068046865647390881442199798542423164961807058316823079443715765015544125029646889149770936946041366556859223485771990921956879539404846030409685055171821261915958587765831181357125181093429379657150081251581825510350434390678812368854085666695368946044336669203347928988837760782824844255680096624869322630746600934804840117586565549312109605536339693698344682919303738968040636074355047706049390942327364605121388717709502053243254444733690038784159029685308637367670649904091960987390161368463843413828932828177087612324225377404022970501744198625246563548987838580261441184278394209176312712014949232705650991271287288065392041712814065373011898226032738906314377777076405477796952822257544096925884430783920962822080942537172601806403025981760530359478486081505249381050870008569087032277154724739485633598240471595266228717099515796870271201220469695775562118286011521602000278800761116260033282627433901262270085637404516810658651108295801715191679786550144259456830568216843163841775174852118253445639076404954178548799705567466124331598378452741893674019671002385197735530754241139375267441108933855264290477907333975657358546343151487539966945698389472251194870126513654371061232432771863430815380904526494997523858191450934445219760231821409926314835172333916647898872239245022505467765849443210438966527124797151515529265872665377969613109517707117539138389793151747738887613080874346132903647580794981574200703429007440158077305908795788196480017309765272882984296574158652411800565462598222068536640952395908159749655768614732070669834710781721658906792532804644839288779782421465042745010319153207266194435609632342400353736361775135688206138461526423858446404897923238416931839260852550498999366594428551775510841128143984881493145664140450017757635496919148408990714275113602099146565523930286680389954614383644517833913544721574730296661748152387009157981602600329396381017095398794943707679028612979855794517856624529613282413414752048199847806389761481588204643451257567809416780901122444460656007413917443064069438989906477469715181158765174780887568070671899009709645787806607214835495499960086906862843214398951962190105387315507278099096049608785988665427088496076711875639128360232192614978451220220905756210200601645546477506680972869453132693574306019747928330830932027406433600863137648565981586352706476552848319132270858969708933268316163593374253724673672946870523248475802070205112645405496714305958803091410417854848874413252829188102433644372917027564645581148792891197916653085162811337579868366023222960855202658053374394931561124318265230190918730521059032954882633021668157449516848961986372208972117366034395412099622254691101674869587675477619714916338020325399467083999313539064822824276954970694536114750394829224635446401461217039167867325950404743719695116395316689382426746110152672154649121345116120031916378638697399004810065276854905503860404227899900545929684725048021797548975133075990391182871858710106761394060204810050466363526839051761498498138644820141778701806860172381407877933623729442114574857515072668913271349117332413102468005066425044912761584217051706275879815951257074677994113068166803151998342174230716468984219583295105771746860188308638578938167756221861857553731341274185173631854359208440745374847378821818367409205527490437284937483152583435977686847841369576100348831202096037861210207260686475973953015068883816345100309967297373127980850069952670978118832582052648309616245807305397690766705231944992697727123363367781478958890322225959795174969922543769957672378921928574113776866785664676787682744607988619975774940084797465655334996664550117719866183277696267183606089626473047066645230586879158687810879513253014965864279408604015808504049563227022195173359095630843319571226986399427480062404225846153636362747393220163686486169206556089454447488439023567081927055927553695694229016125595752458281233854300700649467778241890982161418164062922144437991279787619871050687872804571045116522347395042491185419277354748659123264830638603878133527338371451076309176053035922443949430684988216824187674684542165189777396326401165709228461240247311876325857115556937892806937617486518904548966813052076339057162161363256680189066661972079652374577783725094791189768318356633127609047072802017639681241559625613076277573022287708667116307338410847993361552612588261358941219213090870300462675464552718845124826156254727530222883646118412538147457075140993817835297796223860153565538729542090402667483018498822412038405692817938214985522200694448781231847233107373054734208615670506477377067323219476254192858024742905601074698489968000856004380643417288860557345546465377956216799497321203308343155619242499984575590651631725125269012236639455896075708065521647413273688581072247417867035541397423835877859280388974788884839888761162701290913917093029467384848812232299061286824448042285337081646768159719950758092322722142903478710273588267911294786762779166722172459474793098197337140401032530895497001044671058001538665696863462805788854978459444250653765310976100870293801244747143005658145331825175670806433601577652132690835130368794682083525610063847742389593592567801265976025858140807418819608335606748275417107368650908657826468086663064972689421753495135754976390246842714913068230206171389801749816986334806372721045222498048611046453240484401714194591802933518100867911135040611275124451856212679576168417857278447055738432029250694247685817049196499927982267666844237315546197588931764576935946467484797322276926425173316948158483223062085785298684060309135643020727324567899535036742639537863728041479622380560015222455827858445510792048909318888558808534037730898859204393442549262872040493581740057508676107621241684139401063243926019245770092042766781720155475805088809598423059151635832141411913811388266122738023193771865618606406105319850283751226790698916899562535631306456403716505721346070861338653353965393514002925010968936223272602078544414967084922082114719093855258403144570519248100678602776403931396535872194666913896701394963223970253773845493872577508215467999446037713865370958183639225224392388911034520569021327052085725215840844660741183873781030991582771763498035017038805753686538681288544305820795910768229408888690003515642219304186033203841893739981443741767538906564299675794308165317737119051866330217710563333448191497099228709495923449331711457484209443105168134327669580566485090188842092897395794267377434617607007634602783536682607558284353590303943873527884247722001857215500935906780883060553557594998923751257956435261480363642304889786465439822363362242588304660241107793974521867768113959104880660346867438088752339588385578259476721424423390545072292393357754420340782461390148538560416891707324144994141217082805397392618235619938951186917216290466913749704087694533808487703896670374689741647936820875557349557116166399977247686539004519480272858999988954959272778388646089491960135472694198070926557836117847302608011631806197228009382038151711460014617893434721931080028971498620799253455367718573931256823750808464780286708601380725727835155231468177162150024047706165023076550853984765330760919937130107714436054450620952208398640522889000731635512579117182559068257634695527046952493292420669722361638062469643530744287918860189831565660727345788797541328088797388636040883847137071400460385398720271292237790609574345976309369594525633958435291789076093828435257730619884380330834488384976438340559605892643523696764766312231179099206829077516536305825806168415547577385174116933197158822237933550021839496099070693626777327933698472182067904863286688911426180765248214026467010128369396570235247769238324167189722678320356524119202315306030092624801343830012054648478268434760831195808452208432070088491396247022517056489639599649540955734048543391348077361395079654903509121361614747147496027103579456153269642699559516797291814718496516957868759897917740743462035723849696891013746998159486514795345876536191123518427800133207342306510522322723452182847443555326205293089916475620431347909860510993522464880408870092394905633069910341503738151153604004059719409256250133132776138293965051897995360135671026439706332603754749277925782064523781593512365595771093576750598665693211577745080460242236277637611936689410715530223944751697952000391896560314745188837271484338328289516689225538361524075962311267901918730061492211700999024951853593706994111356591676672075582974845868831126602834752827955885427200995857801654471979254523635917791304956359301720506986771953819853131583451829628874968699397953756015356888069260607241519548575356803251028514991539598075127580572470828385254103225212846065241938723074090378738664061472799238728082830200121361168630208003310093155023178844160027745264317699396536591558450851682013112879545188709850754888412056847355489822275268930116132971956143043191211969563124075901628939509539098527645741262084688001119183550382749415235063574072319837326846936585604729017961410279562455108608834991330265563799471715884135122659403663410918319991876555115057314417533314637840985371693816762397840127615130074293828964747031047359855143449543910393759998831632383775852916437466896236166532174061840679683633707253305042506140723071866544164738020813083375029346204803703153245051815599925069042430494751570787331502319238322444755322460127271216330813861237042178401676279436727374648315113672639185264319357619528141086958713163339150508850496183591369742026167984805911287840573287299826210451514215128502958598268319169277405357735717686063746514714236867580256823000561849957820397476110351618100329272724338029150592297113177806008903198184323374268005021161431342837694588106519190822606713847285767494845942365064056344596852180239168035582020939304387652192009571818638456607996599180016020723225598899745218935864036195602897034217447485156698692061525777128727692396927867118108079017477992853423353397302166941745699800724994313134767690206341896113815339736852905913982156694103163158764914653888178049627608042482445316124346028751905543605569020439080353538710667994024188347338319527594272657171460924913894299756033199397536168476697413612207811760580348784991329142806687086131304164937297839419945167701163853367380701988036394218440863244366871180666011038077722123123538186993709026873770060313077443130308980777438242078294017812226633055050488610090281605856041621238726246910010643671440164877570853614491378468210100067543817820875507699931039745919080968485028449420547116302496900739237802811875160676345196598123147257227520627812475849267208348743382409436565777633719589829313254695720977169899195081528823865998844948313057998321088899750494990104638512908566726147444196726456201725448813200564851779370763236258257949852144714335627626953103385304544724224810405128198578931939381401337672286452939977779620564874633272050294756313136325333188876534557440143130688034747267243577530654711431463673357688738771606915157050184976019980687207938854403663031778476547676387221838784302667582419147490203396918171317794500697829111159779098886194142026233930612618359693236896758001067550913604365823880744870512150668079758015733878383657458836188219067795533412617417846542340839300791037131788980380976281081007011564571235671414813339366269602422079600816606632345821067936050339633292219737801088563733340307908110862908823158677616679479586549686404357004327260852209333520612224624545251471518078852540083366786444808991986887425266760404461764690017558255309331821948807234127592591713090905797750320476192391395088862974445318691607187812302531312835884173019763938120657983845036706006789139059737174830994564877246251954413065900464064490385815768071546543382563190862846884128293715534075980460634802637033168761606230106518269307580772164454476403519349692470991510643606242526575516321409786806784314158025338572832471324657226980741488707952874568752420627526282650401218582858649913194577586118606672371462328304515294972354029648867252588229513684375164167803130591056362757745500149020371063012020879897721038393584829769217979892478300478104029534798115690514793237707885694841427576438531666745818051014049371317889609498967819655565085892539025768198697931505052515550789961838311061526314612543168074069602480267173974403189809838962699252856562190771230889833458812159691571805288767734457776300718501331205861043266918474698099253407049503274261168073492804704738011271787651957363456956702021604550991810845415196029262786671507302026229787674847740375607682364378852683252504449770043168173812383433171811104877593372316899122802809033474889409934068261773650331549442563139338213100371499488275245541221645732541869283745701584678214227993525043133848422303886554534541872102866212646156117252616286632072579356468840364204911112642528393039836112803203082919336984955577881633299905609933752427510335762975693993687097713233121428508037615062068932254390553925655942191573722605578700215846575336496805455783374981414800629090770287856327646951898238739277087277467849329298600595943765141403522961846582136188118215651325185772570932572726150900641717440318584549868559880027463480017681535155987997836803006723711891283010605308580664351201345245862875587746707532460812063946550981868006981589711002210241023427252429222994516978868518180368621002944003842565335194868090145869061376524885694845841481991368022072890386901526586427772692177343156604403857587276450872946782339821786345463827371648919532420667903482914843511180866382023255178752684760194434351069047099961650372140275259710139010944540387868748408289441273658766454547376450280587701639990717825837813802199487133626048959859613290256022743298097283972753149017414396703331405201123813734452634959770222717888983403689282702119800910325594767767414496137447074981045574813415598693925308427065012014664763873028816070187229311796962715290903171898433057554173881677780868669333454968143758790875128199647330585646509047108778553574035839257055670102902363451091739395424216670043429311963750955910620801043565402591961554188107204508492837271996194219634341561825218965537257627679426381792879175773640119290182115655415914640744938811158987480618074483030240581836661652239074201787406486274141558588399242325467003152898256734297368485525889127303041698288677352145656153359743247665749349722598569463936161030571114270114499887266384404217483254126941438196523221275627115385436016168959219932213758747737710649549283215642980710089381373076144699449787538565557874758032593032596426350935210417465266006594088541187190706926445842881172432538314006156236034555728893528750641346742335548879918770006312176947050309667599947684543839674063463506567246787207169302529380141994097178680091329081754303221116573454849267214626101678785712234351067520732689458931596911431639041587062592168753010829544259596416441699222196659204018896102064176341614202267502362661668069212255404739524700912447556879253189689985335411264246779430944838019034458410877737976947921629615387441838325497278458852883515058826530398856709655853155051996134239024424059678392243596044226371705547211844159648793415224031264328808813945955719843030087812912554336062933175280481786354058608478994608639643466170268985610466494038090369631854234686571216101302109685625933091437888151090522687428980960337020200772212865847105276185796805043029284181153055121380833431279188010368713162439505366876634738265711244203665298843711850632974260871328662859646263846802991539685824320251019654991996982247240806143162694056882539601103654772158294683021631396056213000577216106509594589004528413042921752640257511116292443164785290676385511731100224493638690193273086539951344728805005723552370111558033316447945884459982420149830328740202381971187921807327582340628111997919737078611650706666384808510984615702130772871033449982976079687454398542131710464215628018212451552391888990130008637965409143717262863889325235353607677771422050155209881111390711347126604772452985831057136302477117068602697052987123056035735490695934986433143569400606611436452698249750419921423343142022284824292211311350805094619586395050657018883956168646106136421582936797602341320794718843057841952014591385380949597794987026595114733777942745727326374242604959628121426616553486126127593982963808046654090466916035389884378734775538848431391462927342646852142268903994317519884742391830145876967392240301090750005216600749541625452667367129829708912334211133228132629423434182001026197988278808629119107201601953151344417513771330229349378672376875912460883228873495643757688894939877159058444533853115370422476363516468314113645649609538060384784999766522520123645454571380342095733663673305736298358660976260861541341730787327070643886769305020293666436186207737805999652757103390940117455958324610719042700787464149831501929415546736994065418866769866751293940598412205556110147153757209130704730583913170540341614420666324948467592468389677230328309658839634243091228330605149135604413508048315440404317046743335407565724014478061839367045905980445544882717703467916649001356064785966077549714302807699372943101481071664203417307095472655364476938815858305083717653831760964691173007368222439465966940222878952095893085432796107541594508715391498568921023991565805153964323886034440164556677344014313655976809813401452113429049339058140322349724781894784773219190049244239181514510681603004352328001926725127154715493207626643849772449357529723820744711448908632459094616931623374217949244583398414359791892565315817115071024839987434312965715507534059982104562896148779769219965892026294302894735474636592334527364765024625237206405314025785542277896519605430589305744091419155152542104184808276207466682271559501565720857748614545817981512584542269495977685195850375831772258544891579089614335380254722986410216427236688176681249364417436849472673353018042168027010143430231878510852053853330036629531081788167319139620718661216006764246362639598071805668424781055163535911932017843552793868950967421180941938902294865603799702943957153820734339701443548495505033349677668866653545552753468212323779106739521927178663926991124056508690418700101482384816317003404463782893714845064333475744960986035452346148142035307175615848106376673916931331297403485067346554615375084485320788669193117730983980176298660413308462162035313067433114688034770861489008846438479627147023329525948603138741055062151333781309566175353017020132055697021032344506729166448246453844644834708707881327126606212937366949463977849083879318097458638964969188846468705769107214093969477653845028915684633790321236854968055799638953823346739666809778152880885904287334464787760917434692781374684973758843910918777927931988101600420959269239888183802063238724874644717645436113884356516272667545228010854949524928699047493126223814210214242501145016475730491144175011404674492945702208458795718452447162379489155718555754343126949199820060816873182428368706219851474965513029252326089133491443403875304505331060076466668370072276152432118266948767455436054457006088497000558061543281439312935920781611924244329548290694118588179855976065461594365967574681595343016006223272150687359899545961299739543180419071160862409862298975280368057394724713332092570680114824244685276903621295570900897417896061789124409513333267808628472508022516675524388124446514645016575256995892211253056860326219459823516479694820696204719366118910128777311983914395494626084981051920771371345654549747389412611275045153916738028213646908669622437122193358384836408371943098594957366621143265798399337025182300964774585573620892599223327212811288083646084993556722277474754145632067149820496489200029043011734771628994845918159808436969151635688531549396340875284632334991995077445763309635594825546563799493097225898011341176274435931505591527533555709914857689158235079197269508351416040642691418863958191021644284633311713747428537355834713037058922269017960709147379500503610596558669159520986739988469256762970044468212479164306128053376262877257579536555481942457879487681110586982116515734711268403418174117758882956263076907519822012079512443307907478328738168067196268615928657890947796985024800307579974251744373055409959027131349873993678158765228997546588421674219037493434554540879515846930952802519753287200786174928159488934613442833186251606557769048284580672187827289733520236330895168198593431013292213851042384308202969515445364281535456035408421537051698604173109546292788968519907792428932425410996602357154406130027783826641276859214752714251293674638504775531333395206345211764260149468415564282166927829223970027619851105858425847590565199410560162141359812879943308597966050887347623317492456984093489619251478688950566549588718033889714928688599058156532287364150346950915699955229703133435982467673468819926883582290798701984940947154331964544665008054715609664677888595098094515608446487848571180691409775991038587869380192938500231746693666136956446102840358179635357887639964485070336664131483233962549839970488589301945038631471994715728000981113104145102239014993673733428176355094657124915417818772628746701166361887189696054084400886521270153747960299441745841575660864948101171761976692932256102163356605586681731658332477375627702082051872822894715339814853788816229878857510626062318961812934077902795145032121052981773116198521581713600863801956892072842419837334838974406700551022547413369707493433909309723152663375044471246303840299560865208089098651883173581620223596035978485791168985969917781199067243299352548077611831624755982716416146810444460312436894574061741486439900837894426872173449561945723545994488138099813602133478952775984869700832401621827574854657709701958291800418033868479886094243690142289692761686149062722813441467818222630276103941924223418308071539095182442876689998987502727626732539502077731965333313736005051934830891648645399798422752880584540209402146299045841938413650431671596489447450458105702486897905814861811873722713950447860458317147772256574980871767734773406204600300485219670557683846456378723013630734629716001988730027726329552253758929530042541650212220258574645899245926335349669910894900397149099594549789855108172472129240921714913346602010170561149721445089312647945131945467216671643284901158698213017329234377616386069582733865432501315601989655523818513142774789137623222799579478772263107504740283075607581994217569902641640836840150913102372016736668319083372176391075704822464233908605174354117196940837499713494384269140939919895484418016000121254443827160500182319137966701936075377150425390013059148484159160897388606112607165624860489009594257347731717315754229324348624271070742466160672084168665246983731757962738726353095479656410663829652682634767548514961048583672000015917155265040317246541092490952342071523352040287169714368492614311925317335639699383115762170218049146671384982203835603456644632995070108387152192894762709277769876107148017235494997433825439147421325318875020784187267954139470583960885326085790142376607290167987862271099093226685756347579743139734831544359801883474573162146388779626682214874631395717352448814568080303710029471743875333608960324763228437342418235601877733310616560513179503725337280299507769143075055970123259634233382623398210120295203344512540338552701812032842533142041107150838278676950520551614052174253342164071741864953130351339189554711813588731546429025256542477741291982802993138946166888933031654888783855226805512863455882186018289913662200477548441432507948411610037551754991642498176502396511017438936555999478553122144419301855347284472898109695018413625173097765230442461140454615796156146271563710007204419659387912919500980451404416491580961942597269820016640623685659363299030421241705785593497638634630768105648238817899008430945776622629422784270632463745347537949972634001276187749948978517655029567088422793424028062057849549855581031266335110217912448210105218443532391167888589062889862989346743714848888964410957128510098133342567690773878734048702594330462676716986761585110089214503698086301381811876958982611351703481327433583833861832170757551896988635375233642433624447999491317422080243910926919221607634500644733951654204408428821958018412205039691257088888529728199976784801509166805979414418100235031567293531991262634886621748610482863991832825217932492791184952215707507235463805987220816785991518305462305339163794485393711802768229995360623782665485275246037141023192250693337743067681816110222721693097006164928998843683205342149874367535767853822456655550200477288271252062306397589113421485007008634687027231660482674184556405443275706978939758502530322880837349711038562940728780986249544658829526633986023765813826831564948249242264912429480524903406487118244817062244586874839677313745804961134471683149981545395652867773660137834091122080197532581992593749515951197772408322789025859453915502844562272356950821763299463156955999089115027092499484998345712194227906750409017430428115831880089963839815614621224755217837622534384505130830895161816080473675412553920033535019658688307298121986683597755181768668995288430549011114242830970876110509838712296517800530008409921026388436976809627573746352840013391773136710113734181033161697926997294034161604189801364533348455900614973005889228938653162659674753777491989643261316538917162674906825224077356461507535431325854316291206802953509745467656224822122157512088468275580273142598625230455492880295349085050879095305967701030394522874031567119688520931137820390227988877526949932407808105001693225986220870688943942786850574718024011539631508428528472460265042523072361698090216517136002236828603519510733325960611123490716697405059970764749260915825205872516131653052041140108218708044168817941358747635438536508982543480376729082474063893082765778305825808955623839123695531722679568746243169922400096556488377079431412784757755885480318678336135935624220716801851834409492878046901343110061712865553090692658753184519703395514066352323846214618796497965541317071096679873680502731603522653653135325237271290162724845493952429492493921662050921064405258199305053307260341334941079426970577669464409702469445542346521269736019257073651405328049698213039554337448261242785366398406857383910291272388860973102845139405070784917772170519231488304509059701408206025636223453361209504181280167323009148296605405441350431786548367892320552505846443614713770281077102618969784248762531687267565643312528075412157051542762285029908083203021852963697536138642593159185513822849832242201785933489193274093161509336664945608864167596109642117422016772877276844844451145959148863923104351523019530941732725419981814648705585545339956818690869801584438626026658899040040801461210234453329358918991657720034793476752962696689911017897945735211326921184243773955944316042642064165748235711049541577826669525869708412003913265966537166317539117129079739858120533565383553227874985245229344472284091148439910156397269535366130123778747063564192810482334094259135335909653886861935921233588841175985166559643423393485735190826538857471255917687063231251604791545290804466338040344234836946947757174278612619692403399353298670171824964625786558949279721699222454831598028950402437650113466227045126415041300991230430681625096207474226554699231159050559151121132683179942261337437416663409088361988470086675876756752082099228714139778230699163661764511848605170131347446274344577143987740620925025642903978586462904349793612768866400418865796707995464748160266030358047246929940932655758918687082294785337711696648226981520747791005441147407844378834835962118381507197837361816661279925155865040833925809878632710927373783565250192588786253564852838692609757437097672091515595672190801038011956097789989839639307982238716755270406805180012543811643652692974759409932129938911471160852550224109349028194828902551574559806213707473543540081330353133045733559511039508799509298633474048310900895827165805763632084538312947816455751855221751298817889218457581435315409806442721661247007060286379746676759609698204095253520123982603144226767195816476198105728525188708207027000666760788013425218647648237318793531413261726520513463498474821976261698821246979059834069299503854013884417732719930214037960981833873360203884166002347371243249175366656513347929409365769159518461578624944008253446005008266185330856456006440943512474064931022106804954328331808066745815359073782548152711773129444896448065409662070814569841221380786348427665835295570000780303361841636153199208760952681132122969452398576550520817053059567895264479224582061281188061400560284906175538663146399017087804772259648794369463480646667318894196458137182530942609465132137350116286848713621760389732536387199140299636329885163698767896074534790634419713795808532606268545869389343162452379897280145031603278092789508131758877107976363242583259609155555742640470705836966155189729388816999403209196631401471202700456169566655773192587332723631475736365794960353802117751721142847847591954623982193003975907935067523984354467430944232401552707179485590928914589654470298138933742177075679920228278571246752555843644918334249244491925459577391189422750465340588509473653201021983066353582811811813496899049005862937247617692704972991640826122707913662000513536322675875127253421891208187417185148935128902339590932505595171105151175453677973278161975857116134732128519255482758040029988230839210224895943194988264036359243819872739836024306554015420327749560227650071194701833773720022280514386171379784327067823792419535950741799304555010700910862795859247047451318159643618026580815531276160999456189781039084375139713325266270659627770554197132796822558573336117703088819124211969665372387634054225010307167202568229387493683692857030921814527539377033688454101199912146396778174382489679324712303200017055412999451521091779831363286142225157212687202749295723393418344847417288024251116152408723661014143937946736742955570446212184944717812649833498582015796449208485249066691090025391362531138997844289876662794392383764365708778914911754826349741498630602886493751549991762682653854645767568304724175325829828754007066999122528155179295753831904062586517645662681456050929666499469299314152950687975747706371688328201566383652608943320250727625193019506987668698162458152219166257060281410243854655416626441965877477675236305503291562899001216819644211193836299445612444952615195014831638014191070658246312307937714130996922886076962880290732539495727534350659332578947113289544616752629877677819375052058306543354822037578301498847869073503553398949556960064231238093800621886143976257619694471471081778670893541487302161869509011140973306874697869744165059234706917003093517902386404288929620756068752392804079815967835245429342501099811788383661131087966223480656823396669922343179545897424310411135161307303968425258441315465032836885333919802514244284570230490027871827611137907683499774431180802189159658114315206097753735272134166644053571855937768149209057591104166318163942660032834299604566753914579199440996341697578631481726254782722210631298089749110448718426081641196522476001251458993744942961623823701164367723804142998651934358803909762295573904653940028249391565629998564396393299900347900212683266363305081303894410113362133384553800608061068143186471881825782652663380637695006277201166305189118770702160903703032535238492549177105634129438473947185699924665146866822751024823808777602007432933988218192232034985765844279221578374616639141161377612469122881309172493545340961066656488056945648196336612766522449360594141602415473240081062488922934311864733284188754092091182605883138095888728730730177324175612506183556706378204747701783049718410977260269747071876067072985668419296034392806824637065520208600864949828271456839040736244813379917844890922264615019881270566017929465985779239453702942770745258093639033047327456559893203410885861248863415055529733702939685962895024495214337282080309350265446164344287967317901692378342121201981748791041885408350958679976505910471280064520575688982989894378786857214347835079772545454040432432301095721929586403244659120285620741035988295866194457896234235062070086001703256076417517637600873780025603806881593009535923853321275119515136469914045492837902103789408055598636165571045204674518418803445630439457200597560645745562860735283341271433445519851066541328479561309836292060294740497600174640900185820511489656371532915738295945299230108805221824750100255424615474934336792304192495666264456790107326334328396767136041954376725046333119617207229132372926135066160718089265599913852474310573047980959530166874186150453361223362765532178219503262049709207495587044855012756022743012520908765375948274594655543790242243823339422908484280904464509096942069608448307030389018511098933041080258490102852719089448070924655078326503450693135721978751347404029078566558573034937078408289061277724661881392372886274276407898994959523857271138922330981559446016092214132589090410039124862010495904450503529649713940238032841250903298377808682458442658401737002779658680065442746167206517335707721510560971629530739240976011215439345003576331998910643307355124548077568873804779819545423148673565764351621791005252725414177971067278150081223691222473735085869081546671051245213949249368934908268081429411406700389568807500996126368922121081850880211877691360608249579811826189415387398269155302506272246587673572272903106735693799603052100082449067073089191839998733936591868810499411087165529703233427168155273820880175472671709237701324255999161139759974361520073742296990323674384254624826296440894827168142837476669984405366057690853694095294426586924137126587908417502662058877047162759633793087406203158356967613037742648714845814451917535290064362631149258419752668212047322251771132665011679540424004335259915204199812270165194691918184449653525976849094904629480528671524477534525500284049804510940480992437858990177024029367984253330974299504554318108457335190282505802462123077704654340372807022656362837460374456549112101150507895339265632511812716107592921520164379948400769456727027857675700873780464038305172228294989774807750012106764050132118507858729545372824471984598220900750899047999380126684069769452853916820065638205411756019493938720553278245584498597777065531555906265429157963702297130029236891132491873821766150153635107948940803168663290451975048051502136490425808495250181078277142997486817559414886225281582239464962671074145909373760647558238447077315454358435377438136898924492715806171399160575739282529449794522600772449223978726346105717150752694208897575588372648129486827752383319310274478539286052251321575736525865642318260572423083940461198944923089433210699901349249158047786893800257262056027453779072926243546084892878717110670675334510842240583183891948398837379743942266573392433481589450553951649549950856841526551619506928273454153391790241322008979919782161226406422690207380010777293579704696554144185875080384368745086665690746730513434776963067917171399778282438682241363328913089150422392455386715558041436912729025943231828562220833749271385230228031848744405342200554207175536072154513220014871597589029005478285455804970587103127478473027996771839830376145160232299291474887024590146564778182662615073821230772952803005781294127489257611345077406486165585485589727855833282234958556550731603716885896888411803873788384732798417538371598802606876028533483565936303903659807300082519763882082880804378767471727085293955293575713278322235163136269663242395311544301609617640608716534380875903310042634381931741809192130071605972959110577110439574548152949834250190185104737205073471568104166690486294397912097845820643890760553166540168346538703946089754692513321711411970668845386373312749138087781855090004575889963628743916153527392292087842317906952467067263537387477796673731415173623430150539575605341791785208450124964154890813088278606335521714686167925847288791322891902071323220678842766663019089811591157640492201670273239153714724914839032494241471930483041275121310740391918784043219020574617924538396036360305804363092706773426315742891120599307004302580248352259143504256628047670168097885050206711762646221833755664285146446322652699150507282356149678899000874936179648134123649416752866650828053929583137663464599039538132334246250247147565083086804861349205697383396929850539384739027727913457406219408224733275857839946769192437416299922798698054198701391579387174252108405454299823544766230349289864315224842063887319195850384638380257789993027258628732529564315690378952195866893709927229375728127068610921617129022803887066281317460892351705715258114610512304915594130202797246585657119250736598634791834028297986813856793324212087779896322801870249601420790321465755772402208741830215906659398822414871012934710439875389902083319558120668603699392247819627248128898456288737569519431561938971549795001953544829558354155088970388261704421092677605427068817350052719183418609049984751833680266617024227701630020945373415419483934793648665337653680414579152201261486414298621274110487148115075205345362937532076615610524202090644688407993454410365809106632638733446556420475487272532036166803985274192611506445792804314038892376135218463752905410795237965426681124590365600058217079533837045951570589330277275314236226162503590191793437210972613962872748438483678728535423901354390956139136389822225653701778924822398049660282354333078908614852429487265776651934789217166102379254339980337372981642809736227200744622906678795298072328185401823498456614366986865820469178879080868929879583984274088984697639722759118397873381060543614285955293728216262940968763285469315522389723615242678938960566616042180552448881324185733993370371525144792043713605595914406529751046472939180395935470782906206102250317601089522423047557914767856428362523174903814134722050792994471847168094272679573157420638959535525809674506958580178933045190117013827911283933175767654566562509636523770779721663784601168230911405329952882856669493155338516757385524092198982215380419700939995206803094545222895853919928329094725622138996756404964863060264487844240433349790483459974468229162526132972858775540854577255726372232854701365093777017626910220282436381457246993344121725357944075963489941052822122140416394918338813059268272262310452525237525034959743573259657180407657714634652492015888525697991632779323131785448712507021658992043717396873038400866032669474914962753346872951283088801585234093910165197653737344880631288120080751833988225402541251759225187640730698863430706758632389865647549645418277916768119483443048169068765232987633776962167140279338752389924857819448037963086881672381087800906947328645440628314774609188814076210433712171678706227957675079617290509983273309917130074936118588606295439896372225107016451729767114681116915920798998885369214595908774896296799363585965583967795111979730092820217754889426117986042906658712085599985239316308162004827438721473399329781850839991466247495507362786100216512941316610003901240888739661027974510419957810888330865816538663839401354424846828462423624824719316219786675182168637551951481485481855143644776566270936806657330852017669458551153420968666679011211766470019138394143450054871256710846056328065058070596257081291638786351744315721394543308638770653097293901465262714341626086654791163198771158470782735200198737448103713862676749155582350055862169391211120883010091123181140951751470711938175909275745516300517807016633278600920362969981670673021321498709935091318097787860595054635608683860607868375488771260944417514995808961651625991385955541742606780146779763361101575870498997598651096551118981297251919880448373457280719378811270345688258480310342192790772777313226887414075352498048429332497486750749367724363566622570607319424997482735590792964991800734663945161409841619447971539727239183766780827387887447681395702626169308048543959580989304385930618594364587395616466286695896736230538472321550813410415800409515679982488421304508603360890432047273477838988892617771094968665016822740286994792304270870403505132678128799006542523787860253441985785477652139918284999303130879604186622353961664578107479651325037469790472705203882027985684681209239717196678405542682683420611753466947260331711756089260248699090228515485910886645238849090008829058139237977957459504982455766625221346578530625638987535625913017973457072000931145825520751147962835925031442557749718092261145573243676373501372311506880441844822918512070509883058274354039360552018876955121790204646994433003591089754325915640783894219285540441319993688791943800695704144381803379622041642742705954098145339590479687808096361818767061045943463993395311089223320599221674515265999381737946615451348329017329269230592680407643207181281471697515444068493149981618901965362536439537360851298739166074944990477073513474215196736204240406015741624997027132066397932650496782616551758137895657881614856755276196938193164683509984610767795295224983898514899578176151711496191297879683176306352381876832563896235617695122586971636670846947779022511476473800501198178816697948798397690900601453704979020559952337906334530987498438493154582363189108971099389782745343724116491894081320642783442101262413694543878114318160427443449097095724163382134083004183951049015373862941898241579054671896502325793447720579201539120594852735860362289254277824265569480984465993351633595644358073474581319891184196446314049460420237902079215664206963054458373109720911220088157705733263145040429967052330338482528464952911424114219926896815038628608360398591648468487590425758307669522924507295531927882675670756643794190353340829598008649191959198336137252906639967028223144576072885732178110281484158297757933340892377089491147134364683928563633793665122799056607615647497323251970541482806297739113819289459429257399915488207777635003899367412075671032153851515348195622428941845161352254035444834642829603811732575237643639778213650980619358971135308918821554667817421861164870654500421714217191980307986195142190033307117836234655735268693737703490025705573878741644604955307613620531861524159825018545564153036068595670776357533245799780461895363107636746952418689201821627821689018268824739502563044478006244978669273150711651371277276767488695171104066046897058038898232823231539838561568115124235597051062838446394685232771605358317787444924650419993869620265796789911983780058132338303926933960981301404090731992100261049428235799798950283273721741763060356967909680835932428462888967083546403023285896641103655092548939183035593172797291501277572288562909107649537013623812753242793600235957696091243897863466584868549379232013449586324514668452568917776247628374754995594047292132486666587070243433761873892288173571165552123275084020951592854956181018054144421791766594766922855003712523978658243592325980482388062285784813795802149985351528705678073654211809496055903096706761749333961594819182097546760664128858140425904275086569216677533597629782744628661235762192536392614211205449163645549287574607596399405819938468752267858675822012026520930163147393032976420856260600927313069193404009391448244147328333079920063409946806429976156993257493188073900189541552742647966974966981941103342577006018857921044944392188323623700136051876202831236322550416179624828850906225517204967929664163333928686324274315526682570555064051781705467204817851692108117333691924055504432640735314320598270000315017934122303875635963351777651654553127697845086208363218327972039300415247977667417723814151407727435219489427706947047272169487347684141737374588668967455214230514837250755917914508921973222218539210439970681607353004253375860376678913147590787274183733636892375640603822284633381574338715921541472560235060854357155921654469701150929458207831361737141493307135023796710720845406713423868464260900244234696420402172945687217244010736718345802128673458727532277598124500439360237831271494225597126336211883288672811806751244303415770958364645017233719490193528712704356526033791035396045991072455908138876868432632769361395658648227815218047175555887194390647790963159902968096645706439545861475717852519903892574834352572440453123074387083628506061347557322956182386649624051042631014429418557761565033559893112310477306190144603358089012811734795188653134767953107279141668493332628906187395482203466203106029439523086593820132461762160728809414031168108472820251293016686704871434544654015124250956345815167593288848459741459936980239439255138037300923106045303907967846936229118875055809827467585194449194711614156169002839392328922019554525891538566753732271274409880685435450818151417157671940257985447244507878125374880510578084955807020471813177173857349428819698849621117662840323820866147427076164207180393955476766933467022696571557752905537520065729825470789624397446944052001163671619823880639975008558213609720636696422226905194375694192007881261268602555072207854405159564880585926691446740792264664809401186031347666497116284645085352309492863017556565232998132221444246474578464988118618961183340944067397590445550927013127896339786624605226289992942687127795497503010249810960151008447184817935675867953846432744525300659603803395771347610179579132323967432274520025258055095570457803660687198221136335982251673245087728320791463619236698613216597176333940773408960396902851873561904452714902118389154436128003196457798571946693846620672311235099371514028543105025309411345530974438038100146556330646226081570630310705245153328592510491626772173297014159345705169859547492371237308645482290920232881632406011406406589593659690839902441200966329012745051169123411450508385013475802071833590953708393587108265912711608773057996795476073309403156095045479971648753407609687818206670295167339736456854987500103070851448616238535302797502131461555887200510938082134783075262194364439224550859915624103341500426988812830860988519310123718967174529892324577123467771322758344180601141252006918288565825088735249736182602814074384549988627792043090360338631743830986434517953863185436533411640402436976881261961864085523562584810151485614881832299893400306965515440335984369079439247617633676694276816187457892423706196144936161361519624888272807347704067422247692187191468350276463183289614853508602002189730572491871383088885048882718941030216511789112756396228650902815499195886211743701809261195497924997416420069480986602812848275452143268015106803579262205893559395937523869684622827723948234472085841386437965976640720236626282329742558573305946535540699638642383014310589793273107013440343703235897650226134610519731402723696761801790891149109444056579025287406485254777761808693049802857329373662432318489950009004665301580346226483924529488386575351493532448076960895241335068491925817282875486465761619916190386087003582502979211398057376716564830561436462396832371299135731724776296111508270838760811056922539361471326716704046995771711571014299816955458108774983052125203115734114937118681902404701854987270813846312043402440789393233558069623822702388130439602998493768360060241287086937310396427380709781721180703209388739546716713057033850229504287160546499132738518742568821938667438556350097012382274182454237627862262783262289935136344915605225642047131577803510869935679409170172891959437026203500013176608949079544893198862072281902927869600918740382311391891562622219686925035607354371639047284219542284893815056570078694183488987000778495743604991051100252115829674410716314792910552645379222030090268079579074344422035564588935696898062856013596603930662441110372960978174918621739814299718759904951793006596261226185944138992416487145839794058597022428529622873997325964023632138204444440642262609820604179088552635038855823665101397606263264170685178039398121868223497089624976091689454282075838371478568006756288696684598117092087602252111612856793039694977509662046447396424881638405922928229492269784658453881607687403617710097271776624990445456584625475252620868390314113449324561129742520472700129545584229853795459834933381663761416127634087677989857135287782154465315279270278937159647181516749722312398242418866854458814157722996614446396526578601910436446331494113838417119129802767248507645814784256717695740561872088430516588741369731505434609989988648579593063585894775376296668090088926205625018580548626688768338689798849304311975101291120489083955040092280940977292402402045627330470013409877777758360590100758356166636978554143860258862532556754708987547933644085138204969219205570531823106092554503053219468295457455517533924804864815710861901067874335262489993647621769872283284919395860172235663181183464648118191840034660059737310158011425148356939443126176392213128383556622536519633379347701019960123089785379461424919495657724999053803639641165219431155514743471529442886149281077452449288540718216946507613258859059755945312755521904750750633623733424737901845207081842959578706783150105616004334933706039493993108195544841830934654101713248882284226823236137260856301907490928120179970253846759609019225766016071961502692957845140306994784277167683009091235075293245000256324461182939919967921931195532090600185727622010437973803997579485125182500075105616290964062503596244257168172967075775291490723431224364081496927984383178710973144186974874483224620205319417832561105521926126440575031234941208422370311404260077149074342413555314322735753960609574056866303297446065328893581789993258730324530825391004517146975882963531470434780845698424993598197657390659996570549261307200311753166232038005617144414300253211893884031921149850770807123787258938413680697247153780656024887514812850033115025913227857546296286131848567314986841265547598407558095317128136534091892912983653910280857072617978391377689686246070858521790391938910300166743569064727384796611128205128566112308328614707163428152367175467353182285520090004495936349015868322592181799327071383810202643158078102840610183026338370145351736913732459811172653048019766631221194213766452118700677137239029658126122328661945558846064519610933850823577233651948299753490731512566779721607652183927629352834443035543706348519627405198885072445959820637100083056543157106339275041349308186259937693261416081657077768503840862656056870879290613370017229931277468831121440057313682408198260026662350666188052219324534240825111102011841507018541651868109667423151279977553202624670129061946502203262862344801713064276425567914593207400562244172202977476915930126134796415927889194439870550848119337421901059078862721494701626185324359815470386999529728266111913168638642717363495240070469061729859594533627455673345418242403937762488574399124098324368450422153363195139678636612342999228947912195715557137617906324649012637999294718422712852641714274940879523545746854548571343371332784010901889942817821822681903320430573024805840297580806796001109155519576495355644181564669878566334898731609621731888891140995496941102524100225547542610837067886793785120929316663421335641749870345623678450321694452471991610593130068822675846940568176199195215709365761042743610908716427667831256931168498599537033961993641150134162132010084644985622291602290223899576721023105334609965345797551298822863984968761651766322552681716629131676083451422560086809086802144067117316567251890512569326681465734711888121565038484984620091042404767819165885626174133428031897321428253917699536656406712081528115165216804882241109485014208855404129744466856841331920175166683393315881183891507268288958356803716695686580686611302554745392222146903026098427052052435070682095047975252880134205326076075681821684571489031253806188715795301848141646001972898437169594659355219363712856581116926140581442108640911524866642205378113090566371947513053350333522409878895435308264184845503092935957577881508894992934096052017940349550413972201074223757068883947948794195155111983630498097569009678945381833418086499968067831699726772396038657328791424567430231418508407137598107643114219684109150591831610755140270886727499951276229679602501395789664782439378919375316218138899046838011440525537690371831927877588792829378152266928822550845595849667093958099257378121487361221890326715809985110895389170125268054578003705981630438115718989327437866278012686548395782180587319684597363497543261225096333731696538718338344256719624443487930572873153676892054031535661162039907581670873896559832684998941315391293942236711891012799369811021415872299359106457584474194729283630895946543235585064295244593640004487356253004986318436100754290321604222423179629176373947223335593016225973797198428456256334105172536750788047063119104241587320916765241377828048715705286650444013395968781695498565215721114288792640445029693907896448037891541324290034484102900726971531836364891530935313503686846060222907546741741711527278124319757609340889413082044103091355475082657464372058602477614946036417048288740292281164243040053878264905784740426284132703994614323059573266413544164196287835839278454039730709256470700890690111464494244496400759649048177342334242860732694683338008488732315152978397504246435841204962678773682566622338710099764996011528906327840122571256290075952825479956686729688457456239078882845330361813466191194787920808168240564197246354227670671310007578563338294430701359056168711621251178355761722573980876568444070217926791631456766678031159572214617435971509041732303958241945787829872320090647666921224128381675828399650260119529663816588256910947514710645916707992759272710071845594261306177910496241751515604941201216264392882230665618481823034021849358423339195153879112377327157767990479359033834516695421186331444944322269213822557790988410452903936892442947140568220664263989018398636673322406270298387898640295148767338254921072105900596385895338548996583602720284346138173808676054309192737559526636939230442058651466275528193000322329807743670211995024418392144864967139411300456590754402286539980976816443869676510331156829921256050001985157444750251149985478954411873555294947112557132387835618822319711629456831246891927060752307397526470726304345565938657303897499697435784464725940572208789417476559515070196390386989485018737842790932774638008469733835697318047540476555870723603890024384621838644497687653062939202339527712362638310775503399467370927992414592464858481712518621136475590479093726653218064534209371883564222251022799743537178986517452290974447946323035231098898259563565182822323021687519147761717201256152017575067550569551055276386021902432127516926907013976776280352469149900344179610036155826763315584553800857390759846403751062460396821320686645377279245225626088206016234808376543845345732614452380954211380967481230117116394216161517723312100982797430167094639778701364034614307046332476370866339278569249696842718942258732737341809458348496870826484396391906498214342850016215457867944266504421436149694640419430397167331884081105954095668634337955162579849476377826790757263666276071634124931194406541693986673170098321849218070835880859147673731088664818122997779261713138389513821053708426846614695374935429210885451880286525846221039125292423674539992711830122203410681249070839271770806603989043682371368713843134167169389510313575610629442538013010228443218021203305366175551883684508229925710469862557193671864456641158260277881406255146097501821699525614064864615734728226753677656932987975389548103015206104133574425719800402962417682385070108910805406714082446112478390523279499268478881444096226591642971578958783792568324642484682575437123905767763839011634411428840618658502850080212405902064057115561554941323417040438705498327276397162595653351434937151009554640564055978935237391770085650455816634291261487897683807900022133254679934181085498101160482530668712135423514327136025648344876206642835480562728104724016821216229956051915024501336496789193343477166453829864527577395596870965021966316661361263142317057545284744310107594574882388222396489058259684399697843393499188993418661492305298126976317924364220038365326490355509548824323663364980300069377290446529194846465839343807164045800730563167150900198109648553056764153840472787256130478448564397899281898367976955177410682712360398403300178150854646261552033862453532297291180283739782478048433052844357928065088374368934590185428702204369462970206445851986121424621678521123590882821351788090996021535478449672913562488348839916750838280331498587690804456327667249159564610576434908308242862905526389191173658360543909481222847755391601331475447997869187495477179805490686591031330636145174156751978486928013794041775331448746642409360764906175455210897632571182897204433731477289352559830793024441061242762181293306298253239456833309438782392546463411923063555944285428909251901145228593310485694409737763980584378604440677469565896546010156030284267840752580545092423497819438145408480790099574366999841868479707248026527843747978588591020512995301579732696913629080385159040719046291688190577327950333229269950177677742054060965246207867199365692135908613476311049515147606017544285695376342042829104768729104555273546346751918407682461045719515776879190351484927432956948703161518781802343440342692710410016203644809596201819885126571192935956514932165970241814164967818242586181552648721623313221158729589439376374814344634562852606971019336258417950279428335478753593223806890376622609640676315567768562344400555738950025329659467170143424493290780595793860477329053399134851439689981577167753301031447024112644249058301082677898022295462311008020059075595857271685377402546421429011346213551492554556508273422745602131052566020620194841244410146333422089970579101049322546015123850965358515357649047671080488711931835765031667652334438311526079852538937110854373089904290993252522318611755186361861305857494764743887390323386514363146088240232299124078907409162719128227677612510067399196516395251637414043897369330883566543331107015747242698553389635896427087871110048919355148150767668141390658107611926774293045197039141057068850797212842327941651870275478138401984489565293688070701406460316660746505774779317964396459432223625851820413732075082255997602649374392590388697829527336079412633960645687061649202810662440540869150033237496265520135477984091476488918710218902955805080152380544336451480557738658248229528701174437180655536366560638361195984716030456787910070913537087854316042329612207131267031293963526262481918453828151604887071575736469054750270939900287709492181444385439030878483103201118945122853925607359314418361783464065784857333564894257605528408530795753057777554544628756702181707078730155385773383704176728368168047608596489502368455321325213117525103851215478265064613319415118896009445172011372302796603062951384207462773721877552044479676452147759961370668678510762435656190488164232214790624306961726172616390227816957357422334326842994327761117712667888950038205349787706365119278167008413783194710717063012394190529301429910335340644597035967015773432690481830027516136165033368368143255188363359483551803176469588859023725953510509524949685745568959009701331813207529224001618182048628573933850925284618992299341599192560004938648602758571262426881197152942283446854609765997011743815239987485333760926372732277114387848753245173108373555423230516634427346077539830108116879905327877679468975549197731328676936577390869200096436120269114912326902017843101178290575459442180316232016744485572992876303805397490743260400445326395602895558937278758615003028181576937341725731317639377971945263129562115751106664638341113272439820801809073369607675251064368547205959127566141659388184095656289135893247066543542248200203736337895505530904332896180582494481545750145297973632136723565498327464174108561465144302157361597694411272904577213771926971354537326763487486464437870839152155196728605336535582641293568555945059882008989118175928742326628240165741539149105205100601400395277518394120113157064926397795934783394707248474353233809317979514365036970698914988556505649934041256195480360971565784484716836649445481004421151470513049173651860965289222466251966849659314716887497501022433672197869650446392081277232921870219224971040757685677332989740880873180521794441250580854638707516615115036901896152760031366873501870855363848162192648391904241543813684154304377124391319057908799814464223083918376724479987062580403503264516407949257654987817437994274231293572223166221996937970141182190870195659534562140529056289406013858405747187417331251363333075816808178323332252073934895416914292360892469470600709617311124854156599567983291467194298489525305580949682073955296715831325265334696008794721495730119822081104174610257258968507371508248731975656604072959030358730682221414556686967570968787263002162006851933046531517636090746683529063547014789837246871664132737545216780215449246696999319121919642647407658538451956181699681221734274187997812772097756926800915811571037279844962223667840171783867690857391346511026744657838758955852242561358804614141969164245011175125382287013587700877337562124689465662628586105949921035840745508558091488469199311287232044304439221457060452550952189802916393911667808506542355036938379739006315496863188203757278230864866949357057567828912866084901944830400408214258036089672228551212645568736351880524297960551258434594790637560720013127348719832070555813843436460121318501331643374671782834123931314006251565197559946448664448530539370527328284826448207483675629971002031863553200045847001035241861454490899133489624355848325583547609032968395436266669836030389531294137006716500875893490238667675825737242019630228072315750520078248576990681762061432785202972889975406945588846893724787462054010268352201585790671717462012490505664111626210499737249974630560039713190277872680030901736622559130347322105447192358407217731805796677049914617160123563376713315377000624393084151015688902322255426462195757676828139587063385918421409559174623378487646232461615501473362028806400876746442912326312485063453126256033423287845771811394580948151159794166381781511662720600277550816482572834975225850239764779447009970252108362476884369498731132232077461686002544151580910300809489873304679102733293032359843669626707108179607065238077967581897221354162184078116622740511450211229162942444502300602086009688126656098053919043044295676330691983902853296332665072999807443082414113044563457354658953453415935329810317102461251392903671960309745416007618401144798043538793986342603298580216698132464799650501080680892747619486471339678623216441583473534371313729412023258533454533039362141249375677089531236727207475060955234322754948578578403669140795363621620337584748231688328802458797686551425408521298835669309656213002398819064537275679240045736392347167960220868036708233299922572062889758788277956321374730391698338410061892661980327066066004190572534070050901976460516848087623637639391738437698590206314608864036256291494569551004382774876840308473234132374010024232404033042724129784206237245310460669150729374395197751534127448251298072078961065240000169243158045748063950599854896336694899773885822094944928473506884581745690544278424525798906612043889280832109098043586644551656640812859659882184615179239958438779057302558478066311269888786742435260546721024807182143271633592251552051235674225732903416443800259395958691422098629244141730114692173766597119000753207677989378249720306247047245056120853080347973164050087537404723128741742695526942466773609655878050809811349865911333265497006619923873549594465450569077467578851694045969190284802278912716393989393104029614346556327118913757629329839616877930431293626068031598046895068819732548954235589308318405557632179050884561436867921480590629368423946392151811482677311389893326561936536763105054644454785900994316152555885114422140922659228081198227995903112804769052922886443864865323941769170715327902786680549307470160127648192514260452722922870819913675784037052854980895481550987388230872112114108532957451440604012133299778671800913190183221298243385751669165757013267051214849120589752396460100577574500711442128097440133765837372814375348442414696479767989350384421305830044724739812016123658569104920492369213518149680114442633353095685111283291062063513582000519246012966836908905341837031456863212149341658487008205492745884547973431435647419555761890549570494990474861753451546191512119952030328258309935225574315346773183732322678820382886670225951525831997005277145972261999160894789058123635825793046352641689158979266110187182789500448689459645878377423279639324200076578731134790715020949588990210341163635668941687868326578601858777682049415303390799730032817034720733598918482072951366387809366092115314801576726023832490321514471209906530110616175719587371895873723769997059717091425569314178458630546952049851998853732266174289241262580529561958871886039960415822918865093040673411274549617180481747222933108417647194343686554669016304391937033101192083493514005587024425966438960044135781786162243527880004259483816816043767960095277612075992425584079775794357371934794603151479974979798782876065840932923936297832439770636985212805152785144053495331940250890042385183086621870844555686772971436955551670604785949500337593264158340355041020094999643540724807177521927864403339270883247711051955134788414601631988921577750399266594806563117070099424698993707088520788200888616602826227185812774413256053175309323209742658426645989627528068632309566870574776739478166643204929594816791152793801042611791330405303545864865699051847051958857235306803032644536158622644803699412157921581796312173579189874738857501053258451401077151764946900304537784336162036892737219946832517997192218970762514662896079533360413544958454569712637180475683225729752421694041230282018384271872624738809257129327891490995035671056765341802431260790247916030488134099309173653854408718395384873873457117628434393962797177633242655148476759882301080843020568042278767473917642856315305686925320210681963981761092684336295452645306071420688136986547438776226782922535785286622728056289697860435726048342353142881724674392453069123916094808810499762361777771412286519017219531584346453288244174620749835775664565008019935809932187560851793131937468727639100015737315956591427985654477429918913262601506117028253122627513813553201999370303204431124032951915108319066721596657957912547208604986048794374591840757911394086430337229601183236325105803785771410395204034218949792289189234623671040295625136025857035992610834711081981301449521283006164103774244363393236299993890967764890470092660518119976323482866943523890202197575963715213004382126277054922191697558885234050386464020924513657864995251859831856654160028378864921394017715121622401356671115329404559336898189600282346960098998342453531028865867688811381732612441123726112370747613756655648148244673368192863064631041731144233093055400178709416950537276595118950558213071454510355713396380866751500859284414724543705373018728762095646127308213488541008092458127028164227141555710551652995210215164990246377010433897009526123858017563933435816848284121814113221518302682227209423735950156939944306251079440691176510670891771496740081537000966126059176640399681030911011202605300447332731255991773595352495666026777340531286676219428843827634468121012559547734656643252405996022583250404728372424310509788264930995551058217535207930583086174299180530571549363371732289606734940968728319626012072539825140790980870062352126626088618813685753657022894367099786221390591998048591817072770346455788616529642058257610251346890635225703903483587150055290695149742454309047196932468043358580812072322103508751270216358500541248742823002256451984151675889159156577217025910226863695415833416475541264214127437376555516218480763881472309114835639432250740722531813170645247463440027430543840966302035209631571702471141773261066664697587412714039857746248180705859249340689198845608115215988153430070011975399077152102814437258322762361836918706975318665757585490905359498872888130506330647878445110022812484991227225864219839946328031397985502750608881482253766741075197821211345243132360952069500114422090528041360447809853703126233540745581897255669189703372804102042063462330814877461334202709289959149512733753734150267325277448676326595733197073649556648132922786269243928300562815519918379782387291900228652554492570377256580365321501322039868346239480423800241709059666378180338547177571841636528641349213135963602964200944182109254492235691080903254927787413660970514027989676596991933412198489442077469831440673839345898034311423720752966906253540651273855687515176081674862377882872418782593379732519056485451055307545311089102080476066958193412121351904408638058823578355978047565528056964845740978898072686457309250313450130346352572153357025582752189141331217771416133445350321612725918883968392457336204752930048340808541702261537251861283418311501175349410078733348167950678661782179712631875410064377413462628175027687376173776156170986148585468848222667534768449086675317734488861000655969947313943046388991303450037299691275302737760840710137838166360270417716138918398292928038862094627533530754160174627553334895054114571986627120544909839922021525377374432163148685224179182758338212093486444426475770306254416362577840954022168963211435757996095455031865701930570146588093447017760124025276484835915966302307324252704084040495454698113667777505596012911949127512821192980096524868518339441153872202359823068842577068460584384610822933215774570981081645250426273392525773010446411197508196878210383060544995057225377622868950293964528061743372423307842236978531160989148993015273216408388303785907130680583548533659909614786190581987615567292946013736197765208154694154970219496420456727834655423276820982127585469115555714989847393125377306448952415920695563582906559519073968934911387716018625650568528113657293864616166774535988357917167660363632127112481271731478616222765365776018961096308937210714659134998482189899891625957369009243013887275502739006387210996946137323618087618531325641175266230140736593760550481651629584102888886156414581628179705494318674751227564951648837630857254491675374679486597429062765901352955824607491285321227061114956849328446133550206032027916049570869790367463527623847552754367359309600421086132640798159934837458650313135008658838031877274792950938479232326201982378517134751777172560718507817995468494094518267868459978243928397410257742403507045162392412515204137633498634794703602262651471461410208600748779708441281361405236115595870401355576208494629331913872515180763233330196919065586834089390668914222120937472879246174995573559077783826394409805140952855504388846077723221841373369574523723491563919381252458268291150911358809800767688003198812809985984270961875983102181955289316104106167855750210656779931779078762052604131781264861514170036593921222972200496720116201934825290259388765225568533587695511133093605043875402870124792497848105952514830329469778900703414937837043506092593679508924705168022992762594909183670360484892990310250703696381158116690855367934506723517601895373294226600831944841805795529564334381445716603943993406603867704818141185193179961079862850213146340660547847030193791134949399505165783506800641397949611560217112634939688612378096938876032480929125439084458410811170442467826006497579090836355355405080481606340524923717804801330341349139760201505815682719948163227611691460398802811234713850971231919551809283236202035896788604648975330380950508480576686439321045094026872415633446808171489885328195841102771376686927477508453978734105592140633228905115314409794501792686322513795549418860518312649256049244314883748370719685028437385583688739244138803892048705576977273322364637998808928413290742169429145808963179015621784177309289403410697869159880027966230464325513410971052734088730844866443727411258725400297563248540664712097475792197826456152296632601521379604343512499820087627363925917715977356424082144147684558704901933686987116201698130046938650794229745843084434143037782931701616891417689582594825674699981194980215768063225874101633668555502937239688206987282848071444363700191876386249739279075645771367088103850482749646950121350236739324840959067118442692266674855927041657175241630970354913435586919980823875107192715659358759859923559387866919760500704455830387865174508579704745324383793622044204666085472083830372341336315669661226947635234209574383150678258805229189773253030372824168151100972108513208275540595607836876305494853372943525601662910808196731990276265632157153087313257020916473112742947582366089597590288078182209338583272920146849221483750497284377581080507033223141643203545212415901324997507419067960999576028439064590036172181391662754897040732854545865736142287388426110938210044332904765378008617428415295064734261668598594684291695018833715363324452209793972117560884739829878589980669592782418977246789451856580099719502042409430547225906162056719815427067967956490397889205390643443585832607595378045023290570931902002498200192960320899769796041650658646284076745650002370640727380873598946435116639298656574888946145330160087021231750414855953459412283690061789786588603924129275867013428069560724625262545644021561402073990694063330703552271775348059399487232551423147970001179766108437826600506274846544911807245382564397105797112079775264471497298727887022510122640442983457197903321402582336956991176902416653887838773439887348042959752081228048359419264825089166890528046818649074197570752134405584592621012439464636062305461650195273927250903340653530657709781218285997889100524756648529011681470784587312517269486520115365090615217601355326534657643142136479928554995336353951263358721187932369651010338021751664163022476049886579027253596900555234567294661257062297073665529667126738002623368149081487159175354897716959413014063253075400550268546488463811304517875192251202672741539869450255238513980217161965737897641534487007215352501180908388039160231913451271422358169834059283630368954872523325629036796881567408118051210746218157294341133625790521854726490116410177090461908596727645852580683131694026157357685337359749136059595572096602213857036022893083355109952315415452932750835805989092715016444300599067323328666387960655755670641507981640839582636830710460453317544929152862529228058875045808832473532261308284405022725838699755795032331578115667694062852787562081346094646062792907928920037659507866175528908698457166968234747338758575443871928432819839470256432879033590070354474349682396138598611806221950818642175429361707184696435449301299218271947666567358216894981344953022076954764845127939575137757191241772985395286726029705320907123684741653064400936494049988911597359730991410837941096162694671211016465650387106201754875209384178844235376647803367286808316125230679382429741375502535633809417627322165223102000595855243224738786560033729231317368158959571943984613981309849716232026824640972413511633656704905713315844147603376938877257201707978308736721745624209424341765333728620126264797243398910530233306939429584072167853906643937788885965573363723411447383821853594515613781761310843204450179450124301290835254429530024332895445220339835999729829388059440188527465955259665754387351143617027696758240605142484132071279501577789282288983032654370394698382131211852065315010405921511147260872678077188049876584563713794663756309590046155559228725894749360872174081820897660179143682525051651576002806303094805633838907539299193275100715475108269818216817663561885340451075286591259003879053894192750503866947085827788328441693798811995590117370736286683654670768302620223672748773454143139821702011038981989953821306871100038965774780980988667526062986498041136925899460747861683423422020000709072573875137241890713634671413419686305246241171183848496171060459155534168592830063914243564020260304333592393926532322511763454699660583579631979935254102820375765269884473083357962419435137821152840125375283302519173614711277108096383130653140350691699081313368203403029791028474835416102567872697590954853076704047901434887976061823712530560388031357811714489573070782577681448324400591141505003007454761566061908263235987872540217076247992435327215654424913423337016806077551383466691951403275164374487064652515346435576895545836998978724336465812472180603078725350363223045012338977041186530083896485629323138477121195273173891431525528330499135316320102918242094095084088961763252557637858276331804611581961839768823017806373521488116711419781044587919324465747719590814083954678871889267302476985891613692965702634134152116740174755859383850890384236915678413566889602053833309051594217890775678172255157712004792147177365445751503310829441381421591686611839950620924529007387296647931003441267415479455453998952178664424938110571228440620480663819198980178076277100924193173281607743801252048653689562422502886894635652203382438180113935640685026441250822267335339629113099304370188680629235198644817736405332806195106600277569319422118620534683526022685152632956099181860488481653492482981128109104487326497096081066133898445285396118680359243180960159795163332758737963688745130315084252847096177392329754974807240549199938753315866675967077004807799540196939356882880674361972576694856466897416309459734797794238065223742360975828334267187995030909463747714411318986833103021426934962574189571980778250842229055832951020994494725494802587238819989371303345509798450329461494346441706219814522850135238811166507140205940619477137979077716345720940485147925538652451370796488252413006969738544543088412334481923853663780826160488258654269112338646220581429787682942118290115850348652783081702367490027956841899474649523200690335397277986540200536154675177934033411736099681527750993226954762636487308808904168954597547356697196965194725276021105483973836820595194357939533055251356455863005336696589953776321419262906610530874033701980300732019080122328683112089864564456712762480873232358114599393130864308934315124549833504226195229619033441385199350618761847963146445755238987324371957845694091244377316210424716668294618372311117906563933185019888178083914095943821288568934832343647741252153739931648613314998235669819658352262566282617140350463520477928396806023960766273222407932528868993424678145791292931816722591520940783212582912149859955738588437248139861508897674939728337484278796004271253406447053553233240309762486091615985775865286234442387090633504664054054154467715788991310348360672488875172404853951682548729904278725916897287025824574537542653661314529480042175943975223958298433553018263930070087049047713918945453936006419695011565330644637130912430347762376593524153303188857773211445526074972464418552183267258708098233179512339605280514253240198034834470931057556057587706264803573938579594048429879588859577612175163604900349162876227590368804741440379618876569971969646776956133346588785341897598908485432770831283142322513250159691051267980455567345473285738186237164509955134327672342041613834960070272918826160930834430555533355709383431977232962930542541808332999397581316387696452168601771533530331419212389990982043861502260444169644571743235757826449742456446997185318864718651695333559313947029856289361229650312136200875501309238991704142083618500095430029986154612575183630489281115900149753923546551405930875215568130281142042652840783913146726368133555440328260611301194822428933067580722810308117911025480226481433221162667183222658749043019849747310225416680455548514508847909584172288175472907407454978418889866207318459570762682648581267976771568708621123247214491806382873181031979797340190946654831917786764723166995527554661829095643692171954626840472521697537202692102065734507316152721522669280136148149609519996101175966464615278065076489337793845588486619872280110983207457239061118613198763130868142600186733699692175618043940051821191824892550364791773206262906578540579588308285455527169691105846048165080799787564009361967873923791913020993278550793588451094778707182187935770898369907887466899689954238981357542098350089177409196395984667298554638867150015072060913200828276242236404232890906788309588726896518054174875833219830738389196018411564347995764235922548008500618310668785744166245237169888544142349815216937965449867501564372879484938078257319687714981825463084746211557730824666499528311802503566965219968243247483803249489847018655235891302052309608903355387081371305447090602911992968022614740309010734629121763535738916100718460533456099275714515895920186490601054342312203119903569876028898574671217374663440020145876938776409201814619131520975594221891219973220529309717376945782867653631869168101810529690182852690051554407085191028767468168256650728271091990102986131263928668022777837822831263096829955552075315131098586163906479021198992964225890526669445010129686506015330510931787889892755724378946289695557882916338134784103532649358561314757903767377006291556119810508935674730166600170519913318264980052932435595288749585441244003748166604055858882107276973100752335564984100215404900050395766328510703366842270771027521030375426905564436748978283877393035330082499516435096340337310369105277264698163078644396548120818813808019985243255820159232661870406039826303182946142502388351311571443152361005438828882885869026283341552245126608094669739842149320828468206996864949118579982275499942622112905228798491580414097382568792006393894035060798115736937454259944582150646115206254431786977902900827155034793017010520404125379299379199109113815213115258455354042543020568277673808472278346867437964111552465239504051708359552029723249244633419363582175081489073956666867767010727563131554166867785553184546874714536245558262140969979897777958477835036523258976057211014059583231751896110420577898374793904233225204194808911468401199802722577609818475868092767152125502158152175291183683938430721709015651217118805153905367516371808812906642424744774476266910902011638593378581390501467778171729825607082844562042547397586929644883803478012595347605817791766659540785939503845604987950897863204336792957514182852406892444368350718580065986971223640948162472953064477584540789771874553986795149677351971767318008383381637290065051261354603145183169356533820244056202082595703703571734680016908046407531390630885902192335271421380117485996097396070609995949281087036303725264891706992687400616206139813895951911171513719935246151262133360051139693137323654242148817259476984041933773345335250551982433726383544700922092113177154734480204841614599916215201992584736455114362193159919533338445782083310010907190511062298636241761956266559410711707530381149743358105625024953106792978320101958384871229257636381912632006830931481356909347424790746696114945217309015214209655912309180721835009318304156174519673116630476207081259690928603544587055804412511432571887632636965294335279907567272464409026296568410337106924084638865135039739646086915334775450490612304715709732259632457190903126603818347177580561070188325225566104793479398956920097243676945962128270925543550871753752020059878941356569329526874903983150160413596960907904315589412319333043929893438917743966872260268520114962739878084567513307043202640389449855451534864852978994112561250618091454749571467558255065155971348130765465391914677636623789682777121572442024476964017732745488914660630821480357551299569253889301041867314826983154599509867855012187530348776763588753765665976388118112808534853429084039843705004521484948399246416264696059887050512669959798361823968764115738076866605531673102804436222296541200683422594276264753233280728037588816109358400645564410734780308454152112635459424979953475125987581954484559416485796814629518397954117967408087060462039091698286172786506918349249608534977704708694649487507523383438546492505341913840154287091290675297085596758076138531360543192028611651697608986016860971106155614916461556329556863888299829088648002658613948471827711979755837792576072039691276656658380597098821210781669331889639000526372693004566901514507210374444220066713470957387390436341817812215191705387001102049829132106036800009707963334886342099848135898486741831082451395861374771522958456019904145681105364346045549654207781331029292070157929908513057910726459716551638010556970427830839032997114870525270560183960704705428608758396441612278020093703328538656449847702710472177324404703391438398342072087543521051762691074222681036595068327072240196139027773979629153551237893520621851699915971636934829943069147664374717832299470601729046537027457493781827462691590675963125714639712984592522785822049332850347535967951388163419271538682162002289263655999219759400438051849596789272874081596944414175588198516185323214930251146671800657950779612709507036198371734092333008738055539608239623287401454605317668116903056835006255120039847557320215908283059382758266104676380174006822300135320876236356326777466362575923781029818476850821459729371114115510996158253308583444611902109763662646993959125509682098103246959695946653456481824893813829583116590096028673548586976940408548502117364142498832839811337139566136755829170024791562274208698993446769503200157662219102888308740060268682002952794013729210612764733716835215038983911880737306177643818049917695474642377387759862839510645458204397307453094390318327943131852318814428915808157825243793989869498232571624518640632973553710423438453332199311878740293595475366554343868653694123636095922664141348721004086090608205362689038612408150984460568788218195945960479023695927953744677362362975579589885076592028436461391491164193132642044482860294807864000486888744589121164221306972717479255509561474261971570004791495578325399517130599042825323980640315041093126411372507814661403800109723509825681037920961270425330294018554452230848701689148651713521600805863121298977745981590834539079292187240154782105630386509554070836333910380292474730256975831988058617813153082083977144665382177406902709419458526308132656151474964891926487672168214873601415621625778084864826567444139806680425984816254976104885050151776975934804226242784441388608152342293181793600082898902764043344915956632435303169747880233833047470899530731573464072427870584639173587500651134899847368127393883642282170939963384908673043800611637746285419162693189629203238523668302209467703716563737877515148020616161137293103247911330642089462540069621410811517105676775816024764763067841976324386252289279688511959895601916617510620903002960121918843016647576966226151797813804886914479714852305008429900988167730721278602050003997022531702326615422050918592009749420920176421063174483700662997989983419032997245764683462083214026394721095220594584860357846718762839699977971342575229092986082217254174179482245915023834794648774702102671701586885495411426645378320695587990729816002460908563995005893787082859102831840510460853952617373562201193547689810121955400784427422627019164877473734164412803999421816623178148059260708156375662164606202616032720102376252282227661960054544747203630115842057222419190405134255683085438109478960128178223533769798604323306040153796080227314683250058792428660880092855033003691956967718077404311661286274979697152269034022442750502377328428116620724972937335122097305324387161828916296360565462041765732877420817316708818627698471675515065628905351199874446018196515871383763425961121175542835973589284122097475047699191463514976532106512244944087648560600079084967714761050023087549360132070396308013581544907169345708472401584633779043392138208760512167807599123126199468150886125672233618846116196113216442358922082755400119949864867628950869786594890588681382068578081764906033487952422954369209187489373413196971690260023184943805294315732366075669893158918123706494046841113073744781898285162522494646262193839546620969260685475155635090066339529580025066631756968283924568613253518996612246712140936450014103127751526903137711378737933792269072621526414711114407959350897311582933216661041177431526163597155338223157491803070758776656426127960947607377112597693976024497011189156099515129992901505134511932064652205627226761951049876702066662227934864298852348075122132440748273243643043166843345935869788155174246825387443041212636633689215568325828142938385792239495261361029505484567940951214649760421614918473927358745890190492871284893094996221021900319785117919056591610646093621291335020094838720088735993862079901672601107902538373813792152833555985552776744076132079276168769610749884341458836243811423497559684169762222579183087282685472158774086376226741482096506064472216189264277010974080132392618855080288524670336970821699307021506582879124510423144583132623196012185424008645030084450410770786119181376511839757911283935174712806594840742267869627308426690479498088644193230664911824590099008896296087538460008061836340060273294395961633181020102894556792994060123563617618677777794695731891112911891527539897477017743987584157523594807801817366822512373335673933683706166980476382393752844119681003930008103387129278744125811827108739535981688713577237474943545501166181685129470845061104634689881897655207828948944104910647224321960353133981400243061377459321477577110742126462870296568990939105655094069598037917932817330293007704978388672856250459205565012037792926440384354199946033748643612533136638610700309975911657893598247489972579108058792466178280595351813244729641767272161640558881577115240358042937829018422598957044988730139126308427324158642623678891630720185472673762641948391687918317214816723071667464467579067291555350722490741880074075481155520824114483087024116577289834218782653182339703510296625855129247595662428668008862044347337524855278647529457419862937239033681924720889943248443872013239973180076595612227744683574266680017413534399250304423235051408345329636997298178264659368151441230782592497097974960315384414293895992061211733092980177060803042275832731811702008644475916662219505437864150424110724591314134992937274662539836080380728893230710661726352461251465299001493212036243364434953816055547058933266215525380075537787936996605702236668539077748081791062591691656659405370947365515209678163676302380046426258973027622228059156535149037669647818331990391870006554035663522418912167408167245036180575340573136020351503257673007169295637715171664236296065715880054946891133932282914241739318424517316623805177026385756236983738586091534753722266346629945424944203303969530687738493509261386515845523193726884157984160720920429993000886656279844185654811383652802926599862697138319051463063564260369931868271832899979464049970481088339744788831706938769313930537655091305238405725801956642176117591069592324384367068632474316554901255987234800929764393781510758116455532452448846238076379698591798073564438507589123962980564777984460154457131068678114407193589091685166552365858103414069496719457884570370844749292438138969842247443553946524606196366196736417506405029569857634441882065299146991226061373077345060528249918569588620462817299947009569968552923954950934768900623684380430370949549349883053593661092326651167850886719520639932929303444298910936275630107214625560035444777801680367398973769639175132654883277874550313925632454682800314886512658114190821179285448530850727043255509054142256327542823026790501118862449773553990490955936057157581617240546446336714148115938756777514748902283375429030981916808908832687210942843066109275932003413319140267121034399658024067037234716435965641318167482860200993926520619416694163384080119491760944607037429736264203009095655807187964027771011690673312973698253266638585778247633089431731412233216933582681823424308353933831240790849828237699882967087376258825559682290817943472918759748562012210450098329124780228012694232805180118841130922104233442493560825414878292212696263094694329295939297442935411190207389789226403724997487903903454478320691391185012186252107664102627974460619218247556087800319564662425299020250884478471134208434488482314513041559331300785479619395591280770696561736713950316500255905714829023045525557582348890198246008080019525668965252153485107371774402699683811007068946198974945470678006882169000464558303755458571113572666374020487304790874479537456056329910984768051419020723271631733732921722045762469945052052050151807177218824318027863411011448876837010697294464662661015764208696568225462282404339496100705051370353890409704741999546488533424257353325026460001706221156622464263695455073373100722017702119857061143939596841167778050113265889068494609441961719081862924667641322223223837560865144484067491235855533689075810658027665742755503540377761466551199287442898892724997631432888795066967425782901009243404865814119382941528011106002513766972641866987529037147887370287087692727849805341452533272133696137298160026597811422233705124046326575105621358693111625606825759354072612276103702088762406780421501110397309990973443575280937160280638471455016716128508094776085939520402665004056291484308903250798735671353611589096596634865672712191456144639166357847854403724671301729910363774531433148364531325306832714090567158355420382389115570079460011458216454710804456229139229948339634738740998510590307942489365060386778458774001506046395507714399241997322698639077017515940362538872684061141732922894252160336459152772127549138492355778973150376440193874742382418150419797447076153553089603331620913346683071838381021204047122597583251748698983326018870362810087583811781043520687064545568842831224395069155501202557426381075636376954065355685084740898152005761318332064573826000050822820701018812439295064813649441971243219192085730292666463078622273398843276828174765145208685127373848615909851827467338513384752842942389847133685099295580550638879906701665736751219163971582742996583145992921358048305907882087168459270732544787094118728077103145323014469671540802097771244443195167917105066155650132945907975950576966208754473741290640255677265244886572474938549570457114092944971068196490111270639013052360889577577451219911733975384001312971793120764238563066466972661689333049772046798343502679109249842928260134005293314114570596427619304632700371177191397405166513735960288342859275926454433230837914096963849258647150002928964759328644621548979478483903311197690878539725113137892709137912793298885525935458053578398556701678227602605594813675495973148821356380835399326023214075029618149107009603765897812230412884552475028732558260660955290354299552875450901101814736321857820044291207617379425228088006128441273946865457351990853598691356192227267853594157600366205644298823250616723250711879753310287857303460770400683479950874941157394880590232733560466740221714896778513739094995297117785490582011310305351721033603740825095615108652998421773917907493355605337853134444716381565235155649639039865650361836140176698330881894316098632991888943630974091218203276555252188293277216500677596981278241507229057003801545265267436328115872929767939207753774887665035372933522269923961454882787698848955242441390895713053297526745857006532870504481489218651749670435816503454401510098299910734318952936566264541481074647126348329485884701260283170925186991626075714265590788145561130716448077967689493110441642721667773471685037493477393475357184648653634314020461224389308038704107988859403953335997703893941229308758859809365967333635337202862874778511601842196699786052473615524296981437054298644167287650328222826791638395708621983073369829022107501557134815519769830324936198753407727387417988198513564345475848226791458174707351309903093923731627698495355458877060349180906679695358372960929102207186713162271917458370170556808849187127488158820690990553032905589544646932111023056404919135402844709058569925827016736451636217041656914962787165478466102704445901681692677119243977320498649351790322469001523770298413419887861284445526477350870656547816967237460077728394626732855035890449614353318495685096771043207465553635018205332300235428469277587511360486968471315494793269807768062128845060207961707682303877596771499494975011107564876896524334486506799281827903745011643076019886564967562709344217992386283211537153337917198794704776883476622363912543993830780811126300479753189625907270800526351424140034702794678397298997349840187270498012493969117101378274665309393818119566194773571473939486560761031749863606887979620370853760342641467081006074315872240661975314503327353161807466879946212514476060067249204976304457141673327207832118055420949358572571187016924235075229244814163914504096687475296011202329039325983698830604484203376525063437586315122541576360867972856274738139027120751629315765943532130228866856372840656401367144070844679877459249311396341038263689566603269685861504182790301669728212100843678058715460759323282049473199133642468624876819629911840800362736997150761726407870371388710126190168720723811328319519201064800051631892468711181245417029963677264215984631737966310097944235392969940443349586776567081738218430830620537953628285988904301324208132424930358833574684311653021618804287775477204331577898959614430044953618220955919069321118701547484396248374327492249683530382464869633070718589629157718967119672915027794292657606693183804263352455801211403787891890991521321398316602790832595810807540728711329349973257889491033091854794657145261130988875626001836913914109118814359905913684657942451643205268159800895047437568398825779269203189138387250477095620654966360835739810759744223928388138553374434528655182933432540654139758759991794118296067914771835934469362860151855050177335630105047620376215560479089719823981009348031388458311213166690806777074721178757785786341843155228666344510292422421229311369381554981046967143168982353365013206584374827196619043774806799342805593202838630920647001045172628688067425542765764397650809751491803887999803387233327133957663612321761253772329502881725176309500617948541425068087980116580539557757282078776670809892680432082875546581682429091358439686411207165874796688969181483526139712489552511515339025694083129895772412860102397793655715145576921010258304778657643011325478826779495926295799365543039474188949826573756654049974541076736112880589447358869540317480632014523794732990072211834268115055023200144972286626739088773352298810910785521341123983319641361182023186486350685220194591168015416959306470297572795607497809563565384439317856314056638238579597448876389613223292427935700313851067310297051050814811750424180158746220334856124859645248747089400315201093111593747003869072767977342109443224461937749441071289201034289515907074498873891838678639107173853694640657095669426434113580262872257717528077949890979016726405176879504115601338733599723932457009594854095244339047454634204221093657686057730342400532314199532970469061539452654714353727298747990981471809444244677367876672319458100513142944975282039319845228321375009472888876408074951997945029172253828857203148800864571667013469506164074797202413503506328941029398471928904169974039330215806109484343736644111723252561048119473472424316327810617919436884561442875108133329895997660017947213227868110404052024622394769144121784241384002117035920531424862378971592482099015716965611018133275003948742403341754530706053793475374969651705998554152133019248412879158280163784284834618490039181187002178265398247627963914714358293244917675214848733989016597039483385017722875320216994042483006614279049686396870567683351728646593999690967073062135772121866451298737899992109270367436866768057792616786413674554358875309167369690007436136915379327341246624272150210234760260609934612833984257359645820089999744933873857910566902868921649816631598653406456412985240689897705352984631775631724410701538511701714459806783188487567656736354789004263528261297008772443272530050261758319851860539163991579286986089004335174891838960522736791669172677290742944568708194392114126630126257718929237290948246496194694594161004208331545216006205692630792167463764693086496903500071578377662336827280807859918468496261904289777270402999142661087178058524134750938824320439453708630419342472454304275864439116875774251453345857233440857012262425648188260207862895597167524129972721716303854991932640326690217281564319651000734027657989658744125106536900299018620453501863086908942462161339366892890339099828482269316300971501881784925989566488424685849246723007337093406638771448253964237880449948870620050464413858387704560757926307042993473147680662172760507809270286762928203555216086775858177218617289541900423531497305725917205898816009040053109315300545318454768152382912636579620832567559769411435090608947610515187149726837846219278321789722626399582776660991064666118294678353932821344977073185916099796318043973504870714444718694100104108006130035652309896992448668380839788657325772257969225755939428686473914036310732721120912414823889547454293673224530885298418534071289779423479768609517077340626111950369677538521982910701045712520424616727764335587332304866644072374143064769139510053480267987253744817873220154841297652387356900089479649641105558588812813311789263756199120750301309492948524964186952997900319781386727740536137883410003224973130826385235201330780815035197137502383811402870301719250618116914518033722543299462695765538453428696038952597146096966538999265307184343298194150612867588171402989172864765630386690167027567038060488665171396136090170816434012542321133598485971808235936118741924445115406141384551708162440424319834853841978860813043477887539385661423799199226922468611173307954112772403292434042603421821275570901758537108561250499908679436824713881919902131644938547796656973105695005758870995285893746262323114693678031019950757353024057385226236004877441798863756512118004686014041448636072906820695254493046573477261135177328020646328593477327816806139709499291835709252660961870494273632150549898534443954560482055158437079671811431744292756651543668540828309900494817884705071830068389623757542044923789828939038801128116410265548836735513787651470428143974758875996136194828990428084395960461904242861672729123803996761973290807628557218427120881327663308811717319850091503140371698666955156708349422100871118446857677444605461848655149923635833696501218368142472309125756568194162258737448389960435336251497117707311533533172592846982088141497182513841249656481856903016088310660633225642755156750782044830280409878651667503672610973575195890821579302002386844574301250886917604741110344072518629921174830447992097224962105273899517492861443467163191003872440975690569303274806527420213838786625995484975801360150424864301310461462347163275336741180711643184842504116122679775756703271975781467589137897841450914633478631796426154282619804293915771754457372198229808872616192295270197022523284527464055112495140019266659382074012129197254172140465097073188562770734115254251817330485729988822393155527834559812698975410113888119626326418862187808041136671016208480164581337076198196966320097715347434696571763854233149532408630072050890423125953406169363322563658459684436094770652162528874440111675787767581610846229719469081017208106315499420410913809959421426934590982082043351279092716646570645347054540953425511848805353842177011758729455071491422431547236235515743111994006552067452996211583700329854967667168659957733212307538274658830926709605382671866405767246508085445655684182803962279262279520147065019701528446308485203425938121546030294766646058576430509110933345895897476585357339022030936181730769889993792671584033495789847703108278870022576780762095858913053110332732063855213824612425193955955055398295245427923314060902340552998179718349807295342332573931960138883422619071062858630901880178898405111191397897717070340304026132509606112676325060554200199153761831232512421366613061384471812382655791982441813671114986136039624903388190245556309441281038414915701524628382265534139689127106252360234701755271276169458367556725789111712784107869072785363673900418924025522018669334844198504532271019300207069819796019825557621088887053508975308302807106120800975563609271073908775181781258509869054650167411748685168041237716968951472493704099370698984805193126526948645231093903956795808878518886531781079605813106470776084663214392593680257439033820717954821907101040219821733665194580467299500974744383572988249307345085285211003106655998053618782606743738848048138680075161192918523683350533746176725020718614089796805751927524869976374894337856745667580253324688035692102405834542258228714617877541105847831825909949970281234153324250630275854619699192834882103810657277091623081443553349421311643300479783913907393635142377489379417031062262865064184349768967300134720215664828403155232453605043576204160666600602860792638234837764302712221245322712971938792914662333703877341843056623545318169438820562581710883666329160829044452903569014973530704613411045398007323519305703328851915130437650298501757694555865398951465317507871930713846005847456786342440494449286593528174838983937169452301930403436674128083929809648423964339233627560334075828102878062505398931283770725642025750786483216159038837271040886999460111125922040654583715974095630051337793453505824838585907987594443747394207683892900015518387246991732355735819042199799090001382641519118719047745375441040774104402832235604148190211630403305891127254393654446296471184785411920453472173984390310843412912746671540983603545706549793127965468834275934827834749807840563191998526736352586388752655416582691189325716490311021668150498123794282889070380108041810864010067516946911200436588687172633994332101583203701393581024107218286376260003368976979861215737210926010886952433588897320619529905004190402625562230567451465753459751650484684824929583533207708802513012232121737324460880656257744605077130888161870617782088868812644407803431988071527448134883774576607764508898267554645881386898563203556237030593029156859374848724205495286295486344978263996749445382358483698470459672555899268691525644471807733451094951030874288470658907700060429204896248143130952890163637809506891105115649563148485354907333369798250604219650297071483486729043618842879215671302571420062643190421005200129665273518246164848429549400483679241708044654800685007033422575675320891928436758169090008046972396124327568179187789203429620502308006055180671868425715336672646485257713103120395455375134622347769291313720153178303757406618265339711853687717952945304121003405458250764052276143056948775700856035164675831875173227478624212285784623070095895333973789525191814513269984684281958852041504149452443811447153963926971461540324671160631187873550046604139033825609294096083945280959840120006149109888383373004948861889873457188625960428486959862591458276678861325921976854360373065492732794334107453233029495523896716904839678894041749057707144550044288155656014935472482212200279561891552483204478441314287850453150865982939958001111734131438603609823922530725211623801274046601095581760936541942884907466586296408583272330903014756142556926010534705013027518053226550629422867090645591124427236442508653295250028315722395565752703689584893227008879522457602596026727961444908006130442052919458617087602109468560118987668627088855629575413900068594756096330884575141629918073526931585166481827163930692993813199072534161346981712396772244069344015915543861327873788920369764604866810319595834102043663686839559539302323721983595931070425085312431857328280083853423810823466640360607625237702109423894895827414430840708171715621304689423997770035403555045666140861650672809913751975696328032504732133354950151464209683170642665683474651257470763777722427282663185521071000068464141357257892651180348389411398989393289270087731098932142167689654208682568058039280863113941211752261406085273793618071081161344727201534446615004560556770395887398072229555518081391700137482337650947272047933110244823176839117464679146173050353470219840741978962986067099971252155394881330840633759623425716219627986748820730415202959420486648491818914739233458485224225771420848736656021792667972141504610735983362516772985876786849665816082738973212637588426990852659822938018557314728744226939017964893789677669348821316388646069047119757697863694139947802029003284516697552368541854973373894720981634912280847001579568891947340411167908549046624422138983888997669379029439421954867074304642471175507864967379087961651501227334219449486609391327761550269169757903668614548855048421660604820740548115994163134827292114659583331867270017449334188515220718172671895820615750150876882817264703490769258452072496779528688770363379871480950295159955026271371833186247089860512848352619958662304484107433678835328938642006250729584207829133179115790182087949434125947384753993896319400634292314637842300349430939966115446602781744554452421540765717215431322175884079433910159288097180061170297892737871302541648825401839551661740783659220355640949518666066553899542309018627078097157651402666723047714275855797871669293163949807723301136456094487922788510929628436756655129941298059478711406833200535521618317257416277418145606408939745305142891505050214481373959274626948891454744236491276271363402736589723363756398452138681958629003710977880706632495836636616692456845939949023696690241910630688705357019964265031360141943143248280034873244749623423234905092266715313196444539468394684251343240734656715137977573962415109580785608106646670896444082873689763593155475681323822655835338384913555933662625821812211222031814240803391691200097433062167096537171554626402489288000480988956624824430135824954781324864659186314568222699188651092944138156882787455539627664030216988208454415271876404831656369660907656946213082885619337574631854946732515591471658064415201059067950066724478542310740367714857626975751500138214004316371458903804848842475439395150057090037535366665377179530651975969239342865353957728192058481097925409707767406258434127785703588012664391403969047838991446652352713646628539967344884110818266684399447117300086156205022178222310262045195274545080726955134871194293756254046616679787840128664867217315851882410749152945175324764472002674458455269302155483575188147838905001775683309666353824479424301176886401780138955025694041951020874331815149333036806567486713245648107636261192153808568073699096501515084002532934626737624797234762672122544006083725335323306643958504396826083918157640828860492834489794966798879536084108296040121885327805288930654653314230005010817428018155882856625893171431208186695714971888678768350096325113212381948350103008516037906866320906380932455520851977311750194245122209860563616074763153016824615403180430059234089751062557610223059359473517645423245791749342229321667230785096909607176101378424259301404706255680834908689975008313477908118377820501384948801643511390871701408122184486426296291798911773040051912891591469683231453389135526070959182134726707685662009055940107786652022602014083686686867559651147478523532083104746562031228912510405977548230224190476361458470808998385613797848700241619136135143115041050889696582769051139289014724499016642380251590865290307124051035939485439628477566090392086592813675088593396184377801261401234727042196870056100221769580231222621137345838268546648750182672451996498481658173347165203998505670365425423005137633265936271156494413458276335104794622777500059582068604551954145284389562921089071861421187798229331210894278186387838460546195722479572850318430420914612286025567761991770899921944900566325805897273520762058134798588502452490647175972416734165754640909349958097937795817620545071124455494867819912736916088163590981389498591689926948379985065615722116782802306820318038703845131648171215365153524480063806043669498479524825263828210101376364123321072588142993444922158416178226455735768087488923879417206596084708865822068943399832107189307827335660146682094183655656409512904609476693409702178869862394942730441796286370947358960649304625710218578495657715713556701549911231399791137427196160322117521638785587878217069846685844112250297589237347899767255372672028771772510806799595573069195023418073745295980324064902077134789324776879855249449901772551750646121487254729877059256325649905942419537186237867762870904075276195423076248811705952257030589068794903080346929896894229156173752929812923913286189124284863523535947769835230815337450809028962290852536017922038213086093381565497882176729758023625412205392950566958355691972941526804083834581996865570619804327381080233013000605459149030491205545553811630513564907048470873499619445204304297657308549618908511514114015556060439042267217483726809901871547172994152146196929987895381748475852749828999733212381620117816803989427105488570436002364698163124443761263859083366014653094696442538129034191878311361921862383692522628021993545375915053771354705954179706867047327374539553809510158717855860307213160432067885601296180952127514375568039050987848536782324899687381570776896016809622454279647116749473613912615373340764796976969066973330404446596617358191768845065247974312062009679713302703459883914496812218971260177980926938315060247710030491827839701195205968721496786127853514174271959434367577334627248036851212545948862973347218632545389966835478197908985158151113277468531288188747462157771103933021127727469758138102115535463423772015526662230155764432433113712748493390836622305565918612895814594391584328729320569224330651578973156465720772813465444055816396712194836200656882890634250505802683103519825583010383473757555491276401628603538345446671208655462472453004664757768643887488935132016808484199415098312377472726138985693139632124150477757400717051878344054365477479225055829119539774602812007856253558650319893481525807197940652633098188682526423155283927064992964049606964500454318874084128832096065816323851160482477181381032080893376532481749542010751370026451782103868203872322229709626720792472223090392282920493163714563283749555587436415311217220249324087461287519284173636039124724503002587214569866270459593465218335036619330717989234347464466320889330381539907348709493579185191504481567701932185031919551382798178626609027132561149087159825026520637339010496959856038585279060941121880046096769298471443958929183202176582857453239221563928392862069266831879795388925079172023002967935461484279266978671236471746091108123392340519870908771290460498774866744096221839669713215564685039259174208355418580224375941768979224598397614047296115542608862677463357666652415732174585579810729032180981892719340762895973646905002000219674241954982313604427198510892419925825221434828304128647028757656195467864869249837670918203089609377207592216336663567608314237895600694949099227671943901221340975130930257273812672144896932011633416617789420642665124523663365735190343325797731638627030825883336438486357161160843586066925734053564903609589276231521560182863647682103046829400360741945550488111861932692383496836092807740533610700495137560704558384245340856084555389846402617236720135293226479761195570103336693645329635107409762295128349906754367577481625467781891709601045298073026499536345374653279842706356168070693512831597174798426352175823468809552206755960884759257185576479435408420844963321181727601481064331889970724754341584344765127750064409428789363375028411014112237726470038941767895015417096168261487708144475246191881206074956773384458078089199255943640915586698356687891533539179538931361173471403385068394107891420031010953029437817237529355512660284388206873319621359573361804475586684627007095494887411633270513849180671554849480398627563734828305028961187101017814999324491001798968998324517592043628866615868849479540189273859203079205147127541800069345559564439510890942832145831270206112228878377492694820021993614938110437949567392250499543232207371304777625242304908841054311835695900563026394745873891008077921696537408496899781378606784120812495260499264119533370902387160818627535524042141717922848055952573700154582232005296856673787875224961144542999691644276747028896481647178793689494292764645319838065195690888452539058181814793368949755166403616940259696781972374512552769312569749334684240470025944340458224860376577628065026336019183191967610308513533045359041628045288884782535139371380980684757713675449228367590313765623652164631753894662143799956799623481975617369729434365864121007309964075936317867984053430714326847956904376152187552155000476648324281538128375102151703381721717388496218402655638326363040009332600172886898091043249890506539261515919187684794383472602218107450709446998814198327089492592032280001332134376210548472941049789526444317913073269148705106947217692374365206158719513353544106737209921026800480404843908565232982012023438562828759152430752035011533583749005374786950340871681522947717121866164114916575088795575390252317099052267740980174735728261786148143535940128268297167965804738601171649070035092998588545613236648723614027544741763291876645157109942391047934617956373253362313401748627416794445329578699368032920641413654517344921877222301945751614383217873475168648990621354252463887529877892954920326254350624118707964523583401536761455565887889975809930676671247438060798847497296955753139526982044503453844582996837812334259152210691185160815150349615405649842812592227192821159803000626068590449982059878543936843218815500821217477475410182431127375550219835522101771676482043591715593442275097661156303772205268882349835237613305386130221191737933169481009301659487644704825805991883718635650950193695718145647721198370891908799027060321382850234408878827334536964178530598846098243516172574022227609907592719700344708455087556363321473676299847898077926818209424634719857019895301834331349507701780675183720089846421502753961330380572137358163951132400188065551799533527904784789283038997552559091107056388948707101916649682594825123523662763815856553943516153098145200268183368069888877462585032429287700064806462489646586911153855098467443412153181437120674018458110708833433712315080569727282956149488522320870483371804832849467837135698303345835837823932599944147672426085729110692782706345004439186812386117288912492515091519839336565140716352861501966631263320030047273365462902541598003514050758315773686163420438059969419289356631093018792429997529894449339857661966434826695465567658949621385060154393808280517855936645855696467630728667957801621665021345911580056942044244796261085553943489422293905017366614298107524638230563448626478316016087273594847340422237977433333922827249393836831669119044908413128896724150700412995380590588756743372359928804492437750521845526890152177822078165682372773959377460944530756702017119986883091454397793374124447121662774620845301669925686952024085742258883913280368956356276567729664491226333192390355660461288714335254120609278257728971277343930945710891428357168172007903920223010770761944597453809824675800446321021449248898977706940096028800988291893308565660792684153682793650190545250596077697353570607512577217649543833537893730638076950625719002924516633496412559367874108295169884644622909060379942366578629058160591890736103137169454015389567477112454350370667593966049791686359281974390013333226137577826539912112225774362441435786744778095508205155569191473874183237163423480827880571833366284231948870511837479771753993907053534020519986798878952798148354988565025164926506133664152998754769252790049119475408043697498250864145704308108005931628926827725216953035791769713558962087454785144489036333419965690718202339742616048428263575714545935458912312909909153176830479949006408150940773165260987698991426598879555021229979732605556337771609595709112697360966030460746638943370033284997086132148518990164565961499050911687475193780154527442319305276207660595152277445012784312684791528513928131028519120432499588138412159593683425562981932948663349273131129266971024026962290369033753826560851345874211172453869430017535596206229195867271094932914120427206729654829593828993202823659707646167354540886596792591610874565510970100113310557181561630998732534373307948746088021587574401698151720211717312000210427821796841509274604571346284892087517250832323594514315311719860269769545739481926405418477478455564904293632260290317335760977946082448882538663662431920618733910247124286424597264116918594480839789875880405157560385820229935003253134068433395338535631538508352033306107702422851406128260945507840944166328438961006418323419342590081318601013439769826769098514406790076806593980699774970425330107279309408192979548494079653653964535699718096051376394808850537886356240870030727304256888907533341709642925873807564616485201388239808177587088630117979863212861290440263372830145454901896335864879573503686779064057806632748415239615521939604010686974592265780853692931498127575556668664473419586626059935824188528530908995720106995370409984322092664361542406136122046555402389314484534089312074662502678441380626800516698108172816962671087765517300246537287764786168452427507441225005008438156552205682270087175958216208121940195337030839550143935102379497961672457136428234577269561465277103588541976676611613516767218226103493489700052305684600802837104867006102522213055211254307168521373144627790686315812689137701219718732561856556109684331086200422522967540374914422933976782010955120644136943009938970226803505301344179337204319571680610039174836077278026216407600847452711764531174474762121238939055808460835719106832187396489013688754924557685748311653861310919975013359666608044459034234199518889540178196756044852960760559395167948930607911913482223871628527914607884752122945474687374595492323029432332171599342554290951604221497874857312789160590992290918576170349391302847779324319045891423678643084307948567348964251218607229649986584484740585342801685940645824918781164359993813124356749467299170691470460043001022474541182848084116484721653747972966957856230234683572168268675778304630863174816801090606047630942081702071762595241127386835989673316001017050302104298540859049232706715428069582173379659270485647535965551144491463203603608635846773075129390918989694482582516275599955475684521067498820516859826457796960310092872932159409978182724277150884383529951825174771398360874895880502014144152914041841363897486065146590866196438847650439388324875808041353740591484356277869275606311827490396833299256680088401902624698322644883678488063784680241497590176154124707715872622954170986677476344182501939958420969891488295864429143361834827075004551337582381453718110245497704108983076324220448905047347637782662126256663217315999666729723541358902291949819989895957766806523582355025070250150415923408296918089549114825967293965476490831039904904474208180107937129401393346808644167912916965249638450899088188602092780397813697247640886528378034886013303760510254969926514923259141523569668178607811948275055311224785540486557727668234523669900975706765366893320546652892352635759916125604847612626761225112199689324807149123827737444534469182604859564681035294986346685573686323499067859995381769641093103332155859704771686976147438295322330485331475181860201267926108192618063028407861635520885356894959712560624686030853214595414124318765123441574165006343105021623045804843480721077576020858270850642516399400574975102090164385751243929822874058383893012702412389533736994466253694159418565884619938731329384427834525236489739678612194549476028982547356436452961373375774332080940994658054066337735790986860902955517132497556108353563410001556889410674265018121495829530694065188211892347405130787247875425890805138187460611244116407975048559748076808760309120909410585148002765928539465961384645128110278488907650257593565935051922872900028267875078914305748846953107235155672205146650763985780008737751792405793308764992423936560925444064713297749616202724213441424504905991948455883347855474707810964480257194223389477449650807511371841815652625212776054307738932946830677548919402893549095472698575830822990536451586090496514724488105936543414708894667567842025132193804500870978743214734381332135095791651815808537352551039554521395596890616098163027703263014234889184130411440641683444215630085309605129184517256347650712738415567236810983804176301526470879262513351293940046366144379931331266178431219928270744428186625922711512136887280169461158874815402969001708093072256163215082091016329841906841456448187545290149198863471224035643603568712237465785349579484872081255014638519684973075514249486081457995904611135898375962608454888502775855124129810430999389602726994159131685682180659071871053770163991177662964986912884076757449464467506265494102241346668185673547567057733869291552443266632741631737907105593132249797592212695797223234008174828092852267651935754470854077235477943758144348314597220611842924401207774655150046178376603083052392773867069605561391799623725097097584056784084207680960164945729177417203181546332863466496839771436696322425201974671681873854630856633415084828593126756877787921725936275345693633558709323312918314409094912252205141571289555601480521603381513495135223806982733490266560303213989026958797180603585610660194937713510810174196540793242933978145885437488595068397383482040042965992907406359189029088980945712353369454608636413900463779360629939749234622913939840743627648258196908700574503066875515016229411835782680479050569113746633948306413135093787874897606887066395020304403161905865374476378210659185302779318812794988284567642761618679074961661379289019660947528605430042934724047237700943428363697168755471172036934827363538821453447859018397933787699785568300542016857837583741490879637349633664446090279663539204626175044046335397556806398879437349791995177403752461573758526748591166999404465450883552769925425259324403537391280487312112469117757705953880912409472805695894688258922547547603855573063407583812868820124531558392591092418612142335818434030012198646636968307435441299108372032933045485968744307416632716947323727304912674125886712225090024797986414664759468546974146259352339393322214345893513595021509424007391623136970800776688707599881008971116843238855919119465743179368615276659964813901273584692894400863623738435714349987580576367717868556126237102732919318301360458806120939410008820520652158075139665537022992358762285671368752738583866072670332177271972403978789965790584443886533893518098163171389998029155350161100079993293710808764598900626960342826905115211524322430592954482125281602425724397822082034678068754427357950881771225896559526687824382163151001901044720284530800921655630733165323485818525620580315026564636126047116374343683921726308424858657156761082868864634989398715696230583523065249724395083111179556251145306431762518471572935695024883144066011523507304158429374021706612406308581381725127060468812102468504419747569555043602552224861574465924185168851498333442563530447458875142787370976119754400713435864759725453171050092662541398543926597674387516045828848205646808178517720081080404936561888441797984582440559732023542277930496550598560711374440592476532670317410218133496282412007464844849960737744515405014579520448642661146033620852680363482312564547604157126954053438419996108049842916183103362595718750510248745392107084673889912697347431766593587572632533419664207438929200132462594046964730878815638229690884533012781314199304308078797695232601356093455659836980148240917913698560590596241857410191238997309771954936091610512805554481149125367776271377106489185572763892730385865010037362392417268596114107751728134256111673847969653623419354443536435099792813795601830987970898953399205576850747903399793150388416397290159644437817473196672908768439249885637859270536650352101576010078867667105959026953260297107978356736042728493084182622189058076122920347151888465998386849692148837076841113938939749733772386671987361891938716581710206069200443229799983505128690758868529147586442740505180152704853618770099777474011109399827937852237772694452832546758882058754675695818997849733126992466233962790763301900616472578047896564463296735942263716963288769405018177607371112058375423520948644257528896314209528328164943670240867974174599981794786661026238961282717061351944528840383267092885781519266722122175609042474884840067140854138378360189267774862732606170587253488894666137009271381357705793685201344398810299608720147415489526299851356637401265141474608556919052670321746331477243218508859392190646340504292143096786507280581545407391485750506301823629796016862820561709753405347584099731012378442401334726597633584255374017067599244922187941587367391669818785301349959078577251781726061572716513700413497770665035825599390848136472104141757012996313825032979085073409034547451154242914536734473499618488959144307312880304172757987826494950915125638287896615985198928520784685389938611723929187521622686225554521668779494537302717762361879943789426788801471663319796470625494335090080372528072653525640903051855198500552110558768309254686975034262494004315585808563080931523641876346127065962537901540360534525935878525066069636576710883317599307194881973681889089081838936845359507320904793088062399838440395033365716869819300496644629603115367532439640352628926855747714277051207645801186756919642679618519187421079086430971484506202832115561668233958174138774180166703241233911180642451914654485205986410567926611375060119949725750729888827776986660816198926113695449309371391963556899434437273307869420334539303130752068203060781215680553768549050137968395179011761115132190065146220943154424118784618802145317785981649916250042586179053813297361051680640160807348392485947403064670357396289541763306270476378190479095001801468320782810032332422975531040389799071194109649473087936960748092466664901239745715748719034083256916907814924368093302821489067813792592869443934329219182683540740885750392675348676969674962373978943190748212663806306550842879949790381272573294111182722600517716238479133100397721433112893421903565349212384173559014032505601279256173196738361770268158424974222474301706101350760230529270581457406661494831254729645870440692487207212072885648751095704681267319238636378101301949519696786091944958225240916476552666276667892618517452491326287503631640223662248031867418496627565033850963510456415361546007864289633011939335421708202719768760846062958945600074506718804885807682237819330165136080717605867343203795228407546065395616956626874623827246035171109055891311780451965986368496711826125100642194243252838631097235689912351304460588232450337996582307501085756531946519653024820154667586048981278804317228606991832318246816737395717107235060972252089969269527376500367261746615572001167974787038554612276115751114438615060202425937880844395302537788285333679350656094255701537235659015794266868156348501586573104963612001163369680296600742210114345340449659018855161780963314527848769785268884501546481213178872494971778266130375398446140888394380536376760246760757884593061039114071220413295409020013789703121269961826539968195808537007708087570037828212487467643848086811607583552803870919694080717070238288223237338023269730836435761494787464749863792633132833045392185258586621271805293315286110353713314591706602612456618855201042954599440371520768460783512031817516395030396326711242027401729086223629327914822410228316221508338348464116458729611811244585344131642710257606786867626348631810199332252490685993646444656990890004107628649024158999395391538662764928733336426184896157947243276409013634215892460516814406327902989519976798634650390069237472157559681382247196106827124298898457991337455638844464087548050522723009887344807648744867393647914684204802659689240460531813038971580869316182980237621089134019234103055778545442256623685616166767050623402323330113414669662177386837912611081875265919256849231464389198612736766282066885677268971239293277963227353382884590951439566171804796507404034908958270475169800840659604730645725204670546951907471651986534933239712464322885546890032721580455813816346378643235294916885651019465975959929098933584252855671735880142255592659073051980097443556304939560277161824256772723031455675024062021334043734667962462639059111890299262896325779287779705150457639045959930778177333695486745720084739537550891858091988581025749372563895810067314663397768336226705936348081774246383070952834694913744889447289781671894370004449698270134053375514463085310829762327103021977656229217315572677312243921648513251611375195517169836067184905092175277233522495129150870414395707496164918758005977429017530905585076061431828868866648709405563971273982734660336366527512118687129390590051581245679232499648985070377905583225264119919446489554729348424010251813253884753214519263935769407255709242249892448302031556377183322950416440438188606942318557054074338935339119646433598385881908324770882377833460178178485079266682239504810818627710599363694456713244921935357993438431895741627048446254252343688545126614213429403591398314692049015765185092492168547777549470589641268872706597377457744832225133611876910078619168046583750955747603739629054218578129772648858579874674413076722510027231810904522410570141727250360133492648116327819719533876771001722813708625961542259719741275057684171924502209551737177841904679599368839569789757319539707075741829815641190741503661063037616131744432525305973051264786838533001496085904148149606126797174897771616736678084529187768740122862498184256175752255449484085794474215934662506420127400819309622108027756265392779957594834683684411920371592088461767239105781714740664493971293189673286063990623636315882366824866115213962287847517639375773178147918969689412936885041787537369357175610281458527967441379867362826688245437210583762380485406452003774614385712032801306254743209083729083661769303991251512631046450549209073363381878493498291936522749281410055662157104610255915142459691535806261128117397168958936689144152175630939090632139510057759613163310650107452530414689776908509354705850538946844016839459160070180000187201939455904419357470511108188292640320742269134938605462177436275038615180918982369182909042171650701669625735652981737410113378724149870453968947490607983356849836461942784155069348398702269851379568727038428274081767768089530165721278075481083389058167003867048792389337711921500035092608460824672392506869500761926440702270069003541088932280210904988994485012467998392943679027697455106307782113189449901256540813729093182738336917339591326817617186238120956565378903222643694404257733401940172979382837002023363891563462116704265190386979167453392620885420339776906876044986567578503673585236097679150464427617967701141140727676479374237652040224569585967303436007708141041164749139804758236467163697376362582173084972458964058158694016086081638758798693211035522255113106811677108143988591668944174603034424505142681822768698901007760153168842994930133572389583432695083312833711935534730411132635603289847505454751171757174479193517851829345123520323605462240716059694427953069978984493289797275566242600688196883631169898018541164917292032362941123157581526329181645749987575947177890516881342757206342578542023687025514655433347085185157960688085943549406906079837342426235100448991690151617704801417142429363716886999209257274582245453852693735902979659644733713490537419790518134225768167029995906356559842890906696943113866180931377577551119414204911543638119177350041445755655198327654714459242076300185880754463846173265049032724081204656367515575007124354055963363904662431314785395370634827494105445420838744912298807080910334094203126828587763259202336704683612395081428857450993563870794804680497137113598006223264043660935179946492184240710195766006941443683124825615269879281951678255973987938933669617936748876445566995647113812942579211014866153231481936964391287002751643888879037056953787833737663127796947522019931820151989548523603841121412575358292284557706758984924098534272579146539193175926643577683427237044655092152549657312541314026876411071604581747302887074858447530460851998972134507423848220845416267788221307980822699246873101256462135237353883528586647682678530505762633375715970220840470619817462111402667005094710859862392830326299233034795682182135123833650796777386438170505009714372787107072494775474568962996617765933755439875809661084889021559855232417915294105051053252764610449612268660825718937635797717011531208717802656837397604173035825881984058685283208145869304963916485362495942746811003677456075602332519181691421453797145375935480533739669354135398347786157304694945329869757107144712233108071053250123817650951803727532867305322050690873529090520326657896140691475928423697291704586951067450986981443751483956544285103270970542563175739751495674906262586289436545846807642596336947304627398355640279805884641759524431441397518343147907051389516241981647192129204086121671598933680766053155849167569778905893199119390426552632230630099134190311120498546218523473420385218442862159048138044510769901064931398588235661160098983856130433430645735249727970822999743705223027826110741093142468138421391756853784886420917762371510808321926586531959072216100015858970261839591434940468589809610079527402262009775243906668395543112216652552220672785261771990284297739375120123494254855146045386134553198376513653324215680730342943940653747573369334549586435663267503539898506748592249382215714090812844049222145055024530401306122494020271574892063222817746646506064916325891182345527380235749800398687900486174335793115288892364763743092912380701298923669890026135026121059865401035012650649660926475136188611395421560029717403615144763817969803919586372125500609331658583423634198002093467373562144020751305651459897394880153944737969701769887560423629111691683609171522355439532898043877677090461613703636865733729124807407178769951114855589785406405689724850875658254175480213686937375947366835697636255324971707116620108241540787998075272759397273976588900000588356279619797368770299274144542991289062463649783800548389051594942361298557525230585571453096243733804523389838797378380517892432336328610362776423817872393372093607185687497406491619157612501866064202089506378669874100544194814677899826159135762473715346605579656835383512039888489244369434893690588159411061831788053273969364141117265588561434549067567060507058621439000067902977296977198752238945497530798080608453973337409189801204932358650005570673703696681698130435040101456538033084959474840574937762199421446656433774563479353680974410733113311547165258926801974946484231035959360014682652097822120864173230888480304034486023451272683034217589390202900813910942289909740702886125214939183240776933535954540588819885561924662542336150103807355674819207024843668309625737566117218831555084093574954115340539746224620808882427896958779701423967982299176626120947920966935932723981654286114727841767232445419240635140804157566052994788389721460887127674428370821699421058355205248602394109556185844779978466918163636331872718362264114364939647947661121321691187304577811583819549271829922612226242799919331038792686913908466103270608860958142349228986060455200877929031431744881156699036549919414659040207442921305900541124144893226004953375286284776327682813803537348050610913600861744025129510392259097093868442165254151668076660525444605185597807783307218065475320462477432153159560931919489855104675478476462149036369544443026308432126053459263433243273451944884925455251419638991112063714018710965286888172346713663288643648627504704478049564038586089138844486140277544755385310715067929329739624035966215734350058856849996773851627928377153497677810795595152008937291528641025875018632706289437795283317517216855949002548042638894149380118036664189001308283285617474170070641119235161123978144403305541006261805361586596268710366842613802700986281432502274649026000562740612631294220022013135717254212009128308505386394807566040631045785826427067923368606778945529802135503128809097106687821235230453354337994392847246883719816552269076148799936537142931230733604485068337457094473737871577664854758486240738227087637724087652871110445783305592498687212085009478116241855751931085700035105527225985656830861787386613555153258636267221727397539828322398195851188662950616314012333990853104926237126507929305670830567387602647834047011698349964816117976636845738833056903231670424684725252077030928929639435572801993477702500815467810484094661401801782863322592817710732211036362196431251120282114358446412456375926560322242370831284890826250032583000001842736965055995332362290676895357286014073648601731413990111718972136892772442049977518283700882371650508915846903692959349196399491484703743813259711178097020989690002138613567502402596582353488040714474133790577755141125667344475378822265776691903797712074276836636889203117215454590576566502621094267758449376767244547614838260675877896421214766797786677188592580987395559697170511445777529272939032939581587608656805440130314874968012577325276926609786827735351488282618961036763348261238343712491559521618234270609020605612770712465295758575911055215072316825282452611593240191420535299221873032151392018561047573306405817757132092168873275132745280180495027224915622351010783632195272377336357830120468854761986154151600684733634806319998037415123902071094148104523879337670555877299268615296159352144560791405020699466177826195869441750192913604764620160367801937437712190895853838916360901412994743247861587829918627380171166195273122659166295553206017465944713991535452883080978161893285722558997505541458658958031095746971749086179230617211918391859871623137206524919254448342860187103564396330039553900478542545311625254449436640221277507357140602351174672771607659475659218286407098852695342838640371204995461984157799736742888405311905805546269632850124377761323760729186061110715077824787722049150435756445448653223824907028254572739246676227366747666293557464415831263941003419020423913976579787322201929617968918659842029273982464604157229817069214352248620266044557058902654941458318360740730874671357331092819338663506105769338097567430482793827994511851506412919800335563163466563776013311432781423577054303151952756869663432127837099111612720567665273754038279720942708960375432408287399508191496087522210689776923034032858203028815769234433050047512627949999670126351962145485360096088593947286253903446313002685871316180564640483757474617940080758500383023492874040185287564242481855761612113678365907936478339101939911311539482764646195790938018957589650875689984293379114371762891089308895660477764804978153558078971003665136572463515031910486500050358205182348113816627445248083714195095480885439693293061021027020936075227050439266209526653971901443885474401084642696085503585499612770703977706513549977729297886600925501533867212205210856849632265445936912793061681332500254565425608883010797231179531523654648463000332368574273869262391041678967996111338335947977080873788084528755557152250541957462490447198364008243975346226437394593767331696226507863563732891077409485904272739699888439755815262623458446379830146246319124021376268427954330891528177699691258843060965197098032363199182858303457834965498243554494974074639919391255658119820295819210213279816845460028976597945207825609862412937083062214066902264424972779763658661495895222423413487257860222878803031324231963466028910870124410773331212633115001928179760907886446285153799021626808825439013746773371575319824761109327320805881562925634571579314700277837495095356454429773808346377609876105277475231638063485475988371840997216802255692112372360599758465727833180772493891641396127654106952557098534369216633772111115113717161677364365375162338345000618380681139820251551105793518455079958597056102653554367340646116613226480629287421030599936176278750129994531193805588756425733759947905199332992257228288845635547972418399688416392864943639419611550838440548892535503329845094570553876649690004556020496184160742403388711618676180469098863190382911624878064382192160690829510742263260693913132697053671114160591338149606499537373313996546049394061108327840748243964694525397650389982134157983170372368271579718000293667226075740836244974639308149115601223209707525239997026491149378460362729820747386229405584879270152799179580895704404590286351853779636967640241992430397265656299128645580265732671688327293422190547707473745734952966375515701851917177965533347577030035165550061629399236603127554727325034060065732701375194016091375101175627501649293479518898716956256895602085881412334832759018228715145428457695416145382267410060171391022796489119957127962686151936451763693515953700439054446728915323053806387303275797567493303490989763815697824683185010782671434656074760407701879409418600289098370748519275776949292388197373090918843547358700402980965786460781055744609524723978158628230327706108338381296660976851823788458155723341225656455251070645161912284089631765277783893048893715437500233065501714136631812283780759976669904257006052646393780116798547279220592316738386755587163973763049692699116538195365704511753001355374653880021654285380132548471144507987482234772284978419273756937985698684687609661059411422765796635737956456387834144855862196272577372707886321880661631167339737907778273189114440459013879748296079493354131914162046764461044178082825453683472389203265267270942928891855474343680184994425794488700332924043947880728543610851064528582727401833102983052656031062397974095504471619861108139994832048081372463421038396855078547473365015860254030259366855075112839694091031820346947504703385548495237403527647340231626611417878613598558979195625216984374797263578648321835593525571350511754557888314539800773346829970097746734196276566686359682138251818924358403316194789631032826259053786460881822494392859745826007246819850424915790285247909192744627384413934510576678188759652699730817966811772196627013647970035135796725382195096339067842338592599254610919754717124576579631388933405452396195271491536127395244561726682098769265773870036012227971095588360535249602023092509083299090780452694436615649721373318813651944842961333083346821464562925149925952016361554285077958799736920412865762160892757235923985923789467666930547498955709322877458533084129341662376584567665284393180896326081639431130857155121341854371642911071013579054909341836446484547523854447983570598839089968621648908364061486120467712094051289677963810077930623603977445877983662245022313484276687745030003530670272528327111087706365682328358212081610746587328231286573963083465245218150999542651488147170140881230782337273179661291799675379501207850227566310192487600135289112008608611572258496685298957587053773898782332888896378616511866631380875636120589379280686456043241926465246162364902764940672872266502019647991728982145476994766201056506018848094863625052649884349923387425839254350808029804034683578457442867242341388768038094055584255242051242263651593303658081316451365591388387478170431936561708038069304654543435553008433491421805359516330277372929776909215222495456359951615065189911312999744742459349865188878584741076576513555037826635468034150406742087633413894519371414448603682942899309555638435737702294752536550337971726813880642036978486846759026844816627414247943374545150673067340325111824888229007124513608683818377015311941408369567303328297711126419176116354625389676123242146055733752833839152646290655831101052836257865161606660177462111124469174346555343957506307134548888206873540485678188884850966878423134966436032090889862108702734947871013713974326289867743809831979510301715139616075639777161313709857227180336497422652249763400941186257812050447025649281795620027722306742792698367591111839838925282591680054920390604654200878849648873805446477517660731677895612109608961417563040557303636512457162300290134277560192478535526189041233656701033178405681777920726394114272989248382070414078691778883777615331337016708705774228287227842596467993644542860268060783989022770429223194040407164107211192288307328019914991616058310826832090409125956882191788407694259205432590249142544929244532865462393386022856820986222662688905837341876379022839593247226698459335074691635358507685351344640655910399540593372114336384611664721409251181921602719038167698470598094369933817737207910169653440892807712212765468986747084988883389205660636486677474893410450273163780636380467218405819562272883161438951912486439265347570320972798497598811684490960812340251676271178810953161233825040644600792126533311517458657923598020909598408663493162738447038724731873901765197063767362158126921125151944564551032044717854656497196720339522594983097092019013770912218450425086323073633540829007659537623365306803476789729546659201221026345053848943948885380243453070163323654612953851380219105505343525826904427927639544663091643576768783468428334976451179494229327962200794142576757819838140871967783473196443767364722660391523246179137092944214261961873491134958162708303736180699227598482028320600410712294630470397835885853720884929895329684884237757234881880875642023937470721236282049279923780668166978667847202865864167509414457551173233470445472395941361036984721972478847422845232023957383094374981011600119879504743043386671639816708405170574330352520745222147104830545957314126202042005577920592760126201710943280492473497423072469042011275457670202790282958790121453640040714819642961693997587072278804735507937539008126170178502013895800224564017451082167894936478451137802985408169050361018301771801489394931761117356400934674041891256559925129722916692870885276668650704128417034261201965462120853601959603941243250800231325509690366545312491219198901688177011777912779008290820646247561619048513517206546649010885368419637038611555163501697668367731645568825939676071618685545508434675364777607894519580079547918366148759770893550400964436772279693635477885157799347076284249850791231479666429641378525061680595619001027667896678310178845361538242468895426331533232068925359681665183449349099275972711177761464392869245696885284958022593068820657943326470519658202827512334349369439667516900815095715860205447912786858643150354275879848239433526645317582985959481076278884157153042535160433746389313454995369174555753419814494624148308219244514447363519822014788723461789524857956558785514168166585674876279824720922163009183252612600285351784423654738582015258573081928957047784058606259697199887674856641369941838619311699822314939964892416616369953765839211499592025367282044757127175473932074136519836226222118898525906948036730673083359749102040268407136617564597492538548264752693973867304952271669660468872734532670873928359361743822395362919761509762725407239502677504536087044400889843693813762076904368714440836001230382439784539608051076951318767410373012075574237055938904038163157681065185693611618873192977158911046631894568429580957374418233583695482350567571561496074591903324592516645938329585713819967091025849437922025835191472853554944804717453441352465705504278827794875954567953512487718693446524195190609859285187192622360873040032470843998294122316760659235490353717176296290239193838295472454699390908919456101405881059279963364420951864780413253595179727664995479715378145389160689242250689082580262606701282488470160972802575986116105156209372760764703935987681884626295426531596267749014499125007112313370640448603870926414180901512496849272549812084199443274230382752413511222228287771846827481682497738486849768491504085843947085061771798011676536029738461477554231836814859479752045410146310708816829977897466920793672782305242998955773434228624722279827807054210032302946178271932555650277598549098696785531819947346773885638663048602799524548912624660956460329599747168557897366967144919501826105019625523770659629385517115901215895384233051449756498327502225224910140398923688312129035718989254470538856106479547979798399480248912891705892752430643029501201358267599257029751003930067162046033627912414266360848691535036146225299070614200877454709363063454260985321569793745683498688946814128518827831583911005312616962563752584693350318642182242796623824434088897740688768826437897786518162889064296925747972996467307087745467607309858917551279548357775825769984755196861569570070060982766762048340038172117573271816248203369435597192103427226358483239637712702569509761414949698624226728860104207929557085475040588958472138148903779997805383537792776883167346702218063874969039848590245999503459045563315813349965945626971529846269183697082259032469950836718451951391901210361362984976362005931682904515627181978128584302947191514518457664231655236962175758585557833136622287446304678358715490014580313177848417225335859940701992951327944216905627146972152487189943923543614779870989079391612590161293859712256424514790368807781220048762431023870329981077952383606304689593575368945090715365781944624128504162876607771941001289144341126757469173014567240144431863178265360729455137127818416687624927039735471156666983403074967910039340294702202121428646637059472763630392235468307575022112653287613181230158448562607038885677159885220909284732061744645890930843903653932791444108231392482486097736524566837868323868208567839210366769554629588579871402130187100216766493122954680312671409910618790743059923312075007388459956358821627469779365211670672562187137599924854187183718659481341249541305944062836510422956275376264784015667851637492349889925220121035000749085880518550750716383646503588779304991177574390605982165230420176948757327965444450757654566335157546278492981366432205239922749708704937972382299703192422144640108321386399287576272564294830956149406777254211840143990012165825219256844389768136858346046044812954693523520293169566681177184203312401734326157348334095087119941949542893180794647037687004259336405549815254249627809438222310785063970716770953123214781809240993843465481130817220086934837583251911629824088186911714803631928422361816579947057434496826089879992248124241393230026954596801164847918790557699299585019308706143325744287311599931389404900352043909854171699258351041045460287074134470022736848679521906698552037987153795522795516748215424209892830089264558503185910009364176206240401350664122092819847798113845288128826649614057333002864935847647898658461222323182207764971852098904343674480019707063928236319976275478331937829976934461833651339628388775519968531545284441516208852343118875740251616245729621906442191179928569704180734704704943488450440043511989991008611152396234721448633541491364738075102886667210015797075691354029241482007507285746856208460377566842686096094634478410666666955223563862605131783639306329282423924899636524645928403864604800257976967931210082768188958775898297419878133890280745711695990230629419323597042840010281461722189162303873073879638150001806269050014764194211298039928942800632014894348604392882893873661635265226069975227668313144588937264826248801017523784683352390998485186919421262777784748122602955909265790946116055015788990600263416720565469234425985394878618748107351404359203206232721714316840944810786151621706434705616172954883736315464796746369110342213702946030454785018751914781221675596247584450884462979389832525408646695622992941997545307654777385811576623052191512395655004985109346821338981108468706287963608899796509705221279733343959840601957148685091652371056840878163278657144396984137759043532057918512351911423500276604715003643763358040483573948589405240999105909286141856116414972413063471987942377775485808883841069491736256753239354698509475296503632959240700459137500088576887806163319041099912382278161118272408427957542981937146238356448677635463394949682642581681736033860738333517246480684561036899706540349517686672110996398445343367971837495260762756119300560313587140357244616381117879327633446687601032251787177804129794548546674117032017137591279080129221886622020835467271285069062041749599594492441357762748630526481671740908421981203797548490185594628726530179643020194861996382974371966082554814447217786427589303334758075525638169629328760195185824707474984540507093876640230726796922412750205397707806193159427656692609294161819510974324347755241916279717731145464787872282776899217023637018642507503322726326244105880691347268959149880211164697145508756903785541280077290020767140767029624489824317577569946166882666538992378828161668358388878007060205643010075882720838565741954469240141403066336165159393101931373096961643452215312253233453977654982638206366022451326699037047312500425181265695286541323878471747229309650813910892549586015756397453616765065437912893223610208530907002394039225375712258938702561502290825125323467199914619378329817517358074419614441453673513094031276126512975625708063817033483836973223590088138302558754248083724239023221389227431199119538980405301136092446180536109432946505249650822000378216466016606335153721309057317122151979546268752216786700597954376009512941183826595348041244200346396437817741138505240240513237391579370841540944124995390062409435787576251874614736161872795097517940152330078649789968070664447568723626040128744579692269138342488815253148320387728252010445573547820050964465165172568884869530602320694947963635457839505571961148882086883571699906902024601502342068768135695053702630285212672652318983727870317817774518741363125893872235766028594695833398419293567203798116273089749463105997437221092116992164136254264699993392899965873142336646824402905260796781307383414007476840126631299833125777962701606073634944085680141425645635996213165378925040832496390129416725232306556446121063338171587644468616298675715660667456280847017673869089568714174398299294048793523258504204193595081671251652930013369007642317627433335289428621740210949676140694965832500466856261482426470808218279227153141699933335807552440735456196831376957282379315641436651975594201762997467955596268182817840554235820936744357723909473317725649028519772720974526988594690744838330330866619480398479036876943407679907828458861885947607280150403448958817807964942306053940691681650856171531670738047756997075768015872175363234086093312014765430412568118148777742474282316626403883801818519662342225684200809832191703868647815482317750672181422613653102400186674040918998240297081568876689625864323464664728091770659430261910307275803639972095360137399797896675846162304246270403801070333328392231331439715639095060255744514146215974915494623427081132576617287837577092028573012662526095493541297952247943955725144177563693171057572018054173447044988983074047917128434117936569641208715224493808568695698349378286497300982168772215046747648532895371255717153487102896352196854366565405018587446211314953065669493771872008405365371607090541125312452258218952878080542207207447698443068734045951080615913959725267372211003383086315724638696293493856895364261899341291715852828319099397363285081291035554764747045136145975855149828096678935822223098742168596847261987382267571232445655507360768241172932194019296072587760897683815525296414898457164602350180472325848757688085927729551249532684115616833982935558674828544489906990462436567043100697153010525784502465775306594722567642451209723500926867232737450425983623325996153260764492274271895590410428629522629679688603597318225364835238099849267302706300764724918204915184772610807258732680946293295817643379808050829489196634625616386728481694062022389591019487962478759140300602572428860522005657678951402846502743548761527843859381209719400653298090996279278654844379210209822351453315712693869465553012842071405094833518499636470665804628667407397063366999798028195306297537405203335839984324843268251163930138880464884703030750479544209294705979295563383017429726718705864138532199658640924096457134070838757578287024824351912009526139876876031359841130142412649195922150424625731521291995474469702753453042863604114987040623020383921285608184934472135084185279868137008823206017603163199101567098899737395681006066863383999955447283409530830151800036606380508580586114050902648816626339453701754746024087194706395381555477136559489592113632005285609061704811801066554831110668135019356579710453368680147592413548811914214390919262192247964822499198314774308858336648728755052583353472860858698926221703899736898220440416138135521433744550392125292097179398177032601767563248975224803405721346115921723567938728657500710693115387133148339210266246147293297736111318563607006547287657646948245114606687832128775027085493506760591274402313006156561604298745555046906045693264750850784831930129693274047843630662299266095342745657423971178413123311684048350171376558991882542190458601667999001658968084467312137344901890439838848841619714469287711487642134815217554398050910858640806471552991365173029369945340867549200861957345127139424832802716072708428369538215069828757393339228646385090402255180247733699050456366711558858405703530002258271398401399471644121499804972052268285278354505487624191048166395098911431955904144655767095462159538460384754932913161361116411364704883204839806907638500048279913482467578151845932669739421537258538088099697998748891044786699583233444758800938607340093688837479969913236377749871040162211014123544562394219515564054948350554633995170604427172498162671428453923822059255475677449051876247515688419902125618767222702190136730721459682294967914142031891318648751934280831236626659893545563084399040287000667523746651932158223982690581461729616416020759777866765148506070488664723895985521509590755622906614702443549356605943119845843455027544490918995758409348234807559308975754692803621011658094514712679173893339650555978063093277627598043128050526191522860119369484992744300032859269578244340259121811293341958383383085411908624572761580190609561151490980795204932902261346770603603914663116037244655611798279757561828103131382034061923459285263498197106060162391912871259754776137352065265973006358922001793172368838074533532422293388248136353733549791072513670634611928254773410440597749871834912338857740599067252243201059020216280383367015973875240861870303343845151665452827478322724149746039308970395715172456658300779659923940643955354293948026136364967441002575023986001236189115996602263799290921625328238990611053862566127857241737022682993089340315546439837591777056123049349854046123259858172115016283697766053069822216446697093091476283300387419000850981458163937300204600299451796166317878697161187731669036841560532486190290090001805490312039020896661454685599028710262670074525269966942751318289826097037856215166302123589447085078044093086623089587948702415218613654876940452034646456304656442321297982748569282980544431122593007989318045089145075154895342359348859597268429409127744468036469793021510521701157670918514652326765254684479942255048556126211338538042781257374485427747816556439455692975142783768696130195362070387042334306903795941375419817613065715592763766910667739898975138307850013005692250733909773473680421093054958703285672856557214507893523986268410838863770144066081191106958060434400345574364118401096939032773490711842098604872699985960479050445804308942686220020905800695295542148888683428069627296687343219334860424029392440451043169267586182995108557559782290784642343733554053492126532628784322807217739657009797326137395048551824974542343581716878657244399077554525544521331198758577292276535055011747510668139827200345999921093309331968637621664957992604103931533723760252796833108929934985145655569057013668887636322967459977631968469495671991320168099856685332758155090803959671274602463170974295015388367757924744466393622051113368436427297769970944089155796010035102065507499037909584822324925845011357885228126942383105442885501704267626647969775239048030238246703468041420399695463799920166770934599888548376846659742742336543123582046332491776012420389020184030860866986714862894701154455153373960167353731806546447918095910850254724404740611597711258029166544202738334708800566987331953464460873701421785142742650226969831701961678623997046787557417330568388019301428926784582349092075427499401197721096347015149517898268984955303609537524264744898145162217292083735531109156422736386937065970100186138492168156124058158611978805679192587145302562290692792402747163324918430627291347951626976601880936871248873323223992571256390369448956448611718254163719317123904365126309013958766217967987855196474866284219131570686714221443927068995707549086622802218926958328342356606102818287501635798989401455982740634755627982349076367084747035697488057221962747589545826033537201529265632350367696855499475435830269007094566467299549595762660520403258045139402001474862203409789274341206808314777075992502043959508094446174761783818008979746088061709766217456028193601323488218942318780756904199682736125744915926762129273316066169978875403195971882801257297221197418753795743706716581561177950347616199663610880409240603973959645152419468427836915454415302774055203796498766768970925296929141094982717423504278917904076435860429887095669542465624590770990251706640362772081675303691367346356826497817370985374385968166200484654845367658714528196403149984449384064518559273706777572261773479119400748525915241198492483852196477527240701661929674013474677857624231499986469850236078389927519470063378675390270077949540036855572787508936977647251295553036386178081181735809098749940640250867710030038453778659287152832812395428827925298984077944711209180939346313017651901773868337265375849525799076776577140487884046641490899583030447532277982415168515414592402393387681341495732294522875992660385123246558622701060940168344384842862726366142386792388268284625857639475091853336127565721471968713227344671339660254139541690809663868524960660567301328803135111419944240990102512979037050166536369459887742890738065541579459695351299013682730868635347722746731623350629828874169937182362101188340702352665225906204507182020100581565351128636808443467521356602190041863745909366161035182659293708753710180133314907594676295831488671267019995880154335203231363388646823250323153943544692452033982520418843326474645085995044581146850860554396153058330206836851107203017324764197694772391203664589972463196476137001133852215964892863628937269080424429274017830846656851239619064837921359717437571927180564568666386033936236050234698468921863094354966961904451370360642431969357362695198505530571659400840885153013060795144695614770262139461426057725513830057644273083758877966074422489610187154882958131818214013342905098747987589936496937690617770397642187025513981518645982647282095686740607309505288399925560982348101812769152592247051439276960755164850971379810419054891684289041561289722268722403366277902240528048293322014135078396937279172194356838721384037840166239844622994633984511678416229489661937805145300748697612475351417649067315466341110953415829496407688230613458934772964826334181998517055642498992396593862606492268310035627634387572294012925713167477220170384987734318382935343257647318978596739553269059125407601943267529164604714502692335902467664983055149795448302215255975189051532254461177240810972714569678723131746808552877035200446126162577656702684415987124697562899152808309704007290600668517799148344101419526419897039619922940893522398167166647648711310429694257755677625456311666627838502033820776996855109384020406802643957493867917631617563108467668283022767858476705891067367080343087186713000195737111806168477595219184577454599343224765179220560199884594535275967764204273760896491700997630954550187402829023032010447503784960931426369324532758137650277021936292882234919160987116551743374924557040710638955538732523638936084431357513486700772042578467258731390798466146249587218167309828303004336298918285548956134135440346838149782898440788484396527862951284409024178115487529807715235689684247805025726164748857157932485513303640825109578746492208226584706956782340776630299874915831269531939495736835210596503648270548389245582328257082509100915590610978995779181734965714895322052057308250278158227918606720623298943771036821278907869753923945173614935632186456317553801937603686639654671136108065972108153446647262372910666375425463349650892304049405262751118318305603858342769096005573718450139381262402839160290371096013305793280646822342797566263865952035257741716956844556715508817033454929079349152889905193975871016573521846761813591322879825028656177025556354438471656993243232757425337572086226914132058538234240717282512075094560858269398918138895472752712993123227495172193456973068297265143733226683078977069079542076490877964388124170994589779099741098615031422126943722123083132353570469244097907418854349431338686539853324019128007812132609148382949293558841647285346107743996061991299380117407545601599342220722358578962972470939702891679602024779620638045705467729522317779476722018345964385093894048836535427033681644891822352173102534618915048994973122076231785510211064801273647202175523425529101151365967470890225671214628785302102656962677458818414067460803751082207188170354863104099861150865708419832941954246651774710495254949279249629593141262100613135015251320630304041665287344447538903563504830777799283522252234713855050025028986682406742454810821379141255234142448201451791992584138328786894444636025942075263329548987567492960239801843894564214709552615381521485674967628016944407002214537077820996591329154524184763990433461465647952814402881610098450992452638757253128217649184013731185867641532811780520561373782627625998447896228954949403194809443848681066983870946967864383020349946774110993196138055070890697757610283779066508183074285733784856294053941913457826578200330357190522540064163605279440862900662199909129891006447425651269117833532382366522997626690162865868292278521761690561020078088916131428102410248340764415274682169337331841037062655499109339802900262608597644599168592195188422502870892805862271935618993925780709421692416504503921654790719668164155400763372774483041234461772997584493505471724512010029167284537097682903428694454210500717007847169133491145558892266930514400314967423852906406519963329952687235932696833251358733012067387315907153668361247729703209861583408257336721171078799765253890467907461230388808344827610486142504474103934849146668034856156525152926205711285748567300804691573051731273104234372193558526460421768855411596926908349995588500324369373952326053590606112723504736734960565502015942007695492719081934157982122010686569498293892429408579007533569342922912176730586559951665203636314425018183767594217087149224264845409948996075599814558518978562017356399521790458684689911484586521683832644111839800359417394372795353460206099664186298620256536187160972680977773977419608673228332329330134900779602962216543660103353109949915201434334001836091355058069970640516839578975882222661212088414209222584285132586444052159111113252124269605301319253494121011077389344540280073203051759638209216645158534299590494515725213673047031421732622945986242714984604245497347077619217142228275742667065145460687632136648930573587813869435085265216294007429397272692823987133351068375509236092297530271797509901326686321935741098161829398778587926709165343066560303899146071924807082647102901443182916987909940058890648915943292585045951118891529709924807854684866504997835744420287821738150223482874301569074026976725410514885111733481807129518777189834101216669112288264105712887690527111244962517861050774275583174746110919809572325865021967661592316785442376216858997332022556492069656464873771419927841713597038348524566538094540404414330534274206853532030413662476632093871545889886168819819903648197827937494345786809967243232830660034399381498245319048549042953821642984509078764600216672261369230999680973114147997703354984628329392281132191236149706268795545535717887020982488628449409709988062356169477252940392118235636258893300520038672163647613992284016778378965550966361893959331250694426576166852386422215261689020616058870400755097074615529160195098976108775144046111216513307532350919741670844570911457995015271665459631254751139774438171493665005897214362948801217478750314646340419892684513161632118270302678310325963873026950485146723241159327693188432879356274007636131476991257458177075538594523866781324594576923793099420852993620350597791176719040624554808156854751971300309629031525410562428646453943643810892313092285572052464926416552810650952161857872773601758880890646446890028085182218273726397545828150281316088998935770558956976799445502086557621368322447295963445671282416996502385400742762632940418559098127404977100863469956981934534720567875125568003963832079468351793218436921126654851442086233252271732376240396660613010034777775741173049630659194576108915763881954201062093054723953504672768002579947821875945141484557699025331409826817553713662323998783336133325585286575184296217280682772226202125884680088425874002434043225139276185558146874295433053268751826225119466982603214941211328206619287221066177333044194894825596579400251779513712547534776703528567007291697533840486890353207926871092205261342470024298147025270304655001726072199408839951378257611828185368886997430116470723347503543617528265623871670986553135248170537265415052381264082468686079882807332157222894716598940440761559265080252818528860597670095262376780825598161893634268423109007569908169013854243212940242444763530465989416887851757488982325530552342200250775200710774853862502114758788899787348468876786853757931993089595282043845042089859098306086043849496176976510269279203114005817602938728380321839130732488918752840060094761555216677529219852760057897681064111532995861251588434190845099377803344572736532024235157458282662170156193880044083391679564261015786075656206082748584518756368611377079615152430348868735878841895891884892141364968789747330565160947850007852546332693335288769086927566812866230585020062650093507049709111072199622484785333262120598202888707403383150524915698886046055926954850973477128502175157232278818476074015802265775091875956701016617462314795426238310833901651792956893269344845455378213400623629821223019613878445159373352753999229327711196362695812237591544879333698167785037876760788772096889904647941979108929129436927735189186443330040816084890538280332446276515828631840193638223144559077005226249056951872590575700812027835007077093240106706087022115594051860487862553471870974200624507234020035744728352005127850077585456182316551487424759750333559740150281705676744767453261565361856639913750589521127145410071785319640717581718282647344760476600494266947078978712573477754343205729747067077698784272773526837755799728982648725207448955525539587590684201527395938763043397271634619455138920667470735775229527395204061148992019202783987194389024850943040350701681618176516610619571855179932122976092742864141118640032441829882554881879125193461338299757985770963429966480570828200216173321046738416891224172107704158519559942226814002543698030308806177999871689554271783834302437671348089658748182949734966003507087165323371681069249956774690352693087012093315572265336332575013839138353745564900127259784948049197492879167970294627594698933664968200560137772345729715941050859606105494475928168681142568692071671933912995423500183165141098892279735200716884018795440527373501609830322705051683540628284519945632459055385245091011478645406010045189877959562419377476263689118943427013576584991524424875206351149340338473542205505040745781565431573340766679318251432044418541663772644250559871555241938864501926284449202605939085767841565022828320525921325227014116701766730447555053550573888935501182481327274789569405640403426034833391327975894415040944785899276631457782429259143324135053080923838666028230039774581566527148021045950205409069021932964929486256978193667773013173208457710690759944861140521856756081755403672909209311057392531133333629210111568856691666594723770940399713725103488412236462750233940303201821325897773105512249524731744201662595005822212137996798723587838901361967589163150327503346194512591158297025067382808424373837224746673694676894670388847164857555225613817901670541653123710172971631736088921827353361968382714371903925515692943311331588005805049293923126941943894791546305902794211569814367701074637948616641129816793384114970823269220902698250560750521117531054305701890512614350454472127903631308568913410678897178678185787652884224467115600978721762778020748647161302217240224476158468259464009727876545749166895290519966627599588807968704257721760731525929645721671504488025637497409297351327879586926283704079063578579663876105653267542369092491218871625008414778400443732387993152835388094916610564897322179891230750471116158252808985856328395479345270920183662893227616086458416701171813058266290590240922164409292413873975363407814751094727394599375171696513393477082483225598428498740200808278371068091130038998096706981607946691446581235540437076630970723930223714693466537955470951884201365605157195178586040143783740953586546052795280562467786723663432671423437621019571487672440587925272992938356773490936292201391355568930874183138903770281550862187509550170749841257631257968569971433345279189815900226326946338348007658663323961196808202996753720255807099661029383888235382617280820051516570427599170977398605578801843728524775431930602512669516489847779703755264352884157822132783164268116728439964994454476342753027370685991059131216590189752238881953611442565439969857646940957250713164284656476757537633262167526967304142236630401367210412515230304157391395027892342051191057129486250140599337162647870610375246946705662206125472046313318389570786099306332931893416209744256240486137293407964895966310932594174950806797990217963816214574960833446661566092321082962027883056056893387308981450823921321624030395085453991513305737244842668037895029905520445386071548301325251075201795204765902603108078373418249031831582675839311827893960869582478242037827730396057790177314128064689077671532018221969336934356321428609956566163520645764780872855196250670665278027673737385703515410183377216162878550085774286103213428691111074386135647776462813875097959857779157125153099676774126350902598085100739676822611257801590457586362670278293758018839363085171942064344614586559005768617870818335305514367309636455692759853467563855778765264153868873703522416371471782080321408179990018396681346241548164275330520592887655402956023606233944239599780508050771097591499588002886956153114053527854827275467583933394920995257832462508530203923012585970486352060706739343984805669166559710151569333638266447715972218177851563022928011258956813365343622622979277435506618321822112625153471192159153825527966541499951011363453677294355421652206336332031559143902865358136496132333385112614897461352128779685140834804088290518028456779367155706013404549462241775734377586045130235903208837523782790187190574396355736085644180062126745319093331385426335630171488854988927575033238920356790206986476956861149443892163926811213370170655341334717497152910192184031788620385077177757531108207858861921217693420943095330637598724679070966987900353789503964858383951681697710943454996016365601751992401604642049767908934923988541811948616879776849040600165625156055596822352003388438085733371107874458639491330971949738705824481922249854427422226282220649558172558115492627027475440540700749287705367201356282767174599386188640462732601935900959098198629892868116194126099846103995792799616708970473109417230496492392672890953350090252776221998258486281935783342805600241635317727851984981039183743659595278126526594503786896841643576573799998978225499267414410462239423215232293599418390162483764643365573973772474171666196470924645491219400605410970306111737515598948530816021380012440332479008840760563377191320346543126591427855722292680957367728480978581182805509785541020304219771852753696583089325618081725756439312443326667433714978020601143312807345208561819516596085368081876695293792367155571051534816943512270937066835550821855311559900885815846235380377050027134486035545164567603876369020619615120781235827790055393598409774157170784927637895655217877327508631107902108903914316179261774951030592387420068070667999647575614810531164733469254124368404779692311781125480342528335564294741302978056844771187431470500767432545708435152647544574213854727996319409776652856932961166236732995344926522373223615257582191030296385909289792156604894616593166768729597149221316540893944494126330096654673274819407669352080584880291644856566892947479322504884668457355182845990629316483698516749762415064377437770747882765917261069198845461477510711110499752570452747177507560714894163555223217916623714714381195522537092387747119250354559948915894048160746368287131725630986847360880777548655637845328573895667401453253641539462219469612007331462015606704821090657563202155979901950441866764004802756195276678517806511422974648450674000544323610819141330874598123230208449740040359926863533470727940118793378617453407635130500779453611561297139497050699443055228293845387154916915230580834760110665537497297615579418630418170606859628174591525828848542134586974612161939514726610461486713975009425664143007227117065473090489945310471020555636697077470024201297180627707634616371044654301827067311712674274562103013114064080772017840402374700175786227599244919954634802461565578891524483031375780353169451494085601547367349349523889186849384817856289250074666080823299141001370705204545559168805195520665447450123501571550201964647917837771274517668810469827166860626710389847792625334315793246490958219057867886425531693896127066392381276244740917170723143320062516084734348037839328271178862536406589268719864268530382678761755051241900829093969981665951157299626721995906527075669909692832536680950937020141967421706827966384369870067011829349185247417680940804955734226226883936236369741249119822856653010546828984789515074917136454585925096019727692978834904407874781207874374251472281483169989454662351261032854954403566792817529876647356848357708239942646369114133104316651468795675036978654482701655441638510755452531649283240273857685565275217822411161659557432120098495584611258122219915520664071576815284601715356074895555100099051219624726772221975108519398212742791896821378534071609513338978282490778178517710081517461452498031039856600869875954894298734256900892027841575638744682842877017329479856764741947490055052200200232982722318730302823863676019583756554013589265027223472382004240004437398243792082442479013469805860305845762088759618211581115685897801034050291594740061956817770134263888821640901237955075406217875390243092861992652807112027325636897995475954522538548314430329559958763727804207634266130014616529963701916520458385750343580287656457812382677199947645270878871405052522791061046282255368632463141412226093056019382183210311274693060185364690614761580458290465728413776964511064029070321755335113279487479075270039321764704842707569404773454435166070978184763568749377013461742756159277983651127048314326612428852950490329448064613918728639135874138890551861759096969725870117313196492985447803038082823108438839734864334897109893498417967492307008638664731211218770170975639567960488300489701057019937512808217406104550919240866300106455847802096899828571187345807238011616533010598478951146350726605363444122653270192308864202288151954653709489750290617995121769713128185043999123672051800133482140886654222858057925031593662168271669529073692843550097326977330732549585748469462195896408113711371169052880181589840888981880032539518491394875349821536890143492315265359633904540562964986469274626949222323341042517270992514500836115769953097085722382182926534436567452027765615222813714582566871680029023295933031726848102306535766395450375860733977496231723181247753236354513797467080944598300976774297368346760565809624799347331714504334185787326010247813601359883456401757081421844670228276228620141211113642686477137201029972719561666716644973366986706711654247689215644981416832460915930625122923785056457971714291923344432204390365240190773686129814809610342125287172456555779250485407588048577791012564715796376838976906011736152562381622003508897708610783102071553403248269059332895083880749344299748913208160099937672740591662288576055719676014169289612782314727341878108810156504574353883403287110697362680115751819519122239286306629293270812491507388960140575715309687966701917939254469034077623055166178366145010427513878225806173007417061875481585266146794616902731553145787159012864123043326710031397287921952877225928597423831746703762323636142347264387190175784158896247961229279980206832595092070298515742578307410922105719259279301192358473280538737398175631967053966714741148196517255322762963917719860909967396241985618198008455414793456731652080394572280919067651757755654189893875558661177088279389533416149132087785729754565110605281189407022334871152469117817305215517607717139947165742010555469899708561015331687214763205186734281450819084367810730283949709696703739477513205147189049382118267008392976326769673267576028032210399876022334706333995894407776193385857191776488381022934150619195586957191477210830785531506968475434869103337018194828050014320413399630922716735246557666926225938036820578426813506898003561014378310793080340822064194279747183310666568793264453557200407299107103220268044464583710399386463420865308172233816218819863776312500764776528797475522875981579089140844793627987852665599563221018726603344412465039787340022924454338622371978138017274303639736398700509548480042573602045492752584059150165304077614016823791448601087497592381562358562575328183839231243703620078509275217002231378271920097708399716469711902722699891160583643198777369950432261833027944422641710533428596328439078859787745943473011984445405306440612009954313653797448937125661666216572897492909219379279344854076434807380450053745291303703009435566929764872772881137956636380417817292286321781670535967794907070064591448881491811081882585045145041453288140822733336441408659034657898769751906744694216685622722012429699774736044585509706094793915974652979434223164603190722697029927267803201131181425290992718831321268117429002872072447707789266930505808842315002447914002922073010012800487641428018762739648512620419055143520344831199591450805688039932622228192937380947359916379780067351690499790877541503505286556420735418812226895871277347539237347096976570743458801317637763713375958411512237717767147141991887573376675025074686794167031564682087293522832270057432787141400067244157734884015564948836030979749995632605440274738892110166434273010753888681843918784325267382548871661021368890249261362664200777002450797358154856582849245926196830955292779197193923541623300523773083173846023471977613404500800610985668490619508271101434634334317948332830205099064430497381062950937890577844572077178682316110509830832293157836501835423676134001259108079223933504280314986562587494252491239207884542902950401760666295878323523498516666921476078712884342702935306566642624457981540237263339902171307233215887834646200045656944161475619303980868792700764900866757813429621809533576094338632661511693756352740881246058527165560179206018522513506079090354423254267771044620997703524305699069293438599193724401344561419018973034015076845730523913118197450372536170838238714776554588694388901244935565335421141736393285776018900597891300311981845670641720266718244844846464389510130033450184685467993241445955936442013451934131741914294415847942587767561367292560730387845139427887065037275270828347020092559071657125166338103772986821436892968100925358241702786567112846270451770890663167681127600276181189430863656191191245050398140507481155187902937150559072044767306886976899440200347000971823769291894909428343771039458183055017995813962826839177478540131272193188062344108802179815642097984307211973274446012747040980333062878817470794604668601542635769202506622549888282953295432002729479469912655731936875831240564196528886461369185135766449032333736336716221991925965420358470102529265942677734841370630757465349393022382150457653418532671651976305244013616123051498202492763014815497789037318153481062007349581763276736807471856954142613703978892452926380668166667431196349398703001095195433658588961428779748880177391920834933715760115070565445066589450679925009319897588725548459753489128550722630514154016536384229252954423733293859884111456936100488068120048571188612234278677617713384819395555937638722748708088525294405465590799504291380897257006759692037088592641115947920749992990668504823990349960447093272759100878827226156356790140786836637209039152557611327397500593303939459642026367411684318489470934962962948717059347348131394891471725695794660528175814096129092051550465692650361958216135236308063132265675987349297446854209038930227712470003223317517731447073516154579259175200625897016680424375312002284757609588050110617361086961660759039497170937752083226312424310805331063015379553848494816246637672151718734078487495394757777550291091991410632524440740319304830854053949064706371988443504582043894629877015152831627574059579876601023971819355213419277856936671999695971887465687057221379020463774295741765418295641658294092087018264518924169306292971018082347332258561234172466552888065579829996209170487027732596909074676174471652771522951289331901101866864663110467461683653430128578272131281408655659913406409937781904855377730150513030120862751376149031837153071076045383196232858052728104922975282897564137681658810431271866984121370670010811221527657863248660288002843616439427363405890618328010232928196260556695941833865579109311723366226714823358989594286739110692714347372569284729006170550556299628881468005474551538249769599283777247888389147492175758343075881471661086263411416574946919449870863408890950626420837386619990627361279258291169607896203791974537580371763905644302266759138011424811187226863747040418359701685089565018010871938452522535003629577428472951559876947104906687334692410869907294579879949837458816291436207708084990555575550705823194566017485973260798825119508478514197305296502322447978305812850778571582555546850661518818393067407278540177163598277038194481747740287146357344378354116980319459045367679627248178121541591043249184605257677836662872632312411584478647478503857954931560030915395827331019887806990170558848280933320832134653462716420793661223916717855402867851133064433485685614025209672498968385498720073553486566600225348533544689137590684381708635649403020357325873161074261832038960490141251067308606291629433605033993118593505611165746873828442607132175958735758418155646411196374649725266456999498195229216872938763277138749133383083769053064692670149803605472903063710527683594182216826080215759053247225349342290054918505662719006841910682278964449894390444667661278625002370473180135927382660874927495796789542297232985874010364813981751256056294898963260655008372800184511301154293921819470186225732042083577188222842011760882899050556908385325304901027658502695388810841904605704254663729273002762880484408284966627175038944348494577405406119721097375878814497261418114662063165776331358327841744795062996603333984058902842757176196466759482650446593481654401276467077847151320547942625219362425372033252162212017949429644281233331742066610133006762692473937621241574906560671050209139621441991362302662718446201763007150570944694156885001859652740917425329398618904132844452449968756307448408268382257668264177955677842645491691834452960066573718114413190170255310274734353707689170591416529263589714057310728625315954439214162046080222938685897627319563303445381806074067712116243973195368066275179631931223494007114046111321374090547432664618560411353546309516579013670777504018433102496505739402939673706039859851950891426106128820116135431620974518442912717793156233295790253369980898252678987144769720451578474789342787369422407214980166667561754347783913268215877331531985070125162903363831267049121745686987413298444781535457266958140277860004836229242819627280406826370404555478937948366557735164413690883240716500454328043342474293048345701361884165633737480496379796972035779019753829039663418655748621414758485340441063380169430912715424996720750419149059495938553521092436639180726735794273586398234234343034513792349302200822426255925771123598196600748846602287501280367596758803226570969502929038505028838373288231751475982020626361941585210312062480193614302867313570866172610723630554654136535406347606708870323338651035182941461004933302927697860246998204679924864882975931154241286391259003619210773775574587484278000664041539393360266612143955182296561414054122564036955888141597134622963708322429879334284067854226809770711009705868178875810246354543209151015804333909379358482146752702807023704855303949618008485697055141631129914804234466699800506119921284224013333701463332874211311935062205775595417412492343996891786199806754497505501221108674133002781178017343497840928224545522542362384781724876935146321425870810906688097848152949251230954316260297269244299134404558661973856355478677305499891115947257185344938114149540056666391935325842076084015310757411590240313316726826453676375513420495323672136910718516083799508335380310715391629095898205896053755226131875007052432815950898136098960178118654304539048414345700039458234684928162875299737654789008882582299077045382659895039486980578722902924898925025586606924189214502855108631173541949969054235342992363459927776305423421446601682839873303325617086418370498820573852974139914573734949282580174855414896399950633905708422300505839513978966075922638249920532876779991885361252841410175125871816427543617880083946600619532151247969832010681056862742598539763713279853950328381941278209426848619454712065243531368309696733515970894360174089326837844168225865902648648825139540984253581306671396425544252926900880906480049607202558265551766590082070537906501211941001037929104207046728761171322228293360615812549129158085019906395053784912425538958934582845727267998828700980729035210907860020711757099459833836651005265324427952212168207480781829366670787763933633312650287977751661789823161888609448605487967204013550311675916749791987272834219381681669828965593250153037370096009368951826025936946838985027510498434751146822878112609080736696600963979053064251924019218989805711307200765987962953272705173724924968657835056339433696860064016629902924887628941766724933359398193892898427100213121738967675776072582987121643703426424092074281010687410873444608577103422068403288346843768361136637827976888611624012913944399979860997888552789329107504348827083021420205392334424586989528352409145521585155398044581026447367594486974400352069596399219675092838567030094326878005430116406318329695511872065208432464611033911726886044559258449097261641375392823829475071081308652480977816707008082541924461950588790234247095681811214666099354858275659032220184418272345931566642429194647919550982733449150039175192408769739680302984579631414620148293694959925701889208286918673251341132987051109001905164941518141006162481129735454325473078452945844479120637364229554260731255807093539518122035109484393049416991252351076251842818270891295699129001698410904927146249088254027017788427227864446981962003244687955557847618707285169685560113623514285283277090069698647391024714805915961878665987646011013554070695581208478911192126204624128354972026766354160556027542909026637938984722017237220941204163215605034171363419906907446999534050576327068642916200210383249151683451409301461152082102890175760782267949812950460271085407698067288666095827035420547475601699959475221989440849691297892394530966690193500391173189837361458186294840560018539676958128739249346280518469993617053889699118057828827628863109729389148984988456156245699771485930100298329005159045795333425434993578500727457207552055476885487846594884042409225380035821187602984768684280868033648030106131106507507785325931363545144946706378455242163947968380256573840718523974332718254602111754821382684685158786808276371260509319793950471079382375636903494817945285602134298650279396549968720763531336996101179605965807569735968927316501161594931893372827403635235040387173071771963318871645257567835828235440562413613920302319283691376992538555846616743568312746198171955826548058731761803942309065233510023831440311803411914480907156337311883846366081619115429927962335261584557633289380289800494261827403822462738099457537527411586793955507286215651175677408028946110809139376720105239034814552909890816470342657787334922996791081336165774563870051693114635268300748811958113684526049256612529470533817068052450312193728379214320643136772214371722351962626193080233947088268906391228999460381236301201912342972922017220376806714492057862968791096341180204412125807299616903808943504050749116215007661507331015328811779853444279854076919914155053694908267536995174748826374521390204461550692280802542509689275951378565400458744585636384627117077406989950031007034980139533914570768920660400597998137721971135149024048129459551403828083789245008693560511579924714883559685668511798245461509344717599322055657157861639469965008766411135455242983620712266916776280229113573571530713186563078824567038759977746175062925417513939178783508313685002144244323661923452192562222952756415332702325295957104308441031495088381204139117587319721020349452807134012946787289755294411667452651348637440745572193025216155402877775875677443040345249256882527852417264026210356348930850262700977986891948759381131191397646407169382520283996988199177783970510986441582918884113574966334455981407023012441752775473656555525479208165084591302505472457241236768787807146917943540218001751663964074211824383369729484888071122353396339981134848299319199816094627047975846245595497972970903788029792861185524682956199429931875142025084405996637897853941028469282382702445223310767205876263476370114185390739616689460809408142637135946776371947739084777675880764479243204489395752278950933609838939768187371573191037822200590171786941875121770278032751755684724081618961866256105223331530188393431066902779678306438206798994326568509974629494398502566690084479136156805267904301111085191764216971657923703364238669073812222935667186483693355763325789878106116205896515579192498915376220064747880889328856359177343907477584695698503528534298765891222158099179379058445384831310707748282074042226415457331836205167650983954802591529964011469337331397673752315847762201772605642310876760603870485828435245133946394547558969606958218840145748524764026302631413987919545434770118431515690299759302853709040202265021726018770650649081525167474989822028951102469931089219752271507872301474268510288388964254144669023508092899920320406987258984340963717672759574037131286853453169896908405985533605352166703955337032572193464784734945610365319123722363747035754570877099590953068337897983700366087034482130005513262199920520235226382408369896850891447035284198031443309188095174384471912708781864059873224375786102025010326620232525744697038794014450130017163242938413412582361979997404319556128287559471200688180822383808869468700143697372961073576910504945062656480801901571525852875688012552831231508980718501441782352729996849419855741068456957164616246149791792583674526630190319744631510984545228263176426180778132962644513741998691287065128885313027197740580745997113701255301395932477899360565766010209036854934810071438334405209793138319547052814728892417720830421895406152208595216780541164755590922737385131105367529808515274684637958196921385065129914911001242934451568643494410507078390553375909308171443321899376623541535095828190441116775934578498337712706447656934297467281690919984709204289726602709286378084079598951833435510230235817014712736249257712032856557140591790698976985322692501488343656269552896751924747903762577078451794980739330175983783858696232029581685643521590542239114921609210960705409963823568598640792116392056002300301565760584573929031630213845621128817312902101890184815607604852228575102385132547881432703364728314417023141689125683019452044797822415084388524435566654237547374452746621820032661469421734682130008826901133596833657643655656433113569424201613752093758214281204448039182698574728380380934157585778982400683487872906155820653348730804364183662256796657861322041928981918500779077114343578004003515633448504646019064986821309004508767946932183998718956276289247230195201170951704339245922530630879528065746703900643285500964563727252875977856897569753810004641835528271206738782282329360177043641099639625136641081650860528903707285208132281894030087212216012902250110797486296269620672696825446159716877081848451657329326047472286703606598391890134357995475635875941563208782616451044152597985787377010934862431144836511000550543975731826057346297509045272305405079139093870912672843014257392524379808124861917990978883696512841479256947508078235107000059051235439268098958455106014392382580921010774194264067460894724510090347710822600457331157346806090473611543620253976586649076545734842592103889660747467043401974168724326565645286044095826240674660254684451835007288029780218495910849880718704346423676210305161987332208280209244204630467396947740731203786463367252361719047628229294439885928210927411091422344272894536459435997854088155389319946359862861299984385152822241418171600522181940265388704758503567568528387803299574341148414303332807648495038415301613264181449522016682911761672060756760612797069933423240792247807330945306660758587841708233816363628930110492624726319200995623731157498074084211563504539882872069587830431411396448349157794329177153060923305687094884706266303196009557573179244446788364675569181099548111651313571771833237139183326697456132659605869596039132942893754741367734633763822787645547293219367110320739531365523475294713715783060274155150328829043230503042287242063542694153701494980264329037758647515011625880171947412060093009717552415795349908175202270551482777436420974721342524748341460053850012942028821078467694724443904984758783624174473192621528305130588220005994657244743141581536568815325281469027217822095217476883873803503986093945719775023591266417015883752363149302512390068541295391876344396962217395656819812700669166462772601916194034660741028702874946680035147342649985373535042604904972434759059877561542233196810549547042606113205299142619570878496742451857568967360893752928563065245049214977985890149813375890167446415517562965422416969255657960762005704580816885274046369474742015961648025436572331679568674866339363181775470687443490648298093272312544157947865944661082810122201716090030777743978762308904725343656870845512942727377913149530075260818021073493881430003008992850019928114776552188447826188133141698726268764851868049125643824109568253409915382886861608203346731982968900983950802748330200029492276419887213928216238991262057507559417727311548025736557641508814425679365151740123796189590022567498770156363346407174751625216160243229933711742762124936432506739184814953207610389635906211920598306502214752754237203670279495828341639101895838731756059876281838184461393130633668867543188456365150213760582026561392408580896507729604452307527801830038938723057614710186422513302932015750378197177334330046729290073000310693783407048659447184067935882507643537728875639091401027629968545286360124251356950697373915861956400472344280665738798339292001596827185071179546347313191155078657646587251201638463624753060079680655672446893710984859258216807725939002391260422660799016607544279632937908747741601931841749429077858266617963190594839397003490728780066429764383845708480723743382304002584370334867598885284336323493659381667818063289193409527867294953863539890921551337570862770241551634412321870753738481196135823868205509052557771086898949762683977181129679230869511810326505041281277836975158462547947434593885766468498347246170665437789024183139039123448206667666277351695788428802763556199771929021171241648009324146789060734843851772831709532891920444451937962331116217574925032914494995963226867809213652532878658112385179019690922408083792183884865357512227838623161251220438546755282511613867782364218316310987305621271456996393193041377654269646335744893514812362335695378867696103756837495662797745436661836303017230874151718596682447377495907561188332678574187685385085573094555750996779493718781221714004981094967233294572682807067341576629627202652179460483751897620396046444743610763967370446099398630566255048489828896183635040259775502446452592882819121733723486318797607884065112677363888429887785597791517817036237171793241138653509221833466395974591231044820159154585016587327737754905466862221881711575145837874531703555953803637021666547908710289042953934790989334108660437937473630137214273374403563334985875845591963216495910833062067138570453944235237439204470031521223158424552405783261479308725606843467513110983999712510371769598802678617645408723138379976097839483229065542676728414324069963589933012010238264081732719248649388984114858470988016583257580110938877618291041711558881997226133838139181751443112225541127181717442584658078617916800590713484901063536264299381505037005925514467209571986924010118579183385912167706198152578335760075110351100866892645539941342532615356416189831363568272727348199861054946037461766316928077486248045316104249905071243123519025765714072725953973245500332808348377064503122095659874816714551949278505956972150702447704682191202204326302677209137360719228161899037621884094473277264384417673185690700717453002677077961272558011640127447286278157209795060674007885342671656888498772215854976706382854977597380494086344026454921800416303343773651713579207957653409465080080981410647988672856434133741456585792145314816809765658641991107848072869770624407291675937338097437252970475894410930884133035314294909462758400348693174638674362647810800173213495552646173387902424441844565337366827061504890706502937950562834111254863755555548169926377758236101643204552704532355247958160718100152885886115576939506179022817843067382966915648569583841550489468915208764247264331093298114205831083604282589287954564743724380850850640383660148040835226843603228348561449552587387950925955501069032447926062495729600196299687057174457313249120192502627873875212950863987107019823393176348492247753129063833318433287458561300424206244910185343896265675729486894476713930482228436273756102970386888867678526489363640719883951940204150634203347865619799442201278600369931502497585343662608214248376598399656332111314755078770874140518688486957736288023779570251278296689566550167541225727634090448683211011264469437883292695524289144159833902204263550278093454931522681460457725507339299198586368880813126154214890861800346155921846421926160256209095595551379402456415159327258070062951048173461037918595561073352307238317282283182464266523351605725429769932650748416133011519279538278465734130322258484501650960290349431492069565441122255019927326694711310538001294335885532530368787948731109493251615439104898279267999267941223829522052524511748780754812251638292275585767250274457592643924742297685579801093702829869121598398024589691031858244668671631878749183046023406965280924487116391697602399916096008402198576147314096253510757848387782694790307976881563588457036859902708747517566435650188896448876450261473776006748059305907863561076491971904025153743370950878064744358695177973678059006942153581942666255383095319950166410329956934270431915573411269745336033241272701771478752286163584282592350038129786366719244183014981108733582704411723272282665194216227698246487003770596011213669518404921260008785750664029704805302602514064990904412460049415832957426082096528380723429124392436439466989304011110403497996097017095643692453920947258441833747477865433484385308056067859404008073234878678820922758087732985243898178090993738286003701953969203541937869273244048531318332049415739695958187966341271993774030606767680905173861159914937782604809806853947301295070710233721523985760437930458594375545720864523992495281730034282738315284919367757709667932030182990233343373158112831990942653969706430034736431344630026399994325690778955782604929618659040345293120210834691043732138419232617013322078058414685273270185863050432333536875129996932558600833676635916583941825300022415636138823519600709817633209321109002539339518426445396032360508422546656936861929873012079993616918793150828599669336060810468601984796854906192543819128132522945343721633762470685497548331309994547318029409315021540747589932211108701421946660640167466168277238568607394124779378626742908072104280966460799023368129782339731813211634712959201750964054828353604394582116303576187697872688537057889487712377577534579850029545841979228932802691690248173352725120359773348907244254451509528368254272174004668239994519968885493058459012266408110599571261541805576426257368206337165855392313752570809912802164195097766418729359035847274692724227194783945558930510739509694425872907252543319717778177298294180750701615738998498687390188202872892792600741917891672404612380322390610018899582844521486389945905795302708377277305676711519449573625718037512148785829125929757570244025132985174824269641484962155654064850636781577450949743968142846169742230023045481472942435573415054354578793202701817734908213074785464728433523042077909086986818888177398583908689581672842575283271166932219496486683279169590441336612257807746601334541441876790080338401209393594157602636788143897100422190313473811121362976081117988467459407083849313349656319412777395649756016822093803280451919047587432255300601264890510590339697147393776123998756247229542658311164065644453296829949246021889846759693059235196805595024573505373711361019250458167671649325756592495140427346203912539809723991511888731571596728488798070719756478870480686291007089579466009385643214228413983797302341693819017473185292941841188932116458979651756380166660930916471063648143920837649152130874355977098270244907868622834973807526884841592534000909504599837235730002715562244949883176461313196807257930008412474343390447631136344181412390388995912892117574594032580938404298625109428375811536157391732756935574639824598299119525991045684389983833914094232179675078071120131882496174005709137326811001226585431230054732660019942485073731682721455339833235415766990113554802419800944617673822627518597472220480853381360480873034621506063456348851180074114387897835135179393868416164957876660720049421674716232513427994655298857851933107343656716959725185727405705444902373580006329977436969749775473290350759675647113818928317549878525522693004998541066036019807758525826135687559395367985189446611650368562431593639104817528168108472421442585574094133382105634738161962164576987113817655038043828086945773793640528898664456196230631241026969515322751371946450708866533346626062878837295498138836786528857597018074223482604953475896496506512712297985883503728924953514177003581891934327882860833901270483973462586569710706852318516853206777749415382079232124341343805544455586281385409641850772045948118178232804065567259417353602230847641912545151759343804494208180233263823906661369261904518307352022281822584233966557944252045211021369081880816910394665188284144419007749042794907419720871135823966281152358152025601760284238117809917697101100219796248458523780025837332238608178275887437652076474801093980971940295899313386426857772572750960395718442983796102204254664639619431461016167208895937044011914453493875082389612308873307897811089692741737662247608579584856874094507671348916557241541182630368212258180634330992007051351524833368292561300918040509387204669592152313102386010043962826040054545143042146873242154912381580929281888879731580954706320050902611377744696843500971285800166138726609196084989122678111318502094120970376922965898669416869538796922114782274990362407594469270625512424390461832472869440449198639178630478962328149171082625967502493419215561075475735790655044396309810339465485719217498855104445491253029492964121714101265787789116545471641304801973241909122883896187227947217934309099945490167017219189459451462153571309599367873717853342276073051447472825971546305318631330393990341225759160072317492548048738190467046979517937564091333482010837441456336016640462126736106516593516165733355380820049251791072678396164903063546108863595292518348009128173175336588809597053478152309973612053765805816989836655152602669905938695938124079237478381291060855467712392630300270770788188426120170416953794614063615581177929562544021308558042834412476720786460410796159296904372507724134530456025340118106780906866518323926522153212148815023407972836129847251309236147461348299363083472223253652287104860727930644675412780141624902601503639765434698260801471732237329911466662742206554681732129209353745349199924509984459135415440164011898445274170161242419554835830458914678264778407979188277539491089969888969980263692309314982853849643657325480161536469773247621091098514469231646221298554545426728317908888693766749641544291027782649245980266029746339327756610381233437706504546393844941198200205066038301889349488817732408491709486244305158226443675185352839301597099451496245155962279392325343621287030496362785708729417266718800224949812026275695681420062638688101942233206609566687481144477455488115909984094892263300686348078153416834366383268954845836103400971619738060328706038068243442423207193118722151503965180772987975502831475891942789052227325517385077318273274562919786103774573073050842508751883618281048539301372638877154204306063173005938801611026009491535948713742612473117156449884592015002616401179359200298619072978286721138029948435212095851439057356952666799725649452227565307184161472519375885320298933970979114657603961639538187190028909244602419243139728352631274463436863634031752099635839143088021298364840698825280677153793020777858354854615275072735263410820217859021269757975087799228363401956309366879981011288939241618244335600959626076397516311830733733473336870897121462983503474436253534838370847311366795129123093651329086927727642354309145036579538042229904990207982852094804004322857556292944000829635855038717559878357152561226121833985420957267908560608066043160146041147564548387403299567643435879031066415866441534995791990208379663159135389617246268390953413333403382552943209133651342460195403180970860624289439966413957727998550602350165381723011127594642703274278726349741380272489105023753890358715603993965664232541194239872354124120348577114026120872126113513686457605939926614538408657263823784008738713573933606978040644226704294398949212437236749319036168248524309459988512392494434960908002610671225104005301623055561300008178921605825195017992185095604129559403861292189805102200327279483108345443401712238582351711987840744202883642249581906117234243695287432630505081483147524215403995935227357110679987001278790424212897428476773592849727141674813828669036618802963960052082065553101516285516339061776545432242600595320197504885461354893959483579086979792958891065135870064554283224723903960323328524480053195761944469910789592649607455679712611619677499472529781416726323095143703921128142631739441125981104796330316067116559161659135673657764538423746240218604387407941831148027236881863399821166137170924892733566507653393685009814331309138507772499523586433174262427559913507696272631459329620998308566079032914131636067755228832682715377085064988223860628197718369783011812481030112058535579456603418916955536601416639431260619886473662296506979473619906384617948353914850697601765793975118289768662938971893699600953045285183549319166723350685221898639784549013883808792856511526602175668673835760806709639384124171014198941849528815072272921793584912208252871708398825413393847448509776743633800692166172329571846380903965981230311827002463486961474936211683405315578347307929859479002696695473530464712312898451683363250615613594384921275398398175569431804739471814612089167242517047777553793550987458264015655817726991786422876216295768497692265564848274057110382171425800271307116361839391182374771020083336353542459599199120921528013497516992257297446594463660141716124558815896631081864747615381545930216284716587548750695594973833557500821008877008962148004870318587071307979163568064855453484728050793183458977080436380659709351887989674647742803454853653829824969198743239844459111329047371267638401908912517040596295603061380061203839460213028976621680145759526800689051002671448616034546917574011805447940615579010050841801756078186656300673271945345505177504793497902039192155483935309855534580851641223188809759732884606046892735725893645514841798690114495967608305019674417204492804564831120793517116555112521753621949208508850009086988144094983966416625221684312259505244244972187297908710928005351709263955079311642624249103889327305088663498587274714954422078786368350376197543684653918521682045088255275554084810401607695495185170847925758680737208273039743327001200863677480888693955389172697573758638681317941802420503880797939492593281284544039294622456854248210603607672596118791549664617349412267942258829452790611374815822194263345530955623112258416411021245533328763151326519973068279029152252132499521573157189753643994980939082311925394744166650156503123976896027313329318214741612984310587841202245617927157116990477745597251209981271608098646309277868782350819652646572366931164436162529059305426338866429894755026029743540738566864673688993127223600654136320454447906087091852312816615643860455790338995755013995125822688224369414716653657762062390536045730771604666057535391918141391619305758160202925158443156373227812861555942797817411638099109547001439341880558531348237305779479740418712602749130105550127514618737590693452774933166901004797720531767298967368541473761452863823892048940402213657571502943505795355637412493752689264188555773619175874670675847057073762205581079868561216120904400838134940545446054861515578765019171307533599594036054842017644436592887595274423060906720353452161232328275170106858667794260762894311356918670182632671793639699432599061614325542519147201992935711749634606973422473903447220548522213053509757956382685784392021282682955414912585427279880812308026871140309528015478474371879012579947778803675365337107649379176876973592637192797030315753442762774548338027685625167879018212774183490480842894943560374398332530896706439676239897501793984894833589366472176251723308921749448718703803541510269418406178177275129566620748149939643957236106843633775689326852563169343803554430291504198059981130169413516408037021398828786089675232089323959311061113517968148543349698866819283461351931004015089683706081066156811779063457656939328610480322079847206750869017108931505046157778032971816117925572748865796682318592062204260765568657282108093737549914491952443253672564520961653833217365389904431596581446793586729773273050808941123043265238900153681745415291421212742909689825108382652130700941496108207291144638276736938463702316166533625236564397505913803521921859475616350661759737086416917353794609682286619170646329655984438131843672728126770400091446125423068511612789230107331800000045456835585662526379915794445412260240800943932034621914001586727116280836147336771700390979856887342415643292026406804313190108888877000151552855381900542305469603957798943155308734349181245741095989187352551869010765856078366514950992849962095603249321399461280372770176563151172284403856333516555138039305085992062718866551380688809842249291750651893953191554810791206383394563816776969929859433636700678244388650682764864272887665852926050079304107320714897882517083081747502453855280174148716779052559056213994806480514968382652842680384705751281564339130523626221097239306129032218890886420702368726125983982261018855835185980881061223204165954129540743918411922670750286457958324189268893825978112289629795538565605148593847591473703914125643142146433875630177780049738911180716373578755958434671640862705673511241862256168232366792859434276866480296430655049116574886240600236079755745898690405324509693154782569031038854017594744086992995179763727544426056977222445207687462721986746581288831711416692439364129786640052007452963840018440641930561322867795905429801568117148939803060542560005177828963260063515723026328137965408457135519601235374393855052787061656162850598700327955061543237962052347592343327576619179609772355999638140315319272862064509058808953417564726819135634812896477099914461454978607589937268454982460707765543733254982746583794631114246010412377824713564864266205591360348442876943474143218213217392897746866128976659485599385821201801272743418343177203686873392431931366772718914010775847065976686168975202705141794707268149970643730461706712548009079072483007163422205356411270292561870373062817254121591862855165320948165970685170900221117106769414534057599808174197264224984005796809546752622449553331444526756438942174824220677631920409591286898549634167420742322756193468177209909816204160782396935266159845958979050085025317620915071592306617807474942537743688412962983584125792839238471546574178211398665092201993740098774089174300886233956639570447866222287336172723461782669518508303789329028089477303476115196312803002238693176008689512321660042798281660989920539459034706864268725576965353195587627021705799012888492056539154387198950919111829340975888758455134000469899216653502692666263448102931222930112050513076181506966183746115444617568781039837711934820091133425923154317544882047885510608450570490016172754601199725776618636850778588917808824360285367490702905846274701018188957994305967889602972980740042631973773375096329260694363486535578980332408597037937320267750146222172708979953861448895128798438802853402834136602700315705442086965925125096246495297627389960574519648745850376305404923565090335742041942648805334283617949779028917967105994754704967699432579249482656003904717895106603161694946135367544502466697960487069291476034954578251125216048745838124861973508181137316083922517328393992981319886173975783143336475984129768695722546798837818707258595261728768545827372234705749936927591779491648391529782795144384201671775253979312615064631380119113105502395768648298415282034396941665027467255265713824318390476799498527370265789538092164264067994101868267832757497714116794304330955947065044333405356777819979812436928658305563817784530156444725549894047180528677500146667899892863564378507445686876864072508228917091344506418077901170319660674578393136711799069028369086635382209967191454015972482833277108311996111941216790132384193027419286665438541506754807726915416998027972439976417718756324619744853613335997058055141620563835473640791710353768959873739074879757294523433437334288693722333908142121360376618898243339655787761549087193876025586934957582761636298906063459719167341018275970196631405548949201458177619876166875036234263676823947977870556925190146063489557155412274029069503294346447155952475541587612712699103227526569478175077852988178770309850280746129879457605374953534559282386734590838346745251931409041013442816464174953644110236977579748866809014689572884492387759321596455546291397199901340624908954908700913843674005109315085435660224815883114677208333828623466754146956148892787731385058190734815753572934912344162758154248089617457300213449325953598634432905530244903104327144130387330761984839872514303672758828000836006866532777945209101035089768970335060984722225945466411853056059052305210082179769482320972606159695026884438518627066097899134113980020064513419486160565475302464111189529306462353005301640973746357700754544763592568142278024106905534974605071568121621651953905375234409639730041056303165011747074793667668053952115831710694896173025570602297581481025703081470649733058707365354945135366918264343478303378823977058497225638214531677149032768267725072508412487979361403424748925832611556431596549717431468250544312328210982622151648936211245331447519461229867759569522896820921311694808708286851429257484380683554340758894632624969748474580853716800259155094671978710898892540056248009020390668380383380620411238334226471329836420314989162840225862532617030554810595938536786809944954745724093473044237392114434850657601119679970575813388345618683063314424999097736674204765274416102022075563508266679111599029197363078100511053168017302423095780668626837834460452552185033832857978683129630584337404786733883294189588059849164504814012642583358393818321210906172741710914166699923676235283072481928258656456922557230411701299342092910541938426649846498568339660546940903675696050178173724142571694906375433044910693415693901380432300160348030838196186038271568680821130365764925089811489693968051203405737630594214915379772796374129419936520649465910055071516206761958323443226669417260304794266293016465357356076303196470563006710840681084781415379689932269920783668410659522361432808714693237073699006382773310754754851472435205751050870196594936887665333918173219049609823324080914502904751535415366009120024825462411621066004645977403835197124941216115446721362848671248009639546588366035230261189558575781143231331046049699822584103349866125523760031837415427866752530050965847216856259046519916381350421288651717120275977051728126909014567391569010314485121556784978741970289976047572230310316572064405190645202844334225890457277810396609448852414234271186361973464319353448444307916666314603711073864238988906752851043458936173822367610215985461515536789419990368484086458885690992310021344599445301381814827651333493162447578182587516244934358697611015707255068754387496932173312463820403598090076073319493977505295053457141083869494551984717893980080517016176200613825940182484242986166959003445983590853262102653918320822841623274083552371902386676777932094752036248176596439433515751333080993876381183237263863014443860115856749603635274991828346943411437209910871845175620388400258996289005603792727287188167641045239805823728447498411308994989059335138619387394192167899876924064478481949687925098687748451709477667451370490347059896045065214199989416908075463810141935464575994311561826490748431740349340153108402274662892381958274020931242482038416523684539193196237455174128227057588644677346239156598499417703103383287851635768350691055395164055606732571155862650774697909391684729502500916902148862395891756527676901259491501458613803778332730762671351159529145165394103753145224275692773465142769038883961566166113272426384242543232070205317262840411196755174096225548629527345458344863126769346052644446140256635110244706053687429970893759543047732914832469470470867979544534932473182335367072972479748906517786781259157593297856697280639062358398203901558612518959611434732627096579160236250929495463632640912327041830859888094265380354380410439756265527839506242446976891364733930507740439644440236570100052622353772313425782291256641714432367071408238568126620625279038422424095866157218269179556855361903841777141972735867344414030215184130123175264328364745441516778942217380852708384485977080770456633512702623077468911248870720922877130183913072340093821122528148429397879071462085676367565191717639596595826009636073076567837565907367295769604406979141086437329772687478166241422853515648469586796530622467830427268175543727700442979010969985880714761106325028885552678985359086007706373014414495889603941377619738236087571892698016329231909557090119248669790984452582508847501175262948753945067594440615218039046637227151511938155005710327790073159900333280879137175100279573454415874668613531231570963691359564285148096299957789736679480495878333408975417388998045972762904448304428087474919459092087903691506553982450564843093398313367141070206873271902636694659914064968444883249357339434986352795866201792150911273253905216135690586066292225048495627937825925374015336190846654403660847370992262770789653391330726798954811271611973280049516445981871873545917008096440986573648008092157724825834291451064149788123513584328497338554651595188063387265039938779675225956942869619076482609869047040634712216585400879366187130885260916451626915545274366684949149742604772442409403083746674721673726624741532569842082264466625080499156578072173399728755442697842159282191952303607798995240301918360829744304100494813639778181205862747761889355468045739331805645936006542951552219566127497261741657675007825067954823815908455649381955562971517972614587650292713261227873287256408658332177867481454891779529100997918072259219118515758681399458672059615376752814812888830979639913599520034671632355434739035475103292150813170191655535889938919408808457006398301890364958732733203681187477798379873172716950124359507531703492867051348666974735222977081837664951384087631032451771636443270193200764202237448350550596718671536338900356900436069296744720007110522135328708182479776666121530803836051514793962876085529254757691587028707399019665631630822026230861781781506134805152474937962036160672677309811188509075062548649282536893816575806104614836906331053307754160201660676340940470195531277197015368002793260862908511014108784272641599330070606575153337594705945369216851009247434057639360326104250356679254124616997708687959944022484651239372569849776781468335156671624625762622657729536346370228669566401202143849639953863847197882304716359863966954105943550190210217112958998020263864985791147257775159012922241195274878996152092095379752787778815706452192154512359213916327674345429518416132633678754292912467979844560960047813658658727068889422228457538854729614974281855876958113586417184998039776337534391891596758858108677618232465145775615887647339447618195113164896065757969857084085465453352921245607978693330335694740051955046419381237950982654183139656940044844180938069615455875144692147781727964827093379727917109135815059483732807124052218402864679900231932166896573487852202560862894749133656764671386304499873205251455881385225009931481385044686499031893929338390739659918643420144056499422151164819773942654213785482901730091026107160315726830808601070743682045493251599629347244096527998243749216461626639699885386803969583543199261356607454431319739157528318734595584968123623595304390901360909466527768407168551490248036425590203578701182922912936234536651044432409506659907409580724957445503240133427427757643355554211639169775330725304045118270872952553490171242644122815862341921287651321770825707931864280701953545444237707006648304236508438958315652533497146940893539416603010185187498031031951081949564143630580282238958682542561147881084354513792813404423722483800092997347578665825397567546727755288291644797424782011372215621592182883083562980121323595579642380619486548630951627275897340310275473270253817587618639946303621136633806563493980492014226414708779312322876114152819639891382366177931909716133174844059040372471515939419034667268325511153208168256430385988340860212792421719871588778114436728835539609632425462366497640507884412438663984078966084019705158970408496976739472924922896889029285382879701281727295295751068042231970276324667486675235218035374085074074915519324169574757795202684668040648132282178093103123896494481265880963610025014406302887630234613628873061765882009133944212824903457098917918349567852725168716842604785652497923246701571263207268153686831875025244208755119815316029268801749981983236028898934641053719666657665560900102045819448559033403334645666712627387734032657992157178069713404394201758293463902541538805880527254785834239315253263429409839028195540850575456904623542764530645478295532747877135919602990390451220380792421139035965323968180769655730302997804370101105211446893372581168829503607910688050851559586297926560258640622511482041366810083472886873892569454245067418319660882910985692665154504221060877027596943209800788958028318717005499470903865163644215604360057216013113993777441105045501231535290948814961634763803504372802399010355306122261757996883553798148432398203989414849804451517997506391812986119440609797472963733242574508364991907385454069838968913767910959609174081439429256439858136318791387561556531943790956457994170559397614543004087502000488557687540144425335338043022244674115621269876525406921554869507075842490896849353613688357258008503085596010304957809547710956436306456332524587887136985593248680334351032147707264595020266826126691011229745232528973098611534711503188717123765216313432100514246577132626439107447351160436920627200033021973165766275513382184869946018850184232683694211626678370588572560346212610788568268683914362086653443788904073841714820049819925181204475077396596860903556008362498988606146319730374327129678429868302071751455975197521195660783120910901304356680409680451467369960596239234432888266704777155113212890967188190246575911186783537784826906948399527796952632049973708888571896729824664864620648105681919008375511546944945109136937670472177582548179506357954734896109116564354311182800478675730363514427985863819455308825513225006699234163906196085995998378088376795260738044502519216882076090998842820200556578368386664961070091220945577646741325206433334565130089469824242242551398785048975606270062843403174158103701542187394469822436851133958646931665670952802907344489251569763638773407245409798465323743141805184799768608735019028176887588579978057723731746932388790786756111043024274762639778747851751768910894111809101113761332600353790238572591361721501297439163948029125923319285715913648512733782786159676235871261268364112947778161060924231567968796279189492552035646999903636263555317109646322728986844613974021841571847470037670803520471227927650318025103225236941873015100594372843012713642005906078713212483714231452587551219649864052004562349060754166106783422976141742424046289415034815508804570029270940948369116287915721859932148880254891577909836358149310911074463538491706987121331732278096230758520337074615521649161667182756400483965901081892163024488597518995085276212006869886046425390725674226870186430695407620470076926434892771481317919872516570164474315357983472000851967880466054027840578927282872769719603241453216894465492800528587596884235496480991614531111479053398450555250580400470701499591807629061072847603233916588843635017801874163815269424221389230138088026215807777508279835606829949274965298429844038556674483932107508063246729322355439169118544488926090235301520036218141132246640971710972540280053833810621654425633881150742010778218102555718166304387659295568345749583205201592225726435269405323725123226748082139929549392804262424670807698746011833918285487209536504040970664295457002939892963963279672755878694721963498753972927941684532783598052380103117882451951676128409482611555153175121209395242001112500449190241527645810157018731468475077974962625990884273416723165085340693036896246560820882478928222493619762240337993933152828429426079500581264575801635600916070683569381418234891813239778030187992574194634895107270948107216074256310907213530438674797709656409263571701124381467319527936080663700557094030011343920545206692527571942599970284331542254472738303519947355558993734007003123289534483021749203693727867465643433940706213655903733917589982901971519274519089469101323617518002155197775704157042638147658034067561656183083643064288838358799589214175064485581999576777370616976858248407706250412475025841770091317977425164427524469976319175323997539689116121670908829843028493145828481436238904867369713447447120550397971751770077498868956703205877060984785033252173527927541244358916530250198153241858728499242753242050519499065439434386261385740432646816523212970290891729926110111624644000976121456246819830442146752668806686386709707951935307320912974727864758996189922500018194523103521886604568794382812925313465064374245198393488695694896792825893595755886559450102229084768884569752038141225036132688447239119188703464346503856527060350433460227923320039585655838011115605836113731667680440338522781549517952708108317228579101977301430190891711463083857243787427654146342299809866436641070268384344548872731683264618110822892155122278645965167502174816905199405960330703146889686762747855377140606086547545319519775188598251096960482564577853154945426891914535348253529146019167308674557602139887374575518449926565167324720097905862798937002125718269040217277930566863439077042511418456243900340031851213974885352502010621183409950285960702980812796342440760666809813253636876097557677029061593527257028536587647662755573351535568940394971209177000307205996891594497447804395906334227032648362088479264829532331060096027775501303142122337176328076571097995295958549069178242401162817618751851113312735860093441680377775391543652549278510712502742104186338917918947922120104277105108568838621183147833638028607909151399678571420691590468702425165279193696918524880601875990812558439151219331149882714229150372392390421122215472845264359842420278385106830487188236810320437939260489156858851983537391337728321311980565797196056154029316146947587825105248504578986015008478284140700473808305110155130584927533039441949603437685123135963671751926084936418874205886619451927808144196817154756699750624978547211127328596081241008991339987443280734504637423330153055628681615500687867343355807787591076279545501493372180540410642260969096805002679012572320812947118048685356967956963985601145389493777457999671824091556985334205987622684448517744679156213862196641149141737475528575901899052726745982971961557405737190275310535738211149157515753151133959513852547020099192931774541773433119408956658281548484196087937250726754119505798649286850379515129711431908253987491192115072469061329209827333557666650745444901956988576372605155229823759364060983119777243528871298028676567152108716767836887863151859853489302117379744503891690215246178801308438138014155898111858722757918420192264723432669363093659667224870804392042019766022389342701756341391340455233606181356329100465031063450883958685712045604987015486233084297854681519454154347475985343742094740897836182754121850093646446026062297632633624512821720919638647406225396174124885337022237466583182108567574198316665526308192739100422074154152755197667451521235371387260367938341780881670683722324914633589003625907008787427937995729950443276209090626361739624847185813779273870822745494758198850546903721542407573145958709546838393604422508232867143308183731783966219083005818105571510030883638584763839663509122737674737894827206530073247932866933530384313142159012286482988249575168156395283195107332621327232897962434798120841058285660259626463923594717076327696795235530674018245157049110041763760005859596176760851059739047383364997553674946764856738330840736942542284723054927672172880258418225687260424592380039138766257305011428436259927988303599108376341119666416034827783755476800620427107295850936848470752687719969767023082614818574046703294269110257124583791222678101993872964570878040314416391005355164245534784932201693943669569604909925576514136269671996594675366367063975325534083175066684348495207450047341879109034332741940818859717750432206927837745358079831478833099990248239408582367782704933178342960573520254096733299954178041984006734723973726913514823703717744043255512196002760747515877648563511328295952537003258703093306589137176178831642193720737218190363652410014946691061251655414275316581370823002760203804154616831885100530744875166722349114444424321275147089885432673486807061871346523094381101897700527525980701569158039949591982759045849131349048498351967006752298505426574392900875341695881080077786437633374032098243627879567531735060129907583412271915302455621974424492566071429635307161258335734238669454912279377674801627228104442894194442046613536807324076174453139200366743547339519471216324668267471571063615379615051886552691574225124535873162501270491487509569458386178531973107295680797587045608888322581701655055256569440753480226263406789792481053618403724412572584707394095274098143530042378970735438684223326081453557723884295359996826761220830396301122706247395702406407736160102764690929755303559446588030981021448304726520473024767500034193898850360072998321495214859824360223514229361398754336734641665044258099962657458200390747376666738708036249336875538152792609132413123088179779181136630271173650131458884508213432285862726957912030512276928450930126316511992144522524679690121836100436021158281633676193146692791241133685526669718720512532001849007943787635262702103706047445065644001197145887254836162391683649861394285726456582998386489158806539137185322922961278389331263956969815931555324239941737059329969365674606819307819555714720968854849219190572541273707002234528666027439351346267505550317061313361164627668103245120776207183578426214294606580168682371819028748382012716500931590137003723384598307323621190995494010711446540979518119214082167733166958656877417412216276718829640842046802589175379275661364134176044539390589511433861497626630157196660358572690059430161697125024744665638196763690489648600917953277810934090078940354516764874367391527254207977202414058851787729151919097378753993691995503411633058765425812001020940942147062471263477915681154056459912983842089202861583175698473843093802382185695701460306346533660297643786849893156424266600506752794204830393225495332163998735179414709257811595449036879405302041654976806436571878336852394563781889803461734952761448442690039789334730411610118358632836672597138696434534439102342423205723006245039431574105107366847406900927289408931406205570964345963204755681113133231758200062885121310100897762356943721033605529784792758600186685616585848497646871830663225316190961407579917358146987486085414529914185203975883783846890041874359782806433154500411565647115674040018994915409503423144312709035610724149262685479953952389680232870772011853850015105434430474165916383212775374847197122438284493414210781524169398520977487862971037220406788012241543217740192257731754999014083799342970682054761175920603568495647239258909220840557284913805699662831303034783143303351673182323977482909700334110856234116192287738943175700354620398137117816970024594549671389465249039049922379476807045662919134870585010624184087622468661367697584111791208269185968316807925641705253314894295703227194930535202740900144378013921637142623757496608158401666342103148733591015960689311044315184755587036033923183935088898749729109811341025594352037805912428465503628475619312811716630814759725907844244261753975916672370272173203939110361741191291758521919944499390566085573701652517882476304896305893223921776384957836083756778158257036945966247594533007358983514467708254053795811181913133205969201993932543477077227846044982765220970490811289862191422444757257241827335114597342261738237267491945609900030641356258841904432544224686467996328415355644294363471850541377102429583699615723036230931542778882016139077342569457688888397517766689797132921915450683016143068120482117625728315840852062183827459984756538264447414148640361851524780470042766820167038905379663095041887147504452193578409681233220027444295603352328435297459239512078926970915391367782001999726781434189792476428664932952743546213659293616001709288361326694472181307761330871371669156707275775494476755140466203836549840471136457404776988104196930197866822449866760716591435966643078045300902102501431003086373326341256418629923129008299013650724138252203954108869989641783575793003752751056078553479907622328808329927200842605208544916411880125181487553213438637674697607491128702194732252600538586276962135436042596414643127230468979245641392387330048893500957001967146114746967282172012002269683190381253210511691250393621945340518202110344463967379239108947626386860417292526556599506056921854659962993133999468766487047387087369914336424869053190303802984145013602917249557285799542813671176145923873745339492033518795344500327023571144248449735829024997897525019245095344455055635278040710005673041225412384733297763010902367369788887647210422582672624966574715314053055523821342894000386323014375956010836893924630107239465251229935438905024404750385729269307784882324468871664092631786889482499275331384068924616212104332533145828661414154849388938658224911671150360644071887919500124318797275101050241748887598222133750478983257267530309544537539405658449661292476214782532317143739937002101995716206039909275540135306192378352245433157710891524921509012217186615761898477677584538226128878629853546528602334871579727946358130670567572590329755282631094888292829107755067380067600362249987879544547173771831767468936104247875200837670186913398183165720893796988761152568978210321813859078897570313149529642309184639556091320315758772523842060944163209026954088357846984393752386144746345163356900164916734615392790943920543880578950232148208512380037274866756446983498115100573054069049161889993166819959907288075507229416883498551125446346268287294784923112281667408748585154571318281653576638157049787178779624834733939654340253536548916472139580520652124561186549002787718108880267304943462479654722917778420651739940840386346183609477080499894160433924153106433806935927929961770837663745215733491443929640375201549387919786624584540703515857113221661569911000626365697256199764900731937867508929919448692872270653264466148690481440416650299748553558731632570665907135710440747226769640229595002500711204143103828390550134948728704899898851396138338147901373091318347090416615359093263737945003811161204632784764278354082286950539126804245566036024488844124532732001033941567751839163564257189365756519517018712365420684209128206001142751215921799098883454144078854492717415348729462604641813041650138233534060251100393887812391244906386551749811882903558568480690167395162824586245370172090143073384925432934942646693032580906380906729291788923391965835426170733568403523537606316035717476905338204712936746643287994885818467640199549140389531290195494481982801166324492902567226803541406762288695631232108609079209084873303879489998051176661304925732581946640522645609468400223908194226859256865371018361606567646334583545776411375565490988928126307338544272230446133757221574704895458836751985068372989958108223700267405788314784263587533849632215637919522312251859340109533704134544824674271494315920243541221880453894820872763817651033226132759780560305444312195944658686727936412085392475973846070197621409003445079266629644268348718931075975042299297298049139256001269307869483736001336037847042798742254503515429994159213705707636695214899492602771318825956073371245136931066869836560325248040772253924536787398897611093332694897070212491889192294110388445083782901167948378736217338838650158378093697565154230087755961851318947720856325431735755722364406077154046042864580144808363643265920286360068910123509592456066118809883413310267938700885249606000079110213333666764724703411536249972277811373118084336606354033446052118104686555490757955511211041549594979840546792805668546901355785734547015060934449772533344801105309731615433734658997992809133627720470137081050300848364575249590341722784406467848513439126924077869137522134136257208969776874799108696419338272615714740449334629011662273910921126340209302610495403212816808314820428646303288904436166058301694482663784341484467264762524097612866273310138298048627631799126368190100853790073175807553398173741441836502197134280947317645399292787743515260329903901092206334667089754338781902225266961356129342687297382533078267540829454163225055890324924499425277076733347456230707485863130926768131996438260664809390863412893393851175130939472229243982846856104764721183976359734415203705716076323837755976579326502153198955334553023962409445878379881224831240455982466982670200632248709438481116810431960737899381944584464686024051519589494824171097014661167160187935911461543550682519794666058604177566934636212864399856356658979528570384557496003774520154211537121048470947478284276282198989546009084488141256183850236870135773373755628465925451944383409671313821200881927950990134360597593219330033802553126127198601579750913572729746541807928456266123036862071064774879710350419102610193227322862893572175105332817380803265042526381984815384157416194491922380923368867825908653781743253951782943339193396141287956133703134895347336870460386069380140683799580298835320793310106059454138159157003347161393890516749439404843584581211728279078782828571660789733650260675030015404075549515372741469021019741347588860688287612308951213514367297225102712111255493557711537011103113472154305547695032426224207977750086416214739254145595656493922278767232462065758089744618228271077442611578980795413161328595796646339497626234480926467172645627172563794195926601113815137813077770827210090236940327004483163402799186843928823495024999513302051216233261074081427548265437563976821413386819163299494917983438789346310051886569330575003468812724718018176672017043153004489956469478770502367265726301114778946246203926277819115032269821489071092450455946379239643138071112304239679572241940586908998173308717603086843409128601230710116736816361414103231689869013807237296882682448662900280893598514638490107506599468056885296965210207303879012791184535617085726318195926786333275314421959493952106455219618577876407770900219229247735872290103156660668920413630610594879232286031176812153499479592511091370924653982214428638334936925845843454740397838761245720964295575270390446798996107754709841224901840298382006205821079246033033298278985851852487594555612034123555252850435731952454839057750976106063379523453920370969413264011217058665008926064956146718640922267334166154183976148860025470851970756568429312923975184558728188346046876163842854442992685839672201300730421776976007714106247767903122250867781600871451959016718329434306645495196604726961644086512582967333474456275474564532506641222466523596818205337185754266530740689913230959463479116750618447453489418366985711148780966501046883875361652171955654241491172096484517442918034112588732351291780160199787864022509424447249101637026153415577881624031973334654828539677760230922994251447296047392226494626028627480425429012707953159457056259111741865720153350727147821781207522179396970900339605341783076877083755224318569162956027189250212953063063919966006143634572671427829998653805481509041910884032479789276205705714623568260336019599508704197392390724402982231942831924355939768108609491417161143383566925994053155456478355511400705151365408307799282781619065937605623238521979897673431508642176513333634413843657030499262630624754665108447992205329042040753052321442718998390362176001200449040392952272371406381500898783804667136940511883579305740621044505145526189150940813597728207022257159675857806190792113343868346714830647454764352882848276270044393547877285067892947616052672182563996984598890954906817761247862903020409432356339745097391467925468149888308354345738630140579516303401205789578837055086526647229090271309880673896765503451165064500483373923959245377413931562013539301006453416762482228389751346807129659395515890647095467160450888539235687477465690254875130300565322268943954675544987404997107907317390485858317616870906746968615248902078244932145306917811037941296294876491381100156567559953074587115907581887520179529814516180316691503293229030956612635622922015253661011399624218605361261347125353562465854027403994213491309455707534644597780186340930708775519502998463941026842747894743576964924387901525666223502094581782079944374570434949722160924280501692214527910719762220471194485126996031559083685767719299879765974686811564030224977117198981536081432149971383099495134498297837474330068089093834674582838861262306115810128559721503745762832004150825763610209567652186738159867818695225229317279855396396295525731670139185737336773204880775014430536252527032948496574843823189764572064898842989737285275256316731889646583312300091681828858325678460256047008381808672617911680690620403102780704873480911899580035561119750641967249434728372114644725951881038040411762191667117732418839761807777215251946771664869039652058935343948178143842107771144968166368634719339585265736276228740629213898806563120117333769608257193654735509177996163227352452329456800147891479869987229342338987152003017435067244730068779443064797681909743944542331721549443012369687505100450271604400117481233363225674251828659746620437266582405398368355541637473247041475771368361977564638199076040780936787722820019081211719746391626244167883590482748546314341254761110490763750658706408616757611647159101181994687741947480485665470450591495251749443715818734708215409013255359342982992606350562892381113125553384566834791159086702473228659996510239676459807266090858896205072882653896286965336031039318210731424849445809903495393443055275858877409895688977176438298715250604588680676121828011061354873153183458494594315249085525454125342194056869237913658038800103755458627397555966967743927262485500181753501047137374452739653724643607199507227411457368005659761046677619281189281531688984488488963162459591139158367449207633795833723083478205475277437332222447938733834494870731259760978155105162153495830010127091860144732599618302291626454964975779070783983701083538539233517698503830442121804686694061664546165418268609879241051636018177182076195675272811918681175616881418706198590877654691371110318941314174266977248147001162488775051817390833368881430243953619112676443870861060614545603459213748682079934992393803835441194153182333494017831285736877966873819069053246643793383550504559940584074099364133197471390745736871222684626256034575564781198574630278477778171358756361101177929231750933513006493605751587934225360159908097543473833256301904932541224488228755071360027732713657719044717841286317792237125349737865390826545182631133105339250859579522282200374382597721554641601385931138954053565165986232236536565842146864428751494280014626747773516246855735824958406974267117181648565091950416723472457273541711752452263374943695881951023183407807031139790975629250825581508841018330375698699904366629855199593748423354251680863395373176363553962054350133557312872359818265743824141877908377281249817538201627913302634317774448231006406605160278752163560764894313570139185946871186519231912108590234987982715967806353477517208333126699317599410302224955237390832373097920566999275901013556213677362236365747207393819403639801189915305921576787528510021692986710774404761858570402318393246465619475732064200921174084115734238785139373817265369822390971620254743616212499379291862963665382785588921322323861653535808194465036426752629853028938011423070077477213715831453115029169972440917784906718659899715985405457158929474434604109950427645134066841590563922779660978501462315800861683559148264502478822607415328185055521460389400067638434119916487342752714586361321376209037315283909200946388467919224110090839094573310524076941528230874037405860716047290852204544803973097700400913164458003082409930595068173241498174202341781849327712375684457898145110100864089919953607647095421701936526476656710675198595554582735823681906128807970825385999029210206373365880566770801169221421582761939954154175077959151505145427650390849874718159221469298926287216034379648636205382569457162416623258192506794184585222361765849752852882877206856728507373810205524955621655007823117875794760794962316419973296379016585316844629226295480685083184084866397784728978568034493115114613661433847724564690769871080190845410813486410332460854220870967227559554135404837837426043798877811061187435278610123271271820683807318837777938987555100872981193292438055000654285751838269430262743550260675923733164878099846394610408990957309772586118559929269123981113036921734579933391787723092089348712420055273922892531023203794980397177429841745875293790351752571012192749813809727176468665196355545042020689557089707904110152367481083321518515301395544138123048385631413266694887698135927631553237123789217059754425190813700476656779849852408860272558573897678159381914869486833039507619877193699654683309043925267816851451709359796339304887070044646571271984317461238088921902114241682201112703518253666226810112291285214572455180082359542377610768634522942962498508704481756349040522189498111408905345407645054422152879559153865964520501624026649981718792732284334371963503392718949155052203645505856893253729229483283869389668834523230888426580775220766390071122358570485221352429613283817716528142115827787151836696184358962175724205245140818336662249766616101564466092089818515787973066172242933704595677329026584376891353671037323619651819314166452544872168102929397358855213357987234762379235064177318269762630616090780332085723440662201953948341637812100947389608101408423041917781342811787988639008399270786791199978890510877242532994508767731140615405959981536895021089952745174898859403109395966676041674144817243094283386599404175336888773481661397559908784438695968559705255564718946364165077091214114485323639252566848454161683887835536023087817423697678761741076728838081147599727439603031656055357523368380287706495548560925327388999854025787214364274848447007326830575173826867025504085015144435703294494171154454465885492049762701506677283307289458804497021685455120037081479231705061733419423023358036723929850827002423521744982658425265916811002766392858236351675475266082978806183595211524673843338787448300351310037464274380589842209569676633590868214879897985665786148299335966036697343910687708090282653355442040501492143716963757606679086745118778588965611842060787712551035683248606080306600014520136577279850119924436845682352775423131145024897377468888193364960519379376459979373198872539017453136562841385839261299287763729793809738362988108991133138182220779263964297351047620214937107006180054367646364729958492862368908298884400114187295058309135941472349766476176086329616101683451784452026028780165008163501557278186019246461641354682299077909757216503264177838498734295616424740391418445896645256781209593056851886693073904039129968954579119432168588183821771119041353543897006351608875676508849410995066707434889761279053548331647499412252070993395044530921777510426751372780882909931273072904004629418309574106324611414121502329796958995101016409875822227308719098386599165072408851773451769547729801813405170032647528864161001333552578652107964087356002476883388275539954138293241839012314804075581120724518500763730399176260134653151549484256188254584475726802720548213812717174890508792440572038705299639382235012848958415159230071938004200264263132035136626198952260205014007215877622150736943922398661676792519750582875585445555367203367164995845828200781095328794358565237338999644366714437961164741732442612453639991638978386489159784532029677782442118675099949849738800655805858715819302184082121764028459640578663575497907959465361549516740121613055264868008682222203500193687200483803513091147236861122573289974541970241166267131185847759083642316034452338849449695792716640085321105393170156661628701177686524136993062559819281781027304875296224594390407457488608142765657632844496337072464791497117020540030275222344113952652068289210034915454429821318926776949700237948542685341529914574697723491441403977759365069209485209940365038836781519097544366689557584189680911339728937613597024228050465360530835575748137435083260410722974413250311522490327329217274404607462457451036170172362042522035287756451603072064823218006701482758638579844879558903178538383912136863538031984174471438638572779663212926952518618879133859244862004845410163547128790661421018569295308088748910565942515097582119619784397718382406662414720473463873756956290101436730008775590099366848429089346069258855686773466682281517412315017600634982522571727604072213543714919123309004169617423686702292903593257618728569081183608726376414320383027391113429136196546199091907807754472240671619869842801527558454216478515185541444879306107633700913101778497037139645264494266835842422683749821678276322790169479887024129191434348686294156875054170505332070447473519812573644402453887535712456562216218058592218424238814685094402940841620633904485278978381799806225959123873310073005713368603913074532889165911804220840578971681311991882341285760364401586607852299082156509447539571447584985354256266548403478276304741902644509701599352898554615232577596553165013790309880852127240764138082458424654808716391264294814539783045379780568659856394372440027365086983228496845182184561105591011208758423038989700947601407582076966878411303086351901476059490800307106592424566113758025120794773642261295115661968269559052356529473352301956965546931589366019584428064200146982658273451011906938631663441461654960032461727575837435177281261822940986103174185216963877350264913488640915860743039974059068687661148349861957539022956259686149176610859736526701644466012614321187971377944009984300902026982853767540317975917904743102496626831831707160392136042039058274285340552172021584320588343409130148942443946625658353654804072071263145158891624653175798912967331392488637231847099634841124568488534949602516686452144671485666981820970926807115341503661251361322749593905884669531491224961507734517347518193882008817891646571059112741139916534021976177712053829096098010573181914165865048561168191885731046368647327427093898820873904425170818008587796449835626590974927286478395384228221720291363428624834107459293187233245505327076839669754503137606494821235930270945984274749194683654116453555821664796150437460354286374558691158346933293187349057992859211919885105651831869448563097345008428180248979866110442916169194443369174320900445677274828785985699468501725322092439864849395436873211704417138863824934607367798036768364883204047742164242691819410694864702233600466353140172517900052872890839900711004684267698131971633946984706730086710683715163099423445655507218159314282224843003849221526714927810011911400091419007452561057547015053968454110191807571511070942105645770067326714315492978803522475955058075115492210559846523065284595716702412144924951817996881382408754264148803395803079943984378274972762403524932843342031216000288191958275731776341877144403293255738632552360393948608078641220139013154502158766589616917975745148740969359907677946377384353706809907309549535626871135966461516958891915869720595325278910299177022602674601728658539311878619554268703339955705945411579132172598211484168168401302067904601844806216237617345562427100978670104925287267365008118125761664186217653126584733427428895237807568725860656694753693264461858802973066274073450893092726202256628932828892784555803884398236641383285089302760871565211165294583032374080669067177748557974260354444949149879488870826159056185209418226641435201547055109088413561891407431047673178152727338029666836596550056825186936398216433258595411629194218750085768841667561034769761627063926684622169941877391915313444214670198888038716932099362254850172249514812814373274941659359424119967487054740004169268198764745544767937011352875183479937355901357956842772873408931282388718139022612548718367027096231024910388772328386743078205734698905626084281195034483314110958440903055565969607963439570784320646012191951966320749853218407758480192794410925241429430914791409583305060681027383205982495974059223865524885028235405458468553061752215952617864570403825108133692259185200179731184664277240887216342889058452593488712387986385788895975238151100910413576908571266723873755032010041728763546210044368365226285168936591088067897298118609065614355592311054889457758162483116936333776641356896810331176368862857604875027003484836141384538183919636867477211821434816567022252596307905230676144688517099278735087687400378627780372501113146368522212144113059745309598217754708602686037017366575479955524305687183525480869258326681673916875637900564191334259560220681030227257080907360044815419505491654222820960750568816086142333304986266985534350441292039391442234449108229415621405347760624232171037475835552720832645611791781499966567725375891316966325445436157107528843437329988137434688945936078156910168813336841150982034334550393924130342206117843457449066835440924636305906340384685510081955446045999532260396741042289206249771235924900424568998416709519170849050992154798883504496089836102639768762451802512427737068912734406597370910152401496689166221585173803396989231290673543589101815876375227043853996316431784796109418484727730134577389680280506115695225261135055429821051189796489623264491314377771977530794018597529691234115830864393063448073567625971836544166812784584234561194265399522847206939886108768672448986919890941182738497083029120134118348229117242752815430234695521206608087571745411773261106012251542052358286818908558647927634183063118769832335300787987228656379395850550055481209539736537941751806383487735056607858782126769265247445553661798977559263170599512192591034034662590982841626601615148930328449304866547249471508505212015248728723136048040651885610917185498158247156744887562115128466672107579389012788166886606746984216579713029550190330963003899720893801353898392564773426595415209137297816497576441167695395397759654676581365034178640318668740916348964254832992294721042824529449024474397025501285305871767701870025822997625555617867261403615782398634562865453981746233894189739423724202923493716288846200392823450667888694351790367951231763799601185876521440161068215679748519833351290698840563592700156475611072814283424653986685850019318880947202789196581107730373689378324072064916928417553240607886647048586059878552643496735226736484704111107201064014322644588608411341931112004764192707353442302113599505190368098375889007376117050802570572838815595812714938186478730444267065819566743274211620477926768672968152738509855861650068307415158381057660326708531282931781745402247703689391550017286286724686029688772762712955091087123832991143490708351616211883787971063196297327349782693872097805036421692647587495453560429543846130280393341082084204288588386023066522484748208836921158083539634473455439391330703712409566682112378719281996858870844363757603388178227761496194518322861929319440827918231668684523586016473848994704303494436287956178318156815009737489680241961829602432008825632593222531124617697083936109811470190866753769427835712600306498286788404564146116159008316241028702671263895172499125699843476730476963653558477476685060275653996382405399511444716983581929087556071446592328428502210910086753936324245730527217385959295649863919925213341041039514791475085276051545341565406582563663436781400661966338711152579564668950025405174150647387117229323681994385710622115264022959507004505605999456625725418425105551772361086848360458917774668677189813837225095769086653402214038558214611056253772313694895354380644026246359866850898041366756508365238513915788596678200324174987968149729770079578171899462544331550037991711122384445730559513916355239104609408646001765997677780682879861736886778000049233216534931092870266704677822229920514102882923940137811358079470674224486571520846476812780002750355191517147761500918793443801646915700710380929373331916247860628950302318455190381552308870781287478421194560926571369795049844773655222230804043132094211437558604149050324359963381295103039059435042322588707695539150413601283648090741750054131783159111095663650696146533558007939021892311579662007264730057977476603937299251302400901466511267533215552698400735103348035230258521774164916392988211679627650576279822072859228461235620670329243029876762280238022974326557483533874218342988991871899233751745428466438004286087800388884587501218266730202357054039838412354435685818084798737057928872302628162803709821914062716437221668563074495742533060212072783874256677278525332607984891971607998143686292628282043336262110611903659545107417486282708942774573317109255679750764198447090479646052199510680812525593941175831597371448138922414225581859711195149201502618278155800540118437002426754992525416971107170250729771742261633306514506042638747351171800869911528165026774414037758970265371740231149552571522488410727809303265660769810574193309232937025377676328437335871104820494289271180641985884988181805227467273841736333474479257184034784731677165586699185749094627805798817050493370946635047711110349316133095207953244377647487305060555837032225962347887971033087271683121257946186596253403586988282968339965228347334403179465142064256754325913985837663433575966039991507719598343689607830814789013022293388697725715597596832274997129203513077479093064036108448190758221143802226857830001730794695647660953838306163198706400108231526584356783792294998710250993290245930517512117755749765608937712996438531252247952996262981580696928906085209051345077497799323216426264135740859287819578202154901294127315127530156009431380291984822827439690049192026921431197349503789812968920845055409347584475361451437313207173674024222756431210423445031667374371975360746892207050986553120545342871257091241775843009534190613541111206122693766844522406396203626566694310458849888500990265820691690812599327474162385266707293300918831022306030763472070110203884179531499912637602759973560765805244404637078981656018241147651160932694869705305704169046792821953193039951860193545194956439078056375770336927958388175750019864984053146768747377467810311222178397497021149130031714175385216348782874042088642999585725233594946486846451614333633836440473217158690230874290421493019784037218993582790314505400242223459442843221837767591370146621783383051278039331485654239270083567505201240005310540562071701479281235899972203181035635838042600764173426104269532720325901498752231348489332024268568381777248839080979393222521254631432180121439687459811723326974199537610393511718931755187693370252123450433907398137969039318925220628162209369988344007297763778858530569157755641836841096188404494890132165862894845714598397266075856835518493085177140062486594399079735158402826377113423416139016521462643790567049202779499729761535146600609339632802293385750888864877155052104620266329431735393640635535770660090168291685334661592370667508309785002174022384654058766747862492525491624623765722605275733535408629314673628482765836872985732918800742654132907964293074428116282065826446236888504800145100455046776724709676162685549363998981746694004830711115927150539749561633252517781916840545895237090950459239010787460422975880692294043859314355292673800691185843287075929732100015692669888597768201090445085700783820483700803882444887558975277010537331071523750010776874389020966062103308082321019099974899438198809915671951206945319533858754035040532007786831274805653615442208915209705023122088789743620917112947448016798500419663333607023242652347396868453767419813103843599968736478050689062887204026501059676974945263613425132063590485109140432282300060071486568854216356054513512762348314518915283341950615849192164477606771731375695613088373071051398734408147527700818087958698950065583847887298657469387046333185887318940246540652611277259684385616075157121969145736900749203748232325096848906181877283268136068890311938143850591383378657451783616125084340852081817280026453675426472241365254318216936318659140905749321774880932236608533518185800383213458013092212004732430915732002443224371967564425220393616713564457537864626163973744915146276021212267296906646988872798894610677466909929669274411075924237698486133251864351936194802754262394556949623793376258630370929249161532570102932667931323546007181150692429417160567901421475865323487086459211705335194883205378547928431205871786273671981780391244799227282201780630276355304239906012354646161972579636781961746239205803390508655804474809180057545974248016154288878840199965406998797324725246822199218717308514835220009787752401366405417530131548522172282743214369535659439319526483492737524517243863274847979500940509366008786909377588335972424478983956381634870583198839652384674425625211045968753400344008770849910939974970923321783114332972577299831487344786782341476908217669314492972622031765205578407941790946215457593097754387311455692343772281588362379642130195059648819163089312250380648954570118568489761093012506361897912121833381875371777767745723875397416735561363922954573672381073898000600607599426829433038628739983769629314634049438432404104395308370113567758320263864177664600401132907770978370756312639166036580477759792159872228546778810154705609879691209794034005122213172816102586165288473582615985085878962171817631553611407542151750647800423024730970314340998864265499059537431331498526199903230533677030560618304118108641701927005426959255843705851028264201219779598599942819663422373916893985895761396166668571100621123968330176688063224634626684524009336416719389317498849218200816098663997433030263053450466641015461766340427807653312990715886104709309287619896451865593760277022915679737808683961751992686657498819771746696583586215930427989082536478634414050665767411083745500185709271562102645129887050899572892782954849115396546752092288603453707244176820244678769857207060260442055244014843347999523157790660454918489420265626380967512896990495436864112359253807365616805548915791993912857641090058723288475386935806102076913711562892854479597094086414836701200151948606767782012044462037053908160457110220861050264504086344921688625950640830106547280070984357067171435883222467107882673949921248417047880064646479381691493546014611564221729703611607354537597831831838535366223387354523274424708873580598450145261357663351202418600837393714690078527745222063536001235667535029048392528979802048748685328669615789668590132455784473733811370131959877914003425886019878831388320123375659581245278536934190610577822267831474115409945742840500227704772523846643133901450284020632061927708608028282999868785017572431359780727529366886281418416654677980569008262081371052132601227981132689972427662240680455572068293328066040968103955472838029378008285714840306087137108912511833214520123385506229806823270470328287137266163793302564641177011704065784280968388388093383616666830514578661211795550451150384099960174372069052027484115111648543382137169539617455917261614093220232591809152658105635375786015657183483867554614038855036760800028414641204045947276007481501060447201868791635598642783316101269382639310445862310747192086270497061788632719211147873764594383181065395077844579404032987745028606867397973244790887429539033654687802680179376053263497387755097014240691517781509926491465883532285771597131632183008050498366476747533090309704562683476255052992249698508440153583471835412199525895217851626631487669914578466782857704682542497009868906504039561771637234719273434128286036965385361990287362157374544305470555612875340832079691885768400678615023556191828925971647628069139888070627415027583161761583684046546763563979419495515707182376612414625123630506283864173237213467028133547650396958465543065375837905922788721645955805451450079750717797464096980447306711977405706277193407751737515362674156750213202850622571711659095042793681340179266099919056330206241686133314124888265580281518102944151214918845302909909751410113255208542658161755699644527906723241266866964200419533807758241575016000501346823530213996873804031936963941314442404408660190488123756702416150454807953542156427555681362866446268918740336980240591880034890471781629185959661308842547322511622315784694421381253714931845120161624307746418106915660337177487332405476376447093000895434396414012772399612669218622906321688788590514323427057235118408918469134106677515812509080538516542570044672901158190490493496077899113852505715251136069533655011629599967254731288354388196974869249967168756102598043791475597548193059392220645649208085103346001024954631703752023448325221540400648818199330524504803342902861760258747334632005295997035025383729321505437848074467038834878644414753122151327778189575133265125651974947043361327784242137418480483770991330268874990471978942444012521602066382739119886672819269828462578683547762201717241337339906275534640835265297887033039812860008786644152475277167589652868829748166627887587084813287895523347145593507769180818943687183827698316792861463361015876976483311828177631766685606006085861956480856959622231147227126420278313014344010921606841320752485274191817332347347945935621211825168573482585860120957586076484420743345258878155854413889462782180081720388418979098047870686593382953163175667599654006289785530684132053544691708801148275140447760080184016253960014940327843933051406834790370462808204101641301152577180882789157202370027606251696221260220212218328001693603522961422149829270824077250540024208272769631736566228735981462337737901889201388304859956233204991373684459640093014085982697516186890853267648159961709524447555585322895640315260020235878003773689142482965037920930756476844828293220094418287578567982378502791413611932212098836307609313741644739205869314487688645390029782733652788901967615061592302590856178270951731624708563256267138107838967415570336948889208845798784168985539061170788446267138813543839312827645074355067910452086213121402197036960436549492571667679908507963189707508285389509252802134785186983078305963160177099510255044816487435028739795434222689693501470174846605322519430451650908528631819979211211384235563635324862986575158112686106359596431445388707408890251072042286482923254965330270163060942572791658881553298881067249945200951047922264802203705485658640300551215238807330169939167366107233376270606683359543233042206480469239408281502490091430133397089037374177981242874907071793969634924318504447755457871845028790525406989848307007201321598836309942850458300817199513404700739942144021776312620129317488639810809336756548438252673763391125059920002285981570451512531728304926739462857342484152564510060791123607555370785264105285102719480016878499337931419967659965333479955943685758305004464074173136234313903603573310570254259357405634851437572497039377860528772943369078756313270939977366830011624722713977096105870098769206994587813069106227002528546264985038400006081559344390829250837026566675374564508633747947210832282775086826573011371810323782209441881001378398503024581107245033785274544425090117052040433336101264386123173485606635111923440343951428211618411668533156627341977476720647725891393564468740820367730484578064165784363961694133427520368661961353077234478536083700031716147620184099515648743891901180699714585800316104948440712842012704388947452899745361899135336295361863161724505042635827299277901501806541271969456369011212516255487255168232983804809467488105479362323886668406362738541882433075512903569735929738026511574901440027348772206673686153714290855220549583087853920976453472369415704225597562851856282670727605229543340111902716352037968410956426602718891467025078757052085304442539259015871130434840179157522585016478773081504923124244451205952268610932141759523533546972908381369535328956038492437229649463526766306885361269120572588249039716843884900115112855567370349625389314386421478935669676332980845063298467322474385953589139156773620792667510311828005305745352311353500762902586965755824218347180376008983662189673983946362146304033944560906652713846471120966826243040314451324270869866617329321481461330944838907648058738237456196926312980434431198547094296764155914129367672231020713804938991204885695764192102394678050810336114990707998186816666957240604939665726795436521258589634969182533129261645890350740427658316219808741588586859672672732026514230572480843595363196513497245246992591803624144449139061808043544590490062419848990141501998887998025293822139750835548947845812085295134673581259785817552520825071604088907514158088087260176023193044853748444694839511037877385457623162366318994834309100713040519179531006624480114249668875123366646081916403915359147572083439731928480099226026570010705694367266159465930395497159542687935527980187312901382991885594710071719616789466447676807845647715780458311438885667841553124451762757039935086655597539302605203672826016003547291804034990548937185388868866520745697583773588325291434903662195377224059802031910790149126260038986292815642207079742373712354552465376685836906199296983434202338891674331374841406127447050867238742243299817839329607183275290391239114053227490641897456682081278201612908246242600261986975100842149302286435491885486847783498684094025035817725227183628950249509962051604038609789379401408505740515638745001143423428072712710198279174932358177146448860909366767491371358703209890999290588315525909607386507633009664536145690998370489477558076954712441478261567054397882257217622117304029061778847590885951356719594264603426175134933011024496971435580861688280658569483489860304024252744823321102876846892926646648446060948155770630294066995979957809335755235938644496244610951804172461814421921253135970309285807041649269442976817826330532450179758123198943240894192197932176163584282751354448533427373656546206771654441587710922885679714470522153051611107683022742462982660783027641630879141992647631324270888794662301219829109733001705764710418111818524011631358655240034941492652262065598064533543163704592948186022645745634119055451353232831366169789877825432578915556759881576549876437349914262970012564287771215729428152869231731229042592204719970538822829213885454866379652505489356285611435515612054724545156924981218432911856015024235993168929858739650489046711991781569067835873693639249323710126572428238655457031033442896485805630049065164924299621239351774679036562334541833146438163257217744307445991292127834331320017889064739111228380798201511724235368303868549867220464043770863959674362039760354332543001495730971407554703703140496517190188316648562017813627188823960497519615774220122644027169295866762560643125163456143920977580069669952029613880853866503291732131282976314890024458756994229194311941400042855408528396510030834426030595583961712237349502199020621307225847243508604271092478257150419902996925872985123082572785734371984102051486180634266929990740356612722867206027144543798838805663986416643888421217859912888843809856545705236469026308453345064094910330864736695448976349466242563490087388622932759484370869132100568777945856950610239484529940579368750828089558639618782883565738892117205188152066944469153230276757640478561687775760745199819712866352734150653019438464223639654162484069251941583770789716999794991670722155748065916862303121841185057407471568297640865165339618066461767022245733540497609151777931091416919965503081867759829629090172811169101281493708621244760914153784224560480777161891023011054828078680183642220534285196099167587446158282671731875130558285973306260801929279062479017022629193928832401756458156430444299665919082412485755786207916580546372301573529641194879470230808944072876551181906667366599882503526129012363667731258667142866044369255747042705769270433630022617325462943141311263739736678418919723602793962710893102406345429202412327254843261351067325001696886181420110394150867393470607088294676176568697424715297983920477573197776614931606455735143574049530432012658919286912070775839171709461108793414780326597196506195610060993853127457699807920294025990591310103123783242061089223421555572116493260717818812757566483889099804222921648962212524254341478645313321601542024692438147036526694311622756539417453581396705912497167709339456723661223990715680950161826655550347571505461748450558935637243584190220629690175465478134900338151444681517541562257504371494600744002554022775502499692235226648209985144667046384753876471608332420799061260290669874218116051034077588199257210208841390676090858671099356239594025442147069178292524639170189269742141610545399744112065250012913387983703866723443248061426426568578719617997857769038452072968055040833519721546742574817591720289983648046248645924006147000450780765070601825064663321661164288316677492141702908114249228876330940314912841068901235229358923945716379205155093512463284348660979329338255907641484202155552851906989615203283115344412694376875208302387149874591548508030459085237146040393038016777737228747246975304149041596829197253017787599243880081265166879753150076548947159343689083812427415381352568322299047343539484380111230359135090880476073012454259801242082172882915491922311527041679357217276267881369257513210594367190695018789391928787155379309529166239047406509832119811522633924631101207682302221543757025156081310799990728269764165125187377153851654533180006000274551992905672536771536885818509581021141248556512924533521779249331652079844127893173822828244622984045608760636963812009618831555823984954003101431094829127839575849231782902755948125832058874520204586181296480738195306461541525702711739750971355179863093276214501777178922345859291848970858573888489355994504868904383150904383843549832161708463253922299544236067427949936467468363191380829820731349655606324004023879375952397876619554346423731509991342342511850016964430978942045570576845867039691698132178102783535446033568921088791315644196558014146106355037825838426996012321321842680150517911460547146804544470350929688940341902122897056196543412832218456079872759442309155962719776996773844048768633011260627706030578562006037777045457644446890259287398718509761802973229538299606154215883392490097991264610757455729391822984219397827425682170070910591078527000960933808647735371971059740330278954948994313208626957245213387244517304056867245339649637839517568835023813846990309637633438752854335108391283239854992112511849789007725788670386014947138719629227568735655569079929946825850249970725861654950343966388523688676462724725825663288399888022097133270658434773166557068438977668207634155825707656169484816900806239399595580928088927148956726115340169697061261418071007144451131146708288008438893053109270081407752488691356641464271267015106165651990885763573255912123864707747169438292628274192734562639171400751382813200315897405964422956922158077934533327401258663786899006276415294109187466972854634366172919166319636916403044128903020446201834233263802119183738900191891949517430443006405769672933049285360732981183394237724363630973412998960702598238705632526501181492688988773827730680587544732957212016684306974808789539001338165079518454040201409315334330009044115065716655135310329925310841149871216573922295002770881341395849867927804578698937893067340972166148997001966233546492991168970954158080249315091862419032258904534470084360029744855089687940694931060549251190151762232541334064883695665742545493142772538254934065882597265244230909431038083347855671378031366492593494929178484160720661347244800457819951166450603797650673966947315843117589047582581785203948292208225254380006452917152206182660102825461855916755225822273461292353036788048312169924495170798774305740937608472149126601669757516367169380491330206474428411144490330529349272272346185407021782373597716392660740024946009847798432981691028296590797603775188162329974346250507999967233711992013708971818945691982941378884391577209125428509255390309471213533418522521019398781612979264211768170378171232935439882690712415980230887901683555529306652478203035226361970237029502633448108282700563254572226104114581409979040597217494862041645813121041607721364286957011074219046434400566810953868837937480097958473391520883985567967699385987489973269355711737205947415556356963554753280674772023713667484146253578507113740664687206869557912415808119339895484689241420100829659187598036643283813284058651496632752004076702262305282038121761011013772226391713492196722808221170101769231001836748179417112439889877125176966169030301034186315807815665743491784754884540220656738803854153518028978736086359483966809983911192997671438086181716531450088231154594070976888812377879991423006777924263934299435302438813831978233743944252071678294763371367345765059428041218797261424173172076303905184774537725353515947891145161849854392248734775726909909062017972220497478647356518234614064607005912810993976188191250896974223318611951389057379386460362737784728083297372639459200064128088626174123760327729173484431004176845278263207120538708376542206336536865847532888736176312597087494045211850751360730558875088276973424621978966088233953171709598109598916985472173773525608739427553083497199135334561505785079321484235031075768821319984892289094574832546239839878026085717525660781758590817431933367169569003701461951870389501334563735401257269055728737551784129962423534293786493645042857775224593892370846009061296093288490855263277063493369962565733503046630248432690032583965652892987602352794044116626704126918117892661644793020402784592670665214708220641065327314004786442416575795744717297813014448696286825489669914579791258855261902053446528108662169548510842816715604310693268278746672294785163441445858352006227084479884513866201008226002029471257829696636738187974650539656197469842895659210387743559648981577319339152860552006262910161219942638731598082028874786617864987001874940454029198951970959767580377944005348642067864058907701401329579844734038026635601224858822736048297998417370528221505389677703446442632236174976699614176762658350814238239459350278303698354623546979630911646036881906141688730386877760573378814551030783851257784510788333981426756810774962301061918099619136381813999898794884638893279973007252353527489524234034103852972732446400099492652450770225366805741034478685236434814025228624159434024532591335149207600261464764514104952510412568627929479039282509675862100213394338752275047012268312385462511204729207589320233991613150398736301068541996152349682371343171139633815376507662325314468800672312504805904792574900237902473359880201593866312361761406618348956043666681346089610833679779207215669801462855003852040205455451781706432112577525777055835808590034815790158693992714492852106427443169010552349541059800464288336318905156735655293991720349812691707220203156294020711902764177507502115049090129404675720535115132021703257822457420202597189713824812149264770807215545000535599737891005759302153103602875099665349617882163843308482484305275877085976413118385080712079420807363154946036683002832167209918923268279268358936837906100716906521920081957041859016640480629051579696737132026401567932746891436311447555774834186637272623779093080564967869717810999491588913456096561267826071081675872952840519201435332366629598666474309145443466112017380043224113865329544627302840891035786826195007864625213424298780853063630396815974264985534051646543279637939841118545508888498741663678820168812988379773383674522144248569970480931617184616377821062056816111644378949846057620054224029562428181966061267358895429326703229193624993893262667972949509880862212954620160437183334330354742155600551145947231036088032168855237489541696122241998905487853796168164787575504976986775970171720215034728364742496287874875009396734844649392716907526174487542441420871166481772728542234084072495579518292986769983985680054133443433794586494857597923041980228465362392745053771705660590554161020275232152226579820113308695445339757855037758232027535145879690678661965141949066623215040948321298701285292263459666956970641547898609935923998002475494211546680216332388177650797493058011374994810697824637492568225960976721511761878292140111339930972523023415603211106524376539277509519608637120036281122915822491799299051389814286998677997750110582764582713191951483130777590805505420175088598240213854996343133023115487552288951523125191965262202063729760622250511641476464605575621755728457216837682279111184153619186373480416672595834098457740735456427874082746829844071365708562352998535598913710695239762767110316994014218502482549798027691208003568482080666352520126585645779234106383812326034615435899728271907183518622103941502551741102911841628901762968292331695285779872150079801522126135289423789992738616042678550279519681612820692470283088055869996101770549766681007967551459385115572564634215017608899547458076118438402591442394452682097525365248420307524275728719295805184984700588263623043439106159479157546134641782314798068387855866752120230666388109734165579644559942213507709780977052602267779783874582694571366065458524696856412448836704890973366578473580485038114718009847853438078329987557305099840525549423303717779567975266743639971810625017319590383367332595931079924443682574147461076613693225575932330133809264902472193717284579162530423746175595660916189849851286247186579120357074901595482175377249223235310438904547092686897328585751743730416536371179216140987375919449237648421090929320663451383327268067180215997679632673875068623143174277378792596172385369538346589499297371122531906983600023648559835683451741222277721238159592067361986366213632966566173378084689500156902056950986784986110219296688001986841112785141496396157238264292489919457688421178174106322728854029175063035703721669594168628525053165840864263797166084376627201109125129509979736256055386313787166499039407887551434103858287615037314294694365941762204965843655194658880654282842927113795409206634826879712258879177317434870967616245597541352598114758261004884265616615195892888816175466714858163657978063303627429170984762536620011760693524052273577549327054522561127049778645305861293952336043519691394492565352241177764999772146803484320026664338191283100757101691898246886963215021139913382033625974742956686840262272054176065046209685563335461848634964895148184916734838097331838189589398631656122846816688103269705046410385137534527939896447336194293052993472675066676144350223890849817120500139660759215363359038288982683156885554446194662352934605519537047812973419887116030481083373603018531200201806028898179886748977725044422918272441428688346931782041126454629867235713155686756009542728753536336185272209388313613116051250296006726327898653367223368531841678020766805452761680750056368382365277367215110521163223399390956440848006145993750013447595592724654387926021867069804358803480817392589981573459722368981560792970327295647720723091289810780903523925076069875830482278255969019991045374379918214220701776933459937491694138777000786521927511333953470807481593414335900046480383552919885059585303769320481079208535423649828408112179804664773080790603380913958871608037887379499832855013012965396686398915447944498786474298798439474381265499455365481116770011232826877123376749780000763542555934661584949624181483648932822316372428416750251097106146989029199878723797527161796878626643032735261231092178608330667792571655021267042341166611811157099432085164040536940663151756348595938483224001763668888715829335320922408599237983261715300311633694858781144851685811401595118625767535107947952613842252335314696421930923351155233947559710839092217698161605603285901002867618548961547020162525161055548486851779311474203713333665016222834915926252617067632702654322023148162266739994109037302385030622718567545568049910930077468498274719710752922406139510041099848432100392636275749364199969302363764980693062560124787850409366655899485922170513832108462164637850386804486897801790369217981622787626157912655543712678810838210474583645956056602961036565033477828817301505056522403496966978271212428886824527060903106487803473339459327429975565667665668511785149181996223758235621812348909763132204411008490655892617902920932003448209038055302382820183453434993276395816753099159888689967249859831542473154662857952234576901432868474733800990184623350829613086998459176547198177256936997504873386437909662460975276675855692397169595736993541472792431173767377493558009119806718646215704745852052906350227829837023280118471870424565876203187874747704807081197070876290072713761999945308541858174851386142782263795921219716227081809743562320313973544401289104587958050553535257356252308870759640975119082205799512927704195014216140616049008376741291419360952051243489453076322777716750082577077597248222039534459619504577201958157075695980645512825228260653898196522719357713747108078128164845957570000065900156237169395593316632621073512348558795226176527940720620981840333599643352031144761787049477380402835664781261532778459970724903963048782893674640296516748789572560729984166608801266690643524836714236650966394135720728110028270031306612958796697256251736834159555614130577998196201964906024820488339644443524945088156357167571935440947047769183808210915817558260718134754924754338544139907821628532814689136092850877997847788769138215181039860505799700940763208267437531476823193351552654571192029532403840119754974223854989469882890459209086851855178796999688624681505109759343759362672274280020687402410727212762944720152915947046568142477023033746217865919251852343914585928015866479078081869753951983241069465362928728357426742118384016711219294269239511867254062316528272398461380249565599438327182378834034933223117874090919607895555474545821787832798755114465778854391414867557171156212798319101231235432641280154452453983058761890587794639075516456542570242056807432981493006449394700805694781543286291502895278714895611679147456311020184676345571400319280221564805067638805693736243170045671111617963960080161490442727131248493659184117487961133646475332208977884106092891985174364378441986845806524721080019685176512733556641681489832212877302776039850636020517635604743167054274276725207575894143082390088113351432610490517945732339453132518644919431747764361847199621528931838546636248967376620808930748634920084177599281121899088283627152841380164570619804069943652017462998427461469876219064777075601765452352481223532939914691577923689607218920251574672289903550585294095183400673375438320465480829768843518374940305000095728272412075674604718222782163370728074467761740038181473176632478264043120168977524836560713799114967419123298774824752970063915607447113126270605223175358046540587722634609813025454250243382194283153510543422525537817827418967850246363713419947121929501946110457448337851172365779028683199403897678447701313449265678085624036165305846469703455695795691944786903759327665734320473527195045907491255826292128947129403871613096521057635600086952909073531437000883255296316184778995076894959011420808734989037358566840916625155825512209992425980175198352931004806349190001804831074525721570262163046754588769336065974354037193170680421051278810191446040398641372961397926352355520524723903247283416988242628149010262133326722774064949113358791819441665780402711437915956843276637725048922735342320700757412384438927538698982312475884700173551379892671380490181991898207138751066373114519203473980680115983605972445891213650418844414469399302309073621010595950543625671923517215906070844605713755665680508905396364909557607937851767058927637588571530283509743870704999923329073002409880755843873788563538625160448813034659354505493329064391063443770967746314878735039386479259134630270761241451777644558613781573992471417669240238952542094282525199107855396244564526782566887114254384375986357163075749703333959858198758023152084396739494047568690509015179121793286429096201164604870150051991892760276097443331682345186656575045261380790879587640593578844107242269664228741381585563012075557180799481125223646320785526477474506292211089126237067067839723611626011112108857302894216814680504349169587863697913051093055852173854860064760824223661082128079206965695831391695460288870106634245081815066192840281390974871171306234463741745426111090521942330154842442748136728391491586734271627553512286216290113037570443885620351297197326314367542974785318582456640054822361555987262458440358369980560959921084990867082621704788089782441271477855397295931118117911215942693081006747034863337841325781653701543616692120002464109888217147569519657444819723911405538565924597937113681621947809466793348685576760508817602423362022723324808802480973871339357912496529036312899310116913582779915355759403805704699249022711166404865982465757093479669937079047217350654059389089327606284413220854980725809850245962095549235110259524349559992861240799356744130567708959383659215237849914233856050974491029928164828597477785424713727332739131277098403491160792820716888895256372696172324952335747268907477254211467050926489625092737481403239851568822443621766974117699112422047234245098558090406636832398322958937394980514610259727109826964435701399644574372422221613842965849188867463903468341835696640907979145095999054662233190913798542917576909812180200851645713668901164764499192348265005736981694988112841481010751872589742671231635669146460982519181357992579659596489496152945050629361276978269365087213164787330385549182871386863384963391951141135952797978278150095664291263356518696090609295251919883177411248728233116214198541131862264521668637308254911030437735226527271222085861392994275383108631154668945073661857140964340979778196998239916520695857207709313353241538276337508718926648077305719612522473521290891360686537871632007431278462918135105480006094335310518894337273064581538450000962740179398506324865195580539181609817159422882512056237104012899913036780457286791426358534489679656757243962943623864478305779341751125290270361875274081984670166745205714613790892339722616853399043266078528707647029207627272736759730860800138358538622478211743224943013006211991980584243340034059806500815610130591203906957827913207384362859617536664222465252334420589192182536914997947155849819522595975831292780010546286659780850993738343768698099054156839249026940687845222860792768981112971751455641881546133904224986251904456923371364025439458055254938788165940579885285566581569997195548738185311990413854018739478462155823733609240464287726804336263294605709771316203299157832110794110948032773235610281831629894550470956993474938361607019439135362173752294986931362986019497221615815302248487273912318218280710756595369444841605806557062670639270521782420689364105560545248945584047076672676836089392510941060259207727573099638482897099441392236164648248424407880342800052704836388776255033337769443160460884969028079074974584470866675316043473930108497503499419705352799318090118181213913565725763845719460030786752192460432781373104388128635269587246341480318660496144066904843544877641856688885013165618961294106420663591871656442770337084491733026560104173217022993328951299923583410505408172122065806800448908042858574874760825275860301798988313578689032900628592148683986219666284743592722379896190907916441285452364163237361089212392602505163288969243650831851750788666574670897757750758205413594344872594255483149408694272395916029394043545513347623134574308024467754305215894801784718384681093657298335496756945601250848721687557700552764896317795167204125399546542360474260700199349068726510525650228906654196697630081970139242827825859651829198551430794040485620188042923193223553945807446604141782187297699280223680472473081765221748192583508384124639333381723328942516299023293632195241642925843762248939863774525352941684661061935796403877519284334277462570268819174825544417339111829239933486363058916959600116917733991121927787000441288496091953599857953644119094748657564813070496132977792946311666008883062771693913688466928122738734682927159772481787374527868894651619424504534514055162311078883779450801131582028307438759295167264226792429981308689295409542526052639580663028984966469268673106003169728230582788650259555629316028655362564385611242091024156132776775558490881989068744097532574785485165367994990826962506470003378310656708888417471735315074270708009897273105367480837199570990799562273985117714355914602265927634135828621303257797165627142783481497062293205510975900238365117906781224477601734253935467792619863621882193275555929291836097069169074587528963644878911118943221794188254771588487850877379786644507000280914325671461036275807327313409351465736906858466652817622691754527328333158121085149353087345484942152868761473276696592191816048091011524062984831213027451022243163546752296564484927362326476973687939583350935112116254939758992725467559773462292007114627922205395143852601329108961055715568738780641840407067009531357220651203170042808233647337007084868618974149317866415469430760850053547589537790997803963136407554678005396120602811327888928828638880851226703561016690121315448624863933435269051332897482211877104089397749030204732930065243926104897668142759826406745287039707426981722948140763244343140299270524697378245028319046740794517208647210497474857223876291612055077393807965672653545728069312649621975607926546763183519798315070929397520110247367910542703075543087070677665987037660951176020242125914255151816739436672285005783509520531058558701946173941701354957833525705371928121231222151655330320289488494571091248255139367383369766418360749377508370650630777235078284645565019538397187728964341954519191966329218999526604244497652049408008047006097281158903317023450618805279758688651328921421495144398297825702632243217802451556852087214780017748046034029567870344771675797585634436046607580941394066458747358800033156810154978376063442370128801362222281731755502513226888308535998385971033238522794836851219213673526160281817355311147371848827582284849759180250051198452095349573188361198431171804590877178624030243206257228215606333257100883935037341081604233595948253128332089703633992193764940821182062146652615874816873033013654255928960416277254838803047218943328546580819561729171418942525596003535702002647126305813766420656943107635934846844885395614706967994861940855629516854134111469695509985139110676595587486790571201088456587106102457633093461835964935123719332289151365196587356725466988064073001975251079888508344832204237930856234680661054726014396403878910986098291045426312204913284338322044420686832706812654233072181430382957601562949360926271846556013195214475001887301565816988646132049413438400668524243990483885596074559073918356122724913695287795822131917162745786454936425024836323743700045710128164740343676465722219016362821795663768789537422317260134162032854432149661721411692692217421161463096483483024551939048333524294077970689108668930462096025774909161470329380953142221407489274578198395479196922027545159774031860382490866083611376388518462522335242325104545416353136224228805938321924107373399897987273107952928241424308709222308406781560313812173876114336002819160442876454374960380022742659572440026643684590056136790811567158901609357912051741360909701719785572583616042120689046792458174402723778259150673057142420253735936147731849350720862143351374142207556871992183424298222010931390276445673872362072966011895661169505823840960207728441305141898929679642074095610861515038282793055811240093098482576008359012950810567408605429832373642728595450353184428682661181855006104722424953518762158522204082957554387048701546749671506293264254966051749429325861018965141904842651555741293281554191627942536897099576521950250855984229084489558885572813689640109158745289309569158609315822161051157833660195462022964839647671871413708675925549045826913407998091327899785387420774182123002728192653835823431182054300085423637206689115756148799447740503971233198497881539605202377934571010831597837483206700133392687026092784370361192626175120795306041990028071132867337916230239400464571174701724446257835238530676063716406552881264184551068575514254898534625904890229707741577503411792714738928487209614302318244656477471558633974537483705671878143586414637648469463842032737995235105752651769748627443959452558419966900538559211931134903468544531958361108825609798686975024162731032562207540266489032731032571097195887215433594495253521891136188156491742331752289317228197781978310204972942568018044342474970367020195832420188925430515178039042368158837060948704098792130996360719679634777879679052074386401787225531619778494751538152118539570295880728780204873639550510200816257270088635753347892037256274380241225466317398168404133514017025912879670619745985995015090356519839042467637283031576240427950064993741821148125692375523148097540568802735800039111253542243784810176502343308065344889211529095710032053395698327675434877496328912180204102355089301501258096724565248635743493054174748823892248236338031074131480412935918764066132826450942348677092985862444223634859173071488470963499810696475945671393600540086858364333345341450978661537656105480919918989110322687313210009640130627566824293216623202410586781356479790365241514870115653575249399527907221963615735233373552084628218726209402152098222786929770332004681637758838794579353824642455571214879837239324662507390584168716733902256568552967836065793717260547206571026273472994490477914681706667376642753535716863043285176195064096715447496486979345384795141200186267777961051341954191112431162256216004571066763042974854009585045508794981099930404757442557264512079224613260458775870970322620772732021313728671797591305680588016113782482118212404197319846083319847992522815457495382806794967204549189535232907301084291582991364799248805521964138076066827633577230238532079260457144425053468753513008613804964055757701137530557247903901419484159581924153801119949659549218446401427711392188406838024085239478628991284453989864765808898873047375189349566911170367305267263863972338416966518546433673564579749609915623911582531593382495310515334935758752351540721372556181391364605062824737591750734293791644155709048952955998753390256786259831257882448666153202144840828108887025912760912088492503408488836218567740957567706359721980276249815803470815783396205201081927404300947933411052116447983226764168455988931227039744032069618496821195001166317048252751112851224159201494627394202828342745513350126998123981251650793208196256151396746808687352202741433498865023975194077187121879432584724864256958060312430907512733394549183979340962931003173923086018230204530678574340589196275329564539324032197285482886549213629455509265267191218507611012931439276208171267150427993811033054005052152662669051054972544704204264231444318619264948208521164909009795193560095120454307113736752930147912591893169520878487662077416472493386014961277443813460553265392672994268980628600325125885650259343344608091203605243536571533323926276733452956912895079329440460259816191711023381999892660455860445131751070000536882973661209807577046658878243250752916107402352573927528618536481046477220459936406231636263490007326175329648238091756869267579302894355339646053858979587447570486019064639883768692133281028124283783115401213646186989312426860742247736143658432150588684079879634692208841984933515155326549793588759795278339670915161559837637741399312954745814915370320044649716490010217584585002294280243944599793390311361530355303402143637639720447181921449510035964347797295012628699945743248212259696887249952953263147942954371199766444066220417232952131509572792826767565575878427274343109096797826067021434578555185195728976762710458107533003501454187887811675914626987470248794085141958990961763948159590890415434442289786743084315012732413241680979966053933919112506379144795469576549202595630953770625149214800678299137740234730683864734338193405732541768050849746365891176850437904548009127823601076700108101473526353019046044557867568841271077371445920372601598140509664756154377882632378218503240658003657638906721734308170329938582862992147958862896251120583567727298510168012790880716560561253412070438384234470777226053872436951933781220567741982937757248609180259570072551930605594913566229591896582940182690874356399535744565518524787831187839271552146235618578513943005183109922825516786623382164742099504619545612142469054433296543994537063662127000815723419395648983007884955973786895443380025198808567673465887062368343517806723744677849804004272081693714995312986605744664356422593790490386904986611253449575238372833950086624563942760620285341702062625666229611311790242687627057261971675434968059929182328404849001695931398206271228593230493135618513775530922833871535317209283168978326603389428124295078752428181823107772228755796467933876092260082391436427427701535163989451210415075504338474121472613421991701439317286638873301566752086542717202550010888255902386680470585729229401748536848690825486979713144538379238276534211034432862571102483533606239004174225122080838397140056567329316640959402643494241746749821562169656895845933191947316396914383182359773808708235834691651840097679974928694818626675117299675740635685930304386141983826767705711942403612204834062884011272721366179201203439442609004192052194928463425797271995860269646352034652650093885759988281765468262650699071749037295336333498096353053774680195401751719100315817760729761488544908475364489898191421370033498799869593073513234278088718985021312492412111508578187944324011369176650155742175342430418379587997922940243358933854331621636185117388339370362180422448972127834758577297363011344110693530914694747249233841733614760003716873701860659103015842316644257770152613903072834346029654161648296402689366535771162304254137535636934716117433916084988881565260444796479465826848319007044065585467927264953371784204742847260583980303515316338511547311496733022468853897325202683473356107067175803141687981006290645209796045673002020464494716505586322638069935720106674079583625386009549739374787539282674559427478149531218068333059008352868556178469396615739104893722340951783911054608420650226517154116494287782958959612345609487128871218185233567014394932771400614290415870474170871774214377557401064827269978494252765937521309786225964399027759546555215478223311955458384641898655461282845236842224361095000663363102729219137440681087883660257431888907183057104433926219993649837300279326756661377257606202176446226906298518703577020544685908221044867993511337234978395697232295172285235085801558213926906169294662227325510152410227535390043072631689970705846595563324410141709282881133284992328728794509536573214179246923229844140588567438091428428323548042004972834169632234408455642067993069790563329994172547721341866954160849703665921985409354875586412061631715853225653718756161787543843578280444043111225070837436548447417120463419384977113079728302350550703589688359195014970259739341112198763606653509371327426079376378917830416536879000437924513829050289657149125507899679652587854391159450016924216987809465433736917233929031100343248425648464215155617907565684732727054789306792838814757704791251348064516941120241366247038742182983615663792738016467995087426967649981958922467889146697141996014023824426328487672805903567006123202186238158975401278908690448517919707633866946588453295132489918349951151334420812090744958438039028755496689004037050691808258926464184201970238240331495853690106681701640725861023900595768067958244154576874130532191564070946353518613316869758719696510847741130970728311883981388631058423356648541756633646390329977056052841003758605165076440915985158818621651123135781272662311453069698179296128348635749255768208610873648450954229836430876537325257000457989108611706264760476136139746053806909831188084363304642032465125289772531360618561270931314063266782870883977862521546874153956643363848174706046122893370682247201508828256939262390226141718118469349969919592112549891386038690538248832711244461234498417717586015306048780117912224406332381341409346155957261605650062865870025025818135742925619731831934813407477276520250663234931468731012969311931078942351970561583785550220410097022591989405561825836195182826230708631167777411427073441104290771875682428570388921777063858540364546418968175099527067246791267421275068454751523918778147848245202728899119381180711168182624785117405977323657828309507003263262213227857353551845376644254740092831901945506475856467642257510697492155046640640489549657907782898591066357829711755773183737077186041724242808352846395352902764554287514930913695959625410238071899714903217833272852277580764324861473838782590294217822687448445574450577477656841746750885465097787023986165709692628865503137868174912171933496751958511725506553970760433952311540486200384599523602141144343722816152608797133184264145132461051309761807581809575589556316995198200995616091692448854474243191847070324214933419939576356836245212181337306823245902408422046496556532276473016016719433086219136221625578779691304579085119967800176642357036036777350316993098971297712233911195308072063519225063481784107246971253902569390251965374762335673751136625128346720521005100658339301182287341255914321101661191444698234604904057778147424779853983888596989339787775138795612826507009121798150097282308672169380414737849304629331512875359267689795032121057417575523105548572148023853476320986538490097706023986544013157593005134176677434932256434617678732753347115270627974021652932111261203038173123759508234314293302511359171731821426350813291241489443896301176980798998157930213035671884288766746625637629532089106646944718793501638097804001934945634593162660135309436096839038472502157819679947142047617890526161748780530935489997472872511908851104309268325607976367593030894868031585012925715755639938766606805565585110924345884262917547158457996954784812445971303380099814999622909404620860010374714042833504537025217431960845288506617606951414842245660733994676336689958221627437338174911408352901652366275697734642645338386292690092855087959197547201457938294453017011067127668179034567518554527875083858769715313259959129238626309044270476965145064962747440132851321668617499806001005135105192830321495869123887673671296726386018727571167377393266708316990360782402742540232870565271891658385549165408914185014313216110127913866387919113507850663802683453277384558738808555685262979084171739150371280819287239211771507435335392657215884550796452260266869361380342768222579334581105798395669276940901329988474277989792243389779027355152589471571251380883680854756553257695091464684703471158367462074758886720927326833191767823836738169016414177833237075465992018219102242168463562911268266095743161071807584018572816370044857789641639816381257877089237685631237169072186371152121813324770652606417598949664111382737315660341398082959206738882169203136677205188969396373014346982284118558154013261288188052345958269287324506583987209341583006868723765716957278983040920561437593816391675651657953310547445166442444495954098812925514995454879548106588015807303424232711540970430645277845976758166336724793822191415125229115651795822455781123868772734130609174000747981363875261770816607446395805921002732555121078059818515088342710925126371747230900297224557632150110144049857810088384016248241296975246876995719133447104633001653458590704807533510239743114256021509054604556711614816329392557723840059576359282945083025947744745949967206113300698550700423910478219308991766440676210580439888975969509486014507289842175613836575196110019932071501947258069355956422398615822437929614427296868485391846809088816104237337228075666725605865788790988846675073849112685771557894474669384486867864277101320668267758140714731888979552219285325884441284983377319283258619707285011459258270262288847174961822218846737994877741694423879419865667009068594580310018419239150016994297137751880369981401321639937985041259822245753531395917225557227435012687261622346720715827658389056246688653994008808069331751406205787597358792219957241155483668018502060574051839520604646163327756492152687262357425449366296039863639198639335425405783819052757791538649688065323960220309177716423192814473889354498366603973435031857217920993544170244196859342083000798136365160828903529966318971274863788629861316433412144134886795388567575405906836873121311654888844045823691435738989881787348381825279534479663350300387644564990694603553315246176898196293190968006620734377001538710440210591703112163836769571950926543417880808877008305988331481652357489126015505428686485531790353705758073998801929899906765432489168729116412626062356812782052780322354959705220194505048063971787861594282980345572475209540335394241999484328476247575760271786575842103472332622848358829149917694213902975266129268780970396260455549848994337163297984328689253741072070262685504058866959811540035245532477071954470216595131163959915556152462782617218671372729951726051474459332560726599655456494811209796724903242529423053880495799836716634264337923846327164494436389107863267554801054907013985979417181697633207683546565270474882612885573344364584481838270518494001557600352150915712051694323108550450281919444174952339132657023999234113203241244215968559476004028656766155516555454020403828414765484557541459204322845466981426139440356938160632008634773323212755246620114153260954877125012527463757364701393932408707972085851419194075107148364840633295814202899285431285894942103485876465070497214839241552919762028682569772782499849463831276242813076190470984928416383896194182661051318088839559239865260258480618456657641800675686403680386213945374851565292268425407706718931138039934817530233377502384339188579253406439309158747243101330942667403758672055843662117991847616510930654037062767271779975140551188507623238626071622090846297788402906311535133421255122516483206958792775140500571769957726770730590850388112156692235254648437785963633787912512273685153374607167334889890711176161218267497260234713253616507234594962747447132078855610960731329297268469827288036233170662113254715390636090614908147832587093728708327977543656555162671029380839292331217154223285666770699781256365420494184641333487918178418840259877050969038582997882787729675703977881361013738406600768905030706650471715890029559382811832893152270693952937274930096559215528435904049920853017395262396031620481852554447957155992755671954362062157331278290167176593728632190758353340806497821736346783644918441791012185288839502216026102990577726930831334099714510169092733018821799075393154601878130451672128292646705904809683212634531219795537130791387212387852595447083615067545196107250396945952985840999232986904137964085905669689480419096675190370430719543190831786277102523486492303870222824115245517548344801092647299717928904104851820884129507780212047030390829939281976349162381289295899253035795916220689000401217065390177001806023188222536486692120509262125696989250750659063870559128777798123495674586552478319341667008728591218819508089224956020662632179539960608986318979475371824474687702733571545141090755357058213443509374922043084603135435668099368313311132294640500682402134514411078229859740483116769147628363919079430697935580023066245574320298398761848873255003949310228970375865125420575928643207495633914905780134002980972206951747205407675572469792213870035557170156537842376270855260787667490833341228670460229450313328902732440191978503804596787986785280964469541124063948319878209638784273605337538633963529430065035115576598338676955396199749129312738735633755569707304186923249378363086393068506237333281076195886816594739438006335801921474618386660866283381035960316774575981964336641504731706189749095981030763468512773435546125058741531656513539571410687656028594547141683159248130135038402457173645658013390803373554935645969879053115776983492155316991809058964925866731982429021297543753090196547509453662125048526502302855756891304398071773682296385346180202256352763770453068719376432552135257892175072156863705039373268186022527340888226968215646954901584348338290956372768592408809270341615280551131989957891045552578479866868782406586108442327044282379435898003780344455444483332791246980748589432902824150087068831185450460097449150542438863499457736801373654471136313889211909487877050260689883220634682898052629117560513444531874812781387500724110962983671470438977156478188728688878324555870309179970291305093268799871600190845701506858715967126920301797232007200147764729574126028420482529182069109242392399028925509633511747008663950966300962513965440287159326562987737610628032245544077409696987156608364573237906259132195912835469409308656110325556378203588221802990354710016235472430073407228840981968701414281923422281712940286313460896324569744069455277646133055669475237082229315584115900705536481453554298786072891022755536795404707861465033172911902918938628864114207746613104917674843062227973087965895883302505313666658066822552120788582291154097302411389653104703228828135504020993491201707992460434634297712876119442001593759178295667872831275124901666529770726341978399889359870784217790649435599158865785431408397875531232749346663790971859809992038840369342151235612404502155376114907994489580262773086022737529823856382681299341417113968353233443618394323327973544171442185133425295927704674917495383990533620127672120650225049103980181167723022353830563088573171228502516444126459044418731685568805291196558339125249261407267863711072990438889402508651719396325979222579839072422914469623864109898938571068923656045092353560986405765116521288501000491191938865627905649119227202829462595535030132364373773243164906012244688276430502463051229636652849042793419947563488938627725065020866116948438979484996727835175660767120945059469473726799206493813176387922884273814324347217412605555404224399174151748063990519004773051981500521722937198966120068853898500916018966565529731974150865855279084300599113189180360925269450020031554695202076048297369220646082878492377691869065978571172186829800462947172232085960578509038571110332576963709839601429003711158514980653750497567968188126521844014596800258092462908844943343314765857364682242634055534130311388334115718074683703141136601258978990532183762368933864467065676792123085771036704056487804436266449479345024443814734938141673859436610781782223036691853504259796414229955237203374335114169917155636459388492822982262601124030940954908782638412111369772325498088646051818467224380186263837823530535288413154739238263754621474054249987309602989031431689796448330987297001064717839011879527600269331368610739942662361063144495896320473539246441871592277588869971220573592172579380104562676975590794970279648255941445928433932843804247642866240845223510703351511667907343392888858591665959024137041082314563142826093541620557298183151655194648528976810092415348792012776326717214598377506688220803571111306372451570997631997723600829699070398291477413436412492348003368818769158624041973785586522018599204617738891812231014595625144275483667064886266604965424790199624388343888910198919613139272145881205047057314141646551559713576001445621664518504862814559866737928601809080667746451133364758836052804953489232530280148083537052689307908125326007189226151908982102292942020012717310148860046301324526093444476087671741184029513015157761036671599546000279225963639596655622364400159229284570649950165702534415999344272345616430572935098868117113898339492298101303293754607026502473000832070859529678211813836294745882103416915093517377098260811728857016424649850307284597023799278647877150725903573601127468803504343594551313975676634760708291420661138517481156400700179265759618946883069772250987492050367333606582896910157524724764852437538579796128219316232661571289658331884073283481412597174467336913333444798427801848287724546562587424005190753235004948766779913591301613381650959839688117931900850938847517065206606853968855952572286228304641664698365202864797847824233524249046386559113821681489473252084668840326460470484168072367653787632949593861387948574006088268411365769226318402638460963782757302471420248944664470545842075342118440178550801217061802719233009835873019018496278399151929874107587212460952061598165026874769717351101534527091484760070588802238717119791304583180009852448773792012454756639477873249070933741531313335380502300448432839401732921390785686836100349253701845079673972508153210222711058585029349372080534556367632376658682017236063280158401825482048884014120789814973447809941226311166780029023766820836774657053376614966219265989609964013255408937561836687962334935783929333614783287483255534788155848401724203823859381516462467791358796738676477701554606343014788938783194598802067332532760394541405168780132704751816828646932056293935934122955912469817354245688799026187326878941834630075844346704084599184974702343127631739036867685573377503262242638941606510991202266015261565965640863861728966236539191215250614558724990827436496597299067598978731913119168940952339621136745921066628875001181240155921576954856228110791301193864181311111653588389046015184981333367953935679329981027214368054354925647547995653014521928728072874522809702705056917807895920570508700084072950680629145059922430775480547629594734127329712852969520221815192254872459028212313643713499656592444727469601452526233314873331837848940077184284426533871212365694237800123821806097738860044219573745729203387666150074293375746991303272441356769890916018592264095729784053265837363737317286042132787661151443755080620161981609998910140679848925410081675357462783795721717788000873949968223474851675012354004455115603636763850684810622116606887811651872258468157780473984679197541449815191873324537758992887704936140398913251093199755087142990216509487421407685888360835707005878860312196009237573114176493327676510740696388515539754027151688983932548533866844235186456483182623610950327148590877892168016648364088554571361281694502610017123987359198312432597886207535990217583958417014602313872543121830386134043738961304901270908010373329398404762083168326446599918074841977674438485825778354424460231848804102218101272827424659061991074152997383718309881401730855158095809878634315816807692327406308977809443110347741137414927854456490642698092737324362755670099902772516897140656589850446613729695967429556455613994401290414840577365090085195051813786180168689647585172611073960566205221176932008965139962901294751100116200083035908979995149343180621189059471475076382401008486945521395789266571653886007310565022316459432688402127513087496890058828905741638863979237872449929363536951500949411032343951449143916318233707281802301940282713077782754237505855331899101708060852392447692612706546380511590551872492644166701372140352660546072688238110410761421083559538163248531566948750803652494393434624746911431969762518702467169958168854558708890849730301665516639675213935076963932107221692403707139223844983347666320277083956501453235525226005136366792975768214525556594047824007561079504572588781904804594297895979460744718007881411012115965846461724912023631484564662490534085879067431340219386556017210378935837547915932034628935064827746166481602279826098220989447606674733818487269327418879871819374615228588480643538958576112060799082034049797408858443478315886956445888620208375735194150914103910184955110853498080284855443201270002329802937617929201413480424431205743701764465027441907845745680594060775801821474361602097027840981421940124427626390016451053967049503140802663100865653004503353231933500291944864590402356583678263353028954140056446438213092669453168953009181376467856298942037413736485674310017932411988087738168891056022371959647674615561979085322724070528907113502735104929556809600715696704739156566466992201224389593101396497366401737652516647767511807132891770162085838317437395425188412070793014608070189048269770139500348363648360550668033830109493787091231856005069771785439700120498672351186646148800148748626753953828719518989969228042544321447178622731819714213312994449881475074158846945447793360621958503876686300976236265620509105582503541816335056950670494794495903615994846084989892881632809204316940077743667377186732779010820945206327508665044541636913103952355652632028296104548303013352179151297926434505240093847374466576375478056901793891387559035566804413628845008063627287180627461033696504217304008638237171650212434198825649820766805265551399218532285987274773109529455408880982111693025893509998458760776594020431011259199072537243012363370620942495250836568777544640822283069047599927112373121173395247988549656249466578454028986400394572509103952573319759516224467508076891102595578278711972701696296011691932270134101632784995598907378850759389074621362666816181052073622946755470728254196351184775757650418592287164054183281768620289619032411012776670531263766537378195862122835994893744713291788173951671083577101105441575780530995005971556050455582977395209397522152305701539027599363435934744460645272807882369327194588102853552203261348770512617124755383006834315137147883338078404868203316691067957971751392461758012393551336854782442401496736946607091628292829147330327897749242078868656289846151148451629439016423015606711374052818545089255721516416792918200959409997524763086846630632442047013464433128330732500855697382117156332669156553297184006589134508602786802025947219901209670812305438961829680025891092212798097285046065255418805776358142942221527228100863514335408666464121316047787084335059273972820170898151112589415419015297611139867662303473664466537284375744544598542224156211010192290112750858716601860374064522395858426159681312906314094802562000979748333129208026551078360078007970528427081058328673580623954980673187102114982340781844014204458938796610732838538529315247847315456831831882651848879902779809989875788661372947748017319854662155382201680148314877958375225974104044532922100638419334162809701069213722756946304390564673366946236667899113523242672508783198422007672287473196920652436637671331130237527258032486370710492318950112862553423252621288483053717343308567078284633449351907434636605943879453177694660465630124624582784667056984986725245891142934079512458672283706481239541398294746298724311712049371622102918531503225479095205231631323649740495849036723889056298220644624211293089242680446177076633350418126358539182645854150827999374015712992404826346725719614755693082954494552849841667489849401970046195035066122866515930972573778729623565081712720893407877119595822108871929598666410670716057368806411066734095643817745737016511470118619772427431560044005398802321302637492403119346395353021426157446135430590825167788781160672075808125294856584431359543483866081479541559269773945503385126123995474697771992191749112835165260236975269029105424744073617945734374491073051329617632455214462012871559472199336405479184596159103571801193898409451622065969534747108138914050070410283711705574015109135907996490247305871742716323197879670718911619289793481495213651072664321407279075261355574701459290825546731057323526518109059127052137575888954123254393003263163120336048472612526464310011735868085791286751721227727263170770186647423998677237127992650286121460098490240461874174352831712813014886570857831462969525680780393928521991019177101017733243875397311875402484119611373939018585357243897143820721554428315464403550735602441709954779967003044215122229180717053635706931470023312144563967550656037491599268225562690983428292132793620986836051266069442913814424493339314224473562316896272488458214059595024898799704022648801035897341760413562223683533345284399679357956597318411133007501176087285908026912208750399262595761952480595887231381773935714882100617634238719811469288035877374044662642835649860825644252187007755237933432758357947031633687920003778521227133813064595762732755585680162097410219383628889148319805510701425908636691886340242234018504843426398938455036603103633575884008909967723687318780244122584242214975049028052013907424599811153866954031309302231873923243344552784882743191223829731584899884829992215459711114142265602499151091209751999514222020282429175402865938984881914567163123544420693273923350825531023323977694816605230215647996083442353940301255877984961768854664964419480114249706347919002852222687061100741189847799795837028100784415873011004537577759883254321272449093991475603521883995318875383486014068330028757282389906975396852900798000940679769812872604657537601638388861639746637572539663552682202372433407602501565966030959693416037121502490804895489678476880005020288281739760063855380841044205895330557698013597943911133659983768239945744837753016878608600211491107070659081163548682440500487372417569684074906133084722261773780593953476458344149452456952858406973999019544044154917222426679543046152423860568575422548678761131586127930770918307052166023278070324261177316700327501893711493402949011437116768625476787615067569024899243875012688938691914381511036693551442195389486552765639921030434942254264499542334003592324232780337734390202390910644261271240727923433362176077762233112687892026662682617928000300677391470954913152445509643618636786383392273033777214918493297216897562927582734435635476673763378762081034930442622430988482311115349595215890276297023408140577404491627110613677022720683343742003673848216832502350672659095259470016089122559082993839750262640470097126289792543644563298982466276185364007440071736252397570960850243607349980439230481117282360756105664405152848481971880687771718362012829337936700110212518658416683031687297445025014912048188402266008946692807300400215755086429868007702498065360453167102029602472181428344583476835714137900194122755143195636842332421328350316797784319203660719258178872277861181827477841333498940297376519918239048797921020593050129303034452182622752820380895213089426073075039180325428340639044754872822753314932738595794190620694003009156907627094540592505656676972501180495813233847085335441607083335820151455979103595679246950220926856913273003948054682601891489086706540343409937298440935027528766726552044778305683991684224608051629531257768389291088138362138461848881421404594694130942912305010040175136309699767025676790885230533103373643875649639048231035882747237415471887206915214150601590924668705919928421600532778531907678334636902862584662144475119503745957804604054485190222758999851809697525734365573802781073519179414945527290183234228483881389055330885741891159359977332944294358220617560367413977988660171039478817154052510753451359782617039324780539986322985731893397724456926910781897971209853347766090118914534427849782779548461872096248141510095233981593764627736719715328075421160365016152503659323195218525452837284840811875021172426080424648882470322534431042552677076403497112011421135893023451167771002478068551646358319666111571756500174633236840729826926988180114328921402573525931741395048986781736651920524398550901054808382883238906962999162309576832299398454555962579429916693624187142948054565685732619779264315792163617408549842521466560155943666092333413738875619007011651243002098646538254769344179277354233712447814144685870205280746489843689095043121791503817225700351371602596000967804718961706331698052722748450842412098795546889346764308352843348817125173631144317347585441282329289462598755709074692591040615803843725899276967372937313856555664016848024895570537815835671775197533487867917707173770004473695424087894091668996293113471749678680766249870210635041729881783628959974347534295868292472131141394987306046256959764960259379514100130265754775998471773580350529325619804436185278324155482261262028541940802550852336714230945532504789933531680212015401175418077798318640427816518301902800425139840274737070302824328220496785367191734385287839615044858459736945159204604898966122083058235041836246364691403994985194095283276857424385213808240299498941772157631509673088515137931034807100999342512498846029750129209559933688666658191903904199767625036545333610249085343585846442882077400247596362966065607859701769444801872290325219152715318073559843382521071461518450277751347379502807368614762491043102112844520032125455428098667854616854625851705837757765805358859739050791631793185662515997125230333393320712718205303682015089943833357073901236671770323505590298242213862565683470793604797170538300113853656475720522709169535878949286264920982647484916040403072283323704023995302546078516039600431438299118788534647221436356190899101826379697706707066128245814710332694663848807810795125329770875226211172873506438920299845985042481038568597206788452176556715985506774445216266468209984506726109462178952554065172960935098565890651451587823640251548537043831929726225178019335643850854447825760251996238748759627801872506571971036035242725731064179670424070143612139826749147020673007757267512181863137786210781947446177279139546995395030155184773814821180323212343616297830820300407992297111642440238457465818525584076264633759049075788542655796143810697900247140052660754361927124123944135655685916289971467092205334546052005224766848699595301792955204264515839181639740213455826097503357616803001525224815779442764967728788317700128562950314515041876706792446522362435542277586282983791462917113302870453902152059573763335964662966690827571917057145581502244997175453818344642569493323982902100073375466136295028318639336009224003128804862370921519960586786227427482060650914112284779472086618260445549763076799285003645746481054558357888660213782743535112281266595082166688191897045900412160152376462298009066779310599272557638669107305750319381845285043915884847980281864355642325907813673799731005141739950151123605195569838819983356688757438179460450174696501029393931897198624544313525409105566169938282237175493313939477276021973352431333785364239363119104886572786049418886264072461291422713321556680239858439435021028814848042867503340360496411437341025377453863238276530445782406430904710895731828814508422803140069374664192705276499425668325202663716176432512180566906881552184123275328428387463275049533935709495036159502607986468098166475117736933740042762324038145964647792838460193228168981749652654427935964484404290519756093080064623517279405852293202467798364601128141906466631060742697463233063709249390816432403450759771303232451318690891787341658841291872385605272267522647506510459701839344532940573790423747732459130215115760785621619289593339105990588095894587389619894888419409338693305956585841544309128329778318073526604412590637436023814318337109741870392041414786981893106333140736124541140586432897986956159875861817133119713863657315874042650294423463947176247793106466548238460939850716894487812153513662702508203437669156791944371894869891626494794031966724828475566126728027931573319615293841745185820939760001695835558475103382805485897525818951853033537210196386957871913324627828554845293400219712755083068658288286385958659429180007679265396479508292028612803704601580276813287745472369327428240258269978474842679548590958661476132677206604972732405161152427868631184185850759964525408480251335958824381530897864051075319838205086403656381001297975345521199815767731547294736965795347204882479171906404789111481098711580087030179680905460559882690001564119709346216315140615234383090640251459268267002364728342888617904186828794353576316640623930134833546529606892754488152639800959212765441375754469014216095320776284676099130027489047210763971968259115903927433504549732189679539207122971692522047002478753907130598627796016120220196449166075706741129063198949652402208507250649055100326293834705754980536627534830666982989187104146457411605781796459783653547928515708021884671806031845366667528334794457120226720297607024156763980350786375313535828417055989169424723720503562907640451501472770268042965830682808835716805480559707703004149006992891375905331409064402809105681394329822245525885919042533051467898402599186826219732484628746829726903685337556403971480167935132490691060403862826528783077657328861423333678335883728771890452735373306482049317651095856386989005130581250496148701436665785369053979685766935952285756559266871993765303988281548115494508106016388874355532863550806362415717088462978193787807572245387886519449398572174909287569687231200686338039371994735091656956088489986391053013430872709505749545233571473958145815809064807874186451651121463631368721004855856499289805428598142631583355440458084935733435643286001068572282083199105468761368947572372999843434691463592660696192754120467307125726007259906943114957085716339562239417294052034715576476407996156369838424946978368773122964823620721310062215546654251600632186412154993853294485048256528300589838685161180495571927579470347245163101193675517377089804119929762084238818109474217614787597271970675144785347676784675450326274904546648607195242427749607605090646413271301694988608182095307486292801488778534488005823033521404022300090331541221346258294107515851080290848987922608592656900991541195851217247696780738420463010606350910927429709382996837916382561248170265141655230556986738656405668439436868409715874315061660522864376455962073731500404384510260558308521303865662471210839057987245549840650487142789337646293469380223725491244086364322716267153793550216200011360285892609123169819664919846831710114211678398483801591581975712132310117779224524983879946167933655525362033969207688660153537177582096256562252302889346562498594756669971954634703313384416169427492322364546410019916233965639561483721497903626314353165692778006569896610681494513702454720243867910487321886986903750882739706714108031660968463255300859688122902657811486412660715782383571098962353662043982175687082297900297096494252716934878396240522369323416494625828156103960758419316441754907191117606135961852556252457946841957044824258276843554189715210557209715812232210907065393208767247198779442633397108507864366689737545756638608129748384322206913765273823916964285070318432549606649213602608712974856343669729336658116806913612998279158362858084038951698103260004013810685649318155665885480884786821023299775505642738026467864403821225957038149044949783780188609511540320268734848996711467856778339198586488524445696897994648611538423891381313922012000903307101504549456238367993127406243696399204135986653539268438868649338482034255218932661574676749883030017125915955517741147801960199870531584875384889720030505437155754750938014206374893266284369818094265254041413560240562248419836311033277500401157678093060539304105012654269979382175410041214085721589029118574483105830348336806049728559698034682243008105184217118751745276908407917368026775807432887152983464415774061781071523720420444808086271155988680335481295479868458033434081820073176052614619695516402218097035872804250641580879408151121429122970266918871942344635686791249692451285308115504768442241498073052894669760472711059865939543056777607075966116136372832288183196222200923670627593048810561427086183030089500048776732596260490331129227216130682489593355216854733159637384443954224821908881992216586177471789460375007594451622003692646263816120907610507901284263414210018177765491850900237273096356472468592498935966130116872861558397165588361960708702018300775882273248091279189327420926408443060200187270534727990465466414398613643676107965980315709341682711379740785706322937837717358854022895602680424572541462777690350319996760078800240543610509345756999369795217943446520936181294145870660780640434079169667663849026142231001244687690738139532453902103299328924807256383845956783014618687817562099773225261142087632951340082284667384861479047043440929446569034432993575021319883453530219821179031734927047936355864697965527302247394946692983868593123294884786473500871067821295156854110322942055827986574018080527888504714540807002288624055493449953571238033406144999724938502581368822643867643668643638775538181131184157064525824022293835532114484455389712361003525009353423931094013269187715573130543285006933638230123980412576479332567772218303924320858494342847370734605937846283258377386728936783596681395461209747799552349463276436332940614071422570607546380105578621076815410860360522496453549440359410375692280750418019069755611757693987055972052496663206384293779906746122673133183611920248327942976532715749455357826180123089715809129055957327394430188947519776124262102688074489584090625848014774669216585280252492434767011860966018545636964340714138466494323132371238645952430671730512010083034356642162867369220422272559124391184192873550195551693881331017354705986520813716170194271574398828916206010434108410393471165840142162409071676451619189589932425339320722796702928061248314678860719093577537582906185453276220717282162281381375587237909464898041912333582780648365450411338623093704339014004150485807667912443339646752118069410771786762341759941902295951602399861685111449912038784194699864651426211463099294785257384297209779287479799853523089118847828743870667864855746282423368509077383689248574888647897497473744349464222807383099696283621272317564409981853173419919197990614710159899978017542855794450849275851179770233602275321356329736087050150927394124264183564652198940458411748124068796809933523438726984848311063050013442455100559568346689105403997099538237891366356430930666110132567983132737202126746797285690404577464888643330692710509826959241772563205646991837931774709890403626205765775904925934023145881419798372412343683295256099304905567213235124541583874931165697893926275382556520991665975983445088273393618897855570302257529362384238835580598340797607107925448050905772372115827495699408337089280398188356531906704253119976929467144254589024821366425460300918374862058362722981716048554224032092149771283258810859448094826490631759979074692207646516983025183519219900587031962167570954515470077692337865558420249794571506739417985443923420385356069304506292365125218324635786191393466777445508630913271353893910160090115403650543483300075941240911468322018825035882584870593286890279620459364429080394406929111919071368260925045290112154123245220979283702563720427410680039192155732925501001684249644970562321848967698171497850903678265050066585232495710634516356627015308928829902164759033127020298078641261041076543942165757664905508301529340212768581726942081367659553967441951240648561179237738839113352976618641310849488505689168595715932157227488364587218460703079939245299456198632959721873568107226659937327125635125381286654207857968020339119781254609498777228762333006143607272734215725860624693262147900454926335192195189596659031551204634223881789347406171382479080390583352671738706595811463923563337328796769297495306251768221645165118290413728742079956193847891115957072753508350139978071908557079382672433272288829875596855202994131882031770088535653081945716003343014201480232758617830663590235438723033997631433259470784515992084531859062086427885568304173177074200093207061368135607229485945257450205094920254085737345803640922831544483484577020110692409780901991036092056383700382175745561126423457463078441031373697399151001877869597930491557108797687631166007235168404961925851871603331260309802432892193284998696836390388191127719738976911253815240991360747974924617374179810716532515830123070961208634598898221743340642850476731554926257955590596656006893803456850736089530950445882840181195784937139509765067734610604609989392872979482781310058499453734020542964848617501764909131915476492638197469581997390464713076748888925067544940908342921018216786028647383160919418862172364777685932766956521058853529657271106113454424113676018041167154178076214697937836696440038146061608248946584838140501365002438479545791930873925369135465243330710751568925328498400134037679392735718977400832889096171782998192710543551042783539016989208640555783950615839333226367485577424128134397816942271152233054359903646225590144642332556369761129962771787192313389260138258573728927834388805625643956607968272708496330673672247881806971073209511286059827743748925019293807242297784165221120110772534720322217446757554506009777699228778128921360332579300144329941618925418388604807742564436048294813171616140069788061887842408920743051608717297988694075109102514354141015479680671274595405978649896564213019096046807039288148584891849312001317816872431721576606419111019773914091575962331389289122472145324293735772576867414168884306951476126420453666514356857678433632504775855629031699162654026125893565723764112011337964857531734995699093156039332764806654512044517520474548373076100936971689929911215135946442273626386789181800381322140818514410435775609684376347445736742245929958263825620439582084718683133433022070470180606236211776221972366696351659331712537995004733413552889758988475603639427479609424910703232080358115810713935331326975029320964664410214833300657453830488923853568940726483984040683413860174036048840758584335596181550432177826168631169088380045986026669484938461202524758880154396211656196135633386698369670065609699355756726612621598665412042352126151442810890750252352762734648288558193977094514414779400308253565873456455449985170767836700666636955494440656933780601012280759177139312042161894803352181627450536344939750659685463797072339359637746688359574711091302959642056848387320043362026119653791246445152992389941120608279587443659557023596041007658304029952078803056466741182140690225852182058537856110773186957903968361078556048119456739157522141588370112122871829025243645616273656161137302176465157418041201669296529108822119511209756460828372913539143623138542371819747175877864258801301806609748933692071223869610625944145427319925727637700387308614326686210904127125933306429802872531523641569369701341103632021011014180101774687336458517361199291575616882719166794022768156002235881116419412659233801974687588953099381266063199751691474674517856098746388202635672010984058121034994227349337862771700157847961319990459812424139776236258973862938769692376489134553462803884749229356381209804123291315780575759182093797582731392436171416325246437970150709374101639123400631809250665810524119828068817353559871645829545475738320261742502760831478096573604091832396929176795324212094992683025082371703474141147870963495169142142889483554100593449282279561186602443705339822445698715068567838638989620239883410068380528910071086024283671276354633425133053415364053837814620837197838388667385598849092158620689614383519214832475095405422205657625089622986416019315523663474989583463603138171112962495760338695328543036360906187058666582021171611407593791817612716105166599424459701497711684986962210668878138081837520280289563341592950707486016560715648838794566013254615093991069235416575285659635274087103012457006418695616451311080762138156956095745798231253120617295931321924257949910413995656390443238518754866120607454340700653160663989506087109083074878708665715999631019142567511067924791749809586102208365515257130701490803370498308332658411148114273358900614790483549831034326537216372320796213155529805031870897241675849301292185118097317814223558762239752927190672903750545118947443500272078762215571628743264061471470658102696543726445898690874248132847318949552680802482679935446482605506715302376290709134139624253512526497025119239794581717340704227021653623514587738507134950136025948639499130735918078740481994026014516229359193383534927532215096856265320649357066811472751887372636125766319288501792464238886426355215407806888372566310193500780549769789226035156989341636687371463786858884299124592626924104873029565895633477780405433488538347716324380635000809509563163005924215585416128390998053735414111832430853237464730928732561165360832049070121618016970519655500210121049388904208022608937276718402897933291913683645929626992976345608205571483781774598879755459799133058895421006696892062737465011427078808618743588878236848522780129634753611206010092180810302576423382040863694558087300266649043357161459935431338783094971812244759947647804562374086244597363724648020508185097050709638698132140832718330166031141886466931037083961320043119845597479070363337414880680369414113443380673721228451927863200081451550568885458049046537005345228277353711235753051463309939750210490295231533029061552051266235088447445459684380964497672735352587802189607298434023265928648986294657085477306754544995398402204365206311981747422342115346685153221318220685640742201757759341590856896325203466000909876237268949501665917833084224390279881606813908901777194957080287660905822932449516976860718389014707458072240006180421499713807810853828598511603735071253538491051524369266735828959242652715219317201648487138365159946226078958784338747992853872339050319275705242301383805148963948541437258832630237895591593262912987502837681947986702570191867202904154846393089155794049223559062069587638622263042080231876582067600817241312645688654476072510783065582695999374514809501413982859623425997977898926469706866212309768016176328835917826475431725210307299836636022236447730394997817846024574229959537554769570088700073743963348701476643267488853040699828180209926406202102614249768152487262129739489601561397076303395622559794314405936827909925203514052732236196472132627527610667659657781833489690600377168131400618389823477764391118526880742816375111075835502413962712368161995531718069514835147236196474146117723308104028595089822616413068188103330110042116284584049357326930692107043822285323373578801500941133282850049110773827851509739653105011668406795472988085526580024538711016528768049287678762612910085137405826571590633263758794740443743997658063440562342800897058942136545435380018618382386916255776162967541065705131413295384350149354097523402523905708783942004207874609372734477450667870080249142957163063976155560934768246937517472650253216557580980834546473859291867044676938944148095448072038838179454111312971150429532644526607325462406893867191433474826459911294406955414761794807992827559908189164001824179484777215424158661239907624680477006138302100183956899203972453216291795311626424674843626728799956399743331610697187916021912632008014812373582612801637599789566451717272866642095699302102015507265797673226456394767709729052108039675539100502399934900262877099234497613185505557200669742913405460577232820306410005089818539628324563987664631887915502214154413357634641723433212817631468557396319941253484434147500609386966579338893604698536941751249541944254142661507561467921254249944788484713411615400053935728754751277513518531854019924200507723193810150756656744806105661589846160748556135890525909668143058189627584186911091609929587698492505826656420773283896106230974899111373174684850405333256366508201014406966890300465756027142703570300461444143661579439491386089659710476920546472462402494392740989934532004035463409096869785866915384919092868242717672922470265239238996016485314223756741745508439732309224318391773610225468569240655847739306626888601126599533858713775844181060086642534815828930375858176030597399223028352453678187040908653900922277974300464398178628437982138877739868302044705664875536975282938045939158988173450017452723266584162375027359757503800872617777112332498756394809101465682696609681724638906660944035369263558242992198218800477320146013505910306224170363533122920169205391078154305312203684155030654762369907174785557579050007916714843547881148645480577304057961147733833338607442178717255442480073763073773683062876610806360444994579298487860512246914439376752125354064055026876999461573085906953904437962609366131508386522789222923825044313234848514671748043886847854599293836353995646567482055290113133995709969818262321337695081174954627809306504714564410098916555598671051968273078997285116535533048826121738391285417743611495490294580015070841434989763067995370143277112057679456325049237484611463966046635712540113705104375359072095521713735345719399055805824016820169619963108254563793055587392549979766872422052931934540895240645088416229313523705282645507706714085022436642582862898997952831615372335564001971866256981112910672395275281789526794047051654783283422526846799704937848105383220202311572698739321943337190436334411562683962214813919722583333814430291553306882046612489282313189097647475287941443153027437837406287222434389824549921638788071997990459187705091731750451616934675410849423609672814179432343873203622784647207051936782256093821907507276425072181542986178213298483205194463471403915966491989633080485823931446259577918509354139524712540660439233854381793629641048163341902362292063460932463718894463846691495845007662807782213571258078391526756244150992014235523038517949176519086896136189912441539748574080231545598788195014968041939263942509166626735019314674588887889265348725410386568191136334044851399038441281232158316120631664137845169804607056571330641451400446661436560305641079572301176845904754873069565206919825377114393588604349023126838150405771454574525248298132884323287606735154712051898580826206560563729082338750832701234971967461444172848646335717919142669228993325728364670641787454665592415997072472941259763662160082492725985248640093510650369015222360713976276797059044962292625538020439488591149348396793589732692002273691542424110934400462309251087944904443042653806523192545874920886378258546957298809532664522093562211378459458546502015970842915827894108877249275945166810734072342972548462132081011634652941780764142225741638950028698365868040628328337322025841911884624165353119908478022971239906606174818346460695927378750988158099035750780866128977976556275878165390459890681546849068350143016306791086600496782767637963454399266068482008573814584578079321113612033823318475207751982440541166967920322294163394340800779409152369551194133740741456223524453515818806570215331450108986389429128380120350364497999033071608353611980157392309968626138584913635663011025022019849290457453411300554791736221603994985740086029306768627623367421475794086490817103317346751864671261100262259772942847285034201209558882711569547408948323262471225396195248990357944380246005385190553751662635608043075155791844143910280848937930023949515116111257056826268334110678620020215915218634906170140808970063014555674605656117184514450543592232465630056670103444677532326591575160785106893573226567471806159979141837887001932472778786286058019053195200221053128822601302424976858115101516742062947820666858890465129304902245301443881295996299434190585151169762478359252205351570442887731604169869231548613631145958276229555263371302747107394877822295725348377172660402402420685528487573146721203605275161911384924675156613863575205993401838656875036878594359992843915237530626273140487248960897472553093560704518046036832477888543000574964152282009547870427411908602802732697585379262698845883759733053408038283126516162699928845183485114990807667789603296203047842142499409835491381438831823204031404473168903587803425495645781836718362672031836712389288733653685811703634702798191621618379801307242786694156128454778536638060301786063635877274662726756491669844867712328810652707660945057946076705066745951890002903320738197216822900781063613299149029420210876036415322022647177547567298459644701167876505541072046891716516919676797657300386340752040202610477708421324026829810312380618554399535940408710640451970709387130512499746542058361963057690418795070715904908499635702559875402574637404043914438203035960081922063198724392579439520900636067053851516000580964270300377462404193216005144288472401479005347508948685436021586953964149210296184934211039850229077895118335756594860741140977667447403923306313788952691774547420868642721878767817708522301108431366894164311061857072820806065871501790324915493276254391778092047225816231904839384495781202857905647718242191102200147847918295939318905114804707263068451538979769398661536200805802799108505287030176933010644210521528113526920370888815596347401306677680049434625180548805901871500896650995180506897882289480408552270230922483284087349688178560766600076433204399052500151820357950791491753573324254846786492604683625262426356583591859009213544099242418646609482341828067321421719398507744993033251875910880113455419343065989318021454286594577193143410705786921898785773776647872681428881776236907423996076309326037450481420791405434092295445489969916521857844650672188463176122817843767969393094731683920821844021710324369528014157328090881793319444580932041545999145247856705508025799837834244541767205264773748807901674305906911967005673384825435670854302329424404037325965937719486848920464933388119029306863897076991461686677791870581949896112805690042217787858526600287100545804797541125254669826070590227958179531599376671730039803212646391922624473591049083947214016127250170664185425133262868113389292401304727563106067296422682828555417508634416597806879142214675036117827862276545453686615680551263158805366249923286150905079792701875819708096852932571247702367630821620507630990124743598576585475647917495545733861367984121726783358093055014592076222278925403231372376749046851157320409662328109411098586637355680225469224786138695712634171424727371497077454186628909532997092314256049953768259582340228528283760534773929405341728202401827766027675264202579006690140836242839158921148241061143419281111376791546389794871805662942491991337487517725689516763202891935428798364990380632081530882798738182998782358197407851543756199281863429247182375216594128952153221777388007407324425664387746152359359499458775893280887193234435033821182825083551154148841381961578455295589230400165835950460655589772200864624978730140476799860055358248511968124401555560080347199981679387304490085742446875445593644619015501069546825632259843862230673049962173620936379088552943642549728876300040583724600658175568251837046359895431671959922671014702159813240378383084067186650521090613759671732779682252582409803175865490337869456229721099347409979463918327910492311675145175996255121176312981520007777377470789267555064317210022672040635697406656979097239576957855598455206035302439576364990596961254042304899236978207294721217164060074288822738601189483372559283293697483282729205864311886298897409485123198164494963903585099402353689258174934968979583048294963172058303039887431377298634949599335730117558403871289687645411408406253758623429983509153438797646465978018318985425094751126890094705551067344931792095670743482069425119113268868672139788620571313178229517698265812413199269337386339169189094255757807353089797663136540369946797376234705930895314189300402344808432145269685256289303612580097542291703004680635268902679160873746741966446531798792159100372066595185970273599273099022315436594019622788662019376588809888542100534276592296862648473977896552230129841145467491833400957337552102794081471610146263493465790952560529118366091848847952363651099824971956759236793241257489641097574391659289674588740592107881073777016479792481080924081132688047815049137148187639937338739183379696823453424333473229936082557675869711863831577915401943553729295675510909554900952848705722119317235481396583464386776982735346923790554240001766633293267477275912287276287777479570935537033761181352762877463200748207239679629282444844971438213112642563660352219574940883102719061092113456910650103192720287396275787125688330541941048036078374331823003417945184958149035977991199520925314307625773077704590340617791350467890623903239029490687155627996418785058345163578041274319282016006441121887328000406010114185902577682064908043921659397686764974541610661139753722423238920257713952534294311435113556964058463484660603470217590157806268138658610630848602108923241833632602698938795455199481590929707073551993674488816086594970039729896256905799989836408543707827572804728942322427654471501452953265236603224796879446022437292529755243085407005473303808235828826836371232604803138019320440941877886183101730320432713880868064248382280936317828544631027423399151944567127382136976971799203215497369290176832319463760552691624767515405485822740535860162841007991191077891354919256455193683397735742258382777526430368556432558315736043135633392399445709059501438366656717773070499971804442036531170631297458503762176012630862357317869171948528622042677366585815920258030826231880669373946319116514480569174642349252062658995281980141000980841481310015354408090145714873398880451162018690230398218147474458868220074815099870206258391371191517568160803880972332046285977820682535419653302948579527291099939140923076874731889196705094658760013782246847591745290856525651342015176896773009099113526470778653225657849542187359010278381171196310096136523962920397420111257806123550930922160350602507191749864057693216267063610335309016730021020098949608926649774019476914309827200086977513971109411520991420499606145949464534666181614032870385495991087639058293745402783317155568975236918968765072953923342328696996404844709966982268336979327226197054933720133860310581880109631684575862364946788094342442043961988745060208768185057982712057567627660627954184901037137399500784427061294972147244995647290846269730213991826101590729939939609511226287793537950270132156780771849289018962381462609077647753034499297176583857796546023571618683017224084141744217988606496157635445640219188984678272679459505779080994067867987112951148372831373440242606660548069185778388594239713004967394527076503860622500557172232160528019761497385851465010292319840605573703510814485478455572536686001616335819938341077133175030247489553693871534417279190755085273798300020862789519055404530798418618878747486848462274060546421537995764847498396177589292412838882280463837734930947200968753695680452020952189894050297560103370160198719521001674017072868156296481421436593882447244361381004036529474930353858392983602989113060316454970696212125232712898780132443728327813835853368701294105420949599148419272774333192095048858390154845396099528986903857915790297063286169259802244383706980374597614878846613772697478700097498465314025947537057068010900290442505878350018792781976136002527747548703924887797277732841228901769960518861843789190742530382538260530939966467957943106114545928250434862457744597783254069856906568789687305545010343322219137278233666875306309070267070812490285906039459742380262691558213209996363642386693311020723464562938068383301219618017221077896494045281694964396035395574695469055925532623466773224794493558345378506982093779090121483930517553219750724829640041594155108600453032168556240057353313923930535402895310604113189551978600433587132311511844253373179018345004032460409400818111485463999990139226617050555769307141914374690609049752801019463564591218335239488314511816452743353872402651104981756568071821981282222436841683235481661066429944015304681087252672898401360450255319771103013491562886021941313524773297263030547928532842070652952602939569003848603391796113569600466415167566667095539484620130608361402625646943848283829007388805448798361398808744015630104485176793272453320496537772161292513765245890044811179142557171568204947523920345431635111749074984078702339409853065401831376890561438518388092962727564511830006460414150766928639620614424991338054594052942569133359338590353879807676139289677459049066335278011844086093916947173454525340122351294259858454436239459533952625473324247726100402146832513073159433166378482769644295554007031793131186277457946505217410706351047273326234058073955639156154029297703569629324905891324554996000363052237461987215629231927256458320027467004282347624281849517737945082333995552424108943439459440917665451095423451147253541153397279923930236726423229249298591207495448953339399134727036598957746244964044289759723274431205003017740565059974608002487947659409214926152555986058828537627763011483878912539108455205562622377491245553721967183832024042009410928213305569153335845065000249584229352187629362610419819765965942603669262961954837135832493290828131332936539478518507150893130948155672437062227392354396599499340292512190985810823326585469832374636139430128908082281273294256617971179486155091271009103758254420926083600960080770430285112048675996986268487361350850563681984206722224714933452371489513274307127583393448098238796076103384911191511892153144176745198213995721130797366644774733468868020251055225675226839014054603646079566160724145715682034494109261366348695558416949190017819368838070092374752146959693509488369153446979584007225980899486742534838419021745871228267142528729871984210843644530386410088489975874351712117804870060856838223583230558207926909857841821278451739234469273138150659672626432659254311543536643519757017075480216247584022633331880827076553536520828953755363301980964675790211020890356721031802153160936462285328560116281094905720340408038894374029098990327858703604411040635991406301725258994481764399836008118452545788537161424816333685365815410119239086504313083125722817707473572209440152035913251407902247894893505378997675960761230350130001057729892102472638699945664549328469073913982638140654282170471243320148399800379987685856278309930262344924675107375417618744279263505766518776671617908475797655146633897809716171700138822636107455585218896942233458206171901666725860641430842554298027167781087579623388756533424697404923350014267799072662917411636462138015578608817904920323578785004179537936281537387492570575908884299873614115929243905374339796404444333487472390493903134404734297569512774723100461663671063357018068936353688153794563699603056795079353255372439968891317499363571198085842601507449551289448292657789255734144951990004321554656670702168891946122881461908267188834677118566034951972468590947502268647224540979328058408533751652595425103418687802173342070446751319991215231869146022052295674105597755524478294453826630813729811009911246008080233310025243457732590631970647135928139827757252284232639782462747082478940959027495748671870179301788495295123768618389721755699728789535137079382494526499402332174387150384353230256118823865375036116659296190149295142624871777738364793059051062187886391395635105751064250973202970523810797623636354651845482291493883494539231390278947736828053266636978803268896995754292255650110319517453356817367725644580388839227311679305835783196335329184830805769511272165039068656920441036554813509719639245176934736971465735316846500628998556291034994777263516135986790731750513000769790922590572310419013471482661240626767432847066711928562283326616177502639017228873395669080923548791512167489289775821976110165006075930512746432931866703128848678607530092969348157032229216985821134155539104278146974490387324850055810172884172326114644751274018941343118781400525734321868864589561074056340223700704748235921476717268006509264940664631071247935431521404103165735440045185000737920896555376914564542617962283943604516765503353317610801868721294017101831174813495872340293723975148143841491930061440879948877153986974733369837038352236789725289325179703094551292975759774154259108727262127284969964805420288157425294190529014459924386767930365887845129899444480482146087852008899138298731702637544416334220519811203610653900337796289355767102022929310730028593120517307345947534025012413334714536389324109160881808905102682886050872932034250652281698872718795297855269003314485783525930631191651339685598906384663616656470360256012025113675364369586331989015236987291445736618006921620610038910980394415133988297803741170043990170112364530381688588258340646885881869803048360605030352767096816579976076570858262559453156305954251283392037337748013705096052444511341833181951936406878041897096217912935519276796510918861355453558068135869286273068878507582173381717733166966658365198233589690828875495803869691788652581754449639154694230009169942675124294169143432239172375489600521025549562749762014803501507593672955869788086427821716932194510626856163815579480398153105904931829604406427153103231273607638198441981114352744879891623284879237474868135091691022017624857242745546559156881817246570798220659936509220574556714618396590606178377474346838083393358564170404063110521278304340558304002314103180542541698796099694917084980308891806537318058316088105101555267085463211916398514726597078146109638225026467302082095783386577881019117734262225499914207800520147437850099599048036155288362210950695351143790484535707652600028202757503653911744099850155076864486661598943070081937315931954653846624558478384680401692147280573064984389704163430480275591531687511494913664603355802057527111229435662116046334045867855562609322165505965949569780767106927103987773399246783768729443687618559034894180731239472971129317733548473765671518375604220521513477866133045183067075449433032978284546912510889257139930862479923513047912641487939501621759078701228391491870621982097067373180452333080080644310253258242314924868472721900063747818639810477279478372249953005355452005810724788802436503653481519101388127551847169537712898644655608512165834671189851903735695857376412263477098156973805513372894745936576518770126757057192325313788878056143624663148934173309026561268069673337171001651653228949799187205085977802905649074059076519048300071106252575919066543195468170566743252364235559399133235469755941832129220849445012866460930150577741240008262082730509326963571221874963287216776788329714678553948789219000668803513453178235367524865617468248908651309407590081497557618487049467235036954122811822951233761886392393573999458304492250830475351208056853777559077861394705899129439797710656054879331298351281010433000201544823947190153692413333792853053318494138230431358711215809533667755428857853232597915906084696778163985770572285837879405278089753482627338594336178800057716988771800082860666752669959085044357215210942541703961855924599126938888040632231279809245360994691715298650656340459673695322741480490798464875551728228368282084926016568092356428417884708423326829923917438247508912691095461083932607712445214271425747211333935955083389444622997743143022370624184940705013977472478064009571678774471702529255955912185024335683826034608403058873197716223971273134049069762517397004291620763792241343209151963997718956903330943068601493016793714461290851805046091507089924604879531779867095347673291276100267227318926862713158651834588793813107079359026301751729326983003770567138502245407568845537084174193749037721343488298036391609130845938375877352130266942074589057970660146609485223196657639256393420999742259795122504930666742047184667803904933254964609999883685970721424310723552935409750058310863062799105583176215939795368338154315029236460724869450596800487001373526778678401336530972534149956474593952233260283205795909465980133214370557926745379987022438263809424632957845058600024639673661236894065197393209140322742072902418531792956321744773696733731940974089588181162307888605140815471028444241434937884524319195470926459145788304136992526922097854805943711702683098038635400098909986013446377653198528460982063639163477564189144458751324132755425672540164764866458669171753490417211890620751127514491096349957541037208489284981799895687473937370119693631493735332533358050292288772021990415411585824834497334216490373402856676941880243303122963699678075447116541791672358223898992998391781878943847032557946908848420371226092095768720957207315215027252915691836313080515860180142555272386499107928727681685501372710784092765114998757798427939583216910533997870727533727627148302978592122397388083023910348118265266864684404892286110532317874086430973724179221147808141024439391058706711699348743377509377841253922536582773101678456233071466944262652929571928197671840979608377924183477401339351283189151771642522642399890301747048652315385186291644226219261922870551617778085851793047078418940364557452746367072333336527822873560855603042907130693429168777436552913088277057721973228344767031252539412977752692496319240937788011207026003422661365383388128019123344228804076412363696351577566698267897749687467919918819934582716298130530629812085411879868163808210469069479897584269024476861224918025397874846375600574002940198435838615671303305654582884195928374915887776791794829747661493863125673965646260386224258360802622971451654329749380818126774214523874405840945726248838009196480556461143711499901846579167112737398198370698819743493027978593578166770722166990363051713790720913517158308188948989952014194303773427406499269776939998374935357226214870155918920091644592864692269224338311024790289565769275308883498118438761105531099855952734758734575008665607151970464902874836044487828434600619550202046510634806308186126344724014079610313003593029444580891470606569922067333025958924474500632348681516907035154875145088697732508536456553181122523282354433013510367444789086747368799035237978823560424190898125546401484279822813295562909506755324011847468478121762125608927715969106460176807502917489041174421618582863625105149031693939963995471580425607004812237810168642695400564226989651232473846597912361436879667905332986432356072434079952610789035681544000001816724299083225156173744327960095697640711434553976931779688859217971215468070096384066181165288792428024974711622342348653685818508701350893497420777100405481374128136422886047472463703649160050148537985972722710372069846229001382090886815051353351909156478591058561335906295260825300767477950696052499729349882036160772975243481333336867896293614580696399595728254150940325331125093933850728348355377309134885102264263037517087297051613031436013096852617109315947180611970653713983057267825036121383767844789756923921750392764241117772413862113865428006902756534332805618420704610329087517875600137042089591295606673603154437189644818415693155123654580060600202067051441868618539951830481430713994120732165459101385661219857877994328765248776214746161753439425222159978858051158754588495472387040560277152901084781676982199537068714547877076648588186242515881908024971364479071037455609150019945724793359210488260167483217879723263160284918958193596723367386737492830305065668826005150955389294053367423067557652016269801204291662866603757075328200351727944073557632008217228103864830679495678171750200818955741661466478769455632387181725919361469492952050037109326992844056346318001020112209129277049497625236810255498512505358533225928124021371224899058583340449304699971895911094255702187402193042302414111968225623416740839805379791389793974594860748618643214788170109906529678387869766058831724792246947343055810728420452159295595975977649525447804962139227224945315677506153663270485329387924568416738572390913154096828240561852893638298891422402147895791132775190724040273319429202735134177600842667305466092371398499487536397834298852268223309385972926081081098420467634024739906545632422322787671646671541697479653135733793585568077013791520098812634103119228306293558534575740561944871852918369493437952444715311668603351579577565670778514669636041334650773254215116453846022783761289402576485360711732820195756513996463933325959457304134753547640677875517120191944194466539009948018932733042260666898069748923540366116597438455709681557874003643040314268699353255094449372049967135719583329890691632645851054510415481685547652763275903898309308020660605495579942082103615566951096767618292143736335413922028844523210846373098158535479184618184925801520995900151681323706848418723719737340932695288683275979718032968078173288023069751631604253833574874667058915729215538968858714310973433295254021544674581327242085419379169500662426040684292105918612369042872610464608992615308474677684969097245241445206332056837113833138790293184913847262924056030967297731507937277861971868138616194861968126930071094163703068064705505021536815227208584928662350548215831301606945538492710332891872737005738707393607184892734532129328120732826663202306506588198606531213784668308306047966998255219744096981269039175026792272348859776440530832925549863484226381080863132858130228814244030806070241575045607297483571743516447846663218556034622181449720178523823445340794147974281782959942561922055250342283891324969316316363973182417006839205400625126850651823926837519803434968073095215139024473832503219643932352332526652665212259301809119316403452673194341864245975720179019831289559791634782043766800765319061522961681140484715570192828780972657408366401081638253320127181566230324195167322516260985641428346272431872300153527544542402549836056226677826787829847487056220461764478461157396364471704461352750208942733826609098514362768931871794617667044421727603237516663482180879079997851678543326713471012033153375880831678934778319668828051044407720103670433678838150546321440505105754869999814960381708514359136063502794315655205255761201602995928178688294384355633770504954623092445244929010682265623854607054478789361926670278335621180398423734378151767149442448620039221422772887317652196794221856928516034988230857781982986392610062155671378774069268895620139806558283601458205735232165048456741140720619910109279324030060993835192489196762754101000683601673656860886577260418953578327990255190718615654598027080347051724820955756013047802497879245435340490280419415413789675854315007536924395593536526657368615283973845648939063145362719502853682684034126298466081408382417812528350009261734269099596932573389731951933241552861202707662949699750443402005513333878958371194110701504657299413423853399735402969577303553673920222983833813663579531275097267952925694053376649369461554476109386138085075851290175514451285531773322996674083407776964565976665136780091540247764428156001915330653896827770835826126739516654036180553694723992305327686371805724322253386819195946450060891020041012684908766876348657722892295238927043673464325832105564236578982938994717457031045797416078454566825419874011558990787973008249214736247235467820421290503562002037280505112317588956905808575409219976694545298038787788371535706903395272965170834042888695591853129092821034662904092396525375903063563307573608229200956732793110661503136888369616687451939833052655559421383247409397281726414797032681412362873010202221479279206042474365487177097410209839048617134918562834719923801887923813952813418840055040078546813805607120310345443573256893204627397814099196898734893473520790227336730688195454606731109571701453837438671919194445819200906128001953502572423850570198489819051966344434487527811810768293418450470487621137725981920887562683744254397404690236703882845682732821849994487844639483650916914748825191800907035004105110057182979287340014169574590543463409431668693343577735078316672191235062150716333853050562491081696810584189392507189462459499543089466954660701836040250798343896226484428048631469420809825104941625330749323342423480490424084355270333962779039604420817221458744549585779331998116215752789257967504307025004288368631733531183609054774151373949477279187680889351451600751397242914983367012118651379648010828573229134849517563836123375891602504408655386811055408173839438906533207763085585284003214430355139941043053118680840996985314644208229006550024880226725675844917850086052364768194704302118309328428105548202043708038249125562990367696999544473381280100042699516159718052824257657808186070930982314345175719181351037426547460359244181861898252029836441131223667813279350126416852117222717043547814130229487565576796313058628370977471473723728475567388970342874467636455953057234582630079062596862864428293891020162074362769411702807227034268057553904062041216614283127122434299822466441666861922323080018427309286139461396108302642545269361649435380714127878191526396089007122999364730391048694175127456042532835063735045595495368223347711858250928889401404824632543078746109755826419995382151730368068902300054587227247947720699411691868162261955174122623612663645237214532512418735717015155124284852696946441221426427879778940175790050628861158676512050499446434380867974234293107725007574555309001065167924707347074729273434300540652533734328815131125945341951878614478234758755754294640845278819969343828288313624919745554037399285046561496022481107699356382226418442349531363807287125185760821052357180728100981887937138795690206394032713665034024498813577501017370521748754825242496700063810939407217402526080534940847659292359700833947025101383388502114273187389405692681066156966519991209991376667667250717282149488013342036289615662720736681195320086202709469958940771411153782944624583942928230478318818965258755597757325441310548519111601020162117964413749806338000394621160911539059760983421296003933397099286114868258538270370719309584792810696652031191194645952685315403459385892127612650777196891925549491551300096712171776854459089761069238395874006869980620017716487844315298168739364934098331379005031293561757307963836666574977266609247433167562414242486252339228141507929334269497561202787900202964675153991011510853499510181365044124555859573756745095850341848902316027964768515605412822233753500397522072804370687801779122004831476115522168221718800326845024630590868420383752767342297875762007309546142547146034726260442734441279753304464561432643270936694176309213357113307054097350067694552230276769424453580496793565449235362032935540201507964328224825841001878154639824245423922493965150924714555408673693591213478479562153994865030125999492544030158112348704465541997827057071878873022777734518771588884815663461009952113652492834129072863715433926854146548031164978189246768295989910549936686977122928357435146139230663637415077016251804764144536401832893703311226779911619220294380576695830885467151299115514161299400683113801021281051007823830765808096149645632088078490869949407950860748727988231085116670012146891504443546894507052825525398642502119674419432710825864568558979217319723063263179385409961060593409003173863736448074052214132623531606838662136387876799279098402193076062978090582852227749329945446760697335501708543001565741535200588023742431248850437468608439573887728957186970762156846961068018979566544111466905809123443924075702033897001653335499730670105400708609660082015212872315711234991192178221491706955804962438538804246527663659802871538674340400571655493679565386553919605726282250797196358683821722843703933536806330892477352001785393848684926907319007028647569323289021302473482727275705928086313410876679757680521568344827537369003539996976368008946139054180874787566148010583448604453111245298590459860700264770618529567457271354854660032002802226365683652864930770762147591929124843544441332694995374210892716319213401587070543859013792701275974685454145684685944982601580353411919052146391746136730585828944342622856756860666013417576274170095359674582128814515038521400805104636146434632010505976547638308806367514311522602363391436807659450923764413587449998029643103653465355689011722576350654072002035246009745983608619961855391980898151121742491879720740822939512306307668873857041354739897725312309351004212628356320234306339399654382183753587042357588081094132502630761943622085173789009265349187033897425944367418563551027167657565817859473836647800075007407243712674374974160383691756687387804391360479268708751280964067406645807198110547744120115689276338793437774548104335742001282479144526903328553837162695514600145075773710715754676846711635959563797435579069665418325752190145787718950134406816491727685680905564274340830287891762897976164652335191549056779158097198396991027723582461360040409139636574895400732989578658872216844392527599152079372865776044378306918700036037053158803297987506454290121652851082915787803871315801832986131790777911534789840062113988709808607762451365908947243925713472058388976712557772191818559578636767451878136340307767396379742126632865096837552862999509711041131363728649725014123055137180176741784066635278580964986104582706360870381697107872492189702909483385826090352813080727805695491934828312658168248875598964362328114597003043879377527537283824637720646525805476161288282446493063145772853648990656466037997289426212479718392910700028462419456147002648158569385271908411928187394126886603314663784875318263113035279976666348916904835518166446473723997319768194712244581178738994909825732070880795736512409917414545310743411796667114139319288613501754442291730181729689853673178129864564747698997228298598562567915738803365230270201530747873276805654076525844360759121590264952944757864440756310559067009488822645873456846841148291072319221969783184070830241160550838508799474280132583310589716272192986346179617379766042384921510105640050109525614255237488105009302359858839448591107889457720935932439233598081994474490079860650346459885167788829927546924555891290071170339018431897634056958649505966911864196375839252746472157602302965923160176649431495186617185972407866627177339404743386036939616432647818880083542027066725483790330653586543514347021393095078173955444955099587265327499468881026633656705937354315602186021374477641701912366013667177447786182865070575406464230761655686676042454963150119358968090172114922991788322134643988763503648602252799496784152129981895612165498395187460007531368244762490847922776490374254130056221114342189877210394837624693258759481675556987212017081662456150500302810388910594299476806162827385596288746557916684357485998738269219002566527009594760241999186096323527692973028509249813441169030390779477144463088387481223655821796595712644774198802047516065690371436001108718864279823497992933498575872218312691515248765293631338978846048195606008088936975053561430816782564237084845434245328833272671800307368768231696854301794200923917652976093718370218340649700643661632559603656114051285900314815989396001424691390226767980153385818137834944469607220668797359734742538109465817873443600259702527910833284591672394779632627582097136894965340821168000466927210923951692272477774478928323341375998490519832749713011048243883838681788814106113552702481501606429347155495692558402123182201591742821652937667399105911925980825820974015612821518806038362600961964663914115148089851883280037019851074881516418005942095749516330713378370842347452553115688965853635095461082642464425302426900653000808213561781705434477546912749411723271468706739473504510839418989864387318743707355892340471551132807923551600692893980435354664127513266830481320974958755615272611365128488926666659973994040158040712987279339853975023667889040987009220705774135440577429886962236670780011991940275230803330394985010276274489826526181907581498917587252106374493841010870525675066165497789976615242674009589842145792013291979793403620793459899695240383574579620045606594637506572360152845347919788113111865248235388099225815917748137749552254437859704119794906614247957746686023572677006904384736927204012333594872655127424562981556590820425891381751099052540852444531089271729023828825723899675972095556869825887916545365285061866955717792346264045539266001568536895249660389100112079041995482972116776688736779717567649629151109191907244205919007961862758981089596930033151554135080304951347572908486438508381224846390330933335486998719916139228644531026063922805557221111476415275541046272950626136747149080344652086995318614920486292394754451692655543322183424632526000029910964141669439045342834107663359379894296186558534140878101358498017598763160184294623261993157784114927772554035750444808973126356721467540916762861060254189057645165807681259845183282191515398022455867267234012369692111717377368237036133587182981420778416318866182011614514180441004226635982625089711036486409341576095669488091168396296938713274503577270877000558320808593210226525536075203340889266528288677308302792582171558299699720617080491405057812601567721375335028306358115729719760460001586707841244731494577556917997001160046377908488401976338367010581005613559755066261721751853491631697535322332085898654384030214565711639597287705686566995884997699678106499664009526231624281740604855112516496168848254067558941019142118732493517963870154552290721387774648915066400938614705682487469763538484440257209528643394781312818341456297200798558643356675373240513078731198744985554203629721131707072858677166210532250751782211617138807784287406871219519312340388684388445215161527821735555832312145628182114357896764194638778955040833691124887491360990518027840342159205438693242251704205671708452470864372270826583262947556227937135235517221153626881972919047553752414961394874992600076832654510926862740174541030565046845984125152674671108454751295505299362656614664332226456000346145946642086272502944900391293293660141211600698899593437139627558798386629399653936317392684843378857037816150840002633356656700193020013733726379770222325153359391006272070980406386795686034584580073888111158394529849923800686861038497669315795173979852418241483490514515130206153863103946788571784343559105761492968214696623803334583098405565601607630725623452710759647808593296735760096410468288756785897967721538484019624628666132231516167339390413275391193693615667185059568323007347715659810839990589035746076979183383007379222733321169418762336712923421286553393883207357554234065432645236660174665018142587848250197189447856557850148495401524290430178515091220026336080262867114141127732006944775354715583231861592038570921875784122028746876009492187086489025461659396730468983892119662840316719063566010709127011526086014739388200119142540090795751188606472210933206205091403187420457194637833601842143400308372581398133348243572561049656620483185182144986083755323972849794358140960453769791599878669219434826244659769902907570784263906745641947019819025760567268073910940715324150298918798303020262808426914035649070537527083870648353579881242718599518721842465269052846485902499850061149503021467340077623461063964266774115106996382183850875013605788463522948282017557638310830454465153668991582450773856912576351811752675830780313797288039042251568818264207793162656404114000300436284950688088756332552923709988281585128077304165066958276046539380888154691679184939340527553608389406951516133679362738897847926292957418706701745148515736655676248101909870087023101327236963072612236322299574598236281955874822726045705869701670317044695381806787814267900563550494905114831154146063579140588098409023895934088901372648430931197562141589636704134083591021662275666233903785773842725936319303979121426667484201595399662343077553901461495020333302853535506749102352737145981777393813160492197137013370377127438197350026275330412158884336113345198964376082961169495849301424545391497246119527535078298945361853118414745953743348508060088743560829261532982642743855998718700309203192052855745710833308983670402053973786553236390104095650604977650816291309051435057545164690347606392365347593746365502576394179547605828135900317601978067860060179788476842035930073992024734064671405972466862681722926553655260076948721013899404355370882787068396555225736825662065258844499515469678430180195468177016495812873391428705986677732961867083366942094589443819756227507725520933560659561026597874092538943477893548614040375828378369060935133243601877672844359091757223294472439505234725615999284498091830832193133993300740701142933264090625012550022054937081243454477179714314466138888059083029885410615543040871607148991832666599530036328703752547661460191698042986395049592369013887529032763457915936928477081629141457247495251038134359475735362441850926198215396533191728311196296874861545360544293874471776737456097787774381753391905958893889425640591066203613154416111559632952954599468359617378936234624803153378576908604080196182082539864879972251776391686057478593852741932230382042081907987352944979807864639159771631412197879435874409295753183210440213830036886327169429107929986852702573398375751413122478347506577737478230188675980832864269061540066677700399204933767329238133768601583737241245518761201248410045940274923752037064689937328374685277585459966941707061683214988327538048877808448232650488955291219828008648757648632778417135604110156209795488514574514172402474843094209220486053726216509841324882300616684571855284968479202613681314490877909938263849454979134309352720947350282199801911660209317352020973631951480193293165941728722412150408772325693665355536995113709240226169940123107264008211092569639235499169229890857102210893282423757869057517619815373868816569184854340580077069120586917487638756495261988522823960082753995008270546060484748555561385518481736290604854363892053834499183105195796030501705406081077347845944086890908243218033160266834530613285716174300744750784439280589693812852287051090219566525433454816147359887831456675497915554523817331157956141645259898265505517984395019690111961982965759029551580751786702596400216418574077667662525764449104855380536185630560276280951850419097045388933913328558801603260160362060271955116150033080891665016712915018577749168146911301797167550513367824351531939480724204110424524387623457556850129779094953539741914094497682892873354823743322617051386034144652488490082756629265532072147579691481028120028785932276385891337977219779573321493110714195838217939915184182529164932991758436160559542613153577352112486517549502733498161550434649667507357563458632446954248607486401595643836139905945707729706892305804470722145316472359559023569079094406886566402993448946492721633237808998014851806824165597340929187547561917161010765456903563558615936532529575973203733934135475611676048912771963922103937574599935561686288454168146813953785522268204199676315770869122602446965669753427037006270963983911237477810269568873598704179892337686081933985733076322226713749798160439651647031754243443008078242549306439985659598096458132379151322518456529533314049612758773299981061300080883640826502144836700145059251338466990732409968386243536048334372085505010488520598018598850451888118135662752712611207609373895808432948777511644286892113182424120873658212585146135554247835157010666203174676746504421572684165957119725179602198322378235019292422167174942229216391325660382202348804815868412555774910864985883399569744496834738363830645774885018627556246102099526940652207349783808263968275861439564075521813460615061014596847427167891802438392125073187333536153981431038377613946166113918920876384059526121576336758509765785075678409196611850328773993710207103553570207530955975220308872712634219183773294288900170327769705023046249451372080186993860544558415739234613786505622349705949966490148046605329455305788918416547466048816365227412063927160601764206090388884563820087808378140285014083346254441061651721398543621866885903705873594622600370870878446362011514559906679563073717739581593167686843816534046660812535800163800392125345157583364590291145133560834690631747662627001764381877667905993461806554138077827821022192100882542995556039255630942336819931932106432079151913646009808427718763053201858069965560759671706870437962639501884823454074953606255391444860673426187047741875861396742367192336839287722851625746788427826280660320975466461408487044505064488697311394482296415713563183955784675562693040338762388037701266174865832648439940346792329971744251793412945895773537842699089076897809195435707244770633140688570248867444767691506852442095514972677168705308653799327697177506924329328139531990687833623965060624093583382009344348859228924051762546393569742512304728598125119156501149820558603127404715205738129006818069151435084031093454598277837859059997721698534054199289567156513097682063805358422196374508414152530339888377910514162712637005716597209493635516558158775008994882056511214632026638775426151489813564128272633338481801504271952491074666863292493162233715362721909650535941903010370882359034670846116622723006923688248428287377959333790705547080911661676705988229994878097890014378346061363959880800431210864579670074497186386528510864337231597815240116952760039039585313844210361838572974872752638112673241566840139215429184910365818893952584582751109812812389651687008772006772355893457329548788196682021565371539857659167184504703380817469666030934989117623768013970707635101067450420352963710862905622565310695358742489179227479141153074405813036620011277432888531669855598958764313650866198663436699168153917239780949008142984302681248874686564209692747466537432351120021272285300620880909698926234861390909452480155027239282185886071066027831689546814286070392417958671175801878107315789077579630663820731540351213514039486648560642137882041744621617192477116133970606952419281612647797567194472361602846731763363775559145202999010875657093462136056018620320701574146358365608298824830514849653818514591576166957708706508503175690159674809827615265554191028831687057729783129989037855307854111781801791430195212772887297387413819695704064400959156359377948120235785430798037912413976567273375672753830046666739315453610053571462091115661095699047905847139840077015966531577893570708142579732592383969148879835694094904907935369345606794933767904125255614539589836115083456723562498963670183798618061278397296906228206843399542657445316851104495356168486458082216079429398699192230026273109443180481259532541163796419642749164140467376153886421872242313825183230314024696777214237813758084710234953519638548480482081309378145323086642628949414548730113848674839914149405469413465079263027076548491003551544909663092130711247316073075177182021920267199210617054472948204624632059392463324601764273401167986708772985892056443981036038889877647529265673304074860604857116773041098225151281011779071455510398600204929555042768591455548619544702790397643725249433669459703544783476930269814380688427136415991532155834708892333936140671566803157596873807498929558282527423880431259162040197206296009307577677652786448295356189462528169547079971074869886292112776924184450872163304408073589437505730603495700010173952348767171817302529110061605587897137725774563827468408274444198377923561783728593224285803613373987082662009097983993750856334001467121066935295269612469714336332304642834689503157861397230989088125831992299727423962099131221402533458533385112693372989781705798240551671285197839852761377996345750855228161116792647674482862204270347151427699596564254465776951686807556992531810900682081872114899634167667886729072417528036950310875762345063225412652785153195845952740409715428227735787079533280694497391417310289729830947127188386100199319822570570526228149656543909010594963072875201100270498850471986351344674020524344460874285667743876734199644010035095896897015522528559133044137744965088426463645311583979115154690010992731080447188940722513254033256972977188641531429940232093282872767389609745882647942661271509949158160358258080223879951726566000357599343522735385086966427187182673066375231858879530574243013955184782822082195939011196510862754781930362872567584037909346655250226556507753072838205465727963669026119544547768689597800251136379033278907853877793000219228331585041024534725667344022617074748823087930512522129048863284776071550615911096594320058583602367381129257925594134264336944084946521346335283145869032586467408307837288097384020351901073846814880562443798364561364156079340846508094290056101506019200288914418874095113983812940342126260566271570542747490520877512677259807121634806200722583673516129481779940323508532794292193755400429417725616332688489646519961855309545310901035128176422200932503515710186379347239321809335491117744324925940874867606171298527084214133331677686243258770059327482097657109635681830638849607717258729045489978575791106470028769979548694347355060875595625650245969752943818496591852448940838445405969171911725255828810129955852406748328480323250421531758421000288801251004714168392806695676328669238745694805648909697489959734879384941613131027225930280489165126580951105754552897932716710518053389739942491934861685701260954734666939791150283295691598031197720218921891939547488575852911915021798842819699147640532575263824297196896563574307071787741457357278383423258545878197858733106387816985355132129747403948059354227202343231416501802038884006937846462920792290037390301518302736501653484439857121183510294477334159783244906280972669490911951377084221067370619524728930067443374412593466146501080340731532885880537522748862163763080101658821355707957792608662802925589694499244306084608925471655209851906652656537282859756408874463207419111004723735117329577249722645655827224454170106910713402276131084011209597851311758249910847131807515465114579079229122973023598015032847082459127540923703363966835670794108903336424912752386137733421877011570650417089743478486283038408961509940284547033404767128573050523623155810118256329400369039314181116432886012466233872015112517427971562537764173585930643802026751399283992406593122833738332314098946317532998057826374285938096927815841217754380057088200134530455201665193534232614451696803010593776434737205767837090077236629020910790570770769124877173893614142942872532547533970440431806617972567737509715456988946457712520452725510392080479461863176872051403338669789058906590892697385945145871659303079782794980433155165233791187677295233068207308215518624550643519513793861883896709823284255159731556504720631703332751214713048742186492437539397070706575785690920371413455546435707937316029361192982976325455501425624191519300077177146575744826423129991430861864088892758081498991971840611222794367164287275930167345424601333773459143639337557188503610189873264275300837091680254766308811165985965090477563655638508747080897423341815336776937787038179060595204922328693823059176390537158334777266950482480564336409844502152187194919207445266998560482387267331110850466542140360552517282209719797532878989821924324479644859326809618061893003901272091477798073017034212718332171208888438801750981587973324141638988694413411164339079238968881789362697921573480011629156566722760131768539580632390408420271468560587432086252843850524663250697030693152123078987007712185714467910557066061744631300588611614572146659276888947103107217610501662593991519843698500058498551759393153358909488142374796538255741894521378490439129941551424059978359209306530048187466122754367679708563543063476995638026990979798502841459337331970883826238612137530965839017548002159487176127625812511245564714309100557551422422845265844062725398089123789949451433309535672372565028756457135779936587487757096527380895347287171532952014151567721923040002019504778081174221995096254853393965211893752528570434931889380457694887461987276933261203776578639132943809423954493779956228027337604702796721239161953515165339335358280368976845388397577381507130070389520732431920362746863856104279000975936005323258066173648983105455091180533477446598093018464473579661622862635513858212755400162759931249790012311992413576774882633567323884945615635070869745936975769495418723342603249088058809944560015186697197220813351450838204485123231376369517630248900243919762164714559046975996229848660685315322751311813918055742547462148889851112297468590409130710375030576263792481429091233257398334787444576237787773692152714882864386005324658394307156752433594530862781769918455333144358210725084003225572011474719047857614881340837529170728664334831839863515466117742776501717073680958185768046088158408341102660487635735060585152022985560490757758538270978727293616484767082633953858656521466627041174779861350318666326179268501091255728102660447324815352885207496186704169886351620589519741444630142639691735582218749620512688215826095039582110432922787890249881457125634906358626931736195025865574623700352941184688360844467375545005894180234756951471610713175014004370413395332805465666266849082295358399637278464390190856732990826444297320190821158210863636078230269977283109782272086494562037268356760007690629000662665552321961586526651506451022139520300005333766304987210996961813383739412271672401048804066435149848780105795227896063330769111855781707595776410717892374403064319923847123028859359177831337954830784390264160553632415253405566847747762397040629799497683007921209770457859835026873460037075139236454842478222670973102460015495828934543537169641489052965804273669915031827855960428169766330417101945191017029545335134428787301376362354150797984960444911705030571706836451797571548536676968596397373829089153250760076043010154024948712063510067253708070962520384398630511093305821996111820530861677413247424067771293311316192120761491116500849270387714359664435205751837084198833543373526832837266928330135177356543761340902120896744743853550886109155816930908205599467920319661715685200621848221628255311999885864705927583593930409238887936495979601311535463464711962633556822906986324799088898838566065373618953093995880737955411421207418289364711220993090959011591128426629097952047383960910609505735122817521609698733272113084134841777483474611879755594328744599557558560363873095529731124906777346746567937540301201809188814380097606637045695360923204884141746599871903351801577859850097086335347298900552091273670486248500910487753367299258299618993131958402983047905251921005774046388219175427548077007821782984642191712901970330458800853818093135840757479630970652053348881191083919080624848367052997305834108574134170903670783891124669005879338126661264654142388283553301738669845285923651718148461072329303599850903966789150615668166152143179537005959173690508487681215978437716411764224224323641883719935494474487617012090865768732309426372763602708293515733400623928654234336609941161589981870225282975749502717437925294132370268132088932030829687809891138396880841432371735987323643577075101184679970800090659800195492322301696814248082927985800660486542831895773491379251007367621241251256130567545505788778488403283158610622190094961867964928857749143855948957256582869369602219536893020892386316787030244423359316521788487241072637760474213197387530780185020714238851910824706066480139476128901230978923791835724720383140822925198239061193383852655533773879048268426901439328346596971108071348953379878309737204258391489596116604824991588697324989433564964209671063826838213679674043682804502264592541078138475546698012465104445379101978715052807646705395941808210953009731993894393711749572295168523289187910181809529045069143575553324158493122424009127364646950049927264708767332048008541415239151205599308886277983760506125841509361953582608325679819937658099590362102456241686947273399070036530861160614555529363089382542866194316257967155913497931249897392505665813413703759042121953391403965106267339428650597693540298916694721360493590589637391907002110296421995854102549507836022486218758695144980100270820905734799758575157497138182452683706453852503323572784507261027020319819631110361891901891638393728678279007441812173786173583805816828228107643225268208203460150519723274442277052753762702049731351684447865240099736989624298529385989596452871657829761225259320062352732721631457802802671371833977766831641220626927557024447301511459027675012268402799786288326433799602562076077903486356221402457863981229159063764556136572900941117668159265566873636506190752383843342854956389221813724412142868965088772817402456206101769177061244811610600200366654380743422421923858541137911293343729847632617376797121830025128089341027327527486743261297881679605932561390653660882381384599505416389042096926481160358871242803797462079599240646879758093705816358841423899413931662828303036557762049763903028608073139671382096282839010055461353965562594946564091524196866768571273251402610844269539840169610740739224580758183683756481846037842336006437021148009808693261426394540422283605606727736915408643199063618791052429490571526208507744953308070585437333041615164546158771810590898712403767298329845464064172710526847794467642494916078428129831868360070914918361725848845615567011717401115608704825656242963660409308275218694238211379511399637394860914097615670188625739361805622488829061598501101105177854739576126360376532422572958442332352125870363801139816333048416055073994686162968935273237656974743644173446451605244594020458709602346698749626229564637304218383087971851907436410751868119326657444700079964333021567936955602369605080961333133539687627450837195042178779229798800618235267445678727255751173511963946161915918653551021086132413644886089234632003370621584851464014577590937347668880377702568951565007758321250665726231499435549858411476113140610667683714718663657693354066283064273845678299878544620380279583804409170730831759408434555603600304623519414209564556184238999572365434822048538197320763703193812753312204283118381851800350189502917163216844377232965561067657389674069912792648658096948461348117844695932821281890486955039084593258890677675417267529763654797958404354312754823771103680693482666521651302780462916966086329527976911469060714004600438026654584088707979914579497801490376445876208618611619664629459998475701998414404169775314741108952821257267253425547837713640744700562925421951659710808416162974187468167358808911217278837334307991978397165777476106617550028054860351709698330201897938585952593389796690143271573412761530605042819368241295652925263449059722785636680981261054971592345689601626411430348976173180614373706789758739131522161821430735968452505443618680202343967977693622213861264232533318018415908398669479522595889920319825756055090143741632858090509758387224735484833253708566433518610936702799545685353738436629389930897206868814829661592891220385499188142549280243034729548711176680864080424115217116523703779613069381547995247160342661889248505651580448691382528325364034722860090471928224025671323742177144514358618167829534078310576635528418629966122998348462456045346332754958062548145672467646781980228870530915969012673618847067564741442418567405408935411758488934332202030346990852727861114894760943859755228686077761044130953912630420067807339176533494073692415649956077734058418997554744163360019681152282774319449986672872160965478749041728045493773014437923871619458681026273026133434084253695985008476924632090465442826567644968945381473151951128467032299433080049269904389445764515077949935439194692306902919947863459651475678211222279531110964505004407348135965003070858274762942924031161990719853580177660754980278166744282366962968850764227575368846357158987109706165497137030477491915235497315735936905486209530582138587991528962849790012459061847043610468940063218370158927715501374368640005781141471998066492373532830516051063418241865676205816247574601798662037522622539169567490697381620591169932562938990910749376180809096773144559182052002270854063972604131420206883552095486654273800120634180310911659339067762947684982551469860118870669912636957027992567613241537537254617540477331675056185636247674474890326056479761991659771319243373455206874106830287368768026263725891333777148655750078211671800177440814106618466776718964087154847545467109926577794199613656163305397608533006473507452185560845446293537990222477154462322772031164093941948868632714388914581087494825105304819382859149649751697794713058914337337227869130787938607480083300995676259192054919399230288692211297857616285961190777321971866759667061145912352600647648220462421565040645564084350305906603408534762386317368226012558910065590637083477980702932929070300995875816413381166956404158972954923310832744555680903051470122567002777590775417620603470063089287499319326358799425649471113768268453559253269738638131032674687423553766743199078503412651784028738835338227884932876462597178874830506729374246719480452233850046461254852402318573033607671342319430647335280500984202231379361966198175033405848193939775170316271689702555041847600306186637301479786825438102131196602994887250488204331223907430184150283718503305422242425758411571913128234724151378877375848767675368325732974662870329080479183212770172349529583215003628772402279017809274140101323200157821063394971226259666507943715502470042780308878516297002424324232853831847053049955380532034113461516580274395030092197974968702656129793056390128985227312884324118471763061507936786940948874915802088613100285421748711131440087136366442071224951936745915211255304324186036263420550658376634271405719644275010394414589991737500673767620269951784559276665608052032086880478319933808792386430102625140573373730255616370408177131932318440383985324425918895556011525543279777902585646545427253751121159214425139287187911043299358555905494742727125913964135605452793768364453627082454616891687267172635964354731877883612271112652557832224859648826733230787694866329296886623576496858113208943081305850302814261070117108412777287776152987363757494310598344005014996602875609630453381622900254784048524841869006858985263785972161289018698988034832066126716677772521231859670499622957404361880208061477133945666853170741849928444774223884874457524388101306613809907019073476989721605860030020929801546326933262692699008774118535791113944465835112839596501490593321995974847081624423110950465847220825450036904840911459695555641222842920363987134668328056631331080987674454734365996512458270349522232462842826617597627156577414934806430345605119162772584514200429229219735974521975818394706997500583402262326787625407458142711283512934180814601669552248326123269076227036270823086065246107769380198279486969070001422845201260890962246869458743084299624378384717193947731145787898031529385039964946826201687680233137583385872190760183910788966211512448947760908913038856567846393228922012731091829399389016591321295493043760815987784209138991949344458523106215869508233188524065133962777948548493229349606112283685500769257673680601243850503605442549575989310650112557476465383377667491739091918571787337467822101111281121241980835022816871950052472573774009629891286212384570746033507780180459208262464433324054366162082048448405122491169466287231552528322508917599062596016312206202218458172634520063027452938465801385256853306985533266062796447068885974568548114763172651741355656803838969353386529999196865437567540072474948178334543216593012912733618471305690437107253528310811808412285024614372161672642810342433012542169391387066627226542303466795902767465604942014882517501281489461022062584268705869552794274317119202723272800240239485988902692224494251264076839413280009315850909323470969792822623447716872237074315037896822209630200788552821647262777757128413601938217898591261802524466443691967740254830325561217505339527116198344946266304219566951422856124559967918842232373761575198495391397145646280630777278653757196609083783534545118937244761612944650696652972318063025750149751608485493778296375245475180117153664479529527287257141585416338609465526439531783529712115995933372568218016075794396857422759425055096349454653619539058102538695304631649219107183288148188730123130314520621750089565139994759646749872755520289352722040583040991600959422406869884666517133824021653171044778485217342759643001474413517863379726952594852718487661199374477515809816785669558172435496877524431982410081726966965639161030228611654297564326148178871840633669499494292528191497098359784146325968977246420239662862590225483181030051196784635337191616818592722631260671798500265812617473563149059610483947387486402169442572291552410619526160786737919765930558455097944611897388156310954446591262757687292895753098000378840166976345097477075646011773144708591483020471755648638216275662622119200212922509852621104613659194672683560547095968847901649378979251433021095738460641802738971975129906562660849953982064975671481288655145144361916746450227993797791525556348482470588482253150802975983985477748178873251647140895223766221301838189629483695424792051376731400520232102678199019318662411939475253312891762910815208799859591480131836050779231533594724599237757110338901623624515270445243086114190025413992302801821010760086965309259785653882350343296050629611566353835834440056429653743433449352491985039117990048792062999375025514191903627646501173900857238317198753004317726255512494725879693449788665436445006423735040354328238655856242778080096534677566101199049182982856335126910881046438316502626384701607283465305893265819608644485219228233213790710916857232792598304299529499477188895760853653319957587484357635226110221225967686503502067966694314093454692280847138521920360947215804939428109850761425547819428907896369453978853266922042691871377210252030229176215177740083071493689758947856968736000545881507276016419494577675773649161616389214186849843159122227546933346930098628144361417796979693545282677293123627240518478868335039021872743407449197488783799713322882912059507079609010476325382856049286554023629205993262561611002872955858348996918590370991752129570924742149807840469329262012550381657000985494699219801566445608421506029211835811330696049884397443503261285568785956573121918154787241576385691038180647526408711283456029551581849118386555489783156580059854732177768956683140068898169938627357101501166734740533285194272385340302635474040535067479889644698368777566895008464223802964358514904382536858667178369645265929351573895112142924179156380990978380491515686779954513986770098746484704706758555779133930784883835823503680829501003070285452444830763062280836995635003716057330757175004574191114726795310977142958289561831424653195775158985723443839747176764872822201762218017204223481307432771768669735565200649814768381743774477521228342724552771067169371477547791645066390370149493962380871248985054200418017047624217670007002393140451105601388596389724839846358660562902390550337891401799069840981048641970137606188271362837735140473119544027820224316273215710142774811981886850835636578803260240371805488361377404808654659837012798518789779699358099102355383582403044235206370862827484082132062792405415481821030863869545496092813601327464316477881906013846811217048794362196443778846767069077541381522005233237898313245682648932734079180196353502046699763284182226476391633935128293594402753204069346990779818415704542002169364710342674396879789934019625627840834107050365836904181849228557426620191189141262882702287091351743086999708068741127641402491854593701304827812652069492812298829700844305967935514693724723180187956028292910345595973146113581385346888129549175893867642803531489029968080198231981690635617663443420593831820079267450384557557906118510178316595244508593289454665418650472100302049366145535425216702592717373104859968467240922107776456740241679007384844040259610573437181736597980415621130146611533132850893957097970587344765279831489244109511527175128332117224306249860323096664448113418170912093977619838911896863942193062783468441812750964808883869539462937075934252131426444561598047113961793737322062599461240820284349300483182569983774180991084646624939016151231200801874809443722591740443567273403268678298141359048065895481266200376862882032115833617674580812238714833712896454222723846615655504954739691275039717578345449248156833340256446314607459851087608918604599050796865586910453927562328494327822523239483197937169249646027080588237815994873698864481531425152174177943488270828983366454305843868019924865102224387774813359265776802772356515072575681747360806605022792839585132218994224254633305855937981009337168062724170842547168818679990660444622589274002274555969287546846118022889639597554099059951826938955029243491849958040527744124549318105110040035650550767059451320830064518984728593785415701365782730047229078722443903381223136294000181567490667401095981674918493857308001015561381894260070861368274661497006013471012861061911492686040331207255137623235448846501142669941067975956179289808047186459543028473718106442700138659829984097656067227519583864359577998835519653931298697415245828092674529156286785843662042888630018574796476550972548638554107457938794284218371196390463005657607514233837676192753034735067082299036451776931695251715890927102068964751643911848849041095178408305891301335367281651851087703512881019666439780021414048201382435724902491485908164271508031187108115570966539234615544792013257507876163190438167322712682851726688957698536145037684870465021801624598964735751347221556713722289591053436635930436107765767207165451219457655072404788369833855946330116950127721742849486434582735938490476033677932766843653089307639400790508799263793875955622227155374224418845884275240992676735976149691184014083579805451035407153431725366949838301794641388270228145345018657800712204970663654834705810567385968636677694872272290749845976475579331799230731002317019053676935393822061533356331825001503772753807460384988370089549954531107211012660849615150947660700585994686925816959955593876684371612513217914824694463239805592756998727054129160010715711888890836609379517376332438043799166107037558216531224754444503493035736897219982095554821375066688249374586457824903488651502642790585743286314754634977484937194139649850854976133448127909919141965494832551875736796707281751354884280306258385820879157639918257054195750393888876187781448552427884686063788409594052123308436499170494430911570543885284353177205681046509345103828846684584892907977539455462652325537668696135007373919842166007191519432071505992087800961556034879504343177630462188889552773675725819443816589968823501614388020981711360157270615385995389628173344155024180878017840857810711063125596218966307482595935352184886272429918986845542208665645297225595823809063603579787037153544522039752663329762772418917904142777987790495389346598053196749143027336109945042813017895639550428987147295359065876147328112999533352441599784698778935938900833978962906166234061215172711643675929455779507885767663617568984945508829253777503855757490862739181858972814033711137866269056841485899596899589610038728789934069902495067072065854501383671335726453331330079765379870407567455204839596786569785978471378623384779065396422538968980751605865407616459390734589056779289724817926449685358499462134462762698024407228257363247855040852164598373579223379574309649311167222081036889672326516979940576860763020952205708170776915219915146555677654119310309058805131435701910008893049241718271676944726496032902237592213063946765729039686519935937879461384751679576827900015109839822473433871851893228568116128439390569866760818351282789547363632024321864351943560723544068212098123973857579919093271141427778072371629999586284214305695443080778108985050116887687837922619313276535538964435588288941251085974809591224954248279156709860489550225549359065483656280644738116350758133187729917788241386182200689671371772869860475522538324883497198058173798215257309300444813272441428196561981508491554357408886546058222290306633362145715819906669797063995896500868644743317371207288994596006713182046943266968179338645571608091764122300448094418434375293260128893925614253374925277089542463397854456205455220882008508692678435836897155594808226933970145854021455748110581688201583861913845271033446868210943732691625069256924493769207320741323889495969088818223158299964586995865772891869613641293959766944911480918481973376064357901034354038160521522420951646663207928340276026775469728414209393122222361376935253314716767907680765689554713037241369300332441076881091276364818603365077710018281705517590389592753214042500381566890112435108866115520033798425648198724625094435748894849251664609352931714409730031065282323105480683347535987672300351565105333102754525288238097006010760834575729525728960113592002005830415914990055686030240989892151827067503467054343664069713767372608139630533739016236138329562426653702460443358483203731003788118931098572874899183688279645697936222507641856579785351292796930933005855530377325721326483717065068734769995223240446888175880184259572704952750858484415968767791735780764091862246248202168856114115877044486446580888719443826343857015397136843706134227023297228283722695206282507825789472158763509815231915902989527227951756347375867183056581330240867008170150949070859521656308679961732923460105169088008310098166968740605258000083784507426200144535906095771386421662701530242293304046712115982348782522011269723269742189045205249509813625338781704891590601329238210195049202093457055386848817309772519839721096885232027221658071531258177726810659617401401200861517833236140967453151634570545240500712344700890936960031066910915446717206637526301486841503507595053300991313951402807261031521617286427585631894065773534148174086120470604042451791218015268862355980818781492644682184987573670209684717830800032863314640523395620209194171478194218325011935142857404676320602092271036104814421566784619443191713563593820646201309356725271823635690716436984640370999940764139383147116713812900776050192889123059522410757369375931262714696192366304478772628851199258090820824200871085260525509659026846028628778957514219521688243477857539427106908149621739546772946871998102677234369222003432227279071959535896904554060388465421477913215207719873241790958534644342194929478592675913156732041089636391954643096385962788379164128068969768729870191254898846059953929186170330931834898397138213673084632486441811052773046945707332330698386182708897142083724559024182558250541389180818554965734295730178422892356015752903746156948898386202487552151539377320307496101676122793360728467732244316312468920149744263828581041895754971617875704843167183084493591572843802074642917194990172916155297009289347634183080468239007844647576335247520252119078639132805498172636947351251394399344363371394854967620412144019769297495716210186077680763481743244222949815134919688499698830618906697073653329976537220200207059760843343684144601315345206423627100495202650579648033863708444157506605717145064248259794798699899272600411698592647976824080854902025350820727657377230782283570806706515321091114896541244024086890299845141619517860181808159632395015356124885979296700088062650445857356347628932385925215151820121211404915288226171001716490982044648776778442875356355743789032908289640433311425992797878347434575639056682615722932706975729440179627046968613596907892332123725250816291223306432326052478232283112085859141169762023583632815706834205603304419144130655106691663758945531848889253373421614723997755774717245550362859674679112914775066928589916589775395214859641543752364414237933572698423410178883711368707402326663440403018318176059926745549971939483978049808048486033558206262210266588555956399799152659322592238962085335474805134623479655014669543626498796558225205646450598446313320024644121719413588156235300673637240364345254259525925721691147672926058274901867528060579556132217243515484134383359729853301247625613367153892714481272545527077513417839435418629886778140874395190861856769066060825702224108684426843452814864384305086143164325705294219398600204322022907845287031136815828386719785654498635582587158676725191973815511653914781942444841028926263607486368409399824938974371424674239427533920897859648027835351181725212817713790701987793388139490015962615970182938753348516907938415586390326575838325271836925007265016376309688265901174988346377259991859368677242656646414459858962830782552563949794400984322908653526061164553023926366364432747345153771332289202739984321121124746738156216204872131846358346447469770013131800160100197824130340853123973121936350621747043886751829826976830851257612127611436520620303557397899924756508818200797581075191555226319789758888984794006969156016783307993957428312791140311391222587552650826400784319388393165813282375493232827170995946349409412507535872979560845142275134612259956414813601237164740589892431435546795838718799234686571993998962451210399779543948988326319847138030100324440289230026633542116895253942065889872138808194202257113678594960315672737066070399993198850558617856123749987284407619396388316199546768490215972429895238660142170243039689333103272147614728728032766120061172813194355929551905194444897067901732072144798918278262098576913807549428303709701508032763317073484674873615963814016086138150835969976523305304610653866705673963568875833606161001175879075277400466849150195136740661941564223007764172716095087304069090629144152845487591610716508442819431876536911349145434184419361456703991269103772572990991900118007610218291291123155119918056133367042993985585000183930472888805702129085192100004428437833393008479957807631016908664021371943894109613471164344124376339153522233219709000077420564942205210510302804547266737779203185989235937316074590033770698165253305245582685698452035499533286760597770502185759795844778009352929896060615074964884332617753733753436963499025481417396935029220710784700428538692100615221860297816700822962551424510367632708608470701289065539099139169994135180147729839901886960200144543792614333351806519777225900318722224449147993213397607522564407353259514824592669828025276883969494877060278152507949906533809354823495165473971215774463574370859114409418764183610757106205012869076281867239540666906230018974775922787921945991445731407922255532495187767358624195809041919927456720842257504743056789085341923769265758875660711946170243030087172156193816662186275745550541972277414665004992032983714411580501805191223543732059047390247127338475293399974948143001123363316438375025166241117560431294123523728376356174265400606939591224136154030707366300697454083974230597642874048328627232138180613535509307148956067245464187529786206499985310829939093675369245877548169706826394237592310506309798574441182648868377045265431437081777578875393554220455568889126811993269358656485465954691888822823049220607954723728228403065799524770494149109279029904911872766343965304986361464607824793468026454191640509770158741087544927577658805491715634737422568603081090746137761908473165418897636735426050120566811803980854505890117562016194970445573180180923634597425552218806996725640113835533745922749737166648944107763347995380162408351398882880216604313327071340158456251857966334000655239446470826351587181406806931741676728204216708248584399867738126029376092185556425018289007660990275281452156739962085738307351112254242359558357544094438577053196704316736059301799969144237370937275921760135417036130597493402608030860456342441928808761098197439951087618401509497133073012722481539610822773803960576186283874712350358938491922367243402081054941231047237919701836450432225598518933831005751050385364672935749111908176369893261022919366491676714688085694652242210393374976245724606228189123141198893408812136438763536304987210236000542046430649855211380260715882520983489890725791516712545771271761394200090984394358304405657097544474158294234854640996741614851610460434014939425814151294229732902569288092562277097140054530608367829665703501653780539083939873334740525593554083678003039111641621532862762777223737304910881223039388802367153951788166380659540495815626327326788550959288235744742707387027874923053370293228117360976627316291616875254794403351368277354793596285738464476234603077087657942911868858383134720044799029078064996091263923267385230339852479343356855667773477644381837327636302243465550318088197365325387467783538697368197940328867559329908385610684013013301328282040257664430124071371513452846860754025130270295611655493586038492735888904853200587761056849821627771007442473860885330491226360065005901074033191198589510252358300073787743286440937451630566087314945194908833498939067771137918901536687856711267582411061688593539058803664565798529579588368150768754618247232410911138821007315132800627112788005974555120218844727595622572985338886961327289950459113770870967665330890441338531526169923164030216459594892125694821655768640044607643747831657381037647088986529858482723506745265358785977351281908118411223770981946081384843512492550432622125655003977468713303776026274903059848562265373890345015894338471401168098609255536301875526327990717024736588376687454250735118295812612347385040004576953257460432418321681682681650729073725177352061297156928714354040316523561371280672340219130592861820419951440129261384232385820748337776071789772201349873371344612832561025482146675957631279163403584798121325177673896642010744394611090968518815841804606700748632872066526416240955069061294232771490628816591679143808904040650024026407202457631497124814325837869648234346570397118795722725075057079091970981950828001637150351990586121561947340567023118159827299093473064605737134043108225546636735301160080132503147742945744475912419629917146448902506976701097237838613936812300746175222646924082262103618792030917753307239312577506700237877476691055073804657644706789974986816693788120920292989672536390597235927745097699082085130703502724952030729280991901688728334610518086913062741177651169213173506240290849183198276839541071511997850321725903983240872212580185262973500773324595045465787292553634786962885249761612993558832404676310979610261248655313140201681456669601659880929066910466500865079369269335399094972392048944912908068825340102394507684683111182600445982914681959070029508135166413195480134903585868496721448477691921176223367074173155689718897937793142667475020215319717596775257411980714534586971069559261207279240741372204109492981857150713108092265188346329489787613416087332035091565980952593541338799854582922368355010117939108606282616256822741370685742502327831717416424702992132755102466994705030838929733735291845426137646799489129884404163327587642903224317290933383546683747863901646760394984427500571262507938737888715329151750359857648046025729043250895953497098764148629021674465541257724223536702403309332594376545712381444844120715525889772900464685812577887253503705907986578635064804860221952081145129951393203271797329145520152201029601273851983581109023389958257702204615634142461061490519390687820935366114185007185613410054094686080137461926785922908525379434117234713112210618822969329609328591412713145721438721381031485918926700247885038511898162369155232704468986492241166318960700520911563466255108119474298824876249921961646924019146190235455899346745107211112635566294589171717671736390937512062110217870928600308276678805379693989086749403787487929733608928962932202223744324212263761469328399161809230066238403100075464615717302807861491943548571321548271349292140206332386862015469082785869214711180179607201194696708325458049704170992766096964436102372631485674501215532612814632887539379114266833865071470494686306741183241276266011694290958513200530548756357690977420182402474748719187226156225418893184855972151863295350135843308624820348270964858276219871152848303377341160422688779289059844341360489475193094957450343356270731813926672836465659756860452678855453815120235961001629107687913282704409792639118159051310160483999813323392931006574250304877409815107729059833519245528619024068908126701656630247527970934966036757373343789965845834084764988302778441893202093179239202816718346445866870469031255791737737151610500033956056873970111540430817368669371030088026878022918518376614631647371603471080780009285423340807046838410821610807638656963437675507500675152844100981662670217527553997301558697558966366177680585578308048163010415245115115067864882846317101642899052702990273544899780768624034557431675656150292496193553946326884310536476127371558530895411380045984594997753391807969837814078563919045046225804417326902719592337288843272570978796808480789097620843434953414060672790517432923131346020549222596698370477269265421787790517548447555909403423158408781838728285417517625230321339328543335435440888023460728667694951426273665787343483510005104778279472754798886583373630762816969982012488592495015443493141011591414161415900115427733548050317407201836476825023782470919544562939583867772169610331209319774169415468403555444074852459175145807052146892764293137408925324047914053406160204554385363306069420752571592299889083224152583692890319455498873727543947047630687395772664307265805812039978991074642489973901875480430507077144554533396921403226850925227574072018254783789843531422260258158540351577619898166668754716504683182066435974932501688967336448161895907917698416782742575593541922372663489612351217351546041489400177602822063185370957932602351286715781769314782762129296068199579263707231951100642533664095581013931448872003352457517679359985052489833165914873476834928342241280489911624512365448996399565579661476289161944588127268725407293395401788123747580687809185664129124923548575941340523711234115021524291813799367363293387925419219380261019783984010237117102233796846529005198875630347217934337484630520181422441377590192099549078924772226666734443686576070151421945598867930580084638055270596467814216285005643067652498064074156409802824680394153420422609991481410834510043492629315565028836606640596898989629949359642350358109009514710230288264995029825181136378483440799073166198102763211088098875549636400084114888003964425423567513971448571036252236900080171935509595174384397335717526461415969125170454888188533539683392982412921654469281626815773759378096898992413349392683695019727035649453848013879812924884121421052867461834400856067975646636777134001201856267046000452613097373910218457197455545372765002979293575521767961007273156724265834645706256683499655891493361021614133590380192417210157590103775487788670153880719052909001436381570515852359617626885334772622189077280687700251514572474896041917669620928675975231519108523490148755694774267348327954109348234646756608290089005158090536804463128649523109731658008491160327102414588852716456361181909089885832117703527200251336504732494518125069052189105534534329010276905850550318281953378555274640156961229608000777565496255946318362580020131205134456489649399835379000539586710168852054640825512971262986323227523225408717184718242846689911833943225908027259864345876319205873372051781681777433387482045971180413496681175764024374405140344456670801313860943846501221747541562162131748352649856217433055377118246172342425624355631346385760707634667005408358028845323495690541131881928090843168851998241278597239060977271383414977203668302487506070822973337509136555662682202088803068288193431571022014694180277014896524683314444120523446970376779154637117483095041014848180191982354227423310570792814268518391702846258372828431832524055941426478956948311212246944248495440681507596875497645720379805909285162648438861721279658813789077412726169201251325885742203119244108001105374904578831171781843477471609531442794709667745362248459211361426348816045785582214425336598828311879920656008480864673296731183665017948140741369970983344719552004987864672702978558632106936995239851089142150933334474045300167506780592446101591465956375720707400711621410596894405639831994056980141212753164562145225969534527423754156490473660587572353747137984401709823728533746816417039173317653931251768410551216598335904866170863028088537221859105849686720241975352991681851860335107054006036265711284945307301044059318934752599200927106148599740739286823695193931117041937404012171411251389122214922344357992186103131131441295363878771577931329742978887185753936499536991324744811575114464846702489087197139960127684374268814183049052079558021156345326470274640641299681653952629786560542808686489961165086670717287533330527760871522402151637273037113261475917446346159282767886875357640352322684321405992246914565917366839972593178742132903152137685163584921758153341106189921037473652819310525818049946128671210863285487480977549258327888044391792631745301962996015698674976258018696278047151580801564526091996396139959788255593297117525585198684263763326414080500930247545270492565744185778460535309745119690242132368946650819000903535247130052876887604561409186895358246517020065415941703378649236843066151062602691853090915667296640204805667296123043667896717447449542994481276939006705021213041059377260854910745674196768410847672195127664379889377238716729195047703508710879984779828540258551399761489846635993185040952908637475931624486174725503278298529981847031356532507862541610914902514875634615641322215909669643774333383980828444624848972128926714334087308737855755788893634480622938376386941016262629598616979912327316804164866502991481263005575674779607525585846179528529075316504078625328155038046867386952509020905062010653088872922828935318110139760501341913368848193259322045677551141270291349597598044867639947043231629285795665054116619255722657326643817394616986280902647017046298323742899011499416237748746842329173024287362786226300178037935933452803133142780970335425426287834490305044250475695101066311040362509382866214589028668174624884886013826112524000438567114236290244675119320242435465771597640739617785701101179151525656354657138604476302933894531763346560849122579046175431775050450197802430083227987834284196330712041745430801284675598269740018830779645153064620004432758652162176178518143251522896634654531316762177397229617666701921734772252445193210607082650966831893662471912832739815537219793699404505678875160555684516984355490388252374619521519911009014366513381160667387196092355048793579606012841254626527539519270896503997987900021785329243839623291560507947026736421832481193538976215072416414825086237008902258763060623637815742938513563212488726492863875493726974874416562873325904496538256528879746812485676290157158161782322551505076380624008192914395114914524598391455302896630274549608701947294590616267467433972906989936167299259159042905896717831208949000742993023114713211356425946792149359019617661925814228109897715668706059533214509647566664659331702984769317555263352239698398165120747492631019643668235078093394114934733034090286734515461075265058728733642162496339002467037766252759740278131470046899405241265698231963413278378666994517314813880240943079377961181005217601223430339849543057216247885411812358218949422489294851067400441811673577743444702481218286415556719434154078208000802948670410422522866686048106560319091025233758267473750767184177489569360377145088296127001587628393792185171828125438872573672166058575690994327141435025063139174807541942983190919178566260811260296669754946101512697974165346291024695371119760309591195453234132141873937020191051775449728794044123740377113440985544858272973616334084014521279167342670696820899058919030777953747884161126072194989168815068914353374456325841439057436003770463462966160043912653931646694250497948478343943421827100090889693908936316752847041745385244738241936289072590344741431660848014675539951083589620137846747168263954474549964499942760351522400335819576359357043405010825916290198324875043253438313275469109074062268056435069667610010285225675203971382032938419725487265444804931288467892007582236841011505542985536243991647766419061132585220893698421917232328066088740763674050631048585886920658504752074378877133547928693077366344315658410929611666413170396255613151804130037427786038078669001979026690847979364481283769008354864104825142277842944542841662488688587612622390629322625395350065100485270912400289376329907818547788257827095314709423355502927638817651444710494935360032141803232985698976400077076073657347379395660177755549704504509757929628759472629558006579324129158694149711448901823942560915292777020343221281079926146395245596020050841290419386320040517178042582161775214918655410491530708359919352236697612522504677013004255267882344650003553050976561717255888617869100820357774613374876293940902923232349721889270685743825277541728307349067223187805034712513664010004426584367748575761529951545702002268702040379456619795221577281160015071567388977071615357656122740793668125117683481101909732420955042504118249058837707307651691363401110798120281138384135544344822241444074444441984443367685060104634913655092192944171960198319026062287125363330638199118878649014457262727066652100703774848981277435815209292925093301288730549032705781236032602894068338493912135210469733306670012378892333476924960235787058509320729162912431056077039050042231881763116530128619281088532691417857702571870592308767202145622754994214648384691309976860530415492674447625882079266606806243105265590296590416551877023069158697062530021683423172109716862027829280313357130683607920051872880759252763130985232847671497866956228421980453411100568762451982562682504953552948936380115022275757083318552217241721378528368948040264145042132910868251088281595625808331947531078169789535587430064174109698765217897713219255132105204650721479820991033519288668587202153964303132090347780859236608771936094324919956111273724185703466656137578938871258852175027782311983420151399306826302137742254154912478176238833021053704819350177132480500390331967018651035690887609735049245856238898329742240561327950424716943552005615625929267396570743101230655529142341576569853008795597618470997342711970389228524337542512853916441881244724009136468926697422782778227949418968416651183931642296850776645666525135313613734243037882909551289685489095420675095762809054483062123899083694517039235215942372926855032238992031723874066490314231483898624054042333337340964136500807913723281497217974007529358182422046255624021605379088121375516520757332749125900235108957014176228345517377443820080281817009723911530174485403147296402581751614363213988352327265631836598739309914633141345293974861654159211998818596848484226947001881242518893447679940011464426712565845318846926067889456639540563165337121538753049108929843254903287768309728415712661632093924218861653403816542790387624795942528509277495061377308855086567137045338847303833446909038107826208326439958060354686080685354196338190465664095578718019978726667987556336675178582645144973769048428406020853670143009096603916576171572848029786300903689417043850823921415829417815807724773453117191143014243395588873063088380304719137589356471747543034060834977616996810857567336126050120563265444952443917786604015466702268529449480675641874838767283809721125724994709786406308278565520033140898434719105264053514601241758068141672208777382713841559167221984089318207440904532853956247875952668577257580476321429441663479629688397856657620598880991498402914061695477849522425217951067732660608285419495009391563876846463556207630751447783283967352898577385774614934202983843568051548712481412149810719559373082719311003757145496561642733674295741860549378114666479046627526485569752452782818675559601855746236698226864823618712078753772671091781607825289447916069572064053389220620342415808894758214167866620796306792387831351370216044197192203682299081155343929022067080595959915034561791896693484935685255985666837897459086836856079835823906925238530840675366452552912204160901181085778967649157422579690104807005717656242570540586581853423964039117635208739677221009354829256511543854942549256778987444938013804872372726145708872002644799060891928444302313017011444883412375239221432232389254268779457989284164775507459123885086045292733065538420776317024996742675273537550005366862135161937595796506910625868165515065369139679826608475248592017005413378053701001645227043571199328670811001085696689166204620945241573030495252814799003576873324647631766019874657307949762968369633185327077004584954896022702872616385002002525860158047233985523593531778550209022529818483490621516267012726126117300435735496127284126444497341590255045368929575495505318402878076525890048111475790690268652798829509937669348884113025946258918830750499926398789545268791180083215544428513301456035078801942741935499661174382588730147465683173005556944062322622623586518898989198307522358999525734285952616794347580551827331957193043067644333471557185090038724616091861724080635837974846967776676881246658728621305696638916476347445960064087290622307815038383864138382580475678995029295331128916975146607419282534296075608040159993694913097955400685943414970075700888919517899977687459352342161050605121350836837097776565653461994817957195694563224212316299998916593000244143865912897742344073806242923528213127882531605019692341534985976909271569986740890585454672990265218167665903213657022414482580353913600260507245188251495600024628213065034888199555916418275020019408370086327917074233329175789524496213459403992644480212491376286579532940525452749086689401910957355040386916046120760816327674461482423970655470029241453993340688320544758391737994110603813861633199164989714088155344155120276199107086573718033303274684503953196334567338127613477000707723598984715440830881434741871238793894039715824389190091539952522199149950165333368598279431086102553277943533428785598290741411165726107239654634516711212803069274803112269291481426587918901825842315470347341672237259162182335470852152484968166183430597302529268788554073630515308187349596494567178247348992398116693058413380795753429609885969402245948479564971660606384757078855198575230948974956707897147809736689220985827492536995243958787678040145528847437537796400578370285787288788268344868887925734777182679053271931089050944563290426829601308916302893462701399677108059502087374962871666286465940696316207773920733602878181481773593183711466030088468191468749593236100235653892580783478861811964658597871903085564070213304907401147893972129090444080897978916054460843808117463350808220322746375579045256646291036438536273382959852411014426251230368503229780922045550307030836179129618399914691031086038027379035043692865838442724854860137918311123446138313914157123157716684530308105752471369688367163633109392645938524169601242583274392040773078854793475855150233494009431383233573987515972005798031200781281544953609283085972787419854816609729956556024403952222624674100949831418365035165661541336165830022934987856078434143282410967536151493616227637912996281955080976178369935431018794593985701463653591384505378328100520558839592986720518939360652825445391045648655313462712166349928619277886495756566395607222710379135040601025791870091653852453761241200892761235161544850676281622028588758915033811482630697098425696524160197025768539787601213491285698545519623721783183594220049123250718398121130600936483998998515677504455885079829538492626914002790882976746690131470451099498902280630154942201116567144272983846933171432020904868564933393541104409192533808175314107677344389616103169871850232148098537513912123625327232499640769315448157402050150807759808880433862356771060699674314666615372680835380403118700471637170122506243999192715622235292217616544208443135177001871925646412846116345446205266073271069784706653991601750587230200803619033878419464202064485532944048234912212106499125615315753752716248245971560262036492507105121581545225210574398471807255813049888382904454320478423098665884712304338200456991220264129356949157806445134843172469565771331498640158613257950045082427694502561929003208604330909531954718265827321614308189676844990435303813470225237402568536836516518453484210927749648335870508166658064150198320126810244868939333031357790847318639263552629153977390601368784616903845532268776283430698668619321246438508287012178237874284061844351627655315009142167519376524790829028265537655135142334620622325445078727077677797833264228441814750823041378740085081720505305841501194007972908638469525599502122751166391173512442022264976580623819584501611547478905756802382154249839635856957773648903425674121893737260981890658490059060186635765917213490456786644511870400064869188962084926223236150348431261811673415463866401789162946008787505445919167969493966663273599176904065492274723393366476837886268284092543572986444524945459042879738531015636166932157740838254925479761472631527842902334519436960846309938546205351420385133234837675552441446328966793618508471891060778965366349084844285234917593156288141514368622261802791188529363483144672736464246763741980441761991531401456244800368189596958400558767563393823309753359854713977334186261331547302074355454862794444341897581866041371684826564547739024556932571598748510011162498372163937991114636178140433043587706680725277929161106518692184757082912056398843498105576915301048339701107638506409095903786325666501193541865750760696973691806128593039803245355578570643410707409019246738765129648303974844365009034306408390822215203796194715002407339589472101561036710252337112660103941504854334675190482671179567473193162363714819462899655109805777378300707313520569169176675251251619337759933788529907072863052993481823074941121465146319066152791411447726796726047692275855434988394525458280098595660795327355004740686140536809918226098033560572164612332291188598604589701416633467127612076117955850772062890084992270590143270812560233644990015109696122542590605254525137309880824322987808918628318487663333440937733210529308191580291829535542604519113811152520391716325625567998341266652505692210167674200362103614486706686227016948372171569019236265697286987277153937033510722207346716215784061570558262768211108650443451769992370179689753344677208556213355352090735682452107145401572187796382517751472905229513968176756968079127772246238747911921776599094436104071080809474423896114667164592065585002761047480211960010553250983990305244183619998564522389909065693927179971502202969801690230386938209837231063850134008271535519892425528348337296638876039201582795169180920449450302337363259166560183552081274337116184587001911339802277456486166845819132117881607245960841199381250896118058338053036595708660065212527919170167360303788053127493355033712450773110040599075372377526348817455290554795850253371224168872374671234492259921863940339858104645309726747451247656132605875562098344421689747883318126845945802810749087821547837031086857736737775113510075922208237918796558919909246195364221357180925603392472974468244356100268485587865781257189245545626535206971735308356495489059960165341703268567654166525627405887405310120132655576643241316138805390495515829819587105125297389665328216071726309127021351047766349584581156051524794790268352366750696281058505299215376826734566434981804435930293933469507060390401744962988317628465868910145687185129973627282553114180867447557212401934401808764080987335734413061552298689211471372026893648690363301312386284013770770250090277136454050668554774875238626128153837410688910283288854674697543423448256512596041407887797041758969884433516193867006294764342966774170958105537648515194198426629127125812967861341776555953474586014350733886527922489821166710787951688842000958331309341126227817047065120695678330373506351195840610354654269249259139485170641472020030357586885160560582139689089054806762145590295893377458410700758362545234301392444244250079853480738423213837093432564994124143881705780812573503498578817081753248053453156814437376971314240301766901366060746752239827074712045881444322201667331467018293906416168937256038654690312685532976421229385737744164819547446941686773798614370378029067062775813515369008241162903062056650758623482197860460049993746474665887179504088280542542441072563471477085369511114453584207992857460229861971138096043006389762179427194967762535639311997578042110438861147702337375910881466369789855583448931135479642989330162700480736303233634697494503093486462937114339307150126391976904118418268788824911064099699917563067484098934453661474999526978613726066366613926015237680256411640353100889062105609644330234856904813373372647023135160731268158446729501911826189262498744583678708437068863735899934811594558018409839558241699570396094450287396776198100990790372094911643799415267581188320415122699903699061219350138377330466300686702076681112894839145106103887192587693346383079253373305448926129953114621475004703502876792769021870882785043192638397639783603538845206932206261438979838130153731625936242447496176223221346546628242059529282014125275303049058304700506804546468254832337612377970611736615743256454468221764359220050115163479415143627926271385061526364539066158848744540568681809654871786740320628882597335713715123440769299811015289927443245108247382922078225288263558752053272493247070688326352204203598245660653583352964459276444610075178376730538458719634388318652061036766008761249132726339473265099477354603976931786612778181323995069701247066933563974839774335108605036053312760263409909855145689945403430315443952700145565418660002793431143402957221160580408199011802254156221126994735417104000208710737320036851001082995312804931346520657606718512581977538614179867308507939553407504827818482049679476328229226616008065916635139960459773461412329357838541363384203347313047799794370317445541675806224008838997695016176236020732507424408172946809635102337251880650739793558154124435546992496760776231089040762713498718248626347329925309760784076938035324992409125636756153877514678898837336263014539539693085498310309409359475984241027377836238322812966948913287240654142305166671731936996580475791188427756840592720405367395986219283919000569858984209666966428442331244489000336516661008286960487310260721198763328847733016473745687339806725349915227097914750456248525141195836701649796099727407410937748330109148193065493790247696665003263190419204474359621386576199926356441360097791872576908279593647903311806173419340808228950399775326382664370433471243081686280459994723736420538347369158190153072178578012711503643949980613704449753965050730003730680900859519615679827244670301273913046470680610835820029813973497795111858918295126878172965588050002184588748458301255278407651810226963141825670595972784761870153487634213625644386218110248900843525614531131242724545664124390680265652485077056006464312542255988497653521122784381944673560002237530428765610787115092935347936599312917293560869879614381438613736914247623805533902851084291777129054471507915722288593692997878110359894576147494616232265159146852056468033473712029698976548346435259524716008167755805598952338762398133012477626671175108469680985565933965062458054500321362877606330196072644185274031117715356062657332903644916849402554893434887005000627095376010585386272538284019177042797631476841937201444186703911943160686845409740583073244646707581997697520320292919660157080389856071368027569064813065228121789052382302344750623434503905143739281770685937801321322015537562073768614736649150033245961703466995273186899969090922337867828524009578617774839794611781188787165355894886981129530148458410809534539587810211046598709573684388056472809499843522064515957311588146589039939659077192340696759678502951068238513611170104063282362860720028579416765017088538286354556333415457438088979641848138920123599049385650093437803587793306942762853475370252335772847011425805401059536438292648872569873783176442654704364918774439181878646105431571235790571411288551402465173422881767080953741446569824523431577048809002671897667822251735471069884192630485862886517008839972259337416859570714037476996703519968457934510221264547777146563928421900069493778706655261960688619048610454371801709521671749309414857903550707435889424146918403530816835542389186463321834160422201759899451279594529868039017569011240470738171895399942929254478022529573975240511561003350021002303195990200272925708921151695460719114029480902019317070496972547381851776511465395251426955596783974135145954460513691021881834279408678589113421091310733924246164926045562279177825456134454665692178226125021785639561621164910963753277187067786020190263263349556022764244754856507821247162011171311952832951932950028929629696802713471374119947953283503342512796485078751212341176033223938523360062644496704448261781175650881205054890254404733549281965712356189648332216026684974675780036598055316289261674504857813742340297186396544642566515336381140938964228638670161369479208839554129562464034744921174235504198962691009505015485166208626625135785069669052728622948593156633452943167019790380462715929619809806451742925981130082372281148506699266562053463187034558253653557374213982797362366102426543113947087669363097602614183519708973949433606560240316936158094450823169987370907769410289779450678262490804501375284973046536056966777968616654786676057402396305784437865988766210171476568253244248997451254715082220794655721789682238009064863913364625175931447740177580329115328472629957880197068611297772152156801367634602919510908126822000709885342859196962984077050661446898649355957938763767417942201322466226564396461609017460947415004585839088912567601460128045377169714514068441090366841607714275176100750120311378111443634573498019621011682795049383545091402064631054381299585894378629164633850138925562018868458054910139462128563102689410439824843085158721461354957226830298809025338000979946803750356896191263968134054377003844549830138461826263836820910832297327969622230172449442245206823870777627123705128301763427839333133569678746255712684494626734507413958548196088638113710338424616751694076056894928551046941927188596817318573752365247593582820752058966504143449619342396680911487227588716645056331639443995443927761088189353710595259097652021212576158719777407165860095103142836709822991150354532289985111845940080441651900211377458840299308327155489738247474273785965717752591584739220842597316785780036336292873616243355085649136170669185969996030359910595684870221485252771709784383341812899241342917374346424903011524193363204076753281691096773056591698838959362766237057928711495113888033810709602276227659219848241270965298334042862578065139449402612608500787419625472145877321116972405137494987563038702015035024571329068714335965155883982917201984847865664642441034925730756760002675394548558752115789970791207364765871601248233147306995977546409569609522162712194293211825542761667587242560794349417475210353612587772959896352133691332172576876371050391513332525327371818719495556896854848499693253146576625163499837505339380439768222597504687215320259578019919664136009970379538775605352745992194521689514905510510557977604699292291485834711048835488426212697313120023105140654204954218217616865929117899527181946879570936380230601231494987488015052991303570777124246381544754561292212180224151604270821911926504819029264670941454429479152121215979358266094117362326693060302638607922711906155908534932351967970988039677539774043610352934015662649195999156926678923385853129981369855302079265105552968885771905178065413144985307375045178898012677651245754008112129523249287715127327979002565826103070707569891335525879521419797743864433610372129779685054316617040195721475525084970119480164267537556478280267377124924168072168112308215093597145554988041664108347439172783965967540818502600607801121907830437510502015961824580540166186418889390616247222412744293777320868644392755049083987841162914832869709074092460195606290648177385530260292399918508454702459841998318990325082212638162879321910588657510388757631538376300891139798922103972730437990938968884517407482107628119505518854458282739495329483506926592032399400110666393810231736396790039259165425981631117899100480060483080267525152534644184475546525973909699960010116082740437044720956159524162438349754922344941780777212449664979777103553779273800027543617110687932842800508234146873530563681862007973906817754041672057740283646417210692690007170775060485316084973440140492209270064996276984229004757997229243990378162755039301385637469664784812871953210627547985653699845628631777148075330302726596366243988575637624327804132349229268669876425495956775610873823660875914200695239981685782604207035648732985829061114703368712824204621312896079219957772564000850841501247820521268361622193098575549392203093002308615546660371167013176590537222437243909163974584546002520163710775062462915606702467155369587936553325244274948659553218157124977163665979413814855489170019781862868887228174999213843250831860192525566738534341878757773352568244662291325775957083537221670499323048742661850182545127406749702850333107788750252247618428838421356670777898733614205054800648720050535112140367549790421597723942381495517712202525115163278671781191768000172597355706547007007681483992408538565485714274934740283028228289117671874097142301930608833083694555391633869739253779185771523954646729046670338013989129278738576048575776355101131325494469840732690672814764554094832003656442877652691397246745819525955480579578458801680808336870424512688386588217928639878662449742814606707090581127005172166595305784568581135092720158912103383225830642469992128398184698510999141729622668694710825861356339010849709343061574723981765649677836498965124932114217635443538084290295851857286160304659856151540651758710073893815438968927211845373169715610690642521869552253060777727374061568670367603218334011660846854481521454980316420331546081165363182966683075890035276613495992239095699724024002590435690991045720174805813621493443290485709534341076611189854995573217545742207330519657020465480946778254244782240640503181357525760222544185155688618043072070945029749070021335612877909841443989344643631551996448290202501651906303399699877363106205985532207431423015441364790020891620361541701855234743654001037666848785232011467252067223966620376803864040957350810640731555782882864507928745646587560849626876815922970934823750915627594539090822379678521766555426807302589560182440675508859174702751244083966987310932571745594042836197207289869244517829356076483920192903337210686028837447363154788761011614044395056865577575780934516148162398623831605078926347835041115462762784873370276125542164841847347932865118678321525418894828674034590281629687726627462153386916638634973569618706677035868381438861568951490464658315837949497580773095978963620032433435864715011617523548844832288765118813118365953450121173016076981258145638850009087149561377942061704801964425765030339473194622455091013496117810751757922414115102715451659902906983553436097364536844189807123840744904887797304402648652795011388259426900702402774665465838501766189916836747061814633330312208888002473100900947899904358300930194288715428008768047593477463970346598555484764834103839873328547663934726493633361186719986700424791558173356867425126102716166179868649419152363516829366629705688470632662226433757590856796731824486308026114765151253563356731060393816391066120989502250616556630665592497050864648834031533294046165701795759821683143919880117858050634418606298360845961542244395395017521703329068306475348698313166236326341455822133682114713577373066772168090671682832658522852587712064754668170921389556415136005594784685051749661141785931692054784314586431873182481721424133714999437961284907398675360514414582086952215388458941443016109475768670664045727191269893095855480033012155875277395287148308285188722987550860040597935867509145195771363213238893195337504256709181574451479733989671330276308883453280728304911696114966973403395331571057086257814930389754409346333397863289360104728181762745813859317312516507454757019074694492358274044411892066153771611245077574663910563839075903466713886788739925324801202637047007487890294601178967523456352286742345685604301233390059182537411046938678682433161823506759000998957368573855256473855050457733361226992808801745699328215314811844157939956777069428696950296848743587300607558991172754864571296311192386332432338317499488369861523863180079398465560613635243527577712574330914539027464569242327612658035038591919382202454671116642080145488008057734273254871031139700572956611864797809827769048846756116486643515556417968968686248400958307865828728478945935519699148461065833799902689187704590432586394442139349503000550295955610941122668413835919154080335964452205098116108449231083260769456502436585037498871578405320060381172045296711788857908209066001922650571868874522140648655312074230444224518197137294675626572825829161158745167921596504749962945194519643317031770528400568516624949958989912135779036129077240365922287920800784089879187952446942101644610443428764753688643739828179441629549103337282169774082615648987511029447619716844242153257110827825741597427178189731377661494459784589498304844735717459471859366202195038639397471311721366793235991438627208935407138992620332544595907804573641177609703249511859556580871979134216397616794507125805599382572031152153553450611416911343876925585958342607815000549281926939631805191527294030591220908863178414760179275829540807584843750501837946110281600322406508761154635166246410537087956610782360801321481222270148844509791246686134194064642249332057601140371851064184588975759687235466617524940124820141112939861032224978380881843602379986162871683443193066452325667139962745364138462851020858398656983726661626647697081442046702301378937156360059917865639535517263957375929999909420491898325062169566184379045217464752527430217473853012979528891364976000878007418710401635221686922674386467558439384744594037131546712818185759739319036706960787204162923522444921122524699765723087527510723082526673336268670907718709803918336423550595690832208588924389323910767077024280318364113322302388288748334037582184256084966758447802815256316282326419621797832526359864455012161090288185705862324690365468053903291810912810372219960111053739279022998124724483256925242640567537696746444343667470137961180053375022524800024856603824298879100653195870229190357654274329114573379662169502254781598023866054088042615308796155209873384926783676962204598698069311135613586636576576089667219940964198202369956303990126867147920845555815481686143457358090148197585298777922910681101326912490123488831394002314839728449089766747215777668101605520824152912680869702765271756216909580595342796716672488823310239043600731488839855262975472782192159265533130236109715233808961428327933025007688031830632319382467689579851424747147922568838509993405037419275554793558000881271697757874494893328369537529220773444763529054884684646579012863083290992713627473229304380196777479176848101366326960584675155100298842241875534843742799019189914576849465247613522193078929744522378516631770006821604957246900104068330156273880460035096580484520744708829843872813018656142781827614941864752664433372529158178450827651343166525920395962312394797332921233914373809286491003369173861965508827354497257859886431825387509204846727840025509465837647018537574607171513416601802383399037599935304118741986466658378803009902276446444125741120412988457433792836448966173116769800295831825988627299541242780003684326406816855088210741909733125321320980710327659453527520927672972659586027656686124901759994055862575631941027156275538960513105604988166608727686670590504944896583898660159554441034858144540649347203793737324230394761067692732020670178535494715253086368296737481037843616307469690866245325743169045400719067741740207107606396115731967854128420581031675884220174553518658811032100334885819933085340816746208333319918178765707242974289278435045736611974523778861538754219021000050852475254549653972198993421798769719036552699084983691902594264249176647053576784759672062201235758115174028643919138541965214042754117036799245920421294623783576564571424096282953374979528056426925203990301396880816456991245343494731884897389883100451220127278095053001652569211991191781394158911892170123271009241941399394173358836492047204175697163959481702300019882780735382389744643561594277500529648625495981811486557966207513138662267714148714813338712664130996014742804520139607760794764448975563914950896279911793998108815864157675418699047039375704499548733403805949033154316256073935367335765260879594863688331161056044407998853874711873770125226396603281250726865399358360903375473708514616922494372480385480832367617747435420881322218108983725102513518635871251854373101974404765482103491751785130846404087260986951768117924987280776904289325550293871089216305081541889369130445465492781152731270064301046205045684904718117252472382903977943857790321132610239733166981439266203260445371016408778794526329409877988183327748906546407545783931590301479623979285917616227841932851042135053786312679946592188487444505628727384008221550070483529735415233482883415748529603712590390784757948708231716666954979194607956080251782925778678402488488985176189717943410193632492518934625357120256909214653165427664915791501586495582519169365804204227342161390601254853287502198974180852928218509362650822904733466346647112992788870194430970948019509597659575115647741381788866115634439194468864603772614146724631555259075069433454045509609601145257903259137047240472939134288463654857366459516965496095125896871629721131454876438891923770119912435025006521241649001184668246034189397334420649921944539843273985034543403493315692157464279172018819061907453730658344813209415367815856445825860269782444595702095548334809445353658183458600127005826987408284668633885548816380250880442690162433018145337812564551785606169237322565004572790019963396009551686280197329286293987061689601151321623856892687248941386576311557127798448519765442178906269360037724738391587828217890805813637019173416290297484432057873771792442978453255609016036894898997900695230579184510391116948736482364754601633856604059924877273661600841114063285325108096686703176968931045536686368304469387022315141147762075430684930307166572661984467795789660832691944438756457505990840198565947175848277944584259865303888613739606401935964686938789835111261387090411050189817711086070842772702869816693315375312651483430446057196982321832432479487360773180540242832852651445984534870177156615430892979326820454965097444000916977192535024887082897787142912998040957094370981981788381513645599937160203150781205247047587364010187300651470723111809088302886333211920457130485628369488176906811415381448882177822638165414004496410418101996246396013160365015586388344927383873858731863694114313136947905269736162634214781998467258413821937591415438673176920584057920748394762402253031364300789692560863731225371665214340763973463031644298084356334437300445567034161914292150556247103100078271646562166653312213055101006547424543718350200907147167975651954400129962083690487455968307484411892614488732183189459364707839864736313997034422555550566145082014769468403398589142380971964994538921851743631900423167073289412332298667063603538954114033084433947490575441615449508644738202817481367737591501647890527649133414189934913356306999008370181958181791562981561830948800635692716878288475498159923301108134249503267633603508915024581693813177800183730531859361850048450812417956430214040180578364126359583564874130425089750944166246103232311389758288002087244806472971525307949862594183774861713793580650469781841459321465227179855219116772624132876080257906339941797838603811197657569717122516157893810052355395487968592637987940629268987175443167140488681598798559908618526627330345423966242624563379736392544088311748048975624237026980015422613200895831413005556681129091434955454843333520710723950717736522651885565388173022640050472214936669593723177384915491533422207832769645880374920189915245361966022636613021660978735462343479190566953597005344235390782624837001547020153065821579763667609072463957993519249056453140782101607886299501076507082847975693120400872637051421152736118669659901546862109567737826602053851140740720386332736164484205467972020305448955096638830605310721382650743486724589066516926236955111879552574084453193593048328064389752986437659568279382984318837232998000379329637301571034036541921063720487044572076279841157321799849935461939656491002977467172176532840331231530605201111714086409275186316292317981128915345371284257636108271426507643894357102962495345582292684692974388160735632580162094210414815269515775958282790447946807034575981078080632158542636446660164675135415835954799895812363558476865554050359934458169772502900517357091435953467300276096155301809507357433134578454608556052900039178940560959369794943022719900469775564885565319096555179775467745884005829377215563958479243891131287909740911716013675664507715444997907175337787776503453048341473277089708878466447339075871635607836157754860823165955755952725794557812902795794556799599532704880239463078508830141370867756041014919122669701793658624570103179013238444417676473454287960246332172926531884338333876179503912167196093898459957816306382389643039181976052170247512917992810817071552789046132667867200699402862787966767054096529720013771443528165694915968567215185016587118644415380397346845097277408567430342674048079286313878946450401698839876476580084623475398779651558268855284265580703991890961376486169560566005608846218544298143095893387332336414358532958566469687850824431581255662851393911454889859387030250761031208105433308089420071378418409716933762015895088746693496004799910612840643858934317889475005781938444844502073976860078218367829925898306983800517736879249000672491324439636643405425550613377609264338117125939815349464958002503176109312695496679387724451859914806291995982816896252457352028571246194247781864237598622348358117781444625367895638301228979216189802686784414292539979038158382843784706103651191032034872165817762413553985261694232925632139451526641056473848249022598313083741534090378799526263869324448981963545358487296847138611868511879956172887499066996122842667343029478928353057827410736559408436733076161564223892486755309939428786103088793853962563295068958824180969044967627922349163579179274584054058159590719776936217400932129899632977481401797893077784292679039139532294273854171716577227293911453017852030968916986961427236318076158306161453632641838131818874750903028901955813369409547468938203445939696811135906117926940890660074341451760577695906544614010058430129968979617420861579986120652687182713481304816053308404431046356271771208583605034898711879626333142020058589304409351327222484336414855599902233149455600526117522738096071060774422794043250114147865478331462701883810428498723626497300604700490613385126924302060027695473599881859591294042174281719356088255029461522224257786602178282753945545920916358371819166287295389121239261248467423025497438856790023224031025255218197461237815124431866038856779427906093499682590885153981175070013046546967686503232955257833921276113335899943098672153614535574303659627724239056185095535409699443815768731481064210263612487219023004470168600489845581323594767576815996314280536823343988680844903508616532228642132248171508306185688885119099527117509896494061173188135936474179876925663713043664825398263772917728112405449427270975603062342662605833485577977715602010823206694060411682124136756422937915016950195379192408031067829340224627443611211624127192610203108848655685560966966869142855804985087149902258354538227148052177230858741867156270111176011128822615548339481100433219389532639797615856812618634606038742729508562822885354916536649555841703979329996060667751413519066549458775151285294137993777325636374411777555082528297475352911044094871869020016399412986019976131059894634345790177556580384766490938603627149202543984543256547968934631281557984225652327583895557261731542158263297311980816713574903248383461198843595311262469190480301508482140599164960292047907044400669358835450762559325218900778871674274883508182544957800428479221551303312632605971556362372107391091385147572023425284760100266584475479235962059951259495616749903423298336124348206800059900417892045700651638185037169073268739755000903436071196821576217127295896092564448614497181092405771861530029790334142803370645021362549864711485134707466306172489121900239473807812478445252461351567142548366543686572663897282177606967280885898385296191029688416298045041560923184737269593798636731210681546320220610486216793170395748695978957626092105152884570296124062253964826297948293774060606665232956899078813146316074235786248463652292055053019106541166284005562698418338117037678054638830617001893292295998775372330401035337481938986742115811477551476202765487846362562886224089319540429545881598650998669197921350824459236737367196109767287891689100282725232329375465009749661160811491182022580979252222351793564526998630993981125305032213763551497943562013706159970841984561277902937808387615694357908930749998949244924226055746397478783026599823010252747648864526803618229927370062073244990209216745323206937121889535678980224619340699281587192444563644247444645796815522706220676494126434285236701559265303512539483118487181586155182621745827351676602366732690923261995527569149685171281021797426161458368881653979941235069390546140296983665010805990681845814770264732919548793555338773864114290815443889298976150949944059884023169324870692814291380208751197321222111625287793380390572489375847719682021386096790742540139297441292604428938376451449999303742688914126479713464313287327406467666209120634755706123187993471583699585177227117027674156743611993468567302027703943346074809397799998628484633708413553158554973829135469547640427882729336018233959339942721181194465175912690920644299847219184740055474112186115252973892872190002820300104249341466041703657231402108544931888758493204940433950681714574213071945439201206401245122842540738970576719060648989881329957453823443559378544340550157104974670364255383048101452657448484176100874085520111721934810379941946675701284040143497654787080444714052596266145717453673468115211452270287916010021463326332745822661644934615561539213674229895413018892820982049055619214240661440090945956250804696764886577997860032513510464483904951792978889627691482275126150936745872606496244336891280998526684907740603123305615404388813248275811904885344385017928067509466095368442841572451660705422949425277425967778420369128142627453677857341340138065304474070982315533068100852238749269301926936307380783955940152270830928385208584171666098127940509915110093196934811941192007410888053063812864719086610486480376586168743480681748869917264836752839630366668847721649404513561301965078658755681662536063654410629344743466597841515555177716076470805000919706248838293618800679491171141822736219973165847056551253992083309370060606094746723266387868724984897979487714462605420292009210730376757923433523144856369951381744963427566784234993394972985547794840549271892129809813564410886090410872589454741292208577007178695718015465175094394434107296781707587809683586148841503636700752699743110108650405031458301518411594962298938371856857009523562125667782069128152636343985449560591320694029690550226137588944877175947265376536372095316572391272211638305031041512506229789447554927604470446627310367384878601538980729380488478996033249725782489847040003669549775829619604370179562250683318543384651994861433320213929279239698797624862428091842499364185063023800868868039662328614758557992145198658395460947352691123073950735385702911558562596272564642579550606951976780794633322160608987300033258239314853966650774945406041692216701953764418452293103009378469004202623494694796140527119280795302988851362048543639890677570721734018765450497132748166063111019515931544886715414174307184627863465474916134461968347128665547766101263382430973384444960019479754959523825861710968616996818065572360597471227170755455661948061671821107242507728366780651919865731371173611290552837115075128195758753192443208850805911397604605409962856746186670849899418693312709414018371598754199358080775913324283099257686389254304134288004292352081223003870462948637796166126794174206950269103654224914006467471140119840181451174744324835347197427395792944227894639986925749991340189459378524348686804439950351937146684193633091624013125668235036892688234384580032107770772392739734812532362973136505048341010255891709874879675497166738279209838185022747650462565531936083610182899647344878015261509453151964772129013740309554567932584111942049377123164437827952489011493671934512119985487147053441981204214790001126659560810722052070315940677073532700615553847330512855384428193476240227758745065909119043906234816065329058779091207850988578455891469427732462852809929463446594637441235099401160928258297407556117477759795971081249389112845356414522429468661806146359446109359766382426864961757323468526199039280881048192168059862225484128259895816978348135549928022233587071216971487191585480939704884369450595489834890210996636765872852775781844987462048277907521830114852176495821377998972019723972927314764943170812557073554414007954740819681505241892956217643561452264687689269912989791007449831647570177553048391951302651738427474514841812753490698903430203252993364826356029423140605014119604863721629010803579995042729839156514596972363458697277369438436242492596186519527862489183569249804573679765968186858520138998424764211806915595934672886215441920791864641146698611562317114736376093667182154009767599820370857682434664128448282055930478147717911661777032624846164272348802917007377679164159808071632768286036423856135681872732851300679083877905729443150236720030892910096068354149268994022163908925117138889039671408648285189552103491542640023751139347537924554243999329200282009252878774596006888055308301516944778494445844819998382013296270265542253514930760365571356116147076685558300388301423850292682868707032300369955162244800340702040394509080653093606381658342111897055204632669868800252995697110840341827275265232609043009092524351771072893355826232513208047551136847457738459274434581442860725450446563745812139253170721716958861178389708091916435213371904005145426482286939966580638073781973596626252097461855726523565703766424619440959080711725622597651840322855171505988614072187326040337955770263450951309816489028366742675528127067830339825345587279942637745043668055713720043781680749850058994982572890062990181709053107337022377586284571270786051906119733154634564716695161419103795835264711878726995566579759342412757288229231419406271034620502664597260899652866696031526585060077559543573882196067280565367178632846421251816465322414699700205700259197550280337218674683743119413691006037605567600010101620144670525257156229719033941986913710280434976398786759129451301916975081019960557148446284037513755719487297175752922844845636525198393469511268291642541668369925001641984328713748988297037257449942837236315479255658762386657354120405428781860709906605724663749374071043149407130404461419496273086056115161598767844600978144983151678484090034171494670078073572663996975161572835808224912270745143141048825103072138786259519405139593576541045057723631690593676270949947425515994234299171018540304127683982596554033556954879122191110854035245613093040716686627460762265976632709272468092123177700064121919657974552327690736475489729817616923475218717986704161383301843047770529012306106531245140193844641071510766568869547392862855966455289662902572141092080008472665206107110630631165487646017292587945410330066638561311742541499550021181988314435740112991180080931479897389756709932861509212676284394192124240511949112666250701033757255440660633097882599125817736766984050756298772926139108115446568184116151177086504711619906046077321855071979841629996057430831463105003652778931741707413425144442480558571059708984595281462525774180037069288635363488562876277768753537559605355895029281960390061324273582039522886235034711632876985453487791891894467109940154308929522281520475437121167421675778514009069046538477741630431870532664725054127344326021146973508198930090173371224857667330838712606550065980303748418691230809400213320301988122428575160125010583986797358779784439612710293886878527330532263370529798204671178743975648521969433782746371067576870798415937583609722043891616104504552731590398515603441338925733758884811104934280121427376236615424895809051068142215071960930071860694136067992824500190081243022112051971960022076197974423689168964183164451949612367239796420425803568726367880159430566511407837381151896836871685043778487181668518922889655751426444053331033530735036792034145553647380804640549553172113653962856974914123759719612925275913082303349215054375815817335635945562480444228302136729797119635975025460475429604707372844448541073083862717740862719163098904144997833341508338362777723891328300545627668071882620786713471081961507898481466170352441570450826491919040597429036088794320853560524398012485661736275212829289966474483126142088345143380989746077924494992673668368896540565219998609180701770311410472610825322085295164712499391433419793826932127560223839061715545158079874194121752903057276107073625313548715137209748109491640038416683422626191462003014568886637655353766876640651834219747482196965832342309051923833699548776099662945005322109545246215897510119999682979408377137279102658453440975550608486621870028822570993727042566604399958790089061900544818822370220412386607710784785509506635407501061596477777606892326938325250955128277048005200253350608932414891377449417068032306357223960179897278728513495721221707661969138825092889626373856717490202056816707863688878577616602593749042662466485617327536654993412052556245099769813770749414611843554182083701651078790304384934826123036583210499239636936210372848740423975044098689937817480733893498628053749072712286798829521871703339050537045875530174298787288315684376490401250274663767064638892815711693558736622864646197792912949677089976166444591909832761355495446963333259671062880010891872141857809231358266564739531982283667340194750137858341359192757301145520696241579158471693887652363786262179077704098781042273865498358193140817618801675508186073967701975503949775076391847289307186709069200654110738949696972857205505129909850276010287257035976057056231423175457548519088355720151418580417984203462449606632168020905719122967183011946808219633834459690523520646832710052846653856985059607726223477576568252978631877866815053842721898535221986718334408854965209205071623259575249455138674233891516976350904559974422421000743851187962738163211088454423148622610014169609622364658608818765873194410437853752568687512340717700639218346812108876120673793680265969253684985812244198491004532606086437365798829020755481787120220203366785045122512040839022588624784701299688232520988946627411742804950544781992753512541546049089776312441688396988300477591301055679973832458509672304164761780716368500453555663282197128961298651280746176328711630302378873516947059778037630426225018162267024407180865948852966977481326082985175964859164331664484898147108253036285322896651989141491112648896164010302818501838122545006615774996309899591877931978894986900495617337965903291795494490941786899101472919431090485522173624909128108639988402847805700876107530187966528930790771873273962387302702403123587670778901127044519326929977637467451008185517256416154112777410699364831054346599506410768429183323081750337388046149924171605783187661856995996184008973533491203892018553604474561036160275295782817465022756720523194107830930781795305109322095211368220601969978051133377141168186406403341792407522070637032569345622704373240111696389812323270166689635837174082203889074060339736178389530442708890640553173823380777616089383596963158663495222889310996826082559774835327484085153771567812675222333180911913338964459077208134751526240258997721173812535600225912856763227634929094248448002984965022327776862520041578421079962462892573898152345161474821278567956821305315709932156859044096666946196014065465179688777482025818233041350218692500134505535547194450866126243586464161701424408855516149324501565737111950776050343961908069562980449851483536905806201290231263974231798544792573144408300210803614193496677771511025259162665943720929337333311254940888465037365874341640844382535803562059210273485151044741053590455034344511922078196277355814462625065507310165390746797233815651332675835104033877239375967308083409252744785077892434998409551692866845045131132886134127100479768158472874822186565994784096576852244958969293794078363099265302602909587741313597107629651003607702985786802219741168898948858913739921743237567039080375100856191050665225892395304140298410256014580625207100417048820340898360089901772849800516919517876540777627856287141626817406256882348467307837073369495612219018275433519697009721463749957191243055840258119395427319543339621915766825377841103848607067501771655823946343400521736921794249946981522363769134544896923032974890882619171325738534866442600701477157197079081095635968509905162133837016081557871960672617627791833178021328334162649957062146193348210081146297036884787541408610719508406219863520607187306547470285499631268797230531926765511099616675703088411053978198402675550394138643548155485184840377433188506607937689305362462696538912861944547614120043529022027235992255113194427002565073525466477369434402412141512709683893356761244458705154523754188886054634830307842693366869700476344785490382297739326216924143162522700374235354580635534578364003677686884453724267169262592798472733822526625490876251386700915249846771530131537020124536342417167845142383711678628080713972803918680434677857813366355482999311327065853088541138112629605530332614826997837204035454382903643012683837218940595893760674282142122440901000726772076974132417306103102950294397753694845574551865836934581377479522423491684008655457451212702193519167605161268202515896968795111144074037698434733828130774419102753793469363571264948486632985765027105583315680621536894347623244420787139120966522897265578352161930400126543261560688492975131512925982930244284480138376805824137192472013766558720919108343184949891197907293427496850062457093372822455045131538578463164063147378118308253674874204121387416764442097757068003512451721338041656578897716884264169413368559907102202755593361301487660342586852382282209466726230466277482893200373193093120464212468162015273644496753191814819184675662988349185280622874469178445700240950174518438975309435458365950673982824583911845282893512406094731800922813706940394006595719212911871679290900592620613791917560186060972794388975993112076031427539987572665106126727576275053235081030622518794986668646739806374417964067079920802191824536193998624336000071407841755387132134551980545130089535353434747465826004903697881728532841415681820277969262820019450691008277892717005630903747191720393004477925912144227042493730953223346446419239408846665796460188307704126864443257986690416914145588445200186743176622144761675866220965635287543146065373320787334116424605442976723302809628416017148586458420069035976238733760294320950587832167375112105679415600417898292149161330721800600389924799869186591774607593306116381599346106895545107835085764755030031109944736474907180011307044456199410771267191964633112716600337657180431117991635568219888066285409025488222245897030166070178565452967128071778455098231141068719804288945355896191731716571673949025323025569303750871653585910138865517046756854085017430217010610941570434708053103074776190346514294995353353231515094541916059567761730203398402284064652238237421157157326022719109551562189765938183412155025234202956588511488815183536488223354334340532978149242969324217060154677375661943664936104748096111862880622231206682362053490086812900956948803287416316359598575016607582105741832470983623799220837925397405268226261413760701765599749843135712642310595003900123947746230143119803397189339641764402224922846198000984243802420287208316416881221975247745296887069569865850846654396808676452271616118881698976984227832279848132242052624767764299191379440010442990587835001987383129170870931487775562103633364404759556682794015622516737286852600032391271698851976150353998144793994602842949081418747992577905726142223851245864355985584619239962147392050242112930183418294877725152839642120436048475235471366212110326564135557473380024960109565793601212704002539691098772832024614947324433998349556421561761212303106646531364098344353150642502501389357925724081892575221095143400802455320272298840199158162630862126477551792642150730458196089206573692908567936274730164405779791153583850751553469656068444690942333383894390747358930045166630963838771185895806450286255683270183017373463065110693576236079466030985789953491136939962754643887122398904637412488211549724104678862865473810356615955022951436241510215067101356932575683834120806473892460502860040673231021809725187671929048484197681537595579953444978488166032931926287977426765442867351062238830708788006809014985462355413552993805570444948636211676184857980235080263848968378819725999486897134624170663839693758813354862306770954680901448455029941285087827695541794652017895970921470831137529410261778109369828022551452474574907701236988099726312380571587667167578207142120043804382588559490995004733901482305670892789762975018265764730034683744434369378705317040039582733507232268235867325788215719466282723671412684833887943843196780533976324579388287183501773208426405701351227120353591627052480587516931811793798555376912937765246037126826097228336353152513129951282437690894556195697692123652868768539482561380705197227073065175066358402034027851148082693232050471938557229912750677598190706522045474625545399753280477932245969331596216769203503476205514631365442724274370778156360067498375962133416978863150910268003838284565131443820885330057434515908230033990847271673003207089141695000955379817988132204928975254792745545221093081521748476875476298892033701048626209326198845927966855686962610548889182109911833740443661005271106962133708100251996356321846108424491818434609439812886360886854680340619996533862414412047934245788180055030191817491688059429166666467376740037873536181084848155137064783687873984765041347653407414266332229559463225454978724863988484618719541291130696499119316715745819136583492860885799477903933757300887752740471172148171924020497771377425280428900408240150864399493914659983707458288488577605864736692995675208309015213166067387248011043998670130177062075241840431613515326940404439366714682223765872153483225923658163933289094322323261484459737730305064826080284481640671430700554909123453657979834281150900742788226957110965530576073396830579413550658172459059139458691536180979979964140073331611892629835258253558789039265617776094295824915842674849983983909549822631641878310463197558748994538967105722327858212138820563198150518691204521307628955107946856113068192585967576190465459855971167390081908581988116533452825277081920361174771866993323653764501503650423536981268289104398970596096057361473978611877366117510487897026613645219745373457266266492398483076791681964968013633534999045605173333424143763328694735598406393432499372433717829799749398654252813477064518816620411238998231449432412316724767360283481616012854132894247612433188494092429465316850677641893626610577560462588062972560259903770179172065316180925371712063968495936435275880816456642651719373315109227259676151675898097136132381983764405359544215415164900897292583981691626291065803545649326906176252437798149650053766910325011290895372780129656029401391554942781310472288263610672380949541809229410476579295880387979205075713572155241327767998571711252712744580487402705456073432333252714606306016042809156442677785665098939902577474598374221990332049458320120183034699276747208129278591688796462793378185685567276028469229757721657286438085592982570122991477736223158615241939578955418347117370123546915295293838522105960347178482332351560535901310093820918636832818194082395306163219274410170221374148986407145277734954692684992709225570529094444513191142804566431133409823902147656039538276383225461680072449775955504519943864069361693716935567351328778111073283495600297160097460066151226763048742846449573794546551824404761198953549867171160583975898915375100656282142953027223755102503998752835780012387692317864531809904197006616173500146665686990543432899043823146854715291237033077654050440102567783346439749560009635967732713339975772202593420895161686721221828935688974356012223651493183950495798467960598740943914098677740453722054083452494479097204341276437392402878610127855812702649319692744631311841818852662635437200561171341054338280404803110099337154152762734926896620118326197819205622851280908317064158892119254069448131474770961819533224080552739448351954109233327246632315702436312352052075669323805782491172636464597506808691440554647761084591929593669225684093227253482151280396073582690821735063398659894050213149375341654523095171418281971487600383914947789498214520922506957162182163288912832161714706025025595053413143179364268494810462729367773209766032503900289503169183058537913658066605883574061843957787314388470510248406356516052053604084397763890622226055574364671271007593227205569659156847707091915811232108166980705314479101248892161319399747269276821398136102858479547165719100738469134683681620175023040339916542019990053173098649536064240026876097173708275912851579382383624672749253813794001332102449790323561255154056929711655068493080887913232470881868630882786545047973041759866520490253589549391825553702420855221599849429973209694063894437215612866923012713200570406666014068091983784172318387181174238647764319436949343350410526497865541599908882565791343297268532924153856129090467323490666961132516042262955574992985262611946939932931532405498281256549443641637057531372301902578487221777531438392501741806269609608836480221926686058681514364526333926713670957274803835598310099811387369806160497622163114433251586058149883696057866628529034666953148921930710653962830600387671942542294506229424486111059297862056862773741542154840406926251466742305910054333270967946496953458947052272494468100166483054795043303225912098748437667825080039129406675650026183638450689335240543621022733426278431945149815097838735642322366038751736155219199757390465113530415006851951941453276489208184878391564105227991488662136231009403465958200047163618160545715500751066603517919342719908350178885311705409787208511463398875042735346044524228904975272174305875802395485293785514673075496028377390037638481184435549482206480996820781821529427626213433517973602021250202324371095639434081342169211398118131192814094252902441376675566805372880378003076319160549649448528709364577800564847355474318667293205986946863533549210773378214656946403759820063814592064686340128162903535602534876271665970895444032888667898522602671201528507924428168961843871337210631844641371343231432906635455836972996786818991701388886772680246130109234000174954591178948147020932730332845030258419972287753557169118291361831447123271365184497380218199939375568901392985694199611417273824222280709437414876353051983843963160794059837692563813603484382535737046500904231995430761970157658668314373775896508591728010049126189754556728382506156403912568311139791570789883623082108990957817991114058584477952696821157535409741798218202677838254525527042893084796954974652915967337570188253856815802930404691603456008221069687815109908629950762943549767504333509398744318989272554914589033631442819086176586077241884870668194745554667052778834038646772681600099369402555858891032262903193570686787829866093933441901864678291724619104365982998815988734981346705488186632897691966100795155267347862411460200178954682160135575120263921829393027497506323609139933034023654664175076762278772804446749962916875788202501806456302860670143988810249635291357272535186724469438113431469249090962773273232521821214388359492494126145496917129010538877198027085772178826682017063424192752644949427474323868698530555651952138987299503390443625068346568714247787715159492485000483691707434108097056374476169546845892551266183382313968416072098438776863955701823949965474876348343194528122195796567792743523139830952386080055629946743141989712476459302877364124210003126183460341502947514407736608645193017051943771901456268120826974062786933392385998899763433887978779375499458920092059246745906771034967445515814906502800730212115207846302459167000072785698020003447876287217046712829680269855283455410675792674077840101552555569748263307325200623312883041024249579854702266055800332564224104784480659005296698864951244172490207873560560326670109845836658177744121533426070088714927899828246583001073212919540487095918302192225670714444037490173905074198681190044677402704752960998876829993586029865386642383984762078886546843358164754612663277631873045012836420176262645695641124417361404803723497936937406882267234146772834065300666828278746571259988206883905590351712774191390465293984220895086521316214079181490838940329645026367320290471354495644837646445335888121493809768327873032203375132436837357432281829501603019727985009350220020609994990873043216638165489908209272603932574676897003397129294931074023450705682357700089291879486330718491254634582751410978923100407890515295803474397085401286514262103099211179074720437561301226702715173381308839009805491830081903184002729702551213961407892544463929070530815297622679112370403590375694967946185447432373130299439930074857032624224786931414702738898821323410443888096966588895026099467900175448820359008278138851146166658546387946856036952345718112920855442599254714380365982021155602584786505604643787648460458458330018703286661627273306846437228511748973267452855092387392907355616236622366151279842542642818635427637748751534625585775491262227618139962319735369726650390571531791081564392386374503989232594417410233854233757138057795723630970392632844779341721032411211516428079645018006076971751337845994925134993845945970950343061958854403374703383633346949189369307166810174086641082360319556099101705618256585685044184956535628577924555280822297870900771286602200416954034627466835726842388809610352780752357763189929659913653613318795794674340295063219817814092835673463686184839901331629082732820415034078157046393559253143161814552652335820218373581012859567907200297017275279610991571830301465417321784348557530785681895399879811474214813960870619492651876057013750084246179383575641024188612699777126766054655723211296692798724934976694782399955927746097310084440240135247280757055528118960583248442245319536435542306703460197755407291624578504725821665786152767034860149290777221721223932494064830090970214859507346780346339891301168762032598808718056824722143547784863755709860163820660068699933479857894889414729210379776612384194694088926987538269264115984243688128121721473789719938784599043993930508981225028443107254721881486612061354454780555790417993464290060821848658182824621456072062123946707989731138981821582991023128540668655559998020287698066632742718938184258276702777556710690064810063124704971644864677732524614405051325803538756828375203142346262728433271723124948116385093149618336664975362884973482953246108437519489799417844086467949649536228956668008736612889624542450421379739606371640486691250814004868910518416977785016659625188331011431767735213619982559555183069204304473533320339172831537156187882580436481195684454285906199292769516170063723061118172979744163554534394297406701522261816573038281149574362139390776024476284193060616513077857682422924296717231592531679709472184546045408488353157250293708327717808313911788477505331599902680479512759352665111259328396514562474890387482676820246290078815692777988580850381565966785777148683860795572363618070124439390720763536634517235020224520979555386140828621990194394328968109120222726651239789990593082536074091744735627056876669619521571001329909291132314903122566041106818413123866351540081969022352353565856218366946740990483333296259026845144822561800857865148886637771528138245381489075925867733630669531391172024760830806029344975475334963759192931934572629794541887114342730145409680303791432676085503040927412927849697166588009831571626991704640565202221728585079798754855535541613801515664858575416299758063846916894620841583044386076528370073703660358241721043555643749505838556186296684566398164114024355800866099856200589437332933538343101033189368229783691528941081213822016488690847919675929174749620012519735850555348019680253434128710132363075251991591006583300093769091864241250540696007250181495313097754094816866197785075286299623776117470377150321906115456030379548483997865471613331891247521924768568617138728483673771025194554377383444690291047252179892868562995316664713360845101476097058321923946349245552709950641609578855142595078828987284757027488042573529465078553015763780620431493097067532250364058415220416646696037612713122998998037111980625834751925140857875824445409360617587110063453289857927619802040275084542440834824359033111823654833739018562619746580943471940462062614927749472033306241961496273014033996449599586127533304511526405948808163678738545797147793315811688006723039294641459545584624558934724635840241239950216378874190921471528398399654419359822287638614098373915067305356837727758039854099424492095650946732572351565807105785758020382155406816685765312318994084338953539720215420224812801939638483607762954143639952185490548615322002079139294414173654682604820514312781490010205967242187998478246399384164644546766414054512073470676721792281053417977740502251012377081301701488597689757587610949933836765647489841283543759425297921843927038984565240626489374770956864356347970833038128344618655340581148915280359348477670261759333694755810801105137180598110920910319016835245298989180045693652594786771583818595544818277609735609395742640662844164527174178486697019694695822760238609434205674638848046374649513467474876651720074191637534930356878760100646846273466941058544340333704221683421826909951366032134596466600220315942458344634229362474201161849719434468244057076510429472998494610117903189246819358072691938097245634636820952309628158212717284248897705777012111571146880715591852546088483050360262547120591026135287355069881402797316602634829918722464063249341718130438103258862537377617027163636009749975554127582574866310108723020708165820452847733031204897742982943867912590062762257250950242698264198806051172961753220108106099152423973979238491826175692530107739157041049907638886873159554869837448756413134417136675044535655865492503687204905610615390620377945547767746968787735456480621314418040883802201619222021373025451338161566740699035849381696119691002146247175089876438816739075295240803953730949258006322594572108348941456983373428366413449370412895010759363697293354001934518618370162994305228626371208845425073643628170807654684254309168947795779068799508882621709678562802771455481937784233134399850684163175037682881828604993629668695117158597091079673060919791583796446320841500409774156552644665025527848649950447858595153302583115355781677027886925792683486138208934113353737520367384170806826862967354361477860934684690328795376693618948042634773820801566921916340946923604015997546677576248693724880125965206478618319206681803136053654403037316405353294564741587516811817943498789709827806822073269027049028070482610193545728186099746925315261832137251115016395596354765667441136330783285537947395714335600662067372059588432672390612951140069670962328223688558817804480797806648307716078447235240716471525664589387538134410845294110574472366666398629955429533489581904711809562377192214593227280366070865924477652142990610761822728076906966938627170230096136318747929663980955538141321053702930264255521427097519765090983400252037704500793410475638425928353249432355021595101190974546973132617283055940464414536205271740740000078407468991545812022465393127274178114250965856724847716747678377556196919209037983251143985384358937335909959036401151499031187271955059746857895722004860177833164848533055844655815975704140073534327674204137488483634743316831577972894367493920474008227867571121955565969810787836045657858716173962074901694547506508263618837736698300345230183616765950615965463774485027987255006351280028028057754632219607255479948384085186871854041532933035989512420296943807722622886893962848801518876716574412390849339220250513865465107410521486896414436241743036013191243269204395043793824503496929800948070591440708077908372649922225215201398826980618271500844069480248891088245590527049589936397123716334057162724760659600680959364493157223213140024218850947774453364548818341932671038604694125278307573330999624727325007211491572671520902298526366958619173844007215254621526412301593821220933624573869821243375748319373967287966925520334224635766610148882161737807257489350642843523109306068328659663276384262460605624398286045834995969363949879052345912261512970042280968838306263606989905724428857681101514812134489088915748079190691902660299414908755725414945760654385760256364695520468806837304145821995969758732247233552823865582337729695936776750770839379693664066141391384321041010425691510860657803330271976716255038389284619789163947519093588419203564180836967434407148375049332558261826068866651994693476539984879300644511119955902652180080541288870274653288753600165265006158239884184241740651420841674459200151556878819119509358941642574823698131723297037149329798980459115258421672106614909826446740953428957254798662637148247737125243583880461518490004319107061263613708413222287601490550708815124437944380888386028504312228060787186078633671546019694260686091451895605212537302969442963704710044106573343550944500314871263917168184676325605473312486461602021818566081854950995468510641645235974176133982876722658523238001511712282230241898940285037037134505660829737681475050392883453327446818432405456019628368540730113245627724852364379179622415386518388985367337333577031312303570469541010853059974524304729704839599564256381493979102916634858603016697985480729676292779688377825364438828772415420722286971388671739113550826947308796529643948336729188986864752851605800383323908347965658367098838532338189317752096636880348672217849440051051434742742599277275143586139330915571518143619257049181122237128780745881380265015098569316785159451104286085124096232215600209023740415485912189824625194884270078146662018988543682134742325678123071114605927997151307765290405052693503978739482224557261706149870578829228709300054334871215764320054620160001766450139765892239513595967907493433244116497659407142978555071207905843074919545866877435332341952104335446788717072471756962270612275569955552736086849513747909781876155614930751838624888828995560855298476846391857189590483445737120507277816938338407037869107076305788348554413860768307028539970473886242597941059075250980331378493745611307435193565565529838404887632405091283564482286953887674352453324534626045220756751987188327448437810066512631169990995100503920507183981177486671481475293595517475150010644246829713733578631113944443807263624489188594951573647775233763178651257241782672586537913789370743597909135678317570133104318278347748890828890097789634038003963057168204056060663495795607136902430326612287987656546273265256179752896708654648519758019023381125144825911051002317447376069109044144530220538211506359067127917426463433816652950082259881558290974663258629077791241688501002290496454374814453823994723608933098304444196756225106001487304868270915557905493809533332210644569169809930348432152528765446429658090337271065985333022472869807368047632673017924172914093387984745066557703094750618517370973146452992172581420345181210567235820582412381858104046200222182886329089365546541798642291012814889664962108894107919860269113957806467626349509902767524097429385701162301664021719732192087133003908652058220916487042612160453659516354087481363733800445301868870319804564422972603566184138471713793394711286667054715294568917148090240623308647624820514689895304019722791996465316254582960771680071644466402424243412550158961192501932307079569147199375803285600709813472544236625114835918533688218595397899453227280018852717927845491272248835016509667517969150109270971827993839529874424713597415879427737215272110013070178666171435596995789349977075433658506693525510156832803395194392552535385452740130757028028535506513314846466379556779822162648693995981592318591384060219944904385284237728917075348042833797043460816418300961234517537670559623469002382849962592647967012046715857022011821411702486624883476240660346216259736059956385275208620062543791112202922515511691201175321472836456600248271719379911233088757030716248460753756828363925016727071100894425564710556470862248103270569724805497763983342855934321700636054142562179237905918914893080489963860826699776994399586225620019974234705510397790704771851950814257501793300353071448923074573185960893811822758918036169361924255482499729782878482669461299596859827892239411216550697144773424136194475495848133510131081182509699713926467629702228564938788165562905109272801921639373083322087538105351310150451218112747120999556367214310469953449753547687106017936345290180964969106407141924572674116723778906414881859023552768623451732215646066800934278440477635239303172780215368520370719355722369887358733709845861639713931385535647331367653758705640841402066622535341428299821900221728322765839920367491461719405993236489371152676244453459013465801192722371996535848930934926961784666577860990419530578297271102106608902061310270813109986968715814312520252059719272309366972825858336132475096760624776022521509379079590050949010427845742575497670219277093214326754220425860655421829820667818670690510140213102462127886210282224998368292826207203905372102146072155273643894111215650717834695216397914467210392589360190490901852177848548630228289932260459644244903519758030069280069297253952610578682208222726550034205402405214755224805570312866927124991191471379210715967774392377782932804279904209054056769529389330874682671388870766950109544483584423941980609282824698216920169729596515780548851811274207506760294336988262122069355416204565012944188926286370654833195286182406814477451613268073030488873890239135107791504983258685427539547117540266476763944921495857230989061170015263476522117359611936210870797715657067552111189597773255592335232890131079937304958769818470137486695773160465636585440513026177323288367796405896758904741004019925488427564798646146685498754393991902129219272384606968950726434627105161743812728821940597798048447413163533856879207322814965700688390972446277114584745202303248469570956297103414068724779732388616117559111227254932683678038188199350774402489786535680145604467748988369289785497148048369846792278973531188567568259595908134043492156861344752991286069112477377685542915028936222044946137582371364821708017978524173856425975339785815212566200441904593421293813410477640515206254668353152614960006525233485797819859173775659951143528970855485836729332317073017350229858605879966045088243627418361189269038800436883096074031660928569727731812553093697811347819056181968272881346092911209710562613373447417508055161070608452080529762257916863030047979960896591546371022818087936803377640853552084356987938134717757778147696440605611436089278052383031898829541042546110602810207294848620976923596624367476253496009765684348651415520642547099254416966161560719108891257916311737529889529622546154025852863498107142274832697892355468025914142872170143184424676016690968109353480830460786636580595318355945134565349290314933446660060263331625932429911648956542969704540661565561128716407577879952469984829570206494729617361388464457823149356019029442530119998608625310285244805731077392321472490351452718723329557696969768660085908624824551297234597686616678467280979249658777861132661789130872830013517519520706544768736916565800205186905934581674938038180142722063734486023028571161739005576370311132796364611030557369070830808950787934829160737653000073354817861409066913874514786448411635730864732808597595743453067100441438963758475745376334130263069149811231760281401888457594220979166364142203769397270599604121019748980222746331452028203137483682252026344403785324502785433773094449939266928136172883276248775417674760280708963806629729721171097410561354354035183611304821782395505118757669407947821778943676239713017226796468419444403741886821237735671628051487640807513810037362270870460778693493585791844273326448747216644942189104907703074803817829829051473575242022741707135300090079330224346804806414175947405027720850778679342940380787545690509706499804672345341662694597811008549248842214605864064768430421386685993109984926608129730954564852016105153178809747919917868208246144727936039778566913698626650086879710385773055494493742934711963153233120974084721709279246065657027378132203980250648854906344931368307007092022837359011509787252178380167106510811900404444792773302379819644833843799650620203571336829089824204510414255510940058265945909686544714269376755554307698814859885877353770164231143433857525826027523536514801923118609056675042778600032604779308297840510078553930707788929632980659229484832756220204046989433641786969682603610793186016237753566089279409697827337855471724812070112621230477185699659835426393994752793298187354787075545986127848379653829140987467925809909612907259069791367818591174783688475065757929740350042484849687897381230491474063752681394239015415309604912430520052360021763093784455552865081028732558963642339145570279339714581245848432338479522845876192527600275532638227271145244479864926035481637049723298753551031776271604328417040491937916671534322446288962814164561674245607707923972924754618429376666784590617603097252343021928232735311480417867880391785323877249964153596657544650575771380274414458978530312996757320946600286752381505356954245761715592632457262430500779081978801587074179094641025159383702986034115749437482992402402115291708234184043018432774019581358848116237377781069657262553061816754551757609858809638055111010436812674717018249847424941904246965427187070310477370570524027580622039283295786653465671623522505851348666796926121322934839543591580596611710179499306948846796077021193208674917745460662636193352268405492803733040327566042576623590550769792351868540775310184052612331964205581536141407120697120291869525004268925225935325282753481731201651323517869038743052546881101112185849164261644601113876499813655116736929880417399514922701883157630488530034748838257063967759199413588380926909961310353943672835736778180660672205738088097136772523067641629900659438716246172158660971508872312695935053750067429337753328425600688604081689000922203793631349870439790455735699421967360528810735265365536372302663773923029337940231680181576459619681361371813458126535117935989737551031824202710465356249822141249763960613952683405895306839849489474732049680891521085956335584520193026549739671767897568772670260426077311364382693261201174062334351210942023585809831392207279421539376812578778336274911422823374766754054437541733908459777989206521958547232531813180176558885481427720260500900405088359641249982917192587498274516507332741185945547229646285845366851102437981930031843052443425179024004220420174825349968046473425991920406676484255931427458992864311050364683371310636586552500314779647029671762801025691162511125944235457375486927502234853838226377076393250989135874676535077372850832583966383308817668465207787561366380648624534993904510975598786959470198483477726981266959845626432403255129864200253607185296463641366540553402926215870424833006452775109929755248427484499132549079074061859879889344397678129809618474704352256958126106290657945463636944249451599506767013918726163765267766384231499778049115548927026102720483803418358708352054425471857292340030394355854374201190537055837462663583604821889110751918869206783373841034888135268891321285904425298707295922669786543328876034422413028410184417383609596792305975463484336108615467701314416288266292491287371772446247470226499408901410612338415151436810073072838953718504652096903332453300249286333158937241744340687970346744264543558133927222258439273981360242461312385082911215733618660671278069469052564106771715509087863838209917813332168649421735936762993572602512891651931015394599462090048006959295836244300853096429093205782338668164203713459109553228143270116737300970996389085547306071390895639376263296457461259409251499882337225681998156960308035868721155957314975560134470434118324967791500590237994069189990802260533389385185001051377972842572173561800827918390420927580728562705223392347848397640222551758952223413095934005355984392000531551609121738290458354383747806379337231614449913240553840269721528580997120122220405342789458464993397621424487202563162734355590762788877629891557401116050363105542649109690220837960382053605572235497863044432346329162763458412802007890709001313861874164464459117776972289742778825541721554343629752627548924656858924572047338178959317465499672418883754855374999051264384791661109465559855879140538634452672564765590435794742281613982394537755271578848159274120100765541624670191653540344431709063177735810977613609580190060191967981864618987494605716436691371147256819958134454776173634856217445096984863126511677914980066359295987538253862418745753233692243185555778077661405089162184621985487844194824541219077535550611220738104286328301779324080470311776594243671475521401553686045628924734488906556205520454799889727092552735366871562206467986315882078011833507401708989456809520295320205357835530375355410602692399063453199937635118359404658478100614507912034086864961721489836206293438009037364880955832735968139250289732103356314407675115225107076008088724726120911857094468876491396790495687879012797611613555912888849922583801455090971764099884500710138936249115531322725736346688848771557763507671426870939681898670840709292386587659741029014704487470724323771702524080446079459978448365128004570154272223727711416501514477708323041530978867954571084522549656050800372050112674227070497993662685819326487240358655889375042585881290505671433492414833249893539950757899568531053629523886506859924761740806619023734684151354379801379925436443023489161001152186147353030944119020391478176061996375788274972293583529737452783748083918450648721232663523522053601231842416190586440170850450884970428829965182360650966962761474153845661844522190482550949197850558857961169931342971939247405692510955896274058699415705701601636900751335306389014467392065582767545868890841274393025577875839313961703555892923932283513438336763815395165777316282582059404715413430318753721655407275345165345915523944894068024093670935394665175951909124500028478787523721440629779069606414346260572433798351639553508516761953039764495353219751819154934644695477272198692228062907354190634233715075067817646192208148079533939241659013167754209735249803132722799922403981295723476144854842524120390419713364004788998720246293688510618888820383422745756963422542278271775434567699692048267198256135043084210246933188739249605311803237491290505033245590422811638628247489574454454484624906592158515505561487519814235317956259052525609780831891444153029151721455251251369354985745027626031308228523113949077377278875267276801012153652729310113130023521085179088252215713917007450068313151218865597201959501156202126339734171682035005582137635653480295398582866459352571289405000756299862876889138183556137732519715025128520563308985113752537690285922106097874184424548327772162251228797558497368946766686223422843594351752364115047296113741594587991147955696870317006446431515677442785550334378162806351400458587716468535915221920532902253440564359895542282080365287670466078455659013359409837318426095768120112969364970166541236671807223385556395017404991526230122465340158766109895862286564738620966081561020261207809457238558535420775689520157280965380755484981557078106301846869915502472894686493016144743923933140095513543719831696397106465038525648345404400304019835361228900150039224602004027308684491691630086050588233591249610330509034236745801850686308456706205005941020232042182123730514913053924936237227886683718010801490178808736383487519716023878394278121198853124369955675176348632662277887599301733154726622808915470590086565015763202572239293000286652544743969560774986152935456094751111848389628202021244999132974610148878088584260826906108879101330604450263626323246839453147021909578011513275200897178528233547329732980729663196483252403476536745910695193583736793109188574649688487505789074248979459790273933436122052872147671860945227363438950457271634145081782208924603143862337405935742328646390781746707773997575583907096767911491737667467233384431646141573255113792522419215871380501797609214525444286569510039551243631044542970635896591781780730954011785302182444266731403001083293257845465141820908732113776833916726201743414310885151970387485322544972728319312158005826008272225466388561281320328486037941262851729778612338145582351850654281226571028821044322502903494216049724089014189375014749971607785013138819263705916197621908485028686371216745147533503851266818998163034956952498053750860530328113755960133297352932768249208558961013017767096241746886994607765827404236118154872392766794104873721326572359178276343827130933962736063227316449928636945742829969607651025500682779874940485665838854120841973725441787148029628307319935491199190957879825157601710618975532007411593651705894143114086821449114424772355599744415778266865743123058352084619781313206750329355513974798079566780664581216423440225034534718538135603424919177317223887575393985483142851871425870104406014491378468940658310904181683257050634955525179302120218016042500180655069011973669127217777174842250729642432772158937684098643598339897048847395518972631241838692986205876821204138978300990775810531731857790126148402667231090445773645148590781508632063993627106835015527547974060622145609516392018714305150246825933400787884356313416706894313355268091750780489954799308223333457865608813330606583144257053484159226932082200994969637418300450047748399961269881790159856535719438255241524508941627349747839632413132293432218709115234041643041044752655095919642396644820727765888672397432654357479318945967028084525126480798661392171865198371345570061604579855261903691281708350917353465427193038503826327156683185452402951625475349311923904184502194122775812910089489509106136857825321494951151407758607014640361925530765792477056798810894029351945452189596318578962418893237840196117959017032765471966917100285244534182225751246060196893772495735182698197774157578083400315310946297045335957475561333748014362323070107422831562288304558645156959557863191703428091079605149289334540052380856541923092618374743910512525013493590146249924885055506278827996457715711698848585161979721889822882052481775196250748434890334989866507161882194065473243873853946378239193848597533553934524675095416113057831233736726051539986028164675125980558091279408362123479444553238634315145461682502128172969475472726044761921295642466839094136098470769334393842584021561635008799395132285798601464378526415185072961121272462495472762112283715550890605966879146787945362647381710578985752087251872772733500467923415303183306623334147366936261961267496946864633099534822272148877274808687043800006716353992016077303868498626530420389437161762960238493636689761984204184108009466779016030458040488293283360433017879301997253686818386421162943118318362306644717167015116916886687948654059984235424198959546451525658274003043510384553102916156298565643537830109127371128046156615543218257353154788094080968088988891518802079863436903336335868191690805463131069607951026756948014093245561018838887242323110713356101630815752710168641230086808449189614566268714232678034878561868782686449315225110554304929916531305799586265635810755249836982289951997584884877013132880185263164833288511451114983736458529186252304947377142107170733401165906677313025498734417463197047256814554152330094612990916212511114855302815137823759165230086247837985125569453916990823465840265607383069262329814523626721073561850941623016420270032293065093169912734312978620719160041828950288464451854378461373408906365527225386391434458144107894777919515485715397042172246634295262415887752337644172310812104768261187485651762377082463618727236642668747909707030546573577387168497967319963492373539307026241825526049208821665256947305005870584462915104971848879060994418747797402149255839464773034405974344558054038868584421821418709114201604833070174310543914615622271174591661389387241706703490495606194905971098515507594753668227462068252276626439665906331204391428386704262480746989796271725698751222561765537659281104718463095246575210638724902414621149225163318557569639566626823593258596319507939948226031466194139292576444850909572767756348467271748994303719923781002325999873003708295461075851262658159011605013421559501849731364471901025552863083992601425827726943185284359064911830656416995207619501452261437666473846978186395266077650284541342802522367355551139350824248718443207683443822643848130215293509666026829770614516958013856639700120400875303757770784290317117383438630976448177068855863729230844002306111908080770818144181424251861189319351783096425309755042898705287334087080104824101620145156958348370692258594727455769567851346272113470892522098875684830856014712618882341377958911786653821090959604237002579320636119992147642846062156110994020406250361201781259554892471617715667187854766316265447966165875134984811732663013132422357805075747985109211975037107739585740991009237003853850169617650671967030542149878359800077532219895227125047297220022881934566311865321198646002811183712741184962715064910238672110879620458121930841708079328971483765309020307850375354116844962867423949377044938084923004790504497489475471699824152665623978861587449226736719370422484318883373531848561213874880360839286764222784700061446497866870135303533957223709170812695317533648720941902196825402681789630895323661881572116873284214306325884385838410065544573986724869069585964284579086386673980425811348558217992575601784289118120073842248063564849619571635867577248485989058110757337121986290103200530320411773655502717554777033735606684979358982323256073550070115307703439306325856577601833138280022696798775890941885027234958591259586968497163333956037165289755647444457871590774000599345058790187248146830436080259276323930789267083944274585241196778779573414758528310671267732812792776041312727576610509865199974051067929777882396404384784400596032902276571758846192317572976313862639432968401641121850467742911889989886989170794148019064275367894638758124000570635490337342209986768180957403619880676278838275747685180029336608649858388154711014556012964028929671774878151842870594558459115644904373562052135714873233050475275014699991292976653376118336961097920690231787677914001613757309908573636308115116184494804349956789084590971574317716747020436571827668414547627805262589444212248205638872456729475341239564746275640749500108876735431268022617882846301870262287930209542135640961303119552179086856725163357931037065651748654624084500120813624184426419883421003824312605226517675722688392668059531498536588256412491184371413564061370619774933245836867936352918484425955341007986305025442147000736325755261339585058804328498016038498618479552044933306720269051593103320194628664776131701085335564452341470893338961881509395937402404266632723034374377805640848609101543169775340708940630563565162859871687238530499880756475125871842396739277149529916174644602328981719603566467465752733725039303241188964221071231064441851813859457083620043877807174183796726133711315336262866311748908996838530646295423494526334192284511593324344096880741847278518639851561508837946167960614774627866142596372845285102192314431675717229450871189603490305763686525638027367321141041352310885771392573799268834024217520717442216746538705123209677519202870981824291648205152524924035606017284549575202798329242020130594954524775545687545727783170896758107052779574500131140868118138037278672022723654794269446638859172110199624920137631150864515181745254888316000634303561637758592098957776692462803451954148138191117244803072558635742419367653718848161716562568774633655759437119775456357014809199231827665684377603806331802035261961787263220024817990431991138171100410328422583434889558853978264120319783248122734005945129118275002388600651196782810148867212150170970639852519119025650739252086587760923146285039470416193229748254848025189652297826268170307366168143292147540163715211403905997702656184697102950986917924438969443686832980403920578541863142617175383784162954987325475348866401306545604197281606734305024547443643937630502483136024909095568382241554066105413124378008064729197245041871288096846007106520930083622655751357339051146948595790504977300554311606680687677413360468625458584673295668360711688907250528699775446571820674928670687642306431381450863220682241953400996787658090197038954663739204219253903391368427159396091397603019400600164320479289456242247355517498865877742174080462476596581472776384934861600234691280949074670791597941984187219659641720771278749349996483638455856604085964236655707774576616862461936406602576726457142920496494770891583685944902659075412318958380431149754674890648184286905700150875603110147351630745787845034598899107002545734947931189562020228351814569279498957352718618727999848365575347231811546602668126655648793940394226660372798807127992137555684561938295524293249928943394844619485106836421221443014476759291202109442855633580200087773371145815108923180394687113620942139266355842866326038733877411456432319270144150977386666299775982230087788746203349881425350540386764627966130532033314634207207246236208555554123747346225516267356862383566361957142159746261176081720249998395247103020935809205954483124562108577438645801224400647319046053774432895881211057300983322585705314173954766314107437428627794704752989386012924920277290189859702086526415839202276764341342410038951299748590110879817876469412415629208716024474054378118114171807811378041996152453848039604230259126619869253839680281987756816662041664012716427581179249426364101013922177272932298788351007699834864579938274559873606367713369849933769566180386691061034216330423232548165341375513432454492500453094400954059614932584017995279531819384036062705725786900143402562875857496871353785895697932249235934475246637551780845366446778873645975531305065582345963916278002314425610798487008074466277518713844303161754251882590227423926926788620981424409533374826401575902871280928165169147748694174704596772060555205318812797353206987818055355694583613185578727653852023074174092090686877748722282269899230455988610703437351747441407201658983433881826394031922140518256288066152154018995704303296128134229298552313605073142786490652670648234423127063310529457017914872342454685721712953688654230937655830729479684470453245682035295630082058092232163278786744001729227961956667405238054765524473570675638389141129607875633347015259378005972535420064017466196017102919920507137031637632026752745766433411572846396271126160604922241107648980418235724638813987831620622161178308599318896006120972389077588637903551157612022875671173647729686459606327024566010467339191110988978907249320744865290177929469327727158079157704292857108542300193874622506467712662993637678162317391699274682804484452764127369623395819019154263166262456911088087230211980856143752754631889716246540646292641207415536641176184672804617379031159596445197325787960432637770731336608364814517962779079423401325011681638071644710638531489033513120795317724525723322571085943151307029553623671093633497671603028444405429004602115459242822382470869012690937371003107798195092871693485848636442912368425997077518783515269394967483539667631798234294038735946464326779980227876596524291758124476136643396113151323440077150307887777249704539517039727343392661253643416269068082408130864331688461854068735292876576688161969243616833991402089381108880325553297693732006968559957680709713961646080907597042298605151655875421893092206852678407250538726218767681412154255339384737564078324033477504068992507022228109366758254185193852335377692728897956862845887165957747958668453955682836519117964915859895662253226622936012360417626303081878474478424374255016282280419339419498098561338914680169560611995441633282827094977400154052919466166056305866283909346410411628480400659564757409194306153091238007781113295794692890608515600606432234697049736611923642583805924717783952113652746108872892436467722107993648658072985761517765017496103113225509038185320916412970307327950066452015756238729763038050951747777540018541833893461623807296446312151511694102974704633735399381059254201661097392896126421598067797077244385593428097935882786914219405544880460627824836690042476451589839609756627342489432681025887712682056052120313867873939464163946502764880062608950309295627171514667910040509322958607685667640243278302955016406956740159474545769573484499719951996486267002245200317309804582401021436075466418440325543198236822339381421709944975630725269735579822253667800517428305417588062234122893812966100736464521218797016789259545324606783752765855090287734720881787756892194911422619431845505881650859520435763230983275359331118372094564723893575743142012765579080092320337573525813662804894070434449385562165495948707644632631906949202348800977587632358010574385285662782512879662583846250641296418425781570415458780152442339330049789733857871142163994603335947287888195213416137946627813420528904067214061265728939853726374810733315567206518941967288584562688967595894678689063231534131395185292346517964549788108319917781249210844864303655448910250612642602659883413053554680947658292154567016893536629287367595058415112255709826744000670116964745038376184568419692614487565842242249857798102631995961221377769988912072100712979031105133403713921992657935877050186100873042468991502598261578997116067399055815388252668361358154913868532613838731070346605338840266900965471450509293362139598608474056962644656478231171333454523082869315780913646089574974125777694820636538202811887062694786420025042298100959654620653671801334480132991846277200904585923313775549688606525264600042448434300839075818699867190228813171283852205111354259096227871863168947698408196404169967442687651985127108581597115760582602577665519236090861797626650497985909378026417824512505871972776603490866688165282129206863035392577321737228888783823950644879295754807214512346976414882723285149954835814940688822783569789058897676085632212537245738466434802744871973779222507157093107039041698688790241612264060240331376264588390802082259634444533140881670310022764144932906757083871432103413937685593058885228091943421714676686408786148217848968312889022569458948505169929382548265486445814080144168494628960685547905993958475482333835691194293243573742471405007933501801471716193804801092007333495657117421145142193081807933258812843492843337076265367042744841395573342112330816679031710507551022298158885331443510474954773674337121485136158439258086146347159947116228058264212937749986396646173378105858001621814231855703765650477390853120861705700618337127037139354048500183545531301396652171131913996378187555052850392417409273286631865289519816827217847343104289131043277735546898040062439228885589457358464945171084835141595224592652187303217123918670790990939999204807111262053245469263228068677208648717903378869853999176322482662091941712145544562036177337606589940099838637947051389144143538671764340886314391759089762436911050134079798272628441553818672583554103346218544793105337031133559648979081623897246229126383770778157562215474685620609807196697394156297393020341683076768372831331807384088175960711438062920868688601370386046055877398378078612005974634207839196078192550405567649745349458766682330283231225939591372603169530440844641786709037281205286534903129622354130332904851358808688939925337736429397964352439658349269723519506745176363081472618677973411440253688581016875441351098629492338867451921281394146664804995359956985168747223573992672644368860506733112054689798268765236525256081987379022854814659573178219985505811134594048817213259274249722481414907747443925398237307453342587340581162944641371416781688703068010109094734809105102919768086757885782913812375775278223635033722729777049880259979134949820461971882248136292265859764558173626857684838327928348777861315374562000010324401269510907373607383853992284450377825446470979913230104018531307092074621183717410299624558516439782769684104931170497746980083976523070644514059994296845499337047334823080860335213525068174421888503789060745803814276343510246325304401344729255859356867196866024496732071631581306988894485469667707303138130129642823512363054474017597696526999474399272129922198157883328278501029263114663361409521602410772724782869474503053498775392650595309864863784179654953056471809174518215408148230532026322851729814744294518587878273709192189844197672112301812022082103486515176502658484702096078912647493640699308985195438876615730349575502309478384529049564564476048719728580965714769376825226566540144021766837579550960819432521024690942323146925967246828484160772037245057936706241518272009148425565147043945225056986609527010389062429522626452771617586081748527828173891404922480805267648916420921919114019633970084114992370144386067489373577498652893807505899477441657989743420714202380141246969936216381443978768967410542339836700375620727158040294456747375858873816252822062744761522505516650140326555724166247420364460221647425646912683076267098582091982755175918207662539322711954807084832575605270014526778159213128868297340515496729857217138616416804550152601702147180801642595356875178685089197735698791821471430053796870952475409947806819654846232368405729173088529035319778542003496943374788935833714556719119351757621051473999814001031088267085731625528699118648584325415551091177209481333739584542726947126520957751361559536028493452249633630682622381341458145035208885216207345702893274598887259850264184390123848558984756680924623125819792407174448926058377627016713134847767098776292255066262776420154943328917061722793034676762418554325925712469653953879577926214338117574807791596053209775509849840654548807809128216070000737780402027764143563961192187569181382389085705753758624651977414098624515018791659652468860775740942993709563837862478418249515613783024279261839556712638981220985229134756890922992050199953130104451538193863302518701555638625814091502952229814217585163422812369592674726153410874515293469104155816689092185066111553153956552634703977367165594539976035107350637838313595021521299051163467629949246108212879160793892360082901741673999993892393048913914802982449411683828168212782452244869093726725289703901997174163660319880041818590945214934226904090764872807375274132475444002431971125178389420478295034652083407920026324196016136058103028269964639520331256836099855203110569646870985806360378044229616082230699418977435320501989149684137747215330071162362419302744083046624913233412015792358979809557626863958762139502218214170526316270160463211638646088872053093787510014937303951978588669062037646540091621816994191463127687220340445651745364213130538118058013960382899560227912035569842213331660021875511903091830466063883412347932465971597412959178805075822330074317655336028518998762941205318028039386537835603582674952365965935712364989981382420243492406426542897659859185912830771757349540080040829587098231752908966902466801319532610500190723843924040052544193565527866394305984275159325061256196484135014467446514400096904708805495842945579636045904222489730180135256821468196262202683701986840436110067161936861517380551706552612056351532687850389161108480423137997944412614248572009914512301726269016309810192161773379016566625413579269098166174418559582439416889187203189822682747000774265884926453937930159170895534658246721545761775930503511433656844339347278817379083924619675029476824509719889487212511045478737825155812728437612433242847262553460805937457413134700505084537744821383873896466889254067132810456361520447101176142364963281546405202511960928096358481431304459103225275971208507416422048756995534359472145369488267940706340920368706005998168795203708894797004662769522077001026290052225484988196475034087443672680604122603130875969833473386505210751542032442469604384583573825791152280349145204293437354153083785037677938038081006404095687919973837050287539081010011332176463674898706590165739942964656919310424764747743825239916420841691356556020246590928335489870916149820396631698031976534957868782889828156888330205196328388634495415820052305327533598042326804200467713450793295589078941139192420772739520655329075381300888923307301644974883820961282992044548948752191770632563873230240938270638653525542233493979304606341083257157567383807579133440514748926694932746258891824852300183617657592112411584209246495513099900399446879601780369299815926042595954895283753619762802299827586195843921801276982742918793778762730229550011765837820585079847070749845986300916436258507641856380063996307119836030747226819698058273680156491692197364711364984647411236470477507022816145469894252417825346691069641056349284148695735970565887691703043543464345209797754373853171881315295759965225470912732666539533556686653951389954774942777237996004024235017812557971268526672321736330671347746722883733556097869457474876672898151003665037384690462256190721688434577415376411911461463249436464869735422384075619131064935465543884907650281696819439737283359733405259236177164508686523513653534432121731015035545822518256313464266823770791549687954623847715117765479957741289987278273589543737171292251823174958856133284509755071064958673347363877114728275861147335505379979533509400782085567510761603144134084904710022979764909702940255593202669206956451383482818216233059369239516627914677771433539431503625390778847764417717347000772855089521349526292397945516979993092118469548668245768712330430882627747209282399030525790849206485200203527917154077090091194504671061703531386268814182153803434176407027905254441870819059228026753203415216656327422534622612393370615038701287223514872627229844453511635921344013136276334624421916816179011209301993737174186814523377366995457717118992298379289731009163752285655628842825678628148035681283261231070951145718935004064804171243495729752369579407287861261120112780350448016418003423988142469470718023909626624188811072199406048575954711846944347460752939526630068722754920598564057317578072037403381029603819739136590565034414770888905625088293333750924866950703579310300736781998751381461751215724137291504645105858171120575512351010957588607471599060714222820810052293603359991729057716705035558619221368431507524463272321205972890276379859267616250428937703365834665741406522950367729329579374254644075252760618592638755100641027068978945776907783908918483495748157537001584505170905699646317905441680528146799730112157269651037180199734968384068459146644621058934049631630144980194199364150457985851005642705703947052817637716102710128285230453018960450196058655377178400146243907727478521216871150466348951544355811011698188923859006427153693535699432348657730233941635739530565300488271273835359536023199727216626576841458958514633858549743128832216629315821556776456132151542207839806821074379436209340604777124699782788272310893133665829222022296434541044012802277964807735186734429926991663109756196170566386500944641303873018299910669492652166583563059703746631969177351183757373605778944552672404173766172671339279985098099500214537401758085035251629663239397531951272537756173214431495407066752177934451061568479815259059686695796212178798267427022811857540287596535241458073441586577210809020285390307056178909858049848143980528252197140727782347107452574994320396811743182363256333957061116343469051348721770728043616150839925621307806965024659367349545132802590344599838535501331971482669799335663669758329021476731738273128997991682345978902327563432703953258205223431420257445952133680966389708443833556424394595304777612347554627092102954954945499474882705730038734325075124528805205551195347172943806746851536701203411971860035025345747915031259388713965476495761403797502525648769663517651403752471855409455432655192647103026065637625004707553084983758888839960549898281125912832510923914131641015130491267920485468201631763360271667093326782940609436937380509105907433705659902302707543876175093353201982029581800086846977562598776780181778439103920192620117589367570829599745221942133708549260647692932477095253446197180798477788567447350483193753453091567418505790764682841856088734639482909851431282755836312803124519265536925549762422290119191203586545303769933564597180474274984048986584569285642185069570281126061563087977117758863328148157239002316647771630690651507005255308950433311632249140654966663345369863063055059550812336919944994464512398605886129717930045366884375020443594556346578157397690816469908089797267250974582625194252520095696696805743525633134820632514271591140013475937035917889373373660784224183975169514437038233521699581460987796436010870918032313625854269932402909773289488330310222119647441325563754174961468767469871943620932333377095380139371641218188663024772063124390209151434345940156898152468249709519031293501425361352551619669797312272051617963151545013363093462907974074321088935435587750825063723183805725699487525063334489978546644675911979715374278420459664131107274174176637583640880224940316001003388578561565217585436158405526569825339402098918018972056110686890720690619972750107616318138018355811222314039109327894296574512244959848313248737554070064485878948231515057650498050433871992392852014818466442437140627682310646137592867285310157266613492574020326673464652739410220856831108861771977830453907960944691366237498490032606304957597622368858840294157384209372042362252096009167094090145381859062553140396689408773320749244154882724037682117807628267863927543097814112303038288233551519506466776406750560811014613180233934069694689494625783156045564725046466445009114516189927979291811889921871584670902499838027755484224617936981975268213768145416412016776043859101400430534528536070616052835506415904105496804804928764936348053242620230448207646681776496980232258175153555603361283265389986564131069413621902303468721033897817190302846948345085643908577376494338995322299104254834884745787214938298055269883698011249510837445106877979582926976042870779462250271014072311906425769120658135832254992039423137306671521071490793560716034545078249888132563201497419591104314286574899377717225477930606104877827181443144492175441718454847439705076711708211403324632935671388695136561457292844192821084464742354187714663375665784110658715248226004257085318070184519425380704705657571988872439156473010025467893790409641008609265538802812232458788973779181339571165881011078442159680895147049555090707466275456582160641079300955340721226183487929800123597887473221883411872630238775018914675875600218176469770617197910630210200974256586037917538839477488349686725448081052021768718005758738059916036325172737462585348777903204009380563269772402811521400102176042897875001937839858368777285382126467393573902121780944535996157763591039604850536840032388724821055292497360755909860639451908198074957020793111632664307739630338168822343605330000509713283789431034314487384323431729682097681145248375398582391218726937081543939865721379599136288863574436707934725171608314758266370754534643413728632837523637070269333364707842855182386472115671139328551853398738302179868762933671874664255989687136731255632935302648652470808988768131730219281868836828670102221914513037985225275786782286543265468074595621443121500128318506856824814812307613852847174288005094453832836505890516537886422404892939013483492055174009486015074940853216571899964009751183054464889733934859903267127974232366852971193721821023866954649132042119280815533758127939078336722864423501880667508271471033071801015124978541626610700956177195292495358216724574947088466971219984082722288699386262211974968204502979993445765811430879929817956230025403163452556826961930373599331507688316061012864926961098576866498875976114369790002462000867036635016979313337113476130660785207330735973938928838012543901746754980040486775408455292964641958366001086714726526964222979363889079588684988996975421653852642808195634819922230621693634177966919619571254727102787399908644049755921984882020702967725911877501270671308487366491471921414826283451069929522901044764220673163308645331292447752313637761395530315584641365430477144618352920124759514516744294056056039406845383375430444403479414698534749838464898298187141931359142509238521548848314346672753714943867996281978694832935306011861826172785984120901287064175884281209718367769126420539238182934902293131470765864675338932560143735264059332174814678214743335826183704480619745958153270580770191935271509622565925719744854878555763791629633841931485630036425369551480795521763580258690734572691691852484263881711377453096726495893008751041027699682450371365285866184796042204670057556642938574051551725827851789781874507588463670067656380788401351888808771977440567632270148047262537432717378122178571462286188584270802510919959009015686635448411525516218633882244093447282305539958832317714267599253833138711271763282148327657568742208981109458669237542410460566959647070897434867177539597523445928606916359369694625860996354057530591707925087721114645793720282594912707210863292567504378877692227232876568422132307006428173117804415886771087564062117770412282560616052422800907911529970433950815733917148392516679120899660389664842630438900208091739101673375382189194039569646553242087565986622895298144713916709954189216868542321991823793861315256689540128347982791439147558004868343680016297070316776209161473869396796241270436279421654869145321537336542002046017329220396129450849831329584632449944480818280474844934841711654915605370700848330246679300660300733452690806748704143328088649856211427444766008939171210042699555112586693175356820768491520830433230415605866212881368052437680922367423334143797090209005035678152142349528114796793669266061076971105531379103099581460658659468341782426442966240377814873071806806172149917598613496903511667831647832197934547486514461850485328525296145410426409507341374176112179416256220802070138137458451158955567513537960997978151135884379352271107405369869635429329074932778372432784779014313115385783099622756977718810027692308605846196925643074433941302370809359252354610111484416065920851453095040228776105577510751288956016180479542173629535114953096369382646228868182380347354203797986660769522174132736231596117226904657671097975350477232762461720236337712384492218212223427748966838512759611674034655847369817293132465285078131915091735433633754890501754646490303719208616605397213166949786702261425998914526734991477897385064310530231929718550121686363976696399656428853824465932679129654429852806951878034345158999905526428911273397172300215907644474338361708964046294336536227278735957477173342880113555901842373853868034372508555200630507379434755664521707736938445915598642464691359806635799955623736611687020421428108919180961321592073021243276873747239619410674974629529115047621934541169787269218848546934961665247228684327893718959401121651756596910646855743367220251301555047697560311441444549691111961943866599158485168983755529523492800643506634168328929896599542772707429965469791055046235396762476395841418945256694722134654070447992974519262307855161454034365107111933989670637633269699332632583519766366084568794725189413325914870229709790341515510560744657578242081283813096704397337323729715043742223632450310840660711468678940443232397293318698359804161059865082304348520495209236159641745566832818417900158810839574924541744591460495519295355381921146103745691192164903954188974607400845424322773043394796010296473690967176256718949769924817962093677818878011931275351136573852060672238344587558075532334734469774449497398726099602321212332059889767850556878465484346276496541706384155402360607256025387349491584562502935295079627491654123184346523054991086547706495594178528641670938210492258198811776307117422267737794339891385269455741253112585078275516928158745279484108785177553950838674472738106133147282377859628182057512975005644147590477489088414628601688382146484170327250234576990888091880150326635322937272283043340130115987048360030368239235358588447875213057421375896244618754524789565889119614738130062622370638536036116709548837710790823388591492059788385464586353766670501701817692164987585868593470486696388739053320813562480580618787334686408113919471078373176789337837296542173669130752669310009213204918869391734107544037812354624892353466544110473587380324341247302758160250296015775722735052234066557694650376560553336278389969942470374635156100688861274257082167475217868578991408400966571093147340607587683321124795389612393326487495851988764086119508976459801714726478006029766082839010208236324745948305125841753066155797418025018076881698715932659269139791371428295903565423962011685780943134531016140339772817899592254160838007723733372428123893095495130882665784577695971696866935040828549689162365881081513211590626768292358526512751485545831102065812250886576668980792705727741807647992771819674861486158335106467206923651759888241725621696009021539780479471191988042788182005609280132799645312849257177830173868713089123396064965556450032847666426981825988129490542384953582258464726161126974588695737165146714659075361239228211421810423876356639419713633415931917025887415982951874221914138025772924178624905748480772548859214611777584365070028598547508256927866518439936075039040245060196053734978091815366074170362164566086442476004208007955651965004501635123815489300324760873003258060395937049948898904509505050004614545545196727237148572907520590755310048431514787318684676733168389275082164669642558425589726685179727400992390468131893338040051773454093572071842846160538301996063758600528242440831226050759114052325387078935522925920566854145047431294572138011307434265502415937014869479704077718395445417842936570626240008179831327172504880256839749485721341711791431879021136604144929700437223344401029551961198873004443149045670991034071990540019499900305775469531761414130014096827537956434374605630729472777699181792642669214753420773153304148762646734738423245945398710607259477247516630722445965885903522184404722908474519194332573297886461947947810945618354426606514204268393717776126827628596405020791922974830333525628271515880657937767904675844038677444935323500999471432100720015590521675235048339677468869853770229645290315777376496897661543303148574820525858276175778643555123867433931229913176265554163066424308803460645900846791103623457039281014208798325276052401202987485178316245724042017972389618967324336265052757641524704432856008792411449671228030814373898083314360710588217723901488601389481721275972926256194224754522898872487058498022808519510452198204848818003391697077878089643596607026563240727991346717576100737117081010268261626105474466885332008673551650612878075688836941320445318967649193737080461127770514897318436277107589939197789070049642085171102473689725755294241883151330597307780837673876254060901838187028027525421026700821807351384936479880316640135387700361874427903119366681436849197623220039775807504964838724869654583544187373888173147418310934499658116408535616508176746535363590024892101844768247666047529806061609524141487397062175986591936092701642193271225357944113643746840272389069730102469947774725763144521567804282713059578898763088691336638040338606593652121816238831259232124994349163665957581349401357373010757486919710936893667593029200510818060239060706186332067682307906262122672321582377427384924890392286468798440890679128621872670139544360057126425487495946558966573067228665571431860343457220422671648345941750967041913104778723394630725276193057736137711199693883584494978932937814524488039839442109213206302314333555389520011312906858757746032382760590897610552348064016115770433690075295289909166720241548484075335578558153784705801947402927780182117338410154440085757488060547545429633056950480602009638289311503363379568214251754713191598363938954630215127133166473416595484926535279710091567796802445911660558316063107193828076973816540334035146271758813215500363377483727379015141556234250791461760025331059507012912268302351444335944309694467381270609935493042733971427112895740497944356133683599879583351217781117303867871006085556658970593804108919357394512518236291810816323393316067574386345120723756232794194082781842896694124115173287103357367257592086300861954396914611607049545647294704783070909574060453888709876575860432554935870217426380447832574270651422848601527255759815889270482828771999391837283812313266959212883874659680689345844320839948760427955995708444506440768497578425777581262914793239208330772675261983798005080083670560403915478516173605307546574941698833695745214968694194797000234208818713441496410666123855277193788321425290286044326561901117472894566978221271071647726313812944779239545133330901489096938829899610179520752881880636408678897907395354233829594471096101480113112054062189691037181539313765443011284003874630321328552921178915052199591413196624904158610665107178361777859533112667740982308376506998745930636733891694562070258614241730655287940637907471405769170361996430439411297659794639438886583813403785354719459679205240697314701299504525275167560405716431692453803400229457305607167244930420981469113441625447011674208206093385661012440304121586844059734763857625626677918527078615322888347864019887506929384737075999231150969415484585709205538812401451597056310023161354662372737232853579030325183922598528025295892102005518332122917937569381740400456290361915879419827984930525009336270856466404209620890525291534951554161491990300328235970106791297760756471039086408436901912075337839720015890400467038106619365524445118133231688378097754894377114501008330930971371734232507320757426742833389350362526585221671750205610932209729868363265414402711655002152328278673850602170356651841691533834708559003775990907214769086569887502793914781062345247194477642276781216944590282016679843972793971416025274167454957807976123823283893136590766271692624654184990697110403909964655877498717300288520024926753394969286143380363330267573923782497732818408506624079268744705155983745644943994709443133903797468835406837290418619122059038854436270638015860066642880930034703965099094228233026849494200002595785944214236486062439468684931222391853685002870506461692236152426452007724662343571217894486760889181295883913699667428341317688913097888246978775544732864802026723181941043703838115061663403475008733003510880283192547786909470482165866039153284378916031041123243256894920334653560443076819887404838294035407031904450194048211659436650264070078109630827348356260656781403681268680337542308167478834836027925939943156125648315712147256559191349712549358865013952456249715941423108862432204847769578354906683564693139268624470364026494724901051355627753986980459386115452406140971455573495515933717563770973571319965531261735909806406279390664875633662557370670161676003937791984707114184164195604477778397234811760293529488352249654230742682393644914851000607069392323558200464550504059994256126512633548722626922718609164025595389373793113486049501407619272642598342517268118549309870218293830476969767237805276638366836617806735106815363721169668076477377318373005818394835171129471334232595759252962471796806322626530606315978544439209723566467640325362235642582004836559777865997937255276719599534919293375647538922923757317111366003305536532857078804493200599566779915695165581129516304937451958739578044798005929797602582658364815435819635965402495585154217161732538340449526144953263003394158127397114289386883267009303753724948163445841525177705758771500116041094688361348556867409476438442951486209615999455096501619394168000857392658549889355541131762864753485559199632428045803574837474172109736665009106614143262242487049320151748063617687637202631025944848596810321799780871169451626838653149025178014400875071389916644018777707470779588583627843029604034766479699082201700641764757160875581456132873451160919690093271830731050516223391841387180991316233439303486780085672949981522617378864192247907864771771942760585849880052961579562639667150577279565592904957112293507880160296134805452917870407341628594067685570023306901601318772003439976439562228219004909428043520999262427610960405891665232849139360670182665927712999928058037026653523896224693349311940747849599178482263064701611150138074271342487172893347992647905588722525333347593516966354339953879916480407142893533089791203114426968267295032139762155346942145039039102737041375494674762592526342642233730912203027391648561844748276342669758989102968396177352744426641572840960868127593744064179035165536288190010333608024918135725843316995239506071010768605956609365265310267913282675886553196301821966593010250580640310578536094589773497592880462597914413754061554626697294087406038509292888350820828660734840412284767869786534772353267472758490359381174705341193973837657837850744258368113559296095942375496914685652224703626921725751314072760243415583740882551879632464563367826385566142454906292867102837951119541653170785696340373593293091803142257644433744204937153523148863035576994947082943100630813786957081811273761067602869562002301553837164169013139279246291889442843644002946075274381992396042879117881282354082763433522892972545559735372915575976257552279795140624362886258778608747980701610769158431321290886475223301927311263223487130287878382249770009649758096047354568453723883582276336495725490377979664236221239734375583280391069094106016491845325612060505661070136258271582776401515823427297509638234334388733923372071235808568513822345120878666304269977639159240095778791412652635002529019357384305203577053084470064419468811880139830235646413505658964847178163361517172160289793539957135768964155671476370634306822756679215875963482240734306699475219021115754223898293025517976890797359857574287708482981137992978763643601514236431391149679079546873124614591567935708497574736438764791347132444133406683364174051131672142545232743231721692756567217712546488138894072642314652396949372716179839154936571915117654858159300948906377526965420077983915261075300995726283348874178185910958124674345447903361173990875461157535235461108145791596062495785605585893024205210399510512822586428402889392613739602245845001233636435100391876361529638609057753980501905025634109096552630813383594765862960532006910725172134600237273859952224779715192347050211493527365482343673752414356296057112981593503179435808930849340945382888741466024087238919165655199790341601595342093130039534025986514480756729627292545033773097038618418642820286472050794254192155077249447397714858523711232585416435997864009032525022866748061032970033133349268835688322608205235450969358841542484357174718718542106442596667516830085143780847165849788794062521660953194865684901431694372470780299042994052076466138942417768275873219216999850751534816438114881120295182274333539245225211546260968212915668061437347899257563115213870092884179840140990273602059708502891932514668785692644511681924071619180596533384494656721489694128786225236976748967291617892439028228051294209771870714350731595411833500987309147619729917011686073557510132747709491981080377926530766957989990137480213856698949054926834717357581249324571971061912650995086880464504704852553612173069136738495910419299946871743837462122842924995251531018832165237409019096132335754623168345133968027704010666150009322572087711263392367321859200468751606069673132404874071178857764222540127265773644045520372666037663231065686484218686102550809472934538491769960196551510383553402940669659130108769285096971212875013499160150130217864195233649538083417858993001377277132327627713374546713744006610934373138009030825912299732760080600804979980135272887010060201873160019945518049037896185095614810795993690779445429605138485619057385264097638252042206554772480543241709276708076257011752731432778604528791163802932967494629794470718934192763511290798054226179405385161157551190259971708895044854791701695829112058002094288020726626264240316712050520211814793849321866773606669162734728123622532853986789221140710540601707723761110627981275094192002973549943563566108219701342531975245832456687920866479138791161609702863263768405833681048298044267172775620043439340802814830150889750269817160241822267288004148213952867613440964202350844125036176638457513680282370990696343764825662913584149340559660834190862109698008903008020803263532101492491671150606045838063071251843872713602423924704262144052110872306704956102993083257710671351767631827043984873644982468774008802319658140441132056307793047651237261109308464367315939259693171975870097029163073205808391068188019665097874763911992631073976523047393829929793383169172614819944517733728985402449665022675434329127332236521170077963131682635175105830520795625399025339851504879452194924099914094037717592562365421810565730441366458182984152750691020589467883618190448327872489915447988374531169017780292197290666621132589463405050485527451903203973885452180418283855031142656426759262670474087472015987852701746209384283836707745936562701655879214261556981931729812235821543534829952231929231131990402423053466089698437244228087998781719141853849109463707381392060600262269866228185946430493789998167132334023499136724756809655376224675674070629752597887465335757149658057453705722631434155572532447314972645837977401956875473454512866112691366384526488078829743198942978833650830899958096992605589983697523727029108847014330393909713628194855572989169820548600233065426902224275623838439474475446288122555283352650829328038102940573282586466721925706166532830556332814010737235609832177627578372326216245490584029279164556084634528634158235679642748942931942226698334104623361673492570809124678537474170162319185275216060320545581493663205503125838297083359639720264558788245246176678966106814417601057776223705492298355057694057569323206091648222037355808686404002751556061127695162336055673401127004567009001622438452705076637354761433373097553342753288221324144980769694840628945709976463462565473999479169611403781757075259841486688241011946572913249870357352012364373565344543150140568916641884350993829275399025318802545975607344611641344590674018994504790824488708958193477682324463730733006458492592869851801641731425907289237324459418805302343662391116536056165818451783920075319717229934916142861457919471543585209998922383971168686370450567427662311868504007800542495608750054039628074328543973466233116792066763302125069236790306804443266500862487998989470803787995591821112181879788038796845460387640381779341589989727715429190424342015885891737557604578376153539712785657769241152166035977286909730644516114439399428100752708942477934203179652236197949630196835458805455837308482589514232721721349794887315789688261597430546940726020283863379533237083599480718485008813724281212246727689219751160755238973034341166995275365705480491897240362459827999503296133900182049183987208249586474035194997955660804282716252285969983015047584091296433566287609360589852951064265984097225602331812018970739614307778603183016455567035705518532513115557786787961524753864683639140155586353208678615699707070237085693949244056721638882530255940677268704740003129480761229424101432819393507113506548338075497377556068875405024304253510682654109575934724749227749595791189163477083348671411467714350875863006999318643548134740013660628275402544108036590097538449851624400241986744268640340200407107029960731988534775876228635414136027020601851546837579584699567425483954709116102940375869688585203267064897816078272404610128020434759499497131142866313193601202406705729214973833289291273788341039283756475088618879889255260638997003145866843186824279074265695310618272251696050797622604734351075543338196203127944610669485838712672603284991594554307867023229887742333785767655994573868039807096872078172609620033293635554449815833191408567217265711642926487012520545913025424519956284577435658503736108514797918193177133298358780418630382566143010700958400199259874013568048518691198565735594457177445307953362487431178042795773567641944704713420261977887513236050093474220110461770848870445013736982818552422340200332043525974655023101146425769954588642121655576684342095976971767887463595071463326133263701140515154024735477358201872715614133197836825715693787649329346328463146498280995209800682061000308233167763159371853255954466964231438104350804133185371168986900239829623178548046216492662510582493086942937613854605356730897170795930807034746467929760480396479266240645238948115149798908467915870908613164093928900532336744114294243644712787216927795796054041451402040397203972135929252858693945940862186023744506251234527245275080122201519456984183371757557505767615243245409081656060249031863631687452193417841151651199705242511251389935519055195623275115950627289436142201210966200981121070729406973420505555271914514432193633936809093510151447014248802241432307689894048696744536230145557019495054267720586418847583024953816531547184063651025404510616343702103395755191275828674211987878010382343384921323607174805866983476426064671965016450624301646766800857877833796041085524985739432164593018359304336353656942114694448571345976993966818669794274751679253094879619146368817096924853642204089343773085420666451711432012091204293489211344367454154981793343482326301952627734289851518179589242990644869748953308341950278513415027291291113275801689544082283932400799107632717780164357143285190559951270944324264206073657705162889138184542343435586777519931826087780200122436796348737975155354109708886343993692786010669749015938014656343994630098162909335803114874667843300817589453224027447679364868805475814742549853544798796539510357971119880130530673616197012645897759968168450290682078601302757103463689894313646693684942446767171064804498408885962606795321539201225088287986697208541918270488714022411758189466321955411159730000278965469028457573003329177357519615573512222097871213287365908581161928311089473596053705263611440644038773603356063433797205772821514062397299047239142364933916120306544779998903304309266131864385259961505903977739404460566039137777518615995708054457332013165680589455497410450872487062539276531536615379765464523162764790876761345670655409500147183798005943638908731637647767752972372100577514947588398603637628867578104093935051976459850205920480236705070776353542606682591901154617168177099227498182113621102529779096006705506623043185121368538440543039401368248370660266359524983595122273583505912352369087919859237706878948083046929832866446323065877917238559879178149862283152488301869498015099235661742468754018486660436108760441517166788590439915161625563438692176676540453333183680136779095053518836247138131826301199021134347049295243161061399009966991981333796841016072406078091077882357331177823839597486015888554464310678828798052062041004765091731185928186260177960417472634513224966605632012742530861682246653460828862995017042795039645828153062226584498348057442198104733440293365440150633372865331584033925676955449849078513331311839911123307175875291476496807597050244021290789589611855504768143292007990273024504480289497147464107302563486104760922049270094908284996457161012654576575500684139676986073993894508526273851453726536018554339165281765895079061746420613022302349346289976217292043535114538040560718138961969575438965380311344663419171887408352669118024454654582023662179139439391243733512414731062562462177931681291939181885375834270757762360069618497276012420018461134928820058169930615391284562115355750865694775864913411737482011237382595281310302627161013060162135975388736085958938847237723370099461370061314424677340916949708299806074522961214099916142543550182471614716472232365039559386645611854262890215074371497933705152460459311765680684430435853640056974107875492322953617339808342465293002872375291339999123083713936464411815116244037802365544468725571817921698142187932391099833398837437245257015586494727585511024680080788260842268652700191417954392554793934615560190936851690479278682573501274452170446347371386719334768477327474550407927083393553573113286775709797580978778948116319329285084946817680463819927597780424232022779583524750963319787820005830031136899747841318461048585384461787321186173428334566768435816700509212228319594240071771116371472796490904025408798218208602702974850730219385146449806647735573336933127891775254181256059250390380292969399402077788667756924558820233470418024329745021070945915544111440923614317552309382487317331849198713553302603080615903388901004640087937693361639546257434859306864705859076989988567756635703031628611990760360762202350937095666941243877925638554592861171602013882182589172693764118301721739836996789139516262607317474446223510326514904863655237014281431395543533258884368237994160302860611532367043689148525754301521979892441080363448444359522886844059764988177692896954607675579048286870554539017143119685769653954366629794454879359110379246164123601289903409618972476968315370127144819469986245037562545428167773028327414575956146484196993265508779137669874573552598155600006413803311677290447996029094731859146533855281365918827021960347937204299231167998816672343990659768300042434577723918465308344545888068560889405453424327304401281693997022509179680049462127363708096335955300270953013750734469090961559237454543043213724615809499043506550485909071000487738165289870560541580932738687089625488661966321281077932067793359932357116139471209489266812343600647143178241739142383219569035878787349808333687053309993826259081788248568754693936444903584938675099944726884643549391894544980482933616846851540639985767772298778244397012480237306523430993045505889069374537293942825634740368975934156305674452616551163337054889336485843648025024730046791622716781554084814821944410161755584251439933677384221076038508741682631890198615503416855149626094032726769189358889346451092004274430208561768215243399777841969761072619657377107383884931389932857087914215164685027895682389767536450084320077575513375854394785527025283879536007653559536585062843299843041484406444946746232990629844169585308090266255678515218670734883787361153547281708305096877970498303426033503105328894055581834900680266129575674212705975494464249067266986014021379072853562354735606272187014034716016042120842907682641136927086890451956574114836189551889994451213416759040800257202806019665381334577848105916733376760793253282387874871207281251299544339839253669565809113610288390332232658821532889790327150960692114810055532414553194069987823892852152165357298140815502602947002258461459982938799355743815258434745492207376283397573204009580731634767344126388541378747761732725106052557580802877315575051627718891045052597811326425905449961700294312572003774194189400090300425632429084277172795773306952572478804890483896230142293649762283086567682822604237372803579727854694243241183996442851679928760350679564171635974208062172275613958941297008532623801311377357293904500401882687317111967223864006079122754294180111186895974288142047740073263327117802990800182466485489432563574493166553378040417645218100897460407388767769187128313416028123447523176750894853836875400414891265782789591275002860316825957138979996397626297868947771422425064269778277948592074306437670006184083759632909996586546161786008698510163818601119554939587641271537845863974895130113340396994251921942669934088754569310504523628619340430261065985563240770415743474455702443895441364329257094243294092723218038083369645604693872639324326514688362714016941446302925394349083911611572348276479231807425983523784464116280065919085371848308599920333488923048621310417969619625481718704197142371337052406504869667730736725719861630651392521459749545938734010491005881366478161777802344974146848995474939107474425949843548328414777830797180465463233130853116283033723094924480728196188746380753990999607776022496810390946679685226335921926166899902290404096848263955301686917200672040347787441535349469411508995175134630925902829024525441345965994734050825893473259637708211442435657497825488332233303985561965064038202892041866691652969831972418797944632354100313690482884531531509650256297742343251630231140875629911450312871125203873721993776306425271491481045318936030987796635739988468822048837349573359260743206308909976301613276095812852584772593585018619469193986716119709926226830829220544163521114062770442583513699517446945453240276186743675511321239379405065342282069710196601116450705417534964302033841424339823758622361986893370628379027841088718539296424508656058901969813073444023455908545781135333739836465855359910192904384276340837680548453504144178419103809137707793221320022318318808446237280542132711624195205473788714695960791909870994678010505290497091060049580467052912565911943817675726969318237214673657540775583893907823358249710458064178394902340143499390721435274933714412286759343212474107152107620526897708609595900377892904210529501863534674555248887785068269129717685277128926753443406993302055832770329607930586087980848423144673405046386789515802666772223318780102319927122254993741743906114904035281618829928694891267437119994880318485097788512433037503905534758737557093300457174660214391614890249029351078154905763834368314738824800371936841901573372377377523400910306629567631439338824610686284811613457204538642886404590233189262117013760988302425478251429901144130697584168430700556156677683535021822630388092825871930318421798534886693033681595879239721359041836739266290973318228221756156828907140345442242510257585073247600859785300884760309483255073619226246289824928098416773339021991941756024672957124204745018548012245992669001877013080286764347304473765064605456164447457856657914590119327645657788428922612556160007633018547440827119632558226822962499150446529894241047662346768634867066869319757955228485470628484506988500872392630230102045546642856773435007552750719326174913850206395345481728175589959826581703035143847228323832434944361093272206856840253680017265450107484443747421328040340540485587098886757267751659686152152688600935035044654860851917110396154367854871951300555336261680082791550180519392214054879711777027009481489673068309310716392174258391173902228135384298152596206925014876572251362465714653445669985482828084703608805942273349324096009318546382672066544786603624539192800683128328825947367502546977721681201695123824183615602886087706310364613702717477243686870503715283488044239711239722289212737362865835748934050298002707217341111311266859867997204421756877390033595246660230269090959488029053986716580890006954552900716532460212532222203943322613257243968864097562466450387894745374865936324829987863388888313801700296621146598980159257015937424196930366838997085525238089308001936909572209334669924051697026804039434603427666185022955689572684813226444670905051085321242445822678824277712904415406154490791669491244725336050709505055181187983972399105432849820136069285934789713066593329627941488902195752392606686036559650507382534818650930599811643653815419199310912581985545192877078423140550658231931202718199964576450215851638415602862838627847208285872681921665196156091195161535520388119397139731961432221343792754960947320419745782370780390838879174555998720146730924707218796063627380031137057880976350073401275761714607903179816043035074233504085423765941614350547172499881508109473527929619919477566378496871912735989197708478240868532460610064141655774932297830976418615829188818888229886203641228595023794004518564006373898466027828008593473358893039766073078810964027822786126110899038931506049569499684186051495819444553368772554254279879158148845527891432302679945619423904835183045397508871115049468946029106547890755814806004400049086746689297794072889044569483130104672129970743683568829211866739414297570948135610484959655183815258142332998716951654459941253206023999132085415366288034914382487682120285286328246684194883596317076267664470773880090278123709332042397237787590509150873011958008274685249756335132610510903216655016447893207012705867596359620864593236545647413570215309101720491987686580056786387410375195426542456095670679135405889945478371382186857194740813507918226686212795961740361588999772017637078045949266714833851672027626284866380256138467617468278509900138818657417155750642429950081839769115739044954042420936865098850654731950908371065496534629776883269664665437558016711195320009961140830787641231325424530993530399365915418476737235315226419551079821431970939047391760377178676928855577816078932404251918038394848571069010538010223826514453477557578654769825228741286710759302319457461935612291410346092578022611477749538804382641927419090999792055250942489569666533683644824796119502149013968983424781087527277994480832335513954271895259082647023722896159860994394932662717050344011837074647019276963171356732196527407269658220462570392920828931583830961888222179394074002264870488727972915562716965855122610128275113397025006733981236829641719470577357589523064432796226893006346972996636062846468440495095640610896583238128701551339563562169822676049164117885837295514718563799899971450326561048265993234258148017861371331467794447588997439240973630617992313941534525542384382462306134049768878409279792718193777743716390622658625078673719385991879085609782769952682014083592221208374733721957366745755884135226260288527080376234265960711786840716176857149543842255698873350377714671205328701969683118559764951712163512579693649348427279140831981964744305187773476650253942818065189047133918723318380304525219014356368463101589006537109074176527176383962975932971754562388240773658579058752304821099938747024176230951720545301261722055996962582890146718237713514897379968643521916231075902798529699477832949539885866450474584084938467880348028459769275685531733413803485308509156511775639913578833281293826929512033971117949627753163385854435253011537464787989790902434489296961932056856505256594680351960260323704823228656108901451249528865912378287380330549224666707421244027824950293956891988402596544882587428364820678403714603430118821335751304555953454418887367169426485325229134621878178817189243585074225799058100632680362876755967162009592909191582168981937355631182446165988011842096976905589515164227077736098253108690869003277721669979499944393353287428084061425216279100040206453158735758903763675414073771772900256414540337055041101811017039531498927210436427176527982222251487415586374102302779031643057954849711292334589889800003353710508975715398383723492612018511687934336531917665136305128268578650815021635363647641996926780779338205201533643285524625983261751363773841939456884493351483740904168508335415665023284982498765627690053064875244534796734490670752346843148574254439494169544536079316450418670463789562139045176290736751489422689101150464315766282198856801906722943743915263094280597200512383217649079387886411612798515240798189665888953481326027304822335772915165669683463646646862555902893859474740829997067754305126172688225289894720651568750435045009298831190953835973069377875223288046278960995122200290995323372682997833153484770187588541864611614203763399206996045374671375099842106098077176667717105074205601286941413297832071634745993613526223751953987314979049674061211314743239077252028533299077225971786755200780902983212276175759884973686938569689157927695519489272735822114010792068656054668907140368352272661361326211949324189385948485515478524463239914864856147788102744490799525324164391477499961965967894171665057027837772336370145062015366986157706751165507885910748176281579973184388373454144948449404747273796176310452090523611364129291931151844750731671885631383634790883164956876956656808560696419359587042828535578843522788741521284757113714552600087861510940043167966617116971126427241810137837106201523970433401654653784327606282867089995226977761347317917749077837581043350869736405458081601259712487188119741762884888636667997095091077059473442910946622770910131281274492154990975010780136194799951136971727634374888754286136844900547590186225059527540830246208642753318223032138032551974072039304752982257187362515743695670361919224065151504143288569787259928294103251422333104424834347858345591170417429682846753630376978100337816823229717003737558230823661082767418775941841276599189865060634856285378508375856802755589577191043728843162836452212383741644733564461044031508289953473110909280910297248969103448916185191282309327904601588016281586789095145938393338772703471422674590006186474363371650421125550590443460560339089164952240127112075564242864282299492898918703922303418838467121040923820817051214775318391373760483452654423213610093830552329926066521209842859038549594684112451239279597625755473841649066764858157172639234230013270096272105250468783243906805450327574343433218951961510699000794657778282168453448977007895073959299648244599029764130048935095651069230178436253202252993614965762851583085588546264978437272893961415988136392982928414461966092025274731514415351710368628751027319670161573153587050263012156332999526652140864583489703928523801850140414214399361154959116570371342391718994672062238594211289614460325710647894192934961230451656644522634160054322373961757953483767648133063378336857268984780622106397138752107045639381270859152671991129464050504097777748602079721250016555072758780999873879630962433809737419055210327710344086825142306945495761557276277034599302590175219080337556908260254933638237529113288401038441636071152501113961222928012836785789363900648889238837579512896443231861247357729053362747788892269988988671527321470042487464932217962240337278623458441004730483708960433790764091975265140460375261877240611323043505518460200488012827403166325668065173382940804290188705286022366002243737149711874651040115930469791810539823251079063516227086385141400983823973711185475859852435301212399716052136242784766009480527406980288521655700518679715499201475517266013672100265572722121118190777879834144218218793285570488650608248999094600124454102585250289680362723039983233027847970935115169092585643879625399384812730315774737463141005832254830990748669125871940515450149017977162280909135186371140007021098814386387425953079080109351274973633708514081167786455934786834555239351549823245534887550547773301701804746434479893536311863261317252480792463136336877987107999110253146971296337399318804978608738569923086430475485546775025430663548274151502570993060304758011040491928153941383034728543465321209324516849812161998637304889904273443692020726071413868513722993206407085664853305480710507587381176196987505112649051296076007404143113829356057572081318659195977711435654371374383873952446145135791405445244105170756798654447053679675287020265933036927581299632026516537219146931791573529691053251321160401250540076784263785488830899921526134931530088831085249911808319676913364719553835400465905621758431385672040406279506865418439069975108693095090794832158413111556463324814402715836953111612218389530378705136296775878612765329745465746344575084155413752034872758428103182622729610354242163694794370432502314274284929490721577666984209165002738485336559091408043895033114478440570116865733503408831146108936789149239927991103158327552660078378031613580486484135919687349081872047752275023467916009922291462641308354017872405066180005736636260119695465414484041156746728904298514609599910029858113006921490845698359482909141049051224725787147755716945956556650753459580495361502068827420799518400740305501218631615793348899854607956449047099975002424383998940094604604556309521972397772040186751452635602697542797306078438811159909590258632104577074508161437691252374748369031289298947453418204154576977166483986242106063347370942423484516523513093428411497423065184274823683818254526533870835169607548698524396167616630070638732621622227364876881688302055023567261616409245389431834873120717195606973096107580202679230759162061205784947052415982355547177579021021458173544589071139539063539034766520414557919843366693114096822512628258485285221579163259346278019653312694992761969226002602325672655227939911024954276076167454605445472704873931796116792641509665263356092708776116031024947854047310659902336104290279377832129430615935940531317155162674147151598641766947017038558683640774974446990407365877579715752801537589988866101659058492566641279998578994799901488853457510694776383209939343087841193759261880300197614796731006718610581837839305438589789347643605376388546726520668200224678754171476469699742503280108247186256887727073516961805589908565483322891099987125429872821617697721703997869107689629468640973642343453011135824901827133381969819755900041473842428256869521292221256824451334582372076143983543809841579215873947878429557036541516910925788543983202754904355585052982933531756326527884952196489185808256414429859322264918296616212529483823294162983395295008957816498210059725915089545854990371211274713772653812575386963611446636883211808311480912168021307910870071869412124000115858571449640356454760072739359246965496971421818510313841695041796256565314828191723087167052696994983039264559176372093332903292397192782359660855443970569327392552389523445386807933090332155897112526478326824509667969959725934540949707512333808116469258626520348903366939969675073073961809913759958931919707582914660751639983529390087040206980886827292398289104782973174628872901956686590615708421726355380410961661710839311992864793875949016232363075949227662786887454330088911996219168835407770153284799817375696467401955716998082064578355183531482186881652163141333338382347628809085084582872242807503477808536405013753803136113438009090598165357682306879921051055662012350399492634368211489032793965612475524351681926633728533094338109885610760325046155758518643653060730028610731911149217413493313416249545262813188657907610512038608529085440408732818726827239790182054535741048542387697494130844777343694128819694775926600940920492356694242371565134976030027350931333568124004293932166797351030506590073296617064404718712248128560685920866285519174816019678241054449752388961374804044585136073953957260004680725428566147935718460745433122270040610510695865857746061198573850465364645217237951434141830011343348303090630405473940349145031292105876090536453755869990700843499012628261129432986488188179555117796688081375036220960114457603377734595217180858617395364821741140022941493769143444036245773787795978222738535528033832281328348270088655198783504210053322997581002913374200160132242661722071896384100400643064145645228511221697057212488291061382571659398571857131390915018220134831169117278816370700694718899997529252904794171211541914815520815653249871402642132412185903098886189568779775574887385421445267925853542823075147816306722881341050535393721845493954357703765365071929599394025563587046827522156133380302929557600641871136348954614706521471636246975360279925968500361482286589038511069344455259891949755773142619287861086757379825175565344095689131062797201461615436226699352473874154476780303184677653879334496233794001871639067289460874678850603207858234018384281526041153002910348810400034406336555855244023200370593750750064855968742117969598774562010724791416744619005811110034245188512096373216240002076149808735112984907283435637851673858205455823627375451380720627724931778702871994972305936541697477173867502384323074797212492301353157029997966798988066563116902769130375615056753623612847996027200138352221435461758716636300111727538426543054090489342705935014693401766519666356659548243047547699170767926912108898047612885796378834298669837142788449344166886622319141016392879275357342403574867304792799313740304128364852158880325522979124454907338733584518372697018011502968358291190403397553169400757880830387548444767147427776331076041359738748526577686184891942189218691904368589073737031552485351634722216745297851011647823326793183536493137082636470662958733365777393384149551637805060709505072651537418804044126326475536768617436760824443509153309071739861031442621317876417637371664684440532334300000478894051946898130957551741146045062972003712405972796070710594581040688613511346141893733078087436323758213666925083286682126951720725700196366135123468073030530913402613833541966830101688988354545469100850023589717694396566877612917564221444304303806441539093737187623600665295594942699160866983779156058771437884852749945305781297047068321525778400614632123392619552700019089382472486372559937493150231677915157389036599693766644680056968919982469036477689238593649325102519562032526357972994540807228808232857604103551354017168597601399826474105761978040297897527839092439879388929627092542768391175994354339977944426055241646990508280331887603412212532940713881480939780070369388914004397742052081772941994035508526572974924963631299971690672299373917206257772743881658450025913655661120069764440736689898040111640986903361927514991876758473155351312262119052187831850344386143745420152241346770459219497065696013791496478854033349478861646091302597865122026736283557692345486075958382611881931281636575103797873948862647363083456603855997281345528461653962207799271119372577241486275168663442725499727242452775292858489473556863132404536903561389751185848320912585160801374236794411884328950408235550274341096096289291233063231844702772314199280717885350394924541629299784702136098518827141482109686666957499641202019245334876121853099966379391712986425507714982806245505990852307273116414080028194759583172001703396583729983612682805804908304749431418029716479091247197019796103687442868889435210314471143639325227531715941831946387091945377147635133072311355696548549868935975615271525442426951021702582159019449921958559944460344078765625235225944734624089717982974197494269951218420718169934216780044549896306162322196679899010019712382767354022364117207102634884383186558773543635404200751926663001659889452694059907620451917265668225786515896661603405552322096634762598462334691121669568616823002245631393591045722448725875325877417694141154145940011904522161873236367383666481606199078110296122344210433128418499603215141138330864839459828496772600171724487484514168176044984734166787192303371347275457892057212211894831115152732773006181408741188432639515486030125582299048674128142645942428537523638584433274744151064537602964957047603073233854987981628774853150348889655572740659844540322954583345259191190171820003128496156325274347273261030111609556642563312092657548617705353237614045269438508096611389172992045309961645345126503843142673039454793953011356199008124697294678334507666698987967041100246368006661883936861915409760320434842334466095893846553222804015114751685450371356854188320806812981410508199914843187897708407032928183274959037456443408431654120556971075945341095027727637587907632683570849792366239519569703560445736573350895957523919856207832363552706878555796226794228629010696740993189720921953642162078030570471209676680410274011114137552989452693706423510958453847581058510662640677740290316078895712993204880053251905788312137148511531792308682504467131588502120845462056402446918469508393688034741039492902123235425563628798611513551388713439222711259269869376865237340516899550585304791718611108265143666950602581489185897612732304599554516763366998753595699215418999142462448055740254320910048563579545941686862152275466167335933783934358010786028067433633222276295914955986478258647913236143260872186654137366036461015131957174793867175310970592475291163443657965183591942197936412525911634194199605941228097312197029884228774340251118247641482061679200118655944342720079100364548883012043100325374401876803124869672664267184649061270515832150505225224691578521099794529361797496557814683422620730986990110556768713740897178480702086387136302198644400627832145143807786175060568976955201413857703757510368471580040346045607599314611534341927382254797347559989038132030254502519315500631320608247004768211142211288087187186687747338629206216509748621452518678081909905444977981216094065893675848501468979146022070456610401332252543959404597130683184160968628103222982620428466752917436256584803705085194056839947933511792893786234047828079688753542673383713623541346157015708758151646367678104406932499240510426550519893012323238207905258278712741238559935239549926231170626340697906912867777075258684100808764269673927882958541734348901849556996283674651398874106431441851860375510726963834530478209706700495266798988221408515377417648030203630327826878428509697850389342724702503769799568062142035272483809583897992672727145107971576493354939773351785325353323974408108496668336184725623694436930055174654950919820877133382098223794655269011953727042736678013287212320621932448542801644096990020595852949573409768859055751392183137631276759382295313679011325053541377795413730195852363314337288423971165988031599412375868465447571275021601326982434958251855208323371484803934726124506390900238872906141978003399702416618291014672337101117741696542976264235516141599547788433632190504817632475858652109749812955616855002917346810507544047072240507417058344175132125710106009496623852576980663612748940989362559855340476491087433674495809978438826510370345593360939825785465255334107952900585060353962359345600516477463584305023853007907760436931877874362629722700493274552670620309072751539664959474167285286496209561090097615220022100041006839149885529130221010870191371361622235480467655396915171403930186765586890642315552962040001141645461921466318971422959085004172108786808859966195332630979548676059829541582898040297818185354969931007964012176366930317404800975945231257363289030417236659760690986126494638646844919214061890388971144962546451386912680192381207286672789031131351108174696517549680248905399141352957885937355932764464005832529743303610764400601098921762241393604873659942467018972961295383932449806348333287529306435863346677122973818662546184236998460054003920730593199679089875752687777697353831033983171206173291157011475415358856537771445505524601038503355555891678158844424605010789721326084994123503929121419196105108914120710262550081123362248209883779704403406710341353002429044931125815921003824221096355697446040635230165689626173819827267525103564386826497227705787861276776069040166505956971415850412171370130699737918956602739053751851404578866191259582965501627845912383915318163706158937545189735283155933801624893171583112629391603679760427470742622408943708767023251702880548222133778422758298499418485616373671946964143908717865742875233482272838086067102728460199448491135250328912322328978512338531459675951360164839391528558197047604092204899372087779791350932775262920009282576098625189965656672453928995730530089355157145834603166330332658772529038940107355482110019317369790749192554666306194306453843487369478173329668816985971369963316008466063739750909269722044474598230103673274754070515064632996915938704918123019466621809641740246405833624287075604370008102013052572039673441473345882691225609123324848658151964166466815025590802096510588645222985934246425825818800418096270361997474074197363966580222958750774430776023168895261712608194930545272091275015405856806566084873708410413019177601048157028186653732503818773039951545928793794976467470368174580157345378911197596262206800615914241080828072421343666837232169238598466275650973687182320458687797964461387875539971744771538136857477671229498824133194678511582695105719991640758444270363902976805285928867123593574786644981839434113403000325413256160184949860283615511926541800427099074188470621626058637031024033851926905804666246712811854503318481054165712928333278478627300645093200539553896819331445633094114710420933919830715447137811705066936111453656910642299395573030132132786105704399612202203757619690308875507398559444769981194708025990394550006752112421202306477746653800951116328385456680568137750144050997007783207695516143096892177631327923339085858211204363209625591195340392365921429886710869725420332390248864164304255213918818745579266914865792377606298617416847781615547268852057644545609652322506887417952542394219794784200206992004719345653814327294416528253540385441915099189283331892206788339677896836788681944744155681898405603427980407432029320982605013914173901702539343850121690823573233775646380737470023006563340751625398226265187933567862405772263417918877684131321915517923812769956692925916310143531672525226327555188195987746506554645928218546078960619193681490932797988456171599948849115474551260987404506691284194411693765750539374098467331423107779588876760579722297433178884385849161375533172233587053005885394732697847335937240484037971137974560985231302860317804100985383901467566074477572862678577360319564068276371454254005504365847802565735267851342064533396143963076392228366129720556561624906374052276185275076629467403888276613590069216141419649884321445823838485045313444489098793981451610299628370266227559661996923815786343184927077388819048566882646049672603998670910141644736512126501345425195416934819511651294862916420816039794793984558888429002732045369672279426249504072191437033368476612329153491572907849296278319957967925490422517776824897279836604684426171061941821412139377727845444211272609757414631517356325618351987927163045190157335009847126316275612294534562428246827624749954495020754458850526248797162164279160552892438112587423607906485129118767853872424488179073425472966784451452212512926883673634318981597815123797422168245357942920753516229851953340908281144101593518495377417139932788218422381976340022024108821816352648799423346431788314168583038422444474617259047127650224634158703758205059426299859768057705465449412187144842484728172100834668314396905402440117122617381795741705302362091899697432911503948761736038446607882419525894911376186586206420926903649528003359030678058860245163614869574196754427499718864575613084259630094309212373456565360972273003434561124515478216326347671124688835062793438197268671996029112530095699890200185371007465920607855294341655389410902809863965727013258641176545662158135007177441269733197120547096741778632521411923700624819240048153636557886320885485985063586215524041563501361270688070078363091704430069919810680511346802320967790208790402103311567510371387704436176020447821045725495344737894725302824722244819020637600003022675786966075717948018772465586443046706092249475851188551157895254686100185718839768058520286209177755717687449733336295936980946443362081414566016468662136634006488194378882511584705424033619345506856265833577167112530592292800675156096684535709988312705817400624512125793031421263435251096984445980114284406122701467115621123877584074244422944839788851356423178053016662387971130460502635470824847249466233900259262020676968864263259703768376983679466235160468334149009888594363582099544930203119842709446471135812956390339582097815731425785788794216761986916291272350658794992585454961832158251213925585439861917514719171179718907780360272882136458586125776819860924084793982204727159207627877481119016725885296623598697992405524175044170499426883188836544380635431419493073534802325574032576530026028227673790044210921376823917965318002754755719621468697053093753542653967195898304067243770632061427071133917689093111875183669334383687718726024899308702581691568837015086974055054085319396295139694055776993372554532623927301770852595072482228442939832069231620747496630741642150019629272077520202275920989014662174047650238599213877626213568699730804377704364611995446670702256518401614112127883272489451890691400211503133569218810731301548127445161690292521865111133487421753089593959697116908077857865949282033631894483132913230735057396450261424249596970834859641096374968288206480078402606186884455473831997346472112286085229643465044785040537448929717983510662868145587858961679408099004058467319604618533304918452747711189968174486588772628417082964619347770210881890417218552139507887889999081973521994388151022983444005789486937968591541146461777017822871392749772255972771089366128119840076171383522554748975642424635674170434402790060500991575324556445178306069731217701285843067362502472306499211014761919036172236160851092162970087900067833485711067668119096611885530800112867249936132385103024209053892527321539770811709093394323993734857832370259949426112848726811980417869824632596647903869528757362668499751519165037292899973886501647155684863947196945632248648794522730335511200356526953932542207664803568023058945351392635248885643320532504263818077387616823322756114873500341633712480386938794085230343858806361676550363892442917204959355693708286464224629341091326745435020230447222252234024258561931477913281491188877498175027969149443511301210847642505321832936692668616607806213908348085281448480254172907490549713839763443012329898397386898994827148552066053682367997210066013651919661823997577069007757236977130110103801243227849975763973252726821526207904198094900253199966732622977146527532512783282868339117018589433978669290418982644619335286606938844532851295789927413206501483647183718958473330179231775526808252807241632188925065053615373762088064439319365512555487444780891290004642978861067574518957667929517106823924208767965244671369546118920849796985539754709710911252374100410213240846663901687948277094917213423153244450893585493993634900356384686684739968187012127208021603597522248297229530765929936632380752483675317477174854441795491164416165220945724644442871545099571770431120478333543368825531920035937372793874152411995312960311105116818395650155849501022989430369834125399148755772073858543698257784368971597569398811115243336236768801215127521552038541210349042198125736032739577387849642443842483579982087634047958354789323069687224441612407079320971458478398178405319907079299922368685421974022632435520553958606364043134163026393942554460681160508733093732406885608444465512082130708287445717127852004175901461990546501176935660028353419989653731045284281833943908371836115759572535021390648357826053607304251635856625665161851541934387819837263159039120035378148865926429130301759665284321529209828538612493720698146643871045982711310992553896679272336813916515736196226831694904680126697411016083167031292629037012674925333138732121001784009245361515716373469847983201767853386335196481283312779204829503566124421810953395507531334281138320318315474758319366951635252929512700346069765034544482685599719399418663721667546454346270638984999919203485728608334761589128522816981480685046353395535036112904331912697569243993962556645563876096242155237033777300238209011129926119196284926130115311986674415650912673742177202085660266607130541486936709879388889962338643686510741106894761686968271674557178432051972126820813668391128814513851069628392040562976361862776694641590102468056574268964748058530437909198638847187344075659294005166847653622539952515632536084875391998676683750624366472222614976240556777466252833515024589394412697138136042089920614026484675287037828488219754204768593954840548130086947641693286270384260107103865109160899330247592216212269502833666968912487947363206876141563089515934178673407185619555669541356448182553073668297999033696610767533137153771266653613858844577109080607508384564600407610151430278766782337668654914287771594794499050783169037891115947873481936589570416926333791137575944312430386950281997329725327003010140823418470104508409483437344932112203430245214897520321928551436646745922874961407395652744033443644754892350786803034884633331403277089763290317469322539084154305370482861270668180971571500974878636481508199447928123951898161321837306223351618309970796537712405445589438915701412164674948540173776443984639552066966113814331737803147670525747736180739574143134669824121467846487209109169056606287191348380055876446169356537504636502989802406605565305362771700665908202808057371547159670862350348117973701315687298291543120254078768698366148126587215728906726655944767937177235461843836329251341349037842690422446994813511718969120305221278185266747156830701150381033705083408705909357749995888973536660466227887051225329344443116624331068463581987807679489878889353597115100375684440348636120355360285458149113964299160925964889989685942296032880842404882118515303071704826953211370731188216034449868750172804697881381783747175962203053948457502973977975907632726186288713084460446266011327664093991697704368103099018332333781389240185137518240159560615291229364359947006413592086097157026433157724575620822449152157028021727535598461610120141494121665804860621677674608765354241882704812474620049730555405026997491185207478535405686203511415999477012826285150353557119062071809671695072470358691591544293849787663914429827134470725772274021209694579740558358837651532826306089718438615360451361262075648479865743847773680704809657335152329506198090292723184493474329540967292348073047234286261859435902332401103508922480747862205736476627357160038432387418835760699470768768239539682185661079184733273594524828147729164632936364441041179718381737409352872206593414520293919380325805069719022941336934969619700288967888180830909275131394394419129593840094774177168888173480900043901876841828614685934503942051343096085296524738988938067127513797408186004109551286497925960032272878219634321118477719955090788695213117943550361025022353753354391876737702207073449021943476042268846327854069151729256069905093292255213189528678218169705239116160928595109819366703192592300920616167530830194594026940425045303642976297998512613347850426153521207938786926246592341272154556944902912450048137540921468419550432288981175930588523365109028238952736220230798623573389099333452440434418616462574413544576968480585889928561817997550537054026110409614050073631599154298797706391006704740765352805631813415043995599415710775135658708273493676379641200277268351160354563707539588626582697436339220339959728095975612444419570766760717615396482781741552601058920156931563375154153290351927488512755009406848467755721035484865322881976030274277162545689927458568364571268904107012126359899307226585262744775067541274135786501516115973393292487279550739130512523110839828677127538178621418035491090621363823418472764522285618779100953141254415500632746468336324913442464097254233430815533332908074513592493016011391191365680392013811632938650951337989663388569742020505656829883418864163127529900604297827857969498419397914108464645775098189938828418396833986425236283575184835199807995599221981130673338116864806908674187340423699693769607653335552726504709230226135955623989559857326292884363285221286721177869717695972482485208162045939150522032784949279184749127547581417288429894555165733875363318602665421313236113144107750368614913652990414285046172809741549208293548798550871297584948907102205162160392311929314144225764464579258223134995299353060810866177919842521719697026331426951439245070412162947261103526724799890862042115582791350004797685867444478911009995289608358882582754937966281099069860602303097320932686289193906527171740738693388118679343430621385841717070443354624614449080444538434499238732415242895626830217265084629603461450730757685016930942861362739254069372900815018550663624591020806018742505294732736441271910619833331104979385268750137931327748491766929275585785778779821115153699485295804192006898504582479050454410536692862278615835766590733371642189577517773103177715060053752437403196117600657090391835924158924077123708562632780810919740053755316546221159103803826902298753423735059394668281832204169450484152571468187027989692951765756028247650056229131865939106948079374165386011495769258203692445015270273475993918890677478432910402774134317503903989198514606165008291376531591544125542133353633319901625861874446765201733767891847916995354370874496681844156111513729910826450349461358029327986196016529487593221271859859828282960348054589513226999533447460775498489175914392050724792316319526145549430893626320550324264871531458006357722890055446103822500983997620487536854373790107258257246315179944506948625739345028149741442490519725416795686581525289386753445592205869202212941567957093839699518538538062385004316425631453812223116124450040547892328790191934445660374917973864613576222926047210306833980083269914087562950511793165586411679651661819388442856101526147135872569283081924188429586422320236512904008661393150919740392468750924804777378987005635531266546530649994013071166003803193901981818922374699179751752014508061954989879808395094088742190366528214069712778530061138133769465706209762335033229281672574408835845138588497531678830481265086228327548945277563465850548814244170103958848616203453977381731015123873917716245982363406239763976088587038725753798389278425025831553633831540803557147808567011747746656144517843532037934294579166626947727912828449172608617382391384336735522168617320843784784136151543266804523473251249557236041372984080830108092432953821111189680908215850968897260464138463322310002472670106459094509223394530066342978525550367423650986682046184902221173635146973483555425658182095152749047323384881074724200489548368131137206692000887499639453110987738006198827496506713351187512626129911984288814864195684063769502361562915397044089094059457287393381367751867002975904339385713163377165028002459228647464265712559695524762657344103478881237192267622846622303876184120832785950721653844405072162728616775219226283047223496107626046555992608040159202128769739732433266435870446695001528413255751914488212390693313490727251706951290737260953704504175864806598767158198333545967494044598369089356034177484429842053802071703561309448617334694267633281129667276433969480551444282352138609427021235030335214153102764151255112820814583170189792868729754799267516545459476207532948942188411556430610766963046171503555023746368997241463294686450357636801810484706496408205653339846835796370007167066462254561351034285214115377510891452280242860456042304373786879490248069200691763947005768944792133769117573440118264208614574178792513975185732733868445401739988920348918292680198562863495908268882099366849748418307804979912180642754381325392927902991654139416421524664331922253483183125783861978336322234565777569343401811364724341766302107797061390390484195792672603770939805149763741660875734137334915104118527238634048538780579470461361100347666933219879373457729675744597007308715208643393974705826778340609961718866561378781115339648130602176760605822279315975029985437872727768483943814290641267260499212672159561127493964542514200920906501929816024720243475491910612701615714708572773959598546613879965674038043319355138025177165464775569416344915402656494141287410576855342264593270621125887397724384198942559356890555850568851751045073218350000415819032879057816986054533701844187085414557180181074815845895090081260435935067934582336159336998236632948191399649970935235381881740483602380242722972236420744999405390494226152308649653211264738219430953452392621858360415795045240881398152957725130287463200990529306614734949606138845259522846429865821179300716851801424271167888727689142208131392981553890583822631285421342495320166203520295226700851410036167382875758072322300046345279356199859093726279979800137444366047466917538804759979544853445233794637908577260429450488175621242063152102036855475488258011930668578629319859633730259846374750184674098340128870148582696000523599427331190160174983094359537749990001800891662858535339656363417521893386925411850933279251894210182750741453383761127107566643634396356593179462903767710882570883672258875423432986113850092997586485921273070188591423390258124499085435916720024664150864631116341014121179442621819399802548725965946675053355674690351709264820883424690051752215987392157937242962391014696948392273330526525304976607846048969407630378394811980550142061332916178641616830951741954378844114520180111503308288626746992371659622824765343126066854680227492940098547502392595806130151040845268356047766696438217106471337509416414539878659781468071025039124184321125425288025506299991854184943805170090700036110498048700458187724393065112868745421470507848068232841778489050433080540733344887647042492298550035481582943255458758492069426363265358684943199872863805087955774554384703324476990235284207342555247339785499420552532515131176555423603762162083517817268664016011162758892225089989203594172552152580747089681060081580959103930344863735430718060151457738648980024464862940260875362656904106940192621718179098463994059697925894801238374023113306177418045042205220381650687040901914791531160733707718802060572069028510953004775427674950046905728870338856142909667033562309807765291926498310294489309141364244449970566244483047749674537068757458217323430187815803406473124214222889688727641584084258692807350369031671833188254168928185528733747965679261425768660458018088421666657718700876788059401367204349798999110333469996361752432146139445146540287517454364916413673399828237449429429163637066393225330521144381210795044496959653087140509468248166737161008832531561354082246099274943330827070110123178048826357251053973554346975274640820890525601168918082150839418787929698080030467132267506003994875004044066829462146001122475647705727403060786181530342007030771765131989173494601306314396366774001355698864379343965606174427240403969745171405516352288020612906057276962623043909975516307000564554261820240087088644644626439196005590446216496183798590081906993371496389110099526275103420474625866037577710416257371291989355885746457439172677010029537694569535772268524967013444585347556967521507952262360275391698502275295150259576216492258439990556193444220687428112669482622392924761090075069967759225204962994825465509645762835273619981670269065439223034220671946778249259565869064244599564338320805594632031677460465029895433850505550425895584483040550983028004391929613824604595607656118887801270482360714836779816967844041891629202405438242873742550686096160806613156223161126668343992057779617461220156819525771106406446536558080334434675888649103842888531034202465600796520019603470525091831979337805118929068240930787500556179169208509720956224274078455024525842066982115037104976634468866676257594482074564703388383619194848720948274850064909163229671809113947325375351893764536712344872003040667540840736010305196798658862730294146453899923560310849487922959511279389051516604025428246390133175896104228908348250520070747088146361101558437307835983015608691794266180326954111394707768639350625063459000818817104488827637593313023396479665402164901152562065124078512952074444733772064762717345324275975226856704924350923881395017041174159364646495334069979410679861957198225972596291736429827751459436228811787604798627085244885585305112135547554683120343787543960802987130811103089990170181844209384326590100209575036844271359686915826748536823388705595699236054362654338696441006152905270493604311333895684307543118165356668202775813892614750092464680135611598598539202844091375772618536707216206353581791946909806235548149680977404218733789768533054773860144730990124987616847936239893007832150712176379017092978598930170804179900169469532087095984463330818834630474251295630544017226125382698643032902257310431409201562551111934922020185568643865756169163210536766121890841087614193732582382824111261042657724089565524566953189032033310599554327836650421047243474755298620172665278189536848849132741913032343311028863072673235474121724814034981338162989874206223861654529314852256183080494305655510230943384767500422217799802733906234380409266217739852913196357445800125999312799137460677336622852792421533520403440212281607166030634596573658041098036864673225163085133181639858076818590888033144530188442754368277586920950166601469064316610470470046773062894554095299860903837641065747639340063241161179421950891396421985569534573377649835639192205496013703534205484445171854909063579912078012125398127678026136305837671931825475121875794225186687921894809913155552403433116597724144694201456953333724620078290242136023792241095924120671168822790110206093692663006429671090695299822084462288004249494555530179182198377640325485055489345512638672299254102478777652539332909995328186482601998880346951702220827088204224394106623126553923073390565545074947161910833808410546838365103090071678464573402956642564832802423906691495207369435160586313528649842921909530556978068308588974394863817188106507563223042748171506275332698284799635576958813912938542015837781773084084434215891659737993411569099004920952066002497795488729510298447935063437520912557089931988972057945064957156233200451773012288048968366961843791683443103284919869285819041431110274984583214469446684401328915177784703187594463967244159434460376426913202659861860293527049041063574137587699281643988869431292031786026997385418351584592655778702617238559150695720867760043755821128437422392257251852593810043982823242255824486055420531064061786983373143241416111755612010101151706566461961615056056946697422252480330633700867376787202197014871297361046108499139135618609535061932218241532678054089775333185415116073786725678777022370611858067473806549444439760412657645563130321801337139922291388752408554671705623099283517770230537751840952852972654882945965746751266851760220333480618274389912099960613477282007234340487801008178980247895817745111436634445589126979779194303863905446282156095502113583259550151619808332078563810280378978292185274315446909721917107341662571034061525480326556761428869361511954884544653888461280560019985120267150048437230590224399823831147464513945025462856070529214458918708206339833325591159078316961827808573524978491091654114749880493384028704115510976917821273497552489358651288364442210264240463811745548290217133305937611931336815290301851615122883847792501125036432391884006759811246216951260091866111247279038135357057549546234502976730110199124478121842432376089112348393689558221412108063910198730042368222903578071048940240180254838641724265018521145159654429593820747081353579125106809740513136906090191331774151420874349004305577031282720222178470467056687831082635623787574036567219550005702659332510503017756815251488878220702669629199898347948014836593724783488549159051038036697309015632602055947367894664539564565844735394613029100343439714211923415641396337582212888404539342346801857586714506260818175168879247453260984240306188118887814889897668506726113554991455331150385972005413411700591599417596012059548104171496947621719935702023086196195275234111720994704416452681833596005138991483617922993508314328271245992404787925021326343018708804508534447433911213097007099947499905507655559049715306163905096948136128732205674134481676926887685719097827279861640802404302943925100541037668807154587795195188588038865620438367185575675216353549405350331229809219247982368492532684483204376042349409423252900507920403584281716838148842150145579602795841938749947964912009671455292007141489955951995710254128601814496621961317166674976141719174599189602343411940526655340642049155833077335913820421379340593462951618064523529324542901265177175210645333420303145916360686243107200622657626158992128316053724166782231722901231974935575710851620586252384565082607146436050884421772469410705044962493388297049431342782567638525344998346618150210674435847764948379153220661304785647539823649372433929191943133439637234034427320893385161142432119988648548346431634356806392090821940592039224569126329799575969269348299595010181362854474207545397159441544733548959434683761130162589123333256880903437425711503254462100904510940149220617184783308931547719305292757210752710111609006097266207847323683376217969492197096487122268837000581163269315237693784002655093324967003458818595264687203806909176633948665157447939123726681120105566968895209802603402222028847757611248629912777269700553468545835770477925558004960009295778642282650983196946727939077467208633387316021170287872828512209631160028888416189862351229532807504832808061783782072109169417837793038819928346604511162379510996976624375835757206562668031923181231249097466790298956002972474191304936100811077874834966893828681957820006713278404718140743389412734850724026609008603290500771318648398489101283138538064142441586766471868155943273632273812134628687159591535591666904622627210411050909669212010554230348698150541726629225284506444629318659264311105748248331560185087443295029097915466454981372223848257291430135924269009097323223997072485833132678836170839991429515346780009002815563242599268916209585188944610317943428751414192073214316066223372031335707097288158398792476349259851074979693741287393287216138082236380538814677930068574917797187824892713792587491224705615016331253463412816974109392636522924469424452926700027146869124597973064685806027037883972059013204094857199305316092610939441224833465361981319015494263777021299009684895804661322989001465554925110283236916236162448270432042283962064597361138348940305238362929778908910393661207113529070182179300582592885769728809358737826294562575655004110777244165756740166120984784699652313729739060788907514267902027646440164001262353981956434898128989359018115323177552430107609534415005444952916244461477888906492239758025242044764215275419880053065835085462968838717193463510554215733338636116156470433395717224106351182793157743055912455125588029449138145720442092172981917183589684104036986604462629584742993706412895896032753654503466947814824189983290782816710437192594234524104153411682141031026480677567880634365577722957630732212313029674768396956390590088890309601810250921643953792954674221130109417950389946579536423812470637877358398528248722763582555734864840545784207035824208700802762956345593005009842788710461988441518174446030802223422553147522298615773278080548830691282533340060749972297895409506839198617199208733312622356608146555751560673478511561876367469240937711033783147973996051529848569957332858119963931621716939555008906784295689542860580838451230597378694612985106572879960901096926472273307018293335529956272322351640864428743874137763662448771179690469934603262452524764346161422706185479907892302709758924431754273057431480170625188710472066034366992269679461269823809124284680580608951819478807703670946716219839749273455075880470563255195040958465958275266038547624108741986727706316229832472896387688192133047591090232063699874405874154254972829453651658891434302367470811642393285958570608876403747617288411598472617780447208904439868447801801622734238892827670862334213735054389753441678912226708702868335228241333966228925511060990110182506909354701935018705583918655304237563389114386089519332689921327505154454649362318024903330544201968527756057160232982318304454951873988254824524428535182198851674140535976170782643760306995722498828619256106610471458063472964376610410850037021818808471430006857382572401431337456548734542114275587245923458648724735351661002078762610050085515668401076988710938505933440723305059034903057690151659933744118959006510853057392313161849862691675975534240620882915970527637005435025511260425441904332920079992982025907150001639466561296334981164787444321603035034464366166304112871637440298611235201999321559625029381001972375964058747847646701321942761843098960130466608298841502103486675309061958263731567474314098585042501765821559231005933299790503165879014468488951222414361153207933566159299804841423024399460413101583841531029326953040382495381226696994630285687384105938355774317342208842417775673234602774678011621422926823080247591005148125907358656297121092584811868402709653748367309240924061597371284428052870233609001512815236382655563667186515388165868018396969052575592897759016786073055514473158403950783376693267830190051366140414310359816473118223163086748354015419903210592079379357981281785314048470803532900454164969238343038821600033709356698938062868723496858986163515743033438595889337803491151570935750695422469774489595491116523968002069230439404873472965668180625710556692235319334779308947295635086602102094948509366583360059489549837536283471662736050487505563702338644517052402941585663053825140178499468295374407352457889952128259984036782944787261188248641090632877078733880104816960748087842069631186451386149121267861199511836880956734398231050212375277477290050242697905863122083957173038612255608137756729066395600889533781469450129468575068102929673896093292373089713265039201896373110578182600324026441314109771718920232209767729375498327138011762322279206599553963420121485954199481543813694302427852090305089733769967151113064232674342303876466129514527870722307936289436242913878863375033506054105038153670298858233833372430958590281944819240460570454396100511997557566738658489889998164601634336395140203771308754934934913971733419322721574302332473696758660685191028211790185340136929420347809796410735003854922592121906699471050598128303225055943239903757758082953204073641511782591506273176149099876943311103345842071611713137755955649942378369909254243754222047095197205146455998788098025423542212230229449804709216481854437474595610535040748670444054256314208937146879508471710591172883286774225522296689086041620894501238945902307435826153377684575854408850284634867445824491743745163598067799562158229878442460277467556336138603836125272589295841358374481543973006717051525376645368995428104555524706000084319868716111860853892669896401858090413751388225540924855735699904640060066379497671604517173624672718841903209051363299342526735071676738317249753093114589391701334892986968471457681599659604565073389732852463926002925777278931002238366840575028376622068073105715310046827062722098880831921013104111516158319436212399682978135332789664636519090585744152882708747911235716064058828404809667059697048412783495118187913803305556801837428238897657425497171146353537485994702556570207720388976565785721584089869944075668539298684694965034324527087009040662170126419653667652229919424901915194514956627056588779620764284096446576408864378666482804231804062531346769877372335196520938194691883383777136384951533769423999367290094536649151186889977527257850405137746111361998259502992386889582753865951986063139418336447645744579772659386232825064427364750299889500594199289703548849120950417279944936269936391395289592504831218302246311522513345876731766937908812762121418455488504239079295484897458079855849499294814330513661079810458633098378955261995279045290698924222633655290020270210032740866444472121490112099398704642265084796137908169356229959608116412378703977274686247367306438935356225986691134855683825319645591291217213052779593808583064743645101774940354388796307630685643758965336289217638918329411724918478163439141283772721746550366812038744469341294843477527592872532134765006682536890171259432146100056782251165024748666452278129738723314258227449835136722689052617803547139396337927373649336186384850710837974474385133053525055725467817608094190960001466482797025706592934974793769426413971437298504424738951199988931630951554686982016413361032036089384378011613001153311408927105994910394600863078264628147113663373904447755301342072048410785469454369096386781438528362679150492894310607103668064148350953940029362067611643678071122196627914514309661168922997321515041565305637302771737886161801806666742291820183131431092649044001702823473962008067405271011210281822592712666804046996373096742153768890604989171489938839518911200945176496034032144714336754347173562020996164828848821222851493828781848028279935849762987550374983924410799330891130104477126045522420372704088272581395650670631195982979713527604345025299087830359594972340520336053616378846041439521161293313909421190251023654380650009178376279949020188627426213760252592420443346988346091033911720533244348684312430703683463791583543041208437601854106934054600137553811632169225678841963582235351403926069885941833919212032853813692473857916394902401248474849657065324104154839053522347247706469294521338235480037800032278947589395553623109892459301347682799977396986514143673660927241539014143203160387197467971015663806101853142679794783090085519248757428785314757987111210138884123203515290995573293204761383230257613629833574887559484288654158304128525939306561554962243269469218765916107476636308599130449853484778274646829562752035056716523508858458479302453547127846536499292657463319396078467910755103445637303047306714007317738209394222744825941237714852963562665138778171449266653059803890227721052824502968510009680769578204911576933343236966304491444317022698590244863048212662310474257671629359894616411869240125099734139707306428015481370272695965770525918884216950485415037758909289956184898306436611256854840332824405863641593494917691259597935759933423236846975126960449088276735179739407351756311420056688066666959541655700283117522087740080195167005304173644877772546492595138105758016219945725226002467202227056704934691361653138627881153895093993737141285413948209094987957923830682983417610711960707230449351500152065322994234209490135149513944081822113661150484224154791621880587789073445137153983303257652510557251778811948159728764718456208820800085029361267461910933013694615652373951135818061087025718055563879303790822938863986835602174006835989422041693217136704450946921880687815509523088885153987048234186533272769524395156586211693640804228185670428400974884549142586352663004225232525396435603205131899828021592643242478429893391556259632629635903514716471367699735070532454328158363758683503251710869226333149394010012855450830842711253670657762829863087664590396743597519656979838790302510121576334665417345579004438143287598953469842711576386800495448291201667980233539020160404410687171656841625838799775027750981678101681171443191928021313960253718284350901626087769347044308164582292503146416874501656536128523226574640679175167401691973398809208288977724898470709950708594966578776216238476570799147073563967036323252154617079241850352793672327254077196586939620861346256691299442940248650950503468869638077814938897151424022204083835993245701839368750754447824943998682730455230960912636729915972468372956396442396425314146508044667968938404911561242423414636056084151991017825011517407307412917600076398556546898031903328101236115386843258008366138576836010404644359106642974601722607477739767778043764061815607255655674449563772111860741678528670458327782363196173870254671026885722501803180641390138654897595636060185696380702612372672050511737761275559621370570726888677191267333475642204004860892547950030231280003806960868063412792738209712186690618804571242220248947217633346504703303670167566333894045532472798417619678336824143539687458997300754861658535844713375996810592323812714820123639818830589812096996167849745357646441390619598913515600436735397982706790157852028007055113389527532927761649001153163594051735635635407025323406058257277764073183574574283828528249670076912361249158382510796374857672097985715131888976460250954926035979254756343461500982232955884365937823187593944052226785042796577051863864570784897229334070907644343884109221465868892349174010492882899298287515805503365380354568918398226675137441427011608495669284257044733207892078949508751655794428745493855297140742398293734644704489786518593642379051287809196968173141173793568218400771155531104508881041207809305702221898030002681072544955070254379308891970623188591716717860788750667521629876515657558617972486238228160559110787786438441094202746845783622216778250394581581504975514619636215932064830583267074604943010565414189474513295336000447317472483096617298331494486401694844088809364851294475185364395974082530597034107538647090814074284845664398645321463506845229175533331646510041573279732282862121553008763923183725691319797406868296596016401276386065743027382249934168690859789281079851557866749795116383602316536373233024332995804890798085027902771706215737297724408735776310229086248861701566957809907991928163048911505054693791087374062087560889531954475592196423747502022447172348060428978606678620616223954295008950655778074122282710620210496011143538034068435245855755541214271044816305596273634033281550476435586868482909135686745535699432720574997154237032916581165120832433783491768819428575621098918316869899243009269827774186510043185556615862950923071224084995379767138849488374235810174285871665211074968444013164720582364577464055761663057932519758094972471560310580445863964475432256733800368404606366843925841551908004825729776115891686843730490166518203569655038973830648158290418543471548813766572786636876992534113484855109599976365368067777126266622414092431382364736958588917390952044007524593975759461204587578022562376721275306592136270821965288661993164192777954430283407394716455690206591842229066490228911542597433567303006811495608184324735350165960856883015947764498974789177659817213856600891029552607573209819693110307581821297255559391076937311115923909079456873768022445597220765222693023543690237794041604339015814452815365081529029614882344066626198800745762504635692504736978337114887197621538520783357911457171252161351535153397999807044722766258698576582222500159396450460671679966877552427197542848353166680160248415680712592414438001200497927266601923186287299006097783716172076479663872526431595747814265028610972730465411265680349688428728744460289351141825559282207803338436735969862679257508632757222617965617531773776423737388955100269546388082845623123586664453007128018718378108607002761915931357344149448707331553310229879864529668467469590147099760886246883443426823167746954687502151992655304561624357265609713334217374730287869191510374501336800858857383512762711914094632621613804491455132322457182880485191832122881167766363874521892041589569907082089305048359398068898559268097506874914404377356093737200248692747398209563763540841732554492924749878924318495453690833996117442860259322566531084425050294800145203419047437845478600783189956252750628012472454849854490943624140515274990853680598757784831102612407365467321508552144227476431121633188459754610059045084565913111918171563020415931465173783609078416460360253511247148658672656220881135072051887657890746228325478071522835905616128268053975712359936075898360757844994737067788630602041989063243539676715703232448977536906301672800300135435191745054375247008098632004260263850302076780680047672347357890021003064225772397595482066895323395678741971441407848489770666710608580601384742809032721239216912458288161709691714212041865445645754773920813647010978155887627518319159380238140467575035368778501490858856801797273035111630682746984257407178866531842610988067974380638942112802996997152691985983201871934903604335204498342281957038966887038762095245480598946007886189811732166266449286205978395770109338383422491901045692099387649808775397273174657595937975644664394225112599547508690091922860635747187800811327484656247703924298663825680491689006909732291763811630916070129195137439297428563731629114912137003012618407280629097238272078536126785747212727935865915028808720517872705221230501119410397467963890198930908229718333016423356243348068272729226838426992233263802462855290642926997659556232955049327321493226230543964808830460918073346581699885317873062136254885098427840311820129298847001872332701149043745205703369899593828310202244529025433671086522571137357178443785107689150020188677371535426909061533553261504834602017167154484532454385004761484474579499146946837441080575187808172736868838513314047646813958945421221425097729857587345532501980753478740075666034011486189228995133041526706893082485843213605972557630870588033520547040436310691809342968984805376885428775468204392241917670865456950375942073258147835434225034835384443142309430015579055006247094362941332936372698410234194074665712239462746410910362982308833660869620009629001689439278562950414568630858985159889309224532144966070957977210062570269070372005061411054780507105871475955691608269250280558065007525158155444573454479142569098064549018552382393291454224171482686530068023556198969454566229297997214125335085862834325211470612291740404586105395439157226560239360931545251169965131867478232180095970823293758308429681002626676853334986185816727599991899222418945994495742200063900776222537168150539258910278141009199444041778908652111678325507552792124227770417978355813720537205287215271678933675016192067068345037700778176151297271791627279263219625187365357892742158804526162705091749083133900805675791468583595217899574166059715941480839961896515489014005258263828628760625152663696750367251162679366647577750048926518764710269520774544462767851235270590187209394089714526254155991237820517232833857242047985125892527516332125971534630187027655027280785824795203990002657178820438984989963078560922057656744765529662083390558349112231276752260487621302965186564899978389937825719813313493351989261551002576278273916510372719802799099866631142915739908344116781135074644300592409005200211047877610106640269928938437362559340015388665212082552015572207621941476015426640638540510471838510843163011448653787952374782430473484810701663648781874550335486992420390081801239705791299028274554899586119770218078650999178649387054033664379370274402089914087882625795295227856231420265456464020644901669881207789705584477759775242448972737051505915592984195223466589998323069380889334855469320049309962731598200721766781123428037562987524747018146730815075195226985773193886429283740927988984717200379091429348335421954060395495024063465803849111507300002625364843617821661022362651160049052894095841671386349783389927284301003175255656939176961749852209691510494016956868567290733516760196288503345748351916187474963198055310124526803187463314154593296364872896470476615486010895410262379481830248128797204403513446728076884699707331040815741032499035359535186838111104414432111337106734037904875908315752775847186997745561212406386626654444209742880741905991675426063519376873552198879782903868093865361865143515177634747438961493017271420947620187080378575087769212950033390748023327390345359200806202609713479133802291780654000138571462416666666852649721016687019096988302773220294650877007329913912632858319695516788902360581683286449883400148829735303735039626087556217145577266835038723123491493734292425476382721940242010762750655780346121148730692361122477699617707662987755173943178460751823235726412086419184032608357258575930040702819724753482369046489979855619257899082790305861342436739163206158613548590022557409159957769094855439909451596234196467861178946388783712206068022480536867952315947438069717980337188638224087821019936271782839211608098270686038894770340673374396623629988367424261475171056740325456155617614953245410695185993926715356298162711070142599195949253354798478046570165223453331257798111738584197353499729276295433568378284219616178799939105563985703537189319652321634853904902516434080672586965422085912950075865758826477753693614426602351374475293347071191738795884947328643102988121983319906038200474976206338309199790183290674810057085749662384097965265521094470192968098274401568961528560069835669542016647640076448456251416240956719590130979400017451981932461051694364672369444779209273825224722991957580468519324058639010317054850727848273987674343496853362270455604176556389276561875058823852043502440792205245255231636364479534266670916928715493513581487878975220274903999825307563346761675245535508623001476250137142405664922902809060064992921374604854011131244299119170714668774364352618119481580135246631800831806931628913507262727089204178204122690715092447452920091013678366841432981320290768502913605529468206913820840317746651288245844302996813688430645440551679956481552258280892179520169286207289880052752405653996721045810756966715153791690879159742728883346887916170093399734401378636866908587961528703712961692297329598497567374327558631928769383550824236763344876169762124565447890171382908256091623100147732391459107455350579203734963248400435129370353052843681981949689815932939290520476051333656555444894261583652020907992992988405141886335469430171167523471521019177098471373782692526217274273180734173985041354607521578123530562322464933718772308531246452390347562309938458331411634451267339117136019195940254304640993981137038256137345206582044568320817263780812287074567155704854355725194446874058336686688071893901665942748100302905474611358544086535953160820137340342195158569561321909744043796896057483884443839606212512439410212464213510706381598375947030453576182577072245174394506865779971147850960349987082437830663621340918525260034824414435394038262759624362722033051539088042979531586114053514985682269058697513234280255260618423643472971207040748349172728826980984531662004330390306298846268580711372507602048106105426719540301312840861422616248670636110397558030729635789580574333303520842324921712374647711403973069195237075391373854030626077911430497574590167693416800698968147666086199205711164204825173773654412752655478589806568792620828008213671089797625505760052642266755553294638119788810103614653933973453933045347085062416534766952961561581328879115409613094421467384756527139463797609879459243548638989525438802751311854108997182648065971649449553036047304950978061708757389453762817067542894989036564237460939765503439067578419932789923102934685581902478864145647787730200680756619931929279221754854930754340279224887352281507073286140730637041455922166867109942991957623447962535840881164330523441424055333156029103867811994804152728952216014541610979422585380864285998945472639651857779738806710808417192120124847092269494214932928671922469698243540562947715312997055289474520983826818762557922521591319983987857090249353608191675241949620275331061632026093025887545609136041668494972246889028975573213913210496295800451638537828399357611974984009568060484760982896497747018357128818238697051936250142259535736573664347230181997063705788463266446691610532844079601611217851186971783541763530301132503242493190146447840117749451155590808051887818483495247641226809636345360444487240843459776465756162529738524875254155997694605120325981986298854873202641786521867317479502214982708080406641789061313929796600093991095016119594672828525153537104815205204710838336317618252214812498134970693673203567062539606137057672090685320021642791626775530783178172361887376913821487585374117568352518985339716479622611549255797087819456742506359043921185384313452151989189831252747361565268281321923640241643990050130605780636316742465216215301779030486719606381399768899583384078224160784884848710805799094835632415048446990686470801962745206974934856723806643590734832096540014119485488691377317279899920800732965726058913924774800604237734720076647881936192197640047619717631461509437019793929636545535224545287560322201016061314965845292133573059470116894619271693716862788199700159600517764657136480935826185575284633253455290083589929158622348447127084474091871752882155861257811059284283026489964421370136763792369622430261492252161539189649235361369625719906093889382978613950579166457576563616434605168793173161898141804723977335965504662640483030460599623379243670591340605476803173260322445207298029714504998591342498744069093340679606041627072111207227969260464397520106499643921462131867370697366929190339228647702119778383328082354903969998867110306500648011392604167457044034799547844349079206152964848911517836105525216997160912217943076709653454376995065132433523228869679319608524207709602937523003464576972680715282719355716649720838799778888012533971827357934380199008238680523203490994160377211930336386963493047784109550300454854520557808922160435868240846250160556342304958730531269404566066501722682628380503859370453357913938339827570597105396579035318859864442456835778561618821925164033659714304099446214173375875936423014238188644131738226503226302121353124210768604823150505957176654370557101453448403599351641156986994166462370622192984260672123777196047441931065566548017999411486786266036393790405029080738902202544750003763193737144963861095466444767945135344991750071496969609126240265426949785551927611883320443452907799120492918816490361506655402238883881381473479476649257038596769466697293143063499852708395580252063336073020654949305077754939501422765321394219953846346153398117811188341458078844566340725969164479281244939525317984088627458747215257250842074197961931345401112802258499692202842577319093283444867461684198895177509030014284388610838151319449228604742269905486801782707843182586677522714590121016099086556881402460434342403876327110807229134306524771830163084820642300580756387658047064577270640280687849029908224838990366789679028925434043690374845857430860394282324099502234797507045720042092638843874328343469514231231149703203021656187855455541477241961222155135099257317931213475614817886014552739602747507024118562275536637334932739453450082599974635426057469622817747993513293791583290786495043197711202394659261029178248130127220174144800526985118454257606270480048960301930815586036525156043680825943185165909173351513006092307570777152959725718371386427749771261200110666370574470941885616555484293433220514413891632750090914273306753766930142953966739853684051188228528654179150826851359064894334785234051766529339240206242313835541258006371691427950617786775086176189750774407917914760366805512930774471563858540280149901577787316158086549788157883798939454876321291868490067912225772053723102254613246428065176393319852028192854626673376356237043392979572506775602877622171516789322426477244543288109221774507588064273889876668279250844276491549164370222443956426944707812537428622658683808564607455074251222831438280354162863969767412542298430089548119328019766023786188295461633759190959191335038852045771373403451859879794191306950558566608810275469415419503923933150614452032121447860806526898378304896178944871898830185545339000700167934360659425117164385446871758282394543979540748753077185994831511152544767249702395538370687250022238132716571696510431789567193537534344268569986809756432981669602712285745129729548757732437603592977538014653598039546515609317395640039528483175944906327283246144629755341967475993229550451689368200179402311391157767310728242767494090700096141338811191656542253161998727445238877316479893032580347860111956913857449101782539208240744859211185983536408731276614989511409578444952365038461737428922902490327426668586867193273705516967430267399271374281283011170965668308455148007012447230416343342676848031930968611940790244725707047894602717933312947597508578721877086856303360041643427796543422543044711310045535424133801119150964927901732650132780548689200495411816648973299026323160597208529253655942014211093777059350742078317363777452206107283881979175084788436928263175345784461147705302650443288518710761893656374629399799016127775327324441240287850553851748625647994367645855669763004273939275917286859393674211736395281464292868789818827036100373832332722594768121201155299950176435784511520754961008365400464226543555737262965081424334783292177182089729316791115673912787335837786564545124261215253706631240000661575719546240657481434900385973148968387600363977331763626447839481213165646903259279903176659884036756223994219418928590336584717873440598705757541329976135948657298232755272820183794588719191988058056435421624664159809234780879534803110640457136761746341694248672340922481714609272508286728392875298956181983321833509278934451589304944925580863807852749475115257753008411444236507801500172962483628783815178282197211944586390007179794083568049142643876963756446872602309873254442214309540069571297799961222596878937610894502740023682769129145668519213507826680131214557686892078771147810334414601832652920133918501244197998412341098278766533595511024180631402111150640980327225955080167817687115242211000461735767576840808697083141015640549537926781674729327309971841438062295344173571630297805861720458495966141612880075725107825201462804425004691170860220638020798683151489112370619367736430061351143676387106217140476297733435670279997003890966482251018395589821474224139677512072087597559316668585667412484817624410385265955864182138498449168804274604827280543992010615422098513972485346385569562163154515479045045901339166700741833740282462597135105927278456726889393543295698578714081874717515805660166393161045730060717261398966159112232540795023361531284864325908297691673494790649663915243240013282291683826154887530014604493945466090836580383321893847924282396911792968714420226561605099866932765162976579913171693389553328497548986092624813828099765388381867224981472537405813044911018299818515904276689803597210614679537120838519330877215529883967741330449665327079536229289947140494352120390201019268123897089983913990611151932798105996100020368736917677955997465119525026201697811499026554860229519141877858014887930882263280288276925839681023250586606279120242779471345941507377876775993388034357738139803154195571026768971408577762411638102148444336883934410842152949785656977707278589434840815073168282108928465940930510718594200394013278234473817741599437786604990082811631342450371182896526055487657958520358949722233055050678578377642246762300588850409712632477058304143013390003596286075145474217953726563377004156824740345576216844684361229950172871139802357879513688719237153205071245210195827062931158567755691897051893560300658830259449778844785215871943087712996371670321000842648089245453483697497648110723894166667511308424145218737181820792603975183752943334536278929420905029581776162661038187429836818170834310297651256033073809266135826090341415469311273870358216598054751580822061332426580367928361088042232987395610274998632561526842219014353364962572138036810487661860460344827793513003192448168571303755354234611651575799889653356151739594882054323022221343117399572487646100716985054164379830661944197418897725303900642992451345307808864992749244272903220927011213399707654348602667413642452797725027763201547651688860090814032245683700443456666431364057815015567249055914277745478041743435695596733327694864087188817547753388189813286055400735940967377735725505270384263995184924681230510753532742343016172144986841662518509251089939042606343504915286093714646909521664488229541897899560545527438813870728467396985032562562848435391165498414976887082573123930616633836138685871646108910244128338497539073086712864725607307757664896483468098544820089878708856853620650317219490346483438074718436163904085231705491280810929108774281211408733283913353862024209884765794040307051916374192490370792187797733338737566670705905407561371305043155331118779128988625109354221132211595667301993469468733767344073839352912497835739998499565940700254589930163787464872647775050534564111205631184143456481245403811221433201162886716581029586621930282099595085320679347535358129429639763634702320783475477634493197373565861213480838924425190827020619192850743991364197164704137936881763761765769658809485827543507540948976689272569413053579005222136297879605579741834710238710729610507023836543685499867095505464994692140946158036927938371515690210738020315444090483246155909192405718375494915540936423232929163341817376136338449820867898259743883671933816604800130848745292534389175670300551049170972283417570128357342373589827368524301023067910995946638712841792352067523982799720158967086236995351020408153500293075884856928631958687486944002990637274327312783988933632740687238394926732879886634622289330989919422681386796987385673729424800462628484707223811374984787248814678196119232565414060052359490148510009817852379316523469166878025452968374295098596749305148394062573856535949717402081102401026143366439699998836962079698069164056212663494265356018426934942241429740990948727964246361378199505982030903166371653151443469306645630983032907683552646110798046460551403763081414314710031425597123774353735970465076313178317753826853077115728482645469312529655527595118405193267551959741876847507868922554650100393012049362230120668252704112331899146725867794776080812814533880002588834420459611299686600154439385935355007086468335129201977470804410547326889346514945003158859465545184865137204727216821756923936416219167376252410403173886034181564953118963527868671571239029207154573146664205784506190033288698499758791017916237072007974921197869757229393035203656012897469245549688332655155251320346641256150559470200542128227815860364854796970557302830337273647250347730796665826078500989979470114845761269908242069508169074265690804937706610616699249513321047840761410309495053746730510921054853991798639317368438173007814561737950861971044613400905804311595332803624352384425755953408160734694965944952766936349960155469489509672261386553358185526956630797327940131540939834772046759195712211287260484051091870486270216629316315078998202901973685438035093736517780920174071558317232315343467116385698373627666601532484762266628678033999101253231987477983561656005989282823472211354167452458209248464131163904030339418612252146003543410074006918863754910614434960498162866647478331721113955904178481134956402630425565173423971545917213215683705778090029445089256764954740683429656544127336803585226481543802667344520152862455528346260332172359240954330561151302026266750521757857756783041404729127674604598955123692336043524221456619305774821154880432152990517499283849227411385183806838069400569722938632030963774363781775253686186333909281149023473429208242482650495478061881308652432686002961399401741194640153652706532807757762935779949231409457977368005244064345628087919210679672965475468730238361357423781614008532974292893671107562457395488088127478816896520007202899731119514325069075470623653839261102484788223990148292649197337723233026249000783479344201733005819315911006712704237303917581676557114894184350683505271211208264321028701682684345451091032192996669891684345335571080505099692653002339329770130408884842064579079937794912091162898869513610211190426528945299451432469206951056419720566477373334447132592915083561401459409560330016092690572077441550251077671894609406883679845668119348390223611916854993743042291502164080561420088175356453853707806023738063538651145508249963551519393049089645998007146136329299026678172588858853116497325243114243564377531251494817642562214775101455690955724606814687122101914045426777690895534500686916942964583072929811122755041758798471939413478734919387416133166362631449344536376165563249901282363618430491825813800769678196904910656917277674425325551470211453142429203632656075667629238361531230984870460048987293580795094778722736799922476493448933584247715139284206643196861976591909736373384850636105106965621316687675537785026309890441326289342348703352361892036715444311411243330053331113984735839561722694008970332429961634585637981784664824766864874188147113560310215766978285576746940337575351496065074076316523614945038777063103351529332545939217928907415658444841384950185454252562212258239958353886624415277409609919281385751276576063570751896398503972696004237669515933293108909483601217114461115049841006183954619940907933149145377824189793333590026876746992474060956686941355693022250727051563341007490275335836929114757350938198492851848580177719485532447747375062249373482560416401468833541108234539691315483437794739045914873823200936899825650431344706984892914586253829674442956100615035944877972801590106155961462117649015806519347678846028653211532006766342447382518628733901812166472977844484503321723448762584706052614639605498171260912791616028475335184005499565433524552326068566068997158838756353163212081241849263665091328819546550115834091553709690860808611783039664859713252002285953227410769564618355456826723610015726519358617064976273767015369879674870285776174865528987717109313683436531361185948135804797603738323009020041529139463843144656427175701939075860303741060382597369382638794389924389387755037347523638533982210007255245374415552879290841485728012505558960975754007470139771719544282755252361701503949060376805521154293786817294742965098260546723463440037031910464730290303714788014578076977795292194577830207205709141566160543024188546627557059067961717363187110769676548311677953204673759565061437330405261921796243232265731640303471182181911532130116349787785205729707245897541408846779825959567887902551294270327702431173562582672640251690792416021379832830044717517702456009499114405897600997005393264259134632192329163462353963423244172244561931024260188081932382598451332175667210055802773400148234183412213329875540131280740103918356986875557821496815603681084282769459750858843042244565645009203119112585245310132124599783807123985652370662256713826862261566406061364417334033257048490255699071160814162481278243369465355362883716040979834295620291018238821222610120465350872886437658045779763798135269161063968975710203264095670203800538730311969299960038018126670595480800283384115851356855607746744656956908022154323245692855387728804851747532646560595054117064534977389704923023117669386326180796368156662245355303950955099285196108382859920198873043718327343887841182713609598939899103046952375722244225050435797048143402407863069446759571954381580457641004038958444826978776185441513221305126827493321439423420738242287502606943849344717751372464781799518424379600077628293404144876537339987392434078718947710317589602118473579130137502341067426118681011057695457750448300111172258639884133717408045620630274901818181380860117249603607467644214200646339642564674376451447945540155040667299924047457004048800738252519221577094213691084716531308845645313228055086126268505907129489207266514981097918636467155286958686622362043054139351710236738931184326415898044544294637513773852286002330781337275956564046496001173657538309670930134190071788440760947645397714428004291017336528689132002517628152045915550745807769282967345502044620390221321707477511374172482893279291594852542978380140980143636096061468066275831856272121554007050163129508103213656773878597759151122045267381771480107183193214268706834710623515219072102186914855748002437837047387516930719170120907299659752950692911460068414649554444376653612220591098634197146512059205592218595975328340610202256452557752822503603450183165422757732583067779507095611451639877167038553380479762770565039018571977630626104903072070126403839482691561658522923025799403213747837845338871084078137688945577097505952873862908309073741928421223372918924252761870342877356840767061013519685930394740124491812907258563951093510673666805067675304240612533901016565074131436675768302546396516264685466032489844233233916589866515188669154630038807608995985618044164616678566819285358034789699663531718979012533681540561390900033630827035865001142517304432009198471411310743509121910042378550701565215724898301728803703466725562425346933866869587369775792189742805423700762453822572303514131793427381322440567646001670433111397675765007290621185495546803623660443500286197135240922510317495370844875967751171667948264801325693829071407238326193463045629145498502984551950960601606336699524933541734403997768095511765305838276494658791370633893167547551846467235111723911790986088884899931783416936981051288812752206780147964624662249368230738353758138961882866750935383789026019554880674629733606436475280728400183808776889654444016324805841061696893468171475048732914026323523734495597764288993390968980850102007409567876837615002048640381476327883006846933315180651410545293749475841610676689024521661696068640126366997285551407378146282295403594609267788857907818422106524938547399532432310127286834285575722525328724591422543514736314798649038627152298424179036288815675004161024926497676158452782020468666563797408525458773230453796892556459745011831091243570902476191037721499885077472451002263082517506506378551278402314542960809805383969616851924692552081272243129945183719192526587064483384625255661178952189093559554830758278249694345243580704770838789839829354093993628072357009472910536627914855544391442587775540621157862763476954731498236039774891093948826175725838373549811471521536198779046424734095716017481882599347038351457295634779898991661527206935917796606799755849722216872427858571671658593443491688539778137792644075764403827115326991785951128483811252073717926483186162783117468071379454180884418949226606640642554905424458016300111328714361879616478012261085526168551700749355590731804951056203755248426649292405013915357585399283158529566167152075458181990452816691533319646613744393944371790167700677370439397679842744184542779196157086333190477636844560763768647136601867764174531997246120191367667281102445879879319147307638767455508401558636960753870848249441332363752348991008426149334139650166604773165114548120489013674285139742092124852214786713344830018603025614393351847964852639228750615377326375135503172640053525522896715199153540647299845705635427231340409695574288848107073517621361376122763704583839756311180355228982115040673033409743951040364475084134903641818173487418887852417994539411645117445179495763323413126802271276887070902846507125967210782449360452895229067985075909767288877191560275963800423482769269221267858694147338191947587887146483344385438176980718309657784425352857740246049185143321014621927202102728265195286054203754937397763784281582052504448850936658723994455000354570700089489878293820063070004323410550317243632724577165078814633437878429922972974013046814407342003322004238036348249668899926751406864807651956729562118349712162564222109568098728231676480017186502847480026605285562964815517694186237048341196843698856664971701116262704863457321891428332378091770355250522919766568741932665851990109787387030525674566618463933854967128104997074565869289001549838446056180803339939216524799448572582283791221137025042339100854743680427786342342565468287469924454408113321759801081151702735919043387966103429945465414187889524821690909318118968231024686990228004743970168291279914606292275934402929945764902127437941578972830185981741080341662287029431661310388508223918612412064072624724038119759655695465890816234712143246881026412872608281541264283980744388470022500109168199991013924456574860394325744695063925632498367684164087612290675787237692989813536488412008441848340133592100862354264418632536758309545175395826552786922066991568878309707919660389829973018991623281896224608852681000024640037492517057859799492773427799373285166529164112466447458136309816098438640050884271125810033250170559430030555420703359901372225705783517830772051290667633271114050432858125967630102183418573625552424375733813947219824066737956323053865291427821990806481662907817299803537714215980879618862541984305968273244622188539694249557428054295415708317796899479468784185442110235014684310052589881116496467983986567919952156103426058204657465145791400487332973886227765730740667291597344581738241292633850876302960000172967111388664056010155900244066597174038683816586278241837234041738287211276310213501178396686316091097665318463417860504901538376122211016899040926009770306264709038153361868948342073121815288790588400211846843626365590005845837011839208590495955483865738172954055232715261541001134150787495617629491851709784195562297149269153942998168033925557360439898947330048746294611624209736946064517538034017528642184656796163956650671860592934183419597967919759439333503178626142891932091787613903528261553063023246377110288343341725605646447490118104608563360668941477310644663517086881707304679839154810427393699060988671619515627999993705526224531628813102719393843782100102252290417036453963095451160884666142967824613382618471764983823204456456710035481830700121747412272557963315703779174291855236821046830805630491430384484784531940608250291036908521004670840617628624614245460851468070015800867408151577032040741023901526180232001732234623797073461291644045637971197066595276274377865879478727848918602925553072584078547046599176963487933804907356148283872890724574440859550551890442100246073974795105723920240591952700179600710181757761030573228152619973662569202126365434068136665864274361703764147095434383300407549915768197250801184542774073145296681742514340954937508551645332376118029922512300342117500702796351671459447050189118375149619347613803129070278392161985769768073432341868192591202719211661500912259081419186544543932235097172647051503796989065751273959354944546528404142314154339830360275704367836786778263757173797788405521155881868844932486060083624633654352731038230560306785592557912346422201707674152661636612640120921524418023732865038240066742704470915717333253042551032154768182680587439455288400288568819325060452642247050658553266871997383466351592108677512677840549775999568312235676763925208020062369321945097551072631554361664171335087450674947548647720746094036037759463257417038389533539256392537415674303383067594941129125994666328634545350725448572854341546886214553313590482723991342724924600285074136057212996312645079023268830492951481726966730384897207284790334286661562781792605152531390475073330369925601410519285282393347290970665358189471239751918558274556683367117217472207800805245203735745014575205511731852841327003530976646064107487301559480922580987726708833333479540096133289258428660866606771789149243360763506407438143273451294938281726647720035474442267753725461619406008860294661667108909757831773835637129099140680293919932507837303645278410933041446839585764293011402254294488910307025681803301503512397546144722808837802682230306839904164243717385868629852452042029177817309838854020509161158296457682039674178528078642402530605246985577024881788867573588525352819977798371688494160720933309524798602738847296298078696865042168661181845336220455747972431749722182554478288959839037711292095362731321340959340217648457927608079813537599682771408717460770241105755809807940260993692781224509600717413941654077575087478442200254547889999134969955726278768345520321114006538514365521980363114397224428021059197095376367138959922480908280573925048502028271825692598653895566756285245415789154321961828316614198617228466128873085541370425777484637290041483480260107781662110691751638047028407990484165446046988145639967877432281876360149510970066685434023730613034211123638309497506886710846953035180030197747124881689025998998692615763142931366711274369193113404933383405495139935301115709624041061763859532225725669222894330024549798044909831084092081998141817276679331221460725655886331437381262186614357180861360775323147285483737596717707391191646459375948583442976088662504772616212947665083711385738316603763853138086063645432003149759715000420784727349826376569880934142406582757859840521050931894980294948489828860655498089166855257195364673384148028386528472581609196284851744073930987786715610341068891415867762090891255648388171463144499658977481595388440385452504765702733470987028653915962285870919902111518093651991564475438871710702655128554952473753234503265794144536680369588218804609838370010484860309711453274286273947472357789384160138461500542783694743545219698070393969623676713296229410273814841703725505084032989672302459238919187180847010201064689551369551350281438098851546601680036084652326496301461384680202421796991974532856960766946645130100933317519710770769705997269848281717023597785585357214489808312079044686686400671152388410492932939226534272572393770492727154541002860176916988883144225821360088846665423050316040731999649237378928812480780357098165713753072545191600845141676868865392326771280912523223413803279630773771255183226336893241219733144830067944495037913315618357663025915424596854655544092192219093143206459451386615721626254326271915902752980223291210302634332618425820496636871025933030464519439695890197854568570689245285160023329084011064277089871010482099742109461977040255744537220925250921662252862717894821490383182089914182873394839114617033734677288347151579599121977535244567271494414241809806139651660734544348983150173904041086735361731724132039944014885787485297746204535291112815945264589815191589559511547701097036718219808988226525732914884255049648269555382131971942487672710022614696225922043423407769080327629360437422779176178655160235558252219922892658187513003592376881814361106934613528327118082541335598563170349259436138346231622538562577330093001089053404118309936344520195326946744584673189693139059784604717764227799629110809974378693289230696832995337851906867468046149218423826146050881928554999726365040493507343256021917369231230253779349448034861434145560770571948731698161334957313036100488525717826968543415036854318430492595660304124662682985155889809192930890074992870952850377340439896733302323186887178310179924847972503290561599100694003629524743952814437281014591207505371611532944622529684474541296767649620105170879178340084108966707425574577939593323355853456229023882609828153358213013512101730053267226304190512791041564627969351252406147075360418818911949555938717624322966700676937334349070006699164468554057161834990446028112614780646856083029600171030346858877355310348818070769233962656671470005895957398254594167144521155574191791187172988622149414742460559827747110831479526407942782907524231540332178691195816082391130349670691037051834337969601035582296317645420064871660047617148514527239973430933756541794450080588687710305765806785799063317334011930040226494227232690575737547315940026992078711992978386192828583783850367838056288813495653964125308790395622810458868252995719641875299246888574229706863088222722201318466551814169164431947820805222034930177640428002857435498192408378419483409833974798889073146756793420921573236053587902982938609453760379734859471175213331067083033332091024868577093997236644830096678581860339732758250054142311011095969091041841156214147381541975802155664546917398874572471070124966485363538641813518522320065893858976683227873641630162944394522371918132053004555839292184324836510566968544614945024230644961646476857429793558412385506424231351279224972562735275159493188790335162446774223041000344448298149016569659765653696102635186588876713563354031561396563385118349061096980740108763586393165539503766894305132729341031519215491077136926209378937778082324841556587009707966551411945584712586936167262990923392276564408997638824600190653549367216880517329116701396785966520527791264198470663097382670962845646692449873303751730186484370046956820519641082830803591303203163755092229749209309699013296170085631022745627867163793456756207264538002560455955422856280753879325772626228338927348330507200637312743091503289107727960516569494208650054899220997969242987146756113219904057677755757730249306381022491106675647361532207378372250775817825023035411323896220527062774233374076743415869271617888023087168249312842471695961798756771921079109228896601087926988392294542870028654971005645095666528619851667504298772889653173837291373778483613459432397122060773052016535769831516306610124415119394002279925178171260877984416491612239475648520894568660452502203690329011691521682529157414164551790665810614443321175938355943753658445371372268068509379088133226710252437165182413043227381516942324519084625936808223478429767091154258775290215978300838657142469370022023421833655000349587699215658783669694502399929628772672405681175613908053289972203967082064355938685069794494061818803587934850359015188139332955811628220655906406304527539839534591541246255453644524214375959584966336253594481816820318417720895808959368850652895116165399329244275715319198718583167475215666292837855878173242540230653385138368418939439333893297797104437256960447001275342654770452454500639831297142141813586745830550679784860065270745188879055235959452249637011072872110458577240349417965655502400124890207077566804525047709933885917432343882398935949285764026013587432925397557730423646796988793780883196368853875368474457412278050842811787205923299082563460369586566530620923575369778810888391879766897162633945953038785002507583984808073758682747793445911897454334298727829334075100239020863106250148622552866382414266978898785919841216288660774643739931827635541064637727661901079527208588250034892913763486123310149302768945145362724825596973752695689439466671859082767869707994262304557228916826802280483653022652639914036271054944476297715550315221045001621676036515876504789768639808335511650611564292766246916121155225150732344504024279210276783902194205082614019780592179024122492027087709330981532467878588464417085338309046702505470792748958196657679802042237666833982108765590945754256758726374799315075111082019419356676681945686837958725134722930138508518487709699416338216492243494056444102839025526808866731670599527101332588496041552521691616592113605539210100049837024310568770665922776079838788771591024595434016207318201433215778491672287032092640234637170824633262963703121860350937038734486222956436448831833658984617756728919743790754374306002279657321251557805049475995208756190905213966062428052231250939024063661469312899245866923413366839885798202195143369325255796437513535297352651259437014362153612672425025653704749791137320830448766981371479138213089458897684922969821999487655813071613376828713190444243101363476259278328394581342950767565616196516825405510744496691423601232260188773063069941741522356879535702482393617135770675128869698995982443655659090321377502752242153555308689632563652880367665239241625633503320980552824052280691337107519332930630233380892101171015877390222039540418866852423263920225882180391845294956166238375563633099690773452116790520661346276128110413050344655563181450377728190902135582839038373546875084700251095412790705724083948072634336181159270901692515346636228192580390763405247315797924059813507121262352452793445705076711846982412546365995626276510975325174887069861377598078650307629125921970510239906142228938247719463037281789431424928076375361568910053433517283573415098419023661764741505120289505459871915418580994603629358305679460589693027258962361940126669639881628368454295364804299055538514676268610110666438323887841837880416059900481069198767123973173450858797208467904462656976339937315083322810597318760650598726162271252995145326408904362826513146356941569945107097443189143016771049447707496628325298189987707332471688681171271416281638587193294768894670338868946297209495326219646854660300452683813913725681916861711828753733702151515973400018359867403019218220103859774861725223217627459465981139099736117320274083687926512239129490382740316590526297276202167620167865380351039559327430405193426524503807242066580297448398003361421479566772441566387166097690127744887878418387687179329816189119455406175784505327708308357964489646000395198966812726066666433311570203874903456010883120577399990152715192165489792828387900490318496242369113404560301958644418754973430247771787537892259600923582308386328107091805540582936393210291755121660762006110586143769598626788076002454090127601515856586649064298136153912080738134496488951504978225326943035892928458825863237265260645411820736968969534562365591656861120348773358142032888700902002904780442830908290645342987346019838514376488988679833516394643450823435813235843930516064237947087084385404092981653963455342160670234098926686317257154723766329109600359503264586445201042791339438477064873387005439957756359605894167634037129156179614285393007547691866550835890996576321517874143982897102660726147268505610215544740823358062414986543672394827836654865817992138893018066775099771893114027399403181477144040974337772327131841812335846328516319878861454863739505230073255630538321160497089597385089915649571779149332576656639446421016579915679063792959211995372146212662129306837640249687813502297733126344517862813952550071221392821501953105983532129154040442154746245869838695786787529152976318039961448792048638300678095820432014437927787942152775852853378815010406684665179042032965381240799250948251086293102349924525306501491862299050808992510722021330014957334461336026320600975152503433160598246641741140094986958218895547840691247596707956337388712055174450591735097474628482287428579874756567743345490675678457756540835213804008488799371056936142274391249186791720052554030650836218732261750676564893071843797658848558080882329004754670341202192261881774045180410317862418621990880926767553070698164455152058951265311031857140839637071492417323741073984801813300758920231277502605037756985140510498319445477682447365418675837167295745703771195276786736128347679553917834176248406163773004939769461791914967187396299950309297483245729435411683473946072245304092200606276955728360803459453724413061016919387552791457277616970694194209358474474837749676422146525197395595838184596683828832258397315051921336371384052208828891449235636351690588887017666704414221869329670884722265456428941230699698533953055978992168049544794111730458261556819272493550465702808790459591869702154913313255044122106288842830288238422932095781985438798234541826111051895617270894309194388686069543187459601222838992879646917260959999135490419913552378192366025177208539062155580639619373055305184274085457702721834994066968691631876145569233261541247292885907421536696127965540238016642043957089789799094246409893089804703393444250657191591488033411828355609317474245449485823897782615669658491835186558579272905684379995801985515874151682755761736351921043879510815992536329040716281312994648527606475013919463041285176347805246706114227337323331588342644024536070609137195580341623938163530945400261609509207443491020155398383033420814617923999887404216753855206609691637059153236416365371876876530741697873277062985355177626442084146196148927937068191025436485144759834311953463487534758898631052170181140826887089551063046165119264569211711528402224820930707817077413860685204031916362727738079240768112330075049807660749339244102020502256466950677375402717601893976460735622395118131586504564712359066314496002960187764201599957336394827285754611803268349149841138982683991423374968731620000093968802970698055290139672311957653457283381223694712116594521827971369092441394401950317004877973861758270061177426484531152006809124349167975108704278270569603969926507275351739814291954874177530370428595277387893937827962610867543983316690042259487478001269481331477686193435546664774701894370932314497617766543209678306884231669454650509624591270469967660723191228030223657947004014255695887208465750040237257177011067915062150193089496460612447931714447569895422136426312996502654416757262966260843327987656312585872691885140852937516824349689448955573182762255643187346548669303285501592969759007328977567299695243336504259925599013900891870105570949136391319767191452219697318775647792045625858362002328690887732017055606651520159862072238258943702061212928834729713127762560142433227182858591080450974086870050554624766531673636389066161358687350877754576932799470488592601144887919567067355727644083789513518219067604853564541289301265225535464497270135227261275128801998237673081598229214109310659908464793505483165289148805215164562467451757425943879404671833170827113782592289132471138387353844632677808495635658088071956755315133990362433371420878198855034892819172473779312207552177996174526769059110138146151961732208855873698494818904704762899027765701038364777794217929628947900929636463819389852552303303208371336349072308802507622440017042531142677806195730785622118299304897035888796479384410778278502096057888859267660281074632959403118140878028260061714035225839231382716362957085912569349425392720049826266786745408610513016884484273584164740331887487647495920553396576382376106463321335052851528192145559324012988972311699529714886946275226177827382425266989848977469733412668831704765143236325205723230022873382120785571745143677630422835297993814718944991688617580372036626465458011820638354060620636841967059633833280553923581671860166747930527271080168359310962850175432569107725200019960303794201417817703748727389746953949999882906146253877734289698702516726517664636050360713440793426588901058939924571564452014769148149348564676591127487282416691402683891754371575041167305810055864316977338984499393615239094634512122022032388973442733676960121259640065306947784724785070673579998700703066220204862929024857118863907239108499313967112508673268916751492376259810171886289464888959859600627056653205216842968211211712978062731611364489402303828988797319635766236859721467555796721613216344235532936062855184080325031756206790496104400565999890134062923075430246251135850334684639430909885337524450498051789131769267664279804066395733040288847348018441549048682565792631843402455759739132637682752522676719376077849077354603164199956678195300992755510916702117862874601643484467264810146009767858608906788287403128076615867025852276350538455769108961535441731314059332438835337062142997279604132240439982732280960410944982256562035114742595229955869088010483898937692873011572325170758626287115411756225938775018042905574032274915004075095244847003027639653938745492857106520189480018255903873552350292947421835291387191558089415589608850304733351433160236436728986657976754407164020373498293057054218633724604236151725142315530813975499052838979834063559232930878346339152751597125216086245903336413126923363696786956698771601157932037743675923471714180363650598265031809827790808574046644893479316067906587315127786541735746774446782681218103892554725182220719325411299304510964915117528907612620618440634594947837737934332116005502735660970702406041214403874960654350075773138992818850458399532996026202175147186430411721914127555030227611903493655553115045453402785227517158596097583020561547374058447252491606543471632468035028554176997465120751085607205878627048217544867172205391229109423959510032904390783487783585681063742393185391452126055130388213363005657618453254788227801476835330564102641320589179904580256179730492851254246903439576422009663427104506401125029266400904151499569511319712209047534421072201805395451470293051047756793974686588191736178761715399186169833819588717011594745504841400135728724130505411190914757939106581117438841808117411631177211401798760443375480663078968939213310778189932992617997439737189012548916604454092304182381173243912068332134330471112918098596539902511235375292512936788491449539915115912040066283055923056379547138573974991163935520749031826540384922445590508079806874676636861500179365039735939103503370944408270118785245537351641375592277046804987835644966120231393062694906184677448162282217343412879582904899155513688326433412174296816623913399318619897018547336416236102789554410198945539499774112800232677702379297597593205343401982260368169132669681011122524514843340545179754207452136825152074406741315178021182803996386521902607425015889743775426854004853248521920167678670352095069785487577330152889534170169812075615755546923295848728125877114067409582813768071787518435374159183405618192316337837424282243936957449956899870985490524473108922071890033166266510863452125881228160119646895854164436963999634147065187219450911643223580074972769652019686272521816228341361740939399662161551434610604025036214661704095020140857735686662919579415124792474546128065626546612268425896026531580107554170407974817262019869861805293570836911391227972766443350771014492769975532540946727562401437955074647605416762995339121847500495932314737064180143916946896045941511487546830350945629172314782471165733092520683799077062663404550672440489394955521158798606374502049574405623265399026543087132983219848118038353274007636941328398342103258559595860885553596642753922794593641334835601985651497939836560229065538889122231402939386584357151183076065028828054487055717778429904682565013780429827468485451791788999715167602707706273054799549252879833139779283931063574930886219055386318861784781257700377683535797800550675031786277322304582524148286667514991612778511513513632858924985197603870437412719404102061894834915705972232932900616403520992988761880551697660234719422409856392015446391871103984750806558648434939051454542728876386113388794363119707548498912865651907620874574863543051990452651459884999470417724903729230793465360235117142741523778420578123696855537145564368465823376832399986253164850291409689637094194107285391156059726494617575053346452046920731271265076403206637507643464185580495033472582469548208781320641758865109649685253906322642496533411219065214633809127296681678838742399422286737161408330538738041867417919336500162041728976769755280299550515258810172682349440337410545031501653875315751838066260640920519445692579353166456497630166919325227288673212333298018571409544222681324983257939248099312791044098735627046087956462652288861400677006007309428882237999880708128100095779763569582348956545505431961766478906124465151857214747916056768047837420343617706903555682188640457054933837771629941921032600277368238191092244071653739998133948120930422020618444063796631417088663412617242588125495121872940498285410579029030991197323137503695290435839158976280483795358116817537486131598221775584161714200014982627164892864281207987078699140672031217381844954081831035138406677232693727917586579861170236925745271272324056137287837927072431718592211354067875509469379430387301660500662166463026593163216811474856314446691580091091370370327540535876880760713790267754910847987507705417834339677020924984611220770707206524840024522284460852946520129852391246951575784426943070524739236481634600990965407065176662097933975716530963315392384064831763863912920798071814688865865396118066602996297627122396360585359598455239951196936775523616036109059466564271066188394339130798862396970479824309771682809028106294734475919919209771394526809410019555972275339440916575748899019730204157127441394101506186393249069869933203826578403026801885033749234078048406913712590106071879696390891759056914484060612064288368030385451988261571846553515180693357094222298854026401768978360037858149742777960924852465516541654823364462840406304316052699207957646731523121890157102191363531947829566042510884724956077266450847327181052797311126585715510598622427742680617770479731714079374227857086379897724188748784367331226122740857086772358815494226272697893496607552811364161642221446538627737060607073840313061271775423341871458410891308371357479991520400900781514545135612909437111357922888122849701098914216023372257651522448740651494313285391861815527505460030292859732491610844789603742683966429410659958708529619935883632402507688042910940740186004796329407871872912302524200499881248912505867365629913051738790381545422920076661747336922716920413644441259208334407779321580458234024787461046962333571786044134202906209327330440945673616296298519867036665064686355034462564558920265464049321011082426199346549004162346734425535757416595187309848944769058598894747266322459143961367668606791093971629795509262231657818954012501714408358458768012297181835221940763645338329774382072980226257595996976355764462647321760906750775444261449676378714623244976659826627252705146093774434738894756060730970098669606891100643905780198554314753195377688618688086160203102958463026311650359223460873460747238733565118618821701761066539777627807077462075441848073454994675686811587181748782016852533053341678049798657034697846106930886539261434376388875541706421325385904836836414515209887506400616570263048471269634774197299572791779430339687771023203858718300481304754595847745450066158520223322916128473320939285667162401453564510045992523473483591615351171487190598204658544982314796992924993657306081515959037988588178733553302851361599622862200826186778943093096762486467548524731379149732292142788926012265509614118332876320597738208711208275339940589662152709509178444609837519433462443148038854688713512491746989988963963737615424062471662700051207954819044947499408811273518316389316046308783609441067353058739168674465358640151772170330702965441239658046799850934875977249677782195316200180235182816454681300622466586107130362066013677963989329657713759916388940189470058690200018259791422643731210194057445810858684347081372172086948045484344202288071425908088955777986775101547218109842107812257809503483070265159818266906038053168617617716197128994573936294790049453233888411402691778059458510989018221888890240990589523662296896963312206173558786066951255175186234520974276930332684700933657019227147510953418681935817693385066268908722731575051061843388196912174984604683945826124053416831137955218685116596202099195920467692210639906699813243771430787110891077493522264054533044609448858140380798807868663618965361110440331541990210243076246276957247789723853580324023767414542324006046396767717121630192250133489797278210842416276847904280476150165773556898833186601582975038510233108934889520898004231189317426113272402501257484182801216842897477419235170812067419572645342039804874231062797464671866715189687078500469560009707498203303477675918112622645826281185653586460833886642105613794545011005839009623260388204623077844657406740005639319189099525416289673898355487719307245811015944734281281543856546162085561940939292330553836077260698525929066122101838417091841269119621646152194775848402759603068876715815891872748645157790525977254289876031898246631815181059225176276215884130691271525806124301919632782866408113464435512922761542100839052585223501812804875582908965384698786700298867072053646599854932816577992115365857954658331199324318886513081855908076454224353476296920095246726890241674212445089990107821315519586874153368485100557010219833914929621015703865763392666915779356244081352625489852584598414231932150265803410624546688539241459529936148654216090026854472860907502318408551081875729329238968115986433893028192975263538235196159910664306480214549830051354474751440904402892018333306946055990221712614976113494900684075914094001629488259015316103269445746179871732876006554874577784691455377202388294780473614579386369264869770968820833148271914293147261969491986023537405686765365598707653930775164326839028342570186194298287050463875829605729846887433915426204645951127089533298716207242219313758011696960960622241894871288799355186763590753033271004116288884521262917540816674961657964838148637733252494011011966140765380652869039199386706331696414994053345458841929410453527132320665654370481573378326490143236168516736623310498686039264285132292064074979142389963671406307305944113686425008735181135653292399863912554474689965621187999355926980758667695104889555580446083236925877456500609653974205102979612262047045287530886134567818157385658872118468435527955583543922295238722598786101767407000687561132762844857124705551025087610935259878239515517917983077100459997938112073782944809308534392813826943476081464739689850148795048386167225929408098866018434473042038206096897936275936971889656596446874474439168325852774745393705108217279493368994481409076390556535173359356618652140202178415141793648750883663951407695209818264585736057393837747014123384074049781269421769578887799507852883202183966791315216476754901416528085388683691308427671371536166219565183057107800142241698950311556366163554168347458568438933418822704059876778474284590593947518999125288235732117989028240579108704055848100856052251853630088396599000703633256422956942593116791643775884370977244625797037996618541536442829251897568454655523322887794632213801813263889722537472218393063409730692410608997863318831106194634329136252415778504210067002040292790839758024262620730312042115492867843456169718127598934207606519694508293211725688403723781632513893481377908374214783528339497445627518978239161572579768778333825271531377938431804898763846719391693017663055017105289219787300599922873302075738009755396215967829496612553693702116046166985204778054132101224595315868212753272670294882639832893564496400759094067459590565649890439655566643070087783991390586875273706890215661995249882954577282258795435656840944866854477391736738586088531664771697625777330983949599312344489441430325903786047549619007628108349012932902962917222516586197934024286628349520618181658753215543494653196423280321960036392155978473364295089357752492056671472383400988632316270945663558794766961386410033295079503147940233003626708027899821284113202036532735585124770656453003726314100055643930740899555528731583718293659391928222191152007193830564541323316742316110496856217093699910140088770927509577188322467356008266608843032076169659589473893416805016427860353971134570455776464584712854806400709919435001361287566356003539636112457387848382756554160762427567739553495724849217037526211726030536653705384810606581969990371605978628247072914693762832585989598210986188314598888312725319192124737658031851164069272042506273454344830313791984869747874107135165397509583324293903884421536314309605434249585201022461499911246304927743354426100918754639809787392732855766444658690051247639181294766991999307045184721745645232200207588731473880268198987292994716331979625440792813079682733945357732896628981385171475610372773670918863116347288976849827840250835834345115957229131484197281879345373976887848243296061750481802243370283496080584584727934817504615774555452242694046334159980673170889588659328597380032553629688437433392819462269123272417820721758995989721880346966993029242679654336867578734491378599092098396005972221783524537534065640361561046811625079956299531356203312030857239723564088864225162649468895811187108773800503807270406415875011460333020855817431227799858870720121854127683902195385407131003080999390611059182206712054283666618266320119213504958966311826247927553595915351549318818772059958627003679636466607850830961643973756288688593373070693886671922371360145786180797737856426409231755742861912746794573449098137965991082708370395137519557580435874585773496584376898276191677467732660567035198077270744356419956766852920017171741290787713259028896578651272810877274762563787634598083249222814723053774115794696561862956229110942002243598144110852831892667154532511499185358468924736242551595496802803789689097036080009726569313545343988064895942702985345579075178474885315410123310968831970879610814736466213953763612253201409584760427194879562274030763963368028725492949663932274011345459696638154513235727196565444899207842049268019793960490372603981249014756824409338143352468093261165466365267888211836194827688132287268773601437186890700137058332019426185181658645023412653805095932830372874821332281067487727502879357486807561549982105871878207811131897392976363248824964912862995121705128672148392098442383262971644313718252472926531823070864078151073598457617242309665371534614769400814786022221913095114186574984056332138664749100337274773401018329352996925126577481583686812981432922180158453322516382973325898820114504443718560787360753832864940536747509211095392596670791254246676531519622815511102725495399866641015915241992821670028817375675097902080811563104185704626089475134595854572029782576994907223497949303803333656949738968307780448887330962490324089665453028528908181391331489931033923867251736566419039896980729098087351048176736736296897673816150584699440039863783308039640238380182396044477109741800607744273213093011007332834607537108802833565501279116703543786866219749610653707301638738305183920511929505418194499544963789873882680734558751650418329164301882503193259526882291438883734933147902998688001082327400651810798062881734524084785745285836436346385635695675514433855648452706864942487135603169399774064465892753655417349193287845864684858126173512814612050675659437396664601483390138684239574706418976254441633146250444298995981716684381057873499698950404910843843932649276858427383213668239333629704904343757712781251135397163665869928338876220278637790974600521969843581190729399669367865802293882565740496913898775730994444028916961400627782492837217535675539869763571063491952851247317185038890176771123969023941580902822265435755627830445084313769967267808896181297254944365194620280122796483788022869747669832075059247638096437159534918382039687265252328300894508647241408549821321881651463642118619453284596128725494972431666556950811515578984012766939377681179345098576090849214314980609691678143384353482900006220401832181324897039525046613309552167227056178564117780296920427523206398310733021860723864561097805362719950755006986161155162326371272102414188561973877042088335048103397139712066390295710398609276869932518881679749469423442958513384688299541351145175938895776564069645330223753818417485825169110484500702906484043689222629780779906864524820754634629508903175472479398462440482179181847080454077792630962955098767280911146946934845864771417613576029799273197888922618615415626501430974873543385765585904558600326122910343466658598452257875209435456479852837156200203872455583791728027597956589656473899939500991402710472197397615233934036438154718871011460405114574761589370680263586806756563748644463110605067549456303403401930744313119350088715216185700342645100672606547176085260383962185665039624539825382968490927439834835230657929713036800493634558482645557316250525271754167133782449646159639891216059082826659137603502332526870759746480654170063196568994251070387147256794577324595802243251844917159861687916442680469167126332971829810162060673017866724503743298841980818835752430585036231574447557334629734756814572921480384098824969610452540843043720210970339239949982994613470688340512306216353740389804660465822528254790256477344834545129188621083626811638221208451972288333660209424302276643556960340746751830776620601668909625743016537277947621678523389991349211622738623823618444420195147313810397736205909726654780956709940066325684738465358684542192837832602306920941242971904588208337663158036917367419406922118612940702278878562952396340919747074671907515284864401481317121412451554588995707058226332299668843061615646517415336401094412060068645624016623813702504087636937987658097822099705252245496656944052621267742307188782285194415419691032244783452684683895934428432015036366292937822283635547787753900870184295205038707513950259989338719314074632795266429195246473201300379425358025951467400254615354849521064845296456583266109713183367613211707125906888415746413686667876016130412818937635522132270336961294951959129491920670861363622386617201177058735598567533169086885650108669731005785263182132239576261470751559214381532052391184682061271009961132914005033121139582526809919052287672032991084920480193654277225338019813848175755895181776108474298060666667739212513534443488555311484447629112944654846333705416745201692897546069699962399452042260725587188024978357935042959287430078013499517421700541421243948140064270609768813828123694838406207216632949800558031744054568976337699696782820080820895864984745840566788850881114524849732646377702216177133168139130433005659496969439691680085955349111433117947038912391752108224770993562399203441268140584314948376595325667874828636843633304924836689163786688701077348818543054866273887855808109085429907494931354683837029923576780283004690443985286794763857776329614629736116356300089070406756571637306580395380245182324258941232765058733679403866182350829908497082203990205639977885759360348482368484934610660820975274930637204453664452728967882008011441859053579904992648696276702491111892828952661191943632392967677321752580711452907541094620839421244072690961429411296005349760438581373832090799322307278102007471537622232017388721356070793902724913033928036158822256370153779671024643878641723034959634201849163118796219581186237836402159602325536070375954398017033618322000357562642857900627183560317718112882119156381543084179827733615183395530566741667119697157656960403837034111228881530163268296237323728681548961117883683237714565223670321313838480888952937303585712622324768204558052273599446451315698675545692673117667873021860944155777380445011126887292362988157018962740383746041101736165994813050750490386035329201278062395283006913920504441820755726798317062028462368504529523176159792240336774534393589410527948738084868806096648044775850485365277391295308388945352863607977373221194351432057676957398198734804538420646498817442606209155930645452355816638515701331196499108730432515027643104339583653585022883701319845559391754620267270541909667938255163039040805840010610790531895503296825413643793725365611344421388357491985133541843942579130705019752416314485120562187999567056280727817298470244562807654623010203059601249456322226667174661209205501193893381259204716566984452331391922906156890007688657812352136323643842173914428985764232300683000581824777442158299410312492292648012372265647506208566087758676592319292611271411307092116096910138166905962744203831153653328994076503854343548874599590464912845456107707561603143858936895685853503304551450815177023828060681932759808601415443324230292120243284621011241649422856285781554363321466651207302240762862925201965132606627985156955366014674376019890234980925306569809578841054411012680197193032618504426833426080825221412732985706580948511803367324510596059778677642200951525253025035830237092545029022504604808660692440487466342446389541353373289104280397003566339766921248761368046908026842845076205622758833541014371995732908443505588966228933478353747566780194074599350443458866959146998966986285484059610071566429423708329517395100506294902372132181867289251445389652220082441755702596876194890355292223131158166218586079919553633613824444527141830042119353086576737311438504279171268871867527266567030865119123624008784650579760108641892112073863976753887561118862884584116493542922942535999484396935304623632407808115382577193906265165217121330756566746706378104137091552456943867179560320802329467705278534446252952272672285838748332669174328324072672959913253934387749285743648039868175007833073897271520738985052962995111910963683307210819941432958385053452917593570909477762303055984783027935233544922021448792733068665274250416880545262361639423590936324287043647649080636428756644160350881755839346622110716623517044444136669290556463351919165910124079385364616193953607933933484490131620182020704359661525454706850009516090720531969110681411019834032781141736823424996620869712602431465220440706919035883910194755706705904259173838910187908415191704565286054093438165158719695844519640418550288088361976657996938445585652352654192497531908639103197924257292382377675165790190468100824287956642254630998699924923202283510608737317697890531330295767573303293445170497915531221375702041616630567314924693194984446481999821951040901354992016610047495711369792653596837292965279901213259024836467684808008674558114849259391792497478890393815454177076573602998852256062484651740956692742148872814538841122381709864860139151220568599557102824461158602526672022660583909557520489312637005122754623068723028291138961034078404085703047656593587110988450723413015137022526599980323752253120153427439568153427170718951002427486180335912230677513593727880149264688141369356011671766375969039545942704851652272574920990395434832416633588197855277705252778812043316364232506853549563426550776483282717410234162320673612491130811791558174606891274419158099692499313299881852364613652840822546788560288637577519154188360454308903538479628858906853061746791653951457646275391018538689195617819750827996588845555336287381643034920690031184179268380745386718266769392708639237129800094240026490281051502023459737661289506510178410875994553464020394615376011959575785516726078256625025353279251462702412993421132027142347989089673720966165995959312801118862700005147806559112971537920235808523448402325385561669359327963371539910783912887201990982438517841633152448991809871876598986734670414734297926313418472881468172153105345032951913703076264549560424183444063846452094448854041285466731406864147995379601960361518484336212541454074461603163606498571837114638731857081460948821122154051114440422024001205062371275632463133672123451079073060033471143010816451406046603631783502431107762642286778280828486267419544961474320273607114309880008100698410663946321611602366127243163205823703576139566617089214814219567747054387786602731310923650301367049649629286293539024707319454094893825227949497851775921949673505299099784233866825266260198549648274296013572348993493701507084014841499760371561765345418193976522222187182970802825481284504188820366868565203605105630789053030501638689662252917244155210724826514036234916497397066346442346540139259487833509810081524381017757420079367218745673742497091551556813937139567505831118502503298504427330456909769743922228824322772775645835211907997659722316117557282559108186037568331322953426124736530514063665260962819286861732210965916541699104625571289596449600708643594403398124827577756757086187780431185970365072221676398736484378386812686619847073381398370626461468370802175452962458237676737647689531876955819731881778872218646029164649374812142850332996738344463427324942988529232703060312604367148885613120332906868798060717310761442806508869235602669509213463046215239200964736229864943092149419309346354875824906820894526076530923625896022490940648262153188186670316968309598114557706102054184353548074497333070355707718068386352429440869873726745055598406909050446320237129105697830946186324273064465261949006314327367260644668359497800216521279374936007011983031419201867973097902011749684377712446397074618567419545657806347638383851050035598179651565945354909970743585427675086452091085606868622696980255230413318547361645843708728547696172115104796110683242289558782561104240676952738143149330682939656562516486522662231569213787343219214830260955817729696260085426244130520368608625869622835052058595671704375881166840635180864133337181016873306211319888943982974882699551559942694919999105897561727198728308036642332676868568118197327264608391937628094524660949518729392400270191132711859875534242751012490029352795368529641681764836307342338228336840386774026453124878401082512797068774790900744082421403402324262000591052281462839165309777888060015376238173885882562327384575190245844676434860820620778646032338878039598093984954916083681374492785684339770743776498687526304300357765442539000965516492066557814612475069993254803062473987979489516804460814786710554489983114661163038498268034053766413305970025638700116765824934702758596857331032724853033410840833489080908085092897486472214919338134201119922199202158951924802349199755417686582651290083423247263610890907596131368711271603842501687611592034703113875012564789516214548752341895666928376512159975721509296542012034353781293847760669198133869582483246630384900743515712549746097693907396797466120790580681222925791475922272843489627715321608552787666590033114828248840738344694007566553824581363265099837436123767148258354225378180246694198448531169124844141519908937531424454283869035789342069853164171473411828522506275854429039271120332132213833691144169879464843497616394877018567882096667518269916656458652774771758963368741968605791000597596039846664969538401587988380071916953758710903772493069330916546863445108960158345554805968812171097753831408901302298545708121957011135104577854175133765277504638083510438543763847400544685171949084313855298921069947204708976226147439794747618269550235824689202550466553289918942417863666155435749958140061677380310359728060744518280001812112973130701256321571186439245484861386006779466012761046896310804223806482676696420684843466393019624566128308358118851648235750565800474942315422167439822754688164905049537892312438695242048232661366057167716647343703394305515390535920500997109454786882716075802322985749912352351534146005028676270626765874950236833078832994350155068276994175130191778598225902445027153554334381358332301555354931736478191134044977998834913934082241876509447461909232765681614481516217452981973108555231880102890347899728311796393063169024584975212960298338055843274037620862009637034688942559891990666494921024264988364278989149686370488695351564989843122504800558886375473844587621472118477554356082071631090706435927009930719562644258161710637472597633251820772869467598216011706917184094899454313977611549948200373536868127068310617396890424196173406966464811377060413276111343206753497998172383973343021159886243700527408942905560414386748314665795337020739387398798170654998596185931832868187179234473017837733953672291065982939736091272987034009871088567896082408388246277260708782970293717179015022425879499087675912105539770554720399278123140101694075252263556455368428646703681320979189158064901773265617258751619034511090613932953597809592137307992998394245397938319245210364385556948409430628168139564175274955780504013335120704841826821438931275816881298638050986314668382086020854525331408548354102817060712604587687272563411870514078818982602598494985044158298319891324786847423127336325139339123891588738927809488476188784794103648212378881538682999406461603826038670455731821775426841983789960220900109020004917772212709745157361746155110971341346302865823013779732804726080745013777603782934453624325767324215095962174011516761397505147465987621138935977338897249936494661061725574635676632717700338687154617565900899675895239234832960785473322234952906749286342158716439498614075328897814599456710481799525776252287226197624377221601088921716402912436452073766897089582670452535756418859909520212525170108856792374979469711900806124987462726203270683712544730412092004794341724057773171522404343520683759712363705744262425805515431090235859831426344713736904704522608631636185730580395282589852761075170170622516158021825870292375436553934754792838185441364347920579837927336345765187370628456220675738345047729422017003851649695207461868988918879215001893491590535781698297077110458134531855162169471719793007220466626047686567909113339598645189247348180767131429916934351697940187610715806601605819261013253753605129835474977324324701529792332850038984860940641884698051220244983905295448545130207770629067817725917320577973650478300535009527426507087022647834326563466069826033504579437055355856863128744435751398172540751891781021734378317161227443915502483931367949236851776902481765091064405683649850750717127349237549071346980525282713173899585035191372019795662012863208676992258573590569698147522648819576108129121101432122601528641755485720232584361962256495155802259404612960260988033769885282427244789422406036020461608448096039511946097132124317417298024511955121177644419486998023181182613042742032193156638632038601612857992841088004284861110644324518194384121948725196715477950118064857843037657889216830443752870520967803286752235690321235308050261758237464901002583462166719319013977018505318849618325845522750624620330711231720261157525667081772305838357046837375631844351165649318834687664205217622869693253058518279402576275452905271892017826400017331300087978878390197762804598640520481341752679370362071004538266223577724526715632028380944021270568980307665426154313912174887839659032978445605828440624488042326435394951482917271984819484770903725923534827998401115871304793256054232548555187111432705121386611465383056878935132081573930571591970011725980268540967565614492514386764427989341755743579565900819280220529977718814048834519273670418709601661984696619003848608544522536525866837146592122925120380718350386934882948869982724900997624397823202255435452528706075957214038954826721786352178100244379608546085851038731491023844242976949954648574355796421704502812160258109434264155021342161590373246875525322645177954226673972460929087022037748601071502728141779943887246883425377561336251414856520859798015367115855307129727429591101180903578975580612443651340436020341094675622963852239048915251981794301056834892357253512878313428160124616811048760218930404313974724354765826547776885307499857070961344383435491574549664955426058155733718985365635619441922634542237439539463034356918080725851952199110519096240356802652379469990149020606916766488861006027440978584188860355464162016717460648700226545476109910078044907031335568289671659224913986347248911854040038696505734082660040896629087462102720732894130178535983292713490511520821390710992354981422389188925460444263577750641908185598517750779981257006070035226838033955439247085536472170145852841879351192263209816016430416646176105801980628734962637759731632057125029015365673690827292296382744233070859789054111761922487188835283933470781894099275981615114713052454002397904050587187349105821511506754925651925682951932115697238928961055195267061864268032691699076918531394189631378368511471602271927753622136798148491365382770046483673670972510961340171055356066325480550975209836313482446506719332953434228267566467800943592120095659411358392170294494861491543761087995702700440790571336383317053738422002517342547110294594374963868151271541408087483264211369265537888386350879925543028674605526729304896794382803850299718859071646647575740809008355401253984419889876861556640274473552032368936813161915934580143705435349844671596872249421428894514045634306912203478587268223005942256170302672292662174038033774859186742525868817843068758600827291952772617495630043606902394209989936707156680778392039899044226931496580212806619939833251993837372617317842762122695861846905823435172048253526217457284479151149772769920586515852420409196465329097597532889131878257337772650754438151640979309660480121589417438437017981510343416247947245971741720708594585228338546630318303686763014439891272671136116676075945539453592370273052800524313857699199756330305953626109717584767080933356180367400921377768278248285909401620416587303194536273487486208126880436521016457403446026142232790272411789150352022911072706043629484251329662512563151217824287397611766000396217637755658795738371104975429827834004781225357567862789562546990749992207962225285766675559007516650184117039500682211591643306998294245934753549718397367484992456209117540397115996752215715863984514516986621047169099188594770112280609677400296415692471971134824215926005376293077466455874144159436909180797234246308641875908319692037179435091328679772308102353769553046645322462339129962163294179142415382717508766769268521151997695922658060083234884990035599454239344246945544666824823814029728318142633954015565443256712062924866755128532484937219809173597193801462405000871898442930642637447393515038775759827445212135978660226958403872114671738500207002348516094388652452984920093205583773231497594811032136641757216422856507998482837348672694842613935167351906432542245150519271091238166282889086867272371697752509346266623482086544891923570141074121733620746432288867114100540998232897196034365253118245658563573910394231832934058416619455165084392418436345179522684718500857419355168270513766253065645664393738608594461265312468437064450122050397536691790197167768545899824057588780702355106562307934905312375228994001108531152663609328350836519417593087811243473897520769962225699901826240777443981521517140870275638584369978069119858638895490889650807711324107062214065367182217149823323564491162911166852335105493806699798438301603552515247250147251418265071413352943400131247785491296702738071558809324937944353987580418490704296422077464704457652189382261931709324231759393239328401294735362695995989793451613764896979773347912090197526455530796141227774940144844312829925601760518771801601198958028813771158095188219278259394973784348285458873723064362576039793039973485441642915153678577975165095968358467395665194697384444607381894180804906066816666752418561942020728335471585043631215064850520008301241172932899079965908728147956545050007622638506355166666781962152920762506702008613781229473576553492122693311159272254734799841882778440607107002004264333648848570402397694671971785045714623910401590383682035567721640786869905488494873957799797762291576765960837195210369984176899137253456867713216375640881747134241583866096427238585417928249167743391514427749401927291520106774097768174028591357644233267417017451629737666378340350784717330341892102393809235018228010251078804125823668950149229709869869996611878119275586864189084673777823223067256038090017491095313318646996129347713933698691114806632283198115225499054539638913552060718875744458339044384567647905939407679320169815489596873511374817922655631911273246317284825200042332385713012112424046096351921453257585336163976581817967639938372044156712088842850007865147129478376229557884633984319391953232635932727621670626380486183663488429029139583753891356122514305150061776915236598114950192676535156913306520637876927524817618680239491366435489752936268849166863823558038848564467094775851817152140334813220165873351257662277192268185886433331835611896842152197599031457146106000230278170611592775451351588779675970464413711547014891332127264202270765095090168591093786138861381058999879825689533929977461997203153814718708427642496999834494717012907856524491458142087948125377181718195440198264850113492498015098305307535151328113260332879110740127039575894347490581660540774396061610982027612378656909507435065509232210478322122972135747697915345580023967290645976361586524927677807728384572549265927600912533132643518912370643366897596874045817488425554396628458323387008430835891347293220407042985895286576872149468883922433613110038275553749649359579185596426020714514856258782143341943920780374670041461022475665281822130816070149091962665596643369633619926154431089109241378283083157218890074938026789834438451050303666833285983852576025303819214318453308531362852898659105296263935291795039574840436879187888033638537599495108029281460039525642702217015421223438551476954006502204696986287199663556612380107655624201895065158429062355586172448941279403186340801488142663947267076613248427594484273504979662512090021248284637973446860107558210756779503048102030130567676963453021443745843856600810780414784305078556837188117716838568606982980677115626630421806477003324309760901206154099908483381722183201343138366066879639474094631190040771708137122683368399610114898809828087019373498814331508583981888739086424539668830567272090860731711851179254073934147390171040484825952712646931121545575515425251508673714990369722110048514183356779929479891816433127199262794533560569485397843965229421657424098888498701703598530185306826601868193493326936992386256330982819665440319244209955270681254271041424983103091967780687837651715077806592239753847142945557012407963785300374281269183939753612526689111785473995164590555170295203321933093577300443970543775873098060134728095591750066239267198333161868855739027357613627674517955559326096130854420496686990923949643827200369374675476050833044271570557718851220260509583204232146922536118301448323896113456442357326103521310045430589107941920205579549953209196207231214370224061394013680766503657803024312286492571193874201952570668804437556057030366243994917935844465496718269895307214189421230611550543029910578560857647309310677385314829440790044662840586130924855196976536741356237674163146463927394006719624689537110807344779867806579210735171749189856709651868955347346673376769899737665970827164637001485746992960698290581322698288807215620022203808546861646672639933433239200194240983594182551825846577148054023822878681425323804545147285079141410263259931718991762437470467045098418795877692003325210193796461789029782395194086257095007441530317932004501445369911466572272430988054909141644591310798628042847654735741133599026206008264843567419881882389511641565240335489391001103569631172772555766872359157784106401043666976267046027655820218593187878361225804551030659235683961876646387051285663049183538686383810489858166213671823762903312066222607378645887712294283835769191445239709438072141824808559623181000212394483072846302773239700451567922801504493146403757518529624123085298405147102738407497089380821702746698593467788960479547557424082524565938036999054160809294802520883163467331704627798186824737344099212674560666300593087032817571013516433620311623468304837888940800960252932641155629487031914129797377658858624995639545691943905383805122462754060001303052407590205017664749538396359810578644236525327940593557222096510896188760904573110076670304141700942019303563911454604708685654167853136559582157731793420784698078870517945240867491706659677067735002698176758511793465687912853513528357183718198207450639374492277842812276427553125060259918876367622004062282038098378003572325260365209902471234459415872731047986338586437127466184138312743267006513129269305338063569542588259011097641489154023567842138066901733868836517335480843082678285956874707214744956323262483945732859368265806796658017809211633976836411609668579314322841725990584504606001068723025709732839677246192121375188918796468046557147928406989963669326965458464603955992262467174543062236665664642155390522125059502513385767270195937929496275080846468115791670089069678277399728505325665677035778480972199076246346221148732465447712429252032666100793914299292047535727217450734010612115400699034866590171665558795970111524175592855129819810232937489316658063395926620497319268864344167598428915732490708556425682023857042596653318987322307608188388005199873658027729037201529212338788571682444388230401388943678696458313846609659368061731179706887314107883910338995567972541394027251263182159048739928825173137221791471864290849398206795669353535481511628492533758033901063222296563940091055508851228455088088619811226322211004198249981450291116203171516001323896072017367923003494885285172464477351812881914052025279976442616189394457447410313032219999101286708030919047067660165113369909115474433261334735007332633346162707897105654957423456562727457406143288590526777108872189991831970568208972022791175908827571015460745817581897227189086423673290181901822025825521540288853802607240378665237300253522013641086902638405661578818226346883458329706992995379454407968589857643208501522411710552473421415073355377551531818092551105469359442985391973180183392393417561495938164392251287279116010488627633065811697804130055748602262203657495299654470705501910830026387781667908696270825511396199376549571942879341075500830114240585798808671024704980732020738503792840252909702209524551470749138827475843398376006803004030565759136393526735943992136471036688065494770492003755155217268411441910075539602843039140806834471707781441653030860016696125270238533758389947259266341942198519099896144045227068659933997417178335763067172271585142982742773629430467150225709406050371242172926828644037842079079202547148701930142874310133897636097413955982436855683061352294366374489105551082492492352425691333510411468606297163069168617535394221073039422384499610868367277361229666734692564922528374664779179258124647126041522407882215778037303112404840935932747855050662786027926306576061477129979868027991065428130263232331066108602326705462678453086986712156358031234234037352872418819526114610524415701082401048315670899502574156712149028211892086809287708080354033562323883530484388850033292314092968173980329094762928250105924042473954736568768716413870763399536214575757215976957450570160990730342454411264690542856183407882542079505064707609611082983239852413110775074182748914092063085903076253599913821035396971359762865936826821295584996328895542806367631884728822033159686771752327631734061541402743928606266592742883213299606187918835215939564071910107761849483207447796153691799860033127748467009556286059060432691298092749737908629558161318618998894218378209132121653125763008207597781660345726367444606117847159338663745659972890561553325140477030148048226519534324598921118484973169575194385360693051903946962983914902730273372080133697332968418665598872967384503732099876256979574620215852732315329631464470164077729694046689078468333335392976761812673918666557682813126002359272386829015378029496543146511798405956477969200813036630784848512208634355249623462876204462530504951768714190744720484011056349161978968309527492129044545092902536624643186876624386430541701377664270580676358645674523929700512587397246068102085522823588659912896581059412327833430439380991069802649861385690057702438338647402096097113448239208270120429728110956817001735411496543432585910176614639800458294402962891621466635636611404070760903498871931599304728133529281762345015607815838316606985831087936554505706569094943515387682347012691915534692630727887480556804359057960889321579009320282052156900261934439937426258981778351240530364817733746206567180822542715835783134631661459222291626788738729736326236120870700118347647974456046858033807503173765781487693116497350532287714675033741579831235624699096870983171868582085023183301461699091921470820258297692850592456505297016915078419542375067622348714263228202269075866263176193475375341546136856060199002710436257781730996542930158189555627849037269272812169023450659615843853123324298209190333612450943392270393115723926949312355456465734730174177544480201970775585514002452954719090017004524961541023479895212619713801552405233179732955249850190032030162632372485180055325417354921724643781446846132203731681163691289065983647582195990980970919370178721303897784442109886013795164281470778112555795038233812410596787959813120525964238178504424129900129474567795937702014669514458179749171160381464211035997626509952001244468835781376435260498509183738778668709042141875124848414875710185069595516646702912300144908274856369826676928155037608581258970326536087232694003819903408640673060111017420354680909644904107759921888322862627459146993236654637223478007014321887850098087380412084035004879173722573688880097407494937440470847474254567907238491006908218055508259554673368280316855772458872433294375543671033849610279650354361512215990406796463894617552596405656915789118792334223741343420688715269911085404019401322014897116650028470960974671286011430559293984794770810338264719136805803927141931096198723192851043203308773585343122181319806171003465161976600224079108135197917006746422354381556622704584842707212484752794314338890205727108411578003709710480303527909995835452104375049825277877935564085506182328283987025353226948161435844935794154912954272870090408705220610072486868641162938165525158675369171236009141383310324656804909046166081923666570525204081502453763326471271298251401889769196492623167795750862734942112199811857392166895883683949860699216804944461648153353003908784891438366738498884498042314256588486775190236493727990457472988422846904079925450706452131638189811843653366504107907835326792803443363191448986800321626584722594247128505103103819521418456565099350494345796426977119522539678626853643208788292431692966724983749765140163974746927715417887926917560226535285195129444387323240687632996792333497732001003309327022945185188006196178629424383608738976965627259439891567585981399855400163876291413857240379539428959119305403461753803324907567470951728897065425085452469921535831365601237179627240416119075869693242312738277103318785180861456541222864578542151717494517575409123042424201428399578882790572545698373862821015823068094763105409102492865168821728526262441824691755006003920788575733322681693710939393057656679990766882181114422922686900257802565097770441672801192643119493535327662443225055263458023029450283595099583826996212684384386948767515267856157890201015820166860808449901478163203067069130951430176189303339204785275349347364419859430243334562471253731337105176096046631630743478798637473585467887775394865117558940703282584708874388470600341344542635824603377244761525020691544433119778167714677717842052017619306195269906906660615628084581425064928808163347750947014131942628308725718640921117803479568335261684210888967834964130759624638726738831930753905475040278599506604864940859370406470881612133592558014925230227702648420504508355907890830907456492544496643104452543565143023886093349120853376725244901093803737095009938904220751283380029551329626518378158195552318498163100430308272943829171143376418006526972730418524001601439701053212706001223588805485383178902449726896085132228979758007677880150980907081152758452109510322354197224975785867994053700278206645026951346678534343821376777436589023520084572368355641252718260185054042694354180990544753658448371546067778173523925606645278287269573274959789864581535191036964488221374547020052275658916905073706373197721674085503946969537904606521718677978367894779201259783511337611746166830862490189057123153231265920655281171008517304817293403770882082517437044695080791171277858910205920298364997171280982525850925748705810608978468542284014660845771814699814536845328304863781913658766784081486048520133753233223220654293049390307931031191825318224349725387258967999775559692463251658050975615163617307607906962130055861905420253263041102089107433510202101537581919977906211152552677434247598603809702013331258992034630719615185827840898604248409397202111885050715601303603293630509902981239546262121677857240396688175625942560623538286697990031759634322785488630459725002096456486146560301709148867204586142081815087274739533644691923645975877333583022390533661876969258482023816449870372224363660126548013303957065483462675035580809258339250778505019091786530417125205987231963975957088777700951629125082746207423690940870403174266180823998794550262686429401416857227670016496489139910350034006862568612576544745845320996668049995699411352224163070499293638753924416556012536554087090117481388199845367233389036736106566955119595906759455014316529908330778401304408863215810063803774446377582056538735289002782085340851099247914336252849422819522285925299031834766073987360117235248496764531813318469315596349099182270507953055067998403009636282708003664948518938659202613015978884438101408022978192610704150513759699857657937326446680998806905649157283254494730811243031131321284870777058195143058224517038972751605839429698458270231617429421810330586258746180546066593445585558273332328498333039456896330113346569648477206300160091652786242405775599685583489887233763829208550127477266746801032875562184815855619907400371584104273888245826295959168796852913185034296776117989569757051369865066535204546033069324665902927789684663711689516694677199284311574579369894202585122488735098256268508313417887752599358669238364506657941668281742886416729089604528229097844741446700461367720071276934568688958205137674208817325824155957747704342252004189488700310163590854864516879433647900632190909860965951323185062797390233489684673675081029460502005726440869291899670225624537956979553693811919359111957524223348598508609744000922401166367410267176648093914157671745832887820525870311307335060266073987037870715079137154680312825605196488425475148123904614604570753829249134095945448428512094400149761569213658627694221750516225381100550924965297179451058414726395984337415881451408598627018220610262165146243616050381055503447360418662302478653610432629990485834544967043510837061250859318756218757547676002357573488713284079707031506384444175015102116446912190279447831111915978662142090450254041255439983545331292082890536268163357911645392830820283565208746960398395936826043376539232669776677437372079338709254062907158994816246228123024690547074548797038807119435895243957656484346001823290872053388446879816040014956642745292264499086876394796938667157206572205492679712941867772929710396066478488581592948685968352951275067735148333970156603564303141005011564957125720848325336116590049749967431581350634354350842841604565158087503998702241033223406080274892354210680852662927807715371253873399029971681246429046484671869240289648903292257580441247054459390575036582897549584529909306959908434570996645515914141201154672908402297940861082464896268074203072037886696398173130281987549206887959171537198399485311207819730161663155112833142782911367837064287317934292672085478167085437361282114850088099902057053865901478889354020436080685663641166994158469778983048478162259411891463044562817836721113414287823897217354151052716042583317271987331362155556285020944691522006053085528939465545095211979565221916459755060614166669948881424165549439259646276915348578373025516836594758297705907815807188157414935666078126593094400319078659943860083546798122551521914722524479531272930295421397494498236274629715344477495768841895746644233630865117935191202204954272712189428793747596675298293425936721142913813399820591699875989981361030567078565612410041688816570631293343901300198888915061480865780381670321000767800530141621588090304414730138787229819794364279328082418823292648220697540987987455778173563729472401643338610451107790321834551465614815647033453973107012031462462959685898281638799545393065283896313355740987652147850929024051604386209460361995821123229611508905819066526196060979570148688255666433095931787074586357006217850862163590250292114350328983224235455142231695154120171618180683964696770969769150085216572525187781012087502917456659037551833873004362472332066589170300234828727493395046926974169463588863261446163884429285190495717973913709642539501844602415687204662409645691524527365422877399802994781903735367904831360110360183827432874573878927007402762919264981424374927127750527695265042009414357717153312376294750214681768164905929960159263489920621119224915340141311514611676208636609542870145617561103031277291896568730767410762444831289958825129221061245376877986367624113811806436128254275489479679899419292398347024368516058763045500367798390014979171497039382670344304971481062534919546951396279487119142269815859281989022640119332841735404244410701276294148713173731724514758397569942088457658666498674866989014124904047970237386175894663060431283581248995303403590391366005926600357893018981140016209663777376037952305100067218422735384733720318189646128997840370077172581041625465303878490846335175629926503913425530261308543254864108058248753918627218024760105219651781766327025258591127345717052918891934952152307477157144160304071034126424554844077853950112408662127170720979980763811399384832300857088294863675477701992039843481802170145198706988248914858899160163653090758708756190300135652080388420098173100373630001824665017213196164996677782872887184902354975797875950126085832796140827784564502861312519075551238459036771438497180291229404591443437082331687287315039691806798868370629329219367796451948153826827340222524941800961411493740303907608629483360098753085520704974635435164058306387866542163333737279032455762568183277330762762088778066401327342634037829334626325288090690525857364529556916415213026576217621576110815081900216486198443343811775605720286372225995441527377562539014025749495826013799285155652072697659107593248243505762531426949825772918358196937109382812478073951138234241430529213181741408866157621944133889185651395033899987455068306924148219882069453988217762765053792318326379243929243753431922295645179732365913045338172804569201759249129130734515261576760189479898121256839766759374817493771062837108964189538491199295139778583053123271573069761771363778256712362820351959524004359745391060090974462460276109590534522421150132748212237180560906666639349500146189677848881077216332170194187363402073042017977111700549501924259230421662663843091608286520836363009324493595102420863662849914656527312923290657143560241900393919167139210976149482830201782018501285696249190858608342471200047485112470041544331937573535691488035399519957098561667755084081901597575588496174487291482552141563602590633704966303671470148710051685595637802260907037594770322080167320578607706670464270924541158468411585605739610060967620505987488353315690385387219907454938415675419938161455668430419934130219573754511216048676913135740022696613921682993476868361618746256537411923026528328521577226772109146717009088353745192392711269099412927221428698936827582333617182758586157987531188872222872945967693722750484516194680629787522009505163028833883701484274575675731536185602710854210538102520899571191459613045813383884149191889306291007003870254176285628292531122411735123941550636147293520974584331041191256359599567249765772826808525494316939631369364920080214472288824904567074126725916456040279169317957510398579564636392740362916815687339436503984161389852510779030878665267000725471246687274588697453580617034237850886015774760719212913872633816729211273417225124349832659661625953974737725386958761357351026593647086355432731152426348017624816828485763645850773528763723592233845935382168453792321684118147429289103139284383657326211258255435342960019318535818121337248838976199139561912477166737713637635845881292711816398935390365305158725416622906265040734254440643180890591182915406255163169353694180204547864828005550883761374352704663253847691256759540474097906845561570186586255262685778760965347281471453878528004426220107094545527445216350403701674399095463768522887549545114361007257077397412079564010205596785382583675024119103335953059894873590317297167455628594529258275821744842084126934574449323938916261404606596857129684125961451725533688913916072119029670814403678034988383146155310403911730382637554785259703157863170339758032074311127388820146032564311163001783058201367440588008013082495832230478225400508497184390971025876725875066066886353830118458310303431356431279289632285565612518347064894753795214019080721648573729830050331449804762845070090924591765186816030726529098977928388321733642375513373764880822141912473420213636678258682076303440164466877738468419702296043552709565504731752686656822463879165702420126146629776950646558766771410298291317891053525191662302675629113401894986978391702435746387899782395339674851081886495375075059554128872076630511977958574864797850322831975122574196309089875581636887672226742478296202703714846698098108353046283965221572564947461549824009168263962918126292771882901841695436984915800833284213634143605177914911378052358064202683035032095332981743484833078991328641127025111727501577151107684515393428537379160794411732896790071924605081413445889334424901307952201420537365380668973960679078383951702543003270327517599806767298543376864211222776585763241162696367987218337276538321407455232723842857515348896066807900034101962122504771125848642410194918264386083317029692552533494544259151370492126608188664187069057580745288326592546856030563398487718342095898367150759473098751399765029190896840262099656100739828500845102153079656212090845345065678355613573131548640575583317461855389090254649018524342979068617846013141759112059973697375603012434492046802803179040263350049244191843655732094467011654439032234748418963131248440042762172791089127014984917231464499981931063103484314897171991548488193253204192543241866682570077206682177199679289924953472072583816983480113818798905956133913985375072814310096236910519607361279741820474944957431155015721504113134737524061426035751699109487187479101468153774055039474338525542339912749348040776630497233694217997985641653907471113753888338191520194222339137599628927117669034848592155038080442253581232284944942234256724786489519888436833462695564046880559088880232008369864041637256108299018030000997979193550555574294395502328563667382528435278956644319244318239272197316315672735963904797051360944137542116684169906318351344933645081132513591519124609856404902621377183830970873884049903203060116863809636468607080908588506635118570651768508135656356408753424189815668995139458167096870918608165762926145581572316111760076341770325305369438316927749227273111968202183481768333551843948645337007452451636589218784589371898929185432744417483415663794503587915128099248069027058258937361664507448516773795268020932652837997925712325343323063668756047194287953942038386819901100824296391669873193767269555941024333700360432060602072913500039197586518437647064536241777263398408736646206829855803203345986595112230227008941816144807394337268802547875072258609171779119483082789592146631434491913425426829045781476220540528609103769289681531434315550036891981990898199815334465712494101185512283033704232646888065722955086774624199376873525576610425680254307238796299271852727074489637736347904775690187616114886101875884879840848104945502285231091606826399244634921824010400357242035396546039641264181304873613005478061544678376976476347637657217419682526420358479286831470647405246449208221965123233741004084876308137472447718283797437673354732769253906177223107933851906185634379728641442450808280000546765871264895472282808573374177680408103110232514970942526283879481737379045185562878184793451141051980121156073094401118814206009013993428868071803486413193167911954265603638263003389555050023216617542361578032211242455207429420557860877504293182506497493175447058706391557548193153931175770103165053491359648586553030701683819294160205074781553585116387400722162788734226045256129701399019640359462829893706165165486220946761304435567714428833244503382987555362739428082858970221789314867928526203278536141882942751873756837467133551326767388568932751453029294561143987184000290213879435912678726433202013259601919441859208612159044107252088800201860654105022188335813561806146470407686739835873813363879655368963787528895404997483344583800105866079240412671672804864503837029572041733911951373153411659506313113647352258997209420015220008964474360244136929170014014880596621614347719733354093036296116452441522236341566526917489044226505650393887444490509073317451309212874393631275809936976049254927749958695030057646524485602652195894278238699970650092795144299751365939988945894878214172510903919363907219927850048068663419667842613982042782805157894587567947924924562706959139886243010893266613962051936397088543076519803415088407553202810090898177087877223607204942063331109665064546532424489705121702352765108531790542885835857937901117847203064415651303624377060362033805047036980664882986677852733747878048503020927713409638826057559110085426390223377759765151483370680940375646099434926403355550995961779657407705899358648441356513802030639423524762680399802863739919767982846214722908329846620776334710698363135540505780733792795444828612099927910658794837967962015965834377122300710602404160443915726019392471401773134347024266462676423361313573506973558799258547922621822583783944744868043132814992702118753061891979969185879586511442707232727410105502465637800824835318375277066840400721731225389259129887272763749367381227646945936480110921555407656533785648141308070392233073323370228857407877416941742682197917766331247318610294837820561448903399479239319782777539377598821128364378398353336860758863367796524698049731158322343918710288048663316166156094133979438969160364663446493026956214126826680232345738385910583079428815696223198342122010150033418137268340371849819745397469088801430876147798665797161329385887503000052247428850496689981791011057123112469438107777337498639989321211949813737735840293315129308085246887280695779443461668552778829329836271494183711230098229912162205868993814530654699205572298741155088376092708702762070322918161030617870362984186238890892728134466683183705596881036468666302359800673084726184296214707008434088936765173252329923618916296450788041282032532818200776907068953330878413223890101925990833579846343050788659122468477415673197151858200833246479383694310312182371322534970390293503911593981278055986609117803329812159882451793977024855913881162261559375905610754302067879757730331279394085937169109822150503888832769200989216825567419190237931514883889651918918352040330885245793402549728557499456989545392236999913466939022753459902997177869281582986873039401461187368938034650715799886689285990410699420368539807566121241064726387213492671786241894724006070028073284985168662913494914992724516050039104753862813990453825979364675727440907249855376181331443331841307798614491383391337477739963297025426279089183933551695593145282478545588239725322531294212137917945550564710786247516913196220779990176938298840757055349264221337294704983633660064505527788180312644721342301073542058854975892609669445765492787864698507261101454775647844201643224872500295935074720105780518498670750910910572229054722124346288670269610021144532755327553443645035798502259296719474440118432219357182901013961741139443016240826869338452241717915676016730920788072387453653152028895871489363035227772517798193775207148659852660357681281139266439545728780347212786361645412057736440893331573637003943459084354131404201476276148044815222263810517386583210001880640532473523475154168886370551364096302702621890742039339035579817235253742232809458898701980850798865581232042598461567064330211190246725476091252262185619751518442038002065853689366081023048670493328916859113824176382724309723953858146067204577222220987020469539747972905538787552742305827776569569957461527453219690854309935508891193100274014450047729487178559370391549499412861841308779975178021649389771123894813262466429095966823883127027091341102639374332502903677014640621382665267453493029539305930996198388295363037286720842057410856540993465303715822691484942559427633252609201758732867911971755701661852440883471397737009864219567516591501126066225179521242082075611160733083641318635815277428142708658458270249301149168178226799623564783801999337471856312558668067544433149050710777132145153567524720898646665222302799595025512579127145781473996551975160081702636051924559356806785027953835777732150307942527036113008802827796752362660665816870023028117275257150275927845558879622039903169011479402050818412955894418001629982938046686388806590687622433389731856786375274926233660505161879198490631499268867127632571387401671490034912094063418177753772221771527800248892112489340262275378732664703417909505572392487620688350763714049223887982418348795158848256538794882348561346423604735431670454653883144177396777053053864731818138931992142676011006353243753532609871943305050746601846290354921490018464145828625766830052821021543249113653257068296987514433333158032758030399273706978442736098268400104038614804600904816250182456282649152503715399993986248686986383063094875449767866257379405135347769619431266523473856213257119032999878729038967670015346248502508492396177032434467719448981701921249888519395465616056613379642512211267885114862406456316292898314459642327582075690411564536304023945360338006679760973990086979369581059890593519014105171169038302084077939146114902481378577519051730669946007233314643948343181031881595258837994197229314582062709686914469872603358526186956400910773543175156871253562015816178370859659498111805869131914234384503447613299856043558930869584728643890185453295546837656248913124188988953961955673053119429212204952701049640391054861953148066222985249758205597737286620263536275525243349267313043296245537886757134798812506510211691052674018950746705690054788493687110830727504977132683657228487195279195545975560931299860349089725233907276025005298984060410541127890176284225026854858494467159207460495854836382061369749277201814718366632567004712839876084220041611338668821097902240708741136019575863556639693659523698510683361847562070159477834792035876665377592137113769794037633420543110883946614574026743540973143997802669724567266329585592438451193337771317959594933259216372159556638616149311663179145488231514580717161771335790926007277325518171871315795229270769733755132696247172084225582781350118341284495833096686920875976603008995880431357121433152151570947490014096347170591980797538709946980026349511982325190496220229683891050691420055141059016855841929246939864872352814098284401129858161736956170214579410541008170193696863372616047657585385074975022500248311708245811015161707151989452600177231898521071920633219649835330472665615081575634907695681195291803453038719290432259549010104078717879455348985966139677995997175610869125786784089913248055150427940193313827522588726248414205701791772934944171492200714515506221484748193172317742015921945429969973103226413236439587819509362504419983300981419342089441060444113739716629155066102637287774616160289750280386106726581316750819993227161536235943412988030087757792625027550005527841336877336084842708904518434459911472366664296376407819217047569420222328887620399587320563138197875001434697257192055064447734322498132099532410724255704408658153110926484671786848396806203406679334683862751872235239505865528769518919019444034164149142902554785791222297650798961495759286045248765748569229533597081935175581441396756696135413351807771277789809078293273084021945767190830668523464719702494700344829319481436815084056557252442325536310575173354559788358547307135487135670156895769074882285442707056180268671328282244798736730089750123194888003601762501822167563505762568659172411442044876569294731454957861647372043260411837714984928101645034580564137591988576931213036362343781526524113205140738398082295015967139916423019943330508711197309323431921350435568940603160458662534612250943004434667630895266943293894556211326609193750777232367843536861732182267068434500898425706181198166153918439153678603441232409834852143062049300915162498031099236969576758152429044771569816670176908571908710553285694507745424803258189621670403191266266739466768947638575281059056424936304034072846953369032898007707286296657281314817397278643174829857338832198277131245050028244157483412051827758962551291199466983860581793890413666575834965833776426236214933437219095066610640520688375047818714337804936339041030254296027482146316674071494637496256491540487994498879416334358365372667725811775243884267571766155367672322976006447715899999197251286141985274266925361588749917208172067930465582138226860214222503408408976694132964035382591221768091117432130569619187072650510377513037453781512951377957666847105305616837774931179662793461510708556300092713959404183268819144037521742593059119986629351834547661471664946305537820599281779440759093063357663605658824797787698715774309125674624405138904193106218147364417990057563778692725395542885681571417329842994018242714627586672070698251542759374412843542590244766015377733370353552872208469395518503577833525359234844055974219147879557807563366642052145887196144574793893039407816508578271952123452298242107191371390728400111694040595563999577690204305434926104851596031898847948371810768553446881215561764364978334479789457566875310864031129828031804823225941944265254779004456913308509666031761242028214502584844579315889511621692975183742848075159361305070654542560792022169200552338656815931647274156360149954182454607113089115711213935542707584458788613655147289235926978808105904969938555058528887168535268865690104196741663564865733943173053444157299430026422471814626321639585757287304306831212869686481435688037141479207381348293498194540861051704208215598059919551629805603509302588266782926590453696873271670797049642126704108800452515855688828511455087421335647283405614144595676063031690839709892555091528434062102675964333552885785093595904874347479027356871144819766847227438163836495127052782767821700019632261495298951939629065238629421104757987613229005960338271021902312449087952250337928228065064665174457696533357616697745068208171910194075130508176503164232204240410314087805542876788078282342413916497305512076671194074192483707662832207566051629416213217669775935082504833751323801323853950211712599596785428692848313410780773067458271980305598951930274715998875726529411583832290605918827340082218083034565146116140970863977204720503981059238229334078506752995192919194521051657538605703301232650496201898612646895295315143375885914098414087772799512129128489125597158595776149147946214732539684479296164199740631518894058654635943572185698284842367536965320353983931149798935515223504511184270489901876603900190648357023821330791594949049598659816333923812910219421475593283765723356663026342035102433041963002514383847371246652438187417474328140003333878589151298960838186302463209090276642342048485041952757003841891782253014166420379193790094284855739827760149435884417400446942539711896601898100016393586366823233526891117233855394096656303536727114382433386722724493041127085104152015730281684682797778005077160450995209410214857311406631282821504168534920155765672250883921333579347839921244309583862211292553799563652109316986325662416751626487061994301233801128362959764561257553565962697342646610511022082336362050623768393122782490977168170310924066541596181161488770851988891872272795063564336501917318740250364776788204839930919625245746248582864829731923902862156391023648896203241614234783863781162815398509260983718310225767513981767072979977351180352948967499744002174549229273415345226822088576361769046428655230952047875809632083230028538821955398068483013905164326239307689359413280909327633475889088565228613685053772181812509640360454604884633324241543601235066258843840371668089484262109635309728436333286628902993540146386942272531159905117060903267530028928903417863315890990039553637417388420036370688825033487013391799822597878500045730402164372885693772670548958332234215047895468499975408093398219039217604678797247247907556290926472147320114666868338157060312734160681150568297691451302670363214478353190174241908175401366669803018019909063023785241424119780798111929591648310805226443221062011316356140207828724860541053601352256151711980624001673025261388317314149918809367084496534646794381912805605432479197450558466170366802979448516248779142849562522129426964351407842172257962417386956912507005303243980781447225442421417386193048330134247227914003615050732153753716983840408411314076995073297653839056709344500028582735290023329185723501703748150574628369176538594529356753603401163701226203194741657265885927828117262317515260257143199444472791483863310505445874596974646886434476405945607230680852993318504072152853518183761740726033952600403851126317453143346193935498455614931435316827481381977405128303209335147770576625120074724289095690267350368310236614188238439166056822233122230810627629321547382358388334094588109498809846559372547277386761631173740556415244191616635564177628458705414005371163595843770745616672563998498376004455426466360993929146967909517357139041718100665776884556899188362716572277440691244285941809130571741416586689852906047246311901217789285278721280421505523711781206603897925841392013289904948692686271194196611963463834791659641487104228767085582766539923561919657339396135338786252858673168300326135514870337030047018284153075406385228977442058414135345895638187889090583153846926403257208048373155616115454830595602392928286376313066031274601854875865393466714990059499882422708168078784772601177265730204234175316140602791440406535159131376816668930688729708223030977832768808507452369733649947300422619095539544621073418713729657524406569329190391450843541699218803365697051008251684499685099969362253280265637296999261836569176115698426938121622326096210353804256583587405885358897258022160590341732843673814768372926647674173407960440424565342071272178545005237976378323963050103499579539377098225632072987067403103294294553606889798434508993495230613227108011212250162780985639701442076820364447422097319070309060110280995225095481127204260466033484272378352001661731294668946606326387113576245026600313049827933476526313786822109821205256984739352395778819330246996364007175155441220913122780905459089238442778360655987666393363348468557306520556987448132117950285740644242954917954625372720362158783370862561783027472007768848436333967696038728101566158599916206672275303027316474986035188480547629738580569220811933241346642441669170633663263350185756312923428152624649972224169400341107829130136864540311503510436737648814102475802393455051882385273890031360692984449317513183564136039381083270433679041373973658793060610147772206245336571300883259230933390119549068499736865910901232815477947404426457935159344675814013332925823710887969240898144178289657549454190103456597306599391114038695947922093118545912410604855082672876819309636581277694974555264318799123816077979913054828251262428073739363606227099115233581747787197380004338751977389239714625159563337597241031654022726862827688309175650311511180728953539524658939419082897243362124957882312758201949976374942425824230051146265560847474077973414378721309449471462621788163654899488301260187905020899879257719091618316149758560462282775015347978565705307222664087931318396260242441319767143041359146580336235232924458829065876602462525296556122130545508909295310792041013120396950526274623731399201644427453661864720036055005960766763147294108116807536630125594203870982475485498040407724250324071284377240603333422551263147354821710418577333947768481610171391290465637680762058095918232970559803113295252544603650502111146996492632479350756375450317634153837886039112641182706351318685541498023917864546142639194147676947596888019709157002155810928489951055674929777112897716654792560547616616424427852095137775184277775494743814820615409459167599765594353695413040640132228508476593912439864929099887415091610580561368122028932019209014359046828335148708204193721111038065157968042069808744766593562953380810422922055621767956971908085677955522556968502930221469218927170342101269609924164576224667007488904951343283092237497425219164291427805943932290541571268317774389017117802725281317572442012750275830858609821186438424259902340577208181048674635952550858074089264081582290546406532891249490907972536142336616795367324175841489977324304326403519195377015062476551812223518366157805212880894953889982498660937835720427999603239977939053640510436426494313941481852454920328604817902064284561267794627225009840108354407024874171440852085534843829567643574567507466942919705382852310445738938231530287220320607278988209539469145495461652673943947821199804314236487829436588982354557713039333705958700582990244231974209822030059660744402412858589594260660142798874207217793162640320676796638757078117363862324949946270661086754485694295754438814175264429605338385786395528245802611115668890190776510295869070597198425485560627624502434847665261375739287663154694263140283597439794153746983401280922751549656359164986689586158855584778316870167342528017492441693985754635762111287330958402934303901010136897446333396981677896278520558854859908738364252866442936798193598232988613116735125960289235826965445831671099237037095705944880237566205198265870565963553365921231095697566544038141770118054099909003855113623607814997359648716797729243521475910401192089115538340277846239214476625195459946662869930870015090276068178777204448171341556835190330735305139882853594259250757151560290581157857716825051933833370044263250508480550940185839801808563789435306427041298869676984721375698343411806218607409160992440117734275276031106686613748618900914362315072885807739147999816801123088283497623331053461480888665644521287764333365242160714275561701447557882442878941558783521070147587675035975602112350141827955368681709546377344757924694887662463068100505027278276919675436423768817692658463154039107337503229257289058678630966230864649177284676258053088143771886365649896549793196446953441952721040710252436967664465997043466755577200684411813360302240429927477039633659177130171407862598914458827477929791640693539977632038837350551525886226324934861724460350647519987730568556872741723049372213038085463787955516707110674858730520620427244846720172566437048340282967393096637942420167878669857542177716159391122972223629215205892118160174665848762243937578155528893640551912419723213848607605245781620779099617123252809693396078292923390981610976272191159505806127599747332433096899096484404638979273668840897808905287249946983215006427823149978534983700269612591616649747558887237090714751613554629370641638007994268991596810194832485705527553573665877187059362130734160396545867375246572184206728964530542368833226753580079692891599810849151302930073416952932301134271791542107267129046147196059810621495457864519689440444083215857019190377832484223611977728457211066350227290923100894572749191053645326051754795381422104088390633529947531983586812735261531766104628022677982733890270494128963830866660091089125203238992418782636769637430346138469698170796952169834229708314837969247055387590504031137050657294175471934933065625513912099685241359797459682228859867403536214028746474004483659915781579231991332866750313015821237431612333895906925578460935532904918520113964737698917099765883837370814152540951411143940945015318097486870213665027804259379203246548188985863177278138256924948415818350240658430134536745359855101892934362870979213006696895021136579844430727981936371612055248222850806561381803169052855934963880918661299884082694218162030110279104140019159194927056867239598990589128419144891312802569840515618158822353537364198963612524281110126800720912391944666379748865472656679563321944543190181138645029469900358761228019534321050717923688092792900718169639871255714149183429462469038687623377862569262304371563924390522878974889728509750647669556760244551483425657626839918720513841704022232276654654092361453122195149531335777331463911511695154543861879810761153508446704475459410547092347278955856111411910770623878197106078811175226056851522744749334365785280770902998690415767359662816621327341577142439173936630353436540960021583427540038163579212514912246951877374357383642349138292620837921452449023017585651077060861752732010345044824524653268769993316426439993453559178423265687234835559356769241130422093531445027242945860188698861603099661196679426834998926210671344706243589244191339394977418795856285347442670969899866056943907238412840943979975470203471781637614846269672497620672995177317758946354001507127399060506377910609650585511757730932245824779009179245403422861658369447855497799235088845610413055777544017315555884091653384281599333572914985058091657846653988011446668632584241763068672063955062411965416946987781809308216605502919751627003827508248414550770744461216031786818338248153390781406121383142828632211842289385038053031569785556586508693534195782203191796750958981716592106824777393579086281047653125819965439586652720366695350790628389206079732824323878330212079607854091350779410363723355899161078936436237761922929433203877903825840132816965375134104688830769137045940919634974994890359261248524112113351463186197257309133583861304131922706759891217552142615002001638246250177337862752250449167770818350469005291984343637021482329923632944952060740322968985809873795780600235726899932434702273142894653257975968579172051200751446895314386086612726207335002275002056338989904934939542211000585825592822990015894088699332554739293553232692449797203951214944506674033106554893656992806721265791502582719005715593322084991407567154202854603099504645564393882818137080660782962243860548130349470125152590092790611514218841997945560338164668806320083072845385307612956716480556994975301369748103053684824663453858177235125134291716039062911761468575174249780384325110604234158886129933225892199621437086654331742018172772636240872551516526460032142952783524921963498261715408958873428099052241483390860910567993165305706629247888348473232998134235218088052119655699530987411356278421442348181714186924586201676604274034021900330608171263486488099840173634414279742670624726857510450032797382228407877264981978068081431289354591636806333655846425173728284447996752319982708470596501379454429797757958224354991700468058720741937966886468247206703414198349051832360511697266399299822572064880169127558018785134130512925120291056313815875117824202129871735955653283920270971242059123376760789138575713872306395044372018227112759186225061720173042308966104290641042058893818930749911052051337946817839428763110366016124307105132130763349584677261547208730602862056913661880992923945312642785225744047946982574555162572398396765813614944090746464181447137200616860108349097466757901296582273198448478136552388878518159135647021345580959076245209444367228285857235487603869187837475958090057678831486291646364361904563414033977639196154046671255005195904482715962230838711737582005429489821618574719694137795248767663475593437367416425656047230053871931289131760501257191027321075169588637350397644751277681475244294352161392976432699752015210535256435118131648927645515619025566678393507363573691152558339903858581991904985766841553020967615415527069178975132923023041985059588781340305667375809202088478726574742710591833798609217897129827476894075602045515720030273064588456984223888933539624137953116705387114799078539845119693029725848604445981664216196437991251644690830345883463031500775821097238355925165620314749497700708637876226419117882334664752946281247418530566415627084223741135116477244453061544739382665076639282591208870782987647279610369871406831096933773323276393605591044813565514932215405546133008291690618691678991127563481619974372051749738679973359330571913169354124586846188655507173498337895434966736131365887545910651609102709239032311748186440691780120665972002860727655715337890508505547678111249552092959329984327344251230123568034504228877660014458451281583902395344834298697430474683420457847037765266872420713504242721203214197226378912281635892266590337348115635642864682655806208773728833088194838344909196440779629107568479985701018961710164172903077621341869339961010829074638278027987710973639948272934553684854394783769065008069987135639535558301181716315201410791550166227726278545520821952111556487080511719764104475989932192395191720706180614616381052982364176031131139483981478074399090115173801331718797130941577977753782358895768597587384568661412600249782168105631192644857800312448765798055598307658693528854681404923647594803942926947349742923129927065771532152320815074035598864217172219412525248110951226102816639796071359477395463710222617572061248894370273969549428097130593912960536595678402793047026198631611474052714977809470786968008624477246242818672683888961127955806899135781446602064079075030364087292868577604117689918291885967946822522063664580149335787555155669091138045549282510991211663393506733456600201332566727786886969072481651061616707444642744379430303417452250574886203980288767273078401992565840088932717101110647234527796252366671548740214297645391853676235871118832814994618962381024155509866362360588645053528126738793227999910584064618149909376580063064712900163924552843533227193122464793843708046863896437592742029480593848933896789458704225956265831088996393586180007609838712240283629741185406393878302778831496078934415918016996176825469546536377975124036774704359623541511249809958806285421806801140188616391163658306071499186574458127385445246988080173105662165811404903394377456559275145131929052108405782943096985353805720649758010194876217916298510940690333013860336293896101612295533333913676995035568446987338583841884081669283014250553767031630853995248025911946563570873799617014551409186302499200846135075807652074708981144253687227373208207665864888798963253284048941854754076562952842505929848342452248198085430526005913526193002090970097290810318190757165183539953588236709123086167887069197381075758890657249998250239419338005451144395179412269580297078421297087650475225585160201300574481680987552982825514968900490126691934367726634718601656176114086039435943076445476031939285614072664370875118524473197815262811130072010812863303835599576556231959735354534956206267725102740225520406577292137343144516773971310433121383613657384598686467000719597347766646279096096864437660680644669761281098320789991096969024213844769436974430251519261729724657452183084997567502844978202127697810903809147837986712012521075952755606424647954398413485824658398438348277073536379980975242839750652203418823208346050454242025169704995631840324714595318337227119267417427951821634403054768454662506115188540269217735500344503832220040851384243042673632685383563967476552756212352479761299250267468006262066424521831804874201630070921721223581731323448448859631533785271194760149722573615290381645924285300905327181187566604962883611364277601707593577655154671057027257836882445799451047281535897460697449511833234787840350247306988146087329358006570722535084720839692253595766368380801939942138721960119980098817695644111358048031323239826842934889239795369651009367753952114614794490843287641732144145733250333242463098803210725785595399358878553900014830245437742854273355904519694882631110390160422553823555494569605230915865426752474399843612555436107715796540792069951823480982241955485883437846694272846958560035106604230493455971257154167078142404197770618172765354977934369433487521465359302859942850472325946271286767499150826152867010910632841722551257126220095679662619699406729826881808143115269483823086428205320350583624215573651091245907953908141052120683950971181052636758111440990939921961400306496036311374327229172149328047818959982716494939554482383855166001198493134584122387967372585763683763822813520070529433569119636597431259106357615956837888483032348510086941075143346832432982535519148398895804203928698574871666561975924451397016595130888620466310768959865631470805229893785216688459983656708433959859308536986492190956394840701324181725122466957361179873966844844143986412849159780488712136512402566148064756749058757356371541952670743928719467028737332871202000596745047885757088096740616400871929165238209869101092864413547570519902802832075297280096347679825348682149912221710338894191036103404542849896015132311376258781246556844502165082261519528339618696901797696754467129061149817227433739331513962201249215487505828305237791104632474786015154541998115052211140267929021835314680149025620251161054719337899039581474905680559255242577235891439594550688732034463258378963485444945098849239363023456220677095492093413868010692329002417216550836185348914986270213377480576592253428952017123162365952852978980864086427905305950334641256391513599704610181214637124448334808842791213043618549783843280497087341620891916711747525084892276427182951600313812525701270013792527969671854635902181365380359022146914998582178731690730822263963849377724589875668509536998337793419331163916856668914585069372216982684087789578432348728086468997095867624146575013832693454726119203681997014287499069971120551597618611977237114202854529903267194251000176395197703030861623851788808910368022737895480557984123134307266785032920783268928056383898238971669826008615202923488128621098143344051384437944670858412587111654791820380036089403240523302091713761120380145484023351740374503023700126945585228618094901748743758265089858741750567081420658747247291035807913596028298514186723199699626073973032949827274262345670204227783893660141264071048014391322995218894775054253079014823562241096512027374284888124940752811907130258286568741367351456535059760228647342320732345807725046921501339900121827989238803009802378874313577793069254760339828336480692173905186161595644175140297842923194913573043150373137111174809569195203499782818262497925391155173872888740554709464626741851994420874304024583931416724801164797430681958313856857622852330105394495420183329408438875125508913191119620879843239293228340879891620461657935175778765051974613487381026427542463857762975205781929708440987231532990067686978994716318589875332336211404128166906231424131964535157514353898928570670117278676523526812241048765056727592293150365633765584033335556835568726608535850692898521161281988102152091991059505271322492604804459831188305269845813814826463335399311063857954120210644689728017651146752046189879539559481122045865073724405026360819367868626814061888551378503317721112816451955712516048197154370145216816952904739679353707592516063112727740533749917344069015062610564990783253740598471733369538074682537194351208829665381734942895523751836698319143080018156572031787505151269496638734652209758503910023047674812837209659476427738735617864220098733534202624538606103028008422576650409340658807812642778403600662320088771571383208734213964151754031749737525031309689888437515024542106308397073324814043050698051855526187195177871057832335082797370301687081879496059589915303874472515019484460007331397065249998497275711970043903933965137465062833809739668357276110609376969510078980793545669390073213748330402738278801036977694807624696449066891816728775612791065234671746378490943971334413546550178973836649124913904749329087548686912016129026865185047007815069518233873924026283114570563530401477865637993969345409258516350275149858698523558655122351268086042012204462138553420301101145005637604565871717154503653441110146801903878593560637835914948349938165643860248262557545469500996396889206384320037396264739780174161726354215639100186499636759528427397320348071916582934627595281814029606077755467832465591201118699284298484451535228640423939998965287829230665915095864294351724203312387507111725739588962605453364887703342922084885736838760494400130109626088932791388910845200206336879135963812798328492403972055664040057910555680832669875469583647516392805613407676513267557435851079281359741860478296973990117527913249220815733928366243758196311502215067416109935057896650499456993542422946210567104700864148457950187480114586609434492075562161015323981192905049784548088641715809793617494005232068992505702286540817918234074229891463136502686993212681778635178022803046595187418602734832201515762299565455528663825413099765889861916155776875543523459392993136575722520673185946936977042982425054816605870227778879259851016004258373602434880076641953231800412756599361212375101499095857721030838185877432796857802202802069756278641479629320350674060975418125897337416117702312202244207792737140440692374575238689794198478766249173661628327995695817746853271219244492103994384228274800953886164782101826105130741582432265071116808432170954983363923125325002439350030246631338361284580655480542992473579255078404088883603579422896280243792808211929940362421198327153233154959921753614108834341637543481472313473246507690990007774499637926272607179599057269363714665967816694848445633450897311225206842690376145049625832694360995866593873597437740561004411468485307287568258766196507321921581458501030698479489418193460440396059643314622399603927456397180966584974043364884908867994571025152645655527051746619179361716252181472805027275657114630411008578772926366744903461170817531509673347662332348203332977148100612483470960636727023912026718413145496185219759461024263764712906330164030499897984830814559065068930410322715785153020530360106950091836469168471958242981866257380713708474316984935324494279910082721444736278854616382883926665332986754135931479975372330500895560096929126908965568741307967841304129463893960461556432748334378895008575451992058717297437128423598523126226203764289614516038075047940329335380304391032086051394715039275035402138605175416075791395325174590638190373447801546524829910294652879976168982856316011078429822876859236203774885202535815979748102995077399722063477166380603285702865035276782738732317795630354350722602579718635136345674049959506336645761797601451088301008540667856829249454134908107330149399123415000381208796602254055095639162258520935419149365905497804735032583664343202861049929380262911224727490793412599175888445458671425139090852995389461397923067201737916630257739040557777695071557362564420781680519240004125870654699937710890424454710491994537976871058774621971486243310255363190169284580951590103286520074497679857039359670484718233218134351528165080390418321089505064604701765234353026216683673421083445117281878187145360211284322258153784337252715965256481640600219234391765578787800402482625466145556855937271126215918510331102660014931112826056889042354743616214327435118330912914659159601936615220675136010798732838928236254052515776860948798125448307768919529277106037600055148874061901438639148574709019145108274970212204131731226334027898260104644518372796783659481536832904212702034438119375924386407699319828186940325980783772061864455261712950748701686035066901350546273242859785608424449006835940340240308576720763177376137484542984993562655834632032476658030842708912793096922839056290961584959779313485721592613016654162430994293471396157326771616972019768057319970203116921788662720207957627248813440012323767531415549659349953909729140523861556834703335983505479989701280543860473704404482532443263087176905538959624316490308448638990557229408758767150875488308301842389281860952857585433329044568568658598184516209475032927951998316541164511618935248062286136584011010421968279895897361593641624286687202516675373443564803482802249581823656345867727347707911417855918571606917321337278040397076136003964154430967848619480564621800069189469540224456440605457357448302081287760701461826792190471779538375401735851830799367374554950694967251136840777221665605246408897462194023517706798701456280712568468604431850389562271342815400156387740667570837398384899196942147970924427370611520378036213236130702276211078046000323044376085012339396321433149898315659357269362193412109859240519494163493068167260356091591984729535617946050009451462183563071172773057758024580820763346761105992329990286927072591824513545973849171324518960394678871206197105099486873365664268196420097500238931586838340538921097864267527989123803029196016155978824658166892424169582227499255528356453043826202509025550654133639318089710013595561145516109662558365348483153145271698235487494322102396051031513406151560580768571861616071532612489283223592803832433232172044903353149014284060531832281829927286085154777319946959082299112305481438354158431371397707963941597628540564318961380412718360201191365090050781770695766467131092667472719720742161774332864817682790219131181910319975443290837169925719892168980703302317732686834906210039207482677488822552429796778210642245133862068082114649267006142858094195871702059082126592161940951257461563027021204918042992749760167676532379310672753831128595420857689942130895849767152182820426961856228204988054533611375502568017788272457279338708542080489646468405383419127622930024306962473343562998687770326202597252778509971398395817356441386789301926496957457935729385942025532686070925953649748808834194284489020048404021994287152395238055436412693390653464361224123104206992322773536971002532906646213063743131989435363253241766586634661210422750515610770785490877616739695045405719857203848329147420017216157030821416618726731959355467033655515082064881312758868861341228287782398287172862428657369079442378881566915170093700975726885792270357333656512640661885590203994901943030388786514017185707503379231817484647145760506902344218465735782066536853602940391850621856788634595561374302503132824147189984423091625085298799478072172555099966188491489757805780839287344508473581386887180821839757252609078082057785529410230540725713754880363325189750452438997433531905776519959185146349317923207958668826722032024044740750136363698230745523834757674509962714780973522275454858211468094844865168852754438661033158971108390946073150053498333523068944748840665645206662367010736025963747017309289318345542665223188304277081495186348487255443169373003148164342911314478035396428187765396810368816656616140725368089413778330285501338104000103461203822559490158511412967674165612451478878007220921778352755381490169300513059544655673438532347189913981993981471161577744760613176234095049524883270509953153329229464413293244071560984136912638724436013426154475936727951235871646706754592535053930074614379577887458421129230771525216960037954850511377104001400228864700198041616936776642311299339953091104128727394891449179909736094535443757954488485745766611575412440783721480672073777383207845560827166756781666759355519934963522443057076670481634442281427677086812826039773168751891761341840016793675044354500871684432897131053912451999417883907162468275278024408288050478784524641567984981444879267278053992944103675152858334185643760812499037967828603857194251101718687245225844667273485577142476657646115014743439888250911209312091746142251985247801721124908452148811040031535100072291023097064229678039896808288154134818051466311411434752574695471669370130472011281799034674434247694593136926001508730914534592119869621020842173083954177187375044457129204140938222181024204979487838775701205419710516167271755204542213957404814474677793414456776684162754625435556865271101893769212728705094478704286278782379526195793442915047700468089740805526315143157855506616387972433321357029417082753258916565536735223901566929176785441850124899277920723426205613648520033131553334189186074666656264068231423445344755978956215895481833065799590109149443660084652099720486431519215692062112210853235212986777887736141572964714524610681212496569501216258762655199620712323814211955379465718607036740699796874442234820666986057084945201142749041286486643237028841533362491815825089054972543127247764718953874613489379606242886584597427971630909375553799972898035657457402004463790950698103968256690197438962476603522000311046116921923210687250981045105791341686872142787801680500588827977631264012256072289879633905102667593329137917304681111940993253674469344390279947258679960462792869718665446960703608858323564671275049269298806218936355315886143795200512647794514670802717357144412021051571228322678106183725068424717628857415594206890102222530499032169181574243023129244348465407902132518390987185771213988477924064798341530132615046547886253390804055053894642608276403887553185018804884760310166768333249067126921427583250423376271127440521608580616554775658681505037772279609701368608506159762425219730416128901388097906398924427445009805168067599747831525598921176835766644937713294799976960743996917141671928373718427638079701656415667784567318036759870333822485894000668708181075857234091859621921617347317203096345391818122868937884688394386855607914686053468443056941495794818035997940256296721409965658713690759480829630372359518461989926198266043516993817217598901820752317474654068202633987807014406709998387418820926624938349720206635873922251888651732215375648865634412186511079765995125091574790632211259299597653371024608673205606591243950735211047641954705688074703335836154069379161362884529941064110343453517213027389916393259986850210043645285885189808436423232230775870007594585825070759679928281740737621363764418144028972488376891202540470709480163204783336119010302180225466934899303493094869181895544506181946313943001644208890217508962489806699839976073736734284328145221294070829952516094313387974910933101187814609590259952427398327490434833607564291282205926763172672741458426144863439473966006603018617659563449416207784995543870859821617673573090680664379336342042173817517471009714312832170548427085839966239545938412533201338824249196002978703042505745950040129466742069963387466145941428564545044286430786818649604601870192584402209356210716515566214175169239694252179702375874814998114681090700502619152346802395994144531729715841898848436386033368159859167691901055742728312245308556143121104287327587748445430456578881916058227501557245522369907585201879661936731435652517045985392855037805354820298665735298435267390387470765291383637798422526311422438712663533861786951501348032249680891641464587749820136022035032913310235394940844786673873088101532033011707578876273004383814620550383250706088052102909365452108566795980437994789226846037793086292280797890678303856458943619461985522603682581638193245803361977477849842158316901619971486884841597410001184887995349212786231772599090110866314489850384132202141694811505177265273312268714073120158650074417743047555600583480761444569033807304114743238352842101120028032757791712844057082991051326725989480972890104546945579356537478963039400708116368970461145393633965927578389058883973428014368376163144101181397875690605007570045431261120064366002637420805493389290997689371759819081922915986928283589595525226306522106629640454440204536670547365294356371710222575971681292164623326427497915496800898747994423878264781823236788864487475386722983709718935422453936285215347906303302180713518676899340245211779699547978870907228353327611867593432734726147489895158469747270901157872582453181138297282999033644561686793185163470429195706259930068489169493364655099962227546569355659246781114775378832343549737071137250750606192801208742007722796361898827003963460897734707646256639042036078071811154336480435809993383586773578695011278483031603094088791821421146387012634012660468340527693554029584219392982558285087800993785394484711526006815721583803015644941158385117295770222037754811873500141438388511485493567877019110599687091402107662565885764995828171522781884731792212577823315730813244313323612460891580149255222908809453071757783585020637283511241907730171601611469550164470848509764391894532582537025804885008983228175420396954495936103503576476009573829127731221915984125483930588441545520033489104364998881733501725477563084471466271644583786428107451160136255400476379028398929395716039858115758154536897605441567927764832159354437174051473306301253869421752397118400946596859673020256864001933109970242608210619647734251720979179361618249047810644162348966231245225747966707977661931647782720848366252096582335923040791039721526596040119830753421493553186451604325042263682647043832272058305736166152236519124703598816501011550315314963370028858720522143120998971413170578444587910826311144565535494201062942008012535720488603459608014312136869755075177295123868767095879641182837828743223346625579864883264361929508782117327803504918318998852471771608506185878995706736030646635549658442938931856345117984273619534797581095028997983245921773660340705867004934907073382482748821372784913124899134642012382852924471868324717986954327759202148148945630525693248323874828038638492096144519328089784894885373217617900887201620734833630862608571347125761616158595732041052485288248260796120822184011170628207092945407398147243942837198106192691998836700843604140557837394793668953914633124919877332283889156311716028228738068458532657469138139098208358123251291689329085051504799577990451894298285040996071065504825394443675109459439273932284186007082904255516928716435359920796666347259117002642854810409135247988145998555688705023359005643309366457359745584093083332260493890548268019701162220435179074625771263627912945243772717981734468438838759925716184284057138933319493319673812852357424798140295722802687225357573041056864641959770275002880263764949393533991182075845888069624112834907430490799916148768739618370538379741440787279822373050854049144600645699375096973609560124892066479420164449166184353567140475758465880794153087303618348184729077748265421468964693193293371036185430322249979582012419002897394029569433060265848420169207366575077144625036188786591646582606023093198591504734793697224392071710153318024129609121010207519909549103863077487919699393991106112353438074863561466917161897330161174389625384484131691395123933970276579160538428615305383716204591462395856219606992756386684705998260619832051368695095566490504760944054775064984614943229738751058736783545337091106805159377319070244997949333158052855872537127748297655622825315324821065046395378984226095816715028501281583716451430883517398371905449580826332246016534763359793033541500582914333719633431658930294689935368263390959497174163974487194164798119282499511394926016087840058312443953078988806917194224185217708787844259531573359546656244518831079504121329618377172307310437417416974748827045740781619275170369149838053992449351342588441210312538192002054281398762708064578373579548192003316266666833532921049013370762775904535686219313823637036244038320024661496336175754785232285627529549631982456711646862662164868346850329544663431483963566512909641262936346428738471954813117467441733710899494716695759735311146285533451255832479659460519482488212485573508777840625336328241262931404798805134659242648561406654870030752452021060708017687978381602600385067834676197778405950197618176187072518846847890533625466985930894694752616438523147348015320994679497086431184156649469868747730246741948649010299534127895748935115851514598637008377828992932782605650743707541753404025316718605869690718885017643362182947517643381160953965896327497070913962011254531616970169116119016456831324343463657803229108541152550776700361963916369610739842190416149718347731860873367668898914442216697501146174189965564242388071927414967181561656754050455942615283009539927321906892561336861990668542405915431059384854576457731086650567202193777427500929806799922944237671455387220434516128738926748825493074588581665166754619219377738703962214047250576910452470755901442693147056028642214787611944338430598385866170040691489331921714718646119954318861795102432382957016095592841859140387159383642698164129119250746925380091247903993928943911034499442737360166445811107069411337297345300946016038187301015811667640025860312055102295209501947200913911914702763141573321581234532880179757710644603943818860914397619464677303602145182123338631726959456608334070803439864133300190274560981449687502670434731940947670380730297947275884765188448089830225531647015203308166024883816225945547452159114173233949931788523768600621129025174263657389568737849849890340993094421251386289490525496691586003022255693311447997962697439130860295985287535979261674070407950756497244919786488269937361616503930373720625052990850202534017818935593333516200016180276604735640545301339591778457583853540177983972759130520856649542157526384808341126456780713303293942964703822383043469531064368821836532613600953730330991395450560852197643757576636813322280437974249668939512495289212200057055317877511914541545056661039909739758327182998663441713794472516554228077817026956782111409876128746027219116038174568430960379892870927673929107686540479873609051351227663882069157109245522577841959394933919902953667696582926652594165906083973239408555171628125257821824697176609756830502448740016722840999192615083525121024092689535430431970283779854996099871901100802091041648104784030083733717469722114959610592470471916971544517692053854460846689827258346592434075324979593920080003957635733121045227014370796335416042622808391737510190929067109507813577058342321013670060890538658647783598167795438096217367527494632783675142624158828394208882623969439065170421317208115562645339141289809087419713769418292785847041512717764803387052581384300278974874673391815553109280400123880408443060157189269751919428531585526211857384323676274076258569660761613038093116988178432282445823818136003027598719252758213368629864274028213220487002653634358524359957327316448888150887067358874874631415170368101604690884354291874211340049490020785818224086754496641139430439776995201458327188595130817781172332200092625125568235049366807548505359747242919470018732095713943913144724954532860703313511880146506150559694119313921916998412384404871339221674353219449957181011759226753656917299593223503318364617846132838970704056201869160338769762766277194293298294071762031604554939382345604367088805506851344901512936728213456484075895748103547164701157442332614381453108002368461096015670167758621870668336352861711896173296696661465554020572613612589414627537179556845081167238145670409462531970513614741592317727761568081128954350746194122407286597136989654333087444200999452350705629950246044964458135575572075879184637365799171469569199377523976109384123739451297050128230783700809080325089598497422533304070131627925955761596574504480066216236915025822833691680229850220839406923068025077788667010959687705278804560779237502017331043149376474784227872601437642516956914345359670456953913793382007395385695458007260774464700796354121076795045920091316958407759220141029384746663748829527299971635138333685083269317154123894699168151876908140360777084551157065597928100882373863048678801576904342762623193408397834797190686010292517758648753136536715900066183474919841015288165750877942142764203860225914946663517873159785928222776291632368929797786020143638363036348755205598439215569799522143225706254928892740599534906166235883935076479062865416770321909665766832400000612766740338107872211707314199565364327146595688080123162839144410547840954884507302550882834148551414166400798353767414268915532005284322691234601221882905686871212909403433517391435243715763381225540510885583456555648222198099089110694667504012241430788291437804466178021663522268618687507847704969140074585312903376962377267531151751540361023979115082476409354047240763930511657364874089619292075964156580728342436174658557570725289824003357732554285915405294634375093825346934539387907894567317580335708621578846186371903478677553237580517311991310470480942904740807635974318489920569444865916907783848946063880545517307036353223360306852621003864901528454107069956053609216420147988552413519167525352316396662864877586379864612994017955345103842635326283621491519564007607038456857754179299961162380206795463163533185055285181861196425799381397963558405860002001526295923665669390048460850472433770402865232950676179776773336334264510297224705243677218292657621245366643237245003981553159058902539866683961208965393150386155189520475661142829922436351213733969073400623968359474422738698391363623881036596350404431509493764303362419711083535496706272585808303131597666332566363509980656398955854372919779207486316867924893444193989101822991685270181871766135258701068018644180764277741281289010539382931742564786574923831792368917475463991161860139557480305489950217854714799318466201588860410600142629494614569759338650650939213678758603549597517496736392216242096134488199124769429949996123927548120041352023548009035259742434739822615269505099098683664928909237981146385830470897031793764792241030029270355604316086860443749522185071245851212403864880125596050661693077645123987184300937150525276427183549973227999766307495508559491306993734126512216557398736951672391351115758800779134809510900104144208068644694124154617581947490941004040585297911309562954337306465727253602387746939273090981184446574303133845869611663449017888043421387183746178439701367719883545780668610425520877160623097362272348698714623500117577415053693293651411352943184507542582736509568897799121915646399558447290568505203069807628104760771079418439233024652641770938144699625009474149692020659780778439482050063211917427601169054533972332689584185719969175551128148201464981255166482191596472009973383954176666389576485252788825276035381323567122583717739229187063660896344926155748537293707721001110273220184708387235271104134824071465165347092451870395224260695815916278293915144720988176609483058347041581824080882886792758112952845926281024530912143818603863340634462314102437395749942257987850329929090469996784144958741850913524187989489608223839900941850781276757519132305908578068804215371837742102810091207220272156864558285288514884705164099745538657792469046572805916571869958332243652130597148282500783443991703139809992211501044275826043042441756228613506811042334083373641101705663445505985115715664573077088738166568047601323168592556403012680194857545738456923272937602048376798944931926649067157496470347796410502762832211283985698682470519952339391267331960796184586036797965214376033810028410427162743983442509790340315538697160525838774507233669633414307731408876347967248699977617136209740156520065692425392386193117083204788906262636200120800973111359979586056147041810023379205568808492563656098686416311842643822397951882306830629527287959397027463997922652100391601738930258086611625846265218331328367802779844785101602203120661573292787592236056714105675275242126133801219285722413836797913026233749353760832893276604754608201336977400522510753919598756942029542551774173326595419715332616215524417256926482021807899580088581141089694239289901979816605167340408226526637430798687765312517592992332949214234356674248788324512833605592353177465700658176809315166171404407017687221523834741977582726315321780698213785821588066239788008270176699538910291657371909597025479121438619689224507581306745103304507770874079252971915939870949980721159670075214797848313989676826516393640584474470695468716200070798678833186743370705144253875989110882545792545919403710373847611275459837899294236502587920708467563990118455569400973375792187724301897611303292034289505268434362866861815302799526151907369325518590288640045413135288613438182411442216414280458510421797189458929290175760699178354967709414816418259711981431623248636395828389162849341584819881736754007423669333784572689560153982637130380651192587535206673068351202811515703660419985858718409165051840256809428634395412063773755769473485826720537819116210269431946881684701750050613088192696437296227519950665696106066712161313652751161878318846589901268913951314075429862780901057165632692502889482994697526472438394618413740781491992675775836293431901326429156598637235344365266641792523551667992227958931073276367475336260248937107585068527170777784609420243674909531857488738326837499206359935541746776171649713223170296522893573799642551663079280485162993843792721601594441873442984974467821304665275963369713397903240731649142547503127071176284463392956924301123664971830718429316911060939776618544102240186748360368162688827879281261825814975288660406929686057537532977554888157795729265540930170925603743585394298503378233203977081311666108531734389093246470809655375619493388044781409372262743183361187875478126154930675840465824126838773798761429120180911011214527278537534179615899033393035702087687592919158296427417569915029528001602807269322156140149634199009771465349169397747015802385408634617709057451858602529642506800278809072694846833990096163547487556698202368528403296379024773723233194361352361709653224475931516181254193131543849678228959499831108340717382365065371945685903043613326336405624433565120054700826082377689336076307629362015856834557232184242372786558109711681740125825750915267734108471716839980253594236584329315471353135318344047440690475529414208932419527333520412580243453070390527573378853657929302277206513365717872668485890174243235780332530051437875187649535457085195573695469058677330646429610838499801996340049212553822525713283431555494410782388868595945881402158016831122526930272106814507306535634327315333978362178305032100524013962918483626195396244988896479897872594689130291516336589673237287520675351749323671957445670219045637014033198900014355895454341061621421665364456444015682340550077941963136789984275863416688757327238785477598914833677803541139992626372285485000544306184233607669208029880439518040615470513394082915031368829261313560285868278369630243849150640945763662428617969557379822193464958329989832797382146700611756208522610470136338077204850360358183817025040538411648477647543500288908810143764520682117186809002320314030852811582628279373232534396356261893083162414998603781176441292082253939587088397252021078389792834618470935478697658385265676615315961014925068318085944091574343916272834894721318213060996885536264299482530534111835532797780019772821812453324678307330697708704511313712185206486330443258801789219142476480252196752474813190900218258275281480559318539578393769961144601648377242857625822103363087374191572186246646095481630937935337522188176151972084773407117332727259563478430666846029760975793310815430003644595276886381276419839904350671824860940822693733505367389605772143326354530663741750106640646986973359074828101032396411528398670946631232893638785554058626366764401789838019678240138784982587502330484959707711851875875029858580779099188059193955346410052944552729738711888801880815633836010812400945515282751534493109191952386222161735061519805907886727454604882952751928348608151192610202841379987328349692872318462096089498943731172929742839036057518801649809048057732443344826391505342009626888352103305736929708512941144077997311910170575829348252367433722783560637025006195054012015984218431675088942715221473220452531258400845240630343216308586618282082987012356525079290683566600726238719095778931458974661196220097085139103911837286050341034402811902168556205661470680369193346748778569736204210324873979086298803706408643691798405653641365756049824362708930204175399275419552923309079699256812285320322400247657906867643972972459189677712727708319039484195613034338470207196946172977963869228698343323000824025893387568199079544421692463415627742231258001516232244900007793451910109162455169117974202818788928176198998207734389005920961401337895695058812526308145511908561381896084913996888646665892068619111769522338446022177552688204189873566028639466660294149928499895020802272300893459066924217949700198732106537195753271361791965394524518899379164218832462543442284648263400737070440476544534926145096335724864884902122954267705676777724277239275637892568194175765812030711851039663227631613667389191288450293228960067517132842871313391781763519732730477212807322877299370297427156103507088231077199725704243089277639251367381405449768402569475239664381512052399141141936650633260284792704711380644533297063602186805686999963764159290805025419303666048000231204217309598592671347124254447397674022005703828234315095268187583344991301515256893615663429151467520834315397431074265194117569190040081440428853752011966680893652728143727258352488419219069503804734004403582328105344446063537087507404324438344102135903938171751722095109106220348684204803056966349665580300193535013668337196025425894539658260140507520674945059147522513843359198274511835459198110099638578560237571015153229022096947863406889373280018045025230978361911797564660430150917443578121245055924568125043874390348468920099438663159170941938686704705907357938887634348383230149179428824534837104044232677483762008408058048078897094759292088077240583577103909264328761875673249380547082893918418315710897429019161458258093594786641012240978323200870605548655631602011734067895073269555405047700808255361167867714742957306522518344967127588640527212146797049948251070765138711685418641961129975860960904839324532058338120929096734817256985239031977433281648254945878818489697190870918223724669773625881354840656746826031195289056973783824741339360284314957696177052295421048074235853941589838961534705653002447692126423271984940778765845054007738091424028779600073680025680263833280038388692119295918104156038993397817537213076506897746414014042593044791572160932968173744479020799665570327923881770140791264933103467246071193292174136609437067708042062507508225265817650297058906798748636550085026157866662813050423284895805324146565309069202580484181824578219161219140217303136692867047246480764373410739743174385590081387434986818253722323184244094384102414147856228125279603944144043880619002597809706809841751792098326082830932340687070123999806197976115693466192810333187945474181646711755027429186829713950056014499720523943184151200436252816610594689861808740123115693824939363351432822843980092626737993836866000913999604933232219235078875574349226995169665175410945291829599187345188393112804913723977402542628427185640412185193702009558984465832427332834980712503094838040041210874430361114574531238408123818315802132615320332450639606967335715383040816098261536972426546123873709823363622360631186440394393915352350360793238769785363690128605121471599522324659125805745133585929447030708931996679442298754013939666225330548613079055828611622950809575159834242513393870760559180645548503737166065071149273012138146005739309123771582579783722886418089434279983067050265723738369736305205565164280420568228678905215584602035052539023631024735953928097140461819197766481467391300432340445818653844489870105719057111764896588582125318345246016185248039249139898718393176474357827577660850516439041273723992790669007710397531973706719207107553755113585740982316891460243382744239488219791045411242390799462435810035272027847743737989530178013796705227826463405284744307292887938363957755380071542902478571154967048445984797306344841420148531402061608079862918801105555395495124763434513574355377057583437783432736434997746596737549672934245419215231458325938595519131499306562753929714451728981468352237699268449065306451182188976670803356145575596381397662922380682211795168209926723177321483478943625043720982973630174941105870138984033255369147279082084881148280063147492235306147577752031088728925493935561685177315914064717935389597171125180526712210037533988996484732068073277441042112484481948393696849834938857132995030200029045606162652535210629763755195507601024413788286536014950191458400904664494739878567303170563641005750575070192485149841392592730147429524805400263488564110875959844694566361099481585957009192851406902181950131496286683739215636443886800531499959976586014436018839761992161192048079185444989452727951354843531277434511584946750271569400884464422090653237757807934938657488378665574785871137027171866528037059294768268975211117089935087981413140941674440974727598795131447391284319572802612137628930168889590439967275094597031784784703629270887041051285980519602818128689199644478377557474720392318130626080431666841691209687870312409089651129829658656462287365165502641136612837719206536153954730427562566560870415074766926774066194134111798775111659593683226298214063003435896888958869748136801981860543560501429611101809238431545000004557325164930964908945104009587000167001537590912068278668636072173585222424076871035812610430248453426152897973201697223234806496219035636241917888065314758462616631658821280999926290632252705373772165919871176017527459696030425795487194668980434883414246114108207939619032627483391414173376814932650048382061551075017268114382198027347383829447225213141007732036923530718494579121465660747644384280656187276470321473114208909439410116455785437227939480249158794197513829119196105469984734746468026872350579710783461491390976486758110393421396365667269651006754594019629520594782384866708358846275490306949985268842441557591944259338636940395235275228899483885192392332972553725663267043688714322421638580881004336130057960623406887349946189983900103824361173602177060528390797624308899703814063624551885878420205877296133024724371921890409089215313510941247307734232799912387079362646793127708777145759597792987030516123039410186261218847896258656410216439282195182876514995740144072467173173917598631301733261892327431410869165669609671673675704170269474332392803976561128032122013967048465436318551282711237950633722077736589844305111378084474584637636475768946511707808139303941171013587099270982715698257768022170499205072030705257318648616320185873767973355405965337170128896151172352290301046494179754337154252478479787334225315809369349893346856073790888798235238937525123928922612971251561325096122669504390339643746437968481994419472757592593875977960799948577347012655172565610207518843643965606260330041329330506652506486585577568416907982389852133197906721620825501478131040806455281710817503972457367803787235128703063799495503103175830900706286946893434381389359436075387665135779695318340183776889516836577039646251501767096898577802476114811102433890971239669127569263399562043680335188001802582048326292787981150276171359361849350733899517286264289345879968569923925484472849443470697412386305418380357152420754333061225543999548078061374348802293014388799849705676698220207763401837879038322485295692433071914682825335086052711902079657820910122976542865566888276373963724221296620193850264653446040418802084967113683278533856802029578663199993048275889083979981647807322910456227860804624215805006898149641534699307428708670757096357152010481382934593879521128909428867776021288351304228963207159136065777750707527347979844666266074780911301837091368724801538136329609942159048840886500920136550920548659768886148782018058434081790421498778649125177884317147105065512238429503611496693165488957355424491911977273087260389431772337130494463992428640961956090252515834528449430522305069481764643278530514982244510974799056665771630781585112144723325778858536967837709335175948030852954863214392355769579939298649831114108876763553184528473226829548917375339784881848780765980058771461356129368672000481428207206604208741715421578403313613370859972333132155917216587941942986068428189794178266557533582710363785482311267309757022670375304706728420303626103471406368680857300681794378577603024931765372090089920564042616550847503837444704192116985792720077685431666610315507845412533003489091023353641264005923536356483798731141075103090433765507613826683483506753817218224372025205004932455409297380329330668413481584989521490442478870894646170552406132708859593127648900964587937807332069077658601017746046564943582276193910442884532696378449061934754829116783302048266770874461136538969886259665344660880739182746802907970690321655327594248443893941578325264418344089169969116066817327917163494211937785767367354116809200769197755786865375077639956176391901295317343180488189989203040107980368921096899228636828316341562418992339938489418969161609043028471556481351014327484349621310122395952052278651507013310217214148594901972726905566407389598772571099597204560961260463858487216211925949491001480728686379982779972152401130187517693240886940337819078835637680244977785934095168242970901259382601043673453345790865956883066886328328587210034200149356244431690505580331053223955640171899634352762611822952959453372143619391144628746305037030393364474789285619476020782897052853905433882638617426309305877388488202079525232743050665013577450684096482676604916754357107519473348541216261737929671973701503636287537713281106946179209515645944367806173219422211491215735191569806630563234740540441690620761239405199798218271919627071468502008757582954071438065422122389598443015828481923674838228463177139039266053331766982180971379230529494605778517556068423384971717021043671100219593881220071600866234127381129246329871943401619326660395947043149240968762029136276106825074351796372349774180193221653285666375072940143439809442791675286802371542742446484012512294832352604214935339945884657372209384755043445377336485443459026860586606090418332370669202974261785855495866703469464677459189721121769824226081745330022795862038040999995226536031338661218430297638224815585781233787494800020774963122018811587437911910318972254542944977648924295502056990637834396664792741563015344201429483833349294818099835872387095882262164882167336408932974860000228305846637305832509387580553054303874386206175689765878023148125856711122030782776841188168504620324191402321341376125941779905091053604182420356754498405050159177768085339700588527981594461480119300109670455847779547126128207791618225207717290133163899863500535348258214700632356562807945631023819807941130706745356031530792038274991727960326979068654416909884799025212337366777456314286933484265205991931970857962367472012558584433962992459682320617328542934567126253049829377220612122349569475114760190368898480692701158999719782351368116449370707438524514629000300829716213190984345553261038436813736431465465472448069767165207195610640083661598232360035603912739359465699999087826557028545747783477006596405662566339241064015175535110336915729769385500224245247258939160457753664044099251449865850350101476770284901726700843728021930972899489044804964106326270842221842133826124530788562479911623376016412765640992369982119616871262671558281520487732074044206729388695002155116059489970283271863329084863905370623608870995287275723859181160143452783454541204883037645663014253848430520333494323544978193474162103617269217989526413482158442541709773666997852917899024985408495185592285476870868115295765011052822633960268751208537347607265102162752548830193711172458068376789497204922070279806413364910631189071865654439338304198933990109303358626480352085477069869428729562327101381966969403145121543066741775018007935412059906121900366518637290519651816488218329256853438297208938779598231514806066700601198856758646899357228798479938423129451025644004913907431547027981264638772912517936981342496050787883191254259929398093617104734781729621093467213629386685002559785283030222531330110018749380293787128688679911915982178882132897487830771818076292057468393764502021635920004907354307324595222201794158432424550087054912339562162356079322412046807463714588962939778403432724889803926538002363316424502869459617314739488794987039274285019385892118174201348293588869292099724358865770570831904236358395319085262102026780344608729407766455440205098382134456750622142243113182687647535233749323280188625099475826288700502759155047817748186516267086192348365306125969972787244328378521273328734946702993799936974445111538117422177212285947745336272958020560294329470093303936831954293034065108353488178410243548404702670306073848058330466918540639171146203187311075920985154269464398690205520111739604973614538095009329395518736984705468007791709029146554291182305699007941963918307105908569492308029179524034275578398739177941258840425496064638866855848550765990993691312077017187686636854672003512531697156555656138550949785951458365309710276487118377794183734304477341879260150077588267472633200487344788937462288101614791130681497361241775846186048939217476492016940755959089994097008974600746491144393870369080193725613387764586312184373278856194736204294313786752232169288706800571636838810599050519909045665592391296281103538521569284464784211389026224654119709274337191205794372951263310418991221917360930769480420697498632756891920153350360883712016575121792071053616310193221316882463813047190843735832538282648677939534650845218333430013240286208825939167118592343204755421461838867673940233532936106174354457805584276520438245337784689411913516564330239261582916555044001226684092803861013438502959640321692622917577291199539360974310389796695766842705891078474440612538640955888305303256878486634828774094680377770673691441953545977415579034732469430803034525273111478424937894298925071407754830510231451701156002170123442614694382326532202249876562541531196710562624509399889723971150979865210932092389676039631965039644647208807806439521385954338607280587992243683232011143920258709129529252411284946401972532287199286614979169665203088585982773094116902875634991033601631814170865275120186888164800644329799751163991589342410393175391657248399519315336880094256753811604031112412261616936983839444913858727924099798933953096498268035710323744677213009687478695035166360880468493729819189891838314354314828173433087018421118828281223157081776043590414769040287738164465461786496266405312655193934780433200044640328632282052728144718025081651693314279741882108817985723051083443770576897271173769013905146300696482605044168230228744888529519766993912267118628475897720240768752549118665163289812846644595954975201135882264875786015240781026284040291894998260058919875503789619893526703529144111483238014315827667410650501077570551342947706369099781862807004547908673101943198818452791023695961048680327465192899408924999878817825562300502239139574439048773667704769772366236194671359749521925305393331949237595837072405893512546082191447017459635058188265954759217757621339477114298532858909586039362375711231404255430237465095804225669437146122114652904072510921915974698153636492040947416369475574207151531285632464209216976769603579595641064917662074889279691922093808233932158574140189457047035955859562432599003272715772342076619115502909990149715243676416969402415369250932727952833681462114579633577682404841742095044217418240833453653254091596886598950543130891357269622976309996685126421328159908386344620940540096336496864768145202867370612066797418335533896162468358668417740888879295227698877026318613311058435112292387681651105871660997890462427737213663056219434905802898092237225820741732315762150506098498013701159339311437232743036323588107346396886122334649328066264812366020573636600579476209552043699106846184907880228152841640587268747441071547208747038918614690128051470413561521004360547051262101740231557764447013434679073205665909103518091551878500088225344442787048459701824585793903441887185077780986645756257844350063346518064685965901259254753191368372220121237335045733432253827950566329202905868444417900396541358256880693934150463213595036723199858311137258085635789852207972090074564646852644715138843322001652204346329788950596502696575192747928217964158135416520676209891917202353812346541852768716654300060132991819356658539096557329585489210542081168384078326149695405816932663400410032256232155028012584635697712381797861175352007012062225865097367973200888518841754082819582220528040463147018692235895000149217682558624558352096603876215955137408732430416158557332493268853118787913675699276260673090285691602767791831641827133939230664930344876352657209438345400026196159063713876727398815453951962812620131781988597390758362148048885202082597428005147608668553772316057769882051859791155870848022062868482172673154648775800712628057273514081271546125925928754728400985844509282429808342558957410941484496605544576897795428943782251154844833433204144396729927560500780745833312657412599571867864899967442077249895526533537579851907847649660555371154375834274288458616952272157614971708853165716919872511846864763149341310279258677790158722838586809209443884645833944214657759508893579727915206383304321381285728649653775801649339647504176502196855178760152325265838353805349988336294987474761561963964326527631090316333738183015443747813110319117944392686260855204942590803782918062631060009589829775428745563477555015971989248103045734138917284370046907986982432555978428614828778132368350216900853026573331210878245763937963279982544708763631233511484865408585237533116053601827881064075674509840837088664239213677213426433881902240752664850647579229779675962242295305133292933892626399510174118347199240139656525579422891787316458718732870207392609695233126555261306288633787598368398322815482417687781653117471905772508624148448862848520988778891759529973706257895348411593065806523203552347594076689557197765116206745152577891581555714237986351278082275442302649610862510618733267179426212818688845311913497974165675290396589665900471736839667751915210170233105629352456691576221433302610427108443171026322156653622042574766476725480485469121209396696907016134962562843852043972156825729295691084934812502288247425118328632402988627002183364357385026564250733206801641570277954452389033375278201204854618664977900322262332419789533384219500646395268923885730046759775344192511949730203114014091248173139045798693973536487213745314532152814625511582231352977386865743698594517264233777243824662839733517900302765843494392230601313882728354417245898820543747151725011214709786984717946956158561166994316631574142829305183518704473679137166486780018813830323221976007064255250965387746752634483809569507242358708504315481187403723075746861825469501326713019126887255734609522285448874695777042761603241277985235648762554889287545436686675722997270514803618012103155323478894481704661905077901507180075241514272807150180177917333413701649834904359024378482635235717738705833392842221739544215821078570352360863912503428498458537845721282493791140126204529422650704089591969248517680220046654486708408331938823058375051788363556360309954590916012639664464628761874057001260831898411838789452984790381307871470180589284260095192702381420593753635612363396256464887616953115495273724150652673284516697449806929247037848542241658128659085186889981257412043023224839834069021401615430357500736738963129327763238998694186404263628860060790151781826492878464673535183017043120928897541496091051573238888007339908343834197504999644770445046841650814782363298115459292414659831390274012267199307802816069775087239829260128816728145108014813779995377568495017508036721405772005897202690441754205807426092272300141224082027278751683512284494063948824342785579445736204309519279724773539675171485472933854188318221553842534102356030716744458328655998427865355089463468708149116621764927618758338095055592849415038534847325613973153735732644338935643606641184399482344795466314182197329557232148318787181981368254674370475780642391979866026428146778458256418403413107164184375413525047255682005029858591885045186700168677684052636030726483778395468578096042994904879314754092759001461520444166114332202524540481433063079638606078103157899721666820951952531729192528788840038854499215694481447729173316722842818249119410521408307834007940386192603677536025208095863524655424300322217935839628551131458852854467197842567761139535661005198201810162657706215180949431528916252209756170623296711781012706662996956369625127275958428259578095475001298460096439077386074048943342021839783656569548288567874999360656172926077026219760113087702348727058087316589526802402144366336836509383337541461815956133251364223016312030774116652061560750417052734768658354245618716454948366244537763222665388125087415054940608399255142013208667559088918856467479575863738874714889947493974307692054576206833002763346659893343912175193174971795844971597084332505153436629109025959415109419564845919191986444149676894923314495227640816208651922404933797357497096408291609398969523647455432199096766883996706075776201962933660971189994090510735612492856197154493347472234208525277205176942036561400604067270479710184579216784223834529214781004988353730083031900469735897657267089405729304951850464675052965695807060767603285560842612958883316296267184185047556295822682182693221869603747806529117982776637054876106762061146755955580773809546514179403946324703656325781146027954400746945154911575096097344434452573726896862085263680117836403823592814146087285627703076384516266693780212195744867957639435196062549636903797241752741900685334440558902440230939926355703917130536498098758825365955722732808140993670806611898763973465807596338815795617505606820845617883975954540640496567542432689269344018002658586367300728947486018004883810300953232522886390449680872408281131271997283106115184293927760340219511162026738754740401401725559914298681752258835692730551580183917332914616501988795738142283911256203705299958670734598960445815852315268132826476052167588325929194632978862958710157944923075854361526051520541815999209805912928796684208392071165079985317005815441085595701839046630375141648453819914641175129662166433222191671407959939406480516748381130407891627760295592211932285954745719138946457746246688448916911899822238625473248169511331035047890940273381468599643875501864823390470701691552621510098713727268483575729643258386425868095861349747111732116136078124304542175173501521175653617298092540836194647048192194200036170373552446335318714359625456878950830081984107548967529812445049075937370334556792245410864747873960222557229802154317246418324015670653682032306639476697345615092989038598762477479293176307344024227156067935428361479234622659397606967556271485542112316563381561792235025948821382712749224241234741052515311750450691259965867049986380831742150243890052400248007682752063720933515545381799164264499940401221238520210092803184360352451472138914011534144675313876833586206733724040971053016775208324019428407436370028297005277563454616645748808281951510933003001374675158034473687396125467552985969125475278682787816389162092983824995233962222272813263051753907975991720613372740740841421399136923815866599230857597247277636483424311438995031850666001784772126556084364722014388363361059756676555269301899099824095980610925301652467034940320328955776640708038695719085710799670745928793630065837946164874833319801433865546927505505875521614773727177866022439674527905917527109729252300505596358655290395348949829394448614594513062509319289923038654934758249345206378748157938026370183105407786338927433273082297238566237083908708634143796845634132871627374906113921871654189774329366180402840069788763611182828777467369539118568868737882275800056946863198262524252351475824531814568905165666306160252710072796043497992821837983936418868117245190476090189185218983353056583013707847064575924835628255855971935529755082179408756223267366127922105412718344098958708741284319426000649945245852616561685325643507249813634476945421742182689899909339176805783651864755511964700880432648841029597612317120908461045743191401127389706249950102229303556241238519395603474130729157746842304260802441104691050157915929395605446681518366990905578387433068390713752761083629230652588067727997680672444090641037547894810991021023089379360967381065911646293590245178628074864495726274607169677872507088764486560334087455937646381159473885976060264232262644498730009708562740955168146109880552779417091439591611603332401258899349711496213880725128841662929591862708818872265490200243537931931169951849830908188017330271535010118634050430216597561681445336099668018826572974438889454034652504719764068024497529317269265246238266522940462128891463237629961399931820649007427612132237919155865411736307589247847188059044969402709102275659106322098289628319791165691912517917499423297428027706049717636102227979582653047570545646820994873929358014982261054048036610315405647207332798782044042642836672523276717034142456565763818778065878517357708186301944369465051999412013257299474561043162856227418438627277074011961581045112063514717352626934861883187398041371885598942776115758278561294016784109629805081983129157092896184798392673622387878157830534194361640220510986471646779151636219028183300002994996194147572323464391975926950213433538655558462848673737538196996752748671460775638335283582858552529564566481289337010946353044905744136307404962733154019880686324695291620058179822308383598885408941628768238213467769483596915483774128669536712893569531079743920968127057920560832505991137459841942217045694459629043347323255374643919984792046815675107410544112367825255296412167833235528577268093458224427514858329891058929735205211177523474088864494882436892349767802610636103795555772624839155398955815080195927578335498346913529091798322113296469789485378572461603380713218761555899350852439641906048721787226922681814577291015996302730306922943892164085502182933077890651929325418713688691021274286280592249794271158074318661376239751693089163527878179421938161509811827529057919767373516232901346343632867094968093929030672402415623642280847274915889724335790799164280963271300467437817827581604786071524504527763614396327986431900135318666914931059617251555355589864711037593264384540230969606809301630301494662761415362688877418654390902930766994602046246986182833009529630672353933324592373809504337800794394551205454703694124845825584113864809491873352082289211364942408573283070091977997996454395145876201239064677590576185189920880839628580147003408181347704788803922463817761644961461085358491500925019133453899450733214175115889459891793999700849388865211221266462513989275482647748870322537467462361718131777882046589753928015906804783594146562252795102829768916684117302942055216285979519128559344063281902557297075550304114504929950616405092619261285385604429428729799916216384963908132361109052074346051455485788592125358887308475134639350393238223261716197368442420452067019358896655235049030480331619146125130543710291803128991407983775839610800372039902997636720440808595018480538015505351108466753662678135088103844069635553501145922084158582278753375771279411257588304505630412740447552947059007046354631854876351760180794185794735970267986752526535966081264905712286607494155933364892251009460763033502672005278652847015779604125452905415044973106798807996148467894174797573678042587972822515372289318936173978298281093947158785374659875464231448369340246811302012110793052820868438790494657734565335888604248034588923629516051111811842017962521155116259764139350091300802219603577227239970525119011768477369154154021780177552004879074159926162535015996641022000138620266647464809085286077050500417133967345233083783620124176643802492988114232942796298369943688576344541377496463770265236456535886277503649079222797628955651354700005632435957271721784015760331352077391628012894012156931620528117180788083187144710669007923480205932139050207333455844841375239832219781568480109131725285206399918032299547772752836847445091242723743584259136420703415395539251851629683923896688874935708069350531902247457560715383372390623716676098874010915744196616850334521482679669719864780899684199488525135303419676901159306393979308608678487967530855038390574892993482957613413325818631010128267005637457426327083054936345936960096417438611972651724329790575313861531702015922395908659000387054508284032272729134824193751383926222366032791812551463321272056084410975101373592686006109324823030492735133949270294247817503188666902123462421191594597658816490573529157465355112240497738289238989175015654944097133605776698570381825264651228771967640788664550491846514368670199539978371772120332035002746480082077132501970943340916956310096856904025474954243743853050223825346540591689029207959861218462954685219393430530299077777258948985138330426351570702620853904338672106446231020262997835347679992310734293653992213847602706415451650674849724779064659868482805346413777353418492839426946415730343300020905192078802157733658551775567578586718157779101155929869573115030917659115760531540013870594037168592020746614871979794968698453345925590403816018275211387218646651362676463782937349656907542907332537331250986080451895126678816603289846141488899200614263924780053308726435730993578894718007022373769155329952018597066263608774559543137108747518432292237101749658110815132598742040867745832184597436432184095634117196390940920559038431662880627624334528472300624651001726925632994574254768860634436124347125847459235990087689043295655618452243235509102986972865248495797470213671240156908345142465425735945682498182766823428595752082911451812247143954779241480540073491041748560838099021709524425942868850272472604556443398131521359779171843453071094511390595368170619290932997653829530495573591937711506527481073724056341301854117712075790141578884042948802753417480444373415467839768098906602792765606049080166822332748337671382601909497102041601311795207439644712388061595198361373886682908547986116534500105030862653508392340804410597122056252547235969098624875060029226508107882132397609809340632407710302758401918608001521756250021211204603019422142941410919922960209272900315429494055369406013872134443485950661546297919608237100164241323269572066474869435102330037991194276252148441054341628282538685208925639045111676112259790187556051210386710039434844170647600543057714675814330835652630949616464058069009419082125503276504850001344979289947615397222109695346256653168030942757244538664314840795012080273460921015593629011124344099751939741026273270178189661733323927376202501818933230477187071164419339060980825087290278841859153174289329563920425804922231989576651608925024410300717696295317775238003578164786995406919518247917776983518687578148652099716058211286840036662167142079320873216216939395233172158476663666008572398512031811162379541398100898836904591520575918437154045108859730758553806647202000613357342843881064853172121914531781086564600482351195221110578034685199845822710226405598164798341453208603221941438122603446646589629525085594015435312319242662675475012316169565197078675449982145616434145681551930183824270252798077192678649606464128610029725660324999705584615438741854889980139708746348821786619518470977805844031953817438161778269949709733587922462203545236204492499040031795811727148548579945701012449238335886708633876796477005451471315671351921234733956665730839498520930882227134089299151547891396030988234780954282455423775831013785999564736700381059097845371671011503061860640972568217338829741487930747545923643108690167859897032720627180512456244133067498169039831740182586499457303824743475560107285692502869988526393834343643724468317321547557416340725598374923189260960358403387701438831302445774586923918955158487987641830206532669533750625576063260183108137763690958969141111432848392519765593953633200876979447745710275456510682254279621868855029000427500526758761964052462179515135341060446049129038257890437417176360961803930837087316120569563016811022637825467667781281215115479649957197117144357347352012078605383622772991001336607552036214317477420855454929468937975700933455405809974998572145653061424006594087785424142367971578239729890755953641377370167470333483713136968613342133363005520731298603377411366748264379871410698555837340026086388862138372154655111917592119155373792980899791121473992093767636231912026388460600171798788688204655413397485510455986639802617333555859583926115594081840492729383159693777844475734513396066838322856444872159501476092328285453201565323953661484191699385109331901412520463093617416390808154680623683340326666415981641072661600951434009561713359621705794949972138467726197609190210361614901873413320353781752553754452745613036564017466783023724772598372009637264154198407493747894235110301646279658744509093516620221885081569686141690632727145974435653670014532769688666478713618660297890744088371803492713985966924744918805099088112910901101997853577098516869378412327170712811602520832897692529628614697717284135031327188593573305935992551210689400034346938767539452828739830547927356893739365640422717866349364659236414172566583671686511920140102127274290126925777359085856911334208565000862946731145403396821036368767921491638834014694929193620782025598941187828310502154223705646981064933468773766118846267262012435776855742725768694846322809615765921104193912964404134976054020781113676364720292200375754878329982809715592104514322685091484056579444498371116523899743792438798605138140969629296563928530331328942493451021402920423204787118860922494229663898301120487607624404250279753006929469272043471816953884941734058189495121778120783470206836569869556003750856705271091403380124226447718304517504166565733825149985768708303224175585600550300879324686219484577033558588129108392591630456750386305306030156766498980649963169481053185542855246094953513299781915653507467938223578502805534718471956087464522163338616170222016846122667756152438278758594392820173191221979839410415897168054742606890983579352565764405811298825899575875706572396549525674056122034353163630990655641538863574918650224256088806936547943086673340643062708124638352176876912822189502081063864585149435255701235760057013715192390587079002691485016127275013027426864251150101126235380643667032843169755937711073305898995335579981552273248950931441346786044389393410417010034036895751016484383304858969884254145770333473897416151975619319835526019007302538794139775875808602974932479108543912928897122791175778247236209331823904276398638326040471220534098303356265380885599523508598359487564361545694880407461555678281805888462573940018757384779501595863907136540846296518160122487032343658594839058378024639073872825781049257130923242854347454619784013683092005292592624198971750481957628587895642462404857085743715259685680051670744616313222668470377686214853721990289041115269652574651735692693284708720820651450876602526017200638177476693813681832821947767774503269492522567232641179880789026040154320874329415781034326589532154744406181255013426650519914428126554231051402529198997517918188554581278927252171079343842298438712969288762901524603666087905125700355712819602275519165210719319203124972460433277859235476492870316050532182439661552414994977988457842382910961730424662220807030244553390123068558224042977830681271253783497153544353709541220416416106731561396917259332627130758282113642210295316649320650760282910903799145819797277894003313434963187880478548997109027838675247362930440489362093756862980532417272339951133261594343734460066185185597475966759004778396239456271287679830648778243576209180718060242121232380352654268997663312686196738348097428560277136483960598456113395977135254026670097226411137971532328092035170949864711928136266756582174412842898560389690417403789623091114168225185407357439312413114381646233058947128566357831734000859365883883026428087645382782843963737117964123186552508806377208162912968740994428021731345745130892062183139559062742472100217963737265525253863662698066751547302997096542886081287670402059293594236490740755206459336298363769189291731193891943588255245216647728229695057863701007948263115677423008068080752335802297951044730214953231004603839153909186794155005592945823029647585932285487481577893163636736204006381196082104440538395870569193063639940917506639859766735145186902478739603767639070051705164136156464468529426527851256803299778317347485192491234367469029445074482229372893948250034885487514580278359552389274466159745675254829893192728978108439980384976282959215065396969127103615479660663592932521524039195063947621959958473961975573725110295247493810262566093848258756197961538139505033191395936693383215567326159608757718580345234007437564923340492835751528720014643592195177738090554856166493279787819370295804098965885635771399527461050374941319118171554585079088788040475266403533985672166369288200119423230632495381227494817721892886270750564855152084840159279674034629059153529059356095808872773760143100742211610428917489349229759273164813373851166851966582883746598823250150647201462256222511205133373528474794487288892122507556928552834645035699363456834801032045858556940212373287607951858688983655142011205339715710314939200568543101440923650279109689646295943965852461537599292864267432187479317157426351454189656958314830322457328470380176397607615442210029204647556473257178305477508281124245162287748712960693137474242961773808494419251739626055291652742344769536686699696015685433037849849165124073434005526617979307930456076143923631975364140046558616968714182646711447477472980494823081444320516867124487250379390336102418335505794797219318576414880595296123001407746202129517392134382017586703215512424340430163894894854139799475210728697197348045114427513953831967824689116695579241988741043933907377087279267753230975839989729485404114513103320287527917724687439606517827576748227325860438104837042818953222624892241927648867888144346004391030101408149133629159567244516992986195617381018272974369602289480367486066605308738224788991272805967636176468921941916850373173076655377056083126049798201938246605075113361974539364448403278622716764017166962180473374666320098867328292201773519505406055637812041905690669871415433539364671398637137003807555021656009268311688616562620540037612013474443775044906709258153204417416731241727739890571737901668403740594059083951642915090446801968866515302068001955572721898504999899385636885491479139676528333293078799573232971646299688389272396001436958666031351834678335748558897367670591546464134659000768198368918906751384331314089941666784813514349845462700961915227383337411070067654039085410960609499990485219256467655542791985886891994097344929166733269249761440285770427476694726363817197074994989143376380712094213212144330486063036649388953294027934023336779956510604698092870768202609554583447144975417500600367633860278175340135123296248130856589951944610102355205414023256255935997077224233714757824946705930388956160348502068969382115187252819125665398742815386025449244368040429366993099906765043575136751587272376508749585658199198500855213991765349189520460797450740780819309076200088138412503502438562708625950907456996335667642686730070772506363034508284945792674713287281891875852009961978083661397457251155711548198088214689024572575052242144237712806527147030970772871173750005967593421371384426273045358335556668819743660838774389688429769459518160409530488134465389836526041256441907489610203373897165218228707617886901426213786194166466978983005401424487908002930686777328065779863898164631094936804217808199671704678425137954153661532734275722301448341684795560378087250557783979769741433090870004349637487238952807836738194539998328390585840690460538750858282697913880257836456360467691991461228644831216221273139631679201585964429438648268971766616954417327770127704400761009588014362467269823213442101012020215181006910465373296783663340584756783916049442063619539550495809935189537512815886031075126027055610785419876371123785924308360678670760537633587325569968767661130664302974344217808622996971289619490571396598051589205092621628241139823269962953542832620338815701767089951606214072417622838403909679691855659231066455388989584397147419293877628517585255135437737060241630587469490331385671655422191681960387445167704284041376163913150867532236197944013787015266337000665404559599538293049055031361059607771198757654426073662747634963976987819747815620964916570773421645198756850436757101974847991266272997322170876301845856623832520785294156422978775352196366003579558648570505711667570122710258054007092195578033352462249041109206396852489160051703159268334174773262882378958756535295194100492555687279386588822834801078458692702368379806645151142661170222486870835401128772441977983499810497918884984730559621562486878044082160604809561422287045453148094563718049534980623877773783545449311325846028983894150856059759354124380209466390617867584415366291735745396853487151866623312064599017267782468535349172689032165003439411420367488359036218030174295529789261065282191068365462481682944881402614630988001941495825398616935401091730300918916301120622377532246515355765958699629741238206695062041595901754629152447851392339702043131911957393775622657301841006739747260007120443653178692368516028932399396262937789904575974294597309054292686207769294438341498944026049365344970648562156131912930719232846652232454682817614302060875335855260819843411013016618766837011714161467612128726882525317025815252719048008805532942468149789456426197156244243852268401949912119607993870210347771369921951184211750087537493921352483328676655389815602160553557908220333873945496805011014669027448461250984389413076133215140316264468355315987464321445008200033289790606940126668652820696789984694788974347220502984062772122191820848257750180112916101996922755449971734094069368051894858370350155497121202905411602810267856447110460108642021646932800224116567691144512102311697285056570709184869763867857189226209741223829465257859486523155510349163810020050875168445846453611809344994732536210149656300172116610606999530674283143978240791706269949412093207974559189468971658886915012221641966531297659444663327339354000041226668142222000785996401049128576383926560933668909669491723103523150198533961678068285960251548310669811866551789689992334621820113636612003356014150070235580022562128248960603271045615058820892948638697536459388922566347493932258150897186923341397731722151983364332323657314510141684872668589030780260205629143843586152095114345084744631649946682408795315515357370325707524539796343724259233790194998856665808843175169043738366895475102454131401402103220893820796514971220951190001424190247377552719549593589668841445913921823533770531087074666729758521329277395645229759162147036059907951225275436329294960118107600438690912439152366776487237993959427926580962055722540229619894243053275487367413519328530651439761543032750987553231771485689054373707638563055111752195216242911283120644066817126935944429429490346552577916841341314159185797149487453784276931741454117589982023868585476955545213943154796104081984027458887420880543911536267077995869750996897243558037180150627138999145649542636293800942615285915251441021640730058769329954714075328105776490969268004032395216558464572112638862113028658816739003710173937578291807651752686162479675813229588726155730558885207607717875769337546473329306775354901728785010355220833142288050432834681236760668307286477415342949793759330324798207743544108644493217137121149173029418231511177888943212599946901789790327279470233921144233307693397651371114708982069186871334822273790376813477446237307687878359982704453561229203504123753074792444116646659486784533169947281062023613516034710419055148442870436568953179352608073427927885145152474659029649085535266934517219723000269573726165161055224253720600961331289659959779109576619813393158772095262072246734660699315187728624325319194798177509800758816812294845395961792598585284504475952775431373787329447023879911974699970672792791129567658472953264983532185719807489977757906800416018363928549400576103176337669491412082092279154986274665629578865513158896612401464542733437445885222767089923954729838247509447084155968285933077108153443574239317720423297361327432522232844284161615622757752949733233260370296945707616033173032784616015555474465851120259542495351314636396871829142187837313041740209335390123313431264830627435326645339330029542810918507225091225032737623102454508849470378248453544948488678764374639410809805939582938198174255990172255082155791207184998626607094675035159331075248547421643269066035145220630269831628369430019915320821415893770703260523380208858065318211906892896295339443707131113121990827783237142426156824737454648749780245990411281003878561750633865076151708339980947365880771676029552247835584567038611263115894969349707472181025595757616483561785309631390068898322961643843116133491843368384911702495905375127575135743488634031296326822162515682720655780815767436053235895994523798195264024099606573274987247157793154676514593413706243812797905925694947743893350434642560460894686988388584306268426855328272901692951451891192112629668980841984476668983035428109337474590313897693937565419732333207571487373470366588339518350710915400108932525131273967798422327508862237098334304178852577293131261399488964475143170931299998728757713402133365386112909390171772801379900644534626573883627638857172282489618069249787673839347339086530350984836937188188673944859636840143016824096594677929580254676535523855436414051352790835450274951470794485109063699340060622686047353917151811274518122388217354408650256951430580456294371333397927559703516356909218898589937318328670499500568351259701986782172128698320190203009968229446785738901363204670867739762067407254391347251658187573632521639843591634650861749857252779474488890696122579896595520554900447960480524820426786824419112958620559818900710352925649495444799837471535707422458228745132587019014066584562886682989651982168883577211752624626999923969885461877346170211139087564550203432680410151206835217976691351599520449955339955473316220429202173331637707351195432108529974483070511707392605516982369943697011204912880278465311921925548190907259550573105832744962854481956762976288267200588468144042785527531469264162715056169677614956751813853800807211187046339284124855689971851838812988695118863551947046903086006112245871301196873557208976486069588797323293908569669629787347915193409294187470717778269245984031725363308862457877021484493689908150655173607701249059196782522136883998605922158689263934510070673779715688346667340498895852654071615197168393800364798923581314165956814197228602268500437884321828928748366129997154161450193313182468442981346351930381782452919917180171600845314276566764726003425574521904068249114820482080052910352964723836435114795690549810433075069396775852588687620921811268450419152854475605970012648412568763457250193550126166935027760068354979229774225372138247065469029065632395013262688765765980629614657318751241234116665733871126955287940397012042478802289441262982594440357536474278869624617096388357559872561148221806042369624452071453272889727884983119214288398041935000573840871598660799275689175786086359105353012834663237251642195151864432506993405412572675162850510498529066190271439500750461575262462887149061407848111143914662766625256920547134934013293103820730301123012819155407572973629293519274220780004536153008850975785804718869034130905528632002221670437806663322960767063398958767747376103325083327615273984470670986401386325597440795646628066834999971103839783015601706145352242810391554627162000787699453634938750887520211348571407155542829651770861102181716403252647759963481348312130262517672561748621987888155904061612404800675063117638603210012617305429404719429615760053339317324237743755502978476501790894161048826379365150160675929455506329961050363493310646397395200447088536406385965690200746379897783599025122265400845865867969499014311142492600250283343345919786854563885460542654990925843266754033660680871911394384426438767918075594103342431491284439793676473476348073284995326624015957774439677736600964787916196416708310777152959195759274504197221257920758453287495663429674423171526425968143692290245758532650532639213144140752895159271503515252040701431648085439702503615704134670910836937479528639428079394769647729284738587943391298181928176115736821176876080359228317138704713326609528506193625627417748013809341142674741310449020588259039752210954368251573068132311487958621215738332815577852633634297966551705562348646442422149452582743355540856266508173809615660520929600850207926665289311078274814006220790982931115272595535044390649625120509008687017390829356933737329155290997185987051759852387194596890026167411392065973358267487171131252116614423999279339657012160111359413453913915780048355148830480742505348676163544153588656638364146549217056960566632309807995554392079350940211326049210203407954682456928519239430087754981060877212153798020981832831324679245150443847466436322301476822090167359915333893973466891437262390093992563433672791455301713597337468150134325171767411054069788029413914172343120666588648641429038962936289896935396167374186657296369527262222880091416697989154445335000315489915769229472402881581782442102754500957661031686688994144386873558454521537788124911974769793741980412658796680058104890552456141769782475581863389160257531935821446464675619034012485541136153129424419432464761786697780025779514675165873839311939853530203118335671424164923785694296867774196467720197790904777709078646244311311263685238039339206284765222661173229091515169980828607364484720665689379691715384019219186209693069253603292960424915729357826800906555218395928968642077767027253279058689880189868105916277790215302722875318256530666136291681608196601961324330847136280998417995592478279873414229621061212822185424840363463577589323145276769454758042710747010510023457768774952834756821617166958142027094045331746320078892483621356584695268180080051135300943191779275943898539557798389296640094117231269083642214945018539306600679953897067611809221826489827685515393665964747112218614919133643026716036265118333606702420944123822038369924036284659002532677333233059059138385945192967331140488134069303130355075212578479234788159876254409464675629106198387853781732639818180762928287015062536475047640711416279073494424492919013544198768292143443498194069134680981154717836906264994423098552740544710188470361411225002102085136074001702530949011852919588259389016859815677587586099496651766536527024006092347996953314013361940288516517402116170296296040616425205460838548826409255743606479476318427913917390155750560437689548069404027863180310377873076713238945329223276739255591795284643704901944586625418738264183997516898151422871258935989936151196579229010989395324543691550765896509596779206572043731248246097309919838239321143429684776561280425163392207249258697313555834837526176077977434316682320800672312538126748693067916898910506815775693421318625737453164714546772951347703614149777379527163630335123972813145005908831324947640007235676102198717796550673686960744901365193293185710401098279277763128698931981037484709848333869116222219093277880163959252352121837552973048641121432641155964990190841958965275327614067669956990555689896679345662298782890315338871683512042486158073836325568903856636400014513459476396488336247511632990157513714734192817591804288389629836289620362343971783526857958440011081441149166324482590948306947561481369658249092783493488616588441074181781905970772524307436680671678245908816769396972465717627752526162528761587490882540034391022324082917029131950130071092164392909363320379164787263014956392937977222062291489243416734378111547253485495694483445846072328284038320996868553463657484513192479493498645249767680213134916813261946605627458683283468347315596263990985065233669689929015659527833008065029609063383793657651498546717509056290397280858312709088819496909052649311974812762280929202671074609992620239449857183732138481156579664666976096909575462890060204269526992336081177240192549689529716468582858081097592540174008428847042398289998524198768675483341968339024089881161131610318832673185902152502804937376177297722652589300695320461935288871760746016433920958633301349417117781267031267065562254966278344197192504284985823345603557662593595198861337582355701372333179217375044179925573278608900482488211374306308778084466371831947777343836332490212906808335408737623121524774624046798101231244132439193310209530487071202160203554732242201898554713567971387154015918700868117813304408832138243936347834995171519707374465863038788860887777036869701472000847965965205623524826350523012848932070384262382057106388437440335576265640407596400400149596549876738640071134013018958640989175602105182847623673279688605705081371534761769781324546647922311152919358698347545496750130553493933374942324297734421986839649559146982820668147091994447569087057709450942010415104671790243122250385978043399780470606069345534644252877872059331332948678419335031680177283754042206236020613604154444942537859796550233744627751674670663095785115949789846193516527279262350210377054959109170844674317237520284034759167140586037664961365808718689080253664108052043639540692987401913275348646930296366546238579017387825808439958610855872171653475681262797029906796921168557690348428009953538336035389732540798581963169172668199096710775209868553558301177127527731122997918754334358781800517955838604621838759182642906997737366372078225071100377558345113440674480017930138647638373376271653681905281509766922298964912905666957832375430199648129647322145852602401250560314148637150042311435005601703968235924252595666995961221302489092458152650673513106311456753428792872376716642500494691265438736215265039141075676710786934693711507906868343098207120502504647804364183961439975519546773673244170772166203596716661434133760956114517668218512689512748544559505803034713130768857309150544127221680609385365464065811388592919446548943371597234334863349922193672804550062452223955608834950117586699580181655939921767628083178586175897206679995024875414391188663019879777494677805816873747729115613562743666393222203383846226456740863954570681934195047170935011046857112825721649690025032901439080430083898601282640371878640701284676889785624191659964209979054455451817265762630364697415603286966838938766428762030252547132988540819474471247825900911987698523582936051445505423019051657937625996048556871319497099808726864741065304327438199299970011520681621881362356697982887397574623344740025283691490262171699063665604072002357214080086672204634025988359191398336647036232222290849532560468206226456214876209859153235338620935347856106095835300924225574969825230982043766991447501782144009464872777736909973112074547278498909191198495821893819846014652739434297713053750881702308343385944453328219317050040056857849333169665763769219256171811020232156849160234160162974436636875289004031279263929353043941174639926018607530184165449294130163198816007941725217849648656935130003738817509973691303212066109985504456682872144088010430729906917902018103757186871488167446980906884912193059849120298076121530842257560010089253360784349581265135496257680394165026467542466204979331664483625374163089055745656811449269975155897595009331213034065815108947321298126958644282994341635008830894960606349864514034974255126717342825789042698933543555026210263138741360999392254213501527666868309065615210740379155007270276267598476306677614740455890544989884700001161246745892384282938511698165829705328648461023763613811172216951180337424862629464950177697413297779171603583310149614542612271753780522265112602761169444129000021186484375084100695200370526395137805893845059331736047975501678013804630644583030322868519787287729497027207766504103987507003758281849825463733421153929282448754585124240473575226072141095148075954231399734402210248632650606499505554044587779811421832919462682360393079719644389957837099254750682333224051817710379644385517719368751906652466617503419489346249858985451140946456813264025916905984099780424849114510219834896752904012988544534247089896073465624924029761767810882750206280716949222543979830804981870978593410476784000520289135636923464433823851422378364796986861729494936772945718532269853579338346352336930839481882705356332377862713856890103928873732538325706915347261963803771042044465740371768782123042271074869644738970246215088953303208426663790679264704412785614010211251439890527951410810671790619137017745823250248156856637080965873739069472280044428014218460631543097556433625202377666043800135109477444299162941318477751512110248464588299626224127334383545980746736687538566302470351495513942145345691893736896193674063776959392189448151060286577008335860564294750557017375462789094439352362469403538362626520329004350214966389115508477912391619870965177132934616416210978668764144257792198313891107595395710678743536560381793409949770503373717364551649412358738774804605599568586649407109937374750093907246240105621092516471444285903482795745037350886583372186609544675774663546799877923020928750856879928870714901178662742254121437786956440392539409106126562729128018803198311280293691977036250878223921879117095847911368036315692111254972198885098185484096462493111487699242539663041239812534608223487916985377933110056662259397333953082725984658060272531706428653674685346708433336974916428437449301475774584279819845552097739919506947788979904577828938841616991382675775215321453311420715898798056646185466507784701170348623465494235746683062542360149196513256444704805572272905758401754587022190460155895032172853201338334000874500637351154553434915973036733527471690183224444164408146944965888138416167619061848519655637583509229402947941079046317008552292509618754021038550753793566409168345802984118087875001804068869541986725406438032871333400027718922004193853348849402273547048582482483579942214069954731990680579019273849933163994256226117985181896283901878470530910182312104378525390213650423859056524673012794763731267336565125655036665458961511762635652108721001565368215268398904750713795894061373753158365155143941210687673542350397994464446471418460087847773033118645841631807244214062179700732129879818434858356617640332039235335164104928711520143868435425669058471344765366758224136042129705982830936467281858635482310136768521880865774492434297741052136315600641308596341942096915186264316625997485275837817501155076963064461997017431740788303562971394878992318968247285455470801846627314254040449701935512347273723908171460583247337608313690866948095601871149457041577007271478113054596567978761505194658761006741502738149809778561627575987071155201258293552122760093239202633184058125134182235951936794119978387014803665138773017554410646596442149830051788201976281895055488218941218168098509721006690210699372200064020669877348311353701676160692834017899846209033088525728640738721866193420072801882565192910376008274134180779527106907459802433104114777576240396611429750700466616148678110537184698564506628392092798389563001893810484353265203757125346964088750881952693072802468989959316849971666781783728034293381197945995874123884942122839195594106676606467773008797206212671975703560305047702419572260021785770664413331125151714879466051641493534882028430211220985098836455569816274056884575729344017165070276107200461746745090582293891775331372101252312839573385446005998342131349132516327573491549000112249368694761979748210273045582771693332774259145166935750184611822641284610056497251084305101383720757677115177273463629558185907166123148958523846801632734553836766588724763437060553695315835454941460388932455684325898393233717365358463009200760494082249048454745246805110482671969778181476455961059933878210579712216526842374444656874985814379373273060863300507399855449431013919142970028790486448428282568188846822965561684342494663087400323800391024531442009426796957249821244883225333499270591597739265968614470049704817090181520252550948126436591753977263314506667082459908931133474981119424588239755113029040363540281864983181000925186498275211283856822900181786377683059303619004810701272435376106499783474185275002421729042679087993545697139060058923700270348561815958742353551026965283918801593432954549172668637944999719934451195262741108577200711393258025889157699668860939119941873923436460483780805734609705661682542521214851334604285710061369322682714182739874685164324988252520125369621848818833235081849959022796529637107784647286612253239584919258972911302704577600375076540415102638752351612239890820276158684594737095063631380558883100310512128076548498062797694461992825773257928784820526722274707422625109109277100449798236046237748211084176393774423664079931316970259661004421189846426044324553468021686888600031029607152761613857458067938240923932732326569069029794735713763184075704634596215585364820434220836360329392133961871677537372196403753759176273334374304750608158222120010588766693888714378701813032716848987769744160352601939818100409095712122740091421689088396513262723125049270391803144580711719738489347618607288207042291673592958369039624596085336983032252211331115977359387818682277112154285109267050827360825081880236655159195335422651633445536600060480391978584128326260105781703241617615045522171144561606612693473492144284021012940403150863486795866466595964633605088178245490744178600385314613384313928615914000601620239598451501492131243874738623518008579514015061115080371746525755474247325583952830968678436109944679127101460854271491240178149399073270885589364947557665760416125229360165956874808743123838373433110255237269302180665168758278458263570691744484328855933315854751705528236505340063314800667282448165522952317639891171497766135257401904531432245120662120828763380012965076295336684996218758635509972265094309204977815603498888327166699927160295104093315626529351638996540173227383772240996920128495040443789518801987275678253267544955481265703176808277334232884039865401149047436523138880771176790798906735012375457935495801693928887346169774560327639255753395889539567435787215964302031612665360047999902414766706485842249852473828694269440530436258906857985297545119707194350637809331638138663564200629072371626400171309161669895305848317546830785573660870036843120239772916900582254091562151176588048376540083751835936571349879494191886040940902891425969602511398075235439258998081693691809638782266368878992970948267028739392492570501746895807036292455286190560678604587390997778668981700512053183602352549265678028314324865605911186746728302089637891206722565779868940193899267721902404892210157993391416797993241006505234491267545619267429062694233557193279088127867822692798605244865746570212818236353707752110116746269251257010875499780267536673520525670761190690575180073154864702298655329236093411161232042100215511659893938924797410045698814017475009831458792930003750667218990394286161742631309622952599925256544588186137895530278159669780042129901603993744578408561219142180088625984995645592408296751746598096721979900653489212543964810497717783353112326388830235680670571453932561538885201999186509736520638539780404050938521715159040487322625287251155643288386266058507387091364371772131786799632863902534828948272756811430551913599873377847230103690201515955371303147686259070930497942019991319542116834172517398382012324962778791931155398745522674736359400812552266787374655671790738684601117775766013594341073949630083549663602932132208856042419887180743017150223531904759277047219419871837498069516770594915191935487692111455917878907075174535900152294355202728655517057344399101001387947892349253620622959554356018616861010992818817280173603309089529023022007662321227321151288289723983704576824780307676823734049657909772198401325899965033971497125431089265956816465121277889267199286183279191905447700979051175786462606097193080571050693265017252794586119121796779562654221824905604086889322767703406556568654196083795022310395196284786490874032293392467970377672583183773360392948896593541498872389209294540748881702361913696282028234367975399497817546215656641088088008467691915701194748850323058900532271884179975272858206072204502325117191752091467039510912437269502817372307565138997128863849600285489237341532066809655490701259207973712537863483616152205391141465330128001170853123470451969803835022819146373753531944875387692875955920000647478334105772554326362808837634959926361131438578952799747478375712852855226198529177775434058127351935592831125686876741017711461482730088320915453593495129734493958267331011507158807525676192564110900560630458318072368895417410607684397708024465140143898598216394499756420132324538042213018256675806400366642536492225006058971875363920602228614942263375595042268418475894721117432697801902596743228975796321633794538985186264856215110482650750019239823500920842833293549538279422620685218063817245261874031982873266193217267614556378670380317369395068032757581436591267702140617905825772147169057516273515050698925091326174149091728029670315589884962250854026373901776105060500475656260017954597322896595313478032588888918011742382445556880235034149587239745653672009843555157709707457753587798188289061160998761956814351628727202932326591997494034292501800567890153878445179500267816081387054260180551245443354599591549806821099677680951346395069552611726041929750672313476079053431473379606134316658174132108315169984892135538684117561412389014560300810179545178860238178039499410468425095236927384187933586330309531097054487607974966450402916710737138898630432005473771086086223689568080935268681645710418114408476899617585107098550189907815295291114001789941927540214417601048902419879987295596208736603229580865649660614175009520662896514071704366016879989334600642839257316965962365669483678077196789625398750215544478045857779357716685853401490168921290273376240032105333618875725640512020280281692443454938209796513683465198114757128322529814634376091500901060219854432066114050009282716167324396337936632011714267524479220717087015751660805292993357027553779085989545812923822829527397853346353914203962253682134856257706712209439789059661468329122877210547806604412243198359421544049511599118987683537634624985517012811193988503663629858762529151915562663963946070305760224959493574994484418538017362768750222058755118138790919502162849931932332368885457330084291751362171492089464806051157974285160183693354550831872760341652910533018300840694914037116362251808821215888285552199187507529943967571252529412749506024786230551675854838147884021805685516945983019859688278560066390652980648152170034470809455985483041754089476166051193114121660830657745526715393242139729076999210333231914010228608729079681223312267952618324992218157643186324688437184811319499778712742748564782872061626835523823582751901148775203764663102681064933679574482022221435838441914886723143397901367827587762936813765720536838713267083294849271766452489416905817275725118177847933421054264868195338165111304835238609096678235744630391095807706846304655009307435830205360302166648341951060296384216793638822203413170008348395026891907576579802129325952232762860329973706798088487784491304790399948212174028467087041167844307465009950927362651963717241649085457810448394638020659434009868283643132740736609083521873048433362826297704287243446535556636970349945615806721089858392034402101228619880683888540661602004466860585444421900149175664554313684823373923442257788727667531409341358315683053119074944204919827721559701425960864672572024168108063270451366173717651868564741198492219314517207092749662012412735780502583536016677916287309160170389136027677603598917017562790310667039135587855160537940938044710037025389864731431501824108552358752546341155774349382587494618116406476103936111525503100211518226411166542521373087793285894977412293598180104186125555869850192718327093423568670329824435238459168530892745740249243157384193495635145909986427059964690312919579823688204861234231802613114878921036899743559132729425545990040249179486671552649077524070213692103387119775099210674024498200752876829238583699635592525484356361235515049522876559369513337080210286012816796624087387579577439004525628842921199125607112517489607460742842562845919802537177301725685856052610132964928519132875685697401365657223208651539658664975613003101197227374981943424466579287171105695140828971371971041601004066390641593363776371240135613607161282502305696737314633698254413732836134191790293249427210119583186369019647966013284846149882097032206996687541513512484032281355637755178016067283781055679640893790693789480185269184231845783206081499708873861204710024990924181040622489639969404982393940232564967675601704304359893283969861034032556222178718636928387276370687424796589857693677016022237940011726149457632561601399285383652070043618868585196076337785135873477274150507056916727012378597454648794577701407382752676221982510679748845848240204688133751004861001846369869203403352339599674083018281348095359479769695407650392958855488378169174183965291748681667147105676241474915041527180888797529969166850921404617304518362030509840597996593377707075520607604204358770713540579801488622024078822995396375990071089219748148597575813531222126225962780253549119660313402110588358784465326369348656525873171644520078693964791424732965271138220696948094282472258390697728601541537090005486363652329220079952696705017267149239439259899876098852391237406258694089072870228924016499010011269580005013103064651980411289114855032083326758739132144455149538887563984876598091177685938708786442484806967720588213428510417261378497027053388172147188681100664645824626886982789651793158012536372269201406252820075882567873252112964954059539395129625848222478196360835079090933260678949329198344874144921638463741202310659297121500245867450412430316968355762797646010576640903372928974471836148547800634150342753209042774830691877796548385155047118389141302641281825957308505149886445766515862467488935123419375821036878031666918968462788948277876397579080884492580933171434323583851199274205132347897910125928846029801074561570001416671370102759291931239470183666153663852971368417065850807336659972794999399133855118205103296340100695562638714068046912216613013247058390892433799706260433226806828867633176825853179514919894348842269940863766994435763757611758875870444202184238779185325473810320576131387739852758385084502504982244935580893950491117916412738086100851012065537930256108472084744739985951177113199896529342785839992254872646418424834649701912460422703225139808614366684276797328281814530983871793510429692268506251063224247149456286656701653072450301340516683798617956672924323546412543370014042528891694659073949042561160076258380539174602201294315764492931889468220067731170215213327019437678530562668330867271594373873755850415148862903352309847583491234768108962614362488697556509613621019359422529631004763237459043999832638593766979597435338920367740625585641301053033161572961796517378520216329035989430301185405148870161401006367792844089674500705048320220738996173091093476902435031710814425963919941839197661276238773807146799066052647016394470338422888233192335711172068085636657114348827773754854780514123821822018419976186257789210266513215364838850573960186827312981253545329622004239893597870666386870532985799996734335044664677892617043066943617270545397458519742982139719663871597048010611109455289513209036149052902055874704421373515230447802913946716289659666748753447544054962170695465631976485916085857089701481481207508651027034156655732317927537375902494475036215716792888759246518672696662016361233347730236638769168077299160724756910443220009202847345486108131628894911302007826263720332326435330283546354530231279408446376174934011199801466205404640902760207247752359363405060770924459199656802245061444864919082266465885360937079691712961474830703472582471386684464575620967729070190360395665233093967706500763376007985954400210261022316702877999445842246653380545092503818644458974368021703329400907274175782650184793436384456922857421617798516826510065380647566064309909952687122571013109471086642998639148376830341485738012324099378914748591379214048402531830888348676969204892409850316702426516671112641413331318378249729579083355702741767753067661955210266326283329612819973564071699556668291222635172084345272277538495031124173478268939164580330568055416831052994718861165352179708397193479036931966643641353962529461036489998793418208927303431962224488122487209154470684700160156807795179558841399864019253739645193418002088577381006298698933093874154325862141730837757713752458276354447582516347600739810508935424845310367687131822025771277842644820015721069353587296495127816704396424276932088812303028394068446475329678505856188819805016073802911934079457773187918529573981115266564565074066540369558098475629686906335285042167961779589547862428478560430124662735674602269413319207839931876639023287617729339171620137797328505042890762177315558486745876144239055498935556205843943907889284723283466168341192942123078665785000732940472391233811831334000237122740778240211567458457748259158299159000339898198800955452901038060752228685475155512167493342771556111639755552641143072588698284086911154167689706014049697954916850250632261107389352126455716619756554442999081938281027258193404422973196727675691011863454777052527355625668787754497777930977408836524723016268736390604336419851654651625992463776961513888405462870748235041680701962475352443720073773603523178379288647224155608126241468578834992166664744294639477032120130144479901964548648592716897515325174908177706302201551520917309016214746913818642079475943298340812940505988888504357891667054953184273001844820204138719130719187568400633452953691456173708033585822931030981454367284154843636101178823473451041290024409761877089782036496200890689702485878871224846210877990061781773269862997987213918117981177573104498493706211808433751301017562845016213056373532078962100384471548593813481241772850665938873284533870465597845042039053288549955419192478609421690143917727646606076659664096663089476536989352276131688853328988669449216853278028972947508278130184308418854474761823225336602608730081880384672393226901275936632804384876201981338578384858266664137132307014280773692538306171534732454575817083954401615157457611802366282780921754995784848216674418583899315640052801124212137012581021380491719399322659336912389358639525697107922025866235436804759274380537245162256081131176861960907072404592032592699840908167832506926468434227629842922255728359527732903476739603792320162964249128446089072199338728174746416999012854556713742293857281129539035692493225469710357716821227372193675400210194577976726364675556075753016277739761757693649224834388463327640516270826009059693406609242080791122065729772802632057863683353100767866955814688033785627787701005906798241163584150793156724875914856009079282776934387767344333406513351461531983757496278712808230457152392443885628796221767236025800015073995827682857262209145093261856764042122618460493191557384463512087244764506439310679340230822205463332070557443846451159435421627950345228038627561897305082242692062601522716674742749770234262377370106164492850536449462713995611556300283249972880248080038853374744067177869446243810982338063523696323030624119287327124307260633485837674632780111778376436109235950031120168061589663310366697411934446018554260163427066496442310129342852992642092904133445712162765344803450864944280937285612344301439986871643358803220292423176846355494801455014625126434729207769500593265092317755245263424520105719998150943458168707178935652761761172868867511008560180552349064888307576262822504034590215175935540620249937633867870587944309692966542699044282125450168501335091860989145347871613496634132606802682206233658954788577672572745160533987120446902150039991755164476277545321001414598227168844343870261981899812390446023014975291243065514343742228000367978985681741252671317330955293918232320425832562701539604165878431139797703001381056561096386166807614207578073915359376956203873737042776755285236388972158025371942936088697662642965062190663697587767109334581062047873095091600964610811894481207714446494020984075303753528914717480747908227996665849193681548234327065310614891335210841911724413944170764510261433760457466158647355141500403514125651304980776382209053092595935970434596245793936932791342822535170008046134376178909872044484432857830047629360890678192732809413563702268909583456959939254801502742460843921897448894154721230008163493030624269663354304075744766958319292168599049639796757166292220337216624693275778637911781487972238670911473831298861186715322563230409334966038599778843830536096071478836485406301939995086149592775056170447490697563775475368549187181103147006644978473097493712915988391619301207562866263462437323524039577374274369735275476334966262554305954810478360117037848843381579112457071844046473130180263871801592527249385740631640801231156386082592375612384468267115210088807171505163559465242466202288220755603760333616250926106281434019133558985807764803342277821313047183715807961020733943342306868182745935749962731033476277165921887700941928652655917378766869287955192281392337013422302637949147094015070120158503113422642938380407916760759301375395186031894061770224255198901977993971583298825502523370798873600057790017756997819156947907645279300750355615541386869329056717149813982218900079261471488293091764708954263197335110130316637902973888647869797726089921331824818838993864278734344480720235061131288152593443774411529336559738891194572977722283446843761222272106679107862211691893739209161805676301413990472721985548957720354399768988572987013988555869444960671039778167688024374688508821418106517741780756045486805406137485727353447714730061358628374721311323889026707193672447185832337787101766939186641842590788449217011955326078862460368090918160919845733984487151599271792562270471571378490157411622638156819354520040352865644285308925869276842392675434702979686653061362203576007356691893639298775469129397787944467569049592251270985738102130286161123564713738458448457816586818834279660582899787901671583691074230191754883089878929783056484313391301097699678467105942166952921182952053812433370169948159488651441067093011495769771070764182421690464062750251253402643636543574450446250168074089241251400255701043832711862591627930267131775552115197529236986974307415939756770740574105361250221111779986261892118103931158010114592903087040841333463067928745050237660990823826899852336299374045960414116905443617610735987720206302470620089109739361788353933905224337197450633885670378650907768656243712684107728512574633789664728598234237749401039442275283079298993002374928671921708551033768351871233824417370032152610798148842198066050538378285819797899037989557917070622638142166318924946892261051625009536738314782852339979088625957733538609514626868631530328771014361130001674270033069400376515536496274249631567332419874715854380321260010643622067633218935843330510261725180822114406220732052522806398228674991398902070466116656757033022351550661130145036066773772338434519560316567237847818329165953286846967837200394480252573984635910195255402185280474527022235163339714405858323277085276912991852095550404586108960530420685497179276691163414720047649338865815071735903182687522978931773162571081810824535106356336039741221210648883436512957701831084358245435436767812934472058680134725265448292701562483432809129103774015815293427462318022991032772162599957263794570796569691056787292227814759553163658761823732423064587980160721801953470278512334476488900983774872719679176448040738716154802671521749519032874955465643384294438128115635312882829411305281674221910623422016613873708440796627117868700268548841186692101869108905838238628960507238315270184609406127177808087726448568240352253160681719818292795374342144000307420831465978670871043599550395159691917868275675665001530239799822282445356551999048928680298749361321553287320367758210378057229959900729309675047319252197943882463233523680033682039613237555526918687221963999269688286960898038039153902001754231268881914192660768312345782925827538709751734719815415227981745205627294737054041466938786444126154946244788837651859763551146752211339453315755772977028178157004851144332948933056113472879208332914548444090735846623303838738301975556288827748079087588166173182730100233252491889222452958106626060541102657949887513547871716458378040529348578674492588398421923459586147304563512053271134287537374252043380985572231681562557475092306397315353840780760965586493174956038806939535885100841727866847473878680744932690897367028754728269207232297438060013312896381873309231126741358100560134266597067899891443038227708461458678714718458377783127446100101556595209768114500112282733542741587390287343518653715829042551498235440500446821015174280448775505413006922834236326510156413170392945320247687989588875056708352023970592326377959635473281191811138540978100780056591315166379156185894311530443926176440593118749631002760078180305524999805412356927846453733472689444496466096877645159753718963744585935833629878538063627980088299237576456638126403718010992591177812515980196125028852857619449738920822959425773246865115170631660443217265895769564461002576319966278676549057886506015607835262927910299745641322310616650023639311505007738148025718146011700562374869056804426242946101517578608809033367508518244091613922460910540884311672291666691737492983203244431555863874788770234062800694455542881009232135891494485870321649820920500396837972058985846025128286638012317236055124120461348225477048195001552064915747300503949410883466986988831013606198392428064248726445168735074255033958482862985539229297322650342175861684864025910523505783646143690625534578702020149459720473333651342865356321761078059374878369782896418181655445116645694822881099565477373792232270876859436891864064657913530696703211106781099748197015009827104843146452047318088527224296341885574606211264645492384569756182366085203839950068706568876360728165917237688284805472926914786861721935507064573967231862923466630380742963909813842136709959524037994603982666195387978978099320521587497565228345610928968193000359336458347256561921277048958095111245712147169438216936890693590182926714815286036643970276490822691306714944493011645227207515941128990896344980800436338759478339366797141494597684919340704320944602631331841212327465487470805486210982315847295876505786942258428159776448762063272529375865162580271768419615982738173441959684809709648440365299055988228053085651120241068209002828339675707048879862218032526746168811904305129016541709549291394695362617695170617954751953527503573670760001466864800675779127746993053275781063068553975935694404820599253366313112690037326551124656110323715192157086362332102587924295862226548482121123478881411021136692300886856121505755978179688922711057372284462689756148628145421423470141681145137450597340161114027600872822162988112229878895105542779130826659874349007190267405673261278735290618124033287055560320459118486480637246895519210443134605090706758850428800918344866373211069729127163255119366453577335455886788532872119810642828020479509438444793512604899310473565658859715059684051486764612366463628142582692115433335579707262124526573145871223812812103855528719638204629408952690079853205154531594106907809711189935790382769563706856626641339895938422760661811879089463980737261756998429419811510448742730160745247498411430684193529341124150124391970438122139297215068308312667139996205781986788779497276820837608787900324978882533027474003516923754503773208351047027386899138735348559856015278132725707515294948462643872873992081142890006226181025675029659558449573061898393770142126964076018923973769811277246875655577726444786698465223450372832137326931616481314387174386707968051996457383038116114154668530394274643939567904384758159585892973069611296811463887458733558547689232315135571152486187586636999388065389179186343776525370394536915228952966160645853360902690003798154676993972320485132135393206774492212317576268636529325247589680097716670615118563270933481124979475998058447950067860580298472165003558422643867522783584429044686892291115530865712065406673522529931541485570365209688267145405835365520974160398764842531374853489595319291252251443685554399303376969363945579507053773561898300606118136697866776508104309594492566599501780296876172122866029475021034393285568301199247730219883927864810147055936388312382498261795704224864570694358186346449610728672397532759886387949721795869783478466052282359370656506289108307055626516428711790217074443923120835820896195881638366500797666251027485186871551054724679300868419190917155237661850159804554351811862528094973648371900121998322482504300488225434435525069403711035428567835908850692457708896644812786241079998883107757139220538408200140082381145212613211672112233074956068970119349266406984633825892720317670404751122085444744115727170782109402898525039766411144544616627916303116076987853481795010105699942052528126981787877507791076811469251111988581961285440105442985082723548404934344389709552300585621368420858689916610205130396517042021906345047917699095021164018370321798376971462170941730568207482171875666889229965789777613160846698817885646106798906305752880441212173359022201879956175175634855085596311348310606768636436533431453029516959774706874296698421422575914556987263601820403365252699187849243235586625610688307586893565423545517492391923100189006151060539791357095188187172747689307498180831599903986173322784634790139793306713599890018800164141425772278062362681466212683771968898615797767364160053729486309355206639382387876066865352717458704836961935957696744423225965334655716901653699072092278134958088733833575693505880987127957871353892577106419531961225431445491940002711932380058864426531105901257011303170935489790534639962911430914779199206928853737343825471541701559693494888077171891948292979274232440204837159210641353270390054039439715709736325939512696718432402943249666331147382837808324171579807546244124468266936142668784758612274611448974500689525595690119007451536255602876071366583653574285546107944756942907337084490590094400636185498968460480952849789366356021522059741843078314022195093273178375998688079134669641951378862064842326838666525507969422353704275092476213361363686653883511182271682235654045969634314527825474693347411551672017284684378667929832446518748502233968457812928134558564538332440491337749566917588373282647401366979339151031408034827193447592439087594232752478430248281433136694797261812905323095646001169077926219383895194354355902740323993298710106866405596268154848926837605915460640301457850187564566208568726266482169513882206435326467883832113693744438775351808533443648252278526789600125251945592975513548091930850929865734213860722284979286400656075227458202288780812417884359841651991788223713008248748841156137206678703473633093496182860583434595658740712964637531462103338166627970890948880771755714587366251571723799943005216372857057334910161491876784374543794435577608603458958828760918640361177858161566705402005873448344042900310501657673625245986997269880473749562294507043108997155502481324597699730717219460147786412719118691873092222281752598706306915124010429833329865413973247205300675584508169402997343339517892472845990737236812840049381268252361576904679884906798000361539448832758358899927314035374155276031708149138708274633515421163631213490077380210241012597049374721909215191554255716202950874743139443775622486971388592664474045083040936930830246492424885992548591058863848549320486843302905596926344666378660016687177106832754389355519386111830831906673524522763456471607037568466623536590380652263757221985073989222094383573761239885375002255635929857521389768399380977518430185988516395550709677080738906941920934549753437497947350321150666071610873815980237075648056833230229141613695469256476851205511034903043375050723503421046877577841592717845266373966228772511529985300290790995016634252002149118669623572575435407825074958660268463827006079621212829650484988775062504369498093087032369151482667404717232439235798263333225724493800748647174000230334420686997378736457874125185787893546295225578042336512314300189191331593400335622883270719527303637500847999670020237540459122801569586318818087907995638390103293753941253336708264199195879395261352985200473795182804228267019275632088484762976242739888012172606827602256559798122276485729753121736677549576705949676534280563155227643976858223231723320917094169513315621444695154044734679674297537792961989008686954361156305459971346463223698814871930994641044597608010629817785333313956966945720959182441988520929984560954235732420517007311521685088568389564051842074947408708525556020028178272058567132659025529899315048434148804288446942073162718452419593016879678558953596906550295762499098603559109380408638319714195760335827761723801953423339383015321262918961739113893702249384088453834085638011144018660939505822039519708976633988619863878498346076152090791373514693059814453455819583992302687535104832993630175706092114376988562309339782086237467847728888155669498103998387274689531646002334350290633871160188469902846712322949818298353938295950139767211756467339261698922281149169367103264971748832173174595772334922839168692212039903712540107906906567334737235938540910362668140534394205007419764699087527318035134721716876305096395511182219006614390013080766690219220503101500270458608622973049385574087253937019542565058171763342959514498927678799987165947106673408596099011539422411785194988389015313188569738095856625179409508806085762207668622564305465780407521272659915775790359448143298523305947131467881242244936314265114139566672519744916061756284013840854199165450719052374649846922243827113822118263732664109539304408714909677384099550343438450746011702776815427364038169865745546098243468587177116262984775675051798226342397435087065418592243084587628647540958978034463197603794120903539976313113791378488403318542899726493062984229202355879975946079412961676255576077265037329147729157378386262522548572790688013579809010167155446155716478115380314839765306255871231918950174294497926865293743320524370262297999378616721435608791691833632313912957151164520630200065791939856156349561000622106570267482593618867557674256981550713196735532064975284928677516371684899616815018416415533073080423125855216408500005039722017169136235016382980810670667644279752116841462217920181581188408579687686623064508384798406534643009701682469690360968666131140829858621749196900641942692108633913453239712583535512497115379540920723501368862551258947540735153596704750265740954067946885133364788136523636488481397965505468939850841597128624773229548579324340412608495180228084362137971427141505402639463482193775198146163708665312706716262589328275096568092937881706879583445601280666958461915400672978750891498966326258656318495304042994895672322246551129426088248993804904982747470236838819585844081254589316072214216472585259842294444269619607115766006313441096237388578998949066065684399879811979002197532114706174161012281404654698789795673412210918891608438931439094315107317205418331303090501944075110036357550096158614200030659226923506536551230316995612783125579659628185335414826485282905144864615611937927784397391846120017359367759354090825796270520583611553830565909513163766017598563917038931955281331883952011852064986932947880149797747534079584040842515850017021071224980667489152794324838892482081692840282787481923309600577578840685109124097581644591987070820262306444369873279098079997478829837090502716514851013793476890313825808098310183156214808065528436671834867672645802196523129284564648822511201559363952704809448556136469981603145626983408716216207481947438654536521613378235692517656245166143814400778407667044180233412188888752240860677137310629109917741930994343973846787465302360297366323605052220705823097520433826273525998603862216064052437449162658624449409769963018583770614448418109553268715454582058162008818724190089790921681829815845569137187586724480179055207564930608945110901225991621661593661321014740841774787985577845819121695414939416957116001408548804058015776721346973948426220791375077360773540538847557254262460654194507345348840740551601837988577760320586089433039994475648709227041901299797772223389984232505572646070861199909431558278946163618114865683445312380156065285864177840155802425589606085766226493700499981715327776223803561308742581176495898617107211543563458418829019108142656510468606265440096925206967943223436183517882742957951572462645723173644713120583628385361527511265764975098384111426844594506210146421990465661808803055865120870361769048446189130158451710523001163690386825978668147357172636785919822844639083983317527745977777800891916417204991597254247678248709452024257567039902639851408731498959603167657110019531095800131915231894962921043199516703503682776543062795931135422240546920026284910968435736645602325860345659070974234369962988038764282777892180564393063341125538662763843062710028200749939215328509218782972031827788614237767248194833679037506432611970170358141012375265647379162698012077596531131754995542912798091195928996970083308901038802925972059470851634488593476141696401128941415693637303397168129327629985011156519235465890608581088662420540099859124716849209592492149878874940166510087383758978120460388015865749337396841284468463883262560505342118029649123125885357122150857565505304595647530259709581520679714834656771558224980969307390671032410122666311624882437442958071438640300847302611298753790911572280510446507860192707196194285624828865055761613982411038135421373600855058268107035068436611612426806511761926327993268223446947957339747541661601744527588418911356799119180899820061895265835298414881619477647056712992599087027082005939057722910964690476222174158152234017181064867610718256709781253573697469037691148027906132199426690038553847202455519450480009388321362992080864127700528305769353840378787923874292941484753880729404558165291447157834090757083178509266048014040126278904184957837954499199406418251704027725142210734630319014480512427111038930158229652520453995509626369141206936936948057818565431842740917513729402209712693280064374158794179499006287812203382974613103735247339560975219015356495188948170980407412419529935983687222969421467366593639956584844940642730333874619453430093834551700519860284799787242276058811532810520501821897126770704342383440117757636621943263848416426138943286140242649346156240422605226784819520277818006201331281115965938001543604568695264978606964251462134455911928836212315838059692045984646823233946951138513330242122800983188549729661682353073973280976940821561071577136520349846362356438749310334879242614421576867166614499854439528880863168636413707835446440757331157300340922066236168994575884040353010824423489151736290049011200229809285942428131850417723191280382297574203472291973101336698975430318014711472024175962058195953502258031357743075597968782608519545222616792894060578686064370825625912540631818675393399639064192111473330136543589409653642710488544904047926015428202731566120859472713759976906198339702586564332963743582558514376466916070816623046943862741198706384259055884095473202760984906189063221564336450848140688185699470752052124256075134630337754298258091742155755419104144616314724140032912450455906955012299831294467851775716825038481777849947290297824412921465367693848107631217341398382315989665315677297941649638939617151418489774694990995091205920665594264391978816097820914060437974608717167979672489682806290992499188653721720607170152036102793762685063206262769000005762872975176530779923531002438696712337625504657394327537010468622827733311386251722370867954834357032316133569678003102849880686405934948726255457135758878311305140020998705664274721749380241204413417395665220399170734389060496314354868898800314471364048248618225830712197186907659299607487909233376235531834966866780075877086357234057183965550800819797109528350512406215380826430353788714100510228923571008926553391559991755019108914635563082111453297000177085545462597760109474969353666700330608089165791237543483469509996478700548456231348331760003796763399539370784166182930086247429126864808960223950245779419581719587802335457208770676747667677712621189503049558229048693081174289498600721149813886417211763433758083764168777742677353956545737722968200486917603139210634956258092795169309597328400074930034540001307241876836634160564385548741020860013747237421947494058071904023634980636227463015391057059169296313231841029282514491610167343211103182501961472468238210279017723799563301023000026065475250851722967497450701659026046986971521016404948857926028723696335228991336560349396073026236504616195987990511613606152256439981413070386443900439166154112869731224057127241831731106461453098962143324737812637000846497940564545294539613301029110322097864451896925495184820731935627204218456135474959301674805266298110440400452690668301368094315364418423426094298989392364517308146029165016677661952871578613731740019070284061244807529232338246388792946398511915149816374157657642002701398434424794238290433257630105124455037844525961068343060658136049415880105607798420279009037821976378070302283517119941982659435823431842180988778389441434988995971084158987809389527286090317592552432979366774978056927835239716833988907462871280596165466799965569723739637126279122967985029543638860267411620784427881049979599333983563071170770504997536790964533929484012400179417763183638874461618401636552044610652107774166438103673841279543524292843653228371587144243232766654496614446348734103162540488596615765312591773146270866607738978904549675848853641315035427615892503674845012699447775124186211709380170428497162997465146059099864011106557668118990692516607363742458758339070618666834938846985620123942703988777819901308771299330449350658642177109684932961780866507388400335231648628487097062527421594883216252373591725422004573008987430810489346958961599128735645283229929664253616652161712226809756704927118804404171208742859348563933732910784457870204475850816335655592267121467968202052851580511038690947351776704297618867772746052226163910701327379231263092486075951324039414242115945096404320395766653811404539417695318013094156431468442054305418155391395273459806892079862896779281103119932780350423947374769065563081221100400286713345319479469305702144410014240043598749314767750724137015673619962804248415309340298633229229236479549186009805433588361764555092518258526162248045163763352504339290809889514716598390493958687988861012329624405587485058027224057085341431383537435992560883894026146918853114996977352096102174050642037478130021362959816254935694620140124712294680673265239828468999488829878543227923017028922768051981069701001314855491038281708754045424769839893423221240246577833996212643121433028359076349054901200430218058084622189319347043914978660081429799813514288238602599589084004563654775205237838332260307695411831336610716636904106886900264118551858564785724889700119161667195223295796484003645940508856128722928282910168020624661334217683143765412181551476932000516171242366645553333121288567466367398244016041957283431467099440522745984547782154646335046806924072870530003425427356418292808102246921761215411191662427614967266257880962977412823379150470984473142141168767340451115789404520871655257856829664677740045157914912999934860741961355692296775342268734578302534250539272360513612810379176556680040997161352047594150253805842601476201881453127407250268129721922822895877723745741843996708527337530255130132862108624081800569368664633424767733971810806494917562772098788507013935300581028930525890953673458874107766862021598432205676267851698446355011530614767230146225549785372611994500760705982393738676080694517142143293917184230012249713166101289576623356717770423409327045669189435144903588948859728748818943383219275802510324117101964231858293403257631314666649111217083988649448661697581172894776789433733907012087935771947255191266584258576720191977622908587803949463563680915172852044715487891507684619626750581173816693574009446950030131841573510546250791695409190284577025164685506214243688313355323848834188874463291122761655042499824089024489938097036005329472099133429930083824769615125360620239303227760447677527472908248177737971981109556580656595152944936963499601424520508023861112734425947512870024874271983891482366210585392438196924056246943398428619301734981764292900231632135114917757880951558960011466553741833917529053237186205922612500677784205608089471325094230006753805917745637155303148727116353096399690060669528208832624781704174406667297079482151035713775852924902527303406254507979914792601211818298444378731661219981534800628744133296820558422482928046061027184012437603830251974909193495007514405596520650124669794826787709750328024974249511983412395560262426006175304619624673510185789725256053597696859125846008952477775639989966750720970664000952542148811424944842501013924493044729649999826568937100116271867577904373432069507903196685766405574090818924470577560767962944646974243370224950817222636766582855689215161114243987543564983197483216959658972959922313027556997909362055521331688878316261137762779055530378235524703933871637259841861210662866574931337963312142841295047425522266849399892609032708351034857835665343637035805709324268565466280782491228529955493657874368747295770695209068133845069040435058420722021189681338847213562554845707947468313844452948690886693678129932761314312558778904190835087832321605150546179646736478232232602192671667466145753235894139174908493638256889000893839023402760144765097283385872879084431737313251930466433017473875075838947455941423678138673039323032903909179532716653217542841153223502241206501314240333296893152009243871615559204610522957506590387296843700450749218699598815408856468894431962280583483179266433886079587244376840473237869544021278939799477151674924264967215864737480703099090143474961399308440654132852491768980437051255003858243907451647487926801605614003438598310516907749035625485147982250634879837712968482070495238214224748227083835931251684572796632283332421009896834248410298510312362280755728062399035509702331337174822430414629948998546401115137818532344841290876119090443766663235411807249851256314767958553782038315259815068051093786930181977555273612825114839952846375654858856596127475721762355594969573550571440721427604562896784385059765368338101755226624590456474113850697076972670853067336647267979416452279859923797054786836482481137823224178952010309317546788072542648214351316645049625043796119218196639326752559610829792792657449165766712352345705139337239465460446495432365977388171684105284602761849477364885737431859470905754790625085119900951983432421474071450584072400407867606906307151006044732756484609242965942113244155132416473210182954887371131215170409941848565219742946397312982104105705890455184957679789577175640091241672046849808335007520152566904740141961753918869658175190834572751443423439381664142568782125973682196410789933343274547148756876796440216515826809353940074295124403526016305978827841932490006733689239626913446048844011614465632657505352706431536309125110238358629093843118524747121257550253467132525852618981848610306571344859432178504438565684787451160906479217134539101102871236119956549250131934597867825953065192074112212075564627775766173858756185935809921491662180716125292523961487981387317664924883450898776102267747863242856456775012649234569913170827191957170891049756970241648657114561836591416997692501261246914541891370351623793738103084386153998620633368274156853777614041928427352152139872277408164530172132808611085602791843365929725276031792127478292133957957163293070949357519658214298472831300117255246247001140507267553129973409239111325823211192084823712727569688054565396642573688137999086781061607273136147818888246402745042324568994007785341714165962666194094055870507268459366673003052439548465124024593653133967870519561512240444140014839574581099483025854085839571781980106812209084343024532710438845512827378814673876262236260014154188909994575064345846499493545972829173013386822537134825077751736434247602030712165954124399090695617121278506671050898253096480156601988055156467262139416930209320170322495012076281712950367268198814786942443245802826310439697467832789799994306016159382522185182111173464930236589929054897126286429955772651398864896783972118752902201603439727264083448378329018577366222819077371456778086769145776431627259827953501916310354875991448529843229231754483980785547579910308969626463111610822161668364173468363766333434603712490038048061801505994467326249470677688256300008762666107829872925289748703092120089342630903716090380797329543969505251765042006160337845139177841955037212721056347792153502517213273858055066414881617084376955636222920463048313860486465503560747560671453240223108438293648140111264769536041582041763950787603710346122166273080761586381412893933644016662524600634430800075352017972425313468871298740654037304441374089507292536267231354515369049498174429321789308838452880104524797051252396050044433231639854119157656987948780606644575263087004055948554296410447712370901413557484661968134657482764748020720525258912039832038679577081870431660931555438565757000372797589308985057645180349567175533681239867209561986129104977428026579574843670552845465622980264609849400233517126282929285992788113598256519758081920156555202024693635483742647702794638491470404763244286174882115060519994699661674881706045995255102451323772898801935636917535017091731390790612452390357973690904886979841270762160306377651554973692394003769139363490031512193357991189920164717759472240236368944357060875665650899571959179517521173828943827891688966923609436251659331631905061262617111513537543711931023428434732095694945748111801034956993715061074797687406033213844505028899096755215291132863412330538594567717350501294077136682743104539530183098680993799789632576026881590284348131137374562645871748500585373630746059344141982475987595746526556750133510567327275994068809638743283367622583317530100613773517344284527778953652822291257377637316733106874283825068334421424634743453869319394348329250137546178134074097430006578011163641487876091674378894110046617375129250448827924375085204736621477465329748990650494538193773060655652288278976549420250361754202184797164940994301884517338237572200398591430634084561857173767558508790466516078340001141377993772571820239554472453367412054158583067964303772774737510354135168901791632408504171221326259759447175015020308192588329982908811062380950738973963437809228600120639387865267006320979302567342474074370468895798393602483881573895063807999970652311495654429004653448022828584782467179199617953477334468655408314648891706524418559279482964585586132249592206381321024057089558308273253135546574467477085777557495969461193376049900797099977952611932179505308853857707900163985674294017072253861415336298688835898314928735858160166580373821773903132492126826208815222898271328010277371115796100241821819979851092729962952026735135177444607734000302593133448150658789576994212399516746500424898807922862880271448969383732365575615470590610337675882113142106167999293413305712576970943917621194769099879760119617074292108181359215202154674791795409380138313596198477325055932445863126517357151924818508730099584775246220622109313990600118307198719767937493815845828807006254456535935867933929874143658127171790461093191335884006678178211165996621900818370336516649330612757810202078732920094276590553584619136694718249554373665275408383330677956599742967980288231608052077452980065160866965635440780434277839846632319335726746243824793475343207344105077709018030319824577235001805241368924718592394456818200837470847035657671102898116059401709935557787652905149413488297541572423526401024557249793495299780872496372740139532888513551024953870215853233183326127285140456131217871395193133998865688763482984576554485372288704242367691167500715193436635974518562608854135884234776130427306883456035270396942133022457938954249507046019690220955697593753684456952056475915409889162379326128599658009725787627658311345029463638389641126625392921265579434888866231330135548432697907678321597972353910800859295603205270189153525986967424278172961133243806967475192268879962378034115675715270823691301971209564838613308110524060972300617719829807459272423188483748984449581583590474868187578770979807318207698959953486031039633175742883297984014812531982668192517467751075608841796183241561249600380353503379402147115442871814729410575586310062108763146878418983563478720727501911786098100227854826719072140912749215175970726263774589599659975434458000884986103883614435226463391902534231222800512218839423018174440823502311963650122306564447462230494543376247812150542191676601605976735605195725063621240957688049309809092245659482430371793363851782788011619431374899145196499256197920274812164823350011227668247419992679063247015447406764330476339308281941601133101707939958902316224959311870622037767073964141933830252746510725491077004239725382432806910335684018844088492464029152164092010027523759790951226956750293677000806125199458231762679406734025066082977215373770689851806865885333742310032029403826707310239594212695611433058360528707054764980487685771309613536312070746144191148827626037611776814922849656104502095910750855068183548054641302322834806582593576929772851151367766580567048701460958033972536096568901179494685998610274736365469534965226717725313072954252891021181531319550600471385985418610033913506660344445079337277070486043980256657786405598758020221623588758203670750553244316394606055408358085617616436949478431348752006733430181211924001105674257886593741888331046081398233128039408098135372328262664653267407717151559383257763762400140344395103508635120255772716992064062137610838638986816535094516883086469179773181650008303821703676499478372607685029722823938222625346821111360709117016343574189708232852430253654739481629253022650857686572857902780112450720447066408562195368577022416245267858963558775175224273963248475919688454921798717224429323342980878862284035961796945146295320120279637569197387021486910770370416615882065740943970540619431402682509041707990545424485741342604146314791196450595448907447726314376424821621048577020704818297575454754438863865793955111526236198787418597609465141874102431237798498025930629812705896134951359486210096104020328603746819345418298548733244915435975234278512299912638658649570683643776383716559837594814506203759589212432094921197651896526077532050473690473807692486630288680184944442833266955895810973506231679577706212924044105678777494180117000030628289795942814381091104663815676919610168087014658833093580193848552153050491888221335381793861230145724659823186583392397974546675245259756790263309463683183967423993020175841072724913471676353348225778494882975813426368521665951744849968974904777933677076538206371109302255703940945651220306756635664018068359691765563988065273400483204153555364683951778228927522343115515029767974263993853808864453811545130154893462971559292601893593097132084835029920467633136539926132280706296076042316752479175470204820854483080982579331182922032923112408609988055381352638892769200223251362779652558105969096485058438936453379042523439287038753278688695874975202487028302090653267288452561244744594517796015415733344860286217708556750618973601546225383053530754153151943230292937001320400604084931915605547589299653599247470388124836343486449957536506884865750708872951913894342081319153514323499433311458331453995090942241458560343506948412393333771343955481962201256248653636227518997904578600167676080854807661938228856988780106137236488850440401661243384172708944055975139207884844384431335414108313862708871802539355033158189445862463330288624731079445219430671308074270983396170908757216079902696101971864455923605613175475373799203931773555604920877323650483501539219796794441604253718465272992330600483543961134652544066876848111839918620806797113606506558229256464158844903910960745984330797302170062647764631886540960894762594880494604447975656773698436118582842562680273684264880583182145184028846021822333954877302024491728552761700808503529002371597663436689529134429449887167925281520474918612941400585160819042205912399961019659288411776231933611055514870352451951109828918313686901994118106333647988628616367025078872879495664533506405383064338401875096463966327544771876764335350507197558659777347642812449736303078816194467754959733364890632204816680038248834152961958400009760874823225280937694415115064725921653551654738311068925025152544614637133085750364161577736039044342711710411951996260538193701955722056742380557087125638586917490457258598490712247013378753945662950880274269467751903977148265639160564693064609143808951182032056531286723240464893691713819046769442847203687493638354801129202285120144222710330231606553010683185507595042753512499055973723260801803236099721243815934090337608221644205193548587343756412423245324756741057311825508797199049595287481954428120352117838342009398127246187999785422708204177174944532849353618651778846552857932873191612799002420140250538011666001917586221650223675568961020503321757590974682649381688275984859727970312091638978127400617509540042414471952078666726570888709884087032568185499365073868402025248852252639313490159922008696297869389035197102556250640380096027369626974841835854884126203003824975596365500225971612180937480960709527625315066053596670821448670661388077430555894992033938509306103471790266827889650320923464498098893170803431167760321543021788845174085108715748905568569359395563237131126554826283510682391321937996343705442291558813256018501696998773356921954009776065849240757037153506090721904968874088583122208742123246296321731554347049160984062373838494535954639992005026753472503443326625608099081825139470383784712372481528546442955557593981454288041876695282691920547344482843943058368859425541321933136408363317246717246505121475508180096781606777446417145917727172785196109633746754805121829411423534623143804247483153785097264270716842042049295706049499036975409896154564613195507723012124476615922434163704730680154869126379206821916131576554853479231208211629665958764178257999997101225127549215323131806389322323485729287429276095588958982957762462534564560355993279046308413577375437998118796299027995753152240479800006058650015904362382942240971319520570295938765561671862361964114463773990852568974522477321883008750657947207215808615753832631404124533702387006496494463231123668406509038240536169106165826116503561357230846748844161287718980830997331875863421420207145659981765647038037031351236513947291032225015250886480313382641866215969188493546881098025871913678502928104693358590880846714731279029936078503007090880120730088362544036767705453243149063214359835561095145470875661653612082372869077637791773819185050718116312289272986086216720596440421643224103513081544120995192559841465532259192378363155721661107256643431756538614343680357484544032765877322833814463252931419252870868632984146311410235535763262778412737437640236292837502352846647481741623039274077908509488156264343117002444892289673464848357541012543664830644733381089404896628258432215566522228253632632615396210090881755716543561544454096880297281146788977181277731474519054854812297552617103884025881053060828106313490680843304689584896980879781788742207533735968882570756847212548478775857059441549884786777592618098287259563066265420356329207144339908948804767164482937091656730899526502663965398715471506325557027138533829637754278893350183372596922469108729180659850709007776574686109265438958803858225313036309445898788929132789918394279262960933915197739876582093387142052795951518577824072757603695765589039960954340065656244149669602596526397914573415676157619976434490560506922298819512966414354935314933289431019533248914658749706375296914634356460658075621557028628598688028290180683975583540483434066081878109101927658609359185906999945850782972737478629554523323863542982314310297556152471370947319105800601480571458552299310717500384920211967956641816642076548732106733912990518706148913759769443495561220724528901000194221800678351065775970098110652458726310484428394739699782099482151395699176549050226252624387535447563284149462154336122080943803236241916402143422485252788827955101141551896835177423154633335834751460826763933497317031676418078325074561652186797758200318902625700554946036519541062271370608581410409374890827383762225013582730098420461893351216112151791431522365422556618456623099339635080726693843547749585352560192166733060239597632722447383484957037626949622257891177570759775169217004679393106210112898849416820340314945512114134426477474958903758090642255747299587262674912334329735717585772846819175720214240773174784723208731567014046058952977979078082081424885671432977159025471560525461566316959779092315851740289572123118627857065348557303859879894024194857267380986018115427992411884129186671181785601714686530442237027225825584282541309402515121912736800862184445261675701401583561406499807958141460826740190265381605661111788587794761195391261238757273961069242593862815637737203605082784832401612272769665433849530632948101493495441293715205321451040029716141099467759170152376916059811992387167680557229375230453691256019142794568100691005566757024750160410065635511722077212270306744913688746149163548480194292392740837533607055895841384750754246191010560435496737135246695159458050005114443336153352210745334288884183014704957165571107999691826940658925045445358372704981638784627145297601136735368818741863192704120619007063282491390810561514656812639843913158946087758406124558171839766992029411157140018482296491204085744028281551191033619425403905413278255840019187772668084367333839512790857609204251535905661090177753896377835049632269037546264598401891415077356277187027690956529686112449613300399001872349748019313302552473484308760557557282331251468505860053145283478112400739767511270798809167101611420524665723993679456631148749312186695759858816135798665903021927265523603393856728447740466857428625508396442891619689953693858130229029660290605209166005410382222843407578066378785498839398157490088711513923583875394333996951764003067800871454297729448458160598987068213375499477604622041440004630277350738455378882358782383340621654544428345616215249560180687528796235682303074811721088399996608380906270139437653483496144041286066910192991175229353366850628511869042835189214557150589449687959341722094979854713233351560634679452040317196367140806069233623964452732118742128526535153714958066004386325587187412506951533930165627240613745853933165669421293396597447066356594779839327225141201563203284634762590018675228531029223562792368943036463582609946061087080750830085934704353929175558912043446855828076110600378088810829160520054062117827829426212568633139589263094461424156965290883893393990731177269462379914411454641828635414687030453619435870053061168718478881151736876967938014594305169697629581909928922162530509955889551060888417765338241941458764412259001179844414338121039271192744436906920777765914441157238687907089306083229941335038071164273667793167768872352389714867057876306896044757122276237672039268009972741337040456112525413919140078975387866861267438400874592111560795306770169646755582115434090908343331557835858520608822777974508225261713684174240102965605890506804712301878242169683403503290651756871150067444359075303142780995828055914270064082834146754481560907160935887884314694382002333403877043769293295788651424495434489480645183734972104735554509028463336790614574323269463819411826576322831809463979733750379752782322325546188731873371980150466394660452406421495414131566392699750413176047034025036554275092443533099389785532619442863179142321504772143994148137218513473475508888615086646812182599381203087572372050192435222545079053648201097492091924706103337058735491856403212844593645104289606221820119378894508299185006099758311812619105578437344104552756540987612006603561072340072264040096580675024724757685682629833524605531557463068134644100749563174813169706103850557481995777587618858719880679937220724962178228636765749331942458628725253548179645674387005946625811166909117587238456992799925569449792884570807520270901638787135662532133139974657753879096194627015633943206095439214732307093401330257050647007257175599641020113657279148524879740291228510007537047612621124994246944798938863907535959347810667240398393025666952477757704751304495760461253327031606351786774349189828926602985286092399762497289880223708915309290780245458159312669076042828414152721530314191872649572449747469850607667883170205067404384502487891617872686069828841961642623158493180529335848814764370632156502741867959357379407724751799720528369968991298115861836902820136793665533685049524567055405339404022258374279472486000195855726923515308179158502866771557013750141022235992543730528937591691724605008659952598195565444055996702807901011266836869434383951847459571645885997521007401000552981147288769168786522222940362065341544521193641036285104085688748409997425877814976056630346348386952429094193704993510957426655980162908173703154233596454292980294426702334711290790487386330198725487580995187628768695605598263903226538864975856343787003140184541458595848037999687560421371869683972569353551510759123901823837374834944517838872069540680186959158715360369122693746429780177921069491132257227937390014878148843417492347482278868616011260925072624700331588671792013409880506246289328623745560606982620445838847160793438193629207936776349295721766530029388521753385675043297621562349478748252583406317953343164452918853688422998309804802618134745745594037610484789844834655382623327371011195822385022144031132993880878039151421152393908161484427617993203082998046164873518549980046499971858418997597454232059775402276444528764846365981013998599534884219089390863595032621872859446515983979704289881379433486076425441681461043440770314773193002612819971582358587223764806611877281807906379889287784298046237041870671312051982728383252976224631209858470401912189283737892993565969629308018376777638309777803465346192501739040409586482800919875022321638619209915267379125675785198390762484785965595791362422542182859922720305368895620923622009633601616257584294508806109016835950501735149110379933685937396131758137424269134690387280401737454404117331514556048785876566955854072419803634362406498215838724950472001422356600652854050770790980263836550973505307446128475223470175379551027567473692968204288958193098509595944187346579308016651301148825755540016038448601519794776492000687543495827605327193828184504602974080476902742443600477918927623035659102578873848929508922347575024642172764471252301743840883086435291133868342339083019318774188533322142738180839086310389748994805681124030054878001678939841285683539535464386031555542609667076347926426860977174843035052548641942514357064938708991684289670907450596511492245461196663977351353856357453712593702749486761072610670252832185576571589364385304556943350244018891941353568232188702370639707281234029660434003836289428549392414906076460933178671849856745152620171422781726289615822543010851751261475649952189889718081650090298798275545724178636050273194536243121833048416831588940991181519736571581499403054448408830609687288330872841164392499723609261433114292492824695684282334433394267498147896715970900744465504323255756491091608822103314051900199276566036005024778050706902640694743394261256865454237519451353024518133077176200485013130907113900745142643602920381844160314519765575672425293458439158719742146713647287961402645991490634210862931977250741593372366689099954694779052896183406354006415220761024356203965942946143592020656094946457272179935726521037797144745240929268462558217472781734041180568098633894422396383503540879091735984927474785668824518130125139435447391625135440502495671747478566810280520659346271030219662597985652542174741470757816771909717321416718184861241801937374733858382510658826265075770496967916192414465311206247737234265820268241336153985211647733676347298676779109102756516999870286752702417261026615545073435280535754109107119029123125131433247070448115591191439484574131596041850107381214232850751122193302133188347178682827358576771495553337725365936340835307514293111105235065293940195886873224948754632315453311928346690009497659066609449540081465888238709271949375448980220042923324848220310328570164192925327891847618396633768918683864536752891282727168344088653798221537547386725324762260481035531504502403776659840458822892410838488685367455560367262972752879029177960546264162797962932489488396303389231753767248735739314568536278485466456568949932676695604055083694203899289087532880445279852409229709259127378333891262315898106981355235281573061829237454784718837142132169134962191867809290042286186623733583939648181505448025989953726801102520368377771099575781581961089248527575063104149559035993778583533527069344981405207493927590727604157285567665178171318121824542139172100505449188422793463986379320359290251960807924409814610822936729640061399461200043536806289325415798111858590358495094235363693334477269868401918105832844569969174431176847059768875211530511133754968127726835158356948978735397992034872757715106722170470506959610077057740327753151794598846692850867485855696668980609336896833745637523589910163312111193669394342783244545597460431804765293719543510280262805363140457606480589423807750455423129217316184367567782064736453985591360562380855849741598058391927556718405516807000574823799373320818009140480926792339996587031546804316144215117118581868238032762618234089253171138326142793018950339224283981951167541019345848648389698115013025985761060723443111784523084843773861907008412463180521242239397210564610262222418842595927327986576028178443322851759294216088250609923334291470793064386850245899061672581661449399835399794387982007649801736446563194026271652922468025145587836002855505395703085275382438921180625100597384438564738738267038162626527902648948349401311662158189006095013367830759303037640298051971854814954426075400720894388276046021545192560142018638682361380510527314526461359229482070219592808063898453449336284464131568698495518508243298647349407424345403630495920545637473305424382273566780120381523495756128013709999941951365266319511025758367988988406435682637824334937985827802778038578896426450021234282158174032769714707017267591576763139720708748623432537108024677649410919522164274821510637689775289847990795555785869885323538370358577109110473880192662341241177418210948131261783636821009202117185037990269980880097201460050279316458551407120852760735333933914293789959675706730788160319700883896456716356959895968285206276522722811969817747586311157406240235442234820326154818706386042232703749477621183556228685620931011661284070104638498399618586357249740210105082126384252300032339267805294221227775123765495687107336856363576656798719771792235988989705225225314637261515081333360743363047616620093291662496839831783444101640170190084539150670965024757946972960219493924089150371896367019026658159411544636578367903508430489926985622738719608044010778880855750095795925685167141119475849090808819419889531192772564026422268823609322457815654769944225825113164648895025698364445181509530843055433512929495066061285444641364800418112884419227076774276332037295599971055464920266873300377071612891107657632744613867309601946505220609528574481408911518868661961944991121562670735983992076647734735217859007141121479142433592002009650367494834239473546599277697048182369901278242993600840744461383105173469905144169579662593953522105853660268690408934866209122589826949115493213422709195387420113908842424916452724547670072958425677828265971200340456021638025729259140354436103138781045490827389473955070315275120506349232904567438452399889549420183258962473381756117519244837846625493416692586818847135468803208528831527751501694115936502611113085574248430193399998031693063129527724278155984601103135915755630476454120131121596874213415138356292119484279915485029493098834119478030990849706892057802808886372859601324660185747918530512174145611560499006341421242994753563130149314406912687019073144789923320309592714330659247662778724482721635840919693966809736202621784556632089574321537640135087049695564473606026015736239465077100341590099276618752240585652814370834679708079205458598105594386156616767452304377108146007460449675633374223775121406165145118612527086185056472305910074534530863526810848205284065715085852748959205837730110770760618784009085899872791121012437780137244656073296456289970563164781854262067051817998557433833884627758976431979621649529288508973357426714098903585534335170272352614194742408396028011457970832397065335281758982192262445490467053828194900645919603782737655357626364148347320553179875373906748527530794183108015863797393797361571546285248829208646313404115961377006575564457954640312940359786755436244132203837258041005619160442927230982334522520640761783766471395706001364223784753132390212294173138991092456967035933156434853443650610466330847888205289527454108239310992570832203070804263388754624167468233663860903941274436295450637955695994467452804297219343142035069789655227179903307027575311724113414851149362553680292860669530553548940330208276768438823641110767819835989429982560842418052522819732962232385830581185335628568737627343431722493977179008392464198797339613819922925189235514080419153183313863955525881054106310601544682891746159032579013738760116910427139602083236372857589042358170067981872698586439747202827331055669821332273582581388987778588326910698628550317673824912536583502177535573481391048427999943349503355536799178559637802061605800437337427973368902768946097362533825747610015477006758329612802205889173760002095242763570237281457989426403525073778795295437267983337605669604015616974485947520142440646503100089516213382213577600640855023578002279325763197069967341690443362145913002018748675714836057620964870491086541514468433183743316563784555241031959748225511743662787313813880368928396037477804422187246844763565508914300125334503290991927299327960393108681847950218080773197141730510430629267707439783845744372587123858622218419099061070999688052538814307101071645247793842038698851923668284397619886212448256847538570253180734569346000530484277710800038606139683454521287332432065202815324024203357819728506845176757174244490519604194277458756938288082262414436899270883255864509268539199211719291333478347319784451177620687347877870954522632787980867251869860102702924633379362652187255516113600491725201723351592324611239267861467841964039923253661836455895425280832689252752043788985278895221299269975746092221900897988340173171430233167421941299619499160188562835811307810949720856739130704947151681243154163852873973586537210714847470873107639966902783603746048904181769208678465158304865817225729206384267856333296354016764700666493965848952266194702488619351458218858342841165853835473396126405895703253207662136943558363829985937050729047454418660998828160080399101203217697786109951449755213575919922331815748771696048031640354263460214834251240298851755441344055730467652255467586743675776715189316738861317948116754944389490109151653232519234153393797766432711554021066064332038772112864324416927761634830632231320338740757227040106509828175532253040364210805926655440632112174115405622329513850132869820460454434120690599888159062958944759757468672627003562325819366225886008370249522439914040963848899878796741150174432528188705266413908174815531964673530788923196544263795561926042196044624389748900508570293931924700286151366552397900011089311885386930463981007940374201002142847186417901860151852681201372309744337299333553599808159981214102810262670110429745011911559120182795229459401660943820802538872762433422070820078755765820764662867598209897927591420357669716619100200970980821547351328823640573413545865627274640857190143095312406638448260394329036938429206814650871743781021956816318566477125195814340311317791739963534176295905658963555584664185937654836779608879088614524063560333620118307594266566699659361866077719973372233525777815225679839396683873154171637195814736370096464554454837250496776718483573792817962865247095847350687608942178731886779360492935996790606253550362463945058431441634952035501070341580658252447421955801623655915358739890145261774389064512990601638978419127867903733012939529991789470197248952153273203118697302512826843251495217449991864695124511022929231872578200720914100132407521552042457100094232699849082064457320273504011060744243713118038341460306382447816957144113167451407551429838889579353382139269657087736826109037138631529279266075827053171430581943284363477879191655212353357828775628215191661407572288404672591508955663468663697502605385142054603787205499565431626614384216478348282056197818499214117834722030274250376461308623814096196430723748612345608459001206810801503093168500030284909428404831667490088850450122410824558183165530170337045892075037452326220058749117081316475857306699487214841471595113667440542833293401550780458231296120146398701987631793851316019466167365841666766208544325817937671183478402359693288995172134037926256322080628985545610083085344653141846727466089745478012555831711979753358220344337288976754344439810600814726975937977573003750027581844535976368793410437780142855263616915107662441423654013082517210206188533929874042823928791701955082596321315526526735587100535388679252478772243807910385384625249051447428908577007223275691819778467759310864409266707652207696507184417590078513838601769790856210882001715427778788821130473308458607045460926630453147424897962560601503959923522232256392708691203226245396603351649348627339525907181246710484257393721208207560054849009561279498097277976572330783425844138174267824117146066448886877752097894917835195479856711424779182786524051760783490936059148329564107233272518679193353191905580311873289812248150557476591825395366977862523922871058194832701191969433978325810338004125457266552148393896424890200687943224904866079180741370831097965667241106714285372067527776756412620025931636945639734441982073003836570818243249773440653525963269976567450858610589745184538610852682376182896838392579194685261780317683881955019834933218397209998115715118919914921694981495365189987759137431918709727946739673727398698009935304381771942432329794208630079337511338240140768464167000103060474018912413731468342365084815802233137624350614813894185762327467829237021873280919118200343643604544969743019179951993620768171140009695941639263542633950220073835270687284401758638153963488013803847726503088473816311062968394023386986352541367611869742724947449488086307235422823250485326436237985198350854821143002136725214008049254419990260630819627105776803560915498578629285370178840073995519767477132234251776257195225597066662040789302321518754552611057963814183274011146496201263129563926235843176648468254512126261589798367288571723957741981434483661745820381598867805995276766570548868096549209680099247913015063175350844385854078518038538882230438288578075102837251681147360769406602577302430745459327349514849995534190309641205903872591613581963074336876268890121483605680777888495323529775705471053153819494579688414499063361632110158755679416111022535594928749289773280457419706583601806634466134068620984346474036663376159681422438774372514552428081019561286864302546020379778108706309334751237376922222873844519152765702359466879368229427586176393993655566136054945359622003108736778799887472130305404520679266896937219617825837047597807284820468789516349826587023252365578899732669578621147549868914740132657456155878178450591752915603321457198654239465973832760625926742103133655042501764569992555840374617206402033412503573888104156045532090675547706283499494123968348247624833344597718335041076298458125606660663354096433424295317800592563296071134031538576243718641266369626241482745546169457593380301422385729851303813657051378252521578091565919838053720512436991486329516783713905035880192194686544911864589199176098937513212339268735847534809239338852740733898629158418889651799892470167656090868523665251001082625425566660429916626435640073829229789271654305910647543168444792702010873379119159515800401509869622212814907280744947236138919926313729136005481522692117461120320366185162769380091107134553769344621705983739081233278978829220958881648801327769407069152165835012693297990924075333952975881385458713902316545785662664577549712999238386588741794143774090821806498113773193246507072836726999906164615001156691576388617487396231634354235197856682081236679391501160684673550788633704047295740985569889989618491454511960407952382431637800071339904449559929886943273249726352340656153591470073854876397264248001227418907311741801562746851351445787249143956836295243832062338809067153040771126882771801133781175189422696561666875517599756558669546724269437853397479983992917665152641738179482207787798233305475111597423190542275122445876941673769799516213670563440018876835245539506859471913970951027692005948987757703839996934758978083786560252815617989024194044649726555624820215768722524996859523985831042693354770720837051973167793040627984565984745816155956327758767143335527081558117093137516435647620985211091412482181028392343632741710287393254076609125953629730785023907151254532714291309168329368178821475676174436852515616803085401470219599910632382741723352618605444021669141370227540198292546214487864842394626060932894572673388566390575793428376896431770923973487812370153778081340385077131139092581979885276978707865606476994088691363871899875289763059057201900097110296367220461223889691830100236075279868383230624007872875777117067409225048734035186427886233357345366453928614729670580934998545083574258221148008054567960336104928902506805323966269019557851701431439158610325012582659339603800953524744082419711610488263457497496101984897385267945541108236500074056661282232424301102751123827950366565833938685895283058229349484698923357793018982125413671577877528938977976714980771969480790449093556038297223287528383052177510069360994901401420058543382119925381073595516858546643237774986553176438621555241016163143333052724922582094808743733960744951505926106940790313209976184878618621173395628021378406423072847176138709110310316503280522731343448300213001061938118994831498303190643754022398971821116121951429029470659772007978461730688835528902175929021919429118906986973727330315578591277531349873553648633092328120575293476481826865959007118962532127763700235407299806491601771290741496595204924674734464451699514564774399839433953077341479953388111178208246327636280461102916684722886462326798500989677017534295418872018470525056353660579177745019836845934326588130210030753298377491086652954540312622923238119801743887816928868184163217883289287399247739729221752007449477840989557964845335076311248103127915887584302519194897301319761868125169594745913698871525880345087140685489273355559188208979916847617655448085061009843931490810748709647474872744421240832648475979531001474599777665097395288937935558743276347393882801359407239075939700119746646754918277840435124630316605935703030279728571192962587600739083699287217464111327754038227459422458158730513694924572945244435493227552839910348132173657480475376208111802541525122348689436465867468506014888390848411929541129978117872364777467356568549680608275463776599176839052854766363634437898378568980860782539612859315710884648375260341837531174222848651513245370343461127601967946432245014539831784484364078954950184828127613344290524780486511404034385044033184940852934366823943187409775939841936697401814535647471961965087874139867116867133494842903049848358358988721089376351170267264512771329770612326966358167032958485162600858476170477927545359483105994695671697284452099194258872101534890401440477606983579020557176180867777679663922566926177898223793885235819048398460417736048017149734570426746943509387959544769324843072478008898176141752958685043524199116198228591158279584982271724507138620184140836544876998289104703772383077963058453634786420285979559690336263574283034479785089997537605840890480971145900347535422428725012377241131540608366808706313092941178038466574990127917742590599697731966666969188121439590131109500110900566168555980507968754225825188832789245379290738811598529759896064013574858792380152066604199178287759934127584800358203593789530073754426462320199211307860767133065821612728726438817683905530945068574156133242725462623681542267436966985810044104441438731593159099217195593401387343338731753558466210136383087250777721728317020294736669307686151288043481861748450719231282592309739378455998924718178908582267268676541014298947541983181716066025905240974329800913186112483216254891102472764140359064795254129661461141147876851847573298196357987788328335717927086230123922405160170216327319499139493697874136798893123529953866305760888207079528983397121000206148813281997155970997730633479118880966419119217013913151636941022650459509827484656386422824212841292197671900088593399174527398413567432825516097823495244638428773392194201788037279609708702544419952190423365303674969436932678354686774044788055586066589032984025333723735840386586389158756543617867274634718715336917434009266113922180602346930198864544230435036677341123873693334378629277083763301702097341248821863424203350011778700755982399199300030076317256710307064359504949108017308138515168064727290814216001478252781722925856413428356518557954589874975809909599373822651672029443029116279268560877511318577479217659237882646889750139657689975758277443238285172546439131201231662093845196228188252579237834323142991861515185973786058520612124805544432591481111532009522751967647618264750699368540212281283710106652866048341678816118481386395337241124621323925060981941558616928479130115077777163558888271077641121451416437367497170813350070025470014928172005120044484483166334946947498186848017960734618013889110582670476221540173639088832477020213574578979398810196415313834202286107083047851153712510361889287091419478787025124065048570109980166575900789766593453835642750511845154079694044834087973086972311426161238250023949290010293332689383693433406829753731063364206229679207441594416001159427144138468866860271492745640383747951954722123199066397337394133168386029339594017446892419744901103248024876126382482552438654775968380205546255430780715751353443997014798342893811809911444632739091083364421005971475250018812553847131758713298568309852454801258639154921898284387080901832466866476253993912801420293929444818025778048053387743853251269269042229281588690986005079518660286606953866593981002860971215535807177483227168909348196402202570779800770202503798761205589086478523184375713468117702187677559219935802528109335206156210474630863182190319948982442117030049184097015188880794247454019746484254351638200470843616589358037999307569563212484843147733782377085694211137637843846455559654196083758041826927622107979221924394621752259171915747103003344794849939209483785005217680548798719939168043433998528142599582273188640292952438660860445923987359755554929112030394436030606953696935170047452649301334898203890282129801980219187427299744571733136208426026570054418919834340304189679317168951805200271713900584951061199059726589090672792329022564059089004363737984263346721720793303978523367072968916332990211869551947153209443761027853029486566965190554874328682053810994274095726405038382059252840341517588894633810755530793205460247682062833472154360536080827653306806785506429103093346511132056172695798126241896835183058128184591610051097483032799435499392259093981599833933840068076356324761323755310304955675058141375208016226331948925055612164580150516318379339911726011301552839325430976929335826288627628009568498610942724389943723244606520278929913962379006887935822308339168971936123361337117983137994837988539484386900699016175109555453261355350613500361634170222845057544152629313114512563072164155969160262309085500529022006318936363569725898039010840933655473761926316720269892717067437999193159068827033305814293676845167109101761567955924458715831488935123446005679904969558791309130553106972183704654035579848917454519986395950316002526592031705189902456511802910143229394401811537085776837375460109304697559299305264457518217990671969900078317712756849325504098719742284860764675120541252987520216157299448330761366520162285554316092873881364535363500251014547080973512101102234625482863248161162284126601433918247412624365703695134172886524782777188024861578899467054003058995304990965500951338548322701463584495986029074607910732824584391324484537097669756005383479017510494677926567562930781983789586432519195854870402415743255355685039925986144479419254437233863425015649895828046094949542738959375733028008748697310977799826854779196587994823364424574744878627383541088233646484479333656319979338294157118966393054825545727903115391335731107213544799523742302442793082406115499094761382147641459062490712410296931358724056490374464097258423008502564073102655216507219832062730309878853779264516846759073380790679808484620175481984586875644678537570099006257231722566699899482290150756473445586519924582384445481545349340037044847177114221285643137512155350899748497897691645498688882132734586734720017181457360395877210244398602799621873310172109867759492749703102195648601692065319719722322133361749110893321269546372071344997455769144663369772916538658247520017472983416870549429208676629195662348666119041349077381754749067618582548368974135332927506769286739380464447830022896124064695365843851897895497852386074888060981854276756380988895599630064189068290211998289525770650212315167097376001699077058643440638643776931249912123891458710657618495220153569856616141786634079117582683930473782877525494468815258946825264782278039350347760459530125420594547925126831157308941530394827748187245483220733656705363929939784057001467169328262097692428227317327766704896125760379379562085634846185815504105561290139309673475015712315559297536917161783091336125132132876458377873755461295742942169727380381658601513521326551134137177814334259983517854320783314778631167465257084811475192197830322270651867294768160174467990679908523231209182633071779052605407750378087311867427957489767343325684514378921844783042508001260157195427361311990470975785734372956574766246135463401890372056577954292910663973418337775500021883162742654256315275899814162756563063986449126553862388965598195078056566425235572912718731025151701776778435928099304832945959750129345736961304916317253913859067238798254556330037026339414947732997399009189650466385646177216509929864886514732092459782940581198220988121426266568801108953381103543614661392636836039034803543984224100670826910298010551645451989437354789778655193831125314742799431824608932411845276517223516038094082513672915247901595403538563024290684775214543858111768169799662828044534228414392877282763726617964222323228873280546975336707165474074873664827828071465152742388183103281027572229199173400363704849156102642704008270033483402589630878010973771622002487897058895835689156713194792504661930784929346959437803452374004067145967314117593676265726852055137320501752855679005230400652582204628355442871981659121709769325775037611617514767191966119218500317081823576382093434988617965571179670817198381478629816188946684831315744408962833896064922274545848120167960365080466775546925192964968839484972176501697652348292731226153824274772886302167329444570346956349894577781272661199931137668859817987495464619754376028148923592444123429895735121761013943626065102489613253247047167525583157398861959723833834307832721133841998246522017516801500783900409970168931407148861407453798068632604052120725115610837205881268663730533912150266571101170168710798785256980537548703104224625475497388599501073423777069901693487274797982072115342992653620042316537425292109458188118307584598212635966031155835432088840181000469569771332088042100811597971169229079826802893203919097488930762986574539875557872776995714350611503359682796365232532114526334466806164241219709101466705118123798997365771053512067583185335482731463805479012352735874880399181493342608323642761925449504580177948100483146595379362218988554648904528661332232254373105085671628318258463206175183398831988495562397036349517246996619860968437763614006840289741183644603447898487095797268641680423368812385331647097874743615314552129880705091415440541593023435536520441212162472734214502770084850635614469586150174293311514900835570755606425523074464234389827638628973644163544726218306364580783439963317082544539244268483354036120300870735057413104272166406475070616187027264083228355546063157123707915073188736719898346541581559073500585499847070055039252709578032623210434181944949151363655445147824650243402053850036904616843547181205382379268170319842847830399820137794508474626536519006124545333595293822242754048033624082724658670769320439858707389745465602214674952813913881852539350237812814232172210810487022304716392399465379617022266779131712086058647755436693125130998215935430460969385735104854780936177885199328676656408073366927872097898429602924638305043924145909871082526707339164263941770986134124242573012877254870485658477189034516808798714635030273314791247920451958602315943883570344838371978651917473364267996250446076938552684078460680105017038450231292387248643463051521523568868160822173129794227907841483999494466489484224440644227428903093432580691654411433298963586282078711827308359794580637883508328952101243397558849525172447029534204328839623705780105182185962631034676413317424272974437652065283287679519501693460924077073510052402788425105901350193833101416564855757504729258385127898336289249889678384736524844351381850608878403730512917018003212482288572559666888750106878312130377544286559928375200556515412350354736305014832998543203804305373391967163734716885679138479013555844198367866365081630043975930485375788509067909047365688991663227036267525700964147097382572987607363330034721674259985555541505671158217969950613115943845512011259916738833229064827443986138163668407202926707808776056133729966661961781503207322136854569527959941797878956179177952859997726084982242483492132403901841656709673243460626529687546888229182096466339994281262528828497980520796040170831131740560849704444802870110148246449289438040436028629825604569899023128996834696522829439989221830457089534154878632964245005033624613607541615643241113810159524185519420080910804605913876987024800104771935024223603434775129317824648287009993880424272083300557098932471134456093872724273254097887366013263338630168896529214486372469843938480448663730643025113752418000617192018432909009882762981008753270318914210426063530789493621136152394972728785943000815641946515241767822160357737049734091711405706568740628830235271048834919082086685744947376333143187212307878279860712139581612139988765188297546515492216722114727637130970202591191197714381339648194519506421105099435765117023205836950623589899499805531724675407442885846918432993734722524922123109358618702810872691636879565718253393463245737248426358376354770510013298434556884832172952147576183057832773493119187326877589609519133878309880093092758248027527277969627482317992796699507384990319777671691389967235743354957381298670400585403812719572081508524053693787684696328408951067940008292353161577746230203739241014620301970925778584603190816816785837474238959720861259929187071754245064310163327125669299342440553970443116330293951296211311530205839591420411766311764808698272732511538689262331263238345943732424539294222081614687218228975657038377381375923105030085222583679827489120689391183905584515256236381681072191444838626157718059206696464907658965231641886675823078583047164730751870467478251979972010105580504069648258041716434425938701676318733112223468059585620450078537823568285006179497486132517491943415355898234444922503657113526194599502996138070254129744629281186314263715135349167104333519855758907717914975490505953439573836636394591479840154379428878211934508530612917772530072151816713919382792628912537541624264404247565062032889230576187710892107296078747522676975661809321417174827094376387260685520827669146450350686250805850217306235703049132978918874667366382965879645800197431611394348510387951448965687598760615683916226520097918538884725612101706175210441929328671146582206266023719146600573047509186382641063981949208378449097466597018648198504465654200690059859953294380797953491480007213315589177097312887147507416281399512993354514296145167822719646549240589224598732393477720282207636987836543775974498555487065033870476936642645263728712549738416828626366416115981798303029770497683412611800252473914358912111322445051646467012239760221916350741813826043512687877318399857789732354950368253708119620774274833614812305239614449887596977542364968456346023148478077433978149768302765050421893697759123504960556757297343050786595762294016632210767983583227033712113027012833872584255626438961722149679613092598531753702054691247260966928745369850762323563322242572276857337120160086188277544912638318474861931004350817738238704135259222707406909714467784701618731298991250235841386153436983018882496728709701412130176100187730035937453275821437906567088021564735728513974941054234441194405256580302918864921260250787454170567799755029729299271201275771956928004710410009880953679092273307336299123726223255438578930333845940349351196683329660961328106490188662429881091893309209610656644396925254465491350908227297280902768275599798963467114137116416420160013669396212785712619196484578005589086242123562967475707239498774770319572691807615928580741218613477163572019969542043429276691536483405643162462889918733187920999507091028105396863748158822484031854676535832521489914532638451705399573245523901403917451827934989803629098663408738188405898274295953893648639878646672622911427383218062555587027681413425117928481938479736298158356358831028125851770445809748152172498320921034607706403595989926090073464198774845583494434617345126796169481259298412733088697882661228934252162631409134385124188566847943665185332064796367825590256519166615299625972627588610458940351801294652946532731805415013620646965864022848102879012708086287250152610297002581082944050624561617108032489140207865711970146047049702800124994641521248145010160592783575473521899281835554723452511240199478010450948771034183780881221302449273901170949975979818721817105860562381518845239721801941120961978155445850553057095727699285629226822691859592306703848243462458420056875505657811812627818205888232647681067804390226038182356439931149440991964002804676789419143326847711103388205240728436274887386583578721388244544679148801489689549091705879349066220455838524289211518402630237711630584865303109463360617828220345860833007044672550224718688983737519023234893113633046504507219866902495463312317767280900483706119612772608876867461593417018362387951367192561116268101883424473603930567407744499903751425684059158579337138748272733512023362879570695177484922897316003918778739527165296427897517306457858942770556727017210247094840639020533719427291116678962799426288459505687859389640478705829925685291178874933012767579901626684083461845543830164808840464973741683477359619733812843512386366371921973334716947089876728099774956704163574120948405555141885125149216510196005441570984172090268922393705676880293378108360823950771656720785772135508408945639262283582227472696057699199251639957728849947500612346310163707976071859140071587262091466216742079076434184196690646046040830287955894816117654594349792799034128585160292654706711498685093890454133886676242601407112358257117618065866244548490889636869783151739883266632835399783919925094328146321371257736211785038005871454863487374009102264712808858493960817488476343889536256875419299071476159572045624698390754000699743544233368410656997105280645645356111823468475585615228236953399156985320154271697487159850227264566157582568335830417386410646036119778632289375423331246218984268795349223472062422642093970927907086004740853790583634076263263422695073553348637114854762845390476432901318833260735329648883395734131433018384207042592511226193601965790311993192923351203984469639284391973008550283928953971077753399216914538960917497378378677676268799894890869796525790692911016666002159382989006420068984214857295704624789924509882936088349074682898199425416587894458271816047679840507490714345047581022590766485286102708725200688653661520289460969267000899477039327879466045257565632246879909031621647007448926715536950288889849697411028674344094143316523695220830963195237206793784000708937892210193326214813094178808770956845155474357593568346990377223085196818083369339639306446517804356106240637123538408771711955781318783434341323225696248075229348079676486524520525671337137159379663868834928516622571919574501294894847895650138061426875744023539283700884336953954263413185798280231502597805070062059324500429563233994078056645629477037480260687415596869967760398337330654418822657902718471380966829356203010741827579647802535744898580330862976058400733191248376724905350574793149464487293237582662666193949044050519507629019801895466140954043104238633898265360282605557494201567878759159793284631927538350267511159348010913509385487486496728620191297469364929852371646716314553924083752717229633071134455180147755700478077833283834331407311208632937147445121376442601798555405559204441644053213233455354434832058231670095616635723659386365240206007337009331275021563048688489219406316618681601009878800565974187295655120547251723749363219312363094250942000065221014464328148113924347129887278611119205404302511564824068179121052584231794136916532487942239394965950255349370927854712396816164312002431325158663157413701960128369981107982216273739559004065157498411398220449696077408070092494656729402477645636545641957097715189641211693590159591027844055124448992632119259536321465006634074651873691589499277841919833935516642147704863361618013807079432632432745050935223409450023750863810317996461084846209390897058171471463681887062228636704949334548816313975781625575563264124747174684506631135824130569805899484170050775268228756013241108651807833057244528128373407005398287184287541611347565975358556255014872739892514668391641750309446095455077066996584936510957862667100827001583540413897388759266598217141492328282034708667474171996849464105231439582165437574141892658621197458162185615143601220613712763274062079403417723120610739006356365332544278782139976201236659718613637607318963663008057742991193067775692235627243255904584749947314007902667591928702492232218253929501759571040626887897866736948392287416134764456529225267022734351489381140856437312098281861577134312515745911740782479309653231804674610373874504521860225051821079728419975337739186657795846844722982319902444328967640518198647225389449549064046084717378686569672216130713957840992060724903538395591112875939640097719852676745188076553982072723778067168722533675672454571620947571435183995148947482253349784285816266544664578879078437270324123987038060283204943909251308139796115268642108144933373397689935970699784260918468196516478053656404143086570479139020509169267163673254003487688892984569361957488554842677593126985836721896189692577723930899772141360754890022813108346839685325185682067169989390442667786357934401214961635363947566495742570294060458088017707090921495734774245217230434563729894376139583233735258526551157047729896168398119192332634778369729455211809070081851375653228996184382634104376036358409320099462418627641336733180200005384653036465212714106211421831642918934445108430015929787974381775553769551857957845520549940574471690230897964258175616801966311288858149200485367942465700708624164261868225265340225589397548127896805565082173189853130193515413254841793701928918272497461305041185841968215716519771185454257632985338735144980718840255695603519521122129440733155217903538870857424711222059372099389295181099097144790207285124675071506357178967703530900276902732997650393003668167874384238706778001699790124704653029137190594748374670153204971122074528081218053465874027576614560104138330967122687052035588300578705304595739864364207547496598445594569627684569332119986217616225965058043331268028278810562843812002816587295028324241873724223103791526642305957538103867188705707435247428669604188923644622182468473648582371534329932909540288632831212897314616398939162762358241574502824548964794249101998674009052374341525712336122908700895430221596825025301326540902895664772242646924578316026481917395917641521592642983662512645868793972963516767353543496294433403017518813854484624871677952950339944492850052838832511808101055908662666314535525000757661137042007434657819998282366277319843584765649332458772824928568415487711631879510658285750540612595032398831759125059828848237145714202127612367258115091585659851003119558128235918041853829099453843738955740026032396563019257681570607783962817720277989230450345074069874439620793593534701176503658239084304212169630372158969144116389027591671089581362955315736976353177651435391172786690738196370996403426682352950144959403868243925901243351420041972970837447868094654700850751898905169693284113283271732381524811427156164782478689607211477720663619230230943627548621274123897022488461617421725413732730426292674618971902258481281870623271910419185701017210257242630274397230643124071469989682032581052594660821552226256730749145484427495315452819245794891637815624264610895167380461341277223883512769590240221379690115479787841713482030815388401795083970075266843222035738369641151201547907370324043207856953108625018832882344411870421703948165531395442511302771083662846291345026691586199061310243502738065812792575619783801322740022374081102515464483014251171003339045089995252645779716296361905770321872185757971241921878738946077441525493101819131232177939494108999882500983564973425696798658767194452918449466142759692893288944376131065366661563785897262714640693345808587611219390340842887948051848308523371084962085865053285506321691054930498694394074659707076177411889393947794620600501900653437771422691077226211451089239450512644640293303860919622051605621595502351546862754413021600313283816806169311255693749800857687062741570733327946040913435457767828806155967713439928047721794281398242286964266886075612187122956478846295466164465639557120503141716986574237375899329934577832186810957927294558374473808128947532603240582587862385845077167359506776575403540665867608139715528877802382547793152198198051911762385799453849692850538040257282893636597971349601478335894150093922655743649555969983837677367213999476187452844914069610971447883975573986004854744382728668067807423731464155463658003621226459659068758095149207611973115252686347331417215178083122466434342478024396564159823543940891647231585320880450466424931719855558543879809211133122799386692164095613560173221085353431474561431430683740259926259620395506263917098220927732185540506431822723987804840953762441214881535938837163896114896568709943426593139578214099757341058055677711274450226781466442616697041531045654135680929338466884287408031765372191279287175357586645848516814938075381739115949332270486024645051297215328332489377353465683567898294572912651870667532281316651174770912913521612124304121445204722928664224475409568463276341138868089292782674419262994339707484226994984061622456076759498333989328076535504870791180061118348672528956968911317998217688876794407896626202078293821858095719588745879589049754625014798262959531159369931912018080859423373006730097314705967839751705166117977370934276138316212651460257145059275285094605649669656751279625691596701389615658668324435120677499717216731263391918208449715015869689429401883703968853804380493230265625001742345715766163125487902523037262125300368577864989780427010412031416411766490631437273613443936963209655400561555986977090862898003039949523436841119439745380979883119191251007733462483347424352230248476023214076629227067982338694060152191749456828361041691500680824547026584270368596433610956796666876890311919247387931891713939350324527546261249332166749588478640471090571368238224228458002800547513688239512442671488301855663779340150559117321569526406561589386492707097690838614741854938068776209189781999106799146168323401287542826916348349526298517905568689513081923299430805788899762065373234100566631648802200393806857657364119120658711722473704914309543543609568726944601346389908523469117054357503891404245967208921051675873654220444567873714136556013456213791405187115959805186944951924977907326463284532406113692055716880084120343044277071778302317786652066164484783028148604015373470468786268625146627717636623897439102801760812192684928155110789752597983457707727442992791829960828181694299000483148767877904032886312301177042023465557602203016638283689383278925759830292245371269632484899637554131186865634742425702032856836267918103043421775201746591337033721391359784650331817310792662631401576103065519420774047079679599375339098702433133673487657870153585651554135708682300532458238120154641606687100043674352580863743702606335694433834236235750399782521424704043076462914258090053984440364724608552858143335738826901126354473227706229668482455825794780107110538511000707013767662761945695063782964969757102139119419110244561577139655852077142043025936525858255690428605651723255535883470855442424210388121534638999682622403684470859845457384725687181775205088682805585139600834585570474320617982060056779866005658765353921455806956454830436981464592258227969615915108486799446662258299305575741497245170705071848766810946742237278145162957620273249750737417653897419179695787519189291429867852439581456912976937529387889034334942860508179849053750887448992619310586889347094368059325384079413442670705372036923915064067221189327072129393769678941665694194727933569472286190129759158223212824782028834240533651994168783566920393652617521472234026647409228947213342672461391832540891039634953332501333649818613377566850954238760026601443012970492958191812673753163374523902405782827573971826883089623580229967241920858183359608266890092032807490957670151346509370874000586040829278599024292358372407365168995669747450422717578113857713237863874717176797397937553442828275826960000560076416398092210575189874134697566277634851341375816367292483110608674129250169438900409858870730371147881625137740493089617283274030865234500510006828471204155742503336549375003943794510763266764383489398477829681562253432049755688991007932592011142188446915899153883449915522502517941172982022106639799529916113217303496330622173911523395682309115211535744560074537969805931979142312809653881271510540767378769197619972926626260936003862551666726785951030221456167323658748070711299909403232008583454732616806845490297415315195627922131517488626508584258500812240206578637717122816186018756477994324884096122162324167002245329574270570268136142867336276537727758110307840961375541253331575315462930804692268873621629278134800457758291619325317201418462200940589024495566377412327636866088044348497491843625569000182926235313467824900945534896715085266601534821385430937019435221283524067094933426654037811874888647309318183607128917579090032850552028113453562786870780335910652849754890952662318400745628510060210292337331462619595455645628379878353672690740091707208191959430937884173540321806237845961489992029157541358908342385835767851665467837468292108290381603708830112075854061571209127997415663176561270210547514500254434668449508503914976884950712943983525358869817822155851484661021677572407196441194928742685456820870548798848689836589916876234050202606878536011041710275094815172571859851383665218500661238910803133554191301009801975363347928405747123564079729019809054883022703720330422542722378366321384366222062695767059133792879263614547752917946520907587292760647682279993604289243818558012790282275869000245130267336954312325936205617115332452954340936397256395586164022305808935296750808146087100225314088248374444351469863877653529742998114351119253894383123663501962606660553534292055231785705351118644172014568395207930071845589116151950457168885519903851604350946165964439171103876028427475567304753853252244423418323438507451485388093407113041843500950881655277753166384263606574375808896812216482520008011605167395377784427538766305848507714917648293734736542657246285606311930242857713111814908132706443379194498983620340046971112304584800909125830863178137378505767369545410568236553907855460322387590122683626420215994201857424354383428615396953775709174609268912998922358081662951944022862383076421521067528836415502012374364773704772243686240744244758436435115444738369108542399085425914084395881554677510254646412938413284682229926095981247089098568507106104387048999322879509469849011260339487647412715314099839346410063166199414087261855749515167591758201101786267428981880280822566283904591584924206801419747040460912676682888463314933301571234365150390447273006382989819687966125615474920212718288379612059498501421489008750479143585469333926288151875961929889881865263135538563908567465542427569800616171918116110398312210870297944635700053333424455072036209192580685064789915082308073800076500256034571439395843483096907119136100324099544777469809886593682741817770200356088857691686806424818637520549809405005809348952121237256183099742109171280883187565894466829197472708334903455264089805117070173448603874684731017037059043266748545256822073876305661850063588073044947903938764428912205866303803293144320872875967923111118800247435844670475974820587670378975168785505450798817942551292500815942255301554954856887673324776425577061165294943408212984621444112666613170354169767664943083244622046592077442201998349443647527473690440707923036563765171688937910555108841238592487247036709569118137044800791469998319394165276801651879834188557544660668427112307794551940987559150470096832053897277987276171778117147093358546554158566889417432317601455593188183067810358048492049913391691376943961293802120735721201480592485254994451464829604333085491397012341659758908958355995331170499175926859998464432294537877451410919870784548031702014453487107935592577285763086866968512915460540608810954412394048348645553256188508966212931326264055445283350990358026749803752071626881463297664781962168199759140211230850570845389955789708250926360132838102458921166238699372429121408144443644603971725792322866389733479364600608345832938923187883509891408472785751162061553243365458446026893934920168765528558423124178490714848448257280970769129442091890834118518674029384102179305704779632748966614799189030613584266187618598755426679486728404799338668795167548928923919676799936075359963889376153808384654699839778357033121514871522918320217335703331184165349645593765715748838678472358378013337191660081923498020715909335573176689325839195508408827325865801189985821723310923985255928779260367951939407572672991348590574821234935544487192020761065150565887080290954616695986265831993013292392532920499252284802448141186571676045700669821598257160625427481283465716853095405699288209345713598608487187981404674551340248533786026625128715119412007455893370914534078337140087508125356964150713790158858587734370632955083888636818411308130350813665079002015044362672698639795868879383288058990332876851398648123468286221509619606236270088555272278249660845777356311771148812459088780040185384236529219802748693133105958602099060023677110339500004380802163579655594488848019929664792628838131938423068457976678419901822321930913821322621688526423257558063644089160212122114386318227246128904791895707079038590038224060400256772664355851838942506687742393572213444157367111091355509806707998842734341720624092724991005910898784412166783702472171793982396193495004227966107672237575474523403916448004704333299706807011202595587239299259275153720938629396802492456610438767004867302185616636704765871000887880550018390649290448001736011207943243790041801548495442835673886591705786114950456373183720669446330304903955412790174533320421430984160540974492988203804265656045631271644274171217228823149015039727623789024603332508746496309444947120803738646280536199525687314293118161331705149073458112711441787307914286088803242664558260807783519353372698375661583699276459997503440068398312800775960888928650934414670254869699706425458814516725371000496340391056654162139106807851394781838053524863545635316384522211072838082486118122322029451133240841964728662844054362383440207426748499782869213244474080381272198280706439510742250763215630070128768936165307737294353703865601819715781525571609120033931828015238861622604444587646488747947034739932933311299324560327963468922800644040551521056322563250760719329768785513685952704639536931308966704981228320584625123766948908043354747788028851413660017140086627422899774643047589216400255814199995553290944477176222484112745301341570406940460430061676816021637053688905187273350842810176432518160199686007610599805063436493943147955530067129189296421224293919741801094001472300156724007634631714823050684465095502836025663055599171429671945018227258178291662333690210701623779338135037663922605788500769000911402001409736908559338986460503358827111711138496287829293410370973920567768168982988171568047674699258068871656939375824322707420978724522520698439811164617524782297272061074483611534710424380244281381314291742085996578797679984577414142874628706238036889901478755547707053875666624847263270791312222071830975327594645888246564577657806392947364437646850319062884884943978914980946460927524793692169944880227810940688691993281359293534680035594569861832811039501272039131603057843291046640454092239050652464839466691521291466876604914628093789127423944310922116160725165973809058064218726866468150289311583996850750085143028762418756210767617919015065494991210003262034287604219094203369867535757748240908064460387737855725350879484193125436131449108293631301724623133945575171459635037761560331117823265261576432197734206194387102021189377418406763817929233291700754653988050951499394347724012905910882671765354299829455093132643501563000830895303472119057299305670284944774466069295623574937775415055203883795603587442518169063343685099231348873172278717969087450333751006278663247703135099144980088302678909853638993754405645374055212602477528439812106473264649683842816306237535774760832067878827154415813758393444140078893258015256866603163966159763216342953628911041447369855428392857206452231952429810162589293611923865033676604297710376015879046382478153581644803550210875798891059929236920272383950366459098551944656332934363201997091224548189946572330825840386134587302888133035845678687676511469970638256775614648486631764714913402556532949974285928267205760736966469817786553756355413620930222185110623949595532826674916120532889728802474255331681095564352444986623231720150645298746135967957832063393793379824211151470298763583891268551968412657500608132910212042524880413035673439800666656632564083148226989586874477350596987777426410349751407248817492992413629863673724701100997429650618233522687811685568475065002571059194101361240113951650648426367761924313184125857095166756693608144469962282613331548411540243572860424527588457410304321209050858523223627155603750264101507387906938309806181054307427907510617048380637840652657924363807194559355493525036386349617980621755969370167367741302430499213679348971365349519810527895701847180137557103028706482715256384991287795115689428812139618446684888959536694597698616844844848716051417966442952135549198785177721151006436199761094130367442317681694794702271291247743287459081396336077440418649228052342435731324052817786279482321397940678727255838691662595116840742629051627461694118785083726028306516287165602365404807099268967440590628708213730420353902617825527983008042882910530332847860968474420824194346798546356214029366017767310304039043908598615116045332073624322090353335111215443244151521557553174925693742892457029443296460386506850678795594302177260098273024862917444112207943123991040235557295870099353147315167147617271903997788796339692153502096964426234846618156719337360784274620644578839622816975592741350499371017085144580693007488296322325993667452495470912050445682305549773405986314219261135817086082224159833097034124338615455665279677809905194868748475354510206627753100050085296532596039424762647176323474772840833402167555821623436179531703207579174533225258067300278238282082069121369902924265328400920497228498971083498374863941145315926275815997712108576211384572062429395749611392925945891095584850543286551818663082008955324329741350333017935560713966771975764942099101656524438201921201266606711758248438253449899220539106398300260434427242548228505662242977221803489466504152560591205481330956685221018289715198518376921642070047585919164530025636323325856724417929741799531959869668710815260189416059274560596507616471692952996431905100027225314825026146000529681448420144895954766317556736322737019625451316207184685511969275778246111281126961220412797146655652605938388890156129427603650663916147399432689170097216109315795157146192694840480393518461374836326216165165003784747697312735374500732611555496565692533421836515933163974057835936621811129818579016359688846410477112810480685231256894927296079170759037277490760501820885751154213696078812779934998301047714647477186651367822264068356989307907915318174844900102586546529394514214011351824076948964764835557527192765273474365079763148920956790852854867875246988700513824866586171398230499729165541359747412514975066644760780417787679465951208887869304889397351868625539396332180093073964843827230358462775401140959142444122297384496974570791197831057475966622463816351117661816128907757156472874243052301973200370397888685392370065659679419937812922518093905690187353748197224190144612964190304899731229180520836348946809269725562245320811656764929644597511922522533490279734132068853495858629178664030103022898801987287102289506123961728147634114999369151173988213212564565919887946264509118955212787488469106377961711845665107231255475427516919777243146823262488411963441640145522914348571584209175348708816015403830747658604894233943702764535885292749582492956866902377623267594726775003447517489686703787861338786071810041760566919948477670121619131873209740097069124587779790963636314607821518214929012387257116400981142007282648088686664891801170458071834117939829192456102243474583586267008081687657376891402816500767701309182783635881280937013920246378416143625124438235278170612764882427202840194778225770003117335844374002196068406085405589835055422433048702355223407891722285687646948445435558742800758191230309034583267359687187356872469181588689440035462813352851573983771402504268536256818936551761783737121674225212552310437261615932638952354497698429026510430713133314252974768757220152098327480384474343238179622156322286628010916865031229830002041322107380562240069656422893772350617764725436125039043625492384062320751964685416251845996223952695850361733781674144937023788233060798617174625635296404016621003887045853783311426729932752935081933916937282885513766318181263431934242957759924612899968130018343980107564046129052947454178145564932053573941397329762953346048126873081501366163581491041872755614792308028980717760206643370952216513017022834701224594026284541793959195230171794819717351257623748176017282972833806432421262879883766195830389406018117603509530233194356144409940249834591242936440128058357239848429464226946945117958220535124382450220924479258249425589519830346785728704336934353074877992424938073556220949716989124482764333609888490028406764036847084153728955008392490941989339137139598994292259005806948916811708048785626519146071910780346823957849147584894350702275290362566979804320369829981760604974682397708870242238784151119928626898396382641497842239534035154994680790532786161848196808333544465079233227172912313523159591346219305010261930571267729607581889914925083425902134560922728648876806983302573049484514778561927779480089344280720020943084934153165065766649812126721449933749594944296659141299441732579130379580317306506253334973908792322521361758397290268523966754275581492691392803119875743500442173597005022760020356648234686127438967075888841098928640481496292301993493266719562498594785598681298910417442507290611350099596114278954520940454619617378142411026888781596072176371444982833830721628207449334844567773764512976873631198451836253828741800950875117347575829059713780178058012636175672939400714556153383099032058786008801258767302685110265744406428890152440711723709263054328808233701832104219827631036786740456785343571657759938562689832757629276525077369801388869316752794524432470437488832295654205286003483939619064272967466910844635535369956625798004923118479037898162396252308204886703233696385300726985530708471204991556096969926382166023758644035907090180047949090133923180952509651658929717110622232006446011836923418831167046084576287476996492306408872318799308479550351446369220123354024278724870481434562992710868988396114856965778469776321573072314057543454243070186421353071504480113188317952066757182979960830090736708596668431724988794012122532580745380237422955417770102620422833690307364962919870693317195844833534916727232808373135262156564135413777639290822776619131207735618657623421015603284194380222978831822264823613648870602158464462563338783765485519387772744259093844242163591310922955037776839085383525073334782941069305402945626584278278014748116876210945750394789430664403563590501667393074568879636182227517707240979130592719293597772928361767451160806469091319968826140733724073931304490350895031721882431814762978888062088173927172793742008680898893650617205512889077993336892924390600881375270727710912306150085795932299504321529556783102942302341810630469405359339082715432843518465170093849232539068811152693659212622429798604544779235909681522480356090147032053261399939511306034168909023155458208262261250959178869463600442994360585867974211395643850768669404078325853632384702916636743308690413797117820598305274001748828046831596155774438132391612939455427346736781410221540342909917355880533937296597494666885406270209017262213003100193566667995456680508041758501121810340978513677307003236169010758269846442951695680988407202949808120782601015764651379038175022464710761898808283224963658513445067571246763132751757818074597077633887976840157247625966856418900979483933402614901992439609487720136026138903115103209038060771828861523053036142512046037037101870168441544511030953968125802580451527194582230921615430773506685269673507636443118101805072010252034266571043014078848323996799962771378870023217899062748133051437173768938782977365752651545059673439469336149508378829122083382560401546313102964983093344198426254520544893514736891615718340469963690215992753737204175160464683208944698183893870346253440944724891444596087179366342016090208048494722499741008304985756052221264266035690182946158345895816860489515785583810481123063994226848776936089715221239688221087561549468066360907471790838550187182009073337111453924005737144619166611403585230678338407637368967923101444694786216071034695840405759077826218389836842319277283777467234840501318925917003422254171420287951178043442899200274529258455351898924627163902118414478638410326891431099351970933761855961130340796536650961412017559921583457517458249424128440195993593049894804645051247361052349745151776132559150700833808357833936984813363535554628623407007543842005568437994654335321883967334889999170989794740753029500125623555685025434667975764133889187627405909693903060613540277529101021668103712153687648871963174849213389076532476976506430215873966435411818178082312407834601887827493166815414608678726983284946895079276170465624681384522955214590664361784611637137851040382670167875274636458678712808877584988974972817701751299907141665280882713366945075526002764840736442967727348351672927408389854951869716746733742453345900298434286960661335751877900655824766034589888176925819796615183970945999510623309109369947187729239573281151705357860756745623022149819829013219498629308554718763169405352870159087216850249959138662622431988015478419597575060322827283945877125385488745502664684216232431585784058664150309276331427023771980178943229989480652402998571236965835003529633134820987624613846451311358561452042599354249950234758077340082241407340592829767695853370375096018815516677457039214239093741440297719338893713016966636876406124703939695612166315979735787162732492780919532416692620432062244689153322547801220857647092253893399518645829004241645439103622890961534750036297672050083820348897507257907006454648220146649322489564050882080683897404160423996720708802703753697665461981079368306783447917527240774986517408676659220078127531452454802768692081723739119695630595555433113741586350283839598138103162880756588246210601820120380227480202904968815329903892645041886224066077008328404197169741065417579602927008695391885303858273580872188784301308111449531729541754436942001687997422329081526729508292286985701041972593837014181963642212839150205161210749513281366626102404230473650332961331180660963658616687827954470905168730771182357113901525996384620487861651334305298143705988410308171098995169554034708299960107051441525796614911672315016573305780748490835091191403540454302017759451935934269444324773850872689310318746587006083341378884227454748498735975107757017166012161209529773392605948493631204337669684135744512353587752528958685945097767860848358705010941081422527604342355925018613524970463877735631764375143773135352378886948068017451332893580726948038932356984242642229227109966183039271982119532556402783181167033593553345042129684012207389224226005449310882891877134766185563561100556961999402050214077754175676054146439789386732250752773734133651566270716266582335871417979972922337635506362981255185458037613828504389620935099922227034385122864507246236411753787251520770893000145584616128781949653178960572572729862901725498996316587974218701499257601225304442588490669440791315274293317248453000015560935678604018214955100691612684024781732616321960023050337566908464278148494508508999661748980363987219331849897355248638141799630341718405774249302735880571022221576924062808752146130217811961958071418175422275161351608548881844732444275589040457874852320839015635321937419603647511954515587498018640458240007879953597269231353346210932803268514895497342593237995791072969000881070790858585866694327945640094975712298392072823734816710510730328598244749217291748514327000691862082058036592580395252633647984651511196768849453418898529678947678502900943733877041937053931183860487253305791649120811853569517416865959004212883679673546587178280282319593427706200779937306955693512603536285064604926937268413294141793504306817651308174798863778698557565225009935675674973092496643234820597644208377191540255522903716230343694643743805518935580074884141539787486212782505959692247677465565396103681830579414729120357082923602002625265093668858987242183751931896126400418377589219163292547731643661179507183603612518017397994843528004007777954681159564370681251799110152217914336024231221503954480052511046253296422664390816782580611872087921779970961659267554579308619622316737716909179714997356660618243005270611229768177868237343024320466953615550518009102214749214806084683236124868518661345564788402956856067873220029664351708064275254785940004648051640161113156374043295769095273041011087576696031280147273747855713635375880431763860723710034187979729341163863938725201645696517828158450517762455259138757884360533784279244387205498102012418164092177512015130583358464179759539378211270572564303627393996489723288601920504468207649363145249555607278312645058676968454386147644813864217956596862294793806383093818783181335486136446154430211028412370492286478934466002713336896062042665560186775176820147240963751655046684491252019927713814366928041834913379383350400806896205083410100334176801941816725904871832317188975983387279855801821533181770264503508989140462168989925919119212267583885941957878361020515578563434143750190108609333986959194194963335021497799127830338732176396418386400126774811973583084651816632222140052270497803820602152432435182823896330628217589727450042207057594503069887545744959541759937009873998588176529577136537311754613829787478981669913943111587850234542140319226161880901423258545708048439334532145656070891849308304185152448049130077680465256507587493131444926490505851610683711542079286733115503037886063929272968910956197116251155331072113054996691048879906952727713752552576128012064216600829784731178435853717830232443544776754081212189705229555822339984829803700707234695807238626384614685636018136839428634004077748389041648888403853794094116220016837058574035146146199607661166562975571987344135704736954037204422008132781984268084757229998037825033639033904719016389879946212352527964875811299074323292067285481098708252517093049225512897384481463310442951465572728002025970529082971090936084709906151328128407886713713873001568460335070119173582330528258000891009997805766672868610460141648208950328390006290103166052859630290275482828353877032860703383354067052806934909765523432741104281283616051177156018023517729422415208205916612775871427919956479386096324461808189625650176890662962163078508483986570956707305449908759944265101512528084825832594860282353506423882760651325238309315578912147669912564729185212454757540237194833659975232821876282178686631007187055987507545720727362088882362834203659810364023905641620552108614618093284615147231298346261765854725381245073832471935622132268155832798060525244539089442979735727232482149393027171136150187278956768690504509475839785553466226268166711474822810112319918678867616061956998335866982199543551759194531099350718738959462634723381561897028702435968035661088806565085895538166993929867945162438354680969890633594001601146237416887714457966145808615789058168424183717592922273501347669020551982163814986379392772439893552937888714945822782575497930396341790851140441617323646955135615302874884351044557357531572855287217110540678930884005133278345110099216840491316773507048769351258632677465731814760318158204840898542366231965461099649674577707146680800542829207314834581447653098581083724911442983278296374413438873842567813138277787440278696054537577710009854853139371888846473505405022808825669339387662793473933776588107076696077040257111030116506716377440721170362883954500426202937156615209255135551304639737556221720372703636573979816420894932681772973967886124788038987750240349324005657580386229912417754845675799650209233708422936118818267214545242534933636475114647382587245967649077656436107076730627770335311077057742265276030259454780195085875067099352376524405206976143497911942795980085331983071435134394619635182128593765610823279711630781201434134169547176512986134539936408452823378913915886789826627989993078797183051089675648950899106999986271145032054489108421946521251728387190736332075246189825077710820508867317712452603584148521679699389386987136555143055354486752179280264239308225026676950875273396172802613468066561415990289511233918472049302507426520216170551535292905818135584520630705605619466043592673183376684683145714343299151008614731637807326552327976471945977659515965745620833890224276691413686391526450819467141278630629004145767964157551246059101623489614772318613164026058707001789059504288244011659176222234961713841554247363231423696042859603820062215148623886835471718988930667394773723540048947338857341506572947486861794189956022182537394596176984645874521063107084163978311998178152472730089429600107520866638768373586178087299726646354725538410530509050705896742805832426639378827699074010961621023657531864249747005522979187067104889497751949912219112435516635710379579780642190176684718733938831103450168286464653535676352634826571043506106959964322825924224382212834982004704700847594135549619059881551178789178080891215506086548416864811104623075607096133816326032519792317755470753286766642971816500852806390061286433355553566874800812696464666170734006906083081818464500929173607498801516855512127038128136651057817104373819199772667275155453467310892424773672160071165596435299794600943679616754906522236549160640544170942454189823191058785638686938595162326244215385166760762520821739202979709714554108068557168869437288821046462801567949609749246365996150997497548396780421054392671568542952799932421748934059801359349275352927944379182540095115429285350923407572496220447554910217614139519111899756619090989272398568181373622039986838865711256688782416736168498936114116386759053986436757595274002322132503734196364275046507664854500728368368588925188532045348933273597896324549431882017043307829983342235746814331738714377307311107773081273426928742675713538718782899161000415945293826899650287906517920410746704962333611333744012497614311928503935742972107029727595004792493137014104032662725384876770064203420311815616770618736440604559784056403873951750293766812498805089106984385868118422240370587324906969514541673743162940793290514254579268360209518052546974471076395886656230505917030974629080517464630375497225573357418383482020336563197287108265855342944911075840867206932724803208755989806044201877571295518161036092058380852689712177565332508796002851005202495030620647046371829786802356374152568632240664138331639152380419260207218894523833491701734377070876516470963515463865002771961039813596467929999673253920320370292724568667087763582508078088895246252296828044754077977016028434265796568688455615347584654521497134374581930812611619700828693986369073257380566206921308888556948132948240126912369776519894238155817993373078993758168463979439077303560232979482756962241105379846789244028822997490582399181690775382990876460097284389534539415508142706291890694834581005042839962680824381538698647954860562645347288054139284775207931155321647093239078061201576651066680024933939141732617324772170384674725575945776647526450196854507433652840066565406355436152933873762896902843057507280904862793791325192147319508687862546100840130162387347587342905088950405868557304773506018674464211549217248657378873113128386165330294759170094132630306777723428639034626305555305614966041004402552029479907536171938076311782828883000615619822394970308961679132514643989840683414160650889116467321399722174717839721634097248092885887673995950325445327519085639552578188015020450341938893864046357693415575974089439465405138582974277275967854556470649412618276347170585087822379088948612485414315874516983307140564004802171881477813346414294114707763372878177211479671935276332834335470022793856023653946758297452346619648926062333336436608470739014204913723935464599294166849791130146665210900939771501544867542425580930293839022920500930128563428491382255074661415868186466821228611498030822831309459959767914362991906176412214028377589679392100003398430035517346629050474300636935632714540928552803985721591455867973533433874277204702260562656776982583728396039878780660702097583349582892126683498588041286330281841160376108416418014265509799102561625903834369676980364373644635278709172662345375226440135524099342281300611388922660959255017468181702634042713553215749252569119113309663286446643720710198479304567306971380181426069097677414843649255125599450229606127192324222479256775335999670541236769581049888121202941840707554035662933004356094835024952695917785574959695112056808764031815090217870827182913842262049818438518718191298670954973378906075250001913801928933123104502106857074467839511103516602570610227097952483903622188256217783367368830789483474942788953587047031010792611752987931935889424947350683914021539712097100063411509756780237018647655424656669277155931963412971895945660326448824903073116270381992669730443943821894709470798840335383226571236273829870698716428566522354043782114806522098280806461834776860662372171656899939801674868561589290543355810793279246290794691102120298409817616628783861240903679044465428599403689293756680582040791525807727985262311522426023467602820487977829402396921646465303797090097040937992215825708999741203408448482781778663182073523663762595799780099311837892863769977167785015173043041363700093971396457109104431555586463501664164403894646620246591768776651146419749651133021318080240101485327500890607125222720153187895991429802022758765131763227882526403794941211475030510925771328988842058751057709093398341433144273450161306268707068228769327555332141138917981406939341112761018474778389416001892812933381621044673559599865854774632946306620108198658403476609212044862960140009604037579169042895200980136008075885572713438774379993551558753077955046720937281952222801297222253996378431976067220681071897645622614091493602544588387610273878585268333201137315882974271517802495154230555061148998855960453728031449259836154661483463354652496571218014494707927163816634655261715108782582126203554818622388197574177584447461486031900779904651035541329531362274435168030706169110591144717548689786923508062742871456336953924704480924099014299243225426888419905154026764221016996790016417599710960961156962808119002947857816719951599159052851830216563487363724628636042129858065681604380008190338398509365852235567488878371729254604615145507574275910460730332983317777420595572996734573369337796001462279947958421119047829413215598987993477864171420887247600632330229296730837190252604994164846995307794784593738470985422391895718234878482948026046002017588875184585264522899274577951073041341278753678166937759381510022521027513446113191672136563898482197738710087910435773750944236512688518697097545483654245004825735208811726543562523543698881135075466831099967359589928664010703022678393549722086861994570668891213213772812403648613522509313790323478231260120834486706950453766552760478935989867598041786972974070880860341607922100512164379528228512405623238241473658823173020315301431897899428154492699870526456280122910963913516345800188691387246207136058395713035338372873503461804732232936093100325298801960250798973403565771247360233962871593632371082618917758367592997943766949014744779659205022430056968073438054700160595062582954669936626101666416651448220576530338499394767205759510463743466078361739517733326991572572867707871738544698685952328940973120344857723618926143372086267977168790062397735132961670964903521692779289811823373410634344594903356342225812507134852167366781920752307842801387481038669315697588820492252040958619573735776285623922636032195285249552990072904928650811115783135310380957565188371747107606838707114040671007934738301208232954785317833158930225575800668112849760305053125195723509788950536394380207613657053105011269228913461424498990732755976314496303550763463156286729598499525471435740423332763845075128225676930922927591932389277570644923501986975460943028105598745501015606922950406714912925215335234699476286248594697445865158660852601305756384464220212940754495420076815118374666742879463894303504349187673044336065045995593602779782316541527988776351016016641644568728857258751733006471057785389098473497222215212617055456124743202788815576031264371543219572531067282841442176968917999940165779786168337809627409502687758448731588697429904571983955333566935171397320256914433735995842947166543464059121684501772426922560758914461944182901834362922213652143956840532153988465765817335784428784524530445751133149630097473356810858693633443692760507693241090340187797869674344280560134542117455092727493249767106259297903414178504366151195103593906625484413546696710157833377413732349814195687227205345442604314672589240628129817517363054195623430556642193390392276766058189047099928167573188138426398065861498770144686861980523793992018857308759675198583466397776366729090354978298789548672348901672032769536388000078947612476786583067871238947621524955118263696711885419789074052998925445318305295699397274656806633192845001736974328743346908251591557798709129883040047107126258460815478135795356903050733961086190674688309697697343348309510054103334590071625653989919760686260669142181146111616688897796200055614004695696139427358487511935145973043607198838220846084588321324092453578095270400690563720244525900122572789828519623690145291611460640890871804414027861923338277048666072069030431002140689392201387061027565306351017981092908265030783761673434287535975734451334200678350580801969292985919668653027472750243064548669730267374137821613181092387909223790159650325270291259974264353721458256225446760312873371697615531394817095490978434718072643583934797255551386875971762972364595701874387779509917778655620630122068808689982207503948434735328910026440681951092982697269898486508313845639612780087271754760028902286625923459324806427340387049510184293385371112277272587648335405741404519432747452463626683563057745205000609862586281888867566959784471066612625304592093207554310588268258887836468963154314889438368988418535085094764435721851258070300064623704433531638032836735316060665646494492151280520006130581669260004825663049817943704144634518023517669250443328962132249869479875549951263196896721957925855810765542681959445750990420539622801068240799488672018156236111581964650802338294246464518242379215457964332356160213118170932029642501721968590415487442340926485477467142292438652636101146360134113352863512412460898059906999608840895768899351156925456147951299991760664492350503066292562248808220976714916345922571511556908021705380361433856783950363282954309277395957098461858095195080855352038452507249903675060718575162603037691893238013426406394424326049610579174471977220917067657843102685477992017398789650750065359836572574501420021370781050083751110219278878471006541992852329881640553641626914988310372344127035836410923966202527796310555742862595792963521912618778519686130498002548425985787194578204371465854990967825777481743891668657939094642781774545316513870426366191438309460870127578593566136759765709515088895537927624393099573168296079546260972064975327912494028591776677013403716838368322437026815789300138680995065814355433495315966830910061644678560606233391021341934552944984148788132978289037804993527324950783630745814602654277013109894213144200632236592281230451608865609997041333790347106210086953574458520227253609975134378570007113732349550755013663946184509071032666957739569464836429729972013737402076864777822762917415584895623302268692938909455776492545490559654028981365966412540554942255359059135774435966552224913847067506894164626993104432370961518797242736661484790633627388622169580362161114396016297339377839510161613435210212809857038247800763516650890275084469329482769639897978526218180972837969912062278321428271933630333774058257786380698620469410951346142025100308488259624028083090415810650212359306752573646226646252872102966925741668126533447406627432952081547971066427410863076003827235892924911193552269141903687279833056375163160263557917241297187756026126539632698569502621244155041451112656692246579951055922572896609613563075989730872176240908866910250404187133710020504046469902856161665818017237647024495331331307161057576614136454242499306039307460706958811859995403330787124819293293635589414079281611753785115115922760935349569194504728184650003734232955416615243543288332049707907028946336625799783935354373685366970087319288944861259297486066487407051394959215748086365969056282745163755054854201908317717518324150262747689262624226517730400725916933693147939955598106481748077624294240031661530461496121165241581336175420502227490551734940673336940819314536176534656748131244438425205143146787120210574189655564991204001695915205026462481070052227340923932401026243775152209533997791559966377810233830478358772774691868640377193804889635658011675767664949289156330774213018441809724713863277967210296391400557745386775660932977085430779175333313065409258657997790585911502468516557193770722079449401843315700058998588985349347340139725432131674160016144794538624373308557533256859831071546313697092614168787450338527346678989882353133834232402133211356518387498705364810508778531656606305924325878187749631774810364779128939576866397947709228713887954549945100891454481460185209298583265007204124487145498547789614955390780468985295238728424071172861486207258256249232527961273476544759688346235561248428011937071413126613091014324944182547383079244389714208352156533594506607121505974476299373839500019686935470807670383048222713949051493439142208836416816139080586710728079061165047913151579473890831000219521188643381530040569289193367148343886915286317016346435522943406749949337512507847828460881457340661585813122714197168526324218015417832817053725475770381584941045310815524005894042706236980554099024409358134925383241179688478935403635113602755664833691002066573585368033018583920829743792807738552207059093131971211395831057943538558464273945510643136408321076428757370338939151362749046982572492187334273267376915241234095075416961449531144992606675811366046130472217224551564984778309007077646696872545077814496061326445816548398752713532622422492976011163246756658006255456015550177009442769253093538397107274673496529091414403484252917725082871641395187672224707876935408174712639298866677018293754334134035760989577825605942445956119375122307566055658047179325718562135232738654231159172491204753222406205187697022437995497132483972375744473151149293072883991506363574662139091942952840545899187333418998881753499594232213595239697189809665049404422422707050556011518793598574240907962601371431652163107388435221192982959046819433080477638417850633542925749835596416568617477489405265756304981695941592959022447672062110827550357897280252591820589276225599106200576911354512431208204037853844914323466974056364602983501882458167174204325010370530148255991804006392312285838715350327763983872489630302532684991989746077569424430767704372590687174027291968197726328635129993529575072925014725734774695361979208390949406327753098331671520628128951389121382022950216952132091169212568285610263553126778322692458387010888497611510163549156873525967256468465952952031296862904601623990484433136381717660089265551896054764870661115610128869749446135180894956476053221470317124189074958200506138251897206798786098321219201340410133940042611964465099418344030708452428551612699929458344024366072085791310232309708093942814067405158331089974639838743108945211915523508150143051970398181214606663350553564796013728565990599570455220163468251679571741600711736676683573277662804308533191927027185529628981892824433091931497353445532676554681329670823903777899712891052294416626157318089589952049748632581863247246627452516781535408596103654036385101654853302441975389875811868824319928280021887327636634692093901093147603316783822695633992585092776143835606585849243439000518309082456986963702636123702289631102176917459984066846225739805509865036852633042745763717028435354641100297872055289732989311250550255933548682480828780838642481247753169537486467510094952992150216499105438298874168801873633942591083295619755867051636293131976233478411826801078843358854609466083311374646338078474051082027334268551392210497888049730933793174268133929110226405021742929632348521529257356258572658899405261845027181904642405827761865879208109661108266985744206779655568034317522068916933168541375890285624257107027497626499514310816802777167575375016038058757992494251914920330155669187689234322503078031817636886288818144086977280863724133707607527471242347893378963451362215311459749065887728127829909486668359400645470283749553263802078029624554026773071941320720487742680821568087856340868068200118889820323839524481507461579917457787626072782859729466496362456344188307332824972297558930226161481399316654393391956980258555155337523369458428720608593437061672813488355411943996061405225994650459744468792468129631373467141542245625400937357530019647305838789026036247288821875378859720423351428041390525883606540177727759562876295227242344128896539452467036171543497188628834366648304391540911635643521410177723289700633695194553465669094268678454722724863802188466442519327082575767776080810643460250039758240781073796936961011195836413070429048634579684889465029721525252849179626518194669363933589656171187503456790317634470050595694399912620643306164208370821153324172509604830580948238370852925113403655275169869666735980569442408296173264118537602960542944697009479868182743745395700878978768429042386738348451319980966411224420340452243251750058740566743626514782834403858399875136130099933103495349884469880709668971889657310415358417851510191304863757960654503982484362990510116010533436812006345352026409265052444424657489240042926686124350152193940131364633310164978306990082670040813318638454147947420764601019495582456403482976149210836060191866199095450110629716752693919343747898061346566422119348157771463901510749240080297628196810752775714976908165468403197912345866222589875180565944354119854744776979944355163654114902462142302969014069491939423878282848831125790237498366656197842902857710112926098680190554853355126999712765338751397694779890449392152559763714345009222837047302216711717680084156541269719477732912415522952654169565395252027290802275251295759704689131996081227335200794961547395991670597392686315697836899716551002145494692009526458934618041096766801957895581739981961805373680286597796812592104239917485402401873242665910179603934537123970418356471242299821784218777087683464652057388609083137328816690702787580106234896107329245743436328649945728967669210294348784028377331656295834468251287310826636423667149246650576184404812066058323901078795508561655081772700266076736878011904744000455524307429103174152709750735167529448675610467338508544309180036303522658122415451806205000100967964697971181683123217151936022077737087418756983364044213069910455897334918827320117414482267118481742077401350372275601432280466996859037145683219853732005258701839735429712971656730495071451015046534558726361863792268692457369277353018399115015397207758800934765082438686967524559328853409492543711104811999716609025100582335549090100126847995517545940667935867402123638825036692182478761685740016609220039345161727881010869146495382342188600560009137727187995949640772721338104487513371822663988055763855684301514274400508576126040397706973921331940761146633622645915205935293784553848251543234957944853794528321420142146496323312977673150016510336243560276801993597135093754910413784824771733023108552910728091390331137975507042724771363249605171284857477529357908270981553435959464676858028224076378724338650911317739827984588583046108282075961675930382956495446542193936849740419360552661033397686086501781134269647026567597559319126323561921726016798042318494324877809071969905998255411430153889346447249967493144388766888153080160255172052713077139609401715243549313729827463266406031863992980121965421734327642141733848971367479378572628025983552522646449385636835628878036427715684621906064355023218083608984019762510130927872871578401159795989411603112566027463436141013438886601562212642343870099753356033051406314286706209806298993299051990308990679809362547623729378428468048679404813910032248662541063392270490870462688573028060637440789316538853424638411945543275963184084310986730859162101801556144982773465799130171163181831981185825247686191192909245715068485402728743461594513535342490228050884143510082295654031769799162525024707609212150455921187933440607806269543806022182002242175034759161371666151257649530104676724317029860979461923243843946664730498433441572715263814808564952533954654381219611442878779195029919541620570100617951268448655676641895443510219607929143903915530273551951474128855212368548185526374964920648795247249184445545303675476075951568242912198054071250964964695190511287857811852019672334275333611142919779001610578318449031841546650064219647183117896485466952824289113499819795238664617356253324232511759745442728781923329721933937636656464299900817653285789732239752732986629062724416037634974700679964185509902823589626631260158182406173117166289232297671048236425272972222804330353729084168327245985545218895375850086647712013573768184880103747936500044689082487846995641912558268825655507618071898468141769502238240571683594254938827092049378315040111543024053008632965749963854989844735831671447071054183141424831377831917776018982815698984178851085454289924331240120205844972117689620540290551780881105717605066372043443768040867746208694207687337970838671000952808612296693929725491047262171658439516590210649707998444855030801988971664973682684373219736020535224101199523427475082577847714877330018723813804333248430207250855305531526881848564550818436912128431598683116317620736503522807517416657862202451570215329046051622612264775528154937471849830024555202202482230967181908535940078018206202634281895047864160957137840081422942965749600924043105692799662851258093977694244167082480711728030129591615806835175082298288807841701785768909344180483178930051821005506715603053980186047429819457888075977130401161384007952859327471454333036034273968398936402618822166930540291808972787298654477172301543144619093790999468905106791176073562641836239914649698082857457732600734301848287966771431155080243165581647810115472526498084615552029551764536589508677474744064507714227421061294242639223785205188079849042698853279132866556205279528872300116512054174581642408475502496133567105691428374373217758827185415166412967325458143915136441539788094995683463564590908648124968589265922608671614434450402020254243309328231230521445070998960348884985738374090473753319603234359631332195339398191480257069140693255970734123826295447717126772983386027859655237140189436097639373716857914259802860419874020352585715767700712962653998028505494347425128242592433517524943997793884629117585423947893182165297266720969450386473675681978491464252157682383761132834859578117853943421677303050673629045507848292334127015166439013015633222655899449626204511595848468921725875881119559355525289381768119974066857423037791813049421378499195581801727083536876580411807817283059934700622592072192160367211185019859819604635494113794506335824623579580334972445985904702252951862624283620848627482608260973966937971967025412484403754074749181691671345743794691163330235208762219899693367782115330746335349840921551228823875461353993490408066997338486234721400889996316081300155704278604530192003035933687840866981115053357205013359894582763732969726394516251612324691461254572565387635590976638576326929344976723703075506525078680538723685515405926839510067069510917066936983352925334575937621082138031601409561810505975672118325729150143193516591206998548327070408615143047843959904527419577917646950818688093139118450036081759155809459044434142713963938569715430904987147110945669483423707088425166152639755677747323609760427938504824309230898105888640874414592468878360188225928614052712451213805150341768966358777000301942351094504922028023194135968532131157142120973163897313710286412150454914022275347423225731898968640883105802079750075647466127195536070222585850823904266792346855604430987454066551100833919860117300799411808214107793167990255456238693489995787091077940287495698301543819855114084547642459797408303261710799833108318784083076458603233450267361525762695044896382695360521871038700779896109557932857771621777645437207383854561663823683184521425464997549198432685599851937516874128363397506705741185111065880306461004139419626281299491888670415497077548360119303666457679229324520328601630437938429646106391685125716111001389095832668683825928369454526965411010982792043879346678053435052840949320880060965437683914785464823077944729393385762188066473687308185050190420600080736412846455143985902099203708062953516195465579800758611135777416589106008871987616517573694886538377188905680651911130458699069904816647256071813018754085797090127847584277424275734538193002609652152025466170010806920915434499015240292717410563355798857286336137388294741802059204748112287124535308585319309245274674599892001881159147915137870690316176978311837951688311744477986789115122287008167370808561573193457266475213753434221557667883609073343671002654301007995873490566813962907492953141462558825444341454433197915693995727375381681275598882780530062400932168613619263508458773540228662310463120684418952057702443268471220186420210721862916034123437818164671216973753681608662131300323541588802437000763086294003183413628197199345397403900880218941642573438748544169922748085216105115171463188252361719048738281496157264349707691319506839739126384890409540230223166730862467650104587884974472254186964696418419150128135673215930189145937345694485862041558344543663495713069505258045685275077867446905927460850720125360906815098487374508397177318801900543056560357777582949264225158025191264162743492416258432350892761317769935134328535483224306081443019300655623569567980823850659955087773855908967539712702703636662057698658156677540181683247103211681657804546194303281936565932253579167693524253855089905618705704291195347059620301373895305820906327308383458121663990047885555609025843356941941684448991101064167322736438935504945250553067691361270790584786237273560105921489978491066011512951018974125525951724617131554047257512740751180506809446666939135422160681240723711191911880928461244578007097329784933488042324221666345825270660212059042068867580466938090534997879041397633030038900166713726535961229504032619198130592129043339018618604088247021636331827299507241259215025504708415908559881822873541453044844787168252117995202604796020418643338420278648750747866250626926863309487674798935227801614594261212849599493153811761996800212553217162892148034094215160632864155916882370353396967643045112311554197838855126703322030950763420786283635356382748830561203297176958705848961055654122926295465513760654876990791377479770351601663512204543459136866941938979267845571495934863189879164267285738053643192861186384583709751349455626159545776266610599008876587783658352238464632593276759041224884592588387375407921407906152138938373621205936648309691859564209366041973537465337510261635021778650795091656814752245376582143058524399262748403516473707080816715524196357276055682269706848348462894144678489232604291679256723091280978910668686065551451023552888388469509760067957728744220371729184360194370620252101209980186983701517865941173607219987526677063502554051203467511093279214027916868082515933595878507555146206428874528167975418902300507021715058017970976027910907959533376518173853166068222128383635178899698366256905070768601545535432000879151068647229833469690078036125599441347309156734753504134212914379493225964236901258131829288443939496782370266416014331656864401977668899670931820617732843179098075812823072553067878391005683207923137020402438139208719378340975331171925932592577145793858809462512257072446867862789787622732053363768540887985155578396603960400152699556632573990949013986633640570839193815468493445843079627713628059242723717200924901779044432206478927878410872433137072519533254467189535897728083609406792404889122397869380463527166398190355477889657563686387465302579460304104781785055673947931587918832577616785350325720656307380545416257223737391800130621268896823949032345964516209845245595070687020859560916102245294563562601404335523899285933663657564735359584626707551673807845354719627848097890528313104840638572384530198286698935557612405054230680599750088363235190044890421612594196604011325154315838027033579811742308393025295478723174726054114722462970837617681602407638680523565729098669305188312435968186868847005001638774628553965395075008037377474135572339459841400814983680436189399369272254672997232390439992436209111525478077153210702022922621214557226674615465339501209113759295139501967052431134684838048317620241290175490296626095074014832232576229569142251952983352746656217549104196813985298157817140202844804580865360445984473089281175736023871058454271018669925263366224298707706237053546249763494233031127615684137870041810598127021309126319800626498063385687132992471047331769527203483625235506299378446310082995270808865925322627807729465778826705698959721406474859230459270077078810129731970300411706958843707419539719894539247838170633112012670666828735342700131491882614084734658860824910455446055422190764291092678097856028093393651627288004254774068094523863778565287910260504165917730291608658265092928343881934838430184208423960715830926474082396270014971554056303779659220978680412353734841632314300998624362949608332538205051650198358044600386684728334131096654507227848589038358046913554024857849719353612481269153517800576510414595888054833009038373369062339388297119481060046049764914960529869796914201182406115382098293908921426684695825271519258965921673715131099235093955407122365095425889610211878740184925777161861940553958182156461828838707717825667856717017807535428215879035593743054290764091428104897276652086078353906672946351143828448611729886440560775174207230583615414933024787526185508926130727917567051255886097395293575842706143152260655107208093865894765006343597074638030451926200725488609424570768619070661132838353223554552891659975092504020322030746954510704265161303697151052281372346104704323094754093164462575438392088809149717822791723590195368534085395100896217947005043043156631684468237054853333677084969079335165296319533444651545935074277072527980759903007990988636426180682887170360311638513194381050216230031519094919353048703375286470229748100966287655053967540898313947791156396746969110421780067862259217058109651877869065926255607886976962503734180325069280006867979700836075769643839749589725389304462742489581991265390944172161588506182230659181765588634651632706814101074287618536532183175156599111473872173133491315987192757158746081724659176772182601179980465299847833691782320345488706152657332700559229138327202063685449694744015098603172040025207005797950869013157418267552539103015377127404539090681360366377256238680690621651736414087731677844307628250958062123268302754517969933950954017415638620974800683572167515644542075489829626451832966118136361739015687946879732935334800445118427579710034063953514038311588286574421131560170075435527332929737840029952158412805231492382834028733196830655549289517809668465459173598377296641861580778272998258887876865736701310410644951591782294016980511554103585051984929674128913147485375254812728785116976953048182899100120380448453558953108093919335413955363882315578484281763898062356557584698725850171514584459509193483909107411270319926900509046935952535075083834901573501149728268480533876079598952706089828882676050070874949196371797345349030421588871096841686606848399365591068997737199547566511820897417733223439743558867884297744317442136493007313012633268897782241127306523480602227494831877901519295919864960937711938890228436748859824421296632201436874692225841454695498198917909766102492177083934401353426771664753989559244876802970334823355440554632790226458346431360823656174734342226917898043807378971718019666818914740839501254723213716624730407917774826033419905575156850296349404773555374284597662490558935153388673192970774364061027253000533718404296949278491004944004582023953332147592717053188755443984004759760174821314991177415844608627184265797032206057724762201020226281304794291137272927321330026524513566972104901024726291717670387968775135445148679827705280835218566621829575797381441422806692433656722765462530197340577527172205710161056397436715753351429836848638867556513504770813726319357150844407372723312550724648969984650228990451581947136612001411179913745200370040403504819162345914046690459893664169079813543969075776099190442147948074290163482546323089124593604257431561016931110295429193947109921173965979080998083617243833287777775732416285380462576033296666671320790001372505611529274175477650982101431227973017424671783488934560324136953500097058755174650554913347998932575143986413464485655502435711766136978786163630509690878988984296737305208691962815320297829262157167010184479766867079531416463875821173216998146341863638687486202844538440967225241608890940803496310569704529536736048222874002581522180718260352826849572800020048950863393590719881059316632454747244550036752686475149056308082115322839551010189251993773225847142239019026956793378827511818762312089114194182710061599208237885149131839052420228331337528875740100915650000033371909449748547173585070707595689968659544586215446579608015273780498037289817078862263976698044902137301256602215466661941510262116148351138505039132596379290509226289435399122734429532489491586422822679914222906923311605881094742282991715082742539394835133314771027412926999876615517190311268665376781008094896023142728534982980503522430609900721315890667480971642942330151634829608643343153846105647377277162501026802790498998710790782734366351182322160350250664789420353111888585899238491106003555837704748506901160532108936026077479973944758848028120089841815599835764915013175605462312336855847816699357525889451552611523301298799627327476035178223282726042283031257189345833234364092191932244973852922184569670499151477043507550678031284936599749129160705843103748590468952249006134808457515903223467209638486070669817095777995571901798772861935302455269715615532242676979271565401476572221066231374582292248613662626348302237154433749566099163403503603445600535944233151252345944952239439211321743920750188616037948768050145267356427345983248861802245120445338033477741682846335667105370596478967300634183372996620393349853357784130446637994630187224763083663562759056365164523476056504669258456513658993993538251644540538762302785091391207468346407980257762858611990574956811766155262726323796236629038240525271423057775959884497877104733908511152679796096568815020818895691890614166952282523052563870209347757845680016109112694972639966438489484380095991882173816028968093111266048831471324494366111260287813420643172051522155966813962834377148322040131399045208088078669228214766102949360634538502228134212069416616713342461219199255063361276658261246702545598955510763580247442606818915617478509851697305743763900759248745131749952644574270175217286551575998145920940523267856308178617152992287738947310198373128964778767364056593172566387604322369258440045108883007305947431760722225852973271263573827837249949496257995521354630701826876493700363985610922976022854102604720519816234285225830271554704229390559642331475976927818716449846574998655140662441083590125336250944142012188390304279166429478781552599017900359402528514283186647397093827269900039040777100137666311286233471195447034487389203369933478942985087812466184250548035735163139162354174896327611991681521426788420968434456213514758224242684161853035603915786124238750179579824892172803056858040330853087731157618683780253291809504803242389543671119574935823583607400839152583186263068953727559362940096200033320770488677638186692979913748945056482668572037465612381880756933747811392812446822427083724450106878657172298373055330531614719572754722970111321211897937508687901841531155145493503344120018871260513977254582383836522794610983731049158607796978063265318870840409501893437025690540384290269142236472914714846815457988747002571486802678019688316329944855341618927339952679168419774290007234593443293588785385587286317339482948378314413077989663619524903017603062592782731295902306685866238634957128867178733071743269867949993072397967078946442597979177981810406241304258855539324109260435674188763943885707130924897058511412597560233690333988317734368965637845315327164088691184183522785392497041148044273336988556999045466440724812355866730079511713266098313780390721035381245706687432044681344608924197736549437055118822588910922197548073138096192310452571794393517500076959674354061973190854310685593748630577671092105861121331836763710671294061217384928466070884185710818276394444129401564661258449826893549821578266762794527756316421981901066930408559512667428460926712150636422546203163162251523494240644273610445676419363636659179880366958671337612945700275620930018064732899696589222587031884902248395062238542855583602532999847555233157410943211038211024220286534195655910144447668316228761539223515131525859451651769533960074517083423504640420439998868856722056095514481881470911554764884325002071638341641061019885205844461545540706322691412168393520427957630003619679645805351396302815137422987254770542112521339369910660534502111164481619420806735503940074179311171841038356686170657536845598982522473020944267899394804056735712452126741669247540900068488071772092848549661045559769276132407978964789985530293160385521431162527339648439739914881528950016037877160903342147770336378140041820096258520575308702248729612878379151662693925769400585707405572662021509375517125719371023437923858629484967194755767880217992644070749548332247547863619316670250466198525067737844350996303772099170409315834788652255408539801821992366783464263113866766419051178006805909279924304278230871272190725529861864260805997034621888082910052415055344844516484147093978341217135459807140323178276823483103694956559820811741970629404597639798398955850082845907730786477223359234948632919161990211195709592956890472595493642435986242079019213839915556060799491827536083854542333140826586902143676229154044172414772293113682479658592539268565733170012812894030559908172572198980869155013107781904286667669990317807595635554703926386459296094241222446436864581826479121118319479871661533646124522607552447334808348701157361160729289252631390543246878603799355685611367257254809749537433676745602141333027635393495059654213433585162235645694619642880218994396893503851355903887158329751541089413924846618030639238563638616851931022036066983923558338862056528113041340315779002578841005923854271766842510694697862814877066908453810576217116400479138995085784331834988850793135414925753722200482567414628827668761871951744193552945207019181085500302155206773151036578013555011202903959595931516485390411977515468763940170388027601504850232277211848792837867268678902480344832756183769696729193351643954524311789290648976495441018350275883572607590950649331973912520686154915731863600488089851328979282991007617567044914209866902070234271461083411942818727388353208266126060185853882746208069291436678926999574910274686433018442656126726893869858972435892479914746160572086113900804259053380087659662352272091006317893457984285108194684357869472001148078808249525289129455224672878804861905484390697401678156779678950548134615634474311025569330509057584195144240797910366547800568686795331197489252290956953247967386030155372171453478701707467334271312097063746357259240633637313146370890105908404547349805382794472783261259643501939488378672718079840253453322807519237786972703252751431998167098479768233280281353858475782133603828829039273659760940598756871780412545068301467364218717292283360589017236484003165877967565333465446910534111826318968810520749873318330487166624247710791767231170203622042349146996943752255927632718881877303122639661552586590261081294314435183896893479396216116571716787017188719237822176917768580832445422004362080517291478443594264344879008505719664302037035426831454906586307825519183239380933756015011055097296632201120308970794585268227973131633128390906799624620697724732752824947816989931411901953138734759535038885866356189914915998294739230498194573214023929885634472564012237564826862709575543370792249085880778096132660741646329956858809289396488832847804634310090010082448824725642725333604667412497871311898225695325273619436405129785611834530015844383741363338381880619078751397899909699854492712481231326293800476037509090248255604633446916683706767857947721663733226216694899702636484228916015206206665608785711882198496794706763209376557494192977190094028798326875613341535653127246571927612322443823213723575465279537617396115877781115036883634892664089970241151868327586429006454772324292734868131641114985756796845254395783859550371961437980693548784592304972917125237082276910060203024808410938724520493825643463753221577564481378008077808447281822942105274959536640362372904409667948762337642422951663130550657694501552283630164784163408057381621930887960702863466618543396469865019474656877965860509190830904320461545737273039115993864626555155127516237892070105398322877171695905856558816514263753629286383460056783660820222272682084606258321935903028845224720069509656239476717561995218292119049863246282197051580056051108801788200958766087166465970632243837368975719086328786698331432117265562350682254672746573836247475814998333855803278472379429873470392836027522417396010483210915213591325969593681155946050096505527414391237738779309620393233479742490923017533651354160675249837977750792869823322782983409860422455874653700001869034939489486230719473586812902458081934051801107527729316119917061985943044767017137608560214834032057257231531027189912102398502043783131268714257597292926326329973259344428117826953355471546882485941968779339756957821583745705819379456940294285770282999916045811395082994070845356678274139434871728253753743156463486969935943303909045618344533687511739069146258069820876922627558676279351704472270993920133853798884555438802461342862561935625067710236913592047248311421466722295369295093607662001593485992415952688890855287150811658257370355996062115651126682604658271815376695122121089700870078867859544777886743658032512242766481897091091746212273327916023282987359774183709805820786319599080099596255701086160511556861267133934481258372042772677585499099269353836595705234260967188891785687954686738477022615984128325840814977848678929474005590129556872829571721360042689581976674874696875446737122580426346847285287440096894303952327459352861644393883195234281998905556168171543931956515911069315247955110545686185487076419386026306235670486934577305722556533424051088403527468462291956493551685741213330287662404570201254143509776817493507065743425932844540821671505994650898741619220583788322946273742022966253985266055583865570837613982689409163127928969930537675249280458558919255104223966218881316592556025589904797897129538827380602156142349052149689751759600959615559434646345063634309950890825466774326012181660595314159589646862969537877474143994304685516657251802187208442501615612375385912004480260388172379532052475104995044004660492668453199957072092862121552439616664427521492284555574325178687485565690394790133477696092379139784474040334660374366662148666294141135057716371840582114881473536631951527381039844992519013358459568843588022570539414877237848415732960635708919708701091993123598569844420383740158111138462386983632688442642971879274939464958061170866750795941078662403367468316098234680903743277845399234879018477541440183071409125700041426991775114416421012108516518159817553323870795642401586198662026574729418572333654730129563275304322493899809011666551123725349477341390510850295723715633965989139266029102222895310418618852390539194592328263436431475019614548907451956602218641279500997925649769770443883857927796660610505344553156860515862534389887369040304502229103974106713762576714580711358095892348214066417199684865493390757044689716868285747804208419453956110210238471588414427901931134692144750964769279422826752567607968362188977904063387019342944193075289147123654138695718775048827881679169647909098299915039440529924203954952279260943074979241430551114531937796899210944667627205941381373571309407447422988011683442389887690596404427707957844855914599142723012373340447197824789876634530582848238503967050151208156765212534179495862246160232538861975066626002878235823294551078664399847734525656428081105269578982496972990638129426755116223151049782042879336736380910809312128942136340093859076110583638774295901894427343058056669133084761960182765553481367571422285200076597252022977319241600697821647044473159160279430827622322088357726701981668129142266898174112038869400485093665432025166187430402600302414622327604345352376875090578089939510535365810567749950122258851832676324420238642526551610585364552240200897170088850098987585073384866579325329071498167553148446304386380893480216304232342550122930042689496578100278591920604174383438484117468384708156151342641687048379672034420834703365732928315425657131128556788186201948799056520575331986189258912344907568699870752887514288852841703590794309001060680137120357638931452840762791395095454928095375920951084651118621499221969424422818302774359802346356778528552414982935424363478907108631196390289385287099463986857258258000514804047918148102862221432407021813105842961960218221946705312159113553444270574590016577184673403389044183677305866612428853251298788986177911747913259800028907165500001548153687039138507543226775989495801434439188426760735753048271741474008152191465198091642101561894703808793681433230379149215278082627624889106987113804192915254493444452061815406926699901499270930842737421394507158922315610015156420947459140956904085049401953702054407176709836050548797380562989877710899148603501657351817262139123175440332139610222159214597021570572128063387635641801733482774688650269024389512347833545679880418129014823872259367506673336466973409619122169552376618237738520810510265416983177943601119291609025481650511297620792517035025851848330586720780622893969643321033554414947442823659970910954311497289123855568231181626083067199598563469103595152876059168131695605067238102378780185504140782770446467156440689979007126800397784390938369707988403322285717663638312230380396031453606187765862400017205694042796032007133602920042222299323953484761279461307789811805368641794753699815089676332273573095365294289511382809660061861563580518860507985574683431787998252848162194363301646744064222569974790908005274662268495566545272883321773540571455856794652824831135702528494220444144598232656883808275229379143303361761687503458712697578808509131826051608866506695488779990571154009675120901156541891519668808843629652203353365333928691355082881262381956361731769448823722999450804102880568547995920933677197547172682007266128740706448257578012677378668097184340743027423629756966541848750639126448028548652844228906719742391709373238438860326239005675749795320824022205495766383152767663439910124306524675194475480999599292022236534893229201952262637067106133783689510370160406966962646872449095255414099355414818675882374196958371091419755102301542878748161397166888587643003364250046739314388877110593224158056994541664141763061814019387457703228461757920599298725298687729461836924782957613627671828168349451319119092084022669393774852719714998293089408130140309153500841660880026277953209794218151326758785627150043563940002621700338414194300045739741635556929930286968730800663917111524672272762180885391124254955261872234767261452744471485699793681383220524473080296532884884949745430892865365431581886974203331397836099220316004323200984799993785989296832611197224448732789261263201326209700212205330609645028794437292608096453174723327897756855652794920336392716181730652896167115112961961768795865655845406973984938108752848343003337169395887309354696340296215927380139789313458672554199911017438578422057242837761199184067078414589315620559053568381668042861002446150326354867695575867530500294672421585454923301419032829437801277422094523609981735546288166144159521375154851588240730662158211593083914866920342013704173044884021718974154250207621662705863567561453486569860724529049342244863501014497874024259517373492157861479477886507646294860624976134697224619763320102092963222651113670159943573830050207953669600227208370809449829963809788434909205581387534110124733041199958202941227510724014416896357382642355059004524870126307458695212240246041541043586445668101238029521880739213907468866960530984183007842595585539340397092206429673864020000463711779249616631982341103685065214235759905032763034602313499236892355228948073987301407112634039140888516955104316214569516459974368700783398230304148585304503377469949327659366008017647156183106435478830209503952922708294478390916020943248819709291220342021116310121669538165927265813879586987493345007435931248865840971417556914139666722160354456345168296251101408669730664619081489707036632314343041807237103165291862854950807228406417953614199464947344898439541383123354719483322931655925594801765785357981928664636712910892237471696704871751956278501514359699683689540922155427260472946838094066409762787102856635688620123886954799437914031915908254005571821399352342935371431291206571011852383579946632329378025580982051510752252407558901273623105800777265552264488529823004549264476903051855913100260618285332644495066042722592300126020891468028453543557046901284237110480239092302033019813926553137299368669925815959741091095863720200316192160976734693410755854017467231476476840233842130768422483494991789996240959873491197132698243250770653585378195521636081928728392176907124160124778298402487846801788181745064158502509698160750024280238011287768841372231627103660178818540291875024383517682467777546365035935688436506306880725164702161990864711121859887924911176982054547519470889786257761594806776066271586239125398898609506343780665867762563491395720708214837454194980883212114489858421316639989888317615858143266601375119763657761712421395212547907604468832325787305055744112873597924778763531154838833372457859566367087303131595776862183771960771755877081394828744064615671678186911876184240814145846429739250279322970794533061666159607543844806607315671525018376301400089329761581649649018962558733184175799868175253168310347532686969089409829139922186420879822542853302327517384536593850456861718710567440586077656936176426250330325110195193729276704641894064433040848480892121240467851760524116781649113289428797421845775170506717653402299201251277669845845715144484930914146894685058011763703927423385201120889095193736947660419063767022480142027779545836263077381927655104001439615955920005551596752802628833283989741527520444965830097826889847698272292032873270681950574204195074971717490921096935796401901385123630845241000238353431932289905541334104013298447170129932112773079899980037800463104680927265726811257325311782276842347435670003185967749067540647137474371317578516911056592877745617595087971907903646947460634243261196123331044574918066935312801659539718572539189248074929071423960056471832685801009959425472546516253559603300015434513615830395397919601505796244980160468909285216254995028817736933687606340772591928732868803362040121171607868675600129953824737184840745925868401772625603616223283424360340890091847988063500752098687146934444296020135305840930895300220758948865807650787381654895393428606765110572904070923164618478585788983942541156485397832131855577380190793218150393196495140423063202981195542352338501814875730507561581538705957424914098611340184297142305772789612790024766869862787826280995062834240093909531443413123908287325984684284082595188672309001994659428056121823200703478148870706896306896143916364983856321223445789393061696949407725661659990555400634279696194176513816601634493354464600983354197473197167947886109444484217022403144372128271495570967534666672286611469479596028431005456664091494454655889024656902534969576302553223026519517857081008316774314247026700983272426556706018102248988461497383761099199111457979935062125081364459883396998817231861607271581007872840368539205046778654618360294239611299482090702633881597215646017841351893294180418424883018951817149454602712343599001655537963998551764081953801652424392025410891864527858255468624337918932591692793344311028293468479774103357867408129853393520528870520670420118388136077534052194295668228356815583539656185792362450576194741513588325234732329371312369965962747374679350864095237153964235931881711790990564884158274047279884700937998664265903923296785877090269916927287205597046172443101653621289274789438370559251393631872587330584839750741602042927868357728285959795829647851080498852853201108806383022949511040575252192657617735270924006099094451355169584996402226325847809971760890878641512530037848069998956990224382361668733122377982928637104344280704402129050439067987041517542846986018586834807808221498247530700769546850827520666903380665422603372500870140220941677088220851639345556852960449846076286615298418747198025740438480280339371985914626569210220228989926009817743862438001363078874897358955015448169130502798222479597704203911767586095517376582290754846466642093045523426479450963210982393386753375943683122127548153827421262559353680908785127797113143744730088893242673258529894491212286138643923618034816109075589612940643728858041145957102098812367317254627162562629492163261731871053312800750631057023033385120135125236669823174376102136189329992804577945922004460847560174900872682553913308528042288755054896119156657488679103950345454930046220836526857322739010476166769862736206955799030558835825253953128779047078349268737753638191622984214843197769842048464569713136930398062638913576917532792770273023895269096962023642963339509392886028172951817972365277823906839750025768765368706963080393324553136926836486767965510144706240796746931558056600232998019921488143885176521594601584195635919338301993614478041703454681650748076988942241047894674973002873107231599202946128806301608553815905204157538073789574615782912932375929908520390816478912546322523455625544497565993394923184013602937646918291243850259461542939669528811466274685966581727292886825388289932415532655905351708413447819154323570606947698920891258118017906021778708817248507621523863073437332980045345487458507919334785404778547464076835054404630427007870379338256783259415702471158819532252383691765149819699225526806899592271952417707485390516895288487857409114406241526657652746139014447674003220122169133369637767120617495573240357387134064400964387506662804087900089028558643390272845893347660323451697218927383521324725834759641993930718648939629748250297355061619076556674611673068712953039901661174321795758358197320386465906245530240183516711935253850823663416801644176971679838945902836258078381587587006064870835478716391759366081855273504203563601571365844531944706117894645034691866291999041893067822516940469343839958510339924050294453611968233994493039609538142110047957483713488004724880564725588832300161571520190841562349825271724968073133058532994291764827702538203923169021664310517838915537284748120906917822391283395995531384212555712736148616792532043596959256733793175516870689392455953972446969534102833363448393749065072765098036214136358848591718040042509896475627394150421426469277589506089257173007553311165947989195629769462589719652762071652813139258415047475668798092131537272115140076223466479216535361462426573782772760298911923938992358142944220217359278034755237016153121269141558210265271060718952190923506925473677983543001518496406007081619381553692882300134088644296399734450152012592077471689814303541836871335852368988157866991095531626336332382983188932054757981925419098038865028613896639262425279831595113970177997557366457406305672354568000690617046792753863099749011303042447747084710835687042717446987449373931691741930510741564330709525609459076244051314989491052263698087073181826193420951422985953866424669963172143298922900475301203488032710342043896686019127389851976101355184704714574699310816571506168516512491020106593707121664954885667715354404961738963586936916426340757529880371060957085130464616097457256541000483249086623223594772123740103012500886663227426287419572708413286968699118733476782700652796780493733338136645966162076448136744422251741274877715278397026988523161926274205489522182521796980302026163586484865680657676863131046597194785685867712082767214946094838392653170370959336577065283336546088215585198839100798430114594770149610937317775571862741354210050087785643345847635976587337564302289168621667670723434414061936756308564580127341656074648481927582979242129209752636032847979887085701584155695759047951209143479502293240325893033539576288634668715982774736068342508966359656117813826931470314105905745462944818003362344355714575932772321933478403153115014237445249410506849318339633542684098680328971404233154093125261795975051470190836718245765131862293352827357009010295052742064389128244580852188631724581271196926890383902694429978380887651646416343370510192593906073112066613543370886725930702773615187250482390669588554700180124055776852417964544173042338001026619124129826625859883982262310231280238611694478786618667805280138775367200668643061747243542750424692323502212107138838030832135550189045347033840558556147237782505980596359588970298649694019663184494970406631259946851289460785117394246079837036870535552252249259907286126240022586071562050452262801396188237922496641948441078561331467977865173124491393758573406083618984124783637787079479813065511095939594790914367538588109299323592729667190408385921439846350305068730653614489662943571432182472319376512888561240556538294520605430931420056736907076666943996891559966179522670623999641179527471470279446868540754971049421787025528600962851926627792242714733513531409277679864160947004299438913844631111810584305797703422332041099746431935609402015234214432027845732913039259458730448362496122360374432657078458791551502053043805309320338296193411022305076209100289252041417023728190647954581116445531242258537327735465385183100428187009546123033192057699488410769689460023162216674271455763597219274091441715070399005782488875518763420945460920210842955927638374585876544062013176510964993738065108849629802803335515987242717579087760814437512691986445002941787237515306654694994640364397677277544631565660205226014062814979951700775408031723928660310225244762100130345661358203008176397692929321968974249498784294036312456569050626744811059905273512484458036187956064544652175270557672616054879318210746784968192348051379994265693041901720181765367863962603487786328518600298861913421230161900699611026332118849079723128973599516929659593565018334617727038184473410828557327840816851605773282843206983723797297006667668426712971075988259408696666847458501355076398942129637146411050857023893947305124491908293898418656354307495860086528630688154234546520910087128865127023809463792969796902965152540733059386305722543031420881358802564674767386818917100447215277520320577217411145986862675455719671826018533702692138539638699807601749759970840727371764497053543619225809501273537548667466155708481845131077352016930708443711416273841412272137224513247425348019620672688533006341639679194359220051368391129942984843247690483219765880531407468477009482900944387053273093203361148675891327805713749462155830319664025674145051556201301871507996357252765073861852454920671227004352839194674718795102014495441786882116690102810048962186452180195826224847087445968398463176726381058296766364340393715856556522403415810931178278248611511827041935330536146423702642403922655537331319388785696731940269581531578720532926072160050127942572882116574185031931341933521563902950709761419588050252197341543180343247007667302727040190148189670693526170795950674793330151007054921224112559273459091369049955918017525058355032592108856353834839153455371213073522312261505213896707473074832642204580697425246987702949172198769019073952961657107626201099196821152711859041608421381886613216594991274350839137209134632028988631998243595247787397344690096593846576584943417614065415187653573981740299898430439174933830809370402035859015643043456417079745730054404785541531919363086569764938533680913086203165105816487668184756169063136495009336624259266336867326056500553451247988363452202451056598410174920276170411145597663261793246137374281007147148392902247685505481524297035154929507105761369244229347217322903196894227303744185194320738252437576335990282891020023537650287704737381489988349414286920865532057556274315797210740580027144285856253948155784684375805309660350956162298102365498208136969986433400286490512994019048160942132770763075405585131375295616250362607418296770767994034013638689607427346170477576705571776003999932037594358422287518962146056300166838070265264730433431408001648859687651801981367469159495169257920103305434047967819300384408588268609213713914176095900062219860079515136606500032401021081838457177291636735791227193474368522038250843306946445593427203460989667225223542114041402588532315900155288698540205751984750602506031179801555927358767889426168140625700238735433244747340581029949887246894905182183299707762142719459165068396077735587253634810316135272863924556415967079743750036612199592886188515245423214043523780518350462373693227647917013453587993329690289253843324674157659829470464604781764603951313786151352073578925114475472497212048935869167826141067454167440030089510144487602296891983883039130525759015164617667586707594222179578482781972009679574646734250204041218277711817443791535753747331711438297379192064434610452776296625558254439163485711068382800318807178594749505381082698306296116332157858106116834846651463114873082555662266051253071140378292437363660481683404527896665249002997276856716387246678547381741330596768496288785115805153701493716974593146113238867449678206563702548870337233706448636417582071677538355139089849824926799324208310530337617689840775925874288408675117822492762322808028080083345522186939486873655022993594735674386377109806669628347123264516319090156974186870291767500122942662652332025371954872268093269106330943752790128325850466893819369572367995195533434674545600514167939986210914181249451586219565939427897336578137409381567197359249515224033645420791367437183573314277410036322461794616418153404712394574136871728514272762681656186478185886197920742711865941184798288776412173368102687585590776626594197512518734620817059948631566440860852685143727143377146394297652536798207355217947282867091294786014107656719415401452893210163317176437714348171290152152059755141082970452580088227458465432042931825233632631953917824603626054334120743559296732357867891882641380703342524167844962504300788967902594018660447132839416157744038300916135679444584833733857191546827988712338225879444137117805957965783611482146128874436845916953341481200899700380284386211618610269757768522526594991326946407702619955253170726484850154926697962412030042056026606014946229282840346291916086113579151769279796764268471602459626408753931068989262722825846874214245233599582032717537541903541224832992562135500814080045011467575441439743996132955394351612140028453824816660615146881932820255086554897116377149978985148315763948886969926761836717281759802540220733856028144578717723013104631745610357666005678341024436826841085517953228407989047498113615626359045494027748677627256427600220389632242839676730710999828523510993570745705239279519419619338795450446601770835369601714981372231717238095739204350317871232086713477466951360643639000651929956287727251485975423413129959451569356078813227112002303150959910480860714651755415285176873851466789962765753305160015583372358338348645991415820875635532931417537283140726581561089663668126327751727325687697280793353724304165362696417462807347333493312494159494329577248182369946751937228374250476990762238021084811932007441128915670701911186233058219241293197759416506362953904358868534052776234052921073291325149802209391352548611856007863242720154418765703772372806890437556064823911665987315388189151794884583430468070955615563322506545322560135317473487681958772240237326517077914973545257655609686113100107675317562886820718124695752798665445479218794046122678681842851457337649897267309899638173692673631610575275293258427718469325314922694659813604987314524474185244422264197986903994742464629215822341741905902010094617487926392591771964796113952650829805354647070033501701130430403547373307923721949693287162445902897760532491304126638362686396592137568938953942485071877800802206475601317793939438557551303668650911774774952707992926889283716093426532031980987675315008088028634273922721809382163883972529209646833069732833336288022233401524287109968184617114271221303751882163151133325705925938884856732595789302929169375041414667500420561059110380036422292177256681553947671893780997866450937471066349655742816060771033125101821664724967313823221356247106517041746401584974807794204196532080913881286982245072465773433330445367492924383516254759996574504962992876415553807847532313324373338625870417079644917141006348183039548380660721686027641624517083554951368037771975266893526999853967929129491167870213203380042256223926359694711536303429988216423438401264378421049193857636717926534442551965276918710877660458332166042791159672383762453688825907243430723591646647722752209672292161667771178497023150042744476428303192843796652688482987107551398100112940738123484470975032689489791018100850571813716666287558922961244349702712870193934610560298220542190433591557448723192359936243007670018775250393777983991548930835279192655431788795612307883498462940306445059889520870976433257923588874301601771405908969362990954673904075710314581234626032249661389187761404111246077477614148907550866284205274301275571850473082787235624436923093521585397383776964275409813029479948180611565800842898432628011492755588161742234406211991685535650546936692334631018355050440552839936982301503898422622454148108829970954977257202015443189609990657186906088853585251611625678893855020785377503157521300445024904930847054897390869874554844065260072861654990928024215014272176150159753542332677820479386367238269704528201180331510262818182314468422822539430934908733822370589085905477490820763435298645017980358609715695760907973429197955606489728632399905239467295791237616563530807208890522415432703420937053945550712615689171075546633762203606702182148795644784831028542413269855303245972949316965591980426435557122546795707273025064746135024234069869431529113821303434890897841643371268982337894551054583381790693423807297508276477346623789688315900773230187719489198939961420570421071656426919748254554456584222526538045953009496975517911131515548433645628962188404659049913772646080075032700295614646987214801562577878966999657576461932903731800323917147859624650773953417987172479725136645265573578178459803287389320425879834300428692343125846924148024927376351124240764392049047468843497264937733744703739084900769235218832644356240346247151694509053197886465288887148440120882185597432241107781107276485064184646259889501604400969132454779226014629327760371498605785582862476130889712496157911753666705753462032186293252246154731915698552914875878455208720042335973191168860855044309988948806663515338571552290947662751355782275352250625518836330110553695938215754799066479981973567103889885124608975783169747234472186566806555516841269261500438836524237704975282709738540285798022637292153201491298895503389737011614977052463634368474783030543848532897141843343761205638177704482534021901423900585571658781060506761600287657340176933271330260398414155442786388999359837877423751761447164744158362599656782199794716349741889903557943452026880110203017877156742404488550834268935246038365248882324063324372113102927104811084434769116778394682384662573557338192889359609755284590131703711198114775312237896620532253955732508224995515948438152311364645716173964110552134258100578665500310521631040765610685795851464010457827248031315662166878252939859980702680028885422729950510495609120186437010963734523582968003850579431359747707148179150010901987211577777768280655538119297797858782068775376681484843384693325729219377155768999458769068841918164622518078410196228216674973003923987250276000218262070210188212705460179926807671651948518513848348265567257800872793558033425761096713299223782188681128750845786355033506799968029031505418424865257363555498741214688771595769469323925741960681281992435789585066734691982109065530914859861997137634636370550754813939152587125223173820610491701345255918883458814344926388424238739264376028121914360735107859286841967441254055419702782723087728909820497913066478298726690444420589863073671873673077446167645707960203629908211777913382284073291238099109314748201241394985865601968050586291632208520340077356357607316391729565532580712098385486574439244046690788045877804471631168746426890291489498379476299643044603420092697459156949183817267726079124502613864579973232111770608643327749234528283906027064787796779816556277291885854010097642376197879020681922718398622719678430846050702288220392103760494940768533477196771729684620024806900006862008822289535778950206757919589687344971585762253247063797729918245983764129781729789628973261139803243611680648939881319107783010158859203347522690730804220042891238451407679769595509811806167588646101457981201902650039026315651465070853801467388703097894960987111621987544722182257004068316146178812149304019479176217981728664352473888653143996431049119467564137787988311552478670170427134538271900576469481572448337173500356225272326059661635304403659201483129027478536164036684554525394928740169449606794381218350358181364839754344890845053686945532867306291407484946278385568453272162823012407654607277773439226249410985434776128085972109641888122467965930385472320497807365702269678875447280016229819887763207535255671649727690428772657109481925659476844969636217101193717040405410938462447937275810388017442508662687050009349823589465027173900313612076364051492397603620756071457805703270172285571933002190684285511702362609992678198916589004599584134054276922622611257833851894021708604836416607960567850161290081295653644596896609470508994608182159314678187416965538162015321559109746110103410326302461947283404246165194274976405643008038607562592377550110189946235521414576696982603952421173975681273047326337576382164102367701216271747743644437258690423424633622843477537771563513030387388084573930211683710649272098719904475468018079934971659394354295804431474821231323119509554404133349112692726228758965446068741389020446036301589930546885878458053605558118194345689023214728207260232169964347493133163734855929335314587841262691753842566717461387583170428905488266635957888866154570854600081343855927429505653455997646202387176319937392705977847371549959289274210899394199666014536439756746206294458335416655275952005725668056033984410876597580960674991518467717417710820048204643323852600539569279035414477484955422679347940911235895563890518763128011477658687198813165393356236375848589546463090226960903904314016384361808089810848091851798583429329228036475577907540258178344705805801147091005822024408271842376302689928119342665831339722719664305328692753006870801748059241952467819831937540451601584906079701217227828374280304560972236097692677342409800586071621407263408051884219109031630442359244322164408749773321720524413458344830820732829235700167767027021609138173741720800764958542282821129817847968573412513249208405557410028391814333897703782465822210191469197745214963416359781406747849399108922394715246037836595163200138811876579132898424094510350147190211430762619396277058659708905599567371600923063424079593463408796358146559461620598378220119279626908101389055067896219916043353590348232775421034505171699599525170396269359317815169532977185365776603300736675674854213283262212368145004868435046640800731111498249002864223561808311264929954685428994106336735463713835012944501423236085702972674690260361571347845422993562456168200001792570105588321584739617277829471124337088906684827778537173905222308333217127833603722136028938559127860550758613363642733498493996439350040945123277080111049375249151470808473494915463838027637375131911500883355545941391026704668165835923509151433045645043960232074541904169267529556309305020967272116368613857451299084597956418195730513330285975993626905082764470550363138494135585306985591158105906511198400495140863780118277143257238135828068167526979809094523291966658877197183947500069727849211245533899811454282545154722704569458368021744057000060197246664814374081421669541494850122142920533500289751137796693313150550039810624796880661044129656672156189739687139023382801536341002272409496991539437456848480310237429401220222265764890503864189975777511197761100273228586269160900297118845154166062210926122478208725177706239763369415966370861598454401034720530739677569636170254481129357905760874321821030829313389411507086162390626611172903503261734717952229284630837307785012525077134467939545951959562136501646481440186755070939428719358833085033917405041373050232435273520391694452760046576266186461554779792267666572619042820021106159692242413427528216765217690643948046280180872463939573523140420514529602587854888665466477072175410438318842106330712128165720929940252305863393080279560602669052840239407857487846406685570849674517545862945760841074330304057746489757940941961346308958958951255732729203274470581586064979805895029142015245914466701523802069325416195935004445308191659594680521528329658297704088083069872438640260973307639946375418992766354118923129332171122371488744226391309224256402754135957951487484810537153955365541233375775127598317645756693479878187665603714271129319935262121282429945944376941211572657917618128103687171517990408614992343997203544413869773927717532318301963688084929627974753921913282126870813951212760342301234783062325197481993164109672674975619381918539124027204636530242682068566213106644118364587327424485125222025509574867461695955989278381859151155337391797256897645518625853263184266148148665578731550684074883097484882389279563549953752055215644188682816312298948973932391501292480979646863592663459712729374348241036610649958312841929290722189691408567678090915411517047585604665679303515710062794331607449646623069385594962873282520247427447635414413439290528443917642346938718580908245058232937723797422602075597410914773025611232002894059782231330700337914908764005745962705245738618275063015270594580640522426313868583911664613869153530133901233021858058741070238168800732765418401637217235592947380796602011064951586499498491272666676487466220390458432181022995870875668160353356588913870087249244204838239472843240444154733284352036545936287479873925714853754560512765830679447522299538442187437890611161422178148381567530748301694019519572429321693602603485586754384314088497857789992550333471325195734560801175956007982049310371427642371038605661017846779283593439447427636844832134916208230915557446452410759250243694445409392041545488886963601151244618013557758437044381413269595653509841599046392316099813410923259009833725769950901593061482863448325518173276215792415844219820895951721806408097066598643225780388615343553040395820447125506633085859818510725518690854666956194202676492290030937518999696894131597947167095194925100318221832802401840317351891802238833182596946203297982092780712814778014809118819294455231594638912460436727071802868220030287234442528505959130668711276465436905658290254192956857198702497641646412374763641414196825292555961525164251836300120071657574709671321557934693304899373534954382322572947551004042354618344755731372126468923901770130451941712957626384257133278689201585380078043979970876394094303641367045859620814537243129975351747161071102786080548554295696393261005979415858615786330250232693998782112652583596749180915691643147978162383291862674458559506451898815979046139647220841871380016214608628482986312425411031817563841494449038761665010105027027563968083420925461201348146424196159044868388866162902805022108703900159871482582716119870384860987761483526253401440134326082797862834222744177155107936141561520951429327330972061397483126997027001874322165739905729730608687414002053265576134047435808636360423217936971883567799853539498435654982595428753147684516439374165259190757762300512845166723912736143438261987974927906180407811824316305318721690057259372652365862158200044146553621971312326315959459270275712732340594895086523832461433862645446649880599510548535006341988298863200256578140440943235471349986424208568899477560168739602101162039303148614336917454870779550728615055035678203295021264640099942619634364445251205236023688058771459062240591366411207595932796615418494372977208532241468094137761014081097519677029278917480852903267124082876125091508587042072599584481683273355625509961309985241582104750057353853238690137542070991524251477097292417933664536049057120337177703976164336378822863703836605810989476079030956724764252560517945629544507249761662094410553685433899339254265449407725605293159553512357593641409968744885913552874106556140980224399803239525787239032488814264938836019784048523393606239421128734371630511226353525794392496213478013051767965794629375666653096225790148505899434368218619464589483143094013852966819609072884714964907704645998487297780634255792683555599452333986595542417638860215403079107803833645163184805417191838513075178450980715077677757652720163894152869808390472071821981523704062371423655854041947655173200038176111061559888046001624128920327658115163899938874834247428448163823101255979483850952695058845623147380654753924176099494416799700673889522308768333557559354584647765895805016627228040549656869600511554130694879692147943858124071479307585750181648401639732414142757592562632918612311748101388569840161910910082173491624579516357630041678093074072217255281436952708046593940927628725036860835053648360676813231335906760680269322970193155518382000407646570031966077912044331908167085381473555757056977882992437120872078641669232141332104742023381235057927390765863720596805819890657712273125065490873222923294984336976404028283388793147032319980350922423448256842043969400418947245841424700596907637703725920889235286485944969995247149819427745638729652256606812760319322956538509651090592546170225871069953342967111750853980646027459586876698333409395482139579401127654457108950576706396258241585609785020319256874010791364269110857882962884050739589814485224822577214890482604778823276240034046718613959363651857244078270654789623428203407136435194982888414798088532937565803205817741304661406591161859176748176907014422899000370769316819226067033282686302440828926894596044844700351373307249499791616202401030162597718647520893302562875596537783632869749022272008597617792913174048061643798828970472368109530463392325504318088429056563853022503517323987005041714168051294575310635439980836558153114217913698548519410462736538219139979597836762218358249382807017091005072023903473828903693475179751748049726070850040109319734013404387462498848286714263779233307523353122979119830850168026075875395515865530325803833242573281304783613092006170184117133059428032214322636013799900470886754313780732635743121620796388613613737742993795723214503442000963522163634603680065424841546383787684394452442798185185902235059197785750912862137596349021041142996174838777087822090513225961944032419171834105569885156207608847353042385053455800905449046952026138991207919551035465817298291919560976361454409613960067625045293872117105312005912676460052550695892306083327054382824416481130011539060850540855021780497001597193491842125638543987891582498782727759251119989228770238372261890841328704570010245903554806508907204731758737190577707537099550152055327542050693328505403875759622594391256005095075308718820252141661335658297118466341255817797729289185613630204490010550020068437026483167174744202382710578782333135234707664900003839991152575700115996404420577349078278109833901404398814783360400399432868806018340021461163445349736363863435694199365866423914583202476830445236419331072428784184237273788955808149026002601851757340287494656203150407038756365596709033331942971197645509385126044097352242760277300557396334979611575820281312460535649422328819526226506946009699862774816350122953586678602884428220852878302745506828440983155018395953889115839708397963059979879015730027711140351918150258616961098459168349697485632323516762948575229270580956198432180545762331920831541269129460776648001413119289397522497886383144356596187480067504569690241502066790704227018765260851076734233257146584147179299612899029815289968592166989114551189733140475119209197159633608495899634992353651946347566301179826300538075647322130224116139664314533689021002528978107144592740907216736264825857164777168101420776498865059464620260019647355694038805423990210583274778756402086047665283483047046941624631976484683288515580691585084353927447758751778893245246182275961286880420149768650804747276350448222731460697091129049789960138085403981699122304778772817228938584266372190462284130886216853313057376466137384145533950340183387621315249430291821898079592028402764263386064141451339668468601448415289463844796501083814945220844144259978854436964141197709233000758615470342642401238395735752050552562569429749782034151662657190325803424529170454377966961740909826316227183662826863409443416136276045532799081381086189682907141305272026861501913924609690275808110473701055741478559096488265385327161268070201231484669389248094532926848835549814687175036345477759671632011894577334444096376934312310987047831625111257688411806273145436694685962447620298190000998551276894925965403062235252504508996332759516688531943649252921620845171441923281401576625370190472192767095863410993815398090833893499082317910660163046190998689110132051262884875866799198301417440468807515931188096276638973228325249603127021076451552270568569638369769704365620450783208111401970874374723319877105383898536929870789650481748256606170392838171982642566479555340726068421714874284175400578484126794206114649042030396475763536807241821546078364035768740375566958788593325201235943809692582420614444769802873355716893318284216968522159607735610046943463843010180289043835662268780977437381281360539012270763474235041669531969478499557459137756004965192632679333237888561681994006769698365769939745147879053643712676287533383834890708769962341487990430015409479003459602588482675029329546608270173214102369109590548983190182815768850838112323100927052022530452737404306911938375188674383102533643891347380716753274192423538107692904865735835861326815398444691570836346148761071146590876407309084434772815219035226219504749278342364369748242084674508698481927335768817785615450730082627457786139718497966320080575848089344506142006563313666511258566712607785287750262653594192918955216912857148988637063740551465134788942333521077877271497980422830080000741553001102685566575759402006472651748764203262671263735047356156999004241594339813370455305723820413140632201404687982992860464275920234390519676153044576205691064492233286556910651639964736373410208974340938794251113245089197031392640578211603287612665980656458826221949429159607406642247108362124474291293973167566011333685015834031615806510782090707092022066444844684885757622546793334485377740384167441204471878570444054975893053627005923214666377682591899991165822552939256909186039953174878206101743999779430571784777789256865276386357031104031212311461907210914338960297264235301164058111133204628636928040404687112552476926349147781388505586913094392584026068523979805872619564204166936689916443750758105471527712209892385107430793228519037410959659043488824717341093536081299892694014961057797193778269385944108793052583081249991642166758537462244319610159319783969816881510666799462825346898908520476166030703345645819086057745812726089676910698288290107825378368533810431254664062564411860602719388747412751826088799587232391370297509201955568251242607737337946578242710408198609275954690778574304010550634395147586290650302308216055850982563287358093988340984515583715710264571965569169597500459298373917123039991193764122555206303331655016206668024813016237107866539351004193304465593958943489987858876391904828345099629251659776640525772093783126400774046834607944458715551343859040555122529344454808813824382962023130935525152506145821630297925757040377753656288173691039340917402044392857276762137188318395854374479665031662664905809655888723834719922188277982017348628809251502498901119002467710372397597841605584181890094135276553854620494900636465706697986685563727218777865129979246300429644738848088083651020870137789320783808738786163701436308025108157420860902430318521440093564330108502560090172564573375540290426841470382211261213676083943131110726636617636811599137897892483683699497446532736358729839049015044067108684771497267010119516027045101118125164705278301061783470830222745015550898641186089595829533082064762165646624130244517325246817195925559901951007710022201495158147665013351711715693509020226299314581139629873822571375932447103321783002914734912441178224393152588528277222212356459316076035021926520294530348263316151198571469057250182145686261475360108889286709273651721670409838506769687914787553310387408941473724261650895466344665356887406896465428829948409544037889874814215184325388870291943648564100172233577614713418059606351459196295421791243342798910125729984019990171626425835651177430429235572145401866148674665412482353346696886141316880528239410730229048309972531049357785510365197664368799130522288418391792007472386286471217623400847978600675802986805299083008636053741917357480076460148753998771873709289254384421430096353873474480805366414246533508569069819242036552241218048962202399442982973972765640183789081614638502492486564456349457718952834712844976760445521941406140639937634082829758016627337401566429651868854239887568888099096987483531158704526389963186406996386519231489716262190041454807876949064468718815492817321065335974470559922454871269583056449808973635297702616701974797894135241030444093803262435204306637056304337486734614311078622801786068841824473981228468122186191865853405467089273092353539756571050227452956041177623785359419175749890637469882661800110406847127537473172347680349698412815996461297696810196716675773893442171648895051680224824093440257728083645003834954516350587520422345974356381778642200758218433916882892119721077386973036506748052492357211293561394657895155401993052639203258610601130485049899128242192869850501878129202623921614762773341586016262706781502181114709830468016504473313511830653854011827961959761574319966046949483799612113979540381676162144107703295137869233607549019900474020238960026848673761845949246790411738325398921173269250639866247437453841366677483731284675675060089678585892833706152049504092155128666248966311691195551660772712867010170003145252649555755079251167453523281576808160789688894643564282290164334710322268097851849221193946166421482622783913469166558853414923334580829106121301564083660496321941009209296922772903608249173422580650556071935620081222221790058862284962342630233748641589410119728028384538761076534614038045984050498828563246875152770626545067572868631018248729887113857402311216994266519568651926564132331493315619471292252658029771464685373047473467490363709695015313359761954693474568965652208613609911277598860753166820739241280402249045860941729499168991570148481149092754635337959670130647470219326361173169701381230940571817270662303081310075253231697877007914315326277596993891431683984939406150366168480212768346476459923711613185254433202763213890922668249620426943587013887272165952021731560237474099708350347895049824101016345387228618569477397645895567154844633393799874510512439859242298787728559342523618640708480041542515164144568195151256799295186496064018793320596012246758931161821424329962401830650771564798799971259393969873284280557105955517289892497870456488949106319290100163624277806778173095596437825164499039784838339259136008566691791496493776980499747749513881025778541729010532775538921596146059519310581910945910346951221233810095863903439117099619963525397111813112092462087722227828764989385994948747264963530328038921653332388521321294505239629530433260970174764360234150405666223992174611700690168980297799978376697812782919350831044405816246345744431613988934747197780461686513427475748664763484677013037982307227663081183648284956214651456190500737929533765666482806611476329958438926934843633515767065204013460281177892822004848242878504979054973542781789611491720797864327235889077114523300463588297956944641589455358922532732981658769049175161852525978453266234476856320546627354043374718800234210741748792996670743924552490871360736763474457761738296984331669313777366107738896551911941155435780424979990268210846514804368118077770176282713339980468196548330847640929710931830973286825510205926709310622758509734460660940284870945742042857471395786766447623950407729521553358683156819471875620952820314119785629278883566204714402558197462284431438929586075871692171796868014646951834344389318558286516145848660095381148832764606390725362018589570918185842924292609539225147091555007017754139651683699779926151060958262755953006538278552994020440777590967861807156919623571680127447275182507798861213376284998292783755723207741279508864863142816729968543782241325982427704421351320432736301762108400063509472485750661801853113457450771761718586401897763195488965514437097115864112061307583023193318912508184330428872297897584747031629093828815885943052857937841250305048243705335985161472348713561257982191291235160775363469826191629490716882410074679130619098023602862083216364408547896690419969106341292918617997898773140995601010769186643889560391799277866180915905501004929455515471626607126322929112136514366481109843316094796859421820756207294446537196963303430440774397810535574844952620607819877256143328637374814199902448532995544917618279886683489399404233043953794816428381425650071220817374954721997262097499436512847493931733726214908077497585338953692093776727686196007380663798701653856229565073730656884629704347896490567060193145194753965973598835692571006257726716712125993043338350000119316350849068876770918875921830169802460600940039581991590573854911852096016719047964897519927479027410211190165912891622361245208617302108527398357231120306089108395251657147660736911867664085534659429175428370441949894453409324749781273878509173484847976739305474760307567230097852207928535851820674404582739859141793909826799706334769818753008127703510556567738922611514581576647283361608849099090401514863582057052973263060882293522886096104827942343106231382713319535194891135798604634737658235862893861113112038776449227464121059168504574889017862771799643334419184940240285123761146833217531993814722741689937109827570850633057948024431023574710673433577995873317150975186282519207031434945225260482122078732220705040627914300982217419612077239050096123718587099704207595126198673426120074087637931237209793633371534230833593970801515103788006182817894617643176271223854812466649203600838386823668314043794680720184246750849252063022893566209660856433669421133152522828675611377911601021628303997640622610161651590060508292612588080890909282803121440808832653675824606746117268289988066115075209711402750563714271040704078914208540913763372069513935300781827894766958916464823118922241125460865563437737356798288802606004077793061632085544813111512853945764560106162188515130371670425706045867919083145523532191992491309434592825356191421304926826354259889862605795197527528741303848881403382383698308962072909008922506904285490523961591934892178016146679649392196134316792770386932227421872737025564082997244844852152825754965081949480613587090232398809950005016424703877220317124069229033040547363470916470990823304926069886723161142430654654811698679373313318628788371457665863440979847045214989277809605825055290735255760257318441285568253282619606850087767919073969271350822407221316571654914354016732186250706860361423826383417925777847021538237439312206839168521879244286912141542862885517277738619087469954347278148980600232848458676321586252135815299140891507466290247281320777519665776245082329949248320345966685658657875677947740735300422731835602522496148404553295325034555470171992897319261932857556505321000152491491166897051453687357534265128924558911609119215128195922307513359075258644684841866508693592645164398549958335103153935299499683868796565413699439008981735755575565405809912843494560101891940204303732122759091310748469229314766533258358956162172393812084259192629009107864031320198747970119556994632356664764948492139418680396608739844822729168095148070924571288820535997322132250432303920393962855709957049937883940192671529308125561114413346013778044160365247212308136167820026355530786959867778504586316554274933398467289022284165595583956548739560633362034009464078013938071869873953495591767113832769141529200844244664268242054492838984341033308548831429666867665075547905232763046166870630662055099475733337717865761500577744209090770117639059400794504554713770286782919315326753539846777527550614947021756443447520384408447263687782208213325998535949786924244855640726962447593648739400493662404583134720957910045116173541847237560900089942171570313494718469493032267687886602879060130950685272094017755101824596386603341835551074679170512805124021122010109499350051323247292571605413428502116804863139024703512962652504676623809116387686154456928987639408269586308893749833140536492665467345044001688699648431267593041197838741834987624376220152116773696248804423329688553417347167014316848440167195261591280003785948156226612689443016362085523719150316446769215071479949161820787232932379514028998792339140833461096102771554103013059571639419253702158646011612764122371008835986802145323803099005621340565441647599778868103606903050748765504290743077770760869030743037457764612824584939853129609069337182065359468089846457597344971466218497406838459068580078054391452935146856179707166403668158853258112861140491426698692330404401176892307435480949051216578520838928699119164294468191653210886525885654416269730353138929321220499480202189542086508495527060557468900150438483652666438763277616714641790726009751983649716256613576876674907695097167394504542293186366747959978130853267176109325224363994442236359100114138211067726270591889766738360655606070430565592037963829486733095061541786352140106217634053187670615344426704558363257724130624169959042002742403211055853088793213868025202758169116024811573224561036142972220251285659467701685655487170560835459101429213236343280102561045049689766869800876772587842508501485562054706488022739523247514988689075108340288029997397183109798517472164132727701355568864702449892248250346703214745533972564603844399760067611029628022853798848705785311387020424496892080146479655823703727578648152153493810773800305087699447697345444354823803934529809039863758516947269337408116399144310277270952594599784559504642683722486447896628231612749516773193690811214908459452069551585540787323576806966063631879749833073248650792922857072467207299219998605086598993521776888856673388490502469815579196507635231193801801045727019851686565322290635755706208156016089260889806181510802936816249439469605217922669155472970014763699191447722902577117965346245183927193165768886846047992412383154056796880580880609540786321022910566379586431163504949608098674272076078159511749753894187412063520470583751655141961656707864112794323726879972330746030929951049505382813242057610781975236126952072497511708691092158422522516967842182176823027435674617635644470583759012128654562276921075776950932078948067404504761854766175972372443560226845079952170866904448863542884372458071838870571419586279785546108615782559440474742904871406585329192902646182322497905148557060728103768368692362534194515353359017478030860441640900659911267057564389594744792198147145084532665062173789279723960331343216825065031540167009492637877932790200678173390829918273111030302225632077507753040002099417424349484925859146908892141177629113404132615481836857727095710837915389624207809113822554293650273257834615276390564692712289111269619595685534309056925710286559622785606917157797559743082677130051555219414532752512720308896809539423255776316030574456013805367823980186966134353421067723040958669601496670859654117509800627638046253527595009843405917972295754579495333147202586277220471880939203720286255175024403334123696521422564167206623290600062031165149360601967607237676109070591395384975237941952213076234898284981444561147019899589234282199278638093924552028845142622381977775054054910398434428606152757310214612855480437567328214122586776297431800346141434698210890214323943234154695974641874196620958997580790445435137081012990212572424107973321425864571309928746141195652653170845898346433986329677121805428679011467913413466430120960378917802006862523575233215232906182052248521469412841454590053207937529477755014869738128732884000078739163395516448467096723029845318393582879299610665339444961321533822688353806416978927926145548243886150941363460819157366929136779761256906913210471849437864642697120599554281182462712489424236892261596774035209608901512042354604795947281368101050464526367092739913813463017212315456478402967419068599666554455164745202760863016614267682644100593010268100407240271956090987172958177151030859563969439267807647094685383951453371278610297259163675666728587425682276883433456450533010129717179745138883115591429729451629735427930992380083169761191092519095989763119096149762224677298026883420453697735074275919474330337714075692156705393335629855205474260281345388489989911417799074200803195095564065753983384887329038791869220395446304693861807513074385409703364819783263027224222348457282869675657808314232132270487534231455636955403777277720203278141958154657834004884813250485647328460177983717544607475904103907264741549116475473530220981025647932108561404549657522946540169215084002684121401904837684099982700771170526089164362572137436702821194776380051296526808129187262770956509962190198077588553729564550701288323242916946040951328904609582015739741301263351058213764680200423431101381964741350223313789739619702321458865186441016760680790192165935188119417503132818639387382378786656908189580114460216822636780079094170295879005073059093175354396186901053007922458664275245143848558443556732077701012526086405175663953496988105938586476141183876514195182041302657467963037561653119764286549623007129629673786617551420312644875006846980571499937160184505025903782662955592495760295089193941629367123747115782660511685646570498975027679225195817372361285994141272449160318892410652300035586520511530736781526645812895880607893462596881656740767914102486356281640088652935567388490546335557161391913050885038959741897300553658766413128237342334941500696316108769405361991069961452674511132111983929447613995693998827039118685407864874464825514855276589821251213600049551715924338295549736355270479630279974575481381480963188831239996037097844963979084289905103868716206572334745599095121812915020717534501919523979000240532661792287724706850303780271947879171568652901964163325004034618835677322557637654443063994336604609064712843262194560278562047793542809586966903021013641052333713295293305815505371988481344501318291899577127932332689833466300513186213374981300804918058897960548002378914489330371932935381652935864686620907120227199435547757291652111778926517685501220893247434278062112403915562036703040480929923068510788780995261808211230166171862067711565863859423884623713313219707114130358388311305757684413540475744145693052352360899826248551163758500824279710367201815079980373508781724078369428217597745274019756090496449645344256532937226409180836427118562614173023940350027052679361711610716416395580749028389361852974353969290244833135548260284861960669281256881133497250794738794400898060178697711721494929377430918773447363441212155839641573030415386665700558136270911067581438413579866522017949136490825941235752173876824014898880904525638694486062588264456680386006046544935295384345830197541568669192797804576170281216501938749096414236827393425136810838234630869661004129481010956285972513388373982968690851613622186937182580984110818923906371960772506030702818765415881620011751211480418036542973754111494401476110834019802807139603991925951960694795463909795354858594546071370798683915215315768014179548924771734965460846187318359095025020301424580752076272096897968824026778759219619367072207491499708963981910172660671517675146314764537710707723724076982684192410688345507784300912365127272337795233101943876972212054413967703519461527943568348936997803948201259402343692773025010234743693705454418289158644592517853594471478758414783903332753568180015314813285044618734021942555809306117609280541874414728407155033195682654997772819933019491852601846380527205516189523306077924003245131275918908940720434169393399095055064009709188805110555991200174942736126125367807094416115523272827712334312816831419700190955249979244437761628606392878592953213432375827620506023956212765918547018976300051213644226277102495678785757124572841048959686822417194887778561630726003902991780844516010185590014659156679281820771549469946195756014938840995896778352962088160135822825149977494521933256213854435599551182674556069368819350802440870259904339278639095772375876736934872642408889586412096116067751628533098407274999987271216964775882166195332319717890118839384034240960845952769179305596020556054805638254161223539564571212920011832567476004747833897718999190213501326691489528919372015975278360927507545613142272330564778078721650541954081118073549037617518597573104317657225721073878757734355588247513328510289255069354985480513277524401907433010852229797809778631712335639624820718394458722111088168011231119432313817185127060000649513872469555896601612637056125528753163895838376216088711685356387967392479344588348308496142872379223024840126979806448729068450673162565724010954238430710942994909261083354186660500935339777912582750498318678918116669679938187449927280498168058147354491690695187727686722939009086690604554493681093734682396280162093800053483129512843409557797592410955814270381399667393584159559050794241711502788304419876152114090526209459770298853583652649942280140692958102213167912072426013929726979572421811047297481816813324184826767403499934092263902028795803380882407001371000307811049605576724250410463996793308630043699265846374047201030843788503675146116815417808512424367653278044884631669385795559362514000015302684340573558883570813244353381646271800719598782165401381171338743364577160131587125885426569392435835783448539409941514369453772147910665735392090179187857995937111053130443365395750585521896643567474309642788037656527164596196624890296730234026306465048850085727505994817028636614485852632676684572128917795254892346713081478951447668332730854424168949930223084617098454590932613444327532246270446495811933973319491994211352722864961043140875898133562706653084114448668384907319117798293312844693393337529538627256740987716818981452713465002547273064130402793489063342553444240731698267900617505952989828543115414193051042787066949917991496150786678703796607901742740260897939587796887638659285488893354723817248941805636834003384420711720194223307120097151009136570968065308194362830897726480839614500401785939851007844915763103975756876893681373869305921259800214004915421504441672403989463435799170998682928385558839693820497623821752643439902598616295817303788369550954486431125918092712188940777036015159530440864761378931024339961314579807607617784083167770680840942232998263806229034914447575038851111491670262581104000560196663084803268922315253926823935185640598149061736895109644882230727523907840449558927961303818218742666496874062173857958588962328339248135681848899534892582705144133109035479172787644058499034330980416518445977950295941289513690216055276373004494508534479847162900401769218329597090034392540545611419781190922574752812429081422407794711777658905758220323188292491923985311030707622241332374702139425015014120233933599741117860051339721767843729795290422465718521063385674432791564924647002032477793633106368706547474192232323368778825037059688940129332730963543894135228015730944415935538170091654491704408815816945817241108346351687705131883934204148076061672962196243513216974205143522195059760389297775156260320720503541651756589422247274152921015411457240321412754467933296930210804679968158150737936607434324177667234053376337172151123566799760587922305096168965782912807222167035646088786285564191960157543600158808682469953599665195266833143566289810159752959977362892423819634300515369935069294106734668462242326043298748452271447481675856747270415162395391845439345040461824707013729452977952717749527581828403530440953145407834367649405760466092338669615610868281809297896505847415859733673075393664981660360214912609349712773601796514002912134877086388541115533170558564023735360493599256854937003544248081564619080405717699196416730543932011808060185188448747220395685425709636378875180385541507718290781590600746954288528660003077718784117367352599815573929331921070997608299010436687915468058005835010687385654951381906547091663494440872315731839813149964753165736268799192591803975945975588399929028019781913036000157400112727321314368071165192343433781664655994999968676194699333038717452761600428302682543201506851695720229033305867969078887580883199279787245211202902260054816925672132800659301920756477361850212994058506458931343669614901496506042193889654816145092540128789877508511252600668902806250955352034127920271644624603413028950339010396609340727412186202928926022780929191025623095492371515561918892610470041767730904705073987711168132732104430251927559283510560251064216876090723995957500941770150207217855147562393787458311746744132527781015331614076717850907422570779206152668107087765241309038465058521457468181512367108034072509391915160350645259608976163807629811819496940004177480103247928945369724448468487109468720616377077033990940710636893176241541283399375415960851551336541770388420499251508225565548167413877773365961248843249682330568601763685796128283161576661450654340718616781622010424149409814863687043588580239889684061003812274569834916989605013427682023246971255637654624311410994970741972690432464841434562839103213570143852433197585893697007158068200832044596229396305640368401663598414215613221541717976327217444651971644941157665493542451343280364395093096263321089417269899297599413335604456631636289258902946062730874822422797637900445148234380831658890425412361722586607164465418415283292003663056319830363266502514331179236465971648449893745704565768268915054049424282742739666562029894719700870019047235089268271190564519677704437994610855977579149460324999360060569295768058831365407674571545727863050314351462768824683409329987205816350356970366856980778692475635348360199515816057172693594140595341750226158121628510132889851639402561243724778768308244479293839917181331141931946208769621780289767420398905101395761632778701152590643502226457961999259110395439966688596848458200995732828466081062515986824592595273453846954650287153026534448521297685449446385409577160069196782220184965640258702153384114685171446712505701440204972082524352073291154830051936802192497226123002630749417154509987089465647727403475785155262265726091933211838901031499168301964149656424632176856109196205495744854984656591387087936151393130205525601919063546007343706873762902892046056577044554786218546418531444704927793759668653048174144219004673958239668791230290667931649168082587945983422383132962301887017615412111288350639684098780299211630677743570657093004680668996735428620144338997787738323870175756151476516035099282182767277198097842294934980624414517894108585032545521947860113489405565878966151739944318724201874442661400264029991015681007378988037086067663146703789608586977384602942466636568980984956356390720621730392427747204455869226075696110104895170196688527205705176227148050965305052264238560521471552297453181324246426875958259196031585892380555065220314770847218874946014084086165470372718974069523726718598167713916616673139659481307528218251437095407734890171923650753134449530538824362077623820888260775972586637922044768527703781441521253176695567222080598277449174265884912603672234744290228195333408492584500618319970215468171566254021988964160965088686734671657215923934723988992454482437275833132701019671042857627091007827609280838293775098542041058122830687315629318474525745397869048043660420044821778099085491576785727651974961720438699299864949330282265278622172237242544845618750172919354827619188764206774027147534942296665100088089834668772977903504021175059041140258821343906664798167197476618489121541392571892264066440265646275844282506877694081678073893382988805631341538839495655273026856465868388343376886922885271674275967937552075135535007533841825364552999617217981565431748640391345375909721139474119349826015841014104231870292613810032716577885253651822739476278372612115041062136141033319664088789669217381716503384033000097141810807796905039156082610184765396136008096410528874410280987308733000006236161954124359287549317829123891803622585162745760926763537367973630032687790799304798126954815612131532703268272746367054405278915052843314441813935425217354256053008698387300670888543430070954758326117773511771058311374812068531619121483492587557394527825611405769659980938272900328983221977865868214724667422555895291586017152570917924881409091964782262376128001344099332487863256456399487475637940436324663561434181087208783289412956279223205497157184825360374225980191022140174000410797750765489392595264690788815373995899886891114975470651588270157972914993954210952960980771880804327272640435008099494824296534500446582080146437768010981367360452250803099335913284382180775241016440601091292245768732008605397260185148293818710891066504174599480876120461220121324636430117378184078332462986155293339089282247745570985162230499689788017344514210732951161506074808607402104669890474132294138978259227455792304454419710415331681372431114397761434559255310169904842298322792191614648105121896172757927472435723076489293121291133570665061605904601960118548956754828931653626927497088907008374797525182421538804837758068384181989070555570464543570630071815685986203395271095940724093913238958674517232486322048907908502452013436501616828759922054642089859184070189862048374698318303309323429300258662137322163195115387009082054827087777173204973472306411518768253375544865803428613626775690281902947663975901707632968051268881094986234789518940212911874407617196698205538698529768411796066262288394427018326291243881065711048381240296438664339811059142111459563956686248530800137087283579072389863049206331379791066022257821941545099189167217500068628815079194247386222323525746761273529138601474129202675885305895841695176323221471358980282680759252017203151966254473379056584526655319254778324420739595637020983749820371255787082115822379945730882784845931678848244818583139463704856251730586116221291972202222434419372670115175214761916318941822689111942342537884291066247186318654559590576338012779748329527527945822680708106391853110762126915175670173874550092057665785299999964942504226306274321253846649805486298648703327838621723385116804714468631758506015275097890005346912621107520552993540165207897044133061335980881627884223984607741623121030675993553267215669159487526247636784180185448806229415246605691937653045577254580205435128771493060291787132727868174947825858666216414705385359793875432433033257774976599411183225382103031665594452126843430880656585073972602866304372341511752762253803245375855829963792764956254995063165759177377884903144018749321761925881732789372391707770674028637258753439765078539612392694805511072113451594837718190661796989616864496945436060501801869397766699562508034414727588141233802096806292356549081758963910235383177750448525192214039757765924823483143688399702526675909114552076800633284523226319902114503568134920042832133132063774864308708212124652387389283918505697084060604397950076439171127813522393432538949610764007208527134056221672487667277902204125318698920782974716709851291886681128620842854688955181618959977200676809690110067511010289225459036145519483604405428053870503013011963781622548939816216919569801374406080734927851983095215573531560039753027739792665776484483137048290406295906710677852531626592133112986640428949767948574266871891960967615934140593607735571807408626348494087884231957918832115442916884450501838045514162927897757439087480507988497228774846144417327074584409993633653349847256384823332119353797710625678237068892552626799935406675628557264213333813166931728342036084911138424289236442545386435167009325719371505793539196925090998182095736807701148182567036415849289411369740515417581146101704634182479196514277230002460479007010575455933964301280950412448195411860032134334843446108557389952916764858532607927730961908180326470116440431737599113291741964604284133442173997283564053688240999213740224331891625012932333758377466870806300761771356457636492151588257197501632799337857055730035537389772489055746984708521204694405665398247252972928185591564241402337796022929368341105017766579659767294512405199425601527423853820171935086685727948691039315008800427900865887555208770375271445015558899705687891099799699616391976575528767219028221788863738706329002855846230704614059110697694753753595036302238026222174175093921626080027251115429065686635590255360180338684092227103368158593012419861687471513865518623111194207572561954286606325085458632655365141138315765852483208754469026731380330712500686619132309679653915454956831963704941456055724960939102076758595588499133837121899909539598884252852541614843264982093165826888839451149724951201623579991586543108572735579184339786646900451923467402243481289653106818685921285053578534570614313995546411353449925749653875773106671637011626237786752077105674507850689472545297083474616804106494462875173679921837129442109021180193349221698834469173098833632671232750300162802514249361310170741506941508805712048821946729772734858749790271356454970296442047340259324122419167243467999153533427377866431274227925461485658711585763188368192352320209602222227471997544396326802277525221791226916796697555531844485762282345925795155976165969611494068193508942281248881115881036512581216337156333607903797348694620304338759884846530083640520666042125061384450071715248707801356250918287370256518101408476707741449228279335803236630043876546716822506743384965903517119566122766107000913876996945927019878915808854160897625142162429443320476144250726152214797794799494958686405221438034673754170960199011950402490203065502761037290780698288425672714105230715089968366906238344260301700481635658032153556548472833256186398973347042947428426709090501471328730558381491901739891521339303401943605445867948184764903796444761782569910161205173610865183804713194163768924561433129257032676157010152168885317646565365457295526600496891544695423059575817521510898231450045756499530177562500827512459951854584661669925782586854209881720452884223071358775426567072940463752996312506114440237819262734343403563447732530945732190545351816988826034767744433395590308636297662626863161458173176986780225592747916878460460855192013506066298862593477682439832493615122891649067353136261626541801176929870632722766924895850740585791704725237451154103356176659063818629016521454392348105788711958982418584898774927437994653812913765263416989095764315685775775821681145445893205331223724226213756156526378400506509597105391346534587853665649459725677729804113833835324568966376523991647849813676979823396731825540302348156057654058047357520402040452508311403366703989005302360902132842754984121746588862997994246722591518798994820008845094613915328232147284048032719700484004128575055299239012753983121731289715646604488670240010912812718054146116525140153049536734557891270875434478519864564314933474936287120561069301604463145109305601566186344255953097257904285398813227257512452767149628844255132886373123983654922275345948321085260472794543352797105768067842913771891045813920221993429533437780887258123695568074983999293866562522761784313204079119152237026271462077361329106378660118933929396643145474688025879038774948927964391480128678729100081111130312515248465815213976356667454687567417643438078500139481047038558765985907769731037370632520795055297532883335728037145561097381876695038214206883818354238834035649481083890246073395262189939436272094692181172702273100166121734924355265397238928750747357963996315876218969489521395146737471879751818264736232904023376214190622641192565032977089717435721310122100738366608553783583151803574101220882737968211215552722597879713698485566557211560836447143679267924521314653505536867061941158922709149132340791771849052139162457389773032463443121998414769302221925900733825978753641070640504127405173384881715150669840414860259300589464184876559661425518729491323824498367971550125374375245691596601398055165250496250198021910736627001143954771180271674099980936069937195539833998393767814020634265341642134954099993883132350167160486299048765249790477821078885885052686921472939348191676792525107509899660848251447941943815287545963669735292287423615801935945001184807140613654570453843779772068006980403373453086803504469356996432086182007154731754767367083071026183542382267902347913992588180532465532182912589523566717546015226233601714066327820228920862585828937395179492634619761822576675209501986658206986330477800707904094123450370108796072437517762555087906429392209796162444200367362638390464728314849812624068052118227032864226142161375886043046173479671295358197013996587149173267921714994841077676838043486216976398492342298518409788849198043911165800197780033810929501611867764067284152130483410149015369252982197552534924411019990346649517346331218688577961546138064783459597160405582346784843375764868224434765398653048830362373521161578033784318308360201421406304159738201695770705659182589077893522512007684642947735360453172949049741197331321554455621605147376280277966250002014604567298515349785908446756862225428918099503540856516965241726613483515116565723165820610742107780730028133036522860752759194242429788702606075509711306038781286738977015204424738147246840033619508262717948014930376581267795589685977238745630603483496431738285450634460067170478173117242665096989608304069560028455792623017416175502375611628883162456764192691414573955004976286461932078138572728720510022301876654449965668116279636762349211667677809496933478517175793095469857303443338372803418146021943274600110971664319076216259082950293582939675602952858230567737494767223999474492730533225430804833677983939765301713020490154152549851707267453273257126037172983769612437087637109083737345805001188349780796267708267193004446094041633626642780772407937892620841128532573747279407398372425379351744182534358847422488187942253464557120351352896111260683764657514476608810722073693205014206568116768708785857365286183990172787451899723747249819173138898295659486450204874562773148146473226319634930834874053699477749081100707853994346105969433719716749575093781518153475715750099746272936615447399660004038542709539935702555413007605105040868513051747939520845199370082508309969615758463970469248657417544600350628663885842350261745954810450980096041942468499449148503667312408026534143713612446782894986503739376053872507925226862672339278783854390841967526982960038340362878074764902089955404864110198032077333287252802375670750564325557113406970508199864702669853583522613694756630999700471508899167934282566570476411284825259341839847590773176137590038847118029840768769193840153316148981042819542876208886671638555295392997173288916797189643151882737513375867000511747501166308671995321188082846815081759150179108558329222024776607188300693693555463231226657490969906087003560687073861412715723232013313388527808389428578499716779970329094075270399453020597398792775379170967444873126006306751765998963806188563340510659047877011306961794753158683157133231573407376580840851866270732704103308802253902292220477976011930437433361964960467226795041494149357482112102383273087309881461580555563112953330165235284227409529170621185045779314406992675964331060959706479332220253059503559770044979031779977369626190527728945040691539827635109285549296900223739612328572294345925443421799981865300613537465637249975109292572272375354608427381222279761103028520502495785148413201481441207741434570121317707758572782658948170270446034986198311968518984682814833857003349448329793050184143792159548197100216524725448263991649783726088600437926476630447520122809905631390377969605895790738465593675798103486464347036833307367043370246489871004639395916291945659716996758676020954343437020799304413357795815893303933621712568806146037849708094476294191599709639970275451192637222877847946929968884137249561425745539144749997132105724479595374608558419007918534425600993253895642270712687317531065220890121198658949305183834355029391198237340503408672915711233168124383410555738813517885480707231375484663778665850221504125318409337117937712174941384420619737436196419104972659505140046326074526156416253183556137181821320294869545368976211991397927269509919809907483642704936481587482934284788331984246655444598792724487994023094233000638349475252047946511308328759356744732312301082212994223651325406289501400050590990251097285201000458351857413340656062927716397143924250654048385514486572504371926971557380757510062143143735030779084219147203142532724921705681764821087381607060687208729052895238280195878657540575940122696387461072536556994449596943206053249316784401094368287339370826461818920186912078941673947795672367971299130649151966788638895355597561031936673633076959383217748271089018243359392183521738970086146935082855773260293362472211895059254399179475313363037528692001320157021906158957186596716826929378556676209037759954369594764426244301331037205319109983519026505408613981502012895121579279579075361369168893637017343382923577941432515147311222554516020675207594421503483952060410085628451828880446550159470952940594847717550024115671172760734265240376696867442516791417957764134873859292486607788892296966835440431823207854285687136218468205653217990274978737738776613970796857515548191432045745130582645906519634321245949417192329312864106973615384317816763230325932566959777681938723181608566603279693985735908186128111039053504272361671989505070900366841576534406704603310197099825738257643829132151271341850991678496675619885698940908963093456443326591110616847321761006129926339718813895528396601735350167835080182290023085517025791759386685576269620827829370221986250097249710888231243250579041503647345710868112469047140441424922790379230490823712127718844885055339928039134404947155644988895227624026422402718077850593101915549456042798370381979865827063600523808363231786926105501244750406098004755034931228405611467675772691664606283809110105729751931773902781101398382745785423202430446639736065461624425112471785148016075306921317034829944609072342716573149507616630651656223553739633735873965328951421316413181345719823922207450232175032493314991971798271729065023959513320453569313524411345184928691528339219899135971930013808445109728461960525437894855136415365253359640563173572943657011368049127752162562541457016373976203157322835031435339382726881631923878602414755554371461128206237063088377218757193468404315123950632561959965142272133465678363099986249849870643429662148253365093185028825653360324396798248740239757734246859522930954684507751459987406268454577264028536607707728520568766487411798013503436932936602557725951148093647887945858119865007766625584800091669211793992677097516100340815518887526867271682346423750811598972693466156094889977221369655648983062352587258534357381294971335202428223158476965314886903238198886009763893578599282310358540888809096397392369230787288030913164415091638794348234609996039744838263221719538686210219993619315053597524723669153918673401495684364887320167174069829321786718267418962544203334190767216928417889214839304004011216922754181812701422780831049772350987047134213020584783660470358451950336435068418565950234649357236285900527542218750568881888257669220169822537469336860585871294821264053732720548138888884993964482692585482836779189631067031438629739518183415314530981228808276546777589063370998615022755504610920276939582924046462682576498815173056824369499314392026740594623599808590749072595193786533736850009105959243449116584227145514475238465319257841392092155412932975066150211825617352510235954330593848103458687039450195865797310325919882548299630331419937699397011298881788986813870389672323255175237276936618469735408782988061339035847297995650441571211179241237160818259417515980673464265868613174884045303401029030258645497816208083738828673679775070187831686292371561475731983165047035290764349769306764872023913279268881018706254831107821681407350936089569325415290618270419309177658909964509112994233290986546170171327650277720627509875923923033560089489476487425021771052916412889979405108867984994190921013437639142975784400787744585592814358510701218535871158902297107733974380800223169750198844312464213553441104649110193151538017505240828163660770006999954769097559103858638470114007974430681456823562971567115976678170066779605638701700615927550578752288308105953168286060857914585530353648588186483883180180196046081048386737366255937871678359605603393332206144508466401766185499324304095700839245084725686644480516883859078675978550179956524070450635403669511890704014483543963883848246021057005330545709205566556024857809776259482843903079673774351839270641124953063678377353897830646159192151319786860108977809831396428993847959273957958677492332957126689228060666382688136086137059392735354765604163538533795409109506949336436017844702259626137800377748111342261554622039488566805891548846070615974407875307085996906408220232646547250104936737282385163459288634435640644717688022613375015186958506239018403936122541222968094624948171417651479344126343478080026590562091926167069843840656866201990154551735376427262044702738959678743455676635607519889224956033674881417227964271305945456640709509032707286626101027849905426969429496435859102112064292084283687959480388813030314826540503508599794687944391133189084503755577100591617461263047066335051662507440225369730965883288391365374061327504022115848206277928761047966079995020674043498764312168114252523719307448331267843438823955038955940594889262405032988047939407858575925147681295242854230040136483979378854447715981074019954500542937986450165419202984429351233121565443866919181764829326223881062908868806229189256744445559139592187098545713189854560972641777391608331855408946104614042244262673734785634741163530769669401834567523254520906993385645665886734913350834375263308927108983408702314834529858382199979389424936160605325317070792150328253967316289132145121450699610003578411137611878532212144998733497936966289387124313145334684456724082087325697808635619315235846750521815856620600929437553976931534875536415644029905100662924800788221615787729634209253571353711354146185367483284369465150582194948308466682124059598307748275187093908967283916149277152931343860903558029569941483209096501640370510982937288151832925765847432010052565453805024732015932663557103574941404528801026805141039184538020417246410097433812760109671942237749799402352378346882487983457300437847802767176453550769525306206146871732298419441309628875467876828780008612771037024432799310679618131222238512294026400536695877608939443157447534249358343791130930660019687858902127247987747199556898233338823179043373748114684130348728515559169808335420073737223626565957131580510932057792540206689751009846052573227583928432381526541312649075746441983798394106480219635282227660440803635770468717028457824553715039259108788148911584413577725121950518486462430511207907904179916214838598431675276770203799138395618082298313792909453941988050139479080115806941668871758151036684731070864934452095974070615896502905987715652749702171644293746615894354871551229915496259385901815768271759329421522824663986071109569831558703334422423013576984186495381740766511251857761164353874015017342117612447042254876310596301518966418421848800740762202751640684499167238085153255069479902330029674770626079161292077562527596548135009542732231427280276110517176705752835966411353521422974345622381795378796200144103292822464566316619389540185075025845448574536843774284557401827860372839278982968420509497039620311422876279965448310463101863926756091094999412626785577515394964499902286044250043288227316847543369820960074328123684404573011945777556020994938525035876360163518767894848034068862274458177742723901847460298180217019234122842349625894978848188540428759812464899686034014191726212399193554319578128099858876054202206186247688221857782660469975176877258785848130830709865843384048060489787885234645328234978596477570160867128395079775862245671241059308380658616987303624485942183053935728615564961671903891639947606332352507156584419930335575075328187516165970489493776680572771530225513091997524697425550281961762730898264000281053661720700482523666734722316520374628097025132788779206040067041054271882829228544822582135170890879236429229469862871670946071549513963843214733641552823550251810635239013874952379904026781791024671806673557901089215893773042557207748005421761972786561099283632530234662345641816663796615256302653158682598585943788769597105185960355333884739446116429800679770011151786257942172018960164348053542259708867710842172962874737278709346621150838508456177862471837288199936017027524105161683782066790050969956582087681912545126974172708176042811314572062313736344807709935119841281546408744944948068171085465792675067911746974925907759617690157851437448668502741766494179093706421506604567077709048931867600976142637908517866535837606764135287249466293672167918116218344489072414010035906648938278561263851300643694524329607886204511908081649126264943563352378739164814813555458028288749755554173434426503805878787595302426020929057573562615089899086874950564764435141373496029403618780644572838508534900086057536930396904608065949395700882065863282962801948470307896704138122152963402771895546478252370911422114057401272118941957978478114481297620061264980059170792328170543230527087137573558163231322064476788949841349342629379170870505353025488600200681502067294312376290266188044174764830055871715765829891112378208665804547666456216857966579171204514418440089600586180607216333681059878585235546098759400015315539250413676062897710952894298849414845514450863173681993905568955598489569575529429825774201849905109930579796690967393850160871180140635213521871778656913031302018469709478613913878797374734745616346747347809994434120001715831611058128182393094929922440646009455199879358991940565679861664121415175520674306732651290753733815991796233924714807381289567765940367857905441591826105231831001493968813734028252685344437789647819654757749614256471119231684265060204660181562994401461124784357975871194807646126416644658235808604543304109087213474054607995016702693990957360942114880760588283622079867470780488531957763272965203553887242733600135922338691394287718052531088893965293763194918737285945939537761686182044946823071684953156313678215066739448533666115108003727939712962223302456652739929621754366115500025491400481296676732779614920836661949717682715547707393667547200463663944079106063785723056801141493580333368714413137479138966563162646147928716604754425272329399375258157402444613977909153576895503826406256829619617674896121717391119887402295995677311910079864314510104271750555105250823777996396245172724244310204222718869782023709139728359869150360036625791306069165253748975587030073348843250206458832598692015120675478216098954289796245330619336722773700922859735089240252437329534273416844260847480356324478420333853799330129055405637967235631438946818183835036823672995966732289064968996456701178962887970429326765015532310697019044270183732098176841976853643117744940177998389878719463781125941216664978413656617101695019038553086806968035839537118415257619612791118042721604819054707255301692481195116300129049281604743316030857585605627004190881034002698639516400247227800431622434091190432126297719687793056504929871703643120569568552522181651046160716860496288766389155313294128369095486974501086759310004755953315227093984222232056236254699518776733278604893920714964934147433644439800072050506068828734864920570571381275275570002906935745483880858618518212234156579488076941160472121620153165996959301566598729815888969099649365086226952262303064902736245708800086634824115783266463676622793498921936210340375881555298047578033829819584662262367990364440014410572335465456118339317568538932956927561547894566261153077880286391156643678527382164108698137857569994515712547468016889385399177395203536665656173193802168142070908285777762506741955903431459661070087508990588039076663092850037932675616123117309058111276335560725307311496234256169738210377138835895420073753935465853170036560377468614591208481695358941476544342642689085098289116753769644652801747360816823165521393626896666842833525810904838072244285001658268172782969316191196610785385017675730751364321626153169408314861287166629216372452755496128055515198223623345430400371298104474592299810772773419288275406743882688185357021973134247385889733488165211451422002895794539636068609430726533632965431547764577989093279108684689582346171611598734261165977336099874012241272655507850209909249238006953716233916532625541760688440768650490340666939958860436331795607982950951773315170819648891027799871802033520256255404124462675274932572994067731800297839302985141863601042934819486931690316553611692671292141736332632060024211718077205468606301359028891301268775316290741249935031671895524302254775748980073674752777512932507336161138048785254001448008184762570445133642746720663986154353075725493877658969563649201892934663844457885166595609803348475869041500100048445144592500561099133160193129237767177336795146072481146139471572844126624301011388889382114976661001745424387052068112941844585974533053064180326549856132362216248838978817771465313909777627354883170811414528390917302461723851113620410445660082313192694208747441352435809105237277647953210254787501421961835164862100299035081519842690254333703865606074954177816764750309205439795786307170855435434888274887837565847175500367396982701192683268905113054180077403859746720851460833563004913152982280691969590068195780360788221039307993376430115027971318869461628084988750123351677479125913729399668517615705995298176015652457438198340023609905923934018008259001913208245257772206044629491455654480132366453256455512651070468645572210651460466695545800462273238463982897922163730112388315909461122589521367041264549139224752702481284505610493157488450186457221279136375886001843012507512301872819658921101994519752539491160768916307535229120299235577148090194450886934154001957878090401583505803753027975936986708189542510471194365316547920152914677814470049282923713791728188883709346858248375667203240723783932692459858351443056536378390247819192733736893316931300099022877556836647383838297201484855887983286389715669276142187979606135609315471102359899486103867481330174920308672884270110276686955197814726931914914728881830416111812729511125394839164004623825024515752455635162111516351222137362017343641282933234835498293306787365290968353678362585525864356976613579052955822027623805800177372369086763771733108590957716177351617619278648371989692145850112443256866320435727001679560518756158502275744239450995285098899540213806325016781234150168124702410484904353397181301236923040167498148169244077816465026875797299418316848342671700646599234497643470440859378592843666211609204192475670809829016705106977257030858448008021892676167997046368061365488392220768010037228596300952145163149123775352877865776976332289534549280623972414781442532007218288525672878072760235424561500448974728905816958184876193087367087895961287074772469475274252228647598930143895351064549667472418956434058055980547796486116690127134240490894480038246490469428905027321443402340061188902137703787190598929218768610030103479598945599833873916527179140234441086719200157986283779574414002459500629920579603068773561480824443711257279880534737319973538048209380408875556874003681018578304868013468585179528770334091284677850882745491071680847175999137310094785594968733220477260855776724489561050245020992575980680644193200386547075651029443479888606703668016654874844548242683482560618062808749582647633370788200385266549945967858767015033034768910632520462585496995370154044590572705557142907071625199335951251345858993946172247633697523031358190938137602368067180228383165898518007641102944998110742637157218246657612061942012384306111094228183777809143327041240023818319941834451048797263775611191441848629367360368247934992165424192525549249727927709054432044038622305416171136980487443897707904206449042196226579900635911781064499829514833996452720652538159982191137286487969056699723013667196667191335408911321527608882654839937721641239614820796857363164407530973626553036154294012638369836448782812044465875920444478768741984272240445279156248517323397655664610478936839361773610168172646311228891885793253495844614426597970850223429603043340132104270219993517399553733887277037725566525437566174792168739145492595645074424352384233281882772992692063297255832990992900658595365372444045237871228601092732560356997272551557293594339174917840326625393215687960389143700357483438751083778348548288717681326150900121496221535824331851468931878203382833882524928349259970295287294678736979270336704711718523444467107224024569992519546629637887015109954261875696729441129917194423966387448046575570467761651237633503136102910783694570970317466645654991561027515255654188914355122603294495955823705489644622824137816607892788557957288520977868448118953493524869209558660134164764210118332671702566652237407708246898338572685556999007293586216038480092296410920894392883853533729798571366670139470934475995976614647774647719770107442697999406576150987023396582479079564594792074899949915218993997081565085917590120312249872232129232515447573406625717205981885165384849565034765716655082230490002191148106093461630271878679043295397524585745103991318406435380457113599801059511961674895311533036330353153946618374082249275713405532013869410941748657194807175548586797033365630249226540661184965914198498312260043206623459585299929149757630151366734260500550228374215768805525266805778538107625232980134787874688920247745048882510073160575486396995205148194293726145906565850100409918691842594073313374229872641924372930232453309602930095078915027368555172414823420899387143626426714051889845373005227406458781570694653034339400373124049404403817819700829202148091954570665697387702950693911403204170957192994627701842692470487698701566524714310277044003379758503952705000466090164338712527255511203261047148716366729753157177318111410153752454887723896971233468886610082851998799135711221427625985454633607180311208219355888844177788492410069128069678071021259155389556757844563475020226380404978411706520742099636001662784694584895859979956583607127603090938591080140809883699179772701558082700677187931951526471216614468938473903787790706604458946775544016145052966966764383268215827259158330490275085259738507382875260263886020044628018674486414120864793046339909356129439250211038092442517965252565847654180724514288968649924558329721955315943449531290685588636778467841543937040184673946443877904991045590947370461430792170729945830160459098287003152315143947406038027828440962445649568713362922002210148175406603952350888961267405186790498172307937956651372180817781973527686811050976371656734185804857468857416602721597877980973832951373763358699335882589901798418114139839494328258891015429375482874515557991746974284201277840214494953097076131689060948021605982105255840260093873306945420755991099241105670069628081705207730803356218730486451605410317865942390911398733840224601524408888577663615638711348312990335777784180744209836973528576155980605275803015533956237948921091214017448794117583081943849984787818908320720655272820865354946029463853579119429030157958220236628545912698838664906205408610419334471968704002237737346328759526570240653885892192788986703234136170731701927056869779410826408451596267695492412216166817446827456564295579603612763911072261336806944641083015357516347902826202694931792628147600154310104971988236274274837321647676713242307844476602310817486193991493276915203322550675988358141358428178661384807749893980114587891172645021305367926707060250834437261463425885693711784917431643546885381410910522735530085122192666479765989601729033235775971165430527001443768292772021676668213026849212251082444573935549684226398975707988109732604530820667383796394105344956309956019574024862107116035328969798339038954040067995516011036344570782374977474804100109241358527573297956353690890107172767770379834428265113182645705126588782500005575004209354021989652469492629520993312870573502858746198588313859951409673097460429635936461949494982429920887481875474333851272476632866307724144673978214895361584580011440159398182797097205248875965745369102782921449031383792323670127969839112777294835746338392294420078107607538730840365052072873414149441112905420755732726143134511092604069857082021031100105158628888919753107127286258741226533895173600981769024603791473700507853145296239413474147844650064257470815355266697900516041401227878459187429352039580814898131356033678887692988685615662878511678480366281013686690741234838304089301810035294477735753370635206482153048031149758898156299801810099250806744723074991782183737995325859171570468226031594859151740956286939783798343260342363476887792483024555568254039069710347587220174843181875487971745397826898439221345777321519088450752050702987319309884710180729103392786628947137766657279799176628681617091626919289015555183280659975583463250795377135844637469250754922188031457308676189381419364598203212444186965739349319034093384108925669298335782645587371187642168739188858242840939206483063439239853967456940243280620844281338492182094593020386013628361624875378806267595034097973496257486453059759746659738290114647250667185806597296062198484530019410573750739632745064491606706617094145262019030547672142305473977534163622803579254535674787874669578500683007064665646439241176394176477156967169840355166114509593380640933296802966886024443177352232076499446959421947317863512583101074220198802293415131128963469975389875255552384414539075140653310123546697395340996750533589047672239554039759717664026495770185130301512795766408371378622461662057524604946630392014704281660044263588258538202714057850895474536804620560864294968132844601420357840858257364728566415478788188461395979887368237765211531996587261955484692718220833246178837499177267335918069562210080472365489514096931015542808153099428530363496973809804520305413976730144426209050868026767163400544604178177279092487797759070314633790438608313345939258883194009468629179739888861713459635149546189480965527572161275069712747910457751424464777851408415185133849522389391789894121910034346540320013363529466312514681204676412938893974291996087970076339225641564590225031075200464556632851733211427180994563336349922445042673180675958720263057655664892707370979598113613778284906206437583274636013993236567135944811454821447499413569814697925768005594344093340221606338595543398338836855481075590629732401366973937709513475323466703768857933966997664245800987866964032127598087910486967058745631544186574465966924473735147056617497662578875109398608353727760715371722093294527953695642204421130655051248526613300908400739000836979823131438028430184738604682161592383691936718208401104875310596839290072000447024352590973253672842239452408466727893714288328769185644871636395684612467722323262555192781869018697531869734733414461670923626358695938605595410930616365811133552046720076157479049064627383799694152404347422780097158434424582556891130461586614833495410676928166511037939396128044447835943540487992531602401444020693122541580372904563520057418154086566780767799691924296905742887999598638761806983254592828122324176536147505516397414515050789736681255670280788289384786898395201324054796659498797581832490289267690025634305045948463388293279014106847602197576416154838615948356033205925346287781742948128674411168795068767819289531751190751547181739293420745131030460604608073068787406473401432424422809742108954075974303808754232830557731159730868389301483522506352888649000172538611565837965754627867879729471621617147781790950964221514966247071668164392619064133758473066046232071524387799471556996826544156472076281514460477980765878579619343264968926144293540245651901744530890613150440959942312326240339316737105493010332348818651993335556229759062896736186076366717506994288251667561954726681214623072383147997757925814779710916620134580879566061621521137835037015604474088534286006228331946203915858554899612323707718667355397405713322132172014048010258865329382438814179125916625182543074236143818158380656586014724105913411514835362279763410490301616704122165963443662433258432563669463691391854759366390001647091453112012269484765568035286878765412812037639321870445702694959616161962244718911940524329299550156695916043798045083550465971668810556053140921137528524311040506777405891982804480797065263257431811840321691801970666266782331895966232901280034870726471118953127388854332416061047851627908093036337345372470868893847935555997453760853042369996214469716530462459898510644037030776386615068906383544107039947369605525719380297227640768729833372884210349064633565245808248323131420878979592374410993757425312629094162259249127755152977119785734800260860815199732955434849538139815383454541071423168300572828381699139080898120005818739593002889969805127503885191510043194780790003004443199559547639969735697482751660503488465494555880332175680757516718803787277340410687233340194812861331366643644741866956755331540552662506162929533275416641078518322779272224349080295551712998539974875269683294142906878618180487073710080575432430801581420110454005863062400050439950309623615085339881206111190478162794626097213672713792453469466438731756426097498253868354896072631078444669979733416060420771992346844174334179158404846388398119704236828788708378927701660834529460565747830823382893955896839358598253803620908218776412610894083590424167617772492044454185850364251749414069419967707961492231561115690864036046341549235076522661668764047124397493047857505504322949750042372802148874426629517033149638691560684868873576165207930127265654560394068955919030720429252486830660106597705987298404082547824601558104840866427060852117606238176940590632980661805251101837064694980734370051702277662939360952148936658687919646827175872616536441707094754566884017960060297936705453136540266454517612547083940087140334100279397535289972230277258363911662822487379986900761898921176429923930705163290434403978536491471088364755520534346421473252276189311076327604366002384723787710427157880453332749938307561691469855796064995299760078853618569739848633533825006613908827571770234825600306404714343435057978530974840627226391688020060230229383032252349020855980165302591412394551392887691007451233937739904942962488760705685294878804945834785986453029594801591721399247485784861937873613875172677265642272154816248475439681105887204335086044482201792128142383860306065870216063478455266163874089217600278258398576754001604698996195415709294587205458248101952493761325926091287253476431659179035570452561421317619654292335140598631160004969816790085072112142727272497808396505406087568002261837828330828856286156821351466864281154608627123511052042228963907578884264417199210942570045292729165216145951262860006544109521221594169888823196211455518407671651572763139072570961952471427535276209923489677845527276056086552923178356727572813780636956769216065491185245340182948252479421893489502311852302081564059005952267096167212701455285712454030661490274065711640614713394269177291351554591470307538855247019673304486026962899004476163462173120003993869329315224698173881111220276357197960754900108801353294156801629472375987169552759304774771331335861278403150970364730515944307734913133856298663745378731016162786292053832793882109955681628727614792621812683087134312608744269233338336591810878241242513751435974708215867108186639511385245419030527168298071261458889766946240694338133252618052692816348193366322371021458873886882078008535071354460538517187373077414449192107487074220637750039041068810476941481829118955801924471696532995499402655613311121967524369089622496366632375470501772223837174384272210458771544721253547053140874076872180941357649806742569871875386749631102848035261261745556683562311609663805633442435004952000631602619469884826128786924732800225515844248395569837955016847015526756021314798862353656369028283309993713818075124440287774257187616279374917544008426606275686789897791209851824472216746630291944083092870364517729999583537346445171804887072650806102976179395963512220803459515637886174242886291735732959867392327772461369749309841737826210006465869328951472431990039456759111858766520311642291932639252366851247500224934297988898054459201542038470173802587823755231715343224311563208498530368624007752765507829905403158140495599960573188840439875878546469184573361488829454817939659417682392178250197524050142480658526329146271656042917096002824455971894569322391236668887306570080502938120182816432062906829926852142622609270329488630742164788214590732153316025755944310595451861266610222185876748809726265603277143629601402838910664652817154189819976169755609054514348796962833197938305836468342269138409733848669555336003005620233080617792285041949390344175639663378287142546313528253398660038726976090512887901638736982011069057362158839501283184299691700371374467735141553330280344665963832905613765512961623278443628256048669088838162702946702990710021925359068481416911181447905363846765679032255749892251327392743608395157258804597979532289990074469955358303307224239687279585715431036564728573194427137529954905574978886335438008299038074477183393821914535743525335195592148825743103872464076580428378185526205898337859886280213863490950369195839306581735707766150726660847969345544300746038026677197423602304508456116181400854222319992038053097566296287405805592248969149826009198208691656784641558451008140376992126451555121681395466872226929398725929694142285276217024393647488683291815767894379743542714037416985440079813078833287030987450916710456204449404754258063163594362175049323215620044104491400018554738989961363240758859895133317905215187634876139748326614834773495281072856845276616671301332107569767236215837019077099107081275095413568087930263543042402520787600331453812466451233019600100894009739302974114705911141912587695275220433500441157117127656113571876793417605174746435129708277114330667954750449526861551054107133521089392848616411853826201062402799058591258959017945926356791424415837313208361235600609577077584976267804272602531515666055614953298701185081836464690807085658031671697606549968223959149107804695680837057052783031887270410335771773140051228804319169775144417591454933069577152646221446441780178370543784246417946967614967017662477238067538106754447987937003026009973937509655228520342540194725122867315770877257659652204329728540502431554060040222537239528531712927221912835528188684531256573801647737425307148537062123708007272726806069527706171926622122139924068433719117976014165474894032278983010617315438335671689178798167678736763925557180763668267833714948741184509397440794777065405995934530897204877063144991437318174286181913029689982691384834876443034157856464946305518204683344647862241714837289779689335583447804567235935046943422862027625810637386213813022297580828830757893273777922366135560210884713698108445686171489975150476217608969173711062572565693518480106426604072242168428800706819560951029162556250430120962424972519132285111693879571116948834455868986481710358566356872447476961511224099119833643782720471536931343961989599649197810701715975528070963142640678739324018752479645513505691185041193661614468703576889164412397796646041181051969003372033672488829343185248496866456655441547192083186464851899082540929971480228362582538949004440907281925518598340673405196475712913647111813523787132398176441600748327884218298843393391255441195503766913526793627823614209099798108373302851192178663609853872975213274495815932156763008360692897525393350303450824865169338705198243788682620469332533462987355758229816638292418401481316314267772668980247616719675731689640452677303265473016762568268349554052107975412106990548689812102700490847879256089222577855531508217252995136857289241542832810668293879697153015097293638909240778830687642217671255649466511346235667803042036588397671765215521860271705279238427258970114238976442543928638739323245749226533484621066183660140844391873570746079291292530244017880102423722104005040023865997859178565648631508619814398488812658331803955678216284205366674991876093741118786326280265921561536700186329893127053428296916946334136319566096534184407319587334029455188639065932243053022582310638105928025627689083309972220771435077247153324067190286762526316582594839438035628145929599078027295019046253797775143878501729316706264576072971946074124064557446004081639915637764619450058988127231240193464096069639425164568412049287962987540036281090354005900826770780036927105522762516454857034280629062886048188163455190721919313862974340998050885071534749582460513830044328782334599443264840705287058288854795088875826118127051396813292235356399129276830052616900141608948364287742886253484972586999941714176210773031695416809768143894549681876632862789994138779642188180585251903622029952532342077014986997255479087523206749934271517144025118137293560303875804190786328379968968218383610743811044371469591968562765476693800702412950749639477642697118739103079270721668098953883085706913702717710899848570836085153200053756003628762355119168243614232665614368573320422517101189387437237890180675849731545630558328655889216106079201432144633511286508486887038084422875053834844401134804500553700263588276354965761582637644828111463346999451476410744223860942463047316346996640087245226838805534839448597682654769383837028788110744499663714897838915032073344201221956833711269370892743636410124176060160424214252776117789654000118912139680400772155962011572910349563627156361641104844558283548703254354764291382363410306741319925110700741758992446065294769345853722556755803478309803801283767655716030835219080880604874193707408763957419983584874584576357075663904271513626096212285104926441728293526588141564928970429443644158746314619648680213129809157550597264861124120037713784926357272014572701733589662367187157028454500834677724487911756876642671354122987482481489190825938951696617781721650006258135586430092995790008992262706830237251519056591051675167913477173078780123498273852092943082283162798161224228414675396461460567107918376051465187059335267758887196141683881564660146396821539317994665499910111298549147282469871194788470584819369452723831352572183714204740426604014718481882900161720907380608845420307399188420215625333633973370038893296195917955004601063469150730314560251109603657787074188198113957638748841632398861158634815578914968167877972056688801276632909732008397402978975800175350032137406376655721418020314438102573226691447078077166207371342644157949349268281724669565949570597341047237751435059004012818475270343505488520714331464483474289401549964829588992284811971676585992794846025987845050242373891337256422221264616550717901282433253152991726561184057857505476838630643441139097321892843777797879407583351196725085174759077810118457113330917456601187677797089343835932746037747646133212834210299890735234893375881197595645216137889723653732462735859748759459092399585085019426243546499729037980651442769726719646150752408858717068230399620477482057839246016984551724648171328982857976182787038002746980163909678450539332531089599826972488072571015482150132414395293475073231037514852970211684435210760151822222514050994012515955357724167547458478156712493315991601576624888156897639087354030636125612408526649057332914900142796079614475242951210109724841087596482614061739688134434433176532780686573259838589804993837270329930101028737787459517997701430886041013807033866992650375921737962765144934335265310741604196959731797136815747075279390943709052644431627931134091595093993163914785637470331016333940516594523725675181847589262322584763604830119783903250541732439941611464825743534814624219045080922244413897352494047982906256806740463309527643526781775072867224325501487164593786198356138227662351833443247616945663015445164001413441108741911214759625577060453262266672884277771623809928961037797405923590486564989629207919499719784851876071722977691146309061467697534165929515836895603911046136416734104346845848789000310188929494899394318295245765013512563830621411459592467880673746969745980385972198415859583574581983685458800494368746363715142118208580050984534476824929191745362456826352416534130943981642619601882759240628676719022144942322530646327099754914089756890066315150747028163875114929652906952999784047404339878101646087584319312738582302327983735277577074280060376776458694528564217601070876039815474524438726823129595915413834851266969788692665002252174269032797644821748627693458261969765654358876862077855528670136605028724524249152780709693685895010899727784753788559947370890480112665241062247018537054865544227104890991911637752099893171013225179053743609049727960792302044988460187609851452997616022242520642135036264215514634893925326895954384689166436661730208822609944228339656336428040380048471151370283608849943171433166322781008838930264477581984570851922789899394563171023311197003160841636521305156876216754367509668019304336315801123997299644372337296988222416863735434880499236631303897705803169056794762313028458371707654202579094295780312157490064522256314834935938083783637954792648128917862802553569126197522714912249922781243809106449712618558768285461472860904893042066815463746227021216927275498588241757575892630656168346378434659387659472775131032929899424149687943655703102548593093723524836898877820455115892237018114243382419500762512229526243165631726165099164935817395581021358710255058768948211415118396163086694333553761073988625617532549689191011072103283267070926957704734487485744256095832987884058993729371825824925020564437727224769145870177930332030668974839778767435676252601939216655284618657084503170947001425347506746753597595091626702367242730692005425562990632846995717038391050263119412681861481515816136644848951259091141326742539361585044164265444926261669546866011953117933710819188213718723376579309660583871217037221014858571844743809239039629424608461027496008759054805013534032808563641459718521423428133392520184094958249342541217465773500637865180768766089702822966735678443699228871746070194820401476874597709064824140134644211410408373331395060101386211902451531882894528324349436109754041013628213006204012641789981705910728840340112242532793302610270214420287315884669199475264126269311573307394585526206998907853943452427051681647343204607147232352098470109719722906607443549286109159614809415362625267949807840967374482993038953143233276971355257728941363811598925241611131992339367569758276827384327744360625750126299610894983229093773349021665129144248890394204319007704184640795201763521644288565512496893444503586097430598128210302153000269761192827521714352616482152684060463588599481288065123528614122787466910989180701031929003322067875317648267305615601706655106232739922601317940402138128683961003583519349254180153323063694724951406964305851896417326714171765037203656928922075228558833093534380847339692301256166387682172161250151105706926617545752899036256497015059472812857585741272200918637130673083740279756319120830590264087054699454103080269469378768143127813318208281464485432214547239661468917892668522178400923159465405387125961081619861064912719486128242632071040145682524801805522298763985214659700938617043182111710316843277687329770560069842758069913458665340018130880678606122277147996431490279155043201789128216697154174116938660293372554625021880876405412069838816208239435091461910223701317181967306993295774817462504340493421833174797634121729628591552359020568961238650015155827715965137272233545500385110622155712507526366867688370346353724725220178136063591067221312223300612223979424765546061216179911071021089328310478812371254743166661097613914986744632409440264161744596251917336354293899967170115819234104412228595272224133710094069916545813302294101867672519268944083741964940413294088201351491894376045258852917006109176245523348888579745337164105668602649754945286048674370263019298821527824581817577638050014377721270168036385728805334627320217804676227555780494058619993830642986196424593313341872810902604146957501309020385619629724903484484500081629938806899697075580809026076962846665602856041271756063492431039397555705318707037436591699369779813591976716861351725315846908996508153889488215493498218903891219752710049721157131384698420496797785843140674045299608136039705526370175929633061165251090634938003912940899171644220680508413049432648634986400521701387284457349342057299092204267356854588294979027054736386921610788069132412953471898729283451253463649992672925438303398359131080834758560988507204773546451273792313440049663838153019375530595349661139697238728593792683799546197921060225439237129747993018248988668494458711199395309208121526950405761842738926619932157654491416528941363888273765172257207489878312068506232309275618039604966690434377785432948231430744792728289785463125391573060255895537642907539559912384562431419620932265501153403010563918996930423938282931775434173287413516574868534498718185493254865675635991276109745917635405686019855478278422956478631439906854265183199658734987639325011105055378833006789950710182702504385246987000226366305115292117599058677094912190508476331362028006763524611946771419589006067734008601509007347545858672758783083866897504542638840176405410482576778594127428703088316399019155702943362320068183371383087410222452419835390629541973231978694454908284346204524562526730181755451963076017053877385520703867454668024015531223785696691752748322520105290926214692987872395334090689505024539893108643029287931194546521275292111610608392429597745234095127320371474281345241254935448867825432307868878079864952990585960362952492496206764824745046177808822288891933510105290773209029157267788782392190904190003382926918906243301852889243231193751358814732096543903988635205698286826722587533847695879456099230245334292127877063205365318439605047083374901174432290246031872894032396904765045698014895801277228369263056717870449874343032966556336721442624263233873847263458297878396384580483356606932214134630460571735801192534665159757608985262675236846339215869507431244965905511599281073847864718376764313972519420689440832903862665858289938630313542199240275420627740048369612997815317661576661097746138779617158200125513018885848286152030965482786462543561335039832088336478992560260632724354619631073019683918074829246073170383193662478387144964344745047017134676570714755632027221336635048419767566425052990802957814060355663689586906915188542752283414695146979281202345411320282111129612034264556520773943236291148912177516306746207211008986341828825947372990003237904086084500950846348586530126362305604689786292902825358484197324730817469373480455210611264039618866389468171562061973804080230758826162444438394760799466021452031357898466607653170646918289030582304208432117624865736709682297884278928498725096539205052992466225607687229333381144138259338482172530116150019355403746202634686293080741765452948464230742507847463838479211199426969023427711347098021719665144589814674351451369891746981436466543240995063682916499393108455309486541563486123849495385820351587634691865365097332531311890304705864950175874700521930765520309213114184492162705671046947069007502872522819595572425936926375978607615116805726400829193454815818233632206135999741198921346621019015849702135641264404793887949846955906042657283981686823432672891974821082674995301856945715653415822737792261095448659671509015735887678374344864758459982010988585697044048568220325461179227852029578612589031990034592402970356364625266562017459159482431264438813001370744430296354248218726243049899745561036256738256202440923491693194244335849976104464896498061003155671003392452904497780632803908464211521337477753824710736093314558045102861334326286718179354446711170869543374595863928403428470496735891446366183295459236368435668804764231483406221594384573473382028600325180767947636946143473565919501263986094835149292110174273664459255458795651175377956498445842177343779346008201490326909754570303315071546578925928385739622880763660016730098785561032013970718465408115926408304513248235428893918790364374518887169898613028098316222938201723844887681421288889434928618284097178642551848081899857089079051114398519329825159945375261993288365078541441864828416415188828883058054169301486925125129135574782285994772136712210831368814398554883335853408276409079622040392145808695630424937500895182522006560886150295398735124849977096720822403119467275762332738998258794001188149863275847517559739303868571451363105282984146724712089672880454602107069279378799708825180232448751038482584175624347107121559529128708847437451589830028910668655772584483022486224902402320819725632959870626558727701620127010839940867621181708328936179803264196191807405506814556825627444401801547979714009238521439682026420730682695537654224788782524398868014076304939545585883539715150770904493023585963692183344000508412526715819113972532878955280508771441106176735948832367758783493425343913094667482828212487117209735858165867726694692498858678592472481461444101673241604862158253528911000120569857580346380887798937710300395392274766227009884302791700473235994413602900032422397060541511361362999595056297791261094860006810322643995673579532465923402901299907440068084333246961129776991246220183870228606173313423416978147081666744850304546854176760919667319055021499062050601258026015886030482846605429030221792252475840298255384714691223239003521043677072306330009102053907668799014888747339014937865535648906924840014779955760019357031474401521768441629077207914371189340784890489127214411231846333070543083739943349297838701800217949974742088253230405009373811356736251535694790433212130788068774789208124366937843738935491777569622662889744784207090644442477147751165489481730017217418370536289337687206222185416117134689508505452009826076473763410357069182899568723539678558581839498311708092076033652062463089712263721667493470018532536417992195520070117017273064861223753680199088498402726144961113380953477177231542209333405509727123233852651981101172514875766002052193684438388973323727126814950937876797289271477149014002169266384894961959447189409051090640555776397652017287503766289799897660935874405546225803908560964285660346457599371235918640478632028913615009460695892054402798341066368774099477052464109900243990078792876584650537853221655406267165372411255868214889526086199343791155694078427791513868932481504557100618156680746987959279325705328056052264998771173235755984975102485336427885198072240354711199545802513447577494049735133172574793104499478774170303013403072563257639664438670714720399050473250290200766843036289537788003984447545398312144969634661538917515159748980654331451925274350975578393826570370670754684440660368124082985097201229537319975722105184362830388633606308228259850162545885343038918501293899086306032967578507406726819528067898988327328201669393640633108169611322469404324237167997622420634089942532925523820972176997208982172408784806119367241432686385186892610385450502883223145707840748187019864998474155260461366377374391281882525933392274547642391508062070560308871101158710647915120574755007753482908390846693421011395904733083765688572894581157955716186202880236172540508261539704147885933416117268253522827239781137341265160179704178053132125698275513983802378504201818463996890105270821252807552891889893085525520580446062241634424076834763649416532933979861918286590179575502402106925762760299346308861219940422312854853180029436659556091085421808578894012637971886026129217711962254686961879848602716882846209744803464479214048055224813493434559477464659124394135949052440496331336390241857700993763450638274695510147698153694277792202509973474823808032649965992459285421533195494349264316197133659990504181660021634193394058491656300974712689033381389301531788126964201411135699997397693781395839676160973366592019206240833412058529032302575868485220919915262236882203812865858150615290342357493229317092438691087654436978337253468574473209708453445250482316156609966683404948665635204326933957029927533550952480581248531059367374335005389520994335848341565495202629043415790301842308176989727553883893991324005118494317404117792970226484248610307127624539065011587518758580033354965019780865753012271579099301421121404215589920320554995750726169825340992461335899023083945787086290415681680402542253445041812709956889781462395008355025391972783107778358245976618321107495305970742971236374789090674204492648725641777538664174070969840393500516418205920238312389684003879459014893059852954214950964709743884495716665545090084775515836944122110889233263516380074750720995383707367163075969466355119204603215070175883109583632614579521170177428551473087454674903332423800113229247041746868770001348986137029796437817478171508301976855697841650863586548278461882199190576001219644432681012025275947083219262093345894263942036914559263686888366516158723897209251563540544859462455463275217368549045034271186761592043670155814840851785743917612339248659712176777483297757638818674330958560884145790909158130885565255522693885414148956855282746732785891687078620760506467144547974045346363287951920103530074189984814562609471211295913395914736329731880939955417287337471846892379455897061979230604689486369779868561420323505329308099894151790355263492668172603277549137797537911239287374252747177845209040572286535639743358960047603201244322760910866314303771527930874167823459954611359917215885191910304641018819924436220587614763949024823599691555000692582563983482332484390685026823443055264141008547431255573020012507895280984677767957611121613103498652090799055113000661664550248259810582622802532441395902189770243761584453695202530933516670614585235106152670614909744862899256289446749702885982376135062877065354645347174944268012528975435020096780932918985014623203617999367838499190949690638846494234260711398848752948000583893264398519638869107876818502833883648618879998237895381220065529786410957882824809380686165848652428445367108118325195257282999305557159167109556916022270986423422256988681524212799040780247495553566269485791713240141681129254297385184183708920834571654358542474089054314398327046981916591411890168162340964486730175390789093929856628163479429972066295475849943504924950021000512324383613599357866055479336776820145694911330497478555707309409862894918972862986249320772738143923912650119858060864216711394003871705403354146126419859056840142869811896150280435218409500095175757977333554448517972427468880707480573145554473926178096780448895634149077229771287772841615827614006428516989272250075020438308609000648526757213930287309179272437991827805656647369131459710374160250392692124258191691770764667255586621457929732587936960984538681649389012836063294520731238155769405490792568013784583755613655943358099755372660492653453077392444043515364438731022813769621795801964467636610994624183375079135032978055709773736050627868242875670113280973117005789893654506165667869632676780424440289833044418160900311967179192485162529817007313888805975414790551128511798419530464895402855835820156143016313846042745041537809549399408541325266346128173780851395142054110396665352120614726860722876277270227905755621628903121586568022204125325628481357308203947739809741888659234938651272820591207016530578263890227601961977281485895426924137538024520327940345141317119818961945846303611203890406018717152583008999399052207232259454383759220738546387270632259497802509250235619118651573769022987743157159922530249785670371810644080491774987394941031435009828535236788212221603226854471145216712738338519043783806954379377127663099425817175173597333022570840542061858498099519138664412238402847553694275040061692776057668360473808053405679157898812817627792479773628426223024458005165085604224305709633107650615077747827637835122231803425117022999030916280037453302071112537229493817204367256310242526134558992708364603202670451122425306677251016836930719791297903362478697687232854471562324679798377926127627285734848821570342234081321932862873917909323412650163865939377433450091945136307235844315196774539054643003320818356745214508373210563735020411341729377487797816684555231665369068889635573179785833908046575159498969892205692426444109863925533263771546559978208107613329701449611599210953490916083829859166676574149214390056858046043107876325554826060652534521568398090350456980804176016790534448330794616890390901131316387009688405413750222747405053678180568311644285376596230283459258517392704545305191557320293025255105118247300418192611389018422357375259646243158177963879812394542068847537594215206936695153650382987811231745088450989356889235578511016313630341380024609426035545055371827095405592238818172003479453281261212647826380480401016605145075341001750411039173456997893079689992274607526852096728478178173450645603678696975971855510611825765080217679003585529983998034848829444623429823326595211645630380347356504896117443590909452602416721845859087770811367852602627152764239222993851195075777113519441141790727839385098812184563000345686085509703718314653080908286616183832192322426167757746324959286292702173034672529268992900096122646072476717280115795713563080683233998353272794141258994617916360682077789415631292754082133094527322705485709181027223790332190347607876541480068260392483281256558452141456821202734910840192500157123808524028770663717657056725699641396699259051171779603070900104686749893116940052817600363828836954257695478905757900853497804342652654690693038921937657276584104365307300193616338709362432735589133186838851374235209904890745248882290477331307979055391060661447342115150746781182472344684271404120205790789561347248967903400835127711027173898585653102687723217780479954022664017684304023114317780400371844220871947912782897040260462728074585480913428664586299499523071553586919798735423893155839784047392702603649826806835596023296514912281667254965854997960682848148101768865149412019614374874528702474887273695702592098473108301944246516043451675367482157854572169221566360462024635169497349475897937309995182348047668530664673552853278995662556636779493041810993539616344043293785861456008022031216571970327137139001868331694612037104001294137092155458652021665813172358479909451165031583447174699813179823894116421252828095692951826982265886418870536190359695418388383673805473338923151546576457923683882995228244812250034403374643268998338965574190510535946983361565812702875384121290701580101176046018434346090952738360245766545811998802291766064184802793896557620640378864920331066307927852586324341257917770857522154897495439159037656300176977713995351968310308530932858621504303500437595038137880529922181587937924025188986720737549037439619826739930227485951101964181244033085382745845690315823957058948679656437304004771610107745244167627906447184897625328811130914938497481364228080354191659828402636883290056455264513515851273397373474565935801965035968199162750214748456738256644888416231444027005282472612737344444217318895571271321016927997550874535087070863560083703622490710882650732075463806015982044406066318817398285138178639219841090441614809612086936484117193052728655500003222270347085303376311088680663763447560619697777457981576777960012214788021152330859552251091835048712449602818168398467310738665262942218173065113472285340657045653448945126622076034809615907818985807206922422135239498828675043249980504394787289628971031192286456378354889368514801028901269021022703511578291889906464323682156090782524204708256599537897880397249220920015557586050429939017112246004774675322798775277618196951720771294472956079531712895134366441534689445179290474744053952243048292188338017163625744028517253880592520541917191129643733845613435305463937733607252324751881999437619713549467685450249033444461561300794078543519060542896388758571099601690181234672257510970552081086534215915990283103672802190020943836898221236907223833081899577656423507414620962906236974931324482408736372895323223824963455538893087400221819731379688396867678001361741216261626593656687021566197843174217604069026336094927597633008219304608368699629438875870381821839284164012983403302246687742574175114656381976502681653836250737089805917222980174130788716600242332999536274006674042450311078257885173144354518341970428430485450631918518824351033982876956993498778398030776992377450339064807370040195651431036776855277280894856895182175927197274792160460262178538428928200610995168397994091337398573636051702051585598921716766351204998604461445719423463449367830242622376967686941042107424544506935940450577047486703939630900667103831704639043289826771221099865624262086495509959316916849759967384397193801042175236962369475689305073553710475894022074016836391526430404917845527547590254868877874003364459002814444857680637804556783965378598330368279273143185733372671537906845562906905859181253678141684356903427341710625662938187863165277066187227305216808855261113625830957761713899153255788433682455996134759445472133518866694021734147363119597858056341234522310510937892769874415466361979677354499887171785205021333665095310032800490985467697866396365239020401810387831969553420369939732645812212672620513580597051655746223736930497608667947583957044174414836746525764924420254291052948142318159887770970814671530990239163473879104639425696934885367189977136615133789237203862017595493410871644120950301712764701396901854377600335547422240262497378278281781847077933081844922177770866984190228610891940089062363250315981701188210732011923318676059074622477813660413289138454093914919427544757990564969327207623501532822191503677475127732775041544481706461742815336425253180675588964797414295534403298854705222037922534380288049493588317935502313969101827632641579245634971833760860317796965982701846100955832255774851413907727785779756988379699074284185692626434012392903354020729904711958838485489915197059934646393985350783566756788281069445783329412525316672375855949354055724131680286201776093431384541693286708143353591619533258617487210702917376223017042225532742853600237277929944615675190513871023984165333999282684274471719373164322781273102271817886898165091975334865552444572836157153738011321042786795006078003345857280231800483190661435093618879482395487160567888664659088812653527054261018472525631974411301308961745440066801366629948769230446812743977008444529555412240482101339438606713587774451528617435210945844928522673436380904772706250824197106890032449414438211465314531302307829516435492144658097990406150320585118174124066387495507144193296959174971170807053698534419498940317482427573368635108510758342478834550553155754279476449356300155091353288607695731021444912681588367354163873934988847431295327277085439407494085302440706406966924931518391713302752256876221107731589069003896155363358260116582017991868474265786792526273134025703853848726001135249497120012160871506513483326826628690635320432645767966922349052013098324311371881433776371444911883465973859473044706381868719574930408855346121587437040787208871217128210731984508573633970018414081894930693162924570197420851552543093790576387621305896119869822592385874595986580554271659724240638161364231314753583241451933404616649605724925116931643720187481655203983592728592253235989654117278468417315423117758876003294821140115643676520956946626670728413067388177076725560232342681845417059107262370790787089442916303108242403837815588555129129012560673531032465578763905045175926798867414352145851883583763102275463355861535317348157822882018137304022877042595432962422079838926615603115356082426851794295089673332665584188895659674290882785300939653058194985811320287710568338487559805899948681313905944376019509706030336759403871572990984251546925925333646270962717745032522103016378433883456132583107500784633453163625917118559696263962567842900169618563300659635463087216553678906077777154230655050678976961072891257383332711600296221359615471308579251474502975512992203380819653706433144199064141246057444754314340343416840870892175340351614457960898960970774059483809940501997057789413005735679583042187962140517509738037162609340765998046804516731467270170420977730004820878665515141999762866118989380143664709799174623858026505730542724765724253729302757758225285284647611110532476411348631116851616026852299152742601593230423548971484409491888734993752755098131373332529065210191583444396201459931020844241254725057514284388077704558410705842031382233770641184895654857197207957767205177790645224479755244941622514268297761177247307894087668596650062298563386224921131210604657534575872125994164839951682357011660924963526086453133521974740401186740619971179012112541066489417350709435371483537571939552813191571778256155082006374379356339241418083595795026831268775004297605197828430291796370139764300749261152311519594223763615061027806880908748092751841807472204212449657158839684870452963703735024603604651865206954803509973148064780001350809084014001074633253576115177822260473014592788660786064164793149232979911625089670523520604543787979782353465448832689824914324123317980565435750440436802341955958210028499373583399424693862822336959992017359734550621096708161727567841256349552428753428453004366381201134942377211729254330382839548598982859809789139710943755162074660467646102176242278333869268122815304645310664416174420447094325365216496041860045189538093765974301584872680538265682049067098904988829790876864464449979535382451887023148735968990673423205211803128611598110876369613129290552863831187765205708408230831820727302324795580189412184437051886695510088013696000604187627582440710923253392201790586455024686736904286442435984052931682146303906915717086475141113825873780936527547416992895288854911264384102318353827040982541787324096656991894667547351022785590748444349377790302919562402350525580677337792070046770507494523410321109873034242064118868273926464385785514167902648830752454569876329085095635027227492646347292105859761315885970022950157271554525663335953630006300366971017085784549072425475250203155835889291885883055761463855491481699525298203853833098297304214976898610760958305182761459493321543935856205881314157231067531837359195672103393080824546300423339533056510692692670703192017089398838936764291147056305607147040448534706294241959229822081750546608037426983749060343468240951882105773906438969963072403064412317653317337571767982847719164362931605629619580658786568825436397182922512072115405183584451130957416143813594603355838755066490560269564161631655353526354118344513066151041399523823777435474364036938060339785059879385716694814599196341625454699983883056841221296953956588365235236450925465263161506467834489999373063792013143702257197778103336617861834286685099015644111553699844438570070952265108712986521118690979808215291692702608155168427384701193089476176126817712378023624543252963567097528581950611055874250965095965303127557686689065254433387687259932104711255623915890382006748736376339250617980553840715418461166886270030523282997403017489146609382866134530636917381314367338909617980783368413294387779388825712861968202159915476192714793681018760517720932978539190350763500663306742496021330691756934266694153034842303279834026079243476367846537409459129001578021236531271613540599922564586720075037872431219047774121166596205619821340040500053034388775119126955932397798400432680496026457555423740936401016337272977791814357415190017616522685208793108917603721576586531376854970669238785203448638105516697290301856867216752737080132618102955397537328482303218198859255345937475974456883262636848508127140873430290722296840261283046581921502115581770676907325267940623028755018399889438848045239483071482581811156947372100602352542342926694160584824859378774343860181037531626804220804547037802369651597294369105713963428633880697779809352160388740901163538920757699537959952965490501348692557191322456652851694543504484559688788809464965862041764327587005612574937350067323816871042330644728286725605564356334565523553143094057623993287977305483196034710409797178113365968313924929561279129974359486517247088397716602030566816187969472830908198732061424210870458942503214179709658100951447802653530072519011639358882635457765764075470533456993528215609627826934614788247572822426433137084264414902891926332810483037866358582152329161955761938148779728067230092959365226170373082451673457997492366555011961390368327146487096763635595219712091238120149256540739059363870844481383460580715647775389623803654332875068899382456979189418770411190047170191591169991169499237000936015609479880013292874010721444415121983059979955663840162322465458579175086634694341035383786756737574758382353937090269534336654369948633679741049984480210623183056812364005291839128344242492507530175564757013859578129509272341301405527413882191378737664534976550006855116871686609310319349666068861191803096112903759509759026697430348465269765222848920283701350889108726371303746887494132835913306156684384327470891979842659855756465159680489889571486637081081578599366177512412010989863876448067463053042783546353650710420664924453056323699950783620169182998734393569461100214950420616851263531874673856393001794231583225952294079058442806821063040059680702181754147544109666635020919850621559814002260741528049054079303387109328110838435432890119676669118225077413077219499631472352999779278094092282677149071139568839034460919858215951492131844964286537454942077428810022821591003080755688560812666376215858532200776301001514866008812453659036602069899687239748424461270321718077443840538449645171334828553935584703103109625687226306878073983709652653576769355354318560471607700571362697405669321728373539006644640123445641162870532603780544268868126188349436169347209086461026980518809621404139536399528721626357157919085406283299992574350399667294760221090520572241824585318428102226997739709949013951050506963032442001496340170274545047160818686658421833747001620896711416086320723090378792955077407888151467881669396192901345941240971855672308209239108073135901561796325410094840213696649158329439284828314254188940796731058030122692584460618448252293786071681435877461155365511694664448726352831014199518281274249966402464474804222810169349428424644959549622800273966966121031331352265138078012525472429777985396785724397204311256141867543667980611883765639766339226322343446244732254934195840350567667188785639496127854494062038405908819680658363307877434290587233939628014571918068824036816263026127044807180203818708584202031461185895972307243876903034498669358259445659110653319804926122122938410112191344682752355522355723463506856658120237143387231758322942323623527191651508281875145049070234910991709646983183771683981308871966216681693252306739253764754386484605043429873990869366198922971982234463008602284127830021231986475645216803198350770128223391163735355671831120750302780710506199737907161222189058029790558372230793677300285603237117739628566947878256206670025918116973094261448300746225204108870502234540815151201298598180177669497081688639991241056408678229294106791534456380868409836065475813617563901508226670202324640305694488728188219102799235178621380783374288972551269050023117984193049997086625534963674649813094565445368861616368002108634606643239531582860064058613196753225711325617077849794926931403625163523464920214297092779356417738363871031401460419784233915635265631136387139957052307550898973025073259421795489881187288622544930680460199065138443398116134629507407316831857629208915820827309419252420543170114613565220976769777861195742264132167618770894857185928007177494568177000658721419640144966694762102220559676119772894156081808741649371753248261694533772711303902747607568833575849881056335469224953700013048102605582520566462625826540212478178180227083501087983855612319115087501114864353279609060811811109700896203916251045633799175052963428191890158216529835333572674391770389669381811889289894816353612574945468565920095745693493663853607760909898612129471195847335066299958908653754312379160092864523301190905837722860836320292001494576927021576315186641648045883048684952537799563005438424767577463290922053597659688896962131068538824506079033804249568858696842234101123858468802136773583849335366300956484032426058909344421792629501225433837600181527616037881328731420790432321216290914767336838178037125154356475816949724981414914012835195325623174199486759421743509130731397119310929994873708491437806932080942566693875217844110494285852121408657935568539610421040151981680783298629260403268299079137846671442352552367996748330317504458584490242752773970702933670280259909830219518062998933114856953006773838495272038307954207171483491757339434034040817893591702447721019330579773719398978026045678373561178744947156954518973523525115109735578439018932051995153057787614591599690726135478605138141577341996624374160767895984829771639168071779924231033419341120171612138009898236521429037488771375521429486912913670017040165094462668270101287684738925061124273058548042602706216046732995649139528869934047062692180831747678444955414122221890684325030102834152807008807231239139435802608255578515747401708714384954171593909212772610633036865532924621521178360925105933322226355794778089910386148205204959657123308635675305850674163706004689320425442923223382598870331770908258649859337587083244699500821258173300942646968780586693605379669022652809120887382820646540078816868180570873222208431114163413188770957554948096596706782211605268193030245285479966548055058471653452469888631073611814347374462628267613069496213147480815098707611896880565570562696297245449236580672920527608253341233137099602642437547424500023440832267279245018897402748609086837241600388131057871006811341993027122809472528948457764728008402880496669841433230180300149084647520130987508335566358270077004278225609101020659957061212452926097559391442207157636094214288398282564627652567112271145354843954076183069432368412174201422864942438768236876617377951809648154008202819411088003417869107621064681939682185481863008806057205463623762400825520876956714636064374301856857613561248648649271177583912750214255176931035502415106173630187965708622706482954155121672518014072555438435381733862807681445908524379707581852246468516179793207156415566332758894895773317212879453790481736085153409791413492634566398297574018479200955491489404719680112531190907183542518303323671036903161905773948032164756188130054591996035424011438310915835895955202688088011480168082031605139856534369280512179588485484353027938072237770371538682835653860788660055480615604184601076605961049457104383928056904330193992962339232645566935392592600584032775266847110018670128171882308262869379671979575533718338151324403633458492253261886689575321733769147478346012089782687856068224743729176534855214210072357770659229666357963588928506761034790296246569320060547906410172181205319142515305056647949342572148517739944452964552643384142244761620636344461881734126753480386352861238177886799704677297864198293225186249645509415519431164941045512468491077813995652317478955142149771858717788195579535908299847432709310096845040876279125378606996919205658986689857500614094975049761436791799751103850433202066900092254424670396504523516628103924030282590894922035409179648222378295371410903656724707690949532217453595469595953298927440146273105484725298001002629229344184794863198375759795096063820324706895700739386394776401651191125448178090699837880856678724993936028958180463156788223740943235901862258173100556373407390442467780525667135373687566000728027833811646490422328746718833034521810961705720713054392328116977215194189166614090699831212549468876003841560854515839407143210299985201380979246803339362263245192821659500333013041350005474096538440253161396939330231581627221402992573119895912545222151088192267704919412191462067037985632358979174067282584045657064131419218532896990684781375724809871067591305173418762549408415305916692684407118959201696131596653677749944969317189376016757366791828902639541576234588741678825857076169412608800934638825096061760029257247802883441567072466905307631914717636658836091779603953508218856538342285380888057192976439825902340433846407560874586464412874055454987579662446802144116577953044786269865000291124040232879318665242911052406616996225548686297537585557836243118745618674849062497588809947635745085495626988769847967003570402172175701005828480814650913307752899592715673174090615046084765292227272057587290763523095250253313731532214433616335099289996845229998351675228892821156761361211654773282197242132401585547810899525582074522021600100802531176499372391374007447857861031398361693545332498517386673081237901212412002145787636881989508776406980942445138788448489589524906051897716850293747341333299491113530999944390186328175179224425642585518575213139545866358152231306380956889423913156871142449568255422602591830657679168440090078076892405957445777050872137112464809993001466231736099267185057355065153671142342750774011958453702009783032231345713836865670782871188925692901711882076726669461717528529039337780752648674843982336273288121232035350155210955755498077159973947340999642759432948789931115450082403280029444594317200228630264033221606744455461697241271153178346043930947071446897897070173825007557935405566040916047090413547674517548911749636182462024463050555735563023909663964420358790569478593943934354857378388517770072098073502048927839825346055386439712590677142997444068401968998655211126703322707122619366126346723548050619666672966182577707661611649097693166401641670759076916326964699883630444520802404612462106531680210490914615530299483558989201214422582500977339737781961187383163173487548276839541531318073160738052867374008848133113141134581431866738674245572966536895714244973542022142456409065825792668160358747731906364470568233260553129265036784715919483682026885813156227079548888963318193323324546735342174063734027481538102055709111526419935176682886713985973273288145591522859530778112827545712905428706754833129822488027888820724142198021451401089972979841693311038103012506576841435226688624730941094143026536043929027060220483935585460101793931710908246898832278611967891728650012584152715592846236146201896088360694807735303172736721779631537068668288287284568283746527859851386683884769231333277217889822293258357643725495003554155335933487076938366718669760353225413973100950498860930997799603216864563038589175942868870868788331735834295721782527494302565113245963072123177017704932666655213342910652628338361356514161386744666953844955176481609592010293578225453353040886315796360494010662766737397113543117694907254026875557540939530985870914732700591016698932693311867977232605610684318888462698585444804334318651227727258444808599960372455944327382512373350917741486560447950578347031419140425610108663361217818908656028811068216266773180003987992910388625116718846224653608748560227154492967045102756087366893059209071027483842838352144253220905919158790738609023842243897637548069986756706207670551376382537669821435261828098315689934477763551361721532311946035954409512218279800232479663313289883488844513370371657225684464690834372096154808567682419015447660579223706112967359051375534869606893825366698751255494445802018933870629184873632267032596500440972979539352850560675176373589190551684066880459333893380206417181107385480662290978453559202287224758314786165178054467357406275110643221369451645957363040956982042461287610272758617155337553268860071728135633992905069008508822371412885481618684014411334989171005907465948002006650971567278727126585369620243798227599621078198980092637906894196325334598405994280044280328998719931655936365562845754148879030193913419827559516604446297227961660705239571445272564692944197481771331898637510763397655924569810301302504387318935999577784306827550649105511065986545831160391467965644129607183897993527659429043271782437358819871349401813399089665910886659187469270302975892499310061195326153402889632809695878466485529847402706658785866367976870168197187921649254990822672373402364510478464249413040411552764382310733160989543687624518689684119440982742150988993499793498750727841045750964738738859229544389751235374450196353599696657341911157085899415740169366068863927776769764294615043194707224262806807761663136223010687516081535778265605219333607273193946112216704758156179606233339965845551820413880253438350269126212520867009941045745716083904769460610665645736999579886479539300430675760123932045505520724168393170651379586908686157702615410844961015452548779707554404287194772513823524316871914057613543359913593838802134862575442697841880826084406191362742138028137903741759340325575464871308331848361169768306989492749472307996451214020086831077398729238157357221215286845535469503259203483495352267087155558205944453967503849882533299670728430046874092676590720993011506790831416710316259895997993637729495271648748169549118279648300016576739034076792570066160974234629739073024061742395817110861854536015282210835773535370252195347695245417768536025917828134369200098683296985623307245378930517814507110224759955275088333994845380405828779153316249405716155663796360552018005817239351485847159897719254955693689817707308403424371895192141985499531473177283296201180841878545009386522993166902317306403192583486680526863057329697432576180942028453630711063350098217003352361405303097179741418392811272218473468643993489337134017295569892320997759428633968762444576759113285751491459285950942789890875486989266112443875973137166412246435152683172106420059054393092185293664690812744715011176905422496361962948869546258220117369000205643331066597516704897742157396850070408062668959964634641747700440863737851872187807470608978809560102329784150192200520457476318462243450925913477106838967073569799918036664963746574695349521235380014189046829437073999698862567947094822947599125906492378369139220626713412263851191564563635841761356452175333080475389519569754704844527773221151453120380929352386968078681767092690703669259634902007476646943674998731491955026654923764827101113261023422570081758704320135204266456531967794936679695033513061292459896781575373290498243276177346060516331802802497669580010674527280642476436614108005943263463867737610261503255992884562748333476686160794442283871907092682225909773760287825314421629352524843936032701349023914874031565827752957285131149717906874501808245527366939947711710531500506304200760481172043542119302689150619832715638308166374869652754804768832793719844778363450963064084843829894483647635690237809389069061620739591845028423837391232816379622295393602812228013302132943769557836628291949150444133384509625121864748881150708540584546667773388758928423719150760391332556007963427590653985054593269860757968268547085673177285026270927663555700854096709256991781493738775930615161194295630545370489400276508130533371991606308125977498886856805510748434187593795771652656256097335897196618579618224058257703797089463401774648150581161111108242169899548497345736915224538340391200054086920582685491725390127330067426305118388231742511807322471309899687264119172057672606736489231047382807162219250882870401164558291999321265660025817802944591692847394808046521063353077903256743690029727337141788038284166482454777217744879559604135130502599924410619067517526507597861274355227666009990430836205430996041859546366045295316864121808866053272593630601673280354331275521089941356954396508786352865441533444191699705185818689493954496250682296329777979810282356151986705398820847431346786919601179456846581482958852250646332425897311073274284444537605144531563728611744654681478354520629260430834799662761170411395444120854181447241625167966434596053061191100505481351128960993367464168568992739038218497514147333419198894120916105764582418266496189424579568889576796849196988228554698020715005063084510379791029775308722150277256378344104969864077527924111409826865780021206449386033392294247630080165376149849549977302065441568841109780888141821549046870712346523588482207049029382577594010073130208690774974147599380129648036680326208461326813449048360145756176361830638463088037289557346369677518348080518049736020110890259015742251815995103513078481425713481299002248490468841876702798179487837668595723620296704424837842646597123244759188073926991197928749402540479687618808088466890542475957846937657110340274528992931360298038953794384093992721094689080120269446472819099912716333923158220903681709589457466411693859493201527458306644160842339362931573138052560796540089581443700185888045104239054054944564312115529485710477590022794804220842349257860059794663029319729110039100116147151070379916890705662192944156576141000852176923180546251403760895773705927849867398741158205004145149504848482182769646097923403034825434288958423519571723780680286803214252032695477417509973326236534727504207002158549576729347667680998993705335159520403151745377665525642197428594931599252826766173548175977627830967194847979009186118095914351869670020201744050092666272766686517368863261313856120572431780111746162912982331918431834209271222208473038837180038042572300098462242344236915266741112407259206956112780153924869792836354265940724927334892599084778593755180835083368784858074501260151104084559380809145793019085331614454635835913411944617913812578922528070424227138966159308792997584982340314039367670448156812991426311857287462485467402986848717370139867233221825143488346938207403725739498908191436436713133426669777397423697556458814119552773717745619178475786547735069382793137680980528090909053294027331751483257513335974998522872686658026700628416494561023407536216865553898817585733843543622309751562491098597425809219542697754480851657583623671294882465470198748267878666357784941760567265069577071493891445971232741547500425219001662524164635381348621759845224358913835125326664415692062859855303038713831247375823426528631743024599287819767587060022880873116795315207809870342388802634800132104188025078344432127524675679135805628106332245249415647636073008459138179842327085319044621034621809583337333250587401720086582974267675579548073861968436874912986364499063082633925928934041069851604109105423702591657639539023377574005324788739708383986745968505095193265555810494193643554806124920777140367611520183136826567649513037285092940517362836165356604910072792432555212880070471031220483345947182270599115302271817988763338162709036455394174537384255304607151773896306102383955542310063575374809770779788475897145842180703494215636603487391371441203372860681284138334507417418712129291228488304818694999777510839026237113888515496489667723482126527599490804002723573480067409391320319435081043521959149739046664170648356613105443752350608255480394287268191781575678754753519773718991388196766625065534391427898131868417773510154274028208320077405995135120300275242799019662150391353103556154164117218800704739865588951851750152146427594313197001299865240788057430578353387523567742950274720242504314379121412027054058548218430790445061740715678038850657885584180896778042260822523827489371011419050997013915017677368817530380419159319639073586635812321249635622915816638834422331590525178590036338332554191308309802724190477607325035778244083887095949354607525186228660337780176139815210218427073551618579347794207708651422360357338292510638937322956741685876172100049673532334851508266134100440589223838561506478266856284622634516502342758195886166399708744850392463851182828556737827139816762450845068585441760312690757007571576208277180488037084635455418866616367519590447690316026686201472997752174808357901263661010851830522072892811488485462208107233270184646841962434140118361388717046594073462913313727995128481374109629284564002754224557135286157798997649909146842438819069816612964671137426724118061871946015702022942440388418161859679188480994071587112998224067014931424395930527970440156715923132954930960544182755352007241957458501827040080678380825452122347959717032928170834342667803141838063327842119062965888795939376348339467034101156984203432136893059720932484717757005322819762382222547590729804576709583296065340651882804335180867844747902903985992206203573297642803065592726859822865118665069907087684850663008319313753384525286926616746665347116606792629724992272076107547921451359793479132734530096269466180807818532604917895862323766999081679264475958112162244344295337018092991049541355583967782602221444094980266347437414735610499074696781815366089101189300356201269971360532742330158040325712631384881065139998281514020202959616333410336969962414533338763809285857911732155526547647045250457269950276393711191156072006355398199862051446986711000782269032893778507657334753810118216658179157627078711691422283550104251205096549597987169833894658623707410973642885609425510253609854884156385144389847712357851309178973931464096615691672308930166449824476670706472539798071039771012420415593965571059121011221583965182523525179175311409566893712785631129047022343616230421238330781216361553413981272139164543277269980477557208737569110546723588061950209774739405996613883128057517901923477675160954771754315496874455628517630499943387688862513402272951527975206802862388133824639565629794325884600776384822502809884506067691158560345111983039604585142034939166684686504982071492911712062075396258076218298509304368526292837063353586673663293170016766652447718517127832652201140281946257363176694236888229657736753498053837129455696452285752802086759768838459608895986882820968422283552776385311433800617249437967799279271134480418089309496290819076832609402508927076526245324961303226468726513508028210629874439678470155260774283804607014426697300855153584188816797063632262859035603943102234983244813421000130755253335194920573652811096643089603858723757889032305273020067970095190920906535931954610440893634310466439999797725184023097250107738672568160371940707527954732159138215698341688006810810210798743000994571416334738825863934023616665715718540101933267083587346027925412260830479477832841233312232637478432683098238667400522096969793834500883917164832223331861088230407159346935990279331978334308398753986638940967894785147453140279560471994836921889246684422338699957808870355681139206613496187521529811052060975264525792686405338527506383937603089369481512567769797900469729585179228049619584366439957484213818249793273749769936942571263206331251307541420624005534341883631190231281706218547543682967498732963961885301925689463671273547561516527521579168368373290735891451656742637510691192516962103352163210589522417513936585139252442544160129233964545966257926839978844761531128342623281964434344054373238638930180402072744378732996911124226785602478046090208542371550618219610332702260956805084908717559804330878449259526576102605795442552999766687584868088593740184380811969812050587750463736197625959253667388702757616242549216464846779299020379225577141949327998935122840610942862331750796334354087943248867846329722252399898719630711093016697640003318525150885053517085224226500478293040453816091724169733975241040984163487912298916622239295556192343470903662755709190096673304091398502608081666947632314137830007456834131790392961259488310718706747762285589566086868129651549391049110629641438243234003519477182426535670508163242537961642957392780843179312890263542231623634281593657404406532416640508595042046729664673267244501960633114043348645189065232900565992932766802199170251459055486957811342373472417095718421138529303082668700538465875938316556278441621008805573186260101681112945298698938850210190950900229562185144391298981316974641908370296257703671115508960051291237985799221145593249322030328565161541178783369328012760979457461110077915196354459897237555065957862272901204331479862179908889880307813581621441166043504290296330731603812499000804627040255079894630405133955390700904597012975126366288146556803085263243556537591678495883354887575162204579899197907479938231969811341940661342668235494291026425967110167565494393043635059457452948469132598337395189676701602039347192876606167792383288013881974921238255530951317899766959779581010765487786063766398632130427235356675648670255499587212035782449612533363735256008684116472485748563901370177647187030269809935747483197197409175237925612729719805954928393416789499267604117426207151274693425447356809635875107717237459271614435828467923966972654729908351447002317561790889049822102096286595105760188633731105191873156770481313408775790028468340393956391848622229110682839439660360608691809550655386541274210941688351968423914123438105971103554320051373652229590453991364195546682814947810046341346598658896718270509917454467917254600486792589640917585894760953394011911115079984704138763572341684081993739033465581074439216343569878848043774187615427786839288972922543088886738880149873446718898021840272222747067793912277364555182603720027543378751047251252877091018916607606030734295101761579544289845164292589379183766030811406263955921786835141404105187841061272982270065882122069629681550715110074994940019471638620856682462048123388448538550470017666642641608064183379896244030866695959812256067697882836732912327465252343349992894060284169179554432227803421102448710396844380715020237003637967749914055407542985449424955092944795444761487104534912019024676337920710920161597679522281684172959170641026257805790127905062981364721649468166907420316235180521981203938507744183171943747815526039782922643284239700221085996271425747327535255587255009430077085081928682810066855066574369625699448603758450764147124273307151822650568778886966572448887398962637508379843262247873488417955274171573064298359054644358363182737828650665452767663174924035878235525036600833446807265217718101937770470296283640148870208239889526922866278988336740047618083220898434161290523994471398150021206168779046800325412100283639355699186938647376491377349439442178514819247258433538009201882968022221304957070867091028518380057891695255094816154792070895411931685771996289340317420022046740128136156739779648769121840244367994161320739299156217945559231506341347982359671531104599868797305048712177912940951090306993467477911277975133764964830020976428227856509286343506645929180634766984664531757853585106324981532617553178344129736617276156470509143760154263973186663387731845141497426841208870453518780228831611689528832538687441222086732043294345454274291948050019916662332870322137037804971130811904516218424735622952802141686704937257325709404596053447017306223485287287013719141244997261083173055958917573734250022131293236086401415981119364488114205770059479495147431415500927570989268381111035995469972441491754381680122915411881205861040841949458811384543450544891674878660538677482680175892673258466097875803204297633147345238730180482461029645481131623833533397423851381925007351447392572588009096679052382350366307505794342297281897416100707867026594000128837587868401074325928761255344157539365546850666598869467840420396098437669190140085416760241756426697534852932775282914410243116278004936754279440309235753326554624937504754946254497301057510135649096963123479068466685327939345100461662626385053832770351331318306479763415311359558759972811982347048291168534094456290519755831378457927751464966113369066395818360709638452099214005883443747798854132599876099243084114419957154554132387887079265063205492314841372037861167143570946921692407461315807513356134924887053414776481188518460146720548610287301413641690320146411201223021926708733490221738542943740615083714176332133173503546047250933796220583298570473615246102800842135592923655614587898426240235133615751407226663242125777272060275653364775743297578857640335503364749604955830103616761006148549990681120647083770966960280959435093750328222698300782042489036959970569105560082693947499093010062249487205037414642814306463833475810771355455182947528772641793073941545488570142069626155089793543058970239895393756062830549048975134348496478486140664119387314349010475865784579935181748110072435504645713985623046795482498533311217306501968556995163132152176605812721193042147099145289695904749032700995750600692546453492832848390613595812023874742041196555567155048677213413562154909999025572120571167095526035810408352313022859790711990294982664806067058729468268998089479484144596670836644188149079657915338324717522019175056283279939954158008615445312817439135500146798162589841487755295981754330654812427304847501070364460579335931778868137141772400498787649065918836277920283882061493063906156195879351940149019506358519025401528954509735237629916334593128829859854311540291779975406257019243270279569899834450483075767982889149152039548414088616361304074729502190574776950061313661052753438578431485437682711664001356370473152208553446342988827920992970062970698856581517487945691639364038484260017600574200337913135690983974973468492758199043506512006779305938601639075890878376346689288003695494408532660304146098582069327340359892069455971963549119605882977047093451389516187499677829577508072577023248658044972027510028855111897102430403068560048666977462935311893230932156035379526802800426234358841997499719250583277997892580970957638204977464119067969695118333395685733622100708458684247297835501734909394755702659326359966354886226869406119091678728441619105004145810725817427369260215387136261015776310942209209557988847117804907955153798365301677324489898640781585554316076776071346765018913304860331057268095610320939060908103190856533890070563629139588319442994418862723210603453453231006205673944291087734723062665271877435553060125898952948514020993255113243629810237311879858518749227805621939008148488733650448113019664356643481996521948852077069248901399058533851847048406697647080634860977318296233165555174992498665904392227369364526164128488487135038381548012118192189314498900421334587924496358835543809721901227571944327678261405794599359110572355973741957825288379636161901616171807782121762172024590045125216408523801112713645719356234927870771842726226628428398611829063669100273546367654596211203726507624633589071170429690809750901907729558218388608923617928842488155283692633981424159428318085700872258814873230097326903671935268637851218248831403179362660942912788588881314989670763363066887628405762239018187895063462931506611317851359038133947791332983786979555374895299983639055462609788003200456118494371306262068737636891674598090887130657523189605018551080183204355999309377694188812438359902284587389490884500871659069202352789775567389632141523685150714501888445244507403811725699842157107986156879593004279699562413277901712941791382861157168912536166190473497684557471116814213390833862911519105311802292655286108311289114230732175955886870532213055699739346687852931538200813016974293501707296466688651327584884009178764195681397227473230309053259900220674637250658665809088800766556159004500445717067275183485755149054628448049943173630545577784905971955003579124556612250725801394551700689066096023636482115086023061940381419505519545332802002589577042610144590230536366178459280419431259318655834507197860120633948027210680713482930761074482342259111038438622723591394927987985997066763523796759119740613218201049669701066965439435472228561499312211197017063403514671220789098989672819395443043196353767967572257965911008531867775870032930072434847172462531271208081745143496007081742699220960445622650823335257179574678507728954894238625799339505079812260584707656826697881443813062232158024279928723468489465910938134517404311829794163792107978732334062137306083355802879097817365244611394654100059873982854932754945957284766225665724435129972760294341841507153094821631551559561352296991145330102699781512819914209058552718146810059357792925750894375204972609813352837118202142719942288246543999559518825179377349732585077308210538477965349883297187392288792308700324644700694828736351883380891782855184386006459288052729903937724214736411078033428578302646918724153373510349090450550320328706111716963733764825433139211422124488740600044547400969370319359817875206634052880654615833585763889800036005003751232413984370944066626789170397835806030832283277302331620100198763932335030348598068034541353711541321705344566601816416027822113102943396229003699853457472866669203200318564393673532775747527991825750540405781444657784221126109593390579091781926435351166683386292697242926646377440007341794155887033416977827405909512881409613654055646888152800206316321877806796315928444969954268065994511993914699991687503042151273750189306598329493869850130366847673017837965111945719404565764204632333110378400787562485925229534394913203290836324444954563607121103175448664807994840645000150991292883693913560631043985849491875682641292213372839785339115452299140577003746819484588916368840784498186084103571381609516453823159638643219444579243665412043785708907627088129011122180106972368157274288784287703211593906355198910678669287286016401246153147852094193354480513475417390713342669402500422680948933387478284963360045138037999715192819430617863269087754420749969595393998331508708040112723140954381577616770911027447291568310457290488484054231187095569453211004248622257290123902931512428014026451774218267921754542674109016479872535408253966022236361901757344158615919921092598223106931494958484847604207576484802244785783958372611224714173235105474353054147631560043792442293663890061621231570169405430981533815266518562941793581317457071058372352110972735554659840141496197026531334886218832265932837900670150950683871516355630408548722092835678206914065894351205582937827320235266842376211615285012067275619387689222214933801470822503004259999394309663228546022651007393709204239230474630343692869592705690260370533413460141920670885057327552254997928038776840166908704343923768517183735803328770141898776671331993567026952190270930017991177809892169795083290377205391634427198930345972312828154059031664637227534187890895760638860778452953441555359141515384012230664867735174614886559949546691623501362297163310330246819032269721273049656252565378106437247388454179486827326855225017506863645923392173953232632124104969871404758673077080071694873001718378222173419715123989857639157300084215925749021434345758527891184738649643336611705912109329563686760880308385793884947469420169557692481784236235725431714582455865374993096033848072863909532063766024547846136518267548560803933115199777184119549583624379045799105984527468123681042412221991381716135316728755323005592731367138291351272705834526094635417948754466532047217963862678551800529008449839723459684585402825656929131562924428527027560866963371109695132246309284916202256670330606445224202902451606582984487298406855154549024555704711794063692754915328042612873507641558708014436858634768242589617876808033691206327541253809721722261819993853130423517118986216608353106991797456975834029233021469901095719415769513048467086617548645921637497319609988787235952606531204048790390091623124775502228086623849657189202966582995610158234434965582639954057463921557918005365423806756657750799191123031570415503028532559438848572574073215644535579884669431454865417164772721017068657100735184794988259615336535515420262812513249861693339087157849441608612965860301570463833356988877335427182825205765911533178576359285099820518246865283977386233527789695579562540374875471812269176831257790654718688033947378364970989790261660997040745545555115620850793974842842630277612509161124297716300180623943401104407370451337729972976286119971609990109051538172157723553087927196851302220672481561987769972905179777183762620638118469910556997019621279558614660817935123149940208614337262944358913445778769876501325133076868554504675716747306942167609597222182718555451853011112591911514351376033204474688594482181024803143342526585109446289496918233985669500773301896622106498243109309157574271228549339442242505298940469709481730582687437564665277693302946020341213073331685936102483120425488657230018177367189035987066179293859861134228197425200718048778705604141653027715648996274159594250442467378929848513479688101663953202218690240506412212390206791333831220621334856552119898879313677090373985829935299058800261992162717127010868680247417644416925000518222420152692071364260622397076546154654437557651398001229790419793619175265980496424704877244876989647726962411407338554429677486256522230734630878777833855372249325464955985071820876206835917653162720174225181621306002697101995991576935788157137046467240728855935197881363147126247999902148587221641221142924000980849565153675181670702973867968554807951001225697505271514326299749666641957767377952521467507850238912117833866565588044247380505080232596558512049702637588495591017257026619986136135700631816420631559532958500782916475697571858605704668152605407857152561598297318356102664269921862851734060787623054429117599413513789458082553296749204188002159401384133602782811932072621288793362317249307861808607430521183524271365529613459791609017795177928592285997567479259217098223962600271119496944511730181215095777018824482745988649659788956032628915111163386767533124572090437989590798777991929853581496665276779681654188510856030050988878921031772058142654596689932378249334831557661670711557274065120266377548201502043007139730684870116343489064496319531770435276132373912686744878752106041356786033786223994963268281286518924185478131072265366747036187362589578087068101881491156144969569098929134849183575051127235534368785011464487564681346446538628929384904352735986765409647888048243172291840266625448225831011797994323109198925348326941954351225867879963723968352709023281567812980613206022301103825430903702528223180379725735292758186518991627694643557670130270057650182989096138290505672970434470915826515954024977254538221879225075955473970976416288234402481287820781456013590684934196823460699266084240630914492739979928769414377762694712422090253045551605349878457339164906777003963677701924225654797837716658156223861262260084381637004109204465646112778586367092010439446854476702785313345635469301807910002093718706640866240905798413067897014052318828968078402037528760528064770718555899067436524203656391855948937017257389699238758549396881684300176334938234663901920911868064920645959874271692213282738484615978943844006887375638754349398845595873318333881886581289121442669255130220690952482968237544173751391539016669277464161987289680222308833455221932846140149731606459965224672129492774436468466992879532251529190792781121543324687032564884859661474002373946831272591047423984056927165902356010717240050320006185390339541866344749721775605644111117768989612273834682530999557202573234005978225690053879361166078736672341784987832790614641591914500514335063481566895091266703018792049360917977934018021249765814883574397031998777562053687361725819152220421189957178759047798980302201023557612757196767085119750163301362151739818508200770635137052851784605936871731779820058057867430975375427976634564694533667759260741844496510014088522909482960186926855892228386250451049843388574216005834011602670993274724375492355219366901937750522630922200014015758077638975400128604433886609924626774343946251098444083506025075695274360726418439359964792330894093755494120206542837230864725223819940832983880660638383005837456930171962453932560812592943267388134371147375364314801943245820816445142626711724388191439497229357458530856471956118939227274599008977812418632221848093388455927037311219908293082098530283487902690910972678835412600119981805799154667929349491398629738574496859199707408734817343877287079177623880054403373809327008895532283991545112547219798093157842062467541598630687948921004507480035700798964101370415188270025446061876849127529697028684128606587011549081894969558158744909582531075607418640794396374552138494594407084282795480398472377178442721553523251822286418066668971480604833562061778947899230698783128396421575353489045888440058425590129927292958591391940699737800898198338122827679419615649023386671143076417975990516209675362162699349399512952304506823857463717632612553716172417119126700015507586815211767756318369281909022845495660887200834959864440913440754629449849746901541714691164863942346759631782356539477485641387683110178944117521291021504901305556678651479685508988126598552055066539869488825260275040933336542661836081485383089932887567369839444309022994267016023546589554329241641946630698193860669641303490481924665806688134372547904992661430354566856730048425753026840634272883149595512737485070510768334061106635877359492055627241402457664845989081159179702741592276607766473063019034950506761577843912105982581395796963298097256719201537275045564128050138235566575669662559788300294847858145976497997584776645517655485335533223045727227512118138158032144959620971179535095052220613637531375346475850853928516783652757701613821950782028006690878794075473820649423534783440842355560032378405743038051670216027474624024177780233439784319789709087256738086740292243394696534701316393153200416993068858522845395494332913535616097189025332438833020393144954937043756754206055267720257653225253329387054124296354413200326810209826337406504559322903558014491068422043566243571423242037363353821065163087930290912009648710249657656222271816780898740393806036728191637771638486305825635330018326171448697528997507945791402168700838314001528216579531559062458795983915921445293530149245823729128259992591119389006172619591555129049273546868236452616530666503354227125739417267616662218442608563791325264065010828725029652447107567648445413730934718496729032380986656011451064889845086202546359310489016412107888894025112030063220577381699779137660035089242012279256063932726858287614628902841241481223860255316618807358565012269296268659520610037735379118029469592261314129279469331667145588472906681249375073795598420565822797135989628149579253264307977443125117730046918088522113692845498133631806366853537835672009684548386756478022757802885084958075475144691869344437083730124736597927600206859922498931584568515970552192391099617725605403742670808429389568124907198508662764054091410949626475760021343329176918965719170295466960032720406694886392910087295499914202532254111240150503112592765551214662443593304446771355452667585456646118765301235107780320664232450113328961321693487612969934865864537083486534724271976430632006104460246640885970352934005964475429967042797482274739169456369094649250451871819241914602447523818265519759643428968184189971477825781150605620599265493455672341045975557161173657355366583408715507769568854749888589398111677390348526481157252866042203970120855690298824293151963486347689118138703576668117172285329237414169023500453232121304235227647579096751063527528650281876168918821016850944971250442150384865723778887523984200631404012377537154651968007523449153579711538243960847335251052674901957583929600494045240145993572165934417881070971862063299175863932646402384503620201364827060525875948198523740762660456886295368203034547064237046400803524243242908573343312603192544361697752253629286061439020625532834261505791585450865403611068778008411519062792358042634757623562702488606426497396141592858694375370241820741250130262565128135055518283068190518002624562665168268251337458201164092467419011842551500970658035318527237125120150198176664252117533336916988188401769749938510437080817471057489122155016800967095761552168661483982703346882277498241933503883798519013807228025845971947013238363691088209693485044801408387886962235097901543195139398749330456985981853466095040708215798962054744320426542905810888878793905735353264259245595639005591615464110619170237133700002977555732811730873880879308587761902056176087455334259620627091760875372745287511562233663311608508054954475054734977885119024396385441766529446331193960625808695338083952677415517036300145414651001328038218724730711916073765311527079207997133532879999728412514032291980567676446304896672861180391067704348333734340030492701025586312093008408276338589449310599734670827250365933246799167903461400446825578551288507151522110334872085643207872025992890252608480414547065281982014503518267067339617026748300372732140893314656071191106936962448365379527654547760717973924605205571299994387921826993606165156640040576106131236955025133696976897869049531638715424913708984457140548939995836768504878149126204975405929003787360142998546704048437147199856724905238301452466382471069473487330586326235173107143125414392990275303013559728268218125390593255053512455550807717764601085389668875730733845992065457505768191311641042228088138901451531218235682817863501785065467755442401714947774793567330911258082900216541901970123781069722367520986681080421302606782519988682908836971772434374441353966936574746032476729295223247362017935436746368856211596568900753938353680489661268506541959408327936158120665086462743968482274935014378386804964703053171561067834587922682381277743734031159395786278618707008500968694278315747294340100293100628659526803526857898775504629276952838885498856525114663900156255616038443100311578169710891766806553245166102595541157038665455622087754482634013935577243594339417438035273873535393452763966790365426785095080871703985961823523209710921655942234966326061957342245075213952136899037900831024146703876267076357947693516572012912172142737929426283467722944496158131749777630926187204938452409457787522328407885784157320565813692484665548660247737856753110873835364415873400869048836236192063965312332376699357541650318572601396818982137176773478556931970972194904272347098138390190322388274566070027762807211958016963026796794670050162730861703605557604464922616696383796005063175827441125261807716617123218903132241063804795574781912559943807359049183008082499005168768995670183836223800203801946451607483842867408146684479721408414989120641052880114987951488285577631125662776115256544970996669484516330003130611534574451491972524512256642156948570195643040946328412312509932020069587167387672950710865816901385116108322838690947128687056678274033026640072781447140867566136621041362029280437580765699322340288754779421839025659190972409293970885154147713507778439755327000589317684707607748053808700002341316106697704492073871932251522909699423321716822007353299714522434390076750732343017724922360418628059530623659045503855114006718544427387939740559299886989312477568737086503861129491145214147376645630186248487379990997516281719298172620953190502066620553498913506454273988213101158035039965797823082316172972608843789859104373031934657733102804150711711852464095922455037445275826535202535279666854845443705151396845529080228033315122730521701695985749055291674766139774187747794324439912832385841145599320656202399754641944466008104117289802788208082298755280403529666769944515976786465846481798802832439495917465894443952531515417131468972188001777875697079764885409803326686774653685079715538250733263289335154383024802090155176865079680813003648202507312541065734195939390308138304581791294793306316254579688030369230885583697489799614773409952204920432733053551798067211889350198034068326646849380394600604215511025534607018844914094080140817082016262408484874956891268604147552790572861534485413185690024629836371959915833153590444631712108867716464256522842944146055208826935201028812784009917262597755728076239465518161085664159237661984460785339155052548144915977586719318271455528533862374165378884568913460700273749776229388907627715824146461281483051588056691632371908341288194119126608050688334243802395586849905578104612695504598472268257302528220290826828126772374619916276555671958217349245624534340123775679872293354851932376733543179022713684111785676693402414417241046076675920978812736220453939895213454816082452811864319415742192961852384271437189655346268027309016868792957053698343859167704834211758441116645387063998684820103717602835650492964304496783602630280145678247634807301560569898623908149342646785287105355990931196731838701687862806063937894668193288246494250349353262983850042824679187050944612290426701042435368572042305221106125315727587215155602028935170078146149451753331024679183412144528689463830287296009670606265674693532817184194466465416875432528855554211339724683640796382107165036705202178492848347387526546914822338602546275312765158094367990175974321761597270294149426662227995926689568512304950515895529921203365550222461106792705748664176424798775891750262305618185571068323003171346910869725667508945994465025408489991417076357486121411188112665831104674719810313630437883042398529243541055283846373034647565384111137655066985883227094640872735659442808756424972746421225069613848341006581178284823178468929153531780525343177800314955689106329033486308270677714936304233244614987471062178544154767385020314813025357152163940605533072500256477393280220030493648333088306627867875245952200918786021597530474080486335485934467333734530887338165379120546301017608777029678089456233778814495483011920519995592807657687638357275583591348847270806888235556836058523126238407907985021041239605363970929618197266898509493020423611485075642011203331405131080723457390725250683636134642721883951201501786898323429748185594008102541959476732556392721255265850328889768706060024646844297533456912380575662192326144693274156975197282279797323685945464522203031004835525611299071034492298614618124273822825584650240917151461653226713391713638264632805521290923862941925098787856339020138390864324568391822410245696770283947487800949238292011636914954691264793770128393463941355523932871945536210505282490772713624798874592975488646107396845272679876123670599622337959188628673468173066319426473157431193739675629457032689878168491128632264198179393391001681304434780218250709991099111382161552272761890824564927565638861817302067014427509026961453932299150451310975737545835213598589631707960730675914011438875664897188209299032317537622813868327926135296585675228923451750937742555898979399349598139706256427343881570153283685107732852192911796373515541393159569572705696946333899348089480784469655962642705126597816223090232051916176861843457006533575806484470568709370189845816999996901002030006281815115025256606948934830972037706980544614643059374811023434237314075707018101775387596896168115141102711862926834928255918171665387740727775310672021664074625468133076714596044308017014344745676346565964188186884289911083761156121013763857461063094709909622287357274961178456820856846085675773592450154246086451067242791431279208635030339253019615547998850640927356469354780650920817211861939332266687837756507741168183678772000673775292856494283493974864179507145684333347651266263936787613208859433995191626053643783184330420444628385743101724102292195612161931228162945594500754176968142696788327372448702382862232334080453424518879479741545547210326979238634886219914695141885663554737503029966362568574636935255791683710093664384332531569616167026529396419966592025012557647842952581035126998897216441325632113428841512952877594639384313898854346842470229549049580630493346449069884567766131148435081684263364411996564958957224222679983600259134233852775036267993564271146049449985970779420639049240134372828450192470953261846725057450384759955028424401268134523209944327604194343717391311306689645805799612378730193449225926110006240898761771686749091937101764838783364033124954698677129020831441464780978676823008832880770013801714383759814446423194293058821914645709611705858971152203867358434157993211839389921489237968414354869742085498794601800914203946365469098912011801087677632503241759586325664739400878288989991206576350473193804766178133923476914378553537966329798715190995639982498023322093531706431319988196985744921787970937831685199262833941082233670182260665127893157010258681311170849227101663811437477735745308893497975562197106945892056863703594987217382125665716196862898945265513531047685777237619302876293532917142244618162316274537831842971043330593290981910529014828933049163602813504007832192893167612004787622778091239962792053875034446577523984449929581562684245053775536063306519124782723361086969847622901517373051666169430802806239112488098752682723357264322763049356132062970578028798580908909361325048580142087177242984201480706507723351458987603284709105925128497350451677102455156437472500964614681873989779135963253509510090187739562481867023420540743255984132891184189071590274438431406187544082726102686681886266885984156300944347943605124007371103365449635617029560203035761006911766064660796014217611072068303145564210973353354840432520852882007423164183574117374888060207727667016935611479196998506650690232389596467636680211254877732445947260872027574935255644569206013663132256767470246756208421716316798251861614252464071965082091374802968781113881198982722124009752992631929892549587785183568441679593403848762902413641289494519563774402432780504315016901837992779742642215413233976687768046604419991034221473283791024267719326248189193355541839466453571343399943702866123349157570884823128820297455322806669007174561901884967539853783023608768331080825370982349786602009225516136149003504133709538700328035397827368855743077929370012988811586979767244093833315282916083138959535655910857389734654388428632698005393044353507429456386371485241773583441592926993395736922916802310416258167451213091999148971056980118277020552467221463488704434411217615445829489097656465389534668226994813183816437612264183076092024909995441867091268263622304920638935466227157648279898877125373240893278344730895642398627127002317923452603474954431043419274083649346477769619367250920232714402779855169716484312945288614298721101814767222692143305033624080331458565063553637696417262519506927697147610329478346187189577586022173121522959071403435574049366588171126375731089327967171551805383496833119523046889275653087343932411080798769598538907728193680064617206892766513206036611252769969911768839067499026639035903226702764360492074976074114204853519665701754053308367598488157255212813850397692154878460295075191777683131198734341329034230540007577781138422367354863524803579986757890314213576228427004748812525629076212022397924679398430836508750573425538284627856954026810718675844580850637093843411681038179166523160668568832287903270262813527458979428717809522541452759512832778619310528434599847621831522105733936379664501953190755892401567998854904856050273568357696751484716494666488299024083841809601882153781156149869537888494661865782901749991054446640343272888783124400882674441164326000689017361574157960343048577883364736324938399925912868136554171593770228170393493531452725995426222051711284878511119576928960804722956274916356779272100158195253991430588195707972845777735742892098033950560314971859975181034983401379578639665612283996851663871851702430081083262908647773141804397882053115122361974515800582942989745686467279673017465803045413857028080452844902745290616902704037346814139677540947019183404692899075134931748710413142613339702490862183815159973517101965100752705868693454974388331897134252335141925929082920949895010896945487724639825550517504387344239482579082462766343943412089575505630336709384409851222934605222892307427720598714236251357745315401409880283292892463021705510866541512749659083659599834115623085240616273823399585662673267456058573002664717670412854677706678073481769268819030511509801281899148420087614876992716608107020451062555050702202996214747284706129695528024634179701298503523456688230641479778124402280542002010659161115474281996740485692686079023389290410343149376108196390885896258363387336776886629268454693477406898149544697372248968584397545584149833947167617036254006078757656566322416724005051337916431972150417295492811580434016673023868960704651771404847969390055783442073979627279072111668705655663696994052191619661653905775900476119529108441980157238589570273796774842791852924196610033129374307051949128771088694472991735508455115194767372477358238208998319624696403712621399877359999971158594336150795083526116128313304771281757491645885152006477952873092520062273588308143818005064993605602740636716526643573751600937222470494007226843127692514957310416442066374974068421324828817249569722928877610037133882385426764830307078559675371477895121261211356515942788438526006460943876796936087821077532909422088343201620934969098281241610350946099851795962150908781464415752191843633575008305546094278767813872011175381762547971587075722793236108106946140940459593158502451405843071755411378784050970085106346459856570797222551461556823906895837127079741105983716912563166934154373350658989092637339941293976073744103804274790091739953703198257821716814364368608929856767694271422337439061054555096204254502772225259742872912784551978288210983399201127211208718978114589048481638962748949890951784882702699637879990541336314291216953684720038722096054011224774556730389349651238824507671070395296408561519070149978083560293243240282689728645380984790575706679305909785233348211353705990161176518915997331002003006083701228291459118955375713352805685386345553292542584863507712420782777445927306950699629375913098680771483047974700826759438103854920539352361454057737095594653750263831531664791844351465028709832844493778481174555758695947864644715128897933005066755717024155256523073348280194275788214134959703833205525254402868496881934431431850960224750763446830597548246211119358800698740473547381024866545986474379421757314811220216406864181794206732605543654333511970636382457614862829173514695954794570664541360180671524314568936222383297142675933917862261742881039169464446815095495131363975208735948909653612815033666947221434945502603496528393016465584348659794954981475610897531365168800117538304440738449915334858817680029364780615390114932899974793342199252103357916957658580995690319872802924172828277613810956367124842285326188810518260441111643287146302685266107778920300514161553997960156104137177118498802638353140974295255611513727702150270424016056976534294373442472509738085129309239675284100021272426717558675206755521548695975716478629773266297280689986267529848274711961609978049536497435803969306649212744206202352307317992329339015596813227204965545159881096378977206406109802205117287084672262297237267723489104631116781189568343393405354269405063018319252948733883727156512553373230528159936579604990511348276447987423043981079126704462010758100153184570654420966848601612623669117411973984459036662793515874449503210022649380765236316095798317027335461822573019456187954909523606281207815720043166146628780237695197948792444078081534607648595282944700139700003363476157877374866115501152428359394429277005233555598214184538530838125074717581851550664297300437512804854729455056724156518202010322367195765483118267963977393657551613225505504799227496612108953502925310627650698260029066189969869384583234022020434721290593649990445991867470516294625946307246136696011262929253230198353144528320779807493803043479736896191916862557025650367949702592204124382853924912101287752993248309220309235962607743856492136901331012150302105626963956919801689341394716448455274496212600345953759419974923698510409499817312103565928716118010073814940221008519709037934971461616985872746930661896344615578251258647572310719166790829807590838554709132263394484219166846144842893124940643518740565806566431863251435970863540843551091572386021641910379471004066554015799919942580172793903508819555705102594573468364407492278184499274905238038996346171558485506525517320463164229130373374041828000538565624039039581975003894140072452622400132305224590335158156363563283789327160265953516770648041751608102252983592713988887921538674489389458723229665105170731649508772494675748291482123250534060641708357452882816510767895120236253717165497084007368342165983528353620040740947229578749975532149522934455714809483614352751027857890768329091285069067740115634288445237464333500333022255249910444886152796260094577401385859103657198068411885037086788683838327505886147330395648300910696121823367325548788247394641250865196273088361994320831065710519785712508780880236002167668586510560793559769085011288016057964593401342780575826499278588616258749506166939082991778631383002933608882138798477402265905189854444393497310111998676325800472313524415505649478475447577172329595880679317122518424344819207128779341948816110692012279834369048465758160079184249189556240177517231069718706874900342633517790485619136437868746971244658170074941816265326793443502439415348835296789277325450931184212949328740502523393055517985395481851494139363401673186978026667597309337282149592566796885532224160361993606768092921774485730846695881908107473379501852452396690246823670646946705558839756788498143527439051397531174940722285748139608776416857632274404234202035918287633261192074080615741807471964120402099189382393772174333864932705327830749983651976429842040560937051017748785904851018586091187470626959198767285200512357718821000330927045196015617311790027384315770871828913890592565560774813003503723165234906339321330537301692526247662602939688363948673071755577139701970724811123785421709722883211184005062470220493189743958636654005886965763324985089465687275157724646170736719702031115485994490356248010079924370531329524334099961191311179750593096902814929604937681706762501077838597293618816210089700467234060000572677469750392988311311091912711190359838336703328147351753588780703604128026941651609694921124568267456877415545003344746469685738636591212201636413830840400005529896371080004789448593858971693308467362137287900976479061201349550523096529584303464854389201310144155792447775127160437568885563125408614778588849825216092323440566783584797656415113625739859316205616049552849199042136278531260612420670192481297742481568188623052426107824474651276610867893462737563150830676547014889575509528087279373031647391355584959003603024866086775299886699101064070616669883830770152927237640485828982748221908034677545968842970991374881901466407360265032867921787896073503079796093531035446715098602201456276526138631321850174683680053654491467842197220229706015313545231944736725555540186639104411373628010065988537353443291522228369462779756268452126371395396377925974612490168085032162723825884879925838821166559356572394088346783805462892428025226548944343520909638879657852850674843311110095017442161462673085995791412300852888367209768468677341530388010665702136907927849143274298696942215493781615274474354915228242709777514128580488569453322091023274333096682084684064046080642252770829672270891187842230240254092021769512218743607865472458255905816863476800683461237273171913064545290507256661466581537187586121278325559584247930425784460552869763513882637639068798803266240464590630546144917950272575456856280739852989534919976167810404306496432115842689309796593261834632220270364147209773930575783835810081296346730835068304512198187098559362451946108117935481593361461337793473246344155874886165336133561306751267385309189646790045005571709602696173264253583392700599150476412299328183281945201233383738015212144957093785255020392340175012560187178018573659077723765333115031953655411805455456922721155456727646518201158550954920119421180709745682881472382000656469898236754021488584811270064316067225807295712745832249015060535506669819105165221703284176621645830390723508253665137724229458075346156482696879012023015822821156814781575458335103361377897750077939372102940890893514120214796259321223182187158508955738016694216234487767975676480759914220330876735926429115287542088994582140858995742575461366979372348336849235008056508320199329757495256554353070883492265903315517139117684480118803787743148214156331588912986738571724033985180087947937648355370563225270798362135332260752015168526556522775363690283428766926038541750707281669717087233622199179806660209764961009768978543024481079504277397032834018242783632190681163113962441205696736109554688270293190364581099750424215288694458503965532290680291276439685898819257005135434530611676236362570957228218452350678918438240422956853889077883078402040735462917463200037699996313718982835131966334247932583600518569163422187555809948574793014886972052069040929892461735905852991696515449061982953910188661664910945655066466289094169240971810936911171715488726309648177984297328620299893990547878962580351821981879127071144438662393761905227151792262621149733845951102208258251500114943123258412313935478437439201242765547405471830817813836750811177830519697160392769634106565798552898054426193966587637626110857024153331937823898477445447296138389496446600595287502024098971437230277091367838008373442056427223324403806947479323176572647877393953572933037915180653021800957864795122130195852976226203530910601055047304689388602415555463674474439536602766990209459091855635163017651813704189228842857081492431594235175001819430446902782340401485753191914461543417589492373899677822554782680695851049097395630591334269848955871619974527430033426970608244491254850308973433357470390831846343524097385043995999711456499486215987199873273045210262210386513571527491750902107571593542338283747860119156898387230997783366316933617249682682385388347637631982016621507586802453180120179676995500658473740679258828434452891989926752440268579053685999646922325416652149494502007911058660222022668182088769836824731708649446743445096115039091959283246579019022939575722374898559071044330027547255029040899519612548650434310604981972026063638744591070079346438803998791648444146762572774023112866563368209840925200221251346142563951438445568289022947413262891462471056210695567730472941592937123726819094850600323319257068371187775974557971189084093678104758795546629379308713271606235294677285204021747676141947240939656204366429798917379014761758547156302173828750231421756817470738118116333258431831739502764262527659531832174084855555375229050708420066368248529895651196498879288288146535135157926725985280817417977850531794893780541203469769715642744418341558436175066521781394741671597087769598866277284949084053283694289349749295093964249249296253123406165010579232670207665645641530617689179153905875786676760583613122438499760087642813019332011235579602841561659569138325442886656612688617679116869436246797340047930649481363080844219176153190742650983525566844614566615926989703185238066957925898469643934261944720123808354790142000592838539036788908738709961727463539189525478303252181586194896637297563893222625840206964022219776789198317085518901360103152291348501451637158936331311781931197703829889369163066202882711784028942370555561793989803386792807126732346935240107823768108857113340835777025849074497032451836916632161274423969557664456631634503979427438663745447637668996639475205395202858428292028947482631654840233243810389094105226714830755301247528804591089466662007187387765714096225354690977096366411631581435547397306050178933849340575275198471338949744676951242355644803334058170774287190681786933146247124186143231614720823409544575730603306388148594102410984730937309489875904586542087372099372619522126438068724556132613820672758125512224195038418328645127744014332513391976668590888086659676273751379248207127553045316505479082786911916881427434638142328818266562603493893819973321558491706456724607649083274126550276923423221724201844919220673166125092200748877781591092190901389252160272444256777861904089107708203721277259115062530007086594258415553054466425656259938872053545756513032668926925054950378063512157449393749484448475009069393986413395373596448332641511494786056079126754196212146985778237463998843869776483050963027858505296024558000712225911527712883294793258997790110701923253053004860315459076918646613033185153063806173672034241375548687112314055711303748663906744643727258563343924545191456394842207044596125174881027871349928112495234911896112319750201402184630803697942622982412189529876028020416899437120394626824464477902441015647350072772452980847588806955097305018569721362797897615109684814152865815923585462158339088169280767824941116557694903534034198550996442605159787853314866984812556411792800169552749717146086765310647044078081413666158777484141692976094299700096562249168100110110767373774511928780295213011927624069205408134191153035663528358111772540566761935665492432213574507600031614205391766385130844133011665585389507251962438602720412646232712750655191602976354724769400917503485708224711735690122134233358121877722083685936010147912235962562197006021734314099551607861100734467461100620742658246818190700962566954988272907379254210041579221302222643281048794838341252326766553090470547922166950731450527210637297690591357633668509879717191248660484054990634005703604728838992264363895807247680437990710532296032348373467509870702423638551099374475681592052122970817502194799876455503433668589968923934743611246422046425026532587764637471397370275678560630488057810522726028274315524134828754829419272157721140059555369198228647025426533440025980372680671665603576628838825395541027231449802523696151964120268801813488119048791319715116136647057022701433326994221716574933878522712333539146403686647924108289010896241228510234985839579296997442179465662194250649318501767392742471418612835664089372089863806241752500988279954462097135621014142508901271998895916559010015864457934450877074032217465244814684199348640378906065763704494823366821273134985237447910101421661143281402537798682362982550993156520217777468676516269057829184863556666140433711068395429022257137472238457596839839223770100805385048803918353648328336175456122341123590253135427959651247942778749623934233858308287215724490320900608382430657620991848422796114504269059901934416739490465120909114814810196299578677026673816436101433835991832479461339608381081225916744777724730825739334723208825736570816099436549630676165717182785090363868519205324768896747716253622448157229371994743115155805360089036177064867262884741381216276333806767010335839471240208887771942299610202749275194890236665707876836431560300762411914685901285472770027681694502593650327905435234717169922069449203298772349878481335529076536706742119336810693253397591756265872047244389726200156385861770200661077157596565257216030927021082659474136434723687195386144937837959954321770685759665582946846370893491127309013883803246198451256502049849594980873135462451211889598557859589889373091109073007320863202901071823299484276930146596439723738720651064305425756291692316572588863627816702228123606786536220420854649557127220790014433998951815335980429848726819857756333330022184934376629758767780095569725586180246717656039449939981794455237041543453363396148015991422055410622603249731872587397136047150407496365914656670824996532815952113029940584300727125416065990480031917532940783151480148467920330293245536857346526182610226275968712613593702251227260620546200448011363344006945368618361400825582634866831875092101763177331694122196507430500317103064385612316089783895989645536717951791396180716481833051208306085803876285433366494207732269722043551556239280179201963022985672288311751237638484833904126228056545085854645581128732288582694310068151987848252272127450162270897868395375397856369021211053757468290072163808367840928578061148829004923184417279317837449166014289367382485937795598967345482877599992948863596145465815600236752716622526321637359060857241288539506855472137948210544322706207375253632592191521986302691880162755684453256422242004458005883368320083998116283827963992602843489237844628802991162814446052860107644682492444190784546245562677806698777783013909428746608119945427331859675218038930232566442893788529663870953377307871512671950067639517074099297570953669610450217697013025140535633919643559172894962083022190158029806033368599014356678452363588413922549343708961821704928090586225843923706778178233750237254838084995934039409316397547916288586872341122570661411932651513275787919855431685447030301303138650346838852873253462046611871179640426939956268402630465100465287609076592648333739895696900301572226736772611415761888563388035888185403024574438317411134323292362846150280902975366451675048701105122377459679689869629568336955039637563316304382366609488184799199914512676434457851045243732205370720360829053555702956779737290170036843813171805911680083301208365557212725817868166010650586659189921562549457891570508446431211169463711781892234526917430020985509429444906502396039952098268030045732795106191053470045663413973222453181233280542541172346379159453184084672772532169194950432638516551784667693993675052642723801068328623601090030818484192287248533291807254817455854776047135522526745472774407607516148720434436503811948107770391654178712081756877260982123400129070454941825635290342407759190672171599945766921531916797841143501678188016196577124554143356047292490319268942953654450045324692132935725676423627125527447362286951069496776883911305467076478978698964866704801912096777940334256937158818003532117954862745737349873384417150043719792630362186237967750356387948132568549750185029887407755489597668436847204669496538296004609623441280587146369707440630682948714155536042105694743996396312354483438469707575015216905458286407428069292360589050927120657585607165808429327636829372859609191398455981326999475794739846383648591978681763484964602537873474559490592326500551505470822211178694553560336597400973460644261799108978958736879742022477481200492208267655814051786955094402174266575106670026556425604886232676945261664471314766869672481308404799797843582633970568754857957089489949329034194663424499015457717281675244622356213697611938531816270140041971634871732394344583672594420199970699493732075136255897359271581081536994594560284697085103702871147047882007917806597872797056372850026260724868688691307462355160823076861276006213469162917072394689163992206720141013402839539179426683286402753128571786510603808131672193482857365838045666975796937494816727469796274266819193269577737923909857225151953718931223922980869578177294202121290158502833801602279513713302766921427069234683551010811884424227484915138117046870148099322265086819813693803871846911394725983131612476078335942632411056139638052282187579922895815082872963515681569933020521213628146061283002673871618124244250106360877006226339577540486689881800412964998617569546099426323086180898794010057374866208859787062132552661910169100363668410182616052608154637907543212649639633630179882160203674448359413702917164045350749279212760282728433789824207770432565863412842374307750397361327495890803230817016278116383761976271323093169823870214339826599387298729289641416819362952217217925556478220527279737227870027242034452327745026595451117205981719568474800452387127475448687989644155634071043370994920471949927813178293486806851099030064114398103618812023919422932810531632039149619215871450836949231609556737667505875444462764217790871310770116827172112349007950676648242846931787158409983036971675953427370235525653065523170596087215463042328828676170312393692394672243249762249738481057749809124473896326482153045107394791971221737098670681181840139191360083251749770545155341327260388371453178112953374297515648460379092350026410372181359566534380663925996323722026889627529193735369251280543812345111688601238578038932673083947339890657049107957979679666249288265263334764898562318738351269405226658434896839312328799133426409189449032720990345511645689264601312286322108067195824372232376853316798014035114834777304661973261621230802910949035957487019379956910052641007392202649662644329884460043375849194599470286607328787524477693801677211428337746469867503312948583220505654419898665271912266277453416313843885860020215837684000303171191474269247857518337692663805335963329146246932662276886340144310442847378993127763898257712775567685234956723552114301276229150807661102236625671353002842174332816336049956607195789947627516574920801628292597329480417976042945102178128288827781733337022722061786286128376903411449125769598499266047411305806445404512859075270133533870003430635039190418758693323235156929473222619249307905224860366635610356147620927952372063512129446910251837847224059946585680010871938341666698097436748011891358846457352381897177537146726828197973074742703609488886524024451750031024089832492141610127438282265247184387228915333345866368859271779730317391608953662801370645369436277217285399615894806946986121665661465331137934783472162518691212421630254371478643116466243196880365475629420160375451276813819573622572319932163260120269859941261634132371556461799522361925516031366668460758032176840191224975352593733013505286282303320295403148474095111575587228739813321963370681352377286704044101796394757874373971709488836712158632170650854056863376248281999400424880692764123835321013614780905643805547654984474975344218180995055713335110299422547987519665230424571193572221956514052777196591727635098858215903347944217261173768629145812216624387708236189818888621532951922788303013866743134380740669114839909930020615986068899777867870733694658444374742475695908204574516507181269262997181431158558790044683884814093836409064490327406090869618997456753058787333242335944727913865391923974795653370402733274270285396459939300912678150162319078183427769900827070969989151745670504975099336323016203156426533286212014442414246997076868715285398723866356093665171354141120699158935882791615388606712924826339989576638425126075008249887656889911178867898970476557046422937035381445090310659808193051022703223136069412098682650375699802009449358331463126708145039737601434434827762957741837953312899731495938088868920099450474071276944793852455015470833989354357009923467442048372990304036699293992603687921125325676940005826276102491801254403307620170704059021805197331423172492176805885879016974335467637120650345542271225865798839539301085128617016311770440592541406374170130197197564725950000290811507302438998595189967509737373628037993000490195349132787482994496754757909873667845601631927231545916694752695527480771469082699416042725532403613981898251384614079197943512570561925316708262529431923008289003080538363543618396363322987206635682394543989303016388863393649298176992542061494481040538129247613673774204390115471489434462176905724599736904608506808632309182104377801162450659851244561322006797579818969191440973931643256033633599693151269724018274834080186640625900130407499665939632913936361368346083591336146109991446965053773010234661073074356445852352596843079506810109517773161986032825779886200106936185508858258244378654603695446661951785554040549703390421180075028411227713539250598367205491332403140190755360675659508928570180798926956381603254356159737135479901948725713624669543795343430164452669081237567683510064855304759930209930660648420487383639133779326336968611852593690879008976606390720393035619535347248302754360104690550616305785751723033576785795019101518992035432668939637837158595968730263305758987302406549213564054672373930103264227782779985650777527877317872460664400212232503768910597800530120308166197647715247671890067253867483572433506944654948053020314580531905872304332493563084266691067486954209694594870590450210161320180228548002710121760053981827721035333857927681094862027508860067725940656155510110629568805365068723433101747270891390707056224523244524440568394398967194580920352106852361976657606823245595532420708058547084001278919802970422421753819874152509718448957231145849864069839897359132480115153700909512953690483593906689871213824505897205385111005090878310023858437841469312943536300645259130093176510997807501742110345853248917591436472172028557201101249013667170162136084575720298791271191215016965226300440929988885877493741528124966885770521929827662973151676892641425595251590045685176248304865476926680312262848334269100910930436269905386958368478614046544945135252687245101235509876303035341225079889862754848160199733138474636812159568518361232704296423736107816183960818014652269037586733075358928712146795751443577080252840465146208868027235496006657291606553092090292778587540877265515062306729016440373204482314296230447168465696974904249804621646200429883970563248909338296898222115350617469073814434305355421034562340179114593645394769235576928704849918049664959862941803110118442413187403053390825616035134991796493420278966283026766488182387433984408411680187007472274694480596338033174685897846451972269128173530558038981318205051678890730789855189766899168165042563839543852185102560898506008132331848936023852590032450940745013021264248261613574039467786209482365505354810739119864127764380901538763826707857953628862934183796856330798040103781408948929978741792591529837986069204305295421957644453340699475517459286709170325974188449937418664069770878685617701934404211753184367838679771288928830951715264703503278999155996990340454875878811623372227136575541125163719692684336564057614777494087013891921377545374662405808746209786585084506696021157644703846242923517671689150961294447463630171350137521011783515336934131651630450376889548401118674863247044921931923539951254048613882174230028828959587321982513742949713419147353405853438217269573091930460585476878702139198909402689946455824132219948080222701226501627570024222239420018240979691603437211580273924673404386888595284329594651405616107325545587979684183469155570029805547553608917660849580872464289169042681805220208349694738217218523716625604206047376988919964110678016503067017691497850785438059936601062782628084267512303610673137028340987165382962993603522670149716963968211724717402526895909510461528457011620923671282755809714831336120146599531059489852563589927927400078441258555798568465270067441225830096161378360956285099075677694575933420377222794679948328330657436019090912733851068835154309691305798972064577745188104216673741139055539140011048230195548925921253225557779863124446521071745053616689554266630133220609810111918817948425434577864922076263451410445120603576071097056702691309705244962632988845911666849924593899693159558784892753122832538392592538377803269089352036806500721472463718887091610654517017348720169005859264136183838949224271306215259672421262638964594924175095006369952166898785452371324000399007440522723955785041197834578809216534429048411501598821141555090815860035655924431135105478277132900643430378773943815863683795436604244525937277509178469503149544290763691898235207026819601829486217254414352439779520923628918842237788645439486001120563087947348480251692765850235270257095673748961565663472240652716540455601727781671939548488747878679159926413251791070313869939041858985633455626778047648708956796614132625288018790779907716354667094528189067779293187725703196330166494859016139085574267844245227391475490636100270879975942335376650386319300715310408452111944006104528013892104960766832553862391992639191301792951862954037371681631453476221681240621726830393295297724270341638110203322447679170864946246218472325925323261165201084025394876830583769763145623664033802761826750882382999368533578150941352602130617744898695231382165695370582015192470426581183253123215398033713239454377957271005602280731840062954133201406690196013690160587534576326967999598489904605058316971101635438411349497138668824100041496361101954930555660934381825467006762753850094228319099012938293956729675167677482096314003240566750638482416079844817626985131910781252718929890425976489010935524349838072624493865478131253625651377556769630918718592796870163139619291574975857076922883033979967001560201693119643296169990491323797205499141069924459497024453205703625393996675890192418800895599432566349148714635363090391695566470338362342740799769593796665694387821964201363098156275797253553648729693393207683085131407699769979766825252715551703962226196355776081115981063708185102829571142597223785848018842856588336050209674515604181937683016376949426783021287828025170750690919406500124968178030418983806527999521276411280688459105812953811707040626275036627145175379700122391305387973409134185725356137786131362264779386797896232292691142443675577183442785799481019360532514193381013987496349722528778543326308455243149024300297437588238207989569022882425438857567645126363775747105322201304734801777018246075803240345306157189544005574633196962580747195630365176040510719085188423778306321649959546053003600423219027514862638333280245261415013216636145920439267636745322647368497361247496611717708776138987338950540446530174396446832293462429379346067416948290401043467862308901033639929066244862868947041927646409652661233197200554571566479674128202250560518671155882875351413618055144292408385637588295919534690271119571173918114086860880170598564804920596466120326590935490132830308998882614704726339711768722212509199017918863755388838903304849387729689794687439351002165970472102607734362838378268803301397801914924534616763156666180433733732471796812007247022024034041289450142828468392219959405331484303974809029797604274678667165308460789139521958594587828830394043803310980278770132116507407197285022643611900354167566779280111938373560901059704624168880755000593552309485581695820048213716599456737842223257748848686409532453020056077495338954525615365708649092476603216335149068295708938619776103744379311528644108552338802505041938653575434154607013246026121123174738443011363650302841720096452629050679362150109721795107077680574073320109806448477592913517253068196943249313133363863635836729689762777393258731606083006885168076950340656624721732169210870674722847168303139435941467250895225902974460386557723662522165373729896737701292115293364321669246559364282103095164589105897315983633014159647742301180557062278264633753395478121085118538918723051745759635474220912598024797135111289690826486040001195958758951738241893154503396935117046410876722435892628644564382771830194276592166087016877291678905404445017298764694081213545570650225936855406883798953378196898088020972545162795821964191034792144194488595648467422513013017676913296005370144691638218442353523962715284232343096889114295353178067767436408123470455557236589462794803682073794126367485191449561886758952865608514117170141933233248345576490000500607047343585084749023959727856803149243717356167876859323834635924897386042496980447006931801238522215179932662771336931663573515452207832584465204613922814386258992974522185205343416775298172564717845051873256449229548360970373340343285170091152414774285117975033989018050589682973689294830040042545150353691864257696751547085057961443851281991450029180807883497595626380735227977130098768518113777322634257888934764871613064145838652222387487165618916918775095644914441567787809672919807151215944812429794927873155287252941096065979512117951665186859537696782778785220801550528230812739927949661683829430658127809794057547812953931183272758690734024793918782755958506394562640475694319715877444691297667448736265476278545139222593194339577375655238261279565696713408409040617188541599057640157980813090874631670909449543563757494858624322998676053649288685996650531541557906409076684729576423783196999920141849061974569025015512200009850864517448539012113756350012993638606734189014812603850668575827296265143669012799595442869978932576772901276727376070801705898924381744954988272707219480968762806142561930965116577288876665898195149157892577472650043703278049254218857444265394360954134977406244847394548331620887428929007495191018766091009118414963896153347891711427165735055439912641718562067597895537971730321934197297152733739975499662020744522678718795584494355514696492837464211855726343472236931666250976617692577213930278096198620225129807900373650666225843428222309273281769295466050565715860568688459806914453626046337974095721497091703154001611185304919376432649462715231051523223959042076202411007029933538175210712536493826818263218674336588397949770698138974565343538263021607799289701454169809909874698115060114063752178965508042254964672456319080189312427058686041570382002708661111119190633626752803100404345187257713359077543481394444817823142841811327220409705701647706964684137253624868914143326220970322685464473287403608610945873974422408851217962123745432722336820477049004924609409977481798647459622014716516101891046750894053145099610190729028171617928977803612000649609007201630696565688051801260058466247911784861838411829769540817810285361347165347417355226569185361172957399768175628314371111272436650933261474378941158261826044901197710871666118183459271987685980443717440174476642661187381866829621468321131040411211023100675577309392581052205443455288194080216345048532585526334491979415189959117755383606849047059328489153091645152934258846340544272839521218123639180408275590453746736406992162990902437409434213058161610267963825594220323231558646580256574159225884345490451722161351382918245212173731371058207214273852891662921425267478277656742358130475489612340076618428117472579901876773813201982266270116699425720082966139194731149951747996241173701990305657093613441587794203112477898248161770120835604157018875376822417864067136230287158432031704469972458369636234534910445931202885606643248744877208313947709478805571599636187963230007303552190961720984716839975482699738302906675814137145724734761271800794251006934409696391375389802192808684985211990183843943855780245444902539111976402350225911234936048211223183105589645659957987154097646509200577498779832700790833530687352566002087475703825698126623121781342428562102229334964265370068932357278254469809054862430356928455393512751238665360441753351397168274521389467013072492537127457137448473174762598442838800960636229519892346708046783704069239522222360713667371605159737092108250947993838844700023866658551624295579979650277526683466699335261816800855252255863519736650203626974144630668952407978363827598247649820072672009671959074521622414339295890249017806330088351144904455202425012669138304854918128738503608658887363029492082878563323915403467647177974067693062327520606647833725547115580478216665516027964091102940194509044624924481894441234915869864664067883701327946285308898693102228033385588324375204513728496753979328895451730206608135313529945546231811273506151096726294129766099625727871685232673733141227045607186509809377718151181227333225657356917801565786170302868932134918374452540134275842174135937971393871742877624997280089303423818574433762281005935275078075906753072064673617644742671187275071333338537672537201258152334817165845523075643868439782260298227314585909177709007555251160874502147370789375256772534293050101084030192344537869169744715338326748981755974558674488398323629016332127402417659934445141271263175628479427843788517763008855372444962279040144024064296328596594591331562090241007621023431373697277204420871729029330833885917998805603810100388707921582697130185779172434866150198959877318598197583943720885348067067513361403728897856430272991135626929153538159604465742920042112981877413617085529307454516132838858902947009630995439426337916430014460611286877295280352744777560637543417864058340240808492731490347057321170799884949548039367800436462448194262413875303969687767870507830012402223383707382146124004863169805021975291124437938576752176124339238942879305562610401225776670604535186669386697233511711133352898676803833214815163006064944849538494720134292803848513216728979321052890149475094359110912812123425881436490260648449126938174320350026777190292697637221643042345380552802527199266998012838850725997258542367478452874311148342683195080877640648018774044987616353756219376778036981208781496719517410342306367201145954303691717022816051493558353217620083222983205011386734275991264128845142198321878729178044903889317513271272989479711795806343751825690057932724648793461693166734314569275698296150071585728221357056553142254054325817876748819258930054861117057544799967620465738196860794895960112994049382284598934251617551344876927559360870148951763388396390557012322260104597339027997847192949973303499101826904505463439710780991467826773049480528350008913155268847922441670189575746017490947329067346401021219478569109207023681865313909307304065568609199541201191824084525514092988333216143228774881738550538482869368276768343421306728915714857267349590718550428552766187355093983806697123850195910846897850363055993758858250171338057371566678800935817127545877242938734076813979018937897438435342313196725857916602947917532341618957030445146648651092350089409266227084596908307874491580973277051336081441736208170993834126412605443088582880982614053118049780066008552213897250032449824744970789960255044505906860812276986012289688027989727680517017339411893025253009507778343236430384210527864278486089945456547353120444237078766115988674287583415333758976571084146941431339944526361661500295894380433614517224551426593157763525794625614212573527244514362758097039753692543855981448669688238581570503909180706013262145416912265857778287398409038037735856522943057704884853441907893686277676348214781640798833766127607584001759772883925300253430545417692567783525186391691340036610455108226255101331965997658696780418954517547090417408373088881338171538301976050429350751973756908554098824938852345579844340958074935608240142010774676615947866501937708866625498392250420974009655459880571636355636229322988908070360034075336964723339628539148187516883686875190943225497247026864338560130882884695928660618708724833889758680742069224076339532129761625938373865943705155531202050072512812437718045021365514154178397152379239364647062211632800443379670861694814966651679612158373037387866281166198570384613495335352933173128899204192282913057961587168685104041568343938593345733944010970427990207265662160657412665812222457381159820575160116874201584355055886054747071564365309988025427027247665389266297301059079123245259657898081809169955696704940180650564163025726369762114689635027633236965898400859905738403657612477873847507748644676382852287036747250765000146501950789813330044085362353808311585112007356393250560870627239559566046702310631193971591414102404153405525809305430041756688008593767690181307089216402168933122536241624167188248746125811445509768848445506842708864828383047248153204614150620925343465819711342194445355310854920860404319984251041963534477827970365802997760515661339229490654129996387750402828124818678765959959048785127597812667194503669783110774000302612972111744169112333274512773303227815104738578478713842413342681558554868965464185804734042298799917948982577269721736643706044469410075747693227504188950467161936553375341684400643369631708470238742774186543029435212366033985947421615085054297988173045442313047601603074723560685955750562121447069568675983677334049433940541557194090479963453709732862481066901589126173329115540245550699439372654397941281379097566647567508798485665157007557567884969698626045789177110322190282774779975502259406844229556814981960221662241597088084424218372789507173318678879828487732557759615642772592436511622607509507096353917900606854075532781507267609028477124443450423818387267535728612650903594570571878513786881126225213166391905962842074069990104452487805474672990672406505752628754878992116818381286079686607004039383155460026325309231900878281627336862724613062105749670352464418421480088338047306799080190813783859029069045504930009027933581053489078777517971204000982405011421650419805709599211647144042425789074096758617620022961266768536702024688843714491758607336783785410546208941186576971765511631007904030826150576303352431055113925340593206554293406955149117702094746726697636033777103912357917881625140412335170164528713392256315697329718326764109158677838260075164180491292987928065787043143823058973825102644983454103234841741381104295351128992390880762166640043342367594581265822541408937539576439341060076962838451364691772569004622064689923434687192536014943082863373261597184095389619679956303610980711900810601450384149883273176968008169848603764655502649170672542773289801486523576069002185044981897773227474609254525076859414947001584563864183615034961739023164691511086427061035540592638458914939612709594416012728668126329569180829402992405064226180439928818453430957435144562265308724607153557692474633170159080178325351661762063616847451919038358402967598464138799139181692971695470344860145111999583455755337508960078922891282035017434949752570516051194846648359089852621201984216263899359449041807856533063618181865280046355767611054191604413136600125464049363166114372642800885548647371400306341420791608682676512618040269575298188421128216724510127739645396108327726815181436657160176589208940749622961268622300034270641856216891311211453147585939262058938734761725281889324526210276357744120854856461657357869269099576075450379000892794192211926936117064487862542291305442848841657608439921116498816467291087174155906617640827078164794904481011255967415089206997526372955161466284276750501841971136015468131348753401561037678436795574537891829065285248091417984539773230914315629806858541973340993373871403828389293294840507906688964193151690038945416042805856887342344046798207027884447607100010097270235573632833237100452977005162125103218897546811097868083690260765654448235485742344323414769293197278743753526753393916035879562597536119730699013327798037802601862717499813536558208880640675944175129889236347601375529553651981625858992605000487474026666159176827508179537361636241907990977407946558346697720587494935506506853266346296809744203550043001919991990182820776168945938667672623782929446690969163054019721824101027832300078318469754475852435374012141359033840415451090376003477058725381729389161849872491282308013661156477338378489845935190388441243684934063167217980486749443099596357012362835086169352896430808908040544740770105457629821307945801183834579752801606378504485324186750782829231132761990067428478455658101484699043228370810039500040939479139054669714492387919319491510801368168961950557283654930471422826288309658312354138030947343741586730866248208928762661907155779048428094385928098919001676478108944570114105025336125421860074226636740404389585550211103327235467897419225225813663107374923996468393732653394750983530913802048864461122073277203384228506824386067599612163944808164768602392225133041725725048435152080014090011547862688434811050900941696331130608140402807604006621311175825493432507254624583713156980772933727542614861274563786883617769830039229233062488954982392239314708997683820487127973518946515603384419949681543972615225650002738883617114977399508844264177098530810061499622381623540662222879651135936335570213554829560695585496599839876542820965939919905439907802014783668613233968839178117208641020809948911519514638233655082436930782178638125769318127365369296458724051907718600684931169629026579174796399890296538048667436107155765145940717137558767952412404117106818025408352448344106792675381435853974521929278722491045698024136109430082751140451551099975325492070145025861216491573768446001847723262722002636637248149773863344636602859113206415843667245403589919210489622450155559191760020881363316259679984059190786746614675507979630825162810765037497232456204312957525569351599291463210262574673154580365163575625534358649491503548118262774035108652734636745300508991985059289046669894930275767073367537613790016577873187628256114851891111664640316983373075449809159800411970542839166522856504149648356385196727567282467045913044845318078986805210019950742760860693166492741089136916055709866188197894742126108173062874476778898434404105792844981550471653893432004298347549357094224642317083474502925694628891771282552406072399037108384709166624722379628343594793394330175314501894554238576992502319867689541821275531728906688175910730786366888935283266710743500265612887051702232581616385259879218394841674957657587860345486859793691958998239555673999710881220908576476340129469987786290529071787251338966303600200224349801056508712434166786619781267246139446461973191569930291572181339112021030546043519933601704586358498782418096632446262259755187833599164724096488755957386865316038674803991710331181828588651380914174000248832492605548488703701461491103947532955999430776966695832937092915317063723415657566029958122289549875128267079704436945118012592363299590544882495362525926663207853223765137259324021126562619311322220212769808646395989777550975553663389864968724077206893846872785367773698510291991274017243407250080227230114384161784823866224151018829095481207794729870051851904307604085610050743151950771784643608618221262064733515503589482907687183465744882602313622510139745550594736622120834863532134163522347732889825263707888627234896383022680497314215012208891692951051781413250990340978096588583037405860200028289651930200877265855944647798676333394315994654320974402047017215575855428140369917609491648448130559448103280512902590319696483747086253278246642131745671597033478844008504261729702099035545752804278531566910561882431022398662898979461226578260032051301102971964081759471352757936732034412776665202758177850456327713282718219748573493728323377366352811095566228484619260133963712426642722990498701825935585461346109557854529771397358563953104839300613681755559143219579265153089533840053692806895866105288949017423250930799114560437242151270361550745862507942261204960666942157531025512445879387732940572018232041189575005329570295050124243936894432885373880632888969282512039055514005500360293557289949863720471710962365780747894977816744595270312792165107452192274808712465988389888524079767195411155981987548993659331809304470866780614099794156528705067144514377641931465814798246059831713398282854654481580657072078177591936574416373103694058188809467440097078963226110285952414525772993739281163007702269097533505818530134384583249250527708856216963531760195240844278244081097815134390586001580310022107807687682929513463414334273318040734982288663834994368351127296777533015324679360785151093075865875245390157900082861388973074191414173251153030006860568016941478131577638829950314314321757853380459433536100992273892425646816453509139563911039764375292753729821922676123174250135710294558183935419895269341049037290875860444040841432199378678064855413920525373748450927700807967521549605807884568235865228513094586144667819378006066176811486019020192963859672406852079301780694561529068823801843474873001500886199215034111078474139304859733544376313129778134599744251102822950805275106008652524056027131378649776516250533432967508155935265915719751335367890078559322974378032167810737206718780648536101374588387587340248240007069447235927715992965749526149458464985185297116514675865328235476359774448756609202501500190566614650463916474935702115874972454294206737360625097898983460512846360429208630562501601063453499137197546811240263474307514200931413558431483886556573337846899823815665762191873868666098108019231735282691497684361815098429839617182840264450097048105400512022728430505269476411480532952615686711189698483316574542890522259279874338584297953837423280857638017091055226475116479789637127797806672270920133814606077564679195875141685112398329064441582733151876502791878409669613179153139870588057329250684893025814726331448516925820549081316868125200500745642933077072631442577715645991059393969836377034602521756196985369601196200222127923401809563625790417669243982201505588091260974084193631879028680760784919581947358116704284164046094408886958208330409710969088983958955767456507477539770533301275175998907506225358523625881487052437558696996355055680363531895819482026100849786006167577668678305657172568673568292815389850410687230523444170353970820169093630924348115602503579978937439374568891678336158388193585401178118513321064671288916611920189464072675708789381290672633916196529549730470211434343428314108863152587598346634860978881098008647598781332177222128679503600866509299145496289083158635700975835592964990182331074474041016358370971689737704532653415098322794172831323849592945121128901036581573316394664838592983815894458777721638813157631253466012305863103851540351009427254187962818849518430883999324254224940419445177631332043790680675758700667915908492389826809290013807343871171879047174334032340721210360771652906884200868249562824874579201256380290188343562832533082300462737090662342809709603777727760758149510718134429547036378386664200491089597640075566265312918911055519810493895095687347042029705771280237093757507256670898466205369134425727269616689682209050029695409130129064930464442437157876984337940861115582757648829945082690252321463560391216960025436116065618462801630097643644999894516819252054673878975644279743587163473026914283418030298019500002037516676650430545747504181939744307686353653247259915630124553227822682408182203450580091383435797655512985444095101543109181550983087730923385967211965305567156741714444170040375464300275878401140202405227922435072146130297976538719945235275938191445354847984020084267896685405324700524442777594984522830049810929659940477123580757320323413572948492876143600422417685919378116606783734372769092312329622247609151351396291999471394297072042342732120853626265379203341737469610794529928148288730525635429587628309267149214596414904127823639080219080468822315630406043471797034370329354871132962048721687558525277424677323608449195323083843633478817140687943920731075811767597253817385793708392339801277725628792126766565611608803346853663159437251059828261964545730256037162872927380628219818683815592745976346378307368631305759384496799886239372157953231971111175849838616328475162800360708419560092466293012231322521357206709221351682344024307156761896113584817826161756184863193473687460396075960998618824805275822036515721257816087022227207924998777835021103126364423652085271395537069737588428521847938299752970701115605739882932529005387515921241320197082414628413627765306899952209162797295889704671518764853480206170941937982145702400528491271546787097342973712468076978806366779014042406870841601513172572883836038285526338143767813558434680372177683666184216019554066665985705012780558515320438651419952108896747006982033411319829133526357949890851002096301836235735835269344005348545502231748607571893518596527574754118982727888328689726718290722623706054653999860570970097959708339588115185598331347643348433265029937360247302315724867913527891246157428107300222650099087777100645041001889559931636782235237994891165529736218958522688041189074149602857143099940851496583299198266650716596546540861969019223660021799138607361941870383770930437945713778081261971494998174349822880489172959309622913536635722688435329519579003052234676682880131524877119622131433942979600547806120597114606689826189021341378759380127301187575999643680300993608882844944257987656764210683638149240887316581720484845353976279008992443269997391821638965127889751028307174990408533825910862285663487751344882225784174652864879081812678022479677120367231530271401745822957349706832243634674499571705645438318671781268483122176750143504703448887178361209348016823942807218388506882421890675899225583929330938402209155657867803129092894395674729285064019288226290191031769471102687044103867470789570428480409736940981479760672111207980944723274400604850108335150879691529136633369402512278963391912565291851425590681903982334238332451994601475867854871043692387743535897898978041846990503168129307977484756721375987259423272615603037918954379939717200909180308071723349624266635480944293789235818632800574531012259811516131257899114587525562819395431219226515957857660804547912421504335603943937308572837263354890924531670460555777025587345474353890470422739965615927289130276208510408809481247381000755652834093421470403768442777952910363542908275869049017150178054193655769208400128621146482850766886104551301388039008365947115381262618874492365956940763366406483748348936834101103777668014387796160268140234298624913211891247404394484862626983448409717642682907358489738924474673783095798375109273993898840110489218276766387930590627474383685487897896227875074953021056399238595854813767311847485427583357297461100667006751759768165975215878558821375307193894725301875016667181906096335570987985740554905183405226404231444773037600021919912687833686749689699577465065285673668418573315982262725172795820963329589507759779876610259143815988219140900589931955706152911280034724158238193106150900130860894589057372041554701944268248961821720811574255356187232988538092836007403194738607315703699058457858481218172962938453610331465817021656218671914413047913056995961036429653806793102115830841145438599148726907757462226969426391129422012669255160566119172012760320814448296758498224739486305949371310924131673436779851429811590193630621034861493145439434953285640570605466051727798023327107110497002361648460263007833959738345275806016508173237209798345023117694643145682845778117032516238494434357493148558124291032361036199135718786041167402041500806257928107856761539679832832065320616537822936397354919166849328644886464156568238147183927404343172828532782919553862316921769870883513707855188318692815362226140360730090539331385975225641067665755180898746661475095632233194578584585896815422728709445766453330511165322227033385182602704139329147284792242863482526034266983733338002453257776395738318043455473703411328806624894795061433270556919098860868549999122243907565291228246621136976934089166302486418814619223017906764848446552127257583513557827189030948338382909841784353375055894022073903191074428443324477012585301520148189551903008121351368871353413501869623253984406819962779458432557318244962321011635506886263706442110571965835039890518445286605904511536778523017254869248262317339013070132802642155277709180367852832498638523910548665273965615243445860219873340149641584293297946065742040233357507230072388346751171065861722340538278962821466441768512416729700318332930550516037297072439172004156730806007473956492114994430970175663411712415385331114462486970297233093993868636086604979838435632982346150254058826739090643431466068383976108169954788807247269956526928878305105337228776455423307432753463583385954803905792175392082985399054188391479952723527404613379940812092510315005874190169104431798954115632807376902685129815757302740706541796016500835536716095530173363456224692550137302950331758209329936855960010319057974210258224592783054194318449063977928877090743017487235505345975874063577983949204179884530024683923659040353315102841652466556596049113008064397904818160661801731300114119241419518987097581334404594930515981033866359437849054812195008642951613596314930224528007657332944608819472222197987247614629854487750472613394330708211471398360216004852260517291183176796787764218010408060328727244818953282582221512548670505299876404892424826921320360065725299959179104706804551160116699278021715341663037027661236277439519915686867802675015751542305391462487760338492544061320934155524475498246069302022167217925908081293562915322661003471529407393607071867582818424747170592927499905305453279695515595383286192293840784254603349932462891275331259916974758928766472034271387049862404486339390451350969784117518199762278003286034576633368666366469042666607577402342263596340895766460104872018950806919580287443478688294738337819349385849268775289139047208390595484384160718499153732564669682559211848031237573331293112138874278338658370467140542542462851627121290493906005481949370447835209573134421022546922027619408938498512966230020883878954359388626445898136064150989389886715565403289268038031456307590509490641142522366911199178358683369324392877671781980766275747206195235916760778815643937105191794492184941554321721378636652139820894677890268791007413205078820003015519229584422195429034249388622011949486616210148312627176160496426094640523897055805701429535005171369865345414819682315939102131835756159318159053030256055657710755923661840747227440843752568583460237329798513027393625986392656544615081917579265201598855998806882744372140321422478240558967005373476462677667111686372684792002870535951040569437710847065637824357461850365931831435360811600431183938202190521864187754349500315710348279440937947058400686727354409747160542366217444229716160144851995019620149576915448145909718970638308629827134613484093837577368481421701174234262070906514836927733126724407497593297580993581483167800166966487512273716268840737546182288715905367459500546240457442828119018172890678782428464372958985307378610233526369264594732718368065648341404674770676341744705428078949283401153084465864371076008708013018840488847678387700844883436895303572617025231772466876336072946190413962831028187936004182429676078055671401023973030205700489986762591081585260872157903526911658061180104008888314460226118212308505573679378648920113656093420075651160096303644680851563162045369632831806095940681407908187867705780437780487327081038808019889354067214693870436609243257972572522316448705630364290125968500055710846294882517259406383014031133275641945319473868053116093360282192229035101214535422399562920740203730158561983003776170292689675459347530777526171827948869510993387447170013313442905057988317804220027731629538261990294229616643617732272545725240599580463746806676250485719226543735384559958867109820413097633344010089715339024562760464486515008447330423016689048464712876837708663377352799438178087383208731587161692322471636196579712712638757922949529182031404184515004266440603201284746263597947410042534767610858167020177030824814048111407917713473640920769654375676340770438739596305297646096419837213576789320563647302178902652506168353704243995758394029822457191437000761966940052626133686794196354238083160328720526078788135010230478481024659922550608937686955459934999924545362800275289340779642032134084838897713537088244917873226476860831644284351999541171406373771645603169277333250991182891163537691986102780164313697658184892666400608566386112240572280452550572083908262758595618318983501926982118469349815738184765558693601459578250702598618426909516042532406790955198825208407605641886931774756200329846327561180253780243757640005260331769983471562774852418528036444674409567225463196333749726442485631442011735290686647236166467373194068054398454471295746735534971799777429297077978902091897751347887522191521721374877930698242435739811357893857715186573749193711744431389134898754012014099150075572162582690963080475369742716249215949900205002713101741468075491526026290995914048795579945385533693119016657466610338565838378603892951081113656131789154740992558184746962963522060764449804526335240545073284945421738970017981327696071159189897661489434564151299434758638770976263835559857096981402919171191914720814039454908416076511789137099336292651070550461074061365403291057785263322076320599250544797870051503007128479429634842456324380920820116274995621776948530281491499569327771656407569482825308528538120553520985957271374674264956199146183054081018948088967447478090125675729938309437930163878348181614198292424847169382792998395239165827625974937006656030328414228557032293068400545562319477535786352098054952483519561756391660706195480723402427943667435666444428058912586392883253606507891566388496792804378309627763356807601444393456607257208135220648178001612638021631972617745556043278969989024471383335454939425965896561691314471177957566164315028042800677085711685600972658590205843697700619963726687974574463689869395949232803868202495550754020172693374088282027882073048221224301422048013940627623607608364087620242297150080083321005680333370142429498774556677935857064911206393142195212406527238489307575973803739010389975377902101952976819877659243696879466384703062452466415032161673734757882059991851542811851002442566011732829514806311193263461095749411524094682259232984767206636812612192889068016801489777882793962080447369786710778094916196418104517129450155343983209647651439602253408624515656836036695114258146764957408798345099296295577237503191289105827000338101912687534049541356247840651893472803678055996998768421950599916209317849489645850047369103808586984491056511826564517137982014428679514134976272576614229020940932914880285261305971616464051613616220911248233739261699200493175018467906189027504210168364046139216680858454961684792164113398254895275016475809319120445409398517627013239238673297275720881452350088234033336162772085450940554390602761274426715738912505943553528169027954406106933900895927485020575170116586059081813986699410592661795192605278563588721930288982500148277600105269285829471059046480339480382939624517159263525472664147601082047982905560429951459148047762184174019544344410074542925143197251184110007358122676135194543138863732785622021395069668024258930434571968455979942722983638116653732361298273016776518065567812582974562327001301060605317416373262927523431384867458970408477839978909917882184138551381452723114944128672551864620427093108682279143420594962459506762767051550754484521115525561088343180049563978326630988552703398336267362420494426845885176441098316421220262743411779579569755002159509367647593825625834044580913726734287431558332274168686366658779602141145239244519510890134091066657996910410473435162892748917403350791397375812574994072855824644565183721088049480314541545290202655089537784624970502465553514436940112169350563890628633355058828306177929467586567811889707699923038034504117014954285109708893062934316865648937887302679175472796781033964765402249935185602062531414104887110837556752565120288705286348319853253176304214809829853284071926286800247659879252917905683533618023985528796985544365387019376010322236401137145524175045062189395349790921937509335132820478214959327601598569358600895948556519483633308271831479607225357153269900374274155851046033546459791645010007144008009153607995156115225460103025894447039123399582616323089408819647556171434924403075197929466005636368030160580757593287798859217479841056438519049773792369172950270811072637841835665040812215446372908907033668106984674713006243650432194125265237713305801811423974559009302253115653412568632746524252019061655226015270799756780813292490877773250789159135829379948164104648958867076205273643636908623463967779460069020853935227799770042341063044885440265931018370650337016047566440920259342323176646004299525833983029518898504914515279344662181501500745891880909339021475452792600011036568767968458709583790208193813180649002422673344944795164510570828386928745930198898199515629563521205781260099250885410746814379189162478873511186932374896589210245685292181080172315116869882730946455164832089300682943995025919118498039879834572638294208514312775318169038377226150557417349225205233339086111056863015226382816362306525275472716736266772659936848490391312088718566552701301273647443149882589550768959671205312879718323044472333586349054664154575586560317200266282481656765819415961573275116782960772023427519698004237131273941045437266413813071023569275227709243246643252808303231765472296117494283365923746093309855784439578937027612213997998306137426654535897126143634410087304278612079035923074744377323616619766890010020450178518211918350377115349055362115686439835542384171929616103669914625195605928846389743378424482089573489366102621933339716286535013659407698479314313509335927620047034040177123427634476056409836500821076862457487569965737378252408190413026424112302291102102138743231829129159172303850318742145718485906836893994303802415097891426312557643174163741376826863617457548341424659379584142760008774941859178280698417195036211419485165080508324772625051974581383894950394238262884334557883595344466622165635358031522107574857662258516705179703418960448753665743586950252207022082564819290201386514843417285957748558374359693452804065493594000558111659471450433746385845969795455364297093866575952349947670173414022949282785193441145368478156310896080999868963705712862693655422217118133296701209549921589981679327004107064113442930789688335730636503228029022326945656291533276467532306933627123357780998550565959458120011574883159408676979480929428989374783257853317626471839726481189599303632203554084313267996471830961631301303069202508202191772345690401885419187689758055574186214928122281291806511905533557196513644842653772428289345864690302535824430544442166565333312659054897585795875092499400803455656761288337110674067861516191583561204899212880039784775493201819587525319272273820258681778170087261068719332590423221585248467550308257180588870386014039781651488693882636469725377030071874001853636991766141608618246467044480245169717352412650614131126149888926143402833912223970770036696342762300766432431872446054050524933658589672812708790520578978425444442423059263956973217888930992164037632940934833944907841710847846278846060126150950862097725622990883047928158904567898030455949805004098488910043419367026999868579918946880956029616186736095296280407764113642311671254930319778672195530001104225850054549300104263273966219233799023036774528407085400540746699711244540895979760458840088790412319828498205787839798273030205459584357363672597069509483652114710418632806233279565920485124804913500712353757514440151503072765540193913174250345921957150188985159752815157797983434482276843758396329634373717514795209236403215559935405071298584247822539311681475690186505533102020549204941672178622958698517311412123379047902246061682804948889993094822217048855980024314517694384887218312487517832013507020744821846831153048358193891761427734276591763549248410353903967048110518729923707639184184320653906326143165304476616063980696238285501216925521514559929569682012682261036621758246563411359449854205493531078905791015857355183553274027875583537199950915083910592825764001448666267245290567200926576881379992360949128379739132337114708093781777871557474638350743248339058466825355920537023419927955738052384181480823873136011866304748546726210973825654935776802150450094027564502499501569604132935198719289456217450525711729795818497106019767841552046358085211154037050657438277169967383034253112679116403173438170490861353727137854618878613174684732382284277861703439316214388357666767059192183062995714902338684533432581388407989987152305869799593718526889878963853677009493017500916208306044054546714018902778689091290915075019129954109711212247552631699659019706385564786461816367066698682929156721524554678328278213831511935625196509579311695531354004982735271950635354891433796795954962902626543516958264188326299259106218425768875893483402119025020790754529344118977535311239855372382143422316040546310234479103666320888281566535329864309833883733672671988302314828124377806333296180103334463393497717106923691488593891304247506465278270616567435009655658798839975447585500125355855189717425298148057910769134825362780985287277375687207433777999216009228520890097350684864430569962741009724183070439184408903116604649744208675343022056873057031502957896312945580321007536337635523216970111060942769961611155673847583330580244395248565849322199474610484283772350567877350204692915466675742606353135437316074128019670436452687178329972930155222136390890597369568925302361696095449897022819522726310268303222295905040024317199302156754523026361659144392317675143497902791102244788944155310548947603589976420278172444357195125467888381082863712192486120619900480314956509103308846330866250297490195396435894023809916164657293842386985914966626726387238448101222029358175292475553245414431173329222777960795065927030468169453394021327163976224689429364591657003421772134828653032175519442440894637627707527097896369190047852575520301264684288560914590810618738852350306657252823146364671064749603133383795208601513391519201022206744761727544271547755706494394423875413391464968257755102225666582364175362594380487328800594921724597166789143251807339430173084745443145369674509890198117113556011481691193282601438393533884327428717190405249762290340063341673483502927648470095476496455149468114520264716746042832282326777084777042982960753420908983193063202832291394023612169116356327376236596792168325710275761243470586031705367346103369861178785118178440741604597854812450120328382408478283842712447569416450985401328047269233868996297432821166931533560751596688989281494043596823869742348223008005717416663617539073720754334777014901999294504972661362208294330406683037357957073651783867030399396330582440418964895611008489950578545470672975576995947721957597456467538822429709969801702214197229944608078580253732168139480668922254122899049232232065260666320158094710780906526693976849227039099182889014227384260655910214554015241398901095647424759037700032214049810755916698348830262305176856962066063143095443832458952475762724563731691754662118951289237942270737246739997497507594806807092276913265485983704806406424301225173034980340105149862396826613300064869262301083521582169007777409444797950892703200789155092900192299901520190960301047602262674001699303237117618279861459415957240641285434432581305878942565603609630704824463571967821032397933358762616498545975863707043376068978872992057780669359734023368056257912264415915054604320706704858499791584496747446618522237131075638615226267496893248696374339281958210484977484455174509710561242990727819640239365912830776486487305337061562367801625777313557149879288242456980855177654287244686494769640756268788551413990464693661600960378484981152429735050970921615213924013420810840042077813265243993561870359358123176383654790549375832485833998572455935977794089668380527998283293410492210759294776066860547577442179081468773714389787896784751805758965355084928700955709932095095509941392603614921824589161208752456209415979518257001178675642414025468018923247879730948722807769221209080421263216328871860553665317793219763738603291878939028828238500360893961772446058933730725429113844016307413187758568319877816239749931255070787621908807519794307384310421919600597505309933280324594090375447429262333881422430320830537868749885231273732965568725211594920434574817531705863081186267234302936389713278533222409537379007477518793942467612316184143680113430912616203221482394404397043087020584308515977396880199962041300493778385511548645057530634326741480687882188395146673147958802062399580865656873514197608315885283109359653434014283500417003622238984002782113181911270142175393285181862378604574898346167052828852394863434258560811924219246876126888646185112884087571485322443283019452298286686154781182719010868966351458559215426533803340229589372115961365698484161742443547281999777241226764705781074812036255239571101006134328116511617063721940375555402289804412462212219266556869113386185730337694498828631082729282762341607554963349471937096029177543833834821935388766077139518491908026430983154452658627190154611561581637830517058712841494300100571164352512192907567600847889081539979581029138649769057879490311340928474299937105287248425744468461734629398421434945618544198198719028512271020107606823916968399163138813711680558929140568770553941358128796579594868184269123063520460925177500608459634392729751533923652425529435641269730062381221286487294590489163508293191889216952791217025175244799039092739274654952517184721272283143969436904177149775945776232719642559548565002288512649552482414491966032821715556871647316777666296818834001031187536387677589209897774259022466605977699119684392460397924357636679518278017673062658179213864979210256741814437549027641124592101503238940642014665615439485355932573433456634028764705306274822809744621070957967821510487205874670734998354882158251246396396442245202380851817837461049428200637612955572124092307173821521593659218567136764109490889585365770995692942095045147038452965444524229146826175075302862297899279451845734596312224492847808372011935438751161301575243426465512106789321096374162812466771538540835079998289837154331226440839160562716577010093522219209098969931071499902858828243942018544173728465917829520254792223067708428331219964699168756407231781083206487640579096094598374553360723848035936431263159149818168616203208880515715240691699622253646981908156294230878810559440152541184026144984331087314850196157415507909511232655611204642091322603521401806559040910427174846856485978469903721487767375046086411227249913084042268580672955500184392553538964511312919452781985479071148177816900917567696902959910636732568562276274977767249582909023939887743963037354924912272977123304447435956072732891663524247765278388268070971238482587353678076334884087575036288830956045925589267609664828354663142113199799217386512044211416328510315147572692201894960866893868564267299468639300971430142495973174659598723123867163691829416137014426587321932939866068213460147938647821348259795860225722137772099058299346029547372384711596822977163068893953927037977511200982137133410185029740594419312978065867711969147070099563112643822714129715630692258743493611768035559830458892156896975278563567825235098441767737082924240970823798143218162013675649613203299787304296097446866874568674025786861909837266917608090065194650378322018303056242303183602136249920287459225384043825609968902278981343745874720689917643698455952816838498426236125393929297135123021241640250974529531533817865506309465495159693578751037966189790365999552948896951134533210167482207861872336258846641299837190298719115614551967648587277524568272824566462858878688382261791591882222950579587788600433710748409359088745071912931627682934342270190322180946008222650772398060184689359127220177423499480211040479415772352434692825646271970595598490004103046315047378348430541921099481967856531126168907338524014386238748892707274333549494389116369660383101226038834361297886177832275450940129016445537285363349567463846964915616684891143877121957151247494386902887209017246284155497678179322059909699059435090230986756070583845311860056007801986895735324218930804125562807655166733226938009564615277024886853945365480136895616201999706226730852017578888443918265298021286598695926831795588066677212816132157687296687087707528756791766890365428144601956209529254727164010884243910590438418259335997432888458608819370496968475017561454624069496663995667216305074993063911981408856670571155937963107072119801748254080547305124294545871599455356412628992266437158471818997843768203430647714536301883589111250243442388814531265954920633853986445596306023364570846254544352500733673443484408564734116599432383186530770292898896236140408895622922423657029321684912372955984354100697547844598628544337897107206728010690861262756758607692223790432389838651556357523154975600460190598092874220047441653859086239437196981415543959000594787384272463342205565896407052329254536923911427304583110182527810612295971863900361074246822952102518774495896397078367378512066650754835838793649888071743975222003924120729975556566969751750779899471947497217539824300883442842080893570755184567688814243251089601603148701414082754322233139957480549102659729199704399361793893640198104320908880574114723803945285904824351542849476225504920139617146646596553172696517847463231020958907664022122524925399126914625069423540089366939717431058016444769952900002578347978140479970732357112921158714527030243377402997736401740535168146095156108597271159658728643917936112635573297194427802057959960197341527159384929954195440595082887112245052986507377573305523943212308630977334798659806688057845320161472720269667258553965176242190580971416544537152147849803537732661487040015231452030179367083811821796373681278463483136679391323856456143679168285535009706315579815716717542583956404041518428986500972928391300595584840302845057311058426182643093412114362131095046180705151862973190947451658391522544812909031574858068253666416904449209987096292037890733160074238922240113823373062265841909078686622272087428553226739514888037542845215510278049554026447013303665656045977496616725541557360478187956615859179429692885550102350861646941594924444917142061747689341554335628715121153762762674310256211891519531560942703359304472568729772503887439932604954099597689721975804735816029116841048847805290665429861213215686804104146084963582690420686151007214663445339111956885778863017716550114080446698868992046703214451026063212707802114807969697811675585378692245051480416675446171241030037579592677329024397731686788695535824588606158247976225541618563940284221023999719693135171167437917870908974167137262902810393553347969136136332370484673766902771688495786311136513987859878701209164398201948734155312879241672031037303679774505736935866128304183609068648547095228589254641495059583471950006837925880159856174608348275842737594186697954158975750228030037025100650460812739593590028398560657631829402950491456723185584188397490385886779221510316629228258727267198770457149902268395991071800481835305954454718398628576256222936034865930789889049384422402012245398169356290772408508108054530584443463119356464961210964627576822169948188847780808983490435630343965954441586632298290214950323539191636516674375601222061842687273258660176991931307822933728509812075576675402111078474173850456719896915741012249263720270228579917082762389515645465577896528269575721782939843838812365669686992940528097412786114564094080970878398136782735831912157264976747137942691935523278498837878793847179551264525210527363704792245707556725417717405663102539177782819609205023930711959568835333462203593496839014099017319805508274299233084839103425435286412094490820430657062783332979431206377684902216489161524528224935678852084585746116953852466730727425086202723264307161098146527538532902774339073107723030872525897148603165507800444035433773015585230774811228988954498254617315783029849516755368570614252072672755015453892799494315042328120346613876318282910144190694146731435586617881947860332801142005182034799069685012600573394495063192533658412870632131159423491297789316914046413344900435376648475222331218947733168757934736174801245168331414388866745854074846238119533151374098420977373927975407436998955831417906150686459124245132977640205535440104220336860767046168509474571231483092199344432511744684146859600515216000408122339285599062094376366356075090617448163461355058887779074106652577529676616058550621913610460480268887354021475514829282728104063919942951219732964428079202580012523987882128040789832550089009178583855085144157433867663169090504660661068546231674300507905920974473968469894804944124976178574812525678704366403488417682961216670822547340020502515637699398199927938982056972984185882122062680469048668768672990005069242490713390373178699457310918178254219624321272102544123513546791414556158605947589565801052307720581133249040380323366641105774573697227668923712088607493856257454408475756172588476265549600957508917290848805655013645520385624500713684946385988050056695604489937376790387682631229248516954517203471457806733392528569943146473514426531632012144319263850084037252443132924641055619728026572533580718232082644291611424484610061393411303910091800356573825895461898234012931866608990101099122089754394984488321816143304344433813078721659650831553641307766075701174911233583686720486534534996157558738521999053127148379280644074409089436345774919885748832233678772834836372702108072775146791220637504771122999849128015083473901327701807874138053744674057098726618251449180855470393827249817067892478239325402470349264455235733977573219067096137492136796475255112053396136162186802816171866375472082428082453427043501916613551389776784351928204557399855486486335897925100592837808050299364986299119310849051590491382712944139284141002114491537512378460824660768809859708328414811552044408575978981100818748863858652798582058934003392384304267183359417191519943731465103405888281680451532476632818140569781250026354219827059469555651867625332686417085044092734328877993389035571776677961328934073010432185490318240073339085497964688250086666644735937994540253002784339474954769984199953832134829372443633286299528630667225351674419894348321740838431602083416207416577075553400834554694403124418331071244511741932284745601420749533069240042041185821991052251377511964492336498737437485671362085169424814422257852898580932229780396746172862744182299867335603407189016367422908017365005368950404786360088232105843299949419004957172010587606495410478029296561255040535557652528583269341776328581645063191603760671339016434490450233012474286057326152834018098909353987027620628113577941736290239624582029107171533995790998530182229742558133002079778610982235673178248027753214270016133979038182597348325664691557307565540697242012812817598497959651971759857971406693791082600634138998992002829512918680706660249950851374625073035141883237712153583868874939558414758211115629812023748627030623195059024877267439590466855241413519561841856257686865654466350418929911070107485806306082580487956129985177078713338579313445785509529184399823034991986265044807844039268813797625633523369565406594302714815834990343666319910691695586655082127082539733414352334032620589264238307570876013746799595539241410659786278773541990703763075966897036256879628936249714312593996878120265665958718277155138046656938120671151505042829804612328855048036894353268435247954989797197254531002207934169572537093009592966158350275642086022972955435974448971065608481561371265882199323802628767077638121113363006198121465989814952641554107957983830596958937144330181977043549582268642728329641014818687538625849566266431797183933436006738195525513206976090632881080334125319720671979325633320949144742059833460890297576631650609330424969617197703525819682618308412259700126958980956715908965822401766135761526423432047439800908574551755428753669938076425120009750761801782949458655524669840183388846178236308477608186661744700977646922603919803505723089056338773169540547379088588001860312492495640657446043287257360594059777875045213391057837631092885181385728089830255216019784135389616423152331419684745871792896330662752037756946606041444518821110125053416750236664189267503612397913345167501859760677353998791134888828955781251471423744683167732592029290752119911305894676332715420737955298253448688809375858254198948525489373747764120873827334601615768857183896141323924366182008501003311363315700289407425331587261708283256686697893357027789927025251878355269167112309702833627712947808221354991254799111790876175435698706236761308045375641271917491113501823094595168219514880127824610782757857782479922414984097323171133906764677536950034048784837165756134210307370996247764457609624159511024888242504683317223198072713008500926827322204790380738910082414512244078437627918028764563298760158856644919640440808377229562624894572790152954155177894360002798899805821530886227221611406860482345125594441676703834427958407626630084086022398747320342950842177731090746251034153822517033273378150336337910571113460694493391052586645298595205787043440113530861022253972813018864423000123570512849892467392224522351853546066197232089039520103945881191512099447740986454869710039980819078602847119481898114450037636380222962961845920779740713236027116757868554775898695891137755865348691837084398212799111799687037283289163843705181172621171541183756542837172048646376291153812172007755623768106552949973234199384908309560711097994985943230473546469721464142834868245929358011735341384743093162191172954042396450202566058734172539213050364321582850667330417891084091117730693967583087528172028312821796553496637542628088447270781930137622946763398413619677905321277678375297772164516437703397753296690768376174979261285747409713794683681647016450631598391210914549417391119672808931915059802721342845717658969042901965851458659145480198267900669948022381995936939823774946021320034841863323559990110338775835605155382346317142349408302989429679701440498444466796184966649746496830870774677818651170221952604128821209147245274834418394363446213116248757324660153143438591417698685945633208847928082563146671242733579377198456275257250690861680774199368329405823124131177654227867410057370576784523226540439093573872103285381046963374821570294372497627404520301308464012442743670065983066399167760776928893712751059262008631508678612610538721761283659225703956824587075487365635327625004610433682058912025895568990042032703314720753374789803368826409805873064315413409975780749911089143835455818583593890977360052581390963128407606991044880548357441122390729913016181522842938324134220250676029791651999192404163213893366613916042980130569309022023433194296724252673495767432139029627650560307159059521197449453802221078718198075397521584451073857329009993328350586070314570344792380815961367469081677136041555067368052963429835356534144725793935323994619667435981030348712378976591328859423320886277301021658477300239003783918810117856774018054713882196076068923055284704288737915369375758917333969519250512289063246386987455865593639984382129958071635278266849243575520917368163848995444296524241149058068669236850834929530687986081262052575997936612199690263114278416702542414001250256894125649118226920016586105196538648281161532765563554158434374893669775672262812240161581677469144622449062675000605760107113353760787078668174942972743110948648645156551193054496365296341793016739315190628740497446657402957154739454393107923771868919694583110866992903090474139641910921342890579971151900423757305854981726650019452986347570030986879033852683545459897931183938791031806200707560515193208280095148355097792828698284709417075352046484159415767401344026514806526737272548528263837614867907194053123762374426515941006162556938826003453432155429453466558459126898524659822304364110109993214799204448975238832606672609297723893063806494165036050669292744886662741872411349443192494868104990380098213692627296970742237860999339738415501382421820051013283505803227327474528516540893464030414046467387379442816851476857336528067401220575173646041577540568970077959193412586650531236497739431849762673557403406194147106832799297233931569601520707899509919596414100083819179637615852844746917350083762118022709813852128447403016300506578888302904089167902599157035031103945659768680238399722190343729015346489178193806915183714161750613793494693497880011409621053609707250290023681078366196987701999325801936752975331637955163799909426904287055413476647451234573261383159631797573896123154436770104903824531942049224754356646807856726596655825317403523917087268578118613604537671346276809236491670957154296451934341604655670681375659312830200451820756193533826728560281547427040817730831008892546123483198418401151506515520251086667655755341239504462094767757037237266890973387214283511649751978644342129957343053199515791558000039152886724156513598882611696999705180185963526169259398732034285350287213541211862921638146609472297519299337620585553002087476362577186317302566868804133394482241512250725453828290125037547755458027678341950995999028500749728521333659892207868001652110996084729717301121351128857781086824087818110569633684005948331742616002607273980738411484628301187055694025237438523316970783461373327855833649694526880919489272538838487127632927098440586752543956613023942459499004122014380526920131689278479570007784710192664013290270506390407106338868117164686468939094669137973879343524099283346128693215022870995634473257172292405486539428605343580717892421970098320829349194632370798208706835026219154143188579435955001001420695547947674142338506898849749380561538711247711474472410724774106783773849276874850246690871141300216857180417984186179195364724949018599563213321196684332847841484268936651724558300940542562669887859345352895959423351911826325584123338099334631907230233932017020007656144661221588437655252859628002883981191701955129932357866341060382821019463576671679446291128223845468772376969539698144930044328051660047294401396593749545027785092909172554610218467326070828244672235046486420808713684788748039120719336404414487371557764459279943519416808510920300912161118491611360045154585201714354560690988187199904761202012255537682228278485272844750554595625828625730185321647655283832256855550025379610876405212194515986295187148522986484875034089523001411575404472367644246828837895393238983580722441195938747161304237301141412106039981267996423340708127800216262143789472672652832816028117933756993606254858063497706416834251511613797776772556211120103679754155052574626398121022259137111831521672425044843854854443826951998809216269996569815127644941423543941371682317719327964620676487933686715576348899539659145582989244208903807855293282282669621623017278453562336799084236765436960920564483987265319018905193748547152508922139110073122027191283446275163809542321394826634664438298846106888020776142064328984032875773718020089852602305440390876522866625398276560617162567038909726052900819888322292587089089794839681061325235841035359467798100921576721933643537703573315578272839313730045215985262946251115137950887792531418741603873481186632136538057074645976908878736168690798747686045493163767892111730462073501227491502442436563224259809500626121101181285131950855024412789020720118144862874958462880091418349915821577259240158734354792444510719622610507468466748966552642936864012660739935953285042290693516238354288324767979497110913401964443776962007546378998178689753199524186834214957910091055760794664803457540926559485001477648594015546862088568403615302932346748217809828350938077496249991203142350220045926241288549584694058653005740158309519047683076016533949056084581459295257226970819444100060284283307123696891410754806519957297883354586946665485822437312086135326486945834763731723805358027850699978156889115002229183962381735386172499686401919840891479570921388496358224107264773627815120182355944742590369507959689024806589817986505112312413217026619565904496844236436463913368508384449945390294294897004879703009567222304933667687358579919121312459345790104884009236574836234576797251344010321459753229390497453643626934101942190365785085477110282993794252205282708058696406861340455285594097164344844112867700662986842694940011046503614989026355917255125910620687982614158557595510047558721867512447497394864357149819089066942858717055844083996717299996174847567861277805273661881665792720300951950480225564579457328698807984603711407815871171012335661303315742020445687981303967529815865986932783592675813686633017800690203200807084141686430655203791417531903025478559302005563188187003026910028694655112437929771858944809596402213254759499306773625434344251621383893299468857384928072709708765205404064003816303632590397987830382770087066412942135684342548099185193819413300970567109397396981964211768057324626075799237572842797632674266143704521759000916144645542093759343513035691460929148526999081615587154964164335501820328636442366397107776738229607399911024084293841351596731319136909706237691575910988478557655972154927390015628244510084585055058123745028525459021860186917190908408626810995565209914455448937261278283605391567381229842264113879549770375459820204217517693148723648955844198227681292680713056743358286509240183501695078475227894005193742331650782775630112270129383081810813597354106123175668751057270629003367605260015861313060105609209657344405210024184495226888153717957774714160438572108390971729733420460511303641183147435457847638468549629463516578083810545059330847711913085167035030269287837036106094209963637953954243210466426402137797589471345024317975154415886960789447701171042827234929408632457101975013634107918836078814314928089933393234491989311433628593054029777072216052547348345622523759849101662282987132633579596022135684608620097532146441892077838662293794687883441473709265200398011252040033832436976557984909743031558311880753461217788055484448410266048583347734966511227042569997432222005110893546580682873006470149947359408236294988863633884097841415537343358228588679227967047561986437728826331442725852661430455656540842595007502711963381161002681535383589671327703990961010315722148355771937668774756259447810403636167462821236643863379063896594006562414383169370440902933018645071376073520133599968675892382459922360716221715809777075259744376886797395875256864013958738407674633118849811813294481883094661005065667932178961356376214731343842274054302553037698738697526269460756967207447884257743439317451176973148493432332135990522611238876233787490951683759751311379240792695856268036269729575737833458953067611853588117258110417068449015528550442251404463724903075674780815635795513023547453034897144393379841899277675983749158624194407908884914404933896837984104602688035279179510482450348477552397913908212149330138266547425167842858319478650415956366801066028659558837691274632197277971546217778797824604604260868365289728552432127739203906922030578899838412315070195307800878705656460367310321274862307199173062218040917049918681042294320543599351742152953253082060758295619594624070685609498499423675311152584596172345337623951419061852173762421978917833822728330910302974223581432738723243884800067313297807230050950659655853777698170276934839041476395862930262622096154771716179747716552801621122220316586519557014948985002538870434661142535668688332514585179793604181409781538823846049959318894114065007237317892419027437603663631397546550651931441755094147562933763020252632520017703315103659788725005186447234299362487790254502214121348102782326322785644329472704883128708838360352073552928029123893947935201852411778314374257204891145604696737369611298298477946675851249701028420396914883935545264821087949445078972384427726471633494704690883260682644946704592935021983693182745488693832736407952756119448226428926672084920123016627066189522950800899837538403463223342200195503289673447856155138336740300876496265652169783081586466299439713479580351875535711869640701705575204191164832602298596405996219209332743481129523624940611643735212286277872369398891617015203281058219467316826705769522623738711825861372164100973115177747944128686745090777083449256294607526365364048837616512584592806072714210120730300517682917410803985315947079684584237309184102213022867256002963035609778140312087924824785067029539109038562280954932157044538959464047773012481878683742090074554422113205967276942028513434965911527873531757375804374096698804664183473506127315003921685639482845061492865436077210159226082564234433099120483512458556745780697337353072848566630082084798172871624419389981215435800126497344312216052808819266118216817993429939099103876598799417647851254931436227898718776235477753911320089746123221562946066695019909394498751263964775229826604528691487632634215435068065361188118449523612529386347779525542996651232023465681572209409529565937286448025182368501213365134635268011719332237972162982717039124221423933415840027046259021488084561709738748605042920526032515595615382944444911570544075371413573502588964227437270536859059251840933201295846583991382274114463209599363058260211992811643451172795424523525756272902177265876681369787916376776392930198713530340786664291269085654528879430643958325733083834027266561684487094415095350936411716770365654890017613832158013107528362234233235271477797656691562122144541857781591660256953534048564357603290044548856770688146445962419221088079807967354484931504060081624628458246473316976583032020379404873700535884487558759298714324399065122877600738397591744309552275090649478494670069628208981565930838695405442712683617984938892712128708578964732372513727490421812655767658752073986334566066744286881825662988814469816774795242438192742717145757432766022875853870524603865525467851182495635021955924355711930680455843844411613165997541371607942140200231867491001094526874386969007843118450293953686830317165522243817289590000492351044183363158672440352683905335322200002138401662466690709383009748244892343868713073128941437430399863135637657063787591106277376707337648587671243654456762275635042944320101813276007943405919202766241176136188305228047688756427022702038373221625239011236777979308215831886280477451694373505771641663038122632250447266138931604480493224168330902174615737464111876456684169028250089502902189934749375551061708496623036848508002655983459451042170000634178156846970180395232068930959887618047536644045536842618468891527443438527712355141396134781512091291193525093364618891763337049653961449453176178595542475987150632525319090274192082918580765368455748953669780209234574873430392015063743128848712429199471119477824073944891013620018363971845248334325524783762840097743506633678568994906577842407687856420662012246971719195491910953113642696221197346663352801683501073069898750010290942748907822955197735655875840569408397335368039954337210877176172179545642139188163378479062684365847690861288933782939733907057380644961971289890065118642554351489999654329287686413464976084345309792386443290654176042009452062320003742899150831488237650988409673482136910301394463685526559579724205372739958764802248530667285507457893689079271925245852278216981690475119494143087873563500247362086788273389792565199654453202810814140640638191822847885722794451262973118401378927525239882089445721515311657531406131287485576713167718959042268359105044094291910927274013240803385522849530370072635585004305743124975897862588142763824663506165838883742951737347927802352112627169673935216318553659753649852750379270766430838156641414554202577696970986084919900403664539270931647499667340313132956815681931141593867741921097707354161823161496942184106463047528028683522444054717200578279761348476963228059563266988093385335836706368943769688284096450304256479089498539327756904409346175217625873824924424493313626770278521671977144581676864530124560751910872120153746278380149866947123979416822651135018035181541455566903924353861706118981440088534647497419159454757646130344421369487774693903233827613858909263209458661221653143118049933747814561197841008505814633067935785018744971142108547830085087870339821668795573995805206070489615031293561708525850492607906828982133168531110648948574660073172184574506982242646865254410623056258880543543903542018648293195923049828229019664691334536905072706659576322565731598620271282303744350546836019204765898160720370083159506096943891068290298274312668771379294642261147577324781522524002179083423817826919214904720080676213433582996531559623752582927531836577652859071905747049915368523433387325673047402565288080520672641158253503446413090715463038781243216400201815517737489259130600172019070372188164146471976066653219309259878897527934159499035026862336223222077921789859794223663312189932543016054989257572976568226494774197419578904369389481468655664710234406763617384603869442605789994245910129795593281349338482403162314262897019133090877741000691000809594491836864903545642118268966710068479872080988382798920585985785636579063084014425174032788442314175445942423230398781013064389511491002480259406665998768889345774204529045814650195729268492439181644489505611851976557244755831655132995700182628846863395540442532354036597317862750009800400688675261229673086884834012867472006010482890549673579743673366231745853837236495360215237918119528016014842586718260223964934574169416285188395963500295496091825430085301133637518607576929824820096007743478715571663910845585764974606964993545572101725998947424318236931063532103929789582701939923739373952566721277949073039766653039584833339795749017868817237953763425305045111160693071775913073522471713224333428529581331338368550761205096446587389227237829393685456635182926535024572894430896687002771987151944619385651998092438713740088233611986167733907648842096992046463647816099900929140251699273240967218230914293300946188880688089331226116220048381672315329375528884356171206659078230474545388887230606949574994338964335180783127220428231485776542673004575762580531636162314295391659353145277101582361513136644016395311447773152522761118900577992887834513218142996100259313508622428310429525886312808819998714419953182465239038506502025119969890830585825764362705332201105437522266746748229862802193842130535631343293799589172039174499352441322219313872133612076085205444038407385252896710776711040790631600824318960121300636864096866116651374822837172744756140984858508030648426910900816327968998054107633268713704314224849428450106617942010872992193418879109904259072655771117033463339794343128726354572127160068159070327168459864630477704262503818624800801593905678770945771957076127115021593007788523363950323419047938444370009315833129322523094283962416890023408264067536905654986338160416801048267287912102735071700600002310117090988000266109937729198794034402955890958311099474439894134914690001208301796970880292935607243661313176364018111086726239808276819298968033310734117736874414908960723351580546715689476756425695216461977267077347014085026395775665433838471287776051880253928325928571209123521003245488291994779190591699625614029493343049819636056623662748084242460732642053239101573883575056502552036904257750336432047432110631436318102029370005353435947321395673081401784247421678387438152551756355468319205460444762058107665988809520617986756824764163239712235999279302006902223967065400921857778586508043492724695216756103052565337612558757362476674396674342298289451235991758501131580218015943320421682731901611857085247677654883534416167110134501007098374986739777147583567047887497202631285198363336723987110984447255627079456656584117158168255604692648102826222765427411447061687749518398230522650428723162442485797119676582153696141624661640647444443839214863435636549044269865368782131343140589772246235130728350217945191875239940589367528225939063601973214125127749656119049957025537272760271150221944385954561987161232839692869640010031743317697892266173847745102599770458618724237437484658021348915457268764441777271473355715453793641266972654386864625312225230667994243286922657952869865350548823813970904750993443817394345723747484358830850490981987806276674102668808405529540908831034351787408564417243562843440905063362231239832919899400030372266777933627018509233057303353635025222068511172933062476378444955686686099590869192588963710431490043537788651053873319995423835273480345876351052617840106001140298531515860065585820322865050373914475121284405923561994673267740519874715749698708802847865481488539227833436153536488393625332180220326562965242291440230625441635599353902960324417110316737377957367453492110889807034772944518694173335223927858080144654662063907636472637294146833963621302608638155296185324761148660411654561581106968381430350118827642101688924208214915623359013460138365724908982725143858253880566165051049930926165418030589359914591971460724542336077985933118458431005594277933312097454687916010604444054449699925506759330813180460809906428498403590393284548512960132203278696376762144209383554123834008861099513871425903684903961281884349494894426513567360129898611905709283575426405182022373924714863227267311237802426548620324335320208347980286271930141977941968862376910481083163716867925801579522971835162327112750326490249546894616019221367033482468904573418287424857355141467944353636675674482000800991076710742988654887772560363482814445014506932744270484157114892978551274367600332247589112430548004268840790392336506589054999373442978623837789684759505386179598474008967091695699131659458786422676684229519082530182980247119148617475406805788742385676844058653618263664076480732562224208641989108147593796725314218880507263893975974680410519167139862486010844426535707755948039616628284710422659687528801745285117131381075071925260560239398977127975164489319907109860651183947609150837920843030518172055767429586194941850770138634235288416791418977184780414669599763109674963039452904910267779949187534113269669080996289052617756655757732996462712799426123044758713022086146273454523847264842519722305592941399516782753784046786601469035591887770947552853928562313542420851126035033271040341187179884662491355091102466867664969423523435568096477068660266611863057584852899430037905402258158527046388099279064185368905276895908613452262082323135578173841808619078091189426850964453172563791111761237448739495963754879129714181356522546024547634384389582906398319335029199123994003655513392943923987243185456596888701194213091117415273617564854200727773950413091398602626564285854325842736399149989555668270400776576038535024892268791500707747716236617691796310808338526210843078682629378679784693003561827555499005844454611695649340536959970344704113599904520983476382065105258617912435050813929548217290526705059917454497276223771890158341126678169280488234829943983038851004291481910736580008525843920475545176135238323699604253406453654412029437517938839879189829994003465797612516014914023973046948232229902129744760682768203211745044169130762891854736830992841859520023449231910203050747624140619284306544738420596775314707853286454899651473146822332853720632218585830804945008289776131384199273416679950628285901943523080257921028203347842985754779189433078973495170474714872815459216029869512397133866641133516379172751821280336150764396874167619665389115625231316279978402040386552962011794390801403288034888542534579098247040139574721693109883073920616242383123679511311099562058073376603611685145547738269575929939953507888874924983172724532308484380212739171848216295379520898134776102881145773008658549044857636613449575367832762689689455831003717509041445907933498402748765596288871721685986278052110385907546077726716262471543538693945826583321066857643177667457517389338089625892673517858837184157438243747952703970424379972850813277543169016244646293114596052295606623972415217517026844086839639034044780394869539717576137829989848650096595790650348065242822789293978415488559678715064228715169765960093715923036396223711476940034170622101598138739716169947356047999199083585942186629671474637898933677595739773298232442065698514879643862436626021982942899192140221610893168946225482855438107421215094552765844453590043038737923950968933192733042419214585800633456099316899531088775556950269666547289566715023546301815026664176814963558363369209850059334185788158732116824019381975879017453692166775071075958982803970836500854181720160130564148956774242353817068771627952452351243793930438595047307840943559177812855465375160584211450989075957434922006645907125519281537061699311177575824944447331514683938925942687132656687649353837318475087569690924265271908954652300957918447199253151487572436421973336670730523856021044970112522569721212098299808369209532129327273272625761448854830142854982263942424092537232667712091336530142479297804045228647164431980134786163363991440828138776989891652936462640265474654036214982614308848321851220814576235629819422458352873966403319546296144642134681331853567297311216195072194291392835183626026571362039590277537112963715672122193491614361802640907638091904202401063211932846947568582411605186138675666209042161802987249523195833474620774847292875722365908775424015002143662146120875036782227967495849505067811993695794312671604328252483627597783816109179891648606184884956062699814308601178837057346508109610536492969898062293254798068236125755051816426490297333147951879188294764195339255934618175804524604311336410569199100171311871502787390744410872421370216759475503952941333917082322320343198545231843701517323070392449030773197423240534124042716548376809295855790157458149915185188668209329621244998147868362698888701996499860584559245746979715257359394425837173953521339772366215818765654981144440330460013131980066863696285886393709457321315527243492711260647766728716417558184027193078023859614239182860288659631994836369345244526024848974645063931045069513973071647779640200123255920310609168198421083323605095188543502728650816825847787182685991995002760654867561661817429615354700411447036760000680963467538662557658150875284399419488826497096315511347949101149703656224107744508849526252851798828336603806459977007541410101597486094108543280832180777668232702643151472871977535849919861103481911447399234135812991660578586762999070962681322293187072349665512748037666904318585033261497598848618454544243966217818213479722228784663925402235668321016513812308696859069349067150373879142496191661287219565787182197209956683859881888568677690603410580958740959104864931669874366826001872593395744497715908029825915429642937511408573522137277418678333590395942008579025085547980593929226408184246568691988273057529320465950717322520605286078683861269062942018935995849929266930680303650045214356915472493642476567033430187122416040363112565143978839435499507756900357494477793853419334556009400418727531402777250133940021546067866638229427900449945182511821886197311154893401495570510773681764515799519591080938874077855677675988223299456550816970191411259542978278464441141754763747100372728331990763383253892139927752721529676366287272543135870909264845218543616098294228597256138911906320563745663593260663775560879378660659949835391547701257496771518990036479214823697044778381691328986952156971958425505378914252075172901464113578361981903101112180595027862606044951040422469556651917266588729239010823871767612732188977870694681350205619046038312319421662496732066667531263703363125459920174712091813324964414481570991923072714166210144432585207049687504958636720183899479741994602714434823245277105297707315850207707840491234166904400140075432181860392958276828835131110700327237866382277550925188763538252756348761207291926644938443734659679298827894328754592467664698218704189133526531300545715902569789047233137637484491452152420071340113955481188848303845844756038448112143418274089998898954727534336528587789191122323714492238365454685138512762994505697831737615939708782596473209665518672125751447199286849626273713371866833860921772959337149277170970630170189380499070127084849885929057260851598306924157156671043230058630523281300457033014594145938668812082330401376516942032211175553364469722322954620458609080190535023154212897826617060062556582727110366720978799945465230077805737932477613404080023808638080929925281289146686710829202909396010286536526099680276611554779899414141891414071157313840840460355074849132778374754987307475203077281864352253857512541073587601077482038080879590748773925811806029063286970675088224141935496753035978168751335204256926544437239427149404498178352233421430086516177442858195081262065206900450738403982763549783372057373177789325664262911789466089064341188815293147809321117956445798439479216748866885916022580563126061098618929838056020306920106874764414765197331078782943428510425363133111016831943055777326221720354670388368605365149363582550117823628045049548624624847611904556470383177212025332573196942686483679477222023330006555318330454046670301250049560870809645339113734973063941261626446865086644367158684286730326670271119024057333374438882248179786911279210446606741375968661717443057787205415761281942837631981852193561782236485025669742461040164461663063538150867888395859985420379645964517860597125928920419369878599024401302840092902460109213961030225656394741919112784473723047855114790517551308567396550761279423105769356589741678116158252887063872105679288516562180959052961796733692235870139436721643257055671608514761775595305384965663261359074447706974231923751773722786719664675707992364260711070172161871244283023374249209241237362395175817578576730471050325621225154170190629190528943191570167092455527308176445796720527455887701148978383659629587465415646024552267975793145722596414063599890177720565907566483920554048071133438845009960143226714204405614620023722382881145771860785042639838096318175848270642112138280428315994734208768065318915089676619634733764146676690710589409240579543269804857654614777160099936586349250314809539872065090697904675551635988449261434449150010017272402583103900222256908465838552782737873863636069289506384358873032878732540360195947080033727771825569849188723538390431677575547176518347681334591956382968621002650631881851145592677178279549224395583714213043325250886790954047303047419678224124826777726139781883182232368627298682210144139176388397078012412364834177307147403562984157085676661693387523805472525825306589652687525898333410823725565275887038995902157553691145970902556725124910352174580158419908311195963254160799165111269932241320022110439753218460380129776883759605027184813122637201312434669440967835910592263866430385226925552464767248332671371958726417433317473235945268727260529768796993270670475290519227972730581118558356219026648026767956414366076309024664985946647135726650058653762002625816116616337688927806835653495760957037117763900879438671859356205372287769906483701358673902377752734026031939572311896172914087570174642265936952506120626246211526286416876392253296943609238194768580414568272065093732087005480629228081506587877769127483348772798183347382968508612643151471643726268733098345324436685904597453993182373848136595681006956594361125483216899931405531138861615688028230078701352708216798717090098410408734209275409585162180510821339242146692978242669725729895083346859092761949283762342158527186735781006260088991994242485644844928372198688298737647902010418190050731867036968180269217003445492899055270513748313388060873945658783433771728765628551917466438084564290245511521303809519420159799374765411154452207490954379961257530625288519646790549778201993255171453185570932537430018503241718870617473935920718653092176169006207868645029590608032114760298605113387796970031085486191012846891055146449976300892862779387275757869067273336108267923440614864429286020497679286218373225471159730058400347332263702106518298462468629141884639353534087104329134496802055882480404396151102056190191673009667317415284418669334355199199194465806904150561041638972593624477346624565579738777025912758392296507639884818792970637052831830889835939737086048448408253943442496662042801009354730872230385657304037492886655817622292811519797629679977326575334617897373348164629994213111805406594821504313872469178374911330392901719336258886696738213390474710918658864252212425252477834260686554136064452791159209320716149786777808763977949332654973563970798360245516176423861759674115950098941271580288971124799675152995635129894535307544871899605412207640964849952815882847531706598373101984273399493976959905759844872239423088385617507753060702382066644917344699153455535128860883568736599743885159317653705769447124329097185691682975116110993745365750128419119430896000439665934841044933637021768181606894330449081644468733459579537753439954253364682514920108694116929959021733456438351651368806025263877613658425810236367432983486557834074701702090152938247304696951098507758688980781951377833226316409222272328262198848723314925605803270574596450043106922277713480529471768141143346349187111552086914867199527322891288598280562295874926975843189580136690682236077860416302519036646592830690533618302773756929131695884200685744840978154360875834094944035815940152824836208218617677234494010556398445921391966030631171940453297875267116357041221168150669014380314895973861368154759863110485946403793297960744955210076481569465502259138596238152205072772719680094845611980492807661372824940131923410784622414257629053220588735728709397457155372001288013129898659730682471897341798128979812195565850887899259286227172429473011537257102361853071804978258232403350593325339449372517751390599321110590081520394263889920062474971874014704850648955947365099626791620633692812831895948577526584092239744819702940051551739263201568514750595140289307235295864962282894773256841108872226315511065394254034289010378337147191032530938780238963507151567783161829556359949978145435807820545121865919412614326809703620891597573125334450698079289001641656730608058299280175313028990157429958944710259446631540807318369539658199224807105328620930814857221680118954926363389091258765044501397900887744189532902428040842267246087610313154769239767756144804325378502348270827281049110844967657251228480207438328371837717332836740969146738766784651317218945934613913004520253002364247152883736782390831306820836629739078296525186316768136524738271623554073522938740886780465150538005573924952576533674239871616268040408529870808007987013167537965289252880282827208484722726057742851820994911766840963827500700620188442233505033886708257241492030180657062020490774014403204490880041752599525067100145496043783754385560393862743850547614365019862440571439902926660569949255391029121234294098611404218606168273492334163062241947472596763246644948312707950996133035445350001759276515059518526026204788937183328217694567447859337819675950727233360137005306439923705683538362666613216566064532022393497691739053504124592603429151315836761795753505668178257882780491670873273770894978338274461108980583691458198864301152881416548233848997612186367829883702711671614647723519863298983461465528588579443093817306442588530227064822103009903563036031226197353794258201110286619482595749962483672618801446488070512367590791864855730079760625962615522507261767400612431447562151395648718522133677299055645342017451509136642530393133300006590463942123283254574954943370585160036622831104343244768480655603719499227298447899564001346432339714365600703375379724862406521155872749335237566818224807579608761673237104969903285848071623804335290362908389245020829992702308169468361594428026680655044064951078973895938766383435639532257071361010464126948899770146673805519280867164310326910670995588841248197496709957788261522092649112457486047630055824536311991000785097019578001876680816900825761254150286631368845513532407103857978326298206623950398752601796718129607282874128489008119629185490687049372493131170479506349615566284583889179244880937443077796498549238372558217642911972884950867701181459889092026136514633396361250733500964894621115191110548462890499929339017663904590811425674459229315359917948342812680309394997299771117880675981066543108116373933581164096726208274341574335347453199718082035840006459912718637022142522213277509883447616676094053515946856518141782582062219277920679561002686405691875798481665328498104581398003220270700237433913629699274192089918847157618742872664567428191152333322929002549981339843873043914000890166054281874207994302079492147288048658197766678361849687809162731134270747640239012073873601266803495722501634340873286480284720700451563264300585556244439756610741090869346090156379384913754333698646080047252580301380286375869938813270767298097217236289919454174479002812588082060995654669524334963915209433632974388367639686282077386474860565541064141679260960004363389621891550224781734223277928924297297197323805442354012106000084661772971774360409762871454691569458063376502542443928263962195318664191927238843378833081481132623039442278242326384779060924489460458379129524254614585269063606029343040143497388283484077200186221854369154157576149759238048332965225245780592401319165996277340354172818032227502105047625393445123246261123245834160887174263530219572821340184043161047932835011513150592474398187251358966288737583105141397888290517802531946153237619533277080086396119150423231114271717958788225087670098397130413680158881889995129715248140798695594013334282028619688048979772134540462886939762563281882505244980466058418333191258652988832355987012769078502747162494463430777290491990355101992297136185710827574950745237776859283680801548547501790749782391018992208701962531081833084321152058521737829145935725284004894419764356250493174434315040695051136407645628817396372874128452779001264199399161495418512205198324447549785799910333353034897150047847040609816264049375935378241081364791747141630767233716947139808609951243203675357547305305435463111612591826112580855589025387166220914967774484484529330095145777402435215600299308339083728194274131993625907846919297064812150428507671146409011024072437964178824444401091439813414852822360454649549514147150567589859914450789102097347432941929602103807882653673447707555837542922264778425581390126751653444994153530226688251153506777384727845109889788001953784896792902366595112943947101134077944829322463122643545022431899344129739371086096635029996655163130758750050302212907153955263205132705588899973963014145296532773074515742806918219439874368582126450860641788071002056045581776248475859461370100702620469745446774389061846480419591312421176096902952635544472617008021909549650186569862418681514742750693498298935712350600694548373368051015235355150380117095904812179993176704186429966379692024151887057755006999986791402851683901005916365941364085110301021818773165759004144877116749061304819515570168485409711686053103897784603749069816974941357411906018053479807317109588670112098800894980471821893575433681234062724657673751494487374157863956989232535167535028834719317152228702409360476072780475268638025481004238528606623367697924464839583191560654715113118982698649979214769052741396824800011978307697982281576396774951039586121542268836108285384476757212716458594875751486508251693509716135912494731408810644221957301663984659392426883916036649420296855626385782594866049071726204705526436358945504280171650582934865415270446275225540216661335316115120143803306855049613140435152957764173840233727639736619589899722495977269957409246894416231861409114629953418016793896702418070148308917268676263929726939092686991733603959084109930247900437189217632463208954523525678606542880594114051181293530440703416454422194562880401782228088829551368821689341543752201341394219695007122264558921333917670992738845035397718475023538690953939699470573878218266094290320784018769753809396226693808791844814473312883372234063264028305494228494127858395076316890700603334611789193006622834674451117503627711181597434227073732324824354432170611532057065562577963910519595510963071343208474083290513976481199549755980853968626708574250111073835339138613662472780366616324577307389639712752925715688602260314186592197968378811766412979457555186285929466059484046061695496631945314969202087516751082149094797733185001494112863223573398241726096009835527644137927353118637277857149639610836290393713065878496313300421062690356829112345731800762936491058040567031455571301824683665485764549863968297700546263914094137753025318285493266691196335532062158448313805335707551460369801773094485330014541091371505989447497130870439270846911120254026280811934245885353159220296197069388971153816388897538979978662338094789944154331065872312428993475592666248961664549879874184312081890269849614749298547155753317683313900372886268914914657886603794547592338683407611533215846754921854155139444616467490690747987888487608387090006227343563295491045286768788961482332792019845930029609838780429243227663769576027386968775777038834965876603282258854129020382018576691248125873616262329913142064889140626711781648962050361385346996841272562640123371870140479787680221118724027443915493021628428665929997988528042811859790836664803533765893175967143439424144009604612901903317371246012111038617472287608797314309343449684133039050530041657678057277859313449922718020475406963323233080726859339909803574670042891513248307982389067360136575567311967129281694452454160022768175712304470460377170860930996087229771259564158455193297909019716848898403594880464753855637460785246330501115165428177471574192596663882615409320178261738612436064230529807076690563609636064169900585848243774833710923489329502255156929445677646630947592788413462831984920473883818103993848522741738125889673251249223404605844622562750770833037662135652734863665604876815426132656300285655576130912840473361187051854385383059428451753288122395197620487699687638221379093689239222308042961951534961487301348994745686360813606787885690991043755661626822453424826057402893076112435977874874996852724570333657836060532422058862080304770063164150503241508253124755444972275348139931500863200865537300305176187113125495304507534613336363308749655038836594190944399836392459204644890269774382946716063724120258460662009906576588370701806012337664910105566286399191066851426405779770487568700881334704036305906080293266943921487293899073182376314306027018403471295917866717706909932314512922183201841174674203385343607966643761234652377026959316849936433584137076020087938186170140889417744189568463666081845905120920650954091556042353485277532126996445007373000484804000062271572302553614593422028566504715226145733973138173565274700390213819689841259352560815616599083356823054462044049302537356089850708807829955436024112577199104662826800235116047865714403361602702357748283914549637052909277303460058282672325697714247172529120371942580030161099002915371642640398509370172691654929849806067789944203340493639982802935717318421199790306288821671702694479689779776841760671436466166035550466752549209921465950046955111114678776659627530885360327993070756815071029899342898770476471715724264664914861660479895461942937703729833680322890665675840283411746087045934062404229142369726142214777042988614510870670787107675028101331225869508827654837118117995692572057889726828559690519338885283099787257546802000910667263408720811491604114311186924081409913140823140596040470698008917346413285772946101852403006856384055421216784939699327486864387310033449892311770755064331386924802312455443148137982520043016923084713598308249553573342678734132760150325690784587222702487008560422103936660105156206872452234568395664299962464085233085463537278277139042538240559519406067723728895155481998937974479632030882849664199473104975018576996457812630557389544017663096144306216013952653937575227972803090010048056091103580340532851979939726834427535659797965767430853443126134590133149444943978730476735891369236295756419087547000546884365650278816993655879166251744125895146468993022838850371225658773557802430349701781261257877586377492815894746116846195522094479439288403084968421341609266779667505504915212286661171581771706971410122276138165832439473962854829388865375564880843418719834583042937934272767223779080884477909512984902386349213980179200519889785952830019371538058887212979681838764338091502969275995588810168332015606804297046809785029777176090625454506971390870830829177562312596763960631723140081280889592961515858052915376007418377230973365691288434483521949095065752795875630075883243526838774404466358308003873363117588658542372451447771212013675028100249925012273988614898899409529435690970917532180567440722250989969864087472846838602914274263564977468388023605129749692852635003666164581389169404352423430653248518535047726960512370183944528479093891877654451758469873393638845068961927419820536349091135758815099494120053113070898334942323375783877446914487955106866321737768593738639780274299640893762700689030870526129489971550880675647211772624784668385242114919592404165976488880633370044980714137882237797873261882688561595786685212723290470308208790132296939691908794441366873685386520782732331935145848539705630701047234824043975724024888763398436923618660145874030995042741235546759113334476604421137244127358813203888021206609611423385721700795368183426327057991664321213149505936311526011753664358256709164232200525628898711360931747753108057020967389980477401506672577463228353938559818439827084439811861551598863955645990748574298595259221269801858191728511876392696017172369679266305915521915395786592174747734979805465058499777712248023630226234835145618533276191245901208416243408995818735049815163099165589393688127346787390520690614080147181714191751253728215447466803692893697934474833609491144636944517737239967403440877821331148682114357216320445417914430738606266364046885030874180867185038042816886278284220507606266662299240645050169491204896070798473500617979277403968639590695786503719018118109957226080419098577008323857372176525701698774936584263839580246095354836852834447947718424906146260319511351504620609113226034364824158278592695011980633333975299625134605142418883784950837059269586875753167210631175404721171863666143662246762847877547720315015526105689659625667503722911512315313486203800417074849170097884570783652032530642665393219343533040859949316312121660694569832907097531182126331583524201210619306929197433577130803397461245626546679994932127567008210113554981941478155346979194309034568272293051928697900896817296891686087208662767693869326378011001490281495056078791900528411234891055487369922507037453652905232574794032149058011576866038790074256202474685623439164417317275679905714492903929664257018762988878334413426165649435634947428241485688397427768426922685736407367412208468623533130600355074487994195755853746208310828894656075630570932312456319639375473726717881836214750345174071036969557353627182905088185862777896287886746141401734213630947257688242757525239926405635790352649285591220658944326321417219089086447765301977302984557703395467859144317005716506575420380245120293599129108569565049780463947623426455303684655367067644453061635744502131907382044989944787176194362201124931676487056414559798593195728787119660776928808710929422632034161057111277940124628449699917417550652581227925872742464613287686130933361557817492890892422948758235963043559366470670168806087108848856805148589698305832892572362114955627407803928187746397845126210139189373698023666024262508051570220424020983222179655381492968208491948261818520823558532155637667101944885177810132595164962192317969844147546237074997330907537077766898623650912034964478230596649469180542674149964775005443496148909219817361634930201468952314420810955651631000734749845586599748931939971630733682629539831193860554423227849345941040160593518868796402316645717334296538261862473320595212359322145899112897741481834367341914246926323680918209709996717551690783807417691986983716252973500757218306994874753794291273885770377612133239987604562191289356304500476623008212888483056164795831969875354928183323410708225516994049443346037803227423182642569007460941952079834341855319326288492132214114968842248071073103259138593470702597405783196523392106372724871433957079737662482994661551208160173331530780602358556608965798177967231342919697744738429908318606477687116482725982511965644601396249204074500855545098072174210884767376083404740816707177022891856522663139362923851662546121117532933404640736728866180902973566731242313850519316821032498622779138835428697800035489232468505249687716188199970366598998777511261512770556160830880279192668047248617229146451880174929417298284445313047431410236072819771597757637685756202647885502260090959207378018144542818590562997442424410476455253266579002657655671053643394062651548433952386750097641407664121989464855143198291021127494127106204290745007954300930480229071115301086982291434197636550744068925122425851147770390904342525559769603627023971634266191031882267210697271860490998757770257767698301318954563595861455167374967389849915724458856189973705589478110244494183153415043514068750484421055450738670040940952276626884693907318765963982731571899861513764859641757627238270802706373531350675679427848670520371775448743497849071406868506636967838485427676006799235571007134312370645680055565841478141587656504966411485739214500285274046684330760331487758485559381492238710501764215659497236007923173144349338550073126552613473599642173582996661411552611832518033260675157611384619866088187716002242672325228091768560289826152388573523792990000499807319977687517117171403551764322811060423181223901171273732164177664958474264769796847399369590182859418363601121028401152889247223660388352775009268855024349381828643526610074351615156744327569295483258743413493936338406674670069389728366220027049744159840462236159717390157943183645126792990717772311055430140914279271437750170736107005842676087688673864742491368498790885887165502345454127745784504259927635399180294823260948648908013221746511658792240360084566164604092249283875840044807208597582369566553035031884151542883597313612032408067211063908899019917357607676795258037551191640429848144680043098680608044342053805737208278221569282121970583939743803275046701800871497368073213724694145512595869815867018738666061183936531444741388855883514988705338445460609490380373809037352417413338009554313769196576451263139791136382577569357295476001274840819201060664206316361390251536889761804422989948506827948668749809014004818399543298342225004250840617140279586615211480626574249921176972633727779806890404904857444866193638273003443001064821072647811901196525053423985487229064346341099536448613900812458312978862940098441479882575643733540784861207916774281022960526814110868726126198687684474318987515550587359296424040173592409768795206102005373967851433233252545963647066288950489053296255481185865366393125587397243554481556283454502248668949725894196252630262628283828863529701928786676358641943511598350431721236655170716589226605875028964101861031352646071410719623877967165288428881505178973270491359754230103704009585713453597168479047332682419548284020466592309901344722238038140078116313329337737552603189223759666637650062036354666542504373246685597405507652427364209187957858734291203758424039665887556025580071944925383772379711606857596429433218510156758295163309122810606391080308129297082932791339987210805947960236787772089023808226099218488792657810007855258805015240493449877638204566816388795915934930872361242304398351156564722680524113837538703518227634701397612650664898816443067003099172359879664827015007637984150494859342218189819022115397107060183465042810428234191637673798360779754116774038299337821088185501431084911346089853362823586694438360387026365782276631682356712163172439999976275791429293298464695060368706469845606900503438131415153211035666494254201617804386859189094616346699992405823850417957138593723636400091666489396321801778176267673128413005413004403935594895306644517249586897193948060133365273031461734743631624497575129177231950340690165991324625236694684087842730820898862000997362674458085626103510598702464949872991987086032055972379616453429139817861567299524123864164646382046175240665947602907999127815081217967457367996913109721471421779915162366882080504049147804571597354734624947792121440840101417803505205839331854004169252866812810642141936581319473770774230230527968250026602006603600118544602817158494409621041950769817323320078109257886754778209029811837318081448330853355968744247712635208018064875582871930165106882672926153418597584286006610416325690288780884450702043568782286968660956237544598934876620559866079905451253328695424196899752090540708106914883754816789491389671099380296047129542787073651146571892128277534368494047253455387527009875323760706267586969619098547884160309221606685305740588176476092091523602611342571791928872278671400751673889773429767874474553749661729190180568650703068506190458760882054547987126799328364815590395778362041171545708517765208501351848424521215422214859274429393083432709496963743457927709029097665350066679508192669397574035927089612692994927787542631807550969796783221847732636101124715400887589613467901742822387219795999977793978464499870712036802057368670335793837288193682505223717059250537572531639143935013529541666305644505000990337339034349272238525732934785346361231311445029027206696683645625764633047500845197107329709356005425666833974513954006976143708046518633235525038300110539293589752106162289149916667608828184984903218962620475458153404022342542835492515901410800812524408500253004827197774108740434094565138516950194722850564523782840805932768255610255970129350641214300350608163186194189885378343411397361419643386913346578912380298015339676889107802266986534350733753167520017230532417194676699041898588224659018949611161128852545255010520968134249726333298490692910312245132109581036867927033705755201608664633894961437050431362322317248661447129675110274568358488586096059262541981822404554997528305453536910251371669187873369410684475347912716362295808785818574252126664626288466811448782694112004382640365457405727574734134478674258240488183159477776770834151603086880828422969680710408167805702944478662581309776198334316598614850872809967651627174322717272964926970800287008677832170403734186176751088577596703692798934748739017202618451083724291215222025528466216281016747995901788727462918898182885835647559171029944292880879232973246583857316745459669294563734365945876109138188194295568397910450135914258901256447406599349807217147522208591058850616541081328220806950572328508669229498164688346660357592549115730284566861596275003920100598458209299848777332802845623165395368578626566493346075040608756240458719703920860146518389281014648781565536599031406108427401283464763292533559651361989726508251366227982725977850199655494414614712331523168176998047422785817996734259239501443589586804365475534732507697614692940227034259214935702631214069302366836696578666974222332100877636605754742665270946666660644709294866120843090954399865025648530627063822738747929735272810678658293712130891947821288013790326028265227408698725180120242031695936030352035410719987828621253350799041827231923648169440078655168984565287728783607534723876733453820661013808918374891254337604408421783025464259297587958746620048223987855094310553927538005548395054596487401031688357008938568636111224468205359336694109859089194977811689395781790003275022596688622940120905689557471387608788758828215607041907362747829869161655930886523545779937703992257117704928325437575790327406867812473124611176574156850186419723843542070550503999657357674364950133171995525339626083707915995241052191570053780206256369062133550002782442355260480777134752109862945396844366608519844020920104443903163749918666915919408121021027837025728064795285748002316558206601431358569135567709587387159602249005473023104672692523817361414018375573627332059957246862045208885264681330342425580505509693625851324357729489984620367300616121474358287427317091179696581605617515834101168379960451607476486692146344337367907123831967175109551898953546519669421455436804744404108864933325524921276189282427434156668551021045136519549886509970322869781430107744025690104588649707210566926964929625774902871518083234998095387958185644307913705989995565953739068057651587426256836856005008479938785341051612364426470993473296094705378374499954924624399523373517564377271570131522063635179827171460977428068151707202234982381382490114949870704074831650379789392406595040769533372232856100436029590965936608238425033524165845274497548085259394848782688222696357928806273569734251648133261127621022665105194218784310999651209567140147164450577727319593671925395816997221379280392771495828536371478245529674188079891652857731322286381384616495139046724280997728184465388394344592337325459713886547102181624816105108790660992062645005664283956921820343407793455908461915434550756188937079401782827937464682109641714253821979364851795986532939883904776689258239452615396359165115393837695042609477044476466507803704161766387766638020684713949759516922575770662416414677624381574102577569597884601364173296844445661757475271177115584269102667399591257329189803284526974794878864986579849931444648983867476874078614276386642877922939719888686227695098491907447406177509484548460199655285698822626665689857560336041768773307529276587251798871191485194451921309195592153703839612578169780558712967531876830368259843765271769578800520368333277131524562665399239036478912002878919390484977270956891220235716988386869804898795346570333044208196555902479650113545448272364870206801829835104050123058973899167498591548442104522546107663689155708698669056007983539897446078062937721834474242590838304308840700646276272820371662044404391084900219236736321996084164319024747102183652916579661001740420484417082004654755225263204508232952916124853465159005103857640151075280686309940986010047318417276600070715666017869042962843352267037917759386746142939182412731724639040914254315388130468740371592715036083919159827252792069915217611759388836409561098648396889446049746434654363780674458511471350990803891888067489654601495732121274387923097013964201361388437642308729588634175707836531073839535411220705792200728936038801855614855917066351937450055254312541046973227071451531161564993424709912715372301487639193677509837227188518246463740211140543381568686622680788730413541656924764794361803126740760208220622954848292498184269576866815270103748784026806238070943037312961626667745550684132014978786786551541152815688266778481246847992473650941890426380530746246218459139356736269231763345663268102153218142394300647350910610273231555872196307829390357428092114076840593309352165322855550900351597601586917692474453503229142349592148323771817686094389232416047972070984858847058620621271529850566530534271707222245114368691320285759548771637824419161428227516226104474781587050768942558724718513481630676211417175390208768536360211055373843968533995284968643732413567197265653578799312435866660834205657598171948380940821124662407331742343218721550613189724703196482056977810713599160296687759977313959051006797955015816709639356736555166697596507664041433122711850138479038541814145274729894987953119222781934701638829057405055862251235745374712656658043752269320250769499578804162891516457602282620464045991563145151465689829339272108444811083338857148540003933217446389051434588659615372608609593359827022299366535212214156855745011743851044329559321173604491145229370648493741859189868850631771030998909400968084593664243523343278091307586532749923594939061357826352601243977577267922648709904244637782175671241238578454751903479188271361477866900225868390269410254313374536025544774989877786859052986158801342709449823562819525984528007547960240843286342228512583629490369465040432576724933040545308494020375674593706056694842166932275612926751826226766891455648617521669989698833702280343992849743579925823214242402561712128019238442160434798779217129850493909125566075165840261652487097927351780766938743707877160619355475524689642378228690193962258280012365195923286003791973564918649911605720815634524161407867378386399231517027534280547137327133643679078592789763452914296544536113465383223837036525829510767360224863503090445587264564271716787037063446243695612668437590771437870348563955250914625466054911624775577479919782829481354379284754675217273177016414541777239066418959666646936622684563686643424086941040172449604624853230480043679011374524723676417415226043382062402608705632293265846653361623883514861275325522766584428984497099356599778421562892533316329806523302955219291604133976998873942731978349955233336248870887824762490342860394091835872553636570056782842501692666628659727213667059772720083107031768996704387636121247168351713128580566525060067324776862724536553518746518663818119860839760030213649295619295585212065313750949174706098748141372272263438095628546270245470806577388963912148916900569580920648197467518791947926262314728588572555717885173329867590299444405104212777227446782909947706935711878050684850499035712231090471993388757624413323607570912923410611177795087220144535946021410897278446638672936016529987583523833594616814129958440504132803237928059147610263122946580457634508476851901899441337971975917868809222980058809872269399346671266329831854050853112675125460693113260757540125057799669588408969031115985144711786310484041041166666416778852597430458947064199900591617482218048541345889514436775489341587942059906245030549125535091697844424525019950621144645467116511752644008556908999034948302909197731043601398369245836186865331875622229545796382938769653932317707423675476004367252154662204973112973251496652339385311765862786395310904850781192893329013861255454826388508339821326328023490297287622174633473187622298593266047880551118802730124369268776969715085016080225940354689721506167165036836926832746382094111877119586039502457075096359925616530935160660026408524903147087521926527187499776200484948012873213272320428004041376962419276004020924569299094782067761643497813380339198558286263018537108597369845066638939022262753791706881199929300275167610192926377943511961637628079896530828178014317749669314861459558282620619690392392142699398225137063428897625592887797739194427338106631794853110866849812161999043303516718080011482035850852394313205245242691773901740075250331217202433792501353732903012781733425899482475685698013964667067589611755326043720317066062610937700890212060548819873108383582902875109606941798865077188256419943597039419353798019149546709318055429637000837668972685200810718946897695600618283487812556546664588720341272113891815580613686596258953561708119679590631119183868499557838202814525158682886047773894301009549349100382642585052825165317216997842356247245299821684627070774966994009948480525901168439904533784974377044464193203345787345914930870961138445900563987197786189498993521538675951517553955800392531469430443106804618578908785861563630296304813894087842553561029696165678400070695951795501391463191950371938413787477820905413724837581787742680089901527950127882654499418358690428668046326411585456532933018682991125430425400582593672751724135336819932493956125946091601609024610784625142052548159829885553431358183726069985338509864565157347150822138256002912199980273828122922353060681540531998495683805354079480020737396966746643678160959324425342410956502416790556276284754171791507112277865030364989555206929260511839606920897040672250828824039475312215869051544020551802834643141964826784512820734740664659702720723748863998227023655539569100626110587058499206550165378251675293970961129049999253475345641248684937734607998729844930790825598775503848424493586604708154765317152687129905594194001497501624344754923464469218635130113083877662460337438729205828122557452374158844535319624085088501224885795692841556700461958821200945368205394213065464475677852599673070861313696420250270349179807963525316732492390649174065203506335741983611263055634859250806450741817126388713242076778729716458972515246977048257002322656938386828648743368566747465523402613383828437331450623877694043556938165417983466291675145040546360132602018297330817649182390458808386275441183340776520905816641798609219659603214786489014646969482273479449244347091954771743107523186561283861254427041502066836854082614584183468791912815335106305153430250105817714577658188349318066271302288705483534151001929047972300855028808373197921281979096993095968430186475174268592221847850676072109294746141821109515983752684791719454255313603074868711958947034363006640768997102727678840592257360517775657164842131643523891187033220853310869318535683069843656920678595262161306501343800222398306416863470339543966628581870141869444623356954574005219780802557811281457673389017936194604494461288140487377259905785172621737899074854899389084588999712326685188610281268119170421651900420661174896234899042515443334568581079256169549811406754567677839699503221988465358086253900069726640603259832135653339696803613853034710386973761063080908266073216803756262801162525478996513155994708164773486265783186535668396434846988013953162900814270375228801751535360685511667377999080524923355038843734146137127439868819657373863026421564629720065403204037642636506915443780346085444542953675142472025810141666923515990372544876725670453282751871136288336372385283246775491354632478420832795673919785940142768321117449786299531883984103738184154990968227460059143972937156205849523771877653231628306154059562726491655305236930328222762166048851242301510361657934366422977102879815015035846380799456693629265764659751170425413896489500439858294906186654497796683572482135816253069367679873485073182026452985690836085758298468855096017403896319231426761649959365358830126891029327570040425022950760723844532508532725952273392632321602681687786396166428349334944330895244838385530044135109086240996168369262359345569043682327960095417681210066217613986215572124483691143506136848674621586429830506836656468626073962240330463845703412582890951946198747216711863969335037469016792001870459928459226122045184967836737331485612327068912661214661121938194605803246009116393819884542874146301384140507560559844692328813990899412683838605065152319781615819507174946819407054784185089101397087313370014336571824348467479683892288733106401739032628354248194236616863563900922429847987069430083891931002098360246016448706791481929236765850429695699092014798785430693982978200009733495187097891714572088061198520433028748446351460355672581624328663867835320090942923545792753639063566193440425672364104081393767157566259439901899593925385276917720120076335151268090405204661426192527890106833613955117542887325703674642772645954512284980023352400413982136727684415663475025798787381123305354649398350454665820257407139078249159184742134889547940243143074887797328548518200676397986262972682142973793805473345680551903721548061460985278952375999374592211778494902015357373918619382589963351382225520771047768288332960348736593960108480663539754967187641970274929448544821478166311737760266881814279911191058265731698030065096255012046024732727254273998362167538409228836298667222684858608249243733236805352560174870036594336689630945728965295111195169162574477233284912485547003232377895852873742288069819444895006110515873806132270371574551752513449496230138602111602831408831710116873020710982374440251035158922776864403140664493850435376091135080572090870200804354315163111306373217823054585373574787921130745099519126739616836451380890999967031671006380785233033507754742910083727043384612870800456974865646223463776047500710882281945613644831306594574527306694379162463934535465978130893493077294477713144831588587143674998998462596511271427747012357136498224517582448073197660801032417092638826009359722187540844690584797733429891093999018994240972787631649245976771485678039064097504829689155794208043560383901165397196171947416170413900222665548348020774610933841399559510267200385305044237004973815414207938968579456290157140815687334677657848674525564074633845287878463927946369640885332790674848989290279336821366082710073128292098338562641102581390797058002990816556802052482236859989957107210817414593375344751605897786463006246618985119540610221778499653475236761892895323095858698398132487711324984429337163713554809250735463604226952190385879202219059830343275632430000575114014181362005767525917950895199601790228605295174090905788291151333891200446878209276998209252210676888237653658487119060445408934488129982257421145803604852554816599723797391542553767779900801701926463909280327048133878573694846528693053166286098024291978052767004648786215715858504162977330264637648663467340916675881817850591006658946034411660123859074441545452407426261383254929802377942246569095630944392624029136718833517443679938183975673278681425194493568091349436446039291736817614535398322795428019114390685102316694821643690393908784413861831461617730918875874506813115678597294583813615865761314501966257678228415561522941721022306783777678553783769431414167658288143386733501735685194796931951401819685065833385141349074491281047339962103369895783477046488065998892129157990583885010512475993681703043847113043041120335623822970087782234227508715667981270585937412417540521413018569128379922859454333133352974138338383611715739465232412977634952824943328371262183262519807325483570363342054307819650904643532725335573151020270143388716502329510612729348264594233914679213140610356639812155988686475361685758162485510289969099791244358468248828274791314231625847730987815248531997652993255726376463596632922471499005389410558861702942954907110971921179536088182877427773783367977823352157595491460416441600824013629845645755034938241904181136518166801935588136427112470863059001581711410614333291374633845474231126757299935026225497300093431113869674933186975334949851427059102311237234996905693159067973630032851987612762308575789218414492028159414290335291315604438218010347382435812485418156506639323125840416276779391554871008472563155513396605315846429748452150030592685662242749239231748088160210474143068043068147234967080726478242336059812652369502482380345318403970106918893246638477418473628873521173685037500709637564562916668869135383426235253473020860897100946404016215239978984450262409654947973331296435897629950396383244438218089677138104942676959113319479982001549322778199713570916364089173464479413041823423833105248194958921624200066789115920168088932388818371016324285424257606865651399383919527685562930607867021403143919628651423978031681874833846846610711451371801929747082049169448224398533566485586375654046994319037588276240609085488286819703992951274799511465034468151129005707734863628767700426833638005962600885198705945435176319141125559999212288235519818531324819705779270239156384384358031324872376965553508060312498283230804705668880297457585659586086568769005367633419048478907319117842618628465285946416437760887854211719014308772934471966363688326266618208124286268767915928880951258931087335968001934218581591874482835485506147723120796579724943251415552039385876273427205188125348512740103692868520509391895030872748959982564304185701154671701759879942997267904574196431423732181355380393323357191598458197952196426352784947633113972948325804678090932316903748680515417960546003758873416807079105389559432428534415187902099123140149354814000742868423539204949485676283811194166120103110327162650208458614225483064317588976346262842562412410803490568724348828906538523017308418630206068711512556354692649413394582614299690424762272886133798860064410697051906056399313884782587486495234462762913814140680819169907404509693729492465803877558450814512637983760080669870264097267618713850512295694496133993665201951581550225228595972687656223806353117591919196962278397474638962012999855210698298246434404773354597307334183178439717122664254943716505547424440303894935992174481909895592145919461810762244289195238913083497417023351567525637919939170222502907818797248322867695846950735056194541390908757056017727474921451797538918356362560203722551200458618821469520524027972786531670668566282207670996011907126563865291328882683994188048830721212461725555429937420367544746835205266905430654001811184822999699706720589681089231073904104302804024465762803537518274027853067131886461388784293748065557389660504224624089120812426316129397150124532442037643684532028388557094120334090975552419407888508665864527217391357313167767924291020396212309888950237924484797776450207559524519756989048237450275712912057699086942836188225424419524911341158020965419733076897143332900536930714476312389137863726426928770822445601287062744340470390266549153414259273764461156199437789553789782794171624579673505247652591055562720758190681599139412198336961020538180057365619010053187329102621126160309099458305024878293621273436396486063104989344078851374930322857034574845010471161218363545835732814122847641019241840510186959622467988816915602247352073951595520073952188789187847860374909009597300650824150860801829687078077196535092916061218985059808498440147150564003884214228241655349574546182577826893864719433464046925792294581779765276701529029117718127233883521218577669948434921913672836838748045455869412535782543969657192016138750726759043506642848708728889272220316123961431544811608189503755249944289654867253416995802980069559905597860099817490597726800500148725085084557420667955864714544989995257616539143386505542232093952001925584914034495100482213680454626317644249841050913220756023744989628196869674084383222929397770114178738249133589101382617749063667556743706433369874469729608341151117226821630933943738383629888321255630807446720762426797854467375482226876162648342002493092707282337876917908353462862294595968555947768115114071323563609294304931703238738700173649847350650539475169730424309241607470517791781696981442091981864876656334285259754157845311156149299019277442947389124324537939179890148692585015897395347436701231697347837525320232494913084027155382801389475166321379629573797598861276706173319584249918251167920859040659291702653163870204579968529826966211057084076622757533961848615232830313561914793045405162257814020515188595166886500195114387115443674054029820329108269170478856385745233728006104479048359569069715354021451607029087888139237505100854462338441531586159363451530752992052420002156303566511770773350318788648548514541723886350988609533291722281922376227060867105660999726190704412986903916447768857431152197372966196019396174555080598478554761124548623082012433410560282095960746875993074087495860043485710240380342467604845318684321752440421125587324482633229714350195160210876854046234824514585627709108531638977502038375919438694364626874460418549722197681686733363332568187570023256780568533188672456683924593323851571654697419565531370585827829499936787153994825590912616399284280262920906467066832883563957586353741189203292381966187429293384203692019451200006994197562802816682388145657430410664366479809032338000672018544216138972425552949508801143561142894997953573915980145101568880200918805730363292568076429623230878229990429884672176411382474282807618263971408666825738667767012782377285958387312175225296281014834832379851842635956543926769152936687181992521856072726335925802607065053643399337536571858366370537893177148307747456043891071682909204098564256213701225781584708867599610754485176644065288754446129054599154013716528333334189445447375723805216400589628076860584044723212174876551996202208725743767148006777192428905871630563825119273685123374672073615395783487577977299071564353234216180334355565118772341059803211515319701551750910754183902421233312420960233221576986262785594132142155312713062810408829560957115436992003294879331419598890164846860053697615165930908398697868660902534879743458128626860315501263175297037397357444954189590192391385955374649477802997550478502461215452456770913982071628318647152374459320411558639492102841111715275234560687612249068871475210922032710151910935235955949213140759240719223916155809452552960200088651176682558629207861173112937389205654894557833793667726469587741357189137535231046037487085958446156586492257522052800619135948696605065444058746189260203438830068969888907620135419325180939264399087252291768371625987438936500272528823218484709572342228003830771895682663597385612140685257347552342192235144668000016858451821993248769308277693748201843461428383373662234471215186849196635237618496033914577151076055550106850277241950209136513733495275017312302084522217752659466639496686136066160890408990090566024107483264387360436420791103509643204084292089934583737424123534203724409706724397131018728885672651736719629208458346301339095235559561891440640901385272784200375884236140418547749041690676492204355019902646597430434051074768798528498196664849914491193048578608667339968737957905156266226976813495810015853750474873975915028447123865474934701144972850374513036371445688317905944125506631233597933134957956750967632719739709029949115252002190635130245865591732889553600797034157940002553955845094864151869197000629437667224922015785308387054256973000725828238801742745014822423920305889435835698633116775092184030303188727372603102468055124030500604304028580785924523190370035378067987477939752213648113906032178335394266870821620586356862226841360706063757842004113614184867118601502709728515102039504328960894615352222283509609209705506494199053975833202810581155075654205170647426561299199893007604208247551635131160214235313598998143331244298708238824430403194314050044567130100397914275084786057097516042834321317177485295080890244403390963651111023834727359708926672070637790777422440296733461031014981729733120404939213694004676170302467665187020501994800444148597341413849588025260373491455595736473718005337661900907753727927221465802202701760804628151236947172346614175631373300100261566719168485894814177146986993191319931961466348410380033358647074256962750111345021587504758732153808224004729389173414564273705021865009267771736634246666193540247324402674997463319474324962928382702636163565207195143454549807687520799838682048052668444010306280193176446471344899833111367631518126206915641189440631840614056798184507287348813287498142547886959806673904961158098666375888549456328866376804878570746221935243200267875912873081800511037286920100119001566829706461067672776482597494162619712802881496263772323099077651063016562937180870737592929284915303101942157492646739338902307961407535647164864153913412275516176714264954674163037765044406927140333445570604733869273999064814630755808290848032365310042368182783616680757453141911446839293573490063911322837516283143357398474409910582876518453768864106954754966165806392307549919639057908609711169086960652301277825855596829600054048835896417428598636448370512609748742339622845564832431828556946846626034075823924978070673885332194110277167812291396171999035696959520412684850872670589476092130162617571102621855759929330532119310281492485279682826482551723739026601239729003169279239263121419244239600289824073153565275370955681728180467388726290655396583644701592828939205847681958374933014625251015553789727355837840818378710710294827780312230955303668483519023582536232602929348097624578684086398035675915919257586233949964477551692090152224554184938830426979676209491978989484872488645607181656885815663370114909746102252538338037265256121214569407314351973838447709760270400041444882806740528053949841928949221695582324660189466917397371423501880302413690678214802720150775413493903817231410810432129359306793131635617679072940271355948593307342247193673372761849709795228254485574435749985692116253668861816173346785724229346276351535722927447097108773737641607293110958918481421743137146514548350285460274636799704193099265903269715210798688998576236460002324097225849790785555667761644571110203510519977584462289499839706409847945362005277725165899711515102377254094748741247064204333130974227972415419058196055000081844928026387489170031114960782259737177560079150269727929643686601653451970382536005116123956078645121263093509632244050021779475336832766274952345436040809386607840609073855864789564133251965360282077437856209726675454069129438509166081273445788914437227676256425012983657576491665652899105884328550958893605866864887610667636012598140693958201993115874101924407485134837043517020410411666347111767788476526921004110618668667236931218000958838555358393341550639267238914319284347245023111739415104586300077997326953832811025537135617697824040347501743310617089395026211677355218289167630423218743179823498797027090407656219949754438688448094102123929198873206643520736430136458785563388359398873190338703503520018455305917038841111755981131747038768497816813166896076658363817867837170199945687357332732772251913552066792631304506349220614660702221756834201783145078244566421231503143732199997166010742000051335349508044572247281317049452749064210255800012568816746752473482446784157651136723747227718885237959123885554001290071314383420704056022899500638818776385704393106785161976993086497287742716718135156478400210966705647451164154417341609375397756570420559749722570363394110600387855176456950938065091839889310854964240347833374456181318236336364484984370587730888992361977127621996804121904199315613040914204462946310383891338447585903338666991405070629222878432558493931870297397611128782390437192184295404244732982712732356391018941505126630335356620742654485030453095844714894417908718882680622441819781377748828317422874385093188583713529552094165408724828993514106457864086329853222097006772867470578118424411829799345799148166586177416490079214635278220164585490205185731137282738265236075648349729114293664507013485144612524246489835266441911563388642108685473964245399070175875969114411310922622691526926724288633960612893228801287322627537906540099648585224136698831145961251782164484481932239886939472377335649716758381871361559226597259445421703396420485040237631315463617161026765691475130967499555328014487550266679729901619380750716188360867142499678204785622638165235936204498691899725692300685335610476359891954780689733350166155281699023345382678574662160627421498805230417016147915439745972017812105004552133977835698452809602883750604885264817847934135262625690996345221262881451860328098475629199357504950246443600864585943268154155745462944002972428446785183673624445587277688260749361439693793439142049688742754751392926850642744159529037419960411990920562989763660496852863976080999931214615536648923068441656069846254093453001370878183249259345690038412877474667882435720115877785198076256590833238086099278368892033992933394594356123505584924788888126257748790205495747876127913909851306264027194793030111063540105463655697431705085865731962506795841152082752232053910137252304551487066799173244924725852176934545337079318476466137250840716521248757090714750037653954436460250572129413900878380065149062013503336605426845325501094173399174735771678689725132526041056079255206138076739197273803821970296072633516730976714241338731999411885373011262705973667730029935166762536364611640181694294584265936645688355475455381561386271101467561101291741204959842797681559375211042654374110808617915346386824893048065342729234534890655318827876720824285378189120038870039397979635557145134312660768423426976931910971669889876796516787056998177754932715305083065668968031302837851637546543595458137850285247523698528434268948634801333156091245414262322328329904803822658961610819171456311796236117691143650578852955258777690139142073313427988956857381925584340977980155035126138346607989887354311806967380368460895605587012349945223381515942355563050278174022925490242414738179488383386689177282670288736503072764751531942404443552099635083872065720461594283536468619713007710902705834012470964854994070588041785493266238334698667517406451317434928102403808492040347567664172892979463504906244538094523085182583498837816611828525881098019144917478049071241095312825427578426220211049185831889325445695458783158109850223914245592214316966322441353244662165281164026811392292144405451837230100457427359431570942925472609835596656744900912182745968047787342761879528918073468031340704623038499765274782047346483348139346463462210144929848442060729862070099328325584472716590863253315395504964914772438460329487093698542555406105638492077043688732546687987460822745938408170310344581501011461553981860985662010779950984909461182065093743537121977163006288386135015483093050085027255063860167626503771650385773101739062164602812796572625332567323085563435949379537657154733389983922524704382176649585265204128766340635827620510001478921629355151412386826470877508810043334446826247722813338477459846738106948862499565072673014757319885707356809697688261679987189069260911253343356646702727783485349099579866050238311239577886523139494493857837314277911293920150918757817057828445184529068261874373994384717096859330203286840288533481413194530583067390442275214076651134235409385899152949632320728812979486482812516012921619155560178073591016761567869535479262566368163969507715023639903902672218346644571719217816118409061510392081412391822512849049034944551375406983470609963935897661132719178204908486260745888897228056212590158060133797182683880146732346982861684736689613972341492043871428131337553743877326581231727469862815438783690570218032449336744911147455147450135502022229447080927969128211102814490629709029951179520806005392744617177806607731101732833499247051736125719820320057524899882551532555088389602113813668010035977397690381096280164349960710590227395214686605645065936183459813461328361922689909700928316810405736339236635020654371984535586990278534217686694314299532552588665290300674168804701972585298568460413951420869365351252214216738093825921459489580718946787451918560050549476199594793891609978359829988035792433580510662907611343333585578885994287928689893707844557711039383050534278662148576815720631292721506592449970125254378576621792183318867602624035151022256185046634116882246998791389478230929851234580024083996237419534023731911479342093722917306341472379336906541829940394604580138874804868971040611359666945463352840954611426453387821823457331459281577603235816439029708450923669699244551007770680715026981624505182143629579620492049969161492264260034218102735895176361555156400405515843414327762276725204684401190042944365287082288084433345132797504171802658818036799290082977798067196975473190704101851771474342776160371034746217237273575609180715856332223125418018922742888497446018819651894726269392852496078383896956276991653082845841937495196469025136129543091066223564449049791319773477363838635277268754681552455148108029160887466453339546251833314563425555490112555688180110256118344651863834856713308269979627121052659992213638822956312862285273142220998806292372559672229393611016825661069325598945660404635574590218432541091286344000553962764771214084974027859549500830198781716189273309787912991675203555843918065063531489844784216720049461204006391628885470815061268882455101824875142068304811534772217494895741663694543904143599232808384791110766505042896598045732230942468315504935003290012769792637347461815894008204286175038090561104907319008796828710921983682461216607453069506388291986572055469760975390841719024034259418355939616454269429228353632905551056383371771006983672158822891000681661883674909008320771144509443180449996986382067697214996398447988417472431379063353185677528628215511368389786555332029143815841805845656438892819656599770684464977229971701532613543850759973833989892591920906479072229704203167691779932271435029419473035732686922996363276714808724328721161558060088892893991727210018129167212284119948060691261323727685747154074498768351261138508343597620501585324958293149184623628697499228472733046848379306778249230183706335825693414184934442210319757092936086969096811366601781072164441139637130106877995326777410399831442100120182611742870026084214443302004205783481535054251948398679792056819665151358170844036680284335033315749996551186422140419092336745994031727256086657708834040632491716283438928506881016385054862845935535086814267862085611030496376659105582569202638954262847841511640851439541041724889750230784661124231676928982112881915662412516267989691585659047626564450806700985507797611448138031925243129424866856927334363522626501565197578556786239851101335208472515447380703234080165225717884866096564599223104356074328187252298879896667864830027607350202337306032558912932694966014689526710280421771201953638801074365947801459585999686284455299805057268918471322964323501723421106329642137068462905744102901803328925153560477545809366327255389380993489774099974694689643155166841667748053928048519344392149801236880245086120250179424200061127222172979801421436458632593925667888961427302374059236797877937888340684359358071917140142282455628592235539546314466455650683289558661963471227086084280900680958714598644340682914705459728227583050492442410651979843232907926553023338996463578016123887676238087954049462749149611966474906352006917003802593127310953022599888288905071944693516169462776366608949167144475197912763819565751562172150311030767100491504563716694751923522018954727588573426243413769229626636158119713460282608331653064102619440203423271632749892231964052722814440183150990370880315889042891124485528056390633991181794748462242460526405808451699783007564152202514091845885007573239551215681929033790692534333323996908166300983793667486435329045413125239828640715522568872131473736639266615340252529811200628698525595016794433391039333779270119118305850151311555225723869356822104421075090198295396435102353357345118754268993178333084980674983205346692156242372124979773453239422341836183576507147461555923077659173162743457374643103474876301129374085782844810720689095083580946930188674105829761055418761834487062108910106832946131783387282867906886497576625556599927581639243674957445012803153390419160830189938257679406311201336450347409937554122318913229186137846256411707414397268911307833327144268546161039710640457366999804038421525713581431447990604868818330047378376502553555157205560615234936182710606245750340617523114618659596032861862888933165570676749965853906567213354004157491404272600524190441907328358888111038849422173271023050474707769971202228954874200240598631618601234093675560170983767598963744379737227073836322800587747716953191420182418643927721353535610239516559845927725448770096228775558847532063348992246148902560585609380284638788902773220503024941660780331147065312194833509871825668701542023425020396739573870181121612224257915375452816547988579119300042925402882145655692803975654023625728498373953886112480073381592037108600573374756686237967190711856776709867914480634189944910029703228250890903050499951638501765913681002885806772752577988160350986307560790697757605172112422000435065342370471437045192159510938346128691228855660363797347996179215248851873540500497724057536310159710007977161569170971706235286735163474017349112756312457187297559559399506402808682986088834362141596053985579524457493796896250516518594108966135185800893411892598555090151689887349282729167826262367327783976439307230983603106928253106032378769619316072604249700550706404529543258353286965708211153889108228575258560462007793085797902527204147782519620458328062302447906070003464282701016393425374293271881875924383046949144123395292547411944624681261337265728186639185936850898813470277846538112861806200150782427457371992558725982105868884045444713427953408126131244536762731893196872709712632692513870816585809921535780561052631917897883403497062220058734163073970437531798390315105479677340750736335299600686729066418964200114665427938356131668080273577872218801990558898086325558720691103335030692102804826335407886237006503364621310545899849657299512240362358348437667828616600848798940879164535660922681339310845254951233919711355474373462077032607667766452083877790697483638542995482510222170926967937937938553214169622924333655495914986563948139379794697289007607507035365800221795288978645948997124772178361999310310737912642769538117413660071484392534399145666936963476536157438807962815508650800322097143871215846172393208936313360230843334280239810836054856855013287893750639987991909010168280587546904625265108271120171189942562663665135028637548765804342231329912397003095676744177631238858880496117234435348801903225175639352384845980355349994209868285188491745976494840628853525877459628916231017084576468130386757741147028709428557685385450660516289346572765382096076242731361345166387621699260123892738629098378838870608859757539821691995531854376302586788577012295352868067571358006871652211413658285010400508948248231562440682443829785291927699237700411397037654186654546560175911241578025767418896870843017594144941945703099158247672737264894687034860241895443014635293709834278642671818714662990467578984130292457930203132895686822549510104439593509463762447494997461146584296995990913096817287173069764895709339733266766547084958996135359007730895181361423944742529133751446951813849682724995349248675226792066201429299535001572703038835313380914960502806519499338739087710642921899861152970028944841014652676386973262586976900542329346870858382739796537836355028724743581812694300746567213350893425900787973671843752940709933723054374108537284612699312872096540414163466264736773379249504938040904363483779466158558887903872631512372205402629499322157278647794406513390886817709388321410401085876903398939300010050638384284579682700671592636124469601472000498416208386975995007555694008023221027897001758296322606961255063136352428733192606185582146078454388501114229672236928085777632247383121281682743450468536998237289864700207057266880452009002445233109970980107107460835450365630173324251818173312795595514858795412378032169761103932225474435367981996805588597227396608722214781076227471439463360574779836460114276180509119780437317961992305992180333354223349377119158320351248985304702074537225477809880387349036698081820576439052816912275281976000696457338205320879683270615161636964259086436151822400114352575107417310583923708568555762607449502121927701852191415885443055355677820610831384816338557224011353187792386319824769278255870172241948459666304692852064850943530969549875761609518031654535100878784130985241511660660368113804758477304400078911910378819259774704105985054158683746955531429617845726486298310893387048637492185649248406223966331773761612918632049860913705398440991059256983546269096804754897780356802711938355519311920080069514724929775792147558690962299234039136664321260490783627269538268168905687363089491683746977094114549028400552760300069639043230159042463878529744833332528332385382540524552478202612173029475781657150261093801263763987342874131128734706660991054816641884067675180288876935893580782700676369267948276806693858118859337380686617974278591771989582380820746500389542914526284893901144578848189203650899249203590208208787015149041589356785331735404687481581775757579029369257934169554315595562207346065556122540894919403428400048119320242731988909124427356391325735003636072379888927987840559679976206808998979159610308072119292715247221861164942144691833233819647861035191589398013919278876030823312641288088152949232231513102830606441989959117442196059917325406896436429688168819992830552654479370873737603418328882103514266584268276440169887845868632593221753585987178941593877334338503239723962009863944449502213462264976366105664089507988384321990198262237099107714847686980234279523735151805805670384862235426549835236695650962931668823774643395865761382364088369697115726459567632280365814943104401402658106623583088190895780471315285001741886545225508099608737576703205510671515967635234023811033735571363686134808376881592792721443044413609804967693551441656187922966884831130682733848130574502349327353052353880696340673384212708302718331371621904107093537075687191186921344527887029682137764157425825297565718177814630968323660502719610031456700486096302036791133566935674704564366034787423699509293156057677858848002344494452796074085292043339369101699100481669967628372033423467238090204222220452486301453447892871271748496474760890344293118380329531106265198668657976434606612131794128447720111323652176704897660627761919854723072576783902657539381106978775400694347916336794081876966991732231318680638507375984176466637105561138208973475088359390601662799386123191954569189388906637655035233917709834953718333616681051515799724613789222205072566198829776910160083075172308327048585439721634520188168740632154300207846137712869512632002444408315750999706436291548847838396889007707864477513003373068896384526583552496831178312199605285923496244360464141770721153444624078183151092486341039927521059936721615528074360880635435505330034634679159418714519885630051438594851550994276166063445993729117415268397727394990237408208462188366693876090267127752009528249884423208652309769546116660801449411951318250712498463506385532545638668956136765306233573554445890797017825001091377794558612871288419026174944300467027301488509032325335315660481004551189445711661827845485712945533330687513242298862466623780327162224671070646722169270829714888108714495147434700068256285719009684276054867699693380252346452600323883542194878591831638739942987196827528061707181401082953956073819450163702398419530215070831799104097087660903863279266251711779152779160409015419754056367589465874568884406288466691630836218692050390733076485217991299897200578219216299091734723921859067859521516715614084063027339665962868442107869396490592278087752923749836823041214220000156348057834832073476059375472990461203413648620445334498799533801168179679511923723292053720796574746902134989326289318703517489468497032380100439350567680894400979753204930033865982573605583213958870742214782759661814829417075475093533142333714204373738504395881488085921203842597380843131728790177183820315634753901045063634807525075075492057263509390702278397085631472474196171971415493123497210587981219968339397395373727635693803326173397638828438272588883214879678450762960075497965524230028448245803507426321068396605791756553905384534913842412531299522126441008130451243701242040803294751478123064034289884226895955232143244665148364448309667335217455217800556403757499168888354452856063648756534302190286940746051578898893165186305054676111133470677560463955090822934016141840358877532279939996949271532723818209134673587607993246459950658992885557311789379159585905944297662494109308415388986005796312585232646194638664463054451230934619722514711120226926637241822004625726198514469225212671799847245967008646765654926184671096491957721366981310488474276023846210909936734314096553076338561570644608387100173561346323993541281179346688201135564508475224004412895789960566868636275083027930643838836469680280924802101608164428236207341932050032737772715372173464297417061917649802209143887895800244918670010976141489492868532186371068626695396585921638903220974160562725436930630642780303713455854684887029998753706684293770227899624119010415222733456887770301356263935254068962672236529248631270312772765679193974030181559517161822079779772325478336155013418162686983749831607739473200936552210943466791194793640671912282637225480284019128274613880234082099852885902896576366183337385278744275765613072641971719506932768485901533580405837362653233961092177154431417633231403887682753784754299182012214719194762979933667954393059449275783064115741563993719373336086047030766928009810300003627340655972605227133943171359007238187676793649581977660032082230497182455409544331627684974158102381757634251897146202663018712943391708722959753426566225922530055192657632094172690895975913556498411772801102829034116639968428100113284761483896410090387777863530362437976636336633387885889415431348538326366377633797217694677932798465069901061704573927851164871382000779540451067753818702789116017413028147968383792859286266190691214223723248021898847491558216771389825845874702167477274410212094702741291813019329584633849305759715526731861673362440304650940178148432308959444885166624559605230962935188241186797044869300676629252037603893005332002041881841374836238935286864222422865174265824797022093682021815730578351241715722021469279489900339587410278730299470120842943705314521690670767972953097406555553203825567104055190523479756085363980944945486207913275687573198248493489957901670683744464914144278612264194126208432333633491027456613717745142927942831294458578082687345185942351069055184445598682469258621350466708803345038619009488530010189335631397130718439899852880315863309728844288091344624552706362996863208301124474321528899534291447770958918605365557498867135473483859879607799240448523829818301992718292905981114411782115755746783840072375980183385413465296025933713807912869004266364983839037295397745103241999261946545373113135820322467458090424920884153538747467163832665871779407499752814370790782556644585203680915969578292796248051593273551620581175313227425916532524338242226879622823579196416287059993157208230972801407957957095128805333765640999791939765508022741276237886343488866879515694270533959609894996921438624501279539188715708415326016584707468045624099008631001847650944555815374309676176310878467924989182262116992292603304355868274161967758145329796577642147317227045822932458779674046143283925094889233696593752701727556323029208742713384451398658175978613625337012770253626787859563292558449340005412680314056905021931919554824700781207784953336479493714618041676449370964468349123206991131633103984379185241473667878087836055913683506886868704220976014016002108326933355700348971854032906715947839304725848921746879430306866768178389603373163892717272828277430713508214584426766748706280318690881633189599044433283582339815969405049118031913997309801591727374481731197496086995541604167523174130050761108663198968127351179511223588441549009786368875740254436395100810950176801112140579518073985723828177627902428141612858024205331399538991827415469757152395203245236720341412040691383552985035652113742023402375155279390187833606981986735642439241426436460017739089593917352412577101925824687617627292839871360972265373390463214822615795312145364064852836701407034886398822470894114693196963394436839140980836533714836417975197699712590775330637264036380880499770551278888263244411165599846096505648199616154491127728034870572060528172796352213395800119421220837515559062186267957547338202242409430687438046371463590476434298720523064823317156226254492409801899237591812960411611041036280149592091517110473843241141351546543065820012752333122538550958060680747033527370834138464157420750121559661580589006131020902368104019329564483258612409106681375112715517830534580483333088435879342439172770987961475632680774953245589628893464114583350357757408000015508199612546843194106120343370153563632288635340220478680757362569155497947308645922405278917022478234356187837123369447309682266269190517596037549807530474369444174219077214576354754703138532194183295654109749662983633661413996732479216262451927215452628168783177786761468371253738828497197532991381473438649825658065331494108209969979689047251066011216028477549880581940251387019668863295564365593876463718277472912639644532573119201017282553505986131254702720126895630571300992211455231936688559489269725201363594224250601787064811283120673716878629597882704041072381009880693176375157870126378974675717196084561759031235969977933293564463672565000791657742707666443607666480507861086586097224447791238837261922658441638342680442154083010441128742912446335933821605695724331381824464001975558515821249228260372812456651047968732621858832777073978354349725166393949075026615573359512475976529985431053544084198811044530559047749992104447232331141367041271145575365579026938540545449610557987700734909354371021450882773657366207419686076237758547397588682767255531857610380020583949352465500754868253424398004252777738332902685020482756073636941997099396936558980679629939080530904350746271753450505303346263177063436238673456138002209047389458671019203886471008044714913948746368114883960378056177453009815548376203978436298475834561889058026863989478087690544369331686234707817797858938332707123797754278886960924482804206489162924722316304519165561712345662914155811362043755592076651052963580664611169507138857657977259935396645788591550953171068329320793315776748070846125245826462085085065057060798839300324572102583754840872382534315623715007986530150363125948502706295190980151030194970424175065942096969135130203114433499381546871455214075715722968626844228703986688944810631477966291936735324607061298854612854823450211654650649332594058623414131744852672422163128037871119177614851222250702509549232592093388633686185283848316167001221271490003696691589933848758212704932778477205318840589736894542061567863653591149976449860174936816422079519793241970227253715905325699440371763548560155992719064516848025128478877113937888996112805606597828993529273375602230554198928748874868577032814449022887720539756742219271699840740377171656452981290370842909564754356742649248495639719377106041630701930521554190603520395108795123446613185758673389579765426566940284856098855323365885897138788933360090425542098541104560212919270216538155946723594684538767913974526172274120315217995036000514346105926931732865470726155290137262759779655048178567881659982382642288731125547380134051838473897462201582423038627574374187502023670544065657835626434774662335902853422938738161773752563871711015434899364057841058274553198944066650753996736370962137912303094295336860029616008449860511997566024777803698148873775326245242095660648220390563798781282865864077346011599670705591001523789666765325247759566778708504640283754302577703542954965807611285068158734810762038211770866890308280796521870825568034638633126279465584339683294771000238766973767113031615531915281892521053160642988917997637167490495831827667155840365445894414495356519059452829633284628533491084975528422396644515663073585085945220470068868025454649671184665899408388908508787071107300402512590298706862601760231217645801828303100547293683889824018900534011106887648324301400979826772053894328687644799171571846055545229548922575496903112919215685938024577043801220714806629187238277953577373341010154514022576419514416170487048257801301011513613724438164185266217616954751366293248154390220602264383814493892690256807822553324809703767659534345561455135064017579815429119563816062089291799708381233665382117809955909537063270746070668530417597043040595318273578872937587335749352558640072130941139664566815506011215573721028717251269459534790276681955043929869861709138936779579928087445493715380401415419745756371832783952396678802532653167523783790505468092099663558231568897187575430116785966699366919857079939266436269714022787621358418489985533693498931066377590495633102187600625465223823862085985188828641279931911593447894256913002797953356799872349878585748865664630687041728833796480293964986259836619116779936732996506614006477181571996178556964129811133830765119787647708055519063800970043050951663071897983800898936137649878453557562009682126183338095723220063496323177627563437424504494553553854569489803365578420996604663840913435671353066841361944643066065090132270440870592133470677785528050048071198353351503093507358979224331529047055501917019127319749077716961014445770561299489185922869611322516848564903387970934539053663170659450494081904257106117672332873071141325627294474593086633108412519552849698001091083670566328767768934703549159459197921974913146821094311430787070680069859402788207230507158013967289758448223802976322564073858856318318262555123629640491650483607506611417686186420947761262559040453361062886503392516206725047738342207819603753077680242343137522315142520262888149074903449181403656565224200692871961508618627621540802022489306062931344346108777295255083482518737174401834728260162269636846343189489533382355981972177261658285519175792012803024644925998193616031063381005249125803748985176460610034801539347817965676097475230734590539672352739613030183794609966410715945756488949144073641425659728428947338221443805911521280521557476522401815295708869532718682968880164305360298343703498613265070596275165316204335106168600210538054535319439324343674883612211484580984760505126400687280420396150428102758509000825497009208313950647432331855487515934839874569748647358697436616649209682451938130825967199202675210293429252685473378977975174592688323902879099764649453210161898382116159609958485930229225139579530997727605166876507324009497186032739314203355972902762682954559433657398003273077628774041518924252987559138836201551464181890997146288339700465759560740968862276583494280047673700328655098342374284319558662946101029779838371300202344948254805033989125957823894751784538092490110176793147632591359204126508177631450145390257705495724347525293541384199279338340413044311532036125356508112136733355696801659890908430871493021512142890391830704548240151682866919785209316918347369214570388686722372222481657027232567423577206566823036275115132982582459075618780409182971937424858797068172729542796104565227125178990502523773181517842338700021471391846483602670715378195771073850267573693519816821945226462369945278670476918532152356087673027368461100575831191070328940985860433885951236790049833619688221689548011378885804143436163857017766613545103351544095807369176623135935036014283046688056886606779178851057014174982191131399969710419393118035521292433896835411983380586602709617467310675453930087568268305737373049524536946911501527699474092697562644186199728161656191544364037186987023346204924895848254253676423038406137443868735882804860430115768661842443863554773735343824095364826705504035201806273610702302786712681580714122157138165142593452309047601293635943839693506496867112923820357878221082843882247608441459994833591284754522393767100781198299629445891069306950030262790202992535736309340026573874816869725529509953129194129439539347581059351821201774959610259585795579298150075774243454234540730872690963693790829121851797068065543337132207760646480288159501998023830196521421258181063624239150406178252188911760217050605846603848136717538713845153141383327625670929141543076622043243241812309659095463256089906201000589192832762429765055888259269376379661804193751526547513729350313963324764817382563090639227627979095127352396354682913693568747618841366958094052977701775265116332780218402750036654951137896664557679481636314263475220017082162031000703827391514691907228534151919181559811184591506098514630339906633206033248589658867049493122695655480755488383418754270428489054404195508346166133562896895438467228468450990224911363655519345153301291647208911163861203250029848898241494574045980052436399343030073406288344990122434123414003581011347250702787804649001576919177071137057921319908063932829806439626212890605317726797490020037574376227859387890611110102384699442613310223879883907559078550675892938411166847276692153553844203191675059151464688545459441495615546793264218217917404966801807509097633068207274128780174532993344560350723398958198577585280083477915047632325323967530314512247176692735703268383490378766737436683702324092622816896852790508999196687867891314567205975778920505622200158086084734001371958023460853163185549151944734359313393549045063622230129406752954116867830954432080784679429033155786005982948750207231302498539630969258021409350783624740478303852761049868695727432938644486073369278478203046047630443827745996307652700372124392490477991253659273526796569552118264160599665084192385830748329495195074020524666475257750696254394602501785234133543202754076816644945428586019860172607126775197412495350491114066892965692397246120371452354128603142996010838480761826618566373287920464410330306963219890902520747186612762438844517641835762011032943868263708101286268174636519970807115140146435014544345763126798156721700739393543091820688566627275548155379883471146963897296259011721258289455609985486880592274037790565785128584507446460891755744005086225323934082088715946244892242254204205045371440783769742931309750604659556254508045849236145686152847011809284258528107142349080481764122424556098141575408061830351147574138024221093493085995149573853438182311071224267074165179610534022003093616160507499451497138990366766957301169722974549740172913991188356675208198963904916625568710140446819112061328914552114538770793541517518647233266148528712724185895578631672319346399770228852846183866726028036943448003154624947836848209132238871263359136762487585152943733702950878163577137175524090588717543511362600580634225393152573884707055723994705609025922710741183091766751372014086784981123566825982142103699961538352164146431890021011746996317737115803765997476877705217523491033874757795964959201896808349311336838839531129879183969510350385378155789300728991382558543948415979775469688285658249528063672400127457545563196646958897592744251682692828779061755330726571140683729410250245003424355327284130789403896282872331147205304801287062368817661989503641946516692106092870249098787076647503086365106276742568233589017321422171992195510884336016692154428243458233312872173341094355112259643705382033959003637376614437917805942145779878270711413906671198151213139304935909940739660081181144402686212868204871098130874282543646694892267786929431994658094309778872752226130130442940303427433023323285298396724670583550584158454602149400244297661525284787847827394379099084761103831243138584957891541238346371380566097524926449394337492680088816541113329117543180873987642153332270843585727371136297778116959639751863364231219897997055398300193485088037259784599823152707722415351039093200692771069766859894044308877364245744519548645730631131549789688667925760679975186090276394315768946991630663296488446898673981654905898023658814254863377325565211819036228539897346522473371768128229128601529054447716409880335579180084055383288525993437194903571908295548548691074630367446792408667172919893855035425411254723712649259634151640422344868960779509607343482307515656853623275280610219510720800304722661668092886658868022292997973002578590009416822150794668668203306511018483349249181249349517002582797694072228705991525097074970830540006664919027546526752576146658444497400773963964169932871517817147758042235440555744739625671015351035578389908208235377384893454457839462137571208243072658609547347666778438158005801193747887229897733191736824074782215844311097261661638759055786433635200265204177101909223899098589788327511787643868529485432917567066552246402466051520074594681890151477330497833810892012608985241906184106571450644294382128347743339903121752488365531621435754079284266901510242724433402218101006505429172842746654211341722173179850031140824224258477857706406698424648181061967864772194853292143810864175653386226182562598795814565233020417191029912023285956017736851372810851793201036369934387714992334249444562673017283724997912546741887000758031037587668021322994375187095585926570430626965259890297310195947792140809774391483787556058160637616765590772892887823385846477082783728189679721759627749139068335445073166538150146050091471761884585876329458341209027947945423335220648057867008854873411664086015638982580289316461124757893565639599892156321934833763829987830333747954147789797694923254581998591461862294497727390299217215922894945381295208228111312105842924622344581304950497921587068677396510044258870910806704724567205985965557773364045781351516966712052280739516907321921654321085954194439068169920366200652306586095796339828681001651794801985161005667753329099605410913282492795521195873943296344782519983146427554783537234799780401057421637956039141256344502499130710926498099983736050043496299540670272150928311910068557063196647494703260880750152011582094293719534058691145434211057470451584625188556083525799013738617807897551295333504717555820135029840636452867069267005097628095714318417593431207294053147540547703689581920013046695957646775939775540591304985700603845738978398414534467306501737204409835363044508682799572933538020423355628579795716062802208897373998148891655158682340111255336643078118752881221156988103259371698767641502101136113789669271800615096712036590917777425522219178360835229474402604066664676984663145198107839377568906434264679768162434176934914833749877284007912698294639725966924637005228988927628253039212175900108230967291964532381751525815723582801736550309493815710646809565387111620053040919660510382200728171178983365685636174065645400174574673239602643637912271149371571619000391043517241512200225141307760871833514139836524216583029726242529602307227655785846620133266449312214263559768509373422836739534344628506694532325035790367979625898307816669289437675657716257106509447985779936528467491319804106366703283409694255767143821088198841766213703724923343082220800245196001734575339059016493612222828529502548428435167291742297991885515635470349054222175118150977447639306031415873879759195801660856194360861348196466605871395940220640485402168269674063197146692017054148623348667541445507531352497264354730626129595732067058020787504245943343750058052783530985963255036028210104052246272264049251098881933671767187743467292027243308039360394283369800995204067702028977928516963018873017660329012272244222975507007033029122265865431358862077646607491930500875976383105047235914035506756328075239475958329893698878300248798164195433105256079666662549795266304800280001664356834942795029111511419283638081953476236340331315561498818160900285384900999962135780049906672312814489690205262053358455132201855037069855434772554649081823855312899256808974883784110517553380859157268607055231094266274902008302153131343532064346802897971400090071363916454359815777442878225615356844593962786554969158692697199288109409119135316013335016433688917674798083204080856645230082183170284055783474216329874754866546945779650808326623019683413998629652568810468012502798619716425021876513181003354837392591967480605215281992549468741722014162222451667512313978164521809488022072965956752216792367406698076694871915516842675189369879877074930205779061415606941879234775080772469250675267015239646936317181915742207965939388719639643755404530564616881983308690373513137380874538188494039596150928223596990069890441557004144830565102908370164197558332537360581023251944880602038180935317066708129673059360503753564578313553559837946652874173276640135988674927460291591454462997664537486007542883664692635282673582523143206347783855454696600429942611769288490935073103939871764212629019996881518599292613929774911584331002507350237852438303795865552552658016521552472442490910045997069781596259238362454312133258396164217569345404027289663532865896562135117408954773278081872926775682437413978215949864978005752976559600645228635372140640084381606453560357681978892757706800632047814707974329309336290091300330979409876940749925235278593395020098553100318192768911883155481978961082477861610959584814577874209627092889728400161216795751814671444880275720822239857261122526206084632531510480624513830547814486878143234307229674937904189024522212123189851565427053825063250894067604384464706890401351106068693277472369261368309888517658955255327324780202629189548622536020747922955073047401283409912441485860565817330969914711066281809257944424500828790113741895280033536029408122806780170162433027024403969697998458482369469455552179324724272227907504163926442004357036676915577366520476793326916712341181114346984706123444377807987656834706744636013672704429103340504604303455209579899119840450618206872070745441270539690648852270040788799123588272003407479166426651785794631749963012407753952372985428010002775390425730440818937812620323562357241620121083887151842806655968284986226848331698317857335160682146039193266340391907712879107959679627455468049504335092712439852717644815536463691152613017615307689138697813212126151154415333621688531942326664633722887700038920274714894509531171963659737074404206302890897161524377435876739384211419750727264185938088094440027204375492615538300443153693129374863947891364924554749860660578219286013068459618220030757971274641158011383565772156833370113719610261448714234141307524719742513065761114896461461331982517345625934256782471160862396722614906233387640663359987723209498493728802195265332480019660674675181976909397272141364134226479101071416962664473950377836314346488604720429046008493445945800106481701691525172561802343813630866739765978092755934033817893066699689270100502679346410455437167742163171776735199236019947142190271299087508870378215087452726971796478176393666029801096014922178654842642858101664017994494564240688146375867407520862388220834148996301093278193262557340613571262314680533673462115425662299042468275086872897238940050384227365332325542628489314992964355832075632434615256601582416730889867924475918432793419890017223183370151364399401386463927840909396435248969828888408290386709807081385949724135297710049946784327676118694585847717885535481194457784770801029577304528402859667487394739151610857381291013992186447742199673649616966624094458927377366214958705163545511343795878031927047988826875710023384231358881297410238578385269054539829944712668698018579070449738138119062885070377890692920707621200987646739462522406517308259445324388082817869584209447509438736024957358851710119768483877012587440031268699345243896196005618475703223206820105001010933097629020113717834615662504859579416451627062757509882529208321552950589300362932635475024430678242397983541271727235689523128385424266241215055574858825315952412691848660298966824624780770749000416578983713734474925960518559836912119828297818214997657026487125467924748067438540053478171927122330929096732289436427093495053078175990895364941865721692533860734615733975296946075409940127875973919463379182646548022801783353784499094460582766863650047290131547784934207014545468549231611418994904824793010826072281688781289916299837882395522316385585048287680134235585122856489851854041093206674803747786215756098818142872469792531069514873845113488029529365816514332580142685196013304559461852358578376774992602080137597373608676351116782720654110136715414283947785463210173175675126428690007269374546394591458683232992322152961538786508863659694356636270845031500148656769673298675801526693191669181774584658455030518831834427702856378597124640741471027952283636282584716629403635607406260770450397667612569737327459095661026255943556071489062377412783726706169722693116695053215570365521588193398109247425650055873510019503544897496504170544853468747948302547764444434321070179233313332834342996441876212394963087250783707574452604199302380762858893445182202598173867429108627530732859612710196871354201854491664815718406998754573010700956924737309805149603160453450712839359694126352452985915628177480540225460636977696122095831213268136049849509753099178906139507325361295227962314873454871188218893208922229670573919155948401140458067818152094074653885274292818185945689268646496486682137716885668293095010100921124878634883111359458903120576354887332626846589901262254663880756040410651937673152479621953572894265450710331627801502164196572419593743565830928111713112115992486275699663901162685410804920210104481134151805188730113314747670661003984785498689215356655828858802953253745824574010367301045253356998665668265643731423499232272922885372612340068473398320488393248264258787546329767783189330747706702514058523106688805697754662914534828627411434441390457857250238202329081244879976977013815980739735118766649880103045211329279657404455508915285718657144987212052982058741574935810076496142908807404951411658610826423223447077022813756329422448196529759464136267975347734701851328996872456738425129022131929429631065085606528133511350124308474247781263470979083390610836550565199374512566819117380486293885512609216637404121893141635781968786876211972261088169186877076307499171266591721977424371477001541529815718256971898729177119825591132245876009482875167036446591982669144642828740183546091972110391221521307796148928440859668809920744456455284277293906489614507295657788222820744276266104540156838164295578559696673485682062120276334633933828997782793496465734920063005760547872991361716113033159323242993882573416710493202891400216976548983410981684089105818151955194841101452434370959354016651062208714169025744282054969948094267549851854728729922613013720596070514864643774259546877241165190481886801368032727443501698898679193429946030039154207119624698849451558616100905517869586894445432238122355930463444626767930007916723658444705889554095587048833639374937629510910273881876785003634300814756296081162601417367256772560267605743705571795561809062251228345148955976841463552959758214023088581321651416701969384247664432729045766646691459715673157986918895837355815084708291631683105886973438466975637714730908872332084178733327767650707361690605979718423972598400882308020447395810277596523332389208014997275023528022661068540583524516296394933317703717676061120328184801313874647052707191417975957525679290195197556954075232048442891784806159021900280211957024100566778338590654224647217906663485397553362595989055845239981989866310333924431627605704758515947894999763442973350332007418475900812089368690191915222686221670882762990649470497426443274521601812110865084003043593024368546625075344031420108490133043379945538122949887850990972094238348358111887872959621194900280176217581463232869302068183215416496670859154625585140647571985041733292793695679727402039429076253158451262537797484574372134319011360137161670920250064798599943514034442384005413448299404173281967035874460303240588422819807403100115451862683385297916222019715466206715338244518393936508878074798474746243763472194569373640039957197652289664116797984455304974224693871010558405781173145683408964239457208234372221690967228820290374081260528349072284701192047311416302405423914410216683832552303236330042583776030810943248293408185381068738665418988100571274194845866869867196104316448705579811817660321237813190729329236305397705310637968672703704115308350112300953646700084687489648199413462040267734182227644284973559955518228281162922325450106523754500984752389065066483195295544233533940423840712592071582283289086577463114209234494047594529179474059862688905280165927607394008820823469278384713610453717659453493213386810112975753145933780708509262413900876122126001147599771067229735135563915411104790105320799668166657111799595676080685221559454474012627348080128055444002793588641493171069837045001660629708967958847097202207192724148595174519505029161256455020523993451474596138843624626781587848199965681084679998055945474113180854953925197928723555859960257391331431132232945037590422720617761261272950446514963619589878597438455377673883786287131966570932075792925367020580497016086534614081767903078174860801848757196897320722236695701318951163182038174008836665734204853960225683009760744951595282958446854010625278686863156113873737437717260342299311934355327618321491752878636070088052568087560976361570026879435938331539075278231849441907275956754693563570458836466085651583665051607396635970809651237365027525105882904674656817292698543328111750965251291876572484942187864034351105407142352901856361248852108747387361875428667266701010601089452932634061874738814121299474785543297825060873425443970136502803513732692861562826162296563127888975086050723571579288660473737526174160881988463176224601187413561093267227586933805728120765612538079116609811102310855591887723264103099726860385117617436406529397129271953078485588817022960547296656318483452381121611828250957027808949987315961092750646551808338575313999405841009081238312744321972676553115851181615876296389729584908615120052632809337348240043210665123216647182694354329489970055400682683791674289613562988632389063605505960572292929594305439584455119452463247011439182852859811158349320898195068322941415421460024212174223422234849522637627986496814143162206614640479143976614899107367122319660570931640074912872519989157140098289684872703070947036187669925121720326904072266862391326048157644783428946599703482240945221343571635400602008305874080344088782524275000874311758320627553833740824084542544597671134384433023018302740770825954947627938309472110275947904434230705307004099565486019604137325301611578799636121637085488051719018098687082262502805078998900697348775174840012780677726496007628450119923286186581255700112744121119161401282222500522855125543198627706695433522441183909061637979572965288573509744340546351418542157958910136134976531404725486656650529477288797593384261030099144581895332986542864377301999684656308053372306337289239010996643583224868623272506221121726683862014311169648505506992586034836649550864556801670950183852750208737097167182205519243783285913046526690551998554612503506424902698342770365852972377509520192604513985495520131355788992927309509863542828645652329595243764475723916420311087861423417703049660489313473824647620782813291857568490080336719045827000057306984026883062523518045525490561377166057898443633344285379388429709206087443117245714581913051248223181339861476081907377949503977022894110566202683751741950953540605245038731246790880525884604928965198695720276419174887681865541639724689265554232310074608147753131843888329609942498438527266827718698781401267019891526299124601551989676610333742228375479861477772822494713150533894675008185368712789084357859516497326687588631138006621689228514510520668828221777977514133513730643495795212105299457897817965118378510112086648745887281469122542722732056639695016348129739938582884974145940133553068466012542391005781807907578155788522804864874896243904208070920215641876788478704748320994314097339739254474999965362869301987231523120922622014138628333234515203250256354398560232548352694334718530924915742436641541857539671295668267860048117949219128279534282402996676718069614626896035792560443329688308725912392123527167267548843787652009080095400223996538850422582098363698818466990128076853260500684643483314093499459095146212341712185922036100600091849238189774379878590271547636789982566959767596655482919047430453120397824396035048832091045882973438739373692157457566572457697459459708070683688153450007782179047482453023943315961016652953445967511497731595355263713389024057111119029258563652971238529109277431088676705140929010740340715238665267902313398454200094155536562201269000492377129107977311847485803488579761300576008034958954225808545117408250959892614715374234546928026044282192226990245369419039382591059151271679607829611945170999736218456874775395674043532563246061131392589078441681338415316795471065200991850469016990459078891066050322398199682696814252202025151882898169703072456966923099841449437077004397805037104592270404145969754681052684983470678085862253598608371334880596927141627464181385091423734955611377966957848100598223820283412350616756757588382001789235749670053009237446684601603753337103236543707676931330944321917956825778744481213687814575727673122696087483667966752794197432329795931955093950512556038298717867472952323895288905041024673381167267468179185538239640956816067161669751478366381028751717186538721188747782418253323358282832516756213000993583703189461932556239898639305830021279502201331169745271389456589940102437442744374694742237547930745384508141076611777472959333387637039327236417035577348150516568110361724111495009828719528589309780398565800904378559470503370025374146532000572726694103251516226583728806115869211379280727449745799077173575130538971197255597286431129782516562386183695403462787240632844141871275238298864218966462680035589071639827491003342716675676675545332536075981719030673988348582122246705571728155188172840046375041711729484294649898539173920066343239406341027655271425656719744014682763405598381353583717927820744506292250436802851499098630643938695480721927786122943044870723070376051702594948081543946488870615847233173630850021522909323730083872965790667272749305614213774786285967691153785874477992255601821290761965319701078035979984022686185000277070563424813363784358444295880998252299556578731432476732713403751624483362571161888482242462203778979742237079123800439956085582044809508039743885204808877900180839423293251774720218383978790673358598894534436293123708570364856816701114306792238610537580956961493047216196071738726148181916590121079831973238467754214296291820249677828797391616283542585160628587519092028162621591977453107847748473033634177342738401936674901481833932960414355676889029727625938938712918508687003823975199741690224823574175192389343147157105169622228747625427117807466305389131108158558782134725322702181511772730183925711260634249440625252505824160518627520564409333891192478036789938864037756782578871129678096353026191292818427298205275784535600606048875415589342943481964652805470691503748486589357566186303287072571218103529636611442309322690873841012100112372151030712136733933046581044286491042594295979191458199945396860028138906456141724702464980627049935355767976820402042089200807614134601112233203861199455318364611561852191856360469295385643863563634202553224511491256875337958858035346002088918550319733983953932185867469917254556708438688914738226677697671143321068268570892472547997716932758367143491047232607045530127183582089708143916570300684095624764976486020984356913717892581921925371680727483924919672762062147998127776322003932797014559903349182784575146571724768456446702749302529133815721041124356081007307546457739426309723026402963719471184749666338930114950880431381694764470431254992840762458590956639496106243679651653899015394179304212847230138193855406794916377511738115524775053870862477409776070301262636723196751585863805481631372164179338918644544673655641344336097971455380909235785682945168344830860447449969250752478752990285842193499026945046976175347867919464541080074115121642031149399495305653238217003666604853967122446672526315468994811162531291380057556241152136923579845130039816821369299195336692639691721429337293195600040894917410703817060149746138217927460304851621635187672214876076357845229150281038638038258008225164999497106167773901647910168177391145702941671167250240938804770811034612499591167542770971869147073990655430019743067778695007985537478507145547106622722113220901375277717087410438366571795154491931982016512889417822989274309508707980439166333191056772510427953659420563462982613627686593714536019121199192258087261982681071646302568312308601919242143372584892215111766419894182762910309131341067784183763722556281874959106468674075924463431194129334371968434396304310742107161931931564183781608799939400656497742406658887311940842639984783218599493033880100981543022215325032850387166569453168019951604231364436660090695879478153021145619646700222501915286118092003539992770860062314109173602480291752369351865629887604779881559779785241786322708789722795842998848678979239805573976212558110027809386816637227151777697532235753835485245264303160927495039629199947546816204648703610058172980759850544343193102919753794123634448760029186205638535838317947982624565699202521467802509599035817416766908469485634317240312424827987919934175002524624025004603496264193440938109835084406475993589284062490287140546092533969801714674969668269738091632787936478015667834922029371397183677685310306569262850876550090350950816708452978100451372821766031703490184162546325603974750473661662406291876040830322694798918748817183782809115484957278644329101381693636179874182551610640667236872149987546900747790645128686221378293511757198837829272358587318795599652143198011615005302330766690550602285234926742907196267700938874222189564225357397757560376511554407982627402828534426958065134555639868581034120595559822351116932121306219775118375169818936432151060074704411431214406894518671683567249778878887426883768523913861493475256430668188027719070541121307670774580440711814431182982619294232547480204688125834714854265457651515380830768369278114949942031309378437116208138556003668585883779366117103897840986218017340890986707220610086459595755832290600706444578974253052267087424521057499431969050180855079561426734015443879501719674945272731289148213388099188137544246799031369935960060003458550033286255765032467644528079951496769674101388922628040710873650041299425978744419852260201680642970301613675125629283235933157438096608530321312425391205462587218008691878143203066627519349382254187240285177288036227690260651348979918272673178319786307880365969588797911756306628221923098937837644257402879541484250073998800085150828267634947555044417358899329598225842360700489177522740227725264955607406024695583734124594693869297259734828054871269879184815504228463788499383337079668829444133886384690322610672293013849213101653562304488457527940332180713052950688328782768530984473429697286718757633076851614182114332864174733040013927458898787320377720293056060596329789088178133214769536548119891388001300853855015202897257233194250420627322205027096242654742176505917371805853942327566520017040110435582862330337960910339462344207774070205746616503164589717038483396475325268216264427211258711716951427940820602800370088409544585006127791986041040334205790572822788278558143444977867813999813066059052103174581114008957462215190753106052827539555657394857663579786749950850298211695958507803223840331386364675843100939016883240237077049887198049800422145187671652322173116403429392220293124129947726218754321156540288666259057159457242216861740225916655639411637094028979404557615008498975050216853435586103587351288616309105165436747553967939054147810972858724897814339310790680138975428966600099267359118911367445674780849383803738370957168907448035855903269868829609669357357182067044774451550889926494608185935391363694201294232392718057675288116561675350957336951685094231797389468776396128328161426035277934370129478899489867613288699897019094556569799957307252974012564333767693937534598519943365807828743799022059199939713554924427107047550157393854149737961628272763220889385544720977169885746353359000263270596633776323814026278595487234312625370095435673366370171397545670419662925733520701291312112300191753129865391825621511711957460258163989920289898898783792556992981049093514635641728027503219678832837081279074557473114704214516969357693191478280840218660278304102681360409945272098029418033306505292851219840745548825355840959254247576341968685874733956730455913853604509739744477940315033089510814190827957569294559295992421529615894485239466615851727710771767612492814145330959254326409713684767508828578975377725229586833303693903594093139782613874328097209885675162245847297231634011359567441870511640145438148753982653764246024605604555934444597082691650793318060240609641666190737229470553944805682906587662473647577398700308715574072133320581177254770784863639894396580466186879414912250405477492303238134706220250015305992804731105473256489666425121915401123283899904477047143053978727096450955393370270104997251722783326883936998252613642356945762497226242465563312730175180842748634137309818740612255679480204341388129836411802201929828322962488513707002036182626957331765748285997456352428732225430043319802885833700584773528035018492158793187191037215113200650234021387154510324479990959189038827467715401666452293939045923170898966783326559203946430013578883592526081026906603061720496076772665253348506351335144919928023297599589537572886700958431915671102949669114337773227931965208882555038061077220787977721907266638707189468683999383754332001718284793793841556984841700184009534282236478252803022265670621084394297450787989304747938265887210655848664375654076860947498955004838041884705791822587015111455708428534461511337737132020237973489087903671308728332979735564679214611119177249619845288918007439266359992785149045932585622235428473099709504631369023923475300736280148414546826167123505508467114385039426702904712902105882627316073040650128514164891657227603786166366223892446837281769240431120503643795298570312074097908900152234602214979661010751804607539287336465557459331891534587496771402288381912776661162228737188528241936889739845504387101181966952561186066252301413595808783991274738499180836370556323197812833946244627011421440923778313581082992924898083628548622419122601172778233330123392054066985275819169033624365172518546722485747022524008377861379882623506588973987251145942961230826532808562821711602251339551680671376249231938585111465445745976330025475147100400591629448158850487201322651500976059398249174551886936291861302538941116492331693090072663129401689791215932300282464001849806058425647099812352009535038084698010542125571759968674325713540395609373818359205357449423509923590790604288278428764143488510583567205291902762591306579017742928596451764710314712299736054499790873665089312355067827243683424799291335037370621595704246133347147838332268112979443602457898135279189107338680583520884324704025996352540239815909265930763069213677319129225444361986526699068933611044475470420812072580669263617028772463728031357784435467970142901598363233951597636637336199811072168134436946333329680542343056293402911095599096829223438734491722738008266513808366788328824340075482597457812487762509016291092241874583391488574228914988513639433432770645265505586331116279400828153544924795195981442508359025380543019520133472584510434514688830953281526248266098178346181584516953037722641396994105728468468376879558914170400546870597743288845773508396318780311162043754502328581678231628857821992364757929094946505998043253606903868511968448421992420396953786684651241995572335985139525035934008938105116145422662266647144724888466282413948609076827821612307751571230551443665094893350941306935365410894717606896068758422306758560518212351334057915352604252951913706141291072836490161604260402667437848723881070969205369380682075922194783143886889794073138689807063309004857348306280740180981322253777590816191676975368472122334137771305801168187615746342610578881488449868098411313626321286084424638595503808571895667195814595075274797409698558033584210380625580917286454928715086161735373978659964137997393948720903591879481469000591968060896726437238410335119532787478685791664813677936254132305000288843055459381535505067560256990983744938912588906981790236944150462771540023044797851628449544031065465720126237559447705701308916554835237611695439993717212177814796931455308318132544419007625021321857078898941049022724309636446284267490458814373650648050654280841361993872042165489151499456364616670583798487765241358885896191237154010993154441096356450641473327464432904347658100532719828110252489265605808295956363503924977062677544357534020666834382731897616946798729382385734498539253160724739214111040128364232240397130730548660578469092603946730965496030424623365857219064688673409459237934295877137558314279301859229213432913002668586302795063848482127513079873500162773730453367118755421799760682048271981263378224743181523671628591273126223738658957858792305682454413694774870342470367316392298264679105949036374047197509139260727653285313312601428289312163455392893015728178907273931067323385631721009618708040391353303140947187421613786335004977236565656813099014404913720389790563345733639790173132186437996734799081460972797973755501932712160317522834273779391863941507604819446116421479832147920583786756057952868947021564512501428204394048744373188696159083567558954576924782822430124462902136328579196389007661482494692691280330036129016638250860522978432619137502269033753907422929595416551661865768680448650373633226996734606564303088666356639518742037952236205161316482398867482912705378233464080246534215928968090962126355409546448059845992715631614589419635317593985261252128817425657747687933324240284961302900811051436393392309277049701284516460677924597007908603836264614579480544644105257264170797646634925762120194582745242811851358932938231928162038656064727284983026798239887176955947324511783394429053132631982688960684619045777952301058369027368482698871729288514829243644977881968253336487952735945264720926024124231114697543837785461912517229527645896786206393843981024617909098746032450602767648337270312249096316671990886975211516844700558069462030527531415074410387925582028987221130927299281218710383196867445166551262303486537760012195345594092460431089392073070073276735345589512658447449527615924463537577209279926392152400305938657934367990802330786746563860451198508563736751308495640739282385733950074362402924349811507416781480625919121821838074972287352459606155290468949213993006052861046840118367137679216557395164821511737970050353479855410897618501686139290663526184121853883202756187644201245585842062439760828016410578681650549302114522840534808281792662350328289353795577036003435629874963726653971809817572398886801223669674355972741630523302257101297170534173747865682745077187600895838239372000275735156754708032811814166478850184639198178049418874476129813902016692228931022273588135941973530383947188202109895664330129513235990351436812382251398138936546274249772546361245256978238063085908284714509169100750313687068057602278750979240946457332927011979391314196581050835409394349239662732052164503121812082624703059859135712342392148800121897677015275052447274958054674704077595964407756070371598944329127740909582770587592180593445132226365942402449804817512924201545392308118978574232549457314457363914574477951555041181106694733424374083619366321932081014684491244069479108131448230563195247489959974924462046668008000839789280735084953413393342274189411355071419994814177220068795072197805880172837873429647220443921499008570378914801687603900147377387254439151728425615821506201289268199537105228927031183439132387005038128414735550877167751954963797872401494114495874236247428849362789304396899058040542904712580491082588382963715024295873203739956618829895115748958241920123845881108578378526239333147848479710538885711045204751598020070535909098507846125449785368254236100251240159796664296762506087036681984057897808492973846321240922107107587025072675962097678728158374271343449505395164877285522039575633702757710024037791446718354219652904501981480092358386522663875137645254358450075006435940183345056458677108103963816003139198960761990478642800705815706323270937308747990998115954616844210954765837134365044990781450611154746452492585065439499397427479484173767623922712290433773931856331151694568984792893187039618665812959110132963368733865715310329523871154195885186195939584310617894062507163871164431213484023971590234554080765894591746316736904638434116195828431624415588233338783370901670144926660107112680833688621777963910848710560954577439007511221957962783069538890284358780761883874936265776924771887501281426473244556616996902531867079435372677611047026934938055826502923443646836102667161043398995922372655321339394125718298357122947331172272271779730002709419631366425371198516965116216524300065922052692489395407330673326256463788152018529906038030062135198516984605730652230567243914451233987834825418920793574025871778475539610779607378572247782291695261100666897025622754404396200467644290156647591011663767929055368192998671636046183847249585193242773587128557668372415152198953401646690584633428278140873014328536054923341922684930698514158342687051265953104027490895791794560092551122415215030980906153100682602807154167161563053530018043203073399017818440058753609094049470517072809976493340120065842563098528867803980328216114568109620615729371602689627692795942121492974048206651150872430700017377809428594413604932233129119683494481315529642452784219971996739727892854499623465840707452425884115673231473776873100686066034610377133829754008166846616052526965849558522091254973752334684514502034433854914110773157491695552137117040683787484389006174705679654316172581797569871870391303350286127709203897629588195488463408736691032509410310484831825681899214536952616071291220590675428482928077438950511389320642103964212091047018263030918489776524851543883853608467075052616481667279165317331324538791608186397853235253260788223727750685787895055260704805187848457659221870584966725360767640601573847051372596343868369589490972604604754529028107882376620578154768541876610653695715602687627526709865758925455540900115885500357699719900300745049904736913281676480825262014195441235269635437139619238473377141186445516878371744943255888671370184532360598829777644716149262113199976889836063841248184601799087699309150400605743580124817986170007799273591162232697285542683473485975174553257403467419115009820806477897830079312555595487371910066033247462128000424468361025054109933738837335381706826281737406549284446203587209369219560096533603300944533880327289264701379949093524246085493283573246281036703947965658984860550528359369304012250376298321702042268113622487447845415338418238370425758391047822706181177969988212548456771907979940203907701301696303733775640667671575693663017624501025983883149169141415408993955388245976984293995931796364266594205956424611663657620124139126064198202609756016772906769876424983846059737154816269237380028057448781476800196710053037354071474186480674119120687729762871932277857393266340100046558504683985108206221956486854378942503160338126320051173856897705659365381849203251332866519185373395302163346805923807348704491282179006298983982478390755026924314862168275091917815379414427470954479765765193555578607568008194926043618291936525828832258688430344944245260886584636057983412560867921458766861536771956794532917660687742344237832640936732159474713401974940253599149650104853884902045157738458554755906247444158036598102423830807581402554480317723805348685489177518264876308741377644578957357278261525712581123342381532748998192960253756472621363769457078569580693973871763104691955479852360649763570483063316209198377463468440354378621066436622139797347900539342562618306257083554127873192284505315195230894310258025814122907233310870037585798420489565126899182213612357526853592546949744867295784997172918559590030056867833810931783757013902978598140106549220425820003076897617810829600741854670245004383742500951285530322957601731643568328044974083179422808169874414839750010168351084287724462125290183684077414523016958000203937667152485037430591286922171832661012684484475605332662728678229678179352497491904798288859923066998192414657666225941987454488608423544486890953355292977743309378649507536417801250802630346095604011559247587544344087487096997582200213167564256080714942778488970957949221813058721258525254570335247663413796506713127148199767271616317271396695007351049688667322009543047972962376734981494459819457221642917524841783125852940030869380169569232971236224689161782531273782016877538111985562282767464253779098569830456765781464374862195853320626506359946129966405205126610208645613548531184860979876950567331912779674680291689947200285822115036951734989378717821142580826141984107891059752184636233294781622048773920865635968577841662139923863885563570962732839480595658490153833745428033143939300353878805679765614690086832986275405066436617785737092218213974343600201221912510245443887368714724238613973845518753996332281296041478490528006095457179447846838987214493613921766935148633162709261902421441788136991885361060264668853461004740335250526985779412944079215350166267755237351211119611395156473882677498395559938991004597933931657164753554262363624236012867766935192153057668039322185812266487082833472609980622020322077444205748276197282879983071566675540318778826540347361079563939786701116415396003242295276471634831259790735576933107375030564392992989107305563756380843786181119351554021677595154407417662396251778070119194711522361549142698140395788826844780743376698223531984036177566987960799161461818399985205775541421676515895556664520303456789924425249784943050964575919108583288472729478604408069587559132529990674376603553144130969908453891146748262066885437253750964159788344839631896984247058463261940871954005785388880631524754433160868664111509553660192594825006786776351593590757885802902887884852425669321684088665190834340525152331714772974484567068967784017825464309860967211759556499302355099781824933581800428887932755212500085148654837944640121660186083972065742693096707773086740372080552809731513518937490076606167812358769975917758870564495822521325187043887576688466490107785744983079822843765899041959769981322258947564971082076114488659121792148425386176757257830636889600991214039947006408480540013517419694137552003359624860360992843412317733015164947928322268197212081761291828410795496759210180283640685274106371615873246405849911086377778109653599330908052121038763260835529046346644238803499662542748184964332140080113907657117440706598040085250105913777851799906396512619741455621236739978129800295594458835406939373598985496751531081903509467701904569698910907103190969252590219368004773761602009709592517513507138910626076710043196769493392048797097941465583191280482106776743524434884003718239193810442628253151105013022999652104905737215133972984006870060707392872578720514229749094565961207418310524913602220234739986771491167568732332325048636619832820508503996165551662324520142038176451384213097662008998681788464042408703867142384810994583403490216395280810536677826645391607429151371795698503704374135802663149859602067100354284897638272788717480399289718506520182559062954681483436468994373347144267678899663322865137129232202310306360367762390857862169936705171743891000319639403487492632697948553935937220625362195114598294949842103539117007528113849524843720737727661564673069959440637908864516942006639352245724354094614275080494589873860881949651742161257771435694615616655444650104470503880671150845716974377627545046853672361383390860515392640282587201490545986031456004148334426601249879641682216089227903892266774400999134396727993300330447943067025361250934667603268633364670238652219558280480341941563791581964255998845477009907145575746112148804183396992199257215823819699198207828860156835515620363555659602644809923477757640103982042925308786345834332357091985871579706927034338536770427512129298914880718885247391244810073073893011419681048135288492027655941130820010409623011636775661029519081491029743780184440086857321976011547869588763525427026864311573902678845194017618066914922535634407043508158668960059655108422420576185278589482790481323647637021980460440282863145598757134956948172847728044197970288285451039055027525553201259703746553870752165939880925461195034897226143217994518440091177624113444927709899328031613303083001430190792710356987226998345496094654396294495701274085922443149795896442630951692892775069810345129576253486905237639959170313660845805092673476671424565914633534921222376181269346819730565882671350753431709261503638449411550055777102449067396173112707208445889266859874101622545136171239512963133411769247712519601438553350007710076916262679127604379569305529928989414463487345114520467750439288823619616485397074337942415500011763206443395029074643235583606979736984430908328922178679559290238161284326007777097455181545548965369937743333394098360877213050098246791235029466451726363132081929607387705489909305209738142115189006562004716134548520884730605305318463137637047109817843265500496788182838054045778315067014448870418799805676042736500712651273046796513358149295558623301083948515414027164338319387440531259120693939961222305009933743161149285951983818023158683987787182882079980033076198519819312368316610155447906910958291815409759784713871048137654056516867010805927002669693766070196545947077254082376951611656821588526219910577462249235388405110619471127282636153640984644343929023369808313698716794058382143873386758283896048158338558901161835417696075625997176744555485500178959440774217345819545729925390524589417317821503259080846311873962896291716191686101421344758629687659304212721420301227213230818396358086518913661423328377159315566176361944126038200195555183209301803055560726891444249821308873631957877217172462602119863238196686258976319002339159254944661538549771391022510195844534247713472154670145860983919499975791107513342890346838104721024021144335713830608381547533485987360475805686750124903286811457157182979281670787072822057817764263561645896225337135372823000449623589403025475119389258219397267243804153632277410412022086020931492800429681148328486351265212097364979078610717607854287920200270467670863567307086502804847612148038554001173963533370962944001853455681111695941272155972051147848121047821347753308818896855399500372214063782922344183263170997649702862999694235180679341170474175128538884322692145445398379465998833886311850256556694825997833461599300225804666551257688918505543817930028265027695143625572779146624139861663234025061396892522299193168857232914387241261479243235154104601311369253093670643552265425004369716466975778134817010084724883055127081507099814484320576436229049197800486554515784173393032406192348608702961103003098427542699976520722851837382858150157112897481393306180788494635185138403170523331329039863810629107675891704335605001207561888829116389792947093476442952572779969077407832038229762851128791513490976861041025032786564713419577096560697165753690363710828267385154292144941289087899840842213817376383052180846413110714375819696614920522718840235255823622110888917323904728003739691900052071523425126107288863147697228750911530202402684519648687354901202209438679769689137876999784731244721142724777015235112834380539620971476960864909172079415115149383703946276064209729020915748835933798734879450146479632177268450079577436076585671937226833451154354278060481623434919797187873613319715781697398698761727738337119226420854669448106610173719926257819835505086187120762530768535868651423071104860297905332334279982745372218018315273668546914792308950036421776500452440787606049521760896154181913724145614239894620107301763242379998177638484174514518570553076675151671303538983554339928020939227896681177413536455919949311818007122250524513433971606278553150497503070569460207795309927927729718986710933424431153170335720591259672495495044481221510617414262713029063058810698492401379482102917612191555562661442689442637450467153993482212801196709807992271321030679674624735890358604009532579772997516171894658368754484967642091533804441746472684384498109324261384351352344906197946134216624429856178836254837304152328772722344192578886980524736151829500569074235069518827799481491087284999753150134038679577918442321387538220374697775117091855788429717765497146716998089534898769032198452508804199132870593725696029770494325012491010613780392347717868655877764265567518000464838738017497664633868078002484255513560708330449739976252989209558573187779643230268608563219937060199103712717324445143773524462755364870420292929682081817413991000159837658273449425934987238087278507417150238141815895206696769556508528918553838725875434307850299674999721544494807217250995642980802791996839601992410843359308911125543881966198871900142192903508844250442600725523056159758117279781360659819726519252900751919799701832873347932544858272174147016266012623148870555270501895856863596649046235686698291707423620831395446204236010495511474883203206817114665779527133334194614611136947692376033357113058127632412841640828787994832934535308097896523626090659153476907522784518033695147216426349386809764047875202169351072417258104967137897137909978456509121241375623574826462660389111078952100262140421731560786818809604788451385103883767864639238258679721056796559470459864988320330204171662615629132991789710083769646742331935539328814132544272341200880771721924074152060331367954119803172633722347724251171344417933351275558838238806706964486772410995747845756351830929850083883645721970057196219716673580425828857189522654957962663552840943014603087425383170585388311292651318108586116594863499276810245326481869839873520077993900412578187056661138126743339145140408917868175304852568582783883994771037241612319287640583151151556142899383286518554543588399906846717855082458635753728337075413902349435617850085830054493696249515076385611957590774209813568192239816908338595043122282583054868146071652811506989608538529094878091098414809173517047954810879902727050644764688137648805676206427003479967756513724589088683924413766783530637732482415754454728914025306251550059854869531809536154236576277875558946747735647124938496514902775718725863678169450535877088897697066674594178490939724898486446511114742636502854642100844622676340407106416406491928163078952745152451538376065863190319393023295767087106098824296895414274729637748087493530315124658992832970981106896205894405935619718021988691622798459219568932179663936296840362791369512050712941942303009504220957437904673666610352637748512563214873500307826674845588435308041612857548940430009759907302317836987927810705319003532679486131581061914132997170836823474616279711284259767308565415188267754736473033537511825878323766341611217857470918263900564152732919554989997838624763623839963838484811508453811286112528201131315596850395601954111972738449390378454809152442558510401213149241819010648870725334938523570479503287048855359294585827878601282349323395086499823315201604180388092508873649653349164755142068005367552261429522307024516875080067701282743202856104346696929440717763498169900400119555392463875942781315913288987286376973982498494760317640919832943285445347361443110250525781162968655265660403808408381204633854920510392912872367874085621766454623145119702130732267507726995105002445594057605145889673116295080523594653913165320813110118037369064629564318705043760313270921685461509384173137869007039475248218228097149032442034546361398136637674705083605221007642191064888296874251129565407068700500124905984889322429013245575600674174895763985730435382343094859043002680802940402966083288903963280083983471352359679645865857439221878249734507630384874400373075585349446454794062112076166409373087807869926170597134299371494131563426276304837938718178857990817326926074308585520566383374352063531063965988377494831787325872970197190060317181315915004403713582093937305316034205058591333756325435816993782008711784072596422446754726652449857031132723658937636988946330624027034289717971275449806874644176431642377309935856316346344461241407486151585457506622648307221608527187944609508510437552727012704693101187078748223802334907118699026564546034063965550906681194861744855841962247315644091008322143209787887544099860812165184201945616861581352948109330715637482861325271155933390055001235182955658777756659633281186405576200406628604295416925348904261127783029252691380863026208288134349470021001912313462144776983978510804403464341119882124903624225996758463715484942426380618449924154719486398640207796177585186680526869992180186132335841144599007662228514651160773747872148474277740826178395342030253971821385640858223571500425412666540250722971832232421688681020596334970696024173362327964403203573949229662994192862445302914605074659108924664199890858417629621150447693412127716739852452166215965030029134665655037248620838829312184071073004245454519503754720056418717835616009026909249121847524280806101726667835407176352508238446501428326522940395069420917992591730516305956681699785970008169476581804158534224517351841071997866225928772091703797677932157117933718397263850587283882475300608416501380012587404830268495989942645501354890168172750128764288982846476743569407300988576049167092189162244416649393998392820735660472586040691395321161289438446147341278478615816394952080527945387384843227546883594614952951634839474847748001440380841866036871283970090090567329694162709815942586020692945546953546251383741815702665538030398818731107840444410053900339577851316829028040783997770931778649910069955570725000274637758354438697096715614936098908991384725318740658855558927512768667222948306990816094415592256936183799272140630603721020510093189715457684886390907814861287058072529269310010787232484713366735953903421001495666830713578377365232326666268413625431846304504262962794618581825848722681176904207541083533795150159100984947894566036466512191128549991838348616627244189368009903014599447606986855042045096738256152866705066020133092256340435419798637886465335852471544434909713704523097731353252386777245576986837840943003255381658054279929606904583735406078082272892286072829992589617609796420878641494929222156390391061593291659441604686237438414537535256611002191436074011749758531468743969280914477288177666437070837227244293188176887848898696251392945277201547113194542742984908752358264396937612074033401385664216562148030468312867592757423332164982846039336916660203350725990134705603893175190833827506387190686127758909600834102217117577995883007556848689211387518891564524328309621284357779383484878989217052110322765838181775774129153778899582967722256118570541442599303698065319941881609744097876199096846072293166875647485581253463660970226930943470877218806163452429814326762114930951448079679985331865621641319631442450006785858076858160308587971384909781780967521961531689713505991988012863190330417070087010916541585250127931606660401104154475552675855780249670314746420906940461718110263735282082027450490810366920337612663190190650069254955305400285833726342259420881546694267897621405009339886205877033275472698401850957732603949243867359550126854737998284385525307645284793012855751210431861083126897436943061105374016140878857433938149377787907800818266959655538459514783198839767909988673352879805569707071456174208505088025630237311061067292457853627106043274790215441847202910797331405160988814993518086443106630384944985536630794436607240634449594385963203245219929217001571818103143564977342179803997801259688661928787619401758615904339173565668620217800436717476464087880598122165547466768281113401367292835690287306666213341610626122085264243538348273114868080550567134363047926931358747920359255156598809664197040781009423755200464816822115700558566536945517562122020954577991156694445660025748467281095035970181051790409276637144721600621927620153996049110413351207945878280856697465497227177434538151835327177261967621817662516171296515960862195001116192206513127696695268360104728034136783329148411957168467607771759358296394694485183241475122329259657951609481436418367845699082523604503652385823374499162830052524609505462314951176903209714988335256827248400934576086959104083800347668243857339683181009689956186634923638718263443076538337208831104079675437772803441167931156636468517764497382994206574168128240180484707949293810336322710424304668880042190934364385908102250810221532870083600650139059639243268034484265027853845168060904036017525889263469338596850867988695987610190621219632103789446532004491724856112772774191573522802438043105218200384759897192573860923304186902326902580336654642455594020389881543579246225693519692269469892383982373168612785091766640578097913452128058791566122743456481440522385701452550233881097766159350605503280743632526075394914376553525673996927301806263650849586889223111584782525410556804338710679827946032706506839285735386159872578863669365191207407424092959897040497589061434586010377825616112320347585913626195375345526249660274603529648559826911093365291650581174922298517218490101762666982613802844559079168084941722389058234474831934227363824330368456823535371901033239066076791119089480031076379585186395500323561874230898455386869683051017125258880773825009156669603766787089723700245648436166601935350033855829874580310676868967595742403825622670807922603150695284878398301190152883508679655151758607755475603306945445085133577285808172498982881169943521211865520065860673867397179791201412233347588043589431865943527462758780319815938584627681289376683626144324827304371819962328372060052953329227643258019428889027667413254443788431628724883939158713617038550554381459505301800234139935629291342898284598358014898909575636782559196350724228101766733087386754126554755734305462842759704770678624290732374689594906186306266586839065152907425482299440381066105445592853972262101102308634751211328943940648518898968936704470826569849597868827743657739899357842445507450882653473142654350472509101650162412305495700898475603156310670391600953533164675541767076059687376484307058852662777938682894608323000544162854620191624483913401849112065065639604191338457402308778358458554095271401170228345924383637828786248015879574893901689220199395883825073446170156131315879821538823452921523217568763825761981038456316763006798969738426192815296768678893784008263914300156443373072092614139392366705034389549050844328122296588049127428340392198946004301973790898279383557839834851649852027655451895183957957133224273299837598027288849457246745220244946422331606707189630055195347233853645689867448209005045584674692165939876754383761274357282005330933173271695981187868495127299092204420881943551245252111080479437664008734500333460949986909500106187102923862272016388652542538723291087134822136121903324329220938766174734298226855461833968662534443833235001537701646851968305672787067364367280920171258716344003017485465884195502322130856199886770854218039571050361745642394818934384747131378076660608813005098637779140538677761877265688210421542353043998324682353429837499586061971968577661166871329013889172188149039750936684450956565709550407402025516226554968705327504089330124875778019416508959330368962963387914589301627627739903686612568667673810607773806785540569243892837145525485954946733465035269903538709534611530593246864210402667053604444828867719622429467887546892076771567157330761958511131270142036100533302643275648956583942863849141831795235247048357200410067115307830836577933167356201945592306269445274316943521061030437187602724671303260860811834933602020028838663116036018495868397305312255272271814584515336762247253083578308327612971474632715672576873450528333339393729612188602319463677529118104724565305881327089100171116218934332938308531143973266865690711190275281675878791807727109135171752028980567663153090018543987031889399531809369097628126055821737274172464487026764862199571471254635176460445028494096891025635844009692505411388634467168102765576649462137866135814666562504281388492546377776377778063967066878531188835530226486867830614225991241500698963683267343953031364897731496453069254525973537366735037443624990241091833054570103240989768978708280573986515737400114933042964637227213622012309820257835268585983888152430780149186544898813780667311932906617119286720059651344040998159035814770476411949656798554245893465166856623838909208888771308037653264467605462256264608829527316107151639236351211297649884033561683540709579243612647917576677013882127208432744597448235270263254619392316899349232490720551121354971022140905185941180013311679415110758983517601232899885508869600514787547448331871457459861851925984043462758614501114687862108068928717473297786872908115705636179082459819969840899881978617816096649299065819728828520112328925843443121666951493401050785582227798781886164592038285959420506531981500069069772547623559170975196791469725256788066004321340110727025037140226988468230644634888424377613113872462865908193644018529284554675159003868009475810448926810769865779340233245537196201576857075461340247538585426910912803405956933286259767934014188444985438135051999318548602253144505862179435264957346431863107480840276282627199437627449307793064714713127652808986347240180455028330789396510305976559796727032833086693914380507796999494478238542018775866145077851287315474603889306339589188876655246802689165847339578939155581863128664597160435368414333489709200296132113884630824297451039751872749523329954219536031317505369075419311773510193241358033470111621285396982318116533235164018845397931284387520066352349238943879457724909729066134138213127144856865597845335866396147164994821816532619126534723048575447053864348063474110921461396998010571764687776255313079988927028508925583743387290448588053013225931416443500766787649505387659311233373165493923199707506819087977914624074852378370291724786313396521984201235415701184505702157208025216241639168474683244032525019843057722129494053885301951828216224448472254842615779141074039575706781293850085090492758119373840324604521304334588383283300392929461900943557966823394832907499646078333320116854861903380291048548333684471773661342417719930596508202745532763115594381005212129278390681559307096768313937465986037505040177363969085252760769954975368798055227673046309716334634494705769547494399780976875552125833756366849571249891424491008746489206080530693800194525817985535336014222275108502981755336441435556986527731731681571194531340228652024099667994844448594825871572564612843734746299376302710320297528133782326054219776873943081896165305418947470522674258466052954120507862301685719064007338935764249927649562441016879089608136966063629961633084230536091532657158161453911388297527125414780693275679438086374756302933492329051223790308648517258357466206878109461467846509976916058791429705431287421149536910050703404356139660575466361073223652144765145419283381660432296781755926102438172880592667514039958832653307778254742529418167713948403265481629084548529391652125336950605309236332184974090601485858781565399812101827538574173384177754539120089785125152631309011192749855489761782575281492650819942246254050239827751892128122974556220497054684906066267896048249395284102243028548532750980328238328045952448958362850099326568421551684958561293653973218738908770897443944477402044867053031685711475688248485282559979028166764178689846424590022013379377058953238508482836261985771141690268400106998959838198291808177904553569463859852025963064929887476342766084426254891009909034713898964995971246208138458465713238726234169127736425860906990822843077464867865520247541063680493958458783449268561133683380019314164439465655058315165728049591593676158761731389955581488578642907420858229199488769048161772142353495027851760591899764493185042783363160472057146061254427750957494917801185743931296803005869453159776188249302863024823733199202914057160048649178333280622033846298940051765599477685906001633594030086277989010533453174851402065280349697601887945504090435846388371727837583078131743397041900139393181004292851642235604078088545644685070451524741481488563741003176329956194980701869395120067723327880042891972933779934721450755614036139696881026741127248083524969668780781421057336919369932050051222615280111059663419425452113707088516422798389526625638187574641936706554152088953930706110803944710751921040406592261036367679557741310555552013361820923614075373549426786137944594421526347216461588817984085806070191412298641818717663105522702314678505950622421215966086207677222599217176673568837270998824863147437254959662087271504987907860291141935981264123023022493703458669278895507694077399310229570060598859929520552953247571203826563230351751096643316678509665655319722121767090357032765526778031044054557266613055551319919841532314271656597960709170202197690518664074723115337958343907078661249843598194317052036267484493174915739319368573238286040368101924252211811320498489062158232724519430017989000420470078976704060578093065594779701218311332492995777227575560202167350381648620882339599452347565052679882654254126347102381555759686754368084579346956802327590012904896991313840500613320451800463889790190472679657439451079289249224968297352875823118060470927286872459528190374417177297218570296384904758792337349873596588001437841641033122256244247869385419518052432434920250733110179560982602592539777104373050671581732392089857301039408055843669969810549241724567379014010541653803720184721876586776137952244650529360555473458674099014722517471191870116290635208600325790368550185361459832887511058534855085587636036758379705547726948712922183331690931068790234876743614676591262032492455921172687260823183958500825924099912080713443081959820993703891450587291821291962605038183310164987777773771058347077540666473587257522033008375362542003057399006608767259434588878553051792572298111355877361166794481923300806518994816017570478776225581882543700360920656236674445541930417108833779560329857816329957507085320928617162308933914804894550969063034795056437504041949141872946270248372841202629186485650445693512171552386746337550070320113249687600908450136969722637331096733913042420285017145865221712172331270512475267372632843980209730813432002078935981977467309059477195003536149079115094349812845808750649475272570413719797284448870165702808805155412370494305872526502924458322212112159378874987344810663684013070603903500945432851078256598493030637666447994585939922622192593657962496187866346735098073496303920650047786773485076635355187336290047148902335794862556708430426324363598452605293093664339857786353431671043953850964283976702308326464762681809540418665501100670996633298382312674190872198625750212723399229090349045742506561299994743100307723483573500097223232791061104173491108689276898777708877370932701629371701752258303597683505075587018963762909103501675057642093287566364603540686583121979791259255053029977075583115110821063639707263698125596593750871191730277131164981894080143916407920897497677106895119761918629482879200033776264445282211729115209608147342751601398432809633371963144953568688374302691110081604824268382485523232628393481197685127322351486707059138869595613883617821041102685287159614755549058741298781882246936903207556252309431704014302157200170797297257022220305988504485119447584162144234155623749225206089829505891476178612029501296670453075691720166767789702007970630143123207480353949367698765653064725842872894467716819483599408949829203316265920223603175957315264023816705830027951154589195043840657846267793268088713852872370928194903863012522481281373838473092371054219760257178115372139405242469775366770280019402074089606075417335119864951327713854116018231488229419266650628530211380068596248907567360385871721599826833719847795955337674627390206197180377932783779334324065262623643256790332262193948542620324374827694776468955238301238341755804257309587925807731144984031290962486458516672041476947121499044911832507852874673983622052010747458573661156968622316770999644798627195017913122426818665720811719053014595975998251619335915542416223987883429595033386421271155804960810466452216768913459788254506864426316235182460251386295948592817899907346818107184923586266224655472833437053633509181870571033360763092151934617071358181071217493235600407270581057013717539045668100034355319755703431494995669713651924368389030366584468805110071680282046432405135662502986294149535664822170141078240837633192774899817402650957046151601993607319853966530255088750094105533179688876783929870255766523793717214563829140812328437760470607128735724946552180016132407596286313890036200070818006802180353142363675410468285195499645117492974440130040875999514261558081711819539990836181962256919559912581721090219180304487372344839761573665078594217656794227275246807212217605510270828558515376788072974965343378392064329698638089878875758562097438906719960911332439297094605582363799583855607120817427659189588379865566606834374477455361601460469105967923581526436359620093660072931302191624671837815709083975690396392930194931608207181747692425009867828931885013055890458543074167800968906495847569519087439952533603884497274298551334288514923559673120778954590536830115332996995741874883488711152091867949259848219451924978405005501275108131618423013567115658166984279588872800735207317450503944908077125977421182200110731254100279653709967019992129923249170034006591237378755084368182792995063356575587493052130137454051006793681374557516552796184362966525518964737962603973605063667699961364100106060542606870371973900069704952883696679419668847360943815740297205005517910810935297543098046475398659379926798619247665396441746987218713548732035513266671674634630468210666867389732623956453244581274692950526481639285346918326228710573797359926871548686965210439605399897004942263821250395761606886738753756400272073453891981470436631250741470841630349544057939446955686990578587024972853725527555194604994568951368853294400288334645353209663854604282144693191375658881981945694406318949953023469909791720227838471162561391680153095097708262549426152510725291053311808586589995278210142520181849840134019360763036523160958432952541589501277215905498173968296579107156617763179774432878830238642181166477889117521227220106492640105678079965633991008178107362336219403765352966590972693422062247963706768075564128725844707015348495376281003203473427152928941602786675741670782836858604819944116077895456299675305152158288008833908046263631542233387380716961090811179099143138773591318766488784247662265706510679003677670414849914650930872429619625816329727384679886843837060484581943019012889884658324694333883284383806163623923532776446005535253873490058063022247222512186677018367460206456232638909859242250742072215212495784877708236850688311826050307901947154974779819498338098707519778257892126521910036153169192612673370809896397901942104535831078080364731375235148840730566713240283678932477924973407132714670078361066839432308339155145700617522450806811236483041402872115052389623055612069814712381453933613749606197360724596388046207232053010892521962650728099116902389820965078142700310924479814981081939582440507996973768965744656009822807580580267317143782007253032943582735187435772753847206254424842450225215129796409849336506832741102741313804676820360024702306308765682709573270446779828233337129099837116230648375297327230760826682196395900206009998876913215542773835627845476284118601131405967886001289205907684960672492694442842802868579501880711220937480574428420480429070350025842877489658469613686912620834740066210457067038951423491595049955929575030091943558086494158879905914253266535803192640011931140737765970315784505575954830946329130026681899714630175173688003424962148389728336804818769743296717237576806456664108323811384785926204071981450009197241945523928955446905053938913098774647870785232099683255086289327888840007846512351005935806458785686978080855111097199294622398465956633455087242167909881037100916572498087002021721668313263547156417513799285354079311830596025419373076170810562406749302530666368051776295067545231280833477612087748816602753866978984587765208426910592582819374874753745528926555759854725118708789679967998178823545836600384712632589369213319128792206144168616799156484330337354460566744531343408393093400478680799985439570291056002173312484357501566804377257225059992747214306747854418629539927712044462808004562263360839872911124273530244969537313271590987728555321376940555540743746215153057998200926544914741764276662218577184783752187612018884029225124111589475611577492142378137578847199282410978323523840575311595382410149626786358330988434463083051962645331360829489585569606206795051851716405027053172439168814028637197697205035701470448983967403725633776721048867987377469924746796117920921919707116446866578243396130563293981911005319033709219257330554975505716380929917590794437017103469834545223351829101294561613360173735140792478059937070786008837396235475966652987407031553968482335028027676065808457810640442269662783260396447937993819361696186947340922105207998166751075791592148031110862397235347634308456411675283721793348640753933363605117006952604918042071156560797274529482091188157316494532549268911362697140602934817152903549623937567665023869927749765872408818046549733076703875725294964103337369877914369843836260584903789694035704709384257738960971166776581941342139526264613496205329716759821743066504640440293794172575479467051422769051081905553787169930692502162127442266302560161485393173293345751524229093617296804871425591141938872857525258137703230469127826190200703275186790472049971573740236922404012007136269191889054086468963123359007947833690822497214769250180108649203784255323675635016061203384790348750934142359945837370954080525661603092929744257713177946830265369498288590306851425008098274333738860773109813860630234154841320837607995859882572033796141550326372645369278079851197373759080610514088412876886541081597041035301745906003711928847256929574185748931519502124704838790337453604853341865172736002240059066452847265860975885535052791772284211354637693832071125933878517989700467169149697876482812513679503253309132148001763592716373139800406200451516776914669310607677081747055686714723753246849367299485574793792454376967593347256920125414846725444574763550765147967198855419671566893857039055460883042632246024520718488292611733184557799812472165908237644973538365069614040058555798815714192059345357825506291187674089869789634760625512599067055735102042188976182375489529844822822908790038555241227421058912157473588855351536971594205365176047858641970038904948688900323063979901485460822127849736120137261090383821320678807184962141113724646025716980589706906971485330964642988350144260378548713038087683933559095157903784749303755271703278903325592207382126877475550104067045519090747507828729473072424794284771623408332417973755146935280737277354139129093247803204020578815918761810015392686849671701130282056386462793310178655895088606668342908175413028586092801817253677572431116923879419308201242153661102298848706596913562120289488784489875292944084007625789206031791058511162075371602282295472247721824400819418362747458437974643522290051229031603175624199290635962653426719586312559283998650066527305387449880439534469080463815488042475751592019705439172795117180813049400515269780226304131076709649868559254236198239620731069758471344660093519288402027717901616120477140312003185585510968286242952434785469955602912775193683839571403261220046907008726613734719947925303950458645527804257340435351847518698257263913242799764886914985035366341159700876285571490057976325228751310228809723240503402590604442632714300091618943535807128154199114166469351133850436978725403108295993402810873923012167559584592624110893753317397891303072095396268189497879444821673980602480654834637139984256329325093055780554502283943488710634468771722907425922708544099690077989772616714683002094000620388551345044411122632095229446861246613465376972648314429762171064416914511528196120105406591404603471837652954395786789583980790997879317147640116282353817127445872632625361568787718174720468104332744931850687812886236947455404749542290134136043157574766027484628184641827534252063365105438019378349255347932977651465061385155770286163333493912673230410743788929816395188930154144079648122795679494488386037996509521145857606865338337140283692408126877692577375891852108152739075518426045118347852920881722362315888747315466620881943215186685457891401881195978881104764926441467627416696975374532881593044672445219480532811548383738179066337187542711039367507808561318428367337961583559580154753754732156400390504731942087517375567629361869555367595766447121255564532166262180124081841458460497858103213358298585040006463600173542923950966374499053209332924808332110806340201928989703867507856246651118513993093331516472186548533966440185352759729730094768176500412761801023212214347533820757053342039494757071385100259568720923221669015344441126993343864695824993188846570792384649153302532764093629771989381237898513593063403537845424458955020289446102471810105256408363467706110921165221218775491621920178447942114416086984645378229651054091612686924489412932168975380397139442991374806799552503846370417312181317498141570650917515946727755507578177530091125700826535849294457665846920024883491154626532663936798065125124106046652724215096673259148581574842193037013931246853624617265244015716323174416686404224497439391319185591922319433596794411127969899808547772905187812930051652350606220485509239041623897466365551009331661575895807480101286870434749260805030154063257827013783426819178811094029554681556112162150758853229237000469490366386206056673440654318987961097750455512998582753250481964913083242259479075445083529012217406566457629322511045234346978691835068185737611557993424923038607987741842915648220737330722499406072796910145967346874935330423471227089054865471766654516391541227559842731089590576159372412067972381799965804549943256067422792389632190656385486796389200301659610127483054966461731800685708840277505842803038991770493481085722298225546956198717469391506819283474858124357907196431102284299175855828683244400380450059324696344540496055304433457001825284913137541729816290424002290846013299423936752755427841872155384534474864058336100327234470103901776603249945287946013757537719872470425341956479851438770648965286995440129497459970039520510181523963249002820967821533336150993791636917505922332284971762599637245350238902325758185572767607740637358255514870176840341871537448339821602049330929337340260503163162702800547432996141081007341005785718093785519338733799166316091429590586412713364686656379575776469962391042511084472563151462374819161276860386767513247018812244271679087922631107382445077355772060830216747541327699635928975648087941291684703670675017639016145156125211284026722168651901284782432216570876976474469106313425030468035803520346424086555997681068078230371178357103226635676627962956875716519111548648702567242034913953464568459793466174112574047006325956572548671853060507181982293825539910789971257599242736730971512145168108039074248839430602461078067215132411613046999773805872411297542806809103873701848840069096065049435896386030193625557725583892625638939110390388370941777546166667798968234989588188044354682600047583826695854746964576038965528935455297925895626839766309490605156210725385209069363069724645685500977675288026226896102118815339934236509926011789650096666513189244943042211583110098317848939055708188543964402251794595531491824899525248488737802520882788671553857514703576235738229169181421383832304803541631165319498767997483507925681783117052589910969755187001070903901293161835995761334841741285177462993920326115521083521306944448177467726780058672306537175047813546762931360277218250878170445616721762248903957030416210219919390004959820910570116020796049034504157480625075920847986731334503334871637941658021555126321954327477934329632374893466352680199290906374337129151366172275627786719648814043863925401174755108253496324956234674471139891050609223234126806927232573915732267300042168111527646102625887128244550090203742434705446061097146213052450490474346317200269884585280289513448827937150699099376686578753304267213428097774127406440773480486910629576827011399535239827320269930415181665431642877030100873178508390308664461381595322151125934631359321840276712683917361516789649408789142052939372870405188396260491448843709424345209291541262759607857128360387614510376062648697837724183844976874406647667842333894169023188330785476904065759546947305880055420003626497267433908570445632111951065345654718671521578725801781537008396040383060733260250115437328969851945985786363224131157536156084563816357670423080044204448568979259174945646930701999080627664597477645946149091767780253455757320435178333821640530908461558294439023696125276117314168716717117914846780410288183736088553208634023880741620835387395350431278012256269869848294068589106112359608305462880188309862249986830027874025396282910287742360850375554838252104489426663686459160390064074690124300138223634413284347646562968782110091837528707168072483142109462032467510036205753728533198150993184652406455532401377816494610117369066509611574001890724063332554843912009270351933373470804222711690355877508726014536169934069837322437763868451964288699210719328854825312804997953419768277775583331416168863233561786082234777116908362174256666100508871714502262463340757356829665243783595362333477485061004441419433548461976098948837633787537752053975995059354512397934078211248588758163933604068419820164527069525625568515831537984796559771532090644857937097543917139120145715663149059661629871359584883668703289402699203562911866471227346301944956319879579013300561488350385334083306867929104085409462927127492146827380065328333943461503523694043508588758742922577707439849947734264803187525044156599994788313890909902766893974826222280502145023956561097165808727689859800501742863570533603584824713913192248400029529540521473091834987170717685475432310182647559057760777197993363510685357930529851666035573893183773909192221255101004891888286737158502126888365248100523725553996081111443980519244713497490587244414559028290165326669678938872243046915533567661108284710614236518989864973667094871158298979137312351809495872872721625374491378137924708806089363861890977718857024504464685849947314799896996346302873952776420018546318272250385637936595221511081895577228557592770962921938008743102596728316098136443820024980543770351593358998334836530224773722394649641135391814818067411503310589841054237826466874571851773167339131089846109469520502463765982507830014927777939089716113108225809446264241936855373619047473392647522378591538766815925868175848196297392278220203033850353614657759810419515295767827836391123879954883606860588082945303756944412182573881244952975158674331102729654475406399021678615973978561028317556081816167663279780292764301927740385592221436746385807341779758172970206885182256261991983934537653651307453636258133158370435443163378573019405614977087058204510606612787151548646802800175291478288344707307220142567572840659671361657782038264311034763896594573386146248082430485346009635025361124066742161519680181017810919593112573077302377652381212383350785012244963341455253347368276195515694239324423254851390810078716730365701770861596716649019998179694268622618302300585112875137823777642714408487560893773580029095156664234372400111993149529587669696652297406888121262430485205078722536150685328049782564545575716294432571141031952736004469574359393006471777735833561111943313684761705479941406741588178027292136424431520008946195010284567654492912692434718056247002304855356886292157486520548612870752658807624244953640447121647569640371639982258181653525945224823321951147532650397393143620657141342950926111660292831105393872730336411570168492148937172770851421310099960442333807281555461099525830783661689250259792137054981118647377108621221306907123648510375682547838362768410028923329774660182033411997348260469542393962793326453598906321496712459071681813027882770306832363939993531598065486553215314782755808057446994136476857268359996034650969552996924812248787781822514788030863296824650278361970828632965177055992223346180773950673375858891537678912041264191425076640929609563287962848811450035886518823454979809909225618518439700644199804471618838877542189865634801190585933850868927261131188764443920175516972079818866101430814912315361169582268571093813784608056545501856924938115493381024713284098046259679528591824218306556478447257038666706261139153727676307114930688830379899466317336565293131549603281227311552195009644833080049137365244276184337828051427769506281258624208075499894110073861479753376194658952408038285079724417649896069410355403845672731640427008418920069845190731936500161298473114068927105373310159079459084971280307000423043616088558756530703001803261046335949604033593441999916375372837211263466231082014975669256642585706766240199008582602085546565807303052263940268489261863918838907671046097945351653300566315232256287232610012446797212364691824754818395993836549915313336911989970780228358470549783357560365999556437834687513956242367388984859610980937539806629112709132730051582332703112621167719011176136033726580584754570612829556086749498061663580708085227763105541891726004154123795102190851654240007084063145629917719678215649721201620147155854207776736923285118490185737837171736722324236649801191635933739798630146115223318422169234954007107956911629928460033208616105104273585480293456830572907347953541388973445528549961445057619208782728466400390671277683626829516525779913640341839350564420723549198843161550768237664560787298741239314854674480041867670399250305743832103397642030028532191978552120077675397282516751349524982371430883524977347523208239342551932726135985088610158600881212315383701319368814508476940432188678435628791199818959548574128622104681693197586034837295261491321210325548982042919945568877744398285142792558632300573471523025986607980930471954769492247134622722923270098511311933712177385778087909784975227739160903180998126409680842475923814864496648905884420510767649143755043023513171186294257323795251182941501761322974266290705664977928859582849547254027528134186809601574100761763945198462845518175060734841957157568907511286990765569526003651319621193273467776671401932512234367792571592178241314604009462871063222882499400391000093361758229152775531013114914214602651412635839526394088487548437068792666056836343947059910072623955598752623823263819835207299609092819778042941605330642395463514598658748038564799964245074287495653566876123711756694220627731076649215349007448566160944053785259791884948187141081777707110158381955138054632510440896518613740514914823615657200154876497347257711240262516967844728544032411466820814024940380652566466333342842403515424522826255575203590882143918920556571895436543974243307841123062686980737854591003447221032983737909892591110540881104603602794673763377284922266487875668500043852637144588568830840104140848235324995410488814086818816117740691754959314196318784138065549677718985396908057932647058657805163261492826048497108298917794014469855561977044712511130959422018912142546813127899688392586931761783479524959859890848111901560072783218352086053318752149628112312319929999587156666957482059926520226407969481069518011214092532290849160587285818439278544255109590113030073735126067869696281073709350263477135491629528830553560849350681485316669638462972682968012419397918085054878683864301180121393502121315309904468106631788154890613017530811972856854015538077196838493920852052015705744072899297480047760284543468213134289795857554490836820962446466973197639829579532388043380253054970739872800453897030008428463136951463926603655071355695986130843633249884057521045064063431348464005702750114894801316417296066587361880255455096527439907929879450923688285565846337305374523249677842589577871780717283266303187808871660535677171743764433625611779533221274232989631176482039673948387185228879745613914329867965613154624410706661330731523071472907646609582897775611662877088104793612061222005282644349407982226302861904552412078287493505813662400532200089551595541497802647921875305096469106908633396528065376092081827989415765173081028363549897371654849345292816338841122600955664290660310586164779381791977295869463095807337429007079582069584740567196606038478987494661099601601345416384327457335308135031568428052563687455907933423491735387376243567565260519179955461089836998198182978324047918183508891841960264465144881914665942532352658435836265110345919098269873642021999375319011292464196003257026253410998144182282412610420528956832656189400055316347023200129910519608517764510830616847241468018320697988115161166488373098897060641335138354621217654302168995490618813789622786687313231080845448364745193564447664005337277582250276813765534136871057154346978794199391773178002607753783271745050352900631884684525686350956626002445700405183325909235116887749702868582204295716379793644502325863222756300010790238318901159276159326672371842706091004157308692104416018742999651971440614058072443287044961636160400323785051983995740106362580329833047291543428647801597537111775728239938486197666135256047111460279995868937806826222887229291270831367232640440120412632826288070379521694543730822110322912861880070428192643501481385828482763354682501832024217810235733999507339772384783160516171430633641397722436240254494282429857888677924804949970510888832001390931170225160591393243684361512392672127260865025940052400411224106689958605856755466221483573003606019578794832955405011631828449224743075543217103669202925661889646419159285579703851590425164938899245840154136744544472174382184082676553848482613302401975989734427352504650374618735781450585406179430120948811153299090075799209338924955726737834573328610533254897502891754223529285175034767647169575571851338535337112151717233388428644417932501715954858433496769376047412832070494028136418110555835299708953257156268245494390578641797399086164803279560087336601398921040918315305173436821585228937753523327451346508986093975793252868075923108811941393796037077532537717166188215096309708627835573374922386854206343650100814350003684400542072995403793555519013759056963515931907038050557873154476228970747771424724847514123653390511436439247673547196647498915392899669921532041954694818248061795727756551544066268863057867036902161858946353002777506948248695755304339657235194825154216184804855270236506590782835751216197304404030711263100561449603949484829948299421745587126810382529435784828254197284808312324230042989974722087024392761506725144818542295005086415684560491839198632562371537969630727982999134342421164133783922999175061781244335426256882822005041462559331859686886953946263406811906627829914852023889828153056792441598080744117004251181587689257550576182133506731420880523937916762316563849610442872870552768856574971974638041563972533268886532012003150575729420068244529222446597992950905350034964620058753242968188680500334575353830467206254147765660621312137819803937774834674646889827075263753403772786343533913829359108283728245065698432560113079150533399402198871050333307025039130083180582869905571332339143292480004930653235492870045019353618531987341135187139549790142486434468147452257696953086996449899284478900825780995174729460870840719832204145876677448247618275398744419802334206786001359179639607164833270959187930813152566924156953457012628173148673239205926049134787850137750875299184743233316208112365306363912035895607749417596240918193889369333429134421266836585079155740797981048415031563161428459698640868510766865768057109907731920771444204059272607037712111678246370125716134787901955502633914568351155469726064741146605561726611449999054298446078404788245043552272511937089262408463168542881024385060964443333894136659643001686177196214949382777045060405912305454028075287683934038268348278859178735295599945951508923165857234008797286844637590037025490258308174273253951334156289072033357051801544895882336407245078500431794551937097964396015788440319852891434353865314095793711348373849292243885465692235175213729436332095499724314775120028082138702394126359505043526057283648954445573716654606830425124631404307340426482609773190751903550166455706034650721903169077075298406049044863973057868759130493004884373446698652853382499801831223331222265153127142154500418702736738548156800823619141856952555539299254518616263122476863955669522329787164031709341236086092803754664978289786481060750724772182555040292737019726585268451752217467003882914161424955911186118433210337640203633052950458844702228835734109724966278635857484614802485933080022049578626397757021699476287476699228546934020378815124527597314266491636430792494066273307697896648352855651701807998737512890647316899569497980907836888947080637028732000576499656181256878061917778352699689603480625553850105796106865281750358191858874939594053976017476550430323674556757151418727770615543299818802363247730108915160691176546430394255744766197416678298392012274997218567427555644991231587841636023478025328993318483407145109202460520979673815174637830023490715113039646991127869196826610674454143157487380679898263379136487790951853515735637901366502727116012430960532213832294807063471406343497152425341470820494894483744936863716486808639250934504558518992341674941084728039880190714763545901910009387543305941130529930340506565793105196144371000050302302091370752439375074624202573833005470073384573266170534734682100943143930203203288015419525861073254244989397545991453494719484683511901455393839785455984130202506292091294456143005334341813929411565768350182707191009685937786144018546496051978438794438980517013853876670953744376384255437715623055693041557391894817530150856846266388182246159276407047811905614319997203260812070818793764624649957976632956343767252272035192997729153238187952519679521626413713260194753806327894116619357281254491045304772816511999744934970543360920687228102227987215195311582622953174916140662413140939603121951755314891487977151690658550078322203119766498828912374213463028503187747753665615055735536118149198419323238423159112024865125216914245628636859124959969114649075253946563452710611004592552778782774170277270475773423265975441932604364803124346517436022912032589974159157126221216468135061614751043131228888810384604689842538165297499596760101643621709224212267897221660255778623692533938795145194797310970224003939688833413590586454969113469635873578680092798289021851108978491878913483369593095444830317776547520831603160082539599717615696852561989471398200699908401084818032239902118025997815974108161288785392566299430954115639290893203437806030724701553575354243998712622502532656110468857259022282401133748450342298067752813985200120550456654761038456999865533880996597433263241846119900928415128431049007030258530293622124467666637978911292984465392431766637084798415380184554042215558297560030488099258738861818408559949644156190808231003219757987257530501634525210845414418533273024466102668623269534036779567049546852186435476993964502628990926698829408008708258830838191558583812765231048087835220675041360394964413652941331434019608086821813110656730469984799792009523027180614821528615117634342824952437805501505755977056216400555804759130798974071202677891408848032270796776726512377986700268814322801099991914086021952841005468688771422045276323115203766218541378218630147002694832158488618640761866584230320641855635324123060377959792600560435186573326883341645363306107592303119843834222205391460793521528520161278830451093768061571539956683606498877871924775389142020426922213159774210437814454076878723576434802751351849562818777045634572061466561427011362534984577394670456136252221308064347746859428086184283674634935943261448219259215283959683605812100893958950514401907640912591082529521820434981720992733655400169737046535955611809366319377191737614967523982547229100848732335982509570371937286844782301261697025931529820620256458929879736779931166568746441580171797413046394955601622122052386403917377428000395362696208858584068826642991977605987598931186895688539279975197047164840136015472728483016484761043793189641646560133918062164547700791546526374853195575164569510563379315574812028517734116771684874995315705650490079925114291760599775213899558331426006326132026074686769441181449364089818117410013520962668534802347009498855835088662291597375483152348507736786344346944166047668087266887652083107027885782770038682154563053689828508857406561423857131285212690217616814407644647593754162840042537012624463005521133329956941093782543859279104183067779420358636508327294150191835344951075958013632669592833656447640101995983993214986026585565204585344631390633195580899065001593714848181887017527181931433659556942121130925098842458175439983789045723173391225028675575326073573251495565314551056429486350045082936819956381486302261492037690975936743753824511179512211587967580827689927483990020542193383702864938883722731227541915481528419956993088036003383997836536908971644419380970234804397478999856946170263931265615037187163192903634469985459056390290332178917064157680926041114563601237641373043127034179445323638530494174129871493973790352882128130087506470225173944111560409356708667961173977356872178163267424417903537532704049083851626050400507266997030775881924171335766490543029838276348696446255340767633223736618908216710882908297601973315848174622329317550982908895250097819685263618514447590810343523663567693058441535774138447121639111321649414725153298446835036963295587283832773817172571132937655634959485498240107453949933255070233919247864809654667850409485085436878113076176646982986321634987523264953627730871345381084851290482995550413846828335647154939069331677551825674258157868613644021345647407429788304806307127235779715433784814987444269919821355977834389882015740957356348948672142445193010080992608958674230279847868378260411942184962613393986253978891236763520474114693161499791886946563017689339020806721519317415271240132203851276383252928244178985681296060993520749551105453443690784525007752751985156548448063678085737949473431629389320011778536483628577408222823330980830653457753463644153328498042263876120917814511340388185059665355326646117629172783451425699039687380391322754732955719614255964519455679383706124383005139236873452496019650789843522654739341682225839223610895887889067694990241801915839380684372608100391880622905353428538154960709723894336325729770433197057515982417003281418470370096370931178535400773002813275266831129809003108325753333836880803954613991530536976992604109335405590523035720936572434674725790328751627962705022632557897364852513886458715369808785400540699368688188033986828729275948149765997551592042484044228496418372633915005652812532173481380693885613858576732541264923340666484279624167231286168376342702035771338373429254104656446317669512913246570063309015658148527713143853600095944884970989767338747738808691061388106672264813067049489335178465111718822489678423643878675062799233373431061978341702159915424524519188754444327244114775411580065348118429174847214700866684836703300678626483352649864994775454606130837026414738273640610246908441393684988001345106381441770510942258414037153110132963923509990839245137786312529231068267690814417621094732633379536789274605427240475711647098504802707746196552490740063575707747146857339813200145510899219496567667998871304757848157278303311974361932282532485086847902092344517410154029813027867971968282874706441667752248202032735974650425440163024814652414516733379908421787639216935932030850162015559291446193128297237403777482376665965279051480313319248929003264516688597343519228319821024612134514016547847795283585283367354372763667814102743633182514274080536392333183337126809149018571129218861824616333963884224206171385489076855759668034908050556805448632443084743185855321073245942584614131717656287882923331127988791826129347762602162963014330636313183821730260231283248508320132750689941628094466275768675755528593436659896891414038700838531229427180999618046674971759726395554940036427472641372786549556983221579728581780353976396254748817047354936135839201648555237441112606495901705402895783875872993414500000508354261819016168723022790332465271152443483829865803941842589729973228921983765647817828084391714992555481955245828024237293012468476290711985858294131313160876699589895842910605088895924948101082224994057213841712553534164340633747918946381983726027674954939274186625483108613161028159188764937265042457571532883085019761489915214750827811867752257271080501802448157428852955610301205797300690961043226315273120439223191398192121093185526689635287108258971283228180864935773198544729525581224167946849706188944058190453069246584837254185445985284002887630715674155877378069992242378469019186197535658732924735726431431926329367294540571612327528760381042851535593014273970708575870148919501282032299953086273064110103270758569573740211931285202555157705138772359702163014547091605144347666175918884500696414474631838485871318034748253157010267175994879543648142107681543031108857847584739558012690147065190502993760417419632110428636992739282662819314255602111975826107737999840823240936460142165274421185389400950666230124275960410458622676743545803644612163799062634283175381616123741434855243480163252960561023238213975873064049258348709488377290535519648936542868453291443244577759696106708123821241972771381667049231472708753131233811578245940020715506803363425056392959285616858004742174341064082997311170529167849970501894518870710584608807996023303122473620015434055933399627752336005675401451297919892334743954844744479875449300189762814563874993626410919905304646994981784555090775873728727714915796942450616980279810980178374196174418481683112970923253588101754704847099542298400957139149996419312310231297952713417271928006735319354922868930408735677126434663770874964923188308276731605788657768158119495743478225247508527827221814111980552927106735149068536190892942047490211310504701300291563161549552095837278922073196257708175123074737978310105094870360864890079919569525951439388452933481091537352721458424562431006440008478239296502726354550395033936325864575130874106449691003330252722099285518474616351076488946832596081972373327483102550393954023313815774028277675797684550548384904975005997421081547224304133624505515320154786334094986511341498821131402246092146095444653728658304463478818217856525904420574594670872048099556531180426598072363825209068405042795987187140282179645466886750910561401247144620054451138013891332422060254530303240010220876901035882260716368331702299752493013581750328039304988265562131342983147503076505811056192924100009037536547935631840494219191426509381713382850357536453119599883855902104547872831857309367400841505760284812805494615609008961144022717114525756695263960159408850312007942230556771119844318769248228463094875516522668238404236494861152152850767402422802176595856720632218744463463047096039725663750875423785694977614357453864327025972133133565838517476227783873710809066326104775857638106350216440614096946545907164158774282370074375581616788864084717845816895724788059577908679790007600202476684921385767089066204155512050311062421379614855235357536570452465167584754052091205513177292364712668199696547854691621277566211640606021226060808935872507330887516132241025844057316779217362834852066596683862281174464928917208939516054946365117914577864972974200270880980258820802886796360546113959556015043435116818355870778626360192407334423579497740006317204512566925777899140771145571915807044554313822426306051400870249538858173095279073044058388699594330084954766860284205972863885473935860910638829396021163109923402240902998009369873302000115332042154919255384617279718924546037857046257496877617463253032326205393687355763581170773981647314905321473292914414256406618479199930751353790698334220599017428952460197650241231425389132929936138313365742755131792516274344816874506783721214582060911646219872966849807719999802860154462508483647560813724229419452055878059608282374305838527535097195802051391102457495899136534163465013002494777761300560222543013798131058001075459576818646582106525627169609844792523767957461393169628440360126384655015655133462293697837698882712148867329243552341192334424258173569853170471018377643006471716471568256859766362742730407678589254981939186372874313749089944232864270118223853014594716672256597098060598796633065996985572003363928489809616196426292490865759127807295950438348040421862491965454490617957428892565434996280674067202111240820350395205518762863122321496534681648626915101481380471775102891928692743599437009944942626799017560732000066676484083094539221907250019119457166713906464818347932332590183719857919988289662814488150521370687696638382292737625683273384645930608107915264026159537559777849446116992225165981734726307732124165612104255664399997777475075442691846282771794049334074228556815567747756959112446468395895625286874241641512151385508651889899568880683104549553649307328025428093011348437636011764012340442999679631637286951023232347890735268969971813264299956797886040431220579432240066773965138920735010257049014234583412739134704154429297541380367587883310888855971936491760374717713454725406279412603577257653281229166911820267258600055585575492616123559831718410243856644044158736536622956865611982899922236592757652421347090635251685366263053489087096026086506055261321988258677795429160572581114432144280394241051485929076027519494557459324651829078835252791501357973258720551093201961732887573502237114486694309797348100904225887836243326767025084675204824177676838225324259335794330285000794132136839691700284177735722416723380094613512983395031191242390600272580380198510236779766211180835784486834531683022680168329911181716564284543058534033132702269987707677615144547376909443027382701585301296372029789161332351782592192968687420390583406902240918140000998225423124022543930877566125657234464381323656572985926763551025654089143206411952258336201775856810820427726800476294458337865976832578951471126196879978541286250985228946446524845198137501488035049265680015817086792577972561336895289452015299403257161519721029231637450167457260922505461438608932141225133374649006657322874359176872563205051683324356085327631398260645751892529736506085789023412968643031503112474570953840009459642250608948484003711726713374469583759320698304737829244142323436553191396796248719174590678271770209373820276175657801358857444960617727256616975562201398194998392111555074080800318640529831147455957501890288164175309769177424729272092035380489610711412488498789852394994033816705315296290187359162037056857744044520359436509661660699362915315085320411575270488461735856193929431188036645431955995622311790527283599617942715286394287372259846485780862942486895704329230747007263794058272001123495115730621004786553938789548363143734227318674816268713103211388323723188636371658345522714936061763556088248940071927117331060746956311004211099750553728011790851213193057359971839606970419405994772372387681887336834355483190551129133759346542002176882842049561221057945079611185641855349339484211524428951328814685314076916257673903371637835837784702337385426198024438565029725751465406420817228464376819488994438147492538400189510839509931492842365949590224530043125239073248214515932804144630311508096141592060674948503914224465310031036873859008387596539067989771751264412881353469181480922358544370483419285289233225485119816801944517635135988473023032272327453838904606396526786414646953694359373980694678291761877320609441550200618997527558070407788945941776561816221749584161868500381583969135341803032133410882342257753270363332396071279171034185784829797782901905317984115922583685174007753673546153957828872950730232193756611306586499468362360115851086433100033451901060753047171247210436702059193946125503360171103868613894965640764153676766193115455621362456262459239060312187359804655329447369941909031578458015628074216032149544469168370533437311902318058425438653463180242870536703614913653181828166872558441654487136114061800050230309180744710599496723808480178362315263511864917255602711134409234187741850164766007187931250314452522970947058578107144488451187343814437059397041782402221991775760636986077288473475251364139487206348412773508064192168397824392384888662432650317662791836481926566687316198183226349611485606923437035667341879311346041487023931149992326020762656732049554752940506850401786341262808418306994197745697429430830317686316081001428631413178927317983215744518941891277570273548864348681373064252377251858264593456904789399471130259713014255355694716009602019576669406992892127842474102535302286482658363424504497052401155944588657971634737300698206293834278892324319098985285908893063986051882826687755203076287164654717745382730863527159600029920173907349734741318150663212854225658029767450418613398343779144429613370971865813777429580783910930571445403389151494671976792635048959896340057369536623638996767272942918922123536497575636395059650002575991049835351743813113584100801009837608683317412747447098358250692393174294370072582700918676246098993250737066607358460241133295855794615426252530776946007511185352940636961287315619419159401367719114368155933943788972433639053260321233241505191010068754143511387624285496031516617440290380716188203972681716969472123098481367365319981215790208730566295046559430237810272997168895716471602100442792699588362902489062898496601579179560645567998044657833585327278217155842882546148394065246378342635906055983359466666718405346061703120440391717893483339543588789416730866171078775468869181581176986441192917773499379884248929854184576025228503658239444769809141715774977070851744270723341907649528418151346671215110158698398757533444482175761102958550953817523628881644939748546440065622716119071562579585899578003975263551534295577817677852278381258588990399775894802447877451843160292122378333395886217092787656424099908366741490590268853312917664073514198720049917548455195459859864386092052662279957441309701700330879623115201800378279053672818721951115396309071576045057326273143928165558977944663164231863460120399654310723237776621494410497650784172184938679555743221003367288486284558498046830086917511599314735038514537191889818339053365780737030287349086126151566152877789388939092745079986725118415845535344694946199967854773513444665992734590953740147721936416419986675747697480322388059049714781804766353471059099064736165802316947678792901198666785439235181590270870256266094482984077552916258380966231940008835886684730401537570330019104650841697523486310372265316355768604228228845111961011237091411861000105941328103968752300319803867308193345683820365933371771736819680553437000401416123162934016920670279000258879670845018780309815012355024434427774521715795958390212936701202206805572706432930357277754236398097191193600117269924597858925509657695941850421562557626655633377172049887111663108466999976288585390250237621635674841200377745999812085356178856112534001746300137463739326599333045460272789820707212063592598102200671774833355893120091374669252551034231549225959663972874524130087350517042582436753312504503444271047429342518122374568934411962879749083165249327571295147571585859426949794002835942649958252804956076825007050140911184005871989560459014655631575391620624112498796284591101516965089687251811227954093602887804349618614727291949254090037301838250534910860900113638970560880273182211639444532324437125263884684455601911230739222641755019999275903937829573337967498970548501613563965014241411457908743385877803367407689412198703152224049457511579954348992233978894418891630317832353691246428150733522347502592168686375400417801980452981689515413663053070607204707704063076018378599129398993628338621331793409900524172388022976926291945346289333311237213346282353161581834160995845720351363080640133095379287917771878820149921626292853977116545928679106889101241141532111249479536750805747118860960263798008971060982067129052515353178359502444631492190762551786567770176624466466408778946818830107287363862860390951286090489057198516380202663626382006156158295370406227671647784917424490460569960307904980958109705216429928317581196850974633958746385465296252748344467604889611561626106510256408770105604009728014513247073699763842313972459527590904645769982855045838259013056610200375389373758360496150064939508271534637154063109586823708049674622563442346468985502844792963523903952970577303386960833161094502019163981595291006584218089478806648668109865777832469412027720173200454815522873115991210176723325414912115807868756136609499071052655496760849193254692778593837480798575404259490705187596869304413126306450365149344508766571158077173149604280983560713255653124833149129037379161317148712031250883975488514580624342875864771213386764712467755319944108321939197116923594533722773808032373008219072438617805072509636745748016106386340579173504392504739272165926352146332148684494335301441778880752641326772259319296319228377296268696659418336576151048470878754872592685131076652411464727654407140794375768033067911133972876605138797949689760224519638876301155550501977979362738510076180907954581107890928772761503505506768713207286751747248211238558303715381491954805580291113206341660059627437872166051345718388440591080646474144440339470118542216125914876086721755635070729754228434015999105842586944615541442415420494735578109941613786014073348049503831387571255380134637493933126809982803418026649573345577396938151778322537938035596803422244267138164002752183217871125370370234530980836766592358884531660136158492073132729730104376977871862698879612698945477095441156803833482356082373455882474196737104899427414760014450171113008131350460269564537577934969892053959088462785397155263383743041605592210303522571814629706486265721669127887723783514586413270335546250553748827729391430206414766253809522570449496839444400694203945645431576371874409874276509693147447223764730560888211370962117282657825493426671888143289746499437732601136704634323999136163934221858769721122349730456791209634321836565989396653363348652060145131298242115420906368947121708727268903556560492916837777814221405287314460235354991266644388110194493208405949818551055060591765322515659995840702109776680033263675990772927997753094681500936814477781284368491832787664951969751097308156371059163920174982227368743984758503796317756657882366723165896441073875838562883295914582494465948486995833763520482661143911155428248261319146625155537315407059574194447506038767350763979144101944252130730773786766181001518335568980179766428095916247327406918759441912765018866668578639584757387672948352797017498167431319861032329562735999866688429708599979039993739070978396549073319748514729400443628329141732922499471982890391484083519876261147374740072821043791589593437131868187081813120506950103590995560245402772255933239994082557608663482987756770490448589767427220706084749206570194701726232131105308389800137493116147687824061708436661767603769107274799896746071855581799353954776533881301148764538691053099566837522916261541610585711684231861805362619660647391829358919127141009961235496950922167403619343961323187314707391559409770217708664931698272264735065882665310890385524373938576118587763123739467489570238049543279863245797815136045024829403093129119656038065014751242089499202975531790120961719359882794621668051351468406632196440114262419300991318322122796129007998858837683328859109233249127132985049278632290238346307553745420814351675737425848503181102358615101440157911493978207116423050760903685246153585118138498461423753454031898433382236736821703268001207309503996408023132465091188372598780484040031633190659021680349386923843338022630133595029232974492980532392606885532564746750587106911172535097425127440233775493305057091293425623447288362515086533602659282621571618019648677896915513637134148166387065256643511719665193458073006677189109470270762688518068838326422775304322222856383606000966682358979293962924781912628100191804851944059904071447058626718810461904898266584614809612111044221398170161097232523297963935100111825240062551170022118508575141818141050713867846672914760984757717310188137086967956311908360692992517584706890608989294821813783683152674340434772630456187903582015792639152164786775123657227148157105146576101005030560381529104097004199282721900499646918870972788757382260387544358075707473889107432616909740225643398568530607264637371971300099602921972181654335314426275346205064712968235260921240617367090220870221584594913680171304073406461108602368717280983566708171391466207384119438631450514411119457315667309562215985167016491520295886781934834907440951549970154669040531347764114619146392222826539709179332911943596715141486719564450277633524611587001820709984782053462168529904676223131527122775307239112272283936067704670438169548849398673256461431746620140114551263915134534644408407370386752123296178324833893880580490992173492814488890944835350681706547961396588421647962957789126053819382332562880535211681701454495946235376997528973024952133278891072617609188237582241425408947828599870642332240279072120007519042589010063224202462003539508499816143234550683567207570529707454741741450739806238428721163557984398823404514739166285682643439728619733072548524813950098660806103813150621609485562867162641332281746077254772923664134310453320146176032350374369919809051952277955132707082153062068758918559623119357968262124071176084089364368623928137536725894352739367527785960225358934655786566350087753864209069643071977388359672861667503320266536159639771837665270952566657441965294928380644543273644564851057081289683043921974121694072702631835435365969428115264853958781761990143799763816345123098482954288786733854205482918761256600575613983980900302337363970663991884892280732371683894215120081433298681504719557038571543631731438317690769054482623412742191496800790889660654184975350864710709773153426386196805067727575391750052921838051237154191313151221737412782406396526775635305073583914439572813152066610305095804057678962220906207568113553373816304993835746312179030596765806627560761602083077381527002377783760380425323836270105988412155265365775560220213071839011857862526904687816353683424467418614049840901301156792081472188013565415325611032175734861106003117049240502900514333299902206166768519706400624556719750149112739573896651792534422473738266024370278420486674876892258677994842767580241677579235811621091159529921521653679520681701340382152835834229074775785261277810582297021991593380869743624412972239589982036860675802615594299236911869642122718436402005263786210258510846178336619310379707532888869918837694321121496856092859484830901577891158308631860874512056363278123083670576504365829660713772724565328546162646331584614572426385922851279152979064945418488675203331491880869843384700037773004152033216466967462246658983685287555277478606084754471562503952391056418990325099999601562330128857752100461421970677174787424659661004728646446595230622680105848230186329734441294691758488818502180386082667714069890985514540748403151062635862735616232844883147946448234328422475850571934929101966319291101567424291896446790313123453614368314314223851786609419995691476535984655134385034199025600940651138030237556470328587193230346896477145207551833383808264351237115330547745984225666731357573259883810414723878643127715056803744640613439964833034984448047918916343704151044858465496874271782443282948925678371084050574395345856832279743078941215479211068070822267899525917383571352007981067721944928607366816359381912626713132196577070335016405728950619033414135536065236355944453925206059015422627569107573137629216055963582009452714513752713950107253410221983185397233181940925771182018558257663801191828409336974361824437110194198284386754584548896806454464455676207708234792844395764811032462757416817233026657583787885098877943529273206400042689376294538242449055833840061167231841699066415579784968242557774827121212714668992624016668673639319215337205559695942090111805131002033710593547528091015134586716084849683330916185239124509493817902014262773893507387115802496364824787147343576941179012685188766302341062486517758759143503866272578048639884518451569787408331344702855876712873440004800974933925712316939198078235496032497269498671656092150728162937671386028144468928096059598311264955160947694759658578976845068496439518881031414332608816015592287939906982021906385032754933843630749188063682479856732296445002442934377747552476809002051894981828652056732427519329910904087415428249473398274007257067687805852677672025007002332209645962142646264423763433743460669939873442402400239103929595869162628550175061310976136446154497940595183718684674284597316111740172782670565004327137898770542818109368229737854479079762918523212051706970892085616544317918104742206653685200567899140196487886810140933770284661220046906360212001949326584063885665345826866283818849438610112204173505520462452614067376119532101403611963983873960464904430841911161247524344927122608458037662526064902273689820841344484469664054185300780759117401980095216136662452273412357779678267541086207431859414141101443492575717152573503787700431315106148595290077399041767903826205232215462226126254238791430822394581479548043174458741031916440880381535529830741224095366142649592832885945699021142870195167128210948346515622693663459297658957316678030889211545728713820692854658218380489963384763445139433432452959069820534543020938069400914259291963073871085458558448823954377561856981726481003182810512433396375569486400064099484994221230861172805316609544942285535226799786136410651429412351340051983324357286690595342987049337216077558112076126297753811833071253028113462801669209167357390421152505437406220647891861173330920273401584062847381124060068392996749479893525398436236307341130111671284167817457067987956342138356673263005256649657665402313176990086785749671559598091508752728637399131996648386066207835342934071963985290562348502668565316402410103747220838348373315648192002844862487231502468519845679423864312846191555972553513794659640889319750693563134639756895762701000455823735568782687670852008112412187656556975016737188760296339353952912468466764708877544747963816179369268276207371807158049334123194178630798056850778962544702720658383934262676372815587610049174361583268086936841685183317720752726360576692652289660562113268184005842905454693872701354783613024083700351699002550870197235667607617637960345792541456061627343680643128762793824529426775674109577161720695098089348395439938416207263337410205753870303854619497347484794167268398923770304374535450832135502085482916594713502695998057924266292754043126331383506187279753073374727865981752690223652951843131167115251023840075624360608824305816466440255700233542781807436650458592683254374544305143883822019840533297444281077445946928645914200025837463497903795470632762449964443455586189665974435522529461580925797322517670481851476999034243841364853744320606659539015698601525112728567569837847689830284122168511505335815661862191602277319188570514229392462284844602404528226673140221662629301136989341017514945004800841003338580928964651763363923183419741790984327927536766236914221022581380388999182146896700813923638398547772253077613120208073630957779568820029050573855823207070337449381736142545710544424421065612856706135456714835318745753877025857025779860693596736584691168482791070169747301498342020470584031142507999784023222458195387270639362675127712921987073441461164924707251720061440203706390077097285944734657645121172882281873971389309588888092833738086334295806123954068650974450906221128088594505412969777685665375569474861558853676800644600176159104704910322760495284616284232407335653950856789504747103160882188256852932728605798018141783505799956974589889879507614005327635914869567297686175609625364133180840183800605460077397961875968488421643674353680675571733871772408635645901063199809570767044486455390070857362406737915079954698433862822151814588406893980997310132852723937979874238973348829125965883092427114860155707965074986473233613165994480039373372356472418513965164109485405717957151483063486392832272628637534656138838658607158059695740936844710579670914164364622320049761437052320030578023688220931848523339082629713483757621243693139615366004240029863768993336257999345068265834478895677498356406808353264484787533510178223996239928032709888467090375233597634361750057306795840856944730191608773988181367424321380889922992492653406294307728482669568908159905364784573522949684010690222678559270464385117382750824294046889764361934309458489598907659118179040005566225013358411059381063237146771358491631773174843758004707695926274594207210482240206623964866265526043692109023005423999739227511886512001437115833720081481847751553497187706646433598322582977761335269766268055831400612475858608827880568776408134679740887691662577449064270344368731579178906020367467188198493134434210821974081605254986164949512588839957332668569491780054299418653669016527842484616544348229141265342858936377341230209418246129018639268596522903838033584129901873146837189147671430489059189854040934397911475355862806684092694539867836223491849742398778263502156332814987039815589899089432003485272384941863976738695151644142453883298148604419715704560908429860883495247788181936939666265747305217198327183899271810025515272124425751283644477397958884818279807903974078706146179699542794050286876437841856271371091806639272480756059438672777515490368995372369170736538976546311310477112955697608757877270332176985513114523372321912566507529703137639639208032547068478789053325251485551583165489114143863295474619654396866708958776041822687882593173562786197653391940900981622373509714902020684533967860475517509717897412338301796339742944535872340203978909182796752747813567526541814231814883098708500521399660084169571988119262962976479753369181395635089330305830659643197414438810551053152653665736043885507916918585137634923472363776395257878697627438210622216256480263621834055806414374746490883232044285210264672198893068624928442050142896883188602276282416236339114512844100949724138705871285689496285055823649009937126791937560637907012751550971780403448458040205553350110237787849363794464494070256519348761513886538125677936654613796256460401307900469109203122994827605176338334577550922048257977374557432612309306993985838486447240407967981127536620110074953104519110686575480380031847127109095001817123090662100763494425897249293085743591515759870131819881958608587309482107174227578342450360017791496647387062363130132322924981868367089413688342451677152588573676056100958707663133008999055704846459547499390706953244246354907631926662817220479374570429098689112520119311408907124284096252963939863753635176001958208732542897835753410911106672561209201777628325729452536631359553370246008357331611180535167282059276018290296045481603312943579648517765486955542176262728399121957045229704983436010412582760062720216726483028845666795086177066399671083391762754577359263303166999167198575364063340418594998728656383699233783108644914976450579225620091422330326090386607471026116331074838893668003684452434759262402999971055826452762073766325837332960017031793562871517089844319952832385281633481385814958342553404899300936670022634969456294766122346622321798591595556410277599493590413677135067873177617859364913768014620428721432686792381583964335275981871603805499091598627101482540322878188375795405379819641814541059069895537772235488597055893480346668658058847888300567195235493145338959307987984371102062423514313095824045458805531304795463355250825233774683016058727250383579988499499046078918904920008955077748967832931194876510176483341005820540246756662231405713950082868160498710182715621718738148205774683048573462957370262415467064161580528077674827019930601994817175250212521006321971147815365945339656687044432833810933994367268632476785429656646786065489889693211822450838717743883633987787038520504807155042442661245527406840906765853062247947184952281274978489216818931079140485628715168311715709037684978909968853900953943850709580706649405751924761374593596974225522731130674674979143590086020996793579472969208621650817364206403488100879708646298928704078851751493544370188822866905573261358056092530283437396144610182926549081341416977977446336319013619919298389425704786514099286925904823749797155864632284515846608136113175421459672037604739925377394902673404168809350503446660745637267710190436052142752792022599442481046308038960516939524729492957009183618276574865331183171894217222468653926600024374351803382480580963303295392748802586697626657238727194426890309861067802536698602639205012365832711961312848830871353906169030976194991188937717889422260698289308863238420836750989321657472699590006303661620352865065843654750687306614310284330030227381247604699827945226998610325412418365375646996230783805778345863863428278687519261168444808820817322248836617590680440447454960579594981781159029261079261961117218803215582528278237226308225730870214517906243739222911363944908136584605805554083615100712364480689279578627040388562062435705828044799272990320749472502822266821799471335520922733465210030349933288296507173477782706480774876279566539068613645197359921070005402284007404205873764161968248072809506379424441471750653385662208253086230318593525944325120488141120489394783721843815750763296763730075337937074382878117957861168194964757424628125256176062574477326539323712077402844414758208763413613382486880232062562868555538324989916351254571056398024429904103922857600911199738521238921244734276129131390726803034762211486386805982412176693646169958575602556735938613890459141832324867470489967685736067034463505300456384845937323907890938636391185317738982804944060107387768143430082950641759646083639260284573019626232268198221661983225216019032126070811517101175546623044790112271471763331517394657954660378141558777553283408464796089255494311525752836898839240016027621426566986311542652820588001126486344023347887132576256040513642208012945206058481934333560245047452648778889071750234895603443198220178137612524844871049563910718277213877587391133546958444417489682041736129862244586356281590278446974638683028402417972304441337842008928996793429151356432993649721176177887040107307556632605869203901382484955112355581545816657943409980461975685884045329370901625579674533833367649315750302646334086020025417566919296612853950195847352769783948023718140582344866941790561199183444502925207698291280515766795972786350059324656633951404515297335121433596316786352972702038978329114360205690246118098001224810601517015551864949059320571830439766041488131788283244057737561622215656570006844319275870091612384811725435939714743875767199899717546833732380638602513056462343174575592386410491422691426765502382631101662066435477534164293472498686788362658120495594283002115073309439259383770006536819076848002147022020051380595752297619018739472068559600178044583795632520084180069958284263922719159365598565534473943907009324124763571219502312540753734087575284039724612897227644547793264479640001440329308851749802844020777470681378620748488177776602907185583719946017003835009742253768359485288297286533435897819550761711563927363759027632498619129212839259976976691016878327031532433878396465090941165459054714635317732075354464413188649173271104771359555573788397275172696171961952605660765147825334393952543625081898889441251249509627434789108201109131968608307428639956736261148260946188288084874701068583510916502616262021007366449681189307825797888394730777745221676071335923037850491017622193669239581189625012729133236924612786075227169330047358542944994792399013730021728659731633279581912652248981083052396896789725030246508518045283554666919006029106062673430051918522043029033816094177144775122200464852275543928596138853115081851647573929252377528421906296748719517902313668947269494599716783156229937952522962593359352766197278942019314540741580233581615769824495740592725925965548064432384776314675863191890801634113027325632223484689658748827579099267866258686935039229944189415422099577076671002364778492091702397205034551929360571683797408544631627864978402245781848122936887917427406204772650399262104685166468247697414885108778562534699386390097335116761100450275844446697888464992771735587238783213976850420777725913492521346893124675055416542344214213934810814369476898016052576207639301051319653417536866543939829770862637361723854288152976894763103569316787396285434213705718889913237791663761914537729786977139112178165970794127854607809328346718768050196296053934012292385053888131323796178781751342433069644392997687386536931399157356144279269968762036707615545714003032820742980792186609643979677712604491634513097269076062859258625381701352943395525061030339128040542386109743915796895607934503506029902268808571471879042334286623585617314076048376186098616819554555280999398643814282267916662114307755041354010228984604949107083326320287169714855083269055494910857580765613156348414932463765719824802490622846867182009254706918249190651931194005519574380215936795473336689946964699726074237797882543005609587544644951528935267712677238419992760782678362553531000146864225938916858976090736930240854877807740584258902415004511313977203834440636467686821858305973433203795840449369976901456892227613349060275235421266569781057430864001583462441207869067335680159800052331811019317386115392513710356463806417747618372878626998423239753625025275711666497917347465417105921230275756854774676251743975426782369020364778809052657277234891569510668011701843478874769727667993008321891437240033039021934646505811353501057473987103915059303683203846407069933925406688486415282246251518355721689120795194743172309718308946874072016556320041597533595091559298436689716656997099961962379801499812895364092885084762839425598158125639776458268502995665676816205220743442647365714219119555351466323416384089527277339639924830360169662160978323435910437756008721442814675634462816950844554254256641161798474884176081318982412889157454959317747585415292136466702705828935002418198018316873624936950030551786173181425237670525252821867402523875353473664703009530273955157184636868948927841539602921722836013219124165846340647896602082499200662939571726343824982823646854141867618550643062204480146299086625954370306365060967976453303981007317665989899045933211302646880110858432214657591605343121647287338011892105250430055045360609644812175461186932248268274659925350240549678551459707771856788073477068750078002808501530588469397470624022160039515785347309469129546026576908242205510943585606559639104492043891590279470154435234665139736539888041674893985039094833484609675954937307461571865673445766152736459846913658326634442010598783601940305285122796395437428952448427034627093324208607927633791647676456819669403927996592372641259312844246675963961263837506971357014315217983072279962736084273016841857096769468927539990486155991937501342783046086788047712069150957296143847558948769898195304430861227537036585221925480421102591808616310714241770228396302158347568645170816786626823840528767679605294918910877888724919143262515761186066110484727602118920076325752406386042854949814272874295668452038224946744652062114402321629772609863744549319429049747223532885425124263836882827089898546285447506166259314680733253553269091945864040116055135996346855875720782750694166452242879543094332190772983571502104141063795049378061883939392232122123144804811639410470596723702742171293214500985553909509082299786748259106781616546340230770185751449360129095721570082235541485209982599681429689772342993968475463547017004733624967155533930542905450164630086230089295829636510620825090852073838142010599680315000516770533797462636232090578138813992389489701383750126706544866027964138080468289028013581823868957904807429442266366778774948267454119253020441720782858085150974333116432526000810320231239876730762411488579857745793476923523582445643882237106645538208455545420603963458298114474068149423040757286194585654104770337600114399439917111844850819689908238802054042005529929779415950504472247382604631331675287913356669005040645600696672622173387588129078667493974991627256027265324227452175280102200389034198469503153676446524407511828793400419314065752619019602923632663163416101603207438292102518573239485325530310285123944966578124954335020616534310910592968118067394814650371850583281195009864051612839971016435502130376796624384711649089997721069546907691282248972650579709970048515956345534221767450876628882179527809861429723299405393965565650962090146498729831701048559023743957141319377515458572669128673316161133037881596961920413197129581050156019122442368687086345834319437384820490620414659102665890095149909182902054664389422572026105570776676554194625306033120810262452178769789001143727778513358864227569526270749468724061413787940013228880897639614520152300055347623831062620612239784525365586107052188106956700611660556396241124191188006808455793427259724207416998215562400123963193373392558159062122789613473415095668208934751396495448698978207326104383928698894397130947046037305788475644614794908794735551191380513576448420772991810553042414916306151482651945535264429954901985393505255583985547798608870464105155760635141871603055002438235880877571111668361217970204464245685457866663497813173416300629857764599259536077838483710547186416015815928894441402444102948861139659252469001877490755263339314971312607711037499414329999593052675267555663853780853540963096376360429883700596264191205844625613583744158356819513197810485831788808184337336837765911754701045718954745245743138414587388579145085371536063734356767186553594020433250781845788871977737078259195458424707860269864157781892178993944445716550090075639795026375032277122493649743343325435070720711713156046389357099556301340495806119340966654047693411013097861394673184875413821695188183367737487713014559451661113494077472215088314097493231870118964412719941678234235622522899627256583761111448711205129254162248918566289889579904994084684524893716190590153477682408194030876666300541387754723039118311122263455595493855088932694692845904088441695643106525874454615974059624327061862654931142643001037797066195449995884229929877400404385837035159522716959120840558973151529347880493480426006208602762597423000994014033606361528851190445244883712253704464857583538114502666761511619068136430709646713257263194736196534519367472481120494616439484305789792049476890184520844169893055671659937649704656871416877069207027962674722369863548393507195049005124430651406344826260956103355805729028553420409107682369155217845664864453462042859148101962869430116223871729956839033798103635741908094913508766732310608913178679214242876003233506655595514982210538790030897619922850350522859286391418699536656405455717661308261002874730689069932790445743257621644771148457431144625157050409431309946905796763245681354465266733749158470088530444922299246947983321968793781423867334508802747246610986361701504499685138260811459413357494584220455497946869134137256815838775627691237321910132017320168890254454347298582862346639176745579047528501623037340020084739096265431853387401987635139308545085994217713140449802308757023861503335210127787218017735695853883660664379833317964384925096323668216201471469314861356624533525439963029059029866348920122872572976008151699641292975797022524889781450827505760280999112540058913107448101629443461417357281136579519153347994415931290270513206177000932604524693106161701204861151459028413929003065799135716219734782688239079789303875975511776322898886767114085887360996171871424474566255207409782786686937430071148319206887249221554179889242258692020857361286613396915622271241962685783550884231694007303640382955503509263227762830578937299693760836286795473663842160150888142260823035076614463667886530659326608675770163115865863357308846187627558390988195825479587671513127472934470699433038520723566096931109571831991478464750198551646379873959543893205925352286752248283975134780823161257963221625084205414111508780237712530437835481325280544449025314294902714583769103713303380456853940044943342415581471444914851020173159384203929428497535172059801649302767376331556610184151919214325386607215812487531251866236997412067004762040382860216610638274649018463776565189323346193300922108053414122987088593442867355428689267839394447568815587631731715024789703212345082611746677792135364431575100947666825655383241861736450858533106766211524250831566704809672653736954820703676026728736994961296604341408302208011467478686124434398220820294256319817689829552591515584410805543292458524417610423153998045624639180871494356288221292058802171854406343034277006097496368384361416914359595686754763228765095755292887937834407996502425818001578750771948942899528450324472921930854924309527515658382206840615550396345376110527853602770098098967426253020029388623887814955342855720016649949328465624326184218011303866345907706863627436068853844822400606586141107573926669544596202352056516400459452803093835948275389415920628171501821104094343580176104924209097211257160770570207608677279265392996477960652646428463810531503977162147922237284367540420376500665602128136036839882290726278822532600496509523578430527652257745202970791855818019611385367715375072313132601229774446018177050233114958558928788004572760190465771731453095949232690594629406596333894047887812826128252743954428369295297333660880772137460601414488301923798551733066060462137651794491910624976497970655089808650688187509064594706199902402587981718649439230331574861462760359615053782795062969252138665706265061847248037556370573658670650065358024212141391095355094421382845265393760203017348207021744285279242105562989756859947203582405654412000619086095971484038333868688473045374338913080942270671227437933759961725620558871760612795326349471245002298711050951713767569292163711803639970478164142276642920355663298652592091858048251743052720163504566600571307368429540487773847544985990617452774153039835000487900824280253622895898446090054579067806135015611775328866760068692773159525944829663619924437587969340200715613280976372193312122066993953190240787509867072066083955408335043692733094941381267440842403815917305343811442745830273009893927086198555181530743537123989504399848639495828461263923971335729230875528999745914552544713972252751386293725050969292184154083296918786171768587913362255968625506530966139791484366490099081378278871607432410896660080753068436930372955251464640383563248289490405406709925848904559355431629090503467103129147936400487500034473528728543182515316547937141412484215161652189447875782761789311118000386529038384377363507067535364355391917034249990814169227910318908584036832085906993957931741786168176684857487389936002919584646696632669280011067623556755518476325969997758926492323660702220242722039306568915871185304849867719346058519668421998075131384201509099758711159625906668680953645710885610439914872799991609954291079038968438675325730558386362138287747367225999070058832042338993046770834140319827576114240522147810806265545566455330045856681358691633917893906467275814787803760873229672198018724209811144249861443976680538525858058500372261554652617319325318599934619820805146569995539550469303830764766586743201738893333496685595052975672421421603745894077216907782394478406000065204603451648407944147529411771249043168058295606102883229277501939372479470083622890299370120317150937717310108508852856849405476998294619511065294126524002592437008589689298429106158312012640951224424609661091342861366417141181800002896514666686125362815124179900289104743312990454710181174642340863314321987002666543133506312566140055528276104088597597718823832560233664258083554391547809311034349083192962934606585955514213005395373868107127851295688953815741975326459256394889096872065394510124387862806061244196815021937506968835045521517217759822301315016730424403570535367329019367860329911425256476668372090839919390308785378844739422592014004057275265546845144047289899637943441455198482704533146391327750695350624988939746344785981331105720428497106909788184877693704862870614483874832134625380082652231860618218166546616339991168654988082594732939442435574508337860100294629074613429020379139246836056953525422270044085078876385249675723171470132266726569628513384062535568163109787343502337787713791168796367681228381597743139524551586708167829812965127374621166868160265756773590704390179108432158958951603402033240293843956425547423892396407014739500766573067201173363056319474777771474728842511490047726848923820016004905862698542834324522591940659611236714686845479681047410925870600215368743725157114512498431089565387462168164091877980056582769047005730772918784789843412137745707355774205905241351480806593578424714934765365407225745990890285673967415320435376137454569164437936533352259050194260649853952047969746423856406128665644619924013127343628446628985824239394940270022416430678222317943286105677496074842888086394556142679975009488327320332299320648855364407548302649443813686913566886266294189784362221033711613616442441427459293264160171041844589747358890528939524486748291684692346280052472491839530954851330371364369853537192434122140615163831494479864236233062614356444635399745725200260048588473321558643491275869787490104513500555196484768265355929515099312815502297759203749687428140295631471750829686765302734858003866585285879659749125960418739076893159268763366436118108985225012943837135189398013842659942502775805568999295915210392841088283425926073145379002363323076990288875699846237079232043504795638397874877263325422780645150988761698826889764274900943802918482658460587683181236905132420777859057972953652398373795320678337207831106927686864898021920836575315221227658076129758558425233560465828482266747977634671391146705648404229750973540040132028027722694334614892761142604144499411309512783218080476022387124916995294627277816832174911245141719931533000974496548703862607646348715097318898946895850235306131921858169595287294194671161521024428968736248737515179116870825198897933195629818218448860157836417814657974780966886736473964104268773542016564575124592353867033090822451045832093835134756346868978808864068545225106224396376835125687216149730886246738729580304327297070690480218005815062524047778718851977388553777061197912202025209262824042280329119015604802800679508753555962745491809424848135542321035724946081779055456350623790817007010940703272486469057066082865135274526047898960454197366707588300914557195623684039885230199609004799557707103640858934591373020437395334210697982508731597928003178830743717656988036590223841464481048334361762927037267674369140216356713194099509345088655443734143608195875346142640925901785756665991511072159019051685670376881343990642824015986130837384483374401242232795068240800624502027107740801382874466132719642393666624027391209740948922141806210113000103680719238416694366040724579382914868759127437181935739653053605988886715625971167361320238610383846035987470689218748344494497377958590440518768829955446656316926721842167962609272123505770257746101867991588966601200262954901700257169113169840461682886167082478253808620647855498243228459288324134630288097107381018610333586371772495626318534799171148653012478757853636866672016161222317133168033789719231559887482437118864164194331533545645747735174117108533443309834197922937227996181674231747252569743744836946199194742442569283994268375341372106697494635517933177268871767786087685979516625865445013815307332053973568630346898173074103672386820787510226917750261008285967596151334651299997214275572646856347233333690850000723012799702266440167576562638450636169679982010442236385125484615923875265732219043444468883167580021758685574821581431997375191861035779595766584847456294436876561114635888815857124407117374435701019800906750324162885989006648031918146008414052278848509683191586474400796390968965396191651669978124935550561909744805601219198297659397761400977574838503147844671698437149708245998592209371983490003237075184971697869224749253453584278228652576083801636169845342970924056817187159221903362229891097292684447645225804795483765152343261501270292321460755163737626319023463646065100550150072865275589064024055713611916623974230865991724409167335069998326125004110430536463436312378165593882013486966876217429214221036061152421329625958412989379352029097518503214437706008256871993187149142436736395268001982656361405935145836562235197572759898371151071400721920520691881660764103274213425625626219863572001592050486803742529574018186942329348405073329383142471635452271668360813697044802164027719061713721459270566173786351961299977437489263256475152437206934770421735632932516768745894897459490406175379892245539633018407003684841955988594552617883397886389777280856611835556541081841548747736341223089718239792682350649883526575795324773330422943262549859837341268568011968157313608805412644378225678944039933526938462362731826177280055852375374569006578712565400222492416961566886272176311104135566491411527658234680120948782605543957045456067392429900375427989392458391312368981349362476154880120943205142569519748260869576984750924264477645371805340485042590638614268742943766003224593395347002769910901278548979443825042435125565507405433899755352098034465218397599155218704624235198243779169681142522868615750551079105357722194966583599394046160125823977420358472452150192996629796890375720149265897894807388492746617470472580251925426066378839350496730732073621757853383335462944230116379824763938038224467153795337971742336807065365723098804328841109452606633471677603781208231086653756482553932851396871576440385946568132602492912878551690906734265075045146458687678659819107418191969532624713488733034867744599638722511467212047571156845119673222054379497453710562590442867323348600101558493559686025524587196015600295525667927708813487875795116882082949377214945701441290298833655682873622614137422616303060614773226329696825653876330505013389149320499003587899413089655785675811961361287674165129573936463397767235088671987526637487321329764816548599859098807646039681705100871715476080571576534690739832121915765811480228208439851625697924411932516920105229927687303958101219568950874902654766831643776988923688293331049229345230509370075809365199952788654810867341881771196138960705427311033515059422460259821325671246433654466892223846733112007810553457046985907783699662920246405754798246358500053718414928851513268631115354450527069651604545052814700751861223396938780213330314040512498701106771079398109470106040083442985298397117430278692138824226908259119570252400526997054469873312108801849304993132606218976684560061080606098654913432661407645776802485673387567938398881906509469417396638143723551186053678631567560093448857275310854693484527832887204134810503775372224191018074672483404556523530545641444171222210572126055822319091433543376685887917697695436835010074325326137053752560458001934222707321074061654018730850008347384506815086275164434140410232303146471826377084641448911823461051036883693409339069682068318937348430826727708962777298443515419165167335322902732029128369176289827794505112354061921189884828314234787920759084139752036900733411245071652943929946018462190523141187155973047232040335879910132476675484740671885376241331266362957307984773653285200198606379109737974195242519043309180312738166867081606857160202033651710957184515464953452026636990018943155662043404277274512630787826639731063174689127315753817140709853381573505266655815301141828173518732209738935884353844741355783017454792104565884000073039428477474692249988812562960575354253906626600050343666382225508349376440367996654169305760071194705723389577651153706896705581565031929794380414574687526230536458588444437873298317700312759357412611560299654654756979474233393924232016465548654026873412713377022002698332809481251215429213842439996821416532193162020253914301785501139775787869130185478426481137665080325643766057148407548641416223984843670590352459475537876133171886878421430716252636010257841841173975473796944491712182440926965375329106009129340298228647489412668259333568537745214741363680165280403303491959293184810713307616438443466098042960326968415583652567395884837598311472127449327894051622467026238741426812464878522468011302202489569518600996591001198658887538524703246056044388681017125609744778658308596306989113328053886080549372941076193798156406142126785993295145304707454761202625594283461135549043302952789272575138732034150706744578152690506293160139720014243699193788248332981897979576902678453126210146743614584555026904150836403231276819334328736607842537152943415393912722481069103419307584467172980970831564665268193876114230711612540938286639021849375670012337129798453590988616879049332666647627943166410306979566353066894304698275560042831204578523765175132226840018167037344113433131369027973054615282208560095436205618380069260864751825214835088777682777091324944297203478010583688584380229524613891868685879157069332390850779855958234795375051333863786825430405628625869336617845377972947444266686961225583334098950110542688387211327860411639396178903376299749083713180714941917964455847062866899440730065130083884561261197445426277493416620087488158441182043122356892938146985614926463427758630817000988579765157910193958004451301807927065051260845064603006701791552177395542416240990104030107376198382936957250162537225519564324126009489735405877283046766352910991405808758594945668707934644142851873161633067703681102062170731424530459628694021797027353538069965002337828463021206455701162149040304254579969210945656005118604396290113808357026748877461972989847523388693399693199602606478413861846888777846472860442207486687177957059844416809219819381744749583357832120663286508741089393934028676009019263879784917197064335676514850507789460738489680774205861152843379237232654279114388925838376098392259134441189987952703010239825456434860177694800203533591014351256477687055458336678897367720098793252115262589221827759822215519279885662843819293967949270756861388724380852725551492508600821857358605938531956509317090713868518994397416157232647512796567744074381408927421313925151623636267664600807610526508853114539315693455588993774356934336213108705503190707723060706225409949509608745913264202261379402777857715120914818152719049284096969281447242075320067399431483231544141558716346912861116679398822059058012199908916787061110058104004237319319307366115542139622927892210875859637921330631266155295358117819082199413002581548205353428121839522932839404368341597096267946446508389376347668607900927930497714079051722913880178033642506566346591275962102952779590459705302625039081545223124293887824165505846827998314027591200699296709250635536002394710302987160772840538597538885687371131670824029218725966754553927855836192327139347779062185964926159176647543581163358445601043218702551026966539132485674658675254452551674132265939092822307580407888903040373210148241330893426398930902092005198042102498502233405302733334639060238653512213927664565876629067745292078831986451053028228638041029499464032479476588797633071354930954932640922556845330735510919224930789797593957528742538453141839840636117623272852790380973716055448287816215384184957915378175200660142314793765173351630391573446032313882697827439611367990328453628658146693369808511455207380772085088528995839482219695515856226180099731056180256999556103352111987327649053280741651777399533573447179569566213411494579583340217014722431758232037500829788924291650862189316843481559552544294116598506746299352308843216473402546438657751988002843154383794331142627928052479820399675778707778640301408237818029997089771129293847296953083477331307808622198488977580488044215877307729506619097897913714678672295008497395326373914071177813061829601435381854948844758473597547221854960711928063277521019891351367814340190404331690217635004857588598553288044595121841787685519346207345167694812259740053586033452157482658991005670122724476965970484182936753720949788842678752914158405534207560488669319329014197214169670320540351843343726875355524532396641351802546453700674702321223658048873472734749913767474025449975029588781752299692225746684745636289360659961003353407361632390903637728033242056776160846558220103924664700636373020956155039157831755683407646347413666148118384444875820343796409518296963378365653120873308224240014370881709850371157334309998855277204366230715206545193198450192995648236154464622172123471565018250260195633319771555573726034708790325272942833835527918874449592663900652404834406561887620952130833549162008247733945669585780679464653769521587406600998426311820943011882903358556727250758707818083329010458658989291580479372989582279363152457127650028415293237187224574337320056072890412624342095313463233746970087408773474814372750463645759236728516957746236271775711881566353721917752965261757590450946642449622457204041997150296385524340623545927505299101618027983273968366828532428605997679208318474284931265594307340757276447777308153964899031296861060763290901092375903696427099498400078280081403339307550282052260278455413143255266094748651699705298094275764160897698626053039116371157808867950445195034415786847661854568826218968698138894909436209125800364689775079352197081988309320581085753129011198809839388043675067120510853554941211027603757372747174602901076751892804394714912839848746816644159993833987018547568017940583540167469172370195855937218582664991064837929462156673965801700850458195552526545714986118339114978300943518798136349787652180511589318211034585331654692887930692266893528457160596298586080586338779568661822996551455754968051602479436478566344415659015251673857836262091032018170390007080061774190453536502680752080362071468278057583164997817063702054466896269663531468453821872557331628185449299218702241616728853479031753194098978262409860045295316692661327050093216357888941862292506173136230693065631628995198656920757323428639463063709361388501391743375688595218247821835469713683929175061054179035615598489545040465176853125755141344231665046393070445869794528929070529577811627435416750000471485734229789611505171751937800294419337969005037507572305178060181699993896366558384389078198718536516055396769514420045791752467847646480828048716733776374144224742964608200742202957549970017273451433884750954940378390460171240666914527309198872013142691897927701963383142271649124913042293557999505627659966871597905545258207836993555978086208132117234898758781963395348224878950805862418154436322392720011135833143992057791181527446500856751925388665681589699473998871563052512575950232188343558686161423620164395777469798040104764575008291369979142781855196364222830953552550239698645244270330672854744679917206380313916937350919317550559417636329250225403917828631622587242639238094060513476119267698870893836617071640241305711457650981184816017920196731893692662343240041690609488218741379877339522221046841493558815343660198622386506283891637841203773198313619988353943254932105321725911083440308553813001548836446842781202996345264062350968620556560365741446330243162142554299793760353956225574863813310610752819774792848529567287897920389029380160660762220484044418110319154218399432576696377779920707806157652817881294743443509230054524214979976849424094163337554772010120654974042522353723293555764167656992490320225840048094487946385743464548906370411787266797900074014377628403657507916508666680428192910832903595782054312025938168221313365350101269106246874436363770105142705155923284082525568035478943982056726656584009824743571101642951132167624583025382995973613181458450168658891207977205730286469288558757352090692084023427462460654783176644153615691496166393256961907401829747647849452544398775385898881616458560021462548817314834980735761220633982019872343476664705258884099763630430940771424611797541803656989268189096132336291649163693502352404914067340908684873073329831376202918600033743789272495344216026117960166840695823620650992950345242578527729405455890337634584774865852075649944429329843014157560298546336836821221166241391481673281653916785348535030966405231369537940202327926908351405908624030592862505604157339778864130975660829861634001221255646595071089029565704661917384341834135032253588616019844130606471171271847529768960197945592643400553848997463195473894916643088186545795298097326683415886077375900722084648549009562319914894879562574466083152402797651218790282122623613230987590420816790695401358204301935476940348498691339935230821120685040103728224462577961434955717639480899311734830207067937267182135185859782256958893198261730142901657326464642957476949979633662848544015202685774349214736298282393131329382554294076971428758479628877885220219223715483304720551745896013528157158513728808378373590029418312545030830371524822427498543715818032502779701526900296480765538552651780828765021327589737064638967895373763428341665144654366373237088524480319238108879080737121276010371038129255079525382470835113798624037751410561701162593174410464848331694585323786510894346737895870909618006505601036018140366214107800213437293332526232459493015123741464416734542733837416835971916618471688681648968383632534707208478782882784013701575694004833813093971099132601170479719024969340186654519749377842969605091854652178420645869239849166528728924282475496255952000135483834847960588821682617639500520955033661411931578415159470487693627318956369827746389757536970428944508942077651227140788901827172191239714532341621104149248621165683693250235444184150919854872950374982738107806538631824629388601199526709680604152856564607372428302565344012208720428825333054594900136174567172583015306409675558895671121638990531249795528608408558208057788250291546481749934643554152873365211625752520329437319624972524484276459594240356442684444912953377034415267070578429161517218601898803017909643355584774027096894590086024417843306421453769337751100831989555632797554157482426036373776174842564418476102587718768605134630574947295883674863870850502371496215510748671075256851670988124487901604927845422069485041543461007388861459544726846146301812435320435733207180510952444091451186668582694315981896340867710319016837278795392267066632756361548473617382878636906275328976265912057633155073865942447644296242477880390097134400429909757568535481740553450116869674148784866942144572651597815990422254227499171431265228286819846295257476006453351136298592185588991615455251070467006557248786070349578185331146565818430369657888761010235741223972256532017172605500791536974872890031068197887633807181163760915690925387950160434968450467119832744849896636895320959241527550116459419367405164136279272303031650721335253272208720510140998184739343160593076770412342715481084357620953452681207168242541973707224339975974123342545027864103072766302529372765570723402065421312152921340573442038888753978174174991166541361917277823727415010324161498161975700246434635409463653855547796358439739194389421734112725014635533209613106495915052112126708127003779783610223388924019741956378267633347129823814177548721630517485785833803513952317564054559798121242848503079696188783029705909461490452047012402244548255140965275317356567425584726535744048418800896814427113276478763910163511243607417743270753237603033501317539012752808997764943766149504367944432099339153634835834088227736586339796834432399684946540448381359807632787494084465840878678109727947044435131088912634387488753916897213649703054795344725728890555953446782568853682623529395070126038545517920729045143798120760870560446741795318051098444377391217666143620763921923049171746198211116060087573608747665570884830012376878616797623433632155423533961705180825303303566131275494971003673971434606492378426083305734600182875683987766075563165110674910093494891239180797707256529054840201642329929660722789757790564519994514263232721994467849738866432424502615354173518549074082466009596816486306243708536257591955698634197109126472702746955699759648166178549254008362473127315936313971536645685438716024785303792971073858536270756882439540074485552419385560086209925340034870229476416834240439556116250458240971895533562509739159522207037600002628427886745712312796645693209423338952092172436120895903939760297765447996916439710672938644541970154049443979574149621141132562736068225498298829692172931820544543726124852598708080353088932551057494283591126857093282106053681650586401159640387256384296408293454879549810914645110946744174235487857821473959506875663253065063747888658026452885584170629776155268295571072573475078723165920969528331944290064635876981582046605790413214805370918167403994350158063110094807948024544566521335134423542076421152158094805918070580746089080165222838671101806578645620752829859555096897000521822556388463595499882439146887754908172103855128579813076729840518697501256425195805463226878952878531845375289261808707933551593686590335676397311593138876429728993606959337275033773754934037481305935886927272179768426916711371402165868959436560730379758665759464453756169288403715327906592373784992587126083235515964282220687397007589667962950691960873888185724459066640531622680732024702065457766104443334047879892941265198068609100354979544856216044725145754812014020312715774561549767592910924992211320831663737495384576060346976677826488662978688896372712214674791688918596345125226178957448000254465186457265044019623368418149884259630964145017044551978005240517792071923415116338402525887409610580340675635176834232709641555173113396732792645648982954151922159418467524031153773966927668783684125731193072083760099102293194098614221897080300638364488286334081269793228558431833087558972601095195691173157643067062178484241538328375767729597592345668812126342729316025989672503287467397485962070805518465844394957469560952216594771199338814692586993826380431540327711151967006337304842546164102233947653439009450668546944148203924438789527730933395974261651804023103651437741487381405704563495793801297194021603632364904901679453071568834305172259813152286072873591731690086774829560883988465445095293651370029161817256989822654379534012887170486616334563009112035780653003737740300434668876467629893996682062484438927314306391881880471239477056550540197752759585046531158556860237698545456201654195049545281409668767995893212597983013904034278738817199290618177895451967695859307918883527697958948796691297842944790592555602090408303406697615486692927101656642986018522023872069501060902342688286415385609832891432580647093307333521843756369438067001213946867780073681160948965592843339647341037530395667373540718157456256839675608830822045713864708887949854763585267702580013521657599059630431869065472668056283948794804082666858825433105469851942243883198458804368934108381004259443548138108297284379827388506832700843915280794558207787720934517819506952447337213028980989803207026143875391501847350124284556783713360005767165614994404794467648869490929139396572540658022219653099742840091053573170120377859432251980618056322874262944291177581681851144791385116986898124596900736988213304325632787757560711824546476398078392940935246484389113457310967568419161670643753143432994506563680608648575278554895198434035260181874829184152847569166646849150219497634462941292967317528822858897620083853635915910100146865038714260624003007279306767669647603871284158386771941524078980968027190346913707548521146413370009004446249427377713019586414117264884947210164856825044783409091692453415554293835156533502159858067352221904747085162404323120219660441735256146431160267101884552937619788936325512532174472901167225542984088827787313884321930491889856959050548588561757995947255065519800627915990886801071271045276506305394902483462829545891728103858272104749789062014629930853580012779199815434142846025700313667208822911988869387771446961357956233373074471094978790432319883857662707838664409192774235781118881710820040619862616293239982345073277079993024772717958141359119003993879527415700334939337422776111172091342365006098998644572736179648692853458778589978760442816388085055675292194145196322789903584440110164207568930303626991091827888818142892521705863930205374269484678298218200073133029083230972827505152935034240414427550377510552580485112833798976319606626142245896088735343773995951993872822830824721257595282951160934989499584451242981796238505657352420023561969998871435491932488157693180397119095692429752897588609821025781476371377102693290608276285876992186573103702286021795709758073589529388487495381364924549815549909865926285513310649045648691372370260870416427982027972101878394950669676693446446096862905284281696977431286085405289617412109923031035276319772222020659292889290991693014768751760401598756526478778001485189430367470798673395289315875444913098291310615370361173601649282860529813932861735189009783417017374894584066030192918259898137360839679585602788973134571315317117603337294531060238588692236474392178211116656550364701681753093922693972517334675747518838110177626338168745097596977146969573929952324718034437154649983812571838281003890873839673548120087670202022431709945685337169779905530158250624083455879192480139610403926415593443296402036186240642344308876411952012577159545964893279819026094043389638425134882364317915672695912882575893167333064157885921410866794360442852258789718385012479535662789611413222464895092709278464456817297817047021184214395536559744910890371814296865367398427582018992948044138458452104816803316974811729023592253056911377620660185367206905814309031531031260299509569190703491894380556504244158059939545133343393966965422383680227131135665693794562738859451602672961435246815566335299727716439083410916555061327249354216831018823387968316138941197687241414029836936131777428993115327605240846602033957043530169209646948702202328347577969094770846835215352673618980344365345597188702383596820311720998179942319003897480348442669635498040104902251433112866432132699808412505141392683899641534542006382301960370899595270741662874627795366936073973588659899383257788679341351701053502267265711973719930502530388770902290469590364641363798636424869106250994641016348918553686930215240778418643537044794901542872368243616410021407936786220529348434274617787743503052726201386119493387707266139467274541518116124475738749374554110586034621177695407804284437762411819033035634173740005828972776041250547728057807308117531440501161705637542554430979431115100133989784958485053541437742836056036785432926462207185056415415837607887894054383236747749301596648542414536214576142073481167305202443841571443127957194926978759467625366805834119413496264248100515171576326166006513124519862910024955825926342636749698768172549225186479204821700558317892880226160326608159163944083477315347887816547970536842217749644842560998368494552673143152357015045652993009715448699541835014421419349440623932760073541900561173875481817367666841878434152358191875300777126640316247232043382211067743381926872037071006535644566099346687432857473352812388869684053796416584190877704057702210170857898762376772663705344638358088451786179466391688154965887239753593659020594121945372347186169673730725223716437262154730314096579150788677920810252753795672093019144833709540917274118971196744343674741373352382906659585749683989309127841406788560556688055001023344004519339304890503833094470518423952561925645409874176574439336298936276000723932355521790864050998737131341809015577860337651899354293305984728036156056404809134154389150346843094299295853472301277455257707269347805900748419359961086593028825898597514502392041850848523142780315924810760428027996402816572597501825946889580004556201907946624151148271538459318094355093833297593572192914924949824298521581239259387168217528270626229766189176657856744954500840281521691073783738882044692798262017081157355647033379932107495541659921746540467934965525657909210535387636756016059536922426899638064745209115543347459096993813771733565394062945971406925098483751602454480989531221019359506720139541904640994093917894687831387746581561360246146569424707695305345244027101787387480378111480896967995480930639381166621391021745859474333424002323224138809243940069163642453262818966388649925991317404708928417025009277378544445307822472638013232170744965601190802534634057952538213675523238207232391134844324002510353451825176258589541831211815180638945448081142024495980102652733574594098080194402803056393550137121602633479189540607025780023915693270909528102466253891377980133539445778409032108309357999160626404999758771577099094789011371579596115720474763460229279088819000431499931626312517089437362112510198746625853516817530572749751465414390251107313885363516664409655487048217224083058512413715117594819297662852560822705052550884137449687141621035990645087331902898541952220941973334389326828295424994070793809152647093766532662533559370280116256976184646454114158022308832279808635468981903486569204237493986908014759498181982371589260814194913335191806509783922934509607626616226646662770691775079206553020962132270374009377938331360336070396580997291375874650188057064671358182696890531908361652715307610071736531589286124689061534042514342529633017228124447931116705526394891505346636433520667906670497895914983034942244345374688999432600093769762475353459373545988852762258591385884955195421179143951876189211422417448573558116580672793774906936830087094750767188930899545816286582467100083700872648009723324068833274130718248361838546677860572172257573775710401043467191434130097545783956016196765431977048349447274366583478779666466897654599441825408783811833462848248362935088811747382996431082859260665164946164907022513034220128878345534890204939566513699493606544182986072127675569154478403384331717670952297840679817543439433789244630961194914392725261849340965502420510330518521159647590310109558814232984850329440348699958230190695531503445597270694504231793477975042115425672427483983034282148623067290193894987259068008813706354404553723795467455737849636897380081804449025833188976470337989156784975059513568222768672707830570729598293794183860673608924564844195715545209439266475984731240760449649186327936665240463485327446814931960846875025792304147580262026400624535790090292970168031196276971715390631911598166124517886629023586438829922619885314907685744166599425890771483650251525575193731080760358321878090968407055902064128209617083896087878957130487481486734605575513057854383983468031167078110365608439356757079401402713166952184652300156616454580242010034535893312581852228381771268841372244846379435380189587908338233004424590193462084594578038440304728516813727418858995958381384241318440916928019954053435728912667696082663474968820453868898071712252270705537346558302274272195549307383910142492607156002286084268371392779468335733220303356893958826884490438150581558614847310678182097583407405863174060551911025804685384403981205569181774430432493868812806375176184222674473910169844067616386289761137098443013699409833809268876578462633506060449220754205561164726389164405701866153392908388623142105301394345763313461694557040460082033262639177390746148119583967359032490718630066939867647830226002773567531385332493075297377283042780542702539023651214393941571096490218093386547937881066956255805660845878890019195404034591148016139399580222425091916445329154589157871916093827260913410782493979285453301771099108053243041466272288898103713477924448526191496826164782682240357630875356885998367457042416330210663419104703004364720157881555020168454502837161757108838677200939516808944935255946778038628855522422350106895857973591138090178015141694497018960640201018268385332980234734307121669138078556983701330380338322265927834795445541194927636059442657184464576139272748293296396855160991824832626028786287788896991826047145289136632749093143189995718410792633259225117910674855036431736859008602670404904618943157340302216908165431390114182314147495911934356106337588443993199909880943167519062422093300165994140135715544598793632367972806066005985769319093694622784972427011736380739039649115814777295380615987803397260376276987461777217838700417430305413066754049092378273200880174016238845086837401147800873834042715829278320825930035552768877432692133067119687404717943796323991408294410794705573349633423480071339669729269273317206688860297226479895190154347080081136494493385491899816022200643286875580657539069603575790097723714803746804207889623577376922377576628207956555938456322345035121082287266041965500019582041235402324706669693030437926150000780144123450957628514471043831207566961055631202400675323627007787382275822449869871949289817179182351651671492663079254175716716095664349096239151558241211216441971830800685086329900879057982621598328822006470671771182389704603742033057554927427790958536756510836787756015600463795106050052228813481840876856692613005574067474061842885073616514337578856470159471998919572305939238197676717863978193599043109318169832416271983221436915852950552597648285505232319855646265817278140643668976636522685105792293826065813038907642015201705000643902880258691928898601874291226262643924680855806530698034552880308306952837634556437860171065746243225202855931366593931478601925798194156356185316538696623837735700279613786854500935792425767784781767923107523772703146721369467405051993795757771685304358796166175131064356249278434819307136513155777078780103157078206621570254136482996184426827287533000825189452093368706136998610399696944821391366309554592606399928890194354516041268901814619434095741125573388570973549432053726192532557874302478458256340717577042379634651171525082085853975407576095134581977838393647039044813085069077424869764007020025056941196969921066057518337652764038003242633721997536370930882077985581891304063152044525326390272576749072515382583862281895797050237947383580763579376914047630515800519607314979505903096245040818234980758965215654072915422229554893435662779057476458755016548479767322854134145849095061073690849378488012797017500748562794016764317959291142698410237468919407123351985092406920909426772379433687755667578062815979664075057130697739159108534639407618976404531206260904984214323298763589617370894701299415899972648540771885097882480806228344187189964753344866120331865894853300041068923092520371013302771997286887398280356218947989665321716105096347916764542534990400233446619592574031395971349129551368723516385352793227845262914365529612614227695187038111044443805340210650977235978588811558716379410047711565349377010032310402281632290224672444400380787425105257682386772711679133197450864923303581194762624882370102866515472576588710308332830476316405920313431230934693229623740915718778543004877014690497307926737845445039046083181737123876765071100955907071816968300134071617259494679026033708478882603567404688223576602508618749212023937099186351778852670593535134697731023718362092580926608374999509490629986766388534408863543747348856706108291787802930273995036927982955392616471615811560563484603794393112263507940211161312488632216242353934243649691312716637644998036498320562954199119194751368852940342882937780373022888523815377035475925417841867482325041611297010718309311057992822097388650531418505137435524284246375021996334120813328782659344849252594828362968686602470932238536625929039064313677909175103310427289468738397803891293349352980771573822331957078710934685628944412736275548742756265985651582730658225074301616528828453933622963098768669747917714657566487001967952807164745803117919884996101952469008138922371197228855466256392127797778296608189851514316037645600873718069767002783782349946351994187634781185663188578409527093452442783811839738165161308838705337507512463113173009169605655837763987917197594645855867375811668558158574454274846483880979420663623596147554299415015805160793762666659339012405775362017181043259937847694000834295848686161549669749035324043111628780206965571481595969698882538174106836498504958180331936717398286873801901428029804802948797972503002308144835235902061413600128066344457600601447613394377691210098244989371923513260911381882456234881687875587736997204124878594150288070371709607242789344107896947429077091678058101493773502847139158381695437869897235236375313136790950446283497286889221684993224584998416576407083851253443703382080614699832075823020317640960055365582987207231833303453755172990780368976259903117024503510770300964134043588353643610087392090712241833568109549544584234744085455263297100557251530148550598201038188160384311268827230326710667401534038185589762597117066006856789639444469780453185232431331300489069210860845226146657845020124729045696828165636208383941855316063006807291522031604810606974021284219248337962191897292545311397628042510618787994609947293518023363537827532306039815442930023341976010600116887666960660520896288868839976479150463500289099030941043038422848046033469093689948800014414937309862518109198286220046328309247323418404357590715161974117601466621076429733452841246067806544701758257211654947928021191129139207252412509060532756230591177978251532416797846558097312131839615214400354214353092301881541501608102605560704791982028641429021041899532577286917583233104799495430211171371315441190742759950815264640375094064606321591367507650372172903221852565349523671569229969373918509909997136660952453533785104336648094191824566462670442423186048173686132655821582507878628808856980251202369594749153786080273347568623364150187124797851757952702565937573146397284049191046689607752145779538507934585906904169674544685585459466700710393550277092705441915389514370888912347584944237637882017459273056584617201791615019607783171551594474743543932414328489167890812125670328627701596784105743593956180986136798836024351459274378254716643643022944378561798300810602661963807979556319902530426809472104747308811439204695451054994077868965112317427421933927175925656957150145509230340343563989369515594319559380312002195913532843884432050357519730877118198153140574690469099835786560308190280006560863246651149002143412121856674956547221085311143286472063525319841021731775903726932323346482880271894930355344985696316780532492716011295687528118305378525365428662982307121665855056904814498754464153970812921882275323902845906824597031513147499010490263752178814261375781287847436515246147895280593734910045730613370653253393065020930609024720484560187301688529961160834409992120457682264060083719415517594497332410260511080056179403881357757086710354434612111742542273974493267924471871770026680482131738357838235855346787462548069273742975027738753077682976195705841608824582050844340511534905518904520629188682668982990230207800843851015818517127314014311125588064707446510207543888593198393938436520267440007224933130564144160504585007955749757679775178560848029035568046282771188335032752625298185146631349264528518600414597125446053574110685262181405057155569268047149052363442545756278785056270417957633111198880277693277929888212712573243176772949743761729870747783583964029133459293866985250899825899203199974300391472408634888582246178045125101016612631110629026186386782621137843699643709280905325527534087594279021227292297215128903326945207672938922567078262853082228156013007537397732642295784756216937437703367115390033605361851726856323093016949483843705641731892671926660366021933138105820700856066630008205325400043933714398019935847788592447763453746112280671367968602735322186143226418917565221194448127025532097150915744434852882097946558301432602000306823859698528175924943230219753707715992103797194306880126828844096278027996321730551898170733760166512669771991314540909525726073453885331745454676828754317701517717596913762678215593384554904885384252234028472951603932767526323225071221136937280533154550756344693951516734194499782834807656922641069717599915833130870612407095314837961593641409325865505670215001654117434092220571063930844565997620557240310980114668264507274397062221315064175142519009448307394855137296441637778172710685241554313908336743078900250381620807940619016061628956219684502032109880231811393885545787823950139412266279699469810432153115030638872111053227839382896923164010112391042481309732478433787120143491615452637291646202858959613248963170414022841666294828052993300466478541742786203067208450307346852783909147261733048654608980941365370743725397934506223662682885402553981574646469813091314833941740315466499995057985049347989882796707347568982866419775762877161718314971201576080853593150088134417585217507327382479187640955183798674342641702179857619952911102725410459224114377016553422789936720726686238978547123898826736734591638088820596311298748958967803635616025749100353643966475799726604344784491265665384400364404146956320965810874176617136017282189984573173605214411590641091096608842184656821375387268325225180187002407355187727274721179693923027570001022822815131536044425903471639789752612082091400146783340755779474184518567203205477063614864552215574059871155132028003454704199904342804852278702593893733549705974361490258479473585833666161753310372048351883516695438834101541592963904099967319531041208187530181520420049666388154438500757008447854040376281745852433246222992464189781801845696310735398448614849157292279390877886408507960273738246824642334453793598075404483982135464198093888225738147555647265840231240509958275971928131709542799003685766338838050830478309067495315335449539699206432692850391999891155407470583644466838947315843227819818926730920765868720684291050746079117042625817772463773595675389456434075121985244723085615658494387675628877094648196726174990892519867266030481822605733305954956316263808297090348669942461350468915767384942657149033417771653529264228410011885807927225501267382762067618648281077228375558947609217880545682787521535864091790399424759789221239006308478110731447127143244930587340087060171764986559738039099895634880870148199784866766510668572034196339190512164233728278603526425746831527421866955387954830617103293783982267856610678323828265879685328542590607521969728614303073032555970480211810760537091846725378532345274972532419907868046555782782278536420932918612784026758663836610400444982442233516120715104220609658506730468546116081057064863732679466542479724544277433490479792476577706428253479962952182157667766393972237017843201579397272280474009921894656291218869327474304871321319570980405032816460835075868715774336333753181965807699662797769626195615380218149340233252646469592813132930829248965075198155962096234702072816957857936768946727259969855542450700463501492581645997106009814647697603003875266637166525398803467581008166162192969613014142006055335719252951132737293364242442634210724608028978840183729349321517158545229146728925068141688300789729044386458713190255090053754765488802425164346225025847418241464166388275660705967449838833478149805587341502341524163246338303379732706841363333971011114732866634659437952717672551542128401739414842828011976435223257806215484919641785910098435302434415069520029182016262328202887823760319117070462856358658225620524903076547778854107709011464515047961194805858583868604735153070288737755187037362927004118650566979158917567433210486462258725070343076686686116714351857850751615539925189597793605848097256939271930792743566821368574224661768632384068950010238044045841127259990920246668326164436238664168221944400710576159233011199017664650367310640761196169072927949296339133279535476419727162696218649318724768509767439921548152966294368335092861719413342728549968495990151083646641207957965040320330348301648733789561989461199702862617007724605686787279534737255579119873205247030022127464200438910424840298606389467514618045530408653476046656765035067715735491052209587294420492829464932371013270439801755205410618765608141116636242463019567881450633255162740785816960252740706787179382865325480546245829456405424079586922269527408745879140265123555276231554711991546619336474413685553099966189917086106586137052960947191519624312242256534946665223410248062846710916618182695524724577474239029622754468199074360273974394522081565430259254290041717181383073222996761569322825252108855263357305603689449584867772801555846911468252220688911273592452783282891628041072395090023163867429200194564824057273492841493332970426519853035788389345352247226568475120519135585122166560305867726382314978405208179890171556439172195874155641013019697301153526922279752416274783997259307171058565662694477896790850642648008026550348299672868760890587914895708547257612753172736082142692766406464757510402293933351971236543865891180042317981966432014229442401654580886924780049793738379818505813732130249526802177417011289811348929255213162812442131882942478150775377439105282335968450452415567544183846517762376643018487617519794384344422418189996123768515939224173061429408232573783127248570454798597050607291314727272132486408026491007737535546255992403819632866102333344046928192970396784119718536167610462324251563619089922493367421914029767091998932829104490547818801475347559156036761512624894762896524724709562467105095911477659790901895684777146311521331472894612108129988015265340127639464726854822326549160979602791476016101409023681449119195430230089963665864120229109190902305185766936000086500938501293192784527232522551971293019235113346108504490439032085188409337460117233508956784781913464244152424239808611745755491745088404808200900363316780315224585170298048319568379817204255736864969759527203362643477380353853977028410708528769357171004958068029400170883076399997393566958177048328173521662305601860407115425436643056764875247523340338299804337049188225281434207359322230510957559255577767279594141169732970355101030869738438939586464101496919325826327666001883646282302163908082768823434150999513456417067433112383129452280610071139854018023137671649726850489712170885179371117195091648642270437069183811010660305347986741804013893759554863573273736265732214322786999772370480409373126938673806510048519076488355504103104705380479806614237836055458821053628206497192147852270348574972634893793534037590235464857041199595244899328521888890303385113968634155407374834214226157837431898657644007922410965286799478127255917054713235332166190283129675463742525971003005571031460029617751114992047173627155106998350462588108327503375877302133430611648702235863395970051617508367423827670955484905966057841194144536537055799215047468777020167342940248969417760526928059477760054222603366044946789362544221699113495332989869468204113001297973283877037613438123531286190024613667768078834446391807773391463983915965801662459309799014085313374620452710594782501791894157472497891268320954701480578214454963509342118762729354204774064643771145014214050646485546492705800755647993553016238495880561363167330108435548576729659004260007713231647374506568778902909162651706490677909166579253626405095682599284509041266520197048872096511581539347462976551356693954089922549496300533059269434465218707332190996211377737545679831511771815225260557144638485257177006123468038218127002929284394932240793526699678840050928389689303991705024871668219830958057396054892359448815378652280456559895455476482104604953527036224659968608033935085070549460823016493316787029105799320200302763352781209225481273009526424372350505056964803393630587270652400110362588047977633429299980485352766680089740752175610285179924077611050477301632099564779558523154690281107920271718429139634857736757927526889313057417885291397864899717069591462412408909506248295025911141937790954646849275687380585437883315223241869159242926790538700573952772653963075482967827535486377511479204779931464098846814939291612704460444024187839822102718224015846195877120593869860726751097693526844325972010607487385359770094026124571912637592240353323634982543982997004361683363739392341670361787679640317202398348589488504027154487982384718924909902250939020923696081913584302844080301198676012591440538477265251204077284854289389157418210871408273445255124864684127102399155457738536691874873803156500076183542642621610829340405746252658162550176391721955683343586200934576038748888170022977743682139188722361142116330860205985814040685681836016909797450160833365241668598745106607274678312195788764360396054973313412115068783100448960944419748546441543368555014304721872542686069472462561996769645415773531409740762044135693579549683331223496736048664635522708590812848917713304106071304563263515339773506818797801210267426985850907106748922416204723393835625860888163194051312159873275773602637419982759008634941788578234137209038940978295148945250957790943099342621622222048590808071619734186245620065848109874856795053657075042580415947265442891853284820299214676661967303167304280859076556803062400192428422309017323436554029755733464265391519295406870521303784807837673322763717786372977668341168040506239419099442819644317711873964737727243757161847067845837613558595109283333161452401186887517848002690253822716832688586965191449920978811586190682992600001365771906571235557745038328881089635781730669912467930779224709609050148260797130235916153043307568483214868952679291146316613704619210542056983689239461638177568311822756401428906692955376334358164095285711291736569466177770400220093614961509018965090512936226765329720951036066642419956068011102747143805739223599870675863783960729525190119739857224611245559630278101795116756320691095733181808428551740674681503418296796503681126794263457474986790563306060097432094237741211437649611060865976979693861746045022441379108976054287659401127292519562884102684480442263365831672316599374129898655088149165526383323755685049444310032711848198929267804374887527259444587823502484531205040592172343177872936508916281187446207508956416051781748048401554845277556475467443309717912297001372192562316984666490155252816735609984457829506094573527814953592271786315262981035548773862542385739552207447083666193878517640890367608601419871690171073602211018593696294032680952913426317645406878784780792040531582894204101597783738791933666560810204731050865148336107871894976612014005252607177815147263546430155794849138323868649284908718443882681775684455892177020523808320940474843294860026362224580101696760630468757383311229830754372966086232634059488716953746359926005813903358505413463446414675317581500065272082889778943167538787991156999039898067833495684555388020093328813330003128698791689951910909183199441545345500354446629334545247006277917058325345326698054331146585887156196510328226984276549528911442717276852803668771868357547321697209439727133715402821914874180201704651200817081621182054399156715132450903058521953165786663775058036760636760372093187786981941096211805412801001798500569041312921837213092064072211646706820683117948710236504380366492983706226821297279669346681703004237120432990229848966126831063465526045999769433544042184763389419152868057680433856119953844668792795743232139773147459611865325916275189828248026898251934683746319651596061469977636617694026889815118557648640985528703926813617760034502886552756436455121888488985994014922751746081366892975818197701478009730557251212523524299874523649438928829652897043560596624299192967268053544598632814845651409910577136221623437157177582566699367387938747908673760575351163785348876763009022752114287279371676456934838486644740657387289572820748224184640252235087342824189252924584603878913927388566848687940768129845950122108630117718025412561963057241207665187543680818170666346714242033671729295849008912457632435815091254433576159930429907136454158185866645339781676746773336020674056705456201823296426062248646744957849469939263119051047080484495918428344159393067554504701879095511154342663815782755030004212366140417181504465223311769543740105692943358951081704586074914713977786568219562846813717374542744405023883530936839216456088797106343470553214235874923717528672226345580676472939573447316500258181537228492826173671775447659085049360881160963641855765416550080356628707411206105726431906896031700864130133492931935911230125191505627298032815901607913022457572701654874886594708997773191531918127051393821759155447903709265930480330410436218823499031588572817725608266961344634627797783122200431721172289306640426422551932164651786041386549203092023840163235243943431905714869066411352217458887425609987371880703304698304015625998007787663286555640014524104085933370092669104237172777602230601564355350292340448681273409677659020073655333515987890782355874223983597448316472444464680019440713093012033671737302859153128992662089353902186678835326676722367550073808840907694156772129656166182799795749463331293576797016037759757674032089902533042556067287660028414541043176167608145415415301841793535810973262124978070819478757496216420686909397073630073874425113388650734970822493649287734053819293065929623362967126413909302836024400067752419357968423788024967689442504452211270562537838211336134139413795147810680183585504395642216010837931029603672610654708810347417271141205182498035139800890547549349344319871384291810813634119281050170299731241515028356272741958565151800800970730046679428061544545740100674170849778215420221499554516653577039914268683275234638863551987456517316422431217208805075354769858906454743984317644548721754047570014801178011523065062343602857804056126252098926953004371102817487437969523045688149167387280786190063891104620745936919930911811306473375666197492571101421507270275967385576593656215304011052376266327404430936606149555654820961733705304080681510624173892753847522795191369273811035180961929305282298437091836735300739680725689792863592974806315911833357360376027893236863879900199282134147897016049710860175473821881934623684993233805343196510663435926556066972584431986687092850693084225129701611439993897291659821584105129722331150363743096175270599675728885198046025111075719689780825432382794399268643732359699519341264905872762881196467076067638529682283021813272132867950538954144111699465027405677353584376482877200346010028617407859194148793006071894534171100280325955546773245457997208305920823204992845366521636288248386608685553079821329735282191634155139566164523507770977687399759702243209220244874865709714811800572017075789022597357479243764448982845734959737757524026494020220872319597777856302920650568047701174075074892741177501892154864210127296061167225177901824493609404807764857268339986311313728131470129185900301581972081025982306359345248807653758749958588355373707967021041138824417917869550556156831783171647212969913862804660787452541727569397785915999270781975673250109858800080170397825660547457015310132269244830387363653301501941939673987555915971465487782283204804197019279821814767715039253854692335078970403926147438267820380935230697976016861188910990695733960362068223003599330784580135739938938047814241654892875880203955103963607276971210226816998332126537782027254585709307054692256694442128482960350075617382049946561901795553819873382032082743774213993893330277699491170442692791379758701032270844847670023698959845176355527821434483429995626357162593245349402475588171506165826496083274222578697192757720504827020489670584731693674255722063725201383244650722203640278638558081578854594936928059455822808076584254803147126007070360760252134381973956350963953523421436765075334492776017021467494960941144887716637689606188324189734683274373306491271591661921431740525792073289614443516043588572668419189172052419153648068926456072937015441163489265856185860564238064040255750806697146401367257278853839400015753456307197039212395685407399240482774438995878552120872486703527490564808108659788267321175708918351575027599542309390044701393209587474827530245813549895875597325435148796756488868349227775106672392420132400109901423621114085363810395558072997390072059760479218077577617788126758519199512853495863261148120575535835820667150889452848693910276440683215828003545148126194766369556272006555643300894811432328321291636733049607597990363554987562263069185924146501886922897085915389673808472385148811784003346710731753816201024514391147895616721385836060063672769297618085829533269088310867901386032078805098581634059337989175272806291110905073962666840800281395173971301039945071924156542535327998451278007913034195384414639696041698663765391494157939731721897007971924170459056611649134222200721766545389654333198871082950998484740614845993113832038909555363459114182146448272471378471196838233576271242560511910453570529903010394151785795186907615441565473251583215895122832637279568400125568273564783847737885207126567618255280610335631091200447796618429721923557929088879821966470739731213678668433039629494518969030197696366972412483814994474065914966280253388512116242970229945691709369415917630531130527643944260418007555145381615464639139493197567223786276460118533125714392907371777763587011494237634662227410928092018193528384300172557626488398991814126791636123546668899805606265926736753893941218439392519185153444409450698397548711366425994740641191967376956103978510836981387450184734192366930567372402705576343674289172752058448849153961439084344676324805620381601579324863634039440071502950146699439897636954262134772339905148828801256740355191301784805214954081385487195470619070924019738014728919827315672215628045349751365857565598152182224946307317635505803354402074926123484685491957318385304412501996031736423755557651687457036510197795241382132160886531233137846941704448708619583082095415374487767352156091003907746447336677548619871212090332150919179960225237235072768730042412241310406806691518579238503475378751061600676011267672480842000801211192051332988199030734849171712565914637557678459574480508895789529314002714601291331977056362037883696536088298073559474375248923834264785370481077115508948612154646754187268656679296092719613145866419847897218378374928743209852480570818052248845645464369255771771359466582922496566684953602227760240205575725294066933823446007330210190111813492330662376980575536382660552367663509822304335790977772133189690207760869732531977444238230750338327880600813292411175616377234782614671132677472191340636440677243673400864266845668352904041716423753352931157736763264807076067422694377105913899651452046494525424890788890304783557390787871820292800578842991819034051399328141735263798056812448465035353212050006326815659563400602356196263781110022621060231747179726944812325437011706994674438739390797598643834927041271298367373524204565116158543608328314569926100508832361688036009416852353137490298988230699434950884230859087560219459208381441204556307841292686532018724940637744295147957881238184122090948550489992698771589728436028544370688394422956695590518707179026907181568997150987094413295279384518798466961462588848075574852317757230213284536264068277874264759820329802905177085908772201148845187968807126253656627090269196094278859453003871903040050228565533882554610078594490916553367192427319391765376584139966416982909616895713972565284092991863733270129040763782916500897742333406579437313675895831533017144364764617444037475009991589341858360584078500122213194679575947830691720100549679918309770522581581582151694891503702294692903425150300966436241447503524019939474901739024001535792861584582261317136863540931190668473009638955355051114196812829620636659648985639917510182677438941209812608714838343553350610178320124851717375116982442726602009948975810903037476881749791650078340736103045228787436712468368747520767610008113836082573470277041025418056876864489691969309684824273129898167210612839306655964712239401187425386858810055344935824848585350312117928013272649104470932826222927144165108504222847206513824039788006434667972857768702713197782591910073236655563907120953124926167643982380038575338472142036911229656345846286222395679247698417363286469595358563628931078293478379783904797708430793074631171445174601671369136541529022830198670329538067274411554837708236074016069736749934354493476484402594941731903609476767304142388630221246347223991646774698844473066317342032737080172766351864753483174826590625120428359579867454395237701264644508475295657048067026515665838693870105367026663644006641599392857073067782633838708880245191241708857425696440109252567881282852985987821910704169498049018257992223027355896405372166869011948931667258039346887443312913060114962303250873703369078317227715543394117194525170655485123674743355750649111100238094163961691719773095606267386189149196095002799767598961000086491217569851908847686297180306869670238421881700894779442920771913429083760161996893907488758230152839749238881738238102676077962433088029694102620426858220007657270883459080586232401273463828997156068900237653148902069476940748049796242431873949415450447603336223380110662615265077144509438396998817888477392983344360429367274867865773448986301608195724440725126094841549839445767798164183235708909334648041342821226151410258710200621227215811151874573497342318570416097575011465698550029402064228139608174557925758431279443900192645171579539175923225508419717906301174503548002927075573944321294715544700942073691713716874920266074663339885751002328532845830536690486780390930465186367338950129152909179415052872866357232880552350174609785078142613744812103811730395658080523239137954531813763926829215507059219274669534098506576888434781444680019986123342313455329546228088847863663179637638530099836240769955597860485368319748739720603414674457938693769939821085799307781349334881210988746522985123034381175582075345200891299652439966932183186561514507207909302132610526859764361845871313060856284502431497868481218027423116576385121730712236563148098697235874051207016981498036642795137805664212628180738074944057498766874108755754024582003643800138660865954354942746186453924261337547733551447896736036244208993074070565244124377359078572509028226270106897745746372816646112037028821480343783298735480396337002018825713457330629987483132605796884716860367865885262282726751258181999714277419591338721853754711371945348125791419280209085838917611642375417001874718341452543275756031966663005801570799612573442565984782991801164583479184274396827819399421088935090903217486460475956644121439602496147316909721704316845233925189562711201035865340869766464048381817660262822386385416339398914356247152574981535742191669882467173493666696070742279479567040977191458743695238539124469434661255976378018273534827479675731018113464225749274263403590915105165199716991020717355411574080644793291448819090302490793660807796422704863386627019096852548703044903483463000165533121343712053915413232167193242258437099941807107107488280421333162724683892994613912266018719713587827255644508094040720082141627532234106845520944186276718872714805216956258418426255151609635034325101463407994812356073282563376699916312174236986750141590415078417068507283623543410372059727005852741075176527736273944306019852793069986920268364127523238946634899293433454906876964261851649480769853452940903624407000226611380111101200312132051636308136715260191037064415415930367499080345122535245574104551073077188507747916196384444049801479557205615168364095000593313456561666863324531080581092855265903863310401794539347448657361653185458351038985610472785169645820973022237281295636697522548057082624644152702423140250556018584791289078310879836955966855474097807541934430088887271144173592470242743950981639112839858865378857026959421566947992623241898663132820708625030747608104341806545235704415449928076573805681054573287674218297680216211188284826550899915663103647885345588481195079901221818352580317520704749781256754742821336038180603729630434086833237637875225097974602306978974082337124361742100209172663572953262983330845007910154317377908892216818741669015703898762256018472590005239065533425062820684991794344788143092513451190050730823360836275980002648025994151851767568769031247684260422410784483866914801441286907178227923274563299979854217655573311707827477948023172453805898889341910221731848467224422292862941673978221957352907448439642510142687049600520544227613104834341868425351629689228312758477928465439595888415993064481570443405834816010164208812872817991718586427765487240564544735926289873873260192818981034275973516587835858164627419195200875813673378716210590978869586278345782878988038430062130569974107789959583709789235470980148229951974824574253248704135894702120835855942605069419906357952800992634907964806980419802607305113417451337814759687678080605988389302538712682369380442763357455983085248650137575918477684495889575036149844908576464567910929496106136589886739512840601809076335794297839851573330795803396879502932329418528082808807580977422963541955120180017363868822863367464915831014993027505227852337104543368529887675881518904788286721378340367052023620578353416813758914082650893725882721903523307544459116546622049660589853671703410537167962424777626571940989321696871154418247056582834249206666837951133235117020847098563570818118619065746570490880182522501527345136243284212954572471018645076923207382862568017971393706935167069787222372145652919716232567669989194101886880731709681898868192510182859272041804173405533987911224052342357785218821667228568917576133634621441042806327008654407299214625742161779245946797292104343971133949740370754425992892341608883459685940959611094123057793165950387615496282492975490554370034816773239546697431845501403508499430928114312765666495518670036577439545737846534500128293089384681859587684265578703689674541862176849449757660419464331822033466520646616027928438126534761615257828310137113220861533746427480010586347395285818269043726287865724901607576468409842693720181000915539988913696066407632255290136192557708589623984624239813816266304702250644885036341942255390041059659901562278736591799331395094576434920054088386766138823831416725487153326940842677791587186268560913381463590129770978728933852218023205532924562051182923053761550912753396915067705328282544200000410723595703251404307230072661336465921497006799996714168030191883730973074376461574517776049289468402953158858270329567055140222024899920904794831239692580185857052161641160646041641001700729898698861627440502559060211043872716550112645101711314028599749697623949239986993547914384099091705091765314987637203471192568113028061103330102904815785893422282042893330141248125835331737048910999935145758111765406964452570485649387997450546061181187522006416669096007529065990872604231360327078315342710564664748178953552356381293281442622666832213048223514297118232082722551845865978826472906237398567638515659525894759936323397273328128073802510896669519969291066623322462716162424862889428702683367942869514132593411402216551697402576800165478785237454338780783843082472991561066517814947153482975806080984551653999683007960598613726895045882691237123386002988460450731062813348662552816507030564520061406122055888221148126187861064517913040732975563056248966876363823037708416447060195965038187549072425834326289420930225180144027660901609455312315222611313051259908813134531464227578645167386664857030122965755800978492103359561766327832879145372059936580140246286784256678130319785572595472256352258544794006351466279009017580057719309648449310746274125498394052030526328391082028997395653421351132395484435711488541389397918921159504300288752524448334046371696914903147027523811431551134432876310312917415158145532517731346920783055368091510851611541205355533248031492525359945918845716245470424554214113837258819743269357167145557388230999785505410977423876847607706036952288006993883616079283906862375498098696625335714022995608966288392348525329812765150626259247841554023709507859155647270403432315487099783044569269452859512576090496269189273710024559457085391507214002954856992113820394408703298467846202147986735418510689988966019208714365598546933206122145604238436722469994852488455144167980449131960130605228752463171323890687162172368634998951347608469631133944037839995053269632877270476710007262575819450301787730198830067873337524211377429703505899639698872751466069566845619237771348579490942033168570817271075179884567772629149536938127845667009175430519150075969445976686463095059789967122335002779495754666650319376391505972169777580401158649914730352592539807228358497209473484209644530954358830021812981469325607432625596313094337214396407248314167972594013479481020110658308772450556988391863725163094434787930527100790255798700844603205073874454102635771734327876664102483878223003516028952912801394581149342420796662636505385815997504665369971504583560056118412167150377292532043852349211067763987238826367086355210860875122419524097492029789934821023002140122048052340007483085404739810368281771828048763072021044500651238102611498897806705969421256808618480932788382528932313640836473560419316061262080221764118531277457249432226002228006541350930703821398650622812546011177524622092910411421298604421630169707116134585716500895848307876306140588650088015728199651534001811152511612391414386027389774954476966475059136208186879918397778984405237988964916003058714815318020387675057167142382606529850938713972558885208037944233422322481402782855818045774026746362616609442250396021419304313414685116222789317037025690507070829361909894564234785485896968388563161671751080106407552277082168874125953729449159473781042044282781453331096263691259990608453468661379620217088814040870995391037852983887895702150009369958874153660469383346531327860801446293822355188000832787689966230372116289445591631350283640076948116978760117161004346058854604409774279210055671192886723582261119567575385199005753646499467228713817580923035442215675830649475997286242982699649114947012676238551154089985728755961845887085034744137107103792087324121906244375758105848373848980975424400287238044187996923622718963469486924196472303106911911510245325758820500546054669924039187475112306866483493571479856257105851140705991333091300552425423159746703293480145743925019153798487061985673468793625064223893394831854301905962853750947569377220790916983893511202992747983708271816163818319705895314222276221256658257704834380692139436037834956543512646762054172899220988152496946861001874806846818729434511192899995625844069676818283910224446736316815830544815968006900847190461721210088236725825322344420277028571214411685375004981887562624426167395499815565038401865335134999784597077362815990494331644381256426137259412015593533332401515037460363821756722332334365443736199530411732220858762945375685080914728259084312575122109491185009139325079554455437817611687071656438071102430424969823020995573254070815879749620021870971548953229272436907048524272883742151976511363318920900649965060775525427529828535074134129346303031725669203425082862920563724218478989585651228507804774805241642505482859183402193822839451176472452837075361733102784794311502172022581801997069929460137823520308278291633415970362964694314069840794500262155565702633439591916127520706601383122232717492852263005146709696904351395072184300258937629458920670689165772838007917081460924670835525362884877297706313417078648164405330140642953619636213752015889114578658077928382168842813207876022282615303097580552821017194381411437993782901739736305842810570902814399891689509713885440103870397898046655170642904375991978319770968761184464279464793713059631628644138560216340991441635792067798658962089011017397215266495038291618470214394128481593687535044808823180185719980572670754198313883225898121380524248391462457196492113842897443880503277745003085880698597723093221354834174823042842012601713795095099798588279967662583813459013944237772294318650898371733544060452227182761346747253654738871840238607308610033643394945695925180285029175483989844705023908852040144810120695587351010409237069536049318231724635381681021874329948063147214866177707134788839896413198635006466092832680540545727524787203849458635197931575488482291826637221075072721102252822412343792043343870500153729386513738468265935714049924061088028500735175036256603332807876256141748920730840516085693174242992269773130767251713427257289661507087105263981953037766891443128653500432376540555843975230783256083443057217658172851260211732882923291727135237091245337381149569616605309409289285721983695103390538413425048231350240780796700177768794251631941446896322620137348262821062250932538492304225858091888372357105300718218910729604043950412348868403223720939446077562201938028962869235561754262674360752361045178961679236976424965225825810982012208217637990597773410383491206081057129854173951923991721014876618651749821985378087273219840051343248627223128617956043499066849081919655430233976126564517095924233278977779153836410931536539412691555250792160573356513197410818288426500031515252121289019885549633336531817318284597210665844612031334340584591060634864676233423541963257444363507883937652555001203583482553775892680040819834396975172659035390887747473240123534638398707434619139627407258262601881785221998420971873924748483532904858201182483046706816852691860695583747200581649660197746292650153252026376106274262818908211367736797695149952252821605104618084046580225528547495082775027654960988278052371618980981584088922450296492145198417401913680050977411199683494096858326955295813523534941819413951769362632562710056904582746207784802769837723688495582273550363849569584125648502934624033340137428199721846268241284128224866715802526275163011102894110175022404449794207713440250025881520140140966214485614971610795219925202911119061818300702265561521667869787043480526240839409446570266270093554257681383195565584072872984641756468254909584132588644930379110321763913408020703864204763322118199735636420842165984941049325732745899227808972355115521936232289755560959388431383933266076524957206156359610071794536253222405059730268957193435456370235872847421639294715769871345381180908680193658875110243430911714204015265416255993872045971324593999892309037538755920619893702477007326234289670753009594461547919125407393636781651163321104834486635972044308898844393171329388142627397255331912772032454939200711045058826767766805364193750280993182119178576524862627591705870243130183409243342327296671262017995088091174138488103478072159850528797865893896501229142604412134350556525986832585859472113525226559091252361949789543560859647140081199928695712727644165631820581303540840213627909276279622089242042862313861185836975289167602537995263586856316060732559732321174266329583148311010011876419639766061612364096497881308221391593978883382110115013631971474529012827525431026862759419443011897674614779632094317524164718353563669428825671202609799706039729877143487899421640449790330220654209211921943664372816931411408100220666920852482998759915966747779895692263863162331729967744108577038397348546565535492024788909838259352233610224687919860946599680838626916003197802387972593546899942177647993607845260094113565377009625443466049653483153908435976666235102351499967446137708893849070761186262458108421740053552576372510705913677582061757422514959490472888686606447134024524344492032879516437819960224143697269477187489128103931935941528466208861036225745283053859771207172609582882254237606561934965772126349925856268588034020514930813403889857291398376574912358046525708185746547561827799304442476364139712844732414380909245014679117097813947163243447711120501837870146103505730712594768401584605621658748372394414627803329801212248220216308446917498648086048365500412797468767119703485374733438246276009887611845165414502894350825076438767091403640002494220988827293233659941635816512400642446934446445702487129194044004582598110637190293020333776746159950858119359971562778982000680480970445136821942581297073144670149881451585993333148464685519169937260949747438115595462702395181127913766627974466123760688390986701017574177807379440771795408346659509693269747271805176196723723972587497797730302850463502239892614841780086565282348903127868781887326681052338806269168853296518357116906893264350012865926043700958420025763630977639731468047792277931419009299354552165887082797931951891688718245246989341298891622094743436494077335626262567089591218368112060984327351131320056304668828177862957157821397925516292252145470527773248108435982954966403415451679170197231910127047980472508835405700738994218373025813343334738980577327601547039169702510676183161352905287812302148047622908045742814745421823168813212128429279734543564988496548992404224136662711136086286547921909121761726275848952034779489728840092554082767871589353237648637948276649894875895940402042704068262010931716489801610678192217410296945691080308972156545503418290300022721817394621200387274903232935743157785339614230141021175753901298006114588295608646558517559504397550278906306641297214092997049500684822011064199045909563262893406824016743646322486283702618621822407108509858181021739342203582214814346255108257798041872733178132317444579589061971001194136555598647950374867529920673818940525354273739955363524506742997884884276737941132013829008411263153015324309690153061561477006671291054754087549949128567499780338681992994027141660819530360158539705920209694342042764967399937312906827337846966368738961295527180921350157539628786984553276147685559445392134911112836137206958683974871350103666046522361981661261398136657926283863858607337223100225574514228951854609357963212519885196759296063868849719760848386492570293919610164238851441555887841305257960891125532947849169517351195614965231939575036755902064033769025970037410808190842147923126394998024807189995926588130596060687855155161694790851379788655308418573717685152047926341005593409384582871952700573963433313612463771647121802230623558006080358754399415970836557545135948520283121098618195737870733007498755181071492426940511241596224935800229251738149664125266702777912030883173199199069383256912048109185994672947921744918911708062611050069099943678547647154225682226145700648143688557170378262949043425867139886337148751494376773437232425083475613332457330143594369343673097825298009505917225542449004144441802470615412966054814182252519585226016270176572368696762068063512934616012263395034099694082019642205035431999931055411938096381273876030812371695391768117271418505820607749760034878898519134539029807709705165539986709829937253444848911543261170821898871331710956848077499063858953990551676164308953634873929088868150977777345302196214398118352737899846032778830347919893093942669601739883950400581580777326097975243902185273388803640999598276726035484505782129762724963442692233077318975854880017633819016322388767075191045126271402995286758438213733210196642174065157979969265006512229215158826180522268820540896528588146043294369373365990687253988022561669111786563489256634128991868441495575572856892497627311608092061793222773234577668796661131468079690849329786392873224362043060043273608280431438544113967341539722687032789640579109423214131560882327519564205654958292044136501619248150812288129369534064385698917716927898464295407724600167710277500990643731797369549113349453572001488771772099640944696150492821806026637386322904723700514342918975023076106738480965374542935933091361568243644756729902661706626154268535493662504679795521635562099477753599193848772019214719761215275300305103025569932795628584130428383380562665266648083029429484209644021437845358964715352898363203812158556809570169385080407493204575470156729823068433075184232938331861433294751011529954299929100124796857030626540078178998321476624765622581969462017910043870299269616649816642126616335976676606527756101351897020681506660026772086161436825858782148554846377722082848057643851748292656290484302374895715846697962502381222344165935383176926610018854349880373423109525793862722583496114968542692060208200542903780453539405526744132663535111780521945745127201033717992294494235555092535365374612423951277187098196639753454269828855907843668097968909476129251521414175435078519917377974030855365385423026413895080534861462115096581659435145472545279995230065176418784601088378461245405112741809028191163730284106315760379895568105067237714021441279426005584955204678252746981857188590287716707515435480026294350723970152629432585884575731546558745967426922351003870077702470562725879229233921473087076143021926812771536304293609907884744205999534122815407688111623429791017169933339287549181867785741842155666090504172429068710151346823798015168493140253494034844310878220649143406112129701822206144144879327646433150038387375447350239972649137521099690549255333272602518472266676105685227862600177809915384943597142645069639193620252480801407319185579872306665287267973261386959021906956617434539034577596621620630028105435077504967594042950799392689321412959303426954656439742199101284579962270173112247070453775920188229339804130527838312380144899212945864790137188955528617642384363872388749524173337137207662162080192112066141612333960545560493613230812227674810473558649878797940352071385753821190731039356705333906878408882979837095252353748425772200941782082769563691087251966986052544600021961585471792415255838915859261460530087684585103325387300067572754949213832560403471026636951769578061509081069131313402798838245221912250290177618447645101123240329937661858959543923267450112882791222583699806492554079508127732330023758634779928271906083864411949440699131103980339629105187838708256630619102966159290067626557491069958429165409746727780858913816622745398589807917749388494803247909624527386748934847733437560987203526564666266813808167735592829722250886994064289615511216857759429393857774713028752712944903803089133887071035778548899702150706705595435444670077236546624151462012607611751678346711151192504883504375920743440579304545237559098851988148566008955641029498294175234589148028803962668302029178341977197258550794015467592683625646136773416941714468829253053874121862393623953555111279120972548657123994706542241868315150486716504518415046032440586565584589964801604887178380724396391665404286425637426190836859118122707568602722180941192298284333376583655505139908840102433684512130809702806044104022240087246271370557930870378396280734992212087247352538152625465930889939580110400189920149385428724022439271714897601114529101764357076369215285468187918413529512878639267741445813905544783025475638916775661608929376508804591622220726679719643404525298132058450454795507563446144445911801717227544789382532808912050150391907439317465679596880821566327334669292955207100533740072229569363526244153236548292642967525826703736452523549293833818263654507773406204424848238057514226827541940826913808763686739846743611243804844542617500327137976004738452924362609099481395055958252158257098879989016114350965698478327665529956826925870228398241497956873613242936156220318741639935375740454116021992460273828167694257589587841130396396338326678747901600035664677007824730916862762039365784658566659185499099626703292089055592358748823699191962725380184514964324899733009356826276972176321898462406923457495334808263949245472778219795426807496455256951111175354415752410330969056925061949140392319078608023431719267619895175572658621461466301768833609656997853995982654616797207759692930719795835194063757680526065991921435223156428030863128980051785089931545861583761242900404543386832938584344140864461800390174169023102109691642716918683933345731422597845535529415996675255063100866757048442206572437288832931996090605998956246758662148562928966057800145652391634826097706162454268194549777810772945685780949498312546625840191022302154766229740100307263111523020827354812602282192480348901092747267489052992437223294201656805686677743960203717890870422756048812367817619231518307842298339546157811056164260308415087920419584723409335821208325156068286015431658599949974910114304941497825352690716522327724628420341324020366018403740029017712198940377175859903432199764091356893206035406626943984220974490064086035166447427246160305733716951183788751432062172552452139057344116182001344394755924264739680531649527176693735442758808295704180737909762921097509274189332285595090647733885676180677890550473728313687996774091162657300181929369282400405920468784020702503379568289690311757545020424206444988669496076332502300659313653726659634149525458464877696665176620898052099287080793369991209100590091069676867711238919237817175793393478536401764049373711583639400423386013297355645167304787556778863625349161233756273702484884540849883250145162880605304596852280909323888205885313100730713174120095589670315607224498542336044543824270353615008368463594018410901947283418975531968554020981508735084620654866687751463945640401139992154187695287646417930450540115484049611217572023170435120806643486971148719135275255247373298812326003292895649015768425584657936791965394271931951630025032183550931318328635361558847927794758498213760758199538557897693514804552823382435268865337568393020477490535243222678418680194202890652265156933445072994879037305952087473001251293068448339798053550012305757924488962430617866514764279312294073447245120646174029205651079811681710058493917982312875949121677616260596386510241717303023949335263981532057957410579987233844600208806276332138994997897069070298857147475750831654236751925349411324409853622855925363873259351600562313323909226806086067164399173164651706576072445361257999163776057860312495516094197281286320740103587355176840610959339962537706799032337032713152872194579635853409029295979539208904449546340878871317213834766753556666853056092785241572722510657395131505071872380752121496767244089718184654724437747541289872074459802174502188603965436344439187473638931886239696785822285339519397931190116890494732385503674781963965974866099988294823003235304969378577851940952001165171266129750390084172179803442872318559719662200154982680985131266261393243781601933623902333508790955192964608103321432368889556907203247957082707866022578094843450430179766021225063109705136179509512218359008470928254121691258176318570690195703938316077552391522497439676324315355829458690290643262284534098574180383703023387565804467485177408076406168834413394380439309054283610647219974227635178200165273909758659706628775332206997581266056763440181141893344094274637687773904279169797636696550133076358730431805473875293270984016166921333588733690892181826160743191494998919348910368074622035479025761948334819684333106403245425288763896367943652414171068600950526283146775390028839873926667044571529993628618310344520683379837418219272976856570603386746475341134148085963701849450242705642832393186968675723516608467525160590915694655887244198413599060812122010717698358321021707623180448120472302324626806658069286819335687672670994537752872555655189935825865909352312056231712565503371174448750527925441680808536686625159002254883112968007554417220726552572334521244330274509063075751067599241214905697226188451998476577444711684308041027029076845122992280922337134838745286922731176378729180033557100780281365635619482821753228556399344609399197334824606145361315483238605023062449636268075949365988230202247166214405736320566270870638272707451175576419069231969574077376065179735934752092651054632721426097447405246020329963611682890713392189233515892646199365556586448365684442109220598451633834525277357395155199915543107339708927603397871981927784017118426483150911313241532756250104247333752239288596873037041307016452934569615774889341969290044501190794898159847375192130166277468402472474922793287681849412560209816493085155554343135754814333066447596137469964930398973649345450548543496910463146981375430637105055442356100179583434896791320940253399019638829871719615946432945320986924179887942398221930200267836945776708584260544790608819842067560968733344316483535497837832727612392056095091354826110995335899894814818981578557269645342354902168417324186771922830268526816962891830116222685666157302078134872205815256311322566213841266822185307176915622965258379051651775177144933939754738422073129968525124583409646948713995762454059321444352221585297516489706259519481112474509096455827372569280409590015413917112094398689339902782763195936746810098499665830891763630387427167895954877659551473399159277024808277024619902414055600870582676773374495129764834010904931478939200769428183508571527104568693607954204822423079744890962110159540066690748241873089308151278887646894716311987613476842090240669526689048302451873071223244796559614109830088317353837646056973677557000315685644767745616401043621536576625484862290896224580143239581710953354227385927213034878833467934273258991179086677229322181202040430794540589827029940067449741970456044457209000398925420869273840537670559311097092099045175120700472856298439781275360810330073013289828893759716797837482618615840739609764487457842145877992004935166706406410304310407522811683983644857024824824471371921564091555350499882988185883327607871251220112984016929827548940690900602229971072252923823665459192939864438983726504647894658663932056726279318294686975279281977644661333304323681922370740454564570275017660430484970393165049308604904016599484057560503199349926809524698749393495768782856037847665445993822494148266454024431673166579263674169034252973915432564661008674908452172249639747555053878422911698821538281868823993774570757832645365653515539038276639710968849077312560268253230127050350624230628514142599247615830932767900214780214789960062679612030817695368355578692497118391243808318637520844867129190331079209244030322210622705078190147043860100474769183751588382338107841694089073440403184534727206277915492309215519225804517247182020964729575343032156454281411568742210797255268347393348455749567452014586491636272252082651423698098389599839451138511837805573649823875013113163174577790241233299547715690511753347110079383068722458963199817941713120502400895899877303432391259541572694867150375515273141392164544497947276129202252213514523866405536177391970230624590127066627447740679324030062532853957897857251136197778778718386897668966930632751918960454982661006244357406013149689312793456444952288399626434864058605188130576818024793951648515807569596762498154995626629333433078392437057758851417886779548970953935563672557022392534013044848461254284814585933275166193281739975971562323805766146875886132013937465806516862529511141482275586406820708140983522936116715088181274704009778437847595234679411798444654236054005371064665965303530982897320450776801361536548414349522147100270953295712913381878482398977873255698714877867239985147134705467377559224162227659185095428495190183603277934513782146337077674891777517481987908236314825547811941251852901972762604810656687796824303337077044254587300168470320963594904100103310361883821046366614434450349944024784740104019384260337053415284881071866451978253486926026239637962154106845751529044549006397806369344845522013489096666172344243835202884338263600747794128202147333841979876019136107215583641674308648737944022771556248840874157787772830656771432938907804992722182268214652784653511031330673072482192689760877499703393776802950918471485547927632503369830790476560696682095333063915912945951265656673779465995407409551949337325490197189303526240630768215631497091423747985291276426182243756210116284315292817732633910637332241731357461957032646946470175038894281513625021844554667012523372815783998038228128529979097133687883831522278882364607139890011654943200437955006124971819230440285206396657244194398951139775149025631421346677735545750068450783509454050621140584053039287459505482175574892655394362086450125833640566831999776484106056124950682046808727666071780852020207530244113545442915629463944339301020037308230482719470014172107441200498307246515108759831734208830349709287093460828568856999828021479654088373186552956756126698707758193708751307157886951878638599512255891528349875472949345684986799091955301846809126536637037132446979276912674427988596404133084519835444686620984759264931879194914741602403534480912151025207913773705232042572503540165192308470328142972833863439921341709398982926695674643946520385957831645851576628029128451710355491675894729651984687327543057184415351506828640166682779168137685185058078814177052245741584610745625414933440539252908832896637441817853981483937011896385927796846218540437581912479904130765815799930362644833587768510925947350629788320093689986513783363393606049890829016364018377400643798801075325181141571037882826668736730196224822626355241745598768772245304331478432075655040332444434725136666262064557035411505024089373847420512781163328041729625989130658530832842174421907800790996105251287952173917821657565346880915578018157024249424022557360624627581856337303930589635100437593897324829776665978005864262549546281969968143260116080881842791739489647289658847408864834064642673535666488282217332067089250395878597029235889412395792934034304138097255784553752456828364912690860234137516200970338579529912008689892141029179579504525686459295722685064114529143295282758158877092553831598282836844720744303275857542271506862953582064794085566154540079877605554828469047395197689912962273456416535115660655338142883612479522403154012081446041864839624110689335328805709282658174657956922217101767676933919925949235219002590086074957576121445947003013134751666460629834025030538416839368646928462522356050695276749846123159678326001826691991546514382386169772292766051432389690745731226468149091858465760056704946749492706700505007456786069546688318006990149178121112863997800865504898554373598480998429688836131037080316489914429376602457146575937388025280897548607521196989080919658191293531790438167566724824371801759398131886669021941211732597849663339551657409281654396111366695439986305953150138872254697271430419850119833812377162945625633195120412916284720995326887254247116996557427403147163492542806590399230698375905187486996029526120698325491201354286466978219410298635554202361527428190156555630205587233238196222724211385763182168934764288375950662915640925548356521271142991026272538955477573620665471260738115696615267688225104982020260581277068640200278100255924859846560543328783108514305960763576594200385395433811266324962088938746811517122548741381792418840462638581976219941482111800591607456995277362620931158910701656049360007169525289797593830989228216189247256992003430563997275500444249858284208226580984701115470951135391241493901083048573575669130071603272257980609313626273215475848524736330811332326009984465089564512354290621069259975609829800159957526745544994268116031448705426197311645483704342936471874050609430335557458006525638171935383047700835629156967416817143225355013335806208604628772344933337248339240867162015122230658402778170587332002185842777421646146176670046818182754293364810660690234602526572007762931494652256996456348726241540251137025752837989280782481424802863901343659710508910573271299586707175009194890010229677348801685441410926799312832134559337964204563282021716731701374649518914128579025033864935114782755055644428432235710838794626681399864258265846276515546625666781136061958565103675693116760728460952260564598438993791089733300435839948929529441404817624221028272067414746637721468659290426094684951679214234746550444206447934469816589565764532380833285476313769311226378591213636656301450041695233564121464688721090692965477548433229117130269506064102367362137490372744210575174424744492803922074051815004622059173369302541647490661922477778548566252685264129075473912666327384136492271530958218828096966248386914206428223952543612766961118965471154863647458496590137704046365512039958651775034813720516096567088420002793993642974729598166402293563022821782800930921870756856445570883679823198287994395293590300490535836805286976617014912211019868844482221301499973876706244426533583495042117653748529853288067867947715214546813616919678386972892266347788375293645016215297405339489713952365885434792029267685861910996242626769343847106523376910911360250744460374461529263770529029827546933634181434179781079819083819675429826709423010473119976964668438756239377810631081451078611284354396985109710302019111898768427921283775606949064829687253067065007687644573109696950659344017897114217133955871643561510640508930011465492390958491315856223468390339959618540382292129026863644706073786999744158855801860897402020754407848337733814419068001424394885652213067264746701716775871226791113947707905893352658365995628407587738587857052780688094099120607616650470343762505867676768381050308985783989355033092994437127392878047594072147636250329656325297527006481185260166650328245533409501183231536011324107870484435739636500042498059750152144694617162169151540735609171125941911399410656589671986642755027562258120197080622735526242659223036520110368433676994456077048874615476501820961425047449073210909398499075614193718420608935122024945984940284571888292229919919595633745617680505345055906935019308813003030849368328688484039363932164195262749789261199327524232220808127867236600312381231826345366683107559750613171209339654660169123164692846499382762732413035583187532802877941205602170494104553401580317079059902758238151543662565938013288917805286365804729697334703779812448845962041677768044461253439865301451534350137859143827228077402532905473819676125920636232501624370410700804875552705410148517408274688976803188265883924661936655153918091264390557924052332252715155599104262892610925694754104331884159158269385289828871954470596692113696423501104203382715637454278555260900425863512920406276790141845801072919440461132052065772581083519893120777096940065622006396504907519265307797811472686572685367709573977613432490371219560836565173158200240719945430447385449967568975646947638885920064973619953595556048944238834159858256178757386168445472518267866562711395503565307861930525988199816184316481655841647757462122897400574413082559102506475307069042069723997822401783599424193536444357317883012700362771290614937088175062533249537691463090771063439319740219492206492815073535551246940515615007557032988444556607630739258850886080600047233850100903943105579649415727840198534733277773758720403399111942119768836929622959786294122380336828819817516038267373809263016362796320364354273119696259560822831064011647539982856865673124410255731343052498116022000508069889017234616222979426421480614119120018000699170034451787201493376822745248005580336142602425672321496722388249984580035234375573860592146205056740661619315138727935035668496609265695638162280605013755958710956859945767169177677205178337231038845544957499047594608181482593118666627896747563664397941587055214020275254548429674131473934404613974525152396504111024496228219323249866267728770353400287855761906515501690689417173907638832726829940509216136541231464939258117499703260739033424204528326964043160096961806713229075623488880036336840756912786698112779175711418150835073796470520667268318611854948744396145908748860970090202218432447311322858735420464441757492382742210078607991293126712459247970657345189646691981874581630850848976864529807910706996968586713333498749955370735589579161964191493472719818654612487460278554372414228843902342466806756033277945694603531604184759687981095612498470490086843632699570031516332136624677910784807924263370792891707411517010479606720596092381755732818251389962014266587191340577138542242542603196971075415365068615886000756170963427442358079673061731669043702800371371880253549377185218606550601529953887225237061058940616263369740038227022521933047928383097016138683878930259035891713568879319123039087036303910823308329187936144442414318526247078635729707575020812400753352830801014082684078303116478249409056110403438041801818509648731726042267089509544393737464029681804195755622720237097419372854793040554370691512582295992691543863859447471527831512643898541502670563557299688365692426193434214477753477482741896043720715859265014313271501950878622205603051839100443454762315997644033434876505576394913963613203698744703794737402452828314065125010647214296398598893108094016062943699741242762316265202093693112151311835181301791699530286993544221048638058860220054105867838745553074741589593603629526019163862685957972160005216221666484895567302296492852229183810516274304555154773584254877784275401217310721247311906812873619065158366784882692427890095267685900277259447592524455235629565332672486238426337029226277105503848477387705427897646626045456153420687184522924998508273738771205149224090712758159575396856042735451057032246889547151683816316982869855291361910182267125654177936044418182856294488382558981611716218770751960879394111803349609831398344128690180851980929086560240374165118116222105963257349364714684426954146910993737688172838036186826495426607773847757613222629846893665342630968094827305431972220492960927690627940960336855693320232031583203023115586098338704741766223892857244793295500883773563083158522149680197316581430573052464420054148786500382155525042908192342059981044644805338324826788568189268547635544372165098526457974959636459694884396416724488569694823233835729195654995040212155033564359747313093754407190936226727491579496822716425719146708924771542377759976571231302722784933247273675422279155597940410247768634747682968411966284194766843281174216793052227362039960440231671040014283734963377194055953128567297101578133001152951736720021517708889564013156678617668382985501787649262694888339385744380650419286509458391608337850144214579621001670977480763670865704687788778630223564028821002408913174883252784027268804721729706133117993020459519993165809503567416772227899576387826409118028196571303096703788421717143369788094240173569373626405733003529774109776310987169866572428866206446207444755949495097417246799251550031314828170456102916177342677350185584687391035156255456552581165290542828058044135205695407870175130281747924958091806937906492971739161173274263949095630237436735125161692080874657705932444339331473338693636737288983103484042009914523677911962458159398833078245754207587611706334420941377499588992267699159542659483407522935604308521035271535877455136890608636922107841272587768961329594690487486212925420212048051584525573316607544341501539895346497646536404979141500985271461599664912956581929550272631801574357554258897449236443298973557434036942191443599310419797584046191543742938251661321914679739910065244222616483570464093357445593644540965370084412559753553658108754151966044291445352914556414141941870948680711557084629955477867483434291156785633084279767767835310852549100431687885063705766778370534952737317194825765671136749839390908040545842137298992247120455255356604481205728487528513652902309257321270236890210428398610160032978308249494417263371710005156147510895512145193399514619409480881336770421534610197854491134526504204430585112196390976516784443941512918805594926996740163822620568624103556288294625681888223877403502928294572374055734442516379439613179711241490310517371732662394585819914831117180477004859089423312124660007595407328533875814187642748319165562427410636933960051178695407626693144652167217371457125708795229582217490719392003203636004720520103876266254555699749360826244997969125235448396656536950037299566834079124691109623627098509729869447195679889987916300808583133151256516573971484836264849436377230635712355681597482236883440208248541881839152253627696163944642918917367089857710672067500333221120214317436850753081391182454223402969004111222106447051177195142624654123048289674129603811263669463640542206755391658422965660772976498772255033370566358955771089368999769197503468648470232963622282505378311615249138596913916464439033108492956772155885313266635695332492573498088881372834810779600502694531554906464066278229171932593668474067757482718830085870768759399196521386259222102578889629579655266705463962848592673849880243117749117851059436797826769401772580132357652461553060468677136524447968371715999620384308974369744836049237517352432377986207282922445677070984669042810056828119581340224371333322060449485591897853732400138865276178706980114944500204969955690797680089748002913993512479247660242447823458021149631667078000817294575475710124278540672927535924711139443616872745037480482724615920630301822784631968689820149209586870424132407131333836509521726947125162033318406485215870977261381038442127078393803841446114156660010050406841426944030527182164328846936090673443812939480095001482005375127101287323768137448624722072568717486764369916661517533025390960429346735788450349005322541031716611495088632158836042555094242617602832635128614194092967994334872214371755934137827035551640164689369543987296097036420816666186541294864032473814655053747029212027592442032507640360486905690544763448253960427281598598547515286060766064452429262941708851212761297029786459703357397706690990112548127102772681387694172989178531854493157885341584806864066018531910544072832131262686708672704147985915355431172680623515712380896332291922395263265017696854741675213565433119046926487667759818706789147987671080108027705882703904491518769394446994903735320303305951457852197406601374491625021028334803444368482456586845918735161514473581335205423831508175566653350047668546085894024450205475292692056402373010266848959927506195729129706604998960839923092567212165074084984896590568615696330442781038585765373065418970023807403582637787193082822427984200392067712433934443791531986119215111774290363309182228348199203539071636812690004451871671982996591124448689076364122061734500078586586545280174606488475713642646708526354175616719241537972979764231010020803743792261475065606274579548274836880630262814135818898669183184161510581185437889266064163911633425400278493832967164359265205466941550508874395836629659318832033796872520569623480354527075172684796084328034220997952029986145656619640731468042384797972970453682635233873509203681800283450017686795752151442173093733579708234875358400704258308716763875804387024116387857403994643658544010271712538784596727034045595254333690937776702452930853158399514493999180305447279530482557503340100968347887212504628312111407927757503530226238529757898722278981335419393211727853573498326080967502626736513714140125851908665359021010488990012938248585379314427382720901136247174102766551314867637963609788672226318168803214524002226449248486851336267759301932996790485745171786674010891299308564625025059206804396940120126084443590212361608322339886618154413376241199144270517534647862219631683175683009983332216226552187476224684692259346733386156870902944648117216728541909144186001875809178631876066352594570562387496746080009965300151336712581129756926516352153862168168513332030069923883397818413097803492329505897858884970085729598814056294264780669724903350827227097630314932630062561149575865300529366736754404442425930679742662908285985747244243139612343625571668134658030532651251330962031618849605533617637657951641698922446189026744732334465768680884790164120075350320299126980051213772903286879195118667893401004217794032126243480984748792315157488837608561966327205105554378058427489512725622163691582031234542114821998850375533481422559358352937873378378580340357570879193060425114975976839500214283254595788230538648710732487040027242049136789679616131511303089155652716081367722891300576950726786030300146606843414105355755475080652188761989762399798847001142240932456628142623252488851127442215528936972018706687350196724135724560562043597831635839008958430916484479416221048705023176986490856525819100269028167838598552569026595513854758126684574212811073161651403718760496361583952238987718823952196783688212603079641598042493092830107174217726282993879658924180407196714890643793297780266475919790239252421372492983165564298416490953983233884214816781022437841949846954008538516596770688979794949803903744002165086715354958574654014594736682870809186954058655455632568777005425187110920578289451397291205504207286653874952903995963746442021039367803907435857350280586113377662149328266947495318998173569942227587663898549060192251975426740580964408103630288468983819751853398508377257452983378227416143501970278918068743165615013531207637517943878697244683398388038769166519361415565911318229744284240094601578730482284595344799703232331414256597183012479332457654971336502021931821589746150434209493954119687856503106019596527984356144147321948324581657205708380912529367830999114115482147426416099488808004899951475939198869576621328555266999821812265336966598691611509733593304910281235794807659739838862527792079520130298128141203042261901420015175684446243725932571045969672888921725328445960083973125129284601628149160671045225206849537255337062803907649971816722715346373087081045272915529308941455639740130384616350531874634266594418725777510910993936525557467068865001107177394063402492843925666082058525016706724722070063824656047606387997673553475932716583289887096565516888296128520940573154685131721709014768761729143344210143651852006817353482840621400711763270931478233526294367315328414273542830520236406931167195391864313359215786228488904561166810982309707859703319987168651715300025225776178285532926194414934635828361070393187669521189853869894139539468747345679699501475805248258171250699829417679988069353902798199577657323315181290985026933856582700045123593353354587400390602287197598336465133666255829033056026526166226169796181225351699429410339159698743508831330786582475825941854995168542542134330775806699829512016035389074183494577809573959860670046605260014625815254939476158299579659611264796785492778848223739482166937370155581468525223679553916802458363903330748936723933699477543664873958259595601347890220437471662458568081142335491626809475723023536918616852195316222878874405999775904100188683971062925793231659523665910989250100691581022461716523502206477752499668423926913710145862638531144170327993013826525332214911352051629771880989579171600255470376039537665786294360848047565171935426134740202833784238105685710608097217063218303480126875239868158462795816004652254507982538279669234807105408263659044963173531659625341503049934618484936523820155876303737979100436725865664883234212193394126474516983146150849083891959715431696056937734276296811768991305912652570366324251258768286518174769399710695889119348016378955524362957882776451214396089151294136319461117947709004788751398612796061033601166241084895350365322393594477430198623736462898081666559787120989057957855539483915987134193632296104602584082961717470691921305407440799739245239374488454667697993698079038430211626368270056537255100026408356800800225587297224838757759918886402897279699885885493100000351953426374441769800430620422961311766117443057199477030126770957585568726175583480421371422088542333012767481468576642832095356883596141813079835004668191124980612788786738464926698632459280700732820030285756860062840611478039427432799336153438943975177243109817726852032497575203803917555135438186912008539325731524182536197998601065363235184551754177915311471392447001356604606707823969772366163182075428060061585619755269338445424988441941193515552172736685988982965948644660513030316979600259429967001767121840959279920771205206864708865127765162366910186866159153825507349983831323442803120832244414032371539871006462680726661041202761220867294888658868454790193958088251752797216427512708146260655667008065078470904262494677312874064458468881242595044394999836811987474741986349078724215174010854079528201814114521059397894302219503495644285577681676198546968963396087732610045201321436717416767877557682574746972058993693105579511229148347841638198759588366485736205864866845647719014154372964652252707541808203871521582861458079130988534886086135637459354483117706498288629315766551295283075646054791946003604860399120765638084016361648249327843340137040270889709108215688440748480767929464652699668021034515831838866621342809688338075503366582170932577177106351405073911723354206798225398716103620914655305586678209855497785943293546922250578205803391241830676218392638627841553432058846336784229880959609702148442646536148666894451026657494927003105798471897837387757659119453772499146824215091831178358393570079807507550489176013444907960658680691874788008085473894711991052360916204031307756938840493399376018269412249831135386504881668724815305025168982908843250546684997569289837697750827347303420434474035705286204551401140381302713512896091919992222986213306175805536371993236012612997263228503848105136471709398996508976177332559673996386677930441252067509050594244817607302434943594416812934586321632600352206545495575101845413228747464580880377873983400902529148507526331333515739912316016905516466525807004908820009521862388947598094801788899828707261502379125402371098258660983906860428108102812853345527979545976540662765754933636747758301274379890146702116801664710457165493892204149821022343735836210376157917738527135287099559117267711709398933675094044537127914468123605722169607913965247323698894278247212349868473009331522920117476848259179491199252461664234249922047837005003988642901474108273149522553595605899204233208195139188389148967439191556260550923254705398932495596327402614475307131480062210168777917282274440965335415396312202958367884905001916355660384829805243277414011387520625049540184377637635420566442890179769634490788653171666159659989435723092572405613577199159474458012393123472715205771032509058200405417078005042926347499932936918416886195269413800904586854766669995116287555980730440472423108952321427180388618921639103975859077753222551515352074623227937551222221626938164256866759916364071591373225056301218094389327093940189820894998620049446180685925959739327034178312205295676657374792512671681242242580849152089014469356737724614068553232453479107461087981383111580604014498680155322458771287366680205598540162120309659277094161449229156501630628026217730664290407674935527050924501582544938942068504628697114380745367370002203954401367187529841924205121433334194430832143515788523714811241394131016150562310505399397899672417209112582701137650989223727495936198162270094809369524931102233471208089615846958516298576472581052559197284415346462797657525909534092841522442343439592305172285004628511998784988983596959510108278832962120121037361952824530294553707666516068498496211432138761687745809746226407206928286236701859779292229879532204958038625862275306712871772644268325098434068690419472647032954196532136020992811342445649175962419419179968843063026302715373467933379651531300231239976261142787771878874103994050949475716730659424295488436316928034330973298074519471875224357286460871701165136680428637537683069581588093667020658478771797883424325643180495243803722275250807386244780398144675294518248500169676107464498470104370243031998797223479540640616939240492300272842594437554514838795462463868505505345895679410245923616044172970357149725027911297987347509939418568015705307142345350415323242131571152787927419484758290656017312812390606374603084250255005853341280924969144403551881287992451012045234217188915087914871798599715670296538794787004192642655072054766323814163099394965694940111206539519196523026059210990832394389686404089464913671906802847344251118764873244037249556330920057520282130757114916225670505900477480951967580760907615134827064300565218241695250782358978165333010401824858301154381390585649008999698096995573968538280097598990489209480981150549150068792463639871824881563151495009836810718357624934986260563626874390983662656715638842743960462492245725633488832763974079239918918440995273808490577602786078278328657037886128841385876102390540539631147180119890058918786036100910411053205790641198259749931842326209172220109920609267944591526257283315236458184375352737936103352056443464642134598517263503356794926855438338359137817214517755227414412168818032635773580248977721034283267597850746691066411553582372945351833398185373290948182708390089935433149971714379855393403511760205571055973833774326577816213288782056764299574220206775602497732923720086584495285226111097352286291979174530586015641226140972735251419275549840587298101612562580028616034866338051034387036039019198628930937451180554209709740590547642599837045629466759760466537258858703592874316825314806389185863160927029972760816840627854321656984115430777352851389228692577926504040676091426606292756348175970702180120805272128554830421663022690786511760566781283014616828220536124190784392080173826440050522585913710797034257124505987141976791479267624345744778188728907310337447730321910479705712575070433854834076545881021132912244029017727298620666039665976057662623819270892672438482993189963633734309686658575660997417746032316733615252416637807187579666704030809528237528425127540038986721631306855668869803798690034351346736491728924021218333653443207681890308553121758529644410138799744001724287688988618736440468722774590658635105472827175177545066616667509274423275079541262714331452023693383061424482622430129644149779709765399336425116483728466741347936015142037330770216235332066275960815534079474701789027959646886059129274086413331086145977999872134602485055566601747012998137347135193375275981484127297229596865565063810409786437425675268752567531652713127803817663206425180019750268497833201310052640938344312031676765217943862122798135490753606869195161563247393813689297863556104612132745784630645973869960723119312499590521301637640475547923091827091039854268271641899539759738853992282883765211338291145278078722734055430903195066649034250676843685843265733243751685349546535383337909682519959618568034672133986276755904262988993218780026099441030927534568689292814911192973913262004351984863591150885828362583816867124270547555713729028155171289453549231053914317894980336245817616288625672617308715051901847920207805155507854307897215980225900345477196662845630975727626784749609974594141627938781768869043757606911409813368114380580219869222395057720594357756021134412389276887325814748654757365571542297353268641733132027233368133399319361507062591199944828175709738990406874247148444403271472314271223285727518148721022790098707184853422372479913170106642486247539024879670101789544052854294942483268588161540211450080191089259734208689939005256516339836169510492418505471799740724473150667355762479975640572495845446443221543334603791008289182680834687067005583481857436675907582863266082939953000640134421550073076074595928005435383663991676748859104270135809273197937435907485229448311991934065949439649820390049731813312441360494779669547411921117451689250149438992620184742785452394866607881354213520095233370559437293966575305783327360532911708516168304944291398332546015915826192574994879199289660966197015112902473822641967727434146850765431770251348956454653550905771235547839808906318891958400923175881571976241074999739466119312797896984814025311348701158949681027157712046420436630437828249601971506431763234081208497711636416543493057772514164305300608915902387949587820433882373442271001683715625540620295981082155085975642966699399971991241279684770858911016247175925778806043781351175716773902156048065943284655787537054725264154448636764602564320579655296493023657704580165293843437609870663162525286166251906688218502926153630097123637969046984416085156935720195969084315295650312994029280341418922037433811974707712597115538040131281188933003247561937862074635850961547647206985508194983858322469388397173518371027040719644263343171968512205775047534539844236207513369703333787835295192523564737884437176837876605932192184135931644708818987738758753322624117937607309167691480032900088926601500973642922682872254447453777142769542701287024878221529756887080878689103805463858570357962339977274507811090069973192290516388164028315969864828690514955184082846756578030878897366682960353339702646178174804257353534538645626643151501274701658417896660475751418390446522824900808016783014593954333351756348983483224730281839653285069174020918353178409536232697179797321812806400196460750031396538542640498543614865943235982249843692377303872941755255022958487220484105569975502099746834280150460631518066769838145615632601167006229358104563926367776349939694703666161273973849320984380746806742708766346032081280514768488643078822836290786815019811061755551364454655093862990239564966811697204294692731536002843888088808902498976897434431540029354751885696529318582739745541196627033288386985469073824739691991265950873224129905608345371270546343757445018407366382416901891215473667385291597047758866676167132720989180435803561343596019535895646938389977551909983683463524404562666140756632735487200700385253432510713220190335897748562192116959078820070103824387802357174162840213396792811063207612098129509563917242188748072676942359737411517584681351031606546590681075157513370299116769715761336738743725660473301604162178732781291696978512857260769624018696793259342204310162164230076814966149998038559394584682540368280310871821993102020182746873138331219710025067237720866889480635199158355058038744059907366118485350240581141288434061985911361981503513100555958737362655809370968813768282086451716816221122750491709886224786559593195274789056355439605497514426420593988875957637355061387709166231121650686343376927687388560213909863118034891551565481909437718669873411711155369111691409792653932401553118921035287146283737501672455232826407516770631139266547367405707317113007095674205714855141124109329932819001380222984842806264128699171510247834472633805627414847587600771140995420587624155218004687408934247933712302617704058465203204680345451151037375601544921760402313073325957719327480605618289298100257496332957799607545700399089622005241988479302198568855188750358828134928574666753283824525225670031420512682209276818490904723709032065627475001290770489099361200078895747866553957813213372493995438863674121370621736437342088357845204218526080632126662575458543568765603882160841929367489014659302043696897814075957718767784497343583509091900275436410477412232732460963873137878053232989780895611546512758172191663050910324208816140655490630496941196796558260259322640711028518941389655440973646360593548425305004448754944605302664498424871030800774735001179080582440109280530901260169882926567917802338423583795531735069394385904412749632645971901124994031512717172069396112435882054562200558914171161724043446417468083644619869175048978298993020398286385434695910791196171743408067464428338656410844760335606629263111425709533819769095289190398435896872302154784061990431697303468440200875140786083676739495115010604848869751549373488864923676800951062616760283630385816753530802114246496146497201594129400298854285431150079389531467062054731396918684790387024930084180850632180421637497139086151296584859137351505743339314635927392973404178054091250971237055482065037355908268185718137596288150686656170416602225357055318150219473055094608343021206832343307006494508789397422910749782334238580422529052214054009205663664097435281300628905736877022690954150610302191584830608144467170702130863469708930564577631896719024957288163040781628278875748694151572881249206212296841846796534579843995065413155813377234096498374636247181723742867847917684861682536843089866446178252470014274355015384450633469367970172927816169775442719974317575567279694789581029206416735469425138185269714307278941993198715016786481298730593558817618204219447618788910764505038106585110913478399847597925949581146700289369885617398686569635479084584722424825788499904053051766824882784953216620647710570247632830432150222815747309919839776456063497878704108795870906346569955807014350573602857286467096275356273101625064334867180246727069167406368847228252142301923743691584899501340276584127129493532389537715167996064687813260876181899544340089704704595257081952150481383055075602481927287556108898249147116584975842120566137622105746720615344589271999088054521791686353087834448068308417501953322209147960414222396675183539850330281556660878672191119312938756489076783675966851023852938777860578010229215935868400192685483605407717471132112722383022305735972817508233076683440306101526676264006164273320130605867282074857736944249693223876367143492664303754335631595038276437184861631895429490311638409915372076220669768674923566307750693141612042884960632730922588181656745638237337305296321280708601583119024887224496921397693316656479884970057726333190916157763220223666975081173827900306089103507718820665640480687094636279736650332259359509457879120419352016973289844883531919088544845095585804741453204040575400542751188876040572087546786852487018240632887700591201426976068134888425966653536214371656918886149630309702063749802400033545122234024895665170311765634291532922267101416744771813835280546204366455134879758963310795363944256445937057793945779057194417707827799299408504306057093837490026867311777705265999076899733581545922159128666889397656191006539657754312912389920776868021191264694041304609285659286115058937161483793795469405188265827930298632668090754485436630847464794634347249004432179207182298361854152546625603763648570311778711287540819123698380816917357619149258329775153130399956941943484478066381396663561609033983552292805929285052244031322259046809321131266085391562551896959298441994149273671711737642935215181704542576309831231519572259139131673072905833221538689069191845351419756161428253860817164404150592173395303812959922398448635099678388359550913029039947551557069798523744179326169221642105564257558114328744655481695047046829721140804555017240974466849815129152880413741431682026608388512216396530155001500068336294894469023198576692250431855531413240679215546042079921995158706113377394829735554828264327227215593800985346990868604787350559806916598643836685416866186501400789652366935127437569165083351387632172398914152791028849627516973045954976311572325188377464087836333548629784349681239598443650445819202964285402391000464575200493074814573157436356917557699049064704371094001080176788861004536074088724045188238327392711968812708605842728592436045402598333991350314154758142087829209290165667055657989163753611105024314584903486883663996166405946365880326605977262199459890728877185073426814835435464026337729847121660320778313888876330545240822002957608349063216745130329064477969274693174042102369500224878287344038068595500473602964234255163064946446221315847408946627270975098642458260807808131131517142695890751907439233002903087760722550667095589740727836563551021197735843025807922030603824329462638135569155631791998523282350148006388297667656581048462744246396850159330569219937972481223820098699772178147518746514125173955599761342397858272534488981531053178620077408293430311324188865810979909040430158061561604555532581990633092065521670402328395438641409622128392669941460828313790547945668885165891890101105280661921842307121069000061395734435622960243386816315360909345801837663530183017613157056723893718781189448580723538248292579259716049754763773870970938754919733814613159748903793668715777058208772470801447394422892773452726532603048743521766132843017080693615942279765199521752428727796121440644740685455158724846585405285458969278343921289931156445408973667212619571294376948331476704088246367215022486279515669482920772098193877162735811022892971022053184473571970186162833882555857140584328982790207797401921632237239279460410450091900972119916338976429290643086395108494493848877481682621910317214089662916729241597474449895802319312712308419028951231002410462123333028085005578839902762253771710669385381767970488412511437754042162853183263050622205851570604754247737246541358986737604131546263175522441099368687676497798585296300052556518073767712903274591311777252256118910355063721982526941555862849578818837549563077551367697079945414764662258431336426134402936555378030932629003672641476753888130265060754465788985028428172148717767911837803074867900549438241067102948401563523403358438497799381271332489014591133952793350723733191819438125163181430698951109859034044577876877525797326367653731237549535131787318025728714673355538002458740625578714230357533549524772084969100214929765408606118607718583920376981159568173648323245144401262643386789068985399714639835697582624055137376807799629284681192887581980224657258499605439281339995095640866175097701750487010110174432764228147698408914349148394391807429361156857716393566227304908197883324631119342004182170277943656179079818750068871371952523427838400657399641997029477756545311235623547570030374070900283361903198986705343338300074501507072186370935261265666838540040746218681095459855024421708928822659787916790622098826999426922429522518765756729199791286864950503240060093025597904494431177421686262036215031406716768901432302671925327596295153999693574293633457514139677592526399155286721320294183202551131309032669183639572114655206512703325961697529607362468876594169884842316287864837531544561155796791100837150474518363452186572270142396866599551329464735265728208038965075659366135352068374003156050817258590751275346952928352948188036101221701132399511954067376913147424526745077767741418573464153056948458220725054802278045863902666570492490148968855410449891395271292925988383906388339963753775856045705193654864087728731832603800223072551329843709142971325012120725940587454738763883560159584365811735701388666039268419992680832111987957052590492868620792676936455475645234028254144215534046386874876750501937266871160273646263317445769532172643660660466443188383870911648285911852014342789415954175415951245834287931228234434601834118765440618018959031279096154257782559265077222693346171787612567300311105919862928131719977258874396575202708262137371035506007921544866389219181543571735165692273038504144856334672233172568788050534331945307237291287761401073043074213895408101787611189582329041468315996838276166587662973878917741796453962097152592803234412994027609358710896809013082738096116448022475673513954377890177475715020012958625487528277885974635173767798018378744043046561862707148483310776336483187992812717177146598850455907039274240828771121414033560696489066406758125450597460338823339245269078208751882552422368356761830547961653897244540418299540855369319896399042603211981783853074028412110435042258686265851436395999245315754568667306892164651574190880707906643660405965235646485659547751129482916786438150223325412674650399534529877261603285412825673816965600529226056078418545762508785196647484866052054837430242047607649947692297045612384438309221040919267411733555932377660261235748698435099853699388165221292554292997724411284952047330665311607792354885950929974169098030383098582790359007304868078094841322621918068443625759602560880402578231949465071749260592156121318842146227024598550837481540343257126673697525613482282612069625775447120444842156438675541621822373616520801790145857296822405084897092826351701626551921319670881505167206745014214620648512660854054530146209324021864306311538945115553538952443571652601981583311274265130197795851517397652553662204425793754762876684620285014477733593048869389808055648072431807062883601875460278660772974460510612882736260491592890418989204556009512957594848457743232559811720418566495934442638992700943810740272154037309934751713772065060625766126865568694936284597246965434418067253254305413039558416663257881852798411686673312863718372177437903962383577741050112814936415741928878196382123373681849319339183259815082515044243445583092401225047830407958302776671563179145871685585083270055073518064101050776903875830606660899730985237005383828071844087844347400812069120797445260083539898604718270114998345178007164327704313296245624301787844686354085950706243146575885865816317077824975136362466571022825966571428987732282078512128315556326324874132410444900438803837715724985563239018592814609886063714286510108221843535078242276950618265187485440100044600164077082414510122207766113024730130432095131746267511592658119643118671443427229588324973836543101826829133875278420823979477988571081127855362480357918845610374861462778183126660027467150729087502221494976231211949499494502895170863802124383833521496809869797999257453111936497458302739985119746353866906219555234722352237012487257131804075395836395057926194871376996521250135515679538831144183710735118975630119516967849906699319936038015781890129405294321011570484913097641243351994346843129249237711711436456937710165162330877569421678377516335667978571493225180477527538119833816109569237446838961600371449840106594892882381690991012420800386165044028787493106464242846171151234944521955069507726597855564691973355589890009936658950096173414564188906027988116525655467775322281399527418498698799447304420513173949615115690459926289530176308935762883763844263763138412475142110324454745029328552716577851904674232581020719422513926584101359040615828040463335917288119870412939619359497145502889491241852659639855708432787401017348864705009199203640203613236894517692461153624556863259879889548486084503492756669573786080349437519388862836506908083730249670305646626295423335942814338075202641919803604669763814123370708494306484690042978062441485976317603530578090586720412635797268774884188694134100183178634289777584583858545776288609027728953616902379627186724650589285440987262556143412741056953250525879012479070099679335088423271380495900621135363451845208424723067712350689819751714570814660224812901135098385581838662456987443874851425244533310469776441264826079424002582948632206768593357010652121750840623075679511925466217104289521325126458770698222279370011410787923753148099724971231542628283521003066105989260361435146137902771476836074896232767809176964361972860017941220806530108796768715997290524870025282913845044595610165854390864946767106169046708089575515675821108882463128348281940261194328705824178198934238170862641480847636276121390160954821030968594694258508792314715432010170432087620796901759740651845096018540704516771854009965527318386137242374462763275681124144691225951386407605746057737501172598540738486515331610820794352429190681946092726712299275154224037231852261480174009324691304665441650829776266491316080255911271731376388032639432828588258419516436918178009600934219988974017096893487975716814216060746191987205786134299906532269176700801716254299736491428265999647523431066669045803798391211947175614299659982306577711298532568763806280063740155083266677447979872465392357561504102791097475973001510511973231040631697733707795149634965318885407521994579131832075565117498148297586843865267896291742703045683822141550427158409704023428253739343268927394029810898594658106450152862573637177258135590852050756767023002149418145665173589120762874839673523574035365105654234806577309781351836654637549754477462076912124044164082244123491013222640678990563868856090821454902740435452436444729432161250576876190032931272627957657325698444512403394109106720286510795044155235050696150369180884072306847850574597748785127687232059504743114310585594860258039721673861956163816247125393766842672580326268623904215166171347564480490659685494134118528606246914554976867197196718576808109480276421048121336304496369527774340841280786668458253770132689309166869031996857743920557201516359729007019283610769519467350614548272520973750473180782963800268055969085214151475123161931968734461492073030701379952676764109921645233440081242052772528953471949085248784705001426711192476838500441309041814243097353363016379360562002976881032785075916123640452226432480176245290210039696111628034275595936313128030938872867472506611950701704745609466473659173913982539397664338162044445349509541109398049620142797050889136563566985802968351563148692346966200753642516566502669745294819535214724853218759015994300702509332623633962612952959970705549074371171009370708570988034040331208362165409857095242495801633181241819124239380811599232196589246432239354166742679107781680090710086920563128626265214656132769418274958587385988571113984316193805175237561093688650689246491704730973041716151262695822224394043668092111582538864604931068584491488882198303766058885147733429375263136040802634704373426624806096514938527510648764472410538162573193353851021450393286871700930721322464241080490470751661363048141206518278407387837429628354392322376260541262162568589310436423445320246608709485887579199462015241777581394064997522981824690491326820392254546732746306676243363192742736109791815812583259772996524510839311186496035017919405738323088509776005030751333218374528735588836522472410610237226316167591634349146969273394282904896659647116535429178811496963218249245926837966914499403247563170462746235377493867299313973975142351054556359802297113479408403789471460238485776661458990102767055871795492297472526280913352875543442063528081740392710298755930619761114824820850226447180829714577049308939443442850164407348363184166637684267091675607061636874407305128520158109398233056245050453106027820000569694364119813916346546945276876854344218898284115331218047988205357972535519979313365670389033396081913516354128157418740720441419743860375322352776400228369029394224126957241085747635989569526337346906243953458328102856790075964910452821278649367877609552537721317776273240216064599358181952778898296324211757326299707036552813471670811749850061320663519162378939239087385962300657093055793588902420227247720575005260943888257391284189505539230578840806729301682531347347713180453612698681136837327350168785585728865203686055088597095133094318564848290181872131270540054402959364893365087596455367145707911726032639510316476383935634605324851441934835749229971611887076692221429863078720898396635553177207706030154874089271790383204727697169749139360610186721612247629761329875262284130107574010726812249633285924574292881753335271286767723085536553197149458580290606063103146365219252959086453127183076698402669737131099212061428162856803956746847934601228145311244115685704489127833756526197800514708975779520055196492077028856777872937157939110707567582441226647907313059903699969501817567813346132631012181659817228554353506586654763880443837186779963839290877851688209411268896357054365607193778725503484353579920166904465195821893122770527256292384708340816873400351210583612488614914265499230212116974187925916987951037403454800290924057498849864163408892340780682802240198060967862550599828788116578947002166941281190959503633754329495036334882427520624571328315159237823728989998204930528536439230830618380404312363756936380696427984666763662238394302247634935556342354328374565229131738688356084309487504949566978875429581765802838721862289849769975414944251295853317791479603714100662448178315320254004774346289478730351516606368337437324271971316938887370021818395010281080279912963558778556162484097765023818125110416580378783214086925995398442640765335705241601662031783138290829573272011187255511928891323907033745842607133766277694772707003992973301275717506793515687192644317507751830092419810772477783488929676375973615417098391120392843859470686347833568570405287498812515695728471356239996727308846243366176920283700440881013633162062616383658994534314595183476749111168381757740525071873997386672458165273383103908054600554145747600276664142623801341048305861431386095937101644072348785897866358588879940384771088146426434364571056601181457617142118579163398808352722160865058279678468797839750621506846742897571203450538264679492308923063400653120454495500871715825753606956198795344958118533132036313817460739739971016240157099817466953919655125855016940514804345987386167198439994805092065206400635078836950468360850491444621357760445343871635332962217462963407573984210830923229337418364171217625291056378940355545122750021188677525249997701482307105068027829034129759407476518902842248587891874092496688195814303178295106454454073924440781298280132995058907441311196144575400309981588203995031043195700563005278295914553866784867288802387937812518977177652007287964696353605067420555531679378140701569160945715043215521748547382453647157751726839204009216071559279273325113798627033475004675692720586424921867377633205387778980255916319074411713159694145794130798832967973729768715416369409838776578333449051161717134213739974797761318553852901296754813422143598543685383017325584719002664744853948031630367100985400106638504778552738599109728222655362095214983224366591892326883535455942380686129680071412064043327261685854050420508412063512256571846221415204752263462197896065199345028271535306546768514319728297909847313122370892651722824201820387604312941083330795149593239035827700752942711737505955772951382456840165389756376040418402220682905573650614380871934930605909140667806005690896875131803882789295127035160311519512424862502004491658843060914171468310392441975088406529838364794346035783349967393167746895267236640096277807918910521796565631292684213749957614849035692628891974708573570608653778548683971615240585702973465971282203216785948571253100730284815904427210704584441210735260113073045013666994144807087712902147365304285064517288842373435628286623270672626144585276754667204878573506397187335684341703683710045661846072431414041297880965465633005879025554245722601423807594423287177697575318380481431973099479461715806864331023999918359354014485253887398633967741375610408427534601381748212174159353924328929186246245961713942839139463611858405982882475303125800741434778137130474921736608954741448918720973072000242446898722719763314379855678619951077889933843699360833139374544266873549533702057441248117759471704576452979441387598413536634235938613891463974317749839924645714161638637538144258810312156858746097878577959379607789764030315228547695995159680966637607850353817936255987730867328519512635588996073558133098575056083675242948062459472300108406626435675002112923557907650888351272409596198652527362997050232360844060512602529929580852256612735131723572058552453400588826479083642042571252978999971920933552474850838474428952939274216250111872112723715323327229809839228884259260843975981818880261411543573869918258339747958491401873653926721459545249909490976626063369333302176579366370829513714345647604741544885729330504829460361355634996009224110804256486070328145318901199446315211717181225180001715052356571758956764969090370388352833804760730032770672825472619646325454281173673049124303853822923482931694032559675779052240386447766082805816330184273277759543737757416473656252352984809902329812933323621597966810399597263692970629197735204325390885321960700421046829371309204258383445872924853902472506306976433058221841407975302826506749234328714309712614046407249773558638531967869192820389978941802207986493189809192740955296398186920178216432850499411888472227612174550119163095661307599506203112105179177022141278796102558486690229042261956093371775703693563002792583176122344123659292348312989778512797971869250965600921716876394186316311560269346523283615159689855614412230240242716379775554660192250654637105929356194135092026502997126807242784099856534242852143778324090695068032642610637704105189106886181779877498656988591260749831219631935947947677093028217857620997361778952019539876515757460992093079628014232426658979684808186592496164938796664645937306617925385271585633363896398281382483385580465202597267255513125822541734527877253073893757915179739945839984021945317195720654813033352515056420568874164927269785063138814311768255513828143473931807615028241144705402755610229929957259255412095253047338240552387822542626841180374414282764163628164800839857979249164212644340542215952645551155532769700785253652097122888737465779361817100228168401484624479460328790044118542636619487490594572454376404921396199690435516488830950636852926939922736617833248770499011681682872292189457535714283693747133721587365918651371555083024120530835272273942035698342196377666454369012340015340704969876615552617251492418281074905245178965960468659697836816804607926320458405113320109836177546281472349731572164382048802348308568830503203741524631204131634127068181807285752790938689677901929175691146365574563449058642847781010374688207913447722439587121676687076420288948906992878582181915152565565583023686254614512688723262353759501263386953006033052087979412933911816587651161239506023314058541827241434979490919473658206778537884855009267627786882154099437134810925669777982326854002828070252779022602947659818038374201676583480618599890425218624468628072768055488142592062960148062510398409162451538296423281159048278461218622624826997241644073339404190060607771747583689660972389010230908057594390744525702312140158080688479777853734220374508364399802367219101714389149666685529279753402420395524091760797244961003764906155666186178949231311257419249369336052359845956009545819472132455990460983467334982708207358923116378021404591975794936540015484846813385283856267697049181256525592105447839660412044019177588292037257481480390159051016290792492220987882047810820376599743717383212213866976457206454618017333257128201033960443603585586200376887004835272168671508874421952686844660984779579821272183711902564020512085529774172686435089167412638877549540360677572006466985976396575507774641798043894114073800860987889304054002956262502344490540812307133341302783625335948628228599655402176857347079051075375137021821886204240796763780416401584075428906273382651931217182430397702688424916713066311465373744343681243312489439619980320671454681091448712342097370414937703258018948601031072372883944091317973239048809774307985223153184310932551803243220854744775115283492751440019142078909009274910556424258557455187228100470493288046112597622992991457214242485481803629660278685363970137899677061194079101849716502867963812610755858230143811706683985577783202777349825443730986571508189962300290609637880044274742462425889886575308057010343129518022474840169084571375624570640770126381906122252199580495760261696276271139403560303876449244914154629547528558252923741210940742596259669348764314325644193391664495697647900577838685032131829105909997885596475046144298326405038392843039348644282328295080102105628156498021118712967042118952077701534492810240673555149166845309135504946764848826541721886566768962914191870481989805110814999638380631041795499354442311670896874833091519817240785445385706822384561963178037793924071013364551228891649327083459994744634135557234608457076866544902732396570238705520139712950091078748488654106451511834776586291618029671306598893911729452688885853998498209250689876470279506620186662706541764895521440866733499110122643867677509337039817457526298974578157911187843339264940508365774941000695625374628046867998444453837923360382999576871291072134815673343734359336368160119081741411761333530229539973043575081592296860333804049101173601984601670850654697644769743267979165983351254515309285057684132033127728627017947482407794976181536869016829160171676929565693942861070455543646914324890463849891238903292629869267670964467555530964663234413682334453673830556587565131364699282103596333637358248059750438385644358714337189238163516152181220773674154148993728037246911333204165761232623656058293492636358714606802723706212115803682329103432264991068965520371740051246734129254525993876374395517298903505310927815874211276730917452002435829306594824906361907422532467926017813613447790313893586497825331915460889446236593778469520044618176664800931258517043513309398698040363878068337361238812867867971500131128128571393587629565558966183734195920480959005709226862284417117545997267959953021381999875312369327101781263833038384901787793986922865592896400381912854845711898045762046875470749252972894087170170302513521985776870099337806295279294804069506256656937762590964717746626500141268237784358135020011906662095255485437722547525459604640339943805595739378238601205973057366333258588577663553342986945989376441439379065753072788655416387342633359330942476482018163483587625432184559093634523926919746160004743149290656307090044178732970461146053281158822818684248503629405150713968671664424549697895518647440339281854763658919278855287551177600516559289951872796424112140702907805196345348445480474575920782677502519070798274488552802722410289258241567368226666693682697090279781985189384520246521333865737529222893204456890445320923455261479247463410959590086736907532617758761667912303531483917822937764587396142344405969197653166058851571430975009525510464984136151902800067768900409839810052612249856589675832596092564944567475104583318614098393832579976111758925857015743751183248411432785923804118344093738974557847556983009368195038061747297914244806064614209543818994845842639337174829440351632457080262030496613926492214162312835240013244686740402203758941121560846527248573649495425473646503109627464685492512288773214487646251714625316072309992826898695759936633165575218205817365382385473491343697179310081891275690917008081347333113808099821599842834626023969020183538983435558527742884214729240890884893773451263821820988880662548608118515473863997356254479551178211542693146278733322441261804267997377314798429752419599473352866744960515749754521090226199725230582103399807597752969277372523400897475540063226924332189414171883047826278636862751804152181158796895389051337844739146908520937955568158127356962632247475108693983926743769010798032665011679010866488187720131206997864951650430335769932781145028468499403037706847860790902336046701643880951947499302013042616523822090041114660351566647729964134510251460458852906209620712236836955055222787451164716547522500428883346707059521760799079293562183028762998864132810061384254430478252473787084366007710856716784420521279172139663383628305211126198933445370339730041252292845521594204504611335480180690693305317911157023058432517098704385446137029572296405615661642085588243899558357580044359680944671492770623216730463591816326087248420535356326741397763045882114882072791926607171505308498836289628073475793513149169628784609383736561736417307584456598281387247056427658840104814148220202686685886097085942486510893764066931602757105297291249464715760512974630117269283616377293839977941351398893722704708038509277904631192454016354068373629665666546062830861351875822254166966677496999926944366646665285928711906693130790747413838260098849770716621890267340511454049329153323021331170619345788699235575834378458476735570415304397244933907568889303009799035463798376871661266838495751227203509745651649196396488160485453461931429852491253056524708639668683086840123210617949357529541941173084798816580016872575442836663694744655756272370169414231614102973188240739252307926902557282077371925017484358089278000653577575336525395525153240642950980004599509233809843109066439076430700879856967424561374157008641175238270109452829976832160129563390217833927718891506414453047057725437469082288345670975095677193966082246266437233693833833311837681989964765792685150950952545360320821448987654001261246941626432605782972301823170187020219220408615477340749370058274869687965289397605191585289573287497554910995419007657331828478838472895991035340076639495066602520173753196621937583080572294104030514074454421871297104990656376582825215728354803926140398798713478845416990953440824988759902415715560191225514481251060065229159449053311102679486354223476994629611707572246948995271798044853885858079364695623571983584878807099258685884034095180734436840823173195891675987845899299437079180820419885047297684635561308737035939883709081227986422362198550492838985962916477836449967859472598724535740175051934449609168621673865429782864372456485172022909500661626006182383912077170120401748669778445211235038412325919673045718135207451291121810054222171962585160743551453592690390291188452324674994074184916672320841073911574638128613657020051192438705895516588003299912466353829665933883478799667479097647138602290703075261833203097584465029774877403965597668026525532123739847087868574999056587825908175340677148549715487053759257703014863071864268006763564242710643713793170029002892577689412961364545829352574426594631517418328190768195734974649221256708271939992087902963994341160814257848171453118728143687223328007150744593286219267394844970315675629486309602624121045585564108084998840398341194563389446569579841703163331990209433074776783790157642569899627627338167654997143509065066107918866384628460106527675830775109193220932453119441171959328340365320958923301872513140907979049816865465085990515154443442887071032459294223086481525403516732430389717498238425665851979659785505282255005942468192938712404307827149249928726807518429222537695252576205430215516896879089810279354817837941002036730520966815595988022370318137706012191580130893810276602514839315910936486709009051369352285508291695613310432140817900969594731068512597734318086304194918760038523030351780579380256554076946006287415709522001186769042636915780085129359521973186709729005221787664646901272879799330064740717641963172616283559769972034529084385755166197384272630055501368507785819390361844096857936660745489175318069950031153038786682387763995649420946991555145983050597927661036145720303085706075782523431490453778252364833491679064889392506230251502863401163434761705180567794581836888423171937453443813451258013100743466903920089360583585479666028269003075542957743282999962356410884613235879750470506440388950257088839670735871911689859761801621779786911242163937584205904703909837966144594548350134756518751549822550069980507100085583122168685998797188669670729711980013338672364779861053910519423702994168696328982522362339436746511257435187117187342378229934274683962851736638803152277904730050834667413055189958455472312033009704118339885592325151264003791807256827653044094132345361911113562961241187196160433426794068216926756888333670801620708936965212174343942862085903771494904188273657957657998223476937942830600597257131917724987050194714287153456884806400017945093338232764721534594992363855421087241151084436730551476435649639857549195127957148064555657406047623639544741415395070357601758588936624180467501159599984316381509677720231717704412099380131667247800509132638994756721643605881567208991365543130981501875028998899928504063652225213130645291253850755188946251425336210739337827364443026425180026564350208645270572401270710653919976917026934022320401794553159324539239803797304468654499605254363331976929597811169795114865250849286880159327444556754273850437047598336146872884410389104131227112358681954375564190945336347617846985574291694574018480211024483177491431554641297263744992094043277870522693295653654407707611285365298328485775734185562250714745976694067009253325255854662640425125575936163166267248315976952389544475594092826719456193473974082432237786312335808600964466840157227257305697822385855197158244686893100144062284791458600221409846479861893656094779596407062805328002142936836131550328865548175557354374913017006602504327396469324735797033116996521014774222572653057697059317070575793428356854342932333529010390628574722915308504330164829453481373299535230012721206902496494376149508943412598165147750757006086028966083071894633740490268045653390100335573768649661776065968030933692116218241252022736712116517437008180812991639108523083704018237894862877109860884134252935868276610666398584857514436349616565861290484551961950969629863995808175579634399142685944667673204576466597556115415719522638151272890342684289187644535521955259991747302694876321056332199417528704385195488372290136328866931966269468911046366682615461101529026469710437061615373686262414866431507979624836041075051943577957992572037362135306008483947751380667268329286182456497137030992083920417460473126834632806468637983819843347708797314932325966956051342345853221587809339720794182229292845143294893247801047083992998308228372977990661391483515115991006161985398945789820332523308153869709513418792320560470897730759933204048017901869791558349998727025942728526158370683934838118567573468144793122003314600255628629279550474506658561382663215725269188188148429517582924936505916412511273859754402848047579226396443443686855131933897986694165858313573473736435575415371465840797570153984880139248273246196485760387895744321195542348219629397691460971145203753109724289560471030859067077814003992083679920485367246354717575014055502442993109583006727250844432985987512264825384756823077559239107022939617760934904132007949292745628871985853239238331501485500598655019945530955225417192984112643676525525757555159097083085274506919486644581447889713671928486241746531282878845640231146305911762234250700442567854684321969878995137508879616658438341334984618216529291679524981437212388645877965238174399880199955795074634711802484914499668564477315675446647294232778194749092883125906964444903717601748288951150347121983131299146813474173239623313117776287264778409971282862293486076178472590484709003933601322250885577177957971761106754800733565648369009775567695955985371288781801002475619382414260189086177514418861737882469997883722508905081439931242012496268028935721257606510893736113718546871877690696741694632067614654513348728192160377113615923490547807211199247519445914748674777120948728906790936223568898762534611819748539041366535402592242799788947395969056607347085446982223826940442142807827312028257327999617197171809272875545174720190529526170073451347953946259784441896833238299398816308560617715105945274642476676721177797147068150052032182194046677508101566949993092301788473759621322579344729004100818704573696575543616451202159393563056708293702962015701861542002865801931679716796851081388438165005042292600814929044986357218031758631621926199839855135376490226555274870201110865765588293077638636759079950094282950795597242244777672006568238766748505910073140891473844501323468091484201883374270915297440450947213980757539101485059475898569486450023098778840615891081513513910506239928184400359718247576398089751053403060987913240427486614743902504664687540099778332014806124223418474643402641877745679125744501746193298829032535482049198634370073027288025233836427750238180319767808062665963563370352091152956142971442325393300632284022955709872688146774047714450869823904606146246302366029988197074558823433908879735767331308341217516401481817753121293721647705683308393972426912110020631628347174884545041252430543512478894053479274393151112785903348102793543399274624829093775021405120458702642729066013670134043714493000238017313575109113366161777536416961031490861825156611294385503995034365424017215124188196928903123399012500515911162329384502349264016357881942705661224343078251784029019069349142224573759216029513941668495748108046347284045114923849619520872279165976078608402532984714452692679925962975637119453373908040894457149446425069523850868037723641360546152233737402358913857998072967625175607010910056050943619849935620350582415659150579299373664655162399357867302925696010959287133338450017727897861669832433617502317320784586236248391611669699499224974344076319364663421943655752445599838490931859301128905037095885511451069799080936943315838353399762349124997246699952860638071875411246815725482949472005735293895974571006484632520006635138349427267320939030472969289301612470576998077747828386798867277258801194890186171922727374673271970781289113547329208073148861182130673949572702625711646696349109858998653002716511442444638630883501493029056091757937264092733405662408587769275370587111205927526337064088825554117592086529774273930186053378019734724852866571941290553365418948753370201038415132015920202631315214470046949738912615710830158273980891624497593856150187450728961650963796213162442537708735952930406405052614379812801936162291722664822029791927642091093863527904173848352274626104552201631939545823142637229839429239861775070646816158584353265560027041135415321569092443132761701761544872050765612227452933788637023612315566632946912591437538230698386893573761297063542689101767003789624330467266088848966455097006246123727530017876242432961705987971118149300933659088816683251764773191631000266885933799367880286448239856459068060032464573821824253341817215488910229027079490244852895894074590717313955173448682678313542935618780654760995552017822457602179193323249854668516346619467308487379387793879904489240216760025982244809846439780423509574442295690096242042429991758701288930927918309068011030039103901328664667687689370901307934465470638964964698667840599569438222849386678564645798569349699363405645335559871777217336744736697260819968699264190649836769197055379509469476576865961000733669286889697055929354342609495246481270696754650500128582313772706719688805168696351281941544863055568841168519937578797989797808201181575236730655128469960221889254589900594569232201478522592481551092153726921069960444644388755547582760131052242153368529300275892656597844973481822637257041065279130582908901964429283601832456809665529682640898554323355100570136634263899967879595884861360900550045679607647017860874067925836823674366896950226015233759461528222081983542918177063053045681673705104570828747185528692041627651259464576635069655821256778498508181960694371834895772120102251192212351553297934051731546532609104161616992572668816547239956944328069990280794405531523676732266383631313322033023824521480975493219368643968435559845555534144267333886287330474754215432905203330853747314541370063233529670468706865032210378560020163061165651157784482466897356790551603773658287632214393419480196811778770069561471077538171741025743287805285855228958135639407463553195406082008632288833259008358125914032714541327816633359633972403365428149679133104561541247163083994107649741209972735147921296932662012765898459693921031082966069352327956604592035785849266954911680607493094619582672208173264282370895480208849189059889905424045298159835454104230347533341723547034514860544122153621436842042872115291747124866810153784746322590368533189621003909521002218834499288229911666901640412990610189375631955288148828628638538217553784401761516664562450944652153162386772526177672796542951420662063273458188897299816329395871440221706094315217992068395470594961934990646085283710721392393807996625669084639868381046023345685784928780166887063368155061155790157412871837134967731385664601190351692107887919531474699361993706329695613176598887152915897817259028202634221242552745463024926067478696178461702805414406144788574244988106730492773147701252681263504488072870763282953382083841815417225420693714685104568539241391424430586367333624736567187199962070144905347007211202734555677528316546763605711371164604278036669446790029931972525312294845122057028527603064498472062024554309412468181467568799287623033833165300854277431652932678247621313853342635417975660337555686611834251836108227316885173950513409704821608492754052090358463764274010246712751570188058791481302215405984943834105975057040043391519927072443431359752326133617396576433515151408159468646088037846319802386975848336014900692207733096785577690202434805531926188615145193193104717145823994988434638877234309943238387638591659463593747809788554926636955191296418734525643819552266587256331403482766948123741104153783965102936708415746742650248655810550111371980399927462488002302979437736828330381634687433553156188415243169054087420672127568542531913826126107891684612833157496821085303491961522324735448820155510038860079430779625554909360256606331184740371703168072846551718444283930871184947451614032284624996771193393487392618552733290198674178144857172535550151794898155894214797914611592504874179678353929295047836074540434855917468148788221051479303206561442169969153477772268283500920225702598607893951436791524669255008061540570303282031309348826817117814258962793840217918760275359340148576374105737004263759585638069878375823413786890988724067868963329018213107550038228256149945423132911937231483417772453909269120331381667934171950252961044065816839217962045046633738294172865303800666320785943188654145414354062654323306947224339600045612953448265652371370541718476239795122420535332206173537577501534736769407778248810267269441859050074283517545755947362846882034218709629765369038441952129475112777758639323943048648156767877292916610879373621539907317490432265611095161890719554443908803798099697606244203703869603411720177121868724977056770476422890509636224812773607361984223142478143327050676869191436556512663909355705845218004907545296208935733607675818558916312744276857017016765837118308460189457197116190572768726165888270990170967575682276557994886749442279775529579212949750258491026136490790943964342966295554604928842475246456438143841851938303202067953309094397622140178486696073567906034032793615111163983366932732481294108202664021358977459247243350237135002593646546793671448831980241286601876108789261292179973987828104639706338212429171363245115902534611155274077514583098050344063191869614582064607613652745849915543335372276018814504185391138536821546358967493586956622576622189190358416697505427012911346408812121416062392951347366537680692161462233003456426827140898853020290523260316191803382126000791082015189838756839705884840252867557227040834602784380892473652884732862461372910627218205953799540170233792864479417340989147345892851208431336309167038538623254672336456884036445634852898431898424619591349372022277257273708589589014916719403079013787199510503718123619020603692710947111756553210452345374218136375121997714798835082055689615876696756253845815234382838027325819901185282054452595778124459148664861075207742900195209773338818597888996351553715170865876218222107284385737790483068289413258906891532481370330915632254723817319628647535535201427437601959892063932497285056768203382901432430017119110771834045067888129356263541663375642403906773888204796868495427404446017734894895887025317509918452393273057847270735252082543054510348875731933722526128870101240659863097366967607259374966217172984171792208709151292409745387098036615998075258457189740844992944957081583157996666171996326310658150808566300652922848756656296448573661241014739174534046882614619651265739577443243179765598060799753262752257156653913365252061629229786309889038528214519381305393046217839566157839939620873599359124814491633808580057784528491792135473720013347780836387338464881828731534848958425983671113024088091267209829322358362069286831660122916230381141655621120089509457452983842692470616151775795863818978501140737951046838963613252897598703370902877529030279347485424936304510191816147512812940521607366487663757852551178520713852291457611906341389943327331646505261180234942957082378840406747985585915297744774570990633701655826258250394489318008235911528708825710543251655269381776330288408545334629958457163658617257531905807919724820473313520766090000882506888273787421811933330969929384916067088441904602644917921278689154860268585618716771596466424508518590208977760863596084648533575633096982118063938073247501256702026207320628758115638553236350213792477299782185116425520650930690647175677906050235255629358372839894508892202553164379733091103467156412992021818312593777141754550415550400174917796895691605787674569687337122371913720924647795476287540607928983945383702106965698270981361171074136825457345376639790127787292889870560359269632572116153376091098799825982351455805482801011085020496991352040362024014708726948029817344074170789838663267091342245321879043530658131822513161883284022430079671971159765627755160924215776290141655576393704339364570354681193824286130456271997927566630745653607612538656749683765151427795618394598367170532508252885253011849346185380404422088744916325110257676042899385398899384368256559887726455243141294450796001490191405740466258830686929382813691485235187392897365701169582457375316664694554439831402770816806975904103779972543479591292205459865115409096205909662209114461200007061150168363981621812016873270609544417445713143244609805625347225741870915369172111302426306162646143391749539948062380698655611660640019081036019758256742151490443784109707305918715918915532317362822789886753721202454404966689953560606348517452939945244461702269557645466929849283961617288857557452744690377207997391979559259224959002176960831244541459566872788034316993587343176113175728246113078682509565189742935274518942803274708608201834304619462015912326229647726984378505885516054218884129971315135488935024674571907041684366464777638063707860244563586648645200090676945463282901279926211950582077047773435915239475408429863555737037497413754241903788545453301246577107918521534078994375387979594918258820011682260380484556096447643545427872716804888585452728528734440219143431956599040896566285750931873428348131722607502643535105879631112378720042510576595071035649718663190691225098626726411570413886275731068498149854937021804946394471790077995794717380374386945317691748644077416047864123736797428931546007466958285073253012897152325142080935752920844024833677996382816144563673002965009793535343364551351279678882905081857515822824616418376183440367021115021454184355933320806108922499225004485852796710783773545972223950774810830469179238287042497893578041299001671730964092959088446055795881194084873502004363956474343997092668484985659233545754905952746202691139652042098958811766811580737058821328459020332955843609499333949570036598802933985645745364192548887172765716088981161876767949180598979474953747412449127142082777582628771972801515043921000985142905864191486583138016588979212369823658249851794165642083967709372099183033979947810776010275631040908913869049701929138526339219332387627499659859592907488299524029535945194630958515877083074951061632816373448242607975903616041893561145788717418222148906992637502961912325957297859485543785612824208312898982761984076188710189167071056891636413430402232680125079813814246019959756476336550861277161136434633334566054546556690127187042741630512262480704328442126886297979594159355529024395086604063868870377347798426513472847586621948840556358624543524221975491538522396593245983813207253172681384383175792786445491505007905350933262167634709620546592888502746519883256697883462480631642921465246774227282142600405214469899819779067319528663374256430037670515649394051492606785119622294724614124439408141171803395848018930916279877241385301605676090014364150229816970286129463559602582434553153067390963133135628043458117642675376066052654130738422773421061782383530794159312947833609773233741606499646261868711020944896215849977448123381289369656914418343235388543323089781242103695371349969049686358690856459561940560507577247850754704882231196658302785142676337403286842890347049059839214892348558751045859366294255703490759345488088610461577399894868094383236239184421811639651130816039943166037844510636482450829548885337541054222086899233637572170263834310795608597555380590250398225788370435789674504091488730021902809427609245683085376426333018535459447222743173743999719170585624762827446693325697931383576180074146659308730854931721836925391933411710180865197785579099834765382029139985322125686390589323243209283036596656881713132848674844681078967959803806139906464563992337288507549335025165527750968948138587349355066148896987503430575041970132481785526606704083204281545366562002537240731352755202889912524879924848955011616683165530376234793959553265727381767276990621062030622324805281068373735445270816099374285945035614607018424989128961037893791904651648349506903788782641317734463685861603243564097893349451370557999883304968545493913588650999654218726956882786388321506170272233009980609375513152763777377971322408282764563082887171611711900913501610973700409230902835669057076127243392212708456296199195759385488099330739548793545032550689822179882146978868840128776004986310548831699968471312348621524955962541833114707622123124044211826117986185449637629826110271369948591199321172543812589109560353095066179191539005215835449329841886976197276632993328178981018018300409102364832319823702085048798032515468669703677035438866635261958659876764162098515773412129310717697834297853628114336251291893288599838116712601790355847493497829134310733190189463222334951518707319575012353426553507356925505005420849913945824625101397483300027084986797458321228281537066426715350945695940405724179646948336215350904682750671194427293138663712055712421025934518513054313280320925247732665138939136318454490136441391477316343486211799782482826573511773410419043725343314308743613710024687694755880015960416984743379689190858179079752412058561045668098606537676847844756206063351757805734625604673071153184147570735659824860523293482906448594695224327054897609914067449843124790258590734949752137558066303506569721116025313988872615584423394528320599869398616890390438522501508050516498204553903277032275010894005039965290205915425265083314085336239884576284556038492594648412266148996833656211989876497077827228656169225954511880807482810535357011092941833302652311122600591465284684861520204961673801277010071330335417428081205269126036028531922383193615650031124558126913540457836528192773106549745033817861662659818710782677951047316724063590412231206141775057280414894446867294979980419369998812294349287728277606372378925738595367445851546920401018405787137037473448638915718825274790005281918838822926207395186436236267395111672125505310279305630556674815148450105417260030582174507989105455291967487423915117284716776895414736955101943916342024284543985707654744935352628045074937903929565152388436315764975384619404110769683753805947459101292792389846959874443256212314049907453325696926849075878342366561753307934908451306793254881813912711399997930328346979067690433916737582401353969491258259860976419185601834040723778906852857298983962465852112375835603791323905225506025963010433460109959649452015666405890569301905763437515303697813879113590722064493822980224572550304173731645172154707146465980849718242312029794397037908434526430964953365881444705097896252008181222287497995222642143975929987001052006744095885795349646655294582631139564621106229502156137883279702728083156957491325459202485087686984253192249039539591706069394044540037289155671739005572725785073690294068358134828432994963542720588301422119484796523782055517707490597528398651080552184366405656049766791191289764266419403117776441103038990644482535890084933005463213696159372714642852767788499251614187910788598338671682167236593923972473100021831733289859308861717299603012192992927910066079732303521348597276497413057876850296785915392190153546292514770805366670128709176333966171572492702388395415344232648628816483155831573133729541710706459693128584649037609288649184955073229967374943914974445944649610024459592547607657750977583022180393937355155436478722830548497046200283031052681043000396410188093541657365344439030571667760861474544140110675958399882966303651793350610447249181487493321167519171685846978690491268364034715513168174575880089104248731163028239750788821917517928869849178913681520177057383131547659266457827464694432081665472211768787971533670583538303624807069489177722544781957011278964479643412460932805787629958520484303148104586932159486508419526179537544698963356924214475398895670473652605584431820725622381418403973706254719666188180892079388181804887089882595573962931189284892828232605644466155727482509170084755304914124330587249190947861170770838638217780887679078393748803416429714369383071784556527188962258338741617587840878738010965321295719339933100909534322972668890981897576764499679572255416763579540993385014363808716517283875249149751645623888336206189513273866877828603009153058403914996788706705324564057379864541288068930754448461705198553994903109353110145122126741652847103986783603629738111664744666672754068134637309648310704988021790007279907012110255064661282223370547834793665293246951967412679518586302865838736426537973912869382375968789688883212014623162192530853685028077575604572861630838095898835920641977608321700824343675629991718795061149066316074190750220400308333521402894421250296122586240185686589703357317929201711376827022506635878707520123316640566016413863394711612111091196587401190525551648870905132914567765748855459631792587390529795771695381203456771149288941113530121747856155140970320097139521776468001568105244482341879565012206231130356728603232170727615999679041334677275420774771823270057236841929025897319403059773493804619363394020290591148359749126643158241570981380008160381012959105897850234485911493243594853919135414626616893969230753718373468174573963894580770489347225814791432702032317213732847930930024685449318476516538221225549046199445551608256884920415079174485586554605832236391216860507386353175179760831204880480816062420339379410447154671662456350091340367082875129081916751311257846279681650844428067893174187434216390341946884043786426707243444935930181112409191037153819904388049780235703777107017986245307672457136138574768298626320772512176333309604319314832127676426454438156968299631300265579967717350606041529358355943872580028843432305998983607282398864016833271337458447602158786077102146651151590431236045899328990009597479445220122498652248856498712841352316772820610671280305988308379403423952272090648974724143587520916161568185757177295892770946889784990682774650461395508786066814072713320538969185236079344352013802211290493515603414948565225175458275003937044152062540029024192423920859928529771271061357240542656813634510491108230461204368498580286550892827011716907287809662580337302822521863388959890954858496443104819275923513980570146176810388043660338738049086040884291090968755961917666029040376075075328990135915173713698626824298537747455219841385443483437827388501045880165839294743451980534719250738717825508459814353175734961209179221190117908333193928037377853328143311325984659105447422560379459947131295250815275128874777920561043601418912478189761247396028387762854008761684363754248355059806893351445095660898024834565732292937366989087099150020338817450262469050049317306305122604294603444998443963948895399543872315908338680677389887643542432542267549540620821403887165785447757922913948919863134842809700295620685168141816012591053818975535635692900739345738390528114022272203943009863762006392553050264666258369488149275102219262915487559507467040766600900939933970056809671994730083652639875185543081973093017422396030504450435407267210138601981323801703282754825662186908049308461654841523053984941951228877161362418044040353907583561844763321537464453852838586855865210223310651115341714480937394779601221584050325608938634214552711067549770006503172871469206819862615227401428018005709030836666212108276685714560343313792908443067571516354052663229478902300008918000983086196347886802711323022138923106478555542299458203244820745596303022605515788767997427099221143076577236197651673313595416477045535420914806522923620908135691151322177182488253871209822264512718404308508395772281705967787556354815861448833376612513890089994233606755018931650359974574386497472549339655776016032398087168071161975748803695065147701523130439774297991661198724771944363128164952170038986376027234915225501129682869379136047100718162393181322945199674692809701777906924777569266187353304156134789290982207491153182172102075353371841781432409251339326026702311452471196333059404621097638809635344925846919497591231149726406340014249095879449104162060088956108573915125949420611756406150334373607561107910338432364751376153797869088575412199060228697483665061741151072278105698057244713068072859646033365635547369268259761091171004896435471990957697651555595463845253306970387092142847654835466090136124083229426617607890287262750140093776540596409256851411198925123397138808539024407668781297697145891799301189090495098815199796905131172481783351704031233556423486189152792870724852098033253851570384739193923696605345058088205549707666244508898648500284640391179775678851342623514836576240429149913446951027954636709432058059255409897310974177633461651148935887733131966853667395535993807895023493778009686351383790277138836518981198020385331885006156214422639835711846007443193353674999907642722432586048990653394023309170861669591565749656964328546213446785099776199912561574354771333619674945932935516335249949929982883174491711199619338178954961193028585273270734368308349044818223357601593973340366185463740131903646705030899092440872426040443380197019416169035710264920053495545124853443464359258956547762230830862327547702038150294012291846080999297486713040940416787101328690398820941610928109450884427640327268916966735311925519795722913430842399120439060312064659729568306563879434000667452169144393507748283997492428049138911838411652843658632241212988787878492594321007891600939796433228236360784732575231728762026298294748800090358606844096107223162922077606952249741289226260379804736682127989098859660205621728268377742599552877011686441856762540199541175901164567328660977736472005766076873427521442662121958648509018962249606562448420853539144660965172896521641839215331248055231738282750707019126545342176845348645395837567312661519847073295446884450270651548916542125026513723281309210304438886349184310231703652008583056674363894485742819268393003209208491978602225482041868284705482272815819387664236222036475600676424558982509982064017196266947778580306685652411953750764753012683510350371557270247578769835356741868782754832047118552714959239006160238534329517018815569050645992470926806673369621885935409666688915197040080763710656242528036922531322947694344942321342156686354791317156522980424476652085570802124668745337386816160308386834296839522267286874461403509538823768958987199020491587951527414460800401918084648037499492255995537931816544819672304651465234231094535575615406087246346704676934683173227378342762013780506511164303004672806354713508503775224943774344332463612486932137780152166000629864917387410912655725834340142899280785004549566327708499048907186133303656186919009337855537290208470123747011078484640517154115006987823185598756726743402225751501418875752437857676485973994888114315283680283552039342754919036330147488562116917301018047122071816221985605877753702608143104772016668825539756118046747262161075370743719219319120363344660044054810160298130601566582204901652740156276844614548920722713810642613190001163908421900432999508043048856670112572291029774417258375001961070047336016460286782407526673489490490066202443369847349023534695743935355442913987812871922681000242960529036226419057462430760203463034276582793753298838235454046948058670884561034506117683845705991895748015667507524240336003773379979216248365903767208768309022377655518424945330644697145499635509718592367699933025928786952361602010026343705926409454320164916945366864142320349576903503601625939750707939198206958258268657901386998535042306948578134695377875900334126321239488290123827882515191169942648275840124511522533751986439334607859480392478328949877711300308727561053843692533204736084092421115055915916335589313124420204877233167421066954500534623972641527019506525788134069396576383829796796834194692201563246350861731869290931064540049973871371473458317273898810614525662288569517722417034068976520597135987891277044400727024276431775667488735715007568863396285389100779053654008384585610600462043285336029872915766904523217915601483457257575373395566901716656391025706324726717051084969138016395189396083367166246572664019177959054353310944624996118957416754865465884028921109023991136643968604219033385615714071939251727809918929371270323330934451963487568291492451720013375105861254435586597965167155180521647817637537824352618230316230960446257976363678884829330969732111348863772174467020396225250934840158853192241680734424623600546103322314373563374380539759721634609944403869082325084641260418177662601995032976383767216062272609160203047703884942910863748718802552233940578982414228935212007587291954316459788024948110148371164286876793378140648096485674698351292721662425686339711244365189516117386307626179439812575433008585186775987565014815520387706422205100457336119878289065826346315451427608474408722221113391083125564602496481690491978144021042115325959120279746221556566736705130622513697309435333085487827123557639743010364471767904866018298161138183696635419966297008055750363837795908448325734209962066835300361863064944442478869528993579177661836740774455216209632521270655047163926385533174103620435956865997338571617089082473627976599493213061601597283049325895540035175534853772972669939330967372790262187610096410534729519209150157606684657530183307031335914845374002579330702893859852685995775004264978535882443344305724954391029960504368270708181218627941916171482949486611179594409960381682116622363984514094501006888383930925336218550697319222661943569010732550316680005399834204898993301710263155487891060726368134985306758281737093764251268474604945977998257799677654295341338449130915244610915121138780039509896187083208013870990806174705752698092202748991159964082233199478375669133558461921434470625741063236508419499220779969130781818542812681548430403132138525472897267077281800688243598295167222163103732715806200220423458756091422822709305350082941292087263652390774805402143146411181597701857019916997873494768301980736030597426596288340463513299854332080574751051178128533686423458166866576442579028505755850202416799874290442028905265160585509186544018234529695311548056086024859538562767506648800905397814702429645350473684640849942387710890778947226897962227591855000345137276463064899769832360712019058694583549207476890465206827553153079606954637277429387435981399010604953153546476038368412315362293393386859268274801760209684703364380222643157553931016200467745728483208433636693173587236546837776911320125378641928892438885295035096055038385583222533300256150015562575591901542626977036919115176077871913691067963214530889930100065799774343292980997624897601809974063324970180684387299520849854995797104872329979183331432673059370254402786942504322760901448966321834725060759001925575992253815260945447596098825800574801032005301318464050596376524134720894980182889699724897371329005311160457577405498490049904752838352693966447023934423023163530330822413342233146512414345461285447538015803575972321397425793029396192769755372867435949639581280727959341936557128952751788996912107695262872683470966561160838413194263086027472570851208827508621026947704739419560647147323727951626352734287565312118166142097015722772044962666093095140423289662659537801182835739597284042731895252856818765599500240508624210593913838735644966236465870780429989364993984174230004282366574669468607845407159454571528430824231613729009521893389004777366653661014528242557602568233520766525213137422691559011630499138143422509977002601362476264595087762920606395585718662896385132887274928813079783831053026361496404629674122252775972259295709020698398649357990887899264063579812544068542616844007041797551960778290988108742946307232256516486034878805167003146976716314858833307510268928893112900543861447402288898770893634542755173536779633444109356691608326309766640215449680584314375421309106803356208058953277264149828850790432901931426864708372845938554485813399831577387933919796697497553276260263352753824329028546195955399905601259022716962024179867512593403202692352351669667284764115098551390719403996637109385075278310930690719755603134618333432086209211693100693964378186842506836693837510041100316603002387543264083024722560820404626935402878459417938914365667486807707570350478789661857044658471449664238770710054733247159804852543799130996193333885912747772629296289053289637994849374324974505819876175191924583793253729294832760995678376272199433855175743441151700456279285607045697462994332317142579705124755615568713325609820832524016001516324471827427245757989683543801637178211095921783598677126496153807226892651262607062345542434700970095961884929588568078270079099235082903109389999045072839796492966769658994908111209729961529637320296412770951141836892474586114886987662311228797762112728517853156528669642099445586730525212216075909692317095160518739910770179227824147611358075078314974742844002594423148577004500647904900348984557299303837912041766003756790150526609751436118429240833765668344371204104178654839099395190190854650924000967235531360957578807812127866493794451215708799774101971911728169781926875663408174005869958677170734075831239068222207107613548636448372172699876135676260591865606420073831142543230169610027498603001190609872967235930936326080638286704042337458582320592591141337453325867938231636368580209376445416507592480941318879597653043855542464057308219357049494130692583194966306059273329597495589590516412146731061129056336223990029626746725711189544342101660831421416591742843707658100374842086869481620871132456698664854780046959296883593615471798640507876077903670443261534630527037084128333089406949696039902248324796166284014785881251252632157697933212433227672462376948783265450004914169466191026633600872109273294574366851363346340152917270536516826380959758775752797101657038615295685950832448666547183963514948392118987731323761251441093078734690311915450757748798066313671678814457038169009464628366061726542786697501162300548759207375491917699735157909805532672951058443958526489504101052839165111549681704815253407234059750138265824440267998522143402420847019527283753435371847517475818478895432051183205482014285367477948991081099423383215886935844141284761304622954200841546995593507249018930764595572815018822911289622924674863988828348456502703034107191472516081473705832317679776890455832094357559435831450289780653536888189891104392461710852723702267087115376126317794043787248162025710568783952152279290756168791653594406798360758814906455258568548093399796838741759747594652928769075120258498703525282862290221791274692111420060190137480972094225283324963070726154657769867782547398851524039566569372866366349418248924133608720423667566603078439423069639375380725786358865364128822052793083536363986181333612397872366119521320371934294768949609528226006726068359336724939166137111359744058718245870059397860468149901405098890952858909482770460863371870252109792270149619202109573126219663415048630113335686010519021986128586098408408866127382152445018305586003808557221206246601261058516765451701084825980566343883345199573641129136120758943589700746225597217003835477036962463486469339218770937144194118016065121118494609944080952799310797049093337955294930260077270656557865767999953190093752537468419758087967578609045757975386557392309687041353032022043543560032668505949135303609993941897748431189692243118083050365153884466414853982916601331855467362699838459243884604460025530038304514574289481053409918148735975251532854265844514628525453587351607174691049207504005395680590604976371578570143231366079289255850821804172438291443445181281594206809139790064713583480640740280149726307251031718989061958938114820037604533640724720817528574170677894710382860417586931602741473159051882074141972608709382492089794410201776535778043814936193388797459129582836062835463170773877786506553172625987548148305474082699699167729085282009703511962339870328632159925866436574135466052801293876832192721279035614509111419562544812527230257230297663284120284226064231952879734066768908998796663837140366099973455916154159080717716390327126823903853386981148738494334294432830545442869218176409646666494089609600798086512613024078412064137304914734035980113625921926647771349168303745889389854004228622009813565159403174523289211426519109312850671146171075562943994100322455746155384001035466365798301610967700635764665370730283939468060832077794889270111471917393062711625237438370176540474668621690233191604193345642630280156378877119699975358176367488754849641657269036736422587562346367235535000002668920960364265623431194484865075918418753363228208611345354480250951791937344989420235012995651223336447248138302966370143640721030354782468943820962559890011855107911877321478147793292734080270923076572918130627772771750368537944332225240880178139357521449436120242337206621489246342794874385470445170888965181760608893469655349151851934561272913905159808583983671062978789357789472467258056723188044088709909650413180723576046854642077445367143927130862449859126504995474504896045936245750495997424122237140126187831723348949802432986802802617943611228280060531545396176172918479242019545304688711776208527068117796736174622778231740666737353856546243970097039028014963517909451023110928773288333285944408787792354609154115474781456117768172025470376655378541043213515465647540033244543318308709832711843353468207909298997474037289604658966763248490740255180979434796839418277928013986719489339868763690143698076098270801695616337941021717742134239433717679134962861259306162432015207128167285924564679769410733022481125574388496159627165854515303066822608809918515081171704515246265208887591469216863100688501571922561957091745003754511271319217290744931822947140596126489719736442336656920886912833220959691662249661294023788813884614229334357800133194948663098819892974691260790265933929812221041711576877953920584766389241945330011286760988184579613922310090951616255491712585488977990548668144245702410127535736557768303993851990737407260739030464650780432749941104225950072447521675890404989372116636036144646665800079342952511243012171806928571986647730886884228476406562941325901523547385833269115522665249729045721334452538971726063529724321602575821336515478037152806896938434734266587028456075611905646311904397985397487418701403293732437539195533041589276162011485515415082360008798354191392434215095831549826518533506803592607358383917236499503938085923670313858532879588418000179686410790719052045938892821063836953746068789859923928428710559265994820569331930837766687120833740362906581510781433079233813571901034978207621702435656015139476823009449006247746234762163377536771378007518000924348360201388539356822750283632517620970980071306653053919294871709050294582254094447414623273258445660678643157755025092483116498331464210764407451736184719888367192971283001981846023583179196044846459485653144731357092432073582679493116982290981653720687727200985761161256064234623009197205718980221386862824654319383349099933095635757953022748471400688091050899180369653203222643251421191274827654435634683285171308822975754598070634602451268690727120609300158756862671356100558783218533848810464099094861519345521522792541275692302983380740324062136358705607942230836884691374970171858629483376262700780971874066349139848392083969536609847933284664932258676237326066103650430161611808493462860736119559809554908585818887992401713986430086585130767878899592057180133126073935615841257459116870554955241819329597873999624875351619258193827642010190065154390614977484312795453876878111435788472731261799998533377897884086162720036644724353121548150918495909373941493605115013592291333570686211920042691039030442380801917136868815594736043218279919328498267578110048992519645847862486086569676472182513011651686988854578348930625644500468808166494666146753554580348524472606816969538950647819507253483050597913193695699157498103794538467644204236882622034387483540573197512572984773789125296325342452411909930499539511516071897704021303569551824011443996509411256785398049196215576346855753662928895098204804118364980222164804938077288804771307759352854192862664175063056257359075364780144044670656967606333948505503306044179465365918705791467022344467980896343088987088059062268071683424683317001144744812960232254655095146693073253704987533003284671837887118698320387767418829265216578000699358994479639696528358680370743294004681489878411574907006001866633946917741817021835826624724179549466179877998870592745017537190353493721845278164791283803967087495029113849234204952300980203910148106327085801991020806358065960858129806400102623710275659334170919060989416616841310900881421121632234311527826340897571367282037087904972510419590852033181409447903016037980556726190016517959963390370325629521643925514990864341959117195490813098861381180219127241718587058668182130931234898896766149286645979597281639962771743441243667742419949039127999852527791505595859029820020569317697025558105005602441490209063061255761676900077563566392545353212888137561002180285265708963888818168570099506922426817254112792925790339021109188375431266451947668278383604829816844487571602337668608914908617990341796478598304141171032625371729883209385555613529331801601956274410813013945240915292310005682927855995744908853458160709263436594899095115345677624997266042371336208766257642634825754046906225987951955611731135486333379826627391336432198300911361508252448280445480225950735466879862795978579326784854800711898153267762468959308484897608402111029581706408999779654438169981810294585463463243478647061822747152732323282199351896881922537907141364568266613788929507385921127179204393883669262417421073891870626833687769000221987499418359972281503814639670549059410181399814469394055537303546099591009858819857667020862551417278881849583040452908463371694785779716044006095286062460544896370763797510243863449219353316879404760455636446321530455483859745613479966371740351054692088672904651556676586323314284824157745857698029252334223222133809331657194010227637709904379776586082982951499092722993698953649125578389174129788967557550841447651765314755044833771913439941389910064932528903994090193115413775476752954151252754455242071073100045987540301785947812249058180014319556672790149100031090631433056275082133539731949853957874613666756732716725618312928318868617575106443625007802253802278726238519480236074809880618595148108440793724744312499683340387771928274825795474327209962871864701764219460607639947713872156974863561103598810507307997115345587245402716610706307316907049458428396011550164440963159946268617007807659407085237033630845916970549434900612346798047271622807319120701568817205314991679348990370375122573236330394719285029886938543679977566680844509523017391636172068257364954995951499793752076444566945580331877794211475763995510677298114064698098353391317166048064721560419367252222160581857604640547040530046801196851933269637419046537473214356942606338323912266627739026156240835583408499785121054458839337426808849332850847473871758602946107385249905092507737457186064616366728071900156995517956861317366910397354639550384317749812268824488240481450946915607095460946673822211292656866735141213475442720561849328945006015174488448529442034418327827458830175611981184444228834928101007459122350831970281475016331773577351851397320343967873036757430214697130709243941700571266307143518844144768242537198432315924641110219442435098651240004122160614981801563249631565917614994200573190352412013905450160106923720173177355584645484906831916658989216722591508332713639135781964286979926970375217624446649039383307409292933214414818522737199317799386280676308939217109368472051151210466372609556792001209651753025199417251032949693182245616839090960137878564124381784840421804882624314414362773975934135866713189498613538036763648000321741925469291195452643688672998904079156807905995182615308569269162776321134644618107612746695021313263977969015951675386388635187728097117559664577983548929036781283754573435907762594149546266813298934627145438709358936869640226068038026977418650260422339277106201538548402842773722867064972633493456244778110730980589607856335727071822800915904070245659484820563262427785296645620602944707805247395972198669809555320716718538245182399899387414491276510919583948242562927295615725715683627090888991388556087238634360266806254814162128837111009277462542919471046198702085634016892403906734534894737438484264223572332312881884567596207452473847552154349566234158142144798842314206242125130156129943844880405127446507416775932755901906210101021708404658312123644870078336837824046285294011896985069900630595810004825894259085853951441057200766506504759040591440312799000015305352124575190325547335715512010397431096555842408833042582989699511833221418087953589582997592815725583423597939281296098400283693119529465053485057188184364402337409201663847105074035315579861739775664167158888667889186344249944694248157201999319170600032569027954679865501095711833570167336533035687216195333928082979494214560724356160713844564419350168207301086774780671789212216651509618196526775677320116517439412395074399036132055676308351372808652304375978925934126445473657629624989147928384358074162879586043092869281287338845399416232268175101033508219257391420167622784127167058240219467634161735971149928788723795496088593168771456272524066746713312838620436780377386250984591920752911501429908244844915391100277514646821873040147068066759141848069112141190658884176290373496994265507620463085994600731762112572672010212786172705756224573841819361879149933309471487531532623616148126690922679385211955497771704083976707534438356585295803520538987952228370629482464925659322564582984008971830763142625287783319662828181978548338225417803724704390088504454085938002075316704536116993062505474978748319398495175229472902184995320245044609691191397597508324560371943502247939224344673866321628237499005657577942690026101857971615590924507144921246995496286290455047831752729796870005837179106957118736248653780760767584939671286165573773133050066717635388949803662897177972694499359021539396576239256852306620817165751989141594127897380053281433093536868854699882035411388087322718602383380467156626679064172009074643837810419451210314182311727971456868872749636351593932171963996895252816049655201620393467658624086634435662409735851349791446193068262787477036983997707246586267717025707049071846578057613239624853800081779522620747437200029683818270487793062486095024698468626694923522446913092441604014764889056716798273915021747888538176551969994079915671510074236836798264335622372713758110168727616848453178071636561126869987394616973441596070670727632306339817060064903375980587592367265541445140436988608711534709240301000209430582768414515626729120473548373105346287912882085462597035599525876970198141739025955517302493013335071991269423633485746671056539581996858963903311908873330973613171118388255618792177948991757125949073113359937341127555544553414581582966276264859359542616148284541387636906860767516311136192590642496029741314829633132864775136286360972232430860072107247337058625985174081236260643506670102209133633428144955005491149665649230961445152316109793645431013515899830747739119436177873097088438356694495189865937214181084608612893123924894113552093283544838259333895013955989400185038456782506950332617998609573593810491811993453138546839851989586147764035887467436672481115944642685573339739083941649600107167760450645289959254579720662948329879383585206394126284690163796160301941607476642612812894318697335814530843440680279285547275456222946066395651113488684971336440150295587859147170631792091327451989064724779139627080908708752630585276841519359827315211658568112610073240295858140231170302160252958508493607509293636371899814359088302654423906595008867209150335039694099636575746502519841770015547598450758068139991956220230743603949884822204437109724477648840230131947182247156747220662596934288974977564067591713215680676963654783814294406170846437990309978436349601500124049165781287841904626375695137641132464753741081999676180824423684262922008961252976666457784583590007086623683665280221894972488496284013416923352759966790549296667705310450381570886979708354331161083783418371407268628797665973952707006185908543989511874309492716088053861471863966561196664120141888489568095480317345900925010711646621009671618801860324385400730760298955842261540868262501235377838630374587474367057223152352352634032294259555491373050039677577059680312797878094482141296030420316702306132696417645711248567220166723414133852379679975821730179110800901420820479519313745877265531592776292175489130155638229007677368068760084261113807279365363275671286541601383885402453030419873371507684820217609536164842009476133938306417082354762044192431865594076603714317587777374292342506610155731118040092844962514972636131834566860920241443381882107319801535561340561143647307921504850834030986849918351126869295687979154508929935728154698624734418229138067236364850541920573967550122870816601822238493235254727700155086218146961808210385427838371368497769737940769655491810632809478723320813087758621015395820832476337168809770128453640096311173978673660754591552513813929587654805684460560854084875935107362296359134943135795978082567869629978318769549919325687629583860857056434527616763498582372157560272310762833069739098186391149972207742454419675289956445721862421490984406713355708029183898546226051096864211579429174216014832900556066363033553682734169338702861980159472932892497112793109067719848695512901117403701824494175856330842271931795213710771097015838792487643697442354489771590685881241031545165847437502507321981875190271989323953881359833084925703960139865653215731109314829579377395235342830283821522272693723648407815454525829034370553195902850030203130747260439420093310356707109781123803620886856440202074307299175694945356372743653845060785271034962717190965795655215601721936660556295399082357331252646353293040212402818523518003792230281674321226561790863582690400735034982890530571173675211582715431519288063495377232891370410505425607380229721276919101711211847734926460102560308702679305758879244472081307851970174702664849624280123400391391535373626732157643076176370643681971652778031852608849705359691697654750279880348299798565110142778817367313831213772485095601109715226391259220177223552537040193429123977329980740012502953531194279543998173677269328307869467222544276592820526601252003108867375017694699651322881216997861801991667791441053945540646662936754619661572356608388529125915240313677912822262637000106075515801309234378951054802596020020025073429750134653965719610417962123074003143542993299389072376161323551558948480126707724413761241936122606698992767418517683519345370142347080253726657370986068916758638945410664144500335512149029341999549386720705662446296612407937358698637830359422254954830355369782729189029635997428537097599606624309139532093272378215190395679097729277820630093786280263798480366240315962324741228663831807687588438233515899795071877632709026088021559878791589488668542345562578522260686028670253246552897569370230876240035067544970360184793953254449483227575470539625319577341800399749021168817009446539399591183104235703886845516566902829155873101315060982141088106949059847656592564639446687383067003110375019748763928561030279552486755840945254867579869637874587997681330332570123552740034327652799582357114591509852634906670015093052228563835077468587827213930605407518781213166738774565928058352342879914710222230263234189349776575733480018193773083504829614681097172454052228467327195117577603976893771983668501524948167517700103665531405471030040984393401275596219768505025343102691124926064161604902088970569372999288733639394488367883815356931760031706822615586239890857634982845435928718059144967123920698007566866781689188848508580618902209892865868462989492181357084807458059600782350444189891093143703338202908086003352653768177756414350155800117748820655589867575857845510758213462657182122729681954430852491677617064238579744126624127601300664317472140372596780033121567319057254465110016276489037777911304828175781213130750517189701560425385316095808167827974197516130510357607301006542522169478633906190560388613364814907554472463957272744593231144979287715307427277987605778522892393476806292627399538029146642610646523613042866569870270420046480712201399771346052899029400004264347221167132695508038718668906431529465309385738809489893469578757131916654333503713243800632139812974671673422466538365966577216827064196270619274739871222793750962522453472958937513229767308117836118260155375397657726039011476212303272693130178983284607339972434464910214845315979233978652402764776716451444949562499488099169336603115584378309747318378751143714265842523595655846265975973634815911405807343394966420089692449327401976384446329839470877743739474252611692685067351961515374711598140696868547155250331234892327092584665882426820995628848222914861343904990309194632895570074368655326927015129889472152379154362726908075784154355970496916077489170552840954301924766404168402698031124647280316860234930742483528168242259349651990233986146418941191759078511728363638625070651759702699278667551342699490240928967046048498932603832330785419266936240846620688667484181956305602822695767644022379783444909931860112520613193812751966384466399211781545575256098911391546369267379404753922109017255461616851103066214987383554340182031312985621560438536438455388739432131320175517331538060358883834677546695864831930135945785091535810340965997120781862020022171543077978545701359815645751257779544243840287258648028651185153104669406795582410823914296952462302686211111769002212391238707261107833141100871119619893448554042477753437400148403118194331732749144726537289218123383829258784964687819044012948262571853551129333412880321674163507565201883057226710641848568048370749724124471088234462590227655184450246012177712770483072373398185169182982821174466128466230723262582014808576494479493036853307760977879953374063679421290927799771330309645905557010816823046632546283417921858688218481845930254859891023355000387072934633527185637888438296761009415925798726594374847926569505384829370100099168242112900726689768045599818766888926159995700979562932293199900495919758543519933807139906313840820791101292037053969704461381488123803952792226645476375331163918428753010592547035587829220698934285493558975651822469227745668360494223611196117774104871808500678191078478085290467893809821621153797916279778353625719271374674759784305961263472413664967840738205421781081362524942767629617099849911413747596037764790694876677835226159241030320727570957342696978729866407543941007346143134118471125467867348716788550449579292004576099518438358168197551148491663392885308066492439737083247901640597277660292263953222099218590190959381579223594735568431736157983931386058285287015519123491870780385569525874436094702317569658703380724234120353873223526772949424449553334271829388609063476327173225212519017336307079740081967070887102855695550921915420954240324391493776805629812405358086698634289503455035464853767383080266299747575467359801516879888951803951623253940575262519320743246770308396772823909061544272552068391927555422013775692173089558443880254244154108234144953018022297044526448734811579527879214831046285695943067762129639404737397105459563040175388215027787738225505977727633739979266066469782964656022564677227002127469037814577316952888820733748188536924867499350109640008319772372318482740503022003084454994022806738925593930007476717581734240911090757988779299538122745768794249999231694437608926574367533753604652209928101910915695916410787866121728258877072613262089023798542884104659958018191134735007911680608448685359655865805368897508509368594442978242766442377118156011370435596648667635832848289411278221822679320382369765315518034164303520812250374550515387631572805567798935923449655290208502480632069524838253727926839028422084691665435654775776598482388173227647693586102013485545950063806237828568233555447850104996605926260372836804441335698127570584879917072156255385635526774770776447606088600096574062065416825323732326897819605674559917107632302065844420161486078957195687646850929978358892743514211004562978854224975337996655383222205870487007814024539866948262476084777707142153076129341041020873776475729319217134019801600144169242835722303652561599667550421369542377362686413770397552536601389721719641570514360133909721795620845138513786473198448419990416455587427182918198405044869859600217339285245236193909895485546983613255905015766177077134034878280296920735844026763670794815483619203111348546440868632662299774322299029562206312579838256910279399002165045904118338216305931507392049029098826010916293163850345712537716437496044973274373673135186958657069866333380546392892322109825646982548834063872671415064769216967231797512781429544657367325767176253927111569821691526904135878244164970434832734383925537130589495979196949258458262522638823620249781799921218203680130157765648667298424166712457158639631269907045356146649589948138364591990976924024763850976069790682903414176478213655462185479766991871100078908704876279672627725438148811841939421131065242196331163927402696118818976675552827892057193586662072874841926121722067994077418659143669813847004967216945942765731268801981572161847962569431107083275131770693774746115974947837845237770538116428081122780659257008536118690347973184360265015610632200051336138645873553407424203954248690210755762085086829695913010649130675669604353866539529778794144674149206161734276799180687059816903718690090260083442761028409001999623264333067889852345620542542210151776714769394699513001984010891775211577594041486830040625564487945166070787341047988349260642561510106326965454605516927578028524597001049001548431967212560324701894969541374512653337591594893265572391119130252905712516125849610182357725352707294191131230906444172545131702541931373102568979863934875377142164523164396153525152336240922796521818283876421819575986942502623062108381608613563205095100197170443655307637517330563001610239028138625912855918706668162416799681800097562711061239386696964932630062003497135944598295664868949842024380490659205512604364711585743517014385655917878301976570255178131294225326760544849654939036082219849020691048281583130713703668449459320133726886688341600033397875943808088805034274978104571300442542721273340169229069403619711704834669029943295380037430530523223049751462114901199280997125739110702933239212870640300729672335088985143018170080934698928160796980893301115037684503206857867966848922002194261611974702721674718102970718355919474723601263423488103694518159120000490903555643440203458875726749383988977466783450843200940491989766851689271182901815308653027180856595250921542754210980835043492695066546957147398538471740541740257694735193325530723499384801369072232047852475486651859937475216805397738927992818593004000592697257543746472229527908002598514116822832188793133249278417927636030856913009526632670751793966359573465843632059425444127477744520074160229835215037613134524885378448101095914219576465170292795973159249242368006877913653193789270953359124474849510907151704794880429094792083205767930678857747316874032182703095726075850574227431672914324018258118822370239324545706239072551229004699721922231940980468624806401015302741966507400682885729503075191264244403424141243414788163864701404162381966073608164544814011213765589775921800804884056425523919156226341920769997543351204629581848941992423310672660436306264705254679707432916346270435365752060169773834525799559844087925855464640738158102256408100091033849826951019840041126744840201570571889306609299134155716317257333292394861342372782936350161823598077010707377748695129270873337112503320557657178567240940498306100362730516758214530303307218719824201465604166373349944790355619870326652242012872813275282458066754679030277612423918442540417634024541329352245111156806951441997396775243592877621622945992121641256219968483949401690895685138919836700170505376588314631424470774420941370491525880912771501538994460326619710361158886328415340577815418489682420257937695321238804986900225708984742774482099697048725791768240481112193599729003206938978422712297816177587170477792956848830016325135971011105288239203641790220928642121823293756852416767845905496085661244715814167009863163201683018993264727333643692835026450263176000499570878881531885305239350688720599029954633527998975764806731429243431422456728000827717882536035729208471895580601148045648063332262160990689199010998323126177467301234896894899368076431805439686775908961495495997341364267773676545126119097515518006728308223887301772856420345248570756536053451535471286716516281138709318228563560520030404585294079366014675826304553300386963745774012680392080488009296931589825359253747912638374458791511142964390063510093264237899515387138291034770460978245169423819871476040787150965650628444904116146630565877258310946339820942100759130944287344536683372349783769265830616851324498194018070284385474717443968129501061741952554542547717226694567351873869426197616180121192433538502319426797347214952769471861507683900140524170847216484272819813390815214016938585046113323500543242680829222073235619405589823421169011821238345815115969291692073303343215319574012331480502001064749222064430779718986904764483086436323049601121018737980507363782980029363720605623845019677302643630740158624202058852114659344588216481390444922650526084434508441799864500180282804924928276663741969062502350386393968430407254067797153528369178131613111212274983559944789520080167457339967102754293240223654911930413945128763743919388100916535826391154420288280128832644888145252034552388542774567994661788247895804255110028847290820534043178510025321661425883761203333943913390771376526234215135885057456709479631811656544958852462825205807419211364441391744080186563669133414984004278925116809520662725416525180010736516555617590604950693193690387790923414395913989677367936959487145314825476023988169527737051644512993621419701982174921097946509426321981320791214446873392662218615948510579869831633947649344608235167856321075506750661613848594488455666760446948840260210050266667979860112964915680267447670058994735854147092287468106792847196511071364025724232525091505394221843374621487565646476503533113076636111769540420492568492390605572276984993021530837462922987714693487157462106052713311133311280993084779243260002745571742301335516004570654753200260480759856543426734955935424624882415568614668442104897193546413351769204980405722208058360727293090921444643815773537033349818745302113280576758372844851716331913467969702194521325431033482553205873483371694841582275393892244607271030198328743532739594759266801802813618797338552445058794710450546396060821929787033333906346893441849389776561731997082835445683687344646249344469453384919334260840789689397439837253116335553151758236204157796271088013978045467318150495814359210314095275665761308973020666627385919677935450409183616645797333649148745791614566685047800481142674447836915228975062163664967969162920999998826358891303125514802716612532176985873456741007676747468235471205630219885052346537952216232095460771742229094248634870594050236251496938265398586501370737719892777248173899126650858350783465426909084760432767570156070235359718646999526216641779050951285055706928774375864062055708801008275711975274967302478847214939721390613924033613534805281343129642743960219552737713028928026120450522990905723450823481756468203475896131337859105644067093644638686093074758213602205449168374590764211844866458977390539483282600610673200299662074027921857847386215788662917686805971757655195451932149729388185502212105744282166984312399425024168546872440428520321510463867427373275668832321453559639025813375943586261010521350841049197875388466389835717945819982989270437600855054912990736470512018179076792562212300772781932645796989423367349462369425188649741172894318266197945498963804947372493393954550294608816757337250402972600056569977867983838678541615677914772614439843561124269559213983632559686454701141476633294767133172417048853231360999414360907254156015362760475652785734171746043833070552351451406667864793647775052241678918680873002054004741099259512980070153013202953155841635030494578223526528929034640908619082495867937201670366205432425291181351936271415748384581877980956199104909078346529185749510507119141112368602097104172096226584773515967022950637866491532779175546588393800480300225818531505199995412398861082327186486639716186798605881606796687515191270942642921341753019434073947231420667816898568225351927104100719890107149012393778046772965440526524861707635160332641358975889076281747719180853741004649214015897889584915635910446517740513719018220720080291915445231550397347918672343259895447427232349331364956815173541987390742772064395505988858131686609598577712631780987288983646346107354283669910812304536378714582077476532347989967686496409446679306607538633646096914659669504151127142099177908809790298612354629320404099491976683571769251182697499265643669814967086715758004762332019728600402099810724144892809903335743634323652826194392726243710086403714454956692574401951326541680380195304680404013601808062168488893139558496950770935000196263104132360960782988289417138505744568274539345915722898669780180272597824503722791827004983254703180815325343908743274463583741132560613835900288320750809741910782072659228738976063577607133261446838090672925652892891996084264120655601253227643266755909508959989747936567705525371803975889247356743707973280936841085287570237821056353748035739324183214417232513883441916378648488621288428820288087657062515452997166573709285916315335369438168682525741377097901761842755972276455936910008354298095865783599084031290545333340575655711721371215297250526995438147906043538218162196269117140323037852556012881178539827168790941042734011103850718197096660216147678718142636822138986429988790834938925316103168909128230340487038096883732241081389110252418280214225586167629324239116862998566449692957991460417636883201999600241307145885746467113971735200922943521625848679531294313172389527736075986362588879067370839895465266393556458042627526745506349296521692441210771462189631394860995916174065359576291634926632988122416235214906118571868434072045336696120281221399645671510610354507507296733888816917000324171259097167081028858852483069555796583073406324191562909352301682905812249526393631276315844369205604480370426221349186752496515329499369658794587486302133422713201860886097617591054302052084685331944710017280058315654047335837190053689190282687424239090217536875844003737211667785032869345024228792975819633651465924580519041181648211063710280249684135580413012111386158615226198440056292697263353090398399982813443863999741907407536775478756535918047988025998219496264930468429999744800638187280173085974393086250599809936213178984300582575576741708203630812014878045190134486242697042362892108256262877991832586823090196470764437664541377391549395634945515376283223908410350919484270412636491913179530141014502109333615571996694087871892698830079638325084738711548807975144102626902356792564393986771464807895849001102319665634667022068197167676572057302743297000080267956397482209603640822083010573940562774022793856752846228202513924118004816917791628683588961155880901857699525602903728067281102839792874015447152754893194695637896063796385789268080380545283953544217726502920446362611465996666757804464990256220808777228028609147789714505590101940331076496247475199735480259568649226870236266433643188003947608731426126203731811099381572239681486510152864012710657347775090560036376002472277156755965394755678178593691831190191695660847753818591108957494010526826114000703360202780189053281646392453051142871475330932476786279266190712737769711395202621484643091499816829246084541466634908435719381423587197099486078420476381947057015828256317550195187190133634717444747866339010140946003507675903798704203152323960231808876838411735500820311383656325806740051476767200823988000575722650947512174785705733756232309574478379871988776315240903929521322748027667965088185299788795349972984294948773581067704906987075029887608652703133895133499074402881870341750612068699970186612079240772716230941723190445985940003743399724961912610345005325474448624791351922266730580865417375246077366683345169120470573946837904861819168468118813884572585783114684989411710947834772907063826363419754851892996835089762425752096675096198632712304542292462083605206606751598070730622172508025110894011889143790223470798724424166694282785215494431130374924080608325617788202050458921445178920423637193495299982895218673898634940395758276550247730082955600340843576413551071066304224560066749169495498204990248330897501005547724918739812558792948299068884189982270436632993413537711040431927447643595825279458722415198814947587334065410333775208998936515428948432036642434067840807333590122169911342684806248304338277833474274900030037353481527102165787375975129592120968141652079425473341526357243745365951554904463125851949063179493750593009978858707139608679681154855111403081022042831897212182471338137102551889619500778794522094459630717290289660674800503834010626089986095923678754647740077813040212915526329676698248079275263830155209265617187150326650509261402250377117097104627727969970854239337007885955073169756888909663983964767900022770263349431844189514381493831069486644599714788889469163038242950444980009008947542104443059110360687194689611825667288711034908651554045235248031632377524594900606341749483999759757669087143389503498460857040609669698038816864836257397264270778343200482728644541309831726098248255167283380165314208370002581536105166097134579798182744260427982052951341641264728052471468646335457467886931143991938518460054449903523127476053008044922143810132931750868779631556311597390221435521817535508433123306989996324749945855605869338694236387431061612370925886105813924316621105639281320759131497221046969128245020609195451744701942366800831929246451260864404855272066129636851106204063824710683095771080394144127222990305446008838001116912083194087280989316782712242363356294562298534443015525427270056343917447743787395916826815477357475330747729716432040797272796732233177503896159972940420369968818055684000973829948303126440078653266226313424693524047230148179198568502624252639312307362872441980710769046224397112427325628747815463273997437823162656071317054125999678924411097827666695498067555031356852200187544304577608342551005785231196170583569176322829750863212981727330467508579204898922279574281156892341282788743884325346346602663848986547525562381784948073493505376509869562100637489168565959525680803184716347531201516462504079568423145284530288476543248922153978612501606684532292092896324914972212650686792403643325065287089121922191054006736905815833206692884941870652395782962034507697198147379154742800307168429395374436210747746316721720575448374693761459649778799351180488034322622269401091318495876198163001240331119091294699391727647696826518467827533753683313116015247504315272642483861579982768304812115128298493629215655084567559420651569776288014620583031579408579647442016190702187167183680618333115224173398858597306122816093763887861935184444744352878239777777846748877047687334221708312402603161164925297593263204202527852449609817842952369005659983401400393624654494090616276987250362205975316161438219197324300218728484316465827322344876473016409020040486605460025691449241099782979518174169514557110059648585799528733646842811443864594241809331160150652215533698403610225827309565490032645813657340037741105456632475930066511177430314774262634903970402048735577729509757591786828643042297058467059595759464064383719733212527956958863703569849654575553408341717229942674279174806999837403167230645494100527634972436020144525342180445374389722072502689668854850032153330653073698237487593275779964516475796958770849038050115656094133734445739442613057328692829440460262072828485911746773187422097942356280906602018745935797197741371949960697053985499685276950127041279473112968764457823713715142650246993581254870292222518973282671831176104535949069318276601168985395880683861849484080122107982680587775649645554226766980029966525804571309508118386839703867570730445257826391906333203935772301781674667868531904936234814799690281953865311490283051836019226304617891502653715794562520492807673375409048019908858440230772947827237158293654073785022128284345490658120937382533401697060689759393245050349191372836907408844720252904314346456589438727256474273060215474334564608190094110766233018374178098387362033733273895205734859517871319067485171576912351515997433527467699339273620580315710449762529582786244417357344283615901090914427517329403481457406326920322343182688915650327544359417255954425021696961023134692366906950550027401611800182692001671704029929128505156933290741284298534921436755979383723898584522142644669875927627947586559463224666925538319857901087999591690662799628326972958357348926351205537248275366087295304099153733655811061608901378452503710257685528312565311803398844525180686294581298694598552916108441648743804556339418483672697877651713562439503489012140416055443824416200148294276701428996346373373817958817708807218747057361983451688182242957727979345639008257885421939375139564990760654093993817656153754268154298606548159636734516369802989988217934750671168854626793524338205442926517841343864046925456646318795692932197124640296801540978275830773789741976366193883484906354533005537549733295205679532020538878902458130670635849981806465907656775092490013543766404628239705911336149196245246742408835760602872866925621944617611921522026114602390635389676636818403223968805988956648411997327167685037974488559758850606496772750750942213035449039049261836917602560601433481452834935035355864334407852605591641529238144808021948131087473380341262159667414884959105745409322472592352314183295386491940187652336929151949400612471607606015401962739853900443784546900744181489854635250095079640222947378493785500255695763873205315325305582557986146305762847887042921429719322643237417209368357936508150516488714078391973160835623916975864558320289792100982049537686309625589281609616702186578303653431250864931050665045703273543197401957342078300640532494019576804946712375152391786953152505776720881254747791817782915918787970541983529867273945406277190582400412454856629603563863748925932281807550314561202251703221190842169413320455343994045548663296590825320407204910046050675504711966581113402091077540173611577954007546136537957284761284285691591698171807394038921131830940886841843569090916063835608827678402737315138604649246054828241761191258348252253181251060616338356772103661346624755543984439712132753719869583839245543820392078426528060277122593574000839177259964991178279913415605264128713888557545128572803615607438676059331930763399882779231362073829972467559819749738682456335557543966080678187676871116020675635755783041368615428158844166359864279173095790033109127723329938754250637035773584889673044736985685511023023829846024206431211272409600676471900571800784419126635701533679965060931090163164070678515417981856184025170722271896392303933511010452294252674128372169464146728523653027979053511862599566866475897746906994294671273488084929209447850836493692344688214112914440817835543615099326321946001909827165131499340172800712029774216040054271336838883295831416297403766985935349358071403822649890658008222159207119656777628840427802486301065873767892142510436528595462319325886380504856556136577308158577226278201533944954585953459454974354699092328415639088562638858846091231479376355137079021030046718766401832565828666592220626561326341028633858504303167352279801642200007531741913079303079735605090522063860120648659292386839405293413610692990499220181095733055164075529256402719095231388070110776722545057272333396128143035988729136871799814475240760248048348695288485674511907230460150947159955837636985138426647384420773791780719162116465735010920987050690987426274312939754938594641048998337758336603579927503624464678377857491401164034662519224380219888387229181421302625817577042450137184366536892998282764023144564485096747336693391196810625065951964553083115741524602726021354528522856943249658299016602016396242549585313423664614239984514655557322358656185764803486901938542843799725372937626148349884543213477430641189954373838098367683071884410147040003872046714385767139974655695884855716362234625699023847759773906641626548478490274734959671202396858339184687924312384650922719078448785495271897479628320014544564342352624431474189536543106902429701892222311293715281602116236705404130714868089964813135154242669979970666603682474037219985007508343254457468443559441109316343625420775313987653300468881646875586667999602689320529097940315051252010735259185737213451531347892015258477273173915169290267516246408550996316132178138245311161133918923685149948435257969744403042145787663886029982499847053961439458488650569100725642893267491503023884520841731728456967386265005201356055701020459234233114360168676467652176194455153303435269311399359457286182708412277057562921104942454744626532349353020831992193486718643819308620032428110739444635744829192039560770170990424161472021634651723250456591740573512456550204260656477834609122676262994000181918318726979807868893848847618708735664951427201533145281041359217866788424237992876430887184379110881331068899854382077351368013842075375496242034396021835997176786177552527226304004788992384238716623461901844996505952950830383753376533448111902204208843096755190133889974173370099536982980075740260041848450713302044158341964761743142809927276184087261477877039275817825448896482573957908680620110440153425718016878437144306501036159611558629147976786637452288639696019834146408380993418906150574021781594934249714815292323558607264193005964534185266496274641329365488436977646963498044073552819521602169325162992992306323204543380024525819963420247081978044982603972589983656529730085286981364990402243272091889117557845911208251089721847782820844697034879010787277842465543387002111211597869568351446262266877387217688835569954180262039461891200399341358935176184687987211494938549799006394803630883474105173041065305865734697414986620647558184167306168676444880173347184929517993648143101424935846594485100852892785204621978965733514828062426172166633146359819677321042563522944567531512533821273747898842004916747923074949603358945256350949284888979554650813361392205667221770023017822853706410248899856721720355741600192441022687028249810912234096581409460777241423409491881714392597687765589371895991604771229828621885209829779875163841220698769993581070986035361687966882849913580791210778882263695803963770858666061192555840366543140499605160047982625004177851962349947270142864818179549105127424948890298894698246254187349031944589791118968728695780555899039741959392699028695734276453567144457054606951889177247512378177893815084741151347005248337702623749556598756972671984375220744786281301871055389634758205740147485768239774317144399935865123296005379019027101758887502593397508019145342757112749182329983714023312698059317106904240817617334456590993767846123633869809685756077389930590472799750173657210573709171751531315033559775607896713161498415739637947208845161428630880158425903596831040446765595847513707486586316963616739272425902570599123170571527387535374302772215930467287374987280048414622215419980452526070423272823980438998260587150048612341479783212606533549556864878984742502347089558083904983540662255081728580004204251731653256047655535537808044004966650069167601312083647630641317460157752280477443464974871437218206259914982496369571611927740507473218438284846210509661422548002793932817323372758797103209139828212804819650839586763451573655864621972400788303529628603558958946327665511232163055029257348172087140717767972235846308126345071698474231364800925775962408466987190082818032511964492915509099244201640186408781873075455231139928171771858730751511809672082684688604095402829808769839924814440394511421079236473757932958273527037938626902034967840102823296885193465785839911957364789276186681928077190389801566561210535490979414884868397231978807150409567847312866130486968901108924829297103675523206537903505441226263047822964361069170927446138145661138847712819324185297416808714876214602891365866200284008085068933576776347442678900655546042412207467368996284402321999806348357776307517304591441691688405430604928061140999008253582772526306728701401002016518868710546589909723315244671436019401612218639277014802551078613706646089231611286847291311748968143306105462799725466313472487798622054877688027196901902661363215494737183532820052378199516293867246410654248261426040418170668983019315778406081685649344261578159717085779553021561163437047007728056118457437835199585871258944463967511265972033348218663148975203810319305079914803006750194304434910127650020133724402749979189243001418046338289179205036444076991893576071832875965644539383593411408403764899738135496613446663269689846549732022355724482654260562007872251234989489093492113626222610023191790385338281392313233677725385744606522277716337226992084370261588718484394190053819492695410024051833322527602282583365448232986219404454054872168736417816254493325834189564302290387488702887023591605617747898544098117673918247693908206423188358613401585796482108244175713783104290840065468792572953992067446896402838308913335122593233735442209932495800930785099509124143876984514188023850980957297327190130010985294796371080719468444378837985937814297782035151164719831003697596629823124596649881478986122538418221877190940845371503244326259301899225370279320176830461133960565468813721520474995508286152062510313586387047772779652916199200387232376826455782510019790045433970149932656216413471055391803257846294995002476789280353288870683861763764567752509705707273330617615896078796845033726668271373348471407650039690970780352701857714404578148732119126146796227265496696366991785734408102061099324741006228354244055577458692406655565342205828515283771014307251376847095105864824554842727531613652971767237826559918417791257386461034327811243622470244117375718029957924539119534943070119731347178725879948937238762821667143695607680641161873118930881102952907869281443476972562421058765748411090282013779469792761175531411444733150630050139132841685081217992828559570996975951906767429391157550355860086160844986781309055790496671500752397027426995823779660032617722572021889236348168511608173594661198607853555184459539989060492171712478415879149347008485452821373785550801249504699879707042021882327345084472474874211099891429777354246301798217957898132319044675466046273706658331913045548480972424557634848758069232873061745642959536877904286976419501986356982027981136188861849797303760641620672059395018631006646908424220464287745517440987329615629835299899287070205897175346583075309058294305254208447354536931958553780319952920409273977932007974328846276292877313277813443488914840986041421397492195465728554815644966990654717517165983127123542610877957755025075180554397031212301928445767755664543616783016283669886988659938809671234911892412709186168005212502990824305511213328351535241075244045858338433245417121331577298282555962796714542915654515025326512567744345025146973555283978032831669620054015767116095810413262426798428198891751853425890602624422680527883611827446467727331487467120593821821830523605068917217165328377276449961092527493639733175852944018263038846295085408244125257803285498836189593754228562337774808755887576392147151690604356867747891580753038340262171822105888398385349342258466367809235533749175699497589845824764770052931099786549206934976666400574139892361806509036079475298305949232319015713317189986747068950501870673636534667713274012681955223941972810314720023476047271549364024746314439564975798777715351522503450058399974292212243293761020456673731107376304451429729911586312969223687862696111692226167601109564364493069431734104431415333813424669927858711642135224996523932279960353577971422307800020867524642888452492774223049781691441012149355818846574501811580637835524093005112855071873039434128355957734751639707676288570400442866285911297956174805360228199501465630329174671147343866927899794616256222044426485709949147413847399942009677434570844632696702416896867377244602671480862546660035904972432195363208382779934158875025744029720556315759305768770323314681613587128463822077160949067824104420894553624091459443749297648890838656883555803289265097993145009739666395536828631551601952697339872808052623697133049179239146535926667908800527750714892351664641286181389553563580982118194371151456098431582235877931372393946015114444973834948493902636147398407214891977396439170679088654418554723153985091352660681474024558876082321364192048117318516186460380507739349584171587615741943159946478387991969128839567517327710322973360823025624866249411726393013249688441560325580398647339173357339315529877090804858971288975727863550061595475281511730909378822703431258385814255797915245980946474974505568853623901466331603837461206664767678131028500009964328389772336823044428217133150164663179519430986990867930640791425030345589881505323297087754015490687313308905043969934584301719632841180960763891594119305111555057436064359878162096008112133306172502745868712946751819691193851719563751543366623901057060287590511559285362486693442776257218435064482717547432586642228901267134710966596460863439506895396088035694630769369451380541046380874831741934784265462358989231434695651488808837337873037197360648748381893262660046348357885605297157761535034636822251258448139155693171237435295328215566451745754031829891448990986595255607914864672419217884379168369245788799170901676123409903576013890872674727802917589997193560658938730254841285932502532963785967852881759815443054338770937838307952908272421219421952962010671865620039209230561758898417039392473449752035880030701010597506699800032111325430080310732149423797442530930907672528341034696979106599063820116865359952611518477878611184820565890885950363335621771665729828618335680651881203434977904144171628466898410517126700649955750312423238812164133691729044063083581476972102086850693831236653757842162456885207342823830988150604979794089531792149271970409759022699257322006179720403348675866687156366705643839371837798839017496688688006742796269977338632246163585049783019466540679440424521166314295870143269403019651076674030900508612778034276395820764833605658906142353745012012771796231022558092579901624238616560438410696221564222205028459723119836247111472007174217535962295942563188966705343631185006676501729296824626771788037078135334930474882806166042883617026730238909704485208492643263531779428891958154261791050595000608754529474353795118933985893859173828739808805242988553549299019800921445663505345720567790031081224133635959057987397906256377557966782088994118552509525113694538723214326219092462916198123977103680123482032552916902206113132727424019095275104657072569062673889026410265185944137537949443271673211001703940370342481322217784989881493041134620963156372945524091535313417307819323932674262169343693991104110210100118799576239496555363719578961501096953471869087573272121965946091212246840485788203078720357139802022128833568221937032771503491994386217303874374066265041617446363055836615075020424823409594276278592209605087243292638910813201479963197852981885197353291529529113529860173428853519701178510479471365166630124588317148819839619412863595442618125385393277355570485197326641619641888707792852438688095979875081599473026604691305892932436075463524777460907122927586496372731003829478632581236742216496667877131416716924704772206515465231692847452530173573902239687387399353672965348079586557118030034578353053293925835193736451881279572746548662525061582923256036176931801893173306398759596380619755406039982940859040678124920183281255943648841302456439797510836299595793757625352467914299520634497927140820057562716206459366045395325944410549592506822235675052239877888827501506317750448966678284662495353414725085197350478471605128408073652755714771597036824440376906980410689259524752160867845012568839885676130023505599030959052179626457036845235939229254136078057204918229690791309823299352610284795311842842601302818542328812054973081933854527372282499505032640218080280156272971197852527347959976497009566964507781454076175004704348040228983797859836760747863657202133242932401849888022743755184809985780541925257377062503053176104604608665834326084661894110471472081762820984292431152615126201815801527089573956664692989244270246213559754257856318805611194003412299716164497712318472387100025667606288919332877071792804490545026744404615398161824093012979827176077616127364531399862606476042330376955695783622645354399596247285326570476709963309219259818391182852428924819496060152117997107560882036091276115679888499906933246983085301808673420625130204123753535625418765007731488564561006490288870441027954951383592609020144479595631308900051520744927322554538791393616814135421283203693216626622056730998408537332321156246393202379073456439844350502532857523251723256263360993965979766995406294593758036208710089581707279359356987840538286453002693897480423918216049601556700529734020079783093447614955795899338881126591631197554126234644914971076106892469230018121852555511605939184062231942342334804445229255808588362532442374707543895486944413877921181676572067187127888107141487647611547156274887721222636888924475077283755703557384716476730948630250624004347195156816667581768959535171361271812695893545207807281952512591875989776029969175973642005258588642470150392451432712633500622303964210015021204917286847107510950132935985625211251290795992031208767265516571459559788106943305373710056604394841300568951273551583703508889326610080212417278404577650926979013664403880990688158182420334726618386072076616548992297855094112899726481456995934676317332343297658146318636699705557865630270735840591652538964712015145735224518063415938914516373798697989908199261248567317870903383419641459464630868531462654516467805312613713036705354955703136365564075353698120111606635352464508443442849292851336058197128041146370020217669639048027288525417898032454987748171899373371508942829049244194097057083184663089360670563495660577256015038817113689439822514798162214649109017238993708595877754983259254222611064254371997944156518295352866033197520393692296571646379778948832382153928223569159361364498207701402700720156719858852652234540958979617663750924361972143188799878217364794862695761916846377029746022066179757171124245591002462806422568273273230025713283480617051060660887456679062914505850628796379162785053259433518084132816427118032821894334451516196191226186778739970490956892766789995488691900752540374208304305903203612793083988420498607774761834192153260394666992350986140733576182037528718348115645070637593180225895461877230913536447440834741766365004108252751926319551532562018148628556431858812044365010977624796759654088983722159607139723805554090846413658164418369342411232171422626097062032560426418031283351826876072065584181633629016176328994559112561984559476728626780023719394288759662710266733527435499044046327199415479554186873241758506999304898900658856776255720030025476897128491897128693663893803426964294407547557543046832503858184168496370883450282012116287933416282961081503825049238265397638952619754658719871571415786274163848305415042657202588842381526894998438494846424736696428788074886100477698242320535369029828258319823471434457842458087874937585893206199112855367494184538645306596457568120198592154240596679480068516985455782720172156964917688970296537297140702218207728282058837341457500481597747692097122445128106118721350444731326588180464013970740925701453188863277599587205000601094716472913852631889793232505676258372112304693193209507668997019580770213476212290783861134560102095359316114997338396490195186850786341411518163134575934902728522515898033923527999134524777303855242698823367925038945756227727783211734481945806812547638831088633523189135212308162544238107278269457055636121014438037312967652397993312577150037422848963961624517640007373813759773008521160138177541044256902397091358647009926891864116211954345613345078622362218550199469551689823282319434506709346493353211246404602723878868797095181270507947931224816994286756701809275441755117679299115460436107165291481039282900058952748703493339658195900224936772209826698776159673237831109772811599061182791933591546402004930991457165862621436658615758686671726787649805555510600493239030047301089134384713549116761625089127569552115269872746552803533725201065931217430959668233882803104016479749555623848922367521728076844403774261346140772024174750063891423077762790335068506783490860561653551407622318677873865931642197616116509830156839302676418967970902638834246605059892236059916598129656830272479508887406959506303327851701126444502196824004518119154090674575029485148365280993076668031291837128503972988694828001162274742167188732253135224485462882309503032179983444735762222790029561372879344878905927328127468059894595680347165182250921129582832786464320512574843431064350998693666435755239429439817612931304204262043323255785424427633139939622735348774101295614836062764595691650950459289965189860176121206800066948228474828748287788797863543083436043317336335462982734748296748117507507251499820484672434794912122339669067773611516905042649873945004276431039871738574808181608662628945971411062501829945252991472445742678217508071573442992346332681287200971940929443406546809778435784045528410617677958072172578305231375944456996664139877739384974945684428497827514198878357018151313352979034847575628434274606388935927407112366446776919705462915551913061132219023952187797827314691960948808630506555310395744708103108187598116270740236627323990692914233126926359166187354036063404282212987032191143596543963678640117411431693765627992017895406228382971887739232473191808533075761449777003637123112158118962118763457735483677022361824971167371664261539986525065890817569464086884796412338031901712248057003364812751724759563240340492934303819552456529629994435776893010481720076012891054859507358209197345727080601089724299682861986701884896285965516624542151958661248676475712199055858172047056397122239452758727251583138022294449945413963667681276204113824906424088471000944491211054870980460080784284519380075928217358883099564616411332035134554252273297872045025690535447671481280006824164926897670597728118602413061688306712091683704484970660475057863860970919120881311165949996508318132484929898135749273254462799127232640016862978223733820337710584819236570476544384723790411090274316512774718978945279492144753546371122401819286810713244623948330247934721640674648932982112099265706216939256857447504174025496569220499110221041450168173225174576588589111816197190795543957702274957047733350691362473905021512569195800868774046732871128701134703003265630701142179804526144697561832625195052424867913670609095579208877344529520143716857457218187126942013915792941037143118327286136016475065944663995671934070074145358078024062436861866078416077895555186580742949989337353376176917936283112837007747082117902382558902755456959100320339616777051625703529786704963959521338486933574079653259448608430079312808677291734564323491573584753485835538926956695249123603481716204930769697672131259093626144023722256739435699621869219581455649930327681004095153943343211990077071377828006462651125797424406520418588785119648616548326801124610027996331407954956960185436714607093773992220225203284410628018485785608708329704261779965434928745726356930719240214969143742899640091683276476541827441847257637726164500840641876959961305112965354817283922338203785249000714260696257555845755962138449583675444104478133601875057682908276690169294031078967345829926465188260326077621630982899806806725786124950603472180313424455686986819039639614503009415619200077244732630720102435842794144764061369329703813287876475616712310063339720663099981605961891392466038039228449608005264870726873862667109942472928990795037164037827979729971720010722033704898624761855890941185003126092488753223116470531641656517488686556976671071499975649826223220147423200317615280320842993096418299810501719047923041289636792348866810361153878979937325306033860410809486668837947875240073423862654483988350657007173591302541599083913764063698647925786684827401152674439254804517633281715946326790176880920579958459849932716791042283549325311440626766087303921093600116509206263334578199158174342784607895075845516767853298197742875957581246686188223092932808546799506106241411462347830001413912860033616613980916737328945619244876112563084823053782912082992918628335750780249761986923726119445526778742367652167357755002169823136432817369969214320328519608912973184706274856670043367320275847515311112217074305776953754920692306979356802880694045501202589656732130142464312823727794469441818295142848668282807917914787919137722310135943658996327326863305327345824275451366600700487976885999780308174867969834662997386423518342442572846404695039030543725175497693554491564715964881168350134662889725026625615844744077554860107585071116292964688826929124194075933214768707575654413888112377963175255806630086035333031461504740621128424277707317344346384446982190828710409715026937498242397631795743305273083143034731068137481181509899911463930577598134072524838506503021939472811914334804244054051459269355361163492280613607510185727065189775420906316389011250400986163017762755121489605006752026983618286812378956932537193077100965246809491293064269539919274409351126470228137904011093093783814054759478450989494105573482400473931843055869090703991003683292333371535891376844679414670949358856544324914086358812527391819001136632539706924796524043500319109486958908245440697683917145925954666094152385212908901138300027229069370831450429326176874104410404618649333305680735161134850922550682739363093754007015578059204518013675957341672586793926718841415261284491044872928388251837538600041539880393425097195723662083265230715539637074544437806594825140986311567125568242751084583391141681299639057056072432401710723513908577333916873672154349874459993700331087272247627504669350354642687222301679370285542915304313107684706359157636969877936797200437486559978916969933224339337026306646939247924636203078618520683672536372951619107586953138953474089620214693441149553064855742276274804542708052176442974226017346156773074426208399502477975835031857997135322853347162345172570310475167133635072174125356167207618781863271001365547971757164305521987022400503536573007537754690617810190874235518597159225329828817351348958467600703638968833887135935043989523320922876290039656414584954117639765367768761483299110062080020842971636348109552481111954426670755678142134090099938751344029482520212962890029736596736900454995932040518424183162698034310173371861322143010810516317686353339843625914720895225088582506513613865845110352897048917738352258706687107453688773635969119391131567676467505200888527616305004289568188110396081503945652336475890471162760640661808138428887369857232539550635401500002444860022102196950978150423553197576113717958782565135308739252010453370367539241020473379507817356741618490749081746607446897315605566319613687208986873701993417791001525400981961893556719012827840843925900060551960928883826129094510343522301050857827959084719891497823820571233635525399479854676118216950246372469561675302010659065221476338196057769358447667909049326917025322290178637994064272073983661000512180484160089700108063818748608597968990600115167262847373116281668315280494563522086473344919849075434648242850765158016458402531092698435968504899153072313994203846221276038957440112206152984661931187462752236164162606314255347441352979889162010328985741763244193557140022642504693411146714722010345444359171777022320963784719614524686836104835357161803658367477667740127111855369932870158907858169129782967166682451842992977462059101570126618931176086705164839219670676182453576726455007717511732899288901460869897428602244546681917477112531966475446570587125378695984273634491392329502715897137029391300265711742530468331409135919226779878338587820187036082887113847827197340918806847712141128663889645385465659486809334917068049211466087261600155719298470762328055259790197282675681889750550365737650163795884702444079633458802556919579151582851938009773098818108779702959836336736729665701306085629830090216485040337334682564827578456668434532546832795616042474765116885218790862281091918502730722616045347511611778685094500560749277316904953031253285662997819435161603881378827034857611149410873078204528325563771432509313425427367137900526667330263457780323388663400042710737739069322303888036077137560216720732872589131294322399488944194738443027257843452005138283684045546942156119165538313111259428684499584378327300718097049952655442958824184661591447584604235960630129067790115167271580620438452523665533116750513472913222843793729107352436097092128507493267216147423804356723365054684047603663681946960176132095875827962061499944398340349588680331273718922750085108661700724233951203351420700463695583004809756537874843288816334500025019095015366085361762433172998285996832888095794319787812769066072920320645896816494264546440711106729840508026742903185818916271884035648376134108378028269204720972541410635366583352481135232705376161253238253116572931002245971952101915987323645864754982006549250289281421326792986678179748917142333253110537260195181255628829274145021378469007524511237443306856756630370579465434021698845961152643529532862271428516145633856650898761303282688557527580192676193858250214845828613595697952246569133989677609905827312776667104912810618515265736139247641186966299187942273142808670199642436379490849453364873953889398257574865406918065354229219572072455949972742342211441928451520336309865335206194584891662073167212042702828172044477848320136475028374600433216834578132925146348986483858463602595561621193020111449522482907423451359945809325680649742874448303399108949852958169599087742826556831618872694437751372444141335034365804503606599599897765007498121833380429676664250412776568505938660777125837925468949833349661424576016771611922343033894741939942617449277288300091666450136581613663470990682110361033822521990695722860546797532244708344485400672869376875090461258409313445684896179291409246685102068768051803244549679577985845218926951419800057063692114767087295903595288608583089664421667246523501760427329659240392110201741677136328889877474260910690693319347216666859485083248211500188879507053894066031185481782345747717964538114891166576755370871205086333948698557197312500348938345449703151361446133900420485904261866508572645765534946560448506186395852002782535811436018643573929036481647642577603169966982269418492387354989673736067305442226315320937141554162956786422961047130530975462226747583736181029080891283082224739132760212874692379207367931297916418009216114012552666313211611050401267344561194324994346188663710062518078022089782165459473535531496476597561128948042525819387596373949395062145804194417431640553818017517529966237569019858687652651443292326984666821794700254422556837400617029609410657236128370330514658472976006053940567351961602714412704702431662729703012094414958306350871367999902357819864088047728983730327286792924160671208132840735191029425292259715017398623410900900336268662314832551917504682260296435339830970346723505083941754017521601470089417440006480248143606633708133299235771438456254066998866738955084097429549959655526918939670334650757668876053836144871181115285842522087994580745686083054623820937027166975331625509018016298454108256248458174072446986276636726968093268323308850567576002038966901325089918598015749436984936519591967001910324379205669792084420307396051187321030781613448785216791800816051532361110176164103429365912148366514390820818868422468632173516725363139096511688184573718163306085474277722015922721694838432073565455505743501043478289598539131783958026930242777588214232620805795341319211608018188345561798336000236357993238502834328547626703563397221784665551391280534987907738713902203461404735795109835847685624300701209036567200810046484874279746304734830772993257446654284564552814864145639250941334038637523449992307897994358216833077687278415006881244481966896143222448716784138580361668471649942766261890429805417951776639373285631914226107740834587795672874853391041847649780868858083989816358185514773820881739975560797831265279518086502858789056829529225627216809558660876221088089743178258908422409947668999522177682769142639673596121884851523681532180493525123925446239763702161328143525827416448167790797124660261072475925418723473215493757882991546605983606125981308404215965423130408359237372583881735155533201267201528707242617217994880550799792264616620782595010010944744697379498189616412769552183467896993544410351138519260362103094267472381156298149556961139010194990351545782566164370375492259791720129253555051838495114115136404773930822717394891826948441642753776194864659888464298801775849602842036263325129268072265749484806697750517133897275640678108158176317580888617480334656764029419434536654446673808376188952406722067869988044011602686752542419959369457465011504852247810713641414435223119047824445607812107039026648333554389097386219780023990732934080283386977787017598714370935223765161637012037740003715003976889244575054173604042746727769321925487416797893974884913650492155700143476843219911438787346728664095393656124355259734098938522031644796466310500129366218833019431084964274982773350383946371904758629307632535017394064650320164861366907012679886544059526789899648715730195718401821750099687984704427153129364360390479320240563999407170965547432987884033275063424834900831396360005356979014538357078217112407941452799690302586147633552369932908601217911220754966408648429771334995350553454856928340562848001250932900088702855201658914694033381508038219721826406453790902999531209238713999998325792701902145079827867677231481543496860809522430420762209243406411777481514424754718042277356640481521198462916917669274174142410414412067777083355345896795738729057920226150230877938747673741030823522485537027845726363685021284575576982952783398692321708173496125221784169465966291733169367985681826339310554480669759116700285089888230828815986418400934534251409844015085898153899113848838845286694013943294112111560774106630818297373503167662163451217036967191897677275321673153836730531192008631197617592221861955790668021455866405224551736583838425589775884077702096101471834003065619468273404771610520450717584172408395149069217907100838295518615048790980048910780507820266808458497348378944122626718499364315894334140161220238389126518332280955899133003109665561655857333190993534299953181597443288463099395098354548810111866854076352346675931494278430907918372622978317789834665973506299850179263725795494070570366653536730105830846638824166066989411117102802877757359977264850061577508619453727503329115864179137835801201100931227742921568449779586591485094223892780511769042259428523572506174333238432159318203075591513572495281120376419651123278949307523356256487084536781358048390479583115804287632912805606299082695122484113923463022371432880839409946198096558797541806661364511057878453167763482582119006263449695394897011612162292965023509528076523530016674289696303145559116985032670872418178805675949105779771016943073114867969888253512662913490370048768273480111470375372494466652989156641169544098074933162415278984449018910127134803746015080917025888356623431488061845666143178485671680710147194990036171244822048774501420023668734508448840042427143518124088977276485657843990865547818653621469641533505213573730513352507648465237949558909400195624231914462820805148972024616410685184410165087565091992934719073440573157261286207587271626835013568482896077621583163904329308432266892145489310090337477108341727159111697441186186482226595764727699350159392707727461721319669325477601627138082624176208569813560390929699090437463608149255908676898081869867462695044308616364021493403040522554066469811789220962445703333179159178753198785855091117568703754300488451903262945081160766548584317004576342158559713605913307793030714220998667447860849196571847884022378015617880494141623467735567664284611444159929163996362691612722057992229387757858713940325005824362996244038480099434616734414554331871189591068406531994649357210152003122633587447330302288499538494670168500749442083170393315906913897439376911972051601738744218037081225939326157270671712494501948060206308731654502542122473143502361445710056439558738952641605637242549764496470823774485864168406852215490792975146458616271997807466864755619415961124011090019972005487468215090184330755263354920106033716029482752418186075110258552308816244893003367404560414353586263413996643244893068269856399286745973685702888614421328408687421429453589355543002543992578580080518823943878285837981841104642969410540072276906881954652087650311837603879850894144072506118019536049165639763965482188778943177513014897205897307848740165479756261296691710610505566513200429811836164288222042430492992169807344199392929871284481441140556834304782533348703261616712052036394655625399605577653055631763284542547496354608489178590300260375098744124511587717576707532472542987460776098851558431304913295865682812905162425092499139736015776156853613993371562542124971199858738909954071081488798337946783093802249198683506669337984084316763076455643974328718039649975494471522101405384720499229255753282339230701133509186478780273516469665978624260599196742448009301001613134933833334670254896419007171265683435788773843817856670587456935582125043225415917576613304212248082720646593334877762367886277190602043644551273220924068628574786845070680358856001826216748714551426490033483684137852264992912505138270259029411234765969458570717884579524989693991795731344352127811056932489539548954459253128123239058040420739679360378442151523798637119673002694709371459486189796291615882874465887926807223209603838223598966155383158275216098471370578104295001171629432403032076896986683086863221229611307493027733414745432487040092098554342788928345063733993973633460124113752924226492734687609432757636654872449480076383668195825263001238878203309286021810727532090890899911337692805408460223960014111911408060059475496900336537875286962893660841234891241187572287797228112612660448019939846518992659304524735574399135259829059455444100181555544953972029423198372816948738276135110078564026465287136757644023166047007114364208781210184599065408643754036353527230212527887394741254899865755176505511032474011383028168100809952634800717537134920026878121532489586646409843479817269372943851568887476291338953678889143081342735321908228266081591152513801997096513200132313997077325771571511754908969920262410253557783509305380906989100725793979510587328044539341466489409145275532211288641981390888537781024576538443364982679762398414086661593410580059484299199354669850651765170897444772741413887403155699019740491944365934930891987564184926672376047947354197810543059789352045697619480610575383563574233203204171231954633454287986119221771432304903701749155281979923063052757563961265898349557981638361429915726776588256979121367556317041324067179211198258255431722494609151425304300907566178848774819777928660376417284552229601701842717875077423472710247605379695843205897836407915112262763224234363616548423996060791059240119556685039477529860601509387529410795530220637211874198576335797537767376820176764606283251478321863121250562592577369219972838322467102298555344815851765596852321225098862442197897068938656180881850181490162810500795750178623713630157076094841348602665463962134999350624825809081259758435129055597055565832269517692879940997428831277377732859040680160048871121014670061829306251095007707219319223547902126099574883266036242071219809122713403892460646831155691112816500612813426023151196410459683831135695087146100895473899160284166151309457387107591240540740365486738602775949499159246313176149807737324511836615016630369526421787970235717198705939723767830584276907179497422159612604160591986401532396066802927158173715790865133530070445438462653947380056420758041485050213391062633779774691566392922127240692093393918018612526352096861010729235309642750325598943017737557133704797160100551391822491964887059334649269021950713030364877551487473442444722060716146837160848998590248351977791554089594103562454946649657146033976507289435199336691832357171367336919433320432955123101410080173536879181938485213791563134637011217517432898259224375459958789972527854096080353268298879275753340997075624867206529579513553255619656405393747090769992908959170220255887176520036140545794928877239450862086654970673460894463591077696433103428747482715189274855047890586322508668026519352454144376939156140207351531391377675257257183263774475951584048484783544369651355470270658088610443877845389603657968694726021481414768799648253508262892781271828203299014108258480058707725484829022509456590332712764033901096079365928045440786434360494057191707771945657149008429358181666640449502913978385777309304425252321933781419419947445128988724610108059605898692904289439410107592742298894764024174538553527446079551453113531126970859234218186712568435457955345493947181801294399729808461320450335020580745261937536667179401418828949020020538225579134066865457626864060863860051464980462187504801014406356945880130455610277624732919155895555795089168507175736527053335799414783910203138467070145070815013104933561732933661944318631184040279249087792204875557025201469130450486325315661542424049756275145394382359353505901028939986867053048301029216154828951967139090737434832572191224767584166176034719853633697672221545986626185963849792202556072186022100087362334460378418524405618436001093954594134927082971452410071717710266592930651645672732127296701490164147105554206794277770837319765572411256650665496008758871255355253565924105292693809442371770483860728484260312131590131496355012944695669848620184013191576175284908023323730451417492849055032798418719323220689656389927053143648648185674252331621499264689703643764161835064194125009500488361025922678409246193821988679222873329674504677107355682212375639594117208648606295730120430648360251545253278520117816621359208831473906255097320027679365794758490528046074024869863381167870703863410307814136628736334999244759508515181925085671744256426535490308629390672515045348821776376498885938510189193825761211367997971395846236885841909933819111531021747335776109838475944058881564292376125640922261096639047562027774605746180528427541651576219462174218248460395739105977681006042688980425148448479428583354075795518230019471363017382074508481520423965990607125856198303073119608400982675323703415539052230795220223015049430943327953107789116876597375614809851586650837815973983815820845307260245569466428176033077408307257376610202755427429189325903501180392441224645824143164355995184364997672238338813217131323850748511511508422195983750642659032374142438603850734677918446755233838662389021630423348271543615084631349931972330489349359691469136077334762413186630546040290921860897542132590184502639992308914669810159356387961831906814459295285694657132198151948489281444641192768486906112081298018377985353494097135881045328573490285484565614007646564835659978207778091487383800572717816511992917463420415046368928701566372636876085813812673772587778681838096655318070324425181590335902006997708555845713421278908957008907395437559641610813280865679268371267125412823952290486040973819027490214452591953715433470394421670754829211712702229753661752556756031236617411902019223663477752299908364473731187060347949365631293635830802369755227434241846798038157865075314451533403313184568602287536883667247530469651369114681662402874575209764144308557398563657563315076972938629772506499418576526795761028008756526614254422818332208338134117172230582726151470172310997309105005206071337865081777743562839873167408423442314579431041817961989152595028070070402322555704707619044387243496622983599710442708507404994109025947560275870536267830766144906785929024022984003408983695735685098875972124522286609199209387305971178374598171184974580662797984652965674198567147552825868691318070234812516758749949744120740508901524348679436267259189612685875751519655643282122865074127116522988142179560213261900594049838339668218401444573117493423072700352331518668475152929296012535682705841481866124718547161512833303599537146923207988374289586453641826544680581293685544287608011302901420293159799745687112826019827493398438299916485752029264617844526854017793012235221027339344726365317219565862279194352443168416106899031751264009945009820819025957276967414808978624489459879230649738416159013522949050144570996927249205528455618263500272676864745723958021037516146163981743949296884416860549845854253951382317985912438679040353240037845746278741745542235812760777229397765135493806310347189951108236302918475775460949981567147012610348090823938397130890236867369814559933814958165890782503700019531649005553937524940039630143731597993635986796571578929322143693354399860987413196659710419440077441513684727534795924829258877947717374861159083878780540064281204125039050294600998460674862689182435637182094988170180863394654237178604931453143912629824409549997810530676899826340568168910096807138049275215573065767185249077070729839847673781301864469246174210709203584423653690257494941311097499211615598274597035597564191950664774639934061589759620181677097817188417557105753218816997411010540932206672427180154169686086992318521243353989779054599209940606140052583628133557860244641575549552378076958253326181982564515049810344702815973060024964393654556230929535241190835728945730473547311611193545205308341041794068847031828641097739877936075061266317000008994511233624558832731709963168105197269354845247727331998996426595200634629215696893140138065405029736775952348286106457298497898260415952586177740166619893445695592116917117554574013819962046735423242005951614809929603921170961186794374861922225249604736515041752462348476269409284997623882069170329924872655008178709498946243859776085616523794433489150531103213085802547335561482294451452233281813983192861413445819113050344691036814846634742866169792741964236875336854770403109016250430253565576306442855779685635514536355022232175586329546985702837746893777224778672840543477856339187347457112469669201716185039730104377870294488069400148945729144842466479493822837176650681576297284507852720579754978501730555369491925908295099178897755853569082610703187940547231226439695955432808700595866772434194336212918589887493327720775966099964616665848903026980930546361525939264632486778642035807292198024598490345289686790909481027259707203289469602327895725691444446346207956676313685730175025964760177832532653875908437052001463445400519896946348410526967015288160345069572766727209350340049561161544362037324744130037313675207871638293696875883011258327232414702937837893377780819958104271218850571044750743429513532810595849515810956560054337215864291457600588171266058512302777415228699072832378516350863423014923167604269346159911278916623679624047265645171847525886161461176310597279821423407373897021255836474512255083561302094370883234121540899804924962094264599775064595999960693890644102592981925463255790053977358549354873646505109949096485531327836172737984629302985143716138569152557535176886960002509562940008790824924028202255056917011721237354823944454091722864817003198692415575085267164789911038965569882184666462179818099927800864060807470893805811993514059164563919099957540956393569504934437209477344344535212587334299512034955625703861567413476904147674945373321127602265508133957846990975107555235390150532177945123445196509775084404657710693086910510654779389797895786183352560326164401873704654632745833795610179725188062326295365689420061823390708787665357267812906038101822752274237719399525084503432984019648023883247011540414699100123083388158473597543580440201542724838930022413785485842426746602894297291028078074195493084809742582806196033207932948173653766679594295149938168791250160633560169990755633367821084691584358934958414793717903969567543062388567220382219144113449233587683458890665173004117392299706701305412690525818537951251700584199067020571838508186273340730043735540449690356291024530378080885773960287727190164554507328783123096521374203579056865746472371036858966499066099133412463490594997697801644653092160643221246960485493903429527807722376519108328302538071695739490108190156321309819762483008917956949581258809072824437465664670718910782258214354204412226999073336731196481449221933605515420543569274631557842862775547275123449645357539898298580762445048138341965381428156623925088986595242733380724399841411910224102511186509469138112461039925497707846375644128248859182330189626674115696869503278730214428176869527872214187774039897558526288195802367250715907070375626990588370647270386726173947473953684062518915963818754787883208779413773572310113185558479268396632324919313557475414743967636036001955271039660823104037450800394048059163369725715088819254419962377316599305357676695856907582817921325961956013750783824972366804315588868131583766333044922550961321188475125611243740184834801572641567831776807594103505598551365886805725615808008395165732934991004326355370060810401766658000732010776919577782766726828850396896890672529182425376600564504862295468789231221951023484375348075715858461462344258132253016982549037910958271954976214290393258513673085198614137470456590874314769583387741889636595024529784027975150962887664962923655249921473256860503431518656376588101323428195593459072132168249817694626346570538807194217364102904580738016450722014381655635477456925048751675432129103240654797036909938173634966428797054526643019933933907932097022321604299687480742157294990981560926371074202070623642497198200142584232738667201314381197903939128976320144745220516375050364137044190891736152368391746354859427003032152925288780053870874337413968654261729616436704712507902803284356429219267820746895927899833722940207636504417404744983786709578280023529243584798041656467053886017103338949126329546485376964851691987291721592307551138723759998822513477627751820186580914899645437918295094495708640942138888668459792776471660007454462553260515008855854570964664149982634024865897558117348577165310756378537712598294751604272825383857315083090045150272537506281823338289189348320746057530710992797079261759901752320133848710389511726908210991559423819357050726403706288777710993212134946064494401804718535828486950972710890018547570879468640305460681327239553537207700580594522182114798018978665516932734980788345052145298814464237844457305345932463291860548041542563091548961320200517152622846871792024441891148433503939680507112476435525783360670030891800339145151556409381365471419364236117354199152678927064138546336400312188382044495778894964474378197881754713812887083514075795733156336721965261551459164128453344739387394601383323432350483020208232581873028343098821229255149600157807948218958948654299511257436802771833178930597392694787274746458572357222752031493494118960332609820537319663946540846652093769564863370425552926385450764860201969828882776644206833555923722445806801255955010867948017023883318998725711334834500022253782077303610299325999914457193712616336038335109805479031171847573477298840990587341966540844901709948104268772525661330894738726629794966568623264422956479697288005005671072564844175346593707006343808756500066197064652563882937052027050501268617843638673454318745242468119286931130320886488546318693551925986823499249080491248601869832366791632193021519496397911687064952859645956591553466505072123144186204650229195473326036374394023789888484106585406375157738429828238345754874469921313513067729448001182271596142464323458878531429686191593257421213652684213415194503655121671805235206003920232391200911839539606972463451490376073281952411304212397926693090368311863422887507205628933426024617814947035604094024052779599216866992919663756315265749603826449487676480652863865065592102314330050834721107405176159400482511379156368334543663468319520883405854814534726099701728871369531595466296406037951664845860756525715157315400966148192187513681978980353797250847597434625186544849651681761385947344686885565243536916097804814554540408199651068929633464780476252692521965826388836508990026803589589891102539543888217587379129604831933729746696059309112521963481547616729701496048248340809031597288370202186824715522787001607295574294461377017425079139609991878092819240196080186314730066251133693853259187569903190103881821733265115059853820284044079619075005256931670192030534180244804688447358270057741434440927682411301463757543273592470493367487002683701519421152555371354673372597142023596800903745439149174508725869254277542354705948384167396558404559001761037981352826516105970490959251644600777450300962640962698749080907516736814516832952712764873150406618830994123081941342942293067342092506959481899006240826628116553377168768225794035784452246464625886448730741357388935309571528216769669053035753662318427022281041294268332016864641499164900233759884323903205293008871580166645066241718252094507614770946318668249908345640111817596459236803955515999010661005281845392695092371049804398795354558186032969175142673953489712007429923367449617147308231708815044078739708994247654272926775732798956062391255508848127563380404598022665984646449941646216252384003828213266517298751319302844074197089821810249220146660694135240837970483653616572159625353494251768173299886965848435075439432355201495793012534821947710971646835321066465238942668708574424406792844667033925866724677232050041862414693556538671113683447099297812106483004501195672752515276635746420512905152731418523785306642496139278972993111446680210011801612779284599538867644285130159602973061724930168275328998495838799513122132399470372424882680414655837834317347528034977136124193097391840179523965521282373228123263015580040683431752964849274292496148208546436329638164560179370524641816161680551272064855781519317394267190910057130933953165534438395485156435032609604515708716086611065931273135758415945522045986121292137058149637643375774217971755979769168260309408993079610066112549029251748994339584769977015556920763590928226483460106363643744581900888507698958372975785253840267760249064433196830445324187608293417341978184188727369936514974894608306295996480628062077056358723535597178877153884556038193676381021095330916120733938330282083247392061716024044170633449675271289127319519536162572449535386697608764011780665394865556384193289856443376957424907750826990633931407412505687158737160992551805824562469005442628226006325225475855413022324882527613410829395454183301800092861645840896582136165224654659225009662514103762884254077898138412939190504896785007505077054946817686523658806115146560711852992407774447230005325792224384575232790780325290536384716419339241692710678294617338101262652997263349499693961620904861974777789449690779294010747370439285472925773039289003730824020800682153313502081634265309717031598157068870329766680121412983415313785542200229088871685916692359921345750600521032406949446236296591840053865115077279068008023932880331216949831728785611820981445592476734272755613092311687994145537976892133784314102912447696454929900645355121720427107790140102075461683884619316298509938691359005735643787043364231985263996127288063958962245022872769771055188614169486062262045125170989620191990530058047322690145079527495652627230127033588839075965275461600327126798135035295682395341790292704026452402325035936775529960143825391471551145180525842470876391724192118662690810255252374669703369896129825905162112663488092123229457577357267913221767144842816238781495059503372286863333979857564931305117205119305058225315947059046636813074148425610376693862061264452282336148621842948779028677788591664789446103615469638233971222207640090784413045841865011151399910104516053253885777577799162626549108968979517164067357502186788220469461880946730237757089806982039855283497999711283640644166712986429240893069964709755861279039130781673550462798144651896181760430852225155350600625949731336944428249513727415072075680901251302730981653384687445865133487285716125359404137964845245635378994192842759715342339113097996159944656857438882057271069063951640774179301397981120650560208733632373321741511646707663941636684046298752294786868500718077218400162858067653367630867195654760379504413018388270208105238400671320835702189147862645423886151758495107727277737958490855917642447134092629905315211868960780122269309881382583943158587200441520479395416988464198364391008554933431692993000488495612375113922224172950419443848364003838185354688086172801149033292357509321623380835168561316621846223632188458474561617873719786237216829006004489283455193142804641899528814380174968570846894626727227210164696349249085749788611142210578791508976377314778341576229806081050640511223609366961527118556985139949077593751497840002045283101906373595611128858507246576893154771991220479793332697842373473559637361540724537438183678734340758237343952713123457161080489718992788763109807130922017800853023767621107530967040345297306777198122132934569820701561365933220902233920884117201866346090391184586676404543853613848362638287931391790445428618836645513449510706439821105123744417264611713007290066509464471734069898414558856274771694277717905718731405502530618809174033843407579302470267232670842349946103548936783621249470917733856300016688339775867732234565421236372297502543366383831061394536138243248759017022127281875272413877797409912606979438987146276486018296525177947072844489922182108295722092750795954017239751682698703065293890740654633332762455314576499778875523595537852770598086697297931739140119328924154606957543321759914080702519410029531839800122626201655173421846682118969732912180958969616505558589598359464873950133367897297888276739048923820665419019417131330347131681390717016765319938791642781980331985908066332725421552794494376633661953524131849313891589855427034060958868926300625425819434955801517937870047382743456834198608251863986930163003005516402585948710320407252815657633829008385796765842614915827327538540568944202936997952965503323476678373000926635765296326568126054586651357631404751376803649906442777873734226838941503444570987940406531645359131160598356928088989163851755553023565949750951854196682913355633490887345830893301567729974833058373967398386156378408830638240816350415212290498915666433878068072404815980663427232893100047904450815896148166052004321832075259223068289110883557260462120643381295168021979817968611136504776345164782608940813890877171845924310459325151795738499361779450690203775078143272645040840759469700378541718883466171997151791732804627800264996297830286836474935921347343770915928114340105171170685817468089006265342067644656092022134280769878299091009881368161913700795923656153423562753208691096478247151834109128229653285725360210552135239182964430825522902683800042715649889376493317361996908455789593165864772886620678976051047974936983763618156929305733501552948236795102806679454068881250685477943407280555188779969834328553568090466411928638205057308709454844894170696240471726063028537128848449233164150213675094102893388819751358453274314073870051104539240479174387084491834636650401209746443018036444655860084637518136645098861958309001727494443484979132764298609751545076820407920519659027033527738133571506598886600101091122555567719325646669953375182989695220846237967279510542181849321571131298471407102230758485178111405835885718702094482110214674518524507999537552062065234808754178337714131826830290009709273376754072183753269177264234884719592845175812403910670892463360831737005946190690463676049012378002547831526887654406700568433277464652034886243988262577542447708264657069480850793215990748002084468897097047351352655835881436232868410237291737677114601662268142027724131156736846371790876773135286225243222209580698571711855267379582823125679640735530654665013445149696054538387008133851437320954558233303113346306725390106549905239789419882476501469059203556733886145989317177721318999008894758632770726645418995951227629524640190481249870307840277948108676015686706259735962132302716984758291512872094021901946952073462298387595832357374569763689105661262444571528634401748471872069761928314417799832179341742672997363066354813495275793378209051245586252091348973748053491691945750040342544069355705998909834924563768561740955733916075800756810398528960070915513081812817911037322683561880889944217755698901756284129874471932008066871632875075236980388663195035958155841020173173514189727483966474095925965340938687417874296006710138026431494387016320529801731744325934446051653012694151259058228548840482912377556924355624681529802403348451469703240241364258567662815715090993771689788620090906406941022118483351718034590232282700244318821696371796035394828566341224111420314072166822444856013151232588876909798996808546016131189922693084955049880317541742732378526284058342473083824628800464667094220793899171278094978211037339696524624945728076436593242766891123936196047515640217408734389865767415602774284483682327612902632986418408343855110036492949403186085124498973710339022605124591078896081103438540054551564020733634327168604303737932408754617828079170680981097632435878906834488700425039564112043287779067754900946073523080590004816070513938890622331398482033697399331507899543147815404196079135332340808429880587367271040174089664384062856856211732522655103727464233935239044400289086557798648633748812810253504247760229157561195332351339643943105356237244749096443806322367900374621810268079810022310490039009589433191817007899872442262371057819856570143099738521260187171876008155765904579030850874199444414365434083912809444414544324475272758843638634333932344662784497585889004543684932824050345915005006253932012195750804946672083555292737085269455704315367736983733429481547198628902684280948410651426806534080592024138061435539445933749791514707527556254154141739271798493747735780291493945582106902532396147248238271571930053745786228976569161539396937942126578885952408543772831082701271446886882779519638156491971400926712582855301767547304281444577706148463298979589139318296446394589612624647184826305036709662853731849957568254020951202949243044111529536685155473978179357147876745048046923294503864770108030408752736618985143257072419753151543598165257024742520245416067543409671413826664979699691423517045445788892224302911803051822466780235255884713608027668281303806826191447710222402884437356434066245538562548085084169521834472751277210968885575403403522068096306140229621565784069803182857784913817796138655237209886709118850472706203159438100398809671150278201696414851514029893440822192467219816121163261144456766949396081809716319521169303449895875217939130576820589058480836704107485204791671012870667393586169505360070053989113884261124212514822343907603595410388629408043898465140744163502804123886758753615285383215107924448299760707136673689493438085261684113820432283432429644177389954517045625374242237522879117471192388838459695146992653114602361565803522378161297778035747137818977376845454333957620580492982571827291261592997229928309668582904310107275248597828266259640795005977248859131559447112524082597744018638630245007245406065156872909193560240841851930477726396254734941013524036209479220522404832602941237486092827982256630980262458125927525447963703369786175578810449068587265047997415345936430665355089715199161488930854943258661991974706414305545070285623349060697869570370573867367099949678250099340808932961696930886503250207908526716390708538848062843673164122182490312812177728544528364617186462304459950722644594616757127309735936680526373949533124019042844046882950444145337156487560580718055353973698941565858410960371423981396720319701777977160726968124847556172602827080895556613313417100511276823396021062451366668404315032175041423406852239709318236689127242932105948073914141535304995745536454194542243399730817038295521765248052457241818216313666973070389588472632594250699562521418881981013103550453600290757736832741298552369796156057972493664715835911150587507653517110971745769374409766727324975206919851890179831660555495032906204881643588222913844041114896795508734589301873451174974743145440298364851091394624856407349395113445977868669085260067166779069403991793135571860335937259650369367653390533109332365980160204480324450157774829550374024625675785771840996310844115723999796728610802626798656177495405126243737427648562929582223685780890940596664905401684358905029109728290660193578842288513497007717870512563174949834728143731863641632437267579606447654744673913042185130500134256983709692497344631081954703715134471119799026695585073150115564494781614463005105952410828429837519487013913212088864124555037545135345636468309158976458855658530856160187143387600883685366424139480066443047687748774915930893165858139149968397370161222844402094043058673848825273721002450675712513935976255281404011216021959007194453752702954280352821736123507566784330442986606108629015888258578813963236740850856221629267727392401074421025028116536043704836436816642124895413158168916145341993038525321632084453287816444327234825591624136047382503378829681227901421988990113071980730596000745469638458914701915405135821158919225392240413787961335461890022158701496973148242356120226938694379678698791513751069327885601698875609227739566493706809865292961834683370935327877828074360139995782156366236267856666583618579845015887581063628824875985024727140982170038096305308242852975521876900442150961882782070177001264641885952964325531027786259396392239576985935828319488223671003008803267290778158617352385439128960543986499032548141533211678115756768607920716793144590400626209734732826454381318857068415201441221064764259367489945062382024518693747609013421469138231235775052619229385851625182089033780567684738591410780429925375467543683321085797984791457290611735791817397012329123030410636868036318669528459255836926842771631650592038036256490220591761951728092806980214240568954884379648174028883490719960647454984836941115276855778778188479505561699556885323963384712018790704297610487195300124786097696442293904269854838829142031274577051326831746868163295123166573395960141875931691389662107016146612751150559045804151851864528169634637445427815952461953446177424323552952781809388674219357181663139617364819421978464356740289644963568462871832539305118286315588674749074052603738990374169165473679999318621834545313110207131660748506145925719500839471685776294663595877993260609427940100453610235159886202520499355142302479692496030627984293647350830139119725110242985805820397927718827736840171342470586545369569764204276651879428317176413328160477980868900353631642753917622228572739663375487259272691451435611233083709932827900132902051751129467563778880269480838620584078453618195940592454782116770370661367436386004910475384665436877927202405570317513216250633479223201467233843686572253690802680928967452024986629898159309400013705826023341497175142291390126784710145232617615691935978506318645915946443979914512674144873183953910740251820108783564735905724892532253869186139630797336074387537897339951553206561989222516264782957131045120125040709172012008160672939107149969578634651744572016496906645445309989455683702396963563315668751351524349862703691958855426902208279715292379445153925792160452189188122062450823650705860792481648527715441046260137031549436933990938811915262372438163306096704587570035585529526446950465789178969322585598813365434889526104502090325779610855386452544020555449908955478803765897621888700611948848231423520006051496917963173862137453827624483011127305627536616469379508208275896533366475069874637481710126919808260358131929104315470725537098806067646121462781532751911811606198146378012313929568918623583885524357377159261023556323420793514267604477821813066229618975348189826721203143903765747527794478209774076166012868237246598454863370108043100487122836150186687157963013906708228562402232791911295716215927400932638351279388876165098094322167860374378982865326849058382620096976599908942252197872787554632604900987278883808206365930627542364087443148193346335871839277143760319326498116940956520357295288032427940677055888263582093616498477775555689655384375019510111906386312181501548429091684174795099212733940468565285896947144392989528838266526654461992020036010665432460399154461983229231610976787026461220642306423466483652082927551036015477102913360156178948528513795602678015162097908954799232925967496458477449174090183123234518610524887526266310071830478738735158831157911723224189868393163340661910656238480657998185006821092373642482212069838021556013886859223495233996027321207407198912386358050240849408291752736702066499143901118438444284125126451034488903170138066394435827116413365486931880076958227765508019355431181391537227487449495927730163924822583028269158896950213756663732474428251636006768068841759650013905479468535581636277548681169120327683908207749115258592578419752471948559113694760970534406433611727662014369483137129768466549962284392098369181472560596461113989502242270835835825276342577044531685142908722552730893385812117213190439062054269281663616648134151390380801011833074128715544878084767898950413941185761907750509184300842921420746323967088249892782488861092022372905699794401835876237516480650860317483933551706307373958479248251435069629062386616676872349253029432111450663026935940899248524946400880973419044977475395896583714128268046889709639581267784769826411321098997370420865317464290777236125801191348974147692093394769844954457189664202375563964998248425099761224257166442835165815300897161556752364903119708350807330180217742773841330094929758613795038324144362045169126623549024887998921353983794569897553784294599337785679416887856118788827022181816234642542795130634303163529336549968541446733187955902177113891521182066986245748892675288727321993093484459490312339092256388179328569608782014487953592792224318486726086492463206608013114054786506801739612473318896542867914106651469964127950648748497701442595255197258305108495001467122235771881543121871086248454661851535001304051349847625417771261621461463665488097218551785375343005077434235423601284275072387030532768658220991945927344176622127549493830389863723168064765989601570922501721781962508387876954471214512433329687917844605519114467503274282479135290855860993706476664652176018342149047955108854816898704510657855490164290684075627562507319499891552951580182144119943920696386445351130582610447786234748605075007955932260193013817963945857809465486261807840117448803643083438903257220853024630725193756907132489427592379293112681641059262536511198455022493777342026692460288965588912829430679457701972063616459356586641656034973138420905512037724143068929905615691867939931758369858498119004561299329032135463700722861615688598697353085267611074171989755327945879005880780813415269087518074249176585649294668647066264023989299487148262206555530255358165993491446805703535769650434088360296642959323418812919137551589956264516538394330379453275452840788260311676950807048024046910039681478889016557848396058816403644901459912463939568050053709004133895460055865205191358643797053532860818075496782212929949091859035009690793847693997311372876190027108960470619462811968706826057057314079982998056400833171207697834982257297305322875241810276072178846302336875246553124372311067157041407771535383785230677051802466344136873846495684688314096743100118861253710182686612332800514425775321339166386070693518870600209002652673777288494178236019221716162488343899804645484866075187176222910200230758085814224710654960041118418036455371704423241186014491794091960711443651978547699151502813652739696138269160086826342510442112062526614830580561006333697207246687613150848166532952902194717954620967630488381451470940266806474263610598299549621366372846488057491340288719587382211343454073894191630340619624253323221368041082461208186107945788310993054290636376423583344916724726693404867746819918653556843496315128072714712179407206092642534786856071519571098720218669392018765915401296963018519782856913325465034908227815694582685437774132620775233333424811691663717076724368303696111582076401794930776261778753973936879996713943501325029515184123851767833427597558600283275882800381175660895564931669573147768663072071731886988314654770407242493942553925250162563977174681441027535726722269183529817944111958652425372813183530478898380828474584866863727815403060720615401195170856132664195818505661095174953860733745260743696670371615196820953113421696531080887440163800648942195780733716618820985584478771621059489948421298829831898284231458022258441203830265664410605048420871040964514780296383564494783907417556304593997743275470813259489565147613035039753825281849746998726773451995689664020721200087711304810254320408397169571492436123381194235273311310552317741932265358862055569106052788941240806042523880012381493079988912015466353060846423549741993338042199164443504303891130783603842383122580493400328571393876399564364712544895708672467209315520071834560624449139235922999268434540293893672335088615781549900506345907078879186938773726421345674730769229176295765608859971937375601160471174662921567608588517134963358251822905171253044598564360063203381185501351574070729959039787840341884937709783845640828449864713800663775028412789900369543681812262680091189302018435069432660665792557072163543423345624989751753817091033715784131017971543365862527038835878689112129697890928770395904237399281006681183234830751843070707579222821671973408721700269155706542477257449820805752838436215054622229399891682914696787522686454292741935931792479127335390031849161316385076199249055827577155420034977044083001837949971867267440231382863065799195828846541490735188168912830773380548732102042103432168281040694203470674249513049276310646693524260894230233360412812644998383081844653691587388488263384061346646787693727903829257930000278394494444524326147570136962430352244745089710238201351050574031672363978671459999240203432294158146606039523339699030281425020768923265144707522941424065560096109002290922450805606084230158598575026176237543932278837127751522056051266033344322893393721091508015385583009422635503997346168384976562233228854696555639436438680423875124055200212231416615858073688126887092352923883548774211017784828711376297714135353824980396257147684208271873017022746548291022237518184338938647453408431708065000331074187328054606489785516702037975132679367173475816561429133652467659391473087427905840883828209916349909758955762251487528938770131355932266629334025111304217295549344532326292612119862278615924740378665325981313160812471056309548584892692413505216589693464941321322647654185371115708758537090072204244575219946679787224026255530368894651177856967393773961849181846175500256248631340100169761714382763811406892621041633566349197939139234511334369965626624450642721806702047866313736321265715978787926536307816831830357850524945887090970713282758480288037974295565354675411232760089710351840236366092119513199249017951113489407044485022439009196033686873171267624947093868806075088948346865771476057379554825873863453865884344365664202518572328650763160439861739214860021931101106206412994021616795620063755743174069775944642362169369408956712977155021445883397125877767823972477729078391710292515933931440267310722599039630517151371267715736808264533765493483043507894968647488092547654517126497550453738345369727038147388499702257634938978365695004388283178373506392210341642189173313914049999117202673818714086796166251310063557039359282771225917397143801038066492571976184587625927217158496607051083394881150828150087013058548666492392090393051784060520431884352258651057525933231025414757692527571985520719204137101583125276485631683960826030640642133590214168676116728092833167935834015674712595126999962434104517023303418460672867549787692705719315523142404150026838654939139614345013474857164554416729996464410070195713652421295116311246726722723682635790124681988711691724069172370082860966665793842879953813480828650851177260272743640072839071852814887976949681612311721792610919361129503755415147649665139131823230639037354370675005454834932019795427081507166231898246400271924967281982722054598899883719756092447129969209169483729148783010699074710004492148996200307956128870845046773703189018147011872321880773206782419258487633279250925576000689052065575160128621337814811848588411423535246601577698486342344251662511374515909942827852240150526848604936890912833436910477211423038598605216445278231279788274496131119895326805841393336124629657006509457960225703917528931575670381787111710988750246187378727393691975728198874397774983953182957243496703500815883337027550797910758753325376556718340758732737527119565890064532307107933152672819732946615607362236067054112332718798882152146580803322777934902325240831904932713378103200926182881789584614070210240878405442908252083454231564347882920684497843341428206162731106788219638330466898569854273096177354240625563416563809897151543272161368958285327337124442717354419505567787723206693041058592552744189290303196984531803859066506629696225281339348305434746782275690387539212630111138219966494533204938348935789954020091611523181479322355259826609910023481959518474463259771014846974444140114925282128653568547406976701006895513489229982779310718312451622803132634523522919094593313499773304226955414983461439650100828883421787213256248451747066693995743313401402467495222516802965164805783155712745098914814312270653576137753346480517311303054714424907154819195465315126721913248284071629676988871039419073450562467946052560374659515972273606305613842045384212745977799998345286436328636678136704662028955783034132921798823180532994336789114991429257699827232163050192628674594302017249927387975704172505256513432955041737039823000570285202051829404582658335464992841748959658667954942106980603819014397787192743265039479310636799638148115662786899462122176621305569702821063124448723209988617875676962122034582456797390201700356433876087463609358295948302765210121742364849047089049577726666206737248473251789032494565862375559223834596218106897357126441201846249579989252730870133468341705989683198569911069772493493891549435867860419909764388818502437842529337731141874079083202853636537416307644108894061507156313434383197443446098826025643992856939258752529147477894122319578137062969261308519524930316984737387645066280404599504700493037720619698871183147803024980869373483814571442083492162858725388874452304654869109076703908039863166725917866866131491610147525643383182285393794561258174300044005381433494737524874884041044281757519056133653224720891541878502006093785124584784045704546362461286515750756563949643389344492380708241890539703426438435801918966504887936236994316692196996569521046027424267782950045340732701241313783253111204340950363908938329753238415648760453941096408025790195386312074555082478754560716854966308475685015311538038017178664601685794020673618058832135361421634305849377672879109378079559926914709054565804416546420166486067303838703754143477846184015737198371450627018134813000067910960017360932190542067574332082537526736117574159636976507841769271474467566963645204756063663645403780836090658031673831395703413073599861473928716949594945397396906945966640203902087346291369042790813060978853434509674633585518693628659169162234159675708210040907661441573779878877734649286985091671510306580572019328114382752558978141067295571232979216407727196899728346481886119403514043335210677603640562417733667412529643261395141725775136112142460557434194922594153540317515673984818651018189289134881686423627747100083255306012599786288439656324872584393565129885387290126705419742375057366439980325007393121391503104108228193235783437311163414561090302135863569948118616657882423350279373205987771702049316532336103755327146349960455026251956739206958715854579088400354298017025566715932204239862618116789567597063573377625255963619955690745115033757045741034828500719356324982815574185436685130926146257201407079530525341563217180688368016669016458434783815261656803936131630406387573832460398073485110081288892662361158331369284613037224161923009157304431395097274792938988147601580163194238119473840532117797101007631401022990141543383813406723607848661970975922204316464240154630193498835009837592234762479437641929125737123000877680979357789841781250543942070742263353275917506062090552988600360123783347621038305971614484515237376592450849715426707573741027653659228101301380383689652532510255494773697893227472399706914935902789297474919718850006867171541819660257348141960226490221628628708488735604678658076902718853257238457295295718790200213112271574057877309141937735829445191694913551313172664472441708071044075425652936377283564939396700538908142956253052197554333656581179575858771417751918752893135836168404475116251784982855974209965423216647806042934237687790779494610698322167897472247173684295558523898249409745855698518735578546269698395476777093724088455726021057708930726445006382396854087748211296003187911573938231874693208130169078861411931752118715720193137687833399655472011405204309939982828044807103953234209760037079272065156731634435835121726078468437584977790936042245910788962724446151481761182401041154513659234915037670401713323012264790645181311791460659120928699924367996823782136628463513959234565876768727916977204492644579764482959864996623114327354534391497213672533508520855770376098544854031348445351384388613350949397851080931906249333711966889610196991452733640442495660021516416137768721992660820978935310264518302281183460700515676250249359650429590029341821282736438573939312679633763530723988803133448256668236437060631807827311806464273294954146706933887186944318045330637860055888408755092279564190158351258302385064461841977940586202697068004347207035781266867572354247673580183898525560699474640184357188761159394605903890812727871711817611199602210483596711416430101614790138128495791369899395261969116893551949888820236685843323297983977346554598659246568532265748210980074644591296782672004701102962038728511743299204977111141329295664937509131386492684607753672142548328541776216730650502672623473855344178593177520775409560423428328917642015335113929618851084505197383019484261915100416588942780728386094918392739553773745448314076977882129873932812276971897270047589630744451760677911964385839845641372326103560458316860963897196951306009644489266913001526716765014150228175419983399743081898095912346845992526553393309151861833198187314443681281234593370946086421478274151969315285741833535925690932655308817736556650288118770312768471780268240005740204629318271163259037290185079549334969094781324259387406755274316925546904519624800928502944275136741809998221357289564422021553034026397026259350011727937886519461382325686883464364011329056101393460745351520364977016710428940138072119033800195790395663346201761375101513184733491205332533058001273823385352337486354632861288604570084539775339061889635151251270349794402232082674728234340131405428746672847431926622587676661003724287925649409706492667117616019454872214379758873009227555345175157314311177460604822114480786970882584272280646695112743019460142408751427820613594285384224155173894154860720459750070861411189556520652519070815449616773159551905518048847174126560913722301631714448519266656510081029904742107439395912128957276039866526374724986896428920151428023684463275869963273778368864560638481840267135265362573451081366701206601464164492273044603204337654260565367466787328722615644993111357355593094102421373564764826778613304894970590880288129446960092903854414031807795919981172039155389477279274502575478902286369085446342227017152944900965583971937222094826533265209843174483001021284979120136815226329463097112385011399051944438628997661022189405176411435318530970187077012380961829440866980660482538597372357190496237102318684482690793789431992164777439619491207653283676289185225032118777843394556049991284107934409378570265844556944912993815967985097929837442350148850513430389059452724445058867293565324948828502027805604649022856971657638307080751118657869190805725457541635174540751106012117405757095768347858903045018827247641191098035672758996377350786146866502312112636454842230498642145285910757402094513668009298534803120124185302994234024513569547945497561999395591404171239537928490308958382402605922396214114357978126750609360144908096957172221992368026303427564860519294474015135620765312841409932483448765271653181529205143020576747644662557132704901247957560095188518603991368498632949839404046253153724323029490634911998164131622472268542847028543017192487784713343149110748081682515117135804228535957098169734278929971302343394592524740233352358357475337488696397024422187026320351685197037038884586667481246461061538009946551102095987208851233609689126243035425784215554059181302261942619026021526710372825118452201179073153386809010704736934907473574149938355544146673650268902444148785258303968175557902391367736283988711164791536161264732893571514629172969568882353859679185974140728706746795836722044480827056857733847713268337507831444377468502260142317338279059340816333789789403798381310665359462875775873660044483585617939660025500347248499957602095730929822420849619622563254308762591248947246042823475175579985101238225748222703337467954357402703391204886297030044516046376357065044244083621640680332742220298649895846169159303031875699359410811137963324043633040549428057046561887996309540674195578871519524758069086604490140559132106253992234409037059669495409353774426280317716186545978457562476081587291373147454359976654472592089831218600517594316133634067424021425080601308461233745921637700638969488911918302788587520164267204284990328045737064593524234335728927054897082360434766141277860708790827726462291839567501334936516802955650097606491703639513244783779146469986134012345471703327984641664702762172582235307985039784259301438183528058995791262741514070010661219028040144004201175883865965550968229799078879237814958848874381291477399611795144202975625094577661991616853973811081745251882024404122076474368151397537059656160333699482871327933297041772771020758851757019825816078745636413614401771528133886029010867552710006516298302041566759912975141509627991267651732453820389417299431076173692020163289861575196983221014340425784714820755023714507240757843829713395780050940728191041062898528894303673784198574350854319528719701664429168603048956801451494047581979080065859314877809078997895776329653276997219476478878905802706493416864946315650090378007408392026358691685591699617386828799227154440259120816445615971983845138426505507305018508181685438063088233708292874045969609460488805249415200605804484771424461420523318741982659649168120931813047074507327791128264263206664037939342814197690333848157110635075461667775366568160059653533127285326292354955068652970751075037347563221689674576952051697682051958140633631266304530542922214994170355502572998979987879283515340628271377197342800390474726520583022767115309121378648985006044989105446404790884997087149390806980710943003077753081994524665387017078669667837921434659335752647742289974089396847226315257327667041150401623138132808821366373901383792047913189793763399791536394647065248644027398925028017395379205541615562625067849451662992550223854690778062468290389680494430398487980216821012411384295490657195814188550454460948951839496907496589418319683291180875600614894302610263687970280030279268311385629763135784240604438332480704788476194061460921802422444241986805058565189362008912872689675738847335249541674559040298553446671667018522814978895612007602415493494271065535702690055233165516867772975523989949634423495777906124793687214316210787481991957018449816763597317854529542038500408355889321549954607597560047442999563998883588105196067067618397403191085027587430395323053849216752912188359783478210307939994627141452037476575025815809213767632848141273707344928631323388426435874221357869651269088171692929961689302023962007779778071003625230187257981754011456836061018398575112095808081573977128201389893735335474175956193524677606062420496963746156932542613921816571759680749223513112466519945936543526843245009311439671097683613336093138216089844706375004152722581408875060926879595655705732492719759742177576578917705444073304969284448433437694696907700109150660530331804758721245356597236794346537629598368677281403487695294502541238896585295776493875504807883281279579407226600905264909998013601943774735018669948329687692556764705771067921526886151175237208289296193953850914450978498673628982816474650204448700151165828450513482681288468211105763261783596026123853938519020575114301360745945563940890184361345407818408916568399195810938238465247231459645966498095945076134464762666175176793607004650409434478112066654944539169071080714708250677673988329565261223538818035816365167993886396870013919043960034490189833603671659581488531244867658936403186984377467700388801478584560021401077401030271995491039829968027788047722406662724480425421001189927584114257174603251499650705584454427455886288687379826767454458287660390679158271823637797264211534898727995403783586241204281679452092936704469860577837486760296195602873151092313379356343233570960128815369116702230134574957882825126018125002657546796272208811123343414279203992226427588580600418140374504236033249010238944953128220697511358771333725845706095302085010756275943385476058229308181578633621718829989426427069766666543135921766602445314160824062195774359935851713152282202604903938809080967442719579237923961236683538228481370110949790073522578695843942165570970337468790917414032572571439909816525284832586665137642717767265810534088230876337518663329056141550811599413674357892207116492708821514791736031863905352737882618438958232497178323932808370411840644969287492372375863978574445677488393329488093982331157464556636927263534251631315788741857137686059306369093053342210524942899489639344009941161480212005708437742735251227637259082638359450884705303588935624631042303010223838121253495505612703198542134980251180069170834914397145195433914421210364123718372575860739071623344831954649019158117666625948564235646184517799543321482678005951046178056652948756408257678335430212172659225488075696656466104128471996367687536849106849718619696130456613758008866336370760211691403539169790924879039293014827504056234733363241792647846595362099536450756454484429064855247237289297704454460779390754970129836400998540913901346029168772684749918785080047963662698041370154653851752381389520124274349945143610816735557692529156487835073475078811089045712818435207236199433365446844046603277129784228265705433966255214211706954329123856650956275501365073534876926555211404778646409821279059193399400363380856376016264339006287734000046726113721164840015671735237462069343304358076094338209441937652543049890465091141307503512434451348009857544369477374940694014586642399386249199947471521944362580330721732465309599873101830521475237217043899341192736985777714299857556737221013044916565914788650035281142864774110161928033767195348503522122474339188547317993414162120039273274798312505733933333337575797027012965261015002208481060838938784886393560324701261246988341545627603780435225243915808612951861440281366541021990762426885483502934315528892288060468436343139373527334345323851186479617008643199873227727498546362875547769847654041388861450731035500755700237402283908610787464553710904913221241368783735582534650147878266181177639401121856135167045090790368790904360230703583117367799697798637605787307573918643156079200330283711920942926897651207453057676490332689243658124451617020966693146908094919931653112868009979596263943087279310767462786368411943756624676618512900921615546380168943728728491904968244626136986794793259581888320653258637065179718727965697834449224603877555745293343891638623256784209100235825236456948897272539840769948626549688058736894663022453402234015449062536202517264828759675844944345063058657619582014149135279955299686870581655148644034680022049195740078264987878567078318334897323689124238767484732974432613856075231121347017380850649038729278943749243697358971365387429562084397053171020198713041841726642456918163916205947193889776926852800845174933648243490350520584126878928072870015334143938248257835613007828890486209476118965913359250943494383998601070368765535378988162885694887066998727454398284895832000366277334341586831649070425198896580583924717759490663903925102991289328173192628269999938509103858988416276278878618169511716500943208419210106415349262309951205982066006283415282483833054774365954196878157173018410970936539989439002269476300809151919611301742878167370927795528583756455245674063317651800536988327015225122590442760494563156971860959673740162702821159748307526716460073755591138216648701828166756050496816700863849005805612654066976744537821353406592880884390191289474683568024948369246525056009324601096309992321335144240708391440916582754354671958584262355218560897269080065745909231309314146467446929594889628559311966350170682738227279548927911659515108237141448584027120946237500322892561389057914707342902867997763355145159858672694773452215871860901638934026554804213373304681673742564943347771050906879583020042639230728968009172320859834902461297910510909958118195215035103339346923440615267071718487149731612078875268042914988604087864927537776701255939694550101640697064512318077913989485648905064703626961323411258978074915027300109097291701242003906941917811155034104407402530078609156429114392322671554815006192055628499921283021033904136749018927009841868427662716865130280075951603831053295625749169257944447663744084596897313749857999686941363414638350352973028731153395366975796960897696967859140019007611004653971268294618665101118197060929931459178635880961389029444538513981788195942402286609992445324821738720133274079078584365227555123244369617728065953897110466578891954289487289168288630051071597187581258485179017296368286942851386227413632955321943715477911833461642694532022877684674911972654884016588046130015862907255732663760915559887160439442184142443522874552281755221798599336932713570107220623677232012629062662462874250550753115243121604600183629653462047778170951529784528575270211936033304209612089810747138403183700134616805506808608059811234438018826865443764083672561561912885613257043772349389714240889144716211939668934734344041508020107532795894278351561197882262940272174168152150616438238733379348131816259914660351689983977093871039326020518756437782212442542882371917749767893929826410860958393344054762307152001458133626416095335477624202958244972093812628488293490929746080050389290983964104887654736416117276040015199422654077219569141246091803337031547313702530271181318331018937145428557297993548012126935240590915404371943171896543160735093420732563449962794041832778976857519788899412079740719040037061501869229641796802945839844437035169358433220110698913289996272568098210927954653529413009075374773859761601124213367314305058229841794132857377296231109373178527314844244804561673665398101657685968765703738737423154783953807665677142524363638225930613583810116759963891539323906385163150886404442446818520321594882142181067248174808551820330691973330129727795593195272697915856425121610335058952629490241872820575983842457702253536562156445644229470282987794194931345357258597958271878297937828746956321139582268090739463407242278842184697396416743171140448805416488364129130824159787552296739573969306518644146712665957895389443174682643270642747349133661174505412196214661867560297386658009424620187637607859486754545051495720192012799939907497572962562760374217421833657651261486929847163113619239611417516923232874145996532238700382051680564112085949640034700546212237785140295843371122937962263229746943372830631345707625663011351925765458648810107961352710742466965971537844014481959224957392150161568345611886593036525263062478102078652537554998525645279974333820943888702596453033754580975318425205531672799175399090543577730821092688747044785625535393634939067534389354099725350698661360898193847212554978216478051999434903505416221661822189648428533369979192660571654530594807733176852573646742205645417069373482069683460544241661068052564028786820541636711516989421156122564713671359508138743761105451566085198827292206410856053608117311663463620580390022015372506918883471432475271236073507692948382197394318416977565738365659268569233115008863582402980482481103950400763398074306713910660946780575151141366813530671242551146992335469431003421936231093707547885661363627187380618503020253633577737125221914975897486316058276352327505177442371327802480723594293681033477637704884466233651134299300982559501093265984998040731289813180197679361895385289197061439912588462389451059078096883713336874378969319936757149341483837819862064595998344864280553730493615649924128408730805928896632587621866892091097646522335805293686542029521477356389125194433446944137182093825417309846843279366117849762100775027924344816938410726212827194938044443677751600076934281952093845554543480233998618745030501407611252724627189121392940150632261047721413067256172704605672438060925194810214245302911998608521682842038253534857849644555629892501200335264051429791364959591790905873055885365368077453319401306876840635675820494255062701364656029732576937657399061005533465545829781151635004183250814138653102306875055267700355765226294612026391654561807030380607309670582114152488660813552537324407017729482175759360101423393050478680744150349265820999646397672127117280538952831564978023020585418994871426625747041731544767397979966319329605396164963686967551479259319797612299021720832250438119360030487942805093159315002918373628417023933467102808280243601225765576077200567443628064811460546634957789729424570002773581511350913832924750408328003605421521630062941637889517615687976228091837055116416868078023180187859014017547632828873961919710900990282860996271164007408428009931113735836974936042104347149065762346023891693353607390964838234830683800215353106665495724011629755309909740621976437755411119916370896248070692956137483712075733609495035441918631627299518063352411067444629926490098252407966745575987173442389451287414936264928768516305252180292909413398599103736473712999243329078399220475259766873597801505117363800523354349319817350845228226488350417699215457286088949379824696476185363228323001092341126491238918039745541869389055528753541177010931496986455336107819696219232888176868036347294531092061622067153759960558363357596991389801829699216554989542833640980115968113664648454321399101765420212156352087451212792043726059067977567955166627126674792995032550547141460119728939737484447608422269962293851502679759058682213569094249779850423045922039775314906308509123516113174212675612707827298808246362046091318434951607412124791777829670627125502167644268546766892478679980279110540462732265401668348546495345015874626841613276337072149932679349512883114332292707189409677990921096355310501745532975683766209334551603972892040706540022960506564128453517361081422261756049956996319030602071632605483317493521824340718289785293966052183855752276495507079190747411748796274275420236075644765364389018422025033635042090996306975295512392052229254895683470928651946073933656304066199058217677384889590374709663480658327827287106537929039074451593262268976218998402810407722010764392957959527393036756007238876077076500176195156374644183647683271990973497705537258823355535637594078320910205224259669675673443712201124441629161722934514330542824103914244591018060332756494549133845768819322893738563457976140600736567405599279982575631259223774100438018985776541200970334471224703707745531615326506181966984566338593554883351856830234365206142300743599616770633024092807086884846631087416020364772512025113434886983296975449241298079525435984232845621687222925633638373307065124381673937791869932966647858258197653388495083362614590324763109209779540330220272616796431056179380198583459644123641670972118068870958481642229635241592535896812937624265610733277763978403070547154620690789974837785129774661727536163772541500808711950116827398538292086932240777681170804115300707141077829343336517628400168975482717079627695162444268995056119589215610251870394052669552389563008777964117575520930796599284287174315179068082393429063374447269012019995953487543620267422787982551346278594487421196928003385080165768682399046243826194564678900279970872776356039863222976539550462585399227750504789486096803906561642962391578188114460436124106894461178554255088149137014058794614112387436607942668112064000014259891261590878522152878393892430259195746963124219305316824168563972413911847297997781550346724730908236302293198972566756382704019336918122670109301292282550402608268158477166514321092703284536073523241689150743071157468707514951770031503898153935038869916732533546082910245388661875901127027558768281196684083398859234277285366178582753766774015714038459939006735600109586031517456454759375071799578421777437818130731300253917225356392027650725093069184267134698125485276023587050575023935451388005126438033209345847139649263869194647353438188972358837494097027578424926119566134701544586336680406838055579735741178563219306257801178894811418038494061998023011813622027538734339692277032038531088548378837270244636308421818951905076294196098197731945241924409510198626930722244924869850162996104093366855199966211958010386074998099984060504763969843688745767196750857697399341733774060617986523430248656182334862179335731406901543188654933646069971371323393983283528417625412513543331003764120134928864073033297218930731208088758702614196133824347253042632573198395369364733633645950098591795127439954979055308150354209290252670377302977305970837782687991504558968939815253955207524315954751322441659700174237080650996796630356750849568805218656883210730020634456218549130660945699523277293119322782621884956995217522407964519066499251831864799911266863063479815683819317335561746177150637079261423151192996806961145927918450927353074664491308453479923443715906075751468490995889132272572269497290103694466635020590116721345497537328138736441986974392489078321629094819594804537029505679876023499722802526876806230094164105430939613838681620420063761071308498974242148294183716437896112790706408128851380538620190527660634435089688589869014343686394943680874003647274007448215512624822313685697260560262305234193123370701631096271652942243260891854413126517431915727695378738190411963543330067708598520483380868348416311878209825131718442286769688845358859787629322030070310157929859100164494018689446308699546108013280222825886204717212254801407711813100679898220126125503832099674120108527877360329207019115966233081832085579029628577675963158194532398327336016061306614073563076207776091933235186258324416005289017385499196494620557281436000513543737533744239390679165578388961394951445759453634997889428198075860424488938684763069623376361018985224985408004519352602255195723221846677318496369711660805385084807796720272677863879559098595012745649685031409723842397998209712960793457221446208233101305727863769339615658426641571742225880126695938717444757660028308038632826096053331920277648900739537219751503859658154012525406333390429083494612441641965817477150274505776011841672528332034399933914793403632993582681685432595963790662032099516598003601465181516653117228532590236635726249518227596631941383196817350131784116710103560368393000061458896133888743397458186968100875459495401196692743642927729915780810295789942949389581261269893643184257727421583969079437079259812148922817344529475872951013903222927832098378284597379216088923710851506815764541737267814783399072657718111514723103840259650372029870352294674759635637547701859806943241865882811433886332585948294435091712818911656201509696361453257753176602127953285634547930643868102047458090261883415683908459918947711163332949009038774733981532223557711938301911587246721753179988544492577325761915546495096774558569889717309459461676516209489654701295685459624444979509882096849811966585109714332952228308897110652860996443297132289044402356078370465877740974617337475172306627077786036616152996424453653047596956471102613652174689840082609549360976043341272554338860431713777000652703825871649252564527908115067906043991231267250975594082865860692526893451843388708538637362099383617935770527880231783861942451979244566981286585864559094798247495093344973917794408577425416104911408626602357763315118370727307161422568087598089935244739180921967573758941528976258855835621439521674203366900176083227343863749178965046396576555131660564941803800937157163375755353897000785701610519535832033233032523771213667787220101614024265279761663697537392901989116645765966687829267462345558251355310432154496921728824174834747427351939341889521007073794136816066541034384770938239886937876100974845013174128040651984815976349153939199912390966570071237737232283434669711047737615820932996225472740957455350115968823468454614038336697850435964317098460487089356176657088415737592005203391954324420528152143814657916547999403973833360185551258334661698864394716260752562624074796502766024921835710869762909037701897770624127684027945708123555423064341936958586334058537267566451255477522458763617641092350938261875518678476883251648291708730786395834383512751715199141677717999280131164769846411181794022244834606870203826741651466475819006993564868526252736270696890344616879654565478539170431349033801845651385294127743934773398831196345959094606999399827725616859173617065687075873947064823484298859928996621027736461184546750858569952274451378476880247244049050178940565587708683775580902473986938725383749431098925809932485375983414927130969515679091145742234497203464166513534028585378044910213047769681645147844277355347676331968676221059172437094637386353674477566362971869429684686924841536340090352611892982889196493421719421123517626787143216701721936853082556173394360467089550936818109101792557773208630595776935129154067448584760710829698378107001314431708769026124040457756357531073528327198482805151043505365093681202307762011425892531046129433018763557553884920147923348290417164010015676613191451747171262022060831068824264656971929227021250723359851639683310109752250813563471736027324425942073846585282097861744592625348635473174864316844179880901884829808874745758929467228018186843361402177810240992072104563662558075161004722917647985931023942183107499117333882427008146748659331082492535947135103080238222926106365777990289021516624310887977990644480664589272504457553153379878706027028757089146416361235573394530007400896437056787084325664464117328327658934312571082855278290949863111574751947317838784700429390975788937027209470938438536230094374153075068743789515882591291469666746717479892817377511667951875156011403147021669331610445981188296019673980641015232588033457373438860360998728875888366120019800644964985503577561505842925334632586566311638611900475089900022333594319603132368117397164804270149473719565430974832503178410687503800189654310631024212196966831758511467555028562670026649625845254318512739287388468467333149480580870475597773488870451366667353825804932009365219963713035056526969523118185969819686013031665197069446795821783438140657947942866640898062034534380639638744572871379631209284664046890314334858169944200002674438460228525506033635379866177804214127293273614349766086083918475263782504387901674735315779447629534692785308361829755481652356378605547373224329491715613858455513981348180075956984956264488367609033647267013805950187152291369469377081156595068132166366436896597286399027972223274055476902289153574999361905469315659478617755075295769183706051213128710007286613606792384258827597420664275937818626728493525045454742699429120809886244279104044882686103120425956249485838338228299976719517114592864050419981405281409341088556565240559406080482324261603668583363459583596689808922479978385746239735754216751339259789868751761368669991747803084281714107088889512398140251586238940324596081990256424941754588153926400891199715622296632658220889243525280156314152147536523627473160845053515316326418615867191123976263902748584087917040263098178556436494075879553683308175236745147118074479104020539400301624025723856222694511102992928902578000987969658721447425658536261538709273972191978484656821947521343445775723748745993601737756268605580671742549323621943527929182242810536550848966384932990225410765925496195358010734220722886140906830423538512182588047369454873510991416991279893384080970235467630997740524896455568130965894722946602836574904568016859669022895689307174198178449148480690241275079999062306183414060850290205784092247595508880194572903216962814059000339003367380816696263723385510098671841695019746821584050472147046984290933808725204439940145367488783539448189368127884264988669208293829856139134129540347419790854145915741322660764060323482113874497679070589979950112577824175887248437305663617642786714293586079192093983960567824426759723162740650733661956625180641462159345379756207199631626312543838362087824712380358484444659375594857718743099199760905387805677668122831828227387166601937938876949726449001073732664303785637413563965747342891139504881765027320399006865090199262651583881446795396339278045403441032163959561754034130455703144458389181012358226930132175722125551063922758749712365720446186503377480883802025621771532704601907568518251224281069811195449190120288740751377470452841379764118857393758034986396016716267028910612810614593613502854835134836696288021279453337151342714259128828667399000038226212998358334771543209642732359694737529986928486444143208222468589647870495588682591849563187868728290245105935910563196728677633779676940452803164014528076248497382046274934518428812260982926348411195548965981605784069505723878524636910190297467817840369080875201312987897810949906481179653405412101099881483575107718113007300110920648691240835204878007638287049660085265293671748278808095735223811791660818321445966139274671239976951067222707329198284670928012460259358852053130405586211010762859229051365630916852436627631346089673647735170933914450158734865805425697626386208729399542217304779371987920630834070416708936011806586957744697814493153618973321119216616264006767365173592569748545350171529456764066104178966261810224636013209890887425192703831621570669183182692258941019155692262354586661047047086130732209346603905748959393884520113852679558787924785285493150313978126322652135995776762479756579508050208995475907762452092628311192456710558409210188677506121780716356985254729252649185112367994209583321351566991727521127649906647523765313392765252236226042362584883646826076752101812287945903480126846892177478137593732813950909811875275673457025116192401551205538001270861596187159732459128506391849848143521778174923139182106389494492320879354251515313203908545241582148455712776026935130786520351128721726926036862064531939149975613494881137847245880923929469834710831255895198575876047851320547950166277605237196260904251415621414380591569766429831484092364919414806888592297505150847984084550314023770872145949804858266115340647130692020874581665277653093497113838726211699533436449411651799501379957387515396319035605020330355922524563423733490761452449174296367701401862723982438706625350991787300201169033365466422685595072105522604112936070651974331685745862360229441021388654151997486832668959747661791842561528768378767749909975575708727589243561237718469185375172914398684232932003266287899827063270603674790135625800788313574242153774328367317457632397095065345115673391474905201245750673440830369766653631221647273997551037051729288368521861538066972589978377431357972699768290037122954795800169174705608212042029401698354160735694762198660966670902180478777429920962633050179728684734482379929756700395747117238586051929870368244014463971997493215493949001185509877513465184279177910460975645601559534338759133268301786929156336573811469457484929894319177186251765632396638483142688955104313340000787614364728160304460748039104326462138690146301185600783496216671126121207570218821728824264566763261229421001264637988384297906430955496154469041097383401374843965399867434009056255610372993418238488180274954985060831850119346648998894523853441379825850570422853538211727461733618028716633264428016822931442370475826309770431338677839100369809852900513292793617776509444071200155573300170411339242864865286110260855242062677214373225792046954756944793328705960354916624682398688637653303624461266936164352757743669040324556643147839830165130109729567377901931779106081386118824362979420381359684522396182299002872662937876503030308382555462782374378796975163560871738927227013199807732127210313755073190830334451202980448906919124381765502150211203429723408220091148463501569352406156837690074669216590361067869649084777802937105535660882692990066791360464835145672366186686613862391560764211410818935651216549045491214695388486613035900303847101129620134594170244792695422781883789079209963061290244502975464673573845479633235062375317340587528430895184121269934669491167034600626859069834368732743398586617341545624127178061010973893544995231184586269291058750588390042015895914459653914507397548522769035730627750653795865182399816452801835959383943099474739577967989828251139560394055364758492620399616953206614644615045401274655576370554903809522158930626511108826599723038668565430007548308674078215795054923849336120800142555068502502471907759879225400374382509115434998403007657474766036724266673541804523649791229640678113325207759309673709539490889196642882452990180562468365249867161707113452934708219174948912379725118204201147693890877421777518273233560297055534756351035252134196002339539398845981591960975940104554793627270073161014842577243451901055465723690244057084183100842544715398496395774887373293741675244900447289447731887386184832959437210217644481714771877803517060103062029567649168581470901920007018816276325243399611027699957656827970928220001888957746266376596804321157059890936318541204042909417269129536678629655368389097980466539742447127312578746896273960843693434451050154100349179593707286958410057280471645093199361684524500771649618577923698894651405169932859355376187601792591002290785174993658585943721509721510953475419617418240056899299161671751521686682361662101876070533290125966913487084926390009587282226306476410356679271945918475183022821206992462441299490617567756755374585648279598686101176696661306636893227466757366059308972206891017497739779945327805723018546674473652628160488021358201688439795701505512755750816691017125606989835904123054514017334071248844269807560197972360102701533836069239356572166558100205468032035344758903653631777642434720500798882919139157247922012949272473444222098379241717461238941566524954089188953088746227727907268736665486179574842968095868881786737641568246134963291135260041678139195563411426548816577474657728988552267065115302312996927473104810583013056200035033964823637479780970286329395200350007214694189146079515445789051316503807002581261970494050466896307115496562870671255126854848971620087705590474028639733233599844431559675772155617523691423432252253923507741060768718849479262073661534535417499553475604177401516318784383453430056694514394117079240936296348670917518805473413712450328653349366084898785194757348463545373361516492781551733632792502615262281055445279560450362385561627885456103979932333109311106357737760094580767077680075204576036505572244470935869230352737846162480292999489878014677158723192900039289048999236244774640987256250141914699581237005302568619421297843288974976283649141832318634110933290851656738333589563403328452058781118885751102238003162417115089753662254892233509321425911711375070807434809924419618086840899661913510920147290758376067800476300458071431458017188588650380425920451321658476629211272397727289082251586514414402585415277056503679388042449714543264663870349151049657604907425164229169675623984593428965890492910627300081003939292194159277219662810579719948615307654600506550775774451610325991399759524407074753582558020332357467651343904672177663618639609766320680968422053825847555504678000714841155666959055761324280762396256700834060866247485123095189921570471389883730032624761896163597781124003797081969592663469386822007984393701687845489530735600402120285276051848224161536473808597100149575466317603657518853062165265135038602271597501326410115843622317880553446057154501129752993817399715422869206343110600440165154106054251551113497817631443418803268508456935312486017751742518039535873979206274231611850237223046677434464966841189889003960448906722421726041320509493730316221048069573902585441449991347545980457355608757060288980053818657283459100749155835053128073699544898408304933794137892978268349914185989243314854629901378168133098208610292817200426734234642725534016150803961739449527207792561512471720714468374713989444963852524205914030532585186801752121161193159684021163575438854690269423039480517971996349965629993533907781672081119697251810845253950554550574291990224625921986558678732704638052679578008419379488693399909397424786141367952267263590782154917298364058377012518897146346453194960390892958664218511563561989257794517442007290493817200745517132853211101383524941116270462832319093508930797746924469546686596308529133723696826447437097494749309196824627711233249972621127865846748877863477870783625273023561481228388731661082769729011666470664178974193488200680901905802545496685529952082748827377203347367188807496963565106076170047899129122272360414090688461803787371539952938361394006164332810401796304528136219896192334407205120251161875618601970744701119989424995120976710832805934460041196609699741376433181596675826099576859280730345779748085749808836364129306868109543009132414148996110082786322404653295865242419972609400780158948367313852646638069745555384216432264857377142547883193995173803093137286005661832857802009527102843736798581523782939046071195655468049012697587529616942317032116683444683974497042735401814952393174845736358615514296852997286836474903288829279825795974755679876864861268348245842347252195993950467501734342938897775398818036754739398516100577590725528121967017620233997391734967746554552978180091973001696591207070889008622308802217683762190211115597652634128856803580228825857292487818705812267281883778679295095396348034294536290290232186487778827401832043459777720363891925847097654549821980271411331083109673656936947588109661763507875894499034739992771533900750361980998310346995702150496394181945813110148242192967661240689782719940143546729952306687432222242794732635772364638280778317387308721557719286700705300005007794417084814145516023530652069624425970780332544743128294213343358267320810422637560488789070014314430837058319401420637444749352033608829087421691884596634539370120199952231212367645138993195537358954509999085239527634423696649484668371787471031604584342200192772465753887125420349588718791468893469622614698884001523334459369530900893383253991117327384213489912928121413474382268182752468880185210400748201949349671208139497333344456635100621722476875400744813776771374232267723190177296593528944731162255732261687422801323055613331118381972245522686551630896082105555075172308566050164718296786879514066684936579943555219305375164789516027558878116858123582155443495635039980110661412366753599931342222730861265557924968449963880226025822403467722406018528663982278336663283027129244195731807095065773056555775638599534639090053532856796115250208446065342365253113948672158437587237565759612615759719369479040143289182148608631127079048924020412878599992361821341178733739194502229471176084139934013020430723382365791506190173922141174995574380262272623728677097783877119707822520827981682938440270492095503884357879003601990440398284181780119592380078763759048167800227627724459666649657583149899301027035640905396180634911081775291326466975786706925206078809853445574495009358962744890142472624819219284930418217277340259173397718213553680484521268770101698212012120011270345577013445583051116881235045833427224750945836684312859277314032779207022743333271193195333242218193578169363812677507205880064981218079473810926434359952455405323855217594705165194765903683585418465294294250320264947468135209369669572568609272519945063155068907602268747217877718275299675341987308724202007905501998722159474897792987340174895439270715942567075907501913782043310089649761682862969269337290382867053922684783837901915504935295997223286309688337494141602433122362641807551598952224280543021948179950723535264895808024579430786405868513641290806698969372353504160867903732140455086513391103100666343099340334482082253674086609764433736118125644787149792408645559580924906674045551906033551276214625984077768472456350775420495760581992529997082890714452741353081149263695538673606236633966534317808326239969821256112963076252707066758537105023269051086656665474617609282798895097444862394320771408101973659470135088652053193618209910043023225615666512764589291700996043726299697874165164394362743735355066704507103261499945344499283067175324586701287228352762143609798551032560027983413299958329071568183298263062508265380772343919168299529660510758438585513901061899012142226920375935407018594814073469215176116109149810937773515010732148604231086367210998512766024385064048571194099423778366289584604390766684197608002188081748798715234005798409711180724748285149895688261959447354231110857558071965142560980005191907967734759832459172053621310249270430713528452971856625065748958038759450490586420055039945838761962465476013831628223534174487922118690376126904377900003393757211509489365474465823994059033548518540722194453775921619452724886098329920260759665115612163368846073772164783633594186447877236607007628671426847043313553569340706883504372055927347616163730455120900948426906993930836040471033129689405486615788560482944794841814779559475223144176318130915133637187908679505136841953004640275983137164075828265645032714892448303802146418053392511564995269894126598992494755793819622595574244854145644503580455741845601709389490891750573602937087947929013174924412867103079409900078367758553724144511753736194538257829869936259615813864296362629055887023757066802168919383988576473918551805035386660961888796934032218546463314051998086685143083419623998112462586470724347745536087040378183495215597111264103157398686463108864584311011561362208876204369446872036460984940692749790397300074289042235715268488201807867012380074520200712552438286319260222496942271029628105815075178286547560789735069725440202539309853242554490721051815007633124089125865168160517298333400726396980938325348777254574386480407330916814371617705723620116302917041349327963179643834633130706450812972298572954004587831965529919908261203924789293839976509859801556814455421382806426672194708345736258837189680583539139445987826017589154838025200457693255061190299187231054622078823839732449786096103329968800477420564441234470198367615656497020364414513417594022672096301449746708462719532111286836021721679710613774142328415985077504047754035765996159108040319877687121544396378177707493341851722183605038291052247144703679967822662591630098579813573491622613802841137840252336091002452741217817399372543493295360936648649209729510468852849232335698170121632684083923185964779307415154725953056693607342131852046595775659357839420620783108693834777289326778346121635142589354514766129886480685613952360554636902457241779635306362290559746819394595708185183665678246433672992561373207627472556013074437835829891613703043910999870274017787252966143555422378183241489686566430107785026708609254208609231464559888047082497239314490250765120839426969556038644109112373684296335371606062702823296667861962756957898616206607825976187510577234977775162247907854993318402939519030171582460102332656453947526703504741573806620461405490532726437100486460473023540510153804020012208771340303280113541703280693275831280249438752541845409539781336795635526637025398051796177922783132819261305775921472051392181612097615544431417888960700736759247702594478983120551536186906675301676853501811413944456587346670893320253828490386356224972902354524095035846735006149152137365552503495481145895806411718112782241484861271532152534694845128060933465002720764670593411302820278742302293793759156162871107608877391746009385914158287884753774842421004150718093137286135829482382130258098611394773465130396939067668527449204177809529908847577724904071720826554701332102392328943309022717186225295753558040965606629615687424385759466022268080107148569635252949177257065197990807634409801754992405065838466698027384352983937345374508768719064172070219877881951884003509262933405289136886889954504088444941224278126809588266929247817768309685707208967420539844132370415162020973755433904242814924459444163495545974367137236459417959752847090875776495340573354741208862739554153869786309719157014880133886690006079199021351858361968064828637672462481536225317548256458057199816878875026604018834384959816581598735360635632874337507290345424272776025247487074127022202905744626687104610678329859992808693335261571312810206306261196783119772235896493032029563278392719829342929579526105910080523132888777189239662020833828883443893331737475409195254331516100919726967989983317799382721252139468857505010390799930200662189427776000587123059654205420658183188444475102247011836785785425281292294592886492132056119555800182151541119359055808037692045780329800314679053004730983154714425095253355508220199990699060563811125637018850366661311411963523085469452159839368353431205412411561883883587855759138383045873034896604197060425623076904421116149205054253862364687528231690882877485974909688981114702651040856859904270411727074831761689133968049142396436971496717053715328397740387224030598073602024104617327591168285660680447814513514787907617034980476639112514695620071899641709731816663522289792233741568674926802234323590812523307735972762668815959447160856458668848807867215169558563086709848402690577993302969744418712072551270253399058347880717288642187715497045231308356947963147160926824040478555785521837689662166710077675981673976360828522168930740975198673141137755567762268508674267888783549311622651310480473534097754584455546319954751492378605780995225346350271593891572709953962884648151052442016376803095022270089190968879129579069375601941853250488662361408779558862247620259099463679156875105692081683244038159141262877686674532431969882633388301564860575050247060151344691011570599298074287714211386107623959594408705184176563743391962395016716135404804296589659158915890822247001857047540461854006512474147749803369040899894776558550198931799566815971757679435232488726348759813288144750918146308421364983180473580332284072473446351656151729458455669737384642556802984466643149674050217637355100401889433334913116977377728215447636428749428497317900356434262922508673466640586076832220374323418186433514529018448052228818495608693334072070724640231204294783236544728308687134740006125030042954574239948549539292609663590718438817229772726831905611862093800763145903581652496118762115014666448838135642089100171952050909898558859815541153748131698552182250572330345532091507535410554556851612027893616995498058030200221177967993264210572364919934040060296814849847941692081133379777049307092201720427705147750368561842760997373517623997196340660235025690965471032734296830503586483932995768271809582852417343904575923664058156553534791219418002412669350864246481345352820576551705234460118658080127571819565567987651278811929058521860574121840646586438469921889283233204478274701649855474895858258194636791093393128914634053728774041835454711114667149966150014970002296291784913579053844872246501735886513470098292567630401500122359265733193197936630537579236382837859462943077687043148257418047018522907961307770801022513805399680007218199886816567669244552141737209249094419570673051993596199591295524378650021249515382744822502235413967556158935706716112083914472974343062614784556746139254876722471806493631218907622011542460098377499485301442481906974065139597661858997865786704101008961389538280908652036329744387783996436643759758337504692274591996785459869215090826702072021126820800194599363541782854627770120528444291527178303461579700436697087361115348432798800312908687117705607093309129432762064763221018513687761111897480044036360457787120224826583908381965884528423456816620582869382446723484862912064738717793008676712223137713216609373991819816984668544251215864260407051863421985314538665047572607699372378084143753468645678932557703612621518004400659371758795224470535930928586152371022122060349930859664994782994342993371887984995659290555910762783573861702317789830324956982342421579675983276280025042884998189723743817868689409454826913791878178123326948535537373528405279642840505517311259547597542595407834139371601848901412096130920553600840619804813785486801671418173728542877990456507549626447313026626626062448951356073147142921321639951040835616578579491822600744257329709844264722143592788006850783117764903249580136280805560173908905259592707490051775910924126481559477975389727096792533456366539085919093336034601020211937009055450589921253782286329397509446381144206910188206494977997131075039804015031870406266827274645484057285256654248522774230796509464352150827618922415820406673007862715774924846917902383960583553036962542644468558816292487280000730446784898736715329057211908776894009882831844524483910795181388174042496482298273238649917903799404025004523513023180183263962867289558144234194061842709045569917112537436433713545224602012337425556704916453341088164731897007396376181308281229531471510901761388992805869933449631274958006214504499493074225454305465377839537681096373374580658634101847823124895212264094367850203503686606549191624059960119253937974324089825124588280270920167353414450798461682252473201327559648125251863440557744372129355872450154797508122557517080949159276149078966130384511515297200824174778004910196758951269596894819553717456136882107158846837452160632163301160323332457927809517562173704138656851024694164662757753683807689762266620232239142757253003478234590668662731663221976370057264110263114245849255245992996610423766186531185344778759120175966967474460720393375189969013140179455558241781053775291892487951437972410216832032441992690562843682538156371016450528804588368964893149546856621577469587647585696588451584986586606429286792083144577929401163777521961554394720117715280494624254546015826900320406357555231567338793781352828935986156813458985371226015134040386674380914992771664684019061904676951710312331754679387942018562547585585298211158206445054719378609307154107375580026804166904347518703190263756345177422071273788799139174799676895236985774626705487734984480125563924722530208595733737162378864400598410408852839540832326662026073188678652612257014380340343704733918419443279923311127332144184471250990484255617180914052184263232315275174637668049428669711879880917272617172699145006159418583249482957075442148653205899291012685099155460427137260660047284879247790639995203836505529670828550634972762930346706577067937332232404652985176250886059629491899235841264419723825276528738016798867722225562891401552052151160570599816198294911493027846060322347067249334561051687458998375441471246996921250369111971581695996785387407173865424718167432582566269137294305058998979021500185267592679139357678754724294762692350217148754186831293601547837237698036689691593331058703070310449397550277362315511493711998055237548038267681281323785344020495018541662257724218196936342877234643402065590159198018523684631810325127667735701641354759620264850695446976566085126957243534402330555555168411611944085998179125270869431292225809953478644547883283028037085182434832014737173009158108638122174886992513368114613408499967857905872200058502305474794458465295314728934775036585596321982664635753928732449437539983722425828295755620974873899604291648222636781143970147502106527878531989960529369349210323888418540489706464439802435362916549786343831370076286069790002009668318910916829655750643115253798505086017660621522893770753251200227808569902768195688054161896674328489508425776410119227585241568817597083336689487159393798173414703446230955979943877691114189075698301189035948179399226148121563396352744353587971097819938298410154170010945528846199800821189010570776222031888449913860012490693087312483905394981868149067441180420770116155741894755361491417065677047686884803677950292141218725053377344194427693497245484848990122597731566753044672525880656792242958056245603777575775097324023595232174041247254702487677494998607044405061923112465241390861433208803743472005731462540979395079081990842866472304065740849923886304392955873075893344109954195450623224599817939811975380996523656008622610189196004876593585627042067731159365011955268604926688739416244240007441374931877781402391951897173251824038321012483923162590570859275996656357940659738704647040780337916173692217885474184082438127236079324156335751102226188762476892684051687845731574284823056275771758621016937600998078041195164987613300162519649858638480978388553966475990442730490755072114763854670525377635644893493503922999098762292444299615536598756661328379474299652445137855290646262278498841206060388640009843982000317120240812823299432253780812881979883692657770693926565746165051691066822909903378393764549821331373079003261978880053901619204211068502296755251349573569141057766393680700438046637044423876535901388883680688589913255853315446944912139302499726488132192468354773735765788037368259053406246483791120747810154421618083655384152442089404219818228256190527327713342477762851745757701881077931243700074008550285767323708214501768858987745770888279121913982073934442217521561303190019471588076674346028489449831504458344925193134053981547793587927199419159040874839416402054184406346904364362461805480085013234901957795106790819435260905034391230715745023507426202141150508168328504719500486396767987094888242285639682421578683654598287750738027315312522585908299223297070889335716075086057673627185634580682529136877326187698160577379120315699991501673798611995288494722851099804565650918763261629883789649423644219845889745863739502955835490622223033997014488469572701752911053634334360420402348765911454161008199052752593205062787754344252100120590877439382281923744624756092133587350609159565553549025685203085792939368252000123631773052419136780365033680640575606741955822112356662528166256254613655324054952202775447124370343329626390065425928590286235628779970480387883473789261661084868455362774584735172575541497801542740650647939292348658875486534413330538999864034050238248681363985979705890533359223192345280030543235339203291025051550058523400020939491262711432341715479772877361714469944836458336777927884475943518270841506339725640444155561418047617322020293502479111038596924880819947096206699021234846908839800443907713233108063677095793782143495562176200268970730148132559733255843940210994652952606778921642332000454202284765136820097170053855546396773259500891409425238186016323986129385922047683953430637785884412298973734849793653431110437662380623520658883559055707773173819686043282077884550330834374039488854092782224903086469463355721753235702560054605060991072224118790148079313019703804382020117588523545350611778772641363429239597448622990871149194819908537352072397698398556302229491542332982750122275762454265267291438620144448561167591810617464164136420737218945440688216928324657983997767554475150062410703895548366127420131239832380420224271203265374721088614926937209705726900148380005722999833582488295615140309980323705636108452951057179933862494453621100687352241065237996421432675115972661016384582794412199458157255942909069443884651191033883760942324653059914436482635655028636765370320270725535153759387999305563630341877826660565322319813620653606420318786881602428431807383589016202437872867966328755936819282535979896005154661574279428085263526158571168175117589987563347461335308418431731332796631581793367272229108580145059781366022149944462659383366735090249367198949940009060632640744980405380029794995332402906918971660964502560847929817942153122000297773975381566066124051133965148334218257974643113549383814354857102174563192244700961089167814728606545997898274031909550560037057671475669573746744861508703634540409686972435001374781157125805956710192157946695548284691200713369489299785846252816064570705035994070406657849493143061008989053451789817515230105538269938112064921261390766768739791090556738108678282125111686179395497666954525743840661831116781114926193230865461306190918830913311964015073791916158767893598589615826503902203908034879217264319502665255708278434215758672982242439622202724545417484261343047609308726658057878554437613462641340848641105275428096653789689622628103533849245039617089515402542028685849920692910762550720141505398778168334261204377403029267811796946022641809863902185404961467327497062686960765453166062882076865606436100024948058847684457716953327685010762096727311271848752954421005204242113594418095943342173948507427792755725664943694277448296181707461077428600740951698180422459122244722043900897647360792561570210358302101793145442979447193787539032241752260772189842167429755888171348662069474016658300485379414327647295952085012948041913500880986318646833071085222276788550013423719720698969863485250350201711892994907251475942467409934938955359636416941138378786316832388698319016810680469512511804746199414473108312573201873443494932972728450670462112127012071533322146340775564509852112902854602373264550270400676387009872016791643216399111442404000271612535406214090193256419381956486665604748693712152607711698889349050969600781474378692096474888383415896647542281484039744680847341301066236745284365816919464419597896535691035002432744329489263442608014010928608570210863809376195829377511946569235658705327291772358100285868768945700621337557236646366768011651868668169242236569661496016901170937583709874738602507694201447316556255787009904220486787787468703717599211410147059665773661751562903930839141381218590654936726331330222682976878806750086311694867307600975798181521439656692285057977741411268645155836114008782824184127075226167933642073297195038438674469291759089402916719998643875915292896821585072383611369044145700902440366139703200375363852829597563998059220191973105321708577897374681475221385904395128102321767499304412370877507011875789449301835334440343589236393590336553044791071309609269112535289515490793282039371715165939937722425807803716837891188218880933893674966017505476293618293675357797650596504573324764896216161760702670805435390736705856918175763827680715205155853374888015850564520092652552741770344555523156767037769012651306389445084893035701671873322474047590265032168850025236308513247505412534024612320642235076435668405445805104858138930009378832547904400777048057345450114736772402388999081533074098899097512620969990673245268644531530479745808349874062145997074574776802109186338919654563735013270332747052365985753543359898792212078601903353041535301272471262047199102141491161287332954022313403391226094904469996611827991735363064039324067477703513015230777017009021394857816777601014861316666308849245723920131356827744411347808043167704639430098637118464469092996663080803716798251655669987740257674245515279362249891658905360841276952074584573262798075829042258149946439355951671850894730856573862441127802820120874262576668201335964432338684439204086929850971961896906130598107858436124007671358373014434496275013173063518753269229221713090498789238224615409944213004669059084411821470675693969806142690991974796517813900896900496429299704356024532437950395609792535959438519458176210524902814928104561036389463799631217719549265889970587564017957352206062249621393598910107933791918639058315420642002452726320015513257598338487888631688369118589269949633701137097713295248416327432306017085681928119015017230519779263810131922731124139119940551491319162661216796152959530431443334201457390474826719852982557208826497313519328079770413016491568772616988675675778219080949398778864403618993516777759084395843731769880058406046730697020586727388569432075035535538043545920753210023141189081793321450713589138759525887184370450693998678511078336035162780640086956747338885951124934917535587938910033405969117194979705601799281100894794122760022840076525074361660472403684154485747482034283508973203492053413145963220214840688818637546367321407365422680604316467912055941806402316657759949981216051688780576053651098051355853692386490310812257465253670136845436855644995795263379790762119470196869691773375738960710488397308096248081365426287122924683704075246309949771704638822020260298143584324886222005968128553204909470204323479586726318154748760872966345454627232270562400326256995725858161399283215307057431322763539321005204798658207736571534716922567746838265651973672721535646534267774492092583120776333506493627689422277890101746163831780790762735942186675387975420624395438218757403588783022559608568087643833272128549188912048262912672577123651103405655996900223064209103259019325352448023124656899195306449058520030637985387590789616787332978493404307179018343818967677896823314736351748669605234618326204367918310293264834229324511825826063532648552340766101111832047601984284857448365889685241419030835669013503303734171988322029402161295526263208225142475930216653882036451099323599251345262988885400372500677273913867175839264759389303217892829664239115334306037773725629697096522516281185428151000055274466139779487650903565456759290030056819301255098768524380915611164445687805683170975837888618176128565891009881367525466633406817674048893137854681934003223527422807218284276503371712000072286698573762722514660025720389823338683314542703903734918329710553899668194204804426152906135539932831837829773792891895535956713150138738694363610586571447114844074385745977819630678522832374422861019511986628935473026525965837370004092049837328650256439334512701003335487202513291807309815886914948926132128535346320804757740625890684190393492806606654100643743024897630541429908191205352521822214860745140307056062011585122570715544935574317405303554329187156088960755157433615341559708148150847048936351160365885450729935593047332657773776055115307358872276593815394524653493629226480031574299623905840025396474929735935434105214362032848108703907024329738090341078898538789384172734167925291470500913282383740277440784086683117529450435691908451436066112608368239063406904724949208540457712974484165461137141376485003782566967303779308734705745213896756981446196116092157043806700888990147805602831376418979050484168665671475147872000718149423162254453807139700487684164938990116592880690552394493096371025666661420209833832176994588619275288685348042112955571026399943309076454070893957843362175436479458454266845555916340515010543873743341222219345901683766999894586690276300518945133371793427768946509702492534104682940808805951551036926489503099317125316849296570781699762372876619528332704383376150211124635984319289939637463100480201885741011590988416435099843478726172588486459489153723446033958889948962420306330188756907158332475346793977520540532324053925812521935289251837543548544702044893775248316653648925983662666888498205384528508858173535884197030302789023386467708343924528774472892083737319957488828101041948639944202655585479315926584847961000687786607476484526817805446663253995858189988911375939807183305145692566965920658076334640044444283649315411601545192795935168569606709440129626320321064635718451325713082577889573344194987052868081294096770198328896617150574271704800614023185786833479119839575027022604741251420490665279143117350942982854947538546097000233496576874978027011874521771727449034078314797070216228881072685396058911362240915325210901920642078737961207964603021336438946859440365979660839912762796178955505973610085099111835220585793617712103160762218246909451326038408501172693739224692074217606865157737942534826643616593670618119678744832744112685479136110739270388074411203031615007568448053939788756491149223177730013016007500575245569590347336507851737582056564033778937781989899666988854677000322466024659014943176936151966656471720195617206823406293436831987024236926953496238751116266367126736778551762932781141276606801697095995576160168209756883841089226385933342518658628601179331711454361516457188320610753141745438732077296502100740083615167860369703174615721213649793875304248048983785399424237619595242706368335319640778591945262709809054788888419952451143272167477579035809080781611093034975446115902608199394118032146810029372583792617200998855027562539617890490538805918753278729381609995295567690918996375410986090580661925021248527395765559580452786611268684884707675458709435620512285488177051664773445722406068834360522073559523694620212898151268348882489388757865963022948006091902961948989887859315485559215547957730263925283254090157319223987190738264084644096154881132355771077721708521657091592101674684323403934630638917819420476404683268048926973199691104567278869931853963075807153216215066711424705398394472546363425408364578027450919441913674806760036195171844993310397916889537499813458675153252400803257040022301237175459455342731246612456937716218988655178139445259031685977834338921059523064234033409037311747114887871823035853544539809056766649794194930514248578224704778290183467082781472070043730284129516708888182322043660461686583535210700765215637327200175215610631235053380792690007763472422881300301062402511930522200375206046541306130069617620695483390481854901939295825967875080691091720017866241974255730381799521159312565213669051974381101519009058101938450690738324764909503131381339715223449165626893646904708555705531454412548494528049885584151124069540153146989113202683496410996788824236726219038167282088586170370485915209013679493752914301101008685909361092602532815668965197680507320178268818968128808186450704557521056454320911101014267669174064827697977683074546318074274298628330835889205582621698525954451109983910027945764739794552644330316110081280058734885352399315957431409969891964764959034929802025811071892761344830537914351483850824305223441354944750061509461279960343332516810826533511629043668015421977615164752056294210141668835814370637629772218414422600501776179627005704161474724501334726488419189957109532017848370916767683067375010142462607274788827063872611891075324266693896431522723455597380326915848657243452827259632436000705878346960805856991936125001198935443486611338984536005819585459338643250809566426683989470401490461304739535632584745951586158911741883718272964544954282109041930310139217656469867737290490015682290547248258838864829609712613119264231474835319908062407618494540208166669654809039770187766884359176696204421134021531058498132755084925511666828241274152362074690706510764175602655065948706869672536444667134614972407036736982446193860195915336743903177999519640475661133610805791294474253078874854148590897061672184550702721851443765732066440239417743705633223697354841751946682521593565230129861482774732369017220377062199129631046802073018901146646261647648537109752075276044988761516085626256460344742663936016891030110311538047318363987960185451887765860272170150320374399163309736890991190055788161242309960638411533975172637733086002913558052846924082348010923336529915845318729025855798244510431123905602854981875558513862882313972598949936739770744682466225850762890796678078950376798593195358611134806693311004722642622585532060326361174995479611260464639071121275235472548416032333434297011825700930721451404586767617992988115933062665095641280290652949973680415564588890557071859776055591555767961776578132603982278091546712422698806034974693134567986267733650442212536907562157971511959897208627584276030273182040031796252806117816363030833799477459092339412400767017116449881050821628842117724380803678300281430997340211778605153101665551327006794425078864962073196153133915775065257625920501599922894889386214181477464587452518385043670678984481618790334422286980942496613838398660498057011094626764020117833750262756256607000753085609845756046182140795051571272448718959036036690310299259934412231863529354021643306227106574512910549461935559157937852510634282890400380450900266099848242270960926168312054023019929018899978339329997691451254757912241509726190322019774364384839121311756105686859703634487177511964828504349629930180246769023554222713320632133791410394398251945404173586711297083367902783583566668189289922062605928783733713653185845232226512233283526645979656523364932922550134150117181871911578447599450897074610219098423423953572525136456115469798910385097730134754812937563912911470883499608197315277775402276169345178948866887155385607383527273438172970444514089275559401401610222406920988201435237766522006121679972725759177265992492155450429055490520891283592998371831152739148019198521885979304067736205510041164133440934391781883689361711620575915879872681056862816078605982559074816523608711740332000259618228983189733619150183575863514278273263255336110084295695697732213791012215851927977961416507819780650824352078853776719772860993829109363339921159784277598834508672533407445996470232179144487572511390363668681481102691459977301132413432748212588112104735946128080483587391034104648688164794631049461831586621070254916172040704849998707100223302185163028272667179940184330533465277720622924682977569638383915116730669788913295432709268152302148020718740722986321331821979860099948354990919614178382536311193166388547342738404334723532750253889431037494553882170959183280193299754391850966102033357282257350566227316272938573753567789547832879399351045035374864129547904312565889284042307162614212311283838700440174958175224647164519371305123456890906008258533188462725690469072219946076993702587025739177984849367176963048992655482393526065189915914670019492741363551730334818739065541071580075754936380997095615007499372286749978252746262917536807741005876449005689923324371515117871197202536665212363712270019175245292716594260232713088307790360023164353325270009411359398289643375388333948271357021457153542034649716387212944517010010744192558888637631086034882521412504854654795526960460737560140567145007032786215208642144786134496894204748635808823080553842876883190987319925703954194697362249746268719475666912821435757480667572099175314753466411795606895980612250265363307494224910282606971225277810868325188998391952384751940149329776591815696584932600617149027747264196821135203073375515676578974284809139455005345338659301199745675362794276038880178165461255603981537504938506228298918607431765329023361944317459982067408621083322997029431953703489164380992196935237071505197673447659054970675044192729929489697235122352378265691904554688007554403797667459632993963537870194974123836939180170724558461078629227416869340420326654321993732587509731937347686910528242007725950360850663051151493416097847494495306973771966478088194085439904864402426378642759978837771102837123971822237643443939640885750546217288831628401474383644641873755063016666167627624381712617231623091462675168736202716644941660948261144127110240219755436500307633452255416393531231558868291802472858525091572653748744229465828615043475700706114861265850995541931752771148853310144179458328705862817656373430470529540148519807876168600508529382881507184060099442108459571428268100604421333041674252720843827512092786928222367273852839965163305773403668608624246137783432044812182036985182581418216562414425898912353306239763122173530655891441502958733607280019113692376305399766095518368693241101843220638108836658004558945483312508318918293649893833513801897995658861897013524494204605464200326329937932834491710436612681817081016173324286468651678308559552250452519481484708957961681355793772395680393755897300395768288785948216609000157414434462768279948717241660705779783703791453868890170934194477409570476963416045744368249008951049943844011853186857387362768253987447756588088802669009117470974314485354727898290871421147373021677408992863665570345880915530091575625725853393910783259355560027406040808966803376046195664367815383740501408835155400911642446237159034927875798952040390711144095581441635278074417837964048586160622383027527448631506193430885607235005783996533954009490909173690520232523481278078289593085030079674653854550427251963115434037842095940814123905312422616082604846078110581739639689571943092790692729825190628797951636104158114019099358472362445756428511030084241862107792980533037030654749957414825617869751439557674364239050456863656129707511929750396395972461525519330454902843826786734024253548521110689404454995254449973690518144548040686989021291572057077896505714827752064849922707098406589113505562836393153573409365850796363233701647590210968692268867452962781789319942806621971847779148622332866881540330590284604528424967383967323499193290820225357515551381201924978963906960112149593812069460179024082735755011838693831473743351688998615799896841198802205187975010268981515776677204704580297322930318289680636526458899356676027442897102377174871128639865291435969554108410602330953302743771338080086272158571638623505614892342250242661831711413440559344540077638339808662924096299152615171112000736617280455255883015321030112828150388641608560803727801469647622127776738930609390669260982158803464633663600785913168681915553699877228924863454446664672085572214324847470951094965789288314920122120514666095321600583076855836557575955083507150261027607960586858244972030839293980948565426491327204139177003440424390866009805725944124460716800796172773037856171577937097628521788516944516472930892965841558235852027217683934618434791444596550902709480622077058399789487690931608254841639272663974832630655781120383348182797593010874539864530072895669229963429798428322079905041279576248106042632000715930329400409474064679779762063085304715084059753490951642619600188208196185214656798813014635061071341848972191827818599195378019422259142380633458556972225261456541197365822892443364429696654352452006124645495959952455973491010038745525008282204853452087660473121118248189576263376734705821949320941803870574373173608860895766516051157968291974526753996687023264112291356222713021405747934590773502377737843959481885995353751693071462300746855339449651559508485254823555246415816223335735692789593067015641342228737852194803064736026265506059133741020032615071658074180017503313939704364273765545986682474413790836208624511245653336722951679458550297401635164737347202251555151082543022463308363183665243698981879447697266023223417061982610227454072608782445533828452077617456142266853062970070539783008627556877419576547421446009889245780930844843540847785162000112012343019384671127270840077512406450397743179578588292132639514288329636368690449335638324798618804446929094136541148134140973013366758117381032387921155683760648777237373226565832090799958134665767570601644062390976707890948594122180967422196972749545048414391793774271185032331000177160078229302137884885541165544444403378656884151182720487231037691174106168958341364227200396530389941420787370512150919701318155177170896590705972862158602680747750254076327204653336064627378845828702804661559270110008084055302455759054041576085267370858630978380798822396941338063011364267089392043979052381294325470308745598975193796381472083432494986502062785821498667745203085458435227726481517957720510716322010051198150745063280992740376779152476557712892224418704715634174064024972907549829875498545698909780752549784800234147529315486582655705466488623358819789762278927469834001126647812875142504734480088458458825576704001055210911850069401504331543157050822559006073811271569311886620532002775853718799621515993693480459025879732015676399245688721565695326170888056043269011906835641414294318825836615438072600690954291921740682797909723580058144445762819723274030685037606484805614938074157498872704256062124844493230474638706454539729475239283446014139276825437103968302845854117176931351492637736438192190321150517659830512551228612745085442935575656466985758451977636392567557743421190506816614398275887010106893058969371664342115360814294235970742891412354699122146025402362826528683115096074785906087531219836797254266322868261974402236891222313245364622616376337047916029593064841219046108457277724966216066751968070813509303562013408714109587393760715827114189424157506743507945151196585707769381222009987097705983594132793296618972250119968717505418567042235688948908465064405423220434472513421540972735588628378611888565861483376089116068161084422256472056467398742093271596585130252698461036880415363780809475705137312333570733473720819178986290994147671595939894047345625729761680823720391879433989557723874782286679459706737274943138639525210148820250092698472483124281832442932475251725607855546603172656016548959834858951668315214185659164368057415637359417761346607458372599374337352131705688743691575154521167054651718390777529024614820092544966506450243767303739555130209137544224212630981595970125322934610741951824443380223899612305401878305966241109887987646267119201702702208006677031396597493598959104980799365981385511739465953294885919169218173590106201005775011312062725247203099004418652049857792457176771907449541343958950858287578939825858444584254471390852908311476577850715318764457150232666857225646055557638505372417013324735839196206670164101950852205368082461292246562616446489379886422209523466161282250035248662676060779418595650317779705054495732575221570749960158163230699307281698685925401482600460773218663654643921945906739532826866174198560231193556038980062606798959764972888262020823685937040634250959685947235651949434410684743935170643640680551288490919602187678254434069556521814529126923101516322686974614367144787808111096995248976903708050882186520895843177938758359301944029957036339620840928073293995772699667827593692169794651665410356510790771675657172293000539844321066320041201362254339053891745760243020931324397121777166041642340707080788589112212436870893672266182338928716768274207936986281010551083497665385489175676502585429202961888062678257369792206718508405505365391400800223551872983388967664249405882028808918711241258950375937290536577649772758694372350579622248712722858800710525694997008225358318135082240978477973512351785046642372417349718688950300478518307469044214520505510028606668300042011004045231322766962081191076224836037229506622526573773572785322234413217677798162554948193788338377851453358366856346327027455797129290002468185529716453340732574352788310476058897293083303570480964551695852537065352044510278359712488162424610225621151710404320509656867180412166087344729694599006299188266360222935088758409248571717984660853729283731672441812824398693161874321374485731913861880276061201504287701962643923541229427768760850092950749506873892425921969928717945077257564520706222251436817324438915940652836297134665189186090356381358395381030252255376037230922198957945654720342707745335714230042882199433020186744912159900422953910933457760511729225019300655513580398541219073894563656158860024087247029198457322144563462982332748313698014287605635126398054541572982513606956135279029200678483219081831356250191633231183096851223197808782110374181402622599117868273723082163500440058878975592530498389778136662434716837549296550818974077380641743677128136599610646841791870395171824457898587558477220179426590814007478800007255340592074054827540069269907169315473938389236178589329555336239433700419191562299981772774873645870179263604975581928088870375257130232503786797036867542093036229147875688137251566038784569494708003691242053429754944367095593310387020482232706880637529871612370255431183314287155809525093102881750274764102919159391067037331357029268911342507063110587730019822567806476554794527869242694708410487954636787507004826880661589639641539142263280029210397064535468296822005246219004806672605492443266170123317141943435585342053051259248965437391143308747059863355613685001062041189413198044539170051649029693229348982469869995254948876574559703683601136141401839475355301166629171932024057474403994637795503849931270446058425614455758411986725017589325263526264163861619987879763005334547709649066865470703234954408291147837185174177561296448908825077194529533195027203217269239965852849571745954325940732235177879279395378402487111870525586090968138196128033583498478222287478122017599658133954928794684658805475139837119872598989945355802359225527787709618947619559818404802724979649159107828068162074810431174915940206479855632631763481585327343330243808935044488731923987341780159533621415292501744234446965132522094270500615844220931716127139510827004271731721477500235227168525498581556681009939393246236769645868578905996355670005306710847390969339700487602257995764039323225216257159689323998270656607111445760808892647048913365936711247386163368583998609270391112886565270451787344115403412325202289591872976877437833721709897681856366591520704803075560161712308586256087225582714316167019441974723050679772578083949161788423126360292236207378639830198322710527351427608323803864371808903070885502488332385765079620851728247001065902838228400854467112236608766402683189480018435297800409100932822138945061985455241050267695701915869150254820500037648006752798036563508969433299060793826263134867043305056775651459250999484731188317316818760362665172498558084721839383862199333998982766473632689392791984928989634210158804792273627000890107750775283449266185922398359237659080119462937778841709009559366168100901237027726239998062594418069469201692049994803043923516296742946705290891797002356352699858411128927751501989694982891471118063069159513771617260008801592469950048888874954205928689051940112970846775565122212613433738671319992747841781863603569385825780248949455095971464718569024797729763825742819901669876238421207188141612361094503012735227762547836412274161913143000931839467724803289286841216148697424620542275299637584749946962672608218007552393074359142604831531240688514813392549335944632666034195246349425368140371341201807491709258663043899170258888222767171828813614763545444521401218243061563786676148453772434230853473758803138740736789367413308035167012651425867935927921971320576627235742313919193789684735792149669937799747526156426675579869888018960669565777756557767189029119131193314734004526234275127763116509322049539806345020825108645920886222830692315382449477323459818837528419299280399592231554231124100931524726744756088987904102754551174212233401185519049354123064081561586873810538067536675477104831061129915088834212752820531197724214609410092404435671913583383083459907764131897609192835192419356796962760998778622797091734241855848104960701203944598254547058016115966001192527886046605765467645813783201786223972917121104584914442454082906007569992127888279185018143856910716101468817904949865765581176917767560031278257263921237273083496198130431738011209607740198507557191334482841639659553538519459910085481595051610409229291371483055995479813576480768668629468212635703336194187006229949528629699413077147734552672190163467849940568724923100186654737229779678237173502756901072247699542798283928411973850086071124990024412856443596247267722895568771145036997131814206421963098234400793523751474637568216595817675281101008171808991479165932191727538395701191136855814341870528434952867311245464882002986711625465022050047345962585702181155514536095955540800717809682653791588441476843665989003510590666359943077875685067812461839482422036741806225321363213824109264881564153196756975192295931273414605991384923360453924319585072458268047449276297569803211850525545833240659851093147121483405866050005155977023243060408206660924261059514253081300236918972921162661969057451960510350168914986742195684195066956209167417916531674370561546119427441454889717929490621343946053305504104822259333932611804720575347177745165455137272108392009499311346998639445533288941383805820662723415224445839458497672981911239666058701079416204768966703551659496645908787530150614148536953172489393173603111748567275514843220415074574191244912228797386815131251597223531416566603772106179584305168612418068540554895188665059794070880807659701167796772827747842160834561549941220650958004245009537635355429368787884054696857670048331843452967375541247231124792323246194165566544240762195557584562979197845821355971832463857478938998968697955000410117850809430419708167668679575916700797377539416162880640139412958563152433244642362171837659385746485561411805641296654064872969790446076861871223863623541223315419943021404899672602367574727553409230998144911066779007832274942684274291315357799243609675285983301845667489606521941736628274466771248820379725886304762549596840526051648328774215520958951376628438384482298293319787665155855392965876736116417885212819965564310229791165469146679132949066177693576470065919117441463949399610721692596233325477292711093829925894030035417045082938183544097937158471897916960736196317857000343624852664487275876709640578306355163619158864560111616476256300147245155054624388462485476667081851152347422067889442997249962786587302754178310413130313676489335966107444182690052645035038615323190894141404988118798990739555990615884715120790739312900768534982248189628863753091832164622345645855090018745828171937567748150380749074662412768492772114952481499763840968300024998073803518706123110338742926774838433527030993481690213731196636540139398220507219226272639028172872277832728868570723559601983714909897016852460557468721360747473323001117456719991165222427407349349564406472583172815941426265389666400794930761875954132919683346327158661922182912081694669407949432116872878026624156336967512703804735401336207376453701160114636599895111884803787951716787810767717042293798450930697878526401639217837861614319634203129170666079307170021430272771944046053885292162873185229074784661024376527336586677412217453651595401463637790917880069196899613567867319786486790531555781694261311472622718412828293281430172971569458902792495076608877758501772322326932956722381503112792706398036382136777129750337662098330432571793594159923075719446819927864738115714694028873309407846917623255427644001917482152499771275752648755030311744489086671017215030003268643779800089627932722158395573016146124117631424247472665571544548358557903483704718122806699624709619366434123068109054482448411859005175073289812940148639600104360509130170614313065465331686254024157735706062367033178707044476928550358675625001660033647688965323576358229900674494920025880145066919022448638252028385829216230804446361881690166782656719161482363694623979900806259229047358101367908168331447832824268393442235857261578427950769048832971090837832250458432388858246926992706097762646294682089012843701829807441668450694680250970447923646922485029685379882548760962554487988876965862683758403789502190398505776321202702379104867463364936701807774816804703451149403951067841064608184171975214810690849585533670757552164371143839519875689905692746898149701401658853329397899602406988598669277017293854416455036117838644109468369042943912946140318311718409327091315324649043584604083940703854622465434823262147733572605241404640154944441615247608146390549376477378031766385532188819965069688556850441714872951284130000300756171824552472067588293841138122399835220322219118894777829271337786488568188040950527692629360282079090375338356447438394215197276642166944864327186451154518163971484774718499553159892320386546142872476271447109301888451490186759119873038882902969796739367879172505563782019848700579214080725529331519980545482566858914803621201734143487710607529949440609262164632841013807857733700792623978666759945380880191740384260994392308426786337151501014070656903240211161432155883168773324805447427066927483710744392965443179134530248087192724072047977077631147889886356004566108908181047688094406466780904661402273576244069736845601951532310606006494501509930926548687752963583898886238544135464184168236534690202975611354898439002695685921985352295722451705549916441249594371546579464276393567141506365931093211626724891525483787639899577448246539099932281034293435058108022157785043747713590428913396790149748162845912863840354336761484244105167950582426864894154283784898873046334773165091524528533707846550662101119747452101278904110115851926704571940776844742303571237147839630221299013220950786895179605873110770245816489713104631521979505340655486438828914406233844312884426485268318864350985065733909822352778714519287576544970568270165485397298780863390599081696202381045882049774032848131273038968851150908641234025998756103137277779504147936739840616480746911077156147756178236105274071460005285974690317411007468665043830862505896080847720591317124676263323158363197077606615083925296308832255469208898655440018096106323111971776030821682319770901482363879939871788392104903101991051065983802341342747071397386137605946059923465020613285353880412327067158796902993248258779394105642538873808768309798319995162566922169644154436294542260551557081803327161723751058660330037116952984457546625665944294806596887151406347991403035486262055732462870511717579280407143697483484539276865916623070864670474884735950295361136825217643967302893385601681046297288794124865248325890420443415384459522725974236575744810393732493671917598095681874382404622577845058110667434547613154460306534387432882817592995696072186131980468246761996435912871776677998164398970389641977856974224793129761984549304070890814971672519004042251466785767766008797362141887989007677334472706669036746294907853574606338841357204920180173420622389315830204072291635321946196676191919207038790549412490899043422883447361177350050316059298211290358983873521084222611903470745453104134965228354982116546012983227536908216803154659583379393883263563116915974311267380918630111440288845089163408669987988026878340004574842813330348470383025655122701682421178676879263089354303982223468988856298399323622737600082877696509454560790145866506229351841447701111514754945032475096093365164062247271692161571039611943036289352402547017058751697122730568575562997532261174433963076432446894032594106332187590667925458846397097985265111432123574414973657107744104554948436394141523335284447474768544322120350945183918316872188996895114733313301536427508890086870334796309976717069405027453104683848418662463688061464829619001500174942361589567460462575327690315885493526502115309416169568536581935257428551747578115014638612069665175934042349011591848933418571088728315984736313413196683268358311167021154786757736277241116068069100169306691920064808409094199037416441490374526699596029142078450613879401066948053150875153542736685383891057697369647043553495176957773233944690671342708954417226610793568319759021755266272135303527899464521162791753238724264650759530400028396143296832082680003769855410042588586232379983850975609689723516977901264448469802765903940396695940765598903966255587936674253369826765221714391896105140719013967870215834951728616297521124681558024056894292581244563855909675692251847436570223285581707575966772116780917124849422124826200466102955704723536554604670020726599120091297504391356732226646091065472237787147134330970796735285386165835545108632834451854634111448823250977892353099295810198686941805351471890785655228695611096018413251773935487721802284882555886545383713563594490121724401341937143242071826725502684730204430226041664242405872673487339266680732948805829744695666668407744745934052321217510964487901659511084325847317600348809370843649289391853170620894335354219715725005733678931671132740107435662553125219616956352638726928046123718961839409903460149364481321866223989908759947408653144680925763621948032052071777471769458351862539635959551596672734205446107198996434156957558662966170808784948301609876074679361919616903570777499345925334544479517775660902909105153782537731982963477002099530107495940149514417155168786977364495709332071042804190468090696200262281747032072387973321919277950215576107751218518796766640340820130662686105748724032169650267519985332025545500800316159360832412345275545408397889903550671592267399336107882593351023286839714402950626865278903532176524514532920847750739016405959325757990901760741128174614959623326429090565814511282202558161217490618993439474925631556586579442659357221467323395031457883236708670711930256738632799957115379369696957441355421101536879263804603570613916427521889402723684721403857841720987706159220132321245743678102578365980437919628313962906999019251598532738320770594292092597764306245873108881369971922520064296991436143392343589430250770168773513300759703769324953723293766473826902720910172629415120906034008016878074845595313252617677676839429090092689848578341875357535255259725347538855207859847219187043322115010423774336574868113632282346679056536201720972464036090283225017618971133745813023872349838757883642869732341327084114151669327905876319315699577988782493438897121172987616963574041240788404202024962155557381982708550323149511672188515877962573385882432703260957154900020000212207666934074261700089528205412279457367689353324123553727857391110098694544202622709525262051264405502359875992369304423342879789432358254873761709183994967314906085107877828021169920724083653625233246110349993627212737629104737736367456836736833863753826934702040547961601048444542219073830182396681440506322137397805876709673462905699527404125318031242048568935124655921301405168836974380075661447594075347623325210291536345044556066142078159401311560637285817439409134777729197578067174900814254754703128860199042150876673881530335632811917980937223457734209173758883033083836200729846965950479094331999009901531550925589175085205936402199649266139864367457647423066057733475820387157309782621186411953566917101713300977644260562964155065502923291373443631459641376727487774422242424621330673985785147348555851587612779287881708609813867190949620464208018770490254529790952759697586104072059055061884321235884604057846896375872805883152951606721704235579038045371312065398370401232459323457685409961149416542790038414876706535969297676095810951132209545270175099043193205119117635475631744581280111854099567068231035643749288998425879205564744700138263874887412613064788500316554407204868421533058548637685781104707069074239577626492185962659222887379120324861676227574590990097829483839410117193535057915808299443106560679541665590292649745080165954859476583950394826206880514440672273416328048512941690851218567465528818098731744091607099501785877395737962490753882643359261792886671390292819990502913017825044837414118981324358149962846898466445993796478004612687439338572949536462755070024067809321243054467757017873312831250417861665800976498528645552544906841540445153327501956426783001868513661641906812393805446786806634059196394898543589594038296387531694225003447659936865459636377517928269666009561529832635032153652265020264935577718113958192589683965625269041710561328742666810051227809766764985618596164148288483403010864553227315642148060275398747685059211717582490897449663739824263888101796094224430707770734048476729067125127649434516610672741039410322565905030274363049468165678699931642679936144532906732499741290792565741795932281601694745302493286264785877432077795352150160078341945249668536601297877685309469476376857164863841634083793020517184442630947322397924750160822424062526308684086521766781878715591198535693259003051632826002734877309502479637421519263402185953882142777195272533726485984308632274049713701212347448972742805454417147867460016662718884322060139860581940901483207047747055735207267261416778483999343249900516823149404372332594299969270467508154013023536370094634162775346064091027705560445180923546169501164835959445549956035776336600233690296180777811978564766115693686490502950335573325518915313070309563944125441216079521276219826903096099232933419000123908402947916510702210052794253757488882246542196704601904683531142724527285389137406724692447513035815964280780105868096572915484034895148781179746639425429452021370624110426724707033324435621736972644908132851395093287156593661903924359316312063851310239472196695631658324305178615567490464587795791806874132398828223874939356270346428046990422972727685208457256098353537206419798944187397258856045019927016225506042090472868507305816049586736283387353383114122434369495875223142978765328402944236581288310853010095411638020105771838611955160268491537117016150804255508185136189026943980604753440276974551448233883851184393559801646503775340422943783825754216482801292280898899255914627129746447278587297584396509138146523666740988897683928599772870963576437478023814077946148047768695538548098653833692697281055287526234081008064609676165520613638027958727175083351620406155147841366588770246259987841365031017567697739935719160480183633580642570999859957773691578798144591881983548978868803684343808390379364326107504658365162051308518984594692898687607693856482588645894063010993965184577409342902373446955587001175274221756781527783322713765981046629075614734350288963509448724015465172447623392087352369342253076367062074703776626705623061419277299273025754078506254795759903298820673025799692032382610346574039536833882541414176663505232465281891955805183579767982958140067604621077450444234286875368955399883351288485930476163844110781000383241276632182333452728472618946635294609956517238792555054517008526163009503240647130142778149820678317799800459638975068783886325627541988314142882306079564036721639564968430900134994243542255078464934329729401181990060922734393881209447382078158945611294215247636248244167386266537718981573999845908102726834473109885142571918081187561654909487320705514183417150474681756327107156492676837324385588718211479913435020516981191625587797857865586956215551688560541078025133273393686534685359616701423222541013309663151836760200627327962745014480169872187700199273877003589026204969542385296241869270827272367682974266788214580724083623339513249545711649528138804532795620098040583035459495709193194441588541435124910627525578291731260484089669749085015439257133801661317089766933167258739387518830204155937292053125716112239377962585679004296381250031183144685390711161263363034301655914758582248534323866054794430642767198248572493774520755297304072256560410515336165118084206630404038931047055977808905058372017014095550067333935700990808666863270388276500828994895520476385092468711566508871379687163043918394662385991453800750994424054891592706618866375216085320456233532106557785693410701110720247139144233680083124685501223797774378244865327963976579362907420392909709905207113438470768264452301977193088548923678832276654482499645405710682075689357453929274838435698386589531283497851190420072979151449972759159650643806586894702662798620776643510778642042710493791578812403758309695037931803562930729600935069890936073627045523499098426154756046361216742413846139939198984543245948239145998881311476026709497760263600435532890720852191155338760015451440107236669653299150708838742162109658867633797533151490334543525885264579926824995898931239147767541883166986542811759669338833756603329923026229039606366174092837571054035685273620587081829001348491711093352157627515450493522217820346383266108844103642747562664672155977571023043468012802464482396439835829926025845488712402670991466028667968279934508933947186425241420500642307374525105039551115704575844111301496359329525065487954085954519920191406190921774943894348828848176518623389789951002311834655594986304422165778053820645309957358636396672167603518470206406426882976995791660477936640589937735954323415307800779963476744562786490542425759757642296079641561463658686546671186511129983304649181513122318218321757099210002731119435447836673878764467328850812954479936927362949111058597758498751044554347559952769037025890752008232304414902963564791227130635466305192733817761803732755288312355266548644932796789303882511627298699854531002005173465462752359326550360816473281129005831104645124023266741843965451151890349115209557193462493349980986841676304961948406023864621796616120941362293716891886593505009864012287017991850707362928668986952336861736388597830647942212989245624157247754475097147181691006855595564995309778895888159612125678837231726723304673387824952585814476813395074295496106032503038629647239977890792685270833358894981243554205586178639266176769473310172886519872214542074714186759259583361001182371758758215941214302629485290033974776062028849455937103602333331996156462301728987173116996684083374125283766631672749818289878195408541446610867390125853044682246274678657746760597661269587121541160258163591181514053427022784642922356445629634433499652562962020590595518480206529950164275677193823728071409467698321368577984220821717210305546912825889348133846450301530505384872843747879840397124496528744561660400646457269887801732568156528729955682604996150998151320320559058246290646918694661600336070837430140006503176236022334743569820304230703394638635733402649523914147008818928313565328087502591012918865956985613227582009759897648428449765701739208562780353228712775727044079604582576429599657517562350055475755697519525584710553571006144136221382373603390520482965450601619117569373722476360007139216759657737440078893207732728006475945124022098983653145911891224109298659476919402434084541303708744713035041679874769043022900701122596272052808703140213905411755293573595845483246615828912574345163324832176357354444748359124656330491909356214052996879779249032077335881088988752847047357419102310272818873444328794446314194135486481585397976664052711038555525863013582408744985613892386871049314272029986844702269694616421594342264739487001591969494005924701272727579805739099472865670107273732402565257303328874014308602040863005999746561280232772459055721917822341555726514277506607087492105393019430014404136145066722144073918227404197183794336319546041383139517498740277114439944781418133399283607002753373568456983976725285752362708747709230271240709018698410766971856481011026620945345183029210025263157073786072666048119561620141279321692212985380794895439589901819133818482949460249758606123573469616022245455368691896417487590616764914377747690749488909185695201580697430403615733796307844255136526529943635680839793951715108095866895139415030996343085725376260884729747675061029302003983178321460822675353969235417037383091359544871464974129254063819406669665580251329320671054192814958664742472162286219542589279235874553943028914937908120016296740311219739845899595300722836236571212373806765159447484775896859523009375417660298430742231204457996026522867782800539390800594804146892302920283327274524521211525845495155555240251619661341586151475882882228205421757234016152563015888372300957590395241161161213462217054939833185553081912707764499683130936464671177995312228188454636228467311659833262543159360872088738560045427454769464375371891786798112528563672971444977081536541530191554581370082673609374638101444555508925642483938103973898522249728889630104595960831795701497005020330948642824786489219082125796278699260244905712847271646611027385331022444870259659636764662123558152392141216726355502869415000018487675574721080235264501559084430357279330994333882803182590676084918647459908687390995772623674287638759309350829883257032325296957700586373085162552535228077253617892290029602749238741237870072127749344541183898820771875899585802530011746896076282145754848614305912194855989111332418350017244834568614338730930669846389080137156442036045208641342791807458996293879848366449599354081157264945345944652633331589209568026978643194082741073321230065416585637845878639440935316772198678402898675507139979516918161714580132890782238258839036393171520014827558423176037906921555389240606086913337737425749878509543337904991883208574044423152132139077206592060446424077106818342905875120624410411565861411694240467723059169263022365404914493902163917670271114356191610978621707033003698604532671142598849935922837536501139402119885946287960386363058727202113955171704316710870724888550571992288047461548977445552935512818197816904808557437074017786451963092373568328059489104936314815926085418934556999140030499969602106216172990353973522859229615883595125304893486667622846354395129675389382953255533935724959100883655976382959981525993457165713618659494455124145553932849448511071194932208998373814267011289551922068488227034310159724065066733109278685575668902503808959306026890288168344737099254528208130573691999743143345698417838755213759971653746631177859067925695028189038973800262533134520866188783032055622725562242321845457773213996206080339970238398753383510040536159926670152145133334085974894364921932780087862216700696398074441243271828328964615491399432783573634985221449961138641305823794616518657965501571679456503764057570898901839626750747513434943624025156384507360116656597384572714040033819637608935395779181124598104681686124440215627741829457843831858175504168718995220028668306856926388364294440966983220327694761638974679640407570242110474384646370091184949573139070439225588875242100828568177064626665131460605162199384390633642653794538644700820981608064495852743292382585276197681976160903869161358821949286955645879403746314023414653937070404906052157169596037418567030469285765945214840173230910187984202669413626775165514742646543654565513859484887917272177484809898474695003159834228379626899632369667926513857064536256224503123601132401618618147922345112134641547116746729136103616408774908655489109070383687796063482764441799410274358315333255280536126696950350587020235799223071265372402716547095107546180673789398047238089164198482721574060783563313848248666289226036239264245767131941860824172863047305797888074673909939073529969548143294218275937822420842574561627147594833298454628921326680152196385836048689439466503717642248204599415536943942259816086778903212954197132116384368657676486368923594115500677931545964428119268477810360673764329476501633688201106869806834942204984802015837146622272744054223481910396861397893297679661404079781951615995402910374055252546385362607862395452358234650207640109251003456752426806305401888699577553968772949821877810361218465790362631251510492025562996758521941790087368453717018462542845155984332996332303888682616180557400383610289035134602881258001769980094119976889382214404427418192223688574206005806882643185068320216355281551212019425745388929813130868128166443984331930966011457442619809054255137191646885841291912202170116352001698344248634512141380512918197448271517926620179828017900639532895659393043435731973593804602030835762202798849441834028083240479854832327700931416940857271467968275546035406901242881946736320515920238877998621044157484361488392569068524616129698182104734581106173509230731885206720988852597392159884740685676397035163489267793195071665448055908884868740687961659643531950419632297529974831752578609752209225708643394293803113286294580233009886930826606303658108669019610628767061871284368176341017297173505317339926910509382259491908416340994267558936567018167833398459810646596102295490064218663471802381405335761597942643790457441300101776449714064345224750305961391565056137554631955988492474902402487403918890054529622643534563017546988157645908992516556436902287427187780091924897666135461748205486456657487963325876296369269933602997346991431775169381887369023313109468581691211354765834261829409040032552244210327953474715101346784597693848225623253649034407264843526622509459490009856467687423217845748841877214690702875802453309732870690953621512866577618970304708362898828765223326466556388548013582724775715111242818986190024584797471659107794611794256333035241749008606877333845790044730210960301428656803861040426048177179967839731763831567175981174656320815897586789109497615079421295026447189902834321310312658374798064473140622872018145173076534683527767801216381610199566353081704202201787946407807077777177782997060519091453271848527072568610204117165763077725285535666184102529580907551348214757720641704608156534828173455583726630241714432419317526379332880111866027578314875680363597014422330220790675438573313254517789249030145067841207776029156938943977360271249010442968062730152115359875206544805490192212733743300072808308513211508393729312887223701763790884577904221892213208296042333050708159356155531947435229641064307650885797190657812943063046400256037450891798732357873139193253064512292125188581700918402848229937804711406576377410845730839309591615063150255589442310541349841050931061814528760622489166699330539647225110103029945606503968201742391291260565086752651890544034454534338745790244091511041772941266334297669651691338946852473214100750630223837706231478681297886924404186404505360567576486575198255675430028599029764244058638362084447862290361649841287280627196396239051591146065340322131555777867518954354541176256728452339348152879997296578081275441281674529381306811833666184634705570502808253790287813346997434108397910172924093424953284969212376088959152502958359298411348532127724629787775116324305602465789179677923558357856965214734039609720448117710938468484923765121634647824660627657895390057655414052317309557821737275679492834132135765166400511967545427044856213263565221077519070774472428202756790495371088752137785460971648816501099194000546826395187870552253590154646030111047607118297498458495987866857616987698098757952946443917059842530925913556611957419685277489516634682220760757512490142497972969443584905267050404641055173174321472770009634012768679291236992303258919328557213857359536385024345705377348981216784370585172285041646096092909827973822193492928345902581073623608902817418190670449507701092297286716554346285546146655078368493178432603728280882451311291775912507932049097517156494282664941070806168645415070247579127144353796996050868753894669333796952265346316594663961059043870340830733466719865453164263363963352830057601639781178179394009112537270430637676701234059941738608343890965367007907223858261947198419668497316441900004474594402561256701627196422873926943747173710010032681800581055797817948891087815290424495189844587258590035478417189238278465968862967118209007728879723496039477534728276391520771478808272287674932323942976703148871103568958150523812907679496459945862521994004765954277517293383763707601197283085149104020072265938720724832268727733922727341794695359806371638729443095136694286472534299082730719249051810253246546028943142284608223732674541436696715886774608872925033483267716296068482151096281456842774243015575441033049055000976094301827608705113116124870102848588928087062173230431926815519639015154144610772249260834534233950072731521906331503126090848776739327951007050658886046657987231051410273803779880839599651574951164219141157242979186801545599705596463913600163051119649477956134267064044570766487917658955509718940342363111238085207941680086328537173830491652309147295917025473978039381444496632593740132781763316923367956935888567866799660573370409585330024212246747186347068094671063756237160502638509453415315099850557696763995334703717478579049241351301280914218582885657401757859626157148328626996241549710929517756590787240544846705460838505265416714020751800472407842514143537366449612581578163396806090696393139907872672537797699763820730230178222470042760821019446464533347897331404320632166668190995377277141438990037589090670417958458536016916333435727443665780267649299810043689078400658456464527884217280022272713441275061800197913819972917002327930995429091363184185445657010797078697722647784037471324372386405557630007576208093470899949345761661511748693794067226880263587178686016618052483068920554354722897440627025213166531975351305203880913381678711428315230302342984939552283178664572965806569426496095349319563337494967910756738807146369975657757598900830354872421610888742471161248567616682641957575571897583674888456409997426184856808091209708025190978536675384555633744569956077143637896045910802420834604211047625229655071628093919970147244166468286609497826239101265107116083453579770700486838021190694752633737624163135988617303498513538124527659371981686727909066035879944959440016642357606878892681756734248944812233753880465840614009048557469829765655290379120059860629426730904582804385920883882590354892788496813728815924446228605910587701791270873923775700009512511945309909253425791175427962415572005981456824353741552018336941448298131048477050638662158442788663949338657652938781850573161565013396406042933537841077729756719721381817036764725130992816871605086573866758002931825846849734498124601040788744713518668640866352167168031960042932751103081419343737746654652973310863088303352505208030037656761083930066680237058495712296104006611182089546835992871201207342133695035729354431142194364251254742908676102412126468859268665579158548856308319961240675880783434200930072964199525881944322827994512462724848820185133048417229481496765970774285217275621719392808894440412854790798438347838271944132726333244870305877280649223382906260745568721887562004606290579083737575559549381844059659839903236745855358255508026220467699555760036063447424940517928964127609797553686469232409771878342260476651161595390472301213945019618831355256944734746013735332689814438117222327887354407651544118467237921780128664415859044628650624883968906922903607695361336167452133910827875377601279512005194802415466108371771095922313236038729760045846207537729283907125229691483232557655387751346458443687508708058496324008704340974132790670099785208671916251148194665916951398796501430415308967566055415603467041257436503617532398822518334097278208436952214857242358827088548214347724876681440054097665893056013065990340561098487610163068457418131232658233131646913959242452479217334197121848368544770580033397785177071405745252807791435028187722069362551531539115852434601977531448153887198214833190774393096629082864722929045265664920288140825046268137325329989426457787468872119667876436199778417121213716198758281092557483656501898709619593268122812236070852728274571807523080907096663489219381621356835765026963330506766838507939949275851024839853916706055033260684441942845392800610289775054123886765382249728275489928874301773345678626328608934717506783583841697458934386869175075342052201876847710611480387948543168159502962015613076577461832630557202118480323979244400377776742230839906697657635326805039200247569983701073224890830613643726659752628285652457324612540106342999667570617134892949379825087884270875717201902309836643775424796006435005498974664914591736094295993309074456735373676513866981102014974397206896427575316439989993563740904652252489698277600631534610796428688695101343978880636342836406913484044656871259936719083274124891286581628604253087361319692567955668271718538973621300434991431376389037345567085440664644474957638821474091701151047014589656677429709779755981363397772783700712812324445492778631552482671077624130333158128952235935697064729758692440223155701125406732884774177264036090801207029339419990156769357548576408866548147193900170391549612269204878256980465251031274972197604549841342288389496644891048014616682085722754602646222783635821681727846703995871961988466181030296662443109115159877066164917310685976613499030668138853733468046019405716003165235201108446887223938066904317475031876364383961901594855080383012744657954150159914100435671835259954737591363272551643472827845730657025164614024441095936577965178983098746396690518900169455015626512210171703061031609973458054483163335866684957784674927492860507260422649919416839459589671764670342067139572491550693220595076191739837348429207432524205723524979166261838525728707484684111573854092080647457511768474345522543809343739144290579743195481810547532358538541815203590739746224413487094825418540491306638255016634803710366136259074371838678299884775502580866114490654750305605683559246253142728173407584213968797573533439084517628542563855830204534693636052387980296271390844199000237201206390122812680327090872569024057535026918358259678786114757249834132240483712378474090301202137141724253130576043704621358328022564245156956715722029575236304115293018449348316966915845868392962145208428693512314274911273266523589513401718377671417373249548236219114377828426854700143689458918049803831744132586894418015297262728406181609285137095164771392386906629610549595673081507961251723409515904994899327680570349907859999983144857826258908781299582184810558146402407280174721763073763735308626780495570920854288379794348530072026364664729823030307475693865736496105212947554985947867375240866169305901638119898376875230337586571676045345020385203241052888419477086021796861198547013108566981344837920054950497350128256796233274279847548221890704650494083973896451442101658006910358059083382108764126626739360482546681366387794343027136291019367160118332249037897123684371647974194793114166831601020571723142998860611982623560647137915645383056741903865675156496479493707901113136929684172377607111437957206533226684943730689095282578238391291191405608604562881432272072199739281900296591382762505269712508992912030528827084811045920103009661784010099479930471720834016355567226807349561883292813381664578276810723292155841998596822840100529721257085730773499016131427102440248809725502913354770846377351199455368543931200344483059687322109847842911490382413978663075735877755441868831386441748887656739585865000596009544099555643840925175131275533565054605797840905781426897759277933343852795929136663793913544767082467756989897768778805841620121532154660541664775509563814238775765627318363929848002614041618857635461684033797529785399901182830222614036581206745336666003871281423722235677835680857120622980435469220326625843852088165359241354058710144984445460347953375693252670653896465023331951658044009888182022367515286520702445901206842591193359452699822435429907215478924803053923356643414878967377232964370205053968874385023469697771663388433795896839836343230963793596810232321314692190650844494414920343761142415385548350867416513364114772580244294806299207024890262107213998226601772654263307080806722531562111751535671805802043259252184601891445873819424598907993776843690609222775253194874931775106947068769266028319231331059055506958979637296304861284072244944589579952078440114301194358795006736972740321464404722154164413547789458320574181893824775238202211595419396608991214395635006499330313680143238524374694662805211765833566817124279771015890091436693566324880540866434827217381811851803598879360892686216835767031857613803779533522208691580010548484630747401734230707891426061619780573861577295410581491899325945486111878267954351786913856288451025163568030503059041749248373967454442810803867409005002431270541211867063331831710161190518861868304882079776238353442494162764131022257348687240962305521868954329266068757019782831340567800076528924696887702773774173583463992282144524893505048252472621848745429098283335291738497646038486007637588743820420741714803024720429930423333250062872889841804139674730379919635271119419108321542479317473370352020060410439358477017582392342351649084762258490883891030097502443517168022938080474047766663400160714592365731127460423015996104339511780845538709443120760054793095397210544784197033230987003081827962846346439146291041173182536178347743457826386511315104494770869448417429836476213542973251616049062296499234209997668444816244607690555770346221043432967380864845360781601273843097036620894327059850818122566056894342871002176922074557905598952012862589361125173582449176746439461210515580673750066786882253226201928623895685506838643290144920089585102554862767776933537467536270313038439391760682049792041490012226949370490947419299102089123938895817568673703132958912487484291614789852149659704092406118248779240730530811168959140835732053730609971017156301721055464704471687952082251360008482363821763690693567838086485572969071971824467312954594955666828546457300796083628352107452955890252937867525732873464977581473157950491277085050407410506048319113785414102016884932865835671823373465161685095251054819527519700606660540709241473159337898771588416223308124382966414857372177549751306067297773204884076838531968356393795680149123510642993411871985580040012958941005383652628863122745284243495092995023578067912007902179265774903717032920184300881916642227757544709255063434849826113282178068168179383441289884411030697327241054692575527828134952211854739687390274261235402380721798814621717005512615578897866744757553183959930296268039553924875260067621653111052636807922496727411246825405361575295404904419042274907925796079754922476564584768673118866936002810597391890747631971952980499096570835702938423144791047365775065459553079542000244636319153711601410507065205569369775160572024845913261571450018553740124559782477593641713757534154961676597915921722979368574147483370572568009846469182162613257336466559643559333396578672680735476736604191318976714901179833512891131579802256886744233461447370583053363811014040701862084421673049458306973505994659278464836160420968595809430256680434976169945457022274684678114369664759468151407804625266035283917346651026268065890758011230740682689435407223803894314112245932438052502449144987221049924541231453938631363612465713781957799227774568682360817499167327999825993253638167837504899445617888783692987017430481836719104715054768171841660267032558526940900553726420215413127104825926050511122964466710108182609375358642385915057964250912062621091561355131359207579915300276664823526960774058763618909329063729443051737097180804703085437935801336856407738290219678120046127416498161185688524618992802546495432079057322299989525177661841841599207183261727926476452882441943276695876232266326941500460495325472563050494700451065392725402623534702011593991514869888253626406797815717215532725001826667219454891571634609316689164344923505742229923925948614734723700461142565264149010836708872924763656755124627202694283151133267961332462252764319227197964790525397216144044460853192768587009548065496464555481060572763586687548035737268151142649572977323248267144750128725228881992653906438212854859484248747589145231747807788048727972794758385614866554509829109277589489847673579095156585976912833587841685107813846078164236636368633244497175059198900091461289876483020402749950189689633242959596941580786280979985794445580925098589465893015448673322570164244893232966781073470935074372521392885020222714595685361037783028101455488316320175590892011850015814001521281090022119613302296236896531399325732936512939321947466249377147071519622761264927674074307031554841061362429206782199736830929219592056407162876864029300741067478732130326211419287793809781498356808769638085598678614377473029983809471788294584892935540199475002340857677511375563144054017654774219367176620107237374771384393406583368525646731524757286039156369933905927107286956352187185307320499565277089372023650448988166636295243474606806989712612802888202078456232418953918535919479852958727877476731237795321500647458011682879196484523167203567875691014411923081328371507879590625127058547719017985726999009010271609251120128209348754874562098651551115461993703841934879436189091948223230234454723348644372448913503708877100116381493367836339767027274942076828769088531520061325781234982869141983182113161986502749459715891684017936496503003911145798353458828761018594231181308362517616707481404916952442595477072633244290739445062330264156970909265234294683106986988905841713849709742414105813008776686050070652475274233613719040367690261433494670216376305913271551726001321883203183151806746309642701647473522569339483595996384414776911291441132009042689310809178886381036282140596541085539155962426878017512675255415731264703999726062094564413065720476719472602012955661057280303754434862174862623515785676550133758285332681970687821552917968949213673024142508408427334158492623611196423215230148451842174829167104545905993358735507755284224221330164934065800961447791622965502443790424685301787472174593335931321304854920113091055921950669870298576734256036584457619733774243996466164680102996735832300463388944194881546460619479589840594271932278506313400410929278399048485011654410748138761342177948912815333931420313313784957154098358375491857010350063904241012421088927228194108232098765160362959063506296505886278151201063388022171219068153647552100720832758029041077200683391828907283163802517419942700936088805246406715409137083109986978154932090235763451294384125042274172799968937030355410286082382041656229117965723910249806983815641181455079524073919764436677428966022590661913641237559652069995997124729866941387695727814651243235789628716268000125964902330848632135703513694140719269056101692177683061389652204447993450875994201881384163249843959083613442413551347876678655254550528981670987309861217098844031742598343328160515939063762312231652997333026228535251166515402847553512865420604713998659183736806586336108060230030505195745146364322359865313276626190433141530926431058127296200820637996035669669677393708871537703900648540937693831381347945748058501282376646492132848007874833322890331914731820315133223202851818681670741276308715530094488088362340257404406951784455160279813567378422271697262518323998720156468502770983987477086789240838267659918420431809819930245316467010035807976984806843870261144567847453433114231740758205333439449862118654967059569580567229465894783184236541356572787597886356880543575313755460395100246592138584411614690210485006195268385027448673855170220827512179762591480807211760546596705280785120353220535205868070032819319290852770216939159642614642422588042997691849719638838580080961598984085281187620404962654273253177656283441568898760590322148223339943583482202144237980927877831458947335579138888053474189066225881481781973205172061944327129159734710557752222995678064077404068531658112275405969980323633459135693825544465060802822881173152337047071207251464378209646093317014086450456917993858154590465236827588493185952330073421866317324667181537612823659727653776903052230532701398194157881330658394871571186213715132480329114254546248864504924905713414292865718169136264597800384433472157296598138385546354160781892764962831100022668891625985321142791110148267487431287078418190665826944005422441234518338011157498779101939965381629231509226594904848427416964828832542256463407499921421851958015240611821726971186175266311824442616652272200827414843645759094974035196090535934560752952465330971517546937856594122651871667126728957508597742234085410867214054349780091330463215394166565859290220166633585258779502825489938708074245279640974527874447490171402693664691804464641456948673414977398137240515937289234723047851314718945634872179275338883672343018674276382573706165875514530546869648548734436191586676663508676316003148848167978992479138475935017304860032613278891751451270496426899255639805672565712171034615023512314984876922742424603808128658547650071247086970588778734212227607427222035766882088809081896384585888007113032976915840781555384903166679259558032875706062191517378048322329199431357066981487416961545632157589383404168949355344731411979967349262476396102527344820919063087753772152861937389921426354370329119513430956589549322370912459434762454729768721405507253361556665953054636434116016265364987380345776262638185032590279461744689398106324520939299149681005108552588568726313301850448171578501902738037329278730685592640226073674153240223107383223799472206743982096382420503117838518529966003135068733636841081746113857238762979371886026535551697463305973358702808813657253967406505918597360528585992353174340431661949715618426109440314660716865735218130545204377098135356586132489996181817959938321177917005957225023375551710384729133091538152503747368303354563465202533515337254525004285038412089034000486915786880681523076537978273803175365174391877915779983043987942931343079488464442483433538721857337748256791488232951190278814985300640208541219058368390439931608567501094602709743077754574620715989917597446749742291434967483340635193282875509961449429383795858739243992670668926266861801893505070068894055542560877746786253949834132362433201615157138333092404786453190562054720871667933413651109356587130205109591080281940235182563708339059072594312143776619044970791306579521845360148037954642347283627784031371260245518697481737798742796962556794868605144272257787365704199522089778271133711041887555073993382661994922031291955166560697025859902500597693441609310171211010803434598317567746241866675917412363265532385537272372208166065879070688926900757881015936165603674743899958369679731436560220468947129339802239988553326115335807882474523399807162292237835735207772345621384617210963885116783061224471720223448853471965421903170558500150512866389648829259960161042530931361531224048961693910187375504655985090888335962125311181865735046026393847144770516589911725219572411650737915080268562192323178888444375796165557238124006923700056529266018157370316253097438788102809045853913448377968279362738684853340022237469011995114498228699322359797294650114054723983593775146240577645380912647321006311451326547295508515637392161640350451052020763716613173411095253805332463570350490411063490058117957345772959135348400929213255035280737817726109099501061494306941543987407763285118545175522309739437316799567345687269184819175707349635727684996281134762747706497755258167547353292248514773815791482398861710142655418926799363640008930901888965624037249532926155397491847570640628353782379551565159526649172583450294236547245624097230492786594429950950528488657936293812699069287265144081871160397615002847711027080119628118664955620053343771766324430418634125974260343564310690376975072303662089041955188007391433085595502704778793236306051421977371805799098646936266593670236787503070623753422561044389024571540307335217289616399445943797896343750876093622622929057643538960975622747517325829984143486474827014106963741900203302668154837678302118297376817818302438682892943082996630724617694767237633029786721095329762489207961000517738514343334060659593487671162037555036482991109005238364308298751711833621740574560742606455134588562212726261348131245115660171602501301115543834240960118432759146880482447394454079481507023276895178131895669469061140320173938232189492233858848812059250244453840596805443375595780682219961495472943368081582223291925207303587715482760618290643561309909959150033090839826982694429886442218051178122432563984457643060524364610849653858135146967722971159371426479551104450791699263941377550617837422303568742402124955291196333687830085621460814941515092685186716857106389638850743384531431077463540044078175965809635644063517908751654161481252743717999986728768011237893109749155728475283103843681001844658125250444643523125062522465535939389609256005728749310389406313511168612746626671041637958091989882607706365851558841792732149136040737481708408098028502381099413724517112282916394139802874293587812966447076569952899274371789321527464134350460425394612374752410486594351964254906259894521174686696471681981480081594197217692744969316116306136166223488733799691053654162344771000944243557294721850147354244918000236698848048404145131030231633533157529534955765884779895503109663622233962032538202185112334055252797822751111005048198164929787208989300172138440642436273148854318663296613011470877102864776813142100741813825184199948257587034783057373864424934416435709915962249815731687577855551179788144502798040495182621744296080314777203841630405284825062729446633544626433574595323470604748530087938552116825368147812847093430609993483342419451938486639392209606661437451123866201717365417601999826632339574202192128427660999579079931232602078190137182655051606017167275588230131180365429887685091398377478866541060796918700900942153031908785863766798855065535318723020603153735507756949223203373115521992181488185037064536298831393745822906959650484898692644709066312091860999085937249285637306357856745185675167064182638231459851989306773931371755841729786255157008083552741584275186499550123335148866788860438722235158903205765875956828770115060753081736468739618468359660753419336578781734462485952005362181041315810593024604210214910111745406952645812024827374781458846428813362510072656551711556227288070348512597353143491242995282167786880004214867232395086144295380578469480423231917665320049832433355273423935530848563326295618251256510342619730133238130233116578681881948652110706565639864543438114633831113013358408767408691058721699536338294277976857261846561737999638748436842074007965780583409881352777295693970438857720897051781027168785702822127271113202939372954298595988672697069589594815477696026470916935006112527254232135866631992197927943936826695815551701460201274745959597327302488536514657917944680264490664448739406077773251375127551851167339879078683948439440860490510577769340374646985100233574016934177887707298312055677826757118184317215778459168210188009782730298054714273111762778305842965980965339565719508506890996452072317927982431515342653243959689180305511446923253414948738287153114609151061914941125854238000248786458690835879855728999790077089698713797470142170906267588623913017790752533010876981809009446067348080800739329330300074974100215847771207826603454963180530024911071218632348149545241504985662718176342809644782673878844972933695432048720626804814050443816391836719478801421540129871126678042217836323398192303130871012499738491174758687943300325025202892414961996477740325644706144493314582224111629344914822418339879494807279970310131609199044461457861676514501159335846943596492567637482347433989532165752725888979137572213157931729133919089608850275012908712644349940468500134252863027369567842930013731057182457150345791477287420616882403208655876238950163075184231050669920639996674657233462118138197576505415155977262357684007102395479257975429454785320794837615068459507974543910855722048194303690683953086374507049372340608756998935948168788601119336960166005048879379392553110106243510957264830410262374446198350635616870854449677969524342390084167816799208515515208934794117549546908479310969350868205076000171206293703995433223224212542509658475913917595756454166656058796205656062583283513623910528897191631483513869228704157523000906935712772968692689713975671472857308624065361821405398554713483785833234729637645854176142848448109208411220760793978080695627424102419125752460365638940333163749568033781653611767496331834872973130332492239654285093027638468052318683940574114401917217275507892955678762360172137234379264799069379786782429465792518687678525763760504353816542961015710574117289514747558468632423293202600751400165677602399572518610630086380663884887153451751888892651986343408461493175350712502051673264879792315428119088131906156919307792971327814784465932134893877305849243171537017205405423223072663077585247767686345182998246395483140555904104822448151708539643764562092719475116495518549685687978127641768027861952568246549277763761933385538709863244272137200015149863665158445132528154735857067506274557645258368022888393223716332251449245150311945886894107436869869854563082575671820580836337940216581323540684053549329337698544392845198726480649219967474981765926779457612068473018799631286808127582910557273720968605566244359034818032465055423763769340806311429824477721444103459698767162306998620572163486734166680457707668241324503006451547746680685045393665622815059743268664452533161470064501430019190500105259653715415849184402089709639090973767378652379442955431148037778323153363009409166951240436738766574815084358074393831768610943733260159886971204719666166830749260420887279379227847301629795725660428787624679913272888883749380314679660797350459017516603026179490826877702900579944092327343502655306526673898137124770424222376721236079791909775507277469398489522679274199948279652062632674575025176702334684170223191914711976196358172167413664272665241251037140726554825493136580096800522508572734317355645609560571507366242228733281673570288856469992646651841453220651037154516341471365220308354803943718602441527221230903069661046111064068968896226689385156115539014852505749030169898757729728176704064786142036560595558770848671685005647026199332792902859161974628966424039575415541056425520594892456424150099590183887767147743742039738234518267356567806899160964135492693876684380661463466072980227913913821805363181988322596354916157160732953341621458819026711328467280614653883137155177503239434063639366005021870509282274023527534222168583977994421812874774028743640519105951850026394833108723180948369982420634596028556042910331096190124162641452095733696895444077343512635784484912741409961494027374105897054074469255594386317226850256753510888093001408581031824672830179291157234537865936370066195339014454567557043368451822910470985161299995958799271977178435398605537141133698401642762145876585864040931844062176612507012139712971017566998342916916178408644423940877088357605470830542135631885383872027188127281305401094658121815989243304996047741270918209921534613993538706495085963146119421138383431582408502890899167549802681231350342457001003928357037006814704230771896935066282473336466887912300235706142561086243174056893877041673295156083590261434653233957680376944280943927076365820129215982873085349310676990349425235346664526170621068272425952350510595165868242737748682335020270656862620726016805138461531160783938541219278285998866597718022492009808532230078190897685967834896403099682783790466336315221920573131727263919430099173421231748254901232986805303098437756321001305601965622012931307886975755025084031588920547409799614045100949421399021328460573789617980636584882740242286779948761460544497567741791551206936321531189837522673798892656368168617883809618141455784988226383191923847504633762263841214983854264271132084469781868715068148470500111311923679436936435563287681409618104148499432152377758560139270228511199751026677391758592171394170827264129620623256209845899971650217512902480746404654698804068157329518354393001214575189423162914938375699680669252973580885529704867750538291564944723775675077000799435612298037031443775347355921481382216209828048793841466531789458180296147305511934544215311933491084031152401664786307157725493591406295159579149165696588889860257860118081639448779622881504566473168976506576657761097607463565123469167537681071860297241280666692325933966298240486498467367276584480209404306335349045515907918299155609124983117855445139345072719897922704917892481905296999272154191908446001362995682235474199200255368222061331659072038232537235255798547828010555427057183650832839199511320852978871194686677518830231848222241924532602596815561766858987774215903664548211727416416863004541099103351720897088911099263434191733634698326848048136784081890161277270204343278709329764001547838604037780756414046269937425215365602055344141723469340609687934994951755009649826550250810079417064840689939401538710544112881647451781984140015907136674441948641450766233958334080685747248430836788090800218288361907837749900716088465214630485290018623037811445333225879916777254465978501159380548543141946365328254473755916668524224902513147851027352530443713714019021876446581945262832950004657626439576908535482729052658422765747137207238949974706786720694796888018259336935158445294659380524901206553313150661470806108281201029646949119738468309227132836198695146859209572012559476593199620416429878800973158734453902741909280502584144873263023154635454189478338687312664725211993163766269215632956618689871452198078392966908428559303810150339065876289322035548468383552676514695039539069746683759352585123827299317329779173241462202163737572296352627456964128425541034997345537291624010781316123777802841544796055456801090869684694672673557148410895304380857737012528730094314938020691719174343124610294723334516625933205695068188537223156525565561547850781017724056039470978975419530187749845543207342102080180799899065003098682602893687243279562586085561556736323215557946226584137196175679177266061657578639801542698044604481734818666157710087982101300188299531893012391258673951131593091349011442968175829900053918666790618738634240599237103057166106337257439064285166683362108483765823732659482013447224230949983453917359529637148841004039476144582392091248447703859150544929909812519780242633615256563317173324431193912705749377258611226173820391029541945213769051765466069199401392282046984839104138991308755632219808063993436518462206318739392858457787979218429679628506515750273951007811497958404428096647489428921381017349995883767590611774268815361384203406374620062731747257059818572059777811320510952781058566043163014302557707390329542150263032387929485989396750974092263026337422469544167153880195014587344470421072660738956345049670001465572690063086240780450860050807087305907495326268539081585724194982023723037837371120581855430431317815532264206791968471730302237792397104909429780815059561598181081672465293954026779697406619190781826763284327167878227614065279363017496488622716901446220428439302911145391893301312311095868790231324132346688440074602312429207855036130807800785554263267508201655783824812998405464743494651669314375933300156627381326736952333286407090918082165501075497545445540439927933562384076419209194907169129926775192563149427175938103144939060603433449181972378597786723195157773050589084756610219088940173576859406208547628029873375491318845023362062061264086176928867973057862012138269470994674453764450818089082053685883741665895826719291526209460104161245306736909308151140120957129237793881709745158558069326095599995392329145583321502726494534387287022678758014507505210044780008502421955614434511039046538151438087434358078023631445784359950566570114201144926459449693208249090999527414739197375967890300988738360884254435778673479062266637027543891144105070842724060140487491265329343469423152711400709480842686425398266905363627946338230671815482547524063264822828054427078437948015595106093478494039473813195379030762226672185711973411420760622970527603920786405648459839314471513068898816591871916695423642709826230432037240717814142888493956652392941447692906745818861062436366911423733298411130640129912740339617880467544138137962010495756493759137357850537753252880185569494516560054368506986710196264028780889660307900407438306053141333975542050788206292498879021628292736455439517685697833566515239671528303893990209756985981110591995543136758573417730776829686001834489858707293386916096997137929278758858034351535873493279573168028674195939697380450922327392435150247782765472785632043187863731614721036348466494232041736863923345054762706490826687766447898169728646767825831163052281380358468108186297633293853475143728682006940126625885153622336217272789261128380327799403206878929347812183610207903206583789270799945975135363298527914735022226013879860247592401463284658386166970967039162538804884300851000196864489350193261429318511668176066994703322317201554323198613076862409684203389026676703946479649044767227756612086437151166224372869337587473762051034064834104141790625895251606221784695053975501191020138713489338226562722123489442108754648152507899866717303439833483810415381013485865294954889550008983991083667258912657118691701209402790605090193230555454510475889766475736082298230010149329929755595585497075675516282010820629086403696054108312210396447120641438027256457429635827850456311599404207481931811988728960948314735635863016287852632643607916313641886357328713247891560041378841515021879821643143893135190806072232872247825383007306756859269641825191819534198540751284760615449200847701036515488638126213135278345326443124439118959101193794165287873290565468952881857677216457636877452179635580725412880227632491101091876694685966267538229336361779450559741450401426360897320306241246258162377727124801771704301988849494754032238157515909393968019850764410519616501256978924068093561170039368759335487832435946399971016772196929499796222145703297356471338695030740306627589189162740172617314715644461017966333439177367516308040972045821015751424466809874829096228429652994062940579306764326347389338760184988269346436366817903447497336590149491816586644436545610945936609344398142329516615622038419889132735037491642012671714875028214568332264571277348616786802580895602869869556910636169272293340395646547297550553713292265940622024987848856731984740052446241938299470081621444186904750362059356741128814969884901646068293252140872728300632572606591237221747703041270908000513664322926201729060869054126308991362133336973771930748889883438048244090551471527216350695978559576932704764118715679553433088500184280467854701625606855240328837568649139418353823905894900379681823375901106091453355193961687985121223693166626096845046539599476358377489519252763789485913554829436402904236088655734536032975573959521722360113905038694331234322510781829094283348697024984088842814385020718984011160478229593791914045883185890545985829642987651400419655906038968367716306840014353761816910963579994943697912067505923405461070780894684107664603764190431985772216388130440247825640287267194837953178349344173066408360726051748910371534165946794945579744684080920141179646734226999271782325879217128086007110676361267734418079946269547731416743066389243960608917533897502114612028259327250821990181061587464030112439894660402343975744108315644929856261332517190963377891896282207608866964307153057127127631382223517248744290062500000802004879821060751378796996171575249198423381540383492733261144103382537637932426874617311291097698449093993632493220376709533236231021019136137296121486159164883744278871467868607825365819855551512281433905312648112695172291756228783658486859050699291350396479197981924943718267254952719945186159165619552014579892747885334064643129956966953017779375057126772586349370202253823053703444670544753093190924956586576454270403818683640475999893069831798863581723332834918224906208637274166326236754200891097150573289449924362839903984561248530654852477941099388166131835377734566294966934551342399606896434130225175548860882679755340883020026547347826297726455441347440066618965859240957907444181651980721243470339631272112486806981189553218959741260835710627766636924856640349678848465547063409983863572421447222741603045629318748196346020159332983976945643732455906579697851972203458591088350868240143115600822061372409805869234785504413478083612878196044042865757328547558604355550242060569249220887626709384501685238645096513718460929743492330278801686446584075609076743957213262743372056661809563359480174888961540489819528517239770006783386090878757514339924250072153807241751783262915409330341152662215501536402375761000907437376227890265053232024361045783036875948310011702194857558823647657171602888418477555691192653492266426542289675088122690990973160334251985705755839977356412852999307056172826853671217123659022793779198833973390123213597053588068954088722079570608942880944164963611152662103951533006436443282138194515881131664983370531078666837210832673868435003590362954888426955159006298990739092318816196680366822668381422240534553465267607440992899019188831919387491940207002630107209751113476381110697920669601180968956789612173799800176837668868034336462650854715765372293387084066191665321009622600718670669734864316879875795189474561907484002929931385376016251507621303384073709957278830412592791302105600244557955955630946078583813856908571074855461317386579343486087003235853132830104900772195187168625117714354171789010869321251663157920287776994786802200158235636282378679663945050703309486419785159783870635256541770670822508604518970718707986666349872409860122653805465681263218037092470243901349457105166062314535601932007068240357302447973608170158016314791573547566265596687593781888593818741570568214778064151111975049664671742934785311198995446972640867600885954024220643738149485548039480906853290991337915015458822180667935394851621200035998553321466198439810176896948136799946981755242204051079919005670585228156170638795798767253883541743868955572624154116486636030896761429132505521583079604189962633649440008801501730176147153319522108763865932847663890167967882069172351552077692177156747411077079981185733140646672406295986375744060165275475533823783304126397193715668139352516615905455624316622330016699676783339681431727328418392360979863720228684644175084377258984726767554112030162797190351681037036003781610382619561084662356890080419056495514474163337969114847152249272799471315025068879686736641771709252375847910903526797121362473393842205105438522605269661071812367360910927113792054957875338001640015952519759065165854868378569003836589436071596988887962373357634905231157506777243500874402228149549135588333942133203649372133591760229001175105733866686133060948014494257358727555965123600021719416161932551837946935698682171343913668320622669132769815067848602338034624614773652391837040963922682053018197648419078116037657437857241846307907823092838374088303998842821166793887595493717601075994042496481363245641525400471142225126586257977751650024315430447323310274470079464912754118373828325444236034495992691541621626448603625403538525493205912089715762844863881997328841745709649038642110316391258240505776732888844974186616734490287115907614572033863903894818461350349700605077563285190821615328874535234403139300520306240018924449886174221262785456525636974623900169656931417841941483983204170872462226121679709409204661506292921859361596069380074073530050456440343186368820708959614560429653136652453037283682901836912884392612978470513816970662146907881851338764299595517614801641013012223598408662271838401478491723513748068867686094330232968970249589662197666028622618454407180294271924489897336553931759733234714716173214425674296185463885568347254522750738428530853277711327634157664053957402275665056582639717656742137293485208495831626193644922405609472014599798420554520244247691607324227543220408698618170986015066992949442747875797104592707164183295164839379392729202606347422709206571791809862400178870062001350333560192066634026111498229997568295839639838269731432342623957520940154335031472883349232761798661916961250508824436520293575601363312709318614141988044546624613761867865496991486421850988567709828612174248251481545709494468136830578904356989734995908997502263750324236235854261824967806517352336538269932048520957444150182461897962542417833717848951428035195547293553710626207118110786016276908663683497685461173646709422487694649348652710238393265262524886494178788344328184532963353207893068377762633018736074383898237861676461693966892012875316949037246173914840351616439293508452322966129508514923942930505868458334198886565546221167422995218157169879142835364388349889074076115604030389544107761467580262881184977832334295141350011035627747112453119787622853610145776043220212433967533618809035295361937858635343597623023438372281747648381993974572581765866680133547782200937772483128950683563091275086931755040357311354385961597111168104509147246830939782784966441122013517061446625538667828444618153432213275521847880725149503629550179920431763811391643332379826398134832299167948013197028188608864601770515803850120511300979557974780579817193618722447064074653420271520285664617240511464953996154562089931193301928396519050221160470703833643639462172721096033602855901355467045227437050194557203473866092237809510184466028465832772013928682184617780544975860703029132533419428446659435795219863258345642011717790441235356289230776312671560199396005498138702538107762296893638938961485842959264680376689770334625271482295635392207386104077096000399142035032555984667328292773795864923537108618088457030687865736673771799655813681547588555662756635666673655336348771258551724143145120204472445262435619127718649338376939283325642211567655529143852181036678443391377370268354315754116061442049498074298969802132873420628349039855110837708658106857945177498826979978307578156628015406371741546076744587975245463108211472183663260510363978447723095673163192689010814651131242027844493405212327838334609858742317831717039224319810883426233990367957153412520415300574648493317841270992397759724572471189894889966511257046829103882891019779990184896148625788791341212465038239441259184552751944073217069848022636142080119433444580710847401188071647253158506630276667714491937858753721795961990215647697488636745813822455662775402752482507480304757821467223632917972856851757725839494005963312189503137233145259178676654873630101232634099350005591348739914981847601243544473811071248135654018834539734495797268342478397726251970513676446055801971958469237722532575513293886825331510619135910557011355135552093499844020893908252104340057849258041048953531484147633668733559618612300474676441903187599733394323076059153079306702409631542361725678112413729377693639112004846204931237283885288064116756584557403676693294185962372406685907430116739730077330561541040225018411846895246012864068326712095222435366156198366204934125640200144079096460398209277649906582003667944921449120559799906689552142832193491110112535919025796932189625137526259290320778347859127462852867117616980305199207169606765410028519506688827549886312627250519474062677467933922168083132495774353343994854344229593013752703348317711546622315807838449981888403157628372161881065347292914048517968250085813682170264633575967768089000702005244112581872426727589606211213066425834829819036653135420489731407084800139004001517947675232319895859019085607921982011372865794859663461628272408011541010107078938868590358562274234227286084923766478252909571121010876385909187126899318757396287082795913546667488741348072001125817421716928979441114781896964784608512912981091291369244644161716183960688067615740924613987644642049384223076927759630360071527201630662538964991810604155904870715631754267699183200710378486648617936549939920187944433214358684493279354192736681983996452925516785946205274029668373111899353036686623945172757638876670295302362983066550444329607395675506700749521859067535555593204129291963548473815530892605634828143930347671682635384647928193268488881481692885884840503886214461040274122759967273657518546949727804773814675670356763784413181206282207107907394312223325621584700195677434536184194416085926484360081286597110473449830311999421184767972344336402079735031528832629199754488811663391599760782637817041000989827120518410714296260484875192644657170756553599324188831300137848193938615445657646759936707584115053669267093485412852800769488510660782476794593536425824063989186845299717262373173944855407280291519420400515501759285325687126432306008456858974909263984683800429146910905760019407611129073807063968876399230029590553236295425546195382002128597539291732636720562627978732685911123132067006634386589669364389292817647770062423765523072780359054461841902406640696032868966474377868696136072209522241304521435436663727224873269183005857254279929727619317744494573997815928006780646993942200827799299954326169207981719913490943352938812862171919101720496660760528593179726452712988747880687843162720073681832554755200286473890188865924892203972215443633699405199019389711809126964679171870700690161028293405227289362367741150037273134623843012842692710704334306624090115653909982217085465038984710305739912378206292588918163860855728325545719080721060680155768153552001436881225416489175720415430659107451268132476751629002210073816569762020254591333779703121735246897097226984865517929892891357375226274876734085289887969808394650552659299795238533411077768688874006893260465343227218969392552565399632796461990174959360029876165745235673171615861061459072854560423077275961909282942866069122347207285886434446886109351782326096851679106506232940780493370014470663310590220386918593039364797190666445264608525192105997948694326867457125427731198535126016524132687386744863141698556118896139466136861468810294370380318962354311317587779335027894319946134035291645290084787774141189866429280936356759875632936369914457596261061437723840217365507828530419350745027893513737653293463571587895457717547150942323940580983301795001350861260930418612083931226233877662407621987905982276691473085047031879391179947650153044031393278257211372577601090277394373923299599309848269366036354940768437239585338775684791458045214559674833625433666909202475157021933817600556977837354037878429582785857470174152431145578541713160939817131653161239154975962603132845363498896892423947852005554710483268972186193358447521914910989247988924278849846225809429997073197031682840697517746212571747914581837782970056989864905590449713845961735349787900473971476021276774886531471881540526231636591449115109898118931735659955004110135804742443145208091524777865268179301561009377455382742839978827440438859606893990710884197835537382210120968034292991695146162879272255552871244834745165799069550467474405912215557693111009163842030703662463626777856900429314945206121284120608461329983986280414510195016188057395637179261838818437986147362742626751147948436350605939630245547438160721047070369614866353690181831106766198813381848335383444191035827293766970682938697098537587815451607184886972789546964886306863559193532059433307755180860268173808683414298239990151719014778288574054524646269756024968052900420216218277935822154654876656276399971635449803984057292709888369790689978734418449176373085764702947478827571655142726971777111881621044674845978020089093102826898891423700034616218603555070034155097539330593869104967608198816565437392671498280669242607236903403559150727781384551196073613449553093210958985313789088872433778877688407890827653829566959058057709434660338552223749026427688033259661214463620634753829753053058023117504429061117474578077491364381620665657345640603829624134033392520757232354819162341859115338846545711099652718699237688668700594368949822537579156768753442815804654204080119704202413190422992754522979208901252599743263538461060103531157025321281590341398809002614551323521313783388901414917534596610284217359255162121746797995310094738238242724379175630743728068244547899258555240721504303997456949250040157554778292426066126672691690932717711685302745133392202944841964327551408418292675340038495448048621502224573666337089372326681293710156515531423472655315588089315848116556799337432662125840253083235069559207527861819464602139281755533091473933683627097714690862591496971180866925041086310844672021578961531865015026937744919340006347954113634838546719780539770125961640626440128819304141125908052325616793794281537673987909709684909075596406919564625739809730657800251156786161202209645224556693743320864446298955891906938594837917488728308393036717528405623697539322862703877542440177613784104370674500053415031668174365662229099843162472456869650276902134599465618455276037662072098878700892179518162299936009157320580172055147001938512563228196403368871575790124016430116131692024553912952631084756638503013242433366723269741051732160166669450179342832147251353693617230233939628927960919429950653007873290923688150927817234389179684726120003942476408946167436155050457408285310452657867769722092376547017372395877287452221160274130181419866710543764432187175399701753574824020369020022617859325907720689636801979828171558783646260887761701520990051704473470099394097295719800077151546230470835430296453229360909029273011469483094590209700858375803106828481284769335462926104303635910569123291803897403651141863443945991246618672300292975314870167156561193232487300496694138240545396605351540045181785713721152817706315832170982558470036316366959673688105947001612836046924628682189023033738288054047777614955504258087739869340643377473197493201288829519374648450918527698793514536840322824269562584691141957315857326005073970294306800617580643862199171382822887105802047219982700425246535764604570028014881676240728442426000058376032109998154949225858279788935490587438023879524590893588263236878795339971038528990487352162754985123932084590481380092551672234465789605687760916587098773341237334873006797087338281068687734499321266611942719103923756072211861268127776509564305871225253129400456841423781512378790487396048020341719710746870077430236299518338205308071620152699582316448576690748877505087455178356061625900071345704205434127227329445143741691901501266663315369766772569196275213522582497835450629544181262921202538072933959910681218700758012189107798346877434363328199236449032771688403200375507025572212187015486174286276523970598375152848251723089937089262164015642677272576225127739374157152034234343781715915460846607143635274560237192535118302479512590984304606072849405711904250314527066481400315514417148096882532024953498380184737811282882554466087893841113129327429944440395062896144897960872787277051940579490034001319362880551333452842890012786403424719858541128896643310674797825363335356008822615570019283154648476473260460005139106032831754173173223817860943906881463187531510050764051453669236547114220000784262918661692358304925424161757140738224486377261928357390619982892658854745576529761909137184886306065299369623454447312026062541616364897562599350215164714627565526266326355461321687974746347087629263250669171250843675935226661726172313217883409944557564557643783480341032055637684196185240452710543864715240044052245380526856294848559468326237380346067621906500590795102077837675012256744208448012247033694746041516292802165191289598892111942639191867022788163790744467088561485576228025377224232057728346755931422597436300166049158960437404453346068135822550518513153546339699983728034296502554724331521699466160960823318641018160287170299965271832178792330449243619166392209396108108544457000591712244463380171383452993968967312986043244790119653179565918698627777876535361467194582920759273656448394606715486049280234766244893554640806671841442146866453032164549215182257218450846843860636215825460493334310861574889558790733294475860096481305300326508580767396315560613069201298534858475432144652815421700716719663868970308588408705512024541634519285720334216822631389724262124753779707670494758395805779686931124239253881831356305501560584025763855327503788298272713534336822303478712832577309309575450631042905557568613097031374416744984367427563529697166043345540162563524160176679569028237039175693274591873440506845847021375071032564506662451713528789709591255927360416438945029524823098162595746263062291999064629073665000374895066120297233914083033138395117172507395958284143714739931647690084358736309447158062154566092681541988241015614532605585418433387925677720506386239442802764483397437285023709930035320310501824124504830685656850609398722514402803331307032737692090618357742155302539549643616793034339149172634842202732826462127503862282255387802629458840939547151484733550421701384873615900060958895373065638945146847607363836680065072479266418229791315648038998948307678864349759465567798093365975531963101724230810261923130084474416122554201290241654595707929358888232179031833572023758214377186887188030279291906314374348472308174341268784877393967771057358613187799716868830349520575893798376130538889139435487044224473735849640972650947373147510213325273196867883898591408096481654127511018028063656997984705437927038295717183894995679041322742700526013205304800175991620807123638094193315946408951417022277435747404408314538851731216841567723016492828414359328009225747238735955079079347334947435277638531128890494601476888482369019637807847562982067444547331814828653771662656373077566702499932338654914183592953111199816898941064031449554219331780552932769360223424433216740128167588676052380517326212032313070189815656256189110790389966891735538916173108179442196298176716795851864609132635130860701482609183709642252193253628072414405344886589120425713240726568226347263200016332124247065031012138205334040613686578518618533992002839084748679945325096756206877209097851760136947102888496971871486661809695917642129939377215226951243203616607160817224717387505902901498149815561322206779661812881493532682361671208905402081783386696663548401655195824111160520513051129866775330817480359925957470105018179047010086047344666016157726254578935855371269249556873146809036933208635259214644150894279168572508019014813558615395205404988185404374009243472853349350047867190576384203212184996347721805099043970909444744799997160463455676751991173297828151135846196507932457517194166880056310548154320650247546395215891040388681511539807538646980931153234739762544631267669831234102251130409410142060224352145045478358354531682432468127197177632550191897013770346029406461598808246792599624615831852528145769919977385318028987935573459692114860997595216201035048422831508228775657245267365782869934513389087242053492918321060807294240623504185790716768361496957212377247442345184440615579782538122220178304197690068291833211601234275942285558287153796953482089808948316466197629509647165097380220503593028530548728554724492758035186112341562904714533249064008189530139417638108240465330921929807930252787912015591272642653315086675457835518420825891843096590716353683165264225493387895973170836726094460782532429037194292481652583655764994356531713817991250221173808136254714559938947530972703528095799099020909230253675626188463411215528763602066364732430617356706905971508271382461570591937605807425458659798363708143825572883597655702038029588111756152166573051074182625332284049062723312894774304478874630030479646626504884149250540398516367846746298321716325743643250039351944409514942456409673278445830511112853132294112359691877751685447860757552271569901830413014704002380179249524054271541746087395526383851682862698876841252923423756859750169907252571706191167779270990259883279530908142211852897386224592627329355603008937373954627827271412750151903737943484594230988578419879096769959337375640264509998401815219951080181887249356197896665773070724249477787913526763559616555263533778828687659169971111105691597153708381723203281831248919660095177026651151349226839216661155993063945687383864476677306728322309755964626460047338354444099991805336965661718250811906024630114186159139219069421958233507184145792034661099440114920024821685020678168052181330229414600343729710285112498407922430437869488627828396773744652531751395870510100402881849345973315913159092933714962810562962171281444383320373342184936369699835283630128341763117366976702108753302743348853823873302287919001605024511277131401144499926442320052372065775346037233914898003921989503303583296532089319183940543584309475481956552647858389344674190033282566385468649768943081188113023355871608727863641241572909541324404800085145958491268072392004762933947039030961110623369840721193562051647634259733769593093850182504796335226685486743713291602814300116191395066864268687945841824877403518867883055613248410614122606599710974998579070984870614324372788815945777871042417775064365317383376346892637935190302104150935394233206500716923354674927870458422978788179146228243253647890604698149175007848056605370684388579541514325581587098964222242169290379468375022959530030361131270280473484394541931363791834052969089475650707997693258990943084513565956056856236546623345181883254363313818934633339204470962507916080251020800060337811302808409262057670432881414326821055927937152602047179705313570331704898260279920113260572305555772695622189446742313104258321397550805507213222793395751899087823303585734497169279889352495939390262252022215929503193265495381702275751184721682961040122792571089347225519193980981319662278346678894670332842897655144336686991987737851568983490044193982209913432153631340142046203927722256317327060150226199429688338077382595603719207228014145597698181034565699396871617604829623952959922227785321132144527987553805841714949270081171495576513326997072958593043921195515947825804303471552577121883935603783288079548826157914125969924863472682487865342856530908527175556100449651613994320522035628261222820693798256500073381646701728455614541008588773335217744392783923124766641229547322707381915223119858466005729074707569331135151773011497741287928190275238747562763125579474122389656174264502563059180489889833060840948417959978888148918664986334320062408897321829831273786507834588483632550250811309435604999465678019850954563549194060046580315540353238813945453439315453766380306675627137107498468433510616530052183091607218014381949888961255874591691042453317620572605429605927154717899117593444865672990841809115679479792222202095594317002809367749674680727746073080284348187653229301900067293603058542574400161467479991002979553296064407056708323637135563980531169090469448163152620796093001540244572251683514399044646108074742088899540518685127345273422269472850251305142464503020290691721027755039252750281970354682981387827861771941672566096599354599328558200529092066618758634212142479614562892342995719703075571763492381131960909845965370144632656307260019550295111078745936442002351774120035433908524216103734332245864943886939167605153369712233910742175870758614933217487523801122158917330987475713729016211179110095380040105502226855245653824070661125389293378295270609525008265425716472716477130020437459602684908233904426329008617347605109751973102920307849788698809721817167257412635461909699365494598850330872454970771748761664835956765677170374833924443489688273795461182228943388313007679176662240626425847011066222651829675206708807421456533230003904336279810480010941346131363275851635430481240039206301408848735292662787700134579936616350500797493468956112124292313742135188708432017319890061060637602803786659912082650088714961404983357547305532781715451547272141301358715869723586322897628211402135370687547094847294615206146474004294856180864462499610092340265495185739120061859769563381050966506709480007770641141874941604292757338099590603105005338620541890976543619301861353495828816401495988815782855189520816189979855425931512354024793776044540531817552594081225590419269471985550193971412633577787427820721343787049902321906906293425618582695106007912448868866856162932727638879921205599859704488383559374670090181734114513311445661724380034682045260296999838296090583533606999144133696020674683737604441087873125601210208784222270818505147938198077355386274339135632090619590568565833402164718127886144568988897684611330865959246351934132486645842136077725200387122036964794304370761307496484684104560461276193805312278035306482874351233228222481220422708840793751648635050490239498796493341443167721952503672570813617271627097218088628162303849646196579664607773632945583644415755793560723429167154720883611568143739047591220749360297122802875004823849828157011306392039069698887971623943617880889209732567278025164786748229575402971213055071301697259689747553196562466472147548845201255805243920307913943126079595304112146623108564323990180706338210847609601550078957848297833206634643905891228472229120351491172124866507971200639518806580349383891180898918697152134289111481857417073008465362867167386389568045656279926150905293308751266375372580535716907884788847851049965088949766109555777831110590308821729723607995120678168129863550446919792553160343326009363997642881216094622857838655915446370100099847711370611451887574051798452324623095821941186428124999429134653850268271761802828463311776975425752220561469182180123812267906722099575780537236484843996374121567176451684534457481853790174268481313463223778315406047915638848572270801969295265510441589786762882716117034967963185286916432605936182673267502550050792087102981066670771949360795580270839261661878257856279644874637054030032683332219687437707089663448618710745332482388967648638828184429884928922773510243388649864920255128377608751352371369741755036579787727633038918028204577531743733961116804089718888064667244424851981084568109578832671381519549424137410885179553603775210161605233276566301134871487272224622474005302346501254971427860188924170378598270642660094406523579274105121722361366352134562810428017275388423694501259948389968121846751495809976708455977656146469653269706276379071663329854866398766403732676978613506715761764465169926018770295584585068882776966287015631939403240295902404653538583840346217674264575311730499181519740767960516427131371310449510024153847694736131657862844938428033362580007277571021304334802445482965070851833324765063422432676208332788541354997345456098107238705352541539697938337225790310286665712296127607539202489986409809785079315278910621744128599326474015893443191637235245634427569557490716795460728929200727083611290470530621911272327082289160374553565321111570919156517041410926585699511921325570373784982307735181529916615898179106940441758375559958628777503736427985886721013329970169760195958709373271455736312312837329633988284975212084831136758839680866349580555559539783712219919263745578018915662120751237133356314857300465074381327088074325045706090006919199608675880852515767912859965483524301294522332679479226140956120747592208247756043524817575120913962228582801666359773654408555795828646944052477975554661577722594632830606693398069327507452756699412659272711917863009327185251431318199597863029854674807818891374138085425958985853010670934839505300527469313257769261258975977857103222799482599552992580515841933310789108273292245682639686788477340822507910963251379740070602026572548452724926546007244453521491426549208985275948577269862412166967646151103494994363387467666687554750634120505908881789085799741710782677558362814746273991821146189864198976155635654336388756767420210188372993341366481245219222649628708848256468939297010132230463248614236700665694690586662805185391034419476918403220724743577379154025555352590633188353119972490306338196406848027858398435741560700317767779024484479960031538839391008269079880390571357404571961020933108608710749435900459676443768600321429257786150515274169174830223846789071667430456818446136657971314036484775314022628700729472506033187276562368137693776208110642686098093864413951567312679518757543353063953308790994878374388321557774463148149859878856031404337663441091301672571807737488830488334618831099127924768264808777198847373329047683670675387523422332071485479015115365392384059641710785292747812016552748929759731904223051801102386671620506227071957500580924349748819448701114041831830458696208821590292209636391970898579579787629342338215037219151416558587667947858954519011149229157209571814566094511805232820618235050286665827688036952441057877745643997186494212531043367062335060649454505643303898402268384769495656685513140783736581983233265032823089367209799395158747097995162973778568227206982378533157352113454744659593431631961740836724339782766120516118842929065824991406035204516145876633005115924272978345909397519154061674241630644723658210116752605976948590265560947811694519388640613417113975468608928436077857197028842205159212689112131167258551509515024326803140019028106435786030789831895085899797769082705402259430887492629716644471112863216423173093926411993990742415090512360574328225820218442263954870100662902525922736035900198743977145903302215374654059614680302275921786946420951906298095706573949379257515737031756851698146897879732389049011601489009717517316708536670491640906482990397615064024515819528948458407309719808834704222235057422689234991504545245637257883963615286802638173822352727278868378787583533378420299980554224971046366762190041498598482901056599692094430699811441940098930891978740505676822658969103110329373535766334858484329931003234640017436170170195986741539370948145236181203905773674963459866591221997029368111107439324856665510742889923859697911982105298025132409197024506732858813927958899376250999388071128255922677310557717045968782593172572092252017566119837595874208046313176583047100443874214219367420799926482328138198078535759299828512960003425654867144133566846044136659740509855838929482746563404131118494577229483429154980938931185202685268195207958713961232090597136572993584632786434786738617955333342240181466453728510928858972976713863120865204473089794993731380106817472472485100764591607558702947903326179965526247951543589502866459452795777789341197537102006080604782639410600141538691104798746207281320644598796813894148608144019849727579433757044314046457644482313973947673512195304136658831476843951796124873871503182678507980897612929769738799727971595790690287943693227572310688115958924921578151029627390741856151203288457482270728636828602301792449665419938344771255143145552953740985332881619936214704051419902996021198862128044628981281173430444757893244490002132823887552099959431976874566697192383832871669741530948071418457513072388692330768352789479768038645650039955701790384123274100869629305771061964259889269502751999084962201032857629577599199787066300147197962227338004644876387830695359897259557229953801550789547374091907157534199812083195653072461455749551878545978694711400208798937546482299007186716212863035518742140211024088829676898998985728832539250984883247618406175054349684721818446113161820367975872166798502357881923173241023613197986534776298117726013800451136226245262839407512674245816125588143392000936894197169648946795585581681113910227057732977448528419419742739701171001912448896504197118798917532227340745509721887573378334098990786992472473590020863822661117639880713895522327245396082960061941798504502392382934188362313047163225760433677010999521672229968152381371221313225432288734281396347064434195730589955820760672707106425273763656291102714788509674408764009358265201959538965791826119782018058043079964768546608924618325577387635161596263707258742386994316078396591311839824739319226572221888769980717869242325990089534129432815828089349506259534063662568227686601380776709533799007112264116317094003765523859422372173279001411648110738991222875434461325463493016578357613356334695842362833410996560571051824372168185381770452364741102782471587622653514717463168663715036053503905496397487847451214663163385405320385156162438727049707224420006007498857613412380377125368508448725355377125850904300548035777828847775929387757967452957430439375146104029987158123368815315206306603815140249645556535919136239895151612670046288900219930215821877776253566621275180761922361709036223690476286659904475036298377503022019726994663072561689899096450284246977035681093366561406984661918619084353701407754004358924455871508514153020949326996242655809877957943097305555028246001548967992228966209205634839741170646649647883238397379996849824786589084855752737169763710184674232928893244653666256851863635816636126934364497469208203753035223535479581686406728594650174253422514787454918644074201372673045765329577655332577551745393819671141228869725185516151522998233028034708034872512436412929165635499654693011720011602453955699945135240531083747402787449839905107181856341358155727381769897031267674302951724318215652139283155056235055744959927008497426468654610210836416406099780710599438760160399204232251782701332926827344398204289921954142320654525963575874216005828303425233916621585282766034119861605446887195485463281260824093230143693201617336280915414624665824902636539396511971341302750610928286306058171450660744791378698777962562450900138047291129309894798772040638744941219992098534328286984636040503200375190764176297477636125767762340329151129912047462611796578346515883623477124633416632371041801909641756127677572274544952705202239552580574133536040510640283114522710003100567185477378301369765316298362968426694246605875495790034465065378966939044167807348392442245481600890930677619089094329386937661865088040915402052136581889616188129684627056679271597037490789222093612893480079637636407934933758272820939804112604227870969925145148086870684643056406859338620991695141235978890447119751155976037285736300688186790420769473812532780730319722438540494140328234204493817731329888752761692128292457900717185937064424111902112099180876112093444339072617474791940046217791593244682877048995105044766554945018987418892491604399802964566210280116785022887255838067479079641233991891138050917243193309570015017116215064999359910395948881686087630639741047099320005603089570249858296651949116753244297875564837358201844944776679470410514008000437578862373245878859530707509779345657258939030738148340595010777018292172981673249417537489804404677952744705112410674301557456897128526340513544622499705826178673598497477179186789081360781078818414682994337804307509972318167600914638231911169069868390701751507929090719878504807810082698920990499963614870583909297911285917146106322348111724690582879520039074339989984682974414512313033623670069713641599401477945195644102344277881455262138288737856001550739465622733105217434249813299169192837206835548896166089503666472552707490357149188425453874696596851330331872412740028174034065945691520108248403615669211974102651903495318592478995180899190512732526482722807491194627252077656140496551642910921773120511963149996328926715143806129551566390956467711116741197765375631515623435340789665460695839224879081700429742677742614161901379240852684302976634250044509973185447063575723253935916396318960115200020590710734515583346428462487843337067960904967508492255593084557386678068137021712550291374548800503706354968175434538212568251448508049272945459268625907883990451937826585232197894095882723590807659704694823710430841942308214225192268278033997627547059887138618363856928146616834009477264699256989106124804252522003147504504680840417149641553880134747839586873365438802842923144840980355846746586688821501521121823633031790033201209051443895999695404191768395103763469125065538611701079417498580619761315801204307635452362396760127604157529737544220120835571232032826608249745653602744686135496192661260824568871431561028917856057876340653200119018673203203505408709669738682093712004295254400331119979765598191695257563102741023862148444791376457893705532584715691194489823707485074634760886185672392348548179438717675210946261473933825196487006814539805469556052411480374175145533671062248861134731401903729588530740709583841411886062737112511551111162273477216579122725576086453846966556611129656918948230800938691342674165777802374843321638541969271493690335365517003181823950167445156948090635167229400259709212198535118893004865089226268250698402308699875918499234799896908158445318768281313480883133432175580807288210223759371094527894232982737874583402733714177447317926191399358133158648060747820648657211234125463966792270070537506331366761748734593771688396742751578949780542299669044739386330765408526641501592571839612387139998506911557544545905750633950167578288551428593070400212852794824623958695516224801860627967975974535144577639853830432902737629238287201742915553612751685138513617294368157608210179515608403780722331842739527471438155862279762066149980898527424517191853313879753800070045423238307116289105741158781286375330907078979564311703614001518175982367305785666421125502875683955035997907073099664919319685750368282726639053657521868722614169370179116005650371501266944817343372380846850935410561642094765085102172698371848587154566782512605127832648923041027597856912758468577561016533979496983078137106203223152212277414028222738358899240111830169735880432716590012619514691893359825173845132786114243158610360939986029941372858229595266021948517784150582089040379499689640500812083863398633182868284690260051031639170594760929541221058395613205267834018209516406320309522577918784201252495972155636469137454500494939760217790212223413531340493012238928081656874585486340728481404028646161477279682838024572231127082166425893094176267427785086164305556630080759064959157023129601391837991975480730947957188728865843763836010148784929590643369980121981140487456117023734231650502720454284233394403022286104676631452236628482502592924176069282628632337975509233560784121517844910298855208431509130158896182508128293355933988473461977946813874705482503132672722155018697893328937578492739710106476397325748180300588263485431074930028061602212010690523335472244219714884777500357221787176007340466204948932967665482307213803985070636431292227069955968348368066117076917172364646861557433513950717265771462238556610597602720274209758373665791313616081043156065064676611655634747497921764457872783326852507826712824176561789070210503191234049446935292024020298928417374701160776428952179447434153892794073793517460013668602240748172879556957270870743481830731556098058700203281919314846663569462984018561129783759354849102784864709610104344853016470888126575469404607945719447783023528441758922411271208519593977003258058014322087191862626190115090387464473460752325596207089817713656715375208993567878068068666484083421127742732023481391722374365972179881730385356907676964254347365808343844180009141864897518126357529203880179303375731998226844756686333080509501296591271262318300125581957783596402284672847329785746729093788495031066378301857288862959549384793571407101660646113991557271802619273048366084257267911842555892391764198220684562277397824102733040758977382569295232400837404195956651186256635151742700445055682334067387569414338648697509889490537660359644748621264684926522942707908801629304522604080944014479357101478512159963779494744547059330433504557016322990940402006572153993317614411242345519948981007641438681280870911138544883361808542253325424598077437268198030618847158758261826450167171728676378304088297808998940884106376222194262931129868329914603610195373765464699229762643343352665543738934787466442979111570137396094718888277190120997624157290987351449301805579596186470610325514103681690932600831056144034463842030770433947144016268630537934403496937629475048446264790386611043315096624329972485348280866396620530407801310991097159823914967341390133730048112777346595283029094611221524917066163515188570500436631103507919545332180990499385298337563442500252227273509398394886798131458555342504886423175513058668392230447742186962333693768704961911359245011076915236244031648269790229923373937574779942593203071820243284109414557958004519001554420314851962095279523921442178653993351267935624255383514979643975631631249151811545305158808612478203540035458465038199015478329014553436609424065654215150273535801372245845951157438331624857647925190325970890154142935760042504019672498137549788464354206472834642075342045040054883820698186552611423293139657979577036270508966798275004658541046016953835209586090324442304213206648355278441555766139843405328724485855312027081502910390533339915651174334389794722400798263606742021536088983242601534640604667241313890562060079008181034037122226831446536124571932490462048620975316302911927039381804596102356969460548692030596834054680900703996420526186908193943249395333827974898962610082904232837881588064824207968716476321214754885315786368819983294947172727322011154344266081579143415018833898884024244342949158680177672541663486772240827877207975868309066484811026111441911662102928823859768828398569738572721796689597370988772171435641455290018984965762638370436200015853780572570137293069118853228925544945162596271825613232328471656221100314064791143128122686999295592489735798574389026246362766490970553987679409588604863878646490388201735768824201820189320902288843329585756938400901959815331447640596600714641884839684439429356260440828766398509033159244994223086494607575112301321733753552393451045891905814705995413816093505257146875424034087278136809680220765353004761200326657674830927809482217222119816181872367834822089324393290300802462156274084041753755468687378615800778678209422919317707951724875639758194221048229493647060777857620194529257547027383035783218349844884465105483417705762873730048639692093366430717427711964459866196270071676369547052143563594144402230618107120578235532755128937719113398869491450098069632803904557472828437099169114687822653512479328570453656081957212997031124978552910878431871447805713847021646409638308871677791965509867685417995257932668884537287119968206245371124030049479668050602521048343528698295039119986295082342713218613825601235602279034621882915587221500417489177673165654013773726100532497239027299375426230683186074940571234311092652559606517593961873303131823457682958185608612750642799400018989672345785794712367128305711580083022574785938464190534429938338489368192343310551443636326058693309752486871737776111404048614992246660813133638001983603997144551408384026129690528684013938006372840224263692055107146915662879865542877156469620103573743080157854554731830398381175167520973747437924779114894985598318886168755670298032940273946306443303451709715356442321256737066060164651765350220925007050555663378920353538380497454532642715744818655123405151452047189146893620409239291032634541183010995015453566698966206884032630697117188197630163597161495989552169253048756727097730437088908487580875651064725116968685290111101784810563462665998355989391842737949644572870238402410959035463050584067052464825327291965880625453753452352224288705276571684049661547013208715521335650718573489864578029505661143777164777067487832254511202491295460006308549812382784245662102414647771588948552446544870725777027983537715215552585612611610538700085400727324328180861538463802731138216960081293755720013559470663295138635738546290548052881187150798406356827674505126457732821118089435219480644186213789407063192317840974696684256663512548386817147381238270620621255088022555368872643390561052811133288029320190157086893787880895611738331747564055989790382962461528884493090773743050449472844772435476989712917009369892634111694437502915219678747241755047862656105070748486311420131192578355565780145058315392128948827933576004055850192404151816026522058085416400560389613254982220188994969750438126900712433507512138518706628851429057654115803823671461131554519284326375578834279160983534718267625315613291239885743081165394015824235801310406242343538200158558123059182229960275152793525295028605051092218849405417841505325959243906665137002454228940153193331422497629662571172920285053703202994356531256887365707439069046885627246290032113317587484647615107153472274453290352080422715905510579979301758494648893420313656281295266435139008250346645309524654977353709275552897815513379821619592074280369609035813202513564474013183783155309863363222500737070080451864233007409807161195211650461561622350925113128165885937285216651145291782319343788766269250727792754555875701339480888935518099494020849790390275393025891573985761558781090977738879061158083952339418722004215912738510572205952379029126791803097729272691638261008512665827750393318289497179835243147768350601087875088922173658360046817199542302318088665375059664092218981872242936303871918697273630741046815617287104000772416729036904264720897700730479231113006345658942802556603042938375747167699467260433805069355628736422026578312465918524142468452076289447494988449669148709063746775658298430082396338794780527092831463291071227942449957971160848372934042308616805088802878662865998634553353987878204369877509424316486944048528423926166357640108997765392372538730265275055542221529883957909330304629045934372045125879869509297617518331315832027050260717796851951824651112403935304971700557788207041202517280935477327543427831826895418729312446393383953427241161331900831090652350668689757799456437494186867872410444111338043784627815094331920057534157995450185847198617307208807149330232123806640080008068648300437842778692151919156326834764154170351860794496139324939034801430251042716763962861617214255614379311722854827126456660978045434638226395167812965031476352991654821635312737492980525419297903131553773414341213593304419699893574530309593765968108300592881757421436227409535341156582702797107786556346733915098388462102716793222439104047521672229748535559853488636633452700821050417935292697840249764602675284780035229252096107888258400502460447164006464839833289020198647704758127097544788259783760907857098619362047712027246178279088145921810300952671493481032980869321155401503470095485306860994009788185152193493637599875190823817542994396370695103418535741946110174458903648491359309162238777625991136830924482950208213870108952979369572057012078160957538742782791492943797874165465023493958572345631998923293237364620575899278083926546963055025478181571288853936468026935368894105159347337756316069001998905932361338874866776268420682857502244173758682888677779344356905968114692755789422010622543982598232002613980563547667354591911498379850051216080189201641852542149007077145336301936768012626515975799210727111905994942482050277669005027976328862873864877269190841598788480819219557324281552227678503450482982244909742951937782182146139831668754951881073674819442071662252847575258202942151317084893322659421749368739940138706832027131590398918976906018574645146912962284726961399925528790953113110172044515478640520796120656168869892824042136850379935164462823272822804663508120987725612441631736301842891991003372088307487863663205577541927607374547438350868788372001725595622323767169146324727337974699836320967186807745125953068385932229668803748246697505062446928456501160561387715949909817559026528536785066482478350935319221013267773927465992691056347782816088143298933570029531428043858310890376566022273565998951611110175392134039269209291542015553742431448917203129290330198120139178422989637450907542947754214256364537273145359830112819843760819450360220003451438621631550711447496160168824265775863651166225689945824552211226972265888278318137275969893596838160324249189983199887104083540579140622962344081703426721432308247728311090158482694758514537203356507082828283351791221959213032591651241216295086487434112748982773875819185478310253161536927100002676298039559805076289356612677472108198403251240640527244426907065459319038717290671886882843624705942189066330284102223732555798805801827403813548522969017088793161996814639351729204756439717124862324585192349627682213463868413822783165700375550761310644898952877896566496400079190242887074856367374993903746400321705387682645606876201029174285326958057229214660795246002991110961283132903489685709254038728909343237284195755232092767197336224437582338151718703796643114073895299415074500726749031848569994709866714316156689225125509774809309998431837608762405596077891211251461713368740385604276548833818221801398513402698750387338130704886062028110087259273125848298482486791262489091566337518018296069138565632664578677015772633738513800043803342976808013130369859716884612365754240734044294600442122487029619040024811998055321983956935059757055816483405828154148446678137396183281487484203270646856948129430185358841121184193554730225869212636924832470841770234454862356912955483442291457305753821061396139958629852305935472413091945971806711823451471451967813081409643622036486100025084637681105693809095922129922144093039989719336234480113245797729941626999033500188135266445188370145413257187782026448424681245831937246074345618150484352107609148869672703551980961528943118187989553614105889707452817001716205948469273477077305019955178752655440635923459211419460358737655884686259330650158352004968670862840487486598337627305921093636952615482388447428870663414778957450106471512886852445919358582761002354297390378670429686006301442712227536998948569664022676709719590506687290577731579578897749312789604997313558106696039004430991213711083924747399476363970960652563223744557936855869902162464559381242729257369597245669899299497575421581680313059663576785197350366456953593142638703507440231858216946206833980365130780494275418866703089550995666788511981976914590039349393428916689937161238249630988657463173956550170846960670056213659374054793749231242522168237875028200881318000433383542350913892351970942286703723859269641323625616679691303676494406916881690267479077696657170019173826934274061045706368967359496755422008588361959518489564576412946579421734733289078181126589123468769557237009824795208217860826606157586072919053679217979963609290691408166273461413280294522987898766512216874797106328067964027196650547689651922855339762702052236325654183346971039473688166685726350637422385763834069873550791417677530562283723518558147103354806524965673425759908684209712078729478823600076896333383652913176488254110385369733198720767178948461025827904323278807289781285638393615838979141344763340603925778606607398608273530911351331974938031831912722781839625806824077504016340308711769868009532136772953033422463638551183785457602295898227479339484651425531936356482811023036648817419282183182822466152014643423478687850559211026952424663572066329232743910097394588335822148243023275328353580863948907741575749019865024873141362152531220709591435229745455852211338990810325683619417193912483637525313233727037378609209041052979313231981236584354083910266666276411899797395441822869153511077704823787722655936333432286408840821919278794316270992110169701054948632791310716553626778715153766174594836444545957448829583733391821196734897729924526516261235942790391352373086026337345137588814045610295042345710588976740974954791451749214465720658559107191048312900141925867715782988913668394077716191633733945531898174964862726286286546588159711521543021231656064649435744249066439595400473738606767096316119455671158711211376043376199285670479473803247455008060457064023930206077222807686752850865635255552512121933001002055535760203153270788572713896747748202298975397773363839336445127731762977277450411346002660057247934266187194225333146850456232076482105211906635808799224568976334009536860838246090442827491649884259071633148376418615251189784115308185234361952556655741197031255924260838721853523301491783842650626234955799679121525347862645268386418093073315427348716790355253936272530846852117657592959900167799652072753723711156546991470903591172148916514392949396244974123203562702184316215070767734947272973403714790038983126707017671918592635912817199922814608928121978216208847227400477552140292880654276615012799691577079403589842397522151254787151396160597607292323295749244899731218352686891420620194667737083012794854055799111449170663285510163128595156925666798066228431263608746150889984816250727380556926310926645351773379479630395583792842364724308576334515024609415707728706710425258759389207377911203335895991526452743220950475188465368041233668052847320628560566485026860859037098559302318755502934990021077090619351069813529358981819124337305300091604499842188694703209454964985113350725939913053857299751741843561622351848004019327819537853753968914242077248314890916357253511605194823724070077349122781397119883480913241471077424133232359405557706312559913089470012458516690820242065185840358428482186247810666355962351646459410539822179966951678522123690729534623015433730541764120662234092904967876659839544827135160985907293330477464259571733010561798508963855476696676042716808629827392944012693969980870865017740061692943470804333882537798049132079303556985794330365364775189432548814780892051164945729186484466942788357470092078086770949933858984737391347780722382053551085937396785746824184806470348618527086632929642303271824036546328165150927936362928698570704650197729779184150824892577674924049443343089810525577823081978936691116973063806949027764095564551143032917574574513293280816162620027891304662997613673690867526248673710513945120833338484710117466563579849646997641353934641814230589184942695646879109939077793078301814096574714350682738059531598300061833039143012220228432302289429230127958124581261948609193583892290992721358791918920118711863384982831052902619372236765926158904762180425754027215091256273954319376489710048817197585796080423067835763528615714835999361451812746041143851045999442837303018736110140945936687876549353915828997927273593499771945691467575464099925620321913739257200518196663576025267756833066770031026050422043575195076042551926095725271780170123967478213636945237506504329811923617484958445708353088233867402730280786737583126589136657937789190308972618850627613968008505914501671413568501126862732426070923589382068402313111047227578306770431919867732258325139681020115557793238319561872906471904933675080772578133122491275751246966579657032651552127865484029280911567326111739865531368397164777702045657761283835626987829415872481209805814341896506681754255668783601156603264573357747535074266413215410332014485045746707475829911786993329143607217878927475173781227631290559467919376770608928125308292657519835828253921322481483818066756548358710398356061502721272279752625023322492796943355195511933631299593442647431093517687616557485150881736572874676565707601436188296253553045879770285626775050332610153747889810717704964990672701002915447974653068992035940813918434310514858085321729341964276064311034877203030549355965928030937408113039528339114059908801878812045278500636169615955119820357312851233243484301119466997419447078837379573405645613639550262940062245329749377701328419310073190574145275303346576299531990703881102763802462070440761191494555968459087118615663244685351357694035493798889428081541337940217624559590017275307461518984520386646661110876987843072091603668034323357364633863748387689430665610039332114157201094755365613724189579780094176175162960630328017686747196576893603917715240619675776547396678394064580074532668496819838118103819101980003585881351525348844031781287351726383671495819180166759786266454818738692699844908058739896595355541810339679133808863697872972092697800145420313622508328654129416048259948038775237620611415685043241632494814602752295525976881540066217537735313596752919899055364614381113006200107093885029974360563006925629225157937396402377035226173171991186226437311919075703484344670507700134252416375125632234042332157519520204853440803382790728939058215732370396115374754521139686806479844376195076408688948322122178666273710416605147353123120704969616479163548654185269044821763497892245013722805202928193844057245620561457781575571934860667888504723055400718074261464379018373385815956477261848843256988050594001887758239542885781469402059297004994894493075832971610920607705205967817078591305670940225940181474603213429819012259415604690692827663291786290467883500586589340848959830626178362318304480579338122166871287156844565750546383542621112069454246914229541965912582637479992700977384716377210078890818444958486839543363932036255487790895385430087272556706946632167075953435759809386371926498020681353623964748624033483235256417487142125968374904924810180561342327248911763131740118470614500180642733335258607257673483601005210147905641426773800535717126476069922620891417570331243085177054478023018138187427068938937083419325654503151583287802667929616068853666230999539227294561148534076940989368649979593606382544499814499721353031771489926255320918441508631033161028397814415732391934132053522262299346427336769734445666716109991835137215079980297696147546966776664518653535339084302071774885126717712881632144671108767419420868225749571213146899102193564452889425200947956177105538962581608202648562196582941015565598834412677537918888927636445676925347929345577938676388582080833419579254768348836080704148288011796323912795025793070706838973313416684381236552245273764147425203294131383406835395348764687746275838632317502924428643301199573110859349277381599175398821025728091616729526218934090541679553864039694547528371512921130237808495268237191768567435614690720854050697438528943617751088732526788126440867297647772027929993772910546891629115284765060017638193881313312882395851592522963517911592844540642175912616540174610306705684500840656452771934165022005552276681029637739278011947320265285991176811701355098247075224709835589313700536708131228905573962124142845673843056342372889153959287959889021397833724521629490723964126251364484350425991960938048103482577385879859865896317984595657974547176892868680352766340716620409235783204786448205786256870902735300149837788611009047104968053584619755300242646429800218807297285843078678804609501787483261351070021951973266681033607916354005404149702249014495347815698577583565529854501518226970777442099381393090436442028430440325690068819209792776668445398487131202820320628248529523828500976025049962886422394578088415248090706352612259475429965815768333769740915806826488000117176253105256523769829080207548528606394195850334518832423050928794047456349430342893851297194775480875563953798576119187477090173558345424320999702006567682464608092183455708644930493930019850208316013100727111862324694392030955992109426792592587156969234292371523638504220709243938641567578139111889471897304233048411794169116271076753072991321924542279882988500213427769934171407528369925311431124474075497607845792295234116638217831242924949431540038253056893271464250050009331567333907238168260544694046545327763313534289019480651574810046846597842766241203138796110991813946228170633564513789205615832964138424846626366835373700183284381243909383703432297302334424991906384034629908943349212564001339638132215621543518335690170383417594053109751454992404665690135875315583005890582528071145980748740838326327273889303011337978408827844051315069281964536270941048860919171557433602641898428937634361433615682721088755740661461346480687299354879496332876520770955029330873506445019904068874320399701013137258447691573189299056222173393402653207687081418293570509717409963236026672353144823273689426451826802108116860326094755416794709005386839228441745182328132832980196832828317699234203626527494481977544120578017684691622515605835409915160473892690596173716339982749890531195594517511474614567720072835370175816531427347104602843940308116259404662340008470466451536900749633551813939072238769125300297745036592470185036607709460858879587384853708730132166002448115284543227711546682320745658889576921618904266622017754606633451657111816980605298853515038414906952259500227456372978176712161180832793887990652666503421990967371187893504957593531625777014196416461799483432248408233317904376534889880305610286872149941400759962610801931660367288153876486340204760773757794612212865583025705604263973740893163989294279915791945588240888524200183699268710844889091264161921965754972279549477864801145376333948288386184891492624807668955785381948290027558351259821142193139717345996418881841405103638579752538620874597762441681736058812502325957455448199500757522944297216472236808861964682557726898628995510041323087233839921429455508957029446570012003689271697171019034416033356324993033519216715536350768654626777143194008547357474037350063663542136029617936449449697866201110800546094039737329435900926954226170017974121372242755156358192800428773762326732725962737624704856239894364413523357669735403709931600752536308542090865127865788009225689491911936361580784273548895224733787612379690484258200889304275291258583103031070792731434835648772231537771624366885075960523329786102998109643881104025156166010289301480159734386661731512155176406629419299020393233002609314965307185000752973093154859689470927060846035821676627356363503283568754619097079897982722185823488592170331890609885874302050300029173930690066276301115928382989643928600989793734561226557219011834294799986427812623017960385735599049048816314294300493481157633255740496256020238179610354213203707532345753609833830178844615114160799246296347963681271952902519600072193678128187088370567413044869940547663136100083680406058951383181061472645436646554860800580802002298159077901347278014238992329028203287395840017817928440231672932364202911267985909789820306992889772666677054026933773446512244220443058129854888557723595210025026491753249973193906746448846718694266156435693077638514553223676796891530459206707401185015694289773253289915180661936563490576454957900106365812665488456653581846109152697288484117026478937059682255222985693008087578950073455206966754487364476595448899573168452364395942910166685168487291670089058461582655034295802145678491401553173134152598771014223410257479358670041704068903384451451865576443775565471027708939868473195414012381768616682417824064436587321682654701191180872513498510132948327803826287982637441006698251351756310341052130140865096496352587151344949305499083297205991045262135643100767644491390192243123102484245280574193945078984512097481414731182249438469807750284785326446618647985733420069374175233929296092483129394308342226301523094960295528316462268715150107786855677697096503423850397788153228264305320078150824376398964750073424310905030884239657911246124789856728486501169637069381623580674427977349334279353494843581200478311568497928067854640181221697698058836444397415751953329263436674851070245190987331438923745094972445398850032931549721992814239576472675984239279414607002610377899852499464176853734605917273537696041273715262213171081519493934347010104622420805412491777847863359703629941788047230464799350652059899961181419693461181469965369196937632328376706106876140585735520466119345872592283821880939162996202341428223167198808610299937318687149324694691748071953696722857995539197578017941526273389742100731871137301062886576283475726761694043454966633450018429038382126293533185712082781212093529198346813954937141863093392588109544943421860437541401993765496679864835963402606351792843555727461899305998242047507188185193762718950236251006210100433243649993768811032965984642401409916386375140883413123922493371613970687296249073238037642073160485939120063104823745835072597767135289915324303174402323316844948987437764808545970279197471839221274249681688920410029378672483770005076123420180586057648894025575789886198384962226940755729357321100187057018796341311799123908958053681940602910421251017984381552870929823367797383549100157516782129603515834035856759301243649443181315671321357743655557562699795272591471627136233275213051054531909781844588663755027202880479932678126484799985113288183014612894839703257280798609672011743574671264984536718384424599460686647578257751231997835125540901710424335103170764079960124485529953537395595577414543652425998635746834284352637706064956768749013543047409575433125079889353680106857034550432222498538026104566202454255846470822313157834879899411117744412596538217874219601058672327287955916605640800352970556095554942331214980560689496722107057636443938568181587438379920014543453702237171275328551696106846027518021691159782126997064062376152281789992269262021619498525300028877826465518460983872397141565952712526525931416409882868519271767523654887109386288956183314429056175245033354639461923831573989953553762813433121875879927666673520340894698416624972736340806474155028133374892208643549435429721789541790468278089437848905117458808686744925749477449834828388331128315906739248957422474116349665495176103548295754659175360490507170325154864707297505298200362229691124735835030289715137378290153370763747869392731460431646160021607327331523647184849725726773743036586590287356648853610207567522040362843023610578178132135217339337629656486399008436873305247198629570669147201151583757429276003068518134007827634613466738584653497556970558938636820166264367210393377884152317479705319801615047511806211428755717993113540778346621822058216465718601128456638067739007702262536193456484779391888815818233888924332607613905560127811729500237419680580966236444111479899855120118883315223263874118997247914286641548786784976606384776577102189205639954279310636508014551561414607808121276762563559537441283213921728560228928672646639810714824384830978287119463885062097417724176301324532849505034601944114527411863656911560790243802773614124368270379245042709403439038536597811226031406677113752087802678419660322297261040148133551474400544953233482507749798734987639884629355583589455032358417694881499384584586240866892516630669035273414896419618993562792386820398159905458794059872203904466824343638469889641724130839103296775359363573592786099662398115905091332714077215146960577943163175370872950668021097556993849161412846243553817468142402999284856777484696841293752522137845772643640055928233790122809665341153581332658965118834670711931176407087829251140723847413628796112842290427423626196991827220174390535640160975180850936816341474691206462906097477773984995300752269081714161928815890837753427126817459311250522847906859828319865897171036606169215842680826804633788553579446409894687139699581103251029776467187044565499452367316173914423764624625207213572447145016154141396109943485678775599064388344655004139115593985670640463622196371901989593532017418579819860894810618653904629924991443962480843518333469024942811634713462166559020339967877197973870489528087377174203086673519390273529423684925404492498808765586622379400074984722938787187192300857786210358202357608222814988306878164808987253005976734294711793229459280127024800650822629225689131550008783320027144180466561364692425805892073836566728826540163059878516385083251037019190666283985956849509078820212033154398687859276793089353255258898521267737750979345360001843418488402181222805317481375394059575491480057391238492391193647210753223874986641329495810429953504124544495259114445670140307637821217692948366652519857059452746467301106699194238267759672456451545321399227480721688845363510648775945176300575468800363013227825696834861896471948737160925483538972730957938914504322702411333021374025784552977154069801655872406913459053805506740076446575019434800192103372447646311704950295205350925964537657322305101036575570584743867612696229447217357328963366945540112547769329367323721421009730169955546909743447525818345741244914751686338935189791277936453517820292178015530673585632965883032855314946065777577040692308068063947213224488779714759667781879887391038591649780438828042503580016259467788233595368832271669554227210172083022477297401328819027872231049388652209798338052838374738434200855164510031366927826507538267894744065569718574873810972844664074517288717473942629960693547695439678174095649731814341619224486765881824642071512662430974265747463959549334573843024209268509257942722398803148001443475574269819304809526963031959493732581045176015301291458113474203430489602611098917328655949478653649220275970599670884997016830656626239243030380515162981873355351064482356173159071866307995861696249956991644989604552807097551528801182439638640873323551319283085564251856988012094611345072138607909603661315898634968774387237043583579210391885617206790441826407609963716631558134833597414038035338712172491018695935117119016862742224406981231840658892036242026693088584886262829031024908726454512524298909958851185546166640265142866848164248928046038929562399070156252531651622141331888781622127966282648976049145103864548689816629395196441903541278001662538808850367028336043307401881411207826490404849864544232668505798444726656479503800021535755105439530940536076557936854455618841640519361794886448166319029401327458091999451601589419794277607556838918472778545176894432433520229936172333701542709829870939093233129426252183360108559440242660854465409526639335508471351402433987010066312388622149860277311526364943530779660137157564311031524596808630304949606231701494200957165378959312000688915470425382957658614253887471381983544044916841529411107544295557273402864627334965237614051526287245348443018932288438815471204450675740866691473740851641884946143120496265589947575922849251832156164065198798213826526930979019814213143509003268061276858556478024082556934702466233054141979937709387138365994270166977598819982804848752690113139014118608315428552854802000470847645154733417171745740155084940828655717919035078751923621957870693414357175594680180918008873867235272001756058830988996895383357280967528466440751278173658071959685878812958239635981331176154322993826963072022722930785075964744451848204091302724759128663707087345397998329017149509296022948245314786970037579426384755939962693463287999926398570579474863718450311531209696812961679897472513337172442674641929551607686722256442030331938476027201586075998640844564455714084196856842048456153669858612751310633332105896460910786503388679131107152810044941747642967944272435342994395605676390411624971322363125239012048531270202710933061892239860102725997981867745592678331020884847161761263435500182124248629675300347768278624374604056379428839683559687062358805146436318593949370617662645445324179507101381410748080870467605810395850033620837514894450402709143673604696114282988460311112593828857461306820123854665048719039703581311091683901208796237604921791929187939561904735931758869006608892595542787559977723203728587164336429015891424242934048553448496439428616782434219450742168456348888894166298222435261321832596916356113170151801155056671589542445278791375383717956017706439044555226843488659304578884481870895470088187631525605073437961402296743019499024947902436692657919840535315636074204716131422924655767756831413532086201370647846286030666234146681263227645959605909375949757451511121454905303008622149138406437629748272878207671248499188560235593821854778390900774444840537638502049129789112777227850263595191137884855264385525121389414147551840060538177292206422578504348679282373418684448051319912204619171611875540065199877519675730025210865451202712906002091109546899967412529440312773007852306996743942511904779174499213623547302146897114968054031408570233447942548751807827583317680996804975611107398266028169808340081865564391991644584459072391249375370034351709110422583616615322113050671169569679909610042966160952561747007556243277914479652145510367493030032442204453956827732481884029157356559126390169293677711089280281875329202847475308329522055108114702524273927620309034945512818204915327069526423549344795488376509606737291481118534877600856375895614403214961806806692154186814437849557729278567640577119205383478182421293653401952974483505964426757074784054338532618502618392705465702826058085313250496878611116064100248964383437243250145808366157026997902109878459259095758504171371537740405852264161378909812831632325235310425721237440309979226333402821232697392560415826823520212936632101989201938053264029519754222979518275250778417835593819139461279779703419967417166500433909467155275780675782014893894111423644106998099050841290461119894014791094698127657994065624303847104981959623444244479212095654617593333804746715778967148154098454971390287083570474373354935113425007852912598943353369702917202108849756599957218751171582837959936903296633522909864317831695654670029921715027956620391204944148966852057379502921308368292960921700619763751262663577152985322723216757139396522070653351734459471500241115812221403488677460215710035236443590004880255506951592274091504285018111067192456859004706329618583812479069496591605551018949553574637022974484016645862250486742373649246981119869972405630665714139873768542156690874811235688798406319429674193224567614826553519184856617798401006819516357699239223086513743081427562258829187940572695223986974093193027982840360559596862105057424019813576358159877359077577354192376947751954755757164724460921145870525524249654863317937967661794400244347766593161866592080208967117829621644487972052274872545720265939182522870609990865343711907714760308021503519673452367325383257149286170947468570308278172722116022046064053342911374684753398922172577161563653237816162628806853958349143212085504596570164454775367926689787750149175523255267716518204179105794877938453701472407455303475728107914383602458881574328441030697640361232128607660518237247123067578364879539141837870243086646019238501842548789517747442635395586899419830235493461127415858305806179627123850992097992202242140522878677993141049300757550126720526090636518133425127997010655821319748084150285752507580660955966784378712145273689930207409690914849356416412310219576721153994404360432095676312996713697153013045576947424384874914833704788008805191836069560205211609546299528360752765025011563459682696005829057021498732503580720198285613754927580709493178024481713917520553308306059559320222919877454107547965150303096412845555038795375767090805181442437079825072080622289786904587795713372863810931410377300016976870826858922616987483662648186965863078765091055099429960189139895031309865196492564003707703350169946651602471701032137004261370846584209756265849694544246706025288652069695164990252138446431598559629869860943319476315306555649842067155752160897714457063485768341666729029983361346643752549277534249092454861505498633530802011515120060114502832964604774956537167109336749810457188457582347211129378117662994538340048899281362323023894694162549026554403980298818492942080817626001557141311428285772068799146899418903892912700388588545627562999330416373612613614914746117002227905532878752752786108802673823147640617878291211527664422046969998558111364779756393842740958051288898119627273520255833664877623537050828868845101969151488130285664412758728340230708711680543102803777679282461971743020934948225684200528209958084962907742403572953310323976118495568739839444279287434480135041752045168059942321452564198067453251815530557414818703270658310013160211562866157726860789919639199163578593160079302642408406885767720111706024890919679285699602970546457674023663368455947043528945850002734639240632700203068003099358446565130038620366858737259558653726529527286673450120691529704832520897783857746088810477145939878403588342421371190221454508450998304207951007303890318336393067594401550485880312173232378499453794726363003492221533449651498028104435142205975285719525323614556612993012430811225114616253533945381050888327737288674635554754695867685205391206907102755203326252398390102078924554870032527291105952784107800617747962154629712052052572833818374601168683781739955114792289017154691364215419014242571434217215107135564373518751306777153524528430320616510027210181570050005355518469973030928238114562701134125419249785146398526736493402440470312477634613819561187092363041056880494792336929697841307796522079684240200077845614691048331965051033952264176466106361977694864845407914013192893723332075166310463750041932203757201769952784542145320406031486816262978391416477599982762056076528113288553067561921872854501650381313174591332933867848573012190741064355038984416209694753376606240529508797274426245527844326797946451495304447170800868093420586205803368820817308930202732796976406609730533897505011974007586009035751703008977811336119192106840830019778349393834376428743842635415053165726883130777298649564417126606189320759775765603468179242447059779022472419770973188134131336106559906793410612686271727151794442343554592868197850476238742385694907426896398629542185144111363432598613417927290079650372147078244413770254614525858265286952723630047719033602505916318184484764143312065535040083768340320614718658025307081699702889192793998926269801618257064832192135665765934343052439470843354761321335835343988764261958434303550472681198368947892814632158357286606231820430983030649478999696866053077417413999725113248295159221376206507617916675538948549074365846981975077597505612672791336457890067321231192644980991295743230953599144750377055108923670132938198014772442487390377784765326449011792622389578106253163243532008805359801827540234150597445835547560738474552273815508663626191107141086173013316545952015729527194363486650308515684163162733722118052858420001088383893986643099536970417722181843987275017524632750611665471750888740594875022066290470256866542084180972729196551033624338661199127944951273526783936374125323872609637145867876219731818617229939959630601994741038885361219511945924471390764145727516928791764067701742490894533257127944688081359318991984696176611004182105365867540114427204588251542973678683059432064852521969335076343563271040172452909389353563794648712694046030665776764421902242847526665047323993649857443864642578935623276013008605299407229336583467633569292780101242339744825329686429658849180355397138061959717856388641897267637681322083274975706351327525989914878262993109461540926792822795764629130582653438154886173227467060082340395692240996619603910540526832601916148983550210536064850470890826259804253211785192273428549957111443764537811760548590270588340165934176466086289063525141627645524928038876850242475757114434567959711292740880772528499953011963383231778888074083501131343431774512238011522168348902936546269811181005130816040878650924897621665185805987699061646473912654947807874777109972307414580036234765707379088783985647574590037662904651241514536917624546905677771262558750895233025359306314659166080868979163192249147970828612206183176926453619035995077726568165844027542625567204951188337880485940826161900946875324052806454520259391590733516730783172487375155122446171282198630976859252888809565152789086800649204158735378331336810305011695800094314382413009638583057639349440223557367596591542147950024996114401088887128662055705276230859221505200784157026824320544347042945087052270890840044110697766642213217201697143891375936148385557059003964872488722359949394638817680996613328323396002500043374933280109792049963942500612154891477260701885306667182439892126913421495177114014360637975792536938933619384708040189919079727983233729664721443615752017844274701733170624753001659590282503687912603007919735734512886006470187772674343601414579743958604039851376828122471104020105923590900292781076296066706032557950004715588471329938561329094059582153372661655764027793715783818700235334720259689879839386680687515608077679616933129539068627400223246494686473770156498267303968810877597879282234986698230739639235074433885576263377608741347459972972935644954959814071801056580308231924986185226567888356192479832244829180866316416997800989851195877606264879506638327767420509622599655940195403142457534341637533576195332440184116373320482329849031371500317313671796023676379186122831625138137223177498846152038773807865374930976146208084883645924005760945226563819292014987921469271175986520852198185553960875618842655374453689349245787461608201447138126641673052226069543873684801406960209429203775906997786257891655170281400945344893448907877476859675828290721707695384698452734664584202386609722993920909238198711706385551542352323520033985136511825651280529204580816654655958366820037592871264069041958976675142248633130689569070443767849847469324007318835037197358109043538362101030325881476940879891209762728664764088968272247912944771526670607941284903742065363933549240379426369730908241142891161633239560159701704746156275566852614956615796937959319917352665416376101729476012269492051588518914090005405042800764455423091567843051344496875209008594905299967718106040119783868795047237694963939879049095296412838370762613948196061931166491998053836555619842898353685501487633536306382937079392487301589333215620221641994991791510613635453953166472274479200514640759854932322266200778081886543455878319562108093215322653429257456211544661397868035640380499988184678735449155279395559653074379138970818544821189594880265184870693219607989670768279819674908544114519830143594709813896323709537351541554223841515280983315303101006072917876990516502986528821548852412568663972651185725360363222336759559560805032358349172741080017387508463054814386852291357749384813877629343710603203598534220544147406180432502859758776244740969757893084329882993199130201437297465967747369853421090711563842224267502531773362777385004085129824899134105693904706212693787609812113305718664543258644865295744207881284556239634728498333785312039548043634020435551166233255438425540574533553785577590295749319605156203070125810651174336108472827926683950202148123413472186919274806938396365789683909089561112760777232064510833719228255659063553207104879409106084432169426489487646543940981521651977071802965837389000336870548163961213554834248126666609904918187104791016236417362788044585915016683397728744532737359612485718293961230345904990371459126813297506030756515750977662074176798903742007773184711252729671488000963230855111621113962629198580498130974814308652614263539068143651611852331331389913922522637062658030130820776580354018899125085258344158893866560458022341937185387274270036215129864361113360386333951697761387454376729835962237562506040663261641039358443901564874596354039061289702551600615115649699148660230499913915891630771378648585056421142700998645420538182461076708482675762428949420931057071558802971784557900111491779366513002192985541202383704481763654454473692346861307931089597609485853972790896113430220505474900749243689322623723238231758288168743225822168217693702192061619828165700102871455570294354423153667720101061416428201733356611524316335753262979493739323670081243513929432966062489714994388090687893369988218917789621891023695986131766026853045628290642025445870488729955071680006740874749681695119580978979621544559148930480143082336315011016337107586651155053698436106531203905242392789694169429264583726744335016488004717126968640591770758652759395992352999233172404016997498388287338360751470571534524368884132118544373777038219370508899758758224068656339358177710975977951486408289970386788443805807202817697916167125462517070667551104042414833873933785524787447729289463648317403086933550447223804872100504406244726680200033669806533397922649601156805711162726857317985374888013908787532016562033032719012506229714012770437823835144928278720965932676824824998128441195683671169972867805008255230577218009473120102358426656213537257375183590644525669438172972327980014517507637891111326555113491590109910790802605709986326960631174578883999128510179008837168122172903173853529454981001054054532494420183479078908862281485860855776946040888670120911888907685438374811186976653773521096227954701768975408562713367189962460580460404754122622971836042478479946444350008134157076719814787310433081770188427107710096799969166732571808744868573665115570352531300268834837527533371281015897102902869718034751394735122789563345413489167544728851890824337122032927151426934889904282569594155390957002835311447314988187862671939739299180404274983652123340556596684730003035313256629110645332107984418481789101665529996028963405687145722723251612633446837108120498520005461209146191516789777143354951097292008872431573165863735420696853638761388235545324513183087603471898497312975334015724218714548915146684801322714736561082864057682816016878983428157944175433316377487369778497377635756524845176883592983245188947331041273031998019811525407404208328566445230250065896124160367068233970269602480639684215667169274655505246007529497348501029390026059818526041223782602308320665830008569270321932963479326335759889007616262060307057375734244089528020906092439987006642188862256953180446655349881260761076844191138148756737230033145344273486759281605521313747770945729480304937878619171738774013518299907900216491877353096940738304344801148511246781786506083431837028117973385336142340389751945600183349377600950217015570203893945708407365771796009678416214995835830931244884943571850114534211287645828699699500917610645143259774041501188846428225529524714759607773162312098953443373558736887084154030891183559609322010652981801018652464543334352002681358890105029650160633174050171731683981108332284898604949229265005463686975568260740624482298829682309010802447680164528330161115059943410639940126121593421978704943102782125082711114432874341342135104873437751153448338277666027584951448811014269266590678838432810717345230969157767529252988378127332974177522760834695445990115446913850709538544496677543130890601277516622411788354143092670594841351499046915998827593857912195842122940055138907108070885315321725469666789261923124501026127204268107729416812423773259083168516369491949247040935726326056934303355646164481013804643558839107420057021066767840044660970112420393147141284941497930265364504777881770685228817016285600834141339982549879072146967466266072316122005804818262146426910625390805662920335175209949185351952410148416863199241873242629328606306963442496934355138307250892352639419599871527988085798781027504338598513196264736905271191469422690087534060968744340047950787371163120825305647764489406903217714244458805635638583648457815329728945225657205955823502116859675437238614693343594203188067498586144463088292960990282149779145060544095833850163612821061282539910181157023142909707541884665652035896195930531686684377279419322826834396620318625278345763000461538968741810623314470211380535654517955845566785676856188557508966425730621430346170066086438897826721877104069918401090532278881522807567329346441533402129885878574697679735916862273436721702080762268182821508240475589054585707755392137681095971317086005563925807693047810450511358278036461366480893612206761020687544596249814657033299535047428649050540226636362782158940201328729464195306414146743743330412192405854581370174797847382716293961246806131786433343582689337167303647480832923761288038460696947414288554723703179230286121870441241669067768931278281975337794711802650103119284329284971682208033514333199592299563298638187147698891975985573999154936093187848628654719267193300170840448360452019583315683679319162565901918193109953014494562047437288345489692363291624126264975218912698242884353496729291131264414878029098835440107451172981249198282451279459510203893280717603634434439312332795068174199197274414027293651343262348640906484974259154073638011657911302572774995747430706844296687819617129547177778996484343446561581612179751065491696959794395261709239564002264591216312427577998356018321767335980178157676549627732380577866988253210798584950885343988661521090813902353081872032657204442571015422411447547983929127532409971951772152772153622958853444151821114418922444951368565896295477692144633609283866894436719040461396930610835169086668242022081330358489464830943212228444195715761352302972913452043697324013958531562899929006856613410697891793843401790138331646651839663377987020018795110222365363332986174962098038248605397460132655142098162098100153077775620906782845444317368449247940676783676644473198229491655274260273205654303168097291831129216247297796930701614251086970232107508115387198916739729330496850941689784650989873134035828877266225083200272166743436175485163054101743145015318163698313382996692159971060524664754355022976237882196291276380398303027935397242517362427331711782646821651424106379846060323519408838296131751404700865645069804757508456733784447228507834254564111339229035489770281791992931896027148623093730521207696887886020633633605558983319339100363157262721781199346507711759359650359860692515442398234006005886804498733282754939200794955513602701471781276164776392298366558761134861285929835757474772421258681186484205678536230413744922806861010314629466153014997490052806647426583097188410285964816328715111779245075212352434539325092838937871417532110336003135410533527548828792120002367152504069555919741932310699152991314961951492152425062801368374217839559441568296653500500313647248600071514786157449496194097309583833829982649779639089842883876779500727704987483858665658994000883863027656538897721351857293985455857675963712437634287133464062257438697149612764143717365803711534118290773192495439281464644576780774074895443022911036235124912495117116536822052594850538737276429337386488412807183296814934362101549945954391846577094341747676241706957467221873907573403818416325593251374786101418897942756798471097934358000593405108924880768006245705304516157272484360784823199738516012896754118381068361957184175518395534354336372217522330247458164496442792009190278198927490988534255977770283706873024710989862893579022354165587043055998623504336104367716097323100535589555897631540109492316463647261985439543203025829186847904302863964678465065672339208032706552534279189498163735598052284460627024401472350341153334621490789488973117418677045885557927994216256876556301518528003636328918872395767520978741095178882783169568010225559041200023685732457422760421317175697244333212614240073182584571912451020775337208852151796277253283644009295417524462166091472825068915940694272568787173788409820049252980729668933510034937497253913327725956497584932338682598873279839459602242197616077983581744059703921842074273491079749522239074390979626404828505492434256775021937231706178059194292233420022800503488612916015569881957442709946530490240709757704017992043843276114567184783696347435411368322706230398036770115155403542874642411591350941702029271796338536803927214902250690020750406806278076715705334044679527720442094275256272482536339634363147220190527413677920700615590869366445587420556889055048930475433928649070599888023997579212363234097383293672476829665948813880042772133789609404050323746634484877155039720957326165322004940948244340353500140486838217689166851118846152095312611703023622198068936230920735507845002359340871611883438485344447781415763817366156492600680032160240942436040926151351095322670418916825644578903398533469658176883371664766575393804329540255322607161096209508039902740723900001411027276908099622719969653391998042520652005532441006500119452962513049604431843881932446610401783879782343202784031403116786788059418186363511788092119230809199472529174363489945018298702740049031656948178476968272913614184003946873130128446219499260014526120674681797820689912079122920861090950690553100522681775701457230376178352227298076110489330686981734354785286023841729139075386351294078889986760608765442492093586586249379026158743272238535570970109684522522453388160842731667081220288331638553144209944631104420708655720855324814113126980622818258779895602967536281569635301856962002257535489259921618150777375668408482198525946585942074470904381945606678713339785287268430049576963276073493737461290471884047827737650049829447456231870217659530815772321065615806426669041662219219098955242117699461662430338029851385585585301878607109940981841733227596305317574969106591260143276028457357021313893871209833097373423144771724819241721968989899365384349589410887188952780619955679111777795330450769955472293098326623340222355099239593373924321977237562042657295131953914468400638542979685309878772232526500086665274517853423157224590580557709155653170652481832745013185572192384476626035626663249461331623806450952216443529355401591772975829362214132980332025257190325972493318104893821107407165692670356961329661478450273984374676450710455687822375319370205389283060927717088219054179250110125956184955856054410943896336269781012855825179782690741524882140537890612658703036505088290773273891910317008937674835939382072053101083606620900909002816207567504558842154162785297745928277157406146994599212893957637059735202442147829396332754422749893601873630887945380336854996805258181302102974796179902943191056783716925886709602638103736407983691439115515327089679041243687722292280182383777895307458153754649783391379324883862795967500872441413230396939021729234729044466681388515965611343039174470815704848946718986478096043470621390678172340538489760054681131902100142965897859008194465014622724412632162663081004772928697881304739745413466130795933887480485298366023042839836238158073991058272794929999594784367704719833546332190305734584994231638163532437377977833973135774111398825970790754669412558477474662596018933524530923441196639116994341776474529299438244733982923361619769916335139920044933591101702269742511392681254881207866387826487987041028857968805358382652954495843696010517394070881743296927317173205297211439206274872233525497854705805243611927839597531657094609778390136672926176458820310191990024293395681741900735723659768277659070767839399528731293685328671930981089775816168929660854746319542208972101588483606638762885189724218043241803800150843153844672261171211163096537727454437562753386540169239308111876717913915816579556922484133765730175453309506551211786165619581830277832484640632284582249237803681363503454924410690069542340488357631610827806388200128537709298529654156170868283647665114102080203151806122215824465570877484411890561488656220422825180531415634847979437111742107548414238824826743853935522989100757347477135183141268140310332435690521454776108446085616421556766153094745285242409606438005789751968900820531554411400016049453243941949591201173687234220825584591159135696074623854847449532821269401392850447580813988414911224975066543644704083986873407616126159233796564849948237101810362822292662567929229527806582056771333193395179141922261259992858682889609733888259684146514488720207897652913988357607064323853519137991173015155074356989435348403900848268715718927475082534731267431134460688639075189980083387997473991465231002639673143440954087266998488389058956767499878950947536101830966732132429571540217436720736149275296642599778850402524080475945467754774923340784808225694683617270219295516814810874421841985857111648815827669526290481538635866576431038983217205761236456126620724100725176984075651172333264505728689263250847047614096412871653775944645164538757077040693434403924592233026685260279831554210500067862803660571347289127396270021562799573236447678885306190377922147886608829459659392006084482090130787712375890128007415113423244965199929606504121106603946911236121097180287482151362316593289960547598341903101368998914185188819682457791300475006132628331162037832124636587131596597347117748476970480572145311263639043532656616627873035559288948738229630058070595791946286608928158103584944887592948333269059389881089572658715869231945731235983188633196832457693544536996661276329401242196654291603574345522963700369168776194562454584940286119875620051006668167807081431217405273952434864911158166894046412457114924681290695791328058908831027680922317223538621460755612919638750955133262984705869544940675904715124715497682040208343266455758305678354662157094754131415407279167447938253968704366039849816704471683069966705821419695055376945242097653420913630337804298759599656204025608516751770046386132123701025916389926717322099162135768603494232121616128654773850036291680553889130247423827652971913886941897872035988452902497153815382219625905921956531868574789388024241609724065981340463357148674508526621325862234805289145108617789060604372024391076466392376337077796465498621603438736934567537992688049269587922499056534164648410551163425463319571939024539487501141089385376034522970373761455034387220051982317489304571586227785671002304257577747806815279538415176918718629784556333622165368056963122211163246130538113423592516070366034990179489472629444473190078795298889094805113819425977428020900156275278619429812129519210689226060292119205598496253379568598488935464910612269390009790594250943156843552370109211662060679767975504760862425930286280017007472211856443156382562006417844257445823418243671490454308422857958622909375997714711468156594305850468670497563363803329725717522558378072345643547146436905441494483445691776545873368321891064886752046251088226882231291934283977926307604628863461495329130091941982233655490718117315896603525835291673565788285704213002737053698572738943267204232793096190972226258014102365543763794627861443822931474636268591351890773745652315413818283725716521997012524473667481800610844181639954458996312622898526585981280996506987422899748878586949166671577998699903038443933969214440302108457768572016927951708149444686685191570572239391561013610887243958725868083601912997202527649663791521630039675436621994028672648874725428094215342506557161355241985864092523433988210406613626596759879700745564186121509814722595362104585513615954816987948187447568478224078063920894597486574006744092095072849222669943317890265629804264985463445961832580524282316882940979136791808483104046584314639123265589521932756522842496279718582360442073467067967011755800238138095750178177931610508479800557986378686476917369884475113222227682233748649280507858782126331250816798696989098403607044706980781886335214617622883244539468035492016374085873496547304957519842507665861162881935949611804308602320495048236431396382928800474659928722225826888253017889927210806513633491769251467205539839710795202571224323398448954459245051144068880228556643749291728827643732925666520873970171548674739409182316326869003155920780146124873067399283671488314882789752719131485313351977147815373198128380354759426545223573155067848914857351168806138577820738500522529485488186681191603049526183805399245647252754339001103334725869286635875728688733305109880940029090912227481074469989470617989710173231525484618232355709380894943806247444656041651612382851721347583593110480265207112296948630402863530582136243813949953010026880506446661900104046310400187373168000546169972941531061441236835306047127258292454923735375515557454259044495550599831347743712133974377874975676094311709555513520865114218135834443554192436293311025419788171328610174189316437434149340722840713638841700904332726621304353349443150830968622784171920182361554769407967255869701023276514247006586638120980682867613186675847140319138754230530282754698096026858030836003731085242897993830487489617829512704387866107744738836659820437768625638752442390825158644865993214022091337888040486924212200473870645298647545103074969334424703732392030497211939761923561515230866561770843447354670437107507534990693227218106813425528527011198593274838896366863073353656397095651356314667147303817212859035429967202769929967659990563529840258862614235429633548773956696208585149346588764335412722524917789444399590759583657229823236608430207879249816156909006738478525986692274503057325877510997636189842854896019412980985180316198053494565113004200710952922283637020144802336513912243579689557867255404097983321196632148171688497448916498931241294472126114582215210779061541123848978877660486502859376216705219328414556777878892620033315631345013964164169875442637424589836140965326233956397804548984076720640561877788285299798190915637701065932989122144957469866962442501736864992510650081647770187923596578437778559755661255589989303351215629274904829150636792579589604542564802389260659827681192579616637237726426190974311943522748831125936603509454531024515035475361319037348245932950148705513548849591061841676277617105542315268722080698396274170415761600150242515665806296611891429877292198119853105239949521720482631232403796652311198932752014757240671760130351518585337432485578399039374652828363241294002186251550777340617470719492890218212598347646951743357756088135683854994368799597100003692331894792560363846215354019552064987544139198372964580831274808734443969417283785704699549711292031476589828556667542223626533675140004576711008821129057283117161401263682140228069588822506205160161296406990120323654506552377219885934701255307590613370242351748909223131332975783841985163735088448812750667354531688745431187569202897013571048669659103430593515623896791156515143011884387628920198835344251769560968915874508892579052052684856403182878330387454952935499620294524086720315817637351001652146949770346241779534182440922862426342998476501418127426276777106100795822664405177653114660352512225160316413928436921851804551249101300087039020361719434934302772834807651998819640327280052398830096047202404151274484822154519092557937493193812923238258850031874324001101793480919938215034470098158492230207792056609911038515561688460320770490338838089891805891470806390280199475391389169497551549086968971899858319766354499331348166023164966248186568607132478210185974595473577476347888833250891140585843694742281776047049718571669205085282848449211227042552722763267743063336210292615582216652266072447309358191496204295020335641724612721185951646200024502109607487554083685523830782411359423336048762784426273566383735780744458281772633317632146050494303663557671343180388049437533716310441844192312319511246429450721866381984669959972291132256853350537231728293640581864474023949163239670848624545138942850495599386980267353762119866092481181659109324473568011855554605979973968895199623121980485371264001061159892748291435608332533109564295149574913164159978516369062598663962732306779928756435875069485149202137836002740481237519726641674352341203539418227545991940637451757138448501510138307218199709733305455665640139066678205280079788394710177612546048832410040034115501011176559293472620319206228451081600955518559240829478421276193749611202712794096482156576846306997212527019182968185852527452247993774063546518959413625398692032732398984601421927927456111060716199264660890769853967747443193972340898513492822739704655849609510707489278090583029839484061177200745272745148765204966561736207605333209455368452503784314189232699888566080099534253255090613125760702314287564880100897591089519987714461223191243486351389958510756727057806538464753040537273176151219409352266959514796026809278258765793263224803656259780913246987888979761681776451767246581019690896396163531211135383941192363457557764204978990770457450124833673455017589270504640053924707250296699595062410765159388166918769185692027892402860127284894044208426780507081650109553183571851731362112394402766401259379512712518780557255983148317992996123834076185217637217264263327160005646351331318575956184487823796105398010095708517513346865851319192852096279904367040420792032939890971890178288924315980184563688213723329845095298948226803511995662969194137774606443844225616499118743328957722196265348238352453922552399296519825418362563083911849981100097851488721582740146527701577150594163530403759274999395869743605455183053662656238623879869374501201742828641565344463012127322255077974252241393540742104595839700107219507581719647575657685265583031758468414219883133812677097093482631039582538195256384205355302152206013503235330093679647961424578151841987737719649272819994087399465619095646557829004051891508915510982638875882922656805746713856120797250748704703374100978278902510035134686852962291837811492998686773230617429453007964843408852847816163677433327506133552603296660363940535730220684686626713550132972971670304110112395181057929160987521098040201811983711967517757257429961698431971242188657344313273309501416986245456180835392146829359347421380618923997522387688962535555025151073740331146499053795861116387826631297422000811047723493681027992970249163571295350984346640214571205733559470469579437316550795104892432815485925283260598939760635837440851491301600115514823189060918384289235963320622980510204329275804823282363286650820512742277688473422956749326232764448668730363386560737858677640168225515171442825980686352512753787618812160314179849763039490262029742316778799827765590176817672099017778785719059175226540809087083306498542974023092597114777136929810219570450973830619108164887357898807549122650778347015184152920404557693228444546072091118348039906426099325074317010911907492268673481696108229935024790742468237450522028257360497825557285143518717545957186597669688147815128361965136297995478923324021173981805867287709480154074250248262295416577753507065328214185444374890997030843981641230195728529960211556168931972137345600564221318928838916485846334740963134640976175230687666160188348605457396206301145472537974637724960983925483471698400279080843180269375591490343599917989591365326144368506681107730365376008197489658428993093489466650757406659983468995470093577074724881068608933028826742937058532307952987291092862639059078546972226881118820241666733552536532324411292059253928919651769425215661257812329402516868692551680385091169359363089285908853471042738864253294312292592569000956605204236182553224185816406067603855303262462482043208167340497183726381459225784101705238368136156745820638095605130725284582961105838815540750151966334315279200494684785990211545680979680816846987105829556518325624865669044947958665851731904716750230798790084918516558987943133211738636618785631026533320305632946005227582029907881358366447458276557824954171786882055237301693825197883261069118133187886274526021673601080266033149590308229708518286232099402401111632964270828902240320887343510234661508376308765600955474946500591271304918710629213156817283552381863937627226652004660354138095935318707661274099980043003787888877974203296151391979782603553617271071317498906692291685665329199642351016013196408484096665085686794900922794590252990505319367600493750280998679985661296163798494286058946083494440594860995691969162712834082018166052554120081683634893901555927926059269122439703230817067907376882754765133963922606366798670153271614556347891313101498655472944014058892791036318818126465255700536281527043057145874739112811692566291401200206293012444590095379273575324326621413535448526872957260751313419433035477244870412272722727765640479009534487175317593657027864176595882571331888218738522583504795293978402199225726656056297726711503216838615055142898629252227631503155296378893695268123536668351943408211241802597522972045110280772586930609452979724583527011320533814408919789172564304886816159723496187628880806600958538678524434767506525719551924950065270323709196988621568658910216856976071213252644966886037856288849809331604438163772293089627986106624041030388532909633883871614666553516496591647328038360160301913105753513712942585532193764461940366089729269922190384050025875598385383943559720270641385806994198624541284192079930983239818095664429557448345694895328576233363778753875435323444172191036071095799904603074089128537613307002491804186927397655096391784926920562092949566329171980889727149763086918017788382865268414774022612702980546615398401775170298224413627167236200305255064890518746641958335816825533612556266075608448518353817129691876879818195104953198148599065788205541753143759247237032917847645005771339442016022820880138082733432454253711120862272417107746867639902692015226262745327463280288545998608706640302771212323210458406949590139590742455825418376218846936594520356613801482494491086705681779634267017352878282389819921540625468120115198405144753156973262565127235347927394477277453034596892372477331807379184951074269684105662627343056087432207838938270199810896045468522547450927393270792719725771995998766328033452089198282345583742812448789056672741175550170587874552143816321926194004984741766616913539815732533750810035083435096237356276904219129762493280050390880325423141838677607851398698255820820263323538879087072948920705563289723814941822723749655369903570647693651084432661884276261014744260245581238211862774552480395610891125920007825644581231266099224327135622551325399280979761065015601377853995810333321329199538350817484886191130151665181132958255225953970891376609085255466477532087091321632462675609123855401953253216984388648966652158886049620156273429040110522042146637785554887054383315341175248887271807168339508807280168188070500950633830822637175179713904097451094339494986502813637836761998063261135264646851319503010712795642947272481136758511531555383215966501891842569022649295281416962898999536130178018391410302654330110803388216606863745005703727836706056225328311727803092827688978229662583847825687038861756162728427055921648207457170187361010210352366020557338922011792350264257069285075316062912812530055535123870098692549635401561033788639063859670472884026261824671389327243054815432699608978158156014087221158854734826594269177621131958761768408598136419402956517046786480490055817526227280390660060790811657138722423501271050500705978622292094333276009491405457419885521053167875469339788770849218252376632349580764570126723386744076903751409552394451446771794444960048351410922321412819990690614820376128484495019484969245173071320399834636605578635814621176018714275201538223157411543071000299058718476099526793749533697334964583303828205867940000686517504764358059179929953740693424338930496116681845463627390103396049969251630199710779653803274959657255134053781296352843683696515101874424552182357332411604357553428554895871570156777592572051929024941477150848452168275191857371342152519744733404288205692580050888174993792018709120200678835718360170319677124264111351109027005743497774608142790558524077348451362112016795778710644193824823268200913945658368133582165323189769411768360732552136204373380802625204809764261028419394363172097355296081518087958884626098836813071976037753040070959461858890979403053234097597915668029416519575726052159039299314699538378170065844449618743466044918485601391729261642539368056933610597448473422947015574217883863919983696167435229749085716058763545536197677768077359333555902079787282725145995749541616354654234895690466709004275882082936350161983694033471512474931191692891061387099193543437539149041752337107722968082303690286663133046467238957948614892805942920337254265414652027109014381952069348161477587751509261132182441952989287178844515229036936270297130754852356437442747639921824773807228463913417380053250374251608557779597120316554720803969716207636798730962075527450698329375732199246256821347483030780814936030370885910048917479446871462722168111863668650478785749664739699035543369471850200615276731836655873963643081213074681693899150598245903110762802748853776115886545061304898190636960326773734971537153247260285757084988854117134839716358177305321051343413906553345473017794179246634879673991507770613139834694277585802839903257584861281389371911167649338226517028842971672020707860394533211114405892233623245313448174206337193331499678656947566399467093493262709540530285420620824575206410807488904554813959613655655824566479092601829516046395104298229278402847505863534372015735932824275031572443129354338548181422504101948343324459583794262828918382226423037006227194381532486032183568546064566519119851195777009070842964416253766525500669525625685373890596469358556212344996764456653074309118664434337601152882613906505146401079876357374409998031419702455403200179789879404796101811914911875764053048724335742159892438393307613098945481300898876801922252917141732660916169019632509582057130377751509368765891276187929293442710338806366098069995210238480034958585866057568634431810793268643910075660941869184084459067665099169436794316137184085053418637059669366456328622824705768268622628021029215095261133840358130711083134677030570207614212998578298289063411177240119616654855189594372171896870432385355147499459494114440812531685570846656791688850497530844506564451126641536370646713884532821373401209082059975668787683096989966709586313968385515589222177617716689097597554028090485116994845716774424203327355036505081007003284326697704166309174965416005837673006385738104667423668504363529700721183880688814686106054274568743619748658893437958130683618951970480078641364175989046687320267620868353939824697170922711063777801850494532835057287862124388694296847050116454117530077124540851584055802625808918587343875955066870773960449199802350406331537951584376671602946386413619678377356356151392899463744800837013674296414649076619499714077796798175966633555301489199779717058911552804509311646900535456438295747715129417326908176070841768467282949695292163655690937082486130855825113715879662386621637441077763375492089287028873528968225616764365159359492358403200285545234917849010599352456645244330668653245277501781730273024720124354797416291347893723470928663202564230728819253744579043634515516547203627021351783726807395100358049357272258773715797834117188680550283221600794511183916338567336232511518451786172532650489455274098971117803599091517959810370653436765769630079047080095101422564597382734235796089348288574964222157254572463338141074953415203472909671111576713385297388818953044508676689669722386213800403580144974786596059603415126922027089719802717817427284535812143357288095647411813094564404725484293013492278636779707140649809211713114357821016457639784182995701095128151878859737455683111512964238142609476354116319418752782856661266054774388694025886117489821728976329722570704581966660137046826035923694074514372507527918289802057677452808988047072644689775123375501510539369108691019942429318373857915368051537582163116855425041057002161419635863351540367706165488323865957765079137143765253593809228817732939242917248727955659714136276565699774008646880619933472326491350341280087326800422189043864536073778425842237827103571464642331731237673991887578330448840123514881129750912464053684125175492790005866982730547440353903530945217716493178298950326017079529128714644267360467792988915139212736250856770613240865718002791090995652842553633495142224051560483331077648745949467084273174828165884423419744081733921734464401837336986747875067569393385369212135132575968118800831095831576587232810322624049381896432619511192805602531646903148339319793745908731482414393618572507559402307409121336227734226281042802756825316743222619980185825201150924213111342717084480385026846488957277304078825294966654923799324790463779238033362252929581534403976441836603963563007882546837121920560870231879122064121310945668247226049026668095224603389955658296046024926476634841292981249557200721537291649419903540796533167270597728463284038817041222492699373494982658393731223977676101924320022709424178523210896260053514524383354214399183020678820544108168926770844767404288423273457681808764424719846912692356056650886629512489395022344944413107557128732838500616230348810166712238753755211810671054578586565911186657846290835256204726610993298773616092550652536475719860315960759005940585109999432335970637142913976482538311934098293646001373498486536967165433277364274686392023939313026290086240638674946994763286136334652752296880773921726045321201161971336160042898476465125660556134256183186720727208622369382006165633238837279746167314136900534219973099162072374046758978016539172762385894203899275498006933508381405033696063704355944698838719695726691093395584268919678978522618365818647924477300918904183768505381872866436799816776429172009109332451141462679570263199402907888730449275715645017669664482917937183687518134859382226244380408521982088603207594772368679600636854761886614346892948202397685127617467868110253771628664762117175441877513313486890062237356223649541815961395520047536217612981953408640564314522532383473355811873414409850907178004053738990174202697548065524083168703628769167083188424286268510328221108769808011111440633760324861717064797246324673889167727962174772042270379128910629227926741448467078959202100747451080505908365127144328835530616719154371418384255796086695424504004017906502285880381326397874260407342533769900168922929247821490820460516152409843376951272382129575744513953073800367535013638701988071925870195443774113797112618208817613033106163246995898609194312937623857953764123337660959254121805292047408288416580438763285479311443243242125016752669215195231589134123096780504130051472574144483281817894322243021235768409548132692530754477750284264982630415119452660132316245547193480190479836950891559437758086717595710813782154191443604365488452486569747462834737033292714033181253656419293228749225930952418913533805876477541504803352842182682391518138698545630331652491465017232676270910450827420637493217965549094806112733754563447112705875561116448044308045377912394796662277739414154457779467043247661593653876208626283689319783255624389158700413976938340418633508676379941325643708460921986285838631625584677449290148019173672083105036248373927693941339434010114425522108510674170553024121085423407139271737765023601035922799952088982210298174690757941009871256603464124854222067622404484946512193148421962058295813379321200876976776486864424764390886694453226134253165003692772209496455039514810243180242995628208373920035900399369673195760007058425050495069560562856456638043237482855577183893872413551284017579196595911664661360883241072241539386295820669889725695999632541249756007399483461592875766891998839859741728859230656229500021335427539254311480691404153301481445149486776077668131736577803230502783364207618965253584483426041446972902963949159003167819486386897933289379922228617609757385175339133533648350019912500051822127968039139138377995741647665375924494788514523123492797904137813891569142080424344814864531133755617862050496662599138816993402253535758114068645232482817977737251252475814610081926773306303051598252039591178038076748526867295411555915401042332117861551407916406707925222986356358418912557618820176603446895415547934565622392220897910761180980530969412020228225524271354320192477611203482530221069875083460671279120301215187362553590053462919234335152584207275456403134796875180145679481591986346874192801050973999487348403812580473114832998085599459221388309924313885785877671461900200326696237403738017705089354287378067246455446303926710525569249734651749927230440361693979830388157594778204388730241299697389418454223500176921380005229889608110042589902473132584208994403137473665783344257948576994456315924378005898577749500104043876083997352713342873519359403563594684634492670987739944483346522890057579369063606723530914799590140880327045230239196451009981171653100482573509209000475972414031553016262194188865836594316150399767765350047192099605889103435689702783172407409914460458849628419688212464303989719044410587306710674016505408155722919760934893532209286374100339924184998257369457924377084475165450778549438930651128453143695412891924612717338106023368629440734209870003486215627370401200752667926351819227178493282308425631959301113743072104361648213204096142594091120712228744858305903383606319309722364586898528441190949601948785288285187883564062161159896919988268201023793031972055179559408411408710091807401791447470737094885553438064555765635370310106349129940224077909015433011987419776724338509955733774789771122783425012792361822147635904594452878706377032298522979895398186352481575032256679666948022792185812513254064529083606573035015498024608885556995379977800857868906411953541685189537413813841232065303621672424645737024078736679532490388891847125185622201223492499141880784313128543828512683182544516084192245751734182358837586923013319042919678121653012880985720837334661181934134834711121048079238138375437662973585985471829458363599507313964868785825075554936549602865826782419955888542531771249640995132633597588735439571618571914646670684692322636628843178591882742628868169287076778806010562997118154846753055932763762180321654238987653548256432323558097610012955541792898964377740499133152851940843370204998493357340645321330387377536988191066009722414305678495415893657856609276936391345188315609011794589530244143795308703287733239062879095305569447598869931280910442707521376078408551809454821422757581925406239996749621522424724543889864453456344852179063042339578285714020000079054167056439948455694447228889222805021660136081984520027157203581907371057911981820465903279474228388154944053095882793640680065268978732484700067595628164613880567592334178658597135050391078544915394640646567691781160825024000970121530489591356095195571055222367928982804648872466239719378966164396316545940651155444516645741822649667828248814764522748467354011287202947367799707540978456577726012699309639518209285454726628693814626360916644734534271051754886832336978936465193614990257614564180064925810340498451247174070175892457352138481972536178787193871465296084847367346857373222190612346693619409721243857935823200919590338455433356391290462059385113694171108930561891799939977911699918298031790478512804014024265745921576201625765080995111624926138298806964316901722640783857173703919235607478961771871739363757334955935374025276310837345483574546306725789512364182489627735633330367774559522275468803648759061243311695138036294871137867074563910316246829788871053568181652688899790537788427873760730219839098684227114131138025822640438054126944284058111430140621700986663156752813803805597024903026437230656608575802133950434317857902300210670078168302331659223358321656146408342047937563485507251765863483201693660271938636767848892553332547181746583989545848973780218642947731324981452103139546371519452946734979355627434078917569222540442285124169917554189525499801843869660752163942990925303078402840006587775027493947798973074959815733538832637297549782626296784200551628307183799541612344853355045698267645483930631042589297889165049690073784060670349894778207717026883912771767381934130090309695271662135422259888350308097803342031448149238524265707455999041644994157250142574012832538880042156928517158695098562088130653812552233871567879198109646760981890888930279242221632175572149002879161308269111020797842339431579035761958991828811458851708260942399029517645043973760973443654861695978966157111321596626213146543494103041642543998332396432388232293802515143758359999587962453072934771821550839082193792254266884673250016329978360738129898228843695339096841248492488307429566387409391722087227950927643056200957689388894359024444209392109704976044634631376707496159140733861456066789651241242489632903472540678659259341542730177611194931649284125918673406153374480675758592859803358663573184345537679040950036924723765599840267693982211048827238114286304470170895109304453414452494737751741782313344403323638169549253951635793455042307851823801264471079054746543314998434369360460349096963078266955462009385008684076386285737577988761247900045452624041036035049197216442439245163480347834493522021359433446691460814667596176358429413201791217572624158859172286156842172982876143260875634788758024776729308379567607462441001343547021177112876671830637324690584825087441913743298545525673580028403249333290210983080893812476204571583252570473966595519880641357995191641826910463587882841449752672622202160492334277327140484337384812360083760441279454479404591427675290014646800906356078469361303579092135110853023973442020658111796890637703677365793845006756409330941566846859436761875368822312314694320802288056718571827395552521323298080490955994959200318610052657887818538329588734827036079411901213440971724135086063481942524682721953676554716211318570055938925505342844680201079621557949175527216511762856987073368518581804618332169406342561572396211487966286570279903464871679437036059359165355205296814737037637788570582564235144207101476110611132087302532365012461573040589480228017828738858552607772676732260559988231659603315042352763711987705719388134095740337716224061255379236624498767481164704858970851592288301980958821294456469624227298054105413980514174388754592011328405841187844888099854554191379773117129664847046767152512543536396855809601171407383509699568094381615420994142308498172100865527136467119962757884183275789809832897181860017752160850242707936016478605059960436967693837251463105033435248130111478021802510420147690958194339220688785061870355058421446429829251167869798363825476398189953015129227313581167899901328564533601342944129358221546190949817201291285974657593467514789909715442241296274050792047908122492804182825489022798829023949528917835899650356669649606174468982740814954159620459017641225729925919174429275879511325462129878281984256704597766887273172350068106547551404610412356592711651472492403010829415200029190129558798566730507758149003007249179155382590089379371608871761074330835743914204801338228627815673091518120553713133069365755058770393293919303502378396772141330643243560030946543761610471349701029968635089209842294808076280838732391507961782634899382276992172529937621440145708959766452307023744010602628484731281945349409192559286847677974127789986099174681721116844158568499568809957823105070939294508681703925925288900030326790900651296416371137258563615996563939606338580682437285737369568498478103344674678590874990843104122137459910231115916153043698737920239229365200007953464227984186119230020077650164017036474405103718514051044534558770631116698078830021985701781559714506731407945033535727523498806598031192219230313981885339900436266883336017896068176701481836414459047928808237289222173688994267353277076578557159150269798258266587183575391433427919240455863729619573539589728106521701722761024509312130568025199506436369412918272267739038371281141093305063158685497315030457488386785563201195401502840125973461762606776048207103433808847591089544132682261140133154992389107478309730471145950274542466030846087607147239264153954467075535138432056962112944920879574848893383410369695089122626346809401663310248584630525972598036888985174864193591183867800728397428617906078758512135593872460172201121389841511775798766812684866058561261512526431061081252986320720461215404044177515998706600139927608618324594759070587525955480133524394435992581825524634942617882135293863942289228495287910882401355014246856973948246886966130901728455552281580388723712385025990537134264941867530454306724772159235610106040220276912138479272060141286032456393538815036477638773304258765924865501783291981657214382368500447777535150018259524314748273975986597103465200473268448873624360235259027292401457005271277169502475927613967159625754665545618980616264237300676360911769929043100404407182630188913087180584213774302863029875423808017090353750742024686691324864325525402405138791475329808536129544855006483296452751836627641121421573092962256775381951874047968431430896618195332315230727488447277636800037174477812128637458020182813357066697306245059282681477419831515103101940299419363594869265284286975390113475848798806336423792280601923700654028929673881615319511931577838585164543580076933218562210539732123466353780970569269990614939090123843141917543925619042957968778001110064678870092430679642334130376120093893489184891478680976704115913411557810994505364088097024857189249533876514085550668562471814012816785603867530932962747270778992307327274387882983847823588590022126827786464070402481929189105788124425846735491712209071512614822456211544418792700160559463031192108812530470932977875404848487205390161398797881333296561540926592226314714496257035624276248056221407459337325476940776958197741670472301030759201933828819416433389374634515940530553976542492770769504048938886871893847840438130346652542235996791152136235410905686089802340600189099961626855643989536618183941163790126790648423075267192671501232659092471884277674385013499079792092227478803809350700565487358678908478744828208527081114516244527058134757406309664095571162722674757463025432910257179495248672921489411802844517340295626502729409442002528741509906927425903177935611632306830421475350877428310447174284988265530389748079204358503831636059759997746624431236705048735969971439365448523280481492506406021637601576335491173957140265973252258479035975479606923043149366910678941787992025688791268231440993293266388843915255685424557079446374125837491553750642493899704594751083275004084555297412370604291799602080217247658816719848344847306952624714259473613299024386066659359450458863433650908897836310081094132132072162028237342944704391726579632611459383301613047099069406438142863278244073826426487000430814961826189980960432650093325667870570381770080064986257471571747995300582420477621218826896823544009849328392460110845727202255290221294590725257734426534372333467313861103608933409376869127588814215878001165249078663168216483022358515033869391150379359184526771961410200680228158171046511414094478140848205888651184056217282460913932762527007058979920720366429416150855503853456578260461690093430166579730321385733494199543085385141287783820251310966884883679212285769370208834160966707054751030727511763153682287922171918398294340304679829869007997793646765300448836200190845587975648879360795207222888511201681765585416352755066619217276879200624241421477372713304464489259007663892630433390069406908669213859721805603152229462873026595352278563770542840336507171088248954328213188269859801688427264053551032974367185125757599560926717183383297200602864700416548422068286820551669966320218662428807317345636916334075746027091180966606419624986629256153746062917391491172921027308906740794280603756648305337018734279268258489915245027294235985420189265448330068418731053741586545759462010883967093693835519672132887393764985855937454925575921994076484856641514703921914741296801862996338979945221124956428278655004226500921977597651998523200893169623567178875775832697675862430083710145641588236312190177220660029402402398347827321536375808717806341756206914919328824411710637835221503876723441011886526403993614651405113264150172936055338445044122105815872506700580395922234323239391153818175012337306880746029664521299299173560062619085297630754506087520999157593560889322226821259413665458847881247093719125568027069883670848617935848764354861549468374978781092758259469198026383636202728313367004043096277676779935487115150473529887348876561232963122662387592331305491283933152738414320536989738136645689740375582862089573401746087775724679126926474490242583692250263619534001932266980927319162336607869197554286074058589114485727276818857122098137748208322123201722113888318462645132662856063861587048798433593246836371377072923547763769002955890186881212466465559912236898583531065336645302242097280261222103811125614349423585380998321354104480178181359696879941713160807270808072700066404667405196649758333784289557422665266204224513707255311508912066467213945449199790369092426758678135808171010053052711956391063211524875843162909587605204430560938226365732581468232817443075393089950507788984657057286173674892767635517181487099085841213116952176336184058917063979803748335653914560439609917348755430937672290362521196645271948071451204987769731895296237484580669540656686595091736926092451895026175456220419243904006164105974910134987295153040727266726990823807655258552555206307352760195999666726490125830315612946455141773325956750690680288963555257870015261780014503133576734678800155428194981832813300767352803995913705684410952269206057494795695768122027067454918596134361008858055088042083114418877716936625631147902128811501060580050603523750764920419143239735459426011037382880028675408495864414831776458323914978777375757324724753977136795061446580173356103171717197984180824705795160195269292201589710759605380953742505860850376921077305169260251764604747441599062900424006378613825841056348405576565642868395188699599826593635125581618802121114731730298043243939215514601742138395663543680419223448152435038016465342372320250724350246732766452697575463727508029314557117409307770352321926591798027322076679376065698185229084617288586497601063268834024451292055722265214536979342844006254571843397937832265027981373532437983105528443981870128580291580576992979884642465818915320420897827593495023072704080508319247325916948932432571471568964601226114249629410952102395079264128661431119145188444886304002741270162196922879990628654491156687753567556323160805448693211085482008455668182927713981350023388882898580964836840756601197153857733055424635340921550917736291041044275389596175607606858358009210787602079058215352279304890808590308567228862604541809796449775124837727750668165576957465968536410002106882686518936575482635556187162007277315622148385639302994950461215210208809760519853315198172851741199494984626435808075299857417089292477749318281092219174744032368495338572863253001194429614331357260997878065389893186528573366426566356340613590804388670225288277406033137430941186964967521431779846018762947054476941769254875646372176648827303614481560147534583935748808349508492223802206964382779932787520372248957061904107759091513842556552254123710866584574628049264851602274408015398783069507757594573279453907297036849544315716114020945999934378190702759494263494119259532939193296335505902849028578760154253702276259921483141429755079322030885072281631842583330303727724072939245347265369101261269163931961062215051171814628326433963238127447799510178268136669661237680122665653581736034587334538570468728996228207471125503656770721206471320511346150606159902918899626589507941537858789346761209703257961477740047026417661287560158586252348898604123953345691750275009423781195140659336265754326762974485313882108690186434932883283757878043631149599476088149448016374079237168076924206741069365985695264967014564429245234806354706357993632414087376284914429148876402296871812267185001085131725650690234251861530026088197123317501579428421642308010391685148526806881951446454211834770324212297722710660344243632595928412981900346036025837453896555540969930562188469259805816398791127580673891183730870889724160282219527285552468336696367517428478085523249031625729962694586640126757719695578171018701567884812949015863373699536069573524000517154350389354261829035630045691881945839822660206247156056504172145131549194429199339049780453752006467202181743115811963688089153885267950717189774793215006361091629934193742437690079287141981824714665819643233993457317673201941119264663277521016080611039524093271242304414569482866907099821561723196123504492659973924002233586697000689703453161209521626005503997873872787550413984560785586557581457848632873853827847455574335725191178739910331794068437302670101789752350029347185201691238504043720303722890375326778730287085519268201513250266634541953274850866887699383167014027444256772089571294718819943290230733596871162842361675998521150459515515856066736271907927762367339614057380405330128150664450616744246452707874254344476517557755076005613755463584986447731729682624789899256004711064243105436018810312902002711508924841946224015703035695479940321376837813896768831436066639838556513500934279800616312821685520989942829906429324774423108784363586485592261560293612297909594485451159119083078261659835992260509182891272713190995010400607054862117569308288106947043230632494918429133171489571050367900308706693030505409568722696666103400151897117030636827319223544365935291723253984838127251926111603365217458938521533099097177950502386202757739609648482854912584744339796212805604085719306933380188195628348036711797427796517549308299007112815150591136641044025862699451825499707914944557085259038276730767147763934063331579606764903486397329430640011492960569024586771522678603861199503128803545698437844009078141715821857807228035977049265690063343488502092318189658754640640604205186602978459727576365890159898313263721975430928173336198180979657905705848400264165324967984450389500724237367491025964448453256569446341986066118821287673232710478482500491784835015692820006835827943178363566596491817212221723761298754675459867299220313931711695291090445257184265874682444190842203010677271624008815865164014985078398238276477571712640628579375947094747725470481310314410854771798126885033175245533336006196192218275900179718172072358456867978726939511824851190936262493209234014616348558658236687538066016474172112614018947972939690208971969886319714920574291809885453005830587389665422999525681774346257821005563996079389814880890401448379979833686039704325587742467789584939057984989699979298354714141024441264661696198526028577460147004197668949535879676210484570194336861881740490470029598838595910081005004131486243442407148850144882904493578750627836493902772365434278624783410009685939154377987541126340946437490290025013157544468163689167893869237955426825062501218492519336717925637083266562617943668229028934337780091987896940255657459408599685057151299108981622549443812714707137917689221269235725074937069134231763590595926803939103583793241299464169263961580999311159432738836423177271890918063903076454506524496075746212520006251255789689667902430673094434846516612725986362973990397373553232300498715601238034266035695325417975078330972800526942215291473234336497159237812714077974553964005721894817653723284931717672671330004869521359004752336161165303477598953580934997683016790091752304639198968748422020074076754780862372941979805909414544829465377969404129014853219257549918868890477878035301557814153135057176436431336849295456717376827600537423596456761794432782606603680866319212147858693870198214754340412368362622474374719006743675145551136759972093189757144188108522947555474847182212786688238829932438058650323885976546651444291020809747856665124747463024447751084722782042593477686998095689637036830546993689649071260957249897001501438501914575764462406518557495818122256145796783397150843448367418717410973592779041702984423001474150595387170154680393449611356045912986765728862972702552735753526146921676867081738779666861644434434103806996291926529666031599613514622495711930098917955798007695789789500747369844596501495934355400326781261954776921885018109193937192099255528072011327959194487334090288096791281052370399329858573534918886293423815424902962224220542758960148174920218075593622607681205926654088970803284136624696683030456595999938183569652799130626621875103246860764074756782368290516378101122474769566657208537486801365934046301366945466991700564987181126762924521802977695897051585897842461979228109999974095727163932241913386558721074659615359889485274188269024067158363387094333368876283048918652659000077014331718606802696468654735139927721190273792620547398621364479651534303993886404411171808274351115070343055320891265183320285897494079262423229160256842769213026267085987255680150709414368715224682959596240991107739493465669720813959742025937562713626718788571198041627788061955342967053796151010664203626590402935125643053356243306482836428214880735703561275537130521523382628878153911741400988710009784621728310287300250385428119072008153271248648584819009107220679291109608162086222538423571711304165727672200141193929233578520084555322358759466381698672654202382982355629598766897689894073061115891102414756497986741582129510258530158901485956345085990102556782560879015065776114377365431849807891996115049334850550715151384275030643276922494832090314207481522663514908966716761994731071382882976080057380149559914225468699013149714946186372749218495672386874839860132479429678367054966666687783240778310989744696945395063657550594694508671721101902026107870082526556936029336097216248824099283830109435069964673841665862274827072952527843642442773682657580371976423359346324432824060421356282409369119119310333301514429707629391816946059480549656722179482713131243559701598164164502171328326692135688226669566227076238748368517510668842044715272126505723570830401523515072940749284956189062470151139088953925664930101515279906208582893665928066944162638306320892004885362729548937720863651340097059624212869682166631560362827248096948868991317064340522372198117403046416846578979408138121809245966407331536929993805359596922054941074494504728029265528965976473834361076064648155207221054592169438444790753277777893875930424342759449125704009957053734483137058454404842923846983975603370186315948202867427970554740934053495333280831335583963637281304951614636962913477436771086419297565220992734682492238751019192877780279582977896965988619689725658778268676042289870362516711656511176199630164605939124014727659419641227069875066881975287797340935229239465521967717809344255602113292261905854650411235094695936605573372780487445231663019962837769897215137080043437238710461168299309140914435001961504116028367523090801637276701782039902757664944081362382554104629791635906459401252209575259442955272963569457672610488115041335260695923446391884166885867159152404217579774898266960142274952428877459068408629036211335618048488355513607480416473978040137077206330697396979025798277284493166259443648803541554711060482294679570280331229566566217795423281558676793847511524693023377490306825588026155136603295233576258241468710313093164654276077943697206012479469099450426899023775653676019079433388553373162627760005428797799032522744310989918572089802556449003415086569033385320726442030994935422843125856727921158812651780230461035878132923397195617561071286028901663589682443526206432317331369038525717936509100531570986653544573830017788513097017180602981651028812205311977279400496398865898503894566390662211484532394196356301055317902828513921772265231277370943750771969665806366490580072562362170164327495420159306842037442046693143630827342420964327361824117609174371578234034577206354710239769891447030151976876482701959332811862211153163635101573128460030887610639890438421938639924455765362474680199358681613355026531582809714527068043446389272258807939283660356576275853557235817098396095790799032703562691246653611893963872180781270123143090379947560011281110515724930091285973870334450629488742448375743320752130088764017148753727588428138815702754346978116317039462159298768091992107049633249532629471163409396904003813241544104804024355260036585777038279742102751744179763425639878307676943572506631533656338510009734512758941634823482672172279340303712793807809181938399450429888471976789122825957646259010716638450555523470852780713159756487267549743410820948884262639075007990241392320681232441797109234493251942634002013892278909880484410621440189348753680752130299513786173112465292235546138564015607922765662169892002405569813006787273009874339258377524772882902831519958825886735197816911350914914803245668000816126877896856847831270107615101015225473602328161813096671659212133945213290537005256418313725538284307632611135314002692522510048113901271994765767832451012891664757088230798795836616442690584517762491966334987830620114412684429121622309465431434154109627518906205790621348499575143194802843317912549968228715400716875189128447368395562092326775371642593175864853890114586416351037493327681370145058429630654997054827679628432838472035347596247586047533768635611898515852093443572308317883907067648805221663996242086807429263194555370017982662706510013018092773594732030542248319707550510801652827906697787564788538110573096554590808001522152201256501580944416409515414484184196999034184808411282193795301711040527135909578545005268581805015020086369017762173006120176035571298547681136188399089236961822405222309557761376294606097552574950656430154241081512173462907241624957530278492162444978980579595261055785141759343506227139381736413662965261003326323188773469709017519914238925266882162892488355910773677339083391206787113777629990906696823498492517810326305165760394400430346026864696414171404120224896705244809292423422147474096208835082743657171423467330521125868994172664161014325479820085210825337468282494403684443043893011852641545140864470476352334271848934768403101238284552661641137564283289015064505255284332654421367773992409244764210559115997524448573425352900932275426746432584062558390689336038245116209743058039970762053537639404486146006010576993970790305157650768274749354608709341536961706516617489597804540791971612856844578301841259092430448150312285643411133658049897754475074776785399988547180639951111847914812657689779384053474985610430094335497107102695340390837518255456031749764217628515888068207866886334026882198977281704718092281743708598580938606011898804887419455960548189787531708566521862583783954084127527238709724637537821791713427800888687879322659329470790417672839198309028828075910217937128609879179270580832359427389015592692316514316521568290598016435314094028758406699608093330410336879256039876945131311436585899277610550583144711878195019783504842655685974766113163271690111616879511443109261411958153204455633857874383554795360594719609297847676184502082567712959604088732049261160382840360099000648291136359931716150097578237143326143365629905497941504981962928907638086056801753432955296511538149868409873449516407794528407247638468400317989553853404911459530985127611700679064250858360441072548407358057211638857599312646954047764232514031409523576441715675181274667045359270367060215664040935533750815997819815435977687010010595879559333915562568253271813473543775295681426485726489282551447943535305696560319672012073655103901995150669592784621340304445095831317514216882057072593986652802665480992170423732816537422655816701789882029583822406718997357216785304398106109144124099308592124792124223263278122207265995730327246972591668468306262970096514522633988091249530096220447964529780870287062648896495582305930776146631625606135873554394126917399989973162968916128232826874162213011713500450171209819479010759339879873710768196640974631498739308305298911672074501281786331751150941242986289760542833885408708277708333546547297835076133842078159949519877093512307440802448653347670141782749746024935266115305806517001530246086217340055823050682722786869380649198982199637498500561005526578196192456472540556290719056343206981896582966471120624808591837079615900533437627362934353731484833715129806469065335453644909747326297962863259618791174630588824149862706579237874009769121730272179014573656236026874307363840006042671194831340239743548198322351077119285521166702054080071378359673084875158970127951550632786597176976887157715474484818038427068593875537009142395103603003440844051618503478094963201062712331508627081737542363402811331752421326199630792795567442621929899862812700898941683593645445178397129057962105674650883246870405900312931947826101546828168270650530776196781511026998473247562477884747632112162018127334724567593593403429230191387680702853648443260055023816822690954608404691376264525301845072124323524591357820191131178869467820299980204326823892566518299657350218074386482127515710431610864739816146372021660352598785231131083742880786733720289905383838157121081586118625530336859581805501928759209658100868061525694619387993084234889611650787003138142559613379158146142028323846332864345217310814187640109341853215403165881181999595477363825174589108566765885034038262100986225773417007934591124033570066070404623910155821550988020114243638345462960582435468654411451529012095150172229159378510617625786145687210853140113681301053931917286983833475944623681147530689126942152146653248961475625791340037235358274154330723953228730730480718476360639680675912146969758010249628133476633349594485187232876249416543461260994005386780269804952337965699769215187865450593375135182037380166795295211335187842153882261612543434686473118583644426015448860890800276885535298312639445073925714703162012726204884068665767079757942151518813872817040977109760728726072358430979577672191639146214905796623782654310602983879256736123679745656085539520538397171931408644829287600775414062454871178627562513876363581780498718575319599473825224494672651394172859871823360502069115792860332304638982098270334845040527343572912838834320820248846542606996618574957863351965794279780414276017161756135693812103721047371772225961393068172487669713008938879659138974405315938583551132164699432577436851187828075428081320078924240222795987891725913418984401743302546765970722879618090996355872304489537738460981960389216485682454669468796449392808155526308398514012288480292780815537446942440713228214747644965071435369624101299728213458447215961149874055303839269832068003108531575727030974248714001759225484705472743275474691788625928152824849364591361520060722814978139470474401249737943483817313227319577151408358671562682287204627562143170565583683369881475699343492849553980105824183973276295646077686608628180768135247520159670804628269057912636902033262093591929834518155589304654340602460857310143942809745774253424820075887218938972526731113435184237038953556494929597887798837008262710569194459941838637793675954197490715078359375706210414895902266464056406930252595659760074513680619626129824368540775343394586141004618536200244800341588173299202016333326301476477954823206374509193049027448216248555864037177084824093590275680362569370514187878114736876086059975630999310106235884677017804505690859997118805806067457949723138564439938964300663640981948841708430900249419919977434245681490630170612813814516711084855030415904444089839355136363417127230740157734553669806582800502400060340771739079968468213653471629838489549445875386053193540929977771686667566841764047515260750836595329516541162386273221902735449841029513547496025410444556628805341059350273988103143678151464796070080450695823168794326051198688038794000708226727041213743288368363766997810075345658396725056829039006134501625445234846792973795740803503203466455187642539034158469248685908170332938021965275121278556386248587542435653098376851429356712101768451449179635070871334590938146906474961803265239081635480020643539031395463046240256787749873477168581791208340055791240702877159100024509940919616350055758424422604099293680065727945235876443080858733626497536535977247183110380089772140183411075180416983037894484268103433487324814011333465315929287487002817051214739784631851331154303477651935230494039442267893091790498370809321752188927009812168960562736832768007079373128178796455006034340965934545235918912897085884537342706830380320987820907991041048607656439093298967997520133611830494700699885220464021372138180362509842481105999965029839994914945866135106217913016489764676430558310256953555623327011948375187146035244676321438741369564548682853142319776005968822143853875687496080581159281985410085381137931402282624185245765260277696568697208911822842762962492645065237018422094088731931307056790042844487974908791353798416533501815897413411101753571656254963892713297102986466274578859913069329992114184559019625033765668849647147965458397866060027286891046562313484601392122486496140741526767522648930170313485322730429538063470525605185379014576042740931915934206959565010832609038564961569643196522234243726919518235219000502788920445237770633175073332285622824357790698656602840004916819422247291311134983692493623015962177685571486227066100028056051856941398871883172419469926348474986640088580122582056518973288004518904728073426652777295822918303518122309123775247277498079431538643273518264456379050858511630457520837101425794348867022856262710979965184480066259388417333870380661731708154435896870462604477984619553097095699247591860048982108320784916931545737060984421771086388006668743187251533184736788545013838808822509897686834004218668575188809623204898376647495663811082021172038595067687444533813394900218153852986064164978175781113256514278543017143067226084112846317941742605720197720125564506431041573641219108501814696175392050047362954309924326326411633703249828947421542877021936552760464249027433426501809359251428205926289647817088263389890736850887213241426926040078113116419786316162641553464634875970070469036672197117993541079807126007361461953093791521546233260950470323176416953853125570862314061036664520009782716186542065466535063759125465114201526626605125679707973046255195455146250789956587550131963420388855276461353417172295977024769543063708974462646850821938294125251594564455297938289861521203928735904714698903588813375606222602517686310330444291722743152716707128975943818704300036810277254898332967903650437437884260135753255934466777264479865406487435738971102712948211747785409625290372250031253486533723404296160162001309621531085282907286332829747274383700936922242746602267267801573971479458772369104455504126963613572789941560094804033307896963935111570598733862800886396640720978555224418692683059896577708773459109571956732566600521173808400773272129283983871269769013351721553479353884237013326040816538337805044184165878499707798863091961979472158334676088334015497338887869251911942245307013646835086580937920474877316677234108066812340895755994178655547759054473019494641552512554865856582704316193223926059370416973644745709083708836612482161822448104994594339333587808422406597447436808227270274399709507751897872568970026565957302455837984539154543933640561461892731691035704170636326682076889450386380985002715425869977502879588846051332267202097673763543685319979783726255322731052010708268578144767036206351579560490371755001859139538088305087132512063416447622861304109380363877023695000705259457624095127486229991580759761866742597526592539454871205858810466662067471103699625270934852866971141075695552611465934771948670868739197986569362160603923147288938997483602025095555260949497885369853958309797744940329853859430401078046126045125554742211242141983167825066467198807680157546394156271219605195355301503276600514328981527785533719306235342890820353921960073286867659438824969793986480246258389755219276328535359078997719597390376312218628110408010275634156560839000907250517771824587891274422105389251233010889970495196969278621715322914893108967292771993206608452218483706325441212497087515328718125113524651804580125480545864878930536666186306784003299104019371859223334554077340472697488993550225185157128060189484856089567784308552595902490505013842071167914809472496817406899947433378000855835902636730393671114105283282807550824662456883794219980335943389443498552399446462981645864950681751723464601846068666189637721719891602713422448638349611564959709781008220765443541048172407238764391813089940520973625730825163565643891742002619570546231880757093091561851821584274883907928679945981463073755760487279801447372129111668016198126855405230362818590664419018715375081157285928960729482981146965363332926228902689048989884776467988716157576774843557328796936576725158827650406612567782767381503472102714739543458706180072058290118224829298070393670624847935070231594669155090458425185896702930982036508825556928282645239215997327214436858564904898913493745738057349766969023135255681776625050835969499301447092617320062879379434605562645370884598886510201641833147606549215985307901017264129465028319097224092579137559540990970801273498754756011379805416959789900509261020072710473286563142367867883207213288452319798001548506317360258029347276130779303626581748940365019874228201774502861762972213910622383587249935841799583594867630458860299812490407898691783552841512093906208500019350821736044680016145910984509959629596993600605687897386657722720463652117712148712229188361745247461170302524665430960853904562339396471538772979257843831495849981038933240936290173640404607193886325717201881832999773628186040593748448039897368873843518760066469829451995149700352414610369516459218510319563633546888897104736974887561755368662160921982767466923525879875589541518933875876401846037624441508386701678517716639780461379267161744637843195139966980721512083891501906330693259324313956723169167378592114420575078489686271937022648681329180531846041626084563368632171772507018975233387829585365282022729847645045626009920400091542133831022615953449980946083605880439922120749575141493565696772353875438980734421868134705252646793669260927122488738053455613252657736348212633695295426774433022605881295437304426560470924782077396299764578781053810214255122204501498607533127041091051289068448415885200023157759200672859923452887301798618087973175273230917305156625171908763300228579005382701509099532679217016828965871166557963746242371563228512436284806211697466127609617699119122271658167672630092810211503737318887722542542727455491831985989235341138217301319085657851061469114043799351690450403451905050561485828004816060563953867758947438849630349287579154650646408826377864820703342591342934524657548528961578161429203776202094879468875938194435610608353056829127688326348169156888990113832018112616612003067787242244667801167608794323163804132090990605878668832820534944600949816762246273726132426584732142495177615602823567948190666615939592319101587005735879984280042216933775111808257742671877450232915655049431574211126204901499113070491232171255884069093885648522855898868260479120770027962492993015563468630279202102586220977243185590693785517732414959473769693498427570505501651717989491706013824075050527750040195190753292323040588133928786950248278083379497700567415400252380241018021592451112938159844613128477881592533833505732112401521208327186245956429376097760302964776848249326919783524471864610903801587237433498804855352517860602427893696844766603282211531637582315696526799800564590651767574797835212442821161420445639190387454661628564110380837760271145736786656358820929753848907409550528058146097366148143147950388506085688506346180888934333801031148476842953628473780798758463275714954160599978817325121829607824449448812088299684192955757286419771045361349487635907998120149476979068563571443801233865492493046453450685172363568232777073695331060914776438813674391718542522163090926903687162695895416500670252384649338483151045460083807572318242806486897968290068326152258811167487457330717603923997127449560914127820408224775519953669912905133811124129283466727772386774751346087246261339007451981159855689811055565201132498078325253876029893323661669429126826629929425915871544463975045194183771882786810933927717204736929136234416893480738865358212741977446934683184137883032323441604185228909051794807102939352285458634870951591766117436700360135535599771898142305322272852339970812058221488664852424578690766085716078385463765184152241710251086566291050328134534482180897704149034953964961904445174477051601902801111704532110783112945949569024490815047156551107194694983368162891276009276252766406905484017134048511211082025188245403956051210266891704291527362242961333140620747918936604465560937090366060627514576521306303945118262495359848262487248818173584855325926439587646475952482833150759320934077668554719876328007521833757757201734175781709748514152314165762017889944700695099243174511679369986389856298342327831921312050833956575727670314028378533038919685404344069306130368650538552759112756479134224013955701935998074358909647240210696923751486122979967538204714078854886200082624313218711199460037534935758142668322632103771615890196058673996455419605592736176648028447624714072162091282559342502286238675421906520668928164869237871190100939620253715156017331494741504330480659376716675194872163670519056969551409153023540671890865220872040773769698626437418956240713497019230473019391407846313122680069782420902600115381989498366692638411304199413361245725553526054956974038583921169941514133370934751403867157657921345435327839171047543235810720286096313869399449354123623102038074046871868422937792293790635574718372222854019939678020295136691504366796493852071675831143623622922254092758859419231198742319161981313413517601127929840541684737401975551330497421002440107375887866863896428122654152494263117030233245993358177480315989612185708467510923365246419327987576494938027993595349668755955419256793787867120141460501306279099721682476700147683984485828681361733746054660502861611180145555983546044308294732806569069056133878562609137497088885563542926361684329807200312713734364383974642094033669121064776098865260754000701371489423658847128437666137474079398132576524018957017433745859691680808537363176670732557084833471278556013183567533171948903470633345547863183182237685160109326362572708662472831369116174280084748987736654571403755356604135543171608064540945797858199607918770856526153673076190309736446656413253512430239072092571692713602715095813626073587680082902431341310605153554899116127187683932941877572710353220965971548919379180306858869088223611549355267201552683186062047201192962387307720736713546697128435907920155065720543790343297211029134248568997069134599406767362754062336497824927890738234363425208954430593885131508567027687085253476604994633477127235654688587880501041692491094246188074456749115105141365378614741145419456801751682577667496879438805902479065267526395490330241996217265747111943723290185058821827950613547104105894560094202020349013192496591761364086530896522973382471450324537617412961140705247907537959087999666642250001560702732698005007883539328091115679520601721489802816018648836200478392334193023372858385220217970302093999506066972460680830186178100995010670994204518513916997456477297654864080711701560113046105104243343245719498082260873769593864424575907054354862102875739006908356981443685606747725810750276958038638137970944000719464072164905056212005209787689399662936403427208065138509504648633674400364917136006876614618661665590543927203229193032306133842222302287618446148266633668616604467052607267338409197433568072437182245426319061739002075256587596995256572442235278834560922427244844368724250623801272728767876392892254285518304733838001383522608845942348166557182900249432640466208635042226874883322856710092406918552339182613554777157973370420435794913371419637502983013942718979337894980790117589089521134281034086339382511257957550597083727727531516304851458891477037026562748462261756377200934438641373470376460353021233725483858503919019448543576232869628076720630729156149079615545871250518810210941562584718224626021697321432465006708566387631640312402032734464402039033786799374711563542828521245294961712172044470991406524248136594621208352379854438941419519251600374387854654638100883273569912842635303424828526381802213395979541368091335952977532195864861141591335448429723718739271758051360081654449046443612398300113501548580605907195021791022579233455397575598042034080585044945680434674116384464161364962919528634847693718959670758482296704784295197385695111109340948564963351392784823508659134262007570113104055454588354381293495258395983058554365005625962606132686121689223898609541212560509186902501398781043157229714681287099155317700611163767319885705190105343951458302409560978116200894372506063534188116306014653104873095658412236354456733568918142653293076783834189663890489061646773992386525090426845850908929154242918745078452298021378592176002551146916683363683605065190928996202871968901290882384073119670164506610216285401331919407862993648679530206024473403386324986591116536179670070911162064183021426723221582093619306558736347062313085275275947686781915490046333010838566931445176910868967406683141610389786711880786668373781155724419211631095953467514780792631395711762161556231255892287832800474892549435583943814746153251247374430105676397171257805076864190963775046576352035578285599786258098693961056400484629738884234732395296193250246556659373709593168396023463631622545868652079022712501585824911872434769605987841510102562893205385812602906297518003608971034795709005481504058205279770814094626712530731099736643519995073215434076118892023622322039993872171714516552503075274094442022495507206071545730890010748999208461572559889638528880403239882827816248007918717323750050825683683573665003209875852716929969703548911840923931354849602323355299739943283790716847900476440212888551282034715229931862733380915013593322121547875415036083517399039138269531918352272702650403404686776633989582117953313013888674649304725976378041795906058851574711733029235684997124589925890634580786513008897542662293536804690728062513505308222727899509983670528819704982125391218351474322920671966669036642206493942520034919150697318767775194741633021190804493184931083947568507422509713880915524138284919099681820979057083228887832720472425195806130561306046143317912754349294519835293771852347016301418094773733319851605108769549169804850325233891479035480304428987553747912948044401804513385390381792542152459601921751666401262203826850573953219929005231453953814209678720950918654987617257065374823807203967022761755143759977661133171581625531481081217922220210555090499771689315273000921703200736358571674386596498753122733583048637577991754592857944866919506039007931404124569119767139853708575104941911185798514695913394960009118320643317234044426964161627605269049243267438992374184108388178553620356001692218388076409359018797203925744691492366927396442505349822535526291240439352483966041358764005534763169074692851636529118052934201992342923919981796565289885191239325511764579562617229109911436767334016812024218053637272946688947447552561921147838475727033106207797516550747618391470256969131556861213869426757421259072368589066993003949594171144927947127823505308372224864312040350051179608357290928791728548028996563582878733455872437384434816892542570392537846849153170034546723805199900374944044977063347593860889160903783464385277275404116735502185342622262175193441409812431918172316783923716563846035405590526712929773687887332453292711781456445523184302001293620549582444999179322317668162878425726931042065081985703330384555228545851198766348908038730854476391837660053156688213468057152074746871792139276420426916442853818843717593818995080584449132553128645439144564934368650124819278999831054066546165857621364951032000087828859699682933147032607400851433975922316325678877451552367875521179117496270435688990325442935816134270438816090007022795239001559133629476001760348889485990323646869399658174167375464985526791974489818948617704910255805926309584039082541964245517329329438367262537066737831821449348192284493539098401600796955751116979784544799806481757635183767042634069548920447493554013054655409278075666461030850656182248269016310756608795573257998888713582467305869439179949836125174515648966985026237380050238572185141541349590596380059467145099573432131085917236842329307088292394122281953015082121013376015164419066078322217564856235415640140855698848944264622550226782725279033583312459531415882073000153179100488485625856941151555610170345305945337759193512877650683688874706271685523151710944222063647348009369936801723054809926673078404654297694421436960615737420356909721858029271979679065317524785980043893388755192145801853151675390671155507703640478658314527737451087824762869108033312359588693966934725353484592473825665780419489169757429080126718905842249239201914788985825516209749215711118651713790447791521905358634357980422407533173966323942220432273106408286870465910652387722844891523051715103896611532879696913865515249244065829740185641613493565676119123608383199403791550601417911227620234357290940001519194140460454686797402579081628455423758334470525050119547718200863657800674631058455654612030963932418358153360354652881382925762581756730634374739437478855330249877315159909645136827588337036300284365678139792152982036544672093563443449840949403865709928020271759805833557020908925786632561868901277724580325765288905354385701662355857537626134998747285853762482126702402589718957218820823386163689117035639268884517932352030423626116673401988034450190818077654510587352673333630495466771644090788211213105325598325755902849512957556539103556059655951688329411321836785013223052490575589535492953408595160463652324323483530901791169789055776295050676322857028542915874137432765863445019814537191942177248451478600554738778287885053567687040252717727090624562052382825697121380825964439441727534877664248536839924856702536027212756844315790853321201407274896810878695210655050105912393158542932303054899393405082105643221649037454445751896902761372860042767197687398839548754484179626907237710140200992583811341310776275270775636388062289768791274713374542773953346082838344414628196518943924189735980992349028905261807858803966939007222892291071645060033869067437209202412422012883145504254909686106205469765781265956565878780197700975365015380642199630781056363443392180134352718832576621058626516919056532001832740887783180577795704756124759776254092997713890936514921434051785813524470764910677462317556294348292221104784999206648910606248692616518980523180708434721919092095613435670123582904090602946242071026752101508793278769685733447397263127348165010926096178208410890788810999486032120377955243419134764522005200928786488322813094764434822428746171362198599847783541334544667876417651113186661845863622730935402101721149157122055528993011747867194291822102924497672692722500416027978371254548283534224536018769536491863932217876359709145706175755761016532015852477459529725898484327288304581816163396708394096099430836635014706247144223038177070643298286245333535691689687380393603638849724610333727080530476805523626784659450712492347104920346599790171650269231958668772199878383411164999999023598065486128420957348697353957378620042908921762314673982658472573813013962001488773846456923046444789448475420802303012143293261292684445148620510730097752522205059444323945522208376250982517881006510784525324078257203894864618243318148905757021811855091174249779140774382243162564512181731687921228619285405312996428946403709305237486353069405058870048408718061208453581428551226243853113264472348455387375601077339110615152287605050806333679401346308194284494700778627697793225852376803060997426199047510955363152836646586575335202044653499503189270386718694186609287011435027808112566064616145504102085031783641483607490539819249035507035769686879506252492520743302588994614726966588783882414928545787611808225686902219481993695741036701935723162291322527458083950244950234862943814580965449671690797116592951172889869382214131140589561352884854108436140100594461823149097112532735525783937518276388765686018185120936720319169350723318225661804747427552327359761693181301466191349406018749267657060581347284582893720786246205491899237139489848928664509043546510791540891414412645380128746840378004256678009547179803018301132636456442546081686579301265792174615109017675326477476560837411083543959937441371769011232472492533432566742413941174689795574172828664551353912074058111901752284467128877090959003487514336738517409118271273229069835233828262270401797162710485086371273214888530614250124669796172466282961555803270327639840685279700866964016868228450920030770095661048300768305395732617851868055643563503409695039188434560326618180871289257109139328409982141540876575376560854379626443830748489148735982486097735860355456586242074053776596396193274586077186756056452998625703642026058821034694191479535214645176760465517029075134145336703531812317900217029691581279351333553951537900290703893587952238570754287498624995099583799531247229650137527849979381218644106682907748018644771608640142338411079223751979412936561152531517276251828041366171022664640584715398439685492008700864553472116841582664020484285121906177009157726257168650295984216218122754824211391209128728725432898386004614616220646797954590864907635212050845886558659982878490992785834971842860144883209481076832273437014603650958142679137953747510879864065201140997766375186034798221494856053970399216769105679020188405824341868564768936941509680128374543998285004970798176021490035476417122163330872253189406772728253242022155234425744538080051614682635829007910362941713407178684501354854131807598535701579557270269522845312789246200810831634759428395485505751115221149449747150183069926671282594092598283514025790582689723463238458833926558361738627329073249889233444440989228684610127506209376698404122471195723792401327458951058505007855735443243273914756408138689348259268717503819829683559119710463713442264887662477554849595435411617976376040125323267257807036296332306944128055737954665149117268037822533204654360690778612577917777223975305966995843968746608944801973100101601745364454148341266033391241341617107263443231432627148276229235599156627411903796714077604834711379900454206646548622294204618115908119956065748082891148800758231185819895467316127207671493086580144630470434717829115834273662071073357136169563433541972970526581646846751251174796632948215462999753746812618364127568344680545875083458471440378733131019139043455214393216614443355170157139748877850578583788272906116995539126932651867859891644321516407257783645477488676106945761795151795705454084541753462364942833956754283634712290935716653666144410174592624797051919641068046228340382761713817810808877333211499328991155680826464912792214582813374964471213102074334733951285551817484240076998488500635936474566438847021660213523804324401666917061807861331308114546310821292375210822673743561573508391374241585415137179201958873316322984638174789179218299845582786569266885008839172583225534276235477744804847857629722419079732132797902464990076268501538765501480863134928552269464626053882985188470464159243549718701290373066817122407554084983971951972312078402610587365375680348130494978226148680706986837811508932065054687983588555404607089333910729811851074323156839793782342920231401725072673243647039122448340813312433817870035480185844875619243672015713698363710206652433624076073812528440901500375463472663285061807992879278539733887079015262248756153554349282539027117044733878310077746063208818076043731811697264619636781146044763853804493273235297101449920018954600698215903480952442986681347668638538278683595459458804948789912749240593523425720372137096210372918233823067681490400456879464933470292312324777770225858980861234004455594468422068933991229400773088651919745316245350334406650815483132425718988067153937117598347712312607246442833759913728396414495836883137344370060378837520064364658769541615530141805674119680104296764029967187270149177846688593970030749606584583509013094637250321229434094723021477572986617238561898443279288894185490135633531391790996797812093401777554022139658449967238487194483927653804767862373354290216521334212986189786577736054363647464998827922870474928168643568565937812621214095614094807717991599155971118187109203636772739350999926218732705239467183159360449076374795545319014866767837796950896552928504694752980619840944951041612695373955888795394440444877734662137276818753932502825605956167461279542339828344371502953039519375770739930942422098673602863924548625036573819621655758684852337725383867444576286834532630043003786610849545480003419109927031786164575518128558580271910364473612427739069060179475367088451753186913680473013038999967365735622435620162522548399210070090567953624046141418923687438758432514367751205549122835090056931184011160041838644365525814063570311131593051503615024808153755080069654198929140481243806395318818931891311927637584719595757343776680632706360431621276862320051873990805626003507597773090954568371463677202868267822373017420822867848491835940041118180401522096278907100330042749382554521019049960174173596028076131032548457275583177034480266911007496508928936020375628234315122712808787436603983522716741311484751594047757336310287507529089332746899222710289328361109170699339841833909557678671095769263746653960914859284316234681853351816164984495950291740564187508434181602411320286435246119742260489562026132545975009398829386000915931697468773577535693849503604046702379197154384240656851620256601763475620840858361280277564306652486155694970028726567986035379301547481779096980628250377673636718850058920584339638947378164685020274703524853129950966675413831523690260348269760970158717477548141296542738770249492955804455687125948966051028408651480184162853228250240147535527401583599829368604017724761547774257127288734923113812704643272411943186753314285572227716643451594053974018416326356071127888046659454970456891369907011577245819103619365250004228252705551112222168117861652194616153788528365929290121132478774413026452494237350543692793549210227692207509354080496508445526836510304724871791389228155691031157008960337110825120398912613532802860972257349862233560324953278115437960517312387039596736990243825350819535520447861838060982896716751688678428964040039437666161865082540577847521699614370489674180107584571253015213266031344747807442749502518233434644306452171404959665824991120987012878145020741683467783870673010092952738503187263670152913304388812845308657821893040304442771369705531973250098619729953843911849726695607732894738216997298550210812377710712418935897458355343432021305015005216594039223577206191334165899124432818235183975680905787918639251182254408251291935375717676967657628677779940083553620074034727752630234366016684286314871052482216650054856086014456781519419414960636383873023889318392407734992848663232342428859767102026462330553529467279779514149199877377125162732932536293657408300979470943857121818181420454468745874157531294435919323320614753875862146814623786489496686019898102344060827013434613898969647561053997737339324713619543988170754103120454060498028348005181763004116745838215202338161406618870309589817537543836539968064489866900974801533954116091009649210329360488661135694043434047893460637141880960697544854413387685670104539372975690603068944177853394890821380300020403914297142150863165701507428841633165612245287683020862797733376808071527557693400443424867836597683387215909342861672559900416921153124643416873109147288737365891985357957415710538965951686517090574126451239058587763804386005478743490315851959118817740518364381888604285943406425416086672371945438729177508375422015671180261503787848553336712580787373170676140544988851498336022510103384901145833408706292167678175237041688445395227265190332273061637562807990619953948799223377039603841797721000991289309366810404879611556880997995496384018085369338606251701478351565056806004068693386331131808024445301016543309705493891452502596018226451833444044842126702436332881001832750785865666179544592289960996520168811373908770313866697507234323854715915588263880586820577507048481868397500708525575822906265138535135749876276463412723092228880771333835044876952796649283290684157264537387135986996774234616061389322917380754555312895719024285614564683606574243592007831982784443640615804090244787761512148350379334796460676985255401401593376139211571482749929650845496869186580451462949617587789018161674702084080679762871200191604701745009254823724416660408030544083429633708080814834888276855997034894393784038770211156698344574782708075962391391202553930056742356503113353507010793381842815006446870613742458884283805682322115897163952928594310222659872470496181072255512294208247412721920121610632944586482420047239479489651682399583497950504440363979195912623114031904473765625219400853197133729614114451404365193798828929302724233711707613705330548113811810227524277977826605103157953220221110272801133167140955802082774333384218059550141868432339909463106050592488420280626807564421948748142352427545334791146191768763141131281956106245762535480051214653904868383205717857719222141423679328545634692692560016429479612186266211771885366906086990148706703348565436509727632145932990853468039458790036504708796242042465255667616400078787036145930507392668691799058073374197844743175274481610053174760183614642210212788026373152461009329065625305944605456247796412957119915972675662345532417614724573125804482499340617872450984887516428839431346028437516590429298427265225817689536204676848082831387885431437780866469355284106225408647139899830378388821061266728604565811495700656183678450929290049556899573280022122079653212972315775891286500975869292842515959856617058199598584576139205185238210339886172645177555987166253871385237399061510286359913073303784083351656533843861640997945113296997552458390782781972283410672266612034279438661651565018740783502556177584426812127554466401554596682605201915737554320961491399226696258381564793767386056883395969232846937053511333426743644496415011484601811741320712802604707497638277243580771679793154164977985088752996480522735826178450343914635374446146682457920498062912765387658270692604112817298053168930912903282974139613966554463787048150486537868411662370469933024504280814979981316719139565345301638199654302295009607541354966598174646690011245568613794792809562701370494009238371779620407108591609145517048348830933570377343949033780792379569263912358460135849102431035250045715235309694865083750259122920100103726543328075586526447354694409004701669607629871212760859692072294474064602618939454990470994404358854933814123793202634893914700860167628978381041075085005351165159464795186416944105529993405215993886384761945876123963647034725412298883826584001267573196060941240300958321804830829674849316397709446918658936415030291453403153775533970264814620484932232123775428822558354413014862231838785587372129512337738308605933016449752208164812841994080612362677430508701121802436743515239707066970588033910610097680999856668091125173850961573266742750505501279934322730255159419350368421421010082906817368966923954252819779576528317916110790759061401594719624855074726459170243626524094479235330230373737246314650110138847513795152064879466246929781156434052723448634631002311304583769795658223331635979222809882611521121003286099795209869883419963425973636118064086063618599598527023140357912546319323214193855160866628926496517250324564362939472546998431676320619944167331832221917493691269619174822360323053908717475860566394137312617028155681843330141144878020777144858070402500051428165880103389948588039998383857314651069526965886817853308657492807453207005981731594390057244753944892203084146347733323945589540685390247852334485608297818566479563826364720088613695115308255077377285053552702491906222929616075585470808607370310722999010621056002501914925039819907982379465586044259467286966298667035747837166187875082676106549743956185371970519245744897940556133779160504567166812102437538011925296632795629093184036103846950308429389753421222229656057543073667934926522323553556943686162116335910505272783379350217053458030900372428780744802827735390464322658357241684643449968944976891440557724663091101248236981312059324576019540620725229539790017432564205923359268367881526548418397713941993771176856974609850857130083670313387245807560323953772485686991762384064906992470129561889573199839055482942577096224700425301749863059887482308206090046199238936722317687685449260215179644161640055467621288524623753543993899447919872932839428336163368237309907135977921599352623700060708276143753673850578094935791355855851818795611492863953227217099738947166014636929835816675030255228077710088992314688014234513462485283953661217048087545984362368000282956231940991032136770100528689037821561307452689595081373123161290048440419497912568196209355357836018327156900538186092429971684577552989930241326322649918559372964267216085717538795182351689982267095552963754490480700530258654276554462338517368043572710974253383290053739630559108249142303987409363722501786120705170143105454468486907942884593801384375528410913258652660490288456815103363579345824142234491431753205903925188647455446283548851363375817192658329724123043952451567706492676513424995850396169519139319699969971199447791326260523934766282641033511458126320647886695127312317777447695247846249558084001034680988324788956380130650739705765056391257069785666807144049069125341319060837297881747386779605162948501036353231508320037522769680594530509987830614015291678635626033041707077361137943918924757313414038427176649847369752636699662196805497451327209121326319067103518990684795477931621079191617257807909897913719006878668652949821781144409332487314394305535761304183372061536063093814399803084865292470612487232747856902431442335340992932532651152987196316741506853087857068691965610668909791417481586720513986801141004279511721873110522173172822383479548732630606680147782743216358130186505856326547104409889365859025250967298937465824143530117673359687666626696973048981130229370162162095906028033845661809163059666205334194286484358069216740513847514257742806243911027930207987626354511214799424139973363037169467033181746744569213753794084242285715961017674090488023389687066154863859561713073062575111985623411464242643247502678447204807602360515278061260331329800327262402477341904357591765217856718115768506487050129670461693866616865294672228349483371432019195577996339754808052261164647513183867964651313489056951725462883018714258550831304929187064281058844374513949997753546015115813666126247338479156168630073163262918404214061071587900055525069213991835018569912149883711693293118168542283010656534231090425872127224288345588829845350557131582929441731344633320299722527357315754460192690089567896225186788238020499248014891807896702130689613678213107389346944496224761519322693024838846314729451010081531697423810908577626170422328350993406994384141305652446680659029732423736791322633835604936753463487919745372286345577842135586934271094623566805615973553079684371998661138891174869114196397164718605098772818376228418477890267984090630147850849790232258429093549798048548787714852928735876961813951862135578650665248684156752608723202806188046588164876763679397631289084938344615143899030942902618167016816731076442757321012359178432948958848678912786436566491041974879479798925063714893038217845395580629627119017786694842279716034712266035200134544242583693377881251176270248626020343725673430298351964900951271237620945454637770348350520070930534554494326514102336866282287338543569723423573864110555514638140992987040896965678844525264767463542280001142197730243780032409526258899161256754460929170979929309789568699784469464906146286615706343741846320060877513215688469007358163155148539030519855572561411700122244938830509533430011695648459304904434352288215683092752768759324986764037793021891941855448799504579955486318470868376589278543510505511791136348918826650447253567163075772750939590584053412754403272859485629789225444419838188408524084972880599518335901257648373277978013974956352466127283444875974464489738944118263715031188459342687516870320125103329005215312028596941433214633377172886609936733896441997768676354977872150713612010935668092254796212945013009984469174833538868039985293936417878020590064992782040079059128487408112517284205761759881926438582049330844794984412930026983952716533753054811937567060072283866098512788028328217702747098068207764071068898613791527548727504985414363086740973303164623290104824839457248390470338258290129487433189882675582352358842526232569374856270952657508392923235248463956369622842350179332053771444195817230794555217260095609432154533071276689068644164025825065912814566834998934325722865917225671105392744159273800178661801202625446170488660475307632581371990486873044789990328746367634222989866118103000528196165222752225918999303214769454346163068955444332794541812754425989260012098235036211730543102796288319674263878490499312708760574685459038705671400426664472473872630191471567107038701742094634354495382082880180060931175257685558557295812230225718386795898651055497637821631488719152761436721464240778804989179825904765819510966536365156216247381681828886945766918080471240201588293717378557146840406707663693995687493053717467578015921446279552647397958470763935787515775655708309658932892899917667225405612032123268704981765367186421501590616342203881553077535636726449289953947076069588185425574001332126648476106447396275849146507857124124244245440712411873233233314910770573156539537362255624161703626604439118054180133263059614784591582553186936546773353079367660832231706122464616914512268915848687557708273585533258881197392803433255815650461318650832687654253305681593717977575201005585116314487857155508282499349950084591982898559178675144868686927036038614865978571204785131055241641057992000721582172536896557263942680764167855065303325097132545728538479616342665495347060578819769879799829104216801829832342205468205311754202285753955837213754945535475140402283333943901041390988356197921795045409807569407138264415490349446092802448160430150858156290709443493272393474478995935219368090105770806190678407915159534617150264811145621221111255828501058189312962827055682757751413207194869834086609997270058127183576867640367931520860198645539144204597034734714853965200965928609927519191805646433015632499052344440140415193096565426591213604392646461127848455578381808171083903547493308277033349616726539970921852014974696370464619289615721728896162753548450564791275653213016723528855857308089238643528314089710538600372329654137133206941893072696209776301964391844355469413770267278008895024503751802960775970859093505431918058435986868759482799100832924062650768872521781440981513735320020883317234474995070387303761766382252846329732227731833178840134340498925141461103206259425722308174350946681733712405221028170637150253296797080937504481987546723373523731188839489339165060016860467344417374364532318088286116484614445567849312524375492801196992805412520369902701581469133591398571252171788158008896032411341242932503358712779259893176566201539763940815076028046934768765920157587737839367895861470462200689274177310026821753631720781765408671988908934278680355699440900704044531648885783509979117991236430589899901556119264083772071700482005420385108370786160318269400004467751581982896730103241027169590516754137638412730814191419045649707029625217206441390829087256070782749020116064452058708449780541147265826538493314776245953349927835201313492673055614151555298695614163497395868467106952807704159710029173094414112929824015928294262480820452846010864695842063089753287491438656651674253295807267957931424674403591449701891786635798160151945992029969340036194110994702381549835846986165079051912455347446739880028733789352691473130425087277056380806674225780782072539601146491987607379696168349515450834666640256836516620929528497417804431512320975221247935648270654785460647566597401349537324245312662316711965816680678275309618834084030389423234139727218725608836225090815867045554259975228724554092680684278486006378445714552213307682700613898436263499890797382097638344718811837774449556192591524728749798028099779025366949445919139249510964396887592495170294561118122291484071009793914637365691609129750635903714184189328388057526669699616521084515216367552702527225026068529686671652798517208127022439236248308301962207936609535855078839949041623017047754497598795952982602756348255738135580809733592064049930332997117647733003755987155953514873812654937290260579639413161665899273309362751018572730478601261920980384012205256145560289276081000245972587524898977940464921487283520304717662850946067982960267329704398398684256250121509211083895569523987709152551196876541428084417007145488095905477113837983174197975775410045763981008558571940545602253431937369827240336310678477786701702189516194572295440671574283729048465799684887869995626501676993125300696255608379335502323303688190377963015345437597872059648127709493384720947983576538472738100809264086165954980985353604013212198680335596249266377571669782313327911909368272347951369412134999741173044834585793608199492686148032350608643604253441402133331215682546012276674703776199238320193070603005831196710019724283351794398734380262967495016787529855082166329951101003798509344659078911744476424907414418175911963355327242507213339211705626565276661708488709699077962421692237903260015076924944149632957313527709506411640350789629083404983300206646720719994624227019133857745857047896837694058664670661441586171494681792044834145960669722913428476098097196316257479233053156487804487411052642732298972673738149412067975812025841675348553148208872782324019924169793352126039502234511485890275817818236824512459050456248463791633411495447754622619795556819787001342566660333998225861981543999789851982771123966982194431705856239151861109609492287209219853943990974406831319546126811245131845046432361629167470415936647104651535210522999207873237021601814367593438495130811535730388649916870899272644875065010667186381924136125674033390061644778497760343948946334017416766738217642554987277868678408686314483679262834879065456862310517059617461992967887670310431044281359122353842067784671081038704945495611494613798251128047597128942187298664849792393827104079164289538116143058635718085379867178329271846212068972413326969653688125027770639398519194465546205772709117933738103662707475312714184215774997108748796078520710305252515674994817975797816564577725093716027399990326638357585648091568535238914034783457598219238093648067353105435078592197688957226172223488560937914882104859137382039454858152729166849681962447024072412086636535510703504197285095802032270974359086395488489002610426649419654625322886924697452874277694470713716104200801261794226121644513863049744742985734654584679146323959211570909101206129965272526266117396761027198526258412669281970548069696229686879895212879423040488305535808633013655319919888331544300169054985525066037269720043355119755008596311709544716084157425616668190706003869930586932765971657273292490492668310179342049409212017667243436754553017694296285446592701301039228036793033988400490826281970090592598884492412925955836563166222747898766989303996793122126706861647820592800852670769494136539431005973678700278047918468148272125884740402545627061057023037690768489218430781670879554855910748674229675055303659565001325079390476128307281382794349759819261350669157337032227649926799129911034278197284757907544066902722325517272738855089481707637152838446230544684310905042599582598359800186801061625693866207231498166180780221175826087493148021801882015744805086982918936181292952779106469958536260356206979820716499874942705336768428329894285044389367763176841640935036670044630392147295284420216274502579203916856176627933850392328738345794967456897750746653841526920834471495345984338778250100363486316551837086998708964625093235062501800915903271244853051581702173500877603542606015098294157225544643575811568043979975435180671127496298747496079771180386133505389154658007853735779704263359758529633707752928513089915105193571170000438663883281148397902943123329644627526044746416720906798238783406102572104096885267366489394326938569077143876384161972308846771494083581560643759468145051164447642673782203798602410148347692083222138144237852701433300281538841428792403267356378124575570155493317957081076370933755793588479163717570343978990907419568985207119056298537441607861340095296976221201832227288272418150670327862669100860710222074786301338202017934909047055207694679792798891548578231496183309302604441281815791454990711541332059920516429297787121317084225563136232872033102706762179203121883299571082449726885960207593366065155491228591828685021458987759816682373499645547196503185766713600267615933805029743497961996033637586100672073865458472816615517669177539296289107364320826034385665000016900360151330062129156279849428660055647572382762528856207753403789189034441604898836674229346469181936026231696842017489127592534246092913799779817792793327932936623171425631960225541738792857261586504619868389912778118170996649250078403162354471451815844979915611854461109725553320479033768701915209883482325656872854825864525630471253330004351023911901287168438630210633710401406734523242027249622048480053307080902308784423237680851151896346236253622935539295325227857123815451923583925552544511459087686381429140318505736695145219386876113709195810268248762096687787109219966299072944763727113676835975394696197049505130686112544058385018058114219339788097443631934226003071601745063756646649567627061214059630358815833446899361518198363138947486969420495141551262515599696998306646189656083905618016227116047949417559045124000162307322402080503580080849429607528439446315948678958225555903940516135706405554295730540444563197243352542894361754003747618348851688243410282510922242135294145925032481569321296633075919682035619435903776241169745616870593698272390325314514596900271284591035363474387110693611340388946208757167847411035413721030797780066059723546636862557782074832582105060275425050993755416335803750429215635882605866462650318993114563304782573683394113323375663100725712271741268182439893557902099319424571800585882408644161297155746050136112482842611708347571759880514443049471133590631418500642313562010256963124470684084614360166867025662901557947512679555825833067503629148608315741920264131514991989195236087593721380463672586933708672186923006047073878611256629343098208443842762212511984144991660821344530603510575181007194493817161056948877685817588405051125180845786554036780044899288192608815061086903148950474831399743608750994782432319737407923896655168972474632209092486780429774163942737829686018768522172612010186731714523841373948567198488081448929355439573376921894442911651370616526822780471931422522168086846583908775968092918554000487857134717697138025223159915457203237426112269067161183070185644073716515960681240288157802872939815028549636389749254203146471698646219314887042230414733295343985770350052268158213015243146174373403143402929431053338693482335249182365433055087921930061876705092154013127959279143734676028948893368019412087406814981741799765009387059369466428307679253216978210406081438476071120736811894215954693106034932341453132793592511128133472207441068497206525586803910706110368044610822056446781990965635004276094210547407962596355653101176552528290447363959231648116356604316745019855803472138410519882098102497864208114366280250209283442204765123737754321978829035777446323576973517787208156225640725567270387982157559845974446087827483108782493074890334201060628176810625193754062236331404987823138372630421697020732277160429247837329476458373857119909523282172229979690086801509743649818661991813945737220210874567220095102972443963212355147430851905397532793666367900898641275080028467091920442341430259452374813153148056690423330373838740755207919671338981287651281183758626132430537498233894692787949778144461139295702312847670433527535979969686634894375000165802264774750696686142734216682484959713916448964658887560162963772246672070155286095099353601244488089463765472340654392712250094616608382979878059338873964817124137074060644440720896664702855190322465992373867322769345616847540486248724717071443033251766857651881103271561484318008860886210820075636545085742136399215394355208037872223924597572120535621363494865628742191160594027763489878223771005004030975524134107139618514792134000199656277439776214290691276034804498029929402143276270894748000598163884644066239747385680516220554222529383110133435740107297371069506342421585993089345052122082443889650184876296064145195066499285724301337539261241778694060632717742945505445452826195394320293189930036028155248292092019784584669860078444574941756243878356330202464721987990485978456310628849496934021198715247677277148864616947489643767376547014079228976612430839714775379982480939677213363878042035266716040224982719395631394180191981040990318705610362435744616663139690019801528005684672074785435420158823046824915120956546446285629855507013694407706314785838006399080267567136544340610480245075094934570474170345797530941830253711142282347315723168094123650532115261639365108218558674056438778868876286687992739432058607422235236132232778042719355748820426957086919391044116332373354659272778969942555459657669724279853950761179672559622538249119000244437872252399544175879627503280729467846623638749237994475648738671094620444968507763467400500792402595520273810545307958893183273960300988645208076641171948303458645264461332837627224127163532981767712036366075008860780380004736004922292845575666871688112054870044825695255684332302630710369226361092018703886937445270301563977615579325311031653856252854549515185413492138693728463436349092853700124523966474866364849377423071749208629425119969506117340623014476476180272843673203121199633617721493098545167819042111682706570147832486095529410475776018714852482689649557770189680571526585823270597062703457205219984415957579531097949979505436350263464208221362928115151159071441274744986667826253123584567072837405513567011575436258999085923315678772908477412517217808198505092627721092744586215868580530759520748165950504493292558094452554446916674931260153173935045360960605767766770354013856976364265973748497598617531979080346945284561795764842279233994947169273207611149635541161458763285229507499441609067633032726623487520487060570199975988677486438894737028894002495264434921998876608058899919256354317933827607167209360282859979837270914397365415094277476796366498191995162109714683986848308492781680283686374935822598961314195646866831575108455893809247302095306145402878162544731155209772211277645626870881819733307647464611617031201260071621994102710397731970741970930207676236788540356984778512254573853504801613134859193318232370547537414948345838059534424818671576602195424946752054838687831091698469194669171003927829509585843410001934921057471045384293994277845959118544673757908538872304185658275817775407962953889354675285841935155806260553683840155210647570148653463457424353110529806315983431637488861251254602454856456730033449639206693710592861039939982031214518055865518772447127741595311859967710294434113356302632545397871432753739771676797464220012456418698528386330721937191551713106533568374793715052999124561543469878489940405151758832206849179787206118341072913371572705970947021496074185577056084522214465372577786968090967095243283974431905311236055895005590541415706954791008883937569310602146143050205207242960973162825714158360623716881310774601457517681823873866777527356370174693342179162612998331537263928663997152469822454136330963382599956620704869917534310218432254963534044442538790229551075067994069102056839868904501590203658812592799208687571748347672583295564806850555865724517401576274589593582737599419239383833128524016855244444551003348887618701311970681232483189194481831555699148396818369616855969110045511830680898848501446629646961408349181511789570401906608948623800028027697083747388445881860091465387814991357708957323173994081689260063690742398003025746745373980106830010639843013075375695327534567083882726284184890634829393671676525146318655413405269272722578835785922303902443484260666496249665597754612501025049462866803177532939070898596818311967186031490758222786732162119211805891533364421984884095605633310657730574958172913167892763115365656978775504640386025511512714905399570985387645923095885529742248243932249154436830264502369110510579605886657471894487623675175377310542414503882483577595152455913891277348358684428372665532105139962284920947793000216365260040246122906592405862174698474504696829997713715226748835709117116650299686868736734328819963657623684782129985514645073153542681110627284862865719972585256070240990175820784324864011425052318691159959991484463111417668782770704824600532732967670837446177801913749192416017265022110147347980131047838396369541134553510525938859634858198287033580907874735191518595525392476654661094570386336296102642298339066486740136716942311213558871777970383418447489046480551899641134840603585048978836114778581686038181377637187398299380727629755198267989836592655162934398977726884270790352594211914217215813561063817807990684133648327528844805309810155009723882936727747427753497151171173111272248393130952725686496464212812408763328773263627381025853527049509834722180619205485793725485363143927127805846547069228283569312669281247908357963276732522175230809637207928873736419197940592168818498308765962280958679263628362351290099045804454663640711007083940491204363965241691390806217843156838377985897162740552646860796039335407452479813128505531262011983429931229391202661292382185892695054713346897781400050559737662638205163165425518610011634259889157476408160780638918333278447210349750877039447706411993891909284682726337506316014121380581582540477588899941159170695220903818872777873429101069877119491495880230669591983952517855118711654918552283173783614929262533959369767722556527411430758386879821021763830965062743465165453424935857286316810254195688955856547636700080319996124050627051113417658476846371102539611536938508594785656702383310398720059171954064169302016800131991755776319273672511122605238529015834336340098107637053435248949556527758662325696396525827743746319257944817567712405029942913574286849202080542579375874304779014320926064885003094990151320794293698053864132253998095936307676481728211699084539771108614269841495166552389470256704926731973590253302148042266529885526378913672131681348385684548699894462589650528842956678743751688274456464204039828821028424042522118856400264135518355517071956247132118174132994238981420385170181277349251992525272925017276299742038917818564226821964319591369206735632045882413538070952507512349635132904540006331543502687709441182316766964524306110735777254066594972951339121184194229366111844136412127806472482046812642240413084829496142577195113633457256678207868205746830842629772989507000479441042086175793543201500653869109400877969901334228735211338810264640414166521164477819621657985849331743442320579173795852676824511669095486871066666193995352620233031308326647970413426008595800926602476790716132138141438531420110511054833217936551225803815243634572868630080930513603088447775173745050854729259371510840752717622195898576374693395463582725082795849768389538092024013429521776123059020411220051750477641372687074690917886739016854085393772021052136102572929616186809393004405480420295887017011058749565554580595078995073457373248619761482187343202659058969954668831189590206692170421870020440058749560394141326137852097367877503862715407624586302744366700038940857230415948792940344826585247812923254630681251041362699877520696316146094847651399410201241285446221905962308500458247823816541548962670933849383202339512774127325567216471066326820251607573733554235575739971591399265507196818353959196447239288199275032252945643338395695209201456265617862653150118558479878987044336515905519388413584869428675766715560844353815117739081587063358499667812457993320646902098516160329760221801826428579591384251073988610960104233918037835435885691217353447378737682026248411675160105866491585099291168148776345104135487642126156623865248799613442933292057727961839093429138607336959192537609331149511577514749354206308316262408957099292957384027046850413245199784867185183297146424585478906565388707449255936579918961291386569816690748195307839526973482858126292491067068380876374815558095936197008979548423785433838598405727265379141508786409974655825635783710721819939622414826778900648287373482283424624504849290231643398207325702780487977925397229143357010721075320585883592377143339492306730955040119960949985038729257702821860959534701321578358143052099574694653397346803686867032469271592311201552302767573078643681601137614770326867267002410486409376460874184012474384728488887798017533532355207047211543023608050716173562892185298049347512225307380109802914391803953162244493807183857877137693141327865723522024551589607930255276474780658931074617378437903718674834868501064639461010818982222498780687134560419547615102211912327192430882937038902020434196168418301743658059857618308964524610243122181220442079530612622567102804754345518303876701071760411464473316458115393976552028693669192238361067681176259654745216749418635394861850960390902055236189514600909938983200738503621913757284554851132117614592807506802881699723197963483640427330456220260629322089117640802134421342667031241147573713442986058123121423941100914342131715746232807875692627232409727369362001444506506243950928647428441652384640936606520816436128812352737538025893621112613466678660330799694348072542852358360151047130504339218472427512739217674387338086220851949771358629845719226032118529757533167630166868623252953091449802349771910720979142840628459336113685545410161415729739741189490967432077412384719702269538023592704203011976822020170485483953480122275008431007097139692790326708704808221140244349068258318573960071286041874415402897212764481397092735071742204727555925590917612477949716316380211601364323802494182293136288670836655083013917303469518091289412969446310633411091720789332884875244114323442612852958282956764616873310380106775139048394401581442481283551503871776033957823653898027651176260433452434991473463014477830685766717356656119017960725443304357355081656491170740269336528890454982918427923779224260202242393747606525402576880871700767281374440222816159296215082164731643191494766191995002460494326799947221078498385094365889461678128631839474455087674400501955725330678352002972569528869236107482877742847156753847141478353952508416928347104527967813051988443359032086578526828919855419792224118831241709540784537067320595749570370167173885742336273783797746515152528301036024180594935315254799410661878503103360506764632818886575948173169382221810215031920590101807719521276062134096749029822832577186966276438022431349836688037899410063363414164347462801436915396442026983481600800549773735751923253799041716619439014848423315303865375041159814544775558045248228365413910417112074131681283934008766671152124056061518311629244799622331632480433865857570089980369788098674143503758111955299568678158797352638370186543559752040273244955558058525860563199771271373485414958043928864929243402420466591230214966516708127694423795001912822512809333453365519423800611336311691871620847762944344183960206714003096709766303056420391077226766728676849216054044943263623737473328943819649775895726783718003824323725705221946663868466587087767585973917052412765548416774064605215003933236138024675433538144875446348287741253745031514755169723653481580827252356070948413650486607590000522581507985754883371321895689906691424548026826238951144385241173585191477737111578344472910153343043019548338150127072021741653454110035577829575676389767918920412127731128394891533340152396482776924483702904964605119676965933928044816348703007320979590835364929266650093498978567178242205672683194868319553318033640053049970405916912399103706572531732479725232011935013431544711668701918351106949173284804032286315560536852531610387138967875676717463281661167644307189937848758841823065606435274822641186579662129366982273527881938962665969157345047718682000099070545209172113272634550304639572738868057040390031028902525480161500186016215534760378676554259771854277721929855213722198896372570534884102418500093540950125631446194057173200178387959681791186634764333887191447827138175502636928598047196803879947114002628085450496263310488658107467810010773761594054551676882735073132955641620860106378423517399913195752463095240397219742147424834507102573417772346978914751512162291001340968064357396614963416428993009998893235861347579734303909260661704146934069920169102657688723406449050256322450377166364410643382572438532920358065106355915027319549527090262863568672824909065210704554535054889662285132326716561820587407698883457963886933587909236751152665585358708687459365416363261155750977054326408478639026134294787179013828733703709682636011210292960464778861346534892545056462741649819363874370629093143800757964625236465501839494853963994608760458559116184347408739815023487270750620528710794026850281719549871897228078315132859248935068325645735543526936293866007419142864911372531100411197420959578999054619936741043385285182886714408399539046714615021393170292224765530135925217477405036240720045385223959790215678542476023651221473298737695226067403366990065254593330227242537914058880006839730562507161245096956446497892534804113504613609906158301375274250917346949915850725734272954657314735631360781247641847561902186937257312905267624189247159247293487083084324284960990805617149339794495301670333439522275002547450513940329373900993539893796333815104924401582293974546115942461082807654637771400499450509076316090256744839708244290953516736485740947534316876339762298084929960555779771361473366431402843355521668936490127090977377026384071846687653508838338274670378407727064492549144739194409394293325259015604986351748761569318725996366668824613868058164524777491969611098773480741836940271319926150561944770241962425334044643061629529424398482043820608989441850977045964046490504450069064676525283736578894552958845670162889378595652422956453670293565564779772349930443420586582556175385185074107584673957649074777596999226017011274505753144552517271913916210950176768922293661022509830054184050716435957066298421511896391219660274050371352180806789407728594300285101411589411014528559863044808395234059667002123015137642555041682480784107516541101392084214069018102201674700423504919439440561200932163994517896938879031986910276803398020436173103205720942177567140994849684682013960664451951294000966916535093230743038351503471165498739243088697567582166927826256950636741485610600978566317755784036340799217282689647410329267306195951762903590939680703548928575988891770705044964358092003265673546669048763184483847923346560930110682472850079313398895963031259340471159822932438582986599825309457884986051518008209435659983666000881330783798406228514151514876326732668703341817065294540262547834861799497522484189256940063418140602494817938889729692985490100970954019209744982321996227497207069568762165396659161149132572534976236046611069221867644804484183675656724872250451687742956868051186894324416396849162494298795922767141563799522890469661512213149065665161741859073212719172132936629847631601699381805435987835364949256369090711905299906756558973029655132584012680727655868305591579801310543830896249207237201157533778938294644426243078960340892210304167950252947643080962855419964918824580121564490836882171380601212652800899506327042204757809809330924802741164021936275986804423563822864357442341331392007538397957635174782074437046450895760237663725498549583639815817395358236825443925807782235653232632060143308721169191545700200993850085805532472454020627921249107633148330989434046141656962477053473833305626450913162164491195692814692898539057049058101858404803721408329365809430066255378318970689912661594388103367245499618919466351182779449673090816517790362353978287943731615801995740304320193942986124084624226020724434754280757501234368160505532961323845573306830417005140779083491234659951728979128758976098466652250291538004212017886102306104751937843291578598355043688206337641233903753359480711384459937565047326934093088064236138141288135630615095118626531559681108179231735809359924070858483319151998364271152679362296148143362085317688941763378530000798655647025614391810986339863735104009446746809611229135600353886559481486401745096580777252824836005404461953714022937843207140832216059295344871169367374033292338480562698621779809949530280655993031579281501066642422992966728829350250544037873859242382436306181345994167192264360920827402129826095115223607519100200348477072151804108141151012287341556387920853572419508133369888172105405376252242212012225717336878394649636606488293514497486880331901282693224086034315485320190201123886639468167501274112749109317857496764744431520029403006970172220508800654679520481634691599715507132115737632446515907403981857106491609382415734147836749803512729683322407627621337106531414182728814321377926509831214366252273380692505322460030410763166519939496731548139211208169027103214193988910605445011009851285992083213770622417840659357625915239365143747201859163737203070287058100588165877988688034501470461585989553331429297315816215069471256344058034068142867515151724821296766608672981005091412683973802507428068057478608671769740236029530325613519875532401882637316099489850075152158359052691485771334309992472657817056264627622418659470340887705601687862811364436004584078518902212205809363066782073984390238071166864127219496986198150513155946720001627996949678020495658511858476106333046618470454034867383803109963475905347291225122275168726962810774736581823375709151529154269450464742599058876589525655715817528283219525302065364556290851085467154333189059163609032297338896846080107880578526376756644850401512647062510343582685688342927678118246997719713406075274320017411931488322727807197372528632450661103160632532000846841088548059999453062655144932699007881316260793058821057947931318858709448374183731347289613461391024590283967245072956111030428453147490353302611227023455598352379987016806224994788728818186954324845925673939615760940993357637527266168707308736161087423821868715612564857281380393262610678311595408065307475230458123181464113555688092148272857321807468125887494171350483932241473849541980979344001227556990016134043288526835875154033825111776872020594944448730568437441054711353129109401873208356130175450877416175670008979148958679786049999071964556711556316426788216510401641980621217209909019456594881968248099131606669953592469469255791315845130296004763165509479513901931076750214403944987388241346154766897332617467460896552476029498380198944304867040192412851852504478080594345184693408706270758530204181585603289304068507442368316474413855895879291091232422577274528797998228691003536410408801898001138740723867278998878935925828874912499475166996562368903759629875838186284051749189748036767145208048299750599897811885422475447639399302558473113088515520773971778931714595477409505674156756819423018854657680223607184118088110150452920224586742638330752477262406658769428137281149843051927108042894020575114590698591326165666431382740851108904809446370941230139286883483918309600267686585615764568849232055240557610270906443928644593226037581901039739022466202420094150936058926918561015289914446992323956745076649931041277912495714550263653926154686107596930446599131472374262539253599042135970918713231169946901020246217087431440383167722664679796949019180997979179354092845659059113081988482181403984025721415390440508706214694265004470383665878833607560939739012574214889741445485779612169678826499270426722646305698520238569469773516363804065751220474794856906345360193150110783497604026138735236791810007780361078696882699813447189063522188092312757107659275379927871280329736611314564615977491344972799621436987246970447879681461733637079818940566946907250498657654904522013962333392271700696350786404565813415541878246016614341213963494234455772049611453182833217725984268777503647016518471382759656444219832901255677482925097552619272714369050566401986603766692009811210119099997694347639056466329096519740657804025947973304776426418655510540847873247791624632574439712984309670884028710052130285578145809768586744682733297538319784486970933835299728573511302538053442258058308620347368930483988220772172497728908201024954989338045336228809532663184197695865645638255552760800004856322603647795243183725342561752897614018204400984596224700849757789303901211564747598928711672424459194050438044607790851264166606475900438437604459146700786232565447476514067722502654020578571914195878907665793360256517707601944655768744645740325613958971331872247891439657830807698654518893670679774011942802002534992509198235170189033010975464819372847361700195044383733519029937234557746969297054916930572324950298178163620715788501727771313990041164974141442898707407335064124363330980917194834248812286076586041486453436795966717867018466843776857329010467377758994230727087537123469489554406245517706484952822661277775026801042381985956363423364429067275949751144381012842016059844934465306158341770413859867332851084681150397414597945177867668769364102203912222885211954992948189039583528873316090158732726260332050790829076780820142935953816071402700224778815024517705732286330202010551434778508246825516092031752390509723754543770119274844454338097618406224794020381561787452472554228465014180468819422235281831780937905752636382935511235612334535357795879553763840561750529828464634124498364165802370717138836160401237399958041398136934233860602871243461134606616052165215572707430059925937682330730885154599363819244367089627608089438102199152185028688809996587923847462922582519923428534226620729756800638286396029383459211028419229351914722306224315374472299779798390370296113647806958871753764070382289176529781014504745331254156644452677425749244140625799996459951702037350018531804461745655516366231766351488892236912985139128715086180703940894801025231896017758440601944990377002854930311186992549191015049555781725359120568002713658685506240155260149466260447417555971855597331992399015749548598701332214666781216136597194101912173106962671998530234885499708467215659538040172479784212952817783592137523910918217340905901285860351392578074478330941823239195654081689025110730666294198957713776086370929874002308170021549765358735619950662557367391039368565479418473960822983305843971159537263955385315463860343653508366374197642175329236621677045636819996242606397829684006178259977037593384529206753656520900860975172508981388170400128498457540305601723652513887066284781376393462912890858644376028109911084769502582745712188930504962207964706746319125155747241785955941112101676932878918705607913215100101528306492143768233095302888190093663045276777792890324555778928252642544905967975793677155282532609197106029075790625073817175820150907739375146326005539739217169831393715268175682699990112519754194414453388463254368624317622306574508103281203449423064910606015051498596004556142183308492781089451978530784241527279150120351501999395957319435049729774374306715894695505514312367904851873263739952970783660955330574302912007272819654015903176793250155317096032603977209487857601144780348142409017204681270658984104548290989444541886975866223022253755696036636321947466148685791362817154990477260775340204437030684039185991522383549521618469391989915506651947862680828615788646537211253244265843000649550039218237586940310515475794187314416572199330159908972732560582629491438535156060865155959949671130388424666019737635720955375165352234072943147556683197489210065518639420061944614831014213207864696103393835339919239325078190323313929949639433636401502120897962339150657302517881615150855948594216215366599247160047137468152270277733205514613530428031079927881193071745238786939621103523066862586255696100978122932068049730953573614227330539444743869844161669317030830505775615141306828115912089323595495993190294680351651197328707014419708772317962221358306517668032207419526951981832010673096589041364493164249547678238320273343729731201717564832328013222771976765439880651228551749368555410731155485694486677970910414615413051403480734782571930443978318776806714108760139096532426048433950339950794844092930974906242335766637208489401167632441335163849093777526576918420626897981905478515019848779200548199881372717896730634209112415630784895011109804979896745353844433658925817859727758713844284473987091416626488036808250855657752768415410652297686800525091017007451630017437487209234024977889280966866744017776721165242666719220352846922196304900748254862006859396116873651682203569619529927562574613295311775670437710533671654529969017577744638781737641448025742176490389488884200727811864280549016225027927365666222801896778849550587857865471627844249583702479015901109363251199557162238713985644787651479800211649551510022494156442146829453783680436060694989632326624553118377951034703237260665182717193814650864575875743738642607814919160209637922227824345618714414479648756136888699268398029268307551514170454854086076559231465302320896969484337019161959205364452964632852969263168856526314989718301718793997135952269673976549488801332218884147446085247237270948991336185618152993983255025484622198284353697979014774916836698514660747778928744764041427630100751452632444557938065746914128972602168257025705078356703543459265846510020419643094358637898292029289589501281381524425650519368495448882901064426966042814217462093737318450545942443397553807278762683569380565274313052984883556426030139957966359122699377261764058533273374604550072656871880357297253008059925029682540616211520919433354749921007478308037345511153157695514214739032683188338196456372314870777950034340534973178902397569347555845411003645715950305056510348857012054062036819955657294850838849872445244542799198366629373415536264917026464668316152979569192402487637094110645093892102911084705839662845440503228532945807310543106294368039727033763401366078461468654875994520673772681410197447598433889097751803966369372081221686822806528620162180219575021495120677635967914509365126183495840959470875358671474619347899706395598704527910218304890957511182004301021593202606843213080807491649841315017084657771115497439504931774550791855037726715052833409008364190775213881310259178426135552186900580073898409976556198417302871360706554418358794523881885095406789572883095832430237631271742769555336079704437447272906894188048706641753614431628190950954600424963529136019777877066451819203146386145498737240216972562128218175822477012235181562017519160310633953970513957943113269263017052748580829722132250341185484679891129016177478238075728994647918695583745680838043811752735058371894866315453108339628677028876986284969077268322185887682943768263330485309775884682419084266595280001181648604267626357291676801688149133619600322763873276764510618749581829502632830928349892831686214981194060867770033856568611559053620911258245571439041842321617889541065933106083583536277551200544842173739016356785378628187741856658149018150051413221765283116327162648196908454340976953499488131031929016637733477620935205993874072814729439039157958202176789528340798850945774982060274611484993840939124736390632369291174512517089863318772407588959283159476266725651187633335359641937303372076958445344391311852521822523171440702603269637446900099067992013345218846630605582663654409645504668662998436258906153972901960203658666400669030562414328592710510625545722759874370610883939616132971363565765700878009108094979955682179178956847008004779218393405764212238798696589504646684097011561069821825587096619386213696063074524052762929781576660140064631127492573361430745832626671077082803531810962212095202348166364629094137145476084171117347485552128535172898132648577058388011710060229439737955316944859514423563305338222861605859678540187840803103649313144612414249922855905275233413055696081381199781103291879077838943344817061839429377998419127129643424980713593973642829555896772649369675890841983191829318499980005826843496318739949843966516014035956759332539417498970006453413212227357600171829495670780930675505668477160063860762282263021440931695708984430447771131827455454043522849637510956910273804537771530966972701038637111211778059029374938560003795632395361824146983553767270616495600788604788682716683498372072496936498202890770320056280032032398262852642102506802049945374334189409606297890287276497198228701303598154867980145372889603780875538881845323270004150015838910163638969480527628540737816479392510412924635290594411765548073145185596825466072958396604564360528211086665646033994967828728088265259360177180331275075502428169718257747006722104567748524295266441057752523004340637627069415821112536314162279880566359434923897419095779670673046046598825519781919737906119110354946858309848808850663145505620964843482840492813701053669934663625840002092685258467031241742445453779306037658412955813458081684439277326942163869458013943918812216498794574368399821642144646818420110685696327698738215747588586459450384209259827968314354323037216533289003678933305402096871852186648802138690333011979927316133219239832771337791202804110979050358890800689388028054149024686754182516793469059277699101429367971638440884154063517947450668774852432616472634328682529689759178073889958868785811982800413152480316253966323056154827783152623283734834884290989228078528558329592519872348168732764860681280366198694409800363066934949715676870557353829566144101710725131686538739451755894384378059441624282216274726204277338828177932765103608957235675525300787146519962739192350603536730175656674221102910336346591775488750711136231754965627809660575897010284406422435134579749905715176993882147092102831149561984588987575536385419755729878728968454527375724190184337771500691083794326640341845799630574257772720536820459881550378532953460360079303015859806001685022709583313311686127199085671678169799391785000948259553709117928395807940817758114745085787770774262908499090883658583575144554608997535854852158549883066462913831559144771290770695725405409403634956504543258839274954714987821711074083025032988107985331823315622211118221859933190467282433559873514040903877345460768995039649916753756350402800807819797155975838657235822672671157367650960356337545516469874653378343951472136044078090001458667386541340978269737810425468083706674618507813794691977470092473307656392775635083319662888237588258876643840264369712302879766400672605915152204621294960065784651247401758161056084085305210081972114209187192866515432192497422310576207761600549928063115980795757454999203623965001720089123336532723987232195564335690436433324004481939038823982211090058897081040730512111371535101125429286356422386201851429226470193052962992153738019077790937915599758718320663745225220070027312906546673486323764383261347518171025365061860891157319610749454696436798469551247685753203056452541325449317356088784696097443355684419193333481274557604501337769512006020557382626599775722461128894702656784420091747572309288588003033594118331975090440989286130282701641114160134259184121871976599170611595033620631396697115299935767432433576509591751010638766496040870262025366733389512415356740797691066334798980864910418872322571044289419227262335838485316460867647483440144327206807346176369666855382867680716871737189890861111637168056910995241470377960174550338042553578747908060662475661971191753692207943548722634895298791247704801957077653239546642669591478997477031684449800020968947516027349060843447377521397582576830132104822374295287983991221708282496427475430147737105565909472822268768153562878207770465056261620891916102267437413072482275639770292483131689120084065714881324764871808512040714038237933611890343704826071549193495937899439854123365108857543618211282757333925034924141044909684606136200885896499770183095655014769838169651642955939601810182268599973820105298909978096878762171979443815936272587938255263607194921999451990484529000982481577502331400564920242198750779853506342405954164614618059848106016188097559842220500251979779404288071250815213941973813329579855284264553442801018436628947023955765926956346111147272124060273222880707122186179269595909365458937992800738833103616815560034380348974823313151675893894238944809905263090544051268541955656118039251357896168139386074590406261331738604138854090187478164185203214394253257175654582442561815551341893271769904313990238671109475317326819355085258186956550717763681487717658060149402448563202518332168515154402550904843549845014943609322697813073947370986863994222671076863685708749566895379293106718220877666824902671605437250814817348548599283406260600572742193088523727253348530374919404374788017024772970765911952011673328398288884533389385464962921345554458998076433752177809305249458228008227895112759022072959402639908729271284532786316598035561299542803734359407674788841178330482351703412257245017924701148877154108491741182275906259638866837184045794492244179145762441270238496105780325095141326313826345266971876462017503773429560270381588312646843336636776617424753894348337208397270128643893209497754773414967001269311958968070678790406968712814939257896197406051041329160569815104074436334318787353022504446317096285884777839829100749425084012689002562088555795062820035307217352992717559525406825218766729968366468247586287365372199288057780852799347942122042704558228039536251342267134363947026063406628220708287573577722977322987946905346067542314634974476436199247204794064339386139693734508241191787342755207358631396169217044251487703066572652215717629922380071922613415793053479477770340672018628560400621207226406906282375855583522053084881501350762834285070287717028253313827021304784334951320802656457470462539418970648922511603009027830151368220439517511775302159277403745653072305349806050930110682132475143589767004522196057707554313494579871781144396425506120034564999262276786392998438930979931531298419004495694507008471750450361728885043337596188393304639540074755548681126885781787459912318428165530352483674906807852480994502937081654781279826225802794036923206717240132026654604812482403327590188128389664015480415349812018634850117361627795564192997529396876424760152754080676734875600203195661164625157032786314854287645441912741235021720620041757891473655666133204061768829385336136950549460832931829472256329287133954144943617463731306716022821758782575485625940040965535102973857639281105817714906851538615246612500767425444702481775164604221196573689681808949476628458604259635785093604806368554758359257226912968349029419023976124911800118741441211915593340017278288632809296932875200179323198288610465944878122203691174464672121627005376903595224109577605564840617920986163292101598391835779358377675659279526475603956758992672826495952645413901142710266225569836358273810892966970727412552433939703566240316070221104358352003114703390187199029282889720866839340819477528739397069079837101103318786180854805519792347890766779818879686139054144246154840026863024750896147179736533778013934308327090676901949396242499156746512894345730770870320185963793638225470509325025298866481159923853772843992796990083715294825974346629649042213708673734615961433444847464336132464099230921395069604793634501884525978348236752891105059771820552994654726337872442664284684394867523935731681310925677821351163096695461365190135949170193420690247976830113253482794869375414653903068446746667338677720197304520572099138581182672296715124949933166894513335717625534361318011733960123325669786910960439552617097370893936418125863310944782492297480514967463435899475695860509624941712740955267825830285249859627844228032727188361358062242809403153595896263886484184693663801769693959605812214904348263170887420168570340096297233969146925500893707431062626028532057220720325856423779641896675566214585751398470770418258976039219906726687134286672043411098484658778785364916355188023374905230601274955542617635691140593356469931693998960614257221187889201203554632163843843267484196454128889063213196219948502947331232483489391640166835471836830614103789731744131928495521054179450463494985795555348775177849613681051887099284119456083481600567019954549852236884185053602392668941838157499458105063449010053086935740847394479006509686745575249220429203673540938760270231436103752243500668840817582206937473585801503609941549269756324323023985154007201554083168462348264549067016510089596915676416219220498569782513478395046244677032829856461676171453303806205703006245963031576495095740645756678051049908823149438163815794622716709331790355549324034082440203559328956675126723003071959905741243860468767817303553307497181627305816943614326056265720099288044086061608387727119398208324323794611012636864439076577875790369200901285105635407243332307577562306881298556378801666911986111486301619024068379073821877287595523174743981126401896083987774770479049386714371782044086784282116764799968532339080805546332675406321268395642205572445889390151554224999039451108419725739784399982505338625792728629315463653565746604217552802963716208765068340847586994832339161219333778690119188031422636646652881474339774813511348124426129949408385046593723211064136498001576868168443054159466957675149905296866627040281766478929307093119396268577428061730398863835887512684972184294892579315682205863833968669064246515072210210036880177052865635810100632308064520520808107883831612664273548129489531097347472609468590568057709052976579218693475607951895021842876788026443671666079536344194340164662724707104119271981805193256879912439450349848094403728799652473202247874290615990969362758813498880001149684288732599477364906504268945628893649214358344131891913381032463118985471987034196941654372367452610322520992396500894828784241722410174587416258166154369805559789840855648807372687635978364440021205923525152362057020351550331603211457785167998791034773657624254929557823530479496826119205937932948416243665994419756228914525162778694989789633084183732700544755128365054456140624934043270019953660760129000380380405074423008038819744414314673530467754224107865984954802473560112214051658340676511575508166513761186512597188085022397377475608276411005818047634985984094669924826748035333511079533611243474771626426479454023633575318850455019535910803093794051627613911048235192476263924199994969650318857716000341082849981026150852592638888410872874015352223378965800694656204717065074776671836291444617088155278425793045093415244010649761234902665552875678564761609398318555225686540126543758645086462572350961871983382363233997531415184647141856881715948043413938226847530323727991349757381838800348124566126528451398647683142765594304409655169016098201884976076292166066588585360215577809091980604879055402782073665970117547678481484330545793097926556938088733862011303040340183406229741668460715446911169143929470178897878289550935977794021300500204270200079333659076119266166517107132403090826743470934460954308307368744242525448385583716412634394554612359516623153146151293781501057069902896010674218573127536987242724795588581696585941230346886952051855079634617804815172374282930833047208369267769671875603053641321915692814595851768432332613399096883518868124141364410170113181462376693217016569308213330126927808803486281224707036784186172480006468247036133773884410940410976940013238172114000652245290474701028698533451863047339256915893237243188604677881169988098929267465086258661879993305503996558250371606766462025944215735332667492376080067041693039058861160789230080060960795191607465869093185658052711740814523151878661587457853615344822640755436803742464167617034241999030208465594959682748654338253260063526260819955240699842010402427228934920631579418983033131520146398065093052399001190459250566293354367294028845334172176646386567441857946458035900816951416897509224198338600498786690453592784174599907912350096130645533736073487548522710300752199467863988896588769704175236719966968038648265913515659066838997422011556109160151969432390367494274105488952214408915185621422981117643912206211362804982948715154232747204127173627707232985912656497210793661054132627530501446617442648966243941645965393723187700300554061138539307914523807268185751742630909591078090047071535611812529563278926962033931533385911016294887985255867117359001792011775661106505102906866237749693325573987214291495176429776033414006628245346585451075315831723506611943184387768517926383767996234790220776958852996212822868118468521648080325407641642797451660676074391796915694008579103609073522869333065523142544886951691059843460262235572647999211892145733328311081145284491832158204820996799136075280823833093380607556932709656072680955560696926231505461162843596068080438470817315243478319103597246380880681441191541088684716775261401043595791438841020946053168076609906487599419798895450796101767756953948813391808171200143364028551931281693808300729111565747590057079253509309814743588174247672757259358221711972676110363413559059195805937198319075297425671468389422219367310645392270420512646624068235943488353410223377334411187520587783708222487242126869966661336630713548725183616746459029205806547397952068536979775068651189360653237912215879600868217455858583665192192068310992023764624281333749546481050523556485355366681739249903632565859097793022233634844196653540081197430986678547874201458593493286044337176723676540975499993599890860811800349765326496525988265497519010850843609328023725933838882906734896540987475578901691242232432032149744937733594994421723308432490534863344959318921003617272808616188374236250748076669819253400181381492213809264709194063088139538801848357208515876557165605799679541657828971869812632887299458109627731413802511867119601252322381134670960119281779043488268457079478232462820485723480750543099206804336503136453904891161299938946396902874575399616636261065932821788555660752165565386717166106882625044387131269383544217056190868564093946483295334917388001274540831631550729165069330207337361907609748116898144094635417019023853818058743969754355860915362535128501701186142170414238581759699976165778682314300352057410346117702445451778690068810993620199637087632052899551155003044967956776126662167142714669903959735085825375565746783233872670701013649590020193388040582715617461604126842439338264016096350132823129282660614543311586618380061758318355079186871779195206880782430228970931503926307812408220189348117946141387134915258262855379877595645107422335531181834033239092962806227119261726648780449047074156143224505027345462873685102645252964012056682228368849377878943957570486286895142256858084786259463764354505904495148196197318862702582634575650380393694822842937376935655544875675956823277657213395413860354028592755772605029448003183819179490020545243632649720451835890464736099927654797156409624956015937770468254264092487510038194988873125157229925986145641999016917085973570954643791880941467804757896404510575772505407799952389343016937702990589591598114176130119456527036234930735049664925007057842451282223708518764411455142478158702007055929642270332842060510711345908654133341910490130930068054943838550694233771931950488307722698504976944394596299219074682257424317535966167831377520768527079689078188991782804440192566695731132235088454576175749117291346720297294507500435200426098385785470878813681841163347424391420036388641562722615213815713952046221731714230108287052510091641069145273376672638970204058828956035926526928366502884504431214187597307907830669372770321660149165246789120317571745419324134063785707538631483078877069521972935868474440242595416267239053907448663013929309264285836984281447451471219620858612853258984433753291718638843708899059584723694162718778197941920732393523261248050828537193357760891516938833724954724918060629826495648991396365407192430744963006281477614064729547892310893998720228690529705510097429294306855037375332005749339772714645419218765553244931194823185761925019500962331880994298529225200731837468613367313009375766785787930191261227198918509918305408088193976767257700124560167392841764629801504979576774814173256834764131057140208063092944902219710376265183779585083062780823479424288548941858039789133685666241253015887535217802535575412368437111805098901232001722032817746592593734623022588926892513458592252511277402099416340658193698490702143590218454414749293178244351427000687294964985632976415382191332277419116410665438072201295943618174712985932238280316949984292408620156148509101149512965798503354808908284016240860979085414441797263574610109504366729556261002092571958817142651820321924495029874290363260159584634614290048525863013468689430578363134292144985027458573770507415272245729555474301821018257847148799175065085124725009957755713522828142916618989436596917995253929184836593104677937928615706009614719152246572639627195667572094174733682112603277892490359788267810563964402933694898855789980000304987977598179617677539755229630651780644426618491150757391541493137131280769323417203058160836998401528250492245804907317348526846668656415835286318889136227857178063646415382786144502871112152328030651691598892109021536484121029607231259988341413032541182426054517469468896824042065522931666402000623306704150412249245572025103507115835695757613463322268876277008620709887649332595123326757595163211239757631059371561939413198035817451502691221322459257698454095793245504107433712912874224834864638263199820756705882479864566353466161355987876703349493680815437645791180291750523031403160051516866939789903808241350774121350156614812484007983382781176230121162389030236382903301464868715247664225247823335143138929491920006587635056957022217832804675439125441271136124059332897606367923283574019918421522894997105812553717347747489073429853408976152164706511608860157035500635505152115790697810459115565809948491852350345327748654445397756652247242251331426611356586627167227224918806266839861846455402123768810522126840519765187645892145057285903208469253017194741516819628731033359867596062412223184465856221944067956653845075230527052512353438243600967444634964025617805036524352672097719596263414224703571252052708240612714742239391522839375239717511380626968701137159296420810512936328228825003108763920859920215923218014320252346741975233986161928395693510399597069788658393050202977735453709125707217567261934754048452924881528839171296046844020684850209874820214736517655053919953669066609649878864572636413994729997998399916004691766498758603448944814826739214598655986066401440412149517385765084559694602123483069506919519622811797790965774467687503457605570497164678494743160023432689745140206905251390371670276585479247084959014117432818003514141481212634896588514296805920063795761785889037756284698938387727279111908818518011640789773564048031428839027446899076275449723454998663192801021644884302003780808077651578768653732306657865803100310049777305764176126317265910609554288959055414848539125469903207696825786085385797559916634490628879578088024749437304357903663724580361103575225644043773017457328976452563071386699944218055352349857653728403378230876592002846566400744446052750557900558588748244885528758110966913412534151547931441183134996825336960283163843530042437562712012694553178792395000908440127938149292810317398982415265540620911119576987330957215022511981940096594555479595782652658684150077252333696256635661192295045744193404686361310620392384171933924451370492625539728370680155866296485723478426965877408578877200440970687838894399678668680802512681332327212891969395217513424776668345286055548033637255812172230623766584568307535259769940921686425258883789634163649307296596173763938227408396917034159870200985133406312853101803743063664338106483840988504313976766537314572440672405231811989058837441219614254294410452140839386789949622591748701444445568912085909210590876704293040330554706113577207663375006197566779071510904572358135949582531027361844715197107417127436489337358207199698021253177632413268846406834462712088610501267978806878507275154672949761516627066661258326140433843039745446292007619255878450384989844729913613498873104358073762278396498498873755211456157106475201937031097063587113977523854733773299661549834267115877670539686226234731325627016947653633102123787152192269734129385287295918987391415187411787512643785725770140595512507967704183382937897655332566255906126163854803208536336557835114332977014382155424892428624407950816634778637233596703874053217937766625135739837888743295643225056928654450477378498043603052459044404471547257955919544309255132118633585083768783109552538089036840442293987683379129032028302002882708327852911676873544472281607202701801579685858258045630818655419600909063974201235964288149181837498306483650171302353882575097703072453162184038980338008680866637922998301768425374140191734295316131756238155097902665714451492523984262754250193653251208180810453909827146718576137314947622277617270971328383121973549941084455078478549935790433429370941136670929868758851637562375219996641862558510307774913043553820037489857700535695258600688887158848400664244342092738820112449595396851892483782079075646495561462667568640588103071088632335309113061181424265355701316727843823688577843061709127511863211153717477955556771642475292012075122498944173440548379739316212637477533290089304029768181098677667716430076285087592213218419828383193199394582809970999771480370577020356963475846704014937550071605142328229421598429006724027303275733125138967019468732971858913440492235849434951644479567920508295103626750612143240784382042867482669729776705117721741699277185348996952130568578065610811901065626528122543558462461426200840122405030711861168065873107492157958910672077869915313217801101348479091935298115258095598328442571212089455349093198429712052611951716746440459657798702548551840589090782671425513378209654184438849382783886029077775135699401563784080873712070984856145743044449433508010775796152580645087069480547526374576436887420629760888123155640554775885261773160837716635051297406487222829580592824680148074823311719560049325613836238591018529100005184551012206295223825570488815211589579655040111770438059182730594516095208541108601414421571252580993082433763502452250816683411513232126466804021535363843589205576347591256634902346869614893985221382967895372152413236002148690473572928048331877471935299820984043399656004907618542649656724792614014501727223907888852050641162826453539202198665789303250789425785598708472882815091092864474131519780918521937407327675482417659758947646816696846371821858633530278740966620171961860358674589149938876382941190472698611001246918831547467203927979161277068535174824622341329123091691123469490728870964834622432572736011463502751831047231748110482663297489539208101946660804730272651780568281429482484654231248013487990670873084791878234309094066221545965494683652715123156943258664407751318114345403311862429384168055843769322304656799890842584157607582791575339053692376233342677124859062566860253491084917337656247027438543426866434004323531545342784001075951655569649982118887454654022135548314822797695220074716774006736236295541141825921889031198097030949104580518828172930862464674771604944651948680431521418804767747031133118681493893510632324548420152452644856042084494174007714321361203831452137082363127147724345216878479611305037910997689125443742258557120139244862134147693680606366905635902034540454502048726555622603103464848683884736642401998544252611256659606681668710429179399640227729465609509218329932212050127537997801702884684814747583912036229344586050748741609876903238294397574846643480702726173819714882852038072155105379668373943422788528393123138602055366436075049201049684259847466881839748990598847373478897000775785036308861397484144077064492767481516078871376242311518347989761504456686901753729495925705165227786834271101137890582094409940532895850133180828202798831842979440270187903044322612902863674925632774713472004978099498242828841805659699539018911099970491788968568375318917970138356907031731551805391496098340388515126638726398798683525644616599962246502457729777957068231186858052459681723685374714750867208899439158697273704066011320018975297266428389402586574648794204356771278379644884689548355699770727731067340134717245031418982698790789403762366292886919091582158857290644580217803883757702773202226373099625872741284488705561388059609365690002770704094909065372359372962750809574403999508174718934212753859870628011009583375841734131221936778905244084095908492777970911733341932448485262144906166259334599979048581047905390144054192986463184788904619689262308318580579750149602006376988381439760153279423793791561780065296340183619376838088572706905980206413199881200756283250690741813286655329460108476382020329119600348249622967792775233431823760652290302667464623230683613078626372860682587151736818632888198728662690216461666548940577489231957867436120446669137485057789359981294114328844703813358996278214387335542708932489261295009232062094908731925923844844675107809899511931187573245692612551626781217636949648539977983919167445246455361002183218659878565178079095394970326306896135468788779219584475828134807478037879377824321757645800851939880631896072422569541448568995811285903209462079202818115621166584229463891941071297165368657689423669912142759796783124555503980010912704941362916150278975423469886982278044510548213747263202963017333123688835090115809858483532000482780427311084416875247556915588411461557500307735881799526887698039126279005321094427221839755556695314875704559284243131510342212946634612052170397306606071299782046182991604085222420835644420978652485633962185516709225032068836233670307778599629123992884250515451466174475716596721034994220652488447158946012545939404482035909190709539827888290927492596455602102605994065402898628609791783213928956356092894133259791172681156012552336336855457972043149693870174141989465082262276469126270850491302674157862646498146119917718535440343307695490765254220649054045752562817999577050376783559403941860341993103601630612131573560435782187065943495762773851169295260503778250527225063453955465864274446707622040199456058142217495174665074843674875035601456336632033345458090368505914235298409466872544583385895551036029445675293011937310293879687434264108775609409317129965378795264383004565598744701615996370209568108556763148449549825670778642659549965669956767498142281519850054694547797626261990913025297235312642730027188366128733477278382341330992678970577520795619423211792824907991774434381384945556927034759337433930662488252530469042758650809960393552273752651633461065009855338961298243200583665348498880989521192958861470849368950784485927787165646538937225983079800679248568939178040669098877812525988181773799449585227823758322758422746592445466881147189343303088032832346627872461189030512527274771985449090042512813540303893135501550073046759764174255104315873015617420507161144513369803116708125327979848023420749282402454135260716991485104642094476087105881327429156943064987039446221403973443114926566803211771975976212381492953518524182664900530995686953921559584343843241639922314507576915098497927503645649550870852738833864305518498504353142537024506635408238399607348960371136808606780583707509647324682574026942214698805603730004257117378735357864143917216225476293448383597937669613367270385498306931468269533927187797858007048210935634015920112978892943367197908812200800650369084121915445046715142586196060608611384825155491673086908082307654748101592285203382179914371894601171241278985659278971098484684406584010553147773453382289733133840295027740860134522998274640340063936613588840811989982144222800901292860295475319641166107934715038256207411038694116726611539409846299886727641528070445366744762805672941022995055970090603595045464786061638991038661251133368195123024847527528443958064658713232497200494234795130423040336149978400236882242952157924000908782003068452475980067661377419991900815163991569935262241468440578118170944620029321671139849345318713222214947977274809393332004929632975756112760797970483915401758864166612528375660312078721777353388109387182384896747370003954605220283943663400377410374439786919015450547892914933046839085133831650443242491530311701329207122156352057597443365950651506940189120988196274466499176845438516056420534825954948511320728490013299577990066938728568317952790854979819780059828676012043515744015801327828609652531162692419892684580700375964266281316715071056826241839044448560114421961102547357898336890807772281868605708924730409282377379302585073861939221462210329925418372950426571939455517748601493634247824248788818056595373827654102406927363782945019813139039511939850629900116394804084729987828524761255236669883399702261670313847757329682117885589256426660812380875905524077037178916866753443950267063615265850473798084409623283120620086569578190585377984953097766252717647002836683756432737838675131096016659706464327768767577530845106649073328249229573555297166380025363916744658636151381859184481031643148503860121008529685144704160628918245283101457032153521924566960263965561689184383151570747124156423449163334658242189589883337633287730268519975813526071614598466662954858646435512903959947755723483067496160951166696051768789078591081827245676863853786359483601091109825224771393831406025001456734643419666957562328930531864622380040827456868099385156479884127403900582624250459656718597208156208826411362334108294457032499600891841645440367487202578512515873168189030816549657103463481997517562961718159430898737911387841828513160901549738016152487968064547924902707858893139876160560297467831596801686432552323656856241799689740460344598539513898263432229766699195760293977773336982145018150595699356843642881886782326919272489663417762706362489735770609116410752121202468936875896558565740174642441958081004092743170856863892228517461010884676262632038223697573840786735729583757120231707225076988913057156779947711503595307443879030116662930720835995786589087262314854936164705678007893230059062683620282144907595131660556824920444362127606580006993870862496795482843033681138697438142683386487500335801473953451552699299167856568391316539311073519505986332818963696156033501122618467582125140290625704434364002567101906633448448525485102669336083387747146057880823040827635493485888757727847029402387063513469245783889777186676528455873675337049763201884771551140950734121040431470186235655045656799310500904326279149063715617388161647633049304547982986644617329182089364540180602881794461899947576126745391800959623848504201779708807001962380321452953022498898020009352120378097173141434099236850863844006663868012176227584480670917686083496297765302477760504837458870681860158997496712582233266657138589918702537339126669816805806619129444767774358452214134093775546168261600871427297783366377782438002426601118028104251938543525292588514200156321020006623817583707921570334273055711524158697950150234202514011114303206719065749545723963530330257694495420944011347032394366412731339817217787767524261021679956345909091799600409687987276841488585481605404033607948548920081028786538532545480826623001387309528317794545173897927567244064361682698796574723777163616842398160002432341272544421054151402087685253308425252213357355960493454839740974589736298220371356736685437528126426510128303733540868083669417672899335374717811391492847836190037746932862000988961012566828396501521178843739668323224761252987083619257994161244931895376659332229652659591630222551588503541510610566126564508625947657145377665362478114289997417385165076135827242953067612614972470541062406505173389041065446045149524789321941873421474325528705379273275103815122886729401540806418988371554648085546155307960473280189592529981846938173889979894256489472532275979897778800059036175199667017103076759840572996779477161731806630515606658708763596215752388393972964963193141813723004051150345219492097550204753327435310654417952965424727406863716264515660422533605666560818445032970904980778669547595014182630466944339184050318122595999291634557391453536084818026940856051182264413436343454627089925954760699838836766615765702629341283316311221052419094610729709568825936272248201530315265223732011640557314942867484110218032535017487983657827413668573854410081094077300673464383002600355831863085340048409024184929575993794502548636131843314050953208378712812608688039151652780605054537424986780474031342369561685400712981033791186970489217101823970394330347967017665940377879229915872155860987796724857701694558532742696683382072537923042606660167011291560618774515899614807974657813121928226311822111139424537361811899849648916269207304564525764796144776892806619645759488239432967882136749464923896412554718667690262555184437740713451785064346683677839596304488275615592768242011586226709170150963002423048031859092134949093563111501050060896619000525950677963080713864600444568681802716038113955888060677192304025069668509660945034975063673524072437418060481376155677237504606879204653493729225828144211799088908743630563782168750255300542701362513987508294032043532906708153441598146301066218113762670532916964565313977192229258940799029504691325187629676152105389980686020166982431279850103143801229536443011131281565947606356668945366657763602031229044942229269900074814253818748408113095204384329578603105050909123042122701230597874262852703092961132681045945900678905846010307810981110027925548565783922236971206096006645682673367761402132770792118437842112746686197818722103189041318568914208133289863716799840630050441973381405754362143459125321303261791936818873643526160685698720547810584004367516564019219942341330703101863652103861690567212238292830941268603390415514315500966258609595905200383593456858116689061619722843706638549109052015102268158128851283484832988119642385729452734785782658069805173117683287871161075911886916983590156033900995936678082447948442024496607380902433584532721385810051207683788689792889537701858796348084033404613299209836990445370074394162213174294824762184676861285369132461610444197469023138790762386725107482813148822239530920299282427705758161654917497881827657895820312578444155282173999087818452953345983236008086703810407675475044000156833552828961005039976654878965406726066003845326985845138045432777863255398073336373970488632481750565760444538732668725648202142429767813700410015757488298724295723832797014455902977946288396332397367502565812841806914328413840526124506690241305981489773472910822101483931574539613207928198366035475006573687259462350421344870768130854524152264932103051697175820473576561464013033799654996474218325791577199549561164460207998122857041626953511501287002956413149509758946818447061114597503115436212380475318800646268573314642973192892845339081915147482098441915103308495441316295972360597106380300486958208915660648093773901584636956255632628490591159546187571728426236860649082774763064594231941836431868404094739766597566286118783833753492151251026434995106073151727738219348339878191232943975727275694514424125934123945936635006108867124807931346869279761287660700395764726017915853181355514747443968649350813926656089059923110358530535152291730939855144037817592352107935924342783870442316771680822993217577268177995862695702491707336647333409374489195829792832602181400994111005679208058132975163972887700643406928238839586861140649790893165796860097312517189055043748298411084468298172411657260185278269797846565033130835507058291819288693301793502991663439406674939503540605095345531246739496331402464288115618168830955001613667616442699452042902768327038805014979413534492068819591064060045262839425596931727858314382703709042118874228780543423166503422120613588069614671603669108554430308711543518566166242486303673124200063277263620711211499871089483398789928605867164220132986862422568895620944488741822812291657549916356005872369038128425262299415949549846570879076519954015484593728794050129029631365055965974508140027937926136575195300454577121112125525716213314865247413859788173102160509527091073544010415917712829406492152658589763028844932873350532495963231797782417864421894859357466315039890706336279523384738656659696016571929122459567573039547278836230035555150407480720652669938978032323173892744001267127231853040075075058494575393468705344205777883658232826155367648126410742913613407540077351600792838004748100053273741187056843682090832519543002035225139176639205714495152282663136093914463481667920459262668141099077255887599361962431507093893074519871537852138345697453756491663228864472251185636003320293469230875813471164834508869700353098307759792271428719435046796345709446255306236600958015290146425417451949976313060095607053562063568671588714342307756387356950915344361051137770905891959730774903221690309071361338433957177792093714684455704466982050555589655282939610197110670318267560068954590908845663406295952474612473499289375474490728377421882897609395989995756509565500597984472582907446245544585941892956704805251127495630527167148230041729710514628501596762717516587883443260633913457321992650793633316201129990719858273872737805066759765726290188381040109516518188402262669211243404369909672232829863266197026760573429905523849501307016914231105345234271420277371142757641744075963793863960101784302137385370382832715630558893876068164619888177274129564085444106939254623681058819046866112231599538598919878521756573364633447448166850013121992922700531315372178950868541045116433420335842073091761009843515932758413427152155798432623315689241465300120137362107865742608262224205613418900179326525182689533290746740038517842132106618530306345946072129378349646853990989089988669029389546986590585658901675540660938180529138536616861697076148315043129723677993892589141505652805288122496527835359172918032069116710234178483514391680362254538678200613013482850637484652130401832596957113014820808966377626331626341025956492568026344743588304879053469940948237973924738405316960470586106057541299918718617530073027735069577218897410037734200318989979656281887555643771104515044811170379980626428626962756627817148845349948960645079963417385543536862435314182809993617844712418849714324453724069654468441012203789914849433773521504829778416781188009967170565134549413849685257708890252050776387708122593375404908941904765113940021776697934596868280063267765361933528459087094865473026681587946017100644200696634561679848544334434679465872227010419160159945836434414570035317871489116931539675141107947632074903237783139323554145342867332981107178010927499396649327624384443929687306328621610256712911931857229076850151120301502943555364208369230629067829188440468821191611292922176262206358452727507631849796775326208148016980093167608964642594279268280726257565539086092088762111200199778928383020279074961091882715932345873677545166206409530894671466596104515855279876100236228713846243784714181629034289811806561715980246877111657359879413434800164901624692071914563041412958181092853905186589477775833105670027769205104138324636063876654682472758343409363082494114818894687820963077597063060452243912885967991573217664025029524260245989416224288020839175449227527511925662923423496874984789937770326215322705291963313841314150181399194061267548790821427370546890321812748754710839720774737000415738527916813920341518635871335620002857026380211630819225025611692236376023600852768555619228754598622609240796678593822909776283825168039654684407590978130717400578331002408574945086757707686794533996163273454695618028543467743365584927645180314057778463372246863268204840706083740346839292634699638818547568468757972328278612676613139754200194375510753967260576667560461180594496304241382758977924521551897825138496406884986720205935890371083055308533071198528283496660499479369525197465311984323616434509335540908493172140601351987353060980010498634322630082908178281897077283277246464406878776546988437725565925646523376906192361734235207881382244414966921441497651380749555567004891462633815130400436623518716982599706824282839172586934270821491457500217173992483710901896472272891562547181509867248655559946374930720325434987916657438960894605726314257238761533868918098299365277662633309133116634393149821729140530639271017902395326409805394982592294541710738834608173077897252552985756818201134572969312197510660037313291530023530016512927316784423034617121711385334369762424218416358926511780289202159624447069721291089903387430684131026688154551541573809711410415220687864453922531658499766726342385163206314553441200687349707617160571978826391290477536052146866957427941232865815720020611159810744785230940459735141418330338144032720787537688600607936750239449106957921806580199106021099667592739728773739418300495921702435740385381684723559888415885343404317999148543318608583335746523733989754608390966014261609765183333985206637866338247782089314395644213517185047357522871120779898185950189211898384427350360793956294912545649640013054999543882102181433810863513602213288366657143790058324265413324020017223399019777392334483789627602531761286974428126332991531420712206036144563021894047422543223433046303570117375464153583855653675660220105540176885135285157507384171594451969233223396427172495043790981140474128501129548544237904361861047958325222425096386807368578325768641034082924176179935213515460172242007496442589423140501640817234030871665652207781161470516519795275602393923762562391191665931507766203991901460790992410459615852214145081713107038381183556440761398834269043196359295355068463055652973368733132957438258159918066250102426804902812925278609128973005661973385555286446613730236025040675597792699382838288939885018843932553353886446677390967517204892801655899503245013754827248789126221498354174712648599333847732062486073522563272946217694804663974966472684064181145996228218642498790595051695008241896087150756508471502069722887368202562684756221283704506422099223818091706860757258563147053965659208936062093728863030783343244702095653368292969784813074368926140043589027899533608421999143873236996838665286093654735148016789863357480849611426650085374365283010935152428689573109437325591241160414113528946867864610628048183720615059143531969201494838171227649386745100712039885825095322115249250587899745483135180524070469945154538123640197343114467667682162071981416161198988886513747704227919085354591413375350456719575851686628500271904435431022181990892112947657734511856671408524223424144873492777859848079407904507555024065010897769938646405507248925263835469348253137373512275950483249027768430310116948702556081335172568554960407672918258810887080695853796516570005429170173973238312171727371593865933267713284823382659297110270335431564250815329973003417431319514546353557985671926239942611004629359515078809410759006444101556588362192349553026082008910611229252536243058174162630947995838994146890937268256255949438894506884741587429069489066450713169170063095894677322057555976251695121167474717503688105909494481925073095072559464080833234059070789458289513282587703100049243395249240651286698199444999939834375690453600865074212649423233976246582577672381063540509196300957088989072348927869043021653559639659432246488628440828516581307950612511248699191064296560940219184243782986856929757786062397960985722819604185890889595658013574865360328481268637260453017123407094127512730520908392558966757424157608156074421544064000356037115095363779074894033395315361372483634619814595570975226359761263229829959589845652848911775521097210168901498727951116660997646562665783596914783994555085562936690687714294400149792983288990384400750820117224836325016269789513492143042679861094690173248853223246945090148074988784364685786141676108088583128748153677309797311985297614499100046576677445133227751490519854551765773212435712514351224647264742152804506118245234739299983106261678268405408292427592808887008119790183846959845168756592223315334095783755979388737333551054372281490559720187739170658327021345431262904698344163840578857821833506647601363769391102505434879482193218614134553154841937012209610996469880241570203674070864782777438272201347478811063289479747447581670468254216782532471877849046758215210929923343111518739761905573576530520875437332857830589870492746882119892409688038015722403071336231894658042823369880901768274260687617256059698936402680423794341738762325150858139427127677142410652090173360066137544775029640154448403012636516143418758087329833707139724656687018401232370735497226496053436624598848724111075259251674123131080602299519664496502756809912165160571652200206854979639374600344516973117679190830651288873398628533709300087810590592664373220591309719948459751922084638915072438431848105282313537580836614473940591927123295913593198024381620296543838870323426996994704209817887488820855236023766250947985432534782973172260333738950535226391141133447355225741692882411433379300350372395570167779594074725389721035223071900837764483264833594112963187241044191856655473185582899732628509252454426617152678025659314977728134823493992501031206253448040256611856091417630188731009325940513514025834818424435583329233018512590178896281090544613198494334817591407622218914031462285168755053048143028913820548789061408277224572181095497614539512913950733212672174469360287668305401009349918838595131661371035168509121419469220603120997770874724317282235673586851447690465374046442529912233202097619718418697855088833358533281567797182597730898778573591190979622576982597656621861950003125239252174376618705738764134159498930911687097074343654138250065343863905674793009866627998221367254206639850740038728362342585022812264474162211691069499298537864072530129274114267213136525302923930068032211763753216671871439719123372225595500665985406430679746540452175038292730539289184450968903527381385116338101801797408428562933805277145081014929146730033495688969480650530812791654752632784847692648517546729053262848385664251857612540131761197675480994675440810109262464394171363133738402825947002409544631397955435615472145329514449691698415318201686945087770161723036260718499944870657288923749613181274903866493596801637257243172758741366046726568655757442420121390806317999855111651276320893432781657729245698203755889158585700835998523583436411948490576668020489413746799696046170092482416409896754385725730030864357977284007759107643885172957418702375254850595488857686453526024095246402887773180824714422514537012872755991346665014640378790231126327346196329385884775894975827524331993765782532210057500076656959286765281037915930189685638305494120630447116359400888144659977802444510365853932895403655431377647363683253147946811131951032053427751086746669631846430496547937799767254365225825242109506488465174381197310130457681765147671192771637241899840597470105031701854051248211341994753597615691548650493109484164538994321485592967870885731526456345764326671776965461123795911339239272092185295417927371557802617391998416532100219142816261676618987101837032829685857186306944958434609563262370395030543244937688098662524095160913915839914397901154532595800132347286693170779289170149752145466665151267753499074920407972271130208737334784494158685539149574458152567670453462201462005442790751119909051957083982838921846586742622375538822990289889426716619757590287492343242799189881729655743733473059367017532495959787260111369735592643683228054074392265249602627466433753591717917492896176014544821333322282790330594746390759722688302748782409121787332424226258739005410777937520173972813300925646043658117068142971780114941971841520084831033908166995073503078376813588885894665765290249447260405715743841865905909037714520805922619328239217628736804031723291818333267302965743533957477272403355553062912301549075364389270605636953808952093170831256503209167930644443231676798609087142026591586137441604030461269776678871893606022980616005860284112290698328672057721916475262833619453890877697053894836737969670404580905446922839243645383330979564972979446855210354567481444224592017044914078437414352327628196914915668861709999577821019741732426636599008124002590002373606438021803211295368643155526382145778495397159978949626302818161409083723276455908577943262456041511421330846856617960321285736262524134426070868708125773706476104591170055317407990477546168998415881674359678524302369657558632476623616998316232977110766966613929362945594695663964469677912606346071976977878539571866732001675376489122254354488312523887482113233317097444499701095459489615000196860962315315602386710673679084332485050579321662341450993710145566313932343889280154121353928951309682465630144429799549522913069489961017888304974850916482636836838683452882272230727345295044053322135295521999501076923765510955995617402467401577637067377913439511524956923658983397484927515093553780522005583172061029187294179286697040705215899890913289755844308488121689988301259831434455350291601577602807601950833553371659796180607952645473454255326211701531565263093699301448995889503404783188213040539909037403528204380196217902676572658017112380491079910387920664945198674171682206882992321709400749887654987320439664290443910877660179718899312037379357232157979259178421526472924703841060243169912943190004429870889154131565073022720813586724741107389059417866860349257481995781025225612482094349682659153811511664329004964987124693859201570573490949054889371571453633882839633088089142583213932541420873614411357665335645816111640710580625670865967927125834874281850921482832281348073978898745738363950030284767008081548981641139281460622485611407965103873675545981716088693240616259951672590326791354195256687408314578186989733098970932525525037153547030648480089682726752499053887835083337364859680578804575541154735348960688881469427161940419084670607300895824065355743291340353966939570186075597590062701028790258817953461237192557088270887763801589349584578188085061894893941591598275985879166143140334671714660234449713286276059991760904125054050282299798090246958980565810901022088112312468177799910008001626940051497697887328539771074115467802500011933076112695021455451349635435428437896271936732675998049957726296510512114789655501513366495796958571015441707937969248948018875585108225249809442925761950120896596509984426410358959560613997118515157917598878342898244267923366491550061886064253128419811375002684045956124052666442996342602286419968071603711090979454162951659509774657438396470760681939027444983961735495729244291447841024575207940239462033999415669708843563919453524645069814302057667091166451698753942789174644192617253825386524285676347015345060591632602376663055901259154607792761249361152078151229465638661763102129252394250977692823066747623136345920302409442690736640576841816373774106142346471979820487536577558854959081908019141625361520189745967528667262490093198550355713420375555435258946368389590654182333836447020089544854537832124642559896534979175868155293770932614789530708910884086446539094148185445179546397408942999135870027967718962768946328466312345941428916497525800423895566351640456594761935304748203837829590360765274454482990617761205511920371062544538946904642264387144089223363137124169558724267763509655117278434673002418355369544119349693311570781597744166271685959728329726229420364062035227032495220678180540077193583152518440668839357078578746517274478938434450330921806883456779525123201717839906402726396456477864668412393401237745988970454259093812494443174485637460414073401761150952839033208921258556326779167510911730481923561860724521206093498646984896567063077719952725105058116084985460497676332095716958996985224198609507744919985576267121338504456150583595121766120216904516849408435889572453018569412263060014295669566918786751896890921362238180582458569666680088748809120081432142199783239914508574513684070391618782546773627658347929853524940395084438347028794099959982471947178250369146810490322261735476730758025633482314416737356892839765472378068063019057401991809887042243971785804878882984134919118847125318310121992672964508077685828493546515408424890627573489378365886190865047315308403699381398908814466622284719814381944652934610633145936359537126889365479193869843116941726306953175266882890387200022719192710916844841077763756754879857451277805228713211664845699333650091251056764021147908780351642812370791250513194471149103491445122518941772289250244478289405693015393476115663410289189967380657518203628137843902388371482552192824257815999917807486664744612693695223504273736374055403864154076327417592980666163347311203590137687772523161126438524053751137301162541347086827286478356050429243920907975837663575332021758864514226400918608070808190131756010021582489812308768983185658121033488443632020496801046041841415851660917672703985924039709829296673326847643898497924686814925382540954676743074193937996923373524348412148475665681598446120264798851197309273718611446546319283951047197589731795702603569307387463410229098267827765410540868974222238624799721534987459719714624572889548765930075194312373390512497395500516777514816270781852771492503175423715690280715041726725069612690659357514286526265022594407481539326718045239831441117076649032659928859103887043777464457645142231508184267396116854389372092862937721746031424816217318106038440405545340534867873646849788126161518894435055244804831091547573444380659801745066128154960857486233215177118034677844499559547460042057918410205630303119945736117106613304933162494374354690654198088374890480099981618315929207062067720858455663130023882929004692357654040124106388670883496431140017805644842983144587536557903573344684072203804976775352370602412660349865581836677666960054069469564789637421500228989134129065154076725402918553370277006067280139484803980157407251057552530161247809207515316735403030566888962199927432343929940952577964060665860554689346408051725253110325302201679310688315527839419466027330083682134606333206494584764199375951576412070750135863289946239709044685822770008702700310507777313312157726839197353280367518013522153436658817760793251225504533001392311553661989730723996450979243056567352956596821156350813503671031230578222957614412043059286151445172188182708388201147810018972579015378890876170863744452228707280325435490163070954981560045765541910624152765250090077008708284185888769607310264233884324317661385548283512168619121310659779951226455362342682990095753971080175899904791642410593186316208771059253632133922253708602779306282424389223638698005236866139541215682825468156945222760711341987143063475469511502395844219146629605109795920768960027081504713134514581818888270220780056576958097411496129126998119638880497890298849491942184432549545746069919660032598078537008824263553573290048053557930031029123287950678874737336973064111071879504949856577393727156927459048055516920446562417628647155671634689115133097040748131569032819876605683276791930077091454504471694793849264007913838413536916533842744199418309269481018008206896776780876154915876313291215575727436532862214180903593513136284523165016172252834432136851142174493703553331315883042253153988190746367465473350851833755074612363348531816038482094573865061552357513391011255233265991579477907678303843690455369983631536667824020772319996079568698645209823938286389422699330290511355846601076898832436717384001727623428209080677328758459096841671738733538594146062680044035203731244020411596738129499270176723201998081438925595496667176048741838760355812951828717654516827496386529995147119567466948620142407150637648822527986199746190402584202945033198716459871825196351391364908466508163412275538151955810113950259948791413652753747497320069921394959757755026264440214993144516497191340069278295786040016919477418507864246799617584315895703472888676330198200765130306607581187484273953309987963789850468950714005751385159874518737801536900855334930842815065093643637814881402050548620064474515540564787635732130639147072153844102849724788536618456126909596803513823247972198788845001871746909291694526601526690124417453000057726173535327021766744287942409815660828763012488195990623628208514939995350119802546369939329832745359928893915852078364745039465626251774580252321947412167132647041320299231827079603061021057381125973741215777294705070846708555409533494745096628038223201249376038533141963367545752615387357483684487318879873051966056967738944416525213213090605981660333302005651877717602288510383792164958707787034932307530929905477618205930174249267127963641314988003662803672693505602589830261735499463321533278985029015450215573544958554485318003532634680103314007618310888822469740607196486465259621231223582861917372638887223282633866819015960629483698349448507070486025045642234248096493206401293380716362809047948350839736358329002399973141910117845835057569756257009454142210263387973721831714996257769888242275476127100277551506743055194815327959343495054259158230159275355862549777476559373080563466244529520250709197465229881648139094515745075912673319391372940145799992008851472141157137333361625169829519953920032688286851307631237391030651026439430637980801179452659557831742600445439683272072195941825573518731142602116217042015879644415012332546548909363721975209367720071293036466922602264250163099143682744852237837262273943377529145107378450860912609348907142494615774304256464973179055211832846828948513432345532429908447832829634189299624131399089366675542130461307145687678900045584329136762832859556920666369986132140009391581269311853616660823759177103793283603662683556543277039593896690384514536087863617392958722727461812039277412465245907086572876497451556380734741244230315649447235714177297560729219508155325527580383204676625061606271404127301028950150872040742945891999410560661843475235506987812984048662187313112862671263601019818833735740113978348115706440109788297217624335136450090992411673528526281814298955125120230613197267705490786808160717509237473556194999942070896237745931030558304822232020260515023602977998871989926336049265006752697246192748444266380326594417056420733945025559853535848371279670161001521275065664855056785049743894499748088763470132443721617998589334026795576754984524280654641993125646666125004234600204123956839430455640303879268086442541293346658667792907623799660766941118513146149392457853093305551794168694352567791368452739131787808480711809974807977935973743382115026383191141874248740506008317824442722389251727993496150590645146170642041409765483463514407468711752445658005168239092982985155508437528166098411443403551071534390228600036579918143149226318503378351539399546363160398704351414677446915486454263736540085297560434754473008801459961961765125321375670035025769845322251755281888455544585613520428645903730650730897401542159101484661729178899211237379587457694870991706518007670221713907953038298262113424004588440629708691495306820129543623302588382937480977608082176539344187174924607102025768948093395943838400891569492279762984518022120798745388871558459283004407085347682201353771356612832812175852336322322684047443524390419990235825847162580687184047622066939384921238095927667441791776662694514716530727638705879147106001278995724430626297197738476892561963125344379350599917968679198078920879461128826765969023652846223851130490605451793442645714092568523994770857617723562625138407088697981473923666886385304833544156353046475485311913873301952696042113003412640055051924755286435180815138264625358283316796545399126935736451782198657470150253503827254385293767529935364741074710667916345029783200859547311047032645222869997714863020141907130070552818212979998220035894057136198270166329179891390675048239124911306017779141966658025946902178826331031754476687132090468571970704347723562061926747135094245020668519433992401213507830538992445880361791326694409748961987859605518197054971899295457269044312559670827953927060484213064165397624646395030741965698385171014897803148142815242962608421454118996259653911871708553468345933801187187646512820643954456841143000567138434180939371731619452399335081585305808111761236671404445061454484391094847923681986099651158716580469777958826853907913841541939710348043845984807036444309350552687903935995040701966689755056057834699809905174209679051321004036166047761339517823381593819928138943894180193620263802788852350722560310619906480067452298473206993720381169010164667461003489454394086823886638073788085964759832141539000054606673709790421762763254214994267728827220785355032475263364847407066841608245753818010519408751475478634623004894280935588640260584947009245140921489994427724996374369205153610437114557932140483442451638689659527138476804011418255259805939898674666154318259172914978485057324010284265699957571918750625851426908532288292902134933142734029965304900080257153234843439771641940353304978151064134182759498224181551482766160730967335168949312813900338322972764268377704859089881678116049445563954025921540611331667733364206962968270182577260849207083527874560822241694569046931688502088227678231289718137721142713785242052917473450833121218636798463148203371687822417784474810384465347092104399700031747803601910242997364462093463590327154474480801651739845257338199286759271336439619337172794587999955105410213252118303313939629997945844753107814788845206037800795094467403194419112476161574985052809677754134087169400270110449477165026789930765689847350013459361879905632338666254270113528302660778847757180459973133591765288560738389638362976958913245886759284001754400263625300966544944381117216005503623147276827435367767308942010324221975227492202964627163705403257466877070735511412674379358788751601620296465674356945596705860819130702467036991778844841271116813449173792591045932306626653527015264314082729150077491150926944607181071781992502383509087982343424795667305472179368156638218988464180320389342963620326535243118564387679557699937137176891326663532919997615661430153703881400621718429266846997386955804572175297279007321600258558277469968685761672265805740901640086581436202286179355403142963507319723622944707437981525686968817212475424354449193451648259419468954572105633923021148811159606320390076191275054245887253440914965083714707799687709979885496090228992222969653498819619944973252973082999682297918855925900956653501634745803498004380251214474932735817832912571294867152640544817634602979273206090886351559550327537971603652034860588181194916953109084708744529824087095485766230918808699608965884526217287305591134935685166062947756489550948371262007987349725880316519971514296387702870620456407281456874008801908514233782198523275924753633249535519081220473859172525438440418845829243714681008341423889066892412359648211978465472061330487820787009126967931267934457523386184621191031468365888204299139886104021132263567721639512944920215552806644209438136384225257390241641432661352719121055388152410278727453882220276164371626112336544904142733584267431747389966674729230181968456616576376974691226163276029710982976686308473349055868642401288476826312168431764898537778450796701968487143343850917660524771893594454151117264242049156217601352615652586525258369362823018769180505779868783460174123743518903481452609506798720917689998047297107260095392689711159896404195590448720318353394848530235524244125767958227914733489153514741542904166886880262351442675435043100403260820607292055452573188562539187460538850229152326149431299356374295213602218881822533872043991181629821056895907256914777632399158326982250892517286256740672402943319446457413392395285055696533295423730774178825825154534047220461792292167094165558403060382785069554359446725937673551007243827041563446229231125345346008288921817955534694451433421836491721055934893174412675010848348940458252942494653452442783409494750587903700864166172966864348543795202365962864469194355093832531837933354377958143593318668070762200779638650222899428577941105518031193826648562623832697813968562164971746512004359593094133852669059284046634935789036322061065553676141689674811226628896660206383271134607536398152844695335978504437172523035854526287134948057138635283004310905918498796489451715289817491231745264312021583244793950470111968996591722717504277567133317514309248301670175248819808095951988509203174541158511686608342306958374669023849035854489151292383178963917111159836603039638248859899841725852107383603010120225030873468701952708863102796441038525709218617680445361018071827333499789309804026949410323736032201149591364587370785000576304859039463332969176322936020798231605525018039715167928318217446147523725033231023071729088448385434649404730977513178142099201874956253195138631234794498404886582745344741688506345310896265998699744596832059293957917221736552304453680289601688157377025758163953885139045736476109645682369910191602218192058740299081503158000021106154801305368757531430542043651352014327829140708586508825588078904706548725581841549388518730456879504897571769094565822288310664242971173343479743559447751305421623502856932434790612848959702400196522915582676713534391438977294422643301500923979107865591613476893827059215132754459745764387255212104505027229449615473813983679798558491281601417946251477635857124536664362627636074123057518311048807201138910946550248845070530169310877108429764043892869081293973750693046029774671368320205016198086477067427816963846388016643814443869621716070948187046506535981169663389700499519933604998171161524703301126916829030483231001310546624039939771768423674123368465877890882892529577344356570803036626238654760688307119441661514127419338505457474929418737125063516823080883063131402644331458935552872888959955285491942415787433566261444426829567709195758677198895303410127927650825355713937836442684680781064422548406178055822080807458672206726127973602640450860605735503290662058976077501500997390539526138561794350967378023294876877035258012085146359518698754559853835603543207583440708831669032697241868187623631345843211572445055259485516523227413967574154857869539792888258489915441858931195729260298110823226900399482207324381836055243814849195285316514643639917953374658945557876767130314371891486800682452386185011760771381396219031802405356590554008997006914199785380433198415905299949839765439690381266321515380968051023043551033726252075996468551001413997547029064570802653627273806305851203523480251060108274752162309222113212034228832572626808216749417295841304221759503285853424884348722510333380850386099904908966489863096171463348157878609155899655357615901899264050650040643066015606741169668685881404725972661786737126618121657586071222484480932161599007010436777616372986807003175326813036286590604143902991509923905676461517378242251908784760201624008284307293660741649922243403474023334501734646244794863233756719385978362649936840497300216590068948326745985322671923283000637535475194572150549666281470826484062217566066139192923301174922507285977762469905503105500503212500456734228559454522844048664713053638711137957833311084527631520191532992862270330417102615454453698544226208223892867637859106427802661273526115206011889365166951962437310766166157028343490820891767373239443714870636340075962687465921343336900051472040183460684062636957186198770899290386559354003651249458858288098041564387476579262011282141095181616973370235575890485726377954780024821352454810539331720035108680958429622788029826633140424305152508993928952141194401614746040995513569070825145221957194315026047914748372882449720627839889927395373435743904493590521190335556958632348632436033443084582574861036778604761847965324986319089892096925172973341407390380323621398951815318810736065514686845360269637616933396324720467274845638970169973006924839896708501522721650965269621236660493769582346976269193606587443556101716859512574636844602064451543033509941327788560568475440896638847054786220725667349757967781891023712435709358951198152897142192307806328498506605286872656101518752528703026834229272399671511172491715771686350587964523410848220343744789352719310652011884914164250187109255726187434517469720659506289074602292727113491327941345800345327034490262669176947153489139083905152511813318454564767586106027063752256725558998069270174250815382882309475641947359830975233857837281531021805447802795679462856286232847215983920269527029208000556338299215216047082833671979981747416727279761695059144119832594653436505797247562103879866341164154876425967300538426119761236742113739847615424099188188384054949772080501465499093616412894211954283820381366637508243693209508618785034096321981196751546179779715827656739232462247061938078886724565301342409971803344955829049864292115357338454203480101345355033697180536813274618462132502092187000229270420986838217076024430075335602250467010366995674844149100982345430737872571818757981750979343893162868128467220878129165666485939484223517453033353889285371661343273080846754491420289556361524285575520404729418312850415182353415700722871109327420687938223007885710492007933515099303809031855167604972970649232023328317338239768101837086512673280350402003283661382823510204317777404009229976604947470171605407572239964579522288808675420541597575372890605990339108318518730446447394457178865635856169382757880606657671479249672604034848755741402485536181291392045253605674721946113383030953829420994563606283652824239517661235832593811707412326181805050343805084142816218238010497414123711262725548805218261434272176136675339551973584957015145877306851813231945126483455960356951069417726871255504652351407320913000142321171969952924654358301532541994943876685078247862239947745184196673699179218825385579928213667169590527999859716269516275691059241243129824533345414595752540977898048478935836838951428916502245044789532714768284607983545405566915680935830376499382508933157880519102358506904961061567176557441567753487858675348024250475895085579676497406486859180676631117842444513507361697489684936211564833502062940912574294443388355682291952671270723667196049988478632962743879147694881783181862064285812093941999488438227840787871042051653303068721829749176809262812409595134736779233375266227108431564452975999389092702859249148400866925744332033177188967032393819949228117278313942188522833023477854955006228243723284993592553548756260798142943763491190891941707440258390961673748073633716979005348970676760119465119221545781687481527245646438614445233232951754723450749129842051983365626764824441492894058367516772249768652038955191767883316481917293959870723556841084646398726211090203125384999251243920284857373117494848521614519502935587243340389595094214760162583395860109648086068733282416534247655876678843344033384739809387200015149270376491354967530054651072610169360551202862913422953342377535057874934014545896242616611195148490440492488856179929424666642112936381499067448802435847255164858712400579954711030190620825552148667930335444186142357725660062169724474070754296604268391655074334588935013981309626123579234836630595735946137203860833625599896900205110037217275786691211248941607674506262768911106840836048546417948270396057158165445806952041088377151597429234753987135308353676244082925195751142010202961122849199526533973534405763098540834269948155048481451088750911035536137951505674875140174985478203740183366369014471045094032829474662250352740539234475220168485778100061909036919274118581271652480777717948651032676321022974624431106223799909441848891069325593258210105289938594275619253059186026748490581648303800426326443748706609373897891310672223817961313729355622819780727226082055397128628172261212425632740832005717660314898348085378309873965182488414452970141590525406944310826301368334124852024299474269711202519312477376850425701047537636271239408951766097782121280646864868826904317452012012922094856508140843456228173892371221144642066782308695850106590269803383025667029411985011753737019953771362403001629074919346453532337779725480993013315702246667112070990366493082498900496675452105030713761040187765682521845129004608085779942719419437058286118353993915817740580224634132249857926352982800906826194185072882620614941553585998197913478272548011617257151009042063647979712654893875394196513316970583426425981220405025449017635994209255823622732684238350946223062752304701860058909989883489990185130616376598055720728665171446184203714211859729195599513057825094010582307130402606775219363380080946995436047770585454991674027939654145441282627161429978870433555988655719235429017055258175103735320529116522222645208473236596886917426620264485345453519635193113713260510661877612901926420188949056058290662992338860394305991920557925239165998592362414721156652481779289658505250227620606906299550521764756689373428108412813792234364063570672953496264114142412935998944938614622322792828910808244192198024196621449881011835838937696658747136014871184091511666698993614962646865792440394854742059171353117115358138797433637718389734492130335555150667085339167682519930923357665927913567310093172386721285353430238678837137460478461844268727830912645935542002601896137077094169983761442319995944746578660424496709692585501901024035472916510929962282234461910753364072975633348880321652774682619364285090043865023902558223079997903736940744451686600402492089663636636833141104602990187596924445485615030729734869023419200419139383282460798933254036778940180140654949384086299982030016053131180840744433847528697408794682686934118652919394000396371024192448614802103639018953209529162323085518363696161633862999322659688479045552024123951033079994141753205403407078835664624571571967612357892530752112128618946128633293314444213433352596295445884142827486403141930771254155066863769594154491515957712076489512323792350923902547452212800129264630282578252099776318359267605338991795239774243094186130653883124267183609767082515514032343549484102272775247313050086211328181987025078488667597610455253796936752875837247035377085415453283438486587114097015048355731475097947147697821825381737423015539947553137626825225026657773067696243715654976639934129607550239741241774966884628423360712550454805347493754578713373220402613037126057999805509440771683342301239606598369181511764750651773183470342248036652803971466375191434766566810397210920772839162133469324535481352378161925280138897696240282098553576412692418624911123317845333409264584724686800446468435503732171765278152176903001232855123867629085205063050021368474572375012092345664106732046451649688089836671823741080836167035344780014514193596902870938581299304083846205461391716173346736972455110768259921102320998477554430498572287411843665361088284125884384160624573665813756913764876709221182951606921517946112825717515550037700982872583312355378760583891136605651346566763362280112219083758565757350989237572658743143907622353205990249475571031172886694451733305641079542942180632623270689416816899386338294454941580528082772875534278332380923683534140395002748460590932619125782449111962518441157110748324124267652502349493882514741422197574171104411389843143741991761499562277782169684752562856661081172791496051623162411074115224751196069160386835541655001265387895008882478164639365345883670652056273334850356412407252709833343369648092271384561089614650112949984622879960823432795102688759836161094602468177159618088801851878802784500836949226274983665676464126380126793099364723930630756606952716649466558455462009127153104753631117694722704269985854690363266915960364998501955896760162390801359517326994598430008811310550898563546824580878192351322899040711286556199728779580158910401546529981870490820420574362658177498657837852420735814068951097954139613762502531263194930285629100268979355349641714606441526418337356278790497620442392004395753838777213785586587512368240286415499257109857191661110919157703903756568592501817519171712223383808890321293072898215503329538798704004750560093432487689760967564147484365862633704383388871694166593392019015572026738946634980289981438004468205618955557035072588060956602127641120122256928476222757378812537044284254710206396783501915950523109901279660337458507337120512067018481089238752003253409227798800582622614625059133989638863320144079967430203190258744956399871543105101385699308266270703067304642392650921920834648046576537824099128682509564345784120506583748791863024258823359621463459268224398901132940538149166393652736573210410894507855021722911808401155814402179203987809628368972769341158243300346582042698984831011559437718807862056319697444897082997607024129795289000386767825636050876800809496688123724619378044433168179293996359869991533808159163670301381620706387625457200579273648120666902739218260743252875524646168426632761550924332705177129497874828065325292132333880536969448151183816022409346843461768242718062086682559061519504812461523378414882424646123782136998832889590609524672153731227818466922463681610596566087764352529367701286611426112712372876999368799545672247555902603451131397990875183122580799035303529384063314617379864733819808624768083479439739027798165070035502780332100172238014547344798043817926093527149869430618841404882074232935346744825328628619622101960475756514745777101283244776488501190859348485703646686543491436318737720998630372548703920441223157881060346596326386824662778995762624421380861812250560290363157831569869927787271119945270504254648732752034220904243161194109915512729615660822104906502895018102995272264300347744575913732604854245221394139377321837496917909122288600807416699984425350828247232094878981708560433781080782966551879872938813321992508025546649532532332542555203225304319846902076560314533576345718509326664816376244457952750864908036021085900700035779088320524823213011929813431491492905298996006637915275702000631252536893420737731543265774223977560455630628445456174181770349937099066782951036292552926332821202886795986946772991544435388560286941960607621901908682764927737611413526506388214481518788682083116912398578327527486597215653368882522886760360585812186002389005977275062828705560002261483766071970541743532853995142192462233080361002362471765912897489104476561139430350264766316019009237467523077681094128682577824697359814859354316773339856544451337025638813918628236359555890703978761862154362243321717590752992759262625341569322091552880493765088766427556980930557404999790227453326707756892705053833291813804645096537589286508872879054167674275768002729143820612549789195734413060225256586154604992727128174495360923633642952040334848732497975474732163218502039469856795590959871315818089885165270849591504816196563210517269963091344035933863145052285302501754696274429032813269296165014494852575335035922869693793051779789725176787967239259744219831638494118975582889433039948809278083911732816444424131215263331744123401386503244890230663245336977137204685213506449510650615422210809983616470840411746494534452106241146834047256545111350800992725808709143815421298193020582451285571175932545815404246702821110957061750207074601421442544184493316621195688973729728198739113048783050129810947092654643572850194481733685074857375402208939975516412115151396441591180101263782972064457162777242435737294801916037956094580935046531369105619246401428383230580876064013208741351429494183339836733841664663736548459785665050538849212231042788263936816067860904122789771306947362415326170976304024861802646192286021332634235109836240383724814679767439691233220272846807690796054532697813003639272390253816954773609574866220359352655503094022087155614557557436250118418997515726162321572249359569037363994996229754738896505329139539652416706956473629192324013987219892525035516791490683967256701022786828685435687212727205830737298917094408649856331369082311099090139520002264364709824747530939445560471947569298351110870189808415975788727440627197924787449895062971520509651564317183399334600428988283202516366508767417938753462590943302184820483403080430628036866936731659667900637432090293457206469060374564933225262791457750763511454425298781610189224646724802526676843778908410875382629912530617682004021199508890925139232281334386191825849408425634596126686845113361438638681700578528890049445107316124850254494900024258828463355480463292834395902922736210800832130191939528966737269905866374222728111518521622862163948726507973946173666816669292898218393096104658042721117189791250276913044663155809360318091513870764688606176297751267295132758548916241325873532404484464930184383404517049561081187741613631104803128704165912350976413220109425961896065106352740360015916460926694514520224673280959639896141460826003346301860585817331784337178325898011130910454812879268638492205171572787385708036658755046775627569728419464496561423644287649530889959788495995132896242796296059111446183092709894420822826299991386192517952087954465124560726444931886525780104292776016161870236752296445043008605878214302780638590328520477365767908553996474468036054824933769467950492037936928716188935531354357543326808734207297754428978626597778368215622616492236669984725071507147389568581035793284989901464956019309555970205235709110091000618122224788766561502329844955811863361173805947403120332633999087950657235851872598221749292081579581538154804534504538018196086261474657800755032564473424682712496936385995583673905005725409703035539591436049390456617658283441501840163885654600067161200506876111010444989993750581170557922296067725746213163553231906154695498706863197249200734561378034506163569559058804138261299121020265562785158492705765316589252620984255303106212185065191098320156573393407523415296144432614019764713279831322679679436968326196226553223229152989237320089292123377229866834571762479703410079700004835797327121854013719227449662733782141959912033154598302110674819398921024274136280931743273274321537970997478654763386578185709422064592292018635738175547089524232288563971548759922500744217363687866369221101971457565593379273557071158994313425914940058593578456512480063905091492802301951721780757357456780201562712445078493597411985010253693039578349833049760432255710960578628337868167081274495818782962129642398262036519388834502718712380893041936179853429038874882069862039295438407956905790442262840462227542100425298283648305567614195458148544244179109080034035708768746643375818515870051060510345698737171070704123863658013072370247909018589076207887166631171075341629225376434198268726795177711792583624677645845801516824671099933569449314605702624024085715991574984512934573416377233418421678414950572312645891128906949303683818232033327738728076893129089019422426882940608172356996268011420286339302356831563816026564648552533420612494134875312038410934651868179561234691634304687994358956359033293241413523138716182586473321499882197397158798792459846562179425463836305010259201024364378179514911228482155382703615047327597284285311076131956451158037411433846587938037109496261978771146274226122845914269383088860799580178859037772047422958279271602473668878000795443726529108799043894960154621491096873953241198070103015814973845294790409248781140816708267117094862529026276816162932512071816508662142364688253713975913179659449144051277778240673342344805704912703293681492539860207502629020706361625186637857564112447696724807817822343918863825696930656052873229777587746916134679227230545556011703608863454390705506773329015306102459883121665228816279137664928769717569889922914122301021912913451360844442447758867409045924233920874689165517178342479686248016307598264753701353255714156453967964335871937436035080167530147225090602872840104638746448084436378718789582935775884649792970198649504231486001570353618287612673092460922990482732930698056058473176343603847676101068856386474229074962301685818261340065192759130048673741051841130412099154889047839280878743093540665835537254908706807552144780376208580232544416396223362176992913813246503943485226312292760646267002676435920571782748489943171075927105231606723570639698447479791404646160313530075154895713766649571246290659907776230886603352719108068635464303861010511455510298875563469109342577540105166625056251232965093864326013352127896066889771707770011193619922964173150644603762284120704334624456506463204251217851041090828939124489075710133261551740214450151554199801254111596990993224214512978760096105805171298587574084847732535371025286982025222277825991554572406024373115682565278271371788228857760636863310717623463535271465929783414300798420457896949013722707363087596519735248053893418293715353707768263072924344021541582041252056385041684210380853572581485934914218551493837408426294948060939623947781254796242448515235069412156779523398508461297493312427662263627503052601776108812037367850600859342915392067226005077639676413377830257546744760708080398995411516994671033330125293487737030349076246854598731269669872305970458461245472481207859439038912398391490793843581865502603271865483621024826025955943748702975056874524023404266319384346638552485380544413882578944466982765905235603876336049108231690778161018811005920030638647852416071336887927581199496808943860393635327157289059913265399628221679928337615560995130656570654663376548924241965815687353884968829346311698709235875864158232865741985253797849935741938591498181400198841251648517680692239817968772525081526980380086630939189670910058985035294237085683345117218801021675850476508579039042416047822274632359293371014116358539084467987974609692539441183217433546099999998728232996692317173407866972641668945485645999483331937476175291727960265333261867778313414316646241362906367571330782503233149195200714917604345676375318654645500434860838277265232351808751667344665473711271619435916969560096894034695042741013711137630633473079442398170868768474628541193089475107231967195055966627495105685435078605284270938877883194628861602921686300621777227943562145358016495924477988803386454210945232009783195610588877698918922191430085733221522404800523376758807246887758743125717182516045647097572604740383610981166968827070058159500029546948536704996913651545408431954353317437900838251150170441334618932103189598004286375050263881212338802690410525972515474470238463487755649397739006936427863920547967515189650197260276367557160150780134869040352052240240119267066049615540588928845683404021179637227643859314156484195578213349943992654440388258331749402552256438781995965982336439228958584780898618656161689174605885477390241852600148356353030568929180291610963935752514418797039637479969932758763255721753451684359772888797273609094387487144450342239348871558387007239459180486237509698735068828264050281300275631548134358030071230255700424731145650429924723140074924349387479894996891128135505303901048096892474262620802946795424414314371268365799106534048543889295764256886743468843028541505633157928662767532624722899451634965555749695802847871324311258706730057415741179991687380232326147786184984705280386388339065148209838112827911178412728486434442589243378277710035851887869606566667625706916692805467974194404339833083767445315139934039882837010584640630416651427602116695970748948501274371441877920906252661083734095398852205068640639229835911487634024364919567191079477242008808428285990812652410245381877858696302048273741466953993406428850442404307356950190649645792134688920147685631686033422965839540264131622537289882035611878562361305037356107969217841148554344112770217359970211329811036277525537872377654647326306109292688715523581393475242963720399653792604460322921771567549130597960974336371391500010024628094971467421153294295782909582623850434504369783103241968421469343531431077191716719101073814967038121004056530248547321113110620611959022608593608481038281733927516813969670611439800064380569022085331296601258257354415643599333313891303012289623781317600671591153683245621749672258666458227335344592494725292122022949244306602978685028066621871578775121959466939768084180529502050134148509127993383430248213970951728810167939326857101213037793556473940624918385571230032730548241562160549464354700994481110741007862953471803507179788247359202795732927169100925954389194408222340503974114317049257788372638203622216037546523308411502023432906274669387639224477587158552941297447637666369774021123460943608201294381108556882889089092701843975944283945775424119617727395647003024181356615375445757228288091809932552288241411145369012208946279194810082121011104253677561268040936511052422940885127663858702141043257502857446707985027974032701452525259867271732047019775100011832614356686160879710062413426473020412833191651802241863223341225622644606883303353678695615808443300826843267436213978015952590540812085765985446771902106023119604868296452436897847690084983599707752975511402333941182296822460019275104340606137867574789815529761331630466035388912390262103054917221096950584518358169314738119751950094769502878388934719523769878403237145010751900745462267630768016718484455269023320222347931796797202526296871708749346522209090162775285492688780139336889548345414934833613715597280818092447913601670296323980469825407311080943474972819279586794737831040540711538499832476075282759804310275488732587895110616873751027793652684045804128100630287711379123666498112731889897851025393290069094402135332135566458987739917644335321575145039273738588812001644872044453447545421091698179350086010615694687817838350630486597679723872583133576366628620714481795500509565850624462026820056463752448788840084675856154981850912023562753649339105708076066443566576879604394329371644539699320398146370426678008705916208200785299945127550827294238685699697082208597572263536161627699759879980212310514993309661413105132722599705149292499549306459205196238143375269958144253569128296101903803799997456028873556727732269163043601050051299363202488938060870987279965073839464531160717058125717259396472495016011515343470256265280061354267693638230194925132646473848323020143847637956061459155497668809100818735905701062432872882574662633450035734520109316701049598578802944406770462739121915920947561024384121100314837174501445401663804619398638010676591152512277614992535883937495734105986624718730490001538690051862344307813533997392495030431337657669298821138313103551554039683882282967456215617923344876149484363825701520778691409291143768855785651040728592471468719714622310250829384347962199978639140257876134040130350615617186605078550879627902115852080027371943903163832704282524695141277141393439223235071892807519018694062681947185181098857033719426091798215434186324257318280824085457767920765635991473203155082151322675582280217332120817346814712390721753261965632299917218469469198734540793240173020077915649733279694842429718557558390229357371637655632852151005854460853524975322090126393226175854375489420386220794274183912758957288501958611276387249724949574211371521366015666306829956926861516944045177948737257370244821038871552963770559407957807941425038651570017565039596082585094984228942736506458209960232676605101834712392323487506236729780333376202609660494302339302409885331688479112450897910353604430618043429939538959936270227258937300367300279461871895355124787321215608577834970111606346167364701895375503262862663171894327596887230812927025608713233514922966886075704131435767410001405947470183868580949051564063288363541657665973554735070918092969834421809316985276670078077241748682437197429874057437205533144453860920715162794113462219012049916814469178971478779966077217759831762475651552105786280038140693868301572882100052864393734294197869761282282132293083681534295790838429731562469393486693920173360852151584492691159991868084233691094308431076395930811995540752839494411178771601786597594264882542747045712221186373612240601793113307600443772204593593046745175447031650920708431742780673307974200159879963998980483086829255948662010766128319586874878014818296917112821602949026157980230988892812585861885665192878091881319354064552611521196987210072279252469300094691444989885900790760317015209911615451384062928348030212302702270526724116005694380177336551492288239991993434971602472039248544476955818164245273968238057445313488552243435028492804270264536143248733633024895737189824148476077656076947484624713588378535862306028885926714247211068594567708820950463729260967625058066845206164506067104701179213300748175974855289239074871245837996665517246638093625622818944714080651128523362140741778235913607421687401444372566055518110960647499135675523566532960418076726220238654985448627177668473219869202206358853939483412527156741581160924479167906111474281835064746421331434947092231057782929919827565991566370978846866460674511557458418789520829759587771171140284875691604092632327661485094665466796248746245312656357944726290739704975555773747321228224693292210841720810104064059897626816189398970467851127773230520105074478352268001444222280015404302442666584141038800998208796419220228424413962848928121987014358421585664832636719597346664404634898988913846359202939402273843267439049117755423152898559448121148031427305673882114514966588706350247386140564314356462201182458675579430463148980370087769871980929976240271946849705678038636520283501900847729443655703890785578807849417230308895106406734461898474837596641215539960706235608710197168427102033365318622619627905636405364143621440598979216184383769165331133321299943961577254029399991771222099009260687645597510508516859740619593580992408842814481316061123595392108768915103058588302687122387026844898116077229507728450876482588909487587955665021203123232647495855870682285730420492738424559828834244875407856244913537425027246871373479166346704981266283122832237981531743209092010949349794408138291357171632556276202750271068485862128862016660642401112745343275067747626524685339325494732798668871139047000505796247968885130599263809429273372014902487127769114460682239998983668080086485563348664615971622601021176420954300264397147878293178160459883977642500974008800868919550301904450819829810475938712531039681916671489743127329603330377551372220142416214048523420417195026209875037418960501451144896823549380098051659209241925284779453653050910459623091953164200782530183530296545326474635694682837556054132808090748490655797774937571716997772841945626099327642825446350453718498948030729437730554057383494438890658451930952382342477883380813497394013445377383153593094687136554469568990020001323319251025221624370297063518028827121643103105025410848825812255861681950656457645891349110049207121493493998123138263783380475453619668177250644311587784999973934283051535695247986673560803627481765297664153173552458553145050299792393282554694240323974951759975011478464250084823661416891513490392200433230177547916561349881729629433700739570511439847615250260437926961227738404534280659205201649984841734426727210746851142777211371391163047840515595265231842781690958302196076843817851810544784128347207829303641510166347128374653539174751884079882447250490187915149618972311566785716017955807504066411398712175290507316554086068623353741620868573252964176348948052457541513022024763983667299525184020668688676731535298014714242065118689003991759551601137776638877592543461217504435345884244464942032046823172468565386514869167102437392199632110435759267190124799165433126133357814524343821932187647366572863461795704294436583003177028590904773601804110768067688015372016474218248022588381811959765846825072578404674893057145035539638202961008543499880940815565546879873454857154768122731023936238727347611140513990701893608363827000700251168999931847006478650739810146260261848065315191720521912988993783003070419677122257856195786321731508156864104200016248900262533773760779440772925792663394304325581619135652786875299770226171823368725715896305825743265375361398747313490336892704255641417150443120991487186370781347627995975704224758415562795257656155336920481357489913989434750702547257165824391805407163570432315724880151579010598098740281932179107433183529642267635109097551338850112801793866348339276687920904024680276229575259924411971321452549402941424621474820983449901853076240066162566710533085911409147788913791734589210689851027061871963204513498614861974068260665342026861808560314173550967107410785186903648306634322943448600197540088228082715459877504726375330149464327575464263078851028938995720149289398382990497397400326079963335366026279725898602940189193603380274621318318855556407181945755287338735623340523189862240641628543577276284283339517832219750865144523885901015220476972683030062679000359461902990117196664752903135837934910402431813424287479055935781272884348443680274470777660507388952697219155167166896824427154684550765711911678679762285128743009619916523634842797384364592888900487034926820259824821019540026292395787461200929772350936336671287721869084804762587331487701794306606088480960468277332774522623916584917561356275034813880043266637691309586568773342964421410499731218103772558209291920951510185086242703555328849609745892267920554935251845542681410993894615569989152588205859322534504832499233013862855363067736164611200552123660513204126263502278100727903955221348986362562256351281834542211096727224570722950413168784424511847709801542184185074338373804763110484452285411302526313841817937557272781345414427404607900814990961675114475882192157579856711113682855281615434182145815539572026920743569760910594162407531369145280033759933901618136220836356136618081022629417308659971155878698480198298029880504327778147402751061310887385953139683461343538560314830593960489644334439680403181146543365066937436699802035627531345170850661012202586206144891705154973860127363619274481103275413365620887573064459783879373732003291973275562756671960779707219855120433538037989851579723658722993750245911076993437191914399849978701989300670271456476945620566123578669440851441388523322666418286560485376113043502326806666905718218500935730016010306281985794391618475804205144636042420418895673317993213953383571801781390067064476710322170135533688393995857585065208533476198705013332025344949540347882662413467066293356275416254758142979155050629583267653071928671386745387825045577703803691936175462445787758271625220849901107342054712793473397875276382098161761155876546325691561240729645199062115509811534961445896628301551430733229106437351476571112422804685008559657187499520704722401566066134014215197391598372600858497226623868092638012661770346053058525494158476238485556046701850741872906867978173811648847753220209570898282108083328133610173080369441018042082238720500933204935466437229654084557081164020941790343153217345822889399833594257727917519829974411242054344520696682039026111465597593440720378535191444056360272438286369053427102167562195937413247622779165664279579008572976292022100111826794865271847878933227276112929416211142439431787279679119469628867306301036621932363605730998633832721650025101032461197827241010418863698296796222653734333910512398554907052036445391504972509402890459038101773977028638544560163151593219348403912522630895325510769883476858670281857165225095303454428304691657796476253949014994470572014167414891423854056758426716576389967681548895475337381387369567084543298186891584875855341664944969825283417202947999604677612586734149581196390899724750830117859376803607105241915895074850936904783825672128719027816535610879253495159230633991855520215199596049253251179582302528598624660081493166105857275737763781246049592331001610124909773922602560872946401533025034888707869043147506835973088017018032250665172265317960846599747016191405263013145987282298888629245347016321648651202326483161729966754638112081852753796946809083079811143121518822233089264608946521813645526858361624179303892371365077572242216324948429113676474869738833040483469929484726808182620505025288045428400926684847979909699376642225271786342654171486576744145931272115746334883176316769584473998412924847679166991730953527762355628326002314372835264174172839892749766283747890596879908237828107057215972674500932520361091136145928416796109593130035838849754191591491555760610849545681521064593084035423759818446595804321980990255037629284240147811988974304649650781200491688439361902721966770352457709834555264448607112917113065123837814389150321922041917059942603973233871082960385705099950797301325104246027189809743989472118585739296666022862190063811726187812108195421496846726046529190174251346520534175798306082267792025174965006772025675796518130154102515127173184508187974466786017098797371720670795981036429048832380508397448536728425009571090858403954995540619363418165722682581575702036277425279098856256901684232833573857112154174891597745784248083850074002330789295211374899877287227701928294381007759316139843661849530340011520684374266573750945596430731052712623172929470749225115271983871548528140216951336366012704675665237271430259137704170297429252328417871268233266019294534631532971147502933188901395551847997727868410291369671315786065252085718574312454839071708476757748287587101030547998295248828077660486245150575213425529931176133807098614385415034865230298808815527779720692327402250044403750019158610514583242981684630815638174736008876889464896765703946638892885638102113776690771135620713598279574295186384356638202638793405239417225170828413207258993000277555087678058497531066990425302744772025620377162950783515335738354473805895558657698550040139306474683478580957179599604960919051860832410866079670562189879828652456741392365633862196471733410865913609719093018695133926774306435796307261104355731046239753642904912985445221503883035371284157209439700826715650423201272791486869134265061285791851284044477398684496849688955874918208322454602330616103635505713007579957410297644535558383189392929965101099355401325222416818218217310960979056292361570934030185273668298916511908971256976066294575039604457641737232321825237159078506993316795216658166659966329903872433325215592043573660582155643280371459419386517722039782451147836644262178138565403031571869785210560079366090264822149988664065103177512770740655809182124142321923008837643374703219774608112573403992171986571250166660806554274874712140452096972538110977393940948775313547697885827410546198535109917604851110849308098071391861957799468581095549286049709150147663361879601301637276166699299525390510915914209595677240299437804506678354572561653833311181664226054417930953250936835883638443691289788358212528516420809871063977078566650933553957005842005225999568461498286054652190051664474748680626296953848406865204095724327476945415247632399510335656876800726090082127160736677056439975019545093584282426497442533724592023219511838252147819423503149324961085208327356904949289837571876009517719104552136419501164580844111548005881342253619374128334442081080380293443802177424235779119097540111131122052475749090315790370046394132751889353003380009026683020730017609807452893182597809193132938982512131506366047320019596199761303516615124932693614325204613651374893097322638573275728541604122232116212171867294884416146123958555469820654166477403255938737153315978843487755558777402294802086058272852614105395098911693647349832853704330972387338571043525724083059754611973881627861579133110135530497941536042886329538238561491049742951479185450708924285697877303423181074220347402737078724293509981862029484379920834437099666292419329872369918623299365958763117568722431881923333042258359540094467421521351857909912144018704094414140271194972478106731827862795319746307266807555168740495394736103482899543366593281555191549580108804594819415132715008571164129443007448523102155135018176702801754296423010577239508500475961946363329963068284563841146970478088799720661680603042519467778391216366087042483448099497819699805500201636351066938309837693825355875669856547367572820776103808218077131557582531342662087958885594222717117868625990636974192435164290017336614078916328927257650553948570037124235715403726424767368415204187575548320890986633157626536647670153025850691114883948879482234044141889550698942813271468570591833085691156659258653019071353345350052096532223721623134844911723201065537418534456996491276705141317899826533433638480388585645555866115990656120860814930257073733522460867197232471874818711674494233288170586219466719032393889048241841018003064505384243279678213247000038467881348047945847162716154338843630294635471272389807077326308082724869208973015428312378767358681422583380582302712508300043999143106461403842539813856021728460539524835812435341720452066370116999456255559688009481257128882709378871064908290956864397377166293750042521008800480287434341728441345667411849373093875885877894623356654780890536518065701536071712997138305809459316541833329365117854036319939615589982548601357311337992781326613524641961345846883806820825031606966842609078118857608738190189267704158458002967700295222304664386223985753154680813149637153665118171723790959675893427107489498623759943222604313324045945194663242393159618809828907817408732188557636762313460877976207993564008744844119242345408196362183350074053894748225329279596357976524628512971521499493458522906159584776505370116787947552309498815315979344935850562439344231095053083560824349613297201160167795496347580020956282645575997478154478058644428321517765160271770530612135588303978807642434248468179137011155309007114360392931753047048985903881367204595523781244500592573944002218282543196104679952028054155003384802266267253960724321371364968688160974908214055879872570689919131928609585994560774310671083139230804883947064557142282881523449380509652131136004968915455686828853842795967582584864840973860011143345763392288189668370439528394946920334380064909082316000740768900962087020232153229083360578962482751087096452317627939286805048601616257500873134739155735945307146195390548704555989624274902913490598971423645823596708925806182047432955847760317769908648439676863583359921074207080420476177735686783032337509632009751179676167957581479056061354887406886215320475767060281885906577832402334722822340271488279990613476205022981185054111899604157136603393732907973974646613288742837402584148113538395758049751667050296613334801335633634555676111053091102044185481844035456207936292125411655878381923895366524107345818341061299990775293181664769949988698257246483233261424322582903521316497155554246164669462149757167798360252188348751398729564421391697325527500061340729681394379597238919355427942609942971860805452696906503925053784514991271851790209074159072068396496431873888459780596349471423837739519394482083926636599459089966155637819330502818952588162522899814896034543186838902645817125606480319617610324269268545876485216094225548896588816879861768363053574677298660495438999631325432183594028798344305706733982334365938612996171203138638773155817541475140582472971731285857765144098452702311764989096703367763539010218078611730757778516568391683919768862264217956711984243718594751232190033192787016441591822885147701737779050009322847527987688214282811804471439821581925046675105298027433604848676832032973931427499105173048598531125528466631593432687087971109305913916974399791206587067957695452261755193502356221004517155350605204669923356959151840434728746060881524272205947087269630796110209079012856909782161279900319760428988538870363726449363610197506862463651101366948196277041701416958433583702538852407590071096145346751877835698981929763899216450350645724060210886543663239440662491950152779827479830803298490661662527738821303585044534769692522515177014933761489088973003070508794425089039069221398007815499755711445409899734656470768674580287910001428476055396103316240500595907074788750265573892734764933616318637538843513841859137789296536298987919870555336532320025996412511489235991956435589549287831805197454477736276581606424152465291856093098276037363238097361243500538195482287826552627284397670682457854117578050700054398289053152051950690129682847621986814739910167537765214518812075103206033564181679809495482603339115286703949881168296649813060563688712424751592007123236777944167246568625867816972357948716089260973449217391844775479077931142051721570408842436014047815276365836127637166861847694176005560087437777161465275384368087491327856264833584092746641082084433719480350010258227518720924660319592953790201016017162557775131428989614995556194379864468053085053823404048938862370249972296478882317871884161384407548311743737263508456879749248463392706570627895375872901027988806507018865683711374154949157942273444028984304745990652584730541933087854628160948954874196956636101406638397858452176136432475484773934562944901992040627080695063312502868918888686822542509514764446872061245105799532549497504094092882463318695274026939252877090987634717168452972704006330535004101484503731473071444390077406691950483487363034537808443415624122720814087189061022902891872486519743323406564120308764478225569585758042336876648314052633833471911955248195609037771028636121382422506670918974542063524371819961623601576182164329733492036967966752266536908539029337294790955703871409415216316617595988358922372953002537200526914396781922723562416340777123069501771650012288843124615478301736963837923683327286282963925013682923917009084027801644042064535709108565134161535728129624350133234843601777420976378857608125606347941304718907826355466790646688853753095510162410858308681723266264215024336310636896331970814261539057064221929205019382981510293503583957728439931088032058630409940527753568133192649347139708111170023994333855795177354965888662834592450082305279448674878083731348247115187210243999323225234188483192434376651634088777898561985153964008017457512446447639523126217041912062472100446725578209957797026667693754962326004447394056628863580375935244197257574878811077096833251458052724214061754548581394633759101044411622309052211156491125677304175797995532613680025774544204745083214213133372036499755396361611648521244500470211490511663459491941744096413795779127211454132456193033208607361996032367918633454974249084477516330350395392839207865733811195087207516550065993910680584124671763272159885908367824350654627520606880316563726954445150396756887929727104121516509273797931979580378453123522078351922622201156120403937780488685386970794611987896536069955563161925786634409121161836693098183571690914058852765623627048633500674536009779511228975354566689085521081413785133121859050855426001171492008371923608349034791847714365422432886420918320632086909424450630463228518857914828784060977320991366637056200379339863460742033096499399015310555833187465377552774694199419466315320673549884615828594423457194081787254446752124907844903413033210178278421058431878959389465587825513694112786418238545290508515804997912292965727051485741660331592587603927347498277969148945422614140149319497749309350985183330176242105691869134845098142570098700717132210774494821018522107038866458257292219916895307107415192141892430472913700409838231135044830725322383661837588490595185701496928423109712343795240475811358743878507921050903620565788409801106779838467801354314270777675853353462232362029317285787768221967675613266414611544556573063824254674708010238042277560074080416391147762206249805827397734948859354147854798541281810568987493873172166442484379386764001558899261895158142585441661196543419289566270351584641759468987121200273497000075536144562286667164883103606704909580674885532490357930144873819926747162697180309372185553228500709737490190645352700354277073199363861268952579841024934683691291026678502175521922178342098309264699726287235276468222829415159360804111700066834997292894722768954900958628252378493958633463241492209020752492779685265884859164920837190632618684201823188017492964921580788757655667347655269585367688142980870959496739963050787676837343322144992890775604451291815503513054047058630362616378107921960716968355153645160091278208141439965555379888985686045736336506811577094383184859057971171358737326288315814616556022756399979409644010181896191551757052336813451594677004296380514555739054178275463762305744708956088147070496073655639041273126758746624663110054447822067699049251339166799072799817528944140347650811624429987107483492821822880815900053845461847630736786539303328248175055073079141438064173430803535554751153883881360142881994082728467521734697109909011652735410722596703084936664310185896967717824489991277004195087658313091591505036468366699182072770444164537840478163810154231834341269177609199809295416633825283625434854904248507929403262014665905084736426519010032295137866038404913499608110501248848181870626692537495511654851685969354907552076003549367405453394377934109080875568592122855386562943672150247939430368441317414532211819316012717318910490175110908572017909446347384931594349824399921468248775445743823431216322188527679782209802607788613357239500661931809040525158469287405580582669419609592874716438357939336631764807815679977470395062063182658647814360252721671744375739769839883760659185061416411936902822827454281576474477830392343283142378006022403455400833959273472786003488739543186106633405784246975915823824732933557406817898651471317256340478376813497482894534582066133393352456436716683540185873786195227167341950582209979236924137670884773835061899877562533907030934942116332247744468621836698219646453526211770907909822023012161387941885318652984289348007735028611344297202886481892982677064862098773949156789266562832964809393329254601424072433842679827400224960422925730987245821517525028831658008463280799396578395019866554775624333125935433503014051365036779504096476298136992411903038917859042019322238194572733240738784488292709906765134039035783966000590193522791382844252876493587942966847272180271658986308688410731702074833554828070334352800513836496117255899452545158875884315837764249921167270614477862929948829153171991617307043825852972474024615558412350274576495807846965349126960618836529094830601144008426708973367082002527849097844357877628726310704110964888582173402525409512904833939200461724057339254069146308870536569938636161439142734280545917319945506356860563095840466816934666823112958565759985815083431065265002008721092006588172378558775063412683755021654240287715458974971774970159021940845975306797958868171073898101622486345533046919628801711342370019965642355848341753856056639295503686221925874172676275397142191271098517895699609427067165785784250315906418330537070971349051093820938243886666617939886178720896227954379903961805667356896909792732849415465112200980899281729692082385251950564341776693353550279344960189179808460733349287894680723924422008853643625132524164738093388375546515686320948535390128048680784238725843388023540409697729084358098392329002435010381043219022593691768550518778690150264556527815984128907617951797609532146613824591568523917414318024339012722266000682023676506573828922948010212222784622956336380308132532266760328791581026721986770308842744930868973533196166323317066852626136870339225389963233306930588806069762382309527926728887869197388095716315727094704384036088124284573286012738914944335570783710619233274863137469479751814181895972718075654881540558379386270944889506947375137139358347620395989139088865075576174672181531949904796938043698364135439672097484336689924882164621069130012705739182127256692129406006724381565217664593465252665158003404174762808840579310703894465751923193834722823067302789419952407021670186439607492228024932182960116030001572014960561764243072878786863346293814615318012591908882477063074319603233227864922852799848083016013809389313271449662471401476529154123875506020662616746295048431718518042084136056837006144486599701825728354110168355053635777819011398166210150397111650407420680575681691301262990672899222608657212219321505572823723084179153692485122801360274795210486535493534624443513667940066318194070488945182172597706320960852872487835631563890402256304401107740122010968033164152259697540917013710009811943952327071807750832929044644974493164352472794132345753498596168532245926420103772425114841214178747486424933831372550121857960121669322394336085729522834582913445166936980031126123472600060213086541106607699408440752994703661049433346484825577974472808895655645860867941830158742350992406710562340617204529256951150392723465754936295438555015561313836734592274336863290747751267076619084856882901029045608237430131236311787529369830389079241765722040230582083609087852065764133187229851211820689704539040009394308322682246789111448733266815852916703854294608789434852655273940597578724523765967099565433012756548872520653835600262240541881008509676959488058665484078851731505932482002374767789699164670353574787969757446672432174854804233433925391848718525462784697289879289038781837171306239267326636570723334071170525558056381779614666219867657351076908052034769421505321812063729698585300072552096285465794893398889832237327953348376568551649632793270796458060652677525730813372090126696554529365758506022734915042512596844243731763761338878129536890065346643171101496436508321147033115596852353984100950695144186105765733197478035395343340537722229526382662110779464491186289016487366476863720697381425022943832767751930046339311124302581104940464649388143196614399254651358939221304943081860589102360110773697026120178698608842320568640791441258322139188874863424838312624447726868744481028263061987553185177433173776600834608556527410493733412143992294466565949966742105873957338771391963492534582332692410282793356961003963614089612519526105669186544537327598413596894855427653127393519895173336829946255764983837918579843372071267247906421707935499244560625959460123409515686689741732584081752241428000043607123906652337372795531091042592451170963090479255741562185679205938735353417800822286307138059155667438914121345602119942629696080640048130136220210273494529040573694256186938569793918238078421003221493814668935486726377762617046842521946705004942088198011490269427005215474753339260312858185914211760725543653688381929205925267473566233140784267734548104960283717159355163382786999925594018093247515104774424343012182365422773815991058132067785282416121410940465725908634185363101850905728711993988854483594107882030386053813101923397013777326693177856593268098432877641156965401248566885722781834135960339677682152188298723148499758352717718041716388813096017799443506743364711160677592231921867821343650702743071259969315620881348777576589527833050143063035277150972765481004820435819174828669552416875542192140805276337116320236629880464980337182806651380552635170454747224979422454220811231332115012915500108676184704949704972514836853321472673886463477204559721892279202715386360301074901730251506609889395074235075258990586716647691461764773109974504823505768637541409203261476129000040135324758792704364176947923932446338742647115181885984466182859661454848051758204260274389132832762229428500298026040067231354231587942960165166797701258079010078722438134920189318925992715396540871087778938391471838870843636501111152285289637121803403636520079602221395135259348546331153998162549160483110697848501417511120497833095753840742441841858095081307364112652565034542512872027996436817156341628018038092688968064343495839932624392550997330915236424143120184775224971432284665939886758545054926955147989316334749039568065971101878559949916464977065500703577233107234947481646873687550909096859613801186090377115212294094055711019798046089679796276629817728250799255520606039634253406727518033586838658393528700408387638231503080325869809109672150853484902351906293149733335051444430439553048102193660294283828095089234848497151812253581149880203101606383704897635978595756342445701073962402150572414199820732810168802057687119521044763091062122065355404112710033388064115770440321672947134769614926607023192880904018455200492979750703742636821038243041047943679847592111232327070544527986313578784818208667449152816016411107700863607900273385833260322176805956486132363242054493163714794916370942229334260670418529540917988264360991942856787646530412764154024027560399874620585739613595718160332888182788783278808447114000485224764439142231433527157526651555381250226257514617540153674517491005142848056373324786617767731819983699065464700911286162122028203878195110763949255921946501323198260267931033396445068893386120917926582675322973306102407520172946054097963278389946555456793618905598356151326021309164082816801076417444023579378097706228305088249937894801354164975025571863236793065524636634182786377434789966290561344862831861639821688489748142157651292853872255453089628985823951562841417961786345272600809340720114742290185009625648710867197417172656683663796612219282430769223157776331921132638210693321130310312472310474924822420506186546882891360227470966779964437182899672463044374846002019207913537044421018756146647666378030204506338357869652088033709686872717572911651063296370609894670462616339323168741745380615476031648912661471679752049293244502953953148198535275479533528309839854139433568594899180927638878371728995510267889790958362364382643362474311254884601907575668076518777409441731384811294449187024519697158364796469557415586599109149396304697487660427831682151678492522619899652027030447577655098520010319704769037320727713679792152507672574348922444817325501558269985196024756237927504375986581321517726974757707812332808776980232523427641003629660912133997312001828330789426758604545286371332961248636202105641813336714698493714945772574035872947301759684989889057270771551709127368625291893937516141464070364067183328789247457586008122790423705258347999431085281239179195638931058463971600466295538883612876813989582029903148545730336245879129912767340044310462001644917760405315399643084166307333885002598878701553843294435178103030266432519642436505743148422274983440951981793380500524513578922249562039137291160099460442642467061711885573505679448088360958701937164628099963286937434716625873646603855818296624494262146664328096728244828446714744976490392152521094819889539513902492690388364872295235848548730764489223264082850053904474203826843844551758403660828153592968721369391133509687182956259453436105136532379728605764287180113708225155724979732014910601013319758581566334108961569637314957327166604510834621655918310410138857816995163937211169765087457081045270235994005195704289879460447429004248456595405842493906588304051673669390088888749375781680403570533534599695313864838610235536117412035999604683440397484693527263936710809396866807954973981700745699608954942912760393728208301515635017053990553398342689695672907328621894864118336084566181075813958676031091372884368207283210339227885086496526271429914971338795384320681463147410662225205416943995760196612260479599364978168842572097656876592469785130001118780402773157946677646035321428820021022040664512966460821867117669919264286615626195261326436061847629462977938687815649249820046307237802106635800112676489288097311228840134735108353378324595020409648334318048867406331472643353949304924897502661178552452533124095013839075852656319355047310880082622277913428311310157363952775141512566111214425670932255019203466234025310037525210500946608341313035043265057168717490914749132595432801517458934404124036007136826436183200128085864639286421247460901483049717215835199097827672239576936049892230165565964396678175272213008023825712847675973948501185058533633092854687740508283827326932170382960914259730910401735335643622327395961475022800199916670551338487026671032310214657246495598370273525338344352157488099009945533910876604474210470986051675561770524742720888704699772961268320709031000949199982296221800789736149243367822406896762146519137150823911916391479445144732001305933571651793257070785826318645400859608279685864844615171022590638281867416277741510744581492400050314485930514102514825087017397071311930460344273030290558696001933259635110127148766242510347940725715113869118013697428315654039804297405752918837795765335435839674300302173242764792059669228305206788246783040447042263513280240485497440552179844204240561089954559281284297350799961159794758728794453205524701382361883280510046755612730368966614058909504062868463745054948734793450423761876696147601698812128699568582204947911933198173319775221565351225767454668670352675789818521694079691127531168178070914019904236801868310897657622832515016370932440646817028563079196808077562441078198185073123297360096168152408035560925069003129157092928311381878469241588988579627153526068452497346019860500071779887262386733222224487381165424710338009853770523076804548506569787648930135148627983178473166871595208835491716004725301484242006441439418843422200811339495197625828946137808428258307305855844458341034499196555534115868137443633548903743528862971983011790959679096806353321926130977103534900635821174520851671841012338500583428212499433946039473096044915918456940920934792603701341516427201632164871826253480027056643696366588752126082377344673037827489261861848319173192345508104823448416876939229059905125965280193134379013638801089495847183485744205418213248489132021231438294355972347897567530461386633570803439977839499453390345302634779000555697677035664283540998176306403856797198842880437816967211782423378079128387301560223334243027536793289189283433254524391644523778493816484984735718135847337791155753424053649326867935278140577350756250912801725154516823801056158800317751908740056489892865999704118052778489598984387208759028433874491632231104892899575833149977546171019995368277651396653480606224631786905600975325533873459412834992041217770515321723727247782220437143303135057441864407235177627251336311722858218565224226500211046955566828660814974884895077119230584008827835015287554474201362509369097010585679298432293466359189343094735897925282379277450034947440122439243984307804646800583384065019647615428376410371855400412262481619318923238606440564634364458529226132623496012130312895735000236989516683235213526690420788510227074660864718841000512988752524434187569231269811874228646879101490660480873038618273394881402910294177495725557073222533471151530190006994529046962253677953230379706284385695944885984685311969879924827493174702471382340673933102016978064821780858443658384732455432714530756110526593707426714280983124343927078261391419945694704068502359913924409413774882252070524452353487997066986996063086941316291360629375644134851302063220933508393471051555360948197585752681360730284916227408396268144627089094732227644019355582808173271390644074340137258649169821371771703952558357079935086662486153318017137333777778659304231761238501481864502871343716897104844537700676242570411688767813775178263023720002414332757661702578980554409500488376075269836127252984800114430905993134131461481769825060153125162584797155884731354029193519579870751915213102969375895948895746948000973005309995704273963695974521290059980025486715900800912236919107134749349527276297192724326559609641571391124656513700436228115125258569877915144637924704137552374745177592045253799256339083750618734584481271463932814683476002747456395060223778240934754733470568199124278813184155713806700227179604032677449048441174701477052951997139580436972525475332526989754899304574043561806244377240079035639513733965494803063737878318537148768005741217716021433512628556999732688162185864296169579617992454919194974746356885351162631292222093179468962352777986593155410732808593243533764067521582082991548508879701271225343534723523208112777094843938512216339713949956232158228443505729974326303483958405737766915499739410779757127886686149178243705714217274609817365955175339352531797824857251015550175643664206617392504242257329337089147741613459185777628633990796225668909676590060569451772882580935815178275087923170459836596575458368375832522765021381425036378827839945276361373345083247992096235525047435275919107148100772159307686860330254382421392565183884824389087620704141502287711858983237746804838780776889739025453490322918535415299642389150628696706327981747120532828126950190412171741025225027789899032010471987346619294952223714676166179695097050344621382913348282630144075644978466641052978289220931824329603201649566223173099972872503052879908408212527393873570327667677481106023280896525713751811679689939896946989450507147740616244766843253627675739510314055706969630660638694262553805293153927618427510941140187723100736522557518121013138167942280515177448793474109434780137922184146042387860686369769962837062064622454515810117993139130949768611329439937923256777071345563083034016364045643010202482847475833184548072615900751314125028643208686255177076928245202829388627894968452506926231842126677996019575325196643750363748094562243374595218834854075348951855720506127896793656086953446919741888293463443614504630152339574722159693950705584241696910098966922825562341175325526025545195125417334018433107195501295736805488418800134478665669396908384807502893618185238070172792651653532612208603706466728590505581781581445418667447549524915575446864174056244868266540905525116557638513281882293914399716200722402012714315746045998735389207356774452456941207479228961057819105855158214595272083900780569455375158309840037425593199008530783033024999698592577170400066332050874797871453314574803373400852177318997496545327676572093586470366041051600910499692120403681601468640466272986693932283118244168175336356260652776712699807158755529912560434779024761545885167022885074531930516774538999036018205915579044446318024193284899859510226708274994141748214893216698795573319908375806573020596470653268603228890926925636870159190248574082487039565092891677069991115880430764349050690400093834709586766876143768892029656314394006583473070888397411075320099767748289319963718411481493157902326209784212032264977598474494108737131612264751803215682583138141855543400993104387976041339101152760855541875592115450341127533664620004254112174075167058402381599484265937199740484804430491277271937798374393325480753827013030213328526662325150541543225507785915621360497327434584753737832576366086858953897474443313843666794741040049985913192464576679536163236670836251681061081948668214273194534650083914089551503571165867765199961738159895156868112822433569228646377418105049499350764510353989006424583780548994657825147455731022641379026731202340371508423614067768474538727407450065589890983113094760994731581425664474303849171484572762296113148826742548964434093375810608101643067228466151129806985599971298343666824399552173705782122736194063135224485380382333573364938270324075191090553207519353620706032542850024485247327133974029276739179946284283394776437688947169427058751300521477462487212330701032633469760648471022367470076059289169042160392903756825546826256338434192353990977561893998819695226337889773852886774501249916648335331472952586250432517327074208233235675669728583644964158666871926194088039324631406612151564219517960943606443141588169400392034695618501911082046038365196330646388074909378179072363449366075458626952848130411503205988923256687573384215042712217998173516668665173751608613007412222040986360684337445183537516808243887824589388980069248089777861842187975733031719734528340887611759633652710291312766545937703059966546945878637327955198744006093423269919110968177672994903518837497195067022601764730613182831358682113995931994495377991554920190017369591571135769877573283055259341766136828642194746152181499285093952627653836321425373776219759524926426064097430089722652537164130506011271920465565298114333357594176324009572069089442525249797268213556420205979194780931474553874567837978992689142955157397094789407734429758221259335455243351443042971022454693698528029771178687848288773458778058542082919980631526555275490430818017073674864915557498977160932368577724635627267926239162544989324052001440992240073646369596582560217124999862563209917049606819378324742343098052764721326474517986261373359524346036372691009357267341614900834692217867900090307970400598499658624586671930180350614925787851078996387301010018203200997823731930444325361869949092866680231650143361676029268687366470530872480112191644366526452829938989727116313679429739034085232362790053548515593192019458747694629431565388806742527797057951763898610732855185824738532957249529921597252188785432951964854873704393748375760056644076563463914286491814611954495975686072911368012986227084361408594509392915217321938479232090599009013353662400658364918851758214741754524253924771946059910493347268196955603512159541548597630198137472812826436180926535393144134822013242716655660154983252656085820383375962702699689676913475813413681457641051639404557295699708257853733761236884628561606769646510114820838547564570891038320587287886065200203427316478285496596902631184953129668010704973597490436367532642207411062139714367307590617099660450113079644959199341740401039654336402871778547473805825635201489469530452405474007508639493441693187172494017694510866654020730853239380524415443300449514326593220170650646034535370914971206597957816674025810687154444020793483329022246550543922622339209817940255117580187602741046787827246991193467372523307487731355965522149587590197566507314611966336770945074727240722058990288961118820362289077242804200458411675439532518188499976980753279283370158280638219135057384056159104094135573717476863752910682356893152344913570041666181160511890620151781686806457061818819348331032457656024253930622774158206513399716190937624845792874636224867410284549055659773138669865628463569413742967428631929606161077391913738108488256516906582099071497620605463749411114851327610467225587585030426591296247869167879051974129495288506265247973420448972680803534656020561870577552334879706483600019976129291472811035723890200491180477849453377550951575628634648191188097600949026933123833080116423873169264036229788193545712216183329094185834559567101403118487377262263430722652886016689486707549863271761649796032683696817468202573480296305061671595605161227718267730417428013834298385737700148454061836250921602301731183067602361833769219608447628810601514337154612565985885523341074168568201029920841228053236883611479135723253176137209736896844369535025945357332168530783724525489005699842477456024868495284938123807647564964874248037894983273644256589081474061566238108879407555876179326108381763755917876658443787727324631441986798915966211097713828528732686109348378092448599574032882318564617990882031716406035276808574626734422466589852610190570312895768318528526005228036363035379124046876014818924309973213121804513599389093689958913744615049838413298434675486534835349877351188602516538341327474439464655885535666038730189738556433127380953043336055228034127524593280113808048490457137083427313900758410699563366789783412784022393869527116135881739428054344451616734232815534192774783806359817055616242327131494752013274006028751122576709526817670151419419346895334475121565378859543996908779997216719133683392652356925199268784808128521866804312241587806276469372098123941924738158364491887325371208963412186380819527389991475376033628016390673400789687697125859900127943608107738348588048756404593884490297677128924716750111669118597067403927413022509374810184951061412755813037512884570182923105134598581772065669200707883610699853398565053027533655943045643083214587566248035194178504234834371963986656087481212116916812133514807273250313411260286389091064594093885464308724116849513275082696260403783576056793695948949113849714035436044511598461026191407981558301814556172159350657640396702177461424272788232389262697365979223262086998171057409546892201673490846387030725843298982353038905530290247853116591829528444888107892628651732332421103374482746397532753592641074337751481569858242951398296318833117955638296958387853691270998290590538465837883613670021559500586643779123281551809716487781066103393613594975546638555467896913818745799361180934408201504114667488844031125274818487204994640659326807766561658727529827391929344422975732366989083332797809729546367809647707002354033528300735127775380987719075301972387000731378808570211825009014054179620515812876251899921628921981380468315164988152195435269851017301962746355795737691938679590526953284533711394937065676643259054806125547776577800834108398845225373182986747142508175000488621913975647263030696599545214429917744107517571714174484282827315865920395844630368407792811887518185108579506884715312602814710595434430334195147737363898806816790080300261304485463026406833376302378665311796337304090822350899293717946510285872686683954702123100724698368448659148643605962160237920351919504528828809779265642792301695391438951376936042226208671471675160102678125439616562268581278022629200046658560610146842739962402607015110327738053473580447603791787793846287787398068712426151108055480615814763417486305223070023275240299043579052771349566554984343664448475740697321093030766161759036788121263855303001978349529702170631736049352157567593499002630741814712023461220986829544431413002178537875765850351562851721467874286789920719251996490137397355306286658457686060248946249688584297647143088028860936556137207926904518442943406792469700954686114165775513961084628919701423613302912837807813234280901987625265763640715239306481946087376730478695155292306614221002496652922197395643753439076388244020971359393817983817331462835782647714408488150306600498835949888978222725960810892688441426883394818300149400735637841115560176436403741028367276880918718827311683393499789503582359234025296230390175036496598794619177442809024701049584879404601388852168013738651686849487925922731906757935107534651313801716413643298519574768620289461503596432751456266132487225543872858035503474271529711397220547607413831502337188168028499608922981965065870222817721005751888473448220042636330568003640210897735854442432296205819862030985183852889168182915639056217193643127469303220883011322965315828257286115934165640417373586792628773522955751458910468969341216368377054145547179676147699993680918900193009094004173289825140987478494155154516075184316594476619453470525822687048993718396387427766403339698086729098180079460357240547613651560363641156670688260754395934991124955821574615059039152736367402368854562063304562485720852521403577058300414717375417719617151741123023933262588267346140024728819736757350319233666554979445259945780886809855556210916059288875941244538803879891762111237574810026766075629181073029647469743203106202921216441675220361549771595194507811847699730633212216721672538429671390798792089814954660899555095589230064436756604308337302878935891291203586286987980688462596386534251746235567855696093810745477495022261586201971809742484850962896032318895736409816333966240711339797707293249251020983856446046238661444771556441444418778512105907728590463153541752460564450683325624348319243892053908721713643795344898010019805764113300979095819726992390953628451805420385681199927781915387088052266205440311333691814054766195353898297006763846866871355203799452116984841549792470924431942811146413869402036770478808322297924244966531536332214929140382384213881049507955691969530683881413111365437825610756656465374209949538705294203911880672665468689203474989559786224983182287108227866182376184573944323377319073065656139549149794833578398432755092002031127931389954667850756770575256746213936342659261387551300890747623702951530292166107608246000279477222644453817974039208182642071598047076387826678133464235258639238159152264596922402034849674160179857790931525436910572953114609089386166631912961128060354780631176587588241711572411496477649325469929113712450890227991364037150079284710829082023140753751867254396772413354333657408854837294141785254309130000961002042023928970683349851987123364551597840650200415964774106361071565533098430527655353724682187851023363745733204890120464127214615081813491725790391163048596682381624430545393992568540194371032259157922945663532896530551073876806252991136904854829216822254169665680931920642694794114376892444427230923214383531617995743017447842496661973503338249317532256612887002678707456432164966376378439906104191363061631189036599460622355454453769682422073931056684845384468035186961656282057233044771436058126284441077665769335336566079257592845296417636756689404993304927699685773388160947838132826745030306949808901844247754014191014537791254100835015846592141400552074586947250465906990425632755614854027118881967340655524749263682805332465737409505033530626208260626853856917204975531110576513354824055771282776431826146066656452232926937451992128827525188376599036631159512559279302174913523602168370090395834433387268872768879655006124288165268026332724059452576370988721598503539260603099100929491513280207167171780186613776964073512360588182399723788130422585697907576897742118276356368557028608307544320535016616238531874141065516115418400010800361278537663978566562573651108694344148957352402833121329989256985697925185521786694352568726040631903708011687958187838710034512336405784641701295324317836700909291285778087973571613595646757035231811347565999713175915040964281767868752148957924476474621700255060391716970147902348741973062798913708584499755280424128195855984252575443639838989256238066290704450160768281105871384077276028488040079144144017277246769838467498370800250020824996843803073184881356855142343455965577952736897279687223139377774441303547378295431444997056575720911183558147249417179167529272811457258778962130673514355653898595017781673050461318861831189437187952779216905465180338502884916098037812897307429780309163166820512835982429354885474428153181998806818983195153052503077629341677582194350078124398763055021885681897388485837677772250231091938162681085608154299132433323113324913938594667391513629915040726077757900525550667868293610821641468916624138242057824708050191029042726910678119682717884881247491269532019377061582867182312705381902298795084285953226008291149140471660119442885634185110848385101352755703719788036908598593157776951208430481777350220971420012618657452261356554814496887992996147862790280264176523702458139867466355222094734288522963981929301180376490061766859715867607512736243966857522924500592926186953398601874468546215420545334127131093926948178713406229008431256024251773572367836512100979536981055045212370020411808383223407719861935365236651594272937514676680026563991409866214575954911765469988765525648946757060275230701939003445629100577106111284083262866803129083682976147817204592711648876941485853643169850725628587221209767863899261174065569432874182304927223702853815106036047406746357264346361063970639845207424971022183874294916260808807040396348844322658248210701176390581354236235142438090578755553869235210622967181793651707682705979790652211322931953188033622590976359042183562782536984157842508077759166397053737369401857241409675713711370438081363844552607310575169670873359157308633077079149479030213191014606586046890666589283801869476655874031234445734338427949913272849262118787557145875528209210615731376965949763843663185293027417871030038036124893322988877515908682463121458437035187183661280854436019623573332906752752978354022995743683620674213958031815264726063266945460604729229294954061966384170990360848406669542793780406012371299288329041001346891390478556367135792718070398100388076868777226775552960533743726398299957407722265206474802665222754432041405007069191602267743933877661847102153018770005204333849792226308323220599738602567935275311904200131455403346143188033597823126929323177814202724990962468459524804559244212368702611273270317739907985642563214793201097225612102894775809224052217052766547769255743323454989464782913032061729081808318070277048056127267674555080032243235239381117857962640035417470642162619646672470086669466016666997205232899420046887858918478949087418000415293333227645134415427660930095194875388995480749343577040394756691221485509178476245992775307142552540851086602589473152603970149996470560818276666881916452790487465700306863291098861606389001061728636620360648352701808098178543756918286175344649830019973665019141171787968505347472672264999583954144130656288409148152850718539968653081921204281363931372874226785347812274130858210533756225884372170565438385191782214548656132189621139747119895392122794065753775677845019273083326900356644972958616031709500087901825315943319475258849234754257718213779503559636558061947429095381282753479183528086097048156548482720704037685538509229559138595268238005222428179576193086671386375712628784572789316455186349452641702176032559524340332805163285340903878299755764479267237274107594642902972048554333836972775716679080523120878349243409349573175679020864202000833689565050826644894663568403317242472609525237252410544959578309150335648379179605929307946269863469936770366940402604331211753157155073198307830799286067641509668142415787845375484717003154241994716809691711358741462239102022047088690616715711965027598715824723632533485001405587026331371913021830633181886185808381345816926042785255904275987839559413159546720279268695825627830425214012585813364907118950480750859122937362037859174365064923921103436138335125376637646602953153275119186711752630779063696094416214124337110320825338798828873745818397581179363032925152922580692800706131258719557965523376462311652362747546862339021453030290885410027288402813886706811755499436703737006559424677961590377202971373693496707990644114166676510532638072711672312229600306072843110802254084872536098906789553971074026196298466555153807549992902146775772623744094863242767833867171447030070276777711838536614481883155463454272512736579716290585091453622508577983321783300161208911319129005304703258787738907879695195509150217611286242659088916104727465581202709022010638138930918027047580890736301006772836625613415284262426365921338406424533076052086063887374480652244082021870302789674858905722754524690439198550636507081927030982366841698735057235929986144403152770441096241142005257403328063104051786039847171754215180321418447913250221364756932556557857666200837557223157289640725796191494770303324898107232050172028821568553202450435444398413710774486743355353828877562433148754063324809873390280810648545774307976510629300415602298484492502158800427002385647726776649974989943045293471185322011237593720065477298261450038083592231151558368900570334927773091033038765970867781609311918060662874268928999150029553568804875669862041797495840499106799419421725315689114509890504980296275602704197777009196842888646487243292187665103895462710881053994067579562153349846621117165963947811552124959789858156820013650303003066191847312244771439900040503210407343313138973588019675402176789662839361914719947644880092638929048404661241345680438598577475087063178860393983468027027196479481206484923040385785251229938195054945146953085248299182593733124536074874200990436163081622823085664891507077745390518970241661130883156078564264812365413065003490402619657743169648831482198017772224055417024291434665151362729854323268390188084939449209440750415493637585225029897566477300690828072600256314613099013755100037482495780834440918350340091652497464513919153580893267231974634605392396569994389187595624924890447484706548955751104993695445730274488779977831484576456737596739955953945485247100218168578780514854108916716426124491905192548492729093922805096798037865988259697262777411741992512454332632831426681922755136273062363315142854099619372542019407736488082599933577122269303945797895687756200024571850012309550727438529007129685108847843202231786944625506158370552318520780573590267242794863975351209676049384159460543587530673876535263189546016174906385361885217652938836144230364772554534575859987579284535997017832102951301040468064429041338611892106604981603439205209016454296076292229976624181924489656863851925673627402207396034236913333966713972832596534927801202273398074320647966985289939661347721661751346033701695197352310606025048646780953711648086086073890108515401493386807945053485922784958855664935165585807986619140051125129927536094460132569166273775666732919353634574448141042003374951271025257433339847929728818378724788481283229299040453119038244392206111184266804840204873919410532907076729371830597598536845263749359675615998118322684519300717411147234095084696559753218175683085185496584879022198774165628454108112659423348553738624488262553599131193922517281170692178436925938903809847659024003647641828914502049724703489755551031859225331098138146738133822787903516024875708151559114816836329694086282223299389918121490100215842365664781434890011650664064800561268347318244993569788966958676493253198659372718497004929428341874922983782275640916603890556935022592956226843156203340739673878400168245877788756260523840756630283634712801211905393499286516022478414490394433304562991425905501583691024840373484723320339130215769483917100988909392733204059087944557694380079613154658108378599250816642820549110398720647989518806634101882745456595832899416339615087472046189810617570406979563308363487707328730746179164399579297930635756223587875697663277506327906522070341808645963288185930340033721545822557959261506120676164142778998961945852563312210222137078200949359259190236539934574048789940738789212094458481883669477076610889055876745373194794273993341288992921665367021851823531175345946366869685824444319253655548000221771300934145436482874757238842187808854502572618115458667411674941683077871330979592266534627749233149908181679813849339664249744187974880333314036511347596114799221463174613996040637651846003475000958723039454638669924343445987874741467552564173672265192730348008740922437513710577190051813879858341359980404010045989531311372256317239691716290293093175314174098476935499588459776179946559825416112141547304673845154347209847932425622737623188778181774866309094088854428014503581652616578045267416235020773887529267394174680930536326600153971964658578368020986302806842808602612211678942731844759881405850933201554005389892854872832819916604458703868704845950606705103352264796741404536675690164994478165069423645635208893392132191395104952744769304279958462044552537427468771777381710584671347352747078388414116126726414265737860543989394945552763209775563727337188938555455550734631881825847651402894071849734376266725419791948896647484874248189085299878318770853729251040907287947955662827524005090067869358332683080331573026203247178999375376268469267810268268554605240157098274313709280396711568897843004479871958225158592650512535982052390829704407134228690140947679463061047956280726991055953281800297918765049408040634279606792634821616478999280789955290772516795380810595087010576921596747022532882347908149213448597542216546921452979385719646711965261363861937945199813678392257206300813105843784497837644946523408923486063958618878327599730803504982603365994296103715597384891907124784966596070174898301798609872388206536781704464623521334978971951922151914734633763276395571614560849480657291621530673319200597347079042782257697554206295964201688325646248602826066225402803496983198606725631258189163623772290590875214415616292228405684543633299291247642259291819456239300495204737208388329500504047260373377975564013912280139714708643616717568885820388243765752729174543591517132663383940138247004910004883082997630622466369600527084929462919580442144087997140913871249254661540307938868861452024638534473634485119524640389049464887026699913473786147299109168111612990108380410892879465915781304291081262966881619344382217973588676932370779239130550713514183852633555618452638647561832983919929255833845344195417829116780282864820644371727770051896057066205182966603811072827346464481162380774700879102008373388686926844781423939829603912350021963598811119273029016657226167100278328293274483280178271206414439339162383834432461165460630245021834234571591174280608944491692212522271325847895004080401943169186923281121786920485867251774745680668929576423236718253379472911936385077099722472228358996983940638613369760169940721206504457056318399093829722121054554351536672272034747879999666597870527547669886406517466220361957972876700975517075886396989991479650017094474033484080279863007268076180486465628604707711719366219724493649971040137041547062458252227895570885604178975271474492859983772807762428125182967427033113526393456346810307622476317306530443444559761048362315456655680356522586437459712488719801290817589115533405737577643226428785352521398168261404352515607935750528836025075293498447859280282850993896690408256628660653488724379678600081005994166036151577982688683197265211175958333112260029248209077769433932596427279968472141831763163564852777264480044870210257414267137206886460022811649228654306239373052239617345643863892480721757948744491728723455985136814640849646885289575463840603826834674015188554427685218056676929360785630071209866659706768999808679492940531044757545233369474660734641768545553646700361821303025685991848408502754276483456919147635329765524806136901734600429565784250723748792483593041747318845511808855423613526943519098088729024374671286983206490440828520061629939687156145645750532289891035080056221086784708840451150433212232352562029130650258156435271235013817127569415397012433355093953513114919715859225920099809470144734282551988663528349456027130027410212446692971654525235231066035986926109039799607939368075968223493787400198952475380838503071376761787599867936198992235313011080279017736316374703478724147824563530007067994275006871511583570921819844058854738259445097761687428179939870862053241656987794869801185688567108002373142165982264937016386839697739769486109917597537946196110992324493506895929966211364665068359679730554119342191069668905285691361650271645692398779601085808682494141283222167208949081251744609991738391454042881831730242562809199487444702835667375734626591309261048710582433681591924936245340836828690690196195095387890589363529651214364439411332216428942491944720953519598937895353302611284606688546982891370757287595614448765187762484498425899677933943449257614844866217678621652063342668394826040658145358258173461593829555234026199944950531096496949890683166702365993967898465418982814448951140685588469887705214281200627759195462454816456988166467991074563114726690170997196145489546742924134810494046165533896013791095360067451671247171386806529279218035125198130150458136240347834873664143547938696862134741317138242379327108770857696614925559603293499969091181524323075104965687016382587890401843075436977597840460673002625328399691514514672415029434240996923845528177282968571778859495490539583187763897673692382989151147359593365226969069799559971644005598902054537345302875209937536844969811658414011828339172246329043037080644556683509352962515675446641018403855360400310262947669696699629476186631027388697758514819858238216886719880384312564679712218114225301050507816679115906239812361124233250061598699599413539884627705409630480837413759974031475592361512637753630455509013791424090178249617240447014174506181538522325455890103114545853603511545596181411033131606597169648925273310770397732835636691554688167927748041849460996074533754276233434744368149252771951488946039001308416221173142297683051967828776609146442367039247721244000785587086031860951842626223890915726054921365204612701850071489944968471303706565620836763738212842907385546222162716780778455351730600230860451826284806447580764657321080543762453339968007187782824135532905486141516931736316569148699172278328864495967494006530218170217877233897991636942066790317244015878224846145975068182006374189722402895147575986665402503399107970809314080187052303168086058932284344013216889226680435049770602585473711189389586979525424256855616277634520575399703625496115429128209795736586027090786239447721370466830012692231162195267427009623762219103291386659375257023678264863962180949328614063211245097763409054634008400422006839494650551507842315709726796577538828990941110998312542086491512330022807915025047584288470446839361733014935818611063820554086035031702505185783500061477457401750110213452007649981473641611292112169589426712257377470550876348761424384548561798876684811330338183041049313084982284165771173982408699266765433469743909013267280764404341150782161695714986946626860260387938171576335551748377992370432256733401330411854708894222699771419375854446055205146943986579572020807443769313762992095144099812060023315691582475249602422923548016487699343626564617127934871244420382749034040104838146766512856147956879337311056739406670474156256870942966021333712542971895035834045962959627141037642256091659385147437451615824157241209714245977467888474452327178349763103532611427732321157401754355637619023111497221828882805560829950175208462341365999472872787904420681686204746638486270514154224535381517680602859409467066648442077872809926084379552478949907098479784841005681748456976756702033214087249117886932201455655861961362599297510634908386163093562102482063881377464451193983915387243337801378471716519346152544233221405700341737756020205586664743652188101602526515596822661396369920316501362185395643249336988939902870022918997038130877843157218894606154529799944706727233918203051539328576974964914104600584284868706881161328916324536277511414823777966412546939393131275646293773460575772080449180022229000411116076023277302591067363631205089702215503807027942215421683421064840875734430346515633721110047056595708586947970780451181612349532285068299470609821187099766072837760448538046580700771905888023501028719734534914021829240196199413005857916218504905754835956822507025864076735617118664734844807410018186365449318931056719419175356084758921640535772367351467864242628209753028691957615571204286631330908452277239416821070461422313050525692066295721948937576688898054591259864196498971699989715554670324998824962720437766638650182816385239453143868966537045011691607636183692577532580880736727939966573691801159920023119393498819412898673868173524479351049954191396284725050235474257771754094659552650274404820584345795676051877500022274975421892930111936733017858395985912809021502897422190427259932728765074592460733400026163465044108737140391783545484065465622473215386458201771184699341573965283841472733656500369562571024620007987629680441448301136379634277233160735147106165378886595816112811919250256501329899621264421803741702039245155414728970577087598157974952541455820284663906690067668725706540563481384287136582579634832926339663548075234478021461255832005039927660070725303726368484708095747100498052026507973592340324979153396828532515205714612836286529302608990359735708489110829185818922237313841891831643213881791562318850821704318445765343818967450633867853547935005750190349797806911354014101878230287599767741570464404496232193895540085363319388032276661367486522251516701054002167046943913880450689358729162271500229900149553589157955610003356436975187894187906907192370284856589857033011911338289479851736955239087838603694003407961218022603970460369616895709923286529380844636744348764986922145179334583894996359888929558616058357707452978468788874855968630378938406751777273818433949427282303163137179984259074112579113976141068785268861372326951909699690137631613677108544129872793693966677782897164666986822969444535284512380144758064580466553307838484926756621027043059036100737728021936180170580184663247485458272608241905711412137409269843756585336137432591086012710510276252684005279084545982689166530252739577122297023161380118316017514813167107553393747467400312554075981738930578272983435878579929569563146184366703646936007636595311294158730183131058037708075566843190213578324998077075563358666803958528114374723045145414650992707742025864365832826296522755340796132397061062958358356818645038440475839760409391486999496954222192456383427530410959173387847619655282157955911508994938038169266239728137352496955681202298085987807631543719999604708570956385527705627105228648171419390057849400290741930511708919681294173037503726160199841853027795541741059308760633057148270305289816126265758106680000047560208088115970044577960380385345762410437875992909685342070700056602818972048298647913040282666605429723973520028735887370987540047773069449505866304021012731427572476472162896622906942838820462866199974640919519815411448247009554893611822344031985962922381983436820596560085386652698900382450103034965950084931092530567005010036313257778499188439393736818159244896307584637394940108239935929541710547539117235455093125880829496225841342064985457396259565557132417150516607561359621456062171643996108620898695430381123064896622309724412537230821883574675631860259121901696298841000327975983974663114779050831750907889491394270908458228105109767047067902503832106568755168398390914331374279092813186848078961473598621633094983211703868459432605594961696477331287484343926191368812381115460083984883336738811020831730532242290985392531227512065277042794971816693966530175353262441042685750181655006129778121422438055458389439652979022239735511323011356100139296929555619650434393898269609680344051862752701433311203452046876512052107800933167182750725282857115299183993901678514115370755764911587619718241932811064839554376202660854965192114438248353862143386748787131771644101642736056972044141305403423940342135408596831716168557810914079730763779194035753724140649379160985447993327095287622593749239099775534099844200838076331981610343433421566181139359814187693381123450600660788462467684993465459639673637941550413917281795174061374614114291915213683024809140450295003963608146292253459822896176393944630264895102695216816723686085229500140071614473012026312502839316929191597401128439039453186590980463416794117740616567205874920861097926909331608931813797903796370573836228164125066507860777094543485123114153563345547299801793068007467842649003172014691128617200984310743620850412696819183049021608217790148796607024245710395299383522819852659888237573648438585095881168117474707243420347099617545342874698044158187077616497978820895376449343733985877687112732483198237212882287703204599229131902262894994633215993525650337695155294642967479276005502788262432246971413069020874289591092105645923665832492812022112175927537124294445261599959046479176747114426657494155955867106878203117350603409149963392442733032026681617802222153076241706851573505957291915487216289427833784019223184900863621175328427487210901382151389345130461243464432574272029185880281830285838070082270599183522919479554434273294443636144115706399295640873554098971022272410422900712862451286118027519789447299751694911722376453843222223072081053039061790924767896298994670188571592201288426717495226396191036206860144703043898762977068995176643070703990127035134454583236108886782431218155441643142271569289225157447618893188891091345743421007442302210423384592342284001135506978402821955981657029054827314797796189177977661835688571542371126761307031490678901034514454577761004602758091782002844800468423827545840197309586397247017769060117207203166707041623652807484765949338034756065569957413421685552010898403647528602394386487945041366188799068879007192179895441997003936339289272498853885172760086666117727721768881119365087449331575626768264121490771987615249830405544102759212523228285688831185066215045492120088951237319237771225397457766966092049954682033176666554507284466091636941781233570234612946506493199951201133631434926699523676387289102210384918498019160395567553388223644694471845275003796317731090230334169522512376754170072892811051164349335065090394430756243565432392706665740235058339848237681652429071042753346743283505004891093931697907943459427244504367970593274780006665055739852858516053846957507936080063115666199250981856839488880052178504059622919265807828001188301440464908663495062780367091382587273246902330844198235750391477607836108532250523708774500458234957165270793263585085037166612688593966531095453961103922746806926321354272160453447991269360468624144455778712304349131490798128481991443380775993838258925234183657415876158475377970380897697063328339612605037582910167495631612447499621972367964111025532792064926926976227936462304975381249426143441613863250431503068355944998186522612078189791821102752792929119948263172895660843448225091139802917623422304084567095796016325505642932336631958235119361339699337744743569503908261561057422882521336168009324948244153791128914309659551711838261984915895711518992282483544307986504783173403492543013997889528966629256938674499695279363763515954511940130902990677940549782757346230346657914645692616079397088054307473715722908709566251549067519230027669292173884882142305755778864234350272101910446971301595864343000944165169954810500229782668790027230257556607704840515395374906415830132823456680045237267262914867869092956770254117150373528104509939388690757773780457320075818636202932877048128730813258816627453396316759831687550715426209555352247523531378993902746332739047525110514261912295132287909329180224485162421884120794914380032482248586411549814967673235823693042542325390499025724063968660334625876093659368044740797269881221696114854155331757298859489623128177099239977890872966070775535794885686788930176888830628595231936314023275149637641478391234138892556631499321965011210564372106289417127455405645023170257403746052682001343439057012677530895368734686502898764678232699731198888457076333252798675156445799131914445896323840391588019688610135286409673784203311593602432664176592242399001495788437870687266918735724799735221154234103271353026639495184450429086633709969808791010062390201855674434916019493889591727160876352793516560160011270843316633128685267567345257462902191576129765300236411061953337423002661769788387225019994724273558293045536577176057624539973136836497433067206888923913643322433427511740353164263313728419836325795404391966970942165747839974835428281125596068587835768287080730121241208020784268331903091131289975142890585557977325178466377434485772293204904608991589227872582241772400545735520543225255946042265980195943012333213210244506485211192804609511855588120634218962789542390882003632886306640221148434352622452274203141535916619126956526939212406618144082161206241997561765683204797987231304579955017046239953921054415038404698169663795900618723389515687087993310589429364818938419735306560554415395517580958931071872070409390321852500982364569332579773081393160966717977419631866360010038598679021452807482913004203425635993871001960682555755961807592134835324359336292686889775226657039256470865245489539310211830689746132973018857871155359211612213718916709556318884251617899776925745743277385588560069310962115387092413407006607703681938357077176568192843701726707915804962325610324928481426822208698490707004228717259166538335166698476240673286759697769673402233066590391328210505508779324465014764979513109386124501368423166756722422576138843529313370851134455877235940203852041241975143596830091609713722914891287615232461146576637249131226537842229637645203129185829392282384837281196838676922522869122263110602030370962162323829058019455034903543405305229017032710945109123451017703149421661854574899579493428301101787294945432071184798805136034591759125559868257691203768157083449141594312510917742533504479975034077922913410998341341739054949378180378173392827239341274156960191940671176727095174559012597031742720372187794710831233291125963080506446421565190069646399158638527203274798959426123065234442115919210388862195137428556143867128526395800160114277915110967507333528621750594968561200661766642730581030650737945392434474381508828480401077687679717807434850625279541776266708235270119242989245837190604153570352251050292984436069311550527422134092368092659246875869471496338397219325167338228788181516876976686058689439069948616615957670782152452829627641478963715903262346716612475392030032720709786901628126840565886950221445322805127989709340395091576616460540698474673596867083805274553242127566668047387371044693511073227859661250720226219091967267126320222541840033886478888637238909759167323154072792611713940237788421896540682792639402523337216077213726113139529912751754721282853093331609344078166430130888667395980960231104450342441476192515091587558427936440781228506333584066527195642106892350948926161071123354373905872584838125048403684656794374715864667681986904691852079001479102984941429560754631718427908580173658187927991700913836179831838155647970263246861013979080027228259991082839665468028950185318771970800760660756228550797074770564967673492955286904357503351177437646165353531218224071169755904986893210828447348797432777799414132952856734498027495688183587213924003782944210939793581183871882527172336279000582491546047463142450732760946827378785779026500229607682765284244727320991898561653468301052365143938605352280990711316054997940464346738954534058499375974960142856642864254773539605620452860474417873069841233571917350752725188618165279573578393228540049283201129201055992945146448932018591476080986581339551342747768034650927407840241310260660577085361234500107979092865170648906522482334184502943801959377674966390727701887463626118274112070850619946051348091945288501855821745127865110231387364017872696069553992405731485343235174804661844430365674268217637615613544613290108346398212664975456622746690094070885281292226611733679926021870261108084363638189320736731915411410972194102120192537126728231300879865040859292810395343397368228559618531215657582816618941954102203937619695713865432717917404125307697062941138252906245343899855451803009381960224420257257208875119927804310734214281794652268345195068935988752336237659340290531771966688137916920013385025108713634318368501037221075950678222070747574615220325814751439004870978077719900732111152679019087434041290859019954871855130987797356509543331969717082689498398624379807208094961729887921996013604000813448668152357233649991324850930111138834056541121679970904554926402679726355239364879244791310000678631764499621990059773576192410409733657751509894720664811087993819748602161701950495354103824935473134363373820089845170843922372225516990904806027607893023589238362124695839180051324724305598992879045535831195057174211135402124439494548060800721281396850759017645818579878637296529606528602471871815951544659788015298130145100155590289782987168093745669320820364848976303486556577577414813831640473423477577209224414197576476434154379036588114348898273761855071839395634373707484269436792262714021200841166208308298806131001363986588389358636210854051570884105874034277587877737659270077200629890589765031991461183949463449910946953067914734476487266168376731713222200994274699689760622305096162983585848772183626810557102607895057270979356618777695844632520819498639187293616434410296837097783538084280039706146902848563211003306293041653064989103678160148250781105803664314697783845070036547504678608547589661993684987196877933838605278565783711204895711287173559504497781831778232805888226318813777464705268480403533101729672521791887338775791555690321076742947024576505774834996843284698025955757207225534879528559977830560645853267987073557368737876405750230464398183658831355060061083648463983711668028648148127472139206294572554459683598413505067506817367235799410158678847821545414727237511913023744687151094958359617638122442963264940744685710352692814968650342880253828021993941731129903205883400301609297382577094965056193818530136750227383664309178026927434355220817931229784346778096472972266108112192861014384394265659847573325267589989666702224589423587476445658256766848759695358108164389221931796174434751186514932829739514646407864678446944893556316870060618527038502261997392766434639792114836762832371854727031851924448138976355100684584387983067069007244275442622569350782258333678125437706011867544761279230175395785907641929310433670509940753842104288699885543960722880341328770071297497975219657375039642061943342394560576378423685333701154362752621481283841433473190026407597058538857678607210846182345911888862834867620896584590636076625713448187258364655929122599111655269108260335840869490653959838400473121811406203525584764341812555987062275784718452839759518283393413707947870790324028128383769304855292907369212020605899690753078005342744723291193081960025119470543310692061568028749035993159366394426299409252931864943558155249480327970183005774201953903198292582963862163423622865486087122612895057586691206081309686425258173085870637453886368350037854331731560652914190604585466931799550084892975295342876545862017884261772901935023161272110434112051030243107378480488841442321279968124550383506762486398671945652336539727499141896685648794328998641901777944054633393405343540510496903218535420088784241526863266425648225689204285557838011300678190131894595716527208164311622636898529176157078769712039576895098253158855683260826174552739217940747067697760035380771302441336840437582537883011058125761448056160000455170466800213863820152974848427471961034346289565157258486787122035019658826537229561878233034531901098714327142608382263498288655740158677407039160862018096635342617179908764356463876467235778802656525191355610826544841940259994869190943711120264482943347132525013465998211188607987300503881274458065256807354624437904231470345170371988698929369152147416376883907480007571383380830421445449833300414537141207343008500730084114167807206905150597126014156019342133976652134077246426698957554907474180112043321923168665887220838014054023563901023380910895870270003645496807089769306518405665847862063767778897899075645915500504699454396239262635895037414539040513785676841604906737670160129520404674756002990529674924817669866121082206624229175576393208705030930211696488524866481574447809627333617435764861007769103922293475862138016903997328426858916282826163162509228574247074742983721885019071742419502432481609826051276228358737016218918146266260238161169119642583806947498257830543826028539273190795062277633928330915343786316729576664531802143598155977234534743474084798429504746756223431294230175302633480842295080696993625453510898664395135946618957458746944662426833325907152107306385221859006726180700685278063956154009166275452747385534022180778340619950686954882564529370706883296918784025542347387009924564758851395253160323922933886353710847616520869595990243308252672763281820991624715676317869502827910723978070068365227045511905179569650650545976266789386463124966763021296542770438092055410380696374978890019888865079734350153593407656638470739251280812771774675669001506375256946447754771849734587681195905977550554355655979021626912740538202817150206593688793072132690374612885327205573086748926682909965311821324622388400971301466886939961825610510661630483005739157832810469573625645442273730820793400876482549412520634288011022034862289044088356645704385100004745722187490911871446351676789375530244353933542614584541392734972671770673012030541643261164768814449520305587698959675448572042980135905188985923079969419691612057392874989929684473176454763333829185162842699814425322599970151698183956644471499051960573490314724649148381965971978535966774416325335240795637013658223211028004817419416419507739225078625486504327594813814003267742630408811448144681470526932740444160577926219940162791048724312704671167515791396929396849521924901837826257986080121797264704706036728357528377059655923311980774465593360902933295125332797210946312578522369829555044118179455270300766665744792092046282935777674463679926168194469115243161026177497319665009754949937979365499189279366823584105824487935104863852822631330082231268601722651583443789217654190193199345905036586549524022055847357231149061017577604008242670131384409865711689979768092330881803835663757616636112320536635529422240090959923382940255257690571848546526685145462830324267278103337279018558619006175364236657933906685068549120520396929124670450598956305274788015311502884114037290926163880538251775454080069218181475490948858439058002474587905079306657696706158296346802269004298406098596362393923563859625579391191879936122064230668468521965627282996592630473282911922280039243712363234180395025936157284682800979006904347107612492741887851451587268299607246121958569369661499211340039975638882796279526642278109015505810470371357397867549768965351962292015466747765647864708959408041929902278397266582418589370742440081850703880245234095243525362104085496562838330105979480313152001586433301951210586260944473625013617984033298133540811859830235334943414425677099835906782399094606076897411346596823956032260292817798863508676778932543958322787022044665191770222773923331019536947401512000990882145436666584809178454099429517131771439860780822346602760996120654722129788646773420551900175118280583104613576465308626638065175325529055706870270037239993163949156399591989219294443269177588172511479908862447864592513645053765696779738688102305770221060252619398352327897094219282221748893937298874587914770497758622624251510582104790539741964925391694769122891237931879287760663526472445632853126903877871340432859531861143154272340600925498803776640067595497941578482834043181807321192258420315972565348590771261918580783061452560603318563508104332515515656226577421942443716875839333649108463404614524135507837243146550934742217766036856609984695556227489701227718528806677815058399349064810565885211970243011258760951883756228483411893672629192907549878885617501454828974136335193598100819033170433384578086358639270631582098435520214945821026746543473478685339552614286307868899120011436516700372885963517340621290829214915220750120316991829761646379351706543159494902664959953256506217963212839008290134181512388633531107575430356785683920862435351665758974128230051113859310117661153983915546996735617699238979425523481396369380058451841148907739760069005104665983214433286908143384437339844294415752990635174714705234589323812691552102063152567298112292717114416810554741785577729021459059270569985237871396959338933670630797110021876227245928167804236284938935531437709405054110847109556190952034362097273494845723881792131041797622686786759013971521039850561162222504414699705503310181580930706695254163112535431235884770694013803816897299533270474058167976168811856373585733715283492241187518902070434965064392152170040313653883719033943063605296067748312689932160989246222861908635388663709673538837834015268064306278648836715744899991428738869642358539396285359720474280840128343087783855934880832187714870182765913714925962904527745113954574973238553378930529821046663475070942694034522094783088874160101193470260598985577524240518687092327524709224344757591269583176256384373498515717337619945216347400274112223798889895371062799103362734225720112507499192716891267510483111604672230487648163862968201162498329850871676104317111741504118776110852833332160393290233251428948860625725447531267856401647041430574634989851572520720669607437571211821270801772838358854397081968489977270890953419433061196891282314792831425268824926527044670708982158520535276881770727774228663065191021457165440866476026924085342002529176710512136335886109137228960502065065635571219473464886101215623500391454124598921636669821448066692300337121446168143654575942350027751339156278329473306365402800409557355356961480375643979885032086302068757998458358632181305539195380333250941964731921984971490216269362470937197824142250003095448399664080458695902109052201418687799190063125161148051351799698668239817098919240129641446494992652495693223492705849675033521363282756527772015377596302957172423287773656414999340947830926151779343012886081628411586306085119282947756237449561196742103822555102979798536637522176388543781522949980631852742096110641098098001982460263188595516065887208045573457713088099597754754818892142655205767577530551666484152198068231716825505319632923569372740313574289129417558501604098013679052330198923304097046628854774600465054539362385531460491599051052873021380424176837045886831835044445898580400785969935978287606807954483284733460958154133489746328241617258492738129106772503013324351132377232686180548547218938593155443615758815771797175463339006918710487944813567962007918312135235578978257018302848119226694697813265982667700659640950996108686981839354298138864567271360622892174242581604619484488074626840971386993800810845440452778156493175321401087136491279264393032324835373533157333236984147841032269091772075468865330478468613836623153091919815316970497361362809784085794111008081680921581015900408756831749997857422259070550766886601367759437298305258498652125590484489476376534948747296729796434708717064707284867244192477456919303413191951461026557939508800134414883180432159830727115680223356108279581524252671199900655971434885784972053160282714453111795754907957167014894279720817197279655928501025176473472753275700389601693220101698585054480747027426014685354133454953239968360128829454081182724080438868021087842224210294699087196935058665854174900209628554699548159284448558553071133876975898474265781179000513406415060517122859347306651054525244420343356403184268590702512524726598576215892833389157036550549164162992132798459561674861778116316127711450737623829936568433859579787589581385747097381530596428683057459780386411074025269971316671593051838469602672964122288036552714968361942332175559318472809047730793469590106017405449358169934797562653556320372002940638376858791183634822773609424556111466609015100617294145632205922774846077348831790191712485014277131356024813719961468340526860864987611634900361738201696116512684204619869211648372423148703084623844612745556603806680107634800829087337365145948933740600305062478088715401384539307102130538369222924711737685424127123831477344499904249055378033839766852840913317922582802501970785602312128656773767758103996054071671995087173225431290757202763879554805603336276241085957304881846657404307385329647771080622506713883491262473072857462542362605194158327341075777002222358448259111322590852427206069882964579201730515172810568820686019561575292536197026095481777070705722356879123936312448184012991267539116600791344619227060080789370407658926036207131030394811327255053572181455229913241972997738450809062827908300342617952578437777502427738570896871208941170189763863720429752641226963117244633616949310637031572772324034366267125686307684121128413617542919660568384210595282629534168046877220478348092268693721147889551912147283576079783816579602427791295821508607451889283634536865318908993369763921884992798880677124608218974439867768376373925637432145775138887140077520654957304250811310109937667215973036981393985313274108323373351053871478094003835046842956358693246019363534806251396359508450964238900570391755785696669065943882281277596392545762246980666750160894119398721678656726848754139718938996008512623752039001659896461369753510648055379695551230287611713041133405664946744188405012161359299001803638513350009215839202369555084501158557217712722001316822446948264108832245377966247906423440018442713747306032787651838310460712884928651058574156736210768733002984175785649609906712672634667911439494239561776167110993047397554536211473319418158730839189228616152268951596541085906606519237884817903239966314946449514698216736642295050645761899098711451412502254667255618802352533698364701841785059482661379171158553568407279858044259040641973826847086615510496843585514101915836291402937828101508368816875178036101443022105802421669213706020995455082158312009772632905020420902770880425097643237640821967126555718421623699776875984757920934318370733951570131005962789740086477814639896188519504464989468601848573259796564985445013701732635760163360893637137972271569745551020089193892203890987306722308616943206163002452512342000447424727510042033926585546932969094802259261077697401862272712936020199462111883299785952505527244853465059562779485512187468598591694521597103368465158973503769659919180920579428782763561419520459641058425098843077535919146273860337179510148570963270304820973992551950465627494718027992401588096054336826050549523877602599797810542042308231004742673977220321052781315439351400517263533681888481212295354164051215268328037094190784590016486780815353937770123568274029672139695891489306610844124673564122068099559925732118044733585693010829371098814460164788837590065740978383894760667096422407502753299877448894145851472596947969640320413768102170653522113679712267341085769314529575662764627449622431332037667439952322134217842910655383256715795444769154685943098164540516063109140697384655571768566792330498679922084497925666532787877384782233942620327607602940984896060025739151508972518699458520634405336628207483942620479104986560273315163386224834224719196122135987473140311649874099393458165879161397658377462091445035562134718970974894313283007496905661209552793684020475639851286474627782709741638337572840080104879877591746654928206575109581717435923506270640269031221998099372755702477091347690222667176144856889531594318949306606286480482441819586387508751762587610139223408820249572069439128129554917262542363784702954579343955954183418354237823506028203279826947874546849886435519062958399907486166906909537361517402900483888035783658937535457247694770815377362375640398813651785353625717687463984183618212904316441038484776569056694947699720377718407949867785834725397666836943092358354450130133814208292048455337037804911646493614597962408697532963226171031641351300502547614120827701970351351587258850117777685356942332067941180766812447999001022960912867212090887322717463686553954506315334109896919187265655348019960269158414199105622398359444540619354011561526155487320301811325526221350516460855934083895052177363406761410431175750253390293013666155032786523160204006344114488984620702474331148658106364162065649870897769295403328111022124943809186230887704199133384085936838936426643580534392174091824754424209361235796854828328475545708360009201426002089282989582549369787369315170938248685567650442414356911802997739823302338368157909568721903834299803232894188914844274445446078753568362390247328981218688932345861886639029981764254778133489095233706034194908642401084081699125999266030279664412967400916827852968628343000774020918354075550681905891874555404546476794257420897069532403903765540683448576788591586648047855765197550860690030360613068538462970376782503307315152620334791105211031797726111938859223361070589694058055601602153456390079596696859189835717440444920105722710321090221661557843977722787776652303906420063612554343548725817487467810390345427105351733439177345793281248875572018680127662196957469923748868406281004389618450330824761629398019075354902022052563090975750469504991879608316276552528578023432248665604060839672488459722282437451682609094312861112581933293301528639171468371265322256192257018638640644027432605572923596274371974631565774149803524479213621282445163886074902065926237514384939047825861459638054182143444087133479440490902085745051080418634410796342596772700211027270892071425579676535624288776974717764581142873010512577996686981006162474970574485119660396527421884440843479947917442498819016584199643344273198003484875899824160194742592006515447445567041176194302096941253689283847346869199862775530435751150721473073463976034658978758940481092538397915236208647316699477239054724365138956027987227376012380818021643796966075799166555958132831486798470381671265343157135634180165498740481556281338497505855755816879232793232649213231228135782197829882570189642624740916049967545434434196250671737380161164976129470012014995005765763067905156231716411999535796265902651059439196780199579526858844927461982912744602675027032193525403333434356260590039774081481722723495013600448910596876753898087554250439503281183911617855434632730060292831277168879537046964168084358828708906017168966599761841346621272032963896379988517378641690006971155086603627848333730885628489404502183032268156251531150572574846997433939601862676403816547426494774085554840469865757623727496837712676153256435460985094681245936158262294457316388640231042739676599131671133555651487031037846174973450260089619006244672866982075449478009677510344137789901090161933717900411291118747601762650596024355713437984213032482830367640150257540940545608522653804388204635520006081128379718119203873312456041447889533564874134117790474724414466838497348210841938727464541553068798664043084459512333087006652402123584485475892763836929794643931974837935672511979178971880625527118449912611696946845199526537496810744389357562575672507904131645419699556107168122237646644294883846970786554129344888517973023616562024945847468602665089541138057320180756941526028670750598287013845809967771372247977472040018934457045790618220871882627140994698815313417583494775543944503508341231365874668115665387762753093119280884489743688267691057265286406409219485019827091374877523866192297468281883741408797969166023655354457315139590067208852970431832313098758282905159228398359301294186208298095906086028971763908039016062266836379454491743008701929878210001067722516128389907241467810329226443537859437657557222764873265075495920154007132814279135786840682851397869389818908326442724518761435673116355207739507339073644408193717368929745689474281447602485995525296369291706617985795846038319471115304612098522472906647149721139175321479850970168211147922077067051726603934674590561108706982662571495414788137740114996620856449249953256770217918223152804691626930317585630647777407200879335836179161257693567163757977684473605172606667261684572452760458344388561255457036402323662891867697862750978121395094707578379785129340752491821619888643161994891755289188054473117045944322570298121187832536117445564307789812762555107920880927460985458162335859346560966081601981314405985365519373867141396602511716381228297850623406162515219327380036873890802732332968363553605630566003090991889949849526901105059574053683192414450200095954124088750805895785160387738124464919639475509765495821083473752108458797371939460029830573221434618443906652083755237308084953546383293704806843362986852930096402903087313104511886770371509113511507277114840888008380018883105234184800614936579090473185455300233078088965895349245053033627671227853585878376458280296278615567440220803243898627415930023621392594887919565713358964346330985426422066517359989712995761784067997008105917716431774715176926090727190259364157733939499794871291374865894154293371583696468839456580399903344215439749781900099574509904227008606307019232319474362260201841474359098733335794949609150009932762236791460905238831841698698821273597185084679881841877779673649795223910060402203338615060791952193480995078888820987680650769371785188667692656657572782309037844860122068179854832529818775017571253926141435267745515637182413806065547419286462914223345850790965672840746987673854510659703762582778035694786253229049754789905363507859889731600927032062060194943490073681468315431287871979456595365273001092630531711257106009715108973214418015119393410195467631878197866975754854935456619564177885469568176423078012143851991743178293998348133589267007528224853610111549015131968389832886083760195398874736341945781077261332560621755284904267649606438076061241220149975270989398534732227033084504667190323074369420648307073787523788838375214382660523818230340050885372432298662843607152131973087039718335618677463076484618206329909775149586854227794042950064079491806473195176493094002656843015931706157265734896358699451999385355158689962040556842340543622147727863714690282147068127408255613675024036797824451363379114244930163917469347790664679278268252696050868174594752418687874025128889467439907358668603566088902034577654824982498757100017413828218374623318880826620644143604449524352346739205664042240177883626633088007985866133337303331236890392058296325556690338958254788362277339644346409507462703598650276270409709374755460562305405061663442659473727100795154648336802085488336962516552963529984883038275735301085957344683388379472185561359823453422454285932541443645411232835308347372255888248341538444992171815577826382958601956156801683553008614443756237230356504971668673831864006129846962492119961858911554468281505798445703969506821599945745940535551869187706593328893644578644540591152163839685018233372407468940380977611279887330585390676511708359800809003923703768752712136121200806871493508580357393340655756785779658081220994317043241871003995374178217861212253495478805670009258157084411866998875865832252989625708924241553248927622876068394516310318368215596289043702878448768611001845688577700439756344849342293077982069026845322672640153477366193508154853113916545402789220027792629365126644057314791565626864749881758926071640671871299672815068696731931678787066165662403491260122987950891537259730097085920523842814091925308828976936151761006356076328987824444038513554804533327821285710530345098493996763628360665841436104342301999606724021799932110113286654035021975181583386355234461991581307829665061376852611430964126011745962113715357068869025792208185388761877413736270799032958028795426163666954723968594932132024536477605617740408159666234484259005528203761261351857049977507641411756231857432888501161446297844945376458176159634754995555230424531828906907509612986827089824938570448887170616347901358807208576429071264671982250046721475138754152075828620730221921489993926265650667703225081015430260070103768760973412213710345725034843829334041047705155543673516421806492776140261823460737574977783908549001856725821402482157336221112898713791105456267033618531047505884024314631383333059252069700258402703704547083781488462523415611708058262127017863498657696866720935122032797127946008219960615807703266481018084925806916444594066255381937629201410150343617237595902933376413606353147247453318035054198679226936136217703800118035186517466642361993790605919523069466892984731361429517643295068956237599830215869591572847021963047218249192142589067628874475893436069558945729325773027493894918722219820346938939910351100722245041565682144390875865476895620808649358123745411204566060754649161256128030331112293916732131692019674802902398781491903096188969820613347791886904144488333739470791766941231957707750900029515760661628237646200534666854359978513696834990512218863802046351205202310791687122281929329819136655096732081774715722771101923913897168734100438563629889506925056391610763485847770815032472362338488912111459210367532524409736759353112760487187301646529858631000072263583348789437880565838522440471265671149977703362558910444302817509252248981079021959541616961951762063371974693282083734094412986215468342201387603586444533714604828698706454185274961915802856395130962702763397985507594736088643665260243479143315183886528639374956848755878975439246555017691196236709907527976027855617883986152512653261810523500531548085941434265786811368870668019923310026591060976443252803823796185730324501376146699191657542875180244016283439798218568930964142736523849774323223328858671245820682427688292523375130988548804187000579769466838776388736461812024811808191013766695972091593089910156929992829725309010177848574589774003287503291396166259887675109795702618003565963161395914675481648934229408329407900695411226254566239348248367804160804833770933917240051111900866600993860715180908381625058732369650741218429068435475024660969578436947307285141055538499347457859976558276708550459088700696559615688064308398478396666140285920833919205060323594462298441965809138445845869634513244737785782727225042681043713860607938204749748807750468876631603445322747594794842508392530212052900078256893512856012020096674101460541539698496953901661316559736224318555957370736234100138031820346001199613157147405424795101838803661185332189396250006694532683815640856859662606667424289014791684185192138684807557346666201822268296264402240989742592652374112880045272012430041002184501748448806666033377854240823621065596993725505242306195483666703797472920377569767196229180434372833621829835547093893775837074644548639755352466318269853736540514839765639231834881416621923422574031366908499310260581772257542217208338423868014390443735991752929302885756827889006253209079179040035546977937645109069145758973453593593769849451616503301626404581129385669009742927068944981808397247571841612765296933709765342892235550149879710431608263183838757455808454304163853453349561710444952726220906752531131810597602106683797676781844325102610851805744295990812638151946685466753906589427906600368578329733927588059404805650412995284977546050240713909148304558642125033698640884922860812218106408735841823436865592075816638854185097469388831588158491212190473514046487822717003681763103008970328591410846707103557647301180896394986654010583530349650991985479576063304511877240593306835657952812169712371175424573514765898746918209221305148558974609300561510682967580090472951802683120519818106902494499361867381833045883793541082888207305368301650826452875826017785732939545263592020653756944858141170673377507777328877158394016933898833816918924791027407090016344462714492289940339166780625815396042891943927955693720496416628809740757816392662399669763115519705522410451219735486721049252266947110397535307033888344694133337514520094420675476250942415240587024624192273175845385936158021342579984169422067481050889856171996789594211334128363519042594757765224239350051627510945176412859374605238177843519226963856965435500288027493881030294518115162920196022687536624839705542490433290392360759793864628757593102376470497184193541683782181720423225604284129665625131288030534532341888423992482356017023277745871401216176423186267949522413141134092933166386985205277301110020087672201245195003416967972208956125740870788929661431329101416026282777829977976593383969761346399005476619058295245338089937092979130825904370587929128695281013515413449798473528620259270384723298830122020231919841264821734601974266791528040532214186319402645294685388246929788612120872336961741528871949498728934348848226893743966842020377676855990354631370066071461083746101417797731934791980929330280334169049791715632757969836928444003424218112052635257024370605885618051091937683416384059305989365803336017303662286950042397326521860431300169121195693995101510626347914074135172641841659585205975570806041460549616709529846445842028342148814728286311238495953506546471345111575181525379598490199487098072548722729699938113956148642136255982706913287424020821116120690984174262367360885453034063005226470024101326028759990436629792277232721782339783248027865329668299450719206624834246820204114391426212793245852474261685616875659001734677254680525063149668883171998595677023768663608003453283656495420966708993082892653975778854282221155271267463373893095474775242321610832136326252070476640152230602160935950318557959903113270282962245409601103105497518823197048009835496486990126618895827278626200770225228077649325535270958985978107365243606061303694312923375625359806777656089023222076316346405987584433683720421670635146923949078345530633545603535331911429795601839854399558139523336794534090957510894128609788796611991469550718502272007548983274596454920188216088091818792977438376521321445670361387304254116877962286373937177625612438392688302318234070767086535187809353201338321047010177255560698700267635494343474672223320129848778068855063490002504950436180869214253342420827358368062115470234212690339937759161047898514290004267231648392335561764642752614714753779655641134776217986776919363527080020603243270889397511353224881421509815412266298076625096394374676896512211698906345840501666102390845942979873968601645944738030165812397739110500331415220828194419652371958793323583618319372817733515464711073340769062913317857977572943367419348916311633586555349275731536501142236032941493802065633344050577385672090810746424282356878235588540863657484515108483295841073616416706446851778197623036776689147200458310933620164933515011788597249164168118908421284194137254253179022284676175043226029505781026739070718080009984403354748021240558757109704589228759699206393925934736425658616637592104156493271427275892778303853613354092362979450948088684073575374266482670357738678751274371179884946774523164741646997585802547813931235110816530867927153538184544797316359722549690606093988889367749471472836964379446968624756171335280527982963660912256908012990396835683365374132261284477799007692310265462923642518315493498014265543822668302180519809737588636903965045740725649108000141419819098184769153797797459440705130719904837212096725358172028601290292285673762630368896639587722784681408379897309708977101328183939958829590541036977014456426179435078534589539808354754569179971096551057954709911344534626726190574709602404581372463420941366670139444019725817635335831823213982804702550974763632214938209216380322723577548990760735720956514633848784789535136432992981878191542957132782548752040643819196615856670819154675751973333129237627896596795470575890073637914209912784671473303204244993308946700735151612223573711676509140909764314311794898007255791044439740130397519840481186956961679351184893570388213928097528712642052070747889165839968045353348130351907096576720681828629696726392111840051405194755873441954175468607323607857094032570782194463422550159717377009504263097626228837548864629316836753638495989014208592730575293072357062969176511943246051291346967672191874094064725536362193490323160165953569593712709304857493764489745493008784739921191713822812149616037226496579745627032342542982777258666244613346488579992402688058265112502731548226456630444685223073725406152713490283297350135125734493023345868511744929899898402599436445420683700645232534396287395857824787982434400593656592739758592891740987939032420061821877062866965662101370868219547490151412373204488169345116823601513310275561342487875424634728893336345323499901529587359080366496514902952676696719368632552553658572169721293165357344840354350706539312261427959280110307985991962787665624820522524707487258644980501720407324208554340934900790192198411054379731198216909580429086295787658610430007280475712686023123800307745892818126609502046347585194445747812526659100556258101374196683373614334998776015526433845383253835062880997667993109039905131083326931016057305065965010737824279521226878494158771672764800358606855663498180053122254510902185170290510953116953292817849116299075818214341170008088156038689316811955614297919507380843511290210500460613287074068406883038753373437448591906645939025074146188337338607223854233082624796757608965487956732088851840720338487416254304719732389868138981648402033208900745269579608567405664831807258109351929091634673617381968546670170686169354838756650124555174219067662384918632892807994193935241733443473286533920267669902838614674396268927172573976035695366465097360546978676048978605686315971201017070263124621511955940489121979457203539559552570927442305907569913979297983804536707975674712383567674810393793799270024102037371906340219878445406975130086794046737143349225230785402108043536342487204478908676422474282836020553593752569230789602328179174546403604276569594298283129433398274030895565005730765827742465635996030366526033312186218165958790436096643497223024746016934740381114476798912276104756041272131289084340258160838472020285396165539283641771237835010925012391259830073077472729271665694740251415608013863784589828920370047198593325990012816818756827465569524762310559315601089862890577677107172561356941732132542126456349089718477296284863108410576924687146946367017438277632181225223194333133348278016536915698530984664301921553890186458706382446750417284657561299134636220456777951434703934263147181251478791960690130858959326178294123121036606024936999449025447038259266779421220816587171000745367357380513677000796377367176808437289354171177024348737152566675577823979775454486099990183527477971046979304310920446264058800408788795953695466392086100051506007094967349111996798159991970602200874267312465673721903454131142617477520950517028070788040720234072673706402742360174174749204599990715170880128630390691123225813783458146816574868985304270181306247186536042013494568170051152533033972571763850618430848539259593565674133453880717477221533965999421896536586487983909084392243321587352526716100088526588538622394773760155423570062972106003400729772076498623552803230700339184640819830723188621354563645641627511944577359237721518751972353363695752296304365417040661552994495940591150772232958568686981524209281826209779585243059854883710623582547083642767562470355790967978371834104312265550876991535129118529144372712927612475127850038385616184517837525827597331394215205097692809092563439592976158089395970599194942935858062413906074634237767902844104220519394462454876824631918689744762607655404789630988586632004103162545170823037635722532930771369473073156975443351157052216093874691589233190757715328141237071621709862575243881214489003636769226910497365050594328008247655315688295331325649484813406826473778624139407084183710984728924164414829846929287885428070163417977398894129699162707613947249503587505360129778161340941070285376825036593154494220079241758722723534314204772590205999186039434097955896934623293011135764553361969773235008346715545239915700665767698249673007645388983315714192703769518930116802721712289550926069596011207985302471494439360256500703056361225566048130041528238014607194167277990781031625388019311665075367921158279634878798217594940066552385664267825378640034240781051016882466426236922499347701499156668579644505612786187414514550512238586048708995564612009012015713354365055353134794197412147875544619785681842404272486109483712404045086044251514504518521930672648676037969849334123842343526286607120138220572418979024549839786910537758856144740067986789415781431377562609851004344811854144490879281866196973930510751807871635034103598561479490432891305527387879218715671550925056503503156715251332587895520707430576198553139880207367833815471786915505206185601282696137801891809457435974250489261520698981452794217073471311277939405243838649092259820962735070815116135592879306437123663997978240327759902249688843272858327582509786309455538305419892389711230280392325034607506468499883077582322747651925758859665965713564865045289557891532727858670551776442857116679904013112731505956004131971854015759859901479233609376771871958379875374421800965538194070006545054909966152454575600249340156186466265779367298547411275067385403324093735943002895760600045093712060700233018389668039257547478099832656244851814170398214327448534577164043658837337896309572013640197852456904571315865229639326034819757185943363866403469164311557726922576100967822979016270534231307614358247489609596663788481462393064832745936152679878990845203577126257167764715606806102277905291036938752627040967368761259352478070446435420071219600869764298348266731606725975802467833163462191006864117177257561282308565341781235144225492054737057697060481838735364605398713634469065876927111323740504913198943414877233837916776186513948265269224244798869707336596594235844363676271350467195724680940313104839465116396333143248450331782026221696386247144589495146303207440234298290564759872680531531185736918079677964675330769317382379365258924107429754567680680169411374862359257558352573201070072379975319649734389943045050464661518800352449248745366280195676665407523677621315987166915427605040511707248260235731263454740071382228538897777679279624853132814244245594296838707838473116489328984434100079178092551201969160849055194781292898574630641792501781499683842950502101900112187854317021574906577066519575893678614665845911049467851747963558934280987698724724462108083650634642077122320255740839442819472491796933714566680772402747980716673380993407735384086382346655041997911896476090785482815345104842588782229472303846084223113102024908331911436916317228160797716701034442853541423720055867001985446605920789788019894032350337576298774537998125904775410939532716595098060610167731973789146465617261555311158756874227597903951282518192044405348873083807920151457774706195624219069647682324210318788833214012440492563637412106289100958711509792026810984751575057510647754465230177590714456622192589432717750920901748118380655113073003952306568922808994603898734753674706966068563192948673206943599356957060102637204236898981901141868692854955719010630622751773663017327467678315755476085185974296775670651476594104451355433846715072556629182609412039763444574794854332425658397105847655155048059924076145896449996062129524338248191565993042206780396354108050776297883241233143326303674101913684296980997515792606099225316368549633759415425955650588333093967220715307171392359406335278108080282981612727749574357966120545233691065837825252937730791196576440819586564950424251257922016783675614709169411318392427228543402114915591076103658632277254221924594415869905552347795772125800028756446616912674805606375395775302806851904680470484990443480737187277943372403713988438643769270892582381564133622845138464909861045054095243305817906200988886667382727519162090949133208817842648642962911227089199240564888569026242903637234158275979238101422560810922661937349137202543837050995820494756730431478567891205857795278187500487380228941925731630038760407258555212897017678915588035700434780770273183485583356442625757260411210930954644080286401206829176046920756545030943984249789852487234190696106912804160617954257261864372137350663969070632107570407629039586577852104805965361502485300326138740902417265871645509702186244873426621346525592067428889855100618394761721259095915077180190956303483401920130607517412922426770182018740841208146187092661223417298605518300659471544493073396635636755542316535439436366020780753689686342848501798520895480523069765233056139160385463683047053398553151382336525323814173964236332023568952530230253393604582283078969633098320454655387997979635314742769471482755429553651944897999507721564914346793793127098871510442229839710445122549426077146247080837359935681418956142003808686761244063424555969951163556144903388827970162365334997408717437106279307888647147342671940802313919567036368633110855480765992037563993206741507836554294437912863313025428636861156637506871959977015324007658497359303387966892979517811883393845233775699059089377388444381501954385337796449344212683990911096258816647369272605169552546203041144394190413522463111869730946412231694685358139372530201101879109176334242683479019588120398024078835524990129836936286407697023250552322920616986309726481391947320467767380340260871680715440330290739505893061022558931879854081508488290319819420651943341097331073755208186107917535930583030765890033872533312688937487636687700464945147128275311435394694011473215008885174522025967503507493948568390888402684785847883853928138869004485937354023217290070983367246466350041429712521747037083069842763650454413890421210666136413813695666320297596285468112073348806350367770955028515414331244761031003128069647798189553556955896777053223460156044245534520695954211906348603644045007803617539991454693770569847446942047830160415050157610882392500532055927792955179707587233685137568848233373334626270412243977547829673010876154213825612035914122749590031113308547044531472480629579612439643678776965143073255472934906877871944776586835752723353250293806683467643370296961452659902438390191878407972200910077826163680495415482919265153429502570618559581553158455715581872017660579186234451134611349398141835780894126528024005007206974183118527605784214285070494232944997199228464530142993154443931918262526414639979780701162142812160848331675637635524318933949819833128469657252754802511910825919842963809166591438253562190894031299412033184943739884530308120673059648911022298278778600552620541798647085077765968422677775762109561231959034480408994477793882798880167057074343170270819764848037648108666188547341534529142754671569725447070425573651621962494162911511005744316100702234329584345218484638499216509586415371926716952412990238072339719530623423484985574735313011917608231191872027533213245968031141239807770747288734660076298827051134384814066334537935728507094307693616182577682338579288310228817199545850338825669350903202910254285032412574792858223735742473346449859289595439873745232382814854139486569398255060140185588210891280885816102786766666616890982324088590488827950832706625548959458828201041867089423442656945595751957610652326291381010474775713162053550521500615916348222477280456804933774050874582772679002967563169456467370853156664773895471123251116144387977809576695187160035512290896349574360899279646240166054154635851903337868939381258522084622286956204707296292924632171167231118590819483425857832402410941377468169052685932237008139534419932999249425165558742614765599687676643919707865445538342167902573930439900454379639788329942271242099916377108638642654936978047026328887208308719967332603584094947151621746580176797728879564026570130737557179803772574297815383227505158623608129202821027064960700267773441207419563306040431189043781766615369361761765568906989094042588870379723898415489147026129180540635890428974591074525126933022613753900356236762132324101564820615585219216124553430076572058076524275401497403320916332129108442130192197959491548140558209461013024271850773575775278850653332783434608334744413912817611458123850751513883965291686769044995668533398360827609222812098504059531378186181605036976643759075914141434337754146457659997485027964175410345292975700697078704501851236874788655350255101156199460288378094073271569081591398317209424093858568169490094907654411253799193473259753630672073075046490467623553881955274217847103877039743250471709569965374464528778983978575566749465285614945524473514294498733840155204450946368693298556580631241049386576693988963300915927513575307205689828034818606134465130757830514699036370382918700069665886113397190968851749901123370233501147619405802530542847136462983779642764566913735601675230574632222512985492700259156593829948715434752258856095495192864754399442841051806258192344199701749092045166174717758264712979382105882149622129238448484626764672701093579958223129366181124742118851992690852118782967524736978420899157420206380309960864374598097961518929490365604311443922417140406703614916841746677932838681817709573887570587781703833076344474850623897165444336402510052552827014622360827203545549850861773279703787049007979846941828171529088693769623863250965314434837050199671912599389265858697789374450361570526359163281648929305778725518187565672915908345522898608809775539677495689604116634608920538727210718592168070859226949740215973400892836993713171201961093612791663392482056614894577883115902287751228547332416901781300552565212096140174755727382889451615253007153054554555477532456931151653799437902081791033257888964761488319676994023412367519923083134859113674152110125126914919520123479874287157696128133653992674743642351967473710166288853392623845616994292506590176420066569101963347308720592737281839038950530139113005220882204991881975922478672796952530749287891318792666779347505558125564435740670508342224787192612433781139240703831499991083563517247903603374863821646999064436700698766412862122093734418151795149026400039518734267121415822322646297467151827765815512332015458575438857889047409063900688096071306886429756837118204314684586585852870859982781916080617476636272075654398955628226825583359560185494886028997210710861614527916669095511225177339914298606522413587581932140938439891182708729869863995681744566845545020462581709228332219275897955777829554223861871656848757891211853916519880535905831557125844756728320171300322002567995155679898046663301864445166744396887902959014067081851492280821625303545171535366819103916350446810736379790251719031385644269977123261005222397908630370366642381687908045263066849099596581915277898009094572180615791854389515792149054626945638472225889767020098095829147286908843953765927624128992340217123953862700578245898457890369426673245153004799995996547216476805443195250115084636202335786758481149834687745189304761174344085340684493605622848511042577828595553950080883149807288188677897258153602125209490497584106547244269429785866011845454560652157824392136871579548828034190414366027196787074631901776926270403868405554052343058898422267073185282925091188243298826699162107098037977961115008317350562891703028989097465862888015343220258093165482111937413765617192934595337047883398214126719037628777856729052404304095051760218304262258100919727387793293114751586142014800284153444622874813004165481412994192762392084853347262837948899949369468600781724682397061433310940554235155256053103812151142063517762876104491215076614557653224846100522424628442064351846637676312471264233490229577462507884465034813028549201399811452861311278677727269645393850612520810583108143749637238485129357987119852802484483287669488569715237735323665476008994906306007104061609145604022949927577589747289411451062814997860500032653759255056634384606140587631872796421946839990474887280201698640722830901649934784506295392663174624751772762954972866616989288188299362007839971862064812279724588113278163018010521350704206788733728348892457400678472277766785832742743210062633993317450480603057645337093498252101499336615701521342782443062196406546894036944264717245701125346408114795687955224414542815384004000011889452296251293390288671960016333576897291262347894794603512195043992432456053071706529627789272846087210971913231449789661489446804594274633710828847448330371495038461386970000466535685995059555320997588998223558492699158228684088659016452033115350033403673504727306880578989302577232355835111661432439246272903647952950678027959670886025070836913635492528673041924086811567278137715228738930442202034959782148775913575055217847856317997376355059199938394737555526633991314645869754825199602670027339422609614197268402293937538526796584583753185344502706598477396734046932254644167198693766521668275753523611189841284800536752007217377610675712958511059421378718835750946984961316019992401177398715163707363066767073916329553300184056501962277351237035650456789317896483824410770960817728828898362615821134800431484513100493739115384980280425431434910690227775654839420805485023277507134223045240537825837541446071972673839876106770774951928690284728070501000378120625752840930650827752066583649019679259220209823343554284210272385742261818820234333241730346254987441896553139804108269441155241595715449969324563776394334991029949795861130141419118801242482290999033916683457447321725505540608070256472940306998746052083385689965145822811730763098297789445554633406562350706611486528837747870216909374092979825747451581945796807091991401582738167075045750838496199406183855007316131033971193426933560827840765996985474822473664172110764110108306232830791619638769463279088447601237288346076773063565156862398638974206320041767485469718056827349901184595210136484592527862226949267402850406736203868474044534308936929142211780540091056094482082049322131291293120602257943488832513316715341205735821346171188162685164262793986551343465481052915802972228977615175270599733241758871635870538902108990395698034725570054563099609196142102043200092726869221298162201854947054702534499949987493182759009739221521773022174146177267911238253688430210426856999421421416596400934220290648141505805137363502663043681277924102090671824031797199874491303135860133337726397423141844655166990191204837232481100023409290738145276929304298190508017597719380777809189798732542717229209880399498643146308367084562818833945773201809916708401721184729846003005568053146721023625458748087692145909007361657246549070293163188638594456758953907956674124815117778771790445446626580620765482334197860588338472446293977089470248048297348960369848257220403322377521299212383601324190563344788979363197301775520857845207951016754974661568744761593154681644370830155729673702545167567653249353645773235481309316932886585849087636447378817146798010199611717140190782225675112339338069721040073219664909695598377832024167958008422483131578795018045797434177388863127548182755110849271812867626955852187311288299567264908827525354470730116463215707485972906328807191423988037758446111089511058426595554428026796741770417502236706631811459091222292677444377424564048751205781989215571885650566854355200365820484674608765033598862549436390639196116930007850047537943690658681735563244861637853713624361418201055293787382709374314025634310155184644069120062047526308283512221272380363677867242496468519367776895659645529843398324087436740238191360136910106365228225571266953386284926561287274529189452492799851652489943801930175705658591235815659191188899597374819142371849391511817599544104582324336325724684079272388801352079089161809610872388054585862283013128773936060477174835867095738790649166029888224129289167734005448360139261241220623462520986909899455848143473230269285813499988461515414982703586069858189144150202210590920914973536213346710332582190862438960986632899193046587772155041776354468575219642712995125820712734532022146929334620644637792851966291508341466147548633992002473070332772079464751682667573351776599611025599155852381626440431197288248039940011199364503009731055362077385654606842304983572664601764489833064982635651077090050273697556622436299933321568031787260393382832223887681810486015804647355907964163387442015080010611331150100936812852570210615653850687907333169821543009542381155762812411515865949921486515275996191547303823320237049033590300263754400852212755406611133947941479822886764330728805316367196107366695308730151872500682212011387276250213818608529954611811247570920634012433206016154637306064957584040286499691842211850349613970491331790892678807297044243826443193819725553080040893315606073924420233247416823198064423914294326679465269381613124149667619338510729953743188235809166920046569399465340564671843370524495202725143165637902107400176363910677162150483759349071072625405646161862805875843805611276326738182294053778806775805031500431987740206649754278906429478478399023077493855433124527273182837386844977780741505951652858129314774817526314347145159317038568829761495025235996443157159408224039527693014035039349161468015971891865012602008666809452935547322660807887377388299588418861824918735346382706779609099004506106507779903522977495246486711250310433162197008679470974617420400502969349850418333728790085933906400805661099165483639841289838270821991883696633476613811611098112534310495394497201143582752754552120834484090489993450110280787760186368035212044729162348844548580455551369170318950948279053475146034166451277115392974092591515604523322837887475936609020737030507208339745296113641389212060753972508463669481028017921181936481418293370136141013628485267270195069474785801939942757087634001860673435581535780625505083883992778404970064951906726980052369705842626727719397492477152017868324435671325334151902877131175307200849997944439412955407402076982019425558568468795427948224330781858969795143825431005069103059777797235628078872785930410120197074922254666112655084788326913008603807531819007516810490322965125459833252326847405297162675569003392615809879684337182755597529469741079562655084250959797086461287795522372675553144302966085884180651038286060007959735125489186467051801075223677430693742122481907705900036909319096073126006624316637498489625306556196344624767207875656172169327505298591434476056841897602940731911549563432231002423160992163327464228188160171581028486852481091003275841563411158361706556599440722385883291534002976749816726314436139646720107503265495942515718965600572649715651293078075626938271428072096017030456141848159849918281615457437395747316214897422139754205742771898166119124652591853422349103578622532652992907002951675503694442905071621020143063590867184413975107427499925545696118335718572260227364814722736747207054644625574278084707369797746728834022324982928038681667805164436409603887752261890895964315407859103833606214739077467784177231021876840735862185788914253613862559788515798988677089858058299457264828537110327225876374975892681814592945349647449693079039408144739753991312967321898223357446539638512127787152525710941489344264303286146274878572185761032184825696470067196895527869125168903863639804376566696713824610371785143673388026418757201454269179419409550659595788180408413518008311466438750634307448849167170746757827645747151841717954790193174782861215117046656844639474524063382232646649548309722331783829637874280146005114082896358308070556288815001462434191107702272235986532280073834281194230551001987913881843165171602036865253032082278626748949161660974351837140926004657338541996198987401798941065330915903329711302964627242130654393617913006671237176220373921572938023618005818742463636761230997537751657876019511911711660891770386164167003495100646618694431581106884298418522436405653466728199491460089786771447334171032678511594648090538468394297830463975890541554239353040406432073986767925970956442577173300016552919285895230522916932572893519250100587306553086549704291390719009802563555051018990414080470991909815061040508908271739452128164039668278761173613750132028743599946599117607218130076423928173188642068666810682954678082338125782054378673507667111145512096880595738803967807353822470744550907948890020560434173798777249580536643743429091364041667096935778962448836279828147927563812952806255012304557112982501809357473576498543682294495973665709447352122995419388307191401325444230742030844198379337884299658013779191887031941297728285794290886403533157103325795993118623136996503578773636334470216632618387315212325368463272468352064758740703088322590786388685011664842002611940155592529995245652942219073748887812930362906889799624341993272862284136654298416948680121648416137451271834907995404310544807996715543778393880115669778147700442811570203289992499012743189605648082572248732919083939185436073220564159658128359759241032317369874009152054849559882371390388331216828713835651101355243767060971757567605356561158061033423203683744154764186825677993452371454561622899269328121666202686107538227309315345171190271105492141769861868684598425797747806751170029744309777182668144354474933002069409145511908614229034730108065671105363936326682631680168057642114490600202713621977808004162430247322563820789215477964793264287445337620216049327829307020649948653182787795753973570552595657447305707440377826472392683253155361519201191301567780910450752802170398525702224777975947360771302587114484146356627655389061560752934788788585790065943518741560524532198131789725199185377738665773814028938834290933679522476964396334583607080058106304618587920094151132719428466269928623633662462705605123832599110280119224187445625909815139206274722584819172245269547569291721867291266522471407504538506648457084578337516568257923041281295645393792131554077026127677426216542178402086967093246571860935986663711559741457047962099516933660784711336979109389316401738623227291027863492495092053160590205115875816823207666227727906536522656897315298359152079656766873817113824440033258165432899474683835152340288863463518695829034735114778295621264625274104115802842058596399145853846153891614649590148477639170027750085056229578469025465622830928153845050447584813045850635711900073484229579317372026783452946488213826519759941223754977652771496933412089007743694076659923613014886920709816033418382401312832598883433182380428270412164566239936016774640219411612776101649174897804610046605216943986169869259694652948341618635826655844401969470972993373750654904335044019278858148328247110807065851816846197491030761813722462198044160370617721646369133075097053950446170771031357024138251674614116681226870247776858226589442520127004565463810614826642928625779921601901573922198212816313124353748921048338863562010546415937294009657646919832009868405027223641225627228848811310545523387231330438064675359269929409962225089165074399041020204728885686500987788375219727862640251908712926481035727542633040677607478262011952780521078212814698325128315240509218057989506553488401111409085448911895587709556728306522121701328914779816343208777989507188303912498317081167054574823650912752217753484350252961425517069839933671871716061469171058403319822908752722151176534707168901308685393807335799409088534014090206081264347394567465622030832075547520725185595069982381252722113858774477334850500648910877742954847857037812171435755068329325585466891689361232351569452088391828863157686490194403092909569232461780565871012200849153126070994107990492284370444266356052693226188275515509870541701424729935959125433551402490070416793498200160630025657303533267842697414557232062807736601417797588663622910728215122505608382830252091122854222296879290330353184850800806984342216431900879432695788729758860524069421487717631971349301805858838141603978980111031812184868297570957467338707269152857212748986754545944026399307055104476305248268244778749965549949768082679536104550705877315949060027528687204745511207877958624112799400617876800812870731803107022041450202177387601762841915968344533288580861838525260476896849023236028616402190412262335257352184031882754492035810649571426811394732232588418344900706311249376552790779284226989815313106271948701481175735574757160654810649839437984261905219149446939830174956407307302489746361773218299662541901855872394846042089694065109602187416947036209658516561411468464350936178352176604564311354176198401085701212977793593546415571426648449790518018350208310303316648767168126848839519263522417913406431654227349836412895059896187709820936120048626019651639903660465533787952969452130118528441457631328922623460967560975880932908526823888527528460413510799455910022952160722200833911418908140246434499947591277931894990296643080364695134579994946109063558079916905296625029146419424820478044805717583532697365210326706658619770603725634591629757445089843400133665471142535927898521197659360196827901831556020788861253828594435013999344091988809404877384616529512908037155880655576480576358668502729683300280733523846043839532213649776815151998962279111412969192359939590724663809969732173306157904298900663761978040253054139019309094555136525539900932301015679087055939239425337175740012264845334934096937727840622002266703040465701024881813020552703485710044677699907083890845790022020978173742536079791992193669986162291062163853025742073509315250698687369156286848140337893281881655420259476047784338228506686905020964443286057737299268204996106328774172755330551108676121405105902245128507305954174723197932932774222411200167614769832515040126245526519717454263447523592075373440846548433601673591017623811616642760360337404852510114797948702971693619097824128443414995222666618712847433325931346653448121631430528994168104806884902864548658754507676826772228999417502084481026226986769072014462998255696356743235391864053284868898329458416026867028398531044494496590491461079914294774181649565495800357312751852903782730703198602282314684819938606047714490547075461730601367691815262524119248738718727437941886554364423604586083886356666954987709650351359000356979859951597281542988296925218451337559506440700268946946336932735845204078211971106410120601019315390802057131625364833420367116062316609371082543308531581232259990742917819019702135903950739087663813709076956088690486144124605325057645863279676016919649030591296593634314722589434251603059336826664915228683486723060275983724262123714177257047093561974340744671417345734531442807747321239490327858833054118482575571455588342013612615833060312744348634756252844559668039743164274732935409829414616298129736548678069410924326204996890010080522424066790819414032342242706482457532877202755166142869151989081683524293635197242176199884322640986308845316982205113271442609041294593146256830776623358639354261854326156987129343017843253785061266188265847646579967737725686760472005582858372478350005220468050662545964531998985484463545780679175241662210383117752869064461894396601515168007449957308523499819228418005807706693708101288226328595725774923484572281583229355601715705045832454343631783278970306868473873595740347010463396434435949761319003059613648435670386347872566733041997921954010623890916350051249346008667831922912822438978176860654289887108419907909268377771456245561682645118936634654335053317444188174200665279316895479315438495333765275746236454286994819131604308886622658549296692641098501410576855579853951981847340275676890405906745684390412069848889594952115380713466866889688846769797190434482863911828168917708049123535442294189927510837827623317109798269595390060350911864088941431339393951086679123497897059724380131153848604161327724695622473300180379340261469230716540941769511779432890375177296971770864148784047946019504980079703155597576805574830879249779029665906113377793481199678349467055486819713343576438882465217021295705166844793845338041437601432220137166269090483852397036417538056875718817546764360985231115205726076447960330477805812375398779769765264772873790923894419825097095356634830786808992260678233031473076088525483062645278635571038580501900341628497317158747334633606390798025009162380799126288080771407357760034924847197787768345043888171045460051114669270648780947465058657575415095195801659241333055024397874516867100768386058942234822297699668471536994732469866799212948129537737280225731002145773538751588497249864284617281593486823041680232362152190996774220544062552219989451391026740193934856578989321743704985291507411054485929074207525777045461322663201021696031998366161550079007446795499078179118507990615581432691845982921154194350416889460694767210092498722550898565109302932304536774080698775983573845242421874618935767192304340834655516933524283511674746143652143568453642235735867901765516157762675157825453767686460205838063046455414295831677371966729494425122741401705041750745066729529660293999363634854789640199027308727789677701436718034024161255406786377329100412501820928368942610574527791307448858718831888149605121688939437719987716171757127631186365930439331498180279203784713123532791813293955444822544991826957506675557912901930452604104336793446072581696092697558868717785967342038804554717747216672789381847689339621771538443699102421315469396699051464743292135884180240836816767769622953459711322490950823401294877026898254117733341847606264209545295486905850231778618103200146217845031201517765769044374845367213744289617100573559458899152265170207298708630808303536973618509616876320537170945120709805635689237646468823091751437355469678129782717506518461415027324463465483854764186119677530889010482028239162214570930093914984169326875361563175730756889695108362648221200159138173552354725438782763926601009262453406734831453616971401051262262732484301006201598281473716886447985992068541347150697954859859370559811752211767165032117220423458144372588281229858770028707651127477030797089545092896556411605806021864867363476002457187733855940391333336673638034075475103285123232269520251487976955684790980321918383304994367989565952925244004435262214807916986728072354452491168632666406906543771722846082539333733385425335078180534620860198169705172558613907454595619779800498201343815371627596980727413232271719982117865981840959401042516238527718613773602196251201851577695432126093277552244036546894930546681954979201874878249928413095569442918054631649843007565946733726481316901348376115618900245460052862249540428385340430483851898955793722478229376203922397284432875748783429546532752985170019695319062181583500095736568353037221533449764789305314501573962620114622284599606161477529049282160489590380186733849906182303733840583219970161659295143200815831833437294280212869648565806745973949517859512552032651279161841638656387552542081705670304994471273415823273618024203263289177046035556234891235213254818291938910977042017135918649875092031026950155118760229834037031285669044834862971684921866977964114425529060849281386453909554103089589432688620843266070988526451780434258799880166874620806627887167757734331193518600093858771581363399654029418536189812602788100563643539781052775424002308620368208445901808618659317119555862489722378324594115684859817851627209667629114523587410005119827367027079201311335136022820241861061270177664472846772908911460263254895276737371820699015203102331646170175035827724319812696632839168707834000949869103724900279160673728431760361964930101775608596732766798574818240648285651305703266970203036475570273289502202273657292851656290834291091940672658064699781879106199746368368446527425854052277470236974655315292641902638664541492088962697719731056471437703395427955472208302457204203526047641908594475954197651783672602961941360177442873719956708179547317635316209803569935506627262259926378071389150044907722566786175719491141960559969070075744763102334811396500531982126496454504193597235963102576607437376693825929456335625672730425253631909880479974686851882006297656117474347681076758160828091044241364162030326092117282105646207919197003564306403576424554736953769819681045777828093343180561726481692672517605285607340411824152182672810641191165933841414294647643420742793497768897977290371596204696374180779078499335155645363973457372035037504405757033348803936962107410021537541909756111480542057741201940499594790801019073630634494542380375605654240162909940057680664415342076209055763981001835164988950616532300543771425214016356189828443016941019112487298523863686468578077863975745855347527967975296331313317706344447035433306091048177020583448647282919160020683249267525675895811772142196148721397028738160462678778739238645483975369908970894118950792269043024026891081501647090141002157188888288035815295674228614248352961397280694678045488767648009367833307880322634070302155973459912972065884207801966411834093769475640646514154483914006576685974890180212169011476233674006862527954456293079601019949358523656945544577283666003702142830172491777772908700573755720385376570789201095377032774062100777259500754267999465332758523815763413659756001521989982194506415008004590935038040893876261948174939358877677582202797519247114567435174123465640663872651465159890612088628969532911668907425704947151151360075378658221732426971157240501190286184502701116216523890229798323275918309781766170025386287743641840402968272115602807729893795129219653665131211447667004053285316627304804080578864757041941155768988081541248395388314501577539972560973884259398558839592007721489787369703009022286021662013598627837508935213213871173543393104866395031842955610648919848091024744785814105641541335138244420982919080548563756958629983534446930492170652522171919626417352943249434650682455472506895745289713812247719653547125632762248401703816832860370067760038863649974203426349496520886681888964808182987048064648321161996678937819670530712834924827466960101842250597472915002087367852324548005682644650348071477386945783709498816486055179112713550694209271642595996486118229747190940124299342751791997183195163274457622018228902221725250983863944429516815741504822837889673942009940513720292600736148635245278486827301337755502863488058395657451866026113374398673971127717708290656975433832193468222099718711392135654520662202779207022532358130151293056360856622264804591749977999782944949423301033926891076849067291930945428160258162368912388460789429158134110969297222698038686657482363695905940923037442532344557886156319879378315913357515574141414570122494700360225129077916554433742098133102803088298251612974108244738943345279262569205772997459233594177936077916952821761380345946532189577878565882057636054105650954379255900143590254025615820575848446410339962465716877841423177993069664586566753005051469624170799507779358420452369692964946242395160243622946127800277475026665315823249426813803268501601550032599493092487946935303460515074474819542865763053843007215637054404325920251776216188770693767443098088231327708499670633188004228287279256827124174619324685752023999090605215874846082088644486212586263262666614890491705091316711584084266507562311374470142386526575889985413355511605678873367569118649568876458465395340834164961538935806801195981508454678697500553907900599195575933680946707881740402709880766575016675830354391374248362676659425434801900785572748877579046001006824969369672830504506664672061425319981747692917018020286842522600263625001687008462277016029179711359590927040943228377981866826409176816519629499750824736585726109428243230364353390257514760095113683169590477865691810660893999460466985223024923301872448098179113161094942996946464656471582204224217723777906594559604419229549042454786147500350514241853573145196230366005963465033266385677238351207201487017192554519828377644561002551812132109819963535418252302542031970236357083385319460625278720326760388118914956835335456519212179845123182468697915020914214124796213818466192590689608506962162953007994487848183494324185070624892235915050940049542481452188226354860468880304797586891292030723529610667457056570742513822925642681070838318891925710424747831578818425192653687084893833536856747515061640610508618926914362837135538865691031331770561950924421034021748644084275405004603821485645366978229311680728450191705317499014723716016326277731742926632447958133541105211820181365116540565335476173412600965539791362261008161268354774430916095338092801348862223518604202634435993571851742676208843860595457541885955647088312023853518226761457857896032499751476722579098400145447933346441200485988432162661717347950199236239798021625832724486300488767862551160551214308222671257375168473052959621712591276785213587684655729196972011858803262871318180237253990146960657014562291622410444211007731964849869645615447252695431350878066379941457071261348989631353725007616548995020802066581140407972828109759870130637638359344633050006404205790116410823526286418175032741691580958256181535963583636843587023484018568029114672263613323483840278982955769283703985738335353757069378735179522725451020041176160846872761071192874726765039483126187108887475137133971868685469192121872588764285465089896722642338435819006306414937235770281351825760377124345529277256033773306193718474721963447414824981033019662832120324833628725143080258410093200880041529446797665849429434035863831954260618913331386284102180151133497414947224549745318171897394675847066818717674911529376108598132870345270823157830432740404705910523591579240408916072490113012220898702304020980456112292277959137734184315993304404895622677037504314055475032408223812639872995822610828017883239320261932281418215735455707071189346616258713443746081578697934053319658458345721559723759667029599465174352134181621760705283440736575273202528532382970187360409802630339620129083933209668829048224087844685331936457242611764001495128619599545668290779826024752700953219663671289148643898461463609203094889573220977492979031059350008103467944669440857281431788372441682481107836171785729073429385864792960935651710140123165064126220147777880155669086510495534505261294625945244255099950942482426972746380680532603667753006464931766911629571937805945482745807316017586734699638605590231345031577231232779664876538161309928050626634083122435007739578973297865807689744576715331998206419278232929560973872797878803309732139874629337989098275785835327385590966588392922898112748249762459166612062353629145182565823994874474986962430031118462854129637159834123944644134970198418397338582674233451049156385799241649101415312437927658164136201821758458061660722750914636071428328986831665218238423086818264523358084320228600595417591786933018992154873739829384532948959264444388860293478419244533362933158147315785643557445692834663518882270042627114227397001446298310962037733361038433083903260825508703203314279995541492588909814361039394803409176483110118454086093883820441353439134041543073806081088878807373543223363629425318300226190738252635178712600749383027471324064311204623989307719205695966360122804590133680140947535094801090218023870045381201587960044798594848236607892881203022507813633568185188519634651018894848247630785654314869752817062361346170723441628091729835772911839186133478326840691443954446377818571511551541691987685727991746829538471979467871926227352131411596152755205431228317558476136892512912811870584842189013380424140101824589530269600930607785210544602551955342990742303476051531446426414970312622906626965973846642394775796804844465485618006720697119687756737949391565413340881906919436380146135997249741687742455559916238952931303251919755413178958007196395618323180144637971205765013520300479762167899518418183712005807032343228468052559844893509583025964371260603856288996627598758888109853736176213907692864356855202544573609356307475053785658503692882161098596093320139239290229179052650639188462474295794874585662164140188266429552368697850172659428053416454864149345748761082845339904093717112797597413907403157494794930303562266552610806099732228415396512943210980874099717864174239453760826895316125781368672592311170980522636766958939849142940639752043373365701219321594223908859270061806830174509891246401921998746106689971786132372614934908942236114924754501350918519783494217177661818247599295845932596645869502812924375152189098675857565414359332389822493783702735677497248961389370052953946281260107065320296343281299454468576570335639130113463387014890126001718073438118519264609402413234639373595572836538318017590487626345271269620633500094694784316192843018411125911973969540660012009158674576724823937807072896779114893695425094594539919858625654028426209744408154269098325427238989935671208351821638156331392266254461398866521211144417935172025498122626778049254063458737089326080306236593443483687278898093150567330250962651490820806151140943309012939788014867933391393177131925523331027001130876235922107533466728909837284823394038562120885451318806550867367706280003949499958982117659107697169801869274247185669253876186229224262133728270277288227106282002048137211781981057894860313258916823138127506653758783682414927670029209506618324575737587346212824330849027371222993100114193638825051065881989217542759779259336299691207399443998273471838487750480522401869111187058764424284820322334794416423401128630171259040178020533567453042228379849189912043385913436028465528572179759364120181556473204174355132473692589489268611746099480714021752957278554625461960169629258452290046999929251225487898789776162593802990530418248506412764128254457415251889735515882307688407352260615959365455141803974376056477859361513472330375031757293689710572105169173230994668750076566570870132666944002060152702230976217970256445580781581471315337287703224244480293939166852520358369753110994938489722125033221771502443701354620176670498038292601717520119713150801115729593818570927567383366055013831093933641014390065028861332524576159931581743152064511115009618071345249681026293233061528507924315706800315738847261007073131398394393074460186343333136736498311943611975509664569439226637876957012478317416613013484855948485664630251425592820236585946061388330978447443293848387340290677662276019151529753661447186188645726485343532784360263420027899770924511014774926160252421183184978025936628895699325341387202612014607695531610386143521817213117981657503458025189671350245777671476784341541175942025233127828804055395863014144752022531641653516313230016784223943820602351675636865593613104598394544865466458002478264406333905156408009576486644342900885543360163292606122022744522277082745255809757765936565394340305379466985129841939113371150666754280054260769591235897838875963543696454983283028097990252170588564459349399376852922020904399808184021919362133081039479382276560304179874289305140450414340494419963729356635755890904641177218254048743938305070735299313475428593895950344617820058633660773086165848783744661931780551700590698226289116217030025670961762376575128990455136012691730673890070454812599034212685357259242237862406023593827029692918942308154648295073344585039281624699450281051147975091717443834232848032275399982758543871464918212690404337743921230425764595962490692428073657989891528057258320342592076401258341584405007347216346933604840597081025069180868580811369517180948937878494714055923111693174004348268040492834046731925120746739285792098181261088986271100921499085446686520099401635565927070746964508959656099524163111955357825196866514056585658145525871919860408059448097831470443430568024229927727190252853633973946260976723725036393990572318900327765460692230855771748382725455130250869456496141413138611559799259902358571126108665012372927515543817719180942575892597473886968026226035292831952822999155684612943658932735032753404141536057726484731970297535654374221781290830511598377902240402383650352613727683838239636351854831283250454398877131928225609166078038575062304883649581167154193417468812990138554148313181740839910718406043979042943879042360061731499231160543357944652477641330053760033214997244453030943132325049202259497346811314335103993091953313248180590116053640990246288132843803548744126782907357233932760196961617340033493292257786828108186392142310959644210480782009967257743967454813295378076495395483160599781273150788075784047095708190328046128584125148045182441728826878962644353459436914617725251817590172555239922300704814738110141716647168308946325088483656546367163848268430411928009851276255319741611873356468112215258079292463233865628231888182206806018464981949366186441327462989798094232591401303273707450196482673936845080879945007921441456528665725291863675616407718152072820320076311377472253475438416599564597339373159769471176742758828782388839980933108850878346114055584293763957327261881512404853953385316420038826913755651375326751211332956709816284911857013542831767967673499212258681311253760525603994438985993631094346277762733346057673996111220606573436959722675055956930670793130362111384740872672240610124330128265486756094527722384644738971696817732386621621202630349226789198503640465783990816276434672108340113807056555245817202370041799158928288434970328431052630454604512105772097547778362190770550741738932070309758346460269418514890384917381553678627677266227871194310138285729629405316244985415465535339318827507479374303837881315061558591739072552716789016481557205038307503980672372984944883608012936677535725030993573053715357522939739051942709455073167124448110300778821550692917688015092370705189560017855763467042456341715902344817352471586704447900830475504559951058155444887612310535591284916928725643916100654748696587907038726182663556310075855732496841345697374653620636142787233316625175121541020894945926517445284954011901925421772305618980214347470012786152475075948042879338859602305210491950536451869112810156666061712842938585412598361968570527649088281813426768987809597536813352145192337988423424991753771756698403543590956739441183305570903777132428614578751222911231174283624626113302015322083756761761157029937654155978038582340205132904340452008263736443884434969815527925711270574056646214950264991356359845199353267460638024480804869052368730934154266758286033655559051012930841830078868076151855906101930800176119720916456060968890564896952913627862092112260919392794941883417618388458813304913272968332552879696928422137887835084853815743730550091379297550339199716530563102584372876269026736117696814696180481393286668888101931254270977451803918718458005869101351926185714748719102309313337948276950776520753177309205587813875446182593310458064256811787070004646559446250458630940051144251600963282841949130721408431491274265703730012457315781283576694188175563613490269761171167717054944160046412810631798877636540749890099931551060536497051205989652003927791817915188278507590609814911666461917162066417147049396845366395235353057214484144055227767957468123801203642477135325577067758003887719941083644026333812784661834762725466039980022736119747192048497605290194078932108119917568816931259028762575588415323917121149156047121180028087007175562185535643572129331479830726792000226638411330704949300622820220952681481656427950249047006119607245734648774895320452834629229417707804283549155771873394076103190623343763237266313784037247192544309529458333465862476335025840844201314664259401865224000473757594227035845849506632797102370960851101449632504072384137180758277176647962630547715830083218218801640633188259159389783955609865353549729012013565233758635920535088289596936197330889588453512930003446050111980775882090370429477782384059214500783673360389761139931833698659002023851007635961639342375874073628843697716379094074272358435212819500945082806641052642822463080568074464475127989936929897451226509447320780104426394508739178430536219012872636681818912363961587142194456498502786212506170650089561791408008614852545758888636934969375424972509971786707702238217800849561332649447766345949415506254185352470864225646301284835495808425690060541984532847942204891598555211852686388973640808347720650371626861294674471567426357700150123465790213076230286343446623408990278013940072050796516706285731914451771919307185728085281597919139368685297003038170761936295146569317186104177045208653920192737756536265149775573995193276087840474155631843144144987294313517227707834785789541035228297489485142691042013220657111240789666909245747606724234673456370659481189329642718494810287325133175469054166870580622854656153946709156322113933944012157522045643721689718866639896440508244394381997789496047789017396331953851694731378128573307076329113414527008725145524507491070872765337178526905459373539323095074948017690477163911721874624832363190014130876052389090761528893662435958870776970681074100491372157888772298540737564923182015779291233408050908351100299924463343885827410162353119455284448547532324938168515152120002934051995301572431470519347377503929157759582098015605190134499099681644935489231839586447042290016154600491784765362788293149681724013116970266079892039580036517665130402927227730480707882300685943979658823055455774126230229466628838177065709819334187496936288464601398773530919005531386272751576524482733987221643451839289927516577845317062601691805381342705732385521952612617233910281288091042933547642996251852308276126322956119079660656793833449447517553945353008225815506328815403563577893482949800484763564447529150685023656212550240818695469629813523413381328356854853142893280201223710405657574988838714500630062919416836820474375778312022729542755222126593592420461394332745788156417696565039871046672989469794533403982365510728279930075437790820083238268898778991784725668033551401996987471306185327884319154126821124933588886272544899107740299863220238956550435549611717704253526705756169594201076052724768119430358791800096674177833584160259979905771671187470613579437723419229779518943657175034203102216303474343950738544726942855925229384309035497514062727730533161127184146058423496893829110314821114930651688972986635630099518563729196401382563938776906418939898629330806889682672522596253631009167403317762890957008774073618463670095031868935706084433956107480869189451668532028453881520271904470737257336741133209483465411232497738342881715592314583799627091355337222087055030875397501271037263856164721630294719246647362912251355803092008138572455752220306022667140468637967118211443863799440844691292572787649968357966469020650695109970913574007243704100482012559001635184875195111908149839373130994344711191152044118842412377172881045669309906815388896309179493896477770747180668325900614119873355899788703191226810050495113175079228474716534390024370818083949732557529440631191187942124745559435219366368217604887303380397249904460667701023140327485996047280369392141639697808633931045031961872158343058228467714295828821456062205451711091829161423678428305242340784817088716358438900300331858249933847420245580007936906333666942123170173891745016527957548439433811732973537053108574607524403371103670734430583665099390836340599614063617978100636185893363986405593138413123084973118231203069784579749035478881350505716578514415485201722609833120665351071582151599836238725048130169958189157585524440075472711228871286321739660979603740187356316899788815204378116073909501185098295436568594490106036120543830529535364790712891725233739999929118963304759748071249635413670730263424181238389373770707755053560762866268039833862111231553745197184434519768928121947745738271140860944315201608021994591253581345290279973980134438272282732432933877986365873738468875532409650982229539721288849708415922364850590289927122771590094578764091176585596167454828920088205223227958174744928234345926659814450502106951240260030393162623050008593013780954285445066672068239119669415480118981743950112979885908207864013022427385765493929095547064892763971538892022290860623564657352508845364855063531195811218936185101911078775845644906058335230852528280559502612751199546920599187553485002404199924301050072669259709301860807787554713310335925195557774929883238352974595716753938263103267438802819021442063596911181548145225806613230429174806026410756457924251743740967329833435238922383006535398573919351636283574900600904121192628765222555250302913274585242752799658129766628173189102700788141284147911333977056695815066771181378882822838086819661976923389780445084224247148729164205533156605505739594759942487534114381349197187569557789485237758352226197982838255552276619944908037165876017778209325242266732602246803084849317037549618114353543219513426099344982989032090343224006999322962315754047798745218013262829047583077121925939897937157941695920860507200710243213665531389507180610719595065204097939322328627500570170098424972875631461306709172369427926901538534519439669562311361487511361568842127514759227025791233730990301047586329226982091587268348513638998255720180004650254977759319173562526912289224839658324837648695301452234063987487584967285571782901008789516106898476266557328215475863384511981398240032591816740691276482493160845373571885319002172111737128820130845085549706402676612479379055640598710417001406145167616875491684108883560740040576085984977825041389078667778433079100041849577255774454991772446505735965498847876033181567214442263372111454371266850563166960298277873417548839756514566460538827129426932537593228521101882108540291532610462382690167682026467780874585565350362493459070730165950966812467663276912543276696583675219134276970030568144923003156356643188057314326551747125191585691588793519522352734296714329704252045514434162322792473930037863589990941522079556986844493373383907645027916698055076788732261241597648313241549171201588470953946603925933731819438595599211802857914467059821861859039400055447975589690527012718913144231265103515358402382797187975188515976258449396259502253466039624778672417449841758570094387506773264159587869686779510300889487299986094115057190774237781767759705052789901293089455363817396538899652311501844291371505918619843183280234499978928634547922681436173721079951104843283070408405700103248487019559674877342923175508291310112139209599135881199660950361137199470700293885006774084922948856014873732030189238111568231086367068346823965729357103933572634520944411558808764909420993239219191649230887544737884760859765382443041561804239120538080837195507313036524172303617903862645652786368355370074417586121703867079041685044908264177637549840205291765143975183647803231547243357362883376176157046208681216275320425161340444648898523091352286784574236284683154999839635016676496100170047884579924902692591118489975064735589867841474622575321527868204705908195633304252310840614025329391349191262335521515830278822199172681759968115060555938651034052720234953514397804334012522476257631199288929560251579893135785297730040430217655988676376823094484476598745427861273883107224525461023086608970077390003629416741178386855676977690333025697903300935724219101783975314972515122982595775777136316571583925057710663907302711957498695367966059957953790992780612338132771744662789155507727546522498387128080327874498370764398712346187800691084900925037970116180527148286428972255197357445834836862046472929005252334979952439279950432250089926022336042864173688337994627290070505711808554119117333733915086546919487883799654432425034779557296321605520765686706444418894170010244216665566106058546962750886015510099860009375774367916743576234786335054090306913473154690750204015427395342287129504330507146526936402890532903075853043058674217751723872666866247363781316853654366455959414776485247334178628696707270307930642522339519824906217756893569862657308135056174564892624177491785559719071162001119283079949227433599297869543684340549565002977671598885668736490306172854719524057504641688322858269645687542900118523781511889891501702565754040074883322010965604277079752688759307602011624830078406483281696564766414531567593448812485651118407267515143077949222828284965764108750174578234090180898785543044067993872852510742653811009776144820482977148422469739367350021577824564088211869325643098926177648403246021756420645910023415245053237251576353065029132512182238249928014121156160508365537059469612502921975735523614283872997687933591617651078867330260302064346281863149437408506481569904198753188955359786739115389319385953425969024507948043541504924818550934957097174978142572498874179343507369862527035396441273281546688960586529517235494037072388539053916212046580098767003686335136444786670982578123286578216984852641458817179171852850286307298855772298452989661717294100209792185205909330695472748595682633973834040810423250331758494135633259458157423212965507855980909899753982189208368217209704919612654065186480800311651343387634698600234075171266006062089272994519665091538423700235443747744733117602465776016767972437341785626192626782049410127929930763627884353364134071704424477622870739143565213831754748225157667168658882131163600145239953532357376232807393240376483733710421116303743939193332594749023494987959492219136319735594931529448069291064619887417750312301495543416707394673613824117866479019461716519709234850502859082295690134569197471332555380668433963668351273161010981578335437595772491100589652619419901616107581815640277741147458041329159876842721248169724802568830128052332653440741643076246569682578515844375333300135593700786993705554195443277207488695193741353179392848331569542800058954754672990370681129686563739812644975863961386044610511243511707369696725024967419613824310606245217757766700477045000133529888798316114250922167300399582386291698890858593785549324642841054589904269372849787674995817237457411703960983330381045587210855204089319315259248531642120911969409366728652949238752249914453400687332418093641549138959529102935016271662692325555534124383328306683025281255502982202143945810782618096267669778543344611391932482304187999883168079765704549751611357449426988847231104278521373411441308107879870465905868910479493246129045274534742100383343524848551797915200723681896988590026024125114288088303712240487504736205121711559421871480663506214378333208990680852644133803626523981720404143646193612230743774559023133910434960573610209319010057902206537927963142590387061777771070958244953841194250073488320222566775246330435735039033934084302979701570015188239960131936540618398604362263439670424204421723994883500268911703850859716097031607044234063364200201815199112235715548529794598184317084912063093479365784407829702254599565980155490588286727433183156588866456722489067061066285306790494924194054232122656746426470747448598857312102569650939075095107914838525453502416916549165667155400278331793073432843071246317815534593330576114697954731321449464911593354775472936835314024177537957306300698753349184345845917873231893704573850308051202853440905227390102800357768466726149269231423960849545282605638649769888112573644725050334053624864923251061768551016399267987772506772328873334677561321251303954449728652293440911042755136284373478362255442390002593754845891966389422717963689794715199520484349924120311135714078165399165308871446059532269227249015731331393723840615833153323257493895786440635868237110025065998171384526105242052945850321138706747208194720662679868032663843338007503710075824266999700306422618530682949751213543188199059375384880677388310468741317495986789682317218169279105225029529860332292469226251460908139724106906903758302121859351392197235111437808358559248409899994679197338494739789907398523361730281081423310266639179804277564108287554689340509986645384317164604684236490152043014245938848841105588716775516214280138511312213621175542747625805825386183038094647565353651946913338101658920248112836157641654073893598289914153891603921999225405824718073260879163465565238134213141498900722565224067831060510605309971618690049939095325470821987515411469417355754558920935150195951870009044561612739734405876547458104817345218880172163189314207079552869950435696490930762690963782537977022491837980812982903778584785123072039314909714653239055837905586475356346316490688189940751269140196279031383611140380835573538015472766279042087063550664303930406184845118591011863608529032378657379326390318905929886994930465425682825271685779384892937226907692768455581903256498210273002673747746805789966112779456235961480618158979768446238325468191434283143277630168823536163057329945459464243636562515949330026433464656637391346017967676460567079560269440964327688232857097006412310856428861711808361048479344279111300493120500218528243342804919667229527638123532484826297057543002809580984288068577450074928562508506030516066963995739641810874660137697815129000699391798580693728277800381701254164402058298287056074706911421098923036898752362743195209053391451210472820609689092793259699910720251079134701378780107255027206146978638263155714333735739140529958162593106051384454355782153543415915242546595928580977162184131090022984404639449510729387023548231638243041997542486143914943504063309557231474976458283430752989183167594122544842826181426579425135738171963986097011408020049121113427815742409152131299572095897550147072557352879749561907873563957539672646583117511680577065262912420562707089969208875500393785164431824454622912876002934222345181970830737034025704095296608092847159443923469256171933371830531578972807745432249013602866988326650724638363657698698205389066303225722844337716786477483012723144343320276761057031677552572322544903133484644248797994907567364878824667928234528968238664730503999779700903811187318107384580181430620011502047251336779693628783881339858779734075730319578586250942792748217256126170522047454911857579155877561466727390191423695400145791278631293112340134400488783141325545282924032259511116269499221937192369486955232947868596030383944576886836509442982999647738841697025406682203465736426040774238696111403383134013354471794676885734982411445254431273872832027300122470374870663928760353469227322150133153496159414811489601402123961141351844938987054398947577182770486850894704549621329691652718571055871049953310430963317090985768281229021160550074191838834578579972628480387674199719261701810813520469706387703304564009744637520815629367730110266138989887628397258683639498766397599833916659719271316864617228222975346953441745952083339963251402607363002422241614723162686993961331348316000340520922826932657888530920416394384019577419189152775217140686153748435830804954346500629818025632239900089191041034018065028670989669750629785083528477535614723221770137014933103335473705436636226957286481616410310248554314336260441612295589696392632755307061793946531882285343232064327651602456588095554449501361498446281751082374761569114125197023619308706927682451454899020956773194178342408518712728895999708531134230328779246643866403360454410977030076205979888418169191539077808312019260687481457249130429742030012825183421651897654762225600000001460889864048642901067395194373466339040224051583668679464061480499522028890088565884605370921498046615767367630420971454526383472674239508696343510105223802295300540439652457664362087005626525538285250601500228778940943412078885776942485748585401095234397905516741635908338963198728608439677151951257174933612040437767990583066073919493985984450877705843031520279187005039567535900920907528275282482106967635894665966024511501600946874039905733280842672236260639601063366610724867189766510611711429066743549453839790977720331625066175027867194296377683664178642740163084886220910915930458143013795811830540426428696783033179381013255028100669737176117892073114215826323389052975967026871953295229997623109655750409947086905685126336050783769423678912408211028762883755725460232927268887327265611913882005636124706394676526051601571434614349157659849699998768620646319765776473907145911788371925902897816151140232144931167181753485098727165792754886212154294463481709086936523810087439939100525133866906299433267749890825909207447481369785425527947799198290181405923477525697473495609880885015292635652356071784132666897392716696119250305133171130271290290990810733303194518596048818065294186472708814882820130690466167910413404874935883672263340957731588107350125896272352227783669920823411896043181795979710289926932780963808253638077255881394962415553431708168964653201488903757076608602424399046386810440901198821072020215555220817015971684994686433656545361921808386941558013594105042864849728656121845093436480847347019924782963676413922264941083419412918874384926212962536208739079107395273967844861017976289949407985462581672711684689991509782334614530175804299606233805849926124506571828176511413218203368988740940122357739789195620669431028109433459271865284798753744535857024389801258176591836516846640560338240803341452162618452470768496288243126000373200817692992962729746270369548688334521546905910810449012561645565663951827705007591043558663865486829268404002184508101887186117760635680582724587896526673284629040319885575708711617741440112227681475132905554487557810983086033297552838876676826195484951410850079062018984041580890950557006688945923873061741256747579008636903845504420978019478983919882820177865496363811801038677152372522395747032578185649717800265803767379464666806402571505712370429942529119995712132074318238095046559775081747941606876327617694280792142773833370205450435103957422958709881230859337050818101819456007102349953183997458421263311357919775871536513710238356756907268678455736985787867690647039682357099978986502477687543849901352820866198610062403202652393145122481202024553835308504730232132757848216907375611204109896011552701233601318175401444880896602320752579200805028165820535093717317217453802046737251314736635914072831543787538721724513204531692931497175755407623020843819243775877420238169361200528882437367653732557183654839942081810488374978926799370358389302184425579922685824901377665623738777829418321139502607331698996646130524441022816771284773390493492829407258948652439658262469041216445457032791457597493212928390768127524587811574304957886062525862902301637750180727991795618163857429832786990692645120312908583669012859494661197147343413757244521431283983854828613688124741277166254854819324474847839016117105147014692700087870314405901920153628561066070320579438228527310351462540082698605205689003702976979423352543772235009131998343892676642669789297237750861170062841412174473544029385155592287948569745644130265058802618054141610052481649816609621929477048375954806859958855496035088057232761459834617487022073378638706178036407489896430225875689007920293151703183888202666260076245941496008497855261235843678830988583036236633495523353608250004988394495988599787769060981455320666047571466718231760937620907854945913598814263861657236024943504985862022677768576835563584888115101563901179149514767375872480101430671421994372059755760046527950172141875655084532906348199602606444201241557113600858721493520631670031465865052058596562451421443697279118862056105349257672590076525775315705118596474242116498743323232055829889673051083497112428767072849086362787103390344364015976805551149291703854524856387038597950507450002021174263101387468971017514163533649925586419462482716623417905248916520687849495748206148120891578212456809420395540655844525195663393484965314824763581049102400771421367793396585516084409147637996252254225038529602775808122217491906667217619838423150246941659976230591988694321186256869303625004497692537373247641558820237277524720608454687513571679835019945743815534931378213268216405278869629913895996162266053384274258544226780239065556174966264654968051409903297060065850702235971105097019307797096958700408420835787896127638888979609385436359109000944437546331936810314786496569123308057485634592017441327265679526605471511791595007453687899240831731631995661846406916070032161390585892891693373556985120741221112014486710502180590608567696612761879562493181708616130283841876139001070091332430521714277230568112428732793326879043628856205874159129276265877086882159717172912079254899542024292913763823528114021718559171556778816255074545956010215436336846635625868329996761485095594924247234210585402003336961902826703133116836165857866076979461195743514694855744226309457540162114831984894987869697613767704317710671926731800325984689450117718365025416954327136919586913355513312724527249933171723897324631585502794179950208625113186481816885724878429555160618671396810644244680540406221727240323971006876680687814865480984310664717209081526561755825561204879921798761102727559570914383094217209927107285266126719297649498765426545357972083304876730852239490565980958355575497221290507607975279526919216766286872471599419595976342401852425826960819849380671375582790717466139182290725280168022655446946395983208102174170116319125292618152946609228154669297439649712258190207543165310264752655815686051949468523151914526910127844034514609134830521216417890355992743323212384229979527864060271421723997026568597524780399759336205691246166029794444618113603934167618019394508542932002695711093677436624153346535396636329630874868272793708472902561923015053712989776031966487601338937184278048758410047572361561623722633875932573255093389935180016867823374465133947167338818706386709001547766062586523616926159931606226059252938414678357343782903717387584323130140691325598755415891382431261595937758780915414806395953123944973147577743152045288899983744158563794818130788094892319876038743644908418009036276426953358825563530729135332570943742562742307269079906046029634541916305859832733771613577903369962663309556905750401373311479692692706468596943580577493233403668365583556504549627363310660829000200944848744433382238723635302925692301973425973677351927196842659529507477617029218318249037332745622984722322868140567739226668490535946104687861640783297374331442215946207956562097276603586174136016845774567572776595764500761757429140619756769739104660977245988886733076274631728146103608674510208655220026445458133053608716535381326625974065824860447209971498378963087548269887642590730209445423245518143005270545494824004189067135482666450520697911402665960748178184090365854347078476920765024460110278094519439485874604212720453382563965187020422461992440664186031323487557077071079559708746917554427722296075815897776383594972634144400917940934861843437805822931885076578295478018495049527880653259102486563720762941765750018333285765777337797317879137917192049607438917898001926707726938909774650503763499614759524632926384262877642827466451207164021955313130562167949801206264557920851554714904130321237098974357036962187716391389597383991416898932421968882816149507556149137762405996805747254172775870110011578550174032780792201049838138160913496360540941861105335328665057361747069148455110211058120390477301214552303244244515857563447268580581328376128284267090512779268982831723652369317439106663876875565710106919526443729234782482059026938320448838884479360743699142959972621548346466217389072906831004300001902080305855660093552992289918375194152125517201506883763554374873568277537493523757606383042596889401581709370156267762942408284629392882322853296311414351759054086728537881217160188056424840997464916789167902344259226040995241893421209108754604799430459255046589588881900816690127469333599425986733597338272740909770522941600006171610759771729918657991563453227981617564290033604748702396574102278565673644145195579467875609619758767611227213068162888649460357713453138282656031826206761783226598800688360569307149620538661813489116378981994476619164156922601400057320114241330834033902940242364478047174120768699282524797333067402983542587433088480444724815563480789669476351718800643719614486163479395483316440614284374517463819891173559227454307999227702197972842372334884323779251537545477149399378179550156744631843993973680208607878876711143180058371002376672125793142866310531826374133650398956974529845001416036593918436910828380728739553545221522566471879327566381564764422504895367774940855937355980186032551974466000068092509813347408141820263574173931994256142543823609478851187456080868619771975916372544341019273397398708740336824800289777779892028923228261393355232338666230551621290887831096222096064269991253309998114900471416480365828944477053412517368208706691996040495791998605685473417469481436701033410011971433178003291187785781225480532503037454782219142736818928773140283790046995687043437641327350862046746648313813551329427980318765741293185635196081693336953250823190413858858838596845108869144398792193475000780399620063499880646481950250162833034747921345300001925441622992641412077048322293498895663127724521266855181946288577261514636020408023760903741787881083409662909511764965436283821322262151301855826625877344932219897714242927697206587535791548022667057089189166686138252315922617578266307753435717721296295814098181302229843509012393201365990346832734275908837766005344581745693264248974629682249519402092146905349872451755394496617995899242870782740119427981017671932768368552071997444848572624485881984406872604035670523869304064803064319405226446998976719060785886024875987726743532633012255429402733448109577772707547018439680598330741257967297067966905043552923887273498451868191102514329520527182832441437051879479973941817946641505055913152676163683471285900320945681364282780096100174121564434064562161613600484956663564599257159810772233850788154320252542888801529912144304742944069630728642566008055298245401026977227621148259830242024721626871335664511475279918487826765250394706300814780858012472026665315236229821332989847776305423756630453140067739441367204239469469873017953089391330740046201543299044453790633275152052227065143783480386524594456032640111606814549364761910878268092787546085555435401189117724998125966875921653547567664604014659018793836848799127567048113658550885882987512420488625681038099232734228224714140552349541251190057763225898908584778480443755824225521616846858868271915956343475021466117251430190955050647003096204860471480721515339332177397092585316257853097759853483435424508975811710082222685721496707531144289003557381635907200898741660783866818804607986570768119363257215904958238978935579375340866494695942680867748677271258715912727681343888630091929676305836871488250939451748944198334657287811107464056783057103669341226435052218412283303137450417932906015809785933201369800134435622061121400095814689283933522705910368715639480755740777616545693983030127109182402526609718166580113055117678814297141899556869750930272828456936172843185810123550356602995859871893896639682136556702561119515669070860069433958704565867797272842086554280540281737547245231889073042020334077353646670529474339371776269200939856525390181811342223576525844867011188451120931262804879535701747656638172267434052343141216158434889022021760560237518100277572848289368898773913222180605030871544554112332943931223770160512095258770971748175154502801049907739772961561297652006775039731138261267485803997312699701783853953638552804062334240028597003488695955722662918294639949787267563669901717726256340512351173192257808766162261195493791704989138892915826681042985685983367853744602873640878863604482121782861490669676413280852307336714065165404509673093079107312177706256215214169519758901801502206759700195928728661690403818800360386439401211285428110620242418452663387761625189347412083466652866566364260798445202187785339635328736344704509405792283642486099788174585302867476743165448316241912317636674369565562446019750099049012943926362588718123625130302795333167958155100145531325513605502044714874162386862437275452422985395063002888404272850288679713876490463089037586570794468329926568769872024315441485244825692029993442322704741787385463526975664055209130723385455581763172975046826018247699207716431098611897732645109103389624791016475970646850411897634171399814000776618076648086318085944203202602020173608022582332247009515418232793989414332062493325317300804945076017118730676737357083751591961564486033602457268434833093688702508923940703502844019612312785865310343756095517706336106112447006921371421014040366325120005900102680405115079391856551666210853781086691043505286213573673550494629657045803476615928323593636863795571893273826840733142148634244204144058105155320400177549294265750862491576612946738199036919763490172599254396447232214942198253194341134040009839874566111577788907012020297366815619104616841704133301450849596883935138345535684722356875651250568935659948011223536112422447774828709325753257173955949059904603637482906284961169134946799797334650739375402030256255349000627606311593663687499724608229396594719717515693637635226671914859566202461035193626929458445326310821625105962202114081636653547429015874535734168798729467036001285315247467120315418560247517827570770387190856532987400357808365807392169203752451631548463088983743867462152625781181989654954256383705505208458947034914424529169441615763007864187346949377696192365619680324641275704688440452377466603588549642970682667329129920512236666817966520859515958927428411355313024856204724233258311532231128521949623544941966533431749493304113039525343788748274336875878005752671180134714478076642004141498979813411524255268322690570228387421036095023971907079199868706331884292904455040348448798591045110748025579164110435395416092863148130890575899589732364012321982613606352469820731644955785783730410349896589150896946695727684509572757218721384234365956039807338808744383763823824986848359511771621453401266457416944144024168875566664685448245889058231093939726621343988610575437057725658941425244567611664073888646193352469709484949056205066204062474130492866360591371774531534411613184277451786291392435724367419129381985965592870002959754030755896472428653795026777284826948402564766324097214317946029674333499552755494142203041429886715392339886736260143123390727758620113554299796180628346033717330011327021971760832392936812745033794086874380413391243761733139757135486005424413002323180965670934945985198355494965488522065044613559855021219585787657240535887391688611022624678637434357683365773808384550738715510958505213344148755525601031123634910441332711194061621002785807342349364526791257763765324576901209354547902143531480658418557562045863704427592251644913570902838051314374705509015454695378647707547928505984744018342749805468591871617180153960451084840131349996356558019531282070999138372264524109173718007913753429706691538671284006209458869248820941131334301332876523194169604831702587594592462063810381691609758388170745363236908215906035230339312225341695581729861335459890615708037212902269582926708396171498601852698584643665548456971302999950660873434383946446805834257405460287840378846126964003922519145966273891761965930999693043953496355158359593160401059549058833655578880834679238699285880969725060830104845164706046383744890249518290361133475617670465554418553569194576285978828017770555611104621100204078581596676776825616820666214357143740534871198022067130406402662265028880185111519533516656724440902627386134481898954808465737745796668638028112774103281571633527550526215773943822327232882603004196684675307074848854861356004453068643812328546838280581165736517787174866152417308823506403868901119805161024329873143782915418416478534883241750965533453144047830030631581309935014473847387073680872818621954422182946502974635448887953901722151395552410416647646207785547152319194627882746405501988754745713048312056318783018511025067983255698823381891483669373434948146324132619180330317691187024759051938546525102934574977691548287229856356913092916470935595520309361964774923038526063956309874875358733897284603614862303744706681484805360269571589242997992139671129293860267911680047227347201105124944216719835456646850554293662039275325471821129989538053497896213346044015459953912047229630360204542827628790516131711558572417753428748768611133352670702158321826710683137791509937463418305100641866866625021539182678146439567240322963242063975844647677018205308159844704245313962017419054769600333328234859251740033523816730136048855246249388408932221266272751022583331099038272307599422698036183273789334283482256199682700235390767821717649284592454054380564332784956877915479898956598540715134257198162009596892322946382522240376079976252307155698347032697166731897957740213406080764578828598751388560177703417804384997842233497795917856691157755943244736667921971620841515423559026874654542007035140363399568726387383721499247562791571755866999888741682951918632520963763236567987517638384724417692272778002975812662040171625136256650387560069534641763369529613843584503734592159561404645843144895312521182299784048095514276808161813677821675964040707935956890078331590904898917166899788670587494193794462713505011895242986054807873250934814510498089012610790488634821436201968797175554579158181458084903227147756767228181139106788861431327787181133322265456287594522079830881696522396450191040778454660388555673523707868342516516048295500027955998808380277348959288641669991601969928471868403478594641414640627326955113821715767144244673117241938959515697602029767206368244638685039478593551619698719813957155612641037081042880768442434022956874227311391567787245502454414793567461691528512259460877694479324683815554417850436439233223611500364707003188476663957699311640007063419675535131423977974000598852149567725602479290705864541411449177504134770407326395278560547184862209808501903521036979735075045229518509587597414487765260428820153172037490658182900424116846798690693991988445876567644466976095141232380263618569763042364927087548009512750587692551998919117614661925419404248746722267133349975510831059396278631719364715490295927485894684182603260297387282670099519721341363140295857888803715830143556655921084861028583763160029586734972799597290377022051840061791522894350096135850917725725863422625926887054132403740268885542220398469639167276233232850276364654057397620730334831473232502383800303709765760415239781034100680910402958744589515432274163702096543776975849695903859083629091777719565733796042037824890979333007897647990653421562306248327115194037028417921951696033302221665132988363874638384114341120877288913628965748792956870479261824073022036337856562377272539544483703683381028036298751889077293489381476979042188163794873738775649385375034335939907033315531972597043487098887489380400162710992814327413555545536266415010092149136893267067050448889423178024006033952313962524672028829350312648377614644610345058900610420991111852479634017908095757827404777685948746226690720104268938834036841466645291209161505204994044115488597433916255580752020808462211607552955594581551860961206849467943548369039992963566109353856526145502574512446683580539907047681756928520652508596113613448315559112075554149644685889371110979478312877083761544612099163029199056312353231336797174925024408454321125319222114252069261364577234810673402676437700595121108979692115109530887295620433345780949257529449617560346729979732400585004279903305514213540199662585463461397416951199117296240723664174997199186084416503311356308034901237280212295890114826334593909467082488918125484093966934361520691227881721893637711504348073446437827730423962736684695758074229102865640934340602392601388698089268974434215354934430976147221487453008225105771346161498289197580114540100963382678827637527131050565949215756118550497762419862999860627460885748672974113842581839772161451207996498667837873636265451818865416516411110828452947415254486554064061464126516519184424778593711556724240046164140011470928761590829061246081291462336783806144491200777338953343543869314300547486983948620763120611346127007641040732323690468103642155138036199067999256454139183884873824211572692327755337739639145244368737748481312326678370153142855895950299692175665726397067887036980347775747291517079089958465812982688650966056279347570152311881522304762436664446052900668994788425488085538068663392265100370220942334106979883357800606929734678738298072680225040982541692564329551293159816512208344342856814748001820337569635246287028915388404689445625020546013437000173125048831561004162829083126537157547108954426113665754254132182603569968213036131889722249402792976219211134746273382358189259340749211453918480465818345101656708861889899784407374005133106419507317894729579784648601869982863453604414798125447814859480145734553057788710500107988834219887936131606180771035221768951127904140533292762821192940653981767929803651386166627048648576251187998488061166318343550785409272132926915007630221944205517310656012128087444570660031745421951600883428400690742466069375852243993077558841554008236068731230559955610037744200734921843123446320813042183798048742892331418053682228071226971009306621972361323440101011387347127542676568311512396298707594861215635568145206245332745078110142356432937238810638974188054720545149874873877613099061977549883051103809072761981660272118151176681491072230580806841475442448780686963927715018700018891887635267453624570573982381761746787618577343852268886418353828856949253343733858973348400727546139380569317176572978955340790331117433487180118840478927436033182235123728863736260039941782670263967866261417113750314116290492858041330774343803716573049146909823611671720770885794978483119615425309167109725720932192620767106792732198871825923702561764170936599398194384220389262579650337494545316073439816636973270851304206073952963386020701475511725670093210267266845254713889691883233838088063621819534376238320918167129692692579265069586443932893506370569243801255167524413598334658827975556239613393301096510277006337737463765688193879032883925309990843656392604945144617563907599230529359200294519540692840843417615288350838495467837366073237698706559129831097786634637755992827868957774927648697060455020591946727966273245417163036539884936040989448223043310758596358494392702947157808053452596138338834025322211750805153801605203523677065385828824972886240187867849863425519440626782123035909293532002622049222818095481184164507460620592619454713761665825652257755076057311850087620889129553096971191610314074018464941261254578200569081878311455011610708882332679840146923960670660226398019598017844577096064805229254212774078533294852764635054083890586889528108184211548073022390195777829819044700943358049419363735890273693978929152267140512292632804107563703064462703820804375638310507355464849020329404204436295570361690597095310398703741457512757749119141337795153437582026440238724858666506824818907273773939821117144751319171318015306956199087488189763702543188015910362259998112299637856267804015884436701049810466857250515282769745335042849936122731991310089868891178696849015377904887300979727787014853958089177150107563873867049512487334288945710523308157876750215747071527321988049867398627189319776879827656185481604490826289801668582235799777166681944334493650966253975758033300918073286680431956883105203456127546795467869833008833630134867895038561977582024714239380599350843239348376210089017471378858394873811638958945867760340458509357695960106744998416462406412137404038731204966875949700732198556850633782482030331936735405192358696882297990806404840650916141833275431277267716836261352521564157485449917093565668505538824767300918595120071327188088811828585663872694109875240758121257637430853258375870886690328680335603254186015613345994341237145981831648380154930493563509774284098184396479595391804915733158730698467747998802127407059486286437934511454503484254954501121060038961034999216728271324464667878127203923818837311555682670220223299205358204516151555977234278291719259870361075100655836062682944150973438947953829471401371648827363459298569551246508541408444223235720093150793704369976747583618209253257799263362503375434634080151170360224265966347237361309887495007271908208505969540155461140122119889582168044395472353204965747372634892023061054344586001370496566668374480469675907323248766584898462640147738205882395431556753579438155984292574620485876268595687800918476503570541254188986752190050374205036001976278145548552560347172887368166672785874023986696137340707725881072277104447060292404706184962270823120599952111090696987240998560853809360690122836071822213162706738688247402124364465017136190657906319409912404149964341472506295349194241132260223071480002687657227998688066689378656349437086577026380995164512412056484545558846146070652958367365881693481696477206735545265313176971639769358023926477372299113955362914198326756816759008275555339655978152350456112544574044058361988795189988436045353813884946234687611359741943344927505436686760195756227795284615565863280858090906467007408035294098818997420278376914563120065144825751802685079331941079081007489613684406116345860736496701657787525226900431055862876062008198158524010066318342561528249103226620413169991112763650281814262676852353533312996759945466662285975175926630953799708260100765013744981949624702336957333026401896418768150564648476565441148607748270342250820050244446610621037430556266030302204193910497759763945107917212113528147764488576620589120351237688614094702881178562792228314940027065591512413981816319700690413949108693302022522465788209374342498035593367958069126365294540508635819167516713035659245701311858213186089690273584587616681717208932511864752429515458393268245550356164734555790880187364623267518358885373270202641791108762913054178765357600647537411730694050091964269389063794903828627451445358228207712906093196134918588269317031033171703707367189734022866596127509838497264790867880127233858288740984005653675339568742952436125840804639333590741704040166523739028063391807214536077347026157036637601870344455430257780534805103649306161555360768943615282148802971043784988659351757519367250338724818942356992276153138380226317850458046657845277039092394982216608967482306838791545329419078360838413645456775768954089030165913837969953357254386725920923059628385927228372577442252757392566223697094758136142946878476111658752352599447029809216517760508868289979632299574185669296208241088358897443473548591980546599191801187038377136298554172255652380042929628579638727641404112478026089682536914571068287651612762135212100055318411848196920784651244563369115403187121444847415369802305449071808637857357543782448662793820702996040500840790150071463764388747730060402000697545340571320456999548132090726700816667971992084434662014683078037115448054203599216828440651933952859328876860226347908969465216353400285491757511284916113207407706668247170279729757684690912180571585875816771547656162124764923987796724498746798708645592105210998743679744593668077683051952290470441425120073473511855152860959506536394888618122406578919586301816985641437787452771642813996116651803961796587004526747970907910264146889426390541719693159560173344919356094774747431009965184470038738273318073113119727213430757894026343625660835720100603790098136437549024378673684642669203877011688026455214952145494306307682037785239160934588728057340407532654345712225357171693555337486046384543564083658203846632047698154752936617062165695898076052433522354524112665253847733861417311232315737033417646850619653613743786562423777390456820808903946580657328646229901958696378176167974872750850661955134095996539393960627809360740792153511235112880711506889543595153942931195897202729638135150214782178612534964958127045735610361683209216284111186389996846406188596194321436178372078254142936509022745667509454956553818622600906192512763169407825250956453711506509568818882070343261479839754260823921585316352188549143464711318461319232423361295051690697482746920937595948624557738279091122059548010766519213915974758905689503483971195718458341507727056518735466279190802809708520345978037297591517627033533798187018980901612687076009063612917024741054805214430720027144080922706413248038660978877107126751596140253002569679789527986403595709983812464669294988706112843209461523170532798104296067033915082641254717937704247672343748271250958785503407813145586738293199473107803706813340893242407553746508507506150117169334287782999755049832380721648289944200480637273111443863503191905791896955825406562801027155961850060320739051011929658660248177173319234390276583874165614259122252085522408655139767599239670676141980466404942950244497177112112699561302905698466531359877264167732453256605022292084663786893969186253973136679727971828553556430225717726766319515880067835672517494960859384927336123471022237678260878881214981908838688526319312041471013060535269167173370585145166183427676966858719913738375925921033299832784226972581529645416602606227462424389227893129614949497877084304067483228609414946089570016967879516642776367799833113383457560805167346075367311031322994978867356274941720743812279742006065440740204435067352261069496643611433293405593231675602574949661487249979566193734126970637710117970787488997397285065315342115505683581794657093873157016517960519996067852582065925669582281280320057999488683859697165043645599491689394143263253100032600142056865339918530158656755196061756273599954834479957467395688030373829313591375167599924090026601292509515749757685691985815118195954111196538651692650167163311387861846475614032038795358924254901436530028584019502407831219357857239159595999527235015436713323917002443879473641589657843581034022575404465914928048739615560204914573360054504204388493536907356958815625672237267352056366646813763749499488053799594264279503408926509225999029953870908847687916553752400644642420612898005390743101465823796078565958116457204939180740168501785609611769435918821795660173116529501916999428337530781028354092091060500570192739881459763561693471874383783052374690657472111049705607008613424255938187457725559318117593382510296520884281575451373233691681571348587061134277780766742003331762869775871461046900939089789049533005568450929038153875648417599018302472513386603446094159285174642843594268884191723905221704053321030537782882761442590357639126845442878710799384578756269728242751237828285271432371188334772946188349993781098217363052528503791802474277155714935208512801315617489017260047089825173642583873326593234149037082802240696516158529083131181334845397076731341744613043996775608617993312595380811777831899236697947136065118451073519867323322365598649488689208931869133718933730336944984655642251570846374130121835098752831634825867620737379794394923749757790452039590216507890668703886790435297697250759212313831520080655908188848948207063200314950987452830167856578231333712189986460854530339550196737347692674129204015674852394186015390379292206804267755435894737540668591289115878554860344058797596428692362296315458273124471792104432119527662397493929441510582670016967596103138851083680081413224933468548304335199974834586480201008399024116742383970251448073336650023768226476420335302913448236744527863305039702350143099447286542711933261894990459481429559574064745221544106436584378699993664374377951696747190327951187563556978030443941287468003540559617903387232548842081651227300661814745881343383802116128397981359228407729358612617389428304148283730032249549372944511592981128813795882655395765311086575012438456444100816247377919508216300207958579454747117258068660536263637603533340220661500800143314420404967590056590032774415677988883661849437831810864848492406763625155252132704783288853497138951567616919270356865215852239449335313393368063146407870363180013967554038431044099803679471843353346297613412517808680120044112037636359001992010602617642847700146229508860310486719677509777179337218309308876917448135483921191289480106556682044197548556786796162666444837576623286419384407658468518646812511648100971052162905107922090552835849963138153274342965128617994915802694497234693824011081553761065361547604747408042508358374399352982260215648837187191577979034288543527206398057856813139509051160784917920557318767609502400059882896043911617945244460421517281108908964551507535109299968961587212086761803424922257394081561583514092814799942417994989448145898091661933494317634414958185171282588514863035674903714889135877777983272330425596811904586778687059170020944501814994631450283507191001205505352163580660003334662772796938412127311654220762928925482982465209893029596416693979572080618374461978191947672454770513037821808819083963387047472298919509375101957128298348644496077516812534569578224291040787809198847076217088836116528013801114015779030738460447527916202320084822794232637643721921113466621925748892197158220544760960670095912965254604190193203063247958522768608464436210959389544449874757526492661997741084386788473803831164161143353246328662283730835342701346817151669294868189291994609235207958334918952671082717664962527020551904071517968480894912231844380869965611169397904195512736868123436003532280227571234323096908177854678112036671590919162084131658867924188709546403233168296156228130751842584191193135372022688637912750312949769242497287486321655466070356983431430908001795119407411120868838699314161966554064122396559005371846300788738959353235491210103200864027013870257815801327868502247499271582515450971882881426136599836897283187761992359588819161943016983610374942447938391282806135060433335422248465732802168747160407237167597554382567173228077455917765749365784714937345673576316941164210602333206172457296342546579274152838110005500778154475680153097794359326652039099831612866318517482767574589843438260118820511463372973192442216827880823481247371029049212874539540290139757016124203361630138278438266955631258060932025079786047472849515959967426077067304488660073101992671983439471492522765962231296550677404052224015158996042236231545178555918493762752090698030553261017158862727202277023816390617780164066173174762400703875538164857683783863493104686914604317101438264744962588133081501748646386257605887769362744249424890492251366599414008903985129695176125529000587310269095533509132724816733033436399787708819233319900075945294296264148444826859159274300951190621314282313638359647684382128922111104201569223143104162096834151580026190616045258659805571105995616497313696590987826771350082039550270288161422481310350705300076546534378366704304320434555429519775528125119216685520275835533005124534312324060732509337079486565353610096889150309460320182262563454483626616279555182885614231020379698641588843520989648729200969918351184304374849089299964263463994545838604541745011676646857690698257147508859381729941326231159957782897227979556577927234843810519922430496557732898403526665199976183189423888787029533626917573691755661565928941406942966434801312858798367779386764108125129166586174857093927495218573328757077243037871782582671569587218702123427688963480503127557661898855472216919686131252472914438040664743000331921152092289172838760026404781178535602041530609002435774193184898962758781955352043839185805786220101746524655705243566619677990032046598386564917722430182645192255872197675151495197584158970146137576733934173735323659840366365966812873477411092688893433611992276457687568930256606906852738480348191260543197622891789206200787974540182563483634157073327754798462788115413477306461192212710271516947000387550731211616413912328517361862417114583715603054674119430200485386466875910710958147553202882269624310514085494245796772881489018274987156930307074874430471273520782539039576824880718242326081121773018144097632188865986700284622678817460889249941691761049141316638609774415913111824180884531952233475303371870304794128963420093627101405140669900799702758479690288388076969668073278380202714833519679518397693826964939566942458584786318819598198999719772941890466300319268904273565319766862182428254630725433580609665792968540501401492819699389703081926920143219736298890507279006419443700496596432468498352122169979508831379605624629762993453006612795306039614756432254381931297003765400464349117692126290155189042789861165630286466253864844660607741737771950601183512302030160391471693338041257239264367688732199933059686250597901772418154277526735070460544360117580466541401153140420771028063421905540502198810449670671247649940144109525721836310148690191828067064567345803344591311811195190108194643383919298623476031069158968440604069949200720625444310633235672282303695401985106065892774038169863067424392023638455387201557967268858920800619277129776644534837224258531213872790704500292639419202451089561254369998713598170298239871397006072784861511602781346012178312859635108462200653870991109821453171804963778228514972638738092894333501979141894256170519220482057526766429842672020826828175817829316467082466842666171947232419386554823833805672692507618089678243564040930663391595371294882864265617518289227239642362530499510809406493553731562553777675063627747167742712259411326789824738866163808896942864217057628445330780726688214490848188805522940570973047228321762678297321530681586062178812143507168209230753119261306897955883659557674684380970206508013983401652363808396569153673200254793243349390225995271440173918955935732817173734188652062753698038094784433113040577941339286328771867030305288258372281365977627339597267969660217096593880743380798707746848310929245706116055391247820413588770018400745818226008431173070353702437841400502674935749259864097446533122692061089256187072525626638393016359023668045558656049698359688346683631200650686118660069329462530636538862254760335413999122102782983684504561411491633755104980060634522500277232177374654759958248911038742361875262640095726078010030959408005922651712642798123940677321188673769379152083148769712978512012533225503181110965095477118401297873595725284603163050629282572366449683497540904492031246715299954307944655116744468406641566919635118119141960803225218195292342051845725730603910710782584970988653614882507082224635486587862025489976028514270403275311893210674592073604079021259536003761340496161341361493221917558493650466365171386778491835945342377180538208054056974386971873480360002093096002985736222961764325640742857924574042826601507650423822446127078173914437384956864319472570823387907715418595360244375551091048044308631359841254889026983997237835306013902421524530397345571585912521015992193612948783923586990601734491648470038662558830902266914787179815186147736371185669161493793321087443285022517009773440955744309727767860462583746333899671497251706490761708222929658218010960185712661129742144690287442790634731420991244507714294980151030082868707920890755097517606878450403032134622519933401563202671573849139604496394815945772905851022320727184824497248711890560731987028761822058613802024451970510788085453821194045409115026891572573887579613341489311644362456534802665219037715851200868356300028153390567474078244198154411972826828369853378674916279384893466985563879747026784272775065587835936159014215631771689656545317813257958019300752679788776516594996487673815729191219292875346778479640952270270612405262690492725612384530223191875662251325353546990006290608257700333190834371480637833024365696150622207401051672022957202499376170356726735423424113257057604021482936205391106524668165806680403575335585381278175040914484075968460715412625421857400153200635965037604031944258959791951509277217768398390869869187703142569736407713691322193890627824402488162953688573967649132565106026893579533296581673284104215060038488351541715545480241708930752027756913869362510187477034178669398342342804299666157913631622188244016238621804366013896002961785506811678161461887723447031917016232739043434568889624931091455155175295833901110348577924541273108835892606221862263915468283145626207547253512971405924055853904322715704106442003561200667936013735614783503681222244043266433734751637206658896820438407230244597355383989425579130386891793165073308462844252293214537611654742020187752096085715284393903591529821759428044089187315225980808041229966128311451149702609850087418715406502164889390033466044811457656761668637350052951158221635724432780998223474353388417702190465643379907976962014235965253215747347844173783575586118714340773304229113533784692417318919185042956132808737837786393351147591470269650469311283123462776012342896235164091292604496919522656145352142272557972016581167477834528063621701101159840443247486714532440949886061206716252394087471035057126169762365727693477535781442601848639585106773416615326492627746528017419722257107998159742637221090312049434390193746146825615497375089355684347924629649726467651519508378515859161757345527134393713305909976699163325534623286902241797846083303765727578352733652611198276110987992398325265574913988727714542618465143450438932247226190364678426785896241693207201029171376426504854925326937119926497906029126296724771409478130552885800883114878791233587888248337231035274227450563682935185073215696150583127453719690109923776983495939555682149633641219229099080035250788911770642077571196868682502126826330494702600464585719340585788033363583006561003536418569832506750143683811042730267172739190468097858543601335452877936551573871347605588120968746193435404009300206611921479510802587815728716832894364858727778371249049186856881708942674620809391256450915180516280326585514576482436446399086591222223539795129768460162616460690977687187350279397716714440121081664974990741905483629589379856414423694063815696276281835339862278196130671811007159356802380037295821569361594475649220630866649752255695698757794424241265268933514098761014750937937345356073638119176481130222801543727341363035118366320777395418329037520546518171599642623850972749558821163821181318126703282334845084519267016839733505982519483070187554327142952814143112211596769608850065410789334461120065271507895033163707223089884113453310603323839931751814388127194749811052118175963861121091021575652069270883672367844604116652537664919480241194988495060633572056302127744669317679365136068333073624104578833031347598193033010954370204546007390315374804032443657481115223384562779497647199411750053199624438486420653421754498768160775948496902569721298906658149204910119988390222073845697657440958657127450961631930237882462664222791018118531922439889796678080059860073208355523683843559463900809384508656388975318759198052966286424855436159296417214600065342625703400658215931318242266170721570818577176702237881091643082775778948816792284136172632712771791403242905235316275787742117186690352913796857722876215155817140177757299364466084849462464201760690297291769712908796578036476988182254704001493712755987525967774290647280418009825658055843791413911149982436773930093864388574239579999860211487328686885456941208617275934222635212692741067833738054719686239403445449652457048823871662355500514356117031827108339353151805761053771497535798014420864535010511117514516493229905968357295691028202165367799211540626299306572088999105180918191228873934818849660642470119547693429382326779829442938789102905222855799439108573888328488209730519909024260945734312487798816384819161233947244721549284036629675615165490185272917529164477202615400200857983425000273711446131377678596372583955298065851207727622190060982076729322375612975955235491965954724524952960771988974527737220369539689142162697421888778137753259205774266068854047089696741417526414608234260054484625762459463775523092248111929779455398928208755972206796747743397585316781646763963959198943503014806992732939689450131607466546423086712493220774552330747332353965917689791353087665925741654948958975361485016181582695366897192146577012438169198959586623721292197021181114504237456664621184456285812882887138824043569788978920892295923132969406889144826114457039449695522422640986269816973882547965050301814619495341068156057088586275827926604698639301406514180823999135838472284797535393485843528064426744943410219540643743497733067783363326808472025650924183563098597504060633510676994461605693547292370281228963721043122691689983615212711642882466827050675000205982650630028545184565046403397090178017230007632181086784162755638000374906579566039757552531347996596683197833462625061309206246044883383989501051377735570683690579478708994922819084499250457352606065609151812238629183593450702842958377867360024852160068616368316935720132689928770902570400774479818924961448407141504044392660609673150399677648965211977087220825088004338903815737008975401662287613429459225141185034421997639081504780222098616434494715370420834631716326138827931991350663746703767800395165352526506624552639293707500506382707072280030060175653416914790274466844628785657400067317201829828305662888968384297145682853926510518344451085452251793789078069430358738744665185399979626810897949398246003473376452369110242830333672028217607382235218003875706400138586126057542460469465920035432874867302504782672281220561195344801857989959763916457204941843748510776204035408446785920223637033469192039480359366001796123175017456412001747845815672688054561797731179238567605030273644656942580730375148060786165038188342592957374654492096205182273664945448429503063154143380327401130662672975694721084885283671237330241983888721046068147421744237199627524544635524557699333899301316560413779262076760406662550477200641757430733614105086469791945054827392058726851968449057923537204037059381516102124286606843896934747667634566082355583537535117307961978371131531037093881716351301702843569369201250968886830346929881227689900085358789789381806711339871446902436586857914012818396328379617355141878033145876969801427001291199240543775909378753432445243285414713603582024040047673712197561872149819672694175382898275439775592961108072754821602190251115434438939481376615270177910259479072186081085741834527202458116836607487359191430695193698888096911737749200311991835867896478466528826232169430519062519554829598197173184003358252780077917757192822515311260265438277057856480414967163148582384797450928030319343988569671588324970963591845735914257327524840172348822864014752912446704761975441702854367654574764633781436061670139111544047394114598332584208703934069233917760390606015563768504545604052193453440261544457740420188599770014193555605478158996913523775526800666999803908444622538667041822895907326803101495158021634515342034004075232746918219479608741091111875465899590356537666885191240928631738640444282728430984879529433342711787148798821188123120215973276297559565706077702115925390095733003502119698957661683324758049002302215282325904207122755645955444727175790740113869506232096644812280396362504514851229533547876533521546410374892290262376246247261479094464266853373963978463839855537796807685198081907834144413046431766459617016956596982795095497929473184289828690329252406492714344007578016644199385549895416848102862075468349430304243426244753420744615362735947801232454959773639151001881776739314124151845560518342637839892284659953155439300126973909016720874553640421103807774784230727795775439202235014570436737969061942507040404357610058120204004359391157783571178435831915612857622955196517628214414084371764207810699581981234955856159308439800145177536374967610851287442074668363100298307906201878989156796561953429062001766881174270188804529195674532583815204814898037509782273989100797439356271445252724203145757340693254562414716503408529833860738067619260075932146120364133148829857678294296933113883057533766290630350719724946320625756761754033588096212630737125586374712566556370025277943783920435201178128705754761605807810385507383369686627342457494580597318251057656706925240463667486534381869616600599985211159164868167242508991232582911276923833857879328890430553317407658250106817928042828084697256675913447648001759689903408203147562582774401224111767734951760848421030518989523339626661481716149404505913011655719935480396757382933514843744376556963155155999132049505279517136048833189053921509507271642302844178197217693363824412433142361203346121170616339651980422384769293424301634055004444881859047497661462180288022443905617892295036957470772086554347574044371478889545533334814514912837902802417336659804495541803713253299316085512672781751581727742447633780047680292667328084843181938951454180182050714987114143119731560235305627351516629817532615832581072155520292947374661766990108624888509215245124703941890543648794079099957376454739433683579905043107662732507854335247569817908003972399161493250153265854264616533294925781820622573892288397138521768706472677363137007363130738283199195267546335884261596730891897881833500558191359827018926858782695831298100618158938917643067973321777943000409002791354675870767456456595898811696722487227145305841088574868950873688578536308388302075123736427021860336339874154727889023514160825509869358334948965804949053569435797242028968433979917772148803149029032727557243589803712471068907054715503696711228552441510920924183000921077187566381719588755787359826729454178532704312067078773683674332777473503977804605243421069820724530114561256905653418375012719041153382894432700961642248791916373262592933348373245502919562763756528563261203756560962597952576834521702140371046555748937247716656627729092554257356864658904655267891591807669696610858493742153777636614774161367230166268221572200702138046256353491362048936909408494766239043954848726979147718619345548348150313344905520650593861036869707781221867575893698293255867868181898964575308084870785496685884842629486046220667575182947788358860007808638904136981075363597658468013308646595794688837108129360307740003213896313524680719003285963399258938897695712942749339337097316342523896821728999721455747349997312566092695908348495843381146346240666542881593641945106023153628569208575397186193808942650258384260254492072944220394265160731763168927312220311548006622735432613262563460397324165588934424037898008838271987218408229835599161340121279941982198763851688277490388374502909725658477961115998595934752255128422121304123302042400280006034822343717671287874376325468118933774311508212908150185248459355254149855348660508840823083588163027778163430665986209252064138307309023481087293837232549948668167687365842605383982789298732026725334871791144409690703464523339046019625103872503111702884331492538444290607955628441730521117236348501339202974005148036307343408022145802682238079644744011027017150043803252394340026516566850948191764873412631820264290954387088035233563587964183540467424308761581827221000510694644781036433307617211841465570215960483346596705264337920532668690640811543396631498855337241048986908999310504693965836323288390549115485178144702396811662424265697152785209148428824380045118386534747958236217941784710604385307703757524020202100059777659814973727572823504958572516048312530610928766309166970820159511008168538527709148812607663699780348652576623531094578468658225973328183938822323486619350359909689452283822420457676687802344015776836459062920389288030247768422409526096278243161246501281403034129889170457121520751647276168898137622085718257328229899393309687534232120188372382422258801727631464519773563002311313766080503006689573224648085723753153067131481949129684625619156717236655163490701556690444299201698360793448251912672726706271687589770117060556380397679337895678279993028440102139460157304065509159080911517281627921384121081262688361784950671504503415549012777582564396053634609680709246113890863215828876598963061110601480098561490521249084618287322831623654513006395476525586884553417361039047207062828500702665004303475293136931890768441954541290196839573918607653628405256014898108563202349882553136145277708816518082037446321656188895368710723570660061973462759803531563893919961706939210559880473468464326043650024771698064300283752992654136074157315599883590111624012178024901732813439762582842934425405891719327442751301336151379199110688238997954057030409902093649750729980532101266910887341287737682786203528070042319200984434516929180369091604446854904817355379274000587739930143086298100563651143702493441940236398065598882957462547738248702064958715152682023293437615530366872440300022620215652169786118738880159757831411732009826441489217592845480250453651057058080781897720566326644817456800316782955579937629128615335954665530816971485306570455367659861256097153538407694175774863420842331062755068619805066167750425016468279131144740001259503753118403756584799408930813333563715652330050845479590290332036570119556353097905457612021717736283224870544256353038476933076866730080622066650458696236678974133901475992497746617603749809411110889738901723305990469843043083366942779317287215733136739054617025960428910453263988903176669827899615712546649173863980165988233431555154675720452481872865406299113712577549691075826185599124822924318534367349830642499256498463621804417841942617770071017277555802475125648861661296716337829017523938373146422164954887014042679076056556229986522061924579743293600708757645165556583380916728732651387202066931847271114656814764341973780698356711382671387659390763283023994090220732562993989407700407170087073610246756444654982379123366974914718967365572633308823516227929964790810762752357410331583255446078849820249193743005926746259658250578075747594192913633859008629698277030619508165029022565441385729497191925876149089891691157480894283967378065689347899472153150344083883617223942544099212451359559339684056839855327558630812473057060328578924746839987267675749161641035818988103246223271853470671500769117155822808215136276597061616687364791383441578921036387277658969799904889064965782559691603548830311426066341858543599463047796486813911208792272855815616300006447734712908705657500512260065061842174734876706119091779141980893389220614154309702861194120814249395636217436105247114478635388497971918485193150455290974609128637033159082849563967083029542224952033508086263846779801792618938889133676910675305564777212259531345980100154731835481529540684090993092069923858405432419311521660660131990399295508221962175910885862753160850896064949716704196097499241365396498744418034748495962261771237407022306428823162679243894127528264962102392563849523443060910265714278893373073005411048018216361698878488380755389959216476062017995169841027677753617453006922617213967197975329413359539732140256736152470062559112734469007156531544473586609390421960571061487138700476509150281904785557100583144108976034277157725975503218532617179377940803751981616444617635350607235743865798445241662804194511391299402216506298567776631421406927504718812430146245940590187081022729342661737958496012517197043328185933115418794201102846427675231989726240895009778081792764929117064907104367948023974259629375992340682737787844855373779806565355191967875953334866811131284620978937278446077650556783208678229004793137743123007860167293377597698958762331044470968018733097299396716279408005402198821589244763418046495194741141814386198697987979080308708527332459614890613149577553334071729838507371873195282495149650335810385607093291818093039876563112306803177908723908551241645200517714733518172284943654258769019047908160581156179375648535879260525532938075247042892996250058479009215141632373093045778531328133159558176726057869304248302567462026248533983657653644299145912832611320885215362191854444472071662809252482325174644548276318132330214051636575805854091525535299065054838222523244216566962631946099494386873063812247323395014203314720987024536222381884659105257767111304725480450368484505576451792973399334964270873392799241115400309572142585916428425225448183832644795567531612226217548267096814856784614902806204638576459792523306329643096065192600651182745052059927692168931530071935777879045099596782905083956650780769918359834516952108431606346596813151627770004562568186500825322854529929575825427403214403339596392282629472367539448653366404405193332927317155471831945085963555136827585600909047167250735344141001967678287770056578922845033942537250719191261143675300379437302195481604933880848632041294768697051885644690019333054543973547748704873676787540034696736279916606611828567546990935807895456692728774027614809974022092519007177332934239859385391296736535329636599605121763642960425226238893482995612904127949020635581040550862688004570809042930075954934597618551166431862916221135102661890263323275441500213653433408635832193111948793526641927962166135778082743347189295514541877938794768052058389581464251519318272649408618396215434749967452025355056420317515473483291895884430238854001830853950123959762899524566714057101393550380703875942344681390884633023955885979774172064128834099120587084489064897073690819909076423327308553689993448293657274640498873587771820508915635334486477736166525201309620643624365138918851495014807414988288506531578612790663026801331354781913212660498783173456652198363185998728783460249710576895234965872024059061305727852422585980580148650892853815767507059050823074193197883424221921049193249751916789759357519008151552037402419324192053736462056972743082110603918226529976962334050408990061175347147480500211051642867780905860793590537036411320257806206154928536821845081190301586334737711023377184855412808256910182763067752750375103347854709931973253813863749985736408624475130816774916444793798779090541821558527675035090989615022183280225255148721148690339214197906988543545555894125768848856358833165792136510025204029059651857069551213251922148726953238891603807144309540592912619566010658148446527372155211128199712839211992202616097849478730013728752606421848178008403538042276165444028419506357509551573326852204867904560849081626673578614678585464352033122358203382700510547033722609626817076427054630465633352135178321796194725967842052031209158939514711901316544603254080129216871742895521506469336543207589691132260846584793081927043362928923146297284314872938320312419306156611097690514731181536302218108375824285045146714054404633006958736292409532689413590324639972563293552591995439928783680247745887376302543978226857587985130343992977759548412351689529279606496215148533942332966922139703332437614104603074344322210217324992205665209151306347941831265489077881239736842359121350462730582607294564179282219705090583263666073584016187448873839165250835667177875274573455005763230654280839174306799710414099194210894477360280211566735792685639822053090223490336355685899624607030631686087229882656555152422126955246716512621998192651893497933830055784229284663584469083358074356409014502960718022050540292699685217050387324433062841692044538632683701302240623458242942906151301856412082955021423623936944449900903627926224616030999437530580351067723443314582076556798417621033266393386501096521569449623626771582480118170015555584960634408607338468738915129231594860864959969932309141209515272546959001027692414804544304210905943293146474125885558201715990462758666683736366158595669687482522114406531306229094978587343604921672465717698533215340070474414932850549539893847739697909781201868482439319220208139625326462335185822834615135674528675164609213118064689307972356374021008601597955247087412154186184374610430894777626792259294092094586490768609358123259489036478566388127104347718881469302134015303141218981102161285687946761451609122221984252156871510940863181979236629245802210425217260773502054383138861019841633627623824272442262400963464163925703916361122581046906543036037161043126289047094639184752806597053253267786184124040696655538182976812839931481795011553973034483412354952385220670973381481915641706662353306338045440117179919011506175210884329411304478620119022237489537729462638341064510917278930364842752588124534282911608497944377786360689215048623748145194422909325439360087977186051037734824207728009204517449028659418987139736401767445097996618780209794953616506340338104535118286738308085377019294670143112175366759720789193367730028951908915505681913180596087066249176006142558234070674855652504941381302082094353400628369160487953068495320002497048255824502180365375507255867454495884903768719152161959049184158210706456245534756314625915989842649543801851166933778860968935854485700154183118637935876393357217690734388418247388579225733285237921468611674105675786208174175214820318572119107285938061211101545890132092086101502747116167137164079536214895855264266332033640021260839913022224003123921093213630410453761464523432531834177529269077358388579976376515216657661858969694816688782010616618686532795755428955534690845325158622298908761283729571536270939051870176917156228063400514176637986832767359173374268673454519810240096903356847234915658792493113114584255126517763500000437489292551927981259216083253086894660335781906379719273113632476721884564897043517866544841693656876072765503173102707810738429322723306186554880797765675239569568046205226419958801667485665073672123404518639833263958052087743357907012525369449301075331579866519934255478972374269131979523957734996136146148142397568155996952439046418251702328293058794585430526356621257179880548973184805644283532015396344782225463987815504106996520099833273047355607423270729088239120973873747827333753252351118441309561907855327443890455030706653743210041003958415676323408311732398373240296756434821263568153540110517587205881281078157860828304196027101164023179976917647127086363168823321678828280456034592351015628431708170527579414635835264427323900890235672738087915925123555283847395367789519140994476093255696138843511824843908032802352584381315446763357422156478479860978407515535565299953115338625008406791083139664855578412846635695099375510322078850068690824698524261659101539454271635976079617200407981631095761308918128942336717773615431064121770316213773697909573687312056023512960840057710923693920827114749890861203427307948157786016568917174198535564951464201014520956011543753759065423847011102990868039315817529883122193759099030800772245285917120282185846169453273174936953538360380852397071261977032796610185410509148648432072509700074462690009544867680600121346739168916294275683043243754130833579712089461767254995941344707876019879004077425631966361775041414135049220347447988558500001435596571343613506408972650280200622947989566999386838205164129911615892920886478165051937606092778656491324317280565017197887861931228568726073801793334390389814253517000433700233261776049861722679658990111170825292236578882524510256196616582795346577577887794236617004504545738804625150825734692825787554078481085952302229806359438823415356185754655133517097434003594137058936915517468074424360099408563036528516621062787485335473333773361616617013429547707159720032190384172069736011479580236474823702887446036158831202233840478250701962799820350581899735769780401437504198082251573401304394014641272068608449424952443200926974813926615305053138951411860938574698874448227785192563796051801530854497448274962458735708290936786692928598107776381093491420442396193244918234618383065385225272816152792203075945174857961674961010141957942540343531910157309634706656812325819778566950336682436607877067906817931998888563646805872299800536068945747975503333569346272932084620281804445969439224874962077491178429033318685933218474361216185798177820651822737541579682101075366222325953945750897594045217121261874478097423143988761061086859613124182542102730649041983296840272358204311323073247406619888377971590111252518854037629157309881374956480265516953510666528705709622510341798007383030798289299291528537467694309286241412000142137786996538602967017847672027015266169397203919715534870633212884144755000466891529347384196916663541168999628903463089922131415845183147800685540457264352806022050784140010134515861450770346488869578331586510981195643022168098040275439789152118845098975765190939968642690456840853356175896878645640843743689839436856366829645791929185358872499453741448569640744531261145853906876068627075900123767320465565567996303993136944349116140548675794930548159657200137086088204887299914601059929849600526918225600642232386282992207848356559780204680476790986777964834685088085361900924134948986585119533543201357289298052801924092776445730051339628408031028233512676983135236852014208230638025808421306853197248042010865202733736588648111132644852680323820715140930387387361704312087829383235581656207001447853432857720444400741409080376293044715033084177613662502578258631557847854470659016632439159244608204371329890910941715941590154099584885183634043453171804260550068081095979702995771037061318899652347444407787257868342574417420935569950636006405037151083793950346132120195262437358324285732126585241780832918609134898102835737441618575237770706004564918832340142400904265026700075099980314739838998708843771605423994262280652398739411147195657700005603739902908193025040043084323890944716500547518396914404800024808620378514122178652081413583906985365841288935827599827470154566958112516238173573661532306546871310137274286124045300833131723199453305853765993892228746452184306919293585301895951081020865638952564768788380217673729881644988537449490605079795567145276430802450494205209540661688620853085040085097258362364904897859374132800506924921859074283743098925733013895142765607424031516154334800451694134129830163612558041426830391988861090132052946492158824843343440335382099266699128044163067855460305696176526481554843576963549730037550183970921336569919285657470747255776022245191207496351128845417097855526161666201665298651190161332445564087071997555024462650196708239801476248373321335135539482332217582987510137973267503863413935223244131578023809029208620555515179540023653308520591418539854812569366803640405474092877169860934538283729212142967173929880472673259381436498242285088110003873695836754455176627804469527525946354653387057972748373176651605239370906664369586878513944555856810135600429174026521537091971143670770816181470297166036405062323985111612620446167905602333171240128239045363156512421436283415753400038104279919645924405881888067632582137472984095997055185694249394459703024322401770745370180440020760777322535424175747893700709328624400569325710118746079081207563953157065937596308043483330075937097043596486968890418817756244118332924363090413492936669693566444247571367545878110863697829200439024933560950953777875493858474154908028181586180412460768802630273811628898733304669669860586728186312642912980372879100410358291659766577540103220500531610066913330306158828260159007978846493071153839912851780578549429139755512626554675705541137876121237713261981026261019906724453006427084485068257676303061516489867411064091754200266898965892139778662685500496123279322049983366005462946443948193429369219730238228169992602668979200646807269258229835650515284695377050378210902986264914299562920835278476512849030031734767063567343043733295547288697590004906004562135227403031829380354918490621515465278308432901360347833475041606655028879038508612836034458483972291016453684248314099161024124731892029279488243787172851455882169479078557168650025096947051171682169814167526849984722546118352573243713543353005733612087571162083104951765202248195719523627053686787158932036967681893989591536040108605514501260161085284554853530658314412387549051039228291135285026513355046247686660398808791742553516438937473184396312656677933276765342687269091369192942636787742008939863572920725504729771786806545501291789885684843089547829436966405843151409774086006105170043854298754502372983728745279810964620205453784664165292169608511071963973759040210926670481387712364258735055382401035001993480513629753013161063174854645626936199535998004767833717855853910156344973668350994856024412142711530456389665585350701726510169582435281806030497670469288059804869194300431264220626164725759838951927731910921752206942985005754534633652442939134494858753965791385744467356608163618319227108246624820569604338378768883677094177109747814733155461597350459462124820300983925600347206751144159209144874060617717480600896074766721027373535568692305572725397103785848286205238108842901451806562514970547126702824812262233465643805555436021140851868529683770368332539582662868267171826588853102753500481140314557737433586350353758805729189306053413529595404718539057314179564402449426164987791185141737625424233927886346654951379826176900931053965690053543699517500363148801110832511150645784936082573549676537037329549640102882707928695825792174021861652855208299656927568049294097881077302256957262990415077191899869881946599271124602995852976042488180844345141455127205590605146108133320936770124125284399312115598200267452780114489968959375002259753127103628830273015247751185235016937183980630494389231595343419845282816551502831062843431243716905203805624155644511869899811886443652172841442624755044302434876067444439407347851505980659159700540331765061881915627107987782873774079337545390491280576730483245004412781571805615702053076673056493695165053386514251786399103149987192539935235481492480135983190730064503193606107903498189582844368750652718718631932621477664330530651195485990182414190429920203432357661717054337298673774477562435312910209907753781041729770643677546190517228889237209048689207666770629058487870063428475347923822563519045512200546863279140894462527624689130262219866733825900192459083942247685619591959600454984199528757235223045605330346039280983569503514145755568808434812598136229568661692469636036728597663266592812243083533105340802679363786136852354644577107283584522521931182410381220535389316720954810310478934671934458099560349251695958288513102547766348042633881446656608202827325963445045043454800968611967398416467867729281178437883508227074822008525768612387947824600362423158104364149021780184949726232673471790611493302082521334907994991295156169319931788822136661267502174848248548154120956324195924642863718942337085227567165952429285447683493500703671106182410098374160513276452234388546026050414235347471873450584352209730456851003733927414279293760520090734266239890936540584805401256645738752574746560630756025475450886807748865536140228200773856708510070156112581986848770495837692558119129644126347325412857335417258701700259991965770300150336025626715828576813791684716219672555104787721511849815862479068290966606572417029140251466120108740615935658095436972809525921358439713915333526356793163437166909431982280620955862614151137950244531973452510722261249462435826680136322891624297865797088896717563914380435230423866232205362865092680306248300064203075465156184866210630565556624779036901703643252820648234838464607773658607505108673332477307999942152834123164166046844667461598866795357154803645196256156213487529361450254346964683205836156830409439478636112317249688992839296847374300206204463811383224212406945973949914267789411806769505361082865088289519962299143311053025293401808044129814496156235720558824246791449939146403644721758412449374573221801340361761898088882868195658445077338217921159375302263156582288890560000740462322608408709830736125908303187539106739892167296365080691513553026752546833839466888546978365087125283347791445417258564393546523662036125500886589739960464303669841985272821308029556243706615661471335180507250764146661904847114616650450636679924610673642614882463040077456229455814738735339473025150713355434069315899729304281312284237291818071940219032594297811319924434664403457679751024783606104887643754698695678014143098393693044436975394232644449709064445284987258479909957259692057083184939777723392421810623231946041205959867134278187596400236767277002855814117706531320575403083590453878244448197891666804505755316104442706615190297439571156377901800091565010800883345038008861993869251383406206916748747991903084193775552755952919535381434054593274439418681478744167657928752691350222143832575326414930822337959499844700141201175385507402674672427916421968757553256765677677431169654111853326666173859215825102538070066533993227447212633479782524049574106284998548318850285115994857932226945688085459413974879745728221629214374917690017761381416472523695482135549219474962116913552154454068720778298699292648724672651418584597170295870389618809800319817987118569445296536630078899797885551657941180350149969124469881680450237651814166695745838691865743777694876440840693788230576972001975773859713615946958155873740663641032379133618816061427126081805200596516115214697119806493261548061581310485866748077152017369284081005959636420348610853120902688298716528831838391593529224254355794370651375191312476808419814223865111668003564365571251200295454701139066533108871399589408219149449589850182099941840850358076673265035100226396745085168811206358974713468536774542151274287200847566592972023204178791128274605876196770915015174634603440192144526687201066818919282618473800212333663819650649005830384318188226134008842958043745791469321071984508572474093823514672519937751523216150352791807735078912588076568913904358394059833263029999644991866571925535428142898495504192872810878955609008349191732164974059512283189937261564146870883425994934684977173375011423641282813833276319587366214801377993548253430758715815609335018914931135719449399621858861222025202011399301679096993567229948256235375598788058729210051449138369884928268288828192747796639801209189602826328253385046496571760298588242973701865005868137606369661606644798474863757414553947837058246425488472454218529976638377222751976855743151521913859415570840847309856868747547124360866917031005545176126987433422772894562570002268323595521467868250579176475601886296702539739061440495909743375756185511722793561364345407271051207163707165671736255212172966514559762969978372628694765243103599544165921673703604247050528695232566670811221875833092830739723388795175620216428165598603450497915885481302888664951965480162017603950969918080463943747291963480528710095473076097304022047238419441951450271160400784654507363894326174791303258758053702600691919899961077694255301242285694524244581830155149345805231999367628392890201058741569195453911360813664508554132175828041110427886385206772334196621959233746293604175055458045077623071427660445715965466735608192065611428843325502708713756663395561342371231843430063702158596479557061885875325073143165304753724411575495383546097913915083491614752519035852925715914501329650288157338383701683144642533370463428245935847322608063384137387987584571916946030749802818762961229841064345765306584477930898441894869950912541724585226528182252683494833716037207263099881273150644094956373098909358847628415323351953952289969866364866549248635868455551877442855996274248049408777128606436733223440414542911556674519307732078247962060921863291292211148775413399521853305373984687799770686251250668546653484533124593502052535176697180785706144292114942082986307046121657458183606193144711561965147099956800858507330732749774929350004949957133127273596351737083027149794915971922383844067005812568621559625197642989498275113309572917425279260447773222564922854940511464749594474681707539775431851774876417680543846005215857371989642696968114367992158684872355605490459030035068617486364820641574613169937570955058437594357270208649949833375860665125254812032655235391776294700265463828990994717156437775008838137878812525299615071494775186410652063825098192544490384014701577334180564850963395063018840665007491351832778349469323589066200910970650811458001873100466756303925934683698250050050212637861328407998187907018219682474799554270604217598821706865393912158223196859543920729724801763745817615824923787916730157574770072433212945774983552973599515883643691346373558782210990228866716145864044470604883312324551436239832101738936272355599585627410761401892006659648646383588579811424799967650976074163004389051982803386697326461317541332270794980138828151511324877577575375019524686778857778988285601798159546354750475670302394321104180730270124172734364419458901316177320512126548387614444368738397335409657204560006489462565023365896185657315820333939598743930742317665821788150484853462713994630026618728625113428709986768064916904043574814654663694967818332115146982087750549861307086822345847413669684878056818347287466836582907888011332062702001384263281568850124918086888631237815571293464597652832272409802449341269060953246566521738886450290555254585512489455533244362503886982337805952476547398698745555718731428754520684320355875061362795541908190870934424092678356994759705194509360772453024011580471849719704535646042410777037490091249994314810197950709776759535983240986731887132579210344444307641632210943299525902539676368269193221161158255504463720692860795852917460761035904700785232424150999427074913580624031613830556900822504316536195087896672988137443986966370373062158575598806060949476961727461037472349394552261115262374491088846293419209130796574845305245482227488926751068424967995586588807812699550225122371995157051385188290998757139271799795840718788088816450447264378140026704582108457346095112591433192571970199807106658595761799241755086519603989251055187845558333298588720207193217120403310896599627521438290258446672356289891108153836227527605041779396680613161301128607563876403909132207575523748078681218132208547246572441022232031231433700650673956613327230561226898055415729933855196096582640545056532389247224184654730857569589345471233839541623785014523308958272340522160855107953199199944197432993382715724713049692714739738508493689166080487091957000326284672236062045921947558269650273533071843646790840682664901999147685393451088780791579614384116164777272016149315329683877649498286745427212679634008323582209332855170928859317631362451229079341001663510968526188831119150510442108426434160229699932286037338736076058866133035829547925306734692140261350757753160719174578572254525505883240129497184723582769776683964404986770060769997322903255812191702406762473723714887449460280298528680258763300543574728061929353516746859603903862623819322534402457364636098273257692034621283147308212886575136499735145004528928055215554445248943137441092470122782551896853096919575714021895199404499002954251814144036853192310841536415901178974174357165839790020507066185580506227575613525879109060926256269758389814567004238168814759617075177055668168393804867981263926730610456312105422220377161767987768199790861591681865663869349993610638365168585334364169215339062861741405680916704612150432890330648401883554945615547513341227070109228700350392379884415646681618153624501386921602459832788209508881710672443291616950999272722632054706571680565888102192306951714258954273692999038588235431135780457002689486986219738719331912865223605168387435175107947364441851881161970389233305364470994792385711371296956937373416712352152290561424989156570369160388053018859723389601628267016943929309331386270984803328469023839176575690102633067519546375357945820585921428460339295287635614133799873095774672423969038662206728546449842152038612817637947239551054321471474384470527617895765197108114082354922883884152400983396430107459708475307755179939913964174319009068755883517461267460734805363074219126814844364701336240770025333524556521829256133264351889515290505215915800997442929932042351530933261528182360138035639996151961799408774648137184920442932666887123916384671167768296702211166502927718299106465959226503747898801037992655667625615525360872597627044944281119257073913074611115829151036386794581413855852104400627703151555110372768224907617592614049623375267440832489922104828495138407717969210960509492147720589173603236828125231467176806637776694765867699827583896644194694881032905199409066960674409506723816197879836412297129119849995748670956463450107121909312153013946876905493276683652779261452656878895092685397480176044331309866432832725481535806601746027753587279047344334086951967127953152503410552456391405755614052441900694859714420294186171307350724109676497045785725796527212274533285981069315704020485349684649314459069543422743508414316435551510804261000222500987967924944969805399535983272848498934049925055571007146502022704801090604732777079840282766752615660567219171316963205725307104257092079923568517120384038892209095038778026595175734338971608714997043934811708240982252072738051480761501401516203243420805575174120287862105940155535554811854915346473481425080070203813193988183608403955608309944882588625412250704743032858855843545454390765620428833994244939493248560231873217576210318973203125658547897271593861171003121918869259710329136596525524926744183081699744259734351242713878810100014558907119391511174368984873702281903573468241943469226090111844914591479730572432488403392469750801346373786227958492454536458923838115820725035870831945187102625491131383335096095496799128098161265494111583569150320757786239243134623539370686823925477755291587739272485147615414829635715492133193756706353844170817383906825231389117373452096259995743808166942595074804156735005219445277047978904935884124794698361773410928713224142762957501894014837692648315286387202298045632673119024125221813441457992106054870977775681132586025784848115247095011904505235895825588902965719539410396878884551467917644355303389101169994985417281389336124764528535061928417175801089452477485339357195364133735284253464451664292805964654243735870240540318129584654555338444587763194046692252399854528429444493719524260720931834558152155052225559955278704883409416069567085662256167559721524884660846135287613252811420539489195280642737515553953552996803000842993917124520203137182586152493154225396728371700356416592179558019261665192586185607226015722617107214338128676649141020358628405658131563554303162644068596493596566966436177860827786139725931505828243271402521740247188265736822503503964875322209911083803898771449968196773366532909923135923231901676884676871695859840418000341852458861210109154009421013135315269086428553811359566868350834197715248405267988269713048366219362542800706890057532222911255223065099120403486373921915044127886165837612129191467639263187953226094749465539790717724230959394858717522360772167955663929831159759521637574346274991114320662205896427249108526416858540417440442220993160027301840561027218737544360383233472735414860618900460719953117002289916232822576109432367094714119025967344037849276834788111423973540257418469965043313311872715963385648605000202744831764756075973117918471994954731721044384439744975031294580742701738896386241659722556137119372035694368076917897621221929303184495786883394792265878040447041058236180585132426031749342003697757055236348329887838763902966039641560044988533986551395856446617675540027576470207503663367025045845673454194942845710711324649307247013696145198693881486272056651452393610305392181937330618056864953504018305297396596054572964881812754437716017133939813664678036789863376745428841096886987700016114991072057057656952774118878777770650237131502310101805026428917652323128132231705640321949062131865312912775627023610702227923316859554159159291272965941448201114592697727414357118147587661609183725420137587254173346672591200473934302409778891142675329320793549908615623438053064575490988395368514438142699572446238016625141215538015804551798243122689526378356256616619058813902346346379845825490780663460919613270192256171617155082931851178130876180829947345251622008556598418312666831670903757850309671842710668741544324795458947579208832194370754031025588283849989677528251175818484174764139190462736736629468618788351570415832655761939604516524759520173628455623672211691554036396083082358826387895171240591384530793579627031430131133176917267025316162424410666751217695445390446380627270127670096620789743833857106425813360013874334214997248730318732987958198074778009874509799723496499062503601512992831251110431751462664857127184802864557156418871593825147180674024835577629762741232903234610320875442459360029417756802146215684108321481545607962540913915176625249148052298560009350605780965500628736577217302227796778408839866267488601338880327353544194133109713502085150155031786333499122249926711665285406013668615446734012917422539835904839460882231296504210209596213220413417967561839562867792648616704398674166455000223173749757396167037513798185436334239953719990464062917638625789632541578002038468560015995051733666070033349798539805728045080030953029452567504025945600306647860067461793263853170623347839673499993995020690636431119643849343553239489991394987459602882506761759966210769339113209842317501914762686740167546210049086733416630382640877516882678972556675018989612814948576275994131842232448934040827958516637516658024975672906006376343009649122232647577148577429579070998803662720857673416946724654300577171980363068658315159441390285111283106390001627656770839831631766882692738742138069053249286720737271912475081772607483145148014776267612328725998870669664360865086195821070588600169860779386487332616408761589983075713897350077241088793882371514039749269618244004603277463465212158301134321184304300858518613612012489725378363366330059706717593162063487880498975681474330669066332307332212243353574370167595261639471928541265422732880398065483827701927244080965398496165141106256431476480206590116175718289440287800915355932401618095598622021332515403160369514711327193963519457367472052140478923586351077345824438998471214227271745251219201977063484011650714063731264053989761554276377517617406546838933950940905950855433667872362257249671417381918960030165706256524418010824422766517232806372464552657096920664963270475652754808249617392389790171960885870484819836522940517453966196487972513433712517225871849774499292232564169658059127858620983247184017446577148855974533558615258400720346266427899227473268631413983373260696599887052393801474561814910021249256205424704291971831017878577749833279827429714340342502345569407540608444086863675257260282494663464290065506285036412434075762497421298562845706612293239725754828750790656804100878396612500983903947492308639287961642566785372022609303253561883067013750410899038615780048774843223970883478010455736192048014466361115174042228413645510229675822217896815740944655399403532271246670236145553936216105409497592935878048310772977444605499556916600572729092450925225086351643345389242237145047266175359781004302755805624978040359728939761623338712962681854026046917509458391580148733248382343387542816067921656383863506818720888588369376248178762404996090692816063905545318261025963731124787442650613775494387850473301593198225855712208885252207163110662772313099478807858329327441745029967631800951475163043242939290309738401072801212064434997381253839106293613257968792593140723775422660761734816323861328955913271333854043485105558961442753937839476340873582488473967004157229547180252705583614718597805400822189695834541945159185956284614709059555504404972754492102687125337842192711947640381687406863178128434606872793236801658875208503149379737486857824357282761361292623411992337547924145808367665133550041218260536940201628501474092313429185359640616802660968540338795422513090859909414891967834080708956290465714842173163636522586193142635826423847981839011760804143536413720216007035906486409208069428594053518284323842311871081008253220117785752733371416700252136734688896218517514775506123191787204821731532458002296620784468736146264529504618906626613091019037494904555593447315653170130942158457872505643828426765776203084623346795185003544145156911328026930325148702128266913654551343943354195512070945954501751793666455740797239619872141650031124090521530692468182124151119490230308509465426220072135772470229753341717663364242194303580180363954312598305684025538975570218531506405058004213657697533310478958865785992870323331701498496600536082374402184998055244407364127016197406428809416845866599920182456682858216189528738314327816085600051730223544129517669827452024295250185084165021496252975580521558075102202530151030777065578631368689368288312677678474842766662710715831215525946458453300358843594976596677190718085409218657264792356089534024146225522096577215680295501449174814152179523445487213433985721308124238725131328764350398679794491006687859866257250626361636668913483606188779642071524016030841987808990795853728024392728425876079323298402536482183454763427287187446224082702285500661695653475906015905787692451250866665515382908165591571534907621583219428653565788405480947895197931499029395295664303762165156210377273201662625876636767311156283481339100777405585509760734152666019501714982374905984543283183351445400714502712431442140560154287432597485491755943832757086691088885155517907344506447263485275173287787117340901440510286660008901026972670524748147362126776668318591158506050386155091410851598256335489233273106763408597360929396077297919779202978326246004966080139962468869848472101947133968651996236962613589990369085312641902375547245941143105314132610338127844460796662221957580760126298172226032803104910874199880307309811618044722703181654660297567874252905371220171098407007660886958510695144936681631341941577791434270772731196116736513598857298329818236140477659599177741308945157693107128809574364423798705004527614886488770196803778295021352138658057012213871454413886504318946367157084860830967010362127742932451688768590893165844433106862616709602307075032718384638118551077911213038522569461807701020086546128864809393384883142028735417215706204465910980575474631832861441267653186012300175487826500673742285467606810308163562326547155826815665339598520524712664997313402205975572365618342831573480145001558423136300944564292693049226280540344149777631305445671080130734596868645641379605867448855980101197240451935873846482095185156102828530765156252806781688833440910846426700567105596970477243561046220558076713505526303192130271385555075046366648264531398618927174197323987197466885206234947403408762686989385045122881767885581410962355147127382239416673503295390829012801746421979378455328799660508140585602292069450814291817721998555269204425289883241894510208104900170652674635547055540313547192644892706171000903838922602122229090436836180885514267206796154669891589454730266229572338063299191808134900715832623334088643792178351045686648636423593164174455931869962119559885480811993322687528303616467587377531135271800213930416647124926865535416612619504760443001117680525661836107167276772390966617659761354240587282278949795571207632721667866451271553956890073014048041950160019435187939134390613184297356630011627438354560871941972344187038339795664027469707102482684790784465629037938515059944856103391919114454391293192316044543000995668002879874831733031720466376380022141802774265199060111784909794853150727018184320575103521203332876543651873242320887559576939084608797986578004095044466646225149334787190190842928455729009099000404926654642263111689740492479591615256762272917773299812303181672331953760635423972448237036473346488983988778192670295610027585009537912101924976900619390300640326361530715238144723263945592628085270911351895932997685255390789521952743407740368140142036752793862816253511356505288661614868560030894728849547620887175573587372028651844272379847443087269200565566702765652232857101568445143413704140945394741819542520685427081140720140402537225806663677803847618399601581373839430677164878749165151279196022049109784782167734578839583990248128175301870488210021335356070938660791728882443641325319270341266570107817211183452653897197398934149463291420932932764006091114678046774583238702557981152674679512754465587782808436378354522692731994885710266548530951359727358733931535734065808176097474224014892963187010074872915489865808429943437403788999538360766787560789210979953635739528018064991835310002296753412905717045286096803351884955551578012676379606564795958057717051580477104585993436378311419164171755892882100061982073908599034515100026575204724355560034842705457724443110380656647327513663085268610788861257329076150148296203382863259856180463494634898012677617399996493070117351260165775021958871932560227029639705630062828878901849429511090286807792956452408640556940616101812105002846153945571920921604664856409493197749955787380393837880782440836945002397984475680412216845502644903418391030166087807652482087259337051201581058647557886598391269407031235567367289855577800128829877120188481632746543440628831314867898097061041104088671163047910818708751904673064484395626054288879149381713728431887795140046153315984234605380394849670868241198717124007456329415910243858387365343462393614338525020929317607996278117384475044870492253791260441994973921309892220930817883594090527928813231543517410534495809190991693390175836210708557176499373238489867066011146805410827122631926277826143192295005374574719912662287065254446896129969029453713226992459876915400729112183642816175585977860543324519859790143325189410319756129150573401581751152088167352529613025044520907122420285517173427750843928635729794833047030547214340349354145773746646408751609979258998215248542489100695404038198119403564110538905051811619552671016240876490992053364745693553110315539222126551196245351234549030415107454643426194239460590716675841150453095158163254143907345019633069907511718938690645097098193076549891600035866125439936542620029901645697101894873129084418860395442855296101297317382649587887415427388061877006592216458854663585757781138709735130221737585899934443534904555629854946586244313969404998366544003881221564388735179214707425582111306398306311588568343534450236888402111913615390946711344311147403903482623955725091126961841972831182894716278088079284226731891690766677224387621556203152967648364344168224986331094174720105806167541816337644126120359744982528434814884868449322064030941364554138944065155179567664210318787262618505411561462812030653229221570069726851721960881369815077231343954024086807428895942137078882803045316195623926028309704794722514034747003340098757271578404745466528579905564388300930884173711570975947870606567294111359206935719828656236025656991379145061930849749117780086091675347294934432624154456105925856301109383175518412806916801114064709120992876215439320242665977213919612295379372157814307485930820988909435018267205908122205506535531662094539491072535437544444306561058692603660254455000441301633903375542362780647116005553468326963651909542124629025160233659422922099876202562040144725106476947667374853955881244096039168637079951054703621862689538798032244056920378898738782774084840054863507190485821152485144167592261757799391439074741504374020818579206818409262004875951644848966360960210095506612923660364131144397378096634482339313275757252775351000123189160329400676738506125639161182467739967156589824952691785968965952207208100695145017644993818324394341571329850460277066205493022167522984109390429670480460283611307423133390964637877056854297444795429937262626581075764424290275409319519651659141895953420662690821293638704680359244242523087884941479123585403778479301564126945536668475086800905745562592392860715732152517438232860664083137331730583107508773232489893450514046516620345366789053157890049889254482945574452567565674210238306446955178620717888788470899047195968757277901599700169493375846268509495878426876300567954393718355183880255483149769421539915289046025567277426049280526610503443938141441122327858449052552665019615040248547162039664867101508318617257963461563275752505691825360674510929098231143640596489331168690085127161697702452362487779030518591227763590181334647195901862259631113933578918299520909710195834391579653486567926812218085109146139816354554222736954505916972673390026281761022367883763151009381423080066592018315911928098551109905254519925409206700398370247538382262634247278950290358806428840922049263714404912619765661014243208951336787685830974698440263915391976046305436220466568794681727135013174744703445974247048421455170495708115348535567025112208665531541813493762959046603361799058488306519705628050468957458331982841195778290483742970323670248225247507070261297215128844544250189212122100144844985537108477737836227532091044412750626249414417733709314489895807265301299522045898829281463094663497873721817360857193885801481581001843839421165285415212932227257255687673923161711640511831342460087702207092464353661766394225238913704594790968057916604113281120110831788362077333424867881788866806835823769787281706290263344329634371746797690733350766998433072791009259587483065742346094825340160813136369014477347251923678761855661945108222251295431161037890489278675245839961176553121334744256313253356231419750527547337306382644801372564291853577460511368581836253470918391862045672084010697419176875785898447105814235406318854869739939233001552553774634884558359759730385685476537276004892783486579107828367017882634884712506889532985789732560871239290323372576915460703097932558905848218573604220666742847584108700872146639306433568602127809461334676621095090744699659965729031542087172775779593681046591960609896553944101333837456220919001742979985628547214280285170389423378874586634526034485130134356587653928008399628865896599499581124407663094691876858793889820349404406200717982161280046389406240254555298289001616657024728319422815118883438902289332049062165543743096404686766406724399987685563833666400510634059237780073685545202677213836004909902619955568313396320557809805550610186359409694679820036778993511631689787316676482063348157553589659709616335038531706131970110146871219330158639784962219103605107072733312522859140939774331000244916298177569784169824640439726993643912341542298751401665425279562594899484433821763483967136553384089613962265984593874826363136703996527917533290032022340994425739155440921164623327456416024447979486413712424313565270042886142054216890978722247499420530813801279156426735344142385972615040503011052786986823497400587238158911377197939356695355147692542552780037639159515099631431704591937936374453812806077904858528808662931983684193984507648191324212603609800905891115113744628949079189323853089823480333478092979214662752013217352601511128755631612406715807488938457728862701397631672723222503840563533341551999714769888053814337224914187502294387022965868451098431303587736434010738459586597126505314037775582708974190745874301191580433601541660039362495029275066138616055751114637119825223060246556565963220575212678141770344838791288954234671417644103660435757531249898581287184480863159222417321379333075655563112013032533452639089554841349665642947417323948360844211981189130035484505782621161619311762801193463500826668955462043414624240953865923827705318951681355432651345028794805973613331733148620450716519014453362848463170179187470346100125296933389189030125757480678645472506342294525348305833110508019869714603731398868190452349450847869166671254713153420774585970123117320854765090933707135794424042049812400723985124747395303809104006173414491287313917081204471302125556539421428013384596362046093938801047722385105812609414044490965496969035796438252578163368858829843532308720028248190917348476335009154044383157324836624543305500337121086817435886516667777643237101592254917106723538546153115702077065750898043302812065148721305996367601513479736881651971411789591974153128229439942061877082167303105340248537643857113353979745727061725734503775844943594873064029467088638311398329593375458397202507003697122541293963837604377593791149296743326338863499096590121185688707608609101582220520594800289337109015566688607615920870592488413672244868141606921640641464783256860173906602629748675418440609753417552262047233338526691992993387357160552598278837282919855636356784311380995633193769943503010552022660626465288266781923146039072576110144189783640395468040986817624314475953416968968300560035673210061422219533022881150604737341908346508075541492470376904944582210036616678181215410851200946482427998012377726161379383546974304682318950829039175687057418129623088670346439693968223967878201655080310811345371717912448004855044846788885489733746570269416738312881868251289207791037512468284098884312778738739535365114855402386745001944561342964915960035840358031734747685973855170306913859723359072218708669059683736898746016850373378366402708614779334148574713367324909281289647496009085031330535395826678180404898672746066149278573032940693475557254521680520437852065070107746847560046128639870291153114178717818079284648220192039474256395859176591216452316753532862228519984667327573572174626487197391840221158603700879099254812403641597735548195038418992351060913576821955499335102978596818425361579190920643401903595892581268190407244334616863772978600378158223004875868891080602223100485250537922265270741769852727006977808201849558923821737660983959813055852708303855005058519970281396613267980306706196990260199822211583441795500687106500077250083028237343502486986225518217490911616825055460348133684416133714835192001382482283953341107270213182337758953584466662981137962579646468866454482002498313880644549670708438193427199729283496275542899858081212326752993133114850199030468868672835047170442460769605132699692461008614878738379927427516108207522640863492274186900630785116077872981040077685540858155985422535774028597921330443121134140180266740680263000405129394619665200631114056436990704396545908218707407652365002631161680357099281968752196555662898607961257554322869924662863153341525871676291289204942610198549392248130840834050846421095965986698279508865358513009192493233116609097514023798691781134083315656677379200894807462419001767966007751910957596407737108592121752508041543421580513213765250674831778952859166976467712779553002248251939670564026771593094499170056369365442961799040015265772947441621032525656111068777141776160417445631712310974144511991303739380698574969699772032515991441918522056186786007814741293026890369382345322211581327739423232067536570683088466228955488779168639838811176367335786440427385638474910961193533206518023161340077304044512250703299740818555461415600582698290843755915341909424318860517461758202445747727104582717891925792273264456253393872827532521073466320701780636178070799627438084392908287902764120943959748926578479481288908917679525762173780116307814994090636845837027529871282327720305374068413223743652628179540937180256277659084835102840254356419910038317597468257694645048193929870638617223131695902720965641766850587539960964040573288372165319188758937828746237879824848608521441176425051263930519994197311661908815252677945603079794847255101471908715267021082898201065586707914771629617408378127870600843071836378613871859093437232898801725669475780791667463075521251674057431270042183261848949799722485328997408400678524524605474073999837366602068039031224969744297501126143488670133088331269509621088491677383284801098201497838066279278271580337476261439110267158378712137601519390982729447693738183255157268714339505545075944966684647788430403217529387482404757944233410075396487230748877138674166751434145476337872865606424045698823410053178805207199740831389891889775831665340353497498682931247822623467071751155276550689638604706912759355768383876049487805659939779871892427645020328698056322058658778494011001007212191378425440385129349516260989229340305931775181861433644140680753647976678437389266265028954638449296604821737263796813492591875649217666451889133623499969943566968618789268976733084940745149707631242996147816720090522544353767546877014823255288491087896915033802755670358138513232128775391671960055850008059722594694254427430840279210830787259239305341574957076317398693436424598644475015964347829684317861389915506552438201022966481564565702247684361608173447366584682112890777939174152084085195937956631971996587317493042306592801172648172985921674718033473259958324125135560346363487806303268528143369342077759061706141095045326503969914851850331942014161068343595146915880810707247612719503829498900734772258190163052192418960181737167073633067154502132820684212375458954915329966933990641366178335094706595230589942367835307897048941831754555309634700963498777965492814488349069772085080887269012150108004063326135231005337643352214539971023319814784773462248870636797395643951619413042680277882005484808972449567386116658824575313073908782722793234753994153711747890900929240146902468343832858560204777233989058932319212662131487067925074688866116678355313884728649771494514186100996586373663669708963347939880622463320127460151968775228201181106234052733877890731118046450600253834380243952031088026117821734241895196338724109900283691139217416928857652979173671685795846569186137254219267296834584020848625544683624012663203461341900680110101177691076851850278118921125904952477938630084079621824945489607816322077142071222779917461709554356922042148641043952532994245852373377312816032143289197736049023681189568408377277072718533350237139601095549024866489233412840358237831574439265330769247858374717076752747219600860941655011854196152302015201969197512841914835651684464716748170504333294030651302201877197053894100090134567159363526958598031899980856274506084725696784091871934975675826854289574147421860726519103303653475396296733693846190296919720551061344435021834105279970273441302071546867595153508337646551061050276207772917113794998958992255314688242560062467015045286666710031618053558249453060976397984972513271307467136257554446366418673533935066079601013583985127838615087984928972613731840301310074279879304465976150838707595162257205715569410135122293931534100317519722516964377601886234177844769552844737714968850697784556523423952920520676985239816946124212083804907905347316679759111555506243863585149945825264546700950180808327199187205440096202771988492311521751868664031833650389597879667454476198701962852968270335210916039156932803283344860246581128074141574112353149299333479285240226908189615102334641328194935404741990054373652452229288063358651037896121602643123433163724533713964718818711272777396049525411475655155649908208554356976586339090383967446386423505961226571462919140407631507684659252941313583335710723257278812658896965580362216179117775660573524696981586904981985948376429510909978076642203589813051406600873718476306757234516919027717572767007525523105781775759818370840367091477051363272763177141219774611230833611086654676578876407916778285231463119888196170336008374260372679435761239090417245545753953314986250230505342809355043302025305717929056610270948632240773020876889696978170826732220596350168511057065239820026504278178952629304569309564667696188872733925057213524146485223905944797798794517569664535954801099871911623602423149293279575816658763416845616990157686764440511118098072483786945021387263695744000858400232172417109974653774695711240520668401944267372290501313554225367025176469642451676460615791825766289813002067516208114667374417921133030511496886942621735813488047906999057623007689731596573680112342563581366497930022560067912833078587204022745356066531800149089530180672152380765018524665120592124918341490678896440026184232969602819192618686888586472839426838138227818391299043167059992685766689986155877841212427397810110289414837462164552568596155783591882413439134445054276411089646789449531771421640254825022986618289604049728238158295215394582176163717107393874574407124353712692808891686617344107781181739725393535473321356498807391230678202444031008547243640642425615419406422425133511922509667498282105466288757642165635408108784478252411235818854748783504157263375798107400964693177875730747233785144754475249296623812411193592971078383132210384844748498716161713559878239429719603405002819935964467776592915377086545503246263313024497259238880405945041831398764863299483080745947580337646062071606996092154785537160316877898370424276823523951526555301026674680876968292138818183177734077862351413281545966275952852151949860961271145027023609408245086896603321868063479989300852843046869394547771072544401058898816658849494293730877470587109086271314405639751575054735480698691707428222876700529962712348998770026830631620907187000968543798981627181478149667574517474337582696738248574349258255766638582035256353644782059048114364884911771555681038770728635511095030364719685297697603298993903058330104195383034321484158448447826706775240973942101680140490888716702721479257039801853777149784420714359424244243767454846376469156791057984559225719777008243939697354229933138646193681187315101569231895635331056820601067228665317285576616045794154279515956162821481854519963134376541737471870980893449842336388572162823310008998639048656148481316142859178758335042869157632817017628135729796620686318937734339332977011581807657841657528729206279818332855527674451551871815048567022253327817743345325228790985240502166880507636975732279444766007025029771107452699868069056574759196353370340603700635061402747485215279305900237419220243487965058371804835600620427337107874686285329739115028450626253889224556544235068732807403175439158402010393745429146882845536100716310093611754124826916742104886578286934195093771655415225493230551712538774140128593504491008359984739764115312651518027412224903096535164538509235154266846063164979276530585924869679526315406278155415818494236032903391602505905959373475043211099975265141246756569578812314686437429185609302660861396065696663200984449548104742297838364022883110807565785462336121502949513026691781175516592652986052981250583635459347024016074010017602919634564065411858375437981771826483351832203023569152499953560393347331701510353197806690750896787338509118555422891055615152443438263664249473093360579764349264067517474470096617743454174318518853706491511726962931940362452162513752106317319383949273843880104976837384484630560271092545352095330451702801651101735033361091204722712873376285671766335081358112520849160064067295986159068238312364325020396829935897817833104294741578349110191997263352757396588141116082555051246023165074817607892840007430784165645464024518367004749715969325123554725241546673253204089070717479923589821077755934722646008272024957805317147343789473781121106528736072563481559031770254828055404650067191923092653869294347032337753891107813105054548686198823715764114696028328905725981040932716753738167202705351603068692314498703386710191968911035376118158858139892198824612081675015912333091404291934165212225797402786855273837789673879355303756650592950398098901981011393549812846824928262146158803517691102165823537758448202808930556223465122200618568552607415012410002681647097618473633068471295641271568447192076034189726453189516251946150395454506548271028802632503271966366948999551535047258091912766485234688619657419906613651799984489263954693921966115729790783814284048320524461760036904799685834376079097088589295948517141552631185486753588112285217087969750031041327195383522860859979089249863256791577597446329727082874409208496054943647437822617639828925186327901060193013915487802814818349303785135153603566349415320020914264064177426013807985419052793625754439438923581527648893423228024815640999740587113350369829388307035160862398045124367055344613665088848459408065436146079087661814579146003127537710120614552359388249929914372679436580246217081996663394033832376851258425550262304460128762150619053868588965658838784273006945292830408877802349379677556255652814850507879294512882490926842030613554285951178800474849903085328420011441731596552950571890478380708069804534026609458831886291895830254664829046377057616234965163833699294715818740865468929944524700778537735800533100719347278418285760780121429568621671161567981740281211291632898014273862216582305067995529124909310378488744214423956050523504841143149340780137518633645214775296010527563862090979003368331635859763908502520182119913307452447141274989766539273634192012996080627061585509792450605460686763821051465028574900407853203267124631704809802523603457183588552902778767982588296909801607226097140860607518084079460718639797569158447460008648862021064387850761346657231089510702376255750410259615388943899398111996327763158511542433167619901465949720323748683846072648751396718144592838566347756963345085073761288976409161163190080828663143874856111597422833603486810125740567951440541142514442986761815580814100784438591068084060918962643936842407629426718895612117846028029553589517575618629328751236935007624668156654768511628759844763001585641844407815644216407765575662798600922862434216739245042614641096912851518769836588468189224537652028353507026826956318293262803395366784351122170503569334097196352724627671880428955743037799251296324784965125467115096899822168653002401452871091902767091682494151424814290569328119850838033000708952159756727653367685062637514328947911822951964666655940993941073198222325327114379675323813729053055728843651440618180791049043353064411245869696295584416145448013182481913345955043522240951455541157295297330274576330085817814802599099917424997974208707357154427031715178341745123344411048675236944984520846172758924868142371563053286801727135366211347135647712389193917764207194860128749143696480572462726817091873506570385262557126096221960104464584061367437810562393725845248742372769790655590741112320977604505364253969992096979314159682576471526272105706995017987517687466383546596205197980979573945092464635646694678083817249328544633020426445201049693557709325213067317850096955144159808794082568053473365458319074869624546264843316972543189718933313234843697088375780220807238472710828974521707880474673282115396414503771856616503633634336857874714500913731665155698459477155727014330540513243945140111332842183739509198595635058327107750340795017629094503844527282867838297389366449623748777623096642083291963950663299641313678349360601925007034058851332713318980299316250997753030134245050105039700924918151876296632276571884717945996677774233467589917312867813776401141494936665348159651196892382693207409871990181132772424429048600424064302355394482162225201747331474135002352482574912869299164270310517208210918409472989493598270133849893376409436528533291977066953916748479594381965013616637960967891142784534363430402009358988808588061876397096632781382066321339690870066782860696871108947915019242763142655123989434405773573251239450050400536906488031407760399277119136221113162323388658386527464495923218556668273672986994645146958214871100535997078438342881474317850040004287208888437467400184503960771924596713740149336429322739433749894813975490050440404382474335298531404078627241603197723065634979289904294486205656072937053496253264310168899349386896048979889566322367146487829402900004313804015200327522324101205933299094087983990690780601187484519806165809447575327076329592307375655832887316831779901396987632928006110070851152202395628280685629003527271280133050830818152178198240824144158494263704847255940484158939078195891998803290573157869566235484301640419824724423988119774630543219093072804110882710522959184334733664038494130686691167963998143734607687572654273665221756734097534935534323938629026710695197008390198819683565215898573130252684202017740815293391623213668942248961944452399521869454087287258162153885956034833261316955683485243793692731669074788925735714491018136799073436459653324927282722669125806620415633751173575149169392781155333862822012869733281320628763291897263325626607026219774722955706061298945398597533078590361080443059312215610388917094901175312927713738076758639608945762312221398684094396279883986708101117097453284736168847570036759743203198808734712118086239053184593749089788244177757786981418806061037880442446044335612679081201163594490351895278832563893087124807439965899822186147222802189176886562983766137598675835806959074646121555558704246877141795192856520369928452223950489115389615711122691401885756052296147501111566740414393314655072859861974331410183491471645401962052417285755186658102809720050794666263512415827468407188399225759722568483408045251167135786103886470371799384083987581296731078379776874659880597936209606962602555816780054840541674692968246618515800642646723842578857944995409492278545347374851939655870068460980927584000185757070056148210825020501960651827958948663831585549440246435997045410339142943772770988775951943679560734368009524115979743719758912380622799794722314265911383267820461301034481050753996959115259508599537942307878870168405263991177241655969193215674823951379112224997332822506155827413994773322647702395326360229055780813509499232494403176223741163022422435848366843196359568629704809014223355277990444135469118520877984252782602402104723787315637523407673496924043676477958292691270984454222677957488579119643838540915592082280155572921910195744586528290213475274085412548545496922124487239027075488115588271660560159526214364197504918569972306014301552412055821315604841686191245185850023379414991629387294439953019503840579172657326241312420594398181100204528098713152443398238617029778745551385798660230066374193989970559785948507375517341345240671990563245882636290446811619525471640996987769283245617395378915904105620718733881689294114906733551170289298508615283673173871008200466375988506540184298198799688690686059329729249569366636466283051528291973290230820568738675929310392468006847538699725204242286262792973436661124787750010015759267718010744393138899037812792115221893430780803431193401430161162716977081059652292103883404938996640882799106374200486708134855030068483476002225936809393039847345566462906178420061269075191459727210198491347115054873337267910157638949168194791166808226819505549297863127861896873625951859416736912025128311018641125243767359933732296736263411349301673988912682681592358559409099315446394202051361197603661660964928739377052986734624189452679924739265681353429520574186028775597374169606253973667680288983706921536661877216198677674848588027420988745101263264260670627678949027224817976210570364233868601333265437941209414234181300797966007432890739493774736568321479725219260088186898607691339477820397317047743755663063213405735665928656551446688569010724798592231316636827674282419725780800018158228180481837695834350931152380719524069303514331456890211664400135980404716883557445178903278762276254401998637727557497656485192593848563313327450463489925686188715279883544518899060806805293582927499218742925988047187823611126504450562450541249499931824694469346570237978281967125868091603565502351732345875879709095133128968314604653274921820128199243795776664182372769739387108252009214252827410039501715857358479652685031401494135734889652821414899961564312771984454210280564955954088311842456282401163753583814630302073566425983642413478977880393532512955059363959436039515626074527446939088903069798820909172071149410101689268442928135671290932732088962911953331642933761698041290375844201944474118869756651350309756810866963285617576404655911209672010277634739317707382551026223575642383643553762113434792675144364145470408762929798117714451060836916715949922890978764526038616325421615597092853617508312054983113205372290156941268876387037693966226523340894143489959850894184606708005933855582068488464759923564044001859735578934903281088750757996538983083109902259058079901246310171482725227881878764790894480841141789156850369265056450251271478637949542995316679165072966248875451514210754447600220375121637042237269201232825248232692831800745553709846093476897722609708870012575361710343199807173901499993876732647888250721070709117570916237637107578528899323905866826724493410822123765676855922277351653621295665006741108137607016998966173352782975700912129032493979480664312837700903817666230607633874665565034528939152429577294810210295867505751602854811322792207837811413450838704297469461329135252900209190087421761154882714648541996895712736199764081110238962105308799599850216085278054534394130255099649577684654317996848012199137887209261901822384246599582529757407435683840882902416545952656599835888775163791080208204109748491392505741577092999445672126902944057041795687433617568149457432415115059456898055215129327090774992015471751188021258750674595789352539287298091878833694835500848603420307828019803856209321106374756949918604008107402196693895217538851442897967224693935708459696769220387772696489732566612279907077933952285620519628085044877598252520648660998322839539641631385473033613174016683811082665962896664897323145381410449679441360556867580907471765959751101320230581090025904447124744571896630390936772057866826534137420825995435846304552097949558093466312073745523669055371587927142028667802533965999122641189430370367257492561433943614308356997545204358657680169485684888203659740287645979903672111912412857690288638159777618287328145626715582528306498228377245001890703387649884395066273595193305005589565800157911447662079673971284978638669369455238046524392987266958441893036082717954321489657004024780592955155516000456105566480872028680151494219533898103805778927209056564815647691918224017010987023102387487174929225785312091400264833181579922043772423944429996884751788946563127676377937553489027437130719510806773306413160316102602371372427673511023260509838013252073035805736111916285931285366253600138007819862051220615840432492891341253318588899560640801739195271078992244077407908455143982285702919774329137206619062690068109746000896190222457964783398190821469712095352130796565253962835700783458772323423052672001618203147556078026443942671604065777376347533867733997202943597206064368129235519131220835516533784315303060413732199662735499473001434138075337791714471483281187394440039114284202142556591627074952593347317900663641238394474309359273027074812864781654840066093000895524134505090618081024154038423069427859505792981366242351656124478483452910430565760499406751899816621276767670801597401377217917404224375347574127256526358397159209511078304231090402403999087595451625919736128393886110706991654862867726976133037268893733077435475360228792457110198466746085234866773260413745577087068372913418804295484982595684057043526658806516247796522616647644344779048009862091637656291317983946334337944607115519248476351512974501537340939311909771025110019608618902645991795857107674766199284676400168785921373095686790837921681999144502846075288859949692038458806483417532617951050243248607012102638976780257564631158188253631276179599361949297417781927718587749380324307955604440481508828360238799705002863421483506677618017157556750520145178292210322469263287199303781760426180553003377468411650313541820015282378090365443654239200148197298112363909488958255754692058041123315509915072854057807661999691313866839507475844933714689326223109612709915062990041133078268065625709812565167002527774944253328233845243732123612892667155408159065707666943781924562916565310653357290517147420468339690206026956567925115852342002076253165701902498495853751154171754718012350753525271272090699803468033027110282875635432619521432068684612976655780734357596509311879146282832945665536236365162285938864901723500403804703142947266154465705962360876921136043205815329248378041722834806884146701959886129701598532278240383541176593139439313617283394932526328000629696800743389945314321251903319194187633654520829975937419473769813859065732403662103871305785678141926737395208221550141799619706711175168163051047559468972611947482612713267891042967471380829545469539554361166101069897917452461518448873061901565435909892133778312937159803638891917050980626904934381353206476586499133747566267748435574218118889269532380962375241056693154700187493330466493385395546740779953486157361734507653689505119526195121076668295007683038609184387732201334436646009838076395189093840508432779004187179638168780452523392291587423046080169228487453724235203880139511280373668394075463407166304722081586848279735120361143797226839140148170079561822629198087780008009004920620979710716276865229549461736864753661622448688536104602649701580738738283711831397490941937087724453084332834738311821620024202753815139394506952950741057237147991114987500307784183116487337436510647358136937132659680586499455749615354159390951343088158340443182084292811948853232465706828204709387074382895956033640892673729304768793611996522498679065140636834046562687189366602254870903297185969766588203229595748231717764808919573330456890694746463531779917987382043524471593397941349336261332942897783620900126537737017806563057996937087284216375235238519693670788664152404918948780522368165553476452010465441782746519955493207556864549643456735287686948060196390290033146227084472535325145417413748765867512238336952357820395098284922706433546919330825643968900279249636536790630579420343426227854986270819291109541188115369221433756946449015076557272936116366843268185707588720689128406461449771239309348559305191759749747968738725871567654785615992298259764539435503948719982953142723284373965385546029682502281118223217230041168820309731069298103450456973317665582876043943349663356603293659816172728543641578940584777622537650150543207451473499479900824728343530318162293741689753042329618668256458816129792227134541886107941204790068542999926712204927484863820718529848158370101979007835653994194788912411067241446481719817890429526375750310985439181521279683821368804988175514492714764526412923866713735506340055906666723498561209180594325930576705068880062944633759329666774313544672301568337258717870939967295173757354659317099490064667258877004148403577187220784242467038227262034669409814103237891508852108692249267888376061705923306922109236461177776116071753951864864621096704448599528154308019591376769317236802465781723725507939216539517568683721697995464384653392526813606493273028127913483013411146624131391374668329433826436377085437960914107454144916649061758396003752173674661213030940306612924169514316645352354544862605246433404476526184519871958660463877095583360572051525713947810313631627255686675620742459991689139812090107178575901665240992339348095017159997318385001098228316833337402714415085309692842199272880078629620782846333757223566503041266070572513663834077415224174644428450180272170536770044118484132779682222865316830149559055349492477521846384927325277198956496227841353413516937652886058269142727619055713643412716740510368375167578775340539349552207237198198861358530681287168030205222769573220158617528039918908764310062913332041516384644432200729144049244197136275950072722452677041819453120001315305420959714760907564044592874436316873129609779935129273753975808557230673660972034928600121896044691734730981428318031063999671014167017142855551035149705058360110925892890856036614897649970441189771468780705138718560429875416226250150189356504286686282542974115967980219869946428422942827998611958544994192888050227081184313769345896608088474812712172643484792061274656999188998469864664272899317254096724324503410621454650251653588568668282292559198071021311253584015659792482368706144804787818051417117623679912958148251228312614295510193567141209860984861796129978835166851583307136099277921582994156469247342743523419980283436357715173153919082472736384216597734611480186380735199068492689730359674612451251381249450146763511705320811134501226971539770342394309074987317456159577155605283476009594810429867032721966194970480183097478445078549808698828120362454076256034928612227713116683341045679634294784205475202794233764359357305735626573925654592804670109199947494796941829875135573820954388429574525497466261439075650845869989359273028991159801067771916712211012306473033529628955468307168082908480314619996642152654014059480240389433088306277487209648382310828557725822860719898934484019502912263278839085933625341701581955933455588064765324757669385699214740290582177769649642254542548591107157754360570678083169963131441793215223138345639846739565731548549445799563314450169626776296524625586330359814370858955985396510169096894951999929434105938386572508895189252837794771023882544399299674483417460690980189094410919608395588173101839188900618130005080379219672522850172460513215225555292283702270684552177670717154662462412351935596449120713153621338922399050132433146057431882484271993263679874076303818641689757891568886982430397057763780658455894911185388288248306601671791486531908548038037954045207920452270103224357510007304354104637814952273867386440320048574352377520352001317603110098018042460607338538117319070473787640981823103183063313247782248311187635322355479753830789222675666766210973225030852733060210497982047646445215132367609054548640010502940960138990928976425806786348253919960675749408096784220788302314690454796013592959317533426823639166396650913950919031579778438735038160778656013136431344702091882193679110546327594108730807532683828124341683629478006818479200872671902248873058809977919944144842038936884978412294658762979006123882963723194708486452092412524311048235559567147175079698894795003572203455255460352056999947228817040622478934448005866412747879856482536420822979522076159783513506098669880113355985022970207851515015038016670222386913969316827532722111214826659277625762962891229630631180275050380466499865243707477394238752567478494778778329267580210026977799726491228043582559453826307049938685731034899100857385380286772312482222658714757830756901844075317162535174497631609283230033699529240068053193745731856444626217709315943461301763953977682437875633633555589620562752427787308707524682627554377191354885540675293469889761861490893134997975216235839868327794603640466223138547195739091693834788783487035652664694133148452130309804076626115158449125651132678841685021455547827616863044504843030977136703418681129373312755588283313139928921306856674576369422412404378335517972418896889462180492201962364182790052304512416982232025373065481664788408641627303221984427339877877547037160473531570482047982846917963445497234129785319565829032635923146647414244333069769569464603020007327304371954119816965742454985393236919967484851093767055565717793989658096154707302213554816059347225430621806236735393680772925909123714050904168890017672122445613411884049312357509635678179968679028540793382583403752832880629944428981827957455206798723930692649528439164052729358068681627630740162504889479480341212528094788225870523696619125228716639262467265597999818813717748966244132501811359572231513399666541090732050969301314826395376439125669116389784370571179772750239020181597617169291495858924784568237815771773153170188470455255010450925064687423494207717491255589934810560238989375612546700547486644551776604122023765985100980362861251459935661163314909748739641792073766579163411516199907144923170743226433954372126929586304151808381564520478044256676156181354063168614424200469653525304781154845493470777369372048657191016256806811753983051860109709447080846661593892712704543688375475777202945653299312427798636255570129413281415566983549234121285100024583655247959044158647189513687854885344051912837894849942686122899274119146589811176599201183163930377595823295744484029276044027320347234569079505206698716081231429262518567772195697069667232149377925566573031113854645431339629668134040988213645691175513980989870685460098666514332333150012304404615500227384325260102438277536156375545818031946508719208410171209811104342919835641751572042735133888419483185104841816096902933664702363745784791013209871676899819313575845467350911285805726097927774954885838870184005943890986400416435509091238475565211892539530027090528173746565691623164812640575240595031978266432889022221575286923742594471926902306499621491582063009089144295661279111770549604353867273843210172628215329837797873603705270767309194715678000588626419614230401760940404811786925708594457929241533690838781330249520163562766802125035464951497011525494519764970868487359718352158141893819226584475344713335985970472596603926998389696984364972915123760182568570642781975058408877088457838870391333184907555389622187142446247720050966969498490872008295404872523775903967656440284714040071465251525745804024506180941887345878476063228754717900859058704765599437571281073907387355239038186252232152182079921165852986668760941417238308745551393929093673419752321806816962518889405006908648903992707876642657608180838795629662074364643922101400101378665439528355948410537090334841061516440443596177360672987708541674862835636430774970596707231842609711533584959092039511272859230172442918257989929350910705732246052398187127666261093383690640575200143882195167321520751719710725688131917844147230188495190343642662106974119243841637338219985681175060550979062136027071709763974955638285239092284083397135334624045543087445684153685635731600305242469616070988581332865221247040526996386554499310283672902845462071590336285701502834299348146408372714703736656897613151548416815375401144378350346490949429626499103509445967872205086082097780580796050926936964814329918714819910436688863107817618861731170265129991174369254049974084950119193401137133065102762934699785372547677320772456578193109975255988684923663359791347480308450593078524407171900631410870371077545112916602215981945868802759507871146237676322433845947301672482967915224691952268219106957443772634868103452414870884832874259019306809064541532415342571769855406901696114091376430474280993565085952479999027836570807112158052583311789670104005321519962812766571055517854407098604637067605566351863706588674456558505764075403697941726816335590162886230739733728475803218345326456527481095845764458661823671931536006371194265335413079745565749090658795514408291191887980823583519828481534642687183045955021482136262899264044602207381836095385567251078924759475537679341944170176522067947456659987446121124957363260536248913104466640157886387602270735998433861462263197732491875566920897131373680721781724948579413962728698842764417639558069637740843466737952983090167372710138049408160193194826063734798825555142586773706770442920430181577270618597452701711085223787859272758056382675732258064411144913717517303129709054980030892951293475917103586627509216169959823796578572178750622879588777240392491014337417627780597507699977966859589475678557504014199083634796907105031441952390288193612202211142446800336393985536424711112147989921383615088087326979127951453298921408565707774789917664882410570677182172033343034081603433480947302667433927494585859695660864065199038103981521290028574065507275620871246572508555375850210660954006090618736452829650422348189452743621140217692607391167122280064507426033237717471956486834714040073613930951398224390153423552898365724750839825968747981528299240225990666152715962194857963065456374818704536965477799639942469018073906366872521503650286776236443297667846744563689801115176844324738406683593555497783269098175217437286258626789419847872283304327406870569063690014097436473873464594161652061180471015505917646085154869739134145637297670793460693096151547726391707070670404793328812400715011416962405828675444483555189878226872030164894190624013534271575598247070693737610313867104584198268815449732533968740666723797464605307075190199411587178691496080402758562670993874620732870972898372485669157160714661562412353354135535922124857189925801756172875293514643730544798973877039497937433882248886703845194511892727668945300698355939423897911379518216606937802276733558968390221544237421808835477982708704097914863635299795101312007778078705089670973276275529112605007894656437824340902033580184956674284231687134600601792936793720342025006509620792093753077373541080592545349373364872191214348928715335005859060103143365906028905846192473974126017537457015036583985212490519578070575694280117300784065165649775198556137303890575264654159813234718995416430305765072499484233234774815079754696793865669192087147528694414396747531737079126487115096407977758772434760373838303421649975106368757858779572206133334540764254880443372309373064770156756866266360393343461998780488796269265242618092431605420207035407053414393723307225369246046217375458266705284566573196314693054190231321931401540020718559389319729073103468229047501891043197305006614552382276259748482741570989808438208498740627634128408774477144102119391885340265261315715047862199680586603958772962510068980946281609573222846864363545163796009903505179278743607310686711911844454117928215620651649283778290789403327664228556476597536728684801347033362691423435063025220909319183715740230670401830349743503724567663575562322986857501212892499011082360634754695417842450668108038612471842539704822710571327707661994760889973339826178588251456185823441894595440123736654776211082223697932891689423135956834460472777855301753337910464560377401090681001430278892645234577670717797558969975641371882848030954832147828835811491365594211643667440443765648746454437690401427207885278898617000747539357817300801789844865720930084154511732507033201829220021485695503961937687972718860867418951734517906587276211553905902986666538663784765591786603203343795230417669278480979120995063352503481234017052523581308772617476213526524392608239016662258437885274522341643620333391017006541845752961074443460990351696143736510282982396643295567417439797666547378742979889252701106284921141651564499959345204881225299283599878521393219563578301672330553579910136784180260560631178181550165027715772659227315899144480645009240633862051208095847166330992046754719618564601559032225696417226708457237607184249873007998127535735426054289890890409129316811601039026142439129907194342469652333170075086338638970430651034593010941325141945985851588240472689013401524014588102725639030844303984119168110816531867469415273077483202499103968766597933843860649731242444865910315740099734010948574520902795079195824443647626403878830554577890071672457000745864550746662764686426605821825598197199608640016460084950077856158410562128105764366342877180587385075239974905225040778918615164849360656975309735798740739814061345783439292609821081824067736041442115561494938706794911308484040891845989796987224820465253603982257257506693140450252892086719313235096245635393734289252542839352867250098481961320724399180120685988277364259618377023970611284184540683106990668993242365580291386592332259320666220101744900630190420170826533192885906395593454689289221421825773103615082666417002268144158934069360514882682482308190233347943661101638945998677832727953359589844655748458018931419921635176039454596485966457052771523351306729428964324777746843894127927139557113298343320502840178183017782097091437782638626561957433032149388424841512749797455132995583083116849986339601834393492144171672421985055970626846096436401761723916453296199365494376914873723200243554502242057912637749851348538968560280505181073523276635046512976971008393894635935198180960756997420993833685989638404254047965088130267215580421086540870897991997068053301920802853122166822128245482979453496553016700871858480812468976195849802463100232842228205083272290237298336091283880321732361071984027987179140588169255642348547171511427508812693768456681371961754284270791306241882163027316188652537534771612637226704631973303717818844713262805216616012919519342401914549281286053178878585485367433111998554990063340363578290516470463147967210585847654717871850151604893127207367525162058215705793227620290402014886637833446337213339783258844017308979114972295941324010628824332733994696126324475764839425047833150526173638306706943568479931817859593801418588378990735462543164300486405378656899564010165665903025365218207983265763962536676204540032720986856838621309146652652999784485704656227341967496563154118047483937186715533930763685013033738847464430024911110813575653033750911485584812443306298863458031422757197913942257802837640938853406828434909906863761505028043613495175872124032824152469221098002895932755613576325643917465126975133059276153750228157096021181407091495343488640697092698190643314173460327307560444228404587032748730929561358510677974392801526066046574236790407160133713067387079468617917914102662418093490343750408289457815935421803672043007645909779308156066957024142461182684339499714737049782685484212102705013328967755263764230865152627276371613146894939171622783571526018594845680906840115243355059151619168225907890374127085376921571935726331145777240382904908531438255720121736031457552170706380371177273871294183693881671810169467218726858911304750410534540584018614504075136581895085426968403387562044609095449646824875130529437603717024076948892352984995369652031635692718245078757558453297998539802295816115059755575698613776826217083039994144394163999863571577225073723417941461293848131553589608301227384999817237504087984267127526095510056944552692784911626370297373936655044930537471013444729696253704392562717373204820817946247839895053661808860081356101812779312307429159336024787414369196852547862364400041376894700366416074098300939916254429201513972737349650238601878823133172932764746222731829878567017585512733495306987773502999764924985695074949728580927152516912578838545443739470926504358667808909854607037915303478674842882660644095326651435848229599379635722768698726962793256191496477774091336007307060801521995171498395129208275311429361047284597191181762491872220571554893117441285889368596243878824134525106399129361833441406100126842140736766642843155345506154365901711321861913102085963149151202961559398924440689616623639958846270144908681870767002852488617518559904473887017383440110582524924046053359099868413771139478651724003039403313206015459071957420995379329656536662324522024347203155716257957412987288341042113030114658259011149320497926387155520032213640996810914790199753781045124276500898385980218441552464425600660162380404649814030922389950561502954551850973027247291582178094257257583194006208742474112457450567675166860729153214819700708231301168459805240490426564004333147567981851847252454013054700862251841368854631464109720469373986622810745365546319133199063562540535849987476259110222960677940045802370438667881768643989571858751186880463427318324276263132298115087277415098624882140483706481943228386988089535026687122490403830395010369464812272633526600746854290463023799312358963211942727853490635930528594982114789899736951838990847111411398141568973266636483042407799721302653405891174966966709966451116750555519271018000352805350752476242949158226074427087077307826510485816474366478282529409152169222424418726691976815451536637521522834726276463736012015058808744796484748834656610797189689485589279535646013118879348346762474450872805231199362186365072010348033207719170480187057036877052481000766999961409093370002818222982516726002981090249701792237660504226421851111563644275268263821065474165472277249871606188062219368774279484950398088572746067134807866990406404946082603917180299032911049632537294576205604584009715518454367497290633619309459750899246048514918455702756758527659536995932871157175529066817883899232510060957913508452555920889397471160706815888538966015740149968137185483969085616724275407159205760688468986769589435000120440740211338799970186854044075194963833052532674727835951168597946465488399868297874613160910287989599215984089650983646535606248217847308426573885180198354792875381580599208820689042128080020756388936783570887130903205558902881279456358283417469575024354860366438122637611233579128032490461536777506857143349377775092956209934012337649859601875750137916016168740498519490903785252315529393377406288176149763690633605732649711515956287112656228162253747129759926247914476891810149796850162561992375201605612308323699181716620759946652019008959481750265139832168769127568284143242171205555878856033757765215144007474293507866399685761160587092733608474152331375411701672021147800366534361449682647968576201225618699507947175427322759542529390452997911455879656551171679228398423749240940237072369223463856782475929541098398057827200575085123017834711675262383191273744249474930055231091929265476099483376194729678960379880274727579477299377056125616192301463845515826356651737166024428451845028276736712809483793864607403407336173232084457852972710370768764191730416523434867603250601107534191283486656288043227658604523885173629581224884163245969100919525666894080831855964503931265369691085998660103129993409216068362013489242698970908116861429195465729086067288482341371901352460461604156563005349795506199961859546006082827842538099626815293274331226155734075196063786594537137420882673791849307126167851682961479683317512517723651754309683855768929175160369858221911675101568656812559478644856329908405527921591802323803857748260531454525284205994303442138822153848236670154668648724100700603663933250741292173089496929289749030539060998299493168522788755541560946133969718793273684638450702483207437223581650112837127878197106045091000042979636880966039811220769256698746558365940802210415798954715479308395555450139737854108126826568110439925607368588256072479505669870309723172169686445640172375667317421959342176903849252810037809433150398465697882680657749755349479180725132816256178783807315527649222429611668108087891928333251662387665354867625228477992420083369804989737091497274350102713198258331495927681826771751372292372847502843363106921299441055619111943028795204264898347517156457629723534391763745636699591033497996808413071834606829950982285306508912076823438889774140254460740105585328859515118019926011400779326099989498716527245448495562220623251691479468378362210164098340302671042933234776254243888075831736032265275593939164625729607187611630031596986161808532718395853272585578691900616807126177930204723670366471202958487696621402980271828025973755671404363638069709512621154309965068624260995837819088453480121603503051077713844163794863582098713204950369039383504112757155354113372356310009779875089083297199533609162293124875947358127013320843097858010345267781249507716742914099077693819316310726124429666360342704881314224320552520578353503741697113435298218775990621740740206731582665128233476935853173505438131789744468505135273132907831554323345034323087053509472612547083183452573324385567388688582969014741229206689188511138076539448933249448851499949189769793516884377387300639522170833740409584909039116473225251191840803620582368298837208065262092387837872954386630217578363181181444222512445313392308730638091192465876346150391275161060372216378874222773734901892358258077864999587310824625314059596685796591483131773301563881434511188765498632664304504786925136979935188889507228303494596195086831001810737412154632611793575071809290703693585698207310234037263244779398208562086863985649043948034511418145720185273100997211871318983587163918595339759815392012893774424636605830609790567832687329587603564489992976637655037543936074415222807746986298327607958237455870962192910201675154391180793537908182859390596819443192316676668537808761491898641934975914507696240145215757909359785495035807223015308714120996467212976926054985558255072266200522699351693257990264987011638279457810118847413701233485138843003837637735352281392965300848130891451676517427815398659326131111199805724356410130321499269165738793230551696216089395801128189463081813222227262938741701620785789906728920491776721240815412045360300360041414006285600468609571387782219808393760430621598424615624568671394531436656935830192100823929266470366878386518360479194550237530959635803659094345594730561087099343703305666928211404366785689816296612111129463577259815934374537022198705841369363947696244518075461381236890843139598369973241705519597935595115015118583113308064662669177927912291502372038031228082865411969229316567474143902440403500547377276373832327728691855714269801198068012570042053649498653884598030404535358865090627134937969235332535892714152577677049280043994345528531043766400640697634593201830177032357848330766215743314310286767912013048741360045485415786670003155982262035981144954796595002926078179846883101952646592946185342129362838390908892973143409257944936561120017934081585880865647762562678865890838385640676206821547374377175374495539358945849052546706058330644179486006962478206171816005331353304343934253420342350051260095479023248589745742919975243171377477190112459052845826642072110637731996537646158827491259096727752237631317255398226749601213987850158885283087908058627860406152912386529941808672690308174398025742140771236149568545102650054838231246156024757496173944152649664386129684588248269553909848018979530517334528423754702214806891363154813781480532621877757768947076104517158709606770478308206995376084007710156830822913398521843675629233460418786272415962398694267388527307761541104596359866740988011753926081588556130705375526647650034354726869726335353394662344539310452047746279171050990635648132088934836568160392617913019880547631508524835561251381460612630394695081173073366425205190792640017116007590908800845005231685979561954301994801378324296236386711442604245319057979840724693659881317747835723221919857985842536878358731339019506037424917917609382039976062602881631617820274441206885086744950313408460963510883012087282426778456940634380798317245659124259101516607226018912119473422509966282395687686001162444474000083881610156603758445824661010066068425140468389593729554988275107070341421522213635746431749384064051914674561583403546959048750948055095546193949914706490723920465675633625210390825666799004704633472964390711001747565513327654753804151571327434596619290233604808728608165926830170844706857177834597830916338407578094338462034402742140725235373533477841344770767245624726185516801103770887372553328449597806651212065494008000006781829063349403911122483238345468280700291346065718834321150237272489384290193554636916333734928334575414570071205019471495429340213944276843482993706712268077911100424144008793521015688598077487161505808502408291745102647830911899906459420833326466225535962885789649885713141158394478168485904465656113082423573884817525108030603069076255072239937046791852445225297002054613339009346562163076509516475759370610603661455565745858917947787291590041335937557526897771853714016191948743138411952636237805934899696606008222759623826164112993714702130036587115296474583208911517570057144638567028383733296296080340069333253824614228112528606923005516210641965142593739010562187575950844155351297042050173727700494161916141666564162469094826698304254068772575900886281309475060992876231556845176044388657208845147328323467319320999244061593140069671338709568888046990986830959274342407116111779568803291825128135619915841964127503508940658842088783632738441719793173357929120614958438576668636349362965757875548432131589437040245404420052028172890368987161487360282393985770875845625893863772837824160346360969872488420942755597805726579931746931740195039286654211782183905895101097529553839956297810859705739290410134936224809737628750007083976267112065539832370859649815431378413166376518491660511465027548907879889492111783512271755846698232138645890918426153872331079043946815550006728295764915554337753412585162668847639133922642223572755030751655313030740503889257024735956903588821939204804398831845040224448957235817105369948638177844879258545175241019366562129168478449744326914915449187511410322852362546107626954218685645689076566598002658741715500203882172482281923045553877923160915291412154136717282251203046626233668417878624618263021817830278044141366940052585789548742010813390275466663018140250081852631781772918126792933437226898257926335630209751301611862493322063632294755998464229499135082899596636615386397035667931276586495859801621616125190758229453528854663500245614237634131387035539680606064762344490989688861362632917368998048638246616525917258325905060559076476121493057886047068917953837412491366995929888822818143898015379264499437860010574305122084623919156740476669161286214207254722024110282688712934007464939333140550086859134249883865549501942991756831056502564209279230186545501787598991741136066003206153424780974741358537525038955990248504245023433950636164565894800190948605342264781589478367398123010542257115034560034179067564977097228148781770700469996048795656207476630420029526987059591681666835749504540550615405320361758199891378672757496306791586620169495502060275747814867460391133019693771746471413090257094001266399685271644428357620213719317237316256807352283166842244219976222079440567260262575512719133359435014248803712323314479118504571920437939953363210887721678198424819309381845022352876065444145116953335346305431906401365563755527665095945253462184624854124053296345422670886383799047723029290804386503658713142795417658602853498996112122993413732316419407493728399586958246272322817358693135494278730458475055372234022454598732514873808418952290919709545150741492985368426012140019993004690530165178026042869750623663368948970468996605388899643493474667823032035522228071467264430627295386640782366836899846464477476302786367706435588885917753047466574256434888001783235246757610163306565113780908776980637805878587434879484165121624910715786953823755065432942366409399868813210553433661685769094855133870652906631019000064700045296689571698531335758461653071420312657947121318148318912894964044530600298976282839678162308209746473553451153629033581065962213711709019146021218479367406436291493884393605942429936258868584158435657640034768882696883200452594982746906936142159826339043274859787880551886590750814922594043090448243476069750612900648228452686197255243235404288053497709796306382111781022826245276604672522706358280687370945317544748726215383514346623558820161219905250450307563838314446264689891110984967945953980244176913065947892834069999640613370248412070168383450989607315220649089724456368487487234193675283230886083934765475307358605703067738663230494086976928582420751781893001675292326903683707921185333437756608104279999637072391877318381607827994427558668882514461747804644321831518407520898674140148602868277313109821251869351592082712361255495879354469670346938343661638113557550345577107543951470149238132400933698985380510363388005429520563823630508658238358678823341278349554461938605454009733363438999563767059213772065131375422805257976343820158877254522335133941917963670622938567512189911396264876752094083226491285963486819536084327370668023870470684375881751374515612641801748101810297041796609053950066603096017613945358686432890785138471691155829445687003513940546044630184837581664826386676797929424082622001079598433315344292591266712057916685444241588553080092403828084801584500179758538103872317042062073541110143701062349232272187539465233976577395480890972640895067680655105893692177768636020779322593223821035110918307123649729413219933961455489557720049754119951684258929037526757736772743999806662878931647000738940140961875761353104104682008295074306659116987341016468519437472304301576487370313363210353064397852206500346152072816552043195397151036616781086801628992673258673547214298749644949050727999583995299107626480055872843811484952080848775305193353143459886329916373811834466106376680645139858013444892447961754488716964486841482354969866004650454780713427329990963657797598345295329848635141492677798965940655152314070167259025351656102586841608124771385063244402615572057560388690866726542320285663253385218265415060963201025742997684211039222547823597974612041979581536203636341600514327731233090051756529522315883335948498881065155461758784148892892826820761382431813964669610043716129017242065906246815370701025159160613859479029400052315813954042952563505046221544151033592931707176843848979752136328835851342115252505381008665846159828957186244137508391508153633397469049973863332970766549848555656800521929046262279396897809102444905703030246842819382903139896159367821939133155422188593445711240068389401074666828048134541967183098416897823741168893441036268059652366148408227588417223516146013199615825665784340132306335920781655710056742989196176695068718439300529916732523569867327488997769344317950461618899706243802389417921858001140460885782477376629103522494714351743590917035759067814215024201065378957357241624500922453832910094684490227539602857920454697997338393226989484578820793129886679624224663971750328802000935217078525645425478849126443578901059335237004651803015512315590065870434400437340638457081793685977776061715553696067216050962662041860219793171093006534563585345549456737691633735960553969544364506890397483654586946302768138403343082212744030270647725818148486891952783299962861346943747668130995889264881578221730938714174884974539220303582538313895044600140540586010257114814242467171232937829239579435045404734232710414429055556706950859525761270342371163776910254416382229633041490708105043499606544375377037160097551401720086767208943676104813133193207572291280426455544363200712780719106371053322241801017589162895470415791786023365085540563853529981617270445949821521608169795843005511604220445515630049342620873119762195113450806385515512610391815384129062102960971876088155784273244262697981367221260749076996686675752098196223209666018715351885092311574538589592477118284971852228717778342618157638853046047942273863064310979081952462382743917900052156501352941397434644819512933047910648010499650313751649489049961424160731297202569584264085212774768983199688561864183928728976134095143257504967843146838061594511478464561939217532601404907930928570349089449931941352306284579805660568417024602079072930949975125694804584570503434669596297746273029547223954706763443294063990925589712119834315413123950479196660192396399255191304724095466059246987115550750540402775203218040082987568396714211857547518837635404787072050156934605532533406756270559096199495713945546076756942513867102117819622485948974972016064832704237470512236373410606673173270553406377286818679755358790713587747738777714831454053534819432231737461099492184473295878638689675320347758942912618304525144327846555988021526329631632170016962156207659671231561078576982733661898171414425542143595991955047368961640661203568278804252783077979349524972497984681788186845349203913515577599337069550055253172323661380641255389076534675916664967253690061381955873850134423143940401663054088743295898465382753119750326527580850282691104998101857909910231680616934026129497575201213433446880426955093071067997829165621502950547360198456910307885677008719139198188673825077420608905190601048147050147984098011918342973453542213835072344871542376960037084763547220545733152193644337661042194582665041708875041455061678942567785257615159561276838684172602651818112912089559279929270965181995990400075790811599729692517111701231004343750502381851435808063548878926761301718324278001386089987818767958646851139707118101169701213640933645874451650745070965782989836504532673688437597913579466087339693033049755857698682109432767815539287740911552478431101884226032103442461599743042837589246508032170850132472181374177721652872314840223081915589219342388813805987760114536352336426912076930615316058902969769836402580632476190852440259397005239511659495009117747480651855509025627667985126028094712829516115550038533235636297536246705439716859099956688828666927582562549427911078226688878397402211290786680472240571398740538821595606260303520679051242884491658267565063649885925587043478339906544560818497866699832520619618525456926051424931355311358109456652961287063448348159133012196680824505723196886297760342873905420496241084609780862406901595987807918811678416180163108438806056155879342269772943122347210496121503153310839056121512226418903395591506873600748610819544670588643308666247536544197534523647652513074050911734723110432686704236480498587492481935435644210133810735984772576772488649176604588095868424783068494834586047766158785227654826580399389907774278154634245668204385252053728650534691869504301201833661937360733479990657353404966869472348452543036282249103890724995381509158035131128106721712493452526319316967352870273381448608067501098834944214046635013043816452288846629691664378545012655490732092748993741571642048327557216862075353509988296316783324819062867027215291459094062908605090416066410425091220473731647133898521830199401250649483329456198111112964274101687699537111584289375646561064188721197587169075806249353920241165059815873107588900888782806197046338396877380504169877928767702788361812066955501245451360087963700554048043996081971099009822797141808168476740100009883221571951166423924430970189794981540727394475236352451374426863082521760503813928061483866897459854318711004245512050074265567482793374995177373797354533919523401814651700813416215506172221395384618220179425895008710914222086662803308164768977992777905730884213555606774490956141408885405559331114380965001193570179852627510735406245554530955823546360570084306720729373898985820621619595686588584831153930206312683151201125093340436299876624324185306329917875748083135777103520256890866831676363479836038720364130027520620968951284039257598705259696085189287702078605325294785440158968033525537890856996789145773638927166974118418520040027703367124823088582947925048391304779226452452539450176171431604396093380213274151110754567319403732167668035359683673360257118847973971087885877086367041929755645166917003409190247035300225737726636156356240416805958769329076646181509758103553417923457656209652168557354806150464098954427120176266560106988944200426140533041512164344800443105809835036566993102906601806553183120365323529435719760028417828554985078497746814588545829818276013022522617841841798184804050028407567088388579486293984369136708610962222554410733404878249888910385133366596902095601033748791668512223317777472385932528659579247166845885656503930338530002603655650880403459284818413643669994981538395876311676566318566303128761309623032574679064496615809476015623734787019300664541983188886984397426749938538030842417645431172565686660349619762787522383277332633153817413677608375815732429894026411116806570540816100003338551644756578863137868356446108291868339663679015426891664227746240090106994632076587722617818729018405622042489428280163195367491942687554597677671657356794095529750967890313762776225354005904571587845836712578751575971279600091072916386601991600787920005895769217708895897607696559526866548776044291802759767992334806860006493961924598391391679184079260590581786399003820855734289638584308988699467370803879455374953866531461552987573003811228091410218409004173746893564806628096327424204727919295007544931037580506136003140876151312737970515711384489219417702862362030198621282385407644116693178718848889306623224071755370320032410958878116029418245991975204276010255584444454703020955544926050740610578896911256481148683702660689900422541366898674242713415308079895926638871634488316279063865855267932935264115861822344738839684962874250827385370697665051813102910716719915393069290794317746797193547769679345795096587417711713060340440329466485330600335894507396413129366055375192432876934452363293581763081355139863337807881280895469271477561150309020256135617875923162957502069857181214993916033228244379805176784456779204604867500119881876115022652157051167182003644819438747161333317365241429776405401534305245734970228090826870408471727422109902976431004288652397109078224974844891434906307388021766967030193071090851076215838984570030001699340264290087263877499312712561289152939656265834726544423722584809441406639938860932042310489017052369411641851840675825511195438073718314788732640985553020580408551416757563853459650408246174634894379988204000218289355883623532348315986164257107979168838279160015436216543799769565622581131193074238422208256339110144241273750142421226166645418182209565077435633169269153935871491912106362875290113938479904412547996810889831502839447486560405407278132072165934657140497856099240018614745592320716808743892555034467062734201276625689710690297052280296496171138713059683199630304696413323456931192782099382202168711940367431355750680359866525461700155597364818339021535257794459143341519622244245700998106976559101457322253137440219414987352701586183087504241702297535333246144631716586791781942972260345923842835234456920327096566104166931168512154915597706964684674216885523520244943741603428701584763050645558661089733832817382339044517289613271927997008382219389122651258465032396594492623324905994074756290004096380251873117590648064590241064518082824195811514700226686276150950326245965099002469104605048361580230056580435004744298675532068114264662759589088663007363233635325456512738998466076293251836405752523210397488983927731148812168495521092648693469012516836606121113252428991680911776939118300425458069884114770204155630169897930423189325149808691352885295715242103867384955164947229151864374658449225387928963568508328033386460445533430466539757687185437512840588719806011741882691120169501522935514325080401311130573278339671891628282791683558266481079462697438270001464208033190590977899722588382074774588375126895167324338395164385116369458197779845905933434373468187139376088372826544657713540117552646449599079841535984718312826608612610739040125585237923526446971274239307175944875236870044127015783456860922608453008192350281675443250664225821338001703450600934666306900513025868337515594587132362024042104705574594770295616757416848230508784002883675410046438979615490778746869203719759528264895530942771861502752574435628674137411337402705075168007612678487524691077578220541803732991726869544817702706942717831238584328628349751840368505772963041743808789991019482631007612410212736116556002851373327440962579101001303500814966640359265079545517757508990304990036019010381859353569854387548068502346563027833841290274721484836344497061906232577817569495045846941386815146036611650983383795010187296361583789307061239504874210601187117507711215439127068997505184603051470309525386011322582703161932274270346967277757739898277584274811462606345471578060411089717557967497304429385347019642129547275081713849840272403415378351766195690786663103652302935718851517568278043456061892110489684911874800023464033705671484221030599595800813114421497335246938356433614656261323175411187805951241012016173535763076397523022389309855753807646455921921410855222611365460573833890614981562659506587007323681180227301856993872287206214002556251724435374755279049897896444758805173387106274885262448444532583916139738045545570827154518551786817852927743621969534582058254600937273734987957691906765130596922158117227347718073432532409228524413555411535137086216908318689633477866877363087858075620959747492478099213903641623060122647505130557730662500744867508243426225536809765945994497608753651171754765593293823888681596138320492286779865404502922418169964476678932845654907714501135242986255352543789145835602651144052450773661801233887414646460577590394912340781307912215104301510058739570925972827130576619374676327734148519483200591675067650920814829319418659040563884374535151002870061439816832683464300628945123267864170416411418333983015889061725049511914530448461823619033670942520295880319143113812503503841310278624955338150852263230836352310027882609467090397485322299175545774356904952542961291380084063350792303113131830242808495009686248600235714289208976815948457089146852319696295020555957933174182821662640320523449334427465160015964467204507055468232207053319390860662844170975164787709147209086211654488395722971568070581036429622512368577371297021395949264214587411442634357597036997686028959648583835306183541930554502533962747475082954778996831728861150546809229983005855657879171828341249157988851377273983198231622046537904224331976212129010672902069441397985637814418302644913470239590273342677218382528184367042979028343501009134191469522089595518799542495839262362079056248270126194827457519278652818986585763638766959749458819653292309024164578355504607834911073224360189249839663069574160031508237440587229793584565053615256960293921475487430172338676905678548010026381861394587900349600780788049438657435224096041882160282954926371418077217986230546778645099213210121873466629983127874235460426867108679998300125077579196487025228944562932305558774941004973543913331564301463671785615606591780238029809953486544486150404305673645026426045393802509061115848979176082567193702673055755791846099141867446775021670952528939974566797708940661401554248214298150360577222496414823106787478929819604399936210209223332410817646340929780406993278134040281552458159584325242224350353785469997386127648733255617988045393267111881431138588296124993064810957500339393641095270056969706405966771507634597045414146980839329502675852255791908077765979584797335981099864980241207838548217285893413041898253151154458949044761282256965885291128145938153669724455992456690538332954841690197174706539736751380953450286758508811210555640451278502670046285468018721531269070635239096666774549443656840393358193214744324673278831356316720153105429909584776551173674045518173876847915758569295628451390421366420625517377536471671802353964063808555108049944797116669239523471497969040666488711426538109020134621965367664812766916470105147228315819305881728178229575826647585425558718223910190798020827436554866973496920144843724044257910405161310283349244953851164981521307924546916163305031940082686094554404069933104753032767487273206084321753300734933965649471447524420981406694206831408044252476484424307062809092145320235540578896398692975350368992575946391131552200903470780822297737965025756934898134731377302887376697893347121144463409536691838204496746237790147531488827388503703556888109810271862295218798574911670758058839626217530879504512721383781889370285488135707955264455985884866758854494596426544503840683656952595211717060609073836411708998851358121837280834960081112342514948966453034208943006647507074276593153899894738151290130031249381822396861046651704813702401880073433161657957844740870977631533833347475374796299405412259604348102052743155209156033102479390720976473092575660606954408483480537146866964044811413149823342553619763983988182287093616629807593600479976737041548600530675100492651902925230935745497910633406228767057742994109396777367477919716414903323884002597606755991078295083123373347910908667522904532943726395919490579709921972276704953035565939480212047629327862059587089869933627745888876093387895854872768023445171204043123609753243604561455601685061968279938851746530980828408198488819501825696655758475437784347374537842675191192354819483471462295604883407984741308700646083810497448509136626089050157582222855381226768367013523716022976962533317521677644713941146528933300668658967743693922631957508760116906318923902544476058871234874715875429253295068183338391675098363735474483818493827939170169334801414150006633533271588612814865993156991694997125231055410907346304496478286835018275684125412042697311531251062546195987831277161363761803688468488049666015334889456528111858643010271667725783181225959107765624723629189527970488234420449288163046867534880000133160765899854252187283645812240199101286339690844509704010213130230724580598165919267993175082833183786326527935969479876132135628867781849339617332718872932757919745065310066772794680044797833451660481486579316873624062478517051949255906766461242024871747318012081598140733643307535446441898663787310755240787948565048559653584578381945230528998182492579392068651116563038497785008940838391436202623843925248700232528400141394011968994494259565155182121712907499132699544516149203224782834356504326387030791619167647362232260902841366119803651894260082467358993701648067000267162284334690041702699438935599417483237958215514378990138443460480609219487504928594122416677083239820023128275932840167833539228916926600884493385368453541985803719701524801233316640582463533400222587180507989499641986576340418624352609819249657790140755526978665918222308038896413920358905009141534078784925747150522306133777838686315597056398622466918599402966298198021784653482418175509492726718930855078078850259998203562452567148543875608462886658774050005616564003430927145949525046060627998864569937113291604849491466549804746840059383626692736713880613862641188813186757441134813259889337434553366129732273748371959638337279971418644705378897880178136935808423670704282782698922163182475822158615182427821544048522228991278766721742874284596139022751662224586152065962116399344356279622587523390455637312757886808560811025334671488545838387268283038285296641354498896205141366150606923481077333114021273211444450349448151499029678199210870372424928846418960182832698707052557521502082619690638190390565131025216591103909133305985689901893049421251082200165682227193330290852000013660610599532062238857797625501957136400445089770342203631743565651574812977880414744017717729652785126124423235824268080971239549940090679443284679777580605917143469417057833657393826821903818430178219981604574021556914358842716503656677809357363354566813126600657046252795234895911890694243800535737024452684071056902552592153160648941254362385130650987045323365779554721756446264420916451814042421923101036079445806288958357848449922982261132303991570902976691354678520569284503760041138719404155825642800993281771204101990195139384246019423807136177783805889029796266306757855742472097557181700533144854333481955558783718161458537157741762535532545177703949208550483178003184653421257069292427442931298711122035613507816436686077415203502552613647401117470359547342950815208720082823079207306583577901211530039321630188011924111580512279143281245862794614835535231809918820439971247204273491397283666667817358560859479053782734672356352340055108466058039775192252546074143905001885063027656389590235275629093979313047632136999553096869265473283119434809222618985313935100079545539184890658800009174452663308395505765856866713987717374199313785026520339918926903319782123499275548493322403156781711302876629206464612181311439918082540698127340977474779708203721189182201971230048029078367237978645621396096903864353733030894546733421989298076715185292196938067969002439113599226070056291407914164470124863286512258084727448526508179230142738469734821931358639295546005311027984812167482406574453297669501741244053981938707786988473976790467216976544825515013525434219873385044476547822027648630132379063995511778331859132334226894337025284304390891474164822495874261879578654378428324870251664755119354309199425751918881487608759396124750421957471576929508119759171281220959633798640764911447744467755902803457385376884103325469561977334019908769166537558329045561200050703215920237932348148037780603329852403858933091035307548956614923981990082051451294581926757382625078523162561997879878194776581287201649959070255443108459201341690806962651595502468137394644000369189609712789487762765246592394728127049938117623944570801622100697304547748818400766499688053831888414104813403238930689142767432371710838090596587328505122685995614480954214868320602537675704505080562920649218615040265415500270672702572717774716676496197506548349529620090416019843037572779659085010495085146030166127121881130079474516739575410352962428852859075770992153851550178786376470211131351303433775933164251621899473345155767515084797284130576895440471392672549585278538583062794870533495772312480158108111423958285645954548779887869889496911342364706154258386220528009609176574076352808570506354987004158013491591756963752293469441980842169993401128326329259427385374606782772920918590800106279874175801259572820572011640812308687977410053371694076534987616495654171371973756697848428772197052680219355105276367116082630820683274308309746226237289112984618873254883432015062727224554192665292975312238613397592784123202033799755519832750232364667538979638023831816348297152412871864438509839179226154826931805040310540841979681678141273551001987299940618111476447611192755653841987342176356720921693519782613683657681556928475069686078433698926523353866009374021196305942384475166139424044049446332487473185851904148911626025859567392091926516327370809155446365724201445426223974471924084929514021290758388234341184152992019279768246025480525574745742471538275454620816391074847838316723279284308264263925108871730791708919408286788952331590660023351882513263775310420599918045255669135580955371403510696006933568103396172288634172144873291909891024574830918160949219620679912530340236969756916259306196875053504363770068008700819198935893433646096356162411495246587600427548480417930037222502371440820197336311007707986679328738774423831742830003806228647123684811295040163692676411013489750279920915631284480478367810225609964585157963828549011221068027780334598442467024628672171613541487539805942008815266589417992007440432230548859772367254577982719188936696578052727393928139205651015306166951654715532620363166921508218901611492967169418277230141063216882279905720360323392118081814229599381717395973847366056398940705126467248021411989109053396293839449219479797662876280879056500699166214278578182958292619450201418923373042176016695512314990848218756211247464589718459032837865449782035626280026842821593168002059871952121477164225605433092985515305503572296206404904522321149543152963763211420464196879112667697633876789264595590996415410921025325016545597801556146726840373634728542202200414412183212321039193490865073471013811796575093587700739764957195926566694165411098119874370000847192245833266893027055650943077066158042300593789230802452387910637873239242448900039520271447434919631293939425152356838248806302176259504616530819503012393159055896025843252378245305129279173575766148190858444116355559275483987227994962297155587954967518782399740656121574058998149577858666842962316731601788053778692836206460501901197668927614965092405278518819569322394416593811084103310428951617980108787748571310581075810313159320465565639723682119815857095429554745217309285129290353291697863681513391231425224612330550828368973335393977872546903043360680265435502891690607429428200041184424744229464093242660476207238094776776718155990073017603937175209866596865917516698941848604381582457002092905603699097096042844918130213693632255471707083317049783865256512803785928139011138566540794413283578644049157431196984046820291931659528900410742716553832593826559395465615114335673641548296259053666658894005373426329523456620235499284928829348778915578569528344346687280500829740227381010280038789140984819879109237070867870169600917930984363573774901928709102722908933747748709710967776305277842149955176979350028230956561423266413800705299791515021977004522129229027781184797345718230590774215412658424366634048240235182871749614439782930607296946321415065090226858452872061506134516364237576108517165111035192772724436282468809808781867235099556869132467518748330710448891910027940211603705370655410530921114752844539077467339512555277539375567725231331911344970447610124321100000616551192063368124309534391514058554161813183966373495475157100034750716723983822449036539582470881016788339194035350723149085665088960383619746056599007865331292648189592048230062635870666129704921049418866966388869780590188822934682684424185780619304884968807562394130426952800375215523602191246433469894985869293251568861402301220385618584112941803125027082851550579000588551522391934135890813958063404060247657549523688061725563960388877276778770737383556749102566821017324253524124349733547124664415820164841646288630099639148965397759594099528946245875040111386194745318790148040469212966987761526823459772947989467499377713073664728512522787364445788362471923315884982011561317080610805209860267362410790961819013160009595786803995100452002982765096278382527943541532788001816882301478815964379328107086611652490624801531538169124204248965624170318187501532353445751133725982895424078778532740140381596205053129361901653421867117509996275286044914463203789517801364040299843488944907360714541634168538241481437887929636792023437025133453970329435047310208425624825633470899282783812376677168874174930751151783710254681747969463049815897129549921404804675280940329984778216766400287821360585663876933915314069392191837600488528392994353007444627903900652401886559941902077486392069676368149313049987660229232814758715746707688148837822769288114069259885609377707750746282901123187581983689011563643705611288783346472763252587364884213900198291118371054533923215735566426276476975670067930849868466641573579014868902464567551781188705358435511269295062179662498196971579825625192428196950037645168007197885714175964120835713810363378078249004180973898379946632010356453728760928375629311687421313985034490025854790473000468654478670086453784600312990584812976066351359160328150065757512045221369141662402880688747588963102697205155997787617057195132011586915228958238686083448591614739762416066039554291925352183274870830088651866951539339925231928500715611841464976072813349279575971408151258410708709711451033400261973869848438188237077100415981769069847010947353597783131471947177038597254139297643133346799018360172627727847279463228672223832433186798424639016287365491907013697746856618251547129243567434119888363391848488318049562638381800645215239742888039438482397682309057450958389637963483969456152762104397199070636949492682058108375060313387232282723982335195290499060257403470978255123536561041014945001633175210612221894905086686239626500519981646950928471707964078429469155308763126443041899772633571888919261578193678645784056396397264691202911425086133291675109536543789909363064675944902962059130752614345924975206253290234907228860967857726007879763357572690176965384204233322328180526389481164418895899556720974885394193647919016065810172668733784668584255579643729331292281604503936099334455373973013325455977447424411952006318743941560503014969328722598678934767354938087792206413475997019707497413612096342851657388388626452280357539855593464684736815610944701879113495485549069829286238042599324610104613316820866747008684559928120921820020188033030027974261221459473826154484647444048776413028266583611558527704888467502172709720124581615503287263948234022851025107375481690659060754693395535547275771309029983447887130010034671487860508599404623996473080669486469558076517381971793889338971768154509634568384316069029479938689319474409185538812550696820965290304724265368465756339822234791832684427593793320396844793240018269030291850879914404037581217471064588049347810351703597483060919827304658010242138547789609822738832196822752156557577830449298424321189083919300333265955172104371490402600538027452915914329512156674089341859205687893128036168827315118695031399936977319117849370802025079481569543232702348961480737886086830160695237625518380917409159676486447554148839819230097631626767833696170397330120435084937591817640687098553355752529272051781783216118484541279070549247876943757389868547301582838204865432756945094827083658845121926334962499469994249951443194479012995556947413238631120327657057624125563166554212558840470203189701096142682131821747452291839196786339502350134248331477002225116045223595066654659618838266991750340015417905942530241289435037105031602587894172242453725719381857378275034999121410565044594734504623683898857493833227301922878203361547501336307104033678352547975635007500854010113615345967958777483915028953820445618491245939233814431294475778958167215328113860338077753192526537308118406801517994102749137100200558813671092181069431262743193403580140634477843433743982037834338142878593760070755066944740646689378866915603642398603765224985926564404653015997271342538243703127546194781946769262407137169737755280338049090719802000429826053551138269949572484018186350671110069134964291293760005805238733541793240851263930099294342275475797461764311723862877162937725536432887437675401922424547817752615134079634371639383701087050171003378445725743599659855402711706260904858363733356918395778387589717693838516121901644149383692632255866653766633030449012771369222087303041116887925915304658699677877513888713606230245454241156769206846205800819723554842678270036854100976052563161897206815118923329758268714188477298331011403410410383428962674057373148891874203565765287968657865702219959464592758038077229343215393757569396864523215682200296085652195231630371201576461262292473240543621270306673466917921047800929918087021744362140341876962446127419009681661416928251239014472397261323774885484727542460822432872027768285114136965570076902008781757260698225448530981807653542264410059532189957505150322659209873635236395500023923331305972184039300006992156515497714056899317041977940070962355216606686035050134533622708947598559681082694352639543920247192866034308267544092449813467920020139275074288096628302390443718971944927318619949653288340316467804555770967521738148905372128341932165549290897715172754283096912876062064781613031790773331200434128469411883685219231811065336817037694588743790394922011308891491246890709200974341090756317624782613650877284900321235323589151377306766537408579222611270966030868579247382688048465612033340693660934903954276805772757998117772593313304335604544261564630825371033222392905939332568409108055530614365134426710609051836306270815056652264852379688355508760985304394184275211171928352680808955616828281121197902833065438861511768820423021058193440426270972501869048061813656921302044951407576364197597333682528666207120579653407482423285714697513738212999680741138175775530696036064403138037689281216877773576452069362876954611164820356321912576178855756607688270391148717481671524473812246166581512617215532062194784961977667071813103422499741752263386626227688636233537223347417596664316059649295544613228689425160308024924038981489710972720037840584092023758833491255265631604324918035202221015616056422779048072277417399402390024718091675934576168253705984376556949977006214263821736964207747795640524165144366093297873535592731041852947343839580179716240534570388190944929156098290133995628695378975962450649215902058113582534371839681960327400473655286675041014807447385298162492121002289427101861520762760439027760698297486676149034585730894686004352152089557692703923144084600108113889165109427089943534996028620496489162355001761549821958149258977244812549998399030636573601019160679751707644681084598435458482906232038480020596008126096995562961777248503752824141176977237662768892220334784894446487831036050087551143362934417664751729379812470769321435176338448436140825760189345514140591218999482401192494485545974568894188379576770819205837952617430039170360768913271700683253274639123283011334262247909148109088617173861500148624759081818361144840867752277638392689865138401028116289669243846703286939394801813544898018631928182305935860259608164669866625683023071435700863819867833420048520856449391315144458360417798781111790875222060863445090063429809529925926111568666889820567867952690770455466337024906906011532770761782692133898000182122708273175387414095491110828338269798643924028219238201483192707586924812551845366418752692906215347545607648347640405207179150494122794941014858580203537962063234830382886347691312799199980880481037675713542251963549274123492288331444585844198659260614567426617704643282233685464702172107781476897288952987838559110625132621504378011612544263297690410331541511455936538451024819848787865943087224562572065698755556151188521806186815924559658794136157586468373321780561024776723497163852642652172799094239402111859062728502615089870544317307550266840144061080019044339102699127423261464277912632828146871379379880056440932934118486675209531740803576036593956887322560925922357054206696436279110419812723746718300300892976269587301309014803005010851367353985935740625440050562925805883243467386343805911495405304446640083015303453289133335336937549882599855795031587641720215463253616514200736260841979977443638156586833838141405658037911155757529408883247117919672749918908690576826632920290904606278339043973485897988372329137025127145063671044726812525059832758223838919620494986409658762999735684669865932674033231256846669785908947293576974893570159693704644307442625299205858604111888175422470687067063143050087641689234015798241627240688663474788679254914484168320128369709144747362726192281090581767668008446144147639140642813071373725952562789724115955843564999264948065116154575470788440857830166747635004731215047184270176439628046129617701652864217246837744881413532296338300679524127597451075517825160676037966519870424717014122023217119427113135277790855343396028648576101670952433664826390556293782371490494588804999940137555425269313241732147514415847386455755479223115772477195781975735889500861805512621089784074561466845718187051032643435801656015645084952034992608164792866366026970303848911368377739621103625052258886895902265848314141891320733192025239725137843414981411871260497150505562998119707184577833206547527190802868124963159507717934584765259741424861537026159657586815222003275006261002666660032643227845872312209469536288675232286785633058633879231702817086110092890234894141040168410798347975314186561145829303013492981992462626223909572840522326123886793641378816086076814628544772196617512285733437090003061094145951370288350389930381230786396620841593248006708725637005053667057019933334572564432880102439723602388196881864090517599425676715247799018921151936090349362787609794865535696105912377460899059910025415903348801670404914118330921023005378122942564747999899775537485119791479786026230497101886030524614017686062823766849871519983478624501755253736467565915495204494924030769127691405988820712902989535565480837505139494148765240602434893073152960433101653189669366574527294641075829287464779226615556033725078475881286028275207786326862872854296540121755259233326430116730328836734367260501020764285325036146002865745256719748558473895593773951954163437600151846519444572436977213838346494644527395425702355960335750006353244328218975411438649176261893444438618432924261299122596536682197644402750058747753495947676607672401579902514997721111021468260080251895274743547675783239534560173641985296430910662741094449757095022688199359173646104238065815985638745864895966222982882363346122488797955834535114581132340323247904516756299604457864444367794873841811877687453950811506573953832959551871943992859747471000541733251248887875934965022209009115926276466907188688631049619374535718002946660493939345829566328876862156533662198518633401216763241846155801496052817061162539014074672865431391256215773259796450886186639803297371703380082330648659109993027873806339839203487138597098372014209469260241909291846766132995230149244549879868261869088337795585808640661068268262971559869463255041746878944310059744573845348641827701644681592896179358495041436932187207393780606560059947052933601228466223417403458088539034413936076774352049860108225651681386352981763402243785338550715647595930642056173927510713624535368000475474603906583499106415407452586775114986503874526148376700623852750167936936706920221463821318298399467560583194383531419154430148661539200447244731868459085406427427106826251858876133387227298518304867829778587292882967120207208239354320081736688803374965588459313676419354560714168199062450169886318327863717609861142390403678843300025180328367366336103360122979182985240620501419685976840858702735412883730580573801404338640915373046142417115918952845994612568641124376664516360272508413867809021721341002538189637876057191670883391368722308514097260569599869151047024233847551634308436615102620465286333321023451611073847647565870786672170444091049679896420682077360958844884872860104144187116006218530807819102376098561487510995490440668820357304209097885001578923145015524663434397813584272951647347323868402852370080238723710193227152778061058003557719274677857007692404357867242793546608127027902713482366896967734749481961654315855610153179233073033618276134721654876149621035854578092213174382035378809151295287099893149196723933934427803723055532054779826260716184852632504871498814213128023473050033753899052545871188034154766724931304857018751938798734209158652142772272912359316050782676907585600671494158210589500954030430577876850650266213678596121862607667063312043402850105065725527544987166335283600529103624734179451807365703036734750874972145993717210601685100557170644688637111220834780585983570306574702008023712885509696940745797473354921167875522462435033485612303626371159610209550691900435959303563833966435560042789358505599950923448451187003820546942438070388057545013507544850360770381316267400988782020917138152520429717442051624481451259209546287003616705134674570210164877676262576558106515723654527332956153553015699440148144487583307392098240899882815553161044633374114985421265020433534824858812997043431605905312124025433867289710296284134604980340756118401818533715506018134110218893108328863388040751100488502683567916073223274858663184059639198482957440024317875103873056504354846028806477741105860358382588470049285726562289563167267201327491123886198653387151493327394581272554968731097570060938649009420198536751920501762853320415559786514449298798892276813433314813556095748276767528300274714806893908474155377063104495418394497094786409604832363709621488466498611330242677592036353637149594144746016211909092340783715491818567598929194074979879209475445492024003117668072204300461290287110970501630149862449561972082890877035186762694390332116031854775920766424660317159255473631223426602646377323872172244243555422439686849650544237899195347265687803305544373627717162299977494885161756208802035617198933980290143691980399056195155371120031046823811205180405430400320651354974188576580588621224503232370664349366494341942771566010860867097878352955851481505348952765548608635363653233208328804399933108640132077229559212929527015560811330937786670364601708822112949340102728237504029714107970893567178698695614973917318906165959744813212600190424851062412087104412954955372487452245601105693001760417371020587331531500878535685278323065387825359501257147505031525473725408948994280931403611419297372436779517068683192806401643423094580234800406930320801044887747960961354372944815653779216360132909676954983954199296693731277438174337769128898087023910241422731300763744179925747558153911477152235284258582803760136042374653796371217307742458595809103292313008893995440981282108395844672298965050956980294681057863078167825930907338157153249255567066701655548166687014216161069397761195407533859929205335522386457159190192955945824047515069127814572114661025589993557675912821071718671300798273485704167438672046442302697305690527160534125212595121004112333644062433489854627023054744717052170370428254203456059137253387591641195058912697519649251290153969625475030888749778674886318842205431528762571256344389674832960133943574193331182171947646332980324628564149953517366580740444510929474698005115967003718507731479555659647665058613509160901762069318901165331718325361998573474825483877812825322342057170495433385217513479861471781802341110768040339643547078511008683046222015234109916699984071758780718680634931343967243483295083989473356759191785181038444882964055352134691330064968807385138170490419162803277532082773987149772163739509610990575024009218544556693256133935679509307343277261527239298323740169486565450491254159452516088155820889657433056517368904673972074744898477989734671186637346911676546028266959561653254195741440710507489036983407145239972344429330531358351108048106905882736023228811735259348348204058762677387897456628773635683663970884976460846489764909059015517327377885307090605278763869023247344558867440913541376148977842074443090915977959167603806047660913296796978982668409649693259704065321451714289968800916289185187311389492609590081149694828336640946054415019241366951355475954740982079059277166759389767078724841789979842781614264248070334826389712830870543416384018301961228589897046369251810305505636785409709875229627363985666071614567614505381254767448870476213373421051166636561558885433856508754420615069368051439262970949901342601121582313222608723349306312219643876403193903897305141153870353112761532734875333044069687613090070960670795821278214845318523162320848616577238087922104695793230497696933705835625367231456794397703887579198923761116501124633838617969465385363009123701248936923414795585939023347909005562076754687066241423301051475183136577844832022354928157703343611315672786650735984084737935084164357104623179243636301075116194170799917131947493244194289126782060212555748016649367881532114553371831777430924956230995169204212505893720759313319154622239643898905995320107302119421051144850895509464259413542500146293712669162100767479611186718321652074047655259352427470754070483923971273497411017026864467790714338152065260394849128708564193838269329033198720784250863908987037707007807986398761819018094348594831451477667299581600720936066474044215543741882260426139053928998106121501441021504057686073885874155123409342285619225273051187525507963732785509609515177672958846107874046084283211920166817779504028807712832860255293267390939650855152612804478138541743296435135154344893705651189550039900355430386516515199283033576507022373906040153032790692054582442102476810993613031045252603887405111179656592885953370304279653679445670593088137416661108351643593209346500248034846820248412400804804658583045904477278509299417134994181096814879443854669483774687942410235872914702260504412139137430826974768874870313339614993789415730487786030212024294281807223543107719407542522464687937157978284864841838398878467384893880996430766972127810245037252783353301090715355262815927528466278551708559367010689032171465565248021193711040815581974503044456251615705503770728320914824566119630560927130811923502835865465878426220270190013519820531109137245347464286438204643580558495435546523872657805306366637253713338750005545087759076220372044065630152536431168561991937900638083964903314731336846859574414404234060119637257447244062040129560728233974802205410093526786797651425123541449159468104476463329450778525355691674222941538682880101305191915556180774910003233357325959614856164273217466900147463241794212684371697794141813257990255786766416617695557119301965010566060644267827319812859498696659696868099442430846580446500146134874614462107788518787927055454450196724178104602104915099104569378326503451490618434456910019672661942786598400681717251968079799083165338620538272638369073638004207142972120970838304704973539147279858933960977403894816446189421085870366101302933878903919584853599114349088969580695500563077146957382862645115898279119413714475959586141178300003485927575165586377187558189945964005626761588035996818575580688910280479384028750868870062873937037003915944507528090671772360694390168903244967967419551308179779808681887360533136722947278034624397961062791091066455210064600625293730660478785393721551785868320509503017529458431232814053225632283058217191444645075081495600842552088429004261670980257862134477187750804159139063320908230686609624327474771130131353503825228710405252178683206017936220459798786614847993718394326594690735337121665417971743003519601827468271710918856977688173837662849034707863190268486438929163177925991145479158790130056373087399182822449122776943818307517779432047659663994125976787887752150773990326647266582026186342199474403473651687871644050597309740195370581580799415685794190697491565977698736739971601854495635333998830698922999147702109169914111802858698478219920897126572083403478307571964014009095213086715258690442620612278674963048395099338810186240776366204748801233744633317276192122400490225040178780546687734776449155975625870579619185494392583918756898339198078593582264156955460288689223241370493228711012094527085026464728064892537452607494300473645447957679328523847862180243589740144875657509836587640688379463081916065638856667766414942556674167888190819862468075633518506903155102956998886802954530448771409690011858528556250984563730059610900121325317765651355422398767601732494954909263242151179240148557151612413212665000389918780176794950353358510268921296805361906849100379397580030009836002175801785597743741264583288437642991611297634334067624869556557594021642014311710631977626250828950897744647523945286435102529720625135896596026065371988248019685598518603246447697147118113462759201615890624762439464950597723694516351809042482902618918671351877544530398715650207126606756324666000129043328096150599411033614409426490033092627925579068785223906975320756392073717566905374664331404892174430082332832635962061280943683079081106397693096213889233104460070421805135282019699005242730127571728117984233718657645544926943680884256685000465530274613499823338639064484832433181697058690680849383149255926669927944032701396562705218579830971036681489440563963629000129545306962704102354054323258606683379108970456385950038290741312242140284170575014741927288300865090625169090855258011573828757356298228981154985752644731455535027270204323963543268991512248849304832757500440207328898543738143348693649065007100517595142279379781697060624849543214930794609965811542827806742566082250863709413117219086715690592888725178696555898690172467114119602338246608490144876250697492175846251185058905054376893012748018530709366281693279934419574158476702625256698146935175780419511696093281788768633093473244990798069066096372868889860860470253640577311402318045682691014848360054862790971453231169352924798180578057306825039634433529549011329013865754078592061205249702996550980731080018843221438416816893595464536603441422944842741358716049250083956847207244873758140256887961554583900223110733687817807442327825279368222905861510860850994052965105410627405744948404756187217573817417318799817744420520615823032993877131123265012107635672150251329592933888363733999136214973744747488923750658124598171136698472563454158757478894034806357620601741037597550002258365084382043058926179803800854340214065953300421033885427758433014054283857814121775209474081509167145809956331123501978456899478681700528177481386547704451800811768441757497626982933821738595878115150331870376129684618757649251384100809968662851445731289658372921626469865481002128885551932838425004856370207510648909401954531153348447372950271829791564711754154296216021301164890075196287504134798716849073362142545850234463691532038296288427774349874694729639369791542081413789096200068957962445605465077166942493518760869380385342813645681417802637745614024805551086995169791470862851555894745524935575600880035348050105380604531126065721624867021874573191023708354139748078773523226818522334197560446224933724469695859431842230726490465146269498081684850729444667184480164229741845954143029690663023890903941641798800282992992347999861852519011685703003637998644071478368027991355270716888780375416714021591681778862458673588396957360324222636866384213415585491700411191227407648634900623158763085649375057316476390592034349743648821957229077884480587797596981905713749087651879881636230190829747281581187086615425137255205982168753411404666916097426527125433997668458251422075486525363855270968762384587400207142229070816941773676729515406193071163519342737343444950489540876279140644699511344689017623192473800425095780319423479625781788624782093108806841250563282427673531691873509013299165381385259906259084651517304829341740131029399997846885059124214434001823591583340107503437635159016123413408557233876324152764267335464656099362574373589858266245268288054893139018530565748392041633824567489183272935664710248426525170721253601020691944133421681504144523478474755523790994021258077461574782165036202841318344987461593274239549773591356817678403844468288347562634948002380286676261643812361455596379624949234394285264488360699459009752997806544167966879853989853418330799414745600257181923189649770464109786839672018723693965520609501678880132724506321529447839444577570391771743016902608797367445914982886240907078228113664222574872565078327757170266771407190470792589462025249677793328364110332689553411679006629077590783655191182897493488251899093999793778510005822250323392431211302135132554541024143158867038760313107962857733657090890205532517818190115158148865433378958570575678022526071657999819354900107873706528534139559033486182986897396313905389938560916769014944318008009227338878055052875010611038375358978619746193425177964218986702482118263169095170223201510812648876747674313097317764679770807101923450396788876453266053172529743989301764488491535428702007517631673821072935226053145026295354549636255967134319197144583481079608477306717465137949562543237181993952043043538245598224756167520083675971388366231579255249143999530552007533976718056604789581554263219865735393753104723400669060738722352844776309194477877854994159461805266920028731904552969406212923834300916022939384322568270657927127669102546109578664644310866488546017695471974885802737201587298462209442076812404573352127266287358226570611312626503743068513070551505541208874888460154056207669514221761998400120971244791344133092766965210847221455222399586815207179860449414068574529254200373282669964352354913940911390988959238472365396271575043022341479521902364258930671391779002611659669597614189583251265636670919568999884602767279378412323526758267055648812305777114312255966865403195156633775820347150131840424587312769499813415295987162676382680670841589806604151835902914780236761724479550782496782855689034071873919584164878383257315389387653813296142777784085151507126286262504896108622497571855928209265913643945945498552203685695109423922924831505641414055727119624328852727969467081973583738103424114803006730100361609353829203525646566082323229220295450627658996191898268897906421278818806911904178526533971940403516785235881504794403433177340143033028317255836162388357995627060607896717455006890560385615233794702454773437027392215510898839934268339327915193516615959412879714642517125967807006917641751889421839751925178251903065327317560749982252983590839553780530271519192849210643638893983637740721182380096503292412642195579783027182124656866126513840073275108908980733024715236209492999228123431756661169221064437268124935065738618733181100213736601990894498496056673070896891557319543421922641299316057212616405628006594810516536530849287878726628808304617495205139863843724748403789703810934037662189813566996539949179817890159748739343599806111359719553729436518859656543369921837036233465057987447396812616702619127616124326311846298596717796489692487738210972896249788890834840472755504331905216293097425369462603015683447470884375514199047433602621220840484912579073377566928007785539162775241248894295573359167433641284864002070523846067912395875823516923878410440239629767238793642661408021940161033998461682551357266023138689306184199638170669479639266400168226062308177724848271630548455449597073292933120997042544999691054761157223225766849719892711334178301977635262993838364389328435438620813971203284460036764179037389905932743775813332443799700796992585369628549385052775048415532958486892729108994646389801714098613705040491719836805632453894449390890756598220189529518278678051469474880426977214986583286758292309596256559734975143027706621717422036364053343069254460189690455553694112336924580666242078356391946209361784623154795373508662503563132020893834076055463448210906028592054635878704418806068570714552819114325907072323870387099013892865854833276170134904746033417914686779066730880148432471379781234834471553842403119428993285723702075028735772822575507807622154786348572574972451530163105841059790478260025709865536357584947098732352297628092136556796696929983193220070659337630394000978525274524905712767178356971178186441037365988912114352358584035169079638330462340033543634431845821863960760122347549821850994515782130901643293979942599084773382705352988250933081545780299303086638272806425360088874952370815914313116600410747308902151468026807108957106936209565186612620699003336172095151030735078341008318667259395011565451910372187900793352745763777514231702137372053109584064407667444292305079064283148308667936740307793421115962872133438702207903982843687067036032230343958860954046837513186387062292405914994555061462933818015745464413796219410696822490177127143641574636431131374712725276979310621880564826191199074460156472682220626469878187824116549379445884534380119763363885961664611308002732806959293768610458499090225576616695362469272938476643039055089051274499978067153777353936824847960366060143746762425049129403297056340992439085904038116964558741865023425451835648965981234996779523748136189891567073277844130120354160780486769351498149366225045256854309967306610691197370767345549250458266841374142051839052840302139290333543226684648008881600297893742604522103586814665969475207715027710023659282989997305209967254308750668979864220536638712711980250195931095098014940976258886692065285396376218085920633264083291247613801128726296139091365746817964460854707025499032910023149945566476736864520146832961623325810608727556713204495065440406692509082867759210440286022717181112148793446649220901780900383722987807530389233542713462933484078064074988124360007661044271346153308756780515740737948362689198482944208022185002602802793018703081397687525169075019753237698726592172384216398226904545462071760730345084741968298801691310107296265029475948888393101348170531719278672421088003287507578021110633535439747308095723255496928356755411903371104980523214509482842115415599529519787617932235629193237406437423947655475050771886243116549639939116618976530417246630384923584652361518725712247403985886319333430335390026039582849749494740522512122709168876319689562601266974422991247576822575638321597761567464859928078845206449793215122797628404248557924474322048930112247282082118014466942441845002034023190493736024194194186314222574961099922009720885220341964541056848908663687630900670786766512723734068606642449977541751542994471013499105166229868093887796773898082345861084618669983597175995476439436851756270238996174678229742475509910028820696836662763221984818211150050066026610484220386291842599940616865743633712795892785392605365304570948162945042543442308134646254551962787556333470103151722978202806503124830629164575910062295215494635036637908624844377315225666690332700061013648712935478004057017901164439132170719774466486872325297589807987825123244268032885054689603817467410478648326721493994542388697524668313380493614900969373895345025619886784467317677569755492124954673339699325741091416197584179516816001882980864850670321987968882727925642853714062500672129038848228960706754583171913194788761579307647192742230256944642368354195584986289769273231801868048228245095176175768450839546119351944947081070372012904841779760893384244572582793649832926629808457945813192085670906683206518708534940008448254232030459860696275611759472710284836261169256420750050782572897314347953652471155793434767644435876637639082913072615704397060707536895781874178256768645185835228524400321217793032642073697533738306029363471842940699232773084669193486015401377749963025207735746386969101222947057816692017937704806773910771437511543342422298575111194470676041460575964387491047221236115665591117121910810357020520687506045881021925863890965476581186029355194513299245695974968241676611849032455962131028539366597555846995398520624476423444690190111358842262212670197040762472413255566007753455593340239858786718098493228604671081346364029441161270804992847312465274598876811619071124457238125597900712103029873682365947239136619105349274626035007797457760859866698218102076109626737165580446696599526245852027223477112031977124976760975645670227226698163193828240229578141092812645694480493193842378255852797019456275467317086540788201326547983105065828859586351790903157923885040810916872883445464754544148435328197889089219807696140681428540294657607900557114904380616437419780003699983376358742682286783358312838803523613145426591874528231283625192943072958908555068558831053092776115651125590655807258530631180671073972454441210063566851107737634016218555019506436823943198449342950374613591164472450920412255457961361664957752972809427016852893466661764867236287291400243228650424689006787640686196013154220837625271269373719057339706662188789430745208208616705322206276267414145372497354675480652118874771653721281622708835243580603037253882193653449413064072345459794596549497179014814528668927155272017282891584915040069948154662135878531926917464769333025889519699141516457681365997669224780796051897980833085190650155855711066404861066165715452420015690856844073007382316435113289887008234356104417392899220045629923536062561600822865261986824480838970303021552824775260290302749045959935547972723886570031483786820581506080855955711737776092142736826126394150282150427618595667905130345584912072959033331375939393682794762168618508449473028753699999459491915782078988162517816037914092704857535743417082484291802859674006681498511378524175995646845437632200606494887805855094723746058084792516429703679929896410329897879353011549037647407406363930425924720671887540313454192970862251167697218905961699635505578529905894904195881874473918903353715745434578410811547914065244734671864950199091677084883262669513668536934877158983231786812859567414995735045604086978219896512218321631153446568248080165290322845977674482824776182189271963400561227680432050821811799404561065949240446029704764098888088316901029212341292864407589505373910946576549926483683122899224124095493743275790195391318379166346186707890926666054753184545173029487914900098954674526302468849391645443445774439294512943799859433026662545125177619078181467252333588448747362927523419211079450748122276405107951447791568291083246480610931146163159834596363141416453324613360946060751306388629833010465628054391452325626476428764019435193915580550318459738997058201478964594010257008726766855251532791748461375723197348086986762782632939886747428719091385781726534912687719566717946680194601596334794782591613651771086725734707346903209814475574220058818344618305179930467040558684082436348617770722946861165592119529699094212420979503585137027594519654005675064787071090488355479489948343543374574760288996771272333654274382748670514436119785162795194211673694474590486216870974296615613441337178849396364968176001607272710231247808730217346372745678599844072298102439155131391098153889995960324075545838214106835387018821668559645376814692795786199719600175155065418266776097780185351971752028997166920514519308924323376488236477739241432109267224955925445120032074446138153367590895679562621555442418551374648375737188778818281296331769083327451965969558012526582810572953164966520573133888143765490993301050360095137224292809262525763265218590912191581034189345228215190412939423572170271041683658376322432573277757539305302505052818008266143298635978180066649444186653219527735334130107901699071451394749865398077360111998232631770698578671170621460300901378426074576077583992821795164744019566227799432839550765876446184201325968681390437021388634102006104248755417513386562947923945548440709154088724339149406044636522408298435669426211251142506505258685272995030831188000300316618565327651660127105727538330569806614476079282757180365830526221828454923776185925687448393088163878648959807050433719315038549207294993472887177861885583194885558934806817575011342832018675591317571201440073561257444712993973521165143300965051683617424612816793482269163985154213837790402239415871759857389276269786005873122562347638076896566779859451961985796765602425519261618871715837980988481564247495041161716972271612742550782699395023813094393073272457728710912251395902002317993136549418367371532308929359573240606183839400472211697068416901335842536891796604285701030413793353293224207027252161999665908796072158359619464594729171132826242032601450532133023538476003201062131423278928602562217529214879460292384884571308015147277816981438245622231161466902409707338966496467380623749786538397630606162031894890666457318468175928866978006248242281947761388950645533234064438139598336592914900259554264125946822800422933339674547004656183657171102645636256396972154562085313868335402828699953775176376765029977003892210923531448627854265019659596095307842777746455694394801545368017057826509887996230211170638471036232684668505997991489758042416582366523228587701110853788950789902263498578447731347996113709460528332011266660398649305176537467931899525137260358882451122676730575636564768748791575663704088459459065585158525582381303754706887399056152966399179113729417478628490690443904364887656248668729358168089465340310904869479156256429489653816970569893852706203978285270898821154950542727016363545069721419704133884360334418751683113244905398886000003780192311867812159546857410504778922969342763938269132302565529638891928239114034930894084133174583230560720454716966470188540489913962635677550418456260689256408652539060434792264766417509859702795401924043960707741310124696648624967477138646914066574405633763187718892129375420678894363973476903655614585840257410064000531018312722288595209993369278803516346035693401737867490021184983462863907592298740519900736129505320946316574155005510008056186281239916456196194022238331582586502545543696081189635162343738281563982879572361722461397898595914165458553578032916221774683495391324296160461790653366708746772024187084901401049830888931491646439842134237122452065985843226879056043130363032490142947263338007658262364305631895125503898206565577699360809230748503197980962718834604432138237783337349571363200734940472016958285913892579223802534070499723525432297799846050482852478783937001618771886593792027905005623822912108722275794846349290092666548937386486494847057986518088672857854030342405808640679931012004961109806704284793192001218908622026038273427213544979948315041066436116907742298085150009750601258558601567644372026081050080660087237300733127902611444887382752054725021846497994327186544417488139090953967094543990523030142870146239149369286651343773186047309898302409338717450208547425191036450560721223371917461852290608465619387596173788589289823230580350946961321256066737258810926218440911573042917863250095184892257788938241181334144741427607956931322296292579710370336783268914375240498149203505161701302097321898131248633215250903159855939384662153435510809964408222752040305644436126702102098366692789449431366551186511435068400147514280228210524080863703408037186073088538038961314924184483451515490506720694248696819042763431961315568722063456866083890375705385319435853742350388685125546801608266177283467591018154604547760485427676503664029353450325954664460892508352570039600104264972592371114162464746599055949277000835350098873122095050483754695514815378566313221456757886482381044658450826049593303302355428760518898009084598823405046474923900368421831447492378994074804409662997453154704359203267499168422012370230659090048871065631726819890560243436324624254211540059925797687913840481574171408177753700840246090860051893139084881002948094150285198360656425588850333588714497513700896126044573042697098750342362586467227087953787445023466350289827393395661801188074531670018760754878541364122029499536781189268155793592074236897222971421177186171176569754024256352832845646719849366218156736881710601361732665279522206341437366904346290029897780882477713070707425571516248849882763528952794521759700438081732860553246943861511297690975140136848252587765769439092443225674657255432594038416453812373931950223019929861901318517708157711916556853744142826342077407503548333615910512142368702045445426324363554390660101509559726683093289558533599207609390685865822501693863898094337771562291694457437663090045681052009880854589592391655221193707992234358237473566787157315460924063920736221384063555512340955561025456144745606920464618841471221939990620658982797779247923761388775617081840278812668369179286136545629391676479885077983491633971276404553536112291986358440779090968854726072729918225103018276700044937695820363855610496298064948004803537557858174161220598543225067917346988432558005391185303156160573495143538128760343993324834044059562595278082448729891971592897149823578185566978142945493941354530136994702936821237412388016391718086025534892792871304714261351839378773903598702763787052401342231980495173878324619523750650705230894007783748957337680208369251665311087322491465523150550546041160072923450307334932331119408219470265295929515822600407654162182864054264806082620341102603687461921362361868704795193742039489231216012751820489631372412064678643643508177660677126428267387662364281035809349832882262127081415042965703346520198746755904330699718210806630450120471088603080062341517784793393206986865966247614689623786405021096209805735534526999639322535717959702625155546075490666332628591845067202248510734755477641354371561438429540192314808858311118475635369232907531382248408220099743538485152519090820627174549424406742181046031989510357761688107559197204347525110998889011358977465264164793950821189311306643826920241372290645922066742779742054540735249601245440171908312649313116072859002492489315483006538221913464621073875732737221486782381772134267464195933337866274107911431567339792553610972549808483214755022979816711047209979197126420714315586379708990570355248528730560901893376644043715347727014964352272309875558351093179138143801642889662867027596522211193350274625609145243490022465370502498416577528196594649262789035900326512699708544444260526521454775082029795075192981715999201919491232537061237721594032364607180482884082233626848168471915508459916924792586232169619924139590737318296805727224288454877069218755071632119356349289463173407340381575002037678195460000008872232101910083894940652968750971028814730104493212414531186464545596479319443000654635218222680334386652018467321950196630178631084237117671727860102562848288030992236708392624052041860681570913842108253031454157611998688300487689989412330341466587803529062445051341608478572214023202878181193989156014533530224357010383256768041065892250798784897845346014585129396529137219018818281599077159627160039692794848254832177787746078105163857202089674121421918607677588503997744466867807469028531022516596397331848955491158811058737929151663222661467775939143762509005763422013451137602245657847423411640861929642206684734182782515821075866834497271794442752187466200453147327235912678311572532608172844389135967373745968561965351926548488591336552838977920002743916949436193170156596515757633723061201362875754396503498994395243546582285488972046000250810894739962005283783105869517599810575718656607501675477015515010502098622804436324055737439688167510603325151530644542446137684510513064092135889537256396590314001433969982442285700221856340549544420343239265975503935497056780888304028887912727009888521081026350611864606263089827641857559823587130638949999647366672201585342025587255245981899736198641417968616961336572918929548147845755713565138467465598918628171613107649419612962299624118364150107752998051614514166696119716211927023665084751448629885644718844466467178492686334824219648248928309998968899841381945293154726857518388597757884341391737199394992464998966398661210231251950886021583428377657184184100351506795494452287822118269177025002179438531728927455366184693319628400909544698892240723399195429656729447930954177891676609335335817132230829027005283427291599644684557031560669051510182061967438016200118478059672021637005226741732319548078272396599468639244535409523919024670828124443522198781137399980025484538780780191019512301637076590354654668432568970624143022491239328976013665960348991865291907224256538695827982606002595161078312330543635871131856178023590866254726304222244459737126991671766156222696829998615332130670625488028368560042135661932089867684145560330473893755986200924987600797383645925124229197312037614192155320750454844421958336253997241482648837045255435136035094931672379794588897676781092364906819477376388613751753618302784274541014947335218999221850019729672490582382631708586781569912103305664325269209997840682539054012429008469397021518673120424166860544920388790209899232337064411308797062841967198514088388608418527304388132673827503479527063835249822069088319586479889112047574952461686226948478729724630828800372785290696569577734886102012202446264630064069538343701604470368501331434813762618441066766407784437727293563700642445629420887144666154129292658561183543799251064128966434898162460592656489106424513469052772679320858456673246459138962650321067331218054872266298225222161206040242883705424504735906087566837344736499217138530380995898386873540254448117055683070255877914645873530043647364514621378638856595935992263743258698439740434425198137485308859370505270567529086452608897144820316839442028284154069985381659618220758030165724746351293765875890777317284235014761316190619681181971537563913737297098943977190073386410730724062384525609664086251003901506988455760024673238385394966485260421261653013023394224713114760290205475001897943092447676631097781819580585300254520578005414951521804195012587663174428917261260845078006741843443522433162752175465423317714293624108394914120482662314232811832811933582566442825679716423457220042565522528455772164525747568027996779929488826361281677680406553865797743866600251865774979986226627889208081311076377037478690085918802408792166998983286486311595935533790757837615254592086377589203658044525288311722678658386366527162166612345293809136204821051775164309902915615182992123845941369045591381906601718899735180964120023397081130437494946452510344792053509392794574486031521160552113119853584744866119711080340350104523971481211907707711475291190909063402320210584540140456511240252685330860155248762818739800520194614100902270301428728299039149790989589912060255958336476351836918666824955801334310530892881771719592155337532956335980751106697058010173287898763384798437286224778821280489135228072025606223210270155184618103822038268119869170848865008624591844977994616981398737027453195766473881261606577351026311362860195341397848857781432313074453517921067908507086778861182544728253397520014590168618392702516575758553561816264375115371490260516466796811048049060670528489499509005572874630147755173441833316749658691077592682861192348579126805623757072006447321674707116000599290002601846329150075464069465844510080184937887199073301784577051218279659002805191098133833720360326765973475031311726290589028548246782994149944386860727194861779797612840509873775741363691016937745360917349051422866678644576741675784915812991137724031201250856902789154619251182341442086682518543670435970240088318190119259509387967979893911177306551175548857838062608623129633479308706018017690381683917854704565414405648714701763456889892262453451867031328412834150063032722156403827786693058405908505610419687634241513704280923982793293735261887596021963390640697623725147407783416602357829517213637652693960026398468330937515063843349109046964660315551686403745338494150159771079898967546329842321375606549445378014884278375063896786690315127118075459674881376903669733705272017079449006052298190411191426757109606557033548211569477718882408182750998852251781303940850112344460940924617511539038265489517171804491950183300591571168177262544616505693983074895585783009933361048897035210503183005334137411060140095091448126582199203041507076548968544950237425311053182650642573256479172411112741928168986112965533304330685367488145540327922330598774719792675483246193719314693208379006617016313812625573375245168407642540448814127574253864340119247501605191816046954844266039049238932857650465137210817632505995543641531544576085906975401373582531973940417813397785108575044595572194579171586647912883718316062074622348939431333663574043832239368172641317476679256266253857528253853493451216491228033193352548206801669208840976360741174668213091579838675238339522353426714780044039794428086096500304185163126618678778375408626881146497206361618889952501422262449461000410595841082621368634345105875843906218422091314568273859903742717378583379534646565367345098848925815075134323927512588154015376946510799699935567359380315527082704520989414267565443530439415997929837823034290017375592851564734322678223913666618987915921543465221644387231823097440490206600445269869339910094673151222731527261169806589735771082393464366162391038425794241388564417037325884460417666189186616303512545514413123012595522785549229853233612883235462966876305870271392678741338498653053604305866261010050337417488812976592037204639065199656169484588234172693554625621751077978544554235733316606078185897529553109498838137139596380389520221520375762015362418997586518723874375131056671185326717253336300598475714738769804152278776706572130203243405379992232470434726729414640245975875276773457509126460915645973911236752207679895135698194293745427417338053566996821729208744111003352577237558886587010076769401631814979854311661982984050111114704020577047943353150950378578116371789294249082527964040269666584386469305731477174406342100121559695911133501360461755554154145709674053745438152995600179318618947106002529284969217166013202023206309543879044742717753770064423801723796729070870711114362292120237267735934475283468569679839881323438728850799227555439852942854304391086114366399317497905355299347478070474755614053175252584216402088285241280410718091761073801814240509809184040897123937317894136081684924525666585369315211803709546114090913070951027346990023943109463882698771135329423213625610199791714362652123575384836280987198489114739187759940029222619017296384153889021169204460584425243173917841834124896249889649915954409668750102338028719487433427914934253495788890670179414059558552469715237587073083585449523483844012156053804802112371301989819066743943108482086534585187731029978362726659930203706413351409039667646955537122642153435130272025816391735861147690351729591081957517260394956539375658779195942785025169043638675502046109672050240827040819970450836060600639111226158853167216924318835018345838457749688410522347752438203971714677537322821915693949183296888638456500983505071252968209102965588154798949786864375717023218431478885137469187781812728745435867441108957179192777056725765960241289894764970244309268680017504491543463092774919554989509233208830614696704185556610562131213914301824212037595704478520731657200643307168426565622357104710492292226434857305318671534084023732855732509596804630029947744037502368536022825179509921719732386163818255936156305249189956679087678824092154869235119469197778023804926638906014829365431871353422829173529588601964598572211442649232356325688725693514245285924492953894124885467969201862611858067434975469046585656821710729376121357573834656776279260156111642109846137624329474693300232149309483589377325224111517391998106305192200224154099865055287780248191016376288387705745236937375578629165490317427231047788701589488993557731414008502128552877575819734787152986976066199867891664862486454848244894836131894545695401934368267345856265782590920378130036312799627327745974639925854410828269235180059940994858706514549195456146316387091186813787812758704733710907716441223382017206615415700936732992288855947009744059246891515410224644384588384113003603560491376157596391408141431760291341068327598376868695615762461545664398371357737113077143188866248162769368008814499017128821114047655973946353392814444882739344242114031690026168152988799718512546778930199655054686791640333147942108092289605851104058171623532783197183118641925348324357214758428885367943420369027780645364826392820242110847554496046510242433321749718426533203643950311005129806804329236097389180033505280616193476625153243590878388830113040249899151072307309464939953914133138427193962032349305876648030858888542906460233797418073780026448420975975705337921863435459559045828815467175261865518219346243496972622986542412542205813449928319650021217720544232146301201273854170040181708709143416589202038062228541074514908249981688390746072249887436873342139061588794776073436433187140705414710393913267886847811636521369028442967825306987481506248252971184703452140893418128900302275368570167538966712595358200971530904338535379226213278562472215835237952719182573605300053919931316355671428945025349599548366718453973481823350795299628622689301361752755470565580164395038719747266137474000535985361219187330871373126925438362950849579505685590050307908229198407308936279144738075219814808022485485613673881167999177463579901199599338950971965292560267686004496370912494452149888776954389471397330251213053389268177392606265239216387028871424511224087539015511645430907956025570363425746455111717283554860335428654979378233521965518810767076561308114131600358367544943955494490517253718595816382754050253273826826877566617220908468680279823270297064337945252956262016064984964368048659145532119491498721184674505208816180693173024931794351554475099154208360728268049347687718116607290599837367671287725363950140521229686002697743471272268479954692109656842903240510949338477701094027299397180555431870589437512231526280054285449312802524326807048234272506418491335162722853859100287289079594321279630583382112245674304525840711559740282258759523445220057920967662937823501640973464316737620651515809250900032670402994125962082541439581060398562002991725832142720168491796903721093257957152131112894978911183130675005764783941223516694248063340149082449238684557181339419890110528472837016632778358836356026179965354808643747084774382582390416111207675727882115668665707461898233582456496755087484938026870024778266822740309659698903633483900244978716405036707877285484979858636595239919345115718143575300538036752708440190773787949497951889170856328707142578801454893487979182171302571637320541544374871870678816743563813271343985359351267909798995079132935991566429426058796485672741719652430987817121651958743839766355955265555633566356904020052330900427108843429999793483557785717737848147744936311821022935606291765460300319836695464070351787695498406924784026483673892534142436579507195373314748381576972579758488083232169854614520003656184877773726603218228022633185855700257609559536152273058642545675945031578354678596653712069139666941346696745822417717283848056886688523783964154592612261741627747944173053668778513310565554791531349386030754345654447797756966230969007119670462316198542804443861386761686480287186558935611068605530155078090649200748009507309532652887550721552684021479946236030177855086554831316680094376661254501236347558944108603541757585730698707632803106085423379364820233803032999507826241936322499311956951518137503835198819385032138755340096505638018127598613057256075312695518496752216463992070538120966452244605615525206750288030822897527966588435003789345388165529500226305862799940439655652210580299399115396824861172477239100688359423172677619531304620151742551654325016425991324860251443175955815853357462402019562885373026975496621523741107067686953230109032278995065789882726792511347027273342878900674121474831638929140294551015061867436569083808172973733429726969111265775838592833360974288415692444037176667644803826690720120545345899946590759550067299690155129981949917380870747622713670254994232830092046751939239811478739281885276723635989809490024139566564574602463117156705670156332281061088799092458183623134174748082696314825598655267376900267960489391467080169415220445093064884480064525704948179357392324516986905795340768208678737312002230146914208277852874188974449969848358986108147498174510314321248532112065313191423782557473545274339275977204184518122983784767336572593270754418734788755403447066914575021555353906349976028930312762218558398844285563594205252724096202312855342029579765103492740982443036841907761084031560212601074513640274384729375030462563039595402192577944027463543096773960126749364356221053229349641361630006151247717090512986907270426861201579126314398274437848203108441719610932107818083255469237893693143032427987739293443563875770050542486056460923762121449553907686473575100823235809245178929391930053043884614719738439864971341876193161961141145308100404224808198178681392975424789724818102508722976851807025433861520821716565349287194947184418571732862946814473191463207073858683249544977565344590743549597385948863589777206031459874652806425029036209194390594393407797942173899492199533546231162593432284136218961640531341372800690302903374654971538162565272333634223172400190202772609648040066745279095024119789869206310389702702682147521171539893119980087604649755979663438212620099335467371422314260008596319288802071163112188577440969336803921866357403333259450654356641200056085965153452411356845088595377582233324151809012598409678671771209992441099668739192618655883751708359319422569204637660395919794231298289716112944307010870557923732623354021325780311046022872035277534596662173486967229876159149995051550912927788577681594276591132524353418247096546942236879134990569084421926501231312121234376473692668122296597174649681313992022183816904298143983027236179954192139727821822154492292445416705051673691972754191465437244585150197562568024846722185692953937429887922530958466432194279004126196162873231427660143309574758699197079788413240904138396651764379404849135711951229455660845166722712686524858138681465303708556467875975667538335497876038607803121019124223067389467178391172351418453193445429307087580756443459679912454510217362030852525915717670713359028363385877802835327529842496562709762992721952809946279917659240446102033744772838829203551013950952630552188395310009761909024524063571582856363640101408728499699357233870992661312619769932171234792265204063907932854204669195175666116417316204889404393075266053912363262623833975749653221623505276589127456861763459190444162259178327032790288394175050415451880349432389592537535377965624015310820507354245895211275915640146285365039331892976225753270393261848337014573200920843818524702532105608332253938506278363194275185075445371898544169841326220365663472164362593732359223980339299941149356640830763741927616906102518294058436083546285990853124212362790418261691342160785369755896526792352718689146518079560434629274507184380131024305795513434891936374503564029354812600518853938639858334960185943350187101967470437256788739835019088868373686921911797738656448695599079596955637818826263230623224839283910731895649798125789803683057871712423792212959852373070897002811015844789898288577213328982442112852605418920303294924431979350344966665149840337705137346026821908432228018763061123442453562994726740737401566694021353488055770070828765002958786016618007150457666525689996643796428688958026012774022017621523732671884759989236697113081169854988627824979617846916169601347811321572213027267591783037451267386117728521580486055340965377734048822894999760055317327477979363267083434975593958654428606765320200905208610113940528648548464377813003255721297145979478483900851546808898151670883001109510771998261840788725984907801401500709821072608351245372889832639518531493791430683196841091075098192625694352476402113135103915266365194797854439403757341155717460772556077599305838134717568870549332140898244093505955163950215561156749529527835757199466628442792327360602763286630077035578032992549503311750558669153310043710789720829136650020098732071885108948160148522452190992641649811017352330213569644710741920669596607879790827408366442373758366530267693136501059228944561488716857693921658992933522332585757820209180667263566744396535826318028707251135758998223797634468349630941847359119057895768041882329507937694939737358045130980490964641527842592427794651563263114084790248495487262659791641596334811919806134877710790104761463034643774119455915984003963226404939272882441120877989503329825966839307266869437951022408210826179367009423321019713382059590292308689864910937933454427461357631903948108815991737947752680842558892926473381716324712641689478800431898947000675558732660688826314022781663470451009593361135928831544666885202551019342845010534696001494022337420043570900048905322789155899217655908120561027659219371259938821396256568200178441888336498382645310901232512308627653006096968100056506211847147986161592771900224645115473855663785951907192592772444431023226490029826082321950891953634754764154600579485696475901983091389461249861795295938338956818673227838933120306227672569698903752726219725281949357380207379885851098358844063561446345683620449716275196271113128847472822118094371394258329205352053988184184913330285994552883599833333614874336098827626826706735221957118447035085816910593256833364056001821631143371993741828548695502331145046042116591775966036369566658959556312892703827868320843089420678072465071058730332948816899174684219074369967339384835188099899890630408450491016179450939423203154166091997894048732170556447246930247499824689335721837837564596101704217489022834653921364085499318379803347071807262392595223718520794859893801498564968029535515351160607672164159730074764277609626198512340345926732718524180947153407679481981581394435976197748444591381069059116314897803504151106839228215651474239811164541374794225571514772141902508086124835884812115366013802525505954200561487130614341474810062773936788222925590674831451149271772614442544563845188242661748064996671651751375518914748233045398856611121338308919950167674094287269808149170236897628868474473391071964382895318982107790938925581953311750978691477340699777859888154133143127843778431715201100428722385700224729549910819350752442862017440127303876009331153098332819088316310371822880244927751757523587111976900067876469667979711651443027842090508109756278024505841145895212561271488813845584690403150144048009138755756523916877930866476203657238429646700641483444321928724982912462851869445747940828870620600476539713685287067294006032534823386604798452338620095658833355286142908504338998021633617373546176905119304622147692474805209645949207468412042284609662606807417613499446270314015701629360405137114387599042142379204825115161854192741211243501646018893829951699296717443071196988919349278018900710703616574319219029355112519816695206254552177473059675096963851856479944726947604720556948075576562904495760974224150563198582172732359603376197832829862036087229364414380642183947398882623966014726606932761264219954257001917816891214187105129235461970181452623197656367384257303556818775425492792275844874652713839710923075247677586558218326317445306978909604776704376161947535988765215845535197443359583368115666544376403915111959879768419726819113787332173275331534433443704809516286905839318339846636399322147924308044283655634840559856480488224796386272956111198974288262058509464073068451028997751190844276765749479680714222931006694125445459858446136560858753929969122310719286178732771447185994346699597918965873852390133185283287398841442927633075633753304282837960725201810590379308652854959419073398764325134212064989059336472104197347137402383002643130648620120442650611794351323960541703430590109123462217256874768249910105522743793121757884386728892022148539973888897907270088584468056412489489897371414864516779943255873127444185681234002719679116249764972393565482747599879876066615154064081887590470752683947657342654467128193302883524690935389898779355490151043266102751423738422267531072871449264864778895577991995369281760123730956499510239283014130960174186552245451198465095097443282613255397825493256953031802390378558067302248022323495330386711582763601817655261086162406596571943088195246198751272199866428011203278844396698240306996666097805471959043271807773439939209687192069851819342679977342720427038610894924719212247616464585780815479717886304733855852685038871113085552913148506176946038735082372565586025882148338831271735577916861523129264363399467785635513306307696715087706997255756438043107045439929161679683556379915556511870091436660111778886622625360239724351104507528011126340089898562071458391403230536988543382213613035899694266558789318050771676274393873482021839808224041422184806094332850781160865500192415071960311932626692004197532038091765780878478320687103262281593592310465282613402746745611495809093972582770180599983217496986822445541173739800257383403014692358059840812287423786680586050961332503379202430449756141892231309390634678859351782165979106609374935571700434926356658440088995177446406141606182400579638558031023258120124591159507256210550465917580891461609620581932106465604829199868486873668710107170302192992998500594743294226624748371185692833619848046656065524534951833278567183735261634821047492601835852684427602950457257859253364876411037939698590734845700695202024418108269020909809223262810262356357797599665135754769147526897663796714518165597835563204959624376958079644243461281079128006100765776249437486217912165709596095807134698766712039536081348029227466252454090690846424347877318212941221644802079601185661398948783088851009991045100883558769282378978472347547851633787407810627868952926823733388066292859898086178839446406861734458892868119929555791068757438542129512661312553729021461269760773013681830004764115879636152359346711458279516769903370801179301380247335212969278789615287318827836558557110764787001303183831645999961386369310719707537333551144866742966052936740941095702927280261333119175036892592452280344607022675829926648531037629934520430626787403930863727461663777573869730705854176125914846446478128981948409060614521174605450620919470467565453911156200187928627608785529998428709757124796674570130775336458126409070707116974731047525178668418675955490456897165383579402168106394333541113429230166105245733751506898163402747099092736049955742413555182597605921406298062830493286398440877275220472344854590878645336633674935016348981409347958333832274592883393416821711625218119230004122377991500495475823386665913513288133208280565996080632376160185164002578665150184729830449517351441692000885695671134552972274507703951096787604341181449449571828329913472380130726568162414131760994143353710592386497694492137791682900934935494193540578177912047964860079632292958558457426875526005841906659314458359206949457092730459483420267879715318422961813624992684651012624344296650205575493297208906751003389343999101119523862071135629153562471767321864608345929617092645180157761786077858163174542377129431189099984640665305258160027170447063966543041984083590951299128667801716905466463948929311089162280333796571846933172488971361007419368795569874903102812506840993421587273697949855910904603358711366311693495996215937827882643696498908259756874809611254667092601048362745585637977153159839442047911359745929322039100926810555794851235524896785293440645311657347454873575993213161845223824855980146921394337176117736778837179083099447901965630684924507971963422383812047033546545338432598234617566832157277451309910023139433240616890109512839044710437165302456470525953705678296849047348575123897611463204507817317378857993966415806746555404486242266418890553206945264452731720305916067424364592938880741058718880632464435496710372499526654718165302797541838062005089467009391813731384360823608271596574130326387263622866918213386432999447512310337601356748460388738678706361709870856541566029604900284999214088011002470154835559502955425762280364331587814684918537070453970747272615375729061686150419925832183803767941846890901369117627273425174599364908418649142063551350587700656225845529950073775974933074554842315381547139647222124931261791573072408700984243817119776096255872410550912494335410837021516150292345710454655389127095333763615856590637967564168904968213330009688745986727428915339890066714536362691963313647732962365217589092223823860857987871310245460116857177870236798685511045642982099067562754702875397884937058355228696676452729976059233653229862823113517416160230008633698484674088605765278036729416702519734543019176367706899645691302589135088597335814515065829409374859060715512224829549664804027208211061843471758240327179861712693930427131669183643754785502886282076594192399704038816919535434015603847583233217028509024627099868031940087037001079133036993083288688543097878750976482512612557306949954593324875905762220119748912740050422994873848645078998075442448482365378910275681628271107574836922176049555905506296934847377784999748692084180330319008083817533028073923978948183539891648119217309441955955127646990369594858463442369087221164411261731172606015326213962235946178532490890994367249233717671287367614321524602137243354576991418789692288804888859009510061562782922695907511432836813269665219237200824043305811548495061954427369285926512417282770815282771474871819551123280407827645998670545630989136636850890904602479595475047148291983208774396259688284124500927980415955775466028871359998407842513090229027633744054720407175457033191755249772292367493750198927876958693601474333073879075915148346576276973350780125617057333683580778593326506425076991655019134070991452821533359448763779326622397204976421202498842811771545518725334245261697532960757314077241285117481689365460126456807763706799232524738741115960905273231643464323865767827766923893014315955403913060136287032694491056355781219495914449675818592470814462993692545680332711974612531543026779933244121173428310588278561995325332361117589709186902422750049863727432419197758454679919807972880073772820389648874622514587014521359153070476110002551165779239521201309702056105220419905142796100284185483617959933180187257000440913762203313373726240070911588413633225980482689023377606723890981326939829523957931565804673971969947269232579279334177287220012609660358251796288665566993746926235950717466090684243651076180957987202535168496316491284203714061521610690003050657935409794859172520985432165388705191294943927214259955609083841884499845159927677636911668187354187760156765873852099901801219275423699074183653798027352344458136393930427280649539880545476780589496526705423273313609012263281335638026646152769191451472897672225921365738737097314432578755314930772338116685328838860424361330505084500259381574484344263472813661062934027447922754285247510514947228564172834511248336481249571265204511016144386199350447770658795861782928859828252440273484766766814805170983997637329339419884258779190417129040604456689871375038122519698286774929722937712246973560286805251206364946121621621256239543127011503276919873806581596195449002803663410152920628137561752009906946861127567708320301157327145006389471410518216627934117469341844061873024546223279485068249595674311676449701069264946105048297746556330122327145363651700284261389602466915430442361398044257082103087540809167502974411373436367991035323393700995068949691857904612159897286140080029790831475945961261780780795476544162934610772452478488286832291438665379889096294535129020521705613236711624537575994062461797884066560925950588871148041990088374141218222848627597602926573711005115073945219804489797449828300657910633988324621633854656809520852658509633818159893946886557866980649816255761972741365991579611841079537936696178019625084199619180333166982267553715263007680952534909544780262083753802110113693488481165672965248352893893938593896029571779452562301649449790310543694805875693244070917158987264123336414559541547490761347797553914348170750672544940087056126336507593127328735900773153562393568158548226712742038403230760503291659681695974407451163597648314454140658355056952899823440257383017444847377338720246430457038237717106797760888759489925544308486460845242312950258721139621686578699515491423563637654125858906787316559567996985326386599713313408816552408774279508420661852745816511040676724873788750838361390375124198899000184779925912398192033097780023672460246553074850645268979222187167381152836159967880002159497173687792623065969239789146607846401033725926679062119991481320376299026660205436561403719208523198006823431341274714785555340885656420204894772310449637914503447880093273587306360353367923145908078933531389907823276512816379308762198303134987910095479774169918578522887572684517745532740036471579117351879452162038354391201200749580322215111577337890195372887114518985560953471754379187997441596572115281391135091055012976640053835237349390182232777027050895329495984770228555288946065353525082258492818468089358301451464059306661203381123784810154121014815804298763093080616477899331388802729846101478549851723371875406943748976455376097316703495380248124135449119840710330361388906572240528208646192949406205091111880248642035202660384557091845422537765297961167817687271922104432850191029980573831124111624809868067565900758350492438076820773925745137205505736762049791213226349938634302738928789467186500062550220759102874613275974594428698353102394275418927837050170147923704677498428249805534373448014739278946436600003318654598196479588908753251051996646414971095556429166071938671789715139470076140412893580203962055906022278337029497547554219491659489052355950942606200283924526876288700671599803228623831346066419270763323873017930290120434689488157043311443518325747520959635212015911604699317874108651694712701268244685962392079481139217433928523664703340741224924612407111408148075524129195705920843528260115645939338991023642794722593805114323045655640710306607535973709174862449476117224206229609447244148732228598423128177194842723067356333898831451083952744484646536907294051367500747051599646167741273127356906023189673115244023984651991845679915404043290589392887720464591854140643597029375106778572711836244248954417792457319094297776536229657177753079640754867678996935971965470469219797135288473206249334854825660821054436974421654239399607201908294229547535956870758133137342271746642946595384229717590078696160602464858575631570700773612360128309246786083540620533576059029972191840388242710572708852823023256607810094020710745808490874096192002962786678492567753930020519559190666754939793128346278076880574269797554776338901407925191191169035593350253176214805657570355670781877945818829670055205258634925152469789878374123965696682059582996479314195976569829498598661484222674027115890824668432205708947025711138191013875986117744461602144130966916349822089087291738130628969766103300868015934938605287231286083958843816465502442411114853679797153943258633108044093837993285754421494347646558037722470531063961983200765450205294391353153780603138040079362685652409243666907380617037549540782500882708518517815870622936231850431239454969563382041813876101084878164968110472507412678725352427639430244041609817890914186269938710291318809418992740421258305383144586562557624576866172403604320983413233246208717058955881291010953033002859996041174145854998552307007956547750584201344934553548454183008464485058030966023865216248973341501515326128312156526888451900650605090918522665756259425149587643806764410075435328145563861482033050124167931182975103098540508639615931224021261375589676498686755006504391880900497480229302326580755655130655984294228209332751772208809021298991565993795373662406210210969126908005429401999031210018987292622011572425460270167608430484543011849710794399185327891038670571096278426876886080927620672017861524029431362438544555889307600798342914966641536109174618947662370591239709033702599089004383025345523783967329037627207347830891256918232804550172632285031939848735636414395843485820972705810605580746264939416817057313213354965880488448812588852678811483335765102883101504408590809289322474221011607507143665943234788781641956099267130785229265860510011965184433832280266462943375142216422563187483474366871977053105899229598523458323849935997965594971947898308960879400932421294730677394681091624824672351754654284940038120617057022945559523603658674294199982863394373035387621694035864864270828000934172184818106477963192097937884733407199598152213685227647961749964453964169619480823035004582312691841202824880765270843388453234190437504745203040771395006382006495456084934434286220173757060065389318888933643341519352233476654967068785474562234910490335266800075216661679318233562172298657786780584980614202698560625117180591021742187686911472781955508051236537636937651132796353175051517010475985398333532638591564575333950802447796238611280733123277978739304986812758025213304101867259985044389977820028208446796523835074544423707467572659989306697040044926219913449423586371605736874134733875441644347007617035721073135006517276672991168856771898682117042998166100074500461685223524547427652219070191065163019539101429982719646252398443507381053548954642019419046141204320527909563435312560725291062681582471544312039604924065026996395577311044068458852819574257554797771786602816347056978604320648670053770617768417047392279454527516509413322427504831195968178546134800597931612984772276749290715647914409576328724225343634605632025374142733281594222419134203479033464308507505360715213112103319658406646298465749185382151323510271900404535075098246903870482612384775092417464788805206223598366699180998356153732333417745185567562979924571648650683042052658240962054800548839466427870389747911492065029178259309789800769397198572756252025333281118578757220261005795825594735859419310349442028449080449600627455788269177141863524755868065733829574026344316829591652927129430334850830351471244556042538141092284354610161878568531472217197535093680570368501416121147902296449496822223475523229365193673105106732482099343772600195351139930525098850084629007840871890914484855213673415350170110166141614617756620308764384936239967323806878905188822409072054321370589114669790102572901246435564435394410189790424201399125648394850152267511607554773026277186189269290623241013918131868580871584811983275014296642745320112385344078214218949526403817420647471682333161777545485430922740371817526513321988896699878895530435996169444507857119950629588424857834947746550272448226245355515973597213383256176187458541049855721636891312602642765525912939629046589136641041919323383008511010302901085857791905596251340496043116444126717398536799507044928445310826462702630459788615803341131037343990273735913415775234027011101032320171492589683138145193305455533132750352860320760253692587333063596868529380784368185303419242701482724255860381221469517303763390798374856721012343636887854594395341435931528449613768739866372397095484561700754852383578207129212301870822722565347952022101529053204901410854074262637782490371346987835564788711924917962382098417125230257381351497995271176120812945795437610418949023889927792049281014932228084847560163864528604544656484693131999540255597776746871968173641051739996670416965337459374176058177245204767787145448542070793453201934454034089118832379941325748281112907818679261227085872688973244612023794924822849343865925419298727472532829519384096509270276177403079847636431260095816853469160077004794510601056299042526093394995620159221629794957833327905169325088837509479396334327903707824210234972224288192459849345891055713847520931693575775570418870227904676885904416373435334662024260084876692138616180893504190750092877435543343054801936335124353755986321627410365765175200226714964491825214608894746284918700701901110849500526280793539385288747015548612281352685367212956098686839366977006187126646484342246435294031868722488400719106183568334775410780084561884836638426674681819531138658694575436719731121862578176263963336365595411109117839534917290921319067150289713908267377290696154212979870433583563885036840368150163885068483824505948072227766128766792888594981111912678319056297924851373793202761815821988104044952329919765202007493038122673942725266720055636678312098442591840396677506425107513335371570980653306469003643544574141560139276617591903035921559947624769057777258093338230026505789772146632627620600198514145163414719554859768167263531234202529923104944025358164345646964366406714531899861585262045538468250185874789340834084686490302775068127832446308367482259969747123417707681710270524629600920607766089749904814266652659947514329272605671375620880231180742682616166839193971499059164655270120224601796992802438774373810272562774424904537173402232414870889970153526238585390769718080828032906063345209219209909642584200018084907840614232480004226017834141431892962151491319048543558115440973989604040001943373133918704562055926403551430953532082090637390874347003670630804246457046679134840070925472497143668430862578167529560934079726293125245709084769057578715360369624530168456500544106752454425457224934724538094341313133486382150805918883210528900327978800002299495920883080107504129368183183960436922508731770696397305095423181683008825453192099601433414448218734778482676467227391280451862814277250518945675496326169731742376256996238322594531212420797082177826201437490653645287393852074332676878635811001172080963714316136083738689091811562517689635534700442135290982608747787999657571010838838275545746457362792791911584028093135319864550881139471143681375843565611928439938307223845316735153097626509271577168291796666605616196411490878541634940880679461465551757196563226515512909123299088219896506660680474634717080651941574103215065264293771315370526751850158808278325852321023362487711466289654713959783451050476465949409254127740421753048618773296095331848309138308085938517290935402970246648936689489003940300148676110923854041658978070906477260107240821744062142305488121573282674711670057314088535062697082954799684530504486193247007072066872374993876649366123472701870981745679231311175136045572561177098043475994897701515259953934560675187766087278383934474882824913852386999647397797338218059893338642300989955137534644161211620951541976794524354042029834685039193643573751323471548414941210264516502670768902246506136576154550829558286191238124686682864452046870306575588185461567565685007624117687499613088610785322690925477631144383865270989463768227394906114975276247812458948214217006367754687082936390135859021495977284168461081445489396665395683066835085201426187373854054357100571342800879007485487898378599701389680624728208155143142417428061175422818030165013231431958903412019489236823848184733370851486931860304134450988582060711969035504342243308534412772517223617249730512378955918315238100635991107173229495409949574535419709059038906204327267958547624397940799136489997346779028529252908051427557341146804963071616398721598738228683173412929468524835947637785579235513102086041982897197599562993152316778517404014856380952509947787432468364130043708988485131342872972972776705872304007841285035009716763681820672088010294460909354934243132718755653752132684843075945882972436398558560065675038707584390319139171354720334263905411209255844886732028254965876771544732819054007408036600426800194799343270687624446458497218152342111824709509217117690809757246561898966784214331465833580070631216292857943628737894743543732470673166791373505495874466726481663228856682484416073401710189349816017699885551865742951281183718558139981511386693210475712562314021091743752678638443344936462665008255718057985691625972702020017517933421142912757148925130890819443808194742828471711702994693885792176941329279427031116924227614951860293946960493414062457381256506110110388937757378023816065161739439975771903381349406374435036132196170714008276973857620380256537816194753121189779368061305824886273179626482564446787214281033448454531596184104961459143446368413695608520466381922261224743282600715380256705073683375359359224492073822845351052681620574864827474314502439679466018184394904666940386420596341630203098416080358070101953652108276088705055909794717184949970830544174068605166094323609063456790054143649048633014922282134853969061290983794943259812575555931053943106093639372882709138689883947559813696607690341125013046775718566936959460267431371746757169715393977209627405399594141375073419245780688098594240214586707904297643596076797273321760342709165793122461415898436726346074798781512727118939250161129019193645659264934003378633610896384276530939663142352740996744130498531305082145835078406201970589339846204368504897393117796018278015597178147325561552283842288894401308415325831496642616610360923966122325160755592299867791211137172285805446471760680008852158998083628849955163610236030791584614756653283848346908533066169638292078733912063572045638163657016063309884976804107913480978694499613633590956901027454157037664723901680011596979348562414721059723196728069381487350042328951157718519738437654795626366867150415885932783512535940327127920753587342784637731924794485633569390241249486543755804244900352413551773033462969679311805274042403400298804744881295837039627605292660532455136946241265005024919942448113468796124777242448522484960429955093350064282213967017726220891083881836655763131572722470908223824699069632655547325393408318923270056935111030642656389879825144840463940491924636438797721747050097160482584409989294412070114679099150931558219021799704188875616541454424186481864231754679561902057943752561715353539352283333596749751119515738335985757141966472298375747860131833980943216502301421849481021194729101421699793400650669066539667581597107260704685406889095895268199495165620157472709947957502308409051768987515604882130136640867812350695926903725912964629848698084755778112905341028956433060293327188828330810238855356684109087001299845499014540537549849566292087911234109785494504863628810021130031453382655520303628973047168731401151064283100417693449046820126727147219792916190368397751461390432096491331402024960503728230775426304595262888217230003553232274435595114414113316360193896685855326780336997295112091875370520610266279982344001303919710280061108179562316572370352838687355312098728322057431433178401150914384383629056286174004894866873667302158899247720800112652322498522994848763258288459068291230908224253825623392291111946089477661181697017967371121550617409758796037541785090188686370289202963664681993539391719906991747311525490284518164672900917809900947761791156881755536842135650909001626690857885076174711200958476204967748142538432163532852046880361389189999933781054638479596717938970668485410282576164752621198487693057457842521059181129258908085593827917936470982739239682443114747181721012105732724747296305076275007861200001385426066414591288893095579861316762333760611607393974454507498447357584896957565537177807279024049088447089792098279037400628912472154431579720437234624625925817742013576488396057983565109449162756026628434055756692003584541000422166578324792885174381463462233663751520915428601587556990351651460746291458511477267245849239672936835304618596349495492462006028683301296972664043223023492408316100244354291258226131575350017146814632276219521884405789187423448395075000534631845092814434893534015512787543206473318003268510907037026625250263081292334258278339238227248073106440169482984201010084991321153421443928069347004870804745251852106796464171652558950163741452879096231509631273188171005032819313857385930423183851645461406182524196781369125668888341940937241147616541917958011333727697700431546037324568456636148650319359271645732062679313065817094567470591983363229652517464076207316134829649377580617341064089716667628357201982912673450925507554244748771297510483110856768568485588058223108998964630756822650169882182672599933758696964300849569876425334077100229295377935977986358890373057305578790276314642901073038758894639003835638548126772966904891303763444499221274427912927918007717786074656047804667403078942610695166226444340619413659059042337216493153994065714168614875380396718881621957414307828873505374320716302650280389743115275457142377381779725850574739376388686492938805409044207233525089600067776064726107019036046155462570903319388703721579219829536249125683579532228696660480007080748278925862120895228804173665558600628114152405275241045839883704947227313802471028723359980503926488130672749920376883511559515755501225552054416043772487227862748999316556525380002102492003633084430533511258086487065415853505235677452129725235306955455919708781953017870313948898521142312190648663059636384690667946378951026599283243076869201632386002057379610087010081245262739270742912731600878088991975427863071034189760025157834052065716127952668582411429668469960846661741519394480199722635205986347600763157314389919046481303919073729833740244020282821584667221010313717247886810453128433169918755239064851005479151023081794947150351906876574203790771667280592550361515627990964318641656129128677191161448312371603192730540546801080367860087530968420425029530934551264338264321559139555202282537860067816138335581044337307357636561289287297942144215675417951620619115907985799742633664870920464995946115394970159156550182975915109283058204221442528120518647962530625575509312649573113962005317032476168979573657492604808172181217105201523462977119805858120565544822135475993172908596106949094152679901332150773490214386139875580383195719088563578591724354546596171385421615484709554674076913293536736942878554025848755131713312340671082666994354691220545576101438886182784149329316955256708036012572708071328645240785598979704902022905769864371459791811759313978539756929894962686316143945848086655903141967387948583036714484905668383460373439899767317639430165840614669043029576144847169984883285457373000307199814585329482337956443933024314386320595186241682133068224216506231020491330970152578340145956953458965182282376263303833691047266159759520010993430086029416347420398796645395641279618280734641056897253438504421105487409160760259834429968275156131628582247220765536051530884361178044977743747584855474204622381092314823582924768708747687547053247893865050866561678313480517048335319766996247348525481029285042625740575655652410760477541799320980316960902903030952016352917555354620436213212984733129625601674351804536192640163415091880152105462282120140526575230310626597705135744266737079232266029388913774424046541081203037858591713457271490324156391746380426803494767315536078472306676275246921525762717677256071905704960441107104023892110101178327029317790571535438283127420734354578195615868293459071880201904558621673030314224920830575581877212180438720181094700258498182387655801628396140291096912045700017509952551467571850860772089196686475421776067378476370662395367397216411430164292573623590589870827462651182618542749385417567662024722688175380518967129149368492653311562308774460224723569095416541694121794489870619728853403029908049487852960714279519062013643761941555206683204445865335758089233951736978897469252132015408233216487891098578220901077859913993056221646370383400208128661741982553504489878470014062406166314057750386614897612010585205259774296385508377679463989982892008029966478471099693210898579168078399801036322891998195103387186386016340135590227160755009642478797417057670283201134771473548060034922185454892080823432292204458455600661132181365413488230911798525593850551235968986173170216011416656040722250115970803571111942071413714792641364648501871004645879264308450978961395059638651181756890104085376447303215110457316427051154182877753986602428103675449546590475118320508263518726431341045940549667758076311895770378046878879672118416686448414436913471973914438423657812738673779109948983477273439309956889246426505878315086740091961454281590160618512750029966846114118437202533211167637825181946224953001750783542748971393407375051135298989451900290671567951659294037152841917537063456355714390137139409539578463027313557469592733415221565021065797622815243685649876687891883002056945022166925459516653966686550913315772839894620851536715450918822960517635679718492632077083609840662309102216202536562390148678897668738877225872389640060624859744175928989335305383464672324800730558502618125424208787316366200194531879456040565208217438315478689480428476844415054424836872916517172935443511387745595055550447728331243061477171187082152494685133575942922739661934509980291116321211254256159099680001847600045383973710769510425881139371829045047656452977651610003882516885490141113137192152518478748118016599908906548414075005122926221280468510702945275399555894968492815644781231182362162503209551412628082806621840249205649710408147544304592758017457634967541570847306301410482338638437909679394944375892544466856897183267212856634863408331993675362528287397676523510563972906123843030262111048083047129593841161171328087769416694798223404947193586138240049314502518716483076881233624099553843292698069905503442423819056055400219943497554664675876230749475265042268956590790184792796379390209067393466636544956216206976277557626807669846953676398044291434966101654402313510230014728798788069128139422726386331404719129466925346553940841540606036925941932578465627456668833610802088329456957944713142679673118395434245577675647849795338157288517052841634064658430653683076156648811918467709685428826713444062910642366222100799633134789428417902948672965888586354819910189029869918983971798422362891609166155930644846964720041925009649374172429329827442274122065006016116065101029473600611939456801032523389469321186038560994491841527780851642535032753897692801040870195430203120434057898183803161491500235980498706804150413721531650505390231273209566498220558605730195027543094315563725124504087061304663225638213055725116761160207457088323823157512879476337355900518745273946903213790436176453845661036402820134961169287932086068662318921824497612470568611190690370238553173632643153099398818940542797554437467701843122867052083729128072403851801194122522493851551203868936474236120608682897200088073070173734611149992759735986169771285776495610233826704353299828251577124009142160511056788086401496675974750940394060878644218299836371973728894232988192873083496576515227401958004921635225827513202722953151790038574318602514492234244830926111440364606563132844170256908359133445685745819895268534826134579540371750170290873479627448735116077078573458214801370763139883510205370541598316978484947400641461237152257987674292071814586633912445760352383625497990287610037955204057123381596934239499613224324460245320192841813321391881456231045639734479568179530110582406061090269733158418071365323543436223475029644949508400472315403848156121125154840382911876525692958938869965998663818595168979821607099422667401702374484240282838002692630154571793461221430360612710991930226091078111086294005212255378684010498387807136795073920176329022264853462460539138593962981913495402332999032128393591014951257345147861240658706080157864021547300123746657495161494653086487625188511612823615454014641330047052041199840481946909664208727027137455803306840636834170446289033515007057191815390174555324247916832974077387243848421471438993816809997703413635964391918706546028836302991914056271894510136912385724180930605300564777650390594878261943509556897090595175451097520482562002914636647722983105827067637440821678851519116105519000933676085292975835645651507337397184064081324456857151027947874395994573451218437041011540612313178611381331604037509830262803007674377371559965601360345957093058298288019351368866990373266702401770376489029991287248459012123959451617515965396544090935839908270259248489821009801303177452831897532434747314115260938803595289185338531976613777976397645404786040092273161732680867209978259341677479372837102365180786984261441213743594798831754823455842495988534017923936588912756552528474016138564423522932275542007807982055822003202202779885582948428307978248889400486742920449702815709221244255770870465611474739892606577811294913020973752958779895372362813923268530833821981524157561997722471110043616372056990318781085478896381439950762228420818143588420354241617744895115953043902629292209669396841547328658962473908865982310677111624445444587940088946329067077834381857965808476390403023978349638318024017236041988678169190787469241845035208943700575527660780282709393278211510048887971991943047667097493665980152214517221718050238750213647634612467611835466610136753063384656154967391430665490600653412328281130684845174613780854376161131105559122125903454791834849594352826057942279472435297727628933821536799796927405817138365002213113109623663969393580627746958249895981052153712011868478120432357653755296985451467579046212525069542495171790461849314426042991885952230396708380090421066241509801137395806026407220582699072661976531291069380512705083976147400234303919834246203101762430124665703937821891746114753512764646642991865393513219341654713993538208834326440591496809638128025186645491999301530440422092228709415747089446385578191005228847276550818396779599829011715297115955557389823377878998068869730789156654023436083614800597795048374535451112746621366028058792205595846087814878179901548220495443678785640102588264868211504531507666515160331018110443198371482757197528765482588305280956766360986983321621577513894145930379360760086603649889079326555903425910390378076977336316885190697915583085765777157544910425170539523622328800417937190782580798453189706966887346093159169920370076684745027891349074496193204663698898853133868335145616079934725700635825986953926960619360189584491026452746883893224301632951039710717481931586421232050890559238963823265720750732096352403582651774073075712923810199572095214589086854384054684296030847155929537356798637229956915532296630463184338063174906148025436984047354993109617125771175664488300588190764837505337046832700421374134047779954444077080510784811317051290230245545139543962529441018819631843904132442225126550628796389669647066665367367856336059341800633138136174472201939126444768656488876970337092048850713658308002091958921574607310233980793327922231189320567301678115975151341823430850386131580231045915461316956054005097953013619167407616384905196063576388959155381001963693892129229976486577269326237816891473420877253327650738573887771772007647070098011024719680719307868544715044411945661872347414262092718531721742843642350530726329365687678767023904698892439209930520287085131569936381876224297936658917986671020133645943246125405340893951330519117894447130062021008347773581454498605350287080887138370121292113130767626353594086300433615695592627220912488012318605442915795767970610998778607483255728228689724422340805012196603594902916784944725399034275006310866703478293217654687528682384077003514515269872876246131394817881503114770596754789634081484128134669526033881882700469264973871376839672727744619042858357381202866959006992649278775155684195614162221263152637808633744883154802650818513066289212314463743624849109520260588876568951753088432120043052500139907105364484373421261669986869168948044717830020032587948846816786461767853623503834023072758266369594032834714004404864312818178841603956439763833883090975604171188911127363478088452020920998860054246866449585926897626117712656711004553337664327166829240135382925143636316698168451161032175219021518239814818445146953702738745644196998570893831639077211456043258705655209263218441510218299493549243591712334715061704758633680708695734181071358498949009595559272999499431689456981448199170881197618033628937883337876542800477532865744153518998734584816348813052748028162975497764280080958360913914373608244794434521179960289393011667022501825890073273452709459963976440568784523043103182003199290888836297427364877673164196462109356630029244763549235740271143589445475727980396398040649076769378035057257483153655028758126676806546854664192461337451634692467657894596757500182859621606974979811677751208182821875992423010462634746438283307341427176037279334857005257061177933658694972637608855448443928984146646887305229725600242090744414040967438398151235219388084758025483455915228002652200857859537155554489491233167333904480364916816173115672685683547868375907464130201366528147935250125270870155667375339394353801745248233726287581076055657469531217858380802165394624289266352152191360339425747242786538597025989987720090152352748407530173868904288436767490629079406420700137782018615985314499646221752740860344598813717787167662324988283647214233884150713236672146653528156887850639346502354787773161127404112346962842362840627983019778229176172258017580548199939802041365344833599791424950901029893937180581236688191996225339800974365203214547754839683291012305473233293813631944624905316754322373591545766091008894299262560803134677784427951875496921379598474747361343126182893700647683494384634238066854993140349995984500830008925183992367949871705603085043909493403431882290679542746583181475224587878834592166843567812211827232559109812826732070293291153919819228153242340899192369407241295085047788053197795394096141492453933832140505793480057391710123762100680346863508598177648132445678675975277453812764336528703399555578447537349039133009987874610553115026653399133209010589561060998475850440630589727853767303323465028307683006951630168734718884886206882163412801878880267012242495158848548606905834313057819043333974317216463684214050826166799490544541222715936054040479641512518173488185485278874369166120213913238846197612305162272722474577527085654458969060886389254047258513182477611595229404311350450667578409713674632327188155838318228369239191091790305515835751885282007216874806074005659059823109973984979905423795719871009400717342941175929493227393671346388328632846876103202343273444774699138580059808685964802242789899350246141458127212650134209998878607738135202042814250124178023659775655559633156214334261196545392014398223489914388260574530206706804705990077750065922234388578558627847561801876056279281443456214243437036679855016529848820405356296354836601900458685698266253142760235395321636512609831868703092685461234361701090947522909786822606863688187012490883907298302539297545458416813347453297279444791408172364153445116185399201727574885097776981949828430932324368062835984806443389696051965362867781643227436214172914591735855586338447909789027334337670870181586735986822966669419715232862737361256372993803456999287397214755012126598500477905947098423390719211511287057263010897739015753667051114735635350824521547649871475958711705033388792646571040680880395445935306687384369551350500396945596546571840907144069855056381631521541912704388018394924170483593122457369590680352539633316308017306178121766889404251726112366826767465875711801781533477618917622677017176105619677326644707935568638637620028169504006358640060624591200806469226182178416734069638064533023677437334749459539944524059593429486585919085295806330057914116118185659784485859137237195245109223222813830227471924561203111056122998357287014462010030856308390360058264251649297469997199279802569913030143077607564874246666808073918174396453919542344824177761015219574328156716078955390135103053634223694560847824595190931744446322815924693633258968117066378394217516983333869880638789473950652349894716589461513283136979055710506402057936966675113899992471504442154663419446168612171739301570430793799039946293721892389170863880433710611641607274569832342689614218219510492659722908130994086803380208502969350778726675633190417219343322567793249581024376888448425957163111215551085632113085531283733064857640838061798686895681694431351083401538748681381766708668478610919225748047496835962719814512318859989811844943323927014863852341603652463584565454919515988680910398787962710506750496751038344359238104740208101780580832411079834012988188491237919672858952879955111773299733903745066710249011016937580291634534217667178082902056238527185845910057973906365847063048908752006706747003050369658259624147896937226884104848037842953204366888393476383060334271093089262194493237146073612282538960191516666257366496492636155913952143416602721701265050397586887707846006616910215096388247305377377003725137847380246664674320572710462870824949743058697664679942510320473657376849187587833687699834416391876185066317973409896860151876704277740010925908243295045012757699359472163002712360672450788299247981196278298406667602098055056244994482178493837263032082951266620241468921896296553708718330650223179226934081220784109618621300766219298164189975717911221757208289592926621671881610788237564582803255888774783626790660629618229853786633462295326462070935166699470683868304826967468438025680944945479508703242197146996184586248025683099604489052513057846394825836910498786396625803220098387046026768415675349783317296118373300968149525775392033291292457453450937212375460634872753969377185938189337487211365594038471053012203256499824052513509020028703682831163638067684035580885629873327604974071415742455779065725445257439634777741403065961385766895817696890798406831315649399969058256801342209812600884892177651826661120282676833041333744806308305506884411138305638215299759014646287705774257652584371918746058181005588268364865082447501257445732699636489584248176424758260341739151738870659632340466190982053329947255904284034043604407505907251264943207837438727922552110151943615358181886112182029804824793335784355771996356165092756390644508021249902462499190279289275367017160519174616080585758550994843663527077919510102760928315916069479647802816670069972562140362001084752495106797754415846942184031706742799433880613811492607329589600991513293472076919047793154131506688961670288120544977122211765355618393157281606748298212170567573644787964650777996194033255977116689415041568437071445258988481641182190470386408106284252534656061087503391233827993253318351997607420249205930252542206846303784392087789317659436854874782600490386712945020916255356403196196831175992260404584150194490768188284547348687479402319005110876041250959377665648020695085305395823533000537525708862496212511609308180036318584185437499542544639827952080907511307855760673917520942585114092011362236003761486792352401991206559426382096579234677007902824848955845221847314393284528775966459506288214476122800210536068223998026814179094182065559476306935284545933385371616722736026017843086213567561595978524400992411739065984946970934343521116323047317026645549725987763453443719100426369286903889952435504801095113307936966393509320653564872278061148470202101426085066372945849614100501404259230321160097232146462570327485999964115385683515792473750218770549473444694949976937301436194486904087406659493495877825490518424875542577750119097600553524664116883382829340816998189604799524824695399310297026361035512907041145735686999108730584839393187627208912889779166858454407450348034016541293248273989009409207632222847629088431924166106046664242669016845861313832462380978445323563180789360451492579451663147740384007917683091393528766696102131872724074550420226102483257253094854720887768692011844447357402179408010645771752478080764721814177265889088563753461261943800278691676944808962764920569926767238523086317700622526976296961003324767499530748573336607984525898466364977401201708702994096975425687956743631363014072287442173468629308819660275650925619049474441436226882112009637158269007713948307205657060348907509515141429939031847407227648768803762852996128956987107596246799838320581042167120542453829667893610690226957237852801473005548150005956004250870396170971871832215781276290916162446210788577168705049230467603230490504925229311502772744757803473890118151662779116694215020548469813541524865195939269286626915592056452598561556044250691508746674122555048608140123878526238279142348075457572114010474691146583817106425923865564920304068605501322489065563805168766197588851309045977564410004108477962707878976900703051842404925931198816313713341194664030407114398209528030089296596582163460525088346051799125271723708338889879867376976006200774944153763622219783279316309985270513077814598028160609682844498364282663161176275455307462850842430222567306983627054494007107406293486387782652007590085812175725290370492156321560788774915191285480991935554681439524651918283017256336311493296020308759603144870531350189816843236228860219898284076597698418722737241576535153823251163905005199454936840742458337565090762796394660486781246391999911329211837118366296090526688063716894227847548777200292877596111611410533228997771411019510213559410125891011411616913834009403938411250830072673269785187952313830216917152725632592230965704878348449638173366141891278520121410085386526315028556964610860072070689952637166020553576853744982941267048269865074668304186188905322720688118059829564361423573481490286390214319103548422210791032361705086634233699045776861571281306344260353970785136292996849874654294094989643752504901796361339399917169264008425699313588108820792755327529393482858341259054336298392988134347368384937909769194616509271384760087125513078958387996149951053534140880601747567919100228245147152718296354312149922032188359952775074744209609891983397917326443163705743882935161788595374172264544293748544781075643677293763523347463598032722618156621942160651945061472685807381896903681774718585842254069235785176872324233766196314221395805368806446210195337405620432660670309662407065946380514464140136889756481582838108018215014758146006790365691304596047202542933705801069791817726545302824093030538170791204831348784270915187788333837733759461706223185264335325582990556709298339129705263011493844582069281072794656378440763486516821723150259486685604710050234230892047833406280056361210177863589516368665626376823696872368445425602983875353747697204481247194129860996742162907041942657193519246845561993399697076549027291504587791880922000868587503951915594974562526931496841122375757323399886754951347395963251921887233506960403267377339508612394852772919103590178689959433773640320845418253196205549852648904323855532741239037692086853833925078704044822491817426758940096955739236518560401266692059721474418155809765769923765093847668197544170776723367816429313579223037775982900176858631410925677832435210016941673257678168592451391241407894182426669398594469374572238968943882186725980907538155367484645683055909212683571804884733781039141164187067446920331188688309118235878640082213416128517303653704182629820958123770247682410019648569191573243890294532659632431748646857130983918096079050051943970830944997085380671141039569264625438040113410082834306269915596997015968074825779351209033041466874993083480721127622800325774752021866075468129815513649724882448450228439136751108104559811494723083294415255465425837813616653928838542273920316597003310267213497983309420390287651877789257967012033464046702789651448817947615703946834360047750300300238324250215145798393622172153163302993649356429717904421911261103275697293344803617062711086205779378363460742574503650423916603764878300831812594701669313893842443379171844602772637523284096772901765819152080231202732127625730355993236826815080866921804995413897445707946510554041422733182013286355553814795594062702710913170687489588570038005217072931230846471419761790347109984000504485581911735229791304503036712066933912178325226980174177893136019328998502712496702180897131576991529788732490520321241975511196444694541376379417655690195566856279802721357739040095718419075635892492618161210059499593954758767052979963323444588911430303025509073939589256953347433258133461805091835400669852252804832183705929120824884910887402376428241173888473004674117736963045116813127269162525633737163908473348957973672344307379629625857809832427374103326226891951823448409603398355096107142307666536448682470576396578907787044613078988624082973064081518616594626894529004885653107968191103499186737111408505526284044940006243936499664327540084697914962176566016860339352496085901615184566125698467484350497454059119531596081127263528749714431790433637880986876072750081582037355852112837431182016252115958485035963486348038788455820175570857143490505028026495491676660879311929225350674253301083563722455748810799310152281025444042211816579263693304017518280771415496824120750285018131180405122924146911226015062555565395098638409498272209335952722368526929125208728003443044311157926031725059425503629529260111423639598663630165655758315236926685107621336603531398660382305694600125257806045800583815904882161675024935075084632888880136379110373780269917608900792538886757348845736044569025812310111237007521156361630773519378146055446977933164097273165090695745346910968722843520291559669708611180048552480355060799980758733890546804374818143194103454808819853723380401019903644300798274927866528656791959535476738205118915500711799143546414077690541283523555142164546684279898852981655213571922085504674845113438610326529667030763596013845730889535218890657881862397216806857294895456993867678227358698484816732165719518503817829201494707178181213381452875357286851919945233428557866766224019012902552616825349167409385355166001912767286907741316456067019905431109993541896417042254739627330072720557782174615260004774214484791089034763085516986538669359387651642508577346978368303657964877729579474164266728818031002254425923245199834541906723022530354143248447112355017731438301101836607174077073591396816176222152259521005212804920541471131592263189897439286025806513409859983643650747321046470977517193471737849838766493178988527918655327521261490623844367610621027907122967990045233975425526759536068505961204908300660320019558683024216573005363775724585649593487811033679079900681413440595112486345244044741127665918735655599234838692682279536799643469112121738448484052121391322164304428987394887143019660193109133680320053740489817175986055671913361819366230435250531106954480460579998724934071121902763317951149704745998486857942836672367482075563868755204397867889069066233855877275193673596037351436957110317706175606154933066662258676111022543136442518962560180256026115895244153245749355278948434267484347741858891442952349456404091615965931469979453707082104404018599075693327450505888131073094046164701056738119059028409842229618506257111072147502521132080699585813280668334397779352917937959572583872481036924504192710748914066985258782335428476344521119734097797877503429899795981515588487635057420073095745524166447107637570835671242898690038027865610550458128073816523696595675396901392955271628423686103030381321429438987079846426738405707989511449078889249695041017092572768638169818527533591368818125100733828277151218744301656838781840348497489167526165561072526395844921112911751106802337840088994879275079664530221501909395786661751155914038999219668062007554435201246586748964236447107597875807355906654429223937672806417757918588063771689660441128113891386175319526255542186401963714481600128288371759708777095969950483449656181291731396202552656947780782021708147067737933186510912433221514347843691391275407051181313254394173687547667363093168725953484217959842467960576768852756596661369315937430528086966398611461098901834395245533905296749872904221427535296512167809738787925814187652197128383008194489553183084914131910320670855500658519297987095126971463959489168337631914677911347190411920707390907908275256992439071942616688966998692541169330722469228994514760196677582746047010636024202691964349912913794826801267635890688079225966911589659769398922351364065760687019967850288087042794012647851690088164698001808489032274352825571110930515583599328929698921262629699025740533983138066838351827048657651220943253877896547117675466853677263297752732536384188971003331752131728280862637611111428113036830623349757118624767937488021067233773351568834285861461561039045739062533104690679834244323695293134883112943218285024396579376290556540094422490169011301221943754836195439283543946468745690007437245465307054247417431222210586782409577786646020463701345128364535459809921205013313507945581031157905923470040682543066476180855744672973677346541320625324273864673724631470615825085955394118493920249215859320236256598427722877240594140997715261890602816745686924057012642598993629708260291253715707008608481574908370705248869326281653244598267194325264952051485743158582842119368345989587037959494588111962448269478658373442444938140454534463870841589401612383711833521151814325262788356772188582584650562014033361952461809721919403525946333328454415679921889162308233768149633365549732161971009687619573961652090578124797856532723604937788667875485524132567796084449754886905637593683140309257145899351454379512778247259382855481546280463315690894284509057453238220961462070329001955431177022563478051267095744236830347992374942879219449771447494666639817649132659224144784063483053331851624007182734153734340692552355423823437458643967561381192578935365930716519646754873639445753454961405023197700246675369478059956171481314052565638913882502453216015748623230914311614113406693255245358298542247714420907981311747484328566639479991548257799655497270216052745719898341459871559441086931370514497587224516447034615921203054066429899487551129618086186283711919636243657840639547655555596084112789347037242166583820994294116719451113288515966365631252011663411730903483679013646854015204659474701686882104573310212245126715403560896296924944090716118959617933185993717311637233746075194829668513105397928882451536648745166661652280524251883572851578012726454468601295573633268086605248375751905293610257120254472467556429154807375030430311017597052515781645752737691816897805506115290636066445245230927696068422803163996151978706874777669510552595993909826689908886642774127160854149381630162436814164472773270981522086407355314086214072606987297216039772998581412324232411401510953334292682859967043038544663033903053577913207926565890684413109744011337273399364924575024663716083226641195285503246040118254793646724541217958712612861241270452319442450038503047573031717259324462591085694235777750806969434039749854450209098775662945158948983340376686903132219796689512057987914697706787342924952408871888603799580521243817460574625211235324824267068162260425847131691824956312807320694954148631688350635748785295615081678752956704321796429130684006926396734631143933134704832496542925205088212584482620635805711261511799551732151882139741481055416691491791973546171148428691086468830806993928048671182528908695492471195411034172421777009390363999826371555343736371046554316351628983904593666453739143287913313601723671999914886469099288122603982967909745459981997370824332454231344483524970506974303646626130071531371243667218591427328075289147269805264039989473504853753765260436904021682330607408242188093219709718685821763924061585207983072884328166016711497649824072022044123162541837777914099068347798126746300029476002971558385852380793337070783132646649686079045378717836869726377368661938374693661039890372724034470081899524480691160234826453867784271253904982279184591338744943437762160930509875772744039203580018660034717422301217447839041717264017457779449940939088857226823101755307505714960376674702723968641817863139420003941155269153603961662862239053768135117177589463457074240266006483481780213066808509172017284586676723750864002135237702665387233455112764986017637052561793879668289510293948515809402097555122940484138182659727839038940423346820990310129731978163496716235509197136734251304846476609822504614577210770461103533954768151033618225442997657130275069803393075527398380450257728546924432756054858428410660953721593026289322124864744266873081666994940230528767586059973859246860478022808975893719625701055955688305669266956485231946129804848153352672931187704491261904949373201965368283915863428017717390253653798410800727275764923514690874333520737539997859824155271630093024924733949308492475219857322149807009927598229230877831616286302877409088627293374267347968147722656015302817932607989101640674891156881514282603698591084914980658408876266451116332347526061111176554819271252246786652627342877709856230354219321002127525260279918924558929234860161525476043106258587694907945700600376405957013999216874382520271314271221858152993637498072271023917517341538049607402453112737954056931129396750794600656521569453530164232666112209902582698908924933913084667104089963332588119404299993331752474570381039091310929146905186604197796344184884169825377724244092509692723945633701012186216820755783886889564505314149760593306110814858478813064177781996843720657339628035395167006319177124377278828459256656711322168247089070308081072484444381195134706444133502937784515404798070372477601146647749118474232246064095226445968320942039599383673484624093438774505990149354781595693810345076543342818883536331580468702670254118554112702363995170311167160451933198070615271198716657146232779184047377815995959438132848959453718069295885022465204474413592281814041483205518182884919088800973307011500484092365184065994868375314041858021113402335367056386545769039617118639009486136522357349571089881946324732465292197284358987780446270259987630116278849618815206154891308394981384968272215165226530724320161635511951801292924498505039232024289945185159604421514646021697684643692378373398071191649561668467355749536974043199413574892755664663834660396396519107953324738016009051966510990093399254293922996405910346960806922529718157135205934712063793892136291935577970588143126045606765197281169470295504999559659611502882829208482130143382246109152010181618864342866090514301458141705950809081137915634798318549095586966971936717890503642017136532079402993955285918535629539119637104343338924256682431527310445463950576963445524655209738324979285586590088189349021405290259217186911314224994779832278716043646467828136813848320589197531818634940148033425785497896448030741627187697492039219085061296201187823388596539962885699202333534546514352559363231624620199515290827201795455386867981092593380995418118589088987306801472363532095731152512561631074303138661152790359861784567925456386027171849727881109042440802376001218542093628559854005404996645282506372323358013459370319784785278688736758729455228129870175653474998596507078865508550468855671700483851342653163082888279681786659461596985782750674028182843252516199570913637595600597371701083765455881996632347517784442745978875529685369098171281446975146171132135188881777229226146905639038993844011404581307199609760544387219779361386908162762376997260263427713413485414094086641836869410143334889891483391242273715163471863118530370320551596121754560470581824110639005183221477460739871783058449900587029490638260406846746008314973858778356560045352657171701135583608485575278563252765803697966622978371395426436966772240171393588640625241519783476425663336046084430954545308611000489895989231149707913823960360580948245114226367404730309934555483603594217932783467447812028861645379554810788275252597356291545926057363146581934675026181508365808571897692284646047649332555967335270941637434887772240309754189830417946764466000185056132677738317453995211058937195464564456221243062238360407667752803862362807690219733982449786000163572055564180574743672747159423560522637693384482624933290147626107283385910488668571277983600158146863760645965977223383177645925279303749476756845411127450357228586400247863485460411638166842146894381150426732141559506996077097999538601359873155411605114166117999553006028231185618413666310992369909848413048926110611225616575245060513678272080513912704966948970304212822674792400715345303540041145192693745583873557114987745396021711776420397296716640846499841775791888357205061971746652574873831941652999876160153129018489236031079378597378993901898102244754599126234868577424571796227087809872509012426402988925109572955685946721830802043183319884368587619806554374559510713265325393101134685656702585602493816859974293967182225670533998301081387244735964382234175498500861472788983248697259198861434888777009812218699893067128582431917587611730911927538585388866700126599287807308713726534473546009894440515424094141638246311020408346192997314049217991634699047743475447339643943627208886033010523433621888775543301622830748064214151548184483981343632554224696249001101896360386519522309963744067239897191091456738733531049327287888838682665198536558988936539896564605062039351529905248109513528637981138744538434570795562979605875729412236739076767217634110122020521778492467399214704247961590296103212945715727524848258013944952190631252563660303917237256755028548704186844976148133748522985437809506488355849791919653327120378258816207506641943916653563539206732315873681256819515790097589568608703406346789808583325099865260765709845245292421309251043136604628972797425195984138564051555660165467413968583478781217970448369161629671392518604409533104097650723352382790710832374481232578499392311998382858397845491386765197817876118132954879093118274393879444819361986689175730196179638171333117854428324126598007757006421866802961800558230797499774250752193940217307973571958263736865085856691696729269501277758210879030672380402914494648127126936243770784409337434340455793287544507312555222392658665760263111848486663566835801498398588804518170203186701799822680920678284506152509045786295455234386509783242322577581394258571387346503275185868822174554212232392465766208141861689843244003225477580970804211669280861023595656213179001394609229374433529684306221745476030266555405099690601089825936735428043708236038378193873577658251074383763006083481810465763965860614064827914465533694785102952978523388599346055382959800337241968883351499334592032096194205312956821355576969618707416162333721709109727300799102109241969521658838812054474799021659271633423438020720938636090668231671910828083790470035577780991451505854981134791915987569306304854430444853050150209007319512809347172622433649698266714698609175564967819944196065464206944150568357132364761878810323546815533672133644439036946364820282355338183317634760941736313468008166586984658118028383756562867387659186526486509381689903897769062717026903154318820493923989891124006125485789239820080709661504211070167833227814686701753139294693062838214033781925761320208806705945806257367967419597039225624645708699057662766261787709117774107577752603877334225503416280595161220669340101729678013732818245278585212910793260496064505728061124453438455302453250487793967091629970911031638955330510789136660478455954313765052735300953870110216100687799071003785472393680201776975023100179918712540428737962614784073958936845462199571078605198907057635336829557047105073266077715765266762014870267975116048202086810798218918436986302949571281904519329325756960620200738750789874185456278316383566163742689957644207312560565260813840783927683629560969958885996129480586427680922492283386929821051250987993660689699491109330061927269625386744611082259472432100038576021735168158960744329336791824033526510470267025107534378588645817571821286697551664451716124512152657667916549634921681550202149030107355936815436501973609121299444931691175638623261682099008543771131211660412689073463950644087369214817900800549531548218143687348681849071531059790301242702279442697272199904061097876672987796212195676400213227354675276759557367908727571616750180801083195829447647100016770676614463147346146582658714857270523881907346755473941891328909208704201171019523943390216338577848914431743894337294758396109907505697947085131802374927628334757351782109087924854038192874094619266435099330801407268512652228931019085492272919209759675806919674684554337768472343731445887862760971034813474785947851031089029606295722689132378256054814269304598569588057684073300611521952806055978973907532048506852610703459260641203738492694029453458128663949037665294139824819314436955073012585049467354451829678336623954852960561977867254285618417835568372694672921541152605555166745544344485038762348099780612711345592590631912608933655240404561717278430197411666285989688710112645797707212320410424983405110577205135997380281535428291669271377716299160356773600729737063716080714641833990637598293064702906501691745628865628103675862139502514229476344516560427547804871337486546632987437686386433494872349654981318091418070851476359758436495949799814879083846140039561059220032856759777455803858528851343916888304362548233541731150927506746111927174698154453035239464843086831386333675750175657165881051579996680377510650167615757010782661052078564123060067810364392109114768586711060182405072651205909835743704356682724468313353778777758552814285671026163993195323124827522185486744788117801416445299972031078567717013329403693145839942880192780922395661941078654351633876115614794897656933691480502953891844960316542679332348058117890786235429953227042727560100542190629303758623906597432731607813987682435410425701982814335208493924545576114622555428657526704140479276849526528737004863858575431741028959495359834172962743128864594460032994815358990554918342043057479919612444089959993767181186294710885610100646678215499028114034502464948947865688606872838179250679629226779595536815341442564936942739876690188871298830342225257397024997351775753845784395076420797751250763907095044650928836870493369340485323603479243418840839106841007510890412566856864929509552900548962424366506034599220845913256001764805131019935587032039329584048681830516160843691839878535911503123346275556823909322068619423293213009545456555375113101270468295470793466574501521218641410027553151208630339000476607922358112820114460763791739899158310082011184982472018771447933241277468078260297637087911769091927741616800972184390183710337136798248143860252369407819694216229276436231834024665625905772618212875065040610085530486887837336602108327020605832767533472262967920200586494208328222031855407969938821017456314282301321999887436969053937265719074338561883692368280822865069732972587733677510528410552441984120168181816199442600106571936169690163810379446790240279336774255727258350349872151056294138154897358900163739951576964798261694445588573014305534419746960111280503361897787167960076933567301343170211705372901639725610584912346227460208240360805481675539453077361067947516863962591094450903827525826693453940165082489372646564871067765012996599522955859744868595973900568996251820023149282312560822289620768878516238907440204294886239698702780164033365009062100398458716434179259857117536069778289734940601583249385110229367814373838412868888446550620656154537402596314406905553123566525734271517374342843611032597670459480402622376621242587070640522421519464246638971296284323659657429227563799625596204102128231979756968150332724455109388769479558230431156118206794074712066556108927843764367511563328040697623605969669364315793172142355501116083456500521332835685153912630021127783694894412278369415028841227931734755976857165450562310786309320156766680109220631620945031903908350811157515917818765171925430638922632144796092029188973593785695384692854997467211030893820463318382091902206417056548675554261150657592833291304445651237647588595813730624674335896740904798711345570730475871929788220346523944776734380766872265573957206353165025161340818446411657912967698276073452523659316494618622380043106739547946699777505335697982995600466417700031767834403415909948929730446025563939305001498166686599946511710212080937776215220935280230764208139156483652107435866319154906333637561626577594592854769807176451270682891476364838397701380814501689898366811542947633316693098999299161529315929996140800586815858229917306265614364978068887808472179855494551844271659028200291114504009205240469413559604433766635787686816620820403443161172944826345508051500403021519270626318450679041676577094163796418048054153465030386434261621888501700518188448396986019256054117906581067088907971606549223998867583990958595337529764565471480403578600077645892375020839934416817444709548493189354351541328983610285622275225130164974827202082684509782012829190811430598574178487310877046734893146336853690522581341809866890086044905246134951655056900353887197180001213272017431755846339511652616534876284010076624641773858514360175871072738351663069734957242626742883583185147292592379288405949384439226092921985891044441643684444520635074201224270773259664653628060726249208187063116204858128539971052162666974290413922816030787163764565889372991074426589459636677036079186133834923047656768792800440559279369956408367552537275971836550879756906795338997186755592314820715932588892410933525989886406685601255632747047125763251431839752643544321469888942749118413307851589442594459281265688196385130088512811222822291452978237244399167432375575301471561096966430892795574791645101922046793616227478496999514549493332805558885428816656393729053208756412175298507409926532286872691176360898615990871321126099627815032353208042709198883173463699572260028485426021757150060286595028868091739088532951667360717267417344540394883551678740357861329910583469992119580713043482670888709446255578988544448573473475843179173548470430771717277030472511940630633822705964649794065377912291960580179061483268919992873522403730560221469290680257936650121852057461282355915933677496289417668900925120891564918979242641021192299784528814272816616718059360220385928058468659959084852048865371678491603008478545785471241387337332522689460662033089066923842563340756500858041768485163196996047077892854200230163104872212709152949990341171821817929708016235098311955264993690471823673623875506038436645677761742840928147613033766975752376987954532725253242603344941511765394314122451299860439016809917279803615160480485108226009632197557437756482000270407374340792170879267860663362904662421127779674342301467460165087014361172354203161680653557780618722090541559986042667989199734691967469759258377994602757625896730573786800432100876920462131783546925189884568713734894365597447664467164727750595511786043583926676150314502356241372185011085725502198933803424461019885054220883531728196975163225116948088957489742750629883186945179386619065163399320623376100219675073614911095685305438396296102469925598372657129283060397193783137119123107683705755046759747635255958217427156405798388076235355425736327995427645198486921674329567803783557215931536834859026102230059849426923820990431631804759884193597152238165343226586763590581870299735601404459399002663034049052693522587669692809903460718588301103322585243882052828058611237865912958442709717220895330652070628199147880893672707765775818300358123574094464042595883019700745423524271582638245318948309806587308081148736691503047268100369832496836252405380541829261773104317434017924500983751980191148473364257508251681198562852800315431673763316593523336782292476524655463592890791356832882004047535502152408856819532492676138398906455423666258716668793689173583439789436624646549882874853058980499681402176826929574626901537351696586765752176117039081397991817172974040468928472710936606967919204819228282873311546583968506617080206577900950977552127353869025114018856552417409206526816981565250207230025712392651327933386791430193042644885834790614026226263455291091300476773630603706628512417999630074785914097226117148345603118553142383613537689389489748425555971774441603352044246024755831281318015046276249121553012221631367954689938589151994802862895558111849215975215951390269667273202148311486647052245220766401856573194422927838402641189587381059661183915337742983559491415809238211168631068644288410755598197208687742782796173480015523900678554515478837268787811860181221473444690614498855522831882449776121735786895138947573822601558189022155966950932370244326274117037107212727577257092305775204374790353719641148692998358390724193775642993600599556544702659389214817824474210972881561381541374048983342843346812463602561304826284518153456214814684151896755497485831448205352821715472460147379168735596208869269272293048741540694461635358539483066105202926370482111243813601116616280542994071175421448592588673113090571186081627352141605024308868800307410147250659517112429522676395650847518763954208075511886058930960708165897163848397258222062594582320770849801135712929059002825118360612697225648324220205378670358914104894323251335365628714155875414241611512215045750418979603422471321028876835236750497629002606801099482564718249821038844674104393096683151461963690853252448471925748880829265206910265675013706723547224905976886183746467135719844435011925110037689727236507454626430977632556424484527608250714918330678954950256699853397049286903176016273723324653619238923798253287917066974826902792014943664171884559051360890522532955661523366684434933940946084151548259328203045968649882556121150708636521643107451333286562836020369057965022775724988591923459390576409527735025091646292991650803972848989214865525258629616782976633790209437252804516350127016272338289897085417608421318827357458047817381401563725972345601560812405871506550428362576838750690018024298488563885939885053313043188321516607505113624861045994073598558503960940848792369930069357843181272010325883904526117475669162521760114434244317591449276442209444716734286196608709564463954526335274305127889859965180983891627093851767237678897571065387590450372274244534549362882533279587522321787519086624957337256172470070580671414182329802899679332348122467235302585640512259756333024486597207895140640048899026122398622361975992632244788538996766636977419616658886929192024048284723997469630836772530585529322258663637009135407200821807626374444967165901826277922308872072921569279362634479077246000066987562687541224479722860772661607969543867909586703535457764333899494835268178527626870911852511482163848717421698930289286375499824823904509407728088021710878276761354276891688224063194273123624402174550691632047343013863780604030593644342866537221729027093255034223409110010073777929695429242326960537302023354247409813802985733377117846844965513035760824012944992859974507509070077932535836551872751126309663178108791478668014157726376920562291247478637848117556349225617555137766510318807846271241364146257199175889925503504995873844116100655991094390100594916979505200129687397555708058325499001332748503832604234105587573510261662218692318639943558361605878939517047276668962855448281589384817410481823996614444460397374415526528326008676196153919300673322436579631100420137392988979765877175931694483703011908499485697898790742404057786003197246654099865201763352954157278276965282549241996051299819956199571017325885339076890795395160270060392488887882867461686220409317957784240953127449318990602711617754872928914517955121983769807861429935786218382774994167721177995960132666859263202639350895502674387121568555237678692550662629761534024767391151007458734882692470877762425271197494160349853554337672639932140958525824837024150211702393863254823554190822425275228127722288068771889740937991630081985567388236731107613816936132896679317613193540898906608300645732874272928059271116777990410825601975467964939988127492014252970946600822116312075058861247995663913181733440708587224902864938366494902582671024471855654156040637337532852835193101840032159774316878795093392778828827905190970195918588664246945698056269320136271012186381265711368785942324015350034772540107860633381927940619862363933793682618202879050488800932684937841887006475852374017181997263390522305199850871846995325317125002846443335428144991460113652069640478139672424259362175470031889975352252451021655498259600993187051136804391343972931161884641326959129083575962559941248399990897404025338030553155072948624746180781767121301096182032812685300413115024762870342100446309977355462081011029883895700702480252421945465363591270615668451545306062482168873006805033311469685904501547884624136103832876219266487444603987260009772529337118830111929825444683593760266158590165108830128881310161978368259423288228628556538654345319760990905932681548642006475544418463375419929348589308152047198835853969231928047677872199871838262476444690200326074751470243843575885909748038823130615802172525147887005949278598034584164893541075975259582514632081637670860056537498876245936261768977868690694690151714661705945107479173854541140810475527358229223296966544421139118293939444486817446169134549328200280143392100887775242310816861832960988577511446670371461674403145677671976494446487881578414927786483641277225798228472859209882729994716134302405015303574686796352292558436650068333645477646631302155019944772160979105173773017162843565544734970688868998969792331580763240748881948525586152161352086340910235781130559581697886590856053495537570115323024355149731598861798469336625171492229292111613117733191845501759063275152953788115273275036358614704742098113781210413424673136880646847472984652780131395053888073503587757689565192653596831377746094546158460673949330604173621473255021475172253367750411812081728806260702922963001320217928274316622980353423864728638966831121147290904178980731056310394171728543187770027084442355618785126701197540971817494449684881240807502332614943892163184530212553473634895758342565505266128534944916380487941289598102742268251086050515969993076477480947206957700896452502018129729188643748453820967033908166424311943861121354406617577160563275856321448670310590617451856494260903596127467047464182957115116103186543030916156329964686979894980084812233344381487374206656573717981831233171149845986445745379437705102412449579573018234042569123053969617856350593270879885274609899052939198433367808237357766374261381543587994065953694269206414981917403073969406317470904142872538191310198203736633445592200351057523610639532352177847396154200913918838745993434306079416053121828326993485458978973031548014720095154482233231214887719194142516921052889796583068413791080749680977855303073265372872521817797887095409661894031214435585913263759085736263314811883806676362852713248771623893692484258702281324359476653653613381471973370308454277463295542094429339781576364295159263275258715527476376374292895512321403813280532756189556717613706070307533908346068314553155026605787833827318225230031308870315293116655946610348227105149311450505174942652812493683066810267971887572456973755367053001371601956091170539210909486482425971695308279158841827988295837483569893595343509813641093039157574312738656997888942318756179802630039986957610896121541752494059545127143092615106971032911914745844007506626746404409432448790840138155250366955648866273943498410006469009161372972636121150216956089244581754308655893538392985277599454559610294994250126740783975316080500031999206247679276754915111916499189971330587272109379131351987063253479660621079144754287090816140803968416030746615277767961291882883216967131574278012233904243337153114939932803167345213387042074778517531476057993876867748129985585410365865172911877297164215113594122877921222717903264448133803815754523002538706942334160279790949572297140719718880891381345845512328097466462588195084222723429432752878615283988799242769408856229063559825024303513656439773442775216567692535943635064881580090277111376769129664625069965080982665022361597713428114397269593465368024833046869914724140606441886611803605370651556936791157007100083529132328088162577547995260397292157536835465760555260373315256699403690525756915218889027893772658478675741481814022381123028600523450444173810383900903520758419897875583077986605313964517224526017026400925028406846661638086689823896550260881701831454266912356189611599276324723384729963043114895860786090695084438730241716240966353172225337982089852042887002492295303439337890419282059313049492493064397986483208765196233419075723848286855143438796450923172422469887638500447164121150109574077234761880368062525865666208972151744989971578762597213983186161422975160688403446591774851669012141011186422388947610636769566023684449002699692422016041027427286084096321094879613764588872861560316715850541778973858811089451899544273101122928573176026274921737085548757722364290825969924562122313997323447367550109691409882436108008136883260151432533199366105870080169867982187415784151274483214598481446671141786558120117698136494138409129544305476964775501870601520211479202165388320750404026724347210041252535256369528062204925523262053448215590980251331469911334861972734345054296752249776494763466120529488026821027658341169156062002299932503870284981300234442025020691956508164209492096116275723899107613657364014897783195860871879412407186489433717472237253659010671130744795537062747244211904882369826781065719457169502061410985597932539362352211070701669886240535786292728229660986143242339308732098444897541491494485099422870966542677527591963297068085293676723531733301239005233743066873503236099714581005034471927164671113704509489215057265411955118354698759591363989103601645517517530773496161856211380000177108695968943341361417597491324405960292625677228157108573546736892848028270811807637321783000704408944276108818187233245346887181424679070476014464518703620676106889380390925096209567788471629260360476517927701450714736364872821456932688220506615217311751362041052732816463315807840983950133713997246102392545373287192323208287084768152199099993624180659237101465142567632999768374905604522631025201572067088239416394709305351425226491384421768273152397925931592564686302304790194682852990527370350266443721148582605005787125208155709526228032352707291466904316733356396507681602105708088260072004947620957306735708632780539873735697891117573137775914529906013281905184526813857231042231303667274539100621507550249966447063882733562570328710272701741496827208736122709595848226182102328050262167213427754866052776742973712932833350800258047945758462143561117347343893771575633675015436519436659154761290414256529813614658738713768743416330958664209165371975094039275313079086261743089629265671582279673397806628529351452678672116472536009562136828278586966380403936821437677555045326986351013282994346261042301918006182777519742042796484363015807222842780053443444800234637236793649053521858005492877870019470688028364607910284927952680188324186555041755561241371122300273955405661886770881780564149845402180856691237579934909473981948503046264389990840503520243787759930534427488493089877390235719857847362928543755045391906325093913863553245707858998191998332203706607234729425854696758787330780693973501642209552082063326154071935862524639014696176100961403454854997019490617195560933044222212974830600558888195308272640962011481387919707788303313463399441772532613204011478640381069879929381207666760766634880180183820443655069405023995089490101484762849681885866095426899226045371603022877217075339605228118170861781128803307874170494574718854236926691443396605196608146674905799601361343749204907718225901052452575667214444292871694484674802848268974187998301981546117647221504347257823028530644573732142752687873407027784932611098335947598963095778201929526154610760455621413749298419581182931690375937541115523576551174707714281859986325219653772953576912968791243955813273261634825675971075786092014914875419080344889747176538665546539328122478791678705535590230107341009173737799250162480161833325061966742995468618407041163449114979671423284602584080650633380323911558667255868695596219652686092236528518593774707045548820029729136899604169357379326504963831652954378365936994280162294810279087114794917395376512548737244873433038007255415708742443792548384707212109814850208347856076210443020770953316598434977870418840666094863551156969305655689409820085612276383145711770837537237483002019111147137214487368614056829453326272183765167154823677204688330678939621547979771212520375891893847588454648286762289707132571697283565602540535933077817314365425771480512788899176977758438634771438956886100928867944770092070554746037894910733410014102628744976866863293746291637163476968227960600340816659427181895488399665084116952043378939376199094430763236977743353627090854142927185924768289811661918248668878598692928659296611217684286543492776912710101435237819657566368433679430990198745791939965163429312434035410344008438384758731199561440539220771421322012204061895628239951504642700684574787364760944468290559882926957063128363818022042764679042318722427215903308160752864322220929791792195737499419439527671602436871574964150161711749074680382235996728945390366993309495927007115966329702389338670859984843762001281552660348963885335396503923126790424754882399200366071287494162659633559227802957338240610165620010020423100283653438646891757916881377345708546187083625903144700263910963778380846433398058677563098768761542729530293421675790308778160305663090629892752484697566399425444171282047117284110778044969676177725646090873206294544611323051821853445633090717521190165832452076090289256335728320115334817401409800787364342832981658150164424028150332802894596933840047145763148757013540405328037377165630756937634817035360214098647489677677849220285591954399052595224975798043938557032316842794877087013797678877421266294409362353755474613038764675808636775137072293251245565744044076424022886021950434466082772253105579433752240086380901702390925439590338078113461523547051415853957935949263494705495628699610046161212908172579081785029221732292680660353758721796516535878136258387983996117854530933040319904747793906702805072629209555956436497648002433975759726924086684170548920100628233269370379013689760901733716831627365607091466280677456151476469879321941903892475760812771196616545851061757600571905457743143733089380232090659943532111860845767378972766544839581547807137744321451389904538704104510752597612635517801078101999972715525178857332404826708325430533050574885260650432135661487219943535798575277434746273999185109777046179714464120601580541738283853889443729968311678109063711449023881123252862392494195496783030816762821934011530906288970564849295616371349101021815162923377920143627707022689276771222570865840629080051134505377246663894263336467995836591046529968713046440704757879019327115652578600747199649929969072110021627732234878893089536685172935012530923503030912971022023529776341492742810380308171853036327304752436820843013260463688453106913168691328410632415704160059294695348306289595070693489898370266128911432510122020897697874367798292359792632746901705629144531069516570863235846444913989200459575790151694557742415461418457784259357686932500933550877294744946403206679257409585349307692492483053136912163721629662663986879583838806057169897702606957916975207360351941328674593052367044267852497232749554598638060284902048428079915831330113253673374424218891221677721745247319666884221976028812399519927572361436384492358873870977152208879543308223261358326097301118160606060442878092058017027212755187482050931728597497540450127661059713054429803137390481833299631719948364846234531386937084298671344251684655697157807036928595284534296625775839660351516132733679602513292670478127050622989592140866459301498797582933055972067790014076942046067607748769329303131295948471789698990391554414534525265480094090699811988820745401284506987257982762658148054518638633972778678334927882236485006312959143449117526721267236838487115973214054049914755668719935149525159979445693340925599972157814457242286755030707350708042093840968969438984628584560576344164720524203223298992214957303479156376921343744260911810859509577475601938581053185508661362804407263388591363608006135999798673050825108042086511882609203172546350759281167710517137258504550460434417359572633990308149753065588274002717929122456834965378000398474088710861307793922103903091226424104001535981662980666488121181897764974246836303201282918893606228966428344521018495716736741330013100102346997021662774806017238839326422556750354666426690281487665348978644577411431040665572394785703789175200687825918333039737690730526361862857872741653227104308738907924223666000781843833713326189282178005205304999676599202811365127428330745583796706883439508373441680985328924590121619167965185543623868349409306478931619749706611091920248777331365822722001661339827605963061704117933226632001380798783852870065758314740321527711861077480484392346857277194551255070964453237638141916515795091910575956633769291403499870416786569643661098652695657360664775163087029092825617646881544268770660051392295563773030023104464007608468022749196087273309639846443482691844245672665383064174741887083127739042043310671745007936405703042975797872670410320785977159238333176083500916598110902451330139290550781686615152010937380778962691506742582376555250145424862367273959282342638114296922034414238174991221021990804521878346176388087190033637842448067762554781906868957648191098447168320986279582859089384397402167548445715391887397481454612762949359820884679807023864975186201663645160413068959284388085975333566028613065630989869843235628378753062185790510079417119988079775157561007468981410093186934372788868075508409427754315562407591989551909231269189150764605996906549970486849984911499541781365602681195562467861566405031488618777632485383306223912999173772356281969202909589823859632854937256062640952920572766828942112005600153223342657500312865421025384622237859942056304494782038112467760980396386119020777505830828134516686168732595358205793772745968018686833260510228200859161253834777562010996417871014885142814042685618383699364012167745366453331337518270254473256493045037607879172576337088338486610440691002598921130994117069269093376822337482473711663946010993837758341330171136262016826127393331568890682272159093652401674651643650530562712513976204759013384260410436646548358796406121018923552684633276416711158492156654954718944593170223654233295215392560763714810299929498962996754625106577965433205677570178040543596435696304051013970480393179842371747710777896859630513356043062320312369947891071188295558962208213524342610953716634719075214078788631999442225011456495422813049673590060071906634516971016340746988327320607775305512360929040108432250181288891659056319458791586733858274536690537305744277064455729697478417177973528226401060223977543766301876147803572310849529133503244008716053583491223989238216861816200213760746224244686805848439453750892037738777076362051489498033948700212339581889675141253518253814357649339527406467965854223836067652084623419758406856125296764313559024415766580519233179778831611415739345706249521256527468539793212786356495332741677662499536051683165762721442896210508451318045724027946189647357481739915915187668232479517588334160643882462995522532782306110295224720107296128551128432816163359911877097591771671926833295072526718128490376848696387509126178381953087555660107085129012891333575238708066144586266301731744032639176595766135057842471827108016332356466756626423437682475154029239317051351622790655895433191461582089571280311298850663033073946060077900401696288885240360704885361904959679314570427872905122747188731860245767855834850409591168152419133132182501283343570402455915248578270488527803193203482564697185338338844506794295252433474736135184674809777114785974103477948432665931707845803182176069093185462811639842895714806032876862062326505861423796890927401937691686972531655226425717888222741691785267497652313534855715953134846949124593701194361248215614389740141978578949039347027305637760954103410264738914162056461192144420715555910754758332371960917068171773545524204361259281538112526853997048744663866330939969972979354218975857647949929071385708906482180405068201653627156897044819087456160675119160308476621126792425394149566369765717299455145691455685938619054796544601276735504453312940184243562897744185520216390896856861911748975982034309128197054620247230571132363072853240816954725154445386096778824235566446527485764471920836988309590138876590176491124012246602839776403839090946895866553256576394717072299030514587850702431008562843527663475842982585157324739113757565115614202093338140549659496832741964795893847146412817148766654763171591442729363441798356416927592433772070784273808949422492891855737044855979302414620657793016172591783504613409906762664689304836888217317199360467311541836959312955549876206924581029022232399151278244803010198958325384064322794492866055311464662729805446529891196960159271213594002915105805945519488494722195852053646400134063621014948546979035199233769718902055070770574495484562222467631152306977974375576771221364830856308928278115711125739450455390898722544799227549733519430728666222891472577096848071752383964339957444436305666516847026486237649111000740547723786457216413381631728326371109273472237711763174121384191347518575758399448354172204908383900186403718049339754035766346803972343749445258023806957705401823395691662047349512908576957304022436175474162779671010795569972425134162918754951532923368762671824890602801500751949532232213471758288684483116458033380577496476165655160828278952459432251372219210205596299755988855612726587106521330999246993011622643100787709154524003765233669340002065985698079657746718628501024242350464512743348460937043375897937756869838395042662242553332538811277569489573327176880725604098378779310623737325897599265604723827720871267769369044811296446896330712872294557865255931207848224688926163979454387332869132600533055397599657643790324141866069281322130042593689833186661563716225951991047471076081438237218014764918952460168151569846468032835048990191228153562640958403607913632254164835493840478000832949964852609231293975509601739522800273852140913985881325271214134257467300632440679090317256182366094259135089127204521369077242083363685930883788278117838735698908263286512339964677581078883878869354176362578269218761223385790035526197871717499898966596940585518725175826791384636779613166447840782490061493506775991905043610223340968470963076178652903921526466476212429569454942933913425076464077734048543105557948403086422757388576321297962876783539506166874280688169185006977475180093751435364119349679539754166241755222003101289085189466236621365947488511836805773539077584879868235786073342105746704069800941109716116856404940088591393847426777724572007816359270120988985254132840109383793373783901010182812035594934273474465081302733625099974218720609181486296945374550655451002001469125398826524927440157112419192456348460569993067390705208023546326220613761553671412284593145065445764753180620844575502302222316779522407919900067642950768592105909503624067108785434321462749158730510392808664273054223048398878872896945080625712796388091794041177732738682129998441733986646546709334137001347094733314046267429338311529852943434285472505140384051382544333705655998234597018829519362918702136987240676389937782004228711966869615485183427726650737148161332686609242082024904497785379792436390931849531049392773382799544408093506428790552183969427920830551268387186992915742631478760032282408374768548878180567586764784974787345951479301104349634453109176545675828644144568532496202522592072473768679718141811116260805773293943542476789494214451642880189078002978921061381187708874182466549653587737822382340930024063748596762459025912917285131378064822338994230045706704375836134737905776872346623081042147541079443642194593382684920638264558954163002310635062728134894005962860635814172399073741222044519520642435692058845820261056453529914107562053692463695399726735031096913705008619461586352721614682214562766209341750888115555341451414432682521284243190790873529222199448130857030725988493110811924682870577126726013978666272901085920493273756046676533455120017998494399205384292542977080883466116224317035571441387139341781461107141523085639895954230719469328655253652015768717614727396252245076339159620458675800096040515664873309244957337270580818829334941117493151591446946009271577361813750833689246789491883731597142130726314411834007536289461990140000654545929570964533802021987033444128587971717844255965081452113628537090777539086706688210622490834952744742855314705377058876831110738471288561487421249240467030170700760338002059165325470913539584132271181848381410417202711831778978738608950303024192346076597443982306279684966179049920291424072459697242522507711883471469731722698805969585104503952483919417221974321442067630155549386215185916986823448086944969281777354833989281063847534136663685846496479109819541285271186404944850967428747208613200238755770943818719966298660507864359872945286234924035251833430914036880908541694339974884094066522663470366112905293712170294264449088513369444563864900365879301135228010653444190564698598695200759164640601335433261328089783661946043040070100961347023857346128041181758087653316995292423783500438561829865938523411549977129230452079744117809244499436911305751801546736624593244024280666043685905977830035257610359249190724252056353148459739683068148653589400550256955863638780129859466302201208430794644360782521215215079346194953937709472920647111654069290221657428911640001209284382040308655137367939474350055571935276961934561041552445614305496650782465172825841046442553783312368033792270752220545009829697527304615951418165976277560593219328365921590258563536507908506454641031000422623539134506412707038136129484864220115362330682381987694604364143288575501771584561814454606381277457225062166452262262039617437001127043508544972649755692219399334206676961469771178078995547752921967449570394281147552567398385840974668689435259538156035094730936600597917500726264184888648511317070821819364795896525550681723276697348345824223507706158630548088306591775846537757993096089265999797474742837670001841724339234877344742708198612351861996084006351675930602566024595154021561514733080341625005255568563536822133774280520510381405984977615323387595413529465915090737646380634200478106088998899918671372595614165550078094856154093770954461176345109901684844311572998532059928684540885866726512220396878538477583228018868795261427618595345151073085736307479995081091322584068692798775684097915425063674111524584940081900751330216463248658592361574948186449861103605146471994850800922442350755496573564853033169194486917440370915461234376683856377103082516230996546111123012405628270396605295419973373090460027024868339795918422334580941413384782877712434713440795369406609849582665882314792623991899586604294645636437510996997312502482999699552437552739480855886339701890521421505754292515506293406539527658057606207916824049504327493290936439711708687032053084103693900364615003552742388691758143503344717433655269535704374391453055442224978103081446313302881677293159644657035991180223923353891684496028262104689147733290978106840538564384938708124927109944404483239579774084213590386236737050265199153789552634634919837299280287666344729470561862274987989023156412290962203610525445058592448466681541949061377104903180583532973371825472630099950379134730886390760756619631355831546891321587309447726431469540704347681818999759809073634721305033006919499374494389616810466706320379750958896490565852622450319576428371796905998139812571331798839011723266307194376295806904725133253303942900884125633151468490122973718761018380373455114801216998004749046035594236966377919377207117759500864663779516260280743601111952965443291119949434100437133796518764078414947356440271387055307846068943364361803494007111587502350828122685193806249847713149123163570506394961591802661137259215219851612537641002400916163684144055303115012685870171268212590060883132485480291855705638736387072494020793212501827445878461256729255716279102920170704636343027546516705390495536173211340696901454896639460091987705584937707552755061688585371245921581295269070062977157814169883602850568106462222585089296775322693887911745386513952491666666688490818586337646799035545493087016054995572407740800740497974051695649686791230018014624457670049427676364978575405681219985179422920521557066697448866448725699489722538098095546178242523250190191376103161257081297428199904037212744614622170983209601039597533343731458052326650220805934110531014190243922955764295747983338443150568359459219693052196026376096236758833296037915368842296858427727164068392719958190318274588402382184271223751316543080563726179467645835705542888780027774945599723045810016842716600819856662289524633488563705367427174030129658254677722422573575941421101760219668767715484222960891232331331254448126388145468994266727470621232410622802380806627857762556615574552583323932170327521822167138287926506208093381047323345354890147173277333229887618009553125438859114317569914675942293801260456803750269648233551324336990873453364183485208747665147995124400517096257710005376067440695087085272191665156738994980521118457677274489028061142478768027318150741877676040079439137314304770460013694344847100947801656008662374891841431119159488469603160980773086723353094389784138653041798530007923182512677913070817897814306032536779569033218792175975809088912930731442942499200874893666252602713507168671719133492425165570614209435590692143896691923292220533470159435607607534915657178562609346319806681847320358082766942351868717404824006091949412015379306957574404127741756779754771741824162986828451683918522640632352334910638769126230881235689011817397240483579371345430943271698486834056308617810518658891202066106659675563782003333322067447489329695430159446809606921075365490903286648760513984654998838126874892634690239409743915381331727967054003180888980604371368029292303388104289861581945367834482655877539209715486758797377337722509085227855414951066450707597640246727728123679175453791893608075832065934484382818734672849201005099783382480714550485513110636752809224324235126746646741765254066430661261182769415639158349114726479367539644853471073929310120308846050930806183969630750363289381427368309668147708964492743744935954675683505826689707028901808698350038520924583663101836100332767234851614462797650980506865567428709272329463486109236844559116080939941728325208598248887819491138238128221449756512813569168656700354172572310990951258928775581313990336313897926046490077689731613458418908134932853958893118032017537662059966602412118565476423937759244138082028961128084429840664546008103138555350381182384447503660983727438242855151763533944105072099629492383479667531733583769737830431988586229925512199884236445963287036832344143757627412295317136934384580062369057050073277389124188497210309701938150370966177398344101353427568270187759557862317878629044364105901563821876484879667993789750706051954173128673513548986968818169293451700752039131362247625405806636210102365045539424160311090114799305975721729445655589702203027191901644764911426858764734764335693606240346888040386988824482193422390442530339936689382124340098052881821527438475368431563011606453884728473872557419491039385985587614805976078657913100652662825809105631067389667671128480577064593268081203161790685777053384027291599746345112406607325906074542787816236087060563637321926289768985025352437854189772586729595061820331527103210896115517871214695802219784746286190108282807158612960038571234727435522175878260576916756304694621382269173373520477748966781766244353593597853078759633549349530004766810818775241394751495926741333922326924189235636900796792968761384903090423537793394724462001856824391325155184167829091522554942210968282650113524898256526210789362575848282099927039949205178316323821335927808047285080836791328867470381392761165657071860987559726215724597933580275039788989961309733970588842610055827490184700387588438232343722694153949407732057320312918504539227875335608928722077028278913583930348097637677871518062521966102540546217788520108542730486239221489007198200108339607686692747592008746307318173079143213249785768838043307695147903323372357174404724938296240692451208242205382532674448729393165130478524413060635832385856948807573176600381451014044256430903289738451412825378624407615668024005151139419746766190788090366319251066468908308482607227562339442872363152766852122102015780095413837919154780459512458709244500024278869152753257978097142730679713649022811712447085715158706727913976716628968839628493695370974894734517632739340429217570310197078687300069057414559297380869651598958806063746585433369642004278616329102206089032007665085693240033650909930608201810783820658090254403336543652325784872118579712039711850716311647420001414447513208847723422470095250121697354264507551471929200511848420113020747646772931349062653026245952427887224788073055243827618238457735360133289811344857341735515301144238993284663685071495110124555429165237275746975365334971720607773091619396955261285421930175911030008796438685103498795519339176143785015345148730147896171496463662116840569382031429034535965678450396660097333104825012574726803508533586435203417058323235168982775133804396031188296149444131266859609156502758558242209316717089101028189494145088446607752978386738545371923226947985337595330526622588113565398446071816303985309737971169575633993477095790334436079754433302290638953342860211850141932679598333941676014338241218768506543432677065014018009461753390915986501925213804397932725984625975805398650851570062529712425185204483758620833987788020963354098642175048186518431185384391731976191242859378859174234579581920726676302671911231615864589868013847307379310994030441640150045426144387001940369633244661630848906777378325289204558093928582574969866379720691186126829126767965427020197426910088187696863304885976432559111445649632400724984471538685945190456469405090709771215891380070251554910076327348901144304914136549287606956430649565901036101183831454582069912175586773064353666279028250930757115067619651045331111873776951654789664378470438296586393761298296435543705716630367275641269415266555522736757368564763808283008507630704301114382046440724225632060110636291298359578393218859381556721147585142506432909207992605686522134399311659605531450211719882060843884834101098197411759430853527491248046646176041030764588033222810420335498835648255772045892396167396817568121802360604896543458922969752014409862752205611333140924002690930289843868570509257016773880598927539318134170531720282858170257221642579113399687283876003611347401009004320426575730730907588809896802173663164514395321063814870766451212143954932608423808405317716899961786042560062124354806724281106943145018992770531330167327519982077384537146731332838827140117361991433846810699212895945858788020980331855736759732211108226039349653607687989062832827866315144773845373493399351746648673568167787728441539802142056552239808773943407767968570314742187344108334146321043363308545193717694197144613907783636260018945986060066113516727758847850547732832485691111318089667568292914930412639944700389812768368721487260771684114797482258338781082289708360450435414914072694914663277208766959129209897741198845937263522203567066690139757143803786698093607805964264283994724790578275325943558816360787430834844527673269717705703250574784763830116355890457061685545473252864194948871973824702244424760344649406825657359137353273071862835703252381683010751606472665512603626965598199072141067040067130424660365269040240120906062405883984754211038257166517142289586816800697498188343397125656534239433563715527663871012263039768136609607391586110094840780858017297838051587022521426636944667457865008406522369266434169995248576336836856723069416657088140021867815764142110349646646894910270729090062897520666528141228528297540648172752504555440119675034440139346565612390582848919032838077483903965924944688872111238043105042231759391816203400383912483838751303969393703200150885194340410759884600455808603561385316683438683345980134528084017597735002385885712974001386192908979101025529667767523369912166273526268584671407049274674572748902622859412940915099861686813963127390551263560102185294391414832408885031349793223368519231837166683694003263560156314253505399049229127108129938501900238693424688613749523020455223973266279346800792090743016033560206260438930410960434768035257182781514702315540843986144923749492246893788830268899200364117463712107594449620798105622403440477134454122130073075383498927032705623915609240164059643237220163807434678704875182894563709831530674604621291701731893005913636641185959546471111437764207550169309456034335614570088949512365341665717175997990646929157906798068486559830859591348189045726540785924326258224250660262337073275372477242221295038409002956784834050808019452408741477562084052085021673822374137723171170220623193924430414334243054234645932916202623864247708620672248463861521421106898339428520170709143954562547228259731099941993198466827716160766494038435595486687831172651015558241770242980765927898924175743195005517448892908909356831944713383775258284847365025669766653238497995480335022276236542470496986950560881146553849143221340228859926860670873034137940923134536764710202917726399632655909109451165169981320898205210982862186060649209874591895504732152656430988138668783999470530180573108978630802851053008252867158737318496905721676095939819883873568687035225998582005238605868018593807363727073161149797279005130564412226467397772236209538621065662330555036692468040688879267202234616468359524509863251588461868605977480043556409787470757720250702477947033177255255124112546160149234842712854611992471310975696354941924652657238583006684220552626107635111713738010613389168342133078824496813423624386030657809865922495532012165690437347455904037078952801057451498171122787605587471404036339442662414631631972678060062959976497268604013900739867536173592637264077995649381377061295670274637437384263108217763828862065102292650124844388949761361415837557294590604939236771755076523350682030055020832364029021483155199290311131125225818817636627138944517824546834436952604856879934156486845016152700130102606779278010416241580912004224006164270366163442599916485554593987648093344841753574185832486182518561595693771192316753069747202143927110963760043896269613288341814226808289659925792781739028564046038926833820785791371552722959090671728480522853230886506725130943616117434916002244616742692175441495441301685862641317536652525792189687234530285587390488334722958393552575039310050122113925532569162616530195450202998184492194056584248415756782470361596761929470753285199634533095213722767456702674543411418240086798227266443752243432010544091202103825429235657664100398740765928611123010132546932447265936221486753222927109336294233888368879811082494699203285192999510964520197114265221327429252651057912439118022808140140634214665938412329659314391196508572832165000677753188629953761674520739356187536631870680663530445666463545136590874305390726542943067483640005010869431665441887893654521439559395298822161945668037346914578550476819064084883595417651887996687330959384409624489847165607566937017842665863311912115932143763037135171612771117179648882632793134077408992576691722373000403273843312808358544002270731809728702379164947665875701707527576924942816237951504359502282403973256612477859172454560700500255496075032167173362404976482506984153606110233472577682380742522794841138599351563865713210537709239327652304361340483298047970246163576702445717451596944855723265450912153870343465948221729957176006977927752620163946408382933614501249823381014277055420573544867367555279953355174755585319755390726624786334968663089572832988810965031135716719170075201096451871733249077711301730139930856424047059406832928352069140306662426151278680726507633882504513753124024374483241394246599764943788645353471571160088218449758300709183870187038344833690045150322057436829187060810325144540632415610982353204608710193793525700401155101444812222848746993308441303257339447043614485856067040070234472399705246119937441578860821425902760487454025383096920205986901419365629224770770206599123178114732264285222609662157162123370737199102847807743100935415121688420069307426844918024848677415351325986093579149221171446725672528175216226174974238408068607418688265630459207222732262117693236556671349045348336509967031602859959422666241926185483795754819167287475373380657455428546126646641127362687047292454148651835013015911886194906469776061815020684351388127675427339965852697848241433403610069539694657280334441564513458551782934490255626393392857893762804248821701119771853611910370778531066967198077959180721028592476772080222561416158963263383165273749543977196953391760722958710528700432809751303370913885890228992989055185503571105449883014669503100628772730756612880833275263153976267533535241783761062287484983503002347276259336125388798962573984593420991625640248819410086571026335710114804817528159321979946966953904718144161014796918508397356698611104327726114748975832080571945567470712595792365738290748572006230118593470764615110046152829409340801517236687899447601214448630596796869598823894494851890870494864936521010827186523684702288561011744107864724950692350723706270413548705409040422717887524089705770610183443036852509843204422437676491079338210450743301633677226756164245201130166609231327972949104969538220727980714604773875987052621251152740318865477733477057617497995525937655800960930377493870409809283560752543060198624912432012529712913025065682747243642060192646741397053899438560247131527022960985490360985956774351625923609040483966335057326236840479398492557917672479953273395514806382572084682750359310734324769626227942574360648047765143779138177394442369618390940174143602068569865719491487603939158641996437945544047741509028648546805563478069454273962218454976573952797791846833998315055860818232729153170537826541616154728825698393908463566391196867955270732049632423675146866144017721890919977348909606278456875505599898923668466074516390817346241728819773797844783270018296209050570087484701387485430962881209565907112306232552570891696618010105341681934229720793839718751836906630250307618597018725727007892231319247031354944250883727733512769652543234026871436081987328143552824851358054258122210055552113926587303320666084457902645108838355811405087228490702682716837540907286672188541242849474565682849587286377340089259193937994200911720793901603015487811960472429523528003980491962666904789373880322491070241318179229701267536244915192418930281986200595535144661669016584210802171273126067598881037897934513151397400713076630446236340986040406708064034380835918228802457196191943932583823907589876214478347154620488965592098959397064550556696579606443580275969824678204529819591466602878726312114869141201551289351168563892878052002612999248210970883442123171854197301165092707396953114563448655170507084010779210096782426088018612062029863543719801632872280241662153736114873258173765735130401802912490599363435344228406298090384934686357543750961237084187449369396717615703587442621925221445675575575823804991449477505365867319848292681714837003813890472482715284721460172828071215574360773154574297345771792722909452472382031336600392889451581482442670063768322190756059780877745717331696856095410702126511701117843290249283070583943509264698701917645927542621495240778351728843083295542397019602922477374366202395879124822195506445421841907775159975601090571107130185499625621435935191170982870034330881865091851289583888795960890723690885761489632837081503184053445795687748148823988626293254854834870535011480310165772156516686584653549329281677766033776881189523730542834379037680764188581719750838917670059767432403924714209870279407336246846913637264800035827949219146988975942155606751099526645188598362257665393331128531478357608044173503048135268464011573705815668782634820249002797074437812130961193039400027942178542823401673207711842514290070280980288001577824954625580281652969410965417112034901970962745872576534390167257077900221247756070533714693919867932586282914382631078649539886267365869954345686735128599108172601489448045413645875162777386916985357654733708006592460930207439753177214548928781046802436615384352955668139763809103240054004954832580783535166292740313045994966445046233685975726431280392328844390667664629834506101447260969963135489956121362001403236003560903870326459284448925438371736190806372351109132279089112240318580919987492120059254274914669962528466569694937317831511447785891038722712020034595292367809437342054893566227862590844199397135154236759821945544535238782062399535067359091891082486315401200216677336803320876928443152960415518508817569739441377850906754878028510008144959303119402934588682433213715824267706003977826879514170816764931351419428230584145049484974881868956050583014717383459993331053375353953637644868314078550969766566536034475898060553469723342515582493643794725253521170884060154624569902875529935047077403331961818096967477270753284433353838108012808587751464061687864033183479108875050146646576979414144086081724407946630101258677031172445953426078414740640057233911389146656032888144153212795818155973190946301660183782881393537779493322129323818883586171712256225915385327251931405478687605313031021679778914596107177368903887930654942956741094987847250028503316439236541753761811230995620327397554740154778143454895112070802350853064984699458695760259152327662311441610889601745639747096311961797089690105245839596469130623395274571761695020299221589848387948250388010035406925355130015304775876707936135147105788229733533751050782354379135853425706913546446068281250668103716517766940646089435186587345881823083661990305812356311405579777715689738622685948843998834141223896502037626103995079413144498720281311045603511389472636220829613793759122362624144776023991521311002815049912590068231217986188859392172985974851451591117904271515182002390722352402434363952338111864358437087552100719980763358213129244689950753058132256241122214369487335424928660187952856219166776506988242817992718358737344921360645206458961031307503803398552666267137113923460403384617546293978481559750605540100044778473874039547856068282889681145791363357421990891458624320775557994556599363160917860035939745563016336528347979410777312634285911188237712453464133328827677211995294036990102454109231366362562297642567042103296488237174251804796075363328126465008904559726397647916542605340620639525356355758384481024206387273809780504895681371362310831381463290199806196287089309790516145575272382610155999506688920448356492569775968091032628553699280466855193302143125372936857683985824559343039222385145457132537338732630666102515710444814532894497650649882115866806967079813801031066341801337817433552774243273865895337063177886818049910006733774689277431710150260444636119228618022284711142366187325986954575981369450998336686640361627634600661428597601462436564243224247019245385625637880207124464812241520595968250324465046991961507459018956930147527281793076078160631024849558336898124316229636240814153253957534697897531681705155446136757619828417943512351086996215581235482874649856551913508475211380767878230393324159704718465509199530958142318780380669255881589135217313893366341633502897969879472603800474433507557086972362360399781421290049683141743160154615981747778962874442576948203739509886724315936492007720981883590050620394726324767995807608628452623863861112752827645825138034920093916334561512390731713080164368559889891900666158446001671611328285362640215818011756265780065504564270055494003797292479912077232519180788065643146355301292264185475550879135861939671955372571015797900731253274557134552691703691826179392379554646014458774984671323780363341702429356296861314527886210641065864091788984906093882056687019746124904027034977275811353869348870049141727234928137954582171653356898940722440094259912282855529445657745660028559893844869434761902737644419989416921593336547852129991833634390608737313593732197977103333076979388928605632923267126221341382727994044144071170261018115495272325189477255056531172722365663623896074509798148884963367671454308325519388409043083424196472092517573498074444150353135757836962925007578018610226286304251815933342166670933474892771511497048705477296921139165283497031789983479304732688516591744281162619908435666827671888062278040051948501998428803624521404677616930218756277166296351631365024118996895210451612103502624825528981873310098469404949121891799081186756373869422370399161070777482757976150071091130153225203040896824098933087164300852283774103237985271487765984075187264817281694729099345216016068899313800141839789141615142884828276293382774813278917856074187444030032326238277235219988129356189781907023242938190905006110367226033818564924968469090452326579511082304175311314403181264568687875481202216579046070505872699957245132732318012731840936995307004683837516477024375902773718932260091136136884367425735520426804889051000928067329127925874046940453581368005761710040710135163241452119025105404435207285710484521745290615419356624005403521609401109468069993853204105632407658177545987203308520119264304060995213882707806308114650564040769646672609763741232493746734051924193227491632566388558024845542670989551234566101559944989678297453134253829579880573041380897192666999226593930885190491611101294919512543606050285098246536209358103799822018684073222359389350205720569446519980651728441271377737882408832121723534379462017995600486352043767434079100765928414967523880550393340430178808351398300389589823533820904201503065368828697944870870069826194967364978168908442353953495553046739385181096648720038837223819194696014121658102434889292757646948205678852271354790981117412372894595903290398961267736111594179118983450397582186848370000046609840534184217321696902672324014424604536034153492858098110907490838687936894881321227514552350626789740398996015795733593535391938421373984740252384447564955313189488020728705371537170318711403384471228626729067894732742019159193583155962432277136537428088902563400145587996293822540973256400193707196629693483343328948363958763568750488020912929415518422540560550186830234254477269832571828936240881812028492434833342275705312603933532941236749789493480477652254804549753581614694979277180122672949403990707131512150327818373797259065362020543650219050969898434170599702843029956019975710293884725614536110126260265023043295028574868222537846122980614840217603509736729940801689530471794119541634397121642351026240173571887798912388979064267471320462446298395263389612471254211759546959186997362507504424459882598977264008754379093282380910407844711928837862634714765484513730554949670208428238272510375785413476665661537376166914902409197467317695656570065295103686343809913744955551407922700440815439421149978154440151718904770469750271323123948724144012763522273747426536492544724996094582295059371599458794899780570442853996514206160524884208859602347506178007253015766981731140009209178106536593988418023345606389212212230001342017037396470569925535696851273942646919798822817151128937091256705086351010796019345919136234017143760991262580525940889770097063715759054106949954300704880667996592364025745716150716849921464316632010174286126441313555212005484544309928324269823116651000632268568545815535747799626402626093291557760834589855025320077632997014993844036121087533906450625043714398996733631656197050505300233833059941592927189871056614920330256334240027702053047859526025658853938555155415067372693560562162677802250424743397862499592442581720026391238609783800548765543233935920623729542999196103411728263858968891041418505414528276752287039146304764938282188923687102782145786384927464745622172056536131319428516031495107893761623902001380705744541546388283686807071272127191603269720198823887278882921062009381925906991465592504409350349780512834396301015018769042906421543065926353456969443221301242653402471076065750034816296655829744995847044543895328376767861390031772992161683351876386051042780205898717931529646368070560261434699429256086682876961060891876267742519673619834183431511879902227792274130933168335598274072964713727844676954477517708664735713913473758732448225789648589150898285343162151775699348458803578953589605239098093983885647835226537490428113419202353682518286849710040177069778485961454421811902512357590874111444393674649091743221309187615823702093415348072553582962274702409588675767970980540276729541844968360972621852785268972908352913773004354652276530607243338638583376713969231823424933919795435054943018180514014727902472301390931677178820954305982141315174106421769270731131432772520308629604379975822207899667286479721839218019301318617672389605108395584741701313598952318474563923938746753453920918881432371761505583005909783381584715423948737072959687863014872245528319472007233037947624837448032026059918734190114194848452804383494896158991710608952789822680564188531246406698149784910111536760218357018134328897347840991153602243979035447216608855498723658710328369459369473240010699790569962668583454102081825594814808780114342030597538891972129114358327250494080245166167699327595945924068871029352526020628609499710983556085090718900501610611542612077788723785787053078139575882647760398901984665768416043506507912651739660492331809232809978180101210785829902727119607980968952898298718845229116199706189381481990572775982238479966728392574216372214248658822122883234232991534137798235717827033082071309334820180816411917256062678831332984326780122099718252460274948817575287111745520059950405187095134664389662844292666914753903752767827077041744277804701678875218883236410377126183441671117447216403748077521192801955240258611231966797432221339220082965648466785483774923730870572522631008686314441678136724832772962834828849124448806424694549657351953215016694584212053001207833027780853276951252225599891349488234168041698227627867830520377956720183550335315330922589009007054395226683486433450164854009544343802091500582527249690689659490367824669561746336798161943782280460052711557728218077733912289577283773645454748513182866871389987130438568745338070990825711191532264853850431142990668598867141561910563386137625688761751414348794622733912443097078976534713344003745419158503631646343260279148880297371534407848934950427059793215069395603687011216873741291669644078120670803579886007096043152639535841200892480301671715103723535874306303963397632075373718272493762656066668173182114280638934468769510476243984247770465245400128922543203356828823929501410290625503030492995174246903019247756711598284207105449315491101647883654385444047710480368270489031618379198680841828703430980712679465043514739199800562750567392514482441142039956278542315561019226397687717518150459445740692460068225142495190932680937389549246875291067954998515212280006847971062918637376405964649076437922419459070796066884564014879054847012941895332066721949048406773538076132682368961589140581255197531114218290615915340666701942120430954642547400388515898960257856428428741397426775136431281650665217254134102761047399296462388556555912739419752670780817860986916416314679001237234653375957064052087163579195288076410249767734413685326016551796658713913867457643868328732880783443413269569967025807131016036119355064299623876620187552715082964135647748675598292959715579562797144115515229332467342546358046536289131049350960545153653524035230019491986161693802049621916455855536997297259813056891231429323651572068327252082025651374788527750447212207486810038990091692696619794028154923023882598918842309110827132831671954236657243314316935567605055229312565712007167699921446839959070609421965493785828515694387041028504232634793787371326253419544993394157657918785201542514443987426818974110089501166891033835986024585084031814716736628433447175057621042763891694468481513777663933250689240630325471699068237358447353976370221481379314451586618046522998515906576015518858332570939091958202022913860749657195146091620773264081433420157108430929927507225873799636591220255316985211882214918251421989817794427343056165746634609126298118819121641516088198987514949725090136933378441967017459475437533186784133444598604832451088017353234759042843113963698277244367625349812318416810410874183314303315962058260224549646579275790769849540267484544427006013919637956193226599374872454971340513741333421175530474856414225505807500544678015205943014325372240287851720599690041199893521352989405696922506654557250599749911334332977600950514636233288106750142925315848429722198402451689191031108776606950807376885037839153171006614007558492932501587966365217303914973024878873507475773018659660508566892203759135861713025066497468192971798417878187711891191971084993414216727036779847263023800691979103394123432483181964770653981433882886499286442137766394054075850452882413278845689100824840509774135644893667886061315573659203127692749555502013813160308768925045023803834736823079690730484878522404970182466599533698309328476291539038157038827159680820161196021696523178186080482154141072217993051945717787648897917618858148647172271444335868825295349831006331687129517971518957518808975745387219039732277325492306860199447054605871585621321884164836589299689638271291016192961412049219570296989985785246216833201425521780331745035837579712049644630262148699736715378786384347804607690220625315425492480392648907040307601801052219076670058471170191618063924278943201216739035986392258013624225608049548264353478134135015524850390977942386922081438102213287227372488784382061648015645044490113633402813299392485440058489003644322503658573935274286183150576945922541618426383667124125910184709208731067622039909942756341223687090432884827710952039653530185996455055300855474242551299251945458675412619912288350342743664878282880494857791348025168920887725323067967030329501211688625046603857654701161127346937238958086868106525805194018945684207124811640103676794111645686569926553420556815716005970394402823683973202179763982113494445799525069103605963530394541149249305217474296830739835739414086828271574773746226948840683455619043385234593603776951669296338632990736924374472656468166927848454905747467607374685864581984815828635437080358788314523073179557653488863154084313975761908219007133422672709448798791443607598490458478633247572500735640296508135618800482264978231626327932273167336843314096731817426629613002542686626337855574608405731679493368973766574695275734725823886743073528352464800324242522067602573200134079532279461553660310430543259517587891328257803575714624364505854558213809507418821934112204881384814396912051979248980061790046751547193284375941745857236376430309416903879754176597752754713242204963648705843596091303991281603347795371467747612748808535484271196271337857681093882438104244414943276271967395657121976465352370698658665975543075104383981757807496403712019961813060569111085894271388348365688910134762727909881427545315035484575795226015885292726237062953859133267032976544770394797696294635062163913988044458050083679273394150409334664777837921313675056965786597621488426698845868670876813277356729606420021073388997107876059455721607994550399077802394165789805121001902440116492841263022348898098474341013778225277314290482897405106947228598016443334882231939010229994553416412778482145640691140777545368201925515566878646286521915693822278054026751464037665211078168938255586425915283956066059741940795950109493690948167077889101715633644656808896209855159180126216136022854485430044334761352208440195038010561170922438150135956372444814860824478402083355156602115879164866927943713675177258768282623881563429721621587560219546072221261425228609847996791114257752255598871997761616103396015973726114177320734875543041534399064035867691408273041733024330808412448931378066625315606315888150640384408080898247628982409146780176864486488535610897902931480396452435922885584156155719834156260280581029023270677329610347473918173314616048921481548470111742312168573502435405839711767737859438054077033219406112086070727330426622520512538251019527238394779583063007660122273791573686830899124661325294022419865172804288083468976413767348053748172255051268051112569567691802643573680358956069490696194288942486722731015568036163515528667198732090593155290314791912784381544528759737073595489030037886169979176716066998404299587190655887224098873205643844428515215725847466341701388608099386538681509272819282154714292832291577192161826582197965575883114193764364818018045060666891528936937308697057719100598596507336846404837485844634449272098178409314632436027095279835550469666135092141350113481593332519289229630332490035912431181635588593475305515102362875968358868466576283963323035377325692281764454029517057532936992448814124534020788311088195407124290043890059515212857280147030511396700849605127912166917714977337876626887203104308162346737857181424789774791366653910792099401477887910427865628866563661124742988177577285232933938515330379510627450658312813839375598673960806611707190689580533185417591165577408185073195393521825499061908070505525517121273888817803382419824032868736645439347886741899934640046486069513879436319355794441587134329321223105136952160829660479773137936969794056546068006298770591331278379644889720670298527400272437013030629015721214922191744226011882203559801159040426869561261600821612311851198329353947909451348986876906537873283404779975892227556759963143305029992990983118080830189423376282244785707863308917778582299522949544143405761770024482556717067059691191488521822751975092650374043082830543924301478608814142888847479179130541588717695665175931889070844994709487423520132423095837163094108211853698756919912052995759046566636641296468528139224669675614186693028072407228536434005057854960330322041726187593740988363768958567073340331778489798179619829220863445810650321840630657920592129765865457590124971196168446320424973810141412377233964109763208734663232466975309582926552077414247623423124342734281869665979943207523021578277735742756774147305373254987953794430118379782789898485173928699469140035582317943802911335589306712128041358158750427764848624504013877790981470639923991597782934710302867768465890360740467157020119358803238156252825352034118800898727759450277577286076039149355883004013445253389741089946802575308705575252002786770536927815576366141783684021512296328807235596218901294908142500476810780651360157618150341404919601004109650599176124071256152457488069817687151743302500941360741916247350535861749574150263692323180051891654323205640814427967064077619717290903584059876157357331877944095522774864698473983836397994736971777688171582882481703559827493589945561428225040214943438947628971800652964418552770202634357519923064502815548689514567133557161562214456239533824732739007086434581787093508625832639619366376249276380037710201680177481372328447888289603374375102202502028514542574029346446442777858659892611372441104914429218614679335201243869685929305831066120831541235864953643886635734578304164100090990832461500112987992818307227851559318635893093402065264699304803469457888338579750194605853361848125478982129750617791979686521000814290319213236226954060200918542421398777930573992622426768689425837703255166264874458668593863838907851708438366560504670461122590879271423343501637888142450921539856024037934209109025286980051413821335326801345865297927483770860480292426069736902897939493973879634509913147010239370566994133717990957801569168927452720054308677367943904023114336806480099530615476203228795465403320870875408323784919358372864263095782610300563942880617706268838298823603179003466340629307791947622940864789431547192400816840402408529816343410459970547054598838660678867939714507195959996192871092927918314886280785603854860446158776489534408491515211250210257322798357570249267531318815287459408841013289344517363463705000602707264735496914363256497273504246486469491037729689078935362431232773203671936928295233083218045083855859142122313235338666645072302990108917752818841319178163867094721594841830624619778357615773914438303158839523384032284505939272924738963690892799701381881837684719570608746646759380379615673020602712603237886994932785744949553547452526120437193752596816703623191926584945801729975461829278824215628950996185327663533592176453845851254714003078745417770098855197375990784072362640742378682089187031594473457888871840809103622289543721985517164981998997300467735525044541511496401868855442728585970988626365968481100986331208309459828052949067899969650979556547598378087587491265352963812445724566985982285673335323225071302103258723412894395808718729024040662013329020399245950805979467396148713060359295682786611960453857528154354770712455196684075425615888661844623968036906425687903534274809196219137238254202770115625399339973509292409030421675430864208229783580016715221471356452743463343751954452994401330609413319760920236707684560022086861876442272164437669443291577359674255115327836555469137304397815436366293153884028001754057806310203406662251158501073146456868089988602621103046901142602375065695824599325566632978168820654582966661321127072265219977690311771925530751640666927697088618136560069794765105994893664261560117538146422861860519629457325897374592340973290059605855142339570491900348667417075238401533247457168277906069995742214509771532761892175061841013886840862482107428150494361576400553314413179946790508443113035996835525222722708339962031859065569374865852729332970375212664657096727650394977310684180282784997822660193636014899466340872045203429706790601675289864273649343841439299605509617601746251309905109198412030835820992936277104861845311774268576516304891424780001414747375133269565944513686265865431954152839936729432774751144512121293515490569624006742530879896183764812670070130586385132703539908617999441293351490821237120389155137525677595076438927139672569169280784714111009156700707441339329717358394966616829998362084941042704717153814859141755116954466772769554178433930625051444907241929920952037553206868376265479635879456613719449362527025165116560975084778562813163383895110607896641428872517062902898315277719030995878464781506623013966979390589840894549139827777352698055756231002764341572856027913118078344784337744648157810594906170428871427232240682250887884735558781208236181179589581259430868157839203432941228159841273788485487905731214472303502418839173111959223147735445947572996124095639530618030954528530770420111659534690361805263401283213661731487917065596431811324324082770691569292862147104315934594830424963909224192580385483650225358468404064996608150020269742400109407189380728884005221564320450956024266628650551529281066469657333907519391878792458851728148143721924068900908933877734971424281703340632022790659674265867828373918298070687750446894465177229400759971518027175294022889810316163775539984812597693431892724229393592341378709682573139386071466743093726325033833631197213528988463527196316671947995530436883489620340181382120284180368899599286107204895513896468733993815258627179668235118525982118425782801020197294236403864584999784401554795146056585141740798460561401706859959336952685056870063543451462942189447701504978343734401684327056660359393689433211040306649156514758520651448912158379178141413826741763023823931341643553148906811339829247406929349872317291196478401300983142051892875206915385416730538667810754289366712336226977168211199041989537093498641128627987923829210552161374110583386352329189566251824985319880644268392018621793982019579909088116891996528894281163594265098785307561345830149481097531269362511423467040416158626645323445722511798688116687203692959357972832342709409277076987117544844711868914680700621097381538014760585535336339378440708102596683529297638136856207538982551241323410612828363410778596581379368966137135864070882616728598376089826359626801790636414913324732251809644117388470912051513493544898990685846931962703549561989110346082970480154210550423653556849897368545479184100779108492612144468174852070647132962216591431704567226093528731936624309340367322405443386219397025667574243335723675869342797325657040229513030625337315105812265997566780446223553107294812215891875344070111843171527142637546861203845744285599116747319449959373349752348934324024162738051211450478324861771870979279439879770230104817341445477451787933803796858710476242462709608911478669134326812031286321939695396879073678418838943424628668980337775182286095316929255674286256135802832480609465712840799503311006090613388481704376730391253325364071620778073112583712990496495497955540797823074499626313968661509371075897921013793165856779288874036560033370703072862727455414905255011745403401206579688363432831121940384351444956176877256835005687959455921082337481938162509118674310009862617692815364110702768126256920918369340555655832477692481903878631498386237649781204835601931530425301731741862187521081755800553229766191523611429384060231057712774819202020014588679387768260584428452896647658695638127293105687572181378356161434320960131782801486916174594831955348858674093726367423976163413566369835900172739539698669391425500651868572347668473849037337652344609650762220894180268757875197708510853933472287411690846537670927378698820572722841845040215334430357982636303936547556490733109250625164738639845863684624548196033596895833672061003320097412976996192607120729237153975360516559128952362420159444955334843323812560117434452479021151889926427600252863947141670719241575087938184467360461440156172610220003588965195079380259131690090515972583174621916460255257062575494353179541042996879625237401456503664758705338290382297127340780464570555990057723822427811737170322032044710807312110877248970154374680134585982141826964770490478103400463953034356520970226654086124453420112051160583195414301568050375780307453566822877884067708267991663948419289968326466571905948144935698345340491062736561288927572166320355540327169027332733481375970647026189972285401309307832482852147349716687552709979979950953755509248619449098883021704088844384978797350527133881641494623965754368847129636523274175958188843519668397346979396658716943097860874647642790112097767966332440912162174883639005904388936194268821105559072595180092654159839321299555775981297549771595224612082652383496211083463732293183851979821412275511463729032274014486068361957478583294042146575239530439310584515538120113093551686370120100790552071371934559294062918025233581409355068514789919311932044731133286489607176044767970079752886638363094199042695949313351823267152335866765983346539949266132923497134223917115063992796622240500316451644425345393344293891914298064958122116834849486992450226242886526510573880428019225729517018033038681314239318641141256804986592883202930036079756524329529903048063998335893029928015772277954504559001372120004882232546510961797123902092722264787410838758003332351174507397930118966769295007442023825565574867119531175435098005254992279926957041527659602710033592345428429958648210371879923653739899466210431562217636873086144847327308220992790661563237037591237542303336075186952492002230775653236682125181337245185719689067080314897106287806795651343363025214632602743368823144997347700849836776645758546126232670477154695881238779194641340449004546709990067893629326190857147207512866067002184879735082835371309528303142732530148892307836525838005441915845331157178549793888646478249421527416612370523577370179603451367207740326904154466703329762714792022481363472631435904821703352212551180649587664942237055096998440292448563625623420585487035270297232534291534579796256038701630521419799121433275757953431279135797776213849643385928147936266036053871846808645840331681678034796068862933506518433347331603706352878695312903718663737336165896288947267278719715734330480732724394830560384805452988182900443570526356730106762591513679882296053697423784276902567714754599371434934765380806800930246448004776776732779101410123963005876278268019812654835527569691294794792991279376095548503207202664975510973888159507494289751698370970092399952378556312164304118205518541169090803337159908102926213820635825983948002323299483808062395210822416363753930704832635849340833098492475114596400053382355192153388967062581403286454875750041122127026456385610864757549386924838837151374506298797275097388410514669587644488931479398520078447590962453235319295697232144592244656109040953459255793946673537829988574124137718193210753968026147512394906043177868542940584374793124063665046244570054575779230780883821422299582369649151636416249291955458496753309469371008410840157151356125462663380826505091190633084083344886490070134355542867323994214516112133855162425522071401086718312322633603776283891614935819352023485213080489659365244013889947281898147902427327992556522089191799594336920595925392744626608358663767499517408161687245996475580347389453938432174382084171776701895855541415985097104550913128878314600548985875629248241135314359570461025231945716764491010372249205652161399654395352591992857019112716896984873852056006598743430467226181683480134056800541115612277690700410128879570090120025999945412149103918961731340474205420286623344503334763265361220349107138378456382230120691608863865468062034175266369115034011857003198003467314114306653063476969158036428373632926108903274259582299571294862950533374125378312693466300733445255870846013492987270830984124157026074667097812331135472813424520511306240266069526133725416039451224840894910085840510106661815023471656323727276075427797524740163112712955211053958772267254371482662419547120462597819471474094505241520278208849967965499099243934466596178928238068564860196921303386296140914784797371489200678177822636284120532972118842965244833485670043505616957977598931404738501848931710047645690928679022049656568519751308386716505739497684601485596571725334722173905039366194323340894099137845492668786040859958795469284014216432553227767594097920605028944514500162719091934123684977816475740781931884470409913277076328346034730528840445604637233077165422734543246322208067858690373972030588505544279456768646456299703780245163632992407510400719729636585550150992102383386160175632559450323894012698608183249760263484421886927700968286018043516400923810219242218846763444555274582261375390594090748757733687776344904458464387652843721294872193336574343494727465738632913398757434278523107716475383985022804392926821014287811333100867240838898241035724510296560685363020191862009740282290553773517726800515755301836074480493689433641188073396299700810696212627759152987898373910495346564664743329109986399692962969468331526914546834761177419904761422234523568423904100537208513878417339711200815492427137823333581551208478130794391356591371182927174107143650034762279077524230621651901722969828843524261147887933755730506889630375659776206658068568385827496655040808999659477640914270486085916354405140887213775723820027614283656019834416076543594132460502929508633036268218686571608873781586283705497889784650656978491726031059995837675315549441053615960393618046584677535686316778094611633012930248689784476070231265559935709631734364809279961803857945102649568950488377790044388573495619115339607841630376409408627797722606056029228820770372708200247438542360777117659120813704968136694597614397075353348676069832660647957145839320522401544706538477398067677619417984455509441006455530287297107678782080676022878296339243959869339405565848741695909380874653614744189096463415706081881628037484811011184036677461283260305726110330110965355329380970393559459820051236416518648604268587619363768552917547992106614462723473960861904537260871931766337952573311597931653390525577702656557985626249141812713847885989313233842677702050748824543328166539638444067148793502071773285397070634211964710508873903799435791959982662444715460077104452067637989752679260002008514809058123792314018569410889806970726861718904856979189258049501217771308958316700344994595635992215270412349321412347989502004241377094380702600185200512800113218452189109744777001913412811211999321749711308286660884205402864475464837121815384534990626937513436732543438401686778468600852352817727828677718396431280305256034397063973941291705695867996289877549492602585533119891001355166162781689025505503792338324341147072355008345987438729494767230563176782241253526898968138584311080938432896193276323930158190947757312556281573022291822127508153188171989620055374995059457425208536279211117264110623181009992428278944829701444194728636612558487712452618802345714284737891918394806598012936490395649022254736160859410575854217325299978753535044958256198437381760470201733861485857471494435068621122822731315519029665316682483615287014406507763536206953431206710884333307349892522062701276718551060571835965745938846067009712116594464054628999971893309954935208874695067466799545327995611184479096139142350746331727598821342247293832569493568569923544680711912560710316878557851053458666898950932603747087135302102364462063377599060202652919137295740805585582686988096116899821071126116694525243971726904025481972898318035645009746505093733459693083899900378901393946295496468279941478133664423930844125015617973106231393041555337483023164356092326789517458612141674817858324898871108988533377433745938319225826265914596368248868442741260713379871671535449698047385496566747965606991288395521658334832800881283392387730804092602080560010638375685397941213901948356043074320107297733673859293479133799959480138266076812472907204918640415528735389470112905917176206230200335616141033196250853774161882423299916845813335121254963005928247455278579298244772576743965004118068582045388126079625935612271996595765704257013312813036792468533012660323583669193872695053390802262409599111357706812863066318353452883172010560282389269508337087107176788257454899501257060562361467975285019151274260572219412449616349581934804892737578781557603464121368200834098969564910444810117599318789996759006299456425838490458572285012324368770074602193076731308174161938971078719136549313282820489305917577343360540808978098117100065545422930744436954570756898580873645210119799279843997972074930467896056830860604548022450786744830880699542877005478387467909840906948059607117296114516005186211456756752440963951539523962524807853512491030996703632411649510313552840309524677211937579085547224097790260130668409240922683284236251134424262152970083823296406838381463403114419267432547814976569417796468563619545179621230212594496596347903020820378267986735560650181287899267643155086340516621838044094967985806755780414396912014687669314692051672821639556175191378502148536984481176206603721324457413883072521745324514154833567049254266003712019855258023758819944193206388621593508200347607823591202575764855014488124782040288795781361292466979800259499051086656206188417680948675004899611483403503687736220566598043274684873809238941905273564834380959642033500532653536216512111239582160320018185849917475787742401244796635551640457650370333869998069928440524042393568746809732765346977892359713385781478966935823350183053278792425952247760811475151121293056709561586554204823289351293038884548729349950539933671729819770622259408729037610085586726848296155277265964088923338801790301621806391380349180613245006820332505406019536724804604955161206051886707353137330899698832125054908114263149619506256229015778304433862319867189302345706271271466149638532718219663774628421023281473907576456339294307911275810936163293494791222386652526854306560447486058631398208001613153613145445228752597274317615350461695681623471110173279291146553782206959462528975981421111448913397744518623385789195651789163291802941253234076856624643690810824361586779519325947611816378678562853232101048693146683624053891248577141388997097735785272242760069779301224823032429021272194010865805647195815764466960536977430549447123451423581514532959736237319068491626582729770576776587490464093043510053279920049134394086209610236033913533427620587412302309557347158060473307768663736785624220319835147966236442630846366504518543158495657198649138613557513233173559000032263518773010943550276771751888892588190544482103471014844826916880505957810548415963261403107665326219733193362956519516433147266551548875807835111904514838218208159709539538518615993018749856158265376043849607931405035799205092450423624391173324663945494362523342520042537156470748612264874121358483978013473560429594241460148505647516313375700144575364256878547118421686490878582621256932810346474921511865911155957898012859935212142032768270012144473775849444104802963882906933872535494679676184091102949055953875817772108740019430512332902345899773629470254976352249848194891876462404802270302797496799715757818653260720960342797757299314711694043564953060711796343064566765407999574249692827540006137126367748088591351950696127713414184327053638945491501354159033993720714745844905726330905250811015801504251848857195061599301457655193705173558441831755593604498782450299352684518311447938176630519996073259780644095660238082584019945746297934550157920979775018745878438898450023782712217517054105035336345152807764205144770702138225053778452914620258194157163488841476041519464689446606665830936809322693180161190738529501539660450539494426685425842344872444777216540975086128257070682443931538568298185728715801246758962873539645238297969186776205340598127022645100692767283317581972492347522250648157610954737158481037310088489522642632600174922755072626173402295183210275568180247528850807278473441734046608226109920482785626248661678102084115404880589345913978846702175298916335855710006043310609740835109558897428591668886932500778511222150722283295622208098782414633252056454193874954361869199312756058944963142951881033803864731085793904719884172160430100787397188742030117082777103439902229846362822586248841505759990584370610609921720136435825513843400433778116154755821878232735132501334649185722061360545851856337056690529292654157167519667229833397084142380261089369985450158282043731139028964451274752976090583795967580214756070725768164228344055716263095767169521139127944518846365945292513488303403882840248529871471300614378506629947579840827851528559558181774118824246281779550975696638835978756649629070696578303342578877938702849835909364512876187256542514584063948366468035994621907261880044723497398703046243624162558341802726416458029911074872930534145008510723001615850914998260274538222204513854672779915344667201277007522768545116279012738842832468162332826380265233614314242380957095854599905929173670252932743214690793943885819750642665731092207111180665149994120802037783638736303726477063754924141486640690135087757969152061830857003625481078428867366944706954977970356329952396098497768605246373847418216701372462508374460626886221900401740030955251368120313447214294118055122779734678996049229223816931975567014018409510603252719580112061510976140369271725758399135555144441181922616516075781671952431203094834472501224980243444821026471887251150321160604628880230377081950546211229329089124874399457638587773154197557447678008047909675328586010750830840966487925688424765231370177227091712651495045684449568536720281772699049882006544987130308938847869885575569755318490476983570994385558185153454151368695813504778149635553296935609782890734492621668511971495147064706607084969654137151746637397940022338382066118059184204398363258333732739302096558841596992903271011439257903853646572359277272128027317988211366816155262531397679383371733328967048248676971600483454720628348871625502200980799210906527723176919117981277164967306045148129351472602207935303894117332909296634571624501381277081113472726013731759005555209078950237223801441381215663837426598966308358611280341513938224063843526355621944760135083104775025773310609323688144136438538556544672697113771765771408623775649923849741900598623808905717544319040450237432267145243423374588735570938219188348671564412607461042414691496456309972549709995596316339084841655080267806190470622459877133130992526164630383174781402580432801548899555824593937737151081111691635274323301893356974245443500697725527863926217884917629368349095095617259515169576330793152223592840782216015723447328889092505175986869400523662944081387931097826941221285890981756971711858619451987663626986626578700728862319314946487737559354655136610465894684614799770200408336761619025010216596731947692059408706557181905153397424196504419675547930705695531720940087227446873751433513174325170401283541097349159429870111895483818007385522935652339319349611052969769324981723551994374339556785018465191246215761400779458056020332320650560013799615640048299099889826260070522371080390243471144393431865200906703527344497511457682822808582822992166276453106342939669700763132704090033113303441309650570268650329009846397286731416052605884524602567872726025330095941275285409844397268737011163795708952720292212621526057116705026519421897495511524296673293942878784350674154011628734116040197353784100907644125311114352454484219003012163634034649269496424455912300996374668476432162920667409125884319284172023449443215537221927867287833902302390694029593023728432239952330432794180314668437525935158462093992445384364515166741199229817626219580665104673160022891721287974050334854553621449949023014033877208664321635777632755769060605421957466168128143525999391933321109172489436748835022578542824654914307332582952688831152235548018886888491535955780792826756436388581871903964422094942718993705010939458995597302210904518582211981500283330493752580275079228511848549307886941907877913183907421347557882569481866564737914984360482126183222926721516034132642272703527480643407734501173889904124739351528992109249855705539862843584856277654756468122221313677761742252652495797630746854322087863401707032369347261062652424700289496887452104625976720376268295204500102902709646300324831067805021410601987029924977715494400988607813007295458451369415753633163042386771652522063746679937689583948584191499024716235103262289785479030108507489942462892538542327731767120578821902695550621480944665264449340661883579007396677739286096486139667144489977852304957700204680372679897426356116338376616388200868772947855690849078915750446767323097323815267042214695050926900883201991437468504167566950250367118273400636883069584544978128853067420815549581565232059035117256741360289564122855206089698384708418455988904218639449376784285166726999055729472995410143289726151533873810791844421863429690129950880847164296112583657042892268940519443341374482773719597779350380241288349496637728916233412683910702988909784800025874473987478103376193940844873019045228160681101381884355854456422372342901643582466190341735400346073568278156853726367671712061799933121605180430406353805989655679670232977528015753154197683451916685148246119505001604279809521440010075097607587374749445905565330674430221087921034783779421239377061813513371716047386577295266042925907415892233693685501348745909328444394211994116332815648327780513860632839837364199070627709611512990575927925500925893046459014755401527323048535951723966910734645683947972430635374102284563252098825309499672297655286367543883727467136385724555554532794429807075736106247791252628591388882574320147456126880302513235111734437830648254041610790469618790396954447859015296140589970308833111675515593770673082662130086409034049649234602443155000580240619652353998364349142336791620597179955052244056005975587237842373138605797515478670033159109694821351956658326547151410692881812285147406684310736284876228033341498517705442298185408860828848123752907616257648543172232532442522163785404848971944468618964395147879380677188123555891944673963546232665230559898613229454803503941578908519134518934809025953896390224093368121014579529364264149553418614699369988744100658629100970477579722241385918245906220187373756398840778134327497991976252352157856032440227950685517828690569037482853381392301171800784580591196166914966367810634677050407376814890531169953443211408101263717314535082208662968921946527981200286098380485752383882867739860045777210174040158826907209040438164101547995791153316507577697209998764198442659965993100789365074353559764200754288663071355277238506148201295743073645571116041428080232279370383326130241799187655075849948373128245478435011367618842626155525363396573383226488417775988387058449844734824020797369247611221217628074263540335961861386384391030553139772242093187082509078633035562783905133758590244251268394021601750194476561003682892254819269817063264321537410241946449039281568665565452013008622090326208547477168326261376042780826552481058766245886845070536157896480476648828379760939913466289074685444144746915392547888336099127380251912248332284311586568020385160319827874428967179065606108852865376951464745419181749189492016209946139407909229739789146242235195586423074860740421232572977794631209838918750981681019554600160013007759315551939790597748925850754772187232866626748309508851661487314932927461268216822263455402554282525217784944587508935957640817662519061293442738572503043450862616953988860372346149494234574037742582626534748903501361556853455488309725392194186091455964243232091916469567302679151568827011279627603614803764784698431232743913869291033905397854297119891720323968006057495179037236557343989767316275673800373982390284365902113783468736962414388511645053045177099586343834325142964595086199553291156577917986231421007979599040492077729239093094702629916570097885213094908580618017201097420573761959992081297225180441664088525297548843791672840179155878166190152460249089853667391337842251380708230973962609956033559891466213876143431620537898325951968947177258188671251015531684363652110075872423490653706239482506312483323810161824667245091610143987528377275836070791650220776411915544072723017183244827686857053160055944691601080045274256562334937661498701438920003844262221638777961465190007757983894167567456243253409408086640553701674505783157974416847803423440490937440986570437676022861351574106011979835146923436163802943865950696275468402816367472062831671140037432582227031228915155527570354306645732929968303896132203938223789775958823493529450727501588610051453378500632492984239087215160321105487902238882177479424274153100169760000966731782027248349629185743185683375878201767450787535738106202845485134665262478053362100170315357950831513632157942303042826095261723679662161585664389796235543745812740575095034491125784517221383224245011993374624460829731520221885630570539041680876365778391163161014221276139766092126705203449463937513801901527983056930840775251514610184240301686020453393324954045856730030032183194786293478213142603005562447597997362854717449763169400822577592282091405723558493829265439736558606439647845434453445227864245703800122753566318396729486626431225098274396793423925889221149171115475179465965000175724437050108638462820495649837558924469159798222290700225553010112243962002477056042233234902598171356424177436112161210022685530586372646423846318788411242216657466716945032038533492424060761042861972044130839293974391107703072830487989220421685081191297776432083022812747563149723277913992301356786012697313304745594832952747097536161158185164995808334476090851946692217935364215119732842452190560176894925203484469566142015584227478936042701092285964760187592633363911971750658596137139782471718381718824343480734969869808593279442499593628025723491950234692063493463951131083124417719489363284703111098483397387620061627500187804086626596757562637273907892746080791301907407003050246452953728085208425617122261030056124794028231541251114432102042205555556162953406898304193221379826047499763812869326779302159263291855735976776526471145758992256298095351556906584513720621763791962887094447165553487747494646680632654144698013440585978128133627930583293337985455645172440657171134763108298488279764857301849829257716899251492147421834852211646820543501589162659253224313508288277108129808217571922124556600777962583186960709313541657531572355806523888843525430316679019166020203515663603363872777094346500251859984568226402376973716494550466481862454880859917873140860028447067365245516319777490096699390146608303963855361177935657044812293958515697135657164827793777334420570320369443233243306905520973475217461806077360849925712315281790838152288775871786383485741390341178658567340736287752212909509175280123506539605326330554391586992848464899796980220248045390020547989984666286651345256223612050753044140947088595218491839325970473346005706701846916470594295703364639530303182303468077237010995589853453520272631173771995408951090149545963387225642684791275873070431882148048505273783810384884790616489596086591846041605586639148652674243976708497064125640898327015719210179826582751598295347274804362385302568148811799729055727247483746487727952750358570277737932906520638679151908265498161469260414993942036300280892454655300536436822858710379998052974046890149202671192180300740701908886672552264952149542959688081555630474768577076271740055713915165596956600929087174991240934901933069572949976198152555765250358821425113491284906876779431342509875917261328834548903971377454727139433387756035123032819580196228732056510506808318158326253949758696460137763746084973804281740333169533402311452279008237323782258137442653652100300817120322062885270411232909974234443486132595539354759317442051510305438503251851189940222482305779371428094000101987688027695608939918407876751284093894075042001167215332673726780592601384319907226634101342919762010619586724017427032439084139851296837929521881403014324744099880487451715842430419925048672397104179096691148622416234066621879344649981941337221341495774959042912141945723002598901773763736410867198634593445148275686847402650012641939957947018264969700115890455528578571318562761627931383325807848261161699010763556135181862503252537976532943885858923945802419451327421706704719667073980322378922462985965636459564509690038969422521495117595183200468762298786626879563023930157765714274907986349803048051277331819992669204103528797062931417999740543255605992149039958868081622189863101784057121520473137902893852468834465643293534983525407892476273826564062066911659301241170909719909818564473800503727474430588621327151482340678479343859239906262704828325246242026700255880068066742038351521110074369746009598056130798325553552009609543660892768728125500214689962911446041466409861861214363023756132927988278654989881784195175200301052602746511987906788429221947649245552457735194824443182281146874089455732218715928528868792533075202167268668258087000161007471379441851428911969377538572373262017822139747409740622869956560263310626108383043374634524490026655199620101628217267312545462089079114624257364027559007498183656014683833313106254840022401694138561159142177014679526860756805739017170528948485806380370646679965286450212066860710938494748459821730804941752412381805581444633490389697145153855956233154131871735115902338906573422985029397464288150965690449426506986654665588310809214527939729324249124111931894654347218719014203465178683756925489300387229694377422250718534236393169670826521857263692080644871690322955899819026434556700861081945158677860292695662689273704528357314373984141637826259679516592938325670680838638237289779098600265520390821940778258453911993635921013706947785577634524340723624731114449817456556632489853538741892150150232042799868328846143517498496285967315526752458404405045231039375675545900883027833082995252642477139266329823069061192509784608542357443025568212167863782306287687153068498804813036500949345658637644866451970195322614393150347719683411712778052305073147588507370974610494438320854699737215993525400472953078218372609911567665872012834875764321327917288587114867534310934103301578141737385630614910471638836112968706157779302168596953448095882955647039076456993851300673715743830243249438883173777142715060432940982970977545234357975145815827842821394366753346193849940292682923473569474573006957582622270219289366447748007489212357189833152867163174393822494292472134264801104668917008241229721872036693339653627520016951830592889967829554682725718176816682443302493629258952636069287346317381001213261972173253945088305706454476187368607229554142961098831975322666612544649090689449774705906303269371825718892221855749684447032238365362041299416494019076772155831008238257939601023323550294189218283288841253401309720704032449513826178121897343894599012774390731300384278086182924771729860695238766066269880344848032625241880552310445855879375886973919403306064391941006876621077978231928088933606634307011945775603926034977936378154499392326929198546965056412624378642719126271827162130600562168566880184511448006210633290724221072966551411633879848947818562464164869441093057887292970071329393188978330116471537504763807863678074908032809812476047805491749698041680545575163082257667793978105920718453432661154460810225157067930029455706104154478704156882228157691548519131408634940925593734990901957632117759768553136439907183411695349244678614117468770323381306336469682952683810983031807868271641925405594665893013330810309392625652513521896041399990644497347677208468972652312092375123926324182144892134408795346637551742762571107431365999632292531695815324065366551505136715075688587948019254337518755792382871111621103621040305297508614924263238756948538204644159027048752732468808463859523804756559963816068875639899485477944278806040465799536635382404449762664687408259630316296077095676153256053295402453977474965368339763401210240448725918831709957069936200777854350419636579776736093374124649343054653664489566248730586445933998398370370809094257792855291031392196105335865976764776678160820490278256094796835296221350668198994815840469744729820736756016951887499821605925070759394733785985604451350925851630813968251085953071597662532778205765361233366198418009400381781663881027459346299980842878807394419285910397894125486681968223624531440333208748582739241295267801193456275561532978591847909422135537688344526220734050086606381779610639633858421124004971420614884199241436589356780859791680047266100341270547618435126732731918412612677269175453770055214580508144086400622759863010191404663708226323954465078010719622276232890882673442707553775318149148540355063551725289096583471146807287799242259894220813226854750848472672998135082046829544345679201098303726498133435704625551501531908511455300984955828185166760178690450286126120760078031828409337967150594662513639463420467490566939850993046321741038562925035290693571494057588003596579284375440429938327148778612484059601537573259197484197950462769448144486941906125806684993291643479161947671488728800387722376256931083290734379591143156817121165353267827407950393190866287181545377576180288033757096431538522536737617386566828701032180515773264712150093974756916667491003091660408679863121017753030349065076351481358357787907537348491738025181847310722610961920375825872341917275224989262431468789081680935733134873182720922273006214119404432048668269132797049588286918686248868478930822202869616932452880627266704614973269103840638657562245296484007849685105228277906584168323138334267787488794337562036357684563916913669046634468832283791035462182420244226797527611423846842998394544782208842014381885226417579475428514153588789721761244297169150106143007845123104984263475269168990733664105944563751465678361150153398316879775861755424924125051084353256976457349284101532587101575207697170439530044932770240354213309643968427533366658935927782148568760390518326539781857878290525091602346688882384979293936452386312099211249543189585327516187207537163163696251140460716974273302776549563087538613941545877550375782140401926987852159615370191594169166502670387111738970005440854430501244304286836508855489275134714351969888022957368035755091334365896842320493700709317290602752595309011331368227669633750640724801974412061053959918047369608298943342986095469397906441820843910505445944560204011337689944520262601751940273470341965652939120829057225239737799285561919508843754315889691274366129810028111861728530423464269403667187947716918597744513935163012432818624905248832566594910911393241567922700173175426693225816750791134987703099978503669019549692790453492301585801498281112255086286740753867539474894427281965217604412343612937384506068674163865325265734138470736681409307285813459418646536992409325021753214216474977400163229723426716418391900001259158988031398107251742097563429666185599971817656389178194638439264388573386380264744562069696634139675232242638793340324920362574836240870107931450694591147062890128159099173616424949350032731263833250071509476121163079091823788213624422364339555776054165901538943869910629411965217907952826098689471065051838888930362103435730183805903629959738397460334878115882696214102654621594621898736460463949445103783442164423220932680426996826318532022355306114954999508225085232800630029145115621674394633445724042346656550594521154391613277228119046766247292487455652554613314227830538765858606784944652185141079873094054123324710353550852367862511404889248105632245798819711514372276577504605642924611178459693568613342420428751476482830126817791798579685012677921080894545800461017890679420057026154203406679462580796479661633516720323914527988547885086857837089681012569142566984064209464236283344604804614454690720787912676242167638237002778485631065715622344962765768523459235135074959730780694971060103348164935347839542518025609852250596603329488018384297094601610397154738591834417352799334545306715961799113960642054991714776495223068946454203143166129298935089234258366491570742134511772635053719377745676374719039722345381537199420976641487334603146233302399759361284472704239810234247565900842153286229297824931717444663324671813720028843040480906002015181216081407878906553653936996357139136795738074000622061718584064655019132847862721277457431632657815601519017670346670252898810372448519636458357252492037284621056752250439291687623274723832468120663606603250284122827711958278360646520117143148956243807841494332348293751409078837310488371925238585634650057084041538558952173372693336782938002282901640236453012991091150378838933031048828176156395987124049022189842486560265387706323804163025915464114363353514035741399534247906323794203641539262070274821323417259839345718895335119051287268965169453472116494331041153836536578891711799570444407194156864999943097206462328418084365602123967207715335002223237102732585739620389329779814599700123467389717943022282857774872967408553438663330893481102498502256512898107890567513123874580972846779059537633097722223427547369514366372699830335757344212373311310446246044127298850234410164891758300998311219728017260044679890667731538723851116022120523710270492220791478834187477288424742854194262656449545982013903579673835478636144227360608714181610674049446284975683836169242881130053390699891173295271965101855340972042114134769916200473763581819822668553489280748654493345290869178254677301275317731444917731269868389919106011549280502353536233652147168711092456830779842341218692816182405783756410799760272853056103216786142967438744089222430867841621415210166065294935145106933765641049009428665874712161129165684180539313136714747449827610396171769236825161717027513839376471523820541990983776156493751074439210304987723201682122183241377614887665846679416298585731072701394764576242050194830460120336257490930884006089816034813849799707015445123223021885060689039073343020107235035408331545153518145551966478012836226362872975274492486557564502559125185776929822684344264906484402518817422328366823935985514173557677890991896307535091103852687978889313353230982343710297067852359808806553884971265563605725191785407076660799585316221808452938565059629388460310094737821751478718257554450730200062485523457569077217463137402153877571709129542117699833545315148897580042404341172567023376552025467190102543116346099009751138732379207186973550487943144932531651450545527915546160656222913676943976173760510227026432850382127079796551731041987954440161920316609598979975724888942009884332788646333632233637682172903917269297115759711776040617888022939788276107986140903716298235903659527265504503433571102788317805533021133603814607330517948101200900688537986744810339216082527627574217407460889537609583721823467331398007560990765987077507165694594733172539083311347248224258512858463212214561057805161186236542725484617741573559334787089420689419575033816254260548069227439771017591107539733172349049109456110925411777601693651905727176216021734616567350631600818870878012094941154791430872797252919890816059875051132175569134923060678559530524647157193016360423502058088745640235089622124830293494284233578426242910231953506038431803655013916643195478435413806964678056712827202459271378179595923546636357432329476072945528789241857669017443455489540289013808640682778921266656241379442456871561830860736018393868682286945820558260139289562565623082261577502441312636483407647990886066434261592682162357069160183632036108805612788080166265223868635230028525876523136477683119476409968181256267423712712987821749454895794527514015904594066965702504677971772292291813126102858100650727182766913947918801743695639135181864610440958951164241959644740571017877612186638461108699350235166588529475389046048339633558437129145816419173337803233756312083252735492751947908197265632653355115550954974989142456098834048920023485143901402811119752802641478497549039481997681133837343632529081238576780579918415573043047745298064637410152194785409395498379504458859681015604940340038687623916271115284701168190297191168678916530663445987688456181461303239223347962160340048386334646087440642427274067839610385068177429697771829818711457565879870392358105355938090317851781875354580924212729546426274458337787359783613631113795913624104031808080098466696536596387367822563005062220569606735694682687678544417042261493710927345028000503154178969594102057928135383416645189465491214047632933973085921849805423611382443903269881341683941559085796032759694434033144916241574732657266047641439161038527169121637039248234651079557528720090643688513233926492629333768235610646468369437518372043688019542100579834641906832075720718438278643068950650185719098880834462903509554493388596470168535579847919949242770056149260052412047654579277795403748841596001964393472769557334912032508439266376483842066513482586302674635007720928218077131522227594199455696872038940262588011031516870404740575005653192796900157399274911052388360414302146745918915749136452430132721019426245603895906327296863856667207673913422253496139065232020686714396138427925062596106549823297264400440148265047290748968905266977458504479360501462610216069356978590462797145378917343256566227151238879760959301587895316366285987804742634193208708111856781168112607187056210735848716694772108762029554241626750261441815973617391554565739877649262707166743612497389038995262189714655844818618519183000637422194081239557681789033513058183026768577107063922499385912621125435415856779934403392182180794166122938012716908342131938850946043519170766995301406709006583660852782128239756147934615529869362283968630966048665058760028954024282294891553985702321683856310391118340486388281865568570944214491917948766804633722799539906973225126134382190617737341883466312095656910891275581231853078496554480994439619227831819360005268799850066119590134137944058146774086703618760596335681875608097576355634714669245007772016599704224053098785159354705084991500689100991871828523566798197609180223166450918386653295275386330966893301230865347311886849492820814813637890166056638705529916301005757097424525096676094338541489135836302652798342865284135119869371619619693041167215243962034666510670473985979430886463352655446648419694020215656645482218069993616664907486130320526121623576836231123959139699053580444184611761641155350506101245022203291123581564294109258865854360447328848398313442338203456972507128329839334575598623525872502673419048860746838498632468815229773870101808830599102437450490880581151472320639984598164477295375885802151098277580036257183936284950156457055262047096336446036412113737612395118492204000625190706457719862975656612883518630334474528738648198570721656119847916836215455303430406536942366085770909781460408614750835336089169129459188382420479543702236735130140590361669507612250686871023052518244169080681301966056782373378940674415474493230228807371086175247339441481985746499797784221518933313746637701256591693822917437550587468003712378089210577731906803271574584082378496296574303725861917322114046634978080160899045693316336002951095674123319085092141920411472326673202911493002773005531167817458927772371203535489138712182902143751412551301987577055929286525030695188513732908750174235687868774408028345020355142473258683732634796238494758877218118366481786200454872081404216709490811138939151769956072043384783453423443809431408724302137531035670735798729423423899506542828656875001125980719227675285055399419229453660401165167702051547494148532966243984420971934997274463875831366575586814040953409678232773282311690842457617332473650142458514282908021668577966229092020244019674716132194595381374378926938314694695858694008461489578382530876449604521211903524548782112704702881812121551422878444446926491340024391441753827435535428351037674096166701158053674758548048767874932954084122505325906459197132352686360867825900408268244233810033063696331186578395443594756805254015334713096844616358092969423610124914703813084897809016822494286325345622180594471532854471265274743699058574188157865741545826379537180827579955907733419571697717457063148522315161909421032378029341777343898634821248898403690995564793594282506663486888085198073251115162318339701524300215808043530269602788290947546066134150542109027171108103554149150710565665231046325000449802381422398230874969594642736222223012638842983591849461766706452345429268282616433477462211633540764365950540925446685938416695874414682845840629095936658240838316929453857866022787975740711180724800969064621378697805095884921166638943414824216356382629885822660139997055139229602005100775484344417167510330411814416450954939310820205368526891472117344551410094776584491371852667556098349597506530499554126988308924225167943999375722013633342141210356016907486806330187895274682291419898900774857146607576861711331691591291507628996240693546754988199658131659515178945614417073153326242207210540991038001776550022716621608359952944734175770669573266565764695779760246761771726192589144706414558384766591561248449794734904996767952567247132063833134029037303062571849407067912700443395242758442726358414466435712669103922924415198864677299072659490218290811644172839417043337606281636894949039698478512388937513121814344671090710767450238085845491403007275696599639920962123957385933361393866833739996243949271529861968372796445751944279659222044742134133975349451635966484542318674248150397783251393573623158918214246959144809894897835072548321158966026010007070723230933322161528812616533706294582589115845340990979783756040191956618930478899391733982728705222524974935610579061131417876240501581828630809385083382060120921987544671232975542013012894416622745185302449215290680903277918014559492224452899010145110146560562476446982081435755820299366868693152262536604376527097158889895268179316765926224216962917372870512640176182899714849031789699888314029815578050731680614071297497739772227526663893488048557457962466079723264615669591129518346931411242858505147101093917156395574276164458833214386346955796770877151167392888153777649193071198961664100962151862188912945472092816871216621775252736442489432579892813694617884720118852063064577955932860603563818357311169423180010719100387784659640751966124521435022295584777102362583518843717627380134015511477097258183008807693165973953799077288252888183161785075689215351384968792972786936359236188104624831209935670216586500665477866281552378318710573982221661290020184361159976576283719328942393356438559713089393950379592737518229488462753074799101391799110599627026719588911849832964290142907730623240688219733614142685361492652619862880287985806613971929221707989549840155018278162666348837908930276883765979538560663021898865019805156730262358037578448713643534332391595867004880911129321038178568505512702839220464140255851517033021929190671237964112047480309695294142517094793637504657313941337411108855467562829029501121289819224520078598018657663653379138708080728560945258420316502292955123227612891114970328180102765357927916789109462531840688210071585608224654701660696194209859537002375610913041040238475699510705702486442986848572255412808477244784908319777921235495954640710123120845363004322291120532719160784107295108273418656332621230005207584492477575714209916487584055575283452285036526736883370777897806349045365131561469383176572245492853358753993191726856090535083628315426965664125369489072715675556312238317097234156051648154095276965672777113005773399232569868389566862986297717400652259477661527574835827859593549024231629194883409392903367273834717900847357237477329917758486914294906423249428543867262948436397198779993903355139228515428671040081174992435765511629307335968477374037182299135213242932521271320882275363392642389931971341156413771523206129526534508942053674808372202302633525637024761054082821308303411042933914795508022680988939166620238973514716414812816597806102862846199244386013299743114355970617657994507794942604696339835902084115596192747108483636674599786577698298475884884077434353710979923564659146135251948081697465919840963664250211764017976678309739153559539925683240377150220967958305315215694809082909224330956389543157359781639431811003243263360920407077503514695080819066050758199619343964492755243814840815551426009965243706961015487522987402007901986912432248994746317142852497249169886751872672561104129448631221891151628170654946627108464432135944429518240221499256723567828390227349086266116816672626831342866146166312971589271790842118633351365878518154454456844096643377929416180108755676597295715270407220952823122965456516312893454328758419546070362886060568140055703936148267446154511697975787271219727345735551349606363297039049154446651945265378657090280407685723380263394857864081648409366890257113471286983799727465489467627052883261181606467413865155193646818244741822247726037819295876607084645366888907635628158523165536350327659196417202072649338451940369393730159709188403826731978185641888683431658543496964665652927756090776857728569891472226607772017783655478896268015069459429780984995881522342862405608412066487209624845317141694014421083823016714710485048587927437086745844584614826959266523868435484514344577827790327819351813566519277653406544896715445240050965376283572234914588916195131232029622932800541824247356856593004472238459767336432092204542936318751624611221846321405461253976044037088192701309645129944362457496279293733565680564504865236990820558106579322566941680394836056912224811575955155635333971185143985336498937340733819184744661771662861105673405821932553389377612781999359086696833667299153228307053012626203795472654589339071608742863166450020875097125130570080380658058270912598193564012073708544208207158368074601526953297478554291936241613352663154737643461102890087458805889908341756058030631481477313082460989347045286281460037270574299918581534079027067195169907590407508827730883326862085564465700409158656159489677010781497135382252394467425810062082228967880742945036633401468144506996095457878337634194278407402714372099807563874202457775612610629006015265466289278014521158434797934848938919773330517141032696408683369233960113572132912969210989254356457751662171078616843450272318916490217767948295143342776773972439019150799671569403833011520858839770923756778789749210992308723370018067439384573504222939763062733451180694559004713380522156891394497719258170513012306109458771392374761849519071913009361422541285719609025836405499759638061485463320868554370109359911133182764335754499693677145803058416392729852172681902194809559804970308812015369437295736972625948696901430242226806126806681558726093809128036231653437015766296041885604586215484194762439999196656679411057178734196897897043616188064642473540794772426378532042110661721056918081326738065391155854289166622531030851182043221952754850265148984210324442459881055612280417140425978811762587617875547405662563030682035350473387655305234447754848904800875091615125309514886254144331807282374895972703686322529393787237352232198862161556691878267600434385828875037993676553002377180740476631087305516973026588079504681367692221830910361638382974935987805341705933549259812504909493984838674874499021499472235868328805547557855513172993715756944953521089366184136950673656550831119535089758376376934647107732857817748560518695458920769528958988116367314248506122262027594436748025939953833666053971611919124517978755470524596100936533815228804592900095501976053936916860618832542626602971864741769816859826380567179441851285506470247902419855801444410325985041295506118008270024753722776488122037255532374814911477276955375908705091719656153948544598567686695904409325433959005928073742296402929436215246492967346293627178360179658859577143054615476670876097197723804215651566201815608442244973831537312028862050142236387653834893698763327088489439761483149058983729166945234062629963992460316480183162605562978002453983687746531191879172049395839194927949615688855276055962832465034106224144508126520799354620155884154404473488791384195226162129570680461442590173416092899413580547986536037802311020528146315483654587613112892880935451534624725131288471083451118301256597659545806435369837924639326904219363841760408570825716098014384688284030292780184927174329320962685338980416939496489976161334891503056943571961486401016803251639599764152144259667546132852577140012005300392086665793121572116499770347653539941825371037741521479425802877973714187887623096415872125990362827196509037261445152186435710892154748522259159940635526482140730411721450336793595161365393134591211941946230804440574722292472442135570138742520064913442858624333901162425688284386340654789950865237006259525012323899656204312213197546071785961090816999636744584176396719207015400058492079562139449629501821187001463860846244440822318844972820950637944500075396080200781891141601754507711929089255632475522809443915652753055884838802903387313476230176691141576888368970017496829390960945867864454095213069655924112973346273458372029108830691312883946377366674831618010100540973582702524203451826589269679067978477633622158692252114142073694006654356025114830531233245561058471254899219887362025074635023339367769248056362161375681301449460191993518427230601830311834297956472166753997743675570848755333533180018978654994290810953163337617853503010471990714655100356715822902315041879755916857186270350954860467430997616165777706438794790191374908079903571996267523315937078545162884172303370721373507303911555153227929665447342932201891460387051166795592641989834473238356684843252233838563386758805880654563457242762996940082598554387265372949705137596107042712011554517122452685882319800731214645483406475090701523838315198412828842231510253463803082253409218442280862860896041591028783446002173084195486273036840478849415618714171781147774665771072129696719934327835226453807409950068492590595919671996533767593877721985762916610381362953017598552205250553193002400473018786750983128077700314886674977258358438382754892029371904137183457406450689027674768716457327284752309358535822268066210456560993069878435101395414696305319996347257534936539492600330119143034634510539739065492969064817828561628646937058058478398606025384637389822826423074388966210213240136416574744027645424556997468037595590900752367994607208574120056037563411360951583184272566540545280898372228018514627854059678875179679355726130046324311623660964127370535772074616244371608191424928501852847363225736796606731443797122535803811551790185343822725179377017880271245965108869605263852747771984364067490499833446634289643098689268746423608845547701514927124677397467144640506610530182369087915333204419695928535310085040349913204881783465621460105230997637676692337588652288675492010777869164878067556182196563873037215401317102131737741500315418831068892695543847782532784547548667154267847737773661127743980403717649140635740188268632059002382768995125187674621827314043324278131928029735350577075510076098775417146636717042226135007397150256004083090695502073819609518317063640854753169975141397253250310371552586613870020677825954670552322956797903415922882946341903171399418405742330756015309039936768807289250792359234002205201849897463254444348940222975651051993367931207548075024310363479474479566742847635734642615790189817734010902744472664521875553831884124003313971915782172905580475859638178296694427979229538090455875675757908141603971215211214479498992806224747286088002691974859476722348275946985576671989131597722917393496071718154898859878521354549511375163043312837937136999733089693392913454160544919220755288254158004132268594421587606967324210920582483620377830720494602217353777082636778468957656726371130760798782683405633762423685170712768705924870440806015441050333183202767534537862408390353841484154559014930993618640957376618983791752556766905834054394076503079764357419297560381649930318084978865717800158118941285621323495379545945981607392265412199579233316958009236062970052771158462112589524779583432937309220943378419049883443850216043833024527632676669547654824459620525784716765779267709947038563931010730524842208634327927209471253369344945910734327797390688596012891120843280489792026203930763810937606325877388984283158560739146272818429062578695370955001814495736273897436169191867219160635649023772265064644328682007100088793488163310445309806053624422727227530799677028174645679280176134138428354361424635040440334524549620988835871766777680073048433946909867703558668761293678095411744440387291730419527120949586642029886882800861426090162577793423847070725435891272347733441086098405942882370496408839621102751070121568692654132471141921836894111287473710662105131696965165063897937634581401113248329235161088732390916871702397655354200384416320426398172068551302418661696239707690096572632761368905211541376012604217794865065953210906815088287824378858631956611649711590943456617055632534763212125554632640291642246592833920575370256673887147616940108139981546664554717708064311848415987422574324191389890519882290998331314341711806737850582443694996666987549171553884051835586675553496434707843016906855338838537328000022636500911264417336127084368708428925794680310095802240378464812121176437636166656276541978786441870184262750779162712553504385017373925314660688272690360743184122978050371949092189494443243780441666102942178563544349207455207097127097883027967829747407701957551244021410695114601181554446983068841395760130707876851387212955966972419804990335754656300275250269841905732790908087975305532323042157622589678431270363518319874095624858049427118617301385543295183701831273374575056525228847935427094415139682332457307909586787685469260176876638035285763684889325326475942215386121568391965514131166734483187070109862711293751955064563237699274603679214090570633565902355279097270612296036698906116295336428142222048500142232853289282982846321889785155032019107391250404411766242282873253324693627938397323921584978963679064537563210351343870311455448843502523261315688596835159828984277693674722721692855145528393036234982234328350424493812046401943707812296984925695436409419886307750273778692179518000500970186099512533852269606023627989198696399289359833666273696463311807046220384990639986081991810412277758771171946341274946231364939093721339420215729226848721039976003374239457138481064283581552060974232271901619835604423513683767502808067737912897605211744439008542123363968632524050161819582900142693770385052578006615124662504404083452410376185864551724009303635272619049938693402077821895592181290829553005128853672512338451545427465009340010192528801236452221342003852945347055009018995761666714235926455143973588459162569735123229501326749244232931919350596570186577721274823971804643614648452966236786584075652048155524735193335691694573623426470372945488519711520583216077696281134168027995357794804114400083324812587573028567729901896303740004375037156360849445743887890963813483494653738781838873481691420077750754935910007853469328986651590128686499392422246240602499523358753027197236011891270747139345378389651116815081884593901472632340381551686768486868834628612770568858567765970827663793968262439990936311551975391897945823147696788278123664309258838242799227505041688075078857206290608427178520417703861789237411319994271415619888845347877904088172561370918769567728556702358489749827911863912740806151357637259575639170143158747535580530431297070306471525787011354816026846150238874514469045911331264978325932004105549347422279457009328826041532560197773641886904613128779159383013501647492524333659999354178842543044266557356564717015426379377038875080748996309429649087275706283585823357506244857645406593457475733126800748717806206495207108606957843645531859716339962003618559028938926627562076923135861654043125992786191096175137575727395126059093372308403038742861912157914507123306650386780993569046814232699682057258768018342793000975674996938470385987707746915486931184530052513315962450382622493472881529929986292357768537510236137339166210031247455586771270852673143130059186874690836909272481520247497586191025502393240200968421014216990868618506279320612029442372585844941371865496514277010487172273812708731822135440369585143998214767058597402469301747992674822687341683551234122713589552675623612504247699190927923159857569268801267718465868613384783389963995427584036445531623225896688369602858490296321166469198628224617001072809086685575923116130195351284579998534570748236841613732653071136477275306620430913687194098013060494512703117820824267519468143302105585159224199360091110054355666169138930286286332128644530376358279164593532479428737589027296738097334049068467174042287468900332133693643675682229494109202714899363667030167833893145717000801752014980108824718613463982682123461889077754635592557324466173454614944326577473527279034007442466501521592165804660867390357149200860179002975911590091480914388584825097331175054154844268752517253143894970411433733026104829931418416343954043919579671597441086083866548435436609361269201318562541224069649431953568333772052645321062164325907819774170581749459988179192113050798636900518597008193776457888450147314036934104175527587916981209436118176837468741391575494753500872237835774608575161617690296052131378755642634987181334043031631913393682393447157903753155687552883401677453868460804825862944742927148482627691965678746487742334358674864639491661535962801184606503964259489575413938793709221155811139978889466054442807537931224322034253623312576960797044037550780488521891100872622643732632324748620676813146757748612995393947059121990559575085783432285394313569570092730060664004833714871592611875058255987875847416453460698499359164941334809012567193805478447672372307699514113566970305479016579876021993597808300780893138078133647735952129054170806429146123731364012840453393213200720010277788464703139362440678408811070550643477576802247847973921842790218630137640150368254727816154949659374711290566526741441898396738108174951148829661231226337794319236356176979565814459315781871993484883495990444196425927054859607527069768936750972404308315045780044610516758477744637087003269835835986177823604105813899636525302864256080061478079972907936126619913477065883866891056709063904194240052143482772266183090584728327003490844598889988619008574688366221158386780217279925828465588578449799654570001069016010529217305217599308891345881384787219996881941698617917166832893396525380175721308652911287526088435048175568755277055573189985898201063141176534156555040606181431247249895791953477530246146390154885872135512530824647090409536337322859075707206656924973891090301895394797738999224843136155612705442278375121681948237315569275319311272145536077700978109389794044732296312896554437889974985124249380138482111280552942919707677449341053432477058444659480558510139252350824628761577975370199813787182997981501631511196505159843886664092836524667136238825570504557510117521489283267264048856533654649453372386165378575856017068110319360966382934298934656831228337683865334519531228565009933296989294603297621372073135177835424900462764539054457087863327480678336293838960445360632290864587929456258247303662656259154433297455646524139975201443893076903334032070584542760365166092244198141287246017654128883606644386125990021114103092187854904925707904271761428284669668839020012362615317472157980493911215236030759950474630208256958822657338426579127009232215621156937134497786830038283042123473451974766094217253147991826327302046803297404303047776216455738833685299383570661072402965967359423698890211410194885929889288941329936706107476233845492083031377173328837555492581365588865693104534459846546622424756858154974809536977359143834963273053063526775301828828126106910469035396218260567859535026140246743979950308230730268907360321766623694562230249063104851767655635226574247614851783529271613031444776534296185100694284956866212376705209260535642646635685534120240829356676954622875390650924250996357817559172300794570135833699582090946914669471351001237304583283596163949182946645601467829869622354137266117113193461645106124677605808599631992042477083170774944835592757943875570307915385473243561347875123208820681994775390185946443121006877388893212669085086558835856940217575786631184737214856974058231686130555878631591595598832580171089816119510149138737374046621802493577339348682332426199851806052009697960934733970709277164960173883771433782900715424112468398561774289548803538814007403387786217896773853106127315233667931705612448365284513162255698598030314039389834630367861634084557793436222857874468281930933066131336192150602757111183470439311376639638847449069086508072004682146458010034479404451736123446459751389011902668106036674239397905733843034930452398908012261080210504241748999679494243997820987912930349791296320077474225461170060058890687694100464708287746133072684922164789240416594723239869802976781742908547366657305041114438851758507542914361127054276358678013115856408927549702840319403021453043759730621796844587296317424543429832372373615700898795930706298059538778764489409006478201812171159637271069669365723962966846311388456710367588346137206318771016882889071988969183928750178326549939519144614123518045979259361382498496533920015775633471406670422796565698440996822338791810795786054480525476650680242060341658711509675836713572729788583857093163426588662261570039219076482210765121350412194174699280269716487943725553580851339535576720404407541288545814512092408321824810529637869785304148044026564526425232062470697201942410908782101039004991627711815733683862326855335197793557429863437483393636394898964049998377205233536622291520781931495209821057725766469279653579752284901683897337497622156682400985087355581769480914534592303793641756643703297070826000007666111057575761273786329011259749399476909182401136320679291070015404377074467710312029339183634056900833743875900642909960251760687641162217750123593711398614920038448352637959556670351827637962050783992708465521062708739572239848512990205807221740397487535401190779077090573288193242683487314185408289720219268896544931317091586512125254597594387561832457675665115383696277914826191093232377978460492653893717115653780117207702388632064559427724730570221061316587729163099981787312055689749190230817214918922995217033430995939984649241551554174393392957613767753302968050117829010138429869604248449042528345121037269066151874814520439007122398877504721513079114046853432639937698512331169788601755405984206848378750938126557642835936840923561117017857187272041436929497446716694969365031468707902735063085657444213880877945160806078685721621400061548547435051866624351014622314501937360157565542367204004062567209194512004590348134983719521162516729470658175016344306490658017162603888319612832444156557300445362972734006824178790416820622707665646208134388516256991738274060637576753555726408510357096326727944543341933629661040553977327567673445339751202076927793542386495755592956354261141337317692071740389076247119029613170550955038209715661296363092305706299864964480290552432107712587925763726385638513639645522170144960890393863690308018356179393529372923625972957973339903010626411083482060127592639910235132421271569012914140978344074684569035971895787524936756259171530692403475117072290836466082989907868143641204369302925161546464506170629193529118687794796175236184137029861548766418935142847968340030150647819291198916636571356523460034593574555819445354728274968132338976909768033714869381606353715825856663092589397909418952216615493672248863163432398652734043427380253123769701973764090983526262544304366794618952934539283735197775597542099589575222803923134799221288895420247207835778746973345197559556872645462245781468257404767881654544814752099719020054869295624541906374807134226777403365935999548743019113946872285644678106961381892553759666501346281917824473405374910523473158911362854874644282493904730838326904440155167829398051822631700072917314447402851202111811062535851663994674659991425940358510863180786161555374998919415873067967762065009116956942323970058964793342508968085905601551701350133538788816415527014930542468738322018961782112146198640975349167541772154653905760791685130818716655263787262799192789309026223030389956603254634038659357086556256653141306959599643461884403765353806747875969165446632988984402744671964678342161235853103879644905052255711921020784167381139023924580125943158373746062043412611203964413169541507276494088059205267426122216876639722773627921396246207175740776595129381032686779911352496186046209623501437992844120920160528302983870953261873774299517786820243059837930877147514609997813563242509879737730032002703067180504406407022487542322891802333028852681943806491286926563768640396580702401119002881316464413392580488437802602233614126013629713095073607296811538091275752738715478273373102418790765324788457306078774389885599664221519017739772764259799504668837774507337699994972581589250651254545866047915401474273045801650853395071276022962793359271899491075601654985631551732100944474385985416901553542102651873954640374684523584410835305101005942216266404565760759169982350775765303488195979340157485687956768176200002247773784472934005360490600294475599516696010483053082296643491742924739954516590453786350947601032539563656725098003506782340052812339592157440205467801959986727076658795085830128958792388559440639011194129829655161453635903445299639653712044690258231450995079370494991669151941620808113321906719322011772790506760211556853718106169455790682814862484323188919510389050794768383041588505223313044767292035143981649054330789519464810141054749021521234399682227686402122675565242996401059537811523187137668007591749672297244277758282369694079554136913771753166025261878347076385559267300615512175770346223161044078713103613230998909783469629763444815233558500958822869994332924680648195070683879603636013251484704463770386110847657850749319289000201591787175463823021594901472807456046170519334470258236782463246206089203615877069510394056107663216667894107456752413723662693623334352476409146135446867730098564774092619284374252843643112849157947597196291567335013806608737931098002259411815969599818078909844705429763983062446072924410766802977250364813440429496153969261933531004801052823393335932086187527530028326194552856322654802947859623340226905270401608402198453295992824094463258366491041687960253100260812292618870039009933010404644370742428497416023820401978388968419483304397131084665223138355067338368528059443564867297582439580109203013972184519533902993382776734471471734112095808431395890393853623186531479679432414206577518606810381836770590779773858227700967991887755881099761183276324226226526689568600655065657360892060739464690561219011134938399367170209875127768415332380506258013737232474213912319670103194316226267842093828042138966914642738028859444230317906538552239048595332225411602883490790470616193565769461840617428348906614899887133556183911359651255495614753503850637472394165905044571410962132781549203827305786889059965921413804161497522975752876594488950033630303964545674721065880948805146963104017351416844128904899674694623395506321688914006099048635309995177461025723501272594824023291977329083672123659510822605319705749424702933576029647887525254300632089808838776230019241808698229128114342865555294585369481510665348369735745674631069408076565271418067640624460147613733969741924053793781514925162172213542928067835581783107704527920621875847956737399855025748278509889410733721531666521374026383628647413275751723786073006666019666058939718376937767629298715628915420305150350686081623618720122371421980779701753533498061896686378181291633485425979186350748819747090739430835354538607380743433394723244578311344579981407628300863493523345854821341465043402617617233474926804874762175493178976526999129681403856694954025658773143904972950787229919360312738795971279816840827706452174449190240830080812150953272822831157522774793278120838493652553012444588710462508961977695201556086844873599160306468921626067740211694995891875676101157489428281965432614417306945720054850188988370488029316985394179990705491422775139959774065053512225990931160051205415507499346381123708030050648225880744017963189955798004023966231598648943022201817795200608111245256606403908020882401100624170572500141759728941560718770649662542491194442564283688672967843512962376597616400993257945835280414185663826354860976822790774789771531473924236810054504410250389578800114785390245682848899447673388130615818626958200305675049369408894232214514915972916229568649315714393462927154334218304093277309865246311880965297130801910653366082302070798416271026175807302732525292677406289069065687717222127033890801959331293792953102451650801505136510397658634107990413004422280392281075273352067631272059815240125081163181265934128795500462573437372800731203304832977095765579236217113040159778959254911418532389621120107274287211259749025801155469832338456710862938011672829079962893983991391077655079349290634006472228046302586429760078456119003961176625384013641851110507374217688792721476300050274823624473926923578912197535504303376357938462655951486574499667959046704102295861251297506972291872502609701663726638290041007638052667528347427080490644209504332002472316979791159477566710546277925989462093151638764251111396184849350351218678485171983694467724937708068931339327613302272111847723767916010114853614075890742625247455496486084892337518644863029357251475704045475510341888388694650885762121938810724324317180295308816313928642732465945811615300718510872424715584800171531302804403231461806156784551522528630251353281586069923340412927551691159856025611076284917510627389232639490829618735414402811919079608093197120225146536683387088930499219641995412497140399944047789067072706378594346822497586318763936239023529271400360511974675352785256919557627225899336390073400623651738198356819470575024828191709292761422503360515338470546721402047751316191450255974653172494012307254668149693485381585876278118550113427620692773428284882064425718338148358486255219070809440928127935659036266467286468432715877361533395971792421660088399231316502905561575262378876203488910415818080329760523220531045875055179826988795171572873170096094259170269399399753695480690668506367390035147091610810799917579635102573469296030783310898245611026617155615956991027471528348833399310529373646664527412220912217615221256541089111231732532604685385395497596993153020768812043029407760818452705440513525339101706987311021669877351079372288101850180775358320159212733565714421944621443820213452230316858578213656714877041799371539710558488097674406976017991623371034117729646974126050871546391822508552286782775752445905824842286892418869171702736759556152659685162867036074159578609237970231818852741902896936057350098041415941476727491914378526082261625010293533299615667161636794840131111842295685148674687354957544559124181890183715706079705950241762569966061243953027174470709540421797091561719042529362692366377560786315237951924343457932105519476547923944433197852247512650288040450010807204169869705729716641097411392595612750141348653567142875984318360935371291497046653003036632003572398493476747875136731027679110161714571024058978932127235580638215527510456261133717353583618231742075462987229460228302909628298402156748730312602711018094758823246906990223445391561760655663159298114880462240930101615794319536169985594362336574685276686957561659723886355769168776408418629124608599803857772929398549418717197781395149509360188217737699970494003968873951897172107475974866557156649500894685310431696472198503790742074236415201666221523901353075013195557646725352051612963419121887493173652082686346952705510965611753722573992919692635531018241185323205327081252256664591134512435279860938734746988513941769058095106674746036398575355706096235551950594785137778388547339359351449807569649144590740529415984374884629762229773494277542134581088548798813165514414723760640306091066123112803240140844219975188412872374280590478401231387577002165830007712179112087200656776138540254819379838294295495948111289563702161079941703250105451263086709922238849603235382615095716929658085930892001911721554637171837140704103249336710809546065063295646578592068789988852015229121896597881196665138911577840435171565660236011753755507280083617337254849533563199239662863899334837136893274973366213977506064835842967255638493136640691800924478946914760095867902907973244597834840352029398875462064031352343771723606311477626606488448038132633107884584723836043650591601609601754502353909271656476575967539757288783531200448518671312475932448539949166866197351473156089110773701035239301894341688333308216980031644609535803840006359839930271485413745828800906505608611741754350716572561412175341732077309411507045424171445155416292434930863189345882829816273934881234348188941373600153389987251974093663416144360990274946360563391556712493450526403821078431570807296418640805439384162387215750004957049510902272720250245713271492575820426616600627545443143563178876629672268410750276810889515590544377267412479399225621944108482857896436886854389188339098152051767265970154930240204805922599352444606041005759598694017213801103729071818166505903087993635454298189727373268868658449497351212923587387665514588138504730370135897128892281034614307860849033746655280761878438211313438504825196133536182187209405373620288946495273202798475358124165215241659345105627117864004711234509647640857854977010752502184466437847749056396402964249808712518592667353879472669756281829597420410929563848948166675857509655966536581173838808639063653852097549701418998331793981852907295206543498599118730917983269049832535995911018564482762003763840324465638039249001270563706339416195348933890067901519685915374534212598164569199136028373269412326610922193262272245840438937991743102969782013931257189600196867763699307845866822470236706267642904332468738612646259206930546118133297126857609311295741217064295928848295287376346267266598591682982336512767931834242286839033417935780214041047846116532709141197969929922493775675370179592475679812452666866750235280048640325531217341874168524047328641744590210515731942119174935685926810407969226695947752428822184213730128543569463590696689745352468255282419174974013913146111399457046633704484491050141308090863674552743156018518272199570746437031588398804906724863441040149850351731738869004784912680435310794269724595711154055755273650994051859699974251548396091520137433416813658698465467680055665716862872853872038498308746041070059550043744809231494707361775045864151804482983288626335693614453987784730777369330437384189299433519634555084741345329661149263797335203864901704594864232777793634120965265719938495854829380640254417567820956230741879051112768529601363968682206299523354136378783624474400685146871522669891295372042813242230237278368241400499336343336353357362429983673824917867934224387862269592737173955292714554994326010654940040973564016823167564829831290867924075067532751381454999932158444403683376959153662178402046392748245694290172159807635228364851598385558339718136645660957043004317954398992081966008186842564096258404058410998900168399964170804244892134473188338714724389300636674668692976754437073073708999690517204758525116289597547140868632226053120591162628550271443153472494453054294867334712487894064375890698263790396723961069413693071063647918478602065340013666655573989376461826990488246364118602840254862180299735445154947505850285283967668513165271683832673920914368176299200151360296741570366018601703930779626383500525573637907624254111294040945739629548517213528971780913612595753294968612442679775225061531148946129001973265412725831596252319904641673210084198465817338994197041324923502250967031468825925369754926376280999390595278564881243691648386044846452799731875989976588518122070691097446516604127468647088682679739187006577449730113621531951820278141649444857645185179156548855813114612701774457029125838513966086604207856443120010921648717368385058183386252389108147893646650410498432528820272868033904214143807840867342260068941466633245664395836080110222990565055353086166229921246656106430385295837172209148378783492679785370016233700278445038876580784298370802145801216017313708365147311570652466260915757092462162353135360405767711058971539661543396590900295448461123642179885704041681309334322164804285973479068574696742713948836597460108032445401943157461991297117721883040847201180789756773052459897087444633533432028711533830816850791080553744579691693770657472867799723619476578484967272163760434635668220740792583913394192522534333216284503786529507481369979449727752752747545538576742131636009256055876164127705974906045257646382319597801315918651304821943762859732966299111116634115362217026616653312780012244120591495098830929496823854010577374651075757231784869036760951052520347821591630496179209559510627026016905985932991008815561331036831460267816419400247149100454876375248353588356860100726272579645987911115494500773693598039189364152775322515303601523776634379476965107274478796290586222659231675619778552688207593093483403333570685479804598861751786551263152579056949650283594394677867381877717927276227266259071213088294801460263638864732894121387609852950430988334615999778115267072786754443889024945863841394881720306140306504568101389455164015870395312627872751710101963600822928450483758733525271473307634912109931157923902489327160576728503448202140336817244882119945472081734103482164562570273473668632025522408140529947105935010715031425271054589540378200409022005141341175833124226530243298091536218267180675579145027819836325207982710275423210878015351529015273213472185504935652815775872253196460913049596377004663887631286496935327691951666900779245029963094398892640393522118838984307385194973349279136507689155660103637516307907831896903139507533873670363992109945572772848740947288795848726930603374766111181968975570377847939216874873903545700888636853916512462064066357115902571450623625334188534173786553654998551934721324044778008358350292604057921234107181637356108360517972631833846437125447397405232562682534803383943043813944568565984615832146044982252720663747058973516403700027870016663702442978160417507910835855324407492330435684453876138725000330725663565444427355194113651028548280075955912404138385057589456701208407896899877077328889801888518938225942870494287456777736323784683547543560124016542737755645574096080632279592523659788135773705806827577329578916570018077263741103896427406788042306641923852147001359043936855071576015998432981936374465226897189524493189211075334247898958607227006629168524724668897826891064246846622161696300523461695614022444017204389830382494206637474264060656607457137125272206686852708924483751663043391913764057877499898727121269876950898871673301633968342635729220012194898285252805437065705088013441367752226477219139327277304954998284036611753127984190383672608337161054814632186820764936719252790856767886910912817679896214212775202574734326502825074245537894138968656024426209163009604768536832139650579798631792997679304114504982307748784237033115877261481923697289632913876720478459779953386182721166794400013363763712330550596632743653113658493690648909610530634703009760518950209319739302230541029661879515335277549578121236017377548191289636145582023580906767222051633386352478188916679008676892926955758556553904155224549438159325566220985854884623644813810253621593835111594512529931578084989622987576712730340838054373348111991913287358521615915930108067491469158895540945765533279155696632093494986995894747240527340905596123027040979206077161463553305654910833622864489428023879956169091845039047454730779037183535656417899872793877306775681726662450572800944869408746143849029649465162622624212394180314730920876158949961206603760499232041552320397900771836539092096211116032321591381478875926936513413811838548906234262643495955271918957322658202045080275794587803814927226301795515973590446017491861381529814748583855779575429425855601875619675051145969706241895394860509654269630460071284260650358911781153732424041150898765523937648705366771449951874642636666666681935213313254213268607961506088533212752290442040462765768530261338350549880925644269754063388671870690935043766374782843070630966640477672271869646651155573112017441858476123637835570946227222302111330933768357912097089084832051784901746551853966600944031317274827463631562274711169482542352998100386824142467817809407656778639785864357491994027530531475423946954721887212158186545933609061269380353347334452922648736748237237497324177236459139532695589881054042858521670020111881258622328644652397602407583349976763429170583490327121618642997764654153032356514258651050818323901871465525371586260119065049396459704914504364967833660796413101163950784071144566084684182200768853769948065204542085767176268158513008763462946996456596594953094479025968000539745527166726498953032810513434556171386112602758874782997208339496841940714778699096241285570827326502535371709796473054942996478647845223695745640158835041594762890099933691710516724147515735989738322657493208259619163892338154945483105921462761895607717027665949824197104349921497186428693628043933357840339963956842861318396296050134012677087271100996405924726486092676133812176428169134404364634953461486203463159707037857606089585228050201459661143441889425527421526562173028212299514393716320244063279120766791209793826736535223050674883011829294300265358180952709226456902662360155275237164423167710545220292030406273604302295415906501883004050897492742856510583808000748672713486001041482100420993421050527403023214132245122624285761202913560036740054035239970433129627921942348473092501582149292271410251165474742467786406790005490105382417516405005293567130029638265642113225236578474937003268662600870803593884220091923120743210245838025801154868896993130963690296702157098183355466061999583874501503025778886944742004059061091887136557954943104157748521291683407236596504979324033395076897512976603793543598201348851076985847410340708066024395371307735651942470291459968711231032538614827420736407563657744545375762823312294877642708622813083842310858519481487502055812591486270744881023846240765018874349162030463668987046510870988421593143108112688868704713188920081821037157587562529850650553631303978162905540515842825407205096223461775545693971591184955960463639138526462021924121381285890188248877787853118651058708124513031088848349383191684624345634869246593598590777188005442899257532867164801814133089879284372523880773631842556797621366167034887179599230194378374753833797840312415404255810965151780864155517822092655387388825217721351608583701627567431882804324146990144062627127892588837772688865562894729188403323590242201587976308874395177494385346075690956498816502656684269587357485520692038759354676318428990377938513009504367025483711678493319293923537419184934710881138862233688630744698353435490881547361946234028785893576577201629511674900829457933749474704330671841515646639797602534860548566565091430020677698361429889428000481083579998179438799816454722723754035808799241279906701530160025441139879575711776288105791043629416346845775855898466927242046304936658724988734891666856955729583720390756122737499302223867754202815476927694733240839113639314815472464710318502347958656703289764343531211941666395911252102660694578369239847192525101516818496473662734498142409622136369573611318893933346923977809950793002412284266543642703796223701023601751052379325810823906838574039365106406793235254343550622804163219687698723068296282371523518138475478553241210693583320839044057231286830736950668361885717134668328652252518771616252797283466996625319156458642636270066294955955038050414364411064805585831623222009228818942322208296302608444098205808864897289723910534487483771527529812868797036482741315060910015611683890844966336596194644251824606955033127393732873904941384837344744087312996700858869315661491782831556867393403406366087652820291543642011091003786740699393308996890208809420983406534870485306425374334582286082743632983807890364689096754096872655569807696519191336240413558655417926551198222039873366114551076490384105160875868650383750571976010224543496173162959437852155891100923774311149500011862557589161203860470439090343507996999085887441582776442807679587746888421049234912157708715230124186995144362478885310528743823964506756314294216617123709940401088879645089383608876591265632109095871019233562004913726089541369574932762801427067199387465902261015080721743386311967327585915107997351890823825721850174300861501258077817372247428195710662280321546188475727008120887476861607082586202865699849161850663755854768420948590856758828946755780750529797936650284193564231794661003667684516262832969283421141619584142792210190823895771319742087088671533234259815207652005534537356631407433883620427481785625372285081417857292919710495369333860294764846556112007594761988475815805487020382438722740363580735414705550410933577983885399105483490554426207533926684404156543987301998252606546719402609232463493089647041689888419034168987033174330017162869585314955428756154471645776706937988326270840736762526409459906622216174578347354325568380296178346332310546159388311225204151253807702002709563080710029556469178889150094944575351898988647515293177005118820524997150597677983889352945252579734962810195383972896659402413977140473508199249222655591467198372702649598141547547261266786023891214424907033655383092765367531671628983920989316610458800566171803474791768467413424620352614102946795855015493527036257084828970384407452443718273890915517778676416926548460306315526120117610343274140427052985622963105847121890399564453255530350577931596950001238413832990536247784180069314103447917606164852308265250060421579491160679543311744550775676065979241918678540500420630854252532622311617004200519919259628277389796432464310540826663523785824336529034963222262047448852791994814185565764110275841076869795925424431365660040983874079035440828920118367262196566633771486732016501920105820758308214886859346669543463605642440582122056208350437290831762985689401876000524134610160297616362315651528124150812116847044311010307087038199901656132691438778962123119477697848936116822184027550740620956819974174187890760427149471841496570538075318354961187392091029960046957439769654466039197488916100287621034046281888922161953393635366358174998954258053526445718210960189212770337852820872950812443109933618832377360440710710555034501749652359916738444010750281054260945329699602150230137697767085268392323654827258759555839165673379889026702939929126417912353600331255399546471359997270243724010092737563091184281607886774031640919647210369615485406511005098062408697896571549994883999726320735899573119417862473718991095807880777932020136873975182281630014616341680744597505641197504425428133424615252707638409472858176798824807243125888887458737215362117303384218103310187086452209535781968370971869906471185168312685419165884094843133930257223064804746997609439552638314003228416226357558742587238920482880848745571880934809006933112573327968152294143393023002839751193389930525031291929228166640000024169559738816290760710092764735309603225398753374166760315144154373354357829657275408949452548167198056039128422805553900379247947689771578651635657826271629958025669841171738367762514029368726076786099681620772296905684831522369445691229446989576662262768965864301462041161019113001870944015697222737006862520523584789243065906208885918832892775210986180537375006945926938341816166215323660043684698851026397215862350655232336305778375656071299244264326942337805905633231497742403114834589586324057415277473177676852030338376242992866917114238449603632216782936586953704750351940001706106646769647371746497397443063401253834402491672699203387632941341536670399603658065426285344882456931601068257785949593450590723037180015462967293368354443144661403266409850584964157470285643191931086941462487296333222872703899443707249818375956565097716538248908631656871621319546373676760306712098691901239323161006046771822685950830743898070515354140095884578969604777886742380854453632171794375155365764121582625389721353112777890422238972104994065288278758660025322576331223252352954810859908689529005638036944342109396312282822299042185818687857609744767947592932803892263872982629605053616582210073561475348970934878556867815052602145394401914901388693890619091341354660691133135978178922199396842983664390887679531956225423664969132514270989943123719661881861847511757587222298759561620314858239222534241518782022373119882576626024072436737227212048604457443485833753304017994482932306550071211460418805332269037098202321510809230679073611846518678539671976976822589478809089582967395131413982458252657976322975344608159500494019804544661458609746736954415842770640624320967361311548509150772222194722833559847443383374211313185299551744641628617855817730921313996779138412958997391208965461271464244161858894833959310596444038241014591515541584275468365241018068347812964899839311438606365711486152230235826780749598795982337718480331205404253935353711251732058532755605661507993821325887681155570813146759696296610480604705070274639353247798914746221151351494273944086735951106013027481221559122363652466574694396097519599759979360944054944007491694804416120642405298227731496475540419835782384167321798340248042940780886907487032416802064516432764482051702903181323720951548033986401556927837861091218787218427912059530481450568687893421487476370660006134021504822864606612716277192135671280528374316677002029433605062613425935390129107366396327004914718147445091161891458074730680515152775808055173194828158334601261130532233203869088769953895402993507269301688770991726425358468390828479902986356881168647672473152063872168328944402964991040497392572984832092862325913058849900850690358213170541979611422708163565640745415824689429262323234958992944903084406672154111610423677330055768080285540876268146509610308404990345180079140309331178817481404837349680885437350345578900676151458847376628780904905440520322028726949769844127492639249790904700772283303824887773086125475539265568055579914310917401335701616158787299064424060545392775714018438015222164930869536735450145546401399006688974626428734194682903661167134530481910840475637393138733105476405297602783391999362909777945877029409116953391653774273208645137513305390112637552095281315534555746528224971864576371457511889335907792250115379132490950208592583529316509660184035549094764927816905530308062903967642962496087672091571794325253041500085323252747076492618913058635124830619524534642564408735260342922717536774820906521559984210497112753900402713215559995001189416804922728780957675489345872727816125459952669235784908570911722153611699384882311132611457155440434759219905338045683097513119715573641250530850006269536870304641931237394249134882314255904674783700668691912697632766618436373549418295548739524161376146113838629247260466232238755849783271068603591142433770802043360307986713161511645648501409649029574124986354045771681823379618211670139672597030541070292496000982903971483736978984443911452552698945413616020865326318710003352079749930740174162259598232209090405217470628699547099948936030488866140933602355568281541089963230269825362398419289287133250843018773556682710790334804572160755553309595260826342359270891859903020350863310160208026470542773786854998360940864190460954019652075181670133020794352039699691654162995885153241131459959246470044475165832496619170232491516360560559982541753099411822716133899416142902998726492642900348192649342697755189020043409422796261777157374515547159220159042429958510436866626216813459682437282151945189767235735802420264301449874379735574277521494264168140919154995409450732182265184228136844267153599106230068748389283745381271588811249359102455033609466453353154958674419622119097478867453620566392901924486356259515364969957114488298279154117748008937404579836303847942671131070223047332924609519882353135694796522622361291075246173070050541164234120831565908235196261027952618644613070718418086358266100886918587088929183044580605868245058792147665656257412654951964269852804830678939856378824177106993632995581406134950849728574447158234384125322440389195427172165939185371704967146772505271345904739525401617036839439074303627500275212692713877732935963672895951829913673818366457433475721865043283052261160411607334533619999896490117308958272334006274010685667226896674877471580015208039595765308418215840843500713742757669336300844083809614725754401772404249585749149780283359864694786904340440196996558111803915920710854672689623262154415968828305533802988834496476826957980011672826010007002740094156547265322704247498419979024096095601019654866155182450371999573623837100036399766979443424220637625700690761349074304195215516901395249484658398978868288300492648062595224057376022331213539452632618642337012426398122714375080437486843840558184098554794354792289882341110318000514935811426708096454943098568167393548234139115835328831725672377893008359414183648567770391687907758477210602335901709411545531914517753963899351373262528927310857474988000702317868682640062363502401637273384774085113943905635050951484414931809034358522150920067977279556543157152639504033817993958315967755681892825200727094341395316138637463121668017946176211753838603292683697041911370627759103074441072470946699474385364358083572896288727000400737589505486226956745551345356980098559458421421656643224354627373413575577795896798687774342356436719085036115314272686061434548845685242838256871059385501141338063917820338499565128383137856156235680200619539592457773320808152863854900739498348725384382797571525990602980363172031859980339107748017999252456863289840508677389655503581144439877383961431562505110352051472541691211607952263483306217113296506207878153013572371577874677745356088388341680141382951584248959489117388155060485600678119306638526266818452093101494846900393350991898028464497818852368490044401388388971726550452146349174159758096077182413372277065556846576329280465160738334148634014680815989798621895614781414779328663413499556123458562562101928228644477311232351392906495398402669276255878958343074534787315231001119785734876291188063132698028774912705478585026557396723622141047173730180487200911659113329469882826506811233297679630613091835399342535119256713203059922077600539505160237567082266144898061851754925419703713003742351458181265172299430282690985577440670288570809476662426758963228668149695274126635529700627112361608369462396621958726891912939382550536488377793793479516842608899282151857467856464607923605790734493095196295558843467936741895041696037421721036889790796823673032509803799491814428841530344366491939863423766621849531842451695822492949789647701428333864346854140474111228370446544945172237999773330682432267397917902709938129358623966739702550792147963628562195011408859803370436082915143478289458573357106028995919619299286932351237582014976856318059756904581531982390838778719310156019413357294476624883362567852350053961897888914745366672157063098853247293418405787242426813625586038215820166901840347403255168619305914495673881008233490724274185690448903962470478699867360134653174463146678596016400351905492326354401085445346464354693589390387776736124113753347143038493932152995371892485629740195397272798332672658748712254754752754520856746655343214893173825495499016921828541910284720245259942582742781253176877184353267277352939939840149468117549453596090190337109479464286545901125084200927584895034151539770695686408515006714513313705992977122678608585412020239744545906100728603916426595466546304408130951456181372135957362679041535430170625997438414733976695256655280264834954209185570614474402637139036745920719034228014689404333462633553788210532757584722661209950686782185484763337196294999448246735757575991168461304193742589016290115722448452323796019642430526871822994217067312398026628387283321451749375486933024532032254781879920622652929168353515214661909061540135577895893613935596499001808265770240544608439613137743191849973132022519819977166548522184618640055570323172467685509987897932700424785805717936500638868973396532275190905347669420768717827168667781087838861864139275749786152366869782419389535136359317637084221421458241156543265002662533085101260315150906663434881850598501715786690769262025253125126258628587092659951076322934279889933177391871321725209631048669845272807654068877327336769506376571147422701811725370482509896221222141412499096142977599840937583387146964681634961284657280596158338369497931720469382533735636795486282766483133685762068219557097507173434308510476963548086764640826328333327950928993546398894573635941523637075696618814814460619023676264389107944652382955027570863735198400294726672653005497208672290496063332051464555527143486836110469156773539627956310461796845648622377576010413281842559709456623605885402646161150392063810111551128798804454869148180965672317754254600643675993365494207932156052634186187734864679431525160735550174598311432054521427056450189999076346181585897784447890635264395975558906453809934282035120212666786383658085896809206695537710543916387403749294550242347763505181399715946420353647787751712783447144012446469628558145431501290794969000923660041823079638347811529694451951237261954632489466812653205057957168292049291088678564681938672015472455065140025214052363320623716556478457232569366734409998478734677443914584552751598329759047596126787658527226911080987846375907519656223499784799187549756472554277328441891196118081920309291501907733116134841702004866689710929846888510012790948417053476736564915163038058296865219877104956789310659624093178630294430808933578004529444666064123601265954516640889562362260010127959636207034462931448929390859594049512880056654637604832386921991530261606864235322356863939520987935347738526752428877924811449339823675052784931924865518067893992226819927230813668527838379799996036909588840982515977324950765250425895788427234836589232405084043820801004186465554212858499581504635963443512729269222892867428220248750326252455649432575100038204647599634148832966045326920467125247790547158282966103021372307129891820079127378378561153057068106057453040536812901465486894018936804607498112323497367517009225224137660932707344361372174881144775392383868569546720455125909782546410606784151650708102567590016223774069392545788495469897438494546931396489043972734110334829821088537929579101126518824224415213854830615667826918992887284416651488710409539212061233452510428319192698257172911119452247630828230731109153047650093868199243124494573105626719148688936674252730048236217659206611446068675174530689888735980896677503229051044214501428593038621082500046671273484031273636790172853745512319064797732684172764674647386153465837468986293904055736920850932812085245623789120004823715751943242759623556425825195893886846518482611178852983142634490108368487008505107516902703934381022184020524986055995160825406917762760341705653183418868732793050473926744523214871671593263338751733820171861608040011825141610239651718961840031858555505515573075760720305523633583222320027599971336308203706617127530680588471192553688268022184493482661261712388868805019763336572042773552240054126514002746280356920637134279120093764981797606925825436257541879153204585822468819465949678857792966605997622623690315669810368240085660666948449115014321068080571678823078128905086937043959842469832084949905172882405736618689289940411978424158747357858930735096003713314561386325277438475136362622151542677471571683263115219432675820380453931365765658784656540484047880538856917427550019488616013678407073538018927913976182842204697700437623614187072273083344582902102116477156270911695501828299310845259171483478655199874507358101936226745113083667231191779070992304562016463589052413268597062817238186316998451752248282742207252030858163335153896388160825234397141405629520810346597004280034124850702342013515616628119242282430265866008276013070286263242854730915927439780367224193472448718145205103310659984650155426164914014723187619789259531468906431618942305022472056345916771041963932092545374740324528838598446232783242326825530802361169113292402229197842241562702397564016121608392243983195337490467411711330225932860100172848245606534532252182685361346836502441235252354938389079944308803193381231621661100950870802962833351325994104562125897484267398523578171634424114404375918546278196626570911790656726441261621005301273592446003448571798431997545285338397469217034826342207582737705634281393248687615420401143771604699097929750603296681895592008005336177462772001357767885493553747941427328391139188714464593020972363502439652219168560373932378734554122474652130601846768888934914462595800515604046284722628887739224748920887602656010451198554434228708014296098439808072191808768158840866296335134097357208863966407011852948181497777612201045676795664136577863830913238961084312817997246366808993293194988352479785926619455586861147598466490782776288821174534147356954215379917402139086874801226191342179867701053499135179227091740297638690818513420851810239634756461281086210361643852204098497192051519184797086879489412079197391090436528584995025490262007670399599995903645610157407561505662991025385633454751120897525782665310206694651418736369490525949714421830264963778126844435127079657828794217060320378075263670477357889775185947729689652397819427851931154193147491547935212332418922150089178331769243525754627375510907092720009660616640335952988486128034809014989229547211969677383305821654153995291046078880850416331273873249958049719548201044241154716746625309560357617955901397482832590880352960620615902634837917306817173671579110993026758938138664660403448130028845089081141959078720282156071144315630614980145492221258669085468327240800850669573271236091924508151583484529676982022941267021852550745460144487020828048591068175218073189287032454861145617896853240978815747103771012156274404713890542981372524919211208135785071136796163842724741955683480867898282730436525042181270404731395396297738548706220892016883738453543237118933499608729486445128545632357279201847002252929231614912037350741149654677822869268017660159678433203636102898459520886855864895481903746215017631961318926610362477910835206197567697985868565025210628531372697916786345184753791186797921854255127563514828083636882835961777305643867574779146791519509098266939380034145732829657679892298027205261264585667862453715709920217892230366012186567139402499589095319278513887336545048660602678222602638376541602904221116946475583688790157227643464592529743119140964464472270117946170290031153027102075022437500680205098565527974924243755242439894732497963016678915944092370765658875239121387483599113484880421562173528172448780041221560519992927184977081887554165076818892371756659118417144687874066064080845128140046807304316549777681611178181398741500513495950911677408770964205130967520891045568703823898759312344704138132225833981433234584750087370948362062263542655293697499130211519707936618264638778371279652980562946314400586157514969339666574167040380656662851028074193959163246434328352358249745714470401972164556296853372907375097564915492012298796499446996352013699993489281707168241844462720410740115878766147141741810334247994896674765179524777972337940454435746850990977378287346994769529420312812995942206965306607940944959624586831543568045324475128024208685000348783654487980974113973678413066887509547184874382220484284580104514120559911211670330602836212621063944257717901839202132617790128413705230818092310469914168905092354418231938904123960918353075614018616306818560826551061863274062075768127244182009833680572599703858038705777647740230859190045838517433160078338046127092968697752703504581990570577864117732316969898936149287108359752095664663033141024924447658644652306415015380299985954500798882531665016301735982220425570006987720392734748570462240987631352368998553985531870349257229587202788968883650293522121129475646777815054629908689106933877673050512633114742209812410647282950079645806322528737334975517166609931744750541042085757432349146598612721163969135150032402818304828671686407017971804198572024271414926216428297109042778809800852284406466958547727483764530934835492145915412683234557887779982706155954332016817808927025592514295992981197170131319479334485759613249048178253014937145270236178410984030267915710288929587572975172690593492985827703676628223114472544765287780290175216418191478221461020309439013492810189657686755513312946337962023862323393127780676849561442607669884807709771975836332930548575075829272879788670324950677552283295224897430241885871765111732301725158638088949639137151070065444572678085943512217934835561707750781156975219377156456837335274696074581137486411673833160493824361384701503174134194876410017717557315977819360291038609426329218006775217302716654759640953335750774055818644930995034569523671511323327751314883028454201592221002221163699369300680722482550873507429019209304495955593691779747002900050783680939847935422398451252093689379475331127910391755647477554686978379859124636506512192862554793218519813173010010766668770809076732715825650389477578889268518508346015924616690715247529145643209946299476398800052468067789679655545047853250227534059172713930914992147474120911720633006263825767214177815892282111168286507076234247819956249323262755329328021395162882334450056385133879296422875708308215157140845214036899926669637368976229355724632292896728451784097638601844488791502359067508046183221342318027240388961155989306819033129547673383607537543129319563311202650545904495812116700148701074567314228840882452603425536436885701970982076457153302071134404030962497324710785019691356581748852875993196751586556201918900035090704549396924708925882973282919874352411759384532448663560362320601256436095600406117097304382626140283779626468343451027215284420267716313564702139833080097518742278137579580819966045532110671918020494490484626559559616149744324918634145090857878236493096960784923887181455488110259259457144468356195746297264411626778058210774265859193273668267189580503461800923234488128831321998319505516989627095864316074810278197069197401381712939249395922622539276505519818256073411459049284523132873537305171066511775247686101931586982506495688636871533505749238573065966211048629225750627220993916790534877019811513139207547930634031109618430603164678056716018478663777060262739152408716581914315831880702245750745693063226031394109027963048466614532551465404692889670129715220524987373933975842978328759319462594665354505761021559149420941846475823079983650603883659067570069677798842839935760789626633898396995791745223336151065096622879327253298244039186199138048232071505254112781810206287473744993897847866866986950936641062937513093361672227955865776863939803076767669315086384413601300894711799294411583155940425998592744159649750250200177089048408730417942392928168265889444546741617794059232637590311129989700984566466804512333610539416644484815076387357050238924129216253940410582843587120188520396231137195986853571705728619944971899170982302698860149872570856355703146233211014508132157645958678472513185292865222119715075022171162381449650257823357731845207636470241025049900754441275534455897381598068463536176890246215171496531280164295163681116855887751822571137757392029992952031902726447221461461131385430899260600190504932740848582286484099032325162934692581054355471541253307140014824835183113810492383531133770587145817571036652763234219115571302130136187588082194081590088916905451095271291725811096146056062986936058329228489815168875375242733141612139610080414756708093048631092476575157162400315443582767874541176636343040094177284740514815012369104326188712576451795999824290380566023889593232020893715932730797967066822697163679557610103951257220637255817896054597904950594832892764607139574818294607981547992407667472490540299084029527609416361662326075896371748307318532197086861515120324965148560777273887441152607493685004226032041548634253411709440692108968977631832569000250845992117476357387015655782475348857680624626479762216695101951983783865180157653779890308422136318828642634883546723460618343911346540737281974112257217656493910760921137556462305110471349707467325240256116434338059848918064948724119913273959281635733604564654932369429133461572534176133270179085901311541814851920695966912308507212386040186876467580654345501635937687869123777780024708400953798845848903208462319083682162870039641744464696296905014840637667523254730029544499680008069256361570737924047733041480241802694663473924664872549379547639080194598728171414659560227253243020044014874133279724599405110740189718116355718336296872157149841613243840291912557154126269361610576194640653648046171394037022318364556014332439833418131067278199661632891259904099080046561389040803595492080972444569494933113387519020110081567258784511646730707926044424598552315309176568589157847376213737156551286746910024413408557736237972677229705349094051238663799032844391894475999430222176244691626147188019709701522496146887172760171111814475654277923005443229244650287156213185796952012777110023492688108138785872836093684739163223108172583629682387512356057807378822163107657689584984235871315980144029947444941696666895120114621949183271473465568014527890420165645948576704236026929964624194907171601895183511634756427365714784249056076069019169188201717579355223701645064994889588056324955552835389139984494244671692256204889958164085069479239634717440832715045440359008727796408654349426219175369445547225962211530836975249979732078229061484287807054848148220932713900725010227587828494326724107228021269850227323968974110026597771673081492984619215013973998574467182736417862250735651911222235973495162550714807318683866583917885985714279163116114797048139052238769736248960848247397224327105755569541512830602488602918123029358840522723447032850480474569224607674418476683004668582392559220006906669130379319244105061896666822213207535113660782302046212113016422596923250383601840633247952450736616339041456120486599778591304094589525663526912866879338529399233964373097049543965189412755164089221502548999231649627535660986171485672422234345893014801529559208783128334287402716351993997613502211151746959297658811171131051732561675071998467802603776272348222274561791833311993059496128245793072245479941290192898440961477568963395915456559255448695017669144066393917784914959624689818167244138342261458040131218811114475735527128595747767453891976929190708065800130439579962416322630184369467233840091193033179962889675998129751033728739889536520212702080816793400922616762949379756088294139125882130963592139394711642775601073367127026189468951788236217667929441499593707086558551191500926091745185798166879511396448941176644155318180814749416484490840546418880228752693878387673608438142551349511610332315109152932396495974135096788458668330779927731136862155462499992948749075208444898287461421017752809486622761302871975598308803181696906039335113242304271051420324210860830173197616848526727441060074142244700868494679587313048145369085302859081111394440776932645665234364928194204404207151907187800501860851815681880437613938817716703350086470335351115196192645024106126140059768622523846494452484086046122756251729117026073440171462101354733442692603145212227679511429297076556427058481551620834241470399091385613736224657138435631583173825553405572844685056613268484420111949137125419189224779410123328405154395750175564314947207319017408845350784757198574385538894320758501778549081933429442860088086164968385449912061383798694561640640457731483201094490928209985848461023684438105706202798963589256223313169852659531124925916521268068514452013299648052027658738746524992302931087128198344637002027403170282846162368236756948822552146717164635026465249693966691248036911864007631736456304161696898443862347719769023432552444596931798720388825728569213388047645139009092776992319945130530858612167281515866497802209165980126323036604067335760031570948321093801027024275731573887305644111691326064112527472834608367243962735850321135288563608825632160487775495412911495029022066412268221863960250496395008534634003043105023303078261184627534859753537688535170357585510073801536670566676103772020994564666763811026827381114343947117534707175421149371070587811630868306966316979826175912758540557306494465823422235646369733770120929012881309472182127568340016038204929086732570858093185666882486476733653079225631377508650029633421763077310869362648232027205851219656359102600514034070648592007064168051470163732127026976647989980869434478853938553946296696052460726977026553005551648606298365455942455164219783381250508501095005616742238859551106016938316591359875591081746983169969603497165184065892275343630976213949429339099493696993430811527340562054928730360596231772423167033890079349036828608616492948985648659169991559141128455060577463962356746002206111057009181384759256606451010070752126717837416196374296287619435876514374205324941396213015728243965032622054405513849123721107251672313896037971316374845024023528898755779047215949537836931747879072371102584500398202542664824734681015483318201114321735573059192906709730144300982890624406838067881761127029740974383665165598998356873684965408620771489815210005200038616852811367582695290004601714674084562909098979359607097599227553599217432432617929556452599062524853956198179845993136765983994395162559811324801068274663267087239536664128144502804597458560733207296101408015366058541277582841118539067246465403434564615201101986298759432925406409108944197910514007239844298039378012683814480769398865324410685569073013025090416545160057487689497689296725942307862310280718424021822504542650945108479508510771314049558202936400108841828727574940009547784262391623647271135219828719506601552978202455323742112323938434433657365041819571689307208929048827359409924614324075682611634812989258666471285630836406737230692960450465343051566530657266772877861618928689926284810693080623730508980316678215774200180690747281920666013983852072946928137837003267777488295991140741499332969766260375576697588252550706029484045211023079705534485179624633881225753008210971478829750404922719957328691194627434621411978912470590433881947288095235539773421029193837833267718300510539311135669285042016270399848185410222946729921769020819114623499815868420223451306069376990149773882638393639169583762234510708465705464962910102957493196877476661996498616756822678573618675186242695640004139382013309226385459524692202034712884978739026818042011200941629625919082201615882480332009098922753425083483522521950963739571350265207676463529101427387148550098154876480573877822765065729917158898156966743853235726767792699217680977567442754412876497459562311456026555480694933769101655901143698438474537925873737992180799524160128017801674171910095415071441971872601873690611363081958365377853423612046549559966500869442443059939573101253516821024621797583054266430273477602072570427277663879662711958811917484216243041682583580279633638104536782707481479486069842693544822368049403326392243255773584399047772297336551752650623404513505988867448700773482555310099164499812444949500516469418298457831670947311118010963221312450825398294014899204081876993722440969839510188427534975750780859711265107884480523107549489955064671312031887768073905539243002245549096798127925439704916311741567589191953435815761555799154782106229538760475308079348792760675607626868272005851557329386320248649308709238897239456646782210879234079359513802442705241461913076533141315959639442530006773825580185543835808892006197628955843460799188161836878916401633688803002201967707617670190020947961437412416315449983541210794175090264887027804192273484071680777052524471571142546844809441609262662764710352280078858684288540649745332797110988043252597134067524689888116697485209864252255204769968727400566637110968323685054462687176722165512126897045508393021427092575287935820792621521026776767031875155913273206949379695351555856464842121887389226146903302256391330134017457880051432537786764459827896181547629065149653827838864442014039013795091692820861215853109078604368361430411829554065591063156346904184746691438482157192086285919885640886363235810773441267436792311374292271614815513684444984074311314882116044749643366262237128256380938410445257447590498657011283782307601946985213827068591378206955698228617902086943164601824107889662031321415376489184503966136907362811379407800653533852185631452967444570034197217236491078959780213062528175487966129246681953860250595177117601242222861895594676828040030484755832238040203446838154410598541277112016932806881936013868724393265424086838867862407353344598569522088704504081497145578561201361585064390184039140694168030399040458983874383908379265997419855230248720953203121627521932205206595969882225074288722648978068804180527931881585601175263873280452674038485044616105774881427815635977138998229445347056784136718789748172954347248296513078291232954970635744197681371451791956974346896611120195067273637505726502982680520514357780767597640997977911543197753497475444445964679027782452880095351327864825622149066178431534408686074651301387209820390293375470456540696544693486664830558830063744863190515569528469206545878165453237856947159120985611420306799622723533644303715563381891389174415493666177796702157186907932619864322519420158539399092485613023107091375986679506355276317817113292450849542256512978296150174354714908651499518526348978182505817998520214915816214101353771232313373135396315679761734433944865280869477937804207018514327009390062045725036125059739379483606422615213438187937093635549462527797744075977609188272012111646736088025914992612052720620940761051231119159890871534341320438053760402244916527864405721125074475847072410452353056225496631834078668801698988833991675337985146786294848298907731174418339393088437167821243928811906835224459368853096083463777427281848770075788081491611168571512595961565061844360838467845057323070515699540028614672134884815236203527674581451948548334592246658989442060251416323888056267298522015176040241289169066141110703315354259762365011474702004943109386940183835162943443183208644654208355533760930458751835541253920453781776239353279020818027753102814860582891409472079863705152769193284801181696257910351302892935610680911225906006670730234877220928734024362700779034712182275233217963169430023156172917624711262458434124444235281276045194224078978271197422972658675166128305651895493896803357184074920082742720569942334852888022244151519583271425571870845485652325946606012150237407556423648966088142789465441231883548553138775056733689582566230398431430200100132207824571887715673547435229158180673121850750009469689874586160231367680047125213039651333922086529682792735672350539562848225369700695262163736333183962292791384518048133613462253113126301265525546252716128530492032106420617421748414215964137987375838933078723460907985172130083391403267276404234259689141568135994769092401855130764123309016648733473714653979722878944548680430966445417921240349052685400536399823094595257427773758342654897847181702740610865497807431893275461066754508837834185966734648421475821990829146812064492551739746896788182839115219163897256136623073973134168314020228502278287210299666558331006187477093108673287791930842667419368558876473570958088669679842119558047938859487422285181747748267247997276807714743765038074624974865144193886737357246995435479980388285057829729691391880682548740748041959887920962058776161114033212514962569760377989379912151410509425030841215707510273406537487807470093724769868666618672843400411300249461093444877875116796313418321670276622139457605255006423779251418445229413810174978380222721021456542411415826062203835640210239083502747690160262459790941819367740362623270752128517348516631508790593892641926551094054312818843354892972250911367500605030682409093949108907117080560474088021012555237938677242795584401042679126810864422816936348558312365312750947714441440670383027639091722527410499609932197652661137913971302226882877857068105994680415790820457386117494236600615426437680745029154854516274193673876599856992869463320643472723838731450839967923875597326627350515201707654838450502180002754910538164593766622938307254942002603948540542113293261558505494678670917053817628320583767504440223794839868576712598365184995334876107446286499220094669855623750013599739570298422268945081443144923075177005220299074954627574466102863256831603163034367966482236768446826534901851806907957693514989133174202774288800657439739192507792630582415142571374202220274679324004820432114244626064850878554742171123409770122385386344589679574281565434179431009236699549617456577313975081854985956301315822209668896060008897042847243025741277212867234065971870607285088140002144743428446330548398430514268654805782361611636847184804018295514805318514479802834325277181828772110633760973348908660570782816458054134550607478475342718855865133359260449674480805505101191440731333619390872967294772950128962948327346392780691776330098800702476154258773678132201419699095839009367060280567728244830060906203160903605010555382946002924652545645709553415272881894013040892707153307715184441496641516062860623257213679335212468922265390428989718994701614573502782787372848938792490289086823082839764639668420536028256466960807375484879121078388501384082089845960839987436292463519832444629002791079956845699871597780477690188436829089009714261448111023580228842433478445516292267451052486721429530618372263640492440550950171964510663036682731409645702333878323727076302392938859508977428904450900540487710231784986247463321720896635027151423547928172644149407666724587088227350932819324773865811071413661121086392537441784360437665721677051866044147898631224818778231264127837412669570503566439066828880914199707908929641903012839333392222478027728273473352912546584388019835383954695395238071862587730467503131029522436310922570658240418717634220606930565354541531816463188734472918124853804578181843589391868671091415771222185988227582426985172375464067888991288635944870647886508658949918517769987508070215736539032168324506076104359981375787088205327837206145170106453998531813155484611026523172022251150959645156659000720053667747346543701576179015679452264389209827411458884075274473513893821316146028222189408419948762637774354992250978581284761400405099822458668603489779489095506801172856346302648887698953875990042174436671295109431699408016393507570208058039803808111837194732789461686562532831584361656075249887286681614748242008934780589410936667869374001755123943681527226481285265519688781785049821398268731878837667608608315287930911264285990703702113180778244536045979367701715078355078322704319551292321345081492888122764141446861289143235957212043480290881471506395750634445307489876301867353738040605766605461012279837205176542543458777377775454598198420989379754894302593513285208509397523036844325857926365471995181392679222851805026713227416920626732192618671404358337457103710817261699903051668855526615998210217437487776502903720247670498120166876999502604057877916003466608314580587425446538967584991643400445930498495578828921090507422713274832858578771914400366645018948846049602346075800568780060385721285285058250250368286906899773262576041896711391249457284522635361606452710035341983741640019336600473846447570872278341590687345946912632629791179880269577981120269330587714333422405469217649539434465727935523998844416524412951154009311578697925614509363119932977884059987333200673754149434102737370970225464440781171925108987828362236845961363001644584857354540321573501300751023214675687767331865297130588165291544038015956790721434743375045391481269184411745380657260234242566203999877759501859693271351084564628250524389810223613463660516532327873828656862769622663104688561589812626247607622155844126269354541820263148994784014750440250620662910804129309041084384343704409326986685168283299709924163433854787977867183262589279212313642013691990109084522773993983848807219814754341992184432439447225229658150609697491797013567274227191959861131392340660232412691757666695468566585872221482780429646967351954938516125281951015927352017415847146691328047593551675651563863324923020261693957983187903004296796244071466104539645149690456157019436908523578039283426443028872372953052586177704424439375089802739893115819738058236439793810110734002771755459316035250765578353006691822828417774638126248513711434894958198928061148391699239666261367959289638708033477930287671331726698664255520343859903237139318701503725175607902686432843191359027194961869247422104681820135797721145643604072705809078975254583977222379680852340554560542129326337520765574923827819693930583714363237654502450128253007631431484743409506330726953917568349791786069892674748802141451180017708216848098213650487079109449348201481914879015959918536520661871455282510595768099397252940309856215472572966264176409646108782803929637839691473708234495386995702411214207096883475658853352422627258108707631147761747144427728655162544108567138725709468572337929750022849487511166276781262432690596957488425200540944107838710800898666980035337811499050724085703427224065925361228202429304696443196313838638136515601321449460005523008302066619719063109618818950647883176824469431326241149344438204718663148287913169499390238205076366565478390335436624111830907829786830117513219774529448646039059514006159380358969943551018515631955434457246694630664698556205147849826437228341962400342511890894083483481879165938155468190383092068830590478767486585232772785311542095750707350203021411658275859368909545883817309466841019388457514999887081086138476518706360939084285453742064205613614786412716191897430049359841730995421599113177489158872203950511241606895005769483033323506799117543652184686261063211900446354158820477777968099015995598158612176575735566298689619859842975396100157573057800030473554190158490058150815767877582535003876261506188681181965253444945407037268612664549107047647937574370166565015787714632006566281686313149718537862482974882012792362353897251622214818977146663705722597413683242212359483507519137514052907206845959371816888757650111558382897794284034206179701063180152591650656911504339396633507608799550810258540222045639531935165584089196012778272879704710115358475451828744271576971097090187070970847622522470915860582498254455618274749855654920556601793104292504753003426671900293870780000590120240440146741431824144317026386980922387296897058343851308892764161586058263387982138901409173707793510690548158590216210605887759422197519125950767525376113190923798411734240992946996492091222419034148265217133168523863220347733675277584881176791189896466876884901831467525227732861363795301850342357212568522276132138103748141539056087072761391470066551596806752415147049864404097556069374274728396116011054193609049091987307136828068166344391882259154304064675327920062403156420152081159099562188698950660283237459320696089642571584165480031516630832417558626702383559258510276016033885854586369560724567024728331477666945551344484584199211433401962461572877339978765306408241565350226025086078162807996341976173885811466611015411166289811880049311580067704182928908479394656193073332029826247672702763025470416902797163839158964225903633409971993559430301184404550131703726223593364254020370992176933928677031023682460506949525196350900552279375349016395039147288974340199344928931475334200539190539786042680054689731138738078897286573426035047784189432570179094349825084299005349566943789277914588160105775283420099406851072892495727639169068040937145643749250426788009292355064270127961440958197986337747851944916486095227320017228530975128650983705384553900585248143635335782025363702989908017580210073825712831527109930061256326189979912990219601964777707526799603700020147922922171729969753057930799537031574767662795990949750521935079895786976812980673850150050700659890528182783111724387205153828745933112485876754031563142549143785581415464195989343661573866849176073663247273711368799238358345955551574737467433895513679547576577871049691833968029424664273389760955372403904833563832671861580801759556463175782434776973590204559532165193953834763356254971871549025060524223757428357260299609314550872972257757084837088254085287489318926682328365050494370439662868542710745957865804665387889157668556395760792335090445539279705490683180000394278132449238386391895306723903865209090932425691688955983704229319888538706992184942279226097200065584126825303152252602518978383983292833977613979320959851063060033237269996803597675370886557460910804618173042550312030202855625674501433553656564951556019873075676253039745767292097416844289761632176584750952752880736253716123994613488153591990556259674321570272426603499116284509168998175136486362040421072011600662752612389954907724003911303645652198785240918265454198939811240980185729104914009766130873918899705649517832097097478044372057962699247686814510295221745570375509455188386436138371982391969636508908236515980465084656672070604949338688680213835620921555203208151045659589448841683364254880510872267872322028026272587138670304232616061011772365101795722283268353640186655132786289123033703892876258900606732307677064424118378209123613837955021984635999583381805585361205414113831428302688635131260014697762334239168414530710162133993726725948768664923889949889716234139569717259280802927522006053514224712990759239978838483618911085300810046993991012908893712833856085390929897292646556803251404438296504511228841565643532277701525328265580269586424129724700608783040429892686092964144475659544067253599315787257548533574279649188656686226955118505621124981913159366034872361177590073072199104646540919608022158179583554250304546134490727533137922772908424025934487425179884604307679966910974086512252419063402904556066765971691237766322180988596441699410467214913778164581127362530002179990503072600020911331443692709082881945759090413045711390458816504389208013731707966838194636446152044218959256960902975629915304846867691035890700454976912252144532900426918556340706203917946206015533408676744814675276917804320741252545133999288636123869795032691853072233513354574511372937456490225811268441445536779008858041158443165326365928743546460250936122283239579845489230984811940920367362463116326276613244036445491486011624054741093958091612377610854555567031966685213414592722890065668564284006413297888968080679660984922415894454258607363460534172591704624172131339568447208889140029791377679441351840457543179083115545024774632860389850678893195515711360352240712881338628177885368936558309348344676143504847560278857818006860306984288504755776333711830145447590504608519253247444116116590070949886156714039339897143008632703879070920640287891707610641281558758137571701281024809074039141410036626216305141720292226718320966608114962613746729152227930390097392937187005071175172604547673304831741494069802462711005556746935594660640000358644708849520929837610897938781058042953579403861062078993579821211691972060358416867156344232978985825806687141776705425719495083429234667469461204548916530485588675475246024178908233760375653291347783341746232360959604169690848554808885527783254447936602358257360672346003560704358753539697353627420353954345246603049805525722019129580368693798970842741566634349898555413405924985803568373362010454532659540490132036193124185044179531173967803770621258454051039603876784450102746376515749433088986873931391812347247842570743477926873879998373970784429416533614144758373068657448039183927395245963539291310424188285361073239033815906597040853335370127644035959133632195756217332656726919853847256219676415551832419587166131945095933074405649535541371914525001039612508118659678666269032003033131763341285197153889718002145411161562528308742879532394364619529646044684943144467677554134917857992017141038038513479419010020127186365004259116243466762611504135767300346339632044426377914142416510129327326574358084490552319265846988508401725893361273918792069928074872210273030969523128662224098239621711990935909126490284027267628495316423104871054672973739105576958144330814996893295826366141612006126216278869405596033944697726357455838637909077703526445772988210137839489353824310760293375631793074409317810990501997376559622309510377312325490674756580856754777780120419018332138703290554354373561682122183765484463954339042521068858413269371713684395154254646811832851232190834403704953855087650185741634466639816633185919889003429465521087879769988470758103250052851397630255286017014830120906430001534374827398884393400860520853300125485984348503375621288711154875773028185189958035957581494490486488668894535372717442053446937436769586296376400473547996154507134497647896886972092081897867497355808716364580682006761175384392462324591805998289806370591397063524267537951045688464361281712654057085633656255561357792062046313701348183522712129644961979618987693111567826904028614050114226682794331818542510291987468464439261533538043588196056491708166230349326787994015597497386711556640929038413866994901534510159485947402226235822422029163257951517483053539903429763536913770234351827890517028589134662281294460011922783887328988421852745498520512969727218649218512090939011003496806262494501761312070335742524940198102209685332641633307434916216800931513004875700417659731619649974437635148049499147815273640198083427199266679731858285368773750333846972618728531870359143968242487103675820273487079525475333160444066954324072101993767464592319161970005472470972661231174627426782360652811598839388444697503061786207799561842551408549575935641161705014681975508736831624600619686072531392210936562300551122319320337388731524160414163504446666872740803328569599479210299726348942073439055747757777246932253662945834980463483481612594667978996728367478942728032936541713026111359711765496624844542816153386173756616016865618342697210255130937571042249358632690199668109392346232175667000959541732460552802125263338586188296978837961233355842894691474606948513531770323969758139755621472313858161717411883806790802799781093288005984189096507714241110452493287708527598206974025069614563185756641026887690774901260842510671238855371255414830329010575564660598213351448883686491838522644701193697621320238562440864847142120028267877690308925387403835125441613931023227060433057712816873631964639088132350504154151710418707658799754290601969567577152704623300477327146634320510547549107535487142277574461204865415947573209432024782495416798862672095764348121999132355728156349667471115655059880909901619610660609134921999389401169694622010607301632474587158982809711456653826984324023893751372220420978543063607660917589701587831538829448911667150874479113151959297677991383376806166975457233426170017460173599890254586462296693682197053666401024396502804485402248148173551924110868501164951945711446213160644159504451368178482783261039024601848706271272977437630617662363708491740144073775688364618506920010497936477552559461389360118094596733167822456142456751561677865971415213034536939555290761311974787634346667196738111330038200428922179236262831140822634254438033123497919087117964488628870230334173347328812306381394992455881425180865672309004341038943423999815853038287453569289069998027214015885636912368068804397010687712525592891291609121267016900781376360413370045319763805479649035367080138771343233652285406889761023697631639586187802705066276040184542077266860657455390444953353399494468362161431387739934390669879516580657295613069813967158759760156006306667501540767193094237110719376774409913017686504801670717053372976610542473777045586727436814827796441669896214848474768733941130157005963219206998388115035084202660982595707454757280258876577462650818874800814370005589067863795201956722271759657697329965800971534419977414231042887043816408745694817822112820787001062492057314468300478261385792174022869338566435445387580615779962738893075936558378022589534313172400677118480869459146321618897199258099084449798447807282789414451891294092979398382159746432154109191093200327455373057982508818198103973963316299662526655676992874167355443143702960496617933191895522103790999408285142498595670125320697869382923281582327358265598244203897413209723621583067766387667557514835419936321399363066244175528244090919965173698629320261517569081657295684787631242394590872213178956861423167407349515216416072737714998771589890887956913526163488160936768259587038511961632639290170658904826977189592962052456422561517640560472883058552499626465629282603587578867845607051443857734395802150472310223120573833771654452930592289902876985319343557337988582548990696407678739654461564792362886097339961170202543860232833754683779644848621324939099109362768078604251118981643748889144665449400863763161466070473609427832260141543491338582671053706024251972988655902792821628631005191507745233472576911436703782459268241020243300012319155601803220748168540533823184114129988618975567294845540953747888960084329812972422323614801837329444825789912967446314570663089845210762511330135891597854710732238743034847355500704206886355224195017206130933859496382323804494788002779821558203890499278614165342695880570944746367469519065215900278348540304924815268379011386280355555494357997250426390178133000012175461034720855333263832431963513418998422845707477231977096714612510261184219643625032516501460900579649649152674739543515959096930072028478841529224446016294969012430288219453006212933085131296326721159649718643714465107875766878559188800958388507471964508809211433395122189294023549143411892930031405967053549866733588170076877609717182350634455866363136087488586973467706746287103730214049720601703068035048698594646934425015399760391442212777416498505987859447180378270576138324913871855597495629030265773289200215631685408275258629458347581298185201596052820471769762192648554549758764902590134456440667713928903580257010904241959778529969303060260265649300786471181920673983049782310541808116825199860931374543552125141818863962581986926438727702519115624497309899005107588102637462666442683372325729143360942026361863157605344391003470148836781258800910554718546052475582214795525559007348091004971066647358594846260597724073068444574306448325691563665573424811032321104901983818078031294508844201349224914081675025333255158996275594537243447884947810092625308957708368388136693729608409954779966720149376789669940495528990234476926419632141504991402124620472916642589142868735470221657864922507347720003465983318548324003048186048064328187340453272360356186552004116221435498619543402613141927240266891295121714149434301562046248337908177115691364178261892670964606025599867664601362248821400713059012875174603679045660085576911511102053559381101695692460100108543387368581858560991792264550403781601014450463649830629760614848304372598072981978838167882830548692217968586589610121223016329534508710099946720332985505623356747617264035363650633653484174631244500698500123334963371433678871119697274885956795267961622206953089366517654019946790763096709683045973171196300178271882493694905398742356274119102844161845061124206102668902671366842388495204418103237238692466885773945722557621790644254728636578513352425428992879754207524366345517375585116580983651747325368666963010361674255755677559755257982251957600275821676099763433990393187603553813090624092660200926037221302424271014227174951515364815918516820069828156537132157536206850330458302680598299507332035261870376106455983502948715804059770496683466615955085548206812124011803117863143889518512509143720525396666269043679827401651565496201554714542478451621788858481076347928978972996678567535341577122859618831420691268302993452861129850892725597349336162018931932872284627821937311932294218179551119849362195934503472602289915043086420577488667270268590683793877357933945625536971755097348299805596239657998266105135861979638953693113863607407750236994260694956230572479133254055204127300501022163325025518288335366680262351172310072126192553816558755276994774481392212519216136307866074469121568312431931340846959584825772828685452182164131362091732931659770525720320737924217487996240159204330492099391736397149964463872267129012475191678933231279026532342065766741528823147964883013713700690546559276884640273321884886200194657721592847123223820164251951583621078097669911100072456663685806590278382833430539547330609184810982693916794422687834040129708780794715560455913445797787688001838941110342922041420647909698090509635603624115710508674703052085766286816945122820564583608238579905079917379465010369196160660472336106256191503613183668121823926510956495260889160725171358534069675365397747075810806471173925984236523910716550136485059173180219089563303437313388028212406167513596601907522568281023625145652696354741514128899341785512374919989592935447416468846594204853507869945407338445611853978944968475897100002091612192094027570582033430751022737970636516382998855056690617502845981858642315647690927237518946017466964520485731426231819812242027301171934150065697599158549194316459215118008469937247917015574440844104253859806492948522703751868832218489624828253644818571353939053418967346315654918933703405254509286114970334380680084468715489953340878746046439911814028564953499328093992418192875863750327634538837585323755843995477402175414907347181663978138344462082781138183844387165580757590108024118139179861317554437427180979198812391811041468139520839112197056331745099441993830272517569745625387836963900611119718475989636936114872341207641332198136664660090189902902671659229181023719823835695914999347485807780282894545963689920745315217453082396115604160021417828298155748429182509830313514414261909443061756995263408780463399758194454621358807380276548563128027217115488758703638181988716768351146126458328236872449141306806147823869384446351540725542759037863869982107936620654654211594152277360387372589774269501748146177497068415477440142542649026818365624727813312892897496812079219826116133782251555037559700009586615679331647917949015884012342747432416713147409302962132204943520577928903188321531782626866285389221095090509288375724151544779509829391281201082638213860173868276136338767490966481404436152601968955044620607293014145763671705991773167490711437057473934769609434908303522522825820908928676041058128412644146640364788537902750856626566234250877729754072790503253741588554571708442509450314427794777681084897369646080017518342899228834245356996339464022713620232319921942329052160091401604166594301298791758973484435654048276679027794290125960163438140120999011066319246866898390093900204142426792128488251724912619629142949984945994204179639171452699353667322932502680542914989167599353514741474057111496395390927961082540492740928950630939104050965096355219278908019820342446510965207551150878508395561063656636097332036266932439594804080179487659570174475920920771342319818611507404390268684897001702987729419213853652966491765798232068283921915132409383615940472762778572004610705217491087802281965493748859444670747716424351992495676803167888523594507136622830196660308720104352240815848872705217378751687034495568042108856328111068823244101279736851735002340030789284255403951199046996807153406565086680880980757075273809186279674096762689004209916515668794113140638641268914781230880541372526355686681985123317202913008366134235394155054535125475999280582096365259120908308176584907783656608513049881370227032549233880431237819000072137695429713647294085417107487305569205511751510135274922993429506933226340747566277868600442154256570477749397792022140834995691740374799708983658079444157261867007270027447988145553378982946729825325387566984356883602643800941789925070744288493302716401717042259173177206678958372958955981298471501060007232565061603432268804120925786020243422251185123151157767802376329953596514171938254560305275581570931778844050387559624849004146699376640161920691038071789519551617918983113633965884975463159369874433764396235976756320291931763072433513506399504831689302232582590521058140131901027534471938407984833878700076486691190612285220282726742292883931717034984376859548077253127218579679060480269157716592993141004803827919371240288065754452426486340257991597726449829582144416213550268414652582718112555231396073838844175191045333304048666214079355836220406348873233373954488660920239702398152203236490794970151385690410715962640253325968943128171024877803473519359546457164926309499449507805125121693151655836549476835829732735652351943417536191243902235138553822476454141206808923075886242520385033118887665044411832516871413862034341465193751258246636060071233372821188460657844229146695342740005153632256071234155721688368558589685349810426347573478451280295444480491803559777663997212051700876306047348503307165828535599781681855972291003071621007031687388758618440025754745566543876243173420382743917131532248307383583051715398104748166296929811756330601850391256260950051284566909754188714333591965137219135254788433150289478142591395090171632835502986797875257228419720710519957004477257778874386092761611010027166139073765085608340024273954246006002264254995057715345934732493275612302552933077953932533111501876238780447007517047005481652255577100191441927848988318591852717287025675783705957379967247488694505382553257313608003521918131781833922965208762347676998224472760168596660026346220425237200934498679273528097266750625148748599309350903989414738998831453084283192761363908633627355255165749458945783610280877125279688108560954189908865331655178453054482107015265668676487411790913938831580366461729191837593941163248923308372246282041709516209895460579854815482526135559028351477296703238759296330682737767377187113453417611258911289489917124665751549107384912550016049571798964973634570715888137901727190731572116615197931530951053338611555998464791645626613331216607637043966198264085974799318251473271327430525082790785483302127622196726594137039746822204497056569476654778214962899983638291558713396545028547672416593257317838964805565368171302858034953078513919299025080814075650253315324661071365105414030493041147221512040643159777878233767078567637083708606746369384598985509882850558469116536465295772943548986879476210599970513753485081157105905094800372583698199813570447099480673461740154551450161365302748083965890284482096237410262410868216140546978909123122371161307952290825957200618209037885040882430811650769318280510300820092602387324640772540845300429896398580393701313762562069420963052968165209648380159090991678222913944475678719097640096355244973732024789631067766829816062933931807051577639392177173125048835953803976707081231732211067857920976881534987312872821252266175576631050394149102364358035989913073639112152033986989953601138197430049654248153458868316772615828420066095582456679689157891821740888999146866223149998961495768560759399004442706967823102602340218273912885603996830763571903583631289950071514213357814838230502022570038530502090626539013392900348480534074084960684275639330697944313378383695221614160178922641918295214362750531138844706820761228430883844929984785454553936131031173216341645089700282954270838495536016793821321957987242453312104016876968984443411691441436567311801542988951671018139602849060279579012466267045388291963656601364225397063297361022900697210904741337159502262384467966143184803813017290894740108224036518017719571097353245343820379475111299738315737429078404836853736278614041079200691602881962537611166105800289060966075559235978625435580530488495131681394512958930433490810868622631067300432017431845708341623713922920039306428771793124014816243356138192606555867708377726819116567619790207012326066775064876281087822978998856102111886970935462827343484068642919866494669156226170813212525534050559194136982998325746279742503473261471470977954297903390113419310848969876216808939037363891536952873573099366544301594400926306330185955929740688764698180245166204922128508685471029326382573145767888616858415573366037942047308862191316808851132073510955561735466853296759872699590211021339727056208811257868164905368932276608729430954622718439870478458300901898466640883756020308332760251490724157343285219906749453127295342459252126545128266532030626586882726247833845417699382657822219408465203675831324712777139653524281199496805660646334738522248563443402905107652333233334318008732464329762367139886217610057478264743296666611787777086834835291617750666446013607156202602519227513759801306367363442953499318534316636272391402766003934277582987406499087494863518783117051840890886978863964668478782095839825143828814466497900304569628219154632940431075612141583096876543872803336881371632920574498424413315563942982278482631613555923045287932385160870054356235969891601311315744292002590895194658661442036971234500260234322159679384732239857705645759418240344265096001089214407921991201086318087928344206023290424898067290997980577215963927087303728797796991477477666054879464848450167901533756218414656342132089773733022137586172608773345250698299767059159117468354146693889071252848605564512944685132808681408848732464316645046914457173990155109746212908802426100839235198151113896451370917679651633121731908827187977119353367603251443879507061419398740452252760416394224442188644283216943510372224502863455652588857796429596959354973084217434504181013792651192593089965995429620711691298381523031142477872420975080955092051698807857427095608995189793050121904260824251604187308484838905496281764147809612898437945151910077722435340247705301728798718252202358642134052773441364473600439397904303556857065038296553167044700552279520780595682183422674108961736232275868482285789516307919205839459724955454970975515190666028584311356042357265037035081355171858511117601749402633467731865781626951152311373300113802924113491978269872931308750799089573356699630738649261087763204371716021901738802262380025647099366047140073206677299149473224003512369080245399891239418633384534333173259532940429690378348095230456932185235108379265932226754495218851147966484637969091382455349090210910718567052808612829352087047946275942923029992192517424644941845613092105528089680121861842617232672609121384397784556162858886762926258005930183136022213126125635595246682271182603147846217912337319435274893005113609504287196729779069097613594545233328956221819107512488435325369993371832902848615351035977999401522291066291845916749409488107637056907499384355103004034177317035307687112661582536137921143970538967094296373951169248109906885001096506217182819116653267793291483805155079186871434686585409875516027911958567971160586718221547390859319664276773978802205833670765966875071433140083797553245893131816295327425611412279857733513433727539034638398646200878261397667015086187968440761327157482274238475970972526099041391898568365688031536441439836225780395729396816812988663980622221024645052001806588661188574854360889359585293222865150977091590418392498879215304190516901515815450908101864188901181736768391256883902067917234990075481051171449254439989384215177570168364818266794939313116444963119980979766618381323490758394245959194175847949996590740640341974261952134110055050470121325093866255237900874888132860126510977835401710913183607866497123685352514532878825398689736246006929668487490638069702976064696121683851194448505086909515895859621247385336622151794437367825930155766345865365066852325981655280043528184504120060952354574404704835553075112761330052406164777624650701254364421272371554050079977332772680051845231929900105470591767361803412398279940310058197968724212374373577509146940912053970144427266469513382254707187262336244261703979136302042633251324461327419046072153445802829862448847005054242384393483323457978048827272437912270765930577322398801487971186603827234084198763837493954764374895051875644314804979058495587536145837831868960549405946201359149284169890654262026645127892795265056774780452441164039158491911377216116447749294593854009842381252771138192240323744393910919940735392844673925709289002053242691016603611939177816558648151632848791751154525539792587556134742564941699433504731411516801774336567998981503838242237827689471259709221189703593548077599565272693180956927334666690209763274965354228766071927213325936337429718552015948326800461130265023958921482441533169652643767869034288660003441590831983336140389806097171145251962824144583635357442257180844483086938964558539908672580981234725564392103651868025159560213145778412566441649079395976104972604864658337768877120961286043488130204184696359119052735404493793297884203183319566047349430364427411885369966730031656258773617519496364777095490092013645818681783532115025021569578223680749164952560950574242340936312810054117058336512977377416308855941961780181543489848522431858670520698778973900516927624617209116879853177250634057740464609654419066691561749611293155805312154402190182216214430272301740065051601022692599561454145132970386547973946294597699021262596749634099028938809188636361799666279063692254340486286176800328576063957367967782035906967914426827609176982773232468907129528209446116163749404248666941353296448270219814344618712923349344521006850230889374556831138881053406857580903415444555241470018226134071171872967637157881252581766627022542155456546546037906733385528134502604680387283871744022276845338520288151069326029983980303875911976085906709696591100796415296792632089778863351043011035319046318862053896681750788473519365623799564186092416184095660929349757624126764094170076280474577653255480627768300149392264398557529369240768211114652795159021241841951415266702516895809778281787503583429044878796806994098210119488307617365029984445156455404446302070977855233996601885804545947582936334168458279366297971090390291169884101939613633219041513108856736896019271490653562384496737946119623649314853895910776915697945074059783099602885438400782245298248778514091302769807696322684503830548794210720572756365576528555057423055470309969369386660738659946968009924971918960900543838599108962118889042945415521107748401794810000582905189628642750030989175906930613588059616904279394089126937100873194269773933806074694027945234760526215817038832461073869988604442788894444854394806869212757377723888131751479721491938622768135845742393160320934686306757818878349765837867025801829203183013180202063317089007623267754196750226148213172698877000015888318550090868938874077858673878103478593287522900819021298617757923499436861581279923129560117004894589293788641753506988092338956422161123066846209531382776045099841532816214271948066598457745265098673365261102419379755879913699628612403330430567639059246997355277171878788498300549667606811457439476798747458761265569140232749899784409470567720090007603240697915976212862792524942102953162062320880592234585793087529459089225231799889725072741436581390061727890683181127611941706798279935674467246512426018175433900810070834675201788681591193046547494409419911183296137223048023262513319564093904482598122537913459839227748946769571962543128680703429817929808949431072787665399927347879601435027574042166775161014099925962463622636272033851970317645864704888816670788717490068276696029679810735384718741563926963183152179580907715823403989942851814042179684774000693761346390910069491129808054440047307266901596572871342704165211537572782214382422625810845164720843494406327924167231299579414534311012874311019863331658202050104435268507215803536140455406847492626587881049976405239743109876514585924334573887305747678852276782943816185465469045625232506715218170825639980631109815550475009171103417302774742013039194749517977244981857909994379896756884798833781731641522319483473107587303903756662680053423873454431969632271828341498588351685077358630024910733828415704192279683311730140205330302136819197591352900062976822221281402267446438675872224862235159084339592856385068774999647495880420325591495767544611654493137823193602648834028133366168766224091650323476397874925798075188816095269664283374889412822777071522024545390674206530535352805535515972579100903426783077492587333959336322948908174302360577352546895787886467353027492484047407634351344165403138849043153140068438425507654470133100580109694600281940240486286419483457311409407081267485621205143703133949950506489449803536692218313087347440907593098654334660072790931287147054963347807239077495142857303540804939489363189058805090051882208310131213711067644234802664053729114775742853775517965326499646916052555032488465352446626572987106452749095353845610309731721718282092614475789696196722330969151621915988085519987960882534452687200352229548703328359891679059320951347454497677188579268637904625922873537179288549435493333378583850693088961701228126943596256672465610057161054968919017664256539525080411721158216615124318682759571674269934106433980991191882376123934440241936619441539915521955271782963348508778346953466029926570291016654202242212176326704570589381928720715431061127751260436859293192156490505385130096500005514739830583125504971561754674618528546460609144144242658555641905877305095236959287922345589145556790957217179886471681076556778146080616301394103273613565831412597327160551019179265794760602718904721451027190385536358900842965328403965833837679602135669090716784310945728822634152078001465154981555987585592052183432012839288842010642381142148863029858001154429059126918938100052769678093287120250064666129658850113646382148314259790964803611307409495497731922668658351448536648306834353571277105451806107621100616204394928665901523537949270340966030941126073157400366801881020141898602249653155846433777060170787227663407876683457445115362882970659902431783406792160057095348398044283323276612878464687700924588217370183016825295836352094831468864321387150858337784914123906333079327750691824269540198772914380090319371360489293055383356608906313949256755757209273654006903868203652650446348983434472950653163673146178995463206466648302070044835047832481877224591256570448636700641596473537568161694300051223271517857715194222503223119477847278609360150733853043035382361597692076864578903033317615009211172497674147378333022782838546934553432864662779560185764329425974882778520795515776186828593981254625036550084698309271133553507317682549151395583205861006833475762648058167169805581612873412903249241055196600942912829397856256017201241787727048066621047970573900814175937246476016500932027760448243724460267174548086119840509318128142780137890828498139102774076539718338396307488065426973374563257578837665420021960895930067934960449617097908067106218938215845749702459513763992807903102106824638165205840549833840073709268362620418519170026844319501633104438096101181175128550938813849087610462212695909626626835195276677239439353954050782264332716831983571171059040165817402428532366708635109104678909016056282174692325385556044388925723375303101238439325725752870062635597887876699446877529735656311704994051436678309530818234248868978286560279595130738072944465053936028812220979005178372290290510218505177307975947305149194055243373812539437087479005909857094351959373632640545367024348458552304113597563252890935683883727621982443776156892626443164439606665676795935384396148759152602161462964280100633307281085740853831298001042385988690710092733536047641698638773163961741148521942200918206944989826963069968015089909273916440706892961012061658608125444265265864108149740040948557555194722731577347627567169528631572124423863460110281464121979966368885504962597862936632891682960100410159023729238532936078619711237069680296045080468457466091552473584866597111039054845545286052051637350538827696635618603720855522597176995698516883211319485452383560473204668499537639935997150811974550689021899305072816209057812964871616949302100746944386401979360058534962514870486547959446840134688918691687358088124549695668748146742447307874907461211072790110454433534023064219215713285445736582368168395733475191695886644546819545220918771260930728148078288292024134684233922420209947321958412163698607086629950423165447750804503290811340699915528162940074935769662021637467724601190227364684486815510953225648942891877262453219808462657162897277757558655520517874447645406015492231176458800957459815446695678446017370427139317417667142730765725958451815883398287243608455670448610612432884465564302756309762075779473081621398549059853606395497525800478811034642590565900095259638447332027957722374129480248167586778196599671228750221355433054866561251717767248863427579462945589226172166714376410839398429231909531782140868900112821210975316064782980374293284238858799040364861845819010791234552543956323544545057666348130681587600901952772373070463348675487639630321793401460492379362114191464449366605807042744875072139579270718404830471990100798912123622323115759443144845770514970391669830180085495615681676175319735841419317432958910200848962040635749226680627138389315673971272048873732012009859059922280612232977921596082687342079506701741926271114229043063682936290435618949718399503824563125198383715470376560375585476566657451282779182472747437203889094715336884196623425920324524890008053676102997976695717351507715368870324184175423095797369728554783661124263462694664572008872291361375829704546092857268105053615524458691580784982477777044395461601282369364434165595836828137082229991301497490533415571386516193080361486760542455593274573465883658559297746172626509261140607528234835943842599401894823854131229870444725051029358691819114991287710230318614771394957332039700779650188334264559779681606675799493501204799925869540646005323498515223755313080681277590443335661319286713625534856647656299996531596962546585845915067066568964714492007411489948028947702194825357983385057117103740343880267738159962510622857267243148333877894389086559143320168969973360072503183388979094354551132352625238329942881193080389645861773390811323365153159287860024495346565093350696595882685150558274829774128544334370840290237859461829820382118106654948519545010366190899688030379460631713507096715373666413639579805324697751432979876504863622914703046022400980940253371828988322864628369104008665336684724721012385583637524297790688043940181804555087631033575281179281600062088713475820223783989471042425411693284206299613630174358011497686493542063968251080163198919414297782904963381777737750296635835539613683234428566262988741410313710675114542628648787591182313727420873096275990370649157284064180020784149147245526027312270942420073368733807995323573524114278049583076144467023393938258539523576708391589617409811965372484164599573249558251349047288160323186323993567607260626387035313893787374387391024020030530469928576952976687489690362097107085487779890197032845105107137934788813081500490781286830771022646147667290508204884413219281294831736964248930305202859988013885082794345427015518414546309642194185331824701346655269771608321295505114016844797096133516089738443785266396678799716482491442627091412892481027186145726934476839246190343799160457997015039647939115206975501660099994503606791449972005536647952784837571635238090989330362209177359026952212053566603846799169999122489689850495934805570500424118067411077014663323723541406428155236407904510868729602156586402376246782871651898800633535303409164756741070559804868156727040639827728829835446663643102491442965741175804832916255127726686497004939526066308143490456293048682659601483410524880800104070426335399684722357365245156187554062098759996218539149833060226394097922783807138015033175632387787430699425851353595217290793665941552612860444688310727011264124227106162137665820755354108482191429125899391982952054371953601860314574302604273307393287023737052820260860824782018415517733009362945916248284212108164182648811926896733648203241368851242357658978134485945473582375270911882671075445303784851930494618620299131498914813387703949980432136398614456475095014972836426150249952604483114147623937918158361090714046765855298710718400338221376767866163020149596146833107127814469207413790886826761597000615500710000284471224264783078889004085633104793778223742726536154347808161385237742363479913181836157745741719295605973986219925731775402097942294228529013960849963033463514195942062704351514619430859070622629921978493373542931506003191149786456829096402310597092471418888801450050541557913687367092845195945965133067384239436537237167335508771705610856120587685728204114221840594155184073469948382283034826510293894718671972553706431917016055635615709376309216090569692289846172524439607952466896026856229143063010161011985922765137475672332241564148758998220225722805742882928451627312693651199003454154392825672909322768158496456411344097187198939957832083586027143692255300735433426392477493715996267737677851091429795097713834784668539787511382023450416264715429178635654152317195467271306533727121718619352993426149511892889835133905537086809044817077998408671466780147665376914409138825020418510039289045168054981084650996256035426341887887559512676862085878110304962860890527524211016805964379765635981463809129289009479560328262706810627987093513789840670330753204821346188297939325708994299637840310241253093875208157714443222901949395546709255610297007455682393328256135058009464806962354310744722831800183354730114618864412983191102137536987275124496034535820591626929240250257067251130617341804302907982174856740265355568690271645169524070773887510968845803017281449670576475229376776850066485648712425696206887399720258384717008572531903502223561210764870829116986106042236415067273010354831011394777563655410854967786782696569020905190208318232675006211443350219205209458413673856537543413120627407508617050679149987296145822847265042542911291302230349742353649486177562720139374770207037963403510129588089132476544337534105300790460961318452751488300281383285992764157433572001155512184503920973148006605523450638488084689020401518753918206958771570342426455095629819866472367607741303763691617536205529312981008166636404666908594835586508017307229192569749352130225994742767311787569990835830301012447018516040754971576236727050495994965685200706477424813173558690207874331932363801468726488036758574232912757042860115704432186289190028359567208827053461517028361961324571989298721268073064150006561318269712053665853245289373295846916604851814219730674793975739028040870646008362449051081547106060806838309373457143943777606285100698736314155712742949676985577867688984184207732560789925855304496882679985664156769287195136091798270877996016318083434524403808497734351488952813563400594479303844745254573280231447726260981895004540577490671204164694814686570971225259989763166707136426209095712338234816383180257770605877186364341910828077564142447231628871417627280001607913946842929475951060610599705478125811454419632774640892607846420478449821206818212020874643568502884060444372279418997540603615077630431420788505538066178606167997151384670645847374152596975415789895581358025291344701132595311033918907708383428308400045047825169629408895219526754128989078991285391530131765287546493888287986342725803518705782937879977355206057310237732969369314945891635744856184960773735831508470500540428762041305429986042518050589897172014116351506738229406980495249531381836570687379531898016328354141252639162482944845119719214837868192578021482476379425225716641608327983923450044842651465869618784193130606638177137550802265347795391958036498365943132416105820390013085782101201184737037737160021739613833467578565850789732595479993709161409673546471459664706701760227271064000886033642262951126098074446798905742505108873474118266009780501560537439253366887783631637280613131346971806442068062887890783782296971348753831607440801066353841746655839244352749985470785925080075032622819196168946468157297990669927100971721693920701733127973076887057041505035642660551179966291620347443673666151308788115320244664041026006408753350874776175635248379945574331984329025691471460607043363697073408907538872887422560684258387523868435632130430197998137543885781045013804007021932842135749924401653943582289244996710229373173574796919870746457911751385735785412415391863340169251929450378049305082277710512427985510450638561915640762161951027329514243700390330190391924479487216314302150749431806266835769613854952004323495861254915278743857187488022669557637421106878815141502228346908863252717125447233672717830440571091694233528080521695044321844296045625107825309947623882961604931448889176500134959066314613580110623833697847680900512808718108885704000174523455387371479066369079859687145051189125892324176619221224840864500824809822303051011591635723575413999405713303488420639254938997230947800070162990037654028531065308253509796013035601874167441798772186651924483542129637900346908709206262656568182067413614316841497228027580365854995491283141717030975536409892506358132846980149892854855710091046554772603064636073924694885971897030120947918071388738994909922059885047442231407157969521929797625464864906290751611108099989098265260060762816035991990475921538633193529969947792549542538497846363476232141010169821510836811860967765588052440049488062996372698569878721436596457067274652553344529854759742184215285234092528919613542918047353818497331349667897269432625401830759570424805403790228070847085249581431132951833110979845164019723253682506475784058052714888284381630821766938385614766139901745718454305840994229312025655731963392919835782996083326720528285347187775904577825928421674987390787393190828287317857748107485817773381152270595736470124532615364151012676382581063442018627974644019151747336428647902131160418226123810485232149764973818198599471885799196166086975896246368652322833147550677142570815067770095267825176378566741274077558773235763899940754921069440458012884921792262234491493575244097817125033172769586229358124901264979465632536497589942073021402851911471287281440827072849669660956350570161539059817145750007652354867053368982062018634055618765857615389577369940933821384834806707755296804246914808939933174454035226803028047187804376135193618854714951854261316232866464145415598498007388486955634662054899275460861006136907254390761741402140305998723844233119334044320249097479586021288659627112523347329261017403981764066875840340285354514911259113996896401444344767353836401694947218812120929667112939910832078756257595934899552236087010868935219325452502036657776541315651805322546354809280785434712326484016477043675286950919105014234483996329325822224613124338166779742082124086144254789219144484941692808857811152920620746949021173944437985290328334580287202821262528340669829862582417906204744918760659746778744954168577535476597324091832481165062552981023932053715993542676029327821375308975995505139021090209142573280156219406218587992401209026607818574914864078128081341936958793508754347448926510488216550829221411425953625243033601076766602928851283007021648773806555744457606661125575428742963707505903083798821889050860906924866041287507766000866287292563146625950695344408080172498612464396992672552590256904885436574942399352718380450483638750607455750616072324726341715350445475555872394097584884564556317022948203976311032304187191898328921908334159886198605135867442139048752326709116190815956854637575513239944856600384350964016604199938863517483242834266242601536838548495407951750297610158403716101643450437427877493056748472813294780286216002440080549161031762791390150855848181043394783929218685276713793764662977431898008966758095393178250905952292447394429365824299720033317432891487037111837369862895412428855906716611324693427263273480674693431807478390145373987504197832823385735196805422754720142903081259025447753034973747654290641120893627012207700690752166105457145814161548300639232404757381554380457505166556353903832707025930645186195416359271399794720805035907495269712597173914763651293092322957097939527810901627432831899032736995744629111133957169729980800502449501694321535193879024628569456280790524034431193336178754835344235553326272605539809916585024989622085609749292901358667385944935474265124922111334382970904572540915292326744332585250112595567230444036941111962410994482633722747588642100501913085237158852879108090701168565530193173288356756707727734386238093016624105811817119596461429255745465830307761290236194313484273859274081160759601641561489969575320586620405787286983379698676669159816291050198784749805877119172770785658540885984394904858508148251454543980568460574234885862501909030617175984485817778848427809125811982479149150204228365083599402542905742971397250600677064696260813309370134969288673843276129972376082737915896181931951524688603963410798969007607800586017114285949060819064612234849746208967117030284008384994193620454069515193828055143247399222427734714023165737426290024606928418057277899468911294524067226367073541874021725924249378819368628659728761552298986587450731437072790710606641477893908974883724468080050778436829993865949416421946904212112889352140047058038434452065991346862734208448438622588556637184471844776928387006594596510287866312393553457475358138083442920937709175932900734665888221117015395331211337266232558525826267203372827957618456178261277866729896433125130994967295386862107616177352690078962225038582941952684152878334174483214128485781625480935825223662972382580301252015974704343305497361879709866915513916578446275823843753798059219130216109047858073259165863049049706016652142014594218971233649635075474842456287794880675112584257513230469059544431927653549311713058795887933428728163739800299582228826940210033773706512537874529267347802067443928879480456392963355304651563829868947945445735954168432261071657396588231420167267110435227149433206138435748315248129450652875529756130037117281768812546480161767543741150471160481011660920410598194954262115298681590930831810423968851692636200077407343153214736884018068364494464688303802184916042674547190990062617742012140561748517683380448420968144221910100536335812673175092382880982225239537888722104334813717219979404574262464312223623405575529572900139253426156360152249293613822266915234670898357089560484878728680579403644585735850528416635364476911446977578698202106637952309564157063523215816439995517245170630234219712684631757692888328661638844812905164511615063579702711156296512425792593545638296716079852856463040110768036167900405183080374476632867159473847828475537840844939339560163268666910103094665492477456068183069962972876124914039311854718761898239884542206158244221704731633585701210300183643942910931503791636896329087945077779405255434881606444060379201743443027718443875750624279238521173648399807301744859235823180948525987381600023396766553054916217342743060659724077796080159111315614605407800858191095873724977827833148020732226149365436640789259355016460656410738836093101885046974604565754743346941166243582065089245346667783907120707753455488830256858278243474943699695186971965598346751144560363744971665786161132307599061237109256193961026467015363841254207321234665224284234245487001254975060338849660397494291002522567866191857155390712432290571975299166663541762117594291656972801897976674730001074110315194891739794176471758889077390986577355933370715757900078939309963500779360761912314711148588784715197194614985894557678184842255549940685440566048555242278977120720800672595305065644925597884696927117911347403571519305915329354532151951733219937670346463128852677591045330321690923731388726253644354494505891792231670649051650515988135957004180336706555308911971227011746610394236980903041099689176826880201690825913763175071601969813176015118289207543802232689790250778896803621568390074517024724645996333672520151908444419530979763907756658443516806325207809717265465297454516007448358785983440137208011232286809254247059900654966030313622625012242790892194178775476262218289148308675390489940018050955615626071276078523704259422997430370767787066828683789482896716696200884798059564188363489920326268184992142596263588467159053814061183441370478695048878224709514763285261962403979674763756209788129731632691029412720043863311888306159667053592874581763668184166077993404142991068399425422451023729481521550470440677880975743489761085057772788951745440384902533841383835345755339266325227370669232156108197699234053350696395905923734218686164148885131797720135105657773468836868632711403177744390430655459223047326611413442181212134089161560504515090381190489672078976655519290767018791670294786212846932506617573023799703358800029368642701435256541173932766310060585881557537842845820068756336191872488176260655277034915262227986890205207830463441111352983792864364313480392670526068720456344934534167187140182543257284492298891175291600590505350990174590471867943068777301830935912096204290070841442586320522221824084382138250515004123017770897477137893635828524779503878981853923092918091091280849251515212095322386751221925936708003288768534050572731859913744862895824771498970990765778546380330618738241326295765650832666648754413435762095766667582211688986867509012408494467364093971075036464354901734164885783414167314622661226926802876084206499666427140794645986297703032435361241747523990459140480313390752117519276280541801551828893048242311154698044131529870388725588070732582068353459564491668569587943288174546550669418387722764183354005527775441715206820777970862806159941279357877634444609707355554685751236072561690136701456847645164692779372482689579523521769301907349394253691077710768838704430259612320304416717294780261958682662986819327388447023710677418456314174643966051276915394132701739357467570820635637861726158834193197405798812890972329471015757419040753440030127343274653152543787052982502039989153918336090989315963447672346346949319846838457302549106978545886989946990764892448593462071884659686512357643494263482905794070598459270918566103294166974796480192213386298897067323559636014437104453909779607139059127597580258631041757317743255755241294868363257678759599882900467950117454750210403987804386471236412617535583927105067123611937916061661886432369741443510312736460658330540075553618503854631213806835750645109107660069781226871890660356276843713514678168502723044135290638215874667794876224664165846779064565496091193288928746914677415611485993653852281858933610990944462518450247544021756568581436063076880818423714141213317154244643929349167700349713423278676315437947071934671995608035121711899921098527657198382968342363582721500305241022356415394317574111598689997913743318780939415215865418601997209442245760387397555668627244984162143740598003117612739138726486081503833468603823329982381917857068615579692357468323315150228375235717349208404879673046332389362755055385196135374873270815832244190606130216401380332369443014564847904140761404062846962004113889962671925938002317106501303907792011222364897674143318898320768888742568123765490181418566974448348490603443338064556712754256511809957123927345194099491926581242065210698078729752859804966792548313647241293856361302894764618077837071770098940006118679756539241920952318395206733508274383071869379592864354269689714623135356241384741752888261469653829615141349729554012774526611305994706248578384775589988466063395659616872493092027225376774454859875154373848868759736471260575141060727841045417233831501037888585574931300856434230543761816690275407373905358443707074250482580199166060417446555977722832795639084404871780505478101029141515032126251501586158127458482471063059051806646522078608575989022410465410791793177630777646358867851326319754283709619056850735289656254149951062237871036912866723739802430409160307298273684387532888005648744698036488394913533283889867039714166499370375647140428451536509731480909661968974980063136561889264227398498136485577285323859639267889821088884232753122384423887511464593556462385224427776702470835867577833796801166116559239976486240460816334853177469826778367310094180295995479212959602262322472963822527731924453013513380233296404125145430076209706308381805916093920829600229317163952727250171992110480390984477809967447159590838734870836134008103254805892458784689899579675065276837865972868875302012615778688600136628629306432969445800839511834693270169430522922703581341081521157687734673981996543961425659302370470268520027616049014923614028325974573395205638464306029510112701057561057868462592526030582323000208972538131230738430825898142964601338776977025982165993892163743763552368047648164842724353593040669091119901243277215796800940353863222657006385635403435590232297779081068324602897584936029592210276111561219052261608409072179090396052086356248828924705301160831509640164628040820980816495354914650628586415138845594092073711753344001791812733769819127772678540838837081686556873659977548993273603907916166324965016393318026549337330507283847241614348527566994372873359683530940433498565306174513619577693549905029196422950439503318644954506499810716433755206302277048116927156870018772749415078680518430177312354845607206411523619187868165567524347734112103869334018214805229138441452512824934448385727548225059243271343301042302469407969970424640478810963702950118156248026585938796101735450438982481049119010358541100241825793628692061016911867439960220571709745962480146495579642582829578273664260302917957026189773477582927901620113053981165405345691010775411647881932239852206523113715593566984293983605435866348416551487645737114673919116872797143775547759985760416740809147140139673734847448338792877343675968404956285702744722676253534679028908152824893201726872145373986377501138158153088549309189692471939530870554071335163802303011302221677543561507508549574564866233308522074225133414688855850748734677354750399720045017649428357022098660605092062768421687895340943294680858170336668274027168133396868870963201484808978803379860857525774904189389418272139728298265290894378586785928896411637397546181614277531650871959343544509286678006143729657040314280976293255382211406369682672894067175774589535752198025587807686647262861059910818860637948849094538798963231215223539609319649979322061047841685693086080638201966861086273003624209253775454707362608099911729825818301355690956666575205102680015108154026983229371788274937025430367726700891442780620707765093317382186649813631914463037808948050082462817331020270445680926580196169615010784334202398326011356456027564828050048758635476906931508769499416818043984466382572223788644813568388183122468708503212340567221108279136631025517119448414537447208773889758091205933867328868339158162401318335362127048923560094366061841201760413600729504739244280512688962583288539485956109737161540740858599745683492791658238502399960153576429339444299033527015714388923239814213358492039503534471477450869501188729659442679706271806606211849734473064716850366131145950221216305257951547245558616417442772481263192767982817682606700154490386930159738365113517819204098121361456670679499816843534574456775137875194343790190589898686698443477663801311132259031441268963247806144355660546286751968153404820219611755903727343933443020694765261453487510860063898641293664980414186510946925535192597487941762261921256733533412470224571983502226085808607234806467406236266102469771438073489562433992225986591592919284633203286779263941602352310646895951936540613658156105650231881613144906920670400635682270828601706524319826328875932595087466000132650121139177073620091347802488870665343761733854664282635878418368540195775802550852310256503817796288939811533126736063501601593626379798009980856178924640303938960049982316679758840697909981171852696401835266534355319308335129139672616225619691826873863286847199510776397679522261138497132594279601173690544707664658886230565894397420861340710182539320678595934983463149795054621317694370968251385708741571704966045180298537133143477722532382175256446378974936903159996290421487583961893733857419338994077299016672774257174715012074216019397855252996539510932261044970016119419405976931754982509168528649561526474480096022418386840475625703283441487171123656709111926853845485696523958650868894452244806399675521145873791765610446003294225010878282302232625714345578412102301535329025781682147412402293404614350020894148990597499123801551357586194915092528817660263839765274843884558626130078631076828388572740163175626776673536120399847545164380194151944839299284250279585152539247924521513319619421026755622863947764288021672272580082564894311152637669917350688119369148336938107141876028589887357559069784944478059468096690926465526599146383614727590010653581228559344902722090041861004027564877742031864579629975951832144789348934762946948394142872406289130085297147101009889481480813964658471923274416846558673512604506615588136626208426674393297920119230386806794832470696647989507778636386494419276220394599846398169270682329931521057650997177033192079614278012247947998697312548920116645355590918878174959460731426236073663578569892680537678233409015173751316631253488073534945513183657757443938681994539578819668973638185233160829774077975155413101463196946959833469036347717219570417335345634725489340522616863708414066800686019746030709554696706821788156294853658103258623336249494299271153181714165899419666483878382582761445700656861504819262202848680297917170540371492691672726243064184358399800811184072908518119053469881672545249211645898282329124259226130701880636562107431541210586403587964712660661680479351181826573283582836089509125390242855279133201479959786181747478028588511703552501884177861059462623893541654613946276697007186391013385061624385556874659461640291965194891092672370034579828094258736433357114489846566806206045745972226839194476334106316513863338119842942669507243761838133201437338103161463787015436661466065405318849309900284882233587628803214651674636620959745904153703594876892897884915044019043490664261755173540589898028402390456189371891054087183274127320405826545666159572023868764893264206081667413885975883670532112954580577427825796198274318364384161277685150991424622367776759684007039338450277345059025910144406239731297640762992076267112609447467734723084487846736577670799304270714095410748971637310948678440743837833972297919872090486768927967259955956848611750276819795159666891230666656706641653399130363464083998617939890910203710830820662543028997730261624275405908243272942392307207556520128190970055485465330140588630008193836569568012012053566103296134967008132412774362908337759692099533196374868919271204478901186655602821653783520435175363762186932728220689321254995774067047147266235419381559579913375280843750854854697383884387429899768617098979092934542989804788204182110550587679364352944246504204219019528952582581819214216301612322347185243054952907818184144707257982440867035052943097413894341092128061288062238320284245400095729152562634472667767658958606255541706167978553375355419011984700052932069830384436944209599973127384179667788038539519494920498611650206050721273591724881402823158985535415151471964695152880581357726036136844543551989592419372695946455577287174619834932509365033817030890965932488651430142739675790424636198026817675629785895261073708273739283565007147809533489318877251609655613701974047699658615277016506271348187640537723314073777307103668300852467011635105470414438602089695128770472226560100771432511802792279765241881101625125813411686689452019740441775607990673414581987405589767120735704105914002991592095402351552710996913390009887058299351168585619449869635596210555083949353788399928830329004531545696506759949714505538250433007585521101375159420524279288167681950150142603386734372750187837323462039428122175965064109401180452436663184595774922592462332257117203994087741946515910861387654344509907602049562419758241358016388812902059749535802253566666144581752928474572657988482035021478710588638960632013961033022519299184917104733779341569091129244793008688838603050143466058339513550584391820587389866595455536900481823548412969908599024554150017125191563459025693141853446990828260068038813731337428609529195211045652261956028720094542689837270830888548632548632675591998528311511389560488921959673211285891544107304671971377762961953724814136922090556002040842173794285183675939092868888926827669791507833556579683716957224464966375665740144672821989784348548022229591188341390156761017219279481678472766761059674591620766525519009240806698135438763896205922217211127586464381573840106692684966998051405605342988793862988478951007697353561195150869611458605044914644831231401025316395824446353978734747189768802567755368647967010112659706539144588954334445468839497933656688589829927663204328775567757450682049354622734559066906959734057363847090616291687225799192109861835520651940586716419938061595499551942847722386009210723942921066042696516328842148370529465235229189644841641347178653507691512146714957547073419173939000587475689467034352033860050504333880543680755469723452232083717353215228477303699891070870242671188643304610225922492815435704897326209423598321200414759575509888830604147319856994113968670660939913688317679562977731500293005259220136720984281581482884564425814991040907900720775704115480967340686134340208669844685033410393941156114524055019679351025128329744188861869388657245729205453258405983648178860394740808857513496666928629480409585339340460048213031938005510693433189361658318648796917245694247712274970191062291284534703544841183358160734036709552676689860806891830774480113596224410188799063452613904196559364698398019587603209093999218471556756366676255968734244291716058745602220822817720725671618557028018372591999119342042200109972707347007520005591357961189572600729713137001302489076398402321476458468167002028481661860930407987789562912306016134937064159389978035081371806546303251113604739995809187187119666052060880113108732830682647011017134835836617667208570561160832684977343381179736679932816462636089169766345939446424275045177929522896375151506417594289457251830178481536982622066321813693314739901966110021378269597470633797019579420113933302814053852106658207289019289467243580232287393051478358482701408963253688096804905028854562960264484047050967356505595203604339641101665964168016211534301878862788320033828652932025270896658828056577224470886311882862193899618447825049206275069128839251534236229117875460582910850220477960483595755708126689114620281879166341945727294383168519704186623513020860456916766585796244252692297775276384430984267532824388594038674987900475279356506305249885107675080472663449719866795164796279295268728294667669603248295571344908331997013018956270579100522813021313402630229432839920727342521592147069450692612621633086805275188857305391394351622773393165091455952618823646869387198247501691381194052713694311626023348917673760855094966793065276512335903560992643164353255243260586230077996074229622401286845426306755777972359052837920875370471579851825863149084719582761746196685969789843696444457552076321589912778322342797031851864202430503716240273773443441634933159047284555395004544213281094191765720835684635420510664143288871619851033953431464908119943376322209663669392926223006583677134776000931269448429887036384539345185175819151962196242861860805451085505015541857391987230417752352252907965341778673107277218628075139918485706107759865378214052292322607165822839134669920656042735309064943285849740275377278308340016902913874179200741672438794428005453397977903549181480020856442169266642133107594909198339022252114086289535159551534221753856691509343648505913548202065678993630513157228141680061225899601492234082527542009381008594461433516275943226417876993901194372393397758060797888557622167142027666910288473177218049208412300186714707287757079610674747413797989692447884881698460036678026205414262683194682193605183922513414778233731102113341466618695988815663582530218029624532130809707186070307012368984927452382009639112596664875021344739503627070673346488826411652361461632540114323116175873634348587744350032679797609606954124333773241922896758165777063057494228371765522954613027861002426812727882066467593853571791446883143908116679312023975530876781025135041825566279690478230722319674852992465038668092370156488713811973194534033932035766012022431500018565730710666151644903572723898506686399310463664769230260237915875060849267260401817457618565901062588645573722830055113403306129658900450297325764288044486463566148246276155920719886552441000372497400672440721430093692685390822896650407103353977425782279875299053420780087269708944380359820731281686298396694279164139518558507393642715110894266092617920381380060373011130506772428260758257400139954705633891052187401514670167084908301610352377200880082158567985866562591828541513152025358211792757949744519127849623302123798746110104238375327681611176664642058761739547882601438599389845234366175084688674181737679285354234928787012967584003027037266198502403600777235142646419617917392081208746436182693815535070919257292742318086492761591203886129025965795915054972388457741750196296563436637737277742853016960031350602382271219602052910183792520156365689911542410180911113684924591939258199375251964851684427955970688027239544710864565038479407987865213372979737812254294274275060715943710921154716337249391740652927080591197994503793419307675154694540810555544429573279754594809526768567606617552076721104386245631860432201083537611764928489319161767616409837738671568469090638128420203759595397590521598228629857517040892594969915921981814119798152184908156458914649518542148627021240712304003565797196009349094074798472048688905365379021563047805263231907378279214118458545706413427781520036245579677919848178644628825301483487117575919946115014537629483263019024144558632961333427861807960642224193794258750299926232020363157747504331345192696173385017565412785603827216504395324624865104921026481370843921651096419438007132509962814297503683664565140323651135638187046921573178589128462731282312808760127063395548362798806083946224104167014114761653597835082177780602161462330504240632327914599746757638078623370465201241202726872834888946494525923970380416890591476491412172385135785821982831389640621516574686519835282021144456389829031364292211263559597296701885760007119331926652255864065625294493148929824486520275141490754058227292603064162193526567435322162076985048010810114769018008098054769234815395939231722994016232206728281448934317671484287684298576743873816939618117147306345948956891771243414009687344153794260593400743580684348830459112227136760722819290384170294858842501604459091506272652963343791943568008396802182162469751002530576643713423103220779932873395772279495024140878323048221696485214257268135304650965995697670690863485206083355868655023387319228462427362753354090652025047946609522681206997703254519510171484864381249847570636539404753547896146912430047657966014816652939821747351329863202785683333884255303580518196583094267665768430238814143900650055988322503817302110792565174355997504254878433067912435779263849675440345101155280389614992620189507400101966294469530264535726751623391264521996893097222103942497863862955068232426824731365888273158524877698197890962810192647317846287237754865644259235790417601971763356939990012253744476158946954070210142080560305180089025557586273148186229895553431921694604957136954663310348871086934749661316412355960842470559303467507707086473719545126075039371705493103953430223533965825538421989120968407209694721225112940202979452699427419974565291429596784935356679873516642177420642610686117952471943437088854341396209153889794596126873606389788580192571165607972342632245470180649789227380028581669696629679722199729599530326104779111036869636965217428477027799445576834375060567958461697238785335298533806411392278785030411822165929427733715857779460096965028604776062250673706794485116401916776239479211583938482651429507267121806908441675444539891691841922289229109588365508966170595426663022337301316698402166607275877128101368695203555689919238367461605625369379260745353593508512956749387055522113745821421796869672456545958631481198100644277947180932153391024098753561157233725747178762215311094999711339708851800156724708813657357982891969633252512094257177578349283709630747012090106738970412012443069584219072393853422408432529653660043460851449099238795612602818023898132277609680848483636359932455799176989084990401008694436785550561834023314791285708694754904696025877532628686698891156713835490831883143039986457641932826258989763975145831799669988596006316934484546039214037951293557467519527220594133223719278785226894240066907545321730137432091690456257673367922137193728027307072799714005019806760392460900049498710469335774361995750115924897994937942511585410937302582590815505168174815312019449529633673183747665473117822291908667851249538228998317688422134055235755815007224467265469719662411538706021852050057936531450933716110451205072448814192449563195282613214284468478611397849948355650450775627781719096045304262234585707730935958365435559159050858095833611531847397797017483367463240312569644057496188086393862937481930562445701072886392712797139937355753339622163488900749793866611711419993924488196904522914011904599024276906108335175796783143809225051280863062207175029086938864196107679049132822653269027392360161370534898606500877644236823800125329976024458996780006278667740723922670953698389032038132786927127910484735403520081506013731664308462372885133502485801349638673272895780275590294236053818587893827845252880531905303319703843050078248769019466470386072582013318406244440408673448252282585545278653264470967057149560458698050765873158880734717918341694145209349785391390840030783370732512847928647351455889628832632345157186284532655162970871864430952831354147891155431531153365255022946906168173252295940716510375670148992994295384042405004270605194028816246849199437012032059293744282759947723664038190520541420707354632422745904335498656351226117126312525601695574716877217205078784546087178722833657409185309472858866830476902831454954111622126310458800255644805383201438488246862250326735769401662825481098923027007794417191561635937774306791644591501773210473672558688115048092240356894861123975203800111697960356261407151371370009668708848367939727838133799511680581095025617592979926687516773684721682436198122543586254777751013380633196432346231580450303547493534373165366026074452203196418459864067496141788329811807820250059224831975351797970635024992599538998549508424491104570150382261213020378349571319254039557294844314574696765411265996542719379670245020197607779730219581960455157876424324116278995285379868995740458789352513525344719598175259038291664177598966776809292366487339765944674462694159279002631634578103428456667484447109021111453552073637978958311484098518766137959070401676232144162165095042007853559531493986147483896314513548856901611753546729382914359044789679028399517388998837953432088317733300476712319091799927577747022294623484564061754130169701749733335937829620307700685498607949330168585178775386838978897153104085683637792418856372671544320350290428576391957072484456064033983664532587696069849079497952649939577076425134086625974320784540487930257965186732173041335469162289840060813526195888285318699056929134831303443972347827556130498793605980155744007787511767952998080046717102639430177305982613109198531648868567869539061051463046439835697722219560281790740685403230923020054215680216293709064739934227638199540291171542545469945251302179825629222847196775727906804569485924559016699169852567819154090079364096501121228310354826962329122569971288025238694556290497402087623222570096229955058700624425139758161994505960162080644934774319826273387496087176129874407135875423332942107757926374018482377759365569118876661313561000429847488057380677526416694060021871981129402846387728671959401796197432873071454318686385445310623726073909548605670786325295403963059898857107518632009797626841610804106754018150217571332225395530219800652762596247690430147069460132619464434178017755818817351499997596499497185990518161176518991281818372061712543970157615215282600069776940146956284121751860311783964360367050965980387976667931323316364319249290619087407490309015886791676338098248039392826616692291483422927289868741662160123507044885943976475363028737799393289155704450975278738336982526885445344621060017171102398163615204214824088944480817234026068455982948579510346903563489274218293611408248871644338461957562678404499230365310353287665180913843883246419582425214689870259879255450862336555914972472618587552785150851299918202072282388822643973322532815412198121099436827085974681345738137294790456197831043112971200445907349770230555217484864189349874592608801073666571515360358776895120706778329234591070055315150040448383186059011577020741183357560539675026153971536786652708759079023248892686003508458731733332644523075796303398132010858787617253362920947395303822447761319241091875771202335032413111088073289848812705646544182001072193041502636264447566121036230597652597952653971725888238300576426602906980677233243484515397216922277132240309762820104342608911505155677287549027180828842906593608632959330144442392752454330770503901535938720522191923390441992596412156997598032653661595972502467524172094925386419027832544325586355321035276472706613623285845015363584504216581484586379098837333140125577899005362779997297775495163633774274831355722803205284272033763137966216309950619035577255407386854436055108994013606360749768755880486922612661598037049070526327687459580304081335173592000890328201712019439784714266858723336864038333018868932193446713559206562649504065675758624896807760926539878069898554171681872453661801889189829126651000469562972723481672924207918856578315162795523430409022440804039271968784312661914714098743267417580614412771844635663537347761334181672930202593409226197913248654192623096103394030608206468386984832376125302201190090049584594853859119054034913421117326383868367999578786674215227251709933568021001144886738903729348371683325327462570303224396124835531577967773491759741682022588248988482610982262671844886304350916828842720355443279635557740738841415226204435069373143619643869229328390863549915262844592062058802561295567516686564060688347395919803458574831016620527263129853727107783572500005355828636931493431916587830534705298308461487345214162794345001289725703801053458162280792758533718604924300614902036481647748156387644252803077443647570970523572465013546038274963461810745973431264354329126624888213308641808586971011675467012957371144296625261197188958569579108490280473979814641607230916515510928000018173958462303798467867593305289422089636313547700840532977983442767701658037033624057709526412208913978538865564657274086565995088874367053832553883011769148067618056230525451483645047351169577755515215975262740376001494594304321131758940940290547147183703838675093928814880556742709055943273302854300028834484919750707330617490337447682633927190218797546425909323391480097357795506138210082711415641418257254953884668445230605802092442833365193510318407331609951324086996173499846797280871741816786606049799334107726929327892649126564876786105039048051972257348957930140135493262250802289948414317711173480766697199368034937311676495428105976485231272356777210654602168923763716825773946802848887679355248950920577569087927915002920758124902313141186621947448901014111728224146076212347443187226880034753881682189143518519686154169238651422840775339304183228184757675982732221450815826302430783671979546191344211701799846998852525675550032025377143697468276879399383309241864137360113098933040338010540477018959042559581506619943898491310924180059769706675140379415338547684233156258372469861652102794368223626449382982820113805004460652878248549642982815608736411619223665583806824684282149225374475325754995479858448347031905747564802159763316866280177410279616769959149337613536750256140026303185402268292534665751519583067414826241075816913988741085670004469161852537162659272188677607036292550902212004211181066940429814984980219330480186587385095250710883950143250282771834720262691898251067240776512865862873826124197344821723625546005950644143210736191324295644197773459828728047449806237816270607167195350938812924076663743853329919576751608544263902122607168224300136855803418240506528496820253863020668428832528039389602146472568311670323732624518824299519345570730104119101660501923954243799740331162798538227132683048909325463625997410788813321299681355118137630489483407527807456062928608168697869532155041835822077906926655376578250741535718718016853077594250485124384000112751510144640231306575923620681854744391396798102608604705635944509589173377979715688078536718407120457231376634851834418524800575184119148962530295798586893012372147010793913569565275805173675805806639604787704446264882568543271039311160643082056558487709389224752321604133769274344619478463639226129137339193505586404969354112370694483754360931800369004764040000135109363738024845702567860893487900423398088856347243255000374155678045656253929445191660913624779383637841389727916503888642513067871438726536115242433515706169172203934444275711936894632729347129443922300906830057546829479824126810110930364332444242070419333490389917770712553741332080915057679623978387157858001583087858882002759944691786341572370660741697320701336329409281644647399706806966926030773591625843483249641293744350211411713962391960127412641661929388053418743873904248137562835800655627803191557965293258747868268522664306376321381414613138731303451943015798493840843789639795539648210265296654337747141742820529816026537039248367249959725185295373329413208320706738984438230997652459481489960439863635316799307415961438307217498699212214608877963782087859496516803470843894663603918724448512692962436267225022560663841131462088571365908473474737678898565125123370112455515265470745828037478888435443106911966107905576876155693849070043247174817343059524504977859821366645229884496704214242505265419357755979821947587205359818072889428636046251757886479579063014925994781573326329050574700694593803363582913351976305485759625045115915374048471715261876269074759095149322864001216357202935510953128953128139279268584312366169935121362192058822098157644501300868144027945818797663633222293222955755447152459302440155837660927546370431816307821757143971116795017372724145042874210462623615437275300588161618642088064427680538169316042641571380025116257362714424540629819867482881655709956780844154760577849643013324230832043728600343068583751748337731265952217492743512443460760508068152005685896544813191268075229380210974184675074351606635472057065847999217759238705707657849004454802423030063347717101888864937477043846088791490107826354421953653539918253721087426402813075309507862510840600093270222690920985108750721676172887869408989274331386547710842673601629071726933623427155802708536500639526633116869720779255333937022059155046622263523406328671855777940306744134745915871700977876648330518529068239847403486763449917473587902485141182751129678567113710204997157095481823875138400661630622804766529294373037256507638888664350023376013363608733793102497129802715984048203668344933504979326078767538750332001366001574852892657670025042121364634754019888813246135851606080134917656044095477862376841814533878093505796796024713912820460641117335216257836717855136829085141224943097763244578412673789279610238920504032993306013513992918294196981709997673877185663697884286463221332840295401325735145077495005928956896800764261483331191451543546221277335609699785581575418076967878256234764971778888815377336124437179720067628811314802477583027196188118856596077429315140835925590919765007444436641364802767692511292688894697298549278357392385457947015161284512797848278767178027460634905311622317029258781920349721789809877426529045094988841446912969529523127114776984496342465186376538448040911264835386573643313169272629838709091979066317011264682201706349013014863939321795759473571597091046010586467513419256429990821014526806983531601527999626919870713144463085250937110415673092832045505389820595149425153606398058125638963829917118589072621347997106653973188087913940407694106596028728684469225499348622311361463071899178618033126006977235215885190808304006972749188001602591491453485264800252937937076671890913236269363588646356285805990559245390818380263585195805113793848501119750303452229954376167650935668640125845398464491485547832370234072523338542973575078946137538931587815720841304549745399349235948412087080299284593514200278401599296148055515269904112473311398186617220865802854941015788328043990362691939468147198686510882746085953668557867774110831844287412141243076891113192139374863893839674290946558931498128550810826270101560019473879633306533824952303991750176867655027763791700299926062626941565712023479182179496021188110555188276836171245526900873449579480639015829665180289769176522235837082707930659870884341976019983750939830494489079273700514648919894729533666501703819780840486574396676897327021839363598026453462533155119362451451387243007803491765107281391234977201583084537467338581620172191058262836181479032487918219450682557165951924827044989458147413397646293614578703159041527045207637187614461896544960062795058246710208311210014492059938409960896872431141616560642172922950374022898394131641782762017629089388267960439856841223255435287423338824123498271360206828782868979285713233005674411851569704322307109188171170713500269277668663755658655972462786193141708427988273449833173739909231371820385735091682153663576944320567903836404861107448249094748328425816669705935303939601770893732434865512365186302125882164315446436413502588180814583080980082396316230756157663876180988693488759016914033832736846845678768275770252854583657332922079523892204278181104435336352391774554409034410812923937075017376342915803785202845035587183304731214962654963155376454524401176021851788742412584243470745777667026216061949489958996545969304931483339938082522867693462989337100938960488186659587435896939255968984795033366468278728868528823492438773402112963765331600135222604420683398878786030462475823176686032565497231340580489460445814703769376399302298377094044036038019888690063949684762859390666506038153763421141069172918729568587225569271571828469615198375442261579681352512097976943922741911485885237943610119689376771821721009946784203119426166336874865181104228534748860976402162011884358509592282954392743098773682535619418763791012185357850090068477563767723436721615882534226564742725950461457755664280288654348869111938439031687588176661493032509595909645874714061275479024997417404629660783232476625800689559619439169839872988098578978524000411992783259935677245265799234760989756001364056984827995389417127508001492390662063969385722645418003551786983743355211278227543040475363100692998421895440965422911032456447535297176322822930081665862548322719256828228708054671913997022145051958520844643867560990187333127941553103590469167496114459141558867421387865567769501941022795582845616761740546537784548950345969648665733376317691548503472562084755728349263559564193546860038924995877898794148241712826089722937503652050829828648761023397228188821315517486118472126561677268988327930385897193246387492741148948884148790627266059692951348382377657489480263346761228438482781460950179753607154279861100547542666812589541262836628350948136289271373702812777552038831541750603312342090624741758442107628707055058206490129563384311388304236031207449991795174188164892545353022147536277173469496696056668145475192384283964162551052978864844227523525207286394796766931567293573988496583895708000158375684144614554872815180444901583966746870825622095807976545912252099539712170191465448402972401772616822055965859741095593061803693614794479457984394634536125329192211123032224618691841997626722046125248336396210206554348678054363050031287337971592424917065219366254803393792091415713197727986406602421620570147701576340048699780870995324217267446416937093665047975550542049762640275181674512494266164460117975216815579659221821235373785853824422852962305168887977318315944061472477118980644402081595562426927843697053304423858153667244239929008629574001256905562605162565431243294924749623064798385544266096733553507240380132142458895915675133540780774470322672129660810717620383889991608937041651628092725439432723250499346119357133809266786070842194766582840333974699784321680395664370584691802055750318522749227261422067157354275033395877441745382366178377795410488090147563775110051798771319569527674881721056726583115787861580723682917131140681318137083473005243383689318778174841950973284595481120514105979669627448236320361418073676159547984179283692944936422889531072642579465441915274587816569037855533021764744251457801397682548506857573103693948559938365800309992333221845118640370580252159336642831744466545528439477409603160637023748469334952129123784754314904629313674668213991959819039195893293349787188846490560321161435032918554920154341356433048206919894972680342122981110666001679879535787433472402344658677089871972461908435825305735436660776005291904177834732159585317754753373167668490367367666196038169389115552142061370429172357403867491849943779028389422446624025961580312503110712405048706048664875571949621486962835046051139676916673138084480230668708066490343464451791308798740076784596120140911465568773968926903287373807254223021555359206967555875084573350419616305144846713037287470679788106335591058449637340780444814815134391974748712524572083700098376358531510129914229553495325489382843283584737245921231683834383721882475612480429869418931491872966510300879110253254576139697574419849960510695370837022212810392201452608426599240773309157659411185405795608817167630236083232656288729804316724531729127449954162711994812695171781104040473099058007078443854590090580943960599478058887254908053785279624933743914168539996409408026074665874385976053296646805466046553704556775406380827382402024607069460449133149575102195289860631067275485640724214169968707719549266584272573226997854274388946571673969361442036594310811590485543190122410986492638642554673067534078306289661650070679770572208853720077902992852104362290741865527200842309394544232782954586513542356321195680589521065441457834826045780715618492567294291468534510268074263903126499102307244967912071840965933366115746326355455847077272818478856397429642124926411730060978114665257398185338332547518313623010426899317419110979752342099507889928284233687901258198455163168865084988835193096113730387391956733795949842835415080231644612588754738922778065037576044358355675359306820428067712720571821741669126837040757346432592065040968916489400986557250459087428568484903555253134232127834993057247478327331445384087611756033243595849081185746437385559789754669653329709308502580021292826216760629572640682823250488950779379099296045974873907120772523035409960065105327398067173383926331264938689941727767255181159479060243407205976592381421900676503606929048581168602009333884659287438634882176888112618722630607317722638434646846713028248024936981339057470771935071420273066356458523568750654931304778195027020860384299527659115262631046910441406953634150561825243226395777791893484922529380523187461364061366039004572378247120456433283620320686104469814324908133111689361940404814808040462873858347195121688104735876065514846167107814074296277349537234202113395855450545097825470758850944024169804197370713007443565925842327524589927096935143960267810334794169153410551938440922448925849565596625780962294960714326039402266614575345849912786924577031448194135053197479797863498103007509088341480492065962166138372052097211825908994857438934480426964252839247906017009230620207236825644738411011180237666938129817893413996099932190470756452571087287830905890107809065382205516648460234046795829671711675739824966306061209008821276034974140771543306306289686725415719124051880809663326148311607448731243230611809159379905768592124395446531655014672059643961502133274104875471846344210755634550678532461879138699648382829847794020797238383990296597092291753136130610144370474844796990842231282485447790224604393870991669236722342478598469157908487795119683501564496083248861074948108870533521272908653733997301150591534777433573031833607847536435728865586043146767351373519723151578140274618178014064080755871666393017062669625720388527467284562571476487758823682487151517259141935772998201451789303410451882463386227922947017959964312417314126657251588530316538648231556952381399234069354636680773492648267159198434853751579190606363767698049327995043595648119755589241879519448773091075275136968142686007593280637251599948095335986696858081399045925666722546023881564436360811213363440592395367885971007054905215165955043300632930637334175798695473016868358987599267563722197092225923719360709377709912487047095077951174162336595313164847050151498536323092913988068239097323641945500036962826631930718320005975732161973008016287461211338452179750467676303879723407638938501482592494026777210757325272063499251039111705952969841157947719972407547617083032898828057607952281089809001866337758980730952165239526207545668637486267699627945591564929740115584102528663946752600097513266453233001830848353534362483313932377969684157009553517117212616813693494626550561881936141651447867102347391795636459778096955954514206302025276806586512184704301387670059963897421605341285510104569220059708962216267021853956154925163387030018114715173221242062179372398877190555569248702777825685244357041675830559931486021521836465115859880500658753128846330125586773321186608084869381101217714298733009058692310574084764509405488453090722177321858198584228556939914458550597183871728068206599483590475028135819789049459110885196069729935901252077008957553197133509628983059472649511320660159678007666198868527078980500945250080963448816356281655583330183892252170774453256605480687043758272017257699187104574645639586806578973246760641440334736681745364412315604667983558869814731013432432185426738073139070594446354420099997543914101712890803812501318240569836427268605711634237292597174403597184458080862263528036147326136672767843112290407098320645375873789965078288310794605554694980560034751505510982926706274085961150288581922504289622609220643526638769065783406488879372724038774725397793664682923056570482148360609342335699384611623334087391783610224024648956331830792241999346039981434444383920375437262705692899325418739339334457713154759540059835726170983657155865417057171294393782051731210529806580236667296794044697045047886161767008515112583101273429510472078538180151228964785794741096154379662148131844682065396777453699854166965106817489153864890136697608745654553283818988707753290415340571552086525136392199983833442442279392283304966925546528438432834917642453916252417675586211281582318353454548538644360042735097420614814882971705395321379288971893928976730987144758701624718241039180820234583509843367785562005147865765122491592329439202066514920902975046457093078656542178206706785987718573877638150406155209214243880185867108126703447442563427918373706049349136506769818436704874918683210698291336457168412807575741622119366223204758868624771349983253303825371465073054914306215549289374845319956877273811905650463192026117426572819523620505953604124965549753819825247770917057109674245913500973597452241107603047340068757170608472377534007514996411640312339002102622391353737091544807296582329620676262027718743833917550906415670714372659807702099931087156823086796256542157696686266476852322700744796045614652391509501712404299211423277373451728922354861752564722875264543792512636412234053411296384641404062048071816419215483535812694308583835396977248856308823579283246979853020083615874097952468349240715169808430215402858649638467969651407162357390126507797815355346658544930067195320455091798179176828351964427901818743268904555226653693591874909293882531965072431766828820014198808961962393349100471781868638937327579889872807759841695230700468691529024218778232790658584112377124332866724091740961616924745031146595779263818226621168675705444628613015930654184326970101595263328109935400659382319049400820096213700369561973671437642797936589665676472820315242226283042928781885063792355935465438123721929971776650061723271294428967139516231211290171528426565210911007763351176203618991426177157194103731427365155062342650647078318351132511786987217326335479712817976516433309694950104175057643516301555310158971144130718273779801945238809667330947239616907747396595125183756256533425362890356086147336917660255448131767760029680243493500887037309564258905513540052204756697791528583367968521806559570420476736284823924252554212386573976425802410925347854458849660187991480001659881101473312214234852107694574601300448660840374417294066467423367388210877507019864165687618496976710904035588186063898123970002410944595641139905550161465898959539233196443236055064369537324735240218213643695002380117286676439637655540089026488834319528489658311185702112376959345888333743428389513620007319507325807674424096351519938403234389810650919207035432476471825306023108225926099140618941361216417893107086607215616383703180331809407566237216026431333647894172405653377446700155013343942756931447839708463250144873837065772164748696625127168229696887995790842789665363919939855440063979743116332897869096600348838684005510785336077223932732180963301988561052725432580218230610850197308553115793891161034384425487124827873640414001950473515633127351744028191271397938292162828876532353617351284188807088255277594293276702798400273014677118448744761480997423294881695573689675677880125190174504672098727426774054584617370403408574371193778020900783228616835453782234716032123346255687138624141610520878729663060698752939649446330796568608861264976631658759654348197658898190174184125103112714304331803577295904404333628855071440571209840360500675918661003368195758817160991431264391053029147812468403880335734388097153973127358763967809100199487563258829633131641698217649625491567329251403421908503574808318246705191912223987275612835873788715244984895813352197160860966734731200626012619101478665324632133480972234313285322628769794817027330358961540508091008997265338330979882322024154614664131185107614346714077056058837786767715960334119880704379630382866276138823135461215560308880437933373789113620786191705527136145158655024584769995537570026678955840154525479907256814815861248722137314982462751458963026203247871526486154193231926091779864000277794923106237808814568277985809476437797735922223341463811347315715105750121342906057306049665457768299638812491554197750545563399620964379462918217042230061039961610356842071759002412582845519729677152338799561094725247580186649379353214777034455836508680642365969642899953617170719745123830865210376677785923161596384524486252823726084947455188582218029625040045286306616883784067716389559496082573415800127167496718754878127018672491758433624188459369272943752770765640789358026214540645718662268848269309523740923453986908603698265872037385546541284978106026467240170097379112251526847044110177643207265853100743042482956831699968907309740979663867609859252981626900302796516689070427770414185419518402382872001773007565107212360286193218902033944162510624112679964144120404342012317735356281228355664665953048067648918222092366307609250779778759387364198994858222433540119488814036354754993359219130370681601277087737089145683185216915051032413656657325008666227059208481561600841656428719286952865603586695767766527508527819957994199497500091433626421257619817392106223479132466174547927542001654348293180383411771258632236692555644586760676309566192963225130679740086764322342382254357725497614689532814093458188247994731781444485971745189676908871997391791647934886380102717218581698736960778362505348272307435670907391867192280136794191195604625265581857086897264488186948271127275431353333129363127670952928944783223856222369968315514871677251698958037192383038586291539751534326557810240259442751742303547163837966858092649044050463019979640421753784176583219490773742568780969133094153724477305157609256708950666872093941724760507788263196916809287627347313480297547254697904696573729127360336711231157750304324036804700937524784747620126637819147480823700014105037756187276707897699808240651452815598813831870544969925831490599290360248297771057022435468976020459527495020940215899487662040486008680718475842808151919554483005880907443522250438305578574722837016400520970816289585639977353651152811522918423462731554942899740038132846771808944479953350777424384412765824153496560909369416450634637541039116836323437787054669658373867672018296820223590497789496081749257090843346383712226192395767026726191880246348226202655859552655040894898013597589359121887589590260092481949214830556698777688380049837148344588736691420960632900292347084102758228451464311938639703794808781107814496338892761728223030978632490271462525904077368341039453494909506509485444196941211538118505331761190390345566343551157631939145469495863246151048262744211879188775938414162710738722287718389399964854391152379179671077003106482044037859627748383502110202109926142417594321946639528803497724971277110807622764926478800867927422956366823434461232260608179936247369609642266706664259931459907194167519854352024460779320237849412496797058141132676869427052756325332921515810137296886450748773677789269769989481836388496045412262508123400283819516568405760092209680862547306514317642081502019676829960395165131181084904923701606461846568126599792155925782194639068660191067395763763673755440464656091271243493962707781115505233823755246334339542585762653934957473268889046583910140479569231996837453889134226480400272150630951665905739305509881749467210279369513421654657606080899137917753655234075417964737950380196391624773538913673743058961368241069833437322137999030397084779281804656618602490613967143970186428690327502763361051209706774546673222534709879067896062139811590615889256067499417893255525499694379154955315245792737342387308967252679456060650801857017977951582748325524512963956549904291680246293467697255556824149139239311011796693645121415449205815659231103921639883455983130262341451305123743451537169414058057989817963699310619380103385495379356638004463039449660094715445614416269211088831221261073860462769894111852601559413258751443586467133506856001837793606448290117085232146909024459513195452337643005463320915246548761367039075052921782276289263171887025182293006570361045633764519258092112587268223262942900668673513939127204922258505546685019406358260182110439677583474716024923392310168898484434985370809002649621587684259900664342485341097248568909769428644986904170823997617278236911967803643044972057266810750588794698693048182275416083891358225199603463862074805166572884531219750004429477940491391693832858065881359244195525793096372454351208714369386839251653176430410467195012465832443531553301369560174712467971717182177961970599858296234629621161979792763877621987647355733968897921181809409254872784892317896977735338245180507877373953492913184859931229508499704838494190465788741391130243155228474220453716878267740315752683911937849250149526723842313555597963688421096734221952132909081973057386750940331992381590834915536171326209010235659520253798455774109552997197162569261331958979233634855931437400568271120208478228640367703708472677944547144430245053982627167145731482230074719454959376649880798765992093777765478523243549276455553867116614244685410412227543712643924330532234662007547130108882554549780741778369198289746767145112219834630882444368224039280899402504078241149843659421063658158317369936856420987034499262834027655566704815098026107888110616815747575323667759350169647811399760946777282615973032604144869082130982502130671932127912058211911298702996121219770177224056162308690238104859291445244390437901419684434132124418564655871170893280574691153976328969577438952896358885176096400105872716538762653562202930763016254455442161422727871031339346675987578665655504709102233160381661421628756585586383390030769547432496324353374788464409157351271194755434391079358349674325072460167299586835467237814938865042421261581885660592647973682642151218789191913898531818871571378691417833920824237996553066653812280452663881388437521575154380303137891556043655792021904995259754793074823829274108916082874613026903161359168835087510335514568603585722575406244852145060874245389791728924786163997939314417452190036265117195035639134170852166284084865184436475123737173829372294435883954791043331668370353154437860967787927873684968823045058201516296233072118003616443688158186216745818273094886381685771571473883333103000450332316433699351792419766815143414250989666421146977861809060304842745234352137405361644893042602487866477509211289127928509407540674947740995182709205440984441409967230281134006043297301741094225666997874945881398270889728602541631457615501014430612799320692972389473148498037677845947439332238622366794577362517558019838817935563662980765154776306935210354627570683994667453066185483033469018752984906780536936983481581793735191224333022986038177511505127420795876852839587527403513114102031143904799014342833859430350076516470251412655722702773466586546736078774764037745500822245517602071146630667038169868221323978258548577582959713309158140443713361280884523851609977823090193193785590548191264156524791914425458395296573236930440737743602077832405459152990257555400644266113951237418454998415649113846198291938219099459207411980402890013340998931417021255734568298707233516281569570345820459584776938431315182186763134243956837050742776124631830583438068073658275458237316927532173369699576700873477587633704589874683084379167395114026317232482323431507439909313469645926924145062400597871208915616013004857120404595543663848214245184281695436018328962810027624387827039042070723005778169765598911296324537144021527186899306220447406310956008565555401496328362025753233526083206919246163576565711149249926421681751755193834229000667305737024390751836181119504938297498332349701229725442347926619708035953922377317700049783524107743280949931907820384061019857802358298314270738020490811948227665868486737449493976681361293745524546259520656613104400018207038601195055228091741152733512834006480306240197439970359376780853931134124316341781213052568087212595070292247148942789130377442748220856546604187743513398402678895755488866219482776070467524398390304201222028602838688354791084946430594444858665760313053459949612877546546489920797854975811549937565022468861970649251732821838423141518052770865588327191798726178061431681904393462958472090093604812580542452211637239978147922321004040623334171401654586204660645691158516467527346945960330713453108186929629620030328507366840078645970884209546638972661473069946800494847173098106536399617400726724738913909799998162435507855467507490581809044028413889313824613442570718063056617337339820904147286451971725860771642213620494038371689577899496806166918118909993638925341552933085011111876341456121328034759700154814015772591068554740712779955618512159277706876936319064841437218761074795103295559709100857167878916498488535680861556681799536603851840363529671928796661077380383524029763829415536376988581995760422390066443746484394759622118272479206927514940352905374230459165888766401501116423756670663567824029589668002298640007092760106553034405721917329809904755051019744994244614079483237883769781263685109234273636264090711004068457273228980397824013885376383088659226235309907877504994349656015669387057370710670205915470988737603594565938484537990458044835742794430953304953826248951083426254006905429206230113916539948038569871686003040204461880648010110645996129810389666736331542982083002392339927077264636722987269208744187160111422186083583184962879683166364147217406055823826954088226487471576741258762337857662469048579370497650010047341651231145217607037792760237461769953960247565641791518639245165645357073710589365387226217349183796888706325847316409099633932983518845337107360923429386158839797615258487086520213389704349618007025886279409229247360295479483933239942912351880994095355114248658846039907459129104588262502379661443671886962759963008168127515476235413946621299202665164843731421572479534654586213510535122742467160489137576402349170625770616141682125026717273531958974636893126248411472496372387120110941278462673179731791489328548812854395827202101629655253649792858590540801372101873286869861826810749862062633532471156665472479636859018981204105283462192431746072285834359474531968589823845384541114943818877139839333775847264780105267062677039583377702118639431561184604040673953034441387726992440363187177402728215924613899468916312540518828754188529705775354045975976163019962391714839206367238562662251744629584108534625079484220976162914628609328179813879195679243845645963695699274501365464267937456795879685012791743762312025662463966467874302278890797141801847816928946567306741659378361388853198077268668973032876473397462026368893424293259693342074444705270042491426274953945857874324974825372303053679562194530467137152969759995938882403000404088212692348941578446927070732842100079520011245166891891135168981844849820135859712534395849765723125162218432653459810501950915210611061439483652524554296062097948988532224714415666509574236017084930040520439460309478825703044948517950373354965961229290732146400525235768087725944752344949174999973140459360258594964101201991606518186946320535077262299086113922146922250669759968750179514272599650158299808471422509521314168031328502538684661594810245868368233964314099840323090334850355577716091638022299618252464654387649244912298705692035431262835170520674602038444886855236368121098188341216365142501111884786073367935258163235118703738343057857499002445105729193910579336312067443259507841943886950992952061623019333122154722788923302435663501106811717593414396575614466282607433259297435289994346533532275981077858797354668681177532948363784723620104278327077836881657933015571986485296244782002145298670888109883757388846555425188003154427634360270730615207916264849514829761380473869429049936187781859747053700800018732231074502152485087879303834528321425134674886204314893828194307569599434855368579774063409981631542791822283829622908668638718093071937811880583631494232224658536577746187950147704813208280209049896077859544793728016458528359896967612686182177633470728030847163378612037723739776002606483165870165375584670404284707435210000613433515428694512597536369373356498699279114142361758423735124416628886488904549559893477381702346010131434012858678033928716742103379061055942059572178911046438451789467699683887051399668691822589203996894462197020383624177280859766080561212318269556134847284020723935562463096931314826773762009372033982486481992325001708573857768519332773045722206988611868616830748259987431247544540327073351586865771897284382593739900466806599101483012270874487121804757218742897232343785762851795321405834821779995406408343607134720970994642139704969282209656582796457399483214837568246373420381591679517599397147638515465436177485350769531089354814261142012855524102615795560444032753628984761322249354346301449366292633724798723351449648593044190789336688949118183457558085643236100619691879509879317388583055180203399833215266410922432828684920441140779306426929460061752452710259274000917034937912074635121701105458995859834910548474580843281878329270511190956042955520805578744006484051331624342310222739296085134356456365627828781253839717391071731809119135241362668048295918470590128309385120119688394833169971781883314265131769926249537275345502973835518001458245867014319786427636215099148134599542972602145580822483156296299973436435553978216581039352206392567435444817641797354364808624640489878749895533343591985996051570610472022745943369726042564943160534400951214544368861295748537676284471990435924440395177677036467726449594883640682760746785013640894138029347607657393257036987432600616151062244549994284439597374000664760051288585826319238654206315806929883019964071368158350938079731441122078819779473128900956842850581864016263603601943077908693314696211184602221316579296500079087611069781594097888204017904097941038674983879128228923387106849150462329229303446874940380819343540935019066388242482568755853731079465342797560548317949025612736492408989996200436329966010513803775289296345577669299567275409229534461922483672601615920789570995750960037659863157877470237552930093939960317388471807430694914572467339183192053974663563251588784414682699490368825044221713525941727221775543680844062205543149145626037247125000957173860713214780823571020392318102792846524885154392591295032408931898732977724013612566849999424469918955835020014665839205999163592596477925611312538768484363809904247620999959018007067377834629280110362239834596560808806440756849143631337476233342357120091228838823960605831811210368899870057329372219545804057100520593820578676894627579493381896981110652984045270354766717522719865235697840003027243890794644957253394392816303861265797379784945423234780891196900993434213927561956446072992425047303908645645116817684164237713230831166864682980010081625942254930079935486644641876258002831443546779051228593187115753631682832941643854553408099320529576506746414239716593718252126038297750890619001817587058805634330616699296093858253478172708327223987811876956044756913191065742619006936293162256600211044336569171870287218899543334629077515155048225113616792987276749972396238378894079070739460458623195261558210544534614010375434136887244640705997293210825229750215924737885054812126700868631532111164085224589149763642352457614344094453875142792202023159320820963411230280517067077192988139522347109081212322934475794843005919209078285238507516776056585472534479958706610160503610076776557184306469481264060765667815076304019554589533297274582544187049709503620535315548794754272760405014634387877550293142820735940403722504553110237213607469523583200041101693704466426057375300671790868233417579780629948630316625718467874769972432244461272264068473266143734718051188453301669338778452166807521037736839119301700077899398124554064048508912900744365145158876826721211473148909311718139295550598147023217952836867580334721580231996086138662972439179262206677075394069813235210366100549652705552271219304320743392915050340327216097502483158510124106372543483672058922886328229124503555897036656573814879569027013173819184238655113783327041050454544253177246962787748663456409150866841151110007944768901599763673696778581331999407590931927696931143785309688268318228456333228010698425243905809169088910430120940872457218242236839782087335393409073504375391480354203049258314766774389406434651101645797029526655696019613960358769340020371662111874958079874465072930971171113676413751567815098168432206221957186114416235832148374337190642721631328630498635066084221192568039240323410226265876076175205149153349041115510945478193988290366893449040021790282286832658839582611244165582453659611610547070039234825629516861687714043542616732008222063459509412040753032974944335768152395381269021817872740468657767698252202511341251857273873312893021585287896194169295043775816799895166735612265174599844089142372940380754668924790692495630467144047050197386196326389405400660751077633514777050920392128596145124875176105201311582752778370804678237076463626434004365890976889843760891631926661081595146496680395053132840081485532422150726036219072844655103764579404898625644624848271832088267944089485283580134254020496969222052709257832344311269086309090600977144004998975369754826619712649369360257154840846277623729810153805763625362312086730684067225598076367518741641269278251208408173578444078124611046065571548754533324028480050244033010500625785762929346211319989515918065145707314976953711188362217613630119788325825497345198792686396269805578208257739585565160018888122475543103033464381417501743331000857831976766554120080184529925387664530423844326985096130179449188603504426902114427355829538205547745081225693842917751403373117282713801576254511311555719453238364348909516307845369185407425289937523802503647800529313897379676862428196985471729055045301125355393157705397943697515155208541964114926197288409208648314582134782462934102991477368659371447994241010817176025720182497438702308495124136293451068207447503136669517248324117841631429575904694396401257312648062247574788408402699359746965657220181063056533268456779950994167065093162751921464751934650115988365762393708943896492245134191931913358207367931631480712897900338664676500137689732674528147881686646437037662629998849488268041475218712661391809649885916189796464507875889488144241281077934200400605873543667996816352087768902695471692661852316122898766420172913100452554894371995195224679399299711457795544114517442136289792904188781658673838338260383245723820521227390853116108233771893526494066248691024582403296975168231759501635391753562595881814097025617640960653351601000201448638933583480948692861717083203233019786682452436872322582034875067623580556563985937318968717934120929990819741355407694748216007836058457696608861483612143030594557153783382370227682159448081776159732145125024149152094555506642999920842680479096682330579767196985702495519954401742328572309710226657768550112400475992810086736812439808817611473148971781927285240828948163135649876085052842421152077062328800484054256965679056667103244450192622473707873631803507389514942544698387583154242533892175148245072906779948261081936825311757410210416986953637245600005400654412595455426842162041871729460910469166565626101341597898762936785531577571102258064281712961948233848897931517987634482134622585763216295104190428836487243973857511558665410311525881233720154265901581285736437829519013130848851636300263242176197425695080342127055828784461926517955017907217131022037825200328916344054996468098449196366922298120891076792044538975179261937962090409108103342009622263162823520045264514051836238720033763418221182713305026369409858122589209694439148260345169748539797568845174378901049060057939332231210111954876229636365233680960550338098287956849660464728228757183222807548843992245316287535530203043629863620304558412731799294517547338535401907937524366409124661676707373735323375836940567987521546158576038961821938996349746599016168997648453595590460877872933108394962098682503114325589091620608675476011166988315255607502067538950809994439007360661724930296037201658171654236559906430296974454923970000331213063377670554947942251590416878404778918180738026011474177148511296358757334531808215432119355438827206901700908881052529523552636923911566882952092241078009138239117718229194688433891066823492973490102023074141030843021768328091311364022322866119807981962711231729693301853361729939676210081991812431013126856525764257319523943506039708254813949441990370026554910096704371442871972458601921787764030109642460878149635117996016596996771692709834441862141873729833804044995522581852066709064953641867272688092917416487734465354233604881268283290494751801425062624902147666155923863925106276530696365299229559987833630016877453526517061590109455779296846218583374835123481747938746746264214256586060720922684968102325497230324718878977206145730172021908847503994217196496277782848815163380868915727995781226721218846721005389038342857627600301211967322043402310902123343138501966624526836366886972529286209973439225335080765935135434737333859130342841656573435270173917425670670248642859939334829828641929848521197152508433410529412171242831969793892511262429438749813259231917144680391363112928402001301840238397688991434682062908559241568601156164575066305875786000698932349704918147659913987661011853206225207114073077856735439037049761845216960185836614557462276030648324760442372233366241625071721791163197725346892900157687086667922887219870160676250684615311497841895748347195242250327847317470308215879445480798163981187217235808747232102623522983581750648770896779740979063078445690737593549580025411231456787741544101191587144179375085792362935607324489575562270336727406932872072010016229499279758502720851075489930326984603660090416293958120137499622356426757030220407974358061920774322546546921680304500376587909311760982000981577220912828493050346659368190780434111407474275880806098577085733883641909679325664196550583122635406024502785739823469675321081737817433775322839809049214821646763126122160190366809749837162473975100892116875749364105469201834784260494817309988679167476197950008979062772552944009533102081306011058990119958480799036337933028423556248223189303928925195066538992171347897350143960611841082497015424773263300396229851873636817471411649353989252526341535015655932111719115038918290061267060736320895572464904225133854844173424839427659182951146875883382221153900705410496056274534662256168296836650684332303698935594194064746784226219502541376455744242551887903396578869186129500369043209258219349346842783491215333941578257256118798935822021652414362431881060162801079150262066782638582528912805444352314697048046953669955834471529072506106259272084408688556855229151326631361617736523437026319947774662178541045817305271683543371077066082211980377107950249497370879610860372330556023141796367027649089231520891347542347900558477260741782788983988446191027659273539119784761531231195237130623248480021203360251835311786711975428496257215568420080227706761917994642714346395665146703011279675649518946536514736066168005818889635498731267780489600471240406530328454236307131677896816743336064824206976749872235774993897491902519607439093885088270040102592359014739990881027942485382444701807015039204493264309152262936288623826708858326863161058436352351536938585513615131998723773393691039980024534689220253882120531498910946233922006515605081933465693016153468951853513457433098691945685161754441912662431509089186091578690119240305908620972098667916939708445053368441575294897258569202139392067065243775875387695516397277640671993243039191808163250576003578280356440383524631708964381466291207125335219998506751114103500695022777186318733312704136721993975308677759190894854957599005897494084781189224965800280397219575931538580599327538520359726167447391291355198182648554113402295632036100124872528133026534786713207025025540022210267493158502225921555596853630200276395424622179408052040946175748095118787980903402532338660235530984525600988412986449544349595758500205770174467839902633223097637436476613628661611052550907606699920255845532203009602014639047373090289786382440207966709929294257635082914670356121942211918094561417154883400654076914066072645032268115312700405788587367322972118997249725257141260290451509186877782911943397983721604421539082756830319684071830125035744286809795088920423583561783734797490534921930566023237750635342734361986001979691502877836871721659718359674928864767770680031495838319457005252327643198275791043888297480354655491360778659074174250440847977789059140766077053985958970500156914889953653816983475014564241992548181729305746382199784950752173533245475084579779639355804260412052708462346038424707470667879478414575220881875712994171208964483538890546607880217944499719416324497611244702424305880381265242462670797282355816881008504616073636207220249411810421068962539843786495604316582589910427612754380955273714637613768176831261353303953455413644218392293650289662593949684973818830036735937902119383526389848348831734805788859247585658612795572954554489689906326814253634364153105813912834085615221404000204915568315747145811959703207483351070604591638929547337271640102374885242572496764709326307335891935279726054314965291978905231275480902596743858717283728573857037650646832001676311233589481129370070296703834319629843077185250718813599550819405889491016063698720558878848027263470533813151890487097013048058672196026139647617374368861221561471458802190914669204946343451250316483853528847987444039266373809827141547792276824464573868850264173785727788120953081082672038390348953770360531314073398791364662853253904764672421453334394451227589878416231433539136838121911432821344651918832916081250005230478490517245977071317360957067317058212025353604564678872015270510965314649051011183522543814323092088453789841425246050840554955567969688900816182537432618306794883330792733972781668903337896460373876450268389261052279241859941934988427991686106705585381880054748099464319113283346470684665684096283603065130216159206373942084918179874517499734646751152374846970252244161172117185118575790671397866666575662195192276030786128259606243457411928545618983143948544816454235146781055215251014421865731941043946500681339455438358285734312271325670966530429322485136079516840004286338004672318242457660013117310913774049399812367555530845898828163713678136548508050447490250536846242494030551498479133098131963863994401742452559807023045942898416684105097338315944618480898282111193077535452017489153944964159300492685365324340464989998989545309423741312764709343835849538708215391382033667533329244556359221187717643659359931013788074671484128647349835000429645322682120291220090000861365505902336716993001850592153887290010837092193029517482227029522053913338403150887484443712570201852972879815151738001403293380665967347478165992634966821815141683898254704718400016352368013531755528332751358210951896823344882196170049151260857507089353112110662504914256379363627583748031512910567264947567776484027149720998294362963667577608612676598647691356993802653592809518139758993747262030945336266487435882072653506107662496256900762426556066751345702638213584140689454546240025393070283179311269259140601063417312880151315942965491894450535003306900107626547952696629927987687291508549407471571979331047217118841035586470287896176608970254458332160416411877017555610776137460829201858604198751444904131948151606077416528133185337942506645749309323669795618974584323321205136064198786409353421882881825131507584821267044834946188032086658411776015911996762012861601875417093892323203659016966516961022327743172693656074761895851396175495023785057203304388608147373142373833433821585439829740503027473440021067293166054426400489241631964828899565698448119912756026046178789680309575317347931352132956746296155608536511123077559131170401917385984746945888740233587986067977850823461794273161257485167078575967451507052297266303637551321204280689122520999972330063380043171896292152144900188578785691002416407488620982987140380605513222765319443281959525204828574512326393780096922329437326914773665530895423781901790803679817229782331016849369731443032785703270917675325734447996911037254717321027951101093734625784515737319371352710302303878654810314559061524986984695623988749853734096881915965637439104274758769873586688243940611256034684741815812461883751780518865422907838108659182017813673780178067112520027254119025352967032867256598046901950202464568997262833970675619392808790463387586052067250883723308022251800752862210260877902440354944951252226360744040697767217387300581447026428049138189365800925570344579778563192057950253057808421316903095710394576480511607722278845583901844208121496976207470663785125556241015961569129476162453599096464241996235719873751418266144429466346199320761636340259382335489667363063115473536973397109915636430279172239278654259363783975889737672184067197857180572249163104808159293605336283183961162373812311067879423300766531146709278016384226765606891548463349748706929296799354511529370673164882230226996397081067781375813599309455848828665211846851116998033538386893040952223617755447846499851304045398031544745030710372587832755699276214600439803978328827580043840682389790101804786232743359523906777884731926231641961082518819624002152669951387313393583325473408374978526968230383065011504262985160695771607054907716448828287005954830147714654023089200601174122355744951415434549931230551023055673500866207199878961574937017421129379253734337253779893028829838397585200632676413720821313825849332901601060331435226029403650591051539071784808085657299042310947850490715755642422770837413497915961433694719107526307728413059254778059871505457262841213546911807461590129999618333229282593455143397951888908430513864912907809369778338558028977681040194969888502325623423932275226003117574268866633705878082747656931781415221842890939286922262505131628070086152354349392866579279490220810567300487664323925076692468070634994515278006110154995476598531700030276757635706211376719179201202340811888724887827980886056007736375236185190310541148253585214949242127630516660525165250431352347807430543787553949293875900945205711841447721222456240583007589810977293412933652576926755391972463014039500911700210547345692726960158964747895556158443822809131031620636223527076148740179294613495708024702326861184954825543309223142669018493591867036994194410256619593990047792612061299718961143572693783809280978164897638805760679180274781358620992143583562447551110231098988610710935043665268902078865727889333531683804981796180477037403953065306478749991423896012011725149144216143932971949179574863571521327743831586805127920190508734533439057057054549935225198394889818088162256577273803596183066395044192184034922632004972168861842103753999672105342078381751711626537971048144314319360598915221506112932464779110600408984447729397633189920136216242324097132030766850012173673849510189435583476563990962623471819465013113431998350960298416336877027985340332209324587471409692518034699339853828570569933061669454169358179598818358741129963681272253615350930968043103208510710531679336176212392135627778501467202884456964487253028523645640283200650169411902914752128001028400941954646862102154585715025079962154626443930603378109015873965782731190570485269860660618123992473285499419280011667896035134588055322918270672556117634319759162564549482938348884994866032138945875394311599705553828163885989404916066476437302044268600826082151748073995767203552354824795206902864956830075142788714203591716303739919621864099479502200456952108809379226618581751778047799868912720090766863968577976792912720447075577829146597610334487796838540017442225048790679984362761588362298601514378232167558130147065399591102099019427717348351567171736189396440899410554500043014140588163536406059871255819986746435273128972931248468135573454943768274163145421817978602827005580095518873720614866716090842133558701664319330562495221676610888815656478319836378448431557941065445544010034664153347242822161661279739803119543715159724289412534232257754607704647553594943609815440050977134339868446046742526350471713143556718590461449555328882294372988504301967390220720976094741566609774311553943770885862303055231768579955879045319889660996092090476451065622670403547542774114308767101453449822263840659595484086164083732536934028304240808839403252958600867985978154612816725470993635744347966764655436346195429281461564350908926320961068526885854200139968116430683806655676285241327358595337366031480966595922861359777212705568201505818780744061756647526088061812662013529098123331226107978579998453004457076522926032354966715084556693148886203770580004913052513143510083053630979527770957233350393430745556539905480166714878203973397246773588900113700387290877428237553761432749951500514853151687419847683840584724463145366752752604025257570330381134806428736522499654670007335608392738347915133143193238958403740683383950058950021272553098116015709722196612380933762910692238387912954151336444082836118765830501477707637925895834554217886546282608470734570481045234514736862719214102815540835390004525949261503265568425845313757669246413304971184249341973880501377714115036681155403172796195213058104934597470969074037758494563451059175306841488089310832660672719120823589720321025574230182597584830992394067309830942322482235457881380828115602159022223409868786348302653240700521644694361870079340308488719360473610512914108907604029103340738408820338915179980417186839816306077479872988567597890871217535491547369643564538336265077944438125775171981922549833949805769831545191640845240908739042229063791228413259478641007105353068672630044367178020307613417921787816154564762046127732860775680460542631952201231008283278476905377574138131623259112186395240011597528936663737534907590953088369159660380371352462506173660261727193999823007923118143066088219513370326091816903608380082036993858554489864696501080626746806342424679453124443923486327307454448605996886563665640072687249919679076744849019725611032849517656635973475875094086911226470594230645303244215932133063686349105347774409703790016050930473185932148344947436976199728193037503311800711375701757831321672145433390808102118015229454999886469260696807535750950099225629374673527870217666288251282700071312888291397755839831851239539472458428044366501854729365093497308606750981049535189932626665183398240993678858378695886902213812484659703444933381170041772545653504918749739539226146737036272549114950102493577451913271956608350767079170935991159373053756955312903098647498570634635492276038769646021941390903009766281968315894317462074699668437017261047942114508947771974245578217257682036026646824848789950790846459760557440921434698809304117130498119942093269043811733406893761575752152664757727628075228201490360777863089469161436612794082791438756806473234099951425338565700554337458716396997338457342802148639928386350769733878192218940671342301838920637332192994052756176651030268176099894366986896949160825983593407880949451412086680296490736334160584952070112038721143929568365550807194781061708291438009289068760289396395916263627337002417018164032259740010649319005697479015131539412087504044219569309100067367968424293961496611866554039748268986489651905696095694162244035558638676734023829224816403209708952397242416096412835608867674655706941980422859483543317117609257373021567758756265484829077470272614563349497528786280886489017335021439165155064677306365334462304683256043904335766875020089424473165652326429310947212261446761937007749588622888397644857898522502134950992462836131795636173537342474761484416141060594149437938350970495279430542194543548998627200129519639586096751113628858061646259047857419217992796835464508588602691929447734074802067272047936789770746808526978107208270564358055518972878374649947732405822654726522733340266610382182041080217218117821011892171980390687263268842086461260017005479238810604667593881996549469359364276938067743475409149499973098937567115332217876919294324249782925814073770654069339869421896324291455859822370937030590559450303597518874944786168883599305632319033241960148254291169508959974000184648007424673281305103233140631178993992909139549636879219154725517881072337083683044256088348133011466312348027230655382318510462020627413066133166381674679193454902274082205928591328493299484008835423646656933002404438641338712560946989574931088306814901368538340568472416983483051494680801750667073907319078962942302382636517399666587221042753680229961261637685063916416623867576125556301099627466191480813773701288345204280483440325787427896208147794818090869809905344908754407496941628626721036428042681179010436210850620523697920179677561379861931029371291780637028951272378904091372321294716590289755144896873237482971059180359308464202858642555646155983005549209506952438130509450810758445862228768018084877261614434816498116510264098957821857108426937965134268094985000177423190619050099200006487449287745856048849602609984202477163098638399313141828792418369956329035236855231340162548877908915526847699638570233574460081847339291819645495665527528540864263502825509952336443731514387810321140390696460171759394485259805960213390064418386485772586448631605029384114846594864679628996127228289238830650603509820462079673042956755915946332383899284488289411549095345525571071082135338630652260659065871245229964235407944692182257122186339929101491045774212420766319233550244414691176348545697176359045965070617368304861244875099468466252067763289095987058709999914290511329385091551249494419848545255488917021177683151280244501268357332095526662097454082551309416567851195384287375408041325021468731507218855709260582661218212711021400093018798682958745753891196707421459662202344601056601364255973454555381729475936853565843390740998341907285886354905149966239807633229419439993508039867748434730458070156944213925338304986914912002632994914262917332457317300548766568970771059355545758653716523518671671314597311878709933285120575843163504647280214267113893698210874784934237946177123755211557934684292986085317278631588951251247564862094120727656625192897191715580957394919394127988318019013448439557037386287333668238995232500368001957348510060706348119381880094046814899848384142726325106343969294873378248989484363615642877535737248354830151297461291972596051548920568405305109131721591530041403086055858370077416083780054922786524534365363278755109146542441531883858895281928562473055253146745181893679264088079842833411313847580984363032266475584770215375590097485067460666930689769457506703169653668756780860775077868862740136274308124290580060263786802542724860378641941410769828272864982512919623814810334448776068146051635870118395338180382510629343804494303812636259374278788713086622914480081180287620399979524511193123068078616185278815797497011748823565486217731598999676848942291253271543726792973503317521749858294514772723959386056689120347884030209816724740783862361762561408885265190973581849889933018080530538926107609779287128163124022429136721573332723096292940182801250564931763818464999036118899175736864905399063949243539112541644300381584331165778414617109732568055691397469244349218155148087075481754007099370366358427036365040762201231479401530134452516543062127184066492652428977124582182721934632956678854682129292673053007439126698526985411734883932673123384245851881588410028598457035938143426699641451745933347058139050073303210887695121773144357554050706464056791743095666209862397135218644515650715244956301523030399104913218818628072488249916342742749458294115052764891991722496060692777986696300013087093980107473151759670093961151861121517453883268787433623593174188702028577952149229407544274840267493832556969401606418269119730739203084291886786588324410604792414167551631646963330347993403327575113746067534577152954249299381078595718763150313515566579156078732969997718605193960571671418214819149920552171154565164069150989484588103173057523361302585693042430408155402334113065656439915261752257449603416116270502435669673324913830580805534531978445273151469370326143958880156188331373308989215717938949772436901739226244700494766690976325771074391894308904240937944198786818750225153911792210456685757015939448100410698186519582275575258587716676947142504546253427779811348406709221457873260627287489259443896958172091268850080552785267872682169944038633910091270510254933841516398418864493898965969800568192600618421434982443146861166301153924138707713925054337472723240109697826910651378605684213451936406578079258162316722328014047080034200501654792918177679410732827285238858975622155604642297112907588322868147871539073448773101226953540412918099696834666959620770158740048519900171242346673534434905935389600663261845989165573729467251838172804780774127099997691753767965099485826917963707483472521828254314196460641102849195580700422093262734303274082997982005093949520949870575120083619284470967681449738131374198122084782354203817456757647097811198948316803676667953313086469356723987982509064794095208918710635855292807528089752118716434057260373096403203905283327587009472434302401608125206434955633179194131001814931785424928938684137998955416703970906874378046059856076470119802354658090035744577782312635166817294457269013446390335089411517862386912191408467374917375085506199741351026285447295863773101877702994937866689911525988250621999310381432468824303196381627240147717506531119799963002034517017933802890626631285614931022568074295712775778603201137259159040437126184318380516073583953245078328052223803618731640673976429891178164974485272836594468411526620731560746091724451259438965854361247014522843935382295739010852411732401102972437714485838692719563734106050890398563986906737274880822062311794559082113235886675341539165919970521727693391412498546382923776825590181379037933208791095676419410714753687823821002660403112273769976310085255311915549774499225159403006363163471659954478720630070991759047494917794257344465956712932009879650777194798572486831910375622778625488948664717674282350153160467237693817333908863868208538617175489231469305279679599604155977237670533905268499959455430182558273536035750265233021599603255803613755908788017612232533684841134332568942890272280398198952632863109327559744494259873641404543038757834990168878177863984369873233212030218105697089900470555806258881101676303806387476410004266896363224541186151233434983056113179722078494070903126513244458031429153615164004226159729467742063891259895618472294271376960394359930916979484088290184939661818702120088469058105659627154784090339712612793340349083894764515798957620377202018856771250756146934443456160712393548162093597974711195280945293818694434588928843651823075071265914462079140545089788267656633880437321025111068181636706476584368907407638853563454443439066225620764699157242051878015224355751006634188890911160241378602616867806996472635644081165544879391519048453692741261034447487292031709178385283100809945550606789684938705892799748852638876849423566146654461358728784917571330730668085464027515586208663189801225963520929860149101840960215241471301821884599595057364985512281207537471486072686069821599039896484027152979392890915238433088137123355841922453467600803865090198021421414145576235891970397001141161629863518973966322055255703476744576542027500835789993772187642770988503944120173619455707670232630307609248821231971763333887385943334102764967763790460516764978209731729065076707417703659072910767591900020239428033246966756873819692989039942405033511227088373169425016388374618904808598597478503244948482270113729986636951862107027833217164125935836826449519788207043414454679608541819265987545919617456264220589637618157659503822342402200656669902291512425628512319220021741709073053845466808792014392945638158640909049892778886301381792602296565183448773181284474293440430461765803569766930917051663965400103320627223517217262356620512390185090663042968115729153823724447556657488234163115824533069246451805024815951774640380197911643649464816013726412597519281829954262594062723991368658327308289435143369234539493075432745405203292275832382611179363009253235256865781687122125719996709405680364599992784773929170220890860329729071294159700269325890638699172490845482352367118828955824794893474993716519757274639495427345907802041500784183705069450018108536788510604211694417562526027736594942431994852465515523928842820298627404750333845606035725295758660339344172921976164070886368785262696435456777632927260290008357098394081639498493432057602891230915460982714808587179919020761946272373944091421376876532894286863441576787069796021625340008692109410384841446492598276300036678859289455988485091738071854645849765825897386431485041742817303239510552822269091470543298691540486080931829738554962012734759272533832522849537241038832738885486576331448063329776540421391017167414345933100702374758468444134052279592926308892523054341058447295622448376083331128921808677796843472520267988477219792173496532022871283756124164118524086793604412139657921067354891987524522272563383194988426481463257634834628631319423642326692135507861804358934524638286247436873498453290248799726595936307700218028830150387112254923474600036273232492932049102903655325479014732866315056652285012654662069714501895070853853812307352076718190545287357100795827496073779443153189182545478869945992115473290660833738724522955711200198693242468443207101473903883350354016696282452813681536773163080998257178128645720868373659773635628636186522873767357844065754319630835707236746126987090081617474471106443294001728951586759346279808482080622209053876186416609680366534564345971271750008745102460476868068664800377408811799210767535995736027049496952611140880199531281995736379449776030537981095734333079879664477876050583503533546956000896843550273240929853903762143068686888891897956807502280003225699835231298489250452004125821328374695171974225828111380048074019515741174761572915261869141413309615497567595558066417921457199053933457655778440194663948367009381019024512435697567091781980243535549224613547625134333727452737530387533281411370457164729428194888956493667255638936600029672572894973126994683426463240112619953164120966973443664997918716102166965809136852231607529435572360626339743392591877737496369266699467591807224348741556850766836837476746038154343966079656769322156152410809974195149384253273738947323915462871913382645694193141775505760466035128656066771885859186352318042908584839754683191075613675555131629704573098147921637296304990884996787641715307309131569912423928426578126752490290634906285738454203936023266079622124418801670284423354725077607987375805243523466997783562110524656110552344637926979104711911289521785561735643697062059575708039462188993104075340190678672035692949932454334013949332929624839842109506259917606745651664689761728944475946840145851862584199973064351440327964762246525158701745197338753588972583269105062108561645780397536705801858692701056037325528580493265271548902020767565516030353110185365332323181445991016086260492585951503807673809857225239638711540239478257274378610042478090571977729849157172055378769723365363689355112223818048443274258935782444925237369977316817396831323656331471590941205551694833521847786334571573928522424691241665237104519055916683203422182654342693426793750270081194041186520351600357403985206960148859509986952989168000769839704746361528177749546865114682366274546921426144422003345132293822722743069130034782368483692118004879987878294679307172421287940870758441985787264257665348856570775568685231368125704057482380687622003785265758916758354266617973490632254118856429568407997804888829765490797494185766363059894017547453015090754178050557928139785310894143713956257670311829726126532112423849100849565410336351992997542630188232122460382786411905571956422342836005858376609634344898624896218709580851378623170975450851752316496477183654878724867245040488573655465019626113028577441864277654139376440549868776182093538824713176839498415608823265214189845239483149391784059420497440940446837741253000698044576563872203790059519091925206635817422048417992385171290998307182861989973404730028943688681354103910693409386396218260050476762031885496069834256310818422893572841605945566573567592502094898533990368015455149311947888643530901960968900974391404546956214671011353529105450024936711737030231103916539739349380538311491501699546022423078616084945001814526037642933529654774773812807635431145473511447436791728594157236844664009995926283005302695072791360095792750455685484654956830495078839780367394314048873363481332591261813352278901990996720808737856760356700124574432191458334809553729234717273565398728595296986054518814136990265524372090245640877259725989288428020186410790660019174327140355668778808691557672835537251716048348620074098368584771965595654618606002825542366687504419353677674018694627762806967383985061923512760195999208631682185769114117923229646692544137304595207512693401757083586241142117736434804053339613355458543140081587221132954987582028155566783100535635262952029874467650454342406975918425310841247739846994614802229587376233814235107384428057213463665376706938183765749269948187850284956443523004394683383011470950252702588731686647650181996828640819990311613537328620465571357705682103121375762925736210496893367793106214041239731167643844767724266601893206363043767210214001170299726546866204352141003718489328242801864891462380009850437058463616470183338899267138367038055483580441218541942746043313124212381434452578512372974415255817504483760102855061407150623119559900240233277049634545831731681964156737299179320005972532992053778097815057451346311220528432443182366700891694823559637984172075821223622540571887894748580341553865902287594336059329670159545407919422740605461693293438171329707757352508931106495849264651137483354880207892248046292362532886343098612669281642468648911863650255906373240802992889867650927874748491901439766371782843355802286105339026046199399030406181618257393011890041076468843207061797109373091673303681388349713536932970057235204672905653527903528133326300446659465705408016952390012529186206041348236507238457235477014796420747520159930787521383340494737205839548288137107004881827811386222737147023678476839636652300363108193965586683133790816312304338772742099931375183889839811468893312600028780630502770159325808667161216440669529039241242801802632010260290732123806223400345764997578496105172617528633832057482088833514506564467753653487810026719598371084503433901563264696831231477757477967177568509763111410862816939619336617784854061192657248537463158020375523294901285050422195262563760886830972466772848005805914723200052809394784737266976145202417354858523220571230838500911522048059916057485139442151195640163584934940046761142375594122636251423783803933360681647137148730160692266728940582510469148900791784263094791031716631452263089828086957048536158398758100737961185843116823052053216730573451353008495010252915247746274049520308661640045098169593697467085780484653037076199886731650885242669189297026649288928649240622244078699654489701961141716445952659891451202523080097316562683798372968537151083504475470924155926956736695549146122121621936642777372399467677001007607121832148556292204791290653656489830216500628138403815739829677208623803606995245286385692609508045011637510550849015054360238794829237678018828027115518876723808873216708471657038786991939354254231941245838540662682609478941844480041859051692188783790939733122248464946570997056284583793616136640832225979989628691759865124119942653365051286343330506970287977498510474655950760793505073870229578285734339836415101857920245925658141200023166388803662284710214640898964998413991322747749025877464462738114969564402763172350080987821807056184051247992018067740483810790659278599059345072173873350699376517622681278407994842881441073857397853845778113112893796937630001798952067909805407297839190813068363857191280758416952840307818205246061692126207991288608903453295851484420030399388686849663075033157719716860266002472891805584660009728712084720863277348614461284033846876425637756731462064599383171633980898518905313694884052281338050132970784170197279876476644657458227079221220501619360603007360917417453487258169054101799130422909974074734551552620662965222303074492594974090325465533119315647243714714762925478201510626251603699695742370797582149656043289454503713250824393104952042703943391415668938638788803773020705503996229351854148785189912182511016673108218458851963784292870377765352603748469937687740689671340026466318905320622803697261662401854506210247186375120951130347506930475486957824785986000862983246171747178613842639857455367287213653748277248442660866082131067711249138459634910171111494178919601865323845402595005639746373480750946908153687341709336891586559126135619191707881636548247997983162423388004085206924003965505635563276188573013741149537216496725582455010796966790399870902648228973457924633757166523072157952617274965391718784328840312004426031144811553658424390225716479830274393757662549743936206536193396152755099495904200549034324068548658973959976222377758277343829447709343321018037037022134392351395495852496187447203281547025613327159451324034806039155520539648009206124548991213202872718028759553440460529149267290677839159132554285086271454282652950572093627966781042340428009324775584667329475838538988631066435429510921443246446720889755790161127899253830548864513217524651751111569613007773647843673848129259348162511614465420485390085661273554877533369276356303487881212409301816792146709278930270944197964715384892608789990744677717701310300505057746760414197439504086982492165955511601377987465204925119848102982572012168467709440936752495711436434886776104775571705088645384226825536275096174266865831890833587779609178751089901482294155437269661512841716084967225493351091636106460926405420171250890321515612362605628370222309478584707068482697085247161161610532842106856589683686727622914894150197981181765906285428820108029053654944866243404554885135488873157318811708584523371416347301168113080506651791163604871068242975295432728877335772708969240366903454306592744833359624009928575317129584011965225716706349272895382741587141986324328391183059858685898587641978188503109973180380336302642344033554896247588454883142194986635287776487996892002871245148073488302173484117006723385456604985983643461857975412165253372634935974855442356313964869938841986206257887204964258858461168627905614262317927287520991797126800550715632856038851295557593457386195304060810676873899137838378448008824493955348851922730129970028158029978542020787823328042261419285267265914982140442083042246617103603960759742156706948322465565396390083942902941780591496970536813538665132280966924573399706737079796676448372240939889761549358216057007605779927560746552474231123725397864845758154718483080735562699318738377553088232562446174773335798867871439199411360308068216677869673519235008461071542268952261536443979528739683683386646767577898337151385329229723050501840435413482646962281545383967216935865493173352106460078023305450520003593632760035672201382324162083812370214704846422705822587961263358216214161836593104206483841683690956637358584406180664934006369616973409276707419354955780274911053628547781758363643906984807668432977392702238970588216157526804187714765498775437963385729141641686334988218920518411664925858862529881590169460677125711866291026469548960867637567807601077942600120676717718696173729082632955941877476983580870048893586375447896189093336296768086784963875271681749995191987199221951546829174071304652789108334831587183458656988329640814765382605912001915175992297926774155193680397494987744402830996220210114197940223589228731582948579292538107257501783521903350881271132363799738808637050476778161366884971801336263761044935492057637888308835056092194012946751289922425181875165858447486958274156144745775570619271419645589210045102075762302910130104555108066335833376466478023433907006658554710972387342413259598991532415460208987366543309372823635465006025542781280344205354373173230571782929806653714719842374545446324306030162766787884952957877344337308986289958036591934302350940174387220031629111095898477147860217384588239262198415915906780618252420349955616686273322015689329570101869716227663092821935841782215224934897000024804977886716309064426685765563168294013219208162116739696218904571562826363818974484597312126295824402690134052350979381346867328107821515204651483354708435295167860974681566453174584425532573543074040032412800448201582702115743050847400707768721608399301680443044876757520519942556036933246898466762908637764644249726017079743468100908099878119489601088290837396254091058861454249777583704083676904155085600806813409138520966047031273122295793325904953313932013586771697328289131667693801551620970016165063387117963114027429514599581256582024866879975198279382652092188130828716969963993048237645812402798841335173306306868120623883727189975121947426155006276392890545131358030682843706198837357522914310175492177394558919501411594134902165963109232090094646459983429361321108356176543056073276207469738163380898807710151682994105428766269112250927306049630578005482822297315029472746246672212337597168641015659479546022026437748369068207008625632434745590000837831243120868670834521909302321970172349639593914573737182349752812175703796792677633388874134615423835816500276929470301951988285380075020883341025279388724763634506493084149460082829526203424451495712620750151363325105439326882241753898774345089874241693717458331616845805913301907061258116340500028804160237500177003122520288192116438784679336807621531152458278045177935565793994903126588045667791133075029301779841288171245110579918544610464277253287513343925898309907392926779366093459898026289447234846625274457905586243638623372570502169889729307677582162777823408668476073995940477141973982265272438882238842497645898205876755755418835875297697010051141820392623578157075398336114938777411213530512802460807086940618174757920481979875194763232143607143535350824284787466680504141954243539598901918322026171683102654239004062148244051096572140890267259127351269195868092820636901035351890178978474526898873925398811252005561305712801910815729011735852997205305523579390676344080123041275244415378583238074392564821735787891498330964676959761587128100459696391829047589504897915690270168398819540540714372855310197793656473999208791971895478995455705946413839302372481041726552129696911410838872025671590262870978744218145946898147135323259971958230069113710890480491357717579221019253662741952605786921865872800088979245382702665004370515575049670328502152200109398051111717617186249243360115028220005961773580847606609416066543797986652942284497374701073518674245084132538650108256238005638258403470178985988829782371681857931100529593299360200110396615362107607990757424467577285130681831382531709305732791741207808178867036148732793641073231863871339002293335247816908972723448831201906514933635897649049489845957440819527304385137228534319482204420321617032987424856727895612622219574291648153867832683785553430392815307203569064799996846330583638578166941463227294382951841449501733930624352374615730103544509352884643566588450209665724022289792794485494554997084576891067760346056843174691144821457009542210672095399650511369109924962618444021666123088553092724931666806612762815728459026852287265144805804640324830891225737269422659981977996178684235673551321204519063050141442700534496619937515215041717394915160729499960978562138766675224459702378056630295197831602891995390883380900994036619004087397594612222048389815766818704730973829490620148725880568950723360177097497449065125301098976175585718774444400663509345475888386756117782362258216379005795647584912766956812929326572751234363201098013921771278487499937077900154797203883047780531930776395978704734209791736754588002765707680197129843690397949293704231390162592554867428328363447648072348358011592969672872586686650042344233230032629862772589302721518798095807657431869711811186230205061151040476645473553098757141813804759800945273079729557925452371253493298747502522067264244026577869201051882275681181388916559948552523891816380219695659848851945531858370519248547830755858709705038412861231124328840800034629916592620977097961156988478499191101649500408727852471677798753583950883296113384953251951638773763679322658604534448803246843070594928315918468408499656931327389973857762694578971508022822467373261826477517341939941465531645582027731772808238969456058976104554156745746632953194672880725659169825043375208643427093700289958791965542741382032504482867389002298657065520953199975663121794889416535290266395110675492374213080247293614178503236950234092969451752080072575203278279252173662885133819587359119132241707617181332091686058499704476438145409111252264709736567838984712773866694431809457496188734059266212772039508805365687242703911073894979939237163762170029929712512724413156065361442832157274567826873275920449650876041941976631965989538738295096670658717078709462489913677597186113665769178036591012250553205218270587350798328590076781315848705580860171692460258437430719497148556665932165715044796961034111139968797112309473851875972090610882646183131354369854735925779387205697229941420373136528164108470583167153813824574785706086023566693324916907632884017697709704395681858899349371601025474115641042062172085768085352191710186684232418204164925140879926724004364418379440654073324726311728299576629412251150536753851939532381638543161910259955487753955703739265030086818703395387997185903938187723246111905546270439315658331590413882038183731182788250775951980622007699519195773497916466642007877389608849985108339796418326851015883546849333767714136469657873674042517886148489009405827464274144275521770241607261249065282552161431214991903614516593442688107666951975915431161261028901765619697670189929477290056024322315830787056308551975420584080583121597590935508139211114887707365621013706756315873547451869422345594012706371255469278113025618053994295149571975692142566694126371744971628488172456828830843404234199215962154724039717986067498843307366880276438371208367684977668612027587060144415953682838333620628188642801168860669289348627000669428925676806419075477022016465544045524380226885879869260820513490338332030542247213677260707647451841761836103875433786469755264717098691270625896033902145383980812057522174576119774879797823012882606946388366053372182772949501717053382080360181725622840051894035483048988157534072983825686742479989749832718880496534057542865425683558583019794090730436044041554249009861370876093166020117750628124461359586724662587710692736658894107415864357067341857335975785679993462123255863765535841170507544569141934709372605983781465639823912024280044558317174169538881157152855163244069122194565635348021325207229180847816450222435220328782551604149643875560856691256937097674115326199768873025577269467386045898036999893344745817173650032415662100772970191421608608396450527676446883901523784337911184849330884654990144759312047295119383081849932157534441577535570962170735026385702095196737205590750135425886662322542623626382507272167242471561573084769782208343179686574440279434795239975620661081179158392667913345830067879831174204575883877442141194517794510704444950207155527142030371599853273231837878964076642795803534628177683093278833517704978651766001715200500017911213164446672911186938320145064868536242164330961730548939594948201734534234345807794861792546063648367142805452832791195816206280706500133562117176828194373940536052083575605547677773298039454662395857836574233513790883508101414470340471569231802106418712910884419653263241262472328850576274554363228587234893006397502761119182860551628395814751516383842491995732253778840665051006937167137420026904063466367677352352030011054777084590859839696390448182734100912728866544710460770848692915545779916438282513357896273588841312344886959625930679976158198261895151343543177591894025222868594227596272781426237607073217634523258929755588505217969523190407532867608035301677260695800888821900137447430500650366841253299878021297876886886851070760788562107510119209990691537014232207255474284979252900890395173749168424692136156980100048339651534622166031781433731539028107794429643587612971518435255594812695244245002855439991639178764818242085259491860557681855107449223866702603224136378405809222024614176869273209874289739053163787248544243112830154254335841747475720443769416216293643280827023857371851934325602098195080482862551792163694171552137710786492700686639384830414281536943341975596889420165248020783726969738425394898104814986349551517729731020590578832548943904933678412998264279502775685028264189142857885104977767362879488247432877961163761989508245778557387706087843604120954519335702205915392062002450177023534339101670916147833897158104996446189275099985713218071025363427577442974240694834102251174611203445737341527694176380492311994764895132885076001949473573205335203279973377706394986925362712147775045116251961430448438985787108398776186450046693649464462978319717146074708712969666306072981406651247113264501764234617738711862973674449666139433198601510900717770380147404836815103975608452993089211651844314400850340692106168016631595804747117926891872858873753987104302814029642603114669637168358669922471726385561609806609188222019540953682782381729153304827461081186222828134586531597337497086533502670778286724417451885813880759443860948867989058213754822143584983173871140690479675247865872976671808063251656424534377212268412627946899131410622357183387494345470840001566252869322713903720907241591064739573158292324651985501765938792248715499302206181587696006737554988351431835371248038179065198240641363054378200886836630553428943951109268433582638828175309000874367702267520332005643065878187064055708911209488396498012698937832444295484249305571479413912556136945252599907787911745805483363761800895026837308607414680752342110039167667974001757899508134739078759685993959689978152341620493843536727878415685481611650010143962649699109928768057410630043300751719825914467853959101515306110712982079723818811456689746238387313622290818915820807627883979358975170312837630211630280416377548843609212235879883305633337554846021998003980164856491597922572889532982968625107218096030699208421212606388558114547332597216518296225626121788119222548069368785166078491490984429313119917121496958029578047981151459277980212162696483290223142204063697932407008188833407790186904824733312401720474281578196794109015686936472598290806874437061224625724230253860047433341764831350350677066601837053197191394782432954285471760728336940391595241297796196321923413631527373796838561191364505925379380558608506852587930759319210012544349712734724070862161269848205793474116787827039774096812565201758922002196505198679999488505425454853559750912128180848712065200787894021943698749631816675309681012823939360163205126884339522051389504947985240834474978938288763104012335276770113884431306986293491376486960266657588829545727521613921509037170727426423276156181878109755135063609287104013428567531415190967439538095205912356700186398046620052883874205333541686159988186338021194562820694915867083720131468668550373185554695346913672348602522725569181049396746028456380347045410425199000385273261520446600681057509550201290834012709619933880805178523377496384423802196559529855440971378896645818562458367576401699362925488945213204619213698007841142260182072990695035590055419259864438743993592519391364613548446575098234029235985013403778464766678353027821211570413168514799168735366644590297615504847961116967729130542665062597265098877218492465402635093149920301604409602020220475348302883671760871277180168554727977766329084958666434396166431213722229526291525218827655984067651225867588289972770780771442233757289377255608692605146260826268508102557104673193683833589762558270650613041220688209944389523450745654399350003231823086664887404693056739593408580582076555626979016173732427631589040004657775045336574946875759725311407680730071013778789727941067591641899329011188934202284237052845425283275250865944520463282703190913519147193832077419608720400156309832504144620673416016849388173457618880160712056889028055812712728754774774665452848483895042438074524451780677028125517565852495441079880400896869437343872583813070206549644592210123989132627126005392767131229666475790636766507072606789118502288385750947745256551203943939550335323921371043675758914404376738844470831728355601517926000115843611169203688366218529046496977437166240057287442686327063073784372734779244067600939712997941103408769859566848671752598306703988438305561054774798201098976024955200271008645890600510916726531502257906921117844892563325760882187949482293609410224010796759048319939198825062235002349509381007797576317184476150007303394494037202547773083061341095508091580424515506581375301384904509244557985136442458463606657851979706100368417797933720131281058448041058890594586175745114341014979939400538071671552959105682072787960968784924280315490508212948124923066873670737590541309722871877835809776266853976765638631103753455083740585368404131375356155575081541634193149684080080805484987854758306861230176029482752073085639311841976582788670975036603374129131576171025146654030576895991616291789906221286986201765265955992615113952374445332467757800937369807911125425775185216102498431669174794245980414130847576609396100483185204353884435466870335145744139260538019542888848406119125876904736854485737020039182439532356363890092362022843978228754519289150334049864815977485809365678975717331729595599227656820354609062867707536992343294829212864002199925186180790349533038334313575144285334985151235802522766388319843406443339115540070895061086437546367190537286914491205510255344184105287117633230896148220972552425305682833505618525325603494062239829962673909545955738258151924404659171102944546167816672924860473540067202294318813479101176850317723104501208017449550975591182986787726362674918279415569247926985817085876354517005917265076180194173619395693315637373628963008540279383332299404650568841832164298480349401449871014169716001069644092843355879633741987601929271386772728676771321948857035435788424559654174717662906981127848936040218933574213226929663553609175963676068351623427563938867353465559677977945122632721686527792732062454473945943455936370426144518074875333114888009114160730205566397894888180244459132640821694002007120486758690932516566613109362748761229090839985612477861315000547359860456955106039755352901188946517652449050609441610594087581421277732292283618526092656056585087598610779529551149150609545531396089555085896447062167623397786904097402555614504317964601916989396168522470296853377521967995386295206956154431743786982712594992410145048152459566748597853035794404003565679770386985525837505201426588282140975033620347476498592901173293805287139807356655147298928980883435391781140295649091813399066547465022513593585437846026349119034785645723123076340800168350951477866479561787387144829239199967818617633963110577252129809999293671696609071311764827952463700735292324041879485953965399627616718619147441403881543998788851451728560111184161975266705678048466652882563865248977943975134000728375436536842081011147735506223205025418328311685347388535971912970552069114355230934063676449848725969791148552530511288077775048119734685653931478793236779493342733822358965869028104238272292765529038884780723337618455933993920293208452517791154203445034754788073019572821282873281084459900734678976033774185364269412580900603982702631296870070080933460332407403739521549320128704807675750516129354261525211627972327719748643062637764604790021010635379084569966813827097828713894268311477854216619341500174500386290416609967262905966467569627348259008808736394905470253293123442237396210153192721256274710231329933889966041808738457496825143972137058422410133602555547372921674682727147516577295131790819282431710023239024085934855962015523588159804463956570612110909273403954204170163672934991856927045426532519904981166975869282823019368796805555605188639089486323637804078488663594294849761219279688404895560451497767701797801641695562040807933936083466003046755790772250962285815720971928167670916276725619268149845302540065446940054707355513194099303562302104491771517865090308764323409200437669805385793922987009007738443811983486359572323924914825473068373218611443177689555329229108726210251855405413072849348493685301785045138215680999603951798294076268088825180560847352891922648218481069303976002734985085292144445740933928269476304422515789927802603615288397812672532097684119044721670517392475546513924550973566108869329558902134111068261414506011050712800547032471815395722553918858893201842591530606478141148418377772429929659807760513702193012223593301478868504258762705625538503645084424536549778874289724757962071911646566314022863787443109261145888100553401876078666742100089267355362540013873642840151251429817520367798661939412839931987520398924993190000351796452218605536239078732796618422442999066960229543912454923546851844728423360196208913724287878594820507887357300641963934495488291960976652616384916146335018556630335190265091940075021991715032833501360235056995773183829156104189082292246277666311884657719171874392866582926948890452803100136863912341388510979594865422692200886972984724878520740545401270364561636398606728340209541425476676063235938778802777724633865932062432421231433980520342921043781020520062004493085156377486604368858703015243848034048669193316099720297206482921632976762543264830575002954950815089009605740078747319344148639183139705096016641656752725993367594091480195639281390463530695001637979723470133819518240750092415422668417963987033520842593862146336137668657929120307316207975252494675588934991564449846943161893682248166830425472328028805227018095007547352759933983132816670766182920631930425892521470531789417972962790323628707423792132100320631879904004606851262353838181806868050264569752292446850208539217254193587992874871573096718114528164298046169589770797945442973650135006354704287734014038528424839392102799463206796334366703055405833129581266158245037372505474349187765631325801590031233815214081399937770029121376441040255041034489043247579377487963625148394645016674487732188488550770568232064100583097541833854940591656416144275967653838359159070354688100236530816244182469490747885887148997368674792572101674508692497948956684360147322386924189452695668629750991077938998964388260638480196006665822418090626744924081055214962238679588895324226430826653405341092746320699304220911662537925882635395122054321107057690880874259915498927612854552830471367702361588371311297416408762755747126895930553886368182923273411267407964150451098537475156711391713157767969491152190968340400684043798675952706412073447939781875937371446929629420238927950963436083544315839186949717886806933961106842736022982210040717853342765512334501007603021716891991836939623110827787542363557925948134376139163923885234846386816449375053949261219320613420200501237210425568905324488665437339821441957482978680567638267175924304477032270978342130109807370841902622675605366471928967935964676074174967358281889091536910270857653177368569518758994436934616052472805571158186076788392549372057471195572300861844196711690427652489233995561002854785145931857471409132888497808425209393402335201968198534443625616068264883360956410077018573708869166199376371108097854663913290708145372419187295074793426127445123340209223453979103726918446875940768800058613570976414055369472627461310431580262004152124888382513706586771806890924520050190785959735718032709395132934237383340475851807408114243545211599379458124353883041367750244034216085201478843116303716249814505805880668352867690737663546929373868890087695586040649797902165162335476398470974872623618913049356286624273396917273360193011315021257452712002757540992901144150868079709374608543939081500565717952277878364252252250523403355601529032525453696538890379097676725808417632382644502830935703213281676487996690900258839931381208249341511588317489240357832350516750579038039108117641030145545160594048949718354719324503942391473863436900793785487378996534512605184119102720382857495241323673513545339515604777860036209379017811123371275185060989769268483741102818962638270067458985505160209644607775383398302215742132112869312960116013490327942648412074766236492400358209569696696110176938961545953911027086714995214041750509949776037689775137960395749443009018607288377646053297815278589126549072237215226935503215043625097729633427886018725059780045177902790968318443955919230315727611863826974950013726913651525021356460073025829624002310367247933191918632804168018394312756041850869198433286800021201659640063410859720211663054453269214839023436075263731777117723299304830653934307619134223072049202307016168122969164032069681422228429633104338477429920788208031845257556759740747629206073824341042141370665698107649012053777244866628619257022714685548083716689934577312470212346437026291605734614307354978250356950063874810461183984199934614708455790227418418419978016746859900950144415608754209401330915312564763761386329132702921050935284099690723926216363645307216768427396941762991658254400330974979444276343210553206104695379267452973792572733197701389747571513617683379207914688585553498209373896042086089232540412658440585778702531387359707117443322422464609155115073854113873103455556292729152911382983261068421119525163332026334791305931428674953550990436659193635752953037504754045583569781563430175070785128408323470269577829597985866967674716379315633401422344802110921325800818248582257534991143933698217951195524096586724184972527459405108277080399853726070977163040816781361305945447610748140991102445461941279396413065680986715065331776274287190191655682122544577663271990030153845883009013442357965880286347618033860769141005968248144341733869283530152284805421997308281011023108754519845270744714926317515411882450057403511240203647085244424360903433286689778776329385731364273800526735147759411619291935334329438160454992721972282215811338607526224128337433415352669516114242277106677982627362025693347802731246126990803579101981573888884061160640494000450272950295442561046973581022829820080580348312898207650826806091267546939377239706484610441072091381690416228872327606745181739066589359505771894371391188095423073339134913785554296312688000888520600203067622305594696301097901520509748126988556483183047217319840385623824467111522789302340051655162618233699639328462738805731060351261193340946144991468453687393755907620942335614194043033521172829091330421979827144837632629819979072075085992317727276041562217070519670339391909687371398485617372120117405271492157364322445924195239226089950083429712263812864212067702170615778708392336388039740601753216084219682503429636307926733155371233225746818743854547666635174946057494137357645888466022642743627946694264713992518590718095179769141983051512616156948006152179830971273890058670089875942964641250992345180137004911359481524266162450353206036680526718077474355084627631738956415218897795594529772242865716774711816891353996014093312167130370804503360245022383766455451146991938608709011414646192904168857034743408845556634726637843573824623833178533513040769201018236584844334718895926082483256559602567348285285247549924713711045882324148245239750744440272921685820815308492974699568278709683368962992432719858243571781840321630252479195425775409119483997854762275036317620072601692146109871561858078907436684283541312851718117515033567179552718744420931009925882971696301218859711550940341901533045716695389301788883312323110069350073412482083117151048497295878344646031199024254914563143124735762984279670802231106021306315882460977600733852337728505497188729809252226943104931685255519184371133356011835569653160578896389831757024499693358040632374997020395078950726802127996750731092579391422130839060180641265267160090311297360637310251277737320118548410312990511000200508110915623488291440805811343678642111392718056333238091707571103218325119046045003042716952441770795675270551687314459871461989656419381960659162772374651577276007673161000648273961570985502534509712048913497406620032375098647234771470703842004773511702909348422889087212578307684860477974203380250172515030893843826934245711251320352041269851899502849618957011160525314216421053440483732566069321724280553235418566257425704295705395781745571422254307624399649227185813882030179750677684463213800875463124540265175672277391761677648745160423951346553631357752230586949793949353804059619726254051928678795159181736542869768863277132545679515656305795591068281348012834378761000593163767059832676171198679592422140186252833995386941974493085025290713337343113012075129497472890245938530572412293698747583325044411318195228952437514985560315225753181777769350508077740337660580940878639531969465836652981393611362378844826438472290390925060761960393424645735057048818820463487653262564568483214196385096688421776326802082528325263021409695959300742854669469970188924862404217216998227972127350570503161742281676289520810370260877911180496104397035540938102431038099771289684068676222406940898197325285331019908511606956857066326953346781849379380416701723974368172391227430598302267640934064853735745796059470004941353978507684850148329679737103933311754078072791949379659915863716115600322160894447759025724500825156364836296906811699204748890978193399525827856683693369146937735298956729285500181757162221987949825201036724254801087623717129477193982178108124321979303332545678483001269553586108735101432471171400116258507741664273967441999133589217880413974100747820177633801804874331105745976133015082194107203138491637619075886126695518032001104866920035830314397910086108187795767438936712909977534357532988247645218056990271837053043881314678681539011390806639036494311797104216862774496291047396728534476671366145814352752432429505284129105839673238999123449693599201119985900803244187687558069318378339019332731720118549236800995001567459600344954355496019237661663431978818152159588284715033878499513127026193082096417970944461599504613049080848320849539811524547852184119746274336263641706441797562694476969320743352405789214835535991504462086379446895434531725366711735540934875697242967136449730742428342404112259918417816618196763413026172845957958525452565044394630319868894393055917420144750973743247923781757771538628200874983345969097491387788180238976944295663261587283101842954477031808203215094698064384618837122897699881849887056333420924131402810705134772066801149076988307085241642267791189188699375925377752877772670994479285000692219489665985806573188492839738793332600613131521297271506414910838416129126749517709138912479601281579591256514188977577036402978998468450584634432204677205228802122229971894254638296543687713343743377627031812798165906819548640718256715985773635209231962736684816364720762405920181805635280091707145849231816908950687396439991892398632781103827228082124475732811125460159686224529133953207405567286869464391768387486361424114947895316191352197919409795374326083301801930368018782071856715310053669552351854203726078230974656108632880570485791093582062504832288560193441288176356762944944875709712069710735130456034130223940932772220567766432889069057624612408636290437726173631326881713630172152625902998326269533065916615911753609378007842599149360673012099145607173053009427640822836593030618343080109384174051038295995834333633569749102520771267659266878565065354906259773959218235688583082019566684948629691198887472791163945724112714066818450849505645183162734511022506852982052548736775873941235063889056203087638732009970704993787988661702797207009551009164794410963999119561043960087229954825007000178542474240210218084515992007399489851634056071428780801116743055468331292597314738199261604183843501287944240840947242473108153225571424095327103011501722776226113215441221172639205774172184196069317482839973710102888698176170703888575643382666200485843993467975115788136859954187021516783109195354715412183260474583292477108485056768707548080224677082078141830963711675872372648761508778459858043559626920214336817960915357040049144165476833968718488771854059386545233501412574357121306219158917769824088396869891708274907820727552205909663480505709873211887448861103823358814341330057097995491110607132260142460172325688032647144889299768241704185105979461153272024551798610963814599632140292854873999100536904766127459044222189172877414603686533986208806345782413269504859416232409116435023835034334233423137199248003517977817030652090072956171983862154080601381724877408450610473295645676872833537764031114963672276188899623989697079394828944159823462426802703756693004287756477472543279353330540910941584522856852888461574182349159355934311410126642294356599942993028134474030355633546228396775142241299587401142936869686651562937521519365452287323290712475398296697519096662263349793180224758496945362846590487707847539815768676422996725315748938302926574602482043402778768092454376735102676332765416332910898248361191661903621350322982045432081273262889846928661038703199209463079429770663899174954728402158168153383309657465269912767584488153698710669036944760364570002487650410651878269224084299519244157695914719631279688118040220648106988862189004648952655811229365225265699243957608797803257431886220897750180311989498219787863168805277563436099502312262480316359336842018344692716207208778937408554711010291591660340532212499263796537715048024896690056571274883965622086720883092470664027740202183365785196429407097580051133647148457907612319424039409918569456206001493302623336241878240672971401458367272927536910225311887175975035249477941773846436600629944924307668436201949422295958739397066101719532420504626268869797666203661525495751465635465519293753797145535070883654354424290226159773054306956343729693836756194606043573731519583297747707226126815891627695339572095943461848930942513375308895317962534483980102627780104069973494435467765743139502857732498417349643644648712643075119181134657225282121734417765527278848863039563619007110709177697673880239134531007322303142200634818293274294531350912994661532099312216622399625406186985806879448618570890337793174421326293810176281156495618707723958269766630143631359959442527306330499519417370886498309643374281453584696941032404696018273339730426883389460943214462804747547688854211384154510649870015356848441796659179697925056899994923895169416977901817359712071859427945881300060692238487187031619470127198527540579574462989633329601754454431422552702076056191603593823090506575323791449844732550959642698944387467568132586107981203080514482969456688878794711163801018238139109831912281332918810432296265388832184831596250142918786296699145368510513012375270572419152656758428320359975876449366410865141063288532832650857269431619259763307460046683861196415008497675421439589965666492596983131861676846556540682611247267691670377944792342796987857866510982135235444223522162705640608843156684367753376216610192330437440130523863847783438326374885101041838756428507667833606703605271738796741038427848877228932437284925951170605451380626193511948209966379322828609601421193947245624949662148783147153976667737579832136992246993621522780552978275150881647781771459344464000616392400156600710768062418116394607406179910093611509739965021374261933719458788101900188510490797686652023078376455629040962231926710908504720344585444784882184022782295989170022905947881001520612073843894500963480968297212147048576092791636565833284887958874195390736103412354463812640303667166231862296607706836939117279258281440507620451729495977840892074776567122755906094176012271786190410908300781079135938548980274882237007723852318187805390886518054871070426388919546627774049470728729993410832792663932176998505434113717359007882440503833607699002755205531905408012645184709649572012582647736148201353327873478915473467456916748269257600584596732520824846797859746198978882675296844580579707575010641931040503985378726657830058144337595723488569036219942630993117859116784089106566450904851153677960149783141888990101918883254251947755240146322827952515930141837125548634487329841178896607632170451977592136463479332827633920094705943451003159936880345759531173124481365524637091650917260438520572934904249296276475001740755504910846504717866191608581199127886724437031994308988937927348714476845466047440895808981385326806562835105040798031363309217771494108824393947290798831233591464202685046044766898523194027981737920253903824683439876686852672006679931866692790559850509177279853387546860066497985444381585148268633452875489533909209948610523310417511557077188971236211331824021052707173139053664088201460137789769189572962657161556451588893204199126552281815152253806645202063505945395790025852020878389471401748978429651787504040921987704768421062252869981974307967811656786697126763228543726800585778756686419765766701736689982101727973244899009437705088314560348044398121324473361898800485043778046194089830514191053761945475986606543530592002489514878180306415974759328159241227859171329724294843719429409961240976483724076774879465579160807088485333947095067639399428006473976281077857737402383154189002342697683405331638463319738841704584342923178236467752686467856962710702878719614104326686756048096344523360859794569292983524710324647592454581730028026713825224537370935515845614633650143338311754418427801380550521111287193402654158456317593656838380836532371147431035013718930757941821366735739045655385897778383361805407452496357411871025780284026607347657302490190432735100271375628348484415448454565626734216958429656913163333958850007098587627115814174393165243270423416996800004232945008623934116434978083941497864036948849703697781691930068259828009498769059405745093249436214957913632953914356363557356695919846604318836228608453765945909043962722634964867977402960980003932095766529407643461228542795811859794993233026232534501322359132203043553707210809757807124053898575416339094921181033257060047082346439311062192806182516332612854785849464793653737736994404417499435298817031419224815579404829514156493452416458092716734774499198669065253181125753686188067316628447665591092240092526682595728247834465384092286679395866052593206989695324210002283571433403152570804731617489868921069682298006052393638560280520704284207215575440738867117031527958296013679652012142056577667965356313158006969166647858439321144006896841824823805405730915018896959298575828762081264115960543381923804150308195391127648589177600276620349632030303124938179220406055285607601255993052465750724439625862597707534206463994149040029331497204336867936641364643411514288675185740181319684347712273255422202986968987600807215289795253237649801481158317828444552034762777340195564345601907862257574501302477121688905675958240228716473459393023136626519958722386643791827639604455026271797919013994631242429751269819330392370899754027848409807081996370912462839370188903756927242123731408257463316213723360732971763719415959276447853693648629939278469940686829118476212921141381983603552500154031920324052768433014168581691799200565697315769170290136513273277347169650326458229030719055178713721054656834678555362644350827463099895681013355078492192142056021096920031319036142988763658351790313404597193538520450949462535520393519796855206401013849299864426828002955267880605821293188621713240984738006033945477787172034421528735330333270502083209805055675715315925155931429759968106941705291515353378154882463519492142825262974364621273095817056874532523787616042919723071204079858862107857878410236626097944109625468126906030811373689548425365693051399225393092564787390721361309892428602883098966609722816513195339924762167944804627465724120352158271788941691688625922826145791429875184082821908715374845615850752454976992649718295688957849638631265139514824815756516661459502709379385860967885119863548840067832709877966169720950793630225836375798616251550009510165421324022121546131961361436643283233730378230524596836506087131245910900530237047553567516479971917750861260951630095679185327530517598911887240032804825199803971470804631834736639775599743398116620283372717833361690055669324830936138228162795975147173949309716489518717574921729408997664767419722909504660275823073379517058945913437326774716796921451168505969686590049958369135710414945858498105626176768982088971677062396366595568351245224917686193934916007848065964343290124821052028970146588309461986895966516307273625429743898382693568822666430687073730872475473461547021346846383500837721932261188719768754696571514868345259579629591958858210497465365909601843234816840259544563518741062503630628914335057769986589891213974256893990066504650383776105162074020635385271214548843105456981985282458257086657677935179754633280138791752423586346417212300184040827326023816078646536242297658280739040380704552950442748812767876768584973730022063217899359585326364144699583916645075287093833269949178706674350973242272847355138903119606560396320499555243025609966981023509996032208586887426306730740540669339570544601440790536673815576942521948831629898462006116260848219723121386812259853411152104943850077029587386231976026918340712199660171251763996400003928967062820528311289312344240580040453546369201507494413098401669925711244993012606610761504193229703033197324148637679177492658983448167308807112720224779821923781877224867611972677262922204884575040480533615240502656115320097074240579080841177943416999928209658339478317790793118624840838713093048360768488353376089692357631517319163654237647857910906973394431343875818192056109888426074183536847580577357734739884942491099503862041756511533300028467450821660458477589417813653278264760943460286917800496406228189082317695916144820510078421237636477590782507472961035592387183402043027246436112933975718777949695317933012420608311909153680797542099425055773803104168413872737820027601108491716134308567219397170726709752303488643551586309929788213731616754885384219433566749157835370690681804521952616184275844185360867899675197285796908694109884490887492418854379859780287579852819732423090078060228895574500342969439975784694478291460377336950992160026365927560069600365347941134707849363122011754678543004948386507476412845750258062406510938137009683288621011171606040980603168324105992610827461314045403380403492379090916027890203071426560630615631531388763803289025187701446191846805190415814476722934753909744881791761083985047172794425212441411985250934873287536335024636237384301012420716527422288763984924736423456792382962499374102863197367200380965529063179772215812689394724626922974274137365407522384128067984668966426456717918489820779711069931895592563973478398316705637291272896970077019604511815811081095943552184207128157648825748919404449456250906612023218135045730724811035189705855998273752792479015134985956440518649573982985016706032799416564614791002191545136030735739076881784890347087578035971405087700424426931566710084969651452783186366407573604708339758943097823767265045713839709950826988087363781612568346970054013341128825434706082518928505152786187914612424822701456481382709120919752458352584018206148064660760214334310752265795990494088009713769435626317964877641079413803295174197727030935353517420965102893049074989141043268228362432476760477762758642753757587850946299029814719528673095485652343405245859051897580710299514176111283492962437735483061261865707676542335802153315069118120581633114848686059826634388263383016895206340171235580924879695777272742139771647099733440889996049518310801148849721182018460121044562333902529025692222516383371495451107226408115740286139991439326716057107056628722304718156982687318834486227484310462172958509187412602959785252628104405417700632611585017338918878932135569842030322819393401536625028691556631406221220939953781204168872261552067814847843315462623174778962089532554255791814494090609868553558653885547639776927198049526251137507806669339806920294428797390131835645936004766011836044597204633897182819697507970575136932928868539052070381101160932249494369655477826433195391335201130504406022870460650797224619946162477644816691530076042924300469384851139771612584037816442620219512847014032441150513613875920950671095571444107504984145700283544146839812253230283282391278386820357174960968099244329596430682642331273905591925778390595102401143175355376919826705740116364633949734963461957671005417006267412130013155373460522428093038577234662611721676163442130247291114784796761288256003855864693795041247124578818477546770646196906385054068787918165346343317675521073969802863477807000628997094643117121697312924287901431497502293641315418851911367499396568748300639123736434584660694307179884127537168737869927657167005484585469247957077074670275487008213483662129684623511674883666621958756142378788721403869889889752305545581809313927596608326830879763198446879293029887566328296086223683283893113386235057974815903934511782269614948917342092000052785616264819448232875815833297863309324422319790431883432731103342052699347020686211635420362817895622192843543895402219722629721867590834300259250683282222071515266163170447129601086067380087928357041085184387193446064103961717545725754996357160606680065554101269174797644692056242537961181681804546849458191568227298658972154520851626310961645437222457789573139358932153087302810920934128617701091899555978060149084939041551140379232952117513196517026815436262336732507250006953909932763489158722599559606086661246344337727163597162687614861730246734987206073644403285926853488610085320111626762349128645931492478578204766540699066813309437544925505941641822693480246904367089395682558341860081708400075141568088925444541878247668288626803789759991203055590954186529776891205401506712809201466435355482680503790321333726525812536220245479330292250323496937022381403377653024544795642196852276338341803973072191254970927550861659542376341457237009375145111570767090428212322020590946334157167918138234608281789850180986883760921406342396581948585570415676940029818256936156684772555646590574001193773470830001603848261091910237166651024239241363989977321238438352756664985362322984857700264477702994419083818182245779119239681209037076714658692970964269021702528793591606573649466631363330393143483202558528393064974965781523510174302631819771234265932979938670449174821098888240253008808224191124097752514701133075004443132001874606044778061328392259225385143267336809312671041524665839846641964287033438259492671037219519010321705714111105389107734170857201439049759857422430213381469612650868056406117703216790559790182025328510186706434290256176780592766455107506223511679818415948135198092933693693286889570038178035454202466674882311243164579524134893206574862768738580895591170688095889875766067417915505969887299852747999709839304051528362689892426582949520558822338337353782183785207729072276126076336761260425340814462309620549179743996284567465047543811057661590284836731022905920200748308551546859725652644051362181194276241019105520578080341225807001207788444664100211157524250094866069809014815400559512470753178753254793126874490039619537131803955799268078242360820227891714717825645633204478642017964980878651210644915853230065816573175313940581883230315237732220390812313425571172295293542132895930098116692512788321553251260614573616194056170207530781125785084542449899262230411267564847159139959152262616050240964308811368407171203038828768241547258892070032195518737219539437156086708005016248188749081388152721202941361978190354030318612526281014049470123341605406341126911316200676267751653166392430467273844108329341852592119881754355891864277666539844932378440581256692172636973960169225455189217328641205079107578857294470023625208310614270500206388849748137506788731009370894113348662565976557972598620868964147758738467582241566879551167989581205430079893437457914601902502464089814459766577733589310343267820545242451389343713474044490937956805506579796131360439931626097170897357285599363232761242871695233496009210924401627063853479497618707034260787518161857652571103042279979931496159860399754020299768161655727303783020131771844932414666989739240132844556511522833259598705494923233036516810412508630440694769295045247848278669606211712121370232019560624429695941145202748505164619466312141706281599441899925986023460563097331769017542952351982786919103388227489271787530871141242937663003269897213415552921580353523662908547660981444329241621846717519127178199637260495669148996805808561823937335526692589528014453700715655627913635776271003936226319296781967668881706430609289272123234373236227381535278246313850337698267296563955810888110775937882637980344100123020486386418547754327871826673468156256030284351241263932114518145846856117709759158784326384918481531386306042482520625893213066890278002072339111475336561889858633094196682604353482172522204968392622908761289686346662125017959045124937865004482123574001027190578178768151137118439282280728955383661990446225211346377986244711584927613801637501274183687544881119219279610219894913995743149707244546865474437265936175580252588401207781200244352484081595787982483965424331253820130835623115865222504524052048432776513250935713365250759510983884202425715772400864411195992207956411649945986663497011215604123937065178473583834449912485202613896280172074655564794914485270777348172194318651621781636687726123964025613972403503137109927786211257598261981743659309912911335147706075610787487382523180011627730341617451680942434278007999062786638467861846985673684652267941882712687712404676253665676726609122922464011295349069440352721280803189659275634732964707406095372788345051536106870894308250406708635528183116799631287688189117081549861440991646342600456736964583387804349492826336829982463973341861330229070115633990979073021190361269678511646415408255718949877294369959245391821570965289882036748684059708356118857235550988301873185096757204644431183810569640567415234101630761086508532699322941590642700163383225337078212883073760023590869029403760215146622933464839701922837012965591978902239047384275410378407740514467903363342745764587049726071286725243049451518248395931058506590171705542735007608378275210639775721423061747871730147294901227352374078357975846851260387814678999803897892386073720785256805378898087297222749700893536298887033709600479202147046379668593992181009679190042336048220165402212172386992263602615560168918007240334045801373645769620149833751312743756495463424122889980609410214939484626429934208416974121603405061699111534537424508197312904003780786439594478151793371285944190705582783139504823984698743130888539041122220149608496463485902492607557158252665883896501308960226824763245913285543689463815880902122263571614831781931012413995888492219692049401513103282567801375299847070788470962696367336985683558452291619880537513478054253896108044752867747955501676719717073745327736572321472648816379159954812578543136111843179549252372734516071827495546094732931334091880225168239787244013075426498835997401407563643408671272189899396346810031362335867089013027985269687342882533134358811299530281935828469003779311247031831910019964100632299673173635980212088295111281188311494477460539548627413777794223287619890163622797473576355046206129087862616178812286739838007963626728536527677656498181433220515054693313867004846429993827558452677379416558215288848115192987422085888191488502581395204536452673942509262288877275381178197799586047489230566215870495298616299442122932174946396164207906805300538914525457439261704085230637138909868186050074578989190514027108388295623823565300073810128326783999268406723385183632747538305236504105447010507472570364831103428917601906294523411385735730482647214972575252943677521802014530823750727786324123885005954868278563810966142027231979847525029086891165397485712653232819789467192242564820829725439996717917850427160016011657567237706364780466336655646860257695363688718280295469759686677228398627617795081430047359586391169635201738370379294652645674346366877569669366602883809994178131009734475336530893145538765938776481767194627767976357680638515000192228418486070592486521805258140987424523203657089854975436240113538357725682913373655858143707979021183891755477373550246951813733261430154422665545131773955913627970998966046062530390766861176754759060436989202864550228515885604826752266679740299511691227392272372613802279996834639562629592776072326961092127008855073324463748814403290228690500230446977377256115063725249176012705501489377082811966917782210227714413466470125987220045820310349336268266706550856059199385372001387463454968570696540802588262362367198980728723088966303056714024996951683960225724480783717693390649489395764644063245065368791747502165883681101719186637394917496357383245088786634703719573738332666868811427688248600630993269809571689287963457469710791809487610311191343938266527818509932481264773172358121801674391896579023251262509917418718931892281463720434366324553626255902789972278131775428083975268731580478176040158400382400090382017493632349098571658005574689150173502158395359590170883169484676304683028775838880534631480709423853483311175086280494504078490171923540211928799367816483473383948529515877909209157254098210262967383648651427169839137575640287164956513375694672557209921952592198525210140479960034945438890199363500313416067866614721242048352222103460112365534566870687848620420523857367198485659211347999788743231221053453875769986675026333277661808055350082678102570262123182464194598634631346505583514407912521811727330454633681688200028745037880896313201058642535375868827960212329598813399525773602501592067144704219973651519933281527202043406949058842079471151669815435055758995240318075570424061186803606689583611596570534547194329059468067996287910255391392671546965090281698018656690298714365671505423617596935982276700586000598643480364045619466907018480193617940547578477662218413218060925116214219328751229042442415173856341617953306132018951214971719872667481183826259404790652853106391010028734653911153010880939746694825374914749323568735743639919185358976224955395559781127269151359664028818239003506389779122884360380472613206297202350432431823184797639395803281352140552175547593458478779103979181434635927300731771399853795910214528732399376478070847657682257186818237981311197672240471224904483110681725213028663205470450742807077820668982001679992599325634814340327471687342423615981584430558447418983038292638323525344407739272407796101635032323805059111047266072110487837489214795971933044530644316241945692025920302664078845428599836565202892222315169218184742205589038332033873672069726186042098262808757745150460035131980007612906407687845937584829621891740548696454508265827861272554122567592461387164855898355437515410719248623001895814330380309683852283249815696997835242144733957698827478486053258192335738451533748507133049597089991537758699613718550637659983516790712861211794560387187221979914448675671675851997859868672017597230283929552685425515766144318192547069466793495149061370893520367663070195844915660741292261223134233710518444287677116871938099223157034589854353598539661859873809310150788984408097875338282629750287097151857101953634321476832512576047345663194049259034012391277694960270092747552981383059628792140924935900535714425030255836173461680386013703976941359353321235951648696764255894759606371584139514448494029514046310309122851544826779456392264185561380994564161166825887972701812242757515882114896733944245790695223826017823276768258782989415702015350448816092366520884433446234910195384495519833564059221370927702207995254927413858406919186992085155981193800521150601171660330530900436985999718951804905322238849326196749961574962977325495714035676397384136620026488341227230137890753553222193803928732929901872078396186517327152301223207851619902504414091144115887918459497707832902128128864822298170639427763131206047682530508678573789470779777837834614473511343993342325776832991697375526485697011367849792213910803103807770346056363179767863025470828741757527294592230008042649571269628700333814345082171656958067342697251755722414104134773038246295161688353271138243286537034518459027501242953304075184847562160071791595152399787924232770575870380028934480180466978738112455916847064948399852258294655503400501100872008282442867381944950417682007778650204189868442690422735461785894889003032933089331614819992217609968016018514340277777722653887421238772856814481044698399977264254992203030191698984730986315324469808261887322816603381937401696040193790270151096146546401793109719178848249054548290137383504002913424124413373980989274233679610055154858679130306040050873496134992297440609738483401303080276629029029484814906115546835666502037072449545637099119194752502368435706306182308385913534049570403626349868246901949246020378072090115230522965535659051401762664843085879115184098779067661529533364200458951172284552055760402106011624299171353789683925914710386447499117678248546099714623588675599098251285414973824826549285558938968481385253099529294451634307801986036556708170513716757006043702563488463033222376666563348386550762288814413759485674245826468384208601982768243398071428099245042778577936497890194332676452842966693175123529032170142005701488433620977016005223514638988237861210030264577611669976209423300285685763043109972946375305966647211979183861179323570912107388839747162732839476274032310036616698391989705554531233916780199455524500783223059365137017928798742990555560207242896874129288039091649114879729943240868550680237480501950327441658563665355422732244324256106113603263186723719212637016757902656245672282596118252584277873195482236960583626586131565075172646218319779728101204660651177038870911544568305585744355096128517151012669228473993385073373287229014665234154675520915958854373560090683108764180686437113998000275163447684807057594572785551158624464058296644686559239376195059702582278785979923366745841646577843345109101826718404920964146462590335262855334147725835950612564702959438789043519519346676926611497028091966415537242332404126718716203831897069335825068466409985493676092152237815313442479896426905819845425510358130815077646658184621493698247353976511837037335678874865109878990441968413916425579626296406790450381363190270490156391742763268196546121420717501645803481135753334425978711929077188314682810337937062692927713972800497618694116835731438882791320005377932449824005716631769430747659535016300490601974787006149620476468575644588066378212607440915878046049645773369484697992630516941278610643792151462057669356950561209621258820977640308608994664546367685766774367537946546248484918647563207789596440626475843882499433343263193658991111560388720807090212426120267955203963797629211670980419091886321399467308212596573722649925601761081135410313376565718912177300081449290648981447372850207702497699360749777121611923459305772830250672346591789249679434360200976156435157685037203999757827984621366085331094439527482850509425623397323676223863782516847013910671097037996906404105642368388109653109469206833163840927932625336702129028845156844302235444950404319090566694385061312912362056428495302900842543275589425930699361138681759434966272394524233354082567603213765831577398798982079653411143903210639093710366827282486313974932554904133648475262629143977424321027094727245489243410356073170698321842303021143016123294886979941627503340097148657054855158571450942830156605840412954127540314586434457448650132277305448620291255030284882256488645991944356806638216406369899496770391910795294028155513403503683743993947388681160359233934380678712710328106218052566919934931447652106828732338561735402215382480751363296084060431174095498524484495739675267809615592475880325284592957313624646950068081959366406027468611765728766563767807710426871608156915432364323613727411659194371923638941120043954583845213156881964083466432040662247001839160012280617926438352041110130556020639302106248176772679126820711638496263406611507325004613689303514273272874644442821282732449960711509042801113953429888718395865976597318846000563026492226506495393642062124571274782005869731868077355031079005337538002124131080162808150222331647533469103174780385661351424899448271333506588435437065690216829456675153442755499038308107078537832030989782021615053893894210192325063203650614614850191333046109297715772815106710882750855666428831632648113671993089829814360453153883565864569370644012239550056484111282254549587196229402993547428530904224343938033823542773627364960359929124610832051697791282833523528029728321377553112404233390548653393265248800921010023725774626972046341684245092952408288845419296079944394037352143143362645214334948299359689760225219632792096627328759558107636403312090847257688091078759380684995062770323487973716363910273471788955329807784905181138729412604801750285517232406262469227610786584211151193136123188689615137723272192112274357974017043291505194031620329061881016654750493753512200699732112359539183250685748969612631225490879161897651541614159111666621883106265913404638985781962958989176438458310607385047898465060104222668297332428130644412273805332797601958575845141637962415100381564367025890077047891590306079387655918772364061154205267129413917437182386691305598429209876023390025682817297433160147412519556309025307217899564328562731583634096047554679371519369669764920417988134448067573996378695440513411254464623638446580385563895008411781677585508987402647338613507641162362433393959680693405305936778243865328452153650209152457005344323947159420394730598529023770779139799012536233317319488274743619637754900265312458942489885007099417133422108128664696654719947903682749391308175777314670842062416606350877300159288788218776120957761060750747398297699390745181128868652004191926623966425762029182597077933980989380175564583962027065744565974619050605526761294538026393665715854686292000470674259421446176725304294614079276804899870392502496727745663872721934402841897483118255846313628889748136788492190531010540881901091334231800693955294259727438089017312733785519476836796525214466213892084934450339250788566930521823905169661275441039238135335161251653472957921205698515287361382391715489925018593229237431796602684893178118206219935285275223074061975561097201528662572397884331841845933584253501324846086494899246689227867099145378760002876517592871104698412428663769571947640011174784999420276661983550380047366509354791732812344130088789516474956684705509983056791429361346090936014578603579346594752284352157646449632805062593560442392216701122949834198195508692690156601462064571720816853573726460015180749565187163999300411448594320540625148258510613122928682777724332794853925130541858832812600246706012215772486230874321225730300273232950960667854772965081137027865861877186738030793808517417272966001370228628998499887537952099096021718507355429595622967996337524915982640097591974179899011380195348244934373640851525263691054656555227652535108167898084569145657049132381787570564618429412696489680425266160272162517967146363112748372531474907044796166363695605731876807562683775057891589445800949803736937582962825699786978208332807835394131948069429691528307523037386658781135182634779960265417087916696223785760255266688584795578187216671703932472292037246943245984485938301494574154294448152248101659803134847919132401177052914637642683173353145246488453451701526939611081491341962032435439076390258559606323492598294441142219521338309561503050733231484798688921564976795753369818460206434800552118323700859789646341373963962956851729707706024325891414462753093959582071385449092567068271030844896687465491006866952542490994554300642193569687006530116509908997815033363617862604048742128994093784314675512274989580444766086201381848485674431249289440577368111264913998066319191663865335805222778766352670946158917346908046370265537643465025974094813948441066961392442385099585637400017849791887597715576397007712622292986201576271661757089187933775133144088653151171565300765791958591083735186854024231268693466042093360865322316728206324119897584980294279097442379937213094281827326874541109886121349851387539583264283844739244384710038306935813126716653689049004862257068268230894279332239726123187216092492839640656946344489457533566819184057959762956990895060644546265365271104715638600559512637446079975916593111949329446575861282584800179829085952496086292079306782064715305496194607143779138934872017160302100700628906720178773255977746995483495045758288764748766685888135978353160598737398064894454164039430606465908053738317104655360778731416066482548597497612008883176630090863145160195767222659271295090549896544090214458808516682195300281460679178578716438790247080666339633974929328503469448187376667004801135961245460556604877550228829318546159337239216344656594893791467475417440533913637609821438042324570043788876130856922566889564743142961232658699042343711458638137656601814123405750802241159038161816669728812444050273242682695821566660006502006238361563075472353715978219267366551535053330270645989987563601176092017943461238121999570543492061955413111209557547897932145060481911598899599661419520612739891126076706879868621152317867968522594876647258064612668092851548040571112818022382655797976503922713012291135461602264171201336756701071281748135707434809980895213041879458765579344684202854090262635506940041649460951040299963938063101876940341331991718693499558202175171754736981860477344279134883421411471302896065664485315176222390228825878980180126812273063608281393071958231964745169683531534560229123884713213900767944261203133966288724431209864733185745129910463739896986888862259175874470981791079425823261314336533085719507182794710455429396907350089982744404541435578837625585816432825192946762073800971441975561048397809450242406292750577517555276949105198906909613951364147201313739448335398630506772418593754867100135851872016515039822694564436994024947701861780449189516342035719764465542186699512692898856415112480543780229302206487608570964229620778975563853615615532526326501753529852701841503315510434933134179900049529783582931207197373512185958251365719432021560468220363684436313762736361900509008228455947872068687344849024014366353230100833807031001168561611699819452503285751682500466859594042248566397572893037778837677492515740732872935214141983104534104506585788033423281197974454501272539852796268535014487127841784523792340532468376168628043369461339378962587878808079427981917767929272078839621755958465931245821500416979063927392843213653078934999991909252252086975334072704561638708196741132528880578668650595589079251267672261408946994268161684556700027740968384960121385942718739414751497881571467415457912305580732569877954498366050123873590548723389479834296474781182313500053374811294496546042459593123442951341097277795151599429040120357848445926780653891234024707816623385800880462643569502222423853884777691348824393292939174797665835103509671802970984966757941425885267946630841944391403180262319006756687662003211372938753479428065624802463307596250414154515128377591559133042920053362703359283798822704182481776289523079624742984179892823565204188061588775102237554717509837315179011033927946871497786346241211509903618852603690909199793865430985628063289154747407679327891273563629540475943679764044206893363007611962601114432797568118241965138937372396294331928478304170300064031389952828051148213604329730363591999318536016537843022950787706397443406866629601038698990123694782245148760537338304446784334462697171164225043170043027570321620762051235103800945344788707458034176257494379016876931208823233750424688804894150983646785518453463185418178305524664922094125523110106756651539162807953398944332884967302674895238578458648824228259471780084879662446172721052479977979294034945466632906957346267533646306124917826014179715618555069994146081589920308388305240441951453275347558953261281426920771605651518070717013185498588543638566543395768135769985902232229140044573065223897241110110572652625809640548957291672918051654052391112105329210300454772806606464959876701664657382016455656122847770346514400626391933909475332920592014444596574378730956231873145821020477668124891642134140639523791940433270149694986318493611706986526494719428861899410055517249142979755085635725748613026457035346511325974681474792062670761919278793791600702731973294820846070620976411665342230456657289245687411645772877545667657413733469821179906760574704186382411320591049153691631554732695550418710847179157397101846681941113352693133171186307138267758933101516699972843082477295682518758466805795387618484896356936635972387505919302616769268742896874807402374940711486647381451773266288977407859872309712924017845088097673433093263895038134059136029599558163622287557927518944411289194240870011870033735379908990642990264040422368841749741626902736185240576204323956231249951118752625456052314262206311778127854778034526976539375415814303594668957053664107574346663910568873593610814502953381942468799740527565649676316592932634451399553983101399257846502556232697650997687949494588362349174796556227323001715762151724727990007111806880624182038932384762202184459030046308702931350202583585658209974563036999325719786238152014037203683148090194274852685239560274057427082725016298522198230583449579283072905916919127987635738103249143139662474012103142664054006045142978848633445512686453585345536614993644677344637445992450762632980953666833115718727479923756131471385806382514366962787220322627617465218196884820195081873381621814196882820872998388498014148195905668054219380429031384045945225443975804165079438556251822119023653618535127768546209891196543379273302500803688488512785516522976098890165845988915551759282647943463380282119091865265544367636971573298239097982119707201020160170236654388078756371851709785790234936017133722396823517546734936295184626604830827189378496462894888017910194184921359913385794537322996756551948856217694269403856375781396720627786996310442569006173360063209673265184441469595111890529316145865200962027487462211594637134355388489384912043032044231779562542589748930241329905577444247397318217952928199868264570075840037833360133556428243655974533050742841853903157032002197095243867468489287922026034757216184122158713556841137907445470486797738926208947302495637048127224185585627022153994370351077472046873116620488341690752048683539303207437898598041462947209545351457316211670178889583153954813182498602542656504453642691406251952123155875658207992107749657708597681004820334034407854115116764891124067194513278644894513578340334680890876878394206720367339462703953883805344250009149849753766578283111785684103427796142019326414895658024973999652513401962214456035033900400145858170267190536720824923629952371199560054149810062736428719114497601217775440102224479809107013335854219228843323900899327002109884215710497395821905865548617696821892000235002345358020860055662946732814277432354407204019924343591129799721727725216480020099147367663852539392332704762083376468159439065190530979299945793964532819595285453613980624739964393157213834404624790437326334862279089388084570661186114664309651207325772324350086907568282875919027949502386903841931628696037376862570933333478048784653093704011675687475925462043930133448240403296891003587489802486558959617636908974823889584228197175338162416769468474894501064500207399080601066673541928463594957497547169247541592702389071856763256864936918972811654967379041747577684211752546677270360398232811785319754640472431667545654182954427053246011155462260071065617506170355916380252987204085997595394449901995395208922183139205799089378158245153124561490223147370815630634826210761232086215441581563199667170205261632465706760828963922415311538153041562249704102828122959470008042950366087701601943490190715646186066295130069326950219480998380571422883877404425488815272442581271324616627896080651326344833797698501339996523547513882287344617761884193438971309959757538246957039674119573720274135432443977433390305194192230902224200958611678839275477051861499093577937843445702065015665314370540443273281997857629994976779280330482763344165916087107586078420542461039674054742009231936689251702690454140624306403676951346613323149604377245447324347153985154664848029256637233591905281705094212750429195280579678135765499997026525009270218946608198607117355489019679901967971057055663845775382347785607169854714499765061108278295277815719018947929056045874302436597574842946242412178885202433349980903846332526653999388480768484258393598464870761025715013522666298456696324330704400162626815507707484942294216781096962493850305917546518558897458765407151938907112980885089722378946958370432039036056723935499483396689990381338408278148664918828426692333569503209332516102782735883606723862693506151725353587573270292824881830759820548549808314300403577821176161322654157966527115551541313832851458383001416622690947070189626528967525771323876786345280858290297867973952478150599831891975098465132941744170732241263640820180215420732412204675245094650615998881421020174203586517696156858960635808235149284909560554970349355806412105847911650646767693244387749563102665148640502744546128183090628617643786751810122177998525044675467641060671734922793756843521107172578543749743586950398764889668350147473890209243166980176816945546598689833630996077804858784477355662877536378553823072961181330905865800027762542847371189004972946148861028020224361961554500571258938127075077985161011064789749679993167262670898680166280610356595333908971478792639097208915886129934237857470139574620347083264295429396685060491598803413936366965766718944161387316680288531890594198030443838525841249357820042113611859944753411527681717471993991409406802876145351541889773924299531201323171974382846773329721432014280107479886869567543852335450286851883022875595026873674520476577783716037623000843283986652020984156917135793343956199958607907871149846188714951509572975668482794260038633842136671395323165684257763241522411236305872647337147670007536786289902847464715053558866684407509637272770743265941699270013165345054548968095086381976288790424957469711083725515462802135118137606729325279230586931538550230450831788354684028209855595797839950415751027090298159312331030470795072604232013529652529101430186324935345611386213122102698557011998776501168914990774113944262480094478453990997603891353198058998570029822998444528797465279449208597552126321440912682734503041126046630381879202117012761024193306257461465924539471205681855598911576878410536691488937220397871697289127930568339988616289499247471949115182715078868399421745303796083929630291297488455516334608298553905741210759408306964875941609976205106856453286352750499129140360039996218202672732563516720409361758109321817171522201795026205932829526652074952535678222948594009975904556330984879699104602200480655488975218389524213102642695203023010117821312591914880727132226960794285366458917537828048556609547918409157284490393410926338852558720789972771282213905991471445357357217230545037457221424606812944989749715483645853673313696299319608761174018609235059653267201291161578638966203867617672747185926059650887878453898904540818533704159166751946904469066423425229671024546258473368686319044631276917924590295764744953912385879414594183025681623009350419414240925286551315614580156543441955856633947788730294425499178884111385855139591135275610903989123246549592556441917943308903394653448705987304852203392086524022875277392767627382347196476014268062856452782348514080567113182056711698014982184254295477727429621439190194289094452138375454314088529802950032822380935752171217067602168478176910034122928247184352264303650456890944359009052856679954867237829094875195683167705330607436898630596576344316543044955246858354254285121684757467332914605467116768565874639933067133868606175901390735656946293855736813630646164611778947813281881371132694046547586473842598117476863873874928738183478036859858231253391687939007121223029480627933763109532216036360672392399836112673751991010035545140695895201140706576374125656303208727389357757299493232505566501929712117744016016542223162054148158977188343116244322793811548952100729360962931442604541773924430360070022536796449342664670055459724163512624156100740818113794236536774301123596183394151569847408942324049891762589331817428859995951020292626718076607307547104285017258847683581297752977626710765257610878180142176715828622010072235515180861140194257489670183551989000550569346872818065381685645863582195024499825160525378984131834531747706786508117900598599314927036706897391845542500573780122416803443095852417185353882610843389103909253137471558771546580308615004286498592184747352890195911505831314265826313580443259678448948672329448249851366652561915159930431218502586906290790623515868924042679571790206921560213327932058064108659363996935369620732739089445678742827181820070730221872879742549032053155056481518369056539994659120793762706651388153716046972325601146661139201412035737833674539711735153844938133037997088601835654006765327220768025904293446602764139940798218056579590086313355845828578510276538941006837262631256269806266967090955888102194657126206453415680490498148157518674965730787243663650113282312825676660467494022827446245772715981370655344881930034474612409481420392967740035052129776924681237410609166996856820538473313609256495257459994195560553434039006651542947704587430638201101892889599761040278277040728416213245706997612565089407561173747388860791432762708885680149219325609863615211781063275228421785881943357029574893078457566591170964852973710544619140731665759981214224687779019744640364388703431437600668041102741171187929515036685404503507498805074427787555702900909386362996184254561299298415601446948829711523876371453198689992423859316278595405929756657442464861119269528049036354511288430214839531724664705826431286736982339895811292692911989624121219763672906787562902080315500903531577510843690748305488651648809927851527954885790017260184493185227594075302499253231163212890932643397458352839891212547756770677212011472766111865308286273372044472274628703954478828692697914315884565776173995904006931566019933465572238166456016280066995321294778835208465142939022220638525807984789210360046979591078292267895546642083009994479543984858303594410153533372312975208948838376134211184560343965064061422541447633386013066364261334425424561658634293196504122010552285312793184345243616559284252413118142882209255244597335692872707703753973732327457955035810948747698346702074865996258203257647307988201042737125620138506249347972010592574822316267525388762571498611610735700664873183728851225289011619616273710097817732382399978587143199216564435363679688700621844749208406867641342485874464924464240758550498632896158892782592354731158172739273698616084934673884662164599760922538782351734152091030254955428056991229135561356563849399386307110469398837963376779204653926873873284599734036038752872545175022670175914465222434436576754074819848744592016502955972068458931564741504152956543727247325219186668029342518750590111923866645119370224010120624212122423405641893770651319963682445924409047727818072851934103881097260394210568256623466194789719256231108537974827618904980484600190861374929531421089098128379102131719727885871139288379232357369191085181482949424624027422733463957030528968039625817726575652871633123969795360096766724070118095981530185963794670851553705143573204811565715158998843184791774301827615519895580956045709052884664567699161143176981727206889926313904024079767477236014620365265361016737164322689874409503437087714597185369440412953599083765270086683546728969752910481190147939910316808758344087307100059196239563257702894410703423793646687620675621461104277751215054209074627106603682563419712948991220217873958693918815177911455838069077928400993778156878103977214164137984366017185949294479809326306807895934286124995212529580246160818062361365420491371475190108369090772859601979613308111079706508294587838793207234866015964801289907685695702994764403882019727341038572326207692144415797394774156403406755422306383194418412872888872737165641934397977193239059045840047876019723987586984876014694927947429437390949167646309384665949718572682950357503608893582118498889777203755097685712032074372081475121049423371480073060844644187439950655336211920304193792668790655634591314573587728704731541421598019840489956022404333261601531739956433656083038925080130457788865158834017761137681339467742636402418569086095175920120658615603716346424111396199143896181186320225020237029503131502678055368863187129222289283961259086046466066598456942742501141541697030587267628373951368512606708563670866695940044546138760491825980301447196200711673444754801974296890556460462119485785039422035009599011808881294511582034174751115861193662201573837756307421468594177078302251356153675614792146577194947234018538490843459186564351798900369408631209764321533843459724873638110989524257108127824204453601931431422628584569570102202006237580990660507326429234366982325946391035901180491033878175913379895080625596831080185073044683277059851221678336292194290557716890785355342949924396879439153637644226476568410176579637190197881267131106428717404408504579454161466646345157136536821722260495769712945714055598048931113185330667464281293723186040065513202220116821909289025144304623997999261593245630476297279379705261082907353471311078541334176139241900723318677147476665105323885484217762363317624735633107059445775303734894740697302562169991483161035518019190048810642469313060584448328139669256592705790942798598555274014498756037807043181066398038261333422450683673415237805647099975496873329654650286201864851801615439931693764040563227887571737955775916814580741193857402015669895400009712024885007996685847693715474999617658074086536522392364665870436691556948992833565414019834250262829221517052249046048811098412343353291507511670110816342117788596611524569630181433015343594699323393261379556485854370467656193919367058348600667563422124584490620365328085207415067021899742418153984377095128696026348824631522340596732011968320934972516761839638826740027077558034386245154699765448354908063759987916236949378311690457919226121468928376788320788221554644784172863926262857116274428712873584063140757823429713162412283719067118036563271722900964685091730204078017432046295379241774526355342584805552157863543373995770373608891897111956289959690880228403554279295689869891802068218026454014159988750963763255858395484952180671345924586375244895009635512998412344662711343533472940538025849405491270464761629680282897256832514556613942777299205666573586155998296687073485713680735691089432807653857548309123568683774190223334979464928918568941224389929900499716512571275207151234333180344323553269000218739104484485643705916512517020851038859788640382921787198918502494795988036217182709901951036707576741541882135409164147873741042348804738910510840733311202410234352950361032754948182978727261203596181240807244463218119220150185814419561198025931134769718334640844709590393749980853571808125516551236194078059441612403055851775808900809635329894607709758452504643360865072306681917391131384922479086321254713441111321281754255921099269664387305621596587424549830837613668599708518383834074975858337768667750461789742008596918683195350499953202821766143527880835193836542651572259182097072148363951224354260583919983136885883872880735704255623797410304254760414043386772320832545088444071365586988485247269629351885394594357435856342199501774732050522311426050530992952793325627128310495249937357918920658862213587536684065590205322032089524948575130379113661250790608889307696636848850381713336815245492686044362851028916799305719471298514964500295351818951232608599991048691480475281326520708516929671208191644450330192479459916425536396193315504397173671520419568318764635370134063906699330167893343102707337408225305447244934047302811905466501537813538890263305889793873796166319377523622563477246377983361080741579525739375504452543735443954071746096469551779218109113504658560414617040835657341682733363563565011731766492649759681298161534527342879760744595009971286730698069903999786645575035623583847800738456086646967943794231085823090361887979675676223622179242848787659829408712821555616326783146368625378992629844359560951929898715946650592037020766220887840092985494017829206321217487196208548727198086751024309797791444793246492163755788416831475116326096211214107470728337322851079648621161023319348418116695354928171439888102735661389803012650146432537513523050179685171619353073956533061938600713504728273889030770785667122939294573333117669609897495106429494647225196947558935561232978860829424357534143876430727673342277471976220627944799512566142058447347383748595049984870323018135077267470300327328432001012530047852541338369279382759742274847202080516796122619773238246865827082206792678530542246109440696805585831266452923146457365073006376338559338504205556762742664458586524050997860099472477669814290810897768384538227024312419646085568168985853633270429038218260852045621902515398341571721277429881362385372481003379972687492582942903712777308329306868043933214629467514435971762882723808981129887913393628469712430590024805276192432902149688726758851636004481471108476905469051854448081856894338869563581331786654779410861627676928186667292404397404941705465269736418873686485354710414536881212485996202064084039706503340532005001771151692395161043648727790984826079399730188500325304585951185547142683032216595189352168026472703434173496338167219084562069567885963336878128011340089963090110714529755474207299860917981032968648084440107049646393948979540218003870748619188857166125937127728748414807148286383532042641909523547978243879332735938399626912420745638215737245900340368977993979120716376506028712012385034109289554852892461315908164468757206788700820167596867633418828406110904874250536639651699951401695390517669539616087644196307672035194741976752889410184195042659879550869670895984941134854187909443899358076014882372069107829506654224256870683189973087354814157893673326294921351066489897451540347207838887813739245228720102366994608934951187048967950943394490372045165997357577858969822727141970385002389089773206566729580699482793870781441647804848906024624524745226467503215329581106538665764410243833336595924117446343071646350695218922729409771820849393373082634497497322303616435248375687620795426299917863409128527872569396170158783935311483459501645351216187397758119695961725365085581833991946375053515235175955343490780287737815719084292587192542968419490495786643106456526190604278210234773271060368049684506688760492737758852145067333415341702022972549778870356289240762493526951318473616779743024417501348072648540690431815272988801075391065221245936040809143286073977326722497727876909225543281625547054961391777976990042094439323241852994623871083222914349524062883903735094999097365098210532007201984317933376113334726871127678976517189673063238593166439064466147327426770155210878482447807898970067794291574695181095552617960696380062468093766882529712127189774656025405447012296412985314009277718281503885499862586055780209442053945693777937807212142266213115364848123083328815286976817443229804471598773084532245582519917386265256427605600146670263091064029378745280875338409189004656188787879098752452035529185852398202493099317061738875820863374140028247742736739994455043425074881551394286042740421592360051268798710696616937720025945873572433073695889029018104863388737390431917471040874733102988625514889023695985084913630805117481130023376641276949946970564419631017155883796379097043599177122201245442510554254020606005180712339637452000349265667725595197069065598433212824892355794451713621374546549477218983159504020649325267277845438814822390951456680701079423641819598947375587508148388386536641848785245263069061204454815761838026121604755860364385102639673282617451441068847760449740478013500654352707667960043727394149695365834003331840516593468940033970398196610955425248967016677385439769970696645787923446328722992279847497676946166183469137264321445578712244766014008190484328153649271047996058634648576453044046651158269837778915165478413424990376632995430593557753719326557689451478809454619707594607730506594902611145130839155585941504503640066922534462011181431106717008014301254384330111112065983981866689480903922615426327692428739463560175821523291579318875111847156754666605692433119174450404019473906627150033698665187691964829358985140195883779638269102679140922355096853488236283059281892334266148529005150232196797158875641101915071384201398560861036698027538676386242541189508433794831909976551523555006426735588380301678127573150243979851658103653834950017067465558012107477414700691580982187193118079445984818237993663942308704482109775986276018122524639910656947748651928535921671211653201635447474862944978730421590537634791031362936501695234575596310693362839604968013146326508582093410732179560962008645069639422930617458810714460478864909682099280696161815218208267853262691218101518574383694971644530912389223884990214963760294587622380510382610474225117208809149079187900013800364608981262456204818877859628086646157014953825304087201682267660332899059113847948897777807187516950011722906239978284918301931412899068002210790877585357315249897549211211537747587692112731013191538632291792872845501139397096294592119534320081664635427400678597514902393517523266519682481657998208821880639601565235217960379876101924191744698882471859712072875049675788851895653449215067741411594491958126705044325070889811543904816106492022474082462173943158410044808311417831417468503536562583010596521923608441244428696772871733353648439068299011109023897123818036674150832552620410449218134987653291713899406027349436325725032543660821427106767155311374648261933699215996419126314129990174092785127306126412326773958392157158374193557907085857082173703574384270814911254048560765389431135973243113253832115729221232040449135662812252105706376153285324183771456921671201951132798998352631350374061989151626458285622197452859143420664654369751764892036723495551060909484128501690961415360301633268491804688531365389743512196994592228144860384225752210510353721462432433252494514968607531653997907932543693899020742500068721770335997491765489113102500338199842977819600010418809711429918168894393623564526758449881293430684736277162527347726687702768929102693449354422914875352664227515431866868855541373479856632099170908566280934451714778290161750277069898186382423936581744826218510920316161077791892219431588542629694126986384951848345149347043100779821489392300368032502966272034991280114086562479270610191948034231015223431852690411672846751802420019369750909003079272295934285123554090198924302469554185090000761303330308133908749512891524117449583187142091601702123874864719209223419057174934486842389392104809942865289027369441214670983424374868019388829216982865019521200156969107611104626378775504050245219491024304192013998214709486517358059361265117197115103019881737798355308466600023868214563038975164337749628893064918507900928514407106429972635280494564124634645389944697075572200702413289844423893173110754161002832462417697179502271308537002051520983627916884964914802036727188354369711626741762472603816118027184939930417382987642346640373175540113680289520538992671493825599424476126833532522591999302608204657291597113023968072774863987646542943756932666266935706004505390774324568262948683935781114007060217335054465318859180163305822458607329800154233148272480078283983957060881284520717768407965067167229441926060575145670422381446785377567160876814841472874959176151592505825641852059874315322525257410648051676244239817268359299773817119585808827646924987324490008732234888626938803229351002328054557555141691693955720867914434503974508468243896436730323204789814895989314551872002730776348790701795719063496916566514496366932457385868000294504622026423514228513073724286594453117899223067356384067910657197663193499167798521393029839620961530802372881480575290784672247355218491692941724903447394224190908066052832447633336237816332505854109407661929190918265386656729885427964507370811505820646130107769096242186956007011256733610135957536356955998774152037495683379437582614437636257285565483492078228971875762530432145128196371164926057719124772652943044757718689407729242044952197451179582971818710481237505701433756588864588145900417260663259220961847741973613737038287539461601339943303837510773877958048688810871189171552052221129748533674412200036970759718891631931544780127223828565923168793536449095676799810300964609447083495581283683962443090182035197909454614626975186640722181159656779092491603921665079289068333326413271596619851816166727141697444801528490403914971397958010947446211256669085306115855791210303075690691086167328786294712003193630319321807355438207823809885139256797150712593754457817933103575055419623150014148304995485463008960945355099435769848240000004128669087186339921336095396326605208841719781288226053811865957580950617115606437963206741192091111826255251904137975268672425428689991292849121890630599568817478243884557408003238824181310073474974148644300162747214383709189355795330567784533400300280252315481774945960921331866307232031575812653193785123194391033327892039861190350499826602919575337216867821612111655736616375842425769194717020358714120396171363850497055168495321532646234874966993836325600611294083015660449793477520432428711872611583321622070327742454517600740399520548138683463931560346013493984666255063634340748897191789432989165309202656413868434627675082794708452430283837001813795923108700759893239650868642911015879858417258879328014582380067833908862968747348879468838938389353109408549674305026629089300502360922693047714944490534999130881866245471123282051327203339632694268100167591032503129746435440569409183759982560926103696162261398473924336089059952711250906581008895151093842697303781888966220499626390997686205882975827520696979490045661505284987383170825128457481237658408576893303233556782529648736561166987991411839249114012871383025321033431496071650107626530279298799570939701883525125609736196732213046449702078951121202396212398129998276567233764453544180165426529080561235188570809134520827717096866680453485528680205125699814676568773096908680487757961631271523675665714178155118195837011018956674262239293741177622583631844656184255277667713694318132328021202750336347246244856017324325830004780734887587357817967635356886001158973214240999030128935660194231616045940712673319948352656781871009720132328803914695690471507443526861841380507272061627934933119015761935387209895780214314404940224881536674873299378279421711370069749740335302072158124736135465583132649137268838733864371270475301435664789801356902222856465124560127218549329483610715700036247034545094921308011030940031648892960367205579135027020825912660995076693384645290896752640896463485981510274797246195196138101701189818998274207754688725596341594617992029269152564465478981825499279476123873803118016859084874403531202460216699060169918786129528753976935123032161833456749956133706558376102717904152000385908265434779230730624804100614319025590232066715781895515338759245679462251780568651894740839031762526290502321001445931445624793234234367657903182278568074605827025590356001718373958830487765558567626988911721804562561834046081733953960891006085910145976253941164839796621619334725761354691637956167291672319862899591113262612969303717236972686028883621834059592149728073395055814403833156986323974269456475850386830090557501179434996198702398691112404699694304005662524337678645757977514096958330722303569380445979798282714248621878394481477555417861980476099484980035710116957849602309758193630199109468609234682008102642874387571971966992420923954417376682522778543783445326641103210730003475241208940803800796340777646814514667691842054321524203973239856202595508735792469362265771647509575613485147670211694371296960042542459869315159894535991244445820094576189063074498743292302761629002767699185364829051470972197040157710857644292108630174776416916261226060705376347248273023603740774085030882083181303012247558597228148766394984010531382118021983419290578494868578938449249918131446365210024999439520708982062965627453054048466050030850778561281712121376109020695695250416057753408258487609956305972539873935788711926354860236305384487662976987514977863601431926964346196236641473345495224316893611833429658883883135036360564913335370905006711394778976303900375315023604093025775241186127255518342471653356457304059948743995309008221346123411409708249034139044357811121419101115776952019962924553713575832508789235826616844009741098053686873782417625012680461441762719005757446687287433861078877252468491625409764293347770722873480951434432715606334865732061982813085231010809991206694804256304253969137458323242664886514766216823942694606582648383177370674952168608075258848444740747343265556029227301353883478331556138773455011807832848191847213159140732396863778625570895825954083545363546277989434103477938609535275806526919487366080445793361753393182323738785223361450390616039526509365243221832510176024692789345888974404888154752796802244952427274576298171772448167141684299492615703706595443797746524437376849487602951223859610305348908444412877577786952543651521655392292188122301037144381392340638933109416011192326422044483854535152757594633054612306123181724064390539890776810212848620286276831175972118420870956967314171064228051567489310542982085927373628122050241664162738634569311491149013549642665850067457805042540547386001866250167222007681787740130036707505437114590471783164591073236232199491340563376210547486755719130523884123231381070338138685961177317251677403051805617293983520890433096409542717955643117980502646178296309697219977240146209164484344349360608215623185297777699179314224713306952376299752186137868659653226945548584186381201754125385546282128280909875381265684763716283649555434345677000969641046064254394990697013329351768113000306665344949257000197077669526666743689239839893918585638009659382678274474414958782826742401913052199056892576347758993958784020406375281736149787935124803600158037295984880995578880674482504107464081490525244685740420284157550573189249491976050835737716203327449042999590631687435133196952710452272711345850283620637058695421263093705496180047916291213344546094151664915734991469316002570886139796241276686565883827632554241596026147683037183410624861297131883564414322332376591455822712256862469187294688863378041516660999119065566152268570152125964499083960166697062325207162003858130566493261178008724888007505184500983336797685482457293529141704315907026272809724814299600709433324038879992685865108507066139822518755190009128567031136524750517577085848662949370215642898869223110968123750857203055386323125304238231252843101018502034829970502261368048400366108732758522171235667551274122588824712889342733270895384132987368149950678126323019999514361598502640780260006080382915289731615254787388137113838180436702746358615819163299690151393854858518842104175717788002095229209016274538124463323844259666586138653319037361115195599176336069076405581819535675221880426114654970416894934716699981220042320616999743579338387206432244128398890736907101412894485751974185212338022065846413179986891288865987927758559222515413149158804023684893683665886545960838626050973615088270373925052449885937965738893879934074265879760937354912935475268125139903623330339592557925959629914974868734371200485417215281804707161154627652936242223830902304768474314428701717009511625683331120909327109242121294602928820062068534517006683039964600478889956005869316410524721155205754862646390677494956757720652749413667920750141337766066160285511889382014366900470185098455928212112822345612212634966533949732099269140246194940795497925600472273284232653349688537134490667468556461701817838269114445505913784719891318911773687036428680505684346881796721569594684948763198171173626866797475320724010862307408922889978243255914359990970749351632923528026883422173445689703756439624842252998303009929272840171624810287768719367492752232007000524413519471086179163430688102867337889414670080969734190170430524765705433940147923745773765148643034236026745290886298118873089740465662548868395752377175025775370800534468467586883226593155038928599409611648756912922084556785538821957148367296722793559135191544023116495765727921607423260869984371746582127707244779378502521546974399091418744145267352211284957065409424220321787233052268895691775267270229387965672543638378867202919043020060376092967938929581947200218852679091522917058381752260584631726956044886002923238935955868444743375359523633126890823318675731489298345559626402211156147960085803549316189433002912052206918174496689882666173078220468981509904247585195624618392672609028765892122930663088092423112603773338725040550488359917006900755185944141888760678580999191403959208804018097145268935103763893135624400451538740700697069767439600434219924887486264130297466881357347171270310092370595828093851054251361578110117078504775663578569566811654340205299129936409250428449616970923286887778820777152904844458271526131807545699493204633585772225868357697366439757773485584659425460598228419755257325180391131031361148346368351397243763754148273123188431749101587484812384173620885834586916298130995335897382566106915319124854993423404314278859393838241528379569159086923777418955669470906941568930748868801897266224707463838199515559937748960178480092287638885725484864736924499839037789841619324652540760586408576303897645640328236586663869155413156727338740551862752008011537205303675884254031522826286720622230785080985824653690296474256459575830152339298286820313468974718066407929754400797374443982770899287316833468095810249706419988395350506487556396007661378306458622211152075320571217419584563064334765638046946989889222645612817896332289348530817417024278870281428118364635084423680615533393097847415250090216879103649184894075295635203405450314176695088150067181484609041532801724907313560557179125233789504874398543196553902426663632870302874177938725513539576952972679742699077735802353171005978493616758570920895807064759566606935324108697819745365989133915919183566642609005623903355488364362400733142095183485884119914741967419323789621347072581100668083067511682935721682422720729431085513096090299321172051007789139389358622250332067104657363384257630064630586283403688620029321212081873533917736175767143234283673439584894103369899842949780476616331104755073923681715416185016629784463939277303876734044114465875077347678669641650205500224767427469279731897698423462190253182846101296699107930660290865160337198135003289159081708033025949149755299281348867649571798001441731600389523277421145381434808683646720590663545113348454921465997825066423113851514705827696628854876328926677604026935164714864865452453169269983204763326692552493765862006493765698303596690017259595200224920045012842052662951464429831841114136215079691175804080781784437747855385243395145773319825524273893033962227207460676704012389845301707584691767589375039671282107681533285826708603423797853460600832170909120437951970157630143182680942740597374861171243372266371062400807720318655714101208889599373584316390035406567184979908438205312684627514094287643941843490490257982227568322049688371422464259633522480371285628769915428237583964135967245322933261960240027854659006432844845848093348305850460379160814182422158992311943388624609460335778055555335289975512477585505220908571227681186674260534566576951019230243360636973242897660207316081210291304463212226438936083542258325188475407588985800674880182224606886856121923614486872610577183505847970990635743957621035722698585454300082248601016967075981528483796942374976576339605455816568232891276529415167184626187528938172702641597902722191430120181633764389120521189033195415225862570992405108736056449414650967780075813773098162775711947261081706464726712715582238066640795740609550640465693591142810416794606875457691947212761386826911495819881016156177797493370027224369662916324632968170374584345497103804978408876848389318325563396943073756920760301050832759929101376316944072820324082389361214626901853154392966835643471791832856668830326922605581523162740080643889956373311009866450285941762122536084705513010595611793853988661073330748767741733806658785723995608440858788839101167929498740480731670894913880103989223405390460905894906011042138728703783454793394850982298681432997059543936173496294144518426167347378013016274861339098541659420159130068459994738929941880203829211741379627591274314438562369766552978165158759120152008055813084060389038376719936182361826340262455492606485438664742211461885621624863365506306285071958028086804329634184322164496667389670154185567177757030158116936679163533464865013893144757054059586025059099140007227985404931067624699297669949106346090797044906090969204851282377232264980737406730687802874766741187553350475604659960474096159270289249337974429377051966914510189739592560815283371460642638485504469472835318547310210906105620604229079494187734848518973874275865656056695745210723023453491833621855690177438190973977305947382409634886578852395149582038948864215985936745373913526158450611685187341877207225714082615524453129557364969050083807152020527132335327666606666411165518317070264674744627090278701188782612386124641581156723950653613413520887569047606154134864781576632372876068180611057314370580003764342466969826104840503948484593173551052042789990332244568388804659610279541452749430574258862907849526467838858403816192825902890711038593117685496571824238235653944686210093929149748051238347939499945302848337355448105936370078951882185126670099017961310054692889524454654111284971725478039541242817083295653756540155893751759588998576301727906044066938558287387242823152107126544808328504962531640890136084189540520195503707493409631737354618174861182722406955239594967824005547907119698122188723917349743754009056404339698404601127818411863340994491246683839937597444121369936139490878058868074526019836375464153354194801251148885634551261855970247367859844792948335867836036861590389440315457266586194485726735892202527421198339245517008248440488924400798905809614718737082988012649108253791272993008885816831191716301148966904996330078165902260466161316305298969165840135392862580966118767835505397583958856185604734818486644750141084449401026170520413612117104642880545560479455545208986715903265246421362905103938915856031387240850268611353600938771040008913511881050376368629225725257704284915740249536649558240357128976912230968354597002170233803984924096934130997909617616439468415517649292660605149205156542350185576385747239433556683415915607683744771238290651318041628426221691891159890387358529942560012961474871915993210085592277825674606433827766566021589340747378849779965741592762756583056469340712530554357814636542449106813008451488078568296488288396809400473333009414131725550081863739430097923199743149701536019067926751824549880347229904850297890229957223258336486133960869753010527814030974366188208182587298379373569596568431491367931737840079938685735680406559811597396534730535771275028451374036661288108872937404402419358443445211205512745509939692091321350675936757360282907289443250952888608136348329959673321703077965733057392219270440025549219479494170710323742084446015247034174050112908532345176597655787727851368767560629644472217978916842244174756875213762383903002059978983403840641350667567157559371962650760728163189068230050284679790212907823530218516568605181071746610489740792345050167957017052955629846686888379317225065142518887749789131849439087537880167966646237318653460994275481991958660776973436202274196247576491406654702576223902298692573663038444495834444988816473986037203543797777752953617493249666821480793384104453742026214340902792320854292546158968289948094320138751603200685972794999303801400407780382662642477664164252273421467048407163319850063070343868515512917282101486654448785455183783483578958403060764128208309695087708982035710550683910038673376635500548172696389924057937939045973968724585398565746933432774548671372072773698491211880883555802901225940975988940158171168916984175723590240512113555558360945988371263901990357887311289958955770036916610907314461388222352222148981169306620132060877496829130505385932549360148643228747846597139985232186659177936831140345551937268006184259383945703152415556056673133616865070221699668397595259086502472732919579097635132986778985308698336425825223097137138013904397838580916971060594549728977813563725013840013066206603876688877306679978656485178782577363831786054111931608381000279512786362299506453381219665733912670741129300216774169902832005362987723278496827571342270588528888834252381278072075064974422729633679054752111469422999978055811198607843364538574208113428465748688648707463150338390127533731767967518785035543832240661086643436114767627755452658543144077658151698021493454379853813970720493623273752884043536125320572807773422896162141442856118051916198109165258244231357471251492806286147606274473092278269490202225016729690812336297165963755982267142554013849538946262132698739091772051022685405667859923568113556851402858237064546328378475308981808234586757648412624961292143869403489916116036194278057092070182861297520197685798210577128572567158902181280592470625017914175021929422006847344048121927637754922616233828296676563566020845441547563486525867380824197664995093777093204106580775835303732731490958855625488582887259456473245581944172609369688200654042888310946766312308187651629958702982005086170456307214558316241282392176082225773527238387786316293547646786147766430763590333558271560816169037770623697397101729076604000543262469468868357259873329072513867895233034997462256503662453425820302341919557017447613123720037517833668572150584117793027908183495813995457563019968967476675500072421852727821904181056203984136881878043005728750413596947996961357216041214517642994397974822015868088034951021952304562396620008825804120573694874405923265334903227174290432304892034899138235441055421712178323512551347737183289189135597726963865043868101006183007301863725421965473459199630880186286390260292402966057164327106901941432972167759341098410639656251153689051303964368596687179468947604369305498892345569171044560720582244372823375850106486607343016909344854472496986098651227342790543307349432471725344067915456661743534986940797917673291701304976931151254244851264065200056506820412800382246340742792397349243345270981063909353355414164003055945989466824277310065808785857885748019514430633190494902515583592342921535103759731293297152826432220405353936310339904429091679605157302219874223494786096686442652753130774664132917470757133549327441864898736230577702175990065589754297818650379514004890858181265335518597200092437140334039292917856269854367339759268048093802274565719911069239871555741053312158338127709469255908071774973913891286555557534279893380913512741430034290165493762683304623546801136017610239332031990128702930326425233733887561138470066032420300284138221310214643362778912108454245008455566693965822927802443968150819503087058188266463795114864980576047132864946305266272844727043495954639774154260302558170239762344977007903645193385701348281468405262297873426925976854162151768645861694810562491263608478734286391316940340900732405823678595385106416630555384938694311557970552127512942060007408425974400395818968218401003988226689254941635885698876734630808171388087354734749274328902630720981024497341536738846686009426896384740435123682594910542884676802708240135746098991774983704720056184713751407552188929310262702558286691964897025741300944242739258018619922260250350103551743032844515228897769683583464663514774162806851159642200343307198067372861807093336201629816834782628688378165666756204553632309967099296224836341865025963484122100432502271007521675060492585171730491092103343950110045176207106346078210971899715141107294989709014347045440759253652665973909735057194897489276508864760956238993451071533636421587941928285956873119241441555107472711983125118650719949739392073420537255734717580551893251093879508614868435860719813130105685216487441283865941961022272238778885281631503265549016928478548333424340259384352925703953539251767552760079101951901882892537364621631196202874246129302102413443308184617602070487156779909377526366828813653880673492375381097221496253244721980244356622482685470973343898701437653052744571770851923821616699389529810133456480740751312359877761340895368960741501634237676990154799890875899127045013865545923424726271585628113623011552389525872282358961676320839086008584633428783385542782479306387774362819246970292618634649345572366661302111992463045092528215069286036241858178355406028925721341590256538639573566789739447230706916848998296668815601621554299951799934041494068521205151332242826031232810775134819941134986837762504796550783219003417822361252263769598381984708478043605644002791761876002058404377949703056447345620452242444256314657367472984129282978588595648168611230118544003452717933135339618220666379341284317327600963195870239920577439627202167967199685254949084318739868321180809138245235532056396424936640652888889335440058985235194422938889226564174913780429519697936370110606069192265602329147657517467259138408729805529878625825735201099905124227746677223462734073828750326395612204746350986688662907640152353150516590100491100298289857152983484799756528093336854622646421691595839994682050875812333018740196280975288705058670858293927760101817185916491873978963493292693607893833671328488804153661441651693432891748172691545816253871163086429913192396045253838481551174875471369101490713399565868067249209377431782880690018183396540654245947578392396067463210891400640583222930329903115968287080197172498235932206196596765763973381271246239635798998082678025853472039672853737693071006150581866602090836139956974537380808810268689882088225161943116168729982965481458719964196559844426428263272127124183519893564874354921356756112979655065718908430310347652737964391011523704582745328785378700148116798051146728005390489964557123506821840124449788708130116519167356463478433438266216851484842541285468081499315176813358762644763260407046855507707551284477742795145559731515835044253091166679796127054827358588610015106162814637775211197028188219275757555336519519588967505817132014240830020303947867491822383329234191755121847617302037640882952628548799889551630275180959981364822422955402136741121104640718136795921819693607046376932092134115838189832711820488241484806107168760847036245481105248472279919356484148252818812392493721757710192264325970835645376054084558494015284105127080373093576519737642162741298647499072373280753310191074898467077876711691570811223529417689927222255823189657170718508660497207079412521218074655620319779889886500589612727248728922129670448865436020653475081467898167503996751666522159317998608791133980686429712883424991202177461109820080407433469935327311407835513695361365861363064063491774598174809264821916989175552633705637060347045245623116470223974222717312041721500668830307961643455552688270653751595596006554097018224502700956227249918721837727842739420437298709093892913704527191754027411069391320280594340182213312750215892008541675011337524643500935600555393381259771215910092472911401552000033103460972533164030280008171500622390331233381311442916427621788201798730311597330198272107558989579621644204794588783539306795795774908768148815651587987391617262735329644857870701728666211840585864022341172974607584004749175230389714995830475104589673932946478002858682933458403205218561143410888197804739227084818734853462249261820103554428096204835855087031476866381944293585352393264742779471305354352661867005561788921102580555628458533125090189530655197829881303251997848890825982198403334800887132273438429093810020157336746039694933212070621851063933381425992554334383698349646150031473518668356858161128353836956514548826306673907629876899690265786188570437323489180834260411236482228646514079417058421940294903702008117770639692324404598613331441281031547667598033192854900410196824110802411837408961956909889051773666478469924248511185181533169723457609365300558467318319922440784673749968981343019079770418435074901481063389237350880013596074744282073726969636360326718789231250423423726312074682109438332285489836873268380692940530374479638079494541125061411958991160027052360269681328095193619601132378617336696465540780509548278131762741184695206237800011719387650907000467435332465571619156306411182426386939617172150739407917192898055583122160392609946323599443233841012623543949385147265451582408966151720117770153133433239538692523262260586871998876587769546733424607081594053882320634805571748975381590153875690191672405090821045581291199634695447102902619860464603811136031999093938392376767973271734952239374058601477239549265972329696411713419936587522796525179343366776256584405111908639331471477564472960936158661168196037420836019952077389982355787096659585697915644275864723905341185676713230992738695304815496047785916631832078676465771949759509296727065004947394739208839657677121321637077792491602583617517099368169854433492636817878887974510983351876888773508954134764871599705639375073006125013373978536191093126776606081296189741694190948723369680360550320768414351026121582215156384455452879192429623688958639377359561518095337004808366350131792562939608348430606999767481860757388824762245865992122384981430489115984085647993621451974696137970448789831515077882819095617910041294833508524685539794396247191161631094732817454266517433655489199217432246723324724964275789153981894057045214818210172786566595644324225765862322288531859400478082205726211140049011727401458617288931401267886842645175441645527200404141474768927139402274316844893924649440081289243477576700181877551604267108194951748541937446965951142020639555467455997392636925482901097204901174302912084990546490311494572034023843903819506940580878978019817908091359449675636587730711530017128698972733922200849646785836781266380894446478733003007728566161501958784190415960458336684328209426294080093646972989822121093723324617401385262205580541098790508595231229757705726733993915080119339310548694719500961851828451508356450616078890897597820900509854026793178211512438184216026581347500165558729969089104623198998365351491807379606524454873207871361459121613459276292212463493495874006701131405412323168046816323412861169249273968712324537940003310419053200993861026979756774941282588149449774361867235147450069391066442272722017705249756809448621374346827125172376383135529498938525158247621208381447649177323026280907562628838750193156418507926571356900192277747767839812203576793244272098750465567304760640689743749722396523883550842076321057498060113881083927331556503634007664441430813474683513395409697583307215605805075255710551754811870284221976936764094396580870507899510594604606392632785238283411250310280506834179273263581559063059953932796513175140833553560238809653423455879786042484110324837731698259714832714311772256718104234740583958306583734047108652726496770729618524153651897216565607625480179498903900190353605376412166677107025473811040294318069371071349217299995516958927863365190273445120320510872301880468939817212291395793990872457132202182521450209702472176084828572989720985898303995372411889758768421869699658410526248804934781914679401212516229019349433042652262280583545022974399388204104362155766181891091655081633956387546862213325675812514273640536982855383095046454743906301368209100037976301414646189429478744917989816148607882998405522505210453903001988966237352856260334056353221309659854386104653161631598534215447722231901747209209248396737448524217074767985991697880024869679638882676104969950424996812436499259447219122456389211455977457469594741125556994815901190123620947775504747003058344679269044309989107190190493439013127403825568529083507856300005426958499367030799327516417839821583325680248792018702247727210303154545896703480596715035253806962063907901520940184023499013632313848851389075299390270470862874756431553334998744270875695507801831846640491016143109119006221136075290993405167401566209577285390619835036756915187454923384301608798955866269931868296741739956422834375959357814917616848113566486391826002522775240055619803375271469950891104898755012459350823838716119197590593971804225389199237613264804658375193363322050824968000475041042720328442738393952116788127403091585007267848171619236347522239132776408426959092165801173565503871313360274429066026878764454201591743758867193001085784144939378219518222210232313516122438720807505813901738625069753779225828155275440598478914621855751515247346530358995324088722243999028627762629322451600071591407743137404187569713131407975860875522135445650844585234702761881864955699802794927194913144084477887622743632355799205169754138446681274970325809633807615425899962540938558626535053524368874017995254486677382768187709430891341665685034849290095668489322097578537174799000048107583481279534686208670429382121841092396231056655244754751463220640197942684786214566861320464651048916093943449940665962978092196095451992655106126663076352964255774388214479929930161896606727165851000314465440943411453386694182560255502437963062443724948911396977802695642809027479985755655028032991748392434533984629737011835170295110893529893868058366228653797875148147171269319894178332124976573498328982039916463776249976380007354433434755778836623886902765847248206371901753240407210904055753478715657863089426261091534505786423954610262197583847755092929923260064135072824353765921555812410187456155032773565386513338578970794562652558980215139779052502984497799961361984749258116289581571320367471406319857399443770393517269894948713545108575609274967266051212124033744757374222902527302200221116262049035449433535068631928279537318357356427772778328987679349186617263629158763123592235444744970464287156272401990707737620872945262216389673565708320242286444131306872536193411506348019773157849567976016652387956961115602059802133258679694774820336521249279062178993416610152253533311797556093902886759494242680454584321146816383749849030453736340159189959262185117542360792670223294984391181702300807104920758310232050514067942255697781343137434089329540191680527424827871829498243414047826325018751373415878790680251057557141965157139216854943153294647166833861618701640459960732167865141809807339541275594679459396047578378463692502788532652695084211400831734171201372713163393501508442116467866976239869199155376386053811018582420495469264116123347858326620099131823155404028275320821025782214863285691240448644423841743480745986763615130948769555566261354584842410918229868692279671678218649576522949734196633797682299578164914844677181605689093680220796803048209856608092074161819622698746171970712792548289340066931018567886488940015101546853925488889115503559027067555785717470385155635470114754066478820848502126024238368898927345340487540594260065457391709523761340658571849555610784821967757705801941341848511893295146698161236085299961895612419052374434857451670136125401907810257220103318281051381563248464201592752489585951163184552177453296542518212626106658306312217492271935201466037711191303756460685721811545231446385115293438451373535722220187969625379784659464930134056091133362574529101488176469015401243938497831292682233446912572374136074564215738514757814096188167207184408772514743322706886958369136142327442778661474278647248508521114873343131335578489720059445989827659405793398726396276438663859469503583083852749462486231291032864280114734463772606178699114880749551605106884293650046554663775674253782207073588328191206411182794178752551722207040040101492646828439083804121097325213971874328001728211324339579575629899248828524667787855675071532643182956723900666133639872101114184877369535929778680871261536965146892631155396721125456007560134936922079029164613341228726712348619634251230893335364792950867429382312514965393274141770004544679621972801780460121318533886793125184688950009056947407404262677323843669112699147803341239977335715855168247539704393443565812027564966583569477682683803457674544701457877592744320878750787204503780561250669161574598649583595038382471940833677945436790920218394071816220923886876971005594661565259976667731133896541892284756848324975289249670236142604183619476915386522680317608766249242269606885618189606725128438248748397405133692331773926260443330931526358914571008317521654616782887939945410471819531492860582099642917554360248869447134454632484795311036123447926455603211197808440052679386417734037723375869335952105436685983456825664749279002124772857043203849477592021047392551666049367451889321959087658748280796493455670560652919199856988490670324860096813117797898400844537119777649068134107005854319324560243332163482224879643322620472929551699935280360360471068763967499067346990585611026811425798488875155869960148724473676998733937815266285355491197265873549007536877597461203455193756682287409203224490460843254632191476967448717903322304432023484475329968479326797520968124694400193488336092502870327742113869906612857475715974543521448566143011014395978729903185547143969896252312013161131594487597163941082883276825429824377330359845005942178312581565363464173803118808125217660837097039424053198515613500543691883954207150470844948949737796567423168693232764386019591168245692599130789014471784205298835403047178212029238101270352035116784418217733393649996108201534556109548715864017698245454637092478762241778822194653164651362621649425862994807972667299971479193733256139452019122449317600030653855512641265039471021331658995049055343748017744515736919913292193128083633485184693383793537631678759374658248740891412820885646165273654560588209894977294830189578763408435753454076028030560700985742853593881171737908192903922715689617372764854245904246685753856150740531448466629746407815296755645437040255699988950796242752095610389199401149884859288515673921738610590018672168637377513628906439358529134019094149622948739548081939792956552377940941404710249277490837167491542056705397658201273277810129672410142264646315387618251686166175603272189945088766841349878489235046283527693323135052257157790902597853709516293658974665813612670057725720273644003707207193735847378226377903659167961664994966859041018145627976570153210169303779261683813650728055237574671742993494413385856793849539658481029694806983352560977105386934364481730183138883219358158762797075937403195601266612905030543284681096308031038516914873023955400178695007558921669318572201743567824196861077986247653166231071156420239499524584407941614486504238008436934549766314196245665963225465426667993220017768351952191526380726976853415401790119613053436351272496019671883659772377069420380541598308697393622109336958304531424940477208314471812981868272931009149042092702515391061266991749650303448734119848860851785938032392877964019802344102274197365331393928059023355240445995439022827994951473549697707003088306969833403220076276820693834040070556850366715690579847015562861679880299010559490847701457194146893258094292849851302358843797918323470586456053919910686381477201461044893727386342075571401656496296150830557087475959761727229294410987588253820397857814781212040560909861047049911438017387290740553056156892210290167924413477088813918743497495982718477056562143833603106898630947870324561647897037610590262769176149032325559634175317228528568655711605073643971780089826128745766222930619137559457884830675821630764638157675417687582679436411356765742830486885956014868389378374049326472240422076025131254131213501014372293573592290776045068670772854390644219641472432415726161668489653066014718602631446129339096416925856351562225962680489802534525477404588468503910620455922129580975387813529509696686948859029288517752365576212685763404072606102174914307881605938475063997629418069475131371208770665654892512984056998066679866676919098651901060364567114234399631794545991144030196339335787909111185605058952798686992686498451301690491467969042940007229499790119197332243496256939086470774708635668297325200184548128973229050797182963895266110273666985026484832896887159857509999113521046096653193788216703079569637699948084910391740922737763436940748318192620565996257486432374372107250430401203390230972969123066404877422400477493038159100894403137102737071477288324314299712175849926594944791467363949042859833532735015494372416094271925861405848391481265139420140464200144609811809039217673723119693021860980126256715988490715542032378958105428767566342929592637950576423730023771389744089700504960657510897264176431692889418330575286651876731652357890836895927335035359808126680871423324012936857205738990898526688901904379196235254400631933069418217922702699851578995674481511153081583109420038057314269433244719298330122980398003239372903844619303035835638844370678067793115212088402875471487949903731914988277854032723710946713336105997281767126325995287192930663094524877179548347023940531854343112133265141285124196621578710913327798038209542648061671272769549204590434433014228122555649043341314796869403568980267936178714634324745169794490790775526932237646126978651516463348837084188280569606989062984621863874517494457372422776851671672693905216653432239454255427359936255800198006583496771124112356115987909557999221928031975990070610867576865861275389407184177476759836250056990582858492562504531099346365073118352460978792129581656150800762196272843921651719737012574507759440501697118958257694110576627183492884001963229948158336621944876629551146845086413870251720132797386673671361552563602146537088151957067537710380298432050692571172586449185575306657629368035856502978155413051255072127694376489539313905481275643966077250786558557313692975200707022452389453269620499696962920824897727608595208377047949214621592196293160450857337904572661819223191516533300676586397804759052837539250248055886110436404049262064393772162110562535520973986338699636617425056326320249070291167552328179456163808762444784333365623656847534547770058078006620278249857866259044849246688325476755823818291731777410475340747581387198921200984868569765846907716699008587965723324897821225856764879725425016149686375589257733471994036511069508102513398701673187137530525507130025889418382655535628895705358710471178159663569263116424520819528085754990498122309681019245802338864210855181673995075388787526767248880629582842040043563675603043224677341062848125939003765048060687278650372032166408137719132458510573506387467015605582681893848916770509212051831953400098658194797163582095569672038261168814394653549816488101451154188059154385285344562548431550291773738538975480583489008317864190293312924846850969548732588646314745730543282257541246932893547796628603709386218539832220173673751773371460629707036708524598332766940611062496633419978776618503091568100750330474289475196393458021862227943594718438135797462268639821181587733788050092874389732270737276126866965922030590342799615946642757156729242074694834111044129903034461325003976322010095019999393446281936503771808605011650642420507727922726334015126320544887744688862669435375134775530633859065589865514503820282158307929718665399355102867432921884222414770829329865160483517091745670334587538519475900118754786618898059809178702153686306141483949270200581824290022605308258236352057469733052661774554423481809096684839176956219474610969051020711791663923632130133266515933063385390941407461788791465299866030926001761462491387580670260977548974394999897985140558214859002544282168134969359936467270171248946503110942468251023092122960484365449518987380131224331747356456418501881562653973305601998610297711580641318362569468079728748939780659790238659321811260715126567521627606310916409426377403759717741278756137118405007170391169962990145497930621303415353635636219261853293098198954269787153272376596665492549471696400733828681863508864659166507695345936329529774258466211607603568516323234460767123384733027601280476653449048798442761723312468683181050108264768505541694415867568377846234442514186660935746134333816539177023389840420656093192420230814707153249458715215953995253824181082571443199752822707346157608335002587364513920862615183651598831104744851444194853567782608219824004435481784015179265656977925815147520694216370911241155633308698769035918615720602617211476242426541749279708942779791652684283098018988070784055716981493758223642008403538614068323711664470371755486209627342097725228117651705630328606866439734165759266940672283540536362788144612671905151807516931307769342454342239084567537813997007202259078812493921891867886937222925191662597858150116734244996521117276724948533923041687768871269104245300164508290660454817071778260946812264226303557091573255719891504225453103008453602870054025239333409061257336278304430373357941068825351273089362440165396609191500252188842271563170165722334406148190841294325734946275202459140137628221571096869636394993971527730998057702319696589937782195033595994112065052959797844657839530749554777754510093260732172770468328023889412600481059406366568121962774743225862343001783535858973936674205902564914819796434103135480944263797565537807614789702205472123066185084822666573612808202239803417961029282817327521729960603886761102616304683596544429937940761741899452911429391379328180951775307668762354752793463335820784393832541141099848953319610380020957070534624747934709053342192547433829229021210121009092980620299200548938984732682841937043535054850803132002310647625080323313094967225037337754083159689005449079158452091198940057281720366189593554020111287761895256587898437969563416977916445931612088471324758708474680506348081600562425909900390331003492360101652854073353157247937361019031486953298182399735956394117071482519278705733803240857388460784164299802350485111282585263607968989944040814065469588418750963087157228568461541322950897949426099670280117721615077149443234443937082330921827418335722610013994054769732049313072078911486410939389190745064144854999305544580727988408786929298476926871292635151322148268570376662378690560310315221432509080370427889029101477263929548563246556018391922512396424793494203384678370590239803485433445022922667893312685000825853026902438351913653143301442616332418259534074735648494362540470521518049804383338038112239829124206409261942898118362164523733567191727946595668149013779252202466870710343426857064634728818091211121073023116607524707509090505886405290685591193065566178569625690411900972849967899943672154486221600099382748590026965511200173357644582939754008546509049219426794434868476745740115498195434405403127762548722353116622856810885519733284126299685017331541590582921020386457294712404212622392107263176253079273446506977128886924882951119926405731841907803912552685177550466253727176778479316826459739852735504990943890355612170201234155002115408661928496096822792993663723235814801725020290794845401904119610052703821738175425205719364524867210222045641153898607522050143221742948862282561835681503445005928698064385425749702262393585038076402551730857525460347031732699634658537505762325624756873326094402139984527109631025673753685641688857989805050265119847155002843477192937976712192224264910197825037670834780765594790143616001937129910015263834839532700800128531971496697481740973182057017417374028123174553832719907119700871860123660740108185378562892941954167031948063849421079649853405697080424811734577907890587887715495454837928872395150511920362002188126936375512225239443922627852894995579933338133236234977947649516542584230746230824882663225884256176314139424708072230709185424227540940425774679489002784845767270547643050851982730925045201525687831133606481267479649202789599658515205236319520583813177031177499938137669246961176667500444781776531401997287256879617648254379320676481680688666434021629912471115103309545194076195219261338041078996684103042018833927170019397932542990153368464807379596423226218038694368816138003650833089631149378247933749553654590478639544538761348149609424097954004137071202195890097310330460346570018288755482486709893161466703404878677521043312295086507507123987727437754697207670896953608417667760702274519950016586688653209941634318762524865276820143317357272559008665156079377097276986972659206525784767493719045968011298426472482257902994476072790166023470135924413872413504835145843716417120050535292634469035278201276882025076555419899598675354932170353420159625258016408126644815899795147953885174969031667747728765462851818812780329820099105165021667679353689192225430117059570723345682420064315236715351920431888617999978203147229963584094324265129420206747682475379941867194141261720236840605756129054430906901332615798823591068128282488857836533821928668395943658011671354243181598924599109471839688450250543685014488063410394203800250424907791757301468597762661918259099407365078350886544921338765167062006267415470732396759164564739310793413310133425096339879699883144600083489875485058566147231464662696781229353336422894966145344752831030508446868930893119938186124648517328302957074201481595722120973966990780169224670515404045273546453419114349298345809177694531479906144567628739733663126279774793213185959310702408596700929850796128677867657083412480298213745001075773358082994569825427489591839284105573891623504793879398350490956247776071500832930456665711711686975012033705054115618884661681073385059114520691933671298805104100701496891194903371363014296258233232164032540058605979314139697050112676736073388750199541977974029714480937167160067741985298164486978915000981654698610461305469224582607435530731205913778671884081642613459522111748184404673760665408427887068707292375665300349613538887158249177677832532200871931070894607796905326577520180900603925337075264862010675852389306401023153727867038416971198822644491679923945410678850542659068209026773405863471751687284317386608154856460409897672331732233848448960937898735601734002682335524761290715054915781231787276694968435578044122728210998023200344646514689995191536757536382935148780401603556093064143072405671150930285365257095901839188837522009499808817428601950130429003875990384287258538775797736023607841111039764088578281279594416421104122326888090225864557706426564926930253413605248556941400467771264208333560556201077794586308997114037547626585161206257822524407867131806281158241461354341856465914051245240144175092956997017289546036170973706244272940361180065159909071127121615380296024238094922827394480326406016144469196082391992197729363476918601266398857715767959622045682963237210060458932608604915626409915733492155251726216855200950750944051850978558299697405033745386977483401153804252931344314725333549277735280879412255089706993700466775059637925152160565127329204832814171341455485373540504070793813043060029700262888387464641903274917216137122926334105673117363932586647844074385892991725463992972755965742190637682889921053462314538910278777143134093004050985684379624998948798320924361091524064349016478610762676514018708743361443934865703404482974661770833300688694073526672029722140407901392711001275370498252924528370267843002198099945602608745281152613825387678863929186695215272743577857885719143848863600656930582348355518274361474250510917858469705175378467733534686238520506842588479144646726088496925385553697537397216493025171671410418524462067789778158797281965022588065195837964163243731639884908454250403829827936220552752786924510741814706048496284864987526739115702034369795139536781428278223075152965358007092650489294850280426711855884568244885611358180386232102523125122486520640061409353935809508360854201147936477983087516934707301114746935062479333721933927093536096572286134179267054513844514740734967285752301795595544116917847601183508667136564673464466068266693013539080304369999789059484338784023501185607598371098617827616319766822002093812674008899109042101982061472095861555450257143638972146981051107129378786670694842315456827615899975184164582034487250763494863723674427095227152147274061565953990423907245625963511380063257751939348141905380362220243134247468296594816001374323642494393122823926809819371240781547401824689996939103837046605450962058603759337354780413038910697524165494776788343997093156468289246826026104092391854058701446194688178366109095461242393287613874164578734460472227349543239077607151960249449374667824882226104250374647869874192732369438008905395900010387426430774391925475088318303158063869641707461305717932860353012636976168956839590538832088776781152972411929600427112561881171098329745202340725967414985189342889740471243377791525013836113637814014641897861481827231775808405396309842669514966353740788783266576273924924274962869379898012504543323008332057955540155650760471892190338865136181904878989067287133939234984033430112091317720687427852436687584317335467236568308202971167746732822101486768272635418628954915226806301312204785633239055719631613340070330951598399910675342274613797223772107938600000509427178684455530113839521918273940083313550230467767742069155154688100502442066019129907511033006455667272895701452781592838193572354165102880882304356605274105719499853055808083627366500933153214879753838706165748177898159312354076953749518741295061416326620583681512377401568733188021385687874614182838842595386017049311132465912901792814464520732451741160700948977439021382785258047119859145188468963444733164455109091554401129731076001443290964204198205506827843266246319641952196670225686626999888523328504231370204544822775669919120018826158964624968192439973676672406732200400598226848791431361134664551266482906770742742182041813148824051161631159227382684227275383622822468198928295197188827269008482170684068252560448891920190508444713678584345159520128691857042077432145842294952201226157313657134066402727157087940159632226248877349870065285947339377342331181210109433574772804244744992773426372387794010917828649307526518020892374805952526789652722356058712347347842656724354291410151140435327739984328932655967083870446225706979929202519684902706818341873426275590685608747590109245066327987230730236636098673017734397249523097806472276878422118724279644352342788867674745460560404817789745258858143090169390852938237311310048343952161430475928139250495342025375812436617823054410091125581403978711484043248606468072397408367678478525119123033177970396568310953774031773776998492851609866190479074444607110964826991876035089248779274237833999848977103973208523238322369371474675667255548145471597114817461728946366015972919380714289474680161336432513705140982380868900776174528462582951217149000235177797032339243140197688168141826310529848729739794525687445781542856235284438967134990405908177965782152570894487834086538300242456781369790020104033312726004506601558286301087241307202072875742426215274215582772312847841569938217305176855449966827572249973055225813113774469745983931834159502937748178135199877247251807279073836179229237399723964462924063881043512659281284483519922681928989112265297029752367043903951949437664969106112659018573146292966369776292506235827600724062421051096235347771219022284716148371287862970437552236801923866832173806333504974423774145755128768726847537623787280895510909891783058405479867610751045722750590770321334316178638984876156111758816706869129889025788853100441116555132106349279448132224830219133893356170908336758303595464068070512587530749186482769505141671630017704327606787417940270346626917939934455409802055387793649028554395630883410271023723068799410958367339730699133636509555827823096926824458148024769414834622513235848010306333107635315614502751388299686954753864355657658927020240658026106753018522631267003877988075166578062646260316158532405959382760971583191793539739632898194268547408055559912702657275567743234860604559138451509606889423454014138532666424457549028748061572817223581037050503647175332520471512528250122171767539094219764555516741175324472739022275584689571889358261510064336501313719398969210955500916747271959075387278610401860474751638899479284137455037708025803204718075342720156117947215681137980237233716107969516236154864680723879300215526815045503210121777601187335614897468465716542941702098315093562288377246863764585009524628871389360069561417949944020375980772852327076731040477468606699747282926214241494444417425216008354752185057897730451971477646039575958427056598863634248611084379753424588914488122148567785584536432975422808456581440495300716584691670935849776986507541677228135308976705599782741365879724721027967507628763651593029433149941824357884029360719608674329625905684518244559398067015801608605575789513664088245493289119068632164210958908235758310964092382348125482901224425636050187079356364259811975919652413749602555156332399905888830543858811452158733823023725489687382183325226562878402551308714824970376377733677291628973644924053103301261029105998300513509981822734702759655486342239275650002072153075034290009138554258621268379296277251037677778545258229922941492159427333770631370676156893266512578671314922432318548467518941882928242165429283433591027013182577812419007348840191940765032047125545496088706245125803914417017078233902743363241456111313332891859200158032489679250239503077840417825122228297910264918252458897068886458890624861940627420600981368705370888344856748958892687862217132286810349289373056636757677716260723580397849809390949459518101607378055372393301280030007428167467619414383589355584176213696527656388621149086526630549118988613414866833020115065046048766733657769333886335774857305869601180783169734511638988172957290832521298302072090664786557271863461559196507493556392263776500891942584856919356831165438289421047376761942320268008543648936972438713152479343544900514800811898396866344851060897376043183481826090982388577326082560640887395958357397196272008447309851590780412889321081020535298366572295277880153376287300921093376743810168593740269593536464946469203963173343672145853295274658892792076970518339145786169656484498407122479295720834963570833875997986598189810189813439773736843795155547374443336525420548993902440951461595940561994268059561832933162699712683043810158223315485114372940738648529716655067342254299577099319451848080824803219281293677075383365167958381946194480868120008855951468858237226016487898976531028557510124732045461469209060254059238435461145827901029967364701115525894515233068191657249375002000981380533204189022392830109661453236402048003856492559022714781758786373708551434009100747993439614566023423193362434567683474761794432635167560222628241321189415171155934351689547907709727003893262235465889757579392041728743236540504234771988265680979554553741349679211288740122715194562885783767348508125019190491433915251978134826076768574538228393574816229990304006529377645334285980645699964066792566702533108663391949721878673445367838041693000229400948183675773905361681636671596872309902616199246010088027855538902209068779971488145038733444386676227320404264621006876788247765209006512764855591368253072150896552334254118990883146330503578692257004254841282168290837806830577901422429405441745247881140674315335635752321770913859068575341946491690509686251188764929677700021249155857670733196149615660354553463880688957687475317553970654514985871711877389465004030384065466128161464309713270353884747745070464583735337039936492055332567960292839584732850040853598106663167803038827749656606327976743714509562732610373103840092671255270492615785333282820441489838081493594176792928666145486464316233591655648454635071082571837383803628000327678084604122224149146933159962433890722136440185562836889525911464355721319710586022524277662811005417226017205240453356117225366766942478879298608647194926410946382980218563943299470735275833322386316152014258575429070019002275227956855135187420553224845108222299485969896524295636869053794674123465894415726914229792395889148148383349638861741430772900173821798821904149979616136575705115105786944667650520750947292974699949189220045038648532488941234661689594814005069908836173545664280949985749790536119329724885819306966098727415848686700919246134339610914249212618550667570481209602327947728822145044467533633492567846932985798749952580110258557798678307448398458173231205205792726841248135137190474748319698107395487884247090403469352953112991674152111086740539666813124289017808606856707051139248939752490717329200333458582545020169106308150720289494987420873600638540729994846803153566639944377914517665319027858546444192666884851630516673132066269942387866057547008962285447138210752603776450927087305565822262114862725176573613970148647684938532127489979412175600328013867205002770841723161382218007664443673863235356377688973920196798469087901407495569292742506572225337389529676507584232693675077362662200124516304947593344377370939425325581469335146330472761392469195638198684371619272943781610359260883449318627958057923102268000789247333235136934052022075574847459263356025258062347816523767249781246393880626299431173180272158023211075199185970712573122214316439952074967338478953734089162739096273253855315953629956965660922119474836691430563659668845569169837001692200041120740568476219842871566415706264665969876044668917528582172500387857790689098793956004535676569952059114524719720700477756436209965483355947881238945708396661292859495150760543094934970372268453898853299875089711232848473632309057484135845107091733625439830562302950080857475848524553993746113112022814503247232485558128718925891994943611191018002511987279014076651130647829396542806191533991789565179770617591883604794037284359071922982336387879017224199033607640020618012867016454942996196602519504818484356202205227342723933488549033055065342412564089627140776629179648299718555722082733005039274338306814208473265586172363937624282016909326314844084472554064490892151501189985252326279967130554036991206563141443940078990705051431023013522246841682075157094472553579909372646882650868738035592042936401379296210825836952735074818693036693401784271989762003660247507751022613164463502022220137413186691346283996442319719470064092545562411221248902993294680556647714214660771562769310563737840187262357981800168490244855449859114687993885627350381708357963060661834454304422173999107205570680237349406371262679275536016841560916064523832277874617752276121918607658263355423197286854729425435372748054542311745501768886352375333424934531888460586036072993237793733641744702961547296508280266395976813486723825712978661926649981106222158631297375827504518729297437970105946653997145390726625183674480503465650888921875816582825416102790585166840261125055937773433468949319033768681113724306333394122555992355946050901949079625974197029771276590856543461923366570618979084369963345414412283755059965680418454563080624438797408760630749405427229306329040181796404069723634566869218863522605607124203441782659674317206972059645231492622851502389824006339053983234285956522800176626431969657553164341082827123868319220023481142676357940736482643929346597730731769134462423043434634251916122369651763110233118882495025518756457509858008948641850883964827883066997877250961245716088593641357410582742779274580105254340179938141049290597868050906105742946169753925250705397194894077182623992476272103578774264054578215693291244938445705718429587014402961773277082021192917756148674896125253187643669931289106246081302691478313662619606432792493443467000034443600254073337855408121683603016646829425883339470384791547674054129116954040224717542621021979823917849638274151050116605859859960884516406479447365620800468633810389391212133168011052010134593406069754397585809464495706939285102529927580662959586614111767513624639956251813965644637480818021947425110340090460545836153073710096655509470583192876205876138260468329327596780419942026598076585714366402593597239110744019728942603570679705958066309833046081092673371052216079243007012859339729163114569282885019125355334372724713477862853373360565037055128661573640284386100261259308268700920624276257360081391083713035306959310038796654182993251334944428405311198423762860015497492494681312443759524099404779450355189368055015235698917527353480680615440748434116015724322303768121188972835762502193886974721821840592008434258012255379604009622021457920269689539445508969053568023990480313006936452445703066442498738943847421284109022258441452014546636656252730932298738543493691189617843853836571374725474603826559323513675588341275050233762967886721106482024922091518534772461810627842533042137613124284011499292067132933595163206706934567342490244772878063089192867152312128615159865409566566278210208944053581612850147069116424454236390294482179590450850755346367098256390225005411292525929324260309790334135215824967089742102763370908623472997107567905563281232844442389091584469267680167440749273661060535879033280944197578140047509625541909109193791736016905669842788343393637862426764759203406148192448692123106445779840851754956774482964066147270411179854102788293171488146686806480799165998897739567952273976741343528500048252793915332969367728958404502963447944556320036044137107738630517270254302428351187450854779333527278836773881067082186819149579346207167830537175248494486927188841323259908305813781596976499982091884912478697587329457457989540906103904706108844738360931792614080542969146143976926425516556289574871581513407372851760810539924851212891222684457398920386376263614195114226356041080789579653496429540222439756126923302947417865551497122550620446148675348311244869729795393795508807640446856550115223778014329354527450497861322502872299060163294390164161736791722124888489549216673492246525004095974440297002630228140185523326876198751002416926406022194353356014389633138217713727400962940235489378832822634709515961823268293525912044922693367534984427097402266954858151063139411517129387980855478692033109515320793052595235788335151846650941423566416233300381843633056701314675289973016711510861215730418353201197120841293660542200850910390313373055620451388250858833173295776848563199952705642522600838317829626339353861459939119385330337666175936770561588936992292614254535645408044140787741835782102636355132776950143716158659626708875722779213888860793407054563089506797858302319683895934432183029053962494880029887381606366175902861779506631461793941970048954909691737546348034186926176682565039464361258426052930773061117351237331383758091250577908903535100547099331477864470932687548617763921521036218287941590628680122721250795494641398953938098557780517563165762518908937412439182225868939128534839651742744181200189928868180064449684219853095041904082100475022230463965433422694962436480726514864530051028289078025694600474529606828238318126030646555599839790159401535564483049446942011417912708823531528986820072132275678362056701379963669977928656650008617971789159943397824264977200322144065668118611420926740049374784410596085899427047740479354033706333012539746087802368373659086334526835348682394247044856664434660502453667010416152722575183307521583620008733204705353153874727660987720415661937648110146908252672818724920038669139712613209212118501378034204007445661388936641806302163561008959646395376269219055072561051086972422373936094843692623577267283602344686443649926351994076380848941823638605950224749513850634555983315890532395526072476767264213424594277425679613890383358328158505130414665370744018907014776482035915810659762942415161203614680359007052753975198048944530732914350166715009459585383910400405947704067417019575093003876948864609333557302706247938095903702475660277706937750483264374740315124603612045091985716910061127384715969485136514682381483022329778492107549323214452576298436729941394324375136474358178383704412539906756350228973802307781422506894788814216584306224026075216762519880051519221016358347592563423233566991765960377147383233150471131561668509678388558224958908819973257058519484278369922094984452949945819185206068158468704482898525081687637013010895853668964367779504509635332471571532171925618520363729260750058286062692081022123565442614210260915320020997602335393841937620327060564555371995122540811289738724092144769828819924000608647871003762452497127681192170940263574952337374481973870365626621263667234940281634525105093449695252689704227268266279457882317449426581636317910126585006549906614951993280636607762116850946454223358991108282700956895564476970329563786327003171918758471019791940126286786387168680921879734397054303332360557592984510169118347480885860340706036990472401614973066288237358080057989293890982552792139278209884004988135674492352336018268100100243520862303294875618200416127008634542929412162282199374985523631585003094835024983314794075398694494713507981479648318411159376321874341286680703116679315695536539144511905158658865382729495671955572763780290290063089298556114609582909755789916097388488912077449275226263417259195987435638914270285138835311444384287795243431549413930434898141601537231052630020731124753435165758125697769452834928779180838979316516487303214994373033826877544700014000002463301513089325648829807590033990334656968196484474616421769207092420517697460276828311032202565035724188481668932157570033501848717993710835684536434765669306817540023830776438045200030409248310192124123859595954935689931894381453396466807750881566660945091517458101336961009058574173141292152453978474530631127169862909456921222383341230482243401054599688656369088898469766961996056580695765871726348198490730821588242448723901247048496242382727310181001255425440560345491174510499138477617941296106902551590619559531252070351556583075539570045856907528239752053184478310419256515819117027083148714499434790798968553619119761233279432994721102871350117560854451360608753749034469321367915885113773256548650993719230935103299490560894542675129365002120316352977590257515003071479950091784432069523674730533472512150052207299860766059924745416158226616340307072983899410390198801027267287294686551952277135484738917612325784137767063725231795599786749271652113978696233741122738363553132899335797855468566294096872671562429414851710457394157751736587144689147721965181057347437176805222330840281750300870374976768154954106147128248922214702814321031999895774578392845572598038814901768977373412410069155330955951150440878053059387308450034261385362972191908062659115980923607281728371040853057588282830970422218241418159477032639592595194951758576909093845773471675008323759691325023937491611119182405749500868005830730140984402376390232827422175646234224780513418504994618813368799556661422340936665251680812768325253681068752075035449049761246521579354994476654462006806215493336791955385986933211336486105404881995232967265448578432034357107669863638626858873462433251273465900857263846717739493181144462728567442429908034329634250713249142017402096475642050801553312256237120361522663985588281011663407681672730056420624351648131426205885576415334187308867099481039128977226247766013250598030725014412033169387336399408128071120526103199353734672586614050202085799976422268261931894239836767391430014600171140483449709783776082354490986744124342145469673334057491751524226422630501582094298330219868038641382729874147492090313349675003249210180098269830378134151368421181624215221147208385214922140575446305142289700785534012093059538969823885169828450678643692475806228462304895771201056914896702787018154882945021316868213917492606636278414504270723569197019180511724883669492763139190243651761706689811228285907275265839119643942632405260692621070587213190504783408442018395216389155945264350529110534083808889167816720850715506234119663501345847309982167480186239740523088159229567861846380759159300175302056860705072912575735449413375204776948313213091531334202584904261112721365435576941484256510697115661419959163387463768402813860043688150521111500766063379690506816532822893868180343568279613112566301999483045401403601468509345764542868918166868822908652720825381215490217759000375032985257544038694180655501830450058970206439707531720058400046484134514149664073908203235286089065810909890479559819950654542847245139334386785909019247373195218685563488777223625522684701491675611640880831910439106029847193295888556385773830830968570003190571987955834443555005685158220251124717758739218679469553597186904306330673036946232193165623727150558027622180388712609801705892676101099861454454672118179305238971943576207009235530582888089008797149774398043734159536360433195041551314577259652062549697694585988067199027284595775656992286248246787389166625474341649841004679001799599405981161705945010370368931317635769873343556886506166304452651419957390553032322131522750434327866467808795577506721216446866596942531646119311921689272989081870625118833392318759701738028564666389182929764708743171048873562725722017514554071543612993663455673661338893316883732804540309775790983137067428768420262889398633436761036822409087700739993619022483996799374819814872903208855989343750627098120039929753885622882197725816476417038372093229887420567698215659403451955485621522020463582816609669197213062007989048750944823692990690459198714757829831783362568569218120165611225406107032056091464929134545353581936292522138095490991060568068686052724879847043040233039465920322205929191452272191972768117862037727260555975388542065060126156690735710346756073339327633693724797303063032792281096565326103874198237126115758094821938954702241412378047104222612901722573898371830702571546855765566510657852730431730444454491359735662589969438909705687738470999414707699835603277708311855102029946510859926077642343381368008730008224568483159087582888106848057394752543772286209257816370147136148764362283281875130826643717029784184089766648625997015125318690442454070620602082833847994455193027031755039132651646024096772864165648647896067080676647033626813956764992125915487704321175601297450914726293156192376703761286362884951633114627430266407634972097919434850819658877307503281825049398908524123827740948006121051517542984868676903575581378887440916796615817798850852830027756607402611919848584863206586741610825878569522512712346347135391175703504128419252364059722652976143490381848984254468868741976928423279666450584999354103828408964347236257111800366661894643373791514849044350343683600853070960548831740349417003393226384377529754985443441550393411031925463315885482853929121013825175031200407928051751396449246758784443308149105918429132942191456162865048372714862541892060730141152639680037999704124294974290208560895671398315015260675823845491287074889235685429956842875000440950910725413883203946806328289324624419911461932804522913102733305122081222074460328884835873504894507625423966916828280462228253109952696587258444417988187010814706914267819563168683489774026715789097878474846961528773481124064030678261156696884102370098711582197799501810234639122567385867032365373942576249247004696488027006081442254129433155868634313341233284969200476199613143355367408018946105697633436041833802986143763822245921594257797973190278114498934367324539811987483236186049769208744548985226745558326106488665693474728621778694481357946313921968690173359230925028410728775063328838716753685551489623003651729541378399053180521998402032773886620557726601498644501430675909127929819665853273437780653146824849426488247248872294657710964873985830634607626825027899244886940504643915907067337475663895682774930735525897488072271128585302688526975380011905330752304983844099258111088866650442496329770368119320977822605477037194579109946110292814821965785916067056397407098534244810001615808892583655677633175029064729290483271490695255799110630018174846775795665716777227040042845405649390618434550241485750846697677175104346471886328173803790678824934463889219293937430012625979718705915804636686558428192353733055525339227634311183676567805247529805707003712883298234870529757367492561941129457078830370736403702839674990647792351292464623963253244742332861016676053141933171235772606453491634410017713033138344253822038872243372273499730553333611744714043448745608974087510597629306652261855467648154886302597187201123731202706344657058199840104664521003460898930759296748407214232313010964373537782090235640796700256993687064187565493384018308799734130192855732356285820748251684991004439888056108013902878891087904467045414876646261311833033104103137699679211765331413313422420528331036842244781077699055052548441058668143009233470575126688195435755314141452364191879357106769706066712112196230949831486728861762998609749700695693121743328101434643468702518689226082439994325615718700791333057002710307793783400559036271410009316080688115090941003865265249462988172111203686759878841119235396569885233859557860792393038942694947319215686352713954494749603521988640020458208129262129388499435165288605703145414970351862218419955442079052806246665265260332038862227766851224002438458329017121347617160176973425612144547313759287445878857755608020112665592166547121348567138617961744635040373612579498460385528200156363439779022522382183561633162423097714181045866841628208018677103365707364343649503564508607639706106232250836099656889448358991362179941554489421161048000152543159612897843755153235218519705908803658866794862161456285874068026849137410456815032301255735097167500886437697995183778196320403367169881423274312905676490611494003954536920942580708227511024077382770433195068260477971472610669546528728140072718053099466210505700861291588153401373125052163455465472123564045834481536420254775934871051812571107279297604663394592460457154997588915711392548104111067432060520550908177098906593676331685343076199717299906243871273222024037536221599601785109167557348914752795276929066113910972771784035413401050424638014761356157944171789570419397132653840101803607728294126818986021086845951809183061962898119459766090414546470221422352691637303806370750737320001869113150264531736876834687547309567926750593399909924439166777332502282429609798459806509998062466413668069529324735809134735550749090738111526207800536501609039500157066260949833948622173502300652608349840231024003360085007946570338477032669800012828262698642704475390006215550316022177821170258534742854253616617563660423886650473386070962129014572389430345461850092689202176257425455752211563423079208570825096690857072214911471257378834582734099824898265033491866940738511277587986084173073943218053254868452752408082891782406937362753355275844176434103219360621017209976255842381922093503108404178794386058757486433980122040511649521592050562977598782403263662603620283852709150137523388377083040940025286105168306570776151591677818579223666162871216834499278211873236703322844441187119820075290307828189430001720426335459788819479365277961312479553797312264191396516831783065199344353595169354069386568725959889136205524939666411472208083392816420316736616004633104044786623232267069684750220732940077685337212579823895539701959001155501780647946692376243857272290587241518545229928325736667045393691061843555520189872159347607800966232071049269065278091806728629689441315274373787581732694390430976798304665883669324974073153987245628764076000451593158865783746623270068134769877846067975858128542922517646549213482419638590289879073010250315138935940309288301763700502757527449230217298571400754777244696066795605958041936971596718903530741418338763744531037502895879173527259369262154500149299159724544805598959823950717730128088432102977287108358435134254856228401346504764511558873664367010860551334267772999168464604556704952857926957403600300616941164791944300465904279785334927826485613594985905022328148901808271928463788762620508023012284206592178051755709272126639384336800893750519675730140900080526935572636771423475477746944132907806649574395559990168122872323184759293621540387556648379405930730948001651104772001013890849813820826517322455177386005590756495327177785821286986670224090251388022108434437750051548502430130881352749516558832262942462940397617974703027109995522827843734157711412149069904113857479050961645046197241607620031877243492137034967491368824757352353902497057241982245765336260642551676972160926349039125307388921921839879872748810305583103716180657633868502697612445833518554405536295175043667964581656294725865886143044598300798030758877798323346630174032957476786047948963095972715987178036135677919579549555616202789017738098982857923116463690573811310294836517663520043060471081144283663745077584909841426842568265114657214322688391044099296575305373191676729083896936820792446390545458758605743268340046869712688575668223390016058621894380570608646411071175967817953771655225532783759571049463229987871470072517253807839410847660210629055718315668928195205171484503955332568855742726980992432316929355373326246654688875896305784653693938323755561681063030470348333875751532674422872948409882389930966774228185775611282518486391156150422674597120907168524824617384238716683474510075307312842439463983503107420641404500608077540389503820323100035884970821800564371064668790268101526182879204252043805792839333365424402014398961263038965649055836077130440867372939538254779917800663598393969669682327158248219060101985444895696181491190810073705379073278376038979210764737442025579096802722446225068008522866478876704398549054271338670638317886161067886222701634471040142011502717172348484642833734079342117469452056909052172108005186304976601506692862275764326588426288244717124751176020653646027241706271168862935156959372428614930643200432551881840815914141180162932149987406309783752197828266986030643023421417501739521473922073839535046171083532334265004035805884329245474296412888335609392981752604202413138692774811708447506595541398575130525359369253677993445719719820223263045982045070706170649987502646047930654845160012354886839465301316666937319498074263534571388094719661445226186047933059828321494752600701928903329827434025591923166088538513677740934171347442883494814882030996403222580615580547929960671450785380961631175315745445374609400703823285871005261404835113351586949811756891269208985916257513699286830667723034828007188939312825554415567445929956275716744295655742542910481464370565401141983718028171332358778361670995804949718795230697392885804020756300242779867017062791837586385690169301505569022086688739333763668298706523263468246498156360646829320143994752584792722610780069270534259744116656608838496762736877257551072376973481086687791325280212013610321454038488995928953285140703350697719485404149439256101771871400511504552691924654940626786212425529934290193516149934498586776563302600213853984161727342737871496777917018280843487917805942825020783403081706785173274040757117897821606945678691997390104096419314606994515961306906104016592414515381026471641157691762906066032228688971245039562370299513394874850188794125585429540744512319937522016607627978402855663466816728158668989877524195029738240387320759607772598302299561807987128735231381337782881928812677094567329704519144338447458747386022343925749391750284445847788798789885598851663881355426195065188325007412040634391777495399322446208325757998760922360265980632128294430695820148435096227966634863331837723648289008378171580743036555678298469267261842420532357825581641944371106127554189686090031787773804906543015039350556929701210524288101435339478611663900524337295598689513185205534500733378063615114257755636018570542760643863359792042987727481190747515328329931051056420496354743341387003765120181195280681542764520570322427677638954138303373001318948428299296443191268452918001559736870482882072086490892901662302106455794232906211933312402563140724234465226921402400529618164329645413194613152282034924321012429013494123622544511443963633229009354818802129087371147343050666676740528813062157166928074343229558888182075347799516013517950693073717412134618636960477952416922828595188393780306189318991849168492519440186918491609112260185576831567039847798139668946615487356371892856889848708560576963840593064503401434880518427634374974921916548182950367720192421842316965722086505025442986216870484653042802143842198870004877619224675776455787043540032349464315477356517108406752322036627249103956748162078690215661628349165246808011274628448356562472418610217261658893198930718555723701428214100475769303675385565212900439972819450651138438277293236174976194207060591899827377003801119819714132063061424171963112917772384062191579704280943815854074716570482287992139025163075325751797821616414204102548339987288183095056017108752592765077793629286980199899252432269022638372770729881523531836651434242056311907730441445268379132599526035374583676256564810989585648355963272850070805336881757441289351128525355742225184560302718214756742765539860434801472492771705754839441204475317850626652053684598591365352099189483761551310387026114365128798209611015262547139426465874542001332339562747139683055213851289296696676663248512769920843395396414334353710729379124155299918007874754986087062788701302809444691998358992006642810202761342090114639387442172640722176263293541247191120231006556731387920749898814550444578861055839089336859816942371516115916428792267923397759215930916909511095113254283527032950908713660936408823577263834504149185806371309320593611845434597124641400469240107505569159588976246875824367705216697954836875218393022261400965873748825954988194996320789060334471641700172278398877774421405060126933127564028061631668074229304381321163049822470460709025931178966289789940913608438918000091949038492308103201226671629440872321831639209068403601616668976345684324696109482984008137979547341036712150617861873948097512447210465149090044915898644321142973809504790397737459010079748645949662542168964029225781567303365790948414798970267491293827336861671382286310741775582352056791770253746672522820920637998530195432472073242188664091658658690671159595671142828533512387535549421443491177635589156477743543742399730837646458800721444440461407596194387611469262344503718253252804545680697994571332234137223027354186817869733695765121748038676534892032652869105719409592589748405094316909535063714711068745450082602164034840465027957409427064021081356698352494942429541485310191719191405625140442391075049330409779373109917156495387348446261935226614899076189188561926828384677854800494129273123481096078751767230261247499289955613302749598567152954429488253733509125880724479882202302672979634798790547572636549531205351696634261699699822052278737973148483233194624684677179023417813744638200319371683266695920063671845262617306210957058416710787176706012201767766914434131210975795883183691703666810891891619999734842503952646928562870489658596288945080413114994199465085631287160122614941556026566583586355966173195543857314785373917441040977934776867462490087458696029805789235627327901953248709169970011445598920476339017405668116407405812246190614601108107887859001468039765818698079560118687815174417339035208780583623401391332863007128680579491787876540761149281222046882105334716018676521231918799360132610643979768668757222611083015413983911516708960028440883767384614599513784361279589461659302321957642651747289022492815658876914947928880760512121045409926682705000082303484731656210964778420787755391906934572411774789141847611510259070827422929463061421351095753414947951182730228446593001300056309413211910995864013189659266719605246321506430201600061161408538741163701748307141500849107827394652804350174529539221077153680532275456703893398666155240387731166461586011377430045347900686035129985789544662569866453536015133291614514579725655113278595987229612195110623779314407090749161062695867219970423926280257321254789576140009084758066341133266478802416502857431710990412394839302011226143559541290920399697353794998745346280501364595150546302672972546755967756962821151925164709641794251827267001142626377630505454228606056093809405070000132662944352617828853005628785224840824229860594912666256000587799985004270017137529801058737886229961109964610834625159427255431998217553429670756147438627281246202914778194044963116475644308221715037405094978167696716199386179241839099757469295339913366119011019177329282938854209992703094211255539897829804664799394330446147047905712737651102105508042231127241434157800203579085868894545254219890992086642208845857915237097292685287316132015407242099238497077365979568591884359193569797814719657969808314226977072604202506367365011414255600900542480328905022721731090568515730386238643199457691035322047400783058845919436857371710831387484756709778422597090825608544781475660593363445898412574628841779122323881995214984469531935399903029635799290376973324484320114933304530681978412393043917213727356230431288038831178946795737894111773748817056873447420707041124684538306154212377674427536275136014166788792453559252335388076499237191637530521413346615345411350204537845877356862674538306388909429362489529164662413369150003288453741400041749215175761574785900801032959269925639954742495106284605425389713422437290293705536447904602905161187908089615747229711703053417193083016132692607483146867201865769269556319109544067636816286623938549396148315422141761450670776146451936282748916135739256816531818225555613274100673863948234570444261171339671332304171990718128962991143440725999681105095662119888683488029118286811720867587182785509728034243778155818029805665129648621710879869875189090153431070951635098147721798295142964992991098297169176126073519739533634474699443250772675402824280032891302746107046005668178120231271060152543256362198349919307186324042926443746300041626034784588467627593192612753060815515322528563440048017685279641429373471726834186489038895043707320599315703000548796197834997018015237928295457296050711290651848262672464786655934268531553757188311725260719724198870349355504483050578427504602146237016268726110830786392433861625623634793920836467058877671210033651865609724707050519455247656117362327989973289238322329871798922918232216073682854755321583569076471399783003714779682550057877829073503120329794630129469425379541804875092966076764075702752103112901579691190132423944136362629836243491359578893172732857478855562421781028938507327272982061217724130178905111751342000944954064063572787978682566079243922347655011261867145959642500345860823398278661198561922969802422043304339458886636414094384479878064165553833760084986906170585968892403421979943580498988603056866948783966212247099481614842091863259968670960275541202650089942342296668682324495475558038414771636349360687867385556123553755417993469407281762295557047940641110318832362322227191265787806595242441122287385922208496407874073443591872012595388701361167671723624448262442643360564178096348296442611756375843880080309692376294685236704263996698956616045806703860100851034110632688555488693568145404780953064377067025495801886349747320499141385305835160749703482295545789185254914952880529563907491847359001040627184784211224963342906543922046312278920986886806954621232167127997327557570171461698333406185696374893413308867858590258012069958916191439560702322694428435662315682911267607312114116017618101125335556031504639597719229469372855002625435080790715220947177005273030538665940274577878544770477542443708898217534796280993345767561746100292144188762790423711477928928134437423337594534182608357459013776849053480754470904185514917836352230243621051931705820238146156582765392671067911286919479762679643540622278835514917524989271422139741048790582826481034370011229139544746047987525798966396753397740824950178958050916021064938450591763966263498628257469116620232877904248174703437169926882824318897692595013308858346487876823060550892923486240691265044346991205678127404806532487484127601045923175550436679523440945904370549136600428659758003410927890272594466264427627892474874419737922557195519779045617488857484581276939724943833472338553746088028424646976640719711976627431586358345202521709349915353343047545539262628743139462901272257318688934848116378271923101425683795745084458701322073882643532126071095436271854152605042039893157354032631539305254408552606851349353433579874535203315828970908450539458148766798346049147868903532644404567076399311739950191565036792889642512837879320807642011138673673663171347860874246665446797584369349696403007165373985790110103959589116039282820321562641335355790372419081883911070229589506989024690761144035196733148446308426547544504844746772410651839853902741628582834042197450356705670670512834624780600564005155849600953052337424467903557068314460134963364746606050960450600148646764279366444624883923160844012181065257033536128960030847329319599896163122795145418725490629814913172091836591495755195089856422661469584833825489093654370289115510306308852876529000122614255734540954555075710415883811734574053332073015982091305183343898175321468086776788985304375907272381258111510988381097154547995925374710544819243025617117778986298610086787588803300400212007180021907481386401333966702339674148382368100788024330185137692573806800946290293450425294255813766397509588423984057080244040688916016837582227445902985430318212546927411434832086034847115536506577848038196304982379134363989867849327515599504406730981734117090599368581439937100534832595563388422546821533966945575203678142869631682282118357468968914589610185490614461048398133953587690336818336666962720530756852463252343012080350615262253824592545739325288382314951851765873616120997035062894527458756057954356344317401430064469928961394116349444783877859152779793139268264298040442691692692385280057483992071086014765993618503287336826292111713110948061187344405110025078201277954275311570056277973393233414285738908607202605371638553089958917211895134338977424518288876143283049780676673667921717632813132001497670935536263089759414941010956469167744974311028896465176410912112858135427601538046386512610828549637305768932648294854938185789801644870548670851292087460060041703269695301360652989689233335887235136386635109637748913280935364210339355782369516652688463951329159181847198768496327506541883727963348743509531661404838623478085535105877740625255395626717118201387313325950771823174428903464062247793019436134159653942024175475318328779742817876113470082404609720792835474312709631832027356838405719773354056948280731227641409185176537476594300868279103558127707438043964174691180780980302804746704123947420596584326848283794446722239119605471057464764999314782107807219531085827786799146597758564597010613289408946044812675857059325811643326496456448565827950918242729245338638673432261286039974182506413622519461945326513611661058472607384824008499426391527054059655644908722050832182076980778309425466053470007297900936493534298584352407401853179096341198404138035177379575484006499406368713509858846722257001492309422703315365326690386776112167859743742727559119771943610588655729936224367265029608945802641842197615840334177447219803163761311885325151268243900623133644789482008872399955439597846135895539308072099684429932863897715829178915353235273995852791183531297212372856784221798284000508281100211232912211414185359624732742249569146378118093113738803110231566434673158181497494443398476719770444876227884622711926427826136521862157200514003202839163472328999928594942250530684675481496673623420686376016396224741006576525591677528763946352466672229040193952916262749391690434200733110316152607771342772168623403516649150172311152010779213470709648353217615572946769212543113237684417735637735353146851014449725430219547442975643421139586757549641680984109703375839525310400253694567823368781457618362241230515778920147130945934192571303232744197092411072210214542846115469260076251307230922535071343784880365421048516033383816678878948352326424354789749617124890682644387404505982891892655949484081476653467520205444788047585589675914198698510872463786257280646268419330488330098751617294006192848132497049934498936310792997948409539079672316926410178411417865419449547537699989129870995428766556801238052732923835959450671500090662932185532482380753903660969087658263960289615469064465343828127958875371407591550471142983017612994937997593277652590465403005243208729553696765408490958489782422534474743922419425690550002125056448650148591365774055199863767279469212444581165465531705083632804504702430689460460290413764931964734052549939528098750676603571561507387681124637022959432842068956611706088336427461055293671226302223823734997335523452473310675417360456759093025535739708328598878525543369201790231773770767857107341846921600550001252154966558198303605617147555057455436134157866170597840977664451165589811582029144227159416195794745452887753631363746410475661856826920794085760610964196668428901331982074775802320233456369306949836339887118670507078240468109865090047716825246581665404020890222811108315162457776486108780272672524900749531389909570523588938822550750325809541469691827240796188156442128155763614823796878859977456643965175132083128249137725404597512758436584941701465561303514679078427139277261527336110882011364029507588311388554623141461990192458500121634879871734257355833761156507685025419809185818136211243138265072450238902985796056903119838342425356556159925296766496130580002846673718560986106217189730684194850496914688181881499190287839664322621678314736829322034160098711541907444011385954005324055583908782423804457547917454074792776827227502820557590601806735733796139330464154785980403356249762463947998189224915354354824080008386927015377384476262347153424783066337366968332409287033240832763087596301721641091278650476662192055380031263026769279342403414253497722165894386552131810312143326095058869993385455939160508646487737089753981498991608342209824079759139159035442808039337013186878760586484115605002687502678277074076739963281481741826006101904761172701900248930914149259231946577687595482613004050776592196545442272440240050359169308418075171043161524280001451540292397771036499794193878848132009889698871266301680004459570365823299004041103545239047542662622645944228021248741237606103849387124306610352284743769507687421700854691895789940127912705847762353012535388250733811443770218705389219233030441839282969456578089390888418741615683359630074699309915465347976911058505527293296198972919869090860817075596949449555548403954718319759688558134074184760529158080151651955788116713138674797107190942844861769340131751137615897684434689485529478404569549577450105316540801193597739503239234240401427395382950758764234518848976606631483718180833782300355376949564265260642990544352401185332765790159028977519475361292169400028185141443824615725045167331948042005911631420391034847659100990068719035405142912034897813689682372622255665638614043483018851171044014364572212474696880438992352550010409034627920455117513268731081275000248682880677105628250957021515134457585927637250970071236541580937215320966415473715085452581195859018037426172999276420843041075661034255800627731574974878924370977154497645002838956405383426904411429355690616177233427612096971504562045377989087883637684502398720595115784159529939371719430845645475416713893805112854231032937754287314789889672777231893072002783307638778236070311676459265852889549290924319466235650531286295889983440673706858830003758963717141335410578153719294315531735728596507776023917043708389990615659522964203296174741526803295460241227006001841905493885258925611908594743127674969724109953716069878320495999357167352780203005288446138437371899564944216148322044316396409062865507289282321474835984561987077409118116312400031990103642189073836355028599599018691273513361918381274009874838477405012785023790182471608640018946768794657703269098376256284623908616808442371368444166520375641309245282948075704411885142779197606837479403567214812699466134056649313477035503789545567702204760644148865417855546564145574335521365256592946149486597802462827359947497804264013233451272670894705328276412270779005693273953133756157801138860346016570606436816426532710930750925347241677623937235293785696299632197699337435676981200188022312764637774765900848456337237225646728653919526397890352483327063428169064378278153747900065879062871598373090136325398176230854441264425895441636822425561045221523184653113187860175173717488134241947459224729373523018500292745154019981497719695488855651804128116292023983710649217577151174880090648835577732972859344046179942381164962077166792729043363823138381406847277987196902688635070843446742201595361917185111337151423809841560891196145705574696766177221847495226087855657018088483485339041442151609671159533441482447222045430048841836346804105685855099321059298684356884749292085480693459041726966553353007959741470222126576754723830568950854398160860635417125723305334293755657594740111757187715062543573183905111584564718979798364952611031865408656437594971560679672472946125921828706724188979334070434144620708576514281476046727459023295479701032534461954323162590909367637316213175878058266950376719298852761711797226019264117806139492729049940982274310847636212825969660920740646134460943375108161596738160852247078515795965729085147361258919730672120915065333884940241839781493180972129999944965306039934474672928937331892701682097450450722400709506255775161425608856598229597286904951664418893501453194057852888240030285326592703132238257795633414065210056730036931799659063895587756398625219889547352621566897507154394842456463659263180511682064963847614829855679712602380591527099481996091658752203067417051256263792235420623119034005711787620795828729328961012267756026826942557928439299399694354277507681846365098960016458850804324953456898153383592056235871968172043203949154689473543272263648737782610746001404041995585315194514125112382020242149441195211654133830884561795442372819901014732837598034626556440426558426409965961466921503222291992817599391985351759709417419268390482923824712231497179821635792758852945472833294428889897317309711826046595049767268143733251934526600596324546655728356539830478305861093619806476044656713366066732310641065711494078600857382151952821438177079573370290033382112071383198959157180809995488701266543243129030040281514729079484976280307746472526775089141303382980812990958706942040772557035018722975598592737675589705138548264411635105887511388882929237109438840578794280693715413906427420900900785712936672436209712417510169449053508895011055473483813652782565641707397361963218984467338498306493535370888625702643406910489703011124968757516548614429905406393815715333123236969338362055236494547306836881772735208684079835276943379576315450014750662009461423641848727356516349288414338219061015890836718117109266109974730874051864620686501486683291189289404344159774229423838527616142662262275246983546584164327678611504787860997148288168759514781359736439342984821994481078090018274138753740738161280084493651562149158234406372192983672475171834459765503350166935163442413856663274184583343202110815997186597929087313719936576463308395353384229320177114571157270793240329679364191946213554066660449235549785982270937677485683671600878555316005536046654276796581206151782800118584480550476522963091221448947006673081223734579625130234094670431110154237639312657111306634245383815568842580619985594226684886216124702561506017906982400885187132524425986871944037392435927338159004631421231239348366825149208086733353968561815093710532917831804671327244604228471730875032222033467943019771790531946129637373973513673086883298514887762421388634062006892523130323888486424725267499740639002126531960902872335560029731243765289277030611718202311463482363491351865118535890861913170081039000839277003286155406426441953254330255220781818039946538331297259061571031943681429816284256003647482434929103792165310685490444678667209896350090243492413896351626283212030440714814252260639982878871970468675339046391243571016492374120208028780818158373167286164184793900382618002058817403890677191005057866358183337020857744520173194050922318863870314501106679711704390212579134368044230365478717329227904504858251232614058358237158030211518053166699666110726647458140522408381004832712935458993990079556522040262062168438337273600637946920821643819921164482587497409625179713098398966200245793043651503898126346241045451023897425981029437147858025118321783821226187908425339664036287459367113240385631994224576507823355548474891654830613697971687368362594771440972138444829541701582445583229215302777385940436341869520491953811613665009925193571121512111244185342891938274640217569930869150947521525522657283154279787169758398358905240472481747094199113704480806813923308149137873200397863232958782270489211145057066090125981841664003357438180147631540816540070626695326249304186356481619405356305486588555922237944667063531391820192803426212036149169899199185306579971454978843068353803863618589683162406549453336632071345116939576775508046482805719304193841787812760285086075483766599374637585195834362641666750905639367040546265501983984011779736149209926565015945861485113735949386428907101089414049444294241371771186162472860434077748725787903208937692536379091437032724417425811228595837718972543595161402545757777645643476855760179541868303959297772114542005910605954809818072537626120172763677457247511910971591503053066506630465258669953324608688516898827963519534846300528828472963651619939755527436832979120578221335004616864918816856692988965224926456767741275206832196176037566419687781794604440331236417793036334215753768577745644295240485069918475984972768677913181001513310034381538441577137161012483299188308273335053178744339102827585819573969046882823977515791572356812915906306409307574249365779096977156898789176515133940080721871173396930907162581782929307980670572393168170374592605045829343387279461700575664854299679287597003381276559881467662274223555678925900838296453206651433854787416323482619719903780508667595136813275586042812536081215601459839952546183154043625415910690467371555131857433407016091707061876270507837096758468332594113410332851097211901454153190331525551275922274801120098701217780377171351529424511747280868352328334626232584516664856042830964944051528774650410443146708380908673308419546345696510674405024847280198836346830325790503772985428089269713533430274341813708600270800766098325340099810145376282732838498533069969515128325094831763286051724689608595704554787316321050377720619067181392883163943970685518763059698423960093992781038587252397097055333477510214207970576330120453025959959246980759689667967186158410414403934472409962407704222186907271770599342052779374876322292441922888958602840121751510703833763529682109245152486557053541457054540294625216925597600469457089879282904588102670862528873336614785336434202330685084161204312525180602095900011975519761153008805222726493976123465949179788457540803984792384940778247613135315071437217609036496166161359444254078026617360219576251282499075102855506102327700526388447904625819486660934775627581139898116460243283587460967742339433943973815326823642207940608886963029665814484693349756823778570970814841867827716161420133736731803158082235278809014534866067822422401856185809521296094772759692117478748784974157476439704427453737329498273381591446307446933862121627938801487334080485626975831266419143548488741983815283239004373332640671193576294493099600555388138652238555763942200847755265129731539234671926711885116036539883732652198724047549368761169241146928111861615558106726537573090594306898819598874291659350401725616367031404684174167946546942868268319879776738169590625704826680324388386137710803248398598622033625584882912152473771556313520127832115587079907817825510480633076847574850491973165970187872305868159366734309326122896191732297479621407722195301676129745358091544039393709436376750278211541177818168914161795427937354989635939435454992351754831975545568076127536296839382621633905368982764136678469116831713525478135538027480683915451037967768433807249301815271129334012851043860745310460037301368386005206331252476439703730006577294141927476374017879428707611081764959560314551373446675676530082110260586669614674751176528607332995639012704342781508393621887880629916729138830380970579544610768405978823248181849071011325648279957616184200760244741228489976729523374552758118437114798932339853625891002246409237371456195829321932041997493642568330080133102594822148916696194139561875837348427373363061732340455751764364775372092423870660060716400666722022478753781471666382951778238498531324888145862993438539097983525607344873196294955421652637876937558616521100987115252735807290696157242098455945838015353934457975122156795432514587681837183234358874523574463343753631639733322470508149025055203820151545933168069935372933803043456322810740183748730723794776991535121381747196049511141895141615737813132131269588866870308389439334159660403214510486189663067631247861309674434107735513087441931834979916137851260240756194768478394353836129791201274668160847098512936205819556618859663905735287051224823752342565698652697719508737457408603763879819701709451053571792827221044983781105124370445920310969350315842928600789993024699803249787793763912348690137158513831342349312087588076704029023379393169176609568394173531000676993774190967043621354856711733866067831710213483729527079753478532378397248014144358312198398314856576412546937369635021691743166007798506859491429923773629191746276786667791970858678190250608897562224355378317120892708404137650251122499556401987902794069449070490593236565219237824961720148299959459507743073438685048488371286415609539787310725097949239178307953444551003238540823663382785458137882076068314272889019371645108741125062867673003256487931824618897941349657472499914248828840899019954582526699342761662099677769676879180330957542913000533173479762026972985085885771570190630883848018888862300468435448560598974321879537036897018419469992739178225913493221998275872425056206443944080484824452493621758782948331273038473271186915096963579449841530141704208180406225373294064686356160998869096796193634207653222529892493294426794973520240966315359836143221193705355968968710844135571978425372956918221687772777116620741151552438373332820746417989356257754910147799409258975767835583386491747776001188137025005639680608069298808062221794433345277624838190680139155775143484491579716025837351589246027782041426782347844848104269932544009667974470709406671136209900895133008281133501531339968345767198275866124438723637316120045390600219802371715712446785859630031359678011364645758755743391918119528702210969802563809225923954748892140350190155930470573450342423203576454049193374622052955127168726321063208492738675464041934701114707193768863824585779649718149646522485913231934123045946269154299459301547380479299629028212220825093557281432119476840763163937404786316076920343483238721671511166175460351458157059316777968187588676547308046257673342232687117957991792187841765634055382368913278107161888637444433823642157622197630338705860736286375990162509463123048919355795373108310534222985842441291166281142506970855460880238015581883783587041758842754019733250228312879351274629515576276780570167683890890921405084117311135235703265074508792766722470894175739971259133613098431231095286036351078646512736553235478813749088662482887855715757090306583146150852218451536863059088285634321342072699061196072839861774688964711144727468595724246096221116289950115013803269972333553264458599777211162609872932890184196895575626513063169951498349128447772721295702884208338983172255692208381159698278140791993613755173877185533923993263248368853466770861988161599430357354021959483014390721695354849316656789812046448035382763213433620757685218521872357033685714056959663621509166324845293419901065820443207781744099657078355333187414615651070974174995290360569326998036718489809777910871490156860643502299338940489620919446179168905104913699388119041886773980217146864548527997796275440248212257775609524276799594192614767038575887857367176549697704188664553591593650289938161715549535639763137531248199290804844368624067312869065999541864930744404363948956569837951339044795269419950018046366255038483867663396060463772572692260565252362396680845888253319570805046526984730940738783863099084618127475596087216132924175251293432305607594299374736120762702368137184629665790539823780179509144881755535516489615506082925793532004332191640810694354160361800019687339693677569714243084556013263876354751205743659408993074868064425198487956219318160542183890010204984201331568324042260571011502354252641445460970692490443628329269822162912707577151482510131290313055312944728778464968402994878619835877154305896995905071524235420101461498859438824994810452827217884249585518725169259758008938298077901236498702419194233320102305295252447648738722753269050983695712137729218414135634172845495364412216015254142543375887621736406156657274529259382439385128262048204491019856444839300986031753403811769127790097754790750701799594815238702255331462654380708473592680273489570004960766627829891186915690306077751963325107007991811538819030422732418086253815020293078201391883410601513222716435063863415897963584890644763336741619697843741298170681596417149640934389833883768157019103476751744011373553978845262450487818865570058241690935824424041772676231743424916823393541419355272933258522992781637662307919302216938125976311213751580423432192896564060688690004779563998858737503640931712778160344932068341300728497470123835896483896110112037440429541801748383417150475799639794492105794384513594308508174286713928706618454850515693883865555976373955483009118484291411319938220797540347691969179789783838576633988687758653577219811342942751384889910996118826215035536988137404187300892086402920916862406827457294999762022708993480175759939890023410427550025304398470369233491241673701536046819993072166061338751318009216554903522941066584460089941251451477456260115674756359439364874653779299997339749058814416729293403546261763953255286497531527800221372685245530280593015336698724885192762955397066545585678597329359272245231174306686462554181471481112319676445287363514645565858490577271401466718493005489816430562828431101549149155932203381084324576454815467844471484106037457817207487529313377858866041831106892255866184671948525292714807953544854769016042734785742621336189921719128738129866824449741061282468743632021650301555872215089248604398591580871628422709183994879771343193560992272630712312515159258984526391661662273794414411170631796582595850946885847003836251409367207584796577062984508624540879170953779629600258992216136901763868509263414051730573156125857633971694018453179602793930455515503163664320229675356233493099306361872360630925051252179053694840297880587595353641629449711548661303041199797013972075418398299741772730077208152165017658964692371828580263510212479455329327161343477427866680467219748521149436646715652884619489870496787976176951161908944212036771410349798001076624358281540442384679709843676740029350300998964771275896406266599601409504046515394774940903298914381555972943124075910354952436110844164166335069674786469392005884905125912065535593460097044880154912279163602373220649959655931441929731218031367441507135130336708404827213102560785028389025003134328379279385785548811244181758558663933553804752833228427412713583555505642054256872816160878454326631321082787525099101104382582673469700246690927008296867475371268530123711134250215041442036015691152156404538341563992011805009242379685113629560614170724688782264919001087449479194248484858795219945305036276119386532680798442851451597178333179419233610097358760040466351815677234768390415584893765832953792768439287560928143585671466959629545560469153244051448801365053907077286824577370075230949477966639683609523240355256343477781331958166693031369457550369714809740176975545267775749440069421295426836334544579651455348449011582660615746076616284549043616689628570103570498409963651925301078568839905961285939038716350204999343852153400238631681747760477538495452597979168703976187439512988090141511606150795281960175003246742112951859829783012741433565036759067013004084758155343575666124664124257737123992136228879813456563802362069293252374147749448286629760939660501925784428421985284680796538566888195422369318452828404142438059240453997476374111878377811320942954301476620166222273187325109372193704420984452442425537037209125342271257267507087819929441018494873035090278861183967592476209750602104140519945240518509043826843284091531166804701371416787892095817127954672830083040879749770696675044370312748770066672632854208822120587530119919261867337097395516047700046304176751271957773794131178009064659841569428123532200207695423401947178990186041999223953853889551889507990098643231440904316158093820346259536156108087611808647673314718420540079972370145968783808911477840200267545984213956966078517254453401889312626537513816005564474227200512616667743551196197189821678110122134185574950550939208402341442676372862674576434632504752934691164163343878989556834607145357905863891441099089229651287308544338781429383084202431990091220234911267860171586179928827455894499665175593612407058497035652149809177792348326186634121607190220236555558709906746815867061778083690016249484572669595525022697471682464449085085652845808146541556147340448720544664600120750765634171834368487214556251959021209153243658542964317695599579535872489192766598644540993623483173274126918354585425860778280894364361665800067625641276896231813504722371137140163829632491140237042372639768643773409626325736108805995447347540912751872375863736245270907221097168240197532322610727993389378062674215242713696441682021627688308101902928316890678275431647401268964474787214569599598237249978439087555281288583342457776343383513336562364483826937505393295506435444467499900726302669360475900784354436596247763677598375442304201741650395523801308509135218385079388255554135811942797548722022761897831275405089158977131759784237323053721972523725233658860458852857986191885421028774365199116573259232472077871326019181965155379048428341867700588038460924262417426172716175671993941799214545075092442730481876205785851891019959558700239705697811495577750111033006564437900487289359688914641435894285172190350649270944606298110908324734789985818879511452021000203196953401740156173809441915663848212287619351115002997712433975998956375157372395920148305851043973917745138633268205752891138420928960382821592003876178988940952739098280340828342266681001986702444437728145342936073909640141807246759961454946310645917741750406212019656680424856762878309042558081750601669152328431127662322888565858998894669842022403629832243876141586264366204508464342898431639676144340068601080234909570439135289886301996467461581542810684760975507716463211860984674599220496594387865777819537750759706941526102723969803546522232147640389796662748942012957658957218965803459674125901456527995271015878107331727773695178782344829885663301363700481770323071700725626993751028763641880225861831971616954700790353863122409034935162994900142320977635778050319251301550696368569367572408116791337416497646039692154346255988669142411981270262614291241034199451196750212194568734550089519190494551901307409953755593777176867035479482679888358903314572900965144198245772823346203893934126226017316387047114727319645835587675940136161348462512231504693357901497873375297085653328615124253415966691973506750015141160079674019679462743777536981943965892881960292966840830131503958959532676146325588948006766554495373261087097118557175264556163704428814109340028341576270025458322272115048964925155471461619185050033233977663791383265776605686203344210772237258640876704974240971060615191965253442975670430123962651559547879623543691513118622336322158497986056001570694993750808513983302817039011455445335475795831261420657055646406464790802070659344997061338893011376235065176733953594064532767671761006516737193329214195856717409343723465481047967231847097550439754183348216558009361125456675286141041444109639921082271977988349637668697173356531630752535780961501960251808146857203089003092916130174912199834700108602581481568316636646273589591158388926084688691971213058319370819359976759497020636690701255865919941199527312025437383880154847589633365096670013130741082180177261241320669380725796898703857772157618496759141860631297379842688400523582219013537838655471860790845517862151852140033697784100613272668283312649563697299714863811605771888519241290601095375545759087721464564467847202751641613961300450881041001817861515789589136536412498552814567822791915904265444822063956136357393815388342611948614110591532446292104528706312638424128151814892908953943540434186302597671490762018684218532524697927554129432211920789892302426576491300167317992122756521927742690963831223587342625119961748117883231496300931821409522032032625854706642102164082386978014555219099978472627727404125809568356056646177544133207034920370356466394455516630300285149345475522297216609075133977090833456022869385729622631249108454871546748970570163304348971711805733221418870070203262380796388275505186932311450681969862870601265356057493883645329166467931830643905660713824421161504138678058560474763177717798807330964585442664861553176742612364233507495932889248178897737427321837249781257803992974916508745452620502796604344308122108833258487087495615406926801368792357783918875012768673700510694213974385131912198184666322160070318400200134323760632067955929812118092720239162332958915629984309147738575088514953851118614698856451316772753885490460781400413197807965371302723976253185684985081644989269945657546512806514494316104669441875164271741417519661492782253183342389853735280625405167649005662347946487071158541074637400959303916066382525279244532658518173749901509081720053322328396686214199109788016369129020744957140198463200916476015521784870295467043381289628059044056411468186568883275279907645159724070980827580317002274384731896179299335893240224817443697756919398086455833742111071894256945779492481213499238862719149287374638813477188408551959444233331006204991691788166883169060576593153884154037274499968135451107339481077913079410990438912648471298875418389395903833481410768825037484367846792086829308281782029970705389471245703348104259215114422395718433037297517617850263041080071021150012138930791496625863404218156855828660987373704963800542764435437761194286947510232231589365880651478982299167649960550761639339591437620399302311119143923917621968818425055785079492385669004787241514593560286984476266184977102866750118731253147359872138254918633938718544375711863589430848765806242593728289422870975747285972570197093059585649881884176809395117233697117308789478904435951293066369754228484372506252929026336273894219477472698585479907720450193539119486068327041655997645858862222758591763291665888946483954787043284080139378379867213496173711854904901754349758510704375686406621911964025680071566319199028496382594074282898635748744389583817199642402635439626546673322013229276494425464219454432052986998220041907373468185273835594962430484469475761750415565651280585404120292153607172710258822028866115074062348004241721328989908071662686111918719162286321346287343736838421055913646610458772053174606413864956000665113689121812834729302985134360292467419066464716676174399554828323710022041489608135858515776600834309687139459194266766414065208658913213858608955121424574528950985760511303222221631070613776024204278688437829583049546337568830686298663681107828395100065381129933074503372868755244709596720324198516570281101634092930528923179357802247655501536902601621840129450534155277553847958867955063601492414557980230831003763734728140796254365870650028572394775526362678009978963196181090954545525419941103652663211543610684113231329781302660258788895936232623684192761887459513156627214178354073499896832536504487267346748631122408962478134750770947974519506892398415002073327613995512885488653492306166336782843917462068526142698983115030763909446865401021652895040879127668026406439712918206434344965845271268104550845739072010264510808552904058242728328004225349311597625147268089907487428456556649740393851407035998279827919172829741891632652305035346189373531051503485693972362306867356289229392508742346860064362028603756563335467449207049821453453420334533001838483480179810757496316334184680139485384235544941724423904371630699246866040403679149373003686276294258695687543370873909534322653658579921722137256203685048371529827564683189017184659389467486854223362722900176323751340045719684304536424797813729014252272241013473781339632338364455162239618836671295706662825201909414580935090683843229970977466718405853768069117105067958216779390146081946240736799917698678019531173781032307297202944487827712298990354427570801760854822821000115600418990220393466195972814524947416000266019151798131876638756782441215050987173267968911595044327034321539088084125020111205533562850427441581947541220620133905612531154889304170884641802257507256135885743739800152746832719954323982420841902464217063190773368234086097383621865385143377672091895901052676368206614293588089796684215813531405835667603419978657372656332156030119765752147003181215822493615832131666442023407912121295909124871575943327848089228831850501050033411114967504992282957889665553991257067375981368746010828030718928239348938509425976203796284965050934288555572635717721744757418255026703206837236092373480022445351137772964664964605118006146395209339526573725538055598441525236151169249260052386787294948041840932431141625018862026189985706346257799975881713872484950441162648920978162631844820575514283156139041406273430199136769799636496017217936403588570152535913040315853525326338589803032251536522024603203576033705518787339683835956374449106250416925496217397942857218571021162749029036161468000250632655768237293759069739740662402710560293934607569489557070635449185948449693607155626903131881681530680357693211611353149910644302294421309220027695818655340338504750815855865678505225766331362393533948090042118897531394476671845419243593356178147166613245442776400490135501915601122018485127175935141854411980747320479396361347396919726192297613704419977741170449010522516857694315098947192116910292677120408382983329572664280300724105129445584840396518328629329848686578856165770758374939433801709034539714741415078756947310420427437345202656695834670243946970288531569388796530571918584318251053249650333135624823873261111131535782489004310830695102306299849957813460067467636353902801229236345507050914735286717051432019402498620433777599240103808152999553760717625736444598746739910389261522934567338169952258771331788511159007892829420708901463970942405839101645805603166405397377302592359621659945707999365068009746362297707488685744857472093701576434971390332759475073408230687684982506083499264645910384809462237324189598462210431147657433086931795094983288243140444206691637081296477599153051425576118211180945052662149292461767996979096678283277552463579343396200431783219902625632893518330534659489626544373005923870347475179296237237269061468473931484965378696743777570704391478560061266072278742412223887801928802423780699316998264395480877209747772110402392702438822251133813976836628961562755960727732310920767243359422351178532746362115221064350831879095367742107806755486860338733239403896679436344175779148685929854285493150775636213515295888664377626979440168005780724070779644612556283965849331121066826187496081778061187823506076507415878953665616577881420544318608345158699985663727138288598370542244631229464082386612981945169298324161675287417884472430662345757623827755772992218175689974684184666293090232449178171965150592975405062224153987844051951018837604139316733504877420173528581922853126692211601286847701464261667905041809494031688218392368421698192150358958617265234804204610729312488240471676244328667960799596253676161237318152637792735767663248418960927051570028780629002301583966856836906621435975640460238860821112446729912954658165632912536161344382799403302788705227723670732139784348338591411942691088574427508526085979321602486080304419261003808334807900020698411243253815482292705290259185455697733974060576395096614546633283888873624995613149488183052691989304930527368807008268282187583534677463726597576170213274727162586375339641275823231325963500748570529106745876089719094691038612252840332997279120466618074616252909971909130158701233184811084737253120924324812007330802589350216186373315126078717887328944069216464918826462444773550805058226134469437723896046554848831134011459329799188504363121940028370556032774421737513245093997409980317901516125791522664175509530005734438568851064350857868170807741539742657640831258461127401883358287490038947331534057849599062352598770663089499773164394219764148213256211357495918792448802289075047889964326814804826643753656953615052977977710687564028801443739052432596331005837806020706970312495740973518314147123205806967950828093904957419316526250617670525869101415861131791664461323112048069912865623024008120460102850303655631357928870826189254271706157219787697239549806995507855291521617392790349786158157632437806376596244202275643065535528151899820773591466697993984384904308964270728130265973484502038426649400318519534147086680625713582077374661703166940871840296988541996311604360978304759445584625133446789261376196523261563070877980824037014319429991839740670769060152120050087533080219625599110667473256203278350530099966696697384787080875212625757640934336809273154020066957490360120212289887538128046637821740220525326391776082308874355051802410407836466453476357671518062365835906064418815345159855585176357969995952113657764595958726954496413959875585088704256246890365235919691828313719697472761359962079178080956122252341963337829950263817997857277528436871503983400228852902749626714806510445548518790592895112919449953768824490308860809995504173540841080486296069801509674591607716139082440106342423985593692551754305914600635566520009300119333242696890522842398376871624555840780698174684800227428039562476379178170831217903651403068879008844374901124498379482758164663739396136984611847010154489321755203168548895726015992042701925213203743727621590591097051358689638172088469549263351619276248430032635345108996646284041525141356280749364110303617352847570820637020502956544705046485892469778038748196230382513881281511989362583359016894858627278346498282770226822843890352418002346781650305102340044534943734991296301996833356548252201556113357607499300658535384886893594987206926270775777002796273605431504051828313200177588390028257831783150777540259920595963204124565586793984753315166534230957544092798721612834253558735535030477933721253290482768116844382487444694137432564181685832911574363487354169562614034815894367687808693856548570234323505428878283048892951179513236785968265915473579150740462130970028174602979408819447387865346439165237820724685717671598162560001398618478609084646999654677769471256950314114408539650903015151145696392636904955254619729313201532701817969264642615896088733559611870532876317251836738114571995832091944177828021474038234177673429059643879627321411666821292617683266642790780253156227697505281939925883133832921375731932195532111462127973902924254553686369324763906213609764351449385559676980149465657552388512113399181867515716948367992376013964696813375104834224774695434724383882477494961479694056485829468088106534237992567213311141529258694247750104184912016472273903403449310691312315760608802551082201480815763924922513033482817045806228067768159689832098800506221844704764828282030296509375339757435868876023754584255869373331198985208420992282394121925385929445943969418929346487904267172259240328130364279086287306022152658453028129556060551398935943127412014959396453985105494413218948634901720113638473162104144244156620672880827708842192917232970700846039502130860399055539187061884446997290770453682339140019858903976372408146925781525333111518723630602414197874074085166218390424281253336853596089933895777712934180913836558468090037376246684528989267761225278227477842382028684335919510674396528324247906174230619687790124680402188771389892259504040102588894684608093810238703834294958525617522362280647267674021410967479416076828365068144511569799351769099459444007341631812151029701313135883480931678722535528924185380836131813804839718421039990402245316753617566144566412190356772301353028994462119896776591618057725210622254625621668597037028480986529556134989289584893179165009080577954705183970874804986448244038314202426269909193369260827700525523110078673265475750796369623493434748363779852426788215195359304236060895823232013903022381007208329114071360064851165527092875040724138756805675592540586457957477017756395405709834830151633866768166389166563906359922889197826811386698495665607431951434867756915871964913242611662656771818651310254284232202718946156787696142340818652602184928040566362154690977231074741377952508101198271028997860825709282032603079930958023672264709422845368864946079363710261161124262029336921687601416560435003879756394710843683087493035273732380263479861962081638685478122269433163283909340222934010412619304233330822807692197160844896610791129738138096171952671761771407042911168224116489266979476713165694448425392395910146319281320637984313341186349110982291029473104123430781022133664505254126590140205029161068609837328651157267594053124476789015378919626398294137408489393420875188087929841913807256329233707501287902411335973481537781945382706690521133963840652784013960396705530769215088780356988711811611724491460692626961523957691284798157690261551126086121503522489509091324865557034673728491421207789243220327214554263157859486220143359991112238939422727693178255691446440407788187797088337605488487180558244746582528200947038935173536484971782164650362677352824977643166336564626476104293032095075288427548060391246461469398501097895783632098620681818997815123101622786663809961202922936601716522429894517466550294350294792228153558653065760479568938357474870394874866411560885716858681018584862710166581500141190999787993318571822191747653008169337016056347633686777893143842883291820196919015297628003730519987280037154280507834192171168565410064263132529391682254170286554912472770605073502856875753854936790393933368602266709933256606946808538041547103491139598687841932970672654624575313417964878564747456075941457766620803599324473539889365621292817046174599453313538165041236090283979967266125815615998825211445475853320820070945871859691512581834083230241546848201040748310262431907493281509639426703030777075302298416834127859998752397525594883815293902439062212413039136738557732796146542241055823209979870677379218951571410520128526440552291711129261526706065468165525975365272576719530582541374708612373095493208240765214109393194201034343798980476948520817830019161621785403714356781583067669278054320185280841310137075359425548646885877761600379311075160518905612098771051763895106617881538527564593700339853781336700465612253253535681182881161246921861821307852272777504530750846249978617397588386421779578718140974030085801492276616529978681760980117821848569240279439662068539517414880056918673374583880592363933191635768071186734052051623995645317462405964996390678718308736989182538715771466006720650382609360784472650654856248902732238222351991953176094171505406231834001001724009162977409604843330240815744238996946644303197424258299188184320414487446466236956292449495136470336544427264495198793992754438675112220718215179339865477494632285756269022222903480741327333370609624458911505268454472451074579305814304472479322898495265985022393252109836294805822478956323541798586781660885347112753073336638635110526020053747926515143266536043537266289933642697236432176778057299105861789384200218755148634920555155743727987889148609883343746253639437428482500066986910188923477279180690172760682075583554731319775166447889468984733635210975738018210212979450960784434526509931083810248303309169357442847830295764207438749698027241500721111701618516521520296899650051376425299658224178209275270407915293395780813306541278730821884587481840776814694669039888053113329099145947348261863563943335833987220601866204882955459091260695125656784935640647827269015609885260802754537096897082152059673534712639813063702443955863483952639652395961979228915064323236619452646307894260614953190247399832897980794657191882027941554459849298176167294836889056693425437794712541999755776416999349474654381582665056782908287321151010269046361935965300917398926980868830854642082789271589078284821820012752401788325732294673077620712981412702530748984138450584477416789182102901643782922428830731124077444167765079239170428751297400399204854934806216057837215040075042770098923824008758770345834322314189448137927647589003138421553552935803576042513625292270300594365748303164999971139772192109571865358067310592291135848850029452032701582846785466056130840050122517284732231137941949293605171702613119727210879592704837961654770295107769885869440351761013051785777241024568509808579742375758075455040890688567139160402570226494098610447584381193003441675284223528985236275460885905244662873488493026887255116911798735655092714845743147164226223903258955715386809768697716261883966529807283841175973070178032657734379785300598650408277839887087026403875874716130018353775736799604003872787173101207737513517171104211170992500656506123147373277204823280365448717640026524511566935655843202499465283127495973257159157744004711937914885959918208952280949653419409872202968363875946632350610993601886857307898478832838020331636261274580508927643342569586938173847231931163961779628030792505612574992669980261969299546443528389390096428777890685614617849527099430806144785814759659366235824168928024781914253305624660507044378423813816445038160130321865842325571632240475404394216282046683500525168214861510006682307134915801542147000087755915753733202189932503955439285937428617793949726725046533750199925686599643526814193191470718854513617269844541507416922941287664904821645063749165878416952660614333215378717585584138243542794673241371698264864434224194646978235466914802923048590412424412473659050959243985278171510398314690330837143439707052341108459874058938759815427711595176870765502654061932745818119702390247927376265847872865611154354995275872823902990456978760380196979173922723089887979923756661303372554426832077067046353475833409329362968196067383700563244483107329187513471680107313932737640439324705635501903023746724655260197157966244225671826868029203776161325727429239748298753069956592772296495921477933409456104557727462528231382585309452826327379941499612748918014471281368913640098472491686964800646711514965189969840497759536721429807184851347417921889999405397927788812707435150203452486808638163118603173076069344034257184744337835002491495998076905752835684456314047261165558822951211642545664011613595969160349501736362888172868893543932192074334545372539498951813467087917716473770061851224570864371338811014142910458547359143064719409098753694323882101777882453933831957570924742163038631423149748506059039087781234032013343438355262424769221542930413017439752852630542957309120831750750552986809023852501989658152802113126821492483319150151584173927730855931303130347126978665251001583144692375984525728820640840378265816292884501689498278749798283561084505592576089158381639462975650757690121366017584404034554216443116397647903007344673498880814925156854229862835054855877881086688955873281096819208559621200414088372658150804130665137201208375747561769029403425867608082925717436100120824427301091332965756493315762658049911159462443180442557851730894504912293085128555422290377217749930198287977779550864240899362047322631296746676072667140937700478821137222374648031645582793255328732333882699271889611632632257045225493888063854437843573199934398223101655149409547386670628413492695553603854412910626408824796347969327387043264161806390672117933191566894977934863501436310346332361959058095311747784241828281798416737197014716930546364684646094121987887222787664479756509194339385892474484416051162765191891024614439266768800848913393215130783439185878335488905176909473409335163709769375418139930456150057141023642055860840359757664162776094926626501640807679916288852500648647686120388699432254512648147574476425842966142728564204939872932177751701835715196170095574806717654526722077697542916660709517607525948577825978962501754578273740477598002944638180231635736269062353747070168100084274952940292747245327141432893063080424625731905645472652474717961539733189675380138735735690609590984797908313578750191588196252566104466397710172644585214952203724479859838522679504445476977945499241669927543410506655994173285307637257328765856585684053575954625615908448351090989852389821338329202845237892913226116341248040432874281099434313321253586904129043506392735536226923805769978448126388423763842145640000595223572934012453525335588933917949809875230486293932921367937839403494179566211269980387347495510858662474736711789902979150104197987491745615511744598738019775022345771189986635539069172082301150269403522956604933618557128093769945464234833254510234892962271379027671661373461379301776844122315272884657560797095266352018161614894430187042837710574550199022958226308733548596346354471390084503063202378207462424556812937548701699558782701489366991700092037748652275638850846812156629011003904510903725458000725223186339438652656225938880938786301159867393315342565678702849895616505675782563354594663020463626055355797069138046000388881356926380822895817174778702943940808960514008859877163939920332162637125082338729289184316564474758249769151400411236773767102001272099470583201259615334653495796270589687814859009260422918921718010167286939084281588111541745645392163001473592032576505189759980406816173213705076818983974333817176327776682830175549271705455070230148699870970650341505059498566983311631094945088174232453931057588479982470685046288344360693320561318151430244829767855283892261384921621362504804016519464600338536124165200562716450677329772365341847890471471059157763656531484010382980464743058418318728195428043973052881550751184576013455971037432438953990382197797663061841173112892402808969938631346515282302447730053545255423610852661837467970027506482985651501692276535895791049028076926276948085770114214111805088093389064205558237632582038033378221875190458308217708403738449141426073249284008791063330734060457366100363336112987293908619137259017337996185350002301403401371799283062032235484592774673923268098330242333388528665084515852989260141777971775655808936183932320917478494901047677903800838840597707717162335302297187788108252151486786101973821446335596442970766768105700425930222868583217706215321394600805129064962112913681389951247174469573380994677444080859449267527799330847980573815933707766781759484305622610500008369375624792150028025948864839617362151284339904026457361368530750616314440378425155672220783282711164418163005085293852240416812057550549302467814368868562397265445191372431402039545948164209844983392750411585961989934703749488848113984836987177405862339559034171810258003917916968239821264274958222591968439540671073983363858921144133657428875773297848059818547459359224892372109955085008221834568573673208649503103499010556907779192481933259239715323067473081859201742832395491074335506505437739610388495062655262239001105185928505705825359544637724054106944216215723109350256830900490667630553034852917191815603453712001975453425324843596971044247855913901778971020705093340837652155209038589538183941742179494891698818873702940881961524974010315281153036791781362735422270699845131551015458752442569730305170317132014871543484156137631995684007248552639328528999285689448422139575499867919239023750603665221199286790533135948769025809347207020530207232522999069654138791979020840031185209705424100740816572452208026682864767287704000404051094026710763437025638075045195449632615945913175911307887295456322779805113484789708078316729000158368992059994895096581765970298213526870443893859074866459768322845724845878732483458075123990050861499767447279280143221655369870034371798643898754976645977792214732411594186221256868223166662707312423228149215556428933493429566429434268858980305996642325752584128191168136971456205317549403671969187087679718163759072149468188115706122828188402145750178875080299157876494579560306376061064048379622731354497042653968194991654608410155893331785744850354261208006062427706056337486868346764834575460170354677292673206700636470589919855398267556876313870933599534580915135413392809197259533741599225879969305866503212436024331715764569502972439699380834780407246036036270739044301475156900332421058055813533923134337525306648144328068014187458455083578269028514599405542718487195830516504972662021105351443432471046590373452769066414288248257367386946270749231549957746208973841808866370416760331111082591105650230304785737455116488446520541431721718545617437918171830580033549824919543327057720731618988727438900628934469128759153618801081241137828302293278129838505819374331850758753731732914822183927447006927912158374763164119926076710000885045923070612833437801717385120846948237196971961625866508105154180593922058346200880149384413630421859336457658656771992564326063119571445543464367256293603032223618877012246626310109644922839835423922095209776168657163114120296347263009970904088632763979247301822213045236795535370777285017171236711721177631502752616935645387093630991182624294428858664233170330068151914909348376316425149607704306482747138957064150946721262020610702314132620301717626132586320924290039299562829047931263111860497844093079512605735489977990295199998135866910715584270949034920887326003522328906753063490411911194577434893919670759988692239265191951363359814083008157878199482861041215271660910409238948238192475521686743266827365278607341883362352544049695417197871620260534598623601576630050979007771718097278109629005339787570392913040031853332134701081531878166602178277401804497726524978035986040089024706582416642621829585273829221745172658130419577290366534531803120501828264286517466004918572831170281067994986531168107216764640218023866033521040924980594437813711999168355867896173274649551933175842242404993525332014638992096307762770295934465414251456578696719687469372435974801784894362697161578780416004253161531324378249616140807918572578805816545665411144672500953813942489011475346220810164114748671900252266528345167059385296830316359902074150754283484300839601724081930428690022780759271885294758995752424815195674092051381861439024208016596041166574947178191656890985933865403996493743337717778218118234699726873775144980797586897661408016468693614303564463362403371271560440441117931232751423147700807593819133388695126454839179017995354796120393405688612590547814525493962284703208231016927955965939440962341143918507730593480764456228618191056577203549324131066067671779992697654475359525892129049714022421021674845619415590141265003645831748575325799237371612638753264418436454659783860101769742328224604381194840545402673904967450361841273042134393367316050647292970972823538830327292533115400738851911996795857043578237921067802351597940754931744980401988085971656575273383119624430521802804659003014423921352580430455348154216568501431564959109692896023182323465653571568669570889482975071254190574857653436484567946269486884003073895781336818691166999459223322063849576132490889335861049853966406275806594595805402555695755252691060487701603493265812852974537774217749687452746802484332725648228980515916629845058937384467075853895263764438755155299578855404170142792841404188458779767059886108549729128371317709141299378523810779189196598371160081931596733604688199137398187459682387234247522603126685610318985610839873791745488004047323582886378227652320831496132726595767465995465205646121048593758403392001421002332766983087379777229206962846350929611652878274820073856217499928552222175988486031522127383264877871687284246976149729851537873732551089410964408701859008153843579849279697193674633787821154464215781807989124223530184521736614953057942915208353187932849589024380402665356616708223308541361097110717334292087704809073893386236337724158388400632542141603420379017772882909429704475562791996727957116384456601015529493280465221819014985631655419601841408716590200877276219113851397139590025551218232693579444176082079114636812394520280121715435458131500467507649200027307800336746967664625323390670511181666440079515258314602236163357189114740656942795002601650678668128414939087963407522066633168382371169534602165676916286560932439666571271374947613476409329292196399818022313701112155107426001793295144065396373816799510311586577696012346479309362755823153366045659469056776512593399253820024164407535526605032312022007813715111747814870655172257076898559896812581290657421451252231347438985497325310734852752875856119983464606447013058593317609067611759310740335599757072083240750494188310182322036223723183083039254013043284782154073256160050174556167874424423769161647006538574118577950982610548024406831676282513139011744644080382532249307584149152188736095287664015508359100699283757102457015676847424132408971902716952597164784567549596098298079778613412364654805702722093626858339857460405162542476868897239116968917951552360902648119636641974144866580039734025659112419585691032702351306615191556653393168206322545376614786747723308588196631048832199441059378749278677069562681493926678942951055625094052917109583820673523588696937460851609134835077814308163255313577091478079760629614943516936684096849022975996237313397086006953729861642000442962581398306721031792922882463098130106127734451936216811420253618047678682255041273703944682161357385681949240444131220297200639432539379105166921778386089239744442008266627365951784501696535484001199871055136804864565803302629173656532195249273136032458256929560423245002936066864580929944943168680092442784143909984930426357088011127869418205510917049384849758511446038463488950777048954281644566900201221745674026196051299707888089571745193925202893628345591051625471417064005806746669739399674596530379478219578943465430560993408006516069463430044877643174122644985200501192376615370730529767500519182356315045270757526476933381888605344781957001376877482884736426161503079432282834791565127554981031319600060260230460405969202996898746800833880804668464609364279811562528352348743804096801293033098413436612009364847450666467490834386872813643044148364693881961750174811745699629769342519641543208625914524120618702665691847443087145535580407098502242042341813452508462034711407537809758071619209652673076231130927969252799321718340659628488248955945861147014870611722462577451059041365242990747965995643247648064050773159683344543123487537406957827965675810816196693659260921281228960184993045054475932283990329087907491401803017952771591645816108115131542083921412497526255521350971004526773900572332547995432284449464802687413510221888436749231144022422725363879209721834595167953134750188100217292807448124588914598516078437091272722789256234992124754971151842928210606348625886804379878879788305167305300465216177184416150618550026603298509938187912325765927816805615239995568618645956643691689005869031198969514950764258056158870145187568200114706322786535768679396693784669809733643956993881609538295143397347003492194141330540838228211706209022149391379277323051449437935696110122880570754430868263579245215604107524313989626757774787255558245721912615630676964665549261165550870668724284909805227731104267959760541082813910757134805448781576317765448872079564241554294801643167814711279031860553797749474015227927337213130411597064721075928708526770459175816526403070081883711892395773680009965016537944148723995948699230003492314914489943371749732279381280752766235847008349198763857372556844732980485094664832980102731751491797008879836600885973788493541874879306467426446135116422533890597194315241403462020111520898568686859038836102134560531463902439858092591561051411951282649615280078022404913520389359262486502453528864404488469459440876644510609547620269175862364482900973588337663795846941270413471327564243302301408508600337067108948060136251977178247956211403136234254168012227925082055426866628278159119898104488892015311707986563509661337201968532298574098890180269051252571043147392875911014910239720898247462924330554475386221324042000464882677941263161350891756273711372199956150758712331125279821920597054238734131246112218828768659839459879569903033003598428440586210685493642014824094923006872866641940997931150035420249912682089412035103697444958733566833497917523001735883714393571638556920257280275969412944553718277370233902154886259429265740411751207377299527076288669599387745242429931597764741548110137965777845460284818721983475194441515783344980815955354328786362325152259353466855994155789846566071212442469999812374576111933168813127747801004207198888908377885086440076661487225134042044318539511275658606569581330711063234278872906467795091769241973175912119339015783584833920374308849537077827373407005944833448268929030474574850414209077436269044885606105435473059611912382920102997689067482484926304500616619638294850148218776344893973645282912867798685321872785843648699351607008467384203983782730776360105308485722970922289166901342638503620762768242925022752324032766690085961275001311845569106193293868793022793191498998186580513316680921486510677746556203554731950787833435073445629407894840478603889422686157230003703459428386110670319845835924747308308923051123937749844099482058937906672663378376617949606876790752988956184877259716925913139528165625753509294575472630151961251897770878188025579203874073025887733378335113071931940245774742572551768798592604905312782387353048266307124429985473652719915524042573120152087326368981362016752901515062678145586767657603367490202346308141474148699780012407302118056180664578748446854291279784473511513189511980272523180182300924532699875269703721279963646913153574467621422126796707779556228840198047987668666113573679699427630145793778925291290705430032246835706159632228044469729446515002424166824191987645637807027715338472570695832560994848702011299111011690792066261988908554769433900608859929655015895868621885014965811667090319955396783370390229796350426883649872102154018614497495821702958445420819379759214208310104780197292191892948809381489735100696966091815245686163833698383706232960721409726551021469998793487941744800842585913460457318491750492696850184993039507459025393020999779369763191562307699256272468002800422799521294843379288544559934077812330746533298596900482081448612523568965460616162725998446633585614300713676784523522630111655918804103706691488135168244305804226286317936479111925485493802568050124740115645622032686422394011806757647877377460231410746582622612528229370016945063240940143394639042280099285499261517304400124808090431927102795375278429258778889886588568825231872951519972644115525054572197641611913742721083124106637840838581671558452029624302877760222572289897079993083134299503223880407114235331324184171589208888952770436321320670079469057402577700404128356580756897179767188209154810716032199783493676695994511497521094898824403616651062983793179222909038603397433262966747901157628830996985411355797259672135518890141658269604904093694855790084329671266908697416861610841113324140211577770714531648998173776461577616607897475370198463258562880639279293279736212511773450330517632448011483849901132382751081304735034895952393815487567763008212393871960092761795747890156310978529989772106478131583795034015536301328569479975682598582979001497449729623993509999068578325534846692853062660835539517210598352272326649574408921806139001849558992667859267260753683474794504746446416975942798021059213225965502812996811024183777618814846140023252900806686369117663589176251049196284975921498586680554430461531577821083014419754010142510282245130422831362191116277338819507909170075889136200279902404963101537906042721164685786303452107754505600114755432795434178883429263940135261141112716377664737738439575311178521162816016626667615486494232550929766776728821033294844214467691924142371345148359123605037840520694874781975470637798005208878114004534442965182784290679566300860681609252197550999920189422223492422509615649891867310778452846603210738340300663024419501968279570534963231289133687082000839909656044851587089971016518323791336014816677986999380878890212413733685032289639213610104317980981479713575412677850314443627160110573005416474331341638947889537027910848037889646730804315095750087072826033391975651679455164756276331955618099571098071715093232821577083926267166467755217603042017683550259585259791926095717144082250267905153389492136955739239140873935213665385646280250456863831129272267877090762902583460002095652639043440802223976545230996414938667861493429642914602831359482827187439798146222020185406480434688254721592184387833516611419197147793763840654256138829388420314030521692888949080746941589765433999601054916290584107827197692773492508954712728252002725937369907253629743806249611595079433584834912929320274744452235424612706145953305410663671131797282234306666885979409625607878096223558137760855252958547988708398596856967268458117003590615717090165996769685509309239563116186607341671711320818920425637511907522338117377813835593139471477024533478211614028528960534971741501229211847825359983132182375574444931466472835636660408251098588732728337568219709042859469796720281834314197515817266689255960639213549321051902619682697434786076417474190992263563794309624495454977962803732140166891766109329417084555907213615020843791263420104721644039772149768614700954023588408992054862669852379944138088590055147911117225674633206107256773173051014865663585153875775508376636652247292927688221590807442582169363513002937919663081912861921464025517771222797639174531237222215017846341492975519257282572643858239318285201680510207986495227293941800595013272367339608068557117448688345097530281152820522491995419317576729233333724032397463665339379498208418518902044075787524571200822601679088247132419679040957656527907386327932230298872970647812957890468039068140530254472402899107813244985595351890775997133643796926829153693541016478863621635309131296830446306472301898222380075489154942497169042006162304256037857993420221634395884890775774436621354827065955678265393326178811118366647742226439355208592608578917886741602744463966770445036664412841438770202242275211820533490058443440351089844931205605162505807854555524949635667912177581921062535584706942285637230343541347105627673929956563151758625473621300632126454881106280411654547268405018858740058517720716445331095439254703418051226231016529050741636423291153714157136512270506972936077812882666436434244989965101477601816174553366339966661845835115810313720649361326707573028597783099738497991548731213665564884039668095603517268166810472424913723723154025515552618616580117105056692605788667447497578486899603873109205466332358785691433576925141093661107934191748407995489906913421156100446442614064932297651919693660702164730685041739540152537834594895725454023388613685347324229362340200398821014529993655357158894967563881855627172844958530479913577838038845544198468427166958948532471852640613608188987138055186552000148514982394821483244246753779184416631343910627037391839746768281676136309756643136728267623803177370086765463772431154055250209012746785731465934461839433975377653200362166208312472741583329618243419447231808605428311108170005946684910515436382105768102145806937704034303592568174557526748653696354029563737753025674474672713579624528722491930871530247467795590188738783709354573845143001713235325215144244132828064661600446774977220836733177266644330212286113667695482405119382531114340494949392072830609096832072417303220225920116908497635217078381036511333370604910284000248974290225725298036443639090950987683921787288690632874555006609239536272093749638989799960759231226264584476176699483073110208392915605943680131951235216299295957903763947347379921656201927389498852335756916484183641266759536313186276875608590798456491667386532312983511870327637396257691941355763133573941250316956540744737005521362065755897663319965628415028460631891339968182127187998529232465374772461224457830525881806390790809786437478552003938531935751258480404900382756466402495803594626079214376078984324020335363793347488563795918479891110772967856051899881119250858953077706096763460512764409625920468024145524263723942412713361118426580876900147769675087152103775417931162273785760150205188136121735319452029143329959493138035907173898911672445583432572769886523641939149852129453677462987410506297456077030128805692895305599085269131903354363253200706755166528128546220647444659488433165968670856499520884788803095796934122330514812886567753420671402467074306116985759883393291968708249285385389980147835316469283670423874547337480804853400833516558278040042393978181086714778828168965720842204341742944432269764449262669098939148122020419012060656446825739710277211662542653950351499144439292514188400883524006705070402244808667665326767475285050421387378343149212151257094895960927814061743651706038835927186555415641964652936908615267474409804669845194388176611898179155829206629675008994606464600933219678521116830026481227733601253255749056891803762846796508115358453796279602654994335663688803218760832371098483358759592276092404524133938896576705407038339610056507427429647454498176602684149286803777333522336655995770225363904713069189201531878024405594939179755907814436560934407362540307633792092753500902072337433820967568359170047352341378262653190728925282369880520599393507785537585490874663867588405037386151969516058731593905280056960106396294818038346202543739197460452194333798997547928672163380288171477250446942682599053721780696859040807872152030778361591941284721608201385479442013972665395960682916343928425031677274995968365997549003002677748224669706611571229157631589006453249376441451507978685274065879159263926320960275160710044369809506185806749188633136567355093408672092517014209967731519240364983091374267564348898353923645422214606767914737742985192007650077854687220949709218890235240668911898355287469224166694214354080113479703723408761547166862693754942135616498796286222633482543807235152968761373763569766301571938148888259671157881221343073633721403969011899091854470080346190679123409768696164838293209677142499439624278947723946742608156504338342241812143406945237064309339524850780047273345022958440705842151945123796804733904881099546501662208711064958878836512429103097189508532086170182166324304732191065304821319985252431685172609837289076136113968879198713522959049724276865110352943156029219706753808002364899320125680601532636124040052259099213378855884786334222447111125584292122810921339461476674223522828656425344407944438040774781067640114935250250082301748503277766016528602054771770485646860677401229730241002046654291343501224945447344780303548078983754118693881353150452479665255180284090216056836298795404592706327942420101704151990130961875563397871076009230741070219907392569765946809884070192287568345336643901461325581765343024131361276043398883162360528429401345643205314095277666361914303432374721853514117624939552594174098442462706488788338648284457434988854963797324797954091541481760321134594903876474684065944381869718957408461861089566584093743774652328835471254635578780613754294771504991523772790748534133318331448455914807765846743322806346089661180143842122347400997425264789942390678843512272472552632840278710463795507202159183890488579725136049658093537639633401929982651856017426398799953201362897979709289298194271764472124882008066257536335461606182965429124723873774280934632770217866802151905339231943827493858395818610257795511732558035859823829384366212282234141021790664847359599510210618637522097259506632365008254866739251077975036085246873340239596391004538925172120914875053761204664119082734304214411049735164058259383376016165897604105595600427924945306184451065578120410331570540783789863566163604675257501883809461926135874654792428848493105935942481331776239627796475546922729443672366465885762922610851874507374914386119351834373624771202454389661875604407900511937502030343156936045687531305146702094514016424113323643788458268501934358306782712568364545332648429639105106269111217904012524188409074527604045520358414347940470716568340574989716401160401624038939752296830924929550002480889764416152539657278266315701994965723067682707225864006140998937403470903280745159304103181837477768993876258933543068326022796278548536299115064251639087112693564894890814900272839622719665978561017110468403550187703064744400686062050558350041838935113017911527342401675041511970358885909766333722988541670244505363233876929659511232010943637984960140805920209294833343789008567850868791225180485538587572088806873169993852216720416698238837720841675528221676490403318719568389785203569157507918347852062552057053291305982689455330337619718709817507000120615902052198590890631049174694534823353983026062370167381733495216584900323867451019148320617974486058798276092621114035672688755395412662035097842068485771559190780714961792519139533262677983515454364571376870310691411948858939948387646404477006053602192819909607790220411117188384698664559707942457927581420379977753378128032983576928752047901090903104127600247524902729328267247557023546609250368506499595175768754394876440979955881470501513250256896210724266675967892573281866307925677918682608929682265469768567192136974913649423614029474759636135976345315953897646257784764653445876282514875200585579450638928654855364814354686417459622409767264680644864927039466454668908682344851538862113725867866489035607917347881434980650639092980955499532087498149012755529793387070914302303787958696353869363220153968581869186878582985340362439143848795682882748738336558039524307661478137579840127353609580209713429859667337476321288925280111771421972417040663733109555271226397346752592822120826228043204644193806412044720648059723490844133615213093492313126671055313016458291208117330221144391882609685201797012664374825254805712720885973569548953042559292747573641569523957119724299785513280610696347999104268218271368887403913619544637013369816593284415067138612889292421027829503930836829209417081765120978439212877444610461228436914019403580828667659638391353269347606595334403456207937976963495959756613521315860299417255539435381247451158008371189718926363973374359335121842840872169059180844677091850983546732483250562264137676416530755804074547110678830000864152046083036360994467731530353992387609517346643048767703160968723497001914158125184423445524245916025264884544519085282709065748440226631736345948979477975882457717548430010446846040648561923673383293405633921547388287033097332954550757810682211423096134226708608069996431062146176898685616042893642810681141544010715403881065317601857453971649343526159014333643666903956388426403424418715979193925266813980539189916965483988014880507343073268506012660151126185555494090143578359640856878380285929258768092179513396418442523740487806623755206040950597390629559876485229610043387367764009798051602565785139706761097650336469783350465726764064154456119489807120713054310775784514563302216733409897577992374671807971714085368025159179452476281540335199482344169402306899141822823796499503387955071133259337939529859426087774891638366665995539043510332094257913520237103999983800079524469908987504605910983065807507593046225712914271048475282491953501091235359753689702902536236571146123889068928841847321984625468377343843619318956531700758628168372831198362481110796731647089468016320352858819878000709212098985478624910068567706121714942699475822896913747918093242557152296498825526544902203568473879509892624124137368167252550751459495074643715688190871289766289509475786991222872646202260276083426464008997497595630705232926146117409075542368526362018169202433304907015610871586064774808177006209993129785224209950135242652021148941239740869470478932197586831346641019064189186961592974225028525844091111347163013620360616134212150033390511135248763434575407950618074545347362514919282298121792891650066153260182261545505432235876993234370495014282931505123496210089736659504335954565093987143606636533079497043097781399558884763903090189069760938799771702456447649533890587765309306919826611880835793072663516768823073296034938500620015805679189206327222536060077208163628360946631168023280521383614592229007001414270231663312787815481540530132091201713784291578783366219791721164824925522131589283224073152054496127750264389211478699667352021994470411261688623667128181525500597122284195800198974134799847707870703647726341568725439406549219340299482039962594429337454812875152040872060218498027410709610062785740867308117152945736846206970156462827652223109546656217280520532881696289586504367110174195613180106863847114307064089971683562122349801639097798326382953850266597855768225298918487451919142049531781775622244037534326408735442460859621200450583510769261686406298193376050054221319786299139510592925730155349666501723455904341802778187527381905878164476092179722047805757048646549760769879444602601485395647192497911342304820374133056142123518061527604372489714271758935334220802030625752170805257203683770000182029844088757054180089059780955780523605470391019876553113282808068864252323457287839057980430929047566077694868554868963524557771175796164366215419352394337785806177521144869334825370979264725144757757873974628869775949996431746909338221727223676159594112283215003297231429129054315726950646334709757679186949725329818791494388831056441346807741602830657567449299072807537857111294685851286803358668092572403754215770063175130509684771949823377029256329184659070843485632076569803842086723405143290823646291064817152874821517166292158294917646012987376015943953678215482539252043914463611283948643082637071087079240803522758421611291611596350379909162156746944714182159517596257945373458956748297353743527252249942137438417728603372357016695658530918461830455334221753456980162961272410173922871628289481467853319703076538942946425163496264511476991258292151908134842235330927625305097606879854502723514321515718727721751670133185317564794005059019425807764081173915119992647426948460850127493484483298787653875906037393235490784959350494988139282485340331516084420954456792359219532577560779811911858324845861734402012418393090959238863140238387461053387050354968002948112184876084950700453408031993161213317250661783790788108380384001400570869325693680320111619630763317196973226413344122915022234730317632232219126152009328581248316302130693857813648826469151938047652217762248200625447473146865735382619606628283407790888559668197696843583396838251347559868375145956166206307283052552325131549404601531356375148980437032479937618145605145293712038654190745656967740632239767501007839162871188193901883973959513748681221648314951676462111092227608866935232234422738380510154483755735417347974964051534673623702505613395291018298082517937451884648907246969614566611204375171246965771081046979311169207690886493371777627826580923332466408821268951773625695765432084007538862194300178075843102710099439744786570672078752608311040074181253497977026001794602056751112494968297011396659573814745502758776754246968050005463556638678807615886938746781530054673475578094704704531430236458233247329711886709580977279560390164446477539043860150581747338028694953053314044839823104203115320671272416643438718185492060291021872377718188668114723271619552352504445446564773102299983870505159781879066179394155367644675051692670373699527280307549659955929723418681460442586140607658635232557729447247587568258316464509451396320612268457280639216945271850666725318734578746193731915458774325436101944969753774141803089517140456910051932031062273897749547812391786548883054375615979606507014093972291486947488879586799356040024207824095844199077549789732335136548110680854523509442493921225494101365363072730335168865842289136306464276680240426354121910355332444119513713354693158038608451503274666305235045376028942414039518591229439656584339293569769406790844799720470782499785250803561041155550203553693027594051388511040474015979528576239905136665595532195887010256147302712393712158909608194084796975764731519827346836290623398171996768690179983799200367865314148847048667785425869018148467601620956326717640716668656808344994112537012568765351689137396934372598262045512053106805190972273506468823080182910033857986364972799949683170618644015377133363529713927963457274491641928072280662236250978068096989989356318267444037373654401417320593465576213617632379549899418439067457998766491011938734165931501848872038878682313269939515689691733258922788072483252794681678663596706229697120927276298696770126331088853652263956872707055663671549866906281454243238979960468203292153824063806132300631164644545091158637776907122937325294013965587102039382081321512825070586766577148339577924966689108449831460471278188574824437571220653025056139257187173000990308391356150355303518794108058953422058790064261865602561286596595892337755994453792556874067168175367179608352428252784437006322402559439887394496517167895882280464017250127976916094943438058750922611208942353992046691628090414813665245403662454308567345615547131756502164640355971530984694158851840421614016937484943828107986908179769562961802467973619084006638542301213987768270601924909449038726671973845725854837429313564327183188611020190552819837334653492636133868586372379612221039084576968415926877129383973500450986692629658308752032116004039242984260657402785401414685731329041474484445265627663931555779679246188749089153840842468755005451185357507574885484104492347309755903935580960396787782171234884055390653539860932525724890229997313237315454678311699615465406123665904041509796321401443202783640100060205226610333116635942544546502288668264713087939693568526076354362234046870531108976682109898132695209366242575327230820268100798891749032273283994979482256450314703040461061221600165520338833273499163271290978388990218893195171554203830243168119603745780360031962386717373239016113370982787337916834150186578697866348840258433743828836872549704551818394611637605890580053024193971805862758647574403014874428541982967421647938090125729664740810730978453152240322209369175997696201319322682619796842740627421538694869686960100371190658106711802742811576071101665852652690844866389123524686635503465691204518349373603616299488022863950485599112389391388837460010937351036869910779697036331452263956445972658267248388237582463124436478962066586686161316522264505959878284415053192994036553392416922365808749768911481880867615258361837112699120456743729731515015352735545674368368361440210558012792001239844174825144343051331041957789878877448290418404102664890136643862808185921515583551133016632132839145260918780617751368438857834562861083437508377281350490264632067498596193084713614400496845060862781338953305524229877815315273342471263168162299180347069603456920773789653606564949851075133723832106386442722188692321163279819397065025741978766197288018470419836116204144881978787750664165843783943684498861394174616755242161706454766890086901136595296738764920745667496488495256652220966814050428986156841651796400183376612030513352323386185754775311337590739509067097301587575330521492612358165682546392325746807828165052607356989809965176815391667471337561630236650800482147942435646398757684795051909802566612545231994147913871650618747050294306284083453100998835378918031970988259472991510694192686311172574174632596396389277475259803863778454648528186924131368348775735232206554423252993064087974315853104366134263065428119002617762067504856074493145467116396907826000474446112681999959036582035875758291057893733413489269007882670662554179745023792346957716897140252564611743165690930682999373398362028369463749127639877353918367490993578568806558689659071913010756528154971247635001767268035044860361833537786172668071074438061479870014888786834425436696686494065511835483326845582209675564265710447602209466785269720106655639323652692070910402951728563488159994332919940975472746993671699399377962218263159457003594513958677686146447241102297991232994009426576146557524861750327114638182204990061077343193905836187411344072047425324914764752591898186207408748248133879721237296760734453418616215195377414289444351916792813519878198915578362127793839079574552865385632738032044985129225479907297891032044873648745816324843647031337768308118981123199204587747061216968275931281346404098673516714301152093301830790189421767635111305276656722620700094141832930474667226506772323132408521457858002706675792633774073817794147875538516674272227474540268708442328684612401842759951751006987884715475308614815987339916092211009997300045244576943094131805498293778227216476496215339218742636086510822776904620439442261928062530471340759523780549565720746954993191944304202654504541112662160773890924589258696414348368416523215692846098586535920182575907350668236775336239918412439181666867770621672446207042092975802328346147687248720690920927353015517072336318845419555336150554766886977583810283048883682779753883800926498620307468115597479894069829130622992748296675317357906823393738638180963106912443791134457858134281712782884098704781489215810361060095197327450128524232833201774085715477230770536758131010397915225624366498141034031371874591442779912238220022852600692914751403288630506642694677815441768895974494173299851407476858209466470953874907498450406602393418182301225589486138832932369063334113779868373794449846813948119736552448484683296448845536308367659524940832616401166277735565895876771294933799587769533279084180734166129649965099194893176670074144395130032257675967754368189078621355912859303290469891154251437972230756800995657383899170269481038771574145010035584681073319767130833280472628964925473498155025245638955601216145380035793741175598777446764708334495266242149510199776246727546403948015103633118512135765213423038562239243422486590856932046585196808279082809273281299607638472774399346702706516606422440458316881106800534816595797614746611882113652365908690296631449303577986082476456431767835884355372334911022378231276425989003719469153773982650371060313405080355568336033447891742090364068562729008940803414494210631599219210704612427161410819134429277369927060493549380345548424996158081636057502271402216119365805137473212462081428626762283223677614379343678796323485440712662408200371680838080051239315706025769824476034932097356297139847347851580459503834235906278241459015337373978179054291247885120218951090939628655808497700026267489166867834507060482602241350477306133950376905020393024233820946105672495921367575074429317608097158914730453549979371222414642911623038385012623015631173091857479049101402321515241300760556346977227217654093035689127688890760827912258924453547450282811350708529165229628286035554436706898547725306080304131470726207401451000680383722439407164095426017408888624089202996351371341521707507091085540674691043735493458283667311943518895874117997997448267114053421777890681248914708335345070782730842276597401307333804788770705081548892776817255855395619131013556825983926887885023401297651365616186476334418633189835721411381710319872733549590424922106267266293195540880522578736311869707640395166603157045386498447050111171159254282063259009669320818381944001943073799994013356653861761982413865731492637180092190007111856000403347049642220095760090376565893211688265148150457451465001799966698017991538367096029698654643450109829495009587304041853311667003237399412424687989230570326928844618901616036904642748954613131093634837900776601468709307370671554866589234373765980502471633993953694507665477037234528331753865256344914192088514377633794355758192457570840055143562186865197194949250138355383706300259898883491693226742494137017986206076498747813467475777645679177040907154128810698135784967023576437786655960615002053646792504975480913588291887853813879942205690784607687872458601361158029752528558072729227998155842940903529230385838474992821812468559820198683101655970403242527325242968111334492968925534399676456736995821716505125544784194948318074343269989662903722366138988703776452878140846376936773275783665596727316195631470788498697939035791051200989876026277747623042462619780864305443417046956194061034860299583303275088708362139357871509106164665915473429487927473608939686723183873630307326022251906188660738330254891113359048974119589897995246970881390797667503050520364007588008052372218605759751814999235655327176012320351694260991418021081270476898396032583284137642995180769130434630659069458025621137521389321339245246319420404478374262459452566226483521696380482249104368539812804425239340499048066087684791944587433130307392466498672171590812972950995141965363076256462872923141557967632589277939718009393792342144768282436060317464841412979326234686303221990666235274119513733975966517472310409548896427392177553779914251809498140387854923077030422350184379284476831112531146588419543242203653778295343171141769703814513727063820587633059275958223601682135904309226910235289212698906967696668859782219897302963707845488779519219094100215238228148675747627370185183575640227370500987499200937536005012080429807685043859363653941436204072995004660484576302131056041093073059026881757711710488414841501128832637667645212187093598333445434359288452714404911342819993177455531693206893556566956567428649576408289235870983036414256562850567323763872966025339476030240887032469294998021061145305681575994171213258090535921548276543821676729197473147141357143796854667489788448680266468621216798048696999210764709090724704122912700963688982896473370713650541987859597820637648743606694230481520724229513323078871548634307527293398049618693903402359849473439339375924527522934416129562174756755558028574280468243030144810645212982407937157877698933118846347116343403096881093665933950813941268336042572125449299442948615860854055696870358292616520946957054892871549117037713534501617392026459465859650355479325120117377536117801614711155701795805314401658804356016931240775970386294599710987732618791100704377031438151348606163110885936230274118515640661693658756541653693577100118123339606222719613965325662978801647936963779208292495341244375998407687782189928108912764543841292541295731865419171031545433160136112673268094204999681902126576126768251962901141602872816076710869882269013313552658292000241797457099052525361013375933344391302074158861458643184169313078701312184437798923128191151609817078446144292121356269275266664613237130072620795866498207372670790843229978103504141705953838496196947268123267318756113635728992862559801130327954927207242176366818867856374806771270421368190486551063811985001452590173845550494844015600893287612238940919432389700146538785195447213910188759597360820564362810908484107113909932849319958312439474953493260718267445752633767849058529477692362119318690511615000877152594711818138038063245652699273907941139848971594123092373580542722126972332059468066858295360371839927526848294538731553475987286543195559330035037874137084307476329377681849388957466523798354875338155262606550455849399444962669649010602969116450012056024505087976212447263624020787030731328937590833767514703939089745379629059115950005190491118349376507539427977103759814764027329128694255451464298603634579447130487181746062092586097939996093892486392324563176374043027211242146815778765874813884725824818200717445258895892086357455506495004331897183900844424809911971188948025310305990459021353280642854145804929861053001573865044420015492871566008844840202282728334153050975795614342458384929082356612661189375042073648095194395568756660675111700100161534505906733118785448622121294606985104193162784952870333857498053496135407414204091432973493746287052836422082925065913669743875223980181626971236661387584948838866113781535412677888638331864470673616385818801045082594810525018515877146408352611880403392142265551391475296899669066037791595286967641727402063106320655218329603179879988682565171008897779151408847224078078944191190738640929996749822086290452643143818510665728865758121129791930901921955260627053756736245618691539224833921200871168443920376727328416431419873330521433196027568515636246428244313554190933469027228011710979874880951183207101033853095133743389783614767620469945401899716740874485475719753730360089891233399561244131130410210692948632750898908920718522062228026501286063751156443202287793859772116497613953622523077077109465864271717061388551603375825810990738175178914769605060816552256887481948668083097384944596149453911125129937345331727076130224768372405816463588749201810440377277603268227543628595139740304254518770705741262001742185111583312705432419071979173938423961868357809435789237755650571243245229716244039356988071886699607529686792247885500259700945263757158932326583672184140775979662498482644943619589758071601266682724120949400939490132218606860863624231311286364602704445966069661644470218019567064338935232291176038500084219805766138238465864161478429527856446007331932213416603775905303858474729288467173961835466354389109698300672575800876402138417511291681090099295928662694279978923964652683661970461453514060950598768478755898929110745227855071300238371225103815314785959798496077095106656590850390697523524344270821756324803371733226141251451934443990377422064215784689747586877269318238137679713106996905201978472701519059046043014121645407862628244991463035100909626273301660482699556326713761980148540130474609955907595908223940649024973500017895032043028755766219139512180390400591279554394746356904742597573475850510756397693984870747500023328062575041127002251889192013844680760883571625744907150774990952445347919920146687115530270763748140089650480410350274622737825897114262017323332799583027668032964163641334592819866367548993484848951967771377996230946758348751416800582974984771855447088661140989554968604318214398403405915271316479020691795637089975470252499646766185404492194955300050230774589947467548510952592183914349727771591718105930686887768912900386790441941926618034524886492256208958000516151554297624473169699438852534077693073090773091398060552673490943283207404569496592901150817600654005820456343030703111216208609067913091826488080323637926002650116704770161888300545813789493791191112926362734712375860818292752391228187088215495527284658385555781421697415361033011176521374056369634341854235239511271787165563461670881958348914409995865472225768028204688988293996757080781260633498111386970648123578281691893187226993159088119450828940844698968739667233228423373764051357491903437763346181180724407110840255539772525342050541906333774882520220696455654662655786717780754068893213895643918297244996409079450458065984417759469061943404882324316574787788755394040196972906836826457270863084799598344381103350037886287954117426546641656020332150477912565917530802362181685022708848776965778415880181299605827209807643511040241235276918983589104384920520041295574597063827394473354455589969669725040554444597193267021589112133601373008189603463977796423594509671463190722118618733337351676395628034545794428953593631405539882864050024817685758303521074568697685345732244156390432723723008735884023060744586701563780931583374959602071889697599189157671255400371832479701761554990116217094229743504934696654451950246045962414812332203465561396694435894318978021234506379174081553443861826114475073681641705659810682325515547545607005346481997274988470331571087160359975572933701631231842654173228734541701327269437205257914541893448361947793987606444949125648748751143149687878196503884417182461601717334748733672986549184035888383719168670106609362166529532340648178063913685260771300585633765830818664741062787987359717048834432645994846914460485439047216593724849446996802982852476534473629261031474746206976004667322482079287433312208425282298862584002300905498427452012804071906015764811916378188289183627161374162202759624782252655810709824823916112306831471086456251736088970770872822621307945864300321425147468101615946876672478886878655532080223718527950821196338894053956234900746874531628339453085065883966655528042438092687852956375435452222272576681896103689428324913459892590510325233811546819732946423517888535675881575356135626821365479730581184994793491675073019853724817342281074712086997900291604092506128507057506315350474174595138132347157827618451949590409240939118348138929809596765853129955194928250734599494076674476794917312306259991479661801892483357371622918614846318425260987519605345845008606882268538611271220656207508479571426510934683163532210263846987124634211042273918010295894523599237940342255328793715314684440527775464395339496790242365996142178515726169222474370529282321807808644442200934682180491557540596845339107188278152791434793745667210547644122669405825676266670903642204763543138162857813741483129064873303885054378781188416655791368043798928253376602684992130377346104239985516829302678100342623567635408933208454620997580118870345444670695855787392397504648796858399334820285296047053865730343121475163923991250748198790636075496032895055960743929141508459829861912089671137029420052868325235381608498320955643152793869837676397251348790240745777914797651982730137306763320941422892766036138189878993035395282002171607004211391763275835983537362586972327855282849576109887901658703025844050270125145500225642740694075623969926927867791122696055156129885534984096480793912972863725533536678301214593240012773628030586801781670983236739957371447856995052976816946520423470879980742273782325866004988526815665284232934917973677921503646183949449137945151500415973719043194053089487735867560748598846180557290898503712488977095733837426175699002253496539115197545643088470224403270117624686131423070752495695580515033492526561361652024336180557790664223769671083984820500053654309468260150738614506748806904648599076418850699868992089877032465874332186026482531518944386856345728760564705061201441567357300927865022055583308118748426992290151839228241981594499720305748362801106590612479282804108755415788751157530960156626633156611805787310020245003190999776770126326567301336697143865598521130805160046983245095420674637564219429143794333335858471971397348608389027746818451391850341383924891184673540744555684002764749953361723253848922267401259528140803379012673601285548736518259761627208822328115344468332382969108920794886715022607382851698439940277300505763172965871370684362859480479367661822751344997465204918387898176471704980218085169236473819556778467731261990124237073566061508546378151199596600382764786434053221522040848805259430794114044459395659206963961094817153240172087412890165748049440559481391426744073966625465864493519678307094166010188675487936386423178878121701906414854493388039362942748970613992726923051808617144344835740307139182455306599577148724347712395783444250182795689258422991291452528602285597832924645538454589919009922538869975215124923425820142345072415800124816639225516440154897235725391215335937994393838807357636056713506810222869876581352418651998311092663542234912075351058823634662183952392388799045017892617909838745932361996153699895680021220657269439361414603736522859899600185512756035596192747207143654893422178334214573126676172163107139239974305589082833795298442978061381823378608592576161248194630940071220219337634527243530202322411540144385361715426566290010100384192438462630000815762726895545720378736574597069162426009767085171290264471429443601347331756058065321100462693927676373127881464222963272740166256085294674343348938286152029231807795961773923116405568189972477397679333523997140790319945743671764339560750874608294097996625532785112871809021775737078335891363790257444325473446258089429178745443454754612970361228096530504010459971435600341289237061801380140912747506721288392786943387790064345773761018479560829143451938662999585300960796021179556177434490735855634090142259318694401983413050375178840444661563907847959401057921251248870982359160016869635726043781977526383927107336439160266375048407781660792752253441281218037051852499015469002673516385884981548783515766160679302923066615858958827347386327067394141019173339637549469904287472063892682111701147583840285659893437724591596273367885181937881310404834997392885644126900891912791323942774362163294598599835862925251014225446810132510589722003957643281892921381453415530739345188931969843347221586899481283423871087075031439127423910444359910837502998946480864764767180475903605055430762254681311004284793041353778110992505786929418783476430652311899263876520643184037191273614140095793416619252856841897397755385435458972949467723664237226980572269515907589410319536026759908459247043147953457987989315472765511064704551983134573970388458718564982557759479587146957586829765790878254079484495020843943977514717410312525446695468734536936440188227240551089340211642289975219687961100791942528434998578653682868257169302846146343455286388804686928642982529569869261043551338354698806497049084914107197477199299831309971067438370276278290692681705385301062682280275032819523354935304499437065294442305998895711725294965562340145369546708752278929788116915954264585153692337848721219596221913733942028643468303651028326264833476052650495206881741067826858012506785909079464937460767304480030842578884788876688707529644058167100851088837538688171618295429947778817158805156869349270848961485909220388767020813126773341453187391067154329507851455645164845391443976707518833277442838228150800946391929575468255000370084317791188809870055949009874580285280908658213700311815408192794390009587052955837285480443141077735247136175222515391523471364294272037435158332407656121658112420334635100525063748440915415485406362509653443933220960407338751282852297051914372307074905887069256715576509657036121073936880428592868058627983562867181329387141869756877219581342564789802118190380898925110199500029523990822827949940526517922428545810166023481431001195604701139322076173546245557062196131576584012837877085644868498089668659724137771435166124800206829657935556427416919102344800428494744301402345861228981997426604858502301993692419614156395006048208234676468259911851355469922550242288069760123750619511523264066915488361872322134533263689810157143681363738145824632448643408731148062901179299939340382931535715303158503063957966120195182243817949226579386064218212641211734871767119918193238097588680229759641091285066007650407653937765733683667769479205866783708475280662288758780098954882449688040790972640294206915831539094396439551188581896131505330406193138684902129804855877764362836572822237796083953401655356100214373781264832036324455623303768628930019556899958576180903211624491653015016512046749608688409574569680769612864751407334996419201562763544272803639687707502862825065368634636620603123064314364898315912231253390040228225492767255231825494983931587022365758229302638057187481436635752853980666106710054795268307588539344773707911100365511978653278808596967644625096621671267760033439763158601858221325197484437265464731182910130367511511565409014106877275880496269647330376603862966361449741605109332936996388765869154994050060716854492936106013707945587796496768682979882216284313813705709495487714248367133418155584644751096948154913165575266448297362965777587545629357399684019574345113041934910225323328417761127638230540284618947035160865709230397576763751874769776404230887528603037946978572928332761034572317793972609391765708849223085129192100518596494205135792947606583550275302244856467838675119937353611328163874848529408650769539573761535940870249109536877446650057232944875502852685170287517642433748978109865726862744824519057625910978789076424048721277240073892262123550009904150422595607046251237312170469945499095554772896621023297808621623244955073865010038037038228217892666740326483470772925576307749987746183523301497612169816321848275285973826576824423826669425223494038755844995480254141871778191781341181560402520071489234040534094569069761710882972512495345679905066188082408690003214993608229309123286393045742876637445235017323148011265482917959512080073163974060417133317265301063868575681656049265397981118547621353418554598521522822006626466000638718886827407625811284051887263231396604483504509082888257780581003001094489893114815716368629606055012784156340801682078178004275682998345007311088403984255328051012761329382382519683935768674980075699456052265689522430494594803568346003904927510339441894882089189337904675005853652688362384280208191125758272506665457617709231345821201841560449472234914352853275158447211873642297786227367608671372200115472564630103604775903345863801944173480220578032947120297300987087268704566926000343736094114424806688572192543461886692267954988844348881536973132500222332654820334860974272130712691825034338916261825794859061502686899241591522278424603749871563344369234349831473810266440046474102862179818838037235199344693600679449852469542446232840039052925475551564565294901431339960368180455393728804321278958648914806598950348018545216523892911454318057903705647211684171717251496832094112776005918657668855272491638348166935347028002769141396378239437906557823302258395327668126463469552260677170526004847505672228827517328851446834652879166291391757136848284545006093906328486026168587519241729196484750171457453817197780350356454055613942501499061342034777334443651152406784585772026420182807945085418524094985955426347163638270012762192207151379223966644210251200977315238968848897254445230299083839974608953835520731344111128675719997654367661367601033240844139452713533328145312546841685089287324437345949346384705160393840762534383360859044559051063153448006114606033248406165017225145624078598784179368507750070457686725903018679120401962318354614888728545328880717943350116513473571638069065298443452787425181351506091664682207310724086165716386138688513400755946814573076267172435780792211675946252438970860745875044923382008934077643000792890560434321554228596025701479418342564448883942909815627768648315896011891773904818525618073156314639179487408715429336486261864376166847026407508856117564405993003652204073929926021956488057952564213377731088028446101227531121654604811431463974222257747725467373664511356225668244207924257051996359787941147229387925958104100715653710918248427407066505440784590955309085482169757260154829403357294673797339102680842313640012263151055850214645431810796179739293999569947350598635464215233186858583517677878918140697909810628772706431476901809645035024436083578660072845104045875847752776203572301186988540013050001670327859092659963518596022404222846580135849677100230836052444545772456323418538185940063709741113616057421359984284309961740384664178274637938426165334226321720754212935849674719218575847274771678779974754704146656092056135729414180208133425866940484856062588254530508321696943902097472624624475838147071156151129498394172104172309805325791091558385768865498556797073210464970783761406791175872132358058282247828930335076340492401193308883793640753117551021485365917657717960580015428716558200969880170502477692168094427516783292659690599508588826408106422700702908752038623458379678726441994680869038929890966494977166053509835585708932964376845973363966397945396262756142439332527412603806501897540660978181153512761057464857604193484137520499677589444458485607755685318302572162260054996055697811579008653806164579585443388371914630070344691506004163946649103811854456926917444606245178765075688269194215869636249193572093620362922123419903002098171087928984668692135862264766282860483481895831014470373970191776724691549075348253584362761942725953758394023710705730331343903744535147209027592868642755530095568009783350765453792661414860724665119494571546672209807726168259657603492411280857108788407525815148462221260347705613536036399330551268708811406731066095288666652232624909475743410552525137171668748709585458855982361200880532440360182362016342491392374123590100202187120050930645534854514401017760319265704811654615980576201388498813594203498517105949982040363352682056694976845281753444313046175938411575761542664420351277668776006041190208418034294766148459396041926069208680144895301118562942756592635078869179458303955193462231777197293404130335480690029431372449374399330446458726662622394231410415012480207925782487109271555936455803679566565150095592201896802049570015578619372829764758938801874780910164433719704547885733851717790984795623615218690029341111893118503507493619419215443934053216266587846416207682309742935662384192260643711978874615227447943335665261119172923164101924122520673094747046505748516195087588422823763294085980489389946852047294228580618315743304359135445685181048487093105562059864198756438659715353487321001010899558829566411613228335618682484251243316839682080626664190444580216789936473379213821800977105512887155238553939378874469679431096141636156779470348290492139192950649118350742996396723843372852100989999286367357622381927859543624305957848501892570207139614659760020635808534687678989312055453977566498875291618962994721777451374916710758652962683036360697994023602587020634368992557572583569711830184262672279420562174026875030756108517234084304876110837623056443870078367681551564546195828976093093811018793605385866954628639164298239881852036029417344573612054143456120585103541281863268428199486229615688553096792136701082588656532000500904813911181015899999466142044038324642648921550775651578958212545456364784015956823010080116874762004974441529964289880912949265629395098158388673145416025562206297675058281205647355503889092619915008290831071353398145188134606066591519440751298368159474084144132046148382184583976260481327559276042416363089742696310496843176368953877484874209781487051008895284333751437027452984927956559850352733268624636550867665621863297653540193304280015927227527625188977321993253341670112972797823365048604399111485431675369952519275370487860049259374656012674414840011585038375508841135469253222227213437557778669536573665747990248472849643828522558269949909658693615607563551027668822978821932390206371042761377837221131330141504264690158889445818052766271901351311506415948987159972263473077897482299844787796860956855337065415009099065616197472425804404333902009580622301617890983193451654672708456203064019167728736675305286295702118145471423643162140566250392675014487873898904218925231167414445359903575188175580495149587907717083014642744427064413695146171279543148425434809628904148868579397552782750742176993406540637736566074537122012277915819852812222548991670603873678750399109314601969370889205112036087829866969871720400185745369916894715322079651732823110030212600287665633492175153429300488345343351984127940492712294995829830332980702427029911558607425589893869450429768585755369903674331561740525186647179582447444203044914081047916177756983125459392970937383430715664396681463297886392844012858039603282575308469775538398161959488247897020937159815872616557251507286064287251678037562078856662827370932537204121567484879925423993613574424321838675338749667515273593125617238215085760282552807694856313717212188264750118519631410900187894818143100752291906032343616292636816048377239872703915114749090651675868488084555147990225233269698149348443257929684421346309596222795468169920187327673300258944081619150895879905595129196075586795839711976005298376289900645802365004570630639470729356127103456564702704358293952476284341503566444472343431829562367838869315858599874249952560121964420713189981476378873872590254655068936568454863482765324418365594351605063139028358878388242462735446860908332431575288556126187364656757783059348816393059399360578079285397084325884648450502416670001972455315258334917017379825707681072767381833393205309575408096589005178624463049243570915551808925938933693334690739251469324229420968113417011741533624038816372517183051663481244462745025126614858000929251608418475553598644332392382920649677228319548157462723864972035473283625340646526619898794404964807301504683810420045009523847190779464828868498396304872326500900824525665137105342020985772114709473248800615794622075071272800653607688002937722166356486456594194326805078352550074885432493445247166926246263407862499389284372474092208997963445685362292107394924821774239610818446391092515648038494041069646928593004283503430635764822611715991199967106203321279294548107523836367672963755964617115823841107481886097518049942549894575592798443037347422208932410327175551597409401579529074884957903886789244021436944653158428914927724753743105673448674761590716162490552574433648339569339390078604305906759461889329930473244376797461616079238861656755291552636905903520114630227854505590186968376476542743126177277928439818951647135115085387978267580466855098893501855669969192774686290292944742018998082501161273376547894407695571707920589491387314986866787447669243644447792768502741374801580482334876577986059133332121484941665844197269583813610087439968503130519247509087872918105695060975972736098665020274421586374369793265406740807732836074411214677345652738418304537695885820768874844688226845941382099508606973665803919400781307549237446878172095617642271379092024237034544742753805028314008426041488826373092959165106798904533461073867727746811260659470495542916276634791348439213255739593507478079443590095430578983810310024663936613213959227488985429887218513262162714833745710593418325927626337501939877297843427528663848395276725239822084558350464897698906891587392949032306714926567180661323042688678658999478231372145275438419290383225404749919279556855524691184198495047852231688898131277878135437256736211942416748259523966646401192680616967519234717732393488526042376607166191662534080129791488134091190024083286349027240635558242842664824377460957497858583411672255041137517274670569885670115410142746519287085593123034118764077468897815367858844290075088710111826310052516885224140972828412368166365595386657825516349988884624991981485249816353565534185640286849769598483945120943801591111450210839780624036090049587642910430490641562218791449038342826800802736727373916910520712341280977248141223824437803365217421266408503312717293458810785164350935847510916336985331853317943905134943779445729525823051573823491106849718696686359048357943664372244060032926023510795812665180832221813182006454926646101387601540347155172690934710545818737535406244241335277163223694060392674525588024803940588323371172161620899411614548475835252305832785692169734411130895315719574725071159591693587654731327052995280958528127006488901224966120669492895441449847794808991766533128143890468357698857018283481432345134102953476798873936493643000405398888573800396191286496579824157159834622678846499588464433275189922323705591284208198332490317568473741616544744274824573097663017976424868291373503020494635968497357332301955636309871561744742169800221822161583430958950482013119336944272916857504122704212622199602475162966192557054057568767709213748062458744159558300976083731528108412415923396718953931633116815456744224177218328639358920452602097506803955181313320661045786651281365282545536924233998878616472334814083035371249218827663912738864522507837131420958666780014222074195815412977964974089385232661668157590691355247910292954938792001542755768933607942246480778803473580549037530614166497752412698448140813923733865475701952918275264231955074271297303398925654996951967561265318433907636834654211636701889007548284724825912397708269156378555661658929169037686934248240782987037812110550415880965656407749371279410568424450668344591168473559964387671157759783394730224956711622540373026661366783883452781261251411110020571696043923491486307070633574564507859002368827696561389555898181602560750152272474727034327060769035647983470552831653440695245072817243670231781113783212891826631145752811521361928150645347071862799376197101328773625055167744635923771958331525892146312106526243649736552157615236011934948894614896159096707303725250791171217501671034859245262929772597829725489778970772873258458611516720559009686678963814615857846874377687021419615276637032826467879799149204717828220834865073041422162622760530349063408116686198342063731867352432024342714492696227537639288026032441207763613945352864476727347611049445557797088920038582507463112783567256755258422746672087986725700217695675624411970735565566493005207320721578976173735062440937337311381112035256697244233730608121598145852784062176388671705685083405566915624379893025560883306755836456548084730796973792621552033394519197088818402487854082031472069219613561898412146848078364169136650443224638342254090031313078860909881493001292267064252129815832153555195428173772426603776172030156682796459277314928662011736768991798351468738339911531223133778328047195528904722235072993183103663200480053594841528095820335344336299576165149377534234695936482334252713204839759582634867812283179064370509377514225590264774498136390355453763235207135241000331555030689874821784787435485074589132984909066614586101969575757361568240746954190747064181559954288896726592304389813546139296643025902005933797709221133070646841521683629228159856350640039604194217463159539318946419499725130098696089396248662227970980223206560241094964053714298161497257839150211462463562759633494164021579638371645300263340393758687958462702750215101053946470493307028127337558401244110382852347476371371699842052512645820858596562976520156088901745379621616486356817013210569527383506583463122085803647015536932839075840605767301253457124511224994481989787151582865960353071129466019762237255251044315927739007261750146555825356162529754159399899415633307182763934237350019528597466145137851586836553405634188876039250821486760138690601100352998294085332312327639462224632982982368033515852217460578357745761394726621623918442592528516191732711488758907041328173740691826434109684999744715511302025891440627360192230998143389052628015822377207818267336728690133916764891773340075842586546662917437550141646506658092526785497434237434601140870777228885627885011736788674112391927256375858031479516317164021231216964367615285289233075847093253818440720067635506516129255714325078351576067868136466940360111078732162329401528000964738311967073893797539263068249918749641897903098898168774751620582015066672343850504341890529451415566701278146578617756776025913769980108576456345432536023050883330375175761081821154223121205218049691349357065553354070780678998302996150177063516793325099990893181494543956743767222694597855551183899651746840115593044215663183517682861705860873018279242334828378171749084379647329275479557031255265080781750852979522121291174083360943344841685399032157968913175625678673533812994410371165126522307786015684986143490550302292910640948059863673466703545911536932198038833359685257033172811483002655505083305557865696819100951662129636692729217874351818459841044205277122376053257471192861938202318759270971285672304763726441573524915651536777479827858251321125067739092982400286853432092608594253943763321393945153326079482204105717689368552870682907544990932939666771978838549203626694225227599774820013969208434992137570637834810334446087097470930579623275807366126902944767686763993748927059660773378353514958132539658180188802826601134740897509615805541636404873412665340613042977364857553907486939153031149702626991572339518465651807414896280419387087743162464035196896984549784244700935064001697511187287166298577520126465906865647544999146963562438259178551309965897626510079502765171680661231877975494546502032044531143373642128595992960867599497344277188047798410495766676690053641022748064328436584381665450577994322555049857125382749672951894173165230180291819676240350248827937562064687784520714145980836196710362253102211545321735868718717772843304181811087233977111088569751854636818565341322767112984449082374365195483015288751891243956747358066831580913871474390902712445809746336642296308046204239139291707998219129958925619323687807565440781552144702875445585822834318505481279683653047314277946340573778098578686793713021256444997658067683373950740282441289179154566019035486104397953367180519835316175751197064506237979627024119767887120907604164607477980078403025465843942898732845777610716422530363723939162808758087388030453036064737388088283180630681818797544212113459065412689003523636779269822850355617381434955755108658361905084646913179595706667812750004496153389865702185152031356571970172782659480752776140230660992371509622802604522651222772830734418538196517532855301336033531436308408180126886429196579152038791891182878693777513074358217175248233547537650957159537664042560955798889519229321263646246197544297833699364733694603322488933328502009585342127109059309399519353444838281641802068947788641899993483719141132966360677245743788699117329134973363009116118703725583538706197048015196796921288133476924829945801915136865445212566592998571015542424676029713895285985874775353914779986633555926670535140224222387934382341725222343331158779524060783197915776231956871221839714003377517949585042343362344738329616247100995766500110943617256938657796603178823957195498530556463765711150277108902983625773163789448301523026623031173797533710777312076262369584171869286807667909072232585055560053502423215389660914743967385255047292364016246828123638602420281981084935431001020881155947934305315203731062391592679370961802989037965508963871063270404320896437788773750544452139830463744923835100349253924251418965885022725801571158281682735282051325935579695009652390828017999269997735801338110943590112565631499803697396510794678094583271545508889881236614851136354102874452308051704541540280115733780669926009274680083869309472422978637392241644771523845014144195130957833465031434860242822917687614683176917118282130575224336290635876767247994994094890644947657291872374695052951809696579395557473934442484304621105933262608017336001423906349022203124128902343154223297325426863855783334967632443630878958070628601161108849273814908401131904770251771682205901359281561269393711064201181618709890860910740209467782268631848998840047788456930877575732948880106408256605805826923059108843853234122279733412020951685698147173134483254863117365788577610037113837736504882868109206102584962478179798185174019945380563883132134939782524084519487051542440064587775356569224274101313345477875635490859583938996300768537021949791582976474204519088715937371417459110127749883700109294424298372840127399648643745450538257867114820382473395312777456444162409940376890995568128303950508004667392367933635461120922134591150228964452131582717369363036478853144155377486273800510755626327495519632203917403912810428005838586131307708666530324229146046269485343884730562450632574570221276050807670997940484793826917141312877449913317464679502859340864724020198279960312772331252646718320854399263647423062392608606056227569683930187353659423416119873301334947335052502836680706614601436392999748030033493304318143501005535312099991956222845584499734711938045064817451811178198257178486624606096335575423153380769421806961737609334602614728418610248538979161432622939438812499691994209777096721819433267260297645236438200020026839568389152855005939546352205097203070897720218621707319973009128333799604373997638274462042723849219100451027407718713727920787072904655845919796081932266748362393432750752792691552613696061697881607184771767528074309579139955444398394882599830045173966019541031889427753637810270814411792618703915597059270932622461352573530619736539488460971462893664268917096559292796150160822357868965303628291997422896163145667870491239244244415842095153132660668125674068047288602418329699963050829614236366247739831141080195502023241593575261596074640949989642835296725168647853208294239323514853752326960844766129999536444072578544983477311088399139704125036633972631704061164326167331412281340434456190782821402974049523926344603173768370418228720104369352010034637431457171377646488105232659172557162365086148702560127702500466411119532661726627387976065497353233084259551298861114923354346281651070083740275263320690723450340012639733477137302233657625761352109165184440915450105935787602907985339548565948551651678371130185625862713371113023017432125058342637049516612746220742511080581810866715275244448047292611117356883381157877062041220595143949626268622386026369266003404956226691390974396029603115533563407747157730863967726901303896814719665511989404845035995300108212814098639851457515241745718869961639182462863515967280019088133000611495891571787377979679648170297886300725739885526107960758985846467764568601237113261586392112829566943469129114209636234012703590228525392331023708800360434992694945346714285657426667679169033127572045949384982294050025983349369156964640943636149150531155541994359910255246773446763256550341454914684238502727906865315728861089148851989018618056336375211795802886212397232212047592431800668454805194490969162276079094900474588893267409179192155231504030657601980858038828009168516327900404922885459391371763382521351630745353806572890443754680301802605627477527527859417433806232157704612831062272221268236299512574010474097879415439698108588120887763434797873544957233114153736260923233034539136836756585511226481222590402034948644959531095341262416445733087680386104045786895031465584697541054948986796808661335302841481509718702261061742154320397487002661942254721182651103208993146347624296650750021960832212697710761061623699358715942736919225032430507521288551666675042438257996815324971676143676241153015362734655031368255610103658317349827420513491361644965068855574957429028201446800216299470296622756780035447911359296368766964035807014273285535513713739251995938124978597441714353412974236361096926928720433015920307663976467259584731893158145140601200530785725524497902297682277442423594408473475676761783015875830863342525246642176415599305876937916320880322539695803765909173805042316830083976243880890156093052322123537301525624117322715813724661336204439917098519933166868577902733170991663829793033690022647832429426480609905508770070054434601235016650259365935210776088058483412090957166934055234351765159356526627084069513504090628724709577531764467169137229685291200663273871547807510108721547697336408258111311165860453540139286892818030029296878167500394082790653618629112437926918887080354202519543202215782589428534597143043056760226569405924895587997363251503605981705109062285988609166990712945164108611719984763353154138725498273072436013988956719365728959203423675854328402316498577254447750160515709637308947522076587023784727262117158040419133187253288283388472483597360397072259044558629682390655761036561149471289224438504511000380169163775774024744690479805856028485968035365612172150424312990162081781858793642657848113757973423361372413617086432074176851886929986660875488707599746435435040933835541794426237472378439659633402102270787277409949841821685406630296748807365134592141454787027436245143154097898302077917162633587684645170901212995105461761298489716733345749057744123747827089900306632898937978993804601926077542560212240330717909923484154587415531411915065737311445950053444763676573539952790023174419468481294368851715668963265056625479734884985904612366656866155442404193022778517850851154204137727823559260020390648190935795606280534982657084156597267929282712153462802771909350432893747845297973726816515697263900245761085739867389371631876165773303007227527634485791755372429381829518337760766991209620698000288699603645854934810572631838639496341417852233100524161402660494395468723318526792212553145051395144746998386615801724770804384509651907543068722830040197036678566208633582254453668243918097710605576225493515340178695050770814833579662317781328850409779884245522873282269301316804103419931068216768112478603594992062523844219442687961760830435493890454281151065332003482690237751120214413094979511707235761708583384969964419583776832820058418818021056517851894197635501108867600846334676462951973768735745932260730778252683335432810765268203338112917159023797527149711831055351879107795369656880899240445394845320100744428951955997747908004850962409428427243664584217626157393346623558244222657029840366494987248909635144816635729700885929281551455817594234133623671315436752359340933908795341374533188886462553220250551471443203574030187429877140192322172154098644575405534336733823489292130220564849534996220147772127621572641545391472959587274426757820089107875917866894529093961568326138056760917792008365741728207783430200340734430519556785280606264832483838749959681253111474268161976878264427938978929396259268036203043944643645071267651474350532157158740252557210736649419526477234288370169751008315159113202171951270894886982646930443178312260063549653206653793539242559776091132774461444587677187463827482200363998299025992989232944228262851448349693898761278944273299917557417326216818283087715297861295648925346257607244833501906208514066763844217585232021780383487452129266243411865255983977785988152462760540533545702796930365694870004269592338320353339078787754666376390309094951505128007701373531596188541287828736079707909850356373708479026827593976794775515978976317549572643941153579209244076348586748622934901300582834052880002568373880570234634102893772178099840161544429660869458964796950456335878874165344451089461295149131332585206105948662313050071885474734359014965350810886667532376491983526994888157030281883405826731604462464207768495497607527645820185996955413909005810260112404882045337509484327541758872649794389253331407317506625869787016091775382638540649219829578177255797392852810112192008856691595625964777785255502759465729107640404148296007540376299584336606699404666473049476095796343545506128744264355425012084819439180967738514578341381379884292578315121224245609687424311378797578566221395969965714293211087011371239422124398370634603464605851855391341868487259951658676201100304062729821767521479960287863064481991051824783915859871248233561276624138270249965534877093748515213126614432676674078946168215234619203590778948803566903284397413495990102306437846771658301241641746684556968316870803978014374089220067913120882375047778964448902540534542714757872951110116386909380387566147395589369990548809336260773270508013082754559694755076083701880480818737620832047343281628592620887927728732743042471302893412826221511718432973078031655947882526847099905171691324561944817518571081076480403003577265550347934561375049762273526048158589431613722863143323422465125335000751178939812123962854967964429086167603916860067172465088744533364943708530205611918044968544713703868680447859817981975228023397627149671663897129715702618112106676945863693434837684675023202315402888564737564865762806388982676118398010053510275483497106073374272844638610348612163986371279177042699139768495821261940727320000417710130528956821936314396146961580357448839064746727187623569587543081275723007846727461931536147770004137950680361915105714323521064356493074500738135110262612536896394821800815542266947259060578526183076215847007188960715081106064399408580124372584321665595114944208454081092781898809044861659287769830020538784122055795397204987481702768816948909928499305701865874280614067148701012033452498458785374241306645502106180562701911172213090744855046422847704679387092450854078015627716834678230712714472435064108195192430209702104292371308484273804433548403825659884007959738862372429826389953628109178775125583344362910425713164988854950591029460007238088038877348643225800314968531108367864067003354608124466110077759001284046879935309513709793583591633351897607661958063905165161664124058490418506144631044943883969016670382050729348594504136214570021525477586126511357513526813887976885953776338938892894679092161888218574117216218450218848578610790788459321899927189108526309248280643885733101831520807728592747542141619179840258299700954621420803890815198430300124451540506132164342121093671346633259160080298898797061555489859976967825468097302059482546920348571972363127937392514900395319957976374889606073604112149263881832870156594376640388390956923089005824758410755184935602595397941710745450953740978539346276842431109396794142374485426780181440303213153256629801176492808436615252931824675512531229448528624801000685268693664658649728583443793978414115101320927580874055941964327568608532576030023469733960373162848540073950002112203621255204288768246865218688961908969137687840677851659645133202713874452058999862672973736661340907121829934125692176874047992331597123703109448064676795606881111484770147206585211735318139466797106511327844615617671643045438437507093016672529297264450599744361458192331526397356732501561241491578752595871474579375118297157742287683675772032697636050353484339565421908008919345842842616625112280055104730582620149477418369237850945825106705162704232404496492731714935207279899802917872772150781551007082303650882429524670602405093314564305297144729350284893816120364198659994980136003398805949121115062391792834053395309637230599584022900982356159455011773363142900981363934654494165490854955536543986703086314690487081463778589360457953640781989271037681913743379672741421765091759875410701085577677512797705445658612282966292642791574940715792861117547048582629618950131957480951115072059169541868310322287016727694378607885505101633087818951376519118549882322238087578522012951311221557599542873001156310451201802850150152241164186935764680789428026073056141431848861011912672853079311031883053987286047322465696344129517743962170403495888483946000952989053977706953961004735935113488693875002869292797767726051661627868043470068019665603110152054019116444679095405884484106594835921316002838003015273411482717962881190802396544421839679484301589873906666500906885704215921822160410447285748716636963246431692254251790288450973515119743303722738628460126182115760324007941266716258287897794703077126034131261060741285937027596190652972702460789662810156985994004834389691731324000850633220926209611511070713738291168279148551077202411356822349584274037337258322814176150930878251022067029533989299022384004563784060150304663479066772391412710982230326451991808804550743931892564362773499627368418393701233256940357322266934409390452943337544119196567667983423584012347058411925208802409622002236160028895093148812241624193630041804575576152384648280863047909055176052609577868544554483837837760100695672301332731790151696200493608895051570238086507317913946524475911509009464285726220758163411783343233141958492504577335934133148294197731865126578687027853244663873352195735253877408700639287579791925996021408738848035714062932809261175562975645545897852420633154869222074077040258927447251105434817851813005423860020167509238759595294769825370485657439695517807472446935415940210932927123322798829723196847657661516214722360139298518208448871707820825697065004521796444080088333057412374556450796878759833160514277779439611077837563243169036948334830514611746529507413637607499964737763363768372754710268088053788627331503014102988305349884938393967047622548394407211440505477099622349660766517596101339778360733426016628041344736997913086871319281201628449482108243853402097615450725867685646205354207994087164403042105532768244611213233251064219376106581726247004251794754732793700025987865266939227519544810879317671657932241761529925590875959810072540364084983165644171905348710954893260004701794109660208531420273868041610036682703035888356178370607029829658861004094922185899730335852387169406295866740110971654158231613799889268817476170651871979572974646477482664980195695563878002900124205297929096584172303427734304782956302255621817225928146910502847644233184816230450581669923368620937748780113042160146596584682435604675991807751733960546237426255138320115858490552683998811386257397946108477149694113107510928445918778082512123877949733453927687801993407845347792216746726956362318436339291706061132640312424200982862643732662519979451869702515596544930666250777320483359458875171517183502852849163253455500522084605374768341911682505809183221128526095983219790346001632073986343367772976620145660438231536147924110145949593868530305778547787181247212832663364499453633399637223207350001451921330442481333525509583625268536966147035755976040447559586775973646066056394364198792715466419904817681387340911050971214978876646609720789136095321939685199355317644961479494374605671549962376443558171269853792988516573391598209940412839627503082138710945379468012318291943600292194881799340277346738889794631432201275319806762728016321289978287792153787049645905211608691315987134210380661727850114195739867344109964634360243526238096371150031273615387285383701578657197165998818844930299732225838996918474587757322344235349241593759180274862453905788799064246439307917587345217423860877744462732530786035526511485782119792375830460766518400093605150951493950295100764034968856095082782777384456233267829607774826024719292850475202482474684256169149772931965521121963567845623065632193673463461932710434968825926711577724319253540569382584157045109306970127600904334666871482204945446221997400527740996479010635120939088785528245068335523490455983760431209087176378124954838563342471142523742186603425721509016802543503458578671941636827368317579374441750656329623710379778031406645272701093665766345547088179651602127137326771334468212219346247363470499064227907511574799508551492689838728636720134697097241575832768491524579372545974430665401704316023304578565015375208011479907064987680902931561804601626222501217778084254121162977944144794286021913855860351451152151159807161623394648623447423549237733678562993572255111604807151417372228626813112045465573035817064939983211348394758995070039945910137297439086042865788789805923492553630340930481368617385460072123633232274347136890803931668363873947937777451246175638441691597474833995811408263631613688378428023002902656054732459834228251691998833224333837109375330156313602551678097923685183480581174259762319778390924940048402254438300987221346702195742806465853930558386678111460683542037484237534961488863515025679592300614185152373444949880937680361749417347865330525882063843968908641819295732391209975409383632725230313395110932191454052526329350594148277365071999619994214843355173900799539237447713843086084597353806664890980963193193862913068043576332232346634079135289525560507096563761460025230149920218428969543444687265952627925421444843761690046086395516354971346058467089916977988793347402281026412133034138479999052447234164283282197726951243512537314324465675578233781535872447565410400196606249121568735532477067855784716899323273074680835479025599378278282958704058821508334641868921110050163548547620477503180824628183316361398135469410340423331592742818820461392475795634090586134919717079610893328536379467314084837543759471601682128257418771152608203208513340674665752569038250601743292282990010677124303936968506997386353766810954383728458649570202016262595367515328693512595511770504902966229168899481770545077456426012540465526322831782972677769202227569003747620062166178352745741203373993636995672835770358642291865567882536400705687886231768291279619126873912757674314071128284775987927914342043379192127778020574009195467882801023849305077314208136960110871851851712793772096658097090156622748309624110214975700633871287726635552678984552984980523658481633219676117903359514483039719602971758978911259279219338754794464522447548890437285172181836717455350127465805720169912155213871967870832618391867886534655978968532064148374953209861457426788560787954937333361275530838719216801784148521719938887303835681626006022998230917003221376915490258025807848464241539349638461655796695462247650092527315602211860201190833147268749231661787354064466018519062579033128738972813675124025994381885345682642279525687094330313481313492090803886813574763958054624000012410920230419648310227646865773692484282904340576929342416692729571872686232501345784809141179835230645570033576046066016523840571216446086891581806515584966804550337506737537867522756093090474777022498862819654380732861138448991317204372843784574054062399440892990323700106991419711037652693814638015451771684886216301397806153092149481656464501800395923452188955627637781325601049896145034837618601698651612454816218878614908913310882409514348109710374573203830066398385634546191178439668881829542073377217648134257210288283025295157166574633051400685346979313174866342583831204155156653755408709367976381094321318948915142937097260740633555251852315216663683593779074322467485639226871326753371934187847134663573441264723946640141463060934159463494151058344142602716820480063107413378987671406224926497843719569718960406228552210301893789227586967844789371197801750284362191974015961440287258950233480004217694634065614756987840737221539147045992898855776320309551489124436801578402789391142080437089618422125403989991937784605970974427519394040189107583569404173686278617892527914482545062043916054293985998062216365430747257563346915603104006724032484830312647750036748524294876134737905989385235775292734891651870677006036441615849716977352048270731922380681358562574236337668065243601650299891379288341114680943521956244669404131062693923259173706444091884796379570968057507429187677629284846992107633095969067803437387781346434348921166361898842603838121772531965019974513586031730958080915325717347036313339813575224373695286226337935452269836960032601060500276635711161134927369778587758089130101829138288606090731752924288875025125239496730796340986690233931723369239162858800126961055761809840315309847479796672506722444593692132236981786600929733861540333156137398625622253390339779111511277881947437817886945083901709984783727830566456795821712850422873277356349714025580460869675058131139247273062715671470957683821282019111666763420470604084637669821541402824929955868071645787780849794532299798936277933477608272684124050163797919899944581896703642853775164305393292275446843523875344077775159044985902140830804006010545714002829033098387835644448975184435952791264366835712236722130316296519431934596531549147934476692136178254395101815874647203838410495961336687077115609341776627025266663992072774955416791011669899118198116843463819282864194752035363458779523655423555606152000636316915817506249977205825734725921372451036708116025948426317594595554019370522757742754677344235955987277001171922381046319348022883739421969020671659051543034120584165265104961688610304366172861231566511081239807434903171970696068450106311723783330037090059153601518437197357836357276729917557061241551632408118476437315625788544656403455104162068685455241933656309352981993646120376774821992366515898895258248557693263710937672444905713809672379093397690010908171279470371448356345328398255687343165893600011897453535330671937564360898856502726290172369726712668108670197921725398716290378558294951961985137001690607059685391049923696564810586577719631352195278880553174079911649836307288731820117474525328961199881801807916860023719874624490763140311332157704613130141644155662807034869068951311158356381378842089716501440135885483175468953891284966615726806359972286766344598046284581193823179906914566299197379773518087452642720074334112148226356602002662825828687319018875472967571440325141967491571389953486801687318460618100545222188076926500777671516287015939465614001510626610282471923994429507337120515460101021083402173283237223243776221890820904195245910338719163068980268463908659697902425100031063232948745876725530955713216727270580024432851821828356770869896759733277664302286270082656558247022120196087730970065306235724175373576652761246655204998568112304071649106562962326944402404491767050375936873994497705782808266309742211795278261670705405899311091433851230922702288250793973986223127248937640088888317710963809353876292951292826602473473722287440876060176097086415515567870634766928086152006510641713807078559039846881667188531598434049817876568752674067383555022740960191176632374569605449646247390037787168526308118153255547016836613876113598302462264981181420769917140579110670319360356262798795025772429493679924676089627524322171762512574057376159741689676032233889119388215076781083503158161149263219036280740837640168116309968069284368464259595013059061299675930147387404023960305434078530357643178071559307975778917501942150809136207682659827719390173384929139518242970355132437692491343203732535715519911887760091675955195509573178655435234070487950371851526765334260543462025535222001299840275651178242027319097257029847807318894517418471205703127710330799854379429885138500098451749418134752843755042849342788292287653013806513691930017125693330252911074239610127136122664187886267804362483059945942177455883123778254619839727560502089418902467564060894455199067891778325427524838101436926923357446514304576848575715457550646702702453941759938691022904831147446864156093164323935527175428274381552129147462930251825360992375806213248302268004501215270825408463640550067951507257503242184665992721363129720502576033988874317107850190761061094863295923437995516963943029413557129783516348633081903572159143720027448992670850384036596283621262296778929562962668374477175360306919971074682198756458223339046340195866757349385335561162860681243939277395206916020886494265371007345180941677384092115584943450330942542637259229069067196607587741758081113869452792917022744129041110161382384727406773634260992988244037093256762926339679491337068337891036951676070882086199397830263708900639734660701673447118301411381524653509122918721658905760592844524398495814954844739399286805026342648583550787742074800199827720252218687958038885704155580464629090843567382350364216928093002678323291975601208709028436349236064327924907545380401659649634250322292666073775045051807316719859158958122761924487307146103058408309412508604847103967409096699195887335502663786618860464583502146256213010008388493970156705403845294337761741445917960091008201055166965632336506110319295938493890806142049742722096685868547392235519757086483338133794578080543838123645001685881958180304737320926234213664394060749948158263305120082028759293845579798331737688013936064329058384949380141956703828699456036058158139916683872931528024193935412060459026355153315252333396118873017071118623521017438896912865899849622270686822713445303482233278386923899126060445919354136079576179151947215704952811586128192702120037436192070862531568446467782163615638823156338732772316953247101492208008869812916261898258440400767189089737979854631535137227600377294971592059883089078324139670886228344873533217664979941766781878938693546491137721545638593091388332492318613244916843678084132872687456498488430110705486607976931592101311103189790431447396997238693497131281899978872211495085104048820247240436546526165844576780660174124358281831777197150462599798747151151885866243764339009183384422447701968223437629997128989074234880741057479001663828056650002045395718131189337257622868802181114845699038523503042456560851100958112001727184149009486118333107122223820579512959015077879331562170495578186729722706665472992516253610003725978464774269284004567333977528001205988493712278991606547863207419394416518618303558578831000155348159828913604446629123881607417167551753461072896235638533915667167653920059437126735804101963595265262601046803076480067038533553453162141450206172156441406784418674710054913915147519041135279992850636029018064780901649598765428151015351505127939556893560947541636329287945394507540593532518264048513399710902927764419242020543445724242678329469103449981827440100800310643616960612901441141162093173368594670003658204623409713702596853650221212055826643826482063563194815268801045071239896483017077526818622225008432320245528904563645987777711266359877802471562167626983018116831622904831726675552965272203669004123142200573954258030220130697030358734122140657986620982628422499576589635246411058174851756207052138167333420269512537604355164180025825279807711952365644022575200830178413679266915972021490359971194851993021118708919475594575395926831999347320141786717388840249266093429898526819434965216244506846329038728870752532562695893854764530305772359397035672732726472353673063429809475231132704206086297292183068423135740008549637978286541606372202031213856693234688105363266863300206073873946373840258405572730428388879711295021103430191717771758452816656781222640076456939412506039837642072416305879045918715830286889389910383237088534850132201591887380787195665381826112053025133683147722563439724448800711599772656278573574397384820050183537323382818878627816272426427189892976714509005608582576878759906413344537552814035109835270812062381089583426568368358577281955209080082340137964375364119179258224626647593929092055902689087962015795162828473566706721079686744671448454577553528831125039451281345172640316444743088917224211776136774563711255880962611716476427191189503296068119477590540723376846623916964657230007885457594232771105223735150382477316369247704455928581038608877300523158135209287257340337154868879393527729403690261869520471923698486645496905323154211417319096331645197604443879574953127460285926820982647436237466673973180441890443104503581455872887126674433945606339009823213904760120950093942491113767757830148617745859088527900653610982911305893263215834806474962811372719322970020346657531960893728872461813037986181000106878530015750740143671376562745332078219961866600409822770279866646059269128006933500243368129125774041372481402390785453629855691377304477394040296767154568792231156106915999749961606029914284754709656756070512628507418565682234976025439495895170169957646007861180305807903192582441425833592500849843685361760892627884068658708597602346269045265253382804827123828410549448743493005596855606548708996543865755553330393228656776943162049686547414490186587769113731543227039967094741064994248209569761398976883914198135260516804050866840384781114922862980809231831085035079397596763607501127969745038873528866289793112465198007652270507877318286895434504803132314206402610894903712954136765064410684028013542862638514749269238938690465229940859620707571013811412233132994320306052065964333034627879141215007391793545774681468996762365298406377598643286904294456038963428758157463120340175602011323761363911291048969188875171279052971972525761182426569873380282930336412404222078188384399931590803181143003117399879505226558089447151720061021297711067200708783384559473479136887514245829793884457548676012408834057066808209025679702904998609477938512501802456445085225847335946597875459251845081702226247007431935460086867739227721061649202979641925003147293762602388616361865091238189178738409473157575656925170103008433276922164226835508357249674091560842947888105901997182379895606535433584143624435230138832187051776390991560057017712686746417124578795980754219530970041104139856039508518168289616194472319180340477181312597636916751669056613945878337720509977014763198174580054997996342357687558067758354106131066228829087626515898214336582427977140207992012435334416818328405995486709944483009552887886581443012773832291094286296101148166265566091935369936242672604582089623671210069986994472707824154367349011684613762301971915796854058952868223915709556107354139855831684658185652951205444801560443262923887616309625932577264373333336236732947482013303204639504165437476714619625184790695468717041418160447463811939728704183194096803838756381148148976098037111817555683517588246127665215574874054739169697693929551953478041017021577529065533125061605817698335990846392449763677015028557293379668281459394333924856330784957851744452869053588397388568389269105443010075968873414799009090275634832390683463096205834187490732740965890641362279554081015096612606204447856564877157063254687739604790393684316358375475535394456108902647754590743469933562157798261542287331216076652375703170264416212922153825568647028593642705437400437707009188743486903529399967107538800595050370328922172512643196635303684616388975672179069752022502795324887285348157587938006429234409971025155056266244970839316557594156780461901588684571962413877494564238170522761199386998015239625949313615283554487672015801976285434985303131321747723057730325917254301241893852813991080181016628830992035000422239701069479781402305236435247025557745950609462574894068999234090417899968647494629348369224489842943034332171643310642850444093282486087391241570993792609133996980978756052103198649554423942458537916019622718012717467772727417683520163323491338382197390358605754911730782586318827600361138207147106527267240572460623134889723811813020616711208429198099799789599537601056967877191791308669297957059431298366159894357920961224671302143967147483356694017111718838403732906053869204265419942666124515667033776024314864203374200856099851971572957973014531483664971386234384869248512132029245175392994040317921012030948836334039371104983111102693002105168091454325241655009035888027300289389614388824792080693831694891636326224713749871299369683675605321524787070789870063866942631862838016713357785428434695992149657068350070026926488967468761668713470613268510491960579455611147124603059791580577440385294975124572975099918136365766732125839005916760193313549740315147550333974743007674227519928081183696498954331691886743256044944117908156911299649680662331253528691253643062232469765706607495105405059735439213204273801627108167256184817603646183832198114280226873665244829309352532007285029472157670947501651222263320368806904378338755475624453078164829937558888246696076034701094169809817928001516287398792809701857914504811005719316173485281883418028527462052088196047116159395787010820712757707814801657336118470458513201079619396883006733681578832164541950971777363147828187334301051912991553563165646538165307929969310444627433982559678464886656969515418339139693033653321519978612330529872701805880846843688445820193169872649669723615847915407405434931466980063676712191312601933296211307233588812045472135725986155775108079388066118642691517665014601499662435566937658437248558069889255245858665282160323571648781951927658454817902961817698274409498623314705739164559990036983770222675513908781865148079799136295435349364521840376496902320831230114063290929697587866267186865480770471210827268256761398560577012752016108448530624760733504696868888860571415967896986268490763228662999348975875202544735304679647488659579667375431268943941289103413858133503457023727884218988529976006139239040651965370429704711795871932345348252966146632963015670159004486699790898060055716940387462348777455275890127506408627911961669298232815755818693704309553997315524659964182700906202790576182671649115928316770606629466231099256048635862071244163736001883850142574421439477863520011698608683245919449489766178898044693877590303178737878957879106091766203166872275814579499525462918683010055738195310927310269085419679524929410968582041720323085953676126612592984300912810091665450367420453537801043214217537717708066893095024762223091720478100137184796935578949000559313273646328969501873736912776641014909281387249720708457072815779553512979306375658216156384954661351076067383320455416669002393152577977882894778796685455608920024120973209982957365838191420689810313090707503197217796507248541798735451328175030958502764304150515131947539282317218949334997149898372817601671594275984562916442254626380866804276897294725348114897384414912033980961953375009832209412506469223414240578234524728202591088830288446437102075473874059656253150602679098969497790958678206268390267678947877025251990351803201118770251836645880166827785466285284254210914904159883659833622203956357952628254249358740881892230828142760110086070265824994791911069009225469830905663501917619391312213749585767991147094789483507454013013377380218878550053683215626491091640511764203563698031049920285330107696549863423277887156690325211965327099458036512497566156495629433866324060105357520897033552153005109208166112823817418190099356310072360013945416516710823118745027268435472834969791929749648156817514916756400055509320018858263225941353084708436237058361367183007675352499255538256230712357280983466691705237453004226408864363457960532634875488594392418351906374825277069186336586732162931529471217311064562639611472722783008331184089430062795347630219406518858551972313477650577070116175141975015796027118734418979487624418871673039277412042417373559205527078113810083180549662034050121319892508082366327191667547858052514686645190148332071773955579000785265440871990941122068927628842547314140674305950117581450207332618528393894696198689646793736270354944637315148278617659060400651403174107208529528284052899437325267534521867587370711056066110376365414715781868479491638333858831500533541539648934187331388733604607922458273083815844697740402898905617679549269518106231542572237346480170789998866258384161112840428532148616846888132325333701648790246364830491656585812589475252216749013655488749102697993002326708796071489762314860827328457686615258536088971699427597811472943232577765131021372625661582026037587201634997786449540629445411787649644005639675174923933507584047941084024891714384240569084244751257570847664757720900141660073896920538383555356924638020515535732215277873849435556449846042023285705232851760903946682883427421661975022599386081164971481458384489531554545756528575551382744120078758720670207663644724147014649279180831412448166414303913358443127319517734965167589044535428626319311501343629202880846571076091560612406646523288213757904178690491426351111439323436586244829630470817379822421398519422646298036759938261402311957955868031266771932381876082126482073499915744271002277251582645613047123943070649878313328003942720772205535269600294717073158048721042905011325149863237026463215717034779619125325914874623049503289767130472662195064765844349810542267670762392442923231991681769761538122892655917175749511945206001567380224115991904057554014328613730638727052174009398868595140594163461092784945493826937766133744372069773642182570602692130656127828325248860584487793279703848483256431710640061480106368573542648638505846438934867915826403480374855322437860253940680861497870227188258252154964789410163750550714995771068333892289795267710636515066319783611212738485496383879428224168191864536798871621384336522967468923247929367945283634942963378598301522469765549570476235309262252262437044217673857473739735791032026383978500138951347346731132074004746506556676180385958305848543330437578591404516174503619719304172899974307451382707271276439787562047778604284820444914202811918082803647178305786690100058575504062571037554105065935631224336267722127531638798037881001141376061350205663276925309647995495487731064914053450536133713901828311886816459655636770028786698911471087377740515814203157050988974845308129726669955997767439433003690585929344444020007360446370038016792804692127349790279723356830443214620754943961337202992344420204917339864150172677360101437722439926688127619138951415691391152899735371885448893360439058172686784759744802934707718891776262698842576853462926596792866461816634295399035592960457651872597224419332954391671663756987911166453564627771946870111288862796479842767812098405280244797519815372830230427772611189506807248251247761719551803360969706168342959970931147087000014072020927367189295848106390070374642095563691933576019267730195112840163444126801501763318103039033856150612224169939820733180757621738320675054004097404049741269714270798353042686168930361506176575997727058968383739556094240622159142642204139919738638565105295387075066173625516338518363724512136581961503557444198797876104734175508767595624264391714409944609509087889336827667569253326539799537251166826982801081250003747043761831267236997061955517042326936774157645931519888948226052417158190886048890257889250154152555329420937889980548320342305075933708593076202645932750544906408944058290645387537448835812047290483948179138506737259438254163053979348661171748965468742442029214009647601947747060799871360542514288255212571644179172661679265845767887863253876719120877692664957230069202319273775593446165591370276542661422591406120557825177973082991317194817058791529940962759270268850757329017484715691357038316530448493672045051016533379221932043433295411258536661656293064348790029274873641156510038492443897730134889729652955181512733383806019130157497926843503231736872795946634515962731552902652585384875167477657306227777678558340133182663253406992046242301475962263691898159931830529091556759846618541005491918152002963708415039127491781844081579366492949036739689188481528365907832787336584140946514584271626963921660461336807725717253793862085760747779647917007314026090615892595840409153952537949692606599877606239830092575727009243429740930736269023051812749581404959008611158374101597167407077389392013572204924361534982996630389130869361704344642335304600963797308973077919991554579612482064679512384630060570768176304789992142090892649487120426736602030193356477109678687981059084475331559088471154300816555795763238928920351654469900973401777191209104967522215768664737510635382203030781665978812955933117493433380008316530852043679306082238871214216087724954283125624772848568271912492957058264477752227064330656107073678785759071358761729223653242990030230252237947109316365021060319559078169900554174376423870778021327606997016569020358661148280553348998305866523377760201401248517901913084643760158851498271689651757552087845133516817903710106753082998038382515078192253575923843001842761212942771349715150356161532142881874986752406982934947897479981773112527784395249802518084639284871275112697050172106951527142475878436354682188790545384551748122324320637854781797241164278232235651734109432550165820534027009865770051374066609632183632137537152530358337443686555359619123354506938018517219714860856545984869117866820315061294983190384163317191702640318166251901731987904961026006630102061145700676081498978722130819195546104618936587900547315375411241410778809023879089089346575274271533305117783094098575650211427494397211071988378123775313083474251037335638869406318207227577289131072328083746558901422266756429058953683206081992452787822459214762211589490185801839320702055823562942794557625487125687893944597915420572485294284362248509587980175469894209823980186761406684413919674496964565944173270677338353094702224977641152123740124713045413884536332334355597552483033945022809293355560375882953144939972136622394554844986757874725830744604601913098615126407251106577386645191735124542822146035010599737798764009967539935191714992237974158372115784802378076754671148152429134523605911153328381751046116113015562091818475752184938383680655386091623200511934823789694130251517503748619902760409811722984636075434623586857414690285324272354181719323603228042146736805064533544159808989467882764794601499603349946937655111071376902638873156344669169880277553480985343002025498047801402269998865287580653587814628701050244327594301599418493305651053675411123917072059048494625601413006906463000348772628678393905793613799870137378948138373104849814978460853666519433600288601459489273648784609040144944384636773914280039440334134987572323342158638230099506065974690186980953396670572132940732052920549802112640568894185753761439177676165938090170471807013398604863858531740266164391260435675312634192192573337298708769288053267725084303038834227878447256459713935879231622405288234074372552267299340584373046177207630423254838430957129093688181702657830616207244035241013053526782851984810139607822670582274689736999603705754075535691707228962401294312669480801540361644367713165399967664602237798201177162530453736804450921911321366340110529830214360615129788757443928295992072067345090377454450588322707118924364500538648534190734724319050388164979979310183729775110200626167998756375546178262024658888390004240452177317206344207763198681997784533696243047322420337578544570288035197661706744454404753554702596179708923525073787789540366430213561577721302854789548336714924636256228746532627640581977489029299703518454927657447013666154931601869113502177030068213308413630815367815791205662813452083966286747362636224228027807195895611370041610304721125763871052973951443857617701045205457758324253046705844302641627192235581102289521548415778845250438309515413839807775981239416024480192896910644399191226712928675758643775089731493267648428273115366973675901933377878063280190787998577403689814822849782918262797232846578369007628624970698380065768755444298846650737176949041639218076100937083621420054483782188556070343966948425322534907423846834063769110354344476881915864687232058132211699250727655427853548661607003559920783144172953007049430671012237207487041856326698995308082007289676989205132314471016988155248092217480616348792136918290291914158204975778063301170905445786076962325411720263899316210747734482552170368355247190629242715665007598844756141149992462495743211059275321738025112050070232891406684892437080971548938917048224737018785008481943478738469533932199585431277540718596458581236239992645104024250572785012767536556976113692582949075346629905838892560346679672459863018699905282887889912476892548397113850310643613087801578268454084814970258183938253167293776851020672291758307193722071107482265423209178419927948069898832641318285475659999009154325842842163239460509995809028895962833039265209425292868077540136094587066558157236837388798483214835466188804150587989323095043619100531442966448187456392242281926301269226282264099622661218200025319938119095058228418083218446099788928537544038131309587857266876923717870653558517017089379308758906968369539039501633193899421802197436179140304130450882810439135496174779414433697993974368596759648342583985587151744290408020057840707961592814090460637115818862621094065191200140299714531579345410616285663845527418915032624329444560517950873186820386426139598394682589003054310703175619982391345562978300320189073778237505442715002524478076879180861874281796734649109510745905574973464795609047813151585572997240275961922075750799358363704423006555505490139705771556215824949926484829811325406365809115749685764482042206438956725114014454481792403519482694253768920255708977230713419649150063411521196705239866119647905813509925840053062573358183707237377497979071168659220515760087276648303698246653112791976231981158648633951732916923428609306548974597470676036789285064023990463367086307918789492181135076559104735628942631245961979924354323891783746344929101388634846165053525123761483275232395073083386368516557332880661534961215593783464250649288571635843751635770497962748844147180740747798293396941391797762906967201674290852125326204066773906190251918099235445826051603472994514921790032680551111658835272875307076501187259516687412779639691164091330648337181681678166690084079793053088934093115108560804017506798763006345961554985072779668158960520782655486506100272991948003978798668924377260411909643701006161128201657106753509115842368821065906928627198406060384163846937330859784506753704657034870633220640109770122081076314316069533198536771446397672509861046785046438567532191833368949035295766189398260843454363413438878134312461796956743606312193469881598835054118766543412519536162969685616904172417132627950297443419477472289953481480871862478520524849017123599957404369556083545095023895231764958562182033288325416492741402860560277952265542764371607115858016502675952991918371517375292172636266644744346511613782087880178915858285483204589350253108097487749463820137656797546134360522510050050391097333415561716111892516748723139885077613398315491437981575118444919439182808320945594366868491897197915781393427560790126556124079257392114329273476974671490590441391450705864890018378445525353326649193906261369848114464241636922293127311346332301670605824209410952863268304611590877170616192837142936838768325565511667888906275381464661285138546606400980362682012433912296251841911892568536616721639018868032768941734131357807455040382016195269227426484713284506153599308659352355397697483663790545747959707920788696576416990216701213786559271010789970667941777672896249803659547745916695489351644939680057062335838579926147505340914094750850647284575978408727975469480315437300425966575372603299449408112133430015048569898964697184206198967332098492422266339391454326730860908352904960076066245511388112642600817136885236194898295948946672710308221326505057981734400085189567252143421613492237970436206625584696884675619135525946095415675487835739381955525366317219083124257701411340675074514008034406810365871593945389986395185652711866179369652813958068007909075838025448586560384010164801555402324353731063618794600125707100545876697840717861274877368600556710302063772710375748348801516993986336125123424243616266463197719088111939686604473455864532423654944661956775708913109214967902431449517383004553992065518940347847077175407351952490547870974397661771911419928695709385634674280063553265653420627136760592432154289110848543610599403337332155873879584213287721042643263572979149831934574259750632330434178393548252205658032441017766810967006731305383957124968588339557644538465695521205038683127072264486587141233365237846873038268554166843372334065493064238636309290687720110462963448827794544849174528879517528666618763217304351327067565043008442030669363230709791224821954723251455316502670448116115863151816267059064389408824970834064357387079652017456097804366655428058234570075953887898711147806535146179689786281940263780249075957464901297381825546104527868121694596254783450136077112335756154123548866965343769808083341106134847716043229221724248384992371472271117646293325640009140785076557318264731169790431514604959520906970455703765549521791819081662562168599562155502116765521402463179353687863764438439078270068992649585221803012336120660776065762281643600878738824572142550797760165017118660362380837264089034730647057268360397370797468328480563479903846204254111554143073198073192958343872748153753627449686057264360461613416254605702716791951260803568307656508234285994373852628556279709658524644703597189083865275320634468123492897016925172814993283144962682712652126449858609131795670919210592117686651334537953580486760292243633875988322430141949210954722386464930186888419488834093999044695271395450976999688478347279239316789845049712549555398482406091295820702487759480607878714089691812562981726212954629419159687191337711084446714247546881637594727760606105452419438987915229795804948181726055911494303132870550740850646211502833566292198072261810575373349694142962704757114945815628484294029189627385804920566393705984435923423239548658202941891777400110348235576632621902802316282108164940675632334796656438075597799832015913445204970348747241875502598373969895230293943680075599181260653859713822734204240365954932371317804577973143874818011241714444695992851183782544324157435738371703706540729922432562916768764925160673542307124174008771282313183828282323323553077296502004873823325300412742550508498690158759740461126836908153808336459892547474940409710382805767646076786139218328340038381230926512927073475205464651282140999209154500030393268647992564207984777106126623030312709032506912884471639444365021678347546672357916181641243336937203156074723332755963263353282907004018631168773984555754542998812335345827736647739883397448644886889087149165127826154960209954406131276903692141218912033339173136527453832100416997131321923226122047217738866751897431220148628092504776070955734240734293723336152241412252347996450742356232828557899635169954954974350768176533672073835066901907971427785354390799485241183963305924761011667940556820030806994784816790462922932145687858395743293127038313557022291810978557169090586209743560750007686375396407435275105543470962816031000615939239992873276127919647581831184572616444293403398114420750687809481284678172190702389668071082569611138621178944020990432026046591795889660945160043947566395695834661602221415825872153604396704881194873567659086152757291970175894978311034228170815243815627903824933675280923529822142836548114803770063408650202951607850772830197576250811205001836328051133769473828612368633095406982865834265686734068808129084342325493088469017445902419571812680796144613089094456842435287947533826105610045155653676948021818400378223265808958344193091952269501726359603239802265150237286446213021215789908657709374780249295581490283933038579838017318955546898362086205152682922549607489531585199803460909498498313586358337354226025829192658757215127882725577378402399917676607352395923686204937677986252235900266653617789233340573342697338477539938060676936072445285698623090463829434261466043779722313580011107131478231627616443827089349409263252510337815022208194459638566323375308722825088553423580335300999391638113262375517187555287177698179229418566364382260109514363409147271617267054186231060394199749376383589838710949098176501338000881891419907344255340424441064209184540464256137210741940115120769039096108515264957392553043333019852846585789648896669679209727207231597972088482347341720691024301940423347652520786312904544403173116986865444787200134663423824321680878707516516193876799206712151347510298892395443843984079963563472168312304896741458930686170554516245817983055649059563929837221261413637947386572630296939687337302364617383112819577852088770926163209695712401044818713872679092834796170415012847074213801389559026726306181308369454895806932647118406964185285236424618866802256709944417728128806552726817940271456514936382894013479554516457935561237681010030977393747621468263287290935980533888185639463652523424269636703707283808550720330385268304392737512983280754623577645691554371472156895638771247096740134963997714751931889356168343580404964182682756246744488275682509703052797196333795924006224520054435774857377909795564904936195861811441335458282052823920636499743482526125703885844931549608616530225009087949702196699548434215799720028666273604493728571675901261702539061276215810385145045774536482072096546202081773058969075857986715519222857975527552074571239774261514136642027383609480441817076524709077788383579660484338181004649398137994959724290079514540299677090672205223206941318165883010441763771072821274646060493828087186187508443435636367813394784717557804196048984234229167595521139248589402323593161075897910118012014399635540384330419852030482498579239468339490880787606179103165331565529118707102811219948039440371306566407449506188485222927878262192511618073073759667093425905698356601626007477998415711416754334529342192746306929801756774996170050664855526432567539713582335014312599488364572165034779445602474434329536476278434693417855960743889788894757213599531489939297148155335480793416492952240134382090075061682705324576252053295654728598021461001982787381487113024394777811858614204837778361644344367646304982253423326220341645474253112704642640670671465623325752326768388136969819078511364284317577973103644498487818582872725406388393629969315642033819106311675176504842809977815455146504662749094069575970178835772627012250224047790488664641157203664511850483682673849901866770136105340038845227493505341355074922710525800791119774519716679095812701239178549941948810634808454641532565042061224193860333235611065706130024862488787998773930300813369923074458343704900212497557404762889841407612857145904717712662905079120953396268052827396797915975056586744400799599654989943234479335885136673695892897714363974381075273724980799950179327383059247229059541878569976281189034880006851320454060632245025726148225967178182257841119063555766380898488711901709659337774083969878206993512611533613390382711865539747847446787810059308196115087777343028560801734691985805688555786770290557260480489402594637798363603303511423743606679966721126217869974120949714478283919851038501068689528121710340855186236482745796179885874790739807608276938521756416905784279086078961352831062005885542479082462039008692121184425935181302326389070385799196666633728178635210107937601015387471593778205147075801422608508694662293241001297681883313172249439981498231901603700584721243928282396394333349780576540520785668595324598493904237798320950868857304512604990419512438158874685575351401197153955836457325325864300538447228403324801107031293860854153666975355115269219392921679162259390208237414170563406242631955966288967960145024592660530402245278431162188068412437180438093397412339576887648305956880529051188966329100704821524950238104521355490571035220787108680167135974586835482326557878597219935521293879777307356164493800870832995964446822853574827768835080382759617782598580435596911916086113374130761835329588397753674617419859050378923310263175924123480397583477391319438625294563117930707056320271898944105323743551950447212282217203892965221500485261654018713996423584901824873186748691577658170731105374507337004460603003963794864773039424707229409773104626235964372075909415134661892066975845658572891142725783262098754204509316278379394959870312792511432597389083490388053406626147476604292583250506931213551353949080222305793394002993351763253490763589619488928043350885756512781463014797107579693649711515977810424318980763114867522027065735534191842214192108320030784684289317099601640913779952001643631095469507465590614502875035778084057634970846015858504588960455423078084434512931583081303240572855439352546550730631790450764864241697368760423526260761200488446098798051660696070095509420202388392265267041074620281803665445286761166217268253405736574064166686057634192240193196332516935714162368494087918183591687927860979012236000705473546733123149676827024969142217323680157704259562169094815483223755456950419590283148436780333806833959732834662910233353365058933565956815071247666541983522908624548166511070291403829055046140700253023249871763843079568512210456646364405228923574027507853282596239088809019532319419787001029949387728862343432183279608249120428956797289424427011595072572892764895787661285352131501939466342197961533918075788463404313333236204693347918792796427290833024286098977607875614985172564838813583502593409978550157919297849109916331850167135715339358914858745579230868146137310081186164204114934096364467229776752057156305235401447334115935800330201292158167939920093691524034426268278113776397028221713477299887967322960486518338294102346692714558194098991045970571955566945491225366827940262125347500696294671072667056843045198365972791423662369920489993403321094747602330841256340625173066606712942860738638242465802195596668413038285764584612410508832440213166219349312818728643040068285199227983242338481269273334629124704971208142178429019394184034731635415510492760998180259190749124316073763604954848484909383392571190521158713210000091195393080169783718689781948068349255097518441825930062988203564940834151977301047415954865772114727361156465045107231110734213221721396054452661681668582704572390425000007401751632118349556565667233262013370683232285520252845083668276961193888801869772837105549366803696745921495318055630521294501092962449763439916145051737603836286289421675547414681580356451611005261051996368761686290441307186544876262803801029370303532508738463254043892608459004514097319015649096275756730598256421839337647249622140107556182959479274223037455443918831916153564525613001716244437505309075891863272676730705998494646187112093508044381547734172248201886142027547942902614166222314420591304164886508126373288865458019188787482815576177615435689147324054649943415734573693025024752267506903321059575877317631596289855632961914439253088028567786376503491046892850371858188804954226116119947500880946528146277139406651342787875862599684860617019841239787752847467955411332043314338614258994130618657876313722082106726875576249350788879154495857435617261604665305201478635601466786076976292342109011944735140757333340180512182000924015020759710787784181039811770548661036765650300822087609558449997156329960423955911387804943596031520120863200277300780484240147459534215220515290343375300883255995827640079775854003593734555373631820830925337512207368381743030505023280887345889678674383389433524593611907477167090690670221125968629663424195046534276079228148124167814727746586709590279886965524293831805608275768273770340653053681051706574925774846863324585446139149336811570186167023255309882102019371484051279925325896380839503828930101300201412627803533292660549425228137475387733365975649689597018810237748075625576404950844556214800305924523811313024675946156285852190473969858145182901309773915809325073232858553739177319113695185347443865531814173856014521958025560644296277413114567328537732634761639465102075788828629532694277650141808357763883790082805069536118491444550279243221338529632413177568246994894649465188479744024012420394681888237353770463625839899394847676539920707004796133475573363259501463447141938703303647777146508974072719258173130179505975744335325447089933742720536390780693059064419821717319409167414007356629488282035359077091119063942978425192607736453072377156066057884184309614291724873995464303806061674663110938710934558618921268291859253361233697745306710310111694565687191093724698301851180641982449333969235480850917518833940271892723246904753840687721512090294407539263315830904087332512476186892758954284249942566170463885952906409997607575903089304586766452323951259421557893565284319159360455508565638129243743330723457559718618849418245623181615167177761695531921809982284278483293074818887095070738471350679878183176894895866735934565079493902209906027400991423637368836358363779983303131804734821608085547615023606467421571000071650193416844162957110715985945934373500066567817527172902397095178057218452869862456914812607952412502393790243062114144210452118359677284941700317623595558566490882110985248111572761982016872849941813209943200194782773242400351959765585900509292672651324918660378609298614303305694054137098388568605275162662707348785883277775297627544317128471086494086926237881299822051643845147846751773915849367604348238914955073280597947637360508867436804161239814120932548318186259210531000987246179966724478782766568970489405895248986888125946511136932896538264602419815787974223661890785112628215205750063756860086891170930222013578146097330594512116411255684747507384741090625329638811400195620352760777688197594247218537895180123455938426857715955147156217264881515231510030607313638589721869811767220635286173735063182159311318126874496547979161109815562569362297145495933446284519973429573876384188340533243956819744633720977883985776178874603436365564899827001571905542992010887168014957398530222345620805129020972005130803462770000512049230870958888501899831267209214617793131017827616626042058728527426851984225771834253010707600981572071073536408568679855052637138644810477467366668755451833857795772380433795609505858633988191506763774158454785931348735571416377243912409383095395821587455804621651910895201412641322618130663181426883653349212566541896907236628933496559225199145778578461815821177684656642845110038320873573483198047003003960850729200881145408787338204198406238861986516091935896731649715830112766968600021808823721340089963364115639235049006110357562160043934904239533398804649343782943319910809860967747313508632951194598845052245518009239942490080455781341756788336540455331542673959632987089784869674746363939522897839596911614173356308379170748694199228528072192624938247886284689190623063191047727096270712911300351652434859783078557332074761967397779554402507599620183418804698755265028614195148576882887661466159684949010148613598756516566245903530787405428076506116548630312827454420886946884559473810933969450662307765715292079496058838356419029641797382941651695051257779092999160265024122709374046591494491468898399118474842444767259540621518320466234262377674394203067723948162914510175862238076404337253143189603005723094771449667117501765966923825057037214662713693800133958354296015632161817979559559440079384417133828613180078065375225521253606653421394309486362987453329668301360555924442202689637227583816457257349802285799355205752403530850966821140831035066119152880023674622761331059183020176098123806560145159817208880666008336724631422926666744257220291865288797523400418724793380254443450282557163987606299505400025177956541278656157025378325697040625311023126068642575722209404505531523978273993686518251467963195675517148914066062419148480263545468796597496979179259545447920202871125101809894324557874944595870881315360683757287993351929166348288861795901117766116832291702634161168128202790649409201933331200810535483154910611213417879552260545796400404224674471972698990964446052118571891435193262895309179585482272819518262877975054511812884773720628917823857393248023183532542128194923308888187787763855404699596036045094201285920281141006463609367612090880408942816839400145979403577996900825963797049285965442559983193143728910553709926430910225620859896607871850396846041725452729695763003808845442282519857826112489671627416516345648509271919120864243168966697129651627952462587176660276518365321987192518639559641444938208157779148698413983453612203260352220431576971534800278850120293464042450747003816635233891842460180646225056254374329912640385871112735791642572352701446787746965032274426590494958660699305335838605312011311028420223884227049560024533824146640857401251238830144620355960838777207893904521059198310328629987862135743222085376988523294410570000893963006166780450214105978782930943826562720309660941319462678805678989335889999642360126522835944795207043960087811707036859949139969097937375181788122754526866661993848043866457457018662212981402248750268447706014647699380845062313621121210948994934327707258642000895841681907834134277758816943887882181149630042406953780988243858010510389039817777104755572456999395732226348251519675905591829252259053906278675700373701937647987461380668567392727970134713144121614788463211528277167554848822987975464812117166286370356289355114490981530789494061742478431739725908160001207499267242260570257422051206886966092766519332984009836355967851497916716549149464977366740702720279814990817947295435404067691687211408430355189805361209370121512534879113770998334913065926217339128401792427420264909328341804555081361154133515032076548440949155217459808609491596437971058644213803458849645897272774223475191324558049285952093815906695357971396815938283426112092908290929659416516298751793164953999937113622183252616271809458360862342384195535355042582881781182186172690108479226884735526908068071021809635724307746511042076313922884018260033216429246674388454151017930035014894432564032587130655572751351620297778794643153394266368693021876242741472140543162895123868958325009686939946405459041447185825668558036015507580357391213115490999383902769010062418762723980276045589007482650611426276553653322441850715068042487126210283477403416403641656924825525156071909609396945214277536888383510216028975336912704473301973714502813341158366304149162861744787492909718767382215201093487408944792613502029322723157139412639249023537082754202145569135850850101401710065403670060462694033635569844463930768832242803873367766088076871348500402585728166305188978223213785913058025476156248210785430719977320497721887972374400458712303240087547215610017683982839562011518931432044233541113775333238273012499667005101757639454883780434982247123304242999864479396921174833675871376150090907203083729189083563159150249558358744295265439160282290024736889167124775169165243848379988186269666116414727842869003788616931497575550812440455546301063228410668857561259369782645551706800145027397293973287473195571152495386780564328861580344135244722971251233379183410407181559469237925756762285860795919156485990346229771214906190318861697372656900886799969779663176888516456036592743304495243302864040843935880140356156752618647252661178508622297670806638064682158652854812164918276976090207404345178250746954819043947289434317182799544293931054765831603663081016171409290459199545571514713595417602032145753367478429225413417939470105039638286463090288518918658631124556799178347088401589603269223372968019957177478363998860014058362672678666730071930615858258808320400242458717058638847621666579493546260705701232385120031832424688672995520771035245014657471727628538241623848079054065996800416004774077741918671812301601443383484950133599823762127856304335446160549311381886608322401266164887146913484371540223101579637659016874530763670644059887156822509831273599557848194996554631108679926787523308983718483812509295149070263053886657876441860527313598877064244928589184994374941304030912863854065215126744892574147198879335657566768400561064710608923441861542709256196777937545167880605203304632158288859587615162510909130166764051348557457145458112336752664815704037749010397707309269114827234719537345473219275703197557942515761316709306750175679231402772571827062406395543229896905614217690021757916658048422709153477272666915208255731774118053458037381973224727192740232315402052155930840447547327465646249302183880173730280086786406151307795505562831729882425977087456227876304243819367966742295331052319235320116564521309647841686281667547008984682251607228530683008895662796272728178868132512976020280258049426875557103046417748839110381811388741532521762237070266397532796112550662403004636389159587592298573018453042932812660712147075983898688831398008052744484838706655212034721663240940250408722180928617898032634258873689015590227088322568596814104776156419745488205348991194185068514168876681471069103086994259810625138161416633848353710181674944816582970294464561227978920684478805643975637539263785938633983583045275369178293276117288553490199902054967212522140404683081062814230005693110891069429704534759748042600915241359134840914531867600701507697643198357569185718743213165696098970350367888035966321020056081354263370477016016812997527854859214077368686013028236243991423080175560769257605334088848177582723435576036718856069205711749859801195606261624542237790505580154153363731455632595946995092155688364216407101634010718710900911758217829072858083911460913268699295011853819487614166398313503012672822409768814969884344835726246331031054188216363600360448054876493987964114119358555573139166635137307111476339608551720084397353092124266439541684456579229809707720730469898666570568446234782704650910673865495695801716083231195436705507883282215652918983273908922688745198676873842870791514940695258898985455792410828078263537542476064420619472814854839062874916473040447875530978285843556942707273181727226881125033188355927693807397470507180332266759920148119108842731967111217080367216770399782436933319135304600894453080288488591889332465027014995323630882052969377041983988470172505301988952161509531747077207499498561087140283200466363666375198336643796891042056591106298424845470898554797710144528087319462134758427383967475114856101858194636145974573492742550434752738574628863988786953475109786516466607313950968546572215068575411441800886977603848347020336960722096809318655952644418723018309816060961851910140372111850120017343828924604198939503147687489199973119706299415487384925595653047406317316592837680046970108199839644659980205863488233297764560179889535537051097390343169857472929790212293349823383722599637512765463290251509623105572204118371181858834544562911135033416887234175855361773172305613109857931585145644632960803120385434656985915227404637900897043652068066619466838886338395070289608931630006476063835357131621039367994147222693829219241209989426748143135818030722100862482331805016501129755530924699715833137745883479287375561295610960453493050894508694077503031498600397957634290808437699965125731073333486544976352596244725322002866104101505799470647363381215181715775297794817521461992190968209243758367659621257861045097941597915791159647447905878604211236428264075575304337585515305431290675097103352766171069002688004447326661578950538161752767141199485503352974681277789563897990507617577505488994715842012693030576298436928628025240537508441949369059540681142641815835758192062980077935303237742239609665949768639137504151851278461658897143986183484709229990313317597337391003988369083054643672177686912475911833551232426312892620279275877324558033882652756548325059219367821579088275606628678714000684704707101982462397377513869449860269375350625962414322522159618785342340916783103113180060698728418326382703950685614023044096980849373034976878744415831654213496654060829365235903203000308046256128187550295885539721894455022590778834689558463676339939095158812306965869451658473537545700682542661392451242427739042851575531303874285806807195946768167976389401627095716477399491295170172650018966091201361791241695607653571203425033089738652487010545893643127181041620044502873826444616518593679317253606662865429969319981766702888673903949266015024042600674302902389918551173501345849378850764868260670902409787872708963889276536409083855577226832068888200673330994272198271774443804402753315630695825154020341167872963017296240971931269107996061287909135833328001215450602597283169455112502798773545271305552389049105074903535185464591124925185929749120311548551754644339623440501683548723823439838109143271668365117263852746459341262568858663271270670975633661524347251258505580688189611809482448724429049586395017509253606133239259901631328420735513317669090713593366343326039995527123689886952944473950876021997331101557482849997635729423242613713638239581316549787143396030377775063953152273271388530652900813804190431555554811337389729402114718554098566097203514778066648836536101758650631755101506499893818338824465289075780425336699330412621277478045748249485332275797663432670992302620743728444684386230963377910034720503645709388819459377456455650040163165162051096487689070329737980409273036635766199367460006675019463215348283011890014229493380648819923334976861045971678258654495871394181384502981292712888119429019914652496244771718496541127215230008250854124137286737720541716225294014789836569290210113376472011610103479518107949511669614480031395355572061454699742671934953950831081807070768765048585792925913425194630043698743697715993438482129059889225410099337073209029831454965300222501603094248056282636935754062246366947769462725859926862995576959619195445153286529875108388439637502658876671103532780087790863046132042256683044967281201574336465611409440889576719939460696765490238103342353678010395896630731009065471618034961207467217233840706359212615400120224096160168235773803016426267446244180325267521450236904796980775177424508497863951939116375033680263860126236112186412556534184232083315889448947869142154973093671972808741696092667973373561390176718876726027477515694229195677281032977031257993623299484105480906710933789074287523326398852683075704621967191044599545935113054518003609265000614550776689012680104229019135217903097047422599757127637735511510308861135586112157272483194145847108167717521029898957083085032162911077383934914754838185918620376650787640037670342802607867347079284910670518109817113891794296070949421734217996261839310015307801194676160537869433315869561648947328025840306213519079775757999820386882162642047740249823662659342617660636621203468746220714583096236903556069731034186939376012096987724138786997763148659391286800803459294400331077752536059081297332789858948009803574449372919103765572051246925524898006916490554892995317732662168930816812675007966633832705568069952827517043892865312071698341700291060447078685863061142946437301969743259040344149573435245559785032915339464501700082898491499522430498647991053133917038327445520302809713633041334759069117772573206241187013654958269810743681501228897856931826692541216970722707738274422339803683099057887514667440804265389051161016365146861506577121501432751214566427404202974540634702414092269033177686864471931014441580300606112403527237972769996382102273506145603493701630742411800295850653585271765974637052921373826734178654872653300790846643820966775968112606657751944479445057907081045345889320074566334123213455055441386529321239203963149898364760110347260477782049049698759273682098752742090684518454311395681384558921295501311889232220085383368353421663542456533978945167467197211740054694249593887863303193497988511162562322895967260919952994616909954092887591841869120648337668281840210501939072864094796511778758875328662773267639938453463144480224330253488613955071182850789830348649086491299852962155473510305578892964984838733340843153990063632967557706252392602003392862351708792520275518566678328532732882591407067378174290570500214623821704238932971314967015335014079441861839554691992045051757321959388722714513229289870143342354689885274101090604371749732685330335412161915108963173499730772459483974718791211486314241428654924507566269546176582274831974500649262197676733808334733215723255561558874788313368730201219862287990762025072266240263490522425189223407967668179418101014120302814169677745967086786393655243391019135885511847436699475926238693136746038377634339357756169122023402075127000591585766872963992655637019127747080605714437694092302467324942053189545624540065950529309076189280704230946133384018105198484793723781463189216513043781063430162071278268975282814363647867238675493079950466941952291735355996277870656480889128540149178696452568566565665069932489963464631148154601421500877775407297452494973931228735592824681518075012889111888190615737127022756014170262726156435939996686985751105047159299626133477252430972499387872504968449260068981567098652932558032090051986002026332443372035601498509414406621785797927787539356291791293135673299677015906842957582265708344726924226929915396367292075025736875917380414580641113918619264095777749471192296085121220123412702810216542007034088956285830190985307389880938942879374946321525561700080212193784385967571918358449325013125638359468017906118944677781525826975635405649565908282970283528219957510010288754161116283861112739016735247337962873961883633715908679376543223995740982438616827829017004968777588269558551005999666445649207444696409739846844374692081839664476112853181364491535327222459274114181157438145424793241808024954661799498149054815073189712534448276679757137928284232807591717364054453603111415326021465074221009372909358230893898992025423621593106487726606917013930951918684453798730273207217793513460735870669833672915668249788991584658152390974571117997775853275673167511247345716732935557560149152515058167175365847969302250642998663409707503943833607387139278421532479118644982293325356179477231676682088517447982714663926037212780288721761381469905132043515887668147721749430422299754516345225668736546913325559088115588109173067892579930467301985246426766424821823107847390943953107380972122248146068460094879980876045112119152429871054009739593704969303687845785051490690596396607817928497618547984903200740438940352736127275869940705308145303141052359319821731645742684626470619530086211766936492522654420497544959688578593977868831438679880654035982429065068031512420171787936993141345312341483130607203819957811148885570474524396074858142732845192426489740278445720408677482732231577998483033634574002166136873171103318755244046130792716735419715431796378530013186885044890547845395036441597783424593184420947019901374526104643708608553648968637347261054511643043018584154790417050868425716335459772424777417154486742789876364488656505856614126224043697792724507483317777797886740182069578933584181157007372075320758125560512758427393602642189131309900597863427681998677561609906412390643563497453610655200761504857401879519397426150952748874968538492499561330818487842684419859444102964708539134782532272850173916180378037226842755632305823447864725430915685747131753309728839595151503240753183220942337527159015602326590103132818747197201586868416817389276747445880289667169904145564655514705481910684027443217103272103656551430831062201243360202868643032017963203524253522415480274599306654806479556621129467763442883578431356802171550573981422972915489973328416495976105151303477654421431062695460810784226380189209858326765287948547585649978748214174373750330262803820105573708243792542068611327655713258889004513984144712952731005942003791959566778389082238131130252824011522913670840761650404169060017461781897880102319287287853296364326901989586503189846796433391448349390907458360075549191181003284582576543656430493924500816057880458780544877214205437300213959073029521020411765298809973145277736060513117871063501130999723144749899110680721373400407999267199890461277881015140190641306370669027585777252365983183130650424287459430060299533937095851508730304382395295879188504983945974689782717662280210194316506344083682593181747519686973454037846301824538458640007596046741197587949753484582813314255122784481356877010905012130280851979636692818595425584694752512294362832934930408275164902141427773835937877929781649406629238270865731124459879226494190496928198271613911564609213024473725316687950116852150211664210756397935028013441418666890661863331861732667316503952452856042639814666906973627232631550136281229309513765992438522790694681577868579878046873701688971174054726701217321955807471087090370655611345597932921618320191474650176383987584674983750034612578919112553233409537902709432771063019311671381937439522435988060907876692215363530978014897325774696585792008409095652830103131843074386660705709681885538769780457962492610006729617062339751309634236917275394224825300168370750993988413065119311291528022694791575105202406194691449666013663472416641855222434604667348864229301538777535356368563038654317995066520675621835845116489741601781824275455305077029935618630867561913396609049369733571255702268989653288504654955628507734392528917486648301356080436225616481248826165727772312099798312614279255751902327003536187410300931028691382074253217910428325003899180762551682588298852349928103535130272815843502659810664234466867766561602624440100302289019983479283864324099382668832313004484914471207404706996508204105938452587303613064322439636986515191538074154792127371043885481349434997922646186004045968030476030420136938134806478424582596206645432708923804258062169544979782289169048256406561632791442104544573154202094161283567211351961883473705968545910097320721208018162053217315591502251046240192142220166986567729361314065728818955427624657742231064440725324959560222702300993719740771262564570571971771921922954121068879146031527162720003874226743562602866197885469231319698026054337508665848151759910315562825937424630866430790498739975929312361560130218347025925508842461817656404192063429163156637330827645930872403166420718792328224093450971993710730505010294844346789458728631682613505092313677586329167153398403505372728076302798430697359510701927958450188034410708891352149572398166302990000204461119590949557374298701982358722099166619841587736201824114743762329647327167065902195825998739660075531440379339908321363749378688687049346199277196323542209595291448496331436771142832989052195931725008953335653870473790292291682856767511641074273895451814790956798195657189560558128029348287903432948388830643367489959789073216759183711023932363623155816719035101498505038422539384189056755790730043391235093976502218710432659823739650149656785560062920048230137862900479144911623252112820462885577765806943061489195434401292250954929276274755768047230527033469407963980674333336672586305021635676017336278648271714174210990592978816884139608096554019635638386986694077836654927585248752090873539824527261180854505662787906498574197235319115557418875314918774810490763294805309994597802948874996271698322929888927479881374701387482423323715702238409166382527912959396436917636850916924747494681528587813075074069827693032294251157278824700614707101966427647513032693104811641648533754815460695183590692295041507956856897924136349628060748747960443575948361404537955960415188339890200764800566242209707043179039897324305745711356706280749586528192461274571598926731775345673762888920705511526210352543424851743954785021931625327245267575690481596885726815662511186273508418463172751356665783966205006267230544749470878971598324880021826422617559204049622765929611015891913956205191860478940717168538085892954240515633074440440320833605500385063758257931016253578586823303484272994441617073451620222911105171261548590179151913892000681578298078166052291056730284784141351527757772112842068498821351257441937359188987302088326517540503352749343329378762236775150169968474565364306756576562996451133385766073740965151739782527659061685116400438909104502979851761889467696176593961878112687864671183304852793956347907972804722131959380663193360052311731565011242864239060309205673542235588103999008416986717671114408591733410695585314547040920133732703946012821913028801128673088820407499829614090070945393504588286998607539991114645115749969714683597909132993906353859853683764421854171918886468006151613668555338762653548285086291411337847995725086947293132342279380334018542380239549157425985069484110398984780862744049902118607588530586561300046711698446705650877459995146873799425423404782868891517558152997322561862414178036015705149519122630074709551716351875539043937436232179051797097867030675478592623214505141497688597152261048357421446374117714526383777915163471281590381641270259049989624706663591827457762721627104627433288429859145371898363048504281051055755391105897663809430854643438748721182226781887936314406539946479187584341555871532471844329734077678772083126758919111052496264878755654109221021398144017447420868310366308816447930504066376133699218427511751264906474871609655380583111389101996961058555756536755440294774129652805465596496713598444487754781863292223822390429696703371034090556083881056619331738586072067269434437208585565835803056807824973423339787127257159699530304719792525428562709915079756751402682418437885183362806269006593746138243276172927617040653447375326627167185102263366273768306718102551444336223682202665292569349532323039440616424496421881256410442389558336103691824806743066143099565924505258741541792254001405493418817677624308653376570095426870954829225643302066240926936425799430205047690692295326455209387251936159172421220914521155585088065229852750403913993373083192134755450625863832353644600777282510880775458564912543848021659356239064771018569558044344162873953763227878818105561016814556385433896658779004084530921204610370004818025705377198616291331519020533704984746050954340093016343213809780714970530093790516148122351975857911190728432185698850105025028902775806511196218821295708670696078705504102780361025681427072307111230614166121318142088319948492426870328318488470136799969129337701220532763685144802858064397367274778997475155413052967995465473360340895758240446059715340409522341623188885904347977079721660958374274229868159234872664449121403318849880962839767757797499990178822298715439968277332097072196149449009606545969440802452165851674205724536652460320820657321218084418135083158728547957811810862926053203745633644104225520174083988578041017445016577122900869636468180456709058672975609874434176535323093531743113254777179727481691135222250185214565794595822756181072308583858235652106221808953545419699525731401165755973946770150875721034220607513338752639493388140867324097718768753280117748514119130100512025556646762923345063582249392543298319185599635228292424297836780910377023993417166743105791509703857203482242523524442514059000100100065537082731774244802855080284966765128693328683487393216196094984999941803129437908287024213463039843532843669460368019999687468744539539310877303179143366110058422826110535358709937740007604811101283852670123762879451688314585198449003735774761788772645444302691954234944342074977091883843528359762616803372057187386828903280537302003031547721529633820574389653004332500555394252222189486998773297091614237259170019182996743667380129242934583222100838361402846563775726643205990912022067380498945788405579271644141565715312399379542445390874978024165156870521696984991383261930061075320007022896376702059734100016599352471598151012303782923966251002795753541914598457226306603620108046004459981504174923362707311457029397309340832614270845872547446087454296667281325444110102677662125110349214010420882722456055454557663856812665870591912841245177307731242533417145025501126990147363206802794644479123157549344492677967002248204995587038870350454789864998645698697649587758946259578286990434835096508164672018801739186630323193367898056737255738209111547817413234570414674811343669220853951959820988205347441678242591970038629213128341195844522137433817942197291139021362619072469347501790472408725542009703557751644311035200322950240626767243874578590448338335492906592755778112531129285393461698277985818834165268675806237972584009024798485099374350532481599560600450154262338860823041128298273862561944254308620816792669181028315416854560164650608165465686013295314426314006985364882257872253548866380388689206084707232011476039888632827239474158984638950660643508849060684250632965420514725155640708913620882815215370427671258476109104245780366793314381552384841577970793586119119752250011076585902373332147696630967093562734484644153442998091639585903439785973097653678593085706892529619456263216435805241620255183366192307417592604849661946321088795320034771626985937293518184631568685811235050065922023590826952155897777104725563602859064716328498764312920115884476140516602326696908979389004316235848764559548595387955279337361271249803735652327454243657981725611312278233248982100959550847353826164440241641220160642146674560182889353560070891024294026253459907786054055912978316537791181999592985296156034889179843090870435109847940267554855609875783448729722972745342377636460602344122756592793357947420661199644947653125759747839000788379301631812363451634922670508138250794082471869794761585260344204049951478486265120769100345000452938397540688200271873860068497891465315174079311794859856208797131306622862572271839214960015205701267964361904801528891365680766368349828408479393736346023120249249146810728544913549703036463031668520617499131411345415907881646211938428878181711498198743700046864751518900792816396607787230282143347424977377112920545316004785931768327906971189113515831759399924402742672896230575409014216696022681803406264472285422195006464157562187787819625037979053753787550485022498991074251983918017968543508779113711306255808713624497558941211987450510761990613353576167775876434200332885018632158301893684564835204534784485684080364210166880606201747646330861878682984955216035619847785364351126150423851767331762548236447404436958907824203047345417040806622622718435225098004481997542434437345949486092135884659579595211001231730268531869925752630923557700228558850850110458404220785773393359592254575577593899508098361070697688225017111851929181319227303836660819929315201143216196035294262668692401440615199741826003610898097628913922239459470647280550161775123878445046801640827295525998557403442454935881172060696970307513591994749686084499237298825744395037374803566380326496907899284126633174747784409411972019602270014209298794937826787788633435682227961004110330030726283969433817628902084973170967788148840711853850828270924047226782391998694804163975993825105658573439193187510028720740108326404313004626649712782104180198004611505830332705734424737243562348665108349463266056597688216059964942144530738092236547178803460451606451987731464210327417769212659470831342595222831193952557426308272353878142494620822461198570897311147663873945478448060064179880022314090281828982841726172007384314518220826837882638572613130417457894352766414750944613568786928175235126160327014698269285342472300125720292920385672283439916870789987130266499581271866849319057946690826303698935164044553489628880930126127814879283444886545732912254117278803019974233916960655090506121510693101923257339602594031691386717555619257574753317527955260441922743288414230888601321036669353072609185262369077506636162378674078330963683308995182264189856348538822591150597335609272186249365264394481932714331207000399068221051104381233258491990857468150890573778277161656545659107903894358803060444751677185419816509504135590067709578313779014450655982708332637374832102069307580618131364252271594179452748287476615975422896198913291767586669768743976261340865990263494136884080677578564081144039037162517409684780609392410117019523724859238468243653067355602868796426736562064310451332939381763149876268363042664752266036208318739042388846210021608063381779587910632368696085270328371503245957004105881435885265872811976350896413134838794122461110677453660965140670930410130202181335248227828315004784865719138287749387339351191212582871986988095247002634734633468510704375363403336777679586482210041697252154243481670914158733789913144136207910070548374840527359892708323921212808265070680337745335732605932738318447483671219309526423912447815256615387117473184399562053520976932821674036685570696050106199429110664025023840508208724925429435644313646222291732120836015124280156820981736200175393203529076746872602433682901937351967254334466253446970679827749018176874487405168918217271068793217334238709912413450482637469694455174767345138232899943218258608286173230666306834367191773575959434339829769205563834941879347571467617356729472283433543771553539926906326452665688043154833067636480951765385895508639609451229936460013329434472378141612448947300044260166280865768294947511732461160812800754038651289976402802426105615336356986099462396931836228837020280116156104414269486540996281031125158282548144533122259390080975458425233550276409810217574597244450224251702511438433982223421514391923005203719069635882412497681320861264044272209282530291099997477692392010591891975750986642061145860469933568974012617909941927219449851645572995291404578512841706515665221913617768097750216366858015442765130083485331745468161229791910754344543988791153254027864595543575370525415329462334107962427953919084455138805380223007771164081355823401810724754115178638755170861055696004500027638168154455789352547236923684618993010008874708561322073646837253105429485788262500220513280091337458343480082270586484266275561612755859438682345075971947058980107948455099309620909898206407396359686396563751140012395017915796571092361772809133930546581244087489630610980506393232637627867614971416433885425791468141038370264930151043512864251439777896297380636817542537251949101568219631291998848607807587787387080166166356168515031683354837962312520280810277301399329493629557067872953659381201839584104220139715643906958651542953477299432097007275054704162736935901691476281441089023796051695623700244346427981387215089302935660521823236019111398465232828920655831504219532637089038926801590339547502134751430630410621844450044793328769377664822592285906519756912050125098968877874918670659759270224100613780252232001414588145461084854244097871556109137746744241090100392943201128964195048633986402829191863415682951696520799798408505299544541607014178773660577257545181585485086405109270044659546573395233992860005119148376569750598147043096638280919049497192538843453054501787670530506721339268178693871404260833881880496079947697859072981698855748187985987602175925990843892120357622893117159395230418580519096005400626179713003239570762766523102466765224137283876704713227465750774282850860074709173643234245818918085400493940827812672733440482850962996221236738410105702497657843291097315176416402712580607496536183480480810842687881574153384292076969884736520084885368546861997412541376973448908299361479055804642927224807853225877957704644398946926902532951530902238517240114875439535388951906382748490347813391477435143429890998929480328259435462422234669538089403627107149182929400036818419603494162069447518266949929293583238995270511950081869142817713330820796120405286063175691208876367089070961377581658151012926964430805422754372440763442860638013369311270724203123155589005906391839816909088369464320034637306297769458142864249879763663401186616553925770841977944546467065298931070816305573959007663754588071359112441238880708029975876282229479963872982444717097514433528141301590214499927230855137281219446638962327472695620534700152620115424549745669821061746381230579002690498298610224057342116377953331397833827326139646200187140032473632972439318957148111460778970657111815311337739187961505329263541598065291117293897972946934034865092827649163442122490313534598960265472135282933771616704521834063070260242462844910680248860329442683676514653646460426802124462051551841067685607519444995879037630200732525140167190807443321298633145370668426762076083414678500747350269847212123355835499743514143193834971027497782685413518196275708483754461658438031339068093713193171750727421562687153856520740137374527141834709410437853778696861753161910933112268031547794754193356168721627211449732656870515011123961836490781071268854753021105267973762373695950648251622651249378302256162890224553667803640763669684500279059158152915688110953937864656394409398190717398421181271161429105089306123952101051993898481434646828377801088290629313896569112297308269851480738144422310580609329016435314186034756938287818657253433897425519243124636098674039692899741727094008716687355596982413911259358824406615757441562927487750018965350881675760596886543317615836890136841921080438491282138181168465373259666483517674947697246485239557387795988192373234701410698530420929196019430325593811575053335976987547390797248938749855967627187337364445020939409950422314955774282697314176243249956687923405045210329892851106705309461214752753506585844717190618745350174403691148672237483891103005150144303825134371240652327689611751898208754523462254246404520039287135513036741874237341874504444464420891141114737380755709917163283095715194556964703947011641035080368680889403471128845091680138413508666382394232886121496030749315203257841713743392281080673823415969211492949881652335437425776295542864762481064291727993780432263653945181527089166467996611324204897931160197522016156060515493064245505091314375581843057305519060507872423016288704708176913026591575137319091805823161983494116284024498421142818093291829019799001324958211513201178933095423777519201028013388434953205702693307764895999553211258448683483726286285362529255099448613998857749344519618538169413064292323815778873188814499013373446772589173644696251347254617064319616379482787452266482448214457136341077925699480322880786314477360054108045007586490114566659389323629011937059884014950169757376168299070439522378939959159829803841082207135530094907659486376675405032176950457015986115466572233579476835700847452850814269964673860833557110178279791083938237314454254316336212526929944369351885684730649276104140231057773473791195735418654454697806733666994461249498690612021433631941655381561846705884865782509498710689675898707983913596868751204646408476367012218933934904658422738646444288052238109404798578563224434902866460010160933217269017333387801314473701213171413168451250140030370810014107217599942786770507595191158217928970521886288850659191006307469670932178217494664289267965163830784504348147323502117002137615079950144166006868122294329681126247089055080981446777852372894308497518429239269499935736411932777029626267358866826923549162194369905007540271085107447140718776197818608701278742686231931752075577892166760406427023086459334729907366853858808661795124427147916362670585954053289044954304006417842235980371744737916875970876415600608301634471764333895005232101778690635605430828205826156161743451637758915033487308924759292747746600768053342138328512638933874344917124122218661557904823960680856797276178006114919469796366100401866209171899213128085206610441615493787200329386747816942121708218581030571379906281323855270902885563720415358160614414007353423606945648659837080867486477747631945696277402856327735531044315555492534295656257797989930446435776360732441952453234443320707938127406666565476594280801929456002542930032231442557532310533722560693184462714474169817762937663333918127976015041079149235471961305050613083214166754137277014918622586859416821193769703823692234796587861902149580407737781315199773925682853614617210964229975766799285865372454567710004278677851078674803747358793570584731390203743727417722311873877431555527667078725727920373081775353256294330475943553234274566067322444021769084747643223050167275860651603986310056246097412207052739003095915554792661785923289517298480536675513996929555918707462271840068670776056653293921817371583055475260709457449602759825204490138940535194026365952922109185275243036439783128619892469088401013967687961106563218524401548973513882611102742299896989817120806539965154425536970527656528476563273039382481084016121231818270235809713990397824648746563610850592150145661170753491765944023413411067476343214536389611635745951373632669144304418106442795512194636119434727946989642172793154739409166344777208510521777010875557449194050249955008567814725575954313914563826271747075289721604234523111530202637158805554825264950948198133979716781192815329126409249932152810515763121416608434357899160735482507732477183094163280472058412256955800648135011219703345843747799929100064465276842579370309617676106502107428379995690759001879833035414715876615240023101382963154946638850495184553974918810858779242185507746749057054270078858715383318037189653634873063172153236407990335229169178608880081531689194589906436712564403081658717563767869277973093332706409192373381657061503939898343700876904053609377538489111574734415118589379507790611360274462590029021074648118835246391198735723050684929304572662943181405888494047795118134375143887319417451193850266723737751705204379327093034818042744735618142536293473395189295763810064352315356659092863980831765706997301348796722252313846176132878566465410769814169334915006730910591955548066097173254449289790455582874931236624550462671610180878181851883057924101730170441972970785861806513940985423369556916030145959545115468592976989318063047683838210625183552395181826039672601040186861701110570351384783789614021046257747900102569474692729924937586927139358139422631980214280078895979666211178272106656527810864666757319739110263389430314033032278430170618921459535120684460785604548198154330806868300866733430951583496237447750101535256749701367583012461745467196489239587405955666291659691568440526477483796811532958720998951957049791850906696305222198558726220761857609887308881491912905513832158805330981307670532632741288367895080599782802515309558381481975364437101855941436803714715489238258139303816756178382084438321706343733211689648690158574547018093197212633831720052658278213554965499577621537003015483192685624177679194748519245787409519174856580373986930294767783828444202326192105820925764272250560614963005945226726490240525443325506457459241214021562366504005491084643401502579444482451019100821445058414825560528973864649854171516817079761778918861861851107789596325592775932729289793147838734624804923384242224689546604335646395658361498752764844971992870358476605145541199135167073362224090639829431772405307320816369346838332899951200762259657709619729809777265848762501581594572481242784523986418117481162365935823912965010086606732015788489743722402400746708564783710265404927867348002230270866058798826837406563314919787525604935617816807086049068350480612741645583784880454749943468787635523932762616563094207460330685403927599534736707725210574370296153191230878019268598794749486268482141326972331180027062901749509189343907938472328270499788126321703280783038029876361683644848593858489118845641810268056702738454491807077706630108258182142508080294181772978553799050969241886042506499801422594532476089571657606681886991900096026024017122205977055162664999047887690197574097792228889154776469968534704544506405832992796068224492240739901802331577630934962599754491707319446184376086270414111813512376643542637730295159276484067122044838904934008939226083371913743244595042526292698705900055652846549018917642804197190695155548134788982733488516280454038587122196514380819162927193982535305498479228974637190502089117410700977106822107643878300854184784273247603284457341044470781146724328012614190018747427717995226897921640179504197002729594728235294416589466803323496733916073320563842031443531926941626052291985881177414526449499701247773419104883848677370867914973092799949103561160348741863947314512765118094396914386375576683714355630949677515035133296904410888239861913909039567279054047671082171394222428616919412044510576139764094264485283741195555310496069198644863830556377158597684610184583261157035586982911125996596146718105444538306729840279873910518681674530231654017513647988172636505514051023687793094605783225959783759855480468730288460212750764356139836992432396285117988921962202938930633664809586294196774137304728683246099722300473058351203781974501223572200566468912409096948629495372320680629569817500346306975347319684010147736691189436490583427126192626929078272506056659248307165204538904214626634966859592345872458026402428155690726587454391340970782837539769402487160203944596953181593222128901352693999033296466815002086642783922772552057429540889792420454337470630180590332532462328638257365005897898343816496752788180397369928075350225865283086134264695461856052925255287699838653312352279538776040057371533017885086759656005951658453828853380469047678479091738212497128556458760622808621001553079076841201081191716692101717000867326803982235479533525072786025171479198905338036289761763914872121338244741492527843651351901956950858338319720746891497885790509861962850812228974111907078467291295496790253482953272481216170823555208360866026309926435716862341389386742862002360535074653564019531379485455167170925686729698107249054193854932925943204763684862772178206612188370216218240848820468278616249545317045725731219947049171606132406395543668349692734287095764463935292671463564123189421149758937400801611414733848111099631315302513017219520315568854027717222360671701050994163493128702785735516075792323694300549199445324870269008895763087389537642145057584701444374697836896827742870950736772459897115681450947865636590051551864528619125494748419392731924165103388081037837924328643423312466694080387821380673163958391851108116762748175276338630022462523686876077867630008836453115626818453434155517929311962381729854139515442021456727986133712752668571240794075826515572518857683385853435754577001626446590759783217569965050883447042947656943136838166012204408754489264377433539339411489378196841435003905422355647549620762739060281415861522581597796875470615521207829569199613290259867935643023900112634359271286847100507293826750719253111461140071646617722220757548213027782152500526799082357354406506202308141578253325533375229033579443694207704972128198795975027676345596246285365280325006877321294641007231961235068882286579542626984290481395686292463058562055254008915077660973435923574028951351193676579224423110067396377450372935786892824617351625289436314357235347554216030208378099912037528350458399686098575376797479735444753016423662185823110110934211917074788682446060443654680808319579671269635123440127427931348556407467200799233311612624298213579625165105163285277880747726977559637003731322125981135902020044482532573055324633260125504734235756120329380789063325780021841055293918076906165893510253650220530966011574844957038839614124361448439340805130464608552963219526915053228941556683052057148704603681613736800518743252390511357344106497573593276693246759376896325424121361627152888957506122390313107085806060862067860804448591622676533001491377316837610485360538477758404837510376779065144222102164778668261850769477169786324979493433260438556778009889023701522711174766045326972554762971565207316584343632760151116017509586773985340380633254262155920088467166661605929542251427984229639923511300294631066763443016227987178013896212083877321835186693433119422582545224050533766294326135658232190321027714607476606091377441224934389079543825012526498705010010210833643590443784270315671584306817095285179516785299539520194927852468487727631447347739899968412294536071192371382582809645407321616691932824909997761354742839995630296862970477724980282227097554722412698138243369064487945732757610087695556466032097719002813469827452918795382126115986918209971933461587207292223072359664431384872798232193593961589085021095729401659928987909672566018756599828384538599136041595270075201275654150236761965750690632374965296383421007593362759068212482620344968905533887316717246944756218255275204800943209099878271112171816926138750658625492656047362346510889439040641674402816215398245336897408153349446179704831497909084383484412704809211424782052225719689384705103020196569863964883884607033978083469475748696812871924370055718890173538090279420280621264665493650227295905804784845841906909699203923354825160074624000650634314327667341678227267016147498303456626256979025099766069189098845459613548215501274885633789898195569864013799892199318160654680930101817137236826478810545827393826392211931790423801750918124358706834908719918217497102423903188733145191106648399290818921244304814388306355891680942084681982523377842873517580835709048513829423400632378537701302529489909144868749224900447000035846070516698636762219288042332345867180420278414500576082598803430922802012843879154918121737305485013400277937701541389066421878566732475695015313824956652578399347650616107207575276071277693887167203071087583473595040146163857756922405422904549120435958777757862668283338565235202351420902043341092227210161039066722063090176384222808000769856301642105074628463284943499435702614334345667783572180437060591252481942407047925449297485778837903182050189866498646724728668235994525938535884334649340664787409559592083518783240724260087559321845865323592222646989269179711694813938024316233282302301255976610988767437476053637574884824695442446518971025010782611913130957031969678545558218838787416070738026191762472840877734924597978253297327003756828146700210361589630534900494164322537975561568888785759448315340164012583319111642137809325382123448394075086875186821963010825397245062706005300749693417860820989948684990425281880473008159360432243554913796871545845768145173636652461852751193039380163827923700331472007182694008963105167945183864892358156030644334082863861040716394397408825838501326300658598268681596630362925837822957064849167781486632555541937040229278172576111491654901047077022750726912312178955674316971512079363044926582943217510370453369458752270014624218505134460946127167682335292653239532039239574639870656442723126083270245910040928266325522785126049089494597102037797019217771280626065462264455810327967555027206380195994374288288984374042447510542305843416499082612162209716866186437036558619101660150970193161500702331041389638516272745123659270461555031670265091706189194457234561624305546655626630226822894982100594020068424438131378602026423204880928776569234365531587208895416536457046654346520688058939564381753073955848981913065624774345167516033164853423135751274447974453367509321163874429488557966964849403048145420046156915604292101988066484852668100459478813534582078936398251501102596772905754298838314054660799957357977423349558257882793767958244180095577019553905389361056166319995947604139396749993233549167541281611522161293261874068408929269302288753793016052935195010757728079050620951644746455189589856202669433115455546335726821640775352348848700776254995139692410853998150580749688984461198221104780716225378600362628177195756345278612999634392346144316721754901381794443270521035179254538571401165933529116826426070214474810932529626772932656917077987741020293976230659124095505128481529349899618840137722344017596938676947718885581297167038923336684892596888687425249918480387362754016695449199279812037266570986074781991765169298211731345225700495722345517938551978355757726365156232422371923153139798967749332059995938636567660371344441634109236469765671955530640845156508495130028658178023066052704064536844936721545600190283465265607448355777195042399335566534585950948845129942857145622015753040508888920127839457734860157749343457814907707126605023694293282535184976787125047802175718080997942796903107639532825394051535546574283378106751034714360376157760369199732372979984283527011712302493946255246610739715541017973613796372696271425876757071912236529041280793382564510979768112515347995859812407897920035156739843505273151000589181085104666813699979070987292301463119594946277059342548589932227345805146040341638334749102396859876505296605395096821503334479321176083784377068280786486236362460234320616221488178455674079596295746316803095671328705488529037890443637403908478623894953197065718508859963942052413985959907286028455394234977257193850993249303916923121048281919399545859714582390148968401523880071053028438993028645520986908149137960752557799043483868021947293116551987745964503364129029271734258832280876058098612610121477159568199377635147512041332264573192454213753481518975218039339210746863597846872899462532116269604958126430891979230123398668884017493268778976070332540538106080289940320072384301208390272716247700273135455412045444312772046373359015363606090617255181671850095246863135721751254750710367927846200529320151286141147449882424600190732126215214188032398373756120395940238218794899017428252515651716277867516162704299185590166760651946087365417524365176013268969459355730654549423220938142223594771357480045419204982068201790100759914120335787246332721868038578125949825861938975621411798362377619627627055946915846853455195937930829278811874693232788821524699336121330821178625648407134107020280012793465403893728312396436117346965978617379005652574028827197793833776817037894551089335223556942123449642136273266814917165675917729131997629808154479307498834716008288254853609121190689732858692344306679838918383440081570014417481381984282218748951764200410471596961677209675834272443028869729895360853909390600945883050246679859594711065560229473077022986144817109286982784809001485098177744247780619162622221874122070017668031065409129603654882866957991862336231684047512657459612950741938748925558167552244283311024926943347949901491149913805502813389441698154176996919701307336609842040303281058261860611806471063913401369823295608908573188369574247376255223446686557876282993076519566739743673130013246116265637474256119252345798181650853615632555179739651892523047517596415978865427664673025099310770678798030825678722139451423697933102005469858474361927398523094485585657569323865027966740148160428892997861990426140894198089783594174097028695413389018475581417887787688477198384210484188926268490237984703801080132954765791511163441685887657036768735973006361323296192358940100815906100085419022589586788436725865915287962582853701150690777331254237599102724548529867102670538450428607322033215866485994279625479756107313927824636859668199474027630251293039025081456643575032223279827763525903131971275266780551688135582077927909223669486959846651107651649897900155955922864730538380752471323376522323037155840009108740677809676933093995118175604553909806587752565589259908841842174807920018800998953700821899498220094463937471698408282639862830405581915570445157781672906608673934564490530999677468392582216429452038989974196281024093426412796245970266039179874140294981335032639580436426315358299858522303263921583747591903252773631592126891993205595598892248163263354864008877609789735994715143355640773560691922402474285416640608530400144826926884395715639800798243163617642634387567044878031778767477443624494639938866519811567013671529257848312431432201968209083872767013613694847918626928188138445577118071944064848260390808780983115354767592428855538051736764560336469074820882174494869320599520856032643421702931160018473193600111940403987175816869264972272358112995752883433943261347593118080611026619139286594355485762843100439092866557743674293226154893127139274500581221084861906320367337022824728530983446318998685920813327358246640558479850757435916196565659252070631868966547483410041133133053404542551520604128021703487775917364049459241923558209314381479781824634463451954157211669682269983007308634860347672443102428321734980334262958796595609515553141269493031645777638353709754925250621420623945627398380560735278466994676889667085221929771891271965780362085134433843637501640473250937811650365481805291276066636572112426342924170656253616740083132072803452368613072545029562052059881603913167868420404444168078804179242514148750262351206551993031268431393700767785549025074070043974415369234458903142075971920039882787754052660536661791703128894396605070174921960579042020680202998928569902353170100928637962675370321539043638479168866902866788348816638671341426713951787555477251160112624533175636415929431684754490513423947486388762206146790922500397257613027536088962268370456398980102886743212052820152536662104155685342038041563325642146056222546261015395783024803673918997904367016762429335020617354510919144746577693836982006422863222246094298669814357072479999599905780650747992838286565508674832467682530022011504132373324004724474083635228522765071248098294939495391807422234398506448254418410323172565603882260986209151598060401693517580768521613268666983773856091319494156899634415543189971370067651760895818592769800101558362589080302454950240161135072934818922052753797432102316343508228734101288280536216643401957789967161247186556800588634648930946779771637928912660140871009553827447827435943543323906854714618370521354627683853646863926797727276789980160678658549286214783193362771714316362760624886782874350043133815806147424100967406805531576637638702978285708841423082672840858509035430913698251294381013896534403061681763587230878060540588016251145993658571222846723904236458908802994682848790374753988902608029310752887040690429251920694144944088732917149876756247977068862573658084740574153263187028835129131095887769331143450985425273958856135644169892036888247978460736255887484305164191097054053554243875875144202622017198302866837147260042241433050891373759628308658042626925897552082039173717835803600006135077007221769713356138613393295189701111844700222452098357643567832298795436356254765738430727077242838988011705826522376651588132433467536065861590815214968134663029898824505171501797385689597891444648292241054603354033235035507426704357687147722781187393310316327210479459635350049259101581942027443646754314156191384965971755765042282004801820095641610815748156820008892003099499768622761804132610156907206110030151229922114093307147399510044014368943217053659046852070993130278229106837170666175657029307339897145355873482299986438822348719805199064337574544348032616582572095015862023613203436120649677183229902193149396626299191922685251043977952636275561609263895684298861256773603688647109306967873548000723175374198816435568777333923079524820009691608824721413954486697410420872199325774242483572542452487284518858247608222216134922524968533821102498580856785044197713705250504738059670538317010598594813580741396127894973534626530041756954634103975718502888372931581515280986545082463673230304326245734347959814514654885816756405366685014594113208439343230995774058718113848210443311259450498830326757949228395841978213546915161946334135842000046630922123784597107322998013699416587498656992534934783845958154489505382994665710464188269710767195419955003913394972227729317362253795253889784124037693515538041195142882097643948629650999756008266518794723055401874545899809410317957343736784798918842242654581849938636856328631161657687573826091353201237851462057963393039292195414538498851870002987683442236122524568611579213326062099324542578522978361807931346624012206702349704138962284977348408282034547665873245118910907300796484926584818213178844618332976806979190657544646763388269128278967245069828071264595125100261968634728207262810463826965107631105901625567455760581744076241923853996542700286867585768454431931389151145891307575917480302260450383515110156172275106101436340650031092216384732772708912226936038148686082991905995647187105465606245054160134776537928303663284995509933274073662676497113346909617532562088529379946887799524509445446923512313974743849381457299318633150977220243803233139515736053892428079660662191896239215388868643793710642279358577994326380652473902481022239304238545560137728106238357683962063939034805265349869631250195078121219888886125356840858441129534730528316982317431767233771137370688345921127420324738056608652365642377496943529832774864399503346422279177852517916261515950909079911602543933776149908360003474787052314782390032382568746757285520541795104567750552911833386327549681313262707369443326948425620756256100230514307781695469620700229542181077660792070280179143128198098797044449927733772926296882649926406751104954607073553089613703188199336116134996254766729502995166425829486919040221431477838073331691332812723429988485290160988145016991737829771859594541172856235745299663714596931572889125797259790335572602832663010730076743329425423396075328682234730031079772224049185587645196627487378056603154936591316667054633373094751778662926170765043206137839137564482939240767791917603626631965772358778650350515789586857339819423109291381081112249602370950825488346706025743688963933725804485883277891692979151084829050264826390656068972287020300948046856873487985245449428794158339442666871445438994130571272210708781569927466136695356878586366721007112484146919125363382865826765314288249596030394183478651944857211602482372569053381843556916675451129712110237109708223153457042551709777648814526357938902924810503467676900482336891599501102146080423775491614415852790688664350856199400121308659353782272756283671402772991789178846089766349884469510051015539150896325143812450000681937636167523787288606527469980658929027857374516326922638860625282065578478487372798305523608320506955500241114775451184238970431427274208522347094897056165719887217908231851310188684957526972292997120650861168859787669232470103760298749849918489128929233884781187719878636096252520588152350846268133141397390566427389854933205115075040923531233869501560107556052776372841554057578402886885384489913671151639108533504163903679529518519267438172711462378817049790868329811705251852827430144842167710606488173617699779287863040255514856437136135683568849030433316885196591708078870650834394531638845019440112805268076858434369040503884421344768983928828740704001410958096918232989797450399286693541548878693424855167202793239208745296533394321008244993457770609886746816768668578532575748181482173110198471006357891873021220788840229342101898559807727598124580540733420229655802741976113769474650990803942026749401189456804008856397595773632299151735343852495112138081689422156587568881488698185972385834613364324860332610609144905173765825246880927709208887095176620033991965542390526852954811248604037083077981240662142092282970093026447287310134305199332646074155395847232369122914519309309197882544778390854421054157924313893068335195558204885848295645296559914263190833191204560633696723657520926439935232666743930197533962374380981509732798030050467999783189832079580422379889760150661030619504826655036729181437149157048260480369895687190184433880436992260527395155610327540224065496367968838583567126081910120164104728927637692302834980831594225746457254434249744934890862716776469531088601829466390587966606914037271202311568608848470435770357890394917705389129996046786042498365033923004284595637312302273387921862678250128592386552355462766019316157024750966440987653320671210642752231811369535507306409558401996119568562028386157177928511865238450711662619047822426826674740394834171447942202169114816424476593141671432672559568640838957576369662633555894278282083756601516973903982375210511152373560003441511218785182531004648969987186920632002671081664861640148102694518567640465360092453126345678511455442321321433941477822447767426310996337300068506610499738121738200290418533785026414246649408084175632292162534968993092733406995254067778223327893231564441075779025975261735718468357603024793028733598832856043405039577807685399979913547014160549694309635681856071175115417672059172912501650473366556034484157982937787525253298895463757168492544436705870399763851481054215912000670264347843341787123797169331178464497560225714572119804004386726186719605707168902810401174876770810277283497680524690925588530723659676992073409445007583259130356647456853667790732764034153313625056298699479330574671043931677678762628353636341821444389511144673866832719544436508226375373877151199555628288494767673488663644685995924582870320057746898797853385295439208156501191391245426800233944198343694205422278847886239087127062118529092379381776363046592111000560907215004711860805698489515248033826351770207701539222345574331561329292882195910743948086132429458423474235183574435118128278068503898187739089785583984499737352416786648436503235846392913243621054055371778241008604642293127824125291596419660697304486114474635620573593005209589165926686412082802610090600947413881955341820856416414309804397038186918837633270908148376239567556621791595401049256650174146160435652313730352266798687387720104317421688557163032247059204314689949367588577324720769916351034227089175333354845905491708267402015322221017455764763568664314349285965830905067190681872882006945094064484508586466225298229538787669765808507358430393850656459980329068901654364565727609365559226112837795790021014597394580141327474151835590175418544686362033603861857892274331459706385265344753302686728475793245874925554137345057455652566540228541148676399269296895593023427425676686449699675048924799557329149384891038568192863990799989937024513507727151121198772648320530481565886808289688103950936619854443158508099717069339677830713874444456367301065291444071225759741727406302917333995012758371673536682614189061213895507770497903732982310080410649846575982103288175210147923177667319166678547464438067486960961489025654968349096092006005393414176962143835359663664810954461300154055191997559542707402538500661105926010272002420232392302302937260328597925525237352117461975485615044202641406062362973817535225497443419017199866602399683839743085377511592165052550588950313552938529246770183346844066738825409334173079396686712618814688986689920364422288519501208972794964724491705750642628752313370848593403194724082806213176619255422989817329012653271973530744072588193217696490304818279658664932105424774937563129886116761772760334960878045570696608977087236653646914010209028120455814730477792678221832684785291203810277123310024363971548420678778776806042581608532633404617007373980186750574466330318320073646777741656678417772714744825537885862388596091398084989666918856237883364101393796350691406489391109831559673042924436589631231436631944003195867980503395544164075898141626367014414684936581831411263856296317530800504482001960778396912343512162441658026828845473730953801607901524023983268737841551604176465793770300874759976023082357626359125919663234367116950646954064458519020451272275355096409346410180414424153956749871029095746281317962129219731670868021023389297500190094666630058874365549063173220705446448722879607239329822869020690448705212484164695845672397229478354851096195249243198189110546485119618792606054353062236966334704337509530923099404361746833975382790023613804288125667246624759535906763724451124102703016366632860214713027893929911376606341076159470945578894393730417455956376393766842976783353769946503748793971544464605257323406340523250238712786780639733600825396093255113404324026081977255103783290961867214823894814666100866519751919506332875754842977912535632689847506564208022271585322872643820221664993035534639374240732520311610808950843544060019481567438762681186109595031705497525069606897925610974066668727901399868289059344545626832693892265207992296796606462762644108951396709098884400781978285861005699010506333184389774985933705298935330043359334062980713606916847484346285005479415425022159577785904456817222832363115907374867327086741542508855022895300268034255162772956893228040321386190440698052019165981592675501006558732273621470680551413433103279209828373903726826164553321152522829658589328396115715382445002048127723016822294151024858449938151647159986652347440806979247812538501614751724156332149100416406807193646400049754639796826585699939687559833194628333318625428861224927319432379697409614154600956885076576146162500257037582831650551875974737580526448261940849829293449195049097599177056644983045748656259700829470815333525129398144873835772148987627503025681228546806841475524368289044154679500017266323628750278214601308223271185336482630057937399743601840640301813332119747788819213772908724782949578729637835476421732919323844573939181323466251064369862230181981515978406811323640301106185650049163323960829964489015056508369965819886863558562944169243621447754470473156715591255094192177785267813577376817507674700553527885761003519973350728395732162393241134761520906281015428708213494571220333950055537852040228950383929393940025407170733872438827863879804515878402464585636278659081028183216534727022095802858335704191433171236785498063551050309684702209376461303818215510561706492271138085266561909147337069115219074619779365898251572230511168850113875981776098221710345509656515746824095035069259180218689802932321739693316093779410829169266848115958255116943660751362610604117030053615811103090612620083051348694133098031545452647899081627496187553455111436658252202592129649731269578931218626174504526752250936153814134132599867941352958046406571991245186428866186042468795629072035029325431885104306467323908827478367019959073176040093765945099469238688275384303153673475849254827548579143883822568253209741315274560354519135290993267539629965007388158802876948101744854626688434032738926031273747656215375250187308422943826273884232181987851541010714388587566589748453029168284843385043877097350609653141794433644521179204887858046204156985709225286894246646337971013304108363883432707167936804386443242926094955282726047511047436143881221142451221277682519809600183471990703290506197106954096856788243005455973643539128581762899941528717815676278053950219336048892192656157352207275557757638342471888878502670201342204210098323880341005909040640025170492201440161967388130502777926616368449764659450504347832456785104625277974204139741206579482274878453013610562105197870551246505663350651305042550772110145608293782210280304372017050109273355624892479518186140999341218640371520942484868194339344030506942849923156988875983942827943697935733605417972393156416525017594113131173693179060695111786931444123831901060363706853178692706875288898399412267302343145887930941191804051100770229737797497902375187349519676555195230733128120165095892777448317083893198477845477168775576165313479167884049218771115865780871906426899816669072071489065059031080549881221897940083604582113827752679461907049642109644639655400755676779391618395735486953012054771733422902365444704141564609460595217231844794998634516811145179666845038002757421301702011153076960911985775688674192437444939651332761118989539125044042578689785755935124476292939992862182349442975792455868817135263360115321292494867506494006381059888309346327909479009128532148481858130602242984577067680594601415586397100553103885431575848809690644342316668175179971094211077177809360439475916309040000364828147525621503466195072945483767923218144513299305574001416028409288465428696024746951380763072379716043368967968583416623985375489489829605009836029798456331595771698185766977209824085513438574030377254618159684455993995279292704357371422374690005612230588621642994593792918756009075454478178719646358322347628747309806173180909507461441860365006743079669502884630051509497307371784051826010404587958569320967944280473245685873795939138826249404368098495519535883927847181481795577242163939103247701980082610637362276200410359492464964006493822212554042864990662521736136901158514843705297408302635604682873976429574147848753598985466719017837154818161719960585204770229630827749080104530852393465200990483038216780998187462256460432917268843362203796537991177908898053700886789768892299873028191542867835503317285345480179995355752327631864629677744569959486882456259928592805284695321609393542329769583761897034829357625547580172877182717830601144571083784439654665069440048296217613241915362196928522270462213844087142935610407534040054382465402188163380929229916080530520727793838678574236597334049083519074027943152937795503487494166496951703160521761885299543222384782259158598548240703975161460652777046143515139630321718168857173080651242064145955859605906697710180784237971420942507938028911832173034377943477521006417635467396407692904359847664071204816349325157811002424452746764796038465433697174017230728631160817780534857350496465979946246092101486803475362323679758363857654522957531106592766729760216646743406940851169145313647614493239934507865514985206657808746287662480987689026760304594965968516607287464947944550383973015699747261619566985208201706395304951478674201997355052731331143356183671080464820903464330715635263740873413811643648910064428443555098005195372710721507552135257453014930661473450035702514909944162373072017611096475679850453323548872916593642398780246118356606175550083640179970289470848983652754987978994362430177928249878053890935883646748427933000714953205689346626833527317551225679812301234538094163030545184039864827558124573014455722032644563183584861517150921981570731771897191544125886745047158358601790890016147197390836768685388266058973510395652914012292210198589595503869681681743024575749605374776986416110784132438288104595272105808972519355977780216814303361161054919700489829783008110004114854303503770575683436910140228061648964253032480888361435905838882218997814302411488342505678346078135896141264016483083213711487290465129963827505394712331903426215250242965816001576276581741213247856897668006166718976543233904903844693560388324425715212566309464664739616600093887928237702756909522266044943964408050690937208132297588864849820827081735394347469505307740946841847931258957700519152444051622604674777748132797491396251608946514823144608964029733038329371553323132775915419860370087077374294212515298154595775136816219683902273737271665155414597452326914389851054128479583980628320375532665525847091803913226566628327036257115330407575485845201210817795887771394315526413422135644138714992429092410141851129200824731562869686272962713969143743438779902874331193694284278283068704388214473689409022370128697005221101855086486511718318148703317972629623317325984381341709922925601198951454907212444549492334931033982296954980639112798363500848430244957870478880747595435988691395776872030840142106311153910276040033056704546401023550613255195849049491734469330228403782080634520111790685371536625419664894204782592515998591866658433950029193214531616593945941238488813007933106553857015855794368986140484674388550199754279615552394523044756828860223046139455786527563365371417784038238533416679607759060152080417441289680504915499828165223874432008091248847504619562821495823557335542546442945539220117291695284800621002169119673947175251297786269996980701721294482911548928215881733962041777648839601198102286606989666779519660699853163784278513469281212165255647780268233037561783567567522544520162393802368009702388244458858289715375190120093441882803516388956786937000986533609494829873720847051957617915022236146146840537453276669353565110977163843752493043674749632599771982617176753006176945092509836740326770999645084188021004299383153288653651547301111041451227994513577585695445536448754283930168391945346412584182132049130138497650859199573715113787006568057282449712424344914840130926742514897111189743108867689414130118550786124637078910844314475250940241368642878060471910680950668253981706397313851499979569702036656130699023062168183373853780018716120989205683672176895079554539589504813971893457604672871664511062180673707528567171791089216871005441492018610457187766199216081868939136223355021507335251928651457414043413584044127813347052602440259529845310288064676663785313177136623016806594030842198166289091678851046568096617536040972630067996515948572071967749992558968171999754911441855715953037310718211367892764723385524201933518918672535124104218733935690123678011187996028507362042644267367211298936605463982698611544739074435529703800261823077644255635403659693598460032414834010194585356296177700052046040297696853778951953912538551498499481374456920198710146528611876803056444746034543279043013338182522691062835547562521017482110854985207005696282169296740301969549616414709907298950163969441221625464143431489275843364655877730272754000161679632542448174400265150186919809374608979973371593495981002946941616771386494866558338843624333518815059377566059680107639776943262108107116590276409427767405896154237760514531760694281587041731324628793611005308963099740964876215923825135853746977109410574902011759684743835781116162951836789065613407106472176563278486246384355970326973185791192808971338751798139145532408983193862925056963746344903414446286938447957543391129767913191646917533203114012406897202381967699852835821626358649008924106488537938468980459412824650057556050398873874951631772090143457883773108039430610547758582686650161205440989972530361264586336541034749692569894893853350723915052565550781678399511212100223148865079909749793373358910578385646080611984779281760861195037020898466662425879856389099039239382537804476620685933806560981260192424695257949414315999455573322085523270432604328098065276111917230173460755665945021258039125618362227277150459507919769459423924551265070058464607862055526850594882424343570458782694107505430607646558835643099745303461644029727852284056308233403470643537764267014146246637758817868280927018770702554348734940971746080462377737883400258135600608800198133956336309094344566118257939979562487433271159094113102104797836636660227973899094053919355526074548309437506352898392333045136300643832241058143550816380209371089771949259302021152485334420767291085886076760248448435166521961011882088055446217491359938921387127012616300450024616158240633828891496371125609840380270940171910651282339200517591990938094269390106976645360128637499285137493389715880174529962879639805556650870877284884974608303463521488113586191049476392522032227693963945221496964077952217230021274872144221639188127889430506233705747570791678129437057326219283072822284380756812069710485271087452397443682555304713759730239538926202999573117537949833562429575049051244631934605410147900881171115632203297576649226768423728084224249923448789316078522701094060885062807402986387149416000465929105333099984700896849558331899053357402338889150964410261294821303268425280724000740918605639362615342195645214102874007530501908858712426494656481708105910052066717596167141570079733254643045890072167423346140125553120594402718238064783039990778537453424098183197527451389424895378943532858008454779358671261111354819110387670260183358222131006567625938816659657858885972877465216180516483192274162406721817566229860224635058267614910817392111176975569057466642543367876007107702162362390783695133291482945098813042807786575768366204083399070632472930182236856658070553408968656593409509294056007517307863427229307980731726069840217525305110883609996610976545347553448159110535745596674043091496372164033860859302582917748162199087180020545116543865583020758286332221948041521174512510208358687436412103730439983624405334420357263103116270634592001242982280397810115261392977332153742394751491428224045441740911729151491122876767767625436396377450022263919513762059068130305427306918886226472730272753318991725335643981071168359197318239688917111078122106894159746015522833354448499673697503985238529336099776114801487871404819710572038818939703392518877151131535324479138502563465894198653106747160308488872202458236487909325547721035242797076418427889734545562224310488644317867957276369218936021468868806378434328432303845764718440320609417612926166642888597847528918782947466232085051569663266330312580876585794236621466205774914969361007173585502220187417852845053546926386925080495480532431244107723813506684035124575462982366396573243465006416515454653983498036614040021344306737498879886560871616299096003290290678120411708536579667906363744263943724227551889669382902458959062704217905653097346478577506903208546013957368945182959090820217490087841580224758544967863299071303599236159152392617927411307056855476911861070954153383282765439531548671073899274355671862265588942254689184814762733508388790451822162822695648281738372963805420732211110426343088683223740339735528622572282012357628819392272124572470302260902757693835609725370024662701665238723557685642315680211397246991138185528377666854442504463563140501572582503423388160816035093394166247027984385481303025559682400563980308845694825288458764506934303191496938358096964245083750854829293302465496713258433117728829866335847706938214394947128521824054117428998430356615887575836643381449760223733573299600045085623436522434478379674362055660486482354161015563997255942332928662897640385958204389131988787263053884718150406662116770648312632394683520566134478722310682180681231070544166733004391253645063659803994275241906885071257812331801929975623523414108418408494339157934164556048070345483959784334520643680287887752042711421919208239198347764145758368906168536693899912170575293623476115658196646912709049433886507741331726961768832455378908829738656642224326677070579576566733010726192139191854775885358220737954683678100793246788315162370249447187186469246311276833839420647794375235193432479929196688521667657086165720036781447503591279208707346240511925635419483199828772542823461508522152884020979001355855423971926763303669008664935023998261250519863820564179602743722063135570346031834647983985490703980043252553307684268285877547896746357953624958504551073521888012757311203016940500462912281595527902020159552549660150607200226726483443350861370863800666203758040714927102347501641608074627324864852564599159062692045310887208195178025876548943031911242883671955308351298550634552902701445084022888110441173282948930834665632080962363076679687333680482384944332992348016685352949555588063189516028411996972087961949328398758505702338525966120115902874575306735033660758878232274054337420001505655032911572404253889322540682269559415890704043065382806589367056673804955645328287794824947341257983489958330071017261559106066783052450442662245373511790443378157474816567994984581660153307551164975271325624539584750629070606797185138573461160400952486250980884811376709101921454241134998904832981921522337140264287511012816620763134677565960097762743020518818356231389990474957223739300777643054294715328780864473198823973287945603378085527976683460033500446858859833404041072159352771679485085219515527048070098927946722935077535586543688136558582238624526817237659765560120206251052485556256402205761559295475611974536717412583466422902130829186664249939760723563379437711967883871928850185834557610398947740887059562793425849876063446713908335040766910343084990788713122951109260639148046794636925787979379674859859614516564703422997306497913944251204878917567974335634700513392628029744897245428839572794420168823388955775646964262713861769981642398599669078333223527154560545611281136329521469608178139306030320545118746007787585967628982683911001802990737452085553937404308157485227693788495943733135799985288371545179276175060690328487398670453379507504198723579192709175508068956566166352570816226604510144725722860948284502829925492769153388401205376684810134616207324066602061332396436088199959843225199021267914564186355034232764503016633258063675609182630090268963937341307682742606103632443357140669210352148162909396724956022853240348729572388299323248133770842955963256032366546036303841617030226074957267200840870497812029519257847262357340029453576052883927288210485314602456593708519369123867575758129892488894600867095233318429858760740830192491580362778443123983633440988921255186498486890867636953786855376888001777578798399027236640803956672930860279312259608616568206496137763043742621090705176187776006586362075708242152038321016177083005052219833322054495892456968982929676781926147774233048895997681286559384937068586552434811607983734324521546905073475962397491213663154781514374361394596404153525089484312634358852888711978988909682989177345655860446420881141798197286081771457056636995357212668797057850472754954506694090528414847212814408028788677297560777155110344937643646416792261681948851707096883852079608446615945801560669998055414798813364151985449509867515462584583436139337360229715310813893303190325042988903661738838050748966169093113257297619164224138424443300392653202303009763629994527577895291232084596206602862186364203325798229119525515031485023659699050210410071915548702932396844949593222112903519519692704665199460266213427070112339001226331239056268926484907692031348407824205185041012068859880202221839205789013966281687364051637777161943005397270395307314877125147902505629867566105668053478863037574843539522473254376073580210698297244792047481177193021584523763309494496074343907544521325320665681916959794753173965062614094850344587415833565934046307728683574959585118128262097127291825437066342220293269349189522017575699037824071317913849063067065488391137944824179158680039812474792204206057793736612925659953001807577150775658759655797419516378932284044453745712668209414999026294582499861121158824336671603854649860591585145203919799572723602620155962051247924382028002245241747718462593184428456562448489302891158269559450675977831145576103983994325556887477523429017422910662529261185929514213256308829241530650112596927695465063248658454639576087518606894109038918862807768396726944193022674877843443321960647242084646759694562589294229817162531371775456820720482372421592033218355280245957651239424813567607126257021604020610533003732174298718597181406660279521848363315825038658906146004927776822379699157358993459932779647961436628298058172089797188669506058379821883930570393899893353737877460645814704506220627312134925308355611271743605571550570461395282605852789008108861243851253317955631933646813022325045406299228813662332874382333388551346359165809041052286756991521365634745145188880597700639240955683539321638324051745254830331541021507981561676854633063459874318036549494358463644792912609196710266587429778918574171564871995729553087228761609497352197249187193788737598282789547658237861562996468550791710231602299176318408789936022762468261332077496575392876849938190607472442852754499016796812334491323757459279893054812343482359619685292249552366117800805564973011696881630639867544483267804291086288083688259779395288841791461607739648588108531231580038631285753579389600076005958291164836804258930101113891824794144973995677785581929277512168981027338516970594135816898721693139753702634727710210009260122900313196076041991172029343645451498456281651081680686761869371949990798375050940285919905542751613603674742432461560471215684622532955131353683896860665540530603541696500073154227058535217929359989637162790718482612302857163981649765503113639933331070777567743695546358609382382031293792866461071057024208529869301214537736790464616341165481151703551533901797472513467738358802751547535799335875893129282094403520327174321657871747745539712281312062339265389626237187069769742933921030141115903403543154117070272279272467703762491674202093936639209126920501954282899934507737923031707808875838425081106763122936601233731278391292456040005507666659518980470444029116651150598710418592298572600877835231566079725887837384572640068685090952545141610958163944902127186586298979040375748518034171007039707122529536428343433207056325024303587308978433883356771586928817896826577128129548184128195381778653575384301393487078350193346150891829074588675019006164322420386771871860249095485059063753112619573731315917304165022079269817677580673123629305816626180997478651555240844114574417905948554734830219991102021470382966518154700499584676589548889357293935526234028387637822177319080025859430126285372824236873823860122406185620249786905538592507144670171367062848878456355350007793916411777643060018790059024396138614519056866660892264824148734437243948457225711780002420052065053501140254938773114583332852786695995186655585684059617984762286604931358096256970691105120226047858402525270637235843109113746334864282048561586047061645329431841697121875085841422996441393608357824298917284960759395462632037095103915859495448737309803722166760897870877195420668885234673446493630069747419123740722192247370730015838546939853778021269383643409544469647274876230734544810937928450017076961491346079711595026165404706569111949376118034166086814514273479446456576144387013239114075256575099075779661494878830275255423102373273748588851193557265974779392853389192561891204789914087164985717847520474596362956687226021023132679053572352478989268418008501832073589393319492635121781737368451927729639079335973495676413636106129613729537120151673632334661762648164612931999463378537983296723366506551798139600665491747597117227005337160733881641631653189648194357281437346318135985529897288052261757576239301340292008662027087534798293563158837750674082852468349033963900021331134332742647748855043382215900303916129011871664984773952729616546364126220069798221149532034411179292669960460263149421530569571055173427242560627074433157106659357082695088875665203214711204295234901790015313680972910763769629735957012331887073125267568736233052257668928981367009685413543023420671803298105567123487774388925808994883497367002564183260502294185063070568280262519917020863259236701698881001009682681667740743142229094205461054161848533843973259624049731230692401701956307084897176685906517027261453260284572593651525218732123169275904934923820079347889782960631202766935192054961911701268470093900134668152454162720772295704745674955454220580015314652964334243011416033981324771639379842343650979929936165505152348109388360621757256175814850252700850055471838397060145337909757715294487474125594784912254681109047592736071748110695309269939391778459857010474126400639799154922724678128053354822995836909471353896072668808967123768585617384424383965129032961356133640683285128352171177464865882325418275316756889770988052257561427494296436267517707469273964072082755895355537826202623261771783200250155609461030391384371987942365477523217417920565061476941744975343295088113732816823885618528987879690387721808127367869062967943247637953955846270729557336719708431597669973932373438330416513591881844810916876748816381936427766584126758423387500693302040820451950416438741461083063239877828131038923283362753824745710553846605303338189261816123149436192395513276874224929490652169243855635468069205187854665826461044044220999387926177808951667537970293160218078341657244682932408048327545164749990249955683644217846429144292829692041230276029640105289304012806357374953157755996497799004505994842285552566685738173781508336200956808697679159076040072291165024054221407051401529500675781325272344844138306098825871059918079475745053293004882912098269263208585541410938098975323004038576764073878819640802185605298484643555373084336652202060175139085061397672875154665187568850174923059560490444102153521907486986094281348543137815053641645157811638233168144099722475767124840591462172727267571606633643608888407749624936950697075647637198137965247333637639646750587951329766959137324082345601679285668185098384167857170037144058717155301165122724580510246457797623292564488421591803475168450477746456048315689417536737753902177042112748835142950450479353310011599014049318897006745504383340614082652153539704220770382532985221993867665558788430989054596790001790595172680929840505917828605608105866032009132592774431403180719102415955312458306043832328539354682833722396880042018998856617710636791770694877470329121938944139991908927030379054898436731588235363337257000039163021972577840135563517337832011124775418364269004051870008956444714815873059878694499257619493630101374825401255117792115161163376653014246624592653598149201359560244698286515955755716765594928083503183960931528383703018353886873997242270015989410204725657779502740251208346346300919028222924897514416633615008726952760624332994593464186384220843005514617062376104847839210096885443210326583962004663927439263821070446054080965584702766320641843752631540940504324233115072583424967055729302459347993095396350163805496831332419730605176380557546976976774730424523887450223877526466421540494122505021395498711547121543048514299554181023508589100727982836137803454869560031281781019697846306708782461025027700755452710401249822298289299726918489558891445838045525905335825615952022297403011855483325371126613389434415130846692276483905009822834711710358319385867478801264733058693153529522773366554069937953758838739410558463095150242940220362741712204051953613991454038505770426793900324646901386394473356635269790877398525497681179115046999011948104976641393563580551986267335423890522716229743338794311289996949472572519150970931793133917453381689975058175923597872189321350680699230515289262898708685687408068295967239057818058080923499739447770174618450719869254043892642471385316336279668136347904813020426906270300137428884566532088729735696756210349200320370071415056850965954205746686774521010264231571538832929990704574497459195852430478654088368302411516557530834581914469522614699662559589171819225061753671191370459719301787732302963329861046826114924758118500068887424368817671801750262874946657160781285577218191422968895826392057434486841278360288745775745698182857649282340367908266616287440045306050882818596952738677327203344303281556616656903185304025643551713702990426771900157624390374637412880143367082335020369095158891280721151408559701688707773552671765890049280004062384377327685795392184540122178324821660651462795867592888118366252558952290976824849096959648656542244503128749787529179707107339453065740001726452157320718081906082898447307896233637047391638609352336256442389530412851257433440160401801635229139929411656217950311437720820404858722453907696806397610762057379425447648297838717972723244808364334020159109859290707484322714655209788992555577093281566768014838239348109018748953847442685516596227828206312326912494804582101596267023138408115365181341025612083752245035271603152936133134517233787833990247425573263488376932804067085500422479989261270312766026481991073782562711176011817677831005563022535458496142011455452466902065631827998176502526421472126671046558496659179833147890024796489313151574528276795519227647915355698984663864764763596172910168261040700472804977909275744156039227317254768872076178344645859791511755641661704304547111583146183469003248130040869521701807114728786902179270670169678867335097265845519207945469122049921909413687455701844752662839008928377229601547830570718332882128234109046956163232622310239653721175509672588229919335027977414597202980505699489960265503101830282536199404829153094063773769017345631398791187361496231957130092911715910327202220040323147348516606786553439630985258101500196704767079328181145825490254345780995370215081841658318034239616723812661930235661250257721239956976062058047211586476428146373290364391905741791945945383521844130509100936604196889566414742873563770614479341383881903464097718333450025193073955095543138203637227852832970798609723522657272780538036874589295937037789613415817080273327434521612664865158100158443293797347827713173749694127043220754318733228131417953411471110437404972722458938580077733102256535826859785683282629052855120424924520602651896575549766551490005080025663605218403357883867050137998644330970594755413268076823898512319676904038383864805877694941012390664438158145348751059799694836703264597059156143082045941398895136296454154421294587476085385854702558295865561572520767590023260352914277536919745246656320283208984207619848368173997036337297789223396162268051719365721601102004162056248157085246528727272529517177732632473511804073657174447128537032454362608889191090306531079106472206794996063718700747456248886154912146278662402323180743000080232189602115789895453703032168737676215570567396207269091826097801355032619277940081601118148900397502777888609611966445194119677685479377808908235433146922875145253743775618404669736098809415719107155912506395014417943562157626325896727981337588118534634699515951495369716998796550114828813936083664603523343476438858886285606109702999791269504831037497206522384885390085955657061345640309621602235340070806865623684737623172664178448105210850837506409436178912557006072425411991627267275909347230120693428708582985172768913523461438431326599449034658189265437371729453223416933959523847341406145184582684564176467632005651252832120885856140401372619328648393158631220199935485143112961682506173381395417794932346017204904960832628547024277071041201833250095579477967697061989755056206247514696484603756679883680343110259273192398019496923149793213189351270109021795823560684561063111166503028881248698388300299346444023243634279466465861593833617779041493423998997559547700595783379158591527321187747361088870181150681878091339138537676196764230202091309793071994391480716233667158600641033362635358992846839711035124509798075369096557653917538679253758490931200467660034535598311376925802632180354479674354957022381114241230343898050473315243592743691190659154299924250929223582675572105868772729701990586660997501072420536662361649116990976698904214303585161533287856813247142014616389191750218289968412173379068873846975460026437942092770261235043631029589031915474282826447948516897802759599035282694246976047361503729398706764626635308141826580170393225648068902185113482099697066709979284951577979496174327413299088009610399831333536817695563468163015776201150588426096116720281800367913008144747743337171221598084681657870238674950993932803035879165816645596449483235501656601138944771102589462701898394930431731520156865129770379513650639101880083114462690523376015039115561512764822399236370840145041642686481604042732823273605214302215834749411365186376127830075990110916470112193361583470089526264403268390805690672294556962502186535498525627013682462870454894688102138801749126268141150748189308563320231187517202056440078101719473476772447833728963340833004752163903531939972993282777278451472253115076710413838248421055192427209228218283334118565318445211477899488793971386707373261866913934111369561793860097162791437914134153584222925929359591255594902503502840271923675748900995477135841174451620951946563917159528905089163756532889512785344800793413155347042193255494156878240112889610844276079740024441984863765004005046786688898323165751586820457952739150042987183149844293507987488255021256133527243261870138172528066778267883554008481170657584233348907731881957254105615031255144973282363774779170895581719503100518934941099563468418102252420705503977027851002301622518459535421511962644581229643299690069459526939494186379997725964835451591413715790039198135953061301250428497969244685830630889540929532898907530072425251887683543043940803214832499270967296737129944065841365317762479643943190299750301925697797987068356739098923194118866965271235732216381747797099786651139932421268036914441307490105262969616713178357194832078961448746564946566081189513395642293339497512717516551808032009716790211002182197377158459367974985465577827589747086303279715732874745720092283579145721547533511302455334423597776004391072697304159335455763682671397294134345848137590089794346657684113318997863150955300670360610832890863531110181190337492267871330182224749779856467774823633029759609958042720832298119792581657211340099407592000180508219575745197785815256782879949260870003419384342841653938073582986898567932167472068678077554992468277980222760689764201683598153935361991580121892965613801278944273346932469315965321366992674034923957494598826448075625326405017944636840084115677249417491731533886651938446101772105391697345842494896540409654175337003801888726285956637272566420194445599912645868069029600686260138869278085734271773459291614904796610691781517845761428962766621917247200598154584499347400841479233362734355115414314412726223011100457439689408604207209922383289609689828924078565800235652840052430361537386826624066188783646405707562260446575143656611775837668276450736585772776973494876349068259019975206590361428611716145716091199485155777288741023072725628081027557411651094984511474078515646781140410528993406838725763176805963648509161295260265137758000090623022713722386687975463411423019755163107333241734652062162353125446986776894183373738569197142806661274250599081903080318005156034232571762388415432464918335896143582608657898623252045472614920180171757962085573507866201479755981835163511867196737607756970435085419683070622501144680893695266815992758783867908935816708155875784684663997964178106768199729169870070098235711575347305497611632721617955643085084769108080296738078119571862997183164828167100023265437856587627878802652103286919300089901844493489374095198402622724217026897531156173909168615527381933734234943611838261781519019594030825007032646951304496859336559144781140530250672208031971057155683486947650881959360393856588722830169431246067935206927219809469876454173351414908781056708128632440185818934830505733429204803482316278360104619027108349751935019859394937836340562915592161378097338877956700177410157597282505684110198912362721568958674435528524483050721779016746379700939941449787198694164122112398283565634162358627654965130571264190416204931015702498743053680411475504013952170054800889820205239125895016317050689334179832953971969786438613690300298142756713072214582281492762251453677026637942518179191350770142714869813748805325172069504663280910683846207581937938476892261252435815847994025701121702244652102417041044789504711831004762339395376673792320315491847701350941761182698917516636443197593859623413959078313139583635252501334064138344736103822788202712147231078021966659902200785495472539556140221720620467051575080763259537154207928075045565531763163252676853225610187819913420619437733967264627190459909351947297420772313477202614357823338217525014564694287323691925977232923761231154917748054027308463540780643601123487237947370348752016094977933130067322411620194524993536731673773485384735194334770683910582980195496739418940625696806940716087044099201078788838556961759896857108256819139938611198047631265530987980916275904403534437454771794597481780178050332419452045062921492463718165989582629758081699564364742545717343762991072842757702477977182693916419261131477334688654965049161427089983322909309231890699368302308359575582710765112663905803003656380015043106308474994197146875326237820115592060603965595090374970298659780168387325155085917610303949258925670299045615739380081418165860812276736147986725820338187456727866241020380970570329777600899207220043114794415237790338316899673831908446466895170971575919750025198835937575873092134717927105354614237204982449553506390346433544632472149681582216206972003842956023883870574196090437445112029808883928994360918224361659145128070152453997210842180575074352838586348918209082117784583913215027382525543570308044232051245313394815943695091595569592189641963464226577084809681183383665959744125581769163246436914877731218664312325082658652920287471098285384146871252551463548435200947301031710930248685904250002382334941949064168755929897253665814607490998447721283445383485985942282958830797297592427732150336652852686114479075248196009991742763082108251526233825199557255380754368720587589936627712305909246406573824688985595858456436944027606556871014729101385598236345003164584124736681588132545005722142220636393463571772954975285022406930670356917902509736277614449222814854726206945743552196438601907743829704026322435936787844344913550039051408894185371022310298439849806073971172129378511723257687233929562907909016953854612017844500648564743567177307358310461838952149108348430170150897118924929017873174465410967125865913519889642087261295470340930670019561338748587819538024252343631361137077202958760888281150837290321248244075997464931766970380836098605640841824079717333311421430058292660182725516607654588400949775177299171005287731035671344385297970200597358648581051540188286249687199107052522050578189570766507151721098353539024144594032937083849409325177289913408489362962356970426925733050140836048519565121667836844971324442348631166226047613316127636414069879682335149029061610082444353552052071543241024324796661115067186522408163727627911611668910953241994648717601996398014240985255544203477342367835879640614302771603553432407038792546737821378317098217209413526854399005635091263035701068386366684091593204571887237620673717244540200614000343342989892848733346359546390500777143500938273133253751512122939159092144371061097357219183733316896068519563325867079585695489008905896752357384188811533504305157552020501446527734646979234683373793648637493401272045698453030750025927581309249152093171981124347701464690132234702641648829950481076788803220775460627741322060846586444489741870641675041321436976304369866177937214787447177250160050802068666482038378369478975484990210583873543442039839926382547719862714688245365874037818416321405808383537769074483901954761379886177042299210783034496650162302737386636324189521590883559580570925756496060754180239568172583941608460869158259399699429490697085076377547957546636429436747895151685366618461761580059418899690110829055333889159161311811025993355659751258126147859802836712324421567672443541020332973311365939088900911915370107841867323945603444912668969999796316313972332726188956967137518358245744766448671925436756084837083898780378666607349984788869883079625698145114646823804571962574061957715006261997289737248298500382493748385604864825673429213335919303702278857494717069105871767246493554216758238781023456023037488483636968932325534235502244583757855518819065691391473748139722491923328588183400142217014613965330066940636824134707383320725521542165042015647795263844120677904650139312341363273195147454873851154281234517654110838439272488410592950441573795080542344334597427682742597275904741717964588060252416646260079253013796346226068576288610711250915543607792163705848672391091321377009269105202589444520451637027436474564659514972406290934968226675816325276569888286895419525699953934890171765697074323166536345809728510080666084270594812893987679859284527300288709153675498021098453882592599074017069155029281295200421901482750943398028779223903063808500564833558204539060440075855111270635902516447879288389062274250870002029686531393089751910800638357973005226871959078705417897464412331360755640938736888908980141645661962816824438863060601450744312383800093428757690966830979731957783453875116630186774828779965250971520746299115969668410580928814772712245021413010843655673135523801516088513159759317831770915575223085375663764170381657474438254078040807779866523891504166965414291488945313259840995122292575870633806349738774270145460008176677002453882632889443551370182037697073226809516766321532441857499168260828487892790187155994803719206986084019603490483524791969503432855451248934845270723937193915279769791057952292078296973471757935369825629941689126459611674901748550773549250839903085143126260943351948132588022711758263004886998486064854029515907076223966567849005209356164344716301358037461719124287123455619480070081571847028667359903861029942902569292327050309879452776517435712442167972807878289646995866109191437828554691145926040137795743245129125822190445302127535512807466840079086075542567503364324306865877966012926713086737937631356215131485978431183741547182139813726917511607501324927228297261297966365539846660039565781887641269599192173273853493023502421183329639970537626704354682935294019315536585378442462743807149210152077628365227059650994804402635625322939119947232367281297215630828909670050024728790138959584912749921538002467476626707509763746199767080511196391691216634115270446481734952821933504236714264057188732641553494563959446697817914946194858970554703543019573436754032381792765403184946263340718870016007681742139340510718323606726771222247559679446699988373222588767235744276352714803633570184086307885075006328753715815914000711901717494405307948831740043682867303191700458877689367923316669785619868812110170238197855161004755101382822679074731188267149517282160273415122450931747885813226609420974700643318748275000256670652675633448452780763337755671755110214091662884692176546104828310271697658375496966779698550012469515968662405632273968719496218450198399250423248185257591613034857848726524022942634604450159565104430587837507571184367704351595517776858707936725042385537816741523888843972231611410302502059031110148582389483115582661182212728159073213818826543992086894055265762085322295390662022584411366772718705610141022455262477902311898623023128697079510567936978247186023172510636942054505169778512318158331768302376100328916051122138027863511435164011172844300144857249011985889099438129201994336578679912989987260797578286795637503598427880281696329651340803177634268317955879891136398230063796488560492251707364396293890531605645452431054362515893602331095111632494652300069043400131395709372541445095559284234990648478120278909913535416601080928624056538635209766207464532475747092390287845413861562736626791062631813362750552145299100256116841074092487821826208939027054185985885701968878995720554565429458018131131140467974032852615036426252614169922276716251733137381604551283926254334750995129061504452636972472579601376052096841276541410007533433145928394818879713688561840844920652033309885425556080137909095993532438499459330069929598241344713635802844856685047251522957872856674618694531926731346697573238586786656828996968342777127360887302954233659409667280184623595488256563874320883018742210696687920041215481597981638369051363063045829704700184271452141236307100486257610475569210612775407003122241398159174289419178573469956808551814723364879642406467182818995111294229277374576655972652032726710577766988271949953799096672229471612601297664914517679514811182250225743459387344782669521686831570780540553199397381905170004484612266809245417340170176174328785333267729114264367961214575673258702163276351601902066072276564867328824316118699271879133649043580780954901834614440422435154091009412709013499590307174684771764357427242607759503144460590146437877355730677616103288253388999992599646063109168741535630304704924919922937857726167531721909761834185653175889038914453514747575592195051356973537230662928731805843324473131454014425934105901542765310997879268860802008229281324740059007235280748002157652216629650811038365870365032607666768836350794433067576907809031547695912740613367271672532243555748344794790952550259073258124263764003387424017190902316686870857312452945144964722512235070897445563260367146314048412285071443434828154720207220442292405561289280329265440059757453714919061265647350431893810986884004984174181184139838077375926343546043103102278033350859520506176290883692918734991473220807582977124504801130779086210934546436716916303354343323762837269387755019754199889932786017946558109472801385346849900723506405289261200101235984567700374067644437935328195162877517233242753376835309743505793998880140863706940790419478734057190067480270780669996548932606775889953820596678879268168302759656924115815013569662189265382908830161314955428553486297562042487582766115424095689929020160346297038344130066771571376512978105481823977396992701552011074573732618766798248720573488516805823898111654515793808778294455242487300796862217705271354278378220131128152926243092368072115371146195317795004124136892248649087492800347352280067925930880815911686683762511050520933809182951836732866352763319877719194578977872430247445437616474353529356766754514633216521113287581108988288365488172753371719194264924130061685789557818121054114749740352750119541597665424217294120603600920778223150961782293758762246225288357157172496436491004450677079709358604384021163159435956805784260717763503229801142719063471839057275689422333777612872449194466834310766298741422366918092537469819106893276242650525461551115905191820810395059408245629886676248946913316327812985806977691953275523900390956217237892216031612749293812210564518485232778255142707337286443857499252467027470135099119408898273879856085485179539198106515955154368655360458200573040843211697369264285011787761040723905280020456137628823674119618167129042334914654940922273406974882858384496524314102611920935825180348986284725073086736963044414765747485899597424582861501870824664798170228732053483351460135913436403341466194510709665513447319352468083654900558383421847011995026582585787805945942753509656626652615822371669815922008687323210854297736065400006928661864818418855291031855974948806968068690316372812427903754685206877725298247183946979432416305408330749922845564664246945896119540722225921915319726384913569827848142293861219921959549898305716774303773942914856343542732707952009185427131742752121728282522857470745824605577271572015033410470633208120046211818197829318409127616158689714930743822383153293183714544362386331967280104118082348474579845692691068622234687947361394001726077106059712813482936606214293067978522847600347554475838380998503574097950656279226118935959664364491679963638631042334126228444841653535612225988347841334441578951795540004616551944508573071082219756215960734851211093235679976071311113379366754975222336847557373183621042257062245789953660588268057665631339908818313180737844569931158904105794455830963510043586081347173533759962170066597594768924629503674834387591600289218374040721778852726606063375156862099254819190131558592825591939989550253277394890442651873096319234661175041360809981632399303848485199129700364046779528637601016534093029677622819704269241880849776688655450823125853460602040255384008763303964142871231042049172427144736507389822193625102835336659025953482388551303857368772339586185161550786658606296042188968888853681513982724336711543695866448315861641800976275559017148239293382707753375003164843022583439303605984640716261698561882182811037903300941460270797746727242515440649462455547405693566028539146919304240128620790124003203344018431032278447878820469099733298738166472840990094961956172892434038003648127446782491784112499448179446393244964621938861938688273773555051263953522037265681523524997479523552885960357945545642653762674886646450706644052543333953372199662248450506210779829580335436876130802637152226986671246743338950470564300710959602073104675871085889997755674303203137216715214617502820510728565690029373007582607398992801502972784009544115039812596125080143830100329725452740795623300609714447426466861659429731174368407463336053635119829398742790775308080970300541165693873833351918973979113579473672064559891475782373453121750777657647744846875859914532623836765267819050908409148098198751958982843989671994759996971098398327526091898889339181553603787382010911399405147650989948892923920923603868962589200553195251466295528690472379460926363911244081865759419786561772086207841424031441822322482136899139264371114249176214751754824833655759460794991175934275146106279369398386677388788953394781740854225885383314896982763412927051545496378096408721829936561721683318729069292792248650771332822902862058784160160469820018727201898600536642326740865168979542659055794602038552534483834702514699944441625759057146093300203271492405328692322462737507366271967607454176913535488458969008470385591878757658651806575734714286270031636352793496707842292735308888350239262160147324788450307485660736140479012259317615525782548873087128082714463983696243983189950523764006672979731566878374800034067214473609720865945419872482435371787340993029632294474956376538513445339836502861686034196473370027833603064466833841021450225290994243914425689487756245208161783034866368377936270043785451942701619314545681063872035816419320716950461682523570926551358011755352032298573517572269079028224018101514216530940460894639839843984048720859306510993751304409485277130909667706555252628869014856934917501134084815849953254362705418290927342348503193662422525306217101413191026451627413638882231672567081866015383324074905272459656545219761820413989787062160948707364184934236329814766113175725875410906332537078980095541529803965867595843295292497691278170644207666857727983755421489233228905379904787184966687976731478796317424490109991991534888538153204493061024197930441977302962523296558937490190975329312689532238468953060369876646418327912846637713241022801689218415987901330889200928266108297787231966695107870243084772806169132005246324160151492564229444102913773662984491528692736445986035278510811412185120679333348900826262341651707585860867964319833308745118451633659771542877393886870456721677662479710100791017158101527623149907099523005675008438068338300077762809377810666538667825933516465067862590417055891991052072684085784534689759406063800202321961456744314937285458150108842419024454941182244580689835108813699407524129771620492715903556243606446610514684425501835000920265611594290817395469654756607900475329980875440054807275814283201043348453150244640895162524210896594594174340612468451809549269612009056105100881085051573084236590797385464961782366750851075413387861069955012692082130663386763503505018943828111958108930152497947112525966615559373255496346365940222088256602464214349343008262864644050683900247036666610964407628151044582212674801132865505458542990678975497488182077974823308331054875932967317526066025285948066526068998274472396827246683550822990901606832690408980635480593698438835181733222485485656902715534967120986754745214458954148147848792914486670420977655078914046701296374683405710195630807326748471348204639422089542704150524034118127754123584852080113672634728079631045642248913346955426755085390406705101454497530112322846253604489347041824410105240098417636077592430379809235709315351399763919328372966146237586746718254504500544796821614539159260955394535438141189567280803090905999651958878188329018095860465073449919984601982797877159754663103348476171250217506191284572437922318118024646088941082769350607015353853608761382636424756174465722844282154306361150917059392681993268452273896708356438907045793955496196897718737216052284664759275183550517080280761247898244818834985851258260531486868938295757937461200354519486020958115306712765730213599661623608701314595935602485106656123506171340076731727373970480864909761139459559493783290478968776237623036547541949719185281880847351810227962165701339327883267532588057200995709973710916410447321371313232044811422913700875468023931576027105120726299484694339185960677556968416429635826178311795964784830288267195771724968830775225235496282884085407729076479634984035702575290148116265829059233573038450273858179559138773242425840209394628599897691822537659426965041109816247249133380117665146481762527056455831706424964601333937226195160546020139625942549326453903138521479863991053553279444987477551911111031508766612343337456397470341281130590493680717918100204556749009206151104219271787321828341854552213241275724971895357809656700705290358444735540281017189349166852778069661932867180564015217103449622127295889322771510509750441517257541694729514098510934355788327150115022608497459666618551067264627524595173081006994212731199883963957643061948618521166853850454130402934670124738341552265986756069608101815896249647880036020049888686982782561881644772650134879865822627404003767132668411764028687529322969372140498875833970870365957105273896604331147063746945428016028282054316978983542567043842994146148296343127239304923972467299248431031135619490905467066627480435305622661848963579265654584469576771818338827389198453809656649749829958904825268883266683270972537627253788480859731647580465593654377838626710447609634146219756126211194181071179194522120004018269919030447069708600570988728710208543350674060346132581032576818469853929277648952154942091021885481552872295237933444510079883991315281523148184998351472185763668600633889220201055342618465589922804754500091007260528188166349474853137706733123266048493385124894920170315821338216019558779131535997431254820436949375014028461830437592936089659917786678960428418690811774597448282867058765824009585985868179923115637372725620300431109737673745017729032042768427446623160187272847214528821751766491952769607028849486973857840819462149878452358537361963027679302039750971007689147372618168660370902728054585866255176363509349628771404771927655267185836641909480472431463109575857431220648795296463257594393851934690124475843799744207172940565766624547209050487635886058978869528550115479950231920874961999430560266949633784463500513178295149185049915395372158517570870999805660805218509458315764060600733842679383652584128805462079132299941308326930096402253273381243538873479989493843135738701786839058469907577441289020047478299929416122036361130034224180071205164460653280929071955601955435610095972325045633211634673298802361585892036104904045694454666783467342716848096083488677377443372308627646046404116256085503918951316373375845535818383613797878826785001371710827634839861668414919375486520787137918598988893404347573692391746708600690378169224631948576671045761005142014368587516831477043464390225642802568092707697681729412014782177338105215897339330707769050654887613750944215868794492628795119753445388417595180850124832360748531474082544971092958203330849300518312348230500608068267420999446514550261241391820788896253942271966949380518358310735440949708481596409668882345486711040040658209574959530342026030480212266418847707789377598766620964561792567953595072956626231310781045896652492460500322147073931515632245691065218533889893361758177219721291654169054385828694468448562208676121874850212037460576071940690567025084319275527293675852597875084192025334547423440432708523586964107850671281346354077244507663007166425003966444540886425410590644239745928018081852179193341713116994741665011254573728672665124414945814982273880798761000890029646053428840516311471677754482255633722584334573663924697706929478123548795577063677289396473852749820665660925651237190815915520342829096500994182241327540766769770443004944616222340748093407884588198993610958514634900139303127584481376423639433891776930449484909971343468320288717059878441990232195685544559866693704421662864845428053572168998784925383298045197127608665367476957701046466917473612144248961675153644857866616062808637632053291384142795112745400869468272117215198707269123695042005487451991603481501652329508739136050431395437530457390364886643118159745424152629311920730759398246124753587555157388202368587615323342529264512325051717211527545132373177449109804254540677847512706915892715277393279722378291647355897619323972881478647800061011936250273102887078360556611081193766099353209537596822750784430238094768063342546859408926524108874851727673677570884982412878322784537697722036320656375994925980800606050096949177953861220316528389660798885778312979843462680050845687140560606191339767539699708902388858335943448059060151439757713738679190770463292166649651053755603235068229977959581495752157117873228318162769687004688199484761802228020992890999519462552429254774965157128623060293128165462622891086397532547557476848569955709687497871806502578518557734888451801943003541183103804186975980122944621776127116561683741195007212826612104038215046042640856293764513508899101961392076940025524984981515405638146518779170174076280253480615358052086334297104494533084023880223647516471170213658518447097954150549969717765460127081950105611468928633795921605459624421909735012578824963059586012817980658769247231815363197501272740513083839923966371439610669025199222582451897157458133925776069980961901070048300599689659650725741228816274344572238494400360909353971708121934670060887005697941198946610017218164869617051238706475563993985015316349621962757096876872500353976475278898318548444363874753846130840767452979542160678797591955932709968625240204243346718238817582572639389831320890927404569646952790640889634098741141141237143660240022868860835719003216813956516048420406413091328875884012698762380027556057326951827884362685435626897005116698783060923182717927489019291491650446279073813362999323440021169742368004689296699838390045606042313852267043815407036598767796251600219099628672554886941622142820752283455501047890042212320615846294483656531898859057924604503625115384153545447993469423778891641253573304844789112905915318045317647277542510132041011362988323032259010485692156421908705585296406487340222656511529287359138865182663528294429978372149652847927058728889446618649899386939281266476194773770600591314738983570560460268217320706945320129533997592783048090584396258806161927502416838009813522911673396639132408484795115631957136593150960534368031100497108980273208156028565584000859296040016827355629431181590185568323305993150310556648328969075611337935580203050896877327256015702327766453607482170920209244292818749289887490853990684912446981839881531591067190999032305780206381369244895359894544487384360136809795779671833857646266570434259387094971868779241949107334783829634963306982324484518862561992514564922052134662701486780124128017523380778337100447338586176282704276513214495546107748124940452300954155726598931761310392989745506688173446686650467706594896248957315950289887690506410194805811709148992988657684332727413888870609991428145478132167895022615817736190141863924473035904587935503853230335608080827669012352044031406981840570044293689459907386175012105983269719556610284716532288710133234955621954108883155287324218580918475329450712200613052623495001515677929866941323448799216324357508423008257935190161190596395369688396896766386232295527639584220842125243796162947313130338261313593809979101364958132561107315907696862305234708248057302771654142327005140577190262046671812989690168286859536990861470875061124603915248150322721128597542893146086460051234118411880316801364928751763836871125028179064566133884461356551495080593910899806483038061818655500663791522952824417068928787335378675292844780270119575670628195959392963809894553458989831995306617473799596971087116861077825599630223374370458626155024742652894040959897062935438014968158716890626592851880224666260261259272471239261963545716256582056318882048692301548525383751197473431981778593459873828800325000114200766242562439600646300076446105776755118010731168105973984826613916985780126130708662265148816588940893527597038288948280849569822178964079811823545419477880509493001665234144928218951924148334420478063648728480281339910115160578130721891046683507976403833763560692598352838148594109313242951600882828900471369270194574003713362637480636118580012396489444887681811976883584664294492744654461809004863660617012963029012001248065074609289808568932402439268766456153034846540633112565396642445789820767699390875759752657293199049598922531845970443492236904906198315002870075602638634287498768379551091189480654309048620129946217490735567001399951090163755244722859877800632802835663242542252731835222207581366052332944186149923728364502002588747665428369091829173427582308246267335829152851779509800860172880908187113235414412977238066906811564869886788580599802979215548424553386904820112775248843009753104413217750694762037871616162169780641906337311753166142617149435930604493345795909418848154827049811263970757568510247545044420584694379062058476466352276081949865751783087122505775539668692533138462595415108240771645844772204078661487431246381658305461779753341481788016096687871421278138480210399839230876701010354373286140497536582583876018502513632609742538608193906409576861756258235003158748698897287563828545139011735688002980142583667895179477352854253780152339399383033413694898529568096699180925195369659090763345031890358066921552204794596904982355844627172425410934348687887454822975167559336863254009495717138040809037154169545461414429275291602525224239748138833741929072524399883195488479896649988451544907834905580559141258181599725650331414318690917373235560955135644117436254013069007606985045332624936817949807318440852466575540673702799482033586483671689556196069841013714220907135956743406243887798310863302368886497653508639165364972235725456578312520272707692088615742564942297662903359419509479871006890876385724317221517867866876097139730198390808170550552742151774518160915352173358365915517369179470444835460313604207521199482901794035067575586225713903698544004097439848558289833733673387143153577114172473502156244842511826640859576068002334951372439171234447427885174482070631817185804549283447772966927519094232326022546300442833441116411697631764100840612669516439900359602872609975149713688842498416360203426550302027079277610463645617720230044298236183024968280862893505773382481177888027455509811483201522033051312310135941323904210591022845502339666032462763143978670248478637356644769652487369722988397689197976267772721729774894578337582074218248400143700749932162355108617732647942566737532005403601245202772019014964160931035919369962235749027739166676983899263002928809552241885296556672143033476201238384114262296528047789156555516833257935615696362129823602335307288592371740809508710645214747533813733835466881799998965886473176940166053807483996518967814763869804429929945924021945234874986205242680664554227751490439242234410559208665591092552184817456240452571713369391976584533553052046187540902759770761936931884791589787159330399398499456700894919356995111895873640874731667384390058213035244464219325318889228894123839116113407484473161416025131990225625730754067559382940971195128661459835035602753081152151406875654571627811209938545096095546954806734296559834656074741912350232016973991605417799860456491129698222290740679878218414579647936594854727862361013621121082302452062119647082692819721489144420160746487024035094369739080066668893146651810480801406147801644908078242039194523534751507335568836202444034840212749834548817419099690032414560873605944918151028007451640693766949715550252367995849701975234424628415532681051742644736153380476455813531281195021032492773515046566247176952289951902071364568572518483403031960456710040046773407306061426357397261203331875392591011346672386527556417614435681771095550596463244256741479034994995701610548340035764143692703342510611143859856235027219520450227936963013340304376091648392961074387063053425722021110939424633410629600427610990279378298199753511191906251231101104123897434552195710542804308919724393312664068493463012317975528419549655285576246324520949588616887686773819644132196604428286780749527090349058937690676045798538244991500409733687304455107513331124158785325500897835540708153981828960387901626503933649406263935518797825420974365924409846533845136128760083373109874675016370139295220130718736585521233998206533817891114799867679838279505804044364714737786217111125687503360758569543448645632206595360447001014221881694554245207524801175333698234622540357349450028636310757172912863803864669902970554443048927812598457823914296217686220308412023063557130810771502699551362497779536956489898036996031804075268046021992805015789286013573710154178398437316836348069183805289719693527121464579176577387856646112066563357472493881893718057068890317243516656351473116583196973371133513862711868034683450818169603495424443036099639753040483840106286831684047548429131535623387822987800224806826881211082240905456985451036170747281471267208124087491130461576466191094880852379662882470045696119179991574398661954360873443971137032848853164714516424125015923734460854761702658854000091321143208993563038148721401564351113528851459421912221787587142708435867447086104080231826901211538290576556656062254916538361348998070426059103570228420820928912112712834791620168710821948354231909187913884296323584295656798524050254171473058519826514857955461168064251274046370898097071304486693165007756048883671755879471034901469018681565942334521922400945856175069147383678743718196564694653662995618541797477906761572941499623543806931496291703245661419105066142973899687248954982099486254540618662239826371792885722490658360878581495593926607596408980208105186849734687970959555892537788320399252725458322267657547725978594003192376582945733880401109071450562880764453552340281186366039710602072985088457953390993555667835206803187861769309481246914017785456165576994829630461750035779552520070173666626692572983497597445931069546434210580600458796054742271353946665126909442668885300877176654621220141734042508850764984532463848303427705631805076115219877739544127438642838352399343214021167374864484005971425072949174072579205204966924176030912035111836647958272577239319660968307844003867838903226318609639410675230484436100174624625965583809307166077289288976724047042127657361600473587701003036460092881160252222116977227112465886715204774418503327204068815084536834631031929977549152356487807378480405346077944314770994895139806244048796634778545302760733716656077157810257844255004859378192630645361327913179285773397274011091371322777949607926137417757493296680234977494500485180658319414657182057951534371479936135351019159463548219290085123188406394048363180892479914319251536098079217203341871895813636345523215512836808048080594553035687116216084169734880878157990904136370201804212972166931903501234088839132517124937410713662907053812102244982331387233076217067430741062980936839699606498291861369993178329937265895415103650368466487730492635186695318886050593617616084743362416252475704989786896484035786039271794139882594194566723504884036955182860590719415078930866962621220169694453100342606039550785329728331693077293027646898437698028419152567379973265082844240986813585747573340591481416853278837011031132761975353980742806855415723704849792893013672978984491839111811921422766391588031021312983005439465493581215693473521298534885555609527474532112353687736116198695082882803899199327828110255471253175617229263506104025158876945569081805475008833481511103013773832012390026825554274652897635769270811601961515448669788353014700846738202453321958868445651849477272845801930237621359478499479928246554863010353424237556554608638858853874514517051179488844914582059585492041984321635204153441041532222145580141440527793274356355320730163007633068430027880893335687122366826115247900203889241146636332606488376715744714560969265210484729133981870680343894108785823317711714016821556288887342431256630811026257909582886753597348846965984130440993674343581148863293232912629962655858380630310314294122235411679699034529486369708486323085277204730033711747975817921522982922492801070771213628253472799747093469126241845746353108851549114286106674818629247187440779976181797525855755484019138081842028427880809317587665414053680250350030117337156188455410345327649488117807511171341453432864111510977815915355028810362568850421644368100629693446654927449287073800925132734768985481201356793733573091509903261485832078054642603289444819373202313569925364798728516458770036254126790585362773648830103635058100020512604085502310418000106834110559087111473784699778769432453207498350451530258878709091321404287382515248228540703755019484262912252257297493394559683520327531060257587584823921813948552375896923174291792847036399972662134096776632557962604763436694817109391361302413000679659981642062117343873657907976212128201671507081764712424336890088529216537830523205748052527330897849595682604194150647941476432665950313847617595138114035624923313602674499765022363358077397416687138744184165285430036493345392444038776457691196169381043998730936276965892346907188509234006312575468686350837448268953487506351489270648846814212725320970769307189514114201344283945909352713409638673528308383124917404254224060787270334736331556392609799912993710688686263311166268807522315168024301382741255978368895304593075262150472356694104170704724755865342560601009932044104573679527719031344599936967518942490369170709975497832086152261178575186304566428853366240537208020076369628510360458718037423174704960752368754453603232417989190192101522312028735583748994176351078983895970130025426433810406424923635748127562389388275283666983490104998563024243607288856268032092914399452740533173024590251218839601759361476841601569486196078880190196508328490588029978970776860183785204277058532157044618883611368472351772715517902856642816798434301199755528103855187249974846760051501556547592268518518392422788612418347202582792144277522163606980997331634836491959662986942952344082668354013886978959504888273730360791917974679508802203316452439818262808798855474548829077362021203658075844807147556431290428999095224354998077353520113750052912780519783930795919076354420313688609240051486281116708814552059468664718705464627898147555485822557382748165559181961335436673909365475911628435530437320062912594103116487512540035213709170949468512146647778818692834164416853871634684467954093531704533687175043265482055100101343386302993022205320263566417034406057728443790351220254913780385821070681629605071840922728651935725165323239001838797910420132018446047184195089991019516677639794669812305445054911786012442895496262764035124878293654088966141214396086094805268813422070454693506730144815079069567130610035002877781227337334676283153399156828324055642489520251570039381897342524011082723446863696760222299987676410296573423650588441774753036283548627138886407312581028654703239114344414368492268036991853466587044359184466800594751455715070534097962470087586940516216170840151359968381067244220996546956080163156944099088101538808663399136303629235129563730141327641187340518994620627549721621639105309322502589071696053157198475251935758634945007204058613795547013222409816712025967266326174253818235329470223566251531709581358436572703219373703677047414822894574677353624763734859837646026684917370839453683305407827280580778595138421467429235169023677632777478623120023948692110907011143988300778133568228314045712030278524044956591562803748001347040929100316262000505964570558285157923414888397833570861074752273280669631749830696153009537635717432256980851933534799296554844566126374551524956148556432914325836806458999998861630614556423345919572768892680959973528862069369265455745202583692731928325941493607277131719228182929412091678351559431467290179927815556559566929713903814686269044809262451689388396809212544249660008455193610205963550670699006280029999313837666817647971728547901277816271387663339845893639385979298712230553957921417149871870365855262306096496222252819422849602312401337272126185701845425517028387826315858916485437955750580963740005796912071444918802343845487019166368248519685678272376685086051826104619677586137121620410813833918243565893599823471299298184262873362500063775235448159874395147351314205593285086193161713670718628787897370834324918587920025624376707373565123203461146773054202723593277849564879235951389623219831247434313582359949531241394282524750423517398816932215041074911020279088252321568849870147221626495644399622215501255716791535560775628992192555581064679566884272837531808589056926632185681384062830199648787303817153059651814102241669697492600671940878461742299225924830467608188161484637421585599399959608769338936238566504865214076613136064862350555113087619441794778540017836453289922856896083615194518429057868985354314908974096412776538278023736398269399535360384217285815555984681325095398640141355694893115799470628505922077939503421430414865308304480489092605494415200828117497138945541325921577124543639040312600253804991648169871848159122333449059035075906955135337835684811734617595678798046851843644702834510390414337223518437830181768643662630961849200502538542820232767316035351246603492499104508524445902173948578617381170942448801941289945240284488038054196268256267361153623547143150287066348014955603923631176457133273405928010870287720755668804290957233140719694666219560141789756550292050143181891795439845315393482489964920232356259744966661784231759458273657824135394825961133659817038574199390827491439835774412188736257953295625496667670446356691645272056352961346070997216424193061999224288303836143008846530682116613125863884315625986577233246626609594358945318617845216835538886585251315350246544111696564688517031598859389479409638037218431701442874726521106636233657836363747576996856205736622219291458151708495512580683941280971096022948476418427551977329926799910762514656460933266216750908432441296450689337033983336569935937516293582645743067927492498598817317256852659433639343987112476711854574030033578900456187179966534555606107277923457967081051431332560313248869188258102913990622178634637918112946138779845135473187925318397557455428721643886708437620713722137429342129959378098581889368724161379561685887836244297531718724881152514795048356055435681162325088616629341065833310471993304469389229843602934502682892148270549380027272667019979469898788448728502466377367413954358916261265044110582055196395252883134654824078759411735741039029112553374184626520601058803822009228990330189562377697433534556906003395057655507599986839695183382202031102692073740873712107631006994474991486260977273794707808645702718662089845675744936483921806973132050026501007964656421066005620008905974806564502759315048921982588087674793923319162701144026156823816668253431210793903018969764895842224895876489783146496401789099571999709589144194156158197590208647882771136222861524803178065103859222322917506924186778906757430412242025385809131472040138501872593117590188181672573378919745690841463149469653005181510403982910477894918228850530742886867685705543548596178968258701206264604905351612334683435017295909603108970109035180605144570662955978677338134247706986748803300520350998095980279255702933255867690683227371745732633056125943568076496900225834911863448524008759229744329590057062170742764008230603825622845816479744868373146874775536541765743808797687991853247453183160778785443322431375648924362451957997645071898835120000044406333237387830262002615159433734200703846237178143221596288114332955257005390132589312450006066542040906229050351565626203007228861153272661150457318190292777979525246262562673122230586059233341576492206804726583719451551362121915333149249887138852842170896551995731295321208095743999867364383599251544694578108230534698355251145063330827988311354527241501246954464169532533337884940956843523095224907585404507815379592999505200360268247906167058394926866626365149852056298994205274712477075060043596544905500020212555289398403506202354282992991816873092356701942702709815008528870621298160189276711461469487558994746226461054379240144214282657612547459377524303514169849102757169832189738226232531483341077371738996107214269532184253795787391081767951927899605159287224266192397241819207530530669280489823004336748346836190503971073005730703530739476282200290508832957222663679203371079225996458892592137170901537915035787798506386519881755093731579199610732585328049144556837095966269670884041198835894419083399197063637599872409609076598829351333502764152969539803783954663722146533086747078443316831640789508826501194894693899313896748839322081960162443293981768817789645292812593107521372315089465762569423722862942371002040145580781434821653820317107035932304455529602368788254131792927775972053378190830224858259408744904537345425562553313635982318289821157325218430160542868014695866692956614732386267591553935742623321292789319738642923314779501705533177476489928826886268045911170401721768037507629138068809863145206088460996097107675179287614009081022985947054135973907929837188413709307279987468572774208469540455019729405873583249745772642609173151018864647086616072269260155591445099869140138180493711693951519686063621190934308684504690735516761681774442568616225429418474160081512587363277229368381264210920068068775665765974272994198027018281635775978988375801653310782079929431182186090106580555004316376951589699602146826373726210187348911276884554256871593294118174958336783029149021319932396824927653207945142604454409780066301611582826384048372908716354632316963254917654457349917833447491174856571737403903306758206806268126614337637794239459397453382959015292929015763187558831503382949174957124813848643170522269207898791216712793243609246523128746453838283179042392245699004643090255038654467855726768722659466376733078231848411846606621154927688750279194259054301244218680968999966194069822614329051925020659714123400774831652008346257444635516327267443737123627069419540295477447733192846888240799615497201593224433238364447516744571025471588950350054003600216143078865732799973958896307942349399127742392404566165414679560678543521870524943351800855658565325873326254503736592909961507601287464627975052254671962236324995750021067742350269459109297713014466105585934717844742951035255298458610268407443682895682955681650230412590039222275472019063566449212235084557623795546914519297298087095888165451062911348426546521908327059571389284917843084271159692822468474062231773586899821004313778022714197726468532608443997812144666887296573642285757373653144661287496575562513109856518605760616755740580650410436093935675024935940431327376442328846970432757889159798691138228770112104271311680506151540930021449492420733145812206552071720285441265594979785369918558964249183156330170523321191571297265116177813821726019743541822557246347826158669767636625275760874243804342122222549683911343575298499066169318299598912583057050237520505578804309075862645659949108839728701972388514697552641892531559845640681038430421217106893648202755833850353315247893573361798283222524141977408048927074117038974658306223228137456849433797724865260391602186847287677944916684672075536768337248482596174502345199212152348296563600353974485688085887073537907225763140324750382531340214785730017198032399454372804821573040424960873572581029086495602106853970015488549034686243176624503823217211940463170820923037967708928804722727988738999569730469062968801427379854487483838998868780174445113701997573311431059326596952453834212344707194431050246817486922236084112001788057578109525118279225837531297903193444735348118891652976099575150627383102216542919694682918213099506223759675346086101976300078582586090053796715540431286934626443010254029310923362215898073155510509518807817080418249898757525836124447767197877472897908510355604658267774414250623388279920712393991787261332087965817130568048832651634568733991013253926069236829447605501090713428706021613587290333847318308224538846143715201486841853249561761414498110082207291258639255275404894521526651561015695582627337789560236389786525032817422950088774846859009350948774202107331123590508650741485066032207733244257779779465141859246820238365172852455957549704546348792664410787303134818128189851607151539532108464112550131375030063688413835605135504477039152593249533698164179695565080103454416226592012234981945773558689888100197515745110954254851776827648531176098840515425155889846169050134495499544785786864219947791750674874697293082094860757923211118771802652611964787621075844105703327909724251190353861662706309985631476939036203753167968416913509349567300527834369423943674949168936072391676671884240671470066721759597867405102120344850444688775877081709257185987274158940404937411729460586345885588448275632889057635650043636743774216913901296134065945823492124051243203139647595612874351290955371521193005589903646798564417609499334184262820667331647952353416518839504717584292726453219796100924428457411772299347898684077164811914112565273800019359083064545901478848888640030775006610852160249059021867330360805265242278890184179347096271042684552190128674856092400081223870918221386178613230043973268397094971542505415833927225725644196765806145997328091820897616261594464842614850072007896652447666680082555480138428955869381652403596882645165730572204866707145299604667689428903685859531120769829677600456950719264233963294502098777308712974576921575078866257333645971176761679645879999022669357559209378967577722337283500120656192820470593450326672191529941430914023922571768295566536575339900916784193477757109702941436332814155226645197657710190522218523816666876466486081862035309948383463143605851340468564254915830784723863209091255366414343746329257851823372904479978399910559197478775251900105692535647360151262797427132900052493734978723168093013712431860703315858248743405409963020508344259534346598045948662458380961733833675088053009827143392303181296604331092184678204914700358788156749209938028745606568512062802856095203655058783717139822613069173068851247118553499396038219287326490016073265355003271627356944963471775766584096576250566143252154667613828046080385281105365381697436443744897427833353260239135408645825008546886330216163544788632590613754855929387749758083597691528979542404340085782717556147080825763831517040920934016360899726629276937757954735933234976557018046418803449617568721544897401806738939770408363608198811217491595058897710270159504239742538191243130765457518290207151607031683063208497691016962945190597996460418098894330184078626924439405243354804246166609934973032225497717287691985364159808800068814152363036251678831686612507216720708689705675344106239753514341714318421360427228704356424367184764754373068740163011612122054769690485224042866583691847647595880682209861202155808423371189443174284602161873656277743794103426893624536093242733117332031911026747637187088895821893021390378907922309892936811863046787966678393763603906303543982330080385896966649437326454065828612931278176040496593761292644021164028203336658991903925668643935028894818235327162335279715759011886013875698174953206210832544222359223037415349053845865649060640410688446522306646972025512247276124949278267251395249235375370045416098126616031386298100548377989418412154915056265116369057992476551273052401798376164875516626460371202197301114229232471637601425051948010226979127782837464595214611982250713572868037282320608406579876689595319356840533713893792092796998212799826040572626960319248636755014299269132779430688609081801917644280729084168266633188452309001045812273803082021904929000256783229007870580507623147736834318699817717235921952674154140328817141276456672527475405448949171244065919796478251532125915594008717913024566714678358834926598667051874916284191332183876894299670062697639092753713872803490832776995388651838580161105363367782337398849248107931608624012746323226070746658361745251920879589493266772275878454076929308500066320435820379825543976916232640034604834082348407404035761226311310350319810434096874652046683204118521972019482804273961911632815055720356399214940480397008990937481838678598299383636951141763390737031409587179378942142975817534437270155434260916420926165092982117321139858263735260601237386332230209460916582539759717655064051309292605433511074662314722799353626752531674545174942025913848995583572223246297499292412397668040686601901929671377129222333634668725637444870765824087509957696574268911351491977051644666058252004818705075490488907108714712579502674469288724032555045674140813465348706899155324977247506332719695750271626750363036870257309486588154854663503341909828581953431442861223800293207479981027477237554741669873898836191440897154691380005266583602457076828064418275383135261170021787249402022773197887547235311793873212010026906898150001954235582754258364388333397708115932967244565183810396249948795014300614856703230885609389168516869870616912968909246313374577687457721232314307595763642652639037269814223849844171251301849732675565677302464868768698199066462964250409164672284021303832234020890729250908642935258709051827632119306208353004343524670809524848829344229572115127707765637173219194219962571144714204685098397600725865193042208933574479785665060320459455929536468988604932482184294358613374822657889656902446474308785278896137553616458510021172451438852895537131188685852149191016349141059198331889641016288751463082615272805736474139665440042704752405558992782946531704792652467874898272479013642395154973809341354439760888352139137749093661880173329282791560514321755293525299960470394445980862118113994440906779666511848744219271545931618771229631188237208112618245524129020846257449295939669627031669639359847298163076178129768306981730160752462420010469717334674114094040893080431553941048011074593883334148157922053108400805507630645648843449976350709989684520379652851816873723359800895536800367517804843580357495982261163496011168752176814182967568119908095657107899337915643768328641217266549592897730287408575653619567877173781430739497866298076145894405849659030231928391927817125908937333596675755736297335644124600400550536579947474619933285816318361416765629392536755872668350924434392093497815194982681566461378656412057197311432249290114517081180620154325739467294772101981297215121480802747880463944045048959769394428012165661150707429190129249892901056084945490275169105837221663427553115752863817212879962220912221859032044107004882882991962817581021086379054991836959206558838401303066668943224252885490522160126854819637138966709706672793889401864841746246872389957731384723026309264207677450420271954991337099849097647265194089430941047449131463282672348716242309433695889061832614499286941249639822043163319435855856851977441133833644745639881859553102710301401016008956566093395453018780024620243826777134121482206004193997958734245552270358637140876614266237900123633622940694761748497628665221284485951964536792508226716125522434642330285701757775156633130584998844669768982355466753477131392103978626775813005857067595455025692229014663424938348869297362917235016203350527047849597605749514442441445442916463443993942393587796837871355862707149326610923620813895490493633520712628985992381549611406181462968146207183708541876905642641706391145388826920756424904811124923148524897088781991196992150109582953709940188987713409244595494559882470386231107039869190325388931490552577551589486177614286343972926313633715781027522196103596764764152731211167901564851579837518930348633779731451563684171954545300264657011663939183659347369066326070167579164190417388005224400386746046286322323461763403363192677813388271925947853600906211487017299961420750240247875663094953688264297601717579348697428941340923193558936620378671378027001528685318002923860888273705741748226882755771615354356424485287991320541523712345439131918484476406107589385404705761415618397251596232423314814409489161800922858063225110682874408308521128860860798085552086603121997238731214908460536110004891970888125161406144054693514024815198641005321527110429129347204348964061815596858688893150262850881509673272307790308201815814606125465644615688826432893888693952897437066593530456685909844112224238855978263407370514328640751416591908516336700795083101434730345156875245161991227562390349701776352770583769918804996870318091107064701728420397171588182216017168817284641727319658201747981306938581604882904310737231694709315881900106833956963464240691873734021337757802007039136211594289073641693475825570657029283352598638161127715635965416083497350252749235404677358935869613747054751208852346629408158353127190381050425170266960270095745656553127268469573697952935129583159240515331487294118549902366431479849791504216409990351444317845151743673802447759640214579752544181681200356571157806585084230660606232215176887678357660043864085997195261635541762721085191895877196899086592878808803355356657321458093026513196883179667597777455890714678829054366186135238773465541860313145180037153219533196218306549676003857211223418188176927377052055442154605493101193647164064578125713728568033310913276346686584968556856671532239693843974178523498138772661218157516692448005612003887284331681771861326848171486243473674178238108364304908891933705062956014632852080494998012312861874344251098525120594051011874169660011418311715196626815802589517529019724767943288077590560749560908681062007794203334749373557840824443485307107691277384924750325794087949908502399943106439763008952634885347353667462962549514712610650153125614283675308357853438200786717312644441683393885049005249850135431223879359164497803032482375245055514737752573087874079068262638687219913207878139774140988029262115248932070399943239721356768573487959525785940908366616096131014083261747805419951546301772787197261343143340266464150566519989772785784544821747848914979201911097213968552018732317801297484082750200669301197421994497222861358491551074889883242818520688351001349510857594993591135729719212153301125901967779834364317134842271864672608615205844266833758198313204531182858428011555480253670258509644499417276227004613761039427990248033532637840909863156151241715183719686216854042119833847342149343854702289337099322507655298452307967521547876921025308810148447806708913418606110178418354838720383270030713373210569525325892281601264890692828429491216011470647456018925648828436786068548928723851283880567786165839104607030394472883499112126989160639677852942696871849287883404794755160110136948321976822179795542051252098257262214867209195907564520805946827921953518020893938011664391493185407356177430198477601269730406578125539494185329420094069297738012824243418084627561397224527916088768807516995301021759284656092406334662298517548509125960893590638575680910434269763055681623240851203207075133091540378376128979215821750939986883926527184653437120366065757602809396774299946433605296502035720349199849712449138246687968533805324188141291427557993041691174229065860129011523057859269012558546205759854047029785289244227207083141080339424498336984141489764182120588933749142942702962059444427328091489865028578030632308673021759730498315095066037767183263949194620794419722481674754114989987786076449040005688597042456046551137496794780705962825810317213140641151063001285550276312784079797889739020473374971944726730006466871566758470141396616847250524973437100657727845198891252932262443323539978820692301231161855536715031884075500331712799439162343176729556463341196536985937772190249411643617522132995658064959108022280022331078849048837157542297712951496217226333560790771567700627938616800924534375406938395461705838105407371630928794468862664698372249521053071348580801126421607358684387043059007234924730695966344161974651821616044706102085097978240478298886402652445500017709815052639322687965829415365863157018791119622866449988452003473159204466841950142533195511068673637362689853218898525884096125289514845878433042742568545370563339787708335345303368342417761689018634325822590539718341188092313936094606719598465008059199628962654640005479314682335905881619878608392758129542816206031952152457032828122782660936049403107457858727109645137397923331865853737285656806028358894923004705437700491649061242132645157225657514755190645186024542208213046245860279418089008824222841764201596421996653170070076584361706758414127818537501869835423186583058184961112472726660902966183890873247826510934527657080358454899216585225625112549350081550345452525233650631404538639671590219322380988503509424153970098808274009949271111901846386806238026733499375349580440225027326515875876074293193331671690965641738651300509613639878874445440192243404531669384221547107576512421823661595962382532188209025873705555334275282222886965372406293025860411837610555772353573464382080524314675345574573101447945311421265888748870592493955773730829459209673226290516661018250077878264581278045497984472432787645257460190211468902669521047494149789327252094141140231229499716926250513887645943696476655145120853152578701195955609597292758803498781552097793577480425098700768630254990847538561934005673993059418094352687724567071682471011022841160017373252490057208570856815978092106051225355840361063378861314687985554394104044043248425497142575760988091982948283651527428837491821810532440843859328147035197246428528268539665358120534780737182013736924139083450326313493019209519501101884313574767838780458658710910343233717024532569791032030385152927435690265217185989347580366130627902564189991097186660209897516538037639704569592047621280638395071336679072944814869085393337840743313104088444240917012182663036527922510682287721752119754222226560813857189836885045402563431829320295483403755531555907605464782537101583316836206220162230555401930239720484843343854919798439910914163735119094359096132386393373709800502064683802646906011650554770232458298837770288210272423481883215512715038572031432594653795637933752125923229243362605896567207078694760036597704391146964704672280841871461092867162110261909983247311378308083679874329263578092892884777901418170941166026967378969083828141179859526709508205379527552239418274961898159363712134169832186498287484507697136120027681892800081093015686843665796580547571005549019387044866925051372354875351745927672767976474205284895586307305918186395572510394226266436558940327154685771444684481788700710473831042080627048294599692222593257685274375770063004883397433011509139388151866355473075066482789618406782171139812212679881449740631434790732088850700094318411988340859434144145077155186861621041295994659497456188376239595369683394945098859421370466793473361501356792368089217993510708576382155304624134095438311571677588253379110602547695287114073284706382314691052619665064096046852288589265531731323676358866195043220748084423146987489050272383154331406829046941178178852539979928472465187674209030545956487801862237680492135492661390338760135567075453656378862852985450424914535146895522947187256878025684021978414009263779506703267516206473017378584787411328452627511791179389878214806012463951400243697660630066131420633419035167970277053921956637047079961867992692952365660735915540635935710734805483672446621939198293587413900223848919661303166796290245189974181814350486583492610387501267213415567578519705317568892786787912309178919632328016651860361149907442370514702563404868621402675999615980044767194215149858810262551858127180264987341465025136539707853682461961073458862962512626160940194967121323307008859945187825088563013542332716405502012640407329610379405456365569422966528416049951319739197621645922681313813633954871942991544696223830990459113975006521006848032984406868901131783047361376034469673255408566822359279446826381336685304502248360140684488485821589319591503862592872999770682112356349230663232978686747712736564533660153564928802667546220012401771872341472822627275422249511025073597028906398711400829192618387747069181495492326688639497859972006284222635620659988413490409343768769740727805011092811653757387481672849626162749076371188361813895029039336683473997271936008175091906421289921417398537428389565963431612992807993569814891683301907825949482507918801545292259184199534827870459699784353249183595898323179327320114084835715760375059367527271249813421611326416604305952074108267402029172870687847648573742935047868035698582565611049208412019652665413288681706839890194235276546083287354619511834082068373189729368878166469868839132529399461827529086444438742759458411077388972750002114726863392129627673326334972296216654143356571327271323931337865082631122908321076266051698845745782914573230538018942523465207043357725056265186712781719865794219567848489623500784175816948977289617658196752162561704168597487491890387124130831441168897906547678751583616703108011249188990202069165483320033621234298875739547048248365347709528269959373485754579479792545506875555177834334099785348027909181487260992098101032164629065081792352354544748104970252685419307254189541929245970201550889817647195922582547939244519503024183175890173557880669705571427542549506658339315559723273200116023571998403702255408968562053943506821756880317886610742916887660544048825588375273356356741665184995083967265853569687245361530381346341890748535116034062422228167991746391455724238155683377891391737027653255232263660935079333170505156006731239137124242501857462998564307834109496813570465704247094229660841830117476154993993097957645019821151658070857297428436607639837902835476604564240847385466179199530724265915357009812404378801631913772593508418011798921110029279355918345004671304366039347310116593740653409209303897350365595749470293075590348913728215557961603208027377305156446436461038903009183006180223475907525560905384688380170536666125896203613730431317132939538079599597721417398617662536049074877341536252771599189146242745204119846432080743166602944777860016847819862554523952622194964812714987316306583340534248864555168691685245558467252440054454375184815047776832299898065471178793305853251250917017798552887500644017915500029599397060191672463139415290306637673250995749280832392993569228553032268313650908023575998756418665268130676818093973363070010091797839816610542306635744217685883475009923998763324313063865359289063427572553525080164995931797287869605472173132459835052044445502115207532998906502163357640703198878068720847335014935796236117065392159592042204319223955279005730638985902857213930600536187915597776501937030226300571731257221042273230307267705510909959263522432274012621467227027037314409224419333523795737541757005255132364156847285782721922010536704468458659167176956993698764007972153082214173009211371381351037434975479634973831532812876035619032871448255656465105847435845816706187350960658270549445320861241389875850137390927014581013420391529257185186492081870649038637489126655126552882113141506678653705197487608367095193269001136795887389958928211718116667225122515609669918274311173147829726428767009559544135908591260730940278247688971519470551461829392477650026908957368260522257651598053806141397604653814582380513724462648839101323156927577323172098047932072674765848646629296602781641422467409386414610814457436897957355979595485512471320934405028165971782514314402063910389055634623980579779794967621847389840768019085381257798923659490061011118318906626353911792192891571292779238375872812487005237620093374957686349192314442262649486297903612871047470410460341923794706620362111999528745833645696098915213137052758684635307050059614910211656932817950699201691959072421442845473183055976180062946067672878728114424507166896922462376479917213024262703532082439764652991931422474945423507299866283485900175973694372508837967207655236477971148768356206354575186750608927641437865586695473601267018885776376016461223835131908952904505406217771414701290756137352703372230032823333623130448692035622716387909894628379193442134927293459776087560725439321623032298179838550404553002297703279460604503236886513162592509765141224945659759739209428140484498263260679711465113735135499131355915126927345312350439004500762763976639180684637675122698214987844160147648303218427444488958705076952704050129854355422695434229707560384199018119640066450864555756919838825284602081524754304889533522468683915247502961072405882357263449106684184120340660269225084876043005380145349054376398444926611907673697047447214397773763824457263642935491170163558444709663660940850826853418040595658233014216777359870499438584879199400794417508664193406710311651170923290781431485493562643345923641470880357152948087463173902588790776507601808678139660528052655483017366020584407013211275272093781304340365322749100538508908358578818514874621916043374864047240801896029651433848261016263774264936414378706507733865799254238330486149310533252152301884840801554271829463764777995970261163426996906692053143444895854525725898336024825522468306170090113317571612146772373631479324898246878459241294070837355370369798684815931459652549667335430458214352460521762203483689094874680043236848832976426822473794064461774510446528282750394025601416482430531694894372079404460076579579806118850429852348717749065404762587229027933208331257630463383544478478075628727490348624359083641551796325243616962967208870872845773412937290096294104246169374621166799810263150874501064856534172521344935380232636888254876928813003280253396703753973667007533007498308389144837998606721377776822043322746779918167283745728674595573045064234908108298946428251184328476073968179428705232565552259681902638995584099810865854520514965456118893186070606549996566528381229409724840729329879603388970062432470401138567931315968218090057949936181654901234684945231487941000940352579344506615515843875456120540850044765805897415330881313547047983715073885576512405299573723960874637336402822608200357135849699561432909651358435130747050109929088721587894501327946066843947787805618587647024381210226325420901678376295845582559066690518850914266000102885580888559802027262342504004111123808677360533568908624083016964730221131658615736028003381140938105223880740080930397093117870569269199038768237326440418884776120603397619450260879023587880059632409526999823908720939027609754781669317231648416077020328550794085675978758267466331101385441611380211707302024570894000598673050194758360919477480809206779342438240385290987734365728853055099191433566770902511554547616956982258188137689610188810731503287236749814396727898274464244744226056628143286450527241761114308680461001138058545512468615323947278089321102504700905763893916616596675481253661714389967510585085899407028842461419319819542425589702038684558969321503966306009703210896669768515968410658899229515145939592261887906456741034048669285618649309901221607534131094073820322094172793756015060034716025894550598790590306297407559176132718446616753681884539745608829417537934270881801235775132519473595170763628397403962332342002768586047720738892555477049748990626660594515717355684106311225946145093951758193487474831846764996116751057670280862656693246339409564892422531233169811997753115433182765721037219541923998400806508863320949394878386341824616426918483373670101257580934375325722674919859823598282293902193542709521812203138384650492130271071678711055399102806192814347590595474228331988145152525408887051265984197117937189589765445335514647898042998048045817303622533864785450846711577328424000406379816190085481735126177323969276431811906449766922497804999572133333975626066453754128663547754114510985457971897263560285257814995112180122212498527014912024030377588059352956812003587067845196458431474169394806346479048514299612649311813421674828605210816114788925671823715078795516765241771219029639172284439865293853119230448214108739741667152977371077017299282137126424914656688196807321847071631320252644876413715825642650606589778971009939460478223412670096963604171618665303067599530403368429542643118726111581810645256788996943383061065928232238139294377966530364913587861386385778750655694713039212307850117865164599518968906224525639627000501005988054017941655411261481168693288007594470502612409086792313282432274586635591076021298881983533210224241836402191437952302806579044401047459521469673877384172721068751909417145483293767495657242727749658922302899848157838520629215277392908031018570442124806862578929739634744628652344289499171825127464315863369278281938819207785021008850674317855429637749522281929611725130143561102390176491220443452773535145086848312610964755355311765361961369102942151116212221763049368303057367510235952279998912344849002917749238234069581904057280182166177418243903035515593193998652825614176215605993513898439591732391583032516356988191633134044705816528053233153811419202375730044306898916546773775593432096154834803468057336949725163314409959966521597966353906131735647795266998915877874963237515358355888781186391286378870506093135026231879688860875718453284511289640876637475998492722028465669803424803339969531644177271873032245084152322536895594642685652692485699666972472098889451502546953585025872491010467838600543511672868481032209900261131415133831091636410700849493084599704377175194263637268407639053863216238683075692859773247413312563769957545746516165655084316201347147856263707184933346579998923100862674613003790674853166925277395309456955587948834787862921962115453671893381540409635797209338310150377039007298158814483080937088368046604816951909187479242283229313015316590419723206942709763834342294478261307255733517712884938349586299782790409178028888050993331461067172177610199038019796815656187328764667471849060813026115678385134173005414694287877018035945718648470907831624132135296358590192856845927168086681186485425114231981992378980817686754869966079827675866519455186806282583616471332699790043104774713127054404101219435071722989080987923697228021608460759747075775203536761896736750898725002747522683987421610126530270868653765361300810443334693962017918436488779933943719410417403674964753424376366336035837820987193669043107638686894788697254945068371380552566463593641601472346378274966969509326589788387966039790974392147263933254572657802279324475446806055968620536787325369533031497896689478095400760746839714553072905084333637969953935428696482225407532494458659362074157775168314798214931278219471695921244964863374967422430453692060016618860316608654815930734249843640509129816925464692475431274964831463561416894848124171285404249329321565299119379105482023013231208242014733413556507901680305819723409924559546239801447628473717562858058550459544727205269624046524933440520795364608421321305750905402595216355737855598183604961557018658331050572061703575172092158972276422277892740729218558733272092843636364978240186178904851652445874572699228522431995127799516174841200479906968678209153047218303741793707053488736023893249324428199641127206529426749949903158439979138227128852034621537832039113502506566212945631639435303345802869730098443903911230455495103183046390640264016779265025785559221755124474516997730838744771995922119102832330844910044037524362967185830545191668986695604445349821667168747251907699121323862522021662565971070901378478545559171763941350393159870010904073760307658457200626718230258235799220307200293639003396073494029624962662849359476485616655909968749743308752193209470518916313067819888933324992977044508933395583074235776623413892419884407179120581126121626896632373595085592364565281622383317359510405154811263825747755591765462783974050849634461904354949236132676821417973779419385159093423435234239876707437852346385415418463620859953137159920731442203705404821506430723332725580105340071811952923416946587170663624337697404444460379756310059339046235147860026080730601060994623949367687705881588603130953079545381758977138576845652970411263061204232263946214903349440807280759784948798302283693613132354873251139983864053992720547598627159543811848283108511032878728781110136214001452623739441669697084972483840766251919653482923049246726881537105270533899810383653505965949774876502210008289765159615660974762367644096443721934983257363743557174330847827169620705620084217001358903757916553636257083702125558499029249007824332542768867914788999008300662132013782102295868548009125293801823157562121989279592207762162107632403770980421014420507983613965390198134055637462313854945036336008190980593490273735653550469786328627454900911678450389988106706338009162784035203504173477817373342241940592379031018966671919710371700084231421012030901525651743954041805711989590371593500988074309396146607648812631171538697312902853361038206496304699686372036953213683311313015127197842294528426033330090072485823168286117288229105045752385436323974331013626577945024925237125327590679891343458768513316592764484702798500192547638601353110262571942454698972737672405385540476399385728943493676859492170162070927009213821167679911530140803477689354838264217797407770509132326171233101514892243772449774053033433056898460783125950950264196409871473064566512534906078572575990339904893922591042133572675323947119130710405334354394911820900015031243087957245928425020510310286787666377801307454520738802260406697738235691986117049103481014947109752379971367219372460638791503239237939200560822465379582418321864757103648062287125479471460068264299637682987883011801719206458850804103762488588767360013553482378688174464440487833716163785040241037864443157596825288803233899782124468828828946174367502983112461400891938380905666404956235949875171300159980995696450644808691420843216668356064178459125950315177459161943986582750762458431976101030477736117707749993239121285408895080089347507799178096190862507146815958737532035007328813758066548149247741378961048840334219869307912486104366912343514055623951727047498656111645781720669211900034127848575288677166015353715312664676816973237250925813362714557548593023705742733401264917020532549724912429513092853647577978694946037758932258983874594841497598055672737792948268385151478461538783699051564718308974179280281365280482343912450062028899726813660385690086685022381258618858745239637054512969876076252870337993724956146541929184005924307661687509681886654153118112016142390460876307804081505810097508541761309771269488505755830431448290872536332491561543934519606839848685937118396141092981602276685908478175696088871159588271879802114898041618836504080266905067323073376064794022218013868918773131755417399918462857287447768528014877022934825750950852988034348550013939727607956087775123784172335719370852528663592839097619567950543106717052411489249029018859102655619577965195893450265584844322038901907339650412620615306068716356705595868057440540678335775953868404924817442056866696511076551488155216980281386042172276029567255005430377651040960440188135915890398189294219374583654188550166177624904350072668738428293721905145759884268792460538447540200319428919888609313598130946756052720788772327268717787442384276880866581072675216196540155557128777046909377071980992164898249529437334044155684985170590693945127291049725441547501033107185775028407813526711501822692252547650781554873717978580693923694215052790634805136346411506065262457833389889869028964176321059667789395475990182678780497556626532821208586382500225942429926303393992033280134382970593382752960136271602552154300983031678108677265740214276027778846499038057258620230665135828869156879681199837028501361819307227757115030237859712862021662938961376922822311093175765692538108393351042857045198648676377906553526565692427188800614002452410687718705313018336541660330174379965338694925929391170741074806581216984129130642810108057735450836716189148492339953215791790702216959695153232245805865963047769064005320302197553072401131299752770815981490360512068427116632573506805178731211205109839190742299993902736923005356451557139790567692409081076759804663884396535604327432118936629423227216543298818832380297862883313664554822439691331014244297298987262078252948642426399772376320056676282530277988498219705240624678370028468609260616368415274016006483053967783973578216865324252127964476818843900661044984009565524326942104330109641277608492111185060462875729287628616216149431956983192561722862294146538280675452162961762569510930981883480504422598260886189208187291732595425541399649312362317326455071027262546673811240158310572353769777883787562087043014064491967592777215647343302866548996566131013768109170505708402649405739637405590265532145190671715609622257701391562447928684287382285244945736455501423207004555622707293102459683267433577910735886603701443512154963280468260327102653642879445003305917668435787972789176073671119491341270497177148394705678165953880994397435285030604241612744042692320255014408474595052092968510888618381084526291553099985968643756798042238016874736297330740715639644272010059670128724329586204312624019766757213554851610066850751825989911468511420003675359201279887681585172940707288966685413737698665927210754990499797893936574988047556347947894644296401225943040111503758072355756908487053924251984716772598847547258235293418446396261468434975036273972889363683446929410395297604342835147625989412047530540609693735453759599329518503637333801847451565348692038520007120776389335245757775073745655911055664338214481861117252792266422387950526463873842647352299254638813599232765018889732629781880570767046093510718097269056863586750395321527448655743442988114530866298670867637742153358397667880181478737778659745314231564606168614626530115076659472952709848597881423453509331820660986116301762327665172532471098656831909017147113297453948310021205847578380425016413754215391164559772601567212990818991944510201217662295686708101267808672692689274798857761564585590254221307139066944218774336130422395872703303281728302769470800959089692961841618635438136953868868959414510365714874451191136297132713849136268112027872856967401410203512669589140853680953099009195196430484131108145162146864940102715349916869008446462582127640604124375491497614719252484173988273896656017424880152112058715315930788835163404812038668534386114461022432136050384784187953853389080562530994214847359392309220107421689955007484876141095681743040048946651708239320556546896647009485072736780415381025298304466184767599122780645310361043937660105087111441279464764687364028497919069427867486049438777465078057334057322146664823718830808274219086418316660766054388118026707329426114856888569467813950961979326378577379953703997781406429254102613345547451173313729066946538906540920173053500361601381113853248595990880722937496750833704692736742815603502946264032196502482545430350401871362131518837498504229511443023829917677516445933337209117235402723939238156961449508847185886696218421509196624409060550581918608203381914667092352033864350639284629409363657301184175384778257584592884711629146600810969348971413693279039692010090375827836636869030281196152582407058607201705679317299406881879164923804275816077112525220789538577091435436189390946639720863049157432883262927391017673295578091955210316326153552924742990447354719157345780747925900408520432156390941296755316623656242404036955427002023116104775695288147447467853606636312320808729341461491576557495662533713819823024581368462763543695370307674449386048002011481206955524972757917561214685238634126174522963894259296026276650347431195474424951338718754954189054979424394004236082089858747337603556992587616254849585260778464706900738735626406833117303054597320532769834215284933895161908571703648527368215739914733088947563585150805775355711437466406178012658970307090917292448658377842787019102440584817830947684272765343625291564704588608210871956451689135159375979796219207056256981518298960489347507574830251717162811175037132396679910192213756000336163437949489917201604925272947019199358321748180502979694900394416553842874861486589239292032466424183044852841803496247184944459210956310936966180860011516767820067458093750817619236865576868441684497252704751449061597233501440767510630817010028576341063699230067943342394266817649428613274061365297529063251977116005297482060684460768619815275978953580124523662467694734197053871008385377803150426371230886057327957737143912354428103327300634081336204648558927362835731818672550408513684019225578719736008331564606944728865939783086109831039193086091790453725460430269029766565329009730424014794227773929218781729272085007208213279108924075030743303747725506258012539563472293541921619075433316757100474160592589233917402143553450282080839517219656202112699019603633596916788675738102337762580282587509361907929303775910582272660883194817019031446650066206190317240685098149448889129348406307659729348088693070314562885450891581202645565865611163274493463010628923619254815181734347049084556405547530611024183046103823279287807189021007025347455894966455417931453747926735426509914304514688150513268228726570226570796063270629868190541318880750962924890709514829714156417961174890691264350801212103849348591585535758884809653092129571323325845513408328071859414214971205893121513766773183205682402919638419389327143868387590611784835116912485466529301199031773435887609217143067765731725336349857511766156105262330260463803447528730269263207603966572386028551797550882986671466920187521046883112199263321912792524368731151865929878321789448956315636829819979193966376540642301351835069595612568389201065142713816078337093975270914590035978883865503241518702904293120111218798149164874740352016689689367297847500581731308963199033404130583573677104212879708015133688431633673295488322621296457099071164025073754349125948252562988226147981903762358687281046674950726951482609248745834730106514810907545328875981662713489988490639436061200802687355836881471099246939816781401237809904822339498322860446899213980718050549790737550899957326530009255305611806802297004741764293647127881759327855826090777548058115374740409370382755138151893825626219181606545213350029557287405115490454621942952944285443841329831962638990357881946526363194799634622566826615684481230470633570680225572745194227241975612949985859906111823412656360443469855780113266970724556533994851155209291586318646200984998462595223052234197111974233574339300672609410546147685604581514342103800032219623767849703079436010249239868538793523711249977612298515484739696484643824040042732216975889231824336205958621584402913225213948594374184314244281933068105736633490573260470229267813221140176803380984988458169427362232477258480511505567367281404581375749214650475145164365078776339797945677915166590603702415883091176394385735467544063513414853730883905069312322884723085767693797323290999220451226300096742121410252996745031532843001119715189991880944575254651978907560706899147223545676318192086783879162230663791733399800361271841904296858823136865481846266603358758167010313865748281951116903599787382556211004908675855446703203308706372952733410163470930414817243315391845858636546699646852031597901281289220801943348928991320234107228821743334074739143789303814640832763091351866369847480869316611143386374137955649045127990401103637136177492266280848577066975605782252773828718816778966764306251838126451631385651265776014666311306728028442854805861031254854507578745883725000235649355038135774383236072425018796690076455035055917266036216523786690981753131139293798234900888548133556874013645567863494763184932330977622287046962689102002031619112065341500918821217251694720876217369011133078785296617630661732320679768672754320909222548146210238712028076350733659105872449680617333334460893478448717239574309339432428075680863007678982223667603674606802477703427226772728092670998364643444443831973537292043343324981021493064451205796691711644985575054614878535782105167016467143763440579882960973672815467240566254492372692925344318384211557595691747848790272645204621475196648930680192488628962407616220628127436446255405243740074617858083809354307279358980728078263106662725868179355835254402160577732887961910157619882874838130907936540175944759435145291436256822820079786779826354227245081340619590136489190500721908949701798687518985737611911480690361468465816207296886827903342624661145093140796411247814298924276901206930740634401905583255171726932093085309671892271932035018922495152285502185435621531454547608407199743303341722917617759844376395958976694688166519928231618436920701527316653370604319174188027724022631924686673059433782787731142354689297879718620096358133062866848161470489643979503135059297448325712085089520909452034713802908767094499042241822350046266815797326700686808958647712125596700820801119793913706918342401514604810754364318763060202129210939807534545278020941214377893198538278705555338923989365328669790387212176547394915711643879128412397503220352719808253859823323576987182150925943370017251655107997665577996737590715252973749720360287967298115944917897104064019178607932955620177730387728867364071428992156284560991781967629017662634549624653343081089638318607907196395949106700218930286343305836151768026472853886550770681647273034614928696145457882952471543970673018661541632848130939143608519383483934604418583401845968008544510834301083664929978503889225649357864942823482829099310464079854485886914982935807441571219821969471076223694908134779505185415012694245690360658834954920724150446955436065288417152434521025863169547621176613001432031632634819313454267248271963207185095430915218188898974805021215188430246050662120603078265271460421425389530234389921075399706827851013123187882973200649469592768812163683055529167704421324671700220039445975542140542450015296701780545593227326769904776251335258106722785402117387130441452765802487773599419577387499285988289814116945487569115067329695392270273345080276168271536969076291629174893351117090630327573755070627486363021834387711079947363617410299715833154818293717276158070260605071721692804475084944663297378167399676961223554304768369015826015756706113200255297801109617022920101709046449322591767055460106981825706305605791118666049592021660853199491210318585873115385472915885227946917907690839005168249211231407914883279369264283943851334390177394978715998742666111033385728773835604072326975281071804829641101425453006372409855389950648985408641484694369835887082270099443401125162064925568887476196245902393306040167416185376771761335105084536856634081759527147334253907822794395543789737025495948019438983266163556647683453038668832219932839572325165636929805940041665182827999801185215212248100221005270567959272479251339838735186024546589319400363097706975056812353840050348417944852124080584341464446992015559240107132434915609993375726883992727603655345798013983775087494112299612080862847852433449027961568865416726125223257264973714537549648727334520730282533703933920279206406238936949337038896379509722307794798613031704076870982617641181100074807714283274893509326221923488110785510928948751113017328926670288600847658989265904785849510357596188199032254295065112808666290223389073270053419762546722099986915202011538021818911140695854774156287413719823707963879038696029066759839435365232312226349960569231324646861116350967132802933348114542710350435433682372302397811334202212865595841225036508721487438188344358852127822800971090114396235343010419983204698933027677391621114612571056111192194403737736205592173761729362058730285594713738588938888754128767425727372527941144004206043339890488785608241802639408289239220283852764122422512687886558762342949091715447263088244533853774392291842579352777729785491079356665192911141118806194383576592317301719618693535793750207249316259958982158377335763294609015070037969418019583734141357476784194049826401150915259211300232248125149469975808262450405318081482976350694253325013187012735125553409467146727343848822420579100315960492277377669816952258112165834774339133778677644048586188670986046412332060934480645313167403628577862878933993578469703971071590508099690094625304421690717337612855564148483244686164953688790168571754375762097209104232934019168597853340940247502632863411677072583173740568505335321848789873094811167069450071972608758405433755598837206120815460730967220839484988727674596187883382670645345879339280689336826389819104174931180574559181527511013688629770166440117892914798689291146855250094717169917298820077109625604254003972075983393004846252539471283410881413592583447943644147556602081675111930108580274234074806255550779537632274082912427504476505294696133835786393953570833509546898152608376170743791506936799394231584330453194463587053745966005493099522827939317683979692506284056478352257010043938225333097769494209435408302257986569936902542329241263807655565253439936702983088657956001369642456046855390991913588393162255542907404423177439554976203353835467288451800183089661028810003633904871776584514629516685908276877198928871110782327143684039474443490145087516068947678964948297176063732627384645713737550041644976910573484675246412787733904957774913303889979631963092887365239309203046894265771649513108275473310145919789965860914148551580486839757560033061214956506667749425225133191202437213890118343613020901898937599649045640226750124723810352330720195794856453232738646240397465377178349099236035171120621039352934361153425317440803140538712314942234002456652471486895083163593201307144611171813499156593251093961894020184952606621417691778566159597233175176027374898215264561987611314367932892479308700390622919170875260336114201108053582412467908957455837013216464054878711352313775039055338683913144686561593794626097462104905786113901518249718822872258870687522097074811190053755898290413987248066792426241971313144916426291154231381804742444423202495726487050705176218154888477772457875784145855244755836935344419636500271479535375883823123039156444132836035135495986032793726878187870896898433555680011437352350463967931868456428870852449140487398090648861789752737118644298486585823477969172054136418303200020455844502209872233947916841108676815454195796997818587710887049292826880266309928753877088474345457808815660056291474200126029205058859621179463871853910018962618758383373729147641206722936280907271934103458981042310679222164641891316395042123370990945357451897767359888481479966791345472724590222075940920613013364181459913765229527860347436540522625636804368422021784504924321589414221547528892237232563179685040347685625309161762588597263923732519785269800149080949494832775055733946974631625687088572901309000184429179696078512718920020799987596759826104241302869310222719822769847085974138304427829373873106499228806509479934228898359842398595289399661324815352228750347183409223576135377885436422115962391015053425407575185807511053960665090688667310000125755909087639769727619966840009956432714887740385695951308071021348088789716280415476103933774485408667016895881246809796788028596450763614708425784782253648357407989350678020495129734974179863233592874498885103104571408837509438956204791788196704743478010205083099002274918137982246742347170003823683582664296493555404491149133508408011438067077456266748201471427041028603006225645363756296756366872901313461467920801130776058340158340613712095406849394955442607803149409520606018588930548764008197924287044644395842375828047297290270588309417093967062650638689019724777475269142823021170792674814447701656492460338533519778411756673132781753815653716082797134484262350472780625557611433521903662517786079239847128477127388397524893338379453871695649408275889209982455365091067581802501065088095153351537102717504211974629310894898728817336828312347289546329089527326999989498474605333282473109532310347208823352531393326190823238599837111089369857626641646586580681442698829968908920864072064442309519064048890877105435270053607035358251758480846810271525662736188388221116686551006918329450562051038054532767920329230441538116403472496483242870528360199342131258553644496440880079296172865434516958990893644298975441120502740750266711755154806194556972715484726127421014548126421549150742349912950914217966449993709444026979405217181231514540843453277971331584790415725741582690441671104419194914053183654885991946153850280208506965281143827340053936635331960453710564628153743580684192242779781336626574654167811144922048587987422659472521443995086769999909570519561368297534619555327697058401477009691580780545255427307147893675025647682485075890194948527343519431083291685865259707392784849117887410936180344650914147807174387187693879667703327925338732201268936615039399664273767452529241366473601892535932894772713854540434506202542791258431036233020113421720030302178158036326734090185816204350625279293054035937748046472651715523747586283610996676813270820472585489059173062501552480674518948811531674999314250679553374048213021510602999975010471972182047472381461665054330231594548585516286902821294273853671090083842098440899821998468074467493016404251589793707907449435079180410365905316958802318158233782788756909099641596058309416606319209790232402252257419372864248038818736078682163220230248060913488166664232220454303203147276974536691890154874614648540084910212961302491911099808873586416675320221293180623806972783696588037994247231608153072897584618347188278501465171523457597193964200050386474810552050551589723470420012718138625613084323730025960443540429092179640659478099688073299779365964165829900075619837091307380964848381341640690189921201728417696140984840658712722172570927708886905323359382255669265228244085257714824279285068224424411655243844123434813566539913936308349970543431607136768424747341744412762303333688704411520497439483937837182712307054109330981893957704018278468287292737142733426141019583337752120350346729295041847688197608700708085299703265347917402179632747369457805114277092029939909802331334502360456509596494482227235400617315567846240665661398774340491262887852902460037624979258202523580671475990414849016937590342521046244182520431000373465575374770061297801093966133053601869989647557040133561143708362585469762007519247454860045726689685108474559938552749401705631764495548954863958635179557592808576722334915035184616124883286715207834238204783581882395793907505001865131896121680552326276219560561948233212596511783970355193892434359896629642687869513174566206179261613981351253031455071882226735368734311877935207679717124309496002009975294840870678823582664727953365320249357576985751409241946829489617681693014597029239013367338209549083052528623885473817508503866553053933597615720849121147535644989589012290472759702787324462925243596410893398130566916388463869814617545439375123270982438997843447553146175806459863326852050465460636189901306609253543031912204680753310673277895738443978989754571000046906512752953144276671513507078696447489667118196150573173277749036820538811325076704540713408793708089225259479253374345500846087033453714193233540577539340617079720163462583217922422487585927611369067956629433899558765690043528526730306242404188083837042710348605917081732289464193526879341753778786610521390460890018437668196089737831596557470310549529698327748155276672514124902053379909657053424837134825894784509833511351771941890790995907598919702708159394114406060915169398663849914144118546100844642225529392833694289243412792681302008530732097453712946076710000366431164876448250387253398133850838560005024483243265942787820001397141862944434219097100941863116749259911642524734922913221371000421142014944802451490271250317621995546664562274687197741935076527957294619618428517488118446105000302843100703605679482942947734230423267567490957920649325123113786476219270836231733288245771822554702691463934201995596511013786635827698545648074245572392635923891053154966101859159095128471221536028819275659120092259353818081140753163092267901654682956807176812818363277115771080251722364800085843254860679590281117895523496602701220653198583677990550280885879362661762685925370306982086519649850891522757307311732109096579650506435217121959657220648798139082084361310682827964201747486436406573640858188617828774957840052627363313398639268055071267402034896150504065886893503006272689413863952605283288025925647176030296287615552281174361232054308755744729864681151967753700320959991087931830713652253443418832307028372348222426575343925233348590977262670393018528358695222429311641889721532018143989386543996820585906618077462608262104212467574276334358240529750871958956224661748822204797140835169282441905883338456024322682013895946031768534314551167191839116524906003174120428566470298809565272438636432488516063999621023363086237260367862968454996981970306230537579929501772569172624934534695507691100004773319008641815487369733733559157725778045345570002405405116825039482815967695340807455335862498926028569081570748671412516694342137892356439147716603833090564875464622284262501036957899631801336571857608028941545362750008592643433632265814076032415662205112238412309903648216094692690871798719996879204355768572319660592662284920764885366561145515620787004756570910662023706104172807873503460648569354632685872284071683443646847578088119784590897190880627217424451934465660287313599791252997047010659209864803430486657505075852999012934188319562924239833121058940664821264997238001968251340978070087652118857255591888605169905543319159850439495365686593683717554940486211236446759624155154567556333700381689670123089278124010833155441065779558910741269574094750802768099728658320957076999296030166497487048725842376620281036114395531015231850092167081579372084392006843687409600548305812450832537383141306028293299837155008425924335764214417854626796747110569237348169530178824811459295897389061979347312940548023708055240976298058970550012864304401751796437723592373781701669036767150062771394559670214608104219086570500945172714462407182547704308563229041836316636289171115062860131811454873610570837286694773342784313308057935166241589161692742103794357119062158506301577869219548739930058792129730832977180345204557867798789779467150433264645529781870486629045486790378184645090073739854243394929409307138188996531946401487137251744030260347104036256669964543564484205232596549366477816761387079971398294247867817426906090654366678356717246946657677086714959829763369999368327502691238288146820184547646212413872574851632177971084626118933463277142730917583269889110382972978244667946541957699934000200727365939977634200606830955345928666194176870654646189677913640791327330034645707687262822919255780482948607519017713714052505345384099125592608675894675752523124862270706973868549850987141885355376983461322885379208907315294384087769960632334939659007408464454776091634346810409823931600586258801545970528216116730585498403253044573534106585072327488507797994946772669252766308951473073821282583732299912363282454724937695161281437324652589817168118236868245141654315402861310677331513979199326038340551593321636754548759905217215494893442194173824626171974971374161794503276490497382471841346555620322626304084213837725888154365619536109570556058684800360166751930551978319314793125114043807927816485017596622457844424783851229655825958321727645249012639952141582578948869996035731328179790021238663790943895360955671614551436946846619566130067696961018090121378043591507199469326442003496684586894091098143662184375773442002292778043054290285488315263071237422081036913922645507847232014849402851746244468977318440366368414383478377658525430964424230129528292537575124642311286401437831698842451483551031098347435562680782490450355342180556101612631664679604404375265754300528535012065992924404770608758350115554013239789913810397280628822785829325537293369498177653685723754077973605757445288250018859106415467383621786408618534771404932333087764196357621174683390058430336601989744879451713307593686984384066718599222672580214807900745583729639530432011581248024959493887859505309032661878175927179788261706942037935658277617154297124754414452818334516368631301761940425487608702371317136159395374863422507681610482886167439146084114302593962486289783983952114060060541873395048893854606975882922595512655326526352790874710241397876811872383618716141401499564017955776955052280830327632415176079222976429922135876173770645876832278279085006160233270532872293805287806510149943845170119417402408942259916368485862945660504012341017382826436325209255771326056845380964905477132206291179886070556019587657146402430858052766756636612348076635450507272715160049586095559092509480003385063164672576574324570136171413519221494811793559769048823998111023246998637746596761206968093662496588755235534423928248223783360587074094210625354825869235698224835588965118052223696614709426915184628851986182792708935625948791515406563699007592909069217959389159625392115228006734614908892048612862070827765631581607560906655833756408746916175655429333549756354473301241053615997530541681416448865062397270153743448207931310699014386051793011829689550120644428807961354281053944230580784435197164961279898865297024439941272578624968938652860719373014074461559551246339522101577358971841084024872662896693225998841924066722702202750124401186266189996893270657330921724050455516556528499635765310189592749172148905198901625854223789093486068233543621353641292694805299627938958169981235552517669014753696063638685343685893117951138020476117149752193084864392524831768859040229121351766275953188657497035313381894896992850499673320473385234059205247362358828338863759126475491849942196115996175465258003901251919755201714556203499128426642029277360419187940770477342970752774851090301934654067707353351893683894558565434479061575113189434515368131858775112262849399487425427069729241786137922643102685161524862001385241533245653388438098088571206078953569012799456704471584996031492397642519384573995869206547849482646881009612907899322952445855452372244270786152317766310508787771139263608081442252928077165146191518958721404874938908067084347845361831855476280226548582606249581073630003839770937755815637442458108048554617069056522106669398739314232799381415705238110658251532675402875803966130624142843763168540733270081446689305277556466404303830838165113517405025218310695424122133996555219207356191000265415786712657368381474129469121087745145234291360788556535933459581388797261617696375887048281680376584989034149805347228547853750406875027967161799875777276171736525112937268472161467551516148247990073092107001360234531984497241838305877075204198465148024397053091105026075979462949547099213294727406625687085088246434461326167145513141766176913503410226684756437372633103596996717172122268670693866632181868317886477313671635560909715891951716757182098414083512339257414294620323461107707169918936377687194382641252945349337515521409508962466656236417147744417455707073207327503117100345254330165878985711498344187301721669691557285647110600791959201266313712634012357984157400415175668112656767156810911834640524028987192714068740555572722851986652143367528255128993247052844970861700821678011100598803241588888838236675975224303004876877483430251554472156969389746169508524775916461798733723497978600301685679708872179963478874998718027621973697172255180654242060189157796893735936731646684343266458158502783445716487853982962151192834737725690204454172603986228080260390174303610281558589333106159385276499346978172318368110854940639686306913682378878757785911455930517953553419662004976786459253486107266210299731976179786488833864702350180982506681857435193400063490623096673722279972000146695406992455364719838483947808570837612478757828090693636382706467732279393799734566383300437711887462528228061724330661815980015991255665821486332883136411198327790518240787738052392851001616627609458849589575431755154315580208724151573984279649238572029623751213803366242421796262166319844448882335039909840319780380808939744255102631832081347461541542109308722384334544754438204200447265281890590743541086018587499342672040955143338819733287922620964360940793275415751813834770291734745692962761933717866029091038017224632467996780557982119429089275363008652786741801935831738273141454712238539220427046022503885897845132039095280002032053223674742703913550697962191060977239080153814085864944675564485083999725707808874002030502018375074015439522093514037287115487571489145245611363755306480993707438285621420405409010525026998455995979863512403504114134251690083457770427408239439062033896863055264649299465384660250317344256838507657535653582699418390605727169831151055082211510262149846865297741971458760032638231882509438491193182485647748484640676137523646122877621249689012321757254662833462811370820654160553399922010500391618021678863986041488057252358615652071449967066566465595303603723594128572965317469062236801745132481073136514902450717948070971518562598103595527311548483797023164977027138671493273063884322409258712738919118190483955409976060309703259678336841065678653063633553594293267793123138819180253687175274269442243493962149685671255046458452564717573259868997753373955538905853315131308371987967074058756503300760557879479233076690475121211335164645858480041815152415518765266387999013523820934716280332733212650519291704207119902951247284220789896046997003239026370025787797618694217864036047250691951388071808696976632538133142143929943895561420867387555012944204459733398145775523630579297429119780506051524891290031183070713790225308842571553826760060176081552540764311671913871780341937337787683187923197189992558078441837403134286898076596040810345567653820964280882683167618924634546088343693772268018405169185325619193922757540508697244585384508501512667937500236006291256296284164800271719318430259912672796655560779719499356082267726674363720700111311317190528037450228537583763586656533395410214739719056330501494907155460926227775808502417063754463459372151135367454392374887008861667471545317233598363204901416384629671488887347887128033116033403018833034483134519763783372318446783410629708109904441886242514815108308340932405852516809044183323894631797543476643421154775333824348030339770985386590103566161938312540374600289556091492205050774496356615261312299675642918184076408572327065862810742185678224377172691595767995364430250236731706531279019059292402948227935942578482879036802859585859072808244688940726023006815896349334033250405433516962389293704315343853358794686646438441238297181351074974941620013628400414569063157216003426670043461950997669193470163269903942344195866139226787503582726014404336385862542711388978608152126448108184976573144472568736917659824865434180537340628723080031499744049540261075315254225003010648914315212798680992007777504504295780102080373042394426248320576434552606181348206441318816579436042429603415452763025141437275729905695414163799327377944496566416920286085305460937553096715449873963563309153356247451618278474854567084182160832760928560781532989819842893676953503670580829562509981156647287623654993779364480590877192487335951616094992661320253490706080158540458533274832997343992513359582723611830430475253863867660314485431890880465050832484615698368135474198549776123226234615183254270695848018568632296634106978171998440667538450768408967182757544303378128426146469160155352237673240530122086932153410044110440840689084662733209297980165592790794910493526909530364517755974321805637432329572187522814982708639659592868848306909762266131527320286573235647116878665226886129518113862417611384950469985416902005767229757558666968879033096392369567750494020091846802704342195310884211981038187183243771544429256692817843712133197723655511996221076803809917928675071602027862673477183057263285842687464506627609873572118079263574417213499036101645947362110560549678513166332472385588034740935238266606911971423358001007175818721966246445136644694696499247762430702124138520025962293167000828737918060904917483830506061076177897600138125759911814266132727770645473941810248261205881391194027195512447868945809239039819671867338280223446285802414127960153210826249956519887489752555512998491691497884181680017395935755072620684353146848561513513862093764500882504209836273096263504686016030228088689713878604621956482150722071531757072890732307914825456530541284784980131899802770880970916213021421542300499746247920310992867820780944703265941801104375014651161988775195681352645510444808461601532784299857458699300375520614426153169397608743999021834902549963637472770214875168996803262144308720709454759365248854066303209494454368105287772971094110929891608561224091174159768447008543802575532943197280864210913888467077018127088556085004289941950465222075686134275145193935470207903296936565398398017448752238314319718721635539493464401665649046572916619422098200230638617713790858327903091430909384410462530051384179651898239245913050817579295536156132980635344839154291651230775327802397843915675845289217108995903536165975195363315803972024842000393971477205560938045837627431428995313774692785049578556376031448392658587837377320486676329318948924791787220910291497968954956606822648915307724636735661173553319197580423145892618030142155380175514695414263017590240876893152416558852069280085663427247516526965362265760540627208028708158218595331809880063603461258705039604683234599823693508592766016704655919811106597720625536488388525663628509739644983250939783035516549087561810930265800457178481801119463248282600296118678365192241459923949405108193996194659339749960270299829560708227170911928240915112349051311085360703391632113524353726712019655588425920963272126794458952973334730653021910074950250650426311154160913343951864460554625163060421962800983793425164772467491026545974112564976707923347445466079784692345799424749695814568629997036925140158371820632878086552908943831962951513251661025521609722601836340143142644488788132955977403526784917513030813138234157319555793846666411473311043806441189763568418298592629248925408905549601635480813964351612353505545556165146158017743958005837626487774292224325989138257375999945336000276374344663029607956438566489946681132430748792274711767074717691953998869337651387722779609143354656373622550723102209970376992370168059867619317606876787067559841029556491440906323484745495293408430291085509331399374565244970512329629446868668280786093769369747883720799755852001039028776651600627063350176304689827081350346784071659533844951339006305177864128878507126713927602636184811568370540788642053783685313340813161739481586900267905585617435263594840550990542924661190860274771490075073012397758189580295996825701816334186010088462187790990925856608664272570423843433537461175631274347205795588338863122205493372839812211746240010111608143018576287314963015262483066145228366117934904960692953244346303704365857193514061975431297167406382239712852310094405843124092378472098277678187144410243063336469565130797742317405143617723294188231184409600637557627567996650670669351373514754376615234454815170023969596152784413044265682218171253287515525757734760753250787803057879192096695504517824806277772898810111022415835902434852966632452922893938333151523172221626989692043189263927746085678090847938453403020453764231077505871953010990829597813093944844650410677995594118196237556676619523529615966159169615131059306944115124347290386958988308874719937174105291663318359385526649021122124743800770062122328222989229626793790527318011450425100535852055846776743759202673235900361636606314191448007838616393764754281847358043092166789832749536198937108255924371980313129176609525282194023188622246783054580958750883307869633534771317450209681108380856788288312568545915143626149170131553140193819738752129518769338865182466048326054110519470776256647786270294318940391447970018862069951327005841875675062898343615381114635560469571204629895551933008619814795451711203686457304338779895291139641801551913324241015433995789750394217231232044000614125181876843291921535926258820672315425122230899123475929856321021247391157855786220381148165698691807950945220608074414292196895552333987731110474481860574296630025301969722771924267848338561759481727420556646691832350428048772702617551726880674085079040097834539364507598265950875306305245037783341163977037843083189547059357256970931772789797015057810141517724633177036836011865270288227759952035782257416784045330052600842987751476929985835705427690615601708355087755886887676204974727081537125358251957011607055945659616340699236264337516825575278956409857024157898136517702384388748937188438185328560890361800394128594766170505731525442635783146020682931723767662295049878351654298709526986162066246041125632445144118470713500757325434027918503630186903933615899677922841379178749502265297700090257424911249347254524973400209230241397489122908569231718747192552576003403919463962493255440222690447678814963246970936298619979111071307793265296691925261198529909596302446299570938684565720516257116494516153301122201802781629931111009612047636689752444034938800325030844292456057143640634896508142203132812820019152148161112661120801349966380913585798310043462582114404700223248209322827955437059079424145374682603117699858054013605267011598468487660775612872742887672565829053384370811826645780938091448690358430601547338785197431590802856006837273089488002063072620936148461136155603066740353112722104976021738865194155579045738476796378233901793602564109669911816157163433491600335064409289992515169592317421333423652931937903453427379286880481956826977807397357199245442847551168127353904367894733226433342294055631281099627903579261477762088848091414562605441822526641442785755568599475383959663208024763901175809419676634342399020208132527573090897467198210156285618926086173538765043549069191204268912026415747243520191560838258632827463150841729045404605011108150474873550560945433609850533072679100698008904738873664359013782430969273022430632874475977182469858365335663648625210252040785667973126880933584364448962427014819958055740254915210994859285497013523968835358008001568821670164704786425579156207487303839992121070764262900164756511057491194074668557516083642808815199931864656741353161885667360975308171376524258894709871533590593765505412605887587432504278702640553429583918936744538142026981281533531523724075890128927557254080805998098038846078497487104709185828264724764025290724149344905527367964162710098502414498035694322291296284746338017452729352576462308941739714300988953127748701784012735410360392347397027377105788494019917961473322576987798523702300386559740710232797251427710911054322406636814461057306512413551803213659767498753918189400158204260428402141352197161174983599371003508991810677110715446341732810605673143316082546550204197798028454455483744876143818734353278252508916313753604039474208941012364595999003783493853972403926880869004446971112971652344711810516977369199299311172269136248155089981394932015663389136509199212633327552087487717352187316024984594303768609962312706696807711757764424579555070535218305556957412349314416622915218208639205499471312315948532087643442051543604085066033915768168958540436128580860647979290419123687549238126020005033875654327537801860187059504215844951890748157085292866806344014876984395905059314629487624103024287452934681099805220315176536532725586256642139017788392722931866115027739837804982845341562327836499816441300852946345998837544822293374294343744402061638777154564860117267267727333477973740561525971741734765765985060422570343180100032094882153576013477239479263112949904203343386956327817284530424613759288624889981820140595736917394533118769836332216881723330708745572833758232103527103676999249876603694485307046047256944208900299567538891745039611325105668368487270328386584001905395025963135101679046598999318815948094369867916338032594436076023124742257716018159616897803336999964192101932363455062575495692739562231630069011975956367977610480197640405306192637502470475541398823411226219539799127105947586189655560371728000569926109953589057598709926399931317918891892525550650493886156150540571120415208156051658125895316561250975837652198841669175818780529782910967036806428873776727590334871166913171634096290466700742120194357887376869180311525979746813742953404339427468069550404037002973652953116350066360850667363464446823465908027674260522983076631557598176729736475398843464645405829095717239154688534877989511508398328367758513799763828726006085177074253876634580204878934831420347830690489165344322837965739510696876844757093847933406343853535220795177502612572308455542727455652186761797325209490024057731144862714541889699129997548532855967151922759766127851211073700313215438901461599138726848862912572814527687904291997225681079840038086705790752754710456450710215530905682483825783946476484099812735275421969937728089183137392340942937693042214253914394740974857433649901853858409482494941949938613226266176286992602858685185608513292119937351199503751884955267548387837788994646030558206403544849963815292702237847901697169769485087742188146543462487957909094115344366211733851194804332073723920520989029058871556347064643955149218021146127169502179049753799451731105854246800862605754861442760119191802679568588860028073377557384225549165500269168104296256478531094180473316700884334344638934448723021737045675270581881724417433943029171703003010599586376436412504211216315420838148245349374041146448237530773357466822478805722982904678666017164984438255190155232290668911835029118293177581626773109980232962452787185894788091364623769542754450164519616312080059783078189399097330296387828548199643314674592346604657287466716299402630503725649245880137741523907208072413559777078594277081788101492016751063652952751275081073130766214579887260369725285855936316970505251965787854969780074822076503362390328600767873021229704081724099077375570343684242886421860490448134857300713665388397718769183548300978965977066751783169251047936572504825646510042902691486490456907020703160708364312971819836160701762890283042991252943599701532575125148286618865711080255045820715515282499583337706914261289521154564133784019987296430217647369933873341839106530383643201082000007365857626497351854264745937399337957567894113620271042904572808771789164998285962516588724401557203342730071387416562253567977503874460292158900376439541354151505043949233129473855967321066072990287540543970810263696530368003235942342690666150552670000418791075120993367622695151326744669344273236251595769244962159420859252083389663830434293240457439931435701016376746213886640178531257122999576218416893609409730705579783819017022971301767283848332568331967811965497328005500503755255422524336533598557324627879441299946487169976564830730244412146331862912689388343135082758632086681457794821341166279310620623639928083155024608900887825797876647610779894323472343283940266658866983715328137926373195841439771599181360131243694195976874884136243389403059755610897331894644523783496339341872791324097621156138958258749723540323945829852602727388723583643153936832986984913500911591959623926308248203231801170531708202030371659207551672601231998527551511167525474542086938999562751506271645055765252755871967041776249636671018743956789139504968012278395853095673363913344165104928208514817568299731384991473509531959275571163848048057746283015295133085861936306605298569519316225480365065237265831530536510378923971796409070165904118504407452830156100440006191908410365942193532615460342970673478306414564990187034573867187017905351412634805357742949255992973779840757107089025884011973111495392245631615179754543763578839195428149888784509117990395150665919458708377321914643803341491980311571619827569666917334195838021062579754262857384342888117107781580629276116722574600305118379001259352750098663454537280421811312861166917328896317563611633143065783737468433184856580417303429446862075230785288659517437806725002738597606038014774149995284450155105738899847999491781032927644997968689592667448353333051794581544332851190088343618729985727076748344769124882565805714419813838654210319740116607643241508561543766434413852706123136583725723292986938099321492621086743520974043411310145670435377550510516297008148365177366101691168566563109788582576910054313194889829497379618976359248787699947299886784470226066707430366002503888453035834391787824194184189261780997828174270105419565395425132783859421227647895240403895763039600450446269445319500053916839017110331737902533270712098125239960357603097105403385808327174406256099100745507883955912695023186911358824766409911834231671386094036541860305380153139812671293359539159025047928103101308456912836793571356306590809884257704316507131503584482289899066040716068385739299816918323777635076632853215770663468543181832731817242509506198065715885584497633743227717829904131297526953932461269827991422888111435744612929052686436600721697349602596392009699233548196569946055574375789830296695198604251644130192188381862087007670061469360992420355013488740635417374480655357935262255126089677690340890447404477607806802948777563627762002440663211908435572584529645546576102243795929868678963952041732866988452153612498901680634421997445692367090795807288959413665835989947673381118024199712394034933280833209378790088660435526552175025652888417564669444673686868986953329033750290949095671319792591650135770779891539102022416020570911876309364991327999929385158018464927477876212045063769846035067467366252016910891944642320322854511686276973885305848642561797659403757294360740415629355096014824579707967846924775401569339315914519530561383994516789893172676930762614526274654492711793756201518271187169047103125337642834752047387756290746568383110206721227232570016109710874850486951810758908551295845086744957491042889212668123523223457283087132247665260959194497876041150183683731366420640553149622033267842282214868627400943846391430112295468101321935911089117483200920451803208959183764406053846797847330756418669563383986300070717727211086542752296610838035325797087033574752797588899453068889074857003195721029330393922189957682508438905010714680036903442974418387169125807244676238467974405355282717748467412132893746612601720509561300893748573959755954483864198037906657168403168826635906770683857410661478843864911093469578435010736860143726485140352351722212172450190015650197460429447969507966598688743133667126026164747330153476673934816044877516464232349651178271796042902736285229582171812501369897266672025073358836986630670765773455502112710186371132928257486577398119441980896061023571332268469471324829677291525976070916427719997111591871459097772026355418167285726987465999942911053162910642635546149316241940674185004067247287710691479957051408210072336570364778711890321627996176740771668654170491963315315187256441045498977556832159264166538922302780900033122710189739766431027568205608441084753082853765565410970350335275812704302705747823710291101932991477590190436745121878554291910205079654917011097532597415317063806512634790282169965410634742613950052033317413218575002905562888115231994710238376887828199573867923237895980682930712080405858822750621288107216814147354706501423582517138993154001050579407901433063676896646316068230869327187627618423373494581646918125269293634202545609423682024545393212941132842240751031280485811230029085568631179866174414215489339510166303758178370625746867910267970233521598676600128403828139095532091320466708775312340032432244125311694127754142509423929484532015072361580253856429843130327922821198755036273036562893516693289035812728671503299949354889971124836297770465326398283905678026559850477689770542036907083815812879462875916994385298393514668901264641988901974193944446385366352811196435154217317094619969567096726723954607393412415631239390341576845062327378713896815016812360729780668370122136431365115500108692980192006997138979912269792376316080049853299741106770311883293314678068370806494649697874794585577766082999360440534637942555965463951369531547206294235663129559946421984940063290739780513030116435122770901407822929705218047447254795538026912158147167518425957079204138046960230965486359419257687784006812485098723719414041054661186264524674909480538924396982178521651424405574230702270684278262824381225230584354240402164454109397804890658748128038245792015012719938930500619467087785845191309045764832234176867999807221312867575674108769666810764689894584406651292296063276798042616361580838368684463336598485220361778837211300045966436921875287164385953378494851332209582634741409011323724765927003513579616216764602247344377437393288434034731537182704592460385692744185932497197796888603305364310044800498952157017002370421766191051022476218694999673972329115120469695840005500423959783507236901517249714023038358900779972710779159416574236693724250783041134461241988059249365810841993120664400270602930846455737958694024993737340176364757559390716563911352115096962135831091119594496698635786320919074234577935547779604609056605552405649638175911976821304905009375355061151125448394899287036606381896591405777489427037961846503975059312639905871195576090338286177826093358169631051383393589341090232115522402629250669485593870720342254291622562083573565865070552056897301387169395705851839210513939592704435207180699051089910321049238421285840783106225417792196841828139392475484229115755614242045893860154450067047412898174908489006455822061083494853574843134437117809997421095788013387443297879345378356130292996302967629771731445124149957614059764046778893677585348238099776231814780308310024261699051523192994855660175707082837755339420904683225193164653217231742967152356058848046603813293885930712546247484206234947581280663954556121429083134187732536824180519816256077865313346901824522626955689244252582748457592530031994098192600051418634746979725719022591796879677588877959759351426234344907213667865654801335632591911934902446971688776895577163142619466088296197214398269892135301957446172223927461644800299879524085372837050606777350358829095226845360402062339129171195154293033705264939980825201742501378077220654448055336300988450434625573291457298319205990249841420747243297793300317766393905241447627541134158084812153316165300912451982237381082021282696896750380814670071687285070356713119589677453401317897911902990534629531422488503115485759863112096829087916316457046127236249676290378171596483268218144857748200722692008574346841373143891662236760325913822499897548357326203718060912471454716174262867257201253680482461491819555958468803848956416257040736051896909715479054758761471929934472392735826732695948310735525386811210281612142684811606127506856785112555008716051645124080617084635378073931263998285818430804130294827534764104990971839866692135208682220634753848506453876618537780244216787415401588011798077974214146635839595518131584227064364645245884979815579769521306460219411015528115445581608672877032971203589102065106659623437757536448703290973267076251181704466514892896046346273966794981368159850791632264323354045518482818358590153356242097678932447410658736777457845439631970422725846476350541068307454622077343712680855447173595254952454202536018070013228220216600568185793569835749019974275850286048329948112952954751672609392103744001681168523733974027522251953569188406903652113839205674751818750343347675445036625459119086463171242083944076335675555457967417182769964497400418929229836099366087942925571352453669444438608898086666238868316462957992258236806898481674038587012450642289033088527959490796335141818980462472114614622434051758423911963561823677404793037264910456634991710766127316996264864746679341846072146141588539322705073786081766172994685683003508032775460359740681182606441136020861028174658338826968312561122859851963065700268023566906944530378898150804546701726061913473906139159138250016988254972909469711696644390034540365535278599439179452595608785297744405266973939390183522408736894937119492908733606434862509275669728108839550576640501806775073117997486612019393054333611213252764474758560920394773990103324187442378280894777244608110466664639917283493078817248059176686693961076656296252627272905283476225314550711574901449665471214331031206441347847462620931111409631404389808921385757347687043770355251542305511391792322390173623618991885442769365823593303246486963766627055518525478464407532724559287560167477228723037879846206027025927577323934759431843114175505570549098267992218011404298260239433636620961890748100966400066886961470883014382705191327673926455475450499851342956056154161982731101477356918870496684016483043430082489031410129708844877119057250530689802341319677718819341942908957710632085515555342419424269901136232555079985844343109376042275507473626856117035059787912720990448221584001806468715279983736327194085226651402485076461700341266627283002213163584372507502116788068446001959787857019495513376889335003129819226597962355500723911243836837364367804640228706290460631284285509413701755605474735110606417465354295920586897034546803170490736030335251410248156444325097580920798885778460098089890449019403470834094927583870561335011233086043328125659018474196326478899903452202978094675966880303175603245543350881303629156817784154864326591061057840709654827432537788382716101848289256782873819060543850981629375194588380492257485905105585502409092277627328450134704425286511003586704725608026258514274559748099898724463580359422880811350397216640717089937208250181719485803548614947446977281406221389316633009787909277520760530726792555135777005508556938350332018740659980570520949412976522245641427958625705175037531793629991362473637558278597371638178291637523276553804399121101394023825171547165601967135954854433469525253113665964436821812419055372321900054633963895380093680647716398790033550289545552980152620527842793514544413176130300908302511254041362645581250578024169356845204116179140240092364986062307252529710282730658167772447782136300654740261573372060280236642262900048253600822046834126520899542239252673995566770787117599866451318985572203923101376019301799929193438714854150605477521662151447162137007202122437689144182247475360149404496869438288359233409923617678072313150971116633191070084043473490273413814786361742722802861366014500024600730890064665569478153585699895003768457596093849740127450326164089629477515527496227119549752750208026478183072020807495666872754197494424696305635798793679146028859097065093529472669138722873069142672369942030995499987576303682621219594580208999585123310599259111081082839326988826257095349550053631477450410836724673504692957829683078889953628533560318271151235914686365956263910248531345683347945806251056529008992004538089573579947740236698145534978366757652873317717986975011345246005263523483449431933591579829330971728371066168361156275882646572860705931123204259301546628701557994272198383979953733872680184341254683612345122709764033801734925738726971210677172905845669894585727967130927065169514043166213186599891804976482940201862204189538966168988972447246974588048250571405791629405801346725125860217867810885228585370346556244341941385039811349811750377474073942443787762580001933662552973905831831184922512175628346962023231276423655945886635925041495297144564774654425496528883805563442776672235965929649647253987350279038479918771435460029319667426410086984623270537559113976364478391732722300575909375338429324487801138775229700435089871138771402403508371982597344750222352676355736844477839831211439899613211780446143348919884656126800380757183472424926165454368430951619441155217595511733445889564505902324813057048359133392398529757821209955921731699351879772392664481798324474619225122822845324007328256228677945414907555119900522875740869115973939520058592095686497947424415167699782241345162109234742116062742046023934525560480591629402248139062864799659505640853486437007503944949777364166230436340818992237437435367955989777959759566236060014548779202008761854474294515684454664224189683106882613460877226685678348496429722419081468314548800883925949767942775598832376307163514688428341704159064100768538345632585229439192392362914853669041339605496187681180251524500366124729185138159620564477366972101533510033978278172088478396784054847694287048967592300123856523518086347269864410729660333919589931526103855475254216595010026878325214385221638890974024698400568668356810787154079014914865861946788877917592720719525668501503757187932611387605921160567196866151602691464216911226262145746751432624365245431745384179514707710749383143779191676225817985684762337752096199363458313888724988906946929675180481122144569287097227825422753696599044495221199801972493907658029223356372174294752276478552813561595653314847690138962219715402128883318711198376608130251256003812514380790096404774574336261992474199012190301068070871701145297212906525270608684730810622382798978491196409965173849425959123873062580282179190566435985568853099848979830791332684380465184130977488317537095419346191119453046360095033079067452780640210393174616079083213368998893872009799652660067330729985474110196623139947679036752692735601665611667693107833196477257951729909485498689672172685894129401185873797561499259776532674578079999009399458759708805243885532039179640741642468035099129393344472718693989637826546256019123180957401551609773872404766262326369113522766019016447007989225833055989814161879797202583860464575178700985423079025272289286836036567971010190314601014487745604768888882306619772382504059053038781812648930148716274249301360464404659514129978057077737434746255255990908195132345532755665287124290779479529685857107087442762532879644396776409723145193229935858629070995526832947891056189647816866281063560880457008804048471368714156035017352307792248493953735109444089453128880982845253717514503564883401788567772945873287904613547883137395475859028960610017656884576712495834684252859836436458909371086343628131681640002092966961249580621801570071271400499515126259052289369380675762888113760055250698528896114109768636080526034377118105652178940716511042839746328810113704685655073942476014214359205285935279198209011068952298799999640989872623025033096118219467785761745736367147900248337727447776614740367069263664366412051808540910548811125959740674387728083812400394115805033277580329729594634009028303079616698794769210531549544942247997373983959954887881886760399335686245549471750807657792244121223115216438872329100857806532935076661382068316604581296203533245148981808597545217395408030202372253074654451902852140983658442898071118580092966207167773678044258881952225446694219647806592775148248406391696115068959797555921083503669533173979580718779700619363545407794646508746561362561224531170613667398427897422692411183423129528504390945981500286303389998798041018949777573860408224372183319152934542419987701943154131740979364905855755535901887019920574172928196016613957235775185414761775123432976388550761683497732676095636009497303501970728183129676071557268818553447482801500706759993879923646529563567375002010113237433865179599755118816380282001306538254503605587695824843571244247677009749885390425042485387747282378368323284671885447786335428824075320813654974036751722922954321225722384273741924366947096858472987478017249073283601158717024732152718909792231341567590998048333857964257683326572048374036079227320767189434798747088653443378876618741407741392266504518836861190738390602818143936730223445390752298540445603957123802450349675463083907682061321554118781879901916706388525731589447035783638171710047369838172456565087474021182837342458714686140241313544974154812493555085807834223530190056667980568192509170108481539074789691856159547116298680069274095251754019017774334411257536723192218795186528584319452914212518554813349716107753421676921673132832418405061434288258241043436149910327376162775328252605391629769701170129421100522276809181582802427567604045535991822508597988117827234090160080512429867236722393559961346495719217904785180976532194125920429956679018056426210713989413351515299688370456176881976570186071707758525555926369440615394509315110874144805966275773611712576344428181835369069708541989319105516677589039848450839576027975381631861048861929686055056191244018085084047826007231310356869390196180014426742779550565934456306694472145498799619746118804773461394975682858333384775172110907327755606290282682374655703845465214382121570486418104221922260108567541031647569686525235924527314070119333700724118107758493554696707837565744719256948964626969200434174944443192997281257394383936087686312373523887506018261592270200915115986205161508529793178003848332628064536035841326925606356672746440315253862893146025683297333310668838532077815494299655118230571136407308546187488311545302761208828483681107706038518426927888854617255732493334207783132215564015320374628940270625051396881658018175955597463095340370625214495085476526611545954991722079368046042446370854567620875628255118329777300497800012108659557608055295075489416946082368953253595752270530044547847110683162388908338561174106266280896395495306338369672349989749087939626748826273886237691827086882436756067995402137706961049941681013501621860599561261539168542452557030602794466941704344486541376467988258744328016953744973678316264113780393638202740963778536200147510652221749959324150742109860360460529122083820700786067917774721060418556648590366119752306630611983178605519382721603682755413627005013778734934960806199871374348706784887988748251430458920260218103186725301659962485992834187616745165192058134222891793017041370276217398838891889501250254477494282321790692233447078337931857947839919361295813338095798310684904052376312070343596205858471942822428873836675459777271515785761055647701439483930637804635927114966534618664659776325178086976317491511495507476957537677741286908709936046516317749849715585120174834459236997096768873963851372943994945500717728284318283121352733717726539824427153077014236161319318689444895124280888129710281452400314180307607815940558753499671781451060162933630579543813328091947580066631360296438109806944626409796437619878068413097555274802838335928268050152266665117777576258839015471760394076289350984533862540260034157529323660322718619636896354580469934769477924243227962082907248734115123740122600509474217877017622413839847840699523961643966044989079732278851269160117400650753336522290697639739997434762196004912468682442133120971501849260884024425778080878902790557996168403418143200752323491972783182110929111400892392485376614158898733062475838607290239972363345078048886254889244717142568202301307018121746395006839678145812647284062291467141278077590192479389084004586265180308780560897437767935402082509213688204277104208711823707227084535600011844396573727315252223166406171149865942273300295554199009097338752895551245555592219391166430670522223109134183300196368946374136014031413487638082878356528431395968926435972244509132003116840476680626390579982472005202447625735298000765585509204077630843386639943399616337407029711262546662694511836624929727850356932637571699264121735397612493061323352025918904567163999537056009119621905430968864465252001398207856477747363963079161660821455069747623130470972165691086916140947163439377700188209633184509683013057015648358087593165927936795216444677502549239816624011649508424587728608732585506751139105766546917135255113303007985506658870132789705497874219193690447882487400927053087981659449939866624716163401477735137554971560691035270300173595533355581134437158427587559814557398281277551632896049387154701845566469150522199395991555716092240485560012109865508334529597937599849414744413411340191767369816036628202241833178078154430804218322458965198081799523842541681164860669131955196769449515080570415504972281470410408331938859227111565390101926230558274478619869693318437155909144111737711201177367406568850081863191203919880566700074755026313411913488653497526782329687979374864565784805248175988895628768635046534834939091241743967849324948728094674430270104841822886154435003891915070424194507995333331025823630926714802525475931250111051991547518567040750130312493500019762490506155341247881932221336719067403162111034479757463424654400087258659002449406324408767691731845091937084599810472089346463803966028805795929217908880438133264871119792074593884613164813047886792536336929555160412790787957693315403114147826417586636160406310317400222727503703685971190230240132428890949195373873701351129865662248696576700459482126664652794349876926220548789156271709723944212313370870467383091568056222317760240605070740259120705397778158411964809575219834787505664256877741965969439159030594994031892281127691810589102229138505317547045387104379109182660832518711944554167942343848022559002283178393025702352943893370709726911164784153107157339105112456711272255804904778776861132917615406594095159822732813064977598312109265925090780866908058345199788131812499515126944328713461604499178280387387978933485228419821978725553681690371316065051148613817296228947320933325532562322674023462031690629570585787690390012333115968978672272720951094068594926846085677421588450496833837275351701768746044745951488490320232626245762682332683289353420327688709498551087377794425820665673236952731033169198423971698121672145632307915148745670194311493279496262670487734395473622577802182397162379808911579831776311973080508551850280995262573258433545685166429071112778181882197801835226847784951731509455855149888630603199066767728121161322909718007486428086915569654152451972036174669246899416394370013488108639502117575348272987833938377231482685829405252470770184058948905545981878855891169159161920557627429952755876275032621690674684420938274003758480638790173548158927957657805856343927604522853022153073836186405779554289425347027833891432983023764032008374406980883764179213226122709879167914071221560803156787561442531807255101930082343861760727306962630613584949163777425424844439024182902060416896979132424194624414238127646992723401651918199272347808320176193490618639420619165796150609441106547264783910839008289165368859794177114929031273684548676658532252896477162175778785670463961325206246372003831328619712423551620285644088704101192037245080077051700777753736378812659357768064219340368313152181376133616354499986673110475542559354709521706828234360906880772822734520386336441509780565659527015535908275844072149508127303708677960430118079346891579946615398082491575390812220203464761944517276386728371004692249063402776075406016161879510002095241820897450538654497587697441742514602261459645988042821318987398233023468536670272850725395684056520514759364091201773780320766670355328562724063156365964182950539030506091347390881930495130675502449133688791730095018088234648855808061977030730703010672417059162191736806053459098774931020438702324509226736248206556595209580721448755786957998850653931097072921816872606140460293964533358678471317608985551348966873873464168287159817950485732118538207349005466667948696817844417934381558130034557682802457224766644615899914298528834479990704858372972407144089884776040499510225284482704501221879573799700785352465441668934726414862097170803754447837602023262933241952795685031576505983499498671601952455488582754280827764537765928274009070276229429520147403858302303584728169859014064495839403947925657945208091217880296825223894680001673193575697393881223648931004714290635481130893683721432096352436134450858306328076685595249578650381930210796031595437307394228244351760537558192074946758835591433048456239089519898983440974656796448746472147615329320023843489098722258943190989356379173813811641885223996733556211298603886193742305829344497590481476241987685656965867143727391206670774154534371228153012124189407792976042306573696470481103362829723351509854139028595686155209615420380620369661745358042491729329115798970451615990902700247831962009273262251128038458760692898809092941209673608845815826098259099902654932909370557655940402629717315893221841964426312700279577932511433834631472395851327821282675414337723934612296555046612850100356472186389804716765175547313155864357217698762484352514792176670744897230698691812368407960297286836922793247397525798413296099501635023693436178643085774843569500545042690699376119526191316941235944015561353718575421833699284261931980765853795185444777153860245569084471340855816910378652888444917917825114935053925354145369662402184515487926392804533307915324343773597723004629537288011093011080307661331539465412150361502367948147439524610679215849138542415622132977601069744546268626913203764343390706471609618282549032814392972049309207006215025215134311856729361719377175425910420056073299322051629929688269511437279695915992380809487360503781621355808172074800969994173330414403111873736744410514816812292869243610349742822608390871634749764871047125683597687111914441053693459219017085660487329245417669185504552724393850053384114910647188384283301975275937389368579572570375899115041205288181875808833489689500001764911988950199891970303150420527532521949306991273411040507743630986982814095148012477177358956801501227199296458246903493537029930325008909960221313922736291337059548473506967906512137175014855180040328311351299382044682159201309448353985193532312369779632652165776391627153591702880118109207443926541601944754905735158638401607541611566464910953172961204592731351112171714380449862973641155992065857634010330225439463835041697626602281539050188867130898517505260507248822957415220438411797239440280026102148599893729625971046567908412230151796198148912050043355855707512866497557844195978998754434826542626591520824078409194978056382291180917432582469655412977144439523807528606578385534621872978044227946300578299661311607687689173993900568626069756165719744224806311635418198748619887686254103425506760372853621603316518086341460108188521892388701560180274616619032231047608103296799634283571452828093666445428358111903815550645919518879878591166087479683865740464678432751723439854762806197872502433882360544817799807071372945686464164994329761225957748966468284249417905911353564116639272694721483770416469648950492146477559034824596155382722753472543936743069033498945884853829488840037139492505927561346657051684178786277728993863980847465426397317938871017709093119296937764381908645666192114200164064604091935226583195219255472466903974179228102368279259691361130622597121190686556580200830023113345340595840959003058963615318243781398245612007942728852495152607302538288889524556156676757080504075632840694481363170809498669009543111773402902306635636139555055166830700332271378776879672708621845990708060409860731672329376721801768206305541362012756751455586690063182985816157469008604314003244266066206309632703251771055261882902501576909824157767468661343509786377930231245499146691853125525418217203458229959174428164455597109294331398453616309825146892897793315368744187566280944050281141219244744008342673303234460817900922321044575010789853919196533385112704690844395278950544454547740342431460585923197981686967346598868410722775700087011540305088422191603764064909104850424601391459291712125404604555655871083200231554707596558859710142123493436564493983231771489856495085015266551168866190173447977780693084027400684461427988902708495286100676074576503712748365601979882937850235091986009030598321748696981533348990171272641335654273442604075921062976826369133241112323904148130418178213227021724339543209781630455319566252118260107467416410090334076677664466344812974354160196633569095580757450325400490653567365088670073535736389032320800472884786781790913318451740820325221232469006905098274864630635265572908491910667290538478083559075343161838635590849623714529564634286384274127781274457830616439388425161411896742254105977235658455755751103309609220515145287475140607649445253006567172968440416264693831934716517950516693365412712739566618067965898080346729760814658029118011197832506751438958389998452937411297572710920403511418627274351249120042674476734918816620160706769848698209503566755062231541656182764771209672983789813808376732436852784547070703986932110878974699007836266199165386036863821018108966415267869692696774973880055118270969479611169299371985289353497462801068510982884638847194706741386644057728742678566042653144949351402085338609866844927515004079846812531980043531600095658344754145644054178029067481444444371142736060150487550580043716421205592572720902665264298252597538621651502635916483091862603882036542064495458335386328448945681047323515010417813114926747523483161655641443935106056594650375609129917311513845924388832637454355594517893012263539650955175938028147087163590351949756049075785481941316747387316798825169760520303204555060745878948925925534702864065629149703309821446174614504973028196563989490588627192855585732434298163990576827778968709818576505477723492683549089512371071067578022009926298147574770239655605751092754434339017297287953582807822308956001402181200646524338767676908427470231860431115192645318344859136471469723389010363870226480103182696871392109870678496841235162681214070172863649879367202944902408170467271764905964075139461698365219610159480649338850224596945431059918431649662192004933686895194089784914053018467645332964481999093378654599867405837884227897164780007366229452364056353874377837409620163299116915852696939095991248809442126307138491881977178046137984265118924850156764233628049090565893005897159967517949072145722122932410442376721274421114711313092378585760245270928246657781474484833184636718182255765093530189629778073559924657154423418617466878631731085569661586257925051281276500604628930926747121018436766167762208084032254148804145830388180209315729339175961108548249630785598311667075168092921232178810194734973362389449373321854854310363321197498000018281052513087192192708595624766636910485404656220079884277361077792435497906613771746016589611280687645567661026805537214922149984325194351821784663000943358548405705045373890267005139850049342981162527724523192875862231013109562624052015179004823533559152159016402546770364433957223285175503580272071565039839194913794550084576679338946018938410616167397802606889480806460921905028479332972315628101074143838350661015661050387307049826792134527239142498955089817797737463133254204850134136782398983335440398178144105518038258291827070985624592706244162861958221065353369308451119590739662241823716009263392376167458168457791845785043291604654907734049358585162700191731201297491947861284823840682630382044879012486501021846277532135379314743500068889441832868368074533628788375568741201896025485273394913720187507532233365990913529197266707948262875830089494753975966395519937859626147497165963074174383436387679442442490063027171218081562962788854282225335378983826062095613828683449316837811438568289556927428134026928683006793400862737053777755845200983658660628161931096456211264071198638278308897319462551623833825970641148267998998799804541585198453439469047490628924764631920778022510565914379393549676498621149771067783502006940936144015671850338394500667024494108028694516774719481629420493023015305198761337219269329576983945023600264565888729118473862849432064395803150870411298861201428424244325447567248436246813773475566761914290730329555467036461467649972198521178810124771694398066225447636351176828997448674195603002590690795874372068556347090577322077269731741613461889232786781307234636776849814466002237402565176152496847722191383805578933146897329779005759442747693175030359200811944309956631000842672268490303946349617721948048696408263399526356523991519507955408636252261719913735152562693844088997601553338718015837919972816080409347300333739017064341044592234600386756791319953335100927453799408197947525863925826012074611182325713484253024604946711880681219224841715590742424349259456556527217802612364551363395815411108080648712128142003374868376349914334120796412698535635263378496623956608156977793357494221701646606568767061500711697950422494366806558353927973307641862531521954340400060089490834276950591524030630188412069392720006079145882801129351116027075781984947877778219755091885409302997376569404333149859214249355975575075410308964099656891102945674069078527731796353175356532869377847455833441058832376475801138663958446501364171536429499673509815001052200274405432298208519601738211894161376693371689913727753216969429815640031399341540773722892851502876617836933455175772354775474564591956486388348930765919458581480195612148596757247546295174042321250415328607426428128793308098704096130515964451279908575148900019233879679393058615187133549692570409612075132424645574537046843174438535448568689331934330041784793858721121109292753540580064638002713315758719229586140808862899511505374836142355874976796338049625638885368426549449583103464641828404144508882054022244262470492440776545283642417733724033700449438167189689386079790177188412544272297019149439198772301672196980271680156436712447163609496246357040944203971856058119322766225204478076235014894211114420877284302958992092067195449522681574123691880504029412061673512215426128893270804557299065657022054114662216432358823748796569307618951208224694929097792168582493197150248875026458865906544242179370939439879069959056217874322208579605284146979729780594156649375382702040131146979892372913322948056227554821852904112234701639915071164407586260658658227454759773519544516045923532808575191539312510286947493273494035441021023577418409765539588561642960421573136436546913508278567700390562599458990901020794350622767196345448191520899871901835312861826914302514758447659056011436729639140171316259840839357227355493647761557453768993187692240535463022307010676706986441678191776690045564022474573373655598916854206757967341090109589520728284218655069814709491136945692481616747067598550201331091256423028349115736544412026746836170524294040735025667653562027002676501114898312599576873655448189937454682847615153904058209944215218385387718522029626478516188824163696570132385858477855591166317574117765008679870632653298560955004383777511377265587546347793440010441192230484630046032690309684803252210301559877244764860767470310671968145263636765537993108812962470887640567079427110891650601919872258853830730408651378377754482649588511165472082740015634994187963883069453880860814634380563078674201665021644571554454585838199063505120111084154330074162176305419289124340034789481115016617811877088646105688188975828213985671620225446509161861540229283795309199602385577769496478509041829352906802994376053555277443742828691724986154893620910267434120653811303430717536216283975373959222342795481201348988791663545525749821464101984685196599446401912716377984837913958793216070819489046552596896646197083648837235133238763224994478715083328243604514791902097886506431406785928960896709320438391890391568391174437642536681394364456235255065266830664359346579459357433217930209916107751114736678905762366861320348937788903529169121817030632783883626302859045719071706251436484820729935594484424904297714197113158284608776963027360507857109009079629640384025450617659518142234271902042865139954743332514690791002728784006192239694954925291790383995608939907730620613520058689709226672329074060759102713442827348707284447117263143336334078529047029254632477237541901667698440717584294221193977823806389010185532030893001337334852418827364596157637577742695767969649644069129149206053850918569222987027114519336540622289658457387592334160369383929946776873564870738350029891081532083182285842054528460487937130513792286810248848634155731980531552200085508181959733465965724150017112011686659609352315417724748860083037769989648557684365611182859198314907985684961418129836809582067911619320078133305518419199883662905105927085270731350536111914249966605605227737122662625071974656913424154871580415420803550846737328161429904599555269739146317622916115945288551318775923558511522466712614463307912351371793279593599366687596701758597679898052190695910086309028058471950738450092651293860671480373787535156557731719360653773718461848695733037123319627652799234740103072006089513905001401845512258982851466465728703577794805323179345136833754728870193981328360610809144771831859281983188349538974072095462807953851650096900485098271521346317777507842648295347559003293019200306068502398992081299813704942184152833610916674927142064030959753161326097716917205315750596276055046202169086914038934779841106296012159357314153097023673150533348214996596027718640783458886468394582224772428682050513421510789483078649921704330786956274419712307464206813468816160518252526156016764291291233455612653100574925202095194276922079358485723861664256242279860922252550816636320782048214349813912889101936097782243864477585945067469529234341534993751336405545235250206017676510500180964693309924257420789240045375829646221095106755552737198634511114262863127544374605244478558016191199784350652701972448461963113074945257338717551717282676846428535061426562410278853293676379517840192983669142119407108694095646200147902419054642146651655805795267482942025049703636951285501889654937627418184936393790086475017075869835533854335786832285935966223655159241238975070491632024141271021713161708881172815529652579212888487900132441021450907522583352473872972464181585396610899531362807508801260143034873143728441406707136149178867190385592682255525146450741053623489326001218255762832191763263318107359680803652239288456556032931779231988976316249165276319068761752121153112597211711508685963001256145602922273230130047623959459373516572119727230418618945112298550967396436825356479765851574041622480034866115262551898615478619460406568901517325563752508269721949318081194794413657456710640070624170630127542828568668797254995715651796608343761370861934811993429095642848467523703607565591870390725294412684087530995707758405691047270453262272058821820462396378007163877562949395074171059712458676016975512287045770680919576531034956197207888599873816010057371581685949722847940253605038435833951708580778687928556906772391649794677278596254384307230356167888737494204603256772340399568266269637411344869340467823357476650051075777783195595784346101905511378273088616848162511050655829490934190630375991727913071086015734011248278172300772737588506181243647601888585172397965481032187076554610455647412589256548418224904687232517419646386445422544032779939297696995780418336402145422039362407320899172507596591377752555571554502768168349692298675533844698983640984263814916490994870460242306799439831319870714689122950640610356863335533974369253014838177128500140122388814581025207370744920171709809926278709103764639735464963080818903343679386707647157127628512570826814618991543778380534676857554660622201580666210624356863442313987776127140596077366709509020814017022139898363700297329153293326261433751178762647763775788090097917238253762408398997072847951005600762875445249878573262671908236960890249775499582825578898573416180673925433302355917839093967703198027058795257301146401692190191713364876468067523586201799795561562311957766869745448458042717327680643828795627726945901848200856128494688186575016919449554226281347936068283759140424022939220010930461237565494576179396287240903962602679140326015821253095906869803286630038094916953512627028475634543031046083417900118659879374067798698334103387838543643309956327835515839707901711495919731195962766500292335215295879087511580561800364617668589283855117190297792025418188170909443046861438905398541907117966522410406802352541025581321615290757617131767791123822086514470254926470021430443597582391338656945099857143132456796085201121878946425524974000590591133691700500898083087835596038488120859332911341679406005045719297659178518747834081672810545595261227152061667912978615327084910083590429860287017004150333801688912587245865839579700474335921840906797181256684845391813597926710367532046240801121344112869982636065215004355742025844373678539724807763209636890829194735890383558548726636886658690648275557241158525767688903793069661190820778235761422418521861373902867003231411037428048034641574960628948314852285907074390294038380733965004237756850691509180044466115612943526658616031942158975789762369700461784638220647246612742978566169730720872115710951383505173878732746729010984839090745478651767725956480509748306771149727425582116710059319828442945032930177090266494957430242958095958325819811616681045963089091584676468618186798306959539363651070289280878832135545577658703781081394022684295582204112240078590188982905107368648964862728335316587219142221915227243689674930594949056348724608779585107093497409712376453308662405935688071514236945746848431746700502931873452884006882268020342607248192160840703324007122810764835332562816455777420903116053243464645817006009654060846856984779273948966161001590476571750284154219115498776854526749998615435357890879823886803035296481859303451235207430530455710908926306656489783328934863977385946741486322284852563113183603156135785413625621430943326908865893921533756241577449390061154384334708217153705262895468203704043805310449557602249374114932484575414022177244118057274256469339012674496987709279504443864006188928445541350750104047068415652519517883609747724007180781083868448807020573779466738290151599325633718487017914397211665835224771458471230726999931960313596001485715032759195721846783202592679269896670321292414542039159791507527289699349542925058085850220130314984109712130738150763849395570340745843721228074155064430030667575289844105440475745452780607649325375327238265138338646815069868665896962758182737068750277534182948717536941657880298149006353633161682177806397830807443574234712746192015023542547167437682947381566389572020306054994071741248817451551019395137756819143142422335482202646105117538876974224973251861493313506422189534109868896549621096212034593753899504958471446869137842682076529615954146651899421305389985411141668997829633422955203634013468028007238861108906428940140315000013469803992954712717364728960121327674239759244315444151489028645654327721213042819328042231268534344273391569009806702480756988481640568335055111738117279762036103687574613404263570434954326689260895236544605448970592481455989052695479996881405768449937402247949046339067979461952991026853689914103306062349287469384001007822562676668163514509413054364234252472955299361037844315613117812451517380696300636924994325080799618443112933832158434698530822413319522084271788169342451403540768583751478336185403048444446443907418635951981219137398482174041107316292836612615474665976592828358799467737368137628859240492039996806008754134414043212111188835570017647159513278361771193408467689090227423769151067335070346406805132697193224717949470380698834619084635704688764107115005713478494960150615464633503012661360475055444139059150131738302613796119408988776351505298908990947410997688413179610414516515107337263189603985205545049678764063777853454630879112454250585261693876875821878698833998263427410338131969891025863163433343695669952986268758541894754679083416985226065341087877605904378735275950902086130030393129612226133041388067940667749772363312900100583237340973155380737282342514947890782747194312686184098718463292891872136495525655145619767866967719333250839369931003497585391922880155061735767221697255072297804974194614217089546842705306753594233779562973053740917599636880514107357938913141081513486841552395256242324985311712390210077048265202214376025825119553398671046839734125410261204957183641174202269526859129343906774174199187091256419396852732861060615807877100318010285469393134984764040442745102852386072454080705060003624819745116755560435434244208004883509494159673743574502824136408129962826025838468375291872973527474469841896519286477330907671210174921726959445027738130449049061533786639649694609226636076870554654448476400612900809225743747231485576906094747805565125991271322846288306274647777753797036814956615947871634830768978117451964912608599273750625484810683884824011081119249109521015090105392103308268811460774813259179195610600825445607681892127649355797932234834940040947242645094307976658804029635909961393890010603729577883332108470857441252981016374225943056653446886381765414088655683120788271977329750936919361851272573622181620468682725533533776178447411218092996115544670283345683980107599346698941038383133349893260041027717645109907826572848869149579442265742152874985372553128386384379807178937130663253095593233275266759110921700446196256753205552985559049656379025793120184600816216386449780484359527401538170781745478267180981930771598838254235199375407462810212902671125690022092466219408693914549932074964772895148161114657350358857470967451535134654385890361242402397556246370478197809552095801259023205048126579817063616581434256352127699986115146609797701857586997991282308081126682627021409167368244071481497029302417058960583179507464854299758691353664997943041648578209905029905425929227595943557220093703559423547139583193112948851728981856392567806759976748526647637496567619857199392888131653377062865853889400585338394374762031944785869568172428730442385994641225148397451168925878175730402926210474168078230940563665369365791774700050712793679210357449211569142461878942147971868149411689609617704092098810013586023443418764977614411159558925844481750418122750529182876065177036446251379727209284610847049220211179234834370329099639192911587269505539243124152358044175634576034337065484327111930337442344979951568405576561910085392546371690347859682810536928991247208709285227808606885947857055554821269881761655568333102175402262475037478781640409055241359958912638449104814330415299584580427763476530900851021468806202235667677254970318255541110203698978394975719844109527313525499131854432315523273265306568165789598962481900866521933876111150462785871419636390925348571863420101256882588790901172925828044427544612377456862930026669745281096698615830041602063794870543835826089351899827999073268940175979625146669662230759485043960377454428382169409933218069328778298164717927648360895368108905320285040696957118916328916027135068761388973700125880688752594782409850317589817530161683766659422784364547385438548666825678397711380783741814039277412999673440328399567310865659538696283712917289600173531352369743168902225972200263354069221947208086030231389464613227824176335892274245896823372988722144471179245284126752977407069671169345171487845846937529057217797502646191696071400518323256936096004167997246720111581719585032736440768907658118065946691905709550928277079947239535852535945289746509513856388670814669664482849956020867417565079976153667971006968257941800862479446446145695870783244473455210442146540601665310608183319312762951825416661937482149645540762586567861529178370301746297570119387510809017283280065825301339971892559891204707194248105104755981235798102509324597775378996151316779129861163771350713368175910437039308031298442646509316097930633396344199590011071328586443608882141425588194236223262506012887690139844944475956826102604381902876839917684079420314807468921796415933304145523970197063914929213724597106669130360056178864238441579467800756060796355622139590838736242115821617742861080311164527611166959051073408438359168409024340179430894310059290147878511834582390809784549109303403428364191177614608817009689677698624092297884602700945075863329895849676432427700994439428949245626047039157004777546369824848088008835429901645804330207840760925393681822000901904016016197192263286804953589437090282688953586586438026492152599932628818757701762508376054030360373847380191351487162329450892419566927014110951276622219539531756968094290021597508283184044925611935140244115588692525711305887287886498722773045574020072653090184886901906715803699874526263759978398313341206881032519845883392729863477119982900291323602859643614906126536950493018271158193625734989223272242046817873060093487360003353098366697870524966695144328280839762286230581358632163763186739177779226096980533563668713658288338559824206488579783006828376114906608710209881816962960545217659671391036038584181631203680650859752118328082539985367049775368263569456005892674296133055081896122969542802057637257909466681551390855912213388463936701631476203556917406390017903990414878248883212942158986067691944764241339125132276234798747571319514622404094883688873659618820312362146667505490131510143968236814865322581410438700156866719379974887692208957498112309779549571273692803865048814926588546470240013082518664816904088811442868805805457980210325175709257155217311384763390897832291901326551433385334396764197175563839990466182714292279173727347217340424247556666053152057272259221985978338255517251911033638262680003128693001685141523560392164111731171786933001063569910338841617461318460230543900168314354332307082013497456969856517832346627778839123601547158719834912564426857905767145247588362749456483367455907772016569795080984615996882710282520212425251310444601260526254528851721396314556174723703923082048906783690201934753082636556753495275437554618304112403164560247025610935146704265985874334520779829651357835845032719211833806970996674243283047776732637888529128745854355075459083622962860622743008792433757917260089050808040280930970965709560865817525680629861200057025124347979147220889986383768363855480128441902898451135814017865534528459439778080523234787145812823743791930909795772107804115016365312030187502660167924406272437760772417472628235607704687414525088202526460369856046060464013099482378242167883009132362270936417150973423788385338471006988669503827634733071655092843892364140509527684820368783406815776974712222990887783617511254817619926994328392294170403390350234514139861377627432001197252036460376523999082779297125850447036112056852261857976392590629965127097289857337636595047329492213346648325785165043606956473003051507340786297637589052508783766491477140052653054009639944031055560844074238059906060859210707904644449539040741631850232786452403979286360179668785120167862901942553624751190831672639623742878503426145400151483585824008436496733435952251631057198064783458541670583051457638473550605377850455163093879122986965826606337396585761387453055741211549567637420854234005355263357661068327252716999189875722350381054789333417408489458491158255731752187593853010703379093208802095309213927230471275760397338174428745035251290702813654552107766364616465030780237885423319579181882371119383300534874022767195160988047820681449036060125586249200707431738410213351112629583554221420550246808821616636397157233265041274551274384798241275457771501628835535285396531015535202346651917239137228501043820107960629669208784664475206127888449514493450328791113210232331081590542367120224673416991415333652194281334875642236524385960059611227771246230662923419488147183763746803683199415262099697584520965176878533229801154208594737547776407928210338107756307857616665383768677257645775106181766487527169601421389653617141135384536575900343155216076078589661543543373724068483580975253064349868638839863457412011004216588634983844396277723980690506602280233722582858410278599670294634169443892550983908620982257282995100324008381465568122429551530048933168720519390068911763220654838655532132832248310740000107021718470837301481157973417415826361189244791062173327030509480727190740928829059655461223816473353499179101783453058202733591319008743943363788819417521820911725237271474203667949656197161554767572232483967252624439592081666520817177680339466890834656742011939528940550313440758357463144284051763382641779773757238290977290727180447363042220478535396139362058442396015956090747307248798788735272767561255429639108869159665918967325693480632465671405476470393924020653522101786432364440256370063379742329943454230275803199074879953245804184738909928564443091904244858557435338739663074341326806912849793016034968609086940736751429449388791854017396560609689992727665339099116442126886462580096900813809064347010214789692769514823278095102224929537353898909228824218055627109007995525842990900659868541271741023934407624400610614068329884389880526126502923750617479818691917279300049914142140526066507307021708354195739149392258741159461137758986226843516998081694472880479937332189060975203104675685950256892626356904008182808323726880112331021469097122168618868545124696631952450208917104377762036904950975710977739457993655061221816863721177663494265108421771003025790721350961989739781075957423588292543156853561403115380550964175848148926519397141628693338978720996248345864377102904068231156548560106171162767446742639039666997646597305205136643957669641424747145345790312559244701881626799576514925685843502211168837522650252442512272980299442301993296333855824589215340775007547632493434594518072345768236605726501974204995748778318487274579743585562932752545559628385505251888334237784800635467896087347242521446684870471984539771015428282831701101228908042464179646245373274830211797401654902928377524488623064145850258420904909150145390689644519385238068552819761898261127706942014794707428805838976324597785618741886114710521450919642994707103459120629731262330596617316852834910559482674958903782187310685463299998470356882765036892552280036293198843024110345541043574713462315265392848411967057307959073103464091952060500584419202511656070489145878026716364740716739464682929327642024940012495979673776261785669654519938507715598069011855155527570385623048986540497588430709034301892985873676463860119317479398913545475528187665912772131963976807930580976116542300762211767137005180819691746218158341112717308831813716915472152069402154847289473396711363428175428330040039035016847588564653090077185776439751245074317739107741422203869982926014612238245129106790588868617566670861553538055618888685128037301189301874440409024843031227807380469069778312056122887649909796821925693652966102062834155985262542715564351347632765262294311293112046111819453436031483379713544125756290827101364464028157132734324715760387000002954324981399169998999613915246726131108087866867981389909323724827487786388604960576454138038782643047377674316927405648867265314982572707631388564416285439304350227089587256927122944084990206435294357380666700593416853044648968467836729229644582330681082516267894240665217800814793506268492040025209362079666257556899308591291671728700479369604910358657837917643291214445062593700442689976109206540464862820741540659221235831205050518996133366413441918128535171390244553468521560209050947611675081035394091151767123591221178675009815501521116855761592495888796096892390451915241085340871732252567153238326367849852200321519772426775648091785423295311946243388183497158934380588510974882903797000816925396052030094323787630748597596376671661686407725457834647484667291834105554488598343831757896237631953818338768201919603080700963242740516559313841473157339548842698032838259226117341320799258473927184725195915700919980405989750074315770293486101332442187064081323251575862066132367267795421652991025739725397298553414615159645603568784493429224067050950289869276081275234557075578833949348718165960773427192370628863528838917373786918871043630866329466081704760311719311438191875890072305641421144741543960715664635418955296681226200200247641958386779571005336414381987537461953411620451624995342801790678588448041367033951851507600820160859555221829505835007891476428318908857795584373061386247891196022369741734019951974328354818766326426950235122409442086558183629864140899897841039860618321791869666805770833967211171117141191186746538729330216849470448936206787345343592456638704766500279878259553325614964257616149300207635626803709010331117798293634448328015791507304100238225481867264245892382024979030627155892967211761299126413625807740786206022357850091540314607527215180014258979478162641702294429265974803709711202067774831571015059086168478837556227794867974259644766112258571797447432654061848374844046601720937493299569342008099400461731236825348806419038699155835384961487044154474478595841230507944440919748896196241961265454620340893834895642839915271204152197216942303018294827936809391807932164979512710315430332602837807061567231904498041234216634133778991629493090350529303876212769700481884798658380240544380230274326978777390485159739838789773132016068974065103561183634546579703862081788911859195433197750393646726511164139635484911481140198811370138341243644542174806615045873162674449975688327315381691992901829823968851348576741172428674210254955293658550194454858869429537524304432486333352133347086566750764659489302562740490242092319528775392184772232051934342885446130391982910666958240528251360818977686778821152382446316716728798229591036031919139422414049058741976613880520072056466420369732381954586494030556961131603218617914249072853993578822553697331928645209528271006864514014177426009477324201185231588826871521911932679283866063653365609935361243694713106744032561586514240730253793486780252706682406928414362350816710881044484383549484844650989966308223524365154408233541074653188549493872164929255743780396305820937323597939511200044647359161722115090614787176559438014605723988620689768649073259259474697110584081803466917257310612441103380325722700967398134359577295261556204747110470713801548528576962511827802879073350263452019910327544912031455657730120060853402759030027752005492820335822072506780729340411872496964448300793446261315781905467727671086260328327749747570053132438531885240029171639238307519969034285752454304744912660111721582475387354888380057350166397055454044336086107232346559218514143428740367499359958816341215018114685600416439888192944122317844836629818649993087753273555948361828561049638455545127182079652387864351029684468313275901451363458310888709489522292476753135952307140266330713556563297294645017693790362596465404624598914776953738034314523083654882754128079757495900754085154960640495310212789323166976128742070726461618741434660510039773160793291190405259668443163447112424403065840479713280293592800289416934278593502249838979715492294694251536488755361585294364115051884685169906660131842336739615995355495912477566441652329039527153285788630189090159334554852844161630728341581674502792735670213676757442624645041948368409243302520896144661895685979511438167655491398356070575018509842233997660793956659761265013174725999623426364773568607437127384155976822434704967716440042781346683757696294706898243823097004747190260140244079867803748696368205352850595091508251476797039238618368571117482194853375474246809033691855357197632938453546748907719652897402257926026229688465756283576827485317572096345391065935274042349687468444453661528014278149205853164677963434535709548442331100545651193279234329459782577150949376695531309045272547973433391516075124868973393221872071054710045135699554671518195799961307416365577101825625338360169818094263465027963609538417109145288179796581120086181624738352191779476812826103472778376040407909359741752338659034988545585726499119167873219151712176834167232574940435416826450849417332877693313696435402078485380335378155779517053737592595219132754991778219434486232078555450392235639326195285646752782531663468991661626279289947343083298262812701225718401120518150808782160585460868400879101295403438786076844473061231227384372193784080336754545458934785704850566832276983871559952199151756904073524551894556314935048659821257678599570047459652034905792454612970964391555241343525614276679494255386963196004093981892710317573326025636596296088415594496988181416492456256564542755130768645110488431906089579685644600122405510455943001107795091445277301163333874827704510074992790873472006754660867125334317787228257985278378399587675175148305676071672293938672090521577780577966959975795478356718018219863098649734003897635740937778380696353724310889565435478237205422225566301585023552227135190291352751548860752922444618592054301229276588387817890160170257509939434749552199387833152743880531960540438085137633850802804228469799505371812134670246130903171783579693155041445554334677685092996422964617702329173083277007591779202062374212269516555929926082135348975041788331796433720490855876861287763934415678261745845934228179977474539985938185875385107845459973205567465848777422794428950026039572845260576169755602746500393203371731394279703784459023481023005381194729870534278072276977613289467608772054664371603670043834684130829021991880341417964941041792376320417544028577629162621551723216365535560695585248475397636661983221362831397989120633077677726292079879200212149129532251309007108848569678481005817583816741232527130142802717788792463174342273499373357542874384989577697152425000398674610192404270458043912747751217138880081109244285961491444121993689468511433210148340151606080406240596560479724641759039889342422983665454563614251636812581042414037134935534829321599316466937828316049160129484084331033275536545557435606644155734504187679507431932522983528063592395660778327832868615437698212627875243411783118919268935491789524691347800147915576479904679641913585129725870241203571785688361533571840025829529070285795927257016530690486574115172090221796734983436135825398549069829806247808150032602313341023734845207686508894163006891321638572570268960592774056916566625742490556266161057732708413197121889950158130866699500570429164109081070575388658312157733379048287849621164789211596203410749473677476536498614487088326890013072703458478413410854981272344375774427362292370328789345732466024610803362908352797535406014201734530105512791216202983267481917905051336435947576598095196225302466331033642880113644315100777324434857979373169388601163089132761552431638954658173365125174521718007101380792548762794347036282784109934153016595259961296229339949993892444065342346488383210990608495288052660228170268176005978279371174156613662429833831728097293882553056068059694593277409831789697563360706245902890948156864347984469993749534812252905861736124156203424264113127993768597357039179319170918372842702055428837402665823306114747027117372207919801924757485703238009305061919741416496941562244388858826130029145911153653047279209024614326388384061632064615330168745045639765406281911821215354354086175226871253304563113363967306700983078814275982346174156159914974172889566943546123748691200421418523392079382250583989202310551675245694143542385887477352340595628485205496712285658069394519671845613789442262135719781751742329538440974019981252140576394766055327272588033098141860419354374035403852339820752057143651435526502623735927097909815822608488553915065578916161834870416893285184144841659002290734225358564320048551905530171274518303001138703469459381624299774700735415069953560041007303864739690676742414690564750991583574651663088834225461534170516527261815876570564174151297030608069386908049495384306672581116429113684547760645958974992667643059901414125966689115764882189612333197041686095465132386848337193463146486410682618794141324823800472223305274130027111299190975336733458380309404152262419562809177491770068909062303662302534832290767170204254577231771617443437164194614884939585908914588174977474835179709278889082898539947042272112355947915680732442436607988516636642842018344410522912199628196163635874077792232001667651051762400179816569586569902801945604444841778656998853616054791499363666930622643664855024102507278572352492187456892868537413430488912400210707899098705607058797409957206287104308731780956724364218632621628918123400892896913994877594835275295534901039415118449029838228480721049395304273443062727896366444794011134359581695307142419389530618353924193377665706041380306151190773248326875285514382735124874309012744716988446891947773506499191821029346320645982123039007763184064247698731289874613908256275628055419914504737418407593718596918120570188015603573927777999192250166704114452051839089535655558333338221765978594955610788561209662217399432921534615363688324510522895476360188226008233178059402808572210141240557222946964993026738388480822612576790349089185059926890962694077461133174906208594545334414290938111275481227679573898209727654860758006884713564423930592130807958383047349718435006100719746669471959391399073837365740677929437304306063471726903226898643031343337084297284698833499519379009991416590936504250742093394204969598008643150709521419737116240623571082020882087978701352909999978843030885080796848997937603121804426805460911069316670365470622909360325531634969842891508503641904671345284788029574881532187679886602836349782662144778793071532430535642470735305683559781727159781819550527810242900036561490202818580806218103550390075241601380428972236738354008366766277532551890134596648767009108479670912579336509739427268054120329946063254456497719083412424555380657627739093379144109672698701464356933857097168635786414346098523264705351244375709471964291390877366397648488882771578284073266144849778905027294361260746094796065876855920103348151679451796287897398875664800465000494697254183572603329429373422034587156159879995104461640772775404576385603477649080886366835506990689448527166800134036351252843533076277452144868896402116946189995571144317994731691031455209324231110686975747995831576901240803428471391859323948073033091086000371436367104517891868423842966462849006541859534207216658985696080643465180215572395738965873240790367895723401707331219397029290404759610018928170726701803610171900538432634702554064573833906233266952001225036659256204277901698242701066946532154362635444953235966772181840253533681174521739591213097664903120186143739060409731556937073358467589216123826043779080856109639031279814257717919023153604754132278457926277260966890119532359188180306121675714420073840359209317482075276853095936485645825176103274539915414624448408928637053081694494438436054831939560831134971569148116515761380650381975958596922964437050999264275090348248644993143680530183967369746871127333009620379978069243400401779384575286181201611395849568107421147035253112486837293505272960301696473259766079765779059898613733257563183122552251443916842125996876247579994254257249070096143245839069931855237627171614259087411568142232601710513006649041634352469825972888570061712941529072891194449004530520853121778239800961132689064395025791046595474392033280208079985089835364520019455092199389171969919642984099725809877195313736812632085676461822236114444657828965393111762874964255042652341866915397429578059544658172435497441912853920370588175528519507574860666097901961376052094503041512722757072308719197468410446800965207914229231341954357235378167422113353167162590465606862132136206811154957940196561236092471220847137908825702341727353130727583772250361707424750237576786831414935154603366019284390925477283144227648647281490032261121121920622561651333439218263860725849479029937941131710417218507296127172507348469316430188840402785551335690140223008576494624892796285678905587399873159325758099606446140607313564875040314736658717096565731154095861159415310826604640385402342285377649295055175140609433714465759334851144529956647408919462447058104087341824927551393574420625797703696742431137458625796869458776677043759169322822656148458205208912514761806096330497522614874245873134560510222482679332750291334651357846243752517649410957876095542645025180704284027330920584366692071714342496461943024720919858778227829249221680438997061380857069705013369146407558158005704498579441256284736702605474509619225365490553392780213799887130990717005975958226483641010313027370351485982827190166972295907073403241170877655936867504053781314633941660145314913701420564905495693417307377148542777085828357965514256262030414301102541081519143353843293032556405010316056484511774404284024849052059486058116044769750390506986838470265976273774622146698542590216597447707170180413647421273199531467050374033888296221615663387292710411917481055444548680688600060215107909690818774073147860852046458674203965830356593203719675200901158287560505884914014150867707721122566603860537202856385943631466386642388576879080834955019471819816247808987839289861757874478357949884623594408091100371493060519447516859370130289058560813485262271058768910227799737169344644231586045811786345008656666954207416793175855335833171000343495203233282478583242726582675515690228699228813572886654820157907194419777347713074521165018994596147050951940276583155355558511170944267115132702625704889050386691764767086995460068794646005205221150956149368339601260343655927910770383704987793516279539740467172149136443745842859599157888200006764703236275468486460176420204343894272917922283740168002132832870283977064966329929898957628391911254162759686727953770467779930507884214313549323784447139291104167833628789625267813589939850460841332955110173503257795978135601392629594797346016723270526699397178912043264809164158322675608431316862513316464063871704576680374676847124652505172271626137782048620024538385159966063970580073914825672526608376498944360304375447037606380798370668743824458579026361382845643975484996780966701130256225902437105159823045510257060965414380343571338356539164394411164422583978118132202022987740861226191126144606355753040589383818524690353893523279550377677608710264200458085318230678031545249067652646399704762315466273918877769748805098567685246265069083875357871251436850367762172838835294293501216228822839969085869159887740569095445131700817140234041985621230415026718508544582257324057031519601944469470591925859777472759927474489132631176857425129874136470373935378757318058652369178325628064019887634215599634986633683049091209876746547195544658920917128747037497953582868598330504970106938202535733911579377333033527795746908576919780557829174477628522137583054555374636466777097100734918247193594714026867493623860083856299020728042342273048226503954345853318959556539087202559398769770307071502282009939574403358123758574176289819478929022745897143936695242807188266151999300516551880304685488206939847616663690302014144294818053105319632248844702005713953242391033807493699513894760993207261808083195570000556185511237091813564169423070676769066625862023774784707505810529152776969048730537506262728740503363638038829767051975771771107043868332846862818178641993211398639432295986290815244789250054130836408038229851468051408645020914188138236080304197520834739777843730299101695053790433005569167808570095865909628895881856932921606852617526637602580646178705933475796211894562283760607461896253875113396977804029960765568263902573183302212690760352004011404405788632862627684594164464313533258771343022102014360437122296050350977251548535735018308344387285922281165696475148828707833552571742710987320427234843707471283239718245452215629806363505446506526975737403390746114953929758042670777692865086656318115410309227232570505725840968772866014700049342754867435493108227341340406629073381910331886396726455501228913341920052750427244266885766484924694157813702203218911649801959138521467670862782367974375199244779154314005370417832638583410012315076548478007899564977079447576723289787582080849664222213899176068358446673807273439182707591910149340872407885424269623942763299794252150396830936662573872769678094087594129451971437960701824967523763362735716771315317740728809095267375518681110909628527191930237442787620392476648024131403967857993507079119457516955225923764009179583668464581873995651968201524263337460567897748839189383627887198093513210690422959941167883934718827212245799734932992873946117139235882976748986851147998528461430002418562198100746562126559440019508882211213421776684785950742893275352513081467707338648092964601192225188725155569341310474107421330842725309615136890207567345509752433321800495225974661918655627651508394542347401065534958351711483278753369779442012441582315296027104418875152638701524494828874179527828935684088118451576549517441439867143514209842828161284186072640477257746212316125594351072713976544061272033105149815714437511499839948828843692634280596515143841961117441842192157633799610780935152246242751100430511252618568324652080020144139568779104155218921679419431557616963156166954882361046724897452576506019440919046359395968206760392252017737877620270758231541268264343442134304958241342895347236098698083207849935252506895212351438620120547380154173268962656888902777963751037266670759961095918512550357938614628106465393511704426615904342971754956533690958577225456771702047287482474481520434140522474560505579405852993676082688321653051517178568859394441132161042819638627769952836045528882159243874645302471969035004274031650914814982932539448844042504085554494697521553044932118034030202842049558216733272330681272679243359812697684490807079783179738843353043843845367916577920581911031477212020886994528517977289485733693756137102418296680357454796352497895072972111967738881203321310800090615156742768157003241801494556670207879778745536243035095360724449928161918158207587465053302898871886457371985718688174785597367417523245318140751817107897628086132073212392740796801980280903455059111857374820487054309670437386620774314994134396144406662227781644923037930590443810778036581237710670903694073999164677750746633340545980698983957147997034844268847037327040701443298570424741888220623258417536971160824425293219198687038395672858031950629367412585488380315049736717044735253037520507238224197693962869084644682015715784149996893651667827530524229159661865615522046202653178633000622316589172324917262879747829690430273746288780860608763394186015618914223276205028983809283726520641904080056739503840536716921457879807284641558945605461470568232020381430050184102814418817702694847236758208956690345189710656849351642258123383365143673507629429920534742409428675147623106382446839141478607216986562776857808997743686856831809722131560134658170605768301394996583906555496619524638694186621607135285329494707820812030089110532683432911477478348332327061224733479357074651055598134619122342727426553736742564467022873795936605081243970890360271061732430125616160638060756534164155891924954949293716248400064695941255019313876921780685107633292371011019885834080691079166076966027560512957080052344523767741957487760333024756336464160844463952525345045231400144112262078257829082547033539883309183940596582125847218752114017118486378245915791535394933927188682467772234858564160197720468237797642484901625009123135618615244012094125980016349018737159258460013519554525378211782876122747698840228518051361028962416895467531792814840450375376086517324536558721939744277011407168119474207740155733637472004274613290844319957532656973050612975300120151793354198331413759656107770812893062605784346552129152210980769498240192944911900931744578341104182913757607295770910384184965521558174967214119579329840080568350424930373295551120480459137244200591076719941636196840932208735065563674720348174733731963005097346838440836726975777935528300863501539617958212848256376505073530585432122238131674743020177995369405833758957387484513422516738184260592462594479685204121984985255195254874575865952488081864150766053953462681910909089125323815589947365232421788286741755612923557614887804541180049526154705454599817448487179954637472107547107433611545004366954098576322230037506977068976395412678437476496449156385046285600358028005521814813319793923944929566814132412182240583625654828643123289397471590927409200072664579736100389715601321507942081518533116359369917084651306529610849346182074861467316072008398544114862861211174398569001331055405038522886532801380862557423208173996574432527928297527032602361085683012730782432618748277610287197418508912902879125228438413540242100797032849584501518660257666674426955598395811325614578664162737417173579755331181330404957098660387443088459016125549747927181005261836066089520928791833817894945244040779128228379283802500846750997653766587779529128408780754631384005937420068836670629448179683464432229733252463120748994384742594074421657132694278642131822478919508798101647147021094669240877991186995460851390665137148639718274232238858184236212329902592658493853420530569391942502604775833060030959320569014773560919386575056536509703965449670597839560666767642390614565804638237070080707463845183143096217083566666565497546751794621866851718602758729334578744349993463281970378479786573965407605955093424579983691795985008645533528579082440546991871546524184523298209254357745332430602026808869788302936163594022811965119496480066253702223116410805309490376335304505835755179046375376505377242108812045320672145290378724410947879201173082333168319713494114197014834249883051684754158173648703559195648504695357284713224475567336864291906461628302631617708615099776101451237445542091527777976190845041712263140072273569962290144241767073351929267501061949746487193287481397589485906005002636790248867160754364774524766199792623754537260415754316972141913031252923892996842126865085914308707984659752439766247408637394224673871141192712057747014621055189877310828501989168475250375328312132534278408054279952508364530231531434725276578015760300345103810537680913719969178355873482322911604221125052151666065072991987496357117733720267896509265675043075575794003797969914095523019224487161128457365495206087811159158018795606762664749809632387751415924221967821240862406638110023893078121429055503630294171758056222608121856614138332283797757068076941601446322003666934784534856006144574490626445988796044019225318330422086614175436800313699548947931052725700823201221997238408513354972190336255917553115737908976670092938743020248857036715910851282056909004527587157808182696580551637286365344619165809409547918308927479385872673435958716371898419292530071030624493254092525799928732135039176560636974942422885579792002924816368813593167318150100597085029013819950533897204712401430266756286234708662420195194971116948218826420653441595065972456830479412988796448569162559196891142075656624821983679189278777782315633288704470150109784163603129824595295364942888424698806430183305484968873097661005689327949266443855964600094847432175552019296684290207508720937081507717687550734355296508394257049308137835406531730682860488973772302218018747455954526944062847665489109885139922228050915306530349525059877979509542787215687819167050701729190580200927413562040314782899255330986738827081994593016518567972865937531719558201796185088603978622575271977135120036114801631778949787420858392755009300325285094028572453091800064441168546113524629153073966492751040255932545095178663887198097378221450283185728953189673251256227604218625498959982075221349766333090314725161184123152334276290529708980112855330416832387617606627617802567714739735183364148243555331902634858341468064992710633110645284551697937003733942161919788665657960533532517017966341789856774591539017606088316218572624190008822055830600177481940454965579191913987220446295713487781261459179822164616574125465035794632292694919052623203257135258779742733761650282737245037516545246929030782368695673518404391170137404007993781230077016837222924961392620477046798524378458283569374182698649103153713354402377844904451889118080246274135386034620795005992148209756868836893250052334337574322622660180157127001975022382502498250033743842103971938575223055489930378822546367972748212056761271316749184934286686123948520935580196265074703850452136261140365891944140047605528106860588140696097577074118762164242431956673514777111474512964049252258230384366243066653626700151517187039425814429139215656200659004790429665263455000308361091908410013792977838666649014806153086419721987324428116020816738278484911317409774622105848497122774385525418102978939847698145767201487400191600466619131797919174314859499392885609858724567755560775267713316557951309669740275153943117617977529657522723720202476547982061297279152641214472613900346836077904364879580528100907217766879164793249591201549986025963416262738532578774951402234441786636632458511774021464391479636270218406692548134330025482187143548261164135704499218494512597347727248635702477123888442703414872681916978427143910029523443509782911392007201854188849895582887831229221879180888111205187922249993553577056421258210852338878167583431921189368771207617433556158565855555700641702671039359857407972674439198498248351941699840812143028486972935816328708156791006612606497568252247807534101033994630500154141947735488660827482300340428188761208213029481767855894953912057953673860444164853237903649640372733964912560670039535765668637156154919605302168231790057429024532833947601387383042000814761130607624193066953911269671898938622847776780013279780179559114395605595597261905635323880937649833386242010147376917472936803623527849293804011053179394905368385297304631318365459545851891367508299064563966679768144164720227537431307512311691447431720106536986933565236303094208500279928427178657455186877704620086922856275559712738945704999377851554231529169752151281009375956376039404663059941924829286973347811627253492825567366698339970828176583362130150188580724623122668109733907784933223134347466224971604380812022951062020331787281007818147463152091677348678682496321120324056607837700848298392738440184500518143682079525801196562744146535518158360385673297375692720710224871292985020381718915265355829216270086381579058328058465148513317695023881681686765100530638948917227530059565150075090768501118663128426091414407891752601559314343774137132198644969988314115330995142445838351821820239558802204178429197013453857107498440762357844266709229961147415837870314513551245511903527746780932203980890517568743496504897703063095188922977017769987555049519027381811736999684947347673115843857839650009199262037765397918199460903948216477031850719841902831929981777042787128471714285950247424530803795398027022000620799867671386535674285083605493206685142691513934712123738685917830647164230536704348126805657352761191279612435715345957644986522178042368502871301872837486336552496891528935347597278148635001539858803021370859194875584983689927163492403419623269863853566952362070924766577695723403683060419293307200591561137836391309580904393884428155877520586559438567763092795501117730889777172441628511676298288696897108794483826250171127677982709649894019442516550496953532734057601363204591671571481147265085229880661376615196701324183781907094780776908712492127974815907227216189054675833277110497754960233630230969377423694028999762272558374259053483885070525176212411896141621993034130209664882578173286878909676071286199507604483250183205052793582369222890046396498409454929715574441030797616003030437042534154270407654314581540239039881871558822267952683021431506530069005129793918086056252569144397444721229481784229462178084063978836272546894206210201104292990900582687085257771373186288357123736983483056812829996137680971859952116167759349660161860101972918525659619392681288308875771535767253981000996797107643447493580069261795266229969041287630559244388931788431110777050495788412200244780180899446492357200978782894585603982327358392563942729452258410168479087085701513595722635052153848527717557797234909769758343815611592009214152742747781752840253716943928417958403513407391965412800577419059954083564329975743619909015919141364157103124679301819921335070332160318898715215433805375570377456540813518208729416600342642985829475372869717131244278127091435903510496394905576664212801167449689328230975660717714533688377998805368226015024464992487145028895372758229464354521433545116582211017879281798466592313398799346458285644152356567764973341689972039234223582710696134464380812183630995531629583196442970860261713781822009506186219931673488644209520214362536436110752899792098873991379920708007063183868762800114916459237779372151087705116312120846801833956604777628042653220807834203153777916343164686970595808663755066183424027048948746665163318838243861874611253111788324535874619272605091652903262944303279497581934558833134002489103344690552682641635432806295722600294783435055903441473374565599580066441167674627746665015350318541719780455166017595775509931361285623554145957913913139026039030821580467143020196977217223275694110930808553136997044403740222935663985026097937390238200543201283966802468043491236979531961384725297405743395971681091959270889783920458592496841443747084807768564109115628363585142831256339080770523965242506009956970074828075409397598773427793002049419041308710891618279501538232101358893545744017551008758312215018043729519012308007612919070279747573160521562261077868524532173889276453675154019114693293460587002806897670253714361926703367682207279548474355779296786220271321853209768869216370126153015290645535750246806090733023586629014001505724671447998773304963160213538929865059756640659965802544814172880055637508896149506336656492024119314365722354345150065080693756776212762721746379549563015040648302303852577398096846467743763882489509075380630550086171586820943411671930352209190288929781901435242698606933396882653037222236179892822428941253161947010121386805595107940405825259227693246620754879463790210152115451979450792816553292174361953989825916273811931957175170423810363543797776392947353794231174385606555680647229577494135095227712975028590645175430068026877463585868192875429139568329152292907623414387647965225443795060469835340595863902835561217614260104840578481483242474547370087716769944335303229670239765841470115861793678411534620360996661644927557579500869266128469693294840838735688656491753551865388977903239518190189546969207903878158406207927591667475461784904799525202994020404572445531383211826887835897981914404695541276482779932942846776508067580095163236232637247987390104081651566569721906412896558891296874783212297557026726088030046089715483958035929296980253027807268359762768989810921302411159079768298120379979780280683108456664342053240240503557294460271397495507170292725545423582268386264910258004674308835558297041234229895793969005364573029756100147956259597936995484155596307632698853198576224160377531438442721830487920530460487692275674783426743237325701978100746138016219848512683034858408531728044537546644924493434372641118774152001365910787892625985474991967278002032875789703815902436821153785657124114510782615944871017617535220699682983856706450502109623192376218349748694278292821369744043578452949252271085828276709061202570170858166451713633533936146602733535675350326286701499510583418964606936728719811249822608812315789928012197067038960331753825950922210931930173314028322751762582590057948317711616855954666107069634716293824208125113191606645389531389618060753010246390936241257641752924076125039610489723840961967586537296611056182315042718445599175131993207129564286298669947191704056048679431782196436161014449170540796347450340662583547556012437457185135364944188195596903301453681121845844468230929106235149822034726841122315613403574353016064911017578819307618284150516046071458792679484584704509491205585181729226317788468478439989541563348382948549266918555594861638914930047395852898878653920919173049894832005004503709503924846326747449059674657431215119824342083550120680102340279699056271110761794675066954532952351162367222368625434754554886786463264646344928188613311092691416258303811365225449211345050535585400952654079307111045416354842355014885281884500606678234704437634602005742302337341476755196403729611728109341535559797142403295503909356025846667275962157053121587442241847067671127704171549849771719261805715658736925888265717927413760661408764341545934719739577145060107591042959374409892798471570474512856803136456516382734412367794915475309814425617041455291085083750501232996495032327514904330584736700912049581852588617017791668094037114151347729753649951066628435769351803090278249647687280993316049094178686946199416652095691580082201236023221535343030809773523540559343656360593048450947478425733466873738832890729355668211706146436902777065566892687586751324358945421739805863184313757851651574612905234701775868601344045877816804982328278210722570119695050850451801107742807777596039824262183560857334547065177991128384633210444353535550615188704608857376821075431191506719338168803492824490017722041149494359181985611796706214238972789649165050690159991496944593423536207066034795044243693758445011715703923561693479196257054772497144700016794273513274530474534382178361757858624723409864011211890324288722490102853395964919539729396033858720514912832349133437185014855580320741431298159997931604333550310008052442898293774014514577282899839412796691030375583076618615230611295500626682660554466737557233302104647370310659516908491571341922605728250687281062685558348734029065117039020151936966821182516613587508419345282062158625410839000509115983940321889627598297347833221187726502423360920538394003982994404199301476024423824095311022089872088329463848229948158912871057039774396302185624140796605224669021502367420093046651869128086367563701506419894987949896276456493900871919013095269044514425512021946647256122141544622082201242955434885349224251645112356483749090795475360013960357031785634867399974396456267102821376914770947635476360383941196316866330328644736308360834197418290055245118289050396005862777554898826806798648838264776359913904432238453754438980691584932986753828787269469691112413514917879185351265631822940123184920287676222071907416529704176594278056028653218194382084644480077273910853221934555717675704610174048855108314740900192919917773286971799007565570250863260399479622094319075202254791950388664889784057931980352686095856522047161406830784181852188394992013730317496325713170248231705305223636115299460151343816106329029671672163368832232651278305289626801331667404673383520201045763239133205144142018452101899070624877344187962805552605961053009158958791967666976136618903771178615749975346076044022433994274207299566034049550264562975548103647290944052920932998541754452000382052115728921197153423080270791960424578431701018498733637528781491128168898467169598774876855229674447884426657003802743333229880800965322775890709776921895243145178989699192552498389132710478243290794550615957605648848658390141909786158662670581783061133281907056992906294625009542985506519020482398995553745305665809806588081934477135044527253639256217371546797466362395694114100446024709140229995840915287458739445570163457365433857450075284842843984342776110766909466174330634501076189713160178119450774352914940257504940440716920090629952771126089555209952277502120791077791170396370980963118985156219990549047621458303694855269976818541419666707603127710012425537874798485810475466000572581421151080064947884978737865309056461669314082671636436029691554789179907672538389585127922918848469691654391582840193561438365563256894566882485779306822966157615776103372976777796426010245095295123654623364055589579075367015120423625316975376055744224088092782031453019777918447824240710554266618895326867152118120678304238170291061896627011430936274032505535092934655637185107093649039399590436713609592914107598032355308569867318392838632606336704025783795453195205470647313964451900229702535479996989496249689677882368168983005952303726463345954298013463084297686712669212263153577116313336820470227605972531788249748480225242997606630249789890358422678265026417663783235626320984593216059114356478549060087507732627394396794718603655150002410282419934805197961018913969887709012209379114660281336694743189157718265542117672593026645921924987335653896390119779632847358491421697540472337938820299547314159936735431273373270083746765119047865280913782269841822527706161331578871459846791186058766399092099103629036149671899643642209182801273905593535231514472281136849304131915906473500445960308814067501421247571843940446071312380215912514474553932731122388287358012882405025240090758418740858743506192206440114614936376912614047155140362321354150342381316140180010727394291793901223411727332700989990559414279434156286713176479269955966574012597472513632465033058153950427415088285878967186802979516944690212676541536901193624946116453486340928153709021396249349506640713132957068823844753562850458103000526750744023535467291979527259443362241059812886966783074683781204276069921422575741867978504274951428772476805527461037212332400451408575848549876916537884901432562241304099652130658692509697269516969725697904622673477043759904714780795206782100759737483848499620356757774086990504375917298972209567672952201703228254971137648062072883216149668428440144896977683571792456167701293082137463247972533016844471545926351775598186595365497583312822590191955684871339246511326232686768993580793044808423192994974800028297453730266099841177347274749595995626706518563611940403169143698026722796559545282756288941149429519423300310035617958248528512223045742167781371959153620410042387020333970774184827809113355711858077757382502383466611744645776927917775073681476851531891418992348673717768678114110940333785209418248672854163236348263504508024957452569691215139402302431245387426471076487092196734374638338245142548532072133689815970459775297655650580298319819484848007644380980298529281564142412863469530839921954904393584660909484963670674734104755627705654262482568321827757654805822856821323449000304257259942080965929653022441997864199417063924208562717563236374875921554981917817764863113220790269910064891617944351881741373026636535067560508969309096927395816973168237162926457079860311262856076309742196029412707832240603145093698685099970125998854460089311530704758359132197184438554484230356938849755707255730729994174578182703857980589401309819973132066464108238251851308535176909956637319786370378934418043631212498722612539464325484942390431277424404239286340476042940120695592652136049378141178702875042508493970666633222935727941754026824108468522780007644106353624892751394925364067593659559183960628258969932514920981547301921342642144276973952182760403234817486069829563545902728694412914656021043425826184275510150772130245875517364539934055734281540779088758264720561172107504514720632731188805095615287427493264732566505981871244308395530132301693772740192525511633624496176024531279895976890074253580437073154522480090298259014718897863294623471079255140993902816578905590246234431081790956054336342771321814968346887857378072156193037645191081680820272206784553343792355981446838631832918977854514214212415520962300719941115194832295864723838004388977472173675509659581887168467107996685919983739994311505383803289636025646079304366731578763334100885731810246739258218462819218856169160437103160780027904480241559006066359114356579003187519862734667529419955425993704654493913927271114859595452634551082620527622719156219177412193531233575402348658914940621315509003214303975381270628909201651078939303295228577646045139619469486981798937966710305917381195285688341311903468067882841825584266045255340230443241467288007185791634897907377309430866703015525756828089582957132901927189904109454677648689164658478048091915877376490571776446263151291778029978429907243179641625603065104884294268028230792466341759051859931346901882719021071040362777520558438725103996560835222722268772855129301228766519392373806193173417974073837220228099308780154774604712146220205324786702924068631955844776908136423009048541153386114775236363287057190351869723897380175906831682364034781709773052311817651831401475792120658103534987492087358094008944016202776749935634204609367436378375903580322301172153527731117043529045729961577843294778407282489321522621814852301165717027428500963467082304454230390274948779917098285989889891039082699803802884884926916680882978880972979693405605434359750413221863370486141684922768876599883201766316102100419243675787604998344192567514750440008169255305430991094208152825014053406882436727509713110388587174699118286347150970578724666367833628953637770686789403050753492044520366707777751664296843417620221843508468497521680742654439738255026636162569349352748738193890199510642695437807217731223940040083763465874893010707128612485051174814637260030413223180547140401786114346046770219902375113929785589024705687409383160325965708522407526365425614232002379465332861189780967925647196138549864445799877705869329356144633392395382521763397235410517461586740914272118169327670915484628075312237501835022938800979573076238719016173285017762651496572349426296474372214465350206963781223747690903597075444952040981345888105850292117909798122890765878051795741037016181604691636159902520060043755626963630855075891994551535770857216331808784540112758256885472306537229300957478937541720949458850344273812396238422277308025579745272705941410884092860520962632557281321213629471826926787951845320714130824540780529609436815188327337717999459928324004002301509270553782763339555532048496588770520168071931116166243808466415969928450529793379425562589432420969372978507411997126838360329780843923786126148753762399578512002229500819624448664419011489690973886439959230080939077473220004466165492272209807196272091762021303912261269344346863161612852775425406709814755913773463676367973529974857696603319961373169501306450908743226602400480256288907906184757934035018050696404439438004133175654111638008874734212092671034165643530294042909638171782561578276190645684117409546855711547920888887740713828730966511461218983161115945155124083958349584359080873198343946922290326178897035901741157293527957595749228060560597605619207988385018281514306952182334573630743341666157405599452039691243704918187427711340077099862346168740808612043367795451913195357645820123479952140951160294725510810201855844380239059869387308365414563059617251736555224382037198049240820542955130681384489313508874064821397104273451318413279923728706398594690377729540480167203818301527854926639274715411187794963945075302235398295951465008383743599021561519982474313653977978767569246255778221295721665208987307752745089033108206129543122199645247490695298903599425056980559660968783921118305613172184619064272423530375009968921197024984922386680559516569257613296849882394762105934470520445902859612121548051076752089224706524606186525547608346787474415220214983316670579297192736973916762316051135039918675709534832472079669623921898586791849855620017514969891005222393776805422500763620219669347785525952049717578515120197618926431829628811150070648462309468613636912870868997335573373952416919192494963359873787304307886514256908301454802976595069493031378318855624992451921348632493273693238181610045633277728724627993881419282140973777451101272793934227464500913536740397851927821910845649741206585168388344652770500409189113782803785184546806714840694975932815048472404841317201925761606709050485345444946011058961504303434463573902714891293855135871518288389976178354064219876224686668828755975116985705205307320026333384456628893059945174839301702638492971338375114599681918519016343681395419130037589628213632510738540937581740376353649227962945269784069374346298197676022031241970968472522472585556142300965845491597496527695109047772874374066065685674519722390263415277726146272849683682008774163739319047112743363190029103286282388686291163075992464525462207672434758654788579500170359673239069215457406418417242932113693124985226282453729753526484480960848706688076898281166417811387552711814158890022273405694706311614557536255981430149704868979148182169373707816959558932350516382702910179189032347557102099290279918241941518143612097904301024367632924937862300652109997112739386648200026645854687568824133268733631488006468005131076071219552422921811801077630929803813913196568207214020144046383550406492883744434246890739172128229997620968430018823483622616581447283717228088246610678522197026183027179237080696957853477688641627282907793714380759017259727280713748838741111380700875399762624568670880279533657386501832982141092774118456630482241577613036733292872499824765830313630856819394408493843426434933087529914344509684097980762654638937457084969425362683724594082517140933052870448851092927169544210460081172232226422245999748416119304340717316576448123561842646657870250755583199892763905512901169434322706611522784321449062139164690630401653883319954202110506643101726215825351163880546070782844174520787914197549238783054081403416100916300607901183125812657371511541993902874032710922749250714616971774392071667905584024011033964730041479842665414460245063689318432680057681809326517639166091745029885075263438626782929003057741356658108123058068095484704144939202420028941118052884766561270919716769691367314359492739779941735484393007477021437843687440188903186709288358238396626459469456984200393402080643476616977334487334689414989519404847021310135382972141078691109464570548782736275089626186980742737914763323569936904856832056804003188228037683112233427706420485004744348490177033979987781341294869592077051883438804085019703537224362608033588780410975708093704795910849166368846458035910054098469749969399969577046397815095122946010314530272460957123215303273070424264943703897167504545807301479044575708862251557345518772815229866255742002726556935116777910876262887577252552922808838316287255371517691940581489431421136775179217918160204495214008818610652551471680393628041384976127572413336129358600624267038272606284379500280251104773305474119675995027604204960103628654359394250809323186171723501765327745139384146469686355548650314465499867258931198246992943831414081614675353362328646413576922498057751393618594223303029512030354438941247005275583251299953135979533212964331306542578242479432656509483117256613426499411279698431048791193760363046414082973054921299896810631375520780413250496688016013007244869010656072988837120881805677748513557618650852085033019206000064078279611919803115616276107683105874993116913265193689774307527366003983343218914769495831728671802500369511101136485184460096197081797278270635584424376575648148356585024609422035300840877596258075643907835596399722801531357786740989880225982926161664177404257209603633985897782831335131072717006373065787434484276591380783795373698510440034532067846980333895243582382786524383131376260251821388008345747706036608914114637642905661100537987955471470419210293797432129040007998134003586614989937764741703493967766940007189997888836887751348068321549007249575616891504782673498339909268487979289853129146251268088318768548908553991027533278348354838293955810881097389410160896432201899697526859525574781477318864902701406661963136276377550346013975868328990972878621500887536411149611019836950449305347452257804936552460484196244253081291548678961476562384771279157191516323266400532417305605115482282721687648947041108196860527969667867732442876072871696360315752967466304518540495805779704190401326050444540247801099412365416704984432337515649988354058171876080289077392143732714660165764153560638414480439247400986858263145291732111591960195109052745345413954788812692236283446969694639562325306989181166532231351085624189226140119052535101611861310657930228474596163434974613281319222318135676055847842967858180428566859068910300742817460780757992221532633408782778951767226119644654102362865155068435057643910255745268104421250454518677716631057988562783223844088055547511540265124841036424409857604063776026761630884692639367636654247057043157812552107651063790561515702164879486406224418879391783213178354344010188458260481912726888204699628184609810182190349016378266867409830884933008228211685591530260557648707832565496164731044150746099909581200470544837856218407822151090217323392043125093607101787427600991375836909570215253437019997143500800833716837380944593925036017676331740633962410509891881645685127759451633928869882108453168296358978836520489599963892558965491664477608403612317208735284540718265166989056334261330517748592503622075485575757135629047785515659066020612648534644044570002409463494030197169795316063901480448930334278936500008193543162454055200288380788986229105423662976975874091903370517454447602569369966198507638124283764607531896074103840151739786101051455059952937063945333238576705764345894963503060902587385015350208724797350317414300223412258384036889173766420790540132341017068558698458965427451423309105818905226565019450245534807518052094328743973424316301048496016027965293200450313780519599270564475659283008207653730608387731082625125922122967148324201184037377736282681311517603375190657803632962705132871423995686445041835652051558359611442360036943891878686605966372227355111745822628447382001630310697098695802558212386112212854563051857111394996473526139818878521880513471758638082973440780727532353255057101762298212010508266020337669290547721038147287067344979888281074799735556577535548933950332292241432738829967116511805252919091820545970061888107213603912072491578305123962717229041348816764460798517630759632421854584768150331237967600432948453445339860923970097007683735308545518574065200348681511755310509578121501214863968767393604629061007689244711919723076553101091522772227295524976595373512104113001231968043174883064936065802784360603956434301737707002887878970293459027668178139385988606401783911041729028346477960200848327726120379531139592434090629319761955140037601889742054699984608667046244544833546676874001300830933180450351566554497153962864877749947763872251378468358860282028089204191499124327725985144909922625713564388022546070714592957224896413527215856739338853094871179415099130265906029010747020960408013060939252025456559288915985717753649462452143702552220250797627077756866594842904435042786351328286334123865917796123037475453946218321816550280088849705882592430185925335011509527401499314193570718111709501215085878926365237781841822439554371637593232315587564216580445723221050089717286601810857576990770329702140102980818317988677409310623198067174196918729096969927925641324790385697035279049514059788660364137894180301468972840732656384484410473915562062141759499162874100256919537018152229991727436956163664785539093310539309974111037793170095341769590938018750991604112803379645231058833706386387120895618413241454920884603369328626447129784410816442445202061137317937229645327519014332083732386892121649613157045194178810621317246567797165323883505562684153205495604577447896109138203394230643922992079767224143760186059517089232875910054903571806094951641638639074360311817291814182125803336620331823732722222250609933780972588699726239500068080441274388167036962577090546303979545958429130281978022229604268786162004472140834603789387537088313171646999957660339086791437692812343898292759697221832472196553466533108652810415018391214472414088953396900593819858060643897021556606933572824835116334182687397946109128585611316128890485775793744904826041857418718730616558352699820162745173026627867624714776633068775406339120555910782127354682968316367536663091697990035948404298070442939755912871010941940564550488073946006941222824009369366316960543966747561943139175583178238795288584162221422513914557179092232516236171794566602507490793754782926979999433016856276450607931174708078805854869602878913915059982593590739304090462963239342525893919740874093005618656246571631148227399804701017621881383565345141003219972112378291548422426842503103958384107521129145566009825420911314862839766624798306443868398078619311615375487567690639718148420636174260877733580823186475560715984950651748196365341726886269612884635172478608209966962455853724374483587845746259613487077825832924421509987101237852253525773723514375257993997012215287618147673701622791546018157354149195970672265596227552843698306683228101687184497869659144442831538876297903428716374429954828413165293743838459414174015965575852804825848510648945119976127712699709662915822280447841171141879848764833928407915380250557359831260256135134044018841782165857155893759449620166425150701454698014909040035827261500002857529469086996332547436115554704207960674707788005516858608606012983843992552007315427560943389267359201302009479730309138977815915895162900344931602437315617900858113953710525134144976651349348087337108387072491269005988650387474037238948819528366132985842549185013119242453872138070745879899767801113870800205205134517684069434647420365826408020252614422087973489336491546794842629580291346586433388318796950631168201687956799244859972214351604451641787742974193303093052919787525873985325788015506361899865453401983133166402480686072770549343433806063841614991229348653052626890900629921166706295006098393766755270605040784334064595346233279043073973358454406315105764894580961274765542844135673387252266787656525761552042739559875707211848792422775069967725638935255833747846666825939401730528795196622062498389568926241230433901951301073903329215687332247344617293996165895913113363595391215710145201395952850010175864385894178812961068402916577883188418003013480484287828522185116869134739938472419344618136875348557295323726700942801574920255509458434870629523284877044633739524330906782953798163859027255744724403517573216738998292870688750859932759547832832628798963089046934943865865303522125093323277261156400458377818157743823604912502815031895255877333120183052214875659960391477483437488540001655617147947552412862910386420262389769904714339480112658741961724114729984034859076635730529661161408456217529598272604629266983090771444114186897983527110634990493120658620717858823293411918496199355070878387045588886798432696169110996361109934806085907387316567140731408334179597043565258345696876029379625521924259299839021074654008998447178819793843947665958511436214948742499216979057838040586268844869081318705417236832280135025623561746988253730452018723151421329790242084354312841800741711447014055255954546087172769473523445895965846912215576211444676183515066950028104191111599729828906997167664701721229017898359730189987598591483183707102627073067303889458816106407174541642306344886402863526905482827864684083556118315153093181537256135863329717396530561581117653189624426157796988648259401116825087323267593104455084728475571638818995199567352883404695608641929799830376547135584897137521174642433661786793183032126583166601152203635861111249292725236647670713387096744213572697477347677717733851994904133311625915789309863829238940213575065501282118220247973650287663523022756403256216054296942862246407550785971841900789090852441059888130490514180416655877808182621697115973691679072107310545602868267994119427069106722029163758613109790806554181463630351010223595799827080462971359126544110298188054095679870568740272915873115118048187039018160250841830041231736902174913621518564359718211662393286177293428131405678360280204492277047043192682437632418549186350082294184496700668184248685225114177824705882909501268820436118920155942586131986275959762734398489995955992848530844545778163752814094655497635673791641145575229731838831765829210112723658965037894165010176650932077678669847816821006265572047915328267684672194132545594217701194481662555881567272989996016109757175154814016306690729112805508449315112883947010555799108108723296868969678579298335653032323713619487738983268546374568538966855105244547048328929146960520041531697797133781492484587234187439848173846521788542790932935380583776849427918320478489281619394770891440132159042575064963362993859603280073693229845021901786484440485195721413967258470527606679740940717590790449160117906147064267736165231616447539860068174379291300330545455966353779082619391562130364422663208206557536982249178868327882077306137306819686784495399310062461105674038285808555007948573421042652959271937020946973339906034911612855341744108165444543642892380714392441840231869871522309144346556570420438158261197442706909167502302954677921522228505788008690699521223139255502907907298406968740461172205364037334932418542466455070311342742165447008861546862344350584061413387307189992396776390951976590898004620535248819231312156329595383905736377475624670849186144932959640763546443323589887730526274264044069415163395506787005756368723561897853559927134434063559301770974659799122614354860273901768248359591787750375079474901947239258570206822069111385866996812191788134149878492975582985063705106463152835086742839664516223535052114763376270269706034605337862647644236947196398367372534214993316599463614823694754397931115550273091651732760252030224343188348613290101111424239221652130726812497820948283653008177566833730377901551727019860598322587375546543765837947414889310400408146565933696941381039097573959641064593365873493534869155257369077501975048993595383494343648989199202566242810921637570775415877451091631706356647681112918023907816453065153064753508111838245018719293187894327674551360322912356403813895209962203637488863125068820203947710319568055767836189376952895694926826902969879212193544156870906918045649998842688072731977893968270230301791552841620595131091665015416541924101267025010004105210593219753178665016301385265196325443070157219954653315165307437466440140200774784766827098377736634773781566246160779561018275439648234106919637555423470459153828186252498864239445124551576046041961086074820615777523523445808120198281920021842340270605097809805905432303797065471096979459669672500558582429269649394177514702087990562887892606906722676381535006771822759281323776260860023240725535903610210279815278595292239390046325974104191964573174415503602053207695792665537332114506189808009354988981606149885152465769626993889830887500454371072743965252896080089089670710594660766302908161540767732338085691818366166431042997456501646090067876795629793880262135717126013418576222997890186934802061197261548623481241017543447217975241683526003639113231715187709195322521616774428612457563195776423933589465225176117963183041995630194657016802518436636317280172133119618422068031330669821436746301035795591737270177081077034148416639220577950988151493937438745060159820018868788660180492417965561455056065514377628034444718710938265252253563506929905050478661523170112512963825729907180607498628129419627947309426276062084937625394927310619619896778224369972836915712098555057022829370156597292520493156376525805403707250678393336394575797446244822627063595020995081397058141424696724046619724506639142938287269281341851802272788438081349301183438306831370529598405052681038528752149152404357346735010440332449225901699076989506255653832219404839546609507721526268930618493710029170179483948722042947972478550159349464151375526132156662754306993610005898091826285950500046240065459905892930116244867608329070911432182517088233057206359863448993097212034840086598044273960570669065382067973959969661140497215653150155333040885108128410089853059914057193320663465810357335666099720899932802870485374475885357999549861674191892517827968673185380985720425918593533750460638615580203367544880877323370558998505600465510505366196419482760908134518670452111983730841697473460328568264135719975697246510167723739443711753280082164920127696667988146931516646741092585337514202768370541279991232354971534768007373225633213274226077717591697128127193109789196162965606448034783878684851985035650863450697059217938083838419174359868822799260663487666465112214922426097981761000241323661614451810067285578720348138197936630435390193432395886503814321963130821291809172414755628206890577890493233116775602975568055247221645159844296693761733234119544048420378355210239696036066894325367472029617210936327151992650424245599597465278761068385713411660085190334577449985080464630709017546416048892847873309880417694567749691463735294821767264682082959060575296939225161082256929741055271124581640308711383331801128791067463781014440700779092683300372733686729671048127348963317408442047175500148674380036551211460822872517263521099243278216852216401044982392590801261132860539001160622511253694630015131442013181214781011512606986709159478109100659642196119752852601706398183192524043102902818468810097958809528576655422373319727852573999033050750815373659243897127157965458413918953786007918189197026985857529640015828203332177966965554638853321194859663548869520406085050596121181077035095336366826393699817502882054338810681375913813745368386057126090453081276624510325941804063538679679875190728622263367217784410397444896224622792455905500409956539407127748776302841221938244609399001341033863275389103339157839403159350935640936296864006000536309851165775942958019736638438083926748986528405778552621325564858096600970851941200084758412250856463065883487365146808139448464844254180564841964951748564953837935613054039060283527036445232572234429214488166706782720000378963413693510128034445457693136928285534455959411352891619219660658180892274816364220606867117731189706261999051398760903182098644748803556487394057094482468654946257918530480165842297173959078989378542213007179488037554942006021960152613714692474750652299223006129064668934853141706214915715840839136626237719020936824796839207584173313364786608521518923594393352122859206512777239069257662616089633492308489369398438652753631764398132310245325425900671647433321765253016537112420035942902900988809759745425134249299826129254530320423237389367058736098506323907659375638986163180025387971919871962169437886550077385428577792182460116102024380990246388370941215918989351713628497558241394695784146243317112990930343987426923030189019112395087859922086890049407233378104446811420023957119842435503732958618124099725069170103874849313353499417378516030988630056388524865268413147847420190808688334611331223274578402795129055483792418575271741271424694271509295057990324657417144583360819721919674115009419745800498864850808216326666214701542191857200002292338609729468856512886637709231509437958164967560621701992036844650025872189036442857898060454325898990851535881920921037533591470949043635745211054270117820068675830084971657304463854545515614004781352433950130753120179520709816937515912095243315202806754523081572860911669782526412730084130043538692945876106153822055758739853513852989286741037758078262839934175881870245545914479478536481011055697998394698263374285501586012928058092192368519321372738327027965981124959950867581366498143507498594619174232938083337333139802651452239256787983349801492609628295634981273761095182891470718187148594346602533237734576276928345748237864132456333884474259098499250630260345380054066294135649200681246503498255879332742796572606976223930797406293831986689684604294818699509651787130174453559953727510399070291486452460249477129332436636846088718259144910629376358255880703007391360206909833348084451357949999942118900311055923753608198694327033461794735652068707199153478335275924201731044891016291411973830900032907615980623507899624823232434321375556688778799195839203544033343583470256396212834533338663050040297015326812602390897268667634095932708360161357772592250813264865741776460521053065077444501454913981406652650099647533290430967472540626393994843084157059518541170196524647439183127828034406449657893256858034904678419710575946736891457477042411887411176290369244378778797942361756525953357892463272598263239375193094120982195820621928553358573850012939809859661398470085360282691148984768067600512894743477695739816120593302395706479676384122978209461344603163211439326969586645001526660457157936950676638551606857869146240866088179468077801375047558068247833577452471970067752766745004160796412362086631728290197033894585375531479857885815279343872460480772312596291709339757399099422273677096791598000958222207433869624294868317649569141635377924326441825307186442677128931670713666162531212910592203112226002250261408735950811224675010960859179596934112404557716926299191034288228851362364438093241864162703368775332971382440968500900368102750155253790191190756181161501629138330947668624912645204569925363205232619839540587066628126031329942490399289672685870012625095635129614210487018117127091499261199073616272502652494432485568090343850117835057196169134074261055181061217880944664333627938649975125549187705279659884904006399549913332331737394036138516562884298425544024151353479681961223429806459245994090380235563592238750109177914879193431958515104374365663366128007045568788429548389457796283802716566931527934557601868862819828873213428281609007133616574668458924854665441439241714306174333910324426461367850100331102745000291370123362503300354041896545254031553351319254484455726694457095332370887763918419007654492903071893920905627107301525392081160485602748677615116871954873994860417838632473610112166362872498308272115981676606390915462171155953727932752875410321656315139243758134310270691623754016576599125723189664482925653986522482733238968623947519407252519992834736683302971855513045955258974306879015326853760676966619643431023932506244623415600562811247979850178011848623133755272549742292660272103696817974760916062714976181921203028877575314565345102132244883807622894295491185653448174610431698152354954589424761773472338292655671448154145901762303658135547865451618201761614500432424429223383336903325868871518561351390583651988496700167772266074721014972422820711438164497613563760631783653665924284118777395399161487155590162845809627951431393034976512900755695258253302220741353226055348285949242971833270251634424496425912028965710017557591034029936736945981513195534331425504802623622315843239586737124228009475858772410554617593375150209610007126645767947164684014976702786893039106495946479343440220257063861376389086730591211287910061209675066323778456246550951380650715467440329951637199885247315247774495752607053144056573459898500906486622108738221263116575506689209291793111073657325125425963413860686681566809048842617639432077985260637145510814225563081535524536965150876613376901546622114413251035681081115696373091555930604515610188143209363935024146404257897940209873536166175449293080552521841516093089556262169977788092323349441472643646185438335932401749174946234027569638479889294107649310520385948761629943236101834434386935905664919026775081280788128958932990412326964839833488154178548342303177196588535567123512023725810949258173517044230987763777216316346604905711127886962346137346006695349115156001427533398948650779057295167819620856206094170789683026907240376206545972554435380886297568260970622770843818694838002644024938799413625544313169141411148690867782114713916382919310420320705841133999773658569571350850967383205587950936119622217736133741496779334373744967773161827435215791756753272037288446404477391478731463407284515461461358867860440240825540992642468035146000894546712654973676969292216726367287987649846346428590829745288439777195898818198916450663147658399197811622905589834754801621852303152421265801088566870354249095741381752098372206933521398090165372490119140958811366357798288825886698791618060107506842496007209367548990879938023523428802411427837265178912921125923487975794834941547401334020101728634351008778135961386289218202358851905291831125848001552725175849095262158067462694172545005558546819772096862100222105393837118280634286270769845358508248013561833331913864368359002863381777705501584629170795539942631351397396570179845812027884271900813087270531890833000999024199762455840378059911327601182060842128795219642045128786262538135318131718306547810593596989704875729121463643419613724049979672036677261080943468651278893255893929690824021524013487010584518483841796492696382585933699849272452112623646863648907492254434295594708628655351089954073053191925406579029893149585389463205526624918533406426610239188155353265999762929476033741770497172078526449756806096761698705240598907580372580986667898068965426435934396093071452435293579271072069918795473540548882547761948603014212320848970375254037672772754126420129277771064200401444241773293058633808016841246125271470825485086958740377231448236545941482958323023067249982916279302694951601803804289128663900498160729695319055130193499247817955642169482116368074978916209704952504109883653914638471726541518124059553570152515903979741002961793805179042145282739718106679395474732633681195165463382853036107968492699989224388014980611160464812824898737985039820324255225991054597357921845887082009592973668749565883452880756324475344749687534067984477688951325932021214657701088115398760102778879105526142124456612509719587943202856211223077983822832438097329225570825963964964458273987282926478750292902016442034994478619981135741045038997185486282749939503596997443883032997641381458031163233904422696681657009078226908367362559638685191811275441128873267755910983483699616728560308404382814826222428075586149474381428895131386731575058173209688211491111616928764218097169866425231994368084267859392034474040490229592908666447024327480580441860087190589361325713079870408964022264040035740659992816726065897602456110428308763437915215441440040717407570079169589259800019295591367555177654157665441095981829214797448917063096728549443249408576683613969928975448870010366903623134135254635982796378232412731879379202874962606156570550145868239392649309657714800431805679545710801625117856118246939626192319409974317609029293550874533724235191758471437173503442041359428224201704643620316663227633116280800805369062339423181433390377195440323287815213234172391280833246801513157814637363864376190881043813102293578104563211081143711771410036009194580387047651526403430919721986505190430909135263790148385595118132633422091718918613307955350231913140496109771677363527348008647080893822321270507187267038820796747682245705758727003381014276294151722555294507785806884300266694576023349312454631731658494435207462036314414534228284465857508192882205381900378010097975637638474072877522241891577129258932626426883869347716303535329004620451200452140215426992770335039420805028480010608099162381797099823119023260366233362422831664431199643958315982897089297178038772140073107881056754476713589502890459055313283461991837868641916927860936194883584335586106897351792227257846873330503879881483659689795270892301439614433895716752993683332474662814317879928664136597040300613007724640413455240749776516987553087813266470940706000279039610516410444578234704999630983361836198062591425617312899059388345396585716195732631492649468428870586455518548506757010940752584622902946557811792109100873943674408051045221183173469064645270991166890343258144836067927112071938532977393527993351101836377357460054376710859385928522065066298464086040515102943860434850073936730079379575288487657166386739833234906477997216707472937490893813740925095137210471829957972494683163025380219463989321859445059365254610629189897336230617266825657049113183695647236907713137099589348031008081267005110647789849192951187380790404135510540704088197088002552990416672236583690710704451844432305532050013103647488875826144252468587195123828772143500888597123324413341746057651025167129735951649920082411720335032165000745873101781713023979784711152085381033494061444376655688264638417600277213655088798497567834431905750460030941692052897629346611788636098676915244265763840475859776058162207077598675527544505484242859249779506447604807195097441626407421950103338596183119073094031448501807507070177007730256810897090624175871082312388196801003185151821045137752497053770760382253090472891877041508072879067791014751761810758121739802044702230927613784005456614038232725863481487662057328806604089341438146876376036162912879249792361245999364629332229240955324526170370456617046906937591706754652845808162877442853884449354752259933699949967818833909201751153038793039398488979784603815280377040307128437885093899875363291435413700413934252431358087583995651099345757205560273808760788969270937306534506249685444935744713267642829461455802039207839430281578673117701506276816563112040044225198742657649304822369266360485672985606269852812418468920456954558678373476192625562057757551406228084293235186618119728505660972446667890309751032331137070176710946434140497287946144162226869436179322441969126690509487540946666087494266395221196551110980914912111675656291296994134631961687239540737676959309141382096778766427609267430358360583747609332566664743933911730594599365486090738293621625662690157165731426540502085580854183507039768859783777400392556239652587944887959601250072266241379895330879204037934026814087180753666097364212757216043692877899835830665855979388080354133258487563990572783188356702634389645153766457263030198814322695717283155110890285094079419096995383842592935324337825928435961682719565648704776916564904616586200144342149952188424154751135771467709496936010017683456818942730372905445796642336701625373447051037016493064936909378270064346041777156295515808638524238041253503846005137838222020828201660037241909871804420851318330864582304514904529731178353539932684282755930867915784540554860870959582061853533228563462839860617574180262792189237008646126353687212651157489651441566568778305347199557230949293215206855239376879350251777670060951634988269194591952973300632152359353562634778006348612246339158082544062589909925846391517044197615039323803499285323193502032634915090060345438182454709241484252162748895822177594389024717070042517311337104659083022561767907336229135727128286953611279889072396018967161997596226659004258461763176808450284634181000456681986558721116513213607787129553994368180380214588479047298162664818359031774078165294129941144523226451729687121046282617156063177135686387497632419996982767743798430266249142167607240631001292638767488569053859611841377805430163757920279904571565976366558855574194769498105472929161782357642242136511437368151856334779922457023126281781808856145138467845992315132229491051916082626208818498653436336337964336316277902118626182433032105186852670941415077713091650060742045925967735794314662429221298225856409678953542070461646302651637948214360504040356009348459016514178593400176721362061904182697310390727323757567561359776765090959190008268048040456802954642263925761669304173709521198658723000788887636749601891843028900757569521703915616958680848479088899310389197002228461314579348856406361023381576792851426246921676312787384439431356013584452994918374475152833701262671724691818931887289841248447580891347338733268833999225445179763270080939598073169529900022256613990129624073647291305085104393285544539505908833681721889554541047617158777476241947574499867115604742938333030223247308857186876370509927720154645449876948563532734988704957719986779307768761438239468857163294353816216309936019767408051048720498942370397882488691201995144867062675564881381185535341550288858118471163614372668653236287110988104301822000420983518338518872912953235332642047311855523741103886242878046626578639819988173558754581911153674967758407545127984905781909424961616147421447357377633907889159861380315510319767074149434928702812822033500459955785441380055599989583177512552367319989541136859291322544776779337248412439388509735289364102793365209322821985320840489477235355262042233197780482063881999099775984342007660835480926467408775411695543406652987031265115914803975336811132912257453199042002152945178055671101852957220683279951244065657404376087890274122145010244124953582472182338916882429908032136019869280278260699950638716515917361036475205989583902495560041531425080856952482141650307768319755237998015039683320033557381603018729696666560865466309628210549420112700460353678189088523972714449773301701723324947951359056369490310425827787197273135596501211106609285376037217240278429981948882747027933828532538245700894291347671414057919000751730516629540060043904172456034088419092656936136706854135460702798454950869365579903622996512164067152606405613020747036625038352761866403466289661092342182006170420904563039904481286280015114851260711431826060353193942696471273137562333099595890298193112754711786519503546213440209868887181385603895828179585725342615674370228573627554614004216189772707448918453678104460480906952625828022260110016576776386889832651265368632527276133496159230713551716468361031786434667169706042520491192086496218962479337052449042872963753410570531023899533836618661803397639725679008921149942343583654475004520419594799655654841915648320125265982305029380586175550978910623673279686389204976597316791098774408211260872481147490874731132187928473557985305251229379030422636163878120077361696795553836087839320555617806978983459560530000716626160301616816503198723790238872224143245550125112691360353051724210787939542727816606784274157711704020559815326590217780777906512747265516875228025003341394208763154294226970730490433063085227987480640703233992272808035047986886804057681654131402347835684919353378882828556637589820822035950973973569755813250097572551871425430339088138679213827864728666458591078629607539252070149919357664491364699622656923975467628543149689789315795905221449299620624480811578420169002869950869583355341858598022794927285468177695712015446041377593846733994711078449801192257110122378002679441839085176427059623022811382703222338387838946190195582951871179653784947516330443597359278536750358054119816362152995105610712699312001998447241165645423889092735926067547405740734787563559175416425368349510936510332522605974251936005346627849427130518266900341062177831297255604674940635583447951890188020961660101350002720091747773361978126993857966905834404835103809887012935894899544657942484276561376604926065661237972916729453398391664211513685341545225460516331336826317420848078797296483429110944473769045718953114860117238474577393111495881019006605375327779438713554077956430501233434598345626766309926675112489374250607682206604215328446151608963058999294558957728649757707767056578045966381086222640013692945515828568305772295760238024123746197954079226686840379777321657763909741553564450991601515979274785335637247751980103181082482944901632741411838660525260320459870821375682428088351356289625691574073038386773311917376740715021718865291241387787532437191221922427602282625445794783537276953319035262827708919084232027538497442500038742394492717675686211850070346302745077366929524024479361318258578630088008180819311088252482112754750155993481165658021757325899298811054180270433791569162511596617603496803674941663993803722968802336779677653120551516313056856374417877070974574922175099008922503208044207066178734381256903168100685966719905672024614997942184596272390233418288674218055864938165242169460578333691967594180144159556523171931774389297560030722540125495177357640429443698586817518937318794805856275336764745403323535290073367271351671792256720918511260137409354226460257474025215402905593269492934966774401672966626238167581280170247462094187587384074533855284436757673291900752843709535019897603676230198998340881751011572355311715550983391641026876834538527530577472201575199333263714577707569293682375886095696631326734755358096593882891681125873245290663792560454713224741561528272001280092878112059587237116913220719119098923821115432831591153332396203679868791446383187815998573864467472631348152796447481572598778208443679401295077503539698576902944188270116155107558183867436223196332071993757740095951024817144552960172905138907573895950340399008285349145744883963118155666825472487927697980127890910292406167925782699314889276681641950475716868484936978290488363234027313984663084413508637994212212238631291313688791829219477882430573431691897614415631747130038571691992877421723418574246913960559019391129252569772467628932699327836520834198948382192693663403021231933920911463183934050651903421845665085966941167784777307733955162637396227410181818731114165832352017669470194693789076849358178642547704455351236920646808031884764379212167553962780550970956355685787288744671060210897903069469327600894767474272628506408825750060004673725213982734105722107808516714781540920674883291833872282826792174472995807849050704300483263053615070024286641235294152354903009648257432225853570303293119793057959138782401175758528891505338329406166219385045456454426002939212955169359706968428029495094256779471042834511634304677018245946420969244438143130752585337847846736610884365554268671924699824487497989422855255930664761401655055445083844145856284796647879001379421242990631096240080206947315629877121193981123043741795741971687752357142740098016713076596161557701460370164857054835458579881069684893434708121563881565580025192151700996438507934320021533123552991100292372709208435864538756444569551228033402058720972214931664833224694591723500293037627873595875609690885876479354128802433748955105182406808113638815044998703168329367036554478412328900392688826437048502697779638025395572752446825554077958080710856820446550479173251580239241750776522662030309009902699150065210975721785001987307857804583063114873619109875089805651716497763941075799366444403534798213482604319579819211466769693915049044485416419313147884216686222990734913366558285465606987420821876029710188761846050409487359322808928276180642177520271726890663290974301459677729867063159727604844256968553611131175965401333307240807741221878299713353489567689054316688305101043255739886993520211920523793831929438052496121391967923847239812197366059601702009772073467298818878612041125643034179903271115516071971269703530642407748139346753936437431600545392408817455452629939036075285264237104019980873235233796851536929843701029982743509346852429801841599631760508728048038518045169333498861394754116270867569875659071718487533708731575752057580611342164801400570986307370193211867470113795303625399559598437220273065177398770952430308327491093862184760070962919616020319814044477788849272422602275195509914562369186900852507126441199466499187075976049799641186908634639242642851973126663501417155275917359864886168693928483553896686077268448157760324268378011664702115780282120077042276391860395827530268725659261029380353045556230505559228237197415208090576300218433244802500926958087182295014819375652343512647791599916273228218016789321975109617390027083429582292421414062261423895310155354635321379519065877606624409090296778080194731844485943061851224343823419994030803257216397768927523048644651594766610891446751783976963467160148386123160616309499069779710075762093864501132078229019522545810408925692529522848386192791409349036270711150814616732990835608179267612092978807601129232697527650138216511931979016169570598872012531661714752132240460090159549731000274047851304748513095507791198634333672288436159015068348973614030625150812299244717891210243447822672530954689192430697009242756824821227160900949444764553402461318774674716556620693343394198649364033939896793270751637340559711040962589153971645046929907415311531900116255550140093011308646055670217355449192977832557276055990244123124598382264434746769383688362032893943576422708485864595540449769334341774678244841672383540419660422670978204332890573377126571198980699990883515157705482276434865805368419017992925219305167852982112084736820653937374657845616157665988676780738669976286087201030322300903378679531325605266451382583038539390411320130789608445516221494266049026797858367821302988890304227764460718517555764742139436520997816353265276820249432026623705465979228872456813089188649603230533660270979434510649768872796708324083690145768230035588237434103603840384716051835298746327484695427239612617829919678803453521799292988081769670219003357709936645249840886035671297649100392460717252874804259165035017780721831772213138390232707749180112126655930472993496985025795706738785743006165019077838514640094328646258978009650378175472229450927210078841670256636955799806461040467635274345884885581875249626828228980815767803192354423590811436942506907813758588855971327253752058212251726972398696431750234935136631103114845768417638969906254343584369381091546794311707592656757834955495429307944850916034005547508873025287826167670664796651302419822408180934784798072998129530605246674015943450868845092127569094759983797326159062343503791061581898918028491085852246566910995988383012031466707157239812714002155323828347014281303341942744983158179460405324740145702814722501838691231818272686249252551603401553346227434519676722223849053450275021097358520486941995112830565068849206570358051373450216309425964714600940972533162827890310503075127436060809739355189802171792957247024835306493764686545690710700032682414492809928469408815605186477777339425503611201679573260780774248697165985326964811394370914369862529915030184034328935173531576117427233384925712991598265780639583483875289190002153622772466425724880578273198135877500488548576368359531817461705992927655672000412657294990082504643389977389091222820713231342661217123448540152869589044813648369636740829476525911190995695957278573529510759116909685077410971972551275546585164719616652208415089907698360751199485927734822659926251881002735015453171981846763573263882108433547839646947521525432120149643575470289979858865393352709394753296567178706123120033909736828387828925835334095865736783433446314491361319718296598216472313680281848930023146330808920240694272617475088664717179762923325838890640085055502311312738963761990954220305453886757294754814712258486685789231432953509758311329396670283999256839539632061858081033272251716756838000073896403226651874280336806760066382417779100644774837313756054608773179493870037562374303430182850092863885963334585928729825361696369744250391800856228187626784955218737585164522961089629092469953617455904799390131726727733856566771610441914810444031215303235896633500595896101904212153363405715101525664274032742880901437745508222285284473264973794551127086221548486519168486138861280356009535523561762090284687861464592955386442532557816742786158752902076754762802367344847408510939650683529164443841274756925682909201928453324796678040691975529288086135957133643573501339841055538729246408456417656092611454863358065326600410067864944346697246420724003280582172345520873256816361719962575768459783975327624673279168134802081531409401351629254655501976726250608445798004675872288039471602917641402827063178140790168398014664896377251062620896558245785492501669065189992277163845976875784323610851597382928875058360462759076989255371898879458019070368480154522876592573614071072838022825366759787822233705472970048882077853478787550186396514268413180489326670671322897413186054376889212983458678148131050333468160566411990609594289471059535874600490802364071331998131884480294077533791836975012137236510156083997571106047413159853355120135065927744044461402018120441009537557494679291925965040331591032247475856230587033001097263956451665696436120087910673746426795576596872935364829178599265677860571491285243475811504487674638663552238507771809379573204828719036468953658627015597057498291180286781002881942018867971478925105778820797833035664399229884104431879393670078846495285502358322860871787787657282996042305753686607812474412407335274605264760492119678772403882785153226373233953006294521235714435022395297934874807637468067616354026360792010363652142274749472597328334078059314442484001747245524224914722198628804336802061410561225638392280711974312430224343766778679317351890032899563463441784786091126474251156541788118550368379629911597920249412021039839504998706088783629962164463709731890221710344602575695912760095797727075774717422878722990773526270974877997688699845730929342958547638406310146428845586970796735894619954048263573879045736347246943207917426800647002882291074237229032303910301330682437409242023062688905746018838460764000198861768781043033577461477443274851191644760758141935499579864756524462718603414785421779335963393159730596822699329725942886737082329135069543209683788242772835973113530385443316075357757944142952528830377799265738864060795159457127825026557995224987520159521766777298995225056518832433705690881399670045226554521595280444993073385625388674723376651342171412153232759317542488626497813521045371752120005849914229104804530568363632789740064172102270080601173171810043410758229992531495943243484037050951934097128553192806860121201868541566369568178049654804533386013205707820441276637860030530465167545190848917490546791984233890527630285108006009831735716387648497859490552940769347780477226996163046406057402309894032402344345764845295694589680531044536710923857261301399214874496037126149357035850074121447255355208264602514130767380747530227744129971277378378833093176266641548130940097185609082015736393408521613848540894156595426168207573487037662719455376203023978174475678883018571582211436707547132320129199056111181277925572188439591937901866695510985792129229234410971758095656855142058651211910714694488199705629889485698489431969753475633763999702151624449169800307108152240755109435835951970103344293237901937396119001040384472507024561387045352327128289849544763382231290193140850529836142763651176150107047728980600773311799526273106630305269099255708829941701930872814765844953685494849092236881480482859073007396241839485208102856771665353852680066685784355046159448424873385488609447480172436045865211231399571302185930737345823911168799526076049193107180306358885860673390018887140708709237396519386526849521113731039859843440055506120487824686731112290545913524431966510126544203957440597882947168914403755577278111391508144872173049151569811400811658923245844430048196649886137210677541208203522974654761415894432239897140983623117324638759088067441507352928703860250149483923884163492942173409240155777841300131935081704625487257325517828610774516755428594045094855962064820258503093655575258039714986439939996390650188756463834784463693392903069605120845669346412068247576150991564370573463758330693844153580805046902902208557225369558393927454492955586115205919199133504951444605436640389248148167223312037344798082662031298931934541125152028281913193781674145622047083521904764754855941052982885134929075365788035341302667394930143019853645041418566466565113282400270638857358052223006472579450318238934409064170212753492019895243706466534742074668688008712495075803920788348704670903859889038306992217220804350420500730548839961400442543929749725316022006453708100241987443893913396441538480547401399421858893429378730653342554450415449461369261477054861978500355444545738668137834802164270691538363377216201443611483042320732674839983701387419828449164164840989802290420340433085796937368965686754594314962051875756275641885795404560092341044313663478641505712948613713426378037625278406683499191914209474562280314976203723970839335320980286427988941055134169200983850127474817792973439432638606793943141267441527276891448298307939622343781423814937711315625339831606034640677559208697576736009972936385433595989050759210521562930589436921549960509427220112135588135269073574523566625594704213876648498365995423250071305545748370459035516488513763379166355602158488235071463551459528837853718905893515048964361403071518868251347972186129268336825068011849482741302433021510390867615620454640967167622918266273520261112698104588050114478470082229276824535951387768017317608033681645080836172998004682165920898715247015035657320664912001697146244709284258080678150202598916987598559435851499499181353639392273907548199088278764529551784869381026189441944420653302698610151636511187079565497997500386852592834367322197012246432499289204793577721081123497927434504756441704642273064209668821982356801792945268998438652942401866374206138682607609562188893287637076566472389391533336852469441460637296504547399600466551699626526509220671095215242867440176463895938711959099233763993878603387297604040318446852081553397656373403560291057558248826776887255095832157590699541991211261036010908016306860691718168629133638969904999612915431612546864713943237840864961708456460762803981174186921592670124776805690541948816463467216066387841088724846303525307547798102255726917223151542153912386597255862510585360497903400433872310739860020848017582621541638977886770153654954867858890435654930746128612677533784388632203624248657002413210669410589725814943175123403959510108630609665210259601117141907754027052181407700030519271350634140666639888473110992655256900556762736255609919028054749153451479936473958696332161548755257208195809207725393484967013518228711990445162401985611295222824905618772475737717012357648189775266274145424987533042758187570515900746940973626723421823754841067204336811288493781655271475403879123732126978524082513431928423542893411492204524636943614837195619291351510287470658567967504715944079366178658228274000695070726961907742543287126512588987451969333373743570635180349158799318218404381973055265727975582084866702567990485333797773055796626902584009673755031029003136710260144176327161044092262756027302363678954130261198806242825705186431570615025520539426412854757526998077266559106881876755836123590260139698635470455793157260838280616530924062456446282415791084008734480081500232803926283962909788621500941226097674020262704684734518924560971505697336837655730320015243728143569651816827949677335681336129722267938691164894903277802720641306954696244802631258770219173065036031601280471723371082038473351044397019766602059161202219842726878656250124894607374765552384691453761671845819831156930735674168742756699966700646201301276464290168808363681177694704049912826836966381941305580894478750624333705199133996246087099083872792505902942925033849208481783742151960713930202935301512368299319996285694206036648680687658179155113363942937628406929730092840610148971949729450739103510250938435495003748435294539413877218373683795416326164280042129821403917817123155335782671722049119959033316178986633620367535071425181995696366097978449241913018678185864198828524997260542357063868118504949909317671229234248040002763162675956634374686657140156185847902227372309352218950321023867978301991481562714680195334534459893410443133708117346612995391476940000198291656799033731136745727280818085541504668443819778483274670500987639832992941429888226446850695149082111410914921190426066045641848160013050053560824843069972484816933331602975447796446727789249573575220865989074951677003567868097170381608820596987985240934104549566026568777468415450576226010887203241282674386561216003998569130589836867444258281345589445848161119342994244418279003470827132758121211701749259173225973081692182060226914220884926367820311289708040530308241053988697396409851580839418708453441860101137115600828426929349813900238752445810757886494076549812151068933091860960119816662389938747730848828513132046934585772732535915100530406778561088825747069897132610989998765750323081576518125509933758480856375403588357404728344286151681462341696540281445435225770473835252671533650489271781042988482690313567264800664109976431398903756291581772120827261396181505838781506261444389702209293946569782869201398654547855505647184805892001499340558984541064843810439088937989775702838790698861133536707735457565051401272122477307991493717743101046917177469032012644216565624715770145280176243411752355844573167927764055011776425515173889801456184517262915821917551138163031190286099415966873705884109772186468197567612543143781491635552263101459366730469719076536032284601323301536846867501493158877102036261228491441881017214214671948616656002336437798552052496011686264592286201808411798014661301747284773404516728121808470566657768032476282601202269615096733819070461908178431561780473853943193801653238455531573426701967847948065806465921282787009930598988540080426933959797264663113645738433558995280078809598679346822195981889816759588485233749436266685863760857418526702095332029424617147365964232895963650265708892168283608844089893790211039600012998897076916562145786131644568176256887936220017629089910805726430445768035911887078595547633727902463853041673925989646432054492838633012198131720782870700636991159856695809038100670979579771970473568848634340642237018887828203608240113798263869571580395881444263583999642057295766739453338159432126617164918988958946243590635399387063927969866949902483590168755601004081474834385669776549312616265041672016959934935561825482953137093795983336183245846403263525188995810803105628224271235446163018382935580630477287778503875270501300679654234712280457806397659196338236890758546872730891030154639848165314038138410475305753925757734714204026816207349829011311582978583719192622986577957878416845950995689915503654875857138632665198948316716131014278155125955528277108916891216032724355926688181848079649304914256809535767105158270100444982481769771758154721163714344863099546176375364137728376706024175644031717035655308803011885010028065884883426510329687827485753978969747828947839350135939957701939178474910013531075330219730146442878203409198079179885729100036939809638417674786601680057938179230983919386786114839182368024530144144527608688016639202326312852063413196953956039201857154807398305815099538054701895648422589874473736230818479901124652214768786839284933494262370552093166903170859299260179623811762064247689616084158127647196840352141149513464299757395481518358634935002764415644915594938310150973588628605047158442162346905870245787440339842402713205159442285678043697049499444487483507230520817289652526876418672884504731054866159462325324935343706058254396454115981327744448445992997561360584673914324584352908026176027081063777607673558216513205024807758619919193063299873888229851009266892862587747196815999916174745246493721507465371763685849224896175916562915546454433247616372300536419960087278884796482195057079591152308815937321116839855628467414899459195572998102061519962783821779917230738816249947883362970736934131570021981604598602026045058670249207729755480656166952788970378065037191211549314417868679838195956511825252434679836337604282570740910001490436939856979404733883552128267175280840402214114012705152509605329885151849196037765607793351412976699687546749272575701094410864834625468392796054462845467035966423598639809798386218160257624221896681591018757200589581761939441576693372975974444885621889998542555366694162063130778760101315801581346111125855550391360128769831122247162814769527054238342343712190244299667073075724219433626544880039413850923125165707969004163894887145086676407362177001015012574754528374630896965560735128838643710774407553176174592555283472508295611534343398305998242849546553706958375708128348926378568708361821443655158481729460681319819120597926357375762336142650431005941269050662835727171796528135539978860114863253028974237572765115257286903027781086227637564865064739556856267427720397370156087884633685866894049137041422568893252390340425266119846649919471562658215006272607921588413392354357811793437520047171320501616720059487350929284373576259325093110378919101779753353670663537983205873805830035420390022465958454665693832408254653666303404100211302305802199315824594824156255516424583657298733879780637838391928596032332732444460579092984415201991183860024825750633427705845891999262161839516667913466324026919398478433621027743628900647613602968093609785355444375603676135576817883945742000885808602709156605144781925696302698925032804242109715981521090562856138659650159073415097700546565170928881702961751126492088879922094552993561992724936295166387070288265273429086689143579431610664285476979121851970450960152580196783481846573263617531648051864676639463978909007426873359271338007450751053215473596290937788872804510114198305271782154730277243812496144133711009666385396311684815218034882021986567654072665739059620936031614251085856430720491495825914054056815817446901171533234844624131636057350721103582702084810364418969986979354664129649304881586038358790884115990421999403134679160774042367053301687625209290073097710467142687631826135418420267554036541503694816296457607820051474403429381594157005109246721913163580699907070452851699429179222386404927234968847965489124004840636258413916566291626453935424300289974376398538709010695596695728435811094453659899100199469193896008796610516882876960649564224964383305895437886470990291828162446795978894751964090108461925910889714610067697433177004417290877771580401518527676426223958970553227226537583237115588576755172276125060384949378544228019156112595068874508862889755218283207278694854777903980397852001211604943338670518813901245517980239425345583253680543706553167452539059281973654014677299816994631325341899433854333051182277972243215084172272082007777076856749659129612665201503617111199150101690801525641696119541540112795195342044653354321893875333378160235961807090598943049245590894372861410257152271588668954787257092291884717294068722165536849156661075887510002446825496243714078390164200778335150369367103512290563496059705659000926890189910029158712534626344624350685622243156701037450018255098945989497269548193992819440590760188376487141495755184943410211892977355692883987721646862579730165406110136024451350636673112223531764468327353630697241645732728625995365824158427580662656355570479965058850940263947826562460277874099102752078284016422884799452038218678170927582361387884833494195427652115733342702913693084876558009771145312025043398441302293438202309364335056525420807575520984760662911190027567667417543603449318998385257239030859652467203551797015060658407896712290691647003131123020245282821973107972519484581673710611651082794256399253382892122929542885011311622032168093426434329637895768249806201500033710669518331332146154897954989060688228349314702757276074666404056874444218937840345993837580746004402625068222811472295580079532864321556107167156330561747081678713466895383495507311918288865750654839419591128411610778148331677571964775640158140397835076103328039834993349152698622914145564676370887467377073682614252753682183781947132524271489690679167143204133263816217533649022695630663717506426961836067680178830609271293591405452666852675753876437101199307423429932884278168570584285147075065993959277322447692450681947583406890517158394000982670650100234894528148744587016807971585765808555475192816802266876941518454549441825461046916873276560379004013767935961598203516802691279136589544373614730509793165172035677136513373116834216192472885996632167283023710687871739061217405000684981724058322926947255201068301084317802105047281286717634770129188799211605217384390662720120262153098935669718468558373500825833916510590404176921368260539765397302454848497862755716893560329752212558049298203618919701170680328838343990604909810826853040280777221196402300265575449951506494355935729258506732892416479117895768821287878320030062090660451201452502440158970177488862743250098300166800907745787155681203578289066513097226684883508706249436735822613018650310543015071713535048311587578147127709962534068487904147943883151662597818061597893722845767667968891637597308646057633921466939134759208772606983793607895974574920703218377153951052619955428056371533517982349485217358229361766216571841135560320174883649810660114070657410859958884997395150476944265130419214474649513904736982729416600667146729846338764394705276237955412574038434546632036151811166762696169825734512115101279964896230624608463800929386227279189649829618167039443930609086932166703043707924098387578174899974139827427583913856692353521697774443839362087392274475301338826508149016546804082032563623398662150722288414151302521952941374779748162555023351795617986071851231230526886677684796588168728021355864439161340611617965764433415224402829130039595014620801632686289110318179865936610398496082160727031439902632726527088002284649810242198130408594438454986640327966248859873715732828352284695480661596843044809751080333673626786539809379301696996102079250299189093982742238401410074731009469736502898459994123667455940201295003187202732674346215702098479418240746891722598524233612777860878043220338745784425245228827040956213779794484974743360453981284539088165517945898354737078200065625933346616723503566995337565377305370115228091177186080563319179840991583028086884914974416482610891241332828480769126376770261513137084205042657132377607958116445663486867070657411753720949510239489853819351748961586501696719352109925407147982700697605483621574562525827571486576126930870206132459696580301602314896332730100868060255695478027972281123438137548214301951899426566678537119098936163104487800049893663152215885241296493706973400770615703109417776172206410037815601089942940945332235965741861713828231604036948249270129399542823277695793737875289949327788781744325764630131602347126801698149408805509450969751358475155836385718658749822807205184474192561206689357267418686119644329921970074992973202970536161174693618457445341454904531256860861494864274413832879013844123005034660588488653632272699967425135429250845465320597836145490145386037807916475894591985643644705076374877367052115359985394691515996818684228997758613318340638519112765716258300253353402142793000119166539858386456079260368258453699897195798979540668976403184504189357688295298577360959440406906452288726324569961130787254465426677906325056525315756987522923788073097224407452510909796635372589546270819364851254460804280526340483802984348079416091168141091207232758805019883247889587777950811296242214303602055483777090918621009687868652551988784273621561006272434876169004763462551820910623692974037040773957319464869097550104181170571763690882598566813096318464992592613195345222070498294789257482514921643695859537725244744691761868862815547860051279204497558769744037621830911412438074885510476785108636964374817878417183316023061116075904030674553324352375419414535109230724420727909843128016358309960841025287272197117570262131434969963787470413270502165563264628118516245708879597714169946275326571457146026261680981633083433100178842540913060528049626029084249674024395595359417937856363748923715842736570804902663119089189886405272916690740150395801845246389892394716276601534187407783111972015978533152363969410737484216519104107223406354926288866132577186007891462062209199813715198020693451628001433997616729942446204877685204514273227280397793045482568181854120567019985712526707477721499413615672541993035133347528237238957641894692537127060054894947620225663275446771881339463715094093540277804252939192532546468596391790685471186007899594009771614823635116698934929582967302444742665090960922970612719493510658311570418656942728199149532257288797351625694848063032292707899165587527156622280541122010310254898372353854998819546287294492788668070647433646112270866270436441949879063957743240102928736432625956593362359897514219599659810604774065925496089869897525598671978675337587258474787590719479631707218096482472079373954280182204510598700268759678078624776490005195158458370599895037909147501656031821315048860695429819406842572954226813632744014270577539935939415331448227463316387017760666133150474259505744516857853609140081388505357804896122866287331488290943269006564318420923049266224646456916357977847606742204717405722985463464565132848779999775236692151471716364684332061494131365786542917461260413623936078004676963220393777018149362353382560431864290411466092279664866448693455026793186848770017501209327259281480876341954017197563343297824430876108967894762520422267368011211221521691537619192206868497802494239348429100857717662598482129271416274605421642075641366258274499416500291748468502334436218477110557923236859131528168399155782738185373246197472891441334972950944698257173857180613190806444566031603520381826860501076102015651420114252105260611499459074973688206854719676523311742207484350599656146630247688547623825938988034595900609995682703120517311916378421793455114128943825701489075457411259622762402004485363078532958426005852776102749366255835020101209485399415306363073202188661105441780714109280063484678303576660233859758005260689097526388527151521040099193572902530553157345437033707898899699885586023933975294834430734436823794244773546436189132533300425643947358489198303302742015847722508192274128383032111991707322177963514468466675403119372020385649385049752228661412700911699726500778784676502565025904479286309447095066106883604731853437788036793180358837254028417781770843052715109335170154499312969733547346650232733779665732998613214134793690234513480347607225328587193280947427782966416140825745436035819970229603913778858287363776971305727914513134945825092170664448364641362249558194237458321478976487243283177977586029845547783083423307428223240842692458093502547039859770913467945691897925456562636653642758134490782867359630250318297042434647198528222038174096508493712157162457279631100334034917908973828554099682912160453242500709590717127106716473285769400353517699790993550583067200334210587434862776042784912057793896538992695132357911880144689184591029780100756687884745900485575123202117026343989428575761335090154285930775266164094361573389940664531080793706992697667814795847123722322600447610337184079436956672103698245020291438873905787878942269925671755046130000328168180037350643426417620317159264056339078812668440571730991984919208067160453773977933668299594512149104240766304774940527895996962625448361310708393859545109282109695111062573672750841303960894833906733163916960680439147539637596646749535455244834863209177193801583906704262088202014366267958520185131901801342227830527370982345707230495277485136866964096396237550511002078275892613591471461394371035920727145261606879073797088791379232867478807440738852991377289902511513893855374981097875466785006987565289692520920866453707846949022231818612455884708549395957873335007655743594973601780865085965984803267168116328907481658067779596244815102133381132319544355811001728827101040257850725869276506200239879551865857920102857438916095335103963641524115044305323099691833540275840067368106808366797217355419643209799674384053140699992404002077599342841237137264894383704338576577545887011129735933864217319446288301024615912821620014661640521661962521101829461799392304200668943410275211308583994436946794268519734952188818192046553587606034427528790643961257158622779980731883987890588610931863740655313037694861798340060707521003219940380210343327934763384140414902356148418843468487302933561573500357573404869516524393101174830559784730572733086062321762980761447086575141380980817826321302294511248604266358965017139365012910174161269806598045116120076977981612801315311972341385675598920717458814561314352758199128855667645709726923953628592386417770774404163042090677704586520362700403346669817418616356347510012880316564968972860790592349120289854206794194653811927752122866853005894721825309033351363583507269257939612934512896360974331045777897226619865725272865128277158682432694665183108848595746027414695682419544225163842288929327182045199771318983136562142108763310631264544068634519192814543024440730120195394748153146342022707215650977888462186883826672032306657691302358440014786575412880865788967074347169251965321144707661765847479903118570402044253889620421583636638819050415286464436185151594057419633577450679370345717542454479172512319800108438080789139810944675805314929921511786086302420285117311090097885886105608631575077050334546373160356280005150659427662850262827426316365169751437395723467375361948622886077299233089376984509979261189700909429917057583959994571847905875809898101546226926328077045694992341906379890172967330847521504349249464941770662703510423871508560848615370871155815691362035773697313329566972085295938052837169159232903708505934714657778070391735635348921551681687253964139533755197419752432411445407683222236733410909068413965818975393644450435242566392617652961667678953043197524534764842692496158421155609319933059896544878117370562616886514693183610008169713481218839115770431046832460112506820899362656474190918156843569805441079033697406486346406659823134504999189719050715963770315539791333951832180466910795858167162896707085378110350370016495404583215533189995319130883756310395176587335516275732403760496241806973159550623309617444537460681862320287670244656621372214088142900171001303174637996797392046106217065492431180191618460092126864335088367132280516959312046411645247584420692622422876667248705071878388560256488432060075145036811490236483217095763351128628266261170342255902352992804932451305451049432729786515699077491183289618457200019621800975247768636161659452898499339131442803038497369452945417813280755537414714623813977513096860366713267648497764681688777575852781197057782478888121920403600584793462088013157926735598607252609298500760076750610335448163226975558743857708543774391037404743650239652593425601717279023253537164116465177509736155691141232974364610951004762871486521233227568838510566855021112833887371508255747683303051348223634240016004821587168307373149644157917804182886366263583448392513528765459717865320695105033824027721693235459180782431986288825602255667409930917463419778794103853169034637053519486498909813781835264267620611656826719220092632303043899090702960174773101960781084298489905914532984025305709780490876803573715137913113037561575816791229848355347892217645107255764829827279449757855794569503087197626717903402139290531387291162035892019340814379180150312722082234577790553699590969531755270489630199649160985823601390680835539153544738106882662312933128698583266868657473630579139937388043081814858691913320378202173951893594090085828814632757214864899594590088605188723611058053243680374135140306434706783731031207256729405434889934507874329193119685306738953106595925740698103608495432241096108947811356419266121710530643300372850448651986892308453832795870764050589754660806433896324526849254020729677037765844848033062699158873510810127912576134076653329310273567187268306224873356414957923851062754393842323489543855781671509349551389135434898459538781203115812076124894416626672008706856945981030806059160673395134072901739426372503219682592128840982946874528997117898627983411365316937532760338194385923157148834145962466198423089326113267835622833305218593053141639506442576804210780462871679387576680738956920094615496442834981279020267859763779147422700006260401006281877738914772448897703620128327812261282277129993405954886869370694694505496651058873499127620223684855781218739471679078149431875882506939812533779781561567103466532325967263189785798452943506063188421306168947786731419388689625888430930068020481606973934131225188541970458230953969432555267918147828634085313050627136071262091183062642912302301515379322732989941664667550917505422003019038180505549034628381475981220260385902359851243003171727387023923260766452038880583257744010275263975271816011847430806455070433914410212086623575923192236371861146400324881003549314609873432365537071005685827323680498101726175384568355811197514963572741502260509256490423139789080101390339700687997944093389579250971382778488578420385457230470579091857116588399185468335667280507622191475619311574112431936509220735786511104831147551954303054848279721006647590041050993143999614639707845176428063445024535187977128800703008687366675587921004261415448911390859706262437061076409149338900484172170454399765594066396654917533947323970536280345673529184130459602781885902343026274738940436324249880752246998599308180898390710063862037491137508148097371898804550926347191846900551435153473913261063889827438897572316777387356903834036152562963584782004713936758028441872290164771815286477053145233372785516046877093174268625676197542932905791851700412845150415452192248584229528828009824490545432226897236066912444124395023756613340245419368075091028286185536036208263943742775916511731964094037735096940058966459881809589006301711682714659241541074650851789396369759211777691057236591301825713957464485886454314900549083610860708646563591085471446754675039476748257545958532455004059752163928490536412259041236255873122207073345993553373973337026130533462381466640452466006090345032096057716650633634980562104895344283976040631648560207816740807930536445083700625202480007409196065373732764524837984938627950432154608973179505872245022270471843489322320489828878218087106932266157858953567780294488994649925173225235745397815127381149141656583070180568849230159700168014970202174352883025014114380647557989380097377957721668811323554068409755387249231360350287147209618734788762121195076680225727962658272043231813890530800883414910173740182053565520240022914565886458871502361813216211810949185635799549516363190343477680517660932024866412514067805115122010323968843417391489074085135222853483320652005377194649019260457263075741850345970639708475492805653439912223192675464891984776392189549604054061692070952324174964254962030158560027941674764771903141708608326036393406093261104740004529364634796196186900697842980260355130463749957011031536361269446911294250732391771497444246970773633276778363021012722703749861691390072447225440980946353855899645236766880950268577615419124505600976889777119691620549651231978134150270190476986458256638815292135606376495273201598686585440791112972480497413006771332267543864928042769169690968797277580238138145453579277942868902622126519006381410160280974323999097302529803942321305043120595574723006819645402167600874285129014075170023203837684428601647729923961712867910727559167493276595873989752702590921797227666163946726720587626897429927349571340757349321810054127756687144408604541245894448067727384464926980741781206112040302663733443311196785310770172106460337809286191853686004176032842718207429869314723405972976568980714827226838529768101539598639234200866883528964350195535054351197622290813726565142462790333480599493372654355655562712777801639665511692262414424761172450070751295529141984457638393785491761291716559206295744191871505348439305967150850504560195209356912617872460865133108104568168980872846772303518691212257164148905029200563650563980171028478142277125837727041568929372230824885679178182877849328042698489823679255304113663628230158688156818325330378209014633534484142313686600879255790486502178555292742908800993204016146601154695227326207363634769177277982655355164860876902922682410758134812389482748428453812660261104559859728817575967856012368766872459417770893379769157541925203682391588721937130254659833056980005460253850012913978803838360431379627571835664928490345731606134238159239024975184588443470036668820603928684823673594805640089698667906004377956390638634125770540600317578394037771351246323493071836349934593204853863159503306363212077849377516721547348410159164397981924044814847944443583854276767958771614405486577902852183982119579189454034394091388191979623769863030300395208877448463434646737053349650173594673437480256281149360900862994187241005395998425505123050601134969867600716670534860833591074288198606525712091010330541669206186860478069589883196940055561213884556654449910678215353686626519944365638020708775627347063433216796790114946028529263869624680651864326452698308883451302564004704248914725486583693251074556538701076521188204934556362084445676743771758902343627685187945539980304405704054794355226613948426676996335729610759099066043289720586089125291737171043410404831431604699550904712105586494750816224504680245816421509611992679467743727089781982263337500688101965534511658520220336725928220135682587394306243749508660656783936109753204652250641584628117480632529734810294785095236727481380848392631450442651084899155719285810846562343234565396905935980022117466038452956005839391464678586470589031164625181427575948965277887159507824701867239696868373420988953336017400812479044453384655710354272797458020007853725884725009334456693791604055392525867287702918449954624197682502488154070916266606991351088531529486075120427888163011688307682793384660438544614369512898085751651503548066399579084234401820614924048302460072117001821037484390810531893400206877778543666618273808541182273764738732087424258021737607397623138165841867190099093032724616580099865292065146013284524242756624405505156571695863552219063251800181747154712782878040993992178232568502145265185762747825545697886862338406813112211354259651108125115482766955013403497343094205066662900120559676469958774252070141218437530639300221572270075965000243597794453300177689892511629104427578049590560557556213714803371103123168673794207196300045609204998843054952177846273723993064150060405151778856702161052510155323510083590374483552684808324796450228202286175035460531492386412236984512962989600350812004489069627381272025628085980109109151080372061768655419322698865502936615556247279096006197152019103920342945243835802784048499710535948882438735489379964604421562301947262916557499378602433589809375275439002340453536650712857794497743448863094375720711431219204306132970196331805342791092185614537849852136322243511826140803273729869547765901246362799342212414156169012252007433406781337223850330082572254699966876529941018988443432629304685452124611340058696684426854170219854283674542003205726095233053217325918460644369105381777929371911836839279059151488913983057471368132848823201773427501101625056208541283058344773477813596096955066251637385175743732957103001461374876107769538061237523507125506937316029235668601845522162864976491887028627916375918845199575816594626142199238112683796203466941167361140142559889975188626668248069194283875079703022492111851448631277452115368543559940871316308093529805188854680042517022087849235408265225591092214954783839296100498534317280167817954572343916194076099199460486301971610411313167127195111513812288320750653323966572625920703619167922361259238222956584470030219691188540722601484387504428784920630671853296282355047458632116804939289731231853137167668569866691711681038503632869015907714068076246516457272264247643238625079632285725946924388436489291015970648883727277867044723723892113896074838202201908705663356234013539629185857432284346001521674586876830973302851252036122947808383942674345956913033081497136756394608024884405236196317369662539719460010743111370280778880306383702592710352301104970077940700903572312561605123895342904724977247067688508076018689245533585075918030565714894140028258490367185261927379078445777202208261036617816307716498930486358446220857360175289525722018688238866784337197824833215687759128943098151111092708655486959332410644156025488765102626885959108607303845729717511445943094697199722253194930625183329999243260632049195361382879772504380784148106826991115027899062427106239913433469373139568465612724945281149867740169221269411889429036363087783335802179769917915370278112188433207250504546990159816747310423394466170134095095456166245975513603966511376626637347613919281763212384512587129419738681549283494769949094331613478833174609353734625947425005844896422760813238001838939131538164701048559995657847417139485774259441215070304885652358811678580911299775095450551591144368494958738734595301699028365346789286481306356793865848216905265653328435158352916715370368140921481895495144474986727050770924204717959840511088586987746639487907347868209791593867822227201811819847953931321010129301534903857042441999996173242134039888403486909718280727875829582486500775143781183275579766316778153596269736417501001049430418251808273544328224790249395942709642769122896982935142697964527325011327493867460100849039566400072104430681276950221870927318008049522009068935588276177780096914003984692740241763905369122494998613465742658898847895374877635991708321708513685910516039537188655896378373987886117992309368643019219111242859614066742693862118457595987537769726676978866350393316815568469943833695358984218153718605757200194791755968850771623160087523048559590155201506610049471899920158094745568098713940608551702259465875756109752769020580625708819405641414418460171610611339716515360608857292812796760736194148259336522238999980982888172031240975383621064191976932598579969324389887713898220969338305498510262915498263509373249275966005893605510165502203600158468859006841196936290995891647833005269303118824079724904124371479001478656986079321642763788130868339908548108125391691596262776301875469144884336186809301368468287382092698297467297800653136133715295107418300214531512345179481971226873380246717761038876517901367035033945703348951211862403333416038611551923455800368459933366025776779209408593897650933670570159635726905683634152563574258177513717379762887535270282221880407215146949769228858484236340777108437984045320289037445516449380952267753441050611835535479354141713661079436675072999123333978704190730437837858977877310334689024994957753015976832164345976358454292079128032547615940962822949597044060129094060997342786460765322574636643836714062476791249495060147279684326851414875589219373055943954982117223312690415661260429290360203101681099732639765285591209624668640122671191521649245791258743702601451042805055665172967808676914445443903902300694028355954765422250776763788852896952161558722164951875670478775940918606784952607365130446372470939389082680470270092424392388912887722785075361399891562623372907903755031290790636951694057884444806696562134523246877902986115744315872160887375405519445585409001403045061311853117074117150358296649378283088104379965126220359240672228624918725216855248813515489967880726110796611469053477343996714391314601197027674536080060024338909357377689874375213857240699986053854273435607663946520934606491800597282577413942693488237440679038703770430075293215713539009176974369325879940606935115853188300989372113045843971770771681301918707040941903240349452812476501294441727690296961434439287462149174199272186065297836801455097996201103499757356941080588256537083246507177004560190817718738241186624242797385631620070312745849150415225389084583944077078160925826272433964267973952097641873214745601032417968535289636187662892874011468493680771352744011500148598545061001940580226594087483928683936403312456627361344879893226188700262071815413278948793003232173828520238527784674937735853394041645913161553289738762423678936341047961428715638793714406504979462412362752543960388188276063726520739848615615046263426156979605144241124920910870794789937627980686837056564417425736363695265474624753000875101358234375650278710597904333869213750021539910530306899846968258762561208933049810495198578322086993320329276125810303748865705887747943893574974051924236000946332420731570042802978624706821669619158325228913796689456340073881731398721308291155067676829906388519044233535836163453438778514678652407832877299597175680366168557257464884800426040959716406604435278956143473272251035877421658187400100752006906769287083855083677322600848317784393504171353297756212100080978294606986078597830026854042567238121794714040783011607958807727910729916465557960061579866272894794574663723035792866211321453711851083567808505580954630740424501531684737331340407105937847499073379823979784576661766764442153619663659298303139854767061378410901668381671335828402503076098210795971221067884160521994731460700304221672662531367310057944522584746168655020937416962037237601803623337636285913668346475323300282277022952438054604325678752927825829096019746320964741789998584238715990106185220845998844180320386403094959650931817510478695119342759443713756850578747191050351706362804801026262534840180422498037542672720513141562533064944691062774920592434277549281754171540461216048042980277692804309234938157836302731607220102465392478277524272624165423957641783708322731770062884498683752922354837048849363608958210171491507277867741607065713977948754460335824787543654608429399019753198798679105841431543453820071464944912066503996580707900839741663255167157324309722913381132001438729522935898411571469797777178163900584901255697875254351593919713119375004720584617968009419030244258953993367055487458192797441229178375269514689640294141075420284212452052364856929115354214256513729353594241507497389837698929976411591055128926174005400905217728137508657871082993037241650267688440576920777161695379846280176210660689366257847559329082908582138840796037326526692647826474095053384915104068489920669116218136596867692833503229823847794917774021700882459541367421701546907502215060657349498613316989444298813754536527065578282360160394564298348395609318535844413135902258764241376471082773975306606939805690632927077060637428900911614974275206544615605475800027898131060248940339125270909062924113519626971560888987194432855178352694260467385180158358304601297079674002431132569452378835581980082609913494927158793645511951495979017506644979881643017419306519957079560352497442036716810349825165619360988626254978088030201949836444032059439678532876256627231605787518002807234634174962465300101462892477566857635800596444256528283850187536031561835084961797954800927226684038736844432831665999705113139555651117845382724817247922489680401665432062750279123357934633679327243622413013050296711195298006872165986230335366063455249577793043537639032648502829907816169730363666441800192551233594808476623421895611201927589135298263038167336424897919454249835674280176398543607394613045105459618491505700660115411220774126953635478503937025800412641091276523621224057707347829854475779639932945901208402925962084571735588311359535304544834417808948121566325551044004441662074749419416748554560080007013710797699230430182221273171831938579961097405909992951660184750776156316878315146750698124542083413652431860921300510028975425560752060118382255025494160606392439860787844403650579663501604948953422246303966087012671809188580567040007707986037012324002872024889145819748275796146151962812859194166501116193221239601735368828183019375938885060611755620702577087896761458561055331116936224188040134965115034563818618175966820385066556852075435871319803098648447292922748777770980229591121348002579471204187218489694039985211141033762545555441210495706107864383359161682088115949593248469259271184075331526221949732096822405217690114053261549689038974350388664711417607500696222386152992986053062152942385712066883581176611118131802174466319761229543980411540039486643383740869931261505135599445314025294831943922365554397696131671797185256358757800597311730374373429120026278666382467730797209734838577188171287564994581330547932337555734259830018015799993784575421824949421333451390215183299515244757969771495044269749613822273330322255251878933651191065826476942110777250285697028877801991643123077808919838232757822735968348203903672827266655826432514662900395496060556498078589161152299844747861123092417006265802559681139702067481498976002261027919480940844794676868570312133123338731991012740672204953479752981224374254815934622778941970146750449182963377393878371208882597053247541769864505670916150235299061757380494369899787518552841676905486237619681362203966497304822350312710658902934852124745445417664410839776687398562372362872851732406468357484036829256757908269672800505273242042908236557938486483743276159401305828339341859506824488355036802317708602941204087483782806611779396694576078637589831569764698159211708387981926273755589497770888049083394139178167091751034670688499843935343445330387407991226066645197039603179310945293652527117148301114923971928221572966845023837124641408529551582164710569058717962635482177003308969205435707681870815271046490532350928768335158777746507430533169621608171642611392835920501634175897556857384773877842059295424985129984477402292054344978441636180197354692323866490917759762021273445654131640869179435056936289520025817103366063370214453923165932711037066138542295239672582356683747617154525074777332278409404185342128300108540344767375309550475739991530621239112336777682709354449041480606221497143292507437222209262987237955260937320563725509852520587415300230604270913986820118887116243814344754793051487080929803860631865151035798423696391527288184554142668481632703664247447816810185690127824180983165655114487643286898511437665473636279995899198170361976596059863285640620944247380473902459742087732259182066253319634967881156319223834177528012885878005016380580479206474698748695761588253038996811682385882436178745115185326642179494612731789373573900993352668544242008862136042475494908003089643303710257094287096508625103442936398309853352505840875036494200923419137770701737473222539097914295010566263082646108353195217390156772337944088512876474858319586638757100573270744023780025247199904271035128220827899351718511933845051615644500829487586736638800463967374356444112070786092039449599025241946592484714464316785266504444761828252000813819891636091293075414625503101541903770047067521473717492265642362647906833093374637917161432345836832475144430681458200685647093251050850167535700996408318311181723628378003105038714423591354284863569571871999464855017518087090549236798651198845063704117643754406405038259570038753386861462949445804858316377969562778092497621690520810784198499266697833324411290257358319919294124436678947572683294496848152497161288672206443256760220930137785317095640251835553924168014002943819921349062913297455879165507868079622811286848566391871324563515763111883111047694129596392638315171323163548545561513039595376911338801870375479444118119927958502358768448120052728983250458472188402676215985645881506227657635125369868699343644210431416767745667488616160727583339081048271535865028157117962267624171881779000069649574999780264846120196684916920548721454147373851919336809041288875528773241748247476700795064225375034560056178031949743369147719973127978193223664099959972606937774009807872960038370517101132750152082572744972171485943239718177739955670269734220617641063867230145026065322126221700403011717080924500033628395230974826394001894495737673887894717608122430685110931501497516803115202861984054931842505100830937318821023009742309915352492794952753663655382343614195187658661793607616258085387550380830311396551613626853138604590644922942718903894424177590728847312192713881904571692299927077356639230903308446268032885385024890614048072851906825162899666132441647863127186367501848027896668901035320460705959030183428774483141317868033613315732205494982155230698093658178642970328938281429492324812444853856109582890346704993880343613414872000346044970315395290057556387272596930023789188848332971894428757205280844588097055164349478036249305358519272216422967048655686206250647932509079570400609337050667236953793259737930135045556037931630778580098540882435408499755649465892587226753694809823878044031640472451024826356457924359554105324377272275194782648611318332260835835268048552472384503349845944509031601109631079963611330544545910786158148569088606900357941179101751536979891889766493149618009646010177589044357947138459044004501238834703695817854834220741409846813764663130490612794429719557325009179082503307549532044149540630300283083749513692235181756693827546659862496298024821203648107559136811352058189801857855012944773841017812113826309186634327597891988105518258552127133885671687756436213403398236330887312086050413612439267943172774537860659575201949394047850355503920101413706796602945115769126823509373137715584276218566902485109067078598179582836326472012984104330969751277119216865760962526176772054842893172342591055262100348649181948137213169163742201742573601523194865952884765887028333574007720714133526104107676877760957861198539155542303061006311635967211091687995277919269744279384835444306769414643906324040792985990840948133364220681041105512986354062923102211394557219768106688831194430043407364692171605496890425773517726699270998354900463455328857477068335757841935375702201640886577706321272937273070122908339661565677222606487106149477062206148343891176716029565879275860714843716687041507450991530168209011256976552249114321173701949061081074226336412798193667035798748755476736694416564962589182431235374594042182101254758611439710190508024204316607854532806092800832628838064616135709677082601155827672210828518966724739482384910398054470857479226025415764885540771554713567518218344741309030931083631544943961603404536141789549038661611303467212129055154285751087395189484210212049175347773988703925321525616761535204487919469117855525388727957580651619878322549300474190962547728169311804512959868597635211676310978046686730291875866666971072433239275836266977450303701840135454614680617984814540397057296040403054710507407551899419831302532467748007095109133693057891279260319031871710936443500345758177162006196034310275753581981647816919593738936198544876850792973789589589943390516831882358326085961005074081089434605600506937478341887163999529789702121972779363510841148406206011353920353892003696431970794055057847579736553713999170270095263091803074377087171692812308317611371535841178712798867264940054378887503356584256711555625064440240671864107245515449151427930904289475439730247449845317345429926617479155708357510664782857489304009055820092906675031603316371684897776777687759596642966830811822476165577610379793096228065649168609798958336127428409494741572905196251939929707706697653823870208624892279257103373196364821008181789335291631266452259958660915587250910598997516897969654671772687882191237066742071374301336217262671151209287968485896686927206283827259756355233630945908685178294739957964093927443125468224798401075308315970989878380783227536843574841260562173209947744161847043092804518800814720474365600368681188779859001546092170379157312067248401640564807965389624799213431732024123607311008115488570626721450655741601511125438584570570479967050376476203225685980582101537293979653537953724957180280214878362218405133735559551789390841917280823574339236086900437432606971656320250283706376627486825745092868908488280033894136826174529000066107654450801744900851990981500920386519850736102545827375462381833507307175503905999158036413974958239682879408161643811865237138123128400183907843542401355441442055924656492619408276338557744864575898704582493019354076251508141336907802140973857637246051355761303059521662134678482164823521081745933947303181558375870404987558058187608223495698427134368094539414950247201967595067898024179433212976428659949841179285896115880068879211626432068362621957126587026056931283768565057853640758327534298006005211567057689889699264545352535641497934553515230441361362402281131612234998021289389604345552318688296909425343763086535418540884089633397217577170664127822746806407343809549610340375400490558619392890947514042061495782698628010849761594107544948752357367918695439698264412804149800907254859103516159084014445261972603519493119696707303140066112188713358036705073292591163056392005885125470889064135600504230524759151731327826263041372626561097138025542364299637866762556933221307595687545564300287957746326610243737082757646825529638958475564359983066296784427914723735914574310908004966962105487146993094123944221978444997472988226524186451689068736617004978211664840444025347458839475814845003637941044824374770879126086007445510440443485090078589357400136484756621337155247156869316680668281833250716370522269762494428438575376996764423602490218104267301793951651021558439768201502385156106715671434310216974926185039185698152607369499302013951278473092015561506830488329561741773309501351294668351066482004746976277218284383872055024720334816384941975493385039653293450108853928655933871267908643274546612606849436987500240354043716597715770294415259531898924949534357091198892689414730069030208438234343647231600224752717846201535063985806292338319921862579428645863217762972496372846701403620571306212512682647564512330299228022336728342710911488302162032554036884237673262867160152531146606296656265479482172699324802762773890700728016659459763849757547232216502994774510830255905087683970711488896812400960366372149679819054570653156548360868906121975182114211713829071638477648848088270878926922376293035404677763240720247161945215510857145719431918757316309052221112369489067042513077933660782808360961998813530343773576041914296309895796242565738168402289542935334796389701555145722515280338038602204693603290126089829655842712944642985335919700415950413496756973802735247879316254770968371150921443754511851368108069912858389641528571080272161937733477673534982384015694191736721070802347769574185947999393828365801598894490541539566166948679768928118331405120065322313075266567580954282804345108477419401680282047572996789671988510947498486157484733985849783952900347059938745508258528037250162785796923888448289114775250738874047633107284540871189132600168461088711339434717498396980819767519170214099265314268368165628436945874325511040518183525973757422087298351734879201422673759936162182143000263283827153480829212871098441747586074633029084999789895775289356581394160401323405057768608715155437993306627322589031730836918143752042760924920665891346410588183461485917312625296720007135522782988324166033519559820986789404860187610061175630359945395861172668382321213225232422111317771244061364222946504780542460480851756741775002948379562243915044557606304694754998888102319076339576748203991651075863737965382284084314494626650364718427131607067138107618194771433007646570802251720734745522054316123271061776502587050676305973971695487557219405006423025469661571436345365773680321278431030719782982334360926502153045893600745344504394106194427459901595350829757140843912361552215463565854100032387884402164418747218814353705102059848909334977354015450071037325065837552889952838612681831947046334092853808336068017939570788891651422723142955165554798077364790233058750906880260127669179185028314783842396951147455719431465554997911084339452683121934071205328703248921055001533436921540432415111832560114884002354625662350258701257105954764540369196231311951042030750275236707155973368603420368028217233662872296492892462602519525676305491402827971438632281421794637266077114010690389343297657063181201541153125312351661493850499784678935861532400295261640164925515584903619860366611691819220840462947420429687978205323246970246538694878221477136948295349311038279569810254924334056245910514005030419641973339118130510110314186275582598070286842030263810273843920950183731170393843365928329107213189704952644590918535752756670099084391825922006653722319898100785677866426427388397005441737689890129700708956920987537597337018351200490914238236750035724693109439490232904000825087397036946821005165317466523064026000632533583947715616914631148287118852837484750520013070657542537024358812765867773963160106062731958292977525198513419583550974805697089692030359621458282049338512418979474204817638066268609942298060472003428751746065405595088071265948195307131839961559564179368538042892714836522454387257004894109150435806230980826863843521652836804367213821004278051835806010754296323911531728493115257228474179883255293644769112823528905104416734852137680328664324699759202301795784157994612713467701540414250545740488739476855330099814689560957806278753618689296057216325345720329466829914959105122468876660657861462930048378648308285036003597361467968192268088924828532988057897024423585807645465102336096058208254786074224867599937587531566564233116798872624357175210334993264615283070225557122020456828153529886906163615000800720661398861293334301918199687700604764438039265564014816060993620337840755179365093160480487413826252068377452356023162161252495180742048348481119975112048730687821632355015134541258452721936530861197690328109249913042968109223892680889073429677373452865348721444244014752042698651492434762633889876942635751603540162284708500609734708675243893069150690984267852475840726894316921932727584887709089536168946310535006574093713139097007100791654812262411176307764949257957018795797795468634028570811004346138908727910436147834871498367815678058019164919618139262772193719100215853312673582944027389754845731941708756881490793224249394117782338874535430161959276428255418338643752768528754391865318737686578762285287952432240149841222966912643203448293491709935361602454222799728365250342582893277454542169207029129603281291381739746862749284744217329743274333137131745600272418972908529895076267037636466762381223946632189473801927506461688637967824779536747643195671603730992505197611778433915079964266466003170253403614412813442155538994514764051501132444987178723120433968472895430810647963784646758886741416538292594525246265570438425482946399342001773058538399841088782586181574258142008589254628870443324154874959673417670665531391148159243681572273236430693789729740017465531163768136483523700646526005674018907024025932946317172847689786251445078895902475897295598855611044487857859283423818518453605068585786173450253707820752842439931075349948409729640335586898533838437545841717497904880422570784142275598458964099070811230002570628841206802317484923346881702829580360282033074826046380862104457077814509422730724446830497199977194189806485609690186837183270903563196812986325549432240367180731020067512814565274051061225738805609042284864822992294780278111623159277935323811368795060797451242028400548044287591997656071514761728348264894290416647102851476274958432241003548872305011242111008284532493379113193672766887202676613560441984383708980705395881086096886445594563227952039076981778187890268517725176279358294478490428924382068943053386524479854386899678132393367149465302309489745187959573693667706993483197249980593179245252875005306948384508702746247605162789309736714004316681588404750945965542908116158645439940381173412403545961528424277398666318851386124060842805550950876524709786406745864952577851836566714405065675888006244290827893489011615966730574380681272040465502442345395763893221073392933518612278771249405121334363630001695727619960145972717372305204513177618120646469850499666232585375185677039714864188130178241525521414516471890403314963758695827094963105705313430867672098034813825078040650937323012537069859919187073075640091703498222535734582962715767622848333854640682900896151273215475390205604895420496399222395553054632781410321284037904861047121478541704362128859687513999987366971094978107699965083267316310464069019500674321639815211464233340141109321661520942518151706303040691619872626368754667503559265650104863365316026165717728332071621117847805072845526633260149379599072626061583634751934720707510221141301817541858000306756898992923800150095767348550601401230301236246015681198026240313607905740077752689726357014231278674749296136898304770312832497847811002997419506641652928062815258143687363098511868374702484089663734439227654593120851149344673003392546482890989343909607574528584347106978555034136599701494176538839679377521047696817464936648820829623983794323917010478145202672408910138591575066276459074715101815445857362739323761363104398048418144476014152487357352430808498775838995919807020769569792141060960603931163067274410538981255351530149685393015437926943485317346094772025537298391409601080937887916227860414168075353383495247608744144314560842976749439374504222874100232435310342639738402901805815529380582164854576550896497744243196656685101473481695041393677585767351876532168744020534135402265612432935716420271059439399700237609115091889156527848341618247505397975976438270547802882838174181943850441521407225640796593202317667144126178659526065356656387069428654689460085722878467179959082320520533829784321272144305546254148532973495088252158766467844167205945018490101485998344593633301863553075554870961062547097604066459631067884914416325136335604894727247496144959744559453405306948402813071175680153994426889855356610711379382758919083661378370381229464951377287973431977977012550900855737695663032826514696937522395267970965573812540052288250094996058563910493421436110181185112998240131025292373080780625887613659952628457418089177485734314167251110853334254399604714760118650455724053672145848332390030838825855396667509342107424285074511353323677493567397984475451363388857440900995089515716571808517524388076259201565094550778304190763977284800223576512512328162632773315952696615095898312918361052661658949902669255097967437223626566636509498607424970906850501040772644738636069301170512575501133892778551002800131774911350234881872570487706777549829374724268175644246764828561580138457497002421898513837068333419838823456703168570437530404246796968016165551876059988392564264238631680794630028349852096030517785274400490186478760166529988529350614675906137952763146722771713994299443104438344969566763694666316529567935166801770510672061236093461965925610144366368564913850813185043350316672201305464248993269785240275885062454073588209217358318426503714810622340215173278225501480858710555537558210437579249922090181929707902829158756582965756567297208048736504631073536519992496489993362945316576301811370741515082443829003305273114517738203077494428321388128835127469019789031372810583387541710177641881677348796407556481166595911800090658777081991024503967831108965913540778088864712408757422942304931025201788953442914921751533820085672433709610295870577787662214273726128762379578455520931909002025756714319146049524600828021858481280223971234271758325208597432036399944142472003090155078879043218224606950972988617642967688806840738806906867034856921407065773546364952617550597917746372476094343508658828217008462006312765794753570976147033959202128501766813607419583848497979420451129622062528863056051150744943149770031255799643620534012903037352402998803068576070913465173386792862614953439108430000147221529188333611646329270580055917785367509106594205569348823714762406248958065323394088049739879079846717935206218302779320990351989178452701427216420460607859139754487390357527891658559512046421237190958804735814161685686869890154270315178540858907168633198936112798249923678358210914298423369588792019246568978343212794383421569894190477549002013791151646858614604019622967864445370867065542486488624098303671893979846507704483728445483901070352326828396925524498727424628207454031715560333698738883639455922332816578133970558771338512106456206110640468904603749252807638848942374568609459671861517492683058699903611319334435748249983320825705508999482227842477062434875860765326572469971240277075328363447792122947422841232502983685793642661374300251259992886187421194815465896437941263743072869244233963467752572252384777963068392089378972010342880174162051995778973482463914752471500490975967268532325598801652599095024968853181283789150403218468010126830998373169139117750585547236485050068275249165676681669475981326447329811487426053031892732046696369566547752386145320379312079022767846644827875969709881508326747645913190664356967537682859264173336595604722063363355220868797770152022454464148056177238461039745203616579859553958412269330842960289554593673959447581142403743443491527491809765547197871838928066313282823476332836064138666294757536547353880799795739569120744957922615201287365181853438549571726684707509839922877630980306537385000381460664656967237346789146813632201644384764834696117646082672888106555171232774352930947541877798244721485695344157129192386408733955964512454004811546118556449293061381544341679809309145416307344007094425698324784929382918747174318773253200634654154923459283005078628218223502356872292999758319503975710544979059798265489772521508052056988915240938345053164100058180648860618333122382463639584358595285871404086255144693739413965292815710435216690458548231295173201406977909660305990542886992069889170649837322010812185336229073430577054140384613245510469976512579936400175706353353492406331498912262497313701721144239320045269023499375360466685790605215086698058101803222585204318635829767815618107370676229323966559051078701475870279721789497181794113441388338400698292267893280817080777171329742276432508759546711083407685783076440879499908637309374447556982715841104784866997638108475102319714236500035358589136001793439457823929705671940954816766018024691648654004394462368603118769940507851187309118064901562236481634709024515170863807578223467345146421704714698713026913468816501796548840638531164147779067970617380200779887255287370093531303790677490547409856812658890037093708576572524339045990215508500258238534980671473858623226944935022696003177655780494396392697929217032266070568263827939968223705075196530682848040500913959968436563883103941983542407233331945747716642010496041084212130403908875753661287900445768048904256417924443431556859306718084132462844291255460797475965155749416604536953446478883041705727110360937575532647442054240605835551520025992190140302367374456778495872056868423094617711356900846962309963189863548895196294638588207122974019208496585255931796258775622308649550802008880419079677209786341764000233706805813684537055746250139728903130944588627070618335728914640486490840893987047987337610914902141831027914101759887561642855593659633813794554236041954587431007013971783184897122091786347478172267229423691941103549289532767784054490195388665639048422640886626440909810942993517897103424403629046354019602836006243073785554796248943001002473228741390304321261530827745733050681478997043176824784019162216649834607330678093747772101271960219824368221480078293476524053896636300082670545204129157338593490380888997075295143153599858377105022727250582457367830441218564483784037527319258330258198565422333832354806854046204849206729211767771853673842720238595754285451373035057484091556091107847965166291818515227696770276271441471516368622652444991102214220320677959177339633505147661101640649367921386085904707628734132815630759162464660199263299945595513226756318527484169982576465831024239616010593529621915176636236645846688494125975225050726441172351026355998181748046768223765653708269130189078353130834020873930749556310868911899402804879841185283036938794326896588643345487257426796303249956760570951545862203915107117518579146697393827875133884491438409399520125441144230350419245233886625745810013526858043783500012419433670120356515677736108239506142376461686520274062857096827605704301884044407240979348944596653878485466180337654158563198466958695469216757089443773280560538052498153615407338685078694635642134850332394289048992536553303743350471552829638356593323710820797760558617448955765677381821741896980354818006281786751242382048981921265876614823069114941105772976418871819366060675896181526679383464231596308860941882213002315495684868584101041013252267056998507592848998449716165174807161385626919289105241441507817792663114013689554681006829595159081629599794614751761622146887390347408278049531019382048491614015229043073881488822638617386392692846009018489875521021021886104082810481041238335817885494916154778543736755027354935709200101375392301412729261699988778896664105153971322688774121590149221060660285424830985016162173614176792432912411644559006733877801688996510544852043042125282687194397681692384958654478065070366458496321513657986617286888402353690758242289243030468356823038053562240542643616779603254016202841777247028549955729049787903249819774414009823627105451789244919816638019514356057121873294384842501864449221500717352998484655375432244227450040779392504063639583190909081260991798902891239003971233996945434462369820749422911512875066342257592705825075138468120645395720285982227521166428420428691829088789136817667930371772027081925676472400464450189933227748552620721147556740680840571097254686652416273591641357600423862370928589247677222356813137921580079460770355145001128289767178163170602553614694106592709688364143347930280429597197265483014475159327455416207361967338313179256653252409776798353177268331193897095821822379766993371553674569466418431020936814101434895341797508650508105283458698892911910966078261771325750111604779740256863891981794224354988870744808877739067892106589901942997455035985689128052418006979832199235221131027503089161424191723287731360173404712765240282462608868877541354417528303114835943945760632904788307092129677282889058844934795048212682136528843491473527751734936992738069511262277231758673405685535849336996955395503907634777823415303575259686341020920597814977700495300150345671572853656106557693022954881409250541998939198575473587788169880714257432417535301093048370375654628421070072486598227284691358390650046072632904150306745403146962824194185167786818647685372040315115235828910388871231381622881884420152219271813780983444868452920535083835903856436867918026374322078267904133139133566023179859929769242501132135701555293673448598136656142711014154196601647433990177926409137470850877505655816132193991942538133984333957372313351376255291799439191954867541061525516962726987245955127367567547298953591781042267335120840841971158238989610727222736507045930480266869030769478450994927223678560555581820980295645617898580826725404204589052389116794912641692437536070418552785643907251920128049870396606026330707038547440167783916787876279244400065114354327844406855227117237395631844721941162391655141664736152421747042077748922481718697693938929311171819178321839598282612036370541628367698821602868407347671860535213406536530127641307829235737883654524389070388500458476567306754745337630611208625041010225580100600627403015285504001671511567488402942372241304959816565316282599951569057493889397059168678899003380994322306566313132021749333621666007632704227319112796980418324609639181349396293496435644117402794797613587475943342752763749567065553748924355598462662522090259345735225159465714628642027871617120466991352296559004722514231745405912378033995797975789393734505180584528366659632073525442044339008902674882164935959964487112391486362853602277095653594562315239663473180920599971431618675489051854384130902637262571777403587760054423951666384476933224007768751132698929223808285268006903113454699434582447626272901159400127756240652465263442221884844672675916020616261527779931350854277427146100649884055432196228214307568117142690090064253042576851049389521724022755773313969710704220472418193821624722033528240221586430868808594725693212929707894245681992619763253052569598813574489017558079777057538335534754242455642368383709053355387208300868165947131170346923043806487439205528925464404488407547409129859442687605335243479423174377337572299462510455949408734355694922168779894984928824384920850475009920665062554793876347960275305018674069760564327918292731984600491185692773099843159486556547770707909861065832319697527973134658232716268744738760723838464037165741619532986490832445689814079110414834698083252003431218040290460118544490474427070904498353806580549697474751704022749867070188756036332180044182433804721837124451358006311158635049026652768702760908262386657103596971205209401502968709150098216454867538067408721828138505046385523976949093803407955933940379098804132377823754869555318238368182530064816027438782922175993154028416626110604527460052585078256425255740970969338941145913065586065858833378593001266807766432121170230226014217570553212468820349500495217495457690072520276583153592985569186513042282734535670118999136254920639632381591176090105800548090373667230047821478672294856094479537032203500115253606969097391719883402880101771602950208331544174026533200540412928820418921209580559306646364704421895588263780903266969515511154865667247592801876441676074421708513956276178719879737586170414762843522964313518654510943269866177574809399744945490206492473054582868958472656482546544924848729651468220870990190659418558096515645291374977014978730249221536524444455050816786088322460724304094011880882231175470720572652134605100960125883115068662456610774395692161993354229589578456283138302226832652731967508457961761850533801298445253603952212131464564968916546959254482302515973477780645274998679336548889053449247274261396653293377540175788678798022007331796072149114586037714527199891867462481414968968451310316756356818492213233518195191476198037209785106116823985477807013379734601160048862929927380368249922636792596430186218131498490156889213522849507830048031121916744414737940726691204821295187262098157148302958159967202160745481463725761090177804188823098551884222139661560510733892558025899541872100587490762022140074118125335744731069783905474300511455269357278397662140301362919531835422623684625039800682833407893826752943244104991383943165683164558792595313831200917819795510511080636152789103464844602060202353779897337770344571555744568621801046872554074711822305806381086520659791632837694696691835830288767635709682535495171807539260742857357191125737974264903336098678840851292442257969654845515508972147499532630645568570071074525094448352124637177211040611957843843831481385453505791649287282315478188925923946599263108990844123991436129240075699112571967876639043417763074659776669042246533218203732406038346385572659685927135466642936349281590297503016889742970559299386677157296000661089980416214666592053303748833208849399758772327196299844117001406962121590930505189515307252260643977360795735139218804012889596938444430627490350963840009488298001211714357468872963679086795363886317723497894266874426226904168361264216983163616789757415959720222516742087886341736365332188407564773281788671214272973762493256537856003496804134246629577119309769097151435143449884830166152739468319540877420215558459486183404830847122284836582807368115933289632129150074129329567859288788122133776607444216537652915474077822526599174490350312000520973131237427239485554670093724721511158335296542641796128497117877442598439026036485082112224548995122518877835777338586814622584563343092467930144179311680212081095415402268747918853897462313408494091180413455381702265868622228165546631353153340413854489264201840391233799959519975653234505750858301313072933207334613912980723439171117605661223042723285396492923157043574108927041332965496815839840350281938193202979868375519180261346226426119594205805804085964264885897885478854110712960930903047667442852146314019662363290713779067229439609684172579357791014988501083716324220669825695495119577134357775942446020021991086267471220164419125670386882132661047726435729617754633789871250905562113279583109990464303185932575970446387373310920417134929088702750604287769537496940349990127714003025310755224180345256194878605199173344720714962730525397057017631920896731941260912490071915237913521971821387004312710729128450179760755864719569896504670109173444409191083390703201660115941375146993116292604328801112036512577204417712480245041507233888402489236442277861454649336864133627332939072794166482917835785581955466261883748851519805352475779728198053883708224828872598880479788181000671710523304350164837627841589012483322918119180796875696702952298958912032380314391211263231698068004698870840139791745168979091516632206941866680061390590828757033010769019881017971084461371770982490827165724081243861210968705982853639327024423331962850220650801493648695477911629434883246476998832410126725287947571377549584728477490712580163235085559569340902258064343101338702165411558260332168490284140154994507062010496806540932430192132454912773445461366682326658869027929740765787133876397897857062115043177828846121357906050845650617537882219029761329550675616784127438170246435901161933117854422466111243764373847093609336106675622284003682284625985107826140701870895392016836404905302390495706747786726155822614474152286553567885813650036966981759019176138064698018917742514043732785630182953044830843073591039586370427140403509734511067672721783250619466205956881541056196575449636243500523745661222224254561247208131765132290225967199114155650420626295812457304350248549143576645369850663973424418752853328572823923022643770198954817351958335654932449890979255702342490975753796409261705644639741282197398310534321005362539942197891059180765352457665863790154730321253225415515626931307882425476151019746829989204322841719904610122324488286563593873464631790248044738637140277870757204161564845818726703404986681075494502865694298672988023438787123116520064304453402250853354263074405194692537600735572260363149937398132964142942813595239571007756556836435026309637276734861764384669119530241758030947988789596089367935101597774781735750801528405332868151493851267878236312523418478647349546076499204824474524228928760933917573856971445094153695072425514255348644515740976001743071072956666893416859690732836644886266115254990979344864623388158583024856499815838743302330620263819581532208929709340319698556119265497721108720318295644626062540137270049426297244815296001884044356167414412509864227674812913097558977393506346851559362045623591793729892114207509920373386767084146875663315120123610322143963038443277188095021693301452462091680716283163060217931523122095348882210670461386027498280285214070057170897592471169258150531038243567639538755694904867266322518093628939750469328418222979388135187333934033549270612496481965370718016672152085966624680545494254158189444921729306707698893228373943656980372631813540575081266836256234082785341124620058605835576080306479537528684932468367289361318812459634478986186529485721446840089696232183301743516181853237983458117055104723873736895290498427857424733349266920525725838631565551965011119033456485279171070125847863555952770757620352009456086524533644311978886515523552239896242042262204787548380661927200761911223855679396766383900232747462966434427402747193497317209502428441528398036617660020378783685195447265099503913878695635727546194960697579220550883254256549872586561680754651947643402083755426836756391437933614917364592595903335146775357983211386980274815929053192097593051510026759249592505716868880321622606766032340182154394433759007353365266218466876994424077052292328979060383897090586397075201251372987385895300560270398641737174417065647570531802184441462138630486340844623506175032985556087168872101497807596818603446219266447314614890595019897618112033571356796540226690829861684671423330926640461618058394426850185741747466438318772667857006617119753263804673214290297546050947254875120477981574425560401947615103950124943872081153425623925755679094863937100613385051220857492757850657121584010799015890051627674966693899741306777747081137008674132255019127551019483554141643136565907362795822635276136620450777310992943588919036392379838331722137714621676172767462341288268455115400420501765052124501245274037866287538618883677072643373116412779423487654153011361675505762552050096855160013746179989976353190866068738933153038413162375187792865617761768062983136376762438670492306565707318182322498219606953262839725863052003380811160834736540088696560346838842345524912908834661361279205260802521611853334754381832559089262953381543021228810641810263190484265245938236046185293818518514690231758771281992506612238996768443972551194868723108913296184745878494754470765534346497116602908671568032328269392552358185497462627918198178467510573150958889717656787478933035731542505555840607007325730333020327643556516342785647477632882561499911117378718939195726030661064242793012834851210397654739476912644099751405842409391470667570807788039507078369220886373487460123844516346476627558405136030969319736593545897188965501296006206901788559997904697032715316274080978670822685470190304753354241684095001190892530204020733624828458837553962210613294145498546434595956587714173197024539712482582148985404615994722203825658090439477133477280306112863920848064672909457953205109088606834299656027809756181447175801397543188165811889079332845057604622663977418339877970749572468802144445444717974387825674255888571149352634942796750986807042737114318015066753018130554604123062620642681458367307809507359627709145929260867517328620893800569497997221955606167962618527506989390972763218740022792735650333064101941524171219667213092039886697528810178849163995890940050810696123912058029399648137265723376240629325851084077795628618700045419796458964636689476914152398086389796028308447142209738292397576522301323537324184185795928953307626012185782588786759867983460923721979800130959412892694411425903494301206740121772211542663829978330255584034533631949737399775109798311775650235874639328425261600551600804913939222945561603102817398142730557900532685294121048192900340803453212094735093350543638499338861433389785242114855465496844822195987091607391347455259125564399169604285713612297525642106360306756264104590851772499282345891974852819919425527484442041321338741420330200912865525920870949204409220491153366668245020388592514154402298305263034967628360434909472335438755671093167585108670075180567685528666181614420233364354273488935035760988573568496063384922772942389697308204867305157589153415552010536046863426596904332990279110451011707564832260131042077014078942353400812380239052636931807875735972888538780181240350120767673750665365623091346263463510256101294843515076623703040024280574752975629106339537242823842952312171103286128972531527125819720042018524762906232300696335701084159125435173792374629307341135932215055876000084767476658264375060247137366236230209294709196086775571854750848098497675454891060326404495128774412695697472635784546322107999865397006472535626387494063525353761891760759250813301322291991915831174178783310864680982430806739056287187735518130792569932111907854001750597833540407575289839700855302051624461130400560661877240456960307258942399502340247469648836854406714172622046220674329733910328168238137781612565097489897397738351960612848521291042626590967506591532318908214491837835694063369393928902547761026901578324607733389820023373600635880704678048880274927931057870706292455378398407261694222305036791713896958994410215686025973644698006556201911286007066850386864457902204363597057551499346160065099391470598201646571499365303381888524414239320223855025380978844147018462357732943104418923111608953832216052303423486271013332526330671633398667772353576840909150178762372011033865765824149834857456789853556288780533137221319818279559109213202722557273515130942215345480508631605080613679186160748839903547858815707352331545487869000467324645530574806134178309809028978669733061658785837380403720098316624363238543077858968369036506642245067630200720948751021704896718241746582704675708155703428664953247318095260780849653722386043616728017255866350691308136935324550767574164511277874934177833283650646524777977680153709167388588283367248504713485983458999176256687435947489336938129691586911435949397108065789668692110231710185243884695682069166876101473753735197794769424665496016635678905496544910389715551708275769642968750345695769877239176479081322439767112648884429330571008560283706011447485891979887079386448070750028670943333210072352898449868096890685595520116540569154057722485095854240297491515531510557070611632720257885017401919910951885946544120982143117269443046746610291882032266685607379025511550761123212220294466005022683455333120609227514245156136064119028064282565363543520095112931257291261573859238836432820979879032385567490436931084658410312792289320304357625722937940317260060944516894327917037532466452889744981252760805430352064852403581630933572062449735715146401623673071611988982536870283323862187782056267351949280869204796900762432911962795241410081803091793888332383768663976058550296767741711246089609236905267682745569907280232761720263616364672432622518678390597735848604192754579279891695752242282467864511226186597097415776139664169338186012909339983771984501674812759584430970658600814194912069874487848290716363544730005254714735095327269588610654923072967202858331234435687989155955186149242635327942273486675873053288257368103367643613465829487745520218600385768466609247809974228272043449584722189116454573139133575221537952378634811508740192172908085852384876558184525073183661704206593645152767304907109929654591075575113243515556500557719313497804355212453773575908112320079655465239058623033064820166226319016291690439891050196892041156054866943922926568851614786501923912723637142368954374507358598723500436176389037979882818212799856234566682902248734828979762733361368721478009957537536133581952188183949739345767315910892295199860291283551766062358072475559584950425370398412074159128794085822566509529934301179384767666759100023001939897931658616310598571043303116249750304848182516245675221544559657943419351432607206779725963041329002566885414780840532379275325442311449374344581604897221500995940626287561562816023728347312793626177940699381268202926326777700953531920229281688514638059299531412663920317331497389770108293882040569295047928914029138357599482743083825137376180729138559619649932571494165183040534529345655834033683399165828369630314435856901920735774801574390739136088822611149290921013507404264501920902299815657320281394587079958613720662782215923798840699289112539513668622107696511837530912379669728465495931003614059669298362943671780586696671839085370980777951635722535955274381913226597222331150482309930797538819063651192701188888788797241991191012099104366713614955332796416456280126404187461026667399218420633697288146371502127159302920559897098844113141430638376020286671987415234781016504691667026015745235661339102915008306544078934054638397339763281839385945997954431212854775997168269369841914308622582290557896769307115372243258235193293550299639990815870897374800748946219401902172783491766533296031776623014496249861936754859223063920053948680878699607818153176145946870901901451499862035569460597054912528528709811599257088272921479323632666701093449816235997922501338909594177345731227455291669997019351730757036938093145243945857952276519545473873626228815211569891968304398773785034222185706892429375562100784145661006967616297659488170091042885255501967224609179450952206621294854647480693117050401352059990357937507413047206681363702227559633203259548784594590147418060600560792904725488732319321518695213858780180690645923060083364018807956081149448670366674725268754472857145699343159101925239708503478499127431891534316407265325684913964227973457374201533805536848988981535461231828729878852253732186511263321628826247351640948922379552644039800698993716743527497826041503941629421406575806243274606365480753384650512409650087370477380220480697803133647026738824997621039163137491670913418967473806967142516331135305347609761938208857270154093092948028402328506299184682708648179627531498216801170483693741206795949698149188178823741441171655005110242804571146575006024567873135480582912554362700737153513974926466740987306888941159727776764272815967761937513715152376901137035744493683869577035206298063574137503075393146099141296255198807150517813305584672303639756773140958113541381060147452353046882178279921554566465993040299731635186808239064690163928170860525433402631119502852172193757818949001899639251830271846558055082431734115004662373001737129396363351091477841834544750081052159518575389888112397006551155227620707214575708104538190165264903223207803680772875594742459570234106235709044894930877469293011808311369520752524360727253682014509132568728785085684643690943651917294073396586978546805659372339438810506439850393356491928515272175394115029591613229448690098386835688660937378602216213578727814301974683630960073772308402951479532421116934751274254800311179078656005903797127775326813877212634144584587605349476818008404050337421140315455691667715428786543015732259248556673817009280846835985754490263922483769462235945287579278220944396647634277382474433646157327023453090965414480606079951213617168570919361565473454946874966643906293199780426343917205376591553951955206128714470825760086564238789567093327901995973108250870398659689370015067716504571610754064307256817734584025238854426439249875482202678252496471940376545721269748956932150830229753160461648788142672527951957610237718334317481636313500505926587372368723265698137435247195764599469208329728219269415609631517581977643375595481157871359713403197076890143829765932134311539318603914944031496683761955366668959680617986099611645311098817004951507711418399444432088484541689942637670293960933471746124351316685818541697926911473428301746321713596678765929739040767280681313346886136863379469453759917550897868254434639425797663673485244823803838584071085989235974022024294466355102420654782947318791508631751419740300598142265311491168572432860597546698654164806173659004956914153386142110463583706800787439672028567929641847416411058728831078012041089271343906183794573432392095524557942261560130614007632042552285293647864465282838686136663331413508804663094870984345243239854852562642935969248047664432925450019857748900369937488799767313588438200037581134150814026273762736988615052713480843815981043259696253575848003193484121868329473185113327883658294193188399711137205437615157360237826142498326927404633083622684334546680308264348550714607071130124453922794454498567075854603337854570277387410502179252331566539243069676923482833521231726717530598246206013213003548804270236680340949329685848114894117689936653843930885301283592533814292702829648065616977898445873699976114322205453097982506475803543017959038580756570212374724064150725760189177312746499047309045770135144337132027033991901069057210941965956336656555466892539819566274338005143054205352751090747579882684712014446481310243767585593438412127254150755540467513735595689018117310287237295383662003530718697558141167015134231384834905652836064504300573175589035315399248973388146793594365039246220292031520548119804606462437852192233883826985760723428831887516450645290040983103377795775871344266764643181178910943071390871201289425010500524875428205809562282956945936941704243614372743077920905672494923808204672865755855587381740146231284762649490280087054203214437582639936067097329054332152207106662878430596447294653000806760123534101961886576558512390179264781504839426677871867528141833203138561921965881841211007184554097957257967695107760327484925188298662006570316660555538239492696678707876268180337470587737485922925602323836322468524335597674556239628018354754706320456886524195254920760733362937227412249784517342764516298697488033463889391963767716151921670045585616315310186085451275211841323773111799744901977227817550639213794527841524901919716855194582693825408399716536784140404924389149746426341118523491357961302684244398151729626757608430585056334289828454472180113187209513119863840243710313007312870853916684489964485033617701118496003421247228775402504978188607716496990121605154777754994213250781706015438549103155746898325411009066045486376509699735486985431265873618563266311123537337454763175792489659345026305219817709775834789371918903831295009364027073781833811133283944803468894169161144520886461845297919667406997982637757952016186663156100193364708070550764794765857897919345644714476160017683860839647229654716769450944029499186977652015258618760046882092544320526342481724362270341227600628812244177374739977640970693819299343591132695404076508301886157659630976115075934260350026541056834318022573739874150783381968506409588492366945027848377810500680309547012930350699132951583861826988798223138840395540137773682351711537610544427990290096317295438466604967661192910505425508923188183998400423165912687571153999315691011232322482705261374480061044615593265818837900918219346036407015291751041919058730513192758161917694122974229814488848728135337330988779636477466941022098365528478547980253969759827129487543978848619865889762037736718282317881272133920243760396329714125558196566207508563634026423006195438331119157051351935377684848948435263459853097081487519345670056221241028122098053393301856139888343396035037434310196308046747536593377830676437221616304734038815228175248602581964698226768506243800303313837437524918185323001398039663849135586150498991567442257180291089901037611071295194053806403400699207764869379535672996253731082915111907832818398145924721200767063754573869628413101500820328332802361934625700324917267133390945975929145304007624874371094363315645298796054641988220807537844904279267004574216292888442580547821464673308177042100813788990392673704870834942665110522425026877163119481990627305090363415112798092463361332086274073218989290883935894687585701814326247745437988641526186142504759034103312040371505471006114748917810444540745486023025316479642707239244730926586186240427304191844469124442534241845034540579817758150561151916405494359566097843205545654196549144692860550504107006036458811240434402069623344503128236060010985102964061515091111604682527796323376267170975753163280760039955636830067759472597965856861964420356084057709161264852245303980811682691379473409569344061707781995446713042902994137991689777526274129591251507411208855337603016321131068185460232981660157677876791162977710810741619314953663622950383347310332048182056952618716784348156543568066620899038074268089721835351458679834612735336928557082054121186561422656752524585497475961607307380452661747205370577202955885672163549360421434667894205598532294271734552948683028137588037740253615320666958496602877268335329653968741883697084586480068937061969866835807049599482663552587312377527208668792473510654100683657419401551428387753007710727209738505558095837631954605194549779138772876938561768515763405100143124114635820234130000821316127860024091322024175796610816111855903535555434529827114047263533329453688014140534372744742783161143190683696324166800936811715067704564223795712297940238996013016075217159849954054188306264878273302515992309908133923193798893564055643831489114471453346545057773279285688215468290968927208483317557585769857876330318700679294883374754301413924484039293081581788771268096266972922200038431862527537929520217641138801038558107281663358817949748465168258759519725289500894068998607357686739309595527349223349041657096900545628307145569657041069399454111371947334759176645158531140917663631453192585841147131905803362997055118204617288351354130323864603505681338997740959337978039431469883772671884648372260780173670150450342115513016168382994916770506818157207419238477382539208467638864616622452508186178681049741962922396213341844811699900305964568200241186199030309331459035101421459388564093746228001104846057503304618537391361567603176907403163471888119021724433141616303776363307541057459504771875669573053494499003594353322061272222826848734713925757318121775463681787749664382375848786299376109126638814026626596557129318029607758979515740368271030191226363753544767520336502399146935298659344184434080293459801225639519333865041071512808556904171625160587389058747817877299614934643240234270594924151265300544413235011059049994446531818873151266055926706375756354031803924740845832843423033412288995907091775867451850031147349681682048014060212201751553680115307706749930023807453387822365545231090671132590476800387571882504002022247097333920064809176026869776873685383056867502836641663985467081289447560903045111352990042000585879845583342829204367181713483454544908461184090354799181378752502204970052087641282768628010851677018958296760297124910636037910521563085388699673705679578426474820651201439817984713709488873875927586837973887404794418503299984852320345406411529216895798548867048653532117244153919474980093721432040930642662917437832239604646569867609175767236304180873210296795248644972442083421398268826851635426804525491280617095822858560776795236822911504898960449949985915583946932213321185452055305057985833966868442123278030933428779080117303530501583237790832214769999409752112211556875801244146257476301406075073183001608036230886270851053288904110258592813220252577364617565615105697162826772808368761695692296840457300760501031425727962956707412210504701780051722236922588864752038973814140684654865892443893860751021298650361806345074427212005168720385322208604020421304071457885181394868445062071729485237180079026550423944332600729929543882825689008599862698283660393563803362993441431567886364312737550674358908212043153906480918682718650844023407585462087867978696521687510591740871419438597180073071201131895313644979515988058541816241945340024039942749498730934308984965571672270674445490948337693081756745372511510995601418107218333104835086628528490509424493017147232473144630954622189414321250504513834372761088789511164236579864038261567926387997440062917715393879506909204313789038790952991548834717067153511577903049354569832963062539566492839264444038858076135227692896936112397266402493650646217436213194887372983305278746761420832840023790290411127552913074233394635919479848742785847770949968102749498887579233923355620388201388330481249171846446566225262121236414456159036046877049013977855440187983755275929132733590911714227379138453954103497688888840003760442676063782215661384926853449815934630872895234259891722506093924876555740194260982822686668108269012215448663796301827727251117999819751635221446678014850090311620780076087187755532732484777961534326004284031315444473532884592585417922912220152336187863114458779314025066719894887322860146688367495782949791392670406408299089842437374437997906105493767729732696443969052302719786486883071878041682870454568344773972428334534313615355550527513362606683954371496909088622338842793549641653708306900682365599282100970885065414633100500302913180604053392606528113842415456991525814953904542631721423716970501220745834909968955191359572221914604626744134456845692564812366740876085217940688699142078521903921007020935282625557864525161616898865483812465023831599452345710933896570235862157250963240000096688874316380131485858104694036942912195784982278190289263626718077622247708357550767933033247393683997075228192126487992320070085611341261628299631046970180789475029204186726985896250077031638400489667443848174488758308056898093387343733569943828053626034258848249808980659142813035641518548565637490029546498386008526661586996041459168168226023291213538901164194154365161295448811485737129467818821982018542948166721274315751536361001393057184137684144990955919723590590143974019061857881854470057298427032568006922613290237561170954916758596143705064629292422348392528528401932565937239074642955171892758201988472260986756316384071737387270836328772972549389015224788913585705774687331664475211896261640451060937443456381580536735937990491787679631582866930891170931166032483850520683885870601833387876634547502737565488268923122666412959325336679092265863736487043673838875586304381817002539374778074325755222884430352913464763930163928524576568701635853126531995918692908812529621903272586928936616902916235413799375216780724956192042300295762839572461181455662613258347095369167200705894862390113109738506279181285171137372145222509884290689943472472711575447044926590168883427845818193752161849641008996712403705506590345106373976034584108845324057803985917435531821611058305510568360783576733421717601440286137987109150348029207251291543361511013073175654138430922073557978535654792724507079044503226375734590945118804007574140136546636483518330546957376753982438114265406120357641748764813844569329690060967209592278039300854133100958762457429602860261767195579186706810555593230492263965955565195829697891398883889040370782901190970706767498723820320668783032262623840029613631243109663470879178323585361095111914576177709023665132707700223759446068765847103479167652875096822927792296140659537505717369911696809226153789061674901134898980153674740595984883019961170020569406494463085441939957434157551374539779707290383214920331630748657979729791772699028456901982702265688046074427267153660419030571101862417747195464878655106964933792677550215121038026798757055935014235820311161039580438933903083839262679622295298795396377428150747788017126599713099589938049726287654559937450237256487682775415391935025764161241595989898378114809437950233084339907415357560442502842938020334430755272554022435068841420237529605311015407069410606201207550768930242255330125656142854405221760942765245960637124803407904337834195424228252599778410650464075510304232872556194577668508494562778521519139831180072199519509624157885990806695234841058552014730251787047018095835076479592446841487169899395987111565538103851248856329173333148654126309687390565846750828174283244475058436085558648387777405103365693345426797223517323851535832274515478016092066606278150453778632654930370355743415661374476792308378290065737868482855947361197599784094496526465868008483780293613278322066429482008119756467293009174317311499156122726192010411965956002025008705360583686927078075777036157573987067319937031255222314315326847486165616998835317984823936807112063705604606587174182075558236792975854435866525559864226439208005547153035687246771368120967986885569079871743750374347322893467613733374141696982130260447435302812477768289687831743512372133091211820517658254777657586648996345858286020026678675382078727577830609437315104097674532411554277414649159053071977094505660163355065916700689035278562264679309008008393578492431743275321319790100734771604518887458085439862725052030361566110414079041789498495276699666403522944885967078990580628925758360518186696949031086105646571652643845597120219843322486662375985847536121713204297534778992626836199738533152314623911757315891838942443464957939487808729034131348950289084030107249774561709973610485545361357175487241250315670669315772182847407128488705771317978519458941532271338057301851999786330352053190839642480329773179097677475662094395727562447913493375901944021795344139188374593433149095932325901153719197993240960174244694302671208774147461132599645747051757350357754273966876896058320997923313547731470252306704462525033663711380053964663852968664641390535889829486210328871121144851648356968176988849789856279095076409203607585148474891860858410061665317896223842021602684434277687129341555181909108970825789959986017535451125309025530528554451588429141422634489884261872711572065638783744423789028681385712100253718977325152557381297351097434348878894821174685274113077894319558155478837469970785656985113677177999549739257290969604257969706343016992459018557327234646776410970184506782533361276704166618807805829344346428085469063949411492951860457618916057525537234153246625926437680504237038158654629447957941425243921455414325469837082409079528278631022256965756337396867442240167282401483682766590120683586649436497383925801069790220578019626704905115374925947896855908936856916388954450679986698077335150396977150540274625463342740675441704988110031305059880516553830097918075771000823992686742200101986452010781893809514240249618154440100413227960998194789952788767193086303492039427976132390244473785951536980715106627243917458589492379972894858549704392167040763465252391639560085075516329124777683381099571172951467134148198044508073728985707862005474578128417923687635533884020234509058520382939243327352424605027627916223337212612319936638726926712567130470479454744547625824399207358508068040020681084202526983725523427201306650449390147124300762526769080260995175512157983539882215052843101920107291820944026896870498305967476425388225376706489636211980071738374941169835233304021166067449918204069048866788526304794207681753092170016865316349202250958960501606325235071739482737586232608065572597841350089605370153946344670557225071586967608907973814577825821316897984307948596195198052713297486807958427497814307359963931543103035363269635128074350718339626603340591260039866025137174851598840811488028092785503188191280624535701896930722421851422358712732148555613488374858616091343155167602260520642238627841699179923818391478302930578795781129668938073528755583219033877792977137082818226789947154023472425181570844450464143753852358579199433656264675614336497960309407079065037429205085909742068151277085368758573556298603164952697230226258560220195851540572826976001256683542589223686446831623089414522991351635153453268386837736373950676020463708374159070898029331761146165230575198539414835826274741253649788702948508082575260178972452901744161985374876860446709720372276856193280189330431820513487468401997876520364491954113548928742176319683597689611023470332139537496029361831059228113397628044020247320255993687208037631059255502892339439580242648889378080389353179048603274703547518671480843888302838203265568977372040392717101094564733063272653173694386739449440628999284764331440045445511969576797013618747699755501217818791614350593376109605521446596924080900814362309929753783790923491414436161713803053711595629699825167435343049506812011394201683851930176673184753277719611149945945296629655252178301008713756187629478345583205543924048142416683132945649877949363043175451962099864982595048297178790491836510562978643159376580007727467386636195310017917533739924800960528190937551523256687234474432412832721133075165737956238232244393528595546626349647477523854792987909590298626588491564555574944708836965342629911576261205322344467887777772253549093328059573710717965194041597854023469585084794157104000543069496866371262002710768988021581881126613345681894351252785919651715604359559436662932536884964302139633589976761142937039977156374980660376357008248286484332295772113972715163155907126398676760897442828984665485326838693852832637110811232104462075359053894870692002751783316488743515900249372132734796565863663594669471007120194785955911497705161935062948338250271042814672481099048719972975800597565264226090625588537142090611818806685702417324461632988083466000129029762116573305417200889303611974026615071189977848654709748354826188655746679445104483731023502032230150965453701297632533919291314627752319022042312443397340006744604298399902512643870702918710034953514484782597718682856029718261907091766787258721145841156297390842571314092870603410162282840320389079281048002420341845647463070006177582684150924990566755285563549656223132696825872451443633181198545296738929343991430528566478567850438716986445990394061978303891684507192476484397294516804681957979972261195126228678657550737913633347601502866811754211802422497824142588365255565444878632149692716691527054275772467820125607436695641423887593020453179078135536573090099837850785708204740818325174302126924031411169559417387296274860623994583687715434142506265969284557894091409764233807430136811302902296527081472853453621412257652627191627665326957208721056159454203841611073140096399057347344051165887974301997611841305038717649322742962315508758396808316400408957649104135407712963294953431421364030373837707921458914225456103887426551317751928201767993422897247425635326444020620166374938048669539394282926096466365745139560865614195468381445143751510551995882597495785654871369008644195585827923883170278230088755522975947171674259681730806879214351969939133420412644566389818627634539492479416687120642414197872731266282375014442613605362588400958946194677527693533212767353707292034327183826576594549255105746434721589732355474222209958562670367331364581007616179617199823796913099321854232458138126619526517319677118389383862107994580468475384176419299030177118535339023069210133344269374429965667819804131583364828015657973263175790106303434242439716490221554441172858254904306693057784862609915064019524881685741968299434934745320715023669624684304820566866732118835471409267488757725107729589809969878832097469460469868058540649081277966402324903286844736517158665666986443878033943173788830997209208811542405967265710049109887172488475373150964497836685102430864132304358362744264236925798910708187151734270799843465193959711968286344984934278563168150230400973567058994717352248421097544384475692919826919835986479180615117128094990614197886732450886984971735045574436767130220614059347118110314228881731851928107414824608036700097788589276424625225690578026640979464324353889865616427251324501631674859383844425964717107064761783091410215351089407098962352875980978753058297968532171169632644800944542360968831151464781366376314738437899084169321250436620041677687081812468347311873101504080538098489318956858044257496318823709195295413387644886984424290396144014923931939462887379584682836876280750046401287115117410343478746734336657541234885153168344972229483374851853207820563820727439564574252280036603788622020617820606715695463955338174160364742963768613128398700433700692566417983598694319226298337254013336422571651742486247235265344248770289833717613332235934406392655575786221396038640316462170918077182616477557161328738090753132670319622205976777072501812733494925858943967699970290737142723806021585345990452371232175104606327879340765772637994754907936003738451565271434996496644078292590536417091779853492441159405722771122941966328691375593081250994171333768042337929562723165142441220418057847381160845472736302662970632851191314339315708181395178744017707591891970959029335559351538634159077413283435521239066089818380513920864210511210778627580555369580814361324527498703032906489899262404445376593413245472639094251867024770580441777942979471668506815283383400273232171966776887993212919496709799286106043528180485067989497630418626958347772819043868454525847411839719408860484131334055581705456936247517041676531865898959282421194778335489297642633034190408525867724192098408789607135433001802244061276010411663822665764716683478074388806236232680168954320264634741731575033684913924190141415799498481621517541593470329369000877472955951224028472227345471425208948074169272612157284384329147071775003342394868385843872419058249309115713092834259429012064565390221605628209149094659753583593703967251968437005187217530871714459912661681498385783380777361027762050618195535435731130092388900567229219569199104114381770936304527807366946516700491965209713301544954580036638158672237312898858519452188768661575933280231687569709643385805503949449140838750562443408558547356906364140824716220069735145666702002220319073950815041343086835407996488606198750302147654923807348655658648458456622108209002322716689402885248137580923662000927415837810983290084222867838238558392788191183606145809498441559984321833818177375569858175906936434980283446182122360030229672056454282711942493114284920596310386270848112299413419526577924898608205012453233096721018561801816550742210552473406995284396354936695254638121558256770500158121932796681727839799537835092122541572646536348380039696222634193846419959832020045863250292320128844060878200969897864229299152489595691934031725906519566814317529171291980669726716245879534862276818308190133545921701364740417581844332817179496007373064344043554292924242176020807610539337221588926190538048739880163303209088877799023543860754478067176694088295267659417795458357142985295380073377873346749336686133500964484634541152560728223901870665026729247598050125575100219346481061499292173627809168635209329897971155311619959765023932493389425838551688276233151410158493807652206295095308213862854873036922302115378741291606657605363026616744933257549085731869612252936248443664774154242254114755740702915056858945391712173676125633580701435944113355528660807791889093484773037243942095756586454060394747333271054936278065188749345605799178283487970686084966137850195628917746710373059259319673900849302758530984733401622066376085275492431138389398743448961430225416387420045067302073029250589362259997893706020357503881976836633619767598218116728661734371689034789134237399258052671885835030507675829610953814536544726206097554714980846707569650221787531874465258263868226831777022995249794274322737502192012330078811796287233887505097131534880755402371305253028751452372956976139786324338760750761609369208725406824206206735838769618991067080817445584685164493629774234786608059009706631895415950586434806199002382340423957802776812307140342480195098017387073182049638484350626428680865742300087827586558367355511043081172725208090296939539284627065000933354828947631723485861239619257825787548802245412629578987087190438617937469605056483071870890376082828524447319161679425515068907950184852494450329412707699744060614763763123408699858860324314910167853784469617819749928505548775723582158718640852629394590981886369132370761373275285867464984844390937160416083437535586896910793425176121790347739855248552848207449864573580623905871984244231502724733334722834778051481455596904605986842457380705419531927217979643947265828534598468788232326884065776173922825186692196670400499216694804483425412514292119928704859630960157669302161567931306607896677628735393869722546116821803433360069210648934601705859930692256508497776957059551874474795498181665605621367799913083784440531473715904231297835598708885806632717809007935032718632718522549234594863435812647638801798765860182933477403086768055699490644004306512699406349291416198178439896754057820117879019124551965556777474620477359485182335573210617714001672058351244095436330411722242502243182553484616290498301160697589962628920881240320551616156926040982338726772405659200378230285130376902383763016660216059102583827013995940023700353299593874570374388930129785729825485454795720746146113725091449657850885050929566461296978796066105747844956182345856051523683582081919986756419880686964764376888697756829224372880832439181009802629034802680105364850922810661615453122228326983316395847491263711854508996385470542248554123872060840808899493501112964190233742082329360794277850997045154617950238460724698369331228140794324102710728179066484784101653946635003796592714882666886768285301812200775805605130197051707644234090112347433340162346890185329895204539711961563863195153517009538713390312124138273814849889950490908594880410148515169699428444670233034576062039134074153598845226271408046328477613524461948653891468711355023371759302708916458616352135465709779837344413804550773889151713098976492897186781459147336062657672770371629191714117838363227451559111863248525177226555987935782136881732739364267671756683381385338578515617718458289276225868659675317199908446691411508233503385155269480943453334391906334013213124857948050978791184884451861637060098429329143434666518322858345803177973181642608194631216354494526860869587320685224693601385952598407140052895860639464431082580708172729144180578904202343778005394169752277065442673831359437920330835072912519298364098385058219531888351901827556852245201439405915655932923085565573278780980922233969702005039654680182885310868084090320163300297639944429170052434678784526777421139893896105578750615813756727219509426939171431224857470349639486108259954588084111468087375734576274553795618031860865859893550211383337067565701286987779391434409783691321899241991930677727875587423185806100770972425717533644772920425382528522063842139339760836542617073612608535699485555852977440752557176612902355218014718094686001625213982394735009444701583788579782517306413429204118436457763003986644023676144504783589306293185221751191475783296683955108814241496488217726695296270231392032510981791542174571511237826848681525461133811230166290050649440034805811974831199932748046658840228038120278902659492373425459811111141252335982810096125542915069498014303669518941875426251779142781354110840482940785050921625457977075852028714605549856825589139162927204364485426258282951835362639443985686300611739765417366759966461949446957759416123755704588401934839511116586176638778090026222735388867910565161600498307240140742013418329854469734335679211971318387689715195126972525671405825968343621836901075602054022079978671025930030373731720758210944451827684710958838978112447781382697111719433990975780305240776613226730608619832661587643241725205872002890856142383838264182930590586679198475358511827865325061048629606101641734793629132099023226898162161303384136086434012212463138789520963334157617849787398384486831225417234527223089513806616646791766724070121398013630373380224859708907140994461592573035296388266133295958805345791547791857849083299988158947726997422063700694519785459240271557647105127452024952907910960301838396103417862826535807230541682912463573919484288006009596337008309335361630512735233530374371767379041891010563997136748243313619530521303780558430936753975566065260899624353193291629903964985859390732752779224626779181318032762394574133148479527134561923285109944542190567117446666080920874970948893178466767862168101517498442750251103256706282617179138000170601420785470462561182577929182798916507045006579604529446792428611233324992160860144029749127932882438187906728551493950347365627887581381902100008831802411663310177795395034673766165383356750190960116341594589157207531047677235883480520081787964216077127290773009418254403698492303079817516039512434480154680190263045582240501633357458070050909740772625413381652764536690536098373642422667098023119745772634638200752170270181230333800214241705357633029566676709017304184798814739595052747817245931628811516473459409470756808708149133605380125179325119839688658974484011083964714666407489518291148280055221441504321856060567744037021732289551561342317982512515487784471502864413669414081114742399457708966279011774810877815418472760320753419344186322294304057990952303134007372956888215365249730115270092943835883145995074122578697486669515810909086072139850197422087085735261086432135486795585489499724148765765164090461089546207802590556307193960988644881956999566841813675286686250034733701497742563554779073462514014298686840233466308607994049767909992356513433420637596022516724235556232019235924467079725160081613978217229615331367853725682405244389922677166619127673091771343459949719563411795493919417500355431120108231461702541450028419073280160717238946272714025983835147823946709352113462013411410406451479693819227764653247656502482153449592327869484888060830297725700309020420052815961490992101042837335559128114392400034826058324639504411477124866045453667247567466291974301253780542850752835770590970739594224101800427969206032683792439186724998341909642795124238133545724276075072854987965284876978498739836005870401268056874326272672408871707642388959974757552735002126322248548952562707781397053891598884862352153970789204147867445352838291305014448540219795281571216273403731531379994708422894582847876244019529274270574752254910414041873369957990267600649867269554748480238673248427650571077577414863284742028666866661959090293708649903602798620386660683942299412741745704904053664633961709821144361442317008681668346541363457763431078974168091751160048748818916846491856738350645066806525159100221158500728341284867313555379608237851339899349162435601983756127074956796461863114328735026612486290460378379720838984278461818704691311049981316240946290981331934330492326515770800752424630162529005113074959104477858228840463891649370959900178340269470857178400402837259990678797990163574860848827440663430433144148177035617554051047779694215537237994886872836820477693012303297666644633153845300201585188400319190680751223974866869487908975501976505233858380379328271591851223263068794754135723885392627124781170725035212392693603875275063302457297304149136042471996278907618698363183241682586204851518084208476946972787857561966061925326174278177802231213800208950181652400723880861599254489894344552228368014654818336304346460638415669294396555365297933908651341766379859188382962385629162071154370958693696740057517210206013789296370859055169184026044013017475293954143394672551828913311716847908075565244689780592192749514650159937996275260332245400154749711054079045962437964278883557186014917251163839438584746102053684358619388532832078019193634099282435812336840177580010739657554286907971131925264670760970730298237508260078358569122629900111569259278418398243184981746909333691355720838262245764036512479472088393811069445891612313002006506152099930113152251250605798098824389901207942067698551621708091205954448474754970820293706479404345768383463571238221049935635486441845555401318909288778632951973179459481668206348838872467560289940525837543974386108479713657981236776570350736827984435901245631941653437895477816898940546172446660192729245332476909695626131743945906180686046577472712817806210524445688799304170332159111127794074045206926207202852178969111331573831683636619194201082017401797847745097230771818881328692091626457207316251337413109095438916372477188743082306941369663733037503821200954031417137666995203161475325209809654855643984285891582730192744324965058289045345669512109477006641928514256284401114365365977273788032277559059411673139684524739545076646641255500276237895199389291751323894901492711384281141473136789465859363657829838043617404861822954076506444244657378436271448925887414933971770921319424364239732350809037234559143939565938914766792618756860994840838040261691233533957958371438228031150656006604230330674096366584600486199042360585289356242311113444794373168187297880991584412888768234895419924250943504106683678769160729663531305688339072489566361557048625303998033816913042226606108129401408522558610755118965044629841336666105825791293915640226700393605072304972656176056895651618357222520604774221267212535272310791610813740875279524784007775274322882389763368101077397656234130275832321831018655463899760343683044896259936340383039540552436558347999979439503145269725376626867172855900156834786250551506664813510918576979282845225953312186098961238300668854843416536821243571348461196702514270430903532776686199534056764913193574570313079101931666382291984349170504438665713588040580682896461441544996728744432727630559075978200483975267234773806975699613946946411367193096052747544374000702018868463084407740570277477447975521576670693549322357447641843027670594135417977489658460324221299483056161737983557202376975937177688670910869142075353930465080005959184347553902684936382751204469939139558896222887691879150637317738518839760846120345897518780784122152766246161972925011198572325250596865445872319823283030144013215646625508416910133666278078740455377642999255545621268823428239703902358324957163956894358594789247287083998088457120372891604533135869365298831847889332469479124544671689208307357309112698872124328728575205279417286509963833119787323546654936157927083061050364163270719147287142213378755767156896018144788793930208196106334736820507714778789153772857130739184639005194396112007692161408410708972324313945302066238772158979856928758599273427221538499658210023905423222474706091411214737573094363629082949922875728175004297573102943516178337865356936959417013598805117459294941060107183235997886778963256130337216261009443768681865952116924251237323416884782588711640678072840491482006109459657757691178975686557826608214834862920090332139617136660263757772382565912833701747126430005746138400797758627803852872301296792392494430028626233458398044239174049640626818177315583686164395651033683674115141231537831546247525575256484157931723522516281615105878396945447798595887171407659097338878867193812288014650643321415283980870138801225363817282458427737590796003031846575599032842368832221645155142864678995752807928236110795396092573411615124002211118808669506076032591478556042679402875591977805168557746930334045602867078574877762506562658620838206515515387271658804404452055871952986497854625470562054912409533658462682186705093372015788521598220699027872339843644583217747978448730533378235861845186532980265046315698861840484663736897838649689645736537149507609319773635397423118261002758711537197873134584852020775769187018062168630083331831737713065245032051952065654074966449304847476872413537346536854711915104730732821676559490046360077295634664117783013312574382136298893035478988776560992890341019020099988737803464769240992045770674842129796572834352680448057684603436790273808242727544845028522001918662429644822083394624871381780119618104567887702852536463839262104212450441647670147685151237876092031045023190320401175594260585395107541947789073103357643251187844785585705366692556254750312769735305055011186765616752461258583520238375426914756202062707592807607305205968994223047575952371257432950938910012332590042507720430709748450077004561895991935537913825936388236684833477553247931089890425200902936002819309517897242719433347645493837188738998983532322757699658421843429432295932474237153805995455747204693544266459460571077628534311190614380033270735289563068631267637864224211208648115305131813981282390409502477135823915566448539958221202918424758146293799701834915736350759087951368151653559955566368366941387836065440845313766086259499224811402582756449867764842665362980311662812178259648118702960881897509923397080949859356325552713853004940121445691157539984643826582505143700855983140496861197690061091014192047695546003649242668131076272044541378525152494135367711475472613166017401321344954758117892234634840928938978362536618813919136578563802432197989866824469743018959939547906352727983813032569014328256232771927261153516623575046470522638308617298483644639567876294734706093493742458549753677175347760884522249705094261839622372350952239932740340153316367989622696421771778293670755278525494622219906692027022781646986735712900496401666503425551926583003834550608503738133232856625248522991683380758401936665339469960847713523992431482978707590432365343054964092978015169729130913885963389652436731508723223222080440782635598887965554635321726241987860499071566953978497982320031321997513314359955017117760580302611802118967086109450095378906086606145786626783288046359853537228340463500051141148828815497910441066305237990308700310804504896345995436115164006487719879059406528583114048444645778526942533696418496057896675271729872268180729828477896895761879432136222427753489090861610521445908033420446387817282463681267914539353105581157600151644486127929955257829840474095675363328493823610761449175519251098655524076194142258240718329560980804620526255601690253889717835385040984815077753707307244956203774156301362437829094681118277150155124344472537856467140751115310610310442583696354604378403192996025960616752734297901359603371118714942443957680070965354242263888487169417967115417341870027508062663647672533922499226967543117719827239429821470596578813771272053154868909354537391909319660622374597333441170651965109633698721904537508874363018848840029185056792494781227790531888052251188613843099870535400127932862110159982739319247008920378143344076159481406861134004979632782341127942310627688869162142687328274554155162615482460944801275475517613823612393599807191509235455875563206623537835953015610769407453040648574254901664752346853187704853067290087209303959859882937620669565772152149327690162571273396211533614406176853392754160383457395491973921723776595385597215465624640197727053605407298034401275477890854766696490743056641780346616474406599888431424891246998477586360966330519877548965458914347168604111816842245888615888338708115274576824746768989154037771449482757668905195527548724437266300318007203589050636391400282510312041641862917841866102119125820262603354677823930092694105274137582295931364618635396359693914741421144162023706515599281974022359340682636403227632667288463523344920517577538631496084023489923498161561434673920677216312205736061988147653990038531462840361788128801093839572012153232789047860774978540681002600845725034239221756189541906624404676160752078682580966399301385530751382181638183241726785528262465899725866575370952077584410331235400908080747331805113835888537885159522761581060753058933499799550266980814501978769023589877998966941552974283120955458307597367983869600452767408531905972554123410440780295231934017069961688193362142732573338728492748479159714910736727175246568329896605565270249495556813882645980152008192026634468402834773579566793215413525935033373032973862493943925282848038817991010883863903614136768896934308376998467863982579148611455072445498199593434762675453746636812421727073013096678062184071448190388045872968236569003672878008716492436619523499426381693445894449358585317515512208055181436569842409395664835550362694535104049820742659419269234752177087847268197853415964577146685949738928725955124703568551126048959174625930860193408192354976714162319908101957156262262839018162889051533430025349136957164515888341451583963595116804620223995399916728889551080543005210027569764513586760500086671484562040351695535540176938874594049319584282798712037478260215983929414991522417189191552896323263975205738636905206731993036677416185394110718172038285910285463017233590095068578156652013480354018342080890406083505840423814660464337637891598768173276784440446800760577245139813456821135997786772021457622371112911351999770770185276127887836292008809654637183761371265534565500442116704271427353836403493395190945270439440740854463473303850851063458817139523140353680941695296885610813187989166438775312891150756551681049471956798604265672984599399669351446637630538020758885284686214777947945045522014843105416316193820248403271240154380673091678595492704353630475072710241800129693405201679598545113207610171191856880283720286222080022800831367834734248826867615667332310663555231960012081212377154873418270601002272495418731531313548872740046695099213536597679373852147322595739393991378704279833197401863888093931378997160101778690115948076965488650369301691782154138332460307055591598203005121047601532094246614212707452577685532524579171178613975512989088067538490962858088455802511366640966168068540558312230995347480401977460076082851469396607044122641338277453279129488404526500946679008843228963251913318397446880785145024597941497636536634455508925064211866740018025052481505330371039426316769560123565085704422826498709623248747212367743154720901045994597643892868826704850197398760377009422445472022031369050481549806357303380717382992378286794215755541130765903284156849866339575706626380945900345206218446307978990999866529390459545444009206236450682980635766818061957684501479256934183250265200575692877134368964336119754128229979142014687787392494029949432705399099282796476301259861846021445336705060001939457586964632784959738931959689340020801999493968234386125614323320051309210993238910347696902097590621769872789330419678955524710136393400420818288441009051551783098747823800378183206897053988203721221983890598219349844456131267860302821981772242958613846756669795382619738984551275762158086489152025809204442454100432610582517584662143664133932350845648598382120105795631210861253783656380470669450320616449500299353160297779398654604576426190173091113742378716878043405966512234558635337316642833890281669462576122569429875045198183326763489656339558831426656917968677891932038091673615619458208896211327698555335242840471767285728313459683069723782326086367773512578546529420685236275845876673960010575459403395575110608682791818053613596262942530410897923693733158543825580392192697706247119438977662970754813394454761310712851354940184776701120551675381107613459659306377055887884538087413661852752415431969734740796569790289304816524498168764905814127691738296187657280249683977700725703812147647287814454257400068492676095069566609789279779510171901956135271722433725972998143644428935601955370122268654573433832461515406416462798151860592555162813332414798374212796269592245761754674134858463018785153407089306543997038758024279938405916275486356246184857436049324583674294126553148643977589778624527644839346461956573351022376520996735355989349507027174508664065586036085904185956315470568576530686220344369082267511002744941048582792130234914739958186851157765467805451683401582287719204609065610137509561279695266010091255801942233042025000289333265179351865126172597198524072150245050896897681833763469548665194962551740291235019252926598692924830291110840565415184119815259064415770557462235599626257494197433001885468169960214101015887563097151672716034895487538804125600680772520506453296452081221079203029455697158965937036470538987809211962448163170131110970973683232877763589276478228220652340144410004830539548646524412990095741416693536726609708598290636752461460816659771601443663688835583957040512960135781808924561938373398160995354048560172417783732947272581612850519155057576779547186240464876721698138370876165127588248558497736543176169746555019720846275482743432947796734079186936099348847178362432511591820785807239263562635083935542435858608670356149582721403872244482834509709782907789149280298776572145473130988761913028458495428935839151199546143493597492165623919092229489467549046526868829064536356975119921290207502112210824308704666150630052905679789409509416062143127499474761803656276522756123188095577914411735688674395276900943848579224694513082141396787564098278099491573782547588138481000350033706590725490269486880642751369695904363560046349558680425275242106894097987187654019518282387996773946841026547961094190625359713329091887784314884759224323892855762001763009674386042410662661751662128137309821624481118875687154496903448000431408707941713658919040222104648796075190130914176014215043548293860530293157393668399224238950057513417262477744549181808535119676677939413244062946351120507608513043101445623498561122694814368936191144397880869936705325030622872055517590099785514241656756366693133180011811020009324932649604670495548705585357450378763061478923667704876748150468152092736100505491520695624212407057294252943097857106753511745068338895786157910065051995114269171424641994015236099355380343089825033554824097628410616116365302078387476868823462453829745671157881709290137658676913479749718677776788162931256138306539357448867508884748818638754219406981911054639646852212275962888144514205287361175605962004956567208208847289179335034571858542516886221711411912786529833041309079489911211799858422457858635568413361181481181060038934177499238571977108757456946619189971180577836215765630786896066758039499977355146854928979862390086519053181850792827483593155942768335857086911368317895235859262461935162821775427615163894805399408900902955286772095657140630645558316708787012158894863533706477150662190546179628165802751354526715204841183176903120677702455184050358326938176432503817975195425442684752213554064772790763609827432188639490531566743151189249262453506127025473673925644599130312124433096959975100353686065076091415786343143621528329996591141524542296387078536851174667586890388046612188379074895242590143975474544837843743588103715466904163766759521019738547780268498352313052944331212868593655994315025779589339698200551840365188323460098857623133757852703183176511639096099095007167681309540004448711407538536259626778213145818154377165256536944648788097419087003147336906326806215338487094874164733044211308210092245774793839536209214070841029383910566902656954477720607929425441701717214425664823064224685080269052546313077765617586570267145831748339570948279620412570052006834947464326417964705507797646011790632520087350538759113644294795991793127629037478409124516030700145356950488361304867014591780004273861943597936021411065949790040663262103772311769161340956068163083309742831160565106055858237875211991883600761525046700462491065151373786126638854730828491556472152606212985510654128338992536179949482676252872793965595597845812228719002003290127921202591226115366474763811569068279128403143651101918440772995707929621440039257635108222222753709386130063990271746509926210754849667522018264456644474185908780070727061028336904948520104694587888221901244731702507022166201600366100678334798589223792759606382691352499806651092658375295551752133418929830666196347652898094708002471216582817804155309530162054562848734456568911598881996127527059497039031356426991397048042915132759851098982476875336542527840692992344351942613867197246372937654693377879085427744863626549616489434742859169810437244546116169914043324474384540148453737516181824714408078906689179279049695552222941897045736973791055012880380731442473671881417171672261775639812541140332567387376712378711903395128474823451775517533892788771463855362889693212923639569656374011422030808953526024025590977102622961667697723021576098203105220236982373822804445677512639644981756585898587972591382979691236414129858326231783764029292398945429767742184052074369515854647134683120494679478628546446134445154113465846149133735468324621878197809649594426753227157539677818213977298958311359500797056538321518051330698890918516632894825619162803374609620276631284603086206054733729899780697252236340082277912385430026808671063756828379144918379829157218560861625996260474156463752847618613812433417867839158277939921450758205928241669054145523841514060089534571967154995395795377996301328349160003809651556925659825495915492848686048394782989425490618732493883610715513401724509794504117597075122452633355406640245808875884923112561144650840007285781020625270520476982315632597957520244294830453493325952306957986026650474190726375586276261072258839419999677421148999464761938825443085026293780910649383702404908161331653918628846596851217713867008230038242632386319220955964710601975591696100230467870414080495385152099261005375937244130687801868125665072486502020596314159938343358580941146798116774371482499849722203138971937473724793002052215664732091120936737571812569674504905299429210583221019421163046872291555909543410457531438777785717452967678758585357940440091989997763287996094403320512023895838652835364445068506461703471095914325761491493695064718156475308094179627589961780870974209187621888332378908913731240630476259323973620900164551181721157806311719211135356784544752352888906809999849508969534271507270159129470682336639078765109352979351935611023615878814264478587753852938183941783479506409282279297536194088338808146581792194841760670959195769139525123099290082417991594829314973241442459596264212784601733563388398265811667907934329480743672275455703924823991957403977004792360024833100123452754941287353400544584281233028929344601396645109927452917976936742399553185145195305121512260992405695510835705751092053510266434552404786489137145378023177770565484812455311762249988136074769253869088487061046291113891933266724932599831212524950824979531761034535016218703682805104107834093872540650732298950266152295937285494611096517091898581674932522856561077216521899320378480129493923902757580857655460486551075945966991861680481951782415531176461741994902301421063809902534585263112220530435419071804439906872483135435230900024457740476160652298689584906096530477561629916486497033508097233270150635439396288721975269914734911229242329236110915991481820623051504855118512190058986763755282411754631236112002526632383865096048207520642815814211583334600067613461012419243942849984385822831756295042147703148160437361759609013815645106533611059183122509384284104133422720792406042689864430766201456268499193620839900525860400146636624959918350796860657068856970541850017744828699570892455837106622115302794251553613943331625637323626121989817582478746780929118509912701007599443823862120050560975446915938863699353629643923444314282131967420464949761837632458137703751112976166186409803487521507518717319040067093119241889557889344980372762615546235165910223597421683385020204474849793431189523172805851441509152495171697913936867229497645475912538312373434192312397167548392071417189675464231389206677550278412821096652735230780183872943263963015371120534384295026265319582110286088090422260335358371394654713302352064709212886013414353793083244859812274538879187763405664665633099002741832857857514297065671764970507901983990330185413788846618350871164400014195083877041732655182597629547155551507970659130075627461222369846872396630299638495428532217202216403920734142991388295060543229060537078915705241956176978979579103954726410314178298524670230275321213656048745302022349226472944792361451049304131713555238922780695454589283393704999888075033718339912853546859225187330557876476190359789160942386968806602211137335246358501033673140574424220406418927588578926652422002379390543260803337592948700208790705250884062694052933318093443432845592522973420610701469215560213902979157111319900977000992755263152250566677930994588997537992452542061656835508915003352450961656840457961425644760312112298231033826066320473198705457596396942369543369844597172493653028331763675231352270260866478920592439730710066344895651921290668006840301029648253907620513406961536025369199609171738592386380500429010481546609665413132316910757602155421650144459945229150540808582992241690259994409225724700305006015822767834972676791865146362408565173499625215894473257378028109464178785380465969129943902112615966213297086196279804579357859435679822615635382193157277346574312334113316482331320749540976982324632610954418331055830237278319718234569399361720410006676990214655527933850264270672490013575849735074467523056715937045491351273869545372957246904677954602932521719911859307211540915023961790069736944039274508673181528984733035535097114605032519340641826375947054480160809919821982601509246347946020155118468540032112692504367857144764420027425081344271062513354026668054199546584960138889008729760839507483508496567082360994777858759003473893163880500719999852284694196519729473266965821178238647715050409547980146348975778477395662767766500596790484900235489592801608340331649088841386611665419561409112157755224390988884866090420452612195675918685964655030165348198694663739655599707231017272438421982602530288096215706525595869198785182643206225164034980568754438286343127472423462142531238700396331526098158889936539487174414470428637847570964112535421450687408958301213660275558038264005932356461253126850682757650267818189814907806073900972947986035487714559767367762572692546017839694116152285271862887194728572808189128504811633804585336221517405530023129695728547783453588422941784519565579837866173905295106274460743260589409618172044883784939470297510750398600770662404727034824248382814473165400464733233792821190814226270861851058601423805189634687070821348632630736381064700409553658153837817350408918953058970030638209414259407615662360114555421532778120527050936915335767117596307718663086258762772336851562855438650831918880858788286826672009641629311993296338596047708209355066461251176091459491190303297811199997365815280115782340304458774960658716602681186111832885769480842788760154982916850606478160545249213079359124098853072852111645412748453094437449645367428092279196731214344632976445214584646421079549882369003208583047199555774497187853370637076673121438042093564236319961015260830215923969217802111571635892335431535381768535622347170526371736605068826676210025368532697309403063672709530103751548890360091344657938494196887881747870237124671724582451865175793512973663791582595158361472423434684497360754690540064563223911424297278946184431186883989085028744296298742223314763466001552141501111680326505899590934149033174898858396707848271098791154465587374566736226598818150909614772225107951954738250937804112463327435213684751696306458101507324526323684939345219565933692285769616222292817413956263529164926535720041364412021419856157250033279678334235713180714882843709765308646044668465008391474767554464735842905089346470850740782628381842519531226716333811897245726724359197812865222449543775521484380767277962328595895652395774550065705838028274743712242361191949997138115019300295982771566415771021745886687258565823445522428527026161733566043725203336998373502886646696602732677098343637307574816464130076301962908123813534512960078016885821803866512117933936447385457660216742360313261096880008574322125595781407097501736152929720858997920125364583707048675303807454476501010021692750959178871220574918927373884063529056498335722291181093102063996743227503221813028247691619366587875942288765755930385188804094443417145608033665393824786382270108111616927522464038994806648173815018201592512849703130252395629871954220982699978218157703308707024496805379947184992158870812823029644543688930035208207465104712088429737761371923224019910264972329023903380082043749301172694896077565094638656080809911133931644088159419915739888790172823943742889026057962899464806000830116101500635009049942137793849339355288973743870003418137726396242226946959065731173896503284208730827420105042353910904965555794672688170535914919471320451917067061496639125407762781266523462384268568196862100384105280647543509786026548923252732908907288887537456916069602989915680830011293756871944975452105283149974676645628797611201908573084039455585355740032204633713642792165937273572767125862457808940687639485159754049681226038522816555314488694206273096324727535516557843263348517752803484937462560659671863965298105027815669879744189807459402466335167431269423722408141413234581837756617795706955989339769175932797578439619143662447021845118834588933647748754118381703287861927448754911260780415191318354073484005256401827164764370522858176658376133683868594624084838259583261906695279245444220232329731863529747639697053566521623981893214586967125834172097622223723299278620847485066603862315731066568075868936539319774615760894514581290348760900074775295562383196687315300517206937519405946321532426994281455554163208469680055440203521581779813630305036838508890794009418484606874651756100429475635880249562630957481303270987034843257669111924907784998161626321890175011987180061659648421777129783237592274238230911123264052025806264101969791606696627031737469560892923234416038595420130367500740827339204897416155217669370393118023505318713099595215011128890226327512162314867907999868248155179312258638436387720593098810023132302650414468698616011878904568158788359901077046529429499887904308155868832672365271267974934056361335395248013547884339563148411580591181644656335269571824502013918127618095945528713286450187044357317454164305101836448090451143294579442900932631849939018700784407465829433884346639743842229370316696835101264690520644260933712080493475288528620527269407091226741609024730639805638693357262239701242355364083703671673185178856477211458856566264175873859257261609565376661225519200015334481192847033281171856209464936911257338737473247647273802986460438140151062402506943913821437521967949660993099070037504413538934954879315264730104307481469776826366540060600277129081887502752528834928196003147843074469191885776494059822872470274377175079151174827435105825715274862693337070026112915266911005873191086225166034251028361166452130379815549721627767208608788480556325007996505116017021017563105589439115396833891602829154496044133433703466244229548970331329145633415579743263954685353674156610833881238821014238316446266731834262741559687083820163683655902758439834076229839062510338383501830710081984733732460786019077553625386989744304572394030489510464350865899545710039275869486536261434887583833610404895655884385988011566470471092438423595363507408422373561269527636440518740242318567433365379942716105778990258264127658188418617280319785654498729649759424370335525385757222307707496878542868582527861814747312754067103904785204644593548649144330386345148537782184525767718916811039830437649384371616707652721633348257393307611201753541122244141078884076172239799894087829436705628903352650498911783864211943362903786383979637252440525260701669317359011941012928073300782641383927642584274045621806176900130573811786497666711088612281415539992258921677677911921040559316024639939221901235603563384367733663686373961129320894075498064490711744956034540620676864020156236499548293398257971330063175426309236027173099833206408469746005512744768083892442062963491032885692340532061694126096259673483246570064452271228279373798349792022793586055899102130320911452574468364777562380677280589834524688266560796606444217820555468051408858507120454921930489825045508422710111293559209347232011497362781130033749337440638771867368906731675057796395389225049323143354743295759023152866546899549713368331377091282050163630971926054784697717141215363479436066143156880815715620437346597693077266698444937037311625836304423925568677101724034266059771574287183867506017653710267059159585892653536006744330148841580001306537435186330709417983281454271785923182638638972480916265075574094464227754689700882235496482046984276117659345259064377827408109184043635898258273785957226439349330778956043305405198603877019953936337774653227817205619751648085683041506536729558294150925357488940208495705269260127346891091529605698965032347348853494587884194002287402114411558292655034069032303290237341326533090805995246045430311555306223583531120060898734423329501772009466153298183522135782442777356468149216683091915759356091322619726608339646841922489143809753054781539203600686815813137576485975974515136901723425080097350200870998175564087788425335873232815869379239523122009185489307313884220739111422753127962541062132166317666077949053224788795648197258035525339248269955368166251750908110442772572232664263041205147606891081191713599493642421586729685478971637570368144991742576782230616560193645706907657103310921913923458204406249500055207406204546253245510148563416372532403740766204538012544343584201093146166439523048798789872039254242752629448120940764322697299337249362061796282443121142135208871155285011684647271223601631539540396055172337175627308110227954957042016006787386196129508445001050593248705681453321351593875182804570168396574889588127930935192566885410857577481257045084388453858609078251922773448874362969539223774349065891362049394997464058006372416248909060766443956702360034854191062057144223872795394951108532285603614707816539956177656834084916542293640416515156578355063663981172903075712734426594329475198317050824675653905784412533589788719632069394412384735470076285645499348897972743490841545338749291835583832285951727947185321791699036617506255013667669981043404883020932434004070863968402352080029412447370059758908117946457836755762486289430438715338391752183669149435975862555025113521354201587749293252389275634438168986031473314076236338422957890235443768968517529569912677679288964877648263331549184094087456447571232260521268974117648176370211357268085928563462777982007850921653538946219224871357993908500476676417591240391969682569970008461763897746641931497539353630770543832655546703864293453935493182917257934004192248588409877681578870153080111669444273154388512588784882436263915733852614859223998625007473232939315001647160760566643288034979019524500623551985881795852739333352843149359554321551761531240206596720652476829577575654506969330894115106829149760141148869457197419227652394143319720613212011521897872969946797581815342617069860930981672247624782252404485906702824478980882033138835927152788748153548301699403128024767859636152355706511764567101546421654423964493669819358467047262906996856787136776873893321723188458450130998909641873416176253907976856172220424897087351616024898120899533353935095793022310955679824958171752804027503877524546351837559779884418488931927000411262896440229898609301011198288345754837609770642086208806420927505869049720673352228987747526651058891509528548462107859059918334834394920975929582831647469232955345551731149394750101882510178264157632319718959694605296821228514005865202296479258981618895979679845794773904358816882878439869715959025968401346516995217421368139228615235168247419246311258410408808855781270836632333295386614318628657566758857651145981309644348380203742866095330585416737457540685710941921688693687998367728826063919612053806259645213936646930956464084507046434800840852765448246562087272040180530376368633989845645875907419973989524344312760806891709994756745704917876584561815479874042919897338975671690670235136475835199219536071438006312598185964152221360495713622734578752907757783036415705941038188602241553324847660596600632048660534656596319904090145516562404397165781748303813213885302006348676175751820197196418555439526382261179102485890461874831675329209720772066474662251571377956523686932107718314325774069020093825236390776640212458879424172190967573662135649609556215453740159650012119406002750570358795503693457369706298355300286963729291316476505282930860034629631840608123910035961119600715759305129368175869429267672820000453576952307428585664666934760080126855739006701604949992300868634348178649311536993530918110946938083445143457507887844785938745512075080826214104736248303457009179025748958047478881717343112529641475383257868081441778811227413158151210486363286489635342011978327030119186757608069366660690243152923126563925327568486644214522102534342705231234463384706183214645924336856531001575148505988723723032262669069299452036273193391591117923459371780687697969539876938069708738939507871724146264478142214384755547405248042588727743050703572835634341429736934801694015304891026639704657997556211697209152182786679114648904447154161157639903400650366619816711642721000300326275714515284560138051690943554783956861613536022188506542744769843053051408791864041455294985504587148933297597147832053860946173620239417649081547351702559832447192663848677412062001485654919591306924367633363499282207587067634360634967700490160258989412121284493863781820868769881312680130436526714880301304897405194323507820754908019475112872290991475783004034651426512427924389551974063016966783818302336179484279344867371109276717106872718523584223699866110180168675681885655790813383567313573698669305177719353325022968431172443018378751465699021495278094955106361840870221947825864065942218299500764427182848108246578815862845220454112463789760710633243744790253261318889593328972061098314691926571905597699564386995837116071131877193024223019812373753280411016039665426484485541812120599681790622753365215003362144353181122113843968009186021683970391681063404753035951243419044886914513197402837031760126842476730718334363678367243845579445895336587622916158223232967059617114661827142438542440187295338728273077103242090591249619583671001899228744313856654459153794321511446656502769182149947725554271733465990099503086069385554313995307147939805796043169961824918867081715732147980261765205633143787861718239704785622326276499488855821141824518503936102107696602714708762146149835298021953416647737181447033176052043195204793745381543528471157372169964487120754183835010851784518856271018484194029982627906916712919381591782125999731689648723744346845153651686320725820941695147812373006122710117765014602665584885580741087931515098190312191117833855174673776958403995699712066962190116167397145129135042525741874436324758204694567594544686846842621499830966868604118714093807167417653423654846853201100643215926504661657281158466283416536054627984664212724747940589006092804620349630542040336457144702229212157255865296741663028577835318548142115409443605918869630049372512376494693521998893683121057608446415412197610175985910348941547470057218639454120086153588763335466817112977738137720104233337821726567414060664827845466757866575754915669766006409689575581276325430353057145689604875056582174420472314169940764706090796235920952242070673886723445189457522630669198626363986890208263736133841195630572477626871556260324667923531939148657376191878884090133909682051811229657288203437937789883297155081593223277509835432733461402810919069198502116157015294735053826987356395773765440823234018654143537791031781734171616756700152408114252021617127755315376140690323226853172462061529922711381916228347588014244849316788173215675858360965000224478306209759850515020219587095413303386369725948962844268678905579625306855978803071022044351416858991009298173929685939044310536100310188969012147008610822053252082955304518771987063779711794058402220478476797454479893726393449172239723899524767446501349086402156941246809263833073921086324810433711788771864545476355104439825255163335528937989173626438743657063409630415162890688969504366390891836113710073662228944589140972628940891525732249607650866994351273426257493432673676418167138207874276006192847107107307465942842483774467089566363192093864043109885758087668186514226985635587629922733100283865737616509381369747587007149181369317373007356685313428735608293106810236734251559351926032747826848562442844983261217078872618471968028333583106044866750050292610653257822640062916488950213686028648053567803364106947930343557091137042871359609232765667101103004038868613981681057119529907201387256130758934061668930179162262681765198079725470094568267098440828115868772300235969904510616176332871798790701284612116193970979279181314184673205738845785311386915590837604382693864969812986272185189039495493479579714246826483093555204351662859312587113701883984627958857724523072027370297371161672306616448968496703897435654478676798504807660273534580141069956850950100084302899974271293557893786162066559163683986194423719077984211900267312184190960164830196339866271879012363636240912150284140867510871273342265552151350564275454753023582618544930019349548851539072832323099924482510263730138802363428525059999785015432879373353988306873956937884598125895221674806776260693831637015394301294949147033608950061791855870717681208651202368280056934560975196152197721367749753598926468079225688627825927117021505691524469934508058756212661616962447408979815952351772413923030626061731770856218015300767559602742375836390600413420893322992661414039040888001287979495676514630392976701640291038883036395250085622006645459601986044326578735285385200793626388679151062237981824283793606784152385577467004907859587741235801108676455258670956713951950297338566646028796929562163824798140893192766431523479736231336303879013564737636381936310356043391582106824388990616340888360923459228966152485466217898248588602376285796940566919792480315865769899148207966475864483294286718788940821726261604865376855734153082514570963083825710446848707818687751942280631799619443092758340939089787593456791455809654350011222105274876412836148016312045698172602719940929383388369797569491498090797812626904681557474430123786001454789599052232906179614598754307547380564535302128881127567101171950955802233821290696719229947829400798663434960811680453949424500477550956254472087485055081161214959946092733321271038251209082278748421713178767875101850060582106207945116502449373685867271139394986107054589943953076154665727088100334918739843782472304122242137652585884987816000815319018393057593864209635425852856443201420373014731626839257633922802469639339911482367198131913827134352474499541198155910244056714197473663564864443676218878246142033336816856436121541536400668241125806628798124047973376296140152034398274234779086036440587331436625789245785705389831145136713075658185287383981218824458422162743006410207715437565255252175663154435442089149938949086711957955464019724860712108892153364848029510996196065779954419000528843894890979210852137766647219529876144617319246801797214621064956579982419753662268042108191486448982593976883171987982016524602072452419002641862970722337762315834753262508512726275442068691326862331910605638477584775981229461385944924038928858415922413076546694484305320238307774388316929114275585090733573883929494008304645922399153987367463720901314235697797364799055312977544638922246761882301195021871860020720974916823209424434378785372759619505634740693709266773797324692581366000491441647522355770130864352936148762917582367678624634169008550735011499057648774296218076909353290959459410189175584724804808473642711580059757456125369008039525428378306539260131221757792773978890530935944497093980787604848839899824421260598534813276978764583348736902457835610163309622123445118770249720601169958944955708990865384720583919962202050954429131925143409206855426451738150818730243486431596796243243829282337956821136970159318948538661218003241717687424955498572495344248039428444907659097144462381524896680146350981198923623555743965899947200448193589652695903262370119551066168254759691326429802122535158561365267136973998678167366239564773005219392660084458658622050649039373037116119587587130784375982782025772103953715107006128872476007745015751701358392192884348109781061712608329156326437886931279302589234128071993722499405620449159721301874425560539795181132375974101399007434690310780534944467306725444116373058368666015610409058351793776485919468505252976905500041051590882289750062766634612878565015303046397446470661875242051930976124964424774792267822198039462051430330717538162401328963445460366597497438004387800227589093842778566003079525276110329808332107493539142262386359343124172089898346307725228331564115417531574344920831233936978681422883290580809784560307923173493018649904383796478534385925922361841249400345553069533990341691123269545394339122269689085913439540899277170649437773418404852712085768022735578270523483540192460244911003985532289379582451253439990791103950222575012764678404884044742284132266834546425808937876769328935674206943515516821030557036550534994538718724818146705622229930483503807027849412388397628667358326679592245397147681509087261108409643963513974085407248979161736457566010628748256723086461318702461349039989620229686830009802869545989061845840861911634341254729061185725530581213261149032927922705445694352412183815823422973610902101555795789718171332867801896460908527986479812358465428834598103790266195579094144980636776275199765654464557135216578333025588429193258066665611604389306066048023213362805125057979444855669964756199187802068390111308760276832695674147814837180209665407727732377090429535189480916400225850060756087095475786970876869272512835166456991717865853500869972264765157572072112864989355841148347923374969594995512110411188433469497926654357217512273795991059414168831247630907815496620489488024316126659322640133419493906657011788791499271544152588269244201912176281073839870198216435990182032093538776464994032025585281033810476912548696597747205192835321216408532923271907158356050818499254984939379970085690368635002206405346965822818470997380861474628134160571912118803867890261392913869193541390611376205934303216660731445975064357564544081248808955928299930799171618380199000778842866487381081722528936028369399235692642247189269241388864916274717343666068561169691366515603874038984593554693208583363647052454231773921561725964424260591037700734564490217681848643718540894457635533135948073638074706962166510968193174710419732029937364315306544116412532182044768098783970381325286207547096679211639868353239575096454184890794883040939858559730182708952268617753445145455235668372178390365895236248894526398323814624422763406837465822514334930627063914263055194451765875778505361226639172896391137176369011749936544201286918755480470410771015075658996922988993361091203456342195838596692384229839434156011018984255815230767189013916547964592754226872758812873002564461991960610308061852887328451368763323212318984807395871085120608251653344854516322661394621395284214543066059970855917392882069739278681920119072452184035720413759117635226075896730970474547928031703092537215699767660960567826901605444371283564364297596438259596885630714723367078185249282299772052845196091211676025397786568854006032832180166879345348277219271051162619343976165071190292120031216947907905935246371212892329122643315347335619557028425632934028061751907508216346736229189790435131405889910841664685915420307230758508984923050734902091539299317910953866467301212207380546774419429854774344865819186615197067133816603566345308695464504998699362948154885267058363627986878905014321708544019535365510308357018631344169544752842926427198815092343728091983283701604014011175140054241837514014556462340345566128384487953794382292896956809445926865972606832524101729593860051343554197497539773198019978396465705289969520589889008378925970256160831343967408067351187981391955123068235218753442613577910314231369257940969878571225047975734274878081709895961012187328854855478717857846770854046327543729855917232428686829073809125148815012095405494899257563516570647484321934502623756598644091377728915217787230207878522703956694466191285491859198594605351629374923051549977531754969045777188182697653217142496560337009440576795561585412191598454751150677933162820475232909635577692171342482615764461048453122884162693701321142879800772178626979707505364532396701625560463672361814278691750923813230699740138427855865979435413641277741643757037122305012112324724084495895674879299590641475157432734916624127367613427323217517759401471953319384515759538665374754111671887745630782467178910800798204070160769629416293737675049545150759677449052260443391886460136073893171245935702987182886260475839567851084731742800825834332320128001205659869925201036198987469258614481842835931320371452098389321306093528475073631351083962911139563909892345948258834284806209735430013945102596139330855837249357278734023887878287998619057638447206962732656102474513825543455686046335558776597354269344995772852530564626880942422308560075585320099521620263861336657260851843147353826063466595509328310772799434265408163447503235496657589110418154027026776948404171129983724415067931385236166113831028899112174592278526659394814680471845456754709908954360270725064988515816477766399953623391178239361093655002599184810618386187212126974831742604682782543252722594315841598232916167754729767500942584715131478844840820649393714539923567937573076280432094575262191675719385307926178066309134834354086568184323344434963571435319498924336843912927598556785565836293678556613790601170777329145447001856186150829816302940141454903019188393062693850569831703678424823764126817031730105477849582107452220818581577183301073679779272227644025287895737945445719281962356477128067659143202868206301973554287187755907991709723840348495780553923876951639190428310125622224080968867178262577835696529903777588921175985441984797638899918748723703128289481433922596298686892226979239121937793404446068896600384794940080575265722577838759149413682739948974674631536467266105186005387183477782026267289255107395241512370131431881282438006098056772811265475332946384682379554048186142872737154768806723970540171734178519775616524740913417747952807460732181581349412167724868686759756384771255510873075296855245907984526076265419677602995726759075260772537767905929674938629705422330272724545639980259200751289899541697195302072350031935905814378215543180774285587158209166708948648699304059262071403227609934854251619777127690904098784298182269088253466384080488695729879173029125711824020893791059306698749520276958527541225444681228831077960532830126631452157659922742110349359092996199353526348653254889503636093396803954846268284923272447889135061015879042421824511466350116213865998339299288081925742967295164526832390489940890837389053980028160193175842249928559354958302144716372535257447010213887422027010379815534442906803451328255179613705209484561697375659455730601172112133847280367065183224295707335536086751364999605936896428246563573778854432679657045485457163622714736250572978072971777664040961777752930613913174366747946059710090689012582750202046124382066375906099667830205001841957963534872638718209990309471762987092036903387143521426390045301428559609074064337477501677436868345538983235701120852869119019026146804538898358321852025616863164182699356184465263434258237558526550628774323839916109317411799935530328595548880637057918606108137694977537682234809958683428883785623432944774445150644604738811165924006425298208963903398865844062639380174381994185747844935990203687856589925659131797724388941237870854347493771538701939645074158034127684589462438094169358236294137379335755176127798498497814998755781519096479546063650255980387267807888514515958543018610538259210362057704863843568399525618880820754061054044023612121514460902638476804728997035022681411256950393218448433229357882352823441320394304437985787076570771897125441451688065014257406565657247655405635244790270950025959745505790278123754621280876311346981844910394763646040519740167452296008332774710878450783648307544416140847888368514511473353725421122682165641636933296889549920870911345851468906427479499810068031309780979451459830910874711190388620780852714219146266586623518907668412716251050311636771114421784944244982957580572750960916453897676890887797517894419819746353312751233678550221083046723633678116655864807457668689609806683030676603812132364084440611934005845201085350812034062155173212023471291049172127517959851127197430198346158975032849717855086768829175467551347535974351371289844789902515154261808688785140868813680524541718678707180220552956750983224133733681393629044747939890403504949871055112355324152773534745852106770198345024316538951730662026071523756629114005604338233126946103368260235857695746860626046240784641683307180117370105703953437714637570995315380729514273548196137171156604851018671160082385337164072911056135618871153663690485746554777039801385587695480241658130555318819017441670392102684438126675219155264086051866171113364326012396084053606945814545478669381380662481573385213673857976310092387843633825696830047599056000631200458987931199587610569161248933158703259384145811199279641659144650252411983582345019858936633170316343796242838237297683239391120128870874400240790538751812106462878738298674917496222670136860052153177221061105393074888674590389531809374587581164579492936719481487908794546996647333278361020031787692475353738029810496042667708102227670778958055569586455249074704256334327638361369657876216008795969647260882998286515898852040595309464060389995316265561563446606470429784047967095416870905941806068400623631358547340571826148993760762903953506557772206616389814982230358729341444339441737895982219325842828816300645730525373285585109238677578131186564516322286596619775721809795340941192790476280731787254103635575960413007963847892936192685568104724403252197820776765240149733139734750308871732818993096604165414652764867870156685076489741187758237864421242248933181936714888727806589388805811406850550246549977798681664601981228089472406802620577526113096853620220086605871710166427252669411697113507302642605168946363364444083529319880521430123318455707093263153840099567166593991686061713875405683374675455827398337268000798317766642204211543793721034595350792827586650702060903041991234792420378529298672943755685892838896696600512381624429667962810850970297771364024181771293503656104371259836725437209381265065532433950052477845896416613378645355782475102978128191090694723468118705832095293153719065628753823277492834374041551919376357320210535974482539073445563694274204533913553874023801414182120002864310895740356498933749131763293029093361758699988219174515329743037186694864996474823840076022805026874187150731649320877656029029023690778597834449756508386918597325162371777281085214437801345047180288635309148196158379433433387330285863557832052303213798128049416721820715498455270740055007454129648868087376292795134824255236451506102733361967177237114989158700849061456375310111108755493255186118808390486914018629689056302002423983715131193561086641070572670042811675349499076891949667661059702341714617577861430608259123784510892145459222955476736480451396928486224869005891825573655102301894509043854036883550537210440448752398908329855397716566795439012804839016275700816047177115316195522952819025780982998616643595662136162737989586032275802691209875563918488675377505022364595674991874473647894280317124473368826535024699215183959037740317021351061985808827492260170172913967152064941676415478491908493835310830821234808757602442291891005402608974007861200149626976152182820404653144235684602375727849755228364537511687395886768994331189545392668381522268676831764963074396276899137690930970751234495675247068794809853480584450854932213683874061971965257152942225752077160282050994625884157851362499579139649469986312725029438655154917420816787936803948454523120013224945481964562058667511216174768420032009504372158767445844809108411211946728632645161799001816772698115033426564463072462195474554507099886591338436702801968817291101402714309629875933830195935902514160536551907604936109701473027636000877660024104856705254109169780294721382034502693258092100006825695732811656418874433929604007538144112936123071700669482697417021333700585032430110971130669612263630394351145981896893766106986667994315881935945899001819994381292908897600820904459072935394254355976139915693158473854158497498782282399368992702060519974362784694309441652609642357372182573144451040914686690630877629704432661783335573439580758132399039939069501257196940395893390485053702859614175938453633912216907786243227242816946734845758974602574263835631631572473047926644949101982124754362320386794019074367032211146033540271557863739011704256059561426443822230841799966176302133149317981933850816635244679769199560912256896960050226880500771659590180223347411449490370250027056124338172441578662696034268182973686767050797354155945955182275541533901495086157538042435792853971352748172512006376202823937226899885648242756141646387661853860172084494873659056541644867637141860480858330939835901455635099682335205890229465401537815455157614335037680866388831075858157609548156429552359869842370104921987011158166264369540519525337839489800090287487087690670675666413231024725456149472407230095121243567741119566767441013989088195836484093332164520379854914520587120341562479630667073019225837923047512921990848490114346681551510966211359782365243032251403343169483724823524176123485328271167631082253338067891421119387764167329475411653118380346770470427041117601284361123491765011894451603730416754147209879161857066471378003472577212436596422995094711643923821103705966410192165480691108420013183870525782253855685554101836953110648481584457249577145516400418474989658041527510298768411537932626514073605216555161427876840887985515403551562553796898110972138786510754860258817135137627827846136089974351783525225964656308385400254223319378812415969029958284009706066305083979766049935901171060741231771638129319396292156262920196036859005957019505453726106943813181082951208900833245475304808060593415141585311267745827129713433041860647141802381644539937390232411268563647640797434277139649292112539728172987523993113739836662914133956849165738492957880099737475598366843629599207121481545026365827424983077313804461804102040008531665000854606898707355894972553089427676341623811010148466721069350483754740949105858130961443072987781703340422166091203043850015448092573796315506851271408887367238288987015291913288704418665911079364788298545692186845861135579134701935893895064514488702322092703040702380673922953340024565505386396857309807066765919991048033945750362069515397268151049734263901539275683303663191518039372045685275897619518870631577379851954327857801514909447638036307618806011043739198532279721246196262749106604462039535510544600282994877061824197240128320603577839293871712693138724156658809919851884439718128410368875298722692377592798317540345205763513062283347024778113008576684063094761949432251062931877287655071210029057088305729181639396184667072623780426570238869663420619076005571263445202780198962619741851822858381578598609965529524284129729599560990003908335374506651654470316162703466909703694056698990186244954945483587218634589944603661682222353079186489714661760925096998541914705180999887520571308057693583182935990679604005745379671934940339785638118972562070891532839851292346274300208489740810379427307370614403945944958219655241214237406365245865798741170366340832082709476348250529717435805867831499877730829382050734053433669133463342614346143142161118183939646218524273036829704317889984903016104227967935447203428007489430455741900696938457793533733909261714213183362620375164247293112805693278553353554238925282923686721955029108629418359521355789261473837682984036813074963004344157133623609210573357466225976564453627183440001499485691942617698853536892714551409580489049190985013181747897568273948768449286559971423659443221292911977929544334754334814573189946674179033986177080512072011532314262875622933495780088853567848488137691218208532168916634304576152440885968371588655547396239647982766424890707883650953582056037860982315444497733591876513193420755062847725171202625550455731880791036873963346085730347413969962490905915980337702388764577683110302826341644483365989434072869230872751010501053903301623250301061303449645002126053489934639960833699209062546657764576400136986396510303773715270241927966618330016175701908799491004337739665484370916311970206706859238088394635059009322686735820338382774318793466989025050482780219858588994235382015688610369882306641531122789385099768853217275783459112547786499847092371053003541018281455379981407054878278588008605839472741029063103488635404915541863130246183891251262276373640920246424879065254186031658743642735786721714384460901501261608593553884024708789997600771523821498431670256867053361862831369535925006326998339429336531222107216246422452990158653094143006277326705090953895368640523932140857490017072969210039524038730505620243486836063267308378665253194577532603373689532200539567002797756754830337310476597588122044839564472127514016273706104056833192602076608581413026622651298842608187084816478507898392565749244281174170031560893651853293049940973260011652788149787784491702364617736278132727135771685256012345774709863734581199742278822281376750990261139669483761585279558293989652446738834652298460554755555403253220869421336458508571374146163297205352173758730360081105495741471163625102401425738882014288791731482514059508670279504269361591487525842838431483012588599905011901083446248110191868302080517576200555932297042445874088525404110070732978824540873154698577526108578709201448140576940651497782162145082245426545984550658823457245652269029976642330342048944789837577641058616126755525694351675869347867254565223148714718292841087088608558372921661219318126665966067928315857219023841015181880035765541213768486082251351371640251883976164493993207948811153262003015540576244751641725696673443814933436875698321975323300898036732287440058093684280825755599298435576103824635996196778749617531951344686572764022317020389332243509838930448327370486705006838343818090464489193964617791340984471251246613490674343700110216991205564763691973405047445667303359704059846293825555679562123269079795047520670889189168380852944710973846907631457076858532218398061605383091380138314709658708360102197143472519407068650902611300887583134915860950734072016337915789531269180230263972087153004557555109751302349117358768123471129995370021087548325807172409598715357994663103536201224505059975790122594687170370754048541376871081567248921545258259835801648227698351189049676554071493747971144191456002759488567996277431252816035478794907849928490467799543415728279824494642426035510886938605326274055383348090161713118878523959624262962447072068729322954375837498260299233388618105302996239444899226503213149277816943486460246703630116068434647354680790109788935209494698565144046344144808631769174107025350828746923699533544321315387587849151713738731191182120842291501576687804406163901681204628335408580848388980435720147874924274464334807803597290990599773798409877150094200686059335215201087181101136549555332356711462981232420676318208946169888650126661690365356751400195768404927810277216138887946753716454704549018272038531868208974356615119040276518147787341004520821896759066697588578540446351999864737932097512732299587570898670928430824180435880362257026923003628536199512783947023032835363835192295387813532336525524644061067330470931665177116179355853375619780850880275261720087295388854542530817066335154608372312330911144976885397797452665539538255405844309975802201492641062103680495170806710867402175044003079826781463552648036108869896597179073459822446878091082957400740102276893230144645116707579862526998355458193344448066702639283432442274804721433249835572298641137294743421054785243783845187862514864223420547449248740555982552834771837947571506485502662940497226676220052208408501159212802319573945498346198971734638121318843468144063181176608109800469471554324501955604393127965092161380681375827414787776165041348139553687343526442918994719415345607691845013836700072111674517627982369266075060281728604282185585951888779043602029866079727373898820888585602026539235909019037655586141049854413224891329272178509989390258011921214888236350602480346546189382791480203784012963678798583606758093522101832234477610568751894433214513830958656899676664977966824631267469647136517241894633871508481104057074374346178616783540624718340810805158214930253849424543262316766131745640831721335757873782769361020252949656211920184745056453958290088124268364036126437580445794256347017278365708017403431445684762675221126870103536789419653773306788775085264592160282705489439765836912886529806133354321829497482753669219129520748874267904067697135870739499958882686624409117455876206110312517786987621918692320083223797311713853748435500288559660433864595422195716912293173900707351488099794605637292790951214618652070098742175618870724886600698828394374679021558129414417264881229892310640667466565451960309266087666574165326349630340363186839406844511865344676881272899713216526143723517418530412182756538482041897042309276869317154240767730759378041610733466473037278276463426785067821183297016355182833444408359558828488516549614858193222297607693682305825330028723714664496676087669561172078047092518893886589428571274149652968709807780805408978967394637678732186762400232519510372048415682399011243143727733806582636162828643143486256980010601511795806165066336940593693552961292960351014280142993340525122746046991367111645274914210905032741701770834738021669255056895621718859554217105792629672031200705005455387504679957740372674018644622273012367247198896153421786509844408867006598403534315065392521680399915745639889341870144285153048884628335494068173280940108839135425210242026953872173458593377097355981937183861696210755457545881946056936602340202573681954871101432056442605013723414726416741936549126243785956079526166204569648347107444699331132949615410111762688737709832879152357510085761059153427521505335751485167375647294646024630982694570594363821927816239522924006893491014660613190809719111646543610188977414179092220947811005470182253827126969944194929771940743987411449958081912528283522318114646959533082398131861108303432871421886760781651673051620640789460570133898866451681220601274796741107058810845844043367901907010789776719052632142365898965042529627357641771699153278141208097027201872932970917781779252818023371517452239900878736660579028023272164834573090215278790335624730655111990541714185248824036250651344215699421577273053103395208884452326325459137415741685967918956300655992161326903991165221292673618236452450066282516122832642590784116974169121708668689106162126379492955523531443179540203342271958746918915854965314797806978345352705989945605186422279365328707507086164563515149556432150282418583542123395274124211358378208006803442785360919112999775892821116688685213946107211022802058542724490098918619744311424408709704876919939972339605798428735021455620406226093317992527856627113553587745310607565818431120934725310607876712627983377757502903206887752739790872548708358145524226227794605339912188813847809785703321901542121322084184277228455644478806856368756190263880862249496277538184470810730873305358908326198750445735152085648155803795837667394705396482439205724036233453888963144799172161000244900172334227025696006560674953128045600774677191725920096555472809445587915754755896854212107765371570529403482431348191519388447419632993758402090549231356168845897341155780052966879313483015835627901343326556229977962497149266512029271309664536829745788204074863895882157381816094430903999633526969664321044476588937397095913209734034252839235429142854344882128947553691140259478654438777252671470323342444995184542605171668230729121209203244711170139570895773399247213068851293485840358070150543657608757378926565036280144831946830793048834224745488178815628664488405040125968542836234636307201811957822934008911576050671372228251813512477610628689090598948885894831579233411285714140740438015373644236929175483767810226171594085499617157715746457144595229764163383129580856331208102187986343438992859414820740394537574191606333261179087298456634121075846721743390714385013657554425303627371625162399236892241936287877961103815150868801776135869032978243037114079648456798458692882112137978847661306097299018736846462662493721073935099412578518733202411701238135703781332660440182795467171951718395922784970151585025877334848727194608698394368500292210685017180714742820693957348442938884949290427563144894062305834227030124984781880612571400806365528213779278681178775630231858465116371032423901571977658192773861786389170173445472212218740373005351174065903132230617788601300099847891083537337482464749962128833704671876172564158754965320498273860353357088791835931058884115809526754528215274602731036447856556429036447108217446121763297953353818709318865409855871595151415491526270795646211926017639936328833582336647742867681227800430343912658825075228937769262259083664384953468065830493923545870703039613517211515526217440203521979265079505204827948515900834040424215910416266056131848557730186255957053920168519312542000664123725003281815574917603420360474523785923525476684490971772096358757051138645720628654333913027175933733106819264153066865682788432781761204450563385732320568684403743857137683920221149065765523663359496787558784819650853087828765286826876466763160407238530253295470223947445979179738712032290564692797442338570785641999003255000614505123324285343171829356259593431087980266618027841087123347006760339906188885934805069396471966805110403721590898143754789801156589166321973006462521281677104573639897605307967776676338576389305248947275177325909651411014051336860142413075787630705676100711317212440851181594308333420734484037562013234378921883705176982061559921647763216956219887214604791534631304252913259901772510128362523573504058889850195238477385046587661539163921061398234130964755131316027490943306912837273111336041278563138544601647921374009204716660520908576280011018507568423137833873960502178792009440108913801468415526489638745926698983878236183084131591963363151275910041771533246840780428734579087641152502931750762534888914542904641335981449248777129302367570279888483946449671642067014266062014624130993568783945568055293439701193841619866350081826269113810284360116822467764584244301199779679438472197178160348729099382567174729297463357128734787802784189867636284762228604306681877023780067009386778969105909631745067629740819658668326235723132803014755657459598513352935343772582094628154536531712672246774218973522709435191421365577878030139300632227356767517282307391198903117119850480180670110840569765236948435275180186538191035517898977625942524534659430317529357513082887228904012021162875278558555248709429381789514936141363212421474395106702107477538021998965288387072500927548340156239693592841801507263027098854750994457632366137207350064196561998267192288794723417720758049940580921551803645178414012430029875993388732946172882036793002046395376981236555211778562208495252183880358260185660224133859133912390287765185977991252210071529514758120469834385981196037682032976557060532948205333766423309871310608357295171653248529016756329002699282435545221360240244583664507988176406205769714562149759577388152881845348899074245047777981261239509715569928096956231585651583741922578849511134910637251867603701402006774528189009033784926951776082431812575860338247607510375633553313738298255934027031311546875731464166527648963802074999382142321854928118697419539611555166560337294408819412080393946710506410069148259558681928956302381984436055748653405940118948788826655268043676173985687467675831402682001630061446580199952656110065058602111553168264611866547916345592033195272091312408722321885639166913529252776422448870603919735127174196452956597401959830543996579709101982674509894761351658491062987825766705687452007333482739335901659315591465890375926726521408398086781122352647783760566885862842756369040099360492831931287345383661513868334859136730276413554241890909852920582294882951385883616242156508401255337283568373182545756435071891097042781614379183817356290673916709455845648526623105737297250917819408537894523662009921468181590800386994842108454370201831238716765009581720332258611812831377926814407865117023721723898862765529138557131096896206584216401727539130425191203257276968613690506097807142419187048192790459396786649457389398264571128623305356404696493598436410164387146006121076030747775159376602636734341638563387755788502098556292521240154993311766247532873962872568222511010147637664957836224700492834842342281844461731587086510166256445170512669271867816616466918391392865162521541464931645537857319039473706062852626657679977980826420090335570826213414745271837543469903230031789951933129039609642855054991986801912601694574793166262343234112235502181236972231284704387773819036200025574823410357028791102591155386998919096606478158827853455721149305596166016971129239234752750643669923343005158978826733902989890229390022401854440745067723415362324971159158177286133926311435145078786389895859648260502057999001345581590222300235786450809832075038699479562787404160176392123300462359162818162382639023517333181720386301963734548124048731313926400945237999200636830227164158626201219372294174532857139673915337182676601881930328059321591811347086085776474041604024874030833604672025581927269860406907606710778882219675359015811812425038991423539747050402202456117858560326895431835959496528970654766937564334976942783790780377889139356543891283289193934829117275690264838188670683880315874888604907611672023533535467253581951810594160024680145122933474803933744763824454451334654025373564768931772829209682020494952367465285245427081195548520343363914901810073240504823622929431983473650109541134590132413337233337778128257117764835032686235668052565064192783946918105760088970356514281918054021315290168853175072970825693073229156971866272682497601996898912622659544624916581098404537780278608877508480879446697127224423589514471014733926956934163270405700527920729545219685313287555929879757124613448538630262987849548056682461240937990309740786106114397584443187808768251580084949227742775150584012201577702247612597614167473774590692847561973186091169622523882327491558675597977893738205112792771523790907713872144236228707654510185937528707599720024753541005574680931316600288166575930746289413600446441161014537131891149131632545138277043507664678305822451984404775552593942030180058766172466782042333662404551169398601621777793539228061190850485276512707319536439361242604635988249322185385534139415961708589091523368939171054222930975020686633122522003190390141983893544432146031781613717086221770522593147017520372735945976125761308292703041985991614863654734067136365163418196551551146353301314795395684291923691064769928248087312507022073752556247810172004904636877376927330492152567340233499876210757732517831490107689642340085269742271891569242451828267382159995723910573580546521333175974428511983416943238094234483228497732699292297946770828124902928492577583440112420205749441581861849202907110551775945105478149356521740823596249913447528016051627609832706664363225204347042921763651107940973457015459430543115026561322345592552480910860534985008694852079419611526113225263582387948134124947779217056972624807791850300240342046335807986559147933368996584240705032856193782605848214170833932022452259301808843035112552636985720255622837190402278574859695553238559961415607161231779099852500246212656419514921613417589579128322821521721539061492208592162517206967501497856152991559358097701451033063374331322784961950963274394910105887359366148548715069414101557096124471333449529089679678562690478783653855600601490033257467536498072837697485437491469075612120885774768893081879492041078075891137048340670030101361583908261253812893195243554653741372237987776683662270241230747452712651112056817422683791814273699921861841281130099830215201733723933611616454519342986171288015616183431485907287548325444845012759883735351326695638331799335410475104390530571633714310371117179266322192195991570179916932650677880177981492284020637503346886674119321645185142246126304823679781346205821519213801370805347832696223456099228941331122309050629844499126803298981334720480525298200776273351350856713046987537319786367427221316000090320783305660961541545025950673824930811503779375427077309048692309701326544189170519244053264193431374525529178553357135537734911849759307839545425022295740980445502807545337589173659868113778095150068064140843186459879989904983205273627965478192703767599610488542938999908463962491970256477769089220691627778982983966629922383694574496812589954147546362362444919761648594620220128926273108456170723197910005948614293359009850917993859757677529023243590076877911735198593860099801082679877862436935520253175988189245712959204790810465971956917059178829461172947697775366374144840779249504395832617133820598936765016503057721031294780536701415283732208030221768047468152758054430370326905739476994156423020035319427677733519092584361263206060196834926110938705397220689321254702445480803764048656029133754662342966412242256962628478832689142324862470544672876007534231610687489346817305476856675578403285298025235906546941380237917570672468294329846001805534825982407947871378472167096668887687035767573283309128950859393692674774231998345798448250444648335763993973998218461629803577966857154921338482942970587306345129656596713295307031637046952538934655903010059057125607849675179494036025849687412617565551745428343107571768592883880477197337109847931402204183578020864427185024996509310928071817733735359608713293553170746321452538744788791667168347189731667384060981897339624520227713916259287006004402774844136195295566112410942387765723210541281972501177297325326715303361017324737636571301884378698950162425732567999713532201985281091128077046093227025555090708149147180651144575627827512869534262367514063439041599341396934081484491043038430911076504483815096549407972116385118164916547141058453036944845356941031304272217544941832315387338170764124551968599941712810543848520040679516292152373833729305337621352087313709998526033581204664004633988686775187242389814642634685058751632099568107734107949168249405587691388448628916134825456049077594526465599882038211935803496990147511066803946739302943413531306545489760522141296354698299433093532791172986266703253111584131355777827206288286044186533633113215022291481221193854346410626333212349607803137581549127830806960211693684299582209759394693847697874180565490702006888328292436449545726086230546300017027934077560666490968407008169619553915128557968837433491964255601604509418937828224259297507696290822860009560034878546741874504118150743806875033378058572660538794453548290776176612272009200733991260943283079370382592286031029658397725520745240735770967209349770140299758595833443618380342601451400830661502401670177496384848537728110725033226250272085171213994728186623645217907646120532216610387132690645043419390572280720562527901263926042610528974532989116116032952236949772336607601514890842633859560909030795056797423883392809541043932874906097247954107238880590556644844955931303306272884550756849524509903090740605100210485673437136654942124556527465489174197230380502284205306707491593356208702485877350693321056458777674298080267764802370130175255044090908414276084418504114392381115292487746358707541278211569107787528935258749473253876370161753412698871354749263547039597081687065619043590612131611796673970316034447859995829920153395211004700483639510460517390717148022375439902398773355086426821331751120657702240655316489819892410267639910547412449767387473442701901804364687463331854100212746039398756346572018254793696280114289489103468651503795882867943336566748223094724845371752393813286757370390727143710588742472173127412116362557791519935875502259296638621597255783954855831733732395280694272333276292705585177116806086135721336866989990284832812383177351359779953024154234964383373694491823856395769696096245999288511875397787050677566111665454743216905068546785411618878849196656408247539227671114974860579930235446699293400566654468742748006302686334211004321944431813082103823442524786702117385225734655214349725473187251728613324256276249937209330081928182512418755034226838995795609137682900964163814491784187147003195755121809694083566283285674218928103295349546596814877591182211143538632736877058163137544085835085172315627538308285655273806835081257726630206558539234611594303976666518349644266119614127256820963502965727102606491905130455453827235257110001117135747203868055509159544022327243417827637073169664407588649313623680856098745825821248559939971307387131938335064524257259471246675655957170389628549607781762762718952298115282629969259419313803638405119309962164194611983395145882672300631213511689838421456160131736592425088131087466066502246672835171745413239184764708584666248767031267358625240545146171463410509373247124558090253507100491820688110094879952031699578860996487828054481539747952799596312715660988922294105279228462192066751560374992073837793235634187598533282366882937047713755293050037233025038256660804599738612649259951900737431425127489543206858218696393524140559443742070310396141242726717289311910054503032116565321262602075271002201257606046815169777675434518176921707526217381838093385552062346166568492329237030711021706940191559123674293216669328636697359802690407038133605421822734539638656915582667625554969735443725027857286284517860758309427120023433255607957620639788558235037451020198778086101661710828679568887418764615654718548898902050394785745708537227732496164962963436599640433989123372639760410833659342324881789203675347586282564104354764354348788943437054732349100341111535471360658073185084424121747070205210708890424460818851232865181055531527822682981194428562937631557879222455262932159902777135527913476062208012596131618879590184126745946037111332954041757602970511830221363239268243489737066579324814785037685768425867018336586691893264733520426673734626948853116610543343874316791576068506899724817407857022607064434582580161393732376379006578292590781384168069479965324693499410373479416697486037883378250919886509614925220588894086603551553964475461962088834663619130924616942118402887356478596200070023543360629316023441285128031113066931282162155174671675691209056041863736967406966242688469818598978997200330089553950453453095980752307163162392836141745377423060338090068193459103862951585173345788696490624431033170941826830606958588731468268153042650617300081620585384074454485891550147354073051259511496468699494455248157520890707356771611651081508782144293411703847942655541359506586841759216581875399285380935330784283014253024918664638504802092212193918629395451611387331293776213883798905711202499127316336224242957850386374259732625173735696315325824879152928243513674151005897063806314834409169051225859305123683763991976893383978108769011490882187341516585611878102160466070361476010892105599006468300466580298729687606795415809283223897105121337649501329247991303012009492500602065123432993363842810923046709508880310862693931433047319629616364071413558063760362226093746590507623222289227422325523702633029479904962458544262061118866424088775482187996041336751876599103913506853556890072737255522787623157945582014903089116568103572569780699179980211150330097514266246108765605342795606616655983622589301865905984070950010604272580212864262016636173208559192494984339518550316855647385832209474219685034698942258399881803722683229455469140647295367154690432358773524219415556034115147060832723253965874986830186871981225405595708519971645002387654209689186280201397685469923069756399030936106672182175065986056914920936856577568579622053709052655567692702579998834626283917350369161802601501089704299499453295506473616481481059374973038138201833182391732309957368442587673160483908199854018581234337437394591163711207670969617681118158362732049227748329530251148335601212868105103638335929863209554916366756760966180884850939293875784461627819774080870144134248237690813713073154683190917616421309652564720711656986646609264233187821069245153594559961332655904101106078416888548284657133624743819999137655133066318125215349223692835665664482056590518785319086199470750195307324382579486375775599053013184609034708035980580177261141681493162058416107658999461108759704939567923704512626681492061502875788651777283564766183458374049131501915210988668686062641306388639721208369035577808393403985807995303843119927884574910564646600407704551669312567951108194325047848854115934320927100673657021386870898754208810505399966463908467200347575496342492385707823414732165934735246128959311565624340328190094415805840064247430866838961508019341207750304801277119417263996426455724211635722465789993138435342073422406003731713781993400024113880609642992264863958322667249709043664724521468744182638577712984647768017448590907452711071812408314726450201215754621525576888383056425683369208008133336490185091178975589947045225698556446269094822920338770026175461806941596253126110393970556817299961536008661956678975392544785655874131089737249361848128925322872675813492233197970173064393322251061430757259435273940209602019029496348861074167189051700462089414884393547456515942891566475504134229044337108584125337179871055646049142056485616711205573514323096381501383985798822916727657419437989105364359747179512145192295723160559768135223209278476477534263820701213253077214164667532030288805977731328646224705078848884253865237342047564168934737530170001182984419247911937163864886210280404570252075400583613698413324223356698780109460792511134282662925867087892907766185510381686811440151845819656728519944907592152127652882574007861048091657259647210002343102748209859874601300072116378352201499116582251854583369602642992590708313462419389150899352418182549077348882218422191402113943754821184229982516748235843203901446250762617765225639648223898510751908101137957433561578052313807814948036143926328736202422760447716183646283034973882837176372963044266444862908216972564549542296335699267219658776879557251018577138161567024315476710881263763365207955175893335415832692630202633855651636041340305792202825903677898152443411794711138367680740358215005391323046080100435991016284506796104230990972135164739924041066996690639139990199647425261845815966857331949428542780379832013065385387810301274483197221209402027773336281552783209529841152368397678314202980951655549471988532552744045998649860486315751523055753763703326238448107254238522218794587646232764623332985032651136940026896479074778772037765426625864545763639275602032171791322356804749882669696962480478532664028420782940361763859623051402400649484880378304093556175677084160905749772699110301837831062169122923838345749286085058423552695963087109304760696657595311366997118180196878921089211557544397397351290619715123371785111317199991467705710525440543184252980666934770919687287842538972721615172532228139701154025748572341801633528037445164798117291114426189149385979472087556725065650412797079874529517223409442355747889902777730791221614101143153982637276984282243277030936293542805428270095831701569116116864299127312660716001740997994146220356666795538232662703766520109202404907716982542382741547390066591788019471006538371318083264116053851356186290919403030245794661155650441022722029268902073194781240486526051811910734683856233051653879894312587773644602825669797739733671503643482169973915152422393790765135171505549438381966149505096939657482740158628984475580305502018916137001253390738903394623756134053317448458571987847525938672777097726748873419901244757638622480075828287817619626359288866593801054429203050912002341630011052729017608323971047065716235973091465465684339575026393321504585513773635449984148285774219837703688051534360349574020983306809835176842030609775544099162943296020089158105158619192079294468631751801180051761686559704525082235750313882142648125797378588985322582796611925942422809307498764941051570979490186517728385153258315278602444291518055238226432970427492673370826282930714762516345312996528256266935373555986195387835367034884103392264876492626851709576406046779611469616961735460569004762370705871879360486480478032741738449356730938970538093210244984224544206547852987959819777908009180135958568537169962274570335468744907567173205320000413254932446307112380140003802578634141501534451194610782132265103366631776527499396255071911581502476900857747481601998800189134103284347241705713015262801909939632343710376254360033989677418677530578002260824794791930506121679528026248582284151073479727506409690928241844268844282052637718191855181370329796095187822437534547449992788241350826608968019891218960022921189985465933598295505027196729277901426657820941007411256934287322456598110609903120396968173316897382146186382362512412177259548965879297679491104599070584795201627925847702173165966119195268074489640911819327577505733324534419881689102872673024694785668567320098387398279584663972602709722625817282667218804634817794639707691264863000729679862675363312802604551346586604786435574299847521546659703057295741952499022337587536684743893134233285069109469919057534159622792355611750065992073687035238120104616345941617487173782322879234695692850037935289970965055991006719505862309651541260523313830533680681716333928438165423935957114913927852227827601354666968780269831002327431100033591132620782884631390555088398426509515527787863673785053597835423240307641829600214660631565937978204262538282640302532547986167727855858484709608982235446907831593238432480342461472628125379369138977681631800893249057825778435269646931141446484941616666211820907922064555818746288950410143555982029676892463917763578963608900674083074173166667377556370202757994011142659447177614991064117568161199487513717936441021566969442143266318722473169201217625911317319441197689524426017134493640645637192763359770060405215810341683849873398523149399040559821617505000824240271432745762599673079349352360850686457903136254770208981073788678805014985218039301787510535782000856834826171286932411925400146494394176808042452563994795402422603521010374805507440313052884333805972121398421542127894496625405059135081391339814153789033636534722218107856625086481965881199341697818195593190874043020448335217017538870007615209044938512921886246240751041887375100263921192751326360092024634793485678641507594148645231106453338581038850732753361180821916586743518055960853384413573834267766983246124846193397410383456646411522848464488524425559934863123843438374573712144385388908323897832456611380826047985019344199784701028525245932871861876466538970313825385064210233481344620882342284291916716384205421020875078612595280477052182747264039669649543026146936289186345358034790279925517186567620707455005932812614205542382394894742916027106396829259962815675548212420454275836992190311758776880055745448265299250230635179681804025170141059885516694051266134378581608355307107770764070575511251220602428488673495014358420324804902813738558259119011869327701349715732165974178281678304536953142954853081530939607628148345317591319926310453935201682395454023140161023873458497405591555533217582644756435479064674782772010466179132353898591993946230941495432787212895833089093709180850956240713480535313447074968795255567479014395850635346856334459756316466112010878379102292024391552201259962603388004737786237972528068402387411906023201401353591541951069607522835538231262570626064607610312376011135507198132775319859016800869248721362957208809085413236798252996949204796995492550045450883963572375607152538134534029946436828795348894689628288842271574800400383170873930134773087554094818637583569707054963953598726191205676601232814148541239918286341602488793631273459012756331447582207861478526385172298191083575861789573513434800963032412726366689911318418678763148239010242728467943805349176543450801911545027356926054220628992277199018514824489864027836368629508411964166578707880335298523870107269510941956293475195624760018469123339569039488483852680174365487164971636872982850294173717860512112901871704827002346118950661181321626398473796058044753616098303423720290083413730800580296041660120951889951909366984372712549265117407843370389364155117755140112286379221557593308883097074219427102755830330752083382036432134440687566458220050002224988453554690057552363857357614724794262092412212199153507657234882824153498677707750912906139621678608357698467031351884898943594770102040409959816627454041645825567234380022659912267908338468866744361502445210560025404235587477044019218703929022512393990494566920430931525222459371069319454078665857385572776141540470130678897112193028908339822041855315294554420481396950720983159048598388561695689332608545988485293900789225188665465146054893496468631792462143056105666723098025928360970649491740536597991532549825875060846610291358676383271431984749125803488479588469011037815118328903392115512487419388116925437822133304025274497026151470035400322222306188876390964538530541613560406194263598440084564206202033644497382734245523486720219169566951768594336585365828148830797384505807763007223355544401138293129691192992652469338124419587607225071094272941794814670725951158349253063100315663563380861473903712892363219853989088830772466617122840257811692024045438119071690494148228156701627239780004725787370635536897048970007579852351283276716685868120860066273362886902458598933251650168905618383235445002246938794999578572165352633869820571065853310735821817490835174838668308669034117546909532069303907339637520355202908106105444539501135640207920104390731167065735621196332628163278556578683577306493390619513556104033545343064879113068736287511723507854764504431440268001006988711244878948953505592953141439296974422542432898071595427972160183503910417674196539754506306444855837575331692725359168295878559598886625775654439835158005980472525275497949841429728396749015914947693785943770994419677576358888588535824832479112921850546660068574712301255372668737433631028159635470531121939956699121844220392429153336864922757107226379989177968462374336482174236376614749368965290287558993920818685685415023961933115224890759217098949474250330812703661026093168539727832406123495144596659423748708787904730765580078157429169895263526843066383628841634997958310554683896362550902740471124801721357669032929458461535906929912691492025228181174525679605141406529942374214156907907957592857460662248808197810604804380181657972522850285489568090717568674313897329839069050543286780123163199048113488297836476078968571444131607292747895202722637094286430609238770226573035651074132507702873263209302412458951376482103513638930253583245885331582719589557529960033153781113952616861779038533139060025458857760703231268003159010431505016669391496901641394285462900519275900934809216773679256931391133543421766176649521685461226602789939984685357989353485384895751810207352012402007439293424256728819072405520843456171811816216339077707712948796059687109005434462410286937825744415448659686177200029907790784313549825728240908369604989587942969888557532475876261292282664173543868614574173594668192741187098137208602302843838139402936082657941165792857421438174653217031088175742099948695863960678835753120764660616735959950868783378639431110974156536291199068391839407242314143847251129768789525107728692374658497051428256379733142566264123611873901472288571695582133193626137747295277912693204997358686743061673646362295154459003121497674256706721438981424319806756033540320762804013192657357240514472153977179757427571910050152720057120009401216698206069353439599866562887547119356242347170082134676911128524080871653679474175483653786129276309367589710146411347218268666553327739720636450810179196874611512860510800727790336376290650235791536789507927734495522411030873517694901739468860288133574301281488699426520198737220942543271877397178702162766334317519649744684464622859547275119870327413758534581994539206867143794924951871298671044438457660785583978658608021466679465152734057009267570721503500620820064127258721260619241676707927178408748146858292811574115463101371614969447504468626809394504724261422439720821007618207661535827608514780988337087460311365913765725790692113571764225559409816560328080568449921261410963294544530503050146499450882818233365589547385048157194130616867340263635210932814283313543600257688390375293475740308593898233753842413173737075860695838891651758764171836397976694019962341428552964716201548570940211440884724361866155988518464639148882359397118980056879323401692936810315001370899596874548808607798272500301046070763652356609348146857229147772306973705415740669572485333243438821273103918809129579868045026618480903388055402394399330851999670998705807279508040528172286718343419003849756254776688102450547374415905204491685496116392928881320222299126807174273291020737850970504750714500007773498019841156676774448139894495323724994250783588771956737038981521781748920554013725096604954358174445013779463743560183382005240028223722684831215629287964713818929360734328540521674908578655599618163337698804653225926887795155240930616249523084262625090122427010659852652759551546938139086729425608902507281881225618937282883716882495529650667196206114954872843029157730179338703314571020933716443617814326584620439266101891484459730855546793720319558818327775793390289187565359415186954659136726158058560456394190032497030058370285895170486354874502697497883412809346713061677309892702918080534618710478384619630949279457225808695406725089067267054945066971768715508123119871726211131517917923791037216294921019078836531751205799512602211693217755287998266007383800425582936723709267486407962915361385670605250814023519088647967003075464434182616140137319452233093546395120714984775921769887903877719069317101138572039284493949796727234059288214793731508429429081364123752454208470179110734530807083186936914869489182456910335516528838758675900952129674770939124580899791471434958696045422069164983171016836422564338109931983109557644082152706092350786106369066022870490930553269995459911680286421417936014842815069262718295838004148633915152887456913725738800991758635539830705214389338835138459881435218200284244842483907068427503751146446233338545823754884472778190176010357690218073879236999964916101256118233431942369443026072588437585193069417629147675664611536356999543938976246238007539168363537267889215277088946344356463215848858814498721715261082082960818224173927035069462601445206126842769869720415103487207354243990424433955406092379542255479835632819421102460393372821352584361023175938884594009313368726821565335019672609374195535963639954866452408208867974962993975621901039217147261842374023336113124376234561204859529740339873089536437125324813187535944133793516073338443317685331951242349589042660496143187545001660990983173298832820741492191890388735944776483554487525385069115874423446348508924566836122231876771631330921182798611918635061867636982284385224404244401485811113547929852259855006830681515674651762078045758940413461336817935886658484636294428824661324441743517755885294087958849859675399573868072617948331955428778441214671567984295543342408555319137456369834944479118549236134147544891763582965371968075669441482406780927593285495108270004860078796445818559073013670314499360656100351600817647058400181325721603769527365411978801546209462800407050975636155304978222187143295378295656646164145670542777882612831429202729421143576034218015967844779300324570941460746544474965091850847977691134222448825887822894008887980445690107947062870946107728615663712446454285732708986791119347359597952287147996798845342024916177246444396613873285796531152670725592361696778576294599016367834063355419480657881964225277021733072921033597278280937642118295265772372995205528522886319314829281209504358525838546510568051638734511382479148690512817010537729528903096289341599980643929522356734314838939399188141435621022314868203231523931632178099911123797984711020112864073458704611799822006673787988159836851933229774734278705613347006165716129251579827064646374695525858307727297237663802956666946759064564096397953272514205913965772635531034504005998858605829208866242068654537745402220368997861359464033656717500570236182444905069918235758216373550807095233445917720341017428230468792774146520778266644323763817662970707670921826660512853218213866519724826261427367410300023370590496628563496728190729341315271930126145426734366074382826740404442006459241051344109623366721612845306201453313624936070878035628007006594326276016188247771724586507992109120663100324663695880865086719006767493025597796628183719299165325764810674165761543971557059483860201869781658828782144946215791132066488819531251165331854466891821724117152792708896055321319742716598904680397839606389001906023586261921729606030305416139445924533474170340645695020319714122227384234972617193726233949445135841887177592377481279536591455645593085111098013258921703262050951385606144651377164392863012667696264249268107090558052820765645757690964249060065228231651572477423527675343806084413402698256645381037160194364799643818009295111498423530876282186911486363254872825474992654345436937506716368266116661382218937923999206309204491237201342780062678276272843409976897886383587106578710153295061771110527789112567272785887570836138670643088722906342052368362950644335009783472746657403059454922269442519165870065145462686091752547671891222070482042419947432573727227232920829926283938504381525709018224655384457470446384899822011454093221778989805068918792500882327468376947675665940444785835257697844694837249018743426415206127487893332387171653949386485622376225077135674200286472484537175993502550557007923766753164965906970478593479646063641127204690813294522718026796891590209491381719019825927456167090951036287734686713168246234721920918494356796420105046792866865528753564738451118687818711722585968765897307810347037594801363135781362773587467071971820760674885089690735575279400114754126212573922621616220741451106158965914904289947517146270899161666454285361952271298236809754678834041683238561920489040213350490100253802806186416314289673372551155766910077671326532174257589049210580692204718689611836565044687576794855404064811455637729615609860672074108282479230332394380313841791642050903673613437942987212969784005134812144208529449352623127272920059318290479892938584954234855985189012871271210131939397726254222891102674037869283690414024870553343006105138434504517846877463500409718953835384125582062483396747367983210447530926801700738990415158771100994852385211113972167860801577997209351027179596083087817797559737016117201179746242589185104735972071852054139519858922603332629871425272316077299679476948875125943902454797974693913359047662254748406384065525867678009720379289065916466806267363943845816170839635466095734846059177759788735018399647546111370674447319892025730924024931763350532685904134170658823893387708845935346720635028780506220834479198484676152474832449852982334675196758806463326678563699528895533392229702720820128655268179746518935247433670088609841975988214807429467400386427425956945398683728739233910335948627724533358452969674734195826226862412326297991266451226415031233094194427233996567357736093858014562152818035891946093836708960113059916703455580776184890134513058503417726226660017928337410286249078967797262342756740560691291157838802613311200991497585083045405699898736683474502161362645828602809120594916114506352330364048819745873911738291766407300504265283134352742181855049165200150204017480190561787159059489356929162583371964752643100163629346847859523385353644677218400731983400109772316685475362172607672100616332244170598841788908755740834186352191390749925848671329772548035035801129870225237237434772261691983725887901299030294513322450696041285784407844012653088778326819348348786800101914649248390960341336181010562472201638382458751901260972153839261543488881088005110852330030823414173040889541743070965103772651237885402808391831113480191100383358402564695245445104445030711440006615196956095562113950874640074633413152617050824518437400358092607444180489575264322970969776391380922397721935354534774505362224493632077480880290034834424082746226175128683935355615484934947845297369148506583884327024496095639734795143072499992421519020184644394393394693918727297605543891996508808661658613244459746634651474412974860817734462928277751520932411403161330580211664110001703975789440247141069302347163474372467906232132846122868270956970563428494701124726501522142660239342734347931655728523372109527609488194648117051956021888981036986205013456109784758689667092078933172785821246904779978818793534574971904133554754554990660269247389530674597358916363894828014686331133977522686043431597313656213464646085664000546739762072159742191856932537301716029897504937020165302346174891564290307868454560732912082613223099538284843006170566444730459704489871351087787099528619739458914631806826789488442243946278901272552721951666235930142407915759764964642795370800975196537721135516393144001856600168072893422947449280098538107652554071603258622167153903346611714038012280456943529470713550070703700508804837468873490576405090329237833599127766491456126812477769563601152483574924482759373974304827861019039358606039121454016563859851441425623469975205641241527491873499907337663923064991777040272280906263331333284831019719325464878183193597293752383613881638840284458092171417413055050849314883845437357887743578555102998059641317301342899360772394924396320546411725310188485471577804153145227649705666091678704208794429806866049707592874478585941643999255402336084296952978912272158197022479073018569609806143440227734147352149606058448727177635108840376866016776803798579599457999734030082956582262795153645933323251215205911985755458832884053542994585666539704274518123562904453890308302127877744083880875306382893629284077889865576330175344911954140969102928308651625796740889940789977550522734254904076843563453888943170462772530299790299795083590391322770976114436413730332391989118711175405739310030699660105184633228079173759637094756803958177590023629235133237106573737775614870840669228862199060352516859208971356279709819325739459093681376665978786051439242691877409787770222285277020603739793506297581777319203811988281235220210233232790987600093836861843542478608369788644975583372109662968075770731409210226179736274466894447114518464736607939705776589083816240380757655633162439713279685979172635010297519041961371580713484293219863539863402417491225410875813505132454837012391999593155134272200113922219656510309257820263783408166510220161755502294585460982799077903520656491328527687484783029146303898805676618787921752024792222264672549927381805984184282658837301857889653504103979407983555220812856661064037170743155452196681884123886177648316175489981262781456413483542251253531954179013351157411759913709223470771980704270304674567128841821909156842241566232168283670499645587139600425381956155532346686152157342535326016221849400416557642014645911298189334092833951007772530208696496969704056410200829577004974589402362942639557487088081233198868965428804377503298920340671121721473626577435166016050615582195208775707269859656234125247091900204498541398146066982273581717059496577658081542187098088555490566535038761633074660836078800012069432710391006791232449435482796854095945357335928440210153352257745489543434253118342252393585142162446551588783008918507469076341546265648836614321558595868175818005129973463270303556595929935065773876952900246071500824702500948803943527315502483427670665912253548140872898529826682527498972948697870668792438859387392526197818942489303479265850806829915174329514125026644546557269873421569593769188397638210924667797702575017401005879073323792450162632902206178611727777297318591426508168064855907511411783596236812032730570491526450297162521272725899597737523061821740842801779202871800100753260842128274744008073363562356519336584212315686825461965095631694765774633687622251608056049252494776716821430624481848439713024694222783499560271203654566596962500751368087677656027792184286403744294288662450266247353675071436589434221111132372455470238845040132545180328993932572673740774872677001758585845553352301791451865400892450624864477733559453569507282712089354888192792947497136000721873423442509696696168243469359143476438852891189114286876551036135390701509695684673266266288758889385668656236160098583489976990802874255985695851563586456700625246035570238032553002487787265917583788068343205693858659898074158815157908020977376957658364802962957237806783041236867235830343755633259841932230174589575064570321759926997209312129545171175686294978161420389650433479417075555193274110460132453617458500817574841584652220853376244931511782830584588096756496341648479435966331849773940889326680456028817726384212903065546304391067954939449310107313383663431823432674540527863297191917673661575689983440798097309105784197798861702626429088536779671132365646422141262811268639388623898527437039981011122278284097674461209765398836207928171535075427217009976324370666094308389231511605429243650556592746707192587843926812059746165169356924624652164413116415158000469528970445693391462558169538482863014215338378082216101626653328346255707292245714662828477745102975267759783349737573350206316244945458054721534178275253781867584373106181388645350811903680397227818725773966956103507918481307798483661416843302418693662729312354806976901547251716668405764901049823522936581254644804230604817331995389820418077816389483178778693086076333072173722658846346187156838290109968423834880999902629027218099568676204180148920557076139001744616104288569600059162497187888973918330714713018210032418505164188733274200895669035240727495648724176639756247149778211472973708787696378590603831431193989453470103179407056548005095020903745709377883880479840785314020216440973034468777336231444233448047244576237495604052526587665448250104672250072027019659392858884776005242870266961099360902197328812343510873138422594359637869522543751771036597706516352130847399364299165258841711753685726862819350667998713237040826673884463261674180702655719237136676279871356945363813618155638275413372007995785421821120807777559251060944672734189844093613481403148498049211080939822764903399925495162998652474139629767091187378905908292205099865413931468098878923626173522017563209309703003055195516507757234005458977140145166294525439416249499433566295130252575073574715882810353570910671880745188034709791143020345984110536109923919838386721796174003795850660127920058597602637205483245396410119750721597835165903557176141583610829669627579308347150777008737762310210575455285801777942346644746227241853574096536469186397501199925310973636734636910670118126212444602264683717598488302777528020479543088485777535461477057651755254880240650498140219555915778291736343786404042118196359379831302364374052641139025735630012511763162815848090183015647337857036962783082860249684699329143080379804898333939617800943210181150678917756340128620539578940911703664903506820760443441642500747216417768536921542174591177652809719651974607848430405821791640847166891788736262096327895275536589909596967263337833082447702934673069423391858213191364496350747808484951846643899728542438927251823503508115032953904155682591071722196952882271042010070928344132656719336148408245960110195585572487578718996877314053605525921639516697002396922949417021344496110126921482326729145081835028420603977738618996238517618884999610608032348751509362624314996990293764747091036628540800193676946692664765292156774220001757133042368406487789243857568658138670843768446210803415717958989610794359216635667094273892742197818733148701368319911629929203034401888596642765625196845355304622424616164171514031582479630938136594464754981437752993087574598541093987714010106463763194033000049883164013319892344015493226787816177236604648746243496658622803181018829000113329876273428025014186575349579808756201324107430147193644036924501849906513470657963105461775546370151632097486218780303166482322216790932168974314427328170289921504889705975764879864876679833462894018494997809917375725912418458418598379206706419210097896418819055134550211300823235600327487416498743164018615034868294621849635714514869035207149032983058632580076085564789793623762043250477817493436980296801526335411235996165802783380887729339842908599786360001588284088091245835823442102187824420935549586901535641627565476187036856975956984859626425775880885994361445045390091046919286507176290833818541010333230657541076241170464284312853628047433088864888042301290460056112083087724589673368707248236975437792267162226499879700471508045288955367278712025799287224932074281156579577685318785337553847418089209964743783487104514154209713599861669795909655635805785940890837288809292230999498839148932823558374881266294469009319532767192082682492073520390460862100928436141339840146945425970788413910722402507584132245745862105731836522339559473487045526882495547077872164056699636589427853403358067764810104667975600550498586859440831134646927098038420938861539102485575090765312347989449504061072517401375724343966304667320028857864522776052854263957458943646485582749991726454919192681747004496843400472187973330406461855424214888854944135641086082036040974612988246719044446375442942164379624554643679839831064092495713160687272489280399588881028197359234073000807853158394836761532980568033327297577260239934152562250643211791706218539722117192282294071554580266289013625402943354443584906895697047584709078278953827644219679734826362619495680165316747588327271682086261682695895726892951851560679507978482189543721616436301314309438563758347569458264092051281757351238065629130448441546219594105152979672280038788981159249874535290556836352851894115944569804577067061641522056959775538766948954631914096206879897049086844750528870311297022179097419559052926866732781851854353394538515093757719004379180683861580517210995405226388699480094588968049047765775480402623735545880846302114724990126383358802506534004085741194889915064032796571513143734233359735841957540128561252363691303067257768921953758897259634388518749930201157325665898612662485249566328021396622799329934029091926634439459283439824343932291027669276354949339813107878817788888752762673489747898272131453373444005933975957987915651110513404475873690228280853633040318272390954958101840145617019071243667775631308231919630472670996415308674554190627894013454667518177784603168831291547406608129854552091352228991604933668617960893429732383171264250324064957399651344978791787989101825707403846780853359512705819471942071432241255266552940735706907173155634349981391844963886450886097717472460115092471862296739833633174966714736790493641765545115276781926022021975498319866805022248353797588566750416428940733741744549062678118147458368073124112071510078024254457054724496475561830751223111783857933696975765882355148448927776218647557464008951824980642228972250629683919607316576163963392318855067630810290229141999803657635956757284550381334067505384743906289527237595430678843488754539242603524852289496622292183468479196644455357512222535687390161036760553384961422296596923267109668681768697376649042041274540848855546910516735290039084301003472839401473310921797216270990635652594597169942997098358558735941788655323466506296570575640624890954135725610989664784236550899973906902813657899125040629313371408725463657082344147228740352248190769236457415803635330771223567024388922560094208484313828839477363422274973742077607297310120990963353368748493237410453954350746327027563610117731818440897615069755754461210500434206123124845501366080380600843764654274360618093258157885770562144955173615287515149368186430120480276860050105118007693690096404751482610390019886091088443140985381701844601152340699616380538885012410697541169925649915863216363425889832703426943622210744522794668286019362284396633358695855765481285340343978079097819289508875829355001477821143306829861444696697992596292682711944847558749646030036453298344842508416628792056286570005693788483457631306037265527515228773238747866055406920124553970695872913270456594949118454870051381874244110279673113105562250689561316484848984084688104360188313979438539432936978735091221429803097462323200167308383915601409505846395814716848338161198867928413210333420075236729750767915335159397056004722029621652062445522931694016229028264922483969905621361188928242906722089581142216412445910097950560290686855166972360008371952712015629065132708035437095945346753112604212620883367038938083028062836282699297478956971428952018355306439588818199456950977747221395513509667455450357243450331479928692306120533412919962297281650545557198034006610071195884876626833659297996954528643408673873126831274894176612087847319295711912965724461526064063683541612032872937638703551880173767033372534733720384288091344873196733645560308449830834091370984952304102458945476482184807781418832259688961702466241453799853223876575740554863930308895293207995941821628389630703307494742053471006423517104289286738014017724071143309980105139883915086112136074701812436269174086057587092308407793841608079845433348242464665743303562198562850655154470834876596535945512923270156166376293884426359261169016223513573549479105721401075443189040047924702708060235808854801723037483069692638907789337338914601106075784672538285818732684984473085639647703449380895283466893614410792699008333239336590922435647381919942308617959366779431544373533011209072677852831647911918833544242089407099913253759620397093077038789473778599221415395447109506987822390231717174422010419570132939143441224348055655844499820334972562282567575362837757677319861915993421912119050846045095928327942325879507994660019358433938670815797861716301877471364509713577545520951365330436634481889527685496613560603966836583314117446711293509727431973893529291092520247362126626099978764708448100407167612080905683444864066936056844991197836664912836248662907383107632839090720511778979192793990974942116825563156850016097238940928634586789303995747599421900489378270754468956950348798241015176865942761443074187013364230332415868550184992084570180155347112859357337995529778764389731168644955471849491524954473369230725426754088020362747457100410402304073543667684824711743197446632728260870210239234921223067226416942170010958116688059007104832429315486840803050348719923062680637486811777781272701183356145928324472592720610953274222534343518814882786392171023934352030703713887169430835215888023431979717008753406124422025879945425496385211202710006546290799069014753202697007886248346406761571475424745284143517389992520757579915874251815108521622510525038854328537831097884714528189076259194364641269966476018593090360166870575714869870691044966856118485596306025165910343410932311992924239573622482826978586112749686182380357723916437675652382123247834096613528960445450699751866680796887872355576407825787833556568867427153475590173245105090057091685569401738500802420273335714841469976591910394697308353718428480028220007835788935587448558364615429142362115858364666143147803247483804707167930556138280420158241595513069293339051768660777589425217481320041841613993690468316137881955572803893889488267942521799745860440330811569952214904615011495646959523069221364832171819992525170861338866910742614738255598218391482927565611859006937451354384124288495446537798134314244813665341003317632396634218974734333022566954014770965285632859479911971807910021926030305776006502251720851073929988936160525607303336364378910552429974991305899155851985578818427835227059986393276730631875432477911207859001895453252115098201202081461137206477049533921723912832027466647978131333459339320035307008905085539239879323956905229880981720009477166550988383492358976178961167284769157261645974658592964226559069890725470049794179206423062973389396284319246936836026803476758065990743803397869813346022192106172022452938305307006817710442251714592227596557420783862656517555156198965232024838548601499548027640457080552813595477752588720334270377852616327131119161065277204776385844695933285280099120834416113918433457578809121855731178890400402719035530288352354770699893914680443157958983162276522336380301848362688834550566345878380287871357295662636824237189232355350314393194964655424957326603491383568110094139595437885371884693220663235454593532320928023197253444442113761282022692889630702380101228483869333931762649999004583551917927016864103651800242371464580011729119583773154025168226650989858275895194115606033510683756647800875625293477130555351455344584206854999233205672757862826310719380758018339911416573438503490197076949737855177117616948778361740566611811396204714080880170206470651082860342279262671765081874988782562473561236294835575253953252500730159221060839457556727915045896459325583119326153391953275855796999554109208426778742402131260581858238382734109271812495651085224370994191390889649204990820064823798002151392568403823161089857466177510993507658333110620427970128410991933836367735366724684863178577941363885559871661346592589366854064659166937872272090967358111413631239278536461244328922850555244704820795483300465974425953077590112272603995459421323566996056785518247535178312365252567833759417181047825080780495151559924304551368012685831285516831443431855354245450465086000687798742125878442231770851475631964573081331538382667969032498383607846334891262668451149029800563494208140708001954513877490601872301624679733590626702123534469804922334564524675748514369580011153730601402593342012004224053292510414700400001844300636044998723313867687453351193008223749359371637482894114449293459167898673413263496624774018396076233536595766755105944496415876455902334692658788529147574023927876228503673843715631617597367425269555685021928151814596620811531708735170925230044460333664671689242091053240942559757685926972520997961147839259856625574276844000947218638098599791289715276389474508498456420903259678339484072603744762828915429946512227093595192178963237227882541817432960613842193287464676779865154669834502946970406128887440053039063939797940747834532316261505335325197806564959969834459444799464129651693318426014665498341119258212048871250456929153730924576860687483698638806549622843382868414343288822600198798525803671848189127361343742346354427707543855723086571962471009591973223560052038534700438427893226990618848996580900888674125289188207738114955225161103348141230101893567006054914393691457391824540562920169484618694627701809605375573256628706507205878351303342815701639444018241042437292895562485561516573176707705102829535907917592204470166229891118406957317943193565175552585857311976755112282924613453383807371106623993600371848698115425722513097446170735811931624159602398617881110691371135782440817953602775279811742560099172495743403992628902035973974960108704449518240273030285605027962769156083660893732417432279099171464961812091700437943830239699776255318161182782065919533348942299392857048863596827088068103176377647507753481725710298201293097883939802748691243459170438720804274327670117252891596804829586849853368388838813313496985904436563094354820706922022548483909121061636503898330245665059774636633954434189859418587539593946779005864160976458376497109113528624391499984953214474303454170378430481926101727015444286638069009800741314989686082804017229940526542465897733272620414991564901318891488719355470040244673389221898221571860170081338953793409760925517608265489491498561353586638524045030347096693235893354411036775661709764165029536214317112718840104149653446039289363505304151189412118897959395952366622212447405874673287006782441260772232865665413243574419989233957705088144986613654213525888647210699118857946765597648472428995589448446564427222646602263440171002745516158913712446503736997218916309785978973561748419548499369793193611099251632826324413047350486772425181836112491577739309141697564430674369034594186393521536161093034359613890457208167846679349774241242156454121971333653888978344915794281798665703932135882921202547490020655884908486763742100439982038652706740729001292324489810285432298506388536810656775706993811882536369012292912631025543909664661357738593430186985420629048291059131525024199339208035400054596739054586320663575740471167659919453571898824586883932595908982276993743993145111444022067362529509923805659223871618595853687925364424608599539520114615661954052810822506996149553791738358467998916319578467125532935688727920833820367611439811380376881887665829392609242319096197200728744478465698843450249443815641950540011150733022656022934278393331824121954172995475710656248411696233622039387943757375433969325925052435176780677936993170854164365386412785922750421264097483715433624823213697836231872500005373383170451638218871581789830295887144025417579092843714416338569619920864158127411659841112244274203170868052964233782701200524945128569158650159288040146900185236343573420767626358209155433206548568296839252323503412720280882402351460389102007924974336465341902099597305522440361006288845934689861155074208238701201313544545404998402445301356394323934819286988067548326018822116848208363722179248383597065180150731461074313446642069141098157694557037657596947532593432978060275623626316015928099972045869218259306036478185069986992286075754024484067773831212354725797286322540104231394494717219065273910665878561729457031279525915651468593030739070423621279535432551150862354668850591757598604203614083940045455460483748775717327873904687507686317366279184838911458650189036129364225145380585171105671931975851033211381535842146732956326550690142317791038268275590255911965268454019187871103083260475163751747018463800757232931492062112909094295644592073532990352953435682808619968532214528515370068769253174836921465184500864322509096193223610890500681530848631881526251275660432842597023904892858174435905177294784943302011179128359800970738978594519298911261430452972736462831055228055288768239306298570266469058601857936828995462162230898622050976579375690720100738176922496393129774109085823814161641973207602658755880934490634332036788801479992525980912353766254047941829579997728387214375334567311241285291314797235161940158441703766523216669425882880828111690943438157101468819297510932485060369412252042171053560078596822363883377902154736165620768306704483235964569274139766612868393636636520312012086308545881371629889330338431636210314657101798490734292475084596691196930776405992401201375871830708920577771494970613907106278054116554983211349024681896914547261228633537915193513930751320249848249582329846535315891477427498692448994712807701313319343177218774218724970790077814075308657761786657129845736884816507352082705991144698704300544667193146056250646002758547448305110817244239572664181101682529669259576763784061968862623591877691518518922625158629159461660448297363631638262598222051856896808258186740081387488227273738094488054567983920787721797635694381778856622854338671607407879979306420615549337217176193379853396879471343984728920265442901659191477445039530800386494396388585908002096666280029143053747013037384281416238798386542211857092040165155273656989446021080633130463376523910760103652782195313977921952948500015953232518774608118601549010628422003184086148052766366987670545376907289621220280385381817815552449294598349293907560517791226162859815397278387728383606806691915008710138894964807700698422340217272582928934468125228754854361780652603524649717122398425948055289684725536836007463663605807025291356105269667064860753907293834686456614639516843301738227587953558279636715786193253596462127085938442778822918397834056674931626385461023000601742041135280731236943479535509790757106291228726474484255237514120649361937807088737943400083915196247778943522892244329080719725094643681210732679781902904040965403901796255971313693221539322477061452063510902434413988722262823089069299726434168571922745581069608959402556966856861498107811847878427362629027621189150922069001596582938310399181047180894508274336646415647275886731256159844326984694676141575038879845746139488294267835504560161858347713519244746007123560480979873638485572738207634474004614802080130396105083230100749759674726817636709782247169615650283826790795062320965861373565571733302544564654540710547829185783813343893159519747146708707078079600005362609371727805276302421234670195968979698280600607726362167657404919098334781759120954268719121474265119147679756802762451519173049607551170352343178163754454126547605726846080036532544285780685057848632920804729943425572897073206400395971993021272305892453566864100322551648597849323310112887218275370291048410970868056261759822114100858347453631234415212863088534434917921939558424481836437344818393407359671802811413526556306832158713592155412113260655065814602767564353920413266617099192362051461945930164415289524882844375250587745815870243470979414285565657932525723406148680268659088349526731365190463188642656913167088382607197690251321839527453109229917826684480262792763525608562757107610462285645502580575180038155169959315215635563500860079668295099886626562331682128373363389504001227233843091375473770343105722571441962103490631514485698457908572424174570882502204122500655876108255182512127419866966701645015427034306849230130485185160329663917986818479296401204534967736052705867946751170015539865458795869940297012030806289549411705095310080655212816298013779149747956615136020954400557717629201894847893424037815985523748966350438519224769846162882536290063628797609859015770229734590449889539075433931682547448196082720182306619428001563010461722699881864576186411605744561147638763255652178208866707229886507476135596805721121697863655612995409099753018918587641497453423062368971357366606123447663013210198778623460207748165644907093849107509931191432736822604550757937702820900062425404861350501113383217215029816820766976739844569419566896109114520678332820980704296271598023970644121353891349145808025138065865967065901144722899687480752175292217252729729695664151315351320102900201799497776823975180911340120290029705418010858077061696442260314810073318753214499010622039872461637679591782987692823518768390625063432127409419418510741603549932869843011613581823592743986038548719782072119667617883462669102490846700170056795232126295286816716846328056962010867309816498573296518446246591152465511848604974360797161073327677969872723790725786614312538351928472027664962698256446580762066711554548318526576604654028625373863201250314243378565026968264648316256611752183268210697245884317849605004716102048846508907554941168990607121002888377251241814928387489267319976265174996312566803241152210855748940158502830951336825385481432255812706078133530890087805758324741033067096123197399152306702672069040116696962777234741035460649600802627955935582936955097498901923685081335999212807827974574272805343361276159144372351938977960209033183494048110584459524487370235031338763391120221837363915964761496772591863478226375059350343411338886713228509727677542305800313334235952485308605116648919693841338497831268907677301112335546735437995116515308387377802285653869619110579467165854152912946151214469643591289904429903012022740349409079165872161319440644363540110592885008328201685070867021119373361387716494701518326808718006396711413203357526571580358224906907184637217152402790067332469200805354919452014135993576946498124737348180401633322734660149746962865235871014001062361189089707507119039817551420866592989193633698892527687943715264310200191553371300562165750235839513859406266523216760019175200836139921348950039904308605890444039378490954022233190609079350653420338921388461927829480705815560452228860788804475632627486588880361419386386015284359224184443721757381053571262908494330439693790302820036767459906954073526069150500647428029919178035882125029419532891573583506711774612625286972827767335543949548827745901847975089227770503974659471737934781155543953334202178304694337418487658092003682916474953460154081508059628826437523777007600971576734714558755496781118572586527434103505040306804877437974127836447451712189372339431698946351936740385127810847278829026683049887770030073047385882978608501348301721561501266168376893164645043762603103328080125066911553706236830956498827461133807818439929889275340076355544950443793450760708753442762374069096432629503462853314445791096013495206421990171966596067658677596794268859798366475284874561760613965216545104913113817480106445923119633070322239659505339384744971947595986107900046515412026887907429096933688539379994499564996401000578946822296679163445852167489284644673553065510557647205829975623592584141791484852696702256667039339514545327933951188478979032950474696503314523107793967960412111599691156434960046250268540177433511417776981127005935656582720442713237734492486491197932380153650222885548869774022023380387308305724279575517646623231897120128111845927140831325931406367245071960789640782360941647542946580195743300028274541140077200856696234917913540600084843846117921726546672075635105775886250793656758811344098011372501864831466512434919409757415282815095919280215931260144370899698590301259773064426932457820855598033229723312819724629736199233680408376199098805891593729495094280952904225166212391265672828633440154707530015454773189145218743167235238710687391201261881968651084813723267470110289333811802542194848722035747310751621018624507277609963516709611638975660761553647851955500536612359350464823174189235314458537062957085478307751383368812698568117889817729905319966712421140241614184437633086359042954527173148232063277120269752603576539356720980919814996665727779945901980815831985688145903062227215962826841051335237449514917337004341814430409691106345924728090655008434185382868476870288400980029809695883153937577403445009892665083221728671807841307993421011156907359230970176872631465429716695527562819326408465247528612478507847937753768457951809612250063639660858711466224905790070198346476869115631030200936108504484583199145944088669262666049638568829281218646646707389931747759456867811809784527198624789067890890375627268559302081028727580932041050426748341988407080536877032130897322774267688396924825966865065267584366978677058727064739614573071803564652438829458932183512618632474879985460820122504261261877217330927646013640666802280262807977186572068755124957564293568190653770471642468491234206753145278787223830602072908424472672771003150313241894958687980495838809876474284411989883934714331055373750564554520947063383733340289907558692608815775661034354337855337214076633547869108481816154264005676420850317918006769247872738582032995758865627109016002623415028621984444188287506170363247916825623717741953472861596568757454178633630732481562492879505254357129409555592662334912194292174000116576433878419348123347233871546392219216614029857558461393310978994584040099624065075762397670245554306707421156999944679788797269240067919023429023924162371998565235696131295034882250052328760859071266904886604777968753425400929096095701161585687644261341291022750269033776659211312413666419908482605561752940136865458485681932622772969834404075405664887485414251423586844884040063399972271865175057778293962841657054075429605282798869039706610142117682873437751920226428439258912671297966229491427610053470082717114882091078667486288009836676592617421989969676372613173584647835820047574194212898666938758347888056080473335644511374383732484846337225950445224512701074222610905430206468323006080139548612971558909429406460837559181480674037727503730971168138152549064209628755687222108722149453120134094021344934458970113199132534068720959904732523746324037212127295031227095985570862901369555343609827361684239199962233704551335897455342468223246894445363387388939813707116635881082983383107783271877423570877888590361274494317544954694444705075053633457619224668267969846989023777557557429821909113227307538147355978808548957425934299242276147415193130940466084076749375192893746737943892025953425274737215595944651209186163999231015270828462408518540846716736102859848788560918114394523269627437681725719362339038916206195138839332290418377977233780264123074941524575899750214707777903378157963199679303414176873085242138574539525767423592306918470159131097010173552070432323484931082043840545301000942190979048922651883568384110663818371145611417658435298103037060596175493220529012224156209816403810166531220554205487089774210027927157623546965901892648924071180848694547936038572906599077285015618075794666396121574817716500430296826114355252128690090056177635650986679018736711948349879077005271199931727603077492005711153620037877814773600563308585961991455887475453598210931086115930356349216914790142161799481299416979912343649676607200474177785715800979561162137218894869011409953491607591842947521149307695415623945708723636358868706676113166786841864588615227320293341857370670821617136259017731988892737920420659586273484186810619703590758212385768782115324106161781192478887448388399769402710667183041914448541644733302139038211940600715740370046864833092180714500588961128811732463299480716901287676592944782101873342691002490373735096299160064440685563970213811962192263580367640712887429755657551855059610450871453773799871444775060203195954607924428981561475863428458516332435451918228001760860840640944482712094606744453231412441195896500346855635460165697848933956231130169847503663288941850122378512869394606732246884342956343631665663371603229415548595839639853132842924617318843124339919135585069282383539833404789430220948362387233031783466688017098359946082992056382233373667555271029583549387386557892628146640001575339832212210547073282759811945423740061151560805417068587470161432095925690921272566562584246629220803728997853696767899181158974067688496229932110347228474030557438087053048607434053202752301391828204673246564998385144066122108742567172358660523026119739232669127826371656288478009633339418691240856959974401745248946123168338778045280663987632995388814274242387826758868118805902354048267323801300149696528465606300323078827459553401767364003447981495454912165820271467093044793898267764567592137051514564736823746525115802215070704860758205040583858913794630060788770394290415895260140095389721560901144061009100536071211012021320233000674691868386942218729857754942940982536868963864828167207225627185703274254373436221960319239493383995783035569165813459375083618362466453361783266478888041675395540182206877699486223402447369018577663089169085129656887575716241268203969782425207235963271797400978198255955012835748335623887119462861985242261468494302609581146649146709389780842712699691426342493559210984187342249312192692084819106852575717675061162125011914953530354510219319111863078503311877768274627677923985828191288476231832770065978839660959198491534083623648691822342218934202328282104784212724015342536993819247365108976732666380001227659804223942985967261919046963606110732850751192562231497897690534010686227165644603661840261025746197172014239222057243454222770927452770338160212148953982196320231254819884942344380509302682843519614281923911102808111290228938233526366407842340378269836503074055064434309315873352535197167387696079212714092380547940560565147552809016024389607557615736605375119493036662440590521963944872296844093509711728086129859006890996752023342585297641843378694140558898465348969350049761740720978218463761885254565303418231418283627645603710606235718884243866183941818725289113925512807620945313010957764000269938384477607972514948487955700592464782639128669345447194612919985585044363017087288161830856468108769331260920261139978924960589346818461427087570100050999001061236862467367519844126970238227558842494224091085584559421985481216012767844176561758855876342945799376180090193451625508493962895181154601255827906854444034443441314502689819850650758169219927692698358412937655355211549885503412929978214266730715324051877507325458552630963889382141648055427874537788167056951120924488480321664798048533882671745967613466522136440366341182829807435209860733941160178254128143637033809450723213792642135441068116603058850638306443089020212583024543527661763114738443949131994297157115804780497050106646528742084839948971560209204877413204406549500732620402352067378879993141356439201655784202855120377073577186349619412201503317516942997205948717477477750893201910791928664312539548092013921370342568480461462589273988595492795445084431765621139512504006970141559178083360737155010498808499313122705594106565255102046378152674633599027597071848151793818988011970136416689292846744327190126355245712254106545867675374700059253156663974548648088245753590323447553262130797070194558615954114852652920806780809597260020708273219433063982234994832887176400145977559832102590606425209430075591678635945044107281769586494461081039152561568052976421020360906995147822539032081777867492918649609266803467733101226677950315125075448454188509042203202386055902070677606201268895819917652521212587265502271969138338699277177288256013779305370412164704252750586573873248077103087005840515731549308909043939373528925152224930258952460305780381431803634843908192643315011421140615849355283011364846074529400170825963529965208934838371001724087438520094205416579765550734383850598874561996871321029646192987787837909129456259037354724595516683933957654454545186223882745523550019015188538254759064183647023480718636994780330006474689870826495656802739887942555666645896669889097570308694785719630801260168952302838312214457372045269635572024989490892097519099638744099899854051622601150822446131618769474718667527462634284912742117980592693596311927315423925852692395196950134735625514886012704765624907119548077532805349713461557363589377675260609868217424742403819849943948570783569858417231371655648592860888601833488173728157255940240353757141359527181394634890356715907614939552672088252495323365719223612405594231745396654920507401725573298267460201932482888795180430730649339346426248287092201644231401791298712011962008126216365635207934191895224615019121422269907651884564919797203466703471114483430711266189202163961776978466375371277218682331475910507372493518821137358356169667385255195967595457875886494888198915160115158577058626846405342430225990912708121453574947723343498768199792274065712809084179160764222115419172236601176300499432304740475454982156051090885166969300741383895212415798108904367381589963866463258843748685408728341514063925546358644727736483710955611736098516677817621769738009290412536518112014784424147799821926604799706462424822550135640650585832084972636407687024037063415982798271366444608881619754971476963795122114195422574755887209164379090061573040645798505642729208214581160440799778563253533994001015520713988562255354552704800327546502374467293843247691387611784233594308319899518110049113198245630152799875083186599203563315856939913818952815917320417685142525921209923014608190358784943716740056298618927000541085212112492524982642571660373476934458445403777470168165231491910004845512241557953112004489445732894135648716859463622168259822168952879497906725990547298890244558361797394201657046491520947655108468471192644984110962120200293672784837595489481617098044353253986410612026563051967105662754326502927859232423374868010044819394616251580103241278434017539957288669256731638898401721034863833214181313175199531371843992972773115679356344732700489938282424423854490644409900679503085668472466896051504704807241367913803058172970758328728686752769508802677953825916549077124429643987893395706141953557903509228199420746206629703764092996326983492916466068674207971595054796793989522806844323072228822468544188049701642750117670971616814101400640379068833515853220045344718639402125635122113864232981904707486502998424751508672619685005543839579027737817317821692299722385570178455551407695695558280663734140130180883313044861352433124749373534071342801684370249737913759117909199500349113810860967862575164490767477931235380075114148707720774430407509223436875785747819253362102932753402922382464368758948561927813017773691470380310269561511846528476673079716541239931233602179211994995781685846879234217974325447392067695999460109995330456766862742785374045827583671693710637452716093877910992862429978288590666313576565913955125069506342233164762920867473524221724616270436135258475203650086658885262017112605168721583286059798098942826181486449717887139993068523229722021182444993839792730228868537425763745761764849054201432220884196385358720492873551226068615055956232423343497218842744476051032149464515424907049103114895414511132465987562091576180808595563100474790646357193586031247322727720865554171472266016993502574329775429265119977331238340780980238753186518260347236304674607792777876966619555904948049636842227020646812902334471304083938205529169464576674337014984496582071840620772730569321710199610518548522154732250702224047145142939985238735723968983124526275731850106270976450595809404685142549824088762142789135767952354711787010352745910388447832080544899977564535495987328804631067662727506312862906678846700691359231883771258577674896904725112570900002882846616565915902721869531216099662653428320264434286053718246309146767471297435997214464169618825710369961028414766917962611460181666435846243207453149416447018718693806064343731050603626822859481279860929972184323666214060137164888723723227254493290206544046689906363925970294058268585438329451245320610082163070294890454214631377552444214990230720683840729004662425056449297548071117456056137154177608816543089430026786049525959519290187234272704943390683723872454492852525709336249927897621582097481067461619669470724924634035898110915766023993574726337480655703872604240913672549608689432794632808909940569947736681233967001681968388132667235187020418422902755837860821768614267154012024383476663619908315690862337714550832965995760274706313614469633385813627408335042282444993606262954867128183689815037268484617357218655799589876018960133576970682737527447550030076505244638957440872871214800209803268727597766839834126736956536954876743250427176112121292154639582543359089304271011846023134806295187521677930542933149779944109562997144618012394026804236579592549443671756088998923339495523296147564019871942745213542794589741260198617835830090876539427861948676722654913612421583640362674546721020850229033489714183990810011556082839656286742698126875773029068135609631927493011089370157166451954506301683454027130970066748871839661162795572182954254187240437448092787824763967822101580777333732088072897254344182241503343964763403388480379595029423413482118275058247456486638379362423451769442799473448233820324280052898823363875425354223123632772124062690538367050762935138593836196121608223515487442097624405347920487163321137767428754684845455470705671940524996006083972730206367139628468693049594066234970184852117701953928424181604971553622152105909177058733843013509340264236297173075479061327540783783002273257880382434991680757711555850455833721439235069248494635834121172210024907080524635163453884973306484705914421789728088978856536798696985649542025788287085917787645457724564896919995829707736781886432727960062660129795306958006810650955097953628536179934813472755187346564853640624879694815555379594007499342235575633397668991891273840539700526209313220016219890986813983503058225588046335427868208731629747495109237563936438350945438275980603944455385172323552620822253212795117712528085870776447086269136500207881708512735691748766152887099572246563990836340760868557262004997985903349938009490642036192930147704776472504072352030542046164406907496220975919497876339186688303043155362610287041638364569552356936887205142424837429731668400277325232715205842199209176380505187100279028714587927464549828628800248249821531232332688051946200931884000224498723362783405402647414022893627961987172382903948760350979078836305188772902347157319134680743738173665268846398477158668199069336491488613459667418114797197843246246997738594575228635863917284031988200957873474664388015610075492841068877307767298693779644148768970617563282549131087300447199041683328640884525284832363565245933627353300732243676730089578636464543170861139443807754815282683203532274279471113417821792512421258199198423990408192408927326586975322102091570359027604494057765605416589791771870311489219640047806982953856078975784658330407111230359991402053619795705262704773052396281512493218514840480650417879924396541415852094488708447486001916240775554499986683880173596939995347061020679049127923330830578509209941936181214327665176588309120814207404512421603489886986692951381719538745439537170914809229646247969298772458297087122224024187903513150462393655920065356843609598035405868612128629277388262911886277500722062332901339222048085705729457516894381332064692908897213225888394871627742170057052650880970740085069204421176530548757529539146858215684194152794556129872073021678629314251869614573026609568337904311450791515732490708152359818983774655714812443757566504262925117709621454672129938327500255729434282170058087815044239759880792195336282857086725637180885406473407997248320414217032139382312004501870511655062048133610277288203464398647827769504836382881451577426326526424744611427312294007813682541749447270329525336691831712509897572685333665094641031675005956805724257109216457996714734235519064711868520757322939625074694697642271076848463495114352861525683075119296637078449548109773975404393714328085945077278257479255092755003033156837040472348974724927656015061513106926915414449772899691377315469656302499685647641097799073003443323576133103539427472423621548319721524343564414481882616812816918460759147128824796923438061417728861923173029116962231797874228135386225749758448560020759392564487789702819498347598661332895480483380731509122392782913117429232146173367965581857946851519275443782258483191015028370919571592939648238408600227787669894716030841516955783389314810762696222495540726522839093343072606681751078445626729297330577534667039164725422819338257044175296548177051208524415366852956948604518797582822403291048418138280563283182710962277689728584350927288130755099806071795204288036909334815352661499105520201234127863799607473805079032937542261573830114379736580395684925482314157659574694659485200575504531937475120257476588773641668104513587707911484498692370724536773130136718912936275429502401537545240663747113897540982387067225613003101939035416798189927134902301208177141963463590804045702443346238405436475427184063670349166447727701149998673621788067812473121544665657268586742554687713360749154234185815952055711979019348343026445391429376374645901636456763091901509474522848908032775238151399075904015492061759905532349150440273726290558702604443053827504794874758273719400812968601410075633426841367514416512088149851901022939750012659184075423391525507833149955135318890613362013503750622068770633194030630693093421725801437156443370931708565465075860140054282349903877609085339464400147918589488758383875032514416552312192244714336270466992910649023679980745332606443842554190147565003113126565091202905982404759746572192603132345598233183406068591067073448048142866109070150083496690624613738073837968065610560920246597934555595204847329608079554712705401440348893436076090541077829099097335275354827298695980504537242310821752447354604046955077806769482686483260369072557683981089253019526925354513661378373118799816572628808277077391040705659057000001159023046436047107839088436150829798987919727623240595959605899410848269516058350580928443591338626153519314653555302354792831182186022080490320113866377401844517182379644532729116474834077324934825417554718491411874528502734195590071259561410898271611175305629794342463349725225836442272688897721687321206695547222235236481887592896952376454613774859778109056360233761835787666504840526661681096467997286609641286224028024396798831184277224646042764496466331553933719859946586269583771467672378648901120860829655269119915101784936631352297441529035608289549418778573200807018915291449124363094320211462953780207690155547935920733631835727786071870457024564107188673297906575362597645144553719217619073905163202691630069060113744062156378182182411251924377998643997575129302443043962138541980308856590598870099280838674552774407980990645327984339899780258200107528236048910047352365262258371201472764739974799802000962311040715951547073927095166598831852424696294015133401638212395561435414810919156758803294369956537577139529132281531554932372842638020322908794649516962553607254328905613881446821566417001830690426605439251650107988387339968766689944653965022442104520695273514375320863818409058252121544890103094129648734729113514463747106858969259109419061320436873191446705842970991519163524731229588997262440036987118457605705652511761824688189483642952739924337669903031181667563128228558030840421127081233970143307046218879611278800677584030703940006100582134614711978570272024896082195394016132689171480962911375659011388720486730200918785842163551776390390609539773615971379251043824936943455171544881099759076996088431824012919480508332717561762111408637256499124213167401452319803099072676588103950409770486129421219091255752844183948066671789285348952898689082825953810564409231827240736588286908129755975003977461450242217891937861345935309931388803415753733741657252633403282352360079317082808160526441293477700267522431493097985993289218456349831751624388017074124008939041128888455785344767797218107325338188469473320972593720241335344714983845078417019918393741762505630632741930302759954934114293116401504041399922139673758042828809337296864918121158834619346528782524407523662752596683399554622556654320122847790513799704516208625481693814665723855278858411652225999937790448378145605998225108276755194649681129518213824354096123749869678456521220701536510678748270478316828003449377254276125808349165050265853222951268530942841032667609795501139711233848061045443981649042351433869909034022972354496294065754480194988537936341017849921048278337707561305603209515946039165840420516987501235506430853382325643862478812953661329754577079984585300863823048972498002462885536372632381759723061528684145473284224776571590042945936847276141129672279484220784714229551244042641677428097000044832922939232365472050141836919070025534357518409967758760907923092580844013583078906665596891885219476190601178969414120293419703681189999661145846388941158289369497358951939102132053630900145322892953802978774383197942597375506999807747631646022769805398201331224506011740439418793468012347186820122924004717418855005902422787476041028555190259907903887848296878620120842356689607905499451523395057395224905470898885511676539951422407758314189177044797792274525754867287801773173402545238307483804347069097608084208994880183277517575927259521222531742500936256916332653961219264294402441048546389216908530210488723858457332943930532742894393273662164645459515243395692795916128731946270915405844352353121303884715833102286567307811672709220826921256731943314860642401479357751691689977502279002573944318074422064335024231302433611758813799324923557573632275168112590546710460656146971905843140297799883077086604156083862741741520540606728331559281116581641550396594830142064972941860266080193050361299118710544580161211016177902903784289134092220006201265980468982453652986923570684980308671933974257686677900774004284218849150659734635957196372836808825311144106636511520854308333083309130893304774338761880803087268448631504267759573761677082350418903857226929524988737269088758716517640097007338202205474031075672923177267263526443386327056150157552199715553916134804847029966184579125896614296133748006767017384972321399071525012147553244714174982136551625869102792895148861229783123217135434062092542284219313752001253831535090825878256735309431380113818587962291059505585299929624904276231138720377850519277525836283761502113931676668026590072612483216965479271555736428736338302486503029056290906957118180014732194421859094214414876512107275676039926662499227819156887026557018097606733468609559898650712957877518300764061421416202473493962523307195935243562717860857271061348965339129635374913393306099535040809124989189325343526636387628346093550108536150416247991632962519821710496832927712495362388663750205359766614197176001401638657442494038128467955970146361918375473640039814444507714055785059053085160002211336303295292922582818516295990716015004384302956640540103263613925796510466335575133786225798633834807878494106121753828455842874824208402500569770471833133306303615666628413334133736260912084788006539249254143926638822905336826655856447145667273392895342029509030526614039517749017605542851887399034844943908709249241000333889898814286702375643544729620354813960901356806719623268362931973977480288144596422472835736923496697381219253762461625166344804763913672278449524742056909046463638291064595974019359256522383502440465933056104684928646899295358024622211323910046433846719712866771757504760816511741700636021280556742444753017657253521262825363166035633709141390183109993464792976852027320105595743713039100044955558346002697993194814208650000328175573297302774438055555102303600503714800709554251823807743926343152738054704636914979874085946705898290949797909009850153867832112053702239099366714178714711495922415507698228864716765727378426184430021086427732742264389479064183233171048698117059077264090846227521291640185245249386206354324958656500533157935055628661075845153991009389816591845926303101989633699771926965204801771485408906943539675679686504185555262028573891271659422471123479535827417092140066530698115014693440241962733281385340363138456553264985417638189839529182320568251571340451106448870470565754708060089679986629775881665724861037822002157474234600610327829550261378943988248143183486764556781000621626247273819875691796492715946561622826449838712944647474965210416023799648601266431652044490669003560262918956260246422114256673486787158622346680707718364091855108158336756816129425930718089464061449711568416505392446876989104704366115823336818517080752268205498236442994272150825501173232110240315790011058561824962208553990821507847187907560191630763647153715213921716913196330326916081994473458351458870238895834853032855459821151386369316391026416116011214152992301716359480689222810620429245963571074500972672310549550350053487113345705264288448463644663174315818895697975172527530387195186025572291671050025871956164815497512031391873757156789944800471629358513896766922466306222775563525710459771126733712685322085911747015904262010163874567517405803743469722610870370146430170917255828182810215052762621867222666748346211887913455524521117967110529973612341934346070634618210788755839321112690713205879873740504066712849826530847344724503916853617726236209682665417103393908939396052335074523534240287020272497479652742108754974166840392877039269859086673685830813419961847280725974333329092501309387630643801083298489468369313027997190717897013220238983864011915047897496255539722363197508155038389024638235057966206466138086680151608163547399915038610747162074497399742406342404834860247862944031904789052688563623390007086020953098035794690886963845683393978418787357231628178067946360321954863169094352017246125518922748686646260597285281735489175909009945084195601923156399439027627014516930545398638191616902024614630345871712322947806409289540278711831410131038467495550318499961304308604658183511194584911437358396608696378911164673461811109204047198638745322874149518674492575555462817778440200042731861522968872108757539202697060049876996591325719355339087518601454962036083257085869303653151491782207518590574134599055569494071234072292690893078130579192733118718628558898218077988654163341090488016295735996571615613827902367035608898688709570176224914346381793196198132463109689096107984622160893529901376570729475953336955776736981426396762382487584232186822027422847376810189917993658621165136602428439383700418047518169645436654756259459279548543032203252169100458466298510000853628852115509673862431185973988427371926675183235924031249999209034137230839708384757663150783007811985885248252631372685361493571811465201130876994036814748256938204560806905905707745061920198917978409957373398926706022336511793470843652768504217915947668465785803717577599179077095954782551677638542476478969840587234167558842077477660356339339551701460331501604071122954216316100840211011126788793796018725232948609999600064821267184913715776418851578901362665070159469813282468421581644920081352230435760685598360031713128082222186836859084645711926217739866793091096370527031994128439374690537476821719469213672648201045790912344983503713390049332089280025179680878437819797163824058325024195963315563361837130033446432751069441319943717048244558876814182611208161973631263457725888301022888176539194243294105192847918816936181274310922461043909869171796233869147390874405087371345500775096262609898721946567266536680781362230150232269182500455897607580883741735381584870283395525862612462143642649035655096679316265320797213022312337331583098768378488917690982497449391903495317683109759919330770354175205800994872329807168140467221450149102958090103752540394250699738539936152077474287507164864781748203873940626375853142390350328566299623920532649649677553922586551598233991298094416890392372696647236795612789339350509952967661095491674877513286562837982120013987773639349069439290415730198701404698296078772052479755838527022113644158621348847022702733700048370739394538129333995421208496699007811293981460231613513778903010886160714861169209301909933640103057761647950199836598336248573527019285800691405961704049521881828274235668181560127105926004037578695011934218781275532071509230812480922505677513081905669108061476095468470364303576399878221191212855264088956492404208051400024820629925981737646519241137737014743741347136799990914041123090063092666623257498622595559035141481493275910504033604479572510107476185856867190804663830055194824739527801280418279190699979137395681618123565190966381827505232728022643192853090877014558540211624597395005421240701207134049420639812899247836837279675436440194054996924311561871874938714596521148926325800038862528922818323731312404352165710181335567696466597835302967824755243818993832648166630996061524817651359724171190212827432046536322793847267697325544962447229202967639652243917469293706864013623931969881686095273348072678126483151750131701659204797900788967874401769544717248735982874032635648551390398318700619639171776542516060366072349093678580756596250657258269476503754388747747458548559995544045522891530148286539692257816071557468992439092169721213250990074096385553060195091750757671979191612032583742974762567501766052444360920716006015688771892528483314295357801589431438294563584723463504045598704167044455582934179205226037326309947704997995217984651188648926135428222582708352359424653975095657121355770836444019171498691382812117420693055094424520668626624504546690562427166405328455115893575995444874962882965005091723491426038614710498249040986521641647163318560859771700368330506204679821157441910514627336640288103611749376280958219249317510323701746987478717063447984993876289312625550296220067992412805889388349546968656364658552072431699024425871348193601759039700358365348416176864015387000892002309059215096102856851364808536454479904465366917074067702616400893258387550076471658944033597576642406426966551929522992858680694542151704530208415526646986974071139514346053418015384671796435531362739647060632883846840416368450670191196185667308126450390276929204401153515336407248789135635239558369189349469766009691128673057509953276962234057592519607750137630641325548658013591277475890576189413437836368224939724920433361090277751055852466857573856742204731828682778525004578924248542313867661851534312615294352539709119107540716337186310361102151899032812403934039402543941226122375711048697368091683030498559803303933393050362518512589862740418906810786672297605964060786174354514647896885965744408455847621323514368176911396307564776827652282040412963860581111473300199369024325236241569176152687783614938237594691253242147583159048237452926917710629660737719279408838626232562444343033565552741211550709023860944078314477595694450335400430093792933564506528798687918909421904311512137732398993941772383768370083835586635028938183143406314729785124988023169172530551710851755802343545577898313340156540623250468206411948257279399164892712076295143447916168310310387365370361179647477879149075583266368945935407315706966424146469966303370711132613516533554710705820430733219412230339663377751842349418366420804551974820261890305412169150800349678940103058258405724757412049599886484412835172465586149175934962812529918517500985767912051287508467574996956547282954788512569878455103427811458286162020319586085937583780440348488177563766136799047580872550466203752845709089663290376631036117541576739314937059280934221121971665026641627140950648673246904852255784369838919126521614875538081403868495755743792339563477431215760315949435417411971881742950971886277493400804495757001803468174641667540038081438202136948140566104723093596014126529184271409824648510471946527684385515049307507938098299617383348559088246447916195297752715958833500571888256044297621844346994726272336009597344016644879254035601070594538671902157865037783992460062620804488690582102785196154779354095349892286176752689260569766207923435830894416749306025762925302445763172853703450450670503507711390655821750109099019892947857590392844215040194929978141874377358105274274725534257955089313941452137719172177547564380638402554681748282420641584988299297753391587269393956918828483011542080846114274725912088377841116469753630260288416880728276771368739844789941682985917776956222948724142973702296833223816398705313063595011490434705718793304296123112937930494479748241531021709055997347867622246395931269727306614732767616727581328426278325662950829133293159466385395675995990007738989084573787291973613346805544581631038322781342396824630229593307534503458990373274464683181768254843174197579622096628191730700984476874521038461221405673141497397589110806149994134797259719032147939385366349335356131314602471286857631678434857080767955314364169441323830649489609869979180279202204655179781370737856682419928826278642626779209722259304610111788794019806334922577230431857352516722995526450504402792485647341688766429187009238212463943105018611436646477600268079179487483232340312760676994103578049780833840980660971518911703364536255071744689698587212998681511644786730168545144198042400437288794323256271454395359985401555667978281204358303882556995066899084881425342248156501365779421536636714907023768105698052375033925197624357388536450821043379590765641686898950964491284289334355445152111111316371045050136267539678654512192696587097876907028045485338077702737308216755442067366418386318433303428961659665935736350861705906136168770966518423121498871697734355368263946454348814156618903815734458809423403950796105396809787032010552915622415861833393124584409952141515009502704078576303088447219201050368103384047755699718563196662899648781681361608371688432153526537012130948094729000445221750135581874572527369821625364435750362953399593508781460163261903007166792537781120996668462236222132578362290106043031690742331092221192453521198885188439070278407499375863883793856246411994634713473592373640215598255405387464277143728304440911965537229361576257663038881581957819474179763073742424019930138731415740331278943192795968496692244125720658899315638866427497950300236291934139282586503441482498084280918743171697215752609608020987490967153616059476279891251932090055830650612907728113249514434518238253783762908380135659346728546573262917045165890131509183251428252613584369465495355248100719887619024954886271887386394482960981346912576889210804368248516678224894894137343307758254738408296328840668998054950128954446071039565321007566584558980771825015954304840366468525136468014163879797975739171255475499621381701319364683552189419905120631373428496514708120631614049065466433115544366048662874681312828821658686066202526032104337380283053630762843903491768088849366499319493036620248390568443714952192868511181359207846761112533324019127059646882941361030976232362322876720870347045096465400830037801024295631158900084798272107383649999663641976248140507030846033586510390051582703005632013644058713408777685789412976336589342215960820940045251743273764923112781855256868833687382779900868675515130065842440063614900793880005183496897316157421135025786180747103236717551950518569236258169467078336352445745984655539810651917709889384804038855877940367602314870427089872708376299393905192810049301330048438327635487021883683376572313093689904744724258713173159195015139152446078309681817538741473169302392457370935523332670959711061727356770816191398831405574348686875227393950676505517764680992452703301956392907071123259382290577423385032323093009554681509441722746071134901420706761899315124321298998325464557199276038282739662141330479282114293121547832540361167523971558826173802779426325704535153397887785649657863220763027872061996706994437135992127610880116554931541414860880768351385379529025221849759240247916193538792226327509707264968724943126738702030567165599314592935404012357438175042500695525068661715969899416846179525134236267160779550152149069014320164918438982228384602755638499017355679876695736025343747347126629214125361231197304649784874845127994897359512839624681998460191464640787407998881628682960987823919669484272199211167082789996518761184051881233242414479363448833339279962681348172586441527638014113060969158781118133402048431091871999900447471249606657791874721019830892635678009771141257977293455090669019321499075614012953005975915063572683698346829928917544805992270260605713871368929584103239556554094104428617102069698801924428920421751754304122322905160551194297310327021044726135861406636843152118279290918557278311506765679517060859901601420735855270504893350777387190276733764691750183268882854642055954075402683034133932441047197697245002655221383081499681661478462308168812281751899905049658756712712556866880909256789439948428251597420249954512546324185542501844384965754649178156764560419777747100918101899591990024615058725201281832924565623322369586528742001809672949092421330836003252818453207181387929891276363730425991762599646430410812771714603895040671687195674611960664576850004730430966645726614168789826908428865896725014055660568176383661079071243440723777366945372007420168194317109698222308956908802708714017839321257576654893245001036234815300310923618418942792258904125898390370494623272005677447985499538412046795926199908383208840524033526341534475149468583194066286655230709462129057440000420132397905819450789471250966724157313374331803974539159353074211208795681877482884938957618173930356984842915675356749617827091423626720909462782892358124101132307622330877703632848684364206826891342001001130640386746556709367369777624629684684446744042465818735544155178519705240278174148693741466557331098752274721100399485197326679333734330757993787442791759973279834426833694237627713544932001063846775580419066916322974191352438084897891087429699959189628263973115947777057588387253167353119648095295035295782114569044823882770363592977293842174206959505167266300218588870046874222207279122137160568899596874565383279109430981805640939495063149224722113761243670938077012854244187469556587271220685286547547690516934361437272156853676413149215659240800250587779034904804316790093653856593779824554349528990363368579025025867602575697455926844485999999878880293621534616329192689225936001855559290999398024859813180552891159850958393569935895538351153468747420615011229524943730630446061418862635168431689339617015848155036296746758316915521758189333206113376593577875500860311434500755506106542129033818236121340212021515828802816416548332472215026934122562998215598767130290687211275482197328658404711131672406753647888930682524132985304990330293137522874075463124882397399423622333551254098072892561899475251382133726511004292534593039390795364235622764138729436939720302583870641013863518540827381343950172425562399441146253078950024636382975517582481284921626448907546454495028097947648917621874211157181601622534370050350242217172753662494120039698481809450299193773537359647562872174454946930566057832805243791891542552516451498406332451412085700912647302846432066446730857541112707426371067451896397743098798878512319061503077774489078618541616798428194621700680743464625441100131522898749644454531603933663434342429335366554172964276521860365875161164784137723563076151550608196711100300402576557644854612250644160680504783298903914258728519435079939022565730511560279120723635386342368814248319068081974525322857371772027107623778092855229150317721854783401691051555817432318826595317101937582076973611541498653873636040454836433756345167291962676795578160567978072788790589198897276704252283040951215268419926039992211080965269800831931959840742291728671948686299488380380613124645362945728652745845496277240185922342474398751821616438471889606102268148708692250207632644278875548062679498321211171377111369362582865243374882148371330440381650671600705855849365660154445107549007775927843784748294452693826591726078557988635338310559157708040423982907274515721634129496516600458405085156115807785507107554971381223749055990964986503110746827483127835189814195777290814193587100689018192750237576491532858261557649980499977501726310784237075957179205575260799539703968793446816926747855162837439294881202136010275772926684835706820511219598045704770825602150972662461526796382165457321470722963601979031410321936576051143099894022302914544320805499396987010791540975497136280328961302735309816133059558544358331209602179486488002069997426141972067492769140330821220774792542699610056989675063975703635889581379389477826660277792561020699453840822983761420156215049637699299013957990435986245383903444938469972799430534756494170099986725094478943734381142160946059449619853961964816340486414735386594630648859008781353870529812599089487757447305753513617085883288868383818825559674289254562113015725039455331228897899678571698065998222362364122583522827388858202140846525555356801239044229212666802436030819070521420925262825707455387220822431270230416394650203273355904871511305622176705416834201756272882869588921596973795277646394025829149609287214924694028601117481955443058046760825122351973598560980397688887665912477710629231197441343510448229553933961891443742751811342465350009046872970093275603127531474954025331880384423579402326319034713266226656989990288513818796275394740460351594595807505611611760170037704699258755250613153122529657496726277913217818378588219606512598815902504981141749933423172830036420282846707409959734115760865521672025840274636569558448900947237648400841368328776542811814962887407982062595725210739419170535662770414678372362563696625347516403260956406345384754236596182034673673875507074488539372854579453946424214827664637244177316814819163414822888973787518329416300663233441536005231412156502839723480718801253810014270849390349887042141650645673829071438048805564643492261821561782685441550242298309910254567752262320751120586346504166160324284471091812247483896707654078886620154784901576186782495888035271901305426913526542457463786049570886474971470422267941361244032811387570270806223734453077504890223116584258250466990093586587071876156705793862115865232182565704790766923676965752151913942756519493918822170770618799043894420642171446470435513004596906115105744028778444462128149388717264924950153906796260286513640293274903196888741310298875049668999589373792841309378894712348454564939493169167894970123199582968599509986304485414222358607461855036225806496781217398816943570275736038945150379411604282529936637240554159941387041183339221626299492636755070303448149882494613249123332989746998926649183018127625457974914821717208196966196009904482928798841282053968782982566425682174910144001841913094661416972539082083346281871291067015804844653170818894862878930719778643988422999824022849672471652562771564864339531878559028985725283800684225405277102320711213107181833809927799893162046390348787959540549833621955776179516466702191685089198812207598509761933508464504955019861127182098885698484594097783961377719670752390074604215106037782907062219990216180329076578867155037855222865268926847336642613222658984839223925574009150038075007680687524325600797484391093853144647814464949930453573100730518286066747078631423826076367545077974016147047879442680447370769631893655794602445601422641448285912836649551259371127529369798929316797867882531754339509625382785972731161804484197338013478663035112575695840967663625307732376507949487612836353833244044217870708003830358267199222200197923777266834354556808890319403271972341936446131260992359562070330438606945060076951980379515170477497590168105743727451179279781867442470126827680343973843024224211881645998206801188790225967162649558283468960483187402557556895950707402784703465579511546578520853360936893368276249742675678397657403095334109986005520542071935225654104127407465024077765811488384275573496568029387821377047846367362221499801951426130053834219533647723890779083058021963198771105553442224888964386208980052029738641611085276043247610588504342912094154166543758908587928180364636273299565201783805664034290424700942159122060046209529568937885236006905324688849113532924523415687098551905468807503879517109343128195862835978815550815261162068345077831670433924337725002430364886759054899770962659025962999421541951963068595285507783987482608252676926161620599651691849636547769656387520362155774515483395232835933395804309947922875462588086314690767068283021662251369882868859683699188631980413981078239866859732931578085984223573863532075646774826765560030263425180959712806432483445083232666892262905196742516202130353472083522448425071759262522971991846097491618579082995903433066304628546439049555966558822493045064361007630249952167246933093676687005494192975104293642020321439087300129381798296438093315318278212071635353312526300424033070018951880697752414435717802074100161041416895803079845761437625688256009188454958206482599021473809759502604942032639407785144144334069129499729851753371697452322095598643811118781876843085497328557455541363116804443391644974925625121761035359171161570086132147659137937019243959756675228122443591662307952878772890168831349364044612709620509774429447356082821019064027564769468489234858798260349853115472093764344313906833196250811284599137112126658744509761158002825454758119966541756137038349838160637484140050281561914937066400302712274572157268084423581908563019405323119880656330101795739623360241443100889143718716625756241588679001070625013616635107294933963707831499131996268884326808665153799160404887236577391335597458639409099721221118255484393230088251577527786401587740820660278242868193752612057092884187020245126252927528802113646786008178424702321290025483355093296672516095973038015546562919162251646239999592619483382445620470864576458796879936218708650300217080479504867343695904952481698095529065077731348396557122930638827212215087892340124290340004206088004522697276765013296537817101400768948271193323560863402926053785463508975005420616189622964544107524087358022355342784711483407881457997049756938855906991969883968411808142679251464871214076727772187545175486327169680561266195109754810060221414473215632278374780593461297246673023138643488323661085103084118646688208766186881857850697045671237469677752478290577958828245389542033539889273230784826939222581750166374523685094577786851384986016845813314597929842461496580887529008621339559227549459884317726676860503489565734528187777256519729201233389980192016638363820957161503697420274455988742725860778918033374443642905118292159617573453276413448817761890187977375647305666316600387571839613992122153328877110690188523234751732224473051207342491110985243784659624423178624312812809202199106436017041436550164664403326478013778412147311879480212486063194012645182668396606554012323659775722006008495959155616450559417216195299375236298287354997885766893679640675852755111737692766945351220517021123335783092136830252728805193448122497620643729494033650702945978409224575799163362074916176034986709214658317725825882277876078417992681225264462219220979116894101470469132954640261451030246010242196554914786314480673139941499086254208782763463743022990844367008355899520866648819229397087107186444266539177966211738436897300434163447814609758667258270376954661713972979305766948833394053715778821175729897815993389939717911396494097851335129195949176620145296966149277927424992822995519317233415079434975115337502874943320201484679466632452465089287355079395147465179390990656394819906865282284352347693751535217290784083730539267619149098232081427136678901511804737224793399134088005172920756660025824669984147425412939258866399903365260933690942934063981425925244094283537295965485820291280584481326912027877924421371844615542925089953991229290614997867460926209324605226250065264047474779787474546086304380566676655489987445652422744914803897719690056404020877900943306911769694411296640698399455345202458153937173072461047643125259196751812462908050527669100343890967721782494232210587916776919745135818997687634648752967191686117440104183443717052513097629085114127088803098410523253095527318195473210529323028698539751075376412306101464102328476838661880267763307996315937027465361910539819941540036588748416733536607061289127282809308629606336517543389110750887253425709541858223809616119900429444574952973520498386029338996580646694342850505729099013321982652541017263482891454555638625292437622470648352890233504356265107685670159204754622466272009058728627493678401853766939566457656241945824990317339030356783094999900829713376923605135664596915897020250436160711754423451273916311656091164233006532383448765837001523055411398131656355478216634942794124668118076918279283954803087839027221944626326611740285334695239071518561239562208610867426380881959166622426400307983393955202704528765569091146494840284458812668021582392661463721227801536215635113231607047788464248939708179081018807691905665201580757228113273572406760434571756703178033493107931931596228043615893405827786167729446219447788109289027302092750824053896300319229669276881476106880739621691845641045637238859301917382538697737255153532628812851988568193581466404959539010704858031190545630091179635454736354376003382461281162252961930480590483481793377027771291508651282694607130519452919379026951672224647042823048385758016310359303794769446787103042433647005874503668207515689474377906432924997685682017329652152191654516655923237414847687434938060536954920532530281882255718961053208896979411152016901600288257232459028418853400232445593701987675040538678620352958594792533721929284664783026507490139282707084573767452616335727960939913201226950749981483061313538864750045825069541672358763843679117672683264574019804069776529658159079255803591355568340342618179464912239597944597058827006808272959763364018515424993871989696148910353647048475882875569564569564442553045052461868113404630206837151843177851755414254957025666513658245964437600277868998148364627693037197995422164580473852418942647732840236974606729302183264109852363648378729724917892872144131484594998357846890319981088781667219744735135610162838211900627535586730801377903470895900814341356474767959010411729755640187012951377286442432523409007406176546792438005340218397167354459158915939326245316749591241497557392835439782615784387277671281575003822071597732691962121754897150135439008197775574196265506839082845534074755815322723512606705074634671132088742577710851302170292370191036322365388984365118103600382424163401059563923917166785630414024067156858369128205206859188495908072661160623799531523063624844600689324383360978714542195960624732862697224007610825654547962539734955961921256071401490937154374620408321949182040143666202452680642318403825943422691740667829807177814551202664040999206569000919117388196125155371763525427207020473031986966106234791771297069656155929511686019475211103498159433211937022398176748229995045103125449370846191931582185145214920299847447825728721367696438050494014532560684241185363085652034468793512825484122515445226512050460118208106985629042136002039065207932280604124546231372293935878391803123188247295589571842718143288491582864433695234877888743361665017899046937962823481778144577567778713254170647800643381246621609503998112737295028900688140093770937172340478729800272562506427991931809950720579135015066388651106493244467283055885596881222829974579498443349249152580661468897038030348570583711398192727303465342285369187185908737562767612575396560059395557888297643044079793655977537045961537844114529939822800758712588610595808511246767535781361528855758545118466606333840269372473808160984557861979734208617904838640492465972701258776509992984271232780419421878053545073656399393680967069767152205383863170109651652424485583771412771254835775196677886933984170092138682581133963556329929978741053921922711209846539604072021244712966682264508029114136397843666592881755217771059442964317397025108092575621217980080191215837329153396904129730651161753827591196566447206743275709242714120218731905958120945171127410722756830815053709191496684533522645286884952917799553429040172060372539968307872626752609256466888953979104350583501456795381666869544133491443749682983141907120994995450304958824430348974891986053806620989480500493328903866121235988759150255372684214049573114255041361679892568304230527230777914927840594704056701201142922769618144883705606346378333815301747954800762816494773385838221721572524656044867659201865103974373853965037573875340517747310619305222555197178045804366706615793906521219408865369201466792475533969476509051168643050934731745114601303120010296542513570817937377168881998168029148041317454398371430594284475216487230988250561392699576774785351174168580247012260521414955807019923906218311220231941879053631658952580881667430783998509032447048771912138571508967316693985519247718278667901154471468169311003369554143533845425004821625615577027498411167546810070512678970322225470068051162384265456376214651291006379480326332695025937216501964002354769100718062090601527925147614335710518222070273301920198640197413965112538313434381093971023691830253732729998635170408595234206002868818821393145439169857992980017089330295788528604801091193200499432982085936128354123482901291827988962301869279171850957743781849860044149896203178028026051834188923683777905218292948816300642089435996340619308103936893629162168104544101030488881364697348421431018415140691531238767876338306724068532876569062533303506099850889958101550593044155475830573651188547491950898514717662001164824735126371926986978077837952575064995667252139338119740470744559991125797359734187797858438448983439447539730577960168221048888808531886548016421975013577152650108547702528822145861295027917044928628568395992978271090613114963528567190769982475488347879752767713972524882626391513006976159720385280938413311758678694579092592551673903268492313436875791661602599043297356498613960175367289982303930602404457916344604449376318217398932134295097529161064587826120534834112845877887074992477385642676317942970555024205187146538654394856642992447356263803586527052219012682752620049107073730570973479852064861048091177885283919780266142882962763774265980165098058352175125718636760478287409436859466240808705802609826076674855296040117144339027049921240784274788932527503485098769802531221211503413143971102071696213233377237260182855576841998825359320577415014849430499338570900255757434233161475384115117022703991151562580463294866109511758426234491575882563432779684501982077080642195063467609518767260451285427057089176556539002017396882729211764592302189901564253522314768031748240342700784728277034827512521339271384767261784505245155779904907054703854867266606949380239267522688508883002670535762824092882607848815364435313257946291187403071456093194643712985336743461810309635462790716417122381651712050983302849761000017870971002532651000541051629215552059804523409957613762095694993338927352413998513577803686454882362697899157566242600612024924571832453223377665531112766103720141236856886666225523586524648524492951777314059825647723782813236804387051897499195826490075292233335176664310922206345334338255672551914147117967586899756381276035314841752962729263453301544906673004996422310951673763150070630404815766562051345182949335777946943153425911217799078605170731159850975776535740507622152484220597553714386436395651257751920081939330379996805867155291749994256290663548629457214355937710628112708656423339442475291452953051387064242743376561331599106836903585028618617998910047484424696700893029631979211211461512150112491915633737786387576612948593368349381592336227854534701727195444401489000549291360668197186627073427509607504057035340920896001220872356499630608524821889164140348720833072155228292863152391854963895709658598052294926383045275593238040332136006094585963101424898907777011483954716482971960356221649805180218840958459243264263813860134914056027457614216793955659060162519314082768570462704603497278989635551937742406411941428120502712760645608654369326570735229442214081168139696593483755752486532389944276737542605516864697650097282918063575456431017590133027242689612824988299794223786897564140417584544207708420240730584292583489797982095099245277590001567143708158483988738831058583068242378072915954016975456533880303965434079536337842666755846696226262454839989171414804132589441012623755355549808673757652600470486936871971009781767620151923988484292019010995793409442646935197371105997160678742051196971207947257609473790510402747320247762382823603915766409955113815511651478855469900412415414267601251641175886382374541696086245844473190014539537017838967726453496883832332591118289249148192125731315232577085134849596901582476854157950209124830865124583095027212215982627378083692357507347666036626139112297756251889217375174281591502071977050232835843969850589142529338786179027424115477084698210355708310848423904859951318873321623244095585128536981353459589978861089495451182002087255821063186434493720629116229293074312726107482672372977800971370834644992873996073299041116155169550184098155766115966808177099270724699351660561893901230121225674955515343107720815054879123870681008885594161964615485904845014180008156937311526422062894683864917986514596852266975537990990889282469074049728591439872254413176461141961194779648817040454766463307605367036040280835121783954015008880522513363647043682837681254806723942438732543237625501979319788944787160266121690900863618328364527364140822550048530292858215591703235132290924941213775608938359432121018740089570733213260375902606463357148597106820408236054750531570269271674309166038132786645409471856858067199152517767877292261675773374053729281826655050089959455813868363424036489404185696337831244081659002799104654463485103052311158430426716097074184142417616208058747852256996141358640818525227782181408043473116878559249315307759902022439161300712279149991782194478382314699970256692189928069663120658111115054416866604174609154320388516829473576607350852359049522919540946095279057111748256570785045114797346875313259807336166345709837580911619387573448539619798947321494503905244380783423118387906916875143493261081191083854720382041431924322405880248956411842856248013342587155528805369525103016522282938386968015319688266841594910784844728637919294984754735738106516538143994882456917706039005461335452486699705912368218625908721467932610008886897651081509612205324314703445520242782261131161482062921278303867715405880542807587849795655116699173781980734289667306257613640752067480816614808889495144772050016208985342938713981181387047467547998542041534546831392142071410044034042705302531083439596945011889780060170451042621762951323251000720435924720685187036346891659943627322129054716719644520762734251694088315303380431356998163320680721591633804587898919953519001018605879251681335504035496662988821635917168532580267302719318546743787132922434294186985695502225766546418651723062363239794230729678734919599162137503527139285262656882634676526998722174167850632981254326978314808215554384321996541122704539307045332636634932392646542762167902300372286821553335814019923298206822452581986728222544879136259377696234329637961901492675527099139618163264359045162227406857996307576151276287227612864013480510465209395087903932141896537871232956660107056258385498349908830839229842154719066520751160564079594396660870663479925742910230076252907739312663011012606737997477257138810428843586195928536632950165187218065208030386676004433920974124185391618481170140710261079363322963731839116278292677786291146104564506089082318504725989318093509377011823441903291455322881511951900623108785644169430272899735738399317748787803520372885566177444108907056122735533526324438118936327169586469234227719831862901953778747350147406063060259250381560064891417046321122167535320858091790429342748184624335562778202341365998722043368404219885092104807515352666591844478033131360813921860422542244272185620146338238298232996948009540101015442622250258531812055158033865115974800028407417608795592942179333161090276986997490410798635709392449858637119627402051521754809628238029187873432038756625949508864116120505724112457450035028339119206982533625748043414361296070207427320299541475622611807478658627105431535992421419488540421988877466945387975747094361325513620805778097489896827883623274789984508141311536253216802229636022840775823026100909418665942194141294340181833196840673104306797465134001617522479738078764608962155421576153667361484597095076183276972216119871391858924617327160102800548411695803840547298000258304594016691751205675680685425660731638103355126858616084440002052872564269109415431814072955041790937192085360736638830009936979953586068843000187116288514080187070329533942527700205694658814285178163444296885136288697309784679942745996405796623911129839027104776964473671003393591460441006313152515439959734692009909142590080657932033057030691626532161998828173596629243249833766371659269171685289584362839805959675636676320336786885368632630518190783669147863105010445698802063602459599588880864506155050917439055882009686756982935367283330878223270176710475503724521379794229146067823716310667773721187794324861831846664008408456550447135425062568218457624213503107362726261497994453671001648493040320233710598011631825155360257142965858907927923417817404586710530271804900547796695036359367418133821320561900511738230109924318424250050647464573246805125760295430262665519943354572275200960581128259396957301415918494302475764859011261386415545265302238118944838129203160313757553560520591749704740895491273907636278527679262150490821114507240111774752720558476832918772338471576118646067947105287462214122941777015804634154640223927428142773473284530979785413919957631481132861113138631492758851165114942935868231561050141587391036448937684438524632223164186459434352293926986015540437700978770249252041148831123316574738528744858848797545764371201606736996378335140295222170162976370879129639795107133839572986159190552516353316819646491553104988397981228180378320826379113285175411939981327906102676898201944662429908304335007772195676406418837228384601738379864645990916836074982629594482275744586894049829610029523632871010796784070901014079495947812285828070026746607405904857376415723761766134998283004186808113652813206372839053201924761119761575888900536585467572414906397395434284876753660332083369436811857796844073497677668295109280107279236761347104026580766471270155311006934696549073733088520730760832858528131773316769307489163858657242033439845050910949183840960547356287191542657690210602594141843551187578968350712212818950830338889536275716745683480414764026480915727196685335640545845206277132691733180648959741991056659782907494754119613248614684423044360938767927844852522823274158343278996884046648838890329554169067379231223148762864424155152051125680921899073002838387761811265020472810870721853356057694758223798093320300892164088509756207455271753394956734752173646367440503911242910305661454452928519054155518145822888781168149626273350088435000939408809699857424265181412680553430613039696252972419067896358689543336467482302080224030796061861294440679237480386377639282340386467510518747664715316628779418237967251357421083270228887132017037806355812624324323294170734177419053998545282825673058181391098719368411920277308237901500515784923650099352274108683456254288529011117201549425058596601243346368388288400727793755308569908545938923468340428167556365909637236259209146502250894648521644804796037588897686911955797033819863948952911101940437345672209052262572065237089590955755427387496684814927394548543075533874168267555961052180524086357505032782478317927334015831594198115521842722145526434541464118071647359767677009417725019903837605943595570112941777811213946823731756784650792391640663552135579801700896159836157402321123922765464139924235277958286384047837267128264238378194687335924957851023033729433303583428515842011766722005457510817864383335859881029960063213405154910909631751853337633370382592481573082589949933525080701344497011480300568824840061553103759710137007822176487852007466739927898451613472036582318549475565324336585496993309406897220899610944036026620837698261755417311717838927254802406669257702292962931715398511082942608050056815375156535460726329919846893542744289940511616153209265858098098527637638166299471683759866977947749146828823186975173704280852917162797845760680816538306891210192574367719437773686363725240071338456716124507016837380233403607643234173665112932379642165961553506522099185328743988303530404144081259780419915638907272474792222890105604923604159957561890885151783031248916530101000670680104225830829196529176197775281648732294402883629753356369005115140917979651561859816325599488816202725392416991053432920085859784260159181046598647714020629577710160687289978919907194790389463335654956377212945395554756353063766903363517738692484151154695511391071498065338637605764794192051676443658788216617186502933413502757608518768398767805118573438460666624422324535163856667081550565270957048712615408761432369564010033243220557239778247295238938900993642586770194926501299256499173225957638511164941219725919527334737397401974938701637701464951675610705221074468462152030928473382811883328090369390363237769053373199657014809880982884960343483269853462563430008733477459236244966191350937293196205611368340987760734683626663271889743120379365011538084832633037860245629422123216074375685303196150692456351043157610009316686939766916168390714498851399217730224002447311334999283012323919308715453305485248217368862167621090584656242895489342030385872889309219250195055500611728363113004019613482361290007828175390905424806876252095961181504118985054495404506306320218109752226422587277032481078090409641349345558874712155292146007457242366477953012981104954464924292908879342459661046188321741074645708920562470566966124218932377846611289169344688383955827334760312079543667132132898465260355585726615988086780544391081320922087200022959593549549798943040023358957510944430135412037273656980341704824909847675942710579864415515553313777196939568778684396008168839578800935166531909632017496845566516442059923126288006916470711889103641797244871204572463891927716994407958714931175058471863333649016192067507105860083665302419652012618966162890198820137286480554059499415897290777114408934630921991745445494220106339785074000587203468726182874087118664784462536446998208764479448562391333959080237538919776503901593258578903139172501647982007042304028532897330802045146899700491004554864610703697624925119357474602180922146848476739455525808227385417042819522251264515819375422187612714565250669791889554623396874205308350012981968939144898763087230364798175213297688195945822965215131066957471281962974910432537992574483219928770640026475340235370249032833525212501334391555434752186141292659073604762110888297379627281731875153492755251254994705501342810202113162324083807729813637457980530100989203081868905628597048187125377703664133859499377795570174407130643026845449606673498008838223147034143902473712951230520167218408008984582005309226674514641005098611810020580501797582464135326221279641289906123006183952458133832436794279015132762149958681469128556225026951087370834807922746141184608732266687682993320300091187470635977797935292929897156801492114659430683914597831457449710984186165183424647353720180730471383910828453629302004237855997975846266888691059793662759412353048276516136215182816441980156802628208284893226615679265476306338370561892224370263299529968532701512118102772341172753341070796028527865575310204996739591805040691634418657612720741676956043756265806724507751333046956056352504279881796314214914881332968287624372556331154308594144963451597510186617588576356685597514218087002859324588446892036494404727025305059925758776606113698069906630764570747848125459651837889356356526547574674549990709644633963445367233837495382857152204290185092990941902129362296399268403543216563168447404623838404703928096662395074449132211583780081171668131605550894929129934108359695140395652789680136631016893609894038495116327501931255199994081008476127126588421894461873930218315042130715126312443257081421036880718731404259098171536598572750066683041936639715160790293056127162577048535250263158704635407530471053435275513942910774208529875034198760719692992996350709196239406310326126000426942418876453753502379054970303257884167884916581049203923286385402269953572604980436697045814418520524321922463742127381157576090827517144108149112533132463699307067565202159366975821292973364823762487768735381641485884650647770611668292257666603960846617441047690331362443001752057797661487443055640704190666127942075689125466860761043871420946191283339600570982658709654672910009474431280387523468602403289230918606460048526860754182716120987907307558361157071052788396186421156242376396175860801892152531605151282338707541175373235213523080801025517927271179860082077894681077653019338601885471083485311556982868774416183051110970027363776893551909277655362792153243464399907007898490889278631028079810406150412046584202172840133171792457493784943562892503457329799756413453231029409110721632044493984990948967712936985000005924795511156565976985389711837119395927466987270241323043933887139602347012604772228624860210848873587634546248875309394066513586309803804761973366105800346479087652769887836273515014686557947638766618969382828214936428682199271173544640288946218830354299870474962975072952331342756888622060540944319106397613946326251569196012745204594000892335920870715037235288351843454755803990588666584981758981119877534733066061900413141675174695668527317856351645677775288746381639249918511327208405945507859858909276076452924474359853676261032712195660685837150140482274916107667072173221829088644294174417969459307669157664340850765157386283890928418288695708867317677976465646651645258335787337281784999889573049798284078204073712615694792585825289377993381605309209752076651413625023083917078470377752470407049833663824300557602813656149460056940905424815742705524960637139928304711054345576357516446578765803706549648327418977293867654208665935598488587646277688028508663363150039551333047594109164362705238793851713318403524882381246238860250999773630217516510651215474526702159116394695458255711285936227486252220413594060131200484252015066188806511722892490218667621157985892228191608137647683199901158137456814117529533541145075818723261096367906560067998999551675512485931106111780115307165456105774037373862155644962910343095072143123782862150187095026700053714024256312597289171694660926262255170813129056961219731881320627485690264946527671489749380932249201730558118143441549458771484749014172466360281508732929556202646773825654075238798778819979621592253361839525433541018305013224099124050074328519372641053649616343471074258139137784729143953740983755227088092802257206299405891638075497655690587600946560701475067263829685782896428683465411794571093405703388129688891338634866402359015995989732281001602350243069073244815858517513085470688344018056441941720603032639783960048594606042113639260645324712797916922488340727269117947317537870407213338912970078764714674758328724807065886520567836198782268542805474708651561621673219418840929900447008248594428046447844954706413448274232330646604496474200321513464610143449750059613198809811034530466937516423114540963260452916448048627250587115219371630090740833545669306860473593780807685106706381796853426301380698188725873443546370562154396177023837956575291707417917796977757402738880670332932619048015293010631368218069646374950602822604933940789162616192331736811489436377774262649494997978330947268467502656535788289335155494374053945257829410771942426792916866678966496072648572602792869951429742274816832940061040159553621331930938538516775143159009604690988469356030230324378949225022353481409851370989988179830057027651099780567321124636185146537243288329260263754224326437420136645983791920918532062206623076767643862116208883154611986970388625341014447160461090125234732973813548997908339579413348469867096162562204065606210272149707521479048175600453765740563614720353012670097662531203931987005077461004288755414332808869414551517248872868871711465865239914709569997122198566397229346597366818861069140093848954270834211647829734329034292508990704015026078537494546189375203468393606558798331472966775927920477592700728383070278316812892363800275612464853502636788272459956555121727552780053470329030184482327016683866878233288051700379590659577790699336401548299458885705942055045584106581442249131875571315325314140352114007084318161227437352400961471031354761756190500617924202300060772543371216772910932704824217066628362973113046262628412693617712828272436690447203978838086748627964616523263322822336223288093286994614380619987241932097082531818800265237127248697173377076848870993388724470519438883259761707707623431200443636250672327394198579627762811233919681898364581719199688078423054062010453151692991195740756152372275001651360077100358535168177228089318672027367473373468671165754171047938673846570565540622238086379668412533863325548424404703003115740893455323596461319303250355749223036594197619882159731493506561389009340990807296579609124368007333063215377915662217716587577319158075451188152958857916283592986124063654836659936514034743685977540842766707615939261259520022267447187436686063591933338134068595722519955646437856778346048636854845000011818394493142582890375701140722455598014527775094714899319589346393979239600356514680265423333932035090148726297873937590464165672953383937519908737304084691591806441189833936573714174383306500648843078907429952399353249946651866000798488259297276873052714424342268335453659482196425485391471894222745336822189369182753021647470217136542224370652165107933391582413766378860638567761740041526684399402577642327360381703160075631819508648965998098702666130419883374414431362823889142454104792789724000346749234870024958680764207018756822732876722619526788840607351577181350531170333090408215777012226061519750243901299427941632517469416187630783036217894878431155440757442306449853632256097620079709929842553877934873872644111716354275263748960746762854715567529024900211581490382667411254003264223444277423869070749964340228326109685194281974695176182063113541181336630125769809692814504476014758099317657856661730259849141746020721996532509621156504283399281750397491372504191294431389227467899310845192101655679929571558412174421596702111798371097253275651960464791101460086888314232220019276686349964188895413935398136567448238264761836745679405285809212990512478537356214304572403178035053911308961154130195010780589057921602855828651031571846598092717635862672137245871054176348883067298449407822689093914458005306923054847991624060234693306894527387012528574747212540477844207549514995580307337235024001034017468905313274548898092846369565542026810829856424408449439224093967892291281645840655937243048888761312196509796426636010994025126786999618825191440856729433965200560973553601189562118845168128864189872402043490679893419838340877022645091366247779044263037653560825776507426685610070995597086748784112566124107398240977199405422305685287979550633917481130307558781710300495306532365116969577310195396823507052527539371397391259441752294635761759899198471404303368167643083618986016878015605602142906694744966298947656774803998117773285542533446536960437602992275639798875844370682203016897189780024148478409952201637238451030346137800522028098507799372868513876899127091579349414446052419398432064203333101325124099598256994466819513620985701924988721723575717299031472841958081964879484374265870408779967878281833505383103476054653674055838291144317726104770721998123157829837850303347126627213586771550497142586599381422350874362301091057295882886473537578857644645620443214363486318250642841295509891618071709135758376342814267380944226336082567665577856474507440722695997808150548771394019980778133192311063499971034803382080903123337910060974199419267806942455198410214657720176730203843497520185158349651020892085076727902794745124652521053041803132460834428723626368564231721523306300461115028439629646101792839296692669459807791553442514293197754227614050306577333861480629225831153772281322697833253190929435900344775646406424823983467764652064095510497817531265819620692945389514431832536360304217477356433724559143498296240680325182602299708331604589630959763302252223865535186976208571268770214488557078995824963366464795865413024318870305432972749544536570285003340737125479871952145499673256488766876752405233154151735063852275529492978839879070701419033259635146656346722792609557346505251433100363746533182472523070863283928633549330831091347577643890671478558874638273591968723539432535558943337944168284614655486689649290160003540962984134489014242618388193443284934834252896364083793884908926514385104606621993219830946104551300699584360678420226377220619816150176592778759464759277512190537476324883014567323784061466439525068720305730622349357681570742688352396959654993568446224674124630205593465724899165628118193247730642912426507863586239999142149016268495906523632849550008785271975724457421384185017182186905163503037258158613795424031854947623146033095492707489649897080591669640100747870941335352494756626619905144536084850351755466893657818254256583535347968519251933558995022924607472036979706503491901503697899076253110173524999855358097862732126754924857169675431481527505875687026304846269991866533437326797345232568735583288347832720973140610790723958531971039383567426675793707970100634982585633448849478320265073638253072157825815696731898779785001963837383552308710703911783415102295549384550835401138978796904267558473109014594645470508938222789201925732219393462842956623301734810432639928592736663825655278373254945494317371016417102714485188212963243103604614856181862773669131740916399641164266133772400350410108353596126508323575188368889753517611434721370268102675772139143834939139043388607333734280609702254395300489503206472499415699021348306888612350962805548005140880591357743836822877409993257431843712319818302528277641723801899787383332728551060852290329999907101129755175369559086912017053499367827826669391343199611756036451083883996314103097870662116233917794652608902089651880745776231511704825815913368919362921895226481679754864655679827138462941351975594322386778813664979251121593539229433871291757103798198126502685478172960022970891169224707274731109061731057825210355735790493202813929946386540076953079569964782537983753317780498724474401504719680702610571647742088702008265683056560198406758191551788572557845566571257522892818138759302285343249779077929174258936264336640293839137544894483734076514808990245330973922056265028792327415786379135803744206210351645497525375887257497854138156445881061056440230573075303925784189629438628803889778398822417238790755228849054187041992044759172123102296318449971215123988557724283655118564841224384935740893906992743013766481623972888035026754278079989056627455038885880626293587871626526431338488827185008137908603717433361333587635823078501659014402469218357955793586018607175205503795551319523816110246493219076796461282041942684743468977537439186831127351483495561670598153941888385549874591830874095592013698864143133582309051591124139653720014330114479779525910272067217973706555059798225423150008133945244864669918136801354577298322034340544572010899127755162247117435667660043959729136090638879406927584840570273154926219212210709217258227704732609453916647952192813260451382119844529677261538421687637360950115305071629319052964188480658625243962397250132407907870819454853493624829098058331613258128415918546129374384477181637566346889475408249137764495409418495615297151297124939621863133270808182551493025655890708895373904478539257507935282490421651171127782609125108327550972122668383199971291104877993920801008741429678158715452064287111872075102837592696161581707891374689855452567690020461335237114810027941556496700251868066875669451376894939827606752085811306732117805958684957920193889827809885444760264818329447670285680251095338263130215511115717639551825974221386176471084016154714169914581106499940705260355929882846972080287628668403228541801359640887803982126619146768346646636176116627581696027368056129837802076639424271830764342372787569169880704760879737421920117869585351569194888675528891342026549105721392980063120242148338359207657868549869188081259055948559831377971385954479450278736407644002781686075547011081084297248011958070125120977913679905030743265364226338336809560558467760219466019006405205965945376144500042117814900907448937333843310400712041047680766119770429661497531670347903179035457088864217171404869309469540625290650413515926333536409007119613687503599003186080344240479615468304815943570344764479973193790834931385632008876305414423408627787028952253032343387567432904580925132170233811028564259054662175953334767117733815092877082379970149427290894196667012305494391319672807874960356138426110131348223033483527359197216125940375014922415918908849958429529126269702698266494755225973051249067559591556666971767680431911222286955910989011315414146280898541955778986734486791119275439389703907827543804400292135605264146071598472530465322915825585536921259954759783282545990484475891643771279901707270397971627354715014590105547657766979935833852922821208588684071701935798301326179140261430058887703957817288754781482709126656876977395235495510354468553004131545501295227652649978207749561069778022775431847011166743057215694517635583142397366230780587341651340317964166554636582594619717834760765110559807675709948440407418632346395481893589287138106691699669661771717189402979475002295475791185810164881452356376029705770580894194385886008975622758370463906069348350672874801240282348516582680935505546466929262839229681182787230238278947314116185249512127223661169441561789309766884485405972808274461266741289824836266307264346236017205043375011573905452109598032817369371415602135236841528815240178696620191012164271489003964592129477647991558419510094655699381393707776064142303692736798372992029758779432140501119762211832310164549394135581282576984208951710003322157607888984334673643003971853697433035551914518320366231090827519795409577151668786022255789990673920806787673773751268594433301913912119593949596265218268329748647452871331074847361078505171094423718305721513628104846616893665550158592703043228531793259900573509619870184496091843256670049521294245259368224562312636077602643621626489793253031849208266534964421526865581054003413000338014781720881169109369767445097751705975358585666936968874553211478829152838634184125086103787469753405950444604611922510967969342743762943375006528685437907148667158548594851455844999748529518859907822516698808263002519432688160904130046555893439813266234024685913106403174834916645411518140671892859841326569730670215127708320976904843622462209594960906579037736667024542663122967996340100625014321196536962026906745026244041250402124651037080583149599603788887066918659063301991077890251744940127575343338253878757690343195831020519767194311950652170618940825009845687139359935566106171127319522468520694291121106565294728160489982205188065749866892850358736290050451123255421533324572544431025844847912845578997915943671287277861927496949311117603322574870641667484948332407104950386843016197407158057560900961642661479980120437443736547036344571134638747389810375894975285719788782638116868526007838801032402790181201947724911178751597371076540119721824826683927461654888278771881400535932182760646606234094928747509600910970912614650223567960377401968749614876704644387660549480633199758001971283510170534007521862235424034201228107443086168139336243624591435160370097044650975808346550109608118550975390425524215579918795849463606928007007560968205450122511343821277105751251602200916225375671213924904563812019148541575748275521141303154055347083481489476728328322674648901152323209505670758184290643610280307360454674647203250123022068648297904781973551755685232766861477524017691871887678439942526655241425021013751342646734381253205694515954891365859507915479719139045240547053867290553774267435977922127735434845021511867424237063268087672339783941361803012415192828825970713192306106184306256856211679339116835657899328158105750938157440318763914914118582386835554368572423399981856844593520600369771867968721767524333802244496725229743633590993840479169736892267170040840235812259129938374875763612457884368072234846018115866861988553044773638651239089883305277195256453938381374496866029050802642316337307184977558272764010575488464199000878243810732193259464665033557663016609283384063362066841404961008808662198283200265689124072141521250673288443318432373722882708488289188222616449570240272921851197317072974484166130425993319086434188954070446757572200455327545278484013180947137902123075955807298810695723349401107643303115305557522360897350782574070489129012810564826858500252932242218989671528404122879477910772968071529924601820245562675194695832810229194793432656886966760096495231943701683420873935122078182257013508709905866727520804392735965509894810471195241977115304602119456346197468747796682792525257956588268232350057111111058607948474922104471300892430283007126882774520256349724033624634907853805186789668375145342252711398192497371775397242169699935551682156033577833555864334621712130683878555941306098825068516138501455462511453111174006966906265819124028863885013904025795040737247596132706883288438213323530276931647189551972034978558931675897409677516580173422564326587632150928717239736095323378715546919597235163941802739299745070998449829237135669133983755675797959755550016797780538350188564034868343945128847063474674152113560917634033033798429626993477692371246392621980727226287537393565750253109597091161426847524489278092160762390104783178303384491955487446513015242500464630560642513005399862381318743913988866149650994004855203799313605133124789844901244384803450352338287825579943222463024492684433779127121826525078134766894877416982566248594899896724162227815141131210494709880080091915878211209874581579115458288394115891071855954101346326450574381046133595161298659349283774171450198283947501596985537360835138709723589026070714511129426112915473699728347509919352083511536606761958622308698177947507659294460551608523627779659145614550737010223295646302702245694414886640180152336330659166628605916724909022111904676734936762377086454372521263800805970106952199537711814230411009784077027576774680170618264956256389356009779717858118189869979098404744520934099814000205487007679350545485710612901050551671922429580012100459195482745947560931407802308821688467261709339781246376222985158978577328061207864930853514769929258931160296011003929840674793099461014508519607842131299373466191697477326026676289362131222459236183685328475563171390564728394627303013983917974730366077448084032101758522638516959747310073833331067749658827480869926456384042141908866840527254582617376182566259323658273490178731314522031100841397151671975328060383702594757662416674190981810676953551753746614607181916662141005780655440326371916808000717220900231636151198627261423777189877294663762143964659559001138462990369973123745840366296186914571417672302914188170814738086351748926602329208445732047214007370694076151438105615987607742268988028625241705111906206977509745438670417576507671632328555761750152894673803686109637504367862618323269981563329766785227845119302327405174987659977535840437281096325867346190922142256027002279098283335268625951609791140608858844063614224742069048262386462573068442317898270855949708800160079368565993674587817870155054110922921588957727071484599079088011556763242569802099692915689710161042097110668313514318828750568307969871608139604916367023869122811628274687534328193883904322341520930173264184407040174891867373969335632683580108894616147597072343474475213845741158843857541952618271100521580279162775026202043950329556762216851349362382414907674584146479707108374873533321048552640985305558621022009144471804784158096172546304761739833040793992547984721677407871197660204846599654126824503181754966492797450947647908611141663423009006876368706354891918550517069540174073528546331389893752592985865345633764252613945178173038325751974667526278004124812572701537942554966972409264583833660947360894650842858390879283110849830172070269935589973283312034796633758607582843707533300069597041870408024519506960517663825684902196256602193633141240986977491669385148154379753760706957126465862747711267244982360430067396366547811027432749503071812423113472859807551455690092577071409857804982720048416534234782345024519918192665040939203455560346511092433927829041512137720070308195822113682801182876736868003906782381871235609088513416044556964581206862026985807145539522702836477995543977666842495581580755742979665138872684465024838310466301296929149871515629431424038703090641746435467619593309024343939891513138512587593995005356644641986542772890180860510673962151529748279952790599581694841557651293449383996749588778814462340228215270426744186780194186469125426374989868765219723405364957754141972988034759282250658872333023928371249683462794305074781289219018950856737309378809007775251343513812812134132945185254373873846641020020328225140265364257484775829624430937379274661029801734172013646601849695857481793124341350236175171005378839597692059574375774694191595036451313004015275858819368918744199915899726466655161013194426783297410712751666909967083581634381109032087162780890266675703511193359934431614545336495963444236246223908567382943148785105151447430091384539573316986476103487317687008288975619553439603407117807954751912795297369545443774961469613037616320196031031696238612484287461747660920029720755795134223031940817344079641613622662126929971919001169824272572188700962324153560958997602984529009335010199160041470052906817725686475023610521225869981048725926260908781319068311152503577681489465506071232798136648600799452893582932487912155053812870645128724673803297987615139696287708722804332512009330066245946586171176800303520888082767796683670936713468136032412669272321882043496110978755156986994871926768998482019470400190615804655744429090510482687450201722163788888870862381425011802363680049743916488748969128828128759963373217766532546497814573912184869159802372199116760611435456900989240462798363368516069036300426897076313575555351171368269729886118590569064694359113898457771760591422145925582810419950502014618166193673621057169590427724092512246781415170794642921821002905235422474878078201467287659832153715719412254442915636421613078794991952926261264893942625282944572127705212332009838745603697982984848251134169163915505980769599380763184223407648621313724742523585206589692060319478918536835306836581273357741466679066870854915109616113363854526973545117329742770506493392708934612287350031417590478028838963314309472920527196304090619413550094066251132238962405625042242168194727761858182446840328967417273150842218893542976205049798247338325640925514595756823115556220821743418193220350492247705336765565769348356811567903561874845379727090749567217285017091357521320891645459054687836966055426181145364645030444165800634284674929262674299020516234608857359541809570509822261304727520087842316510876921111595061776989288120932337184519697825163506741426995441819579411489391001859591398779476061124596077202783150169458467446603774414832223910143431954169881218324661524355407263879237270587420254838454394365145031575474004708323758458264625370101264320478061125759348975836005897068200666683923617445485070173006475450174489801302790922546359352829536932758951345639418443509038457862366975365514767050660185734125085852640261960722099448352845745993637616569421371757250261949673042845163243658683806225129722023549706736482773306955813664790843776271206870888837885208864211754029378629623217372702437875542833899556871615607245804379677929088269859153938356823427165278877670485849351934226039823833950575756425534997407342398839402017017127712282177356795139492597016107589735997470084873925736027552139348263853965742144476962580418295248070267931520351745208668026605473501934833926006699469807617132779401364720753175275182439716833939224196721265066494852679613847586181382202609325652322309263882958368278141960881002889753176518898250060880857653693316957879737031674803958267278904168048148817633266183498030805541515271255508039574936395601637286624641195707606833927517083522483152607606157846538049488749330294966486911682727054625065282336360165529915842100820808060208853785328099606811956291109717394496371202270905062925031504023567637858471562320809937499809805283408526530480503002330312646316222649440758439067509550536473846955047997119763238974632911991745447137361387034181282107350671285291118542299873278208459717358468638362100092559812377653695892208115919081950520381149335702047348426368426251748358548067449085887659527119448408409673150122398854949314551346430553840309470736969962419966210479941277985376257608888825940856061718931679107261890560208740333275340688075259715160557707735667346953284471719422953138517275664373448798109257303023739079749079290242803151699321585484534552369407671963271560796703960251685198925424984947667923310326854838021217149241402746388461520575922071353797960933053696006042210152722542336675166082007684181586927386281543305068238443380408606173805522948007508106826565974258632654939309908203487467401323437782934848949901702243297950988150781268874394519249652223890559220321328330543682184620999872465347049335531275824325686844909709986713028372838545947225472039005710017927052675430733987004724184284255066242132501474041922242139765974320319452854608496636227537649292541711289872587674836810295177611501505958635871825142226508197432580204159904311061244325223597424596074152330431022064142261306256267001159806120538248458432571580966506288036179209416050917036510711770559497344949479260600947212524270806262135920880885131982202256088276150364406050508664105016244592025570587840014618523084263992528452155186531630889731659242964363892072526601891498240683469481105882344230977067203628343005970154661723112997551878908493930107852286299775771693917316223286759301594295623016033228333743057774503174008775128984779303486085970886782204497927250819394169379656115038895749864671647055499749183473790024478012611812784049544160288467534744576763881115850577074653091843182118480954175315678968415213091443482872684700646821874763147798889724485009413711168621039226828031516490587914495740612517568745960908592505127084535643659093807283003976294424966936959921601811743926240006146892808133167672770670877626233463411960413761071880031987641542669788662664399930327511942761076865777815041873354363102079190876758584807762676044000712243871008541776850877894838870533250037143092543504057696290466829170524336804217166347255871528194280305874840948092977368208037887701306409093371028212086185990811407776225826267079169799495420783695470070773931787872877603904482003029158035923174548480002431143161817538315668101717319610565351659264245408216303819350843451394541678913403227614829693202775169805933886917499268524989073680099527443431948924342811099824341332821263485438541808664905732521974453292426755465194143386454916751820353078006486030414412794959174829319547176022325405328028782609756822378298389082181586093738305134479556804641761815673754278085531611077322678977317011414192395703466388253396683140257949547275614182179969666327353550752695962345787096860152011853197366213417774230057812132781370475306908580509608043300747958358702700730404052567018520354835560499953397529470917832019365321088630492431442582534821183301026942564502706136013564443226229681234435493995465817657123712521088254389337508754978558899322718465521709040986273848879321577666287404033427927007227536055644292431359182378484018620056150373338826071091538583813996572567564362877088649821315425983236333440242681228087528847102701719963355088475730426490277479434298670014475358963890890206442607687821322215083967372387852785162487447131443912374711945003987914284798287708173464610948818170350555395712633130544362122644612784708302692292442147653386658009578955954886854642052833569203453280908361560989713752129102031565357573906930687842912897157464915374685356716989748337357572899496376607415562771446037868075697535178579032246921992966400750329660058668284937203713324396214477791823050208077624258908210644440699955628638615330152607384659324114870797313084533376513206754968392504557608133766735798688900004071900917404490096066477499448362016118165214236152292138738706813269076011998072442142779629124135462467017078696437930640661136630019427197774115769440750531380706386190910880746087993311950111145318920458539918666244376323855801864954334491369658204085808705001614619530269034976041635573843639948710519740441013602263561448366711669417063930499653131677601236498450463365802980724562756448705637636266960656566482065761238177410355202101340534532417263363989236990341755888426879709602868812499126227932002614672448055924959466030545381309050230187927711067125615483303826839980839228733937528027761777639211436955231138194081977298356194430602337409093101384816989224086913907060584475826785559519773795602558157598665786577043937872324328550246343133191019236298605284945870729335601965288453072648840799950053421543083529254695752020956595290281144754426013877298601301055911294893348932203613154735751121017292705712635686991682325565927249462396295059571813850793154132806384265674111220434973374577507586043155276490221457586207075848526250164789868689784934928355280582978467850859212576266029730095517753178854481278573504854389955275198117980862451236218079663048922687015773355127259832198134384792128349625073034788893466110451114225344607501281815696034323847646151145574674149081206091595482548346565666187939603498905117514136459171178900785818207038783052154532589734623800149507098118710092399349156867834059944539881454182303078890920868586830144699345521315492381649747213413765060895413922499358136970688270376912654228231957031167907943443461958574381302191495002769899740676083235396299406953319152131265802003785926419094141005105251548508110914057699092252998521853179538274698487149029845048281778566015989363113115199634985226873362260868177826899352349429425513305860648112379462823490388657166964708042308447886226941271242634131650641209432939423450047601579018970950386519719673699350356216969577231867527861419713374415484823251216305191114080083895474174055011403945217892116472931592304467874123765754832706802293251897242978462341983277008850684398920861616399856656953483382487464364919241762651309033307897600931572337288691491280448803650646830820074967914856034584319135147360402389764629333581854075063762398753560759334922650400342058355584338416142100530910464161232336877984937674833916925894277976101204648502975125790993933705025449971488401974082136945867053555808510393625619090774943238874680723706411852047349014951125304586860741881377401924085219565124426605738582160952706755018828420101589378605032907445485953035753604652736276293994559830544230498381017231973234521485341049269156229900433408961286582969923421938948738882843034965462214147136013972162754692348637368098233748510587752439284262066874707273843990499397278282279188620671223219427973024438003965342791555654198002689505070516371666038429062360559925262812782695262577526076235735637177506600320220597867846684168741477268060386501375226750986052465736246059899489422582350063686935922175913394469557342434709587412129634952475283760853810804892952456888784103481243228329630896686224465499180114689430086951098035307744212731494970794743900232294784567771207875107628996620468908367322543293081227843175420211094783606749349437029105365516761796882363743813635295588308872128700566576615260349731463214948623688282027633772325459061367432346097012916944710810293281996307955711816890771692967518156493233093220645417255422720623241369676143459136310551853500308713672499932541661619653220619847945346070406671239482377252419598920946346541022895074294121459073131215853722463438607039106985490274957210277372860789161953332166300791194384189733378652049108309185135236612291728031865351381532149916845475883196339790321984964918107861733087763460554608256199482517269124374160124273474250949785650183169697808500097690819942660425111814620052803952206923894483859458511984110781673324532354328258878062794888540878229843213309420551002103654784795548221222839498335333769057812580711248853940169822755992474208689598165228900669822104105774408040122634734758319032785961643589834326193621921057645706002435427987823192899480809744248001985533172173376579455877471281812955489135496732785498415640861336783026705457379739100843906805758010020949042969696284706999574526871333868385905650273834981653256568639059802769584500201812240814386486846732683099785521281267507867636545981565265346318442618766558397424129455799265492478597250189942867911734877915181873084816185621704428698516273184510342045315813930114284558256501059042416893913805293376863612562317243308514807676657455194205871967476472387500504878418242988546656357111773726876408529811395038327981643371889348631329385122689847010678918114997929321543518325438654805184949621713729630701993279656016509412897963049683928899926553545523163240963161082912292667117433087494861260178795702273339867439991282257901276013663182573296591360717384319029985193695224677400635685211379394147244994718313128360487668919741486412854003946218258550145607343047802636904211971984199867186179891242298998607171727647075600015499556287930779999762466119541117527328516371595376410258449971928383874116238262991253238559838541275913659901863824229451499701490706829414157613881829115916330221597435502264922296918410041037911206635963180207694248693084779646112534687038983907277703776639431644829854136644699541312208498281697760657484514737683102565442656615287220070953580817643083552662263754494880173828410161910041314011251778299644305374936628365450806522435916117342470951372661498962590910783789953710642104137691904590420544535119926810813876532029284021304517580005537223081844648687745797686140422969709797117705370732413287781880065665084445185709212185940178256476011419606378071278343449397153706654155844085472544739331669351070557580302152817743958763540007166698937232309024514022877820814467219034850890054887330657364771753277388472057631005869837759151301975277790041104062268474134579386012493442831317175577321692035396977709608608217288944137609806861797070726432497678377954180186970363226912648345081925588233240054711038567281090777492802647281446432946781033671425702693213163059045113442186540498538893678589666445771661503640574774058770996788389022536646405048124594069536200430570009547774657040076402176052698851669749487090620880181819127229050174947824776236797785791321939732854631199545085776845973791278939340561488221383612741701104746659926546300617427568180470632718725192085713113071372133107615168938311758267474547801408731747719325232686959140302382755797381320146913771093404157588420243283449073180129661126881822735235340723070619164896204199940392318755018916818009797402723122728083446288478299847811658398749606565095550713451855322039587812094471126613616695269945009949558242801387278495570714209751716768618552173426076798203741363436015008815384458723834359622281292840714980048525322581957843614076984978430569805874152541769546087244779990038036524396963365242548422114769846268280702732144860030664364741614766737970485958183435266487508794585956109565707807175382719856199060614930023619628370223510812241221023139887011052760263765184057762602507483665155028274676067364427722090742258302485010150167597665394434999093517684085956237674384174656258145158587202655722749612632361850403545266352011759203167385214982463221088451685795549459194532666853244909520187562481118817299980043078633132421689575504688171411734732383947816408651516913375852719572925435943030951662739598106571074893795437441773854584323693797846613718422550774399951300994213442966606512625141234853357323304245691351175528598788529109096754830391371191494213540931890785735898799907836427072529370273664121090349898320815468539745626378848601177355394107112138726886177341755626771233991801627907837408258509841689704642118741962110335652757231811676990661560017802413727546962733718923959873788783664105198306487635836582745630868608692798395950195387352697415734845539556076258882417488796282062271230834722518118359193234588138103809319400506418935405795335662227948178640276706757445759259444385418061121444914210767310176642129451160149660937776200066050602329264959195386267571064035889181670259293895897968049257739989770832790107341622344831852405795328175288516899625168661728473538646871722102628215915786709682203672279761632801567611795310218783849462989390522670206713183070656851609003801595955700952828427239382362208016050284781957933612061022562474846847447125619274298123194584667078612434348138970928262404197621707019324808422460958371318103353521139946067455660442474699984882496327661377216665374716811978481050033738336496023580501738906089398006823912270644943148692327136362893853099740459353429591018860218495437960862763105423193776281808147214256795559367815553332444745094071384832572723096358801866555806059947964471428280063834111194024557765076410803750516617070898259580218255157583193187616666045966114799938726212901187025905599306705950910519513853417053496107507743875821622274350626887513277687663502612532376913302800995558187329798622514358929906971316710565821581165667917672793603490048246264730933921511286253121245621323732468164443269018803813126602273056396766621638563606036446384385168396991589099638127272258132217489738308842953291461868305236954112192760523203888148776089209431492913715305398784352608339590128556137026267937550228454778749807385197555986717446401120940288174047389080235479099987440406171200846117494162066654295008359600001845956161238106560934346155841899903627017060626492446635516162439580640981449498221637589835334994636918677615262957324854707025996866028109388438272453490419712634483391306679281360990254324278250019752187923939171646493832074835699513528915961698567714193106106265985991657070062598259609334489144585175517995522897907908650138012558074449603393611394215269913711458286164868498157357664760891734173489629923564768503658089602615493443669285111110288486406304334847330744593439194760690017501464962321123785025070185973914576067971589567783442786638535961031238941839475937031188897295689163808174748987357206026344075880750127034384647304152675392804682541978714833463296703759813979575928701998989781546509930909598549633925091592253466202152980735021156888544543144015210456365915526916973849420230910184252496281189589776703590618553924194627974443278078778570329726224039971484754220790681302164078660197056619081526195390224563527741096451771919754305077776312872600862107139000477326075067486019886090543798134798401926229096746568546807628098552675419574260899729171079304194743687467773547798498145950580040447473561444604556217393143073011071598365677025226307892750828132623010977387571558450616190510327283700772666710846618742060043098242155098447801646617172644797441946653162946248510398480249791798332333597580815590109997709320447992434968774607747014502537311404852810320811411550342022758932281731414953386248758799862256362381096351905596799310023948033813194716632831312717177595961159324144503010045052218785345903198811019757064613245564722731662417410100257179617135480380601512661124683004624556068063480356530905391187989525603955636127252965776611841968809869337816968461924900774443690703471090091680788140465885454143306803224217045821620362941524590476023063132020711011976919758097192275450628110590592528577568853655417979763984207054031378963861416647897778337785745256881509839713081773584985877247533086885191518675167343395179518880132853725174213742490082252906166027455751338730271432865409211125983906620556773391894769211163916526271859293597019221875185664252511368781625114248040154773453186300710462096546527501232564626001980578627548562971779705504124976052196687686572923219098742714915835803824246716923028803158163196574589437521064910427138424827009918644489576123246267496423072307903810141939344226150148491812126298806989708324818500993099171851203006960172887442742083190341923384119636458777564775769861837226176747205383087670609375251447629176161745088335891791129227852048836064230400442446138455975282775931266050215856724316891351951578574363891622682384456019861725314761760852116365131564629458802636001615562987193149298199757259540997606372305801640371228047303511884066387508995637740459839152102260596635736912649857368804021617807360104658409316876727716688424759058879245380841675921760999857228004958083527231529413771139018248446948147489168315920582604666366367476418496412645856508500927866194006196921197829900044860158608233830238544495759701298896387130889549121386320515316931772652347679357941564241667488043883104561719180230294206138504839853955910550266050197976685321695476356651585057116654715467606864746439198679657903147810174098011913297998248081358234297195205391174522025370871728293641943755896775681612119101560873050674697930681450335642799652976472492300084608903650039091466654779556195868995572976130914204460198149797992194922744653043149095286936097525673933524036968439354856229323561671638742847229701591161506682950141732382732559385180950946809650990326686994513901189006832735726709470774441825888479788089383082867362645936612102013386610198684124930438292955337089731996885656038956145212990174867881172002395177093468560026430469483889589206591398975515464783951950840135835015262368807899462737462623954397545404240132440136291854533820653732124233195234849804944221804641830134278509324396000419512997962618398157526491047939942633269363536191464599977646222294977777967816971532151886307416959303002145757057246104555649126901677529894220293519796605324751713021048546999217831666061960447584366228491268851095582930461021127131355252065345707187654034921306891710007201987214504710445902528219254328893441388922314233439821011535536716220971337224728148416871240176533713373173609914627158204407501781230667299617469731554457526793500655329794615132165948812411643120601579390281797734316895055890134156100265410547615896900468402834785931670209376850245597841483066537960657312502149533765174842523138520826279078286323073977814562845273060124188552340643896207112181439263678696010536844946402615462104166287930831890786072038212484294970365395469601277122243386430599126239265950175673098185176472425510733883491558279646683759607773444404770850977987767777225493024832300729616862285774066119480485814343682431974538735115057186493792141089617299812110760647827186641043489425308003213379558236381188386868774247450314848754277752386595417887538702525683209410197708176971089081162691242396670585943196520030601104050787660561983944351102413936046663829347050187875145126552580576912386544477546501818254048092027248698559599848714251478686774169973760351587447606473844789401275988027868497973480370470053544013521422487800690439674525076100575419007057218776918262643792728213723784183450014243320927523228497949067021612388719483145191819582414321577871354086800369869722256180322202864338665767715862921677356604085714703461717069742499714232057209686762102694640174179886175817402365447495176063770323998255096861989400119605379993268923367577563935968772227027202345962098521101750531743987867998290547725217987974007743726162016583703797370865471027362910210557466528682612202344521223187398222296544722175375292691651074480229724758813275676073132815019905026790954727519044438264799435287439423970634600881034012733111986488172067978679909813371736721006990928437528628931582194949452899288244062115779733346427564025068628987714981148517526509301911742311831947030129595416576983755828045237500195812797945480162069546209793347787744417099076449498334990198315275318669448454073916213431510655842767253794246520554730460828040179944568809806866318098292454142610444585479598816383763548153335662111403607282448545043152786022815210088228084929139092304811276168901223758475747880490561987883516231361166486418239860801189165552625423279511487909675716769200491880275505114306506971613017209474506281522351676095170782448421743799592551687852788108890100006951696879974099836615871822447320786071550092206863295064193704442637582789074189513854566857230895175469800590457527924365904572265638650002760605846541761248439384394418826418261440640202553688475937622413963350352114444145810550923299140644910231178088320680376919089519722725565373129215343090056499537627145368913870357642066429520082758603455465562395665786108933211523339425917769567292813439793454831863580557232222804780492528170163785051797215855247590962121372146535471855944122911350235290744342735646198464730814612328900923472398159452126166629921613453291682552697321010097487396240882077504191677603842620264407996472048269989362733709003853461990783159627214488608656870637014466734709377877573927343086821417049122604996682705268622340358700137843994283824062601149235231067574871246763250750128272509340121488545273814261475248878635431844158003585607880363214868717534850746743705443304931302291571900962397809687713890538365726019900920364082025905961352558382926968150673460883746553403740933513757370384183115912443496857540514867454931747813570518929263573557580383493688511654556954542462346917489873153548019064014465574298098685710061029329597325952105402592893199023893656062477305614175415985883963791080545239102290771177153810569566829575014210569745447775305221368851200354804086243869124999595093670766457511413303535747790662898736551411473199413477021994330510661651168093506913458850573882092134682505713865930532253341657482141216557171918555305520975544571361470456101459958511224991614287511271207562916681584668701878917345776705572616192520938017205991700261999374894586552330247748854540570624260599052378982195840819951703378589685095911256079373415250367186246024961007474767543791807234457651348566837414271544258504157336372815587406825634230116672123332986167335673520381576140978224097387979091109319880274447020763821505118092282079014919565237048263210379765384866428466791400579197029986237228930242237488121415006726239433831154965812499885456502138288560694926972678186148858086104070045801336500845001023503688239879932151196385331396451762589128409669983585502254951571213734199505203974985343500496131603998032733026812005741468840070048570008549276430424584371522101291969347895743594349109037543930918543099851803650566600671296698117577379736983140964562333792773952392567289123555025308692180315248147271507699236881138686138760112401019718419945617707641176792255935539264141895199593210237766126927310448470086450569605812590921296918822226762156227194136035242223950190011954443640452275058670454963128086466364448278317469035281330928370258083707966290264005546118053028942335085375428030996575637657124245577377940340996063499881009551018281761363502768243581335722374219351530250740962360084647187892481383768733728993817232859386748638127021490077924136610820950537072284510078852969736074202151604951665848175040956544026983496746714158475956094733612256356173337723947634427284951811377821843367529229508894424299403928255916994534848519871395712960504990402286474593327251116517100262181266287277167553126709912274318752098750340826055826696223301509189387892001666078085302873498994738256003074707418187732012501656354361537619916316360766621446621959374900696158239367021888682490023410660362272424785342092936183238565726611665866651921147857410112961031531659008739866595476984377174067695968287793500408012324952446885353700946854766186871784670178810311530246808189183131831578030058462567307292376243330572007963553072074500417812359880110414270012117632067602039097317846849328640090587960042874507268872459570256994645028931706145982651356999182347956606259343294369163853920076314358352327001635582099235673989957439744111534740759587126654475939362022960871470320294284700180033765337480872898078328767255927474194374624945044000835686733566751773594366860666843849090565030882282528167975970249812974927189098551237674628031688980438849994440630013382990255316619288728883167659992345338057436946766985309311358351353084050272708041912106923508699048192510537986519347849721859840070490476214212077555473225447969458512604703934519554603924410340906359018739877537872566909031794336781885068543049526125885808113875040836573231067882432786405068729783408486975064391093651921233979206508469148476574966822083285943845919039051610989908799267730377108677658938354756538243394194709587329799722402606749935962923542535993018386428553122999334504214837109734999343401399350230793065378543966120250174363909059718472480392878402754544856649895853354042710194545920575210273855769140020959736269955483529898378278928848874320344333338534937232839739963597245029162489832367875455900187265685452178168741776214809861899402287550387129560301404966674372305844183558906475180168593058643579413827584794023147910932529713523163348585114867885333451574011250290197673079151008921658485421016461252793579824073950934286097152611292216363801281158239429260886564956933173865818110381991512152369664520870414548307192154904548880488575361025786913584379185036171572956556013209206315645302265727429775197094768280132180030582449405627378538621860756891757012652184824758388156934735499606808027571104758127883658600916720859160576474955584591589348627754346832090760090750304951240010917924467275116135163289287791887646515317945698845764596994789386963266765202876218573957225477545250470656253778801824623963966203166947342427760367060280634397769650965622096725027034335556903899275792048548656215810573981060319706132331733943939009146188115714866687181473225729571836754319586580096858046832301023356082503540296666171310436221806124947501307527826098754122429561147052550646006177639909156478821105584209302576802371186141090836853048021968776659146492855428528982634105968559316112515276571073965321689812468668666867247856484975771279615672311817828039847551787695259082691152058069176456315740259392246980303038102773302156724191894470142405381846411015328250943342592826952428166296050702240255437831688593114076977053005298046708297710413229911078204953801171671300381509854930119586651000015688493701112764178678405011238404683006952529146170624176904628064518333086291724432601118330275406962883718447574059969032411135516353887119889666337836362716457026292102176628205312943047113248890833479503542162503209471113169272623191139421321117848475774301781960024450310995963136331834535181720347328651996512899894500698661735743905695012199082328911083972803727930538066203189222583338660693834163297410996931862159508499516235071006148494931411179264989287310607888432780652231691906245741474913669173340826633495951554561889052493006529604703551269019874617456451862790106275173537744282976466136935354985968122423737751006068119535141762224184345427883527802311531210909146307882498663641443922959563121552280491263292756350914392826941330933600745117976212042949047709839133288544966493579938005770119651724137338866145324939387342215409632167575179230591531664802038027530070058370232567808013332574067434738608023279763867960855030479375616559259751775265669177636725451231077075006567374490651931029134830510166620870716832973788826838543902826991945949552562566367545772093668844624489074069590925852132277679686807895331539792338175717083783933420276925829311449136976476900630795508515529617867170211784240686716813601471732728153327806111618496555761613335449791253370259162086284248643035135511798323316538674623229498865784493968468358022764356450690293722195385573896171523918207332444661330851423954738650557554699534308591557719185736839805479258519714421904224641929352246732211858405966089483444812151105298949451298732487096657176355675260645599505173609530631780118797440655269023980012641861619522567828448057401633545783940242399738991513790288888581672432430978203818090076357661783838142932054677018753054971100549662287649313823867642680320839414473789723298574974345573046098385648034594480226666954184080540721422100022717664971685210750181704368712172569485078542092360817055456264454761657683375722806177720735420737782630459852645036433975078519373217236731022402519465860339815981425935862167176605988506475658796655542064020630826060425268920715943067210936734531130621793907157155107883734760170060159111992338982017907027454902598167348160748301284889799103395554608707054841800137519738052036175385890958928176770004179540764424516448426810551839926420462495043889315208369537450976191968386965647552381752278925146638731305756937078032159378420230121163329669600243691242574318881352703131679616352703344825211992212193517827811538104221465379670231108549910345880469566550932963057777468651517181888539740806236090568425625055568692743495231842720648299039575175312151379025079348232443609883027809299052604374732602026907549539075837714343656315693223824711550091823505767529170996110986473849487721364818240127818855961752484061507305806971028758797978358813517393968495070648018102361846386096677557576394738776111239329383897953652737418963919648429691431209713503720030357941904912812458829252723251190982011677561703528008056709054500202626353876972675786948513675274022971620951723938356988190945794821946570325962918153422260572559033112546372230430824207475359488598050593786511634572635130653744155185253625499515531546715127128714950378110512651011313066935822929480612726393855791011103723663639164615406200320830394194805720640041090148858741741225763767659327857420114241828479169624773871263397433935951848762458542619317708110845313646892364646205331093534907919067647793724096892047172103260511026561620843364087320616416266908237798225910219833182456604443114034994232038650284242541892530121639122104897425527003489903215707635727262500414670780684556816580783921925180642988863303863079727805368899505550504151565307917987681317426232867437499664084381501364703873853221197114719997237926730022829629961820748513125278585248933324723028608522240702276964129973366545275066625009481391692259343399058479613605048323518696113579954880212754595507352775541721824752755206017609513222541299407563790895782816602741771443996440017575267938757290520802368606096378850948813448387256666464254418178337692069240374997913492099971256231316156264680347449993610093257381906307085213893754641023310658905434924032453279994763790069355128085649040579812992606599374801848268391801876008154255058553361226859554303357501443568386758737770706688170425181656800151408616842701998283096073797121297495100478605100405748255651620593591374697105987466926542113804466720022944051450841984045043703745596300180651775891746444165209200113994342001650827074973664912501944600559444370617151338039826981131624590342825333493859616733735814794791074160213515408502338310167210855904981856146246232206080265499711115444690761401718499077046104334527636049306536613360624351078062973751465584054081403625796597399300209135999981156664817229397041198708574266790685144871212354592954324997534266014209354362736769183830019660843082693364543966644026725821436055590690085501213674526387516932806357826445232740853751590123035497684881239075611197228606017787710777195384601508837620500027683341513216089609372672726659618873371136088075742358027938712132589028886785691719096041948471682600122198774432448217361922886310813210131358298064100649642215798834897534753232889410410176232413684182708900818920479851431751830482203557279793334421448680737847083083786079407119306636466579323504948271508989794573911449281739787624353312293267288741294726981538423278835249359320601322194300163053812006668653198157932212595174667166675000220132305498479416927806088377739186476580967297343730466593359514024001317153829215181756015439367377550162366036565971407839177438660277657679390058118845951315672863790088383352820204625607471928435937783751666482990575399197588375997497136226314187818597070770354752947955047601736000639442891870522811119689049399171904670597462626567017706766653185354381027070467211331167338359582689021653832087521496118824005403726722971497407017762045228042438435372058423320864130399658857423731025511998269411949755095181153313325541188306581199554878992487398217333556343642809379584436057641039751749456480613001721874514667881986043485017042035929399464337862103109854039800824178762987259265248105895821227556996004581085922660956939288163704945145921600234325802787610832415220704732481106509130212574298601931386844090536297378127568069951054726162135592353702565665030140789626619182672170828420980222737453474720361643637901759978936232490639863092349211232020389928927370665417976933424949191107200187477192707876560713600263969232869606016605101699492701098503964235022450990134563386804166093598780498943197582182265281370254465516067104840873791925205541623052662960594296335403170505499707545889472023816602972916527302132730026998352631426238132441619781973767223572927790697298494427250174331666277392379414846233533172513666287776106343880784743726009066256329812732402808591345197182626638403235079406714084903100945379310197811244546137316357993390453543271509298275492260832340352006674936477717680772851707810065912592150344343538336322201732813599272736439619642565216317066288235620509900190996694571363885502340114689370149860664221385373610639796869581647539399221847962719351727886822832009500306053543080097387273002269296058338401949993732678316537381839586507089342435797181386124441975451931059377707177395755795622460910628192339467945865513279096277912724155803193049635919326455918129107663526146472171047606259328124970201246737308322922839320737466739530594546994158947806707037370837537707221324723449114690505064387487900396448705706655529828669654114088030773168006349584688339119324257397011838680032938081334639162078718620080232206297736000977925453448614133402602972943447181508884141232497514924395138105553906020208174366420870159557855602418300406799578355742936866904586775021512621955187201985545330526321652191116795659481225836618847125682717339471186669652478298823800248839984706997292468559100748250300279820735148847996729705838508989960571976018796694156200586241138486612240793556831882898947363983583466067332408626801852539918359289752935730165201802843832106426667783237901713609419644195260760918631243934310339382725369202906461042909658925087833549393854399792736638779268489794755853457027147483269125202915184044555948211997000585428797052210045403912971990086777766241317977635609214939335787191531977588055881905515969830323518598675762598808452286646438256606476238218228508035647829284568160054273524220978794907562120452722303067553710320806435801734684166782371679394502295179993366927217728490079664617921042794079822941581725692490712069068193331645146038599705116959545609438845111106885248031842862228230359229973253030786832516194724287107276015957896317898870919332106900760707025608759317551457666475979264907262465431121872046624386743684595235779397613202985864913079736269096666021520785362701299605993846301145226706491317047357723118643306333016666351489240027081338021078405668175515940138505966758433542009099793428150926766421943628868294463137186329461809550058690633522558165151339602312678208720127276607828572230591782242435642348738847892655207159526395186910421487439880153557975579733486185979315525790713205557988158013316899736545739440348197778804645357567554388545120199117604220506538527297730038810546619334322193699859533528468822918448287298853926796294748515087958713050668860086498603621949117587116037877809289414591241795871905275575418279934302434671198363026918278749359866296077209615869299427434602134690559018530204986212837331896339625210983169284565734959661668978631286155714962839622684627007875232248138279895392925587550819399745864424255182557155206970617373684078121947161638864606947132527397785462875453548187631522111558467737877673951053611927507604929913466135960423185631213524303708546512265375273312066698454907887354989981625577137834589968592415472107315288846845492690333395641689746189262299497250297454191322483587274658525083854651735329492148834003518134841732014030612687652161364692090240056705198923301055441887665707632585158470057342692714155102618366214189418224363529931522232259168933227390545501180951357621022099843758439574435188342816128442822752106374424095654696074223035225369184143571923966693687980582411316386714199847168227855667429880318723434031220536300804555704222600187555010322534201747528091255899974252829182689503943115857440355104691372588517117480964448862229873754675758816715652174693736461023085631955381456458209936209830416206541859439054160818402523959435748203460350446700158367033993826932367212800860422780209834128555429556720453593177398297373149600663245059919369354004963408505121399809618489033962153388168960140860479253877294090349613095488184892151715567082351094274615315283473090703313188621521584943666563705654007622316593322094442551236463075912733039235577940263168074962784470542695502862149707282992506266791896871021843884896532709145815267404715674569150611597100853344913349803557576522958264846642507844262390521862142363362055537671648178679481420935370749300359540874099846482026000744922684327989830914851629238041928750355124929269683389436138344355720672333032650850230062240219981437973903870120607580042618305114391112112979923808734048930585646755033940713027838623827375886058612611085719964810934019431880292282791180711416233360109657419215780806002034709335283776276760828282085459417435660743633152839484344174792778886117438481877393670786895050084042334966693640103888179684601670369889316515131122137526264057572606981451276593016347531191212004743426587305643214375103157927097837654411296795408615754919165078942849420852972711121069218197168063521292734953291012896444057322054896513834058593956835111218925757503570839496005922269770336423114202173944357402063558620572744312123706948054514404175980202028031144921422224584391747771312315200468176735730900707463956709743510346705185147604142298681481787439883735429330049310165818344228324269616600221401809423904978198573724479436774250542059672959189319978281621316265573634964761840660337500463016923059748401812697352477058829308698799035270446395285713426959722628546620663004627577596556590923793671772699640401275760829354923098885488108650104363831310151922879439650779634416111887975448682948461481856255150283960857533872422136562238472449359320855307958437520747233786774977491852292099461782665858611530128104621136231823147285494359793472488220847759347931937808456312065824090770428440560358875727566157007140208077027738306935960431210314344723888402579694032131332582123340145540179027271739077531707664168804655991832559732443556990329160837992854595322132268917225649117973456494266773100863287388618173153070334954812193647620139964771796363460551326827522893952598494903000886140554696319681196782601687208385075958940870172120911508540673830890922099491321448724955085037911466875751451820685879739246762012885617316197493059097373587488378125688225963637823157876059656856809755380631148023979227104438993391937019218157898884547202287164935452286665831180712079106569064769755567553064531150873366929730176455723193165284909227887151020407257786342762446012711421102966216319628118885980667948964054631196545797540650256198186427411315102550037638137582197711186955109910330211225174312353915196271753587659888471403052990697179138637245113933078973377945926598615869248895408414725698921877917785452188356224645093320188806777941829340462542286890661795594066462937601124445107753594116625311518926788520711572375428654014957597157743618312997660940280308714230408353649410906254254475408184591082878389182255735100832668583439674692409375469557482180885967838217283315747788654987398487455468109932827001251572554086654218941224839174739055856552318995667431412601021459162819332022116134591082588159613715301507266414021614618989630067626750555322358258324668250047147508802843007334822483479763185497816390872656472911285469041468974846109130338838924417903922256611144662663423690429243122882998299792174088358584560816796723625113722327297230765667374731705989206004173777675940855515978768150865819698775423688156650001509493908536005162334531181573112756480938573093023540837446936107121780311064868060612671108336541623642286197652338143339705012869992373514098952747333873899393081379712705368888426013856194212052027639329054614282398997391547679413980457487832667234747636693067642821226244272782188911022130580493774208970442153254819522946282559976936079804736933163603180259292766438997699264882875085889035551421362513951234064417378693270865217933844105094416794248606835379713621252986275936068161800861584000471291917624909575422112091572367548946877384804706018610197184153769170939268921552198925398691168745374276372114063649862199526127920828286476990293239691127476409314505525574479987659145418363900619807107465639709011412186336634263917340759539571374561808735120514587165730973717637320527222971798668790188028528789914761766534710805736918789046463723097700253052242787709416153056704645924159562144335064956837693654633328979096587518340033478518757826371680009218190972421703569956469677157951833047835093139193769222309773071861248965803262302149798795553672488520629382148119644218969395516197673599958010230016125061969366784617436398377603960060971350966252475897690038512922369233105519848707556920470732127748238335900747108954669946872120190901094657744227115160287455773762900129324404478540119560484704961515141519774900985443116661359123530050789098172517483437895454025656644198446026355578610502954453417146161415169645374767538747881005968935906302410436636045176461590240108262680356775276311613767977965260779465782844698770679840766413478665265613958491710450371415622004017253869524626707341443739956062467147883427774691870348614427264924116633459205407270400698084223665391675052474583199216194103470465575928338093987664227745564883097872329430980395613276999744443296884880594758920381615252138848031555955262964982132904189778861869677675388468897405298497682689010270032472674526483659862987740188270976001537815536416364719348919325799444855549602186835233928330072300697308394307397497684402486333226600321828869441153088631760156466800420460132333365538685815644588760084497067598113577645865814727045565940339678013641695109104097446889008493362128679719972863189279506993447254476122182709346682605862735212596372530628057373698998432836854857520034961435496109774243165764178075783759914127397417492315943608245232673199982651034420918239565631623013870884339852301838332859951930091802246537144759649922244990881059792246630740970166828349288657685585308261476975654014195730949823125843378099814545305312554164302071229623066641050233339250240479432453906153905956436922273253965299745097893234498054013116253001854181825147217535852699057319104733767107333410555126324989675430424249759452545000166073584275124531757082621472021367523025443518374052848947721146325477882646489088736810473340589990532026897599707663859754172060806410898579617144801245787499889478649633623043127473500913816283098681053771205979154897642863337034252860650929493538134895647644722640853235261815942895182152085653921041783923449158775905980674959616799586430177769567369841103121426327290165413265192223140092460307731362365278273632201949931485962818665705242845818120431188671698708905738092346500892556611211997439556277683667150880420350053199732577634565368086659113957508889884671201026058741738917293701353573210869238157624989329352055678674027095282913196526196491330630901987481093069073710694273907338300813529033318881260751979164336325576127295858404875050335479836285775164339008787593333559897278869422816422285813391929510251611821919559224217538227279395316356908924298554603075421454278942752666911013041212621244717400670378639793345835478467405974895509999891149797088889217788980705395380555858947783946300764288613453457811442275044722317181948887416862048521166216614590051483985357473163711099396105863223512110176624612073543341836246230581540431778844085005263741032183516135758080026519833573456262807157883107392183861530220111320404241510707955829958625698313336768295838582171845824694690103221729140080012325706465916367636260413946185780858698459513639517548944316568162001199320615508674155371233932788906878872494697536268798947433130182561736890054974940277138978977586079808337899225425838876803388021046528282130582377925070618217983320853432186127054913147444565141908533505105343151977173400215293969551764163179017500113756690502940440822305763701849669403884617611250464972524787018383327308623391351785304810039484175144015111512664236357748616836003652889365549459849848659156688176751226623747508760144171204641957176006791993156475778211513794665648479682035649266231432953153310613618757115608011381630969761274458573249695222978521449280155675810018561465464137070893360127788661151686549832568753181342628861947542811644390740383416939772382640960501175583638888565146282095661762090402473868032113104112556525368239992305448541616230306854953973762233425284749005988381823181084017033805690543743040064108512474840751562214563784471561469246768803528157666284371072601938974115482361439603421373489338796005397390079145998102510655666628279069434613705049095374729831270006832598100668405876677992598877712745452987110162132763951598769404553021994767797137980473358189564979610792683822662096031059261164412400241035981242451052963043334619901712294181033578730369107061638384793086345311863324123065812467396399860871709593504046723412727381201924329278074499810719258364162409930832154501309169316152576379743481439839704082809533662837294457500506128959239691384787328820597761036208195031799870872549614950796711535270682314089628872524271589474835795865790164623911745968004654156618552425733781863837746125884003804552829456404647735043196070760116564411689407369569027369734298149363937063652136756895497993897575049937455610300265159621684568307601818152075976728790510418704221635082682591513921231402532947103195107964176323229355766065521542568183399142145671567539290898833199140049856981411028626523427621880167189261569715446119684050423867808548130397337193922655733750541928828408861460641657196481402483929913066377528153433735626544196725712968788961549959470582638616793340902563021885566249994685676211949725609378942196919711993452208018138015911850268677113228335440376117413757952337724782651745927331186350697702968370164589287777147341916935411549355482849115998094485420952525777246977498222084077886814708535141429742028757895347211512652414550855956023310289746508695043878986411242155004501168015485057515173116851369419099284568646228996579910366879901429001367043617755200476441134718675722357148652550999262872581076393761658760902027727512470092959612644484930330593847425726241837558422182441029237970371819701392904200289376728480981840487508151840547169081549088632438329873407400270718309140371786332281876423837890492729432456802392026601076688576436492835698794270426445143729154559946522757829986616800124739735827791087635144559321148786272587101027546257342739267712626363072312088826840575205873028147066362810785254313642507687227178780016100863002942953327619998197927816311271601017805417130920017208316413298371306177279506535865692274094218727435208776455388979030055698042816155713890639647590291073732233501111983572346484014669004588219977995753971548757872646175650105612247596983984808758415914897068517551008503465548204883351059023382197296354363965917544769130296830042198527132453750033579627403997385483392210130637054058364166199227886522834925221139408111502905915184360892367008503813356344622974207463732273162765768256366700969993200474387053844348086400074494753920193525024928348572389749140587856173267690296520987799031617110213261464725952602365085022913149228856961610762715986625837301509632848809268839275486124301869592547831973756914224360655842543557540076579447294840202425388134764348414501021789450521898981531519816854261689444497843097947485799358711786971937466919126287222904989800802799482740409963385525984908491293123082551715571234181398762122148761762961805176607813347961581535961527757183643651895588485488110956213414761428901661268737246004044583438504119264324232283580651853918622102464287048491451419074334648692272656180836879963206283729838866064632957474893256191423669033843807825631213791622041157764087112224231530079206179909218981678488985843380349322254349022651635283647772649503721361462351962626877778251900389009634061686175052551556151581729495070421034730774207251620795185373871813058767791706425852147353692369960715382955496898754821333603147220454632477042031580265838599135608402866826020306252534043134484237267561619167192098588552947338250551071342016014595681273914849939722889534759811182545862218519384693001947342327273267417145423395016479973786300284806241276068628862594217840234812683458893114871403216150589120184536454071573699473028944900022851233884203445318245382841396104375666158549444416669586019985452548991394841014119498795402062429114268310792884614152569829896938342243721019618122600172813240785286787465272516786620769004200514553631603265290902368321827842647405654921871683769307140983034939854293287130164731113667801432183145283206542395852101870384438074804987583347181700204817663581633427768514736531802321691397250789959906950471462679077636196114601285812131205521166906256915049183733176792438537824140752645977950558678231678032151490650732171742954014991947429529911382417853414122091742392103748688900903471382020039337711246570551378745802163863659836930620177804822866862019130984393151603184375712309305486161203399109747914155816652755155407139453017552433270043276895190966171083978315887258253115039989686283959481547891165740879958877751312940744939824447361691413882946498340580104603156791677911104147202630427586333436710788967917505860352206266588351141188855057056965324494864144708032111498167356977405178226672875881480324040319981233324319290037011050168819806867918230095836736062820627721260681404167055189952094917823663019152816046865879766951711214122102516407377044233989146094176422201131663311782476876031821934637544771700470505268587063189153756640651535359340371003349003148203885409246171651877923575797688400227047918455868250510632916947987222749468751008163988216187023987844097004371333445132741903299720114392217960410280885009277924029587317466132062471437998666432768572619772148584520817928410829252636958757535161333915130200114184665371302211919228771726276422742788848776176373264041755715187014621174368016874759304122009846771200357031660880595236413363056120934919977601309587084091433012206893921404749238020959886968765800977789286002505830170219125879219939303945554620334405168896059151707810332854874987350228529331997093418461702051906659499224119642603836359822553726525484992803129109372859018853063202459060908982631079048037343962304569769346084156028659514744543120361723248519561969695864351588466720754278806292072198331626475956469459005483736527189760519627886303043353705434256667557572725515650549803640960358489372847549635820695175326120988043528311979433411102836386769181476743228802281181867447790304093789311194700771863742650878378379701882422029470524091624677796583365861963714495320436888473790563494614623852644226078197479890196795402314272697402340904839711112344870531630594057667645262057150432946346311525863514921173910306341715325861042190666565750302952617722904706302836361078399662423620632777074168286596267937009971537125318360302818935608477653853630579581249896445205607478967687058327309863557564923252016920394656910657355366057988955234206602883062816921961266652260648382567348247861629262156252227699488693411914276828017452223947099316857550472343863422588232382440032577768054263385812457213056048816811221197434669805923568972950156091745349935249724211209135257486371122371058997605890151961529894750520904912160877374518006352327124141602689769237692641948940496578949423377687674047274784112351388920488238250271620123598689265375350368939780630785584899151473963185091703839125606863348118630686738001834238051735692200956672417951487192416236810383158042715904017104232593644918566033664986614697099145298714069783702610219731427733386891676448152674733084921953110218044741144010256294975454855564930122504869535047848414171074286127158162468461815464916073777385852092855475760047607305085640248816391369193665532921104486927196888708655801355735485565580999818631432192593560838718510922453774706250244528659217151106331504756193356388450827195702150950986643451202853836393691349234489275180398856929669092350234170199574797240500149022243608272772774947621949006234937753755623389250151982868505384367489354237660565174603077014431387760515806974635416646500395236818191776980279571900987974601288200556559904092676024888599070343202421716511273505188684579203149923651709705672983360986898457400363253200945989357338864048013587351570250435131360961067530867587721085985858801725352573512250369407417841051912783008799362435628459192069975413366420508560408307185942538489236015407578904391635551035219482616325725321647350111668002594383868320747806850637010166189005797613602235247909948219962108125603670537224653037125334474247917021523258218825534283658562256505319556618830392189618858801880007706290657218110191412355568770315555154874733013616249764398650888730173941217654386942251485647942354306212567058289227119683247242165891106863396759649599978137516711242129962062199697069688720592780249484970850549535165246883591364312172146522181293400241106514563905892385510823880794545768728812883073511990009726146608065532609228245301759430896237265024900198224643721132568329859872036225829264347009521945652075844569991832803259989133939294767155030472446211276711128513754868867193343394131897582903311026867943677156737028580003045963792380186783966949036125876141981591205568578989654560900982326657330029592140464838676949501280809607488239927212676055686483248440503355833816546859517319727807698049604134859459799867506531519746210086737892552623296272217960232740388615603675977155186039717729075740799921601863849254036488084280943600057970928451748156647115835850323370383133640399721405504935044925084170171706788824194875940809580922522859127669150136420322711894042676225866460745828676363591198183240070833864237299674276336623559635925166645715760118943784544655086988456494836507288449715275442548730554542215091674590266587882593299765713358774538639936678439423028803262917485788094460329176063276739121647058807578073216676748634029012179678267082330265177109519222536485265174339580131379451265679200766214371876447440525534584722488930204820016955247277160631575216989118130223320354810236605709629889618615693760620380887881833909454169030670877336821676318276169081274777128557543604711292298742305110930372993611181227390817401020659973992911415107393972833098303478064276398578468439179949089190025740437530616936413368394573949096450997492973621459039403724801808607242679065417576998463125782109967274475127326426913099396437117501377576153071351564697858013523656659176442549230893733408444242580051707548972266370307320592663303318839743277364519123810048117306578635601231015021805561338289201896589503770593678426546224724572344608572560635254990899107752558421520985844918802247571207761586049055018023319741229079945125252908181374760239869185217675292658376270962507695211525184086957466608114711882382252221211088531226910957578242598024403056714507501244044402388753408593452713397595241985406751260096514890789081170238394456258928737293777793839384465859245826238388771302624051883149552028453404198942221159412306280256022577344282737991917082389929722459846028659928669911907177797088079564388575001271723019887302097777276546889011097911712575207573891114837183351454126559691607390395384806698105046721612392565843077188508936183706758566288928139184203193125605343686919148896248824497517100220972453950171028983318789599558397885495214660741822378353212593006099831999550812572437145400420741991534445038459527318462397210680785797550333691277243250297993544994427988049426822794719142926165677251980563904483214872316137740032991623699924396250137203620190621608566295998528087895506462986102240389785035509533922694842428937279886465415185319228374875526385862965271098800562439144520421643631735454989115088882159319433888007618845936025316665697513837371961497925390823425845922381482610970053481944215378683574951499562294297771667731841685611774733089844993383325421833086244208622100228689143351946746510241422204168412046409153434772451760226688439058727591506527937680691560178741231133857301228582707790529540145370925951910548219032392688710024258826118926694066948165991689872800233557187238872911177349695658840456927251913468628033742112950694605665587148778556048553995573601565771243893553010408633892325612877734300800007476049559325386779222281045794018203058242544303842025504990821195255348527109312869141683585870022474304091468258015859483215934483360696863802089972122219792145714167842162323831805646125448500204345760030562748043087678257115731194794900487229845842228036587790961867234485610748709813351460440980113865971468790279775968103192475122920377521360640588498769020750889660203052318186970342916543836389180890688974251732231624597378928347814410403925538108142257256875835959874254367455864978944878390447346394198574171530181337773780172702073927958531932185280592040835172324725956352485274600231596230063656334054739118985440408787580930072762288905678875592745002756272547874289046005649019046562560675436473587355069113102922105835321358241375029997785945462287716593384190059338376550848846486459453450998929358277648200600808397985551968243544088075955355291762112895719804823372802917916854985555807962825386438994601662545055007206231422305293367266551639946640759644893321671019388045126230178171143739119148050286580548075562650368762485650187973880366190596980188073926249377052343659702730715909275277642438312952345125659356584543694892032593806553641352483443469449308081440942902201849659011047737076515821071899003681984817072055773710938328428584299534868824208172151630082263919851499114010617947069707156115505682632898255128211896420567043127959098039068280879491735448678678205630803102916686912215620477668495959273185921976473681591992935601618852288314460376475551840805636694799184577227623603356358631947484289714033171233918917103413098282785264178647303940414533509973597463731137909089577188660911327469146262086690734185531544799537350529370656916732309987397768131807634024383243176577660857292455260111843621925524645520403006766132486788019836352762866668838696766833935187838290598002323126113604604792552140716636871895214540561312882186751849817491411434001522223727815381177481289101316359144513769054656261490954963302199677686120081944645617381013235328552111113140261806325537455662795329931120011938757162169487347095368231733472229732075665239273307726946526316227832429725597900128250898442970314827227763598364317752478515080554447408878506955186446098954974909409968448848059785850416351822830139724170663550447824913145007266905217188317562285452915729220375275723901624383351720798719343591849069249067132927074339529160002061356124964882732928224535876803364319878039539670224095686984064671853013022928566455084664157543698927360117738030753961015575895138874535622325052109142821094549863932158618526559609999417762681552575545765994060300453632415814268308228317703639758684297733169513314684152788265753253273301759177103420426662894910986696439420872958374890048146876323266527133647154308848663457012086067696554234736426515851396630102783763013982556838353851183108536991889343117095607819716640652642658647454979736723394899162128266715141089081781928822122889820574957955208039618361647928729066776379263966990428800910756954506106419818114592531675032537480063393276641365066715107605068764264190791035599134954705238910468086420626408893394336654840917255993904015124734941968991573812043084751743834052704410755816527024904203524632409355781195297661634460718319223222021744282305875266369834895474077107752664553167857597049232414403967507349119401296133523612040564959861358950967281489706459699112446749092442444832004384646326964831757928958982018098814781808666503302541394717661797998329591246729309221822632982480205921037924924366234456157947953965431102742738327980467125619210419450548933186604507085544191759306013569607138469232134127139507478112547588573200975614686703990696197855937889589163286679139808000934911992613157165143013674475060232399729454858249239171831039604059268261529816421175180069695748707931104862593699691246003282952506923404600568168980542582288132746104217640887295555228714674537046978016042422617075258486717472848944491192022742683326173799357367808437075790081374257011837314202306968730833048003751709272443733430942457134106902734984034010798209149498864867302760946166580218329298949751750392574278184821194300758755319035551403988257399775419402854531028819927198084645469540108268120776157196708891627553633956727591526946745607386087078819742385939926454930997654208885027773700795243068680890430557560660075056945362980587838495641170554464364707862474483447716100738195132907687988633636703213887173032254144291578135478428725916021949922464808760357478767717737315552802050236170731279912148075499923464778154029669499162201557115389341354548173841680052518531636089735928089370315751344881367219442391321303062113951573679809215229804373242861014693629925765987381281832531638374060279463165948211108162925810137268330593203544384616120148027797176645849696171115752874780131491216585616925706144967240243721646541692598472880057693033532919068684477363717232316426033382374854119622074285106720605722720896425839102922579000890978026295575322464568265172347616349319985326426443150281444478085696552100224872075143053053855100700674450564282341152012718689394740986366187303954703357176434704369081388914276951911721955609242841372667550064483267736117292297946029095292497811777395134234020413045104771165704897399666168507503388428170154699889865888337748688718524040682592859648069927530604602471747631646518183791113999518876355539461423512082705355370281810334181833772217726963546839146829517663420722079860495545630103905957049698004662841270852517173423119341547130278387326721876234864832485627279516054927712096535387560787518842098898868133375232735827852738883922848759543351944507457743433858092070450176402427090936905752540419925549813036089712143451958030226309133571442028194092806127303360423923549102037358532700428864130873839090537102158987015300579309749266561761069354125701527508167507381899246016525132950997872121627404365271190150671511574042581589952632273683779187319218576978801857832151210575698636812664784557737659127322800724938467550978846787622603220753588168548316253177463476060215176766732648450339830206970220787802999943153814872550637394993458694170730949941004569200317409925078444863607617925611014170768521925235153747238487646989709176216086451510171943709544981646704404513456642567537386522276208720480714687300722939347867273734708901906720889859790946899009117686165992968157827327647493387712508390907708356272050139745092446682851213464020033885890347752966454184172375928934898979532388522262587433110925987111435431230576445681719152483978134762182780637188502088448765047989403017426727916605924803211846733425755987292730045428177981196472441429114417083279065125120859753241446722552483091790342210064747454076733397160897416447281294980329259140526659542958721307103493160557357908630668658271085210680368368130451978597580520271115959975722861977691477415750496641221389587811188127800024277067264653494130110523174693646689559583584375012977838215416240372629754473316324054398627742219178119089901142338265823891138584516683007745184450862616737776477580898571358949932228180622541561702939576285885200123592486829633307376324045591765320887292558603485288855955497643365132851425427102940071604207967567868946535095792683686951682045577294916953262664647815801049604487162697687464810404214027776964858338320018371214131873453679373916802449951036243857080299941519211922853803313641506244972037376061196023963588281974307453691271847185612239561466356205509170080713827476384323432270966668082138339643456623015015875483216670567486437718267871366644699826646859659703574737678736904753880780143227692949780795561015726195299017691798359050996995700909216919709792819129516627189075740794151854334204561243195422641815951903849521470159760842269217081765617002272974422063824459273044758085581695023055984943103486356956711790316399685605016403654027801670599308970907598362715599445863008327152540799413790860541509006615764448510509137262404808643757084342910986049295886293324792522203879035250298508442729036307957381828375442864431960900209967034152864506722236543259155445219216177677367988194347404546228369545803452502879874122751794666823548995904963426503169329264980124222726096476695122683405072463149487101583602578432355241556300172247721223767362676328667853871725411269277927241572310677159814737065479830670109364559095069822292374404993014153632807675381740252840371821297569299530190623866709474608052790812349020989292938123809636808084424607721772580799267830299997083881603280204863384980303201899025349743383365122753093096863853317567519699427146361157285589671969544416594097611665869126950123430962340768235671088854434513643309374457249550936501014526960441387968487604421126839552310122710800518266270704684290155135627564456993985111625997587201543901464742382493390480214124057349530870732497679487485728291954747834624366027764787823921101930408251277353183355854717777565394774426115730617538840058930487012701590065569103492783405409139942906729830727909569241762012924709446080712704747179574048810855210711720537145105412939085822659404687992281212443432340419708053397224958648087527025536230858299189385145751259470542416198851573220565266576766852500651599314684011034446800711656566622781675104409011574226853644952631438931375201493343440783320294933582612968871117747755365732895685837609815896543189776441250746337178535746875663087991027937190477091680931887123132681494768593695823595503785967246406189115845854024833287046133475094199886880043079994087398607711218935895729912976732685724419080991626005076512922861253280226370525752366355700529879008205483938290595425614464180884126852238697534795445687043990203352380091749935062590409962389963434277000659060703096957610300819025709127246403195625648028977198917228190404882782545592196091088783746530010617365340224760752875522015750870413180517423371822401620914618415269604264699498620318386501186693888664624198361730662695994136496039582051553332810735802312846534538893563071653780171792461537559834180163095021846686070985046006369502913774048598045555367761075572829915402938224115872844262661760648799812944237912262190416183199757234327475844371346250327665155709872779068074305105795553725484924359890914837780442256601864670226509303095042904216130356020086251505105789369995604840915784196983881205837167000379901522212538803652138980597177480462108439054953318761369590315456577067547996827628232248475471402842093570777192435963753111832816791925348625514941171213322612472726337460856479735171353517713046779811105702969423823871270962615847908765028972356518864986860220411155716132293724654173462488904543400866082346822361105481038184339464899737399984959527020965881941420886654910689969049625325518766774448005800832610122765478950323226912777684254141794459264763413032843833644963241617184093259645216707728897303824183573204012485230105377204102755351816994192437048276698798402130301014421160342983744479674151863507830856262826055249963757142623065631692194728973078604421511565384493771949118351033333188804853256794727871570066006179827893629141618025766411933548561571590064201293504458925048824072626395741211333101947387109638713212918421158426604629704748775860021851816633480740160160274487800606552586062851909598765885058449341726976868166017548871389483188558967191283385646645761472212277757864076999297843090449418250405596811966144453445382020722861149394775944725390571667647351916066632707032964700689121407566921444127107170524507089788241446312332107263425462090358968661899113105967534039002120261592215466003772979655065725465945535054305064731989500048123255605845088343537263614744220443715269112070732231232822479373533246684907664694661425256482396262287549621410485298363882709086237164899618641890599534796236440521418501003595603403654502180025032606336582378589821026133158713300819020364957695610387759122809915585366789919317585622663724440795512182722455249325623999388742852342159165953728239275742101480984055434845215304124943156022908438112930860473488316189800327728702372697139620956133494996800014710622918402406774716736427632969071625933977981108822331935391102463987587706633188093968611931559838799926804286311003010683731148491260316010926444058476105336752232235925940073555644415130443412397592346963867654285199408008583757658634925939809311637370143695518202059616392645529651500646032557371604919689100842533844983429588047067113685920511797168401268923197810713245843379174736703051126821934702217245590823631825530520006035992934144333354553814312046095300271532555066991592990843908017225600324574297163346339718897406321740777058317953984781338674496418225513652019289903917145537413548240018089879729691794248751643986763234506749718509503180130650442946273523550771383499084581750383279780478748340925688749434848369305565574038815014286694166150811604335828554643709430531687058658453863065357450119747467898096473438099105903972770867984335098781278697730326869352010129305095164564863428150754797410056725128800757802091232505070237547482346494735376503233889269441165186048547965987958056379575487332401703072499922657499326188018967730793686230703786571112847684471354448417072603878866882827694060082803791772052929844690824835951242745287004851768465623707449670349719668971237208440877947717810917958283796307338866108619571793795368999726204247493669401376286684045737620647884025376253354704184250089631452040932002207478014658237207761852556991022213801221392131963564346296022117420940333973347804197015337220811376368324663908288448700102503884583093310498505421501200302562632317157006404836455762937679824898846358151617612699599361589174004490884304361244302531480851367117011045409455514626144119190402728443291834806623891878061264309348925194164796407352210074535504419296401959531456358049163690342940705163517763988322094020901679336574011497083070129704570455280664761996813219718115317826240115573290530347926290070670516806417984969803118487685052022407050886176699784049775582733345753610856615951310607408958725768183684302489709806572699202475986418657848243083762363163493164166882024939774582373146923205506523131619971014980672953928377024190596107321657058136158924263777624107503930968055463610518259217604031703621081139362712295123789851912178748927411929486403528015363201316717965325624952083892784457992032121684478312040511749592373980658001542987286736952973165154246371352265979896414799277816362037842396913752118537549257216599312039085015979793932939359498604298353889736347639001521648692945674682618513529152422410257069916582150009365898687262480464535803416620521039832743316915559887939212492750890656581795476125479289106423559560793945914962671871425013596138895409651044560353500186167095537473309455119449267526535737189966085241078666415947172296612314728866125932671618759545887354222351973545824601227284768386357402985996916637973046649078593438655696403062251824534964558468078259527516407652389425734996754912772583321483752496496665709308308286682482227049394307729421154032535228313652276285966673281913121078942294222886801560800958889791244153800885096990538568132988903211151900651131036083541082080184375569017793882083511832425134983528451670699425754933190163024097473786752901247625146327058757869120240868644619240605839092207566091119658698539629165129855499108275522777547645068791194880901551820189306382698222157346638124399133575852244695543833096199887967294564537221657778310714772809406571273523376022631595206494245104568729541105628476966802136623493529738908307572606379802338070062249450148442783548870682073052733562374082121475885883603709876464284445349498165873953758095923423671718259213389834444464635068501677856075182161755655388822209797553365991365644206342154938768361371568699830735896706058600440859636448307605584600196918575443775971054988061182955265277418810869954474557672909314523514624274150214132575405999579122589448959816852638710600995466282726903802709508484158858546528861018945887913999598130975067533388077228804319773563480262644893658862949732203569689035501349047853564301494679969707801345305002549176025975358051986384135628992922513221496476620668456206909483544169348372546557340443978274973254455352530989317586137752658633558740872752557554383368681620675727896339046233403296616125974592520712311959484555391875512572464385541475887216504505541228978472870454890155554951555291575159048449910922879743371548648993238097484465980769834173228622946831306067811670153029705892070701548357004831642665473584784154143662271030429409851841181368819894493180996540051641702327651116965014158961387004666874590141272934368362239990372662136619809806781333641961611294415259490126921877824524265015919950649322612626579815903252604623856644377131152293802940439118195145073603112655137077095053538482712056808043880849740031356495834549048799176763576898832993997761997882996736060968683066789142921952007434332130533957820240283261270045832495489353120589971743036523791782027128751662820244685388215861243833250105086415141438282655506035177344827321194756575861279164992164466049464673443294319390609502036412504281181361131683923121119351743128437205745172241571534982544299303892651053730564809527743332622224348141643456717019979147954777808240285732302067951416933167161583647516140784899056341996024439531793168535131229992441867866231143534649390383450839077505706360796615579633712825735689685168528930972295618204496916359699935760503824324812310348130376191282765364241005163575554194782063001283484838608657942975944791172320042583621769009858867536025623323354457889213266799446671916287166221971501192458964234426536403500154848268524865304767624317842905877088872003821946732899620521596416755691614355463945178519321484341225055247629568393855889830039516674929666590471405958534059544117179805029149608193725328509127472875965094132639512156260747318372004451629742004539105706146866595017427805194963391322547251095559983036228101618849138675927472044025384226303271039248447203753269468269811542266495616535705050924183286297973182443014857403818905130761994427204427527861557489392819059166580181939831225415309370001483991286284969584578165181023478829987820276750442739840446431599238994897765957370467009670989220800432026216117234382535996879304800329941352836519292350203496727549336466095823297265782478348733274448847439335868985502450958152032499117632754839703158653543432149965547067007683879469188354926428845993476216838027258486836725319041699843979621599951170097085563837206494328800249933897174499261881394115702753666914968639301174316038119709808900472438162769374798515522963207162286352206071240572337590905769647582716590227649842494353051014424521543793455037194928696610207581847085798061157631639633874909882453343370581856815846638747045481390941098272573150887169687596302099234713676619624106335474207801981501831452002366098460310728525349462136447048723811479413304551304203270116332523435234170675494030659709002026719350961761743322904967566882658701076207368195965547942406218667966794122367538664606558257653217627072465505827462974229087669065860009531322302393799349565215291236157115641406473062851665286856984569415675805839425720728039860493935300594753352469048801462408874390011684328135998393263175990232982558616257875547463023461942252582927601609300630424251221646884991209158158734731401244217036457986480573747282753115506058495862957806830681323940750190348183232630300629364401942568125186577593236300526630081624140481373295127700268967775981220705501483717848249216835955609662851013300544668474496435557383589590695933254881121927266406363974181535458563629005344163010237258862191953112736525195248172522150832240089275390612472846670212932299554893985560204119241162956585003427893538013352268699231238028495440286815782245081548732714916021546437908858017886453303571184334302070916319548074961142754887393855334471595173390099095286294041883789260454468436114386048095534323125553801656589876197045205019350653568132040109920213257648328910936627186265970280165999306634047167504782400945637507044813664464581865367306364917399946896158951086491272452295464664909306373481037268954406621993888651550899009280865664023669415397678039120050394990320688553909501810443303030970077812625656404472572912239653848697082425359742178565184681432750355364848196949531475566053001258638918398378261129168875863055812692941432389124568969846856817458778342172489455016287655889479998429739168381224266948702400171775134697328839384828994581790801813368162732758322406749653940082693057730594258864141005201109833874324947509184811419109039096834844847369219381581631760259384561423378314092292900047282422035825700753718934276794645317895036222119919485179566915355383568667094866697579406004102115220702266714656864888702281503678719194924078107807446314365319343264736513236577381784751130598211296942957778319388334385017883706039548271530139708492631560785572739362471337228804889314583038364132628068699399760469755904396148310234209449754122194545236476483391261671269475731868906473588811819588618528934448441251905284912161934901420964434762526131097574604579994704068152472812645917461820993672824292823583186034585310587692053324277718264461140382627742771764884577420116615664785928474733939251711237351577389466758736846586270531078429968068934737641236434253745214956319240302658519825036896762623891585061425610885296445024992471881343134388075549895574183513371725445298631132368937729846267873229220054631726213470458876531876909691422951353281265164883559451366840919191599915890852563237011971616930245848073593300306291091448757764656024367403322289801593211585102405418371623551783568015498376480155828526509361601518825065384009414033524631300086292528016940985596446127110113687845296023737343562959838119651800138148182591533978440567092664611833217948495865628724805578461497951513433360751018054420436143993236655532019668939563266238148686160064266153075180601034964822507322197657581280385130504206089818302990509592579543813359163064627599092838071610068417053494109160304874774824763617871000969056334628366384624291098368113663280747668050715539542750577796317198598687316651761787500315006158399858047285242877543971391407227845551754373961256518515957371280323890487595465835989024707761324637254684642060876288939241082787742529868609047815732867147225283955855820535973398777371994296168255506001758717023383225201938163965747066098876216849687808444633243314701292239074605199834996054055501039197499378335626020171351891146692498149025912616422263454473646222242538843453297904006382342798971927268410037372247616337546804607160946387520474214664176799297677264524322157848044166382137177902301183784348875425628037475247009720015225593833771130466425657104630944534652289665253945831422829493052718977420004894019013589816800296610755152176819525472345319547399806956884136390989500567731610357825628365391451749850557478201713756607959583961316380893411106668043658309310902574729114032852993807035166044205266372382510580825552911413340275627805914421933563238079055929070124929667272033858135952610805083450635554650441924147848386180424864905565847077365335717731270909386564056855985166609388788031229862164694844753914245714598527331566862646144419723573606060130576143306930329262029168497219554470389878719889103023390399739839885607820415399393620751762276894403244522297424948708140575121618566779613435238355969801269124593848339222380847768150751822176651176705067420481633392695669795549331759737901372612884444418737819330089929109251722913963343665562725953714928779483021333817859597315095926106572158893661154928791331932581483951811027378968552355077482098680542325505137529099425477707110794210338829037516031309954584897873553685474027086220804670162613840330286901773813853111832289636388145491789326635931232619735968330480991334689444151502153438268801405228265099246914433520570901370028118613531928580179952074786342916242213306789335680828817756515210981999587261629878574200632467494176996836441637688631909817869005957911694699787774020581523551956930048114965362965763829954080849221880209533126770134416285871525727460098348149804724627215012165927377077776686734346467856292691577889642887227424087053124279215790015160985659183960718263982269704085353843232798383387456868190713551501337703250357388024022924763340122093071142199534280054574324759357873199004694206801776840879226330880787505053209130089906554184776647961573805730340646455723858000325972647856161830791182640363171490908424457772150420106479777267705139197014972649180640098082235065121825965765128477221308370749034395609211796287696833333212316850016370290346076558908594637446354287780412089636757035864084273842788294935540280178013964986482249768070443997454422088837612419717435835797824454890294073908121901553043096388052620378163689771406238355629533949917026211747353537458842071906525342365447383296897695917343233004785437561587459926182719124114928373377933126160997888416309722934344883496859005748638549010229965834650736626241127142184160098339001531250249787721626036858686540855518042374181559180935467245122650343269732604478106064339812091264557079329225535347796506306112554369365321623473643431836253095639961110314996767685222116727140231432081383064211195303608847994107302670949475120766665734975842304905565423698399636377766528067688145386225769293328882279884790528589568184902662035988719454638882187373527659436323877631804750689626801838948679967078164712280362477063004447774709977535263443981367366273044122444748904400096718702813917272361249375411875330235845179793831121415757787826928996701785215443460486174701883896334370789383284047479881292616295322959346710692970034475303071670617819611844082016725504527035175308594072514648864508006240050603347841789889701427393185111636776738608872741554467545034752248052044056158360773060376348827523925841597664848791914984655020558680384962845180517645922380083621648670141193473585719597466496189107202462342135780277898954756772715528248850033569791939430004754548150468311111377388823511727725266155671460178421333005230796823869480539915859747818242830903013653713503414333951335495150754357681675333069438082222174983073881183369473578265629410792394141616085052838872690922134764660069495116839457170236962904566355506191038127208321875174330191655928993686923601807405668238658408318516346171671044143203958622235526682921605823779667264734319381362941398048478962693636190624914815607415196028692662216401600046671429333533849867190389062145496735827524231373995876174021138118964852530754700580700394853244676300501247101260299747039384252422493395864788489623415867608841165779305887691685207410722890397368769446110341586470095105164771121287507319598986527620852408300740521410410551967002037675626708205082610571631341860473494200991414707481453354286234633264196371022903274111406027351762830281417136603129032000012899725810451379447233006579481902060225750658179163061754839472879430804384686359240265478132480748119599000119784878202471417772675690630905886842571002446438979321813796378059437069204627393479007279463547986011055908046960082954441298659424068578449548940361450915352015215601852331280998620658424453053057222481555977294598535605043290214569618961131773945959568322913620521154491773970263552345257174716369409683041060817646072604925644460577496064524596942866402816648897365091633797109480509499258499156687577361936405333510781355474756376903624472133324950031665330324363627688897021751999928884309939317116518765105059184140232778375965338970951149825531092993575388512980719820945311996956743763138575123881713828928598898615601801601303956029100140287701236910777225496690519213611960493819282275174272703456911682225729701614257357620435659190277426795341929024132885588828812115775966639604231215867279958561491978924656329373773861498245490023867312448540707684210221405314506272477670106778631120538732785728629965769382104273914607058629870436008885842946160756988360971013805047099765976278551097962335016775383757397163898948781724300739277845385550395696998467727075092440703777364710534938048073290521402446827456388913086845990033895574224676259928645119135128117271243711872269840068737488387366322580898533366124742056894454498097869961315883468065498913648166766007840630935510359790086959888123124330151657532937364774577761090610798301228001708107310676464221327357008534513451206609986136733471760057475180188288027201171972576917619374759990867576501344756187839771503704757427723099871735976588791205509518975212076132537506648071301170338223454745788105338216847831615476174386669639518993623277761896984830383038903450237022915118906299771830242953766375721797129216213260862837845410909606618111053429988659397063469855624118181637887873240893372837389580910378405980937876754915491281015139235695919521328471043748449894430473840621751158139172947009136109023613425141822952166447712122409042750444311745552413313415047435328961773669298193073660550484955824629886111222530229859180549858521755383275040964085734714543506640045455325555883661763279951991507526758482135829436800700620284971839737233141599234776630078297580340764373631669073789753149084606403213984350603049373926221797092678557332526170688818743103495256255413470043280081410974777642552897572918287485104186437151684750946626407910981811055763419729055603851583409750044756734773207007140368678715106257355072612028843862779203353754069140659788869544689751000652985472334037354070935139476306212071283070663787960178681853188790652477129484204818449654977037283360690359431435519670960572709651290161069408537978223733710881849462326168303900197044389237016685023998964584872460453010732929539938028360795077220820467467169045257845250873344557559719741966712075368212898136852875623577290696195238089856751311922231366799131669300037447094572920244143262276885334050853661658374815391339680684634116413214053147625773388613023149865539805175511432435722036358723202260306659720385682321464662140114507952145425831607892937761685376540694350551094053841776358779572063950296161143018019773001219546896430876479222541966918063149172095968852772525281949483609568702639306971878552671781591170268849676136803415142750086299309733193583796741741461620611025056215781793093334682752474054041460272914454690525174245259784675489268739204043328003123907992066932772815280856442101028281615411574531836765789589693634252182456969373785544901223855443728874283469374839940941494956045210995222620701434044189813752174460047885731655306240396754183296654100582382904000592056640436032110725530348201656142411825690898706769596453120387798022992229556584002082823299060657456415723869371152093289185198868194540536079577247858594551068421015666460566960161921129996357875804594929318370917609694921800688313142560198543409810786363931574722626305330561323738989105304440188147231785027478275454958329858740974134485224857706783232680955215565267517586969247378521372679746324903340900573483385396166871611314687675779990488483924898614351011332975597157832367556951565886137660463502782581941406018821622447792276569374223728416358310720997607795613568236147319705178749278151052708067824734356587159140778339164567380064146837400394055180153152345492204772990811931607239277027013337187980764152966262055024610351555390094650448209536474723064504773270061779751549186939871930447408087800840593467561719440051570610800733560315649441531050982738614886493144496475086894449087308273014086972716299539787477084375288740873093962228294445705195967980389378835304118897923885195266987640192546264362206769954266495896434291283048393314811124178457522170908197246795866715696962385649174867532789961706934903568418901578972037282906470187494874832890137552024378437802351365336188435629325396572696359703087551379957111931279929511911333910115240443727995476803476076764206463624785232171334981195376696349911183854451368594972969259006515034073779168658056322438625490741054923975029586482179966552090681533218325768212999363694330759152010123702847534276062310614627400115848861568703643675015206228986611017389960776859982050058226938875942690271489780168321789050901912690272702191061280892257767616128915587461771985773431244612363634046275056457388013941522696200109952496111054353460667824808564047764482266115554588447674760291851047194766051622665621133258391558914954365625519961272658346973101501841096127381060623958225631826769258658613682121471606374077989543792149464335055001131540022211397929068585516177049264570636210896755916266193503668611895328780019180295755253833798194224556054966926104342096678576630250673459845553891007669560324555096373117168068800259810894169554062273320378993041801596691627787790294269403534261735136236911687701754479925410449446706342630282703996941772975596712251226623190813900501376625051582460053234443736023076663504880674380302350280755604346659179429079313395954433748258845455381580105793967850952253010462930270884530716683880713493365069732474365968543120752050117280998258493733976621888850481435961588987644228810443545651560368313131134952027007911575908834079339286066213023903704429675903560614173343244696634414222657182797715600682294374163431503849301159177484936559489484600034210932940824022991354060343252342829129256070840810731239122359504450805696913674650459293859504820330742195541983393316262271837050423788075453655163547894782584919818750909628657563870457310215999293934659061028664293681408063954617293230173261801503257807089744362078403959682671892630819515375514804494638019774756527680590583409885457017154537955598732711346321610847874476022597595817470892738053940488496812405818028151447129065519621670056967716250846220144061175380746925994375244888134993424078246164681871103248556240496332887066789443992722420554337392316012577368028981698421018370113723338788909336866414051741099886952360882336621193336499354217989228758866672229644995336075801484684851950276225108916929027187382403515640049483581663853777723237878335176208223371698878227667465118476696701352437237356654247072989308816234523662233534776637986216873813076726543987505177087510928797867030411548477190149220224472787395463756868226528043076293398969195156018886368209803989171946363736509828122530944514760855550691497283849527738190784373141634848413631113046740096589321016323770917388332134725570397207515509264231493232145974584959139940159028183127350668356519748981201118559381289656089231683883121430668732079251120557902728917013895668099553621309493973833697333320244642083160597284648763183708541055356227928211914408483605360402689079594581437220670049117402874683185657247675657653075792040513679144121039441770761785577760334493974629256421392004935670506942993783502534549799978671931433926413647271880266477498295788973767010345714333402791683018791433679110964956205219395885908924448567748053181770883435499770140419659058742151783350047016374847942526500933260705449341553783685624969700362393267255436198098545157264865703351112240094730159998035359639373248215415123233426767815341700713206419531060288026830175507329866703541112891962526205362130373744106124198657134309056420984710722892414853407540322531298873285224079653522311612720644694698843848090393130131327081634636921418755384074606212798193492685650987016015731994710560949484196735148234283831257793694802728281764848699838452038999763666111377040245879100835604931977732429279206511040630289177444014456666818313891630828235871782100254809020363242149795484022310243556838758137440961803076667965115570783988682407289845673778963694712020165650935120867576439400431166684728312619467959730996171399298208560674976097664691822098323284981349682882837123743158662561688334981859318245939470983167656251081099771838035449740880894229683061750832554888392282996063685353569307033572458004723030846012103864343668963173388628696158011867538522873539543561833879905493348266511693691637174301893046240696863899240989691247349559557854231205671922499987944008027579412728986807482335935753697612872915638629554457143472202013288293870099987618402876887994580044352930845906661326899114900686383368953182987722307245197587375697993456247631666195518472379586772546396228092773668626677841048378682037150343100721405414750059370469000877298071294644852837356602409370105639799962340591543779780018882085183431054321918429887087690654206973626169954700916291331720465633858638397803836801914728641947622913134671359763705128059106138314934172773481353261149629108477263441636700940374705566923033216114751250859410294178572551126172262467579852941206035292755104555691564602093666116261879633841838990483801505664975896847549078207293885691432510400356657561314779749525182343909521899898245462773545929407936929598439122368131558875944048007151350629367872689621879339786265697375568576581301241996372642959829126944676995905232931122074158775038624354113048085529973804603460137772114766421400100770721228214526091181691298236396246070166586809820154859377744628969346116030909557300299069886647815665622749368832192076060758158110126490433254710872369595525401114188856224307323702453304617899052829907226388973796412143730020374143763839193914736472857503426358590094630836957666835330121300469294122324524341862923551461715041862124358559784498492243107583664407558124244487182112098109633693788362838057257981228415496812911368243974202623448842463046461788517232415317549731860203571890384949573266262400619707702428241920324521083169753322602277570948552479145001133948591764598208305270572225931807295775698006073417121355071466503571863264661848648484276626444733030701269917005053387800693319708099928061079009198266642938598619053166496820649532755244922351367899308881472655332743694979851006214974044689409378741712484668751590992239436723527389985366552682436463785294132662573702604784517341139470670719311381148205443359550222016295459973841210520374523987049307036147466104566207984216472732663371049600477459196769485713737705852123674446467615969092414378924445956369500492793402050388471851622409157946870515151553677152933540085563195589637138844292561176483772786943188476294250704712359805724728465510300948968360524591091743949571320304336592466567840501529502513219148831019967034688228712702353788550281277576857821179823487917083401115705551888873891523393207979975543094534544505968172497685715487636712183664043268123364535653575429113902832562584246598598849576388062689045838200340438033208369535801691251326744994272321047961681310892484933388957301016849042249913171959368670217749925046518530832487156382939537230177931248951394768886335354628603228587006444148570585630103330709758693881673888308327659037632356170360937303968070052258385650674873226397502916363318044343450579595963608431638316152287690714730772129331772884403511619269620268990830567864411271506255709071056666400072687514954520533421266099129811246825970561519278081267336239505920987553886737565157616494814189317237713723110033138110892012197318139121810211253778963242251433196168795965361371643612936711674518774341622347713460734632300574152300580675877315538841699741177961145186239911210288871916517858458149661680985032113055389174331607770434299294571935429184164056640686565595768147030955904116024337303503437993719167702459550435848436685080156035437573762973080499631557830061690465103112852768770061504584907417412208287844021466773192843509920305918207634147346370151285015946378146279750926323479410103317758223157292008673310024960234791962587731136128296662565869563465447108744607819173778471158211916644382877982812547351654042953252894440463034728945078072356842310760584113614250956559838035128010653057197727170032596245855807165749524751887815931610639377792232559079875572536556304896448868392291498314748156806541231635201186530568826840227942451668745697085858196856924709974184256727918821626901898593431527751775239283496987010264440918741560001631268193722737521854742649893094048485134024077722590016953482548001665445026618881419714183110340080092714638039921897668921052053835884472619424893083845030380650411633908461078785849367101695080095023433381115508512332218574744453328713963295133531050050282676496544642760290568498903177188879439809789338702932484367579333038231622318527397532549441248567795687278102057497531461286717859665294906436793635853458376263557927480807675662665711524163808820561104288814964801275087942604273605611176556105090272249504440563233534801049813130463445272043934265632116616253077857228489802814349626122489927945596624487124447722322797470838797726386209153385338769706085923412016262852743894411682944202644425520351886621626948061764508363106189851472588888685333862035665529090830686672171718641149761602118479360796616456803382006167941771669115157382787138038987665942931863695062510236262386614956237575478981260406645768075252465170675476387783243702769749143003410159122826409999356130274232628598842394597039986696204506765707431300043962623167510047760295255974030897068221768715779216567867293433708441435862017447111698893539071801299396696180125846084087679934027430544709450360671541891598843828498507016246995368930199678502204924584466439545450279782384711994328073750540579854148611107123831202367342270963092394281667024473732581745570044117870522567949592833556346680139032117073239139006583609837855818204346036105282914901172795798702753672741178532095384037000345049653103312986921504272399057391132305294885956078277903679660537632313966743417836031919399028643609729424403307201255459251063802218000742469899243797657173571706209608717653791277038811820122902784607485098529315451715224585533978094639492068102742200381225837705873972819921142759314664364723952353036305486770108739903131834538163040576646582935115163855618793495791448451070601969301419799457427286971571772797633102319664659485635779131282561693952945748863224703403094908565156290668940452744219694340754292541252342685806222577235009045005473930838607492577754549270751901784092775495156621634879308143222627632070298528414730906618749741428797336456869644888230143710500249264783710159869901756589510930600754407329791859841895201390824063642172612594330377393499950076090606716357455212002667726776159644998863522335756521506980559931693167668735737955407973895428762989134898504447269031032192800469151714082472238028612114577293075152096969762210720939176069089422241717024347824809383618131057012077259178063153427895295715348579743226624816013689088238869996771982212241721809562340525915135986049993820269585255364755373872419132894946072297183424462290019673209643751016969141061546481082994545642665737607105677205617778500667449850550742087660578225473191199733410987320658619866381194984973174909262420093706704101569547531864486938311634889165630859121136593041537284641421455082511392656592671147745924909532301953968433724443891033665959948905153723930157281371687063196175421717200802296180234575321140299615349165925438942860106635591466262493036744507401029313275240704998939380939445193277353492545522793754415012572647981193929328028614419648716408377535669737790394324349272766087968553314486606088614280492314410476548735820530109186814775240661752201595887795253503269601550576206097120700301571917615101632817312503795903195960843257684208565167006902180865120399227535037114650332242225102958669451778567502641288301051912642483065686254749876172880376264262859731127128457525757004256063393217586422481835498237528165776564387042340381815117492123343601625149396750156275746024485832591071561347674472667809958023569891874045815718299706155642459724505578571879674475844001166916559767945666731148250299293864271749471303258542371048053711594228554684049745227832156960207549306049153162227576189655648249162890204973880860934171620004136333400762494905384495115483755401381398457322066491515068245757263022163378928908045793022528333119492428623817927570434373960901841870006825281079120548996339587243141997168369484136733973713530468399465007831588262867895049477941083263168983450091817791301491335635553184118833422727810685693189985317928638599689633767505270868491235379848170445777893951491412118469963131639070586644935227915231158697995642781349769947789552123180805144033850110590202761724474893289184794775436923561107354985363296740207481328775947738409156861855498529703382152750157098341060920204367796044766595017398655169044075219705778900136322255822160804019780152232939609022362778225596467013601617221923769670426990591760330382286475516485829666529720736960063208116681162865224868806285561083898006628426124681036258063024863241047879028047150025406956742801832231253556115593896452102307557524112456665892441030870440505078053283600284358153483906196635967752528272683337437585652349045625172445512082437980973763406201507206328689526411817785680960708961563832659629618397299806744459565329435651591196185648645257059378203590107048290933565615905312145268774281350885715528874999819116838979608206185736233453263975648598698438000900804668466039170746219793021605660280045138288292690536434976889637133452901955009686553292654971017328291192065328851185689958060402706164875469118188968842813064463245379367381373733209030132655587431727658820974509778598740591758914248425758671227027825981595791312293941929987477475674107886072407229812047994983506947901508932856427456810114123804015715041264908438442679282232721547381128487556974563826839757431320771433195003712069640594776287309948252358562351303931306026632141434495413435366753041776989410074182807225469293111753872758333248524088772390099585876898409538131140497680361996601643629222177153121195739540532436514552516312261254024495798094888772803761834914783425402897618274519698728387286001799290709985580479700093713539358692028690459047387081501509317641987022362484453276727919713909211634607132333385483429227309939060099062325726362839268728987811911502720834366507462869628514718141181259447672718597689745075445869462054906771994011784913877170726210938570453652399224665929308660318580897418937841388786555028203544729408319548373664673163725306941278253128349795274440409010464931511912877219065923525931911189490123710565058808512511759715061253911058240997694999026168651313688622086922781997620126093542590105398980523251304484327134541251262998709980682587134743374448200186933445540620883999508678693730775733061971361884322470121144812620401485534203239548393548420005492098029714609742826191548822989964569162466405473779360950198314680868234153560476231488164459924455068481659144835984946052751938576123836332683544551131342713729212546305774585942282056887556481365946664390920435483182471404509212528332733800806108106317055498647234718910948248228808573705370281833530461599218914401210284543402303771195311754278556360081899979787717282922329317326224542619255051729601392412436060317349031487870915549289832812921337429303174048995083370064078242689819361054456188910087278400998643858047577870966577845840027356929151953894523834015997208084586655754926109690304721651419549204263381799243565160160593930697443095424459639161724385035287497301026858831204189798476045538291524948611590097326429843913677232482914998061954221922784087484979455894203730408485705985951799965649571663151011964898449831024751733021260390873523479453961364133584166529327146368933581339071634408349435811625567708619800775846815364233515901050976721901082834731335844898772111407155314738924801097218573867319963222958071790431121350265208698926785217924917509145133137712809532323978671911948183153408971792373749793920853822598629107594669504916501057415696777192988407706534671519510164230357853464728081420833054881076210008744503053164548742480176123606898526294536287184244480398219516614986163006896451969101313464486662990490864749997865188988238566409428416966420403497492708141767474539773600263717676738251773628453817049514952793292843392578003403223329424501870162088309417443890844061087252607054691207966515306498091839128499244145669546434553188835279214701289289848278939199959836946302032253551994738280310637671157350057880681546972035598970315347299977851175744663603122979224452711102808829533427145959950516291253707088596790854368439364975585908577334397822782166498208163931519275251373097604665923470240176119045657322380415485313978936287592739259320507414966096160163128990441786957732674942313849189006922824320945687681320293186115251758641488653968393370198624481436516855270375079039847325545270342211104917144462900776702548362665321585165270011973395404084523870465632790601273032247909640402985785458819235973179813700280041539205779317142897758210071071262122279628273992019872388913866609949466242540676825443164878072940008789554067719555419410155000599767477434410801800377839353028874067325221098609393916101051221185030773368043999451514762487083246980345187496609090030971791275869435774834433045140968770828894096996892822726581088528771560193207542313341879966032626840031984602691478601410572336194933508384599295814862054491796099268887235546624664029157187488595104133829061976744410488365681062393402542318875767285430490786235452119486639772950919685462643197067272142366842558206825671061099046535247398792352297017482730250266327051766988152945189247905345238028564351708970547228832901790277635964646380833473289360187314656250558517061394713423836112046937117899133915066376343899150211473908709088575342865478798501452774384621109377691979589541534010179655936088306826258654786101587460746013128242368047840018502770244690590398583327402684551042645372513488073702362725981751789997719121983328302043506292679376004269019320696141652847840025929469110981571419100341009915488103427455105442116678834776388025470684954106178635985745376493130472342951071493487614650336107246061877897328050588687675662777263470719998826809020614479918718836657338609705390430446515970005625250504554740623748791001855387475408862838164624722920320538407160041761899803241754488266665651740558601199708153095091697244300202256132526811657489137681955934304629127731567945495863463471642984633040110931917973168695487466952335157771896008987676077370334145653583603855170972606517519081939454386837341561749784788353643051982393264966516977026461417621504425656605483496573662726928652474973174862561551475338576437802688075668961617235861862753208159553595035946638859085178113360343323620879340988669556079661431715880284597861965420580808507021101690499021909506215124341656171428477709264031296965805039537585157565833462627710243178063658073295166833346376344860972521977745940126254773887155448983910089646268946774057091501411420891810837650402007860361425128532375560813467303719379326165458636023597113040277543822121158742939057751078762091480875461234670860474736645502494573346124986979220600129335355804919371527741021946311816359064011849468977680618791356887173712341857314499289026176165485602130972231692356299269358708617172358509438057806805754029546212962027223202309820376608051793422391781854402460014852388153953726088527619836642062146478100012275244111128604281463388451070288377749175529379440956953943919557227797821453269143678631273800768837139736286754283532590214920094294173370604198773221637413568864255325467230846185218557997398194557472145589229692047629173307201786642961266723375024533857519330699427222902978169305748391118281020682864509668385777462758843590010427066779021833756951795635799980329142563599559274126035448451659401749947123285429778102107335556542450072718839035944655545818550822214420303594175390466526006277189057647925404452341668166667179661554315169153076877473554401619446192782332726972197790772275929426879661522958855616530496192830124622023430557431679496835684492617386861346463768799839682023754213571433206840090176735379584518409557822010854307402138136944021393107932380941876540172146401501558711276606079692338392167090446392459972317824136640736715495147956254625166468519299543567826323795015498471752674431659919336876776411369993071991317192278574607315721609696236211734715437066306821787802169913065622414645352731012470528584776704706297113496593391193992239380114489795866610671360069991391157512635240415117200646084842750448765401183612203343509114145567645643285150644802078797833648296511247849732055260906103152430794562063795679929098270453664631082356036634116159374255273116885036608873396911173842477252360613689433019363945089785317671020717768272598403382160691590691482617311732723645105590839145260434116134981589180524720884978977555632165438631895485813367243161791404889016905625731072011501799955908777676038420895877423416236002285050862594123876438277713165098868367068111026651411176539993041449735391877816607641239823471959957130612365900334660948627266023474790916859721366530100032238495011732949899617706704604974180039550843477594486375838348071804754542882461415300221589429681087724558368173550588831216933259457720880128414658366828652931356192060851238961228304196297575244771298182118226204958882645111636846881799096670066559272856595965451823196057742904378067842783691409606641549602450091964324317348394465979910815885555948861627242517262341404214396553851442258575810475292186766543684581105649211205185714357554615636404883045716330629789562816396061066773235322768660158272572077582613778216338684749826204422415958499279794216781397813139901850330698082320096379047276505201878657548334285407635995149016526452656617614321413598554686144683805963739577676956355324798819127135721446327132022422122336688689681832514618037106096146140459893070154123767025749877348353717846818010126475618832443274486007409708676063200952053380392013776540473167455006437351054332076707397328027250378638341170655659121140739971381072990099319944916318095346461394998549094755870813365632391000023024038028400812643810550579063098440529563171986909325145354217277508029716004957269406503835291692126995947212107086711106758984808282715490787288575289528290110031919968499475926985897263447150253292205617316779537072520842556976002427300943428412154838240144877448408707616099527945481537574676046097799633231315984206031652933472624845480189751160103405921777787008221158104325490658002245272721688311622232514984136671667827570476521775127632348061200946964162903851552068640320661533690621781265550345169167050442278895293150120430931390648022573483299825000809713718974685438504512847692284132519434636152569623216925984122496994239744782979013720508981387093469267056866007743974547226288397624514570341964589760208292393727887842227810988766747020344752067540018048062128454219581545459744168364001908226764119748318486472894208642743537743659754773244551623694294425246555557031811751037655040015266034783782160170605851947594211111560081059357778120946972122094954962927805891767063150287815892132903050045060443449367283990761873368791305600913992399018326861590037499765434715962172559812849940766316665537462409257068687488073236503780960068133373040321409391588717760891491074273295183670648662483542038268905226361876816342752349952173211424504396688191383661874730213905213098972269575258225565165838089912193521085999949179945953214885399452187039303380851660441532930384751093362872160878581926994165343274721916077652209911724044760245663564085662576851410571495116738231327286418181763308925109200414588237479416623946912008570465118427428517095691178938414192772305886981982244802263985047473027786657773938574678510510193255002011516091312606842555264237257168282133460407908752874840125257138557185030257029270636011481515418436651723910975604910520067934878061687318877099687760551436137187991619493438463750122463900288922458756294893761403640066178904859856491355453774705117340882306799330351646016947262190935412291706436697638975030113458666967553913628808950759904573490060576000683421357828795501116118169453089454252723731742680413715009548096606953283689842076949013749571439357190570724287913551693943153746128711725272244377832108990624943367582312495208426607683761530206880390910334088013469025183011355497049622999431882768418185280163180973595421395944930222698248402737605049575142456536541004181210847448188227463818045694977765413629837142465470609753142323433634806687821809688158983524797884896497701104548054952058695495884135106755408909588712674927391378061471616677857543010246420641231316729166591798413925430181196663257259957278152225723608604746454875904540361780400561915034473585255399552796202103986004403129697729120907965907117699741245066066465583842193675699007899471694046006307052062199319896617148663665542275533687134179502189293620089794163454735286033029022067788706018330351380220802933013995544916475283974340787959433545090583901255877919938374765241816086420834974192376454314899303997472337432485331299596068883266927363512044997058289505763718948605274392613805311053582995270504228499023300736262263150609238891424035464666263657154343629643531366543099238503108618969966659583082534767484075870436560322402592419315022933604665194798892945124402948085786791010584718947583159064137021560646499508683175474736613238805195413206507845554409750135573802449916864145530566032009671553976180966077488134950573876461093351508304282575298818494432406815031442732480039394803115674115023828942307911303359572699037485851110830748977144386080899203609748540274662333644151932013142655674816851320419680245472456792921219725153947886147982666606544168606379787278842816583561929420505530686069530611926481754697157024877121973342087103918505148667004157706019208913253751403523514054377203516113586834720883811659051839883603123748816332149742309365892766297219031291515914781999603499791331726552750889782808435585242142579896418482561955314794281656493946861196842170133281594797498098546765804166774635519375029799859397728094333776843629248965302683489653947391857347324558405229390982097046307673101754691757173807279868649421028305257537440036402310466852373082786716464342796519944495882414035477397194989313004839240401411240338080407164298104315544190631436159966028505470026004023673117246329712826262748856295026391312463391036751295675780021814215056754537730951117073063670185336476710804998767565597244545267511265456662989712686876124710510150394468741799051925346453209902322701374937462029655500612227404980102010179273169822889421427373230389161556374675378864110271763930156682144344746891659428934855761624030214176702946557678010415189890856911991403995996205099188558222152648472881938909286089557905111130246210566474145416120688669598197355999221425598775159281619318691769419084591703311999609298065584928206215453874755129707259336016493884264448316795969995796434410025744959424991529600176514001918912884555604798735157187597859461125982059988779354360542030975808732523834524498492796281529737997499961798981782762265559809366864548420747340036963128149681512477903945108651869389353837534538858138186772116151207041252917853812457595430003410374602971132102583623602713804344102810611235156423846243224558315854868860790639304306246287972624328269889067096523937278580180997444983493975730036912744890300230877742797778715398967112878440008904052014272915647176527446155082005402408212956945488200928872019264610708257681526016715296232532042110577092963156380345833914931959516380236811427260454997844818948863396779646620147946822667637671469431207338633780327464530113445912285966153319842766563156838856427418061368052560577935829514897911751624296056318419230039951627087110331439431083341897247018671131010053814088042460262920146025353645770053096853812739806740261733198189048668393526342095209174560562722702508760846913441209594411179564063670530444864443516018488062577168242640060261219936113601907144986752109349255128612673859662894257796645500098959309982705013303746535553315750914217096176778393145937989741768044164069019299249241750707295918277419712614761674219895715234909642703908552525748951733700429420376474041219647124992713847108670208850362496191776705352784199389559886550738016572031609259830196345687432946030214591926221933013984759977413521606056973648703495835579474392002264762438297253812629565067874740701010335511316354341542097837253920275423797556546868137906149989734489596414456863798001759126332196953123620051941532156729761628794087839095341297194828176426524435432011708936316277944537272334329906269839942311081948707562938960575878793605148180158784771727660614262364434863083325675436361761312936448678799829119301531665220905322167374726068742904809512161934758731228949719822842210650885450284765238270258168214241015586353781251053057654849771626772530184771728950514028903131600627684691004861602552889293734587471429840576633143271505601211358521468875939271749126315278413726724453056888712340082582362320723498417396521331394167518926250347842452814052740510294475355509300113747670483398456025814627366369662953750917338099428418883656446016714951430651473334644608962989794921008113068675208885531732813054633206702651242177806239664008848219545012989434750439708735153060902173132128370033856724524782879121957509151103988336517097295334796660726976244165520252900113230696300138353328004455233871502314793777644841380319400037994213654028463964603635241551060774335720524296447682279237520941971365288390183536699402906872920892255223906035659642628770298414111899474976997456309771276256735434743949950156335115565218296727176977040082241381402093229363888144109460867224680813587561642668284399016599690982501434143811027706486399587281789858896669800540259330536404103169151391680395879153449852597607295650601833403585858694728703241365834141803443228851458027817949969969116868028672451237790025436023501871532057368265719920414395277606597964760440049040698168543751401386873297349392777467678908946212213065636930414965628380778121061913931356093309092429001070024232695887631888674957927161681295924772227051181386906842355032975836264870414539841290502137649658527977494985584346931185652788861948161455176398433683939570084367361816027526142109313536237374395692873958489659870838384419582961866436508970585825167936060194349060922018316396609769502253318429957680554361208307074763988400753845267751794931971765538963780788889074961997304199074441467890207795157230079017321845813479709485289421930224880872401452897577516513384437784275502877344051851027229959529642445666014052381965936578691829930283167978938774779380951701808303415574520444067043475022108319192682615119896244904851855389985310654174221621979560300871488558111992561610527193983684441997613049269157695622179124873456442291884759911083848463754395115897989971028828974197256069239730114562547215825994411626385249515743083545855816630579712792434325911582171306834841960438130988740329486473945110040897251829858966355217233962255576261839045407294239850857906183339762076112775024727815542086539821949601821568611589915756271402954252326230495282517526190978481516336805323359589967691085815955292848382996796463404718082172598026456750077030859965711045250741186281664840785732030066940815760566290528683172084252325852863360276393742686070825164479552305124164867906412953012190427589837671617004638034114773781082187217633325127346627568004872264053931739929619791751696449268863572083841899067144316975209411597470676504778494067670240722458299286175982856585396244069486282498826296812290783102014278037261699892399869700670997093522582666253259648044582748194667219686207139347531458220274970943071517451042987834802849450418897005635241179112868899921742969954408061537293173057880930875211214649396671498661934030977781802573753985428240704232879660108112780016236567876422388545117604387547350630241095251261357424476377017914201910206111240243412737915177672825500969128905509282804794991413646757242772323613680379486636373971266864464659309351446690508063425960968387304557574260459147494654334711007784893997094222236455788318253244552227113599958320577734287271896948747031726979969565423720364757882233168415754630264447053458728398917904562709527245653686449458414674275839385618760408270683732010720177005621335358710911220663850215601450995931634826224573230581945741472095479825420394165906924463760109795311482017588267971460527366022269735020649035669603281650584339809567527077227133980145861144051751007179609721088356070377110386582255026830652894117880273854702651516372180093678129206323467450924990046748603124937771327459357045394318885760124120617726253922380268082982143391847430352063239031776684719949216057911797462709601358823097576745863313500038284149037407833947053830593913941314242121265307615489648357528187012457437629928482258013901933561315781934841912387725204507997869577952165959682629325839427219875529564066446309039521972415207802700049907202756149393976250506345616165909189982676825488698275009390476404104195182838893439687804714616028659055737011213589234929286568072366384899314560537967419284743202221401845469501674365918428786094758703457990163880725999184366351060905006993752277657716141339276314059101859282108753107616854664838195810727418017990804479821002600719145632641981695567966463051021292943036751972280343344420743743530354653053067314415348059851598366721572687314589214608848982406754833772256612119591187524977401152638053143227686808773989050291613948279224152954590624783863347746466191598214101397428441795925073892282694976806553374762768677550191031014665854455138904015217851809526640528809753643352671863508345738856439905005734177456924040863217086404462621112523935481475427372172398877825952503373920268994201814553330249869581872437728075080905428588094101533316093043944075351995972278198349419539673082269109235128795564223623437723485161243233020145164563916620823012659712834775471180023621484067905556546621461519484935096411116187509663311951517458706236836761599018635979986563187042727179831496554453886678686374004690806414139193987227256441451196812525419122037120857047084210192408945481069024913435243596490010448390302769669571926273603178462979106624196759949890177069934733230443534970128270991147472468933892771259607215932172701997002474653499153606230175029777494634370675389044033944633050017976095607250329506084792730414817448638295907358600739420649634399880608454870093243835789733535539551532418624304832447362027313809277459381831565441733936677457303230991556857170629757699257588472212835715789533430576569577434073425114055839310280095112448086264843305861020160562541059083030662946752453426379014897116483514016262873271813464534731238666906295797501193996799679415222964397136847666437625805723373537138406777524692935431618098964766920455038688757408350851823916158799232369781246058657689072389202365545607860474288469486404747564205392301053663717059182105157640965133181685221371596130751139657439765613327868676981688658143620284746686880914250888236164147918062999356252904955853462879723547795412931808881245496515860873398801667131500591617545388210405181718797975595633077432580238670130394743136584939544800984141167893151917974224951123405154309404892069449174950635328491401590236756362648226958776373090645036353527484958607245308144625124397587952975975766245835686442092828016133889771134228281835514033845310124749297248723505748201817833078186798125038118271007102053811028251838115476342739259132135353470651556042497377566341224253300034831183064670573391540494482195523276140282473727136454421859346152768320463625847372092858985036843785763930304281167986982573369754880253360023894247919981895992018788283892117681036603400200170452587025200259665963045261595601524467368674730125765636505339462093195829976991397730748020968395124963377906275138920384334053507778815511203012449653659716111852514532041145740955786813364390085761506200337060625351914740116216269826452954795109006341626094490659812390057233601885342040752763336354396730717361914400190897379493290230329803024310773453744585657395112635122820293712912438718639540838662729508061745485941355360235034259907689352549061642901237934119897496863853630527326267238789512672454907927365345764270306961251915397968564789669600957489835080970440088784043284496153055851012589443754511186099775150861976003962379407957743218711662105040177287471727477952071234256694185983296099991621113068517148441132511688488071343218755154452978675552144821928940443587596812385795068693798572333538826749100676965652897422396534589716166164586445385119711796474178821376718413805832102355925801939986446848121895727766398803472361236965997384733415763275468668963342750325662242915824460824317281931466344860563938573561696105862792592815869653975214832492775957085973146178289950922820382994539032515415037255953764760804251764047051628845454762730960155621985929717612492842294762367050441200192204014397934348799260644460426514187274491159566107233309942939617091578055556326671476138938425764412987810490581704538438359728098241257338320514937137662120265379364822853834990282456207371907143347449230589083581778596326074989344399591390589769119096077630786536839407019495413473890555002414720128247940672664776889147419592718891796812138362465886514434899664053106457795396744685364713970561327603477204801944133364185458490274053796391236723895430154855948553986755965981173061141964620656101044197201349256845943034566028268320258999401132824137253784192031265433294068874370065530512162559131086997167870129778664021654396778682165324741588772989736750675644773040096404777496626591834413089426338221918574976053162349844217147997190836511396617032496351478076237482172033317564958040471020216058739937396249534508280155165902632163790436335584958097929067409211386502542578328492813121168548205968602937773567399282243131754663325716543680524478754264517897574270831636403403558051440135601835840364008917582560934707133127830753739440044979885409418410734014696414927841298695435793086349396495038769364353008658363766037954326416178526566829830461352546484921600468778297650669650382350521628952576539996905899976017232668897369997354712131607833347856432983089552606901002236090997857773389843316523305933147081765220508755557904971234662539349734558021769823826731709706353162727256956429149312982264810662004047533412371325316703759899876976074430458841572139982007741845003739192826128241861083832187541178870723526373577846560619241660931823100860506163637837698057057144960799505292487998572753250557765976417313602287483559277791104383735093638890278001675671102464176396760540879885583740081683638718433933555354055387864786014568564722197144508350801086073900619054692667133325616654086627430785889672997638230366686583141312300790378419806530789849009028213641300495241379406730092364646880371412395920604444966354670436343402470267715253300677770910331320698556308437413893763002753114903093091858707972115246512630125897270527072899096715640649308691620394494273244670484230614375237116541175448066441385000025058236649896903388803868403365162982660487697608708763808576101172276811830577315815419765771749917791268737328727852689515567052035627158342043764329443100445195151081195699436551052864989109273551073641123656119115280373627550017337198319497557845194640223049274515858030728899445274886699228532922579139951847966085604273971524606195746122104737675157283565509640046268065502628559773906682765453315010994743501720498951549235260229514629134462746133232073111353792431002108124471790769628093287430612266820883842018003423985261569599132463894272229809490570901997350963477809411789299456434420083466605637248449019518821029868036475568285457219885792605253396868397473324019352559512550200763511872452163352764983989966417277756186849182903394470141789475771071683084207705943088051502943048883452632582742651057495943771061370421454639586402198417002455675124429924970133399614124527276570412117013549827170976090010144383457223319107116732529868645269345912249996953816784052310705308845884575737597463034357219005358321290933269648483941827601475682907867576877879468800771401845786563881426656203005730519197396982259094574571962078512351040393701752900977062430822430912260156402990835650245100627552875679148088874006136390282042292507071760127907736435337560968868127781865589884145592054170428913183131869357137732221226425397669046507852934055025526201716093782313946600793457286249490028975631745643987152687370973041762598594206106491615742328719430320461855801888810939355733794602727623112539848793170169940208671517550970957553570230808892316935885532811243338198923656957274733921686276226359707395997955044767746832824593705358428997905481453380252547211461294834950054377989950245920631069819048532585961379980809980072955549799062201307919312632488763814167520811579939322454220178116905765189347401131754711114987802629981548377882997646533011816071208605586798704521488117698572079727248291544523888486779118031274450750454842900383155320465549665187624236095570188437197453172709761114519936866803681462186425682719818285237255262923373638460836693187419247585983554423758158186358063174778112181031225631018377618826432452094212166999713382183676949927377682293594806308801862072508910903007854000666086843179192882220884727433223816379808899136958355985714792307220210675854100818975510760582547563122682521069403271025622096079726033870742286674323195228493109544232187660228019186077480202382532533442082403579019726547374945741584203431440714203657809310201778098410865956121582209957774107573878833436037816245725505081481995880497977870612093561106963735975218563541311566679082546735661080161659839749133916419689640632415829377069918345080853348338514228529535494447718130157499330710287394654197230202979543677254824286694617627806750186198885947193146710467535538364276974740658400727539721894191967063241713823448630709285864578337937363028544430346971797055744651846756913627156334769300591029454617407623786248721788811161346048788156095085201316514219590642671040198612880204016282533509144988017617866946262516809138506147130364143337157085569947460160983557322741243689155846481218748585556137329907765243408958802664260229170435752498417584750291855165097965817456413904866625565638686724991366235446074689253812490206840309956451044511279332783768207754315611103986577581591878488932916977525762570111762560772146084996085062096561023354847031481350745187091939402648670862080063794100213761660835480618450496787669464075476905600541333680939993181712701051631918781804866539879045435320551082658810752490399131138226781591493889320202326732000886972349164046017872358951694491590913982452370438179875487680744852811122842969198773790970281095437976358828804054365435777398968819179377916238532425790433620140741956754426670806883020214607018268583024357041744846095970318629811482214197287142325173442635457840308090302817053489052923532676283235064927847456246784957084907848378682129474313289888162483773684336048264708586057571946238639138143406546211566878714582599951794324218437651034913777131054986060616659762527557547953012243095737474731092953606746773846220251655110837396885582885243415730149579991487546491079215187879692952236746408332732198458370987317237129010314243415136316991516960911520400672931469263123103809127082627995333142170260905560528620181194265495583416038187326498361110538308100670456174461200253390792280285000894376596384606398629635767674714674869155765900092264542063419809666315179543606006044941145676321164108809257296395225619660988137585923345962840201514651929483876730032353228623121570327840771459109382807753479362860320066626189504579321644802020464329020584203243515557298015394533771542782401546907409213530108806407354829457168747529310624915608442520744367022660310814147627444506115090630845358095000140738858400032739531325457917714495967099400894216596077261195629445265104768998601005465398129318381172033959363178013452737871624085236645690593045545455725342882485265406807865897158361144924373934561669732447841739082041872737856110634962646386885743720088895478426262601041530802938732298937096743220741871613817744759214861407842712500087541867184937100898872764064688934166450999013180366079760878147826439538226708413573906107934679750035057506113400091363904095615179074401163779674945096587843024765755257064471996757430406571135545467531501696345948626967726665878343098227280452896459633774268132602309006650596244646870706833581489804523315379718158709870870359223525324727606808221511755043420821613976961538344033613844578580502970381635342756703014250593683845549579811974636136275133703187280228437818366702165922067217444239844417671193362862119494199323181306355191415380067602013107913981303536926295729941218638549508516207977291320560060754145061765652913226679627270473561909705095243659376919895286263827089623033437934518005444666841967626773362670523090925094550099971991954251964183335995271830604168659448736282143617850655648222749008358297982003949424750942415724352350764746721695407562831341307232191646907219839818378677675611655376732577282938354023615298172385011661129828440790319897581686381703000932553192940212679888430066707644717912764340929680664306988988905330952274539794244254376744794254126054856807869689621767361328082870289004505283681970363041894698574785307878583177236919862980335175661393827966340086919208982452066315589288646770481382372110417582811824460844120874511834296652788895503354346292922164602443998293993731747986809676108272398643584866991589654314317567454041642853137355074372631975160463116784622172526459406279291483403238685331933956639689200110529478646213309934237893805203078733141510502580340588265889738452090255603329077238660467469449079578475764379114755880235565725098084082904245390026501410412764920713665331717033120911389673197764579502351846793841734856860971810991660639305004916480562128006792743977538836888056616288559059194617211499426005141949670181898489179642082890815250137033984007193716497090168131978228605827301902839781633212181328178330642094250363842476477510373097420222073475962895743705183744090445601549064828192913271707780507719358635781840986907279834064893094665688594437096624742574225290233411885485115391364876795344609603267840148120725580685497399889405939320184685341942200285511015314864603169400681824215443212443059247479111717946106069800432498489048313864772881107182266246640841942857072434876058974297752557768724185916740160893091036259343767993245175326133503386192774493526436168129304561889792343150972877383530824000361529816955654890648918060687497444823533850934390715924961633979367150287408957120427276733074488166126301859109773882857330282759071146778385510137738030286443668513757281046911550612248162383809966888341534595692492469228101331885882506650422551994512129750876975326065224867495718870487292253855258982761948941811491628709687137290853127950021169744496255706395365358070822493180219529921504029692313513561918703520200094505740061556762181083587991533858292382627409004890753347329478148720383402774949580351913336031921243037687904844397673529511401101686787816525473898999414951086381344021760962290390772241589092054840759073012813218308669210453710421379446221300536661896350775765160902992155088674574643959704263935633607908561509396808450536030933635698322167285682119161280435412474169622880315901031637369916792333971361173510970948128134040757190636221559906667536329282418440267492799936498352859657614497799281048384691262729644751532976902995705372778156974579196175186051348170838351404958028129858614002554796461671014996543491276175698768340449431052555665120952116612733242275259948777693013598369301742851871610090258969370258148219590553835973818870202173972743928085142445868092902397206790319450370286707160080402805829790648685454867883374272596316208224097931771919767583288800876449692622304858781465500731082062474145184106872038745618385538502440836863683766959695090193982975552436259474893714495017832421462285091287375770091144422946822382570976243416402055624686978605259097580168487344899316837918090845123278674302165322968271739615812074013293459172991256073584947376650951999819643014660693304990590764023255524664525947171833291829181811132223434953680885742219263464288755977592392488019507528873396487176780927577734219771786890446245797078261370908897837813908259563867805975559996329349584791205486005885347471452179601408790889253169596062455575934762005199391221523100595587979769171241894932831208038681103650900457362913048362338481768637495388018958338407617581852457145745591398622968290432026092848073759590190540646781201630924776559667382262562465432735303939085734764353243095181236534228230016510898356386854725914491557765724002083972955388552776195659414084357970847712249840097490905169906947397934568325144046127250428871423330601304911529308717234363435804974932948783181930271937239151545708750237016023907756088547259210232272608058268417363003941056511940388022462910840613046330998027511786468474037049091608333542162151034198849688573343858303971415855800650978406477860833609545565087519785921924742920809729723188241403663360741413147547660566643265340146948627698335117728310760049621293724091294550478134500428334588133651820891145127105118281356559416165317699322787838120475008977055725289882258465482582448764687930467904761368881579254245300970162505477080179551810905893541389476099470604027641879364422406910458771327306764396527272949184090292785760872364523842124195767390714906940508244703272228159200200969212900595317888386057844783168647848645182319588117600832626334348256977003649522483953248206324069870619684998937089639135404887254516400867321467162573761115131384305481348821808389633675743574988975787850022731428724326436562979439683681455049132254888824089299866336298431245179116621337924865038579698421441908480414169593397612814676153592415739694672721142962256197404760551075822477808888637374950376570576919361383760127018267540538449129700639127142413255624502210198915330539131331555505042677965215653730035301461687306839375269824391304574024544263791359870564967275156637579773895871402645347640163339462017280163488380980819113377466566045530036190413161776125444448740464571650817034194140392587018579207960673201379107827762915741250433679400363836388329140575011400578912135864843828504111178455387934132573788760105425733922299914062792225314046336399836780548008886458173545989008955547999450656871773927327906979356155242369826430630765436158340585506088055468759265329766285981124555816648746094150427051357930028887576135076862336294525399887776115385206530821289437497123073037188463376105067588833717192794887575227858294957686431532544574968927910361622590548163746519455548582762734944356904296789672161711921749712062150278539063525560213905915872195018130171731691354244393101729109046920693436343541749456830313782168559531444482316622171132072984019642385749537305112494776765383409329824557197498553043783886164105309998531248310053927690882266910137390521036734125112578274916996862775707629788354690727414302934186194224392679683610792724184876541150227324285594395580867424430279778869923395543479216901926046359131879317764206239838288489699790314153842360660911901956407663109181543178608538305467335156569000706099472707940298416064718716027978998011057442817386510373276871067427402376268190311681210543697896890062716320258041305494033541141735805231512673752591354693539302616358736734800906506493299649786545149758805186999239441236005362757125065918668894887090258326063434089606607058889070849828627060029424925030059358805007864757740075517539628377492542689451646506468097545252869714195762952903502601074884268847164089113226599639224943118627615237335711124574402555081421728433441801252363767230773477282865752418641539242911587874415517384797358333919529432572472672558152535541623298651017192728557076465270701914991366119688667770470947197100717820423693195164412572856063846871695517821200198692671276988872836315281905006547581484099541690507612759574385387348370702723260168635941093368315881497837176230674932994685214546473308996215025800853673014635069000396668063320989373442056765279845057478684284019688181118174997825664928617926187438645397338270272272118688737047889988745536688032152123587201090790402804860507465706634405676626565473008725701077657313797637616813581421703467149362515536597982316211704175270122404830518626129448309045914612752799111177773420081730842042058593017387438156851890985666974742133061191985198263310612528588550011864159706713143619680119157247558296167129069711292788876413223288907366654775255107063313870032137342855817501152456006587515443077155725554567086755745176524642960143433055651361817581319765111819442814350662589328808035610806283918660612848845193119289551254746080914348955277301955600916587906575258079571062400061336786035975108014641600669555716865217849868566269843217300645777198427060377385178558149014825873900402035256962505124325353068383034857210148658327927962644233145599879916695487784577722618497749236837519982290763693349311970169119561056666894158859346653030750318702635158949733295377807397943765218835816986891309979373572630521704222799977038801864372561186391419030621131789158985527873830022889107629640218520568045111731022187124037650578170047739977399326779699189647086484782513870912807311859083203389969949395501802064544179191050151970757054243647504542086350579372676358327486217693470528869086076662256601758355707374796822313891824427092309994363173858008599623644547656708886317772402373142851685077521377521563343130049156518057866316618224714661974547022902000635934037914650123906507598555567351464593245623355734705414025436715157429235557872610161086577883662572034156903536301555473632857112512179286371441337626469005256950428405049626499627042553651835152099268832264861669505459182450986009036795204064110216778589272173941393225602708619612520206265618439338596847288674523117702917173992382451481464506456988793413622153659473835419302226969847563266731905602642562089605106095421095105974346226735951940193670504942374640380708035126715430981220937255837002071052594483827820222767690220287129848857585507087801112740466535921223585120152642540026114688201173266895939105101902351682979228855685746071294706018744967694697219147820824902556385234635079802957282077411472304158638417146558887108201917061213246917943187478684085411012316493862104218591248972136776733230728893191188891380819013449131144306541068539702602235155376667631035370156620000840512448768120796803275302918442228910646594642828503241347135973997931225447544955981746570136459525731322720481888428890310889875095111464850370097121650413679651108794792759217243325420942849818490664231911298212610356115464928392322056823531372675737434920861015005400436643866964976878535049298871395364412067095354537341401419303686477904183799923480196683077605677376261019294817075518209653348901516151981264721181302739034753340646861534395287164432077828173210751086299073386951140318568638317312181480282023678935398265926878281052479141017891900931874571899633615556094178141306615260472826278130236800985805230290482888318342045782397365057383661151356963142588260685289262609025599228598523756609725451806461645607241411548281107308124633710905005935024293060863496765032224880679223995847652107171328645766936879941146228141743470755250666740048530744932549338735346338634234477143543796881725831848268269520139050163637284268800063364860724427827076856001074833736323590029750945231613256639925361766620472909585065636019035493759194550906811548988103328679144461879553180399656050844389768962059959561444744630388003765125778809389201326671268787082331054754167833589418864195836892552664239411034449775870077712508469944956743159418151299628507373467706154880096153274633775112895150417540445030521618940098402732180356881024336781399488707127568245413015866995210239609823827842811237591886330343621668128657038908033145518080531836153800427514372027942569023535859126534152635247982206125801022458307256221750996484329675259411454022717941600041276897477831829604704627049469803960140122382290605496576301097219414706309926871392489780779431966035466417406956072446261262180953575604096999586001201291411557479424799754270332694728204220870341899027509800380978416151535067745820410977664833699950201994688662470037373511579777335777974076112060815227439271615560792798210164300527883547193988900534898311643515193709883785922680876316535523639876035359394979566569741769030246126680701415451206112959444677024652305140183501616417286547252712755491992943260439710660358435334696702438013374065567433531851039171345519547195290688477134676350482690066823377666014962833343041708094922419258354822835571839426810384233836401321454029767228889186374565389068526994541493492741217030601442609746424729264521245724244434046470460650351686509810734463080088510015709627499498510035171238800835636970349076883098160025736389558822207228857602301391063271680634370081017179295593474605437776207465831931037726258918137438882172595651304024344619174496561321338076052618252746977294341671519375587506282940855843919146176106396712719747641101942603582675009498898997084175439107921042780251485432052832186447245501244148217592047546438164201070529317453911749618089409929498627935887144644690381441319167996678241635254808910401574581534038796035122300718339552203130066767352102511497315961699656966697573374048438865032783969329900549099386937372472333869765950483664615187355584264765513291536820414950836702423822812757953353218669714042664732082747637226412533873906543100737583343433992370066598763765894854652433925066994617724333461715638178223605002108319552177024052565294449863685260212791681706762916571506268261324594708739397811386866069769144988254141064252951541283676605955056194217124144126345928897328720927673112528437686181220828995932873021188947707950972770000496122706155333699567959162919445243567814804611869604161725240576535101832198432158554079371847138952970160669574613869724621935968120506743776234139397346025158485485043517824368871414485665916654282101591586490974266868394949518872330185414198173833519544496424119218159485643296891597245660016651012786587325407112275560636525514846039175896964882174070004666493088799176108711067770488589447684857738651745443877375000388025231460569934046550990129920999176823065316082383386533046184051479900464704623602564860341210757803758841841221518839220105026891932114317526468180363728102920494160162483682256700465944613805771958724758050984289377658309320131913068712616003155894312972814428356719489760765341465248558965556288066873907013060785919096565341304756506925500202499222082428312234588126489718886956504125018535618571686541568335370395291076399782162062503628036280979050739535807690343368301443599138340455009846577104308322740547633658390717052772514100918587602013869488163403221447088400237382705832501997579165992658251374754193687309317863343821242564000697331787541316205111926458119550547074956262653904008612528267336036125803383519193703111753624819445312087629997274303923091999716782625751455345075900732868951059719018565156571400673569009303704538634658321769058622862009974011613327936214264734122180499894865114150265941624420740515460116119081198463839875732702117072313203537431060303807799866511254912660146506028737125322123007740396094183772499377046650362061073932984151979959845304747297258726937357413699225023179037671388982124122857696020817839866397020454847988077990991942461301961190150632437505386451533174893641697447190277288709230768751273006595678377647245004563533515540019462303721187917922244597221274093694806256510778013453161225156602332642228956577936309700210110493054137222744478766666499200225453980889541038969770576779573645054119797587991493869329710395744422439989756087033023981332118356089732857608718209079589126912738461728234242229073449072138367284523642720204331130682889149940804154645160730272242035565848758173678718379173463122661157500661054111054987372581472833137940846527624832247994864070564546519831521254580807098385269450345462124277443378784769161622304559875064040034022571537519833739583851527052784407951879985873639173768544256845549265368208588827169559223465744227167741080907831479009575783871753400651837467798433900046723437983276756742364438757052958228434259176032798486717607849378720750164717326236621228775342604731489873791167287334897825546962568953205091913863981450474754393002547012310174686624610355335865674236474755225177347826172358644039132250176520722763813558856507919145300020703005916799856149969785253890091332139160793429249562164459637043112462573687979312976870654507091220562259328530084656021205434253857089616719053088155525464623923480842929166349584604996673888937575325158741898942148444877721710663143352671454025689701662663734010488854255823714828913784933490686140808116494600380131186481271243090231586551431879791663381570588186625842644607979887451834026372013229178173486549438404602315249071395346191226387674993706104734168950912747117763729232971967230210268408737798810168752237701851825245620553079029336737481141077482804180717391892458858618581187917240390989695422637413364364661980061089375080313219796644011111685612506365572496783763997399355700080265212579387305179288769227238287383600809230936499708634214441674325850682570850638380663499949365882901578438452900872464551273692831381215312908876924453877876817554612519416142070026848768013570877136420700505228698380801096628845337696362962829528127750768065506265401522988531608580210671761314532558322826593949778993412529518598741492478517058560079994666754495716586923199917763069837312228159215400475847538061239916032457401081214499779411452259876223472438814339841113795867397193295253001869939411240868515738425128278246322194222310317631983918747837029206778508574862655964709452314495986292069841702885422393138351192471798546368736786419098627753056130700466199028111454495390860013071960125681795643116407810205079550508770913425096478347697316047539675958317221572244986182711377911376477389951098316627786659885606608510292297562709998560756723616695690024268543030141821295228092023173383969429684361329052036972230582474072162574169160209413542247492075858246614473661947963448888352597842265014552043827265849474822092093051507739714699324178209088802787201829031431304283008376496832008133831114257954973634734765879099617413224097703834384042927289450925429562597406477611096521371338622306140452437106662833039061785695117178243841705646111376188336952194515693321904456128208447405552924963311024969087002602509671231292584192661781736563911814569358612580744613279974854446060798743570681978062717001494604862523980925580348632386655059949840374524523656518611120115053066944549676756588532089308815325200746600884363567864690390649015775273927594717878158455224149819483440264584524552475264070053485017233472723919716631244033062969875830381146904412145898293533722182389189226061022478913359322542591567591382246957295784644886718314637046607624138992221984492015779285469439718104773464271838787446493466817670246957105630994934408742850307680781971385349254632425781924904754085941568216885054831782663929570885087948310795628287044253502769733773590791906002182045904018036997132113797620797066194360600056277518144341145656728891769240333349098170979071063886525869466336276670141927117480701927965752156511514597659453957698317224131012322746795914129163658332705251769210688229681545743217591816164981752231755289187589498591176153451858844900041412661567997998396182351811059956459613949365756960728157303756387433330851493298310457344016644519163284884043542930114650816848196485536247190278674035998721344626088396419949097515306663558568814685600965746525326583430557213551330891946056802573179232045128253791608806872115441073849191137653693247891326946437571643342033081026135223391281033288103167515052554831261906976905996526899216882949188153030605804930506753650974792879453014724613818250711814429101376830571055161388247905617386834250451591490896265491400750283713328054266659964321823641428466006815580368308610657571888448014664999029396198000389044361228331618751884464973101425972311057812278453862020090664375800412091845992246990673369024811788307778526713056629325284433194468266186525029243828536051532307145308741045189027746211307049606056264387566114529946815400764295685084420840595769945044356723274794632755368860563590575102862720370509095027322115760727700524233422060684698330810887989327792679698629841031042789055670726591550167595797309959698847401715401171652412021682475467044204745780844057674155060160663340847896797325994040768652404835671810428994378191123458005849991060700884807253599539649905289581855941585346320000174201938666929451720422943652858419923477238108415005377140652477959683564557271062816735075069935473298536956718557097849684646857039364851530381529362681863998929966600904221411643797496874025006897334633013082858423572287627789916489816581382626951225400305310665931035456360645718716879528729198827185032532163045965582635823245978243184860037084493513772243013060957366488894538048181132533037674354192616876981108476661751120125553518448654435806539465777149303175354637082335127527621125039962189988480954754282005511843131045632241399519814037864463609372800571569670151437653841421080153514219755765917885815166620138350330108884469646106754446758936081671173091506437351281579583222632350625465789112751131113180938464421995312587763397953883843453029634770567992602540540318380548008939698281281482626531649373992494643361425958758884997664866294695934964356880604997950074792845307937681051853504974120338728358154777132718765612030078110351004488120920112904106091590391270132443947385052836069578452009099122121703179751599216296347536082272463879731036501442408480522663500622987330696314141415405523394127632919864941834214701144557282378468855811226384795226600015235693658088134441411175671930437704549528133743379224762299784674997146067537864886453466927928051061819189790848983502463755485097888893763791003616489426291149924723224407925076277046250868366939645054610371518230381590453495774972235263848799545549238324558819085825617795632259219579401414982682793353117829135626795683245123581628498305123215311270300867484076576161093985249970266245798268578054664954686193759538633847107273185774721323459794938364311899890324965178340640323805211782168309153670593022616016986480632567101619445308539519034994161486175135173179110422228162451926298577682059681854639959347375931613871315078397814458909143791577422249693757678230066679260250169838398498553817709599119057072867618734321364947852207521325082104601843813299900530309358021339907616343106878542197264378562087285637098384426385416106386547667439119009365378689114915848876047507687346934046619491885311864425569718357295219525839354374139226856951488432978273560990383281189522831108990832769995729321627512467187991343476373029469335844843872952342524555901940385962733772373324462511707307693489607503781036266649909994890184829766752359289551718996479783642214343784019700910971903359024544578798819824507802100765076763696159189001341965848598752563683809896959911148922400817745912782664834387815120541358648732664264426937540144496519098995885691626573618409483122251802770529493744258241504192280037995375582672902897299746571773556621971057904913759041262828976663323205837823558974047342938991260154157091463397071881834773354839579535055557541193945897065095388201108361922545236115894770429433476535413663660363740393405157518701085287570066187367404493096275114306980725328200324139410626850394344205783215785994849305253664990781892006726455375087975141167598414621921208366122064197077825438078858181975144763482234251525609875713800738345421847737298576457591581080552698254119306347686127942025953847587232232416145701298361051782080804173635111179116194424188612680536284003502480640745746241468166845355425426477975968828834787065053004089648888139777403493392129265874263080124567510017115501710624748274355790226390456789190916089004419591045866733552937595758332909823911944982794742133015922343240698297085992183100950822316306207013653233111191515469138833185731696788945474568599705596769431538768311751703121457536035445247170658000284568583132652344227208964971982282994270723901929876829733778234757836683082651330874752977732087204373814485979605133207596279400038256585144265290423831444195059234874674642076088352849939346647273232151753190841732348436981435441092158663657652201946821952163700520033334222183521699434010775276012132932488965095521675325708484170734067015444017170106875531261562603360020068087010806528494914348811107354633928486772542975048811364885426300748788651712351868015109055250886856794640413909041385235101718827355813881565810810310336075570102962915502114173123822620253198253400962457502603400620719743164484769989080530455755770037899237039819679180821488089024895598061779653358187503917065921942065661404252081089933686829862305442108566375818494112489488372397518342501798549486003789191275849304506155765651831223595656072521648280463449768296709268206388753058346906712336991797546402614829783259301804921111909785528026369136886945656502958431386691825397808770826694623559189980938353634339560355888670585639773437088492526487674982481995989939636388910228975335973714794826994582302905990902033501600314483213182946751324021933776907884547025492420214502186700622355176758333701468638092438957896932764701308852819586779765684066933089063277392780620796111006152039707642557429204440197085523928644925710503707212238704030616234333274917017499919557730085437723937351866608265448465536712076348187459844875201612741801487599017172569794904384694397752005277572892061180309882570150429933136711284030060301189512127104063102199071644086636059166919245633558050193935872375357636375861412152699365050515656917354649478833832152413016526090725256361468067722153819932090144432835733761901826345847017193927726843835606748574806929008001296250321112035215793254343871052046927857536665747508635069719291307803813229919154217984716366938195127854224699887324981996542268310024530518063048271077939450859601779615346731892626502082259768206159056237658925135895786691783475685228965806165541805096006886672724943728345647038584761361550162449602145719126801013620035700639640787702995586714896254458656265782578965868920126597747757695674654504746861338661752721450802223005148983561606771151082523996007371235004511375268813211532650464369105078002891992845538153310242863843020121987514159772864009267608287065294571242006632555565657080018774474302933968576645777566869745008008343360968116960752186611444856665744488764531137585327807494616583812802057916017578562933187983243156428905951698263726059302240640465519672811186361536318375372400952480370959937631322517324211184184742659383578349113115679450625409203804615402154347557887057892840592175965002681149511533372698175193891178882060015631529138385999268247897582238589379637302681677519564591701093936965190104800947579853621790917337885124191037085297437065206569341322506243541283168366432093277414454944885541291133811434590661197452350925704395307599350896710327251059588047020361714920155468478266526608740542060796220121238319576643457542599063401801780379450037144686086125254794368403890261482481249740676255300465497286533813130877333560050300054035778520078783131250475569283619696494360273126730594732126891281944304726067900272194287477167958064979442131605328743696304751688072889454512144362688028121726740942456284247425225900657907969610674328545774700256758948963423370260892942093602125282217104282281236704859710396384131539180119477945643888713098950549212307249995853429352816221866389544396822565794524925087351926966964170584303675090432651351495838807455152890174959994712028680341093187784734378941143500000202304121072403341826362233277266094041322312693587359044750416468092608432458849189088827857826848839489673715047206417709469345599927775644620494602383735930704653139743491650290504223987574751834734730497817381066142837986056484072416717674020117931452163696927288744344413296735950870170824010811176674877129359573926613779937201939956846183819425280270292363606134175975197372060398696183364072377565348311701193299614954390992604627208429608332072801897370631510679501146600753099646640011764063007112705533348397581637237920655208250472132317403180298205935680180044346474739903627118965775734259593192498201413536676884213042274386375093162351067680738278591525010012552197753166036548241358432083081550234023938723277053171993819124603994648473953833639746847594447283367591826378137270312188326684555089191782717165940375012783098046830806062239629403216843100608409422810350893456047417106216003240448768488624040436825093685308775841807354917680600065469351544539101624036552553653033704750215659767640381301980240553412751133284444401490419146838734868829211417385216511337742674050171587474133944362653612239171714395897868821778875966398171506602812356804402059592676606565360761885645201719103512980855231827019269476091948059421612854942629607633167103314585340599784381384711983565724719701714180112211825911362185785753203726588886770989431875663769848977359128973615675626865745173945463447016565588482091373982216547466902866977961015852708091845168144642884731197112916228010581377328559149498326155347115824121820030223988589515137130681586212048182867110312506551362396569189904544858354686108120918973716164504814259719154312836142427484490768213607246098922993808034547974820990859144644914596139305314429951132315675799180043161415597003557755138516746366099042594219590258359565311088442165130603453161285272297056372677541964091178317619745410777962364246750311610331101176625265718437307943084784453302911334431292682397836424341686933249434167128412067102070334095371228550440285016077975565633953734086336125498516836121773827063184173973223077659783592116681234362563809770649371889166771358461034467398960056672537672616291688762260939143540347316887138646932776119889117489637810145370548289327879457111340919231808126220334482676848853532991217413999327671598026600147770512030085456382061068029304351411570267567886911208994744116180246054783797250301580053719735661916471646927619794421314145880073014713039403793404286911316463846782220825043627000875983908560567389563858404304077149573960545161321054683795441075455673117551956096523694762081379810738092901586362401056684865759209495448033962396328633724116359169458064908069445213299370716319914011187699624452381806166655100782074029800144934029520235362743025308095021045865075927224725904878149684000011561926079238483749334907305475703027772730169237900121149820557006681489944935903964014325264777935966988219091274035120753705338436477752240576665840615785613592663960252621297889941903969151908592648983936371027958436329626245442254531441281764312902433543465578442161369649168323572538693952170861326894369578130899919160841184311873039388525342557578018850919193463059403207222143369607724715355585515909283691715637150536535503697357764638336263603782644639369603168763935477876394756604867827926533952968977341892192816270039201252029248708450967698101135771498956638466460725024157160396263286171431009705863847516921255008175458344971362104132568590497844736359861260462632805960310531062294021830778652050775208248463390140536306333751581929036466121341794550215754479170450347518326072110959601837964860604161262723658462693206323948705431691820142054264501611490303652494277646721992431505425520377614311085706690853752633087382301733441798282966536372837897132985386018921476955600582065169462036799919538291285488291253670508014728689164329920202099390365209203364335877026528732613016015515577516243911165515436553227223597250963613633741256469448953410861605116305416972160523520204308810546480183207499372399810464553706668931457710302290938897881317150898406069262404665893616042587711913522681967699568221025875695987179112704676584652943284232830893911319212794422433166950625565741399315741512037379919603842288448865166578869689241067274635379868308499280610244461035982294109232056936602629055851566682360072655442796421220909202369596656596892157195588330311819905052706810222960265528017350990539689773465431040434522226645324798475328957823023348027745796590648804254871285452147814833514763667949768822405169990983209591488865358170927999368263408741865662541859052749307474803590731497470062254095176400798487052708034178302641199673676350531924715687054953368972215077052175930510329831635641912264922636763969122773208036268156288847942828181698138608667835873828175482074830081439706172713858094518729310572435331580556154168148119825402510500471414502839536118463209801395552214326546675042048958844949135679649889045402351549071442363603008724678275852234248915177173209109638520953888786195226564805684250244679004487956748632721283379983766474240579104842753476756158408256387698472556191734031095168195689738084394180841945632304256757331718714719430755040343467531275142388820197071627109716841977292549429652621067048136966707017220343602682670243616731459853006865242431997955522609061635638725209288405996385797897543119252970653349648301050449809290228623486090330109373675535605088513532876365747548021425013418692525790758893900949895531782458483451486386630229457743333323147932172127301551670520002671417595845490891605034503803085773998881785269545076086616311025646851887507906908736050971568660488662118511414420778719025822024600228996084719695940284165683746369090355961829984076167837189739245161654749422727108648596439118632191150615172069193602281007624659005532617853173325556458019569003328898161157150695582613837311258798421258215825093056722630756353192580963962086800005947309681740455679178808029870943341168533266767709120169714862878349571517087865868762690631726948280626613426105867773648079667962590673513503089962063014001251774255313762066508441642504171874146563847283672387702291858820219831827252080730347575615406748140203415316311824266417423835047713335331040811622691694643055513275895586604876955058117049766129235043147799296590304509700910507928959437756533260232171967733415649125990344618699856504336951033208691548781873949304414660590565844172225378549636797250285038517310830726057398217518733727175217104450721019556757113865806331972180175897341563915541165844932772829581725031920724135143397608794753267871516584791287328877042693133376765205581086630446688450584134063459660258355454418009360783355909775129335316535472776787104486568981374071173176901305533637507886235257088762859283039838308096134859911586736980426706680269883218371490239886508790073575791551824125149062651160356277865035762407588943193247029485905842122257583375633041626473907938439105491202801080125405530780581543849615890412466943635509219678304471758367467390042778600486603942799291548579193503685891333340760888065481784774929001627302406852032573664771866467353569929900473099874980960230104326263537764819195980506996003227277641724591908334637266352153439832849370273489332568435678422530081369163362320985578581255169818180707166085354997989868668843135146096560383414020993831908168517472679558827226059814804546526028261253765629743372606460054117519469612858273855676660786235767106934372510809032053671592300037182835190897785475825970951116521655983745759201001086197631499420053995128378528203162956525220221093031567876776996934187191192704135730771337796837884067021988402055636443054010884811506591530555694094075570316166452594990241943635877748713604408876384041234332585530442784569922228799266072096949914957485873249300228025325418533620029034438909047670016409114813683978303087872161178120997643008695613626287536375020941475570647175946589927015380099311585287552223871791729898148662138769156921644399996020612105357396470465688083973591994534470258549550850192126539049110486332061337411318084341725091401634712146650487004213976810173400671654851224428230578110980417278322747617609157069895378381177380744768480708083167754287474557607608110493150123568347235468393944038009363603965111709519708883369399234462280086393346725963299768559171427766655947139166084391947284219956218824293186741297989311904267257615036928252985778747458035689705425102184393436995343639639219191189417747641372476084223648989711393927863904708488282743723456778837984755015639096818278906360919146997725551523258687359267152683999692400821127205785638371112370195234972566232972103878029285626570159055087926588858803653945765738012053328913929836971134249438844312466973425237342730896604076205905591489041790062080669505261267045731069456045013446411762536951917675941548857572851243355085588661129680197713655830331967546608901202467730603907813465988497547662250201928999715450920647589201387156479064295811548040770219379270123864279483708694927761391722669006265249844871718421612202301177282394825090310792221178606160194140132739875859259570479548120002370494790312750323708878915358886590953367020030334770114313205068597968750885613514354069433346102309834499088602112770546807236803751701081190517507995727054220783939111130575677000373653379310820969861433478304062389225843154416312852510342402682762468504521630622522849628362600223328022659067328844658418315532303939111420511609033101364143715459159185502232796179414229800550497213290481810782039710224737608796934633101122773283417037259997017745005047198264784625631221271342209843605021406889327933643179385495545342668940260594936333170610228797551707979812419549470322824860046939333290416042347306006462469223923279846714898661205205589955007825811908372001632567893481498920536797277909577368134642357294500888166502269367963753597548686994507439616573995888820922187105238221619446765969369922890843180554102215993274643728528312713777339248697817045989371039353158131630541147147582855454860288830348564013472234716187234224531307860948290469709858739243710555779676717483645822082307540936233760500257891648108613648873707562458561967052330381279642210796528137744664488910431791790159861568851613401310372789338126219414334503429728543082484482405829517534321201423833537529172185481440768432024833229239720953681340630981968894673547105456766178190765256158907729305602145630139133167902313255169726494654130025945349876520774418289215843009841763233693246515395176064076920872505630890525330411041502413821063992964113185073821602111537412221355203861144448737109542467630528735845876344539916540278208131428426892465723075751246888852110770510066895611318691506064812354953712315693266892043667130652110394276522515403478184342344928286570687206244916472918400749374079364040568578435895343073483027698758793708273336245401860195720575390285332259276492813752462244131066685693993395321806827785786203525485361308105671025634969069667753325487726152519203948361500727046105955880112401218543777080021197651294171335918477112231839842928575065764265831879149570628416472992550949202264609209879330949107238525329732797762874478866461673647455297545226093764346209075796784372094349581435308462873194134965163116012107605218916298076605110546977360418687781368401868097358294558680522520426420552815128671824904328609868399869077916147276669552751587153264053354890319050661124342423449301183712405433476370522613003188166435114172914189972153140728856971999459055269942569015982541097351283497317300714096342223514991937974483546080872897550993956418256096688403280580895545224192870736270936910438682030434574072876413131095762949504021014751707063144104475943141962559470364910160940467785641298433058158043774890950670002612872224645641941079863107200028551710376719627147301689634637177763558307644209832658093854926152790598976766076606001830585943528148438617821759942675576470082950415783971806273175139966831726184314541300800659401802435445673902724720822837842199303492979671503477521688765767402467260432146737281069078934374770723651280442387404781827535476361284424681282112304500183529837396086298649973003557728450979999570011115659744339724686493642612818222993540214220931547527937895537200654198606449584852323471097387016022850618229906243105108089624010899581253054869796413471070101105934236709833896404312470004855347180357478876299744554061167091186971145413270177789601277957814146478552694803146157744352956404333861471647611065165592400540381324134218983605854825063622111362505137669704135270059856136091926773386766319688762056802247877786469743775167402535875560474063440318760639424764331039000079643667723917873148642867958609503678901254750255958899053786032940861730032813297620814349712689018876537663314906728352006536863262591058985502933153439195243162400846659228034756714420479723235426645873015399227071591097621997726293684377355842368555352712430725157536577056761621043013812119718592306505818526637966039791679572703186808970940714632734108400204096330526542900214823727433966951423178106986952603710523855650930739529210081562876649326818311662779325888739469755324910767638134804485009432221832343660219808622594969063217095902061237728762537232931228856027520165482226433558663949165931136311138199869100979962724827153317831284307169556678737745765840336096916432882578732116284970425449378061062676483216801039779575932298858482202088157203284442187321408332877645666109996069100081819169996763739456610106732790681517708882289569686990838741547417630849115015996482199445436243148324999624683641869207617700469828987811564465551165066194551953308973898103848407287146342522247455253278890583360466941771139755609481396461382354659467069232462233943254514203624226243338613427152594514765671787695706606584051239311942262101961000127532389948401605585925854136268597060759683581363167062942888940397117326957895702154053914638301954812829849210865421076572888862466261438580184965425354122055912464271011844790102239238138795208956356650307643978639653676953861229595924889964107869758809176444046708973727485724984160181845300210232444635180042356189132484348260681257396453682636165458275604858304932129701756904274020983028963384169106734432691995497153231791569550175364679720692770706847307445389713460090441027758797607163570288725636859822660231951202913402671313032368039846665185106820079723935307675520766905713353887819994924598825111604646295101952192330108745111191624335294785141536810477769057221065206298860107832288279760026017569747040623494727235608729603961254171692267969244661013965752544199693012873055919333969914891042581150638943386783242142660624410902104526725390865954059451968574307862590508444613295223313524188854762766916971360662421024801366800371173083339952531676288056373885043077482291965266883519139163578384542652129511647663166541987636628816560942293477862781551777616428724362344641975975358559689981658025320442070943201584860473463485190710627403244352992075876880866381690000401418892081721411461864368963995163955044605722624164342779542029375931028177900869879271791506261457819408784207101976898624112745914584225081938395297932117467382534899004730235673338065397385531637080194648577881118049007117966849016911754265994945928563798699511006560785025492241612253291527127030737396467836690719768905834797192043596221652209816673444482428099062616495294736836287717873444380093326589574226322360497704555083222584423558458481424853419540907243706067425044804230055874983193257677694937884326470212000719392403838171674662639223935537887870427553869026995546123230611230936941269533651310986364561225239165307512666473459823673221138761083559332976080845720564809069260053401476497672111081197309543268080443095324943329407844228649587118408616256966859202784948501252915599028696958243199026629975434183589989547318853086973849547463274371900491469227304206123192490359323205419305751928824283268470952665081385991472567756789886943400253150534305962269909073059597549035581440628821830857806769209889618023394431783286746416467615944868507065048741975731280384390550712925751942255792322479831748026974107713026266179681046962179402008553359533425205034816332783706286968834755237211733266695642104726334014852474850894957638249050058285604842826456380839333963922786409092020604402786852525250216565445922891034449926894495995216009456380436483500515993096546193614870502261120021992713930842549059056671989009898779382562986721998210144495972769639914542894829912338077318365996421975916848037330059466390965680878849489912531431854627741936939536129067705636118607475256246582957740186302422305866096168166997583770803268625079862775476290711953961477266312507772263021646399123567064288774189247374584838405396198440200529133099815040299033984171146568626564616086809570167166662487080927141970346878104387385460046491300108582095741985587596451017275484091878434687566421761031552283814935975602760729495809541433332768374644204830088146989233886791881207796080931080645354670899509796749856443590936265379126100811916764649764269197123474084172709504449129382990645533226700196373530362691237564674635969248577852092778534056186855941157647485225712397685400095317138974349665005492808737304629760195618009983915487230687023379591353107332662565962821759163577115513937969591752504215586519549333913630584434211677279885562311573259687679179552417331277822479679909208855835139016050439945593666565754358227704033111794289389142243569990557114443610316211221157945269644055648464829661706953343472286773885283857220202600353986230764392698204519752143208202338830654302092587918366799109257891709223583151298573921111100634809102485871707912778497008507107077652939524167398608890836913136602481364702910355211536261059521718164638666091045509516152697112328057705143082021086604112849681355804640177629606408180334977247448693717526413886098547951833949089997282050983201233415675440364661345228904178861288226665348500150456616118842526275784826414553559370319340581934456597016765000576562927747781438189166752199424940981168495164616121556578405371291427531930213584729941983674056538731627480861430076393825237968911749151101640189193938667417195037353521725030377819577321399281198890873280135974946924540357109876430777292461592655729003563720031859523341530781898707916724573219184319100671993236588245596808010652250156964809521430742084430398032562088536445002191849429117969220479207582654341044538137778270243294937908163034934600582996151838064795207986916687403788679992578970566239871602466011495412964724707028433009842253314621067569718458960596467278921784095204810109160717436807425763250805793971452445952883611609947312172222282989510963754096700600266734469759291137647072311234466427993469400888221880094489840768986355767273176332814225379725835242435387046553039336273985251942438489449016640635989649690563756623055990973442400109245486498739102980043526504506484919145418136117000788511484710621706190636074276986499989387637154923117610134284415127851911096869359447253659151406824768174246230356504271008061261660353558778973246198883033464817133795734469155559728612665601414409365642357279620897228318095188129322034975072021705844845410870671429211084360046540916178285963254624701328849428889115798684223720890282588993471071799635115599732547708983215153106133298371154209045399096605290382973623913042551993384596041042245186610354348948007041840717058599889214449541550050656992969312957465708175259138631332514645238025978634798700380441135689127262408544905879767206138393362041968635504949942703128789977534349953327198623852536965459582210199498050480822088553514768832428147446977808345738346210137560381291433030082490049062864307642436740351886593885857150303067032145833817968435406501413088183511433643403036444717815428871407351110835348314817406659200834577201747770660648350369019096400745149392863951900143622251203625096086854354608177528293079912297891944470533121869645399819832404600000954167927580446519373052930651373935486919499984042261261046985651629333847726635744219860879199802684665560023609936043859163682170593213583972318920729460161402087451148734447519679786034493042568290068514578900553604286903762161328027628250338959765100732879751431116369490029191103057301883870590931500392448437719705111669756897625491607921366165428749426742694308047754960094957893291169459770325814328116143698551561576302068819421307533591660471360290879002757630784770643731245298119277987384943981513663167809973072238679072096937348177427257549750198506649606224769074108143795859068518675099158800836127273931849510266519156345556732985216227696157579922115765083774761948043637465227944650615498171988012129642725457023501449808995002511312335693578374855555679276144012843240110976222187974951965807707590179640641136353184993925708606395646704799230071110927323015808892480197489025142852953358382073525076698941119633789412741109177266436459313354476589371065688239468760118090823754222734978319448407856975028052539637738207228547715717727079585245538991904767681589137979343278330576372750543603475400121971714272332056867898314571227448043327198257626191205802234680554478761067436797541635945342339460486610926356604509945507425391777764340475977730203290088720691110241228557725044168529441738825484162964820611122322248124618375847103460965758066244479174349166931616995727431842219208328093035936549548157510210296815162378154478054604812804652449021720004242106296732099334575834339375982896263982129376449777138921390331855663662917287187316307093893824338441689419849378582930325432638585709869462465114495320772942515638669013936821541231964761888034398771661238888097371827620824313634260849485857902430956623141485629924313312192798513724387304320417697788746764452697665425100418290050800553837766388684693045795748655232353568529522802147479829293069188452217030746260782140871300372789589396778251474935385851046255482813728776790349310354810917654885253597978954318899347934372601819950124239612560385005438195370852447135527452259525896966839134085049207106648025000996580583507394601974796575707210211189672757972424848867653794111675617798961561254966723218964313541239654880669084404225971763907867420365026803800899151053531446907281285588618627374432088276899177961971058678438758367639152947859188389485049310406364917546737682583619147571007241075809489599128083507827849947516023785353700263737803926509366278484410034123383512165323995174018019434585831880297328797883488550885149851264957422551126552092619375256632124173094398486592203235128781242742503306916800053237211540389250523333282300158078718895786037837961263755584613904149888136181532492304828779632911892971088798513327276818002920124881437315058828960652904454312859702192710007784340034595101682048245122824319531381579007931939238259089009436284143212991104741124968646396321319423389263035133660287930415459744778324585950824510356697987420130098599993330109657966011875733111963706417963564915006999725146149163423395678315646869932162466893165545788161948635230713342262859486953597093710120510160808375660103074705085514102887140926146114653978367281028941393478008879816997354639488307699746044376218219139641226811324882981968873953356178008445750489495628815876755001057455568014939707626068587387991883807972052029373045962310912580054375564144078906671221859761746953984187002678389940288212963009768866222008906351574812974443299757612287783518705242092969618779724960132472721666686404253762786011603430590288907491819662969351076895381470377882773992420065871816994033808809184514664607289886639677483256860564308469155882245544821424589102725297387450126079769670042756551175363418311190807061225016171793045154213227084608741436961020793012030530148442286027765552920379261682874001462072899712773139273120032664426639192268561501698637730279040876092452751243797006788095942024017927031803473940811366666363273208851185467760836803014169038307337598434990679827168130718943322640286465477854705167379920651766979024797318481821023141272490032058741627910866808284854082338046271288007857441259522454404702026053546741899502711975962062305455521771371760743191580729238302146051691263698272814423090676975484844521155749333494514457494138528142546378046121286830966462453152871796880479963280236051719897133217402181517407165838517403731409479017471180349458895582598142587057221642798836298544838242317023205948734633823034630978479926908073436287288451625280063569313248392208108166039642624431509997780383570313077862180564771612549617807287791323410178735112386879477643279485433940498018213477806157059744688339527654910664376191674044201583000971451041464956949538848286175772911154795561172796193486072075960560978026788935087313978805212073944023968246702445792296110265827587923988631041710298305134274110831398289789814920804225231688991725219846550478919592697405326541601193826637760197445961408380949458337660126437666248756553885823560550353958722836533979247948538956540789768700286686599514871545857913662061078402902911464907599431067846039010076796881151924876687243531361398197268157513711759634619295632967146626515162474903859788227097612892491946769941257883319911353878056384344214518433144397551016529096728056697429533510008345659255275565966049002842930160714210966768801006307357745717961663604292735678245870283407472852320233037440457929120259089962786045150673266316214811734832425971361049623786908540925200691398394273603704060602345405189770984666408899974061482925919047213277898947630638620509421251861884469830448546073855030586944224268217881589028617478066105152317669485849139260901329848238608954149467869738686224656117036868566444290667739301071770430157225752929912506670511051617645104817693148056859250851307663630303446311685175297406950975685457964217244324196809159520363955376053767826421936716312252444190648689608017953742453869487751122925334044007208382848247853852020548644361030829480709897622816643108451989965010844052234817517760064648268915401955246471687255135966622616429815371334527080431580016557731956047380714627689975471585934157419117737152724074892632989989438782630458544112290734111468419240665786040296385094043665594424416479842327670803967477588438657698330337089853266093332459639612801864535524820830458844031117933540951571677093443135455647112651859510670611900332034822099052721231545289626403116207656842551384806554867832489704310710457931841983044258353823958217489013729928715410888227270357145516258860863538805443872527372800047539935456689028478763200529306414335926758318028798115689055068431371642995620969292140746005925021477095119287741307122199202733026533990553839238695007154792158346979386487261335815428760275558870485952852744777234694895836746735578996239868949466065201172617233689456284965225614911624256566711627320246906514402317287082342724527224538058047583698864306991624857655991710363525207470097094493943790010586034240910853127942969413795063803253833132153367534162924541085389296987729296430235257817889159467590340799521603003376744715757564791637668840932488585043221337931978616586312778999267712098525226325588172039056756200281834697845992598709369031826444880602930839970195670633979979251713948919783176915033698630370426768460714980666142280751685579803188624629527595156374350528889458540129918773334535828812262151144686789121659791334513363053554319781365883623988775684846906873543586558082687822242446262820863520153246050032106989694091490338264262986850966797638108423655428077545310811570038109772056497811265691926193873641864254372724878722576368993197634724555065574831028734982208494457024297018918070799451443207371640364595252652266524173276024260630411931516624517515433686866952207369756433632656589502840690201990550511029972730165976471410658302680293945043148276915839468014172413180088983447329564916292406526822978205156176044220296992339146881657981058384820873783311015097454143597361711376468974870828457015716778942734987556479564238635206979460324219234856665584944730865010399534838646515011144986560162531313966697750738915056980689758368437479310561543304710832932439928773718156240601860453840185405279452906287519950830706888546373688215641123844362662239616138335240014475787118652674348008915605993625791225460992967975451250036361517709262535805658403891761081469831993972251000490546228562471062000617685997046682037836156018619886013870396473737059731497979918106781411547979372610620889080926124786243276013246065184471727065588829422431289419127464314052231643749175431090040936441094641559360242267173147883741007972596527652637579648411347588712138043522001877628304550367805529209958555533215475372135179620460515684554018338917899571689782202255320853180891499274356447483298761980879953308354144909254548676179039988769978353256042858916374690036994253978867422725127950136809663642037077881200610078389592876091767113887287431324380362734496910898783680352589834754678883246623805909778856872371079487189381196098215996515596264541280257240540699402079361556707455813137632962158919695490274293246828020497249100622537955040193601915052418597641064378190449342174847983495628233899071706624238922018337843535867480940633152629401079492328273889989104392480153630518649971377139455862669119390702754137918165470119825862907519136771990525167280798745606028634679713961241564207719450841625875854443531384886255209876217053546558539072796641078967268863255524777450568309757280400095220149991037054713422429287473177126019217413292892397718999867457347508749646336722668078001925854554623384910370102444477719727958589611246511334982804501525422172441245279495136036312027048282559644308710213424868874130248608013227907662030489995711489981744542487968043886392564840115289140289138955370822830292791045738885652305202595573888804580657652087544746885381103878447152837323463143673507139523740731502383435798848910878336432895401987436229133275152617100042353112985461576323244091558893276730976910623186667059685723712232337037178673887107336211793664203685928244604131873378093055118607718862732840470982889106755621471103980326647275705471973993468040270173451869447511298654636487368888907748357539742964297620415725048085769392030728911612624167300841742185538090808465075929768929002711157109519844416909089819704718097161663736677148462173360432132364094862557892746654645580008353138905154324406815476070540927142884027165092904391964480331059116774911936269366491134281348424537820248160740382667557432739746508594012347222497322157165947971758685895546609407533173931839247804832048056554372432070537643943982524266221065010589307286301284775032090579725067641853973287008027033660990832281538543449085199027079522976882661450242880667645788638274050374529300573037674236808594837627093927131455299871640746827162459146681599106421612223725515399061057159479654715932549544297261667508223418604558285817588336588412017214123141220826982311089985103482726510171730203947152678755610684086481652598191823756057500928897382782194003864219766973893584754793454491991119230640752302534387010715111376627735558188940463061052751978774229351695529059539062624960766300621404580709759687335262091527283558685727190922478384456859991391318570683709454455092160255618328331463760411392744575070019640829798066742566745316505875931657875714092343034014972102826329403888911260030248996995433777293186646910159284077337805419892255245945733844156266919048165114416599559323490473226216969536688278775046069652497451215017289345224350924289192461838049257596371613826290602428119139670194112094703366741199547600683127728130926018034087563461113269788796754867026705345752771936269713758183448958506227068158992996250390236009119524547319286490074624627556725606320770693552165119201963968487038669638939998292769485245906356824644666795121214026935328496483876645902192789990727901468186901875175874142920945204385977831350986016194735638535244884760245116656443413354068839970116459224292711818810901894788958996520479449483628199233301667233609685566222641114132395505901320556459159537372065861236626756034183973407474571115898950026517212013960443368282359753392769597108768856992464061035765449272663098314520132737346741087602709019668005086608303357283782401435589681506871323735677750124638474584266776045642311339829242380896550844227877556066832457055307022532781757997424083605937392790394697784986917594215275269818188870301154654687654342251939447788505893705327698312548443149811756648503484306176999111850691497655444168360912491492555774888946949462980745021158372012880258529976762878956952168200909235995972778522347384731015521256166995789606252508243093185208600678639412925936622332231547549298030609006015430973190740496229615190467197403815624441150129740769716089729276490519459870200627010863825093036726934948107095543271237039032528534119809171341261027455005312905186208030216178438932944720451123112161791107190732047309564149047670062244650978078793355879812331794140887991579674232239723952150407821647070553112461241664419373057752353743347241836878416161245213258818108471001932763761311878536314145167063691879602518101323478059227663628091622499457509089985735881003950916822351593389699567925932123544034060312766441302132636605991807887822794333848731364625862125625846326961327388673906675420143558527799649916648832956754162544357958657456069282071587640428801823464372472268426486059059107286824824858273761796848571330679630858247907077326440248991495467527591611061469503746958598916336044085135905959932562439629289387273504085899077549846307829286184712154322948270209239632790465359660229313626715329981482441815561051283821662594116502967457818216575472537004230324292839168694036500636254630914962765012042639715615282944594677856508003832562990991059268632207512116501577101721094166390203295858542757016566047526730462419935632470411827269985117883787724321508750316021009924357143703347569211564623887294768978126850999429382729311456801428313159646751589171606982011381923804945374848591449984987724881662049438299069859549851936692640497104523672567131424599567684299157268565923982166445616945961646607069026845727034344253108762567229410561061328174287757810062176038222345678127813537494236599363361551678597625056906525905314037733019734006625161785433011253425475242739635073761757425334887257408241281512934802218860878260836816821492793836009013354212945247860901912155313662781561234743982101224541989062803697910015533888398115546237227418901816557083597690880720960756446485497654742254626626716143898572513112013631157759569703394504844667676021024909785541384448856485478020743540108883127293653883605774273146469108828606152219104557564447264578469847635829393494452961811325693416743421490903821588895774730236308626409919991873539311978025841132390524841530736479652690078258654612147733601939377439582760833336863865546714199726970547199710847630659415067725586328788161030567537874687913831234259917064025714079486184497544562795868265460027578687960587700893521208085708482213614508438556490672975939609383715039982835814695780837872090562257945015115673174435681020006327964442096755502042129916761481063457336089618338948002487348892280792463371220551007871805403798668786547891334768938704734069427144056086603965870702218108666251718812763109287107349211787044444843277296988272019101065777986605641772224069455223175122534649497699164913246232933450615429931103904050754063250567806487056402487170101372254477450266815176710379756930650504875565949047507967753609232964020901566671938918402418036880661359580699656554081013199436229077402470113357708933092561216123018392285754097707881083014435208517823738026004654928002011352069938628473120857331164626347372488150097515822582620133874909228778551843841696377854776080540833722512703183441845247081939316011073668991213683936720465540065674652592365196464046736947603418470920047234529207474753795436445132315435342856693224076429422783567953647414215807396598009410368686143403112791187868035530969217646976463041779943880374024968726495753701599391917747908195220510325220002118234929085098565698285926645681328695592744546121511198384482020917824433381427255693157833746521159753638417048713372546887332876681377682715527462491843194248077188888925159702658886193956577911105460014107727633025384816530984123032495288811206990073370113878319077030701648612735268121805326979116648326900644025234806293303237122051668796787578929485666715206134080174133649657863747869489105830062413497935214779721415154066650671164391437996035697001727460228025966059031241785491107299957176830986242411987998714338841173051975357745013105503304509247130755322861552441623895306787239257876619970116320438590293613005717332532360135962765146824152443555535170407457584483322263177111583282038678647996088526092958900572618049403973153454395757324101052036238724461964263663471614430489755096944470660745782729415403907188108144236395147503716073626021377957707016153074145097865110741795840137773625293224370197184520240739259083627488108946976814131350789679041989441730667784641856299590659976480739490382559468615703098376936904220416601770792014868231575991872312576797257118369812097520857982616365353202831586657095504215620892044051469027827814442993783107561145316287540845113926457423553845700565653991152652062492908610869905073226397246084527235636708995484311027896377689510965635459697998220576512954433695551531927256898244567424326877943779893497265892522747527372768579504587545530148082614108560451904486859929184109272345029139240627324175918156613278867061119850782660904194988360807646407222563543317421304591428235407986367283468324939025884084985806930097144714031909666196409066304151165088052680022228902230619757624178133848490920807296407684009729763697059639572285805861661537299887868483982411561862262873657205383455597896556084432213654198941953108249083751348944740097635794956264388546367112496029391220929854483430664895327382640364207182191010896752412186434111562309546054770037403355424514428202990881165300241872480574579409608871683237850877232320986087442199721466237094451376164287038515486721680488299350184050478794932142705428598860820040509348775641472510455970067329967107274192789017984640138127202145507463609549177989076987961550129378132648553234883460472990501040813160603817844003335330380501372066826160867193692683275788353024172542251164295037761691930962812432384822317861857914697332148090838633207037575984525814585614969305197153095959959387681388149605415718869040443224141681506599976261929904012045656051443064005398578913088990848857723221548967187429556954288691474841315004639336724097202031285236329616683550885810653900083730004937734857527498255703270017690704204912340078243596626778312458281495299963283771922467784909668825554765788000843772318118279922749904201447376414556549886119450162741455960949900381423248479075897398790012738443746993860996959143413839996483681117068380881934303492543863868404648138688218889188759202412437815270154708147114054511941390396213940879859236969420064904936196085502323920049392279586031490611135118892102328246903285937338272002566270068006901564312866720178772859613877307914763861926708445942582194635358733326055284351224461206771711232695839734351545928889558831992045632386927839570989836180962740518088161995107406012375717547467236503103944678519071838696881498044126780551419456285168742160036849087759899452242219423991286786792608015368342923282947058910319762665364514659322457414118770541241015191447064815288674358786145543714655654146794794121994587623616943465419189522989734202210308499292354777619867972018743101180098481030629732270156214559831093829884544510887341637402403097451826005391758121732412479397386983122822676370258830237302313332385119956915409681906947413911148342620367160026873732944187089935861420595156224576157560837905749259816688735343469257422087862289415857524291457031591653415755766762199278369785615844826091521782946268707235074355746078618552659276851274002298561040237050805712667410840449738259286660059095680660890163675182037499017445648180074305316152695319780919294241824852560571159309606455248290168605089747686615190351095848131473607284848000639548361924396562272593028247498412739903360020402865595874471883830358301261232040046205104217557640041214829954206031018322066980098986213434176115917107125681742364243498275811073980541042405384219437209125380033095578817591948560437905421587776473604834153971783068531447225485380467001372415142178707445947090047662275722192514390426049787304427235610725328309385107058458707565952946080206805787274254830144695640136498590667840133638634560571634392219486177964914913734599244802475696001746909215970485993776969055051017815695211772122592564309138180330836299684012421469997732371945988252724321976687568226326192879129957382670504386871460046609166057200776155722347368843077474042731135197823334244825303137273077630343679869372845115618448614592173677481399761810139054114926562708162787005034084223472130925202549667162721556824311019901394106344081047959177556243240395707391229766944259981931459530796723605568148899355476690569974882748654205285317817200097616106819243036192544758093699916419494642466049644950681802645836462173350328849343974370871146930260669803543066761340625225563192748314378813895689100800315828698188752517456224697402990140132503911575288564277310737895937342939132685831613975420168845600804532381247209302386114597170157079588633203538774830950942609803641550602290684176312886033632954788566754501815968246507715206104584989283232182830678206706715253463230603517078042377193939215072389391790599034882390589716187688767996809092704859856050859043724608759044864471457391733461771091702388833213971925821955536863593854044915491005361224820718513890704034005677985747822997625203039304133109614266339757250920620175352144357565203562993294489168265005327482170433445840758991189498255839897851467634624070972761796873606529541651776500752907479421679443663190736157191515548977849064473602108104304044184379039518436507826461462207025380253682565205389566605172006515398990118442357998973205762081148509548530189685158895190304825978096173848301621326451099240028946979769203539947052378924510538956110234631040397406483695534209518966089619469574822578578538704627533164016633968233325954091110354153570525949340337804327890378404296340083054807971112333297381640598903200066521242805186487225503761770666177965656099198807588300213495735476643522623506474467748485787213470611508714766139961932354415559743586765265515335264302629209089792553816432411782590100778692780874272761109004988724044669347616956143090653548576871718496179818743029474935556289097335905249697997067691544454178402657871891377083196446541860784980232321208114768946902855002286172367051036762813688434120495758114334356743831533910092452867989519756752621507739441203155204086678138473954913607172571084364304213154193332692696922655309197993377819849318676347803621402823044141098417621010881754288592522874335709176840309885889494225626609481917412220708906974244155941669323271563668835185319800101893150737634268028628677767626351582192235167035417341943126155533633082264388648301313272758452493336386059226075016555764710061495629488688234456304395072598986009058215560525661930118921336900006297803399306238278928525349812071603972506075254207421628436250746338308685952257715771255111592880711051865584625967986558918943034621873096397690523854880870771855398902894617604912640033159593042979873840340979890277438785428108230144705267734189753880865467545434134808888454136519423786106300357417072032542163541162671512690022736512879966203360190287660387151534351099291389372744857940667874896486662272663797069974903932004598891438369162700991965662956961754935000830889160770740598328552402209278428581650157235842506371127286912025605361214303002472652555480822453586138553673925403547425749317248877071768410385534828511149748733667735687989494987654882474927583907983327563625001748821147560600360870442117311296096819119082159361103746278100475706414971537606379376843630756308727755364126708660247357990399429468405896304917316409213834645699013974179198352489771650715175939501247883963818061261431681606016951427446925448120510845242682433831274682114796959872397130840403523399371835580126088563071732569009236398549914458776496714941255022973799962445910809043141663845825489923295087801375159865018331284102590334719459760012968564695264295378421773570049145132685335465468340340472844916281923058931482379848062189618536178195601399111061679647780682457606468159013583399270780504527606909171096880150410046275791321301908258665177123164080715164625926170847784787033888909879903896760374227985338524069737930769381256578456849146779798853133053243634493216918073586521316473322272387245297829692003589406816063364252611250308445252834964510710708645751876188068785604318203207092410433291994531882486476321236272816676496787642873096959738923864816918762326335102603065975313609939276548065329376801440539816013060532130638962051956909403200235974950012800652344982709497571431107926431862841029352829716588977417293199816263471011273405357884398370676024902293995935517384077633237598686145846408991912530447640284501539044370597534628052874819018777322648432047345861127753358038011620599907656476975761000501259120248245508286833704707977585195123714823773454953169479880746072833780872271034313135430914140635325725290986351173414086443040184349383662770241409796123156777526329377893573019836660285261733966273887670671469670011822688273042067959842786148478713131034761001951063576235784195633842739042635720077326893050748367465588507174447494775911707472305956521176597275734659294417035509122984842862403197586481655726533109332169840461623871015154890491150356498489895326190124134104236390774962412264859253822661649475662559648984565026628339012869354090532333992848378621704432223295590644349746901783403232107645034374217718421973667605908654693754762315454284722788920445870425366809326042732397510173757976372207892082336854098977760711834021971075336479731695402655334229749449021127569714307741214774278289692562033956465746423518106086218534504688976275263095285819970810238076787977026442664539668627568676694239165935134480025289724093254551801757317623075379112595489150333672506833470737549019531113213478197972282892531716852564829743847322067694453461630428206885406782354957387990880393085555427569014171494903202137240765924728788711824760029293358101935541737456815987919938671520827828063097122845996332988723809972787545757501112717611134784629646686980214295443421179241950238539723378236337750889414818589191286053562736639058379407149166434085834002042127012445385354048733940127663442741592732005634163619243544469643747048135326691252649590618848444804500190012122903225438046764549734131142629213866814425769289081104671316054376687214938134813136193524977573362851662281979198901260173010758394558489148471338502743059357692759311289148695070613770170454744027992898639132453541126581956947907173940452281602878997157291102896489087777584479032049706985382664533875084334752307492945287910850005093409781561533374231674502637421501534449749978750227724213312577442097156157005726122260852798403322475369737818207638350646699205082475347409564350551816797373660063440993335818196778588675880847670301262471622333847805961681304279813257223211219351959767818122512522174626659088908637866009238280391546705913937192566184692014864099896396966039314150407594288764033725236060319864449060022127981188412741403076398896527798274094578484345595507513803102634214043322912857038023492356216865612947280304463280816369149091647103238637316847546760727383973695776711812047948259986245652160599603867004861783809841596795961104426485642075817674828639633586055154263546901405463447292288281036528979053075600745641762228652915447651014637176828828519697187315876462176427013390895496727211560867926399903018601728079544966178853602370371956933449257485273442352167144662474190153627252661610180079619423917972688875874500546454755356672784345398237709011992531703469975405997608996845249285664624613174675027162291104478852149108522222442145195909186920045220122091884522367332565494925707505709751741861930084239590158941739864732225321840021393824184856691917011020028139175432488897296784560307902435720288319241549950905495090422689107387884848623443959652173396433125470880412109082111106800438504835002567313937613235468217864962461580026511664700939335931360056884201155381217839012924766970543041198880272705107712839283125689216716929460061840137034661110970115163627301805507471030794598638427436212798507603772040048051840485206138979168854253592998885803733571988531178806280496235113030372325324763111522494274195180098909626801461206222501423878219414200913192941986238306090466254395044216726927780223158317627726237029110021538536951353808639378918014026369881777063091703457261236728461132853167944229457164146665614116990445636472597271881395704171648741041559503044275335203476043715235051578384485803961372521919164801622863026624643685710746407292159847022555792447924366427603425157269969938284151769496116747013024589548481968874684276393358636601426044808854490457382701332890458602050475480780307385177982353192396284153995800866411562868124277124283721401481397808834631133496913208813708516724138491658943490494616688870331529827230066191661128093340732953975491540777264856436042073005246238396329429392449810861705247564623589980248038264681137569031913536507239760001377712746662977529171026221521800349913213306350523232209825248432112023924347308897728544875644454341101071484197084579387934147741093355182101916638135646895458623434023506853502342580535441848027822575267112052792020222354288068516626249717761320353790737183848652649093254951834293287142822227324918346785687782599293804897927702936638938250059847371723486709668308539494760799847061270685848422220256538920404572202089543057150169655930504680392844303319884856848542088404962200397965969305856670529930527875618705023699939882353948605129403705603745046790580603942337385851346304216318986681855210130064063275862623607796124752935564935467806307269257642378159299384199408532673859652233308684953204807363082801573640317044232013058084216759278060633985611845989499287857794845202602147282511849781205779497675076229251903783386813600103947555169464337570147186331490370793062522946141430445910657672462480500344428094325926670360396708774743706482326596820821714985602204999120448323371997586379917444517656338947669105663162612274862252386330285454207384346002926600316216186016340257078119109832504012589135650332663924364502538576119799255227866794086567471222350442778136353870729531613650098360529004502595974316905054684917969214680873002891088321050967061622246648198995604694678613215387245534081637794464127752449106718272359479891641449601092674933826902967133852767931102499902467183854097226425410293711954296172680224794103335649656827965865471647942246402412748696204502133510871784624471875547039687429997422214414049536677574893154544239749591385347332551681589168040367567858494594103016902611104974827950623756478476857128210507530791165479272083330912539124000473600716585113080907369854719695987883863577358937221091460472450082656320667277816688603701354822306869106943894889045537292456009461396099684941031548297376620347932183725226363833404578788220119113161652934850796061789685616491156839811262043375953738149648289378210755474306352196857119671732172619258902976393632703859375218813400024294732842264129979238254613619838266502905914661915059063616421688481070400164901557466692314585319284251253273494750755341209248690401470699700779886922514880470842916584847112660918647888021899617515556326472122151028371286355972186769427657158298786395538995380299201879740009240928598297470845822753507447173670530796794878728520631462179898307245638605326699781313857082381309295370510396406057180817675488791402963119472302400120245893950876772928497455146927966472328577993511620622531767826536385043398750319738258827217425476551317907468314739644996220006277275982883884804263978681439755392709534958502242853682649632893618907229884243510210729545229434605914281498336271021541757239797972620070443036479082615676334410468771779762771514992842294887548259093318195347577607870068700321760362271076615760770759544895003992531778298056351746142400705058547150936440625721951292952355603105611248971108976228272161830609450825244813449684728294073203565067446732004680715326310379990367574734530191306121252617331458849701787787260494067667377270664337915512935048821435842253150522782825025261852700625589584617997251476471076018850432188169271682493152114912754376208375499511442025626117395111519013500580494061668859694472302749898656204219297908890977442788254671038725931601913613696716456315909613051386545174859587245508472745067411113642225419183807429254785878242185550665622780238961060188884632687630616582870105452814594531755860488908592000415519086859408256745875683659747147831560531862517691471487956979166461165417643550277192645085457394307464957382564487595895504698204244359490173471825201963602616894019964240878906420700077874829453868018898252932755257503388822937144266132648013101086959752061847240022448529697525190341423009861087491402871617004397319814058593177281432247765957298183941072258305505451326179317809309016129560380261951785557197182665750083952463134716672076960344767875651168212085879505482644595032027493218410229423665150311658587553894613328748416632020010994803460223100534591475465151239959559723493911892562120735461983031605179465303370837043528911515619131423706692902678452791143584964313513784786424513761107792721154628842524219312423622912892435768375275440914145686097746378683681711122699145353743739279354206241355735703764403448993628772227008435052510613399560734354176644887587615330710843957279876709537115490732505765370907175575136906278573196390458600739108794930418544582108747587197154895809394622436573980214767595826242002516631379823433401516449222885876071002227894695829441845033114209440197005799321939243196734192645733458690186695616664001306267268718588674646279708274367881525226807903376712915298617077702864462587538329017541239503993893325000561533869294223902599216163466767280789931747241866298314881134419470111174316216761902413258244695554351355581306351558254916846866574160275153350366785710687702000711959927650007909571232166317801668633779861694905484338268048208150475989170700393975616617612739656498387409508606821624441920334930142804941985414707477282948771988409584121529505102845084734407008463871391502103492348870081274543417554390184974747670088402824354013352090163404628526910340059339818857310484536473225588104540118596512758987075495891370889754949347943354184377242049164928177679439898960882357409310964203279220123249489220199544858520908107165459414204066980615206089594833651337890241130179241783162026877095564021824733664339008284534008153416866443497128055222854714224903150886003602780615411232659204529359448420253798744359513071437960846152982403634912775741388036352845130290494073324263710343581136923120758890096689842476579238658148339311998101998893159803805177138914491712941960384853589408783260117776440752476530036247684234342744158351342869270701968743329733501837972086382595464478030043085187302440052361744854698457258516128955590319417130795235416539806856736541188114538582317694983666003241181291626191283135880536229001202381203266633033545675033743935925767618721562862317093075835371110936417771145273788755127056715430021901668643010988940158780717855762122253227244667446322064384625020459171834468414551914273441337103197802430072533951679386196103754526282798757550636543918149880321398295781858985394476625941157249742830443391500105765191300895635515517909632458435173551203351806133380015728164422669602815462355932768417938011878821406226101486991318748868338797522899724064468939256123146847825832955242589796622127454210895328057131590329542176077383347348261281962775232867038218331821009205325017531280225680795206877141052342389177655678816150664798105700288067288979801276329957855229725966236162701997268089303091316484156861810345102292945278454182175448391216900186856891327967629274058037340704406452583591342372609557181439403880802627134610798760960179927372041525506953402783536529200084883256875600201235814370755126913516901002873483286449646802959795832462519727916360223990514229633097781837477439142084736229445365405402243124961126373114602476607473709948934993276977310808265082069115813482387155423471623909189588695352761000604966987882679406805161138719966602271730117961628472093619961608230377066455207893994546076505955838655955087926954216858166121394058506041161786483986920215026138077163479249323721797119921645878839129393803443867374611592630908079598670915680269831988136755677001920292409721582948600611782572024264085490203656089660631038386437546397514995976049290284257245119929236620054451190421226510989100838709833018969985719884200595901955125338686685466601817750222060638812478749193702223931234388754503333362564429262494459735038841430064719724091393295449574286301275487605376747945554495029316376511343251588381018495422930505933286435170583811427994327123588557906342796797498941119141844975708705562797372464508702093359303574222251680139304161582142359997069227263022435904803253926604542330074285904492115805700739464522593178656527378271732858958844299064099758795969601392668586810241832483412639127236728214436181923478866894522132173708453184434406194756168743050899594623139605799567504621328043139867854722025780310349240157857771395014937569030183943992535583943433900807803648107121408134797958957898253365739688765687810033896917748869342861863973229373492917679026716932238727097085127706632091281929126084183166420740329519791866229370967582618296297546535289528433445933631855057036402034979609870837287442211598825297539811576874387218911726440947377872945540853296365089313091352806785546399150799856811839531192659474943272224496211738569959898831514416777529721003723494071469063850250059708720691145570602394853360966889985945546589510342586220116703876455197843936349926711402317752945888410342672419515532536144465469011775605502717948303890766405264877522542492357819105781989526331248146428284948085557901188698234057283350761318268984759694176123441796038168463149661245313666696733342247822929396508982216391344295159677582974387969979579781370955079085119388664457583109739511426535960887542055343368698981901561619700750494975577907842390456893668309112077468113050276126391032744865040558665832886957893017166943787085296445810971191847838444483806874474827437658478514355557282482467000224990866701983170270812575967597056234735936542281948324435974847531862788372654730327605025288758334213105283158454289654835349464813431129410211932203271746864594467594079242642245984619160861226064579054992494878728637440514020573316920515765373294509321701778284129651446145194350380163911114567820455581113241007207094800439971958341054179201541686693043081225132073479289456923176402944357471571494587141563451699858689146412281051020190842196717607575850068022943159446855769387494003883356505558536428426840947729191411809035295109603174522142842968230090256426033586427308305224364730280743242912324470107890566031058288336312412049083045421609738723485177622018156917113239634150446097584549115842571978120606419159377668026518021904730497023449260884922711646432887659513085706668250460673276297734078889981159268051294122667208649320552152379515628433322247018926538109515009052809262974656587998454578000125582926869910980941419736126445039048406542040417332817207857751336360670438723276788643411410182129659972612316110883505231087069416848423288764376537126082685983869749919503450089574902871610425788726288613922393760447540855947987580806678284574168867401698208791271217643479404283385716153937685290492870620447861102123447569396488140246999652034377913032041390779392982068194411471108067975313895633513407125506116972759064554399696157220710303502385329670402164837405234678567743120455138210508284370050806844349741008663623632746180342325243620411244637053595958267971498584554927929064694104458129206348125547802937483712954933024743540126281649985554485226123207078859462593075720383170730324302107203121219026523891990218442356715661990931203055588444831907342545088260396686049351484230463517022097148158241522099017267820958195205140224322113584374176450160855504655182333491006304089538947191373732500617708161076480212057239951844551697125728992171296969776950910691385292267449160415464432945645070883484870895385584188175141046649467443627231883874827603337222231349070817173757293510820090468996867799782725385683619470474443603201169211909765094648031547302324260819089253239126988088280915055633262049629108646655681119271801920130970877254498367265194517764266248147149982748073706025902244578682742283570554309270909658473025779476590818247006834025700950134934966299387673225371320482684128599187800161129063361466505312648909855033065029198190788067045504018482853432935111168899773147035348234055751032558861426059240252352872067992696197993528076791339531324067258581813770817785087209815743599369951706874665366042358177352255471254836662943146039481459446751114016465296816170959059946696635043524408103210766930459690186017138598014309948525834077706990184504416795594875029748724969719281128277922370014729988020119645045986412193895215965808517743736750399263761563080759950101231232414304906307460569956421847003655668083846193095684839781914825457510382381917989387182599657645297333040382201311649365446265892389374688427476775474983667969053405211374339688680906446251814248701370231310272158066713865760528583985195559091059421633572764565014570443564845278586147077618579863886264267155626834962400066648005551602952788658447070810171461748779005355224314477853256362759667666392212239249218236632995157217651735797897477423833740340955856884909160805063744254278913981183426800753697421044068127999143011014932583219287495164507822965394954019664128012132062453061180045658902258584012033775269494426189880902143468382765212976456976062484422067469763705428245661419389977218992751199270888036123515792480169549199724814452502328502416157081478787724870884401443405868593950244290989172172327418629094454129339588711345718869938253822608155565954254805477526968453135275033058035219122896207998730289519248375510331139400146658003881026355046503870240554389897311144711030049949800317974587185481584312036285306255557474568121648609310920893847044746552072448059006488801845853666611375506170375397446360823601024742964822043143519610340728799485556848017312959627795707649320477389074414749885092459559693682038240113803567408337778137600456345177146983500312202550656568401517479911197644360146148387442756414261510755540972119106527630653738745499398207222605233318983374852091282208845488867726627139450774353310616145680006288255080812730479699650878873565155905741287165458743131956812247905715302559914376285699012587864320081856613970914017424584425681438914959976920892096567773104546978549924152185680280062979519225805588301965149408362332484334757765495257123518768883756894300167731666868813235006377891196864490888779910721876530443116377264111207322207348961039362479292878013147731542044790890595569223628506925426118109005410772679425581491469583158774911811860587869753151054941814037228637462872164658457785444615643987421363020611373287257153266066885926741875328668330318062754105144086169922748298055606504591578773923730339565273605803572055476517929630342754419035798519270991929274221346946050282755073616802759873425236502065651485314348917073643802774800898271972616821390988784796537619969354514731620853892762073979854030423651485835794250691143092395753657988978698675049017664541757475979660222307775044429487336486661169592144135254759583898909413250302574655766594706465377417175803254525743135619203986524956073067375743777238431523915738504534380303797645509115833254750988305882374833961982250654168558582409468674803309919494047046171808585922086223285363604631065767855154860691984253282478986269579514367678035990803605485182643900020748490142495765850884785371151067709183628280376888194669248015568702451017012595862724195723981053330124135502937997962843726093525563115533841804665051893260439729889544775631658519962455546452448999763220224108953567780939840388970360685749767817335550410335159373350598473763007282747506276907288727788409652433717153477703976683690998127386615035830010873015324325310203284611584136080907239098269998974430828375588072123787345428946912786055564463993703760058450102283672182723085038888324550526731857466535517673816550649182538295767075623503388047585879793065921637005644550769996756635264893192794229081219562973007634122825212553985109628954400447094245302027429223957770631218062421604386565226744246924720488451984417256650116926749281265665913309498695372114250238490147095000384389289847580703773193107143755088341218992478656542688952597193351750627761758258538787541337778893312664202206026905444258577048470738774042650491095694070442995637461186434327354698419016038618511739734012756074607542418387683035637802801798114267918151638691200365990016898795180359346113729335705615279105116052513263300796766289943281355237850885680715601068147528909074282994207379515894756341631468285579351151596049722430748577059295085347957799594999445887284735614854381269575767748776010259844196772451372181713563082962858457205808968094505048114845455749598588838054986513045897888651995718427859661574587083694223829397841293353820491656353833799687957460371091945815671608645437104480453800108877626188131330947612531222512574937822692426632794400752078775770701433874612733284651424144624784722002852668726466554643397146394036639756099908835031639815944836353290177921093345762417289890258811986744615176944605046338746091375416160690083149553032519147164626770670218079955792478022911702966038783916374644524407540093030142225129626066058273469268699887751691226365264622716242292067617988438483064517002495121869206146490109804990171734036001848374884994771454658473394685203724860431964940438079215383433501109520918472309662885509738785830724709251149375040563906741612943293313883209748434809751262986363895692037991165523301041693086319727722107065381724739204240100381994192871833366418375208418900963797361619079695167869681785446928742232355721322745701185474471860041102576239444409964007609317290882678686137776716050022354790230761159537691022861573663724005489840981770267893298268750721449861417032095004222809676784143039318976817489074889209574035275791475191686215258104365146780852018657428061082261619390250385214871326143416735085836683050031850081002668737779832619401539637173410181598228330115676674294879585414301695175328986104520276595680400906975262793789389089659893668829113076286382906867476532480233690246190933128130178034674676376236385295641727933769249931013576080856885947611981559189708386678965799574690347934949243804445761616403425255652348205677172776303022614888836671584815539264587145087433361834538582997521757337108398914966015259117528170967773214725943749886213664206785990671176251918768364195863743903920961706410119927667033337738728433519499470437625512466296167859163944085500468154527485531557555163532361903990579180519681364827245013123310383817442872116521680888005834547449400941677322905740273457722830988032730282003148593704386843017795737657946982270074666062510464277822713133939645076773273699659096933711383947286522463570427347104599596760666650198379631371415246156078171408846284351018545295273713565376782607927927111718622395646716302621343467378261832932916140560120858467609602239122546981895335084060134232677562411895583191718214469927168880867519023801450373191368053756822420371037862507818530689922693586645828163702354297962211366821447258145012713338598942637313505246619445253533152610820716785028114875923163633094391303414088932401652373013282609967552670269840154861751496566988298886444511867209441316162539928031860458523235838281857440731394786381664853430484501247982743785789822468986113134357663570921908261631963457578625444708886419541472289335936185096080147370537517732273913872203596526434381211694653515191716635815573104546397876722797926512672333058487892240034138003365439289709160724338167837142734849466126592954211634121685843342858051113569041639171000248979508123602591789465661576877046201336062217824572138166855464756164681749656357767750888703933117943363666624211190893695651754860565164325639636428363750056231666515059020898852942858598622649258843037297059378809277932775140860310951495798079510561507109143555722497919614991457712237926498073193474002167713406615698518303491574532245069045289054252538395051035325021003989865769616397469664059697850562792663168740987831857408106576723404664574251624528411821386583335377936960404580212311620785614388217912715379514084224785277159162106520906958660513303717139354691818986808972984877925119187774426417888732931114894472152882720923411540475721383689732121384671709139646304083416372363244047993097471689387423784351860339282067877986491606121535352398808217098805193685742347848092156541140347658235816162616317257083263835522971763079042355862399680102315552077885066297107791447002240881399064649563155581854483609228379020052440568001373095378244265348467206311726783080941599851606446332364351114383558545806559720045265526086063888301289248141267060145645905880107804082910641477816091971460337260966622266687515110111635315078001580135357376622500590521816859934942795590235581766742431999901819036511992585918040688197054094969057840342204028322229518633324738771953264758663386416347221154382946502837921839641230061121199107812532018861952872503047116367054928813754136873166176630777648553267463651482350974601381640168073176558796253584524680253790032679057981689075828952534895228841507261150246376502138400475851407693681480388919966897297297972807041888485118466920241266705631838020792630771603874949633480669190215173927100254331659156243192421962015291175007967586807307041036320056847026087297805675954816971501495149686110992716183446222210082410222841884580063195159548654261350706228504504361161707860194222248084060970845071054905954115456455627833642485431102338771954604269737982074572599738626170679883430014829653380912147169149266963084772253597251848260578948584719063305771219808469251675585799609759900700472286990609178591804908785046013724182758540255284157294119707995533262267078825599935199624277348599892180809034410345854718685216277495885678786992143240626346473715860646107901187316848562004623842808333908403583126296640719139121218748228880772256252324067160349434853106709785051192347047627118240270211593236878451614996047304779883832735002910599498644357545813781539614047629463815359517510793577748360192184612943317813627600125557683972639476362321694004659665434708494804843938577724976042926324246721459867432456196780910927481976961424924186591098239776816022768801173700199721314656550948408455555227668056269088803641808162482375751134328588622906358626931835420731131275445981074389575768056815071925362458659684359033967374633623494593498481233870710419876970337019420318273461997036318202146347288424138213546812480899363570929507267352601302235630570447506001722830960927208172132155806566815432797907332194176757803804223266754832197538765285874752786559837973701914103970185671254682242383762856525538497155505417279889345457066499802782794542546716549992671796161450159181033330573740301265963583040214266625082766945693217021946044695952897628668503881377958871130175173299062398964400507201076144076358087085541141385181652130178737974892356152046572136255713463786659315025090272017676145252176860325402286951003360331280572306553158514560056794676060285917659708267944684516799982806855495684744769885385451831364757421034461873896639060005018902417120277402350579014113124829103804820436759979008519223279971635101770188311580768308453026588853488249213421249801100590795307259360828056974643132667960371717776659290799455788786718760051821120989383761951071457256562945169135945687436690730084002377933911009895431302385971730107630361571793588895914416132569562383738226940158778074906118485527947246072008892052323153183397839442670503774201487766087459066255108837488589774669809096945442863462616305470310471666939843905481338005517388464225682803430574168677902406504066573223765531737600854408643152807847637962783178847520882398049779759859215839552666287107516061260183609121588563139203863503969273145718948291645083889545524393495057016112086688649092432239900417224600520153946996992123793510036295640205588319455014818055563812295479025044960180853194100079100349880689450882331478173591031971398163383207883912020666527285179140042875800306050277568074307150590081114846059059501102454301105841834039295432913679357403176719225489749189095558591124834922929107205288552054253426471974454995022002337243514921205548370169447474811876705814506773980513290198977915583384440339936736716068101678895787576172783184257765986031213834919607105504843244806517640042981716179338277253004743536276324690288249654739139845832245290092257851254389148347183157464636714381386309509093684450461458059862078018657086284034890345446133150058058413417912009402101878183142030609038602474254965837836363118230071289278493218778910802250932756366422683126409803793342873591101849499968615371445768336400557067613151973206060225919573825837710466576135273534344431316524004080446487504858225253387005727304188473401850109226381987797087690974908092901717465879952966615481738556161725977991284112511565288043598230830571124943609872784079017863059576074668133771488577558530091585726962695577587856382858588748016002538267433012240826954985255227661187110755429630560326025411886551584769040889358989329926337985462072530228032991985220526879309842102516222240375241795522858850391407628138451252385940146471804111430327939069767113984597550662838160151847798778403929895583354281086259959242417781503204165679625842998395999441936921317818548117804778210651471756181153614774245969703660189175714968380909719546990911540912366756389483641068982823949708432826674519622468221930915651912234770036789430846536631653629931349037586190852209024392271974111800800759391069131939252002080146055096164801491418548633569103215885000335559965393187274483080702821975286020813864559379302551705888432933515342797746844414950244202290220573590698850514967051989565745133735820132553677957587604377411886393001401455266166814168918214642842064854852514421280956580480243311816851823278873681666878387278770966031430001796161532476307988489689657330477823770515592260725967829984624658053713352852593195134771087226043075952760786058866135447564527105930109104529148676521978637086862571038392255141001254866508983063006992236397914013467983071513836321099570575171677444659460253724168676316318665296489167561931487911946996563552317490262902964613188772426783248987262779590517051899809318794328380195999511938628052678102709578459650277572988009679806905143623930541131345816886565082250217683304085866332055595828092163483101672785495545830483984664938171228400028821295649669606588129588192691639250684658681150305999885538079488389059780255950654066521989303880940089572590498659128400801556749658359974926004920057480469011618164916355573772713249464981567683421962326720326036806950332316960715463692823053181959458813000614745868955420536402494966245913543516470019601481280771707264442690714968885412882064669333595696616891899720194584889904936215986316490952819676826387774406260347583650552821364070240734634273936721486612816867385393402447338911984155785413472471862750127412246946933604630417299310494858240903676876495855577744064086807922042111829032615358739619839695701737193304379737227116179577153025426227209594091388846296372267533373274207086537528210289166724795817440607019410404849369323300507175765267989347031853589705485314305601430475221438434282058684818301423353962906686982533778590526129095681475006598516478855737418810578901491173376142701222624928478711703249352008539406024402444685225484215756097616207548976012840656905880731519617420676142855605925808387590172351908470812238065605040649146891851927907847962817984411187605236315779073282943736652450413245236966486564476166852260553097508637601966514078426751122419984203572476371505128380612034309972185888293532152268236521417958351396169118985275674832814177870857787336049512185008308054598429853778666569957877438155853751446629406526000927672653910633385678567221772040347222702686191598583545248795946610574321016014828598635362172457994803576583385398281722650616393745126861473342233246690664137000527610159316522813827245904850241141353903329169811029553223943395319635138449764803014585865887702052880651755980799177092972707333447636010153909311570621146723657470072672918575130448231046157815347676958477536420606646511538611656731014912475220684844515293480776314745986134254169411943578585089334608117184476483128200147652822093095370198262687139806468107255863182006636224241098783504103674305389667584001903373852874067277556232003911604202029099893934350941700831150177045829709873779067153622222897501499233937730165433375744541593528310761878239836075723228393133223547931606446490379867768864125245856376837818790100612511924215707262191014115852461817952816417461698056387196026651465876802326241839534444367729657577966085510228312763320731766394575002126512091012642045503417816473678294622118146166416253587199829017060611478926241779308525919632023713759616572980461709132491396126928537673660979347041957199427463660724858766114912224086348339835556069916354644988133978891972695160310474453856337818075727741354925009705263549194273111438618241329569314664800534451941029882207948845134426396387962838127100031438147641719582213235119907192847638208188583549976352923263461222371573743078242009097493117825127018995466067328201832456986408187698049104987200882241743552955234488672282295516403075529079883456730913952411499849365035286365103696422880364035612113360889359182559648489929654942087640422124619773994573035077750671664776568673579361113594308858818139423602458981296589599723484575470562092770829876412051867210129005791609659893688291120306493675783658001140163895744389386184520275127779148183921636785921649626249958592835225645712655309009742760737245174852072810408421366805712432662679732224751146459940740311428279743429677709996553177421254689344398077873757376033466950922966625909815500980663051240582805413518873945682606166052447617480296754843528571946677693009906949523323034746258410945287058498612360968898794294570677891695382704301169818034151885708070486305601935204764248126091288266262326139555069387612095929996592110147347910881195667802402764968061525243878862260713166047961821591099224935719542981309533397361744158437589209916970928669576500078704883354897071722289331702453267575322093804715580492416339771066534416654915088668142515932063475315990310855091202982078971830099411719453746759544615781705267858708234268605320121837677075597968648335509041180942932627542856589502734096446165313514941306009243900466481833538249265593448814567479845429161399562330020132196953257188945002069252705846111670713355785700369999901608381952035322024787177909109184609076363876770409136428053880420470946729067308861949786164708199198006903258777879059362892275327933002322032985094284937793495861701332998579827337475390147471148417983552639554004392753738659043486250676007254239510571082499463333143052670882227616423043758037426902617269937750741316268939173219013148084195437968886349494379761896084120303736486282102375143464807808394840898873831917100005344214948252248963102042749696109039955061918846210281634759644317015239451750310609185827640481536786774428249400495838008038830009667061661841318507025929812580272082015153402704751942627062329725823571011478091858223036268289583064227330640382100611988047013255682061725619220184934570462154400429140124263306553962385685882088845566073062585675963661486184856366624085524111994950834656539349640091059750537522870258914182187874410201418040180506850831272357268003802067519232660089345008501798798256758712164840529651437515486966927094221872066387645987146932765064108733723124799154855936172161103843545892497930124014792851484182361625932941916661731774836188416525680381162847878924358464321168455485103224698977580641735164745671983565380480293783435183327852676855976752724776140609531723250749817167607233073939261894110309969416596059017183433641331240500306676070761672425121448031489541782326740169333833105906252425480535511063172503305431437331070359314977245800770184899021926738442689015564579310519205108172369926315879971143212127892234808650226971916761071548834012992782319606808840831859048954887026772142653072903045798169610168419046724556682139803662073328657545275236498452225626695654464274122736416183027499405817729687979608552981947872171264351224500210385531079123452959201369990178925057907714679306672612671593682483644590022237419791059469391339942560908783115349399596281436147884731294270143311854643378863052675637783036345222923899622489608519156750164950494972184149520515589540961757263471754302462988409638848778897923185858303527028101480951315336434129494386367053121353274437360658979606042285674603312314935529794667270018751993229979305660344451216284418117447531669510471914885000449920321622722263790369077635026179020690870569791266995127086584624644396382811516408525394106071657344983638491521631089815731047361511709858302498168309882891848483213286655261934629808907754130699141178694428452670344514327963813998327906883328171232156229871147901509634290445534473933973808145372169402167558868361274937539956046874132694543951455669831128151906846343606974655768511940220476682314832543354908547601535928745546648860819985024789459473139390257674479807402333496397592565981367158439657102305373904660133550160031577313465760453072203264132440509964913457562109145896123793229375269156404303465408566893449795993191793960324963665534514688676152162610444987665931532515157950937750652036920391666101761838024250479825074805481283497214133250458870419176788905179084838931060012890046232616742064344180678075571823709819040653957688447661920078102332874367602392543162913487270021937874827837959272496315172783460824545773477841098025390985676444467458525496194039160569136637411921754103443891843870777424454660171718343377818383464135558504969097435002060689883010340318398374117758782126477159303829847187007109230899759593491354286260527693533444311056073714833754857410643233967639588647249864830447374183427299770755480167660204113681112508790517306342595646214871047166643451136350055489680553408623296164698855977342043626112108950471393609103508195342791551280606297544831982023967453921377845233430606585184721821263988172684544029051341121517613312731756171005301444014155631776481957813115308248492928878334384082632438950163635758796828161594321160213480637054582822450595130773438486209704648659965334488420776650058291258999564367990803235983289894634332608538939955390282384743297771654292067873349363494458556624850791843278402634647503832753934410626943939833643194600697430359767172937523034639932388383327810698247619252615403594937447646003770031409287024052529332716936270811220178596771412513245354259035797239509958446539870130358369038681287524088764338671779739693527740723187478366505445161749044713875053189150345389865671314504968167486016421288859972825635039946899709782632865387042528729292035485209251232743370434882957543472093856917197531297248164037103291406722557633781664846681085798093905630319992608675738457828260696549386676041588933375498208880747305869958732538743287235610727169074879591554155811252289728631889856659804731211946076114490911405485168455714604855411606560032310079484689180793037483984539961259954790303912959491304302288537560699922752166855922228040748903465154743252859359319923959140848535478057505162146988372747286623231338939596199027044426596194285946068258119024810709149378756475095828434582412182214770862447165847061723230780228937843264268303377331595697018505920878616036921487088542754052350806917772775131373512133242928524784805584052055091062130189760004560511460413250824372520401585396028199090810863735952256199471183141783101712936380467765717275042183696626700756994068344826822307207320220792692532075118520116080836307206857162122666620583258542186322259879774285637546739438585686726340342166186860165204625001101800382122598695718693005674528050486755722804844777357767494305123402972853146229884379302763315508153858165360114868065325828524686283465478960466435057765423565238207095645439772102369410591445605817114248639474704323591307683865932936213080133575883092875922462790819556672479503116318610667815785874671945437023774698462608228599764713175959708149059915980129179632682465157914315416160600694999940896345946496320968537529607991446744534311739502246077861347277035743315140609187268573958350203173536780444444047703884188715214382084552498494809483424393330734687517755860548281602100973406824383541524336946367908048675864501144036258413581728804881880028941449694219989873477970466271402488169951115283176280758064936092718320252159057200367241040611984746187463825859551599775519631530390267876436488664356072622251615595269237525691599509853766698455600275565423356502204874538965861754258471914951636349867492943396805687634640620746925405287478667138949123674901581796706434399895888299938912412980093129335844512414100639349854109038860218620189149205129620859357175410110961574898990554881277271288594672752222496377179224240828184489698473475368450364904469355396062986286117255498924680591237960984047467559430230971140844327746086232791425656402980812342222820519082736063445557137639215463669518679777715995138101253401359191963486827251482782679086358037920331881604899284514096282922595020543419672695625417981313384181670964952329785029963400833854786739449677766556537033224929725641895427931615447547144561446357307874614033128589969368741874377983252749880019521661465054778342490472887673411458596709142485523868738723620687316071355757273134372304096770474292822202599645080414125392636422502561829531982508100948754196007301748599042449504250331691549008529990617900116815666642638274582463920839366791386077396348669583116611783267338723590880386520920743898145978828169053410233110865528303086592006345077927169602231127869793160526036369239883095951530673318485899588472434135214766291771196092522891403679783708728211703288281613117451383738353470631255026416928854734669450907081840178140256877781291999173690700099233814429588629498528776998500340468546723461548364766882806853694416676556701849645678476010946899858149974437896150865744468019748948772509495602651273739325084392140572037575674886950691087859035909193756802499453628675701127049701765203108608730794691310292272239720187631467774363645458710636202396628790149360776932083949738856781593140113985205232340852150801932409197956448420371539214785543184968057749957345830219837317177961090397743895811037971314489270555621656745002878862502094384593815196228509773757999494761562764017945024217199516133999692573076528426656869472212005423035048443983408037512606007788451081801474389940136635626714619932496208039034721576567781142518126218273576134940538977108574741808405408959391603379499801264473658830539086955702519951939080771440159131761934140346039093381927024666169654072520196281298611235926781869527383335238734832079592787869381265924960172588468542986741210850301754273289826483379661799118851555269486480641716137529458512770975157545587752655497779684375367462126225673775134820882095516341271892135163976166144857402109185576717579246451419859414192546085465684106633938394208253994071341017532911314756823279471834739388139569836767620597514418183813237733206244892192545237601722923147589303046904782476150197287279294790933810097354116996874838525533403150125636758956900820779595277358841485809113644290797133402967037039880382658708782570775641798725336077365507777918485411226719030348716287925460256826355470998175787750412298909827986231919703069469446141687022840404409558106672304747876613042415627666381442934953228341125484957763370951089359326647598347152934884074024625147516803425787751022432744043616446611001519213402000489730162035293558328674240747290133587959386354125059544651627153932853082143836490547064896171315022368637636128704864256159651321948870011210643097976019802750038959446416883637544139848137087045311268032667277285976624263239531215739659882591544073182158533558981178055720797206993177915651551140763738391655394608904632312731426635819246755102452401957172108187080727461908851513284762618989411965620507688062835508824533356338296705012199765167876203867679155281367916706110691196825080089002055452124070836971581353485842729403066057246794640132859546583474463180642514384099563962088706370290693899451749411452043840265117119093742355253012838250083808189478015324469435877939430035452806918659926381892538609121309482839327553333669038281936004763255170068080805643810247244427725908163597351653977995104046290352464520655635727764716959601086203716201371291926340577663660011614483294920091886505969727266813584734998184283205014385626820773738540798215654525134675796789805865576256383451983063525374876853346565868081760247946301405345489718974236267454083501936635184172910535954609474643555515615425454604761901856412373069167496387974265567834901493364046278220040896422719097625947297463931254033850489114529465736939442280773194336692465722205600952502622194996982652801562261588833338945132018704753827045885056205746026405069598704211733976166574374843746949836122523337360500969185405866756464274241784686621332036949921726088251027796184047943264192717531086122965450851064996997335265516363039458421109957341414934234989415654378303265263683772022076610290238380575189231805159332798210393578468296782246378633090521643913423349181876950767134268195785465705243760587811114404030057197860700629338191485360770311965753443157337670795207507869715294865480691725530969810590266735848026217536979482205727954173859221912436184248783967506654997404291980432169792224463888942665732880524396325161631145116712454022245962579102763009601999343229677471456455603414152941260750369490764405699718281527319517579192985903533668560485176399307575374133515774360386030974080839211190920958919499603833283008412245487329732881036414104739540217677767083792241262672369852197285684126554526211369593793409589316227773892378489247467785825902214665782986527267245254634960667991734496200230049636213969155984553510488091739534373904912960552290485329936696232692505613588846430034937112096105562673066814626141787784228590721417089901556099759604773912973977939284589715311671341159114987651409041000443344058203468702547070587468288719637480822670032534721428714800338486165877183421946464195634560975405169005868297287384839318049281068845423459969650050743516551059100396969595975043616894062871401551000833516166427490610272299041012893555015044582835907752998257355082071913027303867646072122202082536766536803874327747616953516966070131097040056699583562731835465292321427488398299732671994930681393507951248049666799010366215248606902954617906053792880964307835319680561946570484229788299148184123716957156238722508031288804997371952875987393309465650284450901759335471956530764625629623395149974451226123041351394827698402304672904344892657177372426036695825684700054662298907382999053042846580627190205910502674337282367218827052121383815061017276451365686638283940649389237597351500309301017099744955178114283379952412396877539066330263550414172113238085880164266417005878046305272491883896432889023073925830795980084310792877042263382129209172725589407121785261062600578305438995931159101640244034162885997207783836211539504426229723105130874438192658882885844327865590367494869454175653332420622601038087493673913803634888566276035642303924723709284490961118634941376989468463175043786148811532287887027355246609827674069521034389135570115962662140967069187276750277830807860280442691975404451703357030031693266259205722743312022953570161078856419798281203707587536796196452568014901371834141196598731141567667332054434866141117277618743629112633216241218053471005136553021599029749222718824594420415994341571880954079721596719812899518273779631628040882041181876140298354489979978630226374224058637619516118955952152999796294185374258254734145354501523235213263106806628757758000090805438580372908347193682522492383760775955369272760635035088782249358509025083399766058929566469268236756358427325569740499998172877255504064804946232245477585451266952309310875102100297484263468122316104499317667024507787898022011497812023445979903042180951068320003985384539562383863477969480285974749568208000964727934526845015818514409014536815225018594087567589831442480668108332397571487872971435786539855916394073552108017225559948414076378053014440181372374151499285131693185777132876463502464143036622235027050561209760161302664876399499055668972517007014210855579066435003580465647731318242921498884224822017700700336628089071577257640259328807634816456795981672349714631926736814369492924755480669070981932612303778000979411404529366588698145228241077450490928516651146947850192486976118021117754693670910848029317629006933640073493360402189643585130813974353605176189017067473666289552606174139834436664964637019885241154733920202788226805384197333044708495801397811090639731193813845733960345822810745065281573870862865308566571496942264182224397712197556073874250288148861471988146979275921947599995105904672386232980827308079622623085084561312496818603056097099793555525640819083933627775372334394958232034416744126914713744456850668563314720026120120290262434888990105353508661057577885991060478039647888476045902580149241823892159884684156812198406024905689995116723210276751574021418439329352795956650024009314808515669366137994327204861550892902493511525903635822191215410012434992936166945629101517549556654847027471912326388279336098032947512482250202329685553083386994393282857744966962412008908660362098088119436327621916809063907564035112198789165863550644052851932643379230536927840912266738434662241754285217506413858315603737651593475024745836607222157599323952682355186473317305804042005010517410425302453100368411009449848959841733103877437634633178051316244080892606524352386302834658756067193655478780745419925890034514909074836279533158277116728115715445735557572019981188197316042115734864771785816402867573016481076734715287891542721245352909518358784901100359483531976280760307739097383086256933795595629097864249601672174304719762801490841803522442361853031761888743086014801363251954332522279896620697576381997485885445958521676582072080999087606272232538825256895557576182162156640841593928075237201243515815624842531139318190819709341824522507634190924187909232128465874931247828117147261570066464975990097225664435522613950570562583759742197753510566108413601778863546533726911323591612878751234692787632801381105137482087912094817649068339239011146175579414308831623976826511668010441361786894051371318774805223302636620587120377590312548511196330643834456990714898495631148904115691686955181800532433774418971851744990698290512837940785732078174548144818615911600704642515865204264859062115073898520846624801114681570789624819889514420773769625898742710248837223898695731260751210609204577428863616515062498521858499944589930769964541917616114170493181435505806108679773820606266641617586799522357075263924949061993889039393332243294687512578083229034658769961236515334924613068439285179515859825674381470507783537508905149340781919663386494788062609487143570641916156523442868327850217457775520194150402279239422109599435221721498199539528438600715222167291590722973813072284792090926874460955295634111947319589380607427442270428722843810733631616079357803818938772070081509289039582528716154174874066639572714903747207558900875845114195501342713362992215996374329499625874954127698145227708163409631142716322374740086749236111527094396183082798105698392037591125164317234471180897748977111367850141729797165921287147977029059254747355708862316092373140884615177236956567943612837353028871668728302685440884531797032750115261403366739702845192623464893771062228326995577143681604600195949985705835521167043716384006514397987797403073828073270951227331284943889608934170963919942358447461698211812858333715260863142649923945541451002853983813944859271739804849754448132057446027286177683021441099687599377865214245668526380764474350190970549671745688299077262562219081991252929272438348726844011336801276148118974940280130507730019586461392657284630483335064988334076861747699564262095585447612127857906844524362502199859967959362185016610335228756048683239579126576763604069779620625275057282923542370359949476259179021942237826240202744487333207003547315660939207520359078251799125859228629095230681124673255844162159453439639014260040927951046802363125297242138527945857518504532281105657838861557731531324949339862677203326938261995383323525957317444189885992000424042298936798151859828362010223250393235150710950996621409203718618023848493882678192415210788143569208019292532768647718158067178209798261419158911461695795729242751676118828166587706598188338591859595053263554914208190255209681177935614147922905685622255926593920814900601512417389118371945141976846173009530904084916201408829835038369805672064334783256792093354124830440131635435891532041088726235882586502280935197562629806697626463769838263155995991637182489798037583461095648139934239913812592485832626744928998340194730880189219407878350134831123345787435951385817135676522075449351797054858807343742038457241920250936081522524514423026001209502612095057012085534065311883769888759463167735888588932347705815473506148189520933007236999272656006954675905609182652442064844670391181430266563355786417837155426647386593987034366358468594244204669507357792165713253672517120061808616226077773928966582878491207799764766424453435048115922167334896806713143644232682455088658292818233450222470524753455736997087982708615755159856461364020193685053930612397848550064954685966362019055120603515819509511838664900832619624570971863307120860622231855613504482407739343598083745713735716846529682268207730716775889161508642502802156558492718463619092077222284351353582113621098459152314012613780173819749838121466634193624777500410195684119115816047327555029567117477754490462343830365817916795172739653760810286672664688329711971732476010200102318840392443597751508031476064352154622970989432252856685828815138887500313706961296598742114357357789295509351033267835906077992666590382427888365960172085033311433781968006528481966257125630026300296114340859847045297205841869340784098483611073983874893284323695832397338121754022880184340773340818106779678139334223628684491046215160529465335951240254488648625797469675703864757458512661271770045772049991819936792137792205994373363124469681442792078687429956500556097341508828749068881827022815964570638815929136060591677996557127509669064836259106072369602888688709191939208499002321050705294084786087285392132700856551168464230541415006356713540734814871829628771277275676299669979612346454294054752239719901371668694596528547086365957573029469998599711831077608671479731480388614287827757011144286139619454349216036928198962600058808574525273122855069075960261066655051053143194119424929558022479625469947474915016326024156435969190360290448952529902137260002407523991978353153539588984208749055080649108535566445661729908041574309159013634115571872353607205048142523796500071834613839237583813775220714441081993319658790212470880746909708425032403107211103731772958827296388807655435870892779110672961487438516971984543843965466327701933896120194909504072338055914118908624401089421095247794452991660056162042097716385600703627070929064192187954880708175541858535088308279610322345909682823738970115767568337118159336867292868246625498866930540851490087827382722650481107735827197801186012766154975024335529099563951614200453652568239597802080835890370092254676545501411360707465270046234937802261881991615233104216522668436818610166405867163196184431108918386580487482615570088628289916299827708714108368490679605548467413417195330448983417287500810801624236724280417147708067195763068114844983005346638434596544021202069372307756376521699281701893171796332317741492563433285015712381502281667369042498777446125863315305354615036817357090196385340141768549605490824322474349743787477511803024566603188959461732542548379999051539900675052564978418885642714269864305985612102185275809148174699177968521145012892173166980415666337708866672756737529938176503237748542254618669720339698605202281571569640954960208217418322922805412442535500497599461233315260254412879700830664830942941028895803260673485753868761727694686752558275497742818219632810032563835773554448260931768550201340514835373200905054179969849196781895463302982385160489419987931534195456954202202603453191058165669673893245661088326126314311768500753062936650002946665114713506209553591998498876014635022845758800124501768209667425454150642751537807706587798828972993886732370088100375433620770141341465784687039565845864356944997217759753942992625835218129014705701854919690721164763950203474862584128137779832260779522923825138049496531786591713674740262018165596671775669251740986342458672907869677158665598926959605253471980126590750031903013175577387313517266232418014300612020331096376204471900140336122010792592765910907151307656753609255087805597418756354533128357155943903829854872742855720304561919684392019852779461227281777344939284208409496461896533741098883321241031731657111062945912585365191888500730881702161327019421148540964257473675887960550158470784157509243599539966556712754426156428301128465321944762924481609513913486104567684355523860230812673621312065229223203871800339806700585020778480487615176194958610503821333472362154437939951892638154459483156907313692671102154377303881801032352794520522720752715829542557462062821026618039670878435340886908972049986239914941492945020349723691164382151677411974156893055359260306976660241913112808437214228749433008576139028292045043255688481945849333161478182354073315332811734847223700737277539434152661052710892600664575183355691871322503334716445531584938745008810120289845242230940126139664407499617020519462715176067179020258975752803118011016046175019894406423825865596205098597250717033722141689512384270415592436066097626853227669089277479765606923257685828274721486265316296321429375244398140767480925456369409096413308286571821932566798872320935997854002672653622957961815699623697438749225619076658178583750843206121190648647596406442465811048784247475501433169342694913820390305690279854950546304951229343152027471316979632846824211765390341682748187337266154395366227600260255634279737656657031019577600864970911845334442110184240154767826486983976272158494535297777641673869659302591809565798325724073683066516682633664969908506404412353776439410507102151695887343831809057985685851883244269863224429408190634697546387079264483703969675512658925708615127356515644446371057424174652421102955686274105150822305448463806054731766184527004623570770266452572208568690164772034326711388966600108196258698206051636556532672499771268459506795629051883673966631069697351153194117804832053269591138763361367404249625455629415789586088466697537730635850204393115149223973480597256243291891313332846757134848304297329159808802780501477619577167515793319858664479313669026495270572917855472277295756963147490052478273731644383844862894896851395844749094279934768074314934034443665774228716952465022935038775579433260589799972528283831119055821886880936698188397863347234157286882216470704260316398420014053032429065267641342463427377827403374892893974652290849517226594165997727651258149567393691115367482513899821354335050472025402122826583717492429209821525321580750700993085880139599512082729751630153529594084546236105575847877454385782211005704781651600231622698271571176690154965294479527136557359454628074976021538627142013614536552798187770175128356472480170176229913402546488059570990724609776284174600510410461283198471692098774576711883439284318056725502597322358515295118905554831787784705121188054079032802311505163209945185328126982225700254139552766062460611913696559015785339786051682160438189136548854710049057320006847367105796160497076181868984689288229334409837859627854995016671071532694429624841190407260058634434187881834679300929455527284690331510657426907431833321871800482753104500335062440578847003540776860719435777784354568652899303160896831298165720351942097086557039166047880049597286736688319744024875752308482889147637409474191763184620355150207417183749783490210811860961215092553026570661886900352710894455134672198525256588901798385127830709200347352652328769769224325288774853765208096906612169208533385077550207751890148523570741247472073353803028277400740095139036109440142878843188771827268250139947063503725649712352408878742622948600682297837728915240967797941172960494338512458868407167208094944749523353736421053703643188026714093947553399531859662609987368381548235486781131253856864580516069976050573196194232899510155917236496426755025618464095495949494984623093667031023021807342334391827959586770560485927595549469822289694851491894194289421234038584556778930102833379995671287039690026179030079357595871243723750642023066106926031220733183971079326576680886697884200622940086966765084353987553789661098010599865772131388617246165486869635131747878400653032294957196387335597030735039195312496259169339671064685117762797885615000968650234480490690701237874709668593539050325381709627359344720750312727608473331200689796831278092529575801323830484078145900662030284331363559473044989260962480434000437420856555074328281413602955463874718075786278273270830634734343964738717250543092223263340814695793617917068990961652336051223576498285342738313781630434477358967640740104739758665000156155753443613075813397920139593144793760056795710710847886542634387926647063325877314673602747172364335609468332649722878774632245844349231388223585529383054344230532204064035273149260080327822256031048939190078487890831138176601174801171494776401530129792354324347941517113787841488553251960745973856211951407939028367742946376326211165100820754276222142865943801692891898172451915526378447534535190306748791072438473446080617145394163056957427073799295351834026960269065001943922562740679842177958280814367850689984388429232733164930199370558903246491705556815607655809893442849463261662317604274452705508697883156210135322525184847581015605919480764165812269916842711591767070156083210890111791135487474526817800914998208401935220568963184767130743743775734427906073130957296931433010006223404788510630933835234543511029441991231675387902850654078422362359245540459294501671771990121128106894008532826800700810517664441853592307294623247771177062006975453464425266712528779145547921432666967946597048638568858203065134016843250455412671542748228695886824840451082877026923073942779300052215550844431799065429486942331728608930647136000368666269112735060248768628539766438875154454366556763919900549963443125262001517985517019636715989854877966857945380462942187581505265803876892144236323230329705721445386542451690348454519120491018626061953662418197114334541691039220508357352903441718545320239797986478306298957747035707241805875330025549972252474359247067851667970286567428324911903650269791327418503294950886590158346437966810066061346470251266503653976187671916153556082720733531089821950956651125964559237141884880253435048603064689125742044314319569637311026331038115105468298536834347029866499482270352841776106479164225115550098540202964296683574595385750444957021808638898811808232955358457063649190643502779745086394683876388357506810591682078798642565301065031137770987498586954398873250564084399391372645836363303863999453202448156704589562229023077328763760108037752697973137610471419174294005723139461080448465901660510597214710644148705352846876388647565207812923895033536090559578330057068237280521528632276063897148764759174874014830335680349587786661281365528517733941607960193989696697794894935826688273970796635310575078360065860031074319109069566800613095996241858261561885510297233341587191292717153628828744205636872828123738707827785127965024979015753141143899023953561820454484202048153867214276985583119638311538611989212773405895762648378947413197474753858988843772791404840976431183427645608672980451086096286489397689475121173959202676819710408129145490420879885009914756873423090111337285108193507634877189679986063040809574937978640969458710943839005784698369343222147500306531405010437884418942485519251209477949005830665457725994346996482914325523947332974624962877253459720250768664646882752643234224757111967134931839112509645509606365185760437281932658516942758247212909160252408341018663605752318364305086738112965769501847965716007455683614468876300056186889492375618557675133330775043082487234211496937198984002963788473392200853392388720792779966772281355533188283150457604690804642517887254767434735650202506315232457581875368727138238518076027719064543690343965846290433038717663864038596637497122964425508207208161106762589334869688991534147247887489579224836649890567314935159549760172603365708897619083284878743113210184045538400462051577141934011284995760126620710778434547083579037112573646069334350933088041984094876510005407787437989621688338473471246199870634467707909081807396799547590253747010853584648238894405961893370712742576327438161140900406532752749300198735657271036211590040969284790731688791215035299929552082926413280688513879229398551003944601133831631295956265556580338305353600376699832369837399765616289301041352413957149497872745069601560256036036310531364366997160372066281385451632018425128828013482657348355483113916848319278079154528864137174426216880689019985008654754351737630220747453801877138856724112536898276754619301891538575599539037141264337040924651155215908058330888110798086185957216660916082180802670537686851064659497994656295483782274756685243685640910582100287980634202724893984470314252968264967478681632390517856905588591325650467116578304506549312234101362307272043641818252666163928667731892665067853028738930377381880343485416745139786320068020716871779953424507102409983627237544691917217802377762225786857987124655521000228605157985044466545771809275362104180369235311174508103177416564663325987771118360747167401557742978800276374975264379608228630547572765647445231160656210061390943409306236154379388444946512846581532603642537883429896947454496578039986665023915278011074952179131790111709641818641953746251111506973132295163869191132641936222279341483951953345730681993330392136247547782229686755562244272108871459450217072511670091720711710449913558349562185908426470325996729554245471793987393555160980034041320930011973869016532021330852716343820439653336547222557692828314844599742456886770193648947170882926792066523140930782110631526742662091315950461978817304144276265842796637295111119759177973427129512515585395165301665132478920481970405112114394495648344378753695442114983952277912765253509197475536430790648313049936235505615783735778609984089432692181780237890282732614955099794055852544527705253520382816278362989470148231955183001192972781875012713172016311258827135489240537543593979812395515635030742502808176848016037726612677769633180266332068476300722288253458403056571297015538004596919267308988226423923914543916800551231917275193343876880980595255824726701056297975243227373280519601378702598329352293556044373022477672896366211021258849016283545605997344516477525089108520961507825949437857669611576503844850419057180404310778922046874215265669033865617170206548789162209031326870300626122240869948901578253106027953066412298970231479596653991594072827662821995573177546409408726149378056617468422569777178426759451857334906949202581606173965486281197807927902228989510319165008006771148323603873545381576041680268375413899488545306226797523061331926585023784742059968083779907259782720633529388312227728747303327347650369596315478199677616223439968863179904066163650250798880226802152906419833682698001276288421405672564415930130536954418190991238023549698432269129448342815942383808554663518682098022542853979121681896085241757128377690313642255548822871995130299400363751001330158310127914610668270976602907178089578376596620850488850638212434716657045007329598674057800734521190700523378035902514894003894094286825104876052990459189295745076076409458391022038360624416658684359544611228116445986188855910271509129290513271019772378550423482727249239110235287773904398787265437738538488281911399931272857602215231546963724616143536915475619570800209386416845926609558238311682968398736633341109955562485443867544255483836541738621056597337590045487164514212363302865879920182562261634477133222832355253110186285041151907039841413341179692053360680592315143522115136666380162490974230142134370902291818725572917544165926122873547433918763764552021172144932962940768304350763561204252516190440013311540173443352234718120181632807650103207273902967721707986399574193447459337711687715769718652734977704148964996845122836344822415855688492314158770910553633124919074433937684459464481512193847137409385400041801527135709250776629860150588635982277492469607207814434082847246723411215995344708299283390371692383204110870133260275558625867460561729408342606108710879784092241491587427927552502018729335995215121003112423175174890903354968444301821936674154188784301744633119803036242690301273660010533217945549972139598957615796693461925639217862833375078369816462635996567490800912395259281274432463280443504186625901777839860242702083121407045468029373611527373991193513521435925732743880898096830054944457903038544157536776159733639501997089063420843187373198414434283101519202505455361623245132033491476794215590160602830593141786864221827309833880767102693861370025612284340311542487855548493755416714147203278970233667921925221639949532907277022064203375995416554268756636502213495907847029696377322485004257233794804872656174426225496048566235497538961991376003505223873502637800490902318296136580837805118242885591176382882346249208418917450377172177563700500478339540944672783420422929934186114393990532522830098420159096999588037353657389531363723646281113324959591809165666258982902854746822794432039589515024455991803987285852272244476907505446609728355973977079103042998011260017519710993411948564128509117445842672826963990982836277767967285377525393761590607392281473637021712717945964808670212505005726484275004920811350373729298511232384052219436400372208223179049021056515081422626434913938888873069418442751189350423043138468505919086999469421771630572994786104088733549852131401706925467917337135653003976987367513027869059827831504765088494099417882503646312387886730062165827923841137565410559668971017506576619363370900218692840062203549246558581525341226004138398689923472649851663032029582673407533393250022250994787998093551510084256185054635421999839929072660407997883809333005951810949440937616968644732333431694872949913097298505964674459268792664682278473660197934577603722796231342004664084547227710477764021469113269634349783258711601065429099763510913586456749126350145388082467269942631050182145161370972225032195153098043394158841631010233399857422094162253473056413968553845059475911131408910982474579876302000956516838142102386998633703135074352139208504663918696969166663349541155876284696940739168721059686101184019711724294430134193776797319946483288164515774068175943746391881026726744248016650153709126873897973228212168483935935388888259241165572961670797215206809241775890812189317198859040159706699497489111285661009876156363436897119706186248836219381677107342900730189958951000307905804697935626363985871636439068432717116292518817517265750985958970096647683354209900120754959848210041419054384187631993689576359792428803023416463051099880825301323050267198914777353676573773594395799870750437386981522340428278129859960133969053568187603294448737722197827725163125022031840625246373512572918959341149827106047517944548452755784625362817323013552582512020386202930161372914288379307467260199275689183664827494894343620680582499536473035608700626198328979870972682779253276395959534078579867431718393995773132995399012636024044223893197187011894811583069854299190463976398657279740393489202874960771621409083330394215405886373479251997205027463768648621537757080769712765636258922437971271572476091158318327597534211914270925644568906782704673628150875766278935191742769892514568404867530251303492008424583940106843366755607458278027755256425160616560146981294954472375022059282843141181836268548336789580465517056661272337686437837671506684990270551399753258919194103994711737853423361019786995775623885507710499953216467016791754489395436967075537409010244345527112968389195943753491757471166676077860934944856946047750506949983147002434139926039382141721554534084301956916450231310347817110611967936615848677451373105731903882013259462133665974998189975845062980912976749463335380154028032742646187365737583634757644318214495254156474851190133720113458598666135230261129986941226438784302496063407684035860845080382920663951512496156251476745491351412737904117165427261014510303709534615884200699146562443069491046963570749886651103222987568064623460644267731183615716630495931344607345268140499800784967708334327840488627532247431427176288811131870437084514454631196208985011457486712402276378711710236759827395678878040037061053588960601295339036358813469069849941433810129380989304975723661598473460428759828590844271725952099104319791175921906126905516393520724516801376175650389296574497173575549381404685901762220883382619874966045796228931111612314483533704290592878480378602536455577330383293694013088481501615986147002706407953192972203177410925046696615772070245156628123717558779125954002862379325472047399693566702245267785844818444663549747982712865654119543955617345347956843396292726405153150710810735695653091511806618823793594151027094117042094201777233469732306732629085863606492816700558360180276021738750800866310260051795013914078500036694038518340494934501991865577747908653201910597793084002661097862179646893827442731176283015774172172586277646162284023612516939101298573214448936783660674308120772824136320535726111993080400863276627643946475604245543192313872204373338394725505748784646427399270683367172608704419450758210486626663851334763380352383705929264151766782952286408926871952868743728753049079615546277563096474328853252343087496066896903232332276729142599185760960870226786984582905751105586437054349250629097573461917994067455995008084667603190001073160403216246276534381867405659920863517243566958731072796246357638921118175740708873824907945690360525997344986626147796432680739401089357043032950830438561178261207194352703511196730029146734616198949693423985471811777176519567957253242077707431414429368795302024498692923720208122520304767842195133098885398520090346427706801866260735049645787620352524252701105769238685634726002668298043909473098220597208225467431184024769203717067175126409693571345959999636235973633532203683035327756576051504488947126625595802956411572835825490739166758928390153484945377139966353523582942889614987385413395789703193397423409928728162749164900978641570486265851157950105579373553136489547207585656401451387982407506759581104084414966479357096493630154310776319928190077214855021792093404191428729636176653712568762895924611349083355064467419447492894153231745781210886830530483673075184757462867706908412375706238706688630705268423069630110154960956939817194828229483986961423235044795236440311552569992429574163383990638981011034718085820248408514297989159932543911264883287846891800820160418427537411261675356229583343082412811739175210870185844233079916165569390166930980080468325542550982507802828238123800309276728315264684580893118722641481483196066066192064296603543504436921845180097679788884177454406017835355575582017587034694837257858417483991479933759969210386631648497214993700796714960844768166630778428442646559413950799103352689817232309904492529862719491500428960257626242793740143352919292130428013042312799362821324876118322514753888041785599469627152568367950487370932031744147959873302065670688879829216525214093292647908692400485946096041892496148892702814516077899362790271063633452543058975558286476518039394044394727850864952367437018979681430510839984208591801814418010935917903118899465146550587828743532574615548403946797611568081756123434765195781754534444085976344841525918058700121778828122565611736865420557679773950317709341860369507194594581190141262228074327122304032938939448605824137934472225217238024568223789207691566773151208960885054543402493196768504760790631378656772698922499679319813601334409696642396664259756620996785326001008103786998634785716292629682765078032626132965890431630047850115800838504599459082054991992900296839164884518978611783167943051880384460033502431536807202616226205720748813870124679050054431253104819156380081518437146621145149887024185903297321967151073487601872968839220647051947735031270833407112920980663061349805064104914917802608370738567124176751982387865115105188411795621421090037887335016984352346018412439209624729205024203370173276440200935459283395234153638702596802877607912092417789101830098602748385162740228477710026672988052953703685619541817929316218057764491512816040639562276949105306647246455598063560065588054326956046418310990926383451218116990294796537581608025055824078663723718130444643443017998937009546355982105467776459447895535034931864886517169994931574265613534352347336876363749796173797195613986203248730214282862032967295245530620381443852305888687520325947745911248811668579059010251670694381452380047003075872541227075876643675509013121382397254702853966732380708826190957937961044883727406162027213902094545510145324953942763121537957767863850102310484770298372158297954601140659434823033033963969149511049024310314549616903247557106182292399702453156635397208245030081415976218399224370930890578600842213323078455013264290792771680720897549990007691499870516550926770761768825276186526016779978137639658566964333194894020521711084533509868667021281655805992287687412068703222773267154142010578992483514403983846813010691519945506338059507492923932780705223299509920846179196494666980977458105869110764812663777165983490245016504972914645144337000208314796422811937811491463721941593082471611846116056420548858525192070515208432902215168644241331853681798068910039962292544879451611603765250043064428671356825808073167882926842058282114584699746619311436751043634846408183805409068595109540598972683143372971147121954602281487918628846390329973015486130933176126775072682812641038912563083899946130922623985933869220002602533028401973069585868174877432896392951041365060371539314730176384061984936922030695726677952003592934995254751898651291786088734858283328704288471790000577801007030609162779106757820051025574057881569993925321507876185256209528188478104764392018378694912717698117967854095570963034020212627244165767007849077929872809848848283979524296665102351206547884832245583845244699753742344877119404379429701260398287053244928608065718342858045392433956127124301857640082402638667092835920804373304216060316427521177358662860457792450529643759879962312538178105141254125464092501218777769917988992755037087881406628032194584340015946261065455439322178210080830951835855577130565926446488933151487764855700365617162821176652168519438585410468378522527999497774342342763817683645582550947485604236535731228631921696168864739814834430912733658050681425847730761964271798124767711592492842105152557149846738565083987197201335537018407649415763969554730366076569309673630151897854328616826190202508423088983697316891469716717878101397599179213626138346089660800307877051957453419456716543448079803885184727383052847898118359203912711964075260337528372884390664658070222247168268957802157711256776420610852444736935151900655415409720335407090751101471851983800506105054358429089668353413038290898296589434691025630499286072628199826113437963286616108433419096927777364486906322547484711544677181449381751038486034075432722249970754063749188485514242609491143573649559170752833489775427227486615778093364597599723410884383031960286644457456627315758884423272615750974624539695052189371098784973436412189493889571285454289395950095761070378686458013803538451098389610223984662379832613024580325061018199180906147418895558468006681861049885452912176278577725053579093938580875844841758426881970970251569112317941065199312385619370106572651551981723480895281845515975837239497869272347254748583498295189728790326488730841760526764274292094838407843504671947689845109311031937447981471540511963588775291855676393332328082533466549593035485138597950782490197791796789237251615737038068910954555946940084319345245465400789858015354429346999490926320295433640967195952193347527038847681712641416369910200361953336785455845509965096101653153593613922599645976076177161843347014379785748382597854223381292483271433347640550296855155050952630898573715644073248780975970805981193590503324925616240739543756207852108188760496698160526397515772493189820413885153040424718047210388455622172917041291106721456570646045031897481803091107584104793868197460519346218271793969615804742634102358133248477014326506584812615804174406656087333805938184522253176655182522024491602593227712684343680796775497414959678751409403627648488603799710688427600860855950809046421069196441342375811803292240400890486612789224385452919048259039025930530981586138867250784963517947165375746678111042755130824971831520351320523264559467642815327875800926086542638578262834956394743648187212504700877788261049229400801006996184099224117846512691243926021111664270033377028071458286594337760030267891422302735129501277344177399620986062367365643673874244564825664159804665723112989572140251775791503634742899190749869997266804387679854066349106546897782768398169199203863977708803191188054825336787303089620227494194350272913540147239103650511485177536381641992807757159312243481438828901643904877408783448534515796966420071313998655308151135188381370690653205578754934091481643072465203798831372017864159696750268713696882390877312059468171311922013688382591733345231690303254381796080456523205306696952079584096431778077672315904407081980535410218040639674071561995891506230060230743968741988416472389227466761937235549600594496275227695785429058418882249765357902271542660363779458205162645415400835512424939386864097405746955901857452680441278000643506271828773468840433106490808131111975536844828444272400795913735124661219963424728706480410471814959040325453574110351205426088289174701008796594299404276570570893653572911344461059834839030618016232668231463861060923813044222004893802582768713642558265729801205924095042428724621948208194675398405612100476837302013935609754798203632368918559916752358388382169252305528731004206279900358598523055254947226240804291116148051815719255857959669445462348634279978047673884470949303913315155841679224108342044601037294112335889560598179934803850693592444271143673667571092035772834273765362831491613215971253032394812175703409826515610613840325928917824907442592675873728352949482801878811379721391859330660795288494936908403059027379575746931501204943077693705274556846062842772570489163221756901471429455231669471428765284537329336474510969360594721611911891291475794833885629920853580327207377828001020683394115958995409512934953724751119119702059382226055752766676447940203569938942780801558663622960698701651964979517430494909199289143249311985057446323939250184562710762484265322492163507149764279823881194619974800796090139805437904805798781935199863919504844232887251406602139169515839678625147118790098570404954674357890009125742467433568459679936168193315498705921983528574159786362938807438942778363270867839579380556536594857210656575451310676666861448238771695375362448086330852468881070299058789839231761552239131700175896581493768000125812474408026818887629625282512832028861861015321788384611706072353080954163028379862680351175724880494387359334551356318974586754794862270274846134860988289206524951186038434159663860086571319145829825171696670709084343419116591667267841875602304712551493233475014012217299932491892191747046896107502565642797768530732329189280651769400534464656209980719288254614607612391196537564712226314037508923263217145139941989791753232661907877669183508829361792560452693822459639270532462098422537702268607338902504649434741518678948803866942407599333069295920818985570273900940229437226203927627213404402248026770858273863127286554342860200380599282167321575791102769323512813674458768007911130546580861008586208973426607402731139053164739286803980468075684458327358804737411345551213687658860574680408438435223761593273406886033843755185317821900200132244678672504769624077770836378207322770390596853754640338854838730989603264669459477246251576666861734479085407942559404312241755717544101147155241206373285832652855303363134195646642692810646350011631798356558665167930323570263203089622727826164687354439516593432702599114480291242264644762019696073459942320610959387854352949118410552205123132489706497699484032733583768386841866330336749114713053850813389686836236634251228408133989447477016985731292774375229350458762534359185082413823579550969693801661859936806934151723748631835113515387191266367837584187028624318126744533246075064193949739302091334801386236273438455449226236081016371780931715345414437639490051692123379974739987519548904947089464638731632397033724519573097470987067282950732184046185430553382109503394251612146257647103005850211613542959577034393784442477992202213928201949692721203746888484970845031846522176060827551630680680975758731473144889777826859883778995558562414205141798943564861029605883057107726463670406832054730661554320395237587907335168268397524292318731575364399467104223934186476411745739539691129782127861962609694897612647204267735124717439963961625754001499720742870109525126953556227532840986520044085952401443013299133823322791516648916886241156979365122897555257817048207592226582853523300087935416977164819741320935586630526295644044461088934534338983055961543153793842254827360982876913818173402306237810766102368313059647787126003580730310194385375189995827983964118156594724279786863997242543872143582745471100672524743462452027571852408068244457540914516667842578007437478038361265093043524490371586747168291528253458597546966543515574900451576268471046877006137177948675513555169767913718944378700141765000319214864592507481566407127677950994631249810223031100126127007290908368625437630735546462568976898523541561422023594536628668185839723017605609190708785149760245852811312975843011705949614166735988134572810930206691849376118009151565874755976000180166979869909322182104383976920264237822333619595462409151144915540919144100029650825340138793665121223981249047437442050955203371136662331739833207956205296093801281231632200173698503027363857117252733720946819269923101511326890241663501696327510424608884534466621721950570607779989610521456692678235105114968509821781228241125674166852044943553734586061983940256406328300823702835374847234114099555519412477749659902889851249046527545115840610043439451496627427078007918707573702994028881095181534490383920591119597432243711642225824271884745561899374324288225955951499979222513950872053427162860043275452897113667058729674660629308035720334313963476387000341603550103217091308896872015859822769661047203488324546909575418248615006776325621440375446635838180546777444566045669267366906230036365370678734050478984700305550766290018024019235553807402916180564997916479546687935429968385921657925150192409708129859202522132189368971031010982076660240708382422897926812379852045910841633059585455979389072272758820625984467377737192838268963368227918698139023446014360793430125118392121089373761012342112953830395373121955716815286705168244610834329273418739066806375608359228714978331728787849191127171906140802838849746511008588974102534601881656185787493192649074593079699726760862257164948332159200892541519542563381776090641820612010765995866355283797231831109581355000928194220365211945081556322811850546534064187428426503669843669958055932901135300857881792063998739054000578338380925770046343780482386656018978349773654851548638885956567585866468733576260099178127663233035698527560128080316861866181904129307793709651420164332966576131473610456856148461529083273301024003702398129825119005091766131135792327708333838300118653108641652249509737940937992339014903333459930530806811152758625274146216228785605961799505879858152955185029339978184330721496754094582976775099075540860855800704234655180534198316738863509538081342863357314202097646693278704915650438627013603814568345054344877483653253109102800208267341123874426467548761572463848753759321903951859610684129448453711072309246574395738859920795365938927268284014925999233398211043606971206186439483532145474801173755568620037599052177059164705456934436025152456114164188591176191413038621767707170313739594883377227847876383647613748661638823472445955763347699763481264775089440401068165277849490392145141988940116682170911436604257885437514401161267557147213315654621098349329193440690379521649992854397834480002770644004021697162301261759316249116314490858085311171539450651984804293685236882646122332213767950694953499606956301146137746228686914505068908312855300694846394720321450272853607505351467729068177159389685881757086651904165867221757441893160594778002151726587098668695150296037798846606298989243607415954312799158608387061522071739451071047544259934802296790411633703171983321012157544913155613100098507858419893791411554693928266779975683384129267600668011404401804692509492675022464021870881081857050690272648860132713300854926647676341657803718055410208136570110580831158426624810462856123298299524091981579724156130907536738856130873835585588552401353001061572212976303173809774881037913340365245438548266926617377702975444754171746599700286493419066121925368116188953524967503881195827341522813101912078658894034829098677290372524508110606228888768242944069834740994133834945945096874898112054645969030178835772003662596119830825937008199102158139460669998201682726635633603108817421755810754824785623958699095883147770586573352240584174697225422506076718886104532712989341246105083883739135759558534859374275758819509683388969116567023794092434447108988180827035986996136869143802768262968388960023632698471706918040887162006644665034601930484548210419925850646416391192681065272022744657243676672771279406070552203967023937951644606722566019255949853245420780866169876676129462208726113343014473044011372341067398849140818750540861391411798287988798790213477326230247292239704709535825393840896894402152234786927456435743054694118221307603017700608980508069804817725724869305944520572659067746532201897680683354431378856864124000048967560118736614866996301733929749002051445838088077386356617952904634130347879629958538906873317405940470231941273364805507849446856691497828976483172916147989862296151832677908914380050390059261272609788768338723280225882235366486188122252070673878677115941527454510090310418673932306449934562890682474491867635033066239915520100536639385081471369733688801654545674984032547809050805930437309986047148854211834193529062316561251821938892612757968136753612342699241397991768816783582183711771673774569682745946018538450971464422332761832162999185848483260703047506480032625822291538425345941417692676921134243724409192527777068493785620068013280311699157434353440932137750271238395048796133230034827527594740738182510327735351862206075474150376101114714986933004708195273492458164874598032942558840847350260632506978911897911922206091019516070480604574737353035957274211571491749200447283467794268983182697685043946112621171072909937335809269577216903325984129418121166996982840614256903417900959403809210916041692891734020410775434267648427047643878646566819918564312329175893511411805428531282390599187516620667406261923275400837757291239721999938753426769517698723330184372928785047530650684101960635934173574548486766179749979283861160069871754000112031947841498779366868440111732714284819504590560013617510868391761928412653720269382675378265824696408637876885797741317715961976698383883336584752798631865202205361837084726453488566101542652666129436569010381674631277330525448411994656732872657504831162486599667307428793813480700687582432014514465023938362954507145752765814734095007912910188113159870989164503733281992260059399233062585034212413183679171412212303836986752978778577596375010924036706232650404680565375181206310823680397809199170487216334554745726619076044119580101743429027183100670285015781332450748798963966652148255478085550547253023254637347397854506616693917466101646434015265323710868032356344573456005380921601923698738797117014015402272317802053099980558503198763129288549637199513153204621982281778707954586990303947419839316294273573958379868388070091303089593823420449826195780139916497964242567559451565815100221451740565843055433816769521861506824642290093432402978546358902248702623504272892418881803046230507886942564277814641414631330879181422100027714562927950158008896869560391007285017008045772372160082650314314279532691969957122803772285947654001156568518555605715107889187669137673878148173759986449557101017376777733667065067315105239582838268742098004873084473796248918555546351373039655511815328502001248261452543953318574571940526819819972808453999439972108015591516153225706093796282530936849213844734187718428457948900694410489387909940983043592748612749703727483334249273196735598522764674995722723303026811714777074724875984086604510364325350510558500110838300003496255198836252521944000620498073730677744527991763761319611074177558443805390955301423400219423305520528543403167683431194659338399601118754934711608204524221746055644313791944099522227868399472332472532122869078098655846821326045268308961532959208142667228929693403553267752578334738667373088294219804397034523767316909588790320659992220491973890376747881630190504958722172406157691215008338659860874720405588914552671596024811745138520579734981949656922190658854515516967032876788618671362752952038904018255456013998177944953649158387000967761556677186338475999321990842016538361315707047373658418974266181106734816028618308567894944603034235370505709088788262885370940773481742103384088526378171515619294348195728685318001436167722044296827592849848418439157983299731178344372547294055302786423060728123597219659527445153742787907838680064382536186764761355693611844802975655864813243582830170189792781632704609054950026724105706822731762653609440168633892294209166221122600029882018011746888138988061067820317219510045740203800086007232441448042761617472251944523884188264108299316510115730015560431799060070220743028052639288017369941531903206091467121465459418779412731879858648884848685672629355184447352183826531285739977480313736718350016563523506150568393204530030484162241731138167978251869222026428440464075338766452177682863010246066171640918465862145975120198188237826801014355721502345493027220507537436690308524513506251644140980421365646378271844384541332586263511428993697883209621706950862713866746672932891066264624221190421511050649523919456854144240875792189594264257853077004408696717897804203275290889661012997729968732684305232825434563094937749071628636670621745960649944358495939857971711775819536177364731722695249383297577607845904863584677124031558847480695147302623241908568241075753114515535871237542675431514682497278962765252440688339402372691374082683286838992069760197617135908502938306505121515776675594985239873410161684954284328113992614260792002552241995631341453867529977846570463699641718059650631957671718355954233243547022348788967648556720670551638810029400359281012033505692801774079537278612445846308408040681578221101538327348050928027777303413983124372621998660671434079853402306560119741454755355466682899762615796816909332471202645491177319131161434296433671949531865063597592413969031353446719292016604620468424913384253519726387995377295874234152205671552401932396707173891100414243028311880809370282205271771508963552201548430811522538452956291384749171033342415883339043692637690175948497514978521238715143756354929404159697097372427014632159491823884734687887639204818050824081569740503351031721491101317198108491907691468409703879112535749330688788739626159007196114102162051043465958304909929610492486802443671098999363528491965015334099967921619915320586444115363272568088396000263446755641581702118531177750147499447357715135244932178184156558123838735734706517339884247112878874661850449321496514808086611003268796312473369955487818585487168958772949473537460758738839083116799658641020449169391937483297737340029736395804150761268896585403376403733813925032009272215144509149378490076531085857154463830513150175149726004519183163623938973365154452040926341218137936490903779662212212525455090213478318163952013079307302053391900373252157491402245972335305548109035463645500047149048067142963143335243385569656953346587350500944528843321461185544702141305367298801338375800911932095811120050998188363341298521255204632566108343716183175478385357285555881013072731786418480156530326763092450300521830631792601059286162105227355564003352525721791901759568022662302620213605250198526997862921926281099549701096942592740423975413952166635254286687974596706486242800501082340469501421688720534823625505052251220731922405988314762044834341060379947551190063769418240347412674865530894002674035397117104015601308683226452959655459890177029148772306846746743167377161820941180082330444634475922085687824307370480697611187573837087605427455893227929273211389216852409349116670026455315288519061287458939624865077776147233576979322199015678252739196687166409901652277722930489661375991270864975047408665480675555618163968621370266505327690351280192489719939145143480024956695484477791106528804528601121649866949786239152848635020658881096306358278999960398218286560189805598308098602643048819800329477308023108574735926342335426944514774536249095475832102730989979895955405696071340872135501192037244023585885331356339341320090030196345982389750652982195392445378407663032747935036019673892940191852947391388605371476645888580221948418645754345093661057278675890332122526330828188302252867296747309898809908284039920721015174329833933312848436230012342970142606615945822778404734915416746102216000308668265879357092786821397469733260792120924280213149954371376286830824043989444321014218848604872093553143821913064823557586597569458899287625318604277136499891418315378237025345985720379312213927014650604397184109481536503804002879023450584869308834415045135581610495167501653334626609386107782729102313197664541027521824923625864561883452534168841437084578721587965362391979088285457569026990585777809682457901948210872022248105777958505825871308118148562773715028717655900310368541108644264626962225696793703646918875275463121704915092696190561325913045132035689623850233476206094625719848195645130118736021594067007884204318662032406317637413233564629256808669093417359633298827334558274694759718832020472366269831034950195938527152562749877770999282573631647614056991425743828966162447446369617078381728120618583185644559796725003803692627763758809587516627578952065187191222392745841049197476707679714844266623412981306183667847333515919971185368853062112824521941719928262595127178664962878200856260221203809561926874542702317994876513276835537076186165645991106751508613825222359284719002068713570348939811934831241683977510803690022322406808247879594603358691506130258377807384731310259672350579609136721976033525589757560728166789972306549529789661915235745415458090215604200146205036437945066335237400561784725856516535874976431041983893524546427627924015158566516964795545390211165223183631028488487400675011437350479437930799622368563808601081259769738559688469116094960188212403680721593604423184363185959819567129506192516587622847458965753969219517730839334655219096821413405012001597499795949390695522149625633124156517781641691192089844215870184383692238340299533496385699861331437955167532639589337638419227000205599208452773092700544490162686138824583135579191498199164668108806062064438444523260574439289660109245791073016384605868610716740933112116834797579074178206881239458021638746373300833082528160227028313934613004134007852227565132831211420348107108013891196713093108038676746116174728128959645298091999726430961266784973830437733902941541550446309021325954287985916390743548993784757690065296218752825630689507045656389107131655354359271869859126533467382433637428532181985475455325315479836547864030655959354896896905400569348977961559897143656245447175325495925691184615415208476935914030911812059931339986375059941649947678884528586118778275736125990109305622131630070991859482100250672591770497263810455524279721709962958119620170695498260996573186327435163932649883103655060145053722752375990438605316309275608635745795948901931763300591640776455168672543013574055298170941395219293867405949528876753240593221782379652113162515146906455136249587611015400139346593079186049932143821125520149397011563744786228732536805188410564583207510587286154663281143213480598410274156370739888198952946545676000763105410857263512859825448047057890581438143404067646816978362237720484097175291393467360157084301481351152506347975821386562821607886867668657367025278365906816355406609057071044109512661643971122953022602763947642827395829285086533921199148008043226167064589504915034833740591813333118677184399946601316722139810520209739659484490689238182182500888330341068955092795351119445571708385900153814947383807771405466804767809626580919945638187257186175681226115356675922548636640170058604080599566355625698214123581580958792749727789306529641936688184933199955942628140357941140647574028739675578394131207781838799596057707207466110282639494890880400317308708746012208078959851347152864036611437038964954254323250494984433879035201105909919044692671748881210136412494834668580033163625284337793202278508877024083700391642337245219596417367416726080294118224548153223147438819543230071873665075968158865551960375196277656414596300379966284700280369356699057036454430573974695448497023495468475408079884538176982887864036120882532547854176705813130987268286652802905525052586170223186357597522554259383100558250249526638851150178399658196786736877609737251250094875166530208478569574808272310893439500216488773152174551464162525294641587846884030869589165654500232419503522159373815911610670056575612461387381578529874875607725412413712445919046275208365130935670109426034714227752162283643219854283884259531948983968483795890616264629347413301945058385698478760861232157103798040525292070607661830411925260222750690349433306411809749957515372811181908965087373752769099468496578374263861325276168641739980031575890243543404375735179265500807745012231852339091381680038035701067615849242252593450518873545702972358150312134568440963218916641320976505687729982174408091560624781422867473555151829511419988496031049514339381307927008814665122491041458177967395495643922981075406767131768916100169394679440770076509087738779072367443532411449660098963157734449409138553279970924434315589646550176901117894126967200012280890629311766419935481312258602933049600782217027220524853108754178225992865140469367838066254803102296761534537335876551337191976517661213633143300780987837761173195532805648448140702804110798926802124285049202894333130015618001112060249475913802664534278631579801708501428624478273574753172851412989086620217352052196418918133098044513991560579771203673214982825599229304102170079685706293740733024674814990416155065723641320034055172560618395916518270867345878068905538136437405353234949071921407352698656027663316979094650088141869405360777876491117810342174083577463337473325512734224168901756824935712859410309719678737947715429980148023972270881976859866382847520102119162925572734205375077018597504690002449350681955002381368934459823610043888743385923814363294882266660185956028106158526076012590306897953286327212024400433468145533158189640469010991053509383360072058688825153743592363714719470199280050469965596459045767909024883921548595614196212820673009523168457135849743312079305412176572087275799282841233972013820953753652501517203975154018454176602370871528305170216704291087670135550636930874295630064769310759269491619438203248556871270336371717124101415829927029178619057872621804484953091662592539160960100037713712507742665069954608397645946464476357402456003220409190308846930983462465392015691269055673794772965683303501472104246436362279774035354461191951826143325921099088589775099535691572110474154516788129580725519678382290086160097386223166919574913496437344404954700391819119725720750174859837146640331979861494092046870273856148852415348883404915668136636335203818183513141660291615417390955422519965225282221432359133273428090398151534910084312006894983196767458972754117520089014121139836081484473685736333115261141581672316116640821160476815627410203691959299194046350058255924359958758548026430552220247111004101856807798599785492691354133121339555772617381468293486383999531034057126253015264117918390598732574980297950248599669267033985827958529296914393923045901239970839642495507612547401967726555716100255837520418133024933558171055615770785255029110808535608521753103844248819815930164987031791352512578632077776989524257625371409483941514090993318127326724607498545274293280457555858938139301618467754379201268011769231473928111088041949974612293833577082293004006848329757010103772362073210189022109578074299512678381708747429481815920874220247169409517648119583466862093268355640162332902375517634638142355240728235272461637438488732978270978965753471846727550653814761145524189768983848561901945597590237028690923116870282325245566007402808368199724646464617583434816632139342080842077674626689345469416992148262619793895039378433418498838293810453522931116110591625208755089526099362890937058239552705157120725124258935589193971265353065490533200773621803972537918306148197149360296513597713445633675799745116683527064823451236667224925779916392055499198215259272427148904713164033058867313456353955011476376757051945901169376684371638348481964840382527732735238611173777263213356438721244510908777955616689316955182737736748142534990483564252609782029727985805776693633378001230962180606873680169386779791574400348254413770332065367510194326412105827803716937559031047985613816964271592975450372927285616610086542394309979953005176214427975816824070786215467104720684181446837854992725379081438075555141550373633575523231530429103439650453349658502433041581152719081302298251791909675830678785818609924520876151892162481093595604642009768261875584474566047059581627506125616266883026133622634916489596462292865250525097364734698239622564911038690981869135161548239724149242845225421178900468004557293095633346567206881884433690265431915428427470679336147223831950271680481231487294247968403584702696746318421529703239660190775097356887669402396249034506877247379306272024636586902203078485500141516163582864322811495592185135982811594912021368408773108811910819749004126631631655507243668137170989633042667486221560881183168329399520557175484389854920906328026652232740111201629891319444599590347396252372333866835174248986281229289715538172673290758390695315054303685892035970690429824617003851604702005749402106080384518655214731770807183733116148296376314701247324804152719942027858535084086826111562355311791055522998325792934737499863769091420380434611359506532229642846477533744300363695522700437023007292905078914842676889015287647691441180216924712140816450276922740684226274624241204132317179398897493287774973883258396498580532317346885700764920673118451668304426697126523050211612439631854501854250169855428996522283926473469727932742141938337158082510936689680955152359775034582391340063243077804090408778322665297537388014444548258480047451925988640168184129760969750248757370765691817266248503286786689762737047907621588667274118198955762551952203681616353005115330445333567762966787413285824971262512907542941007651535008550660006321460757811911913832954637814069594550989965011493726571911010311520941165613609172683042372082047811594167235951020007501145407596744027039636231122863941740610562979102455403725272589195391549380606443249223774442459411826073511873922226857677020685173731770114836822289113280090391204609616876058988542406103256027349815272097255598289321898331806454922241977051449891988699440502235798843529035794496163531594324131163344579481618073310836304114654448733308674636362643461539254599193751080811321096299932374118912773824840827471226221209011377430484103831718075040575317930188743479707546652399598302226226950857103795498761636458150629673532170644450409200357820393852339009964624133073419846865292430586497765976535211266601182408148481499493460865328242316163659710274568021954568541356386398251868621056568518524269785227415567163061992356035708789646771776127994500128961231658894255488405553010958277083325472684987920244853155227740187565518272605380879502920513240431419834729549818432455219360274289220605177009427172562788431803390426780139350497644367351439349606803028139318584546761213962349661214728984795547197073856524232996695524465378578467898538529302684496539692667014934259370454433610129429821309660516879564603268562157869619654668261792140630623806306083060301605785167037629905223540773315603681610356813726838668123512119138931316208332734726806048599799243060183436989868184487742737470982043773793004662689472703266516749318178134569102624922880280750646863361000683105649413257933070649113987512058387906937029032514488818517052087595314862783088450257931880422749204655908799960659281158140437366009191603124765200379925602891618717266895389632579160155765752798094619965194550833200960168254156223192175429502111696366727563735065023157297010596737258595381416357538433681182396962020206457994394328030525832662986522448511255757835767759005042523797401660810920374426576342768144964595683964175905362872050873912752710396421408710884509357621477562092335578460727382393516115089889052969104831604280878319368047262361025957728080642087826687924291841487351031226408772759119936191988977548944235550584101149286543442372915384540724585202318125073431337105354330852848332481412099698230675245785704455433935577520084665288034129101511803216660325098331397560350427072871129671488154095211947689976306093876616156890472846326392296610058664514454311604476410351917346471705491617410680226573710846608273285998948717775365549034494752934083695604948800571249067608765168349791505200027819534707995682597193073977679807511352209677201517147365141112863957852408051294361743525573113797778506262852225941788360949784442431151457545026241422962539761510657047635744563482040402897254359839016123511096980549057288979337065125781892302961608165600811965920165380322223713698012625087976478699068545961258509380098213056715168400507283633334831073104018850837631918839963510399667838516488768054365926597506787533379538179287772809926791985108224837416109097191605983536716716974527851858420050080680387035027762639605041426506214477942072082843079088039931639208855969736757903674609793174502556075164288059459437562488077017206403094692731056934385744380729302184867585350135450019472556822430150380669088325704486323329389679942920243693762300576916736342783047311298621435646552287285548979817401795300389764051353007235775481846475985323130238571856230502337437432557805261484026906069299613200896027142896300254101144121309502448297873955555698109897864656911778884113965709613577157320422064358555082304149991745320026784468667155272818178104947894188196716454338212884543194507467985881287310495397459599534350132130615480647460174122078779606878437961825248056145975107727407676930024979035531721704716168959106370395108271100178369474372601826675070286118749782646677953009810241987018199729974376630147006013395529799992369643294937282663393739949147641704911833979123286815532083600768236193596159740359504482472806647490349689329209651795466092961112472668422121130661550649865394256310535517859124326030084426717162603255014074770390757989988983507370869841257813308799033372908972009146144631619966008679252828237027017754112795261605375674958167209501651270843311019260238879959367797636094624001637445803108443682064321571666039110032882899448405087538484318601656909368741940337426899941921673677120014524090992805215207779256153973105998068420081496341474679278526199023668843366210757740665455679180972297620308980382543115343833978439748522795750697710297972977832363266381489020023262449838090751636064431829283182265159605896072084800509996991190499664928376339726817790563688657863697639051533397163685822725814691002341140710637451353057685132256191335987141868436119894351829274858116125962053031280680365899413194742527276005520436344437024529891042246408514712907473699192300203381603658266304557454082611685951850717054321337903879428270244041685881992806360689778297321780259307358394708066452270221749522231527771794301536189240052436625521488816837856427627162738580983820779229068312381350088815406034389927509023744479206383785183480722857058628178033658655219113913769133305356342829573882863420161798894502198382155306745228737415097610814672368437654270445055883391027179468566294045902283222076379430699803506926404309618537754260298881335253303430097656355216658770052103073537867380910102316251595397758927681079683084012145677762478849691250566403410152595535593067809366474048700899041709872683916439021729607011565386706707186279365918809850738564401498530806304655840568764286497116420752156990317866294657444841350584048570491857721457882837531944232033085963162856677984117491592763389026977328766717054368379654829381260029517317490720622470186493268626841073300084207292628281736105661193043219574147403901107956872713467358722841759665167955237628843905641791453689315371833502325385904512007760215449997668689748072239973256555825700811009912753977845039646701602169925082866526965196144532160388580217101540603483632840450669427499780304396639948649228236667020251840932640840268410676444570545727997824750693285885769738777240480951698106605559505667532416297360782692116490559354775912527211351704940494057576600288882747096392512997700230690440241540023953792508370399790887877023144369724612644348462443168687811218963550234938712095869674338888072233827937126197054743191882090905771651632098827166255407432238807072736033792439250675266898807395973631423400087547480370141341234633927979409356902183879711225476671680083171324992119894701130181451254818870033222091016130416152408614379968173758367165386989227050486549085621243508338746598178032502068534564981958119865370710614939871428828721482109917459828820162671111863897029223791301637899714022294890547079016914968079608867944145755121130489226733166503530795237893047031104795239499913779168600582757827840640941439870468545981987144791802810772568608422938063437684818526924082014055432902661224361634280168912843663251791417569549316614469858898755758899621240239096616702581344553814986884555044926650744545506769151603008219991005800509668204329690360044198650774710029033146916628293825306789154550118316300990513471333086872529804259238612555337512826206388008561558773739783296630506640005410677643381794955671715178456265966334992463032237430466695264148315483012296153715732983836603177877546587429102339145070648681464066439471370635954470775907441191776513585942146802935598902589821589415619021242867799225659696920525999661386256655201366515482612058107976682356454416096887283863273381699523595534005731044630545159806391762750823771046482541591449207409531588133778372621035534486994091971042369268149486633051956689701060853978327525906833657263954662372845835027347482152454370684171702231213384401271131643897180426155236288276382071763640544677063170682657439119620667528368529731692474430389537947200607921698620141704725647682384794289220193591940926165915318470993283246536619855936058800643174680309078991874453706878896716525534751477643484555524609322277305412416703095304596933181843297317580392898971077307439966147825837801795054517584274501285016983133427615134056471277135362714011100482175679936862779863155326386385461728865441576755454835030452332967072390390072144324356117299979932967430393500925886275547171672819591165460321363800663974064395960768684589066467778448590289980352261393621627123652996444989265780494401994188017165013784255336274790988534897538853415652392365710815902728483859449760266026372543093332645003790306887927518187692556286090116323801140897018715959401727816897608337499946007459763478490341052184250600522552946745867883864508453062082630097889188111978121817004145674926421068312097524687587267030318207295035940558300746575323602232055079269903534940285227398125892263844013227930819749555324910989297275248104203414771993357170726377674542692250953335138325210001802862048028914772156942758026916880490734537668098952120627952341928317962375567510445833374783750944155683572408298318758159709725638699916794550729054117121326488982556200478736393554709863897211288560201089392675805182397566225122194446888920143051590721101751297258489330139819273563178291046670712335016035386662405131633218901744737253968505095463071910655736570762777200300101075672764241407350490671538634825573299079945910761000117555210597897662516801240673043846638942636195862803165323437078949643176699493176772562618481962002124926368834689069210382624923455227498827408894639537539725921877733307378160150979276561133262109332110035002181211404153821496918822401233883624748954242927821032542154692087311792625872085801827966332291708119980695595205125811630466272448944435170790703605161485632506018806241869926326910020023917618532331415538235284456914305515840798102104774145430205373134225244928464974539772898250601420413966609885252223254405897054572392887825902459383278428594051009857519228691148981729478370305116542904616117887941740456087499357699997371783438955937781093035005706040943226532665300358756087269256016883893957493733231018136115711405806596554632056820841609681618112394446195033982201094430460387244853913852359683495666778180137581889088490385702282859900715343529831304665944378188851870505534532901765471623447725439571773207899745112488241374199141371862121630879530165497291028524549181572151451795480464263893340233660388332220355803514429080873389515287792300122885824989888633395206725621854465670795574576419752195553507920465499461120315205336186268118639210558333645791464242318925399286191485615808175297618938854717002205651874068924319041595747913722680522408365572798318134984960316211397504868740954690267272534980696054843541991348134132740435027720452672069323274580088608816913931097848934413649155044113933360487272514352846379663154090583122761794581063079871155778996547208312902711697578997689814997331303894635719269402904349482519818831745956747797508388931402226273759853998738390542843785859839407560699672246707824715543474384105272426104136017606151497185169488186749496860690740615967947734246983431034641185494001670682732786222184436266366927575070420221377057639662850577941303293256725468174140863328343932311567902338477762014223782170869247241685893641158306849783156131987284227986206858921972707360943207744735924858356635272639641590447503759021860994053453769991987305336220144518970635459125855105432900499122338923444424638725446208250106937259590916219572942695051780213779170071097324204875145255438655759939034568008910576386551339253314232239084508485183786478895066831457095871899097644941840254077236373991802003373502042207302249028934796302015717940669887818958739547206782045433507878200998937001076315114950037382719972687410887898913101908752424110107325959520734582496769286723800596863934894345529601850827087923844452609842822290279924848539538144416378383069811480207271010026362333344742973581320692670019666214811557213056265203112805729096586479103170872912996777629607572216474155522913055286520103377754818437030186118989421529751319508155971231391375351397546711668406647341161452220804237976394371900419462536292802232528085002753025810062330759921527928806906357041079185199058656104645662122251229515592883075630860284019376218760797687751232337330812784468307908681770647216541284519481176449253801174367736933706987607832413980278093083448405508473558501230495335425670348995829319886637735708625098390692963336136793273155999573161744477986304214346965931357053873601688315325470136895171983242470705224420571056331534854139808212866242576261303214178288832209936508531186288149132568027471034122339228013701318099993291214452053542759024034892828376041176943019705232851119975241020977805272060199445258683738970550761028218025439315002736594459983119637051524920647818988831476529788021370268539833196172244038090541665964916916637583321485546050494090126257457649888994704992988212117919575728632835780905472913295960344441655793726765148069813476520943089547489055187553702352990359815606056054347353856579220535847623430649619758637009714089696393249814757037796230594173301201877729742830182584019686464422070639080456219822426666074715217174503729124747957707953824986111513588408331856460427623735548843205619311249812448530886631731432453016316150090601354183806306449658965070224274503554421946153513436212954504784896116411629403944910555014469727087183526591723545151609331819544764337415260938838776646076934477639687641040242930271912422177534773323792629727049464001265550932240645477925513218384215459405446893454055338641750097864202498674899153041103193926652419649910180593260451267239219721322822183040363665897562467690013528513790609854536684558034900719370258306147030288338899793446504920688538552463510585179097204207639373630385244290847903470987447388596360929516387366658467607329317662694352837259431629059594646069178428597579452361687021705263803236061019184266830506381617761214875006989270461152908388824647190311905059089590280401655814546842667580264105226379086261082699785677086182842572930643547311276856453979274999445687403090470842677078518187243984176898562401622197561858966519282375945315545403144648725974510707242319804145873802432747128927448861745728151327211866336022092623021348591992022957596131105715502745763383758911184907580470937321488746287458977470027811740993087646789760682726966901545905485052532007548618385273878676505173892871172370481345166692361477066794473882866143552573643758512520493990763337181119924526699840281021009587017241866489757376004146934978829803388497177910965851630034939410918147676744986475402972366240021578756095021226899103392227409604897371263885645412786973865767250679927834171288771214158108040449391753201700851323939543757223870926522757926735358226218527714955670627836344145546693448392373262130395603429839601260795459546744727099534682139147839674538275759983945528836346017036432325880179987369244515561704939010088564884513266589687999346488034872377782036396257425700440269331745131813785114010051885307740017945263350247754734878839108092788167146665145725369967348976284180270480708903337709606149195047717291606983673945076219667399153624405649174546004986816118167695797020326763520143709291206810805315300616505495938184329959374856915891020065129793204078511203944016764506771240601445479617567239607473514987951305017474486270811161986084951621391086247120578818589707301833794898846552658883163117486698033126250615807242790879965783501800989021887813958404679731342923317078618543860780142542983364402560367353335933020295647307488253380381119037698090257042847476997175150301046603826906507414120100341190700520808810840786959608672617414402372639676527757272479297435410560960719570749198645402742240625933532154571472956200237355076189406153726743130771847844150584694056277102362997154097005445797577978544412023404500829190383095466508177295958939538161045400941432968089502127641928872318775290831502104566077679261492908229882986930429971065824886620634082063348704406763001981724618380107680892926880673258516891628389950964695238000387520205746058187322970464243591591296747554101600817341983641844395356933830457083543545855953341998876269387884696891172989961066024989375715692837613007200343152009250226978951782422157852212799876132988400896447502694969469864337072615412401920426723165965168310562649657690782183076967356916958061874415303806409402337466329965277301123183174803422647420567189329825576692132811783794764720973346222816775680135710285443054060253737687803211181686945828294643883616868991657654098534003906245958025325804830197271297690190617288672604199417638736824580364873225799231355142379112381893315534310836874903818378550522990225359793341924425409207692962049875852706969130330208797866158880769619632354969460730439487436175021218934877500221852882322097050045687657517493856062373608529827815541963473710925807699343748186584123980899626268987912390632999796055620307895574449061100366208461839288706107443790201618808593521285998069978826441683184960009603381652347758374735626481823636733597580006548836295484805417035232266745811923143083561508787660982085066489128507122385241484890622604426697657745970446656270489487072167335367509425278895851301175584306548483089488132625554170836664821631773587383275760511444617838175167986768178621337833960223331822301683583313663539065344753713563914035648610199979214159013075418088395008055997650726554565046964314416062327030771227873932174875790675108409679239296006022130543063280976951465888153171080896748910075702280512304269723326432550492009947050066786857816318465249242182287459031635309343970310051499665468377332509212172775963540524020876348920634998110758522225078225298881863309584180134018489234820472540734451745796046727210668490726015819999579376302029184353012809740847789980676055138195595903699369529458817708371958129057407845240744934196390439887005244373131500800515103109007364222081655371548382399398118621008826849363659125023073545772851486797999735040344284302743257115437723183630692918754047582434776377670119338105686480188258668589874532433841310227222098088645978415286853922975642331529670157426163063295855324697076233431286846270584669595523097677617764301328093195949622672039009315524838935473800166976017966471884156033799549947607979494379299152476454216105940752797093808240100083968413216362124773732229740850396588842093652025344329162210029213784505024169840202886170272587144980848680854655828754625686237771987500986229725501306047108377332781872247135157244787622960830901452601387837243127607194492246921420276743787318169406961462517476608627385139394923886927210031110696255461162836955321925833993659140004397065703018937419669467091662340807773321215427374887550164260691403066236415731970992915326083672802464540778203725619641958921776041675632974711672294236560318157157713287711493318989242165175297376516465079286933886316101362265251303722666600744475797412770889022331545370873792928443337673620684073617472975134275030780737797375149555138989386026374770444436270902045965737453441344907960138148462946555114304219924135567609059892538898946203492488302379486307024331384582985395758779086981272975266457113885147187717426960343891978358588277002512730472804127769170961182757143753099284025790518670741153339039937372907466626669304322874038574082734003803211409592184532935052059014852408369548245565098817495884163742203859879444205420270373899995383917762648282834709903537599742088054694154085843261675378784313929044619247984239638029604658849605421529376475253210817048196643683126574104562634713260788244518664349190031283156900769580020959703460925546753991162712701432710477397182174164366950411356917773317546900600435598864376542999444663899692513111299789100113175950418272228876251393631587279043402847909331378175911543664043708334733606789908718262251583341927349422522858086813600677386233359265292075238066818537089113826573108329632577378811970615078983721723916977493262412734153153541230018928378180569641281239013505259130358078496778884587469576641724183624016973052518504173287954611207523660488277647791744956958387627456721431020940075251974187291290244602697925135506930304998232022303653064345936724762307883577875457857190268265877524902113202268327597880544021597625736432199262443540986392992229549512296088139386599372904935197054270089797027073992748137362927610247514100666516054617764198901414190757219247497329606085396067287458676155640709590795103871299773525465648591089368167770563882835277898630010143142681753850767574747120209461722230633544488103780420906330615569495362713936468537882560301185205264716697099074182826070729615668630593136222329019876923082747156811708567983761123026044225187658441840816107637318672408812111216879939207377235980176254697298180918650779928023115110250888578517974533972288128722666689474489467295879895737768465855590455096009742099340791564594653571019978744142560190765455205828473642081900712061179158159641177108128458301282146845192415607804709114153126160942624540254472568716530205136940811813014340011908195815278790768140035753423719843878585793994060464314470782299390294255668595511878908063225712482977722363047084509712480699241689270755165038631229454384559145832029581428710761898671727073006158900256132692946369022560083397928332816927813685595346370917779178193273826077920524571889315897157274942799527526111215279336013651805231669216466475112769961260578210295364515765106206461184133237635355004837542036748491787582181619212739037194290197405548432294600558051131245550515646026262133144326669589444848553515258337822870365352740939778203330689521649660138349518635978113881501382246737273970926023764504282086261740043142120887912421920970434299767658739813388336370456518178074181618506816039988420562202409423594642445011157385950564432014845224196156383819399258234022539826340836776726487876596666130170046075173523133963465122791730854771592672592344430352781838935399680858346288869138500195932755263549106218961055773748686270212454101424688358313832457218019926988208251042097223672002371241182276125426381240815877769907897221555428977515216246990755441968130327781869274487481560158072429615903330719272871492508979110150737620846437414896592562336582281319399298987105246569936128751919279938940978147755954504709710026761263266748211069335064326107403614795695044008723019113843154828756701031000190992976310273290083717649265791679135439241633893742636998866554719443448856991498683944684884141408382450078353393356756050581223646042344881880466251386737603585889650602548657703383675333344319076466540378223959991532154221320831558089141401530497025096465319289259758034438553970089682591868911191828831278110818691557021484896389918126217625814123534033970373505751890169345938519574590029820549446887343020112070688490276523882310504247110495086857270472501297334465078811701041110688753552324411970888000971887984480129105764538978400937530942385104882954885807972334082369689599564363234747266782687014204102985119380848165704200063635569711557039724647361071980627905462702286611055248757088228342609009197590066003825318855697490195634295744266653805852530146062858476084215236132300835031899309160065183359295172365507895261040859589791744078989309679778726627600247220469367257412585621732809154960542733740215860257935682376761400607362962000053939238233831205019288821616698138849286191807169659550938090863667839167239693162939931039939603440997133531999037615388888151712190405301503203143973016463099298459914905658558210813961312570324077170428365602244188606870164085129194085459925372556840006434957235952914674949005838152748175195601210275147652211500251368908478463227285055070107727767702728543989042726259606029464764290121091229692983032977202903561956039581664357715716498872356277408360685924995125562524805157002432232372587220091039279426678947030451134516048849239000436029144141392124462541569818479653700744867568373094220409637094560740798396946332728380604282316810777801231632084222284992332226054553400175806281519961070063454795301427880639301846162282311976343738082838129033691183212130470954820654215770855481852538793437648540171125801368164095933917153383625134189003783272544823097310357670085047454461597648439839629243117646925608847054708458198236499126443931867654805944030147401536220550260359442752027348274391306651933290875734933286179394067726269891460149882910912474320013867715501495119300403247503416025778501019136293167116148253394148247313019429415767669894726599138953621760625070352236268706853593511035025841036043870597318076070225460371625174473422183606744034315164388220484303256344501594954280513783397436553783753820005816310123481556223629820424294598351363988660901298439456721592438732470713825739093746693152793962877339507261627485271359857284708816218977163345241097697963053534990640504284402484848967390107330822762854397932264068138209618369308821987004207889066822392341097419126586615150481084923217219474680029927853740922385692137995276027744733302465854410678232661379308774333213210498000182614011715871370365637337516956378145885612164305817478450806725974700187784291956373426848377942526222795561763650910848980231930147972674168196927685739024559208652829327875920030556776975464417951017104727568169280026792709223698530840542063123346895608033578559308470444229487361115076914792390106414464634756249174285021934934308910517814636244577836351923458556160941872129910582388047353547473812220470371338137635312228416903923306367351268660551963971693422343100180541716314808410981171918655343353644131776557910054686477317812656395632086335486525925349222960443605176439462946933948206427242766931138648505067375531247769887988264013395713425574919333762830083425183393945084318823663654299656554831078023399481664247649086022578498217659622598477112409478201751214547549158283595393230989935664109145432874223594737447127147160104529455969052675751808547625614645416651490882593770093761921342214432188417335787810143056329141063903204113290327531776894456291522187438803104061495472583360893434332814699031725045058174968553974568144298025633353861439374097565732390133055346591241914700894271272260486697192298777250923811996396814301823010742525669348144486848613703877876447024469946695797900867592437146383729046218990406423248211128441154991941611785515977578162250398136427299718384389904258124601699462989841805766595804103665585475735689726532459568642411854853615819697434037791306399208673852588209917044686282503047887566977023886699857619465267737992918754786482705048091946380038254658894644779520383057025140952302431824511524579023282173717039167239447411622575053198623047011712784578764846593479087302844481129651495965480345643541498747380217028894551908278813329760869873794915593076525010449058316951093774362220931022902217018395552734222545161981136443302270892324114001691839411229818739964623307327448458508048936767306573178941893390496492651979986568052011604938098344528929399729386963765846651911939703207748643484069019115148038887589552844504420834719282139597082540987468600304317234864512399441872311414099702796391116717952342230881139876715261544624256444806417493932908850253733211703350204554402580741800968651656008611951446622506495977089067713425920378275842432418145235821678176564571515870798381989910661954665799826040143673278386349972376834929936272949891187823757523526517706073833329307656545731565893322791010550784149351369587407313740893256235033840112159492257420504176665165685854022998790234347228199727248736226277462998884096736977819511237067433120390802531485128135684256087083140558503482170536145132920314563223845908518405530811920533829165445010198955836601868363260419969096678967462733254562586308194343233345062034304889808054723450341996776674901990933548549487603360907741925752261132655260565835244717667258391776052693322251538478123700876078443861098177736787880960959745028296476881191757613387736810920491955558141724373338978856981763964805934271894973881526257859230481021202089900663293697296028513609400788859735658173971863760826880435476166200884195828850978807255142352343560849820477375093426338064899525332797523609302244354228507019573107054021611042082260328819611726786637070732280817836942405377119677015994866425389281953622715899675387739639143603879810892762472225543453442570389195336871024299395070172232302754752824331737542085905115545044829251997950889195370305270239742093666290797251829537281087434531523739790687970347337717002733889578528035885131782622741934476485190929825414979762034872107084678866327938815207438004958490637028618444066148935974511776593992485144339017955127335280021795900309592490569050070637286838372867673883390898131248225991414023011507864704812401280915824109477796324820565229859962492372247430228940551892785880009106893462373266450224978727516742095427348029334144572667285446010224630594390672657516196828511129297430166047118671687534086315058608404722555604144547552253071251268778219761957737493828867499441081128351048590390096795573721849924643148649505046293962547459688548150204454900853067479171567030797431137430964924014744431896476260680666117437650250285871516504293001401726548160706518261142235442954237676825942042838689880369354520440235351242609392376896692093062113662677083315568622697556345873860126668826420720602828655651935534176507734629473875683447719157825467793709502521662400530498371849101972141820884496399279806926158027715753281179550492231252521468177129761176441308457436358048911205488958445637540320440133547428177758930561712807474821358936773101141440644013426699556983418842958522588407934147699090788509405731172520654544161093066303090624138736359429560062578540157844449050780711591004168157204853972672412605302140323809106725964114442511743863859282977678763110343770313941347926511629201376131031570103990090653971110279016128511663136744183865622286189884234087821529351160301962492471011257407202423715857936722921129893629731637333754483160064252503716043396142491688864506438166547939124810885023461397080420826839234860544226966368551658152981609300487249258321148316150129443744583944171501079114338983674869476278782076793602461335848709122639425073684322213957943776305408279548338085886261045041306978059760301137572649626156523914406021504870102315426321535122092450897709045762378401714501172039397585655833159352311795681274412706252786644070595900114803653130346964601189392550698848307461930859483584029848996117027433480022686991282499067147991702328027914465537144552915043731995813414743712986585943699902828677992927325099516060654978596139980808423482989526805780884375268970406462883557893767478999246033934093813782793108291896733566835689284280059921155479073217366145271765620617487700421123410443640171093049880198105697153290069740673537741584564127084675429968489040995830771908455556418152274252948375400865054900970857070792152827260894546187864999699334913160448963239982502579630869111673454605002268372753737755713499872901974619928853094084769977207474983854880058664355976185896748953069116925139293137355944402497542439733171977050468133949104466627357932146510413404667014725391633498729518833197588342120886773846916956056209531385041733905951105018079167506317381326695628412545215197083246329811913519916286560639574533301691283247447945400249096246709669130991750652062188481194987698999513800537600575163834901794968911714947252689718475534530101439905254242354387219460811161096159530654029620155850884797012367679148237049177674119002973303235830733151441019875078796647821810017230599677529870773147980529673479637317005993560801327046476780349937443724994382846810736741950052603999996244006501576835133967254280915359482870585358691839394167293468269495126990069307718030284698782210104625650168104171827174007778469990701605614824102229330510824906046219066740366208662701405630931307319034387620696984052851518809047479097198740741112749219703075063818660228455245542203301456656093269224170261199610468451089238783558415654829354674887422240092255986829779057030268741322382958783548504753813442235112184674606160996023033868669592463326354265651147838823495826526218854729139054782657055545454821411382889116196631615244781058547366684018236276855849897917912241823396910170115117762955985705815374626584916866119275000760563158688462310897734229007488190312615868728149159166990097160974078837350789495011115412375827433788002003425732880801372897930841270044946554385889755667340808784261847415469886489596687671664154587940425131229936597118523854538984605097683306918238388682336070490016076162527968537019069084706437870795797937404733501623821426820816392152117872044796278401362219580888590989743480925240986966618625652351390576826445679035147797719094829157604589245544228311391487835708798357685545625346617437181291309666875373340048897088834106827854510897758694610770940829337095169513172256909508331023330186843351976849803780231336002173094369068085569505139517291017907923301097643824482000607640034333790130164759263201940929984943043027081446404578173524765747177480763381175645868729791496091620966925714759693215741001435765954034217622416860045013744082375466229567580587056067428893576835146146253257924955503481941826827991276560887754264243199357494429465677105373788226960720041594097690872113256720134432225409942321875278923663527153593008858590656484357644831664162589159049842182340859908592624964662563235309383104437702647490739697052408033477296864430394718766936296069230273397197999876958922599422586955441386961676422290905573463358847262752638006270475230663019329672416283930789481145503792873642493099192456825626425219941025839703190024541685341148708555174492290836134655019719903804465737804421858721047005506360631170981465002929887098579714885854660916765762894133792285501447719143093231325877130845960590922970344520296807723244811331098562422340829363294452273319142400247749501825965402137341294182252469482099302936539302776228674539074287209017665662017225758037314100749756901337045339932773497079223541308141404427052080174239199324082826359896412956073764327850016221676092029782864659209290861669115616214223118690619062270148118284811813314969641656830795023957569179723932410845229938575226092241222993294802103607043124701098640588715172842275999926709417795939635946124964646523761566741835182554985771614858963157143835324705129663869532745949125711013665229271770244155497729868291958836126348013554548346523340998615797688419131158147731439270902632738884191965780573585707678617338988095166269416131031770946807926103387625610390976404142568680026746595407317439774153074619201670078426390221312168546210927767370965371748869715000846648649389572016240761161959351076784980349457896621209589898125742740081890701133805445426442410139418467769488756261703519505377149467038672754578293422908883149820978471522721119754907796614769903470815161047064330643020604578171357441516136022455617253284166831685167926025860857885964619357466609990368898417677775163602805749530861034628641315239436216801333574147940482275356902069599295432766343641447386408007776608965306446503253256159021400608570651404727572388715427285004691110483267159199916340547185219540275663148006369112867004133980248359668637769106410457830761180229030060212104616767139392824366742935643726584322433421015361782129963824753809736201715310174863287953070081438741042508573034896384211131406306919528519239138891472104118722690434905627963560501654476218882536922639532644179405444378748009567868354671421263742682477006939334786812995518519582793443727243450761905388252869432451982173019989317097665737857257651890020907513122449922580483796361671727831717395316656135018805042581322659179281698226394631729968577065927603233819846887310634212239921571074099787163562876470201243026995689914768747452285901866473471292429145145243097158558366260772743356017443831735490423093817395638609815242579235021605600833365332735869589381337144432449435773089207907070184774304484619333381401795165843432143682579066152516556459433720565235067823575826725145238337906902909822383963437237772771660980456153907656862309136232315575490860007009781394865568065407161109904997152589994335396395305730827707313292810448244096750320723831905901736602117239669729950751696098200605167370953956792410740587506294871354533827603071270855824491688873676431937074962107537719210585973841334633148891040728862589869452955124677801747329583472138076458129935627313163482455394654063526657013788858376677568189268178522333021073134204661888814041000081127973168663194916220530507104721659460109071288478797963062138629688478959754461358103215993170610192815583167517385167601717074647599992925211459782763159468008208819103487244931991574628733028129313186454221565432105190614574374116190169048102276637783248625138518106285032970289232973618686850744185304730858653320881154563383068812267349104887438127013202220712322756751604360992140804449928877024336908504247605679517566338014506387328313712398825153158845783312728266157830922014978324052939074571215969963842035263129617009290248133029957138925462956314390423765132001698054249131058066051271361281849590274002231005147287061514162876018560065206501969656586626417728021322702071297600190707458122167113371221096514086004898305824968206005715297353553853693284404172665948331721745762024637783023589940032470761449431244084401229790628333442074060030098231615495252619910369436766046473353486762292024982154229866154270668498477201662416746597138572864844711901516828607889791459160667787810701111866997924021416693172342063038953298806102231776116839686438014552357187492521786612136635651778422280898717731090036492148979561137875592707248912016118431279249517273710401607292079569259002039125805845622255424519278111380115806356933355542087266737867694049950051590580970403073576857393000106533104925886800924559255284120337026687226454169672997959094110738252140491243723640603777209268636279379846468223728488920034290942757186631809428979669651551835217803822794681653897539578682565604448840885290509807504378866131542183100138658880011934487800987785495888019452251641106223563384001103336481189597410685764633266384898297987084154810693990689461309815069568796050292828368463577417954966134077910237085402710779759686893986184720125666134536884984667585813517081713765685629535039379813273697633935796099166849454845715303910491370448301210100836131383779835367904539989111293772578952107591616665819624185018082700018820843986611640648964712987375568083461380685491134581341891575790922491252227739098692691842620740000118493694825169747409052564533835292320147751643584882358195068895981190845127044762338402604540353628824360510401872491166875116044223533928810977313245399738686838746229468590890493320219128769840936931216740882925539897105760621260590838322676558265443887696495664348892608072084569175216893568789752752257440822761811369644842320846931261928776277125732476391706009387286970330803018031447339727150469464023546578456465283769929120938377663225638873108422036905129946118817707649992618324003667415253409520633834443019048619769252736963166745473876576554115425292880570114455400953979331490387821096124800044436543413843913488734483447128841212370649129502576553078720385901765651752457059880156232431140222479917579439738111171042818869801142354411466721794024848675479109424203531591159305673667997490516165903983865448085497922936647949011103806009831368397590126013293213967558071021884605268804363189833082088718516536591853722884381041951144008114918319981735660722740438127395294392840135746220327837914830460948034883577177995571842283557338544735229828419216493457192116040303235865931586876226999819921410727753525191077808798682499721244193454904564479027582924379316121922418497370672170368060802091580146137231260771541042348803163130504345607930497291279515602528461539346427051964003932026002480353130777847261299196226979794789440474154534225362442609293700437684782540174025270314114379866029263921126177199297567706551465332970244109064297792502021235194695618503499569508727891914998067892551828338461407148493453280072264236969385887281689849843182124070595758815544939958189806971432218071039485640417473174768606359466774090469966345033734842865723479511215533013607684462329740274518643971171194445981600771557771209217371967703994109260309956636873431089642435544674279954475476661688735347045035078972026820563276154121184859169103235312026211076304787737292709854455467590254050179985305051048438121674655611788946355817270858744596780011936437217136967643950822040924649658805073003152281847514128903501500969000725108318116430385172671867004473432281967198594905529734980833730866213269203804775464383013253537996034113820244705728004810575795359142797653464179360649693016434290941614225115004070656612245761421161776694302473429536704055735707392970574164633209177509651996296545284612014164308148833709275926052638643926832124239386404923864083370304508469259115264203482977267994961522692113122923685028188050845863715244255908091230657706471339609133737703660686099670113536305352505476891719808047140480889091405136673192013796083502820148523643116981633973478837234532119101757630681888449373759727040725825374090519463473996454231396257987713502005732450524841942761766272266525425882235683309412705423898155795631574809156985284740446983133864288764018232722130624353105788726246146354592897665781650805926041260294748721172275634524931995624971052683938017328172822512838964525794295160686589268827686240874868806289724376272742063496291271120709510066715951226333077929566750885945363163436945558004788670709370027714708915506497871788859748234722291107828108618140806512237189220805803951174331988851765418118226471917634566223156551517791545847791490082401176873969061501097579548864003993026147213864375218191317370360460920892099260433494750894755355531842201843729439463115071164971672001523580526218756871839806199517984187373403137480445538576988102091428958063372207029089062088064366180413351612541817081497003176337782015636530501156483120079375478541704717704463649000888059555837590355104567708023470399025021088958023762304554149859117965983832542090564202449719951666333896055553926930254954014710008035093077120386750091187598587482915929872153847159871210055858904676371927094439325193030847737912346026087412933676434854899318937575356858451041150918181918600585102369412139434454611181572476954675323366792101717083020592890652422143563964226541639754140060633943916732022515165290017586761954882998572373356390234931006546600061110505512422620619366302682792699626456146713716499175656286324454219747039478599279360791911972771126841545118872967183077362709409146590715600002438826918046041755701130592342802244206310528244522605859719300223601626010788694879874945504202390593712786047115813679411989769385999893942045151391205183826767735458789431667162103567837162672638900736686108994156835060630788539731570949497402454972825972316813136384584788706753961745250324774926173923320962349619715088376410065040272809600141957068171104729248127262795559413513129336576740485351503771603496867763357443922790649718084415414072942634714580479194475173521105503509983357950195868846415364946380360358018000998206706821639709958550752051905126430698626995160944487657970893797669920732041019410751053811159348892425444495088605115987259961762088238949443258310048952373150568428184732265098534633653286685997838573748286832783224055449722586769300449906467831518882146352818652461110949674428901728413768107467524052016112404095333974046699677226666481173172256101909246082853996967470776602625309827865825894920266069496017800263604017663047573587066524627467206416987183355229476582584206215538672190506588004213445815117953880033691807918115747462984542372015177345055694444608258140526612879122298689024746680525576739844763842962340675943416594231021655564562723791833707902114294746122475460095968290885651644324680694540980029994153674203805108782582253704497893635163382096294150983625204665802323608699643981240686378369999719332351154600136844461972964208503112864157930334582862797803585465239481398461226592454936007698625643329437154750225376112945709140333504068705587376923763996442010942131549612420136119289179844601366307343671087200210859539810007784192092789714217236876993784877937982076488081063733559492517186764310262177715203712111950742168739740950894736272036432649540564166554059173304512486924848796462131126784238355280257772292810195133652436616411316540832487497495140359813643437322098394040797476429244749468358434192112357422930240875096524615772473403051148394416610051357839277133029205566873335947818632463869969970687409780041425313345893812502180783512906757319310657521190220738755688323494399365249798794724179949511205195114669079210804786733329639892899325209560786947474014904712740323886142497790653635160543672284881889486104779603805773268255896357844923590834400435216852652707026854694948700317585784690220955761337556531141512537952469029906337838326101820432926303688622731371977005502977292291670657417271953228925219992712919715406063697700792556299838784443522023875994549187565336794730730793473262778122176189756706298276652605633839423255907428185863599235648828439050460633020264863161497553266493532212514842634914775850936545712478009637992852673724589644860382441594946369156168900034798851460266304137447659801493984024542367241245886364431160403202292670571215595780072359572567596833351243216155687782425361272980046406881307884090518293600706924389727239826509301186527705768452663826927146724315345831747724811687220074036804365563097593705446470070726006102615655630581370793496922090292907943036637550954241725331257486719138716303317972136414559720925297396441201371765287495134078710364140258618311919281225485489555846476084124997586594654711544797153006985915719568132794956764305030704716984929399987924057363633445461097589911230913858367081057689825911264053743512215445901063796566878192535182148928107625203469696011992628138332663702706662902632041350058226790921609014863271980711414900013290035451964796825770722118620330785151457576799738555228728769214753281191013566592392952658695320952014894628919811660619810368976526390139758198062874479345057742317717613299769991325572626906577618356274306267294185072463228841667494905876544286100469047938989770853051898145876000837516715864328017041644957636443329415885628232577057560836561102171999665766825636657710553284928253952747086542932886744380378175775662254175624676929664579769045000364893902045814525054459286609099237601884108552570375263417714663090637685688124204434205252330500707418517321826160715201537546392842936428391374192470274518568078091315615956471428259073687299704185369708493507582490321323295091080595472039274469019356218021346817394302500508645767697508278554646767006971871551768687464446444146079992369494010366605983500710342286760240365463321722363939072913291958003362107061425266601741263139745103041746816340141877541063939910037258764535528501011906583587458866991532541025889549679329722740987952738106763709528894967961136845466552025177702841901184383452518501953594511248306320038581098769752836761519259803933588788514343278538487480720138075978835582860441419294347583989085373988282745597955036622077031902709350352827150321282634723013945685070468238030811154339064408968223271146082735082120661056775918090384119395353982148625951281113922972858204753180078076768000315218773867221049298673430573189333029272573461390473666631882486733910744335206628000307551195881114264859812211628078254430171226717588952236748017008111427888832105329808070635385211622788199782987261426083866820488132614792085294710924344178987566773961194716953322724631157681051626439723414421398628307143848300621906547894356755193492226413668639528052335312418580362017747127271850209141716888480516222932109902325994757594538613230549551695908055417605868776156025714411612225125195530883611613078814241571722602826325507374658060413443695082268408469104686150269432702389009901835298132023229629404498361837726118158567882649994074851578597917768696607444037527102795142813357877672762002667624285685397461589196223956905382143511717708727479139758181512875198910802070322449631961229631128948895237169862125636949827950545373985919357556280005464558085252447157373578586180450760673729746044212452578044156908034930922190970119262188051266201164359704923437520671529183829847397551945434245438413621475105474943356568672594469922902494791107260576271822186655545164857058565894660532874216210378444828307902643592735196073007209490699457815468003890520661237968674775896186217145939650817689428610977132542474258033826312395773295026596330559361762878615412489685309261531881101454652247722431142466591330822961184473306326228936693969416769960121648304897900206617496864431635991490838689176758730479078122511218980762311703726171058651383390058428021690012271298559620349909659340678438408327633453889907613530132240851548735572451767601739793858977776848097622379263353590705681853772496037037805191134208335470911185024059501084399285208669276250371607602719888697953460608882770230253519339751788112538435131535841531901840789820490138455689791809572142683234850099492345063420229084802608831231207171122797547397980331845389727155855362421266386417684734477685295388475913815026058957484756346978960376622923605331137122191868701889064165515495234111944565834534296459558515219973473194985058900030595515532771489314615943846237258549134158456274956255257719320725168148137836470064088244019614343624150406201631524170240578126174008602171854456885272316901160286786258219855478383254952421474117112633721014917642578700489157905220986759716658654335724640069079905801274653048461653794301044878236946522677467491297675623079510039588084682292134934286435367932833066687654073278083735051135431856938107157159064940457325051145336729835636612871695789450876805947421522715626177068540242261551864052602283103370615643875524794383588227688584531045697883548945417816055260353782531557074038236351222069808011934990975325877184866738764427934658171855140075252330474596945525471770093734349781314699383732174996371957124795994408943713941871434655076883381849410130248668184537364421125536182333830305323449180006515463642963083588240582347003344254858022976565964852105973397401918880944697185973182339294455200278854461890070409658426374795471646462850938603274063031048617194557628498054718706468188432285050581709511655174105580365188583396209904922980157706306173719729990178424289393688297047534283165512444976450334509020175890490784887756624731078556895474227425889771550213184285777590518188079372445407867141642760570413529758075916580546846234345826150209148533753668008669192741392737910608584724523155909077309664098197508964169991302763879368808283944116853113696671873589212934553869784983331267674544020554692764731640006239757147011732831339487000628043244688304167352531653146709712006944450373993863152868945194881693839839597173515689464527194984097688603486851301869986346181544517164275734379098107547387889127634845937784290388201072296622593659395165467175595314172650282391541040161885332045667965956069392599438502299610364460176307836337689872662358413811631985763893696011201534181666402943363105801627643661956691980328141432348956090058122723112620767083105469424933700178558989218884830767976681746559993647930615571586990540894755060417723321069059601851814569949328693954763741038397642354436746257162131813788016582244633249403713938325478713129900611133192858206400823192985750437336903902069132826080755695955574429469234654780536783348819108305430116898393507972499385978619444468797564592804459792530659511067766663642374575731748287493296661412263474711705615097088323258956544295138777132430852341006645623732677480061156209889425465686718734120826205832928597339027013602726797346168455626093225345121135486676935233452968222390964696803112650735837683886437679687000882729581776013916433381994492837059033851317646411207182971085072772330742618152809754945206610134694948043118669849153044228087438727132292413765080499363979291085210677993090726610921728903665771992328661112740859635322477970264154839600063255340036607003935944449698046978440269818326011510015790444892888794154953586641366309680826886618257280916055254424926904684012640914905882319794026719682109196145267873890480173768731981525257610027756816443263727418196224742211349211100943359419960225665223465171571959455323900834227703603002952016819019001919656020277470125304360923008725628595852527846968124042764018511801457665091343766527447881598740366465624617996514687655585796294181959014282333157358434284675566269875161254620946795660654124686494174173082086060096214237956119725405919885028400724974185237744695757939841633589333081327611512719573303151615923691104895936740889691897190483666406934536554448867987389854777804319479567975582187131915772821586651201787867109610214550099174715796864951079218935539376724983880238244985702027369535207187649524733631779654252734594691358298548231173362956461284109715033564749318198452997673011875476342772882181361863780175578560190886658549529192175333844710294968464942230622992134415192990779451475889380193590764093491641469037012761288580613736514254651714462307466872453619730258120472814343083780099900831330747881368518029039819877361754570956236700025819120042705398069949377789961183212893208907668175168808697022780995465482418063962014791253098073489737107834527580555526645898146873800831305081530448781119410893139452028082947471204439465873320010705106823233667360015614477934940904104314026293151842201282431025537648118627881368957549131634809495518691229588941185610746285599205941061916061832133482484531707125003436716267924595362413941952678108853646668070253000489947327097833601622850389852616312427579163868603243665892875485000725676893305305877350287785098432061774364489243636882883527703363782058248102151834783108397365941937309250422474730336187443118196872272578446814130690085257525743119299425936066843667555090361062646666248900296361054433414439633601028449851782405184466630492693998579171941254813480702249352207812114637283396180861689475684690408179097573016004682102497329689192475138867579223377693304235964213193707597728337671952629878099396612870492830539426249171566597875274091661630860345239670158672847561924916875431804211683381744790500369951441790726583860637615174965693329971626977258568583781757855526398973251503054241706831427448205239464872016608247909005121213528138138791826060827070073929726040595381119063158367486168589228863006734899051142730875391400307343576728553466304226575099094686963216393042444282129966062115075643385773095453038133377310472201176542854548708180734870025834403713771088992559571638723751401377021672331728138763624196392124005226490219578391314511855836350750090656793955212294596684373315581932517971911729447926190196400350114029651754715610418439909180462118282555168363316047159440698761764692107856622662294794244147539978583396718068246279805253037678022818958131914633711775729416926540953516041422355860457170025815630908322774318297966369669110059836395744353202500835186981906936952490474567771440130293465005180566979252603206336337994672851368744862476644428509607630862381356090483471533383557469062326535254984996619339745074753502836158994586018389531460437221613829041917799297664549807558388915224775365652831724722364049576039929407848914394928251452302631323315133211694504969572849296707633049642348431217512493492458393694254890288146577765654376217855938571086387866781736924121430087203027346675952464428160241706984235531331238902939260738371647907415514503202184608127554892248371522559041063369052749036858053724977589189092735746949897721542339503922614615228740553591262556445225465992164290210789026115249988301007750745641154333301249104283407958163529807347897391357482546402367027707806281229237695596924730775827197032716586019128320140503178364313161337749048769939643310525048215640981565971805936208099430082015443665624845847712554883615627443576670965869576844910629667819636776020832809716629707898577445180790916044456674304806061671684883833855388412647579020370442294984637084505004264513627682186044048149971200285742806407133231090766356809878653325088820905080214911119506067862097648607392390073490688371794993269138610829899356584933868155057504635121724629989511117465523097628531209427764996799635958488828461134234619317586928419184072752485477917629020882843711576192403630458957649151764637598883547128255078062464572274735339613712131527212470015068144913944668101820495910815251650145388340452376491921474971289699634450222849560510851585512908060809150223284046187322063914528778810578115451559361002562934487273566529736556803295159484637341920672221697184847803514871517163976244576112563755113509016078290663080370607514609819358462692351946150697145901642621083594806378221112184827606935559173499530330934207696334789966139367164459615236946975492864539201952006893099583448999953708945354658900194978728433484009805755949248191902683209848325557201179671481600659244826623190658755944227046019378643242623075933909095678243298229596528458330829809124467680180045473341132228332092122576617595671283879747610676225728702987469566147676663465615706514138130157872329368889065536295782928192210466436568955264720362919260391623051590845007656266543751774596759419983092561177659997591720742697851052298943244275197972116889252678052740629254523816654787647371254016403553961801640562719975219967107046803855071535988899126309832434667573473747563583429915514752744399967976293085915757357436014096177439676680345594342916314989683975317025748351890174495659973567905455060472115694595585383240957570706174615381852899318322335914042661244416634573143853616335634873887398171239557869245472221031149762391173242527518627369750486412937502739110488642624713778820576304008939813203223314637698279291793860606036723146084638026843162261811213505515001317712681489176088373778868464895257368155300305413420937499864843737826493436932582170634884183641926864244467567688304233144587994760802103995187233037757194142816376347090285948820407955602029911888995879286455967037642257201730744361943854602454525451228339448445798526777050911481558215245835645094927495817272278951063576836446664434800784767404389314333262061252123329058132968885934716299439064151443749807550482089591929704614132302269177154624997690912430677502884707878776257222112652497985359178693132746803818867000811627688962150449125841236667322993195466254719833553121043859294403676468162622359558948455946553841135779645533134472028016193359999362157922291600241489681645533297780003531638963430913981944351221747851143089559939727371108590896623941954564213859543148364808500136769723450424955972918254487763354468210370021490812792542067862675197393503216810673486710873058691663931196580072994566391936459973266511635960953755059544626283332461309800185838693892525314899954030738218598183213236864809799675888178672786221579983119757003004066677216131840953746125987479674431329646310318335134115631394464589955499426516429369278504180991646555080756563487491607279887108349111971398173087323142667475265436411803209923234610665423765876929204061652202006302665186858436794145105416877769063491827398553929824288735056554594157350290160492179421533432889656159848207638406306132417341686736863588946570584667106336605015395476044924680121843293715409209812911004717435733517160636105691181316663701831358278160245665561328496689501882895699422477011738255154769117532770960076522554349579888346472180040921629334504301365383430071935062017882094521724238451550827657459425494597386403789703517951997997892475683190922628179778807573461155213149757538963709954880285997329223478732914687945476419994003351211672032163774198404743902707876735258331852898505876223726495116524938345815728329399877272871949114863550153258436674311297481983830243704746462287869246312562893744743599242488502022956951336143025400433222310241853092769041516669093258917658214077813889554420068965615624189884677851349110821221799012408160175314873518411321302439526848421825322737793674349073821201280943477917407418719952231757331877239799131870705628856987493553541288988173554794327005871390475381689503925831768399775440553896828161924349633605032217632500412249324531036221113978313262421323817790954678925692689425013697656346307946980861206767618312817184035013227799848065080534784109478650990967242667468404984006437214800099419266826649700033726166130653435472143171326578102968462304963077763793327318437885496128930678708901355037424624956671033598262287608340242282951750225981897710294652286688674031365247138695227986487211428963937768321691298721896549829142283482846814778794702476653705098306094142880408217588842965298520756833256244305895651454786821533625510147785077808405856425951551623047092718924211069253421519615805477888949645398371799693136579763439126036062982806891529190215785073357572206949905410619837267745778216713180506087751746996514482155671422196241151116052138983687456764710039235996558993968256342175233591052455330253840433619973711742896428846183276997696442889658382136873334011941396478254825505025528630961134693318182480250718594931362157013411310013732917936588121988890606626792944858910605141053064807758917615801166020596158545837239372890817538905080270038177245714626793831278462116237437244328657504421979107160414391934069097498732707196498070312222030772415475598331425262472170889929453997797827719583043287882282100137739707704114102560116948583744916993820322750734164298534593147157531922561699655322378254944206165390604133712080965197305678894745793629257998300991131755896039398625567397582417900012375165155856334513903674073803199118662583433134625067923055938124119186265924685053430267609100443339960939855220475765984696333972586941727430853800157575149146972985934871002024328479552450925774525993594006253232582593887893178498232816614120223752877025902189663548066425379272529549352220693453642657979856217746383837482528095936340086641243538913587940604765481874509877265361075596581624422923137793138539452808137728119476232291796511654497624715638299437923445644487931522359927789443300601007237496738467031256255422057740206698627501904219484293638713017842774583728822221414092229561588460470610413730332762882118595056350141111114953413682499205287249949865143967552966868668674183137646556560776876907890887025667677911514186034013165584712597401646501651715397846140109899717999786364789798799597919724398133993255233141015049313840757501416387280295356642973428270118371071505114162229212913381290661564928067361251087193040486346798333275956693371536544039016672974100757854363118662863793335988956307993522379732439954979586968245558911208516154628708872508814225732273379689259787158939160659192036641902074310329885635566083255589435394149690813769971564292456759078884474875206434313392294107369936732584697726270146971666577204898618051055828402942227157374190799485281297504245042452180817582452644842716043137334513005373072025385028480172840168483942587709583482221572638477134997742295012364740370631950666756703380852732178942050720953016453020878441282592297428151799069633577750116490003087275052748638564492313722990941968462475487249087220258994680594677014898421817127758946411702255264468167203728015757060138013187662108124650064271448864297967772793137792947548718525034317499347049239933968088180854755486682068553627019589196396138879588154062372876532549852202161321702517014324161575745462477837144871427025244445752814354551786125768484553095781906412170953886052226979603696952402236189125556652179080105047005224217089103470392943661459072936234221828154259142023567455207977058661529346621917737513738503235729852809977513818289932649628995443822109656838735055485921971986212935732186440831265984428754072253370773309515560809649494054284450508229498945644251724554008927096901378165014287302693386044757947558158232172793905606857788769461284804677223159097421152700719365310107817988197900895485157319906545248220081120342512038382052954134108415718631630190788583758966082461463267876923581495018526039373252916449004429875674956663961783740538306093321957538728852564861781352312769218443930723974444308049455689945248845250536702807249201290090144653965632591086614414249765282572273232581563689823182716841372686227666638948417011809025056150393984902699057403676875591894921676407548205811305707151067905553575335838339453804215986300209674674228308647653970626839554980460245184312904691733749357013198003367622639044326700687130720011751719228595619676952308092154707590444675275354126404823016404965415642072783907420690161166597714467367742832422451265764005398985311496887116315243930315723037838551185065367717735479983337068843512283399815413610321566834101254347529721980955701131097388925971772687516536467632009064484083134092492550812524605534482062115050882710673989322399616573258497470342211962529341674468809875305480601804231324727322870829673715641968414378220662489147973461192993792001352410713909321167039876222731240871940254703915713436522556468337867394749400167886175121326106985397535906707038578748011671585012961714205544525241580497576546349589558859055483122366010953504427156928257169446614514698854975114354251741678349245086366115974498219628226430527171051051519485735314925539843092604648278978074336091592616812818955100672236575409763857434694217312149415758875609709757437105192819275681575951974938004540961899075624011518930003600436652641593997165179271381045176268886319637737187012276150432829428929989517847378274270492411460432965233206641949380829196419213159514996728912472777019333600443829299627261696148220664065144830758634767514416496292850388347788681258123136543883685841408422448137202240068994150983695088734198252369633109732391610091381126271187194578097621890991074603417921935609501977436292899536715987533943207775970822601872823573653007375251001293090145105996814181476674769815309942689993409250583083826951898932638162771167642554327064116621801190023847864534974605447462438198741674724481156338604098650822080116923289038382769604567369892923487703473532900682402608381623332048080480039427742437388095080190636741546784630106309701791460248262218741796397383046248274062724658526766653911039655425718793826600260449466935206989618473159349455918770484098367609135232365729008074911287917034336363913202427720638416215615451362044033969112555149626620154774525653512044966249132384193501287035958147505311559707087298600205642629284236419799339823456531029013303699071035777057472507551438305424511837970382873440364501720987535713939046003038876855885264456975135173518772924712956871905473728068678733435246902381404947845612769176563998945015855060568421270873237935450648953940215286137978999108540995095128074361727418331113086812974340040821845804042944228825899813046915448580349222139286832614855951238643331140129938890451767235194834030398535153142280292855771802167832240617234971868552871125166258741842080790465680027042423260251296510422103887781000772535971647759074398263327513309749134222419751568224401197408594736774895872959244824020792252867218838661603752069773828454807647925150043494852364651860831187759724812106881670727445686203618314264274158771242039356346057209858791833513668527009730994963059071081554355258459005900763247994479062111256428622519332037557660964260266816692744609681212764493054822790122757370924655796267476110561124125166856805593947162485932028128085473477415754599357629870263401167422963483575401399239871426389517543870998555320733326517292706044851436577423561128847604746089955319890830601815047873172064490121963568806458165709644902147840140450054966299990494231811596047391648401206722271827314244716240674738944742843273216970023959531081371167725908572676093707690068375007073677834445674497446962762711198638327137129853165090977361710113634839684516094059169008663978868052095751795804418290292419009941882812152801465164451621251035647472850685581881266151205756213473595192729944836431069328168194020432754251929480377880965892936403088121991045322471262105515425233085617721523144688359657667471843887522564238742877890763398989163607419355572188558281947908896855797090562925207535866249274462894065086206779911141794125275082316159272980004028771957591835289129951929310026420391128947866653210653894255449428252375588799803469274814743228689177612311254625635052593824625608146674001374519942870364666880247462624995099438541555786232245815347990583461819109747977380906170510732908825939967570949055754805992664284856204364262117031111499009331681229653249073805524778071790826383698736629878929449483985050725318050048955887881070555595638213331595115959289906930822944424292245611549726247092889913397018019743160567025964525101229718902388545342678757372899658939617251670456404252656509925497815365399598060582866391307032196339584096361685898914431187483824744235249410493505462133012205414061415739409090118706509547365248288855413870577306940158419659737007231595640392469963272450582443687692985369480332336037537172740740007937942753677812945959787136874191988772569355571856976003532869212265212124564912955301563893045401653807549564002071054430782739815616649393294743833938132618792070758707395070803664302765824069254739043331858275158957407070182296848655905113774149433757124196844652120198167026781598191507450398630786171841123751483631563778947399483104206027288771208967042563326950575383963801824958959874344106116096181139238968837048632872563023768815457629126836876592979014532725029042122624730080523764987693917576491821517762802996442865542217539166731238752300330088720935200244300121570865643285519333605972753032424776204572335944821096055198721297656712939480632308165041044958898507109632005999912369298238699231024214376609184243142011627286178030422900136984167576407774093750019461021574401541986391554766300621821774573869086364021921013889821084941640744258115820313616545322731702900390646442249462778583198222089696035558123593099568411865923127012557179988783816200395261766984375269883378852501562245040415839431292511751626695452812045144235171683203699200530992675040421837727919010326648266204407147581699734847877399446120399262524151118144008410147322935728569190692276489239734329520975890502159628724002230967742455711732050188559333717238305873886678905441502275609636120335966287492916389745435462521835375805250484133429818754349132665807671568234606492713520588694447869555602419305370878881873793959358872074289904990320828227768034282125425072304709752430349656637901328127474481379755055204449459012852101409882480090826934912452917403858333630401690234461509239848162851569198160217373409429618802963668191885803610355505468818817860043880585028042919654553188058359925673435830760098869519689432960659988539348759499580910355968599844706673175344754689395142657312326582870684647588629589608542719902224519756755247662369655094664536150679499202676382802279404209211990277520510102107144537141552329558070243327478321013787245546368277178354595434729347454919559696574809211506493435425693999952107956560290773531840699297503460520118375355793907604974997619095154264540454928097131443487464870682572677800359519026946073062746624661706467127292076863537076728596042554330674750130798025024215384104715229012263145523242534206835554904820160434761770684447157265713173573079071842197210386498846838619760602823307956321243463540442014826221980223813426113153873905833418651935404821966011818922248575521041433873847888296624608274195239237459067467254551258514599828888772119860947933522260693890758744099779208594329733412835951572325466908179937448278860092422581382790099128674583378037420490982218350707288070157303901808448483791591478094693402546525549626314820657618822400127332086798904093948395963386781460689236229098211526515544660146516601381241942516581010102874526870592338398614793944103115802686473144893526756589976943312185665384379796165128072921898237650143920580559496580092006210908330474875057821273861451047478321396296688810576319674447286021129462235593459404056698930426243276735031509891531185785882163104528399683769137817074795905836579604787959883391189278680445291520521163386967277050356045238218801765447804854044405455464699533841692526749505212287134887491613917169017660441318886314162829590800102575763038592261888286490171799935154122752847387031291390102036236337116077807456324180040840245676779762977822258327464935367364054363361169988660500247179285719164970122898449516901922534639862342654106030290476292702091206646973127056311960784528828852507139156120142136987596606590618540600721208404174975968737914269268669082905890843013206487531505291861255506200700804731823638674813169710057814459287182365826204422042506446751581787929571240289638073480441775679903220483728261219480935491716478380435395150579304737095310808224808996303919777563203404167164079711898895140403132289207796871621676174594762388466611716274176953347272336551078107037861438527236191833762483037428563041825965904496448753834921621310732840920355083454191124735919203214302727075135644440296552085796039683186509317488138885052898481963525376514504496165916080487702028517769483854473963366900928203030546728068149534783045100286385650870700616707811921981388428769734113508150682002979963629417416752551337943737461859836413629472318691088813201970639287951163395750075725491784152789056491683681959483241984352260822938802549592518572136405449491007859585224127151106999693533873393989985737790459500991316159862067154075056386374866334416653534268743107640092398254116078886775800976485515470084541379421774164962286251225995902774907321481582741122828216267870615040722884114686710196039369457715257848929562042331820452092661983423756505716564617126349944148072165717894494596097907151067225307546070041716268135607932835401713743891694414016545962373304296871631455194923900407259470358454250129644868880633079630070935164342537755999759841478185199023065803745104509322049062466669063760343027064658817380258558829047848384959289755316197170767468261718353801640026016524576070441375365749263923491958337783149191711873668832481731425660074015871113772364008517558932192873800216486890215043990699358876342828461338631144115764601398701637096482297603457153310266473695352732378068361443808873316978821237349732847642746401904835247810740149329248092762901573190812012962155552966987060168468168224028139935586725277191811463387596515027219747643745264680936686553483805245010652417926830343493173316341268634776228569023487491912544007356806355562502526063220182588036035180202523812490099421798539500597554695630359035710873328940054721066476555936631344288239172305758005514597054405315399199815055907689872620544565253943888121824158116279004716219344797254814106897107970727781661406544397238864453743083507991523675618424732659751571504657381363737736568469770078265763905836799674805661080315366811655001485681256640131614604486509760940684610580349713541540703756503493347686008138161807013110869354218553666316029601231236946783343350836546283070467035851568026682129637716869705644654320056028382671042883145910665224006141292809364919145645850478443164576939686138321551244625675766366687286861037147624680933550288941257168660892248949993326398937207926515410608660596693563984108998447649624821583318928454129358576126015326361730275547447848700438232993851436563205789928210285559602565236050993415790016836796031050265098484196336333570898370873646095619489054765886975934698327571084725475098207471305116372071673841500560161246553693037972418028974693687079085378831792623238088696421294053177024684696345762508198822007528595852931224623210420412114390589903099119265870249562223519560213150548977538035495666369190217216284769727651011795354810214354568776866345622995635777001777029724882180180052455852597254467243416745552873174804084046478483730837927350083593251209514669907832311695038635605139854162686047988865014723825380055921766325230528568775458772107406598941595407122770876666632536164518177574330239525936804873487908002707463302823933873541690726026014826249713383059384042612788401280775512755051344786023268105819933779026802820839653663035643066463036542342925294557795833766828812097069447526247825175339755880188774460019196598654934573583298194119234880340502283564797238076663301785957751333596086098146946686615503733767784735987469014390082200425880004175707119032054760097228976674733884932074005602207857314971055033151686127983575849714472419038270785367139543588694905839985825960118959145849019905420011499076354458756884132635921385057612284844075664413201806295706060585705796784217712217812356205337192937401464242191538444685663260181065650265765921947075933734920062133904198662671577663441485184750533176122701634440853190013424674828560963272593679682252057029376941123925543099487697300228836850694063438526523007828103162462570682564863752728784925153101765511985532391103110758356648454793875078721549656974213206442472625063956419734371141621083126421673058567185227480360780245219707626384206827564398738041591196351457322099881048056526688789511754200577042783923692731346522404280156602158872301499548552635867305717308787468907071304149545089903256341968829483801333353516392753430834765581152033503802985701067723755459979129231897133324893823681768849088362582869839901317426593350800461900516920695705954976713366072273415709959748357258086291634057572213236946640727431450594856766096308143115790990969785699576351388273267986052069873598198284605281482069399126435986989195051024176625078490044292109652553830721330894285803851277470901720291796384576486132182090230576121480967927635241377483299366368202389230223117768012800287999776071443174780494992416948966557347579251437248909276340029185491507532076165831423254230242892339779935776897526218061335296499316088178983088289625623159808893909006210329900519290126437796736484624768241332005889238162229409362144525874331649210833866302847644310349151545789500743342447529000178534596439761614856306383533996079968331094548138438992017977898844971670121209114049818019377083928615138573557506185681476633888070994079097885700976179284042173138703713322493146032646208611617440202052452029797262641725500501956333970604554317455994481286664367121286827211083606560721812236052836071372987839754256271390536727706173413806463458322199373903854738591699438798106448722702153805242298698034603340433277404856887786958463021204905776796650738145521677770506364764180172662120665606851937237615302696926393842406161558444050192744591117949760023311506818715906185961801379579935540125552434580489026585021064976748467367526235942306038802202184999125345256173598493916014718411804117954054061199997564779280997957876315765705619973453913370453821366052828422756067511990594665355103462510965170498664003535529069871311322449980202276399726395369541152747897722379220308788919749087103756328122052710978444270491661342966589948652446193037246056412579138284165553319270965741438629562795256632863959054843152909322616499485422316805806942071458559459401937147636421430602424926910624273262169319470769152621645447542998702306923204705210030155562073849872040136035898469031853075742791581021720092467283994397482044478833318501085477270435246005568433699035510562612283312275705488044838632002752955919779120431514644723429886127530248036116776552640429055790486619257763671691059345808501961813525897680654583753091640074888762506830005462207021745426384125839330933702778467850989792514357187749127457615925955550186720281773138460438268580802457283342689790735259300396002318249911437937075232300173519899105541370506947491902999233379650679417902746856766458461753829882835524284887753203460696860451955027640235237980668343184162777126707857067772490055292962346053930734422735785422281365591126324798128307274341258864466168292859234697311639617528732918786111395711954236757939227263075385605543126675768545870950191937742706661958855289557614143794432237860611838935124043294435549629710948425594230367848770859725590846270380771160820051196602454434280495126034164056473804467086331031717288390785570870236369673156611489100530119822150955978147444834508086704682009885244052654867598881396937386898405781874855705348136253983901636748663314524698506528553457859279322176493124125430949484422797375550964074569939016634848635865349438809764478667536997355352903825853593726060457510553323872565653302331436618430417394575653127713649213773375826798451101384216343647797546936208493744853296100571998246022852979447389040128820576240146294803153422197501482219332633915291853488540905826216515849571387521681809165996995690042295331247147615159762745748271860102199958084410475083796483055829729747673830766610018025571869337053531668664029189022781977598681841776253986663118999202030225482862410528047335834535110831309288679000971364750536049130250359870987940746292183267325038714272450944044038626097990023553214017820057405713222888792971634492952650028537934419423150772974885052123932760289944484117726908305072250770609813365687980598055963582644173224851465961956577287825719692433805523883673078511220853053356225157141109630892398139746020010153804089377466680950248568174423701574701918562332900377813971969783117873432114894285134016668493766416130809729941980076588318779434418218977729470177738003505337486710905218277770132174434581977241673588020137781563478718945762807860432761947999382466297375815203296498742785653399402253368443252699261892548424770165673886958826758223859382149956016873264227601575475986028673627606938085366864281612809963316063512640149293120909578689480092107576230646680158070491398640764857031494880756641816801410515836536271337097071614178973022622567592076902616521438311638751817953037461499568921756998832817469954088643250284065447676300469503683493286568311157637789935497471640757152192890774709187449605188989593355260045073655140461474967204967619353103372500082562906553879876041785239348280889893770577515719043363660219169580761554676410604728652620679709561888145796475279821897172934378718534724517762623191089482150175321866869208097703714871438518714229712289392618225649898442943446365390512148136122176685197354566201613586992180108801788802764960317368012350255262802896515922484965667886384412833210381669320070487751649766528535998692366676435642902525078826399579829441829850499176230192005950389465927063904094624542414326324757608131219612349651858635535129993064301992105223003855704789324616775280669181564017562567664716505461907732859959635295288765638708212862233630717936201838314456210659452404907306024270229174140658081480158392148607642902599912402117483635592094283651887062335815876583546449166336202168279217545193749608828626214160880074451551798584967436625631013056162768958958767094495221662804634140664071899325646539861493238910948386138277810889032790529560130031560508080174003197458561925565224663661843391990948745483785406074978686011811894381229521571177944509419734100713315129335115009286728420849701392669065335994973025052513030351951032323398697123425121832380717228563220558077828292308168177000554674268583948056870584049574133240604672906680482409865044902990227071785845992053937360271888771969956442662610970237390277542258232910420950044167994342421803826690721871576454549723178541700490481762552513130873939167133342428738420574496162937960412999454365790019010608553493961988974249377657762596257560556949750577892406377680122035258298617333417298622028142128574321077608629976798930382109811782165167658473405976134236749606949636646572326439643800238145233569628905285007817474127905175677785578327820618427736341387451835060377503517689961475445344952134371107868437675736498545490950983573359384273840276463606852125111963242906196449038956401635876816603243311163761681068967415877445525527930017856710949465775041906666390025058888230567730387392385317900147872769702350427132356070515984474699275164756068139930590904858626377446324020962221272205546852806395845233118525376408594866886742402415941712024073205001693877238157289049582750264981677734425868856249967223390113668583765006198268661989271232443147454477847156671242816958759852380889816979638295539361715673892120382970352807629605462808641174028895324230509492477924380827362408998656727327703229157397282361517461654621635730093669899850995770672221818588536933482625198741223469304422803435613040682713614373104932046098872730166716029809211559244003508259699190327922580490863290571465824288953959722269572023709977207400266954746821697845797633508287891474694471007869343065673514499753296048184811281021047121801555292141032528488062327731640795816567045287733248478474455684980228580330418240757614677320210583295259549065011608677354633821346895577198419927667769649179495611950976680217462646414124064416021786806635592587597677508129409162578043323324032862006044840130373788825987489103955097095656181651301278646073913721627778573970559138758761400799687232310719168883476500451103396082250776702581978113397443454402700193115894460556592748497185995909630657598150402691217909894334889876303373227124655870162846978114831995782770618054504230301042608178983639486317318683609666868999087692087120812933003121495661656255421610774983753502245438610327517604438859687572586675743177554755238951794288092670131670259319716412877921450703537955432835888023479311947112348214029572539667379261453104602233913992740708935997741677074763078337894530589662371909099383153802706160112404358774278514448545173384993420052039891880803557746247643440170229616423136922708439420452495065518337573801586459748478084158938010197203530342040007290843974036910727491164408032930787182319103783250096135589461321212235415527586713398260638088640008931932529227536548722026810403509137399570495505823856326068945984187543510108791332101558576841155821162030381098646541679928741315433032528111404716457996280558778134659050832789720488720296194128859380653070309612908988105346610017895213743211635108860998375324587290366779420748812470953013948414262306354531230551786530396990950415381266272876904165037536176575733192987250438027264174758014679667643637319137845307779744000255444565541733840975905775005553604259883332681521680084131790233849400698199457820904440080238600841779307127131697393117639942023026022536131801442447339541802526642880971015683104714082453787974259856801327523040124696715999662443954178860093004792773571060733676461997401655568165171126837478244111066945231364597014046607676759453559019239365883549640820430915140888494198345106942336698486728792710029373983036648534300478797541192960295289852793861951029565183009985377321603050833477242065181953462721881297865697920198796803187939608587820889711387393767775057111497272650459996071738998485905638705740831102732198527477481730056585664138920202367945445172709830096929645629211176093823456139105063144156601853163019748659645869302436426472348870336553031773983866627782271008796673688993622388944701015484036132996962769434847744467870759492177090915256248470560821562845356287785402169896822259618025781985055734007615024148609578670525789904072845989801813795920985215288581133647333297882551808850344364136707522901610919291404991510687270318526775371124936424083398144924605478943342521126531052444680718896295215707415789662440955646829963306706161700059144838201084449816301916650821935230712547622972811443600409587300358938046957886917368354666299142954683089622151123488468206861638172235782056806503104280597258423304895952197913774123530745333965865590784607805493961191369741206104388057058621996075008089137790981541361002719956156479604253592450196467373415097318658506348399008468754044047040512360243164467656752279972717202016013007941244014273508830959405732835572034330004621380672918862732623297622053637407954342791103454533394539353849682286744514282455696430119222608511234578197612466732107412885753933128452255184287712978182815829007047184087091104810641903785465279357822312347714289919117106755884803296284712595883505689099459924673081061404831861687395481111626834452653957492060788059490587030315081613100244559429979652790528585395443771158002650108594282400925201544890484034875027755170675796445277080954474563088684680000715118275912256356136687960141018799112214088667943582908090742211411738837271229619121514558885901525056826748004727236495411463225270893065658422786869326928561984843525670152131062234339251143578074141327688596632491492599424256217297914570055106171242027228531369278836637551978895098165572573351712847766989519526127095700956984340674734414243327556244570121053444701545614571360288425266450675860488190950184983747272717058380799332673591347014516910101440334250478560720099324769463915678061942309305604189387327555158735389030437221812368424916573446421247838764720154360462719753168205200005951404525061474145800311801076049256885570076861141872265931911541244760669102239860866683156853992558955377860609693210565483163293301749534826843001129982324215552628469845838538835164290513917737436180692682822268484665894719179746182702552157252853900821255176583786425436992997900444450040397673711543251670329021829932307604953249445822172571536166990403415784174065379554498976334086848132536043641216032390463442710589444041063781263133087710474596904560932987128063794692661483667650361588752783187134201710738772932313043956445100567526121230344688268705752059109363454210852346054306806891198427562253040654805209016371415162074689147231211954580250521592827632798861887985785692551107057714702779409601856670289310084108672101578939724123727323660068574579855961484088193317780177893044925012978456055807767479586473698886836734673328410189206205064963425651169136755957132422472616085222232060671192638945457895042338668753804779272143449124535025655323939138854303287961929583252025097791370597153318436415111298241743645838216363857518897565820793260917972485004913540953573405141301143866396152847403374830222987904794001059254944543622350349160251198275949161138405729286474785847981593556368493458812562898229122545090417861909472802690577729943152960549487248657716002645662897201910653924798145558779412289736720055444091777343591603830764429354741717618213940239351099246665401008549398222504955661085994137470669349526449277714343332107968942007911989528431557931803674271757490734260701055721741623927934508107317438938059261468407583671328983794803946252377739762338437022518832606422377764495989255598159855878192737020951287367314111078572789172358631037066123465298452620426618449945942788962344270881191164068431039593057275227887693514901579121870787400530300161519314073780500743550356738532883069609144157744158583282311696399455107991023706168138426659669337409396584062115925086050626687291409833459278033681020329057838449980922567917168057790401725870687824014664020181168733992049041888241294213465009606782776203272384884242986892509121316246676333466477538129199164079675306463912495513521640887609930772062989965106899305649381581646374252678390748652511023462723089859905958633225292236038408244516579292183925288356765563994898418255920336502047920332774955315407102638154753245394068901484274309645373112264079842984412604338279372774894906561291432013737664549461247749297875668601994771534012177757561728949631882121283349652367082019277854197397728598932601587680405055200738737300862872855861537817756941373223953347162832617126211800720750261269418493301986902259460842399818898255354093616686617842096131077024801732635506078913777778501639982574948008573984889337176525397898453778302203946437876167432781362430306487644882219752452330473162016550228614288361135500892198847896943457695389318501304208553166272639908523622688958403790194601177963054222956835668305196014792725934812054522738191395958798243470074041693650713318044539129837505740435745041257969846559277244695835565227097284617821116836701431146192348872051965842810808897446008426284911452712277605522409899952151997966238454629102847208213017849683371701767004418314075423065382038257059419236846675468765116652358976037268520783537297631521154843238070637282807259498465838237940955755293537639551452265600434644015016745323536234258140303926806820380288657174940864824408492085119196130792201787252646169240058039627708213502808780825093913111011148717316988235803712668569635301125047142412399797303963850368122342746253948585163311725380338019677157378526818509116501392844663659378083858027002350208587508446020309538708433207057507393538926928504226782316074724833751261990281847579133585534930567214811056510925611759603508918901924219483255053065280380713266137722726919688145312759519003033137681597492995985321305296769535573102074325240404235060155501854353735896439417749275955431545400940997030676121950564519755015647308226493430709559508918661151852399131546879703400955287606649939807889471303859524306048924239943974843445946297678078521687974443619861006249116005361642543554471593165548164296793388007832734080309267397989908148034003742501648088719987318795347349167266087901418234801363536015955431542126212660352725931534077854727605889171828434756740110408799856871475471560699038767762596471035212875837428451687988450483229221202920670971420603575222057636013305058080687980680618148287521866509427141684154279285023475237606147034822608282271160665499181689845246012709587778815371569674988864761923572313085222381736884334529795828904881003890270326645115649347554848968647134826963126701117204358213542518250172452559257968235383994220018763378991627220167499181296773270220709032796160211795058563061801293502264460393342480635642852913793362047659412738306291068393086325619212929020957544339241664273641695660558479103882612377941957779130831790839079433305422643530905374380340903070612663594458270241901590531204388533639994944681263156605390833423048359371577484371343313249292533787240644541124161669946861560544567472697839995959894719361657323565547963635209314218116476433320370816786562148263361762736657145404951549903199067073821243591241013687869453147607493255596553994025355043598221725497982241533669075972436915816910631348807885919342540406733124701786659234439432590420657223642638895390477605982305800380894706555122066001952330945094331508317828383524617088408747367174482972686076292487694598683551900887509170337337870325519712719530820086261550778238357125539107997281265408553204497075414307468888059708502912468102397123778450203343311222603826642482794580406480479814878455768228716528069393108497599486123139871559291958765472458886971502455565300233493609466205498107203858334443719959552032609159121896039624135522642456708436130640388585435658616534008836442375832432659453117983708375788443063685901203191915422547064498765702582449403590537025966495869928742636878393585869744664790012184067348655365919552701600193712757340199034971119906147087349452411271458806774783938862245460325298417573547007970887269352957721103403889638127676847659121264431720082417414013130333734744893093317535866517104358715676299644712827437392886235352211794915155119956026373005512387906961447875101104463732950672881573149972787361586711270262479651769814715107439431628701930147269217446483044229933339254064778164948072139664792919625515920963508044627521369635901689508746612444059057231000123724816376847014614187700503471404866905094777136034250423367416886679246366494496397939277875554865755678306001711427891948998044738035971844027168638534700383389195546980489798578478054600806844674971469554515597656447868988246841181983733967439273342225986785725255668882357217135350812167500907192076346733067728522604911449622061375427798858187538197214421099294029708421729983269507433940095933864062219381941409914289837884212330634005371067158911348580448894423235956185151287337931631517093568389664329950060706350443640654387955126806118401123354522291896102400190094784153762651720304160529331562966199824468505975388371995928952297934128455849340535397268626805020668838435126787116431016357630486872154874042785264427507016238441216649035076506905205564404685506164047465102155997824157462316815250971315836748333877105145812870528743439366930561881714901422232211816840204527864872128624238096677991642753606593366839263867734275418515099437637607669032122549223551707856713149331191770439979953070705701694420788364435817233078253040949150566753096375246225820493619293138089336413098915467300835012669814080201693367983965053661337067457797172524374013379420833916653345240495166715036411926727545513889437642220024599128926229343897242343004451607068768367625858829268938491593374310290132108588764651038975066930397896199003452295861025108017502957424679851895464032985889670912912718173948796259922945514484326058963267313117025711038292440627576112867434908553177774727631465863603605270663075213383933841705857705127968048446450741008395966464964141285791696562299095367535094880065848235579618416025967404799867516690315263398975729429796828701466068192476148887913942721585755865062764062431262155752529216916665405434088703713944279274082007055167581079976163248523171482857167765474838184336099038544065853741023341218719722174151555291356451909100424205163782313168014999511057398689907794586218197736337719003737766093733184476651887682192429886353456968278328790802214528325200244054192431619175628846277442812630437687365933413131181549911437540095260378688019732192973420843203255643169506257926268475572563715867614922305012424282821748939974818002265904628689340543764274848963150403946134587671600476558124534024329525753835560799035387439270371486460124344251107143373240523729461324954265847012664828657303891119928407101631985662188260361183364901833839302351035029521432279197904359982493664008370613851331407691892203426087802824548226238859624349643856063536705657912460742960425109885012815650780815306182918758385450243006790478641497561273623808085528365923533681796707891379188862452805155559490920373028764168296518077453234329712544898378923252486298566471978031678406533781933580049005208794957643897990063526685971777746040119710811715959966092335325844162175862954964531424046011319381748579897071258290583419542669721987824157571699953635827556219871360474670224721280403623590078422466538317806483908378201916386302571830546511526816083169417317450481850275077534331177697772971440639539998890021636930046362222451133974806208024035903665328905888415169216534341429480147855786553244431897334224078241143212733382661852781379411456089006050932955563191646624099712184710065483055458372007576930805345328149418891451055220387748051184222953334639069013216211409267190844968013481020110668546950641631010338081771452613311422612564853759214777229369255176702893734655899725323690335558184030220000206632066262718276990528547123132268801763294164807994814601365167723894323597826191209905623942003400221755055558325661249040757606224807218984978445722440465511761462507247362875588533024787132355733638154360461421346226306212342321990811838110644065862920963385673100148151834313372908458978720323446576185574006869901489851124900261905645455949926756959068763469026577424606096279567755113183749366298562808386172247213393052739684399969412968732748144045680675848494628282504184176198104133552702816110438273326267756773410002757474154543104263281998496281448136754024853045707755453646159635738075156143907821217387834432766704204898684233110612514373527650461621796709959137550436939212165646162208110481261157643049551566722568682368237137275349588394705164320049764738785690965335775279283208591950092814961632949547270408090973441566344540346981484283101928900267032686286641799960635113398925304886462456619413597612456826762487851992815149684040264145450370582845236749448077267027208709163073323993074773568666212048631552800325439292328681226212612532708543464438412222885305671141825298486031974950774692661918839112720232029044966513729080083030024285750491887408276371795711564426625264702115380884072729636243989238852374755768374125909868734874080640930692919465313867925018608304974322301392842931838098267332695394335045376241605339121752203250695671058609777215638055518552115465524286969097362094765027363402429063632355986776542170385959344266649465718337849581950907214606740068566539366128034508225308834470216857424440497791150974797248482778639998305929914646622241379701187863593916392581901307742922857246700352187148137388462364615421281043928864428470163323256887029902459770876535948113759430971718815128076140026546485042942019654183572396631087338062588414879240561847338096519157052964577560414444645525611403983677385934414051677051300477069291333584799424112974695906932511028157138635435129798676962442144881690490591722262178666259399999101773990429533220837302912490505357547696068170769509961870569205746248296457256690927963088642385723592936981301203756618503150502202112552521222106499068827559188134509465234185243128528692034176652150059386942763336021215592626243986091802865123028348131312943429217620287786670659179622492835044504161609632461900453774799968178966485681076048747559021624446371598921619303563865212181842977492521056932287694834366611038565067578758213028243318539231697168850306842007276887999045025706904718263142735177401560422468997716796594138592740478894474498067975254029234275515647338228746364544532892831923533332286894740197455084269708424042543562553292411397107000535341596937713988250647674692926439985178804755948101561995140793041645329000435915398179913387921126980839053886614732069091299556674950529230496777764185358048553331318120505783952612328876792829393306208492011221668656348108423950338146356988579905492522979771766494372285568950147786936562455475850218404908381155841830436083562277395882618380624499459132510723937515551433943572550826502625084870452183239769647800789947923481121558163281509327629550830965494814694824320939284828369962476880944848624460048934017604985927193514593737482993390997355710805069860657530481445782006374778245158636192526961164446332041201660338864511084846235123548709248235750347747832265215968708568711559633785914637094498581746006160909572083026877216741200450611639807144819382300308532503964844129785782303353229822069601886318021513013622615568084729999851867926617371949254051856467462226176436974881829361783788420727896134021067118326018905921085103228497334647860163418756763851558368599868486636387948392415635122519781632881859206235246556657018328144367035684901561846843410063983433928923067580283777092166306531177429734356525557596744833919979972175921143679257462757839084104042703058903707194386985495281311556174858958357555080214774354382566482358716155575274294953502018614558748835648324289367410327470731176880739242164515409588515650283573609859675603676795453991080107999028947593408946631604859517104087973193363151764808845618235432204320290892691790492508695449689596695054202462603967893166002097524752447982263373491123268711550920103116344796397926392765021919064116899137134618915613572316176135472365990257298510206075798997992553767772093489297003312372833647686928227736555804905707419523423463393801153720168032240057029986249442522171605947984335022083820783791174736568216289229937184265990339397904766188871130094345503402236532533858250950646662631724134108091429762217486660382648902901035275892839869027444475464895937816203757173905031720941489119268776360140489830129051014663683263575981184904252302166867105817320458934993750803911846603348443142787241258964067738650691966819988023981810108091800968193224864351705817535002274834573865415185362247537569507402867916355736489879868682018544785376549333396497421124489954204684799621451384190523982145995165588403996516284998636338874816764197462495744328395207631373843960423416654246476020164767949686668850517758084796486251105422525960274335976348150728823152036200715512888601316775005395592087408634357363146383044511207158355595110299302330643328564461921257527857259387409066492224773472557049626406842547272856946712302435420935206587194565600170945453332753629318512682433148740936953767217422245375062342335749875684421397746474349957836878697242723998965749314381207229166811694518333923486776875476808262397280078406294867870757323611531480069610012481475898259446063520984120800922230698502029961056689036730909981582825976930307555189668155166539208657081972194183979568599342864272146716773586880545109583533635521328187738801886960192305709173090003171008362317614212374825503371533730801898384372128062004724881577957948521338972499938288356368678135496196983674940661504892209856053498408174489696926406376509615895503099776130762352736191341717253403699649631213301863372250125976096792847692947789815957675172983352646751785935175634811830289565097304596800220383124510369757781311316950468523993171610522676438717799619164084779619669098970964465431269974530143385041624233792141082941949064304027763631938230773940569512363672727735401739295944151621794598112766013565144609661978664543149447891863006424806696302750902508180873331723342632857477689116670624694117243620315758354731314961775234516733005891781197376216676021250875511042551480203465193236013287468231841224439484041740834923768134930833620471063953767698955110949178995567743242999921564456718527008301244906575521326984577567490258411532671544632249280289314734182694481543669291433022841179429863242140298759120411755008559920347753148401992501848197011010903746207440622269388502643308066271987424468309275060202627767703169189136457019935844429904868246205173565055648186845510088973659195231855887886551742794919553162322398385845730777455721536589906424027869995500762585997303219168054023931307440354250974359272273203847550645234624880053891168748745943368830134263683851076887942922611203662652705796177091346817262305518260061228936248123866483844766782415952934368833688308565079304657525113562580705017408119527776379937892536369245954222998035728861153214166275579283935975712965472957381891787498835258031637102549137446124421810993695674076513947113757057440570440258646335607973303082201598183745559161655393927919026426979178389009139903499221710773651740085034041966547774232417276900102803190145698002917667014163481575202158501026590745892883143819055499151715308354522244394348808362472914691929922198651145758919557284603866058416080879791222129531841917482060964812591625499697273516793874386925045325201586148286809704307900102592237080078348351508676188345120892207808152485602937677369609804943603649336564924998601590934074836639542217937860532136854271364439719887077116796952672358209454967652342556684542424755119299325757086322613677796722625301424103543918165798980584429959759048299856884807433308260339871149687357133349899347809503434327762418913377619437483239936419560131726149723406295386825960899138858713543300443787296482333619512539961620224843064188323961178349599334895304743917904724884995678285283310104957229545517862227082997557977826761909237570352840568634035500978915841218097862430100691401293897456348584331622957880160080963256797566179653014228646747158846652458261362535983679047947382145336802589479711737472998187839852525425697840392293780943358544416790196613815761459195601066521984361153351994879975569615932562948501305219512408621344607715489521112037196414205174885402495882585932187132478867317584278427727668314711602193361153606782703468753899886235789291179366934885904940991186412625277066806515298918944568424899862793344823387879328491344383921679071631822573492725749519855170889281660026481215421601546666181719378584483000458485220404755605026394692699438580992677309019127869395307261866900644426065312150832063961597041547426497996234720441156871206494505926022265798366865395904022137425695792381439216671355606399821103447438658964784333022457017823701611045013453773714893513011864067751257952673180267616168254697557909065737075358159952791864860880553453557983188321138843246159313020999805255253570798409258079028244896084120254588588029405421850279048687231473863396096289724709082920303424856799197957740032366696604972782842863382874774059664276142415997461557867985847296530651180045973690120778614702927353855807998723218349064097351970184065227310430610891637986533584158536614942594697250961222996006469588010284954481530842849542448696024911319343427663397164224905100551420664250291039696932872156991758088613586755924663971634083392668616331408323429210013388846176425152233663651217496165486675841340083966797865946797882074726504721999421371976058299542045570556445277652613186821266205435263429633645420692425500651722276668128847850127674116397104080839728973816364979236594370369759227948355945149897811708853776692480370757613507276224145168651592710431548845454942440297479615293951763684764919098107230191149401485451307486416508471287215982504477903019940620024768585218396633524953540243673586694893263538309570881262917755657140805371587823534657708026250520045762540991375568965778571032374711003416117944124118802819489195694869235504434411461178283078118077101713993387537351641396765545679827349038788809341667132442891074824630260280641240924653669715849991768227140595539464294881900286301141822622736041046708680422142829109215964373305534782007539535972301825702896315115113255712058972000041491769246582749388669130650077284600801634053770297151165085410152696814085481228542022156494491681241672121377159801145163066106624485068983151055889790487944995539128063709283002667266218818519879392263527179875470147787804055150682397339028792379569378425621408087356659089032551348617087037933867809454991570318482136528177465962553585236108416290282400302849420776129074978875411929134943557614842380276903496017660777789699619571097447905638056473012866569394830899612406931233172342172889446628813317737769191054211134459303585063713408530675127863274022172617160173877206677296532411068517280930130839328203636416499429956777738502532971229096216939462804287295470359280483696813965362488562218718628996855690089172356105912173763879273974698775274024306007651941844486552635032720938212607261678858992603661119600533327497643042979530843193971136750836900137231005966830563688702246012804753602450008214284775768782276331304613746865748020224749090016116410884571814414215060234950892088965340767805551549547993405381068160981017966952194866916250908905921740010202867508609719223910327112735976992269179568358589949007645430745076616034071473004578614945120896318049044303461779828141112632644980475039519125522483063480434646886977776406663631460149370399865471177344323889102614312924074512697402617873815627308116499366649434896627573714074322787066058271937342253564041529208500820833799457173364066043043945207335979304248215314117164761933222479577202097858429709409197592429009088784568679573041693157333678199547273586759409711551952159320919036755580439487819276514394997990496950004528934310492855659601538626729253556660884187894708423638367828477135175885611428603459350965570827166659624445491276704499245663823438794047162347485464837688333997147964403975643851755735015285492630370737692453305224972677737308922340197140502887520041352778249959119780580035225410492619197451573577551167664016460209016486434714185386378323625791164088480716064393767052722509522810422809070618492515942840490199963476108224979551949541354213499611380444864347161175364324068787868912743909971389278055455240070396847581800446818865521004174785594328602575703602204315355419316562662761766215534900949877551157791818976154235319846993499645551193621779955764810299264366224461262346851490841234486034078143469675553638710851886616060599937826071663675285973098256641161805866029071263869435764548396569002139081911002948788255282990551203139974869377608859040911775739156704559242055740613816566519079707040091911113364321331349715532187198051773546770700437355418704675344875932021759911975733817315883537977238494058792702678989539683999987128206563555003300063988696924299883603021305018988798111407813292693771160548372584226682301161594064185143208233652302358230620925393572079713699414386702779877555572977542165686698285126487725086270329211908602505743180278724091278079598404898032634393652593587198528973314488730672072417508904873881996888287027031005004877675416019941002624967149857173042118077057387377484702211747076059380452888322546286660200371733758948067940277316114876673674197678286920705362859122461246186381715106662099674497766673420620450509759022861459164577474316561738994487789386154201489462549718374811265808092307660031369433505531991158015258491437085007159815607358355730805997582921400070591979584919378127078208355641814278167501200283979806307808744650066365219584600472309295995864278307543943249654993888546154680927179321374323272776114591299654525001935923711867443247060284500816364725382123160058130579327169449641431694038545344928644179694000451190912217786961557830897149434271154345256707340890031501709126043398392682339925922516828953169911441691360257826976377960893605963222260957080610261453092049027505574145925433092670181421527776853241185493283303611204323481631757136939614903095934058446435305683121801765302008729068851800098331707449795299543278731172248158429579736899348946474757985903517861590246164042794885382410642688170619797338796095899388860886252452428290560101286574105064881890918014586985914618378722786191810966948723160019232077493019156215127124204321942203937683160281481113969471694447022160472759732069394949523276069988316267055260427555800347862665708360304940984969626968799992814868421631558511945378107894745542811199211006385674169009388504599770539202160122375262213400287616335155638954864656590098033637207540006659753919894285170074617155647075243074003772753743989392859808779273537899130856172023589444423524353964276440876960998224637250484439326856122081016548627444701917149820670809620130851751549839038352427927542525998341711590768442689529692785810385001149171564619459324446641836103770098018290223577610006532582888147581778595639373329734490035150147928364294239681104932889606701067171210958381147728848335771745450858836438699937305953816992985752612547129492968833728034807170482496958376198108621004690423842718587936484549645863235080062497352191025080882072094523793922925459513500931783061211951188443717840136566034294244295773782920039159784888664382248687872898228666775787331185325714888392199214575961346405103652684425783436682669187154317027839318407887767681171881719250740047855270421454840580392033739079978319799998604414764166422251763113328491317862320815033236976116934292897950212272427431568751869275969664135886325174757454513337304778868319114223622006324168249088283006249980546220724047518860873283102037971818616226088931375031654696447311611109621313887967349958518673208633836718771641504619201143966474736029942036033307882750283417549215376993682935231346683703025193930677044876769110454197382864870490410729975076291761573081952650933073793886635859633081085720325425079772705433545688269333102038261218840590407962267843820377747699094712204330802426024598899182040378675301421757312648712755105994356874246855549710155948359849270572633145228471304142063079119114071764509174434413557836704775900343121528918146765787715604035349052321842435825256131025574241216451859995735200905535724113141584644420623558447349993743023394789035737830463887042116818917577097740128120491708589268189172294066315825842294713718035565509230019320647563890148772927722347642891035013676064446562989408428966386309356103640211341455966284912067587488128603524919430782381772949436167399409768095997437433093713699892809565754680632963025026709530401450654658918821014198561911178167702300454095487619768034000992281688081815421609900331849599703001646627512188073315036950196379342381372465572675679301934149537950478670870501394241316543339473506022292588332805725353693141971709503098791651664608051560255452760430723003590075257925283209593856154204806505356308701486327033762242281352103035321369348210945355641483935110646979482431613880988712864897517472925153228752092405125092878147168860487752965542080478145070440714138456646431965873210732556669797593452083098853252569930193680575392834557733369156265635788511890214939933718194690143533409361416710965716476763812751962798947616516333254579845288422934300140954767823796344972213796471753615559729764458480289418016926131494090140967685049847823395783862973870378766655054340399479887905916583304277903235167639901503116411271892819720943727325409771768092800145254581020068662537325716708875671297462620401610514333597132025724188170252185828176055336557746334965419292764164642988506160337902300474677444230451108350542998129814624593634366944833775559561854020193479981854049637096092978356649895791226468504778280634025689780046635190351606668123988737735698657312481167694801843382044297503275467441096170959170663754576700545420378584421536247210781028442069707694542684473298601058317486602741379746968103724027745760862323325972019300366426484752034420466807329960854333425410393772893922728425173110788852656836969381462493370398685112479323796990959952122296656493586740892778890637624396716021821128014421271823017482457049177542752593033799585379821164869580529647712804465532692886810898951108192256237964756366672897264485789856185092263142373763739739028461063240119123462123083587620176724659962100721722832120417815562426201957272305427526832433761988526121819989618172169674527680252356554207695417704819280166315290397651534039774933671362264240000551719609971201708744678256432064632727709849973302927377316914119425320742358355614102933107513824126943604158599192488925306355422885561611968518978236927308289991789412666387610635826161277603077929270783045178513219270758636887551402044912108671205746163636847983798465389512144791109177335182954301158290657319683575522024759108182784396109923920381145732862842015950425551139099869289381507617660685882124448732339007492251857774287563518730403023164070686943521822162802591804893576145325121100532652562708969156444874209775897979303620970500009805750454231445406690099969087224027075873768905268575208444041876851628023501535690454140500501715423176680541234009191326386591073167634062207112382448190898108015067506843056774603196250246135108074982817353511298246141262314470166217168724822711126477860119019966229255124259190953790110924225292214169799327162461292520823399441166188128401368422520956127211484668028977423785706046156988191348572852058354260638243550214333892645107337956753667418792115791481927532831758496817653915693631072810657008538040486675777127777502266224561798834813314084029806823883822526020810086235290464137449243857889646926254338922575858805820063856993153890587520446507776388732308077684560248999950122325930789623022138700326542370867473249886168977160666374668688516191081909654579193355929651174810908321619432320805553355039988879315681969204520703822159240200840243998722479769377945144385524540209617706227944741089244947656347672822427906299904149742880517828718347900225290776530491049539296178006281755717102242932818781301987653755141938746982735597666151931894725505381274791831905364437156483268544811452459121804750057977485244361613935780690104544698434168069409224521367627499342827201737103153393121497376959138232492695984911389284685562272732416708582171501916186227191870430139030894824762099657529606180254819117048489009261127646711232948614724821770897616834461108768731310760207614404803393175174602489543701566926331471052427501465466614684353140229366795436944577061124909713348211413781083021484579802304589146700927905339304744380230602937657851860097452358487465721535242709922584654368244607257311957529645671880493050425703472146024514584354062223226827694555763169585416592164192631727363573538867121054670195698725438026180983513898709046092021897336951391439109094994123742195841831453012106363523580075344390230276473306015114766177795628360579278092581641718893795820752481548985073669998083453526577219108969303779410926772463411680394818594885665436443948861895759636372898167972357014278447677328226432616900176351446950927857702956365021301376803260081956818659186265576062021481325370046061463376500106992895057452021943010520630050192641871517164930102478278297865242634844814570061886622449056229387110138522221836419842782999482188318917133684365341436301959296216733155154810429192185257474908569620136757094486642499926560615343790429966937468772420936049071602235102660417567735156479387184946907548707439124267128326339342958117197911076598808183645626819603879350334732427135545744089694462936432932217847557239683161922983902558922532746056513722274186817348528439034385436645357220512419250550595481895243641752004588149774131129319185175187848004415218541942997250626274805226155825918491774686705066865094454420538557135948119864306618141977706842995720320156616455643906750644775245894935110206730873722347401852653704529968591509450561579286773973080558112125019718046696648543571668462268522384945950104616745190932416199588357096381157068174088861106014470325465418490212012365622545333692252595066953819774554421841455715065232810874818353360948668054935507687570372107307973171802312462284068545779175840713215651722728475906215649347889206048530997343548144821817289290408014661568458193187115547342826898970479395663466954782733455046114556794509210027376764427981723265035227699000253873302292551330061803989680744879927447147433826483560535782742064538560366064626979660921388877994401567949331135153363281761946411340478644890928571964635641374406309093088220579717485161543873800080486779312941842723252910827127001559670212801995101220998314323859654350958333574379634831319087402291544269754179816319608206233883117230562224829338190888498059731617904574699051192556651867906890687589321942171357368242665893323427185442217586574184581860346846512507291360262141583880587705157811838317003220144446753594070961920896254631264683804435682693142042833346841145502257392861723141290413578249762313724373078244824492341554659275240718565773003229388546465748595181958308544671272206003255260912195367364906495948023243608249521416733281884359315096374208248488077073386008948473815776883090508901451766980483351535419267963701767460938216183711732808120826505486298856864364096933053589017210254627685142020928938607056909443540296882194018921483808856061328561801997854652534471685927280205123273205635936205356016850154331810019864862130185793847912316976453195818840683705364432624157283841176918954156494705109862113548501834599198358456810898750404549446181229795320083016530928113196621476446378403133597529426964283454888102421721371606826033208069457429575225011564428332322024798072865440793875201342721587567998799071990342868173208685115941684822219338883843320786391134022573616131838140741370220634182322685285310767129177469736235026693352740251738872605038083755676183748644260317208670908842690372307438647844403393349677300952954045112051660542942415830585647641790118058659611653227696627465159046896507468555975934714819791478748616522428480682936104738809525439840864444551806443781245784888752882848963977805574217739818696635078001721775842510027437570585754796579945236949467342537700396507516219364340395377845174279939041217883317754780743084931908065794321339384924250680044952481540346631565511231034798074435180368584001094349033748581086993109617081777503411392470970207878155942127021078363274606466607201417788315474410017895415373753668008904163443924601582444629896338419988851121493281591451106986308415870179941382925163377038515118454653114669085655500109971138360041677597817317191778665117123957222649133886577723559216218822294901369356262471575228722466798654479161952600798547797040250776645816863868619261856749643702041465524901673111419861782417331122215875734277426156759035970825966319418058410339776227701555866333404853780371704356824302488043059507652571051951641152832223399372324898929365549256541342705742506138895787027529066694278902811669686532203365322680134361659945152150976050403674835125016171174779953713492449943827637517823928508331562928691946411070850449938487020141963725592770797525324037785871954163307502845283222631168322955247690299323726074770554331878665315281336444026912839464805705484982475750720865486804126565903446531095987044232715434397388124390153628890780820022961077594412650051709405716100215245463766305467624030764135204394932379899624580666566789637159843070888018680592619445232592564486414009698068864458816633245113928130964033792882323607224605622511401688880983927086660544217151904453954839924095598831637585848515006365759942666502874764141620380524993595096218286950779700478356201845839233348599406320780066578527164540750411483779099755998925954011527510258740363334935307284689323471456551826340508673673740444917813709114248587053390586789374815548300112320900822601244047296633112726962440920975324209997798206373918911140172621055271809579250458633048363142339836769540790586528945532479633276626030682032678473609835467091862221971325988467414060369226591290401352721331203912574299263585731242738895469020726589213921906345576657897610875047340896059006461678804531571313907286274633885444356065909438673246792493045426335021678809871351155828492537829715457574964688401127005062322375229339846977680651049547535527300885800852860941426546758678368876982312867570045140350831798163167105543748742283783823551546046100537737311842858059110217360215313278928141484562071989480549445065054100900230862195343972919089464457055098552889695869695893220429474886011698894906128625557284084810673427507434779760227947739453879337690614002405626542569112797131054335486657801829454545142088723118871040499599804750123101837392880781730275640113350630530529920454309800038115777679370852835189411090095309183653217660049319646006960216742291146475093665805634909058285444508824228081782176658156484430421767928535875874202272691513291630714311870516627431963209412380247113195280762378921941302088235854187297652433696827686847081316143620867256495739218859844963412725852598151714727805219487970605080669883427613142856507297050366979606401603974212388171898317721637056198357002653589262272260663952437818393977017167362612012160289955615709228582815616879941305624016530911251612391201110321903180660349935050491740620951123425694366642746267091898347005804954072809669110041727687772561474675486834557342620881918877852701817245804977774385311188363280770383144802810046311995392080814668917452045071633965713885123450523370441886455160175333795888962795430087141926386647159349258902476609487539551891606110665965944874154614466530732629469708546892532601588635098223022636222817156350655956180202553491717801960990204282891714975775227586627615089242729358040734224651636477389360206098600815258159779492880212131739539850909238251605212939842445929021767057174973860309088202915434663046921123796915919325152724042050711310060096931398912486841023615945834890460661985538341054244003597019787451760408859171467283982353318024180068533671960829535178694558888611361900069828894298198053247615578511890302427269311522558098118853532052550063650963852875125172685460553464120931168906073303960345393719588451174981694804877827793997077912089898071317151794077946677367490186980507247856785488413785560637855867865886918892945392062729839219757513901137800608623004499045343896622009532550714772363457470425422766317782726680651917738679276407750984968494447426115680823857181213089481350743065471434024298860425840480613014437420330583831944217225021918016404645077654150293799090909054126310575525320225631409950132514721041480864113386826816425810599628703618041382665734120896250886238766296557876157389916452003162456710823922540635968141068238337189540287027885316628519715150333525458915548391362954744610619361274203838866443176257195582454578716748233205776142464270026229561750702903937106122965038114975246660318181562322963264557973958300374033032071032694492229388984966513858154240364260132511726919762462798345062335728085142481170063142382639338726188446163083394528658742923738841383248952471183753607077412522925962781531721995322739671413727079288702996780395276345959674171878278448847404746523800141861188308465030854752509456930388011570640065527899232720772892729813495794940964734689563814733241766959645625837348929097675841825367523081137930835973165055542144073044927663213560168449142407836094645479719273652814707193894288032722285996654602880463630441222533305265350319936527965543906739119955002833061271967055407562744645438668592295078224241650377411128835448441488202053061401884288319850430957108409962822995280203619956999533596730459622839400572752192029624050061985480274441199973787008698781496327382011494944012812788307077959884785007098082606789227183714876372013047988505543307073833546777867344171596089228113424065579900018876202359217943468851888203469773075227796247538321651840203946384547460859352228139044465813895000512803169677758582808438945881399082936942070998689198754108221010472929635801308803481789498355630444554110079510581760285490993994304413208349469363417317925319457690171054240527352403644751669644637046555216730348750917984420252019781311178404919843945676630721392758431204467865327712320771779571881294254409367037887419358001596701569273036620590413460739973984602604706311859366156445562907403137171806303655155700860117357554333185924777193504214344743895918813401375576363528961294175209879343765807198377266451234976966338279180408611451393870977020450834773752815194594274077140490001991677942320606955530975393231212014078924339142005470281243625035638451637206852573225311471276367592684876892556951770969861832655211747164600992079847673201563696168707663791861568239187769174347173932923397431180701779878047188204385194000534910875708479060342666150741606274576024103405724452099327573579715504405482474500723996889776174320441970301366038706240542295070001545728083332547157363085645699811088644110216817754854666694538273082824099880672752078002500010388618301783725932386399533183786942118216768799218466137686288421440324942815670374474798986536977132169911757508508150176856956528700984212630884977802523125545740882614825815924701091604118726669398074017129730482367026041249001960111308217283821624813460642397356778583590925859897795963753136198834033668297424057068133659916553134893794352822109082304116770443438294639939067129434760812306395430590587154734539221492956750198136279143847366921735121641626924325317661446379796181751859613473038364432654417401540399380790239847200428201738568068381381507807801330215227636852118517151217732825514630978586735750927634806387819523893636538657860495277510385047127764026630669594486661065783785948231132323115572951057407846157059775356058515325544290077998581555454686567577814870665633556304124113654320598698333202295233525249451953130664408584246757944482149004421261706864531460807799259684089360398003689224536671100803284146159881065372134485217974290070100373092003729040957640499228554505936838613699454371276264590141925961958725369424777394225656902104549666172007092853383345317088895458546362802844244328805122614746028715760089219198729297166305293591797804249750210324876789444962800882308961932793282563252129206336139351274357547359519739690515315677176387505700211364729692416022774542427537579468449749683744526384547534544812390791000610270924280522328328799546719515957014708036712512469076208905362003717244562503902562285632097737132421872033299016329608140510369322801645941988668811234882960848925854089820524125259331496473961142483934096326089990539916794235765921844679684122169461187835304171234027345189526728930965218609669401121190492853061003975758125096361315766165235407064196087878110314255234170668479107407927501770571302085999725781755743589668001922868166261006178198364098384531047687544006592608529456633786051181227600451509672998441516626375041588748294697239085907921234780205768426394423737133159615613232140399643009547560860660721402734320517028148008698905021938108168251505603115091940849193512288200993538935114339448553709734552620528084176679499968711279250665170471674776805961382363763730484775858041712247143480909994912927151421826859744137313815246791660744766191316756974818781294463519424237516024045843621025497512076547592709507246079362293613310168970213140027542372063536708329435595850257496098171641140784404927396666626528001207240966197784421029126146397695248688451706932996026109206868636823584796857632311495342925668048640328313151467284441174921448968690742366376485680754391303955758192520413787465014702912076932839347395609689111010850104176584658394512246281324915452991743359955793100990881077693200581439491569857048348682432200469061909229181642101678799371325268098380133306842690011224516450324630215069911021200410573330142168745287809783928543694969602530468497916031853137011138769453044388912422633392839509462228651139114951214427336282238564480032385283523079508011240178228381624273401654942199641327119102592477934440341080618258265800446379000530931739985929548370521940659720386622736643096840403109445040563518913856190798410261282719861201163955476366276385628118438691927611799972639407450294602246370129944226638481992140750861452404622538355228353286939766600595855253074019566124394293094142524478833075771118055821603121547705062885208351121314544492296020470400756011698582307399370652821638388290813799633794161375499879087557279049000097064277794338253683472637419060805930177507183146330485064127518056531329331046732059363185974196395713650284611102648516669105869182216101000882102206409652826670558852694409624625821634093943195097578711967041086908727491047813261822364338759932701700782385437302433430056754161615379111441159209669474962579273708303212899810752293703273270838269219638952625821582720161037710064800442365057161713487663493574485080347595327555719328681666846444141179806480246110570229129610001465769363678257122090283446499249231877330692437132785232780158425448541427621751655666015439016840655644463324759600202058337204359080288073248832146304842613433462257535523676770832885979445629361774727956876529600561918841957106299720301646538848327531400132526498896906439796749971420969783061417934679959417568362256586665351505034968098331811895872594339650100852022239264520706462948513188523186675840663587723199031264580849623235735138824263399572616725339511916336192134377560756467698830284674356789229119965574347752370024059612771022271471793693029259428653603759106987858451654666776122597875368271751799719722111474503761688125055158668445378652189700022037608884115638779907598806747277312672849616399825597218145139105165720362174976062940135607080552231870948240902549301194892719041177015422128812721377360779379616909480788528949747416296262441713868176940359050817337945552406443831849792625124827039817041316158228877589746023423644269894702139582528425939473448986259641285364061657723933479117242030915723898730385210325290033358435611158389101153004949609705589532217217630037983140665530679673629316773990205246027213226411571189064661198016062783311057854156313777381455567610744027785055438758106367530438797423373143878400439064878211916630441007604318048286781691411550758543144224582444722948155612572418423167273724104380024584662807413355764149923424402905610403116542008848979906887081100857013338581274196896523484660003591051048392812351887611669692616722855086865479658031494419177307912019822211494031167954880523111970071448110070883859708837811099095263567845832719057806012134586326311157289138863464135247354523904706201257176259507774559551148382336889700829044093026893065960790975908060919092881507058715731250537505748556479725219766594776244156220288538899305984582069833323406164701962037007211822284364403152336635564592946242671163578952061260485574825615480007805708308500240938424196267120781646812655787178576900968403698644572089286409415861960456875066453958525990725663910940389270267268068353662183133757153721052863457911497883363196652467288777086954461226303792672178810954147633727882273107731063038192804553285339976710436650153559218216345272051564172111286172913752392178184601157160642020331786763322921948700992857837818603920941575806300688748300032652766345216121542768041018039913073770154977860746292971277988547711534047499325504917134579582031683319396151957486956365633320990155742950490152575870752367044483595052938354778700879976936675691899687200181352132265405877443707613593989544766282629547344885054891167364734104254186772864073094169436703420649979588020066036525933620423439681476073942338722734831830875138653811303084602630807292712913948992761506715782517806334394731770144638427008314853446807220815318945321566002336248597305644914907488469444514441393629650660413143510568251224395471095252271392166171354367571877992821162716956043697470872709545367975605426200372699643307482476129040295459831548933890926098079191157768616085667567785294361629166895633013587513240370334082611537590338835025289811828910037919597420746924742708585052994437455125943362751193842271268041332169783999887933034454458839557958145159329729317055444688025669689151948639881271201444159810288115644863584262930912180619369945378297739851312503380233597625050422077371463982822016885235361592265052869088964231220783988426394426222718285837822460516359332902806318757974357982626753336949069612958401328042113824578082457825030838290193540068953016551281288708707126523179886284842297324887761729549203030597304106085556408527892759259653666193977693517298926130770024866597534541782504684630954406859353236701249464073622494956283078835115319565364681289535967724323123730115934537352485885091528744340549045783551755756408929085966682556850108734292318195433119487570881125489813984871239316492642552854449132232125721055406968842700363284531892491020655820686529393592102126889044845401684434059153301649011033439657386619887645388081706146618977631964444697939050698385317550329766297484795900836435710050322031704468557843151792314453058768655406278579621480802855202309860469792600668951340461340823167239522762647920403545423900643973269315117373984124654498003025215779883124032010242843887341081433600895388496840312930229177824406900731676444094984819918078896521770445223286571885210016435426038978712176133147367351476270079578242584395195322189498588271818103449621119232250846931658403629913212108468755247986031697088179173252001589726841351325608348271754710473911252855058623553268765112531151235978658547527656276059707569560623042883144140123608665083488146447422487154356388767221316012479512228371893915296262427312736024166660979273764807414095036252255277294381501164441375919362130872350685964629280657856430794419022333394257850693065496307946422858028251550039083438582611795838868238638347970602792290464175567912087397699077620366482541192587503295572895746903671636348558123940770734833726459690614989297200926145227811027166050269735411119924216096804007579326900554889479256295170519996446535470947457081287912265951478289516377055386737826170667588208483231190093488050980187638399880152773371334249943916556763380570771039152029753564221835015846955578700707873521373159902388525760451612538110168417089924567519671950478225663933907799460727593309713761795156950514980834013421844496871185943802791542082755291836961322379833226337601286357029603109289454684699207183600782608880650601341770099064168773115159845719062161384059809059154437596449465382010086796102729265612912393200096249157987329903834058910826676529291263723885905928409650964904939901217188483198010704735906695042328980531451175534316144791626061818191142938121571943184876737585637156404461602704440851053386715862573053251331392740560829274081725736423831847985086389658464416404328467365534576109844888383659140364889375095524495163858936107830195055612603033125857938679501950711332783676334750701773428935507945848081283400878160051216758524171370108589994569654821397443182490764884173710965279376184098423676751251160481548580609195169577137667714743498553370045439012638690201370029844073367675407140155814992794522022561384955370095893506500891325930174221804154687224089394133049208606326999814285551139535468106891527699709925722832902023758393113731273190632462095924058768016693380975464495084301283503579871565631346504405156249663921329099932940728392910294435679384544267414693714435299234673024517665773151811085603370151409506583248281068908036167038790933506157141202036918317546600723499636089450469122887795143597146895255513946706500973248353471039126283062976792510641347639171815041238426615286633603216309149041762130189383175319871376811310740923221947142575957403249375003761596594172720315902803060721457154797065049177172240180364059851362907449467036178878104908607967256386914547338589206910845232552125088981265081653918263204961165766022640259036827860610543699099840855704408672575936064454186513205763375698612532504427085041054350826374796519552783884535145075508772398664481671908948547560426645520569046865158617251235247159326143259451502496105864515689461119762847650831647608800552727488157524131066313793041835453606218281525448677755626695788916506364244459851494040794685183645982797593886618884936003057339514403174816506168603903753443393163714026124368926040746015350145998129887827156749442515394053367222644183216996147455560912022269316106058049781902886227642066410511342300447777524649580515242863550845168410404409131848317324970381263119857363980985301465228944095226902052027076538883366617735137110154623950020306515407715603425830653416435834405024347670224893650588100093912145918025677262621345143849847212415865409996819200831572619855578163482669337828560021006414571405432837466068775977666591539858835974035614084130611755172664048310143924293573959808481045362388456207243835802074239810351250498129178013227523425829551809836302476502367498289495842680914304092590491392991719718104271927335940130826107857166818913098224940325251518121036118306935535557680229336560720811313890067084435879453566173508859215745918031288156772940571525585510967468659589310833079543858543268453021014368950589034854939814814178530840614931279726664252338331489539375757748275173588001201670610040007402346884663039484225592594039350986777781493918733817433026677710508368636751252435937165717266977810223654828033162406587597576752449407305707601520647244513932231528534582976315436217632591722684325876463946402300378938898099661599287586265734482032982380462097793959825352466714238838010216952088522970033982676400548832422609469265415595600601159003584700637183120904714154196330616064239334492093643600828967108851014368668472541706298874191878748727139811325809821853161384277859146121613192159437313844345378559466078152244345807270775447212699555620748430612398688046752486051090074862372560413251845650301676229715148268261302289925985369042191562424443384474462972753470150628491316980293795559193332629940993720002956211447529669207855891083774194194685979448681921187570305381830967877921198581685512894101863487864235129810986367029361411758526927655488909002619017878919513887748379981357236100705521080387727842459575753884426294904514587411209867177900284088223181750173940087119550808058744967422696228440512655791740006053292810909047893807089382768613455517608531893779273321823972010421882221565604278440621076031222747409119078093534028341777811549937049967097499836579445117762338263037175565767489896687514869852813131101999388889190496849566027465416522775724920025782276960125704869374434499298467916168271596608580328411997443644815216325923873984698654416486447577038477306220538923097737459271411852222511027100617891254034659704359532369470975226888178161557173572662038227000857490537066329870705309026897370180949846651752100443432604620123260640888355986192646590817926744582116355463859282371358811919748608401689787862867228029407552780066097857577169575984623908160184009898726172462476419587269057043792584302764456686531247563324622660644130444868792081791606007341167812998628873773225692201142632415463397183602544337563977558164631649125188543434980574033365676196295381925816537498585494137488715029641787881605535035361215235985384984241938808665015044383877197867331204636101931133876809565377099248162549769042399106133436351844106604611441218213631499316115905818152693946866142423743603418824920430488551647893533677746653309361046757922028560040425601834172693888455191293765042348169435792224249832519721858716467870176269839738206117550582451648853703081620130425643010992238413247246268833356698670536340643099652680784337896540664515258396826344129853186571720960640524166751487936611053291157227250006887625153632498291928057945532345625497575113021168682271204027022035977955086510917002958344583537743823438769100788493796989593895723605649000615900354364875850540263209694650578380026825495100463399717892613088857618074558863795155596952083267314595455153351001190763817868183633692386992012442741293342284586434084287524736522991140557293680981189111632428322896256619766365806404721302818988953228989004623001823622412686144731464235193736835571692858898665936719105043078480653197655970938943984131711237889395497630935357374801768871779850504593620281411141120826083075061141547929738119677034085028600123335991429591903061078292501101272606100409942466773465154844989478164476279074061118779430332583304278845297279013582499496159343572302586195377085250000139834402776269792493080326983402984756736541461710768155065656107314859109591373434027170815113065087694652960564498060250948862563453454489899691618706584290787659084666033341169719581125064278334103416199076449453558613191376667360973919240533022198833346779007825501721911833613626350995828725556303853785052261990618782239248765672418441103180174609307239386007223160389496939550310813355183838540021949774859313852930404333728548133646819104912268250961375855352206143726892431020734128480006654014423227857764602305197868386616680393184578398143222665376391854382490577638420958315210738180672187763020971200717845662118228731977952162104091447981644778456426594471173111791178048126755444544917499439239929798744851034888055762134435515845292042886388102173602115075574325463869353271540284242580305618337251516338176316944956715846782879314685119559754935803696321391924935728016607851643097599338884675769151452747921864411717031972669331973872627771324417468468469046039099814538639425148147574743496161010366446914458230845918695590394610517465931682367125627875641991073932657172958755847967579678127869593039055282212585437157549481927903488324106579251641332405734227172099294543786270512957407507933796339255400654468993763984088503363017063743106592001437477338323158597257472032532067211316619622521945013806452836315502349657261037642906028174593067062239445857329530127809855468654471252532069787605823147570182295764905820666120760662299003287298455700246693903630515353768447548892030826054196540115073546950934906406545127552307876634639767321601834888877683508078381461109966485426498121700071503478205159207839999957064427250890465525833691404496000571859475028414400153391602542178436682452358658850814293399816051602446182002446864567028566713063707054278746720240886680807390699452639634304168480920944175253375200396283764960858544700602045989913242686796245279135161660982057544392486812602185052224832007460590388334602845390621779617884587222088904193897768574575473329264060017373123039971283711368048213808287343954321721082668224899590931841855141387763645273670051842152837984076124843542246891140332511256897215621063917066192103576603315329148295543075522466224766699845134424650249808964923744816202046854975204402315629140933321410364080117590524588872717152693678388106796646198614785964060677658299471939267419929787306111997539074578620505818156595789595818499828101420463127012123431788514252637607605925609079832506149211584088004298148512925743535077840229434061062603036235158129638552054530207881933484986760592487315189735557743968070878614346348586951785130736037836521732842594487720128827341684152035376599914789703186459044434950172104936249621229309523453915298596791785701550323844443101378792790561894193644975557488973074289598124077280555645060452109166295937114748765340295722240898115547886534733467699802727359345816984214500259844577390976820299217230311171788996161492552966321188777687056775431604867359514589039297375307885952950095942434080988391136568281189568840874716895915372424160742968870123486082485943447038433874731014487818570033602008222317329581407288259507948324862084155653156060241680990315489654406635223135024661388696237908652243993205846811860530969621776792938907503261801421205456405130759216540761475549678018890516909548370057722798942637602732175542516115490374053021232649885791350395590099801063784001696394619194613141562730343317853579711933616443116970342303643983774078878397640481019636270207876023594225905066636228097304397477333537652361787119589250968638904319953245280833333951742676338049481791383673182120165707736815745940082237157734839704073506953333709463697149238179308530558862381201490986137546190922082102214674926418858245353867575020741786610471618788895496557641902325359082882274466590828363228800892997942551077763963993322479505783083208200156334769752345231495102014938614998750234204144721964350800234150079513458465017529784642016605466133956209943920152648647059146222307283685623565205400378181604555798640081741020102395291004287621365807882629932824097153567352742173233892618086122807702518024851268139885455978620793562676344291008510195549662857142831776465966775943777088592339256154174005151013173589106256196607576316822931362016225208634819764140150379676565087881065442117761133483681115753910511328313983517509907678338264159390698738327030891123293430708890193156808725157447960533246187189601651155678988257666006212129459874140350904412270130380665650444302163893473861615143187143953902576566160629650419865204820270272591811633958883729997238250163754043643616843570454224333803529651258323609975114883744319323515914728902792770327532962064371001668935488834272613210650685232109532002681241549352925712310629472558450585626850077908933807263552919193591059442533602746881467214515617920668172722976605101945904904398080029130152913564569779488713326646480427747526453592598361119568011274720514147670011080840776728717655997200319106230759396315387402702624980121772147282506303763756620998513918030193236155080693784283633092279073077890426618570857981376125789408537700097395663304403281267272493083223361640190213806810208345570503376401011409076547367796570651133583390737648543212319172074519222888679934532563010766357655939606657325559763776557281179308537492483602071081266606000453946665698321130457761677270680049179733796891283621864030264616706730670375147698486930317228945680397330207047446000201015568929284639729729703422560748469194947563069196053232701314475547377660054249860536720442221517586694985524780406925130684680828750149824196411640946477294873648188047474889136835263688217200836831641187685193082166243568569187002074417027354113871337789853240839351989543344938144864722994408346265695410016854509234338917915409367328753070801389165022804156291282962305539557920688700595334400908134760452034813496772983101192679438813256839332020601445077569154166774804457102964362250752967230819492927282478269377864798256367550419981322713542708098762555184538520481371570195677905936337321173113222943637542817832264268140221076181917747122078100604700535271254783929082382962162802421860813588114074846823732628013599590088132341996629197223700511917705326932155823171885027463046292858239644548811093960843677725415103958026660604560279930966890351425169093708167352895600320874715629527435767383940260450298591944198354453634983093439535775488315308992791551702885821847240187564962673599628906460198108741059952214707252720730279316928713986858729441128864975035663451303090479066644949298500148636969615903793524138712109110370585517831950192747384126733207933851214707445029744965995656720717999724881725111209438591353903930499336862845775219367714750224468016256894047694682583302884230242072653480743550342198209496836424512567472103321087598570846368400700892868618918366249612637752011116355326489178005213977056061474481290634801279560309411509345831351034868085784154937068756081309565154429840527053342357626437515244493479428658843957807668202072927281963591488836521119660307279814414959048945588890790056394716623084720325935937817640714993454116496842561393198881491043343035843063344060947635217741990458967832656778401200049222565402719986140910100241763097369740958830557989371045029654015223539678692992079060970822559286144038152681823090907355504876136738142698202219712451896534468316340249688919627338524400430422514242359035376271094909082093363794556691617844127450594933456550622086500298832889092063067558756824491352910514161963666385858621868299374942545510679363736858903177072634115637191696588876210115990054735112684913127996434628552214629110380920747761165955067183361423129952228343418256874311525431498700773244488033083147528640805382140468776205995958958392091979743497307683997685885731428120800218537877296584091007850369492494849790335453042616529348120905476352796546182937312727526345593280297471163175465193452802764348140029174143180299807843219481028599953648785000131904054542861212126344741651698733036315402035852811210105954909601887321535864008972819292221600262242834636302983189296275766290857461022645593729988140152541066927084666751698923985308031564894349787076928955669320710758879783529125076465927732599786468993535207227412020957568739499731471269632289247380497656536843721006165286103008369581147717156557885710668490804519144887398806291004530947940048485713122313762753498216561358823097751250138933590812240985731319535993243476361438663047717885826292829384070821646527441174658811810541379228263319661038769390592823689718710661510160143138137291372549392175373898588603677490500746893031824961044166925748115117192127715978619462860565204177574178485838653496135537486837266767378209022603895547351773104597212399166264856274493241153350410720802726923716064126465184081027383002034302627626005766742239143091032225666040715439691710771927816820826209470414143922730930504731380415110435805910186973819076711862613072080738960937208588295719550488929202792352220380127384185546596882663013065285111999284682408991625612483539605245910004076773139407460707218815700670285126426748873618885850706928909038601704881251676997595613743662166346289227679247918447469706416291866354189169065721303325313803529417605086114737858447421533226200614611257317433897186181259823408878152957293118398607500126533921193792982814790352557489421594878297244477234898917385759496966629713124596079067658508950489585006938879240647024297264746079845233277089285691839494671253747626276419079658267249095312339439471285767299297787514837112843628940784951657330665089752260010213679087611967069705220243809985312233600644521262176588714463669776284315256591528327252665028978129930464135089895934221238766340118244867997359636522138382973200829004763092515498500690215775269986923419742125798648683084710372829699812839049158708563104719369265700287339797633538045315504242940223954708113925367026379247344833338651147849122450909141708967520316282533750407263814073316197088590816475832983560952800337926162670776216053844269621274297711888234463152869283267250665386175642973194925777945211368915239236881858344281699134255309207035844837746260614317305219162309245732382140170811892363578904313899682929449049450877204433255635907011670288409790064457338808633496555383501411610406856086442815441322498350855693103095646599730874032179538832210365627055340962730715910285817212976357777591104436756827799853830126563263615740997541027782820375245683230883986384505038534374724233434723230902258793583090396400975712031320905672774968626655962101039287514124433851850820855778605254578220173072865534128715497364565099599288485780547109375735707375956496642625306400858709799897257163041290900967549146239376239606818016796514070338124628783539586086852580014728235651086849228279363226043020966334652542826897095198335118236237401773126687784540980043889299498222265863376296507876336378883605303431919200314540058524310043062473904088589115272922394683331761874001841013297410912357364631697210229584267371131251714754550258052909049225920224145523263895915972015084217200790066824714260269242253773494836005918390059453673638667260793323284577581383933394941180684857038221902214581849049342606655344826522203875429977585119285155297315140620937439932018806023720918237873098333948819582966959868436243498387477922330472852428065747504730479237227414979516902459684196632600597026051662683824958811826555534828565514882651306561982729493688086013099476311064801587964678823333252551855469916532342846158158595144144057116615287085003293775215393349019632930873343373748485894059217086326954979499702624326924452758946340214740967087604296702764187160079604364726761487671530335232424927764400803060599507046284315302504194532639359253113780933576954833847530774923079517721234380833744100295626233696575542187412258444108240921758864932362819004585089835673621437530812936483413082952366880743805288117091414153667562231240703360725985904886493984673487556497181866509622658204544436027055314188747068041378272330233736107167751825902585330173155129272062238618621392578443014643716549057270835885207471657798356789994984471862616161785456266439533639652689121808884188447956457893661440732760229207593802418153620345275821337901048080526564430812106376927530475936591123985389911795153014840876275649669929458317230605178789915781108837059840775078410267967200059995584685398985430594786574341734382294827119320253593724773884746369911827525856923264962394414095378452160323407991963958385720950796321154740938545363800247816328919460266890063857115195923080267779703925317582452416615579473945272920861240572472695065368712022944716756900088905783768478061341480309742612682270843838538322604465968715492661737250678858670459441756660886475030025059309587540568392611985612120934643324742286135021970047566701741451945708727947606859345407308606946835377358504003802259675865236839383322435737774198230384027886201460260716744380027544735456806600994135737375676171880058964718231657110137617639906215968456018739476997171288193931903188762099576453122892527519783610369334505064158035397122830540818678764106963140882642027689424241370520507655165643688197450507989624812716749794385352938704328781539230867635212555570843207650077343499684547259409544802509302973656377295267803043267143081602388950517842707918017028724849174266279237375287045937607445464058120548885253546184422337179540272854419074536759754919408350689905811885152178020437471570328827838492001231937469962362530679205545865590430448065287338990138567595827437119246802586681798431366980556894340664521081246465111081743185435379934178884025882529481539995852030327948529791058851543798482966903556991896855160833097717158888438910236484373122357895591551810805089299524006659791080620457534647132256111422120241263562746820660386432364484592730537838945900147906062699479700594962074771705507568661244309099926832297704104387476005131353010897746574247881142011254765100187458120638377857287504886650207819319234273946789987852048955820191209696480890448597098260369380036422013411924021374027132010233765487485715062674494059484905666227047839709471205714539903447568376819955511225629497374733773354491080010340969995067040837513677477920875729317314391639867466316494243401728300027991402507572415018216303432727305758360329092092828099598010238871404171640998442376421128427700428958349090912635422066281962014940598598138597151770145133869460107013680919321916331435149648739355470416952973611657103744706010276348219671741651053594288161141439331242043469824733805087868711289755259741648094597968167295707164873844083864384972752583018221254303335982889372487434052387683263909390314770206781350108256768018083411312328515275932777058969444726598486850848740260238412440417094951203049876464874466730518865355201036160600912850609736754833433623858968434410517106612822880904961529876443523207633276804394605478710693616069344338480404232567182297702437624843009802951067443529080685857828000379147998130250716919859570854668002611542716467546267386271933648984423957500588568296214361466454809876334127406269794808111947179142936756438769625469923184129929775253107091516856275179342456016770078824829520790198865813846211122431125442715344883724599303530628130406014716172033520838250170998766370395741978896751259952700081284396495401895990286524495921637692680488869148975609285365729343429886293987164341195146747280752787648057698234325149690784806261672117827887100041036997790260061335460734581862822812186891805731640589222909642426620721791299855856536985412203032589269464448029633836700200860256510752533081796207187227978381735508449511424786320516694591518776902617691868949864776720891675078018314476767482538425620168724820999333710873735617003662912586357381647443551103706623028231470571297570247986102886797461164879815660947697790338056199165655296572489202038430935190028458661336618263431621325810826329075237495253846763228418731291368307511175167013582204466016442853411432733070497881773151993152609015037751135575995184129827874453572602100469183664364865389811663261348388197134786128173785184431104915280013848913468936888836225264928052936014256624964660092126194270623786932410615393101066542811631030204112365057831636751405488439299621709769210573646463140349082298567354043905188943739296375430768763678659229692279695682048371197421356477445738907760848446591580735933325379028710558374583666824918002800458241209907700927058419422306714563653937975639822442472576180830330209841712743142219436509202547647529859518106157113015391270308684117010996808187966300012575029958576078729913324642868903708982878167296572190113087438965299296829074273397003518730640950428223233337349999016006082994033309390451669432987086314912216663461992889723974067278759872459860867512977017818529713180679691893910486765916912309705908938385200689483072956632495536568373181021061757499511965867169570514673824035261349305831592676857385738348837919508592549481630318559251438548579105622464392919213868603266195050470194695694890152018722856344475164828569259423033004630251068205483744663883779551549320241040124346043368836192295809790746096679507191248002810590616106654675829416390336490104027032367157285417992549861836605500790072758672902982299008291073038904112433120740970097291965774326898931519590164521307972066155897828725539331963148554317545595684773600799152092633520135961573469224541736795887321493405970989504027092628787159714282175800914385505548165905180923336560906205964438301567389512817717005552577470472953325784867670065314456796863179631597837153636558192128645040690040105491890697983324247481513490205830099012025177320431593134380251485117196870473657889147346087485475430293866730592519933688341234808238893611578967693599217063318238559414977364078072589551537785710302612551473783764556295236438816737855061349157426971212244999424217475277015362671056312015943612287213135374484574494646284940843491800330387453674098661125648094338999874977433919424705998315196017402458528893760625823101681388394652855975565893839189848627276912124854442297096968372986667978037995059693983717934946950678041819491467936080718781842281066545870522622394472914129404084316983678349605831616445977730529388908071011887495430790089017057215519606380497271528842378473056726390294229045721006452567116390597598684050560284479014557365284861881285834121426972399579094220402026866786755671670557984196646142918732773609542477880224448558040211302080345945076388562419811429674205873633687124121955688393771714002899904136746284972660271828999942764339877631783757032506027890113400217007574004916693173604716036231141758776989919588782411176369687444780490609404583949821140113497985828006542105346995956025747275785971141064028841428496417619935901178050981459975088560074834175953412687685558692457798254592776129868960118142077388070468094557110511944254436580936657915673315839749896118172363629785693584695121952990102696884079505720690958878737291376018935188072261321960896208062251298345115905111533900504441421745852813427517195821590725591468405005643857177316441902761341440090120902469436156268834167576854125594161583849441774026014465010913921921382082191202836928010160898724837589599222995055691944699818588163845861920890027522907899417661936816167664680610454742031234778252441585816389573188328944384539760693993914633025010990430873231506746448891764953781649264128208958777670633900332219353707440404279814575960439216604179914798816289960299554044658687057234100597354207556735562459254102843880577968290478049977020908036665460398887314133998816825823468003588831395548859446117076285340789205702625367812213035132399388934914982730186210929396136394545833442393694705519872204795555419498208553545490607732395830567093883880074576167060291477933761977524117608724620312041837912334482175917079138730398648480531627979870364808633981796584195338228880919379193644389550543412589410548778730495192329007088546691080554989207843250173553602705915806836764982216936567291579561656268097330127926559772598017907077805866702058340131530463035869097856693112523210294996340880486425532576836637661752393006937172825033592564886865995965031684677085026649058045169821009792665761442849095751827470422603571826411342351242296469452535924499167988711905187361119448022057010415291383592509106736478861977701766136676832992172795643628550608088503133195048692095896135951203238082166095937794579419458524546462373173828718683821932537517486999768782544648061090751177145578198503000954448521577337507317423527700789328131598360353260963481010946771824948198580064803140991100229187896336719539696031273311646419436423781681539364167250070176207452459622472121251505048601659612015442678433621117435161109794231156980551875740021130837702715532534534924900615729272270662909877134390438315591548460843037715692691754906039285144638480678150792711143315477708287639040412509501476165199476310578356415503928878633404415312379771695916045995563227572732286657451119045589365134096713699681193352437177400702428398552762543685428130987196201985081563529204760626834515248855255211570067063811972745865250212082094723691574006650878048981396688720308022102167315046431184216595309329352236274127062465039938510994652123753765667581522028324832115858226317629445266158748035903710417695825325951386316257503192565175555468018963467248757909068584782604322626342370600674735578626294745419407778596521157034842792776134453035373156539028391225822370784124099574446513613756841273652267911805437664579953780410590350593536403830475372118978607971156047545031809446674765929095318170732593400066783771874592198288715600324733840341157371090994787138276603907445614653905535976126769617359925338663389597844086495951535109175357859857084525805543552379583124971357788438837588011754790166128716958885145121010382845080060953351829332622328164793941355140072846497272076168519812277175206651752279986093098852683330731071880463696899466686698142412174568351562117418183007281401641046494736776107592575182207570548658320052420596443416053678381061792806111287080478010052156955424777204113022537444387897032304245085527361077189385407150317241702377015334023043700203105240898368438467764884781459259002031727298097559777156095011616820330328485280160165158122094069273225004832363431155312246619144532866678964945117562555420252671051511320255693434000712869644360796850728549925082589841387810961576001792853438371711669943299601169820722285421597349665998982742525220970150436742945948462600980320321779351597751971515764340587566051938658550803694679404963755252964661616254387734936295427828789986143270817008830474795454955990143065638234261662522927407808091230458877740104712550349042868265081606062416762610610561903146989528485244524146681838354402164685505830579964988946423405588903088425603383460810029021533059547401924602382270820158617019406149669115692238871176362368669415191834800628491497756078734457092924476558852608014881358562160478522960992050453759285500631497834815710264607230051977714744217561552743399493006832765893693509318250907124183267241576829336137725747062541892663089401605784389556178168963009037391202348059518622355430134660630024783159834590547559614372482984319170025320289577384678576451234771742341336756893123545224742042552974766470176418080744838911563488768674962711831995151500419457067409574998728223550902914383643293708859568448002335227915889216009313230067037880973632883667981125052803060188346805312791778232273579484016327078024790151525570446929733505804464464433610459008007130704653946270716172635805635703563041569564790963273900892795560470751177676871062893483309313113522929999547199097945216583643647665501966017893068481792182439396801020990057998063315968388426304221763416122300167981770784296932111184029690607530202704331642295540248942941139402739406312118341789811703769535179050219963170075394177937221276787407501361916991693999418916505363190516660583515461175926593035516817446571669927858948109206701249090269178321487078452341474333637472031137483065366605285838244372291897594154604422864991482825290046175955473327859405860219107303428113306374702168504589400128789539392134300093954310265256656989150122091697335184949422030937956269726232169754169430084119177184501937123701457335262983021036419830438847523870106521233155218434641433265385558605730513331238288522756813206189521497139099946535478119750094297765173014793364153775791272636414420061658586027334517372724076412281109656139059749471855501651643460847746451583167010834313902825531843510061197559821708890582503604173467171958588433090935158372607075606984391234593349996303719577716456877595968535775637583221016099434611665519885777531184839800918120360670816001276227571463136009424989510733828530140944378499088425345754702666220345467956865942345030248956631891133942003351576246924485426729189677539489265764229320835354270072636366123992047732535287748262427390474757822607867670554385290069249796051552381987308894002785298701143049103234686579657233997287028641279649631843093852154189208662229190148820465571883134144033480406910768436578391005920098952283879808135209190460443606153006673811363095744756846963238696663890876972861282381261329544742362050345950024213980624594538057117565026831946733415373441439084652618495346580252055216824871782093908598508225122165549218429626433501945421322534038804289445921681948415428616595339250024053480909287494902103800983588348755795591558151220611604231281672756420757385332772488356017361795586508707974153420323065266222456286799399044713412956250376836414541677585355243311689357565122071596356201221429964668882795451661467085779966126123553915509978283123947307007248663977353048558881400025205118938583082107887569380111527084483652308051527181786844862836917993968774242734641251045806730401884582275662775192228506259454052756246131138072123558285678065244144695377071229428989456548141044331260823052680566063649747731229138455654234797834253835960628572283623828034293069565469332244600035658770475425105735595752917666898435656378019197518671888437805707882721910750256641946234994722342825827065029465073130690221418924839317593591918156195644631102688243832837645166436042813027254210772754980798897222183790219703315154056979869553807054276866392275800564316307150317808727229095285327477206947682230729136557041875526920594864196312067079230357816242102896286438319991897028691777253058759102177116723041194545516296461131025519312494077037481098755565878738051144569836223222337345741207596431569130466854233728575085893282179192749232279675429999715270881446889022788652322176688643558752181524177677671712976051135483471041472668217583495969168720992656109484063630284084060811335431222003892877409512141852707237731997113962372083688235962419019215643151400498099924076893808165150509821036685953987183204399596217480246317650052830164129863256814763525831481602337752743245049255184469903134928145196705014111567151060265059254644886812289567762026201436429074332989668701255478139366653438636557706041770425687546997846078694404325274507187134796487819696149228575018537619235762870469669589585624392651000646880184589357565806572298381666564608709145571104054785165748914142340137720024325062459353417321631678044946400712251840569604403057305754459512451906046426893883632198515539382455389701315565305176525888334365872085404759585495168386799930975850196437224795948596040623552825160163436623402694614858221820135395830222039731630831557226815197134383538756735814024396934695190547326304167149219198595071777205253527881825773555239724081615132802635950238389231622435001397605740529256166437498908369321008437421424311021136424172592190723524855118289089466176313261051269344305990340010540035853494431747620991489357582460843069097685444957686441789072909590727194370456039522110888928053066036356275052792491116733675918922149453010722492222281814387335929249036940093951339125625392955436533430964682350314131841361627177189330735295243701427371695774393129698255719182020396060604964883507708109969600213368238458188366285099633778000718381250246409375668587422231755910866020676524608718226535211147789526148803170799946277714819067571648019778106346724550946629129393805475802914469800264488888899468636042770359205301591298716298425046516680266653614557096703694640447852856255990322631007577161394018161709076324128094961426431454877289131923130000372960097743891613691832940354817216360092290126067312865458017614636803667748692735520007130018906142147462784835330299403877224974366834678726505955855063046012824282322516136199715350005894942629291160806604885031914023427289748439861412335278500829353545524624267071735485196547370052692787032633106636757564368229633193960007859602738216878679096723917930309954932370674367140846226617017369927848355793328306655102554800943724351202468224653871753185304640542243635819448972204177456297301334635082533769355768788765997682019288379873835633834027429660650970703774234890543147662903130480366364168365288247651746953715738351440669971684844986342014113901737772757598821319825871643927462227044552852355712366218779762610606465592055036973107507953111989552680008561463409166738138247378093334109833485356580422248299032102866380473466958413364727373551080051561186490233619918648753143585566480860101156586714385814933077006399635090716207367734612456860986373553237428421617625939596503307200334663359671941967496796876978891395780996887283482509386109957504006494113788821209812073735172758857780122954263724289790614406540090665154966937515273061790331112149537202823601057107883095387395013454694300012136919453888225408913552473723859691921760470460143415285911771916449040520349249583449612474554919454317753704504370964188662307966531094609553778957039038445250908462285320339071329295935049882300198853801896726077870928167975165654350828395706781739064971820461657912602017079971862205824961241417036334412873360164641887495860123323342125868798147929078619082624283191528122620196823452023446839696797994455981841551574040411779735410300016295203591934936263016611590394183288827720131071067371783264721435192172978507690314420215120512560392150786071856773217291741242980359403055600294562112867255803733867710787457490328089104550856599334806774194942036605874028447110301729127973273385428509844858945860655025787312374524229907710573167625695835759910445648316004832200052368663686948830944205967633198396920970466579905311406136786694675606833390879413380667290263601688328513876909484243133163006019461331334539534142473166210956358085723640123207897125962075055113528690885666376309779498448352394830047636474742153121048191986402497866102250499282341991057857159393654862185393652470359482427776402971421450383007740030690213963674233922299358346340886462028703530534497834250902167746905317161515017931473632546917520264344567079529464300997852894925788477224277298127399319302925644744434963738068318936940295188817285966442679555355907230486032432595801470251838547022699711828949122084159714827525958900019825046943134345450771087836452650974457183579941885258710704100580779811026471716716824175132926320384390058171737069143360917287626417951772643375899172217746389982669323230145417195155101169040238507070273620139162948335665579922597831865510092733455114909263287734114602034049950886378789323952908000302914966796468682646655103127019571980599213911308223919264879964127176028976541267092887885418930393766607256425032534282408425318549336900031449901896866112904997047107060959402944643294114294982537407275830709449681022574948442580624416754571123932796613270894280632248765019739526657564609708979184404587594914527624097007068035221758628776455843457707050127329314873157529474419563177036399339057901252430740752427575638967184556880459030078534948200224816010269264737833208213177976694660138764152843614875557509896230207106161524696786871101542189386066560422559825027417904102907580529000942487704457245885859616442828261120604274339311438397609737659351140320854447293466190707434365000122365346346419305717583564825933245952648364128272501269220960691719550206286203178101326941267341048695971152331676823050518287929143293331904109889748012501338810296123718257843050122833433385935956061040655975257702382273619008033497467688011615157338713473498070792612341169729255313050073809675548172976974751173580606640277681313540570087004729489591292941821671966574618233016316173172147807854177092715210103762764794790215551572493561942051889149434410343731737087263836136246560007374271307910713380186843349608219026980504191820785715350580704682974821014735881263722396186427881547490901218211166239303922676120392588955771463137684941040917322621674268222004906990920070951404028538108871334991177306265571014618753382116412634891161943936768480768219342591664034599416160020530973267238574156269779047662386116093008899330229381895503383163610458397372402130119169475996550762813959932608055962988175927910523007220864738982431647011748029937402851041620670333285759508287852171444081627701245941978155625166106096923886911925046127636472874272234560632213180406117915701731101594873440127669580745730670204460293577939360930581709251114691273623122258983374373932643934516054858039778433048955824394581500746902100575278620151737279089879553230340859294386043306013029986892288454040584911960505544489835217984405969024807220621262335641438515380757321836002090901177827516734644393632169249610736205395393208740383912961001856861391580195208149637892708035873388212501025957404812307573228608659820902392137686268253237493382092100653483558808981702123917075903648604840256485755531456232402507104140192608653607920215466196330337883647920568727777194026184934102462150009304651751589456100634857522573363727494945504883725296283884823778283324300625422688254132357991893641812515549772209008409664026290239856804092026268993985837142163834869572646247002628219345323986188375447117075088380309008458669729249070533714878778316577254730013066925665455317866939298936807682417420718557652000014899516578260047235501020287048760865371984326955732574449918252776328488414172361891739813120779939941226758505354604229226638362576102694215897913332586375358367008768181002078612670698694064104723926971862465686166203917319452364809266130480916723266041571788235559657070250434917495288355776752065096680381574869617413412793145908003526343846023215479397773905217063424392360535190207716651144338685830889254921997916169421032299253051590500563373966147027408433653959526626999575001839977833652608730002446255583182240151045309146802817116343102349750836019697434757147414619045846010452144675285741836759403162083780262606050698699117201371438311175402880658928938348240258547610101434134307612017965594761505961394270731710074473495069217456258569854814401100565375312838027661757905127608364732160578051381693514417078596152441444664861844156737699446402904586301563038344320706421194196892609538036859424942402266374515454998540657761977888313742968064168542508326040158665853660400890653745636017988232417211958605610603016189747758886298846074724190210427832442065955233453465931028285282797536556407979886980577457417828926052584282745506069342837448212973022567464106576197357071360340894556049642808918688593049243147679051996310778619917948175539265370951093141573416956601671811920846156688896965522649295520019999330785882096345971573428970834091104707162858176971658300411852261439248257986051243568886174415804619146857122366423139177246860659917009860856879336754764372972062749363788751409124895406488468423491600617342923265194861346774427110399382402836025821260299468761845545314797577922946525324443665433077954826305925249858515988846533482989346014865804664038966813435131649322746645076507487030047047589461245472354887282518436901748160587107826385809231011805954517025148226172912473633722798821682264336231270957517121344800199092886805720385540538595362810103009701732823906985710398332545304451442652516174852132688178308999382117975368076746159831540434567412010778470415573748311523971891186095851432084112152866732792096174255996010225679347160883589287717018354218180180175076169668351013673269830857209945980574717819722301080786157704219547583249636907902968628854011071841792493919744975960089195696948148462575017296583760424044127612475327913921709364727355572285461005444441042290973771103875453181798053540721339767643724441813673497803353546795091915981772288777129295653768856286972731588491594483073194370488205478658676899313137346816242108159012742895988914701310103051537901080071824086894700624608385114542283966710600653545911643610762771240229201413386567132221380270738141770084263831524679621893294714930835593423122441285490664931856723801837510898209742820157462895134324367152972332089821078169552298205880698400340341436422618029856610662599463076201254709697117316216834884119745347231402459016305051179048434355647542478508920716412117911500882230092362903739024262564869526917563918806933863505269234751781184880914741084457596619782345847724729184834595382889345892628360297991635724406223864089328140278757331169987249420351805852803412648906573959588936904385493710660323532384430983696059037618282254000155148093967107761452123469343317209333574889447708288657854871792194821271467313388233273980481547631712292317105036095619898465390912511827520289467345548022158746457569953114409323982603771999039126727974665824281691640392392367976379894766113761284987723861296937526568130405268968822751102171428249050758272887599558870840475824426962298249485059840920884909012350333055089581665752122048615945046289386083188064760540849111156982858663056974394254901814783334317316270628626918537069179364232401074192477871619428703358842691891041195698009315025056617861020741836434275176685985583215910312326307032235169485915018619772725318539581763873107821595303341688620373134770232464060488751133069066614029100795821421215099617700939994862731819987263320083012934844135692884481318669977967676177600355539079447520329640453899195966234441584863935696661894722727935176802890413873512632484243906190734491413069820843898316901243691818154952778377414519655118076961599526230030003822365082771942543255329275760131107737011650164836547838865165112025605488724517481509970569836426643838818688811010099639684799534558774884583694268259663374063524108180177968664726608474509897070275905674535784638590858869654715554346454193623658665431215256443965016199334472811260597522884904101131409809556273098834836975647010348864201829909777953026315334634752749213021865532513047212473091155356447305374626570806933607110448257627853398925673678284362119690030544022810505300105330126923534875928382830470927276252147586646471886404275682636330402519720600729228548274788965100146636286796394492162681600361227832358597040475487939463282363955637859325067829868080312945344905019563613995530967297230641019694634512356453191074704398656599165772029528484292428703532774445413150283064513906557794886735151828880171244217743756299327005125540448963662386978755137123999893198216116667281912031705206046227413712259791243043094607023592763097172076008095603708329513601246539940535585408635283609684809870413922301003689161181777296144905447147885517843521144118191178285240362072774671586535273115225073232415989037250805372972406596260674605073409610699296828285761409715097400576743192585191511636248617826469342235904385801862991624571131218990251810742747011878394041388633548799383583008635397458281114969294071058165735790584299044697314489366679056253170956099151934628254050169740882086093022247761110925183035748905845723457713466197242314300743598704582992187610505572223727585618454275578785178729563001644913823434269185808291571136173716069718066492755739476953030024972952222682687964647350430479928292147667946700781748889115361342014405465085773174863524730818297757606783303788325220688665163385126698847146475102788723982213629416352320261504856135970052396734582412234274554621113593127186298493250965051828676220294413165082804554227468083077802088526819021508062972637608100362825491806488681209947632699611657183175231514159718135425826543913630882302419209300471900731903404392897074922858533269138341893199379734288910270630727999097795793023596678745602606195440215917046393460227112308006006668656487239897353581469061761097623575175233365421117991962255358643867148838008101386218926739601142161708879364501446895606015407095984652677577241412404357332198108263397919070492056161209640381637435894646502211569782389517186590066230595463296995642388460537389888739720051207242190031151089523976764088848057583898570889061249301373898886884543534632465059863610745754744639767668981325060458061874404975167216382210931990826100168925094792432758686501516818098088521144541267684535297932046811147979352197780461322883462637520708445143048769194541448242059445596288278360101100795916683918718138850361344833614510484567142315199181981158884196065993395624960818886202516901922528314565158924504898769504930417315217282616498096039621251590414319990705231677910422601191768888402700384152383586213427510319533142222160138632935639955691737045876366807465829557075863422282768017661661761175767458148153236299977804905507232322764379353131883931936421772544945144884915210756539894958590267747031004965005144046433744352810472253840298952800518234165470617362887102833770265608311697774950047142547333155283689134743952022258739652756675620262533578450611123861773145144147491070133556433826786837940995775151423025469850747180886273354640697003815822538614334899742789951623518895436820754711872536957617752154782478559161129424432692824941011713391375999130509741023478488312951607441586407940413386780069789945452592018173196020132195275869170214422448680767116914423411106425606046154795088469406438846959309801073674424346183750456434626548640695601424533779827591379997479080929398659626986081700083320896559181542845552915375014909644683184413754558436745853217322575085777956100001128775908699333114964268201045266582035686511765777919736560645559853576732567397945879711392002702661258291265713968300495920861945790690758348052618399491026395404779498536738664320129816189414732366948348295731965786757689029635917466070023366325251743159517946735929647739362250781271549456104582698255882563775126980245655185222789264919396239329844336319811730048268758319665196637518217832068892953935520188930710705176882544257396228624952379373165718305834637059014039267560521849996970346268837632898533087136545598518153341963150198275958684501085627981187804091533741418068900930843358733073843149073967981376743052046146288669177708959041023920957762673705355224742656579504751214844288743626778839499695244734403790913217852549076437301311529143643195774779712535933080155485786357990538667209291493652010626693290757307973490111920726956860391834437015953535574328569882604224842746078141417081544666051833480818102714492565211067843200541377898737953728404134566479626283159473052484674169418059786076218219259089299095171961610112025837830593189613113323502497232116963192819113275936496655307280560721256455200973566827007391528824545797158845153483759544960149973584580354079111928569271446882940394538843490910014460863546520548949883826243624220001606993983359428385660433157444520689386513638464604665341053566492094524563962971497198844437746737814610648267436586260763514006721688718748436324643396340528013623374046282755271371851161459935936983110041340783008507588699253449313449812857298422391346677642903911689412657007708599486636793533238587918345940132752970820858558270967565480056492659727603599700506280707936345882120575458931563500746631978496687360575828858708860771447258881253818847518322120363617510958264072299814898504948469619462379512402518248705697226987837313177286899934701636505232496661801807552113566203294287447850732476689442134533603652428888065742195003582200578262341075114139267854521627440051128024149284210303125896580237567296588803386618449202499499806605252575457467837421654424616685519137476143306416812417084881525443684392152996889208630355548426206375305513670423333899589567568455650101141061876214954726534387038812573818781577510573757102058617330948399982075385034663874600098725474727156648180422036363882023057172107432465710951027273134407500986160734898755597975304585470912585067870884815137315322585382845280392560305454818471685621989134105752138726061529000586939365567966185396674573737158428119068109842622414731648291155745749943545567761114846905449038434272975400152326770862543885721217994141737883419005916383776462415505987863317992659764781611922501010144201367300950165931375782702372804203772905435654519534775145675884989975542597817468840881549897351484265235628820185230295079565799633049524693018862187872054049740581078240842944846842752987354012633015906710505523860349111610790096781673341871687036549614614113566486131029449117539038689333290146445206073998538168080316118959683547524849649982556328376445974563917717278511689008404933960594653949883924774344567039677413217273793716485852963989341686603960308931546913413197099211898887176163346076889762261183802941676669759868974026295224191270318742959773103252406872776082656933798455636007510063262460146234977768154158866628399130621706461327939201763542720249470599517471401402972168676576113908163216612430076703191121396947829344596111725421465421698121188185077843441121278297230165566061787657227601191486581317144829701246742540033411904128969361224127082453230870695997348851127816331593981731667662562302325724214601683570102243147028524296922937116623776883560624618443692286794537065821615940522169568392695488252756953162111673586343607335933047017525967344577642976789134198342334239512999968987868003427065698379526338036713033358059910562759925408905413007084578909039508578105885584871994422974193482220448964730197702900118528953654501912831196175761091820510827333642891662989954336861430045848290382830767099318575450492355957089253087908217362950573512640110298091157616446715486830616216089920806885531789013553534822453236828137364742367416840148595396275697853307475181507864819243446841279785734481357683930859612763585580492084786446533481516087542092865882327509260307793842520949258086581304515619332625978995542353203227345770263061250004649261226934959253612293686046035742653875442001392980962284666959290283111834073743310396593860836628081289333218667476108549423450378085886180655102713538010861265691332093511066643412612917130687093502854177644922759312398823506047707463959532451393758562278057250437279446962889772007074003041584590706416206721657925817437452245488267695430591182519133626424533454118530954512717755552257084232247395385838765589767635260961586905318949283029338090779635591700041669804317318012208647354848323340254959543930255620361401055509261584412631488358998921052806329994007805471613077630867085411315133843333511684676154245689587894784949412053135271423402021815833368867318494894130107146832824755988682381928016561795628303606299493288038495985388332127443818485621798525275482383408986108488473035020625724409568448142408780027917910073836855237830159227837833314143887927230043607483500706736154837534923887914274414779357307531530264219054497283293620555396538375117116467008788826018248335295244587798322614307860677484681876700310679077064816722754139326206254833537194444446990090013579598617364392729278262762070751202361410230218114827463477034844648730919363931965260347991395049347142409372457214554053570132314394807860364353997903273043195751241455322664372843012555132669330207308903538983894166804791071867492065842699995649740983336058195848025863001105940882609882522482794048286280307411996325118259041841803163758572334421972854616986566669631933518473583524671625440239133116848642152849415780822270521041177893166640485566400152498507238741919481282270209226185521055903916596412528066620668418885189373109304559254990243307240532994425746256986492045671824824131163991427196055035481897621473925734684005551605223836878945136493084409714816693865055723430658359219688734072663225529893720215794067564972577305860598138322130633923736934491208422466173891399956069230340013952184025785305407443248138836891932469161618351522768499079659136842985319321759209241099437066737124446115675068149496698289103675996793898906145542760236009877462642075591774115544845675372317563888916915507064818397093294702356598201716746648453860703874606605246949209431036338742505116962376568866012187095263472380945095038745025950170359189009867547209364803210189836981108177217971466077641414591443115791939030183173046171357271717226935348437760786906268075288893999476873810795285884689665513966985167508994828483537460175805166286975224342881958076571196970123898447959166568107465041379013063879576015262927937990541550334537900118954241219487023253838282030905473054194447655965945629610891060142370737192139488545463044835707378092344098738549442718061562302852079146921376525120837172693860159640666581712413062608554645429558661689266074017154069560135226798504585002827711749689809421668942786173704919107155972246792692586469301118906297580472669478531494728951355827368963216819605269813469613324617854854176101920169161075479268781497926024377115942526903469483729117718132304440541513723211590618166347176205310405091416665189234531247083217782453416945774182794812255863256965868092489454191884925183113018634980993536967781194574078845875027632050065872048031689041669943395328003206331911959374966624995852800503727627180829777683861418227810402681590891013252949445928897664940494402897959815248994003024082240754781745683123436372894922186368747638770909971452980586870572961787979973605236734480152855112450265601175679012954581908888590143069690079129650997742083944807396054703218113981242121759112584335865495259593559317419747037260334539882975797186680709178345600098699357918913118566172223935075075885848913309314387666311273170298360927434457436590809372815779987365695716440222244478703819139166257755580977333964629198646275837256351328423314651936169356118622530129291067544417837207819387452069505046667458127904511404957809341050284594381469005316270901930778191651222750940220748709839917469662144026218628546611225785571058291769685467350535678775413585665514618554492949580613234687713058990731427103239670554512824346505048141731214284588977930609976472357980268762767557543869964505377005326143655928497390122556791524211880435787516079276976085052629180598975866362200017250255062449720959588153460326702646733711117583881949253807607163116811119950934681131593823425768061007486770170429095362051746171548765638293231587526110543271033802714231472958253626487454182922108012423724673334531440367438978333126127986698618976930347640960137840545259565494781873716895650512277842049099532175487802171389564812119694934375405213399922580289899427479576941025474497225271050986449918054461922826667964655060537572841417966835518276447194363378153540011782493179645839041859737959436655693674636686927737347758789776461805165870961272879477877991099554531178066138214186360525862291722198631436368599258621672583004678519117615898197068970001145114249201647557656309343893570955276065395688852871121292126477294640695406637040008674753951539278564952482526080630118520643598076579274782818219355319987556925140765925937925543188457515010912244454854178181052740024605268929910890529915901181280814114048749442972689609661528371013815520080043558011193784401239264954559218964477134872389951481802002974925225678467320241917052731485270090790548374559595548373092327326057913553328946789040716193107254776807737557778463337736024890079230289073506434777759630026273621968517401215182890059203271540196001473130757152736159635172312642133639750293554218478488082502999705541769229313268009733215668505435577787417353023826962085527892258846002860770332466811154331816509336010107473073825128475451908696178345518364554055828744074731541510191772268016556644783451389857325545997514748781606101938141664407096558583773542600014969747186185212042284310909568497578629022806849360325847155913952007095950172592533469002641325208972294625765593697810551680456925562410134206603214209051698147396061034154570842808458858512826373660022479522869149578371064045884263383981168293838890866485446052529514756941386142180525662586260323470285593655736495196777462197082713935631315521455831513013614517110278249280799975912510998467745727859560445933137519170993034816947182173255097270575274330001654840971440909928191803676608577965470677337996384460251329380168605626098806913429649388810020538048221469999844114350063190704916561720108601350630195968940489725968420368690670581888323532192493868560450611235042732892147016681878550371635177873741098898700327731716680682143646519644737484546251768147466306955034035626828154281848311478052103076513174449062093463957425765488716294660096240797604656604476013121528774989760786008980201685976481147204405145247201046191751083558693997415244868975242261220161175096495372130528849531461294661858771611736172500918662176433122479496478403998917129600704607749254767297855625547548346038588123761201901379048454106122830492283835945259242446752846463070402209735326567339735624571463777114708341272043874778043795095654546688390183640636852614933476316145322643960936645462179356257165058798200735581970658449850000550418219967791655569934304052614346484949804819276543780320566733883033053513618174906614365217419274369114513329568268658181423999887257095738464075868647820039092444177965438489700317220192313223540736258355972175402326586646266900741757425998138731830887908821476622525040211879127406530684169245438560259228077145451911739965743677168502284823645103005717848744275071143808285979285308239481623177940460619124205793792023358290654417772679465505454235242423623942536830992297303733004406664206481933300114397847629802581764284469079255850395424980901936049416339524540788547588169663526271317613596771799920225530417915062351767233708146373724197493557957824097550117104249143008309545732977306042901767326983642687267225728533983289052364064464043675151349616127544792618673966721879101258620989137108864425135982151648755762611039051137627408076392497510870750492789108058695814819974743016636342857556034887479546782664237794086734883261944875843043091993244850497104623463135402137306816287127281061290875617620312721557157171481143367756746008365920250521892590931235352110274880261986501894810725430842457736907208973808377515462387866887006010950125904610960878680244102604542177373476242367563295063708251001056209508173741896821065175158337328679237199096743872124775328961714345927815528647487643030608938571535759587492040333108295960575178034640079433981969630082184756311369369138917460920050456019684733960731846704397747519523857351081152601394338983512422016283816212706533530342519874617679987242560826257953890103207121693225688811476815985685841264550498898354039293336804134713567321684629800848488973080385998729844777989544670234700881366916131825476174757705151068003828000382964374451180749133207656729360948362224837644831553870867088050189851759643632677638159750346201022788401735026418580838692635463954946703704935233053884725333921337392096200379976312169239124069105518568107453678626693890547449314550911988452781090551395747095425311783855409379740211425944397760238774401387195053673611045931996751101260372673836144908451922933098319607671265717782263880036255165260958102205441565916315834490859961505544697437439385210351410177787701067910118075145950155084495972684582675037419835117121595125752898520731203594645833803106959676235844013511703732109713162127453939004714206443871983214384190129933757300920740611855706366867874017662217158015619396849930155213902227969342262692312373862400334816918329999520943017994207905000432094975251439393318496442921226161051147099388623249922175743683298100318232464931666241175264677618988976855360947496370597477119574237998929893544733145184179460546501593248375895051304375415841473830227398464455903470292961121112437642505918175884463967075236898448443783478535781713933324697458771481961515582616406162674759593801269323707435302700169084535255473280610993396573897120791804219705939318626713213356519929393562729815871784907061714366635633548663190678245694997394585569768985477330001591529068254504148118254975520940234731934442779283469530675094328624733570144695825639889430389960606143847680172678082938959159775375202325234527384035416388121532320451712685952955738664504047994896505431946330402861175321570814116622013299426733468921117044147400377472195093787252388548459453875108978232699221578942116817310499668564805509451180546492812931368805130184191059408614205742943740892341849657834984828219049177163879714123396077245950952026660154908054664008214019313166719273659559036617659746481964225981552834925034269008858493062505036078394421080412495373857999801884654728969732284544410508955479438266069756827564522656762494804965470261014019420358718855736058557799528530480639209591694966398356831205922520673760450632788881111403768829145456675885438949844527527177469210717889786558575364126660527557985399361033403612496351222072095147221600371079486253387909106528565248162850536963069152037045158374240824765850003316016179298782325768748534670434062789568462042758070425588972382648567482548425139393476892913832941666897350836801819082433174336117730547369148417289730403765040091551114949414700267748072812441034567781435644606181845733999520551112665536107364450659189117695625475086307185245401876726623734866561493149134268547747155453456462734820062857519903673837885162329114706499084773817879668574423936841981213740463263424269254673985885465721125309563081733542373532219289398372438585165242054337219479055759939327926711784062708086874079562673176380283227182343111087368237760448130428851869546306288008584512329613425288398044004864157814230030290211053042434329638920592541415234190247896406052391024577214279446458566801519377460420596144048809019232791174391661738134874855179949294772935497710898596807905004091526840084283454512693419513965176192597704966664548938690498463563109185974982031735746837217503668246574816939895710865337710485068376478425931356926682339318443132169604564015347282767310548597277527593155489577325417685338615702496216621217969030980383495821525955366677920211901212876007520054815608513140074481436956156945063094720464003400966072667384495383337308572302639608800528832044070194563503373901283681380250351838338260154156688990146693320451712358281929360958064629456268082985171817829064201307108748134749584397940347856540344589911284141654915631089579897380331433190770399223177517957141586019675043081246003903527464236060886416131416030050507752865854834489648688580650868666588579025611341987630792211956290746547839935514289651145036374729194642132818111469669921548448040382588529333617228169272718710806613497338707385562117514875960905687397578506100663398660458645355756824890900080447642043505164512076419259066154893366397765995600874069429554079209618087711694605544436290879161481634179929553940874158845493968576175011095518707517049110443951232724344444575465608570663849403501444035476506682678662399749418015422922642065265281811678760383554411407118422422422985547247463318592151877770516397049407913118094173713457244300451082625264269459886117239767203254767811781696664760110705727047393882181113004743580645962462087489666381262271525217889559410339487383790395722450825408129264398387756382523252432263069233461777326569525436838867043529755413957900143817312109924930060471976046461472309009312269363969773056268004122965602797770473089427983272457728450796375287607337826522726783017087823025322147597921482038728119738031030776408730091286145639308034624303889444311228185889192845495238231363176173226502024856756964803397239980348777794954037525612170081455149520111007528327164124469646702327484704709746742797496972923262604943096602334916760632323775874130317794079735134757748091925134897674989826147969443649213363779828779704475918345198055042464468865227680607518482668223608856089444367741611472003708981324878695057466520395758442394793886109740021346993279521230415004162725822839607762977583847172528500231751645491441656076241915633754092360008611749836501977353672857863958213165023321563109365341948380210562088174383259820262174949259816237075001709640675304473815489273263350633267613500664374007148430778779204234795254895986915311384421937103122076279021698854560124326050183351676911340150498996929119241502044098602247820929816896677020648428637587332767998870409534071973585011539924519404080895808073477279100973838492102749232043023121712838489836152753268071106828259729697694525209671700380017288180173144408975466332825443997880541930887480905764942424037072466146521249097919018931740584999274731786787482479493596478611023466120884812865531775493298890532085573946140854760412306101835873780922231391489961485403024139518606945775482323601335703958368950533867531919004328422336338493594552094616837626530443618721138810011491588303840078739414530701783874672271775607509281324641098306744159891699725293175515912523582171758194388175021304489581896678080517859841076171164384656028735473178245984288917260072532242663895975252265981801387375479444116016289188395344516169524800259723606485593333245864282503448344556220920088321788424794419082868020125830482629680836896835179434507201464994147286963915799564464087044580186627919285744038740682932644022630918579112034210317043089638886700803495652771647213286037644569778346036062256563188389432714256988079884827141145102626775423463781080078180893644206707851947614243846080779867364974045040833395218044958212206963903888289580052837779688280959637056767526699410625191747206656885301347434529835774611169213712638395118127201016619324445546095005525297408125928239260566468218982385349241047747128406006706274892422040606812211854701250092168929821672190745717886189700717140051981039863048361088626684498461498145322928203703943980155141950370838190482677314962467860647525288108306365952697120081773778554748925219011512040208445273801714816008443932607899077304208949469343785641882911468550831593582266986116477219332034983536009266388844998620746087699056627027271243592186435547598253260951093981907572504657701885285999030832753881179724758282786168524068350889482906982674889476743324124346493102176550300018411932440509990103016834437403443446277460626827622909522138134371718787655676913621995910527161635449435594392441929401185367450423059088684630056220275842513707446755281951698195949999623312974589756988735896926623865118660532261326845007468068602914180831483226032978179822829986202955980760630292013246124074513030169106613146332287176628036011483210724215529027500712716865200515711753432899996109989917776046097423472098266000738755748804524742728004548052957561526632643210891163629131403608518780806921816150655625155528599001138697541115486512433010672837163790024525118193558531215577103229463388277693020257831199110136048519857752223445306834144388569147689619284440093484984703853799816676146387433140446341043689692767338719106108836568585769284463277277151743271875645575566998631848356062010287708922959842481636714126250650870973230025307405700300390762008961755522740512723810269616583697664748153881525145068932243988118183330160634056841792499439926350059986009113441803142272081962638114073144928707853874370065684064483803240438720282367199153900016518690807749108206247283830070185674574640223161963041470547813726270659226446526257653780208297922048043492332205699582694428579110925453103847188634665449995386298938112084738577224521431306803429362224313113469655638625735530236681828992078864310449904278818683751095780699208402212863065818144769587079693019903704186508757646679453890492617465191236933171925390312509530348617682580784726738603420536468575030473100482066898071505956726605009167473058420477144371599783746704512916495341626418432665958879967901984466156832334288962657033769544211600193016675276204710599796633029653753539244786346102794042126947261647963197382240477119896532701717484032198758143592515802777893773911480100355363350513757816222429713626417698932828762994498127403856090027433401700157899119425431948895673658561553127926140789349655663211697700112497990968676085345875751568394268287938854969293943636250900068807728579000432921505992362118323650634382635765332627011276722131019929578758701667418095166026429729546817378408368694464039924393172927374444312292454570415566220527628813552206408349101916209298071933015952318704434846825533108483715424338724038531050772300695098289649719966504014664223567400530038302234624190644905079613433651896617911464971943289202466716370993513012577302199668627393873736583228880452493672730818248342325822748880248635353301282183322836021303806593240941269188916049531279885771987959032435224142315874313522343698213512940718049455612663107351320090612782758475216775954965078232914606030279424954895131956874054237003492368990221991786800312210449885363281058137905903617455321699580637806199674009364760995676573614752053397107204640165835629348367284099114297538236162146947401841130720108830820292557112913381998754635808538297088891705776658518758972416505806115170233476234835264207715922502312524419831618144710919399938726749448035287845244964136838498324880505400579670695220281942310671124146471217421338452511552682274912771434122202653452747441088733258557513635815593777525242150630158078131862068786808167967358384147996222315028388415667461037819945376852333497787832303964521169965737880746231177986022940001720850997479514135815706811098420162913015501096643106987760377216438053309812284295361879201374431803571946437840618658898167248628171978055944319337065396096677153804210363836960143589764218118135127887358236389864925971357059843816311448074939111885070304519323955389075869705484068160717707294524825634943034533004790292443980525827169475734030721732525069867932654597977634516007770726652316096146443014291989892663196632800018955822761422271553333885205695741249755726280395305717628422723770857440293850281405432706620606157753692713997543056299744381771168546285548654100025314107918492304477253276140681435086277868997686431368743844793810994039423864884793138111577448233864908857980615450603488074070018295498391731949173934446019638546494367879973985622295425851570438070483392732036312965181534376273818169682958142268841843281533246327025613412606620552526711025137562469398168531836010992901959785842595139810625712702764413760278842778447729054157926802753464638104677900272655380881108955233068296476139653581471994815235895351847369060168107102683566435221266208998650833357694802542501450362928639576417427839925913478742030056639652467948521772742598573860712703393083138985171407934329605245363604024606423426896984974708359662761581933747402052026797582505251510612270385517632246200136630729498108582488507939044328973186796030501808174408663462245063654175402309328162844149017625729840786169782191716929013167303825197869573661600628078270145208602281501463700758724833874772717620651086830670934711499012717216871133765696607685466739569165259356718509861563296843290500141482081836373356175328020935754351785922964178334663890701111954092648481769014754340001392679095790070410362401415800852741246006610969915472372133009361209946110011121040992359225051594616629684078626634828880447490592020436394149483005259335762192053419023177567720189468996800558257331360309301800257185485036126553666992404738480227191818954920580095434209641439197839175622123340227787046742494936282065181579134125873034759963317860174487564547067676102182565709486721856850168259707452761837480245944320616876071766531993418959216637409319586827416792871468501738892450651117989518272929464752351568855237312945447663727004848974182991956447314766296104715441311443532797143333852269771442751301100597209706436773956679277740839216358256185066088484005254151094179181784554325938395446245152142363842789416616175719870304652669078669546962781508509510138505008220160476851759140267717689442306419234740510040258492859289339657767568874029667837207131391947154120718766326989414525939038636881430656198880575527462089639193319342113620233153673664557522599353409795366799403931966856018686137547046136034540265704719825059523175906219290086426520273788620723439484205801357092086742224182461221323324216026650243583383481857721539673389804631770517533944042380604749851486914673146687233786229406817623284539332564045491204953638280705022920276949245837542658006233432489630285227183458826147942130589954885605964015446510029602249972709591268892145806052951234788983407537161534510736835804701109888742846146770853092266979043643857591258786391815617408972730852657018904700658174557471889250587473915205258110234526419989736588042517252858789586008896504622130693160314282500733130763634823547312179525781210986472636060073747904131832149745618018159623000021612717663620800311221185724501046953321086197305546294956283299627177351384984464218710443998489758619838257898010304145425934876646052317401506707355803514433565072739927568386688856794184916141958383422811484078668019777715136025899249368420640829107201752259430954860166812418865976945961981172486154696348484921327502129878692995594148410019460064816359732547867855001421947183619968232603113336470059157217769881626921204969748152130746475502221897475344311625327252207914781807796017069709706664850355318733235931608748823353324126367342072510827659362572345776401108990271112884084814208624313405386971922473883286573612242675237403918988125040782248039964928860498414346694342275697901380575170307331396000209759686151562403482020382862808202768123657836285178886565692182580720399999062755676892131963318929542482560031876514104788004437239029458730636314953631511416124371466040377644972737313933021667882718591566426985598525548806708234794246257249816663705463805855230469268085796263128157620145433457703415738791219903301595188323150125907665225989086810240749413240330388550390062825653152646843536701532827902806871155772079491934111623745742591072878081681872016532651880635498631682719861709667373809182651071380657870947710008997143904534241860556584760950322220154853521649586579303339535867143903771201688396117682013529634164864996831060320101071436292906690220806455378185432438533344089663486161791975765584867211266813941186731484115615615411452611122882636031273028418234295819868023605378549936150610337685372493684227513125223543981088120911273414015043546277802495270250349150734406954590087521410066840098831052037175773712278046264899549244905047313512241684816938425067970810936796697519232569112286685388582526604325633391849485858576078189232846303986610927399690901651815814157551664801591194950056345667855367768673247155936063749746087269207503692826137294943836011616243969906875170574315768889443420705305939482697889320270403732867533654358537623688537363100644488449092855455551694651557316891627485446059671572130164305172791039116393748652786716602003884612320604364646981232871168511405258105873493849128838976946208391870146388280183067474605740871158602713978644451925378938861894634295204855760910097176634776056008935914565433029278239962299194851890028767298329057105738474217678255938473617810137025420712272235618434611880732799860511695402561235964530628778658209976680081244275806140378537197742630150388669967477164824020125834566664757418513443608369870622501747917433475260649529920540801017367420752468020847731289410614349328907508160112943960882464972555909323695497093234934720842795054058876320187933607808098324589713558493292458762332342398035084046889618980936921276530721338790908980585516290376794250111620023714003322023716182539360437170995683260354802379949202496162855061881617971296589596302340424774576459501061483311100616373421339032829471392503129787042691099376398558721814502201818544635721429150703715279340255645980413396786049169177099975922131694188742833568167141402359998252390849124608552440386155110399185635431285926389305782603638024439013458145110115785835638194303637285755460966428889013520100478100387813622140245724785202045033909866438486337855076388544183605639153121469754277978105995158238409930878043374327201223295669969435130281023502616401181998007987873164771359515716588350375053746155414942718071173717833467076334766582172506860364670327579468381509186709035994520396107492590932653161950704458875388975851948348430347552212762167508899556528815572717884676517360631451729706903294829211631180322606907029030365785406104289728532635130016815600814213863956078783367194185960972795852834849172207040067764869707373218419049302633109965143041171711708867723271568815024327832289773991320825658375872997215388445774698488266256135411430524594510219039745041671292977684072383316977360810618426890001437820564142951756192162227546280022714124431431778661313552880296884390588772228068071690299960165843024605087472988693078026344063870967094604911781545565292747662220529087502259426993270495636260774904641678149501597210613562551830467170119911116499562814032275676553160482856973852537746472267472496175523975687881013092620878015441097310936848609018301454777340974356778723424311246037056404964955242223993715997688798135683684484298006417715997691014424564402988413222753214780917122390341003336506560305875562335263119440889822814619469703839788708945897298562718816851440139566383405049625714243424234476225450443906180232003039946857148732117773981038609707742718505789360779305341658354417373177743609626352415555279806286872672713949092307233064802332586606401586823405663365564168329801540052080250653265208683647257641005116400575319671768353037784082643624159589728878473398536437347481543478524598588815232111432399021079526628960492793790141417962753270027680105023269009580279362900004633307501081769226130083088846983853600435792401697338254397977334311832618316564383157666457457108292140817379972285721085464300059207849836273137616738920496537440955437860385652546682911953936098606332474581268627758346534610756429957712897874006686432697834790009819706554477625746897339342374641995784986561920602561011264215996306440040150645297500405418348301348694280460122132326511443752403865425162984854334286756384028019433483389905876461114295752457549197549241336716807363440437261263818386348011791161978626380679588834269160928210272303035165353956362353245315407171654361027394026895238749890929469067682296473451348020881014082996408485284851268980127146290602238890117779409884641300730893239229013644527730683761103267670384473130434207344290869054115640770316165866869561122007323836174126259813135682495779151956860889144654415827784811071377635458503755072122371333472804886727760235740474717253630532930790543208131656498272439222482364904479211388512897525285844528319125772521801229398048611025313066386086184491502454708563485644973860639488878020726225853100509772375597561739015892396319336767306968201453443255000411101588511850871870801068618087739680452721931084331809332401907247363650483176523538500628915002327372150671425752283076886841884531874876597210904100483439864601156611089842195876990931947944840062992133271409090704474018489701260791931132052268245824890967896755725538353385709247660322264683113612878802951385272464082796203057951486845146165469960156945413616999135564487422476983300812625138287962830882276090582935290369789926138279285377597604632840042503474160942008200604555908672396367918504035856923796101198085762464696806656824387933332967058322942029792985905139537701131257457593617562886322414509726358388852105041750381720707001574879923825588773979524679577896835535480935827403187647380610636898513535469440877142633619516583450231798741412768645614344477867120060925533205614096569752823697884219568976044874635003403333982745035303867645985444414511938673272928185334015781119755764301417596781126087999507523800534810968301134478031853787454367302745453057403337469489277307306813484721421846329004533851919316075819718458886370210777003101467513511823786897329692296336269775431798488566522926957049034249474467669156695015707775698846362783095096393859349832478561645705626055522048790754899001743392495233206923249538063906880036008908448937349724092547485825097443413649541225036058832544395631092063635194141228664105760513679089207232843935864823745352049025066836880070084966776342472417034230931340711948325777405012161062164796477799934212548065490644420317388260445032195710029526825048929585691624066505944561140083673101589462360108695265477771242445125186884261062197751771938705641208457798689522523659938275286640892490041546522701749663815621261120692925131070106571922520220063378597935172934876283109403713970535617616611090016987340870110079855764516804565404928974252200763262245773558421757098049908964079152361083679328695187264109972695452906578997760878678547002647551935321722411760109000826108337712518047376425493911815784503546195649440744776914096546450905343189680256350181951146386197761162967912539435905586689699272129529005981648100382631120481273053571577660527270304271292358853012962193021211202841819480837727816063167545028515919827921120079779329249702593546830252710194893690578621279135890415668275362251304726873924556750504914078243951028112304096619387820450902774440126708122553366737040282676121807711495019290485986027118789730288963492126460572092084180178999095279208063771836159795051082857115516383591866882324045419328432035520843754908210875972009797811797546724069227824982531832912192085538911975699103826988427025604404467372638646903896526425355241079961269924467626761341858934267623485241325058361061184732965184300002723077310713866461966675134576017693191317648628385509501441786886957768806282587983468111509833302716118520396722604770463478540397566056438052805115762420835072329262859317829648220940539667563883876905193263383784622985041505748679083829618461988810280035503608703036735920590393123412940654539276986450916254800744158435171224137516609216067970355167326074026890636330284342797787585297049398103790385394920403710375627279337384869287900592512777731929124157935059544682954373205771814470561587414832506887390468302195866511139440266003918175928915243274337559840815872272398522317333887397690117656234201522750725584868569759739442950593030078885386431589103570742928161675351106261641310826430012155936133828614167106865666477029626470844065436575055219443971066322214971626076984291186463875461906672731942881729681321258428994228820650894059012358136586507499102480846716098427751223141689252299897406412204332922615837121809151655622075906832514293476438534819291963635279768096403543373225690151925414727725804701346418197931423490656045622589149707321007653750410238718259280731286011098858193451833479756647215141713163906531512459762771967833303571796206643092403673088465883440699546692550952813268832281045082606085674236431496376501601788135683606137160669897457450395393082143597961658068984662067978494546403662718947177166199950160984699942129813095263097134422055433346485798862246873528413662951768575989629065789167475832314064924256269530407077325305915198962951798887031798883491866414437073335008256158332590121985988991083372697297272362434684119264309800447863081446548131770335091254150090322327635331975472924776328742155319446064883428519838980100790912740078733682103501191827884191053388117421712976905251896364189710546951995654098476449115524171004933738880412728684966236747579488991208521376240429891581352146146855297641731344185269313941791258425479447382610581088956677741350293824543372858119333552961029538561310637974565992996994082749239458864628013797691762075336395073617941210780813164867620643113737057673765570031107717762622540072956992053101197959504643251326584309655907900264147398265235152342476319479735174066301692683042861682294033989295460815526414324954184345925762108822621599910420378251839926586162824263276846962763204222112727033513632857575716429818430558895883844712432713730930209382155753988692650791671021603114437152077773728172629765178921279517851678341910477185319456356540343297039807534795536546437015534513687735963498431037248824976676986236979486619507142318084659373911285481642753002447297066590147038168668212276073924939538808810242997803998426094190875177234717327528477896076599173704978787049649231597552609827390738934214768737790631871356605957160548821924481715607450946377286990021893848510720832632316590503425643877584761238992606090800657528876741798094018964686047394679246728147887802482992673933989440417608613797548321322283413156202394561307097980518732481770958734543277042833774204541790086631326904302964021075183710074278897475314593115440341871730512290552574358429360371334357794175672160505228747788771974544567251971281298079175847430730765901912841324569826292381954355177730346855437946765979988288935557570124337080514302428193513181612978000331750707134894766185156997093505442035440160901834495733326643357519667966411945345527948954506685897778170910787657290218734024161714524300804872081680295219513908332409993167209471413050669013449390770422423341973514400304532937950114900166313349111048798297999230084031519690561494660865622924831189780155829739054150168427654716121718578537617775950246495047576201987748155948506667006117360547810912422181726016019896706348074602647059454328129852230073344289571345152945077848872278731915305016301897293715233479201521893756536716394304196720646377199913258937051601322905513616516470909473388680927995501513081785676962349574301763142405138082451354659569688464487063619167507958563634616509657883715812374845373781814430446634611745426519656426452826265760526785248801121836201119251077129582202419647552447007553433805297614941285821116180521877782661951224954694150724057435552845316389697415269520672814326214210062739304763884487940988941445925258191375080097097132187378654244763576514175884906317786491699553662370481237021311312845406435107347009910000890632857511392915279790884543241551011012413877773255978394148941420421260048659932589409032018433446895986482584762356506453974727308859335784740746705390853054275607466872620200068316376182670579594550970548742081065257355735756333461989180948924823738364090607823555267274614234770817066826037575286526525898859695293910995724907787718013060342751260843868184941282791116431778033121839110347012521213962496666307924928504933049273728145437101061013984389286149720424656272794786817062501628291571822293348794008635344156693430454754644980797010231084929779327585582097214303760280447212306075969494415549021983314282932213061722469737396230239614779246379676000563488798276548474740497118767401036953798506875831210293685241120497847022516322883410717710397110173781750812516637536246815645326603951850693395852844421060636737559298672066662773879938147947143176097396843576584546880213129448378144432295268038737905030338335604578139371757076571036284776559212609818920172346209981988799558625571482885204779873759866114667602101723363321942942147736749596388863692179003534650690180363400002028837046519240624300941271356996008146842546109715615349673492402755909054992407896341232429417380004120241047853116993404299325698685522087906175150009737061038446468293292527571599422367052139957219853950480286672728366813438655078032468344384657203134459575757635215038095481401136153795456702248859004253585711122651159433726019264998457055582212408346512560579490832771565825446907693259897424537252978765814690857283403892060614112506080343430684326845425974376859950126173141031612078613161419774431713407410508494988039944535355050490364837150912398458863304172258784445738328170009629680125655205767937687295631840529621390616703192334259111316741140008065301552381433740233217314019007243867674525507888241350411274949292077577263858801997288076619925385980948099271164830806931482781259800253666572455337291086480604573925356313147680777280541087070253547836274027492392578594302482312348532912044477148875665539758503827253130367506616342579973186752823508140934166656796372977465000766955102988019638938167740250931964435617451620528727779453924596338831791524799337413065117637312674461386527667990014406162687667499714228661220945254284270525083477508962790129145185427919425948640267798307979631141260037841337746683177242724449076276033404842567286822655432211122552608377162634212617974248803020709174849052923908192042765535535195124767857916575454977301489937391563085732263501640699417834478726197015010514314092924530664764035134422585603622158886666785344078483812477179452133483492630039451591424417286096225326785427668711471669261705456805911999339025472497294708913382658377472567683759987375177682330501419244510431624382170466177770307895222184718897067736296461307245668901058129130907251332617103459274622396779324184148699165584095658182653030941066927422263229874099974312717046510019395762417090893094137144439640350530102244115981299069094694551457486147686135568219909460886187909793055250239690739887587211121648830028884182506660235318472642226931308645577030671882125958823668175328402792667227066127378267180877050662932494589106304384065393289210817751682433910394742832309845371653108307134437871769252384189596357022636247325919905936105134005260067164368889444606818180054905495912674954811580348452013978998192688185072666237096181398554228710286626828110421708302627986596983876660945093028302946130333833923598074593961589732156979769014387844042129487402814732113005187063337692563085361584847041599081140038634005104454884130919547363501332635276018428476596249405339288060575351291790598179748812015388519272605325194581634115178248787548112441482929181741701881707610150218474712102599942963683749931647132140086800004976608675437544371428308417239992358658880049169785888107860359013384009434654365146161113621955767646133511834165430361145278539553430856307140355750023842516278188036214734513826815539935001739146440137286467047537370810120603411303715803787376050216679260694860183244899522900892605066974591049512407034054157170870661566533633833618285884940566475758531861135381847254195303851011068962584465263812511921712782967516895294500111413501721117351581823514420637304191505346960331576855438114003854918527030299066675162405054162009980348906650850227559549101416820968719054857642177009897271489784651613638194274099341702462661862900839613730424901949495858049157459797534841245831994945723844429609563295870422081611847991403420208613251800670755571027062533688546457193069563299351010686585970362633424520918722903830508236573131308153477293402084383436070145081236820566063264090482888380624893081603108023924120476965402908192499895325967868173112282238488501178187367463108753163035920734332732346938701518658210890281596917058436282589829285193942122448002139051050182806837432560777267725498007877908811329557301054303826308187284496180593406106037547290619170718236102700584672946215547964013976786373266425548478166008710874062128866220558215694966552173903534578714702258144679375317677971180471697331559191979383256834923540518251492651843235118400213169804157327366599564863414278570627791457989535041917215270208841567196389925124971032018981420817212044896205933299551785721996882791646161277124861768485901482521158191675374534219036009065401641559084535516512035984024794810208208030185205152471479704409272876506700503541536754051277691616976514386039644975293180351997330458219910656126691463285239121493614093551107687558321213302542850982989664612378338138502893424347720901381729185255245075524210971625466849010583606741853693400292027374074391095222767693925098931492687158651662316217189742407624916092892816356236574967047237656396464099464482625590973068016407717617635583195479583749399756641537066140350017147693908755854859281312943695689827537608074247707468966770105111632188660154533037315742909674362620881789552160682711707336787319775932347979502265548589084450706536641703088451633106694367736519075163264205190473921108245719731009956028976551381254578764040243139243711016444255357959594257950517014006034385098001504324478502201020522922345836500486004033042479824853743160478629016585830343055896989135050184396093846258392170639488926906880954769554563744452747111027351977590041149669841878377090363919709037771014708239445944285977690939172568633798059644866304356071717061734453084085822144859454797050394782674382688929988209184109606576932428986399691797590655784970130139678659644509489320078107500847613703379947991987413262271386638051476406827782919675978067719666503849336840359744181310449492303399585179149981149210865875406865444682030868047699336134005382201104153555214609892264688777785903124073070041422304040330949900997782791520478861382141396545245909205544428917420381258073303605555849907450274535427174776173565639649643481635799743778801161906106511155615124582342338416711098224557800749531201699023024379884676753395156727130456166855067156267716960011801629117743465495754631964969387427364841504191429995841546701302836630970529241915829406782923258629913032772125758398766741638357613247705390616705142115710962049606349164206190710208412215663543772777318782336231992208845609208867809635240475097261151747874113518872576546587303882256978349557686498350764858747043890589094746597783617921619013782735529265522442264568777973460819836178815254938370546893657417202794142901606931428138852992198089366582169648233533102368266056789914142194537128655076937287462319247010133431497347229201912365540699714513336776282284405596985256539537027022315676811274472414006735162208159435448621500093055534178184675136307914750144120335029847017368760841421885450518889997965093192233814037289702295211433238798216420195282379281908716054898898329799605731643389502739693919683461486685010795471160955164450578161607195393980049095956174114624131348288543902084549623558028263031822131253626758054958522681427043622417983375363083882049954074224556322804843438798414172146189125848393624566256211562246941227705764623996179415310716391405218494312948240168496568464620156687798489322193140178045242008094163307553758169076116959047627687641260575293084666427018056194515947810496908403029221597620694487446775756371074138112688943706657803090346997609737247242243475007302756188397972712399684906367484766760798858404318541444572461047453736498782534538383744532000394758051787119694934204044634765454901696887256417395833175858418197053665457819681872401285462227059731890819182777338472104217876485614462528632620625354518990546190060317725876450774972780062298770000471148767700074288526706692850049763821407962110145815382688581584964517391610399557323814642065441094320662956087155748534826682179143058605699716030660019874719457976811809268509364472804687325380358125026065968495989697782616818523498074347288569776559858654916259170961724595765750614244520746112303132113023646362083963408604438866828083827194667788291765677629977743892471261172530185127532334446567504079784135277419078134013786695504739382346756999377771374285931372257247242982280833704782258033926499398594661478102564968944323563851968267585323432649327682478414481330714315102509458018949224015268540471982885904222126835792499440889997529939490110740900790400676168384238980555507411128654869853127091936355859664234718072777161098250121001906919555329484934761141616207148101451406664637256844007788510117974889642086003678862589753765208302338617770999985439784218706772599716499876094817723736295964920289691466285753367407594949549770548123902185138115368196958037942779163897866006556368041955928354807226647513005096168081912374171430981451538428771436377847681273381335888598958383909439212006096784231291020417911182836268706832423520581153382224929898841867180155713822514770228665011072238262776877604579755788045459301055117352778852388666563845603667105065131621353529043549925686123499218831931988127726339175411844964951458959665026040096383460537015647608127257001913955898024244540521947699682067997975997088129113150806098551055183443587254393063092348248096934078142285360225575999325113074938887992363918694052130394810051743030040891079513324075225636661265024726415271184842541471134810772590347429454323359741363872063847694626772760346247904088186225847771212823353837180803379532931941655343566044510971263208742013859976597495830651861399366976073540457831982527839023744664099459287284268896828648594911795110038302721655826167776187810968268352248148191158568935181504679715625278415510330658894484187364059800892360265636121354495760499039022101066911029857749377132883834406906463957281535926664789623982990553079511339173695636635737390997170468511420060044033742854474849298785951277512688631605892302033386447193929412562272578693733089782549116742412799218190421202828025235277499142387130707277034895185054489517470297079505766598078370004984508884112861536162554590646491738756388995837911101493728740849252790482886603450267491922734527692235521864993105109059890980778295502788685522258039311029600590037929818524852095888477283480279013825731881677971560130542577950849031941671429227571430389926360182493688128453666216357747294876399890485895441408877014616698659758292917954037118287694294006312629354828224324673905414265414010819974671613350757248534137558696488927731919017688172196091760571979276327637859018821935695345252275208137805674806970159495300185870930020134607520912884955200121875668991169609615229204688448112063145619285432325021210494142566932343638248173660705981693767443837459579874933788197847674789059261813520119508446767217683375722020532515959810989414104314932640233949039578640714083104091968354691138643812880547244959034917834543694610057476724732962548056750885556315427002609457788353246238168608600978642348897875210890058144403617664343075657266416809287429836044980174499068114260623775231341817825833118338131673827537169958903546768314200170197105294331693190136286359032563797609663635314181272568177930471311425153078093343283831752821575288304307904587927084821651448126409545354447273615756963652662839496528055311289814365762285254338686414467809331963584554055122888041173299937322484671377045839621124045291895428207558475629650124260835671120982989612604789704875480233280831515263798895714984284370882170191844629825877769975594000575827622773563299482842615083257718638877367525355353863147202749667876953328293311546192771886375462649642256297052354714878031666086139683854102442955515440518644619066125267806923550680407471495683611106719822320640134842738460683966965784664280429201307625798517766046116256216119426993665563174569470134917549697357633033911276358129739727958921332857429001008218127840488374241704677389611089868566361061378480020501285788959740129063459056142179159261258309029786676401939287602640488483183778231219467445635305131398304820690956466286218762313534197466551303454711370510403838448923410528152580448162250410987887121232834111132367978503042996697264074275418499688474670317580952162804422663149876123424518115021414644195851720209073410012115626317739390467215064942332722120470514351436807779262617886056169517510450497486967251087371388785478317609114085461907956012862859986706080505008164146425934015795700036972568802137417170950704040447877419445796786879399466554749863051189149479684727352945276207922711310931398680921499957210454949744561381575208492867534241104031117653668512927108327716590130000703985763537665455594974772508643307219585444167395836811501706419632395700137759783996189509662689032719870488402739458847910582625282947883960281286779356540361576073719333160278624470679063155205127552405999364452281905952995854613735861861109320732708957957599105488077754440997730836299885255703815023384524500568047742227002329535660495644699832268085142203678721926451008415383918658871782459990081238059111769350994764077354618085498470661172842189047383126883302238828261048178590286039137117954850986027244294930475260822309423935280118751802572387657322168436790628256040160310594896621332316064331142085817568324565823198229706394243646261729420243505650367964067796148732913727160983384382049777620765472280903435624491117180435687378180683556850520639738598118201510892961598154470194800267318290344695722110666286289843700969527789741775923217754311682449837991352345663596919351042255101051192749250113748528747549252105658745118114236892977388294248274150499544487402960453899800497720301872035319695354243161506492308914027749104102981400062909072086260864634136664790452751834107693549091243918615614348468533449782940636162358234069015788145316646198567920268546605870648191614777523184475906129148294961196792647382607248912058246267136391579292196958412316305374612054566941831994195716910528631994883940071856340983180400849676023314583725699146088988387602965294353952358528182858949374528262319849186751229045725101563675461708535565284066513997953178570721265335786170775676930415341764520858566152438396301446721374706301748602190198260384318946785927046620253392078828476174777264190115718481872039285651803557248308111964668118128446870622135973142796596347321898777385555711850695207535154605033912820828424363388944909799698114954362900181700918546425136063914049036111295215537431560533039622357571990386656836048384741589421821355862144431072415415571080108896869824572901862165612406262907526066894512923092554868201173215590243647786618391071938614223634842211371497452213739487462108907735159781647460026013991765428730913156951018412455111406485586799941710212942347657257896273366125909178165823034064789811860653713390051661148069020821971114915611008108249644595192477160613417124627031664181256093484863027130008132558748657409190557657820753595319575894764491397313296390992466091415299626892022220359958201454923351324926136718241212708174101818048459754159544470386775163150046449229475063957125234335999444843404207169511097484132583371780338458599422238108025232480010822880137314867529207293051378338921611873477443314728712703955068925796413138097327013954659403253002614128366941383474166574365258453218889169710802869878622764280685832681159560362233521895045207217315092548316199278746627947213534536102292288355017710106499414147227568984749300060429244460550707416222425401981604726113658118628439409327346252002575400035207060130180372526015077641240984910001043038928819757483574594309101376138154876353985913235793586062921051719420955142985639892139982085887732530625064935428864845790623153914821034324163010835633734507094192042759760567679245372423025034720522407598444546971237073709688452062788799207607179580665129983800758883284389869650281598350706314525499736786981921680745925767135354952116250627954585966051826495292136094394366678242595313092890505755360600998455842310198443936171743869470450234128495218786985968009031646811537502954495742878467757554676207527209215639775536148592409439243616041552480246987150830472807737012286882937536608104090624437561343776767645362444296397424798342506965548757328840240150189787372909510574399077206063600230457988010807011062329060278449999317473326659326086563595744661068579608880048969332932329393474614889708933561959645697715697792181545324998483938033786879433458624227397677676289817121561231946558558851983744351181583857307926462450184122050356548751647121958349356524308221080473280283361702141346234341095869503069050667790820906559860149771339387881703547331885284317406862571267405237629816641884198433425117405189076217776196861611829982231423488645394648291848056050932441911417715575911269553739866998971179371813810564843091668963256236154053136772593652599665343020415063152143924892605053287880332555073657285320864625827787313171746659505421118292351369254707017609316951783898192273460110873140494115880939095445052392064792398472395184267077450346045719770067389990885934136450319703478322402132532804458757112193321761454790256399171635096656163847246039454470492010897050353551969271990748473720286195335103730882770526386774441746202277368626584936202049258457153360878308963136625760554075199898139077638256443048874951993948779193425048388132398128952882011900333281273134768788113938904178851758140525934424721942665556352974361755634604014542285755717599490040442880563283291253168471731983422198950987050559365102532616173377492717858049908160267084958100487189992642159422819651274422922649128955506863222150068677940121073042106955179346220523401846384132876292824425170584110575184498309402233784140297736792724090074863780093159319661611837988564508766115205764786805187681849750848849419839348649712858630284532517782315483579262033020298514241781888792452442206563246695300466139223943518205507006578953024265311208122059976681479871107535534758878213420917041332926042230569338645477490415092686585300353996567598543463982846792760433120101742414297917918080426254274928728083019699078550802111936691695697628600294592430276969878609767336652561833694180249962158201174496119243382129976801661456434430676108534938856420563143949803228523387657568539001006650681675565092091174835873277883198735553216404199754311634029177325582854352419908383646995252290330478588916786092563305982998112086863460298326208142742713650221912971631283332781713245464378261967337119115155986269733649222655403889223486307997124001759746011955897217353599638191482648426825291780875811934634192550183221016550868079867094332809041357696268080015537102754062353103057983697978408087227940803978801804187355122851966757890807134806113992970596655202932112738969063547175012549094132936294982192834294753357624410558749838559944249873068626053894150912672245155945474688235982049246303637770204284332181962484979016022867385506909395509595014666628336418997540562060853261757601920028654771109267102044203647634280306272442942698635915490675259108559644236485439861958366111129813490461270721299391710260554909749394775417655806258363620680499246650378799909779796661707905665212698438118998882156578190862864841793027084536551943571268593537830232774855146050858689942523100784738365132327812606898601459519887142974632482804658595656995627704715954725128032373607609992748617318811373859647302051550666332465645993033350972302635004207057836635230321740523316907197224838064137209909470220936626391032138986467882956785296356214192876193034558376246777921586265431655551594962179606956059010653810634969433839005777922493790122941053227566708875424958281335581187656057193527508789114733160965350142674417344451648330531261194941839150713025753552908183670875504599713405223451029311738966507545080058367582673223505476891043831836859143532150515962749176940824155467477477001398766174248696514268463566607322882457231988700915372790661021457694036248868777480705566714598720289669427229985220965369758470075914538139291177087638334949279931004487962348742265477707861996667991049841018732401824345655575624344148929204515741346325662071211998331462555863379313469388816865641403519625152222395620502512861853422478808038193544916093144748045362360828070274245460396693502614269475895826621493904936630892466950142897224775503650843847004975123151550856502153474739993105069386354507144979613916851558715226908452081903958454765094031707561908373368685081485850159632538859857888972149589982258175078844505038723300429848500253206324666896652228982007015236361752538009840525738756757475425268880052139865310596138296292858732159046388378046817786475751590226396070930557278551018592980721566756871711181089584432411288147827498239580895526572586676943440241092174760206985786912306077224674064129998218715972637722272677838997849732631623237850219766767028504766355279813838027597760300288927959685464424012889277392228297496383297436578525058259733497280960593305120315401813817097220172676429873385373500010819077193164660263200704534870433322352058362393859637665602105122138596878806951554321721502609963561612548653990800630399110071294802451741544096206718489921117483419650021671767451787546425292279048934779613003908492337883912157999808969181270551287533385631585079043959849228032715294530056961965576620251937722212670551416125482099652341975603798529909746464625400761572877857686871559212552065434561211364671497405223661122874606231598199869764762814279489242795421084694290293261740873720663563424253897416201488870463064834617075419342122843076958152381586465583496438120082572176846516379147315376568799629386053295465424681095880090197515226891202140903545164779949755778719313905153218445355894330029785657347013319040359204840891811949511745183488358866111772063492729528168312402403026723259884127903623481932224069582626148489117734677921991438842303372351782267334051243458449097686975507652145160293896712863937064991915813856813682718410850351260752789892770230692588601555800694721032275809783252984957419312414638261643715301115284030289292658886743978010861025032541019071672336455822052500077288903195304549051315951424177661816005405455048443667422194827265177088693509699925907066807821215957719231548426705971892103576126493495352121661941478678684122311571112051945454601678722771773200745092684395005072317879240440729653588592850243120422812354473107275590998080878576380558970619236162904018110365943986611147594769148437025746190035833839394298115131806721794959116137053879657360530571259413871925765013968066421755776574039262407050195634858069039852736362611750226112353463542774262993982317631020031559959702303545344802522018600046777477440004632580485941432007283524672257855010323713251798248585655396075990651299966873129634766356814295912576507102441153731127066090459337681263739907452250780473580818220966088108014161601610690293253713611049617129559234617947580030945079662063490719938678654043796661354806944259895873945702764800740960901183549562853949199653261804217934905798875308063198147532982745398288014778235920602406561679262063843350443933247269917038157001057761389744637439489578015045424271293522465672689925379749384351268709181856897196754875888726114791663608000766305252690590504177945625168279327761401607476800573748139222430481115030484955503927077161219633761363694870314899239203286708654496808200092617732284730990838478218529844968862900307352603150644669701318790334103047810167306237347244677120212255309187749963769891339671635492043568602454408330932859421961423808378946753713018916673073995658247937318848834115666928663557778766723197349067383418652640602434700085640821485147437610211957240511235416749278505892675833930607983649269747258959681755723701013511910281548199618517431557967100121217295475532486211578216066703447755071947976300987095193911150542175985838604209706024656667135266396059826675479222779044726432257024290952062818760039037015695680146757887694728647205902192335119778027224779391686323575132007083989398225650290692391623668771123708877633880334721090214730724659786856101544525129628648674020406708195742709317026101635874962725441708025113352872378177865138764006263669507886198981796304497933193942109244602770653017617884689753452756957829404137414176334076685327926907279524458735870984456684381797774574489904187523362787125510406145821657352190806716221522095405593912672322612569371134922510696285775925680009057072780609272109456519481727659928690473107525879717523956157185651577721247590841610144107297593521450265451768636558279453114238721013351513815075211524827660605132523763001082875496495312005026824405771071936133532146595810374625482813253775686588386718408507878371370182006621651469807789476353506339569929333839574048840414009891769141414347505020521988575148960825277418188803696624958897225112627446103449819553549049081295132651573676052603049379124869491947544145986577170134433729333788598601290205153823474248587324784714547322542996964436893428639671111316195595401627399084673403093642087026228504988231228688617453025525410898087636911883132978001584276230949404540066455221674477419650759599493753073170215066331603316422222920250043671872612852458254317308504148692860344069014952132203260393351820769853606562052422242206459938552501439586906188749673884315093560309564414810798370084990283572348304982030433074317018068135210778787379249385720169910072333268699611422926761295664443686076570268527859206458187698063077625580437035251828156432450035528956091036545367221748727601724476779607207232270894537619777034311853935800443111547324486123121740111603869797956917102226306472302997100933211337629844124152887419907090148555443650573753627076090931280134849703595054588380244409470818615460051564814396675781083033563231274271357495540639370411839157417166887857725064792644632720149173410899112830737439983821876239150871695435907826198609387584667594304618607506599216476322657134977527650414041601348877030891251972013937714706772880991019559387307632978160459082118749058886692477851531799874966662735391180334512095078201683066965083279961079164373446312744472641989408892316026684091650442099380249184063393810883661975420477216785855974403282264212860819374282482070901147113063727279716829776582554221240360406172391705082564875309128959798812472524322971155803551575753783336231209364141313245029126178088089826430607692328995996537353637437976870195563951415468029545224190964833626684599419921091108218000644623508981987768895740012616281811521932106538967966999477580549119200524877472049418711310941799528319696459089613551870232146662701016534061434437749394904240701078824689077556474833988271857859747512978592580427924750466443337315782088271997747445535961775990689294053342881407750107599224920516119626921162880847595695517533696224572850243604585047476384659887668643699126017299334781069527034466985731808604875646885609800643779569045313396224635197986477148824791483929798496372042724038492252965738181023624321719980489892826936646135897530147862845348769776268214904937183644074951828962020474937470788678983634726232381681220244715686421139852527643807885981272976958761983722065819109675803836297569967674825110770453360396102461957387217688239540841538245029175668471025623872751479587944708496214792344645399652605741042841793005401309512754857472413167547495832296154840366813515521684764561128806614613700026458080479527673130596437297620131337227699981431456206984209056753261781833351389482842790717087520190117842461632233530278556705212895694476760542912551188082969490668977927257141965881662029451842147162950381701140363829324906770890904099443324505938409139939980610352280837466195645179935118541245863342970963283155287359597635965354386044610255132759300530729626100090720198708919449852286371465093084752990838679486393569490884980962390845253115313231211378212627063767348598158107649998217629534379971941788713113639320906032486917215247398888070446193423856895217639925513521188915128426941051504020563893660908459945942402979234311020494943010047681963937572723876390860872526623838867117506323426571666523486491930545834187446097942305542222866427190972389069715962316286263183432656494983124428158195498142876141125840188669945779434566622074064962451090581694335047476716362089755840446965779638949273642996741385775041232007999630266238848683701993942786688753979413016615654683260920978924698004580122833351278073203600024317888717791252979334583729216561824578596023709318970636136165994423406968224425935542116690107244659954569766383721502891968114966755349156843500439594624012614357535722925357117333619580388534933512446221841133297620999180182067648107179390658365993124304784085413743290018020351458010439230128556291725175925249552462942836475619159153552909158885312593984068108409278735599803034610090879905432782313219102470668904447103970657995186221686599118991374010591517655557551705566982277154762507034237812979454462769122384686507082965480688910322822141796331579792518845300335115966953893137366749270636610391165851498858565400459113286842964758606408546395268746745752960087371822339075807753367305880592005325805635255139472473665778423505520941483870944293673954107588685623887062998960516199204890212571507853412477889444485255749157345890195298100648597834265821244620191210446955660824264039336092273178213456977885037276183319840133637899225122172537884004118839463935427127140925687174549227822531196029492828676332471036884677130455998031778015511180318299131907048633005984625978870923921029470888260333459851623453114266038566390255334585159483853987596254369305880228193691066807577334739887748307624009386695404365428302749844556120663412225439295933945007975044822094124454673778037997131036236079086244867621553348001140239491371890273683491830719765900149835913124906603737985004169615795967053758143566128360722268849848191469987559447548930090802106735957815425358736758349978201980722660966688938175496146934804628900238577294734421633906858397234301880438322654671369868928285594848912420539667191238142121610865092963942021788735357600790119763917428424468703570085188958622286426997691302432597060076533451685573374215999205550544026740743461227062827163318411171778444466760586478076398311894343174539107364803263494879568478828631835693079176899456192127278015476658263774431488597291725926868051900785883286356024771739487264681955014272575447100636684949039908291565833521204311415229221725415183789274115041332676197830985178995294069106886886756142476407583788898238765409515407390743820451287357295050843858190389227493468100980806098463863471488993889172457745613491045848228355310695867597907692731468768529805327871267731555309545352155093580551564396551842635282867782218926842282823836352186397657062626555145664023272425282098812863788952641150524264233497094479524058123208570818851389991631695440807062664644442306196900823585304689596186478192938601609296840492373591507404747311868856612819956938540445341726779219754118452179306793402245316227926384140901907680097608685195970988658420931702691691305419548586088787174003977720699444868502391811402031457440876388705112169775363105514603539981027072049903179747940960759239865595551008488614954188806848264116878126576857035268727468151723395806944469317498241821285246792545988854890184987528061187009407212476784241611872744964540713635071105423624735205125868364738504482102894301084221196631709196921857728645477557066236924214899472934998372306148310982649995216835551012128576399344728427129252490697726885469508508224617803887895308288257443950671123085924314311008894414382333734359434342547208804429704741691781960070598441737920981923288530241852416192745808664640539555863913002014584718938947614923271358200886920464341947446395237905724633288579123631375885502457082315158563455362449158505044543787724932628660783188849569124657605661253623056925497883226995919683637245618711623611997237804964257104086253633159427952572258563462672605642162577273865269137664613830457445867404480979656421006466640845391872141645849004258306372656919879070723321678169409195840687852879083055773501698875575969272422090254678404534202359653615735856217921107503692798746797709812141590677582997552672224214593180896324255629186374988659280929549226193957701191670752753149908449620953511060725277488318836589152756247895546524728200637481467347966458226496845209781854071045425444395407674586994641002704533442439649511458019625723787481047475592846706733201005996960095220793370619267492459198302428476197364392228940058434471200272643116335524769241557727565386961989838377882947774894762218712913884261988076914199041411189100384924952593147768920924464681427238385305528995757117413818625050842342189181428716817053174934054994926276566565816764520475213884958621161787955002875067381096776539965064976289119954896756695192444199016402823794950257501740645216033430358107084193530372668226558159243997224696339581627090077453052229451077681468234195882471175444016882349363011718872715426330374060599100475301309801104699688372334269648406534648002162899051127345195017884522485523160407490950744967923066982760343513095294564421390882043727389871661079674687333637204272266157429386763570956797785837871289772002012299025287049197075962363197735784817005547003241936125013313586444543619569598406452434756202146629353151104724975995019094866729437254874989582602446722779308421964648944550579152097515169289678664555260732621410869925026187334110984598899133956408016923393838607757007686856188748403054438801495171457461054486586494549943357503811668225314867199425051961153543028858701585935122956291966953302361663667828256930130889496501652276933718467184182277542848715451140436876424621538964007319144681016904685151180895527300903186445993028165287088124161210725554900719171111954486385714929124723090663998101150641514652370084303267098947617734668309088549453473459551782355553158347280417990238032346000084112459894786313082412283320622165451854126622505641284355774390332154791144868664781269110176536466405361381866899679541801677913436799894340451238370417561681484599748590381257202236348408828665132521740978756346917266907804420113169622658397009841312757208041052026033927441055184082955333474855228616898524091940891785278461077014945096231293170263918749711838247736986108477738388368348770988917597780720060222610164664295031761030902095030858374327612501829979206162150021339071503924504271517741033536637505676162213523691384854412720067202148496771375617147914241491828405500850988920580680115588685319639012882719148096733582801433109423231215694619566070210343990832318565907362565294787649673308302155991092866870059173157354757859066309917309159873590213278733734864698406050587067894254110256729859748255056463961280128592506799880801044361907155595703670091408899130179989494679643916250585638726542923385546562797021800314244966650744541728466440262138487450191519336580606323937813453699966249345008775631826016173005288246115685072934621891126106753322349814008463854221948187914857420457224508994896413518479276121636258903488111828243075288313734950341971204305268368776873642341586398562878060351684133095958841300877204069573473613528747117837963100624543188489349731225164987417430687650808053636851503290060600136032759422478641225785324918984305099970791454178508995857792382356062822913400094433406879645002488242977877096561284637261407849020560356987420371249533476088584022882069687278193368525698347195249317683861392447689839324878177151947646311457568632766184033067538867260518082662137523485614109186607386894501944278317587556836592561777286941224729629835730312922198447311766720263096886889461722925035152957080874175698567118112270945840725088568559157536366110865314657313481984139766895753834484931416662110007808050308634910144854633716347735471510951083559350175970112842484759709159414919699957655265909655154198975059192194976675277161328101534136095496058689169818293129013978582946189924521613791237609301959643290739468188033525322447061627390847301577956223516209228823072998900813569301299178998200496196157945156179888875623649390459856102344090017984048027467979454771068398204556252643894073982211998826136486057759644554521891815193488671093226119453782148056222903497010251439055017765205546277400506999014455535868766356410400618653904463675473872759115720988375442784656951319424413280731892309287993541145400171954234294084059603166781411975746574722986612951338249821054759000308877838546299022651973555224907050480731232018283897861176577375584740532392388132051296602296321739644537689182120830368900719957371435994848871739783025895389660651716849193732690478799904003253012444522379966082987942197293100679479431324951781487207252626426910975670329544881407457717283497123997794254579200583404014675424346413893172555186320599580716831522981080079450619913277181558905299592453446651501538738945839126964096772835017436039497678023003712318407952579914851105334309719749522317838677615181360197178062393317630652475333597828789568189093905178486581572353878823216664398202560788746987601316076955795185172671115029510585790479393081805651598190881175714425106332026077518410805246891706816324030206792956055888334204787485103425676198433707146155492068676473542366726254289288751626043306287497490873012469322117354315304722770179531207267303079701380952010348159763639643435785963265648011325066708973982419917698722723319080499362738274765081783208441837158126213162975239866032694048358563384328463358658469223616857712150280364899247451564483136065511898078647725252010766411712150686122490445043691851990666561784037666240211288370796719608700957314539606014091226570942610725302955019324193224730770929375467406501198612252519793996141939787246589004501683480877352944455036039793806837138759426065666441435267997898850338752386935820847713249788369507506163701741041557314546175084690930942894942549342439492502277010135288491257262875822177958649043184973004218066934950601820170560792130716443566571637627659389705911975491141696768502234820394806692153291481933494003356347299542954974600862406967176216414623721581834124183229712815904759062650746195471856744361110238424811701605207867443769359492605582018589490156352754711433160688390682487781881508561839817335244081544996975819636853875045334847571355858307881284950193372505294893001829659089101122144500379691091686684160055551401907605386176243337619802836886105106666162513804834919536379727657694885109614083293717991037339626941260754893830945027294311885009410512304123903392576366782858311062077389161057895229049262106412605564054920803543558833841640519017945026321656883229794758874514304249130806397271508008002259701505527287592289412658398209628158094756002073117886924812908838298385329259917035520720528315426345252036898442311642665818500137249234487314588807668861159939927153888389538275531340350170201025324665836904312177156390302842562029861065252753503976237926172401539102164451802426834775864016703534380730528157752387175177869409237498682353166863664041974171323567583309980685292393037877820914160514529973145694348150406129576801119842552680618987879217933242375076844679354096667249281954931434920541072404118245964915974708294384950813211013372947755297685299872187444038991433156681567848362889277110894034093070019309548522783582849787302837420937548850033667042012847221188669664384406872638442466620197434143700121841836360653814919033214904695877863849354550325661739588214356139364136782562655111776609185968913540601664196400358702914869348501775388418127997510847497327729760711223459859927099537696430022120544969159928373183075566541894639391649205504991828816247211220030667162949046981964486237939788479098015886795463040404928379962241613059837948181612592662970999871239451184744144996073676274227441306665396837260270123261059198286429005929851037809450305751108894084670812431366626942594880327003609651619689092623634478767982415679104202042213642576364445814554605680917899847034176799535059468485401671384180519601183532064414909692574040998524773181167616133890309920957485723072475534200398111623449354142257570046780001097519438225094822928128828090937693724837293203054514877199820513190831388293216097686425577023371114038874769506131655514593381401223147725595541956692387556307992662611716183893221646217004573717550783677907110483684236141079581324713532012069316992454025160152213793244936782380335971008984603779696817125479071531520045207767885807271825548344386320069742093281647512210049600230951092980164669131183691992167934823251839572050512640240290139301399406905439229752716772019189853079960191540935706351647199441946201282346030599024440539502993024288826757019490854160603043848528527326441378455585959571270114803430117916941626791803014730691747411409928347168776544511394118781213176695774862765411024926485367501109503708320413767175210548445461983822515084896142342710406999116894525276350203397200084748275057999532207695327404745320018708649389481208027712242124985161093810376245696422767403514946682687628665579602932765990948874416362365138357321911040274742368234543891003595081860108122944308908925716543740771344941222075464629710687016557133357647296864806542040002349791968643752168947760468999427139661950632131619306378833377544971735551755662401820528138584835869673030026967336555105734898234907374210410989559192087632429480061312206241631114182806337155824592593674783839470659128477659062439008740008146792092347564882877854028703765207107040162116853853739927664011502540424978642337882936272370799834035904990725338416338923348634058621496617211675701375717239003868810508490334214969721305233908307387018374577531599275540237313104088374862512133456671415412270703243491864024370828308701996774265650007130003568733169626828504122858790349275314117973207116851833637618099961278512280096937587259128480980601629574924849895364951631258386133359038631378858092849421105936420486923500989978893583282081868012012583131844328986506355080231160316093336961267442223537895960314288722695849127513410694349028084929354940214148737430283225903851581088900596015590808679356571262873526228372515323352865332277865929555762294447063200118452372603938163300364681022237600245056427962374839694925521114999707893986705476437564770614011081477680618201605737935224375290736107572539370922644808955950127685530893000733627564224463777725189855350420343690537292563117378561826267309241140858346482169575402683447037211818010756460588764455275407018271315082206876694404536558323069498484571132233856001023809967437728884089245377745328873208012678612367526163574937670227857241627644516787611572628072534112838093273261338943900095545411249365437716271633777432017642990641258319010995878763710422074226634852815712957258468239967578734327334177897628080995654230084742911071324688375789340542119695996055651156159626705692576631437089172231326022352122148329931536288394562295907564720463247556710501244285016982347656057178575085126806550910814618759152789984989935896669677644949312400062637073079226172001077347858552237376938540191897101809400457607901189413207203846479991854224276604634224421296762443491594566687514330263184977641999667468608708983884563356981982153591913254925726434155619660777528988318021196371608938778301269241492836676854402125817387156571336765965825990569028938569090700774773531438290551177333569030146676571086717692677092549210326778119077922261689876422627016710703986889512803884167922619650524409082366535141743362365096383790254865737816027461888289796269274070969368762316185798286217295437696834427486147237133749049776584721141182978835006301464622141000504285171403919846480183391659882624493916146441354730988636062249076951130080145296163495184273855707801675607197051457672559629966303069915952361189473009878216682275755331063539581770182199587513928260348231624062703581982906651110874973976406132518451323939743184659938341903896138885169160024906592577327078725203992708492154478341423203437453870955573089251816055623003725323856228307667280031122379844520461495480930445790490567655343876591348420307643065198193440239813023296876729994795085867175774008221478539572238559802660261675236249805858485135833623939636821222290742773706390678485700303713411222923913221692382565440250020050083402031060859241977785795495493152503074922308320595956521903403734415293928179869590440180234666188926683665430715900636340415861040644196372719379443146555588114904131469728266650656841687086944302529783579911913759053788217329454328665842970482590382309971687664900506619647917974818161079385542473486523340423778188923399217900396660750062293617790129784605270761020453574271413777782828324017434589613664287793947436871475551208209982331976097354909022766544524642193085108388056653233593338673903252054289119578566816544493031217529110280668225812905474048973583364450422107757700667056033539294008776254195005635995819879772474712188410252918130200453411079830596093072765555231159053961606826075155305036051518537500489466382794404724186464448358876158737053552782892894457755470857143888081610573449474402776014771793300648365306872433476746864607186383859737102617335768735337161255237487626239963336675290115897906818068258049741326998612000036170763541255811016863842731038027244337015640857567198167738553610444297737320910295100983196406864654986622881627171180239409234299653360404924046955653562170593632921654877755689046235273011458643443291334149807491817232313471096975326404608297937690912615490783077149263900005539742717964121029829278305203843153719567582770456387156267047424492992386984101677866393040468070476293345105980027858813364545713465652473468318183630013467522286144676662283952180881623414544834277160343872382317934450556744254072197111572150032742143488318135525316101264309464215753222957333731261169931005844869025602666840798779917909066880467894727950441329801836940891021572811375712132100880904616336455817389606000165387356433896631081481522905637209052742014623501141247040244825986292666088883993355683245120249778615033570158611790676600891673036211613506126300442395996439224177209636746009330541710164828080118197988321257140793488273947424745556294988478683717900175490883824001447918695795531672680201216408157745804052692830650336320251646654544675991472615207573167368106476374119850675276285758868454307064905795423664839232667275405154422417434953936193353488630851289929503163780991126463652900416678063447641910767075540048616351874740340548645702726187531437827314276111217428701444479762288374749945300330244317164583105784884252144625665977858302716538585392843746226848130528733511231806335598705075301026000663592117110408499163994436179299504301273723174639207247003880850650630270714437318969464481841636758287528603509939631254764204287496151284319873703754297691078897249222117236910911741095561493500138431530283840420742532840076221103904081403735419323097221449341894695604118689494940499735639725258794606413512438204618641854773559777490841289004035000143064458537076134655096391139050545135622886974563903789777644746969410479048007429178480559841412886892945398892513346468415772100273177740131574217721509499158034293717851145610442979412552595275115405199622278597872162566222614952249863385542816122745054375045437234199506069920903139132464937051865396208131312372140158812921291023496896888026667145439132222178442594606551313706246646570061667341560859878863953126130784718464676673416550429757090609877979120068837623025816740080933920475960775542271811237364802324563179718829811058726204431519583475989157688711247526716450826950553789965673267691117061488680655352029775201457960013895864417095889260582459143835784098232543821286381433256525413522362519503169310312944282569575028515305189978147063244638402821924394217240198833542331514232449535010834312715498790542603428115011802785617933672050550742428479158821490138518647058717800231457224970296277216257609536607966137239835578914743566341280216387244241787592897133623532377985274240366701446032077148933674537834307006958895720209965652543491637470096720575916923293433310042189119787325556220587366881020834807289957732294674132613298622756593694049714744271415428271850106293929422567037986050238992511478266198704320101446988253636670286976309512628333307430485408445216575935985136435384550495264612119292264220439460598873264408115055183019181666577205864503115780097538858330767345231752847871604561304965177269247983315595115318076569598760614276533101769203486269160196122264544710829572945292042569701325017324959012372312588919640682369734992149396886972253233496235384060675783986575157519684526616176956559046167027127824222824751862340616326223300006643507914657711600528206433291209495309849008666095356973556826577510841061945325926732290037228709098623199313264145169698534355223262852858403597775737385726390876425066835224153631277729026253126300759698491687540137457899925499483146432904808754038505215128615918800427448564357641757655403198680656517490549261787545713877510516992848320225701584833552945319515306722862110170484156840172744572508371489427415465751776208943757753525094604968388564078745278678131735952518265457468223132543430603932079590926231619903179293599792223760112756060883901879006630072053275077650551403670060581426932583958742403364418347531072786904055121556927621790681507438713726362631481400513561574511150848922650291731312025314048852557867110829810698479764710635921450993234191203453485968370163762183837484824778421084234928281973760612931429814225682996889620141244441101907658393267096460499722865240171684702924323036863079403358935159677683404593277582750324895751187048309725519501605923162512464981155473998050480303996753002733897799672394307356798760301142620699162577721453200923768581535801389044604426143345334489611436204173121895579617681610495651460262915139436053414130898993752402794672254339764414997917084993364991919243472222405659827333876634109016012750242543434096613745332940918739359285753031908252309419809488239472816405879439512257852508217581301935116359620664901190182291101396452808776783922996838392162050030384236746098522985983442975228102156876604546403226332926472265205687894401843561078288791258307272093832743527454577956704251518163194107231246241302036838639137427597674035760716247990518754672158123413233628228898802610746151564269785870534189175312372273992178864010217761484014974075779453645972718046043734025761839639829737856773972677781433145359776647955278228674332503941837359876574541942089377389103829642649281424891547363054576202592041579629031463355441300815368714621346844697089379618101174789124693233707782432718221180502818513934212669061214902897300167910345909776710014774059832112803404337386444398080438956834552818407510294514147271160206990390004884038624682085467790108973996884334088942923209469130026208962283223411272054638772198847520127928467613652935759892050861204090245425600091855082548228845639295074366164834927459899148203312771164288570354171406063654349320724283777635025059657855041526944974098991318737620296845567881362126594211940357745028311747489418822615553728925183945205821507974601420794485594358676922884038309219718875701135274132194611185925966244409573838637082782302555546480386878246599735700723363795188011802959589705240764164591737271917247486144855331794840487580088166063236560618205762621566497229342196303430259179683395742914194436248215816909635392831950118280954037286694872545060694668777340812476099866661068909655489058299559286856826207402278751925956091069903026010523536870537595881550770200165157787063667016365046042206822891631350700287185489763855849917429968520726245206413596374533735300225061257015633794681447687608651794742860325898543298716643894244458917892927472819973621457515916411484813770066940884041544606801221091868006626756159408916656318945915746022863257449856977981194021912727016360804041505384716980461452438262271157956386350188909654086619277455656282247736704269087682199845875811982185026477657962258961205284099860396508455254117359191947232727128967580863392967133329063943764103353057290327703035882662834669163041644292890821157701644918840785840505005556670517015926708194709841721290172534773714793336132156064964094762565073728138510191791566657800727374561353268442403285750594612234934179226331738982757409445103514940771693327444038261436557748308352713279664916826435653527859968804538182511160962219519081401192881241678531928949046329690835799513262638257891237146800899396812925303493781389542981205835907074494609448154625111241620685227263314736223502248622695303492430434129046019195347555638069570668332631573191593671602107979328876082773781623047580563523953726910173710046561529936548502036496083756669215046204085729095821674946165710665857646482845794761563969275219366417286114916959624587806139659850293159326680187545004291061126752774243447621566957369323329946820154937639706117634790509042126738753391103253061227719567563266429454287020981114874676632843760677485517574232101828682064573382036177151095367766652430181330504037203054027951551391053569693832397532040960608716464995968924950393955673455452349588661512478097430544658855921483788606546047200088319538357816745178593665738051509872935268635086846435037915464673659727083450505008881716271620765953244333486999400246231237128733494773348575900460264457196840997161200168401381791398818820541633100323162390855105944842965264650869641800803925250208805507702000214566381490263709602571171517802251613434126231576216759229932443466480697161651849907275255621929301083332512891970439295304253779835703369602527695619197609858794308702305299813116912515391314362293561254379224137591653847873517843626952316482839149481553451577102692320762876240127232835938734402395277412430531155934289821644197693048947794645077588860032447187084623391458526898504309965678356194755667564539415353701602930068156433695771663263294460643572404650565363743043816149457132348747914403040458134332747319264663499337357016354043039410854704315549215950199940852633700148765913280815115410539115585500235239665653052558080926133647214787437380204754374562800490344013668622319208683621170689922187580275704010443236717636556614447775245481862782261167750191666268803281560404726055569437748521242132419667500390010960403821777071393705247917511514893435083853079095060349995830993454683061277936001646851846124988900751128635930893101416153736175905983576125146720068469178786268574782104904334307747882739461094979136965303504323441926349324676093248895653383824101230003216838160096402324360397036302772156538167636452263754182207139741112508915650023076666887379055235685214281618150537715142578344535251331686104994129870349935251249514173919207278819212618466599694023635992587515510462218668295471548149039599898660305141540098637854062927290064710873244901482209040605623991080745987260080469835547787471511313756002387404071322686270023984228232041328567100688062573068772631847795199008998187601961545297493887565055105093818875308588054347052844706489176248258670481336515161739732780592870055632337320849550188865459320002303145486072693267044936718100971341116079964945270579135930998815297009465372426044611496873223144671671617164682509394772124883671783278696559699096181389703079286407328270188172104507796571221205326366106209409414413698571044274209200252148176422462169113010312348813671970106027400133013000584964203806964386840361305744418351254721895001928786587306268519301930905059075826813344439564193698004784630686746116799833264747760707631657626444530378221214671196897886079946726869176334288326603017722298576087976407173418558086853019308975459928313274517633267305141794554107709588259131626348287818572940953821184531537380292765877379610864801422953669118239882683219088482527494732412700578836514533736806028337943076020896391629522980856052733933685185327664318865598154583489845705450188842986359328259455626442594426763560692933042383545105412711181924725134671773020406972563391390889798672366153876203831619446230975962771163325153101404365955305117423866181075638413867175057903451361423232350289419832538949649887972394642243872916254308183637404351343206779826804946768255165349417473024688884001654177533814262410178598268224071501914673303730767376710502425113329516650666323555611108233462765198099849762902121249976443143933082813824259233884024677934960955004834773293362626007398693923253366017041589106281593488003926405440719759908078415013416683677509050574143433564411106701736236709231625351649936853221616442560093202114317073982775748746370359555185635792327474645079096586841761734790161688093685041709697939066940443805685982416812818636084715954443965558881265279325968349502602283340490217134758454887222978183740772334806395679528345217247732590072230078236871932119224526213701668691278995829798418687201146892357682006809828627945951525465144119942057421137620804229018097860211824674076652556835109228363452331837631265387209733453389281515404100366259382510377662520338251278471780780223311695486395696416873732237045078742074462406720224536918649448008432426211540809828058826627595093160755657882770439616954042652500489523493221807741921287896969974198247973141679382861101704574347729456816421563686658634082999824889585548246258236985739974527746050345489311120452898453053547823112034150702848058879667068516557434845269518567866686426693752095203625119198765168300014171784934182601980930892029982617186886756265045115700839887467020155037527384377210388634528668435718592725778816121485132609736949523393396298462692409459162878493814378573640792470135919583712043659665566506621819726812526315049721704200307046709326135569243207083330800006733077599731565769489093591143725869550526618852909270672317750505472705126959791635023590042175567791235827541930433166078650164392844995330925197305137890534385985757176777077311382894742371968683288831959260373430321014926200843571674292695852425354242448716076248542218586621492373825541065722380186047375292428459309076485274629947500483701614850722486319542420157802255844976808811204621604171937857894484817688300085735958298157141855321480606439235285655918642424176415864844331079477121861653178910054923264153555138318429045746758474046454436312199740207864099690221365174397154098480196803156544594550350836180130641231858936410767428079588939101244787559300990654104862819418593148057189666293803923407956818792519348460804876015439167731761512525639921261189157561158790683854094519601297019152431956776063359289710803396147184353004811224269007970186157905850138127936674110892478681903875560643600921373509369354833992857505161218174995560774774940511161555430099531621004502529434515467256121081446262443618548156109427861944663431969076583222494225550059884505233756655914729599929435804036800439987474147112639012001842197745966364472671165806611573962356365687015303727786787587539080249502546137953835029840138347762400208773131832582928132265356799330305801278600774830078742582751528819488981512007895204274761004705279934443234766886597201283680282615351309630690271971126852734000637219440767789131155344546260061621418671594963057168915893997881704268223426047148425165832040775815003622882407358506579127683260734930936054175548826616840425844163783801589543265353353384540260980201763949277608952012644137849332754489253537618440050660959927913360953472266969783810302793062871969934741370525793632704776489433264181335510957280366105603333834620947974264930447745681285475130539055595055144467205845220914314622120897890375510317715425028896585315960316245292725247862844212607905609230925672526073111920957056069506739828656733177985958934094558451927235286825547365564574545244107647573177287289302677207368407820506029966394687936395924826842962001978452047554557691619060443485042633067212232681765678266979741353585762253048425476447059170882318997547521451389608505762031547718087818168078311760141663304147878928942147573911416119499892081713435334983533712754843089288859740704939419610385402262363849956793019705175076533126490273522119446262566575947488990490142689641366794835542227149430581437281623819483477266806197341286694280981312530521529931214451757535545092155722727605474960185688751336376060402013192248109285043978396288107103848824425957435317663027367083117520772638637378730821955717465387824435400106754490237533348124521714944499342678442864231007978396272638288674535474061068431274765696482882690006747949172973561839830653953189713910910479323462461852723503833755956054821541412310615932263515481062563171551360586256203067648189019476564069544624135092232071178447255881396300203090803529286426499359878085650588827329893152800563042064107878155652121269094189101568985601719603244189593541121897668948202999862813512762677657628588370778509091580049587216482042174692481029351284050907851589198353680970125518747305502711842585630990984372914067521493094088065478027310494806316980786656728172569514935182861507526739847912534159813861423686402556155542196160085451574261746100138807043265896877746139470865006022982144394609434171396323591259038632345617095012332788750551577244270002529746306294029800356286327945540223684198391016771104566836712592309585762452413483508763763748984490555934756128640842432528347186543265367971966497085283716717941603202013690072600325376336132831155549973135878120338407648715018276069284339037142136868558594416037745036268378909588613671984073014325538294214344070072028968473762715243220774652862850524467932152062911595728620731265350252797529037006982610066051751706669117405329794352161963493832658167475012763707401986276078871788612153803425614590927257219638516001643644468702833461493486960334889679265608426768313765777903694760078211959255628443929376930323107280455839089575223170021371086842854684987114387189779639546491214109937265715600298075158113936807218924971869172963233907176563710063650996510458437516347245915900871061960031164451075358379698327218790443120476151892335105071339067526816793048113568758369114188039121824305214472411655985032190782789379387699016676642056016252285863024288744651153833030704180863543169057746968608376710670310987233912477299524592810074893924871351173239978166616228790528864965722793412851955960904318351364632943991031995515115483997856386789030901931266331300655825021358456103111597513720956515689316865124871310823759007764492409576218088172786926839670899964781550551895446471012891193769680258991539178143921737914599859120148423950630995436801644394958370883796245320870525317918633743114599760498550218047962694329065340007189257013854819209250205818293093658997801421178579628305324363291907478601700034118419290978653809315329316439166952721990844051339811233237339313704474876514824207707892317938963788944313357764031736615992936370522511327724229353878798510199079295651789347298772604076101202472496927145815383739662479984369234589761395274275896219760371646723065728427404241066357754172477759068008940835040872703565126004441869691393359082308103116698142848471575625089981938034525944603044329956807208889417594294794073151833335299558153102662434451297005739629459569734264010895606055907907054767842505808643890030104952017627099306793005403011223968234467704457247430187454139889730742043317664923523985755456199645565446871764601890915045409557854572715424188279971813353440353051984666255053519995519282206263045135652590782812701169882394663585189844436899144041657990235407463976687188109988967499473044522408497008274290750228424272851854624410037094313359756391998783084309611518111657364357834351388500242466633141046831974866775645049213922950914231097825700297764724128191721140434015749386603028743798510682366981249040922984517414706593832115179644860221859975680565098885193789282590903286160513101445872513360045147579778249328064746454019405286637481876297509589294356805491282444451189315195968084160885684057375661128953750503336194559753112575985211707802994070694591183536365548456566206663325772122468451994578014485585274347504575189353261917335098661388379574307387782212596529516173824368748838497154466010705467411023088113504281076905129180784058043472233196966930812449270136205620588496626655860682080381218123025439356991899263148262221291497839579809673408295252894755604999283766488520653658577989444285475154340975521811448526723991215352478270356152764935552213160988198674810246499253409569067812741301676711906159734011717272250069736349002066599735244688981190658637860030291361992057141350423231471692908688199333682119413648509208374495925045315908336165358292247145873792476011072131595080810219468196849320338544467202011564308417051261997929015424298811686694387411335020619954560724613272735540557956326195781965107581825572012723781953033714992758101160007005376008277684975295704679021642803194863033218782127152911206438560512839549493265682484429456739395882850744443138710717630316509970809464678431350903093440992398635969310001084590527227512883131423219009352982259175734451300076710737934801120133334217696963633866246560524123905988055786736076866046569561417997714575649673397436065520028607569318325414955957171336581307628389741757342783943751116904211992266742139622521346908545180435811220031622551957195923750957644618337884255384797955587363013015633306888992582838876345834548540638876374803520675952154030686481761882092619567901448783518336188709942063471573396198579255316777602707362263136703053047822334895881080793285498919351635548759317112446990649465226107018203371651421541478281448760870867645623532211486512016504988383884655041931286266709980754507664586753681582318724292186702768843123699140055717428175571023755272120515062783479932202555439228869207737910246792702002949270860869852114476122944762039090677971323472153804525184320220665911523142489906476938400131291688031553487040837714685179517708259064047254277213387856589585321281613925946870946618573563947591447377929815759475610815969906106605060349198656545897818223812505530951568534842011166050183037153911310838782054318660978983065297192134246122569240748331871699534767178941219565408057698993528819402966112663803815471175393461238607240023388785931140170166588289555163205554774199905759151623569567842368300872153995652050874929462344424756358204963245756873275936265063782560920052710126784806400875398749024875378925786155109203211668147157268437739190096071886136040667471301542422931953406760922740371788673690094093532752006505172181757658699078498150293506767374769944358966876923265288536574619397257029922498564439083227338043332963250330268564101472425223950255662865096949330776482321320234970718533602877574398589674195525750001039468483945311938445177281874994229273305688861493504803485019762192576956484008869208661736425416372691391348952906752055042313982350823128329383791388359235968584390938927629888827265262413949846435835684167416151981413081406080031957353367567828093839428732419373413714796579961215104662866664581334292356252319973587237599406475427850186388673162729853976272513491048054648281322711708197408444034413419984818889946973056080057774393100158192478494010946326357061694795178715015942983245039434264147624644620600319880185617400361265102773439379850753052253038736950512487670184288966728741708506606548524774594142413483759397088414133064315245361982431172862238742762847876381934883074713188995067143411656147899181447093541719712928950005476976684518768454265578802030174683070534785840012288083756389772599817210983718638314059404306212825916213485324380282382502492895076661400817717135974057262980066360812581269458539980349181080699526912645583987725261369778543416448439560297326902355869526660541055267532656565367430114155015098065214411505738549445041133688492345857686564651799918961809260866556581052544018930390159279363196872411162649677924531712277242883911262224361729220089858971878938879315835072102663958651016651831388987933651045476695212465259493622693127482312859641256585794550612178679329972216648811458011740039125885691007131032541809044312739283491049374788102502716445802200837860635022609254878853014394313036470994132731888674470450136138487054134006320094840288873144540998895824953786562234324475075369463926186578277730832855970342820156862662986197911893233167214187340746914666825080192011464474636422901197105547564592127602519179390537226587777092824473116504675962303764283226914755039317730691539952146958610187187949616116459162162304510766786224011329306113066647429643260207704735173722439784985377228538027129136146825793524379085424093002261308619521914968249845443131181476007285654678131352013022478596686657448083366098731128307648486790778707071511710633274689220725409570529389666224937135601764279712885694628231890901112752172888280049507451474547304601026190286396921633144271469810381225188766768150580104639771997569050232414998734404736908477953382803280912086425122243912315942776137360757181281431614731431035201524429203882858788424531534918216736573872682121430880513465826964713818476632579846759432785941448529106825103101983849173673520076661809055248860208715567080662083824999250074214458173182358997001097315898008224913255883314047999714114111248872212785108073738068199583530902568560451098830347628168069524719888028599158429016762432904824483333272882262214608217669681361251845389544445791859998582538571713929572272082456622658413873323905849080791252818822113684470290866499578697523602882553753371399982923056222050714814206211490537241014189210167383767444285454310092352223033412043906838914155048251509108411631984368770473886560719245053807398098452643090184053994225810298882575348589994449980015576227041456713770371081633658106115836296469216464704762690658802662525252098753483809723743578666329260702112087761703174159406606465003782175322800884163207253440046934384024490844363042710140723437356622757328567198870980652168399192950037058287880611443911735563627729113409499725200302503986743261965578365098010777181569970714467360709992984391861569583306931816039671188499248266945488682088970061858876967608523158770499096156777866507470297586976860319292306562793071054790270461109095940480540224025543592792403144427800310056067703524614393143587547177753789137508560164326356817064032856965570430351575212132048929827175876680644114819202030087623614810771570856543271031012206491252526856967901397823225922332071918849337361498092451666043049450336374543278615732656505080355897903164671700464603911975306795574664401779010111221974577362878827851556907632655741894249507144617153503438114808545451017574371198571000659982001344417963128860511392680886052441292276196640741516310715742491993018168219583398429533234260174443975323844979594040702707933686181570890315603311016555449597429571545841824498500612019502674887873778740867370710734559861306518181371613624639843354734160280668170055186593461224000852759480190808877704648841704344109162264988514513422399858342272424174023881661310376013392575692521832570626779916496586794207676588994057000509427495420754662392528199539149135197409218255380470551676395319881720267018022243695449953845543394799859525888415233459463293052132601717524073228517454342341265781565744720359983316849828617882830907271008597814543404912243000457914297212425429579285638406719033456394787661316621664736712578085386312594564190239370727075025740213740343964104332319091698736843330530639136731346822698191970129085531397432270804566188670445878440876022175889821684377911282149195024395495682773716918847728265393460055127179609608753088467531916584936309095608722528058707952354333780239156055834346568388231294658023217626121654599284243862645825332682375107252835830721059132126941277741474207678470566454937540207957031313103194702255373506285562253054190970754037369620312130619567308912875185333991081856391552511824377338009995158788813707025680175320824823586992735472484005203641052981864493833478803520516902130948357376015351191723214209049343670881196216988310322518098201509065263927089894556587921227785296562412779127139287903460787417689147438313336190757700880353798922577670127417686522132540857065670996667419684537689486423972328649971727352989939182613958343967006344371134532938244338684389161742263913161838749625306869483965978885891527221095628898968845117230835532935233543840129023974549791915265584949548333169692704532620439529319110393623001268993694874217226573276666699725226330069750808943310884483664137500233594389803191082030294367742803205197624175876130477783058044665012427809656077659305498898998061876397573211622218578692870890899960228035002592728489068985608280235780662003707186188464585849120054872776902074630432231391027091472959456162459231253600065722723553017365415575903381704809898179566833983054841219089919328779616380887222869975007563234433398618234423128535166193804556855502396216992820914928163003066913835822064522021741614853703507521003866445842944598379205218766160616646089318371411434971413688024810577903956487131821142896517899470614559608950413524620738213612356355296657350531630802056969501399846538771120275411573242118303789135168787371944686467696765937100285428463071528100407937414937878722163493358484725208550224480658240508529006963392368921679981054277309858387886735913546896675161004792027138178663186407543022989476407955751852991735776204195693636987887820593529373810139042389948346406266846436257138745165575523132854174987691713275364307290383880870963233248055329169493295761357769857851811597783744013097187700343714063428626942656018231800787680950901417903417031068837582588464244912185390344408102938139568450499452587577717689929028961279298645820763982053325617531603167368402638240209111007407718419654802484813365786962978954663309392872646715063854008976772382012967501685725315406898943989777437406430107601590724696332496238996977252173207861583176382772654453512667790621647145789488431682726877492130422920341276049415865540591377831360193595195193016590571727463494251878359189490713461538398169243063164023403842113285064734690702123845807446261010820407671609562395754599266948096365871547579980645845493149019453267314232157383179151489336424470362259100452167854156336714443186814401769576277031109562751352367591787525822936051907047527003597362503983065261770907503922232173240780681817599232662633673725573450985458901030864071838339231828570499875172317465519176463228244078403185742680231719957063977317383014398946970032521489658159706393894546489202722979089842042567107836216446154185270547745510389996961300049433111959794036387958052363305853838630968798604975164812848560222788223448200520756276146258287085432783362218224736954673810489431590384466493069986189217754642574837843540568436947529189237808572494431522543334581892988553349766963365508008130977580949616625473467690757383155310073950683542016863359427233041721600100744453531692658012286271410160563742565206347606543656088198186750571557073974254018078222703542917991382951400282644947672752846029447474164867864787576113123699137005806273199394663218973926817677952639714508027528129360222120394804627997365969754571858072799633125679704914786516619007170536767984802033524887006673260385564201385696696919088111326005304759156002321031203395558405189813705244757786339454513136232109934662198701800675591157828774858502392555824883452158256284287415048339775563522529997438281126569624133655776836793809375969525724111808231980670894502083142040035170394959038351934196410453664014743072963364456651084433429248765623351889120929701221754695809846201567793843293167275788093036947667909754020559123762513424029219663815205050075205392639191244751648597432888499122032884591139929179470602491506067978762084498539591985758566468645437439089868567663933522742092736265725099956074735934369869505182140250570235080507231038461952189542238831593946405704375025414645141152415610133362190706984906093965565127857517395559442271104438835325615534307075826979599054962951687880001788077696768440398934080929963014289181438016074583532097211668055161869984128827309591774085342900938363450379870730320687125334795495099831605405680570929079074301503813106488917568467032598262817179869559608556093858816757087003103567536571415691976896534596820250859780335829696505032440264578420065052630081314384620396182832510578732827348028186273325445704728115671793747017300284601764703889441930742797890428122897273431556526257775048065791072548339054645287849067574274282199892069990740848342084787770793169119248419020224551641523626888896948204076424910825401467551874447692457966937330867799321416920227715178394443055352505910917183621333423720504558119076234256058081850984958752062021282612155159437366356012124252712055527950850110748182875256481420883293036795945664961113042327731970095955123663049358578040122897806893719526100588276002123975226683356067754778678991607998706063142721514966975472217205327558394194907503890379373632870899499180055242541771222500089713221553918294674120350714100442422353228893530768405107267554221843635946603512205505940790192467980275434689806043989329018630580968406572276969133483700971203934826640820447353521373377137469816391023660918470823327689980960580231661797482272637090168525953445217844322441961358376656242958865849194376592553985444614127160597089259976920648221993996896357265015635301662135920767828019701581234034023686861415274739714984917249509090628065189751269448975577693702506951030214080138157537019282177814476154180094499386064068511903323247971470459981425440903626933236394222437927820547379719870004598461594233821436796967960374242742855588662280879652321619854312428542826603524903134719644159345739213757298163939912100052176952447610792107234127143067378187781859690690049959138584559281574220158793532232781724365135560368082109955728237007452820742497719539434491828719934593170330634048482457077818270566588518919585011257207915315999175949315599294216170142748299576527412548254305782405672065479436664015308383516512361441720387426424886648653033014126123043924462956053722529642034132707942300238290243407789837668449762204354509688497628206962154117915365309670427876788412737993821651438935252627873961097998676605613198374559032957045969970696570824926013725801554904094906198944728179109384980017983948538389928103784037345322948721489012992181507654091112099624495158665554449960485408886354836219383868364300626660739993668689010765807546355991933218822318538225653280958456026547851225880957305460054311346006833069628451031192153845212397199627395891557754322877814824796657213718016676400389259316966739925563409091964235211491897490585998099224725594571468873326333234072166722290988745594535590275875816003835481659842570604782320873183099039361255568792810444131008824646156070281220445790239303196823002040511771875746338940921414790617714221303698862308353916071322146060424025618745632739406792731168534454469930799246854021780196885227384470338579324317999760735570491155869335912449740357918011010371640880030069118386021472265401869862094406162040606312928236855161327741295575741392257066633326468136706986982639068413948559943771561554297261325920665241944423837578349892491039730156428996726026485333909558520018996823313875955040851323588118797301856147625274631561423992493896053413778127245219373583996751748509452547675373306362242514812404553387362762018057556992461793331529508953179088146283920950390901218332641020220961791790194628129091473098807376705034648826977658573358350005409530307322395634853559091234019756538201967630835963583126409789701755011538066978609440822749064055255205188624732490878528823608985853914668877493719395580073885620281954972104941071187197668662764743158110794646079636766848854290708460313076855034965792666698464549115755697303434113034213018247144033532804696872756495586391423814013255897387254681172843118637430401177928256119299250781519999285035063417345230767323140796727847907764458554816794654349318759879194842071040504988058629357264147539609317550176285259499897652236166502912079857632788432743624019392047231447798249929512000391858764221239236388562055870732495795627671382876201945829753074973699766620976136465192631127276199291291671385887657937872995841539631278128785186070334414874703141554275426365304100380733950428357769433559640520442662722855958740239681324019145961082110105125966908395698849096733240862515523313027551808273916690384408333289663768300377979711275150350895260767048312250899460563483980978678998704442916289654834146929176027308563310509088517120993120051710493656139768654446957634057189622738283271359433578459834362456426534679590978142375694998729387380765125660928058722493369026617404141874817356242840054893245439337698404618935731741667088920830930896318497062340619189241295781602323716926421279658131944916984089187095216038342154200376029072542887255607514557725903648327926799129567943744048429420257938183758670640144346151283665019448204740519984937686933809815095623482487652718654053179136253043326446219208872054524648848168111343851923162352325100845544387113841386594063795075300441672722491015837252616029960922679362870657764751949843287072989109357453075463117335593643969039745719052873943758016935684633762296072099009553657746899549667043238332133191423314506622391057907929017567872342008545729053298144520041359866120863381945098766057672282354944062231687576416736346882507416417187930372465562750253323379675256844482715967336978059783500975915596482677529536023084884219865657043970886580471797575818819697257941582328666329428313221272192375988424691544464269615666024494070416912152203198588868374310596023898970682497515318681222070730228208882592469758584225142369873596465294727346108901744476022508000390413976899562499563975716492173943909475100133984375082950816722691283853260174670229328234910020357481895236605297149067137918317412146417485607788482633433119626620964484967112184385435145970755068753195211950990975834841033095999024268049139939516422102852265503927577644389218723729301445324646839767771111868032099606402705508085453197246445021772983248332366095959949489388161290026721325595665671095344789033588382555363617956681357524927558639790764776698949352643491161925421798468053108863230502540612687582531012272056828045292067688333430736688029454603791747143250270357577278554075694421033392650837365266722251142818657969835132249964625382923107141878658555903827347470187833991746843417300762371363369910312589921881828307984708442980138679691088451228793209423827513449783279439808421854697853684284571734592625372435681893313307330547969228450910552218602454824720877612807567265575443416718152713067828269631700628266851174819804303573177014390289538603025411424381902543175268325596146325394133230557307045741378155826881544256117601976674144776129781711617420688897944998595911083682533771904147189594692208795043981234882644740587503706400565868139934751959404000609858082170725222134992906172403627581181804217872677338510700073238390669397184780679743646487746558101380159191326704471474139710305135461847303712128867125867859645322040360829329591983472506991146690198403770846804805829561936551057762052655522534568763090867544972492095959686312748173169694932846910194954962907746211035910736021624786480776027814065618877524515168743960209885480826399888362045986646110143227131872770331863454381652118183629976101083730900211870500269141825427128255589113042916411210773228560334376986036838587964416052256191740364626575266573348968391422357216709965870839961272166229693037720574093066322838242274746261779866842039028171652201842254397362993824869818554583067567118196252301903192655843637551834739693058737249776156090933286710966066587735451805505734615425960282294570201460794608209843821976512965752082844130961187486426790857810692160831847634046056184638652906148175972825872749196426731205594796866044665050759548367248925085169699870877055369522727988740330582321394482105500472087077647615477753977525531065441930741604912632124805547069327346878803069579898528175674514373636804629308338925895941376146673633917891218865176303136137862992834835350299611336587955050208803088070568603156989668484012771501328720694084865729176588716062997445002050673568546951362502329843854742367535104978108539061314968840126182391619267613893416304428799689493148347814448945135950516296267494737962496222731702184568356679558860142320190797142093527231173339236704521983414157960527202653260718704653754989327407345678442189529919193451980022159647809580245724148945175079155461479311505904036062036218318209886452839062850147761681055096787278795947973323114622327586842151322404947682040443460758441871096750201917786690809071738858015579372341771473482428083840997435411776135553742394521070821826727129158738475935309350607955157265670286289304180746787950739868559295816846155979271386928712481579313072253437624835104583463929249697728460990851531021803032856395473490483158631124105126457843199297893982165146848588407039111284601123999005315185832943683900609166230445247879737856283202466098681633137473730157764367038310520993674908435281346238325695351147519811564481949837878724474718550157072050912868042963714902775796985087119592860151426191958799586161516482090306237787236741838593084572582817408078904729131750992460425061548621977473277306114993827423183195852585838295811413318876463973483439398865508693780476292164231300720930371219536287214120440046166783625528243557329978234928285143859449047840749414668534678134454523752453556963489618356452363182532997118201432807036165230005319255206084487391231500982694207788675641935639533503554137911955153876941556535479552864748838819879564388443957101968482133930418017909009127983148127040533632278175467297211849612002791626603332558027365690656859044409930316829841745193683104140889855375875528956702450798927873800827102123347183252008701266735195656162446613174732158504674438118145464309030012404943207787308449057238785599889932526697060743567341139027988950752476395715989866238931165414396332731991614795843461131026412717117794113672141134697118098933942885764726512395337281433758891424590650547256449820811008742055323152836094697302952219466925016897259735351028933830020454841890882563072348409233901788948604821248970152715281709345829165674755823646678038731852298052887294968231385329552851664751109793353366873898598032758429074241224838628399441881171536186812172265186855945078347354216077568385907799556437103215154922644159090609806905262651380600420006762558418919880531289106847322356269571954446281412693343073881228916923842121029856028770688517439575215478590567420091962282100938132295727213633642144650404356599789020669629050790728760248265880824813027081913906280444957620484139296699544591383785471326281410872573290574007450133000698765174245582268099873136342465329284018917309486106060049577542329586959089190617641606670441660919459870415413800554134701851575774654418667469004464531485620834593138546372034254608528215567472829160926454776395198522879292885773727142939758911228273942306263856132115056017485364981104559414261505345105000869301513263665311988131998726124249913073799630421099665592084266111144744370832595395433835065726505994827629446510928178179762554752355503681046326038323503123483094344485795803460186780608415443166525016844292964828566644866203518625535245166204429802217139726474293590311137749046453833191946169150150442875420181784266463014153027066858058549227691446770108237723717274810397781630988078121258360886537384384907954497971805818855324139506731788773085343853929795797044330682597875589380836313330462366871572281663982723289622642881272809091551290420181095799550584352285198177065111998403093439052207952623263568336301867144784430460744628967719458814336505207596805967041388937922484570227730394958979128473124773671634322986958340210976490693256791334033029286204585933207964312231921888723141154029541011231452698456711164740523647782595025233240351772325547370241789870564249060636656903606717116714648329357591109476228316026604480163273599592765905716992599522039630238204935053408742930135764281709563713372186906921816597872481215390991173722130518825787774708598050986692850382277539616943332257283421954584827211000946247092082479500942745115714014635027320612055164160195702297693021815893466088957669309409097545337326753126405568045005032654062779273417500175780131306436992957510550169958604431225451100080646939927459931073586336693624252511911065191144472195620757632206566610905453970986193171656363182642689843162534677234012864608719852126341867983759665675617298231577193122360664808456507099623216516251171703930654591344169735093395384947229888558456159392789493138500781060539777144237321126156488434681023112294903480533308368415225105911772299642813247883507119750677479612535675101250291478956633879204779389821738349332714715357288852669959242681930973074153051886048464608359615222866209380770230612937638297366852477279544098470199803251612597820830705728880299035874392191935868770939451457119945225213932025640264319371675211112676287822888039819956310779250277686308683682711640209023735234640276081667732730972733332809516826019307464812601382652423841830183136790428691242840028210490307946234499407728960862891713961186024229850263325954573475292365687766007671190041662751109471834614383235673787108962246509662070418338077750349024544191405744061328964794808424343346748207926456952526268790758896860378130979168015235423637961953011591854075042794608374585162829375181454412363827006495256975893465944637662553287229781484503801700852262825164566035599002847878210382978350716387298889970520187274637166644166935351335405930572979299121953785781116808896586308389405147120696239642595185938425142425638452040225621739332256365522338981138374226648333821600871985031240433591249205365060955665094381296315581626048042861552427520613673960040714808797170368072767165069337323386695113347851405843957692619117466145543117995464605350815084390071483568052739344806834584341740472710462674864929333787832679683357928877274396081142565002800641920575251949674524555115252812283972449427935645250341662724836182543660181871908383663002427372447358985810447073250429107263740250319435420719746292154118132690916990326170937949991040377071782869667067262414118187862191840342454089089859736455235303823290429689426834945541263096092071132944114544637697840585917951043148956778132786237848265552626138572379810026167621857171925557156009024415246394786909308485824536564217304605837643955243255621659133336294089144044011481341394492092045279359401970512426280301127606963992169892817609648578508445326852158220922844641955555068504115986908012541428485457994843130891643283649488138697974098008840289735764693018563831319058337800876971086556427007579019390961963393663174815534394523927618260264641583285338942436054101931727237216449312054280016371773060124511578183661624513649185305675473786340446291231054173939236614291881534295211542486406541768950494108959110083559018623843921006396002348908181165566196632774415227001783230745024986937152018888678929138060490968801408545456616234913386365659875500990065119608092826727796867104068667101669403605457227044596703720004646437887882145369884718535297085807352947273858889951118265356980088588439766888436043847265418478740411425774380501940760343763691537147630932367900909350494829614250004698897112156150880076302286275319860953709291216760590184556865196402120271074106191806611913229302670987195033199327668745132447755132555077687288645786167095107233765458511268082426297111150814114333442604741335408063325905289582551594140957909107739935833844872499171158278833121265852279196679994173044547507847602274776328272231676756299096532831164005873608757934907826350556726423266687898913342911687757050339761608177455561452170175132856000702824821590430185563081487033744978643087231678650721040520671780359638214921977394904076741639110016377172215201510409077460176424024644117101216500441272340055647526714288716359933508600393346922352923172093588193285376976843972607258552997119823149222113200344316468131556185434101307108590745988058042805319374070377393935042663342063401222761190352458785775003297012852201395314221589194234692450154292816389893736415243961511755721626126068065526688483840328379261896212027838814113090603702732465605952803266164552960543473480702881856395876959238608430907333271799591498746722289101962299902756034073474856665205548804481943221194033608468575350167626825443462915518314967081943886226501742669171421909741575370365229920439779392517581362284136053526089055034645405424991838680961446030308624004439299790169794359040772848200727724069620903630704418839234158240740336591227253062303108688241045173142767981526957479264243829435881102336898022930135754698361523129798196676576159029892089842487073734435626927884094745044498859316599083167653292631441857893121865855246535545688922076619159175366989746597180862073597325753339510870510138330334429264940485820674583057625398324914775836696306478802857218835717366899837221572828733791671056257958022284047444386015293187557131019978276426935448871857815477088023420510890665940391821754617325278181471138010703364064823229783495464900515828016769048987042915514533061715809453471859075085981317479154529404547622240305523799439295240103183449923246417521307531488148696790467385569972017820354995813653578591413985448397979656140439108712328095604413748067840968545244185833268722916228173146152022124844258340087936474559149766917935052614925141079839415432833185985189760648634959285801385452222634647933111530706726252650474383488410971143654123511402616412817893995420108565789592445800419876713586145041939114458146707579348440402005270103974752498486592273005706270878830510126200688920936072975655966771636530842609904325728729860724930789456520451370737105621226790787428622889210535550781072491680189894001006046092331587997480364672759710991343759209623319339368537594106243822557908618209077929157264046598295464921528926018643356390118401091080428902595373689296137985675240963459999820688323504916304786679873602631429865972939139789846522360141023861741153007714096241054624320651279778435306966190752569039313380101245409380904061110194995792083278472641561253286381508840245455201266367898789414486523361077752318928469811344076457242308255488879304134138547988203762279493486636615319336730060107203461966180173854111597906485826386521928410135576137395474122365762341402325526207859440804079766756530587017356849740760492271209456871322034218947109998660663376526958195317939270980863187004477595471663700355842620031152626186759512470893637184495506510974321239579239560261826627353025701387228130008645138847642376687584760766077162897326256305446912799500999568877203764476427612190089260847091201798457290323293033024768371296566356596200034318662267296721929528243837524666367653937077886559001434869353409642377263190764440406480794470654686706982092560320978670448196209176619383462895919701777753070558844009463251091880976489170738711783849950555271385919175731337154403891214854088286265528614575054595204311897267241826331479124021204344317764930707223032538623183243515758743293976082462223516902871427982790912630006936857709456952309239459756047599611483133918817489649983221905667464748209391936667173641538039095620728357119919171909061610797907002368220574389012793791221033852832175788476600720860393684338002727294971524914320772832295373393195138511287781476393104806752742021809257675971139714283712522608900200968731073121381015087407054115782106541247177217599981389778664229525822851038722168769631689708969501105827404114904954571567324504521169415717322618158654693177103515646406025349217113748599676000932052064450817593377505979675234485218062555285770038407420135147398421394401620829446460460910750624591619541046185129839408109912406318719347536065979863363663396320578362030896598467598309032246991113572925056881144771717765817127943621507872002310841447962389924931458014355655732357331564870165751984024223842195245014185682710281231581466865745804418387737351335950898210389767652675367440374076903471741903505650661208083605821889267515652746548852836152286115085488010129218944958519116137898540326761177589188073263216745584152693568029980706025901090387555160487158244185846899036609714703179463757617908201886339807234271074824288497496262755144782270138984585155422856413767800695921910075654422854553446979452979165771567476151353236311860027225276918651404824014979624383832262173028954489392405680497289921303519153504620767525872957391841173752242758809609662509106635935526864421668329104995400035119194275811676436539208898071320990953497414340395465439419112699370762779535165516402063052977617110698707593245171955825515186023433074150864616976433392907648539864165913809717889375727542860667766637042777570106746581729468099848127732039403907698469393680770643688549818855975997376307120190771573852182610547497437005879456198224252653789218064099389170010828430672966343367339947267779028072726689374723552457503638235444652622545613279227437405639809343972102506278572237081181263970387287027503117284358567220865914545466079103500639927266253509519382051117277537687068726566855908709566286431884260169366740424868347965360197174133439457015732878451112455035615617621286549737650147448861852823806114982007242614420910783973677838708709113730527807407545380650938677758124246350212237259003475042621691048281906623277281970759317200272267436445651353823115774949207253412686396590405436068633859952146239155360806120346077215864272261935638681704762177211943874616406222441566025754192474067993172901077549017045400686047844655747575818114279202125036178263703822616009567675472655795429253041145191539652000495684609338744592708582661521199873492292291363978410613023138278986118653532466669187134238815211207211320629971071038183357482743759359531228362798636845782844078137141290283790332987898398663671791717933206994998495117381588638770402261681879975178572309863282668960232922794640532364930772123818667538008408703326031005231005559332395820361072009295875099219614186008695145831709873657488807744102600362369437952790762432607102333299043845719222422098081473264720193921425939573365729781032502483179213616299269759969460370226229355839314480574461509500521565905541343868164047858705578024671727661054858958694722398377734657811532323687547661443383463120845125274495674086176578006541153577148456288110201965897725174774374369011629112145523808719993549966473034111560481496999000635736822608142865317513448230252354150294503591562974243287938355132267502490928658166323768017126270057237795175820008333669110695395503119708151798474466097961845197592989027509991295600927922812951292574755318849333595467123266401734366503414426919864573259625379083148030354304333252485625038174329426081011283931315355206887370540291671317244500780897797019611928789803976882577949756137413492922924383652448620865811339402464200608947752464300108581074122722790471557965479474864578816110921303101641198144246237874466076719061527732479339082594589763244847088204546035284553831468630902644732312298469274205920302853643843229440526480934306668393780262898113057198044397592300417225704311985236546155945009807869504710721875102137038891219608711483625983048414671152480079283340524949005409988700087484717783622678040132913171856826865305257800406865897838495848404677013027495707449180234542898284639203155352794117592812705872059598605459630207936119195038306526994116665140535731702850231848889849844476063381794419360380246540982724230964729916924767900002181274560984456361958868306735507881422206469240777585559917134285170339396046379309577930587387229099819885358457619283456565681947741813582786687981008266669485055166302252487793541158814815354924219309283892158699854821240353765861541111851302951354940004240881132701008027003809540343249458976161696194915836254967000921286958689459961008595412419448726044401045441810460606377621425540068000964512185308558414537052467976193354672575540933836548746943754104617715916417631796243980910883727907400257985855463471237861563067139560421933740945853292339923383482990998702507927031915831044050755452614824138689031114809076369529708115781560481620979277449025257195302253766464078417748534857223877540521442549208293285716885283546668045315238407574267250259797775724157204965705573062832904340862709196851868728030519147250049152763420340841623568964458485116676689430316048085361034799600731554433608676733894463061778397312045712984758337525651836153194911984459013809054460780723806325005144683008752736423231744277015539939686009803315396513273157304306563777074943315484790528702296999490534608299823973525958664813222500018927099137146364817124807335440346812294931222224577418544964597822104895476480370192838753956321386622800045360222029115582806989670138884620208771728639520039496112467069707388426668266447423298437886835302144431183148304722020547348486463106904671315668347017665838646536842618004628981884244433761242662629988011061513271965724249026419048140397920374700341088123368040066211865284433798736307539815676469802712847396790908855073763269519816634254507091640511396351155099933718061795230361348417763384182498023362375048599743852671984835540302433725348798016546523121246091622301578191092312033007791729955042812641801264440439594766712629975846564168847209917061379815505106981678344523192532135013335368239466451416463245098504402849034329976118693854128377397282189257961182483717704454413503750853835131291111206461481898916908803322176475876948180442035065280551344741660563713526468326981923471200313829041524807095337254457599993353693412722970651120423923222534092750318966794509837972765226211914481373022985243831410335945568774483399511707790523275920300316032795306528300424240598109048106898679867258841628164983726350878473044202104376751040264071256558190265377200368143760827232246397118535773564959984064820398218123446309666303728973066433843935233509859374167940528384839698944884120720449613495280796510947887888610808195481898824424008153743343304488885573143316834756836792031473126850681324483872311531110699343630070738548073355870967259142487779593381499665832457808551766312373944123106707388897772049208532292463137092238488770391711287533889029524745286498046956142794909510651359525332526228735759629375401992587956033463352598408431380020654606732276256562182121698830034108773071856556772281015095657942995831850003812716001717781488475142719768028600877951975662732508222529081719582861202090914555693162714266423341096645407643336571050931744408852725627211325122832083175532743628072425019048564928221996524966422444578887134238284157797908255460169640814313680812492550955676672280634204604840012300182457756113105863558825597134403825530802338934106052506865433940124018978438335840483806543639112854409000063188014121741137722727725255245416995316090015270500904294172588708735390503275048655238672782517127156705532512657520330838390145912582663404317301989979286722873583678588030982612553338074010236223823704422272814828376443509416460637403935223433186519554312673164281640519013209564274833926788376086322741060058811698953713559097709002997375703676046347316938993604704889373826602233647973993476004633145806767888324488612169617218230480136541512193223700516431154793671232495786354102715676995818463330438003924451342014362955644754399582614087617390080169878676660708439391412643597437423999084928015254468679909016499168654328497853444415615293213826696925394103409783764016874972069857325436351650282820290281644302161090786365941357751260633027502136204071897694362432838274912328793755819538055379688454469364671457710298710669186021637649052894733787477268510372501304147360124341928095380633016102599502161838422221739338163521670386292885342987963104606166360008036601469940218727898436720200196129538426995064122799355825775972966034678540700977966101502097518752316853532353134659681046480029863048929284040263587914642670408576410755339809737635514437210425724226785563120689108487798816572976272204878985115223943323537542764581404568039218869388195791944283278889435438098895878984682569951696677373309849543513589745592706936953323281239448199699186727684186840427262860853107443647540536704337744412455402849648815609396033601459663296506045093555080389473662321799804407839782329868688286273729511025801009476425293064744516568703405492542313477230638770681026356861317205648844067829417288831536552933335505287840683256551219066036112999533728699716748953525869456724430498685331473384845886267690044202760881936847618850888311241773373954742904880662500384015967845923269581471710063039888094011004655024198540900285811217866350562737600893626752817397277320112345985452676894579054482626258234564976905518490616035326426305807744013711943517529422055992728348219780788878165242709776788526081426293880569232428545216832923093911678656602471508826161212014452686692485341281634715202765358665389153617647422161523178569940214447206840639397414227505320390244135776902149321660796952663069418727477731608709392620082785450125508252647854605534968023850319718100066271960314163013641978606411639643131478987073624338003578044153818905723889032895864084412547889649555971545232066022501022389791294525265544471433715871389351914702145814906770368309064068705135503354145469484070033436389972141740177179473810624566478354792484347139737606211868713894843497442540858049929042331729334514329572293206518678756086101057188018338851937013030996383263866306068498205790631516270110563811525355341164886057380451108937920009273999940882175999579898316809787193878353993438929639588885371133533056248828654945543728364181111745977968593465883676597929116144843847505268817506633837638582053141959419562575721205922894649164315340734300297228894915779807909582219216875299271560240989000335586481114501784527388292715270820659939973982830804810009724871574455667974726971724162263477035828077133212369952822774800352684460298222558838319441976618587959119034585381449559968058094458060523872014131356121089817209312295506465661484166104082083591834688573130973972976423168699481121592253743089459722573878761013236427161259793435552982745555211873676600732090791330783602678234971237789223641632504709925306844063740268681317774811470736711094295713402802399870777289197276340915834003034965821596905261125975262392375134407476030021360417257784736502645098408420912971406471464872386362281659831244519668753253322295535057374431991221385344322065172571258018983862886767149159689977349374518822582336805429567919569995862506460471144004479410935361361218588779900744207964413810533484761398150717264232517027988072172028506907203731082216248513320267164450060832458226012910771927491782784296326333511332230146638223127680151140506381263362115836624528669024584890811818092054852056862907735443446148486482961680879983529836826115641930002022416740852054266806196799332660833509822541104308637500064224602939324402123567427052365652932066797211818401120274208984302796165939203307113077106219307150013084974578990927922033693131584779870437254781395895060392603170575650998059150410519711632198872149151287396888807147779319484076144662941511745141733206185195658317634915402770924505830370213244498362123702933234309412838489882263041145148616367332420544207000807375117533772556705138612882708460122076206109124162234951423083876001683201923893278741674540147036151414651331566034415348861891808481853174018812176692528572104544925430293332910107633793958872627848483035231340647921505238963507083266686783569186483864603110538823805245040330055707258665247007456847541325705887034187037494290581055568289861926217102210023094208584619634674827536544344537804830900044421374055554058574861659130031380452618211466456267070420429838580364800070043955125258156289952291837725843478553718495581887588139990493603308789222528209566075538144619367045774522394379385115455030936449091083861609001735397582583732967471358532130055223055622211783880413890534309109627559794592869485548939470314155034984610125548577268825259334299064723320356724172615523846936447818485599426258546650460286514622077803731058101680294509989529143550311894780635484934904094652925623766705053937481537475409068033412177631402777089318370641571621435768783124087639492664919417243411905312071486300809845842443909507596890388282064656749007608485547765971552372700135025976713309767932161509326341233983253308852699806074394658491021149142483946772030874205156609908630138242400489294882844125896218721868823072383810058363613471059105325953727575075671591830232842597391816153115614389412103388527661321322717662496616767636389343785283292021654829865331737810812528956699845414241485485537801434688376268891370931509856614001386302784946137837111745551984065215719592319031013720466607752922312730836756206557075704053824139466288174944645337938926029926758875303205448088832519754242744168670193906577186032483632937960157066645926251931507383408450216112093784430329637360921535377491495265112338377955183126523212493682088183321038068968032359829895640801018250668182057100919025353300217395527966054183991916447726868136047851315735463471566275370027999470606119157789521142731565453899282814331331489243296243086594885694591957027091905930099996411187833689580396766069324113256936910279331252450998637490862859044793559826563173994056741012090458418265730211376031701426080315544661666600989110462660419728558643783787042791777022320175184826810779999553093061771534637106764238493529635377058195619141071791980853752100467053916747301475462332959983822993498837770599920171758685462641252170660409353572438048090843733145168080037985737262394875435201410733257671927769561935889335125888611465627432208018661447297022019688769857072828914681748324595295081480505398927623223304764184638346779457841046988301603630960253467774439711649332949957047396347081942549194882670118428950855785344057223204150079425648184086754757261349383045005098770892505429369256570677370427381149242306943461229024757110036680405583379136721364239567042625046537870770449636753996179609534234924451783368142958999537658562259195434648847668420940033040894313809317400447633753521193253885002057565357890570511262069629094350350236288136251977884366862237336973699427276523697244309536769880184405666932244872570709092847631494443297945240546131233748893281255524843426709482808874173678702853901826076870879737312349717487088249411635755482004916754039990233975223568226161703354671385364860806287967585124400890264019494214156446294046920138158779945191817922760759917977985828653364912685664627447653730567256053421619403635162034596794191865158683387495545551600828518059137230814342363208843511416868650633413044210027306102534052461412286090388615955117549093337992723196392150395241272735372385811288633234100321595811228406963081851620687886301175104599527658744344179459407363296922412866108769454913727939399754912935865283990484175113320291393112504443388327420422709164418119123583554752581500754403668626002092042016802806847376595332846597018758740558033894014120908274328882213663080742141323829404851052985513205768537714907668789489207707010193864611247292111010914688499695272314028217749735643432707623191458501485143875502054543603829838087843189233881866935016168386668213183849735643266397580542913080282978494165856506657203311602449111655745289970403991519296588021459729316731092593199418527622330723272808021782250715814439990650449298075206505694157415701636854684452435461609471845491759635646679117138637102000204368412053215997966210598720279263649869613055387868559777667759575973037348071832627931155672692973463610463292285126840179882597508139930111189533824059265993291721069349532124663734499917823853375346783845469864846364782015814694159901601348143205598295566026387436493287035434820350153955578372927018786080689590800763787123743968018663277841575762518908533444684937060323844890961990791760690851058318863105947390940281927051570941714477664765121791379463683420820085157749562909030033861660024520005399760231000383816555263898087710031174600271640616735508415499555398640846428863159431495695227461483287790282414048061615053110282297330756705065220957343920999091536697781290064805434768319411666931665007064227348420738577599433477163468086715683122118144004049109353069235305886033676563100110001435500124387356427931451888575778107549985410930698831606266978677769807640219868400144784176143044190951173440542569044428731931707603042999101849034023487675965200196728221568155784051853676441016757313041881246062416759857714949356668525029906958590308187585614510829593086458295984371300461553261640973455162054595234282113475089060876791447653170056589880795637134239125412241550250963164215948891899061100844285862753063967151666853913368546016822823699382339126718873109784668249787288416388712566133378127872941939180281372806144974816453687762470872132042860788353432995485008760665435065030781196106066429240342907535049542008962538615209050208100677855358851806682186702602122561835559325543364238406557456461611126423389502916739186968306175498195881265390246170941530144320895997647093396714839278712868204536548804360177368227364096283870223626907400050702557406309210517341610646417995948959886361435835288362806039422533824437177638071907948861336971218559521937637966758616895841599716697336791675613088464905598755098547090746377682838265119321275232140356369441520757558327718104827502018406169521267255021357514510363002093675714844381205766191884153204047374602049581467048727202517263901621994718279223111760735550219386720453135024851101871732284007209357372987618310715248830096448888291409502099299972181326642338816269458001249695389027578180818946090588346106093713255495846850607824832267161377998241462954631415928553906654928694486113810540489905345325200113383002370847182631339888392476836711580876903944566907501041418699880137684115172548290254658068342559471975300027076640460821679527382231560463835906885544918155490172585039695113614014378660853912978330967110566189420953170856569158581206014671893956591846138212017380349512987466129358418376482553855544422021698190978939022403877304124249763256372213312880772093573047122670269671095634784815460116972275692369455921250370785826492453387752891635714144758608186854744333433371083865985552869804554707558784381209130167635906528317159707308492316882881335930484923609670280303098960719582460977263093367942468316506865490133887749125049472943463427512634417561529849024354850268674642871009156867465453032861544278998469397333666648607993149750040898604967072414897774742795528003246454099943591865120494559420348466577535818618712777869416301400608732454295217249084971299139821418610433712799728885859443745147055633597154752220800897883041412667431085448322271900305747106960804175022353585443308554285606642664090235943997566552347872688215630795625949340062581846346916469749526402710071262466775605231259548266560814343293492897423725968282162093376727532466118823391880733884097537348184049647856345006540913833190004754647662655105672198686885259939588863391450970876654238313306177402804617532088369196774744042798920769359457397038598337882134747789966779965823155974605686307966425973663771592608102797527629216253590221045007321899301441116440420873971286988896829148736757942104635148194011130534849401067495448058290673070958371157518017272885855341076198341783160840090909902144678070326161627991787807280646842375084656821622507066041114360073741056194668208764475167665540326847685017669928211209913239910543032809080124235095448288055751516911603868638041834573314767834686060972643799275419762408424720249692488211781440690152868853702633650823432459816991025388333593852291877966173189773354862254468871996517507623227490081786908457810149709805573301433083197394528781958477578008353814234877345508605087218165742857313628827034149394960347302786809628406087958270286774642561031660444723363759414856923552424554283765494613137258303276587796904899971302792229173351355735448870026447820904330000856740969319571920992602768030593202943641378857486707395934949582878487034335773636394044068250164847653808386802509331769125176427019150705605971967300818123187847014836112044794077470753154957705095912123727991048338560089411022654474342134073990085419103800146207618978087077963400409672625364131023838582549221792007792508487498150078397109978045351352359575348483014876542848310656391800168410932061363729128093875129269686680133575727002930645684559574393361698785597253030571961486702659808039712042469943080701328179252842785375221603322790625005952410219493502351382255973485968045626192919146588766694612904698074071642212167613279878266873824438806799678450278484324452374563390428578022562466347524067036711779197410534235560101929108265766351027526440817507744317365612900392106025437854890530180706065755294944746671002805906375256770639465859540069588267472013412260035452659676128578430980959446608309573619299630008041706236161685939239538328437561007234666373898898809483238509810366162476686709020115497834473640063953843351144083083721942588677803849286502677386706696705203482147556351849133711316896398934970637776371428323920124269864887556956745207134993693543034998289145160465855664372772702244189228535860327450892710242121390156838857968055841911839236033258402420996362161037798649230310404548515351551980600467163824107678665897963385039363723112828054548774529134104623859274733116019862475414545113476125669267052485093432447374793757000983330541197346502912589302388902493190669636144327550156319846623988931856648702585477887161587949002023333961140130046300379772556536418043010672379386396794656014441601923619129309493119718167407955153869880110213366681049122724129988929884061366648593319723190896854135017083031455528274403500348741546617222559434363372330963546119598069231186896734123490780354578247710938194005572794600582561813989100046972455255317664521213565186940585373889171962986130313477024385099317514961582038528986746833962165184578699185155818222311372190746432515529957662182514713648640862271984285529488602656635059037785834358813447912409770916970105242994928773651045173276603162973363499379453304433124581635895540712833622319551104859843866592333972295153169660309279613864341446368526574947154219566873238637411834142216875169250408940259310610435065867414690083919908322422015959474846687002794720395735403445863377610119870256331474645260622984204376502444682278118601023051168461164856557585094636135841208950207345964126657269455351021941658491255022323262449588091227480241857226741024011118238061009615427321558685469840927022396926263217725873094326332232363647785849109106333038295930035308438108085352232792068914021439322703844725059292538048719294070245774531582946741867539432602332218745800446701979202393465685629323888192027601689114085446214601383036375086181129967914820644971702679842808750695280015650069096877562976156738276350792061950809990372255375949600157035099265743162898477781284594468126204835405537925933024105145344916141484959370948567978429426948129209161820518263925568777853115198708550616003302734516682435051751787277024810781627376134185890949239935428984469575643085818836828421851848286846893450230310371743955232856545053156282998652560856913950436612941101492346084472815980953632875363696775920400203266189738099619223138135869602497176257362922699434005658961923797149981295270636766043061048034606727080630102168401211968066950614637949928986556892698777366971320980297552463877061533877629176653412884913809349522296265284612706853052043340155331369949561785985566044592924464028457597112819471541067299105752741947821810480204401873902154986037540192357404426720367748260153347577558328173977431421674126889762442617706516927900517261939520368321618686640200035221120530311512176134651486747994941819674004022150899679717417066906650797727095274131065718382395514160116649850083997605330747400548170170768412124091647132808917624985747146406574589512996299641399132755656733050272030629829364572732407948582641525949639797226637851887202683265398927278098703482228457427085321672386731000761792688768896630990849340388813970699351716634765645597650570910169018656848425157567158972987802706093318652897006009861737465666006019445030674494308476981856139872774281665058498532819533617064835223008990250929940789936979003989805736857610294285276714105084113707289424415730366005736209876294831535161065613589315245660209779966837725820974225915352528237164219748549191788595670610542270313230081078466274532280596561428215508175797687629340598795053265641315466547140160166389224372050057347047083765737704652865885762903406875446805659579991150203567675916106220896676937048481753394492585977673087337085607429146900494382153782048351922416998567133419898555995295500253014942963800629661892092902643036219137202805973692129545882265007450605674873843916453635200761838466327436372438751513908332278737075314340826207541943125364389655945167413857992237885829488796203082414765745298900728435768295799345567510308094392731914966230462936792454437572360445963631360449383358577661107143027604584132663423739801372672239326251452596517245463979040773252511408004048750301135571950155045059194772252147265056256752434439844489195352468138659018279512980042818939664988833516967890242184210468636621002408491900527856937241589144568274784206246344707211235586582854230136775133881028272532477744244755179730319854583320600501339129041203327261576438703786412016748090978481750459012680767520490805393999122736935267891747815463839429717215852813789361314508752807856207806325302367393364760521919499315637955494021760800364200901581632073849770388533735163388965244159997032014598018513133012012590369592586345550391021641126543827124823680408562007208385699531493126225786147133204158016374853491194201345293090085262122309484304137017095771558439799244948572960521241954095945175410930937985568655884558393578237858704492325276843278691307536135736008380708403153687335180521678010538474651463098866162825905823800418146470532269251929341084615030088414335441984625569717565575194268418505902997549193443454976981288592870736748319430402715132424296000801167769092447182463051374097926837807884749069015753065043468014276966061035138880825544652104126844500431100134297848983400553248741700704008085676917625876661331424428101411219072475735197175090496055042278801269862807456586921793963414755490261877007100818378071417516551280062848489332530744649030042111362029737623199863868097412678620914389482798944468643784922270322866579668273278698527916466776924137439020772315977091682885779061074833030918116230536040678682893196462109583016077310137507574030751441941630427401715089838310726266044227295695105908137169654113162203194787444565707508070789978521281980716142388088492417646169975224320365120302182206445479657175544735711278534734154857490801089506128907792428921903103975030102151236678140196501704198304192533650645685186326078225294052825851173544279294903316332588118945351357922526101883948872494751829548049767604412307126791899648513397779313996543498052757815669147297657689353356932897845693133139551086834871173699082378766525328437030569457113534783017123204882725851655124607361290114284361891698360788801593191675046534566430101928730561523766219002397580794168955180286953193535046001292246606403235021767213514296340188002395628709937212316388460403354216272557343297739391843867545906926976215169329389028966790611152735148401281179991261079518885161972088804232388280735853350645577774896713727322918194649251031495574237461627559345310307950761994538903694162302507486153344389659263915636291811160906694716268149612573263402681575602264904515652845687428221563559276723964668993455994556197051967737418393726377670807546322375862882412692598339595611883568425366191528757029055320734399376177868486802106066718130156643766859931978303350937040808999989704169601193180173037962337391372790458954322005219831460090628920242543159815693899063760754746404232326302651726070904761518584586533425510566684422529381628644572834487419570461793910194720641131686859529959458486029387196765566415402177515807439105212149358411402238784738554115241784398013224564264667210955746821764623094014636324485830027463359027176183492880418066270435448476527899445033099425657660277786998789381028322649806098707607562737159448533756861044659251002961183758985894767032387613596932785150976330069246496740062399241651662595849951425049588262974346157077458731206439532203853978796958395187930898769833114771547844907785472201712613343744804609028875294259435659486802708767011488383394954388711102828849270232638363347804331070763631345295486501798183503422420022726519759391927559489042085432648489821390301122258759761950021485414437931958057814739949188227816201918173355525778744073293875466457172247261713059228825398825754513276450501927775057483890578574263413171278555444436191547491898547913662288940367746578162251447591672986261523974345801170087824479936235302167423456530864301860226117138184561286307380806871723323740452274402265816739990336468634885872252345483301077969273604614886523540640161658210370732325095539053369821858736511763360864839727989933955578266514764139673913587823157007513297159602443898156062865716379585391578430858894413127713034059216396174286290986661894704657561154566824127209662329429182101163640068392222742905258513843307423234954518354187817529603636153901910494587611421742457063182856438105324062614131201196671435555421496694443032890166537236745311084067305132091189539891035959048608506716783916371243890988976328634812813389099047274315404639597515384966705510842349149085801082849997079248942777330707377530679160337440744759675725476362536930634939514563841734454133555749302847479927249960394665594093587298032685935986820903652340822281683016229782893193605196081044231777900941363723526323254937479463632589819049268328974164211043745775291665838216981328955104454086553958726162712379447148628920336120275364479887064942371211186995459497045750960019200801057183254066544000718120567807619523332813980221018896010326635021408553001164906863417206115340963675381141100217295499799246765320073238084137891425467975615433285962090697881448198161904471965510936317992144154216816550692466200085548263218725035354832755930314363547530308735295014194133997603298034524652447678231432620756859322955746588654950930373464564758960281956568789912220882561027065799349568553584320869497864068834034396837950244999623827102159057310983139197572647695611465798379026897814450324019968397038121946676965010424514752128207555155050401685085380040233860425871910869504027739623589482407048406987670319712834757284903812872844997381602601759276200957132207597492107673471464792203854975614479612042107432217435836770681619364223703193527801738724594838605382440290035665821808106597098780768363301664238432478218006063772660412983337281160586086555310882167628652124714782656018706343223067239083672734575594465395449262120871450144595552746062010241202832775766018425057082946889790287134051335687838765869197505955418719192980819053181958320421028399246838856219829797122636481628891023211045669180677848577767308256233551991065574399301846780500517806306704269758391091715376682002858263261406039184320595153355806179752930674791647385358684320353556839207229539159518469046555430051324623777365551570730729788613969727918403531839054086609909010529707269320874560433858671092082702438425866318066603811492489026380508763514605305546549875602726585250913420477413431598637631703653461603556007702745845882890598964966134507913199218123542230883660816264393007604020278545545473382559841626504439380779465423938522485444555182910712747103562517565409289844838881993597488238980518380303415542956380369959434380861005221146837355238691575731099125026409883320164939613131914207343404334370418522081463309571743312078520609497266307318010091242517211091606640220060518067756473240643618595213731158443852531046909612419006520821722457802932583104806756989090901077428997147640597072179252495662460739764466476930597306988920113029749400076676283691180245377399260430124777643501343965998021222895936793422055579543675127849911955770851790888038291705444702211549491784386059867212195253524863497511093065279681288083996779579941071953689260279848986394390459080037168253170455270807497703518976458936987599824045154349999677586165402737498582199159596524678128541240691697011651076179492039920446779667273925487837772714594310320505037740679115742751303264104776009717388549090828193849850063009482810600597218070466633332646989856043193902023666702696551904422769396212542980534651327254429067328226219010938564413028471026221640651487479943633859717257048985751220612036871407506453575701198089635195844053935169009892701555461817714818232773883656717089055091068683247664925077715636591378447508355602090092839626028437689625694622065184914298898730107797925034769072086478959934217291460601333597338489729362399001417544194674454250162594346034176168805749484695513286532409330336369484793891837880007365130254980568713847799604349740345173220460810657220301593718133373409447636767709067988471564741090532276384205923398743816847333010293324165893718608896425172081026461738247144059530188834124134932726706417903410681413043993551504718832634189668387131451940040110644143436781650941217855211023084881615623370561588607992970385831897573302090772302432980390844301964387766483950000917592677963194951308704365109931747232327880970412017523749708641297766356423109240493792517496522578702675113569958788951470680209000742788348774558342438977040959991822867728423228719897101693377929678421433500281434119923842543450786355765939733758513642118574823744325684595331602988837089883931483768005466297936452560080858646564047469138085319929080311862786825613754023284844173587474342459622757301933451100289709261302683388597482177747610673247205078655468781575424983016105239373153465506864807692704306354617766860499018010213918475275369634605113808174928339113598840402358560985151263668297342903989717225215142802532738149733789910723471233835778934018607861841648364107745303775487766510074367393215915952892625757872122439299176156671343029132657845032607741420984042071808338082119728153195936223148883047190454769061128420774093493940286477985516074923355814253748718583223108726020437260894871199343910218519110753976741612260777896488482645219447830683806442759984663602097584652296156642269045278808427333746337499562650416937435915026710858044851579341601320452400457464465190026457724715674206863555790256222160658728930642696606470403649236389156180853067452343369848215619703241250153044277754182094770040351379549627208213987312636471575401059248515515172418334674894599565484718931641886476610987161014549623682606337659884852401993759366666280894372260819562467765063219667609542497853684741469631751174996525446092062294757436481602472718166066944556023441745396767089713313240207358911934441897945024583007875516374166947322322864248218854863258895110605337090775453720484434986553968847591473753905477793708655061034808524397596068668513526073898219686847805828806403277760830346877432821399709800450275923775202264310752888711574367508828206167355220102247047621351135387567790666403264068024570707848618231776313672721652115080553671554514821999252815328217007684677918221286518460555151805938109139625358399356709021288227712571219613294803495035561186693535611839977435353857439838841961500216150753139411529617023988207564876635616910879425046252278554912806273282181833916645860583867246281315288310454542410313178788882208627831468845288780932369247701241267402361086197850365905769639761647622599771891269109345485887335834393056549746076596361031449037386367797228159846778159974186640820878470110285156858454963824945289219343262568613409261174179264292611380788901028955663640697277992630628221816096259897156462921262631005047436425301859026434184612335961894638471223735289163270688305633468426440824193609914371925301007017883908003323882109519148326707499268983214730343792208536393767751342297961101159721435341209610987347150999874016381628754547713892970083437232951089790710115906049782572093397964187581318359792656153020880083029811685020813853469388321581058028463344280390235881466058296824406022751613942856966342248364981364127037576576727067074215844901350688597949023252387833658427484950022503113846569913570224029207839315979662307362877747425294947397873255675966007720255992414907897780003550545718360695497359507271664430364228128734274923699550522397768861428450800496819399508710291568244640268000462756723976069116783144590302114444276494751337750910747052279072016266296557493341954190876573404238490622210469580841222158865516302567710085966830597609429324335198962865507052402767898085765947660635624342651729859443864356682089896950701405696582471689253024031237967530732681152312399415857140788671141534432431691440409857582922932850841477233444156495712017271769507635073384244374923861254588108299923467016554028228411694809825932552079458122238763158264232111247934829096766195221685783810474163115053461228326004161160310945037396021828856228025140838155555352656972770999361732959190958245903682790144999433082198010257679539005921048417092938184078444169411849237020344614358907931876501335989182683962129496233986761796515091524271539422990018057779536798706761346151552500671856738139477146875715004810572158833047766718214841422830766801391896516413476544286354130422816129646922696085644128724923374000237838400968486088157561366651013248866888104117250429641439144842018817873676814785379240680803985392762842663142115904546228274186907389147737527803683134830400089358027224391498541562635857343324428493606468437173592191126018834322599896537610985375711280202066698948599906634598376185650611937907682744049209902401252023319324834602151665515659165881120522834336558405288837133022011781129697986938377487491089062513058250419085883891911795217467482021843605549405764742318076741197622316644774441222629771369377980908782359050235211275349758232112635576811004587934178317971958802809755888545489046199211876601173030185413556339948749048213885018172988170706641229166097497180128807768494204195792400926913968219594974820532565380995425232081343061860669133279347562096557051021819117530351104894214493016371783501919632879790268074968591693355006709774943047916720147733659100145004668953559532194302307520961438019722362185073286248669152177783856503314464761068321193201044467076741505895714880121498292244559706470764046447468798722346918314256049645971276233592532525499416150390158664693280662976419758072472966389729463979913636487242458437518855272070069412022552659648910207446775720788578113016330740019350887683916688339535329975238971609830672807863441803118745255878192653821513198495587759141192560810229160071236288251004736620122619375924341538807485797756947452827604695132042095584619934376789400585955509885611714112316843499952719144224417923030107286771952346898813628151651929782353773261176113705537804784935021868073589956916346339525375813111328471538896427142955559635697214824026988063078461348339506685234717084004529381799437581964487782262335726233044455370659567118404643994629271370346359814695514548569034655471792809751645169643630465453083480820640629837338233854999366740542570104365828370512793830217545441326357464581164022412977238216735812505320165177378191124130497276964242555424042022963168931967312374772055162157933638311967276728655280252499398769377151298170374867628546393891184927186373058011589934614137965263472420373346311158166669766628422472570032511843174922824282919127828799715148787846542670611891136512912318767888445020747429169354111639514036466006886540939411079219367815814947667754515550200304350024227357780533140070648353761080867219162333145446678761959171356657639853816386211194494587076273865326615225661357492030864495569721857315706759719812305699533695488685568591076954545703039212650735023343445189045440924640457819296823415355997202971599368814159811778564537132177975447416302228981005000583352317891905883177475437178493029269291073461120837371909515355323052008298481803140613366733872445144287348972431103956456138738534794617547519596953558214828571297275739387115225376128238028760573911816993758926284501354098553363656427984879305632962099403908074815822752123976744309604806499966707906679165879396403502407474403985315765353165641869789261465582094617478458652021785040344282398334881863365715948808045903582949852644022942412492574220631480916585751347752880978801245171887741047084216803966817007060653954194548743035050720954249469058694519958666828625023875531878734840759232511665841531583556863592753739986059170533266331216551653225761996858213994447925750593092280752325010222335118539255470151847020960695182751007448941484125945501076375515459770063612123145834845922942477594366787815392904940141251814515813846712739081452214168010800296589280487667342474149312816719817822495957574052985800177245699907794008779470257061030704600133885464704646912592639138755828356289671317724768553188741887720528949599713205176842009196108214883251942254958451541218424078571464088116334540808406931774633994966792658400813851531879453328081436472694892997554934245604457586606803146108074691250838412935316342777041246689172011762286983657859114805017819127015314153969705853788130215165565012269402070983094937464908337008622367188603849889632100541671397988786111799995296048619664654753647657690266253106102276498028382760801327732208670748043739327894146208957975991231887783790566313454855306685412025727848408264789022594084729887031951177930362689331454368908181806963742302360964851078656659967590044211112747332019007773114445017205170258967953635609966769089408243543608125909346513529598453062935115215372310843994327136449744145550933105695804648441833084315437177171002846337920432346363696021738100954214279514693317348509177698656127457904721357274551941613870798022506431968770019279645817734501503514755846076247025462550324496683218064726188125800498473654783183364467331536710891054376023856484442236102715686059151063911469928254442205913400621873302988550819949426658328585262841717934881809332413608230865547407735665854406703046057735825665517519147860307263700935670984636296057736076384848495007689228166074187283318532119851719321872603246255250574000276715276475482197824038236428458411411095666510273243773432286391046021577773367578312163101512659746894830925329652083578681004692716701096175400324176916061493725433379181428564802986139250579278371186831745372248204504704010979399259213763395570762022298366334307624100842116092231217192620575259407924934520675120509868822365467814197612450942357893269709802033314846855035462168743171262282557905763182811904359127609925967059075963590075938914096647371450485402642727204472057276268310741513973389271409533548094491769353329330034877953373910781400617082402133019431279211255562481559698089860970350494556509519572283709575083653414859528249919829881404845715626929910863964396279540861286173175747451522511303515612591846952282291098553321334896340709685597611766468957132431149876758606845898649683029683483447031686499107189542909416633820906271464870934362674598275640898335923247448862068209301897829929166042217316570064317342780493692205893307551111660331864669576467280139265776697823457459422767111298811988859975057689311898295767868893750759014487791594421852305915596645110352353174163011228709715578477374125153570549195831481593437652664608427543449968372702912778834093584400958615131050844704771048954442424331317057462673667540716347237362563291548487039480666071396844901473698430562558693980962720326806924715403571794630263636014447531703630129307080092852552244008802887043010530523792113568449030323900390639770687057412058172028997170561166201526128689790363881109511704591378360043098367058714753562372687972971623972887268772670045638875255891316698943263090664386107080512665870816830434274927874843120764531970168809349822894249005280622598447869405146782281871585964595625769980193452313644437229603716516374018949179680902652227928889787885599652171633553244133932973930839704047607498725125863277721725031373760832286502365165249450308602009944768188439692039846857017564610017943050566210908478668944267466290638854892884713686177861158594101986297744645529341762919624614648850930225555298386145861164885414195063120658417067890799169816772751046018290963648527558940309038876857505456252122071578985089455351601754444235330694839934942294022925352587397844991382170281961585853995123660580747573438217786738836377242132314215999569000939803219289440445579455720729339155550507963513410005798755736509289020635112343220076276460066894248746673252542343425708995702527510096567190514792285029128047847239832605773724649089669602759685651454118265871653736415087118500239503150293379899941287440782581925286619448076275382943173627288597402241923487146008999971258682954328101153157979315683443148252727415110638087122834646925790987825800435432511338062061672674839154849218063103871454868938432586543104101346764457910122938596223990447619466390899366461126740571619581193161720566432694791266108980265384457443840624147560488571136930826018846893935441453286592547482607409355480177948691679750640014211164772910874394772649862132421346675665477042568216543314011660058109929200820790617216324873215837820072906215601918450141208449364888726703183083396479557411504587028641479592323269461833893236267423859132743695125167612505391807425524649560912033300332839275411247810592933479803493686146422622093048168764002495204863327458124276781368566965872623354774642335905299788371880645702240989317816293766752431181517962396031070833510765151492394161865324741211775413977884827611945873100210224753539069486552029839845445283392930368232179994011650837615123327916781482585305150512620227910574859911334149654864885315362143077905338111936826459542678189537662641577816531070516219633994816839096104765937145251811778337553691030912481540584743185899749786856967242133279069000022345806065029476354616407538404778232792702630594749624457312216571211653980950564453381792918509795781042060088970056824858243258023356733224548333328977560932109620694533809802129220573519439078420539337439718649531266031603663101966881522259041425435079024880203155609973729015219488011059435941840498709368841071398745113633530487292724580475427757606439221572591912345496031006727882323231277541160021330875705364477890462902206070745482517585919429348017765384996956666013961701855188994651946628124677001584838224826358821890324873897765195807515641327115426808235578824801771522662799368574604956185480542696728682736053323676812482001381995797556994408917629734431645251650871710842409326881196550097494945789581830575301113108421256106355033645767728368042847873880639741031173867377318531835771292420115545937031308949592406056613204168666245677734973372355169215952324429281109287615031003353641946284462733974819251534199154022796782985991458217138109629845149961176610519961800898678333747999584405858924215953871764527849025981220963171194027060498148527868792818063250727485447242287268920705804158193368174070906034898858782438658037754578072341115097538527992541701298154026244886544840455245957154256789167387323210934272559945730167550019799127027938750306137327347632119583124529417538330163999782142971038911004696425634042449826717134014509012804905890726820306514640502314370584217190777390376473735171414702896354456912854484914221058367573939351585444049550082000923911647850388279143018322094300007167567563183882371181965201429407538913139161158939648265556096902582391728094047345571392138932714453336418040386009955845137747949148274691915256523593937902588858106074327907582400768387042676979155679375602738658386969802277193625988285749742967119865813381694951019787458152494883563418313651737461077001008671826207913188020216209318985674741825831097886818012196151004061485460155778617161887732562190192215730374187635849917765618410431078660751120387151227852215807182603764494262796093377602178086932940979785359144954130482894260948097214496783584320635801062301210879603998388067044761794045665723204453308356651907024069062730648126890668732881785022297695839165933811536162191279131128932068929650324154144277298720498597571901518409729600906545749143666044140577697360631957886998493610648573352434532281365180247187221187530295390361888138793716990550626406067477130385262030514765871832659809374870255861670363492757726565859978915676898253672665691103835336389764255511979360601269907151205196227226536352689647445551703383325624707200995043375443087862105082308800061787723455596174506082043883283689409665776013874786584969029542657986711556939258369196436305309169007590718802104527134965003793516421881522956202125726032095347625714510876234120844811640843328148495384731493221545537112805562697218637058396613546676071160265667467515897477007761232863492615894914681187665314409380121818411777621042947179383136522791726904983377921204486165332003987437831210476897086852750074398164360915435135853583473882924479801475618968194670028614338171109084199954590563746394587169390623686393543231240029587695630207585482435658331862879039135737777678184431860953856173858367468519540962902987563004022091580373398847363686727225150071100109550182329177741398965133999466738699137620798131866541135292958611334530134595211005049201975669033084506316040729995861374373559802315856792779102179875645450934613599826780503052450256959493587214030671192600164988253198089662103315146525593606078889200979215979408117080184669270853480160694966372832404565493598034277348545278070570418795085641750141576019744055613363753714819677043819315836931393542715874654264461878509842703869596530938027641852600686600922289512439980290540806827871383409252688553364951865524455267071105137097574865574250428982763120791668180606827862319434628448877030366219057662145787291213754820003400053399451650786442154809416456372264945347979581718813734933319175364101053229438115173478895606873054881012102947595682122615418492838461656679116147800099729619331890708894397540037368753336222120860187933895898276696235279057736541302710384580899697212564703506520538167606652921471475266520367834374833684633746812721627195249095790312630025293796349604676616173081149748092634841598762779923910782756944777357915721906538749431418797056984352874976639483332423278495409378473295924752068774424830103430768884837837656408512587673832249473232370634983918522658208651850511634236506884451024622369756204385109872922070958789872127719574998597866193037969893706438503983615433462203412049544169762057055119941248124160864664291580832524693427188339685821049018693421423698920742065855799357517179460856991150194840429760052800479625349376258382309502957506484995915084180822639423397926424170513808400491668838771910853869164097248483149319994728414931799353388376096181396345167528514015208806888658587116113285492186437722621017526867179213403144784006762589430202362479523250323964775168335658502487045184687287318125110300571970388183136892505654418621315624069836362645922825606375376596780512166996302147947692457773841948378906350744921486497764201601550888108131129532256580770543275975743418895067659112935310335688127515344632880866670983971983520385512159461839304368114434348349392775842466611865006931994739668508895958072475453541105853733485578318955550987137048734107224861879293572827719584965210247314523866479797398576090833499699813967143660100075218099126650208149057854631928379808313089404924189610164157784923977027522317959650725752252530144371561578441371451722525356464641347841983358239493929637090972174735311823685867247302739235188035053859292734009847905820459719873058286843998034607679950271506430432894152490801130993402085959797794269739250543682994647042176174224116690858217480776308028884199466476698202621546473760584920184837062499871750592161523270623349784115931522099006137610005074554990395476222238570089731987476208899684616701597548116414631252515948648195362635222334852885672109807141106795665653590736346324616714360037624700113271376184541434016149584606940544621651473091665378470197871430854500069930290888536281053976274139181936784545587193883199667080965711027773480173141094742510440479001672475147956459858872240332253835870330002891119004338291947909852307272681774159540663765807946083617053068677720048534612339290794924082150991591114106857492953321273404631481371443366538231879116501659968529111240433883971645229488005146877493639607109591286140671532351156914279284046199458179740435793299427914651167325654465594364876101074676497611847098138506008200306060292015576975415862190556710883646675605189293368973974607935111019709156680287883321660538554344180593944748095307685761832718017617046009315451189140512750359127490384823074978514047058148260271891146122210214311600825232161821947349131983235916334162097034159563697243823518202605620166803702881285597070667400775198090044602152014881159752125939093901459362465599169322950711031202439319915329527636277486620354814514271968560641599723367926415340547973032630332504314149681341005925814316095360167991849265042167243559871112859638690209637936311570219611567239258033707400620737367970973049924370834366871362838618521345420255333954126394517527021614051315414013572508869313766548497293069506401764135926400310780361935041823570865569983891647144110743850847753198981196897145883178506025872873458304547127060853881483422393206024731252108238402058698289745070319009867175202936609841957896112594249754630789539376018423951489428717824761757957280875394704152738591398743867039118656174102758289402941927074249995508393313515050876442637359935603219907605254660033098724615788584561729944157439036704426183951215669007111652917680006491485477326592487074068547806655985158734746250933322701963814437299932035211759264048438442707478397312101252355243937219313880081584216626650003756830256866664833728066700271050460161619457573883412097699814119788169261628063156026514913153114442240924693222535959711187901977265107197163628513839240890665833872178331320484769660107451543492071892504719538675733109122168271176602756783490824630701271860028651962057540322998827756574209014390021150201131914322105169980697275314867136250208927450637921747120282585580106849854496707681305278911449958418581130508689248875551903475944329599407831272755111620515755548692776682334538488287314858910005114899220954713794673420292147602336922630638282103300480481990646483050053028472606679849346171338378605449838750255111141875940049649416152760000012923313926918256232067045221455464262905603064390561398497106860331016311564137896697532150106048546239397422880053812447953585822696779760843411270245543374261040665476776886502849446361881315320030193282416039868804442240459772353272727623977233362817012655363970095993451008230102548883510569499706339829050838575472740049776293373875510196524605590770677720074380253765859007362215174151261126363647251245765582851882880728776862372475969960297444194978024675786425567122827489431504608098742456816689586496233492549035482190008538989262620057329555050282132751958280629493535100813548397597803447110309753734579834925097869250224229728543334845097107215664647458069350733489550619225717861268660426444738528633564160934978610507879162720396267079382613888049265311111641034997133828064901735159213522796978029306925297152185891426303558166695699730280679288914871736986316972663965758250569125369708326381694212960278402821831700480530984309588883860909647361542646095075189408478124329159429237267857132021119639911388981339068524220654458993886353001786740299873780923180677654436083510056888811768320681302147663634540511710028184433402465638101602926506920240400398291443561259943509005558771838926111778428591106815833970959262481193566723841978739424753318646399837616741726228544547184616147436715206776159562332540503746925568539134092673540509475868537530151153193312357616920006654747261921857223538322214704528755724921966665016848051111052540492359007162791529190878658917247102053677582875496904072430127349258933958703789779656379087573191656627987076333168771821301665559772295051413254010219398873967059770936708728712081040875086158272444766951624303849093003901087011488874550492774799446447821957993590840445060983352747560995296357854036260459970059558927515252967927641949798144359847965975341174587902231077043089001533625536815353885410082904556620677944461670000470022102581240153836977035593541140382777972899427655622544339412588079596983406271192151399868297223133551196560366647640806537806769542475489462918894446748630668430653696857562174710531061155613631812906754854974592200856128020675012653035558828827438640318006093212736454901247710405610194844136337830206865195438679125911501002450457998701507911141232235389538140828260335447291061887603230309658420778320748972031769719808339331864062648823791677617366581259826585959119415462897698209719130233875127715184892161449561429323825521776241296199587287379266205502593787560492271757189887860193750260748377309113898444109815529702741551936771765515183784404828186757993245835209255050161409852995749521580730145415277231003127649475868003230122683882990834143960193740006728475878147248511394355564727773126038250497879181829938708186730288040763070732707585360934383047705099463312394119475118716893643251863574953706914732414442799416633559471904914230824576501334342091059378105278356542955195260648722112922142280651766095531739586307133183600580656327328367532964594443557538713922536955645843217334888587684525582368252075026933233975798366537744751504285020527461509212216429332065365865989255550283185465781709675740651834649424433003610315379792456454438444176220865720902635380382885555844355943200434931702116196469493377564670750864655776423148212834289489616188685161393879729368106062538397255999612157509046061435273601483074268738760305642935661846924966775844155458838377600400710859994519196862847629676599600595506150851278655769510975980971927975800387642026376863599720647602168987617025592763807330803136032840267568880286375005397541251419381124018039395429743320242220645730158361860954341928907384132864001224210808066480802373739339394016429073429053338594543406167420937301244071831179678792670732480485350764663664452735001661627556376342263694207334650385715151206975467435922084623148763658816705319437820262764174643708796171450556380185069904328947857422997630667376588055641815664457733559989085562637414165094332006761528411187082223110128222864317152375328375160047611486930521808948044762039903376929526888735506408437635830525458187759307161362426036734697370672574844546432256777713878448509319144299952373064165352325592385671923763172785998861991369447067899447974877130284803634195251282018484024605757587572617162122249372554876833289806871229027258406145270077958877680021709979227440945165816012693320284327346981583221211738163521725967462364081076197496132829708194573585671894976455690035198986121501667628071835323815327389963144118029102125541466302907205658769377960272833714765188999794108065835223603425853439333088477599604915972505222618678174557974622159573488307690994463278202955182827038349768885890211305293612770822713084221163427221832625562008958728175178716429296047640374139263106576546385425661537991302038196580906916266604663212872531529226596686156930798830911248896684180609538716677374942942887092865984184601030633682277614200739732547910678552129948777947676235828551517040177626785846316667969011070415289573560945207618679982176042337069885620756727715887798762210447119933325840566447464097708823906826076325365147749879217124100126155601208561073292916095599708151922288728760917842599734765348401878223123361504612807911762453810282729949062757106741840747064873080933178614138283666225777874077268121114728039367780893341366065630207350787646627345993832047080429813794013299501929375304862465993563867960030137422221206589096377419425019956628843670393323149432029162101621360600149452421744255532416474009949796170711214664190367011110330942796293940915271125827758688290199096525985084859709806793644758697494692995861339891598441728975950671589142181767847360390958000314302633491500091159237486853077983761329357930597013308605902641467955850745445294659592403096861326294323222523079465705208896739682992411973655957277522434106224904335221574851109216392679817800129414224233754313558750023267210892102100884258377471508483833103117560231705520886032544218170204251372977306153242280159891291877615912576552234060622123391204505067706144770422821973083894031290683769083491106453237066966405439169226098500634513897282373072653051990916444565667391517504866619108165349899731964795887999667452513021628716458803226428999789522350221367818964950218812027825784079257752349213607338699843900165122462115058385845841328000438312852256401189638326165540668840878321054834231182741174246910642130988823551898579530329890329863424977244985288500726707915383433121318283845797011688756553977560156577741930332708700200532861150854891133365942643986432712895348570690090768327326006812755789927661099509619530532128871865019747701658168965697826060018261778518814111139196969091707160547656176979228000702768791324698259161154664003508985365677893420270542830049699724004683641910118148250394057408097056615088701968640473749171176041066458540125851347594169051623652458891423795380310813580804207697011094346449261732230110157828240918405937563596826308144607670344269490164337390638014909419604224041801167218371422496719790718923257182715186300542793351073175441025993967383375621279768543176725955218101099244369712795718230018880794861098475204726543349030159439441358515503282272416408324032930066936163734865494420222724085645252924439042253023982517945299476377870669482075169228191958271441575595399340584526979557910074306848069986080774450070209441243208446502389971747354984093206089018535229894282960692977420364671752020156435966222595099619725757849138350692192412270602079995993810174571531159721136110435302560994480662057946424288763096362921755369185670526978087804405740981739141264319233317123429519462188088894193441122170063291537176380638864631767620157639501139335582129670854202045917237850949912980776951732508779025378317055209498707457001438837752134897532319697589612764634133962912386029664281649062935417921820118520114739860874071421329022255540416649582054265523084651284967095938685308015747550223292129054551245075158681457706158143726121030795106312486174944715657107034967306000854300314256028133850862790786878046632405407661691869714240364608827880895354572055030904127412592799821933391248667509951693651280513683269657033757896259666396077085821824599785841402632454918887477557322901005325988983765569316202563429384214210219385865427211494893110417308741072490013726508179747222897816910504519989283559236903566463905730882163093780148104624638816939662456990607883378218202397461193685561900255365529240965168562997118970888242320627230434674935492501697039159710418449964657676860898743225174030521023976852252232971411529681825563352012695417994170037187900522399147256938136657019544981579598059634296350016379033389052080090752481694630687111576230978958306921030888903224519393226332430300349356297522119993291945436934817047656789612211283715891146926983432128763595550135377261702678172372771183377559454018327060710809752643599421132481844833180208121650149562970227059457605264136598482074912887983733191255083814147180760338676847453102106477155467041312297503656891958200966089007694214702778436625978456794707449536401659593867221548907517464178224914021287514649100497248139598311009200480122676781455249962668887442154689652269688800702055562946666345876720380790901429309895391996654811853476380429807333837704739009821458607849680914657590756453838983817391220297170500043458128508197792412912571982724341917810802510012600885829687313289609598787468431831156899261435749725164033392369362576901254273559269198141404490766700319372051546728443300413260524555253206625136543159130578638502793141405095346605512949563726409574400293736895730406740589198327896026450474535661182143485243767856245759369674620383641147165158841801826836066644894979143402732182289442356229357527774619979984296269642860303307976085558716965679058981812576461212613820836643413706114677803311639843628387157196155873818961812190661279752125285406282115158368892738526225844146247646607258643323116007982722728072936071782478710856940689385609136872953109535434508031746427300978505700924732894351393159988916706204577568515011613792610377581883036807586188298934834273350830823026980702318610852644386149801146652381640129498031269369327024857491608726073535202974375470764587274735179562891422736805539208218520486881545700105675220802572470281821452275287697053499231308796392999782616325960823375829105396507020247746202334454027058548271655837297425553693466027972500142182001640621009543739147277088522203421225381546526056209063702269991006100165313289131784006589211175694161182213372963425199299210979107379591047275658888140791614763871961844299134782196694064670764546146519388259273063690221020208555119082964571789172120066617737541338843889722134260440465101443742319262694061029364259995350359685019612466640810121306605700554293447342669833490629196784883269022564492986446836723909039217333252779763696872349929416471954316063577828187986319888115169409495193737958152755604334454067297838836626257203234246074186704291741228040577807836151812765995482834170866827983280095370772217435690016605761066486012066982132504584443403946949925448235990340832726646371610248514935925259685210520893819462478158851365849697585041608048403724366888024006658401376376788122075566005905551985018600783765573906660833825121051674609176278317144449387778013599054240478761713412909475331232151145931202671748120491810552975008014535425378903529286643304475240068905522453041663490848474345099180858938744899946917696659698883706719742635720005032332077072480288893551924456583070246035992190809298346946427167547462298297804188048201769135476927802909097850905306814256693070941796850953374177144725749941467802060389992347846590122380949390748203754322003853864691026210927342851437095111677907291231301938854849812227779392417728547219257890858711401944205588075053391455770723422933513460609936929760178416154652165551741363999937611602811926440129380377390556177152348856629118055302519857373197582002789306872396985692070035498854517461084137678490463320853687594093754257952135162573664667834599094953831207618048455770247708759470973110098728993305912467681894888891579765576193240864763485175845151895729664961290784615002907705280342757011302277565020482994668618356389508540093223924422052084988623994480787180661381823531391197068207355875195969094169467647995745046279609245054074449153067734075032897100157871115873549485432789910208199318013931539990734870566179378026739847758769608220584942115766751464456809993782497110994573327288144408779850604866510565461504967974796835792963208461199870051178870691340104121869243547600246360930515629075371237640623732017369239100865809138491423554329594976323243565282302472734753935111693075076306646948486363368189868706209991809529035750200805515822739163350689868495668052221604678272960793445610979670397758011810130972668192553540631360284473422068891342679717694740289974715394368141802392884394598180466944740649684962208817689156337261017800084908043044845408388339748095393309819866710638217677571556236275678921232380274757590289264710300506265886277847136607558999469072444421775249223074265724782120183610301875229315196290031441285182178248381192666491299880665952476336142817731630869252837259948809948533807030589360617299147114488465915737318207640098798138393886493738948463424235994621606454375543110800726977411792990821036819625391186651574305826069937335131588967880338931873564536624209410184504375669772536014615550368446552611091192031653533917775010187906831027908533954014793522793367515103351223506580879796291372060061266674681796755672610489665805416675717661216104828905686141717810728210548092829199285513687200212648765084295314810085254466161438041483731971708898740306049965279754964952811836801931647412150945507189111317384100102213885224474160331318313437403135419202605965579817323389320932332400971419663625518349692701799623934848656869489628955152844808830617978922981665591776694090026069619098157752819654931968267184028083994395253122369304490496763974769469844121464998462658922610387662229623542000773542428261274057346289058606463267788144981954861871502840578241233031382727135267490508721585819883391504981142273036139372308941143363366197359849029955695917794187049179940841179177598632601472305938419901786026612660201184193368792620598383844293961451722727166881094010968537553461804154107077540492413665458594267138281184550915990941623321569034277081005097616416081896579845506165559506931670592447866105392124180351227092972316075162197771253742811475510453392013195977210282525745593844945655451583341320064227592935975961125865916320834839550954663165921535458683347249187541339259049644669061600250356657856215332679116125498375168073579608888042481131752926806325955675636107983715664331804158169185529413919314792686526548683411364173195853536472103607886096329226796877098332671573515401839855442522179396642594685492752076210612016685486315765973844845266343408882394964684637432459854702189591772104759704790841656564359475640613608558740353457341315844814248447338930956033861600833772476056719743690984646787919049578824222578315629031862015455473026824353791627987981764224503474620582248202650610173176152485202527401596198844634461549058626328353845651122178626488158490671198168365089451842790528996251274690241088436880261807190689421063563869385138461727979960225561451131021677103149302713653543672713534355764013271136456636295889912336748688076335204138683418383319260566434686171018672519042534549061744947625686590458757687939611069939654304950986386442845414022829356373395283447169631774005632944896481296758314883404419468471572679448854056397025604107871328073238266628332345021174871353997465850832622815584136536601565034176451938027649367652630491733232668923406713659059670865000392050655957278282864399346483376997475583789313286089622872017938430284562038365237400752350138032318993081610817244500106799504619422356626296288625669970678849154404784287424417063836066528752001904664902227763496100321664856483476073875997850569630083052179300625436903940171527368162993000941676055758868120593433245816123336022093276229343708212207879441277829164330120702808863777624974026205964604892373259336542282445932306666195884025310130012544279505086975836414407106288047240081042631442779750935005383408035867071261002247881128791084411655360636444510422915940394500150360604391082170893885075819347113672736776067938652476496649455985744672153695848308926604941204666708160083958986074660053723229740694058717233826323151880016514640911265988696833073455120936479318363135380920211611739642005953878839025886061345578283498476560593179041244257815856114464428562423296178579360436100655747325370769043764554694150802250687640209995435051702712397482967485647926748391012595890808608689374693524286047006940160732963229129648706813536164749457909183211209503096413573549046324511511483111669170280726875480804145689020927617770125131651734977982151466176269500120621135014249871507516476413422802715528035537642985161090944031521932097781719364191511509734175669581251066726528379903558986179368213323409069605154905435119496462470032548377046406062529707337271129300275785745312458832993486465386640981894900562923974988444709553352502882948714361878918571945779958096778951073361929137381975370104273812523674571943309380058597381456481546283507125437349104099639066729786722929540859197493090699076123480383043848322397823275552426764607705106052573769840746115486140985938261137180969760269309717309706062553618075991008539788723833352437170984178573098700154860816237086375977103727696666770984840595709644034817260160710189244283855423153944318344554289268591974445916493803388394919108225970296634309174621713197399153889177783535546854536498769767119034757563934817028935198842951948764146608396713864073259596042242674754575528450401844750887456383010924020175638343626591375184519602199621022501112181806800666191414150796107976284837250458934637399285394891104397247961900849003081803520259013607325489654875817354692907229568177923358597278672328227553220724343803246295515297285731007446676089704806875788374453526536332275773750563513595558977329521951969993926361924465381105513933043901398977698782168691606294471654661350450081761079219809502419724444450823900238963199907816219338430890997615954660137659722197940189375605861140598566496209361194450509331863625377301666659115729413014446347036412327192352799728133706891891389274955383725014707101968112799166992338511708361174807194409386312910550667013814204968354477858542740824810662133730490295483839100777138544584936979407560544628664933930554855455666680697797661254867955764490650660086903695948119824084318617716861007053589816669824233938396666314205604020558698594657406520253375815745221781472833584678241947495082445337560935006263267763850168071412452397878909402748224421310143795539857975796508037264625686340186054371903853529265580719978198260426662861767600055167972666109321120642847767287957559237509607094720651681345125211082726459113772416037134915899922001306494974052589844232000655877080155919119799922951278538815369558272732018114433390154238318887181808602706214840220240927374857032255928309474506336576685816960034267118347631957589618938314524855424244509682300637874990875320042952514139873603115189637856444132164923163484957314517526995510690028975169784502678290072504706763925998432715332845674932259336011954783900003760483897746989496839240453007255247972357132367959302815049904652481979375623442202628243665587304435060246839353579117504079064918415750955851958776940617955311629091890820790360516295077738349351188028303410512150811383200503187035011347294569733980586251443678316596211440382211593738399322984036246989782920391498092552450920225359348782647683269347442070253903712359601238673222417791879295863326279926327165129937097114856866266759918936220467125306273887345679720892748646701948671318724674813709158741427434236249796096817411038723793058966776532274169939379927329286106847973536106260741173279602221226943068238261946463974660517368459448354282569156398729683306531429648350989301225869068934668732696453688180596533738268208049368150984181198313006244055166016342283577654701460056266781942454921432219844262742050425886303477211443053720295786852871738888727945475619678258581526973087276527398115115276678207138702215440596527155426866269530780501761288876962148680781282916549186911828985356489178161251741871097206250397926359957427828758298324033970607206899187968841738624806016244163102260650514982269727277291503627919527374888363568676056763737926606832441447226049341642394181949069264603376902016205916184860547466208902485559328684400684919273925323923574720994444224526034738998627936962701743744297477828221782560543350988316749048979444931744682263436498500983240793965580915440444199341130305860600046589800697359440495268099411614090473949825965883870711642678830466599314264228204437870229280739828271022876209189238425125074049671847726788984116230001928440131775110768938084740381448628270808170914336051313888353610009846925029932341867534941962799186584688697616926537240144125290480790489276840300408989574671402793838308094213307473899879301194514576746601328236414575845118832735514584056730332426072550427637806288496757738306900229603135729737534928220457002613342242473817477408883015378403589751656034077624072505203268555092173312683741089466319356759306120366055896016590513674025334612435960573461638364958651288310484716247890811963986772429479985592197607057070279699063945866373056833560160730885479560183297687583578821204831393318735027419492092361638012399143150355922543322863573297205476206733709757962956748363822607126646168860648301305528788693520250985311574965642693037661639792280079665861943546536123877745338524930990154389499519489096928571660957097303982430581702380079389136155673454030299921757151179533463318589045123180159515364813309560196166029833725590160520260252246896926176361343456537901430695054628651822998476663172624419672901011887834301694756400657155714777055809721512042813083565461413831837456794133721688902560921181580444852236090245354179549299932287005241969692698662386029277365777002413360009319440499669055477966991257246005821824118037287328225811162341642302704016217937572076209586850889205680415102664433872287052382775036382371571212248395023634441010594655160369741204844594961448674157725820087845292868064025677286035184875912372163513071777083081208082413311382635373450625507937143257203962207950362942743513023757561213524545904441646424685432899151663164433593679231679050229145464353551868962366359893564640761463391482035540431091041441073689524606287833305800247696183238899033216564848360469373059547139660564824573876010154691337871388194579177269102983375547756825286653337158533310391861497806113675168726585672421665445372682752040691320883573192768960841180530362694112638992640978799678909987006857386430094250149741464385892828767631194030770155357158597049671966206187399542698989157736322742783767119770329506017759829701960642913284127515326263399370404380195068344253279762268777996004549363772514966046156573743720308826081801823619927735307462833584839349732983315080048103013578324062686401395804000227078645732953866868085768546434222560386330858239142628893517771277560590567552863961570537835019852630289518038321881531109508470200993661493514603957779209024916572070984189580702161356144075963068394986513228365692284225330479344643454295310661153306146517695398158971727008380029457345614059166573264718888611097489331843457606984534911877103688808154908937875172173935622847823414016672204245853142231379874032119058288120483168538445825061091784615019385095716420227287075771018963861959319948157319573349024544507673226197978124490629984691455424469813939380774996557510155929542070300413880958773341407314365579006533231373994067402740962748439760398319708032510837895389485864181961815346760200503892285876060985365560900903241848568106317850590745767583879803629021135127811208423647480333820633949343078976431498453285105032789228950554918720803467009568324507372577722573760826208945596827167216921967499879994915208180562169871236918407194522227508980037184046504621098740044907120463709185024674219573948400434562136530899138351161144758300787692849150705687478042487488754117360702497797483094389448687612383647962955579715025212218430073036582718231504001462566974887177356733492074210597460310957046064174382207455694005677463598190168824573067224365688349739197999479954566115483224298048844538041642421113256702348083321648503829769324235341634655355572384368308242813284853530561503122711089494286992168714822824310978594689703112774104506154415360328612367771230308714863002032330680009982162403267854515715010844536004402817534614494861797393916578385788812798885347622093717811408640145631874881046055035319525547515335191856926253140607335550765330557729032543658946140674088148333677384693731343861768463571311895431290303755976934131950886906567313109515426482478649599500610828470129007245340763710815048273381926834252653161791186765118497781304591096933444859315280909751457659708991964182546300201728253559408723593246809689057042031064838017625703559091196745286488890549999985002976627321187446475752401068235665920863204088224364444647954985330388632023163589282737962652400998960106858062296025402301455674953361188417499079630851289357338942093681817160381075302515427184400902142424253894482763012519303282206357723272653393745566776221679617521740998164365399853764145771577779911359705531871141092781431941734340944108169691690609161878998285059683767566149890461793191540518386810437042259556220066003211496983900692846358409440052722585698555826549782546500723072391125699651868103456693488502404876497673629449572844591312637637812353596363614002782772330903473924336615566210446498047761336009918213887662710436320918233923538144455100933435795387111082633126317124343396730062631280334173224997756560814752762518911969335914390278388751648331376671336368296890657913631358498740876356761497633888952067967401108326952042751881582377304291384718454934943152395077226576268119949667646932600584866231774366265910668550967006929856397163977121655644680655670211131837092973929713253318142734299563215888703333408435969719869042341644586484134219837686549573947573264169045512526656361509172645352100406271223383184980359248391255723848261708156061084803059116110151841086605468944273984292067966635635249353174760967928185463198550434927733263950430908337758836900762932328365765211981311740034614780329879234797214559711613589623278643263306722523129337210627582211146103837040701585268364249176091185622637338393606544362208000995038371331072937381538357551819908468233390605168571902397886109607816429085805481197368202736487765876248280344459325030290474603792764888019888871830567026030756328274954715771312898627383997721193827609186592604792133185396708335128936379428090724787374382640628207295123105938410357117551161445040664679871087577721232911868369118007753547167181622056112588375341327346291672029798204953030626454045129962954185008618389139482664192224631494439816975424791465301816065288065767379570566483599803636215623695284998763224154534488524450447800924153558937621541898790748511609784233363598023614669747570286456378149311682022002140340735350446513541780309659827698121235659305145376092109864410576123044465284311936413638580170280347416716556251346453246428313682698817816349230917404934802740146098584396720990668466601021034283922750625118905484060111125207777563849947097882288950179996151604020320526227045894904069959818369024466892069745777487550496552385707280714844501546104608912928310475334797357167468265544847543029237790611536518612285324819261362875595219230994616130972489854059955448845942358400255378087714873627865466435802854010463254271707390441190553024367062150789184023441662347155074691420226251300987254475759322084108519438912521585423876818599445777114340549233410232142453450899518395014121841108658073586496916713523409173661116508098298496981388389649773066288533349274718057242357692488571718787239418063427685931099117501620602041242565276501278077677431743575181451305213182029014009659823782626851236110193339566693148836168124773233749718073636090909674139228830473047749073787617591477832897856694734470515403093729252993482769404440063699781657968905333662527395094214990917847736001050267259726334886947961663872339660198842087089765089233965032355315435212505505949027799202403821974452898873858887047461526689468381294819695296548723611392577068239323457883551964960031983467811120655705617692355159823275472941714969133393836753302745099405978167339194917219143100299161757044185148484047503349364615625813632279043442568545746704687551055981985150060303409283563994955459091687795029883787050622397835277917295075353391816554614934978313165560017258902288872125343261919018957806954925147441404223295863049733076702370693310687540034085179750131909826443660248919617709194642452614731484917254486880186880466213169366170893985914323314798985966306654176696859628609006554377249724391223377064864758167298320525285717558097832717198934272474388537268624985364629998118513939740036367093600252407270065204799061347883861079962443888400000342201615552474906248394443597993306646821330904700865261748497252081543567057183124787736238510188896237625294215562878045724727599603057172683987370578287293831069599633992286407633254893344520024333705300482333753684113724657861259392290213439069087470401038653417315941589565927666686001118680610002075220474447698329388902938768659008203275383296068186700442815263897727737643927511884032124310998395775822594012130749660527121490043973503880437228538145940274959877607287421089155355979363329414283495375834241645832789252029659830215317192081307657774151365572577258143014912965327615223465984016737587998283324285014152777753193264272505163624039344445045293398099028783584354523468881720289931670742415820941172199445493924524541091438458216502854490548715550169806558273091348261928771447079460285402603705610947817200369368073627369147791993502771674675945231171104876931720827535237258595207529985174438148085487594940438148378837126566543534010101069953780353665925795833865966900722323244765498132945913868353827750269795292814034469738206065828410534468552680103355315506229052441974159683962796924467666932144846949411167018565974629409334213405223157730816663405297679349839054729469739788524387533863138169973211027921472409278961853199065294658024613786384980028979688676179421013935550238652025639516445192180582568517961712709525656894765044189202072391474444177853821174399348980225509436429503106805024283327190992247324837302486710848165886730637964224361790006251231301830619585065805895307654677785519909627849885774381976487669839724018819219110372874849668997060897794846950697843968092750875681489835501844779913492941022683727919760725782100348955807572869921008991333994245900731384064212483051007339760389135323337651850379506258617571616990906271820252418440770656673111217472691805074457842714090919700768832686394396917058752762982369186237816169870410824209223970467418738941124932324895190649425652406359459735153667363873292819347162624254249396827283898001903466499725701554888464213707359279687661954076783145120375111103810067178528966984238017692704260788197566930326416679211908723232482846279697547442312527287971575722490147680325794451236068516284758245441838469098279797946262802177290295988717026559702387728460811399338828794392236064105830751287270819123281281152104630446614651915239010177979088145732340897074790457239773713322158310817576379346330829926836073260885342443107194227216202889335328823873667643166693914991666057538076052999623638726454620683554237007637429612559294682697743754516322829265887934478650243260811222877210766757654996124924831094784697746405534302113156136028787709678960699608739948236390525574386453434848260775764918788335037642371008949849072239194779547832002310626138905684293942136769384154064534968417791155697312131148990719060980787051668492450634601607583315326232881500475584854805374496741694031217996270597138184026200767089577498826130418072316978274975533289072440421343878600905692530699024775163419887377284711810262038794231847798334781771286536140739713754527915662644340262004358450260972670204117637812000592264928577519109416096603516405700670104452654145411058198805300758661596507823866466534238338708275829806786975009482222175446706236000484794724396336978912085916541381114637316415985020483640386236926862167962394557435907061448292041892583957003002252810019391424999585299217196663692889312650817601978243038692933222951403243730093919680881206975958493596695940438651529955311871511005086144914459615478133144712354165990754268171211207735054875384737343653386981711701111579611023772837953670644955916911500188812375671044971232324497412126875938629124449134813052030076727251025807484139583537536607435607087447159509664426207223278779261447989116373980752166019967534605600339885900954224087645490281248010121655481946184097371752697232049651078345702296542220320262997875992627180401369529273320033420800222533364626088597981358895093899082082256479150600923624580647892142614575610670451563294207064470343846713613371182157255419075416532059171455112324981762814022468117934865277001776340716459590339887937725363137175479763753639617205260946936128216495506665727976849619318941905793538491634917615590282766569867113088006614880624780499241450668815369825830126749852116463935432995494913817268424244495682476703327624764134309039154462480250080296602054518620185060419323646405267006436879406242856785021628343112104361912806294010227563488450412887673766352938549626351460144570432779340995400991393733468525668111575741452208002105291692190187183043725705284299708279064971655923673404636350160519522664403547853278322647877424677911425919618129751019760979345308051371439322461383827003342401891884630345708474420172388246810978320080224634368477978349481876972410128772187891005981579686159033476751073613036690743986337285572593755254052413848861952679828972802336435619290653473174421572521153851979714542657235450063610474864198634518756687822976029484894012492053253798876057653870383122486930057231997796608506483801082883711412797567441053919340291079731960021808016840429737386513052323391542077579495567927316693778113827661001713714308669381144153428957539782771866495796240323460853960514957088318630076572551835570939742909743224408477700615966844914764009513879421404741693662301354653019113772525071412702902039801613930525096618819291030522907037281284573400712429498556080182458770161786251291134862145851859992272374825195940546287341751041555487314102277148457205876335389288105827070308705369934601493832353284170134029522142477065795586081883260295467064658931318148713303656741730283837510634382226812556172499053507070824030975611110320788952281286742648882669823220989191827625725760606775145309830357105768941020995461362729690778928933247070177092607557103042872550486185496009945856415254526534185746658903994773971799286474678688136586059708599677189150426876944342202871899282149825028538521460739918829069658527344665973925442724354080026031592677557510914787909996022969446454400104627275744501036096203453838279492190470343983949554622667146046710237357790723570534035905317659218589308668256843881564353209655943596434036967691697193531911788604427786310868527063187806096423787321561298509966785051286987922382896806714614574516472397199253238182538250594080525658506169214793796327833103116935609953278511418542266915305441810226369038362864918922973574953514786186658395690310371345387133960457282348721260173590043756258341576000661555050863356470704553773006863281598885606601343854651956789025836410401916230415734660907155934777194480163873936187246370421504547639049645900171799190705090406890846784965512717917814696058222587076189744469823750507083826492189684979932422876150612678894337437776806256547277179514434466227344224323951548558940674236628130728647038897000363561334190994564413876192928584223997858320364529679117999223551205582649825816964926807283070625831012857320099266041738787329860364156067542463659937900256348894596851654996480851211263260082016544225494329521147218789056598240562682687171260908180861687993595626903228889175360458534654334340694684963431681576269056747755324001399059061769889385634566825555481115976603021291004284995368651638551070428759030682314497860575511616769393040726449821681891670600740892756550243570958116806937031441030005161530513900964272981912673437443883067938746673186228531967888958662127041669639140719900391025050686552140176265816651453350722325515751647697732323101637417237848214701150624028090045041137168368559767236139634221765668408496577320591169141878210909510502942070898887665140430599173867536291421553401033733433653155917744136422723674747179342252500247842217381842381077640860036408880495690580979404169197460867946764581142165881649202923537124915802521344005625915632134927367426007730600752433265347122652408172393021567167522928217333621110403641707176674679166537907947335643771829940049511548322157859981995176902584477898876946259868683197444557201883413845840391407792558154990154541933185381057634068084442184280107658655733435251615029068975624638821955473454604799165028253958348674985264623620115492220993116166980623353866783541054528124071181537786626101459084211248433695724114244795072919054363981227788632210247593201484527307746346229195366650836698076102013529829656105707682650664083584956747842892170261562228606182825393118749137083809608832377468196541788751825343265089513017440662202441747077328337036800765332062211765153977318887067173118881047473186127484575983791538535463827369708785091645414317575153996494665845665275559784648083528054461021054000315006443842218087584269489068565681116882090916253236813897156929307892777853509697277499057418269168290958751964743246573591750556275376774060164499328074502061155792810683318278027411713494709048560628720745266817685356242693171905386489945214586313406012444115639552513113650600833894665221545018807334659321334893753245048529058326446819556476282405339630761966713931999711488709709086226773465687015382024178886427679750823856105847254673469307060365167757192938582414505148180710456172828707248489350326111047439113670665853379106500839557298855614894690857587188921233673312011184505902865051104759592224244137797973169075520418522707546520442749430750247207382233920883574533690023764881772419153637354929063606706460095031462199475512230349050885229827851554318400136409399793409300060285787489840573654913637002875472304352053762246589783296802367635798338511104131360249035128218896113829287208043517134593201540281880724117811555274934170720432202353879857795049860317409836409988266433563263926241399921140493148225540624660147079450595568153819738794944748145068080193343734922127246600697392608103090550829907005056407504029527012297638188236867774417774614931582339122835527637119936991823009316988250683499785609209054456124831301402539106816189236378335047144520438476573836642371626458586957201115094540020679070279745557854144392450635086489906329390642056974732197790086132900230743015665790139567079241563747780491148846380296408194741019870726139208618531065270038396417599684152290801887744800118564040574998634053395382747451171996411914696749575195146851945800001150109741390180724073490054600786889528094842043851480982938805037534817979504076311507251510115149410014829865485438990459906937025583396359108734846229072542663337152039704147827764741259002020701944022626322196342579944567443075405213014865066000237451444340975537926726861896663355769371346031430782754266890105495790153983185097795300249730764068842415458824810968074150286149241129561788465414915050155466512404919542285519872391304761200748505661842555198498272208143092018718112167518012384552595966396952537053013076858523905286688757538040572845337348274224916638274334195456434056211975143533429198410975304943714338428685732279258629661787290405759260818848804852240335935928000627359434515284904924155755328036951133801352476697601188502825286239579291124684427912550409023269577286409805278442229949720958443402580788006380568051647088247172553536429818365716160528165476097436064934327088490093233441983315172800782114979486453585489983616707597555080398641658045993185720998458250873470315064352657629300555894141563675588655758751441520941156540235758824056965546301833439214069210443274008701177821985953715950209710282832571410239750091928308312611244836427030736926695073054467948980634467708130193621953738423042152442994192243466993082589658462292111190261311197283433320940282703160820367115463720631256626437874831820098019605222970157203592918009359734273795812975240311407853164357529919926186668258501709694954285396111995633974961923409476108805277839932711954174019351297428280974623913422792845122534725630084001315867443659617307215720706946372322160306038251273401645968851310124777184220672899747578391044480081194027534288451223044235275191303388340494224095117707791601945594638609176576684944672696132373198002172838647837944423477580719585973424896078949195650415352059080860877361749842196837254755020756746025030290792072749755589498660007955813523669352556350871371940896012775317297515874087996106020662633360644545387180156311675930870779186781216480902210145656629362316484261176225340155301080050449426689415131877999236765268109748717626168546953959583145834520200889850697308515435855526716060814566810507818994586050548033778101672938317583723697278503960229739815111344061704218927793985393240305108287204188842214020634259895598116578846450978233063157669388537844506906069294374337824577599476594853626699837128825142898691047375018466070366710127472715029654529178417241610954286299998066212585562532265308647305208030224149888655935399617677892667723209056177447621494800539952598655654905008798734034554236041859954558267333544289695735798780730255786509928079709423164761139922844900248753906799764103539304796368273599618443519205118474830582150837995510461469939176893842979038210095928321456144740636562735959554251016560668598685270958635343142225499617280414915890066123947350480101789918644513890036897764783413297810094074180706482863446001541041592087195031660014938741096830684600012333343871062444391481466221321233899237369081404834788899908093379508023596935543110009226449048824240515130047789972669583605769355921806652378218213684032136059509217516240967216239285527270687979099730113503691877862457470328047744745682508938336181176414353966144271377574504902175034512936453662716209128055456628125265908321260385243312389077499993395024925592752424688134846109809463547092250192901765142950060403150161747133538518069324249727526666702885091082247264048258391370240518872191861536195910914043543997091536725177421155743787584807016845991120653442862417500511281715194161894033937279843997996501531691556216670407198040018756077029318215122930649760350167536315005499234563945510678789511436826244729723849576696898400675587507383152084748761739601748376566923040325246653414594773336139635427296211481908379100347272074920669587070853821038650809418770384724057033154654873388482635979447007627813579162495880667073714000589718034648777738167031431445971664890214776220304287867758542067318187696560474126886426585295130438508000940878570934057234542998448981284543072912307504334402234310516835694462504982057011087555910588859803570961913395903159509054626438883263264888408579283790261744961701356542857222292337909475771314945997452463253386862182504151082547731676530351168380180154416277889235856351488520007808502493919889951837197030779037688476911826849093795409915861181008492371358641608763340155375436273978005551622400051485743976285846573080430876275777978954974085173093499242698270229440494774924180547539551621563409446715492025243663199025977309403358455606135833383226408798652693012307377226050943432130789243795304329080685253213086998032480845951594642452048504568933663747272436201397955957069457748164276444572512848800286343863248613777679865103540969114549005328021394639887268164591702323850618192843780757814685861187588395235309427920820154988982720239010718294170554947064128894212235399400439488888617626012522523076201153638088991723703693112849556464774278826912377443865224754461265194217212330449631484305614332443189847894143564470558618114984315563262962578598968942496998986899777384321023285257056740377252753017335324199018231672026240963781696029185424645493771529016744850947731593845576098098489958702229158724472077212082079268988667686023597400323006219892946820785625956456025645478880158623302864647738177729671513995036565885329759768021110172730498947938873022362545054252368024224626505048997788575045862054795385226821923278321027322582259173188956678763898599050920306895764608757674688126920626010569666122785446368823984952769952330192031984115430251131991216773629327698567277063265359892568381229289357804354123221298494782189164863404442408567012645916844415472786410055037981120395168991516209765677692137148702402950602349137873537544968256479699991114051040964879652908739464207477868418448508745273635428685713039232032113405952804725183871705349566393927200744346076442122587596485177105267619116127755162578009968843604626819107211842471420303676886403037305630522500923891604743255770789601633511831053970571304748732856236161854054983245736867798268743589638362515227294472958779719518021554842047868660018621538976025819152831078622199764966195914784263734127555824418248642451237088180641810029267132205786678714033312303427857051440491934011805367811887403474094227812221797760860418013509434896584839713560089618169617976936334749128400150403422233728687439559315410764914286392396808878369973059692192537894180666964974228990742601738921059023698167564031457286180609564910169803645796777015121680909446888743602881753738366722225109611706175701755622714110718980789225687133691259026492785408034960430572659218264754741776447554265445997000649769015764974235025997695698962024884947365606341962563365846445136389167427335039474278083574142472078842031525749530704983099397152432289889752463939449261035279731760194657846286099542612125136910422040946680743877594420851803495223844058224847306966075334132607659577462518052716029885605886391885814916247895486132289763507235140918129258998736363414402968329470517906901123642988111665886307752876152632401065735261492229372284118435558421757565236332759255339003174740561006038921030377691437454454284058279537334589256988286477794432398248802689667369826022567109986089689768254786149555883950889400757284533481663905783773267749292004452371373139122472866542562613132180245369769576453418837027624551371465589224802421790114480204192203951857227762544924171618685233918042156611730280425762372931492171338789387727091716081970323951908115649667692302944876496622140414502642631868591924160630632686061144438302584894056720864705593976457732039494177034856499142226291617004372373644789911586503652993764373232803826722117121048669023057538312824289476669076538170943807873793887255679651859676975959765506010736809023172411689751805670821392218387393778906595603045188315383299954171650503620704991616773936639419546505407764712513971835408943286932808585425438530490231922298576822429747006992548604859762736028227426855625621532130613024320770075071417411856624641114874333877661825415396752963812776642665521458596488878542783741065779137220221691911629975700905472993190312909526887775300712160671947075104807487809570266860653873864417081054764427761231521568875547270135686722810179801932490776823312481049879720124743368980302320826286248256316417144285604941265852895224620093785850683446278677027359711547781677547442828132133477939643321379107025277823541310988921257479755779872395995619152069660721733712016046545330641283452428399175352416766645842078707508211810976821309507245207777137489960415587607860602277856930458675022943325640831242619245559016709397594294305485260546191992583162787166772167990385846623931634606066496179132346557817238755626792727577723965508611120634431895557412248755808207561135229732710507119408395656542945287828272995238724867014651374120926418509088974696841395952740405141894372542695204931891524761001202868532985712816964046764100084900360147711446554923399050172878049003031975044523769071663466552160355266068682715183593398880597919096402464949633597166322078179497270893303336837781898984241049955925354762181491555318612256658529041125465253575436361049300672115522650816878276526803483842342567752956390681083793452142048600257187039022230493143437014153935276113826280646154145888671522311073374743399393407666491617921690531110421158290430778064196533581681842019900063841351320792781628281745287378868677736406204994049860950848892838629625153309586746058729712280313622980061669119291228918224366467208113320748194113775489138786321448637873059393630956404050058090861768940883262241076673881942292405406918255399614626089228234084455255543148052959492641230440648642148237755354528070265085651011561759247338534225993694607781719873737909123166036541648532493142279353579929014383109953551485798225112104331211645777646307938681607239184212522580468742612844264950098436819874949492096652109114663545630008061182578705082765995219230822440775192199988682922027051267531103041742956699112376057431966266187003215152971188551763283226284012531312419710703712354450068485357889927786519596972358329747566715363867787207033036386019163397304268052079839591263246581579338839473104876150833186987324720098421240679950430538772717742524340629035082249753461161583435822920130493905523941223764312412782724647145226553138009107056906904863210591852525617412748440487455543931023808411586590429091747313758036981819081785784106290669801534616736383440439278958133331190025663459508160502739029306940162981906539060739911848392281007493458759100733060590371595638993205218361081483917578434260696642258408779185108638318483358257684702046908567635689950466526796222320816117796303650162059067009958353845378373802599627629187565731966944923413337830251421500404950964563987854826756051108096669307284579831981103535764353475011253452611442813020188621249036168041481450980986161626130888871562222646753227964534946308956964391213554864745953229673500223414413999151128455868705961818427611114258077937969230637946692938850014134817636861254834701282118186937233455718008526526276859654232340167704096846234991268330370997023920457380211182331960641561098462420788827476001529538849752884301452762665641912622759556244932925057383826612279171831319264227788089206213007093184026031016315357484903903378847851165605562303533535476337844705134225475284750099058364786936336654751217072597399158523906786699483161047471527714269491648234194987351296490590014304684481015972080887099303919636953834004755287571470722629740113693420166254107204562335907690520750643850024973463806077774714068873534313488602757020587089479495638331315197874398876217049377665204146885974211160221247384639197918879279909627015648778660675589711734155178529488869173041277974687504439665112399886133731611259810490735606425065445146963182118908444539892342748867355804788702506610789386338430427419457444625980633226531394999068034917880057887046311251671918146239587402419405392010479937701188602718422721183665762233555620052196314745757348029675655411181470517229145762974531979992216439592827948427978359267919768908448003001280696868768603179726262791268029916233134044727774722516089681454593989736069117232839363934619084507266908474857738745384785506195341878553528500233941066210511626234019683962370742087255833672384717544261932655693482022808403532410959197756744050639763687104499757112711166253945618094585120580643461117992490308645914586225583385607724479405194335411445749393154452447992553156962854041054908205861967824015676690011674771899380786108982279604520974510810372470523748637189654341171912133069647803790100446109802004121354095856891352069891842351706419654669022563057612737620295045986866191775982381499097902533121545951369133370627971028326549050339262670049787612721988221396334901907301551128581176003239781724925632215293594756269795386396314949228005932970201718538476497147799781266029050909764569860740268566211538803249866422603102922082221550960073890487522942139309397236185503821554215059852689688988667515357358168753707569994552806322606413029283292510331224031983485057680430877635967259087767946552001405449741879508391467450571789709451905904468904770876853709549205644030238057504004840741479465059524605477728366351222102538698782026066870341423717833887486325023685371868768332278441370570543474388543163873658179066109305749258577140265976198483851083878993479850130420727783132508772072765138726502756506727879388052340879688249173302603160681204258859871832862183858911633026410961758553510866385391953205187611047627375798755008020238556944965190678258181959987204452257102824736244511161796012301120312675614583785583742442517328974892035671077469419564955923242462736005451447402788263525054482170170849126100955387824464649346270865309964246613954138929114306818824151793832410901908507855839873368245533604748833366321925305684877643993815657547849385715339706178464504851703225390478634329398070451319173452993692007429469945795450623129952796208308511845894910128971231185084346376983083750407208140048179571874655489571909269215353086458059805522366909764685791364573987997788791896612185310231997281823279517939151477777972198870801344157819757964829885127059577260332518684929476981010187330569642312051697229903609129268259529029026582769054012468412627543689609910923721883857205352692728236454341250371287131179383106231045755564840413241040201366275191125260598472387189710340154362260454132391893169715629384123276112028731004139274869352202174698051394951359477273508603803852781439693530056306222250042176286951972691699909131427613768970000856463478672586456377283951896185574673753054776306045862439974441690328866438494988663550098884193625071533041216358566427464922431646264837559541518967295972138583346456030061757686194848456282509113007679243957488592069769626178241261871640432559791688864533797893111835265465654275348347319698417160471234720007141313157578853830897159822597461271913973889637319397298553436682213007244269445220349043204993705865242388389799769003824545893560171883500050466750474965695816249996437251132568423866777056964779086929957764370454734740225278490573228827944289966582559661744311141804004470618088433964805504803887994514009648357412959232085136833641751965218354490319651781796695121321077172207040613380770082695451687605953801058095944061860781828005278439901375719176858853357536787246005300242700748435542424699609535324359559573694359582282847439029167473174579623408632505573604624029865285918847264543530957343295239044682742838553715309972434238426682371097889725505070645863222523309959245067840066908207241379087919498530219888704995712665356908300826551542340647239935358562527367522591217458249978767715375754414671065506159148236928365250829392016088945807144538243010145038008923931453241419441938082281197152549075379187606886293374048120989214981207860770522308437588767707666916960894797406382865465910162616657378742409151554759627647669964201838032185674232157160960895349471332549848048739219682648193743064004310172044443951225249580589172992456362439578214763813911635931661142094551714036473910572408005334669456839772631556559574846330396736760860553672544066911626372229251139385710302475154078142118389669208119068642845557108401364232071814086281001380991259003748853196614671786454438777987738206124538097986339561007377063710023389530734424231974872438164548501923412050319871502280294920158207353099812530109915990055740630043288973667303813557468201872671114055483822380947878717148280917661787808853398628586107351640936398448887127219136914910825156448424705180153375419163356707735083745864149109269989891615220887133628082261083480885332638172486781595215656590654418470200715467659887291004368347881765970291556717132652437345790035665652257863075584289613503512415867172407191879521493372197110555093313348957339794915908213460691983990201455474667153182168045540857844214867707690476321289310423233370275453352048015848787170337808899960799179192360133446028510752128734849490979475666469274704179124898410497500118514175613579785645449055907538468249902529618604263281528948148941910281487085841313003714525144213741258397029102635863372120376953654206125500734578302649404746998632782673453577104358828991937985738148572647051310969954409211849126485102744638658419868120860988467023940636642415460969911197565795964564706392624764734284951229298998461936941799866473848018367415699153478684291616356137001304679176572668632845304129708662463524366512659165831719802583528370120266697336456936518001754236212862684048161941406227418004669497902039973370031260333954852840020717341852842252825576168961201468118569181130338553308100978923581409759408701732592151362321446000339932429370225507730585232235261731829820844977901294029900525257109898134988123315629317811296017127788337193137249501535823920452016036208826100822237737778959696402847032416972262686432787824887380824450370282160441353830256872370031019599292374819867907334107690462370081610516543805662651804074278242726735230170844049834271983900081952501709969335944572523050965458891328306042234329082670575045652471082715879851525666715275796999929914026018891596857837589726678145302168443410330813116334579159976896488706086287056354502429144805015296212916615419293008691829251981076167883604051684350544718386850441797712675020405741078758997235633842103949279435681987046279250603268020549948279211663361266601215568475045544127589294704938231400439118758301081542140496153615676384653391376081010815985308420271681653633407951269477097847406925819205917079193236862344759083028088778678985227595311431939815379333074125821616031096310107026744576135257789693351729318126887048603900479191036579852132148383948277532218829052656311349896556785117537950966137861700696190575282919599694754397265525182181372090670475395206212838063528276748673261701245998158606153112639278918765498992389977912147711075728776807365508118803623905238812405193606505478898205258120620239461702789382137115234416885651973259282579203599189410810825366030553810722743137166486491019671525202029274876407499885913449289816929398434377827154787799575012816462562180833199846218327662198790698974526578204027418001638902652925293928193947428652628716797147202656112525331847340552525409443279921049300185699232755620536925954067641379090425406220267654036078401478136889934091297174285581228328968932020696691149567232891136661754264031438469978219078905944397258773986214485176668928382502001955665413739366765682171399081122094447342633541315695218408760933168606795475498658472823462840551634746240412588192650248667794437213012133120469908212939744616585465144283386280932889565453462476931599872539658783814623376255052172194690723970036008759299768814559775197217890911712109468278547856654060388784215607008107206308798250230913365061688159179025815178828952581177378693703171160211588579668347879920093349959805884698514147193588211137283077417750579429886173231643053365021492609433402193890655650096857965851541122756370199262904440330155939065044502818768432427014411883938948913582890008014709131641674685100400477096570197569610317622606975238273089972154219813084611553932046812838929666293179653953823221029371753997462540853030656258082300987354036127087944356472064850710890214196643072722540100953495581923996913866247141648718953367352397121286051589253655594786864487173679556541646322081515308611685291785142527617017021094692360298238529843715686995566209288405585970425928047743729499970991205145400648323932703958985146025917715156607945741046166832144298507307111343951627056804743338243103210046775575474252289633587976111957781103494461406847465458843053091668142764001536973326838894141103428029163938203011772994209990551136353163639471343198298886847474573135793508533505286876005525162694006172270786340955083730587156093595550543462190154461299226904318182818471844082813701186692904856133173674417118682249784222263578164749618665276429463460156193661235489733629148796792408002514403345384470845095898353666843217804243647786915978263326575448269748465694282290081248266037410367709670073267126844596815382184030276581455082345727669340080206387340555058668507991364416869869035990674999549331503920595890696365898200850917606311604677065198189310171797097537611356333939145049932207781158794529918893282715330000630925615059364669296611034591450969945591157910372842914631481636494791251491511906770975116611652936438812476315536635636890361317215355606829429674917919747449003302932992547804016874875494691670105990458861949686664421444253135056243016366661714537245973306024515811417808749196386980345657043221117235725821959369293190897712881226537711486188610077826081611098118454826219150265460116446066744633789032459765812661266768806660709108578903219801287593806310485631509300009547510318004464181793493741513169665811462352205975354383745677288061804384274015270928057878382263887908360664235858273886369614428036334901380535379692446598682040926057824755194460814485798510935761361116682153327426543085473102339817915293461665384515550465826031149618109709293871835999844228604722637952147335589700918072158533940948617325779000125241605250083316197253426420920372971152622964678253197169692227214512945728199666590694897102841077278233650643463290935314898830647939963913330447518474665285661076366441680954402082481941080560488635197548542569308137919855968449905040108921099101722491651681620171732446153961654811797220043025739739598389243996295614409692238964330207629576788326956765172932013464056776653894363222085820885818556421602503093380434501524152201598255749404461032783348343155772667033772272610873729998402976245851787779035502556510055361976008309771722381897996286601078943246270877695783903160806898117512898200531692580178190336904397975710715590305051829075625805923626089296389717626067458902332522947161033019365576919410928816001549927005499572699297063530036522179059938683234310637605496531763674583431164374030356502910299078960350694820897442652323448924557208263000444637938592619580854065166422820183621943200933229970582124703064797320375814613030181395524212802454003001805562473539052897281834235567682793686329900203031069392218460849321070520371624302907001492182088827884939633124192209868752024767311071359647862616426214161088872186097017821493298628240736203188018698528001424956608426906137262336080717249021437916512778236186992631266247694679125743107804071811511408602998957536933344464308043446533559625942937410077898558406133158183917527063873768573387120511155283189509741690418041037452739507369550996850889035015054237930728881780908426044494720850043488922127962291520239829236919931635041538467881286899871836143646886049858730243971544237474852040621199351100519243146442899200810284253156723545426722020274734807012664658573546662793801882553374153271099700258819855999101264362142354199196807780621978142306361265252104063039641930269341104639967059559727030187262459989553537411007909233430553454779100811758707637558151345091960349701227459443356729949562381771853482366635958850879445238493349981666577153763638705160172867293274087672977709250311427722116208084858456665451233361346810783941470087299300675998122360618276866259080085995123564265982877469380746336351713292017249138164218275963493422705901687488895279526748915204508678370091752277859221770120915186239061582254214939389462236234768610869647032334517545153886520563948770901290420296402195232638533966662159971853600429384813812240211519333409200586734495652994869109969758554327194263919541305373391577486672466979207590503049637376059984962342109069640940394763109011989212887583678509018886887706587527215868199091634934056684880539712254951885153096891343762472652050171536514706589479857480979993584955510456315247732365535450064095252245571311914240741604961781949989277255593685678904461891155630832002328372557023353208292854076614040621693891297204649203233919099189548645627323360386879395455639879402479926043155671852355687605476952560023683141152294973631229025186708320298600579763646607493044933143655252857967314818118264789519904555648768164047468657891362131126156019794517622853716931564612770046991027149963753076315000427172169771462308477329270313625339912447730911419389479508155526703610798879789302384919607846167237843997810906226470307722516972312551363998906789848783493487453850828306174884140227330040805763896790713236983570384934947801530053347133943221802698945769744028001408255714230697308212460437072575866661808523020507155412416548654188042019575896770110080547724923572176053022836449891759314855830987492988216960259538212004983144368445799034680008431876900519366896341830435812592880418395108087693481134788158700665240404732889575021247219780312337502488542965168730281672489059284010800270158519466658467862985995552666686952723694116537672066895450552186277049891214716263620023732288133621335350444705708482761700358190087923281902075543387408553208968542723858878650073717685342201826862864186706458675525570357606527084183365748184633616901586687702993629964777722348241141571644345971807940566628823757004323495031507815017030388222506948937517229029407263764420487070080445389470866662963279124371368965219680221045805088339310424407376889159198568147248429913027579519609090843152149450856182760210701164889544304401859940298729692696317316484711235384439363146750162782192101007401605104095941237581330207073031670018242393489139041721085651420398813009504431650367202922260859381535225329928055408188455758593251604452251824153982237599167512480074777156733058183444785009011668027568912897799215265928359090152924837962646290528331595293667484661588885844586505389321801221424199160688876506304930817084899075503541306563285264894331511084535728665458461203839238196641457220410430135713092190832122367442353006581762749037549384864767811684158149198371350477462457742792811070208212750057402281730296358503168760172647983700184177991794464032694438359837950061338226619504584146468632245546044419667608082554041657167040824062537980865706356058388327227703237119024105091204701814154830056108335495298651277619183292090600215517773519678926078633664676413558247000664159609917784976463602087872573231129074972547448180727870372578075005498832600469665077850339906286404150222357356909501235793560237949767582383987159164989757781369693438951267681808834130634882668591539194166362136663959011391908007822058635848338839163269974095532950002051506699909664924436805485873753246303989373070107721953236504002903430582809523728572237168585045042562290758249645243545515504028017807738958555025111016958084558208779611950023823026365943272101263297987624937840030319743300604911805876898311344486723261180515604285233475574041672250276539493116026871283379898773022179102288040515675018497922921217087078469411937762020168688983112885136727448736376281356182039552497844146275002303855500712085129991644951831941496949689019847413086131503278600341572654438637997358798638719264691227109108974304243606731787453998362820885433484260874456403947317679626067920976969734055795646954237657418278109835105444845039336456321175063906246445458528038151501912369031539572342187716162431293928424736550881670031896698830130784034626106768035822245612705887640207335951339015970034979685687652569300890130701458536027257162032183630306884501534566602819757280597988423700662324615824912360083577286734777079899100000914148784095240003660490151929514088907998943476256601590353661868273214987843274647580532463797626563666124551206742556357772919004502255753641324285583515103591413293838658622647546388053125619241245529264731626755064937079020093917320844043944963043564381241099266096741376519433043242604204623420705596544101553749124609089407310036264453142266684119155368782841162869772471676552604458793247513929952372037190226934671275247184026605863319088691051218403470691181600752838972195933044592532208097209021603818954074329144082038417860291077223448270031505970776815731084304885049970989442250992837991179163281663199216428132867028680470626082196880366424356188591282805120867937974740022968695837842786168483564576480878120666371925107542898670146260739058214534994983001525316177511616410200001899111119311642757148055959557455891552912635894616353320950361396202702477286562185797244541066721747979893139180960139516317375090473796704962595125286531379999521399925188067283229166236530430626128402815648970413095887010966005931577824270252187321417348023462989932492561614615636346785689910955502550013576657357227526613554352954822264768574633636925358013315433152934693020121510673052368754298345240639646536849033132390915146842087553868559515381911751714537823909702975376408306056321988561924151864905521301765239973057223703846331399208821600580979169654403366093493861517520909838224381990313521919563780215291391918337973319653546122665193031348348852325357838334481659083935096005767740472996092098246301536901991130508367743012522924516432098212957568356245283347403909347744292389562803747689886376808357792799922607684665644867393936210600032979099996562038667049772437696861915868062321867784603358780441813905306786847376512096293679521010027417710574487029293392379520294734199533314682315139751901182526701142165214832262905288370927289809007883280450953191104240698184278590343386540627109468033528349301942615574663922893883185594669806371341208082097892963645317432523705174046615570008302464332650835526495037920945315467747985713687672917716712316818118493421981907304987366880522456881692764308268992639571480578783556627175045396316526272024209763433431058979322047027225694044689106303628809788260365245366382911683067500819159315800101996102425758203717377373455956165393270058284452692259734389780975872428167511328757325454689863806547358441030404313630141838623901510306912451034149014884668873992447725139596953336759440408112293519180437650447429442993644875994798200424590900873440231935623259150178379267381200910962527572808325912268235043057570399876716536599052902636048662771984402249135826575242761429185155412391593543866361977607642240835204623563617894859535730081175605361622112754208873098977152471850969694704457717874907315348322490872730058507489788507703937940729693577262452406924530584217521668338480935678103692244218898367940639725947785603761158017943661817116487892715274936198237670172486082626184961647839293445452620171831713508637723897582802989445607938547354598857287079839345280450943345217375380699076897448389714289023802508065875388229601303321587491125897638585200746197162703399382699749470709260857845646919022462964564004657123249545882120560708214416154732681510512860970568064403767263102157927370814935603408938873492109175248638078176249946015733941326029808478671813533996842990968076949806095603125596167365770451901955630247601972041957358696510270422083308762407852448012963625466283650570897964886296940023985831853673336957324506875846960047319875130388047561629075889239770487605975495296668809459477771394313368660690600269863205601191012697745375010881845922456144396201285940161144652614173674319698307194029491868056550852276435914272993443046766204454461342817806284097354456568131805370399815970698364054638043807448755782023619933580674093507750353304783950062604387146364203773113667017549004701847565145394556703237122566234592497275060369202871524791099045056256091240486511189491984612861409609774434774061087513114504978717130568460593318881599796815222984086477105645392445883772870677659743115675852449664081896817268416036851700783044521052564835518418779332456872416181238079639578922843931100517367199955604126492317533613055044035135157460501163198077495653670719360735291289503196865641510625034057812649710446281948548222967855096358131199067889755794291270437722104466965152993421927378860503066683957850849353567310885118786714454541431707373913746765552445819281508439368544751321232621499061132800196115115997609322540981785980434988757732029975719158363372709541152106968626592880005867582283525538858915484859517901755237196381882821778038850654343922477074687771048943847794617375497078882967954690316001714134273218947059688436758983631398019451163189538910390443041799394146907710220686189307875579402336889461259317424175985079872543912847084926654109636541487390742362407583499563069963526433898868311904232684739242565956302173213698545152839840092790552410566974562367154419022899489259725164188498922397026497307489506945600039078222447633569344050311833469689524421312221816682263812577146733086058891545645373363869246665574262507069834077114680318825446908079683367094568262238784634055660420260886799917987185458320108906572242901670146165131398177420801381055040434524219631685782953540253012696037267967067008717250532143642589680006223788332016125089612385263091626327486140996732110467621068370255118577389926504693730500914226993029782567158792290607507840347548637856911947488262780923200185753051348078415004101825808184856293314339868703899918725752553613220280513378584279040973613805871867923500195690617982958198018160337214034538174797215834665169028319725486825753243884184874380273003724252537779016019701008234910186355510950997028196519086456572115326932810472993374440369705843894823284384715170086410476213311031609247947188357255973090495470053183019016722887897034730786341873465773923067418733581964273899335356020876518926847793418160109197723327908431618336980892457051280054881529063131770148801980705824663929107189897915249261982335175125004282063457126655697990548086101531394852439942091188782300936948632389339067488764168481523648352584156985336836058969951076465438530260279979978616690129037271271161746279827621943721607234173737739292083756640673844547746729023754157977620203627229337810485000231432712707255217412718151034492098823385347095617276077657314463414429262575654764335581945360431698915184726319728828249755761148447606799654862310771474695903921394530832294467001984985231964546991592295321185998731276599813653464353676463684389521280534837477703142462052504470260535110376468453857116562777969845774788995358296164430840285391348119759280496316446108006475267600693439149556958500027721992998125100212933149693803061145482469484662965645025304227520776408300856860810179402600920320340855317219272617113831548704103693420632139270189327374342440043752836783765634853503895292294826126216654972225599114003502836110364169829185191185825352972401386545558103773794774016902895213361345125668865091013963300244421293511725736094640430632633020172876279940976994684637888018960043439950219588353273848907624413873470719719906314812669479103809863799019611059318147022703065764995375062692018245810956505578629989028510616165278371750405993381037315280064711326011577602840508403733605679735550300514089813971968129051240034218102452537281678592979812455902546073998588042620760286670887321526533473880133177118867425841966997454911449849594577305431221672793358378020815229342421087385794277985945227670639219389742623635063337283084194235844330471942096474791968351930366761988733321580167338813282605620717706592194197641621524112754945713742964969832157115763766588016160472094670366397648242263538166559374633288294766424775763267569459914417418396744988523349779626777755112776920196752560621076553244702182393321414156089564593858641379355478793688206727426592814308220406372302462106795175286837341339171917209438295283750544709841707341843193837356258570113036471136579418285362788448435400874844868455485709557761401606118045205713859144431399024750581935991221585933163003020205296301138497973364741248567208090172409230835594085002921063210725127622299590794951974532971339755584918328874307818799190253409909780431629593118954739799777637301083366510830483790704049292345763556864801950875681371087978077342296692205575515737229104596734127665635037582440367334803857703487727643249377613108308232065942808919466386987658515875881316452759376139394093002151739326204128160284904769490355020009826164266598516237478394331044107864685904225921040235499991937747795848387855373133458091535223458550995394188022452852703090819715282312735015781795393748669116821434939693502330831454264930646802085138016726877517053035224854358361676188207354761200482453657587255269375060973074137187705907651994371217501212666928440427134436991117263143897173940435011807151209781691353981846370623027846226428607739803093761952890169075122917508075240460344114576764256181666412550958902281443251520117234679914350389293057293480311954556192756749477426722857306437934307290087594254569785475171377144510983546612908263797638814089343911465769583635028211150937797758259744546438181143161604935409292980092783903768606112162359643251649871738984539572597557966555321808430854093410327620035201113314141553008027501231553116832851278535031686826152483767200048319490439585717761784345050888258762301355807471221788724435106619187433714564076969373515753257659593180920746385961531040255476292435288878808544039675688684717972059191409955566146271103516832234671080792818190700674009674827626939531986402889171146819698467792514320229949092579812357560307075507129277379812932722260440259063438673674423081407080524897714488386712473054596081140600609230082079711467750295436161471145957307905639608796410154749038343727796756100824155638040051281210992144281437726455375331507349562044276456911552836398791741049255051728644233176279416198441168241086283961996894675412279205506013382065341009866718092061151994829615944863571943010264246248389094263640149102937822525828396557135162040920268590792314721237932686783825573421903348659110194911079324150362585503676359706548149023675006158835603837540730995275439291834897725179178378594490241223983053619850437616218684722522617030996627753976775929818021366601090617611201484023262760502524402246423295301987075167700155321666108063650649223221437279546016150397059199408208925456471782527141512498740555366455360656238728527444288655606130840419682866808401232135745713693816240104792686703540568388654112395249020718233410046846951252222491614630794474353486030731265179484989552195518592286110389558379742532560972656396474925354267774344532157587695014547726710776767666610292220942420409268398534158349798502238703959647206243747771933211589590734939613407465277264304125564616929290598815282345087614340554644854860879124635310916359673682917849004592631039370664118998567826955298541067926589515432862823686347806542898588064944788383100886202359924407491659336605932304518877859347654263517467900959896082386403655201814114944705102418515225437024804264591566083678187246244508314368198410545141529033019273280223115726861007877500669126005700193499745771673434797239150653535877047697015893294668299244810217221093986611392558633520734905353155510021548064973120838712302186027212367710437644662021909758030461278476788890129832884471598402179494946835490193466084299157424111576237771901067446881680693413795914912003190085355543552627347754972460209472334344297603462266120258427497477160899995201997584155116931510495399250118204449424769084117929028065900553096539303423716008900635454388549986356204814608783954302236175106735561486774168144966984268662526286708396146669937383630798018842189350161798369415370308130545230152400571270056370878270229284071460296216649840620339371108901554042206584129922448990419656201899535774628742614534878720316426436614036105125697875058805996024969644660179954527512648756851899551253858748815999130838440054529051257344483558598668884785515509420107019271216107580417774271857662863760728429017652970611456035406002006051588058411574738085158842865463519769316423532172816415890676514899783736133405644473934440666705555852431003085682257439834982652842256397180907034045160392636045262567009935655991833283712959418083088185451245639152187341248794720958660953961264675627353782863009206122205569665040632719558484787678901344626044040911694320746612458855795084793583004974958853194395060599612651683640654385840748483336534340289668146274815138759326671593671063043398556401000102963786083009059722489194837345940496645836454986741877385029090272504333667574104093879178226951251991985140846748714851921836433279220643432987534271523768491857629821383244474717874803240576129716898965041617787934990748067518989673456608785919049499498969301807200466746442668735642153054645402004124144645597416088109240269796855764648726685966884265491129158745696047723214731846740917186072700325997246769120492048666315552454188481549898381775036738937500668103821649080338893937220303449051663405131733613575656133375923453684318618390677170851734395790044400906742767422134908011768610362696820800465798384078574763692973690977122404547586606885947102777636589955778233412696935270036989502011475017463521160444045390876480290732899059451453071031317962876655906643078541080089398751403758938248058328089575705185593703909872934282701492195451989555434007228101168084714692541069228341365296560953422024673332196908555494782684046659879421006080317731406604855733507292722007004005907072001586517208457810874637715364110545943746599667410421889922535662232880399963300617142599600825374766480309730348730181458057681881885829560307134235626307993315143419065247199402822187630703306371290050207087977389085570256204946087820559887206078158572910761664100002903342402887499505356357031974193616229999342456409275066538933575663714723567393746526827487367194274314812574290839269748767389316873738912657459448434457344125712678349416977541062647934688914404524535892134659120093381120708602513300421493212306732167600450507856476993774826679673760427578191525289071531944002969591754389335817013757603964320355060979308484778167283152499141624985711184777412187386690557433088985610081516416488962164175262321399965475667417170299513488210212993128869604083980577994809169375461235926849789056934825693105145725750667901472171433902599187618487545326691650608905116366234616732802768056915504929674388941827115762188999181794662626145951569707017207759722162507051860186816182728839415790843231434015784018720990278538099929846670659544105859602984010348620869843994627241126179545130481933299015944463929433503234237926581001056142322550575553064418339221541728296884390423614742922274274620517706527537599617153518696384538138286965655428648164626960020456885945936495416600033349542274531003539770284675162437619807237506037301422021860939887673203555649662898669326015382916270732873254442094061727170259849351753903656103643471226307069406650384926859298363555559970741518404067345221602438155838674788052276709878761393941747408918084423151516051245265044284576036132943703083018108858564312981678448019589607071655341098578692065989870904713600568639104766609783598410428656047986710475362342468834297521411387792132533672112902781249331290827869362950168912281220949972490357073690381103380845186312721243832830289814144933492543232170813409214640106104815472467926184376315968303494692781494577892763923048966677385721954728324516211245517341233223530930825520339516925219356618977040473989455946043761222524708768705732224503539355553918100281917780924018683734695082060223563076062508450656358089745020360626964740234596401793720548880603630784097287369102348840913838073929906207676871010255723824606332692712006268103941830000661040145031533848399897199236654333936485483829908167602041497614663024110141576433252575952916750002324432006618952667291306995760300701428042955984104763727459269416609020243679594179195530418842947226654198254847165296412271840466554755212325329706771241269905809006540199963152965198136539800212138855547054775836966772480968484823976524282077416715157798695407016099432544862932794905175265859763662150140916081406116449539136330549962095392422915017189065741526675027145214271646225845070664634158515797022457802597788604617147991981465268078509248053239595467009182984285535488345177757951642513276420503816708858328658917032251934215427477265629899674095729953852291610617753935053433626904713121622262197026892401940349470130027814760593815554769254415985378623078275593487946133251560141494505405292463342918811453819253059072961377908406611126503110949602936383958112555033579806333138896505721824898156312245719939000750880617061421299289333348728798374172377256960835315240069247765083204630093004420386934027547150854496170102411592155986364894138297344229986494490698437860526689662881421784924679628843340097331199645352740102913358381549991910160426953885851521408203736242983347540812775317311141743547864638388373335209340345295118071381518378785243613835616944096582790738882970822144434563924090378107823401215387659900088771601774341629448714925719353485718479531312152452068258818864039665984976223026806425597152509589352967871154584077791622860936904842638331644499759358230886288239899473992496173628810870888323317180765938313228046528026309683063461219793975055582419655883372154446098319051883331251237715170526394947006898748384348086397001372742101595159501689268459493973049976205828853508961576452914047659961524378453531026751780346561302846860636573372020873896157375150278783563069924618650988187478574486162910244897971453851408195597124957403908647141883032744640793583602614834870056230904446903615285955045895772888962544528019992121793487410410548629831881459768373298693282303108472910014854619935952434923407094962484458669902401636803805174569951823873587776815077987820835352260645182194661647566266808579739000442762570965095712030781457311354870629666141352202608515224927501270368875983838572421495124599373631321441064340811692909197237996504913630140669148515880762092022740357648508843441484879174773473845141813014325748272415084633953015977362222375251659808498982600982906468078677022714433315665570986995444110242432989173505463265137319803588493920207595724193697913125995856829304826787720022224983697343165981040048815651002318828731936406479043789789356684223875846576191265812947728607886053926059976077061172105801439500554313353878843196164236841202498342906397824146114784596450896322073353515095216777307667503091728060584827681712722279295867338587456572046044956463470678485062861938665548351933639067692830542416851314892955387577481586674182711717536522409952555723602864943048564295964919824233875010162040218766815204440411262659618374200115120950291249133867094771915288743246539956430183758750890442322068183063981980227573208231002133130702979704044612420605481036745711101402833428047911217814012385399368644370785176649591784101544858590549983724418637988955440929005760361633573020776272860367713142748830043150991942236979944671491663225673218834667092055738843881499809353242770468629816942320867759721074357260437915442223938341496751539866398940737393675326282856556442315394618300889932561988091858403238468422696101608066324432106051782452277628788484085322094398858531119452298174032207855667736656514679596118478517830930017796852333344049190945611878253713713020005790216093302343161849475565954325302163472489859602533473126696981055475115941182558732950328164977189131938048848607022506439185367310810010507682761524688980054433521663326066387605936602019511628554581808234253991868544690309629913414600414481971155504924104698929911221954948019037360468197951268333988923032958965100073246209882752591593196878950015121825767060805892869659308373658190997226799277270311582238568111695684470647040092234451995776102631981914674280160261781391341391192726856986699811505517805961961812376565299067338749104137253095961201076313553502082640475624002636745470697189509521559043579921727121284492459997551429558441832382406983976403879460651062927202119329779782969103966857063135370937449291725715126224113362620037943545016537135847528373916848862786142235674835898507121125777046521801204701052858629719037992491244429969224748441547342274093675471463253357419453310725881211116762817145133444180410273121236341465980955544845094491633696846100466598662460457885213395241724401218345453338508149927819690018489738862913696642536969309305295664871981029389539466009621660652263556612336659605614146416462467379649774099275189074723130426520825352960737636357854645133919404550382788131035042481704801278712301291607108621294732995810662458142531061587089559794753082849143536177418169610822304078580298557773569076580919846738634161879734235845510488705214080093574111734726563205996744183847305404709167592895752504061302078660421460723638668609353075341500361505374958947831369591061837713513995442523365024691847651490036802527001624882184506283479100388153979628522132575407086104765385739163682002217746032553273950491437848856586182205522677396860792665101371258884180520109404798855740515018479728614126296474963100151942040391014671374238543629879748661555368685073527039190811301474929708274650659961170128303829106244847032252136576141207578498509892023597151854841654151366384457864106038771566783077624521799563830788356801325224284238302203266173139297924676437660130362726742668242388225885443280408357204891841196020925602438375292542006665817943468377383554508410030005796949583749662794489586293810886857156936831590014075506359748101417218613144434908527011171389908166421876560060073156247902596800398529890220012472328212314445041080323967609236579872428286736594107024838474298385577660416394367047257878862703494798530392227367718429664254351530060011757182793247020840225505188757157423818116339770124183346879914782007138421583261955701014405437090030008295572843400742560769379006890166872548689298763132879900041522264862214763504029786431152731311587582352528325911725081130480127317980439077839935567509364178059651632982470571988334303795782351549167194434027537250586620619840051391554210173691188516100528670186960314304604718816010243001991293043382794529508837011097623217621846566682316024519076817880054871225593150231528092937948409324446430261691899983929165040955044846633128593292757910134816814261259114721354527485245064336344289358753238691266979370880240514401698490613778870173714377812074760372761654230697829134985407581964845554107857864512149744244056627816629886102752610193989995549176758611823076810790381989183040463477096733549298915554870443031350552292177638886586868928170209503744024882063865711504054381560156161334299460378221007540013061101906781442638623151174623107800610514516863802796652997160582217412747128675716458676484963031566640492859046265851521447750474710231366266214854944485169692519387093796915144481841303116876703891365857814473121949966665606231841904188115882929151721812784241752706220964013432229254321204482589919045839943356714207399338861099073942289807891813941215543835601551964450445750129875434550314431440934553709172714741724470017755538379279115319513318666538114570646374413184785149675807161760808644099546904381466644844219969871358656465210440055374239437116885656116288919969611325154117801497377708069900678729804276016221148074294168934070120512488345092835043142768361382584571964109047821350273332438272418923929535175296270870883411978810517639430494413346499848928460688784709349690263583065564140980328459060822623324123079716418294002282828016441985894018965691294140970542863290422909088124210777745902116469507673164106895211420546876649527400516790962148833716356006796515311248093529596279250543343340788959014779758070640039668434622836544767698051277844920906343121726467027112091860929734279078503409296346126178116809158987892271745043019022725262388149161025311995924773488013230372169097950208844577134347873063467776252425313323404195955897933660337493078134394673224731019605941202800610057553455114640383523811482811947329457498685695822739603001892817193755102722530020938302411801756425478657596465009574256290953135747905910356329940169010466111175900112874511259611552868949572985032200897857546543513153059613545679388621433449226348720779633214383126175050832080866807275741633059414826861169005068371174081148809094181760821582607016575432945963443476420483077513500788938748608054012850214506479045678892317276403298315437497248362775166494831198553334651958885315090903743240698393046295210756860043083438350999503049649318565909127061804916012724162725713190715405712127876672396937631885145861628577777380520390616877980192649750276850279986116858330045624802510858849320784835743966636399023153870566047673389682416712171939656728728532668657173496514936389047457866129622244634262536885019942796542120667301613821671303942516304604086412617846947712518343163910897809683910833044506486666364873973196910003118627457812772299973604662918021293683468646434081213852845989348646385538074754908591070613444362762172294792930362630115684822063902335617918418951927293096686406445472981951427187049623918062605196479307150096073523412731255876894673342644896650783619465945038534093359699886400110203451283871137724679792593084579561390348511662200215350398286209586370181842066542521442277693865941256601136972585474123645554109811813985514061811316098522595101900627591751347804530144965758841766371273487628346535159359643981709913286587758834737531011827335834428211576290599111352204622078353004878864406082585073830737952041716117748824043287674118168432222669761440820521098498841781411313144488271342868070287810454910186564197700511287816473285300932377885405531691976864856164792208541745655065750421882017815289319064691726036836037937198349529979009578467249430036491669142726194608964330444116069564979905316104169044473023511954864241446060017783490720142632515592379740779539557665719814606509665555061162424260718344693972478195620457257265267796059848018646450065325374137573806755678111148949962142991152826893884541364612224509481187940931221302639311284350259211399655669912633722116057621026434486229698617705292733385276387790241428462642441229104066318263321677434171365465153180811858341836202432760304997768017464809441606812047308861154421501809801990783621831401561421309394983212024264014105459981703932489945581982732214222868427379303519710045522367118284161688419024709326088870750837488154110446610700269719163142663274401596076203578502137292404623918618346720298811490349620612222955171790583390996785362975938622606037000772087725690992503180030804044699077975204585740596258719668886001184115969220947793083379398009336570373816529323629794283164495019463720203696896400067450711786002443634020371719364768260024503218961416505447533640782825573755836705775393462232794621064042633361511815956638020740073948027359520822242733532777001108039182230972579169739039710146068710375403175566437299919769800139690953373406991142360952885507513886707343085988271189400364455158154363061003630411681977535670440110066128488946260503599532571586407995808217569055153202066931849492975853118640411830734741324198584978605096020195750444686812108645989788411382537744731307855892226267090927990813238806840902903363531011481342467290465311193620422151962554050130164701802643410180046658367948595686531812684630528311401613945328495175156919607029034313345175845222359084132644246607054992900990500618751413142550478192723102776414126446283671894792036811665633613755067606224723224972606247691808717383604890721883883894664660809612180717005439264333604690449582163001669608903090730924374468054019527730010119038384258842959417775767857844842545660336040225369692479307753700549569462112258171625693784859012008301818296440413916740176545290569908028464313758823695210961113537505089301219783580819733308451377901953986529844371001843003010440073959112899392463226436689868705003996924137430563969999620925952963538291761788657986927666998465001055420687731051948464280390609731031121447004125481591411769843809033511557628297838282215241360484998497497795484211739755066327394683695035731380197174374342302149784401382434156858180134629867638945120585320544719516526246003378161889655464660958503123679503205333944057285681906966587485243872696892895776400741790986908887379501844761993614248937224051001305053683258554459422659323195898006811217584363830538354433608004459955851327981039752099169660938594072700498448993895486235723805899859673915581400446179685860776480764129138815395695592784259407663342346212290623024894156483269553542307711032908572265046327292374223155299680160516388687081090454930379530907653429063412814078991801741112264086149381011986924406466453419029208819798963806897063805171556603001274655228773510928931022005656758680099766846679512091561273115050035910617723684433076917757682339864348485603201095019461639402325216471036157757982120764726843950629052080209075045842565653970166600010200234203090270315904937776358993252365438239278488146713047615411089046089322413540941073988965530892507645635356517657441254139619689081693168428001811571672246459247701468662550460667015050775382425723634868285293902598541654052780003262471527202156741562079250541012509620968932594921088352004024918188734701070345802759430069482036059851471704819916016065173445059464735637631239758140049783111536222391137013129918608410871142388107319387785977070094482485520771126216901001249698530610893898061139612892850348398241252135931650227903525830569379572129556217766876438004513265670223158348831927951311543271577824342650090385315934841692522109456385962779722887313705001655086120262258793445880173929095197065657699129918230471519293036796239114545745503402793728106686254451882551412723664247781445745489113401120390937328623854866014597014399473413929126952960677787650388050350549600474382150107131358929476547035335957379912720833303467700822205017770079676494318332713343547398154822256285549560173434954292941652653852654821668047133401108212920693826032241937359724615395686574775662650465444214241268636345645046287981258486342915595585099910036160457401950322634446519414574237489414162774917572008178142609562295653139380202512294781957906775264779124928271247231010093490611676179750499748487493460233033347137703166252952003105912776608621754989505610930780484688216209911850477303676360162402456878762359975152714603645891905849623044518442298950586151683691466891108231391756034664289533813839993732356370421417311659025333626979064977466123304444410689809609260377950937786901039292537545727870452886002645206089945158401108166560833732368967047359667561739366469242072412242517418042376487400802140398404914794803014679241019269911186081549289759588126108164619065033534547483903168341099983198005721073854416240433527612494324067925357196450827676166792624106244431907915382053442523313410265983075723869416259842236546844067383069655435100628773745755178211186466204971512611778650628692983292178439397901420617334034062429823451262924610293715455919068324290081243482195033576177370740099293853647261229681650401579004197622930112672226250400455471797682405451120486646888614403166178300790211116178600008656416542364055933703249112318030692549761599051418368020299487314360711516970936296196162700361055108692531858083931343775799819402222067065906054889432743251484305933045264369159755080232511630304716535329036486483911876955421988962307042493596961465161175280277034263855326796987326919306995602201978983203994278249302175852602703488874882099203780730610220682017426976239708842655379075445630061406745789626712431898058883493131935119546775057609294519684547293033803092187407687100209314084357415929181024966214125086678587969639675957583960420778354003066803267540805266629974874910269201550680910307763803897557829634017708278272433399069677617249918088604515596615782303270127311690028303352300740893686732720658081296919144269396683711247511292672237898642935362363985708988435356223139677857717521335166976903114975023180294971613885562546313845014259212661728639213380506078866873802102235284055292979702884291438139534075530776754160396691426003120625481437946984893082318232468850669059568542184222391356302626240023733003463275193608349687578387912677517161925755454998270870068339182792481467622410470861009886448065431043761011408561829220114599208073831675651787623973798609930353321446155984132419200106995962930490015257635393426112319799581257296325476998917335310033364744197355962603255191704710216164048389230737749678074898757232578563503159676353485047671945263737598577840520046835143549255979798188400578131882897445638379825231305037062161320440089470793243713333002203133538613196843710759184937567928087612897345912875866695596474808325884171321731848517258895235896638080893583032199436563544075379760203899725154270469637359427233464680342213906553940206051713095394528550907892387219443848026864651424387954519332140204170489207814349868501481334489160031605892120958263648141400048454074783666689709251165804531108060578236538744497633207715353176160456750237391994336172414779553951534499519391370865005672736870812940182559662190371261145241799225009863785096691556379607157673854649907927140834634999697650931940466585751275677874151436954532027453658539602014771543953742784043497020493290657691496083562924280071305104195565973499427520755468507484610888060122365650828227973015634120044606562491898223045954074533702062287822462992147016577760562447280736813643532607802594767268137808621824735203086636250847263986199799103631551602787847358645289592840868049917660613748891599182831492036665711164350266916331756883656669559043772242958316365260922885113738583807883148309941202448332435332764947548301790265792772306880092312094760715254372496594037479853565815317970929885330154131799742367865212673077867415943022112683871850209967062853266390374787264738957670012131921735021347279047055413535563149052830115654265004363196069754119253190935202847213272846045342718009361447279968407573802905357674643821100475567692385315796442063316391916773044218816681659425715158481140311035139043317737380548496094232106406495916761517200284981564102486449848056904800623326692587099305727141877398605957885405985380586086753222228968411213139717631321369857367799670313051324154520107074256828611130909787816561672079594553380425782179496759157436856712017249537482864928708614765731017410907991479119408442108867422011257033905976472200010274386966987678024945678898915969199025932218944041966180226130657772383778899905496908639514620533898406226923255855587825709383216072291985966461452670124293354078760098300255737452610353628973258313133741953874208446551948941746545939039155807509791480453185382274565433742509273063307280640175487639988241842964644885995329780576808033309290727581719144243275155615599407246965315969344221546865079085750024173772209709352645926112305366879596670827979117936365219930920714351921296339402623173553545227916819861838940850774276751281729257319114359078421147972778023605359498737347399038944321296992433090538232792182746908184279512965792885054498221093584951015688532375944381922396067005126942406895536919725734297349631066436302580016443117084599637187423578106412325262554622950859199840141614712075084597754461480858842941059347715837713963488164946574510944391675591006858196603888405292350656324731576980327003033732323612823433010148808052554976794917541885934901816411756084224233569367736760737807120892801690405701920170844078329297952943347978580754502794958806763202214018512047314749154887753791429752351764442034828152555692730586706513233892557874041477450350466514288748715212855981978238582609892642534101610188179504637544935663263054358541330212976482149401548783751287614398308952690168615890280942247764140755002167894101437917192446710451503330236711982618182752087086534085142040136810512953183814344870443288770596803958263201599177410381413838650700827471255834650428872580702365919383631200666980174894546947847474506533792143216495850793149363166561978878836704608518735640689565258464830970096655988225450911297917378465157169317796172275360297982438956744820654447054311901732187286112049356032138097475007633278040895390559896531314000287051537383188700962981475606098767330440909220063202910259337747401291855970150169041270473612262686145323695675913589249602081305327381827015065121826594159288563091132608627192306338000979690964979146014264735516736971098731110499293955929972172964026154679319369538803837204847130123403736130474494109308427330781874153723784551590837393451527037651745282541250683368548262865631332765588458550010553178007030645368366370985401413995848586176189173041829154601823669807360843834007461965135221491251871590385526716346742734756536075514782926791208511566190529470913416058807103780157679138365749484002353594401326219829450040547213929004585832304537465939339928461306840553525270901784508025218154435648173633566224702828332956019323980037417327860256394476217497654134542893430928685720065520516365922355213634581837245192808450037648749740647232803769838725390780993949867192297683289368675818813715962868945106277565356218750777847516332124876272535063176905741660096263199932756781128646237438414658799681845507888030967240005697164057560303879604439171271509505865358839873132596197512560592815432933820630621564109405761261445363734613530844388409922175639552370812818904482054376534965262167412946347341331629349440409829623330111535773598109956894315231054026963837770642724245872294356796282685473063886789422217045403657364290091619328393515392773246694026871564329575217827800997092359162106803013427060879540478339084009995564316316066444669134397689125888073393070565330495266006180195595130423386101529023749138248340476110669948953303769163353148683307788038275774578191750807101912185013064023166815414333719552562435151922786274971685168481759130095632923294089407816513055435342932879112576629288253375121544500047942800725133496364318332930442714791473499506453235904065526981632397081162829770315330812556749054258095606535781502183353767300661344177805201224082192020487451464406414067962711130427465641150631973859069524551362616601300826439996455523328550273596761549875325446424303148514617878039729988960686075738474892816963401283125481597119239222781244630689683922715374681235671973936747069473356587151385647084125455915619197276434261280878794318263446429875100848747099264502051013838801442070485286966091945329346619460521550953982764632945344678713885342932130679950758499350343780518650676191174316055885054102787535435332833533694209984137370829303331054458843361858560456320914727985351910498953169458293489873773091876644816478682522933051334156596476039609126021110454373251791473979087212377336961738844579819576041993625184078851229330881237089991755441949288854796770427091237753804800462283704403982495182707723569139002818487678867678301433162335741366552791122188000052936910518648369469175777992804135623364740634242134748563768950050178013237928288645720142373327131503776678087011546758803505349413229038785138906217862270366688186875464138073785301202845701761847940598986818060298886819849460410389364124211376754630890079618294953984258794337209760682864511131660728123095088269328990136971796889015786090503638922844311373980840190695066341491161723784367496011745370087073835806059397303633429341071856609893912567493909029775462076278811455304906769227013290549737237759165815594722291913834211640669177748818476030382708622707376664923088794620191070296314288101517713083916621482078506572303388209452441661277100860031649834135994763090157611184326747602343561226279509108937676713161590239515516231835818269303171952623542501279069332623083607649005728156615079810602427347020858565520094523543102452136666415099906355480083085283300345532485744848150900863648823210604195192406921548468332514605290716723856013440022120000401149454247758163599766905730293094066757410059445117506586902501731745561029082056019329579034521589752675885652121893831904075698363384075513052900510598483227257178321363385352456476499326835289710373886679196681868028362392626562955797090539153002621214188211841636415232418998573320644527783857007654228428262367954559890106995813910335334671027301364702557508275034607090585035264933389952330243478847683814708140763109739523768410754764982208145513555449973212036582752535844516689269556861587804984516287709326297016315482818147599690730174250869702549196645354468803450948511668994524334503648046291885909346069425631826187049001970345988113536833251875725460299192948876315412363340333146248003936433158122179180815045278967978980261059825335111089265314240806787975819508682887930205348212173038948639274862483406934484732648772459961688804670026292945467527209567440699058940590370950861763818067760915597444108921194075365160748127528805920994716728716711003062561534311706318589554224257032929633763836086837983938499769090201423272782465468468640691148847190933692800221218365657890322563547288017507149123330227833394159386478895824785676626240933018745228323999103972345297548078739615377340569723897755396224417405919814447857299669913323373421337445159921576686344964046065187820945397962427471156789682007887902027642034227134979043391672998118731930288644583530130396862386300957813711791196739754114944052437665566935476384798228919784496817927640028721520289170441525533269491165569950499533594283264232034655621532756085358372994978463249317941461647395559437096167412403107730908325664840765203202434210362118083800259464474318124661220534184751519202313979804914759597815955409639544850896283040816497546870471648278367658263668303760094493627242636950791241831064028504169381834004279543173740470692414653392697695532295634994998029648821034054520512145253023763630407720953249234542491362737632732217227549894826301783945065000138262551829738699009758874691987446909375588142938334715664637785886273806992219101843062994631083461256963005349277854004545417881581956786592413168165747592382418066486525586688755518223362395180374654621580498584720279693500078977276181446728533762611913628588371312366642520300894449178796696449447120603729056733648449013101910369719113026720640551331041238489293152044322288115108129551038719596092772848627999875803930944562790885692175945976631664085105215283685161548466185619425889466148413437477527739453521608151610859650696079032660021894521728697678857363366484021808540803425302291038972661924434427452838460006719280085888959068044297124935550386108816796861257207859849945836923756086768230702250024357148092684024073332856418235671132470229146840073656965319450768277346087287932040870998129353521786413782710136562737121312965936369042335523642623345176116162694330010898402311173467119765035626063814244777375425427630336515054116064931197328787691072849855753822347241894323145048048808823697774375704927939722655503009091682367073375110530064432692788057011112209972575073142305515795886519902951258899641317083125912624337402159954054416523398356897414035816821393980323216696584230042090754893770545857563607697480800393705117745107062798100752368457246032189659778458867221384147775367229800662348760945879206107087550521583781602010619749592447131454186017771317850560004507164653278778614548329848203602673400028399991671517517492819251674446285690349214863033486484522472518714274461052594940253849543404562098412709934123355498886339412703785730837205774445068585594626147217438830928899212970995600839169824580563911303206781299129604191073386621110584680489976619881540029716018641280504832535626033936748912984954672445593297270239816785818577262922606629300781119533875504642062411261599884495549249924583457398616087915215333209331528526633333819230876036251346695231053519125582360443261260134085959490534544364754554157043909596548624427930979509719454323591200205032907832400013785227692589906230684866753644993378683390999166905664388150907566447262451848783732972546048570348976259727646200290033397598222159347044794865524148707454670285057625897167045670721934145988146361651183390041189687560178998372740414622987167917962386043210030854236776501525468339672366053138293245505014700004101705726049149032199411388384562191239229787119215560958807266904642118243749551011359259892046614751817672562140405839991164042611792211793545886080768835773332530444752576607997064289855836877283212963289618916489273420036218796616667211168395650795950311932677418717240638715084061242682621369018738159941093740342220750403091981509002417014861238783466682650815137225420622901892247316174030897097418073030595612661631605615645627764525496087972471434099430263983894724312028529741926446350059956595566191812910726552240720265810030142470109689915859237157385591816794704735252692966465223219145563323037236228340595886349269171675779339356689494375579314600874944245133371926206563443653002407675881882686739362564208271458630816852327789183517388126098013963551343238682253208685259371960598607121714522819620317838851078593231623214577627688845596089677438912004625176171633672877614136012211860351899054094218278602830861971990439887501929169079469829964389857815955924432315172834812176260632549021345223941430569954719518816262276603744858689485147836362279162883151633554619366368154429087216394202022662530725716525526538767205365364221584453337718090757564825885244878593240112801520518924612350625260561454983765713982672283661946544911772774772375577519023182123534969081176538448905372315640239791765575952612092539883385798066460134751410820440658937361564809388900348960634756449088783190414994428859538792754171638827045725392773445154953495190083918535408999188058627278125650640555211748453733771615989165375958019092025218676277551219107861471488679850715362026759152405443334047346681401999281078829325035468109227381942560820381240441324704858463899790126705565926214054072690480819602469653066111708831492462118838705902130620886422058459198696831004006052273397086621871743233985401428353458674158541524649927854902035177005339008436751254262805329849613683814164793302116736970270905201805071087447591141339123447395978337524493712130617482227810250089357738048405994914797761706700927968995063364132041118196129248366378567697987546398203118494884718580843032802756041770319544849720505409189985524349783369594014289610195535111444270160453911857146706883960005118382513698356201484192427715591010673700293785214228013405116588814181575531130928730893029594563746701603260228862413193906849822642209468669272550435649498118953783512275392474758447455562985028327351851480130362422967316921857430341219944661884386259791949062747996784258031655278920440728725842230636403922214424858474172246821752898833497376050961946602546747855639238300066522414678568037092258579361868996812817122350002629896202512042743888867685217118471649772477450957756054958826609041033006597206161048792696687417578662244851974668839582598807005615072650308759529610444452475877075454596684031536061292853634302970658669953556480793299128155131288999678452962845086125880748064128416167784559950210044093031855623993465062926173302826813220115355506978195257995899437236285973002140366840455845661603164581235716390148313736980616549702879962459252763228345106445934128614945892528174394364308991604662297522918762154530379338605733481522444133456121346087496728097095684858063306157889927306168658910328894770946267573488156928320015213673355665464089907549198328466141268410221269383052405535054500326609774064447725039196773016481779841423042053959989277185041997311693962873854224099217727636789332717861185127057853314176504468440475451220593944614724236052295727808470122474670214961266548069611935282224908809009879577496491356014862681350372915269240106381101543098334855914179389245750206558742274689577522123477513506174874726320339325489745859848296326567939310500114672079552336272944202816247171002943855363171582318025196682133838644657744488453922623461657062916103437913589218789428352998896675403367422049979247649018949800271021591128833958521285842618383033143076461568008490118339257734104348484983330097726657817689911183824920619737652548808637925003437523570023980927273278407195376571577338139900353488831780303524291470182649631228547834300490804732478791846677619372232523455621836616676359846297682296663287044807424212248301275799153539162737079735060882042198201450106240679431164636257344114730217417069284054911918304453888858177813955801242740801689115391996942293723796575326100212469038363044267166482672767168853043616728611930297100289385471465776618893256458261730487580611160926592810074058286622532434197303514211266435804565949709156737249198128454009642114190577009238034247589556794981626422765778264630215958546972109419179296708029928299215698227971653795949971186199653343037217375924405896377516983300780030537647580629572593827307781341039997862720755124659749805926931665830972986938104090834647835309936173718284622320229809731571153351089414960102536531509732213337954269364315251174984468471864386852310903681797587278984999611719545006176676218714639607016460940854957008358908736616729279838819514321739421790223015183525099979322889761391785386876363972259454131523880809124136286394693979878120649236930529488924396901921288167729174407517815329569092107167540159229179960230102927734398149779039962074042965845052185178812459708670553324003138206531840889017530774022517173113315677787982764379302794280013933878486836630703450857610648126568008985203022466952876123273464132382324160875313315085559996972943158440524291314321125674531530169783183033297573263454297340494710009890679699730717955035595701141589672523752542023446570374917144624353709058848116486279681606067446376276406630635938755395537534962390516512695331118026521187974219286273258965209563066827396179874812794996281877558217975873959749102214465196382697955819307496995414697658128113155078003434865688243212362091082930575171565956188891286863960165358420487379313242160617784927159311293950153174839545318920554548919180661296826640250314008837568909532941986615243012199435079040039322505710499925747543386565555788704188246022940604857051310907531340232528270857963867920531646157224778868570329733333341929710037926036349412637469791831019559741583724947573080600170844871655887099229369913334914928050282844276544141055355406762633717303778785570317150952591253990408012121832462407334210853037578747402265901292811316416811617098908859531680696075064242363284758139226490677424552083681330162904999827440649745753071618326941226033355649774029517337204086676032747089344483477118331892944347891021955322749875881891490144115883202725309587265901702205527235032915137184350548613708665629435976028501344845661070714967906378842688221159735965205963045127011715519875524158617095017341778932931211693628867381008353183108761707719271331812759153571410079683586762784584333209692229518602449918762244878993883393115243028638481016290889564863811644364086498224069653374509525294491869565312829798690283800327677126582637141202608700795433195700454825001296604238768632026884691513111501290168492856426438211822408032231499590980662257348727211871028707865167322199243170472295801798668000431976563249020672753779696171706745569813650477892525835323444129964439525879545493976936756823554908475492882296450041337880828019919650354512807995468185229303665635978911063545809216329590946168142687172087033586576220185625083463619365805227006481745571021735629267469914132473890431557526625022803332869715808328784249749075475424333891707593550892935263816310667463927505250969088070367586782670239553111553978246340687586442221140765994199373136261124942875846128541359035482871945403879510945971499521059857167511057395550601190786200535788413562779445882974921683988667946832178090407936889368592197675763245667290863661250217411113839707026650570963675068095893131979505956873715871185302179924670795746192171086609902438789413772424658034275990141978012921881989728693334309718133295344855458427036748775487279001541367608663355261543237840615908598667593039068322283836312628913383261664014153545852118218828635589824028102344845987442511728316438570735242370759270461668324931164914320159646051542472211064307097410081356328742836126269550780614544571733887479878196526104978076547152874893728156879933273607100119050366641683214158388509982181534779510249979231362065813193515391131151494588220424891757291840224953097915478935605559913408382795131762992071764273612961581710482789154305664769897073473460426480083837722119974926293249331174008952987760637172750182689961437722715817663208862617753519413024605802339061435167849274679441840842107491368353839414227647172620458553351873406026838563118423507783551973932906533054640659272048964209657402721647684550671697450195489751165915642795061465489840479429208178760927456237079062825046747837540241273427515006838723081537785892544922064417368241382724386507419732887803690118947529045912090646693272270205496416061495918485719513088213145038157844038479234788274713281594780953369228898708783217371569763594296200347390063861773607801508112189388418953105752108190633664882894422740990950720364848647176578243808119937137672349069989869720911053909711878890640263688397649897045826259469012298918412360183248877303467802602445920268693607553142384988702360834010675945261393768758654364942930287005099385031049666571642362172932168296131960556767996878157871785443124178429198206966669795939105360641382688242757612054242573992545948841988491141665052529785699823768640079763575516081073930249157603205997154770667130005320707481183745723831834390125779922009759964871579133214176827637700384306563605382611025312327938882932975796087317027699838972404072978669678861455904355381053499348678301754622641689833828449795396940364181144354247681008642972988802605770534450654336273356946890590434824391985453244794425118777669915262974990731293596856681300072526904338949683693623680521407400747136367011860502651835258660883662637156930637904420285967904735271358282401768089355767168629333182998858133352613352986516688102201638554470394006631046883058800058692060550999701084124977684711040957369057099205568062196767674413175897972852968799812144034903110437719599539997361150138744381676768289720451025132235490063030572046098689723671205243745848124144519609200725031768504801681316257646140881279126606715185667976101001423627005111734952872835090952677520811556993947350792004390387364915255990267938992801685030548465281338340997848089152497938162508442416146711496012521122616691048758936403056340168609180045749119932612471457322175892753686016831867235913064668284030180106494064091304820292103700175552239159673562999716155387791331270843951728832029735970299222211272142900957935619910823847167690260031414307010386250946978313585343901295957492169106328901509143235392803795531474759777260391001547816826191679623288245197042471137483198945471485891670195413448229007821775213304877043612469133041675551499004201929483826316176469628625509926391558640952638314650117181379288993735522045439353573804988994657890186429092066820955055759657248353108755007980627701981270263864530474894012226302287737911403226305232109972129227029984734325273970375064526100437894161084049022191069260924930979852355728818871119164468300706405185040460295216430331036811434071688320925190086961020165911443499936414195830903679527446089198090868530616225944517566791474539016741022608281298405960880860314438953662405746897654168962173085348186347683215294944930083265691696149811033226022046287125915964380145777221722254648186944966478762923974212251631488906301470262672559324198481667422843718395892984056497046977334390637815630427782812461544839173979885895319654309668796949416876929357391814081173703269889862020841305783570558184843383345082132225136329504087069020242610002682920893778049854232614074321626288933054661846942541148897833159122807952209662080072131511755529801479194478241407857118835290016825936486906910992287401384013919239994164764316986585135340585147589180418256558478286820929457409133973888735965082132405004555556155297691742299775837548126345805213149362686171635158568456813544432197248904921874594170890084462386524484118169012135535050769745668395678781967713169255960669418832496150235404593683645142759284093176106342124313080320290728628882112325497537888087615318782898032739524819148900580923417800566581939643329503070290673067071979649891440910044689163307637972493872438057551359839489352144226170508955310450511309403030837184000181544312168047946000428274985457133015188958504962501001757194312250795971549380655778416547802782330130680853143954365698715221893938450650538657869407323732915492306297315651740144506139819603264915979112002555024732986634532254957891526140395221272311314513473271782806133877445802849966827700453225202974998876964364403964237388662546981339603161734472602537048768324457347612102386521354410497654254336794807266262061856818436479182879645079581565755255771783500477888239142047093595009453263181633308740926476470186352867393017727061207196736740465557875840309234598782479192137668154522444418044645222135177555770159958224236566131715845043871513148891166784687614156146978958965616541920450924668302594498938161770721890020806153515980668115960496679137490332223185573478153939067782343081957452768442859596396789883832555124611332551022512527368449378955668526122170769329248416431816182955460516693644275555294613237847002872859594909714648671272807413378935338448640393607055798990534239264510953944465957084762736152309474515430313364067281147002760069420544227987092563046710523227842149375455548099996157738080876150364499768916267462912754751497021024205795875650980129076124649526956007851750400264035462157010905473968905942169807347826482504162499295181343020340584818992062053514566367712593533283981597595710591446943044050944571250455871784448359596693275938728271571075354611429616220256397948537569956644948201758065567748787563650639755674639187738518158756129784737961526849653264224023621411428242663957015302888315099590006678018871423916849765782466633405222028819780749420779014683055600383148634845431191706577902149450249288755986892803457602893215761155495536089091033147888608208967367838102864934965749383545159325731296004493056226000945308145713328195388183938726537402975753227989050196644396543821685924124102888685760911229247533043971382648058396927434546259622292645558974947118884277587947885338219430693086451035569891388725831503698373968673621593457509664249767567906336259868974970518788634323064508166050662924709638814864340605952848627480842100860720014875903002100833892586352593145606593981601530664523376022800549526177606929981221950651203266709982468920247990136334690304677649279266149431685237678491813999351222724564272166146763648491253952589753324861667909112048610190031483455667331548970249993161727107934290222295210158096518303398178311002655873351784759956032155720950184607684515858291256201059745891742901331710453801515791719419214800906536327917778282421119998085066034213473202627228744014570630454016017406756497155546553219816846605572549492178250404706085407781908232208851439734199058256157204844412225125582561610974825571518386134123441035607166377820367592154200011553607122089000159857749292158013452063983386125092857127276070166794185240386104955012820658608651157460426488037537828243626689908284524334701904912734101262102210190271959408660914757245582081896300992844501269983972601636799683479909969982182439817735645962566331614544907935909174875649092176678253282006982317445491773446304192876019015827707779268966231887633182841441425769866877863115886397974243199032816365917811447429750501186963430673200275359738104808633732871175816205194640708142338947942390034669061230579630991744570487072554519203584067705872386382777820151171292452274417808624696459230672274780149336536992721861831902804626825197991292961832832996816423919534132774478889750084261134372067144737722632709102111397557316340410481441560503584304058680611421082706043998835913295126945212505865513868212554029958315939952363120424878454868595289360814011955672841030386900930138917826469892304054953176466800615381240057250217033328426687810976600159377407762278187072290897734078829991349662922862884485444584445293796162949098701885594037789318970901855511230058853062818368667598673545123571568316752584607479310209647074804999839812165307073700268933784030956334084222701402215182167160467675416262467811441019351820420693751836113373124087868745784045462389384346332371778845925214142275104409088527968637966460918737969657571563857361382646867384339940421284820762001731075287152124997978628374803845346403295371723120530529147305254127846456600439627339102812439927158015714036809942275923867831407139091463371571554756557358978313342098137247055551024069972193929065566444033184070733165552317720095302666542312581942269178391062094584037611641762864001334370518056730970915230305148413150258494863402443861012854251644914870887367743825006536753693774464767580752522239108677511296583872244129896024215528834788550612625865620044634968957864768588787612739808825098516381423366632194145522905309322031970526689212877449034438766372653842311672748171576580878071145817497282071048001470627006433087960691944944054433890989417626262308943013381853639949926859292717408009189048532060687686364502304461357524946727730620166964380141304544659169151343216143722573178503089076470056699058216560417215609535070860929688593372957720523207799828105243208590151905695228287810010791046509760484874104911599889320360228693874047793609037897709252074457401876305513243290024610196175801832082119119948248896483840118574020194330141321639572500219566766343381501113103049315299046604981067209794525196685244392644889884287802135239198244245328893786767844294334152661611761082396732252664247423752096957500709460643692564947791091083388696247192979626408380063640595161574759052237697851720084198557972472893612811064982942657675318883362222364977939945714667204201997062218758696022050323152165072373353872548683641929570065985941834674917941661229442181990040287751661834346175341219412770547717680498617708593263935824042855714573566745253121360394184097088862129345701968922453037089565177871833607266039203017738306300210228937215000004757993464132044749878656027428772522931556022254708956079903434338015584036483917426769554950649148136278678747046779048616845054859870665638253118402111933143491035837635662990763630007729790131184217219324263323308420862004245541089655684649195721545953852336611692417430244487588424829408822330336066079798679056664495470040574130191593037167861241621378834213209715458027554804177706189575909270328092514714433088496623052843875564981524965183635921940361212795714459381163218877476766843817100649912841381895407220205892787837107870140270351354289200696689919249305193188013127743290474740725187520807002885072932328476756085566149533910829028511871601422632152714836811071269775049342330116569467007415497981226040154511205435150299579472276057574309555626260953063269252274951731376327855457012422326836299732573492951871592232713561158683485635772259208583894747836244526685229809281244999688745748230865113821209519437526780143923281489122194827604085919759257600757416889768810525083130207488906413871403806815416759539262226279771562726475335095492191016574050608458554898450547674575200907717165439335194612314605450285701726640829589029840385197922595600716463773765081338393020112633030299418877456986760452489342057262473694459568925555533103409646369807711461203528510569702330644143312734519214299969558850484381156280111225572058975414533655265934087544487352191604879228941290858712791071972373950808300858937280153046407389075668961472906766197397983063235861322833466569669794654037382593028803163540145069681562274891661937366044066002628193422492269367340937865209885310119537675019455399473803401294663845293472931220060837461171075501961840724985152505303668922557715104900634640954741892410983018298782490470311276481791509015072226042845846391150074714588066419315356222054714955469578941556850013567984287622329940067883317916359695926410062846865769042841442925837771354689302545889567366892738615263976927787467145410928897891635714969090408555447034878918210813803200763429266213655755314930334863677874113708563464611781355572110925605388021990999300899393708597520274263604458124008612848762094561562037065258638681802858507619273648044091034736019096172557794896077177668313205153010066605217906169520761504181582310720293916367964194596802480011632626537119275144781941634172128587415345935609042693768216054420924539544542191352929912884497127815177551324529092819943786570874534126125994959940676495961470242056908741058001422999397285376721531315170462350452081904156012485482350585357559794220716982806006513831920967528172041944448202398756368422770990949241312989488313502602546640034064497687224299932782189693178422625251470117529320346962136096252477719407354490163440458324387695577143150362541033291629927774726480093992922874836121788424791719673043152940511253119290611554128597965228442966593945350639626723582039113214278236671861964008529565306386668985515073442219347446328310506673544002601616400006455776539146806414090794273966568734357057328863886109515135668679769843272606375432400031237674036283665366481089516359661549158683533871570889135687488183175185638795430045936518586411265975195681980486581209208523907248045905521761430900676981777178615804735717131594261146165018454853205561673310112669712184065505412092662166982059253986456497149865733272842545576051619116488919754892757683411326939231315709277680177827115746925548684676713376230996220277089124556462019648797468323436154401320291238939481862892157810143832109066995723799322290474065108879554585999637079208361030360922248399151264588689524412032798250593557644109554471956901956467598865930506927666481814398701204601156543065788040450867455783960700207863803050236460223885460768337472877760053443841787214027847262987512827040447838696234823528023119810449538754262878956126160684627166859178160755082795487207281229060545443625204322745577776000203378635667310788969866299386742226861687055856748039262664327204092311969015449535197479725582100922789162026239671238861550225814563726412729232371211667939395339194704057132542109103495242883946503163466586480063040849519032661260755732186988941540775132409499586057185578382480309274257145578521801838223540631643309026822906817595954481725017941541670153492501063110712425435915654824228874487354604057561400639364325433229231267323789824888048687903726367386126793803874272485314151209754668859756928805796216870641963157512260963282901137061131917747139809175655049243903900432935228196525973839320222579412263282159735441056815693749013961043604982083651460627635613716867088388187445372187097117171334729141207831081934982319366200299380541537133321179137440193999603303896521026913111129833277486289923583752393225068707830336585206486968077482020088726361553945148821397406518744829056515535347932148086569196520076679572713353046011005349266818102035813175337529557319718399115685490145962693997026910240054902896652123891137386340845934618450255275933662939042561282643742945527111449235681344222163163397965846033833929184476635423019495225829022828487061669651768204223089741170324219000418661369977353152179501266243099451332582375305346491529615697470408243260438245096546255927911214286042337595682742837458702218039864043977419561088063687313382373384551444141637634677922474237395580699464841995665274298912154291101509871211269105078396586928145349861252969534095915813296355971814144915100880449356084544965367272303175427764879813542222138743311209665494435922246952774822013894975065046859039852221243547238725277028829115242312706299561806468180081045932048371521853296594704702117215461575893807758969846398050888437374982729921199463121742622742616606791310112128052475893676807173517566697498207505097713145473542725356070455551586297559753851615876276115862354721016422299816371360704701994328222700476479994201653566666385013705959744645590533742717949628563555781991395106278969344112657775681961378883238435902325154455994985772876203424262687411345900010562845641472599361278913207529889493318163933238368148161529019558623292242937279296132035047285180253437172030629449009965726197665287619949137407043002759007972236615805407407516912712513764010745282578131972265130200058933548167623026727887425412117091308197927788822993017618497142743156379247403159887506533265224967104856948131243708581507695266593859473451457782660577122638363283833342779023770886788918568593418792708625849917563576626208978100002809604276938312608572424698058054594605177423305490081428597280309701977912785481115135781694667355221507918527351238886372474274366090950777072040030781180281929342841207674189287040920740410171213653547912131573993294321445228685030117439751973117220177374654137103550417798178945470730869741769729013300979798712554915889151688387311366414503048344734860496395038391051622894778546278001763546008856894380902396375944120050972178006845207912725351960198693540919643981566823363475901026959500814981448427185890707541880891798935954191601918889165421582128785827812842117862267337764782877746025301705371147258988011162955122051451597429714696990195700978636633654331677254508129771104152761961511540257433993995166877741593040233102246583219367371702987264006350523122287657138262253761852088820291310104242432518454427731748208414794570733351629161969071563772370343534978658272828457262760271346370232388192987429100853383284130071695544576871864507518505706710790456836923966926638972245824161020532044572365384462240651652844517918908398675027867546081013355218953825560566250700643077267011992532863298006140904600234628318264338934936253566758740964554658398733906577597519613574028851733235065119776938820216454782584201756400444115436023594383827473104210819257332621658857269425771429340416419101213466841289193732213894125168638782605802094414789325054075297454271997387811358953515684432035798449722159846717754441244255178783033623001105274392422422035724599089023982532324458622731212630291162790561618203296168168444687419633496094305953615051398099191021560354007140107260847375801695588279299739549676252732979602759389297174105482916102056166007849799891109008943273017255153424556340059913051231548151515719877863126961008877567427658034794584862723502499329518552055557899988823771956473983144593008055519831451161270165123991137443882027426813317890551636461728975193274036646375236673856136068732178380127950310889599156774047591035011909833923180794255081879235899787650003409211228995267965815223004391538367854605857654791200248962226808243130244987955825307548445998138068734358107487538433775184771061774220389589625802738766558008609779586649304785183743525348588606482799226025501963241904788991202977278085192032001278034543757485592773889029860200582879861979825797708305339279904202799797257604494264917750434286428182220799334311895785614960570546345748287233217119229009001929218868042651884113776512996880612490621803477812478339628947446003813805653867821951930726511972736221252440678780578183142115948405409517697064154846468076963960681062380603399410494214029573698931705343733928668176023633757737356683792787053620176858528958885067847482801588449330078893516883188884912934606382225649434382729557539500101396925708252451728175995750992335282895468479645392722266884776026642247479220744426946107399138145967022390331128238919714836726503283024342618449243681378201672946334949414599663770337952299303868425576339873118330779272325581409659288986769169569160805815201103913832825960803522538452371752658163961203219014834034450574122699049124811612549459800040706282617885868807122942486421363212632304140851596319315284758164597239060314342005461698096877348666447236213993064801724062142410432935986685502169411266222296815086857758101740715621758612602770218817985372818566586505572735626482119050098518535092132466000791569242825051603195128556005721014285560370096634900401051445512218738025059746042842942464373455429264351026767783801984821202914477941110072744214418944416957372336447353524637823879692898211917858175391608237255528915844128250387935974021293705518991340404921635447636884446072594996794752735786422525181834970623342798600715174957282011967737429171434576502190386530105846741900157365944489186365797702801893501049581446769248432544856156472041539320413997429217957906584609962650473807710827680477878994699858959300493576245981164210864887770007382067505797012105692070836081549452980463895926970402344224666758611698305261484967076357626882166538235962017164174910029211425934910236202674897934442560637680444751815795611505806463161811475045510359606931345710328085772303127906558463165066516225959736331028942791067639446911893016426090183052999044081503798444767534382944642068013871618384748896152838326029338854435192668319329879100247818952372854861922675018756526068010426299968919533713539856035002708741149961024439299239116593063344877728501233618692632524510754919878871946703123585349507795246093727505348718169814701295263676050289192221444524814646879332783501729607265837967381028187680551208922459386375813175108144876845838195091820774944938461628795111971529393791682536254182956776133388731746793679285904192611453444983733653611165257164703573046669474638765249057406683717324501493532091475338198831141147571862822249869178609936245655227885508306784160174717401519439376228115628098227407423187810086401279241596125665055854176641356246114686077960481940141878180678001530992522893663794955456412894107699176236043086135350412648303289730831149041806315017001953618593028493834322540459757082512845030461869722323128453167225138538238727779000851236244857483159003210920286016271855699001716418626764120891470538652516165662733899518408196641703922715368774222465230529505401245508871473240903720926919827550564511896434275864241488768834264812435339720995095747807994063351358643677236389992088679153995057194846062786469185505514366180553610836109328039230058967803220198017140289546153707059886716556616311083247865455203375074264482186729522306763960250317980848001578796053628159167151792238125924604726182689803681881007172318871869527483840714683137974021295868148633750196450076379296134746135364963348301907617896263521311837322872233172731777736112700159431096731431552919478110772760166929308519333224416279953904600405158723324262347920335808856596152825075141354149286438211123913677565120282449851614683584900304271128411530389463992705407666034100543019353096238751745747737116580255011690449371642819841735239343256654615376821782905688462118780620603228198529562298919400595418801845014701207665399003458198995917124633689482066721515721964618703693803847741054867594206574963154461724038268463160065525303869144217789100783667668929351651708399499917199294267180116270848982858092452083762294908066763527521895889151195524968396113800216483386427450520958764951046917368884983725108538473677782832432095961323544605798582637969396666721096918614517188827745816282417624065288886018732093766607494678654647055348834114946060069136070626049544345679117709931420986728229724593760493896924129444051750654396221899842984394420872676102906390660788435767381004761512482305370752524951955076082018975762770800166331854080934966133486346985156464469953761163910060515687205531428495607673382258379514287676739490942780563258348148306590954937849696454662534263399260658797324816087543459186424287635653630011521356097846899927999595091133631317596191284710799271184300954643828341822210396432274029152533929763439816956829463477138258674827836893688835057118580367406662079837309669938074112281652539242649042137316640141154724629547318406633930026439835077966273031712431190628686332009891315809049595658013375049801626077656049113167956627393718003364024923364192427996952186265854341112037620821467126433366011433413805468656465647284289984816313659527616135350167895194652034612326841648655638258865156707260969899943471549694010741193573134276993783893782564718571574978761497968389359213938884745478701716730717590613905589623808690313437066372285222729644806778030396218564718865410533203936154847602994928184284145861124289230105493565384821930434101750434851261326960038314487693825251054018890720986524198694013501638981956024364392018241844391129597623421747062223006683501839818990428855664454657293067085455068207085478060679144429971401730453328098323899215345821117902048040757640246661808516561493033768636135493808747077212894492348114855913998431823981972761780110917878997650255166527780441654593574252210676354677957556703199204186532900400895327506247926720215813751898103930779439364539777161292018124402867188119479255099301700573606605558840641156474743409490553136757002637957250090916365775007799862114147436012744725866073784424305328443277625431568893868322628966370655548241940805998601503572271000600367194269348098990304687742966658707401855691198537870218113889789111503739714845240959026119905296444398350253174426329465081131424097720050771569402375438832562945627106426408106590114828541114416185894498101086778546498825731377530338508840433979081846082449728646765662909245626742788122879401740330566879913235929874005799159242887642296760913170660193144811504816091367217744747661962674673985936165187281209375119820972001294107200611120986771432235798646754526422776287009048527288529435514390231160058331808800916751182379444706215263612905047229829226130444182754978638815260990692267529873860743618546760337705733890520793420822356025639197750896076026188937099048764457139908769592964188597146908855149695970605147752844358759882415268817079778443894705807548409992720674242213662696934864166366340512251791221820370731507595611186141690451680654569189776379139390356105141405396565959654469586067958366391603400458980775446479895517352202903253510398351363789880697486923279898476367694700662170498439109968654273892478440100967705301385506883264378369512589430396122559547056999373662713518158023640732664834503544205818235907460948040344786445491004886300457971950336644497225665144474905924223350824561120309665898321880442342201185078285945314897138574948655137257674884137626599462311279837628316240904484104753507024317113097771448454080792192551311869634506376652233981814589298913217697660435497339757425697822486983715471927852869465344100932573776896902408927384340727439106544522114527337804387820222267569327437209954676928243431606260997738362601223569008419661674337864001906311803384504179670644438314844876076601959925719296826426320967733959665881287536313961124751496813968523012283996080680864162055687652740561522871092740476993497615016862547822889950091101413921586132741223336038924747902214842747305299737097424030142906041568085587938834924386187249163377414832366530555952254509246086681642473372281716048331951236102024986340509539084401883777509697959237306374621803128096797346960220341443437559812726567563356880157784672479566139630728988592692681222077879820107101225573431979143782778281909167558728834974645051061419750997828953961116633736267917253012979956298567290949646364673711115134455305809254021399832815818044600720911775468803694234611345419195796170363037924701330082700153291710477043042259523920074507694649842030559215677886807639708109524405025983551127640169567474624139089883387122331257732416966058454746807573549364657666561859882929282718915192979615807277169570809276201466156212605770432676649535287477697530059851478687094579580916823940749945766428216377752958025909048021273384189375438067809530778900785252408410431938588299042928628933932477565711877423111343773988658931917158821080465104172417954375835959499649081557791480567105566094442973518314201989062367300664097560342741324827522784401852346484818891284228408860410029096367686743553733083059265399497759370842776512729368804147609635312478529140308677189477482440112012611472857414161908640239331394771315230783416321735654378431490949027081226695782818793442402573212078500924346153058449850012892393197341129418569311468344597872482929283941220686514219298046443344627939314181583197253924896160158626903875238878853051589794693654085934721489683206960452785965749383223231144763971369388987475843195341059339376516035157816785859924945544605367276363918792182685420711556958913498468762813259053077797588061714641592102804389892855845370286935356268731937602246386859458387133812281449289583293347115602020705479970618490140624346825599085111552377522726247129507145598381184029563533437432880663554900202748313248064425047763867323290045194117221701732009156869754784790851204741811955796035670984058843648897630968719161081874674170469844919610748582978478208367493778975940817674560031030703531568742722260164264181784044071423711411987816774596428206255131494021766549017431606942104275566600779720343619816344916148792606424808663812151774385725437187175637771649536735538946474386987068952773091200422513823959128421862494629825520922565289963251036327297225130511331538380276181390032147878363084331132275854630596071474291091858238034694810647567589027497327358725486335182794214819736372087613282812928826466891378019853188484669933402568197614035084998136070382534066906645326750311596034450057004878818098161807300211125122311795160932020170366737608469710753228320543562355355170113046005446959101283147552972604304613909373114648829606258147881454456302381086712903703678867684932662388200974678507935273126439235438848326124123027554169648817033344152164908119038759530486584992872926917197916522488906960651395947269715704940187644678029926229115672436339931095342842105132601834157967820589011195610750771767258520567237930122753804878575696643208459157715773370871114899510385122791838502381601451504691631192155638886268280705467126267121048725195155077171020820542279053575239084942296247634624188797183005266554015094616685727842544543764014768608403976304160374528629420763175805535137936934307921879399027053583097764210267993233804864448247102216264485537286287320682346617249247750520428001533988175239574574763026239392513494016295628017115772612870873461643325647370357842252931048783695464061981531268663158747774533186610012177368012193577441170633338233692143150624976168162907273787565714445213471299515597357377637003790905281498027028510246368542260152827935295845437240606275170826845497686929170539681342092047092675858690782661673012173302868926143516298933969614467535411008244812294063668012683591584232516391688143417496207198588451668592654826042756740637416867273344354641595914099058720232024646002511423148061177618355440590586436417605900268321397049031522694529631134609159380349278068291597501376917391461918551485511105866046329897421364821971614089592504263205524415208670026762953004847153962275262996057800923709395455885064543146278081925736514009086063739391821903629845406749413250644469878177544655452994954971701961869795769338262303725918913031795779033671535514328963480070937869640211592474191460872794201690301434848594500696029408558029077550606750355089897329810903320878869445226629285753739852405814651458978108879360826421374334172089606970832799067716427785375206781014686990460307748828209274549901451965781518052257882253966625608500137353165795254018348374848300795819451257939339829859511445402327947164406117741113211761569394754780826534491603255101367310883459004580948626822106985595917241034334586181940955521793290352967515194765136137756936894789632837892400365163612880992424664308980671333374933368933811739932339893401102045466213046703444409876061517059583595742717210042220191709964084090240432739460155649801663762844647701022955874996227988446374013856278757911244958847362240455259999708998028745490906716212726527348119469115304765645519905954119514569327983292747007238459348363961274547582842140269079506900553300132962449530103136448748627468332915970047240626956193520918675282824755985292430836634931072925484252765468253697202370836032281589910575531055275099425850547586131907579098673683723958260766565789688041786334454896988086928288128281695810983603270897863616609218508925548509354479331296400046328168137594868571445089380262925342012675921983483897105862622696675958409768771642366814036685017692555372985723343313123631237634219164883075343547227411820083437956913291539773293423741597999971641362305483229770513447930361135571727415398858368203761116573176860514624039698471324402606069003598209799026224147691760116431608409302748413797931822257779713857169842937881710520846148306370488679816403443218903099036626516767200900416301556430514994475962320908102018161119923088383552729220144960314999966063433280477046409621663494116015713269295455646580364533421694370425947265450928367196648767156238797404077283293833222505812346474088340274915961950502717742646226653764727155925873352452416783232163579413364773469248227665176592240501740213672858611860653589130902952148146556150441942645274845943383694689003756363584055555433367312009679020552538423102653362412830922999505756810129553793098984412836355480804689743453870781502575653059840738203576469615027309845398123400480485052526226672555032453053997506793319368799645299721786997444489484653052595838395206613621681885052970644858684186181927975396286860848847583344789391892251408765246796807426434778359223079502501077908671692413815435065008168484550480332518405813281537425373838691792731176058808937382829477704861345140927885899662628688368534332700983538694070380631212532949527243605130200436094289436364859298485752594698393424861747806942299520255437551564198083049173702606975011516134507035892940238129007616571989388906414553882213568151332660079116618312562848747376785136680051306319196115650024261317479672861087834666761806116070431445944108682367121363283937911246419917504071855490012027893385535654929161383685187301077772089286350105988739822474185324799915941717533558942494240552817824851678252956434966580271340472773796061306308959340863012947702195161261792629022995243461194782862040384454455160578207903343198313671575903653195511947547235551143786009576040088452321209801111155915918389071964423140209014429530330913056048421448330442356746865817130501778330581361647905859871572383633899138448491684171583957818007341538731172746876979016971381581422392905724644927902266492258797403715965864362206325915398856199287663936312299060554741459530944107574520033258271318847365428816682308099224666405635921656001466721174545569337752126394370612266153776952464521522695424215351356765805746008186990718684248693794365048170372808867836525979036586080310116084080753126522826046964445733828647293213222783395767746682593717154701854091532464498408570161916336961730917706837056565430519567186132051831920909602355388655306714799538510915917887952467039895655257959176460741725706147433626797162425974629543995615268731084990848082844432514427571535569795466192803988647815900996397174230298226458422998591207133549621378221150718740445658600912930108013895845438162424339105437783362146060138673703093599272494773875096719936993314054571564240078995251421309471652195061704319091798926530299438279089170144625902064029363250815055094489040045752542001037286817511979608981915266264420585995893244070941633231794726301237061280595898576845535051421462246208929030257037593282983094359294880048159125010219946624782173822902891741637193964292860357779314805337099208710206011768864261411770580636530146858372024523572603409052371030326063612659886538923194299891005916283201842989370172788390402173628112396433056146965426107252041221815577242630103526985806207517151931146808473382721393768691038006627321417617421591400946088384781826131523882386663601737689353970221929829036661854350105417130143948191503221097831005407925270206121187096806556290921146108852804302861288069631149108450321123770444229481906736620183771053931628758257692235332312409980318171265381687367554108020946872480002552752376623063068948897760565927679421367156593134090628307545408044481414723009242891640380633916757814725023580240059854675604942883664142081803007187247014253153806743100518794052795154646980720812906251668680585220321794307233339715978713926979778263594993639724298321118596895539016014301980079905379635186977263790011467064330254453970885684885490895386923906102934511676493237817124135140707981956476006217417691814679795346826896040605257302293492817339002602207927011416279124672864848294125200941740444098748159725322535457498566046215985028594807128497752474209981029308523083902468757377515464634658078196402208881370115684947289219360219300622935761709234686021654401305352676323898720047492859841771005453477542176021620119655098416304345946017389009600614052945705947428940484236733403600547190310917513526320066478759352547197787585320463708546885707314553353426088313962327449300036645387980731928753783398366996684967927968395031300319341072917788553889510233678197840140147433444263848082492306551895437676213125403384981598245405615244040306138736016753283283668870835133277301389220845555343964334355077009795657077217289104362544644167199907330827952480341377388352838831302753088507718747018325672874684002929470978205546072164985964804890527487145462198371072978675578628669568718904684203601852958135303883615847258471306728367344199888190086729466969395966505678391268759790087799065487417356620484394917394327890760940749886370482736085524216171556507281414893414472670489437390930692391952072393700551402644236498077327603213530031950874483600851575475362530755735376246754629635636044056685231908898413539128303679600944769840822785911394425279496345420220485162566136032804882943754312533415941868081623313575861386455596601809531259477917025892571830822856370130011299838650417550616036395062211341721545074683120546566947554695956098754774167533026919796628832852475085646866712949118401219624744958621580919205042908038170403181364480496944322461130657416598009770147485869024455836898610768826921705793909542514883206562826279837437771707378897359684870270728095351819455101011910351803359069962491279253124131230830235563742308995569931557207591698004355126598163576540583782996336647079358324433559707511879718191616201259220635265317877621037204928489276914074597813516939282459595025690203360200386975904005772094372256834098142484715937779297381447348540554258024565541697308325129488660766469969724587519124233549478843151216452527787004496308086723560048637094372566486789231098389488784060013348885208505986488547027445956286512360604448146102674823943518161657274991181808067673133365917895917455903859296431903995339314993292184230591205836208246614797828093886719952298377941258448355201363360331585484962571192442931098789206991080296352310788366898569023590047564218791055981568754981235073049120526198133794325014260849085666100101574499614566322767350375500900476958820929812566963500010810333585002859646693039523684065594468456813593739996696987198603038381262541754301530791518264208590541013347035837386126217538799060042225294021981544625497375705647155467494072989141078036781952683804609471498008664114384135249279654527044776253783246776822680486634270933264031334528732659157943352758877653725476979068032679259750400029752143782038841016260792839038018422829271427317535250987477123300231411081225515962535642542917092335224816353797180389037605239871922722830649933020890344339451937056567295516184348410342890359985690116030317414246845955340552405618099680885426557585209388904922376689858482351854277146108792974456593706977782030306643786403831960867257404526469432965042146200770575989785410929729664947231351486872290825250057679977756725206822994395472013552125331693263028573110601331754982083393926553483030057137733909663068696345945515642224173432857707915315071996055053744405487794586216171776159662592661008914019119216721672068765833322972821024033737485703238089378201172847495235770414546992479402810759346727963314692663831780348642037383347109258044598821885747444265057685554328622311736545611918081205814679873834837543735142604365528070858732320976613308158492187673293926153263820393719109207862797258313713239358013531302972629645822106119139843861071386504183057420897212664124006235702035086869256614392823756702685096865506403364448625527041023004616120228523841261195562567912580659651301858868700131689099083102491099793277993282423850574001015744017218586613201120641713281593078006511709562044976325102180496343733419768187037954341094440210223251876425364643353199118777143168771637781268075796098718795310043904530273501620696419997536931784757057886624932447925466883322189831130735199183968657355154151832358690093407028104094113011208067121629061205548908201290634183610836998225457550368040299786681005344803921933349009871763954444030361161372134296421503783437327461926599759103519151774176046252300563062043909443897754483722906921528969347410353024581407818857519189326951644205510226257229497635650047824397697610284267061266464813310283788052264131724510500869326612828311459577449674934649680538899497422389638891338777894009328258314648591986047309912165276444355609425914863244319145378297368779115942316113085411890500950590966416358994890724824590155161147696115545914219065657299964329802039152222069018231882059109466301121663872692265340829465282744176533672323803900807100178767926577420150639872568168391610854313855213297058804455353649053911432178588901238361429936408864406060147730003070905384022855940318801003281189458896912857886215429900228124913488490250717043171322902895001447980350010693058338870800183295437945435175584240893006440010327975859573755908873338611388720887331947530301314441584987477457423339946653192512927109594573422700791165651270133305262642184457762187507832285352256497644095567681223325554774983502716326286956793063513733490072119319940161244171377690194508223940374474784967781660250640988261452024469748600162261000293780436958240769978450709782303758381499620630991805303504197330380159089126964656531073214269299808380226885020078551891036394553896252590234351828889295253016746388189646481470318647352724473245301992927946559904297395458780141380439630431130235173808298143050712492401804782173847988629315633898031312959287762348813246774921762882113810864336641797331242423598108917633041530270740979721335986632432691074822745800026207197513793084173628340029559843479215867473261841210044115662014642839481449897687362963974763235010032631927271466746695896704395065015896167527474901441612721514750528806807763052159801218945265293396417372224094378747726585070303023292501431209360860140891935591501010184091131527706718394860494310423482954567303184619817334408350226004879781044244861273603275579381005651148732938428079126466486684486366719001310653167775372885485684901351012472487429484015942420759559731119961916680241368650178711217778901893070211019944859937916696596945837292411328653421165309518443120372835819133300411815810021096636285745085629944906407012364549672226856739315973658711659578655447082702760752997752413824257660514691532654316751776256944681279185512816302395950915694793891834953868722192345667904972307053586468796590795261850121097662566897980091646843179391219087408968986314006423615936760944770497168853665321265111820934225157714363514322226879232394902665001447442098402474179853159971724885258015400628412446979206696623366949958760050481124376730429453802934586281725255323125958172159400039367208132797299194414687596117050248079863883072397706275542002510989844479542098621177353390718159889957439169191103377463005959207133720851760646827511577806928312347186482648050024467842249874049108527690736101274581111993235015158007569122117070624203419617454990392557110787238251363482220409567548063512984824771844520988061290827443527078039534596213767221440869434885844300194972834962105000355479329797957768230286233149092122459502252771966959240288479219837939628833023480565353674947090942284112223014747126033485254229656207527545924021535920376382146349430829761070076733272618178921200181946234583180667718935244727482098556592363454321041196012176624712734988465457734041239413103895353277127814051841516884326959754528857590226530849288440266122264294757210912448676491775734713175592335390283868819578460433276791321567150223139923841578435113478022342237610821648165957527910119800211719629560800227050486417538549421988295140588787855945032631160611746487532017141924574336740802818368829569502771416334126195989013570500871909109714932128780706371383765087246830473080896826297337833273978695894476179601431488698361624108918230840157287052183731626454934611873549259774163538618930645563939381725130243110227232357573846988849146110206130634874829982823981247420420413722747683281099241970037812092945453309117138978878110655061226725031164354097616470007522399790165464236708586614603513587918698743002634051199309334862273738229868816897429412312929730395065685705901646023648007356300289698633232174674358490844508655971907623221338731415424953224920809452328780089156363252436216164723005325272115121015334550502695230956437136966584499380304626862321781176412331979551094314867201075571630578294253409874819653751100345417074029654211570185391235290246851231094891910779440574228405256980446053885185884780910967904695894678100951902229958547037883604390345812262243682023590325510896529991182038308853291894276566927188167049966916520544207934580829017186621121692753695675170851316460111736918144762153962168145510467752655608535009556204195071728136723721088960479570405800017954065248508998890611256680941403078883407244655023473511177246902972788020670127356550012168015461304128277898829439844600631250955827703887559423770559415033753305468422558085928081348742701151126304894888761614756375445050055109912883544094133983509690164710143564327697660440182909187407923331861882908948956391770481560710343749861699822461200616236448052140095236137331095445790349148374241503270490486451009458576483759635485709832018457924727357605052168671865826285358684550963032689346588765969445602384626138922381630437823244111834151699856584919255068536828778903818678842784621313394438366684578223043192310671625091746725333433609611880465505783901737389602840969891392544940209854549641278102580207182021587175605558268858145387338896521851507194944736609485644542270782964270664858799288419179033845330278408895020985989697103611038058250054403625468396583827455945914181123317116193205509216788137227819422456511817265138053873239743934855337745608602252972119725686041667786085027940201860311842264192318412840041577048413539914341445245648934050291880696876314707013662966891899121245873189233042318080938805290983330048983512973316568175716999606557919931612537761565039315621488838751837976506539542466020099547499985892762435181582029083883674508373982772690250224045066707044685391970516706634066672193057789348107041373292054785395035524667147612846417834679045339741839992582110967472108507517740740124951307304809033640116884733316010905065786634553467510389039622483612748020581687637699089626316009279234915650613161496732689762193339569397521232104336449499684541075022006585717418482970357054229569035176105031983431253158502723176540281569503908025930525620858976852578255762943018675772821701106958890682281601382928592383459929376446166428830309619120390456932597531242855689606905865242780436105433562903562055606066906228919986348625377101327769653341408576724781175918508727270519266225161938891062723588121727260656024693707089051469797430211319555066276187468501104564637413861049713923773284811927591974916734656764947772630004621393184468260158004489738249237536822503008686683750413657129374079028286701397744091040262414581212620168849131660484201592489478757712146562560361058609004923612802817123084605743431907527018862458261893437404370636877813397260973268308476773501871077772172002416166911941357865743697861155745130928656317408945533952779174871827103694865492382461134012814600761435833640580527955294818032282704766291138519372444248296685175087810115847407025050964281626290197949070039726035964080681363110336627780631824909396159402367992391323655424613177018310630907312574240380134825217707201869115706186629164300921604725658093586618496649397063376370387823415612126566786238327969997172298198501212197461204759137815735176791656542690497691151461977322165457104050462955953795044889798625886704514662232462887005588123442756182672343391554282212367789979732146904806911416872713679883333406196445564368578606938957672509260805185269688410764377388514710175937837297417350334971774717703579247154586853482119653577479213846426602490629450194822598403676509431721473541528918482469488420724008876774156471979990221047084584286739905462439395353443634775847230499184690640817542526479876609333437288615512095763037922143406230785393973469552764495939602028288228337591612153995301571968338966692770252601944639463702839938936869682593063812289326938285874832156186350908696914370232615419478181898583023822880025778425255958927952345801507031130522647405035461341534912536629937712213008394468903369223988223398673765229703512565798413274836650397569174563314829195777427298071365504357346769498576463837214890782716848980397826983541865378769376013326025201858841213118635736347371554037276210710284668059976428166194656184072050874934645134801043249114851017600602498062660975179945229855583215097683825081591728697600023746123577130324995978284418694891590537811537963858269087479372144840265648656590531793382648358053794173900539020299537435707053265864990992137823654426272223784594079157428118213096555617761195054679840346473300960809044105945694195634115117417097246420693385818727171802468150627431954931164704333770610623543555631685619131851091978628589715777147830316694339581591870388083101615634246216488969754884834590956999240029283656389792512720217659928875132513813778111303939612926453946184397612027638409226467971509147062926125587282256845233362751206247819047730138251924826124508295785164677709664779746598437298131685126238475395141068960916816306837430461699142009821021485503519948957439450621357234210454051539080847565888850457010291843132089773228763182937026816352645248924278549851839675966435540435698293092627061666701977368792993567102331053852999133316819813857154406144101704757941992236068513928750984507976444992055780025014640313349805973483738559811599002033210964134639770383801472931865673372469885080200390076377113070092928803568838322582811054023553918129743684596884661074160464552175076595700009945539444385052918021617536546133624719166709089371887457401410938707568085326367536292920480550324262571416678307729870668133221448877160055718106181147674841902383492358437171134462797781663020111100763021188964459807665017690653511583348281617667410796299553198881751494214043976268309887617974503532828555679547911544854364650051676206065788300605665395416576610316917286338435908448923284757102535033113705677553344550843687024524086103282452109579468368259130617064964633700983970959286122526191562179050605691516824576739418300928275600827337918114033165255483081132020563116589094400710644377929002154229884286367885904899827939171763735088023084498847818106261926825771452074733284590310925527203790210451186826304175867615504863679682867809058069928287454787228972539477527786528217386836917743504669256413950828969012197371707463368616031654408814985628956119260416355207094838279685742761345775531327069489590244263770226640679459945238182429670311333269030586090026061438432087180524508661707510711721889121973247776929342365265979458061376888634629901625364880573462067663261927590043942170756886712231104687822997876248292776593403870125791014881054523513321354888385008569882115161621965262487525141122647944381035293906423591977914446531286130121520136882623798609025553764075604522708401286146973862025272148401776774847414335810407314767739931389885431849459795587771917737583805771710848148879028237091195280254493181044632789001543990658710692004143413406946394145325847575560093721008077551815774074378405135202309192616417680425927324414602585297221592125230219060996765205228498932553006643120715855715141595147877446428781416889682496381232873295119244764876222039485206624448052363672957460668684027923577812498942366815610756718696456503791556582823348315442697739725911593037589729399121631960876960472796533292703289616248843495644215110209200604402389205824043057374382966867225014586566923120925984916323173894432237578744474452713165100582547032326543516436705830346124232385786537273086840595232823690346233119177834358915457360351042470043602572702114704443968268320078351919812611537360485492070081377850642064036506017040937539645195169486052607971449549560622027122275148657984660139577443848776937013963788914625505940885181287864911825174673667507046568561250963755083103572538029558365072803004813359811318632968147702077631295346042505089673036669742029130163120621264091091156143794874144796818050932101247462662800802631828574512471102198286474661570478821964823284349132069243528999024261806043878410294714383143591895909553062901978887906300532857526904900217717854456478073600652915239778086880927365287875602141847666373781697608780084768798834117762400037242874659026221919012247864288034483739673826589696603946431473247505400339439374573578790525811528019168953101500188219019470793738862178638391148022238912004210187723691141269627527106220967476356583909363196940856832190849912207053635449888086456026767178822386426502581674350426636994915526064162978262867897478601830097477095821525128639457841584041885919778866247547899320269662860572494105289271585228321336146289179282000462193877295309390791368259187459970103681233260970288313877452298174426998228446147288172324790914411390594594303680817664453095181727332524708039277806910399800064443920900042637381610090218991122297284899239783978155478271340154400890144724206279354889737251257859376519037924507297781984182864920865169807036412565490439286694324441237038792966990630018923459107795037419295930342820173231156153073027893562940330102754651738384160778968340167836600128287951440447774696310304281680505843708454732098932450850149619644200907806686296077443211626180161659072676045433202677678405295405133469220307821867562930416261664319052090516190919599261973995699069544701335365573651258699201736023539638275981583514829903983193772017066283314950751529109705412578178678958543973621650335738198662602986715658470641208771599044924091661730736915029673247486534735759631795924708695542043621137010664772070015700958193961994135225330064368905998605437950974919028895976256227745728777545443238707445529260871633779136834050421518275750913599787430241189756450559034967619085090650404813337522542382016684758987267629687388526481557984758093755551876174986637032295640541177077731740396661458164231738180112970946524791564711740596244205246308657034485359929922188201751490854708721561644820521709500981001103915021164435841110959703281583028988313425560118239709800918149515402584161354926280538845529513442011013416074539257606388917303101518092731581386847266721300518887773634544980787554535023950098558893628469615387283146833603356074486642391496395248123452746920463480113438746485436679481723074505928977098424518049827951846869292072765959634833246564989226773330481350676926760497053061682504770927002449500058784528264911342136299941129294870971672186077505298930494081806777315362157826402459469042646531164546351658124454978662579364686468126932320738651879227702100394840886959950243024136635666329243418499515333465990513558202870223906086356864355064723051816885104780165246375816952120095028928828580987010455684572813903766317848984721243602670337060322059614535291032311974739301041688873938859906639794808494212792958478122015790141324990384310731275926636154174234062111539596389818824538370395917870767453801083811790883634429243803953410200553258107632247952085387398114772776444310607327537872618123220198585810811555532751646715103084865628046760313218246823864273081139242445983032388708117105902673277693588756959907492502470667456645295995737266025846363125409098722487316235676964752249955163903241456103959135007518064002797754769817045922271367676655329514338947834059929702229463694544148701803264875371017064778453015321163820577399863119914818780241575698615555310240261269982119685915841645782345923719169686947681410269056264875474010645521379121816242648865265333091448355287729684909615243536877885914716921995363126670714516592053678160205783865211910975617381628714671820974575027867343078068753586407461816560226191166085899684308466862143914684974043367232021954019708094430364363243953012621766755925986869442520739818952191881286625952316457819076457246429876989980738465991353465440312310534605765393028396460083597227881463083201501838877637577958997410819149679644434607865070211316576870425909573733334919875656153142130610940196443580141319485853321805905625077020122548516935598182155065979852513301825779607616891887502447727607873547642538667863315387950709873170243176474047969134779647247269065236237056435530089342320106619475229322216361239750163528388797780329440539289744831357978160152385112837574385689526841811642208081713381035297066287197094397657322455796231120740062581614901627892081444558279451521083604129243177017296474550868410628483663475217173928009517662191521538283214548339702122880281526179891136938980341386462782640021543356255339671270908789943571355308807789258671411330129464190755247601383073187915233659212230087460330251937105355881176221981970758225870623023248952354548362396424299639941076646245728471080465017139900739351584182497199679147999027922733852838990027197114023285511663681573350692635500740686901693210177432901077128888868998530270417211132138425304962049632701525468387267441842376192315966288760704084410955326964964307593872717793571362564892877297748739046810140443683846838151657605943079488799212096146089385905186732852511350950729778025019508419203284891034493643645265948294313408778291528235265942878878844795875960995968125160190700833384070745395918282591213357539333174091775339353900251733549612274317701355108658809638424190775944212482229423046449998487020107063695586250679271502791648312367366754102971516910838551443532763940452117817784267298206022525075262097466464986226103305712934420028057377765829164738459099630914526065617475666508551314767534150470610127286111224768679091035417207217872430672468497761808830199027822904043791774240942446035337814095005816764996408866775750083373017044207925052188769556509758612993853270477978314701570885344718160236589882161068884663089041240011434495083696140105689849690820628627602252020000098671365041502876366855134823523260041619904142781657009130165389263708785579253882724520657254843199759825305944585904195776544712248791432138459123479895757064775992363797867670448623344536516023954409915368206774037294623472827203964845076099325622244009229124064128517066938347837625417012512924008538635349766191384698325618222411893974713354060826430283720062391540118078766926241348996295126194335100646132142921188517624844903330056415500891054164543474303712478541236292251405437176264272511252605274464981388683333457911426085329730473556435581446385977271980144762993262765556925604858672276711607491790183070997008303381939071511973027339444237971269840589033553488719717978187471433264309312830354271684002270805137783470478765205847711839018664877331462804910974143802345130926324593849581679717489637277397234286970099041092986706144834060350982270489870874699795646343488181044941560733429681464465062263883282486955304838369097776628484736338579717440152262166739005919439334911808292045038215814189638624003761958456785678528122897891971675004075712285815648773500470248147328503779182522195245854651488868361544313262976252069919101733847017243869031491308537038859686038680114686662969297267190855634872339374129203066621868282416595417473131015678241681502873609259080823453838578647965285010375465296502049277234671476972717351249661950323053576512496021756890619094654248116304125359870146215533963932686503260356947490349174345769040199940161908817923844812400142868572229490211695089560841476138508952746012788191610142924688820141957691217244235759631587552721965806742441129606483712039946606686454129384505518884346760232186578817177443197993182279529667509972563989138573616500129845064715743091045907094029729186648539713960381763274300752438431445150921865363416867317788561266387862644092332649633888349870337249918839089807704662339051669266370070139358000362561452010691096907642157349670913180325932438321342634434911355145835927169512864419066738292723392307838212240294492353279205420298272762400803961109102972496902897161096895304746630714025192977909469460917248986942765549889730087919179103858410442710544129948894218869153813485217268440953136968571684550480485927706250938160912256733155257943854983909507812904177134531945875874468282250776736474018910246087840779889774060435126437637830216633848215722103750895010324238630805585298192091922101231158299726022490177699989533508518152661542998144976256952038680985740881042089220144855262542200343881986406254374514284828146707198981974954866256821838381594790105682612975548296384446364556850325570601366833233052087379077541152124701008036154273406195580550164956553438113469686221309090880645700787300018982612171292077739735931349827690305042532055786687499452131125354300836744010826321901182551186147862591406738699217631461116800253935731366124783138969396724835326166561386356299823633489931236589580082261680953002958166874692056582369718164536675571224835273157942763582823033408295882188301137153004563302386922845464339398408589476622436556003498713289971424781665893325974558882148105304779865799368673945755576859436171108660220373717749287845135389423785858072368452885273197833534167018530187577519934717878600933702672913005979167628652935010282182800121400657267610540148659605378246755352982642978626885772364196104270786936899017656029240294258319676752581865764165319341177401515759293300924945694481611953019122332138113212995706278135897772687761560928013909605315694636082997732736917773056829524699038162177994875199738019417021019048511580286052649400044528472651992995624645243292717754223259812916066470090738031582808117244376459784948520417653810543330631902462282203513747094839683828460809127357487205613586407229833419246471908765629650266785524307503748566627755541013682903944543950568292622327021447725518532882528820794887168441255272452867463240604790842601975621187976889032093718658264621570081742653390941799686154468532005568921111951322157897182102761278464013234171026093760067897356854218568221334980069868297914438515631839886641616574415022556645074880816872075197912048321813361021319151071198921006842566814990221945870998717472607986872206757845235800304173323203258699542866146796629127960006976700689316811079423054232691479098146989028170768312234025982706590130489441889781416971300941629488194055815498773993693750320388045590512652643127051239161491891140285985621933046334016430878559625444715281844904400630904847486016493262765855337807793394091953034761555022073803855075386753716367001402453590672694254958228844057300220475726223971485715602503899838116583989451311785648695897637677621870195061852899027209834507860187845155945115977407794402108098561184421870045719960869838268894477591030456395069768015368619806970884520797843395244786013129747388310969478239103992166410922063942286324373498443091613049631574514017246000705477333122035733884217564129494440194196174521739364597939930214302934518140317706569129948666918339764911224535404720092226050107190808508251648397674608525539450860575122229559703165368116938416698472424002069210618630113621819784242184078149588222106805932176659793596773846908010793913121936308674933089442279327237487728463886781564764923293532030680100047502744328504815356332216282232554836041296557041976397474958265370487905644424168715974238131981271338419798246100271179586382411390981552274779866419400860283879653096976288794447892763975901012728824039198128317647152635008993765242817488044230838083076329944669488401645343473240703836563267730340640364785339140157391943764310522861187557145956173606491116374112851306918515922024841701755491438392962909344291750203115984444183514834266549491519913889596511569295094762130812721632663622719179930734753670206739419372214081093901260086488187845901368416024234201801055985001001682169613975118512493055445300955034754760298141905479317565519889038618276303023159402701899805314228432129992238246458237997989184898425098929563069063052226282019260410710279237018895339527572006874807609704697329092099283224613698338351715661814793559846238312402500163881836213185251837756368655665298065078141802510188329850031392908875641485614050380194493037379347260801317629005502022846914473304582941142196519546967184640937990803998231638446631875198464324491214987815740087925748482538373093567154176404208444272076670365136131356684763694003729132885681599190191974252331655442360243878279067098304063357828695686719618771363295824257166378327894522996976130562387607889710849110689964251211150770286944977855850436898434118295761881115158611546717444004104063376450850169548815251612634986125031470641276077913668031945056643933369413898904954362094142323845556325861997636529477755964166550608856445783643446690481156832927002771904642862437953418079652061893810368809480094123881815696079253057281548922819505880571490835202549959796343672500678528534625243218069198102497987885093855747604691290796185192836331786552592788549419476564777059595010363856272683699816524129392691878963408140068698702578296001788964204676330823712264423200383882486976056805911480705598873448117328824204238864175867202822532708942496815752335645703702788514618712033207697799801026885363153176699560922547365484262087465763654701430530947936486338709258377585818921704702890491926893617715273916024678657718404682917597431145384911788214272787057665677435463382092792133846273408717485869349723947709892526941354501054569833097440146437325574330913479159434917192798496534897953514614786454382106024240635538581983434733993385586183073474480070690049358130095955494377048138550068630174768573303409864138745865774598105280073181547954567549069025455844258954355753937154658488649406899786146333396923827592848143395382129219037664510507638737796353048233520575908285506681079672104090843626037658920254579544147474619668242492178766294618436175852623704636833920748730416154773097282558814926158803823429950874792324879673111377822472519297950511045496711359791351424124190957897511968656548078804266886542959784600345441132874954902304181877568189920827731190836689228131846119285398622459938417782109961467720140059897680444692318291161849418913619970524721079692660817831089908605135076446178607808753645893941931910652880994200639253266886780384982844272063918785966134712568804023677491768298112948408449438926251132454964012661473743197832654720485188545022286093659286433266709998125567756931662305741924174202982500991350248246817415380395884984266795881107180273621223703001412527376133866403794667837507708881533863477371314130714980106187081622825769488053137337469661970644255165615503419369494044626551285771837705032616847328235602489599355406168853215259010823304373419253962807832093742331411425679246005985362984932219091511244920690012689162048490351637289206856767237097854649147701880575901357222709321703995872474940847092790176284076842028675987935148290464672411965414121268389625579853854531147774712624697521500381579943242813568227428407241930291117891705763909661698817908473067391681541370411592070656158184255381991868094782352533130842721716933979227705069882415239921953018851034510270747131337530756139076192216773117895622464423774940751779430960005942892015648942043316241338691338972610239322155778980839651316469260318130073351122036717239116925903848717709000435719595448133499740514492173581887788060064914774498755267545168764543381366276377271891245537482747301473253006307758517544957541656726983481163778248767082656287116716535079176647232133460590070367478304833920627600227976966893250839521948456819660533435454339313435972526942216564913975012127552990292887159540723044570674889637691303261360126152745134423098534239220001561242940705822441858158321245616230980946395519407064247070087899321500855198358186749222117978739817815769015843293876895838863671133407592635470432403734791099557977868249387576870926931229286775164485805354542366660895084572633246294174915314586813027014750208720843887213609659718343930820207055499726806720161427357087248448914094441663235660911713036431345880843787837192461932748138057015393911026715032092479754551173778524370458166216726628622207926907337204694051862763512524561826018399807167368671988052922601109546745358901041832630633540799855428145839807588831046913444566993822603520929433949337784154551827054292134401434369767213673598021852117561636039896166070724035616481304198665010140872300076336969069444843889034245415779006677531503256366167098121828096328246293481274929113009568169116192626127077390324450309262816927661603590993180794453573814001325373214705154047391229191404998019214258523841679605943661156762482522199839232682179386292522767912257251999054226051300034910943233226548201774946785264438168941581755826118521681576163626268479301971021693725792495685785562808568052910175901579569142103701380313043832068740453193035401593342104731515988157182183590152106227999475109242321261078962109731834102298126399573045518645143496865751260968812903565819311483968821925900138565075075078191611013847807881153907922285544629120742876666088666182774888528706771356103073882664390243859785610653986978206548509561254109040278547112987782434950813058144681269955118684005806347859189620420680367282129581316612378250948979119525397499957985891962535336803579842202367729139194323633249464493010554518938486341202381683101255510923817187013870575938103080434435240958132022997976741760242817201302847216383285580658164768931310784642958986667814228752961901909513314873709380796677384374401228208749073759208870259917192854821413419562193114607217196579852596050696838103444266633066416039585845131830993971214515558797197096959970031918505805707147851795995781076743814286362946622880800211643237132259751377829311091906712711622882857034321831979851411335398209202821690707463313902826552457101309451563278164010505857064733966366153417253083567902818477505535559766180501568365176848838048689945487511003388734698522620402246090846262686330127903454017213673868034046343913058432360734017638002233255243974839456065135063254864018028029328449137371873148421865918897109775954380675469548087341081975487802072552186694866591330121688443936026362858838253723904081403740487403088171317735405557872454843803032653438527760482538358836581917163764115570492631705096680249146465041373743595288709662763475827674138031370312629237622541170511056636669176719943854685618666536942173394760412351120976594228128128437172669479091155886420836876080891241603381358208406790378380869801793121473074604747401273006061574656611878794514088686598605805744724744965777370119256762639741758379086482214701176402376383275307289688553220075702093987923867782989744572105488807871133676142908325015692202871988976041632089210390947158385294467990413717920257252360150079701444007730603256676113083236276465328246056914093476396210911117845880840797879357816623509092016945810766158936533132118739776244874363464363941389693993577206025622010372194864505668250006767602457354419769832462829192550348799958228167673699101639935913595693350335105380099458259348282907972520598611804787045303825207277616778957931384511719328470882683898448782932719409232751970103281457803110917349449813193933660746139370385698373369643421402216972692977773830776201054631677112109236937357091720764814273382314530868970334771934830783219521695727800087092083309740571862097183530540935071656590467636695091902369401316361883713567154399560869652789916226273188554100922576726271961428168586050121540344646708762299132294758037106067606774394509577141012124455796458043992760702048342958889561113981456886942482900983291347090044856476307396956388610022567948005963261818006940295847764593573441041135537578337670162031738309192905442295162206765135744744783868738842284403319032870593719087349643632030783554323679200887816049789017992582833957640881021738929926649134078902557081076156311901050670730289670706131080174259067914872629924964894036095095019111581299153126703541660011654736162297671590496365778319662832738370390505615645697908152010923016511918231570044084065981127520336072923666266755719767810184524868025891664592746748535189400233057471975343346496666978943140594572998081776829193230428477006425436629867121260532476957351000823269415308210512374120050610553682328352373413841921542587228902440239493267843227360249376260625298547749952768236824556654215268770442095009435675956890741389539398750024494580872910533927819882203444847024643075108419921739931049347107345542292348891669873030360958672786580536717236266251516046643309625909226565797156844321436585673862671034545585878057198411955057664939411303224238095875755812549481971789652069500083464298886357694695268026191414858354402876185739417303746875993222688459506359352128033838993536812040555863067744075027403970348942479776586530091990799076231728069998091956409483041355838327034700479671613333905765262193779796588982658142250587078647060898696324412218979513112457074317142598785502543801371333904007634930534303064544574447171611153538998139450256712594286259742900501155852035053706222769805212048385176235418398526362477504717356191848924038019204604927632116158573624611720198041804528674800708914506618456459112827997900935332653164676175316228811084678085063489290899368465313997034274488283902307627540159251405066888520223095067344424191825427821954783660796117625217775948784223000618906836429743117358420301781308343794623675736656088513441698216943831417466462525436527336886503989176572511451782531765294988619658149054064371706190488561010653109702316408269879946510875085871949678971288257448028369698870175888253309122890075503469424001917203212934428807267994694663247022892132265647466497155160705489859620607833417919805988028882490559549721689896440593644410951568693402869078866449354976964497776286390338574777021188238373424541557158918595688557936453723356065249990172259665595319263914398865120255800321517767092109073035104706578038139207833155824527256258135888355851992216574132735804924885254686452601357952976745325425946131515695871221764038425727629829802609858230551674223905928903615160917092912980798092653393696059708475108219739963081065638304084010396610597545026904024658104335461477883369180905324742200189133257118160867995637379766530837452595324894698705748034490687298322246488338823564880524918508763898460691310684762519788754599345933184388269214572062135883276678258498314265632390649691873078543259509233295050382492078925423163284962568897165800523401178834662834822810615636195729754359186626926534900785571747522849235023104511570670065727668608129238896306563017269613587976083958926758740522672042632219774501958830082384112339871194891948616448065933447732771268784676014942094435889172075863997093671343563457121907977107839235603448112554239465852468080493066835456200115183092631407360940139772143926184961009760513314453945706842035218820518886369766707903191195842904472470337055704718837398571980190091017235926616530488885245824602914302837744811171813186684313411034453797661561541489239580443801207213273073567119482014234053991539683540830503060062758520459861733290268156712819018279558484762645247511870309486723591307196792099502846980062885377503033900463138864069090600300933386773557228301582891772724738076636782938792138992728266329500361555351689550806864088822733690888367325347485543991032212237318074524607824018361659640791546198569519101519494011573534874761364787462458956312050871786787661046450464560961522250716092349178964224785771101691881834208083219269836476772682253711088852670679980972378081747724953059533069760639533019964448143741706065468447116223173743544214890843123465857943298370215518960364332010087441344784330897401987107368156503661840467434973974565721775534176347521134480766167727957028290153391047364587700511697952405732790141670641440043615422797608656644019960616407378958945683648966072020576961422786057660553407309115036999610632683614636053289123571782011027781833076506970404557941000114831918187992447844316973407730195363127904435275234840378926115286482912671592854409843398714133565712880916781103191821644988055767212853654757621331175459590861746559008518401572656841922002106208104505017512413704764191886722351546201967265940783069433337471143204100462980239753607923524919316050458751464045327347452298625534610003255532078712464988040710821436389286297675547220599918807147006994013225270743197531495795291596891721838324634468843981313103445585418453198631792077071978640217610219904849833719955405081835325766382459109078516525981368865086744784979368755636996439309046854023547103422962584226721128798888127760445622558230541928636235776949491552346754191725837935991241567663479328282547225660347180359602346032376736469878624079389644468308108952552451940824460662610937266881758881360946650706672824116489507318771179267524427232460837508582666720954976033013139054730852302874156917293091026917060174001343800050203920122932184814394566380387266605743111735688214632038615224203569643277053094022242932546831754634180299944659104111390871980672007533353901190061541738689736499235329490055017285376896682214994367010266849328617741488455829068443147628954134726020762071807212315134139921280581190735234406174365820431443707601485027544044079517836404919399714753988763567410737495483776582210486697651809016998679864331790363797485527948925998624048738445869290023672539537808487689199297464004926217842156493794989318126997916282434296778141958019251245292907406090486979518177261986728791474795862956909761917687277000641994843939499221568547731760956329010930096066248233802763066330403711460508409024438746374072351413812773249634853900914376982177871863762193403902178701382140307569397154974526081785731596767924225620183090840407736431572105912469221963937003008175423194523732240422347123440587321564313411436471708270294332727761111754922082959384855264908659894758034744934995200267382085717819402229007408168078339889345384034077405527977471832544833223079929488867361137326478773437992589353179189675278349301114619470905758914780889655446137267620090951616589611116357250665120743741894320569418659765631899024641498963770230876625095031625438419510434944424114714398217612750973212665843334773637933188604154392368097518449717854802245453929447769378542599596356824624037336690636579013229296064880475996602679297312640249550756543039538389295144103887084701451188154889038735026822016800001858065223594156077850084251810899835977541943904624995846154643618600725807138487774297638471887959472180719618191997040526263282916876393500403599231951006614757844700061989812248891664869481109925724052766272582004959940570816968313555440349576220361576478851574520333238587165725158859528964326819598987649961502364844852113048772815483603617444963891020826772230117112079283797102204892729540308767876907603749382994724162458845075612892829536718960727879421824144979405119358222133961683304753836162100919105280993412581207976423804993246223009611210542722485422823545030263820989510808923208042102090229296315921423934972566820501158656670497377143758424954040938551085790313686464018855435120068580816075713345581262499106547343588045685851980042163469282096885723964977373403615912835107622441084881735669608496531440743539681387709144859841863098117785589018499099734001680268502707568480157096276013537999518964921392067833770753694351130148763015623485047645232482898340579827092516979105971875345957370690847296742101411253585480393628239149406195944854258873546773406062029948033801741453344763873649786999510259775281354601745773897821267723293875907700270704044343761246231883016203083450303518570779405220959414478337847404345073118617113441586016348856574407906468041126916021952003713216115773762683650428225215642735720118063993810487223465583952866510698083750892117057291966505006948223985307232938422199973748398977595535917404127428321665020053442767375731442679075853195855600049816450215761352041899559976232864524302653176074380733982407745149644417547474245751569881655356934602775367161723273777314426386334654189153154267718737572905706628083862745153916781533751694511729695268955831177364733084375568184286450631884602446340269142464329692832257477456909039332397791083176627389534646227176842612869537658672456581054825101873630253863145083450596447416080591493932367081965555318264576049981904623487763275202679112124725650225873083385441502933775281661731730738844339134156384705657446042710678913509972470564384794434739392213803268526071203256387146438386621027834838716433414770734209209997322336580842026745635234431801494893910017638160109511190945222471155443698716817353523963911142420733371154876091348042178633129979802170271923705930204726795420907704823944544705566087857035097457663061450208708526469033657101456687063976622230943735738010321864639773430885657237931772956465805736120675088593869629064956727966070280337066301547930448266211969780992988667027898966761497868628393307576999309917440948231467201356172553423449947521079847386002000669773659049054877085612843369443345188338815803346515880837870699604887418910015343671799808634507352148596556415476975405752691086740182322097324090441053806951547528449366053787011112446473996610562784526809393458965341749349813366725835391673903732482759045573925036272943944103628528926528651772042492606923917556709727706794552009171728528525078769087922096169985041014517797432503576049675130579480396262400842379882062175436826318778857319328583917261970522329216235460519833981140395487677088915388895904381035019501079582414281760288950811308619227578572153938542422075163349085086193960973042749544284787155939977158757321838227460547294647427137241028513347080627890846636789633342875448701626224689684576700497242717661614092807032740395312763624213351872558190265053869722569411615041061791143700830827895424726493653434918404494413196224582123532482013048185950346392711343586730141734370885493051997526058835277981452532555227489603678924203309414107728766311596838273438785989111002401041743737502363937879675820993829890119054828354124858699357405115278447006424425057543558786546163249430567400496025154858401131597494881206530378666246869960338270546243558741432617529583862494386771196372479851388285125073137384550919304764029142600683674208084678396540564745057144391251385535920714651033358750507626348645090138900197234487805042960667554519811365680180883726742484777031307581375924414085358100235551168459291030047530283042406141439034954639467961675298950459897053431140678668877181707758146040772066483600680388426007237930674836211841817297168126231040209539641344067234343253331929794768170697835229453771653622632193532934922275598610786652696402692588304008011156887938393689813344186130356864428567090918474981261933963791306082475679676654406607793253197307704024825138917774218542074863887063758675762780137444770974752635261383128369332957558531860032241702459918752986104186591214761383832293396301346547952740121006156100361862344875676380005611991905341223382493835887953241236786840009065773029178464090618308621932007008978665925871682877147601150604832695231466425557909513993127536971370066913219286479101959200429496442305682027338422465274750226820723979249741825685208559594334846435894069995999304770371385122149675598463503420553518394285929578139392356238664427038678600088230479569769688374130036851982202511588687743173346347416927007619831531380208422422002910750329950756910292026967160458580781527007603289008538607205444826179101605961399687756721104152584643281465188439419193624381916026226578274668747415395009323153899784508760507747581671506623046814637003872155046744202638735539796655622822669602747797091113572298936877563011387970022943829965562596974322509315415649999201875044501567673064717524822698841642970525440053639881875246571949916484944931518610633610578317128564409939250213140680173462447370130242109029752775785369337111946094064953840212053043039685349685932468663189011754323752952745855428546899545350661028980172052487656810279184126715062386863489055488760936717398768464075044016157743601057353659062331448531383649344867594302936142833390391273219824062112261119099246029163355952125195260726627693227095457453654256134507994163860310195058690687676621438495557766926887090984400052836836001811084574733143712923666545586162548077717095944613357076021259343486169676899307820674826795502683800821407569257600803280291353005677027108318571719414811233846344468924165268393264180090309476546941547890800324901236505028040808520681337468682212192099347641672597241700914875642632889501079091339498150773338084621674378931121727852244164153592265350642401138248043459042984849982161344260885927353715381207123187524978362853199486476953057577740077982488441258814151011210090819803804311518910399979718272475953113819179256099362664498730345520264650275132177753545839942016251631767779719777114711578549709953103980389420352821139631153605518797416829852539206220785225281290569589727443733799322262299158690386466505342493846459502673836881603554827913238881269862353682256304413881861190146691914424796446492752018128426976270847634696342933253948642263544037292828139644776786895348950207983528814218139511078419646309140391102015422120640396424261636953159853593531283306166807218127767344708328762541318905186193441417997399791352939744659186919415004587959116986665409318292443727614720456208945705213533719378205060531289226162972536271803688218700227264999443098945201826133161173743993741077577738642430159373033764139823985183866461415730893280083323814445912901267622693048498511642702545767013756385658001944514976896970026094670213407630964974809697905485538670682123905511802255328586124417819140628251234076331389196493442399240781745409728860917682373755311390823376337815370655973013201861964029188044778161951193914606774959963776731365069842972404117155286194414184468416329294088051583985840421920347915049197098432018296611339078241436510697262016920336062990482808165252480733686493372496512639096604257310714491604652480419927656807654606443314213172857229214149887988461968074846631667286481049993233183274740395111408929446006912934520966790927877921604026003228279834509302335291175372918837790637324998186855605436552234878901107276135656125946857268115316588380388981700734312075333532676614125566379095964820853241407272872729390238024404940218181279812196268141268322785442740539305092554313236353040871340338918384987158823610401687907855927731278460790350422876851114790217116327558428002679750673817753482045592517692721484736435985142735589896886399380555689570140822593767672459803135775100584796851134067080560182894317974263547670747818652130325013797511162718993485484368378832483131808955946768870790058639958540032574764630662421768283769799003528384066247139696795418697374849507237613563366639426755220502123309880183789015257479012767360337065491776810226420706257051112692089947982562471900347941702832742326954608747041949154459637464932077621486936755260130194176793087573982824813034220178390330733220845772763534639727422357539288916140101216994675084643348401977570291397574165372073619223740487947449677801319877495617475023564418704554134688376727110801420482585031196140828408454825677978777311432591306296677905251449054247993461745664974377648966809220431141202137152126481390489371781415771156130901769571328213996572704237406788845669415612514782264902285730008678794413189375855765099462440263471321709279604416096674229472385035612730668036981595159732551221084551784291327756134729410015937108018208228219307930168085606581664045366273707485983061563329520322853119121567334759116543231321301654575008485780289218292891189775378129209006272077372154316133074518352009965368736728561966345961521025576658996974981639372385846301634952926598034776917670607642405966559788646698595052249260172635279707604055438143808067653437358641193591378869225921438524343998351460106148453347327820329163144335018085238266044492805275462458472360685588296154096868686249899092492258029400528407220784660854838486502712657986765423783973330039448671917138103300136225850232925257642477923287233647842441881158100034791185183976851993583720242805384947774869238487995700341278748282912658692715641550412275732822160238521480144567778054466976440114471011672027263009672502989487462607441485382661425113898058991578609332943446373952006674621619061668009504917786781018739959303447179500023165548754550038750577052143343446425520681405655906663885656442417773701903830552022253288889803329010291138043445049716791470164323759592736814417521194506420702907580674175354882243148501912378097068481258225387316411126369976729143423105552955653912151151664123826236413607743158186929625152478906680984145077406020812916721193989731024385821552367133949180764504219184307353911143677699922621524790909075549507235016166996312421918970363525115182792976327957274610411328544826188198435039914690388953649868998098589436236964171061092861383307657180353501832173985403483237691625606209362226080934775807470266613837574771852323033413276220736868731575711723324474208233301745965614290219051841763444120528600613948382458240818033527629065942045844599433636529229357313087694273573104018226500197829206992753127870367806835768868111018679260773108814638868003954282737731999617979022790218291644016631558036941120058345784316636729983179209604812330818970689890985537366086174027111611949260783480680739033150606242310268956389206378789631571093967063133712527404538498645482803481813886085593389046319313124402204143557118385282055253851913970566517190982588227420917038772271283630262555310068225392055266025663769780922560718537071456879999841204010283018966638786351722561181996550148713028614614388030600686192843663123617125687208033486943652659765161586734008403838255757717553786103086909289990958709782536953264791461091226501065175107975462247732176029350165397936057490446301356366726116985534956781361258355424642007806819413825202750045475712222347143516222610409050592115956497734272473046321956036731613207473081157218907289664135824622300503906975870582166872359965309456314069597159280264944814292721346750694464585449662797618284524968515743544479696571470032602044008713707643719390844148954071342552086289215094914207205438954419031893874061041210115463885800368986641437860120549937955466541689099219160205353128830136768750088056527749262380086151752700007835243503324456091974271549593366654398706795578386615492815733018407416284461250989814465100823317417025382262802083559560087757389351589354645743080917627837787163302054471539289863526737699213553373849824637220115441313663929516857615722954803069854755714992215858326819213752741169365019558339010094777503172251438042236596964823962678345255440593995141079139162720163494309509253921352929399301159665836760827905607095559344042311250724031658480370754061302987483404799079743331238516502577095969690504611756654179613259170465338476412742257898175288842693665841966161889003873483391356201345286687880215574287491845884140968009875761383490836751200681611276797038467402846487827546718559248964785300925992752193647073075414437402012264107834109546485963630679965002439129740302428821713901265764627269832029996228413156880422862579109843188370661895893073577233326497427369894664450394592641540904446996329659355831989395194767100376101830808926964317017357255238012268318712224534443281503156018214263374444552136324953848023510927773428818610368068334958987448456171001399553060548828444110302888666312667510854896290988938412527919027954400755707154180606994219694477582724413041943481334354765483788545617306667484924622228343117580406597637146372451000831154536166863973035971573166254966761144394362784960187537217840900165846826824949562052518388348001480457963100944096513214320686243001188243939519669276803349936423287970944188950245133838458964606416444496538252199975924383150532372536568918006683313067433539051168954667132570838423336511554243158063442620060742992097885833682835008899363333452077849482057253254122330703186378668131007444997178472502100783706979639764047968469730707270268531726689352135146895836781704662411102736571690821277793821897375893462171521370530372354698761825089944748070422974410936708746456488460380214712052027633976328477641523943265124822181378172945964253755377154357361064531677215692744137313265302824187655275851351256527057069008961006985649157967540697959835597032239779863768164194248032992296668297211867059512296906130119575921330396186362347588834743522311945642317518582764273300022862193354854849562851702586945498393776117852669783040619053216096048410916140097572945629948843934185616794500833376599352543185511985689552223184361522310674397140587163416006928042933113694593006121183510412742640004963283385843589883898763857630893420496638815678112619028052162000916614789312189913306241389951427811884455452090848103674479980844935111771074063522259759925576811401779391154974088227700621257794860869311010906308136774384248613181539199780986086386800443274418822860226480256372090618780232068093013190834968683293353985486298685244773842551578177996353250028325926234626648258058106043417474859259760270959815567837248565523385534290634001523780330965626640008872033919660819939859399099771506484649093379309193512997385363340427048977887460462182853330305189319824641377902765251612391027427629721036700038253932621136116294142616686508920430549678140438611807513738120740242364021490109827227661147335940080271869822611451259990364767226230848108438342398273658857330837671212905022922325878420467281850449101520930803592685000682836625793594186380045703816197041523109111389420959976713196449419833000443325217873867531979671738395685158779443454177161754927377022695043144978648149363097407604091909295110036127665073026294471655136689990565742144023441225725101422175679569837545448447723665553839148527806677089183100520760697242762232455912008167361330925165815521525110795188765303895889797947395357387126395306054852629928586287612267707871802266994263853720910811388202434380424466094649159112441742448025962783570648679401346760024537093076644597216962756655407535164724649383144805673893745450096196923443070414981152706862425815988271720629106071304072689103337364785052517520533566706628116893623495620501647377203477008573320114243172802227428494370471902268621894275870370827413850773665854801594713020798121464810336543614096823618598151936871488817821909493599343511426589405707751007625481551217026221772289357869507057358126196976072644669188787323327608391304541951548163379596615357653707133215093703805341955452658573386666797201138303410193351453879496560752247747693610815490910419092780374045567616703061197144213475454023724010467867616924393485293333108739024244815776890590217192192283000912717873109226497397997998046447623833299395408235589127850043632886713457765921555863797981111180844294861236863833349605389966583476009816814422678429009041822469401544369068836756575891716150080989235408886766600725450808267061271030993927165990258101629495895272210324145713076096061889116207960873561464304822741516938586366621984519448658086100993807781358266259724927435135545107468563847624705914342134360014552708550541028731357122966044125795197301124996763186235243582407034542760655125870462858415316148271950993775907633794509139266202448773945386979959672663418866094807524842515654072727074272329898913895668355926000842031516916280885678379162180591765336166961816062869167139659215242106752105678335422555942109816354172929900391766737983492715707669504740703784409703257575458852158728574802020843168996951037308292830442991733091960480868621781158489598318733972392458563970019156716786160938638897068899813534698017362813445001329189117079168877322552643206108177237246485980590796747397752306566328835427497523884275267773662466514334473493123052734459699518205527511069703139417678040634061324097549687711825432510771603526376499719877480501739654080199555697436322903119659729219285255337552777536391118770290090795064591581971545585015339084944380985437249872617209440725368592455205613900682915305906705454397588446690606057050326602264486060682322051040630514285220974120292611531624701406053003838973531575592006116815140147609106666740638220079830533398332727582426110376482574554415049664245901689124465570738346956794076917364750274376975328249250442933885203088483188379167429939156845033412152570909754693289799917277381540935580345469360534183235043521531772617384874017345865349483485470134426482424895778000952296963006423745611878871811502796960907899848314965488733347852665996623127318162962086169273114030153897653175274496854672372765520354482243715833760874364678932976965827412086707101158354207870081787492136680923344154113429272279962010852612864057727064197848976551492582861274767789229977943642329864299157787740540164724976926935814163327341295006558223456324633193859350002079652029207596342247533979025142528185323769008506106658451827304637059761989142554553989872242071405704448547266839190067268220075269508900701165957259750464403891442195381720876112772767860425766010012543018324861163050836014905619300527583094892344205294085403925450984336510402136447489679043174716899851492612689282232281717407593264174133727603069332454838749921145191042363023032448824827402272904136888393687520010067868225184762251829444979621427792110992875245195230734674967786797687313696349044856381205597627140860647641292845109369344984240843992592083743891590091972113303756870273047578193852749712636920996837678200489481292701135376578147377870724229730309851418820495795785789298957985877535725511880587860739392990514813382965888585502534000417124101946034934232111466825095787458656698068363326773254879940871286827061438559194060039359642673591108064284575807989171045919552358694576336018795998414028628942979256941569283601361992447788285513008046546234867743511200265677904398287159722014817346162431331665613855633213276924767122677556106873314592913669471168495633648682558841534871812529744873676443044507856124551930531272113813838297483100429098748769259400270068415682423390736052595332693341444951390236570434983687768403468223998094306560911571390579961960134321015494276667877252411591044046090095673424940874678823206059622552877052121275513195825776904625442388581353065874610635593373674365632419384602415904406461485184241940701687615439043592549007519883664916188648401363935114612537545013042670823355134407165160577924557846021413863526744423167424521892893301933113175196828681248095679058067797745706579560478817913091055760360370684684964962743112858792182283958802766417143068540564303215711123604433315331912413787420203767205802976670038579043808485771885467686889663336175687389872857534293950171842760020253333399204533871672712574480833445904225689977832662364567489827110989440554843875835732194958234046295994198549866783402365337366533520968419707775981877026806635951744992501123386662195542300862019760651953691095388008242466999931081400647831747573492333375564519602760732887439234170105831021365073097158770497755781061587476482069654177339843527286045788927330523923274758710554161033037885683443901144986585535321613697375409503672821876046234201731920450856288255401350865243978107339339392742566086600944535353430871794886080225689181578593393682634010062132429184686394351402439176446366464936462948807916512857215948482219836627669436438193034520838757155424520636027389180328920256904228026981279777632330593494225239016405119126727761909547485237008566829249867795500459567930961534077190443978076437297122929386634692924630867426674722831756029963520877804358243007173084122679596640722394475641521361680521541330262133564009235885773913668159505540669434106750412839999150810897257016936672969696879121087868998334959859850345412161804688658635326777567828692588573629522183407511099221534521180437324691861719077860735101952443897497129199371129811167345984130533874560482680478593943528073857032673725495126182003555272259894378381697989911076069084585948930623411812315212436903456426104950006646751974146955553663549362763752328529815773744757324964084905133601602601007868228301107632448010488040577160654515651873453016509363149111900835179597187082271143755752745860027718226489429182938629450464007029759519796871568000219770452811621274674244674904782441873082591037769189446122176404871458295703234077237270378174710287818356654766802972424311331195222663182668365896189562182888280846247368911892162835548681786914916793920682850044302724597870208415595796683541470131529846265243613133546260670843323417512501789886390628903753320037872176932385365312259368612139247978208274092821159196178044892166882901114372172806284758270927423904452757954791546111577269766976975647723497171388161285255511494353688592449039405082266289262242089861278191051244264254327698910926489677691031984906928353071731434034987857254395911700993854910905293353910595300808490652281893283345533344841265779507987400861229382715078208772842113097400161104768112731076084831011333928199905354519827504701340042448534838799886567910277802371072094164853781239038892301507514926571683584264310765686822641863017131846958622990635294713973729645704116487846537312540460291222947063343152641013330108066246326074547940089962577973762479275092783442471588592343719047149136189949955551296463262830785725646769055188279770118605338583245501218885003475548308128772036901636689233676148701491188316901661053143235151834887916212378854990023789719223493900201912198768974968551852412898130746419454023387967891367185284116932544654264432804322846844400595937773256456944824398640567571562945257077850662129785352294660462004132522887557931759068058431403417151134293187285694397179278164881689859735401817617853388512962245148839755237259962121610568549869812642252741378612397105949000297221987708793030011548985945517259031691486772720410595057735230691182475974869601312205140579014369060399623472453900297916972420744145777319495102777332290302422204733703894065809411913659559510590388367449185801277569203586499471574921255084597479430532999177966716115626254124606768420316855112274423259454791114049213182115658839208058350914484614818753080878075785797066545922909796843820218768522956269671590926856201070578907694406458164328473018535133617616725670419409843647374060872042817654212160594434760977122718964850107728424306537035671577529179945747265653989944803499231908805104027652219939868450572667138086901372948279776538472316738434269869702492722721128696682204190815180176570553223029195779221719912406825197011582724131047335188293179426073277377672881903135795586893093445425664611041842780272295331106208574883527982260467705166235419171586508038106635884616042148141844309159400135986063217713150642600026862515678150900231681760271860806020143526362290472968740002869483225660513908578786199497172075751816283205757264901873412005129861818648190202365443945590457774838696417957979331907264997707396568419536427934436324179986717805863030351599045836030696626792793334268181941845570615480747928893679938048578311120117293923904685962339311405102861701982024843058348536107660968759401964861092231269809133465730806588146423190326082441616989281074470018476638691526472261161463725185416773605154243348073221853973299440643244169430643318974715258124640219937218690498104700885018125192413569572106983203728080612176301303261838481038397930565557873704322129647009968331330402766612542256307837526361336779183079969798302116816302034361559831776108738337344476786638849894043445743572849270733290030001795126728557579208127871227062948600009043073452833243675261315350255127688488370865133122391421464167370502498946011424562436468676568167227801283351697464579197824504509147273308421393716158116603116380731300766799918666393113392741565621414911053084086177448390869776456057366229412979966317812627042222165118053741471378108144822834317352999302079391463662666932668949744785040295345183471976608127455532036377763459417201874604520166264179433377617840834339319298786408680399392724237133204486136523463075124495492668916759674447110692802810455873889351180857284139752657221829404982923877705794166701278873626662000046713605778701980531309287737965868498474383746772978907638946697111583563736769761361791962155584390477165539243588070987475183107155696110227190480828008364766270092206789123245314326336227608148781022817188837124873718827946962615073404688576163946234627592658541364326309398172286875266375102283885949688579695734748735907859157003711503410609103681720434181206296353018136556551811832902909867521203547639651641660657580819156259695806879913681942669331153883249678046380813954090158297967178169533767930853970436156094550642289529337671919196370399133494746272165787717117705380330476819680870888420829769434217922882516623978369310639989859001586602993015317552239365578524947256431744901081562613937361751886140757521336846891733857694522764525051924974271033736853492364515817428718544852469722428837460354806427381895471634687767146378364102069390279173915333755424927168370817746376988452919405808668311716820499939764328725913926756278845028359148401577405508689924940933939118411115180599987107671446575481906848562896871371320807467918501859495415549978738975721695657305909492282104921915983763950765416306427134735009842221538797772098343674522143994361213865027939216617851182184807694440762669239777271682485317206087837456614473563211863159907472116888972067401079603914003496644855628790655601823689031047614226828778448823216414076583175517132908545371772373618680958068331470990997771833727619616688067698385202466359351540615150653710533887011936107632257111108474331529944059239976509891254529456522198495445414130889491230214383624961504766774020525418500847056547467130926937425330082554152484402463243286544583460887984715459812412475906279506914374079084092722760333922895563899998366077823885179235092396943997653790392530745904934519421138917635106620670739469284427516010832074374791307019052127154832247951174094236061158058105478839786035376864361631663653802452604090953295493852827636876973628019018406589995056109395985853147932195869585724841355961221163381368119251659996940645586220775726273696298388970283726794296112860422227108668501968081345761893587561722201481819165276702976945124308689066894333405699821900710989172534386746979396089982812717302412805554953527513537091566523909678436122203442960240394940831898586009628640390865342639109876482373871228748388891210728332275426729679851315787622255654471751511955826775233493505224921851147909780126466031618739747052300303896366159649031294047929697637771141598940010829543173094930277551343212716601316785471635094327270128124740535894002920224332323852675264669404048590692833324459641917903719229468918592579708116108102360664787497392658748891605645089600093131098998428475814037942867417636367240210989893329536405530977657665675917957188538434693498204507644629353666859132097111120386226626612535759226157207188014285587715217367616816198002412323551591311850914030613807373625904898715684928990708248131051404063042098718300958489871217142096579524726370010028062240978241898886923125976594529662202133493047213565800512579543422634955909514054436911285199965148206067522433229914785093522675461588237276003886599151056821746352981626337915284050429357057111205814643030674148995321034772837970271728949625573047437529170651951677170319279172406598888925667259484632073603602242048238396164653168940767590493019486023199641527491838873897353779373141450921101700346375767950590309648275031850412376430395758017852416178828999350368758129177814435014686373003071739121689680190324801766041789499681607292268590433107860078969694885996173337898885309334863185458175602415306033022090349704735690467302820467608732714882797049555640890690313856343794409931393567127508506307351528778889345414343970462375898603539204746664179943551613433450462504326682551717101673103040704451508249607270057205191930811466772802182792488841801042573237958716706242058969086992748966188237504493757938432571343266329087657673514674929290873943996155065158035128392241602264751074944721732402473904687647673897564511106628424203056839611019619518770136571253096032834917919700142975317848829698045761034901433728775815288504905539951399111651738727189290939461312111550476057836434574803346713282462885719156095370472527957680664667688413621512982341853439101714581288635723246287515822091139475615131682431128624429383325840230085037487694491965343527690990840665378047167010709233668014610394290805521197949395538714360541162431295015724969464379439965574191941909845180640050767975276435648039415413804387496434768262763478415054636515802235165737515631089279016345282057105001484745575871537334048168525902408044256816967967690323794311762609628655629604395488028253428635622143464271114891643368580330610575631424191983452901449539307181075661083475413543981377093590419604203478771701479927815675981594400541107736705365375600080177485970516613465814700668328789765938029229479912439812634743342854547252532215900639918891362449306836761067157047550522357070312200792960314560698075583526553549146102114961524046650944898935486669474924731711453030234636813531388202132862234402755400697170964007000033496702992900406429165254846916711525193270839079915891237780429207542944887853116710850137415112410859928088186811480986996997740723641391107108339676352153509783273775462855899690783176231129614987525470837913704041722946344071667484264053088490807521740530090613314024811966555540875194016634842984677482958644592233331558302291990758237448020073360630010996233760545625724976911937328737978156519940593985401782912505243627680867559243619946631071673359340321459411872872692793009750842239869469596612657125214111467874312158058129560035630002853749741791669895358805881864191549628879582867391504726908371923353113879236757408553987224220972707300092929808792758582861731788043354132538434176037824733658024018952269043940442130185068130642822241800853472418759690520924820431169400888959235623588745439886520482043726207341108416922756641665120026479637796192824452003681650179898600151221439147203809040580405559636495017868682073977181734878803592166338864006539671052465768140754400540373568706207247811945435451584366629637434428115618627884660773234264117617499823387263618234524748443940234962839059860176674343322505005272290177538910365837104050229136461229963834249034381148108942969955597705831528256792365277135464951991379398630614489416051337110796966038732366550990686283550057146808020181103451627905658314843518319763706472120766765199923924138637797574571272366685625178779510450159115494700914742558829562678536410678284692803584462740935189445757096732227360803705890160976465909910592902726627991360000275668390107176723650462082933303268493549414952492847202506448345787788424453289294228763610064873001533430901934187700318625827955821615884358112670054850016550136624256436178800875050723848301558044142543669882103896846848307715905884227197113879652806720410100534257449620812768112964668677292510739512167167755114109933974891531421468516378168847440129775348013820374641727391705755171202201691446775784832026675848211801250029490752632023832895215194050523088581095985499369678989571313305263362114638824770171645256760235728213604523993077988385736228575580989186694804063969937408335701386342732173178036406281046595093849712227727632434223155107969703609041265746625710844060618266898035877513626623332745318969406816834327466391111904331626927706219580962391790563475722482988273032196793518569673511066966038060136070526363127957059517121941934772096011489534301778111291456310240928630267103944821435073833826097254479097386402671406629335956848012928235235532535060359589694518231052747522286967516834872842605265983865721033895583818126165912703183176151153085512543988920252989573733673861583797371008495266477911649694892169591542812601420424677622209152524819553012399765561293289700996106750440241150622948505387936755762164191917319639721129938340208175692873295977529699489031642350230155620765939473946896534418349590346228259291031365255576663817623159083100926980705782033812952183945048485512764394837930976600585596051503115135250386105380773562706514665131771111762485583747535253903435407091371984393186153296291634261379797405739897156446598290095692279772523869210472114483965448555015247565704568525758835453144245937819221137663451821625944313517936703643825827251140164550703931270202649461074507362645515742129589539192979951663346778821544335584620801971044553703890296880086507936206651412260696315698850571866564034369204329735796010027672078755827331518660505025656778407044905770249268284126777481964720422402198426898029429794650134466594234346553801126337773100042128919765898914000552662932400537987943189041825214506817277724652439417329676855656561810278890162161334264342611835111081147562241449055637929036253655722735074069483952632632821062295572848437894979404482522937776441952218155033190662745996622128557061747420682603608002882605146665499212219061112731387555798411322321732912233911591545230946196377591869692525824006128014572160325495655193103502033394494375078609026009984273069381685661298203101552942729602831732437126253198283882038113925902013863575646032326358632844789281134648522076950918539549616383117281203987980298903869917845821171132806035545977052927643754031590514369352687298024040300036190930285809276716391971631638392274804526328897084808554215935847129309944668976111121488136993981374233113050358621654921707652293223281261173509183820989968237271804442184216385052741581452945411841727521837561074553613846039886010713161600324089055412119201043216002690579878062487619086037903721387136056406973164565221556597271469757665712983547516905407061297905876009366489922463079274174929808274993625800043100175392732481210205855164966675737569063095234582269694016853693901588188902935420293915002762550472201929136951811452020329389294144189960251441522639736332682538625889647321879104120002361568182169352834635726420059626586035725501588106189049664149441864814163968778429328124215011580822028895833392848408790329893741940435850088652165134165156357129747923013186104015373279384574961136941502447120157684545594554624180330701459257033013774655638802361722630768554548456136047732302061939838428360477538671880617719865749312670353401320094624048421657562398070356408196983233994794160146863540085546435406029716186447592430999669536318435888095930187659578231458185343044032649123073558870291848500080624555218152038976920642895985901125567019337509516555525820343409776589230027100081696685724735855285057354516185570898526626205935914685319382050595872466841067011053314564677023627840352361495604118867918915087588400118081029204898740690231339715409061065197728118260694242859360908600536728548888416768980306840943683352071422593201641866706441663700739299221564129940722558682817691896734948706182268150388593824049498017933736075685547085626191279227205710867179695911072686906844596136419779466801276204489014189874463204226981142637401957055611712545014186154082307055177951677311775424006578072177203407184763559313660555438346318178618133459475506606217960875199035176428849501470264006466672067634781989576658060985724314517087178915167981966883998924463242499273430757035826711066054839881337390865664965054136619606109830328742578127973431800507322360844601377180638039710645969628239068958333503011250605471342754463820299156027003440027118282394813213354243455327220869527676812202218751161364686595675331726055278561274697251776025975698033929576608339018098432915181743028319659563788061378360223433789141677662746525584159184148531172300013028993671623522573324036142260308396455745750229003961976175324743859382743239864457972793712446131274997256200487767298636231943577053553319567266820288435819290799631969753781763313962488288631639182060809777498121037837182351314256052896866070628205747679026388228879482459900070401737763262789860389465101697317727291034826830839769428968926252971847614933867836058376923245509523849622234265597338453841688312095779884643431382936520159285990191681940267275251543494253538473866019818831549998864568479490916514616013784384482185226025157053498637267399565658519141924277124534317645197962537226036139191291894066292939082420684767084110881678111904389952189180852614174578739154856511199512467715772754376744869036832421772495034973362323364906723709194462137127200225908672431815188923787797211555500705519726613990081921200082317250983428081049126298615858478425767717550922578181914936158897499510681837046753304344559620320161208318219887514224131641862618542602323208559398294326727067072306994184429037535009594657508080071212309817627500563751438914686802805415792559942649897597761191116260341011785478946839104001819989911783082610241782580483763735707369520705176063508294862926943268472202769496532119664188744956611011291611553530361202535276463429081320221901800171108315115493118174204475548352448668873405617391569471006436638229216701150384094625652185664264056094962546162876967910094894250630712178281047911508363383143996714908709617090928231623453371404035363570519336621733719525764865428023592132025737050525840924879461818149312388241404959385553020253356546421481877313241161080711593464400622942467921592662713286829498203360981935745151204078490152247298472641586023090517913362484111152092606375487099634125608177160499722145159927716877082817242834056186020983447719840177448906146699307443196414681986747079007554139852169121328176329951537714676954609812226826689163179251223376348711420955884866793743452861130378286131520050345970440455313382232547371979697168091523552995031345714738474643077818729445328992479934494161554593038009989978357729490367551951988956866112097040519560076579274054340725001896488389067540829717487558988019999020784848724418727773288206938804094833253279400172439138714285370511253419704895411419001665186187850810974682806861890152431166375146525180841056319934920837385256607623095399404209133875301865034365000710816308571455867332692318355011663269053620918188512960380260810519291587483878792259053113930019875570926044565631157599129956643581951557681402847772304471567462216120098917974035394820694503147408004444664908449102705526480868501819691446094143498078131716843239974166101339742871778473470440001992966426601342573596915779322470519881909708777569997468750174115636493850122386319716725623561180147529348669533452206097287890323667240675555452246623571067208377429173339743173643721873253438566781050360185004072866779079336760562756885332967346141017169486700965435641961735816445822956188496407632970332529873088072130838802574842807516896768811412890023882844662816136379518721188226050171703875886523485803941570734427174275170323322920858716854756043340390261770221701102246975159461459236912886418080639204507290372767611926216271918970739041170283661765454321748919219472822418628617037961955292191938405023223158978744296954290019736125318477376811165847041714604955917314061220320536986414028656602043697399051601984400010630770972042390776722090327760303588387491815635216454516230353930366737975700409914054609584455871892225058448578146360042575273588775194418396113659473794531945026332475264515941676424375295638441790938426948186821274280533862088298229282123758748312155555480530773991501971424056929856530295866652812565337486077773895198997226427544156452988608184477251545109261192344605191329719260900557502241473991119517118778406734032676895411355706046897321456971211233962145633542494400901652911814216387008651905066079995386676641450122385148182487963927798428771218339750967426931233484573239770844146395220506239556806861510785065644432863072270083969160079161322703950679853427251553690695495834292099845349788857202921393687280332880912095352313320186383810093125689480968608487699978337211007894207698511938635375041943412765789339011061496433503317606111437710674867695399249574677804452591512208244361556461010907189658042142952465489084114271104158695497672927731732066874418789909350418227813396663512688476651669471863776913434806533021003443412031701076394357440422992861736321002056285829758670943043181852912353104410455362451886251119254974479148250941067636202846853279272848385404723925413552849611489347247130258453535456999547531880083276316801816461068631279450095791261996596941227598174821297255192589476034636845645235516181258592827849102767044552633447448951552866701010893478671413500252252280622628256828960475679720517619509037716002864924478604111239279737083675625104482463165876455414890948172434201445082197566076587862653878525728365699829061236261956089224857579720374026730113685181198495955565592103234729098004212740315141879596388556912367527599326126540112854037151326352178106605461235187743062274974499671431406428097206444728371827809607473340367075531872489486324256764249281950596838796414359297075258311997110953424402469729337228345219344355121839797128056894216199241328267767286277658528282197100640654041735476775136973957633427596068988392024049853590225790064418645401100951771766462540080003528244530564652531672484657908555513720546287894812296505687769046319741203611939553618630633491138654536238668915489918120867615364734520142535050871110551619413248609568856053293030875689822137122771509834456049434481489708884620666672001001409496264934308332646153096214606859737417907415542368538666155595865484674586588684370169086342928057798288500382100180437559400843919206112867625877417107100361836109387567044132018401645110600171216359500478271902423551015537559793877231046739069700181098370850086949589722812110577971660944808334278768932607730330258696000156275653746584684084956173879672796550371127873167276501684751561530411410297739434262603515727195135756086388631730331239643422772440220656529229220671004431220601305612210609706410940438017685020216368344691037017990268250449867420381571855502148964589651210332898650415716129189723253268327869225601594502098124504980015963479593476916687437762413047830468370613970845963660127033142042559134820259603291385000951180626128715050308349335041284535183989956189468637746405471458828679842545199866730414214926322328217262930537475105334534872732034681310734295418519128046283294299700513239112392257660086071342137245329003932753880696165184597245305892644987164724573848126359247075937627347745034304390046210134872100135481335636657957447783250477898459078806596103444062445097569531858363905780115836951190452248090522369229378665127661593589767481092613221384469662377742878734555136580519851090139659640580589554349811835191236932267806223644156631429194220256218173324942952742408749467411073541032254586760865182045511339331853169713928329656882312899623176402555629111467056165150219176057491949325487076283726999950663457340210409747083821779439431000515246482289189998181756138273410252104706958985736053249488758449879770756854803879294001603752449411719711597812810777897002220432971797496479993985970880278863150221005567462605986432496446373794491835337461882685714765588691373584026788947353250429310876852470152307091728568339306509692181350172724164122350919797057867212783053159611070088587484703797466245354758473170321307093982709394433640154675739301110177941471875908880823139670253988856662932602208236669503873036968223320489499237322488509310332433529597444101871734847995091544567417707731431562008412892944449635929922497345726973774079307253482226337723795724165744052422591300365795018717141111572004435626635231610469142342573706560236073363912110484900710938136366537026499935265486376723132470518199843058433470857856981675011890227199638030268030846317033108551709634078408562974712723871121423117562926879335703363178319768397261077326593615853455488650862651434112556210789672888321561689660739768158335300544137517308848980513080651042491567826361569719386525393360307995570636020124230548415693743833341978182840494383636502320446298499441603882779073665856151972915287925076814205210002902302596129226887180048931924461022382215495594267973338550069377236825130164514818486802521998831916157987125550952347019877215168553682551370364131898677005768800637418959542872864948036902853443090480700202345689196182713894807525737937975945743257323726812128370606693610361184884890475315100032718936247446524357845835365561648839540294543655086648111490963016722480074850648439702207159735423595018159936523260556452654953423634685804773792388563738303791773480307876568759587721543736143030290959343481446205406012799312176418315302765361248405805010185158857422887039147688223646631675715379184524302290089421445296512738988779391918438586828131372056381086490781865615001898267402968171441380419368513312246119469907979710714370723549769882240616901229306831770578032601388129306103871441627230451053127193393193843402387279593542825278018935381679604681088589196058763541870671537557236750938209085910427159440955247865051817613680383234878533180346930847279962170092978227091036419094109631677687628646460949894772122493920687060486526483305495946041650601148456793109756806952488512861491427832137246929652940345926926334339915124379905693553015319195534504476414115922519151050909750266078804626014114867324556280032679478581788422485109476945121710050445821060576980711037667077052292066653678756952200576997315862322046878991790525281415275090593451133769530130535728570139543264997767379572999921604500833529737138626121437360195805943283442598512811580425521348429511794676320424586972185246632160209976894201333033223322092917321069225862902626334032708699948748771777330133692274644882582728509781205000930969763475668524272436777007407823061362184741716799402285243428074198288397414954357057855359408234625235822982141994139575029393958818859425764555734309242641461495656591761432247617429831801154971278842678680807979148276197925167106512677249789943649145473349584730607458254137927755861902178615064981547161739551872011662380690926754853409485772081500953575958726446955607298473316807615562349904776892558831168569631871399588637552171680057256300658432457792295147779274941000151630984645146490827312496666807103278439888097327707818283327309599498974503074806655074965968365575973705701681331085355728770220057560019236941173031883034511183876482844847386257235390494173778784605766829514726783708575363638335658486731309523333305861587639035461994796497094842657056212306068008465762434485073581077053387212553556991533223981691054601511086513015796282490293091194887275823868006171463373856882834828853441405414620432497767074075874322339459335477124305598975234615738147337285020098465099261427369306632318227967515910964059500198513155012577323731466517468871486098497809569518654715385526142831243960387785043980317014521132117475170567257351605695483062285291243461494150749028308237080724243887558510206165655824285874533050948362699000691687381863876383862337447357218038042181287086238566944410837311349591613551493995757555633930601224562225400412215570851836342872345883507929998136570520735509213177417252810194119482861120997652420062087355885547516524433078487093084315291192528029118087194078534921137778719657678928588162404333528417545670895791344158047207031567871737745233847278817123383744231581723330434316046721580397835092134381038189250538039385499176885020942913077555574284890939522823471310983128694816251236085630265692611574192859736682464411723884863876452334747924862186061676933944679416649483108165607384065333843667874627241856678268535910161403942441527754954479028676724338527288735727336815191563524189479640834919232126465859455647836513437444125568605241108836734049896319283040503252882704021575820562414471739586706076083689657095929033410450085962329449575977787483709551276925224012379403241903010184188827924729480059006663662944087125550465591529486619108068981321644010384471151160919901505044441887119839257855290753989365490515784258850439490843407878901270615177574770859064097897685726233438260532454755802807579067448427114371808324891190431878983266688278008051263877392439951949787120846975966931467863002452789740921611425826746124938860644807493018568909998699006077568417454311038794901826174775985277982967974761409272074397013577160583711286638674523736546870126219537857961323136463754018567119843319304535032723053084262516337667521085978196798221632860531736668226197553365040673058507970185717670919173351320463226729871254784209619258256539558366689029551551897409734613037117284645414236094296744374003983335307007505459625403448347532715787284792182202974415576274668950956211990344076173989212027820790711084345620882748570402706927017420258767972438641398245828880475330202821585164271967101127557083357283475368973891798895390782846620775910513310506973150562532322677577218523316702555673792638641811648679398254511420255166883014787608246596408165732425313746563476782385366779539355394744295386911180220187654587090571321365379729220633500829325732979620402622655552570999062447842879520619636502763585014672934754136369320744742001926345466593778812553252524367543257628486313783802281902176196301012977765292959838835793202605324468319740212233014240098941189390479339693894088009401369739283882114703606793124846968562990090611498486641072928465500597174424683377899809893510776816940262435743232743030714115079860498788254286685504892610557129446759230040627036227722064487524429702711813147432822070805907672521623089474672878612611601870111423585772931916914029605058418319116459679845492284088261676923454275180138589840558537660536321188153265021586787715419004072614833772324493429040196191043212893734764027420653734673615716667291166684264043068008654026276264055370154928448047394298910521452900136093519899184523172411330531002190344092798816989939567596573702135780531165326084633850397725923825213084344224281977209451302232337181554248273684759862891794223838860810146945968823466659933761299799479310010360518611911115772639492598529198312807727468939927549481351266987253614805596450089652742234670881847663404909695006414049519537090501313358878031499014394635302706195576436940777985539770423754888499749696415770458235695785945731153522266931261456461436757596240178338131963521130861889367735515673719520133445421719108603200249742209592512464426142822708020438472729863166658475849417445581492500144859852887278598422405968016565932860418119450641500796747592876331774770849179628671581943955775310520932636510066539931900481684589068977253538628033948789671657421752562610450629792326261212123679775055765965113967595850415846298821590431612898320238953381784696575118949479063570976969682815831841287465485010374957619537648625352794299191276376420474249741375386709480028018724243832302744389256392748650112470445283753729842912987222817729684616550487289950237223964263653287584833658260117202584483184969859994004446633541721688545962067016877240560478697325859972974986301341248739092688955674819950242967884045360985552199666156462053932980367761828797918845585724398132811632187230614931319524783682507968896698054509538228756537101775198984313149914760589511468962959581928444722433398476565412073902044941277353540498878183728730211508992807022739859837683175565571537367843004323583617992783084108672006001824494957250021828058748604958734541837103019808304542034294230101796366398052895435172987943960551761591106674447943682800928342157848228546385598709320569975742708305752359576128680851307732774946117989490251405199933155689595437638926657801202913268190466333701353557678864633681198937424701101269173182489631809746286796676897462641022701297100963553549226043977867671981584978139823680848105517461787402629797908252361328430948449305816236619807838483786383166583380984923056493597404085536941316496472026029596365150647089942473036430634271539159892556902754584340036773395578741056509991276970425890692007622172961355961938879974062159228857538357781025502523147316853990680451089315609589475677989138873447567663315232869900132821356530425820175432051284211618294718952018759830749319781166691810548558548564546905673547505527101365100327246557672876091056900227466688939526665621083023260809642893591552831818693264233778392768620622957849043878661426333237295837312159004613226218814086329869849286939843147779853592276638388178241784591974730811957218022237013011050312400507837701416705524513241170603795364601668798536634321832467153402530159148326921353577916325974231323525013921772129864260875727484948446852247846470918673491060472033911593694202740840840248004184570595846467740809773323487115556087211653002377604111427773050712482964702910037973038398910875601731434872745926750000184548455584300580679629950015539234766726922758060723127625070201029674261630347698142286292279922171802893338869091619697571597774406232939792062740907847016542672363541480378613675292488262215958060667270325942544522751480708539854162306195454460689465587319447024496283225626332442390953386626363290709446542973951178151387523669625763502549360614287453048319479774837579413604185362150272884041571406339839143194633011366727873817612847741953404121245681837047329685705114670474579053807716452223712570573149643659641615279249327687220835336599701828072891323299466623197047767253419964217742671837948006607598183156034433878647015861395630509283110759837072389115630517011002595297156857214276989503009602376069766840656443022637914469370266427246569271990898389012325049512014389558303229601041031531218298578105625052118410698090456959887023959335067725836738953940435957722902058565176775900672121558937589011566587774916794169870304191076210677689559599544287877845500200306611789598783266621227066204746000259212467773012593832454985560339514230963418631675574176969356718807162781057752670941219253450233046363605886775863220608667571222109097187437454074423083660439352971092066747966885620642692962485828073464868654585971797733967662171829525949344074859794386634862342516579064537835323677227899222582564468986369805752744664323702479479024551064733705229814733242404122335290288439708070424224631756432601395025433928239400404802216882010745533242045747650492370957285772751133300002974613073400237877994431195422892781695786432710419793325070761162738978224425614250907536547967801512303019151402356415039111674228552767773091196391720189371519262735668804664400577507970417209369260654316294346656683031729637716492855080253497745286117071474169688218014358521101716958145589631691794613088377744476935432303770199797717110964237339526926040317076415826863103622671453901673655408883387700153165871400522723393532076359867675170272477664786178761149631632455881751335267116568130230348843309781286830337395406677699610345158236077953628636811609132256645051492188838396849983556076689889165013054068065275217684055384040589911829325889297870901319697164447421662567604455423479320827768198186887548510945476831086405860441219182437269119470396521389657503038950708374708310077037397547940572807922426220559905309010059944591381888818792264119353145318876795032752644667819516735585318667905904742062376475854548359085310917740064630061013693136845738493621124003173123953577536459907752628932835331722164494246472674775687152922032102873128005911057824166064906887416952840536270552959261792280681978720535056670166250756562594737980753567350218652840305941013593583580350300924568270108423972304523087754109663624852566574943119481616049618478253380576749477167499845992643410874027473299163895576725057203592032696294130893663767316986215601475657185288221064134637823485329143262303517985766060195485554706785782365442651590247345658317568266620473575381876772271977601566363270809290360904426178915907124188334930910502593038513191457493445769995002863525699369925860530526406067420976488229636130634604427891113072147737013787147047359975210729759388612618749350266065851588541655738822413039047427750039177040208328486401191677075149918779727452402474577475561713136573394253024270531779499865874669396654626557600130297332691533115761290149868012487332290143338214970488772032869650385735234843941328298837025364345033159068138197977756685229321811544888640061268069729932965139475561469287687286210297776710576053884975829665929973011934403184117007276316103330469583686897764449227223869878795168832935241679087255776731217428169208058317411506728188317533093081774089496175327300775876516421171748320051090231060362785200157519893504354863495719536569491948898826344387527223979057771560916422001429962189460029186474780614273569476818869638708569955838925439568524130162120408169261524473151513385598465945357625115462837336888039019422136266824769090453528178395681933397213791839830556810240621444247919100524960519505988055939284762037474287572641082716494488821175079212639813670271676510623390934879319462931670045521822780928597974520264615808459469003911426367590506630922559452015895435143712810497809211898038279911418689358748507697009702024650449343810929536821463089129907130169819764049357999978236028102097947786053013883284148576576963647502571851045585966731357442277599249414585936607498334293644718256506199479800611351618862461463427107857753116557014190673190702069884454905585932112024937507683076164384355454405105346875063688542342142733346395355342280417239392428385701315121669911183628543638088636141711759782058776984221185145255608045726653455606164429738822612308284610708461756079832512529335343958309229909999498251573253061929889348948734855666494524747083800630305630040531708230850817139604277240745252413011991177642974086591199134504283837947693667702575048374876654012207706777480939585396524588647262766344936592159607537787540616551322506390177034487399421325334703037736941418889544499705752782646726365437393012367597224633304009118514865542726520884992352874013030156082991907475450608664506546392359895130464939234643901221195979805897782217021537714681966661414913277383652333984054339612161368620317802433663646197503720160765653035838520718406272250487899296792674991692192200655523954338306273512754265284467616859143183280689583183263541432145986444111108747794415434522289270204581796824141054251079731481807847256787219444565561669427092546360644683398068425647525544686517325268447414132094207822594984567405271557928691789612503377966341804575160297518045854533730433549752605876817452182739523470573684187344029435886322699263103227732698337290503187231999025634721866635625999999718663406795185292545784590762193563281218741363030889124154787783697746701504338653475314486224543344050316608853280088206146098928791452579061668525710243350517246747418884950069443516200126792991951711152106702245084893038380341534527357567658628007762109627780709958693487297332321007423578503227006579859724560326905398063227604244872672985345216455667032753402501480349112750027131945163896025667625685227923362414683384592917133528925755843965404501540888210998335867162137033940497632903710551981911778749830833077972136711118818223171961351252084457861328693758347176315805161111713608979252812894985854834164184631206776636723101016318592345382447627840723008247944635769688127288276189443234125144587578434882034592929634990095519167238437902206478533477517330124215594784273144280619666573500852127204732695252076574399342769174326860863826609740224082026006387180511313550558849275285937152374246267601930530005421830225754181968571594620076918487203961283215248322696595473796375747695658669981956339928135020088212423278205173378796939584303451741134470016192232377266557690445031600293079166580037430259474087864241870749870724288069825434197777389560508952087345411187243734830253763429983826104033397878841450667747663634809240685995505557990004380157337887391151274749828118370654631502408747576135884474396866897146491464495869454949845268704725082913030909189687384814216819861220019845514631431976196447399584831464845768985952465790041348860183761339405991036010955141560701719416651977230204770318233000417517660256462942123619232291491718709425662472866698836222891875062701088441790064224694354282280535344844871364659753904526572719453758804044628704372771738920390803462791005403218907194034066010506366745696838744687912476379306304672384698950789722047675143218081066520832623768952383979456876216772898285646428402057382144810801237855196202378688330386319955717946649825840467032393420953341914485984180850001660268300720894174227964913230340068387619507013219082557791486839064643134417116124058518024310120075748739423846118915353683006209699319758182767304724311865358333997643977569032487037782815311640662957890749904882824332394728690174663613490791856771606882219883671280988514090062193355007313004311173142564793780794234828866448309111277977645838339114756664587114927202564276873193335322831417441039223425678761722372872092350545479789092607661556728953755742728939865754786680426477169761307904919761280403852874770120916936733772492436979617475700691578702296922784600347356462171095563471482548932324823484491359636340346736141157750663755746928512599705580180412837266228724612056873483520811137100336179378667617843354829382542201899734935572815090873109937476330098144422532735987461497384783451512985738203522660062956240615439036650307688387239624069941251591102075231952391685676298967501751828921487946728248631699512401135892553444932010884850907348848560381781083959877160622301168699999305587242253951636139202520686166619166358741824082123485569115415346877387460736803001289745744441195146035925055368901724271949708551477386112737748998097608794579470779134056830083385053630393565143035864890080095196547438281860329918575490792190368771441874446830127820361858610805604111888979658547466605111172279146746760546401674946141226254627460199718046417251596560071881051721923375356792394466116483332532273850499468134478509461241854587995580614382126749342460159042281446253142532446031866740050224456749312554061571022196090666966090406385722055560523369379213503236385205231424051150176107327107633854998021893656950814641286725515839280081815011876694569275080295461977679081661428388085351625151131864160413056272476732615951118819274222063733709639866072978102171553794611142358915985359347122316293705774878414580824547751339826022407916128461589152303759296803081875158636437784204404875440288190577519079967057086536756703057033113148322850879982815909095115713342330186326896746836463706656871624735782700107929229230272892137398989260434176879496132296175760065248275658481542914234740555253713064943562788826211949665817275453288667848814112612315748892492871165109282637443187815017876661167221020958526369243771628698170575455619123364620722262787143365231972075729091095073928656517401346279748675076748096075571248730495085937359615032773100449271895510252628965117682305267376301113878656816719407108115373864845980722108786939790124117340975818147052659838920838113824879727629624767220402279713398682315035510262568014979730962405261193759196654085419176645506729240420867307538978540604493571292628768586346084088672379262839410414283812209429928683315612923531442217691811846910067346092137250368904789431853931974634724992670409248475824822125017178593866460775959937988823485491096359385807237397135504311696323965365266896181650740992935284246127645566203680980339762021383077771462144450268775264289150011507767149973917605659932954425141211086374168457331412011512020795113301564034394514329194127539222507545744058227056820188931980883080600867293927867781738380150104293158812864807248365311657739550589082523973987699098216342983424827600985619939394777292746031121131906459164311406499548525904315639612909452150377459177202311187333980401513312741823311081336540210597859528143087440502165977504762072367273525634551914542158839999549447010937152851619906656356144103005841797674289351646907447061349429312008396263594331443183780893123806955578040218867609409571719597881483860440957207288374226863527768349009289611455854183653646381929043250334128302577401771421887870169251860519040252034638876967405489535567630311417062710352051306677450779003213273522499883853711270434305347766287900273048882708304371476040408293861719872616815451965937146151069625097868966202500115553639293933071096613117372570473142655857970247897253165085970197578245614009859874727073318956740534161922263701095063759491186054002732309597280694729501906649147821433721003431114973798959334597668435269767012481409194263205040981995075060478570482724819123031770009055882864746002333197510953448248542176393979005146479281847614481480909558513232329608659622367984399273442830257395442756899789807003443083382262305521010755183061017429499530557286530278380081113177570379289004507264755910988543279565466390187635664715291698522504159939122314371220343420526207298733262158562274389876844834701749661325418860806330557236395668706543459489589891246057052489160242425617733912298901516995027599753072276137396930360144138524684860604105874601037424607309800231316056903041134625222232746645975990354239451720638636596035270656930692892741248619607198336979368818103608908864168738105042790067336782357601127311809064988222170220398292644667736984514896010230832437584640977014454553990553073530628751152600894066538082287359532343863049462832764208883512534139182749953106230734057053225056609956505738546820386369355794639997644414734374636581292058668433448639376778621258309521691015291906861924195423984792922747502732444873029815951308184099113145193341201057960444223034951367677612576767596455140871277776396606791351070181759277149788338045627540576851535949079042321064091061388973044463621139935136341961794715175736753964526202736571889522900885365192432720644281484867919978408849288769046329205036417111611188519454602262857261575470956873638948235792392274349519603203341663588732854240405544477910569033212877635177017442952267494077541447872292981599577383491154576504744889642874627910631848432208257075495160027878979872300782178763738362792919381937312020475459270271343850377267991331463138438667693286601518281469673281537242662041690363229702447540991477987100195287017040958449573990392830981775265199081952844423023496359076355033370971649355895190689834403165695633259195970976066283959758743993489222456902548746725544826915446233001918646332932466409383641763304929604842511686484075288547762246929156612128829492074841573751465003312639309089812043756939526254801245171757164756031786595126094804048991855544240247532969692845113446369251447887758597315399439177285103925044466281661252501869293362186822078627648266492767922306852738002841993370533118848601433091786967570419731646184358225510139286786681675401821915758788347781299220278896012862662873485930540879295687513030592050076899392598983633519597711459793670961963343440685604328824528723999934789454558364967096301750757263127040365742285912116712607356921082990775334185308048506683948850330196221864512219252533796021190798313984938181823420476052181359149227292549582929914322160502479390017367175163822303214308878544600771317168931829891618181026210733510868644022718146299893641115401666073004592373720469757432424743581213129975483195454662648927874288384070714144264258741766961999734569995722174027810385340185519211916884549632368732784972658919452443059686901738127665718120870868039644883361212870724994756939832786285990461460678954219744023627766234447119969522346047739007825916703066881073762888161242767758167504730631529858972905505578874064988520692692040946612277927900714258618854028104937232639651561790293882775462846495502540339412809558022034642485586038678422062862575058018013505317645596537805399132665064592768912352384747716036127409357591617440459563691291714997324302181359850576292645058286436004235545080928553557835640108137760940494596656295753896918410744046711346343339811417300007976845078898184963809395183098938824628889455357438466023202488071303041715190919523623619170781884075371677312332030216395979842920673483492809867441135163219003683076146721029575036504362751958679553432401775789347122155082037170298124548193058111843613763395393162720827475153195827836047537863769743081119238602239313298801191858910758998255245028914668991903615590270322025377983290043257665408942426655847405731340900631449364152552955067650699750479366117635903312678326802442132246260822755190888443499367126121426993075162212280520391966845277571533939695233625452228173486267715385060370067982098045709081335029142630601379352706744896469128555927458479578930344185031356266965487881656571110500142425448267297048525379348053484182563559989637061990064597281222909175884544037590643772856772089621881341487899645378586884414192005987764631227556568153916756068071208197635173683045816422293991214113859754062996266702103613543506721718971604075547425382430873102736297868679653272371330113228101868734703452954807232294960437750955944644701632938271678103434218597863912816940395331667644251274700926179590982203439138227417161785756581637877631026717912616177968137015988019594645202607218690399488905936935677059561215677175165625541054116066565267717977581797004144713735314616310591334648869951983500931880430955234553902547668684823909628376607784417119569434640030633245323508777977293835276370295028821315000030017540941379828288316336955557021994322652231437964823804801132816539800637536720203679809883929306716891765027955852893755831629589470035048718345689004738857842512996809575351551855129003762262323952076889471999845116634890477008254954023916072216852812500932301027676854657729887734929578943040839810824445155784428384707667984840808747463703549942147030188765102675603837351233507057573876424267884008638354352069838857248768209207671711760555357346096377219716101182808548585289358854529028294534647575305687235493161312357923133644881465019932389778265224039064160757472629074115190441816115365441061046063772412514837157028322008429229488685529429319324098980282297060247416102078435494553933743146424510920666611797566592410604017791632703138263696162972171248683258776795268478183785308373168796322795062690419268407914411661124836849448698010500503427395602184467095291556503361991615603247381607423672447679776306351420876783819492865156042356301810137830095866472065853092240450536292873861319305568463316504933018661338928382389714668679750622949547112339439920643625018869992187881789450856275944192992352122938065335140230968164749590939623291760159431580537718817403689694367266898141748721238102595446484107920145117052050692079409842379557956589140413417081315512068557138088253430312826802879681491871455218824902133941475217074065190117724310682675294629554865184555991485990055794861433689046220292625576952230667164686403915323045465598271188427224906040600821876845193356190405962276123078979212992866575367509793448474223143872508946172592001478888081339762185724601017536899940704977478581848588907856827282937550037542338543725420029567256589907642300475483962522385164660514259333885525749819906152101753570062461349032325510274279360806387797708335903058125517940658827193891053382827965964465359873336268454528910110311056442289116264040867428594964301934291356080496325421581291349405949654101165796002621090997767728492874594266335854557536844597787008439594102543423714890810957850147035392636595502956713249423030772289782779509118917910481288473666236024959134553292092076188263576920457378655621733816248578905701473835308109119018487763698866174111646981271612427095105772578407451654721235970329114280165890472944864169037212447297839652767365344100798818975553231598100915720530764559405500019972151421927388876686204415870392221728119726140104973175707531960098431626848308839339079329504103688427959647639324081474278616572436742567171589064599402820069071074161761304745428066900363333458736080005657376589908085011009942167130785378880921153583107620667102467939882888275417922745638059561443481670279276363485691442011928364297658921169557388286263470712578700857564204617339842895727598045912723934181733658682000527671354709641226977021439634605792631733015391878536864669280240666493813369888668756385519103169974210224413344610779185843224844255227634160081114472843994295999824445527938680835172360642066920377295631695264490690944278166854173062082670433996428020456644430392676672099625216219920871315317885075883157904486964728607029884712978035343329314423011008400046310852632424917841015581324538949403123288259182411476084184844894233729663948053900162681696258313545766962206200211093507817254511946938230698257473457658399589037817012102171699089640951806617918864746894776795322458577026127789192856977659680772913483145887747967576233060446668819392682412008490420151881888901085217506336202908140944428617496033644985994134021556485640265912104827198138565221776877871997136306829684986015789909816866419974136347214977697297330456701919208060275267504154556020205394894011589473042614060309838100285288877239899281929424222010906364713466067765779704715502439534516386238980434097250417284426229906631191684554307868372032394566839104315036569942732206656039830352842362560599290839129684404909024829379976128400593332528340501808388160767574958819036611393392740759473884262723069892835935305011157162665805990879769359331766239975567165270646751543637118943610665552875035548729365063061058019992717141384257368007354843239498715844967320457046276918000679073797922195326153570076790230268548924044583633036665776112037885690015064280058440177792593860732988048478622309569138801231146516014818610005424558821417610811331471734559415533373510743840592680836043361497032343666674265388749370151433259311575558248336233185068507681183767872572025167561067516812635294295793246239060612394013645284400586609084815127256815196140172833338608360861517390320661243673122263748395083210345668355182389318164253034183847946695336037541667292856475226011740399283504307635287641131512079524216674162943614364989900102620283532440764781890179386102218533796149468152749959869715409434994618100733549176734430517936523507272247186591684823267331589468919761170269696032041243010572410418548089328382968878465498269404906722756664353642806188377730285479021115531579040244181187739597266550251711465097360525087158917935765361088569182969391926759397067693669111669265890664554174171875353957720204066000708418342394433863227040198169170624387414079911651159227350086674660614300060743856254797610639553543049041934781366398044020771862961767348036354152559094197017167068776775904755238507273006372445217418547578994479313095503773880601199322310867477016013056410958395049212133599329551830408128573962503888322504656365103373201544443656356270448537839024459167879953699441737806825893863297891186642760854041918144248233580786318224724759565047583666153943033007622064094692446702782342645068057994161088388845655123385725392943820651998918107966703745720590212328422613775618359882495328589104620300075474364595303564012825506578713060648135365187910200784366883704788923550195488800107500435403563400046865109981901776735396038378417271420489717748457221386003832345585622649218352222059626994203190194851942676115310100422553465476183802754491353546297686154756922761338901203988691713146175498693924547097779824134644337955086447402044803501257059171930490586447484624772463181151234606568260384669706721615693288055872265303453184693693072966935280464191893189596288947608600098615536925353169635104494958353611730802337202284702782039446178785010478262692428729474891154664346711286908093697339215670906930229584234554786521538086101475663471573664726223976985612955539262174674369839879421670696682206854507376062953282407519790002380302975910502997869053938438800280440291324935882973569744847387352574107119048432816206159210046875160352313028946124648041231705110365144857014951332555521771688181878890853041786317744511788027388679191650361664503069584054177753752405738635050489683435086825055232381004008751256018463796572007019527968782560312969528878036242355730130930383064353578688263706533741711925661004881106321266731449513062363622756613898369373988859567427468491471252457797372924583760305638166304371344200687241165486660790111708741938253899132905687125192075125555090681165983283091805138236556193535613424869075899159793704478250381954447646739392877891003261383874122315291918843475006213870107527131725158117536179377289947785802368296505178245615879995645449187974582928363673451709262054609233245103687382754482458112888256477966701557693457895192306491816168109906306858020404899720683673405772237053131856869437551053661819186324620860099844726342090559891400639071305244364950535430142993770251466227418057644016481594044441664016493902005634462274796192412051750480956186536123701453886012747042523684553744008353727170894763881901636783741981074701640015479275070676257978669655964073746216621275730209576987953479224335462225553360591132640995743148378183957597727727367458448496927026514987881996244784818638774139012834602805496287812949967316917184016318027800597665740484075504030749629598529989149443174049890742569496076838227125846764616266934239799908269185037819046294690582832787696509359133661258124520335146540114437599834599674256625658477583287052064084265771141226431634056702727607557038909412544043034049653418938324985013738804743434414745566254087425406222909402185167302954312719743634423252628121303263582437212199222426102828050595781606899390988940018627531857801746464897814165421330190566737982363212366938115065527686135979206706646179158751099965214908872017870325634049967737302845033960476508652162673570780999611751536169522015667331482248039306559541449006106584226391129828220872093627035397815422579818514485744048023553175652099766011234174647131453695224778351352982503608227394334416228667143661626388596269669133767278124512748097386400779303377167099186820263284744748553222607061969243394099749175933551389436328862915449564480342465530473845954864149226113631003201349324349764624009285309230730538615300966341896445888548051181775353879533808847517001358319144731311312828032578916066240167608081745620480389264879477413835721719839134324130712685447490878587408056982059362694030755127716659950787139797473553345425936862791716206817662332656434839699713352402625296308178655296775969271346071671194062536038062577804005361352894709540593456020680254747084038712499795744860968912736094973111894370913091319893449308214949042298657801803139258546609896169493926428272252761004924135605042273781918066012503699261124988726494897319002623326294864919927787711862228845233645098818922229409097550792198351754533731033810862950009534372877242000061903646485295810524738060597822148330474125867580581437716122955918908690190706278245086980639205308636755229582677195548057632775780865778899391955526958597170880287550865013080146507151268651466555763008833008849280348380489773492858966427613555335923344209156669554015464089528522072467438222015532453961791453670354704514050109667354987972757984803855901239249192580670343401849958796962420188067914486982547329434503064092886727359686278711004221490143674780281099279912727139839528212120359467904865340430826251558227063249731858390804508807781937311389175960097351486740893537398464917797798418056144124387219392554392089084230848454303640117435294178809216403969340688390743550622848968347223728964633361721404347722562570851320653511286469195206426433626886926011254912019097051163698972370960547037891145730160879822068692575076407112524907519129314989236027110625833076092042926770531701196886734964121251421662242609527162396446315014175976266526155834323510692815767704416273668864158231918947797403152497569587769896297333221800283544464400143265465428940056241227677100001153116134175422392143399486838553165982467915292920147941792393814456598693041548710502515352884479886701880687820253057883051040456235724435331496202708022262913346300577769294832387355321112371048019786267549309404313086758952585310726225529778709018613319611300969681597923199240339974919584762135165317754183391005377756602226192638798271888265482466588430096710044773252398751506952372690432112082178986997792460706965631108375674811813399896868469040145220112078533631106767337887048596870629598445779383260655397517913877547627191436500185061930680816295840694263735807583994250152221838341950828130385457069492429245868453398866130810790486293193263607105533242225991376920188848000887730101067818211752576167538416387910361167841752768760636896924628048217294181391480479110548444925935858931580516065570671172126954127777362963294751510711001440128603287462006800708012571942276903792377651400643491931007418211461639750715764158372446644197337305427811035367994930547676372105426730089765122861493393871339116347051736544925462930163655752201245838445283127579678218763641205704898403426197696979937341540839020874825114945735963508736338628279846424735042968181488579999686875251982786716689685938356433672887497358842560188445190560286713534399753906865351379118243297083798971909857825228299554004342850573598068956968943926976456245131867971002973606381069530267133638054352000782333952867054016462029405734752770290387141333736612872649631339804340344530708777832938681307146149694563151328353620599695873179451167274583310771934089948275476541289856291375400080112875138119654333560139096209787730064018825663142360615785970777012851905638775928049526830815773204382838143270268281623480912971403268288497432216771256767858770504950609879904742045330174766165163525842936567972656567678717439566428260201028770238440514011417355385090762916830935925339045499671460413922644146720375706418474031510254228299879030495286896872085559263636385402458894933367685020398958460679436234729379653248797355517534116582579887167512139350919492845771157589928100574927900919119041034355352311763500102594905956291272041805526853277556428468651643384006386657205193288238673618991034058771739168541059374272746240494535231748084039304069950141814500508598507861576771957946195734789607306896076085351138845803518663227237346432936561391309509602372275981149925595758687639810326147125774179463708374922600152772200761455187030672824322740072006889530576349091799712752806001070865478475717502780929189461793031198671343776085103039491131773712214279910613610024289393154756012779582419916809613556570426895758648205145142566243120324404967686915695501916397044498907555349420437296216575261788448693314410970198688869498928582030477842159220540830980809456486940405235553816480151653418971133513116284199533086125321188845316168558351333228245544840836288661213088893908706441547465805386477219877534464400639695357975321557100815938066015784455071964984863341688101097156895903154214618878426881292314218851986070686233200350585554703944320762769016086136037712698822596068649408534638701882381027287239090071953940119066848066263763413859003646096696761068022004993394888815085926389459447999755930684348813596818860183306495699764495954483671786903349811059403050706090814946730588427819808085157859785871384450562209709571130677423846934764469074930304602697223344234470895192540476936007929974920511029294305151285905340555432621103475193743837519535788547269439920830512136019998500471508472776676860880656588834794401942540970827094171022932629200716296712374698169755202225141552381705249529688597810229159235279144362480426646984899670429500515096915616395267231548887042724596617300027759713694411923601961034940423411394274731015244441158846952542171443314781247823877734677038566996939409959039951952198579093991916165169696389910981316030214357276042414893065130127516145380457640114178707316988017668659448781061743087572992961163591897824982333316693510531370923688201659344715551887452224992729986120396456692640823624449423073250151250023565661530766896879877949765621287753285192326984932858191181354589100310018958505840486973594091783565575099477772473841842640407283582741627136425147616491853125529026911343367303477172873141388404758506535792403189445726692533274668026843019039803814935067008341384816158574147492005975592100346656419983501547395722584210035103900705953987251873672798597254883910720961172151104154404882973554788891296280884620540196811853751284693225081703249281671399828326088382091010079213458357744706059285304676462845311816775582078396033113553302971102132958144823694363532705612580818448408492872590255576676954638544448243764656623743696138293879976968272677260651888431857275621814092168724494901087009260285866152235031782729043769352577545762299690538603524399933137587855778787583759064422584501735113546779732430719349445277119231495176636436465484761305079059956150338524803764175001862790181836151414880104232290982155893302329699739442527753181341841965145286343237533099851799904663329844009806586902258844165071950456265588416548768997154688145982583923150454997193912317883412870064226929524300962497287215878937701310517387531808512822228326361207634166548812212910466113677777197887865455980523179894540705034575903128591719492424392691954434198915069014807372875574978126846807617256695518363642002766487188355678005257673711540309585833347394800495211456829428815235147585294634268336155485041697060739262690413090322757529637470051440657535646482559585850213293658023226720516455901935274712464183275328045279648070619387006773281307090888433378613765946127474957531593660209390566458524724302656755009351827847037063758510978672890008384867048334070439098297484924316268705903458037856464462124083864463565174382463862949005891857623953571167059764245437388239367394787171723074953018919373953359103690739472400721722187323105754922356332854977054424501090597095730473570443743454902121614465290838643098153145210181288343998311409897100741002258766790371352142116430997424907901464224309277743380505053103814652173506376986071701899329619872945811823372158598016146721587107652013980356275051243891974633922999109183635321619709782122518772703434869648823526019010989623272582495053151092095776406392144362614577804936977569926252330118154602229200941409780267135082531295234183104579657986315064773544325776304558403164670760499992611149224276970757570274958961793750688340928726573389348022073479829865601211217429614058609981716385347895297972938712455946805146895005803957481373541976194522411410311973232772488414095864932631861349264479374787009653032945053816617004550146389231715486658173327426801596354345382142195079779930142780686922599767050701171305488025380449570225420392814156676707571096913717343090353062399272612829649164943712688851389840089638077625543074327545870111312133994123513387128630913013949035579335772655194247270504642504695325598763656907548064182289284846832434110847263893980341485938052769228481024291696893249407596160563831551843950104617589509795682296403156204480554602807008524294506949671892786514782062561721379269836409576886725183301148856764464799618529216269441736164824498126931557418653064290620882628891847040215489800974592025591284701731766682164649986500891632286009370445086587003754255974559242029948353195435984971424991122579297483542400322211230434238945540876679761806962413021283251284700346211235327597210707368360022652516717147638443915210335666924466095705856708224845686324344652895223521724368367961223004570498409239049436534723318993985102810571868197388913507187031341391804971795338639927204879624289535308501184003647732179730718881139968970093401231761130257042458382572875341735179199799252710778634101047007853680906821663805906871894997802899211570260396095677604755668619341479096879717288255271221870522907132719428999654823865304297555925267804738229004167530175332597838807715195639825891602452183129717361170902724291347556894370564490102320597603221906931138460068782186056905148894223896458992496127209749954139679323839177582028542920515882444263100218373960836097121801008898324205127009847622000446313141208185754740387929437495226250441397989006203020773132524524046986968297612097285765276606848889968831113841940920983861480479600877602467307399310811403021328839223955773247057250805795790505930164711240854644637607342598913025261782104854650507105977091502518307685395158822828549278194402551557353391182311878777994314038403774600701837370838116218193601193569108975126285127905798810428221443920859188983457827422857156538464734509183292274809388785167580416955209483050929379989541168712045455753097079297876822245123399149630276076384647955967054164165205841980948663724571474772959354101969425570355668318048727413652017179339135062046174818476863969347946458955590970084250266920668922983944082849226270136544149728235663803157514623364920496162802681465609474314299334562406545469182710690689797249280682481984482733711260809536720341571470285091068890644984852560104487990528591678605844793327811078279081123057614147392131729538879949823562330132949281527491042593736316039194138970408305173217730349622441520898786980571500219426875596218333828632939137881631882217020220161976687015767575082543947172551879729666604079644981051382767389941515036270302398374231085091913461114135312643942287760843861761427628680619002987575366074064270080979445901514813355306704668182028037522914341643954327610810779728127751994123270047134516634322495573873296681998112345589097637964029417513571257578229527559542758658481093171125004767003755467142742270866932802391943633364572099134626708085846277154081584952796665588771079124577286759484037097820979161635419943698302091899519551883726765887167000288796149317193884298434358485798600941283339421129433987288192192786717322174676561362848021880773980987678049460948869891622786103786236392634479819917536803205864174338940785808790889562424761181275269971738580137814513752225985613477843205192200612682084917458087719719754809226646867186253243722904860215468341770138811676001793446367875422995336463246964382814835442849968421630834722003610961298544241243715697713933626891402119688234681802971524861441648622343826819415601811577012340436356506498880850847200358719653360328642732360786712883664919544438573091775257481695163889912760140526893446041732848281373461572903457192752034108228718771745982223150468719576053844830664193047658513056799092963888619263572026460973888087562941347377307912011435327655603528947754877563251158817017101936057758499202763917976685991357933132982010757908569700890336967912373249088641893579823398931095831777433271698375408154753467829789333203523657426577118131655497411119241271426281545410743520405868431726374910483387791994974855091886451563853470258324916584153262027261089130055688345880224073076297440152236980761510580480951975395975517476732989691951899240404190877242548672666698249491275442476979651066293577145103788304734305973009939001343429365345457437474762502746532184711017630889081599884625716701069503067429931748185205207335251316912257906028166828336211208967701261195891587067743630180764112558803082458658288128483371053026195874119488964887972351352831316507956404038087414036820885779101276599370093032280494773431895015794362204535561362256995468146437745708030827337991838154629800121230092415402854831301310188399994599615087339071982791365389203882372888967497597708722680896996855826471137251558421520245920054897565194448064140847910180386185546692670328433770403902683664743741280041612690190888709034094005834443109840977099490713610275440950430147119241146588724507686824167054415765259736107969754204972471107277895936290582097687476246508976495699821996290896353529051208298934951738500953818664892427228097460055104562510470224001870204901586766452402879981264701746021413536565519305028871349646083482917060682022552736325442338218629265088062136409528922446257298348721855114165066117544088113520984391147334254534250516121335496712625969654973776935649443376766111980010393575038117667252515160988109773942114248283581940985512315141114786199322700628934336159927711209640235015834034729809542964115616212034076780506405716053445464235988944913265203470957587472990469622705084825357436509761046824132820936216486693935957508394789328470606358606234893491980202737643494733556100363666987052244796478321285756472671513659575119148919810137896984604239744322091094258979349481048535207177076460679267897385550765516268142864169293159365291399167346653526002340387504476134807712590518226662428705378042313150485463532251417834782723645990055739199684452590888329160338712960057950378581152504051810380527123799843853368825118087174205063528199417163136554513825291908460885759461438856181413305566983573983906465574284891264725583177464327103678201225279643816142293937726477380926119454370573049985176545041629333805963209301704091120742261224380735879697352110402608797062377278642601000657715543568926900325729544659124495804892618972729357562403042401759605911459241554265141029495553137945463765905718310805202644914194966868963869981453828005846899262357154953758343027370891912148245922657795100092317582596801302589042139631562318009106944457820265479210335522850181089325608927330471625411220430113367591214738745999103461430114610773626725114470018162490613110943331484459788577408720988052041678833859796394175428367070888162556223276490114103624628465793213246119067964820622497874100907859101098560058591935615009165771552661108324413589714350038018951656870870606261651061738591852244551469983210880130055273141420978179070041935029619009926477763310988394049890401410364273220186648975406490322339913846398545704914796019333015338144234342151630948100964717434960700470054720247747929649123399507579777149634283088943930474311530343120958736429817987729910175898294135760123649372516046829354308161518507513865714430562500125896611842991832129281802039072189396244731146742212136180480864920183267686205710173779639409566326536066891569837355045102533097933988427638650903009331127089588267328408435654889210808601069605739794519603088514637232139513759474022440927329703753301399525596095083058498036017070376141750762308653657184332518349977464812609372449777714314183167078783671526991470379036577087609952051919151542269802811663669307074605047665339236268880737339000117387170415293797630118119763143487519928050353883064911808680438373228201429670561275502003985294222409772308526297164860223447089816980987209417615955619695545802227534520196775900819917417620469582593886557366499919456690173795903369905897940709274037931793862040547764176917182296970519459538302268340203145943424725006094488550848552240980516889520693406961123657425446933926846330397843438165569187917828672942881833198158928048598296815829654361556117325407245703655549002313434153299650406692900755691197486002841460129432330309123078496167193969863762107580908010531456195152512688509322098681869714824470055320102694959819724988660091089788038929480645955857315209380428272923102732822260561261701647529069039926015793500934702397684835848887078784589593991567156956383544999657899449878603153076230735338910847999347414315230842169501532976581015783252294226541830067064048914769630623699921121767422492173612168440979138151221743168211218056434854753514453453861300932711004454418987285695876391815988529356212997640574290113012136534390568373260367995902380398165194149746866243234777456534790971655591499382321389208892556398815221919125705319150470135756288298686053376448716949640184564134922678096613563233515926975112982672843183603972348520508348979769004036799208121745304025846209359958724172423832019975826635958484291666523356049492153767927679839818594204276559779951273618802006484671507134736625128493561487246132538096647605453980570105251146741755333607641242157706783903877916870863909146414994993881151422480069717985120309711675600033373650532515320001462887469076501819962856781138961638517710238746934349172482039505898138143449967967835420836579650857197419127565893861323332409468522366419439298081185862942031678273472223133049893180630320930354032718442143745112044083102970571931631238715717734244900574796191952393413324602390840676232579054449708431168905010979078487333620969303776549134228015793798973543250275865786676027104886048924763785751546485459315826937340214056112610814995223667247222455972813667426277471284181755975316003870325740419809921638253457596771198396233051026553295272819294610117934137556273082572242328824506613804312365274940750923533875037410952824672893250882694047912360302353655114765360398785800332505552244948618857517774163510308735613923633578698289923335780531619503137988677656975847417643984700595863913297103601580002976024534379591157573056451640157459519827733181189547081811194200822581777417193799573782747538439283541235242260905861716022932577748781303130843757525210616467273585856098397663208770494983725864925075561982251990839935940142819087826897846231348725700527961912616920378433713422713008714168798223945905893446387549736746089050839907277725590723435403448748689527269580132590417860101862757537539775840171620738458919041402446822790211787677775375099818990478690488400837420721968730922626831212864838372726809004175728261741865899239957721920652412356257899416247753482402505985939704862787341577756728919921024386615293307174614388740824270134791408847281271042073293920632426075009331613211097138783264623222650261073720634785106504158193245053221950431735442959380767036537550497337765602439929857477602564502701426403321957546875126483369384267447750120517219764905001042526678909195739592854023748567283495218424737791169212029959770371090971723379888011400998368427576105662634111408981150550766171638847594987656307507433416917604157571305853247485746938125234727522470307490241250743325328737378342542074725071892010898804496114880858870345407685445433199830585661835555115623868874749082599563975763065735855057635659421604404005288206178768812526129988522816482619547385080210284259586236237655393306827786254058942106329036209917204599703210308213777613786317563048698167171354734882004811243195126082637975200650125032928348551716945552218081123936018385059439901790224930114132007688874954585895153319721092539316845045892577570278414938186965968583571328752001046657716339955967269810729348933121778276893615084955499063238341618403686145843435979661871666379616110453359364859836918865664097958576038920206549547721137216310389995422382494772100966122898454796898394626986365172351908762456255796215472484571579895387599710517689844792223349794627582937290460700785611001160585989571503565680906731647559245529232465867518252166309309219404361748797095724249636137048568821597082043538358465235320259324423570603242659956582014696184202569739325474409440194000004480621036982127900971998341754737417344621616940606967088500620939249435638242013038086878090502869119444474024233417888892992746375487031574520533884261908515119791863075763063700365261194261149303010638080164733677613349107535569685061428904457936650580827872539944015332310445467601564174677313097717040139542060954153184143250870931867197200189606061483667072839683294853209097590042169537780078843946587397958175782537030387645613643762566698820471307604353484241589626208130270285794755392325906515440146932235540726882327094191352433518250100844258163981964383793868144283156418624653986257982307958949404773826319654344579143862216142023948725841840758162349106271382911633280351951094870492373470286166712136924131089342142820731016052257858117778569296601356741907820070467851470633745737630945926466774281911353579958221768902977380102305363334705581191779350309769788936150434133530217251954649477729806698830435255115968867963736861651064067050541636562559698657216498469046760937478000165638505042067895306189520697420414414539039245364246726945346010157020999423752343862321929298657536751984134520477341560478814411389799364642365554398641563497572848438262685788276965289656085325656839296434565896571086050501932719966152049565721629767454066787815753604116463438629212190043365305785787378814360637223070764191036923739129723597106230069870096217179110415859840698740003592536500815375020323227822265709610502901204350139941414234466487489986101978647399786714023314088912566393313724021361463025982290690552750021697007547122917190709413959770278626661850758437360472157340986713008679482471453620900610165250082490871863043294983900003318192820497640989997443572192395816596409316751086366545495464020768804263498790661088169408773461318608087617945023793961357871565609600405268532058103981768226203596950524460755766592302206191351348798028414878051570359787176822023651739175816765246178632241427910168562558398062151228977672634956110982188648009256720639555248592463124153789442214419626274957316417145229551677459105147662870790452808339544492172689786986696503045587706218665101404112748758479056123798937830292208913177011918877837211195128000339126739565255386450613537552365718705528191584851641161217163644574535419116784952392844625812969049912740744899988861506044568999034700774349042516356067291286559736366750446522111539873708973288531182358627683196179609968060639177680378019991086433352580044463517313469102952780372048810647039852131379267609797616838734443499823790574663636298591203082304450593407311720619250004600310667999045819881628921049062281569746069865322456887273139539401260445124324914553533565238520295338549096077744738405701757669569272137420740461462995137745300955012798131991454357721805689082105223439670231663500739211078982242450506168246972119454827831243240441713290749100260569026344547766951464044527023954703887998229167895847114981920477963806169527979650990562983882018221625865016794800541943945558015119291734988315836118012231951850613970002547104936056800872980293338598164882580848372594692875896298596319441935798486313490195671438553847291251679400973944172257726339635614704408852047888686880203531823562038873289452541956367505152635729859450821128791064424516490743361102276299422090256139729545255506114368796954617136561647374651610412518932576060450140371628984327611658316469376721585395850232779441896543723783965171131826237517205769661946609197072651540802505306653295310048566746274597654473869560163151682145043767423073662910368629602043937003580083945938507986582934997198298730019041053771585578709124186731739674260367579283251003716299923694683938101641708513799679806359654072394631449782624551451616053692165320368972372670470306457511598802499680231946297318646346222691101343641598203503756099631701946716301029255352915440038167994567853499436491960947120878615822985345093154071399503110846386774429929992164496266266155070617320095266153592813214443958122924918774238586614903983130439689176676024967674558656713393888003852932922536576231655189447801374430812727803463788178447653640137877867996640699854083454306394587714918188108844105781569282201624813050928844374138608892368081005425079519108164426462426347607257458424804864967739404083264246690635716776434520084445814211329612376002585873221588748710193976519316198602201577071412001013566276831348600279276186572984445671275825195872112142982785767603777391740952354129534852654436578998432144632592401269905503314336053805849805422905232666869896779384346841013873473737677226232296726663977982027168990080324775227865255229430678181989864478414155771407942103319789177199984311069961904850234072227749348390919653332722722243804309627315531735673592399067560513328479826675138444398376775121565631142161485230285451101590098138061541992182911233278039371721744071882802557016302226068596390530352218193141858423905075220663802115012454232988299995970530129852377792214063286063975238355207405504337590482953882266379679282968114275259053868820632154667117497994770387716935652012309430563190862952889870538521852940718281718936648118583459853296430986719294209212769659601846097178310976948781469798794479665171100122791273105250557755668341206419234555698761800329906693868222172464685377463100940534785652723891599566278948863274607205396941835219857762590272909397390074758960445601639096795166088365548922593218143057779818122969663458411519785827362370396729722505354627317321608005637203830871804423618360578606898582539842124016785244015239244649450121641423045677038177937774457346762263717515369846867981794972452905910535193978426575528962634559630610450840859000568826453539148758981563812203753220729533575434247897765058821068606677954950422284532361874580401677774243394831768288808292259396547817732556907363588347748831769496999189468215191778432276709571344592744440971547791933462681468854723721022434629339915194310225542441075347991913918534897184777671097688865576672671059928857078584772900088075601210203048717372716632448262806695294816573160257156945829059855131686703407385611382019407896078734986622125421146794939687924221584281148677186016384545543094908407319288388716039977383716722358296105959031630616517325118734109750537215606612104746853583168154359088746173494812411366452070624787754340706879888485242641471308999731011866621240050321789902194004599884804241409843349893100569934395953369561350683850159187887792482067629694067293074504573359752501410718616773295887790513715169802837902895223425086756949795319769775270740020375143942497091930587663394136557969318418320251171039348410449329873273485431681326249277852681172097051193410350243957751015426216058919950947242119735003385760948373304454307054509257400353478951925044486296587391404995037844462450595969706257943134553371169903986791687704997881517013179292185945548171891014143437203697307168778237114963471827054595182944886361970159422428940228492657146070262437563573549578035757801232707162588353910712732018988385794425142346495597838568733045352964990604803546785815744378429203460926813104326620136206966274858178982762707197175317239928042916910966036008722547045598954069299047671283101254436615387725436695290450678957981342967224786028506908921686979809439385253928850659286320469426127421211902270955183196546293281751473477289732091709647266096409561098915581687563990226239494020538869148403096110121835315699673729474626088732470061760456356048461892905499495711320197477164637955535871872503155231811975721198945447086817811046206742891191530360921889372612155190164214212302768042660020851789531482275982500771311392630481407044787306630449676217131055248955654792913872231094151794162068796558545240153701064710961362334859993784624408081850968679970748551451314248680464609563725159922204389030724745679971345399381891832872297993956061873757016512309515838054436544222150710599552394703009699931927012265718949740709389358887325608915626296646016818671841097056682601709632937199412929878537871959264487409488233587455221208830641635588146202866547302911341097315230891810119256555094821311064478628062170467521030032213382916790477237746404069261879873563373900018303272093638755503432222655756197798317859243635752654914555770747268398932247369898611359943757258461865283483881712626353309055960889430252262498125062628058092404850178821744766417029118906391964708433694275328681161000479365755047376727522673824544432466616025898392575819178891446585516535514556346412070150138403283368086904868751837457764150015991906426513472400255291543942117990012190218459231210939202685118362644434296074771796821847164678123365695154360467142853406799479711555736430813862825784141676017590742568135365257671123710542466808052242030657156010805681800374093330232757759548948923236039005576661627423269532814020060401884745170944585601515735296703261004839203316377986417903133992956164642960515117287959533553323196452108950616653935784437860512449847065423739994329388458442761787868613923953830950266048957677815901086648345835868878933676377901977729855935531918280297022355362768598442582452551804626046454883984756810527830648088444078736276204045867247509280243505106320697436682302866510246924012793258644095153259176481593259973794274646359136225706219362571548717505622148133886544321282182266352972805044424034182889886830641303017049051426715445113930831150725109847015108052815230683256654497327632425760345814372862727276547066195984355583800819866229140054477084936042948816558264184965091548786581500978788718992555833179796977214141714581188284039319991108052879576995913492519284141009509288761969255067856485963903987075566384239120773217503487311874034279864664178876216499418250815353440315730306960424784561423134378826608354420924869563499927124659468566989068837112397731848882626514585205398408832027227557166972352679718581397767938423556556990144504169483411611269766159120783504355244240734227080705886119587071263037161847485520303706673950561254080495667496435366490051684360435109482636431119561991375030977919123831221054469804703641878775417377221170443494307861192171186181884244969456277669428291717702458966703180201755104686239585764970155899330026343592301337489202649988377612676945664371225302868125357525368768067196362016424150742224125464066792412373672124436589992594550076919773124397749017119595584884712618499985018613533491272547918143087238623733694610002041718239930732282834218836503828955700325762637601290665876326144903830208063420507198078294137343417770558085020279597912181601444462940613778723404313611440743847740638849601088055123507234244304881424837914227526642437000848348763293426392715198268961848555696170352452179187971140379861045759310991115280693181730534431125333929058658091628066492060541409647372212683052485386295620440939957696943387363571906890707946093693320290379905820199791955665169211850849845498698163621449538273066668740258278760180951689475618773756925199135803587092903925646331324818726433435894149866106195982258099484697294644895237046368963579520912133166928474704740301738730017240873429667544782538809303340254458345276891393503253996371471495065919059221920633973305653126101562244688757319693115553051444124231395311796971218057458157993465541724485213414208209977018388439249239363375458325321307178194152358219663648629453898270478776324634511427295750676699511428729274558937170211618259840736889547874807262611066449902527082427490156721136401458020996253379575482850320697111705571960340471119166345592742521951069040937502984154943070963556763079997249854613454752296675820703300390540843859169766476987076735405698052305436660257567383982741114066136204368250036114090240155093525045182146064398360094521918942085857505681180724417810381118979289035309152944398207864680542246343748196241452321015128011927183966307112186187364178652440762889823607608739704574727931119179012565836092727819940231232060857851772131359557685160810081776604628257297050454507539607553563338318576309486400669086227020745876423611189713694776915600884860914255889809391538947596660275388775885690172713068010605482422056208197024865563891430169328170510278690432379878254749542172222160582678605783838250403581417652505764671523780781658002077151586541189301399244881945926323413610760963874624550778668898006189181870665892635699432384542368224135698684575793977619372944149266475595637214823283258431177682291177806555164137578234210927295688431028682913569882626667657857821802018537959163090162614522747143020522551613443868840464751784635854224154970521055610023290670107686804311167836838328672195495002245382169340361932154192677856004075934081970222191654324583811658479916877907106666176113217772492828142997911491981107697589181373992913703472872217392366982734811871580493322807560510813799888439760849395010785888397460227882366799794357861566711807577224874476092106467356515305526223357733323435151389787517746341232607649421496577511312031721059904312925943977145305746771045505033812763403706812886351796339236791959854439770622134298599554837564733362404484154907227019866694613652691860847627360622488552322122432818787675775853141638928352888441138067130074053229823613698880178180543657118485938568521857631494457265093252814042119671491093889410322959415273810572656148909366518901680184879759939971722651799251776933437124216124436661166669100737964455092129918237748405481294664602956332310266383593818523343643773912324006940794233647988005396228256721532918580527466827106033647121389707400614679750272285540259944892828224818832513358337169511533368480799962621052366457686396323642391445237680557508155241010005721446844577460628751770366514116657637005524886783869894574097712876857173516976860588652205259082629590207261345911620222380847541508889611908933178759406879803657749707017235730690440495111096004985820037533840641403165714699919580830404313812860913752809842313549162914069581970817606393350406408930045984970693668273276982159879172275240130547413288097330390996576603311054184852260383063783063424527796530655092750359963152199573220665838366173210252425406413730175772747080811393645174226469516025434462103658033674750693214335606000930436782795635374884891121141125204684744010698743883638276258695471984645595704752903941425971897942244791793691192764499696476905779195352708630839906316313467999856891949904274095373206215800681810192529280000626063849710061395576098763588676426307545274607233017377062523056893561864096338299729788898613451502909567828022084697730475530606881381830395437403032304827781163944510833806163185377526508101219867478090774753298807411249607319650729021027211193220074700026649376738865555015942605422701220276926559093029318468905922169342516545877633006034676003721947119016486892175937467285642570511545958828268618926887608733785226377890305910417516814899184111781557375805960727483367899700742375282689293976733699902298238648545690540365699566660579355547689446771709008210881920227106429891095457764677893025245982664979898021127115877828871241588160768873002904921999621752381633799672702618596800096815547512760490025397462248003866255855349509675824577816714168753096783469337932059765489232749951722481601761324724264376501037830122267318790869456881743678321244449367293823897555070962351461870085510833842840956630651203856594561049955250734700530182437371442699862480905213025960973974738456301330493199326767673030773931382165723886451169553672444340887273623645394354055143804515419341198814815318571420512471987363938863671299349322929711050374166133795183569397622520759495872926033584910036607589787424155112109588106956505498214556713434029346463231055593159101172898364329045113752605666110135934755563985430440766673182132899108802942597891601465289838424527755205441360663923740043119285396405343475862552890537563862852859468734467060699260930709408116300014427056652236067214522043939229966207335159127585792656866865367829410809473720652374246775431730920622974210776393289998390014352071480041868235591336204642091352804675430212655092148850927911574134107110899997905968354496542606870840287674954644174496114676712041217277549542521595677150025606251212803151844544457410382154151092389275813530733380553506001486414634446077107819685088242142468466770470453994968044736049722165394480225789662936832533066855278032752380533521398551182503226575582569294988142845318568618434213789478882006761738433988462769003999555097346187889634736888313140211223114345015915072655831705042056366516463525424286147209765649910057048221104378048302961285113945869870064048771127440049540679886399884497041469892522626375224285250285150010777988636385617890653199023858035906343601016008885922479920011446864853860776701071311668478988294477431890375874402455543764469162206852896486914952322608033712641107229565971246673331547144344968688650189440904570906145338204874357205038586934889504785343112033823498014360063459222490473314862664207239917640274957158219227011643090447967472392972201403353842761402305258635535366456152383762164515624953587281600808663861855116168676897811606695702255438045006496170976730311595496858038444915931218019419144896990698785116962514709188485850866106519809449107364957874997149804480620991935539600997083337916163231285484290894717739111058591052432073932701697915907283674812300450441976320375260941786155597984303900928046329695504852243400657136271551616777917063394774006408544498164997103206212634619694179196970698878436875547779710357073410251112199871414818842876929207274605833849795532664629516414101852417202096859496991441310857617430565062036249673589604464665310214910298461948595176094320166933533308324578374595433442681955657045215145786475613008237328398450270125918205736225378399083275300249873356785551499350059032308050404094969498579387592126720173135990212868673206549096348338531155218752620185235358111727877157903821859761282077346717730236902218972578268829149559268702452024612175942999120978562468060313503682280343275995988585631987201578355310010006865984060815109540132572684065773780150761732961569693648728164159205843407101058985836977067609117335760866630753232413553261693399113811007884333204541419017906713152291120918191051389457099742471423646316207782610492826399450260272302864494795976514219464007608747131938138154970100210129492193800562919099542454355107865672351736473145593366773249116159041581659392449133517012187483834663917004897799448255912513421994218304644200197133474975260917839448677734351207416553532479092006672719928746957640449006680370817445633551973926685883876018166789233915422213837253550643728281306972110154516635845199441502422276224489721828249477091902330219306595285858768407167100489227935363168192354722446817041591114751069581053469195784095820047259194434024479201150808735461483068642949954097031375267532109408538321147033487861099430886991992867435967015515527955884774880208389711347809471433772121948932922243079635710702281248300253893210395243948418417506204324216125234733290071984751922134628444308349516571676133430947881457504070355011495083582527239558647679563040455229819877425271932824073991538914857248868497883115209773436599423319566025097109613529199916365197464183204126424273344553906092085644557726701645187757060946576802728418062061563913535065013550548903539217864179206884264394229722203882448761846517523726771470175146020542025707900111149054336519604803871996118419924116714039669809696981383959747718736787831895309660779281273385663245994569989543636003001037335922932673802715737552830926685061292384329938861480503926336596888993567402887853256435755677359686220352653536368797106093736014327693384370266038700391170097043440180506196306508125296315961386122477867518021653223602266699815970818541870141749643264962842657592965420060695662239988185638313043430409311226778083508770608035735858393140771332645703010399886166091261480088151039575619262875011691365516008774527436429082791415975678754727992727455979967085824171358343548788822367507754303138004999316299983509054663073314599740647260688963402853489071399614609830476350930471206581569289977696317763302094450874281832103577367104957387146889970237390105804852927350243846827871162253327938682592389036324692321034523920728924362064448184688131600306943348822144947591181253353829794352492847421317226702940807053677783221947421964272625020308289217049501922610765997463365386961546183234904554325361581916623047541095546223789793517948905820452618731889949229708521720603785416106755889612600790721856600662115736678924934019977362622501798956417663277190456859863657032691027865712141115437552882037987170696226410121260939606093885713238525916897776266580336152469300490936161524148037146599477904148625332574067591689950692391491732823027399029505718206080598707111312395036785658189881679230742678648175423538850434994574712911198769407412932761483346950050970014268347193969845225380721685258105471880917678761525149940508361628809773050749789571609488708892748534113553104872680521156732579206615135833946605473408058536322730407662947148818308558827019771879919261263737266395333540244408517540878476471041123355297488935945714196409051761401562619205661005590532375152371623164916559989844187218506855554850367314500589756371364819422739176182450429591790433496930938956651420189237734435817347687674768566077034283212226883689992575522493177435914523181200856681771315991164428780758056403332162053086416515807652444232266276010909330541508876558191422716666296093534763868622753634373712798572671517250766060687715910930657956478402464310830970839926692363898840555063953700275962955695499146668721752688655361219419265675292329444315806306826758962359203962449770122537355306322339827919897055707740465048224301814856626565648041408149365030915429729191483603165850220072009102288015473171888287252117393899353410881500017245209025192844552174964247585179909195111013211541279777983872822448959869301170760242522766725307812611816603581319153539176873398986700080214172028901136342923455580861969728985134412579267414378546920662508433384064286538886567210445452134822351181986085117992792143017518012229993337186648561513287339643627535597655462324735270865050541765771351297960598436017771386891323210809766070583382780154136451211070312242703404064759137348479015060593999897852866115796822832787707603419745466974690373530760226683334925746555962529216963716633140485837927885752878573406592103199385910524184755173553485972774489189299254335964485052247617181692356303812902335773413105856431881654746296045801281687366327828241128120642323568840355352511234733094819147431124016761928366975527439393914953868974699872489424024709207243952536410883218611406706255262365664423666949658468492437812724421624563754481000953025674376297901314752361425810563030187795504566291959453793302905300388798643314745752369150516055839152994069650615357917687728784504679567642170477067286898342634162286230535246257921774413923606521077981576136803585146001693156399693626505148756405074411410074796258589545678707834516831935566368615046905704396773652422707232129418239989922663869186963498937161302009322098852013368246297370878871569578237370497517567414118213745842130811879088027943422220349204647039029562721852080733305799217999568286706734615226744768976661110455463179325371367447477856523149795619109082295872789671816691875840066950296607712602808239378863160308733448938047159894946001201451201727248766528850039841307476280178355057791552092915323134655250911321019687706056639474927582449567112369020983546788719403323803589745822923385834630206984028531373561792778845782654094831786308754265346426669779849318262572319325992397661818222576231287777573119997933583983048168859847458246716994881109646612933576910282004923441360106748312006529821415273238728242438805034909834449570852417285352902728361867593865465808124247727737866770874745142938592122334820951768877247816321937354088829514213900114477667619273171143129741804805365645477727724880664119813994402852966086811761384439662712475760658746570278587837609539180413389499023716999005412915673800424672707711198190320473115113292033183670049650084223410011613091872025357348611499659485380644462116364376724267655680573406563194158094187119233084430094571912511214987342379318242946869048814447098202195047437305176982796785940198036940744746059400775333818265833031695960182170383376783814961113457415671210774924354675264532528913507200042211479176082967207717610542571950954724955064133871029722935645892181780134486975565522746347644844142242615162040130685867059323393958974151346089552735890114060772610846437964342025476266842166331638325785472532092694719060947762510544482152224979859555412575911118321684587130069224166757531510796837794281783038431968739038815602358167039324893119373034540458738086785397459682423398095201609352943280507759287510228010532161694968167174618380490065220864596942441466636552302094059597993880991601826504282940141265003752101791116021895056842198284953858132670160294885662081564842499897129789739270716936252672497688810361386770182431629567391855049743033254881248163654922677621357553216225726015705121770911099426254682723324258283565908268587853262038555409964958126092711749524970794079495528557462073768216314270755664399562034644608253249501713435457914118873629478340308955882823183908591801657249407182794442722371821732292535168377098943732588979540356111132859208002573238791101932442702738550748866564626784666260490760579764268480046628016231905169902515767260400716885888773292493060036462162738589465497091417086969723603634658151403159757180774711008644309304075797393076861463002229604214512132054955741480805702956814790935426496977304945224442718934859531217938226951131167138177148788860829674081234468452873883338785475190403029606175715876332039452553561805406799817529986075828280885141167902085886473665860556743685069757100615216243458138813585316200530328193276971778194855625003994083906513358435079261771778470781782294861371514487291977596241053471317102758738864023930202858019013961124369179276906814772654835311726556366868424292707798409223022074337180561488307338757669152466278822661372609334890732264878718748063740265021094483201402358405329161067875456935313695811494908457620434135033685731920425711095589830131277525287521628384445718403386346512761430087840201801729751757723436316362004531955572243451055442527844011847976974235463335987695256688670174737589331980896255000876384590806596514731612194936665651032356796120659430365011672585288010903831139733388752274720789291554076197492735911994289906088230135715332386212715393471097920361771066669303088528469561937624978555510854485270141159202306215771337004348583883040169272414734111562860845242689774319799557648136140011591271528463735823133561075287199269505347032445674238625848540646283531022457389723221127467657115420295987716920651746586862296195549353310251582039409480606313491410600671090138759370290213329110010480399093605290574914590215574737366601257715976901078328762945173750625904837943077299483961590992104891907436909578846177145408491272221286288443610491910896390937460216120291452562396261662350962489514640612393813380705914221239280837404258899956721929805162758341602775426103321743435339345570576177466821555816356409989680075642647096545120561607866855503440150606125864107698365171161458933198969882886373970757517209457448347523817716183721552809219779664689683863383685318717221980291897212246286042186891596872735832677779894955320302580572428457211720207837262835075216408864459721972326197156967505156770976944588601228752744810946649023322728889725281781394636670291776268717261230898993834887615053723884998618078740170202359215851754642102038619820367770025674610789810137497144600211873785471843290702882922490360980722438239456125029348106382149292248209626917255526819646840836895498748179975430625665427184479242137991360504745786039516672453633299397876055633114628866935359799877083208593384152402723970080814875659788619329248387966599733302997147299860190929270087818296231129360027961529433876802760596865489923108737088474771489117566554481529190797474261386740411064432831881703738159199688862701601834148304442589986885297485153006071778555689370580387275705951887121176951863868082820440806759239857409533873322106921038987678452302578156004708461662441270991549252070672979236771134287030119739321920948901045763989827735704285512005249096901876978291071163141268120214230608045031285008671576880924190814393505996380410386841378897467478122741004709351114834593094353460122949747845161642317433993828451740116870911242668452158733701088686631475024727622131140723149288872813450592739835070737882153264395522401187799333962340407716475228574148021732065995762409052025684234431831403975393940596606698336183995811705620867056992900033541172676518427480907156571603536347815828981329717271287357024264687470389849383367548582300075685830562867882714590091464010256028240767429325429645515802860472017353850388823082426854338219934427898630179594663789190342336566039061520339098105246799211083063255207952495749340944537902768707428041847077367941820057646724432735290779652453105581224583002168035330818183613502843516167925569103917362996680102905533111482486819334188845054889927992206116117736288916023821545272975361936492970627359091374263142068505898274830747218923835222789778969233470305746207749926712704919210773311711484780122569604452081776123825226346419477076477513316335318725552062968519167722270052873882816548207049949646228274097836151627337342121352628467756592561706791468046823561070763830636676793905023432810657906406156629801203682988840429241022820827453081718149493065161306471747904040414020153750673681858179190146055854133082748985157250309282496799328479101331859760722809798419323738138308886076932621353536251666189006700313172546297443672679311607154001961285224474309599345940304426076869232956130791886230370663311901854071478727308197011024469494115415700975174827752371969623933225048873009869705154501559171667518459664673379028679093277949028016961222621652095180329327180615163376232290531127120937710451020665516310520204287307806686007969111151548500798055519412983267930089941885430379503272254586863148658958187036983134688687309268415705474462361743796748173273260152315518676917137872670520575709192030020873256626097909060202913992861245768256852490394770481255685760949370118158349794851940621913235613853921962521859058493894357034575094666880843142210706694997829219657725927285211583289034409112541738833817326643690011585928862048502987637456153093104126693257083429656258785831282479166459276752669956413125307072899172310233239780074640369056540098393392483160040351608601112225841687667591294561764372534712542814882945392854406954941534914912724592632393349528477230188649413704913215023234047887465997499391958795005157114334306450435156477558223447817135668154297252582044933750631629709593107013220542860323183621143433159410720334331791887225383062335450439566954712402177273785053983120367992206670005179543580264432533520191825341873937822194472918115338137686920269487315786676203525024848111536875887369818239856393528795555977700684378706720559284086804873847577863812740049538854003751322121785197380227705193400907337981462286648590076005184657455022646873512557414214422605140296567261956846796513808199554123222018063051594559630739426320724681877023903394135958056251932639642322765697498890889235006984050823018829847168946558175493605474892527941898962708351437726165670200912033396271390029504172166793872807659695110220358239594563489614843344281040475023995143246468274552508942402688658620086668118154226739342095791877543262812154450501108137804623034413313670214662831684082302789002121398442908265146154744415308809743444475875776210465193819745173932412126554081947222426883608425577641881104711207515525961572435949934965624440301692930824492723926167077437506074910463952909257369700126767881744088525916082456510219162276421395908912201502037828418726510158677040449637875710015086694331778781355936806470110476136764329054138717117397178714868124401737048523072573512490609203282253832484866141770657565600004374932690841458870989027039500487752808424875270785350331563539618859783158234099766352861257393105762885596644378785420052703500650572343713187281460132308189100058299470338183463558263586806095833431666525279406882677572113449890915326064496788514520882712636715116816619230544300962211786414832031914529037896685605096314320688722116107429065361795562961675273888141064584554791503069359091017531308595962028641819947020848797277539144137017179798890366836481620228415234717322244166082102692697333781820934549624985132377251118434037476513853703312301912041266573213521062854573383931427381376991717734456987325714599439461539160647829003728311898740692802174912697931896231908300136333549391107542133095296155029056057637396986952625431231834577891960633167291598657928959309927476862850199631738724161678595738481553277112583053621977903099184817581739071269037906529289271638558457226763640690487332890685902771789743702916093298168660048209225284757772434379729750421156851101642607388075003370274241825956756420237921910452746823071994046392502784279091573903634653743607522556387395409132995156218271932185492239032920413125895085002206271843997171946906089414198027998822882641088064387377132330784997090590415324167870430792604024200494221074938673095884605360506258492554521062349758877260272616963368480637651660954844109158199752445643146877118783200552280800581696833473002785188246871224182431351157468884286685817228708148323382892280726093685477222352817159112211342924450140916476615219811757009587637910763824469291189835195421411080596417312607731141292080200819613631344995632094368653722179035497570880494940947086379807543322320661744378824730022098860004933586946889936491920337385835984348810137727908899427590102922076047123623782325646027787991522336379897638029184620198869025125621169477206588924254724621813881950848225735924238173644063628345842223419540690942200847462930161823410955501351843702970421264424560512686878905994171976954381989917577559613932529489718405893128195610231141918344005761097110791460813317524035120203777813225848962593192022087795583348944901747496980028114646481965992071339329826777819281140887357739265016379191467814859553410431397714181558681069488824705495394941615818762738717245323177612479717806911589012468045767293788407628314745535170030745120791589114583925280650469480911441397043155069663837519238896137458788552979462763666154180011659709333769156841403806262856793691695001499779615591047761979668929361831038295069239912450840005858747588034904873649898138109639987079296555756370224478464258338786672438492134150761454717146981204280771785376448582752460648896048740484130501027455802605528601179604008508461497198100745621607777312388737922760266326513634970439025345163805615899144934685744332611205374012685902384229013600307069306460354501348554417465222663755441411089263186458071506993431742924079982713934192069252397942801360502867311388153384113425724174075154458887658607528066162996634985851839266585403366360502232793348003048399581438262372143736992379320218147380340047572520237864996722377081582399689534758534299096315989472871649287381639756222339179500919096128974396765738658441942048422968167181893508127183759725599516495230116596726425015275006098018495923842635248412583275788275244044347503070150113663637968449241859858072196665773791460830598989537441848238926712848663641138872780667407277326307433906880731077471408265264440582590049355747804545487272478939788936801146127475047089182536022777923634998146546505105775217728304359627915841963677322183258995413579915871020237460731622937576470283380324097312439284522317568677321147219173698628320765317602414353770210690313235566390524119317951962647963673888348895814445611338105125144851503666297924791743575852364070066672211411770372691939963100179873051484175691795825863675157129527316482139579267960412140495997173096629935610333596763955360405435053056506891670615121088028689365901669206756591319825252945066633259387403780059156221420153642067764466297217967074907350336887720862897376002891116886765093335530377131897986863747880894293896891276174841441725592329945806922884013675734521541107538550424902664067445258630316370472043362533909721705537114883473911129381761576475301109275845609860315228503699844286851978050432401230217902089840417245275560441272315684693955905120772261936042123033888805509561472284989047822345301315508808501412904305848014229084802930950176871585927729444066610462759793347174930952100810864748940729238078194096704592729839809931921283698869760837059010277259297940314452176861174387325060385640811334417509984819686874298558699044363957568926480139682885859745314457425879073318406554522565420010322952482506924383841707608842358149959372890019457093651954685413145094830439667371953069205637916970716047953684298323586657272431572678241346805843920307480786531676890785168422529413048540147969200745746936285442068685840640816058500465540481821172307903595215198338416802154244592844810349161355569206363357705908778454396445661683392996899186604682787037394252615255155487090716151100929995005782026926362596427486483045381123124073712635076373580104279426016031761922237498614123112579527128097250158683515337072426616979958084952952390900932856998029003448550359501755995810119490166572826783240718609363850438206830319970846288156364317381650585167226187036423754631220874820204771491762088276436427720986545107067444524068638398176362705035286281911103913382587832544539833854144851714759430647627041147118430977424840726303650626286429401439651113116449049840377656703538447859023292283981617068860942190997126108974301346917669101429587778731508957483868390886994795940707324188744723335341480341725739602109403378881092032948091253170863525327452561841840054427815772797217071216127943014650375293771060947504588849148540315087674746617274423761861369277322968343075949023000875033210254030858940490639577582775832261611394427545519469326385051569644233436568344710218178577818633667008982255305128608432067008498491147457863199388391937784245634849063656124274855307212805142365041228097520249491096966477682118172410676543824346792142423256444421265569410023061326622950412017505141169579393281968353860175346431661548688825745645499654936109200670874615435782602465135206518379849785775142800527860477218114612995481106346316512180019733461165681950303441653378452209217334735340016515998365470316595662639221234513889974670353823798306105954065952442913220383515564636259329404924990769997787276886525259075537944880081796964102860009565572942392578018251425414170302193264892753118800180083647892948439565894589778958510115275146979042847182412327220442385004163480393057773167423028776822974312316615440579012498402291281217365169060861135231828612901957055219438561522055965208902554123252075339809660234274475052418726710215720428753270310587788919889887856242401696995985030966695380353876788200101924426455530957767778840907410360211197672864334262691197349578258784369349224639499356319586321662777825004005797499589863558583730689124636704492151132400284840134564533436419552867111404804530040326120543402030540305688127583346538622425874427199316098959977770080467218485460771576065047898886259642901468643067906949261549641037379377293275000227117804126119819497236749007729728150223522456701008480953403326805371564688068402265345272513824593579106616978839467364161160764199787012035214198500880625381665740526827072919635063777434297926385946096008472471383521614022601167035982839828862195161620673181049959099638202038034301784363765154003841365902321775214563916823910361920234858229088897456100546416214399856922013385651336372715277969157238713704677736277659489566647891231832168906371181625457186136312416005022416230857578852546587609890446539794995290159141663180237814643265267968464285015916555469162778207120416551570992741538533739960149416473370964083055093285001972049116829889617497234330013237111841355593334678190024215034030874159750916591221327568573691651393226911393046448932461581943536013839448365687782276454844286540423154687682957452885647528471153607325893777434953601928986933891890928404640361411537273322296599960495753965993113965213530178573183342033730765146871077136309768084947330314143028095860878820859355280843105413504849671132457006112331707073332820284497399730061404391770818652798128680224793906937031695042620012634376605243079777241446387251383023875595752855887465724404465832600706885574273702094249312233114595962164221972147572050592153849373953994491601766003569873727384254714338310842364331735874380639220094302152903640308636444539769150127516147847992935969414701396808976835665894276248997021868953737155842720685171432315660461177849618927026707827786427586074939159937766716408575292943720572396315975078681714917488159169811775745798506374715821170175463548726680261618156280087590352083351905642128125800303282731711330363164033131702720158978914468900640868628291633235201905086574813528876058495313920293252314142675145454678524897381065782230437455944227509420388372794046248735099043858358662112691394184958874622117001408810576862897040321707038589152224480740347523932879581050420280015685986835854213526470673260733906531820787429519299939665063195410282324956847699634821104655867687683148547423444246636066787159645456653294678547915897542002270237034462719893984097680543114324038456808911351561342168389874547317871904224094283922658114482188413357474398729087220110334192851475706069508240858881914273606408629510093252453620840104944346212520309471454511765759895968025956252583073609665245323091134019861959943447185367586027712209061399101372007907030789047773448176380485667401278505933155774940232583659165744499182105436056490523581375445428460637999904952654226966183593721021161740453451892800828152448359182321146564569996815410106466830390552173363122721753840263239212657952637700279724445071131360669223991985381996159786018288414545127225311268759303678810351168524865709838183385093120836931441996361881349316076858091403205565601535859723747984704913189708244232547963565056663628953547030501275937970937457249909341642717201250440640980490628006481379122175824123159995625983141103899915953944031538440902392009845506452218905201927134374976906418822213895795456895377105739702734155661133941081832000795474552429365455455407943787826768326392028582560408466403598835669104113662489552855199780129433980325031688356325815242083439446631381005325592094167437806241784850019981415066193690237190099780388382710976805067158664427624183793295232614546700092853370274300565841083320611702423143698712700370415770002909051986421486102699023813139099153786503942362506998761513238242977338773197812929845534003028031482094076001852448180468647918611572227008265741194096748784616423872447317488496541558477389715813053655759244849068836547019820979832706155182191315605780424453956775697741257837419124501657355910961787297600731910611337152055170635481161355072109199981373736848796790622778843894750506839562573775279241406469394837687659586147520439000847402243786812890222317491673860833073227438454591937561357226909786511549388671894679567650751805731699899186797686151532694137488202896319983273789969844225284359144660218780086654350684942592430107116163689413312242574880378570565250598049395152914441124391302442241164773688530786817004817209982421485350552658802562273730341486522926501077906286335616011707582648147081484514297998443889643432372644501142578194402339894293872635461341269589392448019303904223178675388534960240004259120823627980919705841517737255721346719504337365508798641475869142863897651525753367070128679177626343946432288995966192828994215564182680383264163046496482035342300173413037074475567776531754939141098453767629856618006570924331627087636354433564853286029487770397636376676678614641982500764383401798452090988402192897341093591407982539497261682003762430927402515175160652985782665614570599124389416253037577799557080980775216609444813771300294971889384324095056071306055917866732616352994901465229354415394546655054256010768574776901435694012214981509826713234051933746277464491550276940887866920913132267805434048905455485471621919231861063111729530312781952085711598843504400889255505373491906207802852029221035657927025442361446122871099517021805178544274096400514487961724452966359492806620116453556072248755212774444790632070177912979208646721893236753792581641417564434896557664056748057982409784359546587874836370339379900850337286132018900497543169893891711237349308167690542967524131058519274267496254998473773894943414813547243102208885815805970671155528306275142998357320462465487780980855372201650568178685261772273079559849680523291744963261851514083838332994440590041653127700099895400631594750268852251794799444658589210405029634684044343723925840422616712732151949358076884217484017564116304195678028117089964889284404158898494834058618141031388731698560983787302374485274838580303897861333221424222636541164572564784907762157343729985448633012278596282870375035048001904980635487131133627948995276590618510203623599518098047919239309901340411934949611995282780474985307163997687666449535968427052500138658807997812380622472043574226580644378088416235913413196244594350489196675463172484049404976566215297460502703052848875940690403148090573491125617049009273017796570322444730244961425864636001657247867516343988683530713505254550035469625145754475563956427897696276691423081822776611060751999572065554029381113913427830627037782202874762525018802142340390728746016356502113607402050229771251399467609492009333376705059900617992456583806118381050534147491062274243516050357102967958548075113408787200764748865221199177875636078763952675759587020332762330940654868332016119646074586486291575445198371536260226523830154153763068603940557860671513859403311034091723664051914991818905812482645537905356017905701379486321386244814861261464087008617654139243678313745405584911462542105297098414401785458571372421003524468121153091905523582777401982806591605663175504422674120691670038326710394368945566560716382672296984206609530222342331277065198474988111693523897723938065319063117384121759711587067244636450452398654449463440066837572733788085452350973093838623776039324005034486091272542638057752718838025538984087492352386977392211821909474655255022714480701890565261332896231543624664871014823330288423387334525956875998896505478841275197433187649978546435590010098410756907992813945712480501943681694860313950493625720864795737820392663864214435974383847591690578113359712581199115934097033354078304764653212346452524150330994798957673715906055552738399437108324593808853414650305397991576971319703130119825681781605421140233983711399402284116749652708196577856782617036346937640327877893051779521568997501603274523731450354739676088927354461246619655228593019047100628768015473820143137491055848143850620600329072325150513129100222598489099716980793989438129319956623896478976155400556209556366838561794825027481381660343151493598822695810881864723014105176487971680007757646230733100649099680128364817566157395130699674111337767560350187122225048943124850517736865887340676613461119807462598966760010599659261537933621975385764242606949528262446936831909122705988329965398222792565427229005638809704584704124070772650396080315307223704912183791534940806668932147567057351364194216055989809134007957800118357631376275687141686333603756723726079485704726636975562734227206628744114173491989676044874882119780711860944990699825507028529244682968151058048684141983566113662255517991205957820354163983452971832582585187250107978674817095007047407846095766169092925045480501238055922177027534177628153964003636465821864853025011390413138646291886728636554242572309412264183261654570509457787672815073398173477100613286416799964199505862739722824631275557773818482718150934280188183644074922855555238103639815376880177736536812769720467262709190773911399195457628995581005577157990651441816561429259882893519272600973856150664544111135604905619187514962893477977218336809455041652088820026731348306828359541258916330795334409761667543399130623727587250011162685327868930998134639033516695769287474635104148032712659447158980227078617299202258085718045697201620668494693421247861738103194627568561350330985151950171671861926361475712284763828477061021232649681779866225410890635612592534122969835243138797600915463776163705204957999387623917351458711382174529760842837831299897912590303849261877804739987555111262474296905828073367475999012698577057039793347114463044566771302066653933271653289538230836852704062377060424129960014907923402082357050238319392473472677310686681576447642502396777813495764015042317553147147341262747314955978343769683999600845856930344739290984496050269292307101730785560189224767534021627181564246554864446590800222761557157040946244109200230859200868373889284785483151052526533927909718811950277570464864137806333169652911188517607752923248848360839751774550550818878671968126140694158349689313069807396229923476484546875293881820111194545760430040686088155959991878761783053925614721036140672578736909178810953638137745361494578473218578306177857378212124155349076819978886781839194631076030578436595720237810326856261980624470606325378149938628602491534190367183491035739656296200941239975722981782217844403204071223060549672701482258544470786171394661833977665924997943110918218998541012101435488706998080387520526577703057095310154447264381670504714060185602354361024357734769238897842495649637187669747260743187138689508591547595659661036306351353128111043495560672344558531399581980297154505269638649919371691243791553965373874622522580842318182512141720091139276645591398356349867687558134522000680554327369169155929579436518731083876826981342532241015038103371183898678497409893095319842377971897101967877741830683457860833353805279594217611166449214542349255038204600619547732597386638050756948274088438944498469004327044159256834975795648968698983966501088290803775929492983314105655566550192566180267856108992737981680816494085669415417793651644095742447063204180915948757678519328120704995742359548773113537932895459414547251011959130620359182979662687275233254931143246870832172132757277708582308296247784079252781012001444103670270004095655388182966863153128862584875822058330946720477605697763134561265216085326788698719931002726670596583374842108810340515623863972165507796244013766475067213050008935818792303502040418703086658592411451145014451708623621230139642372622989540276308184938586071281123243846854001616750191902617150021433506001053988050551153236279962887409561978478109354262653506329893132810604752578534941680430835290427265231860465282785668702001941601528627897128786061369398222008646650847262583545519368365547735462128640371898183308621190732134045599284132879557675717738855092774970998154429841436842959682152453972630164543912016982818486668781209221350857273359903360445718482669920464259561674550291834721670393667653679833257301771345495713967832421454712632756637562669744156198006908334793856084520249015496917178079817102802101404826923705527261407022052020882466013295993951542449389057520685199204254492269077609495494389794951139508781668196327051710901936937456300982331596527388177113091380474343833302143629528475896444819924614231882156121050026601821417798063342682196466949647929863167728251060957154783731176215321564974639658474243147011693196079736115695949282547792064608801929151299562271002284277641066361912060763717606238842436530162931603352462897044827395554551895747230125152527371691670215749383615998099389411453628098373052308158196317719394948519646013904692340850685642866386577895516932245878026754181962518632376686379399142303939866102263615931355635319465403804247993706967310255393213634746442549688957661508215529565242739421349685069749678176461653998750342671713979769409740326006745649465401010093096070800081656619917037684017824712246659679786594726244093987128161886422442491423554203254125942397902019342055697920914454465268425840639590206339656157970215980873921931382944496976920608964231476337848838367763801063329806884843355426540809165773036013987137175363067861094528143230998316403178506075433026703757537244305142254858164845162175963824089910734469439280188570571987352584862086641353682353279191206674023315199838117745395343888069862089923236457290659515690978149355489470400351437764824683123252657111856403510913702125848944837185851734261567060698652015897749569032663653311480041669070426462930313706360600154582978361929475679262179517940600746127806293622542344335073161699501485185956105738550545259416842816453417509191359614523416336473754097457004199696188932099070426685344418067310767606715590722242012277762036348719800641094838322141227968234676426435963046055381340923658213171950563955374439654501445658442290919143871152977074408422684368817422876948405525971998238454733506897311570581892989041543973415295587158806679875234699879818150407436601507394569365194199761244475797600929457339403748764756064749953892410868888623948041036374475460374084281570093754821658623343439600732336346609675010088495134238523276945960236162411970485478965393212400475386604235927159241686078941184726555935236009654993646021092217827320464419759689717526168867436970780991905291186312957807625006569669777211343825617767134066458547862674694253771874185879341428736610646871738343462055670953439703327566767259334270316521997176249186417539812899531860960912786421298819103693342243770528045715168702883000884904782865149287665681870363783042144028106342155696470021983952555067297928229525421994091441387370632289184905732774094515885718364138771926783396747210702503566819185777676709001523788704774659193697556634522185611221947841998534342313326682002740086538550952987865122517796751046869952439337560947555584011595888115417841239204997582033047318493253115713233218841953544444518162933958438916719845582768712729437603101097619266251326708042408091859119657719475402360303477270296837318422847164431017234661181722707523501240972978580523346442733883642191987759925585334906109703632456651500729740944901878249397293579989601719440782236373490493432407525151508937906476999824049052442932017904789508336548198587515316055194342012410296278512356722273938893334239455276182905085574432696612221491986245598412930895633148480034282085130918932371190277555917729672646344661029591709698817253465524186315664092592568279366028666917298403042806463625764448229613640169666847628371108209952668884979553842070764626766306624243174674908829885357873334270674344259313599847857932690027679036343216487837041020764961142764391669746516096690126438564821197626543596842746276063913156370064245139441952457992974466967088356318535691015282257351115765009262381561760140153909755800220173005283428639007888666151817423020440114767044081421239014935129812303136592174228206320100009984321294800944614084717993412143918011489284047797421668448834981391162452675578349478836737947027461599374045612701424173406972366700468223884490315759459698774470802166487596310022210641893479914213350124897714600105585186458319695824724275089249587013031775199979993285810500956964301700017422041136665758423533839317628688104883806229944861105239282136534909368287078207015770264306248871930295243058713584757250989265118784959328684147553020870228750815855294175402698909795812590996189460812255088390871740281941177183882979771637787398008023034944742440341977024635731631125956760424520095976795685972206148403101067870923029121001104174325500797494961768382320394807148353271932495782870467256505566389299471421930009616771016585306016497050782844151689829291842682816274414412314696023325989267632776096132110692733464157853385610192173661457853036426406485950336930067745885572476701325683821044033680555172942141677953013908223653934114470751069317806427048951985265752718760259983293704167260324790834041359194513061147529556701249694757912997897893638268996648082450509200713662777327692053228695234206475873859107182830418677032574091374546091682555293975899205636960002435077938451598740233564661888210413181118336779845196656677948415691219310707591080673421240365223135280525581343580283840119146709196689270106304429004872497813941121515584974212467588582098674892064431444071840680070974536586981660754637699062389472085883535274926059476505222196070183561543883222247338383788739265507236544806801935103753800705714559815500821027434591395587563927152756133991764083659761916072083119789646482146205995115884371023914349591663671593519456793871962577328804126458468639994894488721451773099750083408412654028526125736812158715566107253782349840590762940350334362276809164559652724684008328895263503231603153369585336323255113406357367992839868344778082817616643287272764692374434969620872939952237802865558972383630927020542707167662952548978804323015279309994523567240326777447307627745988194837547774370983876192260836307729853081344819994064203603693660991745056216506698739157025227521617891106107078692241884800167359305770480729365244411302825861669168350712875682388859333144865224685272486375425503618357639785758504319014503446899571467070013490812579672462219205492880399678024799264096348384355617646738712067935178589661163072978435511187834084008140315696596619372174919010566362760212840206180399004172740645135134995135730002556571530214786019943784903649291590012128567467617771854453917370234308366643911197922750697415101738101599769341185533815440930334699777657114726715752588255340109313946158174430562334057168832354116058231850832651958589620830360512862774846807524887989031026837090067332638530086629539564070316054649326707829831522555322682271704025670034244864063621787852621797446415334459723282184912077021828778910507702035022492640937362898821376409631930166248531777573196300705389495282856006797179716567153920798135773331020940661938381146986716837723247273784488017002441184458828876860332101535391392413063533492589730799032383605326027186129855268202283467814016490620767989103680777351460552796591226063573539502311094263485330705280721759191011067099534703696472292998554909662811136996384381428470079995357252381484195430722669356799373985311376867001284842300546857866824220528000393126216913507636610017451866206860697276485128904881719990110200921831348309370862871567127914804295619395927378549103190267087173169042926129195392362351230953812692687639227726894430542208775856333080876557928164495689255627356843579035550855263301102977016894481572498604818579220683861471883102171712299356553546218192706508076011730121103846743541459213584677159133014938872317997941056204384578808933878568317345341210319676373085607441628989794134848413417921866802052235442279759721062868948778698924587828571856466923271494469463946485206573234928014723424961209739363375405621268919776698289881303872237728889171524035662409890900426567924898098860481225901463315847246235571581697950473976873071492283014301173426871923360864555643655733772201440146650950269033793576859974761600397973607561903650296623972072602469502195996081486930282353363447722777033736037288902019816930214134261516583825172629981871045366262107231303314982937562367645246225807552756495097714528867094909743096539357899212720189319478207665843246171414800071778234222694786172568822733707011733040153461918354191930937862251950435539192197868653663273896832376149804383706211816491594425175987575035011082189252185261785878978174079687207498261370146009506180641377775264102143343211380930566516191290845728871091817167385158978856804954123801360649078268419613415718041295777999177571741907906773678080348212276709757796637709491480195996141550864073435283578940905860037188831842012361476844374044631220564208748119498964026717825101681031923722083993575318530961144086017843692719147435133303823683284685178794465325542176724696135508916972753552967355530196462281327345711881375084730087650124994484378326045938625612033657028603965221173993342946142644770411627788250085502494639587455486781479168070937645795812298473412607190413059640490173966876441049112578440067971852640663923598921084125793818375345165655410103012555113934781891533902105125046620400855081293703927187488641981937238879401114357240215717860556766925680243627807381466713040565012002147393988341005394028609585138249026681854292144947696079368992035592823730793927750370501040908593097937277234759135913173015730519485114643695029118863847567102650085847663580896709519658386615509547183584946919698417023227506427898712800127640640579969970361092429195391102108013889760294606000820798682923116826539869685657941009016511370197108156393674778620978858235993048915118665203994574797289859054827971668543335139500085775696927886616025294278376607729733574662872561939991811028736421569228720402111376494758190706295216968826595673082332912632920877956437506814888694277582741090538700232556635866492080876205597959661896340788626479662986964189084359277135128729517650145259262579332472648315352038131556014869938737473598899033834246340387201614689495249077866546752819155500600244712334914614787620760668945799171935383822383475238580162441850530700581831207720890679796350239422226430097849954436808209082200131350739010469468020261229396655866299398644212421026675873817949806581606856166307680324771354490685987832004934031489405058514394003875426053528988019417135255033834819132397858565645977750609853109519564977765173716567941294978224511356434789096601369111693874548421137354851609155809515169361544698625897626806560689767291435904210018984192478908574676033214562619376015022238767736988147109260405369268062684229002487918762295146634773037955375433680780632832588751638236077265121264725618530282123563823782054139423116803604027751818746918600231637497345802218699304932194858917060344232077743961135668363585351754468368255424116276214133017200538614958119104054060052274452180811502347246073846778265383389617720639799602826518553080854367632354193184960357345676663105013107751490924969214310901189320023607331824084882133869896363376787938724857813215838997193149841289492155585307681651223221039596917177305553926488417479824457427374933655866307199772815949764069817474680505061902242838416745759974766306173938267262119849190351808191909986980225887303518381164296177196165222812505837711115244032190091103602273335479396825488963620506824435329464814619024559003863092257183498976526439517279652232044824672174493087385638959722969060904884850084763141146039618950618244044689573329294442870273703076348005923743769513335525754246776612594031198749379719783717909289166383840221792195475840505336508602066219125376410289562088835809079149588320489226373339436192222874033756823038522413004293415868026915492672748917779315335978735761554404849513969493096375192874144081910821418254128966809479059482668180348843620367204219204455278490927591184106062471584263556101338220568720865447169315598313423483776057377072951967024480628263728431360925030170554387048831377398394188181112199136569219868113530945795661081022970873757865539487172018312125514039094585509196984306852636178879531797487404815057939811994759752540268625985669929179029883051779409072069835704491800592582698908241738128906661463216862198220783189116490603177142046036057220764555931897398720872883905744098782162091329665792437363164072212872202596585303131169022773049128439464132895573856534198698041370151334319695978770307811498771425621474483685388668905873036392354497650214556085761813791032678601323098735885924221159895109914370050369606312652916247361756881097972409466098291839543307413687830283993430112941818715758432487011567188325590213332734473576685473528469552264457610824200720049895187909747070205131762717440019253523310707455545781609018481594221412314488756452513415049950199882607533065428772309075981995716430946255920336246967003883711482682710110190864493041822007055937991995479187185957805155108185396597476221216487274266930058582229595127621417151150028423869564036764089222083147573519041733674066484399098852369155153382151312239725750487679143749502000220251478610285935223972062892181467661697885315208686447695236802006118328960069693355510757547235242965827196994669472421501781173620355037169447657796012797872462290457656841806594853655451382753610614907053666460663873263267795775940774618557634484760384242870306351087922146077533871362109398493063073666945079943504580188374751620105648824211275989740811962394467500127058576312161940660182476439970245378801292531472067460829732321340625520877151039183112929094662117498870433069151828997270101218720765210856540470964870942769948358781638836475508810234766158305565886169613343816828342707452097100628247935247711677529806194710789017935648083757644109478853747242402536300614609824137234532868999564737213589576380016985880025547317706132790587951617145916941940419472179811349267768386814672049833661737971200467766795761171171780363694444718205774853042945887312964625220781920454900378070401660159086547714218466997283778819249875576281627431199245397392706263481550583481996639679775884931494344143965336235286908491044524399358687017293504193592715681821570904998669262615588542929948943110847030350999991594951362857016306698048235629110422490135484558027106701395518673428932242097383857571803891503101732255435727375979438263611696683735739465393786419617316694448766368207648212672381581587624485630752575334446051071414622925894421713208819105339289189810431981036297741799305008117373678048666949023501159170446738971057832587079840479391776528810919087976090840604666214581345432983284356349339885978898714417498713255687596541279864607775137526384758069921054650252144271603501332451107507479318923599546008783668795253404643312864664740796592200363987924616883166865473379864290509912334950519323756197938974747937786046065289146295020722688250972673504964881909974192308987861876511477782490956586948384267712430620096838707712993693845288397636359127241702582384080921349928979559260887979223973097955914710795433867183820258718404792260740903654040803478400306282779822956730625870409156698060901411864667849431330572442144797098558334051653619516408337942096293082187335135510155872348356701433900382486408874135086320523182665801673889030946403842353516423019961630306487084988692697376752023436135346656578535443674096027167995983987980043354522390205535428199213271287913996594071075373585416631785010573920793631401665856392074486769988044136403090342647710521714014056556148211059236648167723721544969240829312091878794398200773121629966744696650918384108829926259076675137535133926722310443453528553816452533441631683365432483310856772831870431861185503202485797739087722882151620517604491736619943392307582466164546053799190154243323408300009963554526230005321089312510024366584030891696978830277483972553724396765416577884933179517270389183593657821986303738193759253976066624356999432036194813255401263819252413629774387566946086282334899506907617392086949451411367408398587342929825315173167833111805822065245105858811131993793246220198325118375154963864842767891296100122111864700970750336526627437394203547791349722375323454998057294830980578006212835974718006953484081926204840514925252478456623746343059696004665964936036048919980076703203660332761518866808893286254923487105548136240115842393397857901535785064550842208301446403131210360691729439918451515034955473623596635424855053484139852588799103959858916085472958823704625119452301123960850647935442914479252808519754945520610421278740389590179064837607515169790443378027803094385156030410918097128821648164699248469810493535934904148185431321180297546345991523990990155377624645015980146938906319113097278930118960401770285093488393465588631203064760292395515288784425077384481438649225043746759665472223261902725396496453442984816874611358048975376340765094412934432497753687467807471945102987339395425907610555863744064525254789089579748986205843041328606815339695837608869483815041961952012054679520679309296658495535227816187067077466352142158564827091560449166657767661516870000426302186782293239444876609645516088580664203911797836651473852620413636832986808645692750942208645971389682703181443502436130742805668771961394619842291589582201698782123673230306094734152774982247962093591623166164018504397795502836200845569539645172847624598327018457156738756135813304356997376385218551524703957182749417548762815184547230503865482788819561275253694991170079933937976077714023098250708018197463727795846965352747745082890885463964267296208591108309161044321581519903974247163600963711489930113355114775964095954635196027603852009687864645873200006258622659868564676438754481310740630711464561190104439542240059836359483134687195870426440471610307010000512436260369659641481151888304003757613075259938359611315091747262848148359974330913305763267400990709365416966939958784142227784997657794430723359416382436373599450315599918802710108235293208930191996294465844371073255825860166273561211698803657777388466514497569064358255761604487549321236156616256249848951667471719420806283283188584238582676253479597526254250275556119287860816407145127232482813822689896955463218333688003804031463945857534330026765050043335516232935902977185049911585589185794578447801615512154916883086740040002788880075987552738402405176680363634047909024737238881145667834008634360755935347635761573327393574277861900332386028817242547801447625490066354962363113348555756487052422377820729738735230204386126220569935814822392531495340313220214225580794110218957104339126631413573895821041170152668912007135170584771764663086961671057713244367440771993447306953220068055340148644036967986964215857930875056225856270841021324975732487311842561806391998905856725271106609506234065786320944162943294441603209070233350002341769021578503987607995317628495308983501564066529500390752436089451302191918968215367974251297323577735061615578325934079398316587590528380063671709615361535630820268940654106868407025884025974363060468575092407714754797069018977257158581319606336656425147411371161095534268669876502419367221064525125352410821229374192622848683904360358487349391882116422591205709583649909001909409043748296825297184467527863981321239739621953205396165024368467083331919460593699446023311699612439868765092299027332259072000057890232761501684064723200029356410908849214450591908891955210968873487931077535599648287039858324188621845868926629340330744547797760736142421635055709358726120428378472468676445177825463823811386921032764418907681709503218863507743489686472320420702447263431840548336001172437457387024454266242785019440960548638930289693909327253405111354950948133851698368895472859371379562984989826648009623256570433969963248851511552088719833289685143609024566970755907396233933587373966486869976714892501951570015395257140328134514711295635651592183406662256920894555489117709285192885286180255832685048526323789586425943191518499381413836894030890104878015082692601558901148062259544985308144333449345015744805290375801600829455930941685310643263260363388405184257902490991624199711061406364399735670373981729670035548849224167584534421089769724052346174460638497307196196532625017421776960062865224199314246542665597777420620285991995903963143737494983506709054541776924335299270099719096395096846903816618148630096560076339880000852099460735530967401435861733338398558087804369786312225891556274623011367165646568349278471127572074437157045759739614676553101961832129359543557429906722685524938430831800391101959179354894453728425435776574249444203406576675842744713627742473952211136123562032556167371344951285477136888975993010371843015650442234001007162747918051398608612677806663942208743253240955394320426023810244227581111780982158111827720763477982493658021072279861429428704062296936483877659663398566854571123153829328286669848401645295800347621089151916979891990145143989440472150854313333934523586530678769245578618645186325085011868158201388913784273055013559106674224976805762661491062406894054735135134596118238762799378474256663633276833748387086121070942775909920313579457795090807597556829562109304712649146229453296497476454561147306852045735060742404240060803725595394394699606922566334533444084840861199742354425929833825403462108894791580841464069915777487401190312816621801470454426523562946215706738722883792174283411405915468656245637681748573769206923482610225757137064656233558494426691455255136925657984322388229270733476605083079195049540207128319030025358517371743804296232795146481101807690836121627798694770221712510563047762185681452994625355594725994453011906367030861638484547661664544740494639378014573771232461267600852266573293324888938094483337804034766044031373698364878570432098418443833869518882459463263884139588710411667425553327043948473646104419090401958398884694504917351194441306230890823672941869336226143065952907535074014736251965176066538379835954274798052597900978779358385488986144214963879352111427823197350516097485808163225996326089328411517635182335507866886190565624077421974980855764759859323022381931882629964308076035869563559722444104024382042119269885180550736251051698176769948574580245773251141834156165587128342946740166199093063264847414036577395663091095393503092259398553612098484862258093199369844312814182307956897490950013572696136681428625543223850248482171118831101303374063567902122240341761085093152657732665379186038153349463761025069530941601433677758608849741514966887782050932911339075441578904959103776827854538013943939932462085735548236795346869301179750702744886055203828170435863988312534946840303902774090810390102673158169417534156153887509238246210071226536678276497235512967826346093408736497339028233424570817136302203983993319487038821839225777829419857932652834468839620122161883146381516608461830254543174358457072671555693742064281563686731176041465887062945823431263248112390783246534533850781224087398524692942980275355250213250681130890271126604370628331528970979690209161978224952409349744236610306004334228222955892872589005066635136914038849623873834716230389001375259463916415420531567752346195341402782411328656884515004659474600254899037547364011253220527711476811909106486802108871999486612951865209388071361141983656728595042792077964078902602452338548200591112691009733825080207284031303574621863288582597034574996991169526226682441737563175870065774074192191906662612847647505408641633145314518457838122462636255016317950010945230149522869446908347382817324248567543981640470232659980384597742289811618249616845242399307372684361396375945593886614781182845537459770636198048635549163718293171050092482182245149721934931516379834681430329673650192808344734083713161083613711072054238957347622993081202081704565289143777015477386186630438252799436129293982130786458299343225218808960669685848000442180340597465656247769482309606240981999185994520625394331273669199370639865345451895818028783495161578124224004394725097773251426965908343207832513549488240489894690412692159398761425374487817364892363514460463471416027202208098035863555540363402393695598759339782404740117577984065659043668456929310033745106651103964733045568312665153216986339635488348744758883203020876589480365247793395078678315109201626965884655954307256839076007076776742851473398074657540038638757201764843886138946945069535100837620188321290983943121440430072256945900239645895212276001369258652494921624163642120900707003390867218069619474682287275644199504797224049388704219018407288762017999614732911644310631835463725319890157270349486717825485274431101586308594558120844840464856242493990484925442367428287083064577680952454043675431979956421454278370016543567645034557638908219411732766113599223912324507165176213969386586534583799710912322757220552944581048336304271231164636202013876267027843887323717122442338432358149117027644882138984611910176145516576843340842385456696398290887997228912888973260671041572628288284383012600589081717427613654687238271822812444760962298798017901199579703817428477508277922003535939751925750375678595799783829532392683436472362284005681488795658590772617455613593118985298512579898841885401456593882542487994563659202406369213411350756074728623954540080575947077431057615179515440584080788541049390686907531631810630115638166499890885943753240542934080261676930316299460693634560144303737262642515664428892821159140482201774248420684967816800213478061413160961525558875276858152904317244885931165596402390415277257081403573909186734776620493761123573688095699948460743162886642248385270165266155846197400299432417988756653195036408369434659068813706985433470846781656469186516281383780982868107972217749272617824506956987160378168017854138238189626088331501144399549759356053862627632272217714481064815163173438003971682122993454556005817920458771687535143153557187185499981879078808526934110114599877399763242269469186618710602364821959188023089842602190313273866341963744602631292795863201454522467523467734608817623705110038719620535524577235538971391254878171579690422062298684980461196958599214906890474575529934449071497955073994556269854813019741832234105497534827871539415886503125219590104495750515320287195979349214294804886494233999318267200511992148694041008784388493038531563504416280736525682208869249340739344686692441464990957696878559427071340978449501296370111417416514284532339081360629674031980446930918062136973469222896313927524422067452461304814848099549759391564211029149842525642977300278432014918388132296623099856854582542300499041073265798244517198478461856396801641323082030337007605810324897311983760367743200661526242923325168947642037850769131940946603066250128370804529923482143828579893010498530822434202723523287337247595941038594518012346167208783832264347965134144594094392799994437900767516346369084071595341036136470855364192383317923599386601680505927265001968735248761884408935608366467154507203903201492304338834089978859445186838324307024035180185045244857555471984758864966083377004653737640479290593693633207247044379064787562797168265888369202928394753444968253600433359066506686968879776971779414534743732523194315336929464125526319947228115675869844838361837930890731041380678331864907537249771033050781502501335485545559452620476136640156787822464209345789133470663259557285581185318568463994297237800741578061645383536961294625316132374643253090198719497713719514304622833333495736780880992031994806404209845397297694963495307061270643460483753586589258053011405711019030495508370749810696616004752553484447535068889017890863325332365742708242422076484985882161178039897722415668106422142514265450043381616075231012371300096469658075868336512628414699704792798946711217915024750371305516358462100126718990196848213755920815162970130556850196817658657806057114293531716157934686348386818738857921846360361660775239250409828262599908051640936537083979516687211993278093305105482235542979065127580988779227033632417666457806804411777701039411194280829483157573371308369952016868578436136659195444720344120286327313807717055155313601387261418392674952356637744989227422608772769764617871036614478885233594771663757534358729180270627316249463124395277084304203611731448516716178284171253971425175626654961917536016139284918159610921586245768496460950402570467779513721402223092191248343154620917931427578789383629994880112717297795252040789878694465869709811248480406972323224883761619360337451360237753767499669701434140476920685515220614452000320088424364082590139353681678605379308675406227926444160468174096610474794690710495869206543557578161095153491318043526090269358157181125192819478736874143328577210398373214657635104730970998906896011527411573990401695272032615304867526232558258674633486433718537734209830860844457492370676842787687080149163734161965297514178808821200277349154061371330557850422607086495924418726196713210769978816434749821617841852048666752148924178517686071619656479838068048044190036127087815770846996121159792793530956516602890207608361790528551293040700731359312297560292445567164470293797033846481649587567600761032871350089825825532262410185124975135519593928889019983006588964006906176317232252885212453456079265639631797040759094277821086717377845395483131579990151363995512915203141185163678449744278782091385675577131138000299062291218130142605221915124248282108596346830523616052306465334219682537611930993104884222967922702456617528423801190681652567163542782722303217518283130404870476123295927584558864182669642027516146622908355846364110428279083188402215587362452599670833972859783185195412969570625237860504499557486556932780196707814304031915383723564077096923070702056590163486955249597120189045052463578523199235449669440982983179442055843741638496600761861549279522972924307225076950511523421256674087298719652186969357343192350522423264168621243987371340913511009377611109377058993463259199636576897888002881608033412351927174527109567052016565960008676121018197524065940388134256591931531286132245701823212071538750612638180917097105449564079144156577770628292109221997001735049925612604022385802088910213642288583967815676808553149380569008018614929679404010946706336770603458554823051777653804309616657359700167767334724790526363132697407017290308163644345447183769843018976524461560466726633779553487200168333269520542268039968859988589176191093156946406383690519553554390020148141783391491402129365617078244042190642298692424185085945251489744705577361091725848942710544346313389141236368610612608872798421319086885457311302248889519597568195163787474183872506505729000277239874802523750068853872824108677637027153032123022238592642936663335352089804385188774793851653754783102094489072096548756840193340649657469755484047603543498248946898363576648552609514740533262109061786352520738446444986175181934729029618782103831893469270685009721617238954578928979881544099889832423450063061281180615213629527277335594837221524805040139453065615155131388063806552564015335816308254754351978571719572434598140380725690567527823245298608611137663410189521933595923463734976465520612132542458834031159547279875407056169941589571145178825791719514051134926875892816928317738370162805302654109723102762545565973208158521499089455154517563157850854219229815120083010468086324832906467732234887613135982328238802363044680279386077903629640290008133692017555109141949279610751182819294785407796390869131099231537985743403734524876121688653670357339937911610116296460231641377012028115857031930770647107141543398917889918698500280956799996188062857505693280534194672640257737673209273768920201094865305586646791547231945376701900954466561828266985837209106200682852513368928479402236289511631035014087573137568811869662584891238744084466189770747492130672290139357960563148394005341771278831054394975601900502800783013791338391196692403065342463034039503707701672447743714011751495925313465786006608440262544766692621655154141871280046392740983085504307195713758740857471352003666277664555903772670362551618544734178356752767376406045455023523775431008969886401830906699959009524851638397075879886428936677990259606074032425774477514506648012307164787040891062152669689767249596895291538119013833676392089938978023601491073168650689032461989308713039075985718254371904289154105501098823447632950348089976741404010340820447318867897884285812072672794221198621728855172912575486039139204210184579480441547325928100178457788166152581318539969279701907187289994349488581134919955805191501565465512437122332456030538094875945518573532971110426331654451712334151022139592244614264319041954901440748061184735466527916961948403950955709145316184343020060530026178929232812740865440054679018895333521119730309131246497466830074934318873621780917989274263896646724714438008538539576092824682349015775754686016518835577887574408823684585536738591478409090448773939500386111550436339817242665103785943368892193320780863248855545026190628389049066942509786089413592242736271911524577714316855637872260713033135163432093358305624509835757834884780047479595948818507898261591054408604956755112035388971730271870686499165691093135945324321393918758301469239967869360103271430718663868298802138646856007536497111229433184216462176981363957219204242839881087887423329558966994638862426466516695717023404549975391606195473683130394567769176958534842049992898645964493953193097285792002119225376417440547798973308007503859705357265076767834471685489970463012021541843610405171328928227185266079049591708930460278468499448271475905288859022711658512629844022921590336002939144497700997062895339293139303073003202298892165056921552571935446625189603222257369024925833360314911277710235839133059132944163686338703713833261689722673065072524149695042626775284145505074816171816302193652557003067634556934571151256497862594869982310013101908026461659749965063836913720546027499454608960489577659049676581966826430188948127960913923945268964438911523254777338386805236321620384453579935072756406639390132596688026300484845065543091116800468107108954281339633285158825667955314777591837793012997763347368882979167420254153535800279836624163549315921401725077662945022909056227745467834155189323022608658006958686269776943376340449017313739385405335842932073981348058705429596314532827285808055180809714211806894772712193028259829897567229659907614602272700090832490678718953351868270858444342984371231968558850669644433766329841099631157807162964389800447162042758738924102098057615562312583278403816932642173759357466899356050287633607041835810516289671942047993488145831077712008608273812961522092439286116145467807638460254044007841779769329910086640863762824739439653239105451434437637751189550842113780972194697439426207792803565842702901842475441583840700058816275102382421614827208545093774057562857063305927426286537584236404182933783193502229027732809952640709296267915106169270239314925219712056888751736638024933443574136811165199427778802124243931467649929392891743039534039592506306001370024479505288243990058609773125274647796674854355205634474718596940530558981313870949986691309594011246928735160078472934354473940293645104685329258240570946981370998343706820331542268664139392808791687377235791427860889798316903475572629865347689604456573258812102308545399669066963778445229062489210483231384534028723349346506738817699140334625618344792187556137106039481588477638423540143181138479884575534365038140670384566902818080969187292529299723739080251637319684103169010826207350001523122812324203639369348182779859040316933969921741617657140228416854271664884199635997915362179986217104171770982428819804630378692430735033922241756585257176883987094192875652522483987835396104029183169476105778351672953840979455422542679445949597896409170013631868822238262927216060109735963235554807025424234736981018831853944628523019161075943552504731910734278130233184724989178557295534529692294811440302015507926423669648568348384514269396438587847540083348590826833033006203171516613516167959251662407252401076314715556098276448910296348758209836446994326290653479708905188681138510791150994654244300435118276169872687574908137246784552490547658843370273017099138329798063952876808169725625453353047729661701237513049519167601489043704903128264044937172037766954911785189108210789875966745467869011454828090402243632968837447836998255741619100556805793503746933049456210133692960662143843142351507396198570952730006585935465915225036449594905026378854913767229086199606452843646313514111006780435060099201450776475888442387875085281878654819741055797301725865271215828055769394662615666247348214732680328581605000814396481254505424707403576007532312152282683297836048703537864936576530638354686937568150833973339417174633300064793840606806199382075816933955418715896903172944001492009637520822005885023488307805642291232340834593143375345579579979363036621407493910742502917884672548408784001247590326413780980489354834258414868058208224494107619693131049189096130678862683453220303586485169142094256457228643292447964002142866005478799974854179728663135743118515254470708834203593021714328795461070955145147973584092732358235259418938581946004948350151647389968125575614288135429604347727511164894910030557502931818843193639321003698952102138176822505226116841826509493447809934724036052310011856365030046547741294235562015520640828270720136440898477970189422139786915989367100233500533723114662673216198887396209204801964580247490644709619710124088646826711060147967651751876554480450091299465604880926285553359785615083632002806692605638427098969726928364364516034720349984003371811154006427865946925935333158830134039300490807658423164279763430273347789036720845606342828210782225900389865383017378145039800746380661085471266683044789236862854279670967429790541123124930059464839783028751591882759714986748665680003560486951458793247944418827797800037533688356524794985371162815146740718427453052384670576762740500405065478275549155528384252837418882671357448661567034236936938713868764110616863327985957901528094622752763997917815119158616542498096932823970122222451634329321018455549987949925956913759509454859053589747548252108734502406659402393985687367844194951635048014346351474684406427988215534204924021693582094566605352290271818240602453560132772539800392140172194502283836832685196028051458121138680782678903604799416861839459166114336461691734730920869188845334688065225592792651752138443169388348005545979627086977453882352579846957470648896206328268476550912983819852040311195259311193095624221195612213664792697455500196985678672901109614379847955868014534931384735253325046519720049136956060241600997137533456557774883570196791544173482719956814290023919655332128747466262015597970993076629541816297882320841833197077514641561837058080169969208614758916004540565409531042267038869395951612174466484068021540390764699979486312908264867701070936813752601208628816368583381966861420732932804524154254190227666129217577044656706385143207056637365424732367753631595581694005816531582574794931680216947419382935816717472057434135240085966724744562142156335298652558746943102119266734535177288473184208102920862670616342412571448238002528725936231659130930334257437683394439961187465070741901792449801910037869056416528962632020383011109587322574239611968929483942421489276108202993463898807435555086242716820590856974608118197855021415756147958520491627954732570509922691331042313747436653381605960030313797963097600859382872341775173929293635938448143451074927575820604739172444118620980071215601280070829211508308829149477322447218404557970869282240934064253990978624756559664886228659350932932102232781377733766381553053271460011687238680612031775722298281570357167071686826337527303766961914986059766680961198221365683231922423643458584838374574593589324376210330965549831179834071215887251307236770028767078138346044170486779833953902288748600287611914426038609726427285451109588057967585660285387900730442749468716052904543821141202186168620086857587503704290806957134755974986195046328832192248935694578593593517075647732242259469006832137902570085495245912050194452786535925621896404929715728980006810159767656557539708335475970216706365746070925132741020963427599166038780096230550166548363346741214615042251098963638992793761701612852202233578639384799469444622640617406368433287394583032688088472752017500296071667068780100110593192860214017594623567202557863296113766590378926894178104024149978074779474538973473314763653640638839463972653582986019659859788867991451541720558812723319766039126582087399586163677941126789303120363383250593264992489668357540542128801670787261831670043587512814877016299665044195541781483053280420789414734511068695322278669901982115730048577467240865192172284191822731907407606614709759757493328588635548019267535527246166504553448049583428539612863710916961923006877355796936742303656225046190750015539041961014877067502677367876153734380244989857830059863543058086485065252259505978188644298107687566310231618568551392099716410144056161625054552182097416182636307517085233954241394692918326780943469906794368590759574508325267687984731145163980374775917343820034655290080787618760015033721738364633310416020951670548230036078689012677010624804536752951604716613017580883583214439702219289429271722758962917480614511024514914875072623169505602281959374965966997125650007976045630138151920720801360414655176764784892519131430422382008789614748658776549230561945317763462250100866137157204838702762033121472705304915165934240847386930174627770533409674931634072501225610943727973755152511649644975198748604501380751883688298355986863312027556742681406795789354222556262203494950994156895910057139923288514383670651800539059522680395362569556542676495579879771573878004368917244488210125022437858985936196841132405132503312729135888353070691012234057586879463376851424133945904703076621822217165200147504955454386838273808071251671900940652221204696004803180258282178044281405196606031359694711772594640328971922046807505895614425649125147492424354855618604126672005057590429819366899555057586464630226040320433010421739626134198128538825225692346561549899286954539041154386156750371986745656096246403896519934062817677492286963206115919776209481847949135011376394515990592190771391330942627996282004349145021330954888698668549962464536776784166151704367197228577691816973847638843201498197724403914606258150367644096903136948448861551485210594621095933568186648308168688142352839589407457175981895689425002388398594979484084059073640276460031050401654362604010903753191461890483305741707416569515059773787313874724264670018579894386723401268628784230879681603643448362541981779634658298267154789439894133354515582992607537301779552691583937143139727966554407748458682877399770767669595160717462840073076056074837506483186028616470867669252275145594203238151827567826341043503617579680372512707657915928265321392044762970920951346756211308741205260031256026122691644150674337605023223144202030504326459327200011094602555878337658425394083184604320411263657302014356593585383903283436225864789804984585720035836134965366073073495327220210370749780228395195675325895692771927881251328680492571607960551593638141777253934641870398647418967633013202308321931717562606667469981503238994433189393987804047128791612351087987768494511243100016903835950909397208608102295201850120884372860051699516098172273013068891241177162069486018829007732978415936158439923539225482408281295810545084981508869742668162797864746069822002699781491935273451939780099265586714438100024819128327814459209493338766434340065009216591583820821286197874065244595164446716039669427014085245028745549109252125788653924485270499717093857678997319529693078949226928647324773033763670825585709341158829981924269438786739810325719270963551802354698723050958028259996933294165044361832603529654951858370325045013484012358897952340015273994591983650257512219129181093848328429138560900015786397289509624047018374990716517609991155265450567706187859533710059731227358797258712779975805119978493057103340946867484841951958035150096381973505935542721957182688567775628997794794974232727234232425505306347900049753741571270914221058592408866309817487748403479994406402682719571335114178030099087634752151924289967992723139862591465340481056457890458763413439231904210789705538838142772742793250045747995503653945365726324756174639411314152962687697253610079497233212827804786100340947457267186642513174101057203419646691662229878578590848052647061876624778630165097034349698377941728152034907430015287584437572434583252260432285063048069249114210550725435126012689434674353800273711199840382810343549859302107085575587537186637403840864105694549789161389492083392119118825647950082431548969587572423584386188966800562253051573168175509334557140849677400624900214819008102843486677246096605402144249228542536922797673033065854887326855654165814227589374490761642917179353585682930963149566767687913212977814149884701110484592996171034952462520056205812279819317106078962708648406810833231146040846477805569307112410327498317583598256651072525893344361818164583504820092394549229963267927954441176374569398511076397265708013992152779968000163560980245618069135400057430415716430396456266592573175409964114990726089968734469132975777519196374956982256079234855500382467005660684993262524933621510508586168219769253175255619807667064268174202093509664953449946745173519532726596091706311972029449838971000632875559476762895935376617337165982702613958969294834679006884056190834756777554346269176882837895490203585974416116702159995568425406714605165026975539172918881751375477049563060213681453976616083421497011313372880300729042046164469888162554000624482884391804655821488804518255608391814317053583313484289886272749863859371087377844110308879277307607380025645278723695779822995264520326687050714789387138696686980931482788210671894045007534381574093969360318587415736867453685394346509162723713984150457501682764807365860686976624242879107988773108863887242336966328111372802918796127688451464662551043057450195873054604095297285072390023912856186899721084051630868511518572721985302093188600909821984294216103716585492939531548846224462519825050252902408231237493829164746271731334726483592967731793171928062821383013578733756906290885192935558933726397260442266209953178067034194222533292011115193056532644111443074733633166547372546353482390623720975747714746852395159905437696732160254444096260806823369029894352516389483880437485364530551674064331444233746173245682250887183704141863312756893245364350721180894382957541722934700672492991355557767717591983428074150386855106770816881574264538282590179397810941780853359303098456051113986539827442058497429503320060768824336474611334534150464348734797734889618005492037570405269701651178975442194265286084256441334195315240777803325708563744985828698335370043847284309771965520655751074981691843242897794722545636190022558605908540673944810079682090125578561552775731016662165450449927437248164994761688018584438847940332278804310235999807385891268499775744942006653402263259457361689449733824908334103531055921382664551956212839772693909647318209264868668628117934350422505166994527739757711363311635014282919063373835030053060136021346228365845434143516033845157877549700750881833211199561189699643152751924775077110791554179052513813230858660491388669154590439421642998882326614651384293855394745998869608247298762418420041521914133211616313284988814945897729028526144980258566474360816357755284859128665952103046689303695590834527483345650271716763477979193559844473590629589957510904185695965752941606850905163913353738565975880526848936382895208178912931702643879324964800548862989619306024686835647926151832946127235760927945898647454611307823321478823548028191761476872529291980265752886602918573284816019209554242222237832458026716469490818967661350622084657975023033523326142866022274145907336140367458963745738535824526137170597718124603897768005593299176421947566781223379892872154468417225200262653305943576799539006113634166208896078917938760671525950539372601483434346557778161695518466398611194529609880712978653589262861526518472072813349076172945713158176683877837072365907112064765678351190865815936983822561264109012108109074024934957100958845426491174104448502367985576313320686968840368359651277282042519093999205434481305929885019337139252574688375477051882781017378920941916401628152967245620601178507930657083927701581687791908221123665986155676719246930225496931199839048675500475668230809049975891016746794802128103243464144244558246291417579541479218245810239099139690188285609004832132798247659628600463011930167905707634355163337513179815923359626870836913921594234710051413864953966456911305289817882907708802184242252093295037932791830904547734726668137175505087929151486649103871696833755043119405811658635914170326402326452078081160509113620613965282953343231231764148485591416148009168843655660176461049047859683481181442471195141145317729202615193484510500029388225219259654479007646749826294650594029627652549243772740736035653324169281142059904453180483299266054042419650683733213860909287686784440838843004657664631531315447607205531813993795248366728075189048039381687342167892763962271509366922520596774464769235870609792925909747416506485923543299653225042604634075507928996099539010878845357335309921225306431770813633197332923511441431426006728932291935872933201222144624162563604071734467150750729021238630518514209407037368841007202515171813542883239196028486334964172043276803769148773582378016644121945470356638000133391320960064685242093166886037596034414626188693294038232108843446471623613315053558524328178607491754391149951898629124803229797822247590985847798543258991011343895080513035693234239959459468394713087241670349596793105535364956402839595299191584923385225698019445081172561916346776253650140763181569954946845956124971925426856035174350628361255428033041959779840149319243472436836294573191888894066822996915831979268110685856977659902645318403077651456739340730695059410435817485709121468183850185409967064289196031607518901281407055740452266498193562922062443802090620074714856067896684799620176490977050625384258360540537888812971084422731575413511970927208111632333509807641040332454209629067119616447008109226825050276138695336335656635373960139225229849876346020247534525958921673851786792856648195513756500539416315444202406528034229979172452774214202640474497218105120093322312702156662413266554199374285157189364901497813221494526463051645358967585062217401577694152051717233620798424240632376371203625740772023063354816866107093975409422812049720703930374127620068501499759510236005452585317097853464265602118383460476711802785621636656614527587545079919425343944784466305950070054086917644995267075214835227393862622483420869607290825793321507912958753645537674434239928647852091099607421960955074579180170408767042409120669241650907719202877446662435753026558287316283595341036698818558134062154647593781764116393146804270800953539889354842600274309391687347543060381552871670925252370117905007881455273821920885626739142140107439083694770801137208645858968154885338914208347727946786860099869329267644072860389320856639611892439841653519915905450662026595404929066003532294775756339430125999909869023747487824334024232762280388632382779973263312398903656735219454090411226714721731394072646656047952759778573103290810259461241368711294626231831879327274540531349060810355134552810368560144846690435400872399915253902941588769888440111864992865223842540183447683542955346134054831621681401707148035756225468122712545669099776552325188431876659526771804786698086844755211723218177800574528286464219458152571420549344415416408513198807722210017495333951604829287837605057674950931439873045743966943288895876535503787414981752483426194318039258105618485104545726398668169621776257513201517502623890392061616921058042738693585955995877513682484843621107114711861674881849954819995955603015191266513639201304242472130691002922120111176854343624132583939097716804291404023294728394531564698902034839746393504857273762688996351967630454092001185736807952096726123256161804258664930904752122454314243431275030781307962049804360745742550341826034091442909611320493793297994897829915388548987630487888323434118666423610909333533902606630133577587301624485220974411607006739538217882922411673703005904200047011301708780522237444991283395640918125140002586197713104183421906840252392329120033628079257561610346718499132013331440005025663792425344080351532394508420756560353131980682116744228537052313021112701403427695975466011389264618548758768648115107248810468312373735648072621950668600623314955852694405379709861349742343881203809764858703110180827150198540709600317549640850218705799170520632140262893823142391228784367987837195067177984556665333763913799106527940722964888396234640957035763865774173625943844263219597114058833884776943095009858968553079762414034850732917754333482000765285398000642885162873301126004714865555841874235853834720240499845907776962891446570958946359527587902415606294802552860021212718439498913372466882540440030184850308169245911717874808375457057924287736035110818031287987145087664765400614056385871486853829604594759375923764999594825174480238994326607258259735347333317851065773700460752175143404638107120884140717539649551360967437123513728736367934792954571221290623030245407040329518575447221750439170891731835119606183182010354691203277839025610657270131362182990927836773073324078404586638117444062077388124232934800129855377340162306790239806828367634637904634004101119369589927538312852625113944512775291538615386794929974401216129662049803987284045588075111075058429969302444620649217179269184044429829839371187736172732820878111032441163585417908433575975364515340240439643741567202195073898486622555167445086158901009572054114374636955253804572215988593470456239650526111987938753261704414146952015153221478846581547479376331101138427253938138913144620125958850441252860186638477994885569204263018413956117799669742957904045159840144849220941733283320128783618685152490858958668483614913271176142794366097226266123576171723466561142319262362531399837645945347248746820064522785550609334398906250951135539519725922091621515757828201148634476750087146325350339897942061290264642247715600906364141688024223907228183232640552874822645076891221853937564206324615771364090814564017511105768501467599364577972500109057296428668396383762603967629975712058704726455584379580980721647599031513258123805493400660801440974737396878226833671113846557268225712282923555626306833946075132036840784161196398887492204518731067059575278443381109270787024664654551674505962691211872697237792327905923579280421819597744215801090350216505087867021146830543501391158467586399918080958742885328433194994648049971531269281391193407642257638379166305891877710264351269934077139049855929123624657034405302470135972351584615734989176444451868039433717237556863856109233283217953795401419815898182064320486607096763435288193709831963827396733794944585168104057910422055012258283067843741813832703344654700021561981828528585549425192382662081188037896002605231879155091010798224456071729870118041521972526785008461801570318351559595647121141169433802306783418721345680623882649155860958958151623791395762472879344164491067652260115707474937959889538359637193435055956031561173536848900768625846139742931829049144085450675605724839300854872695640964798101459336003068069802731902763954848628835071905755600096981977812255641248930061287481299345453493030894615290615451542663862793923484308523263447192263271124362187757915154201440455531628425833485331064756141098608283092055774142776974671669432474922067182719147298938153483528992863406209224153357059106325903832337768568803017558060962438220493374514091157123544017381420822208254110257951395913169929798682653520681818704261048919640118692616122258305628125803341138686570595880885021699685281947835651796141709334640025499734700543553214015824488071728742992849959016297709884350343240795557519763872176450855604416813097643538272166289036354104430569545886889312024834640584317328197536609619691753469879912786878772067912491573348126677780365914499199916861889629926700726588106374701837897150355876884332524725248231459488062401015575561749201872616773001974965312909439776508291046811476181611319711815418636368679605667537570215431545647275016778014861839105601688553930441471273188440120681408515472342040527317149238620450781546796379143413046568101594189912555350851185043994628492320459728525629502805333703144067802983232274406186964765243293364703389745852822154457475670939587892051632702866413145773805488849501471296828405050824196963776809097085286689166987216446369049554682876289630265634230684118311611783970114360481493188767447429562590114220227525889834046197524012066811875214815671576010321339793188995547879207171091144832114922088608315924511563601626407229494678505889225904867126751408015897593137459695827129518826789534701620170796312573824537757077408744158423777404322557561523235099524024548362880511089667739112555705146501808547630601181044041227132534762420877963319077282650893008215382466690958095935528849659659879621870076789646613311154395416015396006298663900937691959405777314592984517148026837050440250191251927344222538561573030365914020463910480663614580707744128912154353685872927080799856742882330028389721786921825529396867438514034040239443118827367583057440319784006003870623045967956685757265232318172447475324597401408844103355093552058487295244954690274862384614653333739695926094291092855979192549673210039221559029520444289065426925530826500049922702228235954546811106248153335466001981890232163401981161419826532073342381576328833210183834183173207336162890093460701074494761580108241256308671222190316016974996259124752047170511063881841105469086399411193512978999491678066739622443194824693190807730570018999952634189830021399783631739219051175193596722242068312654114573349795626959617457760447888410922592096883466264495521612923815389804679132064283960185719210821362516337948734388741580654426557314870479803907450588287408340469082861512619599561378841409643111332558781450135787987512013883309161955487657681238833463108531843402433364817347377569620229728321311661312091459310224089150271146553045004487522262189515287567322925671728016049749087124483079139151123645025947721347416346191716287513012665121073547409514146626599888553705446147589054872260731111037705769861172181451730637723127418312959227058530140467431004973921112353163795712503097690690743171513261833630336911467610589541492870377916120988069008583912804055828956074539495034850482741569857729180478184383801760956897709426288739229270777828614740565215255736356437564622426866844497341287706270531684791681857357193420947664176986163667654690241365709602733919936972589786870177083244654195695381140700218242532751991124323400019721636194362179058117769769063857528224281006143821359794422972217313155183900065257484662908793509329649389129371802330600734117405939826457488055315396264956769995784587903106241235581932679704415737238601321969275556229636488289264077961454723308493531089469882143564928788426350832439166784788001620110492711318927778575565244562810538074949172477713129693830473933211848293825926319879812394331473534241448905448249152725442954650811666395704481852983239970701482216524572642720081600296225226792821991155406386345536917504310938058080384861908060095730554820898501864438796704784403944504111872925089791427221547445220951209757344078029649032911232847378480509368034107281627252723571402241609445618729991644480432021297393863353102492778504384599533921510690265529470709829155870935745380713229053369270175836485919581738948794177656555904267934474719264275773656313422590167163356901134928884478662702326413422723581116271981927046699385938733552223317119871565479992476579539294271546191732676680191678995761663740545930525330124723371952260702015534486038970193755031775891789535605600059536082462267967194111041891842345918123230764885649072472775920497354191108650018491210052805595692972905924521339857997222347438148841076389272710814354613077250843319069748632313879799269364193501415302774642941240422404465737214210238696465305551117665977785165180202648602803873979129843718227566548072072685845544234415662925286302395896374076404354115380315086059678290104726460682476517531503137201596545817973771678594751563402847734410502102420081918227102582910850917219413959599007387847141734706958823007388847998661854290960793617722734526833897537418940255759069415672000731154186304070598101421959961789989785262497345839939042415313836727398970516227214173630745927964353657170759258878044550952516127858223767038556002619995402396018761002554294371251830121502848999922663961744406102030771555918766881059063837966326261304862568312302749940075626455824372370714300901411538321194985751857866160445661102738892380503039713939206949856910940408856377157202248977712321068007451204805830042435230638188551537851050735954276399520577774409495314361138645794190170885677871380894655710291993292796256486227650320055285901974455047466014001268790487986296061534117988830974680488568712191222536851972343970455229032733321358752510877858648834811773033239756859192273736280078876578072133703968229374744127334135303420725314873050645615293825888938244581204201164989614413618181669040097600046062192626467475605824767291180377008696613227969940886899059069033617312926782676864708134421453731836644131469539427609236617666218121059242581215981306324453175043293055017459009348673624523492455229115024314644856004468622259175266441450013673323081940027155194687146910961042443376177679286034155702154152197606131384166196466884171734424707272883758103288837732758205082616651094857470114700272138118103047917907321937241246548375119502816537721172065585303874005577384684329633380067043952665048684532804397945514241019786529368476792985067029495193275751839631045202951710832588353464116780147173611977297628842550081539931867588377265197971649617838820693403099538110086877698330086439043913821890295224293513168694342930089766289291148632018422560011861870932731266037699752229888043791802919476384992887336667742976694884066916103132326219181267494633609727260075420972541262751006729887789261933094663545290306505022094996710120149380673051598102869765984203762399008892861405662019669949043987616757862941214264534758132392051033843608838354180861369782787576358357859110292751675671774026287436362805437060874750016181763588932938266027300568019449276942926641682480849211138970738654941419522985412638357100445709089732026399840987273224365177760652976850238870969281856108803929364322107759723940844745350390635421916989167581346216427165192966112748396114306874214157633851239023498883249202635846163686046792810941021494966202037196058059226288123049758126008726896777008968534985405344281032351982450424684753308103181080627580289115118435580111306456115978879842197005542523353599236979832708228523760696942190749228171699705694629258163847658171592021690139678788369204796937033919138852329589426582421285395084964281909094550410936414944908113090073238008692906982562911399669547739033046885003809749397807189951421993380129343349570387960196781303959514647054322003443580379145012855867568740159158260832697957835382500120029692535517806175700215900135917210093064501002760642889772013824184842768675272487000159387341223386134841169888406642018009942768181842281638195561923541153120977523250558005398446140062908486504535131805825273384593696989348546431015975678368714338751953800689675215618842456165904724256058493566042884612637645662087309906555665450319138495568731777354990084385396706067570938286580661702147303985520368594520308031915282009425508135334807521839807053561157080880392908221755239862940575388275469452813673209198117590822778031693907869508156883534769694150769714345157421419057019897837108484975152941991232177244456241735842477272130019885273597531470433114353041501561837555286716250377625347339708685247419361975780447049794218765198671573758419371014436715110668759495547379950166445571485052773390904336974023016535493644653913167928691413630805551445865364645831066172844050530692645881628228418266566621369278197875543157488787747955346096054696698638234514879903454437884326504357523001969552593166185659298037262156593572382189471348242847430887725476392800785431457646286561641939570960411067168906235327563525443216368944365919615884354114651466399070810861594300957924690349413507145294018552053590963329884969613530069507944746425698542302615880224105962052483334750781361269585069812443327297651135348792943859370056316315563062530576008912051958139219709669252120107746837644476157598592343919486449443529946206526763802047372772970865526833983541079267120982181328408997892389424181709497822946230297238739242497521915292668911055801705915856212564635647737940635340814740173580880433786233156835614328188165873709333221226991382575394329525692812870264365730408210624358121007782090558981148608115994687365146423569258959485734532188160865076966861880075078822450688661246109091273131064344842791283385951956003993199938210258633275163673853032273989733181458666754576419762137019074810523562749256597432818420837217170457228811949010569779017987498127634975726639842238460521896902436058500165446297275323007035587603945924246785053538806178441853812261525970974258049715165776923320054525603978067655472067621110352257875594804080452185387758805584623158845916732742528547793647591915484859207618578077543144771711917686359832162092122150676478398828367151792833292301064008388139719733567201626767208094508153355308083817193409840831160640905962770830984159303874461388924087526529751826880734939073820961417773580863867024034533368153161373295995846779891193841724727386662954318220339689533240334032928414576654654122888420769369464597296294965914553815505168499589984011445356333471266779261660180535730103269874674673853922898767881124557003701162232728897697738964757564762194444320429900785727010049024889912020218499721848157542743297062931707685938922253701899963085364860771597108622385646893922523413776323364387798991115010845447650049344566663748764370647104646839508968070542472733687030696204516722574469230930699659055308885599393773757080514218640680554614247230369279477398650497065362631034622837836139784388057660562306814267933446137840579318845176341700621899374191219600875824038500868000826978242949866328320216603100526858273079432959035105208471875243713641689470717975829702374261032440240595999296180044727561916625938927747936216240532552979103532849625986264510034007093164576481834608968917591068692675932484721576922621135094400356843764045988840578602815656603907656527218125008185038966677658483500313281396478987043337247631481644383760282791497386861291208714539754786559400963797430359794429695471793048281383423651028558904650508133915125704382416539172217870689158672191617314441320858836423280980488939822531620501756792729518956359798944779513618238430844519779587631626177685103733401164412604937439448976104360263660844866960523665477975402404803100837392177356076741737274271015153531273104568182734753841982747574858950300836464536772776491656088806632968895385235339215000640754114992514355237566714507151608251922213749338136250206468096942449942094583043221950561750691888589633130848092036553322924395395148446308881361605531857255094398341066092385482802493814306411038574257812643225732242656187357957376127049049375347032539860189289632024371883325829757759656397196190349574036901871953284611902084810172023094001640265009438262435394742545149220667538520843813854077571634511157573247622286481908030543434358812125002543898206737971065379857350451623098978029412820796796649633086381875009941918692624561223733596549143782156488730655278295372311826227260219656840103330984381483557444592179677505865940010590659068072929913953025091872292365254764555113040137456768307214971449317175491590543578635793847745016040557209691990877009896378610379691554096614591729082854035006170060945451496673939735128601856578582133839158022401037901833156212749430889662568922448849816717252220757328343023905419930966434935796711773749500398468423175822409819147612013645264910416254673974227447692512127924592794653959801490891617366572594343533691785162903249608345488228327010274779391651777702520880492547033582786601827899135070877591309920736148431383402319537201874921142086256660330747144890021566994412414468824535481237935816879372776910808151224221284509715099571352307477382247433149757431864194464937208966878652676297876234036092484122974153957015901740677164741342158625054873749574643505192544612553090682632079225049806162001914141471082215380933286364679342500598155085339227648163990977635235039330381845785805025758906154125467311099611268355809602607041970346416639078518556699547487104648675263454903753466491724683565828376529944572984195891137118033360968057123473393520638961175595338901865940944484778928905056763998024272789195210323563691765121755589910510881232405050421969989545403702092140653014147957911046554724400236580353089938513481847731350671467882491185933792851968332466645965589386492587404297623454340959953642610667688963256501878188211207174520388266826026779753673915878587404065846867319225390135870093671486261461017844622029484947572585387351665860639041647512521041101202340258652404961009039169090903691788550532888862157624045138417305225824014437842474095400330582592750495863458298657828198813712136324422680432770194121059040995069827188541772291378910678968496366197083009278790060149163028348039347310348219406591282994028849023893307788959734193760736932804344772633856314616762327207230156418876224807770818786469549274063573467456619294848364480147142335454175249816873929936211197195142383874999123392279224246232180285963370784367118825981206366230874053040939120649856111080884835413255901391722851844612010375287234841091525864841012062832087157624464185290532354114767036816190828852737364640375250217452330178158937059008452867852557096184008701746192022823635904875930349032145738655100675001722497148501862732371465271402246577551705194730205356657925849503272321687827963464663912970068637298351801796978603950967921668660817161683418033808375673220690428430374437677630111413463056803063505394495025727571831025929053902229794836793341775409993122094599067749313923887721775121435528451595546565161229442262974577495045758795247019857266861075613731288305966242706708415386502113636191434757233837583520358312788689176425474925638975446232943027147274670913328766496274058645185225568911511859740657289055472994351741697733966331648566124322721675520836175759390414292871217483089913058113506775678761621061631597354273531686991745201674104529086021288437931597184097808740800036866491877185900436383947490246801255926445692034798365988761917892448139555218012863525639889532858075132227731052288181308197819249754654543954857286903558519910402667689652289413339934911054934342856366336444164702128037613509678182621926571624706333963693673074760092930784832273390812139996009536771979871069326868500335007068977047159297433228399590022351454797715019746803371967635602589048343005529859431781343082345917814906664598842943881636985467886135000405867575485247184114542962693951411151139519221012233390081896348555310791985979131937184981515355000798258538986724322960145864109419285080146660725847304829920364713612420697499238698459215753057217205738929790295946353370874963254081720046774994247013108059222016689376168638031946879291669066776565623281966874122747675689293450338848894387851091444246061661025733440831754511737127530632641091576992396921664521802012362924712075510656693184873400301747649557987038333330318839152647081485398695629754600364805987997184531647236422036623977751441520690430830966337512302922863891985271461297810722326648735084800560327336631683583089593028146690105239924792106395307730105000461236302386047930102907233942602537103658967888427231829505753053850738030371372191478775238357806444622872937241698837591323381435759360200128344227104081038331162692066979139920255750133190407303376487562733190863542157310620657434993003678515470406259245536073903250353782780332402909301130576237711893476274597008419615351127335289446445337809974539218406385302128011590119951917292445348547378880292667673936886068007866088033195072016739010990096159799503971088103453849077808801603970118797064219068782207330919690442581318962292281153654107626714924570326928555507487357661441954776280113161995152558484914473706973544698196685495553252820757511044475887364401552879488044265919681577231183144951995988477726905644145019194184945916271217496650752076967495317376451625361907367486390616411545914099950714227483031763733157155896570253013267443432705691565937164897164220229208526626005593360337308871783472394034242103570103215237715801097656629171085671328086227769592668471068087684639970005648522820482175396404797167925616629209352600150813780394715238211564193057493420538105630851095914649352978349126628607587600157805881108052338481722493386204500349389426754419279985485511004585149062390316303647041092327943712748535068728660115835677157801880857659925595664220506680070874920604755861510394933826438801808648998229440653398552230557255744779711040076787934067601800993115472501986862252771792270570207231186805092017651449021628564015892358560036732349698167066558276969310189439192780568583002466436392305671641503796586458578223630031368043920999911391786176755601760977486088861447204750552289812411350225099537107952374358334018778876184595998829356811194461606708543657334304212182547437016972591263881648350822841011826191487506969899359678120130975727391914051773909858463615975744182168203873186240842560711998538060987585358202643451459989799931008333505150928182873029148891544269585697586579698514136099040856639835286919657046119410863863891527349339323426892999773678227354689998937021337222859316251047791395777571935053532404037742152995870597306570354318132624793866903654276772322691033021826411181113286783024872062358118218316056143361753547573832075249465057733991599088051218067648095042090051833643063715066043069266061535961966285201892210675183227081798119989304899537566418838567489199169856992241523505015702131236443119049603900077650026752426439148859409956904839062037187324157991728689033267406109187327731774957878216041256564426005369050839840157181221166431896688312202010100127365337629388844355515466365566274023662809329152657347627570360051313912936757702191603742876520664009973312488349235333539138209795629155998602308575926375242283372569092009932035509047811357655367565019636489878957935850259543126541622839470582720245475220318733637484264944864915040127438716584285079094140344769525170973597711843194677067529252592114483184209116739658141494813373949748607775263973988085704671427772842304930667252901901173008069121491437932641352735610709812169119440173469170742307490326272743576865328535184691070273763741220195071624780579060354410126268112777971863743628299696810221279375324430976860510181760725602855067404251374499286712185774970481990923381873022490447255721851191694325417408016504686452008284670649206440620682102431910980356737276979369070182380603401411900120683834626242110604860730675778566954571333243811224456351583280921092062085679167817632712871122003043976961860888709476484576844165619122164500149251871248695527761232181797372634018703408304754410296886824978786545236383594812902156040516520743738740154222563681260940825485563259699613260748000688167412854705051202083407469779830035057349723563809041100841887724845310485893851908600588424311423583190729665363351519178400676946795700483599593323139934655417729550589778357116534866449050402167452547931564438287276110413892882382288552631251923515342716654311559244018753062319351572052600878691871494178516192815652393593644555898067357826317885727319786333165697541594698748117966376896535896210327653725841663660720555874135723219121399665354741918727605319855358767434607097291025195928227877338019792761597134017812119938407211520305954380908459568768014421471190090334642236084519428546464290584912550416272892975432304296904426505976686129826651828748185685861843274114483267143534256345354558962665351525355300689111496771021216234139745532103342456939532688484824006499365895376423752480153975400231120145229958730303622340775839250326935794614108423630042050112235155941348069117077538174871367182257247087021903104004674135795892435936281648080452496022052828555664538547484287864203916397570239076009737913560192391047181612734236136066865220654230879466382850240611350415107845189435938119552188811916111953144910068252127136690367952010962266633846926028878775976575355003192165885693744815320522828462336160274390611506951775730713540929723122634515492509467167842599972055930855676965117651153885695490935148525022802645057319960421851462896930989036278135414746769045988599849651284422913859936088085793913330776290308062650380352393584498347466690934339342711065907010085525753884624456737827817359480205488714752586336026722207084408119350147997258903340471634704330987917998097128700334574053933584581093471152018366141844105334540179001618779889693988538448805592028655448090629749419895115499786893692780132705080368193350144315770575222216493220876799676793544735521781653140669817892099100110159390618031579278800029115228094941868992938603782643392953326135868987908572382358830061193928364034990632570136514266932854178344350583290090982854282756094787946472816877147991237205865365343838181003374802826138948653784364651678961764491430297615111622376620909846722640955067044317184930635046337310462125509082399330627938382717926673228680385637641454293222741632559171456892084185551998893362906755795408911289129568010723904607607905979508491334778270717368872696344186324656803387665437877275693621222103044844787270147322300629373154629967303909023776441775130032821671743543730961493695938667295111815089835104842229088428804405749268627350562939673549471116744515491570815310593435521383537443738220577721270521616167385662065649316245340188855976835733328928448053327684180066851196509613368381304315230177558418919074947774314255475978573794214379791558879110387051726255344626435871485940230343681029241599994697023416112749393971735095603394247118801127855591169798019838624082517140536915886864252369868770989496593254596212923469067148423045800300212744340323919805436553508617406681458258842604266995666833880193686610465673150711264115443326978146453655751503332389996386084338724367620874024023778168275124858699873941425249024806209626534775270166430382144996703927546435050870003357250278965585827035797684749830384772514845149571750634089297355138887078900814740477475187621237296548394713197338405771234388598399896754404807707478838590407954481222383133237662096157941155220999012995961490565701870003515510055005827273042813677311074616841528931328668899356034795479945105982551213380522935215983365839338969834021876497120882571641641110624633808724869164643186535167164109071483780881689366536999682985820460207947164997769986844470496132882872789888555428548630132489640815799108373832176337246054750346297341247983812261553569890650160854008800332416982863456519903563677002512541774079059115978083811222518580385780505474443666335232057651326623215516659365123711158915484904229966970205827067910450137389735585130519147486889832008399924839040864678413866810544095586513369777344160594079808681069713688565287000901315094767799352867120408477262901328852527747390886532516425185690848626443407660770808241151601224304401268489387806625869645989757245139863585236056300551160619431014753346004936919834578237024328443391238326528485795136269652931212608934046001743805496408044019294550127262040195832097377868983825822830521586638182375091462398027062285213438730175401523356465690991191960938716471375532438927146035103431540206725419462285395594112287634639074171310304726525765354366538420165817586053798996553574583992707836232215513395521797947442795707409354269726589548028179507779046280275795569429910737553674000745506742521620032780621108421875786499718641549809703650159295956998024444810740968057010236227150079432596618398605528517080982276655175307858574704091854439097724490411114101507734030439446715623256288826071968412235818727327595255929026495471113465854241518257935454931685684929090793436793934238753072765706342264997385951884871674282409757549156363042444422513677295199304372320869738279293779258232347355003796057518917119741179808258482381510493830134438975595751779643424726890304808095474893134284556255012699306406695047581379935704399521147906134819310722580231977107696469964790420245365642246786249025943433391899631923143364889230452555833530423673206044153903494347317132192090600363952709197065415028345812947431333498741588068985214540704206941237925019460110878092586193321744368621855481739998031637080071457896867242717256452328759342495980267499770837277351278329690217700984259713793491980163178888511753181272838751322347309468317770651504945641849113254617207034415155223569208959821747780202688896718581454740483747103974127482252760050924260680010509242520794209825157023989094951469197182487399574482702741286929702096599110887013930363481655026447995074077102790096015629846732084438219455046918738684351028962338564642492347462753452898107773060159760782951056154500322061128937233516377659112867541331366238751840492539259801003054206831688690608898470354431736363156433991942764480963181813098851157588368726680426199148208142323129871478736446835675778121696420627287244535096293516623676443001166564454640294300747072573723645492145147198568598950182554446036070534340205530071781621508348823724109988360924900440950593546950941953221231329893825000508104732024713242302103583751331618367960194832467530327651681006665371470559666422846390122225727506559607690813499176917576165331010834413742055696463735289166772968503977889779679572575998819857255920173569849929140472408416890579896236456905257286759598745648010016292717557122984902423445506711952826178309150457836281139668739367809082720469557040194970062502135826341719322453190406168021059932707927486517559872190271933593832444386241116637365517975028934125178170374830453265954463525535422573623104847644630656535891554877184806394570284517749673701053168371502285707488614627774704946432822276231217217051816566842156523494660363121561160756524999592805463095793664309242062255059552229990135555066147582077451097563860091640520848952470815237060621592480836706169523630301085278192001147632133936748940068542611777341610484027387897743583973259520459491027751922464664848336651299159355172824939338983717769789498397671424788011849139427912020915897113265941263898821889304705207155228150858727909223856525812800413416113394616076149835882373001723267455221568687538760407457415514916942920711522961811337384665931980638036740208522961386536424526350176364038189260243652500718830655446213161438345776065455584274563500111621380156489455041450163609026331416683897453064441351419428261565484831210061303777764760419155908130748042609848744484422993083274308351941213634732576939334470795476539138912876979041292183516788230199990012281012414329652052183565701054896001266717404856407537349647215925303183994494622133175768749993129760211186045849717740086613690208231423918688101832781870309591586678612641582498550251885705810282451485658786573003546071563264110888707717342244854224104717869265936220200970920950708404455019397959680989208266795328123793606430772226227088784399038720270756078893180890422956422447550183973958783767614512004215358400355519400504771654915987037584030311807290086927721915800566395247013734083913069603491106755720879354262239755914338177538437253232339478671249181634116266482333798663105915650974114202725626995006918211696650208249629011863388637964946275934587297355910082834016906403505011471832954983685965574347738646118611918431957324737797040383183461133177558638968702432077190492963975434396818549407461616925368316579902183545365751574536526676387748574934648729964607347720948945321368703632288113742194839261804212193049433926999239293397396467043606070302217457321266797910584677925266989374540617573891302755784954105015826249950814156897210865169294400584386808677739170066119024647132036913924259209530937345740808432332867111916214211278476337802209640808369683763800230803085152179225594504754814126964367949314431645974586856211465600032455064544704496369751958598656086973081494959852277605054072683296689871988499617512221086181525446894977455607935186849848988522386832344742694434175785641344200234368436187237697702645940113210223380615616735570180145139948096508419281325710552887176174838479398785058708133873682178696196455393269636740472762050231785238679753875731157587970754235353357173030851280997040416645992792708528784693038654329459521887838149631340894729363814275763195058405963626980878591155002012320751584188755633559691085292063132782889504719936965384243071281861341019025876639734750043947239032438221308712012339795899065400507069841197405774349232820896419755262021273237353755551803651151330119611477116874311614658834466599178990447876184239920516497997392349056186125432458800251219890063382960535894352734312369774917253216553380887885404456710856233081495629809349121764724930464383567323021947891239523858173365960320279653206418434233496545641087435970172304266843452008130427764877726179380134538382773128640808187889471067517978371976852328458865023497173857151639832324816760774213499977673165877586722998831502203477610501241472865795929046299632885171490202134011666522176529864948379166121991688388141757733424624669701258966948596825449502893863181169561365764637827643021867072320608618344885416809094662385597827286929803535170934760717776309810366296054660228954574582868252374871789010465529935998930609523475595306100955621488111238454588544798057319998855254252587249242211372767971998435247687068961925599965784049847830917915007852090292924003294695292918581770874915296616958025250741949547071235963128245571177629627727654205926437004734655817329341418429796139116432468177230813892130359145513309473048510285214612256410907697052174711161002248247780822301137481981104113015270092182486289070101999899228825275393863103648728995351611759045705249642927673919585336089106133561044889486175739414258898421561888889293838376587007205788332714147076553570586313484192860343341589290708539144013026789439194771420057978138987265031563377925672487009845860347145551820723413489138413883512816718463265172697223740775668160587148897938602676146417494222959021656861865710752857126889821981171091625730031004988456218571582247229420037778597368208242186965904444500052132445048522651985636061184901876404689526506200974084370150400568849867651939708217245543198054331351212927192403619480182367817702793877756280243728588561564111703852150692250603375108581372533677368583260645294639071542914729904143042178473476194178014273291201760105824617931571852722472397589561647874260970506282690021816757318290347161848049060277515475973764351278785027949384704648604562917486907981394721325257873480823403057175185834964456909474906617735185102176805004792643352276437947327866369814352601508044266568239421843948794026472207627994368297165079919432987205767470989407826409537300389817143560773682432992864988770498072017348044025401988675960895789513039669576571904913882243740806162076372135274403232417530290983148156369371237646814347035393504156704393320797909023314522051656722022787073912878924086500668631091506580330129822334533666480349218101379049765965353246648413919918122576207292348664709205653793778411420367919557010305246018877507164898796763288627167387033128786260633930058593444850073347180034668182524295231516794882754139970147324929720428114241247593086764486009194299834568536870006890761950276733385775892785636643552502271576392549886184247555208689011081309004322945798172503892355986063774348187369035402322429348116449400922020036551118557049893186124008728249931534994355104749087680612984192571145186110233345737999708120813175282114513212674841423064269622147753761371829995733052806456732471179744313844359009252304408959511606580944174121038056298830542970117422809845146251704587513787618681686016462537892284547158855293759454198160029861592169013413539016318913459674247753512135157573807668003861235545302260304546233503444897213148506193373026586745759672578179212304777835313448257519433822293995638503560913047604937565928541781402522453857222449799833139118323971133193911396280154534097442550467107403758303582478370526966078402172694582753394984112757865083433299167596682872958682790709910624538016799542535284764692709708184616375233127410809432049408259704813942132551130356127204119694114086187910296561957010326306367050924207884554463322563821917750448031150963702755857414435358873103376548866186699552901064514073657223560140776702688384041497735168831960390519906148799189750163985938992221310606933085191169190373883301499462072759924106849079822978834897061513209188226879607979379264417120473723065604818784533508716027532798117141549573904075366415787030317783186423737107783587745838186590421908323426569987704542112186623072990780773277977018486839206606559397413483345813210790579304626110305394309678364159901576423170027881862463444734178392032024180536416014379146252519040674203969574010811271860769961782120398938970045387051394419793538030485905880370955851879182867707821995248450848433239831912900779785674684502920505269376502318535417293325669905729332143449596911623290525033615223448684504210271024793582558197905599401578301375825313996898658823083953959318992624385171426445548208786808951648042500572544603270147741055642465981790811775354855403549313149361180607402309809710562955694987462278597082369197535266532712443819988622964819855077004382156175968628024045928122545002100271134986348114008041942149696876872836780717264098723276462983282803768137258845432373642150370467961414665896961869340602774831202605692817817927916592056546118006092696025665424486462202257025746745702462263944183805727996068267943884091820279860054031975006443554155884402078701236407227164767616811132888821384252436561092038087190012988875004933162514601373350897868298108262775594477075781177828516002526581822076432017030554350365849508239965403347169458286475688216001948876970498033622076127870807399914732582626601886999832577540703869368731281042899314542791196088261718608177709082473264060942748069355301401879115293357726766570208901803340162408287927865357322861844434990861608211379973180881928815677812320360070188529653748330498507603685373825975935090545123234065626158150793587067922253922821640780908720937847199424562217103245415212839302871936901561986650510244046966613426437833134395909905949680441818421699048935823465988451743036394255364510930420532864583808202084779969979022899410095625958034857661505182976139867292387180781733255009874195540329852500569483182652404564394915745689317742523596999050685699691144003700366084060117747706903541213888276801630587433326289686341788626128155078433589678001858153808349899000652815583041071708898765304784548644743019916922310265318236639247362449247660444632162907072285525196046774174766371514094489152497169267489943888836691629305342637108693275972240649901700511214460789015497368708887990392454876292723118924623403888773153970543462445426214179398367614912757922678857999001693885809776874950506515490684459071289602456956992400247941510355600463186394985018552547538589335978482271018134177110249686150798828094940076464679553578052344645751746021174744185094128383402310967261002392541047162186673106267579151195642510051651655493282892260101110196989671516534549200054255941691299419214581072200698461736093531174002551560089702882175334552115402990312226454838340915650994485238064449168500573459662484030847903780396270147145694873652896418943850213723401395369747028951993077090552999766682913975717167776217874837094512829632088656221842207389326090629156251939137956630710089219915739167062586198440150063191739965490062278467232828916634831950807937242167269729191758021394039318314402855943379965277457221153089168254469181326993356560592038572810542913887474354566597018151290599690574326876579743281172197408993254541846612372070880876085165223431701415049800303283220074294996299533104208338762276763471892068296119832182433773482501542539881176354951734224788514708934501478847333065596161885795668658211534490691100620936490052067128481901315652940766211665390374463279413653618730198150475811588369685938664070038671506698572453363840397168549789444037796748736267814988062922879759373267939344702562011491776174727023256209492453555755015314576411329144535468943113435786340144110063575197495473119815231955125418573731405072820438883740657318905687587380969530804369507502537472127957088323468877760433144391650104978973080936429501353437015604583866418855766811113200565114883098791217662656281324736326507711433566763726762148077302878559516379326257668702214036187267888030899274367746242748250806052956913325377948904233251569651140417781840381302731807044361138518626835716988483329459907714776306858977244477008742361236105585957138810552154744351174624102402504428804529453435646480906450854804981921107297971888030568841520609171375663499787808184708842180918183008376927473884535340607358716767773482865625066533389121147099350818334643016595738122079861033269994887676626410947218265395309843292398431998533035111906359131359054214429022107043979005807608938657928615659258067155964351479998935431709771499716579874768408353553265090897547285745806475023643859659338816926863974802878487130289754365510208461088065459426506686320628533312919421250302534652027299099308392474802191966479411059870640912894993152233698715172970834072892222560190338466457777631384495999544908044085512857135628298148464291008162972356196281317473047490607560702905990709460230015248192525439599704271948866326574125483866733687159488405223158766711129194654267662958084002296185949606612784675438736946361032125997917447625021733700355598731895421570915137103608816574102031065137610260689857078072767358749604487191741521278069978679217465061296990833843461240898040146452970091451831434616024141988879265386194563693462304830118707563075537043900102299162519836063945282640539523162513648884849059232677172614054403034464549717142187370804564036082912770607058686688643040238610549756613880177907284720857508221592817554591111378018675235253633402945776773747540377222807320016211565092411225236203076336271013554783318850554940900100291996033245698157007120687844755330916384102544476378218548349161010337640343046965018716536881502478663373837679183301345958822023206450378561602482627354011686123709377452021637428827674840012937608006683519952916427568411783002023195049308243236641311012472561704801289963843237266871301373338289768459717286499679393034214053802954773845061923966026308908538586855758905016427424640936846126484428504561569181494736899846454035505240588060375221569222698795033056923188610061961846495581615743335776877447259564569560249352721652886547505987543577996335984916419070271057749905657125412201011630449331635599697178816798280272131688892153700029698962444704985776574699101352207367015790206533770913995004614823316140108448993337027375733552694074325985426590598414571808584249069462242680667940785229348694110738180282023860036502693678295705667290716978479834094355770952117774401397388450052421990901074923391673932628255949704696998917492685496565327954997091892414925473788678441743202113238937306480034574551278641307626441756796409336908726076490532557642578385801702706694648063427359211341147129475692108944257125992866722186925253703683592278068278457245641321156974180798951098659613524196193205387190524733995920784013894437829982843880226106906857391208794664363937783294850422520801231091085116805843655051268576103929767548863040407111656888447091440426581605740548655160113237732110128042124516709365046405511566469222446963671807409948262134074130718503008367589301500670104819422810574101595630457820956440628950987137913031515872553774851796935414689104659014146680593412398276738973447171528520667200733076409028895659230678493870607206758017219216837181067840796911640618711994391002132218248363878405487232958941254541847270538256857625189625654529538244137842441885222667889740319420236310953623992789843045200622634220037658670970395278733536617558083885231824219893026059073985885134144544538376870400151753305880497656265119237062188675337756557944857251338977482692686982005400788756044247597916943292912923920809772924795002612503000867884681973645192762762194396543171077377193268819809317704291204599008533324826670381298794743955242923831838207423030526340189332265950360002103889242945558719464458500386449046652423159301015339332946726871400540905212351242141635895885843604564154945694833707170786725167408042378997411697162029303785281575416207219492790805613221948868286337434901467870512707240152435583548583666483780290687872315980466290310517809951857731048854383127836046611711871172879405657407710591994075608245642551674588046406941566605059550390338266605694993941612463541652407241403552274089103409443879292459605711012380105824254730451980388683943802866548029702629620528772555938106459995571269774533832374178838850080253347891074087839937654137005044096473311763954364143701214431056464341954268699658148895309005649622141597217089057130372584347118141270371143746201883911591372644875110084315088442510940933722032388594761344373489501113315386758936680905547272311759258903091465428634534380189147140388226493595234290434449318906494883366080558753192770456479541542169510290078265577922513336502762823543878104283810410296422255786042519605277985409858659114942515644896128385256713120157730945266056339949819796452813102677742756387910505738675401039672448859562692314300498533326744512626134621410087154637096680045265892347651265509762617786648744845231451485060030159214899476831890165437470173227352907439591089388156800444477997716223235682831674811955712667831125191638986781749350974514343964465650959743340948411162346791208070076655360121254429358795059200819647074997713979481011356394468245872260474418440216795826805898847112504444369249774961661386627372955402693214526644545821009378519709266571823343778905154951137904268261597129271710680516688559849677507542356253093775027638337119961351164412037438079899526739978798892735776505296776381851451478461021736705407954123100604510920202998922947926381768185356429325673669476383427032568319061051000937899579106326541303149143795724216404510829228358574777724707549977518830681906689958748006430276540512243514939514445266672294970022747199631652891491076803565893498668444242569611977341181119966246793033715477515359581044132136217689886185362575471049354305254950197322486312410618601287824135723688583564524500582644628845788940354476245708746596382598897346795646829079545948801760872606632050768967755649922838157210412931873170260426706404907472597373034565112785346507901579801015603927814017633698220724874016504011038269557421444442878119476879644595390549725722944139589267430033761781527142476691841566215461838782237156956497154444954261917930949527815099167480749853790995575449974143358271038232819198041340513320260319989446257869317372222820703438194522199597521844824339440249808803819617585637665509289916551478400293539935879325571635757048492034634645775643485390089092569537148757714944862412449038554275306029894671478581288038856783484108679271814194260485356847332653325336387983515120490988941275065245604286512624541471427781970382285851946887116753457649291683292822697497023390708589055135316616870485873401387738940309123025745579808022512316254738524088502372947427746517590945060771240290372377200440305259145123268845408202348378103281346845480159814996295684358118680826489165491135955830113539379597807546382382653388244840962139207034453845968707965455908460674102410407264959644530541195782008093305230551745936763268628790445516208474049526100350845349533425800247608104319016239455722246642962950382375238320921915591565532977661596569084753331300225146295783092427316555682489804913896078394498938952358205548140093583089966946826688406961717907666245944750465734772670129107738913766198749689865415042917246249591063016773297095023883148898503707805188873926934388162288755185400535533889673369722900180342381292853278332090187270828512168556818693468808126378935527548019907043836371679486480692196021499827937733866870118841104118777666198459651992118869646660460832077998180917178948499834613869121170977488496184263721939075019998145763366792768261315921786380673238962566469303832153277344699570842102638806476409351744219532291108083504488280890394302275067821629306059571206130648093466754674868405963896534071565052396351918337810377694876579116384132232787228081098481859969895249058364703735412724571158680657517668898269186514979110851481878952490979586480122384456570311976440962272630337741500096384342354115274281595802295579412408770319941458155455793833148789059317845380187015354973586949493587477231783005752886226572350442407785617879450334920651428373548622656502151949232075424038287589344304471538990713991584592095416078204964774615129470265243429994537299877503523840232678078256003016249353297086645191415074061815404676382415588769743556893044583258917058435906920113528231535564590377322413832817485130050087580480279967862336416097745113723043277980904193578233086933736776825543227198344843602493874343206117147770502189271303534638497557579979276373474122241782342031037376512422438395467819869890440339611483212573895219232847096282231634266881735044303575071432499149435444230876326364960001967439383925081171270043609640240001961496438211889157421143494815003717170861810548411165077733779585338813602493961542132230957399014670006635081459606661856880186400030873393370123192889537401007872081941215676146559929816639292424106128868294529230863334611103392757546437022078476641085948120739081077166501920489636931460222045835251934106329258576064194929317777097504601173083303910033921780659483552686891060008258759789323126011749056986454750900106646687420188222958050500644572986780099468112887573732458933253063972805130094291839321581438407962190785005710616728180329672638056470120508281867770606536862815764514760616145871227430744153704734373833573180317161222053176530741910208593994983104916993833409490075095469655671050669191239265789581291369999108004949395299386994361877453650551319799300816760441640477321568565418528457332446201248155739852354006766016951780384850533939267238353803805828999476354597176392684604203065695780214463012102207112267272385466411834902198343750507163765217393413102985507683704892572132367738079715035389137294186697526484185586256926171037158487345758090351948157023300199713566500809474525082765606626869149441748018530546747764789444851959011963721248380486933252330107186707091851280528006486429812839563606530413312959947850087539302265997285524668183443111634241070897605084779437608686977101536730925590555623512002430834077033009804650493752649089222778886940269514477419036122969722968751752247707519244759179225566100048112819890902718903242897342923159348409692943227888701754325707185180605989397590878808247963025775498156026807735704793243983473183259276744206533182474177309120926582941267766250198001011757623563232636289005641592590039586862516928911241453553316652108033651876560356137825774937736629903241927720919296779619978166861879178609554547634297211852947683090856093188057971266070028838027203225859415865209659584052224203542092163753011333813489404125374177229965060736561618015504323023693125297891412648466934995474675364519274595789815902697614790448763390809935973219483613860983382960945810415317077520832802636819445558433243073134204917344142876974381169038211832287586551656007274663186736510701238217265364682957205604075987861578660268181269067345481322923999381675289169160289057435931847197301578442641243057582858103893471244207522613486774088760040327225947546657485955850125214761555126263069699100792454969438200389230788017454879236729281569024678975225414434989540283467224540985442498895711272795710578895170918958531791925444042814482143984664688581805438549703655600439221083030799220926637038946472012551842449448371040317136276155296008383032289180087655867335043040273748707750635206216788198013118675345767698791863881080167976508292268506602141397221892828744105901357946942177641649748636364953196020657173759319450338289079487423593924594902130540892798097422788055306325071811989881501418884554091161386434130526947130520149741957868641596409586368501096547340422455830284634739513902910720383084427954919183494326893437184908333556145845523126963784358717772862891076827967292899499361668363881084799991496574648544493040598680244893247927124074251068426739100167331846622753893181455237655592908262276228110250623253972739192613917062971774822513017816198203436320374603648339018536954183523788721389586436790577326958995374030894395996002203482165437252782006674959148036783372749033967008644631266232624328009107986226111599966854366075642151153591509545813614206827542805293262509534097793971193808857663356345979586456775541215727740138585303919698256142539445867979636282962509199575309933764610082900941357694283909793450514018942982524381184543789342764041232994343888471559983698870728116612855753701918510312757655514658721751586712369448100217765665362027257621353867477431907006700399901944608648008045054355348163557549474580700154694681177996348622030153648986105538519394864967475911663617914117824586028945292559416781433070774934393355098347134959838838715638826139337362917300874022550324505796133043695038399187423780253425028207259622259653397450895164129709346034875219620470351046864324393653086153435063224383756973017810951864592471132720272245011717135028002351661078464311714861039281264515219442563275338586675905712944374762970175349986725894968939876491159464247372226640273291572167153418469298528875278361517570167607137029315772511212985420628521428056684002676248405566385594647584065440744959809499090511150642608281448614591604422549205567890599601980627222862394048969238295625464426782425528423616151324229532659932558656968213585797298122150063210757516000317565662871235437650717208394043343739141092113574082984481517114843397699609089381808065306751542296854058984400571194562393198770488206403404606237149550210174737264854124282724634013437169002831832017081953792445905700362814243405590821218612972933523859387668683236028223990164940450618840748081101215362866703026375883753205615840910523879464300002862842510909208623434924591672002433180533749464019252050129420100775962670259142291370216938835234084643969162612336778840093799207723257297330215151888819909794750964494319010824065669026105478806360933537758451284798516695493158266772133688019033550617560155528937461243656902535365802767135842120136787248918748081077990708803037577325662934639417051727592816032268187596367145653941482161508286195880640414015993887902840734379959851895384549112185404559383603893077253649513919351108439173663855544053896811394894212157031242269171798136987170298686614512925157393653669925294509541106714286947796083792793195648498597059626537338208238737124164720945165143127951006753666608098816221776524047093954075134381670239082304803515937186531232346724412821718177834738736319129845740297181796606902964722261788767133985825598577685920023748684837264391451913176219749065997768222138642573358427716928674232653251475513400606582258079579078460425318262047425006699162752391451048787216519580420987403263908428516570410978376575848207979349343697542296594552724469820765079534038962461249854694651483333248301883655114201191861334075243216245202596100355889127059156321888719694478522195109682504723540351323374452018232174995016625372188130984563726380376851994242693032559183698653973681714286826564758769908172718794402845149637916048040581445519335839057252905589079778438854563775074008455591395245917651859165707737077634096181880560115076172003761234653003381303142741821294264569513989700989887643486893122528402838848656887834953883131590210672360382769205615912971718168556051147208040631232375248967682403988696349025227112229157832316113439696406294835563166622629394364223316528516808301370885225494165293494099429719555731268096484652553807143711866667789855164679641821132845470338169160530647072237136901432415435345435249306164397602171518418720452248631883798593172178223646355866043498255578420253251086081417445613695770208264161084167185537796014713881738967512776102230193460284504721279712057429542217662856386602027948726228765478377782873137374349949738413686855251144719312584395207091213019308665869472004997296511860214617116303617107677542972207185915804918930965341453739141277706643598215500715961150224151429670918975643165861227740657816207263385073113481521346254225513349372827704112924837907368309576265550008577055417588470856259556597672229475997390241422031413285544941672783238091177274986676205241603991368968532374790524235200096005547633938741471304616668442317866147305941303005590848153872081383653709812234727135498239073642297046594611123192082002447545125235933684893782096659203161601870362882235667485289903403760795231101430870957365541028467490682353353546880822705650765197133577324069669704804272506985999656179661525463938075825078655717526950123239328927432874240798561673839394410248451987804707752678270688092115442181074319294894029752641633687560358598404660081980336095909802136511686813949088923105820038977549525450406506212089404377756590287121778787316168390219068447199354184111572486049671019890631974661492879814961199611320035874395373019030026996853398251535192029058832346373339462215639640430602615952726571491102090513226290873978729586678509765001511940029989116628194639471761834149276739083613033125753462126660817312160683518774178974342260164134323227889743482347713446080501501294014028843486887886306348672755610502764880799196391285019961091002296696891936898696622377212612385544825768456365551567902002325903268340954147300825574860634749769674130396936582475031588741034325943129800164209317899938923166477024105611951365848709836676571158969024362809705230611435930848458049151442927388524984545187489484228475771581401061632592772378075440468089902278017230358962171531081541142277763746470302032478784646287505246324033970193328971564009199301369586931420270592896577719524944446461215345011625067432286329827381124771741469585678416578157970641291128842544525831457437278908606668647085874871846889156276850905508528807812353694083800599764491787905735708411517262841627261841593795653581256936638174889652199807142724788223247872819673778141815134195912784037285328170048971863168277675381132983423164377270899946234632571851463938142469118389259058501353600562772131017704227097825662034739595335693022764498470568907797771655937662175788117446225663215724931631181486947274853584801461414462524281910526107473990353748347656963410996411930691943416313784885886502481060776117878710433918926591767986758045951132987897760643665599398167886626231423574319302261800934455612870777305258005454923105660386952452938926934793683187597650864544848701177183316442786648025681255963813235311668749157732896652824845094637351218955808837101665495484454389821052579324802760451101396957512925897314327633207439881663887815014766016484792812116746419136844617384163673886265418821470965640774768993518393965633424859105430788764393805500568383145383175731025780971254422192542430851617938225572982165103474127920082549654061701070772323222630874369791914082981329605084250083880313221442119593885479797088943673545189520038831145280277599742868725065476474680030800246897427692649763496890955784935549337117434156733817579143339159273351997365149904439649880704865361796680193418205085373235117087396905901621345876981576001810326460968923637362623370285357595167593064726713951553232824772392241404138215264072109526021959567920368883341309664355691665598908057061582972354266167439208627621310062128692374823429441957531625313741910392472457095311799491989168680796423842558771421498592606640599238317545171690926412217292134066619627214983507113511290142818247061432205999653876898452818651103185699168994015008078123781425526505170191395624018092511131809385168986584353889958928652764289023915598355839930577543256943009852665847834991717972123963452877620505756087228696332466323296430780231324715233075665045652868484991125795445002649676420605270615510031623613086737652707652693277711011241999295695593193902174243602129645912789506913317391897504637515314652128222500950680764220871629052415278102688439311446361307294627346284857486635015791837214735224728401347538345382707223719005211390949349257696517563592659983795601742350971336862665617913316693269623607467135178107743174771472008979460170346215617417836755631738914664283653492968394673158376354545458050113998327692122001775262541838115223464690901179818731236109848091473410505051721893504605938534205754307300728243595558577650606916736517226700640541205004775344982035129415980365859231917478789603427323578237650374634325396459076789760255091660399794336604168727528440439703934831774671691192287650939677199592209553977664159065565295916085808754270310509259867505333756455125444307907487565221527718296758123559753517175187029620421005857998014084368780206883681518478638939975343434116415390347341486169238666514055231639716076778868738633381022157028417817546337568021349844579928130332071454402507500955973088222866394238560616805672705465602156546447983465527643559147535621412594917852228106803394435404456326778686762213310614484457827323746136784197548777291706580540388409088791643268394471422903216079275796142840885301164961114082808496993950441527333313054375852623966999471876223006186307515417130720130401508603770271201909983394586741005587647211678083067797594676071543684028313308809380878551872645000932497698577504409777139299890325236422744029444702425952528689504668057639352298070940284315528818338550728278035321072475296688766811166141367835076803527435704213905434698021687951466618958300263265238729850620491160918892928973656721605775477690796801859082724599241830671875162145255533453809603087223336661001051654966918523434930819574145507067387225143999284286095316879489110536625460423316479630818389309336175299381567557432082217057302804959207974490766395755949541883345207910540879088561571902852060111387548053226873363074439113312237075490414110601262665985107176037670660235316250946303179800867946070985504108009660737502500509718901764757056343785372899236070151490737613303901925841436439178020161051356433332512048555439510942939574666485191740151083178098103414600516208256516550200054676733237409310468181153932186986265836197640597498432915563699702159664760772695985695366321735929908076581692482112855667605813385051895679795465150215471033057983977260054087248389865142799940838677930456480498685192203970113404275172590566061983951055940176600491906789213512396574882030715469553030409212087152478523886778345575791360597234896468769019450026703790887352127841965257486190394499280600048797712711879749141964300707042379450983651887609264074751510581974186649843040621454873601035399991566575510807380325088400917968581848535678983893603829175374564031956912950535225551372133719651001100337760979599264352253305437220349639690221802355887040454159793194685155695074084653327665195184271782089043427960103307134388278643569127703383613171063441930316501593073149219233289156005760714096078401844941876367588072815356597286365240576640292300729147313422179531756458400698383649648024601357700587255190625847229454460073557253586269118238448994504121010952849506870856391893759355741956284238389152052675082259940145147347036158377215198039817565612270610999834495905255390213649158714767320337119033765782393889772396580993283079428011888575992442230051744526804498824996314196444004146732642407740670247052280036827610400722292065471948649843420539109473025364394046075835412905019216743483181846380147750827797309721768179383974772034760958855885273764439399938607257754471878215714615697412668386222928916794834270324838684125494542765776315013159383315003947142040702978949737381103137051832305227853824920251200745106785616261842234314912150122980572338590154924093817240661839938424779330983749707045652520827002308057743783185196034622828465429624355025660519085644449908781062149304945061441269364539085599717333273393205154651015867101622709286223615041710809596247641533765186419591271545144376418651429262047537854928451520642245385742456642278906887812683595755871963588118689268875143991167045746077504185800634813058660286929900748742377890312846050493969707916296944807486658959482005372166213184647609493326265036711198272762632159043902984592052547309864080725783964968754241732988995559172073086961645133990815006181948138004295740568285527834695490436809928256136551893820122247783976561404215605327684640753151384878657766786857667610225900982659403581156680554962140852049440021534423026458469210599594663243615352440933389617761550616144882782355278971384025998406630185460380843538882151946682633069038593590590357585214406645588932316156507064324039831592945955596178562323051225132856264000124417225372734937605833089856832006365892520983728149521045911738177206814367077309319737968164542347174069377805697072301955732512811892190203403653205892454506463465865983755944153373525144241242611402260219270357763671033330570017625919036456392133257754802135100864465204682900894368530356649045707353057811633229158952459808189269791786147360329120484032429559901298132819207913321729321321763556909918967782936165319710573278538012119222061089766131530409292231307380061512485249290627258164833996375359595260588169206135851002086394285216777534058764514141511363092747320730785519187581145804075460440707346388510610087895050765041151620987592744394016462726090611647906728905625492770526606214770654273641884261890758723274590008406450178611232764077515821937168023378337243561386111320475091421122720124554999768618111693052547017478807914979557221832463233368654638577693019908603910749153162923101816713267936217161164954956803321751087872424073388706655615351454753366459056918208899011349038290379394168297214390948121765701245029537344450300417501040335302284087643243843581002259241959374190445522811298492497300103851379163602958856104859330837454804233962732903303087181088311258247665164760014434926161739333558453546646178129807237546085631387753201317375710612647748779739470451554804224695868881103005449937570249887903127766471129143816965470011557632043378742387583199234065280492598768011231386809431245038382233731884950331863692745891599598104208859813042599345389485676482782022109644398240496511140575204276312433372498368211872656091874527008955562662553612956366357883578835178200749908350723016620978079790676664909108210590406491188470879784808824932522901795552778284432217334232886527496576574488983861984653546886841002102895178295519157752305368604939537396579906998660226035156369707204164513289818690512933481500019684635360166172225070006591969711164391118495976327304404020129738086294070203037505297777367144957028076927127105453305428019794093764941538923961477006713607281481283004335899930922039332028123240475206441981869052168364859565220932751600746755908925504018661073214379913389476534099876779410169085265232232204461624427128747186410637914173817049443270539905028671037541191242058828342321423148311444144086494917936602075594443626297017701355414064755212146610169654482359251305146182835873011053410153158079044292005840411678646975703447793385294305805009254448281983618569297419195842142524081016004167802943469895350247911052033921132214117844516924009604574943993864136386948645745990414232999179563530233919123438618011709316081546159703514940337054667493738372937914011327541617100784417076377707648087166431670374725110143208432816555959045094025114024987810351373314161031871056811103710097419203228279200505143873089064856004838787961413042312711551310636596582550381343834107502342812337248493783796331998252111159909842371251914261798919503863527816966863711108579342283465827712009538845897043057369473267601828151344421802752543532317399927064881932674295160408904322047740547088220125216922088357247060863956812280975483555103990858500752506750176479143681919837346452845447468363021356803381102809751119976237754240368598125653540907823389724320549496599572296002542757769604293786102217080221143101011578447104405520069073685552325096312674544575732264767068536686373196795643765743357326850835987680678616567896403687138608093384314451973002838294783942878851598885607897476719755632819037122297986954143835980435579395057540316638364799506406222779444897992248552033702131830940810912331960594656069947175222529716259468319932320032520456282294312225725399507508426450369741744003096379637023512513333106855503644274496332524424938697088378208970750084135638105512546930943799609606353342558959401175044940508283399021991781905233808635335679919374218980454694970125477229470034751639798750061128301505244144720434986776610279069011234281873651556981973786566754876678377973827440146864089128656179703115885376125689927415986603918097593079948354843546118202517990058242459299473522346775335656818711799410965360909280446582734190882941075297984779180431645621884702405246109638853518760815720277405246390067933694117833429564129357215256475224596210273243129040151280516696813185194908976784375972478971493943187782382145412539951602398639327880473868838483109787381799294996040576048325849970942990800965855301285718458908033010676039101334747937693079516487504289847232760745190949994912925849771215907245412393303076745463482344897805474765738361659696650899176174088318662589586523524383898298215926538810519309542303054193839606924216051864245859603136863630618531965119204014324636500522236591743740352938080799678334682959572823613032078664628150636761544102069466145466889495671070804339249293896268349653754286540115732386432776348239587380408790068579037955872566029151599127315565494039464081049927139255635556094762640614306543724370315186771148170989495293698593381791733567412091927437366756529567310806755437951285706947398068543693523898466225960675602746293074769201236793250737970935493885644876424571791920346469189191535730261172608381220026276625780275048981698252207958878852120957025537530955976380956855331575343280539372415527793111349290434081267351154223351021529860495260697436359360473697763427404366288660455954868622428454903067538976585766608441792863729190509724180598367506586700488935689329644560877543233034753559130718743391318482980480741435269057255109954246277821497425430024046126095286928130105260189125190021270421690248415051112978689758294084074230117915272794483877614189952753954518278565650101944919914541716493260701484139035881362115112977693199567390722055186253650796924973142495313895998479863980010506956373361292591816015166408619068241401289570862335481438979813828917834350953652379851506929359679252993899665262760688286992759396886745178473328945858833579031661908073985223190076224855363202706207989831665788798608287166531105150052812679953194957586341629497490328177409783780120092085938614179084047746775412456296920163071985738390147069981181818653323164215745862716772471971269412501314909858167201704979355388399178350467540612359289140116726708957594957298172659350017513426438049096141613153527017963649193152289826837144033698166957824497600370822192607990897999839851542678308270668597150784027592879144116738360417293656536073286071334610337853863228325482877971029373065179564272168414600706776473123027687003837924427112365963751317689674774140496125246717377909316992775508299766895799810552999389160193595791923947431058729734571135274217186364834356622024092561373279015297799004849708944323864665827264203495033490709832198073588266426959810903921116617645096224334728543567022915425984976796123307850789277860679167774336573720138691542661407671512910985220108427791581069142119441141004303870430378525567360516607342949850132458909853198659649820551141381068602704836174556729672643045961746380166243888055207477915918666709386642978032731518876942096361667913606746071049453914924139986935772648269593375606438299191836160569551583328414176580084222312183594137664257169790369624192303539943174980929971221618581904856996766342173653468534122510607208507800472220778812797502287168493933863003632790840294208987569508525740845179228772693234572477614932427124378731131852242944114281911632408928644521897002414487741808163981449620279736216500996457600890204477948773777299811995363127572852530971023803634548906714011014518565029108790234815215433221783503342351287107887396174174638113369111016241568513252690195771544990155231779956830380490590340879439533778143191223135622397516265741230949184929553739708326376410124504750539138886704362240965436396868775984018882127543947782377023752921182222447681052322444017286413048859295368223614246561573496914992734411853560728373185590670667507044545317521772436056047150801429835962015756763347012315546567478690794846059047422507250011743152569574537305790591422912241872062040174895235629366799824930153530695560242714872156273843898420828478800512105525182818251902137398825765179365388657339945074900193191913285767555699845348716062723752945102812923214033741882808047665933189000826508139758915157011346713163212224363747580380010483807637871326982999974332949610181197350050413406838854255142078233715300788514903145197360735935549534527739905836851189352302807007886368531246749500264128229310993455315023954276581143724416020034352640662470717968236415457855048723788715147493474987745831896976378586315251339216880041977668551776770899706319305676628352756911402186862770294823137732581716177513538318998778802578360106307348529369573244370836652692177933834716039142712759623370746208943633684594522588356001719631157159046745630637443138686807321139220256561828024728938190376008465582624087340973443152744954575179561688871400670573575662998548148563966630230856590493224296434526290302961132134213089762339803432849674917756816870755309733718252798577663250651222439871119990252728674005226174441748886711255406606349238370949954978240392331825836388119977345828191631466168536937172954598701005203346530510365757306913972155282256284117039663773459712128309197242704549906916906106504458750040991754443521351151297861365708750561786608261724076812645244726727619289792527803640758163008701511120937613061678937019129408606281818626070514422662652076796663654142227484827819259271171156206860542057220110797890582255805193043940148140695407235087798847601644277068674939087936137040777486954365992805320813174716143283645718830886138938818412419231281872424010789423033378246139355940898568944938691788034397453575820630633108003587201911312709765423402129937720691791376806994226382152732703603273513403272995148645833039887856417120823075752848935448128273862497611263319381799120812780830729245952564145204862557945895648411335022510916346313992065356807624245272434245256871169980665205289543056659779781808611518876008485485051410280164191315152698673091245670529519384099591633091703374187874522512465964275809740593773795257375262367769076900138177506603815399201059140477914875743483362945012504741572566594983133290782207047580082631903777980360427174067669204347021877258186473494409035816253065903659129763261437692233510094817504004272563335910452549312089828004310576559696902034161517710684938870118952516455887702765231929448878795976873938865272896807932680744828485049795925471837742644993802210500412821288645434278059207536444350473346950562753209006774129139229030506403622352598315694578525189892181158702710934411127059703150054306153453676971515764804525120577551643779723464627885071157651741240156067099387761661084566866452398392493755500001947792793532271613474038243041400781459282700401513322908827462863475835659301154532751227657736422792356532671829193267364128869375980957268099900019658110933130841403011972360919084790412255188351631936099140009657070276717578799466191035138032645851695261960021494287359191851978612803321786762582775633929820088291503475366222721851270472551830182816399177870313692280408052879679115577824672037601289956542047599854887284198229990688439988110867162784603340490634379800420858037956297184594115726714355976295999412149443337545299306455357794645709262585006474917249493949531885908598164065877433654633683176574134341949022822090048324295385104391782080356139931752467126993132148966990856238047619242719159481805738343496809292248475127422917861970179002208184996248837687212046686474127206090528424259371385379124103990577697583253092520374953550637931382670910665917632547664439290537389630622270448512686874615796313933922117941560861373834841034826296179482848735480133148239811151976874597500815636505672219733012113103859153771994204051069795798891494104915384406697231801070429382051554858987190855002714552796428656376215175064858210103421447527024246724389592246362349111647643170784899117006494124806221673173756326807715835152733135196003184853177544424188603741112706034087373886890587413209399750502240177322498013802614668919638521139796030574820779025743719094364864115554509444746314438589140437756711120460095843272110376076865564771074402222504419276841744547977553518838737165307874750810666881526610241726159428225673416738500299500059766577962820668527693784097402941627660849669606626350808896360250219225528965422699345161908202007323746247248382326803789069117496643245531667588776809286215129718690820893175154626780029546960382907945024505846913087848190863865466424045445164161746884333729067757179620260020587527885660725529174498174532607757396516627397053923478797273401684528142673603593388860276410143572445570758950185386382106132108879946805090550274470175339867634064515686670171633637583680479353276368193918626046806382189191994921967387155909796805995674575522368413560643374975372750270702488651375409060231388507237452964333779467492705895313910437787989534782834856751679098441624261540575810177543882437780937673044313501858598491557917978603083516224218623231589077529670414910607845632597470010851975256176363875327834966487589398758905842491342335781088665639399253471558246707670678011797296215257395196610325167569961350195242140290462963797056253641253911312344654786639267420883165284979888112177393211523917849965276729051496682102314328812439793205399005464611711733064611991988190793148805890883940267242026682958241143075889631612815243345147088008184270068881391800536743196620778440584626328651095321552646217461653720594066902937574647336226721233607037289588804122311464835555902795565203835028969959984434815826177300971887735910797835003453786160953789904602286278675019023591967263911277274233158511796650134639052558212098954768280576865364108475875369092911811586531665927279823148387926532050297646256288575554862300344592186021754208084638944155262242166472691226409643040057132567553884670375827962705981622851294230218506198848368985751282329045524769148747133369513973096003046268945113258011638431266945954011638849323546649910579823195161058058541494695147858067149726488100141621710812709243762670214558398529021726959551916035538785490050594768241250526821174832094760247459862841868220349203296608059442693865826302963715594290784192651649543575249238873721329915301003238677580852728044121707447572519560510111369687189168164662895077870469189645975898300566120267938951352110438605697471791192729146520740221348069442721796189856980767065920693296958131450950623422361117797543684298023618588615940817352934373348251297140324495222967162129998729000770215637310773167271638740401359420893266685715330282503897461285959938672941842917432407168593750843307687133421228135349212389555581540919747503129985681714967895630654617671661374145248808122227610981650780743994728054623972063758124439030332500245604805948993507485112373372657224421111553740564973405101139831958481265124686789257640456448559021218500781541740453292263680201230053691392611171599984393539873248949975194469377235091362371978406982448133575061882132875395653105115449435597995428330128848261741731778123213656035169698338129006050159126538704370410363988157046802455242122826144201769926010723043275301219837985221080721315923259319906775140437973100473076165654825556886943334120187566518789786619132591624064483487270957586350286903917113511475285067559390240785996635946541580160410023945392250763111769901704899824597027559867950344103972928306819236768811107396054104824069083828887131355162509941292324003673933234253314965861125179994672566180343618286848034878973322757531966841351124269225516793896868039317625843947629336648918089859146794350505980853046502801376774136894472690682215590653227493799081228955002093627599798926174169658534213441026640281385677222062689879649303683504486879858778672965680843106869607042738055162853377108353066842429848844052828214768848816969140038209064015861786591571408769724527265887742483321545114241633879490977799005980875601111630633244434369236266114345628785471063472139021004095212326046283180979372166625406574008413822379288105352158537877678879140245802599169676898279769475616924737744195530914374379333001901406191876326986305274390241367632881106348208842273596770198864738999286815062864842489443559685233073706778902989110262589460081261270320106531052964867853852601228180387462939020805378686670486396101577510535144586179518153985144221444169644162325679620857094263750679361074246603589656499884967544363250989025847016107330186512817997257422299114211443448356278274221433231819346444149831114904170900032783815046429858821077290994108520326972155944769399396785979173969361559611413449766959730595992458502731049594986393366549397198810062881684628470178062496575078674191616795965239065211341450825925768608363018741516028167370152016722977021407676623660954710234919805985198489343865492342159600535518368666950063787327324951532832133031364538146517606465635419649029159569986462379542059579860639873024496311153410867305889676522583342162698542587628991838120881520959910371447222832534344540646186057851188523667833929973979209090123799588909352096663737476964210056420584810540358553740460675561793635629201161625927603162121569263935384770576696425862448249967767512375257021533419187811200809722976190317710198499349283683330248977343280468707060901594948950305926646388641692939437981021891328130288014488450802618744166413118872054896076291889500657029743313894189351896228075714349199335462125279177697397671019930049229540723946164472256867300050121726444113909527572915103637293608137701284319512042856578906316050245364186248444761903639800624643628594077694103685765513201230694432879293547383684255735222150894837783502686711234302288976676699036760599468136196345506684881700438766736448234777397552339749099432289273825360314655305979369404686677383773635838060203091127003485378293531297298075893439003950620412852152516321048699159806331572518583377044232043815208535343145388822762430540325122098240542397483857599322917941690019112282472745942150960766071259896373869845368615648955569653733526842966887554398640275206018724471739590095594953848012513531961299738209347967334223209153884090435934018897651566072909994831659720423924167054740669443162256248469216230306571878709174561689422985757379401149281113595084941147014735371836920614130519921606474208226703996451066218392725884892728485938416368732307192291919063431439745292197909004229131219609206170095006785711925293073809142191257615878925775133592351513976751576282952877183764718199474493338988007576164487538261507066857695897178346393867350409038944032761132246214133372610487808745668515860842009783674509738466182098347079923628001968623428037527689108822456878075034646079493401915095431918863090150928649696073896771428731520240018104048931977129395300576492647895480055105045231831628268076361295909153782884932235589588372496748753181036935434152869337226901855760593431903672845116020606520810463895667957757765293725428602706997080352021184544894707263032710642210032065965204095206578118266253668151139069124064205544862711164519156363243756505343025980768783913910269961367074245216730036250050523454365094302995482451213450994658428788200202742315698697593191894275707677713646044622048736837862635005493415206030887719489531974916816846782111598739915430468507091730180645351732894758823457927711596441389054112902705409573099858187368243791992642994583294111145814000301094726587811394366229223477426265956962073513308549989177808045564913644266389936766848309065996695776516038421117347672006286294057750653625196287383373889668252346231852887668069946607358853599345276675317673394363765597580379674518370647327348052641652052584325872929487821778405701940760716380543191321572264964706195816343990838642986266358130186717989441292321847411246168070633923468440365738456577088270794931152103465614711747028748108729432601358122343332222587144277861482468075074674421468809967554211598524384852946689066846755184052769495944678335803750695556380248787278295444446370039588589462238827944877865417627734949141822170483595923179271616515519486913251903874268522447510747352225502892636575923095285050866688991791176686413178439628779450416927949438980348825019956284194576846744654314275986038288893879893707567113490854758552091267513049386288206410305458299001645765697515760341765862266694646837438004457913235159243403629897146234584745597708057605290365523231633867080720541553444132638474046971806850238822705312762744274291294797931509875605144069770090177827622384940334444219515985126128190297692080665315927842028323713311383662437708431675393420150903641093488327722018258414924104822249366979360024651943872602961028141686707126599747659501746015766924673689903437802874296056459550134448081381785655914355525406008540122787212773197413949141456803266060221515234668924617257795756131184001116055607675338200158479414219945510123316782644482772323568788406645879888639950900509174350715243987711748194036140100625041129481114666261120290543481520563179030182726104366048767136227923540820397967344247700814988981235945328115767406182394414893438148205564709886575065481462061338830281583489296787735105758642672794741818685940775884408491658454006371123077718576704204538009988930217831835468028342797217878822068125782079698065264764487650836169837580178746521884146957508657133032344590961287535526187419727325915301850518276028831435299335165098818817427354608938637486487436907027877532105398031684736803642043034617130338903554950472216397665619467095996301259931966999094971117103016031370895940598347230162520593147205973685518593673014882964677929777880350995120952676606164694616860367713481717052146485726295665008807808347900026348328143348505052645815158975780398460447979701091125627891419528601038169605393088084781008861348583496294530560115750762211429797773732204482699331448182035461257454918447426241364253980419785577334520599083137347176999809273614753032610052904831991240966016696595747442439573448432843843324143589857622275686016196302427059888504000506039022328878066939259122633228593717388879901779227986894899123179822740972003159745257300728212768014639383445246835935638349390192759472281505757796113996434882680548608846670955679829842656681432523560838253984399653368550026133628525035144250844978110226970503167220458255987166580728434415833265307268750756434000574350623332996278619222578672717183941303559254983791155861142474303712154620559745911742192483689812341714273961853680939202803058106233538667670544563416296906886206702680783434020939614626311567309785402257874058736052704817376084928053581875639397521481431457054305307665796704288982291562366992368091124307694449391968251784177533309477104123066157976830013150722195699388397093077704600181796746568404025280389007039900710426766941395105055413640136422836796833045392416341831684992226077264521800281023552356476820162384923103074492148473656840065014735627853231094549935693623877368112172344353558749951475371686258840389114120588311255839223438379612028911517855725982322291360882419933115597350049562785542853617849395031491162378055820928850199190907459896124329883962752254192587089277514085201036367067138047352776730020022783793129385285996611609938606059786569836526028057695986432527939782520638508114340548326614460938304741048871167524438182697011099560550082889646446715517016567859902223844740444820352348298167911764489265167761298265477873917228576139042723279115477412543347237700421720266298157593687429932298986172150434634742315965286551097754324120795702840154945900728963535848046959188355766357107663381162277664823455213943177203318478755520996671824885002107975956984913708557434226233849961970652791324434882260280108032117216806616642244514200634188463395783110996314120800451689125365646171085835988976853912166378815338961377739076135826913563830557461085024101208778926019978813751102064983108030227878135156876440641651046263241642980228476396759012201465275078986728897145374258808579353597153733159578243976790251256101427269113179323701186171950621435614369446294038295468942970595751890085006994272055617959437644566886715170035579595632778642323152710466557291322718928021915741271597486625457707907442902701666370544329944624851367120214126931737111945416559291988239943203150057310604440908192241571635486768249278541205940335388805304476607756681473390789460830777058743510374991209498220326441986629595015275370016871108149505541935363065796180153151696996822338569208051663229870761976693326108150879419707808046025062172990742185063105095301964247233647383672197579912527316546376854391078875998432634940720473720341340512655025884517694932397719593617696480095081435556317425046476009926496615389581558165355585944321983760246798184657962545097147564657741916135334310296193611426208907385717242830972419795232185188773565644958144225750217287972832983319036555978865367967569958237645760150243933993970827926454809799972373931481278911975633333662604751338720150087365177248065160934229074480257556113092340667823590630517101992067726435331118535006272063835532964148882832369568644588814537077893238608240983907660689480179650952308315650621334624975289184526075740656997941435968432957738266011665681134607433673120265225696290376890733906497994939955126380617426648359480480677999937977413526154350653925073358625762983253767852236930620024496801619751747961478278771073708624288187493829173242519067428345793505647038786357196061382810583909891502127861698923198474053319718064723379651839319785478683171957736458615246777557591259665897238951612038719588908145826011866374096055237170933284991102966525624143750854444109262842565306613669563777599031480161487302484974844011833141244602178078546820501908221770424876801628201030022062070836584731415008059443516660162502537331701981638312690825432358689876621778749131419012900329901974932391462003723751178825444057693120289214155843078036389885906256676581812452696092491806116310566083902682233631685380243152430755794500040912565329106197192767772202784496447830259940583477788843907096782087360960622495222317974952777775088138890259276847139075630681590597214173123303914611712923405045726595683953529074081168774650324876043673001122461154240497480598772453839460640075623541904825827336191721119529308598031040384304848647707004297452633912007938226022410522084326317743283950613433883215183319833937285441915902523133761036089496870515614708383128179613363532110430928903152549363890526055436957998327434147148177910881273328762192655373779244782919082993698161153565680894257325153606627995570914580199692009405291670644684821172838356820057850538253580168444918836765670148838532303564662682880146519143189228206278345124578040049284680542707695463981071266585570357264630794585415024135593651047481862491137974919280978818397327940467702177812247995158299014476908186273641062224773010730791879999286740429453674654685954950029256488931356851642322964401438433638537757543665410777556551416495675790013338097938124090700056677957041849044904512857215058895899290863664005611040535963287360943201800357867986062848221380129065565415342118990662468995505941164317622700603067467118352222783472437757540188752906945336423168442398243731616740500665279799315745569567715871016476584917419073375555328750950523324542295581478161400892635507085285258420465821097446492636794796729958971136513347900165529707388248332171017040864753695950494393495815778027960634769168399838171551192685404152491016436131729448723463298037200858857999298108258202344176073702431921022223721704567593784481929247561736807729409608581649180204845420152118758621650633357260219605387791297406671744689254063535214643536850679422060235950785709565452772910194855287516815108888708362989862934564180583130373830237357134783443852756643959697440091272055929298885316353607598037126063775237033923136766159950373994201064708129087637091119329163132412824270794990475189953250455799601522706571384508577989288307223468773677254831870593816901748553593328887713672085931526161859989790956535551546853020017501342372525627078021997473394230448232292599523601174158311879777182111199718212558377177637467586185178363904096737843175434357525932527169100587649861287408967118411793087803095242115127032465439851704958486526405060137707545429489509825964014826570335052579659224251126122895203541689550196745922639083864241704470149730595982921596492930231626309464636879526404907870686266672968184075108431999680855725579164568320746101836014527043899371483190868746770958590907746778291995455940950667642637233139634928452353805945905540587499438444332548635920062922337964285925364789131771878799530665692750174349568941667164984669556473750242606527537599254967025544215622006160183073625256110035184184999010004891844138269913226692281076596090579231334899383139851773021808588466285261126565464001322621748961419342131695782986676973115064850363830593228063204284118415396677005995551229613525872079617644327425409476805701703455440040446468301921350655202183191315371186410388511189187810063861976316152098463764574614579449157277831312483115095443595496434274260312523112036296556601984511942522539853541669746162407494226737520143259070711338162385512300808060350304731805590665648132340131045266257947845020905163628964535825440526480925931426324674997885355802168638632270442220941413431082523715586731446347994409678515497430137415189819283485493260471659878881345576648045754414612941504480695638591588886652580018518955413244139986401108146521121597674775859047551819403739096816269099853931761232636707969367496517966606598879555689032564828597935496091590401100955091202343643085939330889096012328442651531542911069561355869359046121356241403608515591300478157176114892858403899364014073395592009336968252182898059604208472951085587731950050954386951334975661575675374542783170917706060405674886201191532238202156851463344924503204172155705066477006091180510974476930635428638192047812142008846196970604069058571268069609366410868402606472339877981069619763037071764114863728675270374109553261652382345571001019643527963197378096183623287914336331732033567324136728273064138244497737995684636400355465201006020184369178309866298134586917869143339144991000028635022757190801230747074151380459139162743576753759847495735139316156191413700010156270088367750100772454874015512550777412915899185337518565426612050168390628774620542480293396573730866365082522305890772029278825880432999897081524208294371792397432357314751185141354458596479651241768274108772612480898600594138693223031727079168921384036513413471071171189889786627661371670110593716965891444678466438728449546689331184406588827088118471614355182590161701049120141263028886122469446860496156305553689414756079316463660011310136148872241800578521601039868410803289194858749244844346742246751973490224187358950139934863280738290677576182531232464535638648514458602778611786240564883094293275508316767578092145015456534190146908366834401850044537297871431712624879360064887405527456567075513646985083008017920819813509025690220004362380080253466974986985063687645874986033443783607255943022512789919235064238076926192752582917320586908718964512485184124385987473759781494131514258375417908519743598727399113028559629232030566099843695976658954370567339829232129577648773551590351231483135752733910453257627488403859031889665233500423772178378753637523641849296328690693054297767242226266292199958626183462331700541408761437507347045188216783146230762664418536386833236635485585065993965268282478296208912880922566737971764510861077731110957061492180328306699147207487749602516571641537665454093540734714629935327122628538358275794495467978545235523552360444363308242511111272218539960047764041190772893581813740705078304382910752806338526670801827688337523682226071018240385262517383455629046276715860514321706127338486626331751092439236428670578441355292147121630870207983041584429645446031783487894058468319635875457806737548651030822412342114404056437361643766091734726461798677958502943846112960268156284932920392759948367407252865529970098333037846628936518621407480894368394872965980739058366248040612128107413528603153347113343354058652672205918983735688577963612802168654007202640699994914147909164694756996380306614284708808648852771329186963143129453725417680478844619107079952194284879094678172701548288034337157280866856447677353816833194414955940884583218358481142283155132799957410555000166041077540700261036680048368294091304509217068885240531604765558875934234797120231432782739481451227588492901071777766342460437142760975367773085631289744792632464575107168710297774915758050085580704555092334501972557145793193240850548968213066096280985404323974087555020176610922699184420413443552029560880197925861800638161194927630430979048203000866727968837448302468911263751636558580909550583058527942699413887173231624575067238316500360303938423442817393279628121345978820338087838151970847482850751924105928361255449317326817767642534734959070811367276544194279645330247013854083862729826643802651159484488334324100774440217064554748917573848201722718901342668159658265815980888738598633708907478944587509852895286999412768340190245317366542600361911088866249113812347931551818503652032829530132333319226222342855998610273217057494404426142365831857032602506564261716150460668489102263958641507086422407546620803395733527015299466887955050893789971903901595954738953690270247251249379575547097700611091859633607610188150385485440208963589842449465683853945220518722321630818391660301417597619499274305538199636884656982216008832725571278618395781345906303011756461889276748749021001352779708453306798488991792528566545393099099240692910551165061305056179467566562806447408991735306975885740610117900493746613193244352106163320848056193725638710222596486632576176742606628186620988463874625851726087246455675824759120507798071359970099579004180813447240793248816946100915288338688422365564593896530610102036069917087096173054664156480542224700813902486998751683476121617596076875963802477789141903503455450544626377820346925193266375904222923264666781678122313074605000870033471826448446111447006123121381565292696054035326411408747779625262655600502694138848676234018063797898242154678288185510518233680107188637348664156697449250788780067420435814947869494948460191980791124620973166419706394957824352215652115109292863451383735704858382754062293541538240968493870240040229452565510452259990416135465112231809784168296807868065079498794891135641167441835883507886699312392269808228059265730544340903623066396367113528464654443212766921764427457453173477571059515762428720458287529274541117923372724353656022823803064022790547963856711264948791209962806612744833581047688343939746639116761373172533503315801703991373858692680070245961926562667150907853296944849978720086445047127473917210277032443477178969894739732355709738657193017760319805303105145126246321273899276213494386194688998688041469749430446003202173389560587187752553515380092705707538565313908224338456945053824826934009094462796327746806540246652299544076590149345664588257142472173606017519851724723120987032914988862086746760044795826175789706464500602458874471433262421762790422313812875526884049443204564384976009825097918837357450418470258149655117346087368848842855079709842068362069138053544596622005246438691536962233834070529994153900600296187771266369570496747028488009428345280624904171349354131316954043523294885449427569885966311507892778242103254030838711838998715289993321892181613313241370483107231379742051301798589424175755395773122255706616210740372427723524340519048788863109780132954543344314527590890397951934143302284041417241860483795567283693324291726171952430701523887266270615658754561952558683266467336175712422542979272513988283762218117476849691892446690869795312655369331684987327251943699868947765940715091004085890645215505301555060436571617466572323100094027799834140045681275524767298395181930300586006358402377325613924973125671396441399243635295821774980424213267668179568243005424270296758494341187691026137071573771648313811207067480905007666527177343894688542590175368095538810625551941474646160321315655551154746103272491968387912575625464555792832158721883718873481655354352085126435615009569041404508882608373724242603635204187835583035121713716285472052212062537354307100085941236146820531778409762516550586636308951926733807503600051847699075378998009795653917526784335448569551308853840432644337856812613696467298911768563796830297772412428576349253990215718791120921167209024811910236397615930719957432809996194237383300842361442395037886015931818809192692722064491147920724021362846449481686349141145039247422387976650337825717794711694067549858655176767180552184038220336733462082550779482074171038235160519290801433727444110933260197073753762606123600928041100078383308768514040699046459905787902905718436307097334338530882419013899879243563828550229327014922499747130677779420290711336082069235042422577703619037075131656446369267914057430323691165336540399186268976608966782165090232113893103484987587645749383934929948455437036809577622918522630909695580030448148399871977493240387287025174480862650906757869909763638777406627748030013402266540057813572166784003679671387694189763469074567803082891794081075598649690283687538542201251994128690509646009108276463843548265115188609367952762214493534953354268325312994941746735469174741418512473545820015116112236427368060713764947208094743057203039105784027914099865158258864955827964731658440164994119545553571374276276530793382786280960022731431372188272120452856169157967941193792595375709878338429759915394653689208578677777071582598934407230222242938334881193607530542426522654594640820587959034935002120221460400669307355602353957377979411736667044916065434638241723548243941026115511789250784938401123975280207826472554864206909249300542474269633875974305429084941080308265931910049843945462988736085820386135765606935437738100581469914381305242877288177171663566606307195222528617363670503111987413439774814529204821263435779629189073720838109951358512902663594786887019992621842078394181808828330353198938894944393317313177185836661892103083342208822186075307675842365609571421457206104166899823671715027584860008031007572997631597158722765814101254307893169959530515429138968776085315110504054038066073852912432121576970454451514982932432697732391661029335739886930832937799482577150156761457250518168793506615988580296182036160355501624931034812616234662961891045390502131094398783588856971342675378084911871409299253188207897116991566521907457940170105943061457056499212847739661822111126376463769364476350653234902190950505114419169147003259195294031205213203739449176388849820426971948965742460371014430695920938012478591398126685778732072988486276519510003881999566703653617653633847386993109936085506496565856481293871397033315916046862809450659149629384366961074668229453029320320469982074330780600347659535481527977770758171064310121208984232467216369203806959121157949890105965609615173843493506384260582683490829034456869245804013519322249807969249559827787162757458320607925584934777668084242973263219436414450758325182738007890534214032094933060666405787558854833058109422269838450142764013427661323767368581348956617195142050187149916018441942735913428430302855506850332959135252770887938353829019735661360192982734177779056577923466740832461466730780130471496688584355633390262575585194725122412660637296468144011738875673727439567843802349554970467905590211697923007776667392925751684001057192511025897276548049903465834694757495050689729021375505545432726906100323258231671008895496868920765283636283830358803954522878111427652238468318904267962666231110442611338338662308308097243408287617707893169627989564627238085018816647225892234302534904703353500637171283596815899775387816832013582855387214729589391709333135313694185193528217799196617203121039214187333102613021274572622514890457685528849525621885613084074801296991180837567710066283209833934627457100480794545362611520490075358372147332047919939496978678840050767712927093343551163758439736977438964927172692473980960319920176634906175090801496920007030055962256205487840958557202224027265636100289387546241144247411331111619179714114377496540484091939337473636399474840223058471693419525023338329829231481532657741598749648974543592613968500955615866384523187419545938978059710522299789388575198291177361895096515497048318938793436970745372053594203397248511215085220333147619355974694142721591618380256694206997369163172804974795197837267330450720436180156835949746007754824656214797209101907385736529080880543893747483430188243582022657630777886755760347503443104556278288291823731093816254089421749434297286140945140736183702263014161237941131378412046819308730993126231724612284534829570409812782722486482171537984641354625747087887067393201953789376675166838074796189690704615708046221135951677665733170237149952345578099004523488783462750142488844811020334089439582154087228286583916130396051704601108492517251170269996032393594596385610478838049842167977925263710192975741075411088480248128140173948698016521959767687643947566440129368139733753403953023534781432989289034654061542507947612785492227095896874771095875646239281528448281882673952470221959095227760897999094206284106128478818558652599102574498226940660037074732380806513116340487842757698262822562023515699889715640696539733797180488461783409179783164220697752283793659495925711721818548951291501258601936744948842728791064079473967827869875933697422222875942672022542200707922345672110122822143213283411703552236004100771361042302346773183986513201823737621124402256658124886197320031549454189794235359834507162680554234470550371501928067681040835008858505042566101807626018047187009171041682327744119738460894355540351029576033108675235892487564838369108941165541375643927001323895772274845287418430965421150509443171191011340325967098346035835771917718520269096914779781762734600185606926656402114301645420919255487316811404495312039165375474352489750856596147558225289445872958146805580441850272558023684091883028204759726849967655316635888709708363867726612561432429292570864826341236204579143864185311890378589772726957341643662731210982844187446957929466961954434781529316428558516724801038893420101276197547754349294734916494361319477001703188820276301176866664192905753935466790439407942475006907411777932110509060206941386355018905135403289249296810282674970297293904624052691337620590468544101306589785657274964444936121898305587793648004095416839685759511773618759262764561538435596073437298831810482068549045731338840379092002158476201376502966756925387154190576934289979643589866960218786882642943886363174254593271460969137603269629054684797846467158663043573692661588681448140943423668029656427108360743460011962794470513514316909075670350985933312668593574179889031948976654727770503559503302630802258689960011120292785846482085692548760139981321484486825457388502699197863247649533896691284981037127143012787189520716150953472883022137333185293050825137886869553075106783476168904024352157902930774376210698660841091917994168432923518952260952379055683586978044839456681618964885446109975938003654669181834748889471298547210138430268285619303169779080551419884226749811890198184042751679911075434826732686845669765477396535783890659837847789768640878199013478709699024884986069398862645491002225525223388717391837744126219390360094625912724303603781277281137090986713573321066721894756071553978216426944238279683103653250083098155865454569304160196884764360881270409464440723929907335311112920376806244925133347574492978745451550779741892792177879794764655613412017036506528024173124071648430143174260635305085109405996360408465025579676102239883694012317707629779620568910936771084547967429202741042312100435067215863793473458534652837481465359918074907864624416969611583031208480235853587189824224574258158514866303991932818129322538452284843728435071340615952780319672304271218290188872251057769280650918293998296880098149033549360165612721533551076842137430289593195156216744467343086869169123547129811078954582724951014241974744754664607492111554469756905799768597599795047441505020873779343532650187672215094527706873140718187220677770100634977567195149232421701392781125263887218500392813065839545272243882042344505601124341730786477014514442838315611941219427374876054931845727787105924700859308522812050502754520015667069597611107864862898189517522104285478167887688659492419512137317035365144962781092419366776298847438290174933108630038702225587800408893092873120277781662155275926210812627112824104097195111288255667301212293025294769643824713933564691329377770398063120037237448295800651016412998299996744774523018777576677650931822633516557693539455587131979419955357549928793486255755081564541282371146184413482571945070268070834819926232858020325791078551523206713117752380327318132976082425957409163010635197100918829712336574034670298922819012959466823661187829517095178306438924509752327476283515820810606158364073413526519912914070558953597763565645201774794208600603585566909376774480544010934109397282833125024117753963081784350640179933567467793661623868034973760235866719507151487066076200919213958374190352920367859265876432520125403799770441872765096135382778871405797658703010180312394086316367643592775243978155640030149833976506153206935753274450692281068104735811636967096668887405778315369603807225380401568161537907933256340491840655758991938219298986398766156794367787271583089481775286201931064513265118391657371354911913641479788392606477211391339170037149613444364163491138497632978841534990510864710842833632484301963549896299289624784611954195325644383395610931160275261246940098352523502914292232272273743801444613860861028437238538527672363575019078644399940892283756499359176139282564648914778394194434042265086991997812189876945292105071682728890330245719438367307557565489951456744092385523950857164251828706388184445413787796797601023529521949194708418766295033191985585313654042980287979095060527395969931261392980909898341970536920124468867265899734350510283305374117559693085888221721702626615479820021718273510123516834538551414813462382644291948506215169487567367625517422866670063644991259363920693755292943086023686870793386888961427437464447431738194988471330746123018788885303538963743878268936676876582737147059449685007680656094587452562923224307822893612870772728591028429390826078327772210335940052029986280508190522110082649986480791667610068478735058573718894147672506867635641978705705230921976398081235080170138501159429825970782240469469408479270973310756735358173782219534380529104540234468764233667932589019394808257323875704943204701513445693179969701959346211059569699201008451131678864215601410559978924933780358549340474955114181966159361312614803758665394914559830690459995838680337887860098683523688368120779845016343701437987039395696882134523753931390773757156357114342401994894250506715223876883291317016443445492256218921832698689350387474269431830160573454082861177992820094648799069168680256233037893048978287376365978759040657605846669655507721433005231531518229997183776622533636733932876566606302355302961152749432973919307924117549998706740158958825003066872654886802984456963876211539177158210521463758529189103285691293523865223242079184628744045845059859445638936714329087254083730989848859641024426420959351935119113987633938569840428463510617221006780980286670331073810155423039251596307428886105601924562925509218517446533316023390049227945898417411707174904013877592360247049752194722797389612489648268026212501296875977317582579180754254360251096089176898047390824547588785192558882915271263472000656339017347124868233222667795562537007840964848223553445660468561736201010691074877704017661871334577154766363319424167542289978677590823821590136178650079298344162039089452719991300372043727441137093084668103145453197948337692991448643518606880498672018352161218575710656889306687037661829906683579778191485582534816153562329294991926859277992487638771971584440568052293725549579283915917352931004020453141197683409884457782476717279022890735991124134889867044145328313523777421103064106454321484635548902625945654335838779023456330604505822109831701084718230442880106791099872327812482890224605772890225165666699920570044389927045246932915528139245076217425561489632716625688478472766050074854259693112394797132917102907434447263864958369769158159493181515400212330535976256840196070863834505619284255884028669975697456191350833261215312506327252715879086613044612710429651913448023032346132679202765013634287036975416345041082404267616599992085591383626395119748731414973153353986783774041120041353635897010726814704365342106529751457087655908659991956055113383939114170586317838669544901268904809047166378315474321905453239162095074207261058401457927357213767097380136899194435679402023310532259293645001787145780719487047028796008653877417819383702350422017935650833806423827191831102869204242926574911944649040871920412959368356992479551280308840526059517168218977131068319462395165372313115010855306063700537197698361726120137834133921454168570375014963618878473739127110160003893400285887459432816523763222878870068536575506975956682268107543166457615795533602734955834907867469379117042307095319968318797851143379089234066393863295877638861256618006946493349256789187023359005054138487196768937450973457564597553211472486311593271509536700186792754453203600175514025494152985868356537719130906714428403321637489860544698019932135543676278680415994417644995410217084295627499002481258300063979211631781702433246689214906982557010174115493000872190489940020715231046435582454407123633618325850865712473451103829657409289272860202657510123676713789535935521639950101508096835804065892848678639693510460988974715526281144134625530750457897390381257440825049111231170572918744888174999859504133561647831005535677426778561911876921175110450621247750766864511659733350058509104917382714493389707118697452551167235234816811785261537669050279392321763414214238689757693968223557288386334568235419614948168870123474787596599544238359209367579862226294720009234827133375240095080215889848183246967642973228344872941168436274526262073417985038959284811756532531380085407455023793771721699068400948687550374470276195279581738788774863932795310932601863981868973668311216676274479361268360029258982846052498230321033441601048923265245494610605431070647220665577033145426353321381536073750494850248417310715210896212426216063695107374576798592251313293562050750784710249795713643551225646566835449625462654957890395714634129881418571616592909030971685646708425443410056119172646428699930292225654690306232616988967496717250885409208280681363779425056960714629442578092168409209830021265464141048621555315560969974345652489675750136738776785719772092973404596877733704347393697832828767868164491707995684836828505500877335603346727382972602505399911532266556130988909588434707911634841321175361213178522226373910211487317336084264890557072538251184867904602073241226862498917179625230002005466307394441571416927310672432478244240801621543052880474329453333943376971012640902206162038594659423385046988906954351499293916131918692297044688351817405871662320412905911321034948352458706742644014635474740757005458588643931225701687591398870927385145318075341998647952429285198864565693710046282810485928871488569428862315335056932627516459850344330916789666111527283323529112529058792729592301340068646192000375653355934768765690352075504333208898077669107930857621131766031978847471486986469640449049830013017796186549239084385267749529374133086558526353683273429783852319745697469397357222830018576979789496554108719700724526881281658257154808504961141782002496812268565250297687761720774111986021274154378127083832262387393243689858323880399713689789180154038923787263583537213383220109979279318836712115827720313085746414342689803900632956633000957968640437546629573227728018743479815209336955238507051180303277382995836438566381641878122689366379884434892213773284876624137916226459526759477251608125004203482071156774049442861476275584314713047009472298913746491392912746631897094841263424007345774704650726422331232487794606675288611518622087047775780289473124930884074353528312296633565720139828128554573820987651564864825350478833436150635140347701540286905348339248776282983405422270000686500738679944541176562970945172423893465889750050371011511029795800095346320838422237790324071784871370713490860403839496999526313481050956663159106540980569716346691373984009436214953853302199499739395967118293094001497430720006005558464674952923236426196928362219043405609489577008215941117271707287101578670664463634226097829533727192337011549808136187224432223372297167770522197533964562459888443495189500978093223505311287769781447798639213752832422283922176872421433411379476329556425019636685953021953504851805656334462416114793979418464312842424459306999420450111192500819728608693402885745826598055254621976962396266185378183748708968071919754437684960554191617663204995266983785587480744617279635422148588658545303685181638640857493437630364863819511755677265793017358954396717094455586003030775462678029698317714326056723841568901065684947194827243760570607777483929968951926679856474861410280933209321451205492377144148074078918023278629351191098043453841333175585178236526298543477354594614282571234070360355791542910799575981869536520349329319154911072933274127034128351960140759362926499319082640077970438763103707280050283550892556065397483289622591721348552927839304482712314581337666789186768939187749279843841954994402710731612008885264050594225712524793673367216674571640878563609208664127293005075155136444925881312532204399024485884972495312567139919182505680195565531921788780999571674426683538031177341695218251488657662907732654190879607485540738558106152577508056304141711245980419022402417198392424167122434094868390602557636374534922771797872913644824917788145807831914393520400041416801103842924907145520082154122798272027340289759341909684000197324703945982811391827619000253632751576633438170850163855493374060980114380153706907042843913138687883572285786657340968684917941358331117076580393468230724896522106076138296860914804881294350474604225461400670371378071601459880481645546084296051103235585763436049082666647733045934652580830237174735528127828388821920810163506697502251316972205873988508672212751107251837830905026403748807099559066079697260799572710525020094377067674649954795121644408212522633849853608108243840302264297451011409158734411576712183006679724982447312006582950319680146670502121433901581983605260468328363632928280377413884321167927007778417191189078767965568132335750439566212870772060431734405600637866342058154340768973666344896955478333916351210431692649387651938988102708917497575054220625743723342117685488549403298361541125720566381586912345572725367112162889138301079118941169097210823802581163724089532917073011510229327677747768589660838963788084790303855569686809159189090033521671091736715158767890980156939377301197632587393822829328203110169520165649321019375278447077107023259658623246905498541986854997107113158304162875174278514729942483760668497362050098895904111778431022918644198757200531386666836079632627794239137585753767967032410981736651673339121023626101975064117269941347347586438507961045242995278177317083839588381588330424901257867466271855731052301193002937079036485241839080575960843329345740253416042390140173203591349423996934788727293298798491018769578193317138365074734879559168471771475555785550889276642453836571027393887161902871617557761375497733151940452138120278360738327280273389543033741546490681140430705635045066943629413515196951053125951687376091199516123490052914171699760897360745336087270219161208219023178488908977344038160276350912923014870042895555243824423492509580625506938064666164079838666559615784592279861049223778931795953932795208940933913717448258784438318843246308345646048829476241922286589768745170083671688691993407549898682971578029070976938187183675866528870895907558543550970860923743328999151582409708704920907995852025950406716450702230129655042200411575148572473851389234811483569154179549667050305937301698702134897818872289221619587374206083773877488966938847111160497923253126783884043845305847735037250862554806726904526537349983606899391785155603287121435250411240658481112387201130407238833508972283026545545294933071694329358840460980610136591188646920330910290383931248406027969083679724275663129751489755255640222283170369933697753345086625117649887979064762675091204214792157725819413780334954967653325494528746858298050166477986959696129029001242742507587336982515718048699001372161070036287049590794629354825662932754417291803124293538764047309334172726391318536283010081914019549785376694533878527712088069810164560887708071771505926885333010404195645601538316720528213313273213077316539727941445031938928478921427172464283851695459200007157118298812689438808334127644226682018428480218595892997729155613665795183630274790438586857119637897207635850634360074036602881313077491315902399739493007220894718975609386368761785643933257481447885137632471025385780455616223079504277198473142341345528724120200683607673957800159688019153612062180422833992669103792694729695834817980820877761567435028899835075546448109926605559101321844735710706805507645097565126465602802593802729195616566926594550577349990421656035659591158110901230024385956498687788957948685319238137147518037200108869396460271335323281718487818891931879408172836165558998171877746015475806059884562868566723784974354033820931044563374697926125666671662046130294995920482336006689962437659895626618072256493412074508837080252681035915037824914101800487294953870083839061474377689735136628716697367608489320421352573439105620085963328191393767595311108934631274538459988465581117244715898471825286292176164501328300300205236747270051771254623172899326548663869606126352662776497700164318544107785153571638238986018847112950543716126644556845304153985967738598521163210885594715787855185181687723756203108417629740002178004180785235470838001152216658633721202242500840783094395455004745262230831990980061371663586224335526588904798933966920101739419393647919649944565506035421299069703346941832942569460829336926381489175075827011200094730589093005480967510242862147312345202235410055855374459700528762561281842243395947190609283060372691652127819328592966083436402420779860750359537078345556889376449544742783980089314840099133371454132126978526736342118568273234587662320689415988076870923454032259105297306716074161133230251334589020724788116883315163017030283299436891614335871027516506562349062979448998204860788764286122193387293547210190480423815184987575860744613309711981652321254946366573812147281414246884100765280888504104051894952623291036464356906691717081638491791922381022129156904320961497805789774210634294381663964843523223235244015846048058890571518429960623095083248064898686462897507279916280723889601771650438758101575150366355833784503879288824365035797430987358685236796160308027076085368729480257535265809510836815008839699308077203010642997196404858857467583562242076481683390445236484811496472464313036045109846520138173848427943501498833283315892267862086644725301119023557085436552425668927710526866459913870567204931958478235600096406504473555159906131726135389856873820295924859786779570244991735888708447885012145862426403520453535731327386364073672583369420618125988635889679917615509210645656363168517782610573559668462059797322297951057565915993440527478602119343818828644334682500697940625564677362829226508352508363604446868872235465042217017127816316786421080554665779374555334944289314813450946953153396664302703903220402399055500032683978309227960037165047005921456136032741753563645560848525500790184127896774610201334046237310208099025628634749466363062302126315063312927504648583114275827527815112078202290835389889376396407896752528045216442048821968617462176300695349532910681400715410592446701786692942766665775253558362421462672837417246366137003644960356751484687641648948972092180392603771972998614868742051023796135890556809357956317729614328044629456441890722066919523501873101435792113773475791649902975461640010719968410952503566137697324513635631473093183804194051069200248124893843433074046372869774344594386889120619583028487715097612264505741479372856756555769562231981838263699615928614533493290073739200831567440960612336686836026914376908176948539020584390341926989595887802383071070588653980429561696660095353459770582022283598213502834688751686296509692165015102280454288723977106312050184193088235602912452678590748170254623901278038290396506590845855020997226541605683446328867004788817830720663867590326337673397693604681038596280949433414264668637560709290713918407497087574109913516860553127485079744064225936171213102025032784003061769493582901518749456014077142101899352090382127610689071705350070693099064279397875722794673103374764571440935102407202012801106807535273251514888713082351610891362961098918359108622041155551664694866938358822161919358067578723449792064597627671537515188465436322984654611559158739431285826256587624071045335103332108578526152494791744294305015127198758560144193065920696729566340536435173081445547090901793377173195963065924470323738342268771061306295685984497611155785759710456306969120133863828952802038725583662905682501256166022828503691248467320420089815267230615903711939224708042363010077644758164683933109366389254223049433635240065690874194037795860073823549799953881388440443890500778728361352038176372644911592505254365161683618332035360713294534865669275727545484033526517484166783703088919467061615860935069808225855487668982007563862724728151736933883657045169653898062414922987513335014755633304007771889532825383663137949066571244335050680605259199563142055668045429824110256224688188011675814991336691833467235618406168883478817500943786497877685453331473072047919920271071324754272938764883996215163563532794513430282631238359673642956151226168557063388451958871891563112535722910311095596322853033874124281340731546335752157981562587145424470756070316615634658314144309797691602910665207136504207821452594728366524807927006414728861031101393521233098172111594879052799501719110438134666113283308117323546205839730353649882868790407642204181321114624650793241525512863863770550163619189536198995580133744119574696340926923665461823253012658458560475321512163405240854622613164142528704595532683555804943179843056172953368175052452777785953037623204284111868119981017705191908630427451793743603385947983284808400450674336716717383091855011304031130586331581490996219427438080452128198571887523255822121612757462360003731168218771652430359988886438568202451395256187407487886320720612908084757152217051072236088194575429436394406710416792163250168478507334612394307070049226482426251869337522975877301862667634755251772019780948038867308352989656154794054974490365694935814260288466784022174892631322923449341776898434340263807824284352142035477444269331786441046326522744001398495256301447860562424058308460024276041996639937082312720476088375442845780392026754578672695653060841375316369097308046849461618913194018754302027345393886635095251969166784508526401953878416681902215796383767228744598759000011635158011157500757094308016465869464991760502317753256690446396916729121184856019919736834780587337346781931885497221989506135717785406432744624934413843164000736159636479640143111911960791386378293728162009924319216303700577446878535246644917099515975731632839742955683307141651325707174395076068259893425970702161111007939107192019873111762327726475842783741301250368431968855412383628396479954409895191324681308200417235373970817813994506136447123793135982736114704523668602487468064526283173213731079851342576442014458645947784809689976534778835281247564706347930373946617000326105771475041282837099296560527938888518995774970957582295208458505086594368661507860953627217147178169363103537326530182328022280800365100556292238392976902372440499481486905393558976044778927719165729729690442853126394968255223968144312987886234779299232480371781432681631859177361661195593250805351749465311314517780332977089858288813985954954844081181741710138302734718721868676431755943188246661202706472113085854280124727492324426216774721692360867507042679160957972006495096323470176196818880088322100033041926975585872021166442319196172460479665326061285037793796917383104059418396356617562428395443397753177250752426588988108814963650758324425888601284436828752371037771450078109956343390015845400834241001251571207102538968704859157445061931524245257306224622930636198356271341274816586638754008796880956729585584440942471855195820071503293633547526006029863706128215005421292002673638513495385003751895418842254182959020793102515650533907733063801889839404740827121355361798773585310043174128252235038884272003902278241092841009345203036857445804117641354189113007055884043244066213503237499594751027281858275172457322844008721346889364293785757103959801969228610624295799858952668859342592547029178011070052959356590902855671667434842400669216362217241936243395547628800221440761506341876990638966811565564617802904699915722298247179401116739663393584822974862174215927068235967128203233853361642944768457890554351584756278575925061841594944887935731534526560699247951393190233424893577933057002873020848244304991016616526457945300885234566290866857418051235344717150420617402855546582572869165519065729767428357955310467162497111940707686225766384737827308011165427615019714732522630519893751429135903949324850715998246300221451222516314035966774761322281081593684412732566939538963652540749597598169656526198275744647316792121471373412739244935328693596158038173587887580314899566652533838353276774289179244738465783751141831708598632804896694055259931141554381519837010484492782239712834056488028144877864754021405427837618278663071040331364771374326177989789568575096002279708738338854206553978843462274109590093089019791973769721323189505507960650548403005045494765469912849533850446553857678866729509702325912778492187575422240740777089633617874465903559008608686561370702650400990436538273413403961047527106834607785514654252013268927866218512251204880163668525973005376122220861484078907471814510233565528388700613552906224061956553679030173928490971746782550986940168344047390234369279111930306549495794078970977949037012549713963356515423664960776488798700239119073533426551099206050182918470617498698451102633099018129914177892641418950856360680007219792169092544280819987277060802083510866240961440116437406645867977386389371729417811036787214378246212958528320077733019101314822098136569675060116832226371643674826919195017409826862845362500364779588332774645137483193484004206027702746568477484466341758317004703670849148603841367637554431120783739707937984901542393692220984600476648166633909879297087841343350180331851271155110109211243145931925016413723564665693723318328357056166556647110128940338196271155796310035926455183130486863405271975186512228408356708182805372259486802758298748369210806423381678284948031596494719067361664243388005290246218311747444686859778060442296186957302005025175539727549276348857389979229013791139116437151999497622586261654199127917152361836943098208740183500667984361913825986455957561358210440927552152646418256391539643219927249561175978335299902091603443983811965425465362485465925440057333749844440932489954578708599682402534472228647896350931156646640121278598142296570781137828017177188980053889116941058039965025313688414020773667319201658620237389314979785258673035466379003619493850139416881071466595368673710351187746062923731480956333888082954771230168735135793721916062249442556394771600516123325043498459714403173685900907396776007661414533295287360079338161680472848915748325262068019336718797230332836330359775719774837496123177640119966315368200124106889193598374932174630392043319547492634339588678665853248819351592626902932461113209897120709169535722961768450076882703176801106982055357600888525589869051213585522410488838900003638340615022184772639321525496897849676682832472858196086498192023938948712813448102097694536822622413114210668448284128820842274714196799522719575172618754167569517732900357345118964291401826417174643856687581318114702924238249717673792908699780522315909745057957233360946864862780914003087039232382561424415528699790670333125683362042845199974035223728367512733091735036256853516455303091505865368450886215004306446331879767773150375241662012389186936216299454833287216049649974267010330155817959273800063253435464313659354922550641174850241834540719143269209743585259076543386083412275986315375684440490958877664073672722512853983127766785565244512045301323444162565754544723528549309293795292143155980952500410722384762287191147871620603322095391349636369318092862398825473769712195852626170221287984620832024061781511187191439927154553113091406513737441934669775480593151742954121383225168096988659304074516337509943621727387179480397980747993938877243574374787435172462846945273441721246557284164360312539336853661298089315314002129383900101710255604025093113169477615673447221680725742785172692449316095152289207382248966920419046701581525386768669652827965272366083553270644450144326068449367875482325899562767685720916984514078461064022552270156859518265830287615960183698031652237340909145882910203037069095024640530401259310798695672138593309974320025042581064937114648341707593829551976094111061530240710349104350444910921929448549825493016297632024168324128428463152460803190452207359217083914101728608099225334766699180155893936927897417754025335850215671441622630715511762559477415322717531069631217194832444326007681306592985267260714429049822789586379901057794475183990625889547789171177315839279262404977013590436582714055312762988454062083251347083707338706396819709565353189687786862209767833286528750434077556915439184946596621728272558853109196717188683568929238273785543783040581050681730917314119510379421973526747317468307130874751317924888600471880250256173914637238314536618994683155471777677656790271879534002897213260588435380171715369191580706098380071529302429309589688546186508392764406554133500340384940953769974631935516020269613029174623302563942094295872327274128260052635866045807148249463857085717473287582931440036055195730821978770942010077821419757802534042895237820287332911851163319475005816123801156542068435281164610130637484927180529259063173661955635121889785761000878374595612376938777891938631031596132772460827274561126952433774201595049533918164422880125462961170876910593134068671420694729269039021037550798307791372883722314561624858109609923091145781624865190922576230699832518775390143598288752135101149844057139743860562128590556967078232922118906956998528534271477599024878510715286593085381699616749466909846072596662856605398757404491489809309556653682576671058646065132374302869816032253838504810163922927934876738244578237080349438877997776941573796492061422120335453064947159895799488538316756281146468424223862009476183346166870110869386033282853754789167421025484113802168767329221987808047312549176434403032390442116710742820851810829188867024781603274730789291430505029559964268754429119268032924174086729050708081948804056019539427408415255181084237110555235773762662694697298046197702306433932271348416652329359289545941171200063369667905179720418267015453630176155356498162768191383520526568785424133136550467505493668870943915889803210144297561792491936478917340925104798684354395663734277004679907703442935535787246666859763264654022556056265655784882604910419052153438075956628348543613479579099232291764727230582923368480748530468055715488548591842613093159688891494852321697414216141960558086398002483280873219833190404264511169705047484552357730060160354606495520115020072905017571776971926143751202188825034497589768150406598673447080000613438374844469881515426018473714523754405748012052948549272881758145328742090813367883563939339251651839291609288479988348371807271572228953564963595155084785171257709519218059695845558029922054510899961465891674440086381225746608717273339529538654536652600936802931118461467944199808390465786417816240959998075252673618007973276502625299451639469812607120992574021066503228593616575296343858632219827199662499996972978499209476906711756582319225376318547449223884440855451255962703221217978802592704262490873537919901491909226996446197565392075284738699507833232998711179455997096023073037221020694187824811653900882360366320301960606226199822635484596391915802701736223160550989754748774364955466094471907206567191328266677707132407519131465627275394635768270619138825665800785988656171189988302670082135553204926173473037483626662469758166533638408279240991548842898071735332604408900382161524241051332918809292574398373388185284107340331581597726178187529680502540122347649430765142242745861653251356349066761605343019726633715185557644070899643876907069743305105088231513208242883389806545233480321752421029043602635747390714003315401415671578178699608152439300171274237828108336772528958375320900132213899913770158136979652064934284697090921183328143747275817452846378353465521546243670854979218427462131198536311673405141696408200538980828608838243468724767180752844828263005982093707692607183023372208238219561614652474043703424233372863438206255910079509027950365428585160489770956181877580335702201564847924581530993903855469520902697388820126221456075821262281382867924971259095259858296209794448887753497766607791899227627092388493440180480514662595820501975817832435555872293778299765923620412510909257116594172973886840937957864876641654592207817294999199663824693081694995966117366016196044162164913905023519804372921095669495299923662407159595462033061694139959637784493801232498084370719121340285251534205875237885811511410480677917781761373529523465964081847906796023351678685455495946218509995884806159833317793318349044117080733368586574142498814588968792898259297146442623628448153915273765944810266537383434708307603826411160066412263117993727245170884891541277339031591201097845462477541497273127380671445943952935629598151512166250793135087292776297698111893948026506055696382405808967306513601428046572609685132689167645667301531129663364200329614952808206619486711356298624119018944362016696776086610086564571610860989500850835557281568387090233038902898695875894407950735580010152710496552034626107067840058367832407636879701762707821592170274947783029932181936912675956566052353258637205149605529968473031743792023112560721082877046713150276793027438532679800017235228444000453040928623343031735709881476198390579097452882822881943032320797081899420532109828232146377414027602608074582897191748246848414474215165549217595537113405942229116360941822241405805511795327924368974053894519565083575424243013856193977802006390558847518962039278448901194308427073891128855292431773796320413264633572736732174804858212673858088760875176663234526304555913209789122112023111222975170338114604266504485520030748644396556696003617481512315736746376925658900965409927794741076454103079101567698453399458869453981848223364912259195363028579662296015544679819006578035316835388726779366647015723921898383385175113016519279563684346385067126692909784964887595087548834110291771433632607983910122265301845089673053944983236280521699486330082689586227582805443926897035855634008112996877680618683463375350762405283989915944903888684580713680148122390108876458557245251764301303578804354884961606412888496711129939806249660152158148774257419559536660270503622087378216749481076636452807960036345966154262052105044756554949029907249919793657373169153991117237014988916903572573378986160426396188829559026759148513961778488813982590249625098261401220661825308013842310349164797372639028180937916911244535212519912582152485810433835772586176874539271604109795747513267758104498879370149902501448179314288993044851823591298502845412725714028275282122616500840007526958570060436020106127648595786918374989042674326990892335837542410286502281540917386130506788381166362406418889160485891008333418792671908293114554694985094109856136867167210790837372620386244689877127097152996367491231559821996557064666361681446599197735298526186230293148217963787930353182473442329589319986288884054588295468172708563811880817421735804766612373353091574431778701177019316491774971188368972307094384993122580599633140457168994153149462086714528462564390125750315606337393937772991085341180573244717331928401610064418188385622338177617870677356366508815404343058118524853804956479340526747545367509245662023418867762189498342093760346483061242949920193025619374521274782230688712648558160952080263042552310896991932885501904604546496556503890290664451115643919454236947744636390935357669698398873690542160098601426977327864200580767761737367980749087820310764836773074672158412452993098289870225018251228200748351581415370496759483773535449343288676429142221260620028333312825745528214830332664598676132912506637732827369935215804350628210531182049892479826859311433473632589300821180803239995836021899679048704746812999158716639815777934775980183897640698561061031818342425994493708362473171701108532841742035521503122822722249655748866510837772678417452664157916881681227618077562667151689270787182970931980623727820244995848760301170251648619587721470847642609280861569767953291342836914237383748957613763920568960631732662007922691186752250117638730065641468958394679650224137700058326301132745527137278239549204051913861637710080563257448196345722383136127647873356111684086831235047182289601131348922376914133597574168616157478806638472661924749030920414995746857170780928232850337437611639638288599741418472360500923112449585506367312016151077421462220921385736565029411988339061096191491956774522444545954680596562908031235390029787434250034204609452715268816109033086672035339269683194201260899363444859230387259906095665568174911914107054125490945456781769950353936092560584657581466484285315831221479799989545791856433488091019045055719594487779447557914827285181191559989425700741621351413975264573073542079350910344383487672765246117707801691321943821316347639928033050405911451718286558949730020891444579922822721119952647831012799515057929042024594273858221849663437305924861296095447407142946661785683833912316858717654381811332888743225116891127903206986073602932239787384132095241261812958391579450801258490750883518548878119294369780183191024443982681399962744632085900636191775546594112123861831973302399926708158797465952590776462155195642894014373446310541899791191649485511688999687931451778852533418447951268685091357345604390793819852812582787726138556497950846471996881782600923491784715305588054106158416125876868515357243520709956434925360378688427260283069261272033418000060633541714081022089457435269494578791806906601197188698881056193398249712506178379183500654292846052395485388028022601346025324679920071458973402050046302396074003364752004648151093286064884985267583652715685172846542222038760837186983402627960938620568995481284606023919342510094984857549566475027717245095616197995320381873779535094257579343991120860259306244651267867459929960696271808865349570237829907976282492365785367602918725996441807323512198891208693582056642589817249592279118231142538385022672894478860304521443447885691040126727200849152308627810784541789990800340541694809039853662364608497570269380288992103979907923310878084341208552376539516943560385424883801101401584785653957718366087923551021104632091333313809633156759252418112584340088294430272239935602231017856202671978791066213991001881960142622208362770416279558601511777072837590819102783457201778847625315907735318631560191550311228451094708272195258734424771847906185365955757732803471696330466065304750590485662823467852894417624093549965181307424336057087343511432500393179015809688471583917339952083322329577683417925551357511122981497810856585696716866289393416795011564735923217383663710877330637059200584228643103849666236398608748517147629241227459482954331743838184622989762176530880098693813118102951559039643319410790285816275488155026545612263508636479778582923868660646496026418232082870195459083663321071880686276221578611852298343932574665319031618279046101011398265730170977065021112566307828560122322539525489272099115675260465780003193327906510205022976446955837335068204297399510067599050329295141378365178036564507476289314039967332594029890278782215600771689906762956362183947156109232446027087760314023303125094377652593506991135186672949963463146980284055675168874611352463410659640707281988053860092322932637669051579739332779859950776322118879840065016011060847372079045409706941159529010689906751339654665836442861723102019368803275540938924037742227957219864931542146468981618690249409260885367814799799427725727182636833676392699038201860520964003196667980871811722489287669727760872777079659274773118452612872195249166444430224895319512569683519353105435537121364581764555022597089219230035287502682025537043219140852079808981503547597510223489094344237087797825837944663512651368569997998320212639707716979775042755407169458668297775794654474947657593716223633808257750208767738396553137810418737184727694813924190371925735369986833371412742996228149547839102712956521396721564956187285425902577940734092222418551089716860085530785535423228695628604044717958868219599470629218858655035652225173539825252073360651030583556470331760450088058513138388559322484849653109245932412170951268117167558475399508855510784147975243649821524679430750999983002066020386643919250208625011158307529295263135229833625004649170234696375052377865849569322542163416108209640672949179904851830240789553307886623308569306682287584041483236213874700188557467557995318040506103111275626113046285724917319962554947209806849101843074247924947945394545225688191621088394279284693615415739879284608097229878707918579214232870870522840095631995881999752756384640854568080107811207613434108643741862342211245755540806176251271507752268624327208661890007679880493245362497288372267028528979408481369865629480944982596344369672972361304853701559129041153998344704507266061998611558826424981373074296783717701334307936766353449985403156035505515876563992689577666659680311780218438716331581250465864560902134585622946428133016023405048437733841694067958438081710304254357284073301412343002576107038073373387369965167256919317261943951560954109550452354975878826185895097703216589559971501301636059927714484654290125433281400169967646913392690904633646291787121093089520641498303938723198544394592647751973359401379809250091457270887913557866581016546675724984655762408499478355549559800974818091576001906258260888191500183797278888471744064693878818625658201519996684436841605134178138149328952842143856334310619985969147553172353926980086187367833780292261934235410713748636312308701115480945504705783197083392760382028199632797929414057436050790290295999032484084049234208084504696655000035772295531464833091953018045227728923179289616888108308529030396481745163567764812066696458680215009341646136080517174506165710221229176658038592426169511505082535253337781001593724716908067917684257010358886578532982718933612021540128152005216860310538255615771876135115179180146434317284424837569572897041648926926339456740468773848431351989485231656622602650421238278464212854113314626798306571199705029528401375077057389641685796045297580380920423963941584652518449970078041020136287794704322426295343747889414178702536520679985740580984592963346944639582529869243624865795983938977807734137234027918862925486503446768336331120312783153980223869935010231481412643146865438453399026092857513725494249070181854463552676896205327433478017749843371030982590164361819534725548459821427790904167298516953926956932803269363829014626114322862353882487497027910939304521922838807150051587529506335297399004558505598464920762455751644553377104434860364047526194903958310410277296769057862291053437000261557432404186588058059161598711235370504971092875412947522270467303097332161040226241749205831292286391980494387170686540831481961845473980881441179748318372596770788025925012311300674407759389836443662338845491973135507240627066522524883145258084659989753438495130535210146498076738306692911989106058667995110175813333033990122118920459852944126299378081526582078323812089183204318426182280554114413239606800716124988399369730227615947506256163943120525433713465514599023662536435780508439467978290204405343558373448781640576046843532763989012978804607254472261125573066050323461982389835955938129486903830176927403905308890600123356179941506589943691786723568690899111169576453621329385799505192336499295118112094417573893033370593970143129298820725731057702687495683669106905579822374523000944136695154665301678364886430558175241704509950539064772875214655697621609759269153766655334461579114588646476874589863313030879828561551122867029752983537478457511256744208110639702600598330910127471065195534131367569258330594921566130624180547704074721741263721231992444038099596288545140248882219958251832549156929178708282132002926510660378910149622763905154796642775461837765352481237356618237525371506144140183614202562860576799010818742064327551657237440238584305710365529287704848608278996299577315779244595046447334884789112290688750703549373610979877782316379854830515186203267106519574316931118685004012501838884670090644400877445925202392227104889099566840052553567071531448495325648005926769414291413138058272539441801457442302265077864467928998538469697882028268854002500685625874470954214874655928048048686337381269053800721972099233478692346576285870172251731172684130388478518079281162698149082029984277362823924337095434072859468570715308556066669594252067620689241169652108519974251612134665237734538524197315688782819444729510897465495374157415394613212776253753521206252195115245132502708978509974800450467792379371156054959774747598904008598124035823060579044803996097151875115151047092819656319047403505021524003314517878489561285704810446131715055055045479769110450036381587193981638345325967187646418105596619460861855424138738274918751701484363138398883278455147235982064371856066965906953920404995132852610031706267788108695488594072803881316486388524131991200312636544083438231374316789709191132191598182057807079852353107978404154102469695448764160097680008709616471735875551266407671218753716494842788101157663355716442274529858730277660471453776847626688291818429488259373695282529103700597700965656812607220194185759360133917731918122078813387012217482812366917950555239876892539014621251085149488955853486815770444159922947014886608076595637776544685424343751420840857532012565904427816619592239923013473001461321343519569496878053523979866266890561564920676269896319247226857419748949372527838295841774286796511506048886947000088807274673328279039516662032276592945253071637756135989469721931709761843364671135106955120349239701850606867417532212137383223083486508225746770686435624071295849536772045652081406499039503950130966632349488441997010164667388629989586078864276375001290771901578210064395977543722384036956018926795732735543229649346089854257523527542892878082413042052557039830024366439267712178526774696289640374335426187203569103654582878037452079699878328784394864204701372428911245497643112315820371710885398628609065968424065122962948161743864187142725257428680976451946759432589793016116643968010345220940139648666278806007474665752697309112497323158853937983379886175711877942992975081802010206816784218988985560396779385223360720497867318864248028742519474772818825749383626020655114248749418555766509251625753750109873692819278695435289810608250016183920160981097483924193222300689265398610345856488570897373008405661189944916083682070084434424123776074607644324425881057231212699420138786758681255379578009500029688514943195243240693865858360106448956216400238577431900419643648016655705161196637222013185776013102670061563118579233619041721702211171229307688257723659126410231056303991467813739357186990445763723125433619057428276434623116647038740306402096169407656889076941164889027760934883622919096846822149905823405880271940471520628905619483609317354869040076254630105095935877678771315485202459580318937766440781304465474174209799841157729038469102220599996513188827761596211062690843939598775194551116704275167023802559060567646544064373176168040525599797931272262563727053404357010549353185050664436589094404761315460026369639860557115218128353331804371255652122114094031986443511956322620479186757665140081407772240204711749719839649699282635423944669611298141912917712189220250569760992467427387464450049296904393228168907285663202617453404898961929059159759135354879025313160621594935336537831755902994974213320256683478267238685785737686930982773099946116325160612688869072859894119994982854053241798454951540570890647601651298387720203747907181746716954133489876899143937433710374014199245239786694240233048748375196386552008447682015579109426697237832098916442907259195298527486587984664216392691345868515503067832901038390169168779621003307010733218939629057166518676534150082460241785941671178294159820683391233025618265805247742933709213359500519730396622179170584328371379655148129710035890571058031793187647466913978894593361368349525898747083102746406950039819444115914858803031039314860480295866227677543724689892168758794217957063002983734235802332459172097300895346833024155774961259812505540201607389074176269928961064190968705307527287409615811278249925133413882500966651761811240532151816494300174635683563999254840743840224566583782756013254451038082109506859380778904222512804138384993296536812731312797641083455658486273751129611253001183138674632377495522277601265602430394303916641356112737998322066182110141748918249196764277236873142910433494364623963627296559750399845415380112274644294979870642979214305467930413929229941012268166441013200804043528189734169750152819948337627814258760687167465217696410234257083801727934871362872251862888237480684570755567515146766154267711852767515626121493592022928148614191018988201787842836127005480464816948487355111591481728931374501558231115085391333630852039598674509303671609745738886031936566439419999422959959338643177162442714141458311685464068796728388572509302567159850131034222927287005214091037219933852945398007258425042030762014122291098599227757999422682244125174551790276561720631667708776134576545815492771140513274204058066977538197175508396194779717988368482961128055070646706049993023703917434373831771316730422405013820476475017778025052602188380904876192427808968536636218173150010798710180179593562056673294437523016835124262094483806452741765483799285175481758221844214361798284371597202532670528946213849516722689398937629747981840570542175016807816486594996733707604316011933995639094175984224073145790179658550682281808972405786797427992941674653850374548048178008613319542753885052521640871483137481150161176315069855918765625040303733560263864571425412555696521266131364703097843115106600225832720594688640696095799523824120051832245272305685288752974427140289387002505354166726217359483548109222836882410887829463904080524460703080902023608385771930161469890201147391979965473300014713574341509176316596777318809549480954343101673459161550487874289516850651846133203086506815028881827452119568038956834170223383040157211605546854972008467352926285087049055429633006034782827602294266888017367136887672280009490782641064094891430623185605659575847023362093146561722254697192632018497765841871272860238127111167876157684941711180154376892485453813114692341423631879359054509449708393082746504930233713675548159755360777701124591474787863191604439724361231848282813611383899590303650822182942990059392698258108265766072893545308941797125051263597579234621273099021199218815728359872172627029189835721285675466168482374408409051081101148329965786130064431405051335965712475246132377434883116937795590907079853231955835885150905177317312528182907555426261264305590024121555129404318188787505466218505850851154066994724113425010842870225526931533605566737314885859037882542752175819444659728230676632062722530887659936481306068514005906870047689457403726346891852655950082236588770651418937392045041011944904771721547250802766933732639428512892934465018299775453690557203798161824117005507919627789212864636651407142520887661930589923917947956370991297081634283020123351746809980248877880390827238843364010844947603015337442560478436213414881300893525028487965292150510845666938043159055697688139241441371195771958295340825832415785254650169262967417083081950204349713022229248985551911760472212727293773013926463544226118338994552863896126361771773161914847004368094080541531977012688635554660223533340589744233060474225780450587460379571665646266660193296527959951109538675587552943277512892194661994699758956849885241757845311078640519109233686139891605524483996730857072528005543981643181706619004687753903908486950189349886166943956003697249205662587787898051746547495653731542240548157415321496493723691766624103504708109700984476458060002839151205627725522709759789362088213516859865138169180976580701164777503826110607660529079533931330624738086471322598081347185555478308723849987810014016312675833832947132373942291996481020488123603920659300258178112225780248362365348294304469504413596261666462922747761471649507077485210054070454838032726085330625498344836640592856780489233994142534048446114749598808857386526546938312196581930123344428940615933476868706151181436645825027451068809876259976672488105848966423319191633654319908780421473049628276864011330289414409942387945590454978709864377095935418891360095396604299934342689754549105105131245516044132754736631594988780516885533486734733867531426344715959240501952414976444692202149280241342311825031849500974756343068738817927959030471106114406297203209499089554193786187868960665507088836274056044607457719198334359728960564221473264294169717997686028153511420764136836998121877933193143210181399913271528028873426498775750155245461673336611387977871022388621088249706978809347970963568245365373053171494471127645202800150751002437653200873889719069854551708245190592133072932863790204857510143866679754324162967004503414303839599399795854518628003628627479540499774920429391257911501853397737836059230196367727842833046458437098774833269292808313768528443722026403768326935393292768802002873209876432108449809933256945208907538405243011656601434942665543904830559453731875254168170188572497239912220258994435330554925718059526504757602522794946376632150097141235649005238018402682793731140152437113690923850336697924327324109245625589303418767448814046604047069691101992572936615139180313948867555367219276407074478038757971196811265536014268393589742102909102668312303987980311097488281839563286937350042357513283200413058411281871240977713676625384795243214551767162929033080337175816428063601967896132796913718504686452215001260793951238412850087764901373995609089207753064041557457077190574742478515937535512595677539791104529681996245346827480119010826109695618365233411755716582777643770388785982651343828854241860484069824944415764894152402563623526927663355050242780089042334971954122500565103481971292658548092940033264992863627797120351845876752346712855459008217397396024353920289742076935215812275840118101243338825536882638956147733326149698879218835252655727426922774369165534801467743884577636319923968853253428341704255643661854908881737418202858254146824757765853938325593568554399191249487498845393447184029596237151554995057468258399066590019839838332076000422838942628423882153005610327084694439809203738563467559895049491746393928033002333750820942005022557173057747220194592823606021438800955910828572145709725002824670943400717697436182707925734169297944673758209389278854714154287861281171878485666917835769606825598907920151529600075123161053824964065099363132746880883151810472879415486170289052240601152600684672811517644444025015085263035384137956314210878903633865151939947578726759535771771253953896392831092574230557103451752155298029650050795340801801132318650805047919854298883348206028583285893960324396686858324664367069894838514578351435617261127248980319105746474241603510154999241469553848081399310803201322171589228898898534676324443010665978679449221685843533070482121276660358057207981789176541582538622536679268155171437585383544785788647768228515187484466887885239818499936843503560852337089119171175832783902523679924701762879205244938492278906726584923070207261994439035765439099948902104140225299416276972899278621207806062413095232092519062935300272907235414075993266425876798254400757350823663132058787050620514047115631444454292847906310664441086302503395197912259264925949947278037400896575492752398699650212644955382995991208670336048721361762185600500433439390323108246751655415935940135607338958055495870040750400582530864512265834653078122632398344979477076039044903072637448276631248343613562419428279744212524770947775856100094271720672354477438752241157138599604936961086509747297002574659788243485801613864165803676109912446082196197632493938426364536832115958496297766658254701917689678290539317240467473470625890036112284800614862875642317100527449244242500152072254711072837933175027316430869817696578084419590594911939041887714594860967531810075803148005611615243756097581226707598195979452830124398197066100154796325761046918472108688143234606656531434494356910143189295344322422307556964107639082776465145395667825572280108586085975288506446983798929522829661698996373521748252944036139933606841142655023853218326720200101533299393277320289581686855940795341871938795848513423478044899566057370463768953569365809960473288606081220293817868303476896169941492217660804538213056130293073217747182009398032732442685350760503396740564270018027986334538456004191103114779234025698790785079747152052883011399571656131217375195822290290279046085091293725711304192435885650115126028543680333902965082429282948138645013399972261164599583714404504244175109022289794309433773092787685048136927194615356497839544997865322512963763140397956406565830880397026449444215996805418028416221193876522164245738854243526945636991431285765873251635873816513359192570398295164730214352157284771534196906164459142224566148669549272859399599953812696593274469498835065714770203043975911185736058662936592306529087489721451345449936776593867327156491037519642376737722536686901557975588054970703012158535455312376668692318449785905014735508399391756396247983217522245458825725577522559164012310124995162235046035508288832388049294538100733829371336556663883503954473786887310149540656996262059617861766493295507023982170289351605289330908216094312443470744473714649139984870443580015703058241720074658784458254576335890702657203165835007982427668299044648920623389366642763048002084487532396857871045832603642075710219037486603813987446040501101772715588272098226096730999270232121324530660400945568180240564732219616331700835863447897968842515748184508722236989018492703765863855328599632470744353848359264906783849686363878740636980400594633845985931237544222917519938904809271662320999740110930744349157209232907804411919710958201265288719817137746682406475710557730900495066444577572367485224078391708844781146951292548159224021749478675693610403224597800434227410964887260851418465013039014623954379514713944969202060059124696416232694310030046030750747622815296787235086553481263404704973621243089526608188784992158530469728057735638372208916115626806592746183065332870332121587118528197165595828914346793397245941544447876929535401428439332904667833264630876123933477393417095148672971670678573073421958206412949600493728902953892433178692100242195420724753324954923053491355223044544900159667263019891215390358281878704017474659225656926887305186873143172333449749631239542803078796476863736125454915760078228787740239484506041420277488647314283165433724598168212441745831530735925003548274743176642229681480904927884072615052765978801476092271722513510172198233831557829379126166862359410787496314343770009733906429198972268311727910248636435634000567660189478885721005374527632312790412856862366057744705699202990589850836394591809629051489692783248539250222752092533462234028518521216749044490786750709861905905387578495962791601530327603826691793889084098424363346263049743198836624716802503855793765892919765134295264663880448492147312613206514012527069218281964254221997336116245809119028870325139842753957811022365979673888884866161897378960865350476492320629674428385084796518478221678996409762899307646213763091442595074008023479038659140322332349433504943153114816980412063146686733378389244457907922644808877018991839828932238348489014495283627014413837832986277877629742222991763950614576981290423621894398636209632305901564852946974910814196170958065779322187991319676265168742558997232324034535570570663690481533228081562608410094406207315340550787108044681435006731074970890535996166369826386143448172048350108039529388136279995494281068793268626242158676482128078866168478333417629897738420379202101461721953297817283017535055936055039336237611484146620136239748680782082058030752179972466907300677828441153038066553276442456002611144138929727211220457689448898522838018066545793387121132224631397393322708376612764594617694696888193445967036671277556822142930626576703065222533716200461857662780040051964680585537409703680776938531655090922056831493361423916972540362785150714867622621382685065060583633409763006503900268218076797677685524015198068170171507820260278894253193402320569457470246640054893067484726032185677115100293222229518983615511223690138397234001871110006075437911156149184627717069675832621723420094407476533730944242475281748087998677842079625804244622686134882525541764286947372718835508978888060237429719143572748935657698592347525025067824630015871470076852231507921842824032555672002055918289130256833097390497802581622636517300570086161393077761576304548659282920777845355642885041027725922767666040555603376111956890788429563565563631083126936104001119327566515486073050072780419751777752984276388510793311538281414850518826901098180944360684601570550819691239552733912255332022388067530990128041537224903170471295629043017013510201293409651877859912268210997267611421770497505148497871856431707971320566614731921720377292729781617492078363903462406251141723181686870703636498837067781297414333029695349435189576543387347366373886015500555479076024005327435438467056921410718640899270090071446021565716888600906040444823445393953010282504672695582228776032670594612811207975962424390922869449739668806095029270489392572191456466334974946219526011474776053083740391835593723264566465134156357069754951851928934459318259504476095472287239583658005414814130751123698531484600707616749143297987138875766898962363263343472423553268376240390303509361617092345473658720126672304941594921443164552769836177606223247223568880707043367184848290012830450830079139163977910729968566303261975659911510375127154225947469926987416831160806656010363302213555219893282014968781583561466128900740498321285227248422135907489763698575014595409772565274538508355803001226535149933142109461197623663615927238229460405703149305076567833583314896052940560579543526401470781440271299743609301720208432660698036231505673954468942850352881816071412264967579721285133763820910763124559853053221814987487439879465679223536330247364063559867675569313467023317537596879318776456393834975987598722639123763493012877897002887322751367832070132246394995665497410252672096379118770432652378815519863991990403814501598577196821666418298742079022065025501793423872009708756214347496165575397527228306619990240544252438220873211861587485007055320985910169511350301386389124456541231649070848889300134583735356574087569456294791218006606790606270728244868531027794299205378761953920472612147713310049533938057136248560203647177689770344607561604228371776538465389904317282009307230965610618579135631351221547667387148023803467665700204827379137435443158117203176654747285630014323005345394030901296482160671338082694205902115051985064823037331164387998534363051566402463256496139421627102093754886955643158643869185942881036757228278520975758955484291518934266075879531685254459588975798414062394911923753755984286122572059327440363794437473151938633348688309681823724403923432364355582173724612084620197930988163810052651513249450979668249962613150155335349952640404928108780557854891874516588821363160566796246379588846309893700589099490346844311242270154885087352650685732490123508519890006112540161505874676972683629120874594899945345412469882260861357153718108657780667312663314243097808350317792756177998530916205087181636091017867501038488445277081105134709951204342599281152116365488519602688889354334866543940224602478743399653254517536904751141655089234868602248362400838612054308390040212096631891304546158718281652304458296133273296870191645133870657279325324123372976184598856718787674640153694291035429235472015398518943399571127625884429128935942256780291044686637327104728865282843167723558317877685354022824212686797065906787162855731616785861236136366634718940175165193168220065044963846346176205130519921611741893932600492943739946990795825444032296133593367068782766817971783226893558059566170895727881806366340494763230349530482517313339457356594135926985228712624973420820024145876270575729332116345883911298662568569132539327696389827325839091135481863056780142729791466885067529052828455713041398439996728706928266620318203685401546375310273526975019757796949422215282419980305310592703669950414216573151493265659187002504267540341423138999859317458457479827226933371737919696979123611516538427193090021411001681004141620141995792255989664798178664663926669501256610275629166992238733097910864715466521063340377680303683995071840664189952341142250495179154615427133158788794974550106569748553300186797069408361845699258924389921985890681799563014839780334413742696293642489565885549519360096394911766163525129379435653473682703349821384573945676558452549978427191731128277380609865428312992719786408082730592749973540736328434964292652128272529900720006714507854443475971782907279857183580227486448695231548285677165251689944118599778155922716369278658636010461226450434311946994355607009509792443416091285400250352236080661767655397196621368120039477237792269172270841090919537409301679642560164278177360697260079301080621451834104570155194860200489695665158452356173351050978418030737333339334516395700558901926773703529130826931274465024019520387211769184684021155911819787413274117221501193781039759558332204829268503173774478949649816028982324521678261153337332592638628863834035676480098580354362972171608503150873379158383876320004252383249380742578077116727539444713263831650396527638614320266276438556733145307900358691023793141179388617233369894852999867769057436525799063790256540088456654679576784233738749250864275190178607111381375632519585943008530848480158969769879700609728578970070497480524430819814894452963801467083638230607065690280846598337698542341136158428914660253287521056641151156991300843072810629182643019464626646317798169821992520320440717297895343868304566578083320875947484594078660498794012933757680589488241863025949739001583596349791605728220122496587163112167555096659146960450868969416793501882983075036087720009850061404011875483657572515482048907487221411000618191771205233541029211361107319434862431113344838838674745070580423766346505028453872129018133905522881154249526910051145555203321960553635552479549414752756542922108268873249138727607147804127552958250413257596715101625164669840343468225491319471010158332641864703385787814688131472627903434011852556791709950546063605352251357124435209844504919130583355702436938101509221162459373436772912216437630410024668929896778977098134793542366898100882472380646807014009049001435006687597820210273490998295601608768566748836332722111997486845753303132705761068038445653157454937776903445587785265548698998108727636383594819500542550606749788227925883772286977761850141333714524608886649364478294084358880628575010130178032932569700443588698448462454767261900833895423324118875057360160622117678285963451132564744924871654047739993649751846239036262677619552397941696096592321063619353302969732526061259439448968956988353495151466099763879166961197634636643826113995202300043837647114469204477234218406780062500058049559848637751184417113305428720687848534445262298354013066798434586865542914854459261549641021333801684183047697576535604191448023224058514688619045139556707658483478898254300660739636598702909374477867969320978212526879083439503173129802675848678725404035669644706877253186997591141455875419652569246944676953794340114550892644476593258182379339542339996400866629030835818030247751333833320436678060269725020151328005489901162803178060057858629838271863951247420279969621045758736088980063447078256988257902661865875566676760426358755555176405582159754716741427946432212210062790646215235883878588900038288351749389545735526428865392537383697793040757015070724521786811975621605599426260820872024789500707685799438124166419715563151113756086436831636034316564398449873225354429034349649135747581305117255184245791538138558491744520018290697093435455041300414529112688033485749801957894798632073488958999982517947311613549815087555664366017904478683522503054220338622037283641473686130289306338361579070617827225813141603800618732975518042155178558322726787054693175529365776801932986335485494766648117952829664122144040962296068334844118762816018279590017399915015612727526476757379429532670899234440917448321097703759132731124386297540775156027757403427575829990272516584301170244600517650795581962101558673244636592371398796017145267839963834343102593488230494101562970431599542868974917565587446435295186108168989519782200914961448253058674016416196425547712234795907448801607249257736313577250611708751842731720941001300867813796152506037984917197680468453206999865471354791363087869034493547754940826056455870600029906588686362700836433979201029032207981084795772063899010254575661833722284197526456282775300454997635524034839212677157063127456255976819779212050410917832062823900482067416732115615564152756233286959651542819630518206523817041505470659769183770344721639631192102518249226344418872428543035501802324805622402207468235984199718120887965952192892831784284816836247000170403598110037880679119592110121778730049905271399147126132981635639123833360612031550628164939588586964775986763954997905857274635372175170361539488379156657470990358549890091939995456133879870819054307278349742563308062572572792587164128298072692804827398202938834344345320388406920087762526453322743145406936972986968431750121141685302794808361309872667813214937835716843855085965769298860044264659945574545905007896064435168378029117062612134115527602677738489870501809536921569875440667657298335283113530234472833557680935390217907643043183700173224239242242053473328482332072545922395271599869906492183602609562045855369799802595746626366394511804975560437942520624378317284268485316503494641133954580005436051421534903977455429243210384668174262995350365625285186041561483301664422043977274517246077788624446774831792965801205216711479119546808690562799855248527777394819443875230287504562106677652151629146602018022629188493050548666558580527018506540038070714696746723109663834256074319950452629527376930204804192211939016912502906707136719953805549851654790333083130059463649704016318619446533780790448767699157991754400260323710570268101451987629879485282406380623805273949836723616563548851481670437465551216502755467495513762441233692396590686093333961443610515001559691188753056799138825037757908028270467894014972267668438642299717496606308682083046904482974139506978769519509837417501952589529041666963585244462257493574155598261400156419662496311370198920034920345639815138714375009639686744988351866475991760566670411667887131501481829220106217916220787390955265939378217363072689863678506987935017876179579050714227879784447924340696763898759530450708254493785652849614121289733340445532884470803196511300736382742775788946868983577889099632854236582748402455167561193879774958287777909483485611745304918650718496142707937829239288618293572029792793714366131093804597619367695712650399000674576489282831276533719330248032956805490074649682998820123803558714268757730200715781585829492702900381699973674700494168542682185272952251246052722218768075655427725494079205225363952344341314055379087840107369599751215593541631942803121872596714748444115873591592247284246489202241261195187863903365560990247564271548465682748509555809712720026411210812841268710162791848012114545639675222072048754177221513047661600482916213824862546532228121639294829972953558613585286728422079590448049510151568865639190966401620575660311835438524324968279311469342609569331566528681631956464818801243930859604980164725615582969973389843281705796633431235342604818159238382966000880047644843529704119517309621027835940644097332466805876768138884800661814517168673163647710813453411135647503050080420259557190123179118111119404184905997825425724891020780133711344151667373260781067082788261461998669371502516468110122861978488079719658346193332959819605888981413631702902350136455776798986526391611722110394800053311300797892907878882530936693905938901579994970940473623616230929613970716128974495486479901375712036668327955267670518305963420859479515479392083347770273433241194048998059302818269711256027331037091906221199969805018108476142526173325339216861083172420170830271852523520414610430595586913493969534398057559362532912827526890505577404670207003607710911127271851114071006847809283956097344451087057453217879305809730077771225882812954276858261536672484360703400326891978784164789093217957555163634030995560286227895525230338630968779077406734215862610268722386826891965580502090937167566078553621316682311807544039653056874872417821747674365357084873374226988375729034118178826304799085332110872321457481973726336211746364654931802057113151250297747196216002083100648998244895166883673098871577322911016773363074129616570701908964758035305760267746989483270488310296978564706122552332115953596539127225550159571326412558760292060197697991768703117256186785746940083252118920784079307499185651524784053333795369415868929476702538492423760923800440444598353578586099599459924113803491428700190904969933042992362349674318619041349448791046377379186737635077387065616932683229085242269052361169549694209310739592710181474960650748547213434768759340350762519776544362828482299131653783230473853399653518402579420996552067429093304557543986343733433317786367573474987167639996005322361892573476456395594781457573477942439283166059875062777036914426490883726904646690829434553412367539205142075438595581547938574000187831279166464740653817173834359179809734409986895746751511629501222471662844743628796137368209106439409785860198860108988827704580739982449482380948190002807930033398351144626283384322933027417235811487938738939072854389414513253282512358227579005785913232952348340382711168623783397889185113755333361871496332008262347653529769357896639603544677895505400911493233690189098461027819337744217524242130834737568880857832071895750256378029527759297520866071259661209606158658921118230949608447411145961290760040630143176101392611489248070420373278930837019240270104218991423705875121053750544224400706755089036080552086314784654355848144041273075280426756210435719106573914290041470342322101339413334768240630772696203147316513797778825639139710170356322420774043892798383129187011656553893704199921314835226024557837784516797287984143381727611948863178861581352877362833572491888092371412546378053308258905047108775830626921870965683421876241355617826281183005214300443860096331967524080896045898388655443650531793998308305497686037652457837154430631456229018982185817613896018182028423869866843298350275556339308814532494228699970761244929019161910514446750428532129457921963268010628183000008867594918350052141908996867111379047041334337582397401405622348637224821545446499244666381292519960749789782827455133829628744785388772842001563563121981064887909286804000628541012467814077104993492215500481260322835608317984417079689506747752921142644375227989920000911730739609911581729741749297097184083061830445143463017671669937698574978284322192974047671226635651749261543049615719675553467713313519653699821813354063442539899196030119565098758507775464749237049723660151428949260458245402298714739687055576000837864331557356100134502437680813278530107247683387466467123475628486796041931726426332887904206865850065374505497412486870285632187219802607370560946810063056204345294337568329768234815843384409972135370381715453752216366296427768563161664200910274004938213301517723629497642080458572381693819016312265025582650376665567354353114754677254895340150936532309436993327600156911454024186903748755207703810851671200972940097814763520873325115086803395807566752290382504607925370926437403665610723839007977213830780793472976416325663284576692702650026524689487142490234367321129399137995524622965662154969988326925450979700358253933557737743885580908942084175465314455276791311264715790208016415921103196875670500398818017754195655689317109226716974061131229201777483451876554350589142017522828211510422292525984694042075985952478278164890421832237040544468704491742006712721139209343919354936959860450622179415923943677902537016227470901221551056440166257845440479071944427076427205948915420344957774058681958850791624223147974776339628269867983415833184842915200387512704551611596387498271544090429612901218169329633658195491488336654222105384164932026617652461019421545338605171665265306184444626801628018706394760524168172016027231233600976602510089069961816769117063967823247744469752118851606669037567775815838304813284007262784605508749040710629214662513000478782418565563198016502089675374525109550959574775640438812032123068338165229920109893659546653405111245100247459333942451270121145591960786222029610680276631719635868868836562146859934752399133219223145961796138635794943234277855123339793835886479502508365393155849672075102821315862926525452949502582581370758442150737016660374318887369568680428509802300075690105625769600935142535245531022844023196441655551403087284792168568780436124647012365883936321957633409431106241667649693172249425110058879860562664299299774672392267198007875651978433730593796944707657371116987289023784050860187715926599802479385480491637590781522544238117510362008527651348561470754822684223445130667205557972353640295108952856372210852709642845998748864285642284967210313339659802683712132003745526857773912717355034160656591316441136559381003285063238836273368611359316549401738292196600359664383898201648626625064572445691673711875547676948018294244254959546283279699943897290063215793910785831854398465907966537312606755998047942580622171061557465674446027654324081997854608827698744195223570505378888940428604238789614180668103363155191830122099951311704675620396189706150133773727297802159564492923776489369019715865240275580746826621503727055835785534390269691942731916492848467613652421400896675985739153208590194776814488358837207746672260030851470578379223003395844230775376715060073228503199703043606740694053963592730439169324753469914705868720005148535116213053910627291687210922026884566562248176064074584385861315744978176627281572339635910218540346806212685229736264861555446457253398995047949304939810525828187904405501971657854056707730661142193909707308963075836612442965613972148846174808993569664975337231798205616834565703655184967233986186569658870147004737293914660233412739115697356754124218465872124328440004276069101478244254698357638871263823182436792466937481784056323035592863599378497975084687148892257562369661370932682902056743142108575118007049939071299128925234754861131693776856242148355299521399080879569709190614234372139195885982195468661944970570035401581100975629726949294264914927409552730850456041975471875119386309799201668636604376626944306540645836596082630143023088986630088774003585110829581142743948644932337690346564054223186927606400086941302588166217574020551334403493562238935643079558219401098928514727170714843287368362654448919679347501633724834223118188323855261289435288750619617908054070033096254091001064865125531646177287350356400522647292895275881708519015099901077162163591233072505648764503480209071895023298916273639171684146188919187260077055764852227181251563827375080494709382551242285027134606879621333703804872040152730369282309964015139336081199946716620135149888335639257113137794210499104227449279518518227277866962452958161434776731074715491744766838808185001967029908177075300630944775735423824857776804759136727628321578367712516819736987048566426028295941365673832700056187786559632511799556735056189385516746192034866020126663499762098634590747567869076479755193107859969169643326440657048766385694945344513075747488453543639476531558412575472379601657496155189793536447588557480080769152231685054711899365096350637048305467422444259678078386746284976757655728293804999354470185555106594489421156743883777556906480764251951812631571756201351910106037583120848960081780588269059593915451023975984481847843606664062812761539276263981689042716614117545805319233052437191189636887423576067921760735977555204181490194129174014156351624029330836938566910473549259267182450269017566366392393675113900384421860511556428247136222245786212466728956652260948980984586600820788888927506584528032865892972727596368314781215199785164526983702738420592452895932884556578203658426524605279979170763400054854968977352065948385737575528094193167687122092345270881423748456917731310899447754862162736726042486962301090354214467405866849416735623099451881491744135673814749485037329607880688214631489499525973099523404598753574298096360921088848421835338186884686087377396496610715803496453385512523504509262283378151453376350610746880918712910375290011593059090422168909995801677503381276490031538230411880493423377972338394989237438268684328964102453493922484314049763526281172484807143312096302201470758038025077339684481956417877895712916565375516400701198832829462765682998383436348480924448575237736219585693826799548712048902255471354110672808416327892313918982504659315112048492889801710359741361941752329456569149042463785610406569183544019354068381893376696940203123921503807358873686110165182142879797819345820325029190932197912393260257668591804155475017535569440647073874353019419555137709613254991390705918508364024480549649732170041361836415384277975803652176667400062805977183671229583680586703873588803865643891122454489687765678083203026429304042287417125536923146984398988966608450228740915163832271605810373487223462343856977191382603603490101371320240676722396768860698869515171547785704062407207218300102782836791856750394110343270937366217602816245085536874066667727185638333576281897265522383287314864377137735215557743083634732819840300946815951909563594317749943729359177559145654021446189818116913567399080807590981011958385087569324963121554801314497016520750220274305782036205202273253994362650646847062600114922338211264188269808227100348080182884882099979452111715625842551895261779884352447219923876840774454316311353619359533736646971804186904665328924563516401963998172012059525266976296648141915408261296983321143577624656582114357981948713068969343027857362645350882230032636712991114110607227627470787921898017647817978386744932831706319693030895100784474152672203161473370105661189956481198697450701071934806216918742972884027589195649838473782556459585125376408845403828718490715193129438294997296049917352632660915871825152496549818441443954710904262972179757183798474562150319022290678988329382749482524100959703354743349199233168523827674678623593539949439105837088718802008344659005245909061624155128493116859137755254681213512522441123919694205348397560713307985195192394026090279994151741107772861436788459291813235962581836328546253783882631510642428837835010035657568717418399204243744529399401386389269971797733225910490666014622566387564612759978291261072784539861403068132334135177613911512210598459975897901498590968695048769975945946344699189851048667499776647012026759255089121972605080537333904420949529257345074821400390182230287453551514410504330559608326325874079737667578046674982780739522418336924432349104914932727804152188799733742325360853967029384209578396195405293413445895351435043075868982570866520245028716802639523097401142493229774885122213852557922703110182879583054449498563008966630411403877273946656214567026530145491751599876895393130782679842702883814524363743772714181934340588612085443803080682353950639303140003566815603762938307582088259923169398878587515089471967606908451358543608495732235653145601902224783312014926240807751198017614999281626726588576296738263160038091871652997029072214798344524689417034431945214027730475094233948140138728906641831000522636363354370518881437411029221858812979627379272667046649722046176667339680080389354650675824638023421314174030326733259197277089870166262070399503189828684554667015681852145351149327043889909972527682888844602287422520112718963199172986424329047457417567411039119176978453814427917659940237656264373529301105769828083871734913767514655836162986240733013897721694031288929586815596885706274018158917833622272052163816577778971342951177310537096514124472864324611627863029238617948202919199201795152161411798954897196603937769993003170942053616417906560886270646613165018001953174883356415584659906947727386317272195219369792862830099992835688392448823147430651135420675997818617545598159607759150746014402004777795008277780099141064467633362428977759318989233385612562343254565352954450273632567440645235434429630191653980648230077183107527710188970961832881817056438444945581512912610195033465723569419417529810367456344211992366640396860451841810768264293128564469527469244977127051675344115377022012410497216270192497920227580127556649764997790023984192904132914437178988234476204292791453202606591199489856256197359730342260468782764583889315824306605628308790332767705416337480617321409752580211141385118989613219211424006343797037056930871771163065676621156927345221091768425728871707540541387793908790352417422277900343096478576998557673919041828630324131007384247856050200323070358826049624807678269386052509408809223752763972821950087320237505951422587691061057279377585557392586210917098303103891284146087955449919866249850106456552749333660865214005612016834062403349299095424289463682029906683081878302315903821265860327975126460890909905205026724896109555108193066724322778231621180162930980758384726440853010928136311939649865819479595940055352121680547357484397053706522235596378066766616135325180302880837072643661063495833449252954339580245578183337043629518117192740766081849135147719260591535943311256364299137582840828866860122614475367850833721154358569115836467573455052444032077830166008186266531911811282264507007968265694165345741874400980758369775430857768010370861032044305089951237144550360449773158364829671567222836403727770212982412765545266974348746796444811396361301325638780986044129424631748364693863007990433455167643614290980287844646931038608411335046101479544005131322445784055554927640440158518153066723405798969644296786983336781101536845318874956459416705686638510041106702649851501301841227646044516330088012450875183943839682464399047965206174602931247627242387645200909996379867678625305751348213862361645529624355691869035523179197708903847211559398387805031613557680292330934252371392344028434459380120221835870380212257082790838040122230526027620116406669705160607578202723644202700033214306921454765395062988620779914649372370816826582084735445740493497607807292211534542329676084749017304171974553504386931922425387130964344669780446634175445233559957373863182321656492592939532268714573444991432089243322026835755708191377858122547167695890772689690831833461101470008003720413406857073179110489016570686163185699541721043338760327346540431847254187432617797769761397310474621215882780674741920062196151770845675850178100110008846595380172590092047208930106915561022720496002545817724366114024808037111255781158190529668002982527931279066337328061949095194428869464931680206110464424985705966298744774542671117137161832654117614519899794805967360378558469800282365446782781215744848223724972786591382536034359383053810944647924627640326670908128358412845347247460304423565864211055020019099739657417449097479866627557637356513326712116389407589919137922736032209055005933459523914672302834506422129959690153448407487212112069565827517248602124746051975750143529245827451296537808347083114031292565574556534320429700785165813867421937654356526628953091751493414708457830035198421538052384840385226723281193843891978056012488372610989673406089299036984342976221094121276993390791797330919060801091285702015194623096094436623141740776297454077761567694228520197571100121313651996620665767099970617038687488916045362209334731958751071559729029177217586622304928439077611678624165206649471383294990325906128222599382519530825692470367371927407826537273290110839959848119522443960466127775520806453812578836755836165194713971272904484625007393511267781729895378497940212411692437418868065577144047881843236335743630631455264997090977302767451025136720461705508484826899167159492780232460010446996559644758822563136425409896878914333826858244863785438529457351653380649297804200822020346171871680549636593771760377727736406239765312830504964750938676927170317803113559806531553232979135908898515981074831010395317744001184670900667300982326611969054375058242308395178114786381757235500664736781671965874258560741168208210496279571172910072826253194222087966233789228284017025355452633958192696644248651564881138005883249135490258460938153177426683657519623277221790158062379042262560712084425529927357923328851205098009408841242665098917472042435949169306044876846853306016127700315016867726833504356453690248057906455535856142195608721230526479555074456379449827435788097132065242959101886341538751784597143787271011437848781004190395321786823390545082561566057653314885520767420612077458249400630969750407539375096960750731200558776611811341288974873447631860866028944140195710450438688101393627286586064428233262058933722041634949949156383473677556618645155457382220992931017453481490476199665767870984929106519722990408106376797313723892273625013407452606141690493558946865886781636665342586981277166425430529332624001590502344704195615993010562774611584402711224774866501933270326989374259509160077771215834792595565810592784287238358127974488665902573008716478263502115019657785606154807681892727401590713405510557723454434865409128673790089994811903307185487303063877348797279192440462969426966113423268537147136525774039560359291060569330212569704437518482196849210000147558245145726030058345542666557456895456408080067514250090697161098523992875655824869587382244668630121596926082059509430070930671126013807794376707641852883572051409280163376563993810157665886966228728832169686883948551509914967467810699476914593168156879547462628100299671323981196479651094623076909656339242523556526635978836510431896564510882111580535829092702119958642122620676949399453093228376314532002393882997678534914066890823273858504666622715500118177080464171100766594726533209554004890351154661834235225751446800273187367220349259194697645743631788876172098005516783707674052415520973497057078808653299158147934214050111917702158651937498025636436514144392012452361889355398821558364328259804016322917738009520468853838295603565055862901237417302185547556558642622516030780198260252256911573485569596534566925277035793779962582992725046896771054418608225579359905761345433129965664672427869761475335725474609003957444661151452091947603957562975079116490326685520675990825854276579310390709573306893452526853163831830438419635888834961218104315677242534180566288704332654858078532274771751603961131178522196804215485837999338189066426232415156976592754476519524679170128457957924908913885965871252553942228658707549173081893482530349090353850925424384707499283259065572255589740207025770865991273239940939948957907485685162554097954641162938461894350697811196595258912158624678729076530284481751292783895481569603827283547589399656909751393223509979551549239244553990985792149853719364740445327360184536874992017713120628631065460766160657439150284842786199844581092052468367477788155100974021472315652796704888088538134186989037403717757944993923993092161752878841104729996601557572183373497430884151716238875858246596727107802798496095926527902662444321754947788852204078692552100192350511462800299215111004573520365828038027017540417246726688417706142451841253511882449543581284583559610034787015526099221865745943099616834551633472141417571497132447589181355101402031834678169933006565217254639835393096541213503263464592277156794252664159626282349967387226212564543333156311835982891264933482126175068035769129734136057678207576580562862683760374530495188220429037789739579675379105360790021833672005807570100050912067820222400689434145617638230648171701162214818790943281833497000983358549493300050734368277964131565497254605508565431515901878165371535687731810218554837170510333223173732880576019600077779767817474964899626480119958568190613090003163420568398821016440043595506293327089924941645460800516926990817376743532119987375489282304626357792821392531279906916810170361082425972026665089763707606907325666935081036864341477201427617830194514809245757088301144343483086020791284886324954469169149280816020879792122514210776081767482742731878514335411566676986363306010566248982947892976199880382196615155018731500846730340417021087717822601918412926202599135938615761571417545803964915286007398812918794250076386639783358124815611547124166989395973328567340506788387945387907660461391020430578939720705400181134206086840572849493954744670848174928844867806596058377598808586881556441925424276505808753114357222947189961560199647156432666781474407042826281298203523300837843453597552817605473483761794178322510806290509999359267670707519093957799046517860505852413147124671858710933934100828152012071096065727047649533740405904800792562472689776499433930976168229870071347797012687677732196998700657886767991221064998072550837537832817403697731933925127531068110486564013561885854228548135959508805241305984277814089960258838557415316511055280750976572396552031048891005120708419376052277920900107642299879337846609320061489347708237246736683542632152769982195624202478931218251150212143755254346851713812651312903725192450370375781091513369929768131219313837051592675458940603961236664719126626050132173281810756714390505656240884930052050024468069250322852850128522823355942083373455016507365058799507952142891941979646066248025418129370258050147194920673318391300781688588470348525363147078018671444153970048714689060814786339822491405094187305953299276893904482930448247498442939707590561740771309852702096315897337203086426061345906381250230845497008710325817071412212788047319592483437618568879479642687533472048678785573273966051300926753035633357068747097757623346327900935059249779933422091657232688705498811856520474111655440648491868251338697615413021008004525389573497092044692907816010075574717534890619795019251610707855201186968248632940279407354312588212150813474451290477681386011944825375609767851818024855496578307289431933537839857234167932915596879595496696197266262434644710033974411170484236423245695227820283016026943924364381315876798479732413940266962315110292322597856718190339535597466280996502665521198449289525626318188182727742657143610790877456036396005345550972005015827926727077075662055511291484360833546814980122768191142209534625230964082023641860461927760591076118491098791318438660093054725835883136752204405605243893711125787902129255636840210054296048493503673499008562049596705597043763636829171277213353423862719598533564302773469137687330672458345929506654934823419527345295479451020813955719263424436385496702484835006268040691268024448799976567227637068763771922705207078009327163673742191597511882150433788288355976402159288186753096885801194319350302340893003717129136724980429767036648917455396435094837155218285654686023476501977840271382389248328147444179544104112808189462442175498500075972949577151932595614277410528453753973001199774812424715004355315054775322451897882620247428789436708079379952116944369806326729116925375567999425667199839271274228031511663977829168331901026981711564210844664392800596423282509890589530506963548277768099803969659335591953594671764847458568501686266970776374417521087935594502948127884651940428131713937190546328176934640247556272004447533324999790162663507415939221986157435472960791579170734099718771640749343927114620501082773229058954502514377429465559249292443134241636569186463456534954598681695991140943451567855418371869567649600552487604600199582687911991892795731347726873119286314840141031985758454104954148376487426512913135536707051330267156898323254083743452438397934950762206201577681787882673013547912549843809260338830957890905150079657843695503250519444596182807517220006970438651796516062817369461941106000431637084664846381475277249458088946403122052790571167119957394513765127369407368334237317134551526673154618560928840384057270860140321371562082058021229898596424639858047547875388836100015116976449330017057077113411107696112510418167556371092594349099632527571138873271196001019408801519484563077437552126759237786671416503985776011474967379865878079328864278063498309759205463247493096850556268270408149789608398612308936430732032494093289463698863761415545493377956407145740229136079030705193037750986463125448206712832035744757484027876671073663105883211903102657286856915672840852588420818576280267851764400164146237087259275794342186841119250195288507233451475134815573925012656523714787017612906302682266379729313106029073899400322981300395897039545887877409835233696451619692138828860050902286839027929404100863013583038675776435403070650540526361773543068579158154591878008225711689276549780855553848318676204050336999382463282698756639681245038490669798022101522775918140693059303791999751239308844954125538290130365077354711297033938737275555010573531264333859393460316178860705647322588508323824972913178945451391583130070150221765984250906669637073152794496703380983635738177376309165435441911598015285049105991258632806771923016566960389201325615661658465310552780297029859803247279323063990990977464983043146140450974675751661237708335026167083163766055474322821405386861100042788010442024000872635354874822538423689192376208479504582971305181725081145876473415853882545230633927978831887004859706577227206049264163895354632848777196007902310380980052530768327462524288165686561179136576478403790232845287316203260373701067026298616620465528296907595609577783026718186434620195350671761695076791826579176914037529727566541089377771837098564556519082354325958862771100932092581742019962082508820298039475646194651120400150169182921053849318082512434344300324587771956431455135942374979895593888898355680727502808923715144228825698192081584939587554669413302952371109757427987456283859118758960848342705748269994081901447823560181244235935632438191927427246739486961352966169546851694486220746253289585650808335175143280989555099055172288288983401631890013296895813123265898338387793961218991436805267906488597834787272857081209417490346550871383552109089686475030841943508228189032591101519774046667456158550674429032877339326794434307978836183747215179062818839574573678407900883137772785380964937509005008163412826463571255011878851172621994050192371845536397336503209102045483467809141945255975732703026188792627411638578923147294158434438223818801908261140449770225262434843769687671939626950766779893924164546657909218100035281107395365688063564939329048982766020895338080766690443508512525707849883390083284964668479155616367028117560946243875173980664383924038454411520884066128233952783313218270041957083061569613795360553416510930832771418626816837874234383962224666351096880901990958503085092041592659424132219885350281195971351579617464334886473588055756507937963946217760380383880476234674561617629887222871205006275041477612909218638069749773992417280496984771472913301747517196479514588864213804668282961752929189733024004310918938620264076617025855753892209852898387428136693138540204163223153339922968274798494783007659047716573790315188438017206135926890373279461480780592277688751774453875074537094038669290778599202506342082555622760692126559844506316842014735617822753037943119786505026121596490743512963988732352460259815460515553749329942172170566056216840468776980154235161141804287031615362327356799511642021124698557238296561291009922854298624990762091646216872490456557860632660594974643500334567395235290824600948815902030690966932797525486465231956853260263624278420677649058409788327614215320817864753046223536427445524953667688309338639667566611688998321222223934628639446828968515176338577278082626024240554428965142749624748874291805268103478572279079496349877929576490213092616450948539507694179125642193492006945255809848134192084336350243389510904825021441325629122580521799674832317180667955968285119208140974996509864630876739794307391422671723859788782012804956237466485381321484843752890658433176020594833325096644911533240082474074262074093097272089071428755922166391075084435331488339904980956744333308407328416762414665018713069039282382692819595262492293909545010131161001843652843289273722863079805467795545968461862566348602207571502593831123596624296805683391207262118358987581753745655287561297969907201979176974775112446287397467179773277875648619885081022088086079473597553609812468809195829122258058201906312877767583505376571423014337717786706034025403064252160946436412278528895502545028975104764258226380619778034375252751280922145242001177825379584853727530652725102853341274224195626911581449356009676408384868825682881860303877622529165190105707938441927026511868408995611451819664765373471189017750365488984554987447597103779316329930193659393505290127947837513882011674620023334272198837835657201725417236031394606354866837846127257649296694310386940909846343948185238639189920934077236684682036407118502038879501967552985829939722006435701347242835276862539180479879661530713824713045630505534139796146619945446510337558248254724090538490516849571641648650466374170398092870366465550712857158154156410354941726620864504564526488481950577665858902449839033035014991210363332345202607245153253232690284723315642245202156719101072791143677981551132928822817482785188387366123141918298547047318542404489137662028742978378555340793802175047011802230479557825882273295501052136617599380366716738805460910776202677353773499706932945050032139989924125390760842092935378459770794413159956394344744789397826354348093466911412499715067580153824980094516473477253318684225529569933981630235795721496726582411438256724845107825976458453403640487373607906002097110478273040592564303888709020280628517121227685930265288230862700642780519650892999898931469448523219223245543436072371051943124971408026252487260490008240805328943042518386964023682480173437740500623603292372811872371819774416718045986896829553554833466176088996739379626541014661902813949234718399896281865822286991173348187521392656222005475891353297949555356890974982575844370414994069042871004938499857143377728252587782884786270355331182994362683465202477214592168550698229155617358367660135668415984334279198594380826209278190766374065933270252501788701534791527050045470093060801789227619668682287544767730044847115603503450214477700646650130841457675625845985235888055018916660313223517176139881773529000324020629053079185554349520127453489767742312570272031260123440652369426704765264404607790195051741503180134543201612598755839968561736589497104350545963714777934272103293231021530254486187294723369147189430830012543772685792845937224660602758811145943991090208758725043024205993579429750199787842668088959489739006622410450402193240120797896235658966594362018307306057753838571173000623362506771884336909226601990860924512598411851468820800938222289927365070140634326548213248762388888691473342384411990344329838956228498726488622581174153892533040717733245123467100665545791303813056583229480430712958975034466425789706094527132356109392314947065389871482622175989810253932143063939570846565672090289074880561776872857838772871974106165313580575904677691588826353754753972507271476436011327545722889554062873237113563411740731413054783303884884336727241115945764553140296910078489006343682777605435171425809687085483438057296683884128893823282689596529015251094627379111276214856375993553292367232254659664500480054596402185908211936210064437565876374822884038420212183157927144322656989353213831165252728920973852721343083935443715217842887342049267504188582540218974392794234786016246628539748241344697932792451141227726018284185231461769203405901484364223050672950191522746400992046812342486067310374307176691238127438559972665000866416913108930516279513445503037885706847309054257177778864337430735686042422005692335492330006779716285220316868765793981655184949006246250817350040396816529266156249219380208372475851291146754702528451663987281909526417321464820434310905184114241339097242295602371046943164126196835212858734230819536203026569296593531736847489623923656360247542952595886567504489380683101779487750814247013724032177877353608597550237828863978277135826701570792719444984618694321272928200750124175842856571605023761823569708037528669669196962777972464272525926455658719842482218803122566685642152376485383320868935826439722152483439331299036909141727821072514477335871042693246046100552787966054885472765880441549487008747606855559838520725743547264319242093193692851260913179086594767547990655862356325473621650951915430436701652251804416997492003961771111515296970961626842299007810916335983627787829671359049342410768280189062680465064074826248619860845048989738230200475207189541640168464745727456114099779636227156292079329056677697386236385959458884925591381845353081418080873784253155109515282785059378718491455180165916261600316997803483971423129770726277717758327408394061157316226173447755748137645284856550678143553186614662204022337282227999335058235049009310819355146143112062429940978040302941266399438670186037257625536604280585912910264915895911097277170384332533382507450723726404292655808450390420472648216286204957810883142322737755515921456922476197081895300586236851353134617340299074270045160324347186687109546921957362603039675174252095434612846685892593901131771357439666660019819667369000365681553550692262841063469844558897542331410457014620462499245235841798968111554047852766510097518018078928097642648241438586878862743035772796460521408668820740828969866703041246249644293532484045041017097411268353452649102230095402254321849743208220101407853807746769980678903551474698107393890841301647735416287628869949882689312324558151079336575444344120448098420710548186784687762816429408228443753536469464835655538635949791871296724260545417213891886593466770004876160294723718554215719374584992457439626295552012758293095209990410013427276463668901038736839526780059132775878975868298559797724573224734516758591422503878293755811174264749619490581781786458078501484450606651897214864046313121058391753305784892401643053689192120643431160587644618467118997928031210400287167614514716621863496663028472194838349605530052052801946272845688552444265917872372680016148708588172244242794581699168999670312341205186974219508987426411723882195002298879850433094474016277156795045899392365054263298483484480636450440794161029414605328008803767248060346791546553921152537544041163643667005038657885541149593241985589441086886231841846849989237309666691034295852674011322951853454274361704270705375341079332813623869618169987280563828633138761508032446727023363134027575382758245649658260628297745975888516203009210799974087216072837312003764006453946425142589128218335602233853373684654691496156418626353638003608616522083354470363585479158742783227749194274199307807680588781485702658048189470373224304250798942675240400669629798834030118636561352237050479436067776104259899852185307964705359117689717080236273502957574994366103798868639037734703828291411886906021397146248283955443928817488406365142150804329938820754304164442580109077730488785859671218173922448634082875437752833086724105613821505078535443183336332547356198293229108819734015730380763269453214111470254071909418592240090126800662988369492644800541183581484063127279333584785481804961805912423622916227445546111881131093807920733972454552558242087345864612171048534444745953589950272375826989046284955078008901881745040452331980768549209816121650283010037847808295460813251419203064896032043425908454578308985768492770749886392340747027900095601909793308156051879604440347302870013324286321517458112693344217434601606222643796810988791598474522123898883939654889046860853101092271297750313485898715222697618768459379709409811078968855111820299420729492413097657506212391382410014118517324092518635643778295341459565995509716026874292585194506234616759982854004482921240093920888334576127969244402069896705211827810309908119033146150576419828135231091920606429579373751981144107962213178233225662356420602455613654204537066862001240561889843240774468935439108845760626217737894457417236309959007827468612021539912110833044954773001366753547269798394015849134352498089999111668011173364914850663727466697515583072850145610421794021220481470895940110420743874442855521734379235893336109756312934746127922365062273101893401883413874453052083291100020340767731415711277749158193520942944176348266927363573290933687122296193665076045415935939692571264988201115815550163238831977108336539773267725058341621013405276970894736525336180198460886974537215724680381624507451217672840495194301912389321434148848038120753730750376761341129312400380904910925453519848281279424396490879335260495796557777059847295301759885353580282499889650196629882147929674752529114078973865643644212970046253156239892362168813507756789561572805503334693070627014866159173538691629000321985474458004825131286278014527943466733568305822509020434033406986039752666961142363408334777987647879253596692135402382348516074436002258190767476026852759651803323123061001818283294147573477999961265421992095510291422932266157898598027456813200305151309751344087538540070221734476529429686538185945545561902404038914971625526002834531658038895954048605662242110295815207329013171904556201363033976925088227712149780516348554034832832960487097786519894439871611559014217107028254122665016963333204725187663867339073025331903104863348387735578939593777421182750209445383053053584094883705981455196277916094640003933191411337660198404695285097865728872240079784917986116907848187224987020027504898424909906922693224240102357736727618224744018199702005854623477769544008906228052400888664153001337035909612670528237927102658069445850652166298093197424414867077974505230799647821610960764635265471012354559255837236760553419031580414162433869328341784034972669701408942008021322131718871864283535465771114629880630422749752279327224789991376786076500740263816234149887953331621915305563411412557960093440111411397151497730957109965274780813865885129949013608835975394786862972842550266987640434630463040804802109046144405784237860846217944654145181519902314593131021908329341182549524194617614569959962682092953104392455196101446098897021795085532786089617638026009790465814132147193968616752672952067928817348881363009494658063593595692821350496714594593708001830387750064452018180717536844680639015890666558680969584406036423665067202186670041215670572210803661279013530168626797755048458542381512334999135855750989449604037363794913269613844851641894271880696814661853159584652788187906658522771904584983628903635964584145536806287437775575796908221906303597299132391606089782972951374747007918632473043418730231918195845639838110745093219871553598490465248966423663192061152298987341444050483198125614104711349103391546312503225711962868298398441641788867361704838832525174425295333686781849182470436106011369779137723250170269282539415961322738045354647140701784348735587755153601859246958212393970395264426379171614191232608294428162006801045013824304301854561689212205813740106044524671356737414354819888044451767631957881082415090140230274939787745411721124461838329313001587843360555558283697006167016151043599167929692727582502342453033531504782807638693333655844172985760819675092298655558588611785156152576147521064880195438103472615691503906541698555113562417438326812039807784293308787043217900270346777027537701347572049539308562765736809360932084687804381552118263697767192830005212962914582211452753894590517453441162767439288465479067676209532036075535368225383998650025464461941922297841156213528255735482021099403346387908897735769617638234692014459363935708144434861820915257952316146773181527892583790287305573274526954234366339614096921645228031841904011216293506835254048260396081174255327135122007871196919838467461906968956644443145787990641629547992747694003164643921298519509257989386159569858846912047938986159455317951738463636341968614574970605028563614383701904241544622710548276285236510777302408189786383502378803715157143088731765059611072311082301862916235031186059131020768098638631661935772936457111692082873910858947518221170542464327485677987613920586362176250207742687763995793069125787286995986734539682511424747126555568936005127259947793246425983986895835809977942314391159091126299302035227787029308803813592394252645758540255430508495841711567200978058729342768668581944042539900808752814383293300520006936979714551122027732707864586722269028526873593927699212768612933092425197186617515510305883720512615073931813305810255725521326014912415525859997788465972990237764910214314973132123284068049398458375452913298504502931439370501046994966663270377473196243752070522270133776942165586246422970458045418015716061822568908053073850314576929746362087758996304923593538968303462222985679750128940941672433572421102236474330573752765234057258117650099017079319081390681524835917827819862473348585322712092103112173355808129044517531715113077617294432188429931959560898116531748530019492319258104769705975196204358585039552052890037688745875766968186025624738751947381745275781882783083818774523980764514503605287812621460549393356650000116640944369819864313815791968045333151376212986933883477289446708542802753448259469933307421192283205772100995118201648951682887539550207471870115171397379070449100140392853017280330832114606551613493587691174747325042098404015544694185391945132159942012488289832994699716801577762603997864485089017657620612213038040363271593207244839907505322635181172171243997534375116037513708750007022362997724283284031009611437579274508037647910791822628713006866873705584630563517781320986789474191750221637190270046389442926218960426512692347473936399504165220080217897823236557518559621184311332887294367891619885263129730086450417959990773637051132952598191393728529343676959086485632532228719546511063381437229749143639980107382962875051662005665130435830361240819747560237398510214792575027866876277924252212482672296027037529508464312642646677461845595629159717158918914200573500500416926184060355713056327930676394356033673381510447476329215329163858844396184681053569071659624058408457517722387353295301777277482715067506789214427125874305201931490693508945362933750159634771488095519544446798426242451638059147754420633574920658027373356025985097177920754543176143328616289577585405010711144464642002310920255509870433705642814596653567494769505921474833168162523943039300354480606978827829745971577104910103810749497886259140018478411677067323937387451539943556642810197229679783629666006876812582358798568131974330469596679501168680697779682666441525326191433531090179892375733005128426862859011420311910871589999363062690712172279306581951122837178977907806489841927064839748834280121315096493799991653780143931515939931768501781559434422310521401597644686115537455380371874245708838641741384734209824738334404856177852333335281933211491954684515994362862648351016150800921823240719136547990767279619504803458781979860814142477233366290263778786789176145522945367727738000130352954893417095110252249031758514986822112244848165628159227940519032405311602356784352970194465901990136369950360335790986806203415714335798273226762004396461575448978261174597543406918240976344222441814042187342341971300657198965010506717208601838520933338222061414123742271264178309012901740915326910029764934243020923916918024915144621854470462979279027401166880149957751628415700774562568178722256533974851690147310467449885502854265831869444891517343484478262777476477008869376871102832142700724457027824965661413748734698494221289534654832261361163008775316900318322084171346153284157329895698670697544536056250283119918373667360712263288711011020396106643117979242123193465785217971625255452739508131107395078567613833892174574921695725002172163834091203340059500078160559798773155065015748293201964693050748827985148452659236311545717487648668508979792707810431475861128867700846498130930589649248670397155292332313876831779032697471810277378737863285804996168107721581284082500276891493644325385374332919008354501331626461676520602732304399507895470698543487999986944669556463596117522516123429460139675825156725278454423000390200846730790964609386661849846968442581543814566111246035466827863157552551749819452741669784395372566912542779742738548909469138962158985894237756058320462293084200973954381065580825172655958182846758049782502574343256427919046347197151376681484009356455968580054963549803588153391995427115948015679776335544343654290105933950550981220838031223995845494774229238021874957888301334160512125269014653232187802975499178197401458674098256961608779398254076228894961249320595592014709847843035382506508153189405140493891144738044710633772718276694736395011967515726635495349184506966509367078681425998130258212276732987383552711872169117072731413486272310768354724666972831847841955611902782288757949679683442585022356249198695780988672055959477295640393210843000419566098577069371035189019318867186234227893903242801917894891702962813117135290208063679429751351560309849474898085606277909414963708930849228292996191583913758806007437355809206440996621670781293564181738375402351410391975857582610297164354700767868311796630500596533704075327621360191256297901346980130832151175552171943727740137135220279167599258491025175747328534342182849792541241373685313300093848024810817842548593242302242769163685939285280702704529034938437772350454946673548188249730777370409775652456871796078207949545758048040420422239968894304869559320636024967807193438162715675403427810305678440819667110954880440925530552421443336259980114991140489687266718262992065269403673872732277730001344845551777094875218424866791405745581270115159181274716839610135971865938389988576622028652733562102041815689505659443491557518867653653828310784764074845908632104740745568191078223801167852903183042419113295841075643131010422008604771432202227615059813723267177063351051184354693945195952637452669640080245561167979707235445370891731925646577433208701223841346520749407340638432490148712688875917801313526378652599895261068524605807118027488890539649968189580615006065634678576646081327124138835792824369014017952552329665703800250454844207525429874316037313378214032290925707471299817052863141242380508059445722468378508771036786576996811071466114362617486198652083971564787166168751387024486092785678963923076332049419302802867474413323516364398659108310192893089328665009852427192481675466196501201463093367985100298116507711735919738631694443879676661242973053588035187144629592495783268546684151617962758516194173223835453584850250970451960787389625987322623707157930454274970899580814396472000606097191452947092053062468862314008364529539064964013198815800482399511316475974923602385169823885987372884443777411870936466712916801926054975431040695030843660918553273490585905882559236664197541006684660177243477261954771235132060359551481055388665189610109925915028150966511194717283138381196946290331735579670891687437469958729906756475991376474210902518266796962526611642392676012465595275913420093110675481441802892087537152708395259058100810108124896906020392833462105003924918418883710198779312705055574710417544164023808842453229676261843975173686413299451467949661670318910257623847389449353708573439360204821028809326360470321024570040217385693679263840243786907837295044837041865289798938759631602886539508837581172887137084831584436463617289771985357459897117710548133312442849233407695173321743594575607745715328061009977224746772832904694141245507332337220751448356003696933991479629963587604203177209932312759985307002034222629420893186437990141975475602920267423735818562062715914657751029597756825100385363309607326198470962126671018139307756266796658714526039723355228899629723806090805375368251575924467965283211685269064480117241457154118795667250457278555172170662772485460920038851190257206288446478800253226186458034336755823660409969533978499265354565687621703637393990827208941818851084503758744911726884222615755470089767954404879802512397209566703243293001949517153265356185325955279262910170637625888117831377042166664178426455727078711224015319175780889656819765818996626207724846506344951069666395947362392823954874741782782709783395969915900107927118686447499568317255182341995633241328004001442123443794258049843123912911443791220424500367497356713859246644650964148186980421940398665811939724325960555777487398542669145675158957269436596779541465779525018907684879389583782156465979859447501537875969357308448153078222463713486157723100729093769714763506681153142634018597226024502230295925296220560525544363949250533415798919434185961041125537201378321630055459184690821084811021564629947886954379792432959718348372676070697425047471191724939928123238749678601722301547684222503001653489669830967317923734785296574695404163871562562343204992805368046182873132188446013893960651886818012217067003174034071769076002520828362371790062473526356600260356832610512438452628861100971417866887374495747807132595242202903377739805587615829944794038376691508251681989159511229561989338259047815503645980666234463871225018707141968889357687153549577653147797099651080663990118826612864333511128707358698028474909690125245088288594982057440090117779984527758622680362579154530350237682349319284788043224639563939048771232869442048598832847662539097752612164138775782812607233358804722371232902282022346911866040769409596821485613660227406229975704877344154535884582146743494958092830367285714122273687236971417174929879296815431476588615568521787559855034272081201475822313961252972348017967682680765021307879311764771896439535279437030766989095420203249555644231967584904610957777712670758422150881772688143610063201841243549562950608961796440943987547052288712567510103686996811912864556976841066985468572924375812657935059906630007392672506459878698574909446960469872358011598704699894763005832380731032021469200965483710578281024392844966089114641235966491675366927409449603955281290580383200811525088618264700008414451469927171139711784621838586471772461877129199409960086401585742163994527999208130891351295635865450316295287927416400958847957541991789427892516633650205272772424833153125222883730453978521092059364437423471940680356878327980789609052747818106245249990111584751172311755130193652483096103951767210982613886156169748112268805142672714466367625124534528415536866701430763584024935767859946807163219125436404018537503342208729003313916747505260473702931778378725111312643481322179550822289808170095189396855100551285970712983656855486557527717117554015411398013500661722290108146603498825351036858051318807296211942130967773878084354780737528156125782549655765049610863280614850021608452872476265488707330239773795597642892944920778231331654162272020718110865164616207894975676172198553860139349997351842769126867197996553980629317599105174634191230562881034183938553040321553147545717737953562545128153815959364023411522054029638411634268261979243210255266547967177668508913923807723696329976324970621831116913597015247049000367359469998689527713482212665278464783290792609139735630997904868099620650755175488312669822377691498714003963007647113670286570599169979696841467764567398360248931853256422671538182710412579837084975657856497727626397496420631267734990519097168247760684525382575696564205331821432126800278805028707487082270750402525309457467874486381422947438848671906701764035340277505498462630068259868315915176999013005498499136346584268869035992714094613145854713284427922204679865881158315943581023844643831721330900651438680378447689215313988440756770776666767898848054355739242307558420271934561604413739628383177943231107011562617139433426319865529538054157724048757464024104201208179755382952938386655993868831827217498612799076551363429523991419096073289316812559140354623108181343652418965625047098276631863382918639395272655500791082977209714211584589904977872234389039609793176597075508619257435138924960724071338414094326207589112526527275535394632830170512895589197389202918781190523036223175920672662110586575263814432753014829313914694032235695722227125988410868588063544447353560710924847655847058282616237391200023056157262881247254659225927932631304647794415364177403305754954199703573899124795526860441869434005595625606353315868163600721140984880498098009575120768045102375523847631869682516639492041060857796217492229503033956591403196137121029261459789396639384925506611656973708408011691611402896573314237799142892704720744272310006982615808534786374303973973513225364300821496210364091800879338082311910949095648743061636283646475046099888705342756634007956670011595118536150664620187367066916649173335762752732653436165928768068015294835534370217404171200445880157303661852327958648206882343040176052461841118270279000736295658420399383803063701162992832418355419255199612568672865099069858094145094342947399246503085378721751705622044991920727434435034459031846487196272320669879434878176852129358902811237159370692694504099414442114870717535462038518662816501778707662335750227652089930867426203216392105104799574707873784084829920324084508719065096205161863418531378115944021619270637820857072442450723213745222318166905888961687022915879811213196213670993600653736532696411368688041023292453464648961867396104650937544778862042033553668155662507756139834393568873064323540247722014411513809895724359556822631501080001607156401086794523459435754453915779850801604189500125072004598464981010666830775341075132973269120067305446876410621403142793671336127227737187267818412477349593253768831944205242343772975217577996077561973418033697310336372941068899765255826830601720097382865169309071494553438090471871918235958797270251976266055087141899354926892249174881668437701993088413401417966015282779476739708386249167002369223382455357657442701350551746532802797836483882412065164614840902294109384443899994991344282710619614002052255063434479777320929791775138582622238968450352892942626498803194517236896793885340314638223884808742732490869037499568715598222565957352643964291250365505073728259954911740595692958882984915262788328978828862296924211147537892179145589296449703704339967189722138102377927758980993858474489754548001404464759796031313587741194105481734154404789565538714958369934596613537028188084165861706816719614717338140524307351227903324720245467403665682797616650270445000614903935795643497700740693963624299728144262797759848480808251317902805564613860611843816248041921384235687733675631846812187871578825950765959098590195514048124561470416401522989399241770222944995946491962571149735780717776855337686016687137786741641843234490133017785934182227226160192190480387295304631249720338723274374017390999524276752680446528368642050506281872029992203779983219720875696421976746910453605044368729848406088596305128739936591200094590132490339021237647562299321225535904305023766958787946867408101831144824441592669761277026435075345706417785502896519678780785847521318238391168475782244637747399269501788055093138649899138714743329849493728313327902692089493779540909776070700933028000326378008832286234406685320344004634548254063090996733641680075114038195214395085430122016399833165949816306765404471823554045679886494817338833624252269666663319754919707522523265340219573248332216907193738676576588434491919427700397713887577781047554687433196002091704541401904523605122124075425944670662613234982709526713356723148168303235622944905067831558705105713507842598128184064645216147592821050344014931446311633404382801207931245366372483952110092311289642990486801300247372450083088769177821621315700228352719818108317940564027504548608470836689409906581410913057924628824026618686281223934879224755869880917888322790776409683171096056265230475943813892380762114850804870043474822190868561207730147919147143227600018910228017243400833378202959504818612246666926052367841857971491819934160776955377078314353731292947309659742177496356131732184317984349029594320194914305677585273970899545417475588765704354475190862676080384981216840903801385238706773517506441466405504557395626602271567841336365049903772799431573643354925965315785885261457325001090330683125731392204163067077476083165795074055731425230058850186418222625063627116831134959956228238518522253707308318368119264774018966832351708195519010903743767243031875239875994775022674757179904888432981354802232128732537900388393504954804043656838998846672209975575108248569358603988917679849158875652920675849676267802640830509807601172310249055586966537857747807071689572076412744431196799245043060144026492911890247686148377548417790130988158018961536989740113362625143251589894609912822362287401357196556637898282108085624838065049678645778226542552834084855828592416882968786626787124358959607938668259027101423611240228920930941105796698416497833962625783171323431604884469598228073050603428286007016219162609893214453630993161969760928537778296832076795769253561210315534454978285684850305795066054023533377225435718026322246034381749277612344563695277869182370793518921233960717897430308443849495226104645953426768049722182955997757124050508520468969207239183185055062984420764627593913605179226346475147697326541102349248593011086575685770163769203725211523108818893366226496478329762490566688070896516989944134166896322814372665325030711299457369158729858487293169887520509800347822664213036228782781230780797437045542148689466590942471862425238054627303497856772169072363273501442714608722808049153542843908105667886522443501668070153510758649291509818477288124911321916113394133900046576094368441596307677069840935893529127752019792111195869196904101981943348634793540428548000941088290829699797098799107297304933334125570946900926965208280411448192274478248952632392619415560208047408937267760708293961838726791247489961462712705901740174527143279076362104869035851960623888817683289582793473620038019804247313265819340854075098466957173382829847083743690717531526426998619359477055208907765428304580503317734684073322827247622409664558496948012161992120587898044088253375191451956660282176954051740372508013853166412960508886819847863877442922668409284450622626567671988339741713778082744793460291676240113766792895838122247588051783254226587969676568461223010886482418223443099575923936409240440578911579709830218220397179196219782906065366656113641112829293675599671663130911112353919467479273671922985476297727779794454623091872975620489982503643353886709283173330704918785076494779474509313848708912571684287598248227764053873583388858308450113393084764063426864798836394047417716633193348423446906013391423255683583979714700092323982933161596274489477395021914786747515425603490004370001724924414372185103139192530957195379576497728512129526497655968322155688941367986472638804633052075660544111085627127270163322640545347560303454268655753473718717092118845795327751958635386602143444185082363961468002749675345143567671169334802327335993003806327579320361056326919872260645102817454671184171057268190800231788778278104425942236063438055994296808146287915355626177957894629639898985389861367107487391356648357771758278871318395554943406804072072521750250943228460491337799706491379124651708756152975392147965615862247784998852337897691009728763757116610550129757001265351587873264221318500772182696555399479672711807967907669655730542067490903058263085755180264743097517987361674453676200200201770286948151945265021801100694377136785244234291708023396198153215733254803119972895467276108005483177309044939567446978583577429380726810555020690693457190361090198656856885910685043302556894571290513543169385486785801541386827016141088101472440288952571499842483653465962359332380133287964179378100337253424845030968491163141580852550184712726149450773512906884228551394313988103071647147411114830559202759272132188977117546892205427080028135464344080783761740460362764109898610098018502498064386141451557165479394213934208945070108736386738958394378469979513552334107721720065226738188218601936105966100892425917664152647015516352220460968368039136574942903125074592002005345169684999601141026424730166897110182129649143000089201626236825253667381591849019898517345517566216137031446128424651282247223803150471265141056240043350333956546694244506112568664881799637092840647630842375064924333897825590762486433315412847606679482297503428759246805839300023595970528864820773673186574413224157294493572502249188987020221702340118921244570657919697077870727004210996738929272857454601050147682333820399078491777541284309890897036318531280834854963125833020117769944611864924165245982063326092556445408661572527422338086867619401801981398684280946086337489760318814069003371308241671980998154416578863752215185492186837927666409866957820383775663222546477721446297045471706357694211028427012157878527310730176591275093365914314676096505723922103167821301797536945615974425111791386450820525634664787037297483458568305114561113151159353523456022797357055093730387741491481192596037372990780984685562615132436080947504714054082807524162454806026979549087863396196967049677764221549781825891613411140312986954167969815808664346052579371641317245549852783354452686375627194564242463917434672236041119745590544571951670589851866791719333704091408940018614668423378413690011904534456552549425598373039775284310780191996803250082928443651799205404271517183588225788694194581963658741137842163474309904816711359257913096912167253066019726937569174394913066285188790034171015476460038284207359889201598207133559839693598642185296303182822297591893535522297156406961100885447131490090951925701029263717598447999358250780531194267627503457554611648835410700957191350151552771945710602451582352912017680617732784080741635915199056304915701254518968965646353439747136080026646101203942908145100133060023150749771859089236752326275990977867229221796800132585370795277465405698197585448740689054773135297237692599376717301717463890968075138369183900795347990985166201898255718054942279185986140563176087218542077567806218830664090191510209540040975226217655517946941351027508218295253297597670866911422675783301226058350382131938904801346984044614827188565658978469594492195508697101016265868296623126285768776915796715849196031626119514663809358795185638216069055378360431962070105665346747503024546299847167361905244486068335176406893322867497112037126346759294813246456249186670435968877881954774814429490577871353978392240011824437489584693807193290484640111390785350876474714972677149628676652109182999177093031082967585737303614869379477672113194441576757376140352468683646136641584834700533744788660963763925400891760396405123727337847864705075003057447967356542026548913289728790152120576350166538024281819010722045700161587387889929562799513218760612980197529791238901060984100295075858303115672818141996200026869248345004402045932943818149680943648981836076713888397804073286874893601905069831926106807072511738842020750255157736269983795352087952550375328863190339032211163844092919678100312117997635847891638509959463936172868104072499577604669901951777427329292512041074389050984969626513883502865557257600340458765153514560449810253761605309273953010376881756242564613396285466831090618595948289452912311395243422151624805611853754321798906725740870631494614530344179080123716997993131765877705005395283005587529522485285303397711213822386615820551847467974274317652680315334156236973404471333644480391498123877985399291952726949613773270667112904205901154648625693144542509239986644529636653788632105719317749949248570091210990554980462951358867618636923924026413456686686076823893501177865438679752503949191375275437728470968478687428498183857212252323984667136216877210658955770279274642616980059138998880752649472232922535826919060055671753129318534086452823702002560015887113525546135028813185372496413390133356303544007639175311592175760896893933832403345436153137223868160769033007791860654879503527138219873050727226842910539268260091640830716493652512693022090366419630693838548639491528806941184379336240729878227705564050982216150321081791561560039147902972573545939632599443429313218350408793786610850355354341153568212892380318217087553295612596430532211487133254679793081541532502088766062513444638631486450452646555953618691644585018231285097464515205299011560723415500913116814772310643606016241558624174395812779567525544891237914832526868221645550079551641545015043761528457802621585317418797931336913394987708382684591024364221114713052687359330756504400548363323945809486944994669953986690488015168752451990599416030423567917177178257193336357329156658128457368329602257340697816667034273439612279422577308032190033377165644519252451891025051739447050881750012134134935755139352421347754195698176777868073761757137600665418413806718213434103020737637307279594419950633222446848060324233352409313649947376440328474930365238208668301717467505713837537720891645380952839108644887136745379317184257790815053881706686323793345476993427318698923674244175636220847396886187195145873914494147860128536819797538955795270894117725641786714117034120668075614228541837119852540744298335414120580027559834737240912040807831507960436372264943282255041366325988029965039241387190753841990596802187782046117635545387935585967207453817641442079975491232019274575621527177327720498880115626655041645058925763692172227235676064889660804766276208014697627001616067273453957049351009391114614575569648234934955736344090029618129784871660338161479746017576154843874184520246362632303614278865744440739947762197687874148038665050070266716235608327097700809833066225569159084651023582032023779151374131988894398550692921741782587898197404177816005289428367009858982905947113971621928726406594478511447239463415685224917893919183589877373908564864949559584120704129456481305158233156045037271020344547974950918460915753321157121518365094126821056382625304426927010156879312271943172302568032587574764407404355568148250466283688675775330317416117912546743853388930061400232643082328025430200881951892583592762737550392589353250364920172750310330315802089436407657930266364059372449607448196960415361240397926501541484302675619758084307794511920264222998266479093819393551317203023236843974448664120669177327237092318633523655640190959584185265265637703818720184140261551568909893201709307227247853954252829152331402064022445303754726233459553842206152940226637710343982714325976450360017371089864087644786694173512495610166133951552152509436832398172075624606879442140348496253028115253564299674015302914774291066433397984697788486591902633079005070673697448253398132215048355951755431568715330777159351563059292751451889847195372799274330070971256465792644632995868943709294977096802756172189461227420280465165532658631477891711311493802909417345301827990829181652584569999492861503129523869511351393190011919541278822412312115540396711111908035749478687882425669361438337996607968395643721783199226459947528636566037672452908069136564477518345264034685065157427535060539907109241585269427076507540562394767394706724970275055229805716722110284936402521441525618948084446727574408882123685799480440981221484855416454674272724359651180436727389294681187607933920228548015754245749694226257063066054434358835329898906868275971471999247900547531985083288848648957706831618953702988161753778895464756265574169439041147735933429182949517392140823764724742954641998354834715607542897993267371951587360282724689112774573089973667302414247938640664070537173491435545297020395875960871787971936366779033648407761951021234738545515519509716905121767584433339152517282480920722323656238234461507029409475198645268438981678053137335309159018609402420168244380389397964190124490254071898839706074549239136731522900547911755318495161695977964150373422907592348964663397516543505004968824376882415812286354717735835026464192098985659306145589421409988055459538701801866919390054140492096401264661463988085555648945648104759725204616463923760005366217239923054863567001669574702454006712704119056687429256254707042253756542733251293635336004366138184089823121138203048215526405558871734939588397936341898091172250505893360818136854777457099551453574680069039431019379454639422241270420835495233664108654849891061739100124807854076723363493666143753367309782950663406769426095518711370665910690582922244429597487717876355730404945138364446580032893091661292631991296079778954919014884048012804984528893070855855008552092188861086825635723682992194648061924361921185984625325408635228260963350795785547022703015526005510509269406912606411380158222958525933759416907234527498571867093120205665073804958629112665994514248099324504968405234472097007544923475484669788322824536226281631866306224142256865984024154676275795923165875198659166244666226102735478684833545331750502707491161645231688582178759246193192434681580539168350385695801964769116165322149300127662195007106681361304915270363615056901825416101703021353004585637617493898207664133909197077391335683936545883808452642761391420667377525953881345589922025852690014989012241635426857856449965932595985283959247695256358952364537826111353158814236844575398380508090029159352693713485722156908473085714392583480031762013312766978660045407727956479308480051069412015190187455343841039761228774524081704675679176027883011472976612910235406414839680190190419603035946194096742526369205616838178793674662900979841877104786256356669450393161999426706127643627999372876337522752811570614048410558909858533281312663214028324070587217426101997614970485248725998915949203838245760620532419737516002060077878680188195931139860725013095965185809884357237399241160255544060422383406625151290776784832209802711991650804352856953205693069136269434627235706321440107050604071431173103659515986478231134862777844230802764346232336772480552916745566281304491669698020008518967910789357258723397168930928509845868554156524710253666512774377796986310728476644831122342004451932748767154672722944498545875805051817091213909911417117042550469778051564502751746051392058183483077241719523951125750090936942592635117778993623682934674336335409979292533781049493944992406802443083443079644271898972096378164713413964557614943957934289763236167599945329292937240127650834106238558043771457326326185038642381401105093291805735958204440484007070775175466448095425700714770187294447178301826633033391056580443473603851903207107357227839189091279364113943182521684453699271821695107142562616195397112360391839222389040378604189931802516429121817103077959464373400504738366885650708919514789921978006041968188225767662839516861163417125848337114478728432916590717772676989392913703088118516831092611629188880661325481424851780167544983270558788568150552988493741018647738563132261596351644994955007124529065582301022882673206458311889862767016976208336817008368153822194739224618482470143773944427729279691291358227751740432996741044441413937854278915344152448025549796943407481803375033174028677014639362749071980065028816056167639398918936679365134107412071423268549935050692554396472383852105586415586227944618112599954300821394332684726389605503468415639876541142307269696045909462245913045655598284054937607890793110777036822490087996519729622595325102671019696691711634237879390718687682145056919674655056409006220464239163840653585436322438916231378655280990655550060033836989346799652936897703126690398889857814698931065042245368878229899408653070266333267385497188005325030041951804061246050908002570362327397802090687856545991911703928222415183134100821372896526606762791732291404636880718368028760034364560528192064181614539320515326231714500977458034779465189123486621823636831614513871351334012767834278358407661383453450586265216227726222169257137912907742948327456149353819739434576788840264021173806100921428940801833895203281207286366154234828571627829000655327412499720721136516484887588924957561839679361965042067434034052163846528617970148656873782422898821316284705610550847336127139588467922412631723142446201924229623908113622922387328761454011829067724598799466755705933047588789097570608645102110733856160647979153615018876467911126020251407548759483827470132977012940673530344844045189801080174410150887945564594414370033397679580494406277687104800193003623484577608592571097356953461899126700915856103404098302975977459739076094910598644674448226070752037929580020089044182851071443674230705091135707269141705647083125914767788494924034419676599355559693869309204026998931487021270907606123152547503032958388630187443219651100353612651895405701261951418424354788337408657192850089351988552725478930445664273582900781263630619412296544888576942295092833535320622573326712787822506788927761641355935382371848206670148917085705787081118585964502132203463157813850690895660781652064645722845148905390125157862451271638833335199669909152047436282594860950146604774956876801192031836113807621430349844372216418737480741696211050851826902632100432858213083946966955310973750685935227430752127210579429742325616149088584679432761970294639057338448915824715368417677300353053577245377322421926388417238941634233117017424475535687297313259286606129893606110464968470904108624814834373414584080880566145637760648918460929245333011565907082498477233267446656055790312232155688787910153163266762533738906537400119867380589572951280888106072402627301462337793161950699435588967138512834687836572050819185835191771088694589596422034879519839465463993790382975354209474092657736154841332392214890482530739391508799447138871038203869806376553320575119512539409056265202988700548744436478873490386685300569870120462501954924193588459501173374056688599033783986818722987579508968804189967498060448254397864101062611804801849302703452305891011250615265329377585058681815740134881516128394668867754894680819997802685075065134151261727962758439737523612368333321805952209525558845484768065604727663782275266205597044322060967138735166548798641088197448330074081555515391000660865619647254983973383447159053096494923558166050371232406011018288430075986801399345525912265887273956728073465983383581368378777549196295450227810813135319214191000133024575337654209395939807184633579316165004761267295436959452692165894715661887496129682104648239743900738622971846125451536969068878266960031466535511472574199784853882403227999101780557044834620094744360621565089781870906456206185038013390246998028059750608878835601315122557011327196198371694070712435117478588161846774733064617172938874141280193999162866561663207585770923002254290634976158413621356351292773191402217782346299057018040942688446840557723171343075243191332571336668831575422645996123840673375446994060099469625632716480524582577178951551926193388766193813702421878805245205031046138560039370170013213469545910593171806346926510320450884489743101492901264148470369119233383303881005762564793249582838038676092408533880192104678292367146570760675860897040619765195803009761772744284440662002335669641300657308218428748215800806021742076466987851931270499084417616282767023598229048871295987559386979739035085285180568189248083536603525807167058104612040872366915018128100773281836141164684627895106581284897769460279420253007182148393452774138122168449571645552513559486470234717449548359697798354925651538368980756666440601430227417702822541288703631420189270976183180641262704595946486743800454562119278257915549506420437305829845508295996426268029124735703213399986647170146891192392678216480584887266433138568429202345498214110279399304881420061367856509418673592884596128872921995940198625625878090218894618394954770847079820688492818282737326583833941978756671034080852623703903682676282921562775610381338014326987375629906006671367056179701181482099755100251595279078288287229945031839076950650416338590008515327086706160753565529395576897566420676735641058265384929799318016833643897429660835852737766589110723378208828656456423507064074578468553125109593415237778125404632865127740568925040367610010413642384215003407205312761726052050935998883474636228514748886721094151138571240735383491185530408102581944086146782982975100237198125002716976647861634450538324606385551603854130125000482965871312951522814669518407443666885328494817320245904449263078858721342827508373590261912378492139473796574044889959035882341992423989305673439063330569086627071844035157374815695595417574710397789269215483982263976267760623828908571217937025653081572576442963481845301128045135517953965255763944056599360436321663173229541072624029941515627113884953369981771299916697150055453100561081648373231495878393547673506904257614214000216790021883018494860804253670928213512377730297847079865857381856793463845406694936878534262761757777876116226287456146576134289028788917902004342967745295790175642161304168020819549905842942002311034334589663391515158695832393615987816359655421340844016183509739881270611695969145758610250361977787132094967933751821787346425876282135782371023057734951591939335214902177557907076668145457376371547514406158599997786217112941420076736001985917489459069492027156964147184832837012537809875484458228652692671204682217291804015061191356790759655929676426264498191593862900542357824841294991339169375806538043203002312928773278419654364200046217451154938475387771845729816711642403090798091498442659596216545894085119288920467016310268379208274699188186651854372574685010594111197323642986679290412131863510409771667873967035406145350292746066188261792347040883113530344571882731270077166109264093892739998490152651264470149705835401550728312974599044227177139725474266624997432413165581739275852292721591480129401495842602915702694222916105554291429900952156654896023166148735055806677031001795746852516454556031766034589414276773844543840537805711399662107060821110144875645994958670346784813261697642715175924645536369163809335748354155380214971669256616588529372814282231541709209345011307282090252540016047170302274076298412019600453921297446639710911702580644032933687856072836948549986008918947756120094311659058141905419210886199129293374497042696769411397138052035975105592042686676483586885824310550387930084325790021639252782533860906616183463589983509262818440272783638064026809323821474960434037840277587808359678331193831874535593914493485840955586395754052099064399406470655510147632968067473453637397872714622967484119950735495616883425670528942791749480751247491742508078409288029159902336599179546896104579112607799206656614465277977368968757288651379950081211688487375739359543438828973891523106069694620750233415596329258668076004987526739972483677376698022443195590689095059297504287796910674709970509160813917478743369995256479795024747144655112226108939101277725340518965157360909599010571494968990084164082426599772585263236691026646889851924644600803274583736748192426359626622814035553292856370916758490153107388759948686753000083243674455001253317727112220897890031509611869138644016810190002471616102512519139704620710987453496090993623304164254762787540872434067642417167089987059569017831955785330125323560308525152501193838596596045759205564377431669125024731866868048073991538826344776935106509540454111135153666283814162800935367556881650417052095112324743685903523268605085058562230690148843256220296716734007402957148971125547234253045296397086535149915206070412780705227487387305744113574795374067246458017379932727922973233246912609417701536904598836960967762427986913584392164195249956565977821585987994071653506434579501114101662363936717935164549263130259575579767113285543381016442595088133396813053450465143716498311412003554218599929296858618827050670636851490288950074867107918723026376642813071805732615399785513589247163414856342564832295454492155869311834941785220756876917509040500726745604344842950119033959420696470166872840195083756456760166348051722700344595568952129438549559644281580597590223732532718458776067845269571654274296877585485797965573767752248759766287664429226186736782387971004666252099807206697332085738330309140195732621675584080416150914316283974532315431250082255516638404024545543666387720169163835451466633390353279953362303917903407510668611218251641342087306055668383568906100507223373112568865518674220256953632858310575365638587624115403347619598396783414537906700997527166158723025766400551482570725730119255984795246024823828665008118159035663927482286580076179828998882696716490873321483479279043597194774887562341821829276806208276123161429283961280390951057401891914401439505389854022091732762531382176802025353646077173426347730336923277909151007684805312162764320719041741646106715659589964460158672157021883717650419075559010326328638579729349974758462994545542096178205925705103608812876627991799813878682466054927911893360833273718137548151864577829610112037156110820656763555427297156130962515258731544443196713879399559697526852656261253852994618991609575739758872037130261703136599700883645371455505389424027604268976936456142566121071819046462117274887952648695578809388496635327040556181995035627925594347718315855541163582955672392498828585867038513970406749936559333327073266641243735982367164753170278252813864823324300869798258747265808290166857047997526275521713355616140104724226351400493076298672716868552330396331984497927800241066351643466786882635610283639719978083706193438927157625461227628592649694113391723945797533928506940524759061555520995154553748221670464364291941089920157294514237843985049883713375878253755162506005797388428763665054840484704666843781561435300720782256671069770710779947893646598974019228612054942275137532391218666583105673327649161082558444449797490367550907324080798590129055442547674800966710526007905007669484192995753362392119359157262207923749986398100608803837314700669824332582770904860335399390505578868504588453790373962945890098515345563243333300408809773183206708761574764050287958236060757761143903014873468870469794874780774521837993727197671900561441059504764070014232870855622363986285655757194942995199944043766674170216938788543358994623958813319064151245582481863854017714903271141626132254502281053879084260250649983145191674561835586387607104354735225015436569411008419851223955544472636080097678467156194136217629910044188409764890643918147695829951377860909956748659554274553174235079699554095030522850622633738344760240469701879185295649255136767115767965919041516883459933013678402295744929509922752968303998637173671821305825144123071201724880404645881857816104754980435211279904790978234798979183206900239740306764322058662808685413602412226523495870113459843510512051508433125506492482669342816174723380116498657076417344418932287224491963864041640053430877639139220923555668648908165417703368473272004188050603831383192658958161567536795645613561666572853594551241457151264058498989732405754743039342557324114542970694116838841643186218813924380548284086421569978228362418616302782967322711613035632963699722553644740913806055552087123115573410447485729294519988146295275208988973676310157763344363772376027623043945516579554737677321811735753277441951827319919299726856552542239469739150996402279451650256641823856613942790947254880430001872599385170159118007398047587309443596431752636090286184613133932999931342463000426998472995041500365084193917978699826297354360583265624233332031457493961953890596423347915217488320153308953375637878466051487693576640649960546169634968715500685899494532386503473865011380423789816156203870467222407537311467596975395200511073547677571876445837978635924475751147851047941448713747468978558890569138585423040829657966452135913882727670719485816668134113851800376099690825110748310743981942397017443664291061710716230565293382034930100887820758900027264661908235992350499879433381733969390422678191242921761771988974168261956782885215012935604797050274887086192252905343185132523333011789354695437649458256383354193227058862368076175371875264969364888176305973884399332877128493846561152769107776170362601654371115689973135268445678926419588073936280298059913906649104021334837117066210431735934018850475361319688839943007212380370649132672186255443662176487381242755585261047340077190562323434286343700709214455142307482886867114828046638761253361458584710565031924778847927124737555360191398568518081569696174828812441209251154709628256006471361086288620218646579250749999279578308267773342880883084379906331068557145042202398771871761343277516617705650775581751049619845772779677288779584603593188917729119861268314943859156281722112921229200039139120882489794960786603070041138561025790346051420968891033115355208922701786928603730056336969897031099912496741185610402759643835617797118975187599041823020393226574099495392365729000643067227950641744279746814751962368209078405387429707578501011087311475763378169530876203307948194463055452128415848214445987022084036862226753042262488726727033766986853821582319962198522961915295641178970835033737976955932812281845320151617892861242154964313711601779706413820534816715635619165078266924835028297457012984666913303709903252811149497831963472182204632328717232322097591828744182069398273424350744397324429594960487125397872659193252070556435149402323225265039299905407924242828370301096616112022964981155585511890313741601761758128746024232573080220147617584071896950114911139022635989578102067154136971481375509774677465122477984731432207005165151161295045499509338816124792231047092177644239488479217877165329676605863608093417076803713018184725248441603573556575027777262880470465032754959452461625046744707096582941794487672741910007562536531921663533410752939903358367569670186713697357897766282442453734361530937092218024776519326692537441208316498288418082693233649607729503571219119853966997996398359556561688589540394616459890545400470358315076191690910906431270295059545704380073224116959245553032433944436725634859647319991026821646009366794213628727565680453836182197660837637987181294417016311529280381665776819446673984116134863105070622231007688572075083468887601539182220969787676859757871371455462508039300790628676886815358586453977955403101613202096807179706664789570341661731141460927312078738351944538172447944199785887103882864386582361459837256654993128238542302950251983532000166839864965122041297012847769845461847798637636308716183615029724938750173037762286983967445442051806009735656030842221833170345889326814267803545471611051913133009844704396195587156820473752400590968581293742910794635296377784506240772200924924656828331992991583697836015707879432411234551976501190602503501258302108297350907210054797279103163675312360271385702682437903864121636709180322866032609316958234981426172649708096300001306456286726624166581034187658400589264147307443456841532917018498100227773804296095222929871624218270769543796982474321481508030506328073345227475233835127928427374372549615443875550524274770585053067247534208452561569449720399688135397469559762985128921235139081864009748429165423395868297480610178034433163657742727806412394249572560680525176270192582806216901923340585174594922123464860448160697439607252982013115767895676132058297341013315397945860915890529697759302566786002671370075841773158562986654293251739718287544417305766497292136774698256592312653544885745088950396476293177729341989521470684683200217023265051677800287841756994442336624175645766396243201800340167655176136726973418949274003772081917106686944033332781944295672825819112708267737452466217855471048717213931800145603259649200219224990048935773290943369712962355230800760963620537718253789794113129819442223802819129234538012972413123971605470231037972849857214361153399075222292033708207930119127304566856193643809803012829869225508326671039900980451584866224581309716166946879539299055014771076117641884630666820853152802647611678033623434550576581119033161398771285359280171708671549112564206237599117637415987220236975676582789682926532421482433719655018402947758016296968890247794470586614924607179833175958735946388332774860669126993474913421993501489041819270419671398135996318509173624805220931373152421112246199158615966114921538913196205464497897964474356966211806418171000987567754571009621481225292147585924273955342051158721213658196365079591796755466576812182773081412045657674859186461956405352837982897219015879405408623929671739408220900076242366460221602352843244242020532322754302219152358836306846986188529612866459883529830055868842934044150854969027886240852367055632797318257255177914451036067389275954308903927987361783060343670449862035271899998823345146172519076999536479182440285020599685592810443657955561151815930162959249299736709084816290522476031427299480485675438522540277018332459744008898879412026969176902862607185244980449184655314484166749658560243741017170978238389986606777206148296150731237761460076854267748628312625124975185693020326437826427772924550708564487935323921237628639794767040327498561943561359988028157026591710150535643198127969114619304560807985129502020804728282832027850381074681050749802654626723143261249433016607039229199061275186650681338987904694260815433785420079202116860182399917437781407324182824896249686053643026630448701486117876853550468704854145439760064985936706247320065143744387186964029769382983720191366044712236233737649523631622992092657885571328536844586322987149549572104280865603903641092823462383876902933684650300872784946734706207737561441458387812478703107677506407900775274305713400261054283301997487483986362284137876114562676496124786240052682639515705110247526194012534185485078470621141006565291581188789758327163151439694092301299351726329170698500934437830688123783735965909826966241840426892487441178281916662541572294068566245680397688430380342211345648686750230113930506516929023831833032728812666619059618130973521197690974152975181490891685073283750304113105360548533092072784246486614935957582310673713115579140779293475308051126822560865337480370891184399212122126275767432552083960032143557342974731107603854877026405505349140080536894363195948623181394718378901924338204357563777946847053797712002180704559641674111381409923947123379379176426937767366440761974500197180497158258570667313623102185241500543709723460774340474784865297879984237156658598044332582491433080374191253285412692792740606019699424781925291126038608035806806340380109733510172183472386274065679455166116758715362961872635177412372683199756682334373582199343331254906433242672506687300906345701954620595403693107417543492734855969284842774023425166235342397073303957983480285741829080288785106989970313557804977391631041648341667424712709702040454379856144400302139253038739320108461147970194228650175774750486115750416785097999324312775454622276880523039341875873901726486785615444094259719303146809257714257711956282647123346711679135057543807191269444138299008727234176039307911380099308443640866394876239312425828034705409888273546021051306728211355776807357636279283485098635410784043536350290160009109370402993736200342325156733078714716352973343517707781221967666834702797721277654246355557157883600196448435267542274295137681459852933371097804900858628668496742857352603390355512816339088954364708957842259921966139844876011460374604899783164870817618843034245250044389798629706497251984731826924221562855669988695680484900353782455615813714943863734204667545693079087842353707405221030187946462954598264681944648974276379521964550395608916319199625123864420665059780577850163527908961520736853273568480956427522044167015566963947597683708504545652097579876957355708590131608069235933540205181955774975120515787361007434732456228151377460396740000121074029021396355674964497832070765899863702190643984196807153106179710231047172556965823621881624947857545683447153449730349746931830064874648609645930093584598958699545711766461756409110113817393761838715604220353881144197276255170381448540674553841918581490487168121836849920631112025636548339376409927304873041006229755892435434446593901206275383796874286824824358866636849415966874083757674036093438498451975224928971385574851437137006886151315889271882379203193015314402160981917055742121000887015649157805040000875669731014760556355543291620314461029223464543121058422152834806098497173721928187034272618519898897577588403529272853092688625704088416991385238152820871649910796897352760353221109638305692293040053292577338926322513823751947336401052463824090371126080922337247325241254873027650755263656747645227245228652929053711987383142444378803408193862011620679913952639761300084268995280034973954679293424095529008051611003475389133846236663445868180557769441842942061766049052436897702390683441393771841631034192668996703101657820182981326110250869414527061851686897154412435320579187229804867164818306602395543093885371742712135325189721539525282576238629556128738030346531401020294939430023495874028699973903021257873102875101748665017356943730845543465916829590266801441366331264726050928213390787343478759787760406348730823135983892105297793943997147076313889008694868485204509209459534833276331802822905627740725756622505400345980871598727013384676137210507368231006082971284092928125252401607438049680934898088416396118359801779658569281118010722912314666223947328753456318742258714629010897676458015587208736133386171696027239768305964544590970024370448947723537557258471296004956862032676181364609565827704829944774615534331982069199628975307215912743862151869347712156720913276388046519953414473789867549244199764283276729763207559905647549343801304597518428460345109894615011547671884888328067355417066248078545679401802920934282889021009081464790987815381385507713434402311737705035107087902453430301155617440688409821944605033645832357804944521727325010941868021106292591671297269696098363542450362660172743581665761634411621716801501805029512648417686249317001651263296263872679700408542947105753159384061782275108873570430842271223061762035532215972680756822848129220357372358915725018368361186794648426596649520466824229396233330267702184717968083620890958940275248246607007528230856107630637134566018716348879614040762016306006930577939332414613071699812503686589147775072477358035919602645390666739835292642388022889412880094470964141925006205939795811887184700395398843412445751906687397362953747339535241099141003439983824362439680773108317931822988247396444006854979830313032787216508164772306897522638718380784650585205675836337774648508248335068857827340781819062200334292578420081825777799582529753452288751003286100671978990123785241219501387554532677531269631216167728532134612096542431698789249968303109415343828542738107063912632367440416311801161779576521456232569978664041802990549836443748518951797316345527882957215205917627434211656520331304461208392003958475118365663807650242817530989770440652350427333000583877784869044000741038595720991781580905974326890970519853520933668078042478614608197047062640142260975617667163457375237842671205068523674631705071158968115748231971915527594673279417614386059465639565326361684288513465616078380660920758275328154012923971552775924666720502144574658590468346133776337238628336324565006005250635630992859945177107881555658811747766146300351030239047989711020249490517310305217723007071436224970342170612170763133166268987384899923011708503106620665243136499414785121277065911544902548793616494913454378756600337777497821888627355269928447201125830209258298986555415945716021798156809357758601876442556329962013673734310940635538529250819198008341039825605702825329533356974490335664587219224721787084952751108500841894083554069516267855503598577088713966029851751437910332154380810063366802080007538542736939944307630428226672724591205534920568524417229856144620914020245188805111867236164604200884469571798737994865159850311884718256705430773157120031673724373519050214750385757121663165653582616871350697563815317443405631636799813630039225757228065411689912259641968984704800970066298858125388709657711578048605919633045569273825797622613666412385029586795639200956571028667594606047335348427859555862841085260682837479389459786385941747556255817004843832400805553738723561626035063103703099090887567748440677731405788927275201463007861591442170424566051489397888787597350371382848224413155779349622022899095943986520756356818514214836075820961107059318484923454836258116430636044081540438882104565346649677966828772305166950906785359714929930015529084115765891651534840403109186210992668897873024694976383877775755874443065127552272633305437728793113244643909124192666180671971691547891778940125098068188850842388526667046163489643818862228051897484827648408546740644188721450798903517624040058656705022674971268640407538039782814547372885343547913382412335568079887806559662241764159228997556423128253580639441590273755315653177705181570526543501334667212579913093625871797668151109424528868973392300214058023543498664981140292274358294429095405230064570604529489717663113442201004104019592433756113780288017096439738091589111546974156912560844634628741586158008441990706851131136954514651820533832840208826790178425088193503293038392260776914816598863811569315710177838221148336688514499399233729124560612260383210132142602554813502193275115475308721612467755347103942131922150851177741500090672390356483066089959693587443105973590093609656560709699331463661998353023727048565880533374151087563205086902563497155940270783339255006755776730958641739828876916236799074836572809248263219307301931757788062755675357009253469749611076958603904645190815016425113646596165872409543246415159252412438093121046129746351255312342543632578544278143021675500424352905012342489414426701840542555344725279358573909459889249729698505361461958411442803071597331010342380669938629706850578736490782205490227468373585891952439585364896893893673559123794036756924171809961722966527514678187278784702087022767902773265070468322307715359813695229512327479246689006902927550134843259435540918381628969625549976786005769468437884906579610823730600564559868959270236486534759334237016320276991989981442574422159311568881764653242758728725864543388777697157871524136040577443900703368287317516447577831702755293670553586898192943550026241592976707924025120069961873373943070232856831901756098726627154257759709886994346451836104874009306298493322525369238349440303217223719667568900159740784431718334900951027963396053574417391078645156642639423896442538199132427751278515785449332307730647258612604850268592229071816537623545108556845165870330017713251491745138861975032180028188452806895134136464914830578968973392658436090744018072937112828911474022578476508910268762830747347603937405398310308693320092509654635685568335658583867129844287901247325853994397880362550986408647334460791280746443690113923392276564822750261517588559632861797453945795125542498177668295135798610480447686181997608185195337083271764192129765438285183264266229059055530064588574217334222536024296537933233496302413769248487234062085517390671256150955591101645976581595021485977995900574092353329817356567868308037655831429735628906952508237645580497943881870156156482668924913353797424381267274452831891328500341366528084522281502585954173967294818476871604343278787468436260672524295708981595663819962366131563399804982439528745056348214244209670497587876772996809826210397308611168587968223879336231789287545990157638522308334727446220424494930304170623148429080654270814865087212287440586246943937561457332188953177373197130821273568869803358084242859510031968574644535101255818199056181415849028603672477982536639098504385216612650699108472810766489492325778416575749051042732430188600956999834874662185093944693155163155046742097194793854321628849107537908412680531424274099145974928449001736380705319962547736760631654891929983240267863368822998006372453935255770151377410801462641607012824780148103612971841557397471335729983348315263062061982204949189113277033411336210409425277399821546505045017608379871174345917320068189557534671212739850311600017687615224485626414045557463048748529078311257600236502987601899729159711901531982458704458057864377448727091922361471616030264237562955126282817355085774726280336643683230657804611404188198942358640968070748910957598824053905631849296867396943713254680808176476878981622659066427871848800816038681735541396623275709497270220785313251312333719461099814979637826600968300963309311032375353837552202932701668251699156990989550515259489093749420403605685645225017035869891169035700157101816126148139945248860642812147234460254388912016569807201271375566971189112472249905245174064284160138757342373505400399055973906717362062881412498500663727218069922583863557844632433643012649746966273220814394431693984642459860241563883003570117267498152781581752639540525094904615932024367150659988811056469809544634609340584397315909606021446215831645602031777655381652013916587880852888110051074725291957244663361571445527478252671641209243645296386221230026822484598425105380659158828050189817896529326676928522204328890343103590571586570536301800554605476252508235362055420389563766615982817206871294051273307113091643638556060473682396673207915999898910747610120370283559937465680050430133882147507451045631684744537002499707203443821518310782079721071304172115486750234974152806828419263699308732840499716756250314540766289457965159921156100930651380886596466980958406223935688828060514320350394468467492687812379839259873625632615434681244808285842122233953395066482324271249559238716804781511890343133023256357499911905219051529483121218647311674324596535388349138158858592861257075360719727871065118054033946226350554038808662857956679516099558480933948105650394595133998997535959948669542548737830922026026343073189167546838287538990079620523758926168920538073316282550188937288712972608055763347546531886327151207627828499656776507106682488908948872877918502851334296832345103720978912383377161416282698230586759466491363218867223541922302806706982331762208387794112014307872078082063829560571182548750623657086100698029996052237057755054565627370265288244479613550253241397189457529039605396621044461960459948012967657870269069212364653457947236713039034145978234195222404989036858691239377883633973381665670656905496568671275491257686429390405988177835370864922002860008958724805515952350510660029370937632121081786805549345510860013542238557758288984085849769142699775655258882012759003086159821642159128619805035911923515251488312907713288838311610798438166984571605769698904686778818042459786057026560244859315594434963162054161854388817842713244209731536878752543199509103771405196162110273758845652069802279780716461057711405296810569673713551241844076152662481499219082372274153612270194541737546527550899919586556112876466906407068390372136513128994861185973112661558485926158356345943084030731319422587170083970601095576140970657852277903977535162335532871126169540527796892554519604407587796705110126662966845725546681919976209244316447581414395342439622006954937958032315947946191010570557461079564596044344946804757304721145943898113202808544693297791852187886885304727250527678762060814666065916673857070821995723312469082115360692135149275249071429815805520905289311517396963553071905320025592249616748317052911294615472957822272618790919073966932676014332779967439048667037672527608217623567690022502598332992984268412943609948168750823370148826450613931689297076766178846634638419010032116328844182071941183052885293895469565386291341948783828463508808531530385146180803956698383161667114533827995995248646589400625891688001973746018781774123062512321753030136916262060741285396667496132067386434640639565833344488946558637391549047499720161063212304220955954319205492849316163190250781950103588450746831064359690811559839022969930054153409965255348162982382699258065421364124256427670226313008676030541590580058917015606088475824464895689813146391049417728282814056617862641006309155066473902186455728022600079972787860487114611573135541782426344282376197390131266271849468224494281028708620674343565295512100120252857936898133339337674213453674320260814080221005025202712885125976067653887542809837707776450791763030680038824100099082813259825893670845888189620835823942973302220200759477962081394590995883487569710466358918953476078922865676493807268145381687173349033121751408833812839799423727842244585360419923049541929112294517165169910126823283231334888613535361446586743128674202786195868329910213238283023063117673039606686914514481121125011895468399033046037896077144438968861124599371674840045702899629265703654227991458539672903447393100915296663554046353038629591328842458765593167542242633658620878963124038367833029235514440977106510624322553589920819062695765686523449232321929231727529363563902348512611970030708085306932520417217336239321557382264691344429523347245571106376544922344878471820043826133808503254633144568698156957219123522117424638055095776254685030040315745813938357651242958432446809629947672363018460975225598050100238918773868825532988178189749084972585054062325388348979595191952188330069243607553375451230742029065500122107308253535415218215139212805354938725230454665409570359972359284232507972615707589619845952899828251832802284074040050513976297848267459234629803029501868162373694122561991490332205954883496658937930411906045953843897406278507317456243518347979409940684199499652759717256023449644967322355213944418984809331814520845990657881030456104169284990463181025739781368728005580186617878205918916913697764422631314258938871477080535448695427492147276944597366011156428737187964198708993716172160706191538309043195677229311007322449068645563852377071868114155196163278811872949227801273408161826209164634862019248194545450453620534974610337017875240001300874817842007869851862783788774384175111233195815513080243008464672522128997881660234037707051666122015065807728177317985864148265776101437559832239164371028532894156909263143178537991562781546408691756393375845607708652395497310335001738942445612532768923899112327262574023719794086487724722038318370058501735500550928849508954845474946207450464909673516272205574319365135201546610572763647394507732244066854649817766510290922957160481579929566944085390022562120331228414067477437873151659709805473004226455424466256069005571624562785913696939801495538034011334936297062041015806632130660608182819607295022491683202825943307141724894767168304855078001499052582483521432108614261147067117477250674837331263265949960547192405170976730089734797070535898490203018475481738630540629353696363906057818458673900552003111889937532621201939568176954503000320778471574813999308263416114710723229984438773387866303651009576272073942767718769559241548701157414516437016066609797824281960026049544409328898325018735421057997120645783035344991528123401121968051931029142425458185038445451053914232904346755950278520967702238809865157824850644930883604285371582149040130567840452021388737443385050494905467574912240468656158430558890596146577220389647205053562718118974957585756765235577881045070677874077242077187650249035386885849799772345131143604633231481027375827621195377940901505375443022788428790629728513297244842458681956480157976477037893897445886826575411253187765440850812886193878769425203875216137760503292448279654730965545737803378901203597104140535066334744129898980780097086737771876979336390605555881033748775169419444669132663744217655330383855853496025862449508266078320975225679198478810557966829002031162648554456678641494390670583585629921649451071686173343800345995073594630944035357456913496173353916999295649220454635465340500570421428645026644048419835943590383822109979222675352676328866632237658376554644497382320033360281387256021518004889833719314918125488668449139428034985246801443778413137880075768812456839666069133841787266822634924216549320914507020726522174959719681189709100094809036482921837370647516020048637325387492678300265462242669724102812771964191991033142116997945237254803493793253771053690410443312474511392992445769390286185823455484014561932059537943294616836665374236771635589319290578341050731711427864883807547369111398716725213855075402068778040977115373991934182905129038666638069927565231941121326722621776108921013917761605710683023182521771616322338221688814571203941104919644091560243580566923970979534108661813860849164946594610342425715475428713771938888313059678032904472335119554235870908773835076780680246782136855204135716540745512395890422593886585800254084047988371755649601983428732974195331264470176910153844799656104346530322917103411042320028211832855822492036147178611090620937800053125833813683230501141989164409201139478906414741452576500255285540139540714996705625465722508611851249935654149818164548063401367360760533300505601304896972894601407825474789811883433979395991501980277687882366731102325849078330312461869670428899633353881162909461137074784782423048789804118833742197034310323476426015389032495598745860451743317229411669174310412644244387465123735341155413422692129629912598932383753748755338242828984426377853113885477018696244026588921662259420042777001434589512627431312283565009743287739991568928972418753398530496572848477541939659299274614269867440854788765030768305729888008401233474759010057828763041199831174101347382584303548000106996076186064570690434117078184951181988319865347930414039550522242474756173495758803340272094893499658084645686256946879139377877411796140252981249968750299286676787932973572266388678912154626158579497425443904129257371304000558802474074369324157459241618599632527901263894800138173979753456077970774654808801640471637228727632391253792866955150879267386355288960841951205866366218235570167528794160583860033599262509341254692841199562497835003544241102183868398321249835149180339495741669100009501133137184551709864037607681835687919130708644861140145266109429315619395055032826613875601110488194270488925373705682031447485181630283920368888647213596609612713683787087815532604226827693596308832411461033428740572721547705747070819539632736976564538190139178476780392387834757499334354667027668405699692540189140026113019089272762445645481881327344413162639848702842512845657294216307375040454113948480136828543075021454427624443488329100034056504610717182685137200342594332953545715532765665643092131478836441344642863717516349227841422377852808537547286208160318759283181968028011102531638195940555509335147733413858040525684111523068401215326023968701371457832947381558528262924787650611753822363690796154272650271850044409201074094649379370277722182279447367392883246596693664238500166145487742143152636850408547169980987993603324215584625880189881769619497816419677456460418225103770650405902441995887940828919693265331463162795856924531910481449180974159362741850362000121870486591251449998613384404976314372545400063993344325457331089999708889197934322632642353146880831463576914770758315005142663742953994601458977265984273370253522864386591062758138841754205634134261746221600616918443571818323421503213397399857625290240510769357514058306543285226175396284194960528238118054414262414602101169305270628605775022735355198556536785242347563250958724427657726704070507506309533487212234410902972759594654750436209792554420905955921110667972379641432691732986259375964878217626660146094973541267046553030382145142939708488047338227087301507296246670121578478392526503811447782187562214303445091325197915951530696215518919110065528716774506050609550290105459336655282467147764682862174075830506702761328733956462925934672575075959439490066463934006493990385226850955660230187063101877207343605077388689140278051769536444673917360005017350992030176583548653055700927238552327857414977103965223819867526376297815276999382107417479282841353249000478539576361973994907547076971583013589117597605714903891334215014497684334437804587111996424036444657279739171445476949731275834141230274779250682024134066531644774582373182645687403581971002727929150865746521743356015889771148650540138682339300189514793354092886201083029809696901636466403860854519531823584211613261742837301700840761716946556720272637815710426772923411233811904959336556938438026192741497775982263145499384137527873982606968829216891956951858284840932430587026817037756857753931440565251908418133232623218083523914993229493687171882791932739357052885086648577542086408107568817934433110674535984124725336360545255444853929309068495077880418482575700054501598353994912575270234216908497353079151052234329841129769900578639186091556419039183466214905045205329085070893497371577990725771426329767439282430373245004168915821566756113888752701306613122267739476713632387917740397740650752780288128709551227941713562037602890660267922103758007313981167320438523893939861801557198822160885533044766265506268334427198836192691052056454926239546862147286644289796500343519930051545300148196892411158469465670345977752844523316931841912653043960992059657098560752105969791284971418060083837785182501216835201677503317391600180329190430396789819585801089542185485500570620071821423070546959504745911170545471903105260789161712488318717226428421109069746589789439572449723783992123205120878316610812585263481841112383383061084156941883305795588069358664139146780929195756256238459707040584159261057409259481994155734431881610412504808172712123505838235535619330084213587544575298179071127031399195117134536161744342355377632994638522949666056499447986108159198417061912778816478675786069308630862194167847757943804626820109362159575650396264951391549450247263133030005952359041560912946669886826246929146797164567972409915923620771723376269946184475607067714041971730394635122419324726033674952446584126025042359417563081236307685836070310490905951716800039080974263983131534894154972440307432352518591407655412038298620171909685633938150434836008068667957885922324285939892814318070847988627945725210974943968939733230751989295469690823646785414912062395149684272825826368387079663156209088464263417962630683704191812290548957335810865232399779127142381411185548724472011227550813799995369304790488388985759878316856589564711626968357021114663037263166974018235516303092548535091273122219834901533641252134301795975492811447303767050731381907011825243752487564029929367513204335578087291824141092691293928888123221321998412733637432822325553725055443569564305795046884717336394197153237763904004215566613158970517970193058159992518409558990243472047506499940474568004816499898061008000735384014012394199075884580312838884592268668523525567901188287311894422338157777326134576895754161748425200234075325705494991119914106955164552200332403242276270953576135268563672098186673323364696708560445727580268474172285645280938338732604964238021250152814623450446252498236095049618562526826080531405713012993347571758429203893209885123935483672498999246854520999870381853507938465312303440393433342865771091025685711241597226152447664647086857101222458386896735439196680657131848034067678380113841604580580472276240098075808432575088602412226994929332814683429858114358545953366702552986568257693659028352662601442332936813920910443673102132959309336047656721962109794920298473070569055613432925827667661954066364217339826934694677692510959727101639955653192826618343095099597910255240928358200779468720549814219270424882139529608000972598179961112710118213733868421994036333741136013567925075279442444545197949586279602056111942323338021434197928645922414535205727446331698693119383792802541735244823100191349653850355535110701609700696688232399251878408394921754076806414942190864567897089801977877677540214225090186946995369565724803747633826858150991604964524351536140569300001786712043068838582560056439109025229137877323005221613252280268370608501470831610125052172081867988472928075766927206661848746164249258782602249685314922887872359197991374179639101675439815510647555066831109786548416341557197654293108484866849857947179101564013196397106690088463871929141485130187511511696284896482486945848493190248091993446379439327015644148116712047767075575039214972026104602476766683280102458712595473871292253989384067049634264592038879372043616784929289271711912234545583962993637854848208471418348184420086350884443061483268436785332433352999872601009750025609778778559653430446290712241691129151883536635383843625950588222804453505974646894599298492973615938892697674472960371436447748214990447845334520641437233104377488760997837167438752836826132445054011557974293857782532494026770523936490184569509485900441652997745546881476905421913793983912198881538175068088161236507904928725741134996854951548236541732292152113322621005633356409762303871713312414012584393326971465792307123815264316096302634169914079974658405115174296428006443578824035879355228582953245907134530548259028206660515652653577194871155002546422573635873389444083807446814040264263541281616255742981603344347503143966020554938167444914558404652048033290919623303819733169183199620604425938911862592371766662169283617086865469591244345688057343291640188563932971573373930320875026148040756350306862404538855698966520108219142880506132867227068622139627718277955077091581057213144135569597363601140297387231366191082573651461856622138394776186370696357785618190288833133490766984589752042241430726368410331439462394728967127890775891268651611145112085504180793370192833632645795708275977337944881470422758455676369499522146573796859979988267894686979960593634700354471853206387234815678750362594154477022436583292347441649796412461265502553572014969836308411260562730741731128369624477970842143165271122453143686085799589699367597639372348246600369941011961259592119884000267879414974502996022051658094643336038244461175683448125601818659980467855657514996341350331285730907063595249510109609188698708208726809799373666087779932816546178749628507007496043382344358286243565903698972814936694901807399344411182307862326722290158719688391453448352267947849651436206730532212268801896017470585590595478251459715789876467567799837321848517440032315980541636165198212299135811974579323014668080416475214497734213464127084362290722322153557730953395472993214555321983901614070563657752954720233751154466476878470371822273752793918343321381490874768241783978362077444931070594061715976791855024944672562063323521795705198554850435876201583896557296750623554852037203591857010335519480390787841293036545790559965044307553599695424271563927634955052441735609155723826634626790521153207316291087155916503752705867846625599248251050425861418734936526617989803565445479464032529977383445248618981545356327931302440739515346363766476703242370646800930571343748045762846697019510745837495474874490771824955196986297770055259601984209382513815041701765035642163922695515759995660281385510619361520382289237219745636808342212066433655380123051853352407812929990904374868332865546592782854472319306702045446224458261849343301591146119712117506628250829136749602469167194638518108302913982408013144301012034105876842504421986262578186678859996779690041895641973180673213293611102143639801084386351416448418930780337216351866891781620408615183119275598279066943907470027467424726915383324989493852201821633517128116499793984184134795481185991310175659098526045121947268203134703756793363389346428141290186555810158627832259176371393076468489351056045741708188926620042802540094478343807285671046610025815104730173123199848779705092259758628244965033800073778212915851267123641958407938356058727226918098066614261927286669549676281559856222014132352260005680044048867216867106751718627553569995417938801342083485968830337878940001730520078607060051811545782688045320261441677603660302047880797142527369201012253697259431634404664175491608568396184978880200970761375030658970272413144264377823546222564564095468980571497350323437128645363139996890036093268121079192673245729820765304443391518382386428856275101654991230388767381604806422543096159280452492185628492645429011976230967385216117463736857117454869523118346429573016253568303111551780623220408171583655454682083434931517590712984416968804670152818367129949764865779768019482326263898494752395933131804013419119267929047437664325436749286848690313486911711510255397820914935454715574915059213922901625725713700711271628798492313040579034645704470800197513222996334355338023433339806848229682465529251040057065098056459219374539758958611251413535151190070081985576216640726295070047099460595294028205610945873273381299849333515078279051109475718844932232300313392187855433416589520667328512726086034156406063606451200869316463173176183069825574863566773765436465847747985575679996435591293584164655936570868712206709598072090403846442672681310369803347340332760400204375635834260611535306783209061001140648906667922370786144935111516591350446728294928824036361292128941118667288234814157000998548078346816716892317704347112881596919760811774633844938647423874881470397684595004454837017367309516900707691141036089958443049710008107045493516613056941333912976538683042838278159088007583386499148059305948965233655239245533180482198601675087095951643343819418252454440022057603197184612534428845934373772421465531453123743802942679554534809329765705281992826196488786445282240016211703033542271136779689828518507560990450221091184054653838294413587736291170106235054016797458648016114770760527917628396504270746382716337919384114419081732948709015212929132177275683742218903107536980093857030033583564304507749968204006138025712291192015309303692098904678813895300823241018122898796576523122100446587963864562223615189997660529313813438791323097929914437591616471395167877470655658609774934222604214584310222208115262084058723901459540000400996133163095971968208259491734360440077350566025934385329573244021802031546889821681528882965873052686270867826733234656331445536783532921999297791421734521852050959640154129943834868287048781134033741501271638520671879967680607887713395877726483974345410297650177442347691278744529038815762003405043238068086280260080004200503646510331949566274361447378195657259659641418819524544871510723819947072012395943618026609251566108266183028895590372911088753213729994899443416125078002612629966853004469329720028044936655535131851053821746798713315294966530110769274638396392532580453013578384400363552745872509592040029869403190263176110137441935086048934321625894893353359452298121853782627266231948251262713416932173969967620687582285677378448612519472970691150188583342360961019005475645028454719000391688035502554511529002074234570094651549829822486344317684297119659397177822839615431805343748588036917148849865329302017283819969655905596527791981601330908688017160056782563335389759332661099016334700954447877545707285644307606629637807102492613678502566529431299343679502684729081390298145728954575553462228760963023232975799831177559026017235844550731040932128072973217687782202505811516284391649783293675093619706247780597476298055663993954486016763582289976906958304663686353709140310180180773993204417034762384381222323156173435378845588394783704940238650495979271909399951843877491890575220879621192011906565826654323888022058092517702225800705664508122426433621169439191367913572239853703914936381182831282308736327424030112543165822692861825335523217342361545027766751884175046788974008291683242624616771544356329244545471252814024511041981510294233037101790752688881589765147194319860609230671253669968180317464631206440771719694097256363344998418972316236070764549697853569333666712190908211176916377822117306856473453183024553096816431676598139240474048289757764992637543386923313378593825604629870477723698946107571332506902509995755025148587668516027972891233055669388390510268519246030244438002921374027899406800627620008521847082223732627268673614842431976942502890119799487292777107942886214060346145126047911520400395043161354298751603099993724585269522444365833970856980736890579462416903268608303485057398807977237181676747219777887763368014754946946483813795449114934229353841359726839083770222287605553106483855192772614413800432114677742900814624629689538291954207959186379991109330496871551109621350983573161379594558596980933034691060598424775572091691554796344460462724505772588009981052930297040319266376978119000673088449563148712235713222487426740934086081431083102856848097774524631300692766033416852836757407295481626704413989420418135680280243287297963478540220215518095143677468397300542483881239080002590054097745260383813169008859463428163660573489311868480401625952550794109160854340970535791966987175415148891175529819484370303156648625055992254073875752684023815820938617377769502849514236312895324002831169905523592997224602793552193321566937919448895347813292878009325475018895980325321533497070780865096985734789022063353004333683287198333553706752523767545997330321041145513808827586339483076438024481712128440291663923159996113265393798003170230293134133045387597305765187910436215054610727557953486211903024408800050638235965383190760368624858977238922466234844515427913281475312055535519363962886804281874113924530745661854050686456485928054498852392360211469243368396526225729646827844835171097418411355541481122640699217048601093169472739920571718562634490042165476666114090385398379395199014133860477033999669067350264880259035378177370702351076004166414692997208867887016452629363216421551141001019359248876093332042814985721155388201476410589961661015548711990837732724862488951135754717587188064611623082746440237932090390946116031579882805855434435124979953180918284167731699933872294692615575963380963493416235502208390145052416315618538163735153812530086163083912599408330839020469926118283297376864163510276959323351217994428215780128961994383772223099683223562095921611362950818369275192809399396833292420059656485919472014005336341335941850384792777024702948438696306324661725861986217777681785586834080982268436857815943454512749273502573654672764036054440813768296590968350816062591291331871278429587519939687063268790004538129596490097468682600202176419510961194162640631733778087119702643165709047095262268648700002188895651763213260674937381498603332344828228321909796595966767704050421967423866782633346336487306133114404288768659703896425190224208798806540193570858637114665954166094783520668713282020787859241699694589357138604506748273899697671023038121348582217499926777637249388379790767357225060688276123545390544988474049816857069211605468729287885092798429820244844354192768437744536398039269806691834642887076535796825051791284268140606002132902467649250067183964689615149813999712251288560784921430978538235247472136141688951899148298105670478023591273112020985922152593695668502792369499390476368047757110434804892052962722477451303723251899327201276446421200114508990919174833010477682703786103810569559520826327600996241333795835305265396982887680943789801149666507445389587141158124923287327644523608009839289598818914808151597987087070132479022838989248918648136571306916378288000529794406875926467394537529324614956494577796483249784676247117231540833532759235122841988541052560594847487412018718822346250418319750076803723448375358080300224445610715658148386385439163457947198655425111890291645726859410669231074658477750247666428222303875961922557867341627066367741575854156857900941817406871232696218252307410215258573577580662118068813877098978368857554633137306726489734607906145276264860889063564873591091479657396532226377439422167326433354202658336356407004273042644719164718927543415631664898645292433060582856578496253102443966928474974609356563208480340048878284816430933513855011416218318666663095122974321219879497424125842574910979318701549067091977259262029948620848094255189058296918086207193090832867935289086396827904365501032610629008753914123698981631197261752336835527066750583429792161379633915823474558076117834764247617062751585010578505102791945200693526635181576635675858328062363716029467778857458564285323943271446890292585064174374880447132743834883336828273148601655988186353334577608053589049913998213880046539611282190915353963338808995289215729644491582196408337958062832871022238840390473236832851368332906653873623633437064135551519877032929328799205597816787350663893902780427516072967536282534576074337311219454346232475260486555336728880805647916411435745366273509345278865612362330363194888886483952249197142615647424235922685517098762128374246933725108144867362286609096234804875222210885640769325216992797431097806286235160871675744212730789038944506512092843904401851785433343638351429625200866761995694574671072715708148241293327682602471029729567699942332807395644342066174300480873057083450699069625781433344577635274001480498223886809729316465138567104927502187032778128667698418450869468810371052101418517208928982229012930407641902589570186567069544612702941250419838932487654194738531081635105534596392208255094706932115000415676971395688080417323115137409488244505064339825073295251358539892388332078691868061022773761661564514565140656287089534967132160832257837772599152754630623381555694171236028401078334034881599743014420201852303317691830505763417237602331611809278054733259141016146594101024824681544900542430240997582517747076025627716481452430902982656941267495423049008996871871164151182612589011587268831370383937305925613428510060353030803776946431309563428343025921364068831847826124589448296499297043580723454131509555341696118552389049110439525747566285550466908813126114129377603659709214969523128583241391057561616816982245572659880528679373848846843373844242450070065459267156633285810014190743591520602026770033960114836813415394196120021266741697735175246952578648858439647228653381327189380738051777866586955762376620476852115414697050141464585426065929715691668904619060723751365213807520664788379065371980976870201005934685326223279989401041685656178840118100582623894106551641243490313110516900290025683005611076694510759797763395239894106562130018633833604513959527566823325716876084598027597682925524671235281277315224060330660934814014255526400112371884157493880748877061250061321279470653762145606426645179657826773589780392911676135059068259503574516022386968878667371491155629167645540556493787539893831764801105645293091344520687233753607640929276255275880888976546538926062599514943011574302034476563250910660019475389358461659834255880515067265508773831945191116741699082439777537439770365619522111664641135474906079858120060575396700514064909677471812872652011358187246310905540809025396745036364302441959752714870618804349632615651330554620109525308949413393250070560519988072021533651774333193571799535466199634472691388980881010297971387139737689638854249163885527136779315711630073371595265870571281996053161867352335773693038517112024225769562866032070218066286217922055047369293539977068392142068419572016600585451685780570023887078685842051279663660391046761325141606566455999442356104005662955409688651484168177938803400983674078861310048778217149321460508265865623384179711424486217251040276218263145642680581200772868955600827646479059964909307858923670239338325739328517824977311565781320885125704217654760751737697106678264935422023503862650336232928288789887998694276695217001934771583299183758411956097795537492937717697746121944066675729999028154117273175722072666351726231347642630808073440744050667030325897188211781280011666606393599745774573681388136354571927855636963870886509711361271048454703616140544423228364068574651211861709191004452465076563021154142809725586124117358793122906031816886232210452778809302086494828955611459863720509774122706101671373993695500131894813787899327324716006237706669508195965724980784033831055742158854323810185886309886714656804103254587502450840873520419400422549905662312972344722280066438084362953182155219272689283844925969946559866186675086238517228218963884268521782089395438740396606558538887139391916787557538353579328104568015376308027638131530992047982532089220458423610097085081224084131028013732068003782036493609470032922159495260309637635467129071128680987135342855970524576119418154404374319758589096529976552142588518988438910375346787483179064980688140338922226788619154498949300138047055286901968883608916458298190233263993162206005708901831258694553425093990553653369384576439910060840144056542369857493414804056056604876960796346743110901774886555407333861240333604517999403127821184126702080297756205454540970085278447789344512245292309863886804496944111277926569553722447867072334845092541349780691763570923234993693471767535941667948386238135485027122734325419875316488714883572309959073801796214074748950747690551848723343867830502626064793937071088639839786534411352391354166766526469864094556586971460081982074224117382889215258147319745623761097670342958542918532723457339631704482596788284359801417847001479502683433992456311950708043683792941647821774063708861997555540630740674767296918701711895614167963884540539585485372552187456431709100202964443871178648709553068503729660938505321649175837762767108427836794616722385889523618451663234233930498802285738805592194589616264697688956300131870167736907780927420777329608514003178749276818063499847116349811578619171047458499563347863650718215212131511037308567082060461215739977046601323870968959042173940136327764622594060903476846194568133618195291794219493975517264546442010929607760121850702362813041053996636900405797102289489847692206160810777902655166142617104213541248387985430795706062487172116203807354140155563265301206618386910090472279793826009016091905566087844905951364108094448168692509051964773952477063703591821466566371507454758818341618632325080673813647564843877370567267101988218549308309885553246073767776567707609621564992635871368613872460144124331488201767333403921517740156995410934797749832234194570764884534555711596749550370629775247282271349640402054239549366335832030034108359437279395134926754953570396936147388901274550702909701239780766320270559333023925200543732772260351591896543143476522278817479432169869681359374413488336025947919404674333932801717783757722096312556857207575104234133756833564302559257243302652679740425982243967888541272840403550666542488244870597213066719736265186578596437338027068805110765178829101984975364604984535583182128628268672561348138204916666560798526872042797877079626642632322347881489482451966178834241502295326992758385586871477150818266069745390082450780854334757854499823137649258939360667357891970067912155310102965201194585417606235147239197482415434303235575610241326226727558079750971985563986315412095751176699858984103630558499705029177191013285410373578175794691367771974351546332999736701501614856766859576979196870529518741445306485507492144654260426052298964475940304377032997244442142353052594333093810825152541562367483850025034927852071957054848931712992028972600378322267796630078172605844478711545180348994559687290455254513065373605464172247342504418962642181408872391208405241804808973945417071408612165491331510302629234049963474679543758671955699511778593109502741603726324855476268984996698403293176459930281250121941079962288690788635009305998972714707782028597079935878072328586028754166738741335339965513871465623798284430263340215375228531880093841562360878032975370860415250039346528697508692762546207633639874266655427720189777136037434669472881478971319720405125107423194068954972321727964561031066158799878704261973197221124762724178617355764149013808282921240350640555860699588136638438201261566977981081174190575621586239243720879717407498583590030033362032227294784937046548890109696998486208075557410165432540039166914324970292605827853181685788923319378701405015633573096716334241614283952825841129834476589428789348694393979091087085172088782113080752235868965049487136942316023968362486278309066613211035383571709623146224627403724634497799020108520030921956217931142044078055703727592508965827439753418020526403401714399024138741943543814644455056843630723339478173442680095782173295776878684614322244008559790379374091528904155927554189650702437173068199462552285726384918741344058190976135890883411930842054962419290519270567609656335008405440222443762535057709149795516897769065886899147176456395788289430013213359105921613664022961586790156059464888361424097054801902774293437704612810100537457277420199540989444754641775380711961447944440353410355811644010340221837071948746157170991199807093346157376731387626164964105222009699717463169676727148889930845032488689695417494142791177163529067948080554314297297962713421211731071103723714585074364435260948181534087376199512949703766666669129895150670401673976758838582895287865085009998595455544844269585446799523770698792469384107181204681708591539315257240384328693121679517603142915205302325978573262170669351475753671871036097591785326724966142516543737936418367151478198002158551397958799075754926396558988829710750080601614365585070687678546911554594989650063105338885314194330978993825099670117135638548755842003260369492181873512451483724891304839616195784508367545556314178971104841812084410971121389969434478046218900880712937689913421506699346210148350536823411772406742295999543118484890030749396526955050072823325095381710973476176335950132486057037414916136367516856469491128847180546789075941847871142437156639452670773504824336737396426419319376793102880919331385283245127330828641521890965726401172748821254108740525428784987857485774255484542966181838433305955831250179144041393577190906086523507679525711380103679173533367839183852737377173558907899369563240995374218139651527762347287983438827454969640760538183409839072604813364921026299930883207487770674509009724944958069889299603200283839361045737609921492989318596731310346407911471058170665436469699537399734606012928646374695340271873553907906757631665306862917646262044247399758024616497061409594427426591017646039681639149960900296929270438182266307843055616776650778849008474446995876061178656079221418868965320614652450359849687185296395382165776417032062400057653855288327973153958610001737326776624703799113966169137985374952424082577104846287857335035772273851812462930930725587581780515651303767326312960514071808292738401730936066572808342832750930805775246973826327575535305797352970469580156263950220050580784220328271201308350039934009016023010281532561762982977389265579791782260280362376295900493983315555327231648856336708642380144303245342232229662389643554723355205772758399863545896370986584984346050499619453093494698533819957917502164028066009485606607945941101116533747481578636459381890114925678342688969675672263132696400921241675712493628233848520559572968914275217440936422786262600082120599374605881035066533321435258717799615403985246673988170849562457379078626590736446075560961009124952260837179408052309688762779887261006905608294105027472658938735005862419446482662815333721030218417061045219589304544180981895396274060967845691463024758798909603644494940591322064382469745039619723327964009354833994827022715484121090392239861918028799896949067966142526693155703046282795135587744538213448403030299704019404045815308306822396869882535723780278658701896333899540277256370743783444224629213335682368959101574831750309205149885868519502315343704887525077359431850006083480244027802198641091012113654731633543399526705432425010633367113219143402691190016145239912942448313221319988124708668444517792039746990246097529036873612464760131757655516116080283108469270939383248729705851800503473393289043548754079396287781365373330594343397242429182852931795982660312915212329236216569109495707850635252110535678908977799623457782106496371711473007287332138196314384461943269441105604842263849673026825018785009942523207271698654673594388311515764089847079120715264401042089369666149759852182055176139951752116209645512363253596524007259078353849892109171117706656277400509538163930762652991018494802018635000650556656148243191996911931860330240582203102421287540565223863912527274037752202905203233852241239112464032789276217622589807807815228803860593002300120047734812415428551095665295544562123788910873967325576485911734376723714365286859735699755020905110162947468068929835022718448558348356093654744520462392780090664759064376734931722272511322632071878501635882237842708359073539027107771985175738860113220926602886908491953081624373469318672424099847900988050617890754043601030868836772699610180735092184616387463791865959684575052626319882218223990253968391043287777560047064558697668738863438306891954345192226670275752955001711399155887213844819703695208370161328410633426752859970119223009441616546683496823415597896288736497628429021248165180616056081686266066254829554422307077024718840901889156230743839927889890034346952508744169250827824003446393060260299857954169356035916038856254329168232350146989170963855023034792198383611565200618046933439067592026389648233710568264898533425990475791293896205279252259931272292123595442763884903208117176572663777152107189435807417218603835726831200457438695096474026248755150281363374365764954443980824999691243669803875790008832978762882672717107129521385332118681755364044640588574466848181421954788248619371113991476270507228395844138487472586792530641471902059979312995444941871575172561383161840688646021459285399292082833183953747835921274163185021003715886340908164458545382853834601525304811692239652755636900578880289071612566310790436453148424061403444688986878026261053592413618488637188875588137079930625762658590887427486935146122728422689786186500562074908875562343784574006874360425924472699901076272464607429511824936914987996080874559273875887130774999547032210951558250685179125605969649881596356992731756840148021027281072257885068916158987793659748485854071974630616316775669058935263313167535676310860697516495197512736304112637781193051528020929994810017497444308015415622470416955342334427066655851386121889173607941717434205716273973140801389324388609811633193330672126754082506358239010719485373147024093756677093619474175490876219119337124702672337679705380874703165979462592630931415644888038746224041051529381947482684064567670670684179550561992573270551505363508376985551212529184567791985892245501759029800175997338114295774569690179298735918803942259577389233282440769725131329342784226140465340892416917090316876258696551864646001898340245014655989196666888038356158463379810802159328044157038108770334702539739741185224680056148501648541974933652065353211953511254523224040012876723596392887643122502284408827048064448335195788424995020147884096157069689736762352354742149157130776119816497102831356443651948944427405383174992901696700397553184498781743178938966316568569567972927843795312555067416746052417509557275326210818385703882040200770087229403490359733031217261124090368838037464363706442507583746399601818751380087599670861575865343531739667103937773928234018175185182148351507983442056273647538777486721937239846402291595857495434686141693241069486631144466386656476664335195425546635358014369182896592800369836016362279452179000534868988211912744179918702077809387827325861850303810931647493007699496455721809274381623690855995831819697051800397652857703327190458090182812145769798012814698977827339786974256242666664673419851174951691845625535051533502464732303164518913951909923076793986714862526724539589977426101093276965112264163641339384863550601217964878132465856545199855426233700375561606792671666478307891129427026055691270209577651251977523522241363960724967707313301276837351917425633517333240932976521074346323855222181087274246765700675185521410896493686105672649585216924314675903800475693184439709285697679649944255662595014827639967220348034803921774136171659727644363817635749619692016270950709021417626144497683581065334568948945854709614123022606029702858435350551097626256031339951261540423769281181592024359464106323839183792554003730333084264369826761895500175261208587034660646073687667815311285311602148450088200383746393875341387691241646015288710165715363850104797707629128728501917182047022698909642010422245169731017473193639914893633852440741331548997150234863753741522269508586307679074555143238028409991911302735779050342877699932757431134031897610279681987293722393763634172261720663354269709657344230131957797165041486808571150384642841241376601069697773562920077875713888278068011311099258778406515624400698769784413708628174720262346701072494783355433010411107591175764563586426037294553827278980087870058492215221456489529022869153289550230561655894727390966993088075953824093658422142990200493235875694183077615093391495224693399198830708307136521134142110217873500347349588220585079826929478156676534250003462390465554601995902443806386669591733972170158719754692360755574076797000439022037551500956321126763322753981491466300092235962007398283856211771039160962685621160376415204491146800725199791639403886718875814763896220028884272646465149598674965470256591058338420356648628057034376293297894342756615532121973122207397994663937273728206118919521325187958844480917747498222047589365609624331717725137415392437949323004559429368922854574571068464727390043333500393238814942862579158529974842211704559588785482415216510444082832541899477507809914011546789948962640224028541549705734251213054664746674211769760845548807389942153080720973625188149796595958403523300366554760935972961703266667367040012966749589040472697175459442534130736877132401983559206342893387227224634914079369183227132315479501036348493834780309833842629479151130827927446397913116214171675435320693428938424761038049153162135384386637825413620986506261513951945875737087953602201766413758505064469200848781674287363115847883611290486420134619581826268258453942595501812941252505330253988940554612539697542211724007526155025642097182794844146415172975935500582006868475190027771641957469052641719988057561854877684771599491789850039730703300403373075252482115964363255402084395219941987013722844100227215416853448035349054592662332319200542647609492890813559160406579742920017538450279131850620369959819658266811160999423008196544066696305132437882511132601751624915009750417055006130888443948338880324779679771845143804204925526128663630302935927034472680195696679518445337697822796364595680254259897532765906096130193583775838188198217107372969112511829792328237580118953940398336138036942847053606985624455263366565281106893558165385146869956048067941136010143166268220609081220437128304139798223425554310542068740775619516035563760059342505840075383430370489827356497646861296353278154988225512941871267761378015437717089478382179774133610712327142345620555919788828354164077388017333966267295186142325167577096955260560352607891390833735562498474975818796649632842229969259014309579837810971294289130507789973129472529755822502986166670130060976369766426237368630280895119278740608922713915163738787222013624386600551832644443083821932351759756592116617146770216290798505909037850671856795978148845014401078227920385320326631879050189041595876811468987376582504541337458633365550422328249398011991523409433045301498767682428373139869816895969493511793579198412148705631690058178999905019016068419255331903161423787611889024315492959521087066397274369131338289574915981282062932644549057105416150431482453235630307982892581022474427871583309282189184122826981046815640673654584629447963860706890923701014550575314637325460878720787108043942985653278372866133675205374392426437577484593908167681024231877289327370159007759400267692918765327372840676813369895293788787473662879304487088652131103437228726042511618830344568218074111508802284042597003861566444640160050269254340118139960940184796079207409575451568049578222198790546949720633930505624284161717190593473860647962889533525637526837443715158699509888417779967108670558085356507016249019030304829945080473648072409475033112786981592336445455517904411329981357789859430094702664766102038878831870695807833970711250028502451672528447031198354881120670655053309508771115004446877465871648062801919831527172209146638300819012061231611504758173001673080390909154425425085718134102586101183956525187874342779557915144320286234522009382062426407178528282449798603085049036736183969091597578048936969362570192376916678324930984039636324432102960066976340982752692830530704219892901198704401909640035216343739633109183470531773202219845324877293410607644165517016376532797656403748770027322864417565413013480935316688245126637330977450977595911561009902655621073665442266917135612910857926407611024185912001639198943976404067277944690000841507012511315742432024172019791077469119057221421746184694669073830497954376006885590027304043919541842211329028470103288707270256559968117652753454003971455624711801806766782634226105885135009014165650152681460018923933591038074947345223568282799321035728275041005631895611175580252082453952582711032160276580572255530367788736400676115393741779823143549393375825175973259211920319394874147843595144018235183855288423250589824242171595026258550802780997759538730228538892559567684663926884031891180367823704176925101707121763296973758441765038912084115584351857451923456031952510262260879902813000988929003407561585433001754374917273317857391195875197035418575072776701202889981419720208162834111645009335486153382795982829132395343521236415047050190816679440564549164911819198127490190331799596089375305788630199659848622700311504486060202733828396022763169231535523736492151406451005742471056292226816546425296975253724443632360814657354939542435487861209643691469387324446156047900151208715631212917719590137829242570568555610309258231773896275493828525516323509697451701205603273268635893536482504154304340573143671145220040407101470023699039304976437523303244542128689646250631277853138333170649586052555548549870559028555528088002291990351133500901915693751866729214366873874249786204857748436688272114805902146892554336793507372594992273627035390747704811434545924848740289654513058596731619813479153855290157615872888560551340186600039886240589380299631740437758449103032850124443672256964895237238227175854456605192980095318653448033388507137953485402234338875501819165822134526698541418907430354270605401795500660975179023428617106689134677378168528844040492128175331241665553148458283323331874135308922168857014961112814937677333977983383264249311100709746052193330259711384722782919282402836949694721299460223556624863750449951266667341848435963072562208074616703052262237417214737295827561617892267892208591842527674981974524620692384060954593406658330611173265070555036456335914893201659612080319852069178070297786839438485370455662729374509717973673163678414178090004332979690605183330397237260924609532715660700380206630463029430581049669442548864112139320653734595968302490930881033489385392914580987851157709427194008946900077790111066344118743391940100884160968169684073360945308633822383017171435253514735670880891259095456580996191098028472657699670726458430253354636826027144074902295923931250161357851491846921318501250508614463608439568300205851462320367384169723540553604600377206650123472106480288714506785449242373841190941588102257931757357739151718237370269336059361157270015585401069138883616709713325168678429370252606188257355772071656946723403561535893178030324893627092505671698809770050531951461174550243109460870950296556372500763440970575606507004401303905426704875583123336464572168770218809203923374387047976926774313218452007204250016884921028240759170776672036220018786531166897898887642157078114899644202826965382935364303957903438707067633114883841022560716669801804396702746573572178131629080211079555227411673710468096386561570176519240581886840849834231005752394530973335689690753861741995439763549477522477635777927262005191852956503939840916928195834242484524787830135566633229083141539241636940238613261049077841559838688413643009138248501283528779166281256496597322214299606071105983524538942900607747268500169255189148394621022778961290947231710985308695602648637952778264392493653389006477109101161326711573728482219345512770261334860468799918961304304578501403903972176524025157564338658344192412290618368671887649212656723686857181802544014924741103407299123470272975105714624497361848832867154401065447427464739156802367576739205180359343993403900509609076396397356412982707295742787629353990482000768360871485637471277003568949642566205229728008486530064560922618030974623662309149250382644369127939902898669271064896387003227028889615052490677883561219539049859937155503210554383667338415286457387219825301632207939103694494641878616838372075751076998168410636249022099006737641108980540533118651186235901737144775177638979285307742784591607638413575711984652131955533673946489778973638539226716908452003711859196410877003360425268984631498386207891490142749665344958572903744627618734360330432348745639678644666035461070420917922426708803271564151402181169071116626034556745006364359608481404510863263039828073526164200122303623861559421419154708108381047394012733526910442800850963054154481796858161340294965931673199445415846634664065832578602778564905023864304675306795168730139118724208793714999914817863601202310845465799496598352369415042750259154298806602174122208425658832768772634437356771480504316901193959188753782803901155817609830767874588505447108102946324513640264129542717642183339150525304449763587414431670336433169426134269137659931264242385410767248134445422938441022181306206339477360575138323659241970189395007170132438931177840535095031059408499630217900115581450363833691257678195156001338674369744308178020686686125580814732476715236365572140545891095365904399966604644800257243454292739472807404511691388297707944605068157467698277391760818942686720603405209345680892284200600562655541200936171370330059683730818586983686378493627107302927549088283393419749983037014711193404245735323975275136015324524091117206692050916744972293377557570069189075240552921013444903436638617863655204957135239647691192985582016845255974400575405261816918802564821545847623037512961412289484792673527178177870580320846017558822134573855952119430892279702171967739470422389166159577598047483863477721316536148404263309908517441571322442317120524229435469354540851515672444408017850957700128489587646699368506685960316625673630268347643694272678979464956378538162191420121928231003913580175064423936803992267344304359083558374137836303108115674282672349415264722985883484657505817048007305458726338554328510473728238639598225992879805118945065238701414462841766107444949508361666859489234280663257886643449343586993377958477865939879527671218424766551837086741056515145502943757261995430624132714708349039651185628033772519968275859756341480459441010375397242164303672543059163042648165388305437995770875507737810006583471296014112396423738969118993626122190864576348021934599541980931950378779933868290210675432303023554564274284828150637004364793238741067251394092747182694907307845532315708477868517529284480430218438612777271381251087123289408357475545130293589457416182001971909228786476444872119976997749033697811700836927128405324602497277164690873638297606598298733519514889851334648520897454627490274687545732916146287562897383516716037402231561060369811743747538949226861100769196820353909992613445640830256053348552329019679093607672100495990143567876814827830029548095557284549388153419115417953625168536444998526802325955167973063028765250182344139510517207806449833374225999749056448560328588332212863103301950409219045338690342842978513158040788739640911415849474796914842024491945895561181270777932432605905085136733900626842297264670793794369696015811700853577768863218438094889331605812577824699864639867797085747255165726447444401103159793057549680308754314771270285988318836959773242667850333027057969831056742692326051844694440586886999821112518571159332990858112421282348929028952205045508105822725720026214489264387554766149232729095259509094975980763824083315705068215566549960895713787970395796786283761675685180952691564525267177108312258173830033848181287147914204895045995945133915058611068244357472619409380535232999877958489455914918116245633670110717982883796124259052637063633315960010149944983419506927508507597725588924325876078227793154592064530247282214544078144795023207756988252228468016629960377137858966780193662535147418341621762379627048526456273847666717741157189910586740034609928380267113962281399437470076532821060522505002998493490756023302973254706805527205588716670513241583848127318319239359067711351059033106938132317513348816475792914577394939080584320013484862620912374926581030036506082950056946613689236957501466590476842825167649219269268593694839623331399396756444112233943669878837114362905106946893322506344622155515606791844724825548505849272659220932717541227407495740299576040944119770922702870071726191066639834904794651758487702017262948332387840118454503925111288518525447406392096395058384823319585032720584351753705323063687668179542430200231810290728129874412360440703044045601039595703845935033592581941218477969796715265495145416394476216236074589040074778479895486850819460271689648757084637136516609343128170455394281434811823481580773661891477604189700363933017529398517887055356433666817430587664778110988720341858102331210871551921752253171018304361629996975087178851161141700512663859021018207553890509250671744597628629200057550402368019142372929041410117195890723742340232825746361264547202042073502062005512996149858104477836625062191392817895532473904626321585906746589773877821844603966616120761729792560850839301951149561829927514417258884031064801537019915501295080934811548244407942781265375674851519204615676896090880148514029806993169488139932507670093825066572288653194210332535055304446218001824791547229286250566505330822222671824122535649938303501839468867943441912213236481629593292190087741216836889227621045556486442978302455626709629852874494654551092898422231801412414589150477806029588421964884867762720508747739413768910709832765282762113057839437761752987244487745955080940928746561184743891701800817447734819273163850998014490387374117999014371830910357940657007556598278268398687252066990691720790058239438539874346415938050518974295774602982247357560372323551754156504452734355503039147862635001902656253313968408342444817845099141892851819182596523515299499959978249960263369730215456777572435470825747368458549117916832735123146099760413911737062320254546586013739667752680188148345233601315867874715313232509288708774689090879285077770279056609279300210878571328832798973115205915262354686887986676542828988098435424225038439798979305385380649894815521346381585213258865774813695988488061190156161171494448227297430197520043247894345243751704254196376978298601514322416448448547089790589116557127354769559585780867466401978662600055644501881546220942065255016447086458632961346610542566184007174548577475871033864707438468741256216226869204800558163652526951149883612261243090076829752231012671306752906781809146951589631813907426943215080535903622801140077165537339022093173012034632381818445020753790293350910241570003189455896165774253566770773021690036971408305350790278652910628717989236177050924651872768876589126690563397889373924374806525172957024341597611849465514783813818352761717542251103434153393086011446790926483157190990606353446179217094500892679772554394660657097057199982039168757082635057252246865087227924538703540863888815115966528052631231862416913525771883071484263979844311313802817409197509975988337555877473992431293860567616130100063989707174268255916576045616503114890392186501693293281589796550619311596303466635593318816539242326932959298559209178101634483829347773307783834038897033093656259199756598340310860505144115898448846765908078740231132794821926562582170834635075585277553923172352882644451761199553660725002237159208644157442060866942153649731057661903073804119362647069170634827340767062280622784851716463211779597024871999801529735468504455749982229958703770362255332574523708254119580004773913743980964189595667805438321228585429306745457762299875739182388741604302056428061883656407982652288817373331385706904837851681066293555091966999817956350276796912865348730413227858399637057888102919352016863309901143606676409409028926977243145724078407359372705106159954374395869830012566283218969569402815888959805859459160600028502591897585066663541676504883265379609165761244238413144995518992918833329617692660409919917507628493643799555642460992458870390347627461449570309446215602423877002716070925665717946201206824432710929465048606741310902510545735693098277686189957323184429957041841329072207387295039352842164532172400620601797331811821072142284438368093562683921447758112768690104253919932887500147990521779573887026266115854273148687068101412957183409785383088884575681130976860936982787312573766911723044004773210373548641505684544611743619335455217528792829722438954798302106136234459869200539026203747005433631180280438187928993221269536273184413941249416719815271610795645224973122446643879340666788130067701468577569002676303697253506531802220981461743744132923181408472422434231099142368317728160248496350547759964717314693942520547039579552476483817044283051573976332802385023209954403135346128631809466737875904634513167422808936736672715309435593008782632613511215551650604437155469481198355101132840812803812333231029423982474580216992785827603809572097603778450745404228962337179928582789656814614881548077101642272488105281747389620634064705131892168782376906137136206899989343287890968766937435678621188631932689491875700503466877775067896894659448529932079624215923455614362678765087600293444056024783754182814007104182991683295221378065487971818165306897429312430894222092954844593539091985440668448724342450986912868534965024641406897635946944114568527981139559645857909829732627796180933292436491001318589712245106050047414941873303252305158204946556818144375654709543923019335564510654066229725391756999332130816399917119587541446577576990206529531408375308586232270676302517107343237624056837605489943494247692597047753877944640245344858100662728494540983677766112827404586016541075897639430827973919560015605597621703659810163879265694175755186385234708521114910225901945699217057819395917506901633929742674169002358006544451663895803840797284190039723848205747475647065750711884521467918265416250160470221347523068067843417525223110264879987956152202383101462937401450876693653685257183959852044294540702577240227504285736603952936335727679590774462028985348185351157598905397224881266610528708976709694359183668146455516896341615123037000506704821037363736419361542472314442229037715141441222614147745295820720781653089775129131366059060379527743652608281293018270140549502928015434814051987253572483314350805221218673652949150562943951624292297594857984226453149909065340292228408932093271539650933718984519491100335629644321119710631295838978924761721207754953352567405323024256733473883934717953515090644126387063280386987972722442535598417605223255864347946028855246665022861339483605594094960728177321626653498496343462258376329176131385867714951950953316410938687660822898195005715660307486598542402440203768408642049227280170506624003550184009027993498131607449636944108524281111693121257892039419350100231708172797766325761601203782984761353521839082871877739406339917462852495155503461524010103201364153609586763809595534318549439154073603116435836033521505081543266331711064617241111812671466594670486932189127119592300852755159379149885042173787940074647607686887312218834791041613433795301799246861748425554922842337618250688352290143783200143557846859601498926360289937574335655987277231615360363284837199332416939863855370442790475658384385404694103904738347993679689106033512876992387359293483980345601670822661925375385319245475570797356725204499759263167747096892589796097156674908459024281509334524874550923999493238038788902737399309709632953020237199313242322291460519457509058598331264346770225397030155131142719143808902722778803384548722641570987604473963737074122891440244274541017500619857417296969389431459070941019566722208374084929113561586714523082230951728001347616360275698885954751261778812471544213379547596491376334927552807397645212427900763054260178712462829460748651161867125499637764274259920482639009122549546522914049172782406893365459405906300373190438100206304127518884234139545139685492959430127538262053800852344098834014279877975967258274528825970364057690283135254203341564463947892146572152958511388063720867001637394739146744949440779724706715219130512552663345934766669218590022607253719625595365727357540847720408711222919105990438359492263435110131863698878771071957051537452653622804685519667038355007142164608255931651974758852325544557864122112305495057173114933911160498517572179231155761049975956659414865776807668274437870283168710686537080644897786540198898151532588780214244684766826241311425070789247536802225161079891114289273933160193593474209382051755970089886764020926610592951219729884383721309854342848431077724271166324679129421884197794311774057381231071692313668879904482939466609278346931937369532736429206405648133337833537441824583090063767780764034954144864826897324882220373121726189443735309926547558787552168074253478978538208843636723208496872319760449726565343294158073303565159235809343196743524026799250949603077003410915377753167790271182245121921381978553417836368302812994068351482889162922907083012583457287285388323629293561520298230765944682318299941561604317100304399528919171292624320443043817708530483241195404295276177305455305248697176687684667566099114603060979057957085296315905230653976523924539076118538001905212574734625771337658666397445330559749918566759958409214321251642605090635164065886673925064394301910744194720988740408092663024260668904691252883369734107869433127312009144872114515031233298965169488910501705553276935091486810785139727517731511056749846926855877692137071635808147937221170702505334602344600230601233431143196932450933483536763158670938626926629302222043739790024760844124559649376959653330869168599735791395291696041852316409173321409796463395404312591948846915262905581454420860088460610912400756199579967317589961144651490307405083459474844660341918028406954821478519047265944803792311390510304767386096284104490578273230108658666079261273272231141346095331878378632615940674646268526150053858118745632261686954059237102926577747600543506972902758664499766573426010660952007263023839192703301888233839534577320454630877587180404654263628991741614518528774080917208382226246300049286221464714945748814716032316311405634414602722650182629306120432904316714407096968713671262543510948694384926045068142881826375816305649806827642639016706877307729144966701918044681760770586444465021598506913394451383749340825855867670203271127944866672292195750207164919175108225297380939134610587696052900106698409608568813552577896769851439404724968830568605329891477677151304397418689760810100147347077607278050095504652010987727220336799651836838094932601395096018403027713673926143564598042979888089266890231693873186862075727093195099530552388815219910376839552973763951221627392623176689676701586256327484631343814197483241852181486017125254557050288833398858389131876329900123355268652719554993822983469075178936906464795995224132599470400032990428465280161570056466268975158915308936969095756911773183934052624312670868810716048147982020658295120763861948992684827912243684652761737672420089138629779775976174372264744313558071166838585665147790245165342730269038359753629735572230970104376224690171525071753809321062139061937977741279553373047730749845428725894404755842070107793278250664072355443746727255288306795574983142407953979036963939859339719782279532626165632825598003147646335243256165806371484049055542585084396393910245420911172780428113184003862300628464226451194562246928363415109272439949476587435807199181135100456098161286744596944007693832832524915188580189388156573409864753890367472177604519775701807978831134836321356309482726180924125406244358619973236389873956481116875011210569180679440857377153429614630678776071363091965819133082623384664040551145156662905198164675042886128393353501318798834353557816569653149160229168809857116581533768818774561890735342347809907868967586882431912644359755446584373159878630600943612076102698191620254655628459569258805176638918643649601048095930510340685855170074417685195616605928305882109450405278768764105736092166130044198873111596033340244499104624204156466867023549826362893472406490516845338242092454871133606995649290513725720399531849701821834412478572991755445118654599685777301466752081399248472638625105758828757025370903231733499473644170205754854662926223465649541174415314654797487474384542805387901180023706864710137330437271208670266841191673495822414453143259521056430164127569973917876663244291013976906631381869715163664559084890816977751792497949279121086404358222049606137939326511271629812074896130888414260924866346939936267156009749336245247978485269978195609198985420911802514075192628034211426894430233066259246853495596503035986290080142263660189733031211730526653260676156386042601345743167472024954156879701759486333538747424707674779968046262514183233574309138792434302018171271802632047193358704869777796918007760644957007643846661314006754731381025515388720168393423183521075600414168347763784545714246031826384158561337806218411820778679617678910954165200971638300078021429236374395469783833040549645000294989577910510228173638725720161901077181849793247058077046402045126064967868024923709228565579009424908990749336024781547458171834124084611261747615134446573624065040309389931225154614628570058564345951031192779157056068700903788113741569530445028885888704335353958485570808565791098185482698346128791553410497846147478436850811318334728263954069759168479235536474709879372569196590078629332249037988102747447579579756649083668263101979183664674112143466031743715539271224288329428993177827240965346975362807802428209110379588734794093083961896304502725199651362995633441527087880336939996286472999494935429017639974021334040944158059284194189134066175110855142792726538607436152503570694182495791781392896289110349984887986406363504589260514172019399639418321542786688431269071104034822853376381729068496069734503817869587067448467521999305975252499205724729461183746191690790291668523545964558009142494182173371643700146224166334080583771229707278638454618965636241343929403600100662623174105182300049449045912376353056061845587816392236499905582812001399299849206782816868822085351089103281517459217814749409817019758373472278971644047286109250165915803232052437048247906055828192683548107343630610574574526366157788913431987740786006292815288005833597742098458034030458261280091865485915444104240570221135949326615124373337395429749197169054768475667064595652557983710376470563055492427810320518914565878326596471905071222577734277387180929214769456173013352008517382139014353707191926337195830661507506249122758476670563944425196581628228421917758551331594781448857109261122994121033005678036918792034765237660811194561852148147990532256220440513898049109547093607750096009496491626329586213188409035573692045940159076517095237163237370628698324026994125498865143206587797869078590511506289796114565049251563111018328395994356312315822660359034779060800378714713808472626691139344355085842423698930162254747967595937569219017600432203745485856935262711076479017283133282412202546535933886693465606894142183005195406124476740220897552619871655416368357070186214589142234820181034909268351605022013952430896952347339458536462269953312786560491412715744962653580945918772357259022482651598556387746825138813537892088619586331456980282426769878031249856134586483209256008238094737368308516229680694627076960350860350231719115357148331806818681833702247244386423109671335327963107171206138701142127497182240545229257071095035587439961414555023080578647536540940891961902173842060264891462486753198729297157125396473118561799196872108106003787005008877416723483177037306091055384757516401177853020071898748529932372615836127607403245918517329110396071110089982349951188891497403406009000869647018783833495766958172162563930113813660940987892888908018456150707428038643604796221381354090172122155986567835423001995334721294341023503244057362287590684802249110345865907547756897057122213823566930264511121266008180357513098734861481917030283237393387615254364033536204868494049892574640831622763341472991829825366097001657002865150267367045736223319282050753726543016526937510114275597504968533290899488120105809160625094054345921648658300299906844736366941568860157316738958009951178958709793341791635089025011002914274511854925186755290124625698974171023428725125589750339330421109281405061458204909479169106472926848813273653097860156659243170802398276875734858350213576309851994351352652600080019645121339153816423387818059969308010836596732185115644118214761624091092748716390878406829715079897140459783407790159199776819021453901154018495735981762802993201490967984124474995149076530926656235937735258601669789891139612673207781942517501433112265455534270588021247961484449579526733547128087674661909728672284274899175032149727655460428534750719895440459386364893685491245538951691682872385386442396337444592512984055432615670197748701637750359316063697766174417094466551871629242631891135640020137557345706998398842348238136975101691197609924375444072502462202439413807734599213831174875531618581307503256537740727512865678107604596774585227026393521640706422439725546625069065075482307786475404721972153877782097946714872589597340141838084638490308680263900271728201933869733556635344758348714736792491335570334482470156504446237299246155116252604647761921150070959378030693963927225532766810986387085561606532779692672511296981185039557458842373328722177553682306161080772752718941718049543796133990055926919800534337834803408029856957283689582320724869287355195589792207013266687346854769106101877934539033819382967516021811941105969104270647051414635747621927778212123298792394123647420017049953015279904604508535524977524355698499558142384928378527066693757186274765520185667494459571451832055090412796810850557209339521588433891505302235944953218804200151190081674327059785237700558584030802822666634180028304946055734192622955114111285796260366769371553943525355342276214618456630007337917885301375054411257803607267610361617565696936113101449814442710156670576894877030810168992464920352732202926384498305862154953175130985649432000377552854993790900953335371465474864281497008882728216676712124207401757098699612149713917970819063527957363989978338320356736695141424421037316373831147532936496292368848133355888281417731839193990373967897129854520323200386426341632272210965539144675286196454812849650545113198191647743521564434689661603742653116810627474394767000025450723691542161815239283814832373711268148302594420233894158880378483949070110478284365559894450405685924724510157143188899183757648845604773408338561614506045213297634377987820107769677120167379410903720680352893932168205133580608984061916211046707260719601973708947557482247203411287158292210339159839148911878863500078623768990546361722319527638932593146038717718948048232722311428688298651549081602313977036157819903619068167346590096571502910178883622732440942639938374864032513737631265947261984663845085965012374664055954808058006434448147626891473525634151611484567691950396839454778327140825218949206705787934567494485047438452305018807267561925412487925300274982593706186359184904395410503364605908992812079100289395807621885690782480932771364807835114370094039685187147306385386132624155453682460733069406446260542346574483022658554231611923113160944844797652609239332409803968285731851744156460691679889840553657133247134635411225078015780440241473823720659541961818408254126344602431715447530056062505712681444253050784257547649725798308201098782952835396341714982503084278775698021439991000152069369448609767061612431435210956411797588756343612272291511177514841172323345732636677502185584768502611692090865693453459213287863839788816384017781079014109558813704881056265206604726408166277628547909998195855706097893563853768722758781543551946000971198119882473258251013665432146507922421905456864666491644985333675993081323568121403454150301498081531205740885745233599556295567158385654901889383736365668903495914853718878598964072324851589805224357340554711581534630276643959157179559816192204990091258400534978973329601024020825466816339768135371843763667094546270670564361624062842716030894785107670594576717187017157508113380170098538496520846779006150938281705980966718833610153858393110428969715019926094990994102576036011021565900554379969092468263059057031791964742739701072223267443415080982311110130304016479232532286680328615740467480149317879691398025039669126735561610445462348758321358442230037296543665826858093613194243740244725228967159126302374018815285852777139170550219376346424394035526838627490627716402538893770826978565693629954791001099943987067942050947828852049994010388063920385986834891786995307923513084228929956166002933602058342864234362621035822386436933523760693106811245943513751021637174698318405157561217626978403059234135184586261129450081149014289313591908086999886559529914434272291895793707517458528581252906271085360951789553701586619815485361659199731470801325965453995218624780530499968830069359728003943555633956145399836259662160196857804017391189644246211205444695598280815265446111413996596743644660572509249387545024793862898985971045581344741551602120877068342785606440896690128944779097657520296723781260186754812485464249656899721857211662164781860147930003352789245008777200010459971668703796231795857203270629151373039687695160340314686066172595276189250992525190422052652426819184187354873656310129450812176058476362287210775348647733152349464184417380768871799370057080317112850172459746571408663474881484808188074233271564227909525187278681069430506415564187439233659925517013559714728175399353828861588039461958775699289712052564017303379445454660524554066100544138693357299066744501214144757906587276695188569259649122818127984596265344688353610721294371935756106529657052222945572100726275759820300547384110258277829762902792836360582679657751537030941771020951916527422059844494564571234561611796311436256539778628857230921426227347171631386787838153243610462163480916694752533383227311247959727355594558396928434118703435713123961754254626298913806489368028955020481589448394327160750895839745928143995206495428459457236828029048185181636319309293856792764155511653112237841885569515315691389269896251824243130033123909732652938001357937498605982866965225319438433957603050235516610064329516720885904664007513946804966079381584740778707515904838568888604133884390559051846400052111395031692953684975421339896421097136735132912934769001101298661692674488849675168833073088026548181308459031265140183448677106952608423511738879540494353536716995904529030839392716925765653805534458676296661544400549806704061487036473946669543334708202429443274409520815308165058803572131608572491058503228624809764001314075739210797425988272759072466799211818036516932242721064492099411889494119397784818590695155077784251875816021014194841205628012594055667994303323023162887382508697100596847754440482451287472922669126359460466718434199846279676142018758349844587079814541401389570852735163587292583114958659266228278285205973439446716676565598340698117783567043527514521507884037444420704770223503693089974901533759921489735377718711326790954636050558451637516649839557340266127253734599387963351545972757615064110283767384856279531540409002643083717065072871330361928680990920067042747337819566643508873895199723062568796038737174829933439234647435604005128648802761008301970922324750068336764028309139895962139376830541168669116792700392269573271266542869693199922725646423363972347845546652813146763463236173686307930167816316602208715119642707946837975156078521588733410447454083221005915408787002138905974186982255675241640383407661514618913921106849543933015763370179632041313557030110974140723617845405986973518886211548468748566160435743339994163869236893379250953544162723438948423233147900373169428219953498193733809223301998695512502911158728173392741688093847433656020286996772267536979934797867894670320489292877852689224509849552642809906280432698697765627019094432294590924601685624295533529113119750192805241413000368394770641551239996787429438565125890731620556851649736378309408298298134943855710321555220282517501046326314713148960936477561722656319904526043961472281235806851213996188899147328038762612832459911237875372079926957937537961789953951813589100801312592731763574654204866476903458390867048221136999505090257475280378939625015302317637793587614430986256430518500439007959410629506299866791090660245157881038555605450350586334730663152005503590708696675865297709843054405425147060907928930802481432848805113814224504588036133896341782800980376218085795535053382320467786991160890527631365527225439321563368610701516329322795801910919578441525752219482761366683420141151499735927000069844105671070047644669614609384321347198665787959777438970315217154424996022705021071005436598883430712869230488665530846622602644980328049404344018486097365571439104166548563308557275556695491216924031570932984787707580146892336421868714508382788650024481541356098924438085367092012865343366222696407682520687265359616851475579317141657721084614586221778745976165945663958311312327819891836533929032816203655418143031946217514766456356540176619700265961079855408202595748693707374576492204790805078994892719161317235911497542161523811534494811489606656478904692974889995719798710308585296160008568949277371967718226225886937484669486710491652130385068353816283452758240951278066791596423437888894581192797723091106914525741548838863899365457269460084110207050919524161755250493695088257934275581461898702786766567444681695410636081952437378163083049185801856423204766919896214016499524437921084920965406114275150349645977056785164286928874071274689406139161547739702966469126713850811101584550591012900816287001090708752061642632363582077512581334709230542534695908023653346924604738612264428992798212830208897737211963632331124695979714472241729654589372000984426086021565172067486110665710284215861749611728156101962501015386201816149931966944823882575295441655587491493290746746079157793478787479625116730363051243480563894398574113367286313981578663100800672790722181981374381829389865313735169923571901137316458421499158545438333370369179035327132587109730941629145363366266973893588424795448920431900275946823419457395983097383999203898467513239592904430519648802029867171231009395497526744089267964371791331439081315228760545939993194804574887175823856708052432731881338861136781124560771410735908446348051694410246985329480994951177564015771486343085827852010118484058182478519360115064130707081509056397127621310262262582438202622914206689050873609294654545929735010061920933031809191958829331701305448332483199321209993353568803839025462693122401481144545448647625047194945332562346491119708135701090573041217547243559299559954215588933369876324198204054199188059239498361661635056934408946940901358292821156928215685446722687925754688248476134889555403787352842139220252121540541952774700407254855790795626123388158321502364546096541246674125049971063962916186786324161745419733431482885287338708634080993966058876823509382884304897941500275551599496647994223100439612826436523744860570284665861694560967530071216093855192379303684589568108393554845531578306238271504332097722181770053138431882187980953751149793206888906879800216638531032037697143056031138757751490290212895496031161950537971073235454743230876265669607900293493288417081270873985761382551949211291325682837278940523952765122893090909516458571969010544386302671478601343402754349396512637474625593530968809644886866402028479997545277412606711386910955362044722064138623775810112852469357442517217146002348249226166415162472837823323596715036591953991781951798255785741228792260968918633824964237674881634935015826037557315879559556896980053465659931871978248037827855811953898132091938800263717181235024637811067220382481299121054244554483402133975450119435116990393813701784382997474956920324293565452224538176615487377393816780760008264103816225427706068049529293385425286228278047394665015927487600586987938780656972634528297623070151967994492582524818823376369124622918598137268220075108837461427381351405514801040345363115308126976217433738384479525407324434348062884173125618866412820206494333360073269133411597901722822263469279063568703540500071355055918570082185190458652140263471049056619350116719571825702337793611320318804540882676295594660156609448284597025092205289877369314959636364684459980358301710526659798742076872232804372216188609202711488344037347723211881824571241506332810673641911680153597409005066652049698639863209216034232662708651692414952813699413601542925681534674523257411602156253816273926397021994163001844385681774289745115196945461947367674537782491649303879580164421753844558420823224122189167273454587394627395701978599833032023320699721759321785674098260620055843588244702395311797710857142406291143760607584641036400859835049265406870414663187995159253596478908535961153564297227606596839172851892030678667708794055902943052604675172949005861742941305499381360475598427334717888874200149731284208609841034268232205783415783371524681976225928919030423830994720968862831242529155269528692289308661703540341676284560454868358258310084865179483850679828072632844946290728480795765949066130696637086339922478125333498485194514113578996169370380687218784933477708163458148786242257726835652014070726748012255640895070426176650383771103474184610344992591898214794939208723071786149266896597941532212210430177951276823498189161115222011992790910181725695348635765997299771843333498314959656551700820929688730976405579202249441651300710377893797143411221665988688009438057350882103081647346688243626218048785254349515905349157465975138370100280009923581413950490022482037624437219777694571905588346301932270871699265451783101376157293276611848653291593807642675005409982132988192961721237192105852144312875589597322466666045181188403815097403980219721081580875260536889782218338884896211284116381966740658550284180551469466043483161918559029545497526389666509772913159498496505638067118904247946849578981004759513624514611579412447096898159884847195423247198256826147456506785679224939483295345265140647762424267221553033866220085355634620859838756466013235686758628865481358581357455776582017236914956236389427445237921162493670944248121685012225085425936545130664692132986950287364684146261018750721383867977068522092199213891279219900870794552352323205532738830134470845210603754802807787686591114916453341429845805601762211616537569327796296861062112914328663956608723045492343860315076497359481501561378695842031236485169687996898432017929707015987353741391589297894969192914599731554188308520254275176022402948033618474329260052158683380227957017025630449316779649123453330636816670747371475624536374429605103722518851933704143984100933408539149511203955598259529342625418020850572167393425155009665000564901209047081119592293902970123308051097136084544297343074428943470090394117102422351334296911190757306217465962189936374299223011210477638677430143963520465797977931667999023339310834678231543494348286495880134009338143225568987951658731571061333951942963764917607596467555384503963979904367991515232321863678542848947914053238101201106808264885296633842262815647914377450617726834215562189985235280690118442362398346171239575788702017413238732085735087121881765790167818311750277420029491784746299353917200291498399798869047359505767018713406284659390343628181470009907881002899381129937565756399131764904258401217059161062152486517972037741878565743693417210612185554620968753305933861826550723816351875128815447556030199380009951323702899402885826764670691425677131187851434466909078334189356690206191490469120431806476743965562933417545764763300776546536640199525106112917114993776452463535500111073258639671683285540326473131963864702439592234389632119128922634914145730699503656282865583564408254371392263830083251739742208861930508213726323812796775075914922512018784162876139465617365470455877841459116652835358440181029316620645751311054101764901027988704999419486102384121657528696685922518955879778897114091736670630725154534039508367320050218915680546943287641205381134950162027023838262524560287541165150192049862335155044902947567396596136158598920046589880632935985924478587392492172153349737485670165505276098525521286067007063935145247544212873914962629323910411788130298316428299061415815221068884340890447221584930856338764434202301933584324222484367025564717703664228055079656933496444085384289016488838997031840077503262160692056057181961238246263334755922714147434935336444989689598895213728345244177592506125899927114922776408241042537043776523178657742116500912295631652341742036224377214947632987872857614302119017179315157463229336685072308131695578086550964089219098345054475710337338714551832269702414885245682996216499605842035814448547609096207734386891381245852701875819308792812974259289702954929474197112279360097243835444621427195283422024084751433599617880312840194479138279658881904243356520641187520407303569841970550819857814466243355786005817747482240340512470272122156982907564125377416782138290130783894061031220733324615204904743213327118506737713073903454955151259192983467355402343145845724259153724053591204928743275227807013121979809085915802981469005075925572603533961253638127967550331068012454098550842434345419857919630134978764186741574957003006963508707929606825904191832339147813607272588670295088183202487515214428120585786563960194011202026034390026444283918553415007476149490811339970690422579228322702333523062532853785733417978717011873417767437407313905597578785877401165107872468306997329093438222746889835510312706227259040075309183892941755289953696200749690437430925166047170246411509106711323129095342237309154738905553640259866945416954772854468513152135441407460060955189938814735022366917325059308318111381810133543190876491058685443354578043653023208228440294116968933675083726773082134029136817178751555349383832820845546823006461992041539030100151408445505760997688143179358354384373539623859306359490739708494262996026295365925362717464260818754177434016102985764447003136253370886943985798990705506712096194053492199912580740222125623707622425544623428794141493402870740613248387646929009069525330252909506803506952007436400479056102965132678644127453724041740557756934303030354675564933833217579390719964355338556625322904966689283985628671553960613498358135390665132655620362692361285426042322053656999689986787083454966339980370275300621741058888102673636936422198802209399233819381018888894794540522550903535728153848256481915976447416521602463404059171495931623788274448880322390741846311467595134137445063510508745066934070735840432462645465227530548652786145949862200217715449871644663607749585861397441260940862995469235192977284305838074655324032827461443191104945190968265508095022079242154718856768417180455851664103465872915223708356063578261471375703450182713336630251995090397755822561488636611203833465117987923156725302704636775820840122309774098213909775348712178872067565469847730740962924184097025366870077536670277250338102071815814611340094766494697056808479575280982763526818087543074874180910109298161462292226452685026659245701902028728316203379417085445709763359757967171462778152643151319652909420062833828970409585666210654282564056507914982788733900225136931793762067065312176370118061208844270414700209754850922401710895363276483209981865190787489076434784198416821142046766740310516012185165385727135555881757887871422185421389092577603026655798684838913370725626022461298845514989695101980267734761968657525866719216552405739156027982020113285229425569748203960332871803729461356683693597989544975412935020573508491378842282855233114045960080283143100951735197800251810415762487851732077182079170455248829765353335514336053489231423940338324450287035632838419614304311318010560495237276204094368479348749349857281195130457168774036378099127558973436734421724160711013711730475132504973330440344271174818228806423531219552829541448015236614463846308080283480527932908255074523459346705115878561434719884796102304545374404265331681294802604246204025012826698324926990644618360058649586085182086766441638323606434316578320550995816390634497922783323739607193028188776704671605107926980999224071863166034118892899524253539170323647962413218994233195779536462521520461124479024844021277011209693186383995276022928032007739583720916137097042685206841583514051398090688334082732470270582786047311262054184363694190952319568660085266830003842141140286878973008280648701938125988637263014877768975634823795611137636404053139286883536492369409368588729100462255009289459483194552361976042018226917957248224167912960448842311638921249889142702047451381357484144850867121739404238933510957774297164100074768365897489701066613913881949737978577254319966949935577256122253340624704248240113331935016892388019613372172741471722697018146723675077156906215653443775170353897633728971276134043772401478358668393382899135376203415100596503612955805533733625132454445651223826369059545244845494683535311068442568363528398153340905151869204182810116645859697771117027547447445575079794358824202621448926838974768578756065135857362532429235607361716089152251289836490231330932616652662499429380666380989491097905953983674366927592956945093583735286701014942848844425505325831463548978719308943281540361205419279544876817140059804049014194252238808228694614343022482016982346661787026526972839252370025462475313727478304075616809445092596114080142491023490413946640829834217994845397180716298479485692371856029700670651256545412205031339920527012004435995087251436186572945633250110569254913736827525064291973532087494877093443475409415884841615084333593547184339984784411603490925238940166162956591821766722876133020426774620337529706607462434439211875703161271555735757177831250912883100333316442406279263094990548522344742672557415387886640255339753908623738213724908079874052750949060784911310526328432927287001528902640613911978065408639512418382046966031559029276793475343665837342399210440865142295787411740056489044823851057603817312472752690709207628420956555613740426470672733880130626585028924904992982357311150062046962418306744797711609646732812056113465149724501709609646307347728276436284029136875997379434084672606721053179385805334800519579390903388330300636910785756014652553020576768183182122272428022512202598802803594612323055400853633113014825983869198128793014066099912736725404911080944802298910630305517418203752070456287870009615858189273227304267395028967200070824676271304308047137508950902049624701612837010187973714545087634804326127252768235259017950267252015743790495537128403486514748152748775704120906262442581372522859792169780603296116130383330326970850263009862598078031665856562855826978753454200152436244779752797144597736427998907602647034925260611912576353259840797914989219307327694217255976747139256317378241784323245323444250407485610436222850108799020393320566172767756529591696531580552906057693228158242031469095708944064843410167511879895686974964816235975002217492605533287564714048483937413327591054513216400980740858397027036733580093825569742913102986602385417503671068472244239439910777367367584540688688464104942972063637615495470691300531116526876092617252134274660672950379621369869109064113268482204970246291791429611898105328374390752950554791088214703318050301269534210994012545239290776205127556190497900622775399338602846948792469308957719192965550434189435376208965148174404942393074647534288006585292460035868170215276621255989425357110061179914244325328710550588885853979406538084901169068502968146047398215942058074352059573437740769475135912924822332752559587255474972079275455621672837562283728394988167074007116948320688514729186794057032318892424357009619174696252982696551984341842114694724062930405849773164353770810213973492826495260291086869323456070400452988485380836323709193892421463619903176798150286329601830793954360942817591954916724172939621106204002835292066393457524412025547089570130127894545763827751193107660977922137851180417146810200691360204388777483986284113387648531342989711905138448999903565685746486908703639024636149498609754615311497494002580258477604122857467076131789530229982539713114190672018806782811793710291761271161095889869398392509660324095824984481244347007290254982274714258687397731497310817897747933979785080144488221208290871858917249156167555100546514635595787894826083078380133136186660099855271874218888139612828388273686258695543024154929501733844251758125747910187295321667442419524813999078012074660188794909421938978442110208271881322160849897000466169953305923649331577497695126652027821296212219560524554608911081478757087826791963796792764248218983639152251153004777539474882236765344837599614238495626663187957894672907044939941183920736389346968861877533773677793192313467740599854184999353431265794160159669536288645258199371846468013844725285054838022463862067024043008955766440682136572422502351982611081008620285066996295522168976436266264115302708680315071558849885945548121443562864939471669279390503185787160970914283395178458751455035822198547090197899657892932260217486204083097489393172854472176405806030320811065929552984551431031061581436510469385974666168031015332609339999397005456924566367237291588412494317268382125473142149254544514102290767448168164258698658137567678606138688659160859595834648228119223849082497483598782910209985350515956956211498788977707200881182352196304568316176587617725196865174005101333755514544908251090792196616562068513826900487669178927794488812774898992310816114878345960065098013784749429048666580150610831053365423332820899943545637900340028799533487720094363760982653526907473813018406183096227527985349777805562391001105426691097711187062633133356219744295185718082293906505695662584530235952493047785380042006804784901269974375380531516832723920818642145265769002515688392307273607524076946700415474233017526145329068836546815321470637072923226063048562292787263217504364156801721768257839243496556630568751057167289308050068604379744601609017078346721229016738194412845273365910709163322435062651486058876085802609056087575336397908034469742644767354514676654019218139246971236944556946296960248450106134762906644596140955977550477309712277606829894612610668055636798266891347534706804236408649308881164044986424158949356415485800711231054135483840528045385773725255850101411047525344804966737323567034106289062717527634268240993806079200317628731894969639599668137307438164843269918105452069247532959793255190688953963444115938183548256365095687395556700823862032360111532247586298578748042246728064805293234507695459068249588717991509768280972800907274106975548847241673350914898732455141469803038692744791521367662109180441152526916649014185837624913595758959379704574417605131255702695279915329500617615390695309975446890112194928935662473115942516847852577914324885020930999602123365636975049476867036345614466569529283645945945419248114070266229937923757852655340852767398785469160206608142737280473049138562789794190667931756242059562236591580633835660012730749427876777850862433780115422345372498170571046330130096339151643589799219389254385352468300868984265720438573436498489634006896774878982175694321581635527006093771272849082589731332654840780098584002777038552995459214577728324900626535324455987390118059519776161456208875133277874149702437356253270516897270550183013952139669985019672807489373593266158409593883348929031684379434757394293106658093403433569263039197423686687836133055198774667555077743956587172653736222826153831541738419403001315100465797343799959280224822606504011718145177836902765858673409237375074441732037806387223010574821736694541628229726369391965750916269108737057005180269795456408137011537105307945560697230284311128875008400040610988963954544275778568410639587803637671801772111951232043852006646013188533650028160089419998948031146666854320661399343433511329892057466866347311387077627410251099719358288975872026336088369203084938844679897342209646085541903478565270685134465596802897808900410199885369130336584322045076285368427637174795527537404948629985696220512408945133355075910353380598611921002899761738381930351710229953526246427943713764727953530534888602130371214482684015187139250659180916927941902439697918950007497883938456681676836329924958782510911286355214886669206119047481120851030192495694353021247423166368988008947601350646852696535168442694439163846568130182934554430245273552444858732465481320512235352340725584725412004393150924803395643094085743907225494399658651628234187284814974604483268180860095172237263283068015918217240588833954215199489215130533246432416012524872395530594089681544078923908980121785316238689491470783144168909666659866911156920106803115691001224476995625232684804282556325811978264358043173936227224882451686236267029457439797498775908716426014592378024337186742265706445494982453691898931625697379784173681240705328922847262763142400616629788411178022385509781303243414902789732860559321681589781835444331888539029245775800532750219677065958654477017879841409727274026310609782109378112334448452720506809193987742788701027158653353832376178217357180322634198513712778240397733669036888896497619869955355117802408878286923700692468086428481444153147323011734673436793985565116533629694169688860740138348600616619240436298632669004311078820041946250043880923698240451082018741714546939406076372499563033719575465283481400120189131864859105159020595701530788182100300086865320127009790557946217366768261624168183991626033448432925060860752539299158399524242683982674660063270408468622026628633453481911106259439347339462409522315043273380903407480542477658070746471770666785176745096088575086927350363019895092633999946666443294040438994602136087411972845176393661744279761995582155714276253135069866174828057271964647690223436809760570592204866475645640395414207367745188041048384422807104677357748854298775789138159564891414539552833307504405794855407866672480533648745620563221061327146747623860153588242755426618714428071849930806118246202282400489171909745760155944592515441254635632163293624657490347812588474973920657893229005069261081465143181801309275588514694828199265066875435651208681508149767851745992897413973954496747823894526519093015593655461363436342084770613917308910039621461917037387016009642348060933381725492253187778368250045511101023150776371377162525296349350173864625338981236943918415107867815055731374720381248273393457397239782221096127295532594791225436835651884744297213567955969229832134550444964869659730987256996320305066873329828697781327690138519816419871454419706728746555781748067803120092326067182606876713439086215173785578071437466620766349409103268809449906021970914668049320042102165256923239803388119137266020923284734712864480848010691429962302067016599957910884756956008706257487130990227457676213438770207530711330206254527077772451621324584566761301714431784940981632069133334535375927606933512212158315092027574833772403715463281362240238703176798722478701016819800180811184079586226106906913859661370294470462814791810260708207286704236382780816028120323265544045885872791619739693002788326844588731472547259610806700712491956598029542870807895904048998098147414713920271668409311428951750665394144162295956863108943177184990673669511742997660515646029343197156865254172596170595030974505497832851198235053278325494263212027649807816638926538495162352071245922163067921839559105598501084758974286695786194875984454333775686281963232480509329194495747766930350279283533617332783079051352305437842130030119582478628346772180977685213932289216201848066937326931984573642997000358228959467776464006402969615001572641817617833856880523634872780629572174585416296344534792145388625480494938680798400912319570832765714297996651506986328344023451591011570845873630026971085216667661485552829115250795511583749545610787940823431305015548157035417694669969401385404152116792289811147189027166612552768290695300911323255063534120469334943115496371334524368885621207224299693370984378627511319175686798240486448171879190912462441697200881738657332676166497064191651974301345647370843084187984998811608545526693932111112085154843169886653079209603577867740047904299897760451300690445596013710607710162486226872618275125586118453041263994695843965691432645899705008387462266607607461710760573247473161351595569625156601164592094117355909348656700343110081199897856649514823383730614045751099262760051769621501640448207427595909824257332461232109463515056451641601853117479373569924548725377697304631088947187301798949487277602479730788047821816004392614617941638358238086333769271313329386131061175749028245695150781908953040106852622565766394230132796632752576652058922863605705874504207229747764935580225118361316121733980982058676452844642801581696439524135842581855951614592371749431456010749716066501770928616690259280913202822570214582367540929312487146443254519674007861680143224844647653987786330875639613939354168116604625815443830042724784475942737486296544325004312829645248530341462780929678696181821872423530719322771435072239587188049355942988605843749113631893530336942338894673782090033243546825006500168196063842219771930163103912445279685929440013861881383669965824392523632490128298100481655003263040273296944298710092605602293096358363476667011977804459363564651444544065502156764136788723995202514721076468282692509279021363728595086646806889073499114590022610527554152590450020278109424611192669454136766070595827552705274803887163792560706270592369543629236748342464196446514357974212565118545364774129831201532488966846811345148011360948246505771340372531335621263505184325172049604122017189515136760867726120471963708866820635272116932592123410294295040402123253327816477366251111506493057935841013043925851497750372097345778550449015937961422110233866355489393987081252732372139760429982452095046192879418894346271658487598913647824284614776496951411423208723726852952125891934273043022681114665228444066797418098920043057244858348022286900622886508957453106162766232031503914771538207834322929535387792077811654689085255686425282319716724785684337154453133756771443739762721941488143403146519142782944440453982358729044861883884960221687130283846676094794648976079813308479594414256367540552346349730065124112883406895614902745556259127592064585544117018125093151063244785583320318593096083240173729534748798130049283941254464360293596165144802249225822360116490589661110158537156571573345436215677063121260193447099895088892037066554410489732096769141350749298094718246505435168547251567363789318983955052158554953331669165816335978385238150681975083101441557017603686432850065806697528749692287759635336428908615788288867899975586243144464966222330083156847889493182729217011362653503933444307317052743685487886421694802194886924232862309016791276693109760751154520920398363246246429530614003713149857307874406365790377720462997075364616520941150998557860289104216409159522368605062152130769716537008620176357563603337581349907876135209905211519586377839715689853247682675769852676828369885784686414426970104497593247666413399885133261792335477876863398824674145334126545467001349445089081006656560725615301736774122264269057434390425168051555613262315576916058218943362015907066472295704268997137839587447625265864999949788512219145806178998150115138485509186282726466842125968901722756455950158852490674468036464201703803710077535256101041207993950100327386462259061995713742414852362154015936202955944041101192173058475153710733590192788928192089372379519711723360305253034976837253911404011176995906931133756135263640182574362694329408547098840437229663191215266465221993076988712387943299513063911448199590868005809635321196396013067926571207957394352008137661160386057359217262672579129421314909021035535595093421082279453928825195725207506595415112254518192668061549063007666521158876042201039074865645946245939030958736503058803108100089075091518380787046030567383601836754792683334582388592418572303486429879486891619498360825522964825188201437888690047786450776333349871940649354040841124499462407418969375898280196222748454356535462242200443535477204990338195101325990031562944722618138829460781057423583286989786146372682634800970129822025932389596693632146503351329542731457927599231964265383385153605443414058407024138386720806832387652909168307549460800380202543892038684704524700094316848631342113678853158565591872494217503720806788498261068469053273974681605572470007177186845097599703021940094914289190685663390417899691332802634798550859424333034368921875306033449212633075948674525684979634244381316784068891805574847959927537169013819554715012525318750369476437419371932743319464397900643168358282772391343034021121309024408923657262924526291070700648008406950018529891636941290742358899304777427829131692680954444353617524405176772693384720315206933920193791590543397886604435760985915761295652577269728373634497567717901194027614893260036747397515359550558376119431884987949701576807175178831432017258471913292677194902706045791182912426100104633014486627692779490692773114578763242225324616812435688391429321351838896396838726765943918339245660479005592479408811256381396335154105423353139378318861348586838627892365965497375001909264834883871293953023801555178271172070616212040159234730084307621961939820315946739849571182568806251118888213387335445236516637137265996924037647644823611749073857477845967381393573604064049450627878384858905464183922505224145987995030167723674931116108613992528786655034401981785915408147525310028613187074210663248030405807552153205093446964104763797377687942002346876921542765928702336959285368115873381383686351064818035563989591606145785392479583169773041943350176937679280187839845854395002882243209966766037684755540889460647939470032852276715730936950847774421137867322424588889932658486417002033222226462751895530409800634566630683487381979603052879290434149179599996553622838011949284465167723921489216942803503754232211241916846955499327299075410081734326039828424880832431693025217052525728115268729460856294071079751799659992564010355058800327530121181306700378555387608205737405392889756352533822203868132240532500988303424438746673881911496206960792639188417788018251907130069474464539475307125225801312988538695034074793289851025151557733984360210081625402197957143335791535354899865573981687351801916847298711912286816654049409023009211080977237469325810302147999843193632842425777629896318607955565982852247736363850897244383895767814181803760634269759021058231606515978553642005297175836942525788147192680870950800617902744014309460356083541756408807199368214388172786389795653261744276835723320180457031622324513228101016521031134069957158236389344519016808176842770830927305627123643997419422553792719065534087601652625769244449066379668679944582816050963440623028271068666342908299497737135878795646610190021633640014658910197575825099034113987150660397988172026852380975232284715001177322815778695818400502749522885155758094611886481239738503153566116156052043542468531008622777914421059706609943847050666722683715930700507954407844028586064398000034367323921987636631305917511713431011769102795872328449398330382838213603323760354369794016254487300832868462828796065726094825084268264295747186055673853237012835738288695741478521446531694466918721400246050644759359475432729052388931584764784029656226715791283783970227127850435857643329300604051441684499012767412648261794176334421503577457047828228410455342636560522576065675966938840342659424935578560608801905178795561595917265922521940718698170964312076564689571862567114484821771092949082524898294388434398031913575436340368128492055601535102948965200040835065867825667091097903000366131030819943341851420754337410476928621531461866532197897764574976459677149153375889807703689149784037507267934332370960533714694274382997622459992348382721871843751367699343049265054706267345051102569494222160037163557917256632084449655131737844240105847971569501646933151312924211228308652310338029114395112551330477637576722984715294668260419165342047170256781626146620547652685242605697290371061637546277171226375150100791515580346619515067466798367681999192266017395079281088228963732738443959711195725168670380522912667782559125099576996539203215150264180897670668968485966021718544781783546987048444108938884965909524976963731608138582261578232973088091287378217381343649661752479070406778097662580862267019585541842026161349436212368474428638505497888499050690215631361397461871836513390417156263893393928839069347522152301663239599680166070598643196972618607005179194389928882864145554263054579250287569745951467855912496694071912266177893570577880840809176140968044815075977336104324840872758957381258533496088339645917307388709320067374098893002497508054577815848930382424505855215376237944759998683569604306303572717407477441908674222065377942624529586961196932381158508245809124783807557378668125140859294201570163610883643953515446752897066047105295138841665816114742060469370020052472042443431155042595665974341638704149529314956493895124866347676788239765105795159146133281670382641050701544108123825529347300079453104350142566678775954373765347793089370523325007223620828886157140579614787254266712153463133315664253132776491873169961876622181209887530228111110236322516949869976210293437108171079222604615552281918847463504360035480242417936897448511697622621258920823725732689202639601384058024392030593147967842300579910635929729960373018972377600452066564201499783748350990498465586966054194441494866124429386102001845924408752440913925512426806527390966779583079208025845457343885710789731273185265067333952181459660662429523613715990870614126374237564775834389467206245297138629676433365216689146650208070799724824901025914281134716543685723657756301722067595750735997775413969522822819883307937257897431890689388357742297185467858095167945019363029580642279308834621083808385345539508880169625260033777477311118587689326775242660940625651127346047969774018711457866740564558955018545147750009796709772357315836744168054192080240919109906732124726056711660118019617714462051798583934133438740692725200348848044842973116764623281527391564372859393793163766675153078966708526529372950171522170664595383006209693969033843479680253347724946428664888311653059861578994175569166290408811891095934672081050700918352892958051883063504755257383009811640323047704690363317021602578679987025219893187642210458320612961367481103333535087297166498458892197641585657920782552402587831519339442990833276570451634390432531737771743124707588899529685393000919238635969113374770129886266016953739185001408328161272671368119131056364673281839065565149527788026998817209312749632684691970698974818775923601941402074196389976043767200941578195925804950304535339598357281760435322244763108151454145542123436364122197212588449924018218764786697361916130554209498704873980514533508905459192818821230980193070097786169564793171777847690329981319559892747280642805557262916026797869891580884987895588504154498468174935529425662650843324289831694305471957259998136773234229632817758319890477842834797178462076802362465697347116392375940322234680564969892877167111738345357322628964069886375264433235535603969685645963720723575089605778613742570561676874181539869835080052061351437306037440748356444238931460862867252265673368937911851348582374844459586836019957446999843040295347611706027619893760755571678214609856193239002324917572720166460479259225223566066565430095684832185033174250192913734226083202300788155653366449825410077376139246032398848335666650651127365777286019571023240422539204482829473710674120342936978282838212089353605636239790803765547314186469518334804200506312996567398868386969539382516440267408538404103327656435394808119792153981898073855034099988443443893677567056265267401685395078462155769910908104004370932105905797897845974918701634001142489507943410066432173031797771036779087450889161983899896000871175621846131394017751459203205526395913605633894123238459512521887239654530408289482368121730761906143126342573779133620869445658514690311004471529811599347447370339357004315603477595457685120238196605833482151657879847176354161565698731900817995692568775304283763732558774762395967513785425346384112581762464828813173660528260038819770428672758089358024891850299578171612387028812797523677892519282995605320956239011756558494992729429542190356858356338663358390777787526667134845849216868960670688842304200505382512044298969352079429273516834028703550341157764749793214336998103459120206849826266686181221437108121329851803075165438727140055436806038729305667152279273777341135373657777902205862359347380321657647230287346863382669683774204593920761934181647787649904274431609696109037948024963966737484975747576617498567526310230781820757154689791016127582598565476068066334055450878295729177140646546139079342956518210202760498283786660142166344296243625601515749012653127503985866988457756711007284239337257097317678428178348058409604915355672411876851955646824421385980445917983658704743751163800557991004992643735315215945208915393142979125746181910593852728098888153157885898722883398231205744453331736260619183667272983078272878097436026357069247201473390449416418237754683803083019208099544212292875303884192070366665979671791857804126963217656094597668695583545648447147196057398578986792953120238475621505088349716987833088896928966737904446677889238921784220193056396832462363155872561025555183460890106893549899494763617193907661606922645840046340427710989425481731325932083023991855627363191178273494663388528837264372537350726326925337186555309926352507456809874962270589506605994181175470584955320410936924534966457219138564191020904503089218384392474225334970106143273268915302287158787192512877322375235963923029542811193598900268020109830789322005244911690073618480497937799094685843747750478391470277951255521414172464764670603270341345937175252453156195306453634625110652397146788079142066469941817086210640045108636695394156259013087546794346769983002653936426655585019606149854402994433177931858863413522051896461048231105579370195550998736474921418723242548366305195713652674264188484950770879745549047894865939140525628557616723571421410896900087900878572888166289947019495754593071559180705968526235834159702095744507616060091436205918974305700250304564470520860358506703125763027716795161260134824350861852861116599089422690688497309574585856119859456838159816928035334825232007566960475454105597309088541787718196220933867236753945897244729219376179594732630959248555033978380306463751048196123981605872668127700382354883174833149256789077875193032276364701838068156168243926556036408719956350053214026196164880273116734437052136329525913912765011898878800347629484792777906121741471128524252448888315672056973871382128882824634016590072531442318993873423217509091922053727961829280105549115571344374463065943147942508958763510115233387046794362438056052797688817679366157282666225303625831814255205137090979651291572346627488504895098625418412035221778491355670912338394903635659856445690307974962705303276030671857222770878775674691142422878177212225958466795693582666740230698027650337377234270268205524810225789088903332318047985559323030100293088457465297095927886567086481883107581077587677595413539491967844723376183592322085978625638054434196982640921427940183155146070566906542554372169396757501301900920076925679910592458246244539418199676695261451623099926096271596586244841811833518594031344154978535742210819997357889000497772469797889806483028131759159122454529255759313112609646366313038506959370495173457987080388559351202327351953015199269293881557404252430937334148485440149650357460080523353466508429565181144926005838163997905066557729089319698412172781986555592287317050023769721949668123213932450394727074835781226052163262827285935311721534275900604433845387212993186293410819271691919245569072838089243555847458077399615554727747714765944542852264974633530210678309698688768265969055444742658334837622665463197465990277399015040993575331385662794717691822943906720426436210731014511440933445800515678372159538158942183490461120572762180924803670886873687514803989194133391410276820538317132371366827834023788213128959008411337901850226818710675533871692600671259491669411179547618216373924899917314670156146962884863526840222814850108729603196501832919589156345308401809136945413834002021236051242567889335307097836211386495933707241791512928883954316021784331020979026864276440303865301661874969446425900008620974176097696129203810624145016192401421793701082117990993267143859357100251909301152342546483533813174640251221726530807667374069315298699519638446512519175804849805785292527082177639092672845280260240417495339260027928079777140102496685903187385349284946373972313131784327850021142758380226226373959150093102414596780124900222731897784169340601636332181129366141090235835933471718356399417307628728886101845632184574529596993704932218789312252027864089127026096752924173622435374779490651514830126155621659625527765319662689278057613510330728135081716823842400087307695218428793477316293314545099779164783569551237610625092694669567230820229235243113334700886280137062168827704825847986432264474940666296541623541909891996424735701948603821523907697564739635025728365852226708238705808023773027712370570036762897448897783500544610291606356185048835368551778466614774298855572930472995110574954838492020627327012503940043308575413874109751178109217764533807875088235598419957149152372586747154797268974618908356871525536664448183070720228740906970411293618817235544439968686340012581428269272462851022753139932826217032494109203403406583937725794831648902750683429272470394953643921914907535444140252657988952652112705696948319422936868561984501094934521138466293795894688208485444077443183060313984999148817128328217833003482446974895550576305774293542975220584917925273771362706211689757826194160254460101998430439946710490522579574907172855414337738248640298146116607742991772138730844713232769991469636824130083936366477897673830736644422858485714649615414908219395690942636655019293687510667231222705544703055911926712253709034951352129185625212361122255010161389677107560207830468311463200509915831434158021353277389757195692852885546176731898438434032864195482966366438429837106025449545387054164796496445883566601384465714025135388705298441393823555046960063175059076443048533440930328165601792928721329727969571796974875479957146226498769359809587078681628957102342490671954092804803858624841007452606144363155470581263263320892951888890536487716861849770382672383488085793759895531803138101549243196468540802452558809459686945902691548235417077265196648655477727221766631183838319794166622111283878398409338160159900257011651232771159970093210074301848026803756125665702928771895849774865273925648910968145399120311305803011121341024147718196358573559916574927296022312177900678172254444172036594964201051646196253456989501226501918879046099739463445061769955272531353886504828450378173922590209241413883694216721176645181222898783724750165614979145233739329996577750803626753589353171711805253690274761728776565177450767672069970448884439855713871166713430297653847057115279716674365819581118700491047591670114664428019765721851657898757194146120467813231305241459572638775047286924195172773382687942669242023442834713821520934539435175038122974817005329882773557286863272334352797840020003981375997143667795307843230040085803537809934915730920003411478574561375133230275115041766151841199483570166284819257759704838221667973930129538809797477476708605361185353395724728975087455880043286709158191922937574221022736350058959689565486878335906172037676071269170956642139450570134543674303610414327054433524013319549314548531576261308080479881907133617108499939745280386266163030982694203802853083514244443223464254069757470942940101375859975069691522176219675823118283967444018306203727636323171908436640999915178540238331486582280932664415752279290754913551636151305220000344748332431403855655848214451680381304619208131866441856782118744160635259367221452419335398479288293532423943182757558130410713865492817377455008647237702419353827467718312325277724945336969058905235004885011159255027266998188580318445263552541152296751065186388418783059755308264034561129270872945097784192017520503105306070969638179603482392059210658389406136300683554378366436960207108686697412418884013954363251842792183302942425060488673975183175741773009082694202546471720223363499663667664354839016676840701487522649007835773653192263118134382260800122617710332187452705000023779109445664563915719218093106468605884919419368184852694323395078711640676440799619574691430561696027592479606941240608180310117060296045339424548568187918195025615711064211646408620190162185061085949667867228926895331103508906735148732632104469155848394574674027722923262627288621837519618027891593197080126197207082104454058000174836019876511088027277276949618265418602827667384670734279798940325628743679869797314475798091058992751794670862578239585710036100345397590205209264409365786291916248109331852044856467653776472505269499184977964979649760789740728001218489735146298044038208281066549053418923953335515823062145148432119324716315946655458267177782815434960678164345873358796150382212422075749824565685372489211320199358855357245065758571288246120759406073536075085493652137886325207866109495135341337196080111870627304430552204877683295413364770344490671955211929782988865525415892496474115019826140960321393539215615059083877675915918561622685564939986216729021547645994041915745109153370434831229550416119908288973734970055017925348638803522022474272245645649814911122516226025818397871322455983337004533538530052103897045180357450737130405880452547575710335926046139903684165976938939283854834807162010697511942631585928898382787151278570530425550605092446064151398611505470797610059399664526142832463951700449463281516733323816912399167397774937362802598022516618353296685226957413321928434722404364830767174928810648284939448836583602699270688876492372534989607241423629607233878949106556802181508238991456907851415173508603288669518883900148442881065446647863812515474974982695163779015859382556903003622190886026342711944735921033222744217086909673104081719683498314329198799761754747030950550290198159612525955895173235244658697833569084085627999521896403604878103384124263492137841804263229125307338224005674316226521118486537917540313897416267758346000925023338581536125300401251340108342233054244429803200088913093059699216908478321301554191817163904304868823983216853861819521073966581178699083691019243073693236687905973645179696848942636958664201908758109301686908479716577648064321719974228405284023637045015511472012979292926911070470039890571351492521894892542044859547854934427306323390097369976791622422867687032401409833040138319283517881896268093546119061602261797466039845737421604049523085396071783557614857046837009521785913952670863754372563095489786611599307258309092955945464932286963923489362509062851730055438322439140449061475495107440028748662136055538948427067863179508172751781518709999866183174519007222590924391642562978782857003284408297383240305087624134511954148290617177405672798858097687841043117030657265669583807970182794500295202114619304846805776619986021325254260045371060389280328401465894586325630076512252535495417572618656172338627868027289036588295130722469778646942081492075228935198051852965982686921219651671208075193779281130719486937188249290292032662129885882070161163015313166480895234677391336304352437637561415258134156256830913387457057548717467918885899548947741504222823176742584210238330386256786808773553392163475100700715409301673325035691537130190383851530815701948893651896085075386675101048348392651723442074182989737581598794419302571814364056826852313714372654322148546060506741207491351313090193208059259445112307520237168696054547939448430168968283113705826860842569225242677194269982853799688775572619575309484491999031371762999343231983420013424391379216014346742394463728512522466639782906616980228529312540961769781277133854708978712324922264566221437652468857866739536298391548864495439951806615842842840623614289580237131367748377727931013035826259207404243086194725314956283218608908563379167170335992101744280831241325530827185156055720339520009737364731670789776699187378250948427703648071998758463685158168015811196146384281435055857426508632229965714031399039498281529559505833887514495534668920749207333950788133501417803257720285261674378332368487054536158557761679870040827313758951746301474042232718067367931276555379764609831366623544888750850822170699637825460454441471974599801098914927719586950670157837617713667902772656942436084880750769478763782069212238008447491093954362639733527940028978267287966247479447733503778336597895151000485177368435615839875595687378216743709907362099428943020361855938659736011996505402312097661585009948908336642723456946046445964106318176820708852839519689391658883856319854467453271647162515835419896264709634174416743389217207040058066700536268153972036452776958027939145924696332554292477900003734093443304282179072294506011822874527863606183133064669766617441321500947136148075463038524614351897372297541398702274203989272122643627212025351751302568335741638179180384930424708522560754090057900517126714372001665620627191723708523986213389931072252185028173212456847696694971485482328561793681861212264456812713753897104498722862061519506903168389318633236579574615040177645547770752698999751270335222259631644943854713832915533939336173598847110223539279865190162229691341531012049617777877814198744970001892541158729770116824637798976081093713133181554156297089459357867558812917750853384189054204569830988372264554445869051677678200855774132018521583152885427794619753955613992062843354958890530846980753510904813636570863178717848149872984531073718952096842787021262952767747045592644792477199065346274039393956186720655515288473492038439505042709685448224751229195847372281203643979211372452928650990066875992091154677370758794935417982017177757199225236643175933149296552477467928943708932726829130691477799647323581530472000248651274201569231791144955268786770347591135390438154907666214535585616557812821727537480960851822739564212801865289317858793348569068649258812993269255751567332419712228567981485637470927388273245948533849045630244739778202653089997740074509932660640301377824019085340876614195281117145759758617538561574473000394884977230371351805967962913258582037370689493991102206238849392395432287279201483565167376891616207744512035028711054831757684397225802185881455414645323814724060754466693431494803140809874528516486758842584787018886581788580084585470703767104226084785080089790753205528184393163983521978874133893240916187545657236067924518058832502000379484098170650968436824644848829083955614917614334123360866227388481646101876607245885680617092639026264665427456033782248499855200729613209422580406939224470065608251932694819505130173587745971069877795519269955046250258766002842757779127821670854979532855287324518289003081072922049503266623403441527262847279487817896013240933387768334769199253602411219595016436504557549498938652473789747752486010863772633659965655296288522228626039047714436498092677995330103532544111155271886601309390037832176110979347946042045619140713587440576250894010751230685816534178403502438529654362754603036208612781894836556756108461570035198444148135494275276405811292536299020793786277795993648104935734822798870392793798419662040199328507447319420900702320624548839327587484040349341975023146349420492072639414732683235683625519327837320034421114991275060054606991355149165729323788224518129243089891013276246523863986577662282300277435207186898459365629034725687607311644964774814569857152002969516891115119613715854108496486077788523694893400018963909817114012161373656622131928735880272981408029992147320698387964512753887357650298763056590913032819807288745980444366149669143305028225545735612582958856046894019798859918852862246969270236901929738923459004410346474526008413883737822187830518730517521040074979620742884674430396401607762676356232937646411801235148071090941270478470389098980179570752333725502974944105432828370092467338523769794954181349199075948474334383120920718907703126697428853763010886041147038922417151214121931687032802680948520868242813871717918338032795662211911117197671253223657832826258324269562366047818375197052932016780878674348049917546685165016617687753416835117633584418507938879400159472047341890876777275409362710592334416320073590961842781917076345695362352664454570493698648182452901334776336234409026701708469434608352564557674561633953922130337363815896223225436558274287847682249367420429975672538233505239756111169673607469744140557841795922220706520321379056765577068085822865943749192914251370652936877380748366363673164363611927275905732175159686907211695639306281839136876622322982840817708121749807475547518333010460517893670227851379890163428895766312414589178415163940434746087273949881578028157863221624356169216053295603038623121730240913950891591041811489398111134305395705579077766662148638865201561388321669039261068880594873760510214169757570650444739979281730355788214931760839461119142296242036322641170004652411276666959282567462549592897724166742705164230120157289694382342515179151787419322976229229887950325410930348888398006155959733982305948972784297342365584060561573773482641915648752921063677463892863275140862690613774961685264006996315629625410543391976633136318142430766529860717332744578622201851476153838948539529912045706064008152018376051776923581722662847964620732981305191091697834794263005705390160352245715256258345655355766485399886873250480396189107027180258439303856587845787020746464180357749866108597849421045913609517000601640217383899562349999624462451467082638551708372245256563752831243788209761836674311148066094666529213827393933022561617380716597282889078694344786884073139873491449514887776078737063820793576877645454498708868204602568701075100118944991837136086653825632818942264364285616514370288890712186836319798482697277837115230367207846361271952950305663287827542125202603426152216291929009402391950644521357467363440140143775564437721315449394977256027295566422271284694740871734305355439537198090717184463565236096465524547064291842676492361575795265008720214330104417939120319143982297020712953844585330706816873610246383372844668455824261980325674616241734951112984442228051383332465400590854190584325089493346814495878382006243352515629155393089374844890176390186172280749396224105945837680959461112556517094233771464376932333402026549936405336007766940618758400529288793154719761299356655483506958202209209095687458267540209454058976408834856557766320280691974484217579342898408643730581395491256747481566186572902153195321466191482194181499004784431516137822892647935393916547927426360220223083734947779534371773300754452936352049503754451411014951055988019622440886644062499330550273395831015923181967371800143640829748641159110220253047481884358512537222417147246808860741201747239850090922418948086269620015159933383010109149728257266723168780393091996847324216571047502097359286900907958949208539665779906317181408160823922921425181101517335740273532627006218161420697841651125646930107322340198238237173610561863885282346848284456820536094534429436369262949352121293357470548958171513976251272290847975827363484809795856070131937313126866456090135075703031716556705543384437467931452669264609461907678453567367262144365552991251730459135216169853548058860564035510927953229496045889692951998395751594037192376244475774560345488226225930493151040646592287797940471630493771098662549261033518955678801415703293072519852290401691017850910755526741892014757788631752328732758627249006630970650919776501416067876355210383119569276516878450268184758569482488658218313277716211911056479768498257870066466322245815380822409666182154234575853467661334759182234635291431363989707546308677103401819323347347657609518159587447009003615551730029394702259861566313722294827170030099878829969139100132287356416771569565424359655393691159088435202733099807151270904851153052674670912926342396239072923274180914077635539858144105664001160723259469170220620386915330591317864066796226009162403848766974694995968074931412825748662261027689607512624826183988007621955965754434088036062024258036323498399353533045947632411271409656925889743925539338195395406301169311078609406827061944361306854754169243499572411724083751998423039876030629757303062553816498763890415279122078360074676142524939793505229462417545918735285137195598753361093145855343483712655504001290030446719621074939740123619595671495573720151268177699676392436135678536659066289701942952683224889710541913479460733567922947525421191492165869791973782841113087212491912201708408684510301522586465691356837056684252883704439951224667870045687711287943566499253281100390021134032265961389568111492441714670838466376090469888291259665301765933849213201548947381070356068611443125080331613805513560743401364746710448557700755083558172177799739187428190151438327664469926299002741877748574703283071515860185996328363377080026884675184853917083681289386980678356731827164602081727517629800717133677224115217445753137383951019563989815212906951123175683417684900679461414672813115429671860167730372820732729670232100354399622900882333115478617992028697962856132635732130572534483409621152583825264673817895777347549422082934408512589114732487997398195895885952591429272071092429499862203918886613274790356630727328026743291236133541615343421995913602360600023815508229075900085258838870461517935606465061995838239789632889348311602943271503595496573700439956771346073469623436864362196485382318558133503133562536580292331384011283834706589131229718462774151171542917860258988683415546204135489921027945728768305631992886757673487466287008681055439506277915246748110078474493459104788584038676991623080705423399461905711239965975821757866893688335057466110808955718801274914464523688068533756362252477951413075468629302818681470618355812328954845288019742559161574402829152262586448934525789803319811693190126779676218921196386284503955769412605778124036523077692522843421516160063421456027874357871078695800529102341268623914729274179223999728763398732944504401974049182381201459612180752320365414459024991799272479873265522074949945811242669134898276289850621841619271410045953233413672246260204363793487922600691984908972715037530571488028828685332976738164370877962835468185622208747098368215145493355595986792520679569473058993873607562007633585770070597544359479613826803289913299982402920950227588316074675307227320108553653184371429955057075199322711385510771356575492513879349452652140833247608355492281534126431128898885881643401350147051025718015084530321442055619648809089977043080681041142040305293086101676939016859557951100560850506529158461408262239621854048052863006318445241859008910690695071663357052510148954654326281159244829626404799658430795161863376265243097890417106308822473288358636218706949066064455107756251146547505989279390774254123748016260412848740652980597430214806372677179772783073579363016779704013363849448319527059838433643567451826531016987216494236415457809254256000088309097577238379685074943718375215056496303256336646866655466208823401360840151028461164460393083758193513740372795424685716321103101567989671304824134637423203623173722379722347050405426701416804676071245638126479569064297478336877346578336417140214783609524124582254562911100840401289668870535391902315829535239976863054606773569131465746533514902016788695401559191349063241646784757815342260916532726346165368955956814953450553577350154112795096698761059623985472269205104313023921017701409276072208579878261399436569376272165875144339617719405776904903513027326175575999722376032515173502867425395250835617384392334035940368230473242611190369515219110032630758436259960009902941194717380437149473081027764162138749788109143881629844006100753256429138466433796453705586108935076904693504995790750885516614171630529142892548924322469636333795136207936855646819991611395778434765552824493502573907150954855169748207239350429816130000411343017016157700812253270181601846982865392012869159881504485602306647648315015445640612347933589462789179898208333035709054102779718149353857362908080348870899035833479501510283884285393428727011494178733136759259456487624119905756029031269367428705352150321533984029386399475963367714326597340113394413943270720832609950338507128967735828256553241879681191638203222445101303671775488326119727702842926995191613321180758259615777914492872672399482678325608195833433795409299113819202686739680775825381453466526144580821976941349416711295508296629749405460860857944059637924343447602257661810494814206547043402356004779291021738877834736895561828053716343880108899005413756190327120917207782364468680831270359448638243944646170652121679114731362076185994386665041280723572449257019349747661267710233489734804822429316477800704132806848395068386688710266335453003821141389790332634226811142381302259408042967456713959397850328908193275951381779995385465383383950125107803563695810758780981286142377718644111040107970806760951767890122562200199156034197094762510990157076083967921642451631169876071366364407682088688060316581494823530895755297598847500757253616123571685321628551687279495854101027231836395291888879545513492280762527069013121185818588160405657703937245491908480736639427912076374780575928454045416579311997188270549946572862183131348909632292709027814957273150462560395170187565124486787295474985214439359306997598668122480464250505744196210335954172852621375200890671452253618089954121175367350565595807903125697336493104595715145472238894215507374784472012775058860667240750974932519360170002112301744788307214258068288390981501155820769033350444541348569167667245506324039096301635661761372804438613339149765913779995762770530141728679829560067806015590227835982413232381000381905245238515530344522897475241093809001245219230764465387805474039117235084697753021482893890912210414494793020342135442580241013512605030824577928507104555919684352478836226321305396311003344766235356457405906287906422653353145259195917300246121106264734292409118679038642878772433431376082857504072984010137745242934815846126308501149106308167589148262743089051201902915827060984544058465657213165181135596086581418680257958337607873543742294725343187616438204077454907017081822767594325993393475259768013316976999559371012019621466273612837844688319247621592797582192031790083267180712168379948703122164309798866956559390077540860327397150786481189209961646172550081954848483131444838146686252401352638182699622421410368098015948252530264948128011258124800855875239745394059491014945222961493980812454158902183074765415237445755530246114334396784387414509207899235444076308486060458238849915371433437187540470918419322659588527900278829283720972917303306255364351108943185818841521450713509466947645038915584509944721084995754495272869621227570388529409018233848905760773399207925188455614470910987042609984577596563712458701784285496014569614289322967116924945813887595652790193939775315943167683779910588956371742462348874095574546147456647544797146712330515169562359931606860655457321973086557239159823123171483088899381996312120551429485123612723842075136752761573232071236181498200396254565660120976025060598084607827488466779397621890908700253672652646748191357132143361395227708448349860512264770051826874728390874614470654893377922123294645102030853094569880987849641524355580098075279813198457579316551527463016966770207000240225311622152573585316242459956258831706034160620639337389868340054444343101341109394833081779719359924654472967528150927301629850603520078170459599773588529028597608691809926118233106942349547776573810083463142075744472946460121897608706993306718446036644729511703344344987186609544657697889875188079676608191984452398376756741578149543583611024369475470646952722002155854209185964394900351034316604948708713231742177976829068012423422049921659246011262740695206471092183021672062987132766760803806470834691454840034452950408629393996706636509324499423009298628210630369224909399462985466057357132697037876408427624199834102427263035083327500143308156021525273552370325690392381649349951458601435594077470755338750905943009249778531396650948161889960700718743420352713937016609289340832326648505972231423138869893062587742617060315279320033841966141808301377756671846203183000653889701485614841512254275400126403769327418493657871167461477494370224358809182754494009216870346608781269055144121942425441336792629622058855662708476465305444861166802119042390372761957770286401085813255292078302515626854614279920115047720703833933715690817658870566116810116034903016632123954028699130696967617915087910103385264399790334910878109159138467425722910325979081318235288358807049162090046542923426575035602974816604530730660768220894016867145180422372003251866115123050005764120413284660376692155828064864341714942307097197773122034810967102792991034737890721096794828963940829639394360847544255095826163594286179229533327144597118794211025004686824929015048005731282033115710630762778189249740511850348474147912270266139951910973703885198727686055342238145679029378541553458867624794127214821400766134417845285597737279310679539137846163078601851375785912480378587142301780382893193901012724289200190493224576407715932476581752006696198229463625144216908781457201289547221844161622230692438040996399937647878034546467195433766817814808416976139821335749461883315740474548187929197882904390899142341327025724486260371544447861811875192927175571305516858917302443892933316648293220473180908551790319772110108045820454078568997156798607161159809333802463565476197237592303949160991118288340781918802509042367469604251478475671223450760540979519709426608506932237418425605523035302717466561802006802641508447959409817448581334600663791056461086994618644802800285129456206760116917683085035966893475906422561724043923589346021066143735788420852187137162161202288613354894589122976571194130076321228835926174295317024496467585405088540807628785042545130191565044522472676770750812104060937703318121687622379393489192754232342027769075076639660070640020963595368554763975857425393536640811313909851407370183092099220920783601491455988904004113337090142584799827496916010029867235468174689961277960775810332005879753967117116516231246903730443193783307606506180149559987077220122370514735989554168653842912327271853983753994278759621373438222882067588867400576108360522968967673834680532385829732967659773991094944143308517911217369829398006304811312894035815412931925070104671634688115468673423633608888788822328715638777433820837585219238389488088236233424567528953320010599669238813198607929978210472996113919004549339629795506745568542274481595595883319337945722426534702813349118622882397958613521113778288022902556749328119305966456418633142806400806601301665563758708806706259774819333100844643133639141905938448933719136209153353338379174625847697788649186149126952697649098529130192031964014206668853524325073801998902806976563219064135563051711071284190570223818843663313198094122243667057996067041087314601090169702812960374361174353111060654765379249809772257021035864704372046936584502103639016841848064657665453297488102392215197094249546708220353219826326233643335672680171161520252847755737197016916871511242768816057317719903543387548786221443970766962312750928626613445283231731965993872455494184831221928336281372303608315527848558523150982161905840328240364887850715646116396308425985593743635973221138374108005988771658937477740175784554802374748066887743752786073598421575255248935574646034127626533005419049362305940225030960825102730495659406762647986930922607296405639586720522910132459726561721086720392929315834010613525836643252001114562977946087053728266779177681402802907873773276467709110790553181316618321718257775442331561010291197601347289038530057722804821382061850853041476589175577469631238607871974863178345915171919667525686950099019286568688700869641130506517829656354173746031125243920796488265431043803648439045182793541989552441776516404462532616601736718270619169186874236981470040894821995409848022066526286935144759626362828655951745309614819733828732592948774815521874445597063823551087952171661951178775532502396111379009443013714485306873328039862416246860565795105230596531750095470672899397250982995517503688437627581009885089648372505787788009077066194661321951394388280353181506737404169536849626515008430024349024112735200954345175086099639072243554362726782220366987927643418861495541300093875581989038879228545339719518101403566186970915908859509238991460521029450361658542694628746658376389716188659344635779126743058257186282007861289065289740045128994203863119977010268737269533528228989911121587463872960569930120350921028114521246793532147809095964614497505312324296409402993380960563300932030559820499078567046907824186747406314529906715971579620173131108213928188519959589047688749492324533556755716380029961004439736236790460213084140656953992359435804671885279537802869905231529014570564030686411564297702304988010363165790896192427496540439585833156921171785020566000464719581872106721608862741756992693451805097182168729802983608263931928942886824869182213175635953255220716694798826311807504529640714041055116258535130964362981489182956211648433183300353865615870976500872933017290825707497791793095572936200397244190664277829589980497022990912751157337130441017081650717255457757234148896127958097884329776615226193641184524440167821230628970494954207598588152042149775757545174917429813567544521082424191578843516967792979281795297078345033453355765110429300736024966484373377673934447164423674067974151574854307377373909232842512175574755974322303554068379314174394459676109610464218533399270674214178364521218089852655249213612937405065026777397354764595614933116224624462763254439353680077645134275854116264273412389685560780410876366222648254679614379626703457265015306375881469166824638335463859340462919822887112345073984312927359738655066272758796964137121660980677138787333881804345346336899033744407835164080360416736750789139018876907010016911315201175072810082885583001989241682525057061712067487925743110664127030480322408952630815388717444020736246244982019840003368339102135979633090305835508033596618474642491039190667926524552685552133026436766533115142116478067619724351951766343665713111088659476857179834355107426042699373786675876195253551242566762936227267778876203651069615752060682606004256221285253238043825141713320228611523641678207368849105544139557539916287114302841557621914341638802041396643411706829240011252545089440369209485841626246652592235548303645581111825679413310019105869626783669919979202544562730935889477262677274288097278699965361548335342333541479878192510648570415645957218475944802671434499886570309796134252789214298481130997320827247869895357422777613921805050955371250475407698833467923187872382299925359345414469096018285037711005807385917690753582155636812872445550930106980326847713773172978568759259239953942959104216361588068934148150278311589439172789135660854673961059521678633030964861978880010701386729861124704747529282620427843133052291143926506632573481944632607118543220991550981132053664532554616041827583104073186498957200580847198462168558421558735399611544660816227927326511705809649524891650965949991968828866984848416035482103462257359429261500508068187904905275159647625381678695408083954086225442808038525716703220245119953619550277929750450310949332680412648042931427579297862310499171189096623713225467873756105729584404745875335965681161781642715227528827822023517257237224346875015249064193780501016988480036184318102872311262633011277453604699251086479767029202694940188389894577821581875095072054697563701120768638804729908291561252313111511949510768858492314318713438238824338559057352730684374009220895030948468522587198882868923622876592154367691854732225449891494517901764840606417992255321298896741413738177043716357473901358115385048125711300209774552014484215699443651344537528594824094308454959968865106906943178640788091320428146946200763463095506918668622299310408413598117108107174009293801414510829576263652991702034845519988762547404354770912118843436090518331887230646114479106294619365997818931715413088878949736184941015985258085300980422138059596014738689578704503379933976563718555051033092204571748812685599760609620060578886702822401698505342684453351102031506296967288944955207079129911795495605505393069016628538648350960993133121844006693621288742691331153148476552492062693556520942955871306586909542240620185003650779681714690931970902291550858819052824076249915743665028104129508477593416411198266221582945542760289284068368667379421041455480427108984021914033775820735993542947607531655891004077409330627589995058025785776900909061179627789473152643812372959425962174855042744996172263531443654693205617904492643635893690665726006869329382961052623476439950466972540370716814230152332332269325667260223457186549252002280189661716934785257043088286088831639534901186725975041024088795078128565819112243894847495917473891273524621461584898884189019153620447370055923916803058612971665814195458429835421368669842625279471583879063372938169941370233818957675021884043762377787032349187739162221932430764403168292556860048323794773936966253052146800291051801696120265047937772666180167711947585951964652038902725505946509903595559929762172375325912535298095012026554672835238494214140285690223337716947896061247151162529649484740701259957685948747390703745009999208194759676022318559579615893214635544996684106779978351940298900558289323909026752699303064990645407090920628037959048887003192604841729775071412163075370238861966174472202780965090179587049021184252789312999922818849431934189151936826034603840017721504354586247862342540855918627823307356409297077341513981635237172360700349093764868124695368160821782287531691541446578236499126361955353176870002805223179108368680331810809089611537455921442104231589635627275586335165220700491526117422043359487801366139099731125778642370375402681623333493522051043929013781428463266649635333030115857769350633053186292645503835983579132700201064738235037513675390712567534094618273319547634333207188804119280482264571155261605957173624500524292749596274366839301783729932203630280858009301778279639660917569805188985218533284946382180369315223657820883906583719414638732728903301565025308952558235207291645188459266097213965418271825098313793643922600199824425904763638013154358940513075725590251433444323189515471944376368296658787409537868080373887304239953260407127486275413766258487098736510358217288400462850253857797403418675641962622250573773815438559350471822380964843116884372115816213584223096217180206427314705219681821941313191573827962861497301693608197375541625498616262246438624788520940102052797575337801799494585999568822866364021470411373158647695861470977775493325621633828271338172037727145724319281674735870200887135064427839210657764612299983028743522883740913604167277649652957958258524410725551433726858891456257723075488339179170646948379478376797388550400889261816341008760528177959616033270788873327038458082255721880209241714126469737909115894654420741072162176178779524154936480611355710210197056619082431116771403978387181227035923510461236832729293595486230510878345964678008136104485649005219648475954424119471357344128547699817640591621596473832385403501479986043571355044446661808384397056391611749441463562793090585700806356500755209720060870909880708544360628289912047904336203340139620615045624076839431253422106154652992017544946384227532038940000761420839981302278684465607702751372850227345056167832710767860271311438742510787794600170375921736879572291419907018626008816615437611733077802810760104022687161961376303078416452935316724349908377408259368610302297841721438507730440890374646546931976247108168371459346347413054158463290209077591260151724128339728286747348527350105428085839041071477990191346762637192488458965501811101687193957126741409362068322729536356630047518623899310615992942530570144558476217712105154121925078285893455657339278493093111985508328358349131401252463739327607532769937367180565698737119659107737501104993376159955723336475725065074800050611628282677782235966809656118197397825943899749631930478651264732727732629550530201873853168682895064738882981220572500384933622778631872708754469006464842759137462623861829178026388753504831198640181750001760525247398602808917267654589688022224697488161680716950534985307495096561612925165841772892270762359805936919868574736797788396581539161996987718731544695746967931655385931930557197754026650826408770778356378365512185343841938029819086878306127164817711085395306440497282372707369416032587591287237053373953241944008539655352800466166265791560832125942305403128746420618304694780621581522577474556308006749365966642777636285248196017618654724226595703483312300950343722206618017164313605045782457067319307017081609609207619100295930019976778013046746819556416188286691911064793250201841501720697739868606981979315390203269938947789213007242012214863795314976256548255794467568306451809278659456706142055729908512349194839090556037251153056016180662915884443428466569571364162495466334096473238337165313046500866135566154547360647780481196536619068330656366476788947252459559534306819387138168885446590435978635415404939699079028302849629498813357384374358496133572875424143700984906912197538908470904637301885274976391794427063973690127762395962357179371580595361168531829418630090678288170254571971836973895589370274187952862921969924453083526916735293443049264333610122694191532907239668498553618235498791255042152363108928937026487779395741240662674565207141760442818524540236176885886001003518719286812524289516086348645610690364580952256386432271195289044341141645021250610845386152746876600875520935703876795764754912066266253663590669397739064075303075168697341495499326511240891102222553792022581613880744125818936043206350070662563660330519471611196968560311805951441304856045284158144753688958102267679539274940605190266016928044014177346940164543751145376532129461354815947625651080988293967454628288938483646578060994250657018276454614458606907859443076526092027047132567794752381901024171238461822925572918366423103409282672810457056973320697243090823510475164092731146016894112054710258812259542669857495921237591579874306966938579765246903192700722050125864609880264708640767815608982660622448582885929235149367944567748605129647604873366819660840529330334591860845782140985849981827041811558700084669806324926135366136718004068069059575697997508496397075037138398186957527132727259660279244296392189036844937889804859545291410961302827448828906910367693962882524757152144534830674616111263413609646959867442489260798798361412552873445821390465749381035142547144892186346972677008693968449204742605273276913397726080135269512321592671763337246320802067523817679431668073845104366948654515644470802637587783264463807072831644562215088330806589302986240701119896077206534142601528639438196853958357649280303443729138246504943169130786578941603408505336295146229402811409518389900867070736082969242809131177918792152238856802439136021659000622336988582009837037188298989330479601780857061900071784969603779405746507105684991498021829553842040030325830166837333066213841176205910971956235472457172418794930331968946790679019259688487724953958664927913576902402919827322481793000919846380820342184519442798752356582498004576635310170380146218167134289615310979711422980498296877491532753016225334885596032396902384499053187175716388921653842634480399831811987577882836730758120242298653417634403821756354458447560945530634250805720492531441957658770746635942618506157415997927956840437497676679466693114610180974688050157977135879928801238268085918231121646291004716321434310283159627413568879191663101389582171270033630149599203580080498647382442591791920073989669466218383012430515809171351283593041432154916895531593207950160552367763754327621277418984193727763956219806158226019036561291075136966099494457635999077827647826962131924287756566897748075424773987336237342371496270198974268874651285600193292531570003051876906464388091618780287265593416018024053719595574268456066650292974590132646871889431996191060657528663613191946917770622925517843604341935908935081692651707069342046318470829111250949453933788510578239126508874330350239253675600454451851437403630973053093066062003996645501312441573781220119703646175876188465850542706347143026318474492007394201329749747258115009248921876743000470490929544789695985875167140951279076300532863285410249505444547969193173765217264298962583938009419437094829232057722589795763699309348862880523652479023050626813285526252694878002594116159529416988358232585938698607125220513056228762834889107082971628663790905397493333024728060640295541309339927068519176678164488960545851430452340977645553559069748177057151663342258838885376789684732736499730979952356104016877756994916942527904672832011196628882739352371475261617579239431080291260970964432105937250179742834667148134924312284544827311695162209165355769403769145859217823537623240536436522933715344704740559411472134241379034449027080915537603456861572841834982305245741539747312638765681686274010275288068147269497360430459257769135805255517731211122001520962526245699210737556308711842168084683133562206364025240540172282476349433370323337267820884142281694824518877352861784926046030403064837063888677484394748078142101648117242705913348180305291123872618765429709272860327732296700328575914866947497561954097090125607793268569549683250750445948403213505187067242227991209518233160944227053375848192757414333221486047226816754958287799631209618811476300239618188520973429288127567800537503623172513607142823265887133921848628235073504850523932869871886612340576104033350434662199012377853001855943300585525087374107693977966753542505989739568897984348964162436020927853561822884359076293920454064019613318505738779577525755224728294309711636781450520606188638295090088817501581650290978181191602011806755024341326032214302712573618632848614676776341232265874475201969569350660134836302289289388913433807601686346594430403455239698902886619073824590286345226760335157154976049634422638292084652598661290685280450100790380666311301177926805014624901668192221030917630913841662766806721047019935063698307791402381249938891964810254451559912982115138908235572933644981432937242464033554656812870051082086990077471454788465708515226187784277009327601416871293221072974992997567145287734043023970005884680931447405231875889031414979013558013658334934929884207154119221769912560841296715527365322150132563469389944935096750170232612318333493228848333393128037475088458639289692608037824184741808297733225110535299741099278369041691047534567944346033412907549361948356088983294196779661979237512654244563681598482178374737615610282414427510832194460153664275672829351263096094839308196610782977318810564650846882788709020970547335540595294762396020555699627639318676472672157146280142126620366199537443007402212568662328404750465200475918512159369013228835664950563085436269785715708755298099885468305003146838303100767341709370954408092910957667084294427597794408126282756449844035738847217118785230781460019008928631308465893983874790776100872147999760628272949078931838489998680930793506628851191202722262876602326639745832889327965576823816780638471889213855081611603436766619360455455212097461988500664860490159250612032291637824439199852244951013442045405257557061555451798640698912551902730237285538324575562386990503815791119197615385521894872147763050272597768474947946689100604579533843370778746766172627850828832701898021672199463826573578435890773969062168258712963259712075025283828494365512388675470585586452009745776601979956598531225366079759437588144557658982865368182887751414711859550295430882013783595917105986753957061744708156499807620677241552815429221400510338965182418489686603020573125715777863773549570093973825015590544855876534215908531150809381477424244194139861786460057223485275461141489981260037083702331912499002377651636361428970345961452200197448098906979337362893454623589509423169238406841892717906176388397371553087820082691826452250128394874513368054438144538101074250481897531616882010756267954525443796767238750659415124072471615170465298490059215416954682880251817595644675614509913343314895309665654173660711771538803080255568055401525307402974060152164330546310934032990354152118160544692019596680909096493412393784543022012230570288372959131632340206926792306923949146260885950822651581390926999342903332695186611338159032646580681275847904019295954254869099776442151966429075953322903115438237907243523439891973611580341668693116678713654267033100565264528844253285676068636563754421046234283710537376764851730542519392175571686185836689386321298076326516427157155794958466466299787044914105700531799372175298101823074658940539631471656508027456523322882609986496873166483739464871891199690079019740266201538444486400221141424468846775383495008541563444045290469048439714484208746618958745914197373639101193337861258963326408259589655926986567926787329785311468022376199388425837944085827599718592581042859003218097844051193007713164538126996323742191414697457440180654838370565910597549197079271454906190956941867166781492931403775357011984814625311895455387431250838079017845407947158766839916124033059880392278708316887151006474888394880511351046995946539760590381532696333915900446391264205998048179561120455423267581192144717099042529578780717026590599151359855257085397599396903607852765094785157590014070511826334334179986365972671791782458589330948469847731953645578808747838048090627130255311548056614121655825484794409104384746972572419892586774960699468854813843579194154969155629042761205915550885479150068102827076643783081182608279354612535768852793023097248562675851212649168635534327515599673788765944924593901334287932675752629085975460029722175694877015277516280669640222620656475325079114062715261922730770376256326881488680136269606024674610818426353387639861931697382878239602021848137346572472233508224160915245101058253239778696905636540538594042672380204346084469404517517511623277630500167753610625951627196090001323741230135136873241350598634292157318450585919264164515172617559176523850514851623571324777719790029360463625179204788709348736693382954100490949118703197130229486765824969406890439108259214776926279023709964230161909542547160559412198225292239658169177569380245428259179050959721344676398601922381472459245104847365026441962567061988610368400544561378881181939968887016001358431982651798448102963503297696791058893744047841738249356728332952904019084271538287713827266253854695754394233230198485427577457541785578296948980697450779709166419560024451983755759279962444200433071724101307277287880178493147441835167096585009768442477601212781550368862433879680661563106901339097427994748853473965746024292743943828883064438396853425506433332991997541851259644958942836539687873302758480048924504333529447601503487707528471889571495591522059800879794052536203043730652831966782141098713847712218061627604126408597630939439072956792977496635730331934667860812685026845006126960772682093277211471237126251980075369787321417469666008626281052590409205604978077377961163749130922449482693693377235638196784911732387341351395737596049475215718459583191649989917373833095768117843718782416827918709098590832402498631779237322603456425957666419582847756651558162390633370215307605871665841028728879657570220099996260936022924567662558425119186123650285531927337810829240546609832366040077170009786525288569470614276170912491866298209417965406911282868764440100947384666340102580786068922938276408390397357364890315361089166166922858337973924770582791372885869098834924048547963381829785546368126237231541258874261515808092921304835099209041912005169752165793476929493406292160461939071280869830756970801585361630479178853666716284369290199577887867281116014602357297951465369284023555078410588668137800255430996264617486124981981383847856203921144423879213083392355391983055294029808505196889504551439592269842186237015269108619168293420235822961770616583562227107709664596629967784476373739476010855280234770470772026233716319316751053813788246583420356986939478890767956648875321381429307128526708979245720717428346870350221663518399370751114555753919689322239343267862065742877017752732876896959922138346801869661934832259636446223205605520986616973145218048055674487316063760780134423495958076954243253337562660945559055136331210553791726901867331061800008685152226043766364360909296217111987127005429586336101158256204266585799089692931068474987199590687710110986779277001973910558333871138794369377057019433192628159054000204868459098039581463210960779684558252365453893099521623142584019544612845669700020736525404983267129227942660857440788037721508782417762434271326751526313642075646476248445414359454966235788146369424657175232989507534872231318355748419668901209637576694544804847410300691891832572539376118843232867958884076874677618496897581357771863109315486531674417305263503026553511756726697654283807045777612419742280070330896066418554303073462239770403849878532598796713780430348229342423014175011874522989018621499880103558791221483416318109521111047330516876355447829407244593431559954638453398786563793081738429150618176972001267288132835587737519352772291525331193762512294601541761072050293702706972979334251213049082947279115042233931281183423967595440998348114671228412407397208358885959537978343858014653724165666755982762583175547562737041819948578934314355077946411515711630716640036235135375509271724100152209185349430381285642565867421758180964828410404768549348613205556444767999625306179907569520155756965489945333838613781197104443136256068505290372621749258769994996707620369700137310713859764006120782870775713884025809165800467797073602792903267539687488780285920369869923337007286985377545905021331554295802098801655694875529693523252286315072594138019984966505428634048832370102056127746849771038471299561496574401203100981519694486769483526199274680066713706170911672869426112271398063338409185992096531106515371249664082241214923274509395977419949202432675369355783265238484974905915995556664703657389356262011480001151161035215965431846390872717946395111316935439782957299071978325078301584481194611084394293213378427176483068434420789989223733630387362597009293489088033857991509169464760926694032548721184858816612558879960526699008820464099443657650626137837455204366137463798529764337299532846730298936276666341533039179627941119005067323457596422441265119414799964082807013131810297666805625406943437364002576932096311518777078846924885523665622739296226893493193174009099511289287942178697281605181799685777763356529130078702164029315551087178572853493943572869607471892270152449740718356642555419033823525658775078333674081783415730773556278397983270332753284115958526232952133550465099409145276413741013732677139907860634521562625086369237615782483804226543775431213240244848333054583331983459639640268900100607279293188502768481331499594309101751247493809435959716024591847900521403508114275925642252649664905214365090643252906534702969755610193488198082838316750476989147777167202319090216749658919693064150069550713140683916459496760513410404719966673895357227033595736236236673491328492288758417333275385786222811031137891272492847408086820471262545207389877641090422849391272688245314514401658313580849396854535399377912896073337167291764991454938025651310850260156422233630515708559853088347301226599775192110043816685768613217815040220569511454072390394433805607919008077978447171998561293039001348021121085797884401923787308992174667772046982617924309943328990020352798174687980047038877702001346787720725379327451408079994410186084553671228262211648126964436569562833571218525727410513185773421014199385748204236424128466241352953887585402370129484547057726435230121040124582991947905282470817024552887874496517906051536677517992288538835621260043290514121431054450101168713227628839534931677833155408655883107206270156917531485638487751918161760720979550366552686138069349789330078017607577071025748467186722030005844376631055035713072810954530818880104548609387927167938750717369735139877847334556404455427926625999699893925024363568022534760997729903053126021444984385387682741582689361503599368268928657263429531261724417508130486909191373336826588469843752784780100512060056255100328958559715127202570265292864432978544652933172625059027717290597260840630952333673262830569626276535753370915025140876914534105873054961427844878177008124240184381466531672822360728547544284727751313080788765106955913505125838895805448851360924285263895457552058796676197127868229445469936088673629967067580413013472698578764793921166576078517261531529995867558461924090602047864758358526050169884880427407409980702942866479144412450773464813292033903684704208437483989221575152816823524360517722717017017402395427818428564905065559433450282596812134208042987309495688207738042226265696123178415549579845971997502510657875369594533390575608427611298730046160090427419688932669667282588004145037703999861340995016814657467717273021345184877237906494200364827241436064005134551839044938124777771016638716409897573026348331595202150886810183984203620873081848288958694796364521350568686086452298273045119530832903241773061291011630911555967660362360821035695557518727275844856478329264772301518071705812504164877239693293134639050308695100261236671710430817274943481833308393163860442426671113348544859098964619348538022381043052013718589795863099036681742209318273600120013365572618597465806084078245597311294704391334924291153559041355945234802645480009654281130626287784624710345040403819258169060203001058608221818639906517119173013472734302637028856146642978140147939130465656593389399014332396351629941081633226906626221300367216401335248310293127172865879447339877325668498827155315014950924023423740363059274803246487640812616534891648976700024233808331634368252734306472653335383685714742479909677744664858121517216821146890987181618546233721601315178493322202938716987729512865094571246242405302144508600095660936073526760052547105131576798191109622142335845869221329208290339778271830590122973245544464598011897165050362451585167325223202504261512304277385906471980902113401649030684365869037565139913165703549442812500547925132524874166259851811739057635271874251604877862017228231429016193021614323053915779275344216214978443416902509294307916256252113299384341322619257293638278789978821513279435928030266050696501143207516402478564199115974035753020060109076432998835952601984772823235587927442059646320039005946382651956423280963032939019993345818197490321836649397022956003405472434315882606992753007664108147703698213691436287481253100437015526780662015394891567080716409793248048334642513966562759935524344287818295793148703458942601352549212580109860366181835078402678541413633403592826296760708099365765608647153351454402088724902787855352125367128380022657616855070951616293568667785559208630301546894664789177072962999886587854764738778065036587100573757412868422604244875316171579933306215846319014651798879233173730451659314513684610663533006937020528333446793662097706774128503377367039077536878686595217314277986357154017534258029535001990252904441775882717117242605480837802758431365033530472199788667263765104794681132789378982445010284245176902176401521759089089239632928871282670099377305559181786834666174973076477685361284928826158814453893055245631372431918270413664960950924061446769094288503323855468575515380553684163519176856237223346157165888467494093171812173201975543436864972019416188601115633383288580705344762745743699055826604073880793029418481474530584189322566896262028825149663859511387160807537942881143800021471733706204679419585037790311917477660612602827604563143207020556327999397959270915965299948221955738277752302668655014932595850835417084513568185279413488346587985539107314915851435460712708056666119377872424835508514035448351211541335424050870270493767451689574772352419184393664346556315615586810869938470334062129183862626307213905049639805414794504234837436580258147977280079601645746454430094744037094705875441602866257561307972964915198365045589497011278435991740980099159683558438575713347199044762108988981570136597324640728942934317373947467199331048032904571140361862962448362946649983123827379102964165935256251244527762545132844809129601838197058726407432551668365547661878732086342365927952079143488139624944255878415073664270620452862753148919778343774456380723718473742534812994844073746588639201522921026811365265962935947111490273841100145812657704348062046671272190235368179062815044599821179161730236260909594899363430659026611159598964445917106348844864539775906182945175947663239190624905749385583258822095617982973264460829410783349054423083538570403686704027778964910988784495213918616317572225019375885895842023233378551360401899136217574509966449653977934999085052564584940399261968765535864522432738132858121934896308943784893554201488854789372696048017282917217353190563423080637069792970494053225990886503129546730083165412491574491504052569730002712256084035047471281488472604732811014130371022534264675908306848504479899266277389101326842238787922800733831427018694034531758874854857615514961394704906186461982273025863196118664314815318675694677982223658761283667242024713124885741427306992752996249513949272674837178276689134028712919305211480866799790261896188977428243563272706053808632242673486984191940213445351479039877906024880242092793972725638005663565583400295304903822524618236801995979101938916387028515106892089781733541685932528959105413580971673923185193263015474231343953261029651701429470056757921360182282526976637156485201244235663498099230947356775220477464048210930252552510307926607440663892203478221584596568326763058195877135050613788784938712416122725499123910102828764131450414579966790955860587311447059166845290557216782081011034590515680254092763841297106894096723484033077176388945307546183099261532787745335493142843838707539446197045748090349979799134705756453750070323095129724702062897836621096185980628577081468369232450847410382873539630271406027359760185026569061088925224453248394390289699765959877346841110768662263687479871557433436735865095189061897461326962676155923114663135004494242907840865120589699525074224115011885053854117070185845144341723437871999421741488065685150651001712738601531136293677577304501735952455619281514182073880195373766324184241045461329807147860670362832560550329599245975800837791535118033828001110140562427697341378511560813530937607414249551574683995078787951868522455483290724871040878939089401732436777750268956841445355838945309577955982983985739206616244736489469024570871374960492021494560511495625833259093078223549834554357919718315728158071562057199586434357353739539130052531365240503311498327425673782797376891339900759985041279073990824621813596092889699537132373224109004574370891291474616687776248492967581408778939115851683440621042112636404333028402897952659467460669475694372462843028348475147178195190700575926406972998677510137368930550867940626347063484258436667456054556182179310118544076476473217359890103700055175697365692285618821086276721191968260385242832144247886540332672720785089875567519357946841814941941234575735431442576013621632136176560728637144691242274173336459231392905712004103909567369636625115773045214669690686841240242475309981594342447900581519870321196206535234856379271797649419244363576098254865871893349560572698675355989343615440039263142447652917450431389859556555224117961307071306601336290804441140364467467159550803180392751291208687894540509269708067830607964298519598161087019835411776497159486726829725160564637087191657737701306815256611217514859315210544444019820539670777295777156395525806597653723461664380016688967933813821727004099288494150397866550965122061277368000268352372437700176038999001458966961326854580785075749742558750828487218427546929604906415730394071913887924178983790510433315611443845975651205088281880482049965235669788345478876718791694617764667149236876574288089041521961805546795513507327207430229322920938731977412435767469213186899632837850290724486646722018912220628802426294681941612541393654675676349499844518722916569295817319533176124302074418317483138715052102521367519512857362122998991350630116953859788982617222044092019181097254237467848101044994771785910186108989974788310914109231372367548015432471180418869246949173141092000225852709058387060943007761421099573431806295663494498529572388683861208575656083974344323944118437809011261715703421059533006101929164069745456023073697224692863206501688343835012294388265469249750714733692234921742286633314724182413145792140286245185615301625764022752792087635261257855006814886893776373443462083331976123141344031436836349887238504677028646332003382610950928951770724872598123882242978617143590300700902725464017038716459451870531785315122144378723916928138144362739407119629450788097576021183717429987892659917414720911721864958798318816232503769667943549643820738424408683167916107237062805549910854311629146633212163936089580781098324189272577126139948404198079400048993293890400872914486262318199140954897395500804737818710112635929120457921424744572215797208585418828539992100494104048677480517266102257541614221212815996237386187968229467081084317485214956341531090779854198857201192475688011031307888284913004692657839651563640241106241245391916936786480190744130616244851750868370303456856483367455396066342452423790738226459681004765328523071381503556939222036362866877665004710749964948305951768330923551416861435601958593741578061131392240549473029883092312706708053630737871627606229516405667444204805739300257076170983668837891683435880078762431438778315096359220236399015592710514062715863445558335199069908350287631645589695219063344019949286673598761234031440407024608364317576523318641751068580192534715028300095822364574670091139704153923305805334975013974945348492858797925551957025294509734734635171383129835132206057545104245715697696691319798718434269891473310427071569086096466502516468640939657654431779360043603163214153217447980847738848233939807452224291477866953535983725450776733536108084124746776418849519185059518434208694199403303533358908794050853958931559044431891187239647123443596827182852904444229798109734138272373364539472043138384439743281676047050375076369011450315564451160399733837002320174669678528978599255675849227969256912298131528035203685276632625162102387125112191997157161205578926728506692576476407464883662550875898961658856623917734692451254789595673380919505688496343259881805593135146145053362181317764297013273760691428096563768040676673124965988168097022889703621508133523534178889862663704073863400616474101161267323685179118381657793156861244084173675065448713469129782386419657221298889799737842169720481648863042559272566454114815078994431370024458838975868653635701639549594532347761443122162804595508302134053796603021980994543186497080285721236810920932693029873110576964169244360828098708549049309281973988473260481287077421535699180699395209177322684941750315214879206673144453642604713186060498419276963346650194075632969515139547721583756226261766086251522838918341225401111569140161928606806594884102479907495080477562038074174990127778670979002953481890389183281738136813699080698467445995058999549890454063991555316504970744930441618722481619635095447221973631037443319450917631247843658605708329597163365797386359162728144573415319971411879365252945773900353389058395035419792738247037246653191565382253409372246579258376603204888434851952318752776269479384928784594463790388011164339424058088318908551873915110017119970935845284832048751349479394658124688850665790210044817173314757399608456031085998033797355438746076406493658580692497246242232459561867324633751738968515047251378162538689913949964278857735702740486669505954492725628986586856757865049641150714303880576432610322824418894064393280025925641449660055813437730460898206210720686332371077433176254546774299957812308729481399672622812367528413131913899733714794266381287315729785147499099345075180071844756719634057131718151548478480434433831741853509818421194855827668407584746383853517015204150530013355238134962332710631637347613067845652321510136838827389489575835273622931144241182366042577614311906754036868237431061530901913944662961446629786815198290158439176255084666257927529822146684673896048227453324016692202166232180639910043880674717117703041367842226535604681440355260799875160439872659104627626338727839451851016533137634431942173612382263544411425935838216130010284265725980641426663061351824831442615276820671720424176477889852755687308026316068816764834704194118178274760626023959330170469331706691423178355038313225296138202365081454807604999462566361221762089085107886751912880154373373501603229038105446316724387303785949570108773835865437533518222452511776763832649371877595051657363958304041671093856593131413130269394620446224482349663846020631497984630270133087292238107044242075945876664731904425252791099210704725706178143001858469661458818180891897207951685351755974024980132312885826948874689074199151944898965974954206322774524513837619065214187794623704467517423695469977600638647678260772441545232023368723723828202598528153428981909433793180342237227845320596476070802983508961097856751356216030676346514890872712448226399390956187232551182058425265029579321485755539725932697335568688678106842114943787032485732358859508289035926132732329775371755687162167961850244186006617693297458385270262710045459002880508507609086701312717004300659065400093614815739612948921640621872774044511954482040861943654594957577486296498578446642029272165030500520596893876928260199199735389135492576845635793827924213552866722073864049762086572592114890044292304507368928357425517591399424189184335909108643547655266358304228498023562078247592225360690847778534456842009536085250457988134152112353045840376968305563270349501340352655534631754578725829237533982588321164917975998690282560352906181330830258016231127902014590682928447375348535038715677585164807461274209369737167752999775103480859756719982499040871079922489577532038807007251942410188996768038773291979693098725012672137876614840023330086067999183773372650700124992640406013576351081924820322843880303368139562786136321206325525709221674295775531987085696142853554358908714266920707748085173226056831391902743438969582669525780375077549224693803506298626019454731193497205434821658111313562121103776618260082566826023924936167031510060188950913833867673344076304047980091616529996999173877783173171218053404923386366268440723705102462567083730299198785110571783590736939112941024773262000615334776186712941615253954765364645255811115369292845607801627120554567316349158507196611283089797679294517445500665428195503900876450982643984806247118732199063663022367598624905470348037932508327507828845663064384348636126901002323934544245889667600858479710092269422265626626308450461148975998873590787012328135355475202798941599457020411390375740364147623649768528978043203977766284724444660335019367662820956875108489744495963433602762672256483784748075236562711766117959696877015165185301018827591404101620209657454727697067248372632410891137695674386670859633407999316054272976385228799591950132459309475025646462866916307720031194015977310470831879265711825266849245303603915227658417194722629239707409137467452295907454338815718876959595381562733124478276531906525435823590858465510146050597043273556053520028153222156871405245118001146365040551392737650767748403663269217023916002711115396724884563184756565986555965797337307647527310613585022790690619882766881319630447685056060674789181010348996877077552315703841613371571413905528008228251862936475115307704844265653348348247130010840589590102817009821061771855053626148790402716264089449693730000638662910679303887017309830666665667041528610740138419507427456911274573051103112555787868210590581400779268131370934041142372520452883833201925605152390912137427991716882969459077127236648529684916619066715174231165740723748725060056512284290540128645796792731469228894446506019088671306674966287001883106069959608681054976498561122636654594389205752975576333321113530112656076234673705130066695435708547858860214618814034891462017376881694119657021430763325067636255412666795103710135338400436769471642248664205556974993767528333641676516311495318342117337227132078913859913255786223347975039882709795304833458290060704557430019844337395799518798341946052272169518931671269250658555203784195452311959220754942437183725458004165403167780996381572912371606224274645455106725856716876199131242890855910916910181574802804132269077299666133675961724393356448160433797705342186587429034568787862235981833471249097662678799246841543625236272821838583737990555640940078352175896533394272618944636376617674980321545355613907631531762672951275137976313629671095081398182812440765738316310869690628031154306055023127630735747918122223945883395770163880577493164163296291646274288559578011778810660704003574977331654501965936684355004712819346590309493931718907543028416959531623806096091906185365730403535659463054998004706645536731231736524895780597125982953304291521560810179180615084373125941850881345919975339430991773254423324479257203186460150835534389549711513452290005827792891076392557274185583167567856649473171523528812850849563316594423393127457061608696099005560560698241745556240083675958935708573584160843279864233559592529380135572585027340216559226762221686896753274353827338368175183331267481862295642621191705691171328808285861450269837887323422729820027832918286016058908225918810037944896227183048341221732674627172063822891653370653989368820620808513080096218106731454646301400523977618185834930941350986683359191001431165524435429961635139864814440212957122535618345005903036990046529726532742669439364114920662151619206991467324410934040686514421495674649810143707066830389387741392367913573665000308958763747941809721331165501960156083219238352861373800705267562417763289625831584849689712510029663568970273395259048061665826829891650683755512102165381314719244381467994302187605984047383266033515005271825833963337440230060791880008634541567588821566229294342874829770554681747962741572969764662735708613922200525983294679383457363288947259136112303107813233602774968333173053251119272856381984139739490263815563108853135934887941134769853586538397210352057314230479601372383447402373633692216178005592026292308302953114590050819201676267320770122506906251765689654880257297081690228272665784654542314064141373239507965623470390316430344363796384708671244814251684264427849176393297371683437569120107859477516967819494916480366784081337444648967220045736199339573644831916960437455036731007720343372763450909854198401507589951006445080840083195745636816431202245136580944516963206470733323770259023614771199779498477306239733227292866186981192558874046589596099072496993941047639389112312692339981415723143920156571112501900959226111324883515118495263014895854820962055386315717178774814575002267918275929925866241543593060507958154660092869975432082118311128787146297386747540401710780810557971947363046083024207667062835166121981801681648818416552026413582547078982548777263123923119039925828230969400721715396707179360282713137473336706018320258535756109359259086848137747356518251762964013210170602444468886226675307490421897689514285389610965879485248757088749347913811188567571798865270961246461817261836340827777119476827108984302286778883826233026416423741953415734770613081293848626939994213265695035201956274848030986060142131437456818275122187306300126135126089730988683105329783888848939091001384921801793852889788387021467888192186111434022908900429334409115791588676149038739022803767633184591072656818682920641773937739662339473519131987883323939908473584483873934109569188033658525957086945723450655156700917061194918653953229726384143414057973001835179093979797524506332928514834569047674295018265237618762149325824711723730328545322903222091939869354920382408742880455334457533289712624909198119006673857343231783348362640178906263891850876706196663006179327085844772896591920209841801465208046762583320735002115178605056328864023027487223125344984421474014758299916073134085262434270517325909226566664127850523249390513638005069176540056468705381923812275091939808879265037457626393672055804381630870679772093662446562484986116699394076584486670063186800836952459408291749069497105259319686021304493830689365919482724101350824347195439847145073696782884802084264710018343676792987507163664257382031518846543098162043707406607450113235125094241809998843396883486449757855703835027493814510534668297246482401410755486426748382222463698617996976904774357606736825027394512818018338237800651114185081019325898296897317314142907149588093923243133313409691597924361785460054766115794753654325439405722467841664868275622411835920110390235284986414253315504500023102787095975829682689625155511646803169510971755637714545298090469196118748214935660787578514273528049593217366529574142643921572861649724156489312213345901445253110031738729365728860002271091558535577857603665861835713125509817577052043303094291242676743294319585754454131218540542623817878846341624279525727459694147887260234698128793937336640920329918320237585565203625910440283684966119099706186603291092320514038318232964731707259185386780613865072750156775457491099689376885386705369693862749714614543321268211910510523455724361531004431731487128497072339540040535960213486009052915342635035858145494945545825370985130442184807122999163701407540195863338154594134156242421051489973060682748579083494513236902464265396524185376171872320384934049170146421051756174622915297103390951985324892317269892258186397168702574654567136516036915625412207954568645182089038521653878181019327477329334296486943082058706882680372691519141860625479911846937043641794198591659404651872375139671107744658679887036259407862634579945110127827391791786298431372842890843665331652904250069946407834740329220776733585787110619515417242454587384882504783281779053989775956230559203540466449379865329589898473073773949803894805148821147590510570628120164327452704124152072462108004472019062608955894936447126232487905533159283342696853639239851029402854587485596633815597700255661116208680854343510305535435721931406363179716493374809224672012439019134197927113159322060840752234504586758153792363848593204079567313206683886216141804486797455876000444791996308332274438240124911755971381953725088992299639572614146553533429533401764164305726649888413776233002878967529889176326686937014225748963227801402153588988192557076267597472209495725514682713087325517772104019210978029195804930277694546926314994694880332456099303107888654900126008972881175903027487986135380513184676910782358888691609417429607936597878814797509273911714186438421088547162421082073189495386748719809316238287068342701740594740554216584415220486939598741405129110235621467932535332192439119102111893195829208148418569522862864295079933395247528275259375520453053367079927898149212382238879426393951773443158438300784078938773060926954016586766461797012182514564707030600544583503150938354494772414960793569999205477618625621363042893524628508532644776363806825325758238047471265513591927198269790214663754928002429844335087655045577282136180925669699708297804679349288615056074661594413909808135949457967557870102777193795947991102321605053114171186762430870357749507826561120857305690273899996456706290050521950514674177659423972299636676934969980574992918381263577154182117488752852701219019232961739591624609816202001911961329277181304501745293880728859792916243435567184543343509857626251460722622232844032369876484550391312735706991556076673504389155620287404540757764397909426426100902007306889067737463376857609998242395634348560315638391061433885673423925813705885998923137104781991139764723942395621642478873870055760202699388389004482078900265524548007029324647044921505329955816656999465875694500805310541747183479512909949873510714168100393280710629945222495170162789881443393287709089462337420484102411478556583306947409277173551599478884523341810360035176569203482695880307109822104544088447317804233672608923853885022617702243445894952932774454116908323029516037959079917491294194835142971577370415425674989451253659105470477292846009907571052931718670727897032704647736057502042042243619612135779549527435934698332404354341975562000127697423492237145074537849001961841395507418659800201687688871122663724029793164087524913877176534137086333284562048531189914676260039524089463826477874688657087007761584976070190198213288657690061266149044422317691169797550766676259311077538209389455395598463342043523758069166281851436248278065947414082861762757583975015892992127313517594150342263585098302676266061251467664864846092867103939022651275555156955610380976007701629080701401413585683396908971811947956263249899606052012858447348431989428519521351209400021918007619486502929787514259111857129215669238921162931256723060833088992349627803544120715223175913982706555789775130976309118543328631656009442291619135174697683010572788520764477785797245507756697604954571079141699841749936780262927625136128306834106463163017143524998563952025229592858834355971599373892603629563989723651437473380779574476765523151153527501383074010561324912059870739574940723253593011157810176294054145369932541893703524072160234670925060936901381988372273270565183231506346969675769738482361525104647059675203769143000552386905658681471291430756965881018911935594029426498123170394768043871632605808966100703430674545007297751161892291027773349437497241132237285265410060819201991429579227516094530454091012703093554398336812113269134615096343621981921641405147665760024608683257438497688745077720114794946726133655666865814334015918666502870834213238971017595588076568368747137500239940825586048353793202437997736587613498910970098911433642756415517444771818485272975419063532603893769512565019456378300582474309787341224112848844825725908970193668982677157884023868875796996118643284371428814088820406612004735545560499396580216781790306847874394684495297250452022525806079727819409555581533975242475341468228298909339906519437056539357623523898446759240503293911955869983236506962140821957513876901199131156390392422181927247209892562564645342951911454112424404858465135828239952337182151195273768097273120336412414002923340807937133139568284999466409547923805594283219447171215055355842509788852906712209852745921317768873758362023191631440623252400052975985230874824300199286349359721454941323870723991089829882290355985987966351789558204725154679108199719063937895128068873452588067836632986668418842004971190917128287603642980524778976544559186299829996490065963982024385547028645105213524222909170928214855825654454217052909213882808826726043008144177207381329085407807835460248001079491970318634511525393387016949650362530848265199710473335636899865781363940264139652873040682977928259321272157778368791834269132500048454832095789665591898041734398031087401778562545836571296753954744693229359221028144635846565080975769657857212631672284053107642342053382330315976871974017314138756266166919037501524850632080196229708279709074635054526011701779095832400448789513392371480970768220261753311111419318594477877576413923253773133261790767084215410048356948322449119938622095721837164904899443806496370943443880247331074378839804602395668629492303594462252083961582766530837585645821429313184980241478100046424992955859466679463935336267700715863232173946433568910965940042410751655688571121837415651997155087160856018330710728967983430089215539417116574041469450417763663854900836818365833538299518895744339127221421237604657563503748262503125435138428343645796069451934944308129285815231755070398193704713561629497275700118582449164609809128017657217577070412593936636151352173754827999435651013976875307376172786329131681426917833091439454142046114409179364952000443450243127806652660051527117108774243324861844625152332855374586024301626455400323101792077290635274232449746595554010561647207293680552269166744117835612786091817076045900374181698462001664645231710675119659932324758389569849789678193753212376231773604472953052564383454988156159761233347573661358864510354627589833685097999508598114267532426808738911387490611075745341538018136363613856994736556813299080699749786393839592495523124947496250195872939658448840468432504075613521391538123235749980727926376489190049253309373672012529706529719218512854696283210774899999055811648199923403700285344004140192913734329084410184322213859306855001600154618898256352991295754945317730938228831129109251047801210991738053792752043606618194775363505972906183894651630591664085881714998594163326323882449244785260564842976766112474912166579230619682324676547681867305234619268734060040647035098530267461944102934968527888295765174635168709967583839068722734942423648993834248442141323970808460489544243813418480246059172710197839687986596434214275727230788228604918116318857660225152244009955242516971594544099768565240103241658432019187827394325285569724425884333748385098447732341853018465302518610004363878218559694523259740272099496126158927965859488006338358881169765944513932974374706510425089972484643232188693935582117755707154221004892818967915854174189554969528723908463526797276690109706682173335738490930935060781749862184312545726361705873114214489631217735685654541201871251823001039198053372574247556700676191924689157537408090356671277171207372676402135650906547489606670424327465111839281118526465836088174760093677318205397127072333423977246134060057536284703304540988062620716858408768903878129187995800943759805424813485274516924505863324228032858526055908585987259272098126923965403487080884789740273386395213242357249421438211233064998593436012719203073654932118479633029263108624182829944346584600528595620313781930544761118867201309199820967773952784915844167808391204257794218744078594040360150671290663481135404174844095631976307062968041610173313774908173170582047773671351679313030091924970633372249165242737800557907501550111290998008287986200852245501254128988250041459679080549308410800032452493074623168856356743304333513251023040321204787048585673625610535904952209833093824953336362360046576085473575191183717691700030362245744419519146569452311427162830289027594359734695154518219644357497654430504110357662640397353137319398486602824968110724246270778858085744627887599558491185056168996886194224542779105382460745109864474119605534671302062502238844535613072621810985360373941232047901515062007160485721305073000908276845769370484736056705647178329506612724814572439480273201635821755135584409648759022277610910567083691736100259432695620553385802164745908583358280591770804008874059753605550255503616627388560527641897701555669320376943674858709354680865083583164094702919582172431656968125692585430002242002210539258127195102546059850753150251792684400175008242670856470369330824047365604795888579854659533229058898668228726203547616512666505269945438265265993191444098984352745168064713162146281464574312786007439502048238929408165624986253328965768950259162670157976444569055521925740673595639103156874995361597803736609269245645043318673068189708779882510482978290717626456876184398747833215198172624645602518204255855519380349387671170039281171162350648179697575603003522262700516984833298188452633081114025163082062445778618928036764793423756226705775806462352267005109527801092124515707171327248195001963170193097933665172969907444884867699462967773999620062714606885807202822687316177959449883620378064681873829151548701821591348161501998530947594248689487706160550953946167427526757205873755083276767031310217701975430590019683917028475346730476931016064082239455754312246466541338797448426386639725584621271053895314112595153613263938567436317430839430460047091626647773390422375054084108841671841839272091734754862345985597958427953737014766480309084452013424444322499752866675821946552512144151706613880482397251946548532165020393310400721390351128786448537441782530120995967926905100030593066622885098696180583049187344131325596286509126198329522357389290795376037076063547803753231922961775286580897830411640666207386098325250665075072174814140046289662508249238402244409451489907370411093591731546508875342187047117383096272308632463489588003804479572689704538401038503642131087050686066126509683152551742660965818507843375383843513867572717298072902184655728338152003627039078164780382578625477957787718166649857261810432221594105854111856150949462692437277362216191784379528661956816473791151835255062855612215710188349626210276004656353803184470792360794090177127420005763438871639310850326867806443528906456870606956901203526880990201495823595698651424078128616972714498107852654502693579172272324276753210777268183419021421833252095739458551901111070036960856563476513187825890656761275423660628836845062137160827491076698338196723955437076102112221732208052368051137503940991115839843191147654311143053010520676211919874546989339127839600784523406823601681957858342889700734609568443837224190146484601059131754935919670036928667309444163703674586144988664044910017191607815616117355376930328769704790681673948010932063359678177116882748920464895106974371960076144370726007042075354130907054203776763715383593551058059596937470234833070172495320256283413500293886382667306382152577796034191384766735489266165261939066648078421829184795446274080736165150267048312682214403775176828727291021896521321306449673754089922760123528678309149962539082420939504137730962945935425669920181659889684270673505237162282351563351190234802670088099198452644988813262565122646231348901163396014893876010945753815115029587515580171065791535223893943921978823802543266951734943541609396290079810356783418384288443178486569162564266995364138754644313867687007322676102021897558497455936430121378089193418584056360636757123493174952630571568295452523419627706408007316858429354321595797943262451390878104522735543330940110320194347438672440223711744263833250558386852450451802384655861011303609264733457420341711635450459394064904891671325667617313142994476237795721823968022474228834538077328015215832154912137872430180196339525811522976637303612174771605692605707245491168584449982831727435029833636662359009268387380236883473849148149353897396792704399529575770639609812304362328477556782492246753904408746246868195247283754291625065799267217117743649268977546111217724381853655587674168615189420570271013399249098602490421516729186826917372417398370850152814233660565544680877856538257936735566800009210232001273451539120907007375068083672164625930474265987868454661587282418717885013536817505637671820756251119861430091620251752944753548968451550925707400796757154848660460215584857908012362625336352924400558674757279896739929691942542320692668118731572138608766524873391244115060171383406764277222054024791133487012878244329234116776371556290424145057840269704350893334307445510191833260706472199931875456428683024911963193298609736218375808602506135605549242043813643922849918872490009202025795611555629853766299457774062971974919797239656078850582037226891278620817731850728451264276358588336802289308616325484742912923264662202769645056225091947080007601265278508503793166029742138475094568985357450743761101946232584020210161188834463408609635023595835705312433262559978812124966585924430696508232462185711531952116552815974300619706394328419856746768721481301485545219453059198764532366940901386912587932051555277776243144858829677375365856368906044788453408554347167523349570250404278503987542585870354085983860237997365243273111117553336856816212923386801874747013753365078047018842591004115509688589387610851941870017256962455488445087105064454524964471449318236490209514526740071864692618867950960331772560614640269232239069917479944492359400928239127884866825496592147261469344454924501817761126934041626546062926097646770783704095035993369266846930255709126108547063405755106933179443525989833150295905063455281023148928949664935414985658007541682510540416319631557238608972760754192774473469073206560695467346511704080033862890674271450243195529267475447253938934523946326612951261546726290338300050775038329412748923821972410746611627510415558941578503303604782910429611193758713951463413464693910381174493800324840162925744176996517489492598402252248155984649276170804812588239127418868107390553908807443816754658641529377835055686912984554160417902063770692395931977720812111583083683561404117602720816046323900138232046739271286650256842636738717217239239069353281325292021891189940800334211237233497010370986673076098853941753898125185709564513064401381431195969919883714551139212246443976169960517639828026046368965643664921045867977725688985225015044293893361669383135513944801904700856634939005754629524004532828154983940328339461090316832560991906581355901896519596793128274239642066405542112030042359253558287868747574625837080275848735344189927450211946928367958575240773883715082935928612856753852201978868504360105193159091353309020360189587628808572725242454607593225856214250992991855759800613991509959048727584400823442954083473205354570987130160002914135019525851348915494988811403401543548961707699858805242023458150497624296024222895422196742811480395304450620373293741351143318762700287753773481464750435979415817879726696958986400782166000706272985783614830072260802624181974281110970481691332688101106370200700214110303500072841068520537263405967243583384770863922274558334917276344193931832019037790703079742459861931890893891791445416252449201029951146058504099957358178692095057695829733262484605850992946388572309512984163858704810477692022945113570006699651404461186889068580983111864114654445993098339507901290547139067953508196231546844692201754691396016968722471460539006597127889954036053949190230905455939333224002129025370861983335793956940889117912363048792953711287000256010987857515750308254898278626142987248152485030963515257251506334221503901693130240447857018554712871778331425843160609520644710674332871342469667509968684614636084348706632145691068966064933003574495700293053097873252452334352972406402211449882680580747499103897869942626078573935463561567031111564471117110488529847046442205004181738502145490658579849073927328120444619912411762265772036849063953407433594276059687447423337352385030339435094693275758384833459976777335302191745269583539421398410215544471801333481652557035471075545406135689679922734020433615186436598561833245433807318148237309186845128569177480411501363820591202862174436710841033011522074237003811718543470236292284910211638384271212347255223509632329920432140875519157195873850218100147415720788240889210651764845236118992052279709955667200841977155768846390119020231874545569585930191652152540248240704895373895373422076737704863544336290069539893778736111814780052005248195783228886707645110563210013370188295521035290337506794951058576420168675946655506253924765630344532726340131547228802844573469412866595606604511881706421872802930228239824976089420046204698924476392508659464495126504815327599599274216277278862952757611566025284281814656903240191973428353721616446945688511059377978053853387666962791892923277729431316653623957919112347465266316504361936862639907428989416933261992063813811915778174063524643654599682133227048976869825789017712942817204554838127481146741829754095557647214859980599116972728926258075983461767801227121756989316534170160327575400304436522973438972586405944479779812005538029636227072957472034752934530031983891444462119123772180410759465300460057005870266719520110861059121395696826580472357242081809638330469960792095317836968467055027374715972689899690119975212056986953671592333980418036231145636905953710945277812769310144070153984304212478979516160480612368748134760267748025485561504170317411453636481010898303241891849012368489524629221319807884189074706247792440663089356678617012802068387045854378929013135609746460382742452921869224903930981972285811141076912889485306489487282301744512685575152935761276416903211759239419844000848315463540642621651488997398177463486129216451580409409258363583444509068702146142438048294520851651180932324390700892760706676287596255793093311205208007053585665232940863140956477723255776634036709334542912640705759689621953778188161316640281090953180608205720204113365040019742827795583569000253123930371362389725638183328333897742767925886047420617170758704142484655843717818492058606924473207275582670934576783494516511759613024250419344031515252095844811300109743512596126699117335167954745000870131318816136526376230323159990717703852275013776645128437092845867418175653949702729259807562397307734119383105409231603499120849988283488194362002917570747693787706721775534126974469431525867487373586391017729239116430765565717490014078201641895827669158340140969456743701067155263747812847910648483705458281246555715720574514927778796124709579423650188057196631258194460633187039837250360207257301265721348718348364949368993725482747204393491583153339285164131240373489211307393550385597018021971027409982170558453513686302909676235581919796291129370085208160154857709428306615905554287508875755478964764978393936245182486909917937355912590813665093044521247532765365281776055005374073165629026635643108374015222010988512525305660078061128317801016031297045742680581685846100866189075510124718031973843436902949265923061005087892292429427504525201787582405850782169084107264901727185028171690362894492946019505022860344672743940499656251712392453576452322830151882090324301495162932142911167681290693125433252191059459791880448139840658906172990322238501575041470687114344802048243069819134798354857081676947361790471776309620287658551678642060308564105870198341255256473663660732510666429644051521428982526160996688592011768217842912079965834465595190550716803290859227680377589189052919621735579529054545304764849150667600170119632210793592381612528517800762561010323043989507567542125045376257343878226643908901354455680884770357008040283321972663649078838519477204984393721806589744085503703372472006719631851393057894270985462978115447410131421622501505173210722233899980365938111556224183527058866900743452262366912609970978888288491100125634833550584072543389725108716443863193379733254518140517792715835640172048366694675359340173625133103950887690709249329415042145782626687244494326034051690716774201470866653267430291346030732380540426579590321670413278460970362765118184883687333616094430347201430432861031965991195510051098161459713466823195605545163801766928652322977515084575892564717827226691710808890986333360325044048997772982116357658907045018752793165383130794156067481830804066495165480405589628911489945591989537093551443815819950874529329472808713503471074620808437394038316089643710208703895598026942793342967631640037161011805748581923718345459566423412830894793756297803692806573025311193216776867793696771139811855314085825444745566568537773158203578776777036628766202118826521699799593028938626334397400301338808120062392306486472596105052074690960362836281067018061952789541851097545248969012646010526594016170833740271354578445406770083386419266928019340038275504470247938981229032175328593475333533458652638257868126612019942728406320127512926511464967931843465601230343674845895516824086991577228950318235406544208485476530210917949540337062297131860247946840498083208763352230986329360211353008410918001517544852664158097322277129528910747764271339774760411059125609896896282113103686973298171009688955548199480095783381848087416335436313424288188767845342019695799623429444478836324316350534485163309606341755586386537549027068185138434222643169798171353602191966085145437931824068854022813875413216688629473759305229553812365428906942009874424571866065039966780353549243091828069071108535031771286517533348720385911852921023182889974680300969848193174746883504788541645119901954941889886639558804380629371358985534526123689544817205087183087132701498556023132980080802220092476483534204959196203102796574680843357287363818787198759323070299827256300232847830587946762994135582770692767800575311222416361178226560026906112292510843527254232404295579846969963548584385731108551203383601313533244337629800708883329011575605423149446230602289970995866129689127891122253897682529075467318490565131873200143737836832908377656214993271720051888213559228964536553858146703103236333064651349088528327839275211614697305807051011597522126738192396709410888795791020385956609614589379202135620591212949300797492196021743825146308912225053350185031039935868297630573277577705465824295755693099628412915578663469723791390917288980582079707887139950981638516841818425231242653582597551080342328617228539895178326211142989165188127529560234666203142342527358828270035046878140744158030790535739358853956075765909091839108434986051009662216352223223215020553358188445119971938829146401697922453669358716775747337109752131214014039640661009289692709782204054173705100671983544652285583135904738344717894699413564737379798174982027314188531995187229358331584202230997460787627218730735053060293885740342867030008476232250742766027606124116181076193490138399776185308761657006750009920828421580157810950336051449939978168999229504384454959206131255289524512615503341291680384240887887369486766365821776387773454506564254029770549227481940224411316387643660241159116920880713836063495507098235207882761307852052628012285885652924734749079076569932715702622730694569816710777850134427566465494862700908276482561763560368547890335171913579817722029789425542808394777832196332326155814096331436652616099451912060632742970360823593696258589887697685481609508884665078805924529360371599760778841151012241697829074196041301779104151500275366132696997741847655452136696003472444707061008856540907046371686269586643703626474622456999202264784773373667961827571729687307629521663139390761037556293761021758558429741713243208873810697640293952480220298282577228534790622332172981302273289781495231682962566400189206954074625237567330271383533949289431634030827871109792747135192301746942419489286901860891104211713384690261916060015308826001208699358937661767136807765106698193458410422381735194423826954863248532489442842011438209555086504558520017060724515715862066634770865977118227127465558530979084864556925532186122188749949036864855073929559605941518832396674812749875597500369253931158683412706930736992175225352010528247886859264336460685946804216735504608224259901422664977012294662651169374748630193659524675760188281795108599991106158540067563712121563372288660326383576989458764907042700082989335159665752529735107508925017677069989673710721200314942915552593921881188640065866213957269819812182548015639623662537134979298388507659900854417140484547001335905518663550593939735719016557549303843753391880032745133153245993006831618749533297034456749107166776543952676403690100433612176436119768259761453617080899783930933025674881684520467683655071288399044561322923516992722761482772677796038574453494582457581150156402700639962044723429433553344410373191233152436851215934819099643106138094019099127424604111250541383201255277491384080361624903897476421518362966429435404532781374539084628266773558039953084140515398036396657045331504925103051750468512144432665438869033951216405484575295236147043101155210367435509715033997721341927150292098955588948009116417428273450534961043516037670097667867962039299270048614536916144684299656085162956813322192438017492940582313394844636546198682927047999097712053153077251678745632676258881678005784305858568831086901605497195960449270167793779529676334532467883133519991097642894011582153078218688831157247390931216624283232568168400789499050214433891126226103740352034624860966580638852047436179960849661997641331002997296457187979417065593742507434551777731295482561315837353289196878163209884831886842949201810273069373239403992279560448683220177539422192258228104473925098346014748549912288248479717443803399911413088647472753480635793270380515623883952326478154434345508146093749035317619141991692944599218215946953923479569662221086613010564537597018522497613892642371495661068719277762885428220445113344242314783307805893016250789415787027030585107826488064014804898961482476010427792633799114568096238925640903099958573082474424501401769332747582271681741750106499382765742827685413838517313521191118625696450892245486945035344464463284298789830846944286471273371860491035544656240733231356190800955069630079161444989962318177174930885273446438248602620525375084195072236378304370278350783681178526781943402622758304885256994124045520373092780805953854168434634837815863987059510958444762784887933059254726218735828085853165289346227725784812528214633457040077969790260084982164844930706830491714218242253370900298884177955443610270869896750454600343721200541740020243873181609254073492484383284731154012230687181748061805565932284370916783807826927690839836508250754346126420815518174664787425221412295578819109325047163145992201658555353814551611718945562571907987269314713006753783643270378223519262594995440508946125563139231641340502006186948822234789905227326965194306805539874089066119648067295810303715228688485477645490968854263067058118080168096585913860155599053030433529038182115134925521906395319694330750840992588358206067409081422394369872280862945185970172550627963081914891056674706476163118440546378276919718897255255037014614795776076319194473837001907985388604838353044119560967214087507946005870000944778977469990941199645622686157168152092137998273418761813068135422352851434034942507902368923426229109005599977389685485743594724887149330871698654258001362817529370427947884777675951648345073698353828086665440691516105860736905795587990789469141169987773046803069255975982307747622124214407456489340054173167190278165636962363347221691031197456838075645083123924717547037412449799997687775179806841096542201207647160251098627256019248690338590319409081330886675071863047082218832302751917990661253160282231588477817798986562057322435501093578069559230525112684255063935450266716913132697282360279681274676059491840607387917319585069791713424978657494720736069735318938324096464096591895420509919557104956593909189811825793599358288078627050959806139615312724262664396516239300730954514743530647969934995545167000584061028966725046912447586741861671539354970731764724835692637590875492301444272964638020915769929426778638187177046522635829823603154817597422266135535099542585882099697678597330578174362524645256123738362873427125903818631348247878661072731400524262916590575491257071936927008108974222321816226029439010064384802633710461091863527085807307977629042701934990646980952217868833105531305821188058373989884657278195800298654932183807381568177456085808834705515409048607887989728165702815175564367656229310548156009650232607440553037125672701404858878934792057934169927433379664367613885379636911829297077671368554439897244416460871360117650490124186604245767613310659979462232090741863745783572708400433731575135118194155843122751525740576458865877076397636097491212195067572078185244951423404980275693125051293687967070053789087904059239118351173074772997260437977001690399849498731874105830717681963753390091646129558658195741271910038146017359656419199024025049928458402745731530664126954831205088550456534743995360029022420308710354774863216040054680695856266395514525915368134485098323984196500034400413334345261319976390747762527219074240269302268222457991946668307513062464592752992263662449724148315850469814010815312771469679177963150071187057490237594444065109218141532323041882057884842941759055156731651304538983900334738332164599233858989339253763072491996330583205727178013658663341791685468199200056972465397636427192547663336709949492225734691638855981118664826075815657751597821989558481527931244239696178621825520858347731073817652135316119687143848729479965536371281093211392927345791291333857977704547068095133331153108155074882026457652654257164142848110225500127455015679982392611841306337562353541747746519460488104191547963351110512664781807801541193748298714427791853115590367863485140112091326691841610483009476190195527099513951170454522337951034878414442731343717423505877529698150073735211514813565327288984375861225793990020944498088018459126415391080893012740601856148049706357518394962786870767598884136203325393653482394511229438163414761877898403736080722552203373851584510465241598901586217555610217486450765119075591870785572636397968771479391303181929754921739590520721912208902706334113884582821512252040678481047575402746848087379561651563012354117217052014023931215234935558579421262710592904555507323054639755182214644485021501417537911781936122129167270283727202215524057160963989032974807279187704850095583204011935946033840548395307517040418553150310770272242936238021978527207330270808338428333707400212029183338080406648328379113087454159334694069274713250052924044759560811939329180261544958004970776990823057569596580002382192130569201773668513411934770964950861776920623573010413848894853000342357434040782485215722486834127868523392220398368564655606105018874514388952690266222953549162971249443119926437469326103615540839184699233939412376563254070165705911877553555326263492541453353291789609529388798813414092775960879079343483068726268391887211729384587769665024943944364790881505519982645369748056896112595377535187681207085735757766690111729621231059575196969711492418537687711670490386904652873584829016483977719470242115397834191670445442970791564513127368351960354937371014813690562448547981916130238631061671792702589635948276599518338273483004273237240753322651460373325986292596965422024741001729845001702196675231259159831688214003097487994864056006612007307819910767418093492210715779147238783443975730497420403456210734594015062061369936807368810748192520500804288296676981049949325059196585080306062027089428960920141313760568317416452775081964494752781468091414418778352035070479843823012368772190667453663172436940157103378152556042596585909449498150369078241526196444705447351910718195615945403457011679715578468200693529407009280719456799416897238298995052154792437590486168987429930549791877440088165301093809658224882746088298393357360508097845375272408688720534634686023141631479634186626926765479518836908569405858206197377656834658617135580138697417958499118711094774285833728027072373121103296315418416960846611155519592914055667602002170359145020797574063419549434194719282196900252391836844003225626257016949141058143236479934655797773334175888951979929644826902338004611711831777276266082547902585933925676040934225555426443671332501586910521926714149090233761385148014058715699289024845074091070746001091207864469249166026082804372931258450902991999750943612281418759050023676572108461471297557885202690696822221459433581625992641854923564414592048142400112372073392808699066930166954669073730360512466452755186425581856819600453393829427194937479999073910514475414978334321434137753216380598172440830483157185243866267792489785278345375048012078463643999523689023955919614861194600448899616576397241497700439198507980315923690043853059540592969369658306192724918824976087278483264270598728548433390246155614456391899035470519961125462925540425588609863354972885974970686988310691865428112471619206915962833413734419206971419137278523292148403450583033486696690070303518171991215715787595869887742556577103459372617998760146229234385659381526452406906697603066683542827314394970813843370803658147600493728100360372693088866795151910805932109770515951024875159891959069062129139381915278402362736703862583025797774110258663511434788922901563441695852603217779867695801925756477389723494827369112057092842806956703620726142088531053865035213908914929431514796866697965872519640428731233286216830903374725081995096219602428991749837817223800868280608681263794866637237803372198656628009505189119497300933807680747688398081324565614315429683348234813311855876233846504960662489286197253120183238450187139507743625955716295855580033293404529797084053649978016803384537626435522129644988036698098146053025964255201201950006346222339306396488342195687498159919516034315869996319962073752672335400151368382237014016265601332656384302867652508792606613240200996511658088819946938764119502249003678526133762135240729663277033815609799486086366926416819495527415581248981859164774559084921922044395086307595617643823514976167936031705633840630237826795458841752254136007754710167370279278544957208613412226326888226156775474921078371545839766118070737693918750195524699633667779676807217379354848182473072814511163570719991644681137467721061043841455345135849656473597634864873300409061307185352084142730714743956073490449308560372768703173895447088192344786242261641457949038472402031041085425625259056642183750671196771551500468779539015660052853848167462913938979710047657899651580627744017218540217855491616039769557090647682767886862559884918215668224542416124416070208752924905269536131947682361581889168689795152790082513177068445402850648681975592501759657030802006068532554036577027789183951642573462604161436424299619745230840841225595059064700246088830304183745367074715990363054290388102622899507903833975838706892218265514254048550624738681669945895910300502858010462752220476184130250288682318283452067778990564187761897195663153246836812419061612363914873341980526577562951167680136541669849377477790322780109527910011475819757589345253998030392637466800857542419378717789455474854210711346410875518286570546776101752949267203126585795012694798098143854049121835549975907448099936897811036249474406134420129413274137796473173375241103879234738675209105023754336116703415440466647010720604619610527475629309516280638869349725609248497662682471887164434007087886022880108555607834303634615082551366791608794547058982000906230583810402637330409118303566062413719009912399187257409520923834992523479771818871634291387395793775051338999929469531016430642840285432406929722983164129000898776643383974181609478128297129337670451734111738457509246157377676243812556610567005382430579921458116252021743883040997769597448460619822863475005476194725022135457006821917923008624810205715913396347115003436776986048651955173229058472659745195953283428471220744039783658864583269467034690968864080713829134712126761739001376478547047146734786705457179917231346199789568234379018544102559000542085183550281085007047548240759174737020690644521966412234705173991738532768062612312540202552127673616367381011254692128229514231373512323349513071703377856590306373607931541465739107546794939910465850066894074449538688234225622132194133854281562940989243191521665634802236473961839597596264034446727632593945849048844110296375266612891315814701727592629319315206965532249593032072662021845806471566400942423890468510164204238688807260967169705818509489000640513997680704611261567353225279682584033556766772944603391238160203068322882535121727318535948789942127289075685202430698662993666094487843930017369447247178080476429174360710816199909929153769794099641474949724345774228026850252205224692060827777798129638083658618507598048097699544656520589442647989914744017740380760792106769503259945827178982117725735235950519883790987918772099461496607333834058666601789866686063404348957949740158768281712490462001531974493973046339986495232482995296876610882061528620024751413598039077184962793649619366101779808850076431871319849775918244697085245554008205619192155703975574071493994950910112348531667483788699094731278211532377664019194629849923104550995699665628611203762891936509633371995628116002079411791780059506422095189797613889219308773919359180938751320425804175542988215816266222976909063120464369918090073816004510236183252592489711503022951553499155635186685460798361608994699039467684337990643182794226352805621428395612599452943243748892083567575857595424589327094919638362854147906474643572916628735189309884580042225341854193583361253652500722907781484702922544384404227918574771767924745870323351823080419710993641134626861263657148514866497182381580219757675284035008145711574569705090044199355910928139187668921004229843201113695722403758413314445183206440714728739545568086142422855456424656547664320092612524499053547026850958239347842175594177101654558249096107320144894915883889580890561658994558952350601815245500116774155675719822887553329874810540149212961444611289023777491650085650379009856408704257445731173929117068986563520615426925311651543546870463882702709885577244019098259924373299725362737945559278731369756699177624129812708483019804449846174405181922338629857629911372486059879355927163262687433849352403353360005455775451520565890180716957935795481793454417959320165973739010857479501738835760922462805050875143628041267334812391887949982037231225232186860328726650247564785246628691849214624470392534491545732693988997240092877133456813166772586190286421719795273174078214724482583987798546049177332999163094726095001263703297782712098951716281679694991590428428072614545025575249494091131200644566831438204250156008737493557560260418085654700999173409393162386935541903661675222348681641759586685323588594691208021131642090356804084014935437161156109684695897814475786627261657934990738933881835453993295067598965808005662049929121046321733077291911201501608115183381896485390039960915982964291377280139569752926645526306777873923427237319075629901018040398443209991772856122866870437925052407518129604657759890788277463742119340519771195902870348883158603394457110348987339993326894836922126537082571576025836436864234373889642458472626980761014133039208055959581223733728232024400551838433823260511684701932787508298643716960213086759032437345275076399407471820325156507074348341912692281130703055945644721487293574938420848270064061698618920454105418800116832205501454931392862019883970861723525319386267133365862038758962398746852280826773787372926937743996560934143059870097918764393619119226110350584945422893869581377997392867296103683331544460792830426394119787906376023929962947771101048754252473675788478315153096944982785716155455914953031655345847484070590595107404108684340166853959655381278598409066330491757474842170678748300917171391406223934689267766185456467213214427508236179384054027956465735850386814072285390819901440737045847108141466047632761806205207969631353778240477366939431298092669446851125835673444090832419531024884934944860555246797840904950593406109483902050884594238610109661967367179316438125756041711605060406984406298602619039570361142830902095481771966952424761752168028884969817191729785995359348198142823674018726778314042449306598644591393472040892787176935918727572942044906717265952250501708875853663721174837330846063629832573022752530100258189160122928460002752172272838739712649683731537674204312878392626617894201188545995227262486362977618114247927831399282674786324753605572784079681658672738406891832778121847152264563300047349292360910799977514708080621091207948656592018190649580214695453674582788422182560978886234870938124094341938780949908623970112056810662430292093339316042933865064231274033753696220602447135617951135541668385343002282234201175276052382648718796957443211194136379650234280770017925745390430227617255060087668127881863098807825563994356276510458800516945577436536342705386260079192941220039533422156115131428838992520583212812731340303751391282398892187319978689709407113983383630316706981171153853876960377590975572231071367783511393809634321375743069204920662813390975283856987775596426903052218260450234775504812114248757378207902006171067021544133276633981301901967493067279952851780104780668120274981174661983929172575078106889201222586042500277171980772001485259713180364512928641063999072391540208677318080226437976956916771586877792634653490964054466106264421615221241259538123744209187434912905756178250771698296145345812682869317447866170389758119490109238318593964714641023643062777447315399070632113955261863987358339825937305331411442478994414931927067640096143085464157290193732927346980592833479109472327841671522101171554971734413420560758682495677514537898818406217362817099036934204103180810342806179131689403081072338212714066395713978006528197511101030832029161461073779981655676887707267162634585225252385024039460601402570772632460986017107646738000864620545945081647112920133308031359003322508280352222585836698068981542511178969746059722316521866155231691042002085960946812027203455597291053175025959668886002065327406615212291970557218450675734901378875125833300757435123922417943613758646209386371409880565260616170497641131584483170771757339203916244065860537295963479447734087296488048764266543805867855954173274727305610249801561190530766350428874070534906431204136563690296329180064380439922290514757835119211797416518339603367036836267871807741642195693591640026366247085953962647329529297676743644727061105328326652876220201449940563228970629520455854235690536439352362422763566594866597719089965085113614638455405356684797398542684883024031173899800682583636689115265049942120009255197690607662809617970993155206260406672401612993665336225909284044392601861103343173811503203235901472925536839732424457149466847761164080474839789924811965898192026443840553180678630477436477134674549104268055945721454484066174295745847226313109564961846499460814268527514295904976161429432224113537414889450050244206557198159315110195043297272847416743703936190543873186817262098708511030084579620303186958882883677252415417982109232917897713156713670980103475589704962789846884258868846221781038068885622100400688435142668253497394205804612039137505051789200998564768219718138568573898771439655434948607259021889915794124633065045815325948848170622632415059851240671405289244272953058192140062860717320041567149029412931386316464752412287843846581338416590889405578736300739735851854376674226681586480901744964248457808928089804179977038968337398943550112559319258526410725705040164062779528560913891347547629481826366395035908198121973146441414613595600833132955070489122602687743216731722211284206504452189724458934411550022931623989957116946010288810260621708590235501210170611374336405781500261223757242374166662697402332039168522399025118145440945855150362933996794181410158389881730711033660175526267779428704348145318164461272336673098536512650923704157597905123631365439171702944316142808533332460324797752356484767704992602704470590943151113930606065839349412168212572657630623261879738752700268508439287782930159965585423867267661913858375654334593228729105986736436670781078922351781811582272373657749711855891712950537071470762798256070435746615708789670395305684975114895948199120151667773535787961898108241237759297086705232803421100004168151690254614149113953557606754666979844991465373126044644518552086945281474011229096070466420109061797154007073053335233870737955022995493159787333958279153738504461520006882646105645129781467049991227688528683048551365820867590187536755957090119340025989496806075267508390905495958950666127628234850628869340050335740232090608724504207631229481044621560455348276160957034689290295722768203072079433799187729079521080800744976834848228044865952958841330395201901221819645614083915856011568496355395760078764406264435691397018277817510798382961639024004944649449515361503680738635400511892748468948448697196940528209121856511803682585243692497870254336109441006660000850328099643853472567239966686729798272574958192383878333698382187103258042483114559951626713420163283899582181471917580068466422900424499084881989803518368303414076487891505679304433714448497831715235887595843503398391236966601656404405620417233718844194628043773683745516724454759895543476167481259540294922794437876452971230851156807674432514779180925418707086198582038689152920535304722019342518347800492961984803146126199980652498242626699121988755261036902184882047983776205479109958060974749725393258175161741838259593185741757231139709718814806059025285774629353427897753260415036667793005731567133104707957246850574852480142930408104938772879932178288589850053701889971255829375659168044421216847236993847042107703886075879071470396449611883416494067454495992769742867986877119202218055894243866420947489111588388512725664335115124444123603004947322739818464811935285360488244184304296081725955461413424605042248354825161217457413613270919793288810217119264053183807192912272090279702699156753744770843677406065674048814409736501282974602318092709522146324620477872364119356176128363207773826297291363577374110212450277969380968272920878876302732058495826900594610726912281062350417858153077868194272890429487623320188765910629756400938634985325602772630914739832879099955354829550995146283606975479603801499465312607462875073427988174738262379020139891914036472526587037724097209262425091084917159928721257033093728226552099536391691239175335342565787305387710246796370348227397238144492811672910199124074200994211761015921267115082945751357708077136645786336072683272038466228546721618518600818174533664981700472768110730893457938707641244088661993976891332657630683747496053157420970816990862499121797349763173210077801275109199073940275522066735927730623932791254132348102444957166227720721530857984611923743863741950460177094394752439774445984213775189102418097278884019281839757011950097397121802769435130004459691988367672680474773843174791956336297120915079382272125481289558562032821432572253390078746779392090346992812775696909740904940359431285246640373639815633772372127669625956504660004436738861009355417715840314537448713638539593731411664291883822942326573121164274313264116549794667357778400056075862134967749260463683205580785180778232514863549528770484108655975383131914107292677492344586351413414979979995957819070692526600968077289585270393259514982172455793511806010604976872262474937782196025763006398482053872681810441327295794833601111373655878804446211921164386542274035512725884338489618888871740564671386319293559845390484921600750974828253481868278383100507429642039840519248694484247453431434308662565088202271753386671058463991444719878892123243648319256465681980800868868773356689396225684407908472795131138250846519594020635615188766532586072285409461619097406077322032757822484392992968099689039225449275399178311682543494901383020399048007358686542542827737920598027356663236570833682800909395953964506437632196961282347917468401143285885197208701586608846635523987033835733915612050380764999994280887752523449355123794681939271874010925732127603147585637626813027596950422424302812186103509657352269349210602294742546077149227367813603212935287579090258050249207285389724374479082434655711943501249702293380329411778937622494073797434606867834364034249859021760745475691129661348358147976200393554211958339996251603833777653159549246959055990741355629605396802794911975324794890253118138378635228182362793084592772871467504912713896013045378732413556486386201265042847256024514580574669802798389909347171683474555067706485439703816921741842418126052198004961877034746174757024334031955724907135867697961851451617062032844444120037047495480296278724464169431305541218171031177637711977959025288494857791724884050802441350440762455296861810501026009020649807456844092273463659508193348267655265038547727547862976628827134172105120173145733012112755125511943198695183708158150019958123909113888209543575643688814164688842508360147211098946123495965872015839580209444147111615859497641760420987341320027497377734557998289566789610630004919594051322508667395418384692822601363367477355960246476315016482741559321408485842075477721588628678220511167747100626602452288404667239981324651226251433706430334185439343772583111327547832988369389444641876944054893278158740132831952178563643974588053939959988053436102854719165247605742470199595148916981817609476164526050821697035267334901684498681792047929634358707567831484956421867838802346792292985878629950868099087206708334415226060076572998473813607211132582503770338877092804566417206457090478375140141963304168463061458524068894123191741097063183681983283894505047156631627523417839006466765453261398183478638441480709488088874972894585211742561791597044538527220644509160145985690581419022469514642004473500623402869067414953167491865443271394497348919288480272889777265589296078062399545549504897108900113928208921699131623598415764751363823466866195419113945339976975154668942412173563035627686867243154984787149306285410118908346793835867188735293997273957044177462825447496174616712452315771684260749495119489130037429687521876186757695506931755843120670704630741035661715808618895900947007933279233166127768814031170370768278789081362612186064994675331278681035475160445068629618867354510867907599746126280629901947190584285457094958377556426249247755051013510063701528370249336536520316247466262387364502123842311911196113496933321748413673133924002531087281400948451954798127669054975499830573876606519099604834269603044312915774159006174125531557260843180572371488385927051787142584102903926723191807904682385991990476004618208158504044656875450358648282956339135298008858089175640708976633607712472909740593131963030533745620668453795557605983837233579811328207187832748526039335803263949107473344278918632175274824756274799261914750005635866748300031864474280208251399105306688932119489330235891097376942208173880184405047138279834276071855583771485909442071374201008341328647145493445236789139157297860610941198376936827108516068266294197189691286855159129278075085204377318089148029341801142765705235210182263801207528949662825664381213416394153539685173114637770761594891796239509253003224219942710874821050575651115553949091642843006360214955054391269371880404991190255027837889512396784726639144184885123618874798138528435297666326298474379765291547500310511976022454563065112538143953008579986865040272547018273210249509489559077101561344813303524422864768005537922257684661783504453271624137796218013126944217861930468966274031138614746727786527961797601895636916973913770686163554845717048659152897519973092048987353793476425026446971814921076170123692148622093705277863415810150448257278368728048228160257551415212161446820916690779740067191805910253148226391034143183602136205227860332617630962385765066092225478594804860760967200687160160084204922157526803815031843723912468889484646548155464701662186684847390587997440401793406101046382708594970009338783799504320949494049711725916716345352066358301788320428263675303223373797268230070125085152699344501332869073486433705906795292809763581453787646034514630141849967854367620350413886156569765594921394741542561862810976069678918162663880165321151453417919909634135919162031215535900585562359310709619050009681095283647831023691367446525022464586755842897207174078723715939800283771963804928929806591856647581749673570874044379166058398031122483485736869252516742803099438136775651210454720394970115350104396021999078414165108012233701563825725405299911932499517753749079453640548734075594619641704706137374132565281784884829387454521283296436063315969752356014352494068640417616185037882592866296537241297293685470937155241078129854314156930250797228119613589788571816537818855065586401071253845300103882250921793349467091030974224228603231295217810041806739504307577054908971680412919149921542775632641729750221815632715071861870699388752070359906064803364424325079151731201055369857656408445202709657110253471604712586111534212716628854999240057485155855640601949539880638813731746102978916547816339780915800855553725272634083449682684611630753507524964209787200889297417207386831733703682271354647773305029620246531825120908037099193059671648708633803653345830037657779035136231795565631451468322031019983498380652599291325810088808199756044905013714192780502133381604659320580123115254024248380129954924604156084487464898024606237031960258778403613506764039446662340268226258972661741325060751271164283976879108092174373790670698655432269019247906384843156955005750425699358080879802319062003424964581646492130554598238433952059352014701367857250113638242611117062230782855869185199591733778641259450383468948958373607295990113879292712432408203632059020976933320085880129526242974236639198085385864932430355908715384489724447657299548952235172185512550532819795161672160681674375878351748723401973404313531862542146861008656216957859789080398273353365944420611336524857174484701189315062708646024242525236740034918483221331121019776667762890003812581382446563244948085393815631455408487287285479506166508033006625981595280315329966729170179484856132662748533709978782634277012234520160814809227816064508778539856571920793098852957489434240985116476405699681712776631604723340970894918977294617103920789424015274759401964661649749224401379176264952054229205684250552318785921573822232649092908548954461590778418673026529198482016494172854105426095112990509153466983377364089493756841281985464829420710258476526005174617320175972641430606147151132253704574770074586183342490156146213604614101993648379851970947065767247433264725538834970994753793235531305621147485885501788200330239158287978146758017598016385648554857660946831742801232614489306791670931144235158404957385947371738878834050054557039297959555749793402981095347016134591173619724459026195387265640813221186941657549386897300238763596896366568142946343143782065823366153727825390685873975219360444218726536122125302751477110518687901460566029618034568886800162828412084380088506270955029327416003147606356485870438614219030575246972024654435931764213014736468329703031816219264076137676657492650996461203748116184542605863604536530962860709030835543309320260053498771517896324685928394031420032234786171952970161231881642623046258710767372626891586248880745972935647807580549784276021089594728948647238717644928196784163825603056347041634896947527102357855799392816973914963709203118529677230571473842384343734245848606920523021215156643200164900813584557353824694400428088186645571801610506639288573519577996191184922722587055904971956163954148884978136893597360176393160479307596036059773214877329560542719854982769670888900411224114154431751365516240154388780807545704334942180434408196192953621900741751666975745406890943428320227016561376208168964083399757204034405204902170294661503580700395720929640243825317339025005521945128691287237326224090209486950941166483255903713947890192018967081060517126924448066114633623097825438709122632515288732540361941326153984471452427325714626692036290938563745483782944114234676002295603928007236445161464706953101959574625350607309810142601969163611376958906128876443349504716188908214666904050250892861290339514662162085927468716383038509343516369909719964339539961149710861457466578307904872131633066872900533319222431298793703062229213392224538459050433494665651092295915774034694651826891758919067117947170771258514634096935583272115236828920363932976934844657644136828245414963080981512090981182111651992439198190018039844826608181446011474343996344472458925164393140196344067093543519071932193847790503181353395214568511663859617402249119026914954813247003272955390855395454115927163754233151181021518426681938013465433666480609266833640334701451059847071437611798113097039250103065962540486938518845088273755631550834749791608250248530356982915072015195852502949768669993885788688841420238187335317744529698038766825395745023191910164433062937854622693829956084413193469696095775068041515998378539786166224824454294548476328267930801199932535726766205677567782166358171052300957229945782525041931082339602482042992296828007393234437753147510126881924781321388301525857449625137572122822156447779847665048572546536879774483405910285048235142492319721602751007165125175584897674367947631213525030836629167329882210820659231160092560949179409128611723579548929650716034370846604091854695600506785273868116742869661885509491215459106690976835372966478127216790862011841549435822052576956107386804434515614738433655357315342160918301611615093179863020243391964345838126818153702658277277052069676529745295861193137344786302498832788631331766768345742122190708648178755558757127808910505653454131490547786920626299300674890306808916332879920408784344863176081428718587216841337410871204066486176576408754864179767986457365826926736917178267961802604721660855398661366872061371464307675646467984393713975136821940506725430954389755883277745944889140740619000354134334597921571570447300118771449820599461724736075630870271451979905543821346507540261748842974853186880155783340215082487054816204046027718359640096602786921263861368982334635057286606648568046345743132422847310497482373228525111258810380419627661100866923138339205321458783632834481189179686682204225226835405617310377393262874917897465798827235932667499039435728360062879422956145270449331856326005213551563068357863640789604600232926675353299606830753385172766156119880459063450461093073022579625821242670432681597580482563786197108506400792996820751109414347073685154248046691837450877925895481369958097173709287870406233109084994086797404267820973464686675040721537668640080756938195566926240905416721938781989375378205151760445749665522112470875181105241909914548004580335575198371332982413945811311460483369896406245498276619662206368467740685846512229491056282235755835175547826183706560967087440983990178725833920838078435022200910639742826613840348929461813813484207388308754956738730105938930231470865575927334844950228951483831657626726576734466649567365321673246657112633147084632906624111979518115203686894993758215727095405197294030536023107099150129476456866734206850137938465808962599937967158243432509629871909441830565597424839390536241864362071014070805540973120012498901899312491094101731590217233953965879118170278033283059740440109334353479448356285491519519776662528262876760068203229145186875727899738590587400562107436610932116630467821364431047816931456010555488996727243464216468432039977321106968976855160007607409600969470881829034817076563080175707723775251769114061377781877698324274894694712725804698480523070585421268033461027066292647206582361022116633146756077934884972417327873290015442781139475803331899133474126006315260628897251143002722672824365991312498707767249882881480416924993023909506791082291745904774241508960527686837671035621200770131565005120994948003794803457649499076563849514521832913405195737078198437564948312996933613014689058962661917587198848194991541885562447647410924278804165199750304804711851379873591428512171918722381679149991810541117639648376110863829714879327568584443293705857587048895854449413100817524040079760166957968617269425806989764030715969908211148699505135673650540154246185112114890616260605409068817996566371560661596843697469757280759405776949493286950052525051854875981746947224499513556273160445428019126174732187746957459695706789210133998516186094699076228152938488031903044328815436650241319857205317195974810355161070159284754650805090189910252001168904839202022066687161788251005333518269506098497771264057085258739270029817974715379973485296623273660246276118642694076393267375272365069799464902290993903586361148675516502583447977379342081261830237225902029210667645156659946561914881632466740267586470559446272053586948135981459604513509052021287132016878432529697890845354146725276729669500731683918545243625167916756062236036356260357921855157262709788222430823400823144558291889732083074553215987697752512557478806168262431499173506517070847368990059160890773608940031005243927339620046508142918670510147824568181227045788848831577482985254658322814737873609645516805658278889099203297989888662102113228739635017120049700064822223389580216885730871037347165109383969302576326185770451700334288529430287154831080120933579649385224166743749356935960110356574743111198689726973841727075389183915110425423788295987889100397002887004061359917699174173057901753321385010518923464711920258326150084070537009613923580342125905632414987655682304967906796175852288356443635382110983770573424194583066601546383995357826307398456745559131716378934383003107205113756647737009365155582528212913527188441396802253801121120407126315161165160689055473193200470476898033700393868959744229114260817381629797261655857310404696123263226260272239599532792442982068007348619006224048623032931394480694210500062855147714094678310685664283035769241894150212177460587978101288811604358069830168815869621456693864646173838672762956774757502462613236344662927862921509794727009190028613701551527941778829993073611601041505464391454011049882703809866255409475114053123102097230799487015009529728850594147467102016594718193318006435277767848911655089831523819823007147151332847432132551946349147674474958315213701877469423061869905966232452819615671860390150139582382558555545227890689981321108660392792557355480572991309999644784969191575364718892137574601021313918312682077670016478799984086730177626885874237725616835993319782994647491662974586818504390185178109256566752481181010787584511570337212272875802235160706076009572252638493029718616934233571243692206361307347228923921350507313189654357496787100578597860868664338502149293918508719689343867583342400820620797671465622357288397271573694226655868825442773059122961591185580637107261110528284176231125021943797620293058806061891178012377001664416594629393145756165886799967930193417191010729302324162926255786241356395015771997468719271249729871098862559563692517446090040828172010746945914482894625684318407558366030012649673479242230294415708679426967062146040004968892603105472580295683533714612625379811232944521368922025406771046687838789949310488647544781088571568643159883605361910754347047649369581692224649157300435724632482192251855026916923891815440213058933650786803562607001361625245078287801967282634815818829870676913861247979630498095005392914487600805230156115949625986694255131646169535093528793622767523502529010937776218145968787210252351225461845080208355377869337769936822250316017732684029947515265786308738641153831781485018473948568602661630962453874682445626171591470406643474106903855755337175126057725248036110010490950938107653628657077606101138098128378141357402392204237554570236927564805143040581946949476999738635484676140296266423362993724127428447282240460030330555463184059059256319569892472535881156789323333144471703901072430285527986508355108348098493032700426680828425705053862058896968784887829327507892826642781999891284565867067400096026476976525118851598461907268227251395010874506579004966131251405709165352071240001718955134330326419145031534426050219742693556313540495172118537186700551688712096044082670960421961401193649656732856697136842582059537058163326405313828292095154232052822771198340853689153950921417037848527938526171117564837274924689986642257168468432200765861905079695745481039257692625115092331901918281592475412249199951290314513566772589870524676869743048949995359030611134068118539141801137920033510554645607792745094298877921108519348172655731694479263050831789087995677441965097483945057272266013587481101814828889824366630593267058368049176243939144184778195794715625005329003925751089120137183521672086368843403802042919523223367959571512677877836148243371030266692260461918402996501461433449349918755831346757850102320458879412919256844432500787553673381464226387764214550358477398260687607978731955036545138238439377155107097815052663418770980014715601444598301308173201388684610686220922108299674584629793549266104170242409371222823060058188112440123519471317045425749039015662001157468483936420105364142420734148363993413667419370218470360546986902755849446518208187955345267468742458064184997003681153977263345119301724467232556263456583516786558804679691629459638636884172514237688758699040933197059571415090880551949990125469725218205984596364663681451922329780298629409175891852596149411387788109864339099456304041297054138497707209591564610648102677800279150766505470652544855817076634611395483072321115525583732260650909106340582497012107043685540200502353512311683878616657210532646969538306747344621889631104952801285960931963878716245784678653329123658118277228798353792051805197134245862732948788888000945195311628401719510257635457012614886229399992332393055980116026875242276005938118447502708636050092127324459753343075591298447189260109796319358880215601674744343896728320414310139220836429670545968109983908899702249285543139547699418434916344059940743224920472866815539087191363434406641910767906715945109511534095680506722783239992287980192352564195137885912885776735044056992915958380329935108149195465433763689727636880625349480070426440383841139926104821401703741987699557926736637626315939211094058845214936787440991366644068693859608863186443307726926936805381952446658221519459007315782698773992005383019339650792826810951847091212146031376391988712456686341939157477635283903987801957188906780565410851593336242785974066661670614489208514493050300065119699824835166342969672160841434046191050664496490664098680787540496588774454801321774805953893751058209858813507184241986063810719529790027628698708802680451604975154296708158456915766014590021196859679333780035802051524103955354676717064156740563396980630357613822774495731559762791974295218385482348940483274605604628852241658476026616040710869443457743742881977107750042260357280733362080949837409813850766458811866965225119937606296922480183840268815903269526648418553293860260925216700448911380499873172999847212897795192165782338106536275111407387599614138690436252852424639139052371904372250542425592631150499665305883236394116026968863094742352141394757725053530500609169550796393345281335820040964214252568774131643169934727765014563759538975855702685963067118985144544173786294147390561796417933586798252561571523283578149550862432725862967330950215745811422085868418866300769277745501091453112052503189565542001251841294486654775945319458744842865713810764813999628692553873156152940269129905133676398275023506169599952923348466003658878287165395369001206883533948084696484840599275321042829530442698362690309792554206635862833439735489703330346062652039769863114223550503982047549069772323919542949504469513850889303025192682730907072866536138272090265377375926059224022962651131976028916481101486476104328853664617482524496967085173346379285241065745129015546916593859832106510078982861068325971250358327667572086570048185694375564562125896512147090681683151746913452028592795421982168973690219849962313185126353777222602129847402798600787389760547398151605164844523170614753081982020552106787314603873868550274393725166206435168567086813290619675573838930821116655525014504837096688289222615357954164983159265441362601156176499322091184379528598511832750456117209039874216456329661602797422205517897675297435241683272231049822501146645062580235011411254032256837388714428293886440590690950898987598884667159285393875423438171497592329165628986543583364762881706289910170549742154580586399569770988886510134728252141266001223769034524616890843812408776741610047126508421216703970014752129674084647410465622517929213238095141831732921001057332133113068936738120281963406410497237723139936375638758347404780905624515004539150729209674538631039055589059324083806013310955481301582643191041920528316389110052651861350601873664884913398601186962554707219405567135657690991089484143908141375868358920270110132530189470511403696505747768297522758825945041869960522763807377138841596384086697972357197521950951600234233005168085568487143247497040869056402516686659677702785838580931736264623409529300351513949771597621409510473684821607601145375949771860836738281547416249095797876489567906805158033188062754416614906117039022695254234693381668552656586691241590825199798290655663374094516062599329234183039675497804000382263013035946785636865325427105467690705008296735960258466618391566561429224683750940516160511204299269186698201387268874563254457554419236595409390087844493811984059699796066473414966089496249493338698299046240102797930160720056576489729856504730648931704677439636030065783583419793349187417321873937715009972691818943953545177179649419127648969147132180136230239438850354460347013043849936647421081795108979530671866016665532235503917095858591696457885393379107049714263159115864742895461554490571661376191218773267823884913150093352955594913637585521862148223722345083815857327395789020992771489687609228433315806597880847751944393386014355517287638566802006811867626404931697583015424986773672670350386206675349330039975368876816673659725624309186255543040066919723025016851219662932453594779949222135879472036821435239847600227582726346903207844257197176190677678728397776974962587315089264897391620553985922967997655296220384481732338069250568534950421035758225833062492478751932205510240488434591738769215092692507481121816678846865841761349137235405592072444122673218541581547598940580777053370002782609222889348876733348733405244322697175523163789761514478217524155908875529388695015482605547013463021224061333827950600699746775358065415010846611277232639233794273903881068141506734849113134953345762490862973788108640066817219582359296343874128265553189265131053842136657177502561357309390508490660135855225388483794621122190393226241305697553184517939806330568503136356170192632440818513632587501411783995230971471728699121576639621225570559794729470858900978600240168666753323844461515103948192527330268566906029697247217974192353862098625539649148012986590304505894665011122351751680742261836249228169284964555577128308170201742106234820396845464561678787824854503863923209502740817603859680724269306191235373823294985047514106084469619430069818414455488655867199853112178738138026596160240982049419122264085452291314094530372075130778176667145373844535343595045986748528138825166752612866448627146004009429902858396743757294633135178347581498126484209428848459930172159412307921572417912913304538529033554240817754371071579264806957663510596203552894389270394475411285087042017553956114469849466143800865831018202163892884593942227082983033366643280196419417274229192204537544112371951705624936697874263841951881533676336748331884299095161377494953529441212259350416386691183956417553612567377780134384236850334085328897808846568526190107190348005717104692220625930898044830079909462451663290391137856979001491174629011463830584410123083524275321643163866736227471839812058482469474424389530153210254862553117933774570284592871019232562033439711584937490223293086482853386723256017732477307431938855896153530779336712254843638508590271834451978842489792926208833188526696843402050217713595752893048657871366825943346106318078259639181243310550887163781220032972745035412495711145546975482725497252615736606584871465525339602170265792853987256940428090615286779045293185997573183059150592481640664877813794348972561860601994447066364924553000750292237248423956535443615058367555160577418921746327722037644544581545920849029671335697485005129683439901929893438234567798732399665651140565066926132821703890770811821551019313302035014187494662113805300751916731354304106500177935470122089324570516890519870902153759173507504470463524093696877365416973867996641277670198812065938445391060002006823629498232317496916823958814531710995131769144751206769149190602580048940929166675047998377569373598309630079886818120729259063821003159169533964315884395593870977929034314370953740248635141361177214654954588986600113930091515319501215121044611241318124832059574829801450160363263117365359475979875046101291713703792568914085407938386571280145125860789313764546039959532776246839819374266981853581071755499770593838886581988175667870797533428606084856913344565572101878252289419281160143575911865943741095125453934647395738289088538423436355655938827956627576660275187554483755933309118614790728503114520017651056162753638932121873709242271303501210082961660528805529018323501901693773543272755026862212679401440107304385879051270704960475475861703519217868142069234064780999537340345697577054318648416720963174596568044644213714258054764331545301826904031905871774766312311033869389249265665461718644843352048287882123312311841647506604820546354882881398132008681808835219433327820924703869652225246156214367917739648542444712146393379248442262155866475246500497369842234494467694113811967787157513651767217880710821469126482626932971068909328055897209301732931261691431251043702185707337063122369257487982556968605263193422905124836279482067889203829720775660911947116312629712780916143542529691873794320620263409442234325703643795026280699320008561934152777496576179797163444506062472437542428858803216630399231448818246091142008735665586030037958206197071168279362000386595662875399316411135110745901861312662283206029458739282148851025507623390922658991735520886275715289761720443566145253831192462965729109773692110858318265739303948909600166381041270911836133096387026932124635300706198553842632619000797826860032913631025933678778002162273824393060081784232391939389863693298869334190233753831618615050368582566168898751535779341742761914907905294567747511499228780876368434779951678003042038902267870859203126882600299962743942169322634148590645981676145630353206174010136889651337367786607778471666641173618248104035496900459148756658944481544180082589461948074174993124760796831988060370329154079253120165161417319551144754516882049432678037308986076628486227980685021408126053284223188173668123549565907212937936683984783467287230387658248892496227947256608138813426964119874390781488734661860262743397317086532324433780847086556088304766326273947517129696793341532034896498341773664610199856249208959499308695739410219837471738512111965336675165375450766947691935698600134195520866615055453850013056793930074667499646855423918234780228305489499724540184826060874468107793261142548698127840069864179037479044416480537604024661299206808498026307347137405101486618167572141615417151333302587970496425323916681840257318858694265165582548323245328673772209930863866342906918156003975769089924948561886489246988290047924908981987862230009638487483072240724302498126895170165591717059575767811119274942499986908609315769572560118982724396527914826779930382051201504286785828680880929045944501199489299787990041335578573165495794729132794147541040952214155445911563668523228994896530336476418645138848632445187933953585894789490223847439766293725933736549907217805555793596312412689786603367878261876043096718506070669221867072823842962337915837609558824233557005004447857196366401562656854857615003360443300644550391965254952042288694802035994918794073588629014181373527711073133154947845802207626477767925528584539836598270772927275678352116413829210730671759076625176455300478392858435226592855330821734350115731553026247480630809118499696986988820982873959833275599477456385919683025623233906846349309106364634192791600875905582750875978933283624781707297060575365905989176104284088780557274872531118523283308115083672396689210744380419721629468633079498012957659112950861062550056396789717978071402525815342770112992325110169479912921766161869375334318478399001227711885055982134318953081484010067604419744397515198235107699762063847995763507222071917269435044261917354774554345405858682389696234280088213749407308687479292259019720224146636204056167602135586155288751879558858284308426389544194336285652842221308951843622909732657544353914427674922458932156800958814624650866184770438317186112820286854537044025838932780551357966411286821406841509009851006075287174770505598379877981124171462203067410563629398995311546857159351156278733364396703286010486249659329211393485576793038822209485472180720375558462325394475113234520081165749697742904739967071862851805635755006232986421430855550841458733664566092787972679251677164724696021835290789150462742120410103300439448563678131385370555210064755051244962864696498883951411650901569792554889143326354812843688332826435210957398375711113423595088008380537887733912836816850021192086330015343840586074260668953283231924170745649312915448445877560847865248234241790175524549693290605013008659212778429581306208018548173633782193723261995190598649245900872443830006436833686364398958710493478713528675734352080614708217774646430863930907180347945965976264977827639318041085087584207051680885717809102860966257007980693111159753080295735172039660672731415557453006325460511315531761328181743940850589283163216925613036238950316738128737666500515195846317623891325346096893618681043778617527540717618901193275272148429884304377119662017427559535281971386149799084689557363792570668665452376617098750590789229469940787471823015925897786378345743432921612955237392347861317843813549488206595520383493689336488183246633960671170282086482111708682434092286987530715993330909468877727677464675618977923194641347886841363048230941852293041424273386989555149300655881524928162993272381235514664016720039908776789113612066607833949804552476294947392401620718991974908956582403427170200459541653420471658459431194618095265438045830548588907132987074874083996570614519725831083769871969916377486669165653058390490938699523263393173507676824504834362103888296365732584114736118772177725943143339365671816799921079297703730293898748491063131402082498682932170846569310948947208592077270949756062156159795712578730753439573561969803721832531809906110497612226228414047188350980765029044455561482603614988769376378958096707236742793738566444542029119856231377516171887998447742795347929748259469937306104683501665973216493007130584137890219194357161941469163575718569108228902828155389089581441916132024371911601186004042325090281866397362615280037742369555260434455339336590978377802574370497814951286297942507928020404000027262827553060846120669617360329981122686422112437012562199979633586518961975065192331525526154604239872920107667091371485729210337871900827858953735627676638910533895248344254521683447500365641624486855601729178315101602872470208544949662647848127021675248274125256964038960635138116237532004452915137093177694388335473639189215928999147879894816414949600251964061032682039395097612453331300529201169331467600859305676072786007170817144676947673592002091462658800570942492395768452867761819822854697544929312498775251743985619815840057511463645668740972406968010444536612063241083150234885745201624927169971068921669563802814148099473669648229802860347409722146739454539379114715717049063091530043512739614020043712924508028823313894750944602150733755379961621457199280175999134111038162786431730341042595835842375570521670708830826453992121193135873636039509345061561244344073912076277402137561960006554709064834253511730405826962878776453022974387220296384668147517238018334633591975011736489919536983797643921151617869674643369890112613507650036396947409147003158966415987956893410388820429512879975007366258271077645474171826408913016451032677384295641500326382913138148877167583819037377574411254711061803253588508233589380303751154458454261176288329522165694380704034831105991893663694273039552048649347976894765318546187448278765888180495829166588247972957121865357219247348043234812061846158323125379164096307659261053550143999728189416216720331775560739075765239753527988461776779580979828563202572161361196643384348763833274734550095482084597381295624102673335015764274892461433900924054800422141620247682930101587473770014946387124178844757796226318396729169316448085861444133482392102698350686585867886151994013545678616187868040553120509145192607522987768907639776831574334409212914173554188667030470727617355584062162560458437001249687543353525554894540355946659545737806146455357609322898208258191247782029226754012412243219067472188774895132298080204025971678558635266390639911658200106213532679854792903748206981625298090390371456385946829554768200245560339975772662022323015807006936514691706114840614950319993098960771872845428874990732330624832133479956968616060738258174917608844536906022356111265398921714364651701858777062261182675541874054277772157860403650662123062928439290750841625226011146913376911319190124560544144368173651571030048526733306202426895978999062219336766907938340652275864907495556714354006354010530140769496420987193890038158837199661826649838699266417726496204873622253386852913482320997004790719949596761256153594038972649484408522938101978348668891039334324100106677409268445661893862854593107676292194666771748054564480444774023534934335519879030775728649749998629948815528753815748729073058851753608645066776760707352589929392635650358278945679558027578956027084277544594652533447856846827458630182223240852411829692094589127704709507703658654630082701642952919841189666630045517224325840501219481334077837013869954606240639223558088982478577355229678337097911318533494888975200994360202997971546722284212780829102790596166337663021961617832754721222532965643780065946793655597623264555611959537385050485101002615610388553370892881286105853761759315753538672227562866015420175745198931655545401136321328050885213212077598896934923685318495572910729988655497295487037626774957535753751553067762739455375567789323047015562012558192207805091774281085968665198775098855722961294895667042376960206950529127416793803797168429103506937557741339696147503313521347874377309583753507208810150545894162354881153808670105529390403914689002464660938831483425996702618768693625499907935936398590551864362261201153518562521944137622744569836698142712280219095697306213969366001300992525767256022395513491248212986156780632066588788155435028635432438945530129434162325216853566942570270495087594367411427447985946681900602905570743109347740132605228398227589677877534541877789039153102520252549444961484364902625487625063849034428268460040659519518010777017342094473756370219972621090554335801526586471424787042791505813491675597349365256942947901702572493890148261243360359786993571042187204180989986517788760539497923600922035694644301836608090974523708239162488215689529473621974686804661618807528401769435314388235092037386618106542075004572655685074485344804064496157659289391665779814562789849512101780957155013677100583571813087349435454115328335679386242763933747181634579319950981537479913956703105713773763348478918723091983684986083501172706197882387396216881037955890587757298546973327731680170093676320824584559808815984494864229485876905906761705743816617685157854098741688516257048150928891765975992174026460521697113043291251576792812864897420533178272778481947779362999853883948278081057580729762912174926542979420006049643046106352828331503860702525426711942307112164781733219729978088360740159460584412759624189818491930844215805350224724829845407425149450301644534840623826868787111590245284302792755469636697973313936989136286403899022406224607406026287226588564398849315947750753939191314374344256040677946647658094865137536580459095301271070561284063831358359783320853424534394995288583591094428271356361318128781342480938783828211632063357823247444760796816478743424918649790337579476341997725680984031545810942250733543611157043208089132612915541114876395763782758177100822052791738972256890291823820597901747572850845799149932549074640783910180302593677535018459163767390552686135167922757189029669885757019074209760663301866843592644138981924362370180297334201412660935908901224286068350102300368166460895219479332278714631866662991963834687940656663058698222921543027459462031994083955086180502994504465116759471543550365301123805499311415497452837765214961200270692743243938870711537017898938358392926991894345718532134534535673921137564150092515648474352291288690709550496978698777037502363319078871479390590282217849949259804971117289783715944312628855482979143669973434346774028546774063117215988246574392945339924592034081906979537908504230971333279467549063574037538076775047277239200340418595060406919146910370291700945288797102230530800500656199608609656822355705299161272504866388315844083367224916756357147614603416842915582694312854940408439408805494573494050369539938494084849329935399056073653516582146755562263111394454318702267359496703292557843551496248339811402113683763268673983447507996718334909147252528866221191866233701837039357308624357817212948774041861492222885427061243341282847825224331634199359851168205508659189326810493318964162646189257650243716162821205279053482725497206426436179332050552028194378828260860986281893395870791996879393657288406525977809618267662833757316827703360817291973191856641472102229805360756032646930740408984979140459432017077760212175310720211368039283855731536348120768716348315403565801193955304446744072404969263476578469715805279114832925314330109443057163157255951314453679281450421700039636883285739516991463472816974657711449605821630068381578332979093635086199132413386775958841082152745838605416871597502220089682888504368253784187455281997564102163133852191786433947320893418328887959491080142901339959334221744301346671216023942001182845875908321045866710003708825720738093464599346589588985669695317836116094493174044652903619461936313630956917038390288442720011178495928891643821307889712235859488381895622862186157943924220417315071314576161196746041153795170229866339390129813749974706259463371915566760343120944689403370761686663744864227664415237485550354536224256435341248685542451876052279932972183973058791050639109210721025163203241583772138977123773940609964366652625522416150645009375099964617161382798923290240151822391080455903495845827357047017736309025171093769668758516749358976944012484650246727834512778870986799026926264047912444456110173752159508836309078641547551490042926831672497330003939062022013377821084264750978375212657002733000360668110543383507516804923924091193356414714478650628378515561385828934290963955868793020814920378871845849000058713844902653167461461378676920008966879333889974379908589057059273906686403730766740886529692020773231709022923833738718637558986805912364185529193401011588268291736202716827549206989722571376900145952888716119519941218645899681606371749545693800286123255187471747616513825523993934478900314620704446565424660102981248117557649339386797499648514629572104348172793936694130730025779715697340198888904343613606684656326368412735583893139003108684787302024294918339675665570344476260736220472409249837475281676068880388159822972154526997126039866693012617440861030895558577571901872901137356588155884116595303325590353491145696329593434025743748901371124430572849428306163936331020600452163569468460106938881931056854241723482684563812507737280387160757481124218346069791833322592720792574227797447404650695601134445197751573571789252961743887601238459385625806975158357375253895032507870296750393001427733970666467664082637708594718918341588103959514311781077985376204883048199169431892761647850678261559475957527575558483980552501052344091860728349086457367288803095722735191075289234061409452612872386115852987803429775952881383014695777718026489459935761454690537593640758904206597651909153654282563115079833050546975918077214599820235495589503941571677645667885799834265044644931362987328977484844705597720743020794689888854236949531400550680643397921704038675567567074945558613496987184722894715898484982856351644858738001405953692367358167017326747237422944888979790297003974099242559335764043430033840609532113750784071209018457302055202056969633570956443140620805433868616639775798137585104103652594268460175817540188053463530984950984898997211932350334695594147759847337085333264072137460606289191691954731748094819357620356378342528023309742238805514094280298998861872012608382007120871493984476961633008412855796387661752640327190534019449199456183233133268597163629106058197117151710598659662697398022363259217802403459979442839456012012559376289004388815472607204439890412146213680892172990787850504984073372480285553246486048490914183548238352552140764437123519698113179913090374100004764244058354409897470230212945737400578318119219688998830771477183270024247970795268557835303610316257838801244590499620519546274936183512508789957554654855681676122999590800885824413002936642622162415843485358747553076341906106099441190587977557001851193600167801605354318522267762122272126742613988305590006651652185787410650711504368935152032267080298808670472476658699027913917330531804326985715013045491049842346747017070070533482472608022047197994964428612571259337723033905227732132203906288297130576269505108934291158712418873873537700236888430536829833432248060051160388170037225189402311462462643700297126529003928781147668516454275323601227065730156831571817516060558878398968220696853444483644967590418772710679669325034233690221527885442260210853453023295897567027958872822260910765245990759948961269227670099132401460788677281117714207338212565409541582843843635338169897516595044498603954679943364527228644911339410973514197911180193253975098774552249913171430629694385668534639815267241352092002707274639887864487924829450795303468627988273388666152640711820233234489653172578469098944517489176832543515714783756260284293588791583912291279848392929645263236885211048404859914411912561646140669293144797684153098307126538855044146036537176742023753070425237110715935307703298989127137423153955908946593045816331187362668383483664503174360112283968589616325078153664564849124139537782122382738816295665550399003892786953872523701786735808241610695217648375946065401159731986211819697577940902066798796422881684326634378915508678687985816791228419599539811536800029999067863632297365889998852340496014332529659898349381025861568698621255860013259698955793463408771953577163037779664750393115341615004780640755611859657199775111085964787001307559192449257165617142637137122269860631668055877397431918521896725581684304826380639195440447398406224697940945386722296484847380051499052083876139670350017412054188952558123194217747110795852869012168141626317469026033443936106444692004712769307855853154459031881302299819867440339715786256437679542970594834915593347097719171959649378157446787256220420771566225771979977543408919958847263837936591127220132910422418107262257503657672467924209793845208812990159700374947395580171005319338720740262569170414041166612537733823414902379761646713141360388575669329005000999633878017432943956285995637032765129506580170943849827433719442922640015880558911882200325578384511396109727755739415875782468767981382452475194479283420954382037681843452824588445623254608746130453326066545573692810850527241838921595442005906127453975466678829297609400197642672883911861748125264667399477293408213171645821408196094410510170575414371941104579198115174721754326057283340568603315312089954251105787915698244960512669277603680881877764271104289878356912237042148909319594243403741232032740946123520966256639429281302649304212572710740476766807939583107013284894117870467864113023324261659040017800607567437274383724448066672112871430419947820762786139437014797592497759056027114002161282738455395231826813357221908643525192811637417324946726382853606451061154760768172308634090289061020022600653793828874006243946051796511888389585016575982273285468537403508232631010533324944808808247304295036137102710404711740933027676224440989750277528816099336869203981008467488907829624386202212177853899062581503635727717148624613377308815339253779994760939651531565568619948188340018954015885079204414164387852662112436544909667990370531671177312899744407457332346412033870034982063815962141850011449331008584677952617604337294334953178828543812531948046018521553564487165640110382673284472128602791905777757944875647977467898143325002574560430789302688159627057136504686634982846211278604911003753808607328747420062029016365657674823646951570273388645104583549625773713672079785022249882859815994931031942538538891614200466743387297057652410652871887288695117575017883534506330673952039545156203341116775032493354539783549952518345030794022630565667020421276737664988292466709969190547230075888020360304494760753304936832124188081684202780143495635913099159626002778826462127202162127578613001577096706859029788410790983481306162787864857420802447137676181116905955369974118654166833521404601404697333914339611929643442094260615514110784558833473033258152655613999169734685808578390620379883726887436769941683488383319129020295784660402330816958472126570672181375639053919825282236701783362281982420152355456158982121238346581438237117516179510930943209055287933885847411412137277210809075328998703588061228406487840178760459443388755429665583125274225098152533518198160729871846256478559899591542485249569230873347162071835763609709778718616421797362418504240014484189073167838539412285328882626114655722133535497647273144753584371104847246955532929348115307817470102596474361263999300683435098055882279312321451292258396722109213961847868199691348349648829597000887846697848422589249973557076116042808642994346762606936071124536812486013269658433041486782439669638545400157517163250796178929328329236014401533288603012305900543309558151095280081110747259594168020311606325142694119937377329457285700313030962844419367815063931117479453973330385246057622484716777385230172869619541850735355117476979038078627091936554770086957160344321478189777333872169413845143665195891886402568591777187610796703173885597328353368385770604308857946497120094211855445095070359155357443351932880296809352631698306961338370952385537388765531717187331629531003521151413288009000253905501308703018783361716163677187497844994993665989201652528058173813093356242863588857927285357419914799918896469625579066288832877391677934494539164144796766410066318104927119052664179440018941327163040685667267834805942332362907557849280149537481265402233574568109897552091254031529001875314444841286947871236504973780641151424014462605057162318882686768785277099920864640050533841275297412724215494960858711293109657680001905120625029274364421248342833739397102404783235138610935520164912760144531959219902476763914219408313368843803730161939620839022693057515877515729279707035727064944966259047561284675186936937547564095995887550189687533470320262485235546310056947554875913585394257152015945323132257807834196094897048737712123426196066484060519118186375633419004175314201905397086220341093126556178813602775100565267368035398950561356484149460747152191324571357418107854517339045374837518900006934056391636347599629574595705212618578400879727073509574381688947669782016085960751130451669224088633569686504750837129593438005784470972343777443533499885228250137107220239966150283639060341613860307890625875590738829821196538643118649057967645471885288127254807910097632123807128759949713886617244303134070471708525189842463880569676079971116192805669537124590872647995875435106611680785511321527827703821763946678039875396690012861411793939450832019843899120896848558255194437290384193921732434124221267285230195752976008064958164949855897275144352072924205058675353912988563429918499558795300731354902250229450860576983669246621887945779268467884395585875604404560849994025329236840814411432851675928102088320235998762541319787829328868125247902404567498647230953788418896637766477199193825680451944695025345644564375869508643871882189551073858525115240986769991589051819079045088421609659915519593462901276089868974641887497629864637441057714850536671610736395274672375930938084287485537662384857719227323204673388596167518052906090245149038778398590146521671332536463493069752980896922929847005683573708913069298401161842732591969143377044317565575582935323659590529430666593946735729570080371019903597985041948301584611352815405385926128390167085839355996207435389787080051481976895335760369598790869219662606941117331677723051769900547414720107720258741005721830120185903647425481442992530039755114362814800977305535830631319116327835143964385093699052553411706004685430582922141917932135734303373561925675445840120352952759986409335033302606161709939300995949021178895087648870975865485693380880392724776513756550582704845975257376739769331729325363024019642116349145757367650557509924153423323871698579465950782006698255591138495053552431891958687811552579323639292667152868824702909959547730192700904892244619668159728243313872710039257862595333581056003489234218636063215669202534759508491624733464658143617635480415689101659792369994479570861932758704954158541039254706620538812607358496065664287290382498764733289382286038701621750195810664974135221772681345720392442453225918702793101664070219840778513721638724077633778085015827558704446560544328842827610070546086208485384382063808490813802097072936459333791364487586372855160728806758238541670648770044538576449960278519574926588265650254984486645289519861130020380545188431559108983748331185445659503509455664596697406941577547269479321452090781296819037468486355812251713719641792742670832633463111074011687226466333258329670937944675929667037320000759587376034044743962636728124383754279454918369321216111269226852540637208745491359693445778393146171260226817864168886931608723512283594454642295938396946699618826903389318468707984172828680092970334120575612682405223122044004899590649589863916064679673923099988235248441414248202075170696665756171689958080897249667572664900460779665341914102946004664989800433394076383249118110527566616973972227871608529635461083283955661890098164677064514131578272556942535930150198118893403161806119338518953337854240488352675688721648461779049170491349030650750873634873304367942697195243575541427761005635185833077796326316128010855450386506309440639973905617591772830468847713214844470064329532089878515277412097103070357957533599763574827685997534887894474243545773966096266248157785326893998899524366214570851115696466710311515425609731647290773387475173348162557243852931122890231425126096204617264769121393179123262215183575671799881803296627717477969239972838475889592478672200849001775359274633866202206879215284215920750090731836689055065781578713989220993308377032556503201144551805992618172843541091619265179206711768151538370226844847553141735122916836028503878633701337679986429888210020754988534156207461010862726577464963749289119191987399957367573458175791733461993242473033466713086967679753798659081134545848597260665069137626122355618658855324178904447844649062700511674885465977512886950608897763395730870608157930493866694430573979388313087101298760626027428104465444052081614374509569932920712167870705813536730925960378518520240886866393146959502920792014523158926156149481226357932286923058608112244869450914056458323504318742316502849402740447895622465538088752490748578934264978730022003004517752459297308345775945133374650602004011730391045197113584795137259711823157878265687664175191742635142687368672970567862879084922527273620206066241033438496614475600911111303767645322188819727180059545011358051543861896434515895942231639297349244121957642439315525648658663685313236495467037844156668607811305090214346258185092732317566265308495490999460677706456100128188219814045904757216820089105900849579981273984705685995091488607794498610116139755463462240605989378507308692215369077625411154851092437757626502180458890702786254642495285413156753892120118293421227287978863606943012424457362524618040674755807851701836797128587126158866699007014677665314544843867508088712983605021400835346342000424075718093378556350655644619872528655855562337786832976996487989916895158155890218041816054210022336529271608786397871005002757711715255063011124115849135348640351809047600010992548655609699828145314181633898873951207609428653007402912279472164869011374249647246820751387248484411532379325774641134286899686615999787883218809832412275243171946001620952477287335257620237916693461709357653434460013246091779834161662122079139390739464287418699000229735832627623222448281215250505922095117425003583057406415483742639132051879249187181791530479488166268700421618900886671959282474490674500614985796784090026467746975147724115365356055706543471679875176836377561793272521558941275827887994181966816979115850648888299652420816002785093064574343965056179225860684730649407935217460534536369714345626439258874350606879695132198232481319425828589203447495270098156187491519970964359235919169520275357675328698426815318159750991589875531415771393919157210854330133596046105287172219391365806753689705834025927944364621776603764453472394954778734562626190945194303899590615095830831252652406126318415518318349454031348699025939426942755814109611825382289596481488414991290788920657388181334467743949599669048741573946223430364763072372361635227758650779993502247172533638916562589360422648505610528561757519383677431533615984961545428305773470467307542852307868932873820626021001264524595301132002647006737865977743663553585251822986285649143213074276668797363955949097663653661306838449266885946639723041471475690392449464755206196980843570471375126040381307961810390157494482564389713696298957318099686198597763683359779547011717178502757821333185612206677172462350643919608097896228854869658338705157422057557133829966566440391645801374339307034272031259779494298858899811769181925738761779019156644190052501351925430783222272092948021913807139572742924937552838430615715074919958186964656850377515900865074292986183223025119634310561514173198129702735733204532857156285773597675137618964337100860072845572704635206725322852894437995770290705153881583745660775988097593334903331577010316706353178198622484827352234044838232432316746814421972065681628007841572015600306248325837409544915982148888550669118765515609018851239583417312679494807079538172203124397828811872352814569531772853431648582103618289506684389434308371803008856548957550983620628533717401660620875295761163399975396471388224404568337624919284922257377518828263075467838066849827474372022973241748234767786668636045245183925834354812448398778656994027639679534015038560389691713985523882105183237255837599910383188147535547905026348879651570358011170403313938681460562554664423040536745699775973867087116069171006805979538822124595223305143402558369790941286517945709997655750290027811344273059233637454876198863175003802906003088170943201879476451339703492522869541442220952821481989032405555062507007916605879859634104214842193270855503155996072905993053116453643370948351516253916467876784037867407541061507526107011138615074554478156880919051822079820264927252010366508250099003931281291510351498000301656543949235986247406274209331719548948828887722204177443663044441974977811593628563913893708771700524466182189530598578960894742034611440217042780399593539613487774164442424838182399041258772097413307392289460869303339056673388216404534933927509095220032941699632475970213853750850455100372496049091854914452804387670598533858479838572252352701253085699122389878323700422261278022501754813623310733391327217732425809398767819706044163053832968431686119629151843815152464095825742121958747916649939904538132004944727418743781590212059228035581931620434175408454617226489310145835527647515131580227418246407182700103393058995781185140956304954638326198940302483520406228129739761009651893794235306136594156399277648810241488837870205624486628726297178846559941644980208196645945042685840833602050508858768535064510437280466918542264713777227106987453574249437606432554395396945780060536789575479869610922389109777696206871537092582284757676287000258350242830726493627168236560580009854134470683196413735858795871787244992567187743737212459947587552751335635552047808749912664905850802342620935387189728973314090401144661978695680439188333961822197624400760341418092464431203558988757791388431984972046077641589116002641325169066474802302811393311552662426707727101762324372460451918339708485878516236550469725080032157423829524254653003199174387976333691255618848020332350050550123199995498648671318262785468801439708907869911452269664138950672818540421848754110300974501065459754621314753390046843372764385414642671238696758641949215583304203964954265750183711652397677453731507651866490268136537238810161722574992865298191839570424757562608312726683725200578030369148994795083075041254665068046404204379940923783927816318953432224129384651212191092101453552514676754404755244372377970383423411383537579296474922432581322488771045658307494955284270198982014145813831453983053492107998107669213717318950067902495330018852129580990377367247385621730230706145224070498368707884122306077026489748428657130034804114409968226027771968523313641839015841555714399187090592440230118489126557550665963011064698881041697771737833568621460464490994765560723278664304194356409321060638753372434555071946246259313966333602918505582913719861127628796126115957963966968408393261074654438512485302907076152924721459360724643754695502241940264729517411477909335643294121308273830687375083648709895555367037194766907266879437718476107340281898621966506969248012964150036531287370403453804150383101526163102248975415061406733745437318760543659437338936964716914751433099052545521426059387473304791008197254836174981778161918854604129405012087567737242590209123829353537954007630043885352735286034820261257449151634029845008447978309576260649702558380004055708776710518363809385518586504748237567139135425001473990723125402676166886131968679294752331732439209027327378364803566126058369626851120241486972034214795505344707715005849620538560119576776980814315164869367103823844093978745093235909874640838479992569992623820019709881030904057959095934348865775682093141041104442635269949611615892089033096323721576490693618442724113647278691859982136072847494301999254614538043583626498625287843769039286049246777353325350442810354030370222543120294943683208528194067787643083305316723635286316944326452301850217066644514116957412049010949942501356830557854774451776925493448614947786167904367980684785759123687323475186121971719911584574064483191253786923554293467262093868072544490653616747157447519827790596621373254669952959257956761749396995276101930132424424172614965968734686922875322129415132262921068477577693356295064512970676339188845561071463983211148206157807655383795150433068883515295049657865409305470431374876481701491450643292069597357786149491237539167685152819149476003649376850881054215548571867695023957605445073388771510095897079820506428605394657339228135102633405323136058791636175573842135281134593133401170349124820448733713405965629365298204028328467736224898080499650046910107508899965887182626534188526377358418379889206148187193802608657221853604223852855085223804069986307061270598978571099964895744842635565272282969716363129605366163182793036594023902475942821515773846392268286318478340777678025090029376667548130517805779008992236100145881421633622618651728161540688095851797609785709380424840930130215976110613793121790990151985044390288758166139146731816542680496568518846477342587010964048259007247185629931410803813448847001595588206513450703529363733029228208106682353926053562518338990618046081643494982539568243961937781574201152294469736777936058313270863730764695910812712382250042218865120979557854027213909072568598241809871341188243433418696462300678778606133612650831999602372281635831295047005463489138360460074781809511147833340887560369025957829431139102165637064388636513398944595075472028853751966930235619138301611648934714791790119395465448741778984504578927814012292157201649946500632021028144230324070194379877107509517866844012513085480749032246965592298217251728863572219011516302931150845608985322825282952743576544814629158566476002712369162741873950159935093930209748369782643227635561752663226523162879222368658065078753792201938561379258215996540930131083161612005840795004393398540520362586152112918743830620827081898615580282371991781014877593703374961379760776994660554180154797321698347164010828299274124018243444058639819674221545041578582713232747796090401880804300870512053619536398414355636366019469286351588025481934474856974285744677733426708779829585259830248843583857140072904372049651872236911362074861750909013613896028966839078266891939530106762817087465144470752691197209532413656227198430789889252505040685786030923612862044766615076846077396292362339875543263059401723695388409054743469484165023228294493403650731123307586768212000587889342435184471384825491928368999392318450675195668063148896284077571760419086471131094691095001630791780375860953326902635501746061635420582292292297212158058660640266846207906656391252246864243736417052225540813717034873606617549894343631810111417919014152311134941392125868717884776430966842852950927524845400278339591337461103874921129765877145006838462256049195314892232665893291401221911427002209674096625088562239454587926294247102687087282902392416925171308139774111298930969919573030883890565904663440745593604525120283579216682153920299346793263638120694151698172944765617278028250178890017746228779443039957080511425292804848996520535060443146051199818141991729555269770088493563572587879604986050623612802327734654298289193559315901583698600228040785604097398250730455585318477931875386900298300769302665152682728481938380123476226377098753761864868240431517522807444517541985654906737137360091877309855816133887728659985981777285464764765871729710141524274819545735218157546539775641545188984969121941401120817195363660087496124443921623723369742601278726318672166637615106688874082285093749820769390375611462723540633998880863274348635358920351909464516875498590474344922654124127538487417244118221765667762414051230112041306314281593820734901134701129912169036268679792183357069174840586257706045674288651786007975465025192029975126449301209318968214116974326554455656656398114570211121047544316086605430882802691293470012004584988641748651386022634511559173472485842527355335524103359928014244624606869868346256270527111779564604128657766969251508872362090828898465968541586887939000540391108458119716598714650651386625863326537874839722874042051766418896128819855131186620522562952372737869345081281590790535736389223784983291102183893626397612112060814069524327572253489425026579360306034634246453129956462061576496126183293040618166556778957208327372137928501755115446536569878247085314628380648993694190538521247899594011659070566338820039478480007952423493392963150263657257081765353535751268100850863452466791783930293806312194840761662301656536738585851589675526721390346575438223595192693609212535628451059520858913746676331470319603698335564625387135846929686709613212565853696390808774201965900145368952603496231445305671486699019620179847286865888821554136251859327678190455035436682699312002346219488325747253482265079714421859184112846696296566579576678998809914361571996708030249420863092749324117596312682489242040530046361620529629408523105176320190657366284889794772063450302588301140517083848114219150807377743498083234493347636435541395605148832790995465590247889222910751004828740422214317080332698886736427199151568565779779191865333502610636317422951907781300294851954665018374616766220540425029556532358950094118790330935302552354878596682048185160047130700712760700451569315494847222433871761534770579959306151470237496591598413150596310916086722693008621470698049529513449144786052072485955697604589110838930982862231627577150845409402342002703083949769229334124935685716398963546512423132236474787396538639110744093962194672785553233824686268803864135335167335670690190955557601517953170851135568999176243919144790928296925196027802937712647027979849969107462079467716706885001504236819719673384177594390933134152629675428042974909476334741527596188203507525857672830736264368957520899309392570701231402768370210052345218686810801278482350692640477170249723764852172344869173160679221038148336973656834153028874577252345493383610120611368086772793491954397913231754770516359661711029777739505896327769343278199108586240886534628972988414516889665820170268815649668699850040313353707941289621877158201971380034650476946991211296070575938154883137018385493764208916878695013467300406518704054697037744596667358098572067238178406434432866370842350418238396922474114390401621985637285990099255497994187398350910223267525486388623339683421727295405342758937954461435181555459377064321465434956824041691441883781436956594340584257836063571701200167824535547279679930701909016710059102761116253096223603812276584723688612886280966750344994817467175292443964725871765011270198043265613440140585163224740905700600585509734589401110874807589710078616396110963211252275100166331676408843677919015501094966430474272628255405029240544092139793889009748711791279563749638399815234083050028339235661501127371493346653316498094292109747007889789795718569051896362759383311961429905988956386659097033775318026453333623076825644746778757514767980982884546220119397512818200019409535882542787418412086800756034641850692618273163742947228410994966192410118934271007895479053360884252590872155621773475793186224556740193057129760637842511100444241214099486624561875882182037426906558300788022064698214954660093346084891024791402012556143623328629952601580263019915534706330407633361150338973380410745061340990952884218458193429935635186012133525803380005678355962537840325006250881326914882581288563838452669084832709366988723379244658995031252013087542353088549736210303152980287068179859107849442004609469018500868438352132848171358240614276593701510215630226005530961451711036397312889569419236256886008651495308719682025090899543405093158772691174520954414721749624124246850059757336891186437944695176987605571513805610967156511393844547936411825452782803241412508123250754731750216544785683156033795561550954977976319278918040835389959331853177663252627723879866460272340545546610403449830455771856392202414151138435687129353940594585044157381341910179922454513923947385143716142872806567501793919268291545077970487829637230850909576914755039251215099354402372980432841145319610806759198211147162634198291064994392576107214509379180318627744563089035380969321929768398496784695770034709903083246808942738633639225948185854251633408456818385159182528690933307475864017675591152230862864507914891063176924036695213948573007225389366022768722570445513266694258515387267241920021929555823608172334644224858133700783328922754270498949012715999526633818867689318827799206094500193339483042699078660773816537174115911784219477873536626234131727561521008779182633909971087327911830690448234527016704611562292247387659579899658518613731236974333327614110430094926390140576362936753582758696461536889438071451629145930159824029464994386175693308455587813165720450305913812743134040555648420771287326154582381253677097037624035768600499882664122557797262007318595359928038543827504407613937994251638272135201180170523001784546816568249396949519135408794764598413328908647554084676098089498528162744925137215706731477095417492030840037936676845931259557987203101295314463588820670519402985893479167722691311301521561499264228490531346924198698912856367025401021723538008905189238778859335752056139047078609202327614884199743720620023486625100857044534156436880280996994057455492053900893281347027721437418552131424441130182886467526082157638640840609900123588456685717236041214507256843701166751662567513637482103203190880475994850166995667128949931566170461601776746142075673684619245161770615287625231854001748409604607294249243323114880984010377249758319437191939140278023409887519640490118339744072360158040807385452154176190917365611965698756317643051871685873216440119494167300592798186309559367971076772282067941116414229814204548022909080438068621921105325893815516085978829816740808776999551049291898496771089387278661371046229903647600279623078055874537904527793268436444320353795854113193236646667270114087625969921576851475983119702158668115690756598472151000423978481048290444761319256201919266262854084312223632703145068385623464928551624054041374714795380510013525074942372219663399784800971130605537552810674387142162187447979640858338664333961160342042973361553476533216182574960395926983193470498697621402599060100580988546993224423607589646764322974888642487057051685342296034833795864027229005645101111044135415838725527859941238058066443252170336349638834097145491802450964561325051945649629757734477431304429863817494132685631241027844419267220624715460037502301890657752047079854577200032396462563020114585598862991687518824391057791427206794059456880866428815749380957761613496629566832449399400207597007572537490130276811328790446650665928500609236706661658387238902965222137419738755146670766043558413851611358225375865440087001953381478523549035750125200934544369430428891651995499244861537938554727784790532127563756782516512592527772193476001228236433135513989634458576096806336785672883060708203171439426348814776001899941746261180076194213744439990210476876715198143594329258427027438337877755851551357244690536068283454815540893740754078864114864719859840633579744795541294736542180752834310553381932922860400782924318753047993017313487696356253015334930712507218614855105736284683589751974357953456342722727982272190166635045292975432737114882854010942668539625721848706013215170946360517130571594688638771781766043683967106023485623652679498436001463904280885277478531249782290050538204445090678345318346322007034424391073218671302629377015679031288412078798200654726357242440659535533645868549912034759272970807127155226946028769751906716704374079674799506746519619178908455978314957967544231451233545528640478772560296741142806652247756391192418009393490282822166056446690998559487180106880581454615763935520875038136973119044602768417377982159733159672767744007716427557602345381203252922762981682842615374084826649457474912713374158793906959074823876496767741709742339609437087878139824640423732824136069560949929405209397999705495356914920142984918193988065520439399908648942419403992341984538661394882240311778666103220114563182815456153931061839935019113220781782631190265549705524727222471124525044231268702919808763023162099254710480188873792461483603606495775546814001776462058442521410989876132450562042692678879654287777654717191569730765684553383900647048795124692202689370286910308184282384491157108251708598676386592357511336644193425825208335090839481014946001458928248155107661171666823679868673222823512439739367707117911645253174323217995398786887518712924729078140972612812361102998736430799684326561927968956277633878750540701209869243929334347528760583253625708274700313145115247303201676201113456161604544974818427781535468409945510187794720177706713760644544544928756961418002881663435963468477979463773226946272926363034137430266920196959013884280043795093855659723858835631994143536256537290433639964619128070145393916775015300243859954345614216754423627209583597518972875503579237043017159998589045857779285043035182506180490182090504529315253534185013517948224391753359953455356479452499390703215982377939170079319704357550382386350012064997056150134518172178770247264140812272152643811406104748927436617649638823142051689738618669794959921423939107080768818273409626882276127410356547619994694748187128457250710595420890764738357439413282607090793447985871853914263404162984350698709928616361751152266862254000590557093094120046891957755864287433585301773639963639368270310114163891620544703690029587847456492848614804786545062362941607410121662582656496171106816215109052724491836949811170674678599256097602187561955919789994226062874854861773113042163782513997992149195102470596260906062733321470572460892151754283854032632327659821931034661194044995186979366919355524316085451064609117984858954024895967730812940757826747989766960910049196959627752389576701598116123270303845250684928169757908774730689130636683096263579983093277301784089915129186094695946402924587008274691852155353320085224908175711854905715594680430462732999639617184681463869076432695750826882420604505882903073473670405311172779555922582829218468524133695552178875392482884853048086404673356900014119208699228332250378026062398581162278193992562537841693711828549620314728314472720512086441007342235018462826591496996175255801933317695320646007089342382881954077396483282227254821566541979047027492035024744028053828001390820543812557203929084547645367034156074219382983378621898553918632849411422155903762837990078979490926119011172252354008748620317932791319368006707997715159376537469294133577142707120260848642441794577337638198717998143977059125064521081668566402239214189099747193851481273676483657231607355279110902786060098566744175240656099702009635793901426138256869374785154278393121434610357144861930285969050154409368684126267473804336592724340470135417594763900314552829823753948211873064238791593617464634918185496505554603022514196744525843349400009417730895217790576934051097520728002725042257220587996807891345384409875894868349477247115874720693801351715245652024905597307305928608203840752531956693429531224739797870174908772168389499773186399316189921492026576189101062012822041556379337676444329919613071405724033886143051632221301545946340562731361690315816290254554161482519040940902933080553759411246833728270067221482064305152523667537718807144337779702551356416305926819935094210990908212008075670373145517494908598714374945118706853875297374581557153955624909305626418381675100817328226835464080025404222038678681031102136922794391374130104436485497688914155116504929808564333432863409534395705086984979561983757105790098139861191416785777242112228543928642416647832893968074459953537137302290758214885940201599953441786927501141508706969509396284498950435534709909691977310446395237239674309897427366533002397379270935886595954211267499580824402097570870145754919063788974467292362077161157099078149205459766474849219623176711738157097241558859494793565160141201818547535730653817801456705138242874014594355941424341858206744724660025368846789454045161142393261082612161275647736525591080962410309289228616358886995129984403091106397287630340662921847486909073087819712835353813035400496771488236898386582210552026412533562765139057033637864502274197632756219605743201513553980125995509187209558713191696619300886251968800512183760867320329083314502185723864013511791132875971602372388614223468701799513317444501699421677830449294892656340441867750938111532057086417322884426497245747568613494586060356978559683935683380817290208301315269863320810300315659084093544016756670890029024647228783523873921401215868319876884026904143487703964527896002041101378479621791550003182582550476248088294164500644197053047695138766525930814742224233793404182098151788113657216210970168110118890431602730560595823009390542460885449836727343513834240944685823586336072609766517530002799806988306650937958239098020182987701289644614204397706901175823653658204476057627732780683378175600762762376161140941477650959999314407357928355183650794714497992376220897965809796129563229397118873092842664606490157942454218948585658854199237473671343590481033816257909124728469628349812738837223051738095334118325322082308703245639909243139855148582338220882744309759944879632272596766922475052286676266007239022738118573769534799988142306849537629043969498324648892823925622786242863897883669275475962662754917355089514230415407541248286870975079675317606200634550795859941459224817231484782570411966358111983322979210036119553842173952000653082671906842424245202645295927668992454488493968751777418991893628880936072705578587088710961310292181305238370767557293590749568417407840221319884970301965504901500092321239638409200148801948506188126299912459391204294490361314989561528915811611756544757290216841707693205517531425386484835099907740805231716229273299009598651593801105786842263861432927554817236636785193044815277595531994413960728249548781797566013123951532112986165334526855687483231977407907305374332024000587605962289507720758766435565425147912989377556555409143300337044394477835697568855056640096836876813790953992511767183440071505660522912972569167011612085126616457312286607197842029126157922008889190613062540029801775482324978805611050125889494960668998853510718690677223838162665322390837553274869132511639364703641874589112651625196403987622001608568573688567285775895329204043384658109893373934054871722403091160456512532003819196485917173493296880326682115235255268820741797114463641847132836966021379438495855430592124124518542965911056366713722006809136775782660287841481815728818697696058816678339759742598618745577365095713894826614530557886738220975869131563906657939033422795309468874287957660511177617844694514483358951800281567157017371499579826897874559618704180334102448936096930244412411150207226329673020929829011824617149430220637635132687607809781917854337831295545322803404527564245276459655649221670008293580649675969700116084232932766269162370040561139445876187407691947405466363855256562541705345608811998489210701557253323610002904469452031354825217579898503613464965614619552552727745869380760791204165452504299028480263864310080197607842497717197501910240276044147597602823821245654938407735544040326615057820358541834895622611294207368175766773670047268484488308447200756919679200817271840074948856845867325364343520904299889227260544403772952181128832452727706892867317941570095926666055106810746595913975637590587191610993491219006509284909469509714824000380280477805234246475547828040602869092281408606676929978114480445878650024618028324763612388100074331261164153919503604411998880211028854942551262779905448424009143157565559780796631204160585908665027891994527527162038297036302137502874100862371286237813580367873986369971006230231661211462081850345798849733880567172604303334243534047678331959704695288920409069079368140293423831607648096452992558388074529543000932237655086930027280778306632430868503278265790576399871841256513142697762277568926283295843954933069048824340438740818929984591089418764865033842088524400098183064785746757555000130191876552517173641581140872900547276878657492686445249448113915957714873349278575928906437769552449257194705385581037172472207561547554204992057320297065035562359675834515693813138293407419206831280444899456479904657140419771235980083283670821916022822141177886648631191648266893233905282661852306945760715722334965533758644610754079284503225690850470869127576895531216864800882075703761856402498199412524152933122397215297206285298082685671079629786375630715954652440120781820431818694204913805358440889813488394729076364299270423119645504724204842861602491039015514658983390303721488918918894843468840806581757075585089739321542637359987680492671835580472510049706175800540231287655048540434341680481019738139071339967905570151160121873650594294833647296571588641255910783103667988453871141937820670558742223458245939050222600848194448767362518009098399917689767328049672931062562511236190476245143187682162929508707664265197470849035838297928300249124486425697218338008427270935782308985796631566453792944704626769358138197428550692542994884915670481841279242592083772405358536468743257975032748092056965790465102645923064734167497857811274699785903554917753821641576287489510121624963727007376423424193414411182678204848774190986669430006936275441852876881144388009007014989004183606156220502599340636037511438699975429400812742233437911391758166381153155343478201399635418833005674428978149564738906450870396127370376096097844603810453954846205930630942637008963850291582486872604662213129229732560164657432339257102849777568454569290377871915098076192175404204084771464341903889627596044533102230469379340807108197937299505970883066873632669362050873828105077582660725226380356406876164461803086558579525808549483504479686682819636440961315596964378409061260597531769764754894995947236302525672056678715340155006106676294377990815780151035028919260366539441278397296990132859613797146155521774634643097234618583730662323029865267948958977897803155235580868132352411033756811937134450791167123638987867622719590276988020326743370716499947011400028157844989631845123039333490491656209121266856820500390519662259061114733128865939316193667307687051095478352307649861165904223015492700565918288080638370956097625320066473675178688086776306014295124245503296884157740916251519275468375578955789456749378438802538891348027702586326947921476324963643267384633285197242672942242182350441425531157935366454577819272005424632968919298381588490444388334724916999693323607101222348439845352755270334706712217406581072385574629833757915311935810516407891688460607710074600254729904723045721504773680984489812320800960582980256052940630315693815628659855074189424646269373545101336941615823948063852863550551090891240239157253804700950799026738549671028001539809790534253459735385739989873934368704216494236154105595567588752962868013571453755346269223805905167021520606021822562430630234824858866971442603577569771858579093271757744386627366825646416113839835026986207190445438610394499965180778748645684254417587989879930734045993214226481145990591018970896864736356156356663530255250988233163172260691297870445385063053897367018792507767502852320351740738557836013967312245645289053280155219423249739408283519637960397889875475904533008862639716191881290945512789528593438752252867524599530010761711433316068120786261035212611461250788974901772446607989664627940931672999965086086925217879124955105595356985895281405339834170144412748394387436252694860270921954051636226536908082488182780810613663123173155103709484754099823454479793896783671059331483061201221606807095485588783798132876594132846203885019384460745700134283349937698723445305158612830691279131679831648797458673289831866664073343907296463204777722318178094173351393183392556552681017695360451629519211601368687636723704183487535916961177998943871022999290402215535275563832021049531794147241078509948173053649891104752978333667611003111014642558612902254135103618382825542962001120532223392113550861032202988635627851883606899153149535535266019837251990071380315470131532461796141500890341401920731017855073550503900248285880891424350785769541280140244655428946551153159807640772654245912687671995061059018033144253465896575629345580601657202589547686233428807920509323516471656096371667941357140613741162129285086383501238700595947168566512752457612511407831493654147155160938918977134135888503905205995966433733527153405673097358953582278637578331985786769109352300092655271628305369546414885994034883943744575895613765059981651041389526088295146802078455785182599975507722955033421654515473531275349943062846750201625888661787656096193611344297477636296920117042276772324318436986715150491423813958898407616022868310814916405633693026215306538179889912613191658720036555939460062906766009900453444660056669163795286584554820072557003604185860375384682361580309217819539417487933223332026910311301659321218352496550180327226692597889666483285017518593908120899604107525485642956257829123839051000704544486027744090115863526062174721819168485375153714046549943948419051897136080036858442235313001708697800365022626661396012433332459897803211729439530979824649248569912932284926954803295677411671161057305268666399927281713857225194850862383797067711654333560144094333068915574755020647707621739634970078881282860311327439274104961936890006026949208886393284277884854171645172426310774878209796426526660818993281178190849783896151216898313436459479289522673939348524926665942444786038950900146303274096923847228799855227958160711469102875938053780310176554981105517055363041651785194843151240729102509607241196746051046619892981379836424261582835182197953851393679617906929252219124815689767793093186566238632836699312978718097513889269207991732186354211304791312825128244525958714574291739959804418383875837492941310779332770967983875875040123903136620592457012461655644078614408280588915458943832681233658204319366305888202192264147797651813025167198919119072820540663420560755854438204711020545950731710106745443503977935203744539416980034332755116008036909569345922804876489202123120812220370840904852463209057023060105737976940192612068782146742545060864805536870552209410997512249232754311651780217216727014338799209456108822371665502688769617836823501617738398334449365379896092613497811415999820649404577900264584540563122533870716024477121180496534800507995031571149734548661878938785161263223392952804919950839269292155516122144695582297253864792271698840067060964791315046793870394084553546374252021935380447851859198163304824386305887581120915171051476135540581869869887029755366532776824004466819986095761947977267472963521107077107574872577125458071490296106264681310894939356451381473871481342114617738968993457651623896184779702575788780913746567545874339327499162945778794190322060890897145635185570022112367389399244151162921307934735662161001413837260364306581666585590044362932819971822274909318007454024945778633104239281971292119196141275604083097216576829427017026660709647954397133759456956027321043597343461892732076573286813079549547608116481585263095600012853867787667313714113458412945335615606439729079052950869737282113065071923877258355725779792630410801769600315346909356034815673658216275130794133499915047732860671957416996392426411244011168951267301951055029776580884551695598047263901680611617848664244174172070205070376631567236213667542359304011802360908513532841974434968684376163988178545176719538095526734504358964023571512318983062257313036364604483655118187996620224292323808250544437560571817884255827777706943299739310325071467392810244723141358178497528921703886586099522162112185698563580447501358613986683001019670009039215109082620187902502761430581268826510949304136411697014977621786733502646397136323332171892465407419620944770377789787737124435171351187745646858780600080496832197488711920046285861029079161087784530216029035015188322090487390529148169181503807623738172914753681396778394946655890981556339712728523051313773833887735092266396305290246645846698962932325629634113429427822077418865138822746719525382799163803293224385668630137798152687908609758457179035446458790298971512429184393845779584998827216792557044624932471618756428550547778436274593406235244547852911576280026611410490838778637652654746595000056136116463618713857330210282754273333629321718684968484329141703677927759996694540119316484487935118563218713855165292041065695121015913603751820822452492362029887013888173234320512723918143361725754998304365806800419449872723789008993405816472755252479253910081616563654263077862004443374216953253674800331366184540701341672145607035433082389365138903674449848938958378640204392055069514390836855537532537848364916229672310472279360176681439557650538892340218111874563855403650799809889231517464206007716183021599462143725033495965016113658256555558664915720314402407821072273814179272106072707460945002029895099665788240931751646824890825719541584860989972892555572111177941427108565444478503030330392267631880075574947274274859749044342604518742332733110511091778378214670334143356963354744862988698922720685692156024174661386732896470064965448661524406092753977478808218795768318920463392827966712557767222201714311531320021871667975963274744060481789652673445729756223719626560860900882745679963652561518125196688094800147959905248319204545136552158975888919277032388055776031586194763165295327031263706235569939562755620214410497241829462160250063234362773892857280218574378994156232654254148345028633353210373775481091859366099662189518135923907146503497272494409539731883080974166188164769218338811051924552281632682390512451770987551406026280797663147058855040151628920533732584877296998110356982448108386905080011891271476382280127595177197731913547876458312437998539556656216858224726006835142960116036470062305789802234341255224459104666641507417385616069737897402523439280376918610159081959739927243690336564458606651366037194041329975253468094870118567524547029955168582343159750413204072552843763608668574402934777705724027569646112754876194217017125671728045364137678712012924469683613549148086031094978445616671578384002899503491060340393618771718820849702111838008390203725896854520492651594848882779261243748367271869498411327613231266675048516026485401874088490870396301246578271960612589267075077946740015932731669044362812185396465630398855188276708712137811026551576603779697856708087187929571843665388510353369232281320760324371543166474722366804803824620228338182525842579449533404473310091774048838360189322327793910445871366789547589362510915588518854897394854172711827932976775443595133788412167196301606099171544831883575791214336138944485640561849619684952141020638251498971395877128328341939419587485673558986195517675643059994816360051704575478391941398350187025305439795407260708134915542781922448411832427240324894555485789675856492261573985150097037874797544941878371844943660025972410006904364215867609257117273917935080103225108156217106375719886368247171921566757971455147135308291632327357731801088851928682925897515504404478047241211733791017386901928546990991409204665313417510987958228281905725562881272795434462448099984230327657405806650063157954172441961617312641251814303035659490431767057587457377423698831439694751156935866153744023357211321125961452678488016224852663367382633618740031492538520757477975237773630746857698183918464254560590639491925872748884047962331618189951565007446443489706003912230165812335155608610373630597198931545312855717164566301724370401524431214060184327266996501282217349889004347660053327651364685805803672767981557564998870782219614322175408251458309436685026301504788291826004284810846530977792123545932192113478658688484046300565744212113515020574690994391055736866132263849211970549827949036912889850529125386084875843457620800984567674786311865599013841145887749271800472189161934256303217062543548746378090498577372646811280941098477066171289294417314503647280854697383135012835393829034761053281104730389996484597269192138505659668516046241616977226151767682512081996407278960649926087765022769438334412022755037150641932705919168451952091493935916159328380457237088419495540022929348086611925421581498895589521590243968877989291251139097769425728606174245970111974376702597889735794891724012590585842111331091299515657003065336342308483454955071464358479707553248701219651050386982548619799588818557133654148863834309454911230894140277506685010281808190539087806174645205533463374220966891575839437200099688280404493163690895918976294546792492644223682701968702327661978813872836389163953593598156047348531951167585125436786499546531029074843869664559812973338861283430374639201093003866031690186895535668797752587242458942735733984792591613648969032294165480568995552503506850171920617531950084683780114858457297550682751639671587507040125900834997023215900532664285585309973934461608005806215280563917288685183550541673236428302554179805683466469981037007855432661958954386484299117502708064417255491418059692582030354229457037355867512746863495363231515332482895775778159857848169621442995833127640799360613649400267889706357702515189259747448702853234197167469802402539646719641675283885105863241247797581567235501781055619286957707507317213344398515551893678490050111672163440080683514996507875862431858166936462008218395979539522061219047971424576361725792466296877225967966768196851445018493131055410076970115543518658182533158286184621670106881950147391906260259591585769225238843364219643644839412531313798827780482326108871536416233566364062121063542002188044558729264691997473953245880276783721928928397661808205245713209140337714596970679323302070684882632914229509948707575884636715728729646772624226307723586966392324357331813938153810587090498818337704693637622397619536784260238662631942829343083130685937780127111664769446712006167947472628859112052114157299374499244704521531140213482074657988683016171042301196561303753443330729857551664732249893909902900726941200210416873005581071542151294121070366594242481883017321257815905631546977864967960318014572047442982015816501699965697647240350959526323440634603530949290216540424011691817531304795776778818237418196899648945828617683627255592333270669162947853297332935231989088316232302688276831332164305178619115295762042885968737869002593607153363095398750285229595062394561253544538767019263709787623061920444372199587153220187887192997199201177348594187517934136707523707572085669114556941808162979636536708109243527876360748812469882657638365397350934308955910015056853073009945362122125771276259029145994902605100336553118586574531558123088338045614610979169281575869984855201648572877399887064267864494415640310175191746901189245725102875259206217295091403473803358332027804458130376484047856027515861920811550713411696848006539407094430634687078367737285739446681230301263980953885073048569992273062353244697422050592203045261904742709439770015604332107419064445748257744796801810165451873792184182077318512618541544652127296810975741830029239468869795224606614508137551955101815595787805781948120727803422685876138742514362716126091690196270487279007947449763755961637286916483654134065670981537211838151450635195988085568742530769948199543626433426508840890709278444599489615820487161190858352572364042262846678762319984873273444497136865883111416267281905193836861657421581666821324092035074264592299261502943092087478003622342123234945551160460711352499693967090897054996501822949941095588556160678981210270349318461350597336259057912470304463509835113725701118260732141578260715943727197308062879499989688479036385416898196115845866682040161162874090210830373133965758951777430226432063122520668681878869528091953590717420107753681066464932361370620627706618481362032084741657363543191850976787514544064767299822660006066760397259118667571135239380196868725094342754360218505427293943423342365637341216893591652240603334983309523610748149449559405445474949854423736430722179184877308192013094196803413979549973568886444149673570535265425750695534798571142662624248743232380525673161570495368931495749217361397568880591987908974371737619118339069011835408884033629810991577838416389478226615895732288567351112220785015373279136077213166541351486919324412512143103715314736745574829094758088964533656412555527986460281709544176258376000394439747621972363445104679627621682032423697041231020620734955710643571436011063061746709289132331962091635489093978372530061821497087967874046418654909992812942463438900599905375681875932147557428674666039842207641282940319594912082510689072014645672751290385300623698654709673469959932809851979154395278126729122967018102406195052721679124187100436728232446621059546126513826957162245531038041915314911609502289509420410782922543646589016027631111034108753916964609408658913396665745532879753677894253101644849125791025391221929802483151160350970596626357241384580226217735836542169744338183146198447624698645177072515132722099496148709918767534778962139957800895299853477150257918352484764039065672226904241855137543068331222891905405208263532991442218475765528972311547564800599141898755458172560035431923273812664131777239273160487891536408951787085169753521065793397192479990209404311228587351957771543086708370455968009740872586386427269188885827921537648056033734274918708366832969051544261258383250617161809992982888774645238502388199180042752101694802882793478429053903852062380844754310727692843891353697119020025584551776443907765800944511655842452043796526833959424957518229237100203639536941722044453942334097533349630785342588074888905998182659848560354911555710064736902792841741277363425344028072412657873944851243955243281247344889918982693628921551827302620021634696629445422530212655588507421988539573116701571273211568322420824279330428078201489797124246707712069571652896118433111778931205194230830242374757912254135970544803599999131478685272351473167250984772139649574477196017676261885238378833289704242024947017930606513428389590638269682613159377163864638202570653787015409224341634502407682970142115998249902713241655803311653272684608629182798580871507878587830586654863370760771251779529113564064426668434197988365645223702055041906421989978964625583127509526408169629723522190251032672043362990128634636103374106486237124079351557524009107249734217422763583867702296799560054618943269816491922340745149924743679176359661521246199931237985431284482867432770342140449493280613083059042968218755785207668918230247504120825942230135814314796577872525712529974702391144659092026703601917489464042454140828542063835614120140005799850269231660230851489011773678449766112453219772421144178619215468789476360598734408333205507011647895376158084796993723090905332210840407374246837000383799256651866303410457329522821069251767798167535023116480262111765142188301012083295373314000236402768518552873191395119199290580485750546722975545325671300946331633126141167081963410771542011993119029229844139066132424622676859844208468846266851819637275564298173567907220720253586973389626036787717181613061270799928419441821996674952232656119941804115416935859350893042439439424841990394080222318147111471055753362963468269935960264011913933312692680098105015648399159809626924806647070627540060558961841807695298439126175551919478090985763072949468869185737010794071561267464416334254745894997328374945065185216809468951772218170949668471893798361195401267909314136554606878402649137635877415662611163465541551152789946879196120084646101547784114386040575141587091770936141960176926059155857183846595289849086700710991317777866384337482585328326319442807725297849841723926949854581826715973285787646024371685545862651724302387934426837207182840481275633123828412415908882229506385399027790131168076483944277102969517408080203777471385646051037662698675973371398878656775104651031224651768631596691160170076870243056237336221746179183024090243449256928859516488015774741238306726082319583391124224042943952695364748636553153156689777686254637469891420388797167359216757227685236289370518717064089349693092408615732870803891295885880276402627071464508564825030488867923553436273606658844310874284791758903656620383802071909161533853864340682875954475414691300043019806745615206681428521073868739949209521618560762626047868179291824855962924865426366942325744183411081770432403118395289554763952725268289603285295924799922459408320413911350683656983607498628322156323935071875689141585393777316242949201263059521802122179129164126756034640721933875887032120854604762798649740252661904995871450649654530624055525098439444294899701481536515992580665695114646857848274525445574498517537214402547425147570110253142282444544641492020987308780142547152310252576757950114185091522818317043891807683888929918610845498349829981414449401343913823818464576090943827426120454291192602552100641890689345904976081137220409388457291946079200833194798455974366129469130355885156005980957029745883097094757664230727882767937761479914027526476335221583438166217543985779313994331583243584290525983273704667227301091080632631254853468914386481083675936399416595431005685272432817198857228101092563421717420355438883151771791789002241048384401073854002792986366372838232681303442510126408122844194913419011624495007026159531554940750114522963958074234268579866891620482978578353731893703975421844385080605000169252375776126443251300975250158986535283965018322500376616814951297816582941574625847486944867335814405494272185918352949813269121037842116029313317246994534695807567504789753927230570663738770556984722342096628875378711915322456852924324288474406330780205586486610031573392475374024925648626713889854420807207265091646241475933580795285048665665770652300711749792734843664676493908321042569555648297632824344264582122263377834045524985414947570029174552874918064897396593738460347279754453696406104542467485116389901591398597145985359474319155670935608260336464736960052515271794067558598531425546149901239217531829367536664181032813268631250953699254141552210234344094892238774567678618438322009465944228269725683531968989469272515215693319813066696273803990422903987527651876118994572276958386211015022278131296256016027637914357208172295338669818181311761876368754623373400273510676135840092807341696307839061283611679653085560020046792552475694138174936064439201134232598538513662400340207082809131574149526476997081736930414628702303969191511658468585755233141444461828523800488910791571259289405377926140992748660002489786967486766271746568590678894054234649854285936686970572511171904505577092065745070526081288857398416715351984532988121290756390434707114569254432699195037268794813125696137292869606167874236339458077450503219010556548378941245130710288430654761621678786453737570687261324980298090318483432680092667195472135329231871900671679827216307718358654236161579390400217044988596798690470813314660829257242490049023884049568844654633087037596272719597290590574819710135231010822766849150679946715349478679478273358269975325939945128988739636150054111900161519425130581081977005991345612429607872619784223926667269809479721334788204888699971506847827865152884871746748890300932740488658931853432238027726442013220974534643063875334986503049525197166145052787623492259257588495282764542098112578483072058035997926506607313842024533905113631035185177638793311228004922605026943885125111670595279344631283867016550357954027424119967023261089419915081803792208565137733012651872885104884064983542197929991603303488795442412923720712744519782528780808628883012940670470104006897063735313836790988885997693836797961678862727050928785346198283773094016638858394748438818841714589536110801666942724399475129894167012561425808042967401050788443783922098146912148941808752688022902573391375569323884161768538381822194979852650366302958395282050325534219635449932510015247479231551720112262594187708177308131458327756965776293846650234910334709758763993162639234733661898887038723943028969479144423945271692882764839887100914684140140188968104332798687037803143840238213590537098440797794793162755222135249948408449822481986834621712695332203667505057631951105754113658209543350226109487754645174495330272998930454265888810335183843243131329200402677929792150152544131817328929125425209933550469003367590871543944338730728702952532812977911797625866012318006752041380465907309862303907936563106298186120881976139460128224861786022649110047070828367761905036718786077956163455076126436969104577993274548617583189774011679912748887151898920921940413706040615101730859982862896596345242467424069258561265007855818597723747561933407545952714723447644964866230126548463391719046027180257804328093805066346865518353111270493412640639330859473729614787125125222761227745803165977424689084970688997574128407627850790033666798278592827306684230487219718412615105495658854499648172910336165327085336176805009866523499131734897744961437569764341074417058945736628955959697520003389236856268750286999393162585601112212437355004835013659566561091055616273004619791305043770302029910595627661407053931498344668146219338501098083219500474488251488193206221760774863722131767001016889373537680087150287632933288414946524647900589680559537358362586744406265296410824368856325176807310187533203544494259703912826580510984517590504674036373236225213585716619368046040395281479806760347059423502189629016146814091205286458833393099960841043659731799355908745297337305651646170955086511453779012848490111219278501135056725848989736983732831691254540170762816072026273308621114342779093194236180602584581812395134144701626952492770428199529497009480563280350808544517582623658540814327047716942372767633959291040540508523656435873558320714325620982094435218813999165216926717905217767159535304806188230421007608376144337038250063093326590390131701831777340072307618885242706970823646179400217448407770719720711974512676207960866347754160655061280968795598218295053004886547164931887458940595423612117262846580502649328774965039505437215061652878929279108925415988628076813670544102722183594065620551996756726993118655453241975135523127574337976647213757492268891734502121018996958454022662640150313009806900326611858021855368838046997709413252586592307043544810353570905851143934898124097254517480927028556398831539469306073195901846180830899633263961062913726433731554198444104958710249611311970095574264069513683351321392513416609915141915743306146548594736710851931254612250070405990540936261933392900883433181240627613310075910073926832725472611133718230631136703334793520977226528557993946869277762699690672006515946775566008032547520221975443575806083884655763703172495342802542813366848050509969707471494051465207593944668744577245831230881582355672767603306136220718318120283973585898997527748042722679367539583303123480277965633603616274045988813937486545621226028633730927725407046990226403863294161980537163149896370544939918451008711243651140755543390961242015405125675750511661475143952072770016154159858831454314432983713017397178508040711760945738369309785084223518712788258495518088031521999291123284634478870740717573903055258393617354015491972569494205428012354855726429027965373077476990619156087803563594106536810177859724217506024219231074924588520659278566685419211395496170053385497960211281105997500242666242083092062906576050813618795840680726201035631683833937776695935779918473604927935243707777976859569118039884583747665176642770124840314664952765148066374190315553440724174030033149894110824539167026483635786179975336393045544016235502257196851500231236722480206387635564307412866408388384542154834229292489706320197336835687864083103907672339777164278252758320343535792462642963740599443409538431075203986273204084619150593548402470880388806657858757768065857425409927021158194851396778556139912115013500413325445598148708403305205157543371114003396872096681769443192455867944598940300440247462650910361424979468971653690258487659069578812334482750439438803651680498634942947565524608604632910503664498482131311210289793333572121641678023034005799146181441915370173923907028877114536191488284225478553995946978773918156545397136257919639279630520830573018132357063948502828965955663059209403364117635258119486772893215854795788130028482609631836813253055319715937327338372046646322707241327257628115765485839661772901973373688914628937160127631935612659621656828990735077208709489433256478885013349208810273656653668441851374718477045398172691769046296254492536863231618511304985157866345241540765682606787617502652469774865571748736734704780374263659719796801138419960819765891043175957139096005051790428477223842986068578159240950912486504480577849172913261276583154378436929297881881808698312534947507221567680292746466125673389127076482832707567308484521043507426779746698746899807913700911775620086600172332997488786725002607748953756567194592079547939555733993186808949396159515410641513207686336310938925235820174238282970590886043746331161485798947840503779798772178643212374701365974966497325584543659310265533857671240598827783125642874939268736965104647993957321002048578932971496608074078767386000148407975124664812581920614651891415555277531897874090003526509089736402351159863354401923091628456518248709843781906413377849913176696723336903110196855096901622293463870972950218299983558629586302856466404069131061943434823854863184803085405008595950606986768715326480733292197254456032602682406614157939014764013660777061691161938129244409792542403602240402950998676044057931787684672245670086384555911532495426657520753407768119843177711782043503611730036761734576425633375269848640429941037811373924473478210916739138976823577706899847922173600926417346167598254625829449022794945451004428520860215282672922664231779047857930650003430582451113676050348087913080332184437262597989658555832677774748674465116143440905402281633896232609783327920116921749486706287408105400208099221734190819173399604923623109203096689144682342441416538755460626843928312941951283760904106130657607027939463341722613102359932905667079040841430150589611369293864289160206562234248088054793520281450064288125202907674348851166439183153311142631116341395920626420773075015198360901665056911600233095783305467619081809961027217954250373774707505843329865000008684136947972097272960148458969034070008414272794319418473645301170565412516611075904870116896022355305368900680217954703122746447425183658847512711796968130952478027211294727503948080238940941071040576422785690966739499801847412483784042568022096294878719945768965086338635906682194656255346247667018953603231448542593771028925692600617385747519842057664954789770378001643454519328639319380295033697238787714427557901221435598384990575828055058584669569262889953083116816294391765870978499125514674803019148591772830799440863796579208485244370222680402436477665723678197896005079014397357614236207484682396842037561671808184095120638150440396885325074124989959459197136693473802259113003735747381880425462873263570731643609899412740119582631350121925674222105058519530627215949511317484825999277978094603056769521047556045570217346811526058487296783492250554081675888843650751365018812654694842489660934669336864577836656640319988200933540743301110406663560327699374971230290039576744868661586323266163683478800889650577469805034566546546176517395320402533243507496854979155604159747560838644350823438420669474975842786011729589856759366698009873414467304726671523936618365493354041431562685904308900537977266031987073604416119426197543478269005820688455369583171865508012914497216064939041002282249169266576161559728965104232980998377130973550928485121765999137201077307079821789976021149165868456701898157812130491059968212344489543163634729286137530654793443055469816219473911260628103236210359030648905142046010796724483411800464898386582618675468177851230025796669561558833595021251411537038063848508656742425818691733498266145481222382862922319421953492653718192763731126602195127061487337439190642058810062822268963908752948662101421606861327515026759535140623387875662355341095341856585659217336288412484266513130140855161645577546243200844291618703737282993323837772378175088831201299463661690479952382708357490177983362794306978837295808324005510903155065312732036206316886526950277792511475456023138804716679858221218682826828752812877655871805220279145681151292581695204212917861371626956407486835156461889077680544309217424727049255038303852731385408110536198720580191105832471977087961518239954812371104214054232648730099424952732022013124536206237107154367398984674800465115374140863750430056640521235016809128468268689195809205753621136838579768541516539431962614471649554463805209784701494466731922626903534972643988824904459257582593552168492053556000874960453979662003931501148200124645437331567227806530045060221799907503276514376243345644784400367158140821379184353073479864138104545943643170101944967384969248230727510171341156959239686417644094181097229432624791755505407787842146387371525396961047470543514946860263406104518180017085475943255391720840263872983967797730085927499082531937378250158743848222604965540297934885206378575966219230391777993168142483197820854144253342248319988320965239935211075004902817381136973441201109631631237329540901473993799119241055604910349630160222461255683447900757677590730920098005486509395845476535941979899937622488361623052989359047287144038646517829996411184282397943360708434122664188159972490078542050280421427546270155866394709248372710479692273419488284656293671500166127231079223581856294565714591306651767559073617157035325384632244254489499934919892629067759626478537830669439647645121680542102867814121306269957299718301815799949679078527127437869123763551407473183192063218319515274424469005336265219429938594508954525164178552881942530287469894966066440088840436058500244144476743414405580116183080914453924251620745729752831820302390347248770114599069247592309368245797267149598977630486691091764398583681337052891141806941954200283715618078966478142521223220481363585662747291307628716199213645918483278565725171805797767752059220065890270131627863143241361714506562661238149691232436536870065486128095209851207754361624235108702232289619979204206499912784739762484633987521454157660483112049764778686797678959135205148264734571166678931607158291319353428563864158239026608036619165824434679583308760920207066750346433688132855449211472188888278058834907688617539668950509321071050646484824256426488287676762092668742347623280114574285532649927890947789507846059248829397922911501176540025662727599450441359426702681230896016715181744364550547205445319196769428177475703510183914983103849893141207930975966095672091680054874285953684364164146181840800936268695863145255286415830777237151169531039074956162544396766212715500975242358103858061420553305053439781473551721108676578224887385487636705565355856541694962499425269277694018792411916532889262133939638068645279289640950080828181776464903529509059454813063120683862766723684255774090303395553418875641900843549125123283637346389158636101923113436844430881039032401507251570089825344105608632954187341426523229789044616868223453538963117267604875098460117267198174543692042938538213062299216630839352938483874502519096907679262004427915872296429088672956488999407220403217664180256006080195823874031410873464349130659553121239624159543283801241576212455768995171668356632935356649254958739903838297529180018413264250914712371578932931483771903636817813998217946542849771513699041238702089520023799833799181872544800548164014986390749273870192256955829622075440123634502109703962117305273790959419650505512067252573498676856727389797616683558781763171857957895401201627281478434872376232845902913876766651902583496537393202068113210740054025526433006722497768166347223017248093033387126750047497293251773406574122933388627481268612624138133162601592728682295175157947981477124745089776925097680757760544205423094453246747639114575802385487995445884168540359866016673753368582988311866980711240503279513618197357499449438933867067107882674631352285223017306063874550797866568654502783486832420672132291777858511169854467307728070743435881651125306274923405290688319773260400743330268844963797985427727363511612891966609952251890299303426069852027808353981218427047603160719193616024125985764774011656758518044513514793637994665897960830002303627427083286608277958450016316656981876088700643791656928859220933626627477928735240797975917542827988781693433610247531606902525066529435935744978485259064310454305684441348155788125972035334518179469969929904207630675696706373295920936485957279374126658401711146102809133559723328377825173749949249119859967386601627914924362793561139236661217991473389485303730858811787340796863605011440084928233317627671306433453030855064327578244896987620339142804028912848188574659605104128725588186806371139660938521347628995748061061799214138047883194004668171849655731530578249648236885563373275103998290597252400282239714584956700358261285468090878967741006051379425366145497093038073587304779323608399392714337929148115473259670570426612613715262754017802868236249403888955463045681371773608180184322597226880329529784404473392905870977515123631223426509996297295577691663231115827604769841027816334582796056672556761756678692815258741370378239345904381307559183725544112121879179692281892070484124046965665140878238756333388224707576334283736209312530984959503137799519335804771692511869305083725845515316249066616631311776633849290541384983101505160080564874099433738610680882001628869182799131745759172265788545391191330947195569232525394538723271618174318032202898010007161215527150764937073200646562260295672384340445806636789370553701858028430668057101903611655816656056209311702245653761527966456444997873339790261285852853801061580650691959822237152297839228170796631666038329368328641863584766360616431350753270420356257041777057012749739229103310496654503387134309723176108560117238187908048875202572625629274128691418521743251744981008248698369501655910160128967888095185532237913647265590132947396996063539599002810489766342306620231037608501156505706788267214021030898802670632409439425817495126624807859008321090620682243281031868352796103214772515651373045889496374965849980424371085778478743381085871447715234513652405905531349026217994599091781828121543535053669837332517511217259538392686338354755056244344355271819960529715790922137996486681927975362222481101640988796140430436129691086993765972107466720706197175198946735456682772218071029346389960701246599163254343387194750359144380030940815523423103223138706064048369303427227574885790676565562503538073071310417799153873353795795670466502374091446100104398022068325639779672357701952598807830551859531415691014301006840764186393166299618545219031295857735092440362799577028184363801669285033923243085894693379058248800005898388261372897778599438010545272928022665333749214466310118518647919076141575409926633423552160487038802065015506704295244210732578723046002973437040467791062349026266348666084185559794439961232797831152014892981893067143513990422810086422131776173741011085490818457812135900818792078585502777171158422097112682501361478920132004843538196361625310070843315861737926792916213080300765746260244304154599472797877108887570301259758525768596506042467362431450832926270061629486100742537181809440343621093597612428086170247593953135177621747553819393030289883899309557121268609033458421546431266277274184190703396738405942423991955549748528404229869634494145537372242665671029976946519002449295871410990885537466203744612466804027315558698778148826209782959509015438321643375257908532121744247737012445727545113260412346361705363646285255071534979110188386176999822758987723374795855438440490894654327496720605279972023828081299769841335580572966044444956121547770656146646389636639402742706635141913381220222959816694846655191940587359624712954669128144827618003843373216932685567920362770612242104086321998695211082972522516070485323887351992417860778466236907139270083280650281809420538469024357968245032289861931358490533383562349097279256055254415761276090220229758587308690813400867295374622853056558568515252246062572735826539776235286091010991133694913767225459614377043321839951571574184617750544864616816391783625275494434121123917248629813458150571500324520363454244748303182354899313880617357472770818764288967347598639004221720838514420881086073928576154114570909378055966195048882659413619732303922512073531585203310787709661062318211907154806068465286846302497338067231943023440136714141678054844158425368563469799995984084851619723316823365978418630281878879463007988813502594180138594839127287726753871211962152203668408945166323822342845149981002414342876340699293919598270502975092907756118562637823236077995939900130965196856102659979078495926474961735828776872846932714714132846401174014241694286320900669545751555923183527967859441907076205097705310776859615206452110335778466071186783679254520377114475444226125461808174058572073368179648601119019444631350772288027677244178302435877300374475401425330162505208491708361540707589251589497819575953158558364084110035518146634768679978311444001267228440038018794929108409060647679313729888721952264019531519357015876234539926898863753656004319222746659833868730543726412925093516279754966804869460588039072809655080332470310651444641075893241193062576430594349421866914167148775714956367296315544220414969597308093383841705045909109965175829686478483397793063480992153315506427528418837044958945630661381007210092643389975912239404605802225802946569313552567609407192800361260062386402568438224507059707339307969639178713302237373166801783547716102497218117308743871883678551336150377405041342128344852987750834054627308973583075906388097573561247506527214093068082559290726011729409764679569625098739064394325983249304605457115721452338781602913877997425792900182524183021308963758655518522715559988250670982418986059016264021848576812511500480516946393930999330047035886746004034023217431347856549999850143861616631948625679301219986858374236167614178298625575597754307081604064641111899400280769537721406807533056355991328914211422198776137818650765340941560715770892799024706463062640493026517591342517078475620884635298618319251129094351375073332701023635195473040779974188972890944181004288318012211446489269740149597214167249127658784487576199599295306266304459462042666848415330861156978821888507013536661698513030713777202803918482451957657982795096665448665198493760925713656387355272728332376087148123110719465528134717909244092486017277779366731982041357719321645485671227789375886225904854373031360924933163927379562081070937488702034030457028080560779357678989456812907543996431696871920739782990645952736563920764711339982375743895463962461861785574869519127408821226133248198508707865614047550540972446688995566777142121808049537371987759001926021820371129750224876388261480902444627624878854512869917860809535492957603857505073102050616909421719138465890828991905203150453351766805809502580423755953729416330650250324261789102883143977916072272048510872827795894549721963584015883482997075894380404090789321947362764949559357510665257252251939787416348376007236627979303583350951626912185504785625231828402581353591818920979452132469228029884972013816370833132062450948698384809036753495507936870026560478374762051108999193925759098940780168021401517743154878178562369516106456623066164189788152736459202957864662063694828602937735584311602847608655733054325006774111515322321526489440877761029852874591713006241320265598290370289441536909248518251720165317616729984521067535100163602422219744473901816674912074303189316609281265237066182959287072116453601518893310146013243329633713302954933183841785346673594647249519347222763417413052182755392026616156258790146441719235526402617596863661030759206067172371170230669841555751369497636970280654962799234071497813929931228685880048843192919816711156258365557662272184361328494483469818347477083575000878583635003122703052855073879139718919388631944654950426885392447717933459176910261782744691256067660945129430311895010528445179281172212982815485010491660708668425705784486130146865880691377406513672043894017854516295098201374562439864242552057401892408663575757767295094876366194922615145409118599938653426763392666656979338645947944337861448620901319354618482674076722863117320865516248651965891814282503362514735989091263447210276182163376158815311508607904428018648696970303559843068035273177870412378773325145494773682100770099183297295367768513518595943132417184819897247433676083827965912622341093534424101933685355419031740475775935359604352405507448370306079835190759983910027808490672926586253453710959483784174208187931447046867282650203508600204161701322016177303901724380501825947274333536336039537666473962042443017069685487098833711084112111944222957315659430706977713936752607517855797607350546844862479237630409109268646393548795966456572949017678867126135718220142247493127510760858920528304318279618760686332722938522550004617066680133065908069246531370218654112529829385330832845973476518411451177705841182562506529648044800150618826166007269530178835205539423546573272933757275768301513795185627692454022996072092862352600521675969325559641291531235494393798915172158956663161317205945946546166259008432813026028073358682613961049324430544841280854528863879944479613374318237901902594624294431489005165885048659354765895318046146457239745635526956380084571847901105552655551673803243885484778014036056150800701247687487994186664622175013846861783196490099592815030515263215075071375781796865693740608971986095561427706710068193096250744360044428146825660322595014637397701288922256420402469373513577443731079700843803566283804789328771583782381182755459414286829132861198144048978919421851112611505722287382839204159949197889156707785127457562074892651686046107981074328394820434054926274693955487033448450922973688480369627008497678065798028014226406319078056131657194122244931524945242612516609776423824168408375562609583495182010345006131198459578372065325191597351576619470288942720313846925099863079228964250637116789908210342602608731918327144358655259483846355059901750435362707932440764362977811613103097358442511967896725644699974795445849273693058891830723704605966433793334821697065414980849597693763489699566189188414389377460939035378871595269628845410859941362717825872884067400524434535159978006270883762677166698664746726032227558638958196077984080464088316575250255996267993884159449862107242124729195460406020842251891552112091364696482866267172776655359422664323855377412150398068918564865660585951370698543125542880441858851644572393990882749894423518447622064243152106244269821382197681310978364958040301428001004507618098503236327142081963715252187381741348728353515768465023023028804841529627178250733948689597140389161028084201914370731125353117666582007849982587322190018236812373552882722263547170072751294521917094308201150266915488636589318296845597806003804025763376700727669705127229471946213447462235173791934215563303816901389914969513892931413406617121138927882191590207612652722265113176202927491954161649945843961525696089585899777150092068244463735941351336105328018438910348057021072572870009595896867478502378966162020851084347791163267481078554311159031613827924200803163418636030597844098004082531700475892506132608308984455352730630491337121859742511945875818473901981620646362976375659519185226560607727548429811522125058212087296728736354989639308519487722636437526143837761364888779003405076583612492322201724814837148021104094217065092649072509940163873304458034999907479902916469557002869208504690773489206623323896915609850823926683946097535128974392755384464449504264458502537929985674053340483134190820749895943266597344496403402090052866682023962867729357496174546526724232667591214028537006658636732495035531263448821521242068019314844278688538873199909655513561258855708208430441888708403658193893564705016122606151787176040038867695156453157600767776720421605271187647514652986106907387159726282861582386032416994890245983458203120375751261889905633523886407873741762521539042760457868710311943460046592689667707759246043125093388611530381052995624483675402685926952141889467754864616863592112572377257982745351406569030960923333209046210825932577571987845562850121631322646919718207026751333204655591481693607575721412164769837403440737814392970756074905528203229751188791978664457313650038092472227136789086717418854070598374967152184076801792866732011001076335070136860971338218993798677244435900782307346875245435200971255596003402237745268371060096414641134438861812053526219087743402142492162306975087464523188845423554118252205523896593676856482340603936461567907142479233438492157559744816578880292455697391392097118390726491986414237429478183310422729533609825905847755099233446721832432082022768842591614399600949360708889973344115733619884490915702794153725205437661888873713253851895113876664901974775159391002546025632110521498020363741734883486069409208631623627574403695710103195431644143845763020270752388028879720948207226567295738214708864990525748095189759008598104072935531186315643486629518121369969785405896785275597607962251424864317230307296688680694502692899480731711642236549114726690593921583954306569068959644440695583867149069535413414070458402223404121067423602008949311586750973143656378038772860272933651547432046920635340029709091171714425411084561869354725966711613334332185484887999595461695525384316311126806918923830924714794614175832189538166256602692488420147839144861730191646795568528533407251254459252382709779275854812978958197680516476121473018867696204995055904727242342198719206061223222466248288615447656969697573065310748165375350482839696009706536140088437320225590579049697033727724866610572291026458326401520664512911552250086747183933966141923193431968806455092238218346978146072680557663371444162258461971211681039731336371058584875408802637706394936067379963175265307966073554234892884265360769056664176716657216549562199231385444183023390839997219289014281246924514268555183423423615855951243881203144376145564137732260763525021271483019115359080745310103282381633924170343097200206596721010793052774229976925873833985880437840520052092674398302509990808903060446452079735618907018505310607018892057328487320903847485945108922404423641113541304124891315277580908982008784725644898173737564946996852225469841960422341119564732379632856903309108242078219134303180854206428372755330065838032864204889891845298874399802597946791238863593892001388022628697172305326928358479760556846134693660029253945289628824529939633598572759614999054504815030642716110901130702799654020215196727270993241458617161506817683097159184122525284277545559544792145446117176495480532116745485891883052306511883195206123262427376794179738527123184259214073006723000894554956705811979976676568079500254308179066650747369990756965490585948134299421383413573412633131440976823639292028413058115201440077531929620834632029829081687480529000614701723620682101468215999257929230361204352093273939611006364723283826407349647397294455059376775429405915039188774691263998463026635402907453548880638156980594132466378461931742124846924564699725573747020266277054240596241068862555801772268859101389464435969273939016540120271008589075636923136015574581037761406041127454860224842080808989563931819461358969563358586415329098158430184306677671230978359995196193806109622757378175821893409311108516015742448510609771335951476233830991617823992579668036237047001269126746996128880481238181711418397392010688934993026415686449166704668431660399343296487146513912877486281806506979451314575326709580566122631027944881530411859815645607516853070632254823011190248159570284576252075949476558309510915234817492550464543225539163168811472397006148941396380800196301727313285641126590590369477695910351438985956816921430925053695712517582024915051108707878217994667048766520919632640960235100481324306404960158122328308283896981619242978576400118736765820345366714119379127407017520330256830623110407238006890262120585349040586248944628498141718536350661472772676330372274366099439097522595798065781770277665569171571592584767577794291773793512187066385992972287046062066505762187124598971189011962078906426556496114846802498309166306511411066443746807113384132787560136403258595213905113304518296240640489372077986589863692937785580864691561135112863208223343879011317232409153059806748108411389737430538807763525086289461376205604474402960188743021609634655228144951328482926665523232804793058662979246921933106544842023755075250647743976196060728605366389406626023951513122556019334746064067689324869515805804233415383984164693684470709348783662109258403465979410984689693658975338028426996074645077981022593062142204644101182632792564925970300321203112067931105135289883417748893502858510087724935705420680037491152327411917867409346671717182029788831108698835206952322778039356130343145925813565979909559012021551537167065118438320038456209685353245288542441925787231361360653150246334464380490278922059058762782718536984964643139968507553484384800877026114245526006800849871764092007806947903598711560749545845473994358191595803019244662781656146368190216364338583691821786680391455830662654332802624756146952121062129928840652993487785288470040451940267943454464314128061479303465108033716707104330686480022551278626988328176475002252343224159522385202594242305530149247777946668318255478146862452954884548746819450506844662219894685463364798406936206105652896002620232415885097685047393605977852055829861396885015657777889823346089779401035041889607967219665543194578053642617220799957381007876240625269722985023891391725475333081265163049781169940075919546731836989682524394437644565758671941278888543174665164110637636392624135689671008107932897101040643061959041134298952777426488444573545793505274017727524530083189897193810070708370515321627937459226521057780875260027228947313008021904445423508682424249650622238434942397714663898628218767013726585103457233567850120943615857143695259433312246715281538356314718111487433156411138093336992263046639181070015012261086197840290031024083716227618827224286148161175012995611557729894314773194372769531436812933910089118437047726545056266999842543042357589174017589292395439223331710484902952439546450530382368752198199963293813633117121286073780387314259365685759922862572517520031031809613422725033941635449551195318635308963145489700599624137852203476703791291293033078495325485125050684925530556808379090063168559642188702250447520008918775032055633640781926882208758819173507998643443368227617073665897527303941093381474619281733314720272872313734026211669184863095574282892859303309796077377431271744037860419127759761078659865845225414057391494338030394079666022683145600977258071007289951148997562778511978633936421197134018330227223255612854835770318870913276340427096247430487373769492799028179303811528349279783513215627623790310793760176949285384807668628674370066598527323283638929402839761718176586253136045381496536833694774490626139474871441781232711967966966720238039837000678645822630109993160761556909608505620604268283915046010841216495747151614840763121260836333074192734625450477238299322647729798682820545534422166569211329153886992723853495082100531989525133467469408011983308282304666544799739580283070624130856450882499170227329842577928061846268477035477920331561703430292643846045579820781527569752348776779922532345860249743783322216606754039594000871014489467309347022467833710087237507792174609035285165757955169181082104122265562152482385041679972929503867617892602897697248995460278461526816663526441189848529637990430937741553690730410049317535943111484474289292324120684613791642150345195520146783235431844435773256826354987879021808463730998808537306524104089979287078025059326244052567482047167806525459437620048067016176931705483209143926221327209184241223065727397278189965965746730903878829651416287046343597581842781193810711713573266829509511783518876497887980338217330796657864277836763257891683449770271803192990754710437791393878650599953100578081610673213741000287642575978314694331389323670204027841723510725990161879190521059860235078863665071959886671137571511760295978621804487629460675118623352462715091739564234250252843287291708681626405115916956764558672676739514613098800383059892147467452722015782973704056291587380321868858041283721498775782188434989667108289672102790828043225890772799558409504373238860910731780857474538321288173449672469670332370029355081327373216855726267367902361552295335747665509965932174128193184534804984426191410126088558639997689969796598186549019759622476395041168372298543778498253543308018832406433239300790705517817565398372837044122886588207376972211808103911153648645233054523244823809117133018394255957468624606685864609534961757823827340305746781334810704426972869970049999967326360668795197509131855382499702394960059467483473498036543976227845936722918251514079869079914545100866070891577567118416772389494364067993346136098425309178916267215361643788881088312069760913404856041401970704079564544202914082108634938602448648727499174721036758791666624747813588709463719114448837338528193375843275878568796389573502268978543383608789528759734417988546137413397631894259877612732114273087151591517850097893969398037287490398556976047176380358518300027930681975913013073195940775218156157250502918804905882308506573995526533600554720284981209751350007114706727838040943354958412967823500428572172820185871496174156528289056716739840922282407098260735548489687738080558458298360969745820866784995248047268717524105183975270829500604281972540259755449894299292310285546796378637902603173952577238403881000828901077477325402097641002673700525054262353451226237003961133263193033696032473219172316457586345508613273194540361845963379593521641770477285881850025824967407381474202482035547030132342580758912892538542237386202601664872441633761067962535262806307206001250814136111850879767834638640516062133700744015285617409318147834509291264686975980315244260758173426813181729990302767260343867278073291732983298352321260471718527069678659806240450193101799363351711365699308091215668922497834976488834443701587541477304636839321987350594789183741486226988656838363842033252376360558771674517258309870823543465137819906879249153370958707512581821130611703614945397562075510265303869275003920654205873943339517677892870073888341284817928330774674507300380407616585092670961937463949747994423471188046950389241133445105941918770314276338281415185080411034046593309491382102281759689412184474595825167369236269086929944165063753767869320312458392182922255770213034975214953865237445217130077507817786650140383599213867218485827282826627818437544834536486925251141459901884053992836829924164402088955689052702486332406706975188065227916430513054982588831316524867357597999056462306935143830490257552358638342729113291831068184005756514145149228017819719907582519638014986541854328443199961504797305703662359820365444534501761277494782204005854066679079122467210017620084777673519915330788355884448310274188022116004502890559989628152056000543302810002621625525980372575055913471903248620829551507748083980230349127977960613901526723647490205419242296541089147297102298499283437642656891926952225000677569066238420492099628903308177152210074268165585427645756655934858256715387047064292834864169258097893512852831977947325352818232051939933933529511556663012203072838041057330872759034391322528772934438825978627107260314079691875316313803895456443816573014079859469786991168317968914993706364608748693166398577511478154395351617527447858030119584619199215985533132010951429084845470058086261820286825091949871416194818010302875244738138925284843575489371002773241657243826707670623920306682853359756731075644247495640149889655699291906687081158876004034778699172139610803928858788628187120300915366941783559856680155518267139417845569737639569169627955724084685706374275446506678751118635229361814916917648765957494097401073220065778774868243466788500573157479213146467033779514426367969372734125633900462158316672369138397000469191298312921116861533311283155670817759956396982741530803429055190441568823386055767446478765040583933174443467452563953265460123739403380718458057602172223561718463727603549173222693292159297223670737801769030412955566282417324963939881312646258653466236917282339145877205177814676631182819851128335483551491110682177580003716717290396532909808602207552868509943325814920476361604922276787822187678644112734348296924039506734733722948056436035405728335568779205574849323967161661050662255845904944223807005924986150515081180769383770988227217620476390747413170861176838448639476787992902299585492347063633709045688824937362536062616363811752077957278241280309327274026642973025325683523701657668195748729272491228350803810907117960081986205269344313809924095388695695326851778151841597761259866864449665431478085431273345270241261023563957578489728868655751520643554428978599350249040552145740468004557545135921708674147200823469202941123628015940627505760473832804609669923920836592176655093569792047569215243207119796730414690449865764035656585623131792423596660403696834164423952318665064764815438115609262196153233620716845419553701930450766688646271956784974719333666310274124964040224777500343317735616031736289560079813631947261987363400543995179293158560433917643060727747936768345447514808845043380014972803439994593569276097706927521111017417953901496495556129941952375113128178369597475259202834654291131409498131490410174293346793234436480703749173596069243320094763840672939886233209890244832446582804446009325298451242106577304331920564628728722472188900867142759836872568590296162912807903504731431264019397243966075072709274777378692504656123047199924363332811550419183988261362418583528399404119534164809844718496295040417555412235768205238153898016335131599705349114628002333735300472344324979178918702260058577327340596980684163532338962253516269198371245499873210720189075253613275615521530943859954834561749337910781448867778468042476873025653137908561004292502446856345930572706578112819947695220299824081867078551436174833456665703119658426785349697857869646500056051545866202244149469758924645700403219049566906802927240605493215054337794729547949664161909331347589067657492794643308956864174314536726247027877976701938557307803205747001218598069420593765002164357515398444648648215792518005940472020728542166053504855819109810158918543032877151897832438960002797830133168026770753433055542713754219875613929334871234666829377395778250616095458434213069802258288177345388950532905191692368058649938216355744539004966022738695990927137642705743706877396059412688697003317379852050466698182652119464690448313173401305136921965198606324568084208851229549754551255593546658292709283159350785456625855489790053532992433172032463525728557434599850371028362938653973351169045712559563988342273790629522776321081747620878500163026311313689343327540190547747698631282287472364619488771368677161872706147735037472821345777390971510606015426279084260104838018022491464281997574530561859286286129404950538065335751543432354680524964167246998925815036646295657058726845831328199574548446802671676743529792185625278088900581754830467738457451544698556513615731419888640143649808046078899894797638137540449834693782012960168057284000590317653870559359308722983344638560142153981954357479311844493040414184147780219973533078388882488872658819037903794189212791218411882360722938185792012756020548402929541216939464060909252483169761173402750296138711659517707566082359393517876866074639204722475940412391055016525215171965013192232143173410695344896705459027134314996771610035074513461748332906853730785672953756214677917611765589418404003691661815224987612144755083409175221752690368516948249584925283142280011813740080223771059524873850475656619496315204968567776522082490707433151208465151623712645948827770403551562681323956635344042244714175869559546515015650765791123365153294529429573024926718377135018236244887993387602697048823857586914370558572427642057692994032605290950127115466014728107304565650373423497152517656494087682656349112245768781469959582380120370395556149154657775986386806047552637509518129699164158672425792045402840264817438972276822550886776513430268449299252356310743332884083166136768931918596834357127580952440745869348881491897114039222032377592698769323494814799612873400385207817148746768035277980690500271854633518722457149442361668704400587120196865685873853650225055739709259275360398832260935291444580917099914597571620962179964425667146235733208076485193762438501693426599811843481447398456401699516874426976317434305525389803395787276302292775630378079924488327629408505405702506150471225995747066826939553038352792223965362913033763550006760419736573030941239310676368789145294463946301641497541163464018806067892559090438683658299629375542558728402325827706656927582278765859098102052413772859941891283414577950922565516286553228369982118284399231751476410456897067237882504518823294392006181972807026364761438744364667084671070366191079156138528220490611427033930593122628339229596577741080660553655279834691450632902477402402586604653099597579651960443451787135218239158435368797656710575647907478124821690205512357786249771233745814879997318120633883294615586306797642850694454671076684326626827077519519731095735187874388914046948708433602600526737855218391582346700339410721459803609042565987050189533742476898331880657140805133716834656971463832671322179988491068236247984704532182953438804185061369001873968942567172530289541720551595520214626397857439757622311912206035126579862697250224892471875622158401284568772677971172993974952200085899934788177730618544036785340541324203538837539314383984464131028677143989634566453993112836842128749246246884672713156759593157273216477516088250681424770687316019431381318678473299100723907427558301694162143358858290986597523828380561620533412902032326890580283775122475158561994260316857381395254414175038224791185840753312877995589737742259441798257032863162857085625018705291800602491485644430617254385431890291350161890712049416463998224478555818896568561403007767044865434737423641946337687330790138076330482145606204098781154823229693729807789193997785016074993641536938394649923153333032657099988890565079889935528726865722254012589896358173507593545762513987108234083717747151020521473647489220850874220301097600855003928571328806857511566413493316022952634377213102339527531033335677735978624692355955536766802653089058362299579866604564431023858231426632768614205422488110962918752662331822290511657939429028121385103586858898370014730331488547742538155169052545616594609427829999808106424237553143325803257086254581455855274377068065069052870676272834274390435103926578782207893231558351822673350144270181074411708406099568104501223860557351354198004815429342062490018022944427855560858739826185495486354453387810284130582949275829488816846891772320024274688293466660467402481106732730205249707028277579235970072781327812309166212625252560457212626206492240355058313037900512471292599548134559807974022899890636510151420121457562494689065986830829677398696872276354875657906945466883668241644149199681790326909751493046990464626977661827684400072229881454721765794043309592619672138269903422117925748999547513173619881181755211209737440631578818871677890470105927832155195942569823060500090839987799385357960383792186152456932091951963094517065563458835513463879357719182607368693295031613026620027918594964350906880630814626442782189814193760021988904469641110654228475168765720742824025796176171336481978168363984276724072585673704275498988455144721754061733052050606654703550826759321217209222918015353264376434584539255044980985519124683349022704922108613832582198055180315672612022225972594529859826671427653829848468986138450100164088625423939265792562695938577362537582753378145448166214831657521136769227385711096967306555476666589771524345855949719261567628064546457184238860749823281245801822107241898945933067419547204450958072107673536573750723245604228228392396655713565194529199052417712824851181316037233144798581372619731746769831198884599860749080628310986984513270916848897303895112080034135683309892778001835435245888356688628812883242634545249025683081604914842600343109575442517938141522553242629489103987526371210311336564554924072172674927840958174849810064826080492114220856048629598568865780739164362179433648663593215521925390653661911449848672038671432107078501426528183487435255456103913960441092907672977203839011056112495947500136495332220908167367508295416803748138580141149802325347244772809711573919348928771469362990528977278950842808493764912576929737084832928108120511077166182781170673703390973275957344897818683656534685295827765531306095723442603749502876610896719829924169954026565487368574012104964722088153975286827937967852851765515424407432321758011303880681462934673797888343475434836251572560909441271875147505606249806000794835429496057220825711327405431889665214385842046424930229468680569626804661016171106019686743033303974723083427031594614776549666382673342226694890660250898279966169938170636283213589992902675922231413123327095966127813812236519352496242031662281328461858574623892810744757185017028980761833872201630812863343304673247565950839487683983667848630899229579552758076637934277335184022957905030537895221876892283467442659409006401555380950190234115732668556108562664240718552650351313043155122335114804113363326644029850858125714217809550359693527741532452950584955089513255245544961460398984929859592842238711974532941433780007938141611241998608604585281144714004722280505200364761186187510056223871631009433418712376112296287173484480069436131597846805774966116736329670952061985967728447469411814901636796927593219471248556875841023915938906137816785857327495185957878401773494316437006898593653737620425645156938711036815005911945795838761546278891678146330042260114914234962570449176060516379948087677284585521553000022255919328478229624033769601858072253365115034844382434051834843332831061867741073615062837779501061075683162311622085958923063936844088332264315113262817827935586482441040742661481418771249380355492207847653162808788635484883883037075431581253503309003053535265675775040140542630294434862534330825563667511871759983929105607193754843888575112232661046435143492703917167971255299473843633946785563467830946649091212837647661492116284837454008500119134415031476279906221583583098099625849701418558802467699405654592290971762566424587488713502460587451707949769325641922527591846797342311969244248703903969352265586791352269962809251947037291591320756705890811369869524522803070082794567300880035897079763450571695205043299630614106423545251540450142949694976068970082009329999926802329658935802338062318765552667201829312554423265900461579266234290384035572682357579381463851665520358239835330475054206441125115041959398698600749653321076382570541003006868302638223061294806540521291241197867176101486100225091595986043859486688475057286149517568895395734559709047541299878042372687047559607315739173022469155670979715024733824651075027139396603509321166849319279265926905923305122533069274808927119157129605128414682418482479509843316927239301967096668186452719337701112596692939310447032497930647309294597966468513214923179434716130409504359575556452306039248584923149020759152644837144875620047472370632887639299388452218408635148803347574339249560307124153738853187619631939790475643100698374042611050880475902859171669453679668975678340483551245199108188905801343484860015935298618463345590738469283745974172982806325974371924292611795669102964946434499980454483257612847860071556715894424269673626944359076143770904560912149258511153945973085764322454511521077790278503359846319518858322786362315719736381203122665183513706322181171007792056081504975972158384606260232209207316449482393968953006828187745116427222927715837808428917241014780524552899400213131942938473393765446223697950268570590776000601496320773694714690386134478322467883472458839704786607872583347420499631704765324946141174685518521599457622510787419181474964826473924278899662120873544969473272294662647021031314542234111808795081743963902891586891535373737519915442875410187521544451655157868380931315501411834010648609390655223005973577391829542746267170351635455654092332183294672737979553479622243764622507217345155544768380972931485959457260462342493551569615547454262071065236741826373474152376413345794711165147728581726808975814554338455448843285195870470103690521948642659920391890016296335152187567002925012228823173255143077502483575471409367833838900306836627726426121459476087207771158843878122888911630766187591087835053268623170898894405123886498319117250771723575284150103424475743570272065390713670640312427383646030784255945620930062552004788058137348516506558235720403812114283096187970172464159106251642691007949882164980509133521292690079869060806415882327854817837864555927397659675113273431136479380847520195498739865497670311089470480588087555879032778397795238530181980458343900051181167059867045663927972734598525989280445411995537642889705172309122037113362853672233368248247122528526428901786461364175572150049765657344543856004731484238255772489901497403483969275784610498100293953364376523021069054932237655239162300699120049319121280099803767632954191593554712457501720443764339165516496612128171331434060548014883300586660361351139731858710005267750763166369127564988430287713180905299539530852185412248683126269708101002333282660375687562751725424536079557539522430401146379819118227666255964484258007283054519855388798237995151865605934866647458401657755557054611246406591456328456554890263457375374956113082476472139214267405079469610190166105643465309551630339535438973496293866606106728069276865180798396118425397597886792694913575739402927274918313284701595098912252483117991249060362539452634212490486322181515290187532592774491830902437881243112353396821635840559882661082606621757474583022940045412115718986838584354749518583972251372398424911900091801883314484717795607193872237989554155602057208491548916246551154521851753206148794990244565866644606689582790452706905355036374257689585915187432997616968181934050511399879479226176777073860556055100267498209137622544376774368002652058536685877319766342020235133367393287588508879522308592458522145640616530112472649635160832053677618006422064519702873201278269436869377990803871762676354984000138240047809869071148274814234868963343300522799008866495064035608868777609714691296701281888864552236999584800402492365741360369559498116420872347763041556131792761581248278916245833756081958265894068443938338544277446562494906789815102117976228726062612485850471742615263047050091236921663620980132244848291181492855826295377583942761352775253465463502554444141624431924376134703788361980210389528260315982121704163041602719883830170268887225885056549761091371818638982886526339057254550050957062590190353845956787142669833338056659087042397243589633287273334772725499805924606054694733614169433655358659123637280555188660489516311329341034548026977527649203078455422762247629107066146191798112539305899486915076643003347139456387201150662434109835507978360978213765311724020937517596970854778535928508560863580503836165617248888597663941744412118592155458471293603248843993968396928766584498654744346750115931954522243839435454511342845253562886851017283431289357495135951050532844020470193957293148691199356121815614775938110367271511102267039076073025260957743710735972116273036113462543520478090417700157273679143184544623542887470903521945548478204995278292574934011615270047522884214660779884147380467763887687228551185075987658365787224006451454680209092622643205999845757961427685668338308749745235738160771870946018103962675743856763061661342459901181331878964083626199662662832762092812151039069117485402075477072946814389290440764794541810165363750270558502221178745522115629793937838345223546512857603866569783038108680799386504040685400847459855128132628095394008283919038454734204496766942537295918370036819955484218689451178728192020502070059496633254042831566873330474555646681052527812113454291304537253643549084212189125162687973001469251518643683954562300989385537639902457482292965446964956851893381404800064317321344563713899978523160637781905817310340995941252300211342544365892023538619274302845495806211795600727352212852034419798537564191033819048438368440696590370818738509330494400518694258375459258048181628407694568538843269797749431638145114640701682620890816654167731435061612670018009895830908422482856771482572925564563281567563192148003052097036977006111304684258367831771334904488413422437537992121481779468604567885336747104368912701631795560263217916222022410081838197134724325238633905794400964401621932584330556365226550164182071880476440606213029020826969534994255132757024025514270724568891645269394611918270704450469914347476678688870982974258060148492408320938353881202086138993177563696954801300160707383793231624621488101930383965021786275022275053345183731053933037189623306616603073595029587456873275125832534264009700081027662004287970198243716342525187731901777145787974079828630715969584228253019866392337018751304335276573291304261979068950788173922042789638963987086157772375970784179836521230410534821524049980195702813053563133848595778587157743316686883779703987534994897078983958594411826517781900191369372222388066443726561590934485591170126123354385951386481567294100030928237837273055187848505041041831776694925980483417257582009337328280512628072664163394883304321885684928605569692342424957206435435450649422770235319945615787610461728923465461439485008761011325940085653672592949794926612073632098947207637845615733576276791327023955210761841722882779016638721864430616160283210187730062695218575617399435930794197348140113498398915248037351064129693848449503007567680634076721522949842823607610456488636676749257213430087942162492537897255590758608487225943516799780052365159114202256293381958030005411695212712817424468658612757461603386380793069278036544175133855021322133834609630587921800539531299689708889089067350370607593895677547325464448343371166233279928941936217605390282686490145216612499800253395042928612929071171353309210175817225558596371638643896191959113729383619847097198486958266204704006678985949459021644967670759453950434757361892460070652162938878886258255651769634514607741745661824046200750419659082786828155652121935318991909429288107104970795935786294774797918426702123742084405029247687909963907210777562877995218077980387672734820887411762597964599168769347791228612600074954713873277332344620790619721648110312035303870873175446074840445305029585036114804407333202805300772094677417298539490294271027484760014787899133452462215146361283377409837701428984044186789584202489187009669320903964221083994542720535940515743796192405772222745209149081267498034753769795592311095755147108111464454772499711464032064997423703115961731157248094820858673983588684717755318761491490910171223970315030701450002928612596959402163971713111414015909946558909542700271859401122527527477558343655227545983058800758678390407665708231900659587875115588377661445848840431244218495039620680282920114564707045421401180505778760578237821400363852153422885127315492228016890884114090187178154029895387015221241731083056757149544868777023581924139021452753730781193189831021656523738593970536192180108058538391205130410769213327157255944564610796760821556635320395020552480897226364932232425001436386310508410060408148331509289856550506659295286010967067228762567342727890213501672666013261763980500062146865451181610201181228208089238171774473855966587138175942955503076269701915917456409269265490574791070130760291891665929556897969631779142674868644293003592443981020745960391377004642278241448461949045544058771007156121572903792076660303425102790751883043323464241574883043132728999865412445255775215577871585503686093944998802976912454216404669238060718384169792113382944356904501449782009174997632323535582686453401951702680520813912426255709463754288080133643510013121614095238642973001169778993316236130093487440719656888517919266710025998907231769205278331780557091827658166201026176371660565552803195188318571301965841104731819132124055191930355635650073456776208974217151471512484943405603000300502781069864322396242404033797155635208708599754878053353485244576722967454566975110610299062269257566947189422956877031921098397949804009293344128147010511711757645502066245607936794011551977658794894297016047072669281459997485741092118997589858332253319556434563782747304026807732967033986353109759512764817978781108642150155929321423670990596247843488213096151915363989484441309900902614180303866957173820273583336213272108988801807987633935938974832384509844418952860969997435458927144787625544921056698196189784851770891232769882409325719923507517056588116313754186526152151408123566996682961157753645198303463641076070731798687912346033255124050438252168168588698313494742849112038640513672918613717411553757831836792378441528033278737526186945155563135074705867351723849646788287484644096846675918171959794666464981384368251352456511177058859811791366019973935197140377933207369071519324046769234250722774773826940507716288106064717020028704161994926048366415603665813984815905558877639010605471299967308012553417433645528356071954145716573456095921602010012887286430111184164883177211058795720677474022886532594929761688854627733105951953303837856516359816279950333280838038909741545490009648482851302967895907237908653578515519363634671272485982913003933936548134618402818316813528437585324161686441487689754326243880281430936033670874227069449313372831455977177089475274443266147437240633644518283243363035729201562510645993255908883881562224743544149270481980133892567366443131947206828513675882646507937924257904375625921529977760457006175957989596568861618605413200411493903333346642048359188369343035588544120575414203285539849702457908717629569134626003658337820891574227371257520439919855860313325997659680136850705924385928524480230330221879778928382618638675409345014255957918899466581317717793474048353174498442016773862676957283463691715997000873259298801879358374094846438862154645214373835642359353148059165096268454005243162838302772687429035378303384364522894713124226742457206257670342250025442443847863458904219818715733184282706667745099582684153034889429626726119478655677589940554770303065079056911701292447395195542461728117551519850636247826047719352817300207594213181741936117729585694274123528446282924144993829388715511303307249010185400944508612560902655934934131836334898362592591975065291557206520149847445782205995483867080098508167613890167410257915538500211804511940601184785123186913933082645929513408681586438479068672328634632388513088263980166166341162444361431906983845115258887662249677990417694289760772796138401194690126385773582769926062615660542253963503887609543366090644568229045272822357524353211831726017734312896748506055738102802815906374029442288534821128601149648261964527093892716602289928932608970958872074541082692847113549516645383588780674913120386574117600857943725155967528062822260171506032849251806792251401328835396857583913998129045282403502108871655246870039764964482152346065885571110495310407726090774949373749282905258812653671534511401360206136150061202726967913238997067590849573563061224803011955778605103153793011129571269420469739798572027635871854327846915824395097370013487275587182412133646315574768112616129068038472653549162843255790890083575258200307336484978162746393847030768765549942246333368587179888695619868505532937614721375164012825344097810506886659051493008541912656181819770646434905519501707516385249189029616968620362572918126384549657756188967400677100587588449181251550036590823618269518417837141819423200491946057763669059221065122832419534522808140084380576581328757763296546056380712699187296162755136398191302076659149816622923440168824390735960089725755443567904616677355149146665294748514924944439134745681272507674397080057267194566082390473729685738678399449188708880293626019289285575527188540295639517989134087451981365106335411541154052651240262966816575124136695562076885825018036568072407644476281400953047238759980205923769673217350825704414654838841832462203930793445642592751434468060321759776213263014385191168582490788600228450897460698899817918280857950718201401399909296973953125548744181110752872249137080597272987001990880124630857182841294393762348032871226686843887800836404163340594200494244502393584267246482692321942937817738598725458427388187567512156859526038762125621873357847843516902590906470635301532623280667403290827887376658723384151801939540489436207608185708066606381568834395450881287920163465833440342787666549185612284392003271328890945479365918025195661045974198407659417520898605866622772556167079426505863764452203044364623279503434488580704645680131218636054879378055100735298568326613784250488433268676041372413912443439946242713908595753806181269170785077137761150070111569791432715958250420527998980613798703127101089842239392655472492358496791123047119002307305821015407386089223761577846406717242885157557442193138427817705869157254449421123070903058164221623611361086641869460830909379788244394808636123136028566652850677185735565155825680002632671818409353299498778232906318881681685734894372079108890683685429136927717779851280926876840111088673400326258618425475632931987910493771414304572121502974106261718084611252514766572843455654902205199564421275359143458149213703805183764964103626323630930972043057684143391240773915337862429527395675691770776024499534176915064337547638961894739706342322775440025142891834344354544804736947028704445152052773423108512800429008898622877660612428255430190563336534987921778949407191979036033442208012076798376637996961516410282409610188182486999728430335803499202399481234153509389277352994182158933147093536062078403864691418016231450426455467049695335979057191534778629890149888290417404962054317216361518503236869395089143565872794715556924118366665350079257503012832203379532902077497848172287969703095227684186187734316400928234513501598541924013894626702243478143258899087649074757699076796872867321985450552260334712559739967704007300239709230488755047267984945129802277725898661124994307109111562939450154107776106432785057875766660074554161990634216874915449082075547528612066154193566783008909060300721280463427640934088754287667016577946038806459566379051273430148367210555884302597578822271972790133618361894252091054365737927997477481748074764039387860557674957861996303025028244723718693256423780800922241092764424319125631198274689441940541902281953638775164194001267421771959330339226311520808404642094282451944177199124339791962276174934882219757039132291385366427907065815502472693375556285894702636271148247311396026051606398113187481369176898003933111895277717251712854370624799503042514748816622035719162715134664700512439202384374354149048332300710488911927407418668543654359042999755807726482175126991358108324334043406648060931735374892776769430904981605633534372357798793020749106048901893807498258339141200947779399543017883346794856368721776296190819423830231503069242907633826975412430625203090797857029342626037977879549480925620529220926950235175572125777800790474057491711106803958835689741324594039275745885323262734902733298117505477074513567005327590707420658919890338328629061039947467053062355166523995539499297396075393541153018230218909490164909943415201090225616283057916063776492926528527145227967718468905123935228538809792150142822144320826831498004546732261732268667037022519005094236387530562208331252242954575807660088836077143901700910416410031049719977411651766269075276492194787345793337695331472728034826805778023863587210517067647762355455092316664602398508998865685080987786228032662089163476192528019468998697768002075012677383957787910798927929170088387383041644089771579732823209155424241846569431621002547106199548175452347507712944519198954937562924969032458248891028660502707259537630453693909177989194977657910400598014254031991082570676765979151709696434039300895808629327747899227772134519351368680159238410484617383728749279569657738157752993386039789022660088124675682407483228102878353303379947142054162330368697691801272011578489696146433815101936651529397904589664868143507436863688929858129533205719104169742048609040484804071049250904580967693569515853443820798359540384179835148117777416429154082164051016667020423529990145344621614132572480167514782536395063015373492621330892682805009570144733170702175922409223887751482825246476778198223651446349461372602833315288305089279527533629098771325452123451747992278543738772481695140350625484891279060374269537006324634124480842208689223880599490247577690680564396575659734766513434138405923132995804636033351676194119468275269566936536870121313527182832821827133634860417487278149788676926400073969151126927302553964000288488749290774816842905179821387217775153470100032353755488830676428906429007960352853130726697022396456570809062020983637359896904683891244547863731471932062876493072048037416322509309952653778266930263010755943380245537295120182131897440485421463922427679711847384562136137629824664766748687977880677736285088810136028760782164427220640461329907219724055833163845876402224575355081855480985616497146445859412886794741915736844572939288180252429006071053443353475803418069316925238609630183446853187704725573905917526258666261368723671853866100872864355028684941566216564701249322559561592914159973765406126240710329479822898398800773457894286914256690486260556215895948420559199764941667215202868904007363419356125911347314684598088261027135848105130932528950327372802653883400914194442886614789440440885590828990177366958647156624266328012049519987704801285115875661855952589514137308319979943840483731907410040580448446375657737937239597133652357645765932903190033385197279346589420230266908074147716990078143384709032981358745622805690306450080571712114686554714337704882014992315974243054721889262060048081914014383860256713075004674239205248155107151141043397532495997934893613455400793930485232797090458570351020850171798647884220434600969272304848016163957290407854212861916800094552537716240371608792094954997262463272117117793138335694267106215795644969700311917625502070138030584702735979526550748911575533692101821652328308072962803986581521923086030197178949689874844797489969979452204592901650799456101979238191458590153206848419061994795036098634678107795209848051087055622569566236268138862944398100220091515609776449504361223649047219536680113918996846772571901260323121018675530891786627269536640509887678890831016321539513294629719958247500158553484905223415199166825488834250739597840739111200766574970627035593020212834382964022867005210732434775590639351749816147726710269438301809680125111080636360881470808970769574181653215089609621405668080795741706829358091361510990094684126207611838609132057041613634758869220932581891944152125349293569954264746975207804736664636498401227363640181994349274322410861369147680296225657366346060152406078363523476970536060566948460715399539004351151069848863398550382291206771705636963840273645299004614512578080052161315977335848368295597874724092903869878654527999223068007374427171862675325096589725203491395347778512409075224774629428240720500437069553030604720924148601308973502388351608792186289581438408773534496376839140424840485989656511334959691202474647657196103005321065122089513577941478174416326662723664422673486399376405248678616779807393765457191840789654534644089394031262317527029263197974521950772400836623489427686536459778208706861744048824526358614079598706564778001916865116326613228354708544317138448326824808408994205359789334692135219732501428452954482456967114800452459942028696779164249569599079878236261621077332777764233643199824125602880446188801279725029191973229208346014895951371055499540223455094591214533701727609495599829283119339465959827861704314214333216399934454193102986324190490243389865922432039015969102861666122428140794817814519463115705723155332752609521659342190254261280955548768073908899900167208260276342497835225614850891238320644548491010015365221574802490915095240977698874367548165153379449812311614434466257087160931757598049438094447345583474204368218080922419390914666231968635170448779982915683043892699431671386638143403483581554860386932340423699593450762237020881272675913148139932280517993741760307102437181582745490282207734742960334885225655582899437424557501497972544682656210722728941411215415429804267252363996276360456886803072425159441433545937332275881901983042296732734165330735451180292199815324945598581259331448092059372149033719404608055781294363345208423756121494141782124890174347979664215853263505359686539672284439795413109878310938869642495597367283749355480227300572164841979827224361313677772023035892620163304452825495233561330020438765720818429071929568170422499030262102013344256014837196005029026176648829422960135212679894715077971495139234579036328680952043817556142341786606101544905128960343665305084192503064791255186454243077126514079265945542277097914268232486367463153069407085682325012071066888268645790593169514211980826985080595691571966855964181887978662797627581006089363844193341259855012728219045041145931297521880175758565763612414471774829073205549788815915497102769994406146629484323800161344788768853315807613685274981029151983467668333687447808691433664723458867677773139416102835390537007498706009154381772993622320591241632162896254360226437098455046920347946203829552315432580480833229577149968315057622427445993654701478499500761899090766503211489385741521152728898636717690516110532796215832334425458023061345224914830701215774732757109867604137824617274858532187415564769725082722408406125864876870784806948620995040754246681405771081116814051374421031873878905245872089214840733727665685687872699595138119379490556060873784040613841960001451410798220389808394457449592496198407558443131596094124962876037588005483191091379903846444991293829483289493374116060319541463219872371006674474777528179766877154285677704090487070000376186423792811032276318137237494210252239871344185718071014683951429570710934775152897185428628214760183706991259191677494937739174897137991289477644113042891461685776069981932223602224276478930919229180964352766511079671934974240551233105780939776042117243755508217718828080083076103044763089332343406758007603942318328934515094627414335389147638888954224921234901246116337645695492994059917786484931796265422614112271979538060424253480479873999077000623696877246714696307646446268814742116661652167884105419301160287104388140327348832699625187481579457198605162343492290443681946925962952286538359067382116064097766675475134088305192416662405362775173184304130043575850700151891541644342784494042150353500662531100373206778735376159436807836170444648358320715278196032298248268539987702485912679402791665580240734091567118785526553218620352251390110709674985996599424825808386806251777205321243696926008876266182000509088568204928665293160169502704842273254102206517189865488576818293786638161033453452184682286768684052410760911881010531863715210985807158297458147830030752236770178834694988255776530872944194092130143033815822736249102618230840300575344874967994987905284039427026756479530716440346341534811301247649244553668669511223735223805957317340591265762923418580022964194650535775342084926014779084248412628117626154307500910343137978798169313659709378234193284000960138011953614591363556720380429391337956193249013062522128398710076024282784740945148399548595012539901215334224912351274819746424565682171433123802270276525033052120720342565620678682149675304868926283481030680188698736007588845702483103337426778135205244278709917341938394449536842607744822535250627076667391809168130139816879777696089222428801621007728551985776997459773348591509902624562407899282081307761148783871606285424724413831224828513096153274880727141742155562840450470549363419981969133997695320927980766538005703821290426622582194542789887613717731303563563587142515557485639018437381750045298798291269225879878988841048601469547146060235213484026400579129055365752572934863451074757485056213873218288883487949299719388851294633883168820466669155504208637918742626662756678875079557062433671600394317787742355711350402016812163336204663019598032087637258850787869359022408851901307470350866290314637275241143316236043030892317645640448001162803392552339532716174496317679882123452403924341669086248567592080030118401413728858934193061479698549346420750225547866565738969688606223621048481280603709840294661197223042926196358506609639474134526232972895692587881709248136152493759335231671433506414613657669636576829049929416849993962585560342720687183695656683150155938121272104704634480711191802944555444953701565554866289444543673156677037616983466175369359253787963471690117734220022127116639167357938071079367098989504603050860594091758441834297447667372064031391770889911460246123624016874910775341666200865136281202255223793929449491887145421834233904715616961343404632070830843205058512532375820161116790223868798901359378519626128843055561089709516024674912891456745819773492643272068842991601115736997123899079571105595810997311518346718496478215718623535148773759641483329512286415794110763439392813235768695272468693203779038779824450259027452828404426986384493302748719122041637772149047915636948469105167590500517842401648530848479410274667054631379425542683021584514051384725436849058959494575012812050278696261924201393068770448081472256287691316602417863354703088490400970965569036858425205474656585811418697480564734327709444186301415057538952142124079919624596052284826453702141489924736643648558153586895503634247015670419393148672818150507031690375258568649178942818653746623977504074123201675059999595745090076299066212516328094381966168263585510705033415310834796170376685084408224302890136015735645882938728950203609513871095953893704608189915045631048939221522637600754564299174160265242023659576521127986146924147152996453760346559017030983539925680659595906901154656883285347395740584164922325244317948831506413754223851308500639627736230571036767917670419498135989507737504201105726273653343621567917046486261776863382621039013322327320966234251260575716057872230815748864846710095790295628055753807999724410700705883342729108895355611892256956370008034699929736994201384583722729713736922934342088678533934654184809852027921034860750261317629758102880683955617416391412539920238356176169895326741609298863269099012723095634051005802759731582675458592295840209875050538271138549279056860613251740303693127832193734040070454223337605073533323416067247047349653280223153265519918830331242669000442617958307459928443916371857289000257040580381882822994412181438259851626922797361775344264618067902073199051796250988447284505199351272102506108495683131799136002355192461105089509922399982140364743752068015607403417178179489562882253247499566454134886775700389167323410095164472051138562826491934489023204855946867471305598175706431751567393581668427046552880771251711551961762991428738576462474053809028937260683502820620406640637345116399394710262892642188624922843075555014883446686579298953252901161999995507042577457314173475899687967383584425896643259724597095231148537796717768272751188282115981944679009686037591197976302866431677932336759100097453605022849930179266522966781458486744270495119031379426271417424791686453188763633843150780890661658863923096527396066879792476682702884273398703965098165925526403077315180797611850742434449942315293627784396087497525511765909040919236945335495950612212182667213675405558236675608227384622496037747349641123928587557243363829720155624411401035636340011711644540297482832301346157049300286277775052785862224274922291349772167026000270046455326015925007623672691518333150448396530212415490951228620109987845889173892279135365272944043064892998768547367629577434585737792700027032716854256636331332970631219877543863846046913282908393319130068776723764897687973045612617261121249493827179373166510394439456791944102851292848417404700645797329243234297957426413282104459821264131821087996386547163076381831012564115111026876386194549763842457263350030383322865764615325704956111429013759870401707190221426176697196588126783601326182937947115864170657514096511461279400130664880106701287991583679190964859101073551060100781798724816172065746060869580392833177900766043969090549836255463480370751173272239017206440996373558311521748877026924697364741283651779557699298549600105076331119165653191561995205551061559916417308261846433169132171068108394149435070249580161939919079569147490209012251735654271284824831009371552193387671271743219372752558308695929214041939487018216379800886416296447506969659725398153833668361983074245222430874454216776025856132085160067383186095151154233141402823448839997841028822761034784960347359564409232059743553661941785929360929930094843355093661902041305077498030880819222883817620613399689281993443833382107003892178123535212631965723101508421114360513518072664459919665730090139266424213512039659526336973469113105542254642241538252913956297729922142714919922747720644015664353633753810312156952360402914256676835718680494410021129428188862316422409407392649162082836816800567167355157211858360412126977434366788829634535300422904396697655624591037545904382790282375532036166938665098227156247296831459552787974419162215720407441002409825696984566324599882527317004481389513131300858107573288177317888259048418989969324088981080560182207911888416334050033396479772694066612430887187695489498521256152761587036152686393305467794362886919879410021019486941399518460112343914539935597239973543488476906178871351301816916368478161302479331321306645517821349042610902975555557727973973840790695610288983073382014256880785020839180767807280435527637047144223355229325644420874530782099090653787793259920179844672130295132836564579687537398992027681318708035774595175024058678976134102478654600243341897846170146146803087192070473053037624309225393559854839486259185905182186729039231042590675341566422104777556422717368875445945576597431071633942597444666543948735497480347338430842109330812293907851461298258638539289778671982532550876177129790990977061491795806163084148602702169652045072545880773218479434420340794453794189093404975206403515751224938589979900553520420389590076178632430757484831766301454578218470927683182052975353044322614406364407358936354517347971736350922564912618521224244741821210468865533777753657977373484998038954993177956816453510622192074374425424291050627290858205425890638468589487556660208281505640645644836798646639614814157317948709626263055683669086850172926356319607623247978480980763102098158449200138326211548641624286121263386100326857365026784569560951565494313788988827733619226028369332940715556702520623033155147300065383259165987317941308633884718754541289318518958573140276429445935802194746892751519160668636018102067041552487711824466812191468638309340326388302138579872886592341298567804539212739416009279800318978438068190188204924235036861125761768476571559813357029052992186166625257654376860594245356765932940471784467315136189717638127663929637504786850639734774403927514652264274752258211061820857855299938915649982657049348814378037882602173160756315475943335057711197695887006595392581844837793949299055606686805477789193411118038992635504755355042399268102295076582979141765052993027424075956600215411730972834134859634123615650346358611708685147858467877572177959779909071342550403293809811912266295743401861749121129860187099620784459909868902682579203702106244539161782451251322569978518830602685835612506140185722540983127520206560711070705171569454338883686547592260804457163333818340465719004474820315629271077153350447151256719441131635957249012071172800432867794675540984370693372543534701983385210081671712140684566607989816745706862270658000180029921953905276066262440333166782043580701829121397619077755060922672685399142525944541406793175902373214078609107263493075840293897686426193124641040061531725848028770514705959607457864676873253522066834224902999872381512202130211338901961367202874963300458991747263756015448646795453969077504465048981903432795436945407021486083983595782962020259736381457064897994367047000138170330875254296010885234136566797012065291175915333047382981279537548350364289598375559379636926571599035612897742747651800939961710919013461275044382865819685849172902068022151427388160631447185182764077572080671339636484111550652975755625129755924896613090067385618639806866096660705616715972349251164073233858515514874424416791000147086621217048283483776329182435989566599615713092524138276145178163190846557953417847774684708797323723140902010719058743405004689996133914496617598033690739448102202291749311178111731197582284827903471769558856126176649028597918322126089265303071102899103849434993909318538379345185258758033144364350576793217281704451483278166698363089846233227356262286979235303060253932114957977766991416190146748338126861250145015083059323990319286759530251066652885296042563785198084357584347659692091751464150514334705150503619554142795695314018885270745035044480353126037673013727882651579163394262504426372959962456504894156200935762885996038589530721607111876267823035985825459854047103075936343029233294646600662689358138487307066102981094382512647927084374853243661419724506354543424666065599370856520879717018375119669317348857270926010408188973849807763088005328320088025934100788326128028124020940763617445114483038716358974920550593799526399982704261144399631924882564188452720253127104711032832677124394566265868113976933152402830036542897457742084447983059661768565484580210252610278305337453038016129524675206098854332967135901749697479234572274437005852275280065512364165884856724805307055689079906905310275170944673592007991961481630843701501320866499337489075743750276642624222667745740188793314092933911107874827342265376797043109244949798472975267934700715793912636864155265228065808634009723921468124816039657483446655581714697907970940613972469413333968223061837838457840485850845830195536675409085750697781385553268727926691505867835345458089859646938679378713251530048688914392531774601965617042388460132362665769473800681350810610014518956138775564294689280359597670187691981741620541522999806428203244914298133142355067379053968093642337594362262641784054927183570563619900122564166680517807845811152845571685502054312358811016664606019362352095105945007351082462478061637246001015961669327066252113675481067115218066320996117367308368250293116105059959414185503359006104642590302922903848551595484920258597981433248135538823529979106887494629164236126979231217380261347553355041886528212441892292334415377759857008662311781013976823513554828304175034160959458587109857108408532292421343843714806658469971182415406149194176945038482631822622045730527984347195779152793022135069676544978922145878755931453938817096099783071607884777965620145096125970148663212705299395601982582417601539191047589949899826731439301141084411498624480249270320536045487820553749684376749831801357571532845418660527889659513995777218544360369271941663183371217677337220261673153376086327841010001023788077092777468715405142764711782888129993933270768627595739871455224198781250631630067791201358308013853704927545433637053242446498688073480211601287702009772025711880104358482261495017392230044277484400035016992834655800439636233770074816745407125710708969694404398929192385813483030021816898156553895728343471549037940754947774946969429463665537552430141268541564345904422585576731933937938968183208553567448728947665021743931865139547508900755230307143793831517357805126860299937163060058689741568162743119439929562463398522106830605442747313160375223678579887673864809779404017876133104851005749255694079228314370004258826630649517836586943197243021755618989048632866858984912976700387080617797960745175390659436603716842665331757761557304860490054871540868886934549407593416280311074550183229120792768382410985726759712133899259222829221442942107560650888230929564437212583213722262167113640593915462208708250242708155430654151837109892899192970633720368641879924958325963631451072235901715302457843655733338303698265359043675987237916493733163184939451727688551546287297962142520702228947243231141137543998721918302410065803885931368532535497547123705793011260456977879796549925572294175911742503023707697409568434685762989190473304884473759566971637043485983784959362244831571809331220116161746232583883896685924426445097734413106941860971412715937750388083845317186002346459686837296296461121136944873750477097665700719010219064443670148809206119366719245013297511801617720037583472118467413035516758327192438123473045679398550716220607898595872285562749888173984317151227294447509769461128822480987492836713842730285904250915812523252499161638692595082106191922796550944447864516878673226223742091202347143505545709818770092278856036652920604546745825256734546907764978785313806643692261653806404072868626025217601066585824055129577202328346065751531449944089615855306038130113905444098171009533672458334262103947611421431532067319950749961466570908250575667025893413698969150335502021340231939448933572147331648941575420976181767451110593494585508841781835795739617034359872903329681243211197551088516792667569848956677880028094310837502915370480289899170242408770853463516576448525559539921540994638357269566576374919782851248191860950746271472356616992923678525503540544542021141413408991236692784462833563815022071056756444327841583020840212412003679339866324225669082594099793331407962895507489056931051933174140667962245618400363690623989515452553332872972430904207783002415051226911506566917096574926072880228685257944745709567709115737217602417090057375352511931909542137496802712946070918463166284592202156627591458663709622698005613443967395101105560224750554286420477120364974161166824552190216591960262359889016505774121969102204691452228935013249365778002042051324873552620590171286573352149385978743496553691870729060869717114444445265493105079106867603094101499309534259817112358235818162732818775129508749335530232433256861760115680420219779719970046731427512948412752138962911569865906250559108322670946294036795830694774494431772327788323528353172005714123297527276038903635355393940475988863611771085734353177337618694510682065884615051536886666982588110698445468655691676964320379401278626026312725486795198379981846784746166475897690290385471369346342523461081423637631021443763608095623543423106804176450151677054872905172097981490863652640035355113324761150431600983825544091511678550719151008273106846385050942800357509288336948373603155399423323832328640619534137647038470769622080865289391294930507490802547565911273439256091956589115812469039504164488636808632124295629354857938713868883729952700763739184970853400697026847076700160029296650819436195904836538891282725694406366030147424192039030788629020938215518943199744765362327004975958453958247048895134855740723300125083498872876246703340757066616627713295120436497570673815858980391969760081435841948346743659294470360413254644458633741572786058056903562678236361705629448864601627292439885733014929140623558779440661645651966422372593295113623960358466229921188702584307940905457924724890867307244066596676200847992482934251133453108652034671370846857833350605384499251847922050674319043863467469479903547575231777866283555004187173420053997273622482596142775978617991933311824210407587555497270162009170339166362556852882200592862720512215638920538925679290875250226954622154731200720787361365747399289815175904431370324349445393694192432697968535157188596582782086344542636276768769175230776350376343997902833338322203866970202036185917033961731509358622123671653396167834935360287534267694760002292693048691994242905188921885467770600670726037191347912207529086633463182579492841519718796276613703997058749388251865235313320200785152503100238435281743323605547820513809891630733340812308374734943063348343217253568210555549777115013533330798594206475981055331771861947208386957954362225365522818981260461864446969082548886474104288849878433859281664255468475308201923923586399492197838074515157790487355028795711997227530057205712236872877615593944958409397348057418295117609883304753357854087718942515670761654224679746755038415051739954284905915675883456731191755828028103424000269420990393034208268939067383348257312546364687188010847402800816626703509278768069861717639997096625225504730587315566381191939368137262581701507900628059153653707861411454348748030136988965762503884601962645778126010673684468477803323478536701405173985245946806761161564453874254586144499009140199499889113087581862577317690649638460211558704190899017670156010836527470476355239751719681830423965655226818143472017446516943029035031881147721429257441850830100614426710342008333411570619838704296571247703760992281366493489367773607929296279111553060690918172395979271263796295437168168126515664062027325497742346371955622789018659788604066427793277853783964693871769200321439233137053255020565111701795801532098937113465691283452919157588579706686870850930886188915434426029936629758618847279283336470721727086100908733447491884455860382531340881713774404638767827175979106220716686261219614127926613735938155853891897288447950485850590030872413259592503412329842002785452923295069060224308006093983568964003405361668694219383997591595951591470658061112386676577039723929606765543157881572844142548781740550780549881344922248876637053558253723912139948758704466485018084754545794762274381173303582504458939433497430697075994404203958158090014045421382352779920693481004731347464641447814621120120306185325751104003615256734264128172372280338654573968073669054386864022232592316049535363884608577419376696805102035210520182760973303498105904651281008053121930033323889382634130188534905980602095407332313596721959855077998863698361963065338743243306248517089353106927743030965374161035414471451964532724975016440068532122480407349525335208493622744895631791245061118663512267994067687916515442794849415651314489913656039970084077691142694197185890194243004857108284274702309445623602199325637541351656489832247295136461699867207001456476765934513112684374097155803710701780256908149896430261608860759689048754324301450787323628508689808082837777389376021273806477437543751196185755816945736385906516085271853812236049254558065592058000401423265107523482896493626509080288891595402289012025352913477370316163999878310581312067447148053268799087556647932007402511987729323529230763296983078836056620255437858393398435436473705504959290695553492022326257890724564930368507359253842160049515455619771762061878658979218805821690409347410724757115305492808093510774889300009248807308184559302214274480651939279971093573351489237633173202631550375110449307991390926023438556694218609563453143363861441945573804645139379116761520199840996399365124205650596149899536567784313553986727928934879943362643036776556288178888945953230820662456995120701500842434473663143832967904638629540644696937626983182000590483863668716563628330390014204884628970837291470266471693070759312532184973408461117796936965182487076265142236184151214298590443253174963725670721848709325588182811548335822563186114996183085792767143622445974038853702248119030109513721108304695279112210046628219547208589820286157900241302578278038048863785535766646190856246572433733776920782914694627036087574743769717889323368961698771336131157250201266541152888890065038933842432298344729079058209918017526317098611675078256289749786168236864790480256128120506389226322602571324079715518524456250601020449641172312600027230541292573399582613503602143923990029657842630498326043145555676117992560096322325735916755794909124924646993061285121100151729931905560785910943934307077785666114102073229925721646371705101339995928472380776116973111023635048898003422315554413764424759769318019128781551007159710988593334697822648473419052089123124982398534731469182652444421199821852005745354618870813778176512515685768578770394668524238962716253372151988601975773231189104168148648552560043685956319096901041414889657011455053126693931513131203491596193807120849103134183087337020370921396606236046681169430924326274478758149328269329974802198616936872961415023232023837313227051252479637934317797167563544539485105460603368515155268308066662200038290948923711096448535945617488484922188086373322901242639168319507901225352674135490096446116873099597498601807169408603149321682735082074562151419860463444923365997720674937465556272247927065926726293178361028988987786705728807084737079520194682435674511286149096957109821262275787192624827888830536506833187218262781554946559790611459998639715191868933475422114791301320393179088134811792317307036044158978291869947878894404679962255691265049304197969061147443556681369403141547893492914891474715602966181214864798595876914430879062126607297297234431387011019227516187161523054544634795871101106904900481395582295580049520325305147240187937180790222072655600003534799610774220399119948691725788782249799555159044123945528751051868042751230204027494650516662588010453096799182329657047854533795632966583459356483419919021149508195528602010839027336693925393355251873598248216864418501037748753831821636590347998063280376809832927714344428487167971540739122260172818108719801940694295710740354196353121173664813004893236840477881387379987951281245303679470250440167462035379376286362694107544679240862715357292097164563915257624106720865664721499808877066640168821947100411159668502206601247857132876297954802542025046372124670272376041686622932609565053532585183496492386022102209032675990633098797151586198290788110717163851555585751657369847071042458412121235021353696914938095308819268834857546824496598193958160885173495010907860326268948938863284651770615865657472292410308133910796698838867875418624759188250115198911872546618230497315815880475409047708132821341872518808050524436981117037147934003640697294859604325174932120787377124483035162559912661773965551944052698317726475236514736691293449088198474640760214491319093983721159376108936667545272774639299777457329872537565472147779946796556254485832189465904348714425581191388067840361691386496670797769673015683259388422927388274579378331876565848550884508535873898795791041199368904041776259422821777180576887810209970261516102794542602578926646380197200028866815920149866860791035231301487076549554985017523387135476647323435276183015796072798481110113226555580583343208480450695942847622182535860766438187395726720802814541070941110581214742754897935676974774568061955823016873590925901091271395911836205633527237516225433678675390431322438886075198056401380547855575304016214395334696833604135590801807656457094582276702780585846689052716380363411355354865904546541103891387625176219303545212870143342515813101726760640336508136401353102548961408053814429919069572084559516806116772695656591042930900339851414259010773139617872808268482159981111836655352325126622036346209784196136056561266277039724248904681195464334335934132016538457680062652865941993581743693290107712064516487293891114166847971056625444547016354185182147100368707662190820674453036309796289009273300344338843457738535544514435603683848763497653065815714849895746646872800931399689331634203514290692535201206873710995467815065600379008147279042991665775091162301824774393972647870680915176296596843936497537710903434144284851460031279343548116232250067266207628491066096047746099170519706833569927340366927450466188573062812658829328885947047905021750151832229354686081073646214476207159471929255394473020924192707730013090065862402363845236504591391386235339443528497493885504113726143532603233016513132873523223692390081463169034255382869280704806029687098218625998749639160543502312920184700476582404396413127946735370844461089590403183214384475974947471751242914136747329351464766009985786332954152621652780017390484887844718035758127431463155563005289452042084102980093216759225739317283703956044834855538793835035265456919599208610706316781526203479005995861960918854647227088025445232291652820737514376693900098572174231737183613543028435687615505579048991701187856280271696555420204917765059090586030333767008615318863586012324196998140726689313633403196230180511532714941762250939495793043278089788536915848832567440306354119085787615274994163822739685312738231687593368301898748373369933794307919930269718851966107674978754625685526703118306512789495940665134372885543567527825827932008521838692975929312063793253534401750088166146060174319358899019345213077510432541671878289769534074188467123923228204976227583796642641485566885876411595816717670258707780778191382460297870559854714350462765327387010546099292306907978185512744489194683773267519018809546648860065132135235443597896023603423467711065200200319483662205762750960642496985467730794249529603653088031074469684990854455977111146254505316571110644023743565437728097656934385327716305258262275289407027706167889602057227463107035953167986499348421844375185634782573771093309740565280683217164029757001358668519960976548624852821565699812013379672951401872832328048761626613137592226948680335718769267252862649712701863068843812828426362902305742689917395371192369695550464576652965549482006176004723563320461667483878952548578820276222391794720084363558531608499803037071052084599537408270599017358723178876322799365501456173764670927578625612118819292273826372901172182611337045284697667978108618493565633642331142579924406103104653186414360918430978067304482382593730033029530252659440686522674821569825361670985409095749070912747912310860320705113602360652424844998925285543171619916199292609056351501363452846913827572252593319873005677207742918204998272309639326209930538367684398396564226933072645724657774666227763366403138219541655980774776857800987493598569559483267877689851484656694118640882781591539999718664911266212462595773821287426392714255047284297509675564425188649232832577793801292413846823331894797596286146515938514737104500630718841973115855136988305023085346059843433020993717358466272533014062966682930579265637004920724148163195666091968563679969281316709151455780948699129494144300371761417003913190644595715457469107332313335532588593821325542381685272547417061359463361811961415966262727858382727952599116628134338627151512066887656279521369076515651292080365477934743575717967665972618325599834694536677023943107797836944299524286103467109308745674158153208878558304539173289595122194301499285852335370741783732898825996081880315725213376329509877553055588388036077222552888975992085423784709515896847904182844191479821205600701645338322842142512074680049287818113925910207055299402970389877318600110703098345987125722211128737484282446729981976333876036298073111357563446383487886519954621419246561411271333333134503183286894480703550272574263542153787136255236729520900755730135213888148934356556084834506346295099739502392567132497826226470689377590493500076149410555497155325602872937707400311409022859415462631338639207648669601906725578312694416207126121013880621002567118174193911094282958187558829155187484080132465057734703686647694111087990490925111865288601215693626041688565788233914921599206202733377432758440930494776128920514820433975404730974074495632706650192787238004769072393574412598174096377943145335865483855897339430109172398073802116897462360948248232750717451593461958093773325856531654652536553149133098786597353144914141527091900678404689560839243651692885261035246750101558296253943396602969270013420543484129119520182189405386752246589509390707279873163424723489094866168077150599997370150377367036187898521170220076889388792590834756443622677715885443394258590190019777065772027455144441818791012826438773374458996737772374280363444122679668600187553489469515549162580339689151789938260710487234157641285426591922165121652991476711679737400089029342461638216102832060167198553361985903175717629769555554534382104275225184966061871935953365258980234414306602730982158092622619524491069365743959154075112706168805117743089740556445543085359466879740113639311478502993193196938488733808814006370697587365645771329074209962349009206799491684058135375292347701575383033863200813132083667184267311983790238972204135467750344177707797931903113490372281809187185955334299301279249064301410288967579081313753388243542203827874369399664891646358606987390780596876311928526055258463171271449450775716851595529356948561631366613888636453710303543635689149320684117693406214958642017998494097028317022495398676673296802460943754729247615264504022616062930655180876324022792146006460452943932799763953042049264854249046140958771955534826324037281354247385034421263194750538475501440254369599074612751484739481362178805819927265399013156193013164694644744476688865096795954864563037846277643072950599538474394379768357456050440156904219500500369816833808465277571046003056297241923256698596543997519785896085485722597052144156306936591422648647759029511490821138099209292216332849189755968303691888912393049865534260225386494543611733099089479802192595172964281712681694546757926029584521924902259985703309250973325172182696473841269419050539607976153096070221971114254295366178670804726660788871877475982292738684892574571053415389838660297034636724225865360860135443538880545370730806205126391966451183236732568013568700802275109364561205028404039333014903279816962520068616106212723325846893221150715149881630124221923832772103716792341483196718846426273009650619600715392174995308230612621985840235830227266070081218569458802553425918784823902324485647958898324533434902976555082455766161625542681407294011190317372823935014233700091777018035079970646054854288374122140190969140229205478814238399313623584336096079193077358610789222550081476944284142944423129728691138120721261313796143988399449120396176514805761979366629188085891627449476861419216767924474317515353316533556179862225215765606106714940130317146091583396837474683821775642655759886786860235142505157094261693293553154338411560151555932447491726194480620970609081794864056097517848483922879930809111166937118464047966539145515326935723179427040033323974902135780575210533238397630541605441173627983715867464357937842973975502090461128958752109594390277844174120051087292328078775824152180760233045494704280636879047435737708005588344177762338327109783799559489512542847342888645187733523429038873655525795627082514090131629438262192258924734469343175929580987266780132607776380841293721013889014927623196559539555451717652169700996535999052989696761877064638540810373617485358795703505255159787761443792170687724946398788902548132671751381720785229639039884843514595434656764438288733571076618203109054775215898731840607014454625712198895827530108331986847221272804744039051118549359654615027484389209504373464725983167426921846195572150070788926300732618270791277231863087161714439364913111065777194554468524908660340327452044231710406892162121628295434569565325740186244705936706364102317897089941391942064257232515419071110092547615756260062164597138468905980685984750241323914798921725419164879862029777494970557641491075767727609828263868590430925213023422493797565307396070192944431211828881326228360466837688862265203993022347361136203234823224928091117813296542748199583778387176560244538665865513790206058224711862624135591328733706627811897340279029655333818903440589379742858025682024235569139709760714960521619416235674600713681679292027636990087692124664078745880090991936419066319640335781695650940909496691616862933390107964230401500524038107457481585634358282019147493427188321386620065985947002567661241797002666973590502423200034789379690848439975878573252902986412765642964025519840275530472302075293151994439422824024660247316200580687214872924583208544997612498549576576642163454744278363780943506828048612981691420959669178052993402216991015693458513968934030245709168498719667645640767797850183100785798747958069731849099821398491504571769342297069699063782393403768315015842087760021582371028227979224320557494266151660428949232122317507963479877666995333960382172544218802870822448002009603949100559687003580127051096883229177673235431429932374415029916486637120254432860168367693751703973770368406651280175692758506626554059129832618993957409749730245794965474300802193254064095560579858884460461250969870594088865444861849569684486033684966826796370904526336471922465480405756454046655596308931730317441141407829042474171433314300950952167785090546342793294627018448074686932683893825583196196392097198947467232316731515445474686408930719584279127878471706507996379785413591686305539731024046856115349560248179689051559273704783109886895099691828407035058961373908684714797573056245132482255108101314996477458699013127901868920438246197605814368090187121331112008714944462478360633662859696260325012044920440788329739877887988926269858476501693963759738138410313816175464909615995938453630674000142670279069849620588392665130684061097008782937703512287290998777893872578629183990340093755002182937957358477925051191438911987261189240645287819549030136661446008171702708222121800348082611900035474799859239138842650580175675047296647139897804942246040028530980675570607237138527845066719862582507284843002775540227613737853587194044665990838418658926964445422249216681950613177434163362683289122138582677352684679704641009075025983448770156253257325022068850740602712099482324577800514222175062763689112775631645352654161977058069844639725876518479097928497867950682254570796138928673035868253860919273078450478257315633625815491265119104915451720389132567221341512663381409494107293038992405357872360732427879469551444532608648601710113029117571353932022026242394440926361318169194480126176100692312263690295171277270503729614394635702379528696476398865335011687582115346811698191566611323674351810148993065985615723438053042710376428329418683722892397166764593965869496702627077740657830989247079984491238154695384462936148655263345035618734800730226689016316585715444485644785833930523309510828664199997924538649273441948546599265636393415880060891066218652951525508424688649150924471982636194027092033066077443257877313529753559720415008996798001206248210544881969521967727980675613686134979554885895338365805928515857469073903860416487716679441780356487987706818369967229389696166254796607404640017081831667916179488875576618188103044489614849409533393606558844214502958047985293600617067569915925032040555674207981469019120803976298901027291647573163362565365921964074533359913741661658125162895885665323320756322136258299678090157276570535324071615670138267833138157977561715795489040112186792876264814859130508249790451894345696573058936922623939522369358591690242952732424554990487554126410871321669969279861547551705169057599758312147381419663489628346392943793676297854989244603862810874200503147411584692629320073736755266717129285624159914282782404953634316798469535554378251204530180873366729951744653763688177473174644198890891702529111792330238369780687437647530791545857722065447199011319802961682274238023578562563019720981544876027377167221889417108645057299928092418334079113933306061760499859519960017864894031272645375308350982452915582130596357472094237864135456124048395018859933056758091903672732999891968415874944218626682322233043873261362274111888568548017047181855484901187794006795760449146297124090628497559452024159038072625146626046558013346482648340202875142996303366250626284158054732471174160225902879352233039008270918346726970411674107966241594382829766828726768792122525942785941624031437102783367512229637484968230481515695197976623500060522544151667236419958221590241816230904467238596367659564548595948519076271242749185672358480023090993577516489407199916269201773008274897081713889977200266077584214061018913162365831550836668058729390211938115850704765309268893394004319488717033492636648783986759976092003198216657867200189298149460822039944100176231304431665886950923448150053296811335859327235451340508534662201393025157425807655918809841011625249673576718605131778116269350614106096226583569130961585929992404298516958418785143585827524499809467564037281494895721763505367400979210045405306304775349282426365693811248030677691937466255625574096584389090221073008809072124737126309912335391520287261378682401405235395363655794326688794420772647103588041616419694255901618843292587465695716998941087021421159816761495701430927898223933369809325663539007731808241082688218638003295466372775329579449200522095427164917669513275916183198726431334212351844359063734783850287687100797572564364943128713497897433740047480619936840575216631122612866667539228058044837200855134115308639145062970014848231261711342636949751412995769341200149984454274600725668883302818602239860221548631252247110714991207773738245567851026148368396276961373280829211100900810184292840140143296488586800946611490547330851626429103995306109771712944114002099473673881974343496474492583955834290255620440430875188163014094553783104142513537477051735436447079906430307021302161900767171836663978030916862874436551109480252068032221814323232094866551336003544679181501622718177075421284900071564151345048059729656784870453039812383250704222095899970595946614890460873338051862958609799716795597167000610645352342126809892857085525502804828466372965935364860098830281330428342622317263441228180747816003521233580702207152284252769313782595647998249892174820316500012888995291041608574260575950684881140505026385300852684847805219221721115990900969192824013127532909283322931497477171605562002849435691872434066576211318156572551365287626364390288062789395421942840903173233903597666763043335188962259577194740546023190291001398632832290911100974708253158170788735824443465158005229018299587821835691879042873682964250753441282593352894909072902684895052912383756643471744966735304209201113592593762225213747842127915789685225707514669955123125295227081571418038616501049994180293035978471145882666540599563505777540309171689354782294437667485538467034819974280334844036152350199445537774942716327159294267225754264358148651598792969768208555101116776968241877459684348818829205009103247370687201811585644296214338070718949352021601107111149740885755408910082457309400453242891769621645758516323122677690363096151934539040780624063912715172540513840232171213363302997014608652283929735712446835224882233515625027953441506470413590258157251388906719983494999655929954862884570151930016159750827615001320601481604727426825987108997850469301382913038422939488710106666068324769265782463417461058001520753755297234351419532769237489544199578836173119352179784968473029010165291939459521450284804243199140582741866759801794395534673741012606172371661862259796019286267381502036778019200137125934454313662209238353244730801110441679747073609626352317091366300952454985235665075472434001429310102245705273087384264038518870254802709689228951055392710019666990645161736606142977149278701805550740773641003496437016293013453290404270820506234996277199211454022321145360637229966272230014095564167280429352441866802576033741841672936744946732273309787834948594937403819408113245664764164984150692233164019370415897732149356802894815888018716220405808723769537648098277630776055352517250384389941648978321590458556099989762748554484926367853984414388657169333903640658287595733546002918192805730704094669790280003044626468409465743246983364839104934344931812970794623823861644345429201352487088401456534700774528860060703196495907293658873071469235661220231379138908932948399432571828195169187023768252459224909335245333209392418940450789715536024091247927311889932415258486901977235092087377544411980458333734036138668219907227762530758068487911536457569995729016501769615452622100734261483492885447693387395722850749562517751377209259532298688329659727715239153136705039735724016274666909527699173275154310377701790046054956650577962268261743461431713142979118963258452828624275635145669401486510452326528748688515963048757810745371905366066598947078875233831472672888151138569179790290185696730816924176769711641430383187893597168485465229222208926093216779501431248911680609706724733542114872813894064683781225205265201605822205900593029458599232735017653842288008819455475387425734722658853131173098306973154560585815719815983612581223409956289385230293298131050525242159139889652628778200916967148125669265640972456936289119026767705398006376249863064924507847872536016194976599223031302418435201528066960965025994663835389085972217777538692059866777067197204010278408269021353968309403126344760641881673569343953282091426832531360952922937722053575058084785850954578904821705480466422716275785243632631590227180514185362854030768095013975091248433659530328360685432395806820218885700898108837629731423903458527255467881634040464050621309931283417252665892188743462095161303747308785091332814182407592179896579499716666220267111107770573836735420010784017318175926105869169621633757644563587011344251473709034487203423780374472645729485878952359651457365649676550973351288591190926850300355151756273789424054948599282207180170639838752441529538649817526898449991809143988896575868584540327983781549097368732437925634111640859004217966389231967783895247972483444232531455257368622430310334745037055980635506379642268226203183536097686956523535849162522919167126517304116175899816188907564655217551968071160265512349403244260267524313780957240773052241112118575611910775451858575966460111310631126286794431921474153254507469255565055111860192882546095617944151976284627670619947897575184858949930298560203939230731258598239989374232417141423642197751455288321807611434602420958760725285309325915283194009706078378908740883406610910361774117602767751035983766172164537435793434909989030007789860034099862817215790945687561265016202462114443678831998559872790672397757264418234656591614498152979573887795025285340991809383235356267726935745744873135377786737750969775605344722534726893727673787504141862096822599838795890083243243666995010397333189864524193275681530038428340444281591288106444544186675975008788080000654581256191804042082933537926191656111767349447861210501434176504631054325170742511927647145096437266506750641229091489448957055006718005397988592828426691233027489392699757931159348801182703977908490385448982253396386067899445304434651989128933300543584769425806344568356825022818001057412981148288604963175865556466372784421005875618541720653447326135338009502606164703197940159509840307705305106446927627614808193099384848850772675561582934347464715220503901218521779770443697723232946315083354108029701965779643238239036188151446610398479977512419983981793569465962283761112023601203273285679998985964679913012533076272406717101029606960989129567206054429512317152960180696360997111487694625588553833763560770396541573731254955657316536295481652357312118302565433495927059317834774807917870248824625822565091162689594477703461129663431426322756237214093137280872283393491233652448010236705971775271711372400159298776409734542460216614720675332381971788057041173283204351461309184461426069122657787340036649046103201948454931161214666166853201695861720692590175491448874036507347078936398267157313966153894281195736072327571511716232239139075694723834225441536136325443176273323665649750552096619136086996425974885553985058333061699636308208831504261528597229704248811857676335775969166135516257343293665078436110304843928227495831803126848492663451986153676858875980552796909372781920054848037844196411908589360399186781402846741000689517103888177404398912235557722441022165283353781023279730824149523402476654642817550247400585228400859996989174190495192154092737865422556132184746301067270186582054679633615336505507452179370728362118894947776908145907996160086224167298936820430895979819255364262731880116305206674650366759612493179423383036727019932659979043158005811130144074039111670309700355954718474578741696258927628482472582773084158130346038537335865274017797098318243188332632293508589012542922920988790028877969791061928128707702347020344221404116302125580074341371976431146921005435228158402136175380920198913712462882588448220289249724430190792140852541002826582340484021959486155457987810791518612380858948908230508505714935311284725573414901268383472073012033774580164670884383269396958241210507716296561297366923056564291288036429313384645084380177693537244138932218873627965082647454133302461842967501988839354083623653902232223972141890748309633461706499737924291612595740590816041099198872316686483334862010847832024322658740041809267877681943455991313317480199988486830768272439971803569545245937343379944230852045845670374988481618177131886268051970600988311459088575360863548471947438280126094777482815505560323332654481727360340099970100579767726258317292466601944786956666676080535057435154602381986669253953132456686242553983331998569297293273129156149874712521622955298856217150336655267358821121693422137321157925225364668940204434870225340236427306863685107444371224439995552625918589320844216136920180051401805855746798706641429359831197339944282115434131037795347541545980688147696827292414408888602670446056847464073413992660949766278554010654570411668038090301970994673237898575300572842377162830277118518251295620705847503500950231605468887836557623098881636780295457922621416546352327234662175849202922320813461651921300855241656443598271046396372419510312176205099170731858301198988960416858665269925558786815954076908324694429334025605189356720793259542088762402256314785080110806127395253659472583732697785171567127396492716150246577451104916303578372472268162256063879839885378637383504537775632188688157712101387264790384663907716409769435402990247014556627366213623819936016659541662716342166448208832393626386924410056832552321458636164199581681815762640203046915654912896801987974202312549475742002043531223790351074541765312982840450754613017483301454766610253903843859086503643867514996194276663920231460245904904892405725964253185441045717924417852496886093057479192636140545063552688211496543416531992274967505889799641579788873637328944307686682177708769504392616139401714945046003083307343784636854569742206903255951579512035979710989133448012088171402657689997731275117087306854918431649891809348899122166275321111231267078260866285606949151843333607392874836560093378745701135888206502216217007849603223366407603827380362493702649524754085265305431706475875588859658619804927106096998510709882825650525069378960169195821796272416203288672192267467870655754379595231887679028608646227648071808704388162998242731397678725229418365309105704851939995070203250096357952728293353794905313736068815339772446984316112645965955278907056634569123445362122885156760499388199017209773630288072237977611270473904888919327375017401142222055842480896164185169392093218020136416298381677126322577877198786695074888723360674025353053540041166623753453379665980469766745851096783482308539990334796889993536112279498657339821809314567029951567775066909619955036725763669587357735216660634947195070664615220410271396736926636645490561693719676010604255387011042933393578473559338490189325664951369480774003308563958456262697262161983345345183064034420282386985616547079168894290417214810606898391674175617347369964523012447907223911421409357010489060555578301967760210988111747235166264264528014832863672701787202427199169838641913621468995958879168066637897901544286405086464372876162662169025399328049085120449014680405847534304691055096329587123585314990791980954119636746774217229451888048439171954994973446746774809129130064034279254641179698038094057774068717600172679283730374679176732541141807021937342106719278401265524903089834311615422315675272096003119371273024793066328301420224683760629181975365258214514371660825819467695377340981981531655080777643889423797468101247877769163035692978920630128540371523925595907818569320133408137896238648205767848026507715918158601094992325560288050772005902956996416767475880925784062329218890583808827159959068838130046042769736877752355122604504177547517643645092634452962458950248675336540042642191391075472648332661942810920232708995504668552659161176174635915900996227606636552284090239913375164946556063318159219759851038827153916458503949007332160364353314455556245521962285415376581374374578112189102979310585646864448930967735596097150134510374921418725888760529791839146469964159792034156719533095457655124923660744907841434546032185469699867852514420435370042851398142031586040531755216725766835315332964766575971315404966729126287067295086418331346924370830586341340321887950181237123532725318323859059204174111556985155516493739331957559122002121572551132015514355094684834224317804589515492808088047572442871847708746532853781236710278358845823335470417644274235787474300649913210096702821699406978791417094229366206554469579088222192655513541819926525956215836284832478164737630928381112943357218105182713349625497998020696490357623001796566285394067482068366729195917443786538999917213716283846009898254693189881995377442798797554231498625179598964554851012303835353347097098155580884520540398722561205357342616877589742162367738536358703560884473541014994518813524577486860857373793550505427316159287128623253098466116609078685144251691853504939676483427337223201467938933223601371046679452327045136638637353139428759564502218507345340211779863096815175733131019827342146898568740952999097328830723119087267298268889443485710979264185872830391135733245952505742033377427451377283934227571853908957407206573633932408424188552712849095397847208591701934920282692853465926886062513377878099802610448294876804648335195982242739313073134046681412470789272202097936077019609496430389428340914853080891263655502995743917527484471252540789923108729246657265745774648759046401533790175012467041057509294518402953149367132900987732762325902871364566348597545105988302772074564519402433575077015387930151073147318184019620899607264022451354996671673473366640667433464903739562623455835437033038245555441712568952282236769795012934464756293583853545730515348266953553425357566169159498219774129258081409776157506153062443157834347931434389352734594230087105579580077287781016444702482103933987111902775235917954971884946233085180567687217295597157880133306358186229328398287457598704476031833812188694746303794515468916111645593249801159581316484644092185553286531010812071392407386144628781708655910337187184044970542760934585636116416816565983318802237134731553441064081965388303803436288663004355054142578349666668770842188884659165885226216471073851284878116489754060698739538139999266524730363066508162659527558760933590830291917325375257750090823804394292609348769763366253970238352053923753311146303298153190631619047042773032027533300057975975064121948337133739874123283652545175493926209350201306414699729706579166998514230795227079181836455140210420534011966525878937543614452865699235608328954507756452832199563865856604662144383338772032930033656940065846525708063536175577569514185640420794502353599425860605599005351186338435890971482711836982367558484906930223011375765410768559677334402428696518410498497759269119909166386179024522410758906025114382913924755410758422189286860276494275919188771857846092880318675432354081919575276653166436573978406850730389748048655072658722791200711750852437997150510423875345591120832967115341785744159015375845983068433607429861412373163164712874628247096088990632198773738097802004727418317131210842958450105291298415275702845181649755318100990378525406178225900263340067299665937741366229297592956107973386510654174770057166807374063075062602350067020551679540250582330798004878063267475651995912914112189477115017817431256501996908283003702212493567936687327560138804407093934481084264962303008906229292377979412909813470880325982885665829824165013513408155107593904255343246083255298921255110321966923322309904487644373904873161819482836000484578875646208087493396149648674966791591087327019762045074850451686024613596245724469797699064375781005646427780936476058234725791133270579656423474681666112042176812806492786045154203211950388460903332790547006706763726714268638866245812740695438514981878546724830741554571338889496530750628790785817394427058017232864221860822144569235195928942029001037844162304942429034686132631574251566888864429572926154310055656609859329091018481930203791432541631355184326743914858042802347852605743866478507036750986205304015252013375152335403578192913504532899679504441439661670015348031403013086790462381656942332561045804706143324047323792878787935186763424374840489379781225839977409915855779358233559971230622917453170361406378779476955680170459504014525735868230654644895979715148357751228650834922776450519817303224476491730461377616828851001991410834502144788552728252650492843051165138174603841822008066719964300176615514747484801039841710120156716935375342584061255240040733335091338521757811775225341103239486916440594665462687346871208187809608194547822171928831778390042108945484346468869880081221155525657902514052000219115290880194468266276232521480747733823200910301290042239817467097252324518488632896607881822690099065864968589160444879756542167015527316860774405484167611739693223191042289767506753649356103383227578150880607568212766676257979986906943730202294564962398256764422175548013199995258739896376434836366306447913199303510769336732380080974217430443886308367450793498597749678600206718665034305333905965631516271947192442095359652027811953804084447324205636899255727170649736795895145607546912096183246012007513508867543695863598466428177617948800131625030931135667820940789078124790413870064914220186179813733325177505741316890502576338198212310282239291359625276597879236766262374006887785577647773611114174251471934973085759347276704038894332023142981879349848768230780296315457421903853068211773944488406095035283796935971689809108342314908954699542182792202597520226335932299430315948360746130187124447724183625785894555059054347072378822170354593343087641943144062736377439735844739767657549750414133084527762172670272476829213751518141960138473035523942166999580927072869388649428174373599381352774348785980406360127704778556300175370390276535003318687928879207162979022287002589277075499598418052724029983957569202043386409073143474784899435652319760439124427422067485864622416478234150588450351299970900452093804127386147733293620162961065357717492893259105722912001216455695011322529829351162976640601647676916994896382042636455390232520553024707937879204132453720365793084021493967896120395193451281530430264096172853063237598138954825541101517131022515402237718141046022656493612041948318809556883510303120756650396335941344889390708942823058144590379383318689947844224104462439916568002709654487262095307001610528662797445047864143487563206356336783958863610618756161231274549625337047336164714293691649567844708984487183645388625610991523707137180207400156101857276678751119915460013052987056108556363443472668589232055214077628555115258476703925494589326267886083586425257321552754610310678768459549156347695036798772331179657345361734480130451011363191296223418692531211894368213770517791124787062870225143490975657560571174882484346101857013160707352404021366705024572635759888365265377959383676295019695054515275484981556591997661048533890507559905874154951945161646611787337194865486693534831604995101774603388207069304425815051903140349520777295281656371650265998807136331705630223506978051198083785807207580957307277009579083769230202569808319360801106247651573663444728878462413678400575624104716147180025253427780920770766404156019332115404525000141243789388519475631465202039212935073019446325487790181593045467004393886010272112412797779970296912210945056385787793274551178850717164737142799422632218660252448090053464859573805633302337781261527105602425963546039063889622617405939491187853077787105749058780108017738830193403827092626156780547007714582316444342825327217439741307694291458364218454904973117215105598605025522356800563268703754387540759692804782119460201148111429693250976015444592935537557005237401977262491500665447946629647478091088983774921872105863772060532283301907089544134066891589175544182641361032287373001879434168580644632988359515967208144443115983729076386063227654621798442517563963797390545508595636495149343295685464283380501456139829007995673369458323966968737603637205409413805912275720788687421851697287110799400993258306553892676122258753404481687551505790644124078411339962074502707966721532508696982688980546403196960445982481778893287998052539580953183945543151989388562500151028712294610206157020441443219143237804024041408839305962946179948120746068803983418329904863058336259851132280221543837060347774573978944183489172385616653623802342686931890501982477378847793016366689448568955673438053697204861080553445280005405981133947440065598248277210290509482647321887923764921661871340967904637530670602021506285749651241720736009518916343656634510401442987683123713734358648449141686641383918977821047807860372651081781359128035023617630822160516533373967914510167655136919262894482466533993173852112578903380305231889250339821689591384267418906336472422918652074032577821672915037055419752394426774691766682640401426697821128939338000350361322994583109948393404099622424822866779080233786134298051224021045769195468961119505018912926589348859788359675265900373280168813407391362083040954369133442826531163902311822336022515727286741726278517111735497667634166736805148810767391400212373821505707052634087767109631504331083266009358539455098994126918653150704421972084571552683841118841743820636627940068708502795527683997019458913209976294717665450246585633253837516071427839573498657430005081301623083954528239027076410316922778206538697176600258512933812042748886997649592154627467524098455091379196101303704958530428897147659661022784636971527353267794368745359325054500721983480136840652837056150322007725114489219390725614469706085448819237677663208274734434947220374577475551350457234041790599214257500481402167729097754200406624086850388443378591782321495520067144079200265519448348631560790765599263981241089815774959910598827357897412748742929658132188844347575210754898049485740989760066595267989152704195170927140538832246626085366486719035433535232575797121229320087432531670753827176480430144508847420673293798324626715376000967544685508402732514325354153184128362986901180737855914652618597050498352116933044982878008695584472950734931160988081296876042152714174209716893904268960701254310136586360598868490943686004215138935312310537107141503724482174275013009011147453924665593632166945046844208865692734548699698573223574286409062815249192471394332217055509892201757971041908422514655522730340314890320275562462687185243609923127090592130340360651240902465630622743194828474119515306600368342127041071269755583842188846249066470605613562429756951438105482128145884234547638659250186473807209663074889946492325732503196986711065602042173024485853860396395642832522949646856371402266388561362853120810826231865415497681677124507566004216725534300130464839248365160587137712948483112500403149837363277275842205324724634895753167320117458917096476314476386189243127747666426195916482024373868802132479107172979870702313217426816854155116472350658291453669352364581170580161469074139340812353112694281325368563765600985417386279467889278717240255965629724107008174522629165503652492098631674953178962692411116833575157988368692593154118701546420727945333540930947642182190698229666984202553523118767057051199853490868771260333124306511407664012907480921064757363972770840570726444602121582295775377425021226489451787673924275837063151836358692789179238207302028730536358564461198744862421383454541783237747613369094168850341516150210570447348443386101654303043109628337153588011184065284469907819220544148023359227663078981744359082279369536552593359058529061208604379766698425947422349469695019911846230953920054985063465197979633934259915367577619921122994833834569489244141118452123860746382873391279281573739661349844751462662899316478789797500691887652189044732207285446424604906574782107074760024537221480073216095412582384120494255475496817305781493425381294566844686228727528966394582814211648245050736143035167998418003718432438642819713215622520818962707225676490230284662956887486750245316122096806321647630109783601256814915550525927285372330889098408263522081495684719183611220787327109294580356872660347564943539905725905745319012237004246550214185437475715152198434248730825576761426890406440945088480787931162960129444302338243750114913361089925546543211756250693328098249888655893008979941625062830226632927651276154812210277551910940655538609617802487306548924936181767649424968134526350000659442053445147604642958968332102087119129922694716920292692941467738244722700612781737170959256315317247946610140285449769238676572983633364980199626869886232685250392871763442820329847388144931397636230658611109552890102398385816234079536810557998599133226553867481122572579247457084872725228627034212949310358533457950775674429259558787837203222464372803744987226525480720051363217279036439736171083640044327769292575038195994734537802151353515949497425336035548601819362970823038036260772919705147074637497916407123966431435559200940188218312799536942090255194921555988824858670578658271364442599176491941187653382818544202153214014020001099334234150491242355352743758849040363644218385551804713218718672122376317537821908835461395868140559189468268028160873801426288569772719781415381118331147499351785059073096575744508588782921605075459311295439476327821210985039586933033564294909740768911437217134011765876463995840086210162102025557673154481313607898835651047330751761138197633749488567431680614855922488178668038306969766813559823329814772193821801771095082923107188939419899888994586401492282708348019860410050053612534082007420130191881079166046375568618636917225039006674447173528579204830176915455771389638917556461755818112455254512443703203321938382097386377671243509210001924023274141982383695437334328976336004118686963944536693149626238711770338622473397921308060602830432572444226858741808763684593366442754990614373137547100487530570788485441501247152729220075536919415996848359764203980843691556713536895124309963373267067027324318176171889433901630342958829650612450432662139864085836071182111543397046881471790922922744352398817826682493322026290546345350707440336477005378411573557391053373192365153549881223404852941976878465944458666933670653004360069622602814398444017067425403239067452043491492677022911849669714337618768986446561818684369175166722962098525054569400787442317769195688860194278799183113267247690936869321730199306510587206822064775329321589297874283896666958432583798878676657619718192363678184450432120308550264889572376829109477003307731719690170736300435859687046480618198873901425774667622465507010728134963496049218028991583265088096654615018701295146510296876408528688460643835966024913034523179504387249241904828843991734147006490414553510486840042233881198431565266503592228629056934120524108809444453747585739977734116291846582103657760987360792769898759692226111106927587242505828462637819542998614432332368613336837010889284399087055177837020335330265970252027364101301391917418353160530307055493244798387777879962433932860542143175357990878303775784870252883860065712105765801382017949931800020193900090536449379066160007862922604816751747887665407106227050644921025958523230474448235638674171320635305256909099711564083445523546252217939291871305360381695227071065841058586412214574160969768079346883150334272709781994998034157036990340356308899820388625171636870179145374595188020820679477042347832675195041260668912122003837133086690228800614500469979285612375673032225389856430830839529891824752558380641421984138735323808442219301889043845570390997683475576740645089673308615664589206648931758280135276682260754071819835038681149081414699379527060797955051366224990231162858501394222491631133852594098251908294177324743332813399243057892436802622618248708241107758236612981484899010956746265455751596603522202190060805822480475025601845598956198340113506968645477853407044201671498740920420800207370932651754868650558912681320746043723276868960784240714275923813310675676619538511380884285261736955066095418613781748507265881041522767278186759420687890939844714308173378221650259223840595962971354192781606439060266048177706429878042553706801070766957118605835742852142047489721456626909142068360343852334959143725562244741379763893752487962694176641870624465526668270150795031206222631082259329928849665203722909786906187199315213555836402096596267944961989065454379426294286716784927816798549110968715979069319940779424044267280834325321299585588926213003521398123634525254375663194851449001936995721194225198911234148621647864069621730970809893418573991400982353984733933259792493532256315527568210593565088975884459264490424755731649769381394158727899088893188417273121292263741037499550022652744913998173830979044929439010003090513305520574114384758993176957244679270000322183378986957593555447878751647141236320504117970661227876582485494778665589651689418909330331178439724421895006669130853256648936725760018435083792871395273945105420220610055029501322341191110829590020550952085616445769126385060899170311692994319655436847026641484054560099070004295774778809316871269317862500560273151049849702717960238257277055647910016219375913957633823969587488358284177894470704828146602060048237444693058406500942772412096597389114332543767447273621842501433283781652292567834277487760399601323779505322435249717688383202624300485359916877597404147041055061974662428285774384122773893078221067342556722467595799664197476683098073403851218855111983270375337466534857457156136256549081247475175311232851298899389218457997769412588879453661461084260250664769390799782433115654642361777833735792585015762793552000553519282329931055566812712169719240034613881219090231131446232723777130726469942029427005673226665102746466595183418683932930576178173475553661542254360367772014693219973090118038579656700971495254491022761856001132846731646342429034213974419211083280706218491139080594184585030726537581590077508871505813922740722089225141138935125367989718207886226307684138724584867205529811484299484003820474004259023878459060070948403811208907508039813778283222563240548237456136907564433627406460099202093739331589122073362716576309806855887391320978707423242861485138250531799819427167580407898737024942958931045917319550690100276446508156135627273402953691952716967140994468357969407637170127083278997511204764507093893613393429498394644340322967947290737086093379211655740536769752577774753315894783585041738228861641494888984090655638526650459813540770559521170710802507819039944819698361993771067470474803195375339573499658605974814387247012334254776986224007556058174095338267593951886112808351616534790494446332091387576689667738215469824716464843786442958218060855160794432254375466387041837195052452271759243882825929284460034705144652717271966618804788781863516073490531794120366398278971569022233275048064565609362004962457125975035596636994209778291326984179691313009986876536503154355469058340261927815775405835635731119119944006012178560453720295434140080534976445535801597874989601282547876725257200834035051361574094518630474213341591891673232540727903808647135511580964329383020076201958178776619442918105278469974295730095617132202902613340271377976947330984427258402834493889296491886363242180234582679851179995233516558414740349027138169962072255464317336092018904741274706717864325392146179118946126352531459165459606875676609739062932888893180926565739479609768115997806843423542085517400118813143188191299998835634529805102210470339901017300110803088955405924201002876081740261369269404507229844882908816513614993072996801223095471996100965998350630830963425523546869369849286126580247729232991092543032662703770980282385614280377146706937259652385122633407823834440236952016360250658309452795822357365785166546441338438243692772029057616332448837483062681185234794475426202780809366475627241870231556852223501637604449905364221589573793078940017573259676140098534031419434720169090615994504048026616556663313987433700215178211508896819767347828780183701737067349107452268727483139872475882519029858611742657057723728790735862661460413796738153264597193152546865790190116150797974099863495301269568936273658812855011193082738952421216275049741788595400725438659143531137895226099759764726638197335620054976019036152893957971612129594718025695732849898934079839908084929912400237915556495667492327780500455678540905369493636470523441568158053735690074227526679335920731613414044503766472982926438802953600555625508507916079013433792507577411508249164139003135174608594278839871825535969701709842662821572915298995880768726308133263100833185803351709596234005004624771100332384858744994714091363684702293392569046758451454885503390428528546687038436748071745685954755120428206870510093138994025526784441235418769906957120803914061338936984201534615561232567786718626171042288852092111058972630981276415704172388412292273300335555204783897729467613510890751954020933589458830603530858342265535256446117118989484901619622035525316407125629828155182804073540911354886428194716638670586241771518727229266704873440641537647615144619679541601108112864743649222024838214668374823640490122869268457038237924302139238175465733497048969318395600744170887648644461922127484495274130997288687688891467778158020448838362267199154931396143958906837194258930283934844811538914242804740087722816253415897023700886813924882570657708947814375416938093065602290684644169732852150847796398936875538345826902400869571387240595232438165602874795271297430235216515861220788523589412793036291990032912663416652434842661499648675206137238611384854167911897676565037087915762244047144240151636950578503331114047401836509138512535299266621564432710270824353231806152987522106535006798920246493769017614241214418571061171622996095598695228027833791758020387067546250494234906439361486826331245423331828352737395824895087203008686112577259708124628853430551145427204342757136341389136108945746697793434489805070123449796143816181845615244454120040770657120117866742822543913484906942037107779715992917106164184139867629138904282904039839465881595419212675250765196328176892975529355930268453234846950503786847802845999471444924996434403316554581949321315189935708942804268556079866760409712708846629862282359189091072823450965165262526279651888828544090051065009425715587258482941572906425645568485191493067036695988668632884767174322988197115425347334910403700250351581550780937553021181179398889856830449632166207099635132233047048641231504593934508207828983155068766730459219409766724201262060316258841807106711518865581591644632244527290511448218527907993417153114499836001742362878001861030906837814092828704199937814869196318999132641301935728076148614526477722855565181589899956906347654612995912390982272260810627800451477439621056868570266036772913869371985940437470196980860334515945925655636096265547634003581233708331103887323271266882226666000781554534185482828063063242547368040028393759622971433265781715100370533167198321207697614164240873353431026086485361613207815538647836904993508993541202431207706052179322289813066526708155434262910197287764137461635089349783242077691886838978700945714249917550058560043500475934084760135119915975553127409506250858962035394165781094063559711446080714946122025170045209994584206230572100617068077882958102867062459653870073722819042172382281665224449827112199227690711269460282017690970602465608992695893676612181904799943140839880608984700857822269778400351142350919330458360048192830287973092977199799105977759350596281441050031763767546743080406776196533711448566532968612190789569897620240178342972946120381811323325747588917915425219829979556015686073970492748305806925002279696423786628060803033532111908998467224706288326422720824012493390755431175813918152264191098097831029737849137738195868286409553478947024353376214542252535619041653852760611718286876342508690800014386814981125498984446700015988581947205324111617415650253885848187801759964893603217748444342750809564576556774346562199079097405395744475685859541276982443631666261491722816819761008113117813070545681812863950016907746638891647355226171455571570136593023545261794585171228889085729635051213713332831665448710774130714882385121791506437197800583982601415170928194176096281128179688271540651595048429760302470699830354851489294535257913930050943391352862244362009433398959658878960612175583778819447890527775631959012365727895102946236109997165118435247978363810464918285353902681956153490535526063591322552864421167169562832288659070273259023280885096279083618065715307454823034587305145770979146463250704910697789358261847858552177825599894294778540055175856623053736984340082599527881258783675668980291214748107984021275332383423238036735952558269008039447153976873281137966938399196683152775341998195982061265719915867390264545796939714100803089874816751918418759059021187384321645283884115704349615059868054014014444626288792817602110993571904319900595638473911141522276699601974646453461963022323696516598872900743931169632912977115691930817716285809275125844028727193717593061807027390322424506430058464319709464463020311885464576902156904395399631710092191458950384282271937331367455981589760374656482373877324682114610978092943980173898847153240252513973132100774642487686564311396228388058677352131601496344531474313238616765611062647813850621872741122215806809385322110931527156918042434084843858615598111062846540555354407488494256873979881089371692589721811138251955617960624556825734089646622857155879006723190145607308734846197388015175569849621805552311270058946172740625391866489503536770822479003144326647442323180343175223644848396996419395865837773038422346836805467693259414679039082842168859479723114684668366153428598823841037603784472864481656438600770527471127358804754595419099662159416054626113559222408395507779735274952211711992200618798104792360987716701920021455997391866508749076487916176361573422021245197746762842822237255930053637366575493089829123402215230341158462003218231565199495692775493240499907259806119831326160824819617056994687549576655066520274419934940480511888391804683972923429466670928417083102188067801937073261182289297104685813511324124821736143654796261970114044537622456459765030667357511311651231812346089669609586354316175635703186379006927534881017141309508428647409968143580077048982865859665015935735295492070810466499555317508647328960666085086411208558490371260129116485255792743520706589440381080005435319745177772331197860409575266412926581254519098612939162405141466792143524990192445260792329794732437013832113627287496261493460181127372277334026149671402242062499818640376933728714697467686240245145573518816032128428399528190321223920303343856615005943640146331270349444522882421819029609673955690225875001881127778063105210670608600909260288074098008603805791478334329597908141718137500981800709954017269822942359035204525751681368063390302335743120322597015745550949816284433040812051125563223620876319158689106381012817663576040436899209662610241436476969424733347466487430565514791833566499801506236039977528866310669377982972761935595572804555019949579258583586098077274950247918420617213171855581058915664228397598943412864734680436067969687613236019487267561825462687762876269741573228653111209853702616943887978622842772874991195546107214560201542242909637766364017447227740825130594855665303473638000351316467356159466036230254661405570738368607481982392694609230976417157535571533024152946628530318327984858097524832990374095298956853792321744789130961535518000264670122726367510049797815576758588003251790706292788660848007528658370375713318281785624433923878710375260909093998172920168715549526491870042653310935115701652052862399710156307677279821278608095994133096345287133471744302529977642919922571225059778848309800075377432170312189293049321417906612828196103582512361753512459497499773725465612703776121611308890701872639134526042794847642315269122833506292468689225118891465641383927991016509370210721221109339153454461375490639097922675597098230565803594875907659195789601082198443679798707936025795209985590780594274440801111992755416203825231892272575550165909600308251630341434361175600174205685107324093281498907331537146766737667570661158198414171911756277346097261359074158031611696623422362373344583447489286384113707733978011165947079952082120322520404916639066619700317110780212282983641435016090917166763517251086238071393035397155328989239248251763706899427072461543649331840055912192786865091460402965194955510516672875792963940215949326593533691069805715660286061574419948371613409972335417729770518090399892267803258521316739552518644855396110872374840455859524841429453997525102317072348381264470060297694025583694551389746365466272296474415309490879047589153738945917868412726940213801078626192211312918831039603296558224190125579691546269095947289123913201378024466540782564163439246631608538753557237907672443855122102027539612000232872523346535984640660516906272397677595509089809940095222886170317198919914545332567553131116157826304301222706361127222136332921329626460614815060078153733762343562732404113436695714625900819161251298606319063253482754958727828060562813724389026830557822948417197131522002112732078565291893932011223721161853004183658687074943184157164676504853176246335141176391922106021819585289375932527296660245700583940253097555447816319840028191427862461315578122482325781987068205237659535736804799038319939208924089100083670287110505614871835016414678060771483043614964106408460585971896481164089555856090543739702117430494910135391023587217075516167289657542736908797493064954212328958397772429351988691837912095631272399312651099207836360479382783005229463955605066498727739794985108953156328348088943679282346189684982113390427819110283275378184175371417547163368880306607018818485324583756495792672609442018081128807393215964238235283158940094584364367455014725423550213851943028374653356896535216839208297587736308341731780750553420796239983562876488210763654946880174018607630406636056746733876163457384582565390967046120867654643870803294577760324611284898899604044606054518874009452782428868202770328924882141820379556528940935971195630466796843935128614673405069696767272807977938436001038173044068460693641695678819143587223289811923373434654322146829509063616562112338130178979497663898969206037539740835540298242602671487989040378352201067099648195053244911187458809963401532975298117279189654077145673904521029274172303711273262230426600144335928629394543559343436601244441747324406224341850384726731155262167039353128546940859361856648444835344704788710631219323461247989052741063546658506509226237574604097706212208143835252578785759137792347237477933449748812658819013548690486364776046400285743824765311965544152929978382897509221909778628123985225129607107399286496498638603439841280770577020340135130356286446485261014607367105854935945634634206084541194572354620787619653979514135717210273992497556102729100478929894637251456873110203700400570547554192365456273764628658058710185999147325282575399408117143626029590269225600303579995115408359529563566749338322577146903404661808656926159702942693699190750970878636743708048676834032931196761365965249432107485353533314620158806000931194015550114039811667406525708403253172764072492316961707986878901195356449778844406067230887896867314916229788880067549501835178866518614662153302754469714503876768198765294946363897261157603307620377119745112012323346651403304203030935631783199383189938909878204849575596605282737301068798097788327853128046631776573403459269516621425986263096462527154755758941172646510604576333631490357021925951811276956511366635574507735055916291402883219106795903668822862534989589229851939441980634325727676354341387512410595635601178014747211377372981229442579570748423097333521361785926349789908589508662133800275030047968648079706907471177154601080555054931169524796606018312998488372812230663037399153600730336065567074507743860717552130992192147498870548658353957211016887061345539825847498052589050453546034487766186573701215689037733639053712003613090950788469540699467487873627323428226064304306933529884239428970121956679846638943532028650455162848337496146199616633976179898363766844352462364488583666549048688726563156342469155522602513711944775757636847139450467768737400917104405619584796918395457048915347071112971340290735717732777153327170501542413195166284893408845961173580817983067570627260629621008666073588657608794563281172628413819178914518176107627843082049637005551161557121836690638997828910392035980834821482218813367176891939399735426855317111794031298343538304329351974568099992180733889222940482417101731681029344778216889383580222414942060911160255095514548194643884455448078739779652798928866816843087778226910490277983391928261002685389620622744006941054580653177005018940728318396987633516631074321605187676701301825470285002086124687086699665864583327366410860835983355555063322710649965569664999659299655560020458416631336409414727750094231744509942131922308562676014010660325900375905747720894041111425768746196097806343299934417109211018703637020782390908721069647765493180717844892957874731481950274221055041375479341334416131271483762477364200164387766719871288400714114027028663037358011266061610184188180972440184975726180691542196713723253592087251032670264595494323479146712237775336779137628083327088688991294615766848043238123880914621764082460009136239619696975426140811961914857510208754661836231767308314896254468425965199564753822042557436958057211230549311250857444872043933702693957290804149968018761081737060447897731126706705066811440697970507634215132461267795557991966681737486074410768362508148576619479420430118365599609143355653490738137078568678502551801786388709179977800267024772344495773923148448770105188173555956742026372353789564464432032041698741115744739807560381579285477142643761109494563303788837932904183807260169977175734154354445742138499659921986790533977951934697208392363580144442976531127461260426172450394906425397786859612027721131700942208057934979235697640746391951887981927935157491993838541125012435386697459545804147866474732995161003612096686511715202686420111079996613858072633024334283162671372815561183199317154710118522252717658254701368242662127912001249524878441270618849040044255750813071174424406597098468775951279620897749236228770224507039781741025070761076769951329308817109242510104949011543456822375156307686109415456094638584719613126905368010007190157687218382901852237309044012753625376893526035948373691170599355383167458916190499844373388468252845791773412646714536285070732695128011538858094588069226810097732295504139617045862424969504386345320795729036072207259227484538871684699349767095172209897390601814969376816532261163380148878855710618006484530079254509374983065533907449094427035109949264733664336066055944833352284361890589410415127500794683864424127351744544450610923364978650158230975034330623696291304200509971793798901260802053105296912319584629058966351272472611815784536263639018050389976172198058431799018244601995142635891917875646361548394781196511932645975738968636061795785124274569798297131788159224647060002816027328982515716044217881063044797652181333193125402139319369090346538904970461153741830494386686514729389653800427714713806230571357861539287569528572880466087479427882967214447975595408737441649403009919845694968530267377430113691507807296634672101546017679129425859995253732037510362147660633192293933103203212354528094959531518577002761622421632291893723137456896133294338233685126073462591820748367718838562520739849317397209660693295801016855203976246443150321870744097585038889594602520689942946186557342314535867918269438198919179381603044085452614085080338282920168577107196873755697048641293110771807545717435394749118013789921094114504820761885324833937419741824703346798141149598623057592373944248168414837486400636014430449947739502281048916580747447000303903413509934731977620796553696275070422393047459415559491156987455920812879737240988196145174201111941677677120681705764639789446007182309052483901918181295381259033727010266280244471763803783602102673941936125868648892673837447695635082679417860341440605548883661231325436634328799161570335058300125199235225942780002295309080162445219042954691280053643967194066764423577570471770438380693719257296679154503737550493064888325265400006658341506506100331019835100468784097421688589369423111820521739464715833282940101222904046725360778956900307459648471899609294778902225721345990401617289270847616634022542474335735394768614170804759105824041187756957177868471441029267680749104356833625316495677351821124895770676023530699835620086099699818977735152193688596120275522906923711871285917023889595658128276318883472592424954805058624637948472970527686470065163950623957384668499682726746525510559707698762075412738200558080164308680023031485762417785376089179854101752370665403336813383105536501150043396154049136288287538120003300882357288103141504333898850669245728898749914104708073470428763257388693398883035664246479566842978530130975967472043369530416113177030625132753713760459847329846164900903092372918826653995616634898028663589951293662078493839855503980216424769099177858373468990059642624074103154095466423872424031797439529469483848430117811301513984016254430732449091310757219457669633918672157572930739144364432334168902892113459479814562064245336434618776446590240453561460208226537426587067447357772136134814066222086959833669421713482179559074605485608699145161927872388223269181361838814437990753664846458356614450284856027845396289963511763983871809050362848497606821371807905942543126417204861852479200551195326335797039755304480695607084387063369552376831365315623958269056857658642008284901660250768592279080870160863355111919442421061811556526081207550924549421170271639341684913793413237994642812051087068203687172793976382553723197415367097429943868086361980981173832203630820079986818880381770179278767601030678622015652907868748520762098226360483849984898938795296291394840769806541080689923487536415176062773644623966467590090120279379974041661873286340804428857882335445264652788560798238466772868686972371855140970255767221104627955852542425716174706423973907534090491130991334070166361433407195911347472964076666223182762030050147192527342226866800306396549367613768337258335387618692676296934535407290212486381884885985745245024057421813015317896759563116197265732894448387647911567642543285173910501485659337591659926044964195438667860790229738578763243626689518448177106344794748441382328030952034334713198512960174070217170299039218082298548078187513717373083781619494934231019613418038853925422967495446520070248472897288940006059022744507827119802409674112452072776169499136581671961404182270788442701324887663681997187298524657595877879490680397838780105158880307261758045809254726227887884316473389767809498133746871524175344286712317937374647841761127497400370229126503218814725427032923805376286244507394650116380584310570171237776387124883877231231985094724451970398880486482606094620519166083214142700404794844586832698962702021011729770578256712204397934611485630016619587775342624561914555065591315156900085176527652002849218522384218051958419748579088791550319549279908653331791441485857159987684095430928622277912301092502468665874335753027299127290775814975065974881575536483318475482888583214454151652985770228739069224294316564570544877189278772513642472280150143014573219415307872008580019985238559950134080991988413477069554855309484300074906429129588592258036309643951936219621445524580426252319427588574945371937323701739648003798888516580469632463744056257943496260293607397024503706917231459686670427654168825859288942507811649977731004390533337511893496462957345031495158456878144220649694765868895403753007659390580890969667854782853247843619448378467529804396396401243921857825701947251334232262198598715876598960607280376500051601987072227564940710578523281713163363618492427341857416948545877409035809133509578377457804718366234707628609364476108632204138858349895562210888826837026458484576487804872346154669518806217841738746774009729031384738339932809706907991498345795410920164537077452612914417849648394921024694932676918203870175042953510264526147208759205138333335729681135035679004072108633275255864268114888854043573348289750870860662022369300256885586986763366675359304338105954505602910348838635572592761784237987014358892559234369061695658977707259081336135772685842732448497428068545922857485033385607549080763522400222992968057630326308362989067978356061028115065192920711647898487186185902823679462022253083669319422178941480272755790400447462376029464034868664654853593250794835123887639190354182024784640703661172387535995944167443151463255639602845534219951304156715401778597989579757810747443643744625486775994371998481992741175369811853232222809867360573368441190344313840118221082202517738198157456076669085972536967215543771611830853740546233720585110396911351078333497512940176214288073776325787762393472991779114789804690036155517024156368454006739135113700695868526185420364801460889194784953261208580541461043612768326792118760821341677011180816715774127320720482295028455675222470619361673957569792811466124780441762793794729435559607566950244607150685947572229631404791560204269916318034130345222267003334840661540254362737229244220414221144369294171659288360050855106423903169385713527622433354448450426292469891115877858774849195251367484319999646530453586175485026266309334241455452261398600406785447307743300802210592871173453942199139235724802446021823462983793438181820712165779698755721881190663664374921076078269809096950111709105371222086402041072431720339212211953924150483610508447768884519572620867335820819541028346936770023878790124156846799879972734571964965747877979009407853896190463396562099479429596205342231843260908671241817855054909901023472548875613925509225241363184072186818618202661936007545428954267666169430443218337050312857693730695626279401563822414778311322899820655837677080018366506847088107596455054816502103643388031355210335943861082231246881553476255287932831004527952544844134523373492593299656443986243746941533441905331878318876067962215174121410621826866130758400167419991340451890051885596290450000376664332746641565478465746213199553751290206561391820170583341676785631649217008871273633638321733003177674534101389267788450734502667597266718308959814414080273678123414454984769734718267870963808443019454166555786946604756011586998823438498425651666763946492237601171677522954943283737659789724700701065377806862223235934125981361759495415067049035441208997190345253850347970216750327658515197958530633838206520948222455653283189819399345515279034669653324697549675093237971255032028335995723743179922628357088828844656311709316745707611969937888399777386726031822398303573084403112591939437079960956432876663011115136286057292908912841001324665753049366210722617227441084621473158217358857004044917224840193362460673564426231066908741658134916232478693990029069613842448508914192098913571393631602079519549129280733104711759885852222558805359100106664157916998344710166339323815384649596432106733036740620319417614149217573077196358686945062073014089334683429117570656694685589860462490116694653513053888472779756210217103226244389473036216932719448523056997313150755488569800967017725975680628141677546109889645004605300780851239051838549313623850695120448610613105989686362299754967812029502903574948656005374928165182380329839713319501234980066896558937292365924364668447472380259656927254745770902255077319790390679530874767924559465992788313352033430185382357671579227730362178225354706395718505139170147761064838003385278131434876669892346825783532658832988920655701766174579825776324930047826529643555581072270183881151026761509062202729795334538246489684111485659796048878925548550496416397296173102460714784448425322220306868945775641443100004676525877594155162488612573557650239245216459882770807179855668120590057277610102131875210723439761623899040958644299548027736072627125740836451031251103077278087847313005032542260988433743385438866232982194262585509516212502803765975016106273279053766261728714507348288228060093692460365574869843596276894185475293851080664009450409096828339194089334757569712895181319553746873452695396931976697148878070925952126004300858463953395328518671038762096327081505350454338007927762398494985186744791555715650504690230080460232369610563783755191061093013413790356154081965013488785569430580817045607815849646209575011353438329233679519750486071522327212130144235139034957019977704544465542046655754355706951878966947238372314371838019735670827883135174538733813811340510338374367530578459713180972034964993704854660809501346148200826781639684147287616398057749726151784552775086324348369356876229897435493010454492861607969015728674119358981543932221926134339067921945891100850450512036135840584427062730191475704145608636451237880289643008941889202286471750332124691387403817861576319288419890349649620595182809685041053342264597218646861030629452093152667173034384751550384970799218354199299183395499952086332946227853529423469548771190837925036010908835194797645623491437685563810672447534672382308209720220119810655910932890170791266704401676098048694509100717087187251221426207750800654858404623608800854190049003626076757199377448647969476441341894607092519074881436974873216297496299168801933320730033023378061937541538465583818162178861890656858201746739640921696987148176854046317488810201335307899725445444972829674156476524051862518651364421677175809284033593797914435726169261045844484495798472873931099321196366376336250807192096463910888677967214418069241554601199526699816788982048201530704820806450089966887864771819024436430382378986425545956657468448071145145123563927858863219484142793640246447760689821867711142435947934383769890682893610633999249912676543810922932034123574780991007829885995331047674268586273348160317824516648110947463480738628833657856113194587101470954553015319769723861728323809214683562446488683849004553779851953870572258502242282548982405577005690414591541703777504000098684321537319403461018031160611519761708904458658465533059418069584809920580854289936350311242531161039379123030913245966726227463683609470242926567352045136416867802839708798326871174713643325507184660931515657655587837546377537839194031812653291504229159760255765185300712273626337283933842613069742072026970539162369592590452448589574581907135098905047951013098234610141786551330960072404788926232230158215073960584619118510848142930494097941234945814719906963656583942625143395333205167689900431888206037050893921293232098160796884795865981872619137044986531672986283127445919969104023993153376724299414926460359495551167511159355174449417711550396280476056728387561272190626172810973084629843840446574367507128188571078963865328087453803048350908956667846676491679505237131799647916781717765531257403585022993179572496970727068536039427829365010132465849955289064889389334338110599723881646003230718901783265951920192151262914770219500760769505717447075996363372471820698140200590373606166641484408796581861253885843662274832917913233158084256717256284448388603407258930210321712453944187316123656657973185977487717699082226216174511966004862607215847500678124125805240376233725950935299568607831462947314827171952441817787453751430934116812563645073504699212799567669386356494501301332356748871129888492317646464592532189487853838344482385121364334912485017456792825671619426009840497441471521053443017811994697929773208937079041449604150612618589795671737687120643799393441834581504669085796306882113620357589692593604282812295957082015631577914817251299821473553014667614825811701854752972151813156205917749471208567342811327947855915004148191707203868655807778545516330068530302537947775678564608689911310458141448051040524427737241689812272057541463789795552698732679441568854373880710404459207075162474713827917748793620973181794734494182199173269568331895430793020259575268966723551517160562855171416900234980197627377114204969825787700346894560126051900287037990632840597589457936558946395686030528983791639342335616851171456186878861411897243321920114003198626335907330221186977112210154479610881552493784826298036891318862492272582829885176526169496824481758065709601740999128150235393941669328508409386408158844123779489488922235570883128227643805137248576809065213060179318069886236683346564939571848178347442623311674265941627228675519963269518122790942843050341713820832748136126591686049285430046372180689443382790783444605281720142011934514246857596110170742508499001175027428018388961062670918878670135161751656626860405896237022656352704944968372212394311206307502109643543847414485585130586855608386557047981448764405219449516576882886424803067076096435537406422659347019926383986264450432752303616022373720215820951365692205169976117492848071384819277941265316588551048015655371831519622870934191749643640030962893260322301542209692054461256302339681022756044334458268347261581499793558195299184540874086335946002069018416420194450537645970895046398944920981149467526849353261272165859962448046540282758100411044579727828732252957665712513395057123010606570748398546919678815779390022505302639114618643538070199776163059917818433253167360998382760162097092096024115104543254514501596494838384856547203310439625876680911219213250011165435219330002396655052725006264467852910352422813435614283649682515677671185239212742378129911440913074887531834879862616423792502977353404217910611370163118325320001415985560418984568935716380813661474213520055507100699921116760033544295748723977501967429355787900050725046021284880369273707831632612303657926385982923926749017198687353324228573209683991352388782444805528896277528391894117614954008188337920950406026759553377905841650888744076661997051279238629082387210818624949887254361167043090713174741677315831516452677740146220153768096820702653291118190313958242813126935199869054493096300684893794342184165839339607521116989521745248380062607883644416173951637110799523369461589801329446978726000362009039307749621931478969210765259222955099406007646464923423930556761443125022421384649112468392318796931073941510394702604873374556991011092211661360430561253387740452404908430396283165304545450409380051626914694170291449234521182838445914567733365626866873806525301652297745655207195436680832779180766589716942831076907225129425008828949569292513239532116229442525435051923825078665379684931758560936510225142123395801140450551430115304901042513898459069785590633500313420562096776312450820933620204458723195137895226285726981956609730127597227324180468428677751241011967519539580943808072509432000363946702849728492752072123333136807472820478532682011381960201831647608732228556360821701872096128267979232930307423454737650525455247354343583520841573260329920881594563738839424332359731357159693000438406310295508174216694018187068567427377331129880364509043777977051438714206868686401961325911126460489790280764362858985943027906380768745949057012527790374360336263159810148471338502511673446788997460602394004077744264296596860121782039616806117490536340784805785835677365381768493054915093772017514194532186460007246021423161386968892459322685657404479494962906141250753348901505859394589339713009369832885725106513872823517655547941424296758736140904016320497775579184819827543934340741145573552154604905013865242407568852127130360291103259938657743699748840834787568689565904760389846377268974002575125847974794468115449627920474904220767321883884851039351120854403822990206149653292753944738562166759916977135089391366746872323230226704716166993546720965275823892832492843999122680784707668012133489807717764818327305194436060855066539482735623919777872446402925680599677667726873949428036672007070391343926427585985589186624812159151733606616709843220176116248234108894540671587119687066107404513211040755761345551440449999090891292926977342186642704143964525038066491971086818191143994866039259122231194137844129844139272119661913949979435597368760491949962231111071960050473933049375336573805575727558741364758117087649645149919788708053617006660045201506593788590427588254303143505901782062215128312488275662454138483361892782479098811262295083282099532339911955593407224792269036125284329844046197803387904800854288057450455288746795984895775003442390341676373505368413262539304704804339708957359966033102907619104258299264796411221764367257021210310781348622710081911735167462822325989357227555829073460274572836901063642267135505806020693118816896446693805099075170084398846888673147239664619806992487633926122270933263128473548921126287607596984313311243530197626419790060696554637134124704077303728822060064183182292025016729069009810040206717057196281325914548067607945567034735022059416297003720572069276472681705600565943520732516505632697660914753995525498861648727008773955985623247773491802020469957661072853264879452867629486534318513011504299818643026326763655853689006018936920371669514567327932485076973183860917487061804488879746054779076220807794073954958696336753627572769562431420441970738019989427591739033229521312696432305968515774735914451001610264659463593831998236986249759848521822846249369008191739639757073593720067359138044411414854328631188813639070033069944686970038570732652383092986598938569997663776309825519686172790726428857245718639188145353680658689638184441916076949724403915305291830772762985215506055952185471453191175475481637827185694977657861182921714805713645669237680651222531310162264485920829271919402401512287873224557976830749498483495770866922804637296860189997960377278198513641809320486014503363640561272173602897745613014831075957689830772811753280644541974154138453893270341391646598596309306184234048174049825516151727399185047605404503026399710483437281338024509276129702257716728407581054318434767814395311651242927871115052649950804905664700196478547831276994963652958332487499041998015877503601354608704398931607745502823750593660131735646743665660121449026969798846683945288521266740760757344065896554263620455996383609851226591314785573734383758739493682719511236588963848982151368269091933707685484122142664071241465515520172750068455366842964241100427326187267357669588038185739950710123415541970549903111430150088997447404577725907945052237161987534748125900292920561992421366824121187917976882620425839864661293892090472097675072972620578913477943711173785859471371882866762654927443455181822440599257276242292749650699609282023836415397823495751271999293852350864118210509863956844260936562822190274535352247717406941389412778889587608728678888400340834132885603495581061680447964287885599457653053341078130395214983590951641677526624335076504266895280725317219010612519578074316586012750874569840945048621095204118383944654156582226089836397928770123811919063702952538910125000760986820618246121671966883188694522854175111435395147126665690185277442065780200609009137388641865606293608158244727199456464689800440665566749472980323001730069268016355339921418137050053329723732656297013749816094354532650314316716115062792261423891243013389446905825027308302252318680013814854058196997139331076424098778831235149849634566478295922376153336287532157196481490536609038972829288713860315985700204810882373193641351613676897344551076577995049411805399009011126129967291297766892554924614463629074206005055935459438544362674163082735256892602064555922855781495127207074864996949899695785075218908384206919640084538095573778255641597527708608363462452134140712679697199601622026615864660060431829106403559083760306582373777873531566108343581255077409087531160848905203237031725707123731898390936763765944632278662749085978755896576261870650503814445579288279983675947941548997882807356659622375105572906918013105921301960621084307911990750560566477771563662324682961873230775375840260496234285232422073837124852001332927361651455963443987873980067794132787752329355294808817315088448686785013725116219037947332755129611711467143496073777717558306185981318661439000447653029397361522603933321728912545294847965637022515996754372681062053776920442255046369573744896334092424159762774303946204784361250779046726280291109022328303379110073942730648207065991848778266785323063720581161916219120382582876390906141580803372190352267468127140994390874307270331223723333709634255729421431587900096596339943826830645878228593070243132266576160516658443511923053518618286000475430636562295011483672944246297666193598512661250826440741666259982922877289646751137542339144152876490718800019802905760259632018088874469304614735865298949391252178486297393370022319913468772815683297901267620155628010311927867434615181108681927869246065408385188756467694541250756857308562016621269496182203095071568782581891850587446770814250975711712206817028875345001665897412212652259326969217396698042347112969812698838623544492372110063575957463511528821580271154711269465665923603074753889082459066267128889144573957526056134504647421447057045551931840930629055282860651755243927507956033274766011150736755588380251625196717675218826486430438795079363653765730075459218046498266115215157985464926913722010303002708195854976875209787659395005586251276947611842385926413649060285826722329599195829184407591453811919066862057456496460850080339602186148663402731408264691277034793691248286794314950775107165510372559713059534128179592312289257417867563727714694348471510211427411040719889143661520902605939932774159318102277477434868521143937221229233659000860759214675859664750871088510130543667029472861546757023284863319471148191748872258589279803794922979146920905460334094702783246023288231914542834567841314947981548243878883482876112312817558744067924628017140808384047758816250495757334676207863019887159192399336539642069602236633919923127555087635911644696292584564223836225557887354074016254541301062239673669308090753036301933734647780656920760878108530612034033671965167052450703550271340462199958746352020864383296514146703883295312243310013667303884826526869193956521617407080058173487284028682654376152993052216793091915681698203536666676353626534612650485233652720060885032201337081539851918935463764216779128085244203844427012285219527409792408375386896269828065659740227888139908607247107320154367659440951925301578301964049859707033781728654295431600952944698405362724215162013025996191180834025197407555642259740335314791186098801764080110921335996535168362451096752086628828096004901398664660971233067980943215888438093266230282142175887484703500083939678360145736407507914415073352525258926746708357843318605083894029269305872515571199290041847405526299596796913300339113883397317441341131323933762219371966391060904797479307847448253745063287084135990984448994306773662092781901420231280817315804253482019037781024511452306463031520200898377201779480228816229660752688760411463331057673219719434594445429897387755682300179467922939796180441391266740724232415457091424642424015174414102331144438284053925908023463773218122053505671312814101546573971372189505824961694652333937598815236131118762659382431583063948625626487219795451761706255290230894321585899220675564836109551741225549530540723277747744310519042477984956923721545362794593699394462482015852695891266866231170491127184693243574624202293507294921718213711194194841302877361464954095730820739968231286047155030563603992299854889386716004113182762325630216298982010051528021231261302394678478041882124874929064586621589410660737245189650410606589598195732133234951696798109145958972986056448961517801928323505477780583821942462901220053745970703057156332636690661256534739151384094422979644888845487065023250335755483743582360791234317448788487951866741234488355386292253668359796244219393753156399370500491031294059894766394653563770827559389176370338102488527710916412468075086993718329463322894390771635037238032313585082291804658031529562085169444054880821124942799497620368444386502440820916713897772965651873993395630223604795574643938052751732959352263540965239153845474304150760720667288144947382732304012866638753095874268073112196521344855398818829719558789276405588965137923128217207006309748055250903054700379632031333985095724345395412526466924362278376496687005169513103187294290522985364884057798681012970791630954010064514548400746275183377630491330365456343918526250719666853636936780570636002633180823767361171365622971717883161833236774717887188750774495321593077283813959069018362255150983719706202865232727565195122961645467885627597878883886516628564930337482797748157620372991433520800684056206683402364918991611664197157065054675994342427904801288178596889477174334956917124828116393813027906881298766147090012776969749396690877630025552928763976158256909225096177294640447325428687069432293334256959032369765598373486788664643434216082620177907651542437510521516623522799063326976393731554893051425203129869318904448999207387298539862341910863848409456874953799217434014104698656912474533188647547148749331208472976938395409298406847023209457879178431045803240180819619327502670120593697404845687094464128023475365597195354666176692373465721205817344557577692737055748439162348720432700578206140061519412361517882202311287893121469724416638667354076649566620398986055356567151481390445617686780871550917242037438927405973763462085344255835745171120292596983309614331445302488151789397453194442617190217991962525129942254480481589613950934688626850617747564937960850828077354889643253154568622559348677611649306156586506783910740219230309620844202694596186871176622901438143718960899460566774325655715071289344475686668775465827269404158701372902585892219694346096129192980572572403315518115968352720852221386848721855870076987241330539869554802282044770123321819858333177136465778429661021140513183487966673887689117614574249307960107344793837958641000879215132753102884298186445612447575147881715964711494207849711423073376554982038141470863062874168663582972304398065707781421931060374654147007594172313797125910250453502540337476873512236519650046554191304626342606640565639125488220606479194868932773947187437779640823507812908707406906831569651032496322795935656532585367341632252328642335666313341292714611774255448295110881343008292893375772726286633250730231636902040995583395146406317520702873368259106325831497265652586611325834478550333855518590018597822241213225934989727785022552758652003233604153439783470242965375601406475649718264899847084473382313780016701225702147152078927501888157222699047746145415981851026830689758384527824285819755118890217288000742623207208921356159882776500357760493320031875105106031500131471409090360863732613676201421627919984794867898709248709340619212512576340933501583194028548487603290916438508843910616768054504356459859373817775069079717629825640872196084520819389748829437110860095347720656235780356768664560077652844128110871938842777504827865367868018824915809523661491926274945439853002690947128389656346073271340726129235365392002252367236552097851335235980930948126358196313530450669515654597101704357182743811768629805751435471903836342067346795650770320457065146074876867132848623334146357655823690989220831653925231481719229395123899846989297644084319158124396887429035085861890250552453259721863271452388051634113933689374332014180964530792487473940300732743984700073852710432562906351003739936378738815867037205491894163913860735511898485062985816671335342389927730309034400584672768613731440640828714731489807685718733929244772581060941721920539202286717919093738999213710010560051349332380422886653637938319592438326983335824842920092705522356662890587143035033488229414434070289409111599233803095764523192284474656818393063471759303610564070118198484409100029364038064096146066814226306631348002125735036706078313486096269140881846056498190447160656628582683750455968594149840103635817943026451976548769758685432244613762873802526561986610930908648214097283712124496551764735697858327431016540451445643493763824732316014925732059482435475465970152732821061854270965672287183032693898079163941293587826018076074318727863701762014847486858804633132928291929968583735258085772228802014098115715373343220312577780024777658269247223537553810490575707110399870972007700844657963870618627609487431281796553977620871024809529882400068637707350705693713030402032935401595137375036054006796324843388967040084325841414692991080783071093020585426960101044747874788400591492063913835042011809666492943442561099330456251490400640363935911253679695631148653563348723582901474734903748621691310651895309157440333211401367129072152008795763290869098680689983505822091756949076294445034875601655952713618989487317840309516238837529997532010224310836120474094103401188368589174015533470120331464304294323389970781503872346332009218518164788879552441200733457837841080217670044323987447883591267896545527671979755415781258481737006592041023364874257517453079533484005565188720573291894428394383790736298329538979015396609171463099213890148175333084126160541142677465434701273227660748806287007271411848280509183559106124159085952568963480040810824627240596135689279556566739933873596612193320514090457103996538609491289198824000941282486456043917585290782190587998731896901673069935507356342015482838578510589193939318728046754981690948766537217887750062287028324797990311037962799633473051599113829427529238759131025613050780922375724358604059361540255605337723409804817814753197935961477158334221476458217916122291242836353265456374921502717122076700926228600251163697999474599831984064538191157281122249696304362241756117110519756285312081469894005794403007155472438769086912132857760459370461426111272938105931641722548613601675804112986061176864551315632095737717585893349911810091649370094392375402341273310615857890991827488428732721169607669239186344414999120726189417400451861162407248345337116926332344305990336573233216246664664948579441376048269925107026257902481408104146404804883866449121733458222842867001681225585863954225079978514646211901481123693508336760825067207247817296326818546703925516170788642870341646287481709879257449053496481488177438095876563238290385877330918241810893627961522832937399456284643147746893398296834697560865071358885383907784728601119533435347145038421625088222141733328671050311711547184591206721755177391747649184995353398570361363259558932234196697347765007164019037766463457014159351612784685682201606487567326279827486396084042422912852823165417102136193405646382920641755226387473515254896202390171961117351683840226770163962278595155147352822620463823354570318982978593440693408542946527926961850858768134910920993155063463834966279797682927728314220992473491593731064764200065706416833757038378122165765516843438356587892324222361824050486331934217872387195222086990505274568640587658288504771208439224828128257283690655406426108107706859548270693246488467066766910515716235027209857597008430515970197575150179858977285426810306256654755164495923647643377387179006961589024942174035793861815379899788305146007004847576750483095109546209912462282442394285468653738370139235601366303770691082459782217108971490329833040653356547179858711041899983839599737755682745531733995417461943572972055444225365122191657690370274847194388763899134608788626520573691138954226750832750039264692932331718501541776456428645064002238769937626721543957290011548858767041285138002973831075745219407167404017072651821378269569743584076015078045546359706108713415221342686914927076789289756146221411612059928897125296748552536229969531250718609289512478577318919893489496675023340018287564150882765006466521517047820368054131122264433733403315411045612162017882437971698910138580135204042297573702298861729872631238624321171100417700768393730255497535404827119721519157541244661610961094856504031624702794987147986568724867846713548568473886919626251927653119084906821143516702857424249815638680107621554272280913332100411060104161309160639515845253163637176444229859691623319312677281778050780581701534278483340987985934270946157218151330289046013762647959670739755160163175571921404881773966031745825104582376368628753369760479730984333694323866002461631892753519575123740711766516247608503956848143552400360338860731847596238226384055848312553023633915610307181145830825393746585426827031615427275162601661500412377764618516501518565544972438672649694288621137228101309278562998733918714517675157358909084871064132574561689092761201688092248612782789086644373476347889257865882679308057585724331116426987106741278691683603356601397847978889923884703572919340667926286512061968978458473028954219307071924184755173710381994348499616552251523574163245400056999394463944222092872456693196205214747079621202593526392218129870476370696445592521959035468711034778033408427230792077318295264040908325919317633831761184022731996531154731270349699576552130657766964545956105221301926094081945164767470750715263678992800435661171540564275049652208186654369664677388420650981896873801909803865449742028162850270413419539030092752378663954679070159972520427878322875427629281501743776261269160920508617036444885894321902914991966741164994317164352663908555459681835073326489819242960433193446403718858133598986806181068092904115128864915123386472836657336716281083846575136906173724751580057223024040068372289695306456619407388102782650474930222257601455321371344838873441211246497947356558539042945388258367322136382130827621002009908147624725223962742910679651163941809557675875441951408821061411799142735743085642507045185250323794997525658566113245718295766581956946377705875298388635740566998466304566356351236295752431128866423093103829774852437992298062421716942830045307802777039215016679481046660231156385788902936057654254412977997300689532719935404187145787113410091094032905332136414580204802608947956387371237658254956227813607970462770096570965327529117930886640616767322284974115806580296097551122524350728164902165870962910345196990563982670222888276892800149277767184646329532030484637612891453266469051700646419474646139762150721156816551040577648337782094608318459357214594041014389166844975906086449015399530465401646300341451166459936790890631698900910543289537693502036050199865823557308379798262186605053220987714036422877715592433189048951623848871370866236675067352481459601064207265049784067824902057366707698912529473170032405524590459018868298427819892984405140102866309066746264097305297205330375497764370932959762047925855328005163785288312052977525352671692414915570901996179976379193827782692512364404775991871331888788682862137986721302255522832421682797723863589477824150533747533421839153688108373796767995482436644095808902497818131465051426440832386243476771563474376569650415951406123084533592886485393416872538128446545279783673937477217767775352064898874528274732255959917798381659573475428894808311951708118070784903711018402633897644759738284727106552975541297278299811130415448472229852498178705426757675529098238185966791321670389957425766309267053767245125360733702357128310181133558200194589181416895067897653057357085219900547260032403126103788689684375195806400686561542484335463947159633819209759966738622972062943399516759152019854289564062086710838065404006319837230864361200851944529635404673653646313486064180709401346316577492775250311413209986167831092239690446435648303608260524463394380823281631368130266034530595042918556289341181770702265553872891689859909559225167426571766000238888989925021682037247588631316056375557976223190212747686226079505690844109553844489022536705758379581891433467282841139480638265172798035649180855446728029657341923902002985058057570782009958218722833060108819979423967914515919746634401499511470440103680613947687632361371181082099478981508450287187349165970129182107664137703751053949916803357814855856414092772610097093183116176498294183819044234788154444764932631031514652549089071672631272592476288159870635367682143337639843715113067422805509391374772398721036371949326678304903262763872298581716879684502304979795983017782079094130218646909784649942371780885665563916276270275400581740118500010954739580412585763151628429811148577780199505111695487412915450229572999085664509640015360507553624029580938994024346396146827742231460753416483798131896202608238770134187750453570191019538324011088469082527030464123936109604183125652523863607861068090043713736529516230754064041846868423687099120868264251358579762202398476010112562790892177807376902273484263843456031219005987624618562666221434216152107195344498399811559142201194447024145153446481030320694491821394276739503679098011164147645978353137617170267138062955144641702889297526109824373165840046456414096721790985038476212170520352626682955537876511918667427698584745093787393584158986713263661240860538122109967913037464060846835844792449904988949667154396345853147141847846551774451569588643839571062566786968244266058651165466222777136579294260879820173055338185864812753700869797960242222961594188444592891289559225777253880742033574354065633908662831646935636764463374825378891006799694831252175675057136579596509523343303945938696548428192645065455400340735938802465311508811342799119497410488513561335900669951066545391448178441013421077455426436719000386571441781378310027973911136302792296033335363911428023329875448576064001972178231135813246933299453207324765792457983457553501222661224563392124904297652313775530432102546968169160566166917493222333555357782751251276349218166341710671502464308629081489348727358491205088549459508654699479734849078935914616727173160390500429825310225782731976689627288160188921190081066558949708048963303286268168346158526410275242560028842086439062718371666815405766551485897609655029809024715148540718232559092651741882399890985913188308876726766250523181859193816192766056952290073480656960740607409936400160363862419822420566133831440777249264956392950814132386998464116547918847256557642863666632821319840931224366055399650008516534166490541685915125545333331534289960722578260197207431959498244396455547773303243996768561269085747808948956788230330694693047881057300239103588384173140607162076784652503969258949940760542353225375197072302122927769874855942389952747516444066793878131499651410216398216500016946249108535358341265553435816718908022234708216704274073798944296839086507201580988889729534804415121359820520852023689420868709812057208135909924537195176229813726930928710180764532665046104702134446426136984505000736758223332318425294346485534101453106478720836172211973294916239162703523379324281375784533580895979049658703623741849526372617191869124581601132233109475677199176864267223386743213738800139793334819160466088885930951044060034495895648980821283835555394216702774577645039668604639593848748826219705120698230405963588789204761080647801475760877361046344909261132260163238756491898889477370412283750416281426203722266542845594390170758279806898989039627898143203390015148152470138345707866918337427337886692397153280745632718885395115409007910726327706418820353479058061817986242744039409954364224585857066098552604345816398194756764598911237672178622503644932485236018390040701311421241891389355650130280481078116942811151558744978674603851112565247109106632429136003072280485705724574138480606889666024362805000785576306727206706216531825340168243480895957859336822727560352553593563975764902151513580328725930072028705032666356420357595219824510218096648289803819598640844286463640357046628681419540247167872625181387155930890239699938359797651859804095928189798794052303007760041510770121315580194608202306534023722209306664292339092631603038920336121475607580316668818336683223195569880513004331362723019314176310497419347423335096240187536812767181044368784759299401554244342350401750632758294795569505987621639303050025512407903918557851022947313204685263468949023543537803268078827357346147751868304595139889422808483494918119593890392945707737334014047908465896739004525964165968006274425050673799819237003627214602006826006207680519121907163321820396825530885784624293043280410402771099219191985339672059348363566453305101149196173951003731816145230110434966921312894269173687081924522993607361584460794920435309297222932552288325079894310885440191335552152045792048530222012677157857468459748172721690248296855839404310944114420418178426124690437676121091570618244425394249157529971791185755016875537714190431374725589956437043158547856748926411573858964399688183122023316545513354602813349128168100778582815428743247120215683881686097381952280906459683728232457142388053700426974573271117972913541491593358526815879119199331763830660722507880510847416901234451522988185472562540669080357998855143877585468189281247326748815816903868801979162919681611274203729609461668449147561550576964300832238971391129844866051639384349276336441248622581597238421062086846298133221835814746701067147196068338523652270400300305463068056581376386164765945812245155751325986358982395097091969437818647619772320349960016787885506095812345869205835704497688525920949882905173871997797980552731498838195721149064201874790444958294643445205786650836825673024466997275111032226017007024649843211065636531902601125712557805051741312992816213996982103548777875540576240222854610229365657557575732505467207612685626978677366788656487350490950326293436862754607061747606246911239035624453768919484865616046105258202388579427097761403319049632691391610481227744859706947675917793360844461133978050356223499719892647310084824182473779111898957296877029240062849419860971392020756543413000428483849167674712615633505823096432772261148444389694335952732926635942861314052110159719169233042963500704797166602655515497369178842184644780908663661712761747823829942607293072791595518005110798480240690830627422796952789456523755658192426376199762850899390309875980093265261655594781284964192550354428598583032254654227764733191760896764036353130997108298084786028891536498268276793756960300298400108261616100318734553308355138190601950912961670167661082911410426656492914465251095861573324117825144245341341771352491772580190591636396791157588644396630327016900610349966274662502618283251249887956269644827121593423526005536558407027272261022396907135404657953526672325693740442965195789354203916979221943588359350123297006528147834715125003191700645014621232413185903153670056901414589811807411171272006042963682534189129344341416196501423855544382753631977915372012233460840796965606871259365857823489791331037469000943200785537253486525049736204084474014239403428224989236873489883149751034888670937878711838234700831323866734618649396237890480439841680783824511722916726310479207314234697572059464233721627741909940747462440123595315889590973552997315687777890957021525071050748266214077877658446911236191317597650143889444419560736814858063963466877234211289012492558466863273378823712340217337620011836603419169559131240344738032403476925834257285525544094639889201089171675014764585131467481365191508804380848326903479896352189616573072303165354237889935915096315358283345417327520932734980049232342296393901814550255019894509249718978958410059046583141286310536854064774665270905696085884588337966021694354908700705128034477932199347862245732945616863894083191911377094063125486425350810756719605902041652624054009588746138355048114771337010144233118605145476442011080492080338903144716179318930885988618882618027926036488421968467112465543029407166156291350392764258287473106758910588876873039021077942223351655845277562223872231314511819721324520486510028131283095966362446407004900327415413462704031547478283101204213592461751034996130867414381343820471150769185089081699986289519250350325426577711287477038476169682739739218626949010478498898287934118342663825074631127749027559507563051032207734972601811879151976744370692633063367943988029521283954110813079784426405699814425628940289336060067337849287555726007944079415519941427611870658330561696089749898319849474486163981891507599385760175493705790789218719863010022489121411510303356974207729918170903868673469483310754217064720959187425926800517769467038116567142679320317646837562432005547439822320650850524221997702932811950162535885216942416750453628326166729115355656462292942794133604746659620975367327050663952004315914717180946378118049718549387365844014163391175224713911846002367495905997114219094010444811653356409455529945003045522589766993737560090398379437374717009785825637407072065571064190237567022127289639676469790995698504735724641877460476660360303004706550132677728986576548281006489044916739653250252592026722941678520648379038582630378276567908726892437058110422800519945612688744346916211546974766835102781841422130671512906978883807311813028181594316267387825083132185401482089994295258886557655720954080869348806156563177993492260819015533233740372721162248868879783169697848120520147489560939560683802806009032478443189122728579586800415078209799900176630032244679040784627966065826750171355563756811011302266801460172168052232597176389391641445115206936046159067459087793536560454535056492160181353783913370010368950623051804317757029096749266568778490922376769903893403517105607513043215227208213358745551494048872871592594454696757722158822410747361839292434337940970811924175281663848426752728879202893243406288349240792113701288861451524533008753224730716428137923905151468875224591311925462916929410031254442208266155335263672599495156885360940396125719349290054282321026767589618728921698468337416246483945493936271922969604107985403435363780762364410332028036779396884952108909422795497992284726904528926274273398264741968115099441573928645101289314994839056105871683984069461194965354675324996608135971563037311288416341548533983358118921499309558468474243606268765661519858876049182410687451694484978283843222656561889064491835922137042999415022070967794390301563612241130113764667000031534149136910305042586778837068406491790103912551223302989058850713532692007645454709053277583473836133726900875887357077939108901110177106802183030039488766998183207864267369926121762336406913959732708386775233231288201233555185120776276183984710482909395304561782157190976488362279969998153301425419609210294686898609568625662638020915624327633229962698136021215873174080812966087163171288777025279125746936813520632465239802332514394784409237438643533421414060893053056146270115976868874724552831413669562187047262675820608280656252742083372368059598751960862705075087518202827448610945558556072723728365328763106830793103334638030785326867636452170902940339007067713071965756369196216420449012578887703230207961528688057331094729887640100784803392981415280415990449682110700788066737341032228404750771091498772885583522399827629908263356506923123199312294306560818092978090371439401093315256108615967137484394276451377701966310560880867151490343309171617202868492205831757640971085898555775260289534183030148273417383850461333226320112357086196182309782477679524174237119881962826706711342917241394285241251844595570469664093172088684589417421537943619587988029588002721199504737762782855683932337883604320444008933298476622599849304911220942840779550516072035184144530163944192537891032760497875658610643333849830026191192159413343918543444334732209926058677495128196830106231861778903909916463953396317690759928333818761219015371565301868802030521678656734123332115591316525049185398956051473188506444695432191262990087630388794755204766426212069636780737776925521246438437226136565182875197809755187385109015139973664434611561072632711427152411501808388538974522396687023161476705910570735255198564442583359269743466953568180740806090761311885182756601470492000070353984616856379323694044099334593982377248252721016327370119636335798512322501054333453642987002431163094569196198568153402337343048392498167520609029788255378624745091586987873403830744340261358985563272783014214999240914037269168540535983638832798081029092721600089197954710173863556336019643286320582941880637765815628446272382949521209107346227642507040173173249292984646493124737062798662539707807598229900420032908862993691138394957256826620340519644126233785302327769878196691767995230937873367949688681003506238383377333551757267027826028841159071502768573966543110696216245993775869592310257728866433556444400880010308965505460737739172122158387960441849419526244165877592551729849555280827981412843118388474410156977708205274681836307448714416865180009213448126452407399238169338370561796287914836908184305678934502578804507939623579722592907287875146934122302770424012979141998581344537219889587651132355985468862323091183701147569596718687887825741066462105354549218148012969478559013858462663127357526562121762859212662579931494467844179071223010863571622714134991609590403246519143277068532634671876344498822163674129723061871340072847578240081138472184506615399422509138312216359711119441592110832652311049220150021689675365001654177024387829896732538959749563717414778475227339744586465155466312359989516496425733706870322683463364137558433688152980620858818998210355431325626655275286610529333186162352501175655143178346989043384784905172543540646769817678217027409396395092456876690816347348584558665755985840621334585748978081672368403612803659533061573399898796376284747954129812290746718495841371238409273227087119585754042995730374308990894832843379246479522112251041907411196686508630010833752875475659469263503207071295136762185343383251531367579100656098953370839546330473317234908079369664792087550682983176188594204309969860275693332258909289087451627271944582111902805756457265764847785683262072708116127936069821989109078359067754137121533161597262633853735452505376983046614031960278824134616534535419960601728443067821470002574096818344208933431820334147048310023277719975764139373396397588027232946092548081301201105451310095033946815186244186920110120824875039474304151277529158097465907437202095576599173914275006811807363586509790648415075641144988822199564227340899946771178548513266025792619333318552908622858219883025876999717388666591566263171123028276747826899916977827774169181318989372782148326639877669912105695681132185265354379891903170972826317235655445452581330406784938561394248964754389619172628864625953182124637316278210468864456218783170663324906460005714159493477483106684291273696148967272680670606440263358898050445128443549132196391031373430173438575080676140175082203407671444321791647174881907904814193787862318581438985255120370786367840008850073889435341570118311361412517792581517444338311519670618088067989490292251660158508999836510255752607236583103669007216707560870850124326821379892707895842164572793183036310475133555050860123523101397294627024155467819481323021692978437416413578886275356892978303635069336204741460999733972023528538561411394552009102735537773500730432661220013146936317716981117451053998320786030038150766089917162473553804152183764037043877302554199934247935388734659994354366479961346179365900494994509802512977641018474739683368004839571455129279842664651924584548150215659718203348529114888606735819901020668091874725263785936361479752156778872790131800627608044586530359805076162672211584485744426492920875945166897493251452225895377331505895482759808722998263329529819336440799327102442833019491904235110099836988960351684210336131976847829202798914370563435045595733031582483623547639999077269797984237019358140855058450543357918977983241560799958859491196628356269368397972897586643947892995674472636254708734446139992194157829407102408455703826842247479616392281963455291983810439992101407598396809268894701046519598044436891326274504936865265240658038014608607202142975083259655239646728972118573665601630067010336412702166060174377534763786716868969203502506697997521699971690139508653457274173821876709360726018119713336928635626023297982549848309042183663579767808713049771832133924382471932265838905799266345738581081582125646920860320205303649725308478795928829279383442383919072788299955097891762732117264898299563181067095277664808756352011190939800518658522071170224419428451354871967052968206691745129774378598424666915808163588758773458258703373475720933945527483914003547550494546230692263429286251599596848510984907467746729477208847874974843757439022829259537586562639901833293256810043131677623291356566626754501972875844807090774819478367685163122857323908261749526774556237016125494192665703713476008071635312461687713419579440829000031434674909911857742311001758828620045291976878970918268061977824681674230072109242180191088407632405820820622679546879415136878443521075356103811801998861512077186797241764784468099963139422174871787144440984265485441348154835625688469565379734418468969632922861550892195189410614204862669367260959940050378928651326086262987999527927116739783008276321534815196631150716329157028105667863012446976568127092883099079130776624008369096524157628877304782951698099099082910860930870569550904922262656074705578901944563979823256238927063121225721182074083399896957525298709953783685310446441152773599437380609928245700715096602021435861011229462089034345710400451751237149519221607279593425058663521287234475402150782609137445270886196623278034044140552330148183009086023992492934082237502141144492111159485856712130606489012884094622327932243356416218527200316636046556188694611018044488472637947971056588741719059989535137883691843199650906285021239075475010662205380212870171680500725972063846437386342664922214797527278719448699128162113536031210616258551152931096254849113557036542718896953522472409734548240309498420567930014327912365817656688886785793856933549278323762976836771691846972939945472020520031013079658875535108227791549972789474619465406795643140131232360796649832961546400963653695940660521898720927224256385777343301148121220348958777790483247459615396626434359481320241123451086402762497555888158655521594672808488763593428771047762925984282400544848525150749908483161108909043763692224669009520905262082265778895935989186364149196289809086733292526540811740292754878037464536517715545304819967166889716478075850747227236022951018366265695698879201244166849513957340757409255100611060055426068046357856042199084550708650642122160462486972281878899078362165904065748937525875092377491737852096189360188344901080501273385797864121584485794539449365715470176659756711172635106415696680821551613083547405140385809404253265549056737141072492283330569261663658447654460203890043132005345341693514238361336003402620755093683648348970074218185500795560255919628418335852074429412960756556791293359018795847153951209335139755751321809526467307046785419534903880635258738495709359775830995067781002036315454293176250407360959814140406643830229399924567476644889892116187941436072824616243897739185592529998842782520580259765790646202323681274420407991901800031352570807806036109880542185458519031376292478497958827120082850029274095067125440178257354472579974598367146542958084790988414980140377218923665286495935272583144429832386641398802893151661756798652935468045844304486988140124038886670785241515817197685668343722640201617158459106284400122676902675416997240523963596893540549201417269477503082284567701712566135470765583387714527673180722788684384389581973432598290733962508041347239943208467950842094826386945302048267125666301324962020794698645219257920030797756761782111098789874423309189975414917557011879492208987562920841123675972527969097862013386649460920316669914896909055674987445491222044865792621793537368700977114586952281653109128169153185215944187590143819266121000330727172009311764596840690377137739831259035090151870374306725150743713084169864660503805953301619797625720282844078080486610959999049455620601638846930634802783375954548389271390943050388552934660273373291248032704144759864571947788674547450958489833574736889751476268133231584467975660265417628139400118610298236385387884762924436503067650877760469587096844217621673589512758785920565354748267425990800542150207155486889363288076587688900867448850654591763204948253501025730777678500513180038798890884417659537381214803176010047312938885656191690409044529501701285736926764922084269356401314148740030242611131854565758616884057970301190096447721990661105211638776218266392864083390645269237892692192447937406092853998672513245861000699449022606629052372819395235029256958780062963710330611186029556116527092978114904910603906722318459384770088807960741942416429142783085578166893081919006277641291680361401987531893552728959634706962894042840738322876109862267876624474783948384096918167899898149951241488747641364154568752517464375656612356285814805397356201305357247789831471174464598500080652226982549053881199066061310105080513427503760043477422172862475499376588646613892451125688463647843751561180062906215129734212273524279171141504825426354766771946832796787288875459916074506529171471150550036540063517586882481890748861388405017057913238503472570885964952323633537402077889331298630887469178879491253654869575064799205696354558665160977397151489741035046227690099820845199585477340126029609270782898663660660523437345496485953917544748761280910504438967587595473782300750432004283966438047129357552647483204558101095120078504179755887345688975126625145610918786749906410436259331098270811269084727027711070554407392011397854454101250513710403512956561102809655383609076990860384321667592540080112132939020460566783548822700108297831705419009567446794914439268172251829400470006464485327136255694143666841971632476029452929309942727817241515762169563932133317700030355262366347699564179967173189659871920637567865049506449980245652325543622803907327051783700105979917502259348138280764918792234907077957775388894297077210828700407821708407061333572765371948516081988682144684854492755201732675504994557332635294064613450788321644433970554289297140183243498647275116928878370842716703304291473671655129791743583460763214283829427598495700665317016625482488991957703581042511091158601990111828973588600773568963907571410684201485002614755508092626762511177374711836525044042536578842900275814695184451883435269003573704453602662422085346953462590375425052059731934651201968186256189162387651255211088764662606992300554927325702724775733350176952992619956426660393577985439906116617618119521405374237623674291889274438459456705222788690743588941620253193950755654181525305305724756630861752607111019170539484946041278937620116765668443304056563057171040099321867550613987584175749871839448728430686789722092770934708118295267498258957468088339936221296060240899386660336073011921240995050832185051155767944985514452588138313259083954351239227509803928669413838153289796842641942596667024532015772096229138786608272480611622967857413590228466896085136560631753814783391978514141115971328758354826055982213962544918008965601523361408949592424327246164716890143823338085376484029548340173135536328730704590459807192593601725803846949209453148198522791719631805016709492982160805365617628619550952640888893257100382076137147772045372207682896701009114357088739893542357799401661712913919308330696112719107057681010813943163990558138844679975384688481453869767624346443242413854110423677976799373344023778032012895009661102597574256654563816115181840295624245673768445375211211861126421598437315139514933365070116868095052868951054882244879672317491589763897964143834334673739985472247936087564369838273030173125142597198678345980239370545301991642717122551104459734369567340309172628820479155447294133145711038441739831575439377590975467232471633966104509151925021891096403549824382713154727744919693029384946716536910991621519324507566444633824250010294049377735082542199629908054922301990909923369576705052605968377494399606866387113687233989134352221534936596086758458754175301538259470486048727031624362794442463058470819776747331568119320098752296478289297344735514697349399974702548515877562410569537359529313665047315392137910116166981225376770188610043419696875707473690983779172525999207035056647397060186569707237811243801996116241759187290551695426313030653194192863837731658228692410287506053567291081565426629014965882099348558602818900522421894321059679836852554055927784645203385214706206926580403691607836929123528703862547229061575192912156121546611947225798835086183705787768924309289313990357487018473846329122298526479921326725248389112055608394431331822911066923281014056349892247041589627942048547522435640498386388772886374936600384071733540971207559115484398221546135010778138151568815945161188341480820817515698265810360515188772783472637277934838355007623999422597258746748385149882069438868864902067521314399706673938988426337736672954378591417605479436610776449583477581401786354182046448118609423573810939355135084966205432771294273694072787599485285457810797518048542213585767225564412128864497896457807634899240094804958132506906402656012702811684035303412129593821237760739003885679472219439981007072217327866583580971374162587711601402748142235182820602371385493241339698377105223823737880565165541346037428614797259056120546568916363330413614273587165252446625632105325815809611447581454266257472757134671604432919730338821823053303529814939517209475867450789166684262263882426981843623662036501349235554459173612486030699683277110283523819116836481638395261307182857689924343664274146341519202010581082949067691592970933342308044964563574829266852709572160840389874883226826926087821947620596275711137608834310402913099286067029638634425960765621275387759633366100519870045580371383269693987910313401609809457346184600367353221888538350032990190960591826386954888804491526916408606094891556792183084819032776953026248676811245120812183320652900041774867423860894638043403571371194471649399351696565950256203783425400041461956236311187468017600817144002163385433342607440586529910670848909958634311098695564115818309029708950201122349575427281585089223108117300267429170200339836562141293492289605990295048434854864644918708211592528720000495767422599311330656811079950113643410333107380372861017954187562145751320236647708724643956631274172643931872334264363557534850100512022218529556273273612980205450210481539774117531832938305367376185327856349805365496562077831672170011929954945952871298493907506316533952012612247835217925646105266708768441895140117218247542572116174008839774620361202771602796518877652478771489579665309133557415202930104339619981733915866186050245053723338292054371849914885629283477513180916931633477472148819629248555799673189568185922706206715022897872082869595458774728280192922727601691804801828593681588720635648201916585469015055512201505786205315130056166518116702716603517929371421845734868185571367843665519729832616643032205530275086911728607292424294999641428597805676867933493883541413365836058285177607929338612216409315399270453557863738599093984231548535012651916609654647319551604329054391051653820865747481072551612173549554773307249035488490468644375574915622889843346562937336074575780658252575912299617558887849250676902966752404197046952168664780823783672883393884308922763819569258256616166599667348949925535430720753168503175713708030145307362747858733787367929335672845772303932223268248115940919200092192127107337715128956850942793250388495473212418174054223795672415428605040416170473307944855857294020387140205701472581968706947213275306828777985175763113644632083985785817219939551987025742618083943399732852782100499191109637471258395491210851574833953240981415609427353448483666257637516303597949775396092930585790710779941203308122909536577445980311358396151951127980916304524861089294287342499846869020891060025535135264618652543947450065050597498563034886937496908927763122891628492013311520083286612756289654764384784285047681513631103816704071341898794555299226266613055355451262230327313142578767560407104686062532068740778197961026678462436993822739966822608740018180825995326464045815345861121698611043769501602525721734823906504689172170105433382319952692121626989286296429271241526186354328085187355834015135942766728725340389348721483437680824842911253774102410958758685553435723758392629098462614260613084525758733656003103079833569248993927743371970190825642629639685087256066576353119001575774078097717926420787100437004158110080796126176189529502405072163537548506414460990435345057377849029563849992945527794593584358409039771818034818510491040292323886704216183344668966450820723529443856461158001632518743287054210475093573317324111197894937546122974655953015551625982616687379542922753892561628592374304589754042072429340749389651595384643889906419901972048587332066623047967035051954023006776694940766817951822993175345802077814471603201724180893413090868208496945896607374158580065574705701497033730868839852116233293193557440227808526143421683013115534531980767514954164337813720862377098657196601758468020538269082544085009527889283840411940076210987896178477665602212702617257397635321645969982183186838577146752711415061930145839936844382656907670638553771256235577354338655888222255899450440931545127410819687149399257707317821502606110418430931066915167906684504326540678815331622836687372522359120501088522628360872255898013022924349418701569198192332360457697304861509475266516942338911090031140925668948733135481628794113360640564677738048180328741515443683846396975375935926479011179044239051727684521808829105350749187374988651244641329572635813146637062950496951547041739329412038217929775717850072225555579077835893849129756707861159225238899254601978706275859499257013141556252968961847561834282622716976352408077631498129281271234223483958789141220269570240362025507331138109260700837034999614791039485440182367606715082666473054843741928875429671452387090012188798913897419398437157798192810140374471292888651852619776532603342846097015787459239768675095923933951408064298426325819120165330359888325950317020907392848794531103420683303188190987257152023113689323549316089254387900950109394540756056237876326845760235067353542656616077279797484679325618817492799144582130075417624718971108517008361661380906071130450891755488839550392770734010666308920584052513187826312780557746785657412865659938413623509769630632500724033210652330541896971949740143882892812956105660485454235311685704345476210486044292175342664616799564551970953886427925009258970294276246639070005920802336525785734853108859699563259968682604107107515819446279270143435381055458268101265219529147586198504705920576760186510985829765207553230324101476961318799620207939962855172173487296880366269594321110280075961255166881933878926465008738261486463547791405625849406487737056878512001086648188123995791612824904765158311556758918680160800868574471472998687865948264030573398054328906581716224948933486596241580989220908374911327486135890177815806143022159423933375054671602765855480220071812203644878200703394488073017532100376886556160506088466397234029137047146093238021621761259238528311890369299097507584312285439342247475230052487943191909547162414147411818464663399585441163755741142754214164581702451361229852565219870229856725600899343709910559471533652875045322909936106428613926623621820824804336554431677481401291728736432583778591206826641546315778785818986698185733561223070473257664082087737384176919292297374014151983450356260240338933915672638342402883817350795410517910521730697215006786044516079875226611791203465210879591579580233799796099084190673049098469977068660607701974647937501419804835664179282343978895191049241201743750585004278362817990335898597240996475380722619435558039698647048254481426287187834437382469474223392482227292758491710094313969096019589960100131791143953436007411415245917691350929856277363614140167306172600554347676952725243562692582191817724378547830710782686987559188376973903512634760965582355316337694997912107846645261947606706122428463239335514658342268758707228230839613940076195964802876819633052274993216661392201846160793587147753279309074656914028447223952049647537942612893146679861557070677328223391141315420465094473016543796459979474497276810120209814220224269681289986044925834186604918011229337198656813154827247643205146269689460554554472645282055314471734507149199240483132829889033892159093416529111154261730629924686533438409397910122740553264877862368769981519397968708415114662295691227066284193150440313932523843147564165146770873248277558696508655056250312153275094847283295251450202238933394280480857458000540336228016512662439197344122839622768933254270189940941968385922338649787041817778151945584082840451279923148826944456283537629254158411103860099488077467586905171876888667649779433878923714015316952622150065652727590292491834459090209530489354304875719578693575743869849507036269438111688893447978239844351545111720330503526495680221626167968261312350861286873440435113521310754265237671722216694575064007925665736925101386990373006780079975406348012196826372127576195699244467365408969425195560366435418308406944041218155896450776149501330416300927856519415191474780997362436786647923177482007537145712378033246293316347981958066057935106364583116234216200939771632583789788649958800462499269039612803927255292337372934447505733291421161502059475615622520382043882893947315287158006517505063646210508114983821717431593514642988442238315990077991000121536911269798576105542406337390204992832756207306702905420071202654974801304217400289463780564940115728707640745175870256904247204280821759501167493089309657250447145932388385263861263292875461251454841870255374355623137342438585534069653194158441945760216122253210701764989017381400866827656048846307884791785971736412141896530601266213252483237125243094010124197035203732999658176485230932726866765783909588244310781073512510754524609309982126583073779311442117254802535662806475907073327176449724830483512120863212463303388041138791400788773198561376959097947089284534412839518648331893882185893922177927875896932813841983576389765553196456085584613518645832060782002030718364547141708421386774312999691874046660541832886988416105638086304044485086421670228616518450594452096791367679139970907989762686938616331495673332269763696710372936888090416624373399808329629373860180660579116635704967623382218880190260305359003351358683373879941414046313529359678844898604688957417527387014359053548030366819907710579287121828465925074859752924118272400189111284421984948079724628603892538709302749831021333269842383937968570825368298530986163639868399361651936165475385721068100776914920951075769785165262370376749020319615286754478620661600937214133432120397273450334697803055014216121050004596186664460467338832629632388082240928438677302387067650707331077153019917389902279828444829002901580694841418789117462984799850187117003905282261470428517974192567765944196477090737285959872778502943007932322549056671509644822842478251256085305863297825375652909294774559620244682899792627675491431569293376006542679392955790912655422039342078207212317326750268093210951634216662260530345699818634252004195112125792749961240559963903708398144060429752078077635575583459951794193357949526327272705450616382191059469421150484900761658957867188948703031523720085541905763990901886710125911106397285926714703745342501528284636423283009360063481435601589546819366158782361078805723005073832613826158452286135783804674847904127764414566176443031849579919482887090457671504323673748156520763826510510375140595493986021994770199785422887221728501883617424599375102178076230157198667444184873941729322828458008651218871865618009416046443697910643640735511227607620842446912370542663565370141255363182141648258681776456454804085791078739638502713376645844568304330252565630895908144800310862931778094812797510059769001301880267005794608194884597431674468358218327781653522297017404148245200302476286323479596247041709573374293472297577939276919542696570794012718417829580020972674999981255401750082239264271424539131871398019640486288535113629528319365192075360777185272343020891140832371222219489938465681776777151709200379168588386156714845485669122259110065761718338153885823219869343720192609584763948977017610022233046652714535963740835091877926667681940296192058409541282524978917148166521363976338525918272358690282293482196737990657827555997276890398184024873232770725417865131718721901107629078610381091678725130284433091521082692697354040813556750676796849514003426188943616663811277926702011944744319946200565070051552541148755686288970099488081004886266732464427467610978519213813481667297640643950764632063107538930232839427963299576482641312787745038218441326111343126340316860550780484172933687011625392071594677500335772146314364272766153185660382821112991829763159257493750615336858756936829134260422174935307968294479410010083868071511873229366280451971498516826821365684951265153373307942941402568751742446959785707490483809652410034972251352771832860239455188722812400461320087312120001739791212058612604932982649899527236225289740248674078124380485652659292096730670739905621314328352552162119199287956484886979283352876755617218192292379586567385903267661125468972854139699727097799494040892239408927196780617237973459238410113721570885097352742903704121097709536256389850064105459770131094756930007294147365276863307838658772564556288112364014060898398339599127917775543688193124734166432492232800663641923691061111593480234071305880254551765066173171632060940672619413953562723449445721719072126076957829618737551343346272595423673933199039204046914572154933121575166440141324128364879232424909267234284814387566615250143932532059722360040107820549022301527987557075069916229204641753931184290977765337306973513099773413845388718042688941647789485788824850408668859631925201254356045853871963375284477796229143682235104209541915344628752882564484864562254658408950631608981677843342315563649919482407873429331513369387611649305378891179133689466898727787211866074700832223453551361432315393288762579979599247431331484472459466794931621239226345334289676544083824659719881372516456695313783726012399495683390740262099140400461493012270917512755963726513707372992127430930970769992179436416261486783091669588965707157951469828536630282254452668754703016453982721129284100424978131632899436176843686880157904256765525882852736560797413214274154480870547007292822940567900466756298891592488390940494962238452523778140734509367091228538043792244001332632372195359961460979551636534176982806567704184208114390368078606400839467502281516845485363420066463088599058777271111860862017730657411575930951515394289049318322124825630331219955324992812170127632823160225145640330242312427696855919504454963136879059643684152303527053003963067965638283889419068774453744306149853109304272258682118533031017050013500527802767211514717915737498330554821801194643503427378600553991765342727990720653419601182522683002841208280309861210847512903024137390752131957767939320503344502804954791291278228997127320567980562211642050024870656886206033855009411361225471175295729163728193387370197267153628720121809317267306077085582286970754653186847728049244216807882149017360375929515054892875212155520675966984347439836637411230679502084092043527174624385405203882841729950781573390465731271712586618415043142177148574720679143217925368659831319217230730877806724736004327217344114796208646411638521689232730877287202588449067780553258612725708089317609683421622451665863877097611988044112071297628657144902470141052552255333834094771388698429280388120724085281064946054473447712804554966747159473509460757056601716731067029860705757174729824819700233425054341414373645030094481984431823269640524928371382535292992279700439450021250033302069664784498510109986346638056328670709540623922831967862374467913553765879582552301626059534768799978656421407734331014017310163181675973707040307732276710094200578533913851017587905388933381869350440754388474268787872875229881949359922739063733069447826042446026088696219555164002121083436649154625784802871401335197275317577695078924538877490471650694384498967915163814943167030164384566690933349951974965530556532015186679142669254863092237485700109151940858514440472911925244113015735873216620315700558440123909138794503127908821480382113740077232565641151411216416812486623216786775708346788687827845502166110498255839407286970123998784871590044452766315330396460409862397080639195213201523894153234206257663698666994714972751149619290129174551531659556543926756999062916222768292466931564258093327993772244210446369019831677654936126005369111808199274671088090202249204492632728320637997893391841317174660948394657504828266845905799278024709447998528323288596358078696436571405085906984945531479602153201442327005981716783543465407515700933245623460367226901337532459525461043890581821051542660091016069954339647780715354892052350934041734790152770217224351610837899293534234130712780503711371979650393131226284375099564058979317627930419831498931608342964850100231307511257593882562675869751383560099647590501204438238244136453553223785374116457008189078262881316745619370109617816523425045324002906803224400330601608347656689785105552664004389060211087516914530761925039920139516969384090317662634955583866869066975099065276507328941934395812413254878296471901602156115566263272992755298001242855338910996898854055426345376020319801661917209947513075963016519025324097236234650413615691787403000608953840814363891615112493287113434453841709946078275200254734113219715385890153810212683405779615610371239641162327738482288551809936116895012869551828687886102673486329644614003402767466087889293248492206133962180784024119974113669493651033366630126476863102647328313132913102292155635430342123413096295937355929089628864798763670933739246556404010349831635976682532858867322333890768104695925195730272141209413540197106721523398976812128533712035155743544300283282804472719626073614211850660723913663634417896358080051664144549116523934344147963343762938771638815157623143816157511875754749396918751243449942514930534401699311179214162125222959984205581447282861474124652569084138577767898204247939441654482476463266217840206164210301310471430813249370105108820822669890070785349321738764514310718117721092193657798738511648557644109771841865313802506538450485986587133226776365261747475447849383047275242503158097273351359246911232763030927291656431188066387331699855188501046927958800205032806720214510236664371214691685260454506524893114559848471125967517953345902416216186620567283020132287596553460841686329221932583746400182252016736852195655539734186140894171260238604295260265918206369320251606070068170816687901445044394159048124450741308087289733747378520500840398288298739879534589812959573883280257830898489423123958982486073943359349822909971747445359362486910674947164154620696756660827524055319521341983912255596162323635863810414393089756802463242006590783421091789007755178934608089559109656394899616786351147501311389852905368885520366754649717384287999804529828924671285313972959429215503953739481329202062489925558159880122637888221688442693002943586460390660530966538740100245830076981636976145458136435177659484455798862261334088857971065238052677895101637804199892056010272887407855155698138543312068243834515806045203011605419097345929684012946418608999416916849369843973860083294308138552146001794192738194263759253768432574327841938649143386473154229528588463840061782994347853485762470188484455528848938538360265110029150166309551283713480693624238861307994849700394031702908105985785531908147237961441803098035702549829756380734460795717948440951723056052006902443641900178884558132893938270303857604453479650896082492987789341733182332729178914299638433697534790640748073849835068293352846281492416693895550035483567523362087618333648345722650216553127146001915237460206446084609656619835867194261889580323016905724693598689713001288458509272298061040141171640922515582532920657142510037326714563687078039973881128930193309955915488245145364067235507187023974157661457884980460092801666421530962499227263404317847363467647321757992502910244730870321404669395631300398622749073328941562245152081342315291092546583582172762322583566781663781320420440236017885780814640348148503091011761329625677098158876618544568782839510724776158341881113953335313994872863551252781214519342582620448731009918176878142700876282614655964420566841452719217422293529938420375577551918065219043216242096948746042896273775017145018834878287877941860310117354764131912657048040070867202151448821417714879300647460808142395519547905140928831419787067252516346353447033129303897483163656382705810878083017121612786106552442669684116524113792811085142156537508128416834381601053716275456447429012564358514065163787909174268462075678025485596297689557305486020155476376630705194613857474160241886190867221081618208644783928656176556830374428108645635557827099742924453411302918700148804024356451844651961665919823657358094151190935738925540018249685571381243491707943459262154663125794618476894748055245495138599138699130505942470163237233083931323204337074286517039794295766603172916734341753547504016810089470986634139789637189541768198096205152183253724835677048342653323180668381888939919422970919646757905927253313942855117691623573251481338107661687770683546189730858915078791195233231981068142816852988030472279634321771515061300803822826470288607246283564600470160976783051876978989489466204259078613608884403386875392322776176009203168149071029994730606185589762590769826013782316774214023992192966515836475461241468469547942408794643231716326248254659194296965487226406534483894233303922583308855254815316208675726802987240616024122865939028195090533016994307917272551294386127511100300054090664896824003575255416489334388436137555555731325039618245605321456723671809409564789804670669683984063415751129245158672583705199013253766431654006331485774158856586017411499927506334578581888861548964045686716044720864839399103516366263725828382170294571525493718359798113945175142513292697641592582169181706352710605820433698112214564348463430953422363518233665341330184056663733508407144706833157738635119714368288562980500941089799563702661551915828764024711523252865430401474078872901007417512138652156755117227082537744890851796620562506019002899297860107599354514907081398553752196131680744491139831855625408910509512934713161027900203594679880322564123131830797877691065865914628159007433842647506920468639505006715440885538126876027807588357301786152385211507741019045660616046919703065304212814489057827712180836352230187358544333021550083419054559068998371269857430328876204806847640244355531862992783577786678762452209643687283359579931013938891562958323481871391516364085996729983299654423086109463537506265708574148472919607479869785179113672682196202974950776813298260946775191691800773901403631305294090052791481250615078835787472383261426355718563627967377778234264841372524981958386372101448656175013971009420921569140333591032344582375293314962925257450328442925769482351747747921130393237347018377453782416692300463150976177187680070987786051343734408928276526201861932718792122347422633085377982372731078360057638695150743722045565817769199790339945558957015810796542121647873456978395006927510501268228200129761797829540075613606734325308873280459338000328584529865712947736773364759001616608577627091782368690660628659012988393784131128951173493550649988792122792439268781160158155726644607625059731292380644073288137637700715036745634972785748887863809908648542950087527560514600007654086444326396167385378730978220539340367995255655862363433485193152581378057954872917211619188256216223989443902234161167964241517203337137138088183313256692371887483148175926456956573105652330728825917847311036407430259830010739602469565618311736543669530729001507035931496845092854700642997054044184646371440921106812594514313075415837311511335453012422912165291777381486659130834188858310777781707175340440940036739527805785564597506991087209492720712373039529591291438448503247562670808604277626847882124864165585868678311237236424193741946641014750605221899364900245327576524703445246145698670131540977897204728095295478060610449668560353126872376134728089307377414682282186569545782946666017662235363811819401325221931783424995266699859851084878102120388071782038704615942261695242831542008488655244095845639699222612107497728077777142613440511788388159286453200797492474509970355299836405252883898910468880872897393934287983103506621104427080597026274362888476585155014126257409528547212685892516324671254475727034727306123548478328947557887541068835491084288556092387554837731145516740771842784610182211092663646775740955216731097040212288669905862284677159523459917626915614768081373722549104010887523880242913446034697096886662224747282165743471199210695657253079008928620181356473241865078308550610581310767450643552774979784934285721236212473877706457929739679271688155868393900619627468650596182529948280018016866801930467044202728416706916690013627167805147162955424167801914073110584309091474933580210098725737975702476944276468693359990277285799882922876572082495606021123070477664529078390583153258868613441347312290613223083470792548878598795710481756288705867559693582384319629101551728348550513483289217688416744322112622915159581922057807551023917387859480189990260465839336079239022972783995180109271718258797737563393013137829590110167714169708451078095040297033562929139001131795190210987889080182881956979745389819683181623644386036319612759620663658380563590166623659074049453458751741558847799156121738219590647844595129527246327277646307909085237434873927918990790954603201964904110301985811669829996759342691276003102408455203549189147978578481048056931021097213261390858954872458698318014124604447840882324032907957677042054504177884190604074154964491515785765597245771325599116416852827965157797726803250139951474463996677060486719929165068047671340347460846722981230199737991024447789158636552262171831504008336451592138457803149772818166382155253672080534028241304018685282863710482142684152946300452847002759459136341036671750304153059250317349811231072417883467114176666590342964063455144512360243126017415742301421127842443126710874287022768559838546161941801400538905172570597169372390057937478894426247125023426553131498009088430167839666910566809969921694398128184597551262513255183606267603757638006808859109107673661199194586090393230093243970329942543157486294834659880099972278786069267529284249852346964478909133522778083414606375506026288054239368782427132016117026383658174388057829726214754354607939214728865585602050821250135351831445841389963048379501599928990318134135855525226191913348480662997997792114128150355703258710748320033825611129278942716527071111501808496597463645781382019094435577136732169835697292809455281821545265118809230448718715405880093513189036552649194090634085695349804476311374012623103786958297856396117404861124706855713103862068132097808602478032635324144201659208825406080313205288120386888176195147823870392083971170115714003180486575719298498133631221207429440339231887568855837771754242428609685004139966285182119329716966899241995838701899911339717502882329015657833532491154783968525277803401734897332856476181129055106012409441934643979921037787070151831673360380045436440709510261531112467784806688043494502307795098054704343495425082073093771206714722665233992153933705062348134787581064082173255969333696458862590632180264831430101851751936299608582769716422777808501299670025325791131672748938330818461629788654388875681635380900139219946232640984147177578699903845218777532258833315213715438520950969097698701995579277527425591277235551861450332789683750893379967521650028025189424807252843598642252862625843316644130494983068934740394834535511363105743342091516228595578969357908958971106681247707187169381239963292132643247525129852530760898296653719361281681526478434369524361919819703942390884235864246355668122229582564785080135055991678677698362748256248435959720072255304079467808797878827219064707069155319199120653049880438419167429619026034368325162994554980301889665609205225106117123819036141563278508892761901251492185883410659224075638239077806894150354609238783120228561656529105677183788771446347488935620916615935384626729062350391495752659961806912110211725671331051269848796808843244158650917521459513010090676354679881446056770563831093825875128267286846709902838787169794021177678843886464411774152004567478027412644364868795696819865918516601410354250477996437066139163049085363014056606181405011124420064726399934190942749896810746126829186725967527258339716404245326343910004854955761362902250654789961946955443623924416424635923477563407982998077319334566537101027398592285158956649226621865804547766547434101559894592719404537463339925080599707659239882137676324721661395327502571894453452206450715524026723516909959528613359801742602997765454567493265822181905745004338071497580663700422299060244362773242356506219222342308912679173445162305853806884083409270663601152526047282018584052377865280721088425894046000100495821410325931587017471819237014050145532116884201936758295443791800763177413994454664752805341914641927168729933446695253480846233421176232406315071171359930678857518264498321801476987143446628271116221555496813290998335716304577003040650001873168790826396530422308293160365268662165411452154825686981623502714418999066557651096369837303979950734468610951638405444069843751861266038701981346323938217699535127208183311095610071341499879144924034156747082024644769575145088448861113005403837996488503252653748697621298904197415084488374731667072365345960383453468847077083145340419611917454823090792794943827893634019361705979355644902668776821692257457649773471566884378898461983925055039753992202558583165324314509644683238266762579646293405052874468216034565835874716894483553094143030711481650221279416620079027267550676692083798635524641257766187502280528844289335196288401763076828279929778988511511829640875337602593120397417192288017266018192006164325056099282432780430458442742478554849577874941471838312794054564718227160957242027567426648317354029847314034059540774761377571542382383900554798659562745901997813854583935151917977788347952493028625163369705865029541453958430417934405667734851418778528031929131566227734262345904398798219573480726944493079943927513123906345108102104616572967838752097578453427250955746588646428865173712768660518891828065322643269751240374097634827081468502373396055156608249442748624300739462025330204874233118143243976115309096053861024755102113927590107395928014601072048972135391630044695712044899299957782019278373917244751853587789105009618719142184931903422552187620906586934132243307525375962961791799199521286686571075980723537910937540343594464940107490601266413875580393802685976996917836762906755431807950763805445029805228139489227289132823923424931806086727252375264883098008088171784721900353423765283799794164248247964910902307367403522325462588212120832597517177649138583763563529286261497275899780408195463350424170163509536376141850458697832053761554390084071860806862436641295952715238152165420193563493384839127249538797368681906834844176753291643345687862828110916393003104281864223414288085499416425148121995761991434568696019026293550152688506168181711777592986532158284061627170093023855019244459095751863966659742922591687573594704853827757300673099259530875729310080680822929207712142495503691662226537230280350846038301685364387091858182381284107989986491253788393042035862959904890609571924657431809828599359778815330547793091132842557029699360219101326788708491461766492801678587163093870616098459467526429578364550694907465513138707199197158955641863699930881162542140642372878635308123015910804056205929603809136905718072146909028964494329647610157300175238431347609996228124636507027744780714744137922769504758659602323772986494678531910064513529327574361362917999902753178440009228638663521268358182618880610814128462101317556184652879097071783516056323470182320199947493423868052279317459808929556139438317843580733126401921442549252058250397480385237588325685121217950046379281308017048871786737429993594751011054429087522180922709561232687340705927433886921757333087802611404632430940427005034977810958594878459730567708494991964294197035759397193732650591624758864020047856218696805358299597727066114563911780149701728371981240981894101496251783694484907686805545531517662282769837135602520616868489102149570449402772174153339343099525538594442625674231432297973040156661060120169224752622014664054541425354210476622436864252967354028750873525939364595468569589798595081403763954581809022281621227221359053706834498506638185029129837933224776767201964108115683665394101695206926647153809530834773172026358407252678956022323678921038163603485830158092382166938422828586337870511164493786745193146474171258809015265128038550637861561319766601075121016542988350750794726054950920428324234531384077981607668187776667522948499398475044408040356452578115959112020709671650141660251751150523956065949358702265972328279661630821878626279992853845100213131581283191437188993735246560880769433442096797725003580405625944486200673620798246088735026323041313871076379616086645168189690000796457637966214485637502189705002814410934814351723288401493957131805340011009217451168595291098668394897922063228286298828728993959352581451002383039355831543693678359831535448964342913859805597732150281470054130532913649122504007532576264276417298903454707585080612766126357055342117996952579125843358257525311090085031847069699447387781985185286827070994887872908282895546368915116268894003059919491693695654463700002119110527183878325053638313687299997076905369010589479817054550381042722755527772089713210613536586464711672120679743748419326111800305622541413825943928518877490245308144718601319360390419508490042797476718734553279367484223327779408567855001832981608627311477163285935922140970285147721230348405217766518381899755662735197765616586501811531179597028241981787774843067743773355221906913820200364127369720608938880797143357629719431902186346525409076245329705797825776524645116281244475486050111853788186469417497863252879915690352298854141783586231456099193606221343527797222798567766767459544816137976873904666346594837670347724772636447991512618502045820705097558073835223815235195690236766449459618401861556976379111927755097368384748425079435015172396524396009374904018622303008964887245959777872996390012009668993521165851486681651004994089513929102377622547884772908440296900945039626550659639616340938920949069664487884336724576508684599134634837139002174378196566474515354904592551723625702648805843364920309115023552792744278799312653835642381762593056572447198850660808945327635103953122712020640612216499775970060360320042189287593574295868739079083757814265638256494105470740768276863060896867987173114793191392917496266974878179381078093705316949679687733961025332791860572287281662154253405643740329383590721076814621341037707811554032366782677598977250774567271745392298535601046161946202149045017015068676820952633269790921527691055222543845106079121796913591155622523830814359924652659633501249880120085318110087810471083536418928363468045780491498015002618569664035539157143450358212449789299275132759195397022760947014615199924515044706588334621966730448846424325349586765084457534000661388551188281451223409639867183223527184134690850320213261932853250199900280055244204134722110763604302119806190296775479615730322957040366174940753539356623383659335845864729911120290555112502160029859905303491221672891400533856621823318553890641019990592384151202396369362356866815113459924572533027673443025406165177652978695789911472200365650885396463293411291313459031901915654340377310478482785668680076325102405138448140902033792134752143179121721478439045726935461296148845756262818888555289516358194027208865469930206349177573162086377198518996331873844417880432147718544728971402590071291305444385317844115990026850498725904070477038479113236764457620560341499268590130606265365510150382951402239571155320349000924011525830688084169154028780965409287945108228268072396760326882072420566028401374490963248657972437437825927443229335183830060026888925113252394858651339632350423434602074324687347215515676016393144796130633880786458668494692960538628937686746658164161952731685879292256729886900807396278763010066573396445514923247332258532355933572325454467632553993816183022151234925346477793819974029569590037497259549157691761715281509749652825682259352561525855554527113201076007189724351885105058072539867139544418905420607005348323882928918502208202574285134314679259426846634811884244676395944271490812735864881169708534529718276148888929248083164168407161913978080770242182188773433876867557736586506691904781467234215476921123875088026007612848446993346609626326180847188857921960543601798254571751074266520293802541241866534327400612328054953125492236302433786450165907389109918391551633443158865423478385748176116420159234723644902045493244271450794866114167420889863468204530343433053257428877719639201118755870906854421200961485240714894826135303205422625309717238565894999689445856511006712647984152802892033001871023023742865400436879122355494517776001417203225176917665756526109074861561857725183297961467984731832293828279263181997798030445307863383109450435809279498615353329247808583300879320522172371957612029564857030642342293478599099619889644145095336565363097835354802212860538659332366680721296968043924803868961631879008150886579981987050279082886746872871131019464146728447347866421653788264856972085288945894288618091932578835324153576869432200514299484167310179910563965265717872349838019078210472107578783043633675060004840577206128329505954349796653816199308379781588886413377713621264243730929913551092289656778114361654618412661584943136907728871058951433094993780778118180585498079398665860625712806534748067694345118001231851474719564248919638971531611492070365843796296800578653060686943671358373254764699653806933961606811033595964937671982869704774365744331482057912906495795324667165074477220317673912342881928803840767632110025336828815660822739591437950751775302227707071630206363658885014658721333682594391944559092686196108063934128164252569605795501406771839506066530422817067380207625676128233915021618968767931499855494004923869468758557688343261315697579537559523102667559929306379687052999821895572007871172044916155658129282590178287110606214398547324561796662212721090498494317146839710512593930163880489974940635474672633182882608069185288357848045966996946310702085437227431054190141579060020731762330882357617952378090043471304530139204487833219865037887731957399279637843579120383293370634238145086337043003110301465441697916789228082017750128425198880885449477482487766744167636898228558295873729879393965050396065251241361014737393440030571720165381199364113426982077865029012811679417823114945321005876697506588382801672389214029301939694108949280312852361772510359653737829624930183583524176207970129162438992105769648508811185763246582609010402999661765323238209612208237576634109361540487881411713571035930394962757620157297503091988417164387517029206948368180039141335077054712097046042336695937751645141121549765267904829859863265881492263301186100475522608956107681358344962210718578992694146098550809947505241293887120299556829753401380384813576394288159959639715750081865195309973939050943548331070930114685811513535701111893546289456801087118962766141128841965044580943358100103591009635261030924629360325039519106385394268462755417705616487438443076736159553647689171716687904569510960385304771407405810225330157662007017662884922915387134822640234040265051762140968867510908823479348168685867468729942838103171324798323604558687028675020430548615139503326217391432378564069762844125715223031198396289201239018179795046146206377155585012956291991798334271321965417349079564181568189332726482897736694133795049859922848209677631416586227782976495568049899308698036618350354280885614906968134210101919917369263795044188364947478750975703894466225671137301224541485135971341997491766827603795205543404826170007734156033859435047625592368085378855358345053757746115428443294311329277116522887844873876578768257209352381878953305071956938490636034334556908886764923031172206616094042292927228746631225079144158141226681676352957824062380280899203400946395950547724235215731910395190146006640674721886810841511896951482686264696046156515224158813950939727544324914145264814981010006835208238979430724825173001871785114892254930711571417651425902238035201950413096525806785701447557505007546923183262553699562136543147101890055622881756386255916586705293292866509551013698188165178983752590618866140776097098693699816530416305616222536955783977618006006218274027611946045957088333513397636999699113889969531719301082695018042314090644335256796783331095365739684884323045330365363419140572888779594136039786123579096872657805506400410513697558437283289627888356234837261017119989312721322402523085196809939259371684677173841797726205408164483314349319236587409814652871675436355892067678084646298547430700064564108607800379406934203138442641234166777789211869127119584721520077790143702276899586478797154081591996870370875587947013525656801121230965735372120125437486371947980952126881260529635491049577361040366070469405577884115327928996544753152044126065966119472504129120791929600788939871019872850127975014998260144323932025528005448105710605733392814620713425611768137447193795220101340315265361174897600418617128234966517162799263309530984547928793731800163157770171246487281277037318329490407388475951756231824236471172237688823799420396736112151161178097994009834192087917773626420270570493137451394700792191391566728803933428111616403587255634105087672042536189989701015211028137092657081206013914413061551908204350510016689951795766497844185722797471836733464490653542897124184742515323568677649183241944127685997642835029014997134676282131772426016116502433033132996215343260017121350477566673852590396813056686686661207940875993007479792679083626990149396592373338305972895649074311326024066314663535597673910962100455519917473830936517009865450889423012676492362719820223947673453679162289491723556048768106966687895344186300790797644965444512358686057666568020110637501715069988285973714448933408937292156444195413315925334191884871383690369187573010395916016364685613296596921297579750336697595811836733405903223786239124606945960080720869283345557759711477970587348803969889948821067856564807981658261962108502904311210819224399522129308168715299842148760832099146490193747074681007258182428679658829476792946989507672541789912603667625434377213734830302802851833688381110218596564118538180891737485949226556760793773177189757211365332522507368797227634681528271570792918426558968313460604264956468398489354718370528335791070934480385745165794497997782456794485870259021623841985523025538582714337542292675082008174778733279905415832377676777371566949342732987753607288011953870440801701589823333024040095434367439739166156731593544101323099457872751464623007241552729875957682579445891911659677964262119633144714119503384512620424772717544193645403686646306488821691813889176427339067605877633705511164422278082134000984435034025824970333870459999179730462765590564003370631179319876297456969375790850461892980936707484789395672670756854281556293422269470975573651784172934158305972915915189664672073879815579030163653071315833762563393064757075337154363631427478669688673803701281131464776799505702276434253232856510343154644279732532899907517581180046912278120990164539888584377508879019292835053725609880290160158729363806352120780608793899187727224956823127788587409720837376670580016608532502670015063458567059507825556467193590776377447419497549905016544428431487630040697093126140224035429610837719569891201345903621686556385464273017422000116340265316791499245180820784729430194234490502387150392430187334739847966259164579555110296790655753019206342443433051899280807734456313032829840098285476322501416267476179527551003756251207299832320015145036525579755166984373081265899982956952459391539146770286504389652042845345541248431113973189378265256599886196955636932235207393603473638801413552213719648370809585276165510436684868744298139444684724733073676797439523411061311785610039737037316149441375008073100625746068908607594803766945951343666184414148953576747978300241454461422625503731688884787468029898473787565652733399724346908138976329427058217858625995067793737185980083817595734502416599094655737027586812938905392224282252639562030514059355196867609141175793871533042898768416609449710055185121800733478620734746688732250098553371486707002137536318661140619218344220546824600051026253207797457269713893037091994759800177369169469502939398781142170103234067235937080113502071340130849439692379588595194794976417514985650481295877541596376751742033583740653529793632610359514833686906170792796204248504962541970280881757679051398101321046186886545196588158107540691075486170275407036925965619354216879987070337675086737772613798981893752830606024757251592488092209600041925061736567866027828827700647198545735304206718968058599941751451099438727723981543286272922210001951579616522776049974191512788037038342956507545913540821089081839722547535544122707588183165409799697773895148908605597422397889246926358300630424775473439032039320271950702861408989719725385446542233652704924221841649958914046447475623276636189427081101151066097731625560330309000009299494348115760009365329310724345197871781589421112275866008104744883697132349301918643503065734149365131955380837349201676099751098341251829298291357350529165883293481894910498133120208899644878210719156892703364947373751604756649467049130956886505167950680631126202956162618591633240824148886552072122285104889416280449999806567492625720866167374811666454446123332416975195220229086697598387032254053628511663021662965282888735469329154268056431421111615892447732983926604934479901445824234832333819020103070441426379498688163995157093061513421178951494920197398455371643253104161706972142433071600060342722315297729024914447166918490174263608251358494313322732223869235835637995458257821073630255056154315230800590191118961801117302365341151185735088608841433779968008514609574059800469150408791823454792134419162535934730284898157144414552436785290497974673066453718212309920929710932770028932675785965741221807558340844413270349040899998407330561375865264387865129677285404656230420916163651194005707056817029093591150528549000625531103074232934557666789500367072035012864357272640788427119643244783920135032544882638005505080718329112585200254316327676593328767945025494079539101325261828160829037048226724849157885110839999579924292691488519894660476439167414337291118359928559274402477943418085761338383196416277453234693273174363295251254542962319773758656341265106300115179909261670158506931310472603859721412916005477864890832843174555340115492154077711024474496588154592832847114308694883783108688216064183093407994361711015137014615559535997447990563701388470327499698521186572153344676608860690620260078471072868592651958123084523939107009691085489510710501225953319825983653895242511149013302068561102546133355501238628932566585173427303937885291162042995628930015755442931665308094997332276236862557129539006249099357905650321466875019831576697299420981756364390784869009698387918945990370507007354742113934955359909694289962635998856372255252487018501314939444950840314113955998611125525483107060191617746640195308497929737307590716269831899548848862155358039519226872276522280356100390564526388640927265884502006665165932528896815980289548076624923873273383758489668395906256811094318279702426253404509200639337765560173284602051725810724908007861683251074945766052427093047701419895494347380559998217208900056752822327483485254900549725219499229846087854700848536782402083934933912955413394511863798212356516828769977316525472865380230873149432197271909715529410573425185718850903389882390136328578864031984045806983343632571287289141339637839429912332826569465151580325924887749377888946359729707865090676297476842538867149008581278408279695616197559769581279808412293589086830863546806115603313865315217603925265525461365529077003828885363186990359480509145179380156713342568416670771602603903459396712304580642360874691132442558988795216539758119854571525601298339918207895705073715796313492090034427776563345197450048007990377221067968343805677603153240932173579733673252986141200698844676179653552493384380091686051133029529282686849009368788523224991384674466780389177496794884321423813187661584605394468478340229962783379905108654976051166857722622766051228464700882180307054219027392511897304000449912188703039353003147220479051240039856510566985514997700492582947500486896891890983849463104558440002479782816674761869912068245552372759118013163620896463558225165196121594217695705383579295021111535174177449789994775194535843985438727306294376127030850467873817607477907263096724624341776703127069777513926210199500966498572182665497756982926790077194845027967907163140128532019675277492609460957429833357668655296087966816000998798744578004636889106525198102256036770293813033299571650485578540590666274004876547663598771114672625107453764455622268362824690745154413842050966084602549929001038177598225363760099249178435619758747555344112771574494994839667605146892827050148070895620335045903527690616622697428038186630900941633385326518291528554899067265186891288949660981663262839841505449569336816662320146385975948340701889751116817881566456667070791212316455063337092350338809977177225352347155833053494511735166862351105074492330985348361259954127784193334529601526104790133556132677838728287442202702607811836395672251907291826848423173548669502044848569412741231928668107138684981534074072838340572083058048399450502957790224898854190824460459668470554981118063108068032438153979762319412506047699686361938184185894791929606383712348783771634219668532377406870293886340013124840638376150941450332142285672702361735028403664155321357087776669464186383494956332648604345731167838020862801581693197070415212793202661896393283064609010111189148240889444758509454394198292100940424265430302250771020294527239107837433700904389111751319859321570539327234239168362645771318575997855664380688121295397394904835531888107410247564336261971577349039997940552970088596098710390129745771688985136232273955918111317478079291557459468183072463494244439458058645023710750050198257207004249306564344343398767373393913175316456695992217757275654159948182250011848750800482908771852709688809538491814885957754205116751712245170295304910018010815687370826578427320996266216964416608078222420647619292260791883414695726152528343314237125391239403375197289461284069778577818529273927003848556769575025606990050534565413904879921611854306772275645842379950250033889495780793405716017425592279075641578299206477362315142689306178948713225774770514381241114086306185856666551055052733717854525487929115948411543768182833232920615093396792474443218441105311160471169068903027468850063941128724980258804029540465069719523338742405488086509506874799349849017961530822796994948988950003559559351494163045130748379296760141920297576574619669291318441975732732874938356144892957271044540846172941747983889398587131171965831089601966989092813139490260422774657490661808831892446640314014237542720205974414581620302147860713339224046071126736163763894917147127638776949738325934898529784833460076644772640536434829558854481069350241587320097096195433794958392634019286863193030963186336396894182736798344836126119929726617830061119589873643415278805091436451463537229423271627973093037528314686727765629048398664234996783092634377415528665727547227019794326549063380568996456746651391760966201562685533892279889292694883301116077614050116567840452025041310634749906974409318000772395279134796614438890112552494552256924742677237591352864302033863211858507074691184932441934171218193335597766905324470954037862199212603716188147883802704410869993480468232026881741444501171157290900671910323374753272306015848097033554558947442570061189872459696634133220516512310136275519268178543530702250266110642237635753520936273153031888923247450817747650650672945530710528804129189573603306704219006640016277652972096434925539733679545479495619006487353331899449849678856549070824029027223795675326077202310205151746333635653424124503579387167923990312325998412921778222425943898379160761293841178891048317411398394577207041217327491028991935009954529104113210772444926455050671738016467983259844819243769954011654306420496632230188693957690178887163322018682881870614291517947886775349883063133225001787280833460765503526505908311526803483793944394562848453468949049033292388405196047633782848970330401991776061014753728208774028635921706986887033781188227131931159607732462623958731166085373244493800405572949505987120975337958931628730958776111715837048820789022427057218724104045329364235536565120750239926799714478606928211778475945947148569172383394865009989712550746474107482382177687042022006191297440664709454184558375501810356408700629188850319905010482013383213506401724804733748944216687322165700491853396931691701639721938656868062576668475512951289993603383273030416076895180155444544760593875096420449969023862196404388295159081982949935800689849892480595879950924471631851228378523996600530249623000086535698574393960531325124029098480739061982237650679559061466400071132780847502750069322662389046860648025046665246209960631484326493621678851119470962579605586405615537074354857257281109601868943137348989819877192999180307100949402537647003160033401770107335571033220587113384159822707974744082016082324645377352112479085438806092629906193289237065519664309861195308818871778990283905854892462074253468066582471704942958877479223346905652711908894592202573618505794734234862197630587824915443099459577529964543677594995110922490633211316452447824293337092197460919357970591787017071421796120362714071060383277542806424657395191129655781621379364411378246664118091640516544264454086847059017243547458404952984075669508779247912450442349387804158688648976525878107783400122729985588534329614118827551320278898071778970654336784396730909418204401769641611546547127450862432430784677989807730717956721901650180766509992340851291009080929944762046563830555925651798416457147185713973786183447829492694341940471363273134972184187448106528145903414206620471063290557155254279755052999656268507543832343592181394804305597566574434142846901188513293666441751717939667417502636345129316458485635269173917533249811417329596571768934311618631962915129090670112860193018442956017169534335952552349718674341565552542389787570846356914802287676487497930135038116423380921671809455456387314443547535781362557243327414439354826326714369146203516876456216369222092901758511837592434241323998185184003469310769210449392603495274267030706955997865974960438046020361725190351082103941279230219397159540812348611134534254994200658526011528891141420792575707157862003656088604340274599699969069459951516631647635107338605863735357643731627973288281699714384895036105682897819649529439877279150677356215408315296025734913623106899016640908258661525348312558460007213702123093585527730168081794564821818404278168088333741736546729367570244890232315663865477485788387475930504574049196862793723736626325887819089148546319543062005807222917685757288883583999197392908685218942772413811377289150611034972975274726721961936381824423455094540941827898768279855371461077544501150400783938789160427122603109341482551603500969886136317986530480898288160196454714785168950290699399601119585297481861099913571876852498391230188708587717762886139416714827290737300705519089088076610793703000121130447100278007682309510582600223778577679164392512316999567062742532016307693270622691345553926261798754707886372751850263800379644678956430170563079912420117161804124047796968773614916140481826776945545184965786568254992163811555874723041665203603064943798482148610243512346051627570890458577969420596578492056043681965051307316143368564754922663501176214747980955470310916536600904049708796479613577279985922846804838745506799657156344172345942196835012600343438677714053525990283243004799059017483556936679282894424352212129554148283572876130214770625098462178515647549502163633673018583739102620924829978258977034309801831509827826054618961317592875230265830027060587472592559263265710928421608830110481715791003204365145115770891633200526237998028620105068167809727509512369923062975708022711594816499380775082398919216677392581136850708869488846759596171455415700508122639802570788889678117009240995468459696552994244997745101426281294782889082571145807873711707443274813824865702659776940085619756450916837606866908603477086403779384849692724292664579449191837605998234623730661449187790132446723505991477920343296432356760046494642811830264446867360496444673808416757510213878700775256834224167533220799974324051489204066112741504163919807782086432684427432067344342494099078185820595814607707137933668202156553823615369075903818373187627159065704605321977648003681090428096952220981388430051142357503320614676662068952112515874267924871474834814512837919885264167420328692724237647069843080417220572819981871786095596094318448318803568928269502335232357603703200317722141304227438109792943787692852089542036563878849553386583391616096341598201005608145401734090950387356458995767540112265641215970209555168861166540894276267869489138247906601256906609556336212220387653147132936400745494368604002118181500465048309141755408360597128034913353896315706018242916587101506767325157470693490178524184188208560770605098220165199032325072981013817538321726563555886473276390699246701271610693527685925696045992175426766641705155463308855885176885662893014673384737239717276497267393619534425264859863557324681133655850910640374988965867797752703257447343062484137244602817311975723505269497733597282858780347472292758733990063897317491380001765036795245145897766825461391001262435903956852687927703183531815476441252328573214536655659467355446354730727518499445911867044777282754252038153700504436386562004378640613062466477362603888789912055037648259623716494698859958213517903485951651465127772486829191361036668274703796783949057112866907868008043496012444616277570581044694386128019788361550749446317807531038901648841639343237008275330470533692887780146596410357398616624001699423226523325390313444847228690801592501019689872816446906459718864474452345285802818277957803220124787051620163165830123477267922884193296371104762503311231158380355792543343018852624118074070245597123435140950670250855070605764263939902859570811620676497214558877624027066044677335236506451991003632251421747437049230663393697671090398127047629656770747422061968664558135638142689739469633965122393127177790206837310918307402615066781476026163785193220300865916410434722053437670583688860224967285732590706365724891858059639704432318166926692949798394027661236852674289654884498857400168081090001397319575656583817809933950933191459741406268221991883731431732300698239869380102033620913790942428910779657683658684368002032875096943720761996953711057759169409724571724332980337005271765047671249261170698471884834412964738290892045942943625821065556411812263874031728517392315366034949711236683340902583378340566510681809191413472249488237929223345587932169548007216252210306990130635097497604286898794581309504199114067192959986307708134531537005932833787427910371721052908991499045081107122583335461848523233234232784159620794773396999117208373678643615578515854403699401311934760564136055560204932354054429549767420037176339618278523622200431137611306426601053651161906765459040184390907136682846348228733198167685011748727266654604538741824095188038929248771174473039854427955670368467056684666481030488715301533063703120063874571247557951779649920023719248580188645529173661173948080017779740524811539809878968567484570850191967486932974614123454413617866556575385755643087252859290753988934451145640360547265225344715440787860422619207676089702444806082263385165402225229517761190666623558077208836966291883826622125583495660197522854723772626851280743657169617241494024762992405386524210882793874946232407293424487394666467511251084817723780459070060275724997019792275001430399110627431089560865126465583386528263248526559049289773751648852737485003288794617399513510016808756824722623355373642207912599065800295127329001011830993893242629487477801752771001526237103435397743481057495284394504083447825790960951611038108274784793129448377395262551114210950179187120773277861101252087754134301642600181321393143846230445087044909412868393562717361314671435105803933515315543342171386006804492205704786201252316794237334915395098408132783852792460261203904675867961614166582547385240640548994494005632792158775536674125046009066013322110569814572335798434610759703529001081447304035934053790111835940400292356390009767024418115182675498619978517133943964970165274004708641760051253850699755537629074164181732420887759767726906437577336743706184785625475404381522281820987264531494707773267575037477199721400572010532604313205304436682552229616313094759888284440575004850030626153247380017538226645952337370411908490129606800255564986885129249063834177002305908369198353920215202593637599539992346327999445031866740069611076886708856727048403310653638832733996774163642684770328905056859983901214812926383116312449384402690992551000540221770940906679010665170535639625745586997655860981323075056696627644016778145884423304617104302756182035746174141685715243445448534136975579531023757225968534146254356246441448662425101729239668157130288150629926110004245084241359554895270219281783793125295194247281628091560587014650333237431672728604456410378821872279717257461719642857459468545275405598657554222201651759677381356103243248402352965979510045604807952410411150916906542858281322577259102478386677719690666514932470785560633976511484302515647501697968487022200344921027562703307195797947481483264832893703956754190208990301692959421832269281904127392435427764752860116637277726810002492346488287682667025282196978427946987864434631220104073902821124728599924358936163086083279665331633881177852774394693636928944409842540570300902053325248301360971802284861368003183746761760334454272619559225569230352573927090622751831345465926628644960341912441027166700277345864877916798122697130158450973255614490155673530631816393649217506003923754809015177639629536349063017663160199196999360659969164637313435724209378693894764828036243686586286737261363151155052994898635097465760257739286376898458500646828944086889464628720236814781444450335421703980896773541782873469727321126449718805873975841833033398411825976411219036943695592014408637094808632278877188608743997820045504523571990343556091825469939239084604036876511297047557402516805245943922327962300134483350549901628006221709337649427986628594693783941059289761574882285581319372633310379407076189679630402316843755294607270254213079570479117422169156145780546100114966657797329734228118005146606871034340276765905433144429575894875305336374393779542027631984177378406540861140439531199924222220560571531222696523161318857214727117620091908225185382755817702971418737019338825198315284636458668046558345907425178535312410128740992835879907058083561236936644982974833478968582252358883435115304738706716436764616391659331862996710867513208754252570649837925060367242559593995204969466556980656911767332205616814707303611476245706080285682252508539174464615361430426906083271340411290839394677957816560502847482331588332767376380983738056718483151516595742140323645647667100465499178571016678100071226731837635470151167056732808549901872491270584663050419923302469683574318849697375187731546522666510561919336119358599288373654617840452331665806208901253800054077407977660189348335843211552769545514734514937438829642208658200338897129930890647826649169281043022460775468201605313983769549152799466310263942353605462966190767300636742830550315909831587116484527264968676681076607803530190042058719075820489694975183676933378970456812183852592194642648240160538929737729272464467043660525110972272185819440618647037498745893525713104228764753903716713860794605825120242539765295033737404157951295604536274065748380001585378100003785307816541669869086051894242872833123904302372218313786315345752749181727591111062245519886934691732558133935369649167551580548117974288696573830110528169355367803510777940286252577540833543777118351883250887802772081738129369464561166169431298842303866583719263123965668440278990933634499282608475747382546074642818282317722491783385539134666250821283144573660151425452258706767201448115875591708040534978221832518479128907971649624444409464642112764525007212483806513111378105980420683666571248908925921732531695917639305055322238619854141234690107360369525266589848428834632603963180484767410472734410661920433889840089257866101097953536095704396360395671334533399184617764779979649105864196633843089645338764853546501766927797152893798414443187926048500003769703838373818291740450588773708227770718420917115001935874380047417521417920328303755494658350555168532234743510255323661464315081980934129910706844979525492668133819479578705982381199647608729347494323657138280064932420411581995587907702504417407153845182548600433950361608701624046624766472475685761818207272707512610822942613774973592424018497668460523804816732922919395652713579298332509511725036400655364737716302839008266538726999865536793597688464338437416006618518206168117106147718723483757136278534686558708150535761967899501434917961956081556861190116189467079623078645789649451859854007170472930017119489836921730237630194760568460927581422498739351092496416706386157203146244671334692168110124292887975987285370521848031631319467412835250091518142056353052946279111498999283471999619703795526413569367075774106159493107938482055149071630017284977776960730703665165463447134019284701184254697512958016877946367457771207815387568298790850974644071855171868302254920213750318380374005700577159625923452936371126305712027862753411121925835921997940607040532431521087613900569941323920589043730849852784571134615865688914356932972073271935894668141102314632252662857797510945505459266461696129768315739658598063524677749124912275322978207045568511143466269951547929738602333229098880108950184857413180574113607998793132254629042334033433243351091095513323122943354340561271427051940113828012425611254829186437623024464253480037281222556837173407411413584456044799624146938339989690577240580480200187065602514778820687232862867949176429041257475323258113020393169565100001224507889368681730018011932864230772195018944874048989020030778819907012575054707763492782428877089478359214740932187184841619306105361484576901940589021628942886621386447584117575806488240391009945789705983491611060891800192591343559234250521381238557170126906641348357201534072248830491288748136558801039826737671375250403693997867778488091703211596886959959564785117900932137362764602943501406592485210352490260807348087934337463723158600783201698952806539425840892664779731087320212730556836769851432731823321475924570115790351060133144564592927159027352939373533699502735641835054057424403611161747809804444232795733892345615897716322410731072644233357814544880405879904550045122097449378775762338111864706968306532608215047467403513980583141894286064012974198313423227345772115493425497548642227314927568564631726184178856733254361544647594588058462672489824404322086152876550212990902440463228944697231956278465753823440858747277340443745653736348064285038478905780268867336489094595595906779608158134155861982568417894537149612248606738294203318364016155651683851641466776849609177365296766290563099051869949006216374087164553385004683198601156620767141403809695889454136729523395335918239151597665742010354831715473765936964298753464849190560924615801407129517683590303477735046712477017583135821496874691588748470041572680632054071013861835180797979847299754975445575802920232446991290680558765635751470847113043199674530716098861447761915453982450933872618762137721215949448536553586161670723021840588704260990991247841381382094207579414199718546024245405362581263136439523920842632600929061068962766600254902267626562051625776996664829345631364822591357347267468661233986188909509779283427230935326020318834008431238850413649173663884621427406794371373155960466421134560015705244955547393661079355604781218375704404597772267638678114143950367326485158181030864995158088389888603996610847242805926011722264277475985527025474235710697866883183712768658880500112025887405451626948467500088235387143194847357403896987748923281603021167050084440311153991934947981676097177529811941027286211767173439351360155318239221259932592194226390521137661384069458104377768473069290611917920871888440940397092819418864406502031688114028032815493044403669518071043631562456404176772003149232929057941235040830601405420480979752816060600114857978109496491128330101884490946955294931511586188055842647837670180028974969744644012403507825987913962142138641985627334422277332491972763608689671937900595236534520216835797552612952146579878410482434607603545602990406345893170434711886248441568637713783325827289267940154796560479120052563084454965052082921724083871601469388537700645107770243527597505866196345383274570116300579766942930307149931266392553661814105414953330060866588274667379064153247447178888621432200678781251847248239064909520745614810166792941375658393226411990505228947957969099026839098179986927592512034118663720811647317873909392148941420302508894289495266750772794272066761735022105752492208176437662644639423069824404104083028428620819117681852878981915406592089660050276984445214584055421586567406506247567667141568665176077852246910913774095111189248282324560280751622414824514300119947227571363559047057228470069470704611351138033160089691194532333473247493555223548276545014711382464544383469760576927550332026800683024187617169435058554050417049429162129361558757270439478651087976592944493862049877933412839082566871637524599951193506520112576897808294309429574395132074872135121252855779626875500137274143297432317324486886898504808006543135531509329905642517807926758513510802418822480373613763317202689552895088593643008113548035473165429637099501985090981986175264135852240242191391068333124538132192559886721045313104153401222099768431735870031928952646008161159148668434661313407690307604034185728772895827080716660368395310675813095219256004201513849950060159838982653217810520112255422187373146391019808764394918638817047737238870613966521471822791281639268462180186817843879329834133286719278745005444679654261995439856566831413048535059093911619953922392119519903964618353314536922597167112081652719568678009683756707692995688633556756894416452684079291286923274537186315631035097414993833377366303778701462043430491687018060790115677254158887201421486453640806116590056941117399891204250106337396643343987736776809484192039993942394291769762409800803078413498416025902317860361441104294194445117967798964055365169716955182056924084352808699938049136697136827624783968941888557602202189824161052895823765535475649384790982888697387839515194350259147553923294408798977796366022295574220977860718750733585901124386210371725951312603404797694009794887991188798538383780536445540510885706819128989715156330429737004225983351304507067378309701092662384706539811252132095440111027093167331393485778183658835403953170888324900469044198986857649228668559684193126914727112727381732427715514373025074330593769380927046604536206523116116258637189148571766349383815325412097231765785796479619952162790314701471261984223210582982165777710518306026618367399628769384444091748759761517831016808154331823229620860234081210105680690752906093548033507677559551852190788158830650411650011870794889858815868007529304421586658273106979184788130051142389725118760612527764524329638153868349518901379760153065547663952685327672819127465709570892549301750647622717134114831256449934492612599809204451208458695219828794838790276495533142424430570030389215201240189912462122103206845669420335056272612338467835676235982603681228886041831518259715791695538014639438200118428642694071549263244350784475376154344568652931533972938195096887237943001704063129467542525779307219640135658390116699054852387168610878966341438894355684223312775131300493054764959968085637739958544276716451949085588801335597038219070015578356033359679399617854539513216870800278514487977732795952175540716691255893432545474013416043191529534492984924196475112240318310848126642439911525777539786816552675014191861624447755004360706492668095031141425468946004647469355067908917576219343403758127227355327453815570721906985932806386815968291297918300073278854552629700529717120542445275297094251928802888042107155230116391491357173373370771278610137590519040827053978652827750129072164312551344649157950430040225315807501561041739239899365016590051483068290537165947542840939577219997620280031100921392966316177336481330408078314183641683063107376075705716122181446833234011610096101536727114831430800447632921175741724344090795279503912091278001271797419787939653453163288579146030375080013388535213442621143410743035121670718024079259725753719740559734931682263052882766923025895076454719090819639060481580700992323434051913620987000117398454819479384111684654318494537173352668822657082398027845370478881002012411896104983367969957202590599591441899663727462457126398730630833743924608321900564110747572806231547665780390649929914676966071180423720994655490385828435373602485454895916605683552829634741301243349844139283798577948345701311773665103196659653088885641329692678006590463380129688222582023264597009048190483756085709085810377293896801013081805534557067511830666160086305990063969795624284489192812444611493128470795211342458789675273002852171529742819075408827939290436166647863507659048328691926343110608079139480884566018771632133834490075786676104265337311047659163615349032370483750671351163694052151409814341640510381734846628237811618723685582263183771631189337625620491972356697247309321871569776013935651931115589802356563349413946700428276511092720445429945356522963626594239477196639819254665346558855398595569015371173319584980042272744494960331083671348637692269149030943634767702813123059094311865911748620403379730740938135509316824512120651545691921552906923946761567372277070431203210487191984170974421940832737881012203812727880050761800215507927578234303000917788295140317774780376460472489567936586207716370614775082324817558146128874777458396287636405099580628411653766880884899206333325259337299900848796739462197629727992843711191110317275513880564488611234855664735976566718815034708717015018945556137948315978851555400771135806901561306025942936038488869589268645798710009602386785276772172210053342775355351449511759083441735613331995830281160590146700981533482999161300620967161843014939014536570909374029533355584963738757368483232085994060285291711737682934248725161668024745466593443705887347130598807184231741180646623892821744510874739180441398023196256357236721508491773704694623955513381910390869309474455705055931527884040905856738199245979216773433102750997666735548977407461086245049033802511284537987908659560718855752775850862435390297272039015095579265454077001049896304432840654142641605870616564180596675989461113712737276173064205361883098273222474903233608328638668282193257601330079809725490266453660413142488833898569524114139028588958818950198897715872110059464549280988554124808686397934421179058384784196481815089126706219051311917416033651114380782354216089786713056323600903049503286233492331496416710047159035567420613026820822357753428142597818378791650832599048899014772780022869600223808207110125681037176652998221272973654155536158171938943806968243587820257030134028973681567507620257976536729165837291412781719787730448289591807050247887658502760639513564195186041559088769469990228414928332008158331764772845681329666630033722838969962491582822487099838589984964184472600341394938158535700285426447895041706682369375249909302025434545110477300645324505932447782144808936389717016544950623545764802645625914896018541009407028113660615959625857409074322914818610839508609002789410969133044975725291831904388608348716614006941290877982794993810482322188601195559324416129790480756993866031771743936971206572689225216791176070356415005598304622504299517506135477991464736016839621995870684538122198602587996940607838535709886761509497830424032711998109464085769696378331528119729950940321490644210316301640931233458001795149178666600735967217315471245277193626974120561390541755284204707374172600732281701615465204566635634318788889779683017673142779194670871718311825582867720775608004460432258525462854667357995150233881287744002336929779178803700667594746119732376360349541743208404550154785926987977506521263385800745697743909116605548664232625487895592791799341080656368676841881587786447891734935464724321069972998980021208919608131297562093302089365200775081133179761083192833848852138098921215004713209474373476459368574962441661394477243025503388480700509195357497763149478543447780006136845952823691677652721019780268414982119084312478034453189810252316673248422177820072084054643468995419739106316910208714887585560500963639283566462677299814895399016051792006549089121047745518017459425096422177475457304393649339257394965421069145733119502460364185316125248226267514468691954670122745647199954066813442003476637995532442719037070912864473246877756076287065012831587082410311144492898826249807354692324480904035145213318959266557081626369111254156618111734977116066464844636181000246725575183301617851443979680969086179740559655531291964753730012451245407756134778344835625589408533705584799414662055859640527082898844790345777743536969820170277188984366174012191386357856166755856156748230619229728482337238636958560959735326694370288701677042033779921246963981396180534494661874079346644915795256981946668553901508100129748833923817034699204848764460086905797983671341587263017316762845544320271819511387643488778343493838433149805677193071136988973947173548040852211912542690600908529018111940860977822667947709982410675559415483612730067514587670293594266781903837732196978857522011842095124517790109015210465398954444595623453949489840082832497859900797015530420930991770577950001208390944379489904529130233374615837664649877797201910658207866526671276406165214381822559512890901282494317263012798065374610705015129415110241106295291752009059635040987447616811209834503983324577906174123540645549535037970499715094849121528136773532691673882979919758531581059857062911527463697476355870679652982080077255878134871094682204163037784515129696390696724572834058010585090673315380655902584612666276812468646672585072138247914008679289240231595646200254172801477710693643814550456913958897134517755394051006681472020284375834488208972244120748486017449689588691915559901269572641903004815532699759877729183068931499508715355954963422242875138089730996768970444855329570450305671019919333858747369575624624915713330087424178751067072170390655823530102648334538157366824656531352928738468735845601375745922536000263574013819534632111454338239387148210447065199615097754432292158746022489502050027744662362216749250055695354279403022408401668652192250408961273815978870591285791820972395698981979961450531853774854837863882182353839676561056328810800712969529543279871286171861645866048877094998239568093114544953218658696034797972375932860890287389301449585016018957359656201336160763366449807386516612987526269497856454103413034979638807958614328596131858555244918284250802506118927440823400992880218548828155352816866161607027105104330585976090637781829253979040979352668442718220425179395590489847032588540316582790846094395568841751662970834258178499123566854899174329056933449227604360270546294162628171304742461896114269898292422316295205277072968030872702915898540216283693709274596534976136917914930028324910527154525487386010517384802985613703881162128517055310772965275828052673453102942107447150622999721890368680631886837481750737146216472266311051305987982098676664695962720702167025812005423710652095971727256433561224661380939201120617208176805532785943928696714033883905458708320288374980198398644826181158443071645971543397377204382405858571341336908548293961046648237442631299846292099376402846944552742588399076024622431998107485930399755504152564961431669448116224719684674651871906551216816621358462323868008823205078288196809129781659934184499735258171317550485297856216712333000929335573443055316946770723614618317936528825466830841562619070722386377223896127499311279916641175715950938415188547994019587916346836908497960066096591596844612371150649738666431453728358429322032447919720458737856864963893899296800377170390689943674261941750856186822296944603815440683572258230873461977115594997117725283699081351768530304396125979755332364684793110605560378936714739425535513653723276551496744580649434136659991523114855479199264415554073892451639289834858536635036842492298562670901700116828458016210371706447370166446829184190979896761789491345782143630641266297962198719007504906307344375302803846477861892465411889461649356984580889541619935871763634355382020339997592890687868433595510411520990802232450714571622867978675877958349355996800396499404169498925296364464945338947624432759626266356967717369131151062649123325183536182514959491278293022054924548886323753354532448260657576950380905133963436348323166900164560968031917399021427591681320509772769371461783812167087238446659201778691345590681904490587290573766186528017605398308583183299314035041835005057833102846739748287221077140075629297544068049379783938110470220977314800721449330027200295431371269940877460082342884459611812888225775215712540610798180782297417021150100823383455964173405086939632601887709749692540840976319181497195103374468105060724158474359320512213923510343515748464077904210894286456922117681532151667009430633057823180969967576648652687307206982854303283636856785033844938949175787696999126212670362511684649488926567024513867388478055122307221479442068394447813495752180543372664731529756236609964088980037269197273359563290631689074238576696367802357636649275529168743748079445281354994036823782942786583172532841936529343914173616642309769818281870406253696513359627489597325680275309202968609497310104457516552975549976208535563774770467213517161427478602547222613327079204673022518953905122104635611964827174575318251012140877260851580265520998946945615696553817464175033321480280466357695781078585713522535311633255984325648095965770368144558678686162325458855405291744044660827439050807746157353178819615505705233552635001495313954905752782076509732658936268919472668494268253103917926096673884772315024715782661305670786222219050606100962791669991917938860194946367115894876315088350273897608685821610522426344720881269715885162317172139493344572224441086071555660210031477379108592225044513777424718388552131638653507583116093624262187503681263910885302166486930503243637151102504149139610935132826476273306819968850476080320000124015872196279951880482221948265952030205904833729040591818465519064495364643364352300202487517782584419143219334965581067289509103035552360910987220778791552520679457393048217815031539494694986607577739893568713314424222243192950870138467380336410685811313459524567405272520806222442793836057984486736971346829421267677994045211671576869498285828609712450284753300732329155621247614608306834472836129376410278029898185556104218240460169987718162008672748899234525746054102707404390750009545693212709034567745481673144767222299902234751946643738755755340342904178651275389562767628765936526764516050271517029142210593537856932957314868171650788425721860210034735138069213473024833937181842483497805146679278428239673716716502313619043505246921965733698771878409255356836024955753569813330075433330476240729582696426887836450334347657584505805187481550322692146234427651306802176312851645156310992762737665638948157115523986185389799089465732218764607861366507111841010877609174690078186239038480904156683966383528241562485464133828731955002235819624231215661057559661810478838321303514020963620580080116559979601820077598840621402821839361993405938395680161770962413608738099915964497594949370684225828365653155501304834366912032025825857299526818704405697960968948703250332844887594258715369177091373654730268386231905434017127561183689336388552332761166291031057916395719242390963910455646837570364565897283030155250479777733911296220900704241680955353011593057293602483890738254185745137326562354876766939243165022363724422857008621146171960348099446539357813032102408485383593619729635216403851589219644765172699107772790788752342655509650423772346564187529049752256506174973495653246743410628801630840400724814005004738892221339284327038847875949365424010068974638949853460124484477122607834650961648612333494487378970878756162523657501837061900672387741558731164327339082552589007048889572302748862379260126072399058842132040806734146939975859182375799107442452841614826935752820919154606775265576512705160468535876177451461188165922030591082139157038284688834976942702951249253862430138541294448111748297352696360741085090870083476901131672925245661038216895072672784423890915457287409742033164834811006753021807188720016218454326240778180333988836304132746130805242797505971975639004078809832628485799985200900623984465494311123071742230925522096650262487975232870631135189201830928572631179196013305743620269265998275168142265368355853005167616095379717224917079377286403397129515383275590781619871195260436314393863424467009803353580521757324665148472999805992867282462252088040229600393158594291625603784704942595401233461943375564473792965918426398505251880301233754034428178902745415279639557113444620664858663234754156173424599343870244416801184681240433405067995209241063886939801734239285803548810003686688034019337175483707259688330271458885704346909094918256257590739965045333597191947276810304716073259665369480186177469757932945583029209059978964931078864147353685782808271752477218800784211537417396504990392064222572145987826542000119997775628569919419273922691089319949634191650835275770479390597777948680516084606932348915769482396204704534029442261771100005745945941725536894396222321964997825243363466810875125208437022110427765515763690914889418463608518909702771949611468954059431370406948295131269656530893575254122460240629721895676823783200676850410265616079976533889554023372560424623080945432419593977394453434941974725389721042886143027169632756675973636595126315664990412955825908566879917980689509516991050351819490669486031413480955672471537189347218992532502171465639293017646820417420110734356565847586920288879426866805434540254505881897857983991086699372910495447847235336664342110019320368948160169810509296884656261062683081274201664866502601189076291879262767978098919909007714502815306363117419910506381049238969609437347874487901256200030662001124374597037831038528336991528693946052792752938505820541311295537095454710248715724931730060243227207360041858968882748490408269259828211872038543692514895067805247095414204727172072987467584104509025194646305125636130803986331692678800854683583665165373534253254411076700317460239942749585743795958465841669848758323138005066558544860592125238483619808442229933385381272695085896866263086066919555565645733611563152416240111108198053200297416667767884817805444366799427831072632108333033637443813327621871455977529903021377435465820683290075347628479630335348723572625153852007954972395501741178483300886879768316971097930166721603865598598811145577260176155403901947439134997455018329218303829951033848439165401990977470055430631818420624962672986080421581886645250869853433415010246799963747768188150398565184734305472224239566820737491159680463811453201924446914983639807608661728471566415829752516537626704901952221609886336800032932718421856252807301132467641923348537594456759962420704470524178443129535717294846262156596110002559642914391716438449418041978462975451241317639451730818390681694049679397052435160580046444363471799260914017797751889390423768253073387045018136532767188800785072292501706312348933994337322365965771074235790710951372184948717805952477410462780228208020805474118600121326504622324657180951015092667966606153224353940746568277375519964483130808439219508769434471666123390135024055219864824867324094669779954124191180259199760872362389296704833904386334780401886998254237271791225423307549539791137909865123331654804252309538800319075990181786356275286767422504282285646724431156408937274949691750393343097537672243060811725739630170184690056012648850149998164057820630723379223356379173757530285433447068529983313889326555617680319964563978369011544984213523285498149469982952196192310405793647958931806450739455251725120629077095268295831508111139625822920196909042508304532381307372817040901543182543622847629817474329944256772591542975649061388926870705691521010305233532418297886411492207364966284234736326553836910155658460420290965208037450552458501415536209919322857411351721046663895359590534646684829662843319110820158381464409297245644192405081782154550158829392857211129599676375137340731033378020400338373082490765358716022518027013093107985677914049875278511391862737728497076519115412908236416417377791457396667477920496053869423512463380398131278551346775492929322382572949640921411229789843708843283031994447950611311747065411854581356279559074297733148870309619028882132996283223294102180181058122066711354035260492150427062651418713728174539849844712979135554557946698494619226650312289338484450863986663681202489310817453656197161816608977409749454157557141498599106723981126088447799605937794623852945857643922895663138324377210364150328720465673133635030912545445102370497446820002475028883964185581801038215882833244982759018899380456926775030238465860280923482075416503631699035149224895887768138267573220783734255649557305372637655827881708926386037103550520656430297544158717661210230863332422751123975398561884480980555350792592965191866744016365024959227437443296061837908281681383671343480765094582995975210398397659631925603032433017753564544246221572398125317635110738247176736604119967899792926196482421241808486517213418155772886452310436415297595246904292688072785518948180552647326931655316533962472211882603675094359707928090548686825362950281011111224899369451413662507397518354624996491341934339188328448470467987867790734723985346266678534852265992949197351784604426924080977531756841520352143384173031431013257708687679104281055570025942426802578847249695947319860613183236624378104328732235977773541046667404195442900075713731440771745892539443066418380955011368328593126062463681680226540428573189691985222010957472325396676615414331227969260773954587973944625875722645874536809024565756837214968689004751724625655316156871862424345473259039862813855994304963605137312408181652737288044450462221427273549604290382974989023868710272404731677214552040838958411437129257631208404141993309228348451198991805080170196604035494028272995070970011417556426421060739446833069659123756670308557573906704630027685697741313513774344592343995323124707352344708913275765431393040920715519192602042458721336808461527528434033220308298209038114687393197187434316585683472755732821641445622254114187076702358859852129485783515527969183562719158239842800855390514961954460862237239867177097155212240396770609342621167960356447414723221879152479958334065597911133171805048005935308666373305249056492636788946272186226202332093745539106708431857096220897023718350782248285906731660067878954183891778844841899408649452758189531321845784194490623898834486694752762605270933914271574821882309597316668831469362359568794595302336246114499049595092208076463399274050941394826197489897152687719739577137389576730753444778631590399630599557698005694243967557605928665038198753244861350310158953298069426820564607836714997671163400713887849171542516226377389551017136591040632617542019518535087537682938558986055829741454501505352156400913817967619037399616923029366708682253250117537181275938069881224975601464287227516287403961512491390737623262343539034029066635843458031013548627382979613075106133254457188304801271642031501103584235002468611761897979420283334133114662314098638897125215471792958846764653592104552386778206146303603210552915584027543974054599631871110975976071025651714983438802900608762625452937329341158796330395206546333791610566657122296189788334159563223836312135075739710629335499720288744605485641083999277343672494653890897783374331460850777714294884516817054898318010835290788146977757982544672429356871067891377007138984397413072631563923299624361641482384515318571732502353038693095571066356689005466240176703158220649617243383007940960932183770152589050145978280003244296926774890174222885242495989429045359732844304898240765162048189100079702339791839227298867971061007564511906151128078765481609463625695674513460858192997586160067595936261121445223336477648088237428770690341083642023290516694371280989982757833688787813129509802147695862002190222624892049034836909702814124449364469188032052144208182279234152202364285196926260791138422484076083269796407045071455971424849699125524343435019653177951912632070005060286371374115462518532618814852820962631886565768397269143504671641880797161351296123844789598515673094644467447701056191382662879422588955489722333863254859334454716383050343517034770203243613158653819274752402357478611066980820638552775651872865331825563580797505612934509340979339347181349299899253770712471445479640581791751823742710541745857748705471418530757436178744825202345895984302732964438405835535671835943146907348770185644746557297359135299623582427011619648354739730316093144366974559913880880062319639830617606837292207976562808578123746962183902549993253469371039827078490711695562785341552459235032877351734507262460596936485177303688489743656787050539014766206735506026221261271491662141752302856909125504092221575751565614421042433334792859432941351358983649040235919441346280524310006180112032949797586434109447017828022943286612849639348474282991807556823679862047859522455527111846961060097062772705720946521354531955772854530793347633350895811910900599096629124092738392395109647666657398760037931989046139610751557320332043895363661756801289330785270965764894225252484818404435972773908933002996566938462292048472970575010558125671371073579949097518502284887481486266216795370234912275759755162707630652916318951976224695370650173211881631323461796310918677524132953784219264761669245733743049053741528851948004498371505263876004373896199901372657017161159027778324497954869580919524619676657821103295696619538704895695606115973576252229728917782082043577853088166630638634813714962415161946827781129610493840693276051944658942709897881510470418958988863106929605116342710138805524372858860174409999379487925677473585246529568978343049123404750084596631202579933381618362273539019752125998998119901461050179046754522413577328020835990882073276411245981300050030108251420945395763892336432499961109096903354278204854625312885644370830598710864917321030118453370182753263125278777713220150044149583384169925567899088519701357529967506713230091685608527747655365367394736011135947534029766275379169940549254031953204602630252056742225868752206798167952989333117205909002038964036252681805451272162836371811406032466723720490547024704662408951338052032742653864000237727266051149260896919961486596209231226611977363596112912893577366824520964527391633531715729529053175818072038445985227839942863378076365263964828370985216272577201623737541812871168009520867247678216426360013825214838239867305718462207304811149452248103498344866801085471007039675410131608079918697322927628121397000609175875986694694169533751092067296303375705937440814786236071434739026157489593775098172715652954194440660832764481175007753847996877043964631290141862325945835395438135372620184302872117381057999716185669028662828074787756013001765924784605326335961043949447244318280760619519558404088976661720295906136335530096937777716587734350708391993115311712136266085299212261554657936086449350197763030011784047975926832259743461669917050283043932929624939410225860821331116345798058393659808963816872815779913354969742092326744069271051006230242971086485276747906460291590733489861647977848812716615449484457989615587891030298156496524201112765345441657150619961082680570433208736258056148241104454435741707500129969381162755650567758799594462937097250929375861716339645303568344137707685777680912549614348697474583170559222982836727005711933611791840235535271983532200046296611195671509323170746855081534439049641136750808430572120598516975307257699378876511395667581988443633341163021839677412506926224501369734165479106421036760143375726006435458032417052389992718147375786611295339575484374023474007178420950388821621729311861137173871888782309222560447086574277941161659098904254627801079566817066595359723037642660383371577042814089954985387712024604579743966249751280949874619665494048928332017036398530877483019063060406217268179837503260508699109968046371931361726838091511693972232213768378031986971036717413942885761461739422349978088306966827634888670708026326199068418247288596100488966302479903978142070135000640095793268044908769870079999640768852156451966897871056647868581686374943432992232610493859565957985398936169266096267578476092078872975516194146944778365047195528710053173675173233256207144966330809942304458498047817745820283436564287591465669086286403981752541539104877407100026093542363171945041341735468097146878095387729238658985165747422637758816540877448325370571771508280189250708432050976715163000719163799919059202452482470879886962896662416760662515527754356132124554173459814264975689901747831611275062464689200288602721981082897031475557799454711411823454142050857282139036336241267181367324776866232676125051644073342161752535559743608782268706347476330252685109744150709142125748434125272228585940656780101491579087888552411820698775912462741206757184333484949510225005905926849755831578719000152575514663412665288531402544528264686629563023138827840901687992827144176328075398313726301809317225769123247266531016872726077891911558816745380524576988424689388953853685854896624595917889348160025185891742801171126217631005920081532870490091942207937040156538070921513563442033665738369820230718355580811290608546731487329325854271454911517775236593239679873517334198632432399057705250806210633233958842657257766759838491972842723381017310845852383259938450441295201371039176734951435147995319768604492749379668719513676485076947659946817860291878052386883919624953926972271559408238673965221865952471186540922963138654156907134756350280573512975123650973802469780037895441237199193084546238415362916549964452235496574861889909427750384682970467879867337896005952406375930929120901858425629627504113213463789124732624813519009589634031589179468368246701946480560562904663664475008128727073907929685382575583343732396217124048436643447295111411411889484017640195535445277948133940717827134490218604654010980616638236289172898445048288084299687690450059218264771136743530363346695915784805727057653472416770818920220043476534597084314666518677504970892720816317380457665363581352430680447926744735129956255378251070765505143177878311232244893629976081226427057427695967623767762606614129409151905799464615750805458902944042871540504506722200693559854265064290401500362197786582841722960077614319870751452052010449154910327784185914808221531265532533829652774588502048721214573530319878990949259740221231131310147203407450826113751825513961546637123273186462293305084114408515065369921685220991569864970551470664988254623700125810300387831964358159815062513433760584118860071512205161688132568659072204112829119739489835015540875971440736310853369325600475876666873582354541916955406294449143481521207723721280760971658503568554335510252296523208052658291487039201630822263992733442034241036558446782238086899351498075031651992331814995676235862389668664357321937177504566527097597139613761508917444006154252243137592949963601143863979100376071104371475255212541801890035395517033105621526374088215719120165045314626241324123906416174536447970581970773934979035572251936414486153756182890718823435041978267794473746667395676580374019854479218807956837459185778891585433837536857850720142470665011656166736254372087046878998759836025679907168806770381660461441323721092909532018280251996367382639494438796837107232496234146354024984694952645863996021777666719693510865661343478380842193596032534355767917229502952042794166249338299281782753317236445118099783413771588296622542478402394889447060971520292608848300881401714744312305181810352462295026846708001798290069890446780838049101282427237129901599957265444100701053541779986952697547324524930390681127321056404203345897389894519127760233919012727600240949746706716287037979629842737857252422704304213516065468075606914277825839907860582831946697517690310549685243973112501690488557892831955990120745807815442323112499806953029948948423327388900419791360435756524864550422878866886306522336000966792061202351394798687843365915611492348298255737457435220945389358491315874551687264554524569188980330358304141749899030835767213847489884385275147583957208265639131798354726578089999587287730569863225164663846667244792151367221980419625938850267569008154423935361472736321332713816249100841957416913276133952636471124705690160055425339843792646223338045238399139246001745550276385348069425737876303805934081289850887777689817478040089671694136732517061306062006771480235396003085014590030868998315362117412375529232935701051495195675453720928068297309181371203570353895085918891426405168405910764969282577973848929998980195512104502418658324139081877262284458154022978771003256789789211643697810701795763612381146668176233369445179591691789236795295748022893590359436642691142016765707816702135976501029419638714789043939194149005786612996663815635796209712178120308655897623217767924568348965255603036526307232943408417554708442629925133366118230802723574256274779887355220275084757575221526342767295654891612542082714745249529262928085193593513001291422759262163918597594676310928975253341526270542941596784332730946632120789062727460099805383042696541549977031588763298464857814914171574772531307825871491885623913865519565439191843433971772126149635638719619966720878457428623700019599159468644385380281822079308569401428219911333032868746152798970050165699822516834707708338318623922828399383543357513685902624692195746223501979172750275641676241742955315974519312577065582276886046945995871295488722465586235380979514308771351650736411442277186137640947794055285657124203719946643060210848014124936739882313674055695649044241308632983928333070287931954109268350893700908417632781669284393552245152777386906745184532269828532289438739049848346962850865324483221154997356388982435951144181125988538488739417272573770953124245936592107820836301808453709215535003253164938835782303304477544060936621710715500983140011453576678093969624240019862223128449623016052589848337812237136185880787058710235774350189201860346714327965365888086667488672405463242020657030643167847221395753319661723062045387677991557161153579988862656134748197242601005106508640554861582462308885577997908675908403781320624950409249107408586183431912794520112549311286317319080106665138467467913216108473370919853719804177794512751774370819703536286477673438563498261424665733355624025426334809161376191136574759746369897822600995122667350276416323381245762464090180644164682910618270251898010274776599830775544332274202161625214023016609742259755805310940484551943511358357468013223310979936745576643803960574232395531284522063234962125953168026434761200383300538860997756248231900768862379638332590752860934703872301797902616766162380232145221558158824087369052484212671799287687989900204396127697384599534086604408145954488311533453799421190655989028860083353407341525810075012412244533995890422422511220433130371864427490489300667990577377583075817191814051221803675216815940679462609158616139023129148761877166318226730579034564310058305186116688671943940140623110817477622224785092986039060869347492961936849265276784632048641598895328891222690825118653932374224303005600167910654129451702631002100479338474027924820994810581416742544078142750917544965286191331442344988540784614425413858055304256113601343046706449839156246811502069007771881001810759942270539515554235028813469891813819181975934067088485827434559725135996691413281749378901114362566365407736553119723802646882714767245965284480509972884324013208813809007697401498950982641572607007786265089795106483211510889841714775464666983264021790010624903970432110874833448483629500715254489218944280697938178737189883728679562312898031394360476617712564762228840541620130322208141290939091152138449888074442815848202839614289636187254117669991455319627924087320142662584305443679920881534265539353393589667122658743262457560564870371608945623576265459985105080848813978053144608935506827210304838497868436795013040080650217911704607846438722646648703600020544546525744369394077934943896040337443911886874541745400076463274750328903432399959498774559696686007928061142284819033778849555452472281479295203870689990356341187064838096097800045340282407991888256030265771989599529099008480813261808867719462713691090987590484915872882074828643744088080605148327510686043303774891306153440292997932265800498940568193288600889472696296283054605558169294988527040272535137354663360536863257855481810281715338803141315295746632481570638282158508336002161756416623686484721493817883829164444566052889439269453256671147861512213630257688120747185298694490155691506393981096196586358679028180363522531641871598722220704640267290523591209873318050349461967090009995359905868408914798158963480905881628988018485594866197738793271052646519817890191553076878369909889263617586730713161175349386349160973403704290771428452176749775992882317807747151815171163490179906523829173725587600357951797953614488130813141835382504050020222794096883681765922628140910270181479684171737274377022128575166710337547654293266244881552360123314523941187263318291437663245135822619987789600096298566906386668758350586356846963884393201572897644218089421948526086297413193337389283756061041668786234088259859186212487994895768437290650423764476663488488428608718398693930662650414131452099847668461604688285253973404309083726187040065174744445878506200534394999601925148063264943837746720612703848872717450929430786105500408250628626299994906379914145869532967426532142286087740803959434365665065562423974695047587805863401214541926890944662844918389750829742926404302281993504887636483650517298134657464780482804577803879779023886204647249365478124078951726059159421587780342941639024565760480419395775894711507860899496691806949633291611256963414175823028558014186224397070339047352623589385502270604855121898141363875651714137276878733030266440756850716488359080523930733850564755641293703758229457147200061043738580908545689840635030771839034516237084539281581440768285043770685281637534064617390678907714942405027944462913033560802527546135082889914462887136571635215410052280589219253144361673411663181426941268136651769206640276797466590840111296769776206828907919777907435487825660535013450513659324900524639055270828138622000548391397065605505050433211399659193861221668729928921573812850300696148380525185124155852856315922032856923402915456097895709752111276350237093744035960333663541641476754614090088692498173026142781862150915412973561147758303691755252163950966962437919397265768473348284579072441423072485267012919020378042087256712448404513871529161752728795789835796272973229460140640180283455793324121542647895760344864840790846951052750921995256123583636232693350149691621703152524801821932816275684268812849200013520085648858940991840858712659190692216170666086767351772582747972644377567272691717248522463536398390297231751474070990861219073652148145457236286937040620295816486635843513117231438599480535922306695217668277904109248690315264973515227711683818108472945518956528655142931931609064465227806146365798366730933159306483261565861749997906487654485278810568854302985633484112994744853078615945298580866213935300892034454761153034321230040534259398829741148837524371847747274050212884579159558909592668428063369692244025938747619563181824858992260041255648428189248876206721981575655569370525995106431531711385284961365747069979426808785368204363082115060088303279440417526934218646001548311710733084241363117577247487611899051322269055744010988289457891578778346685026473547618684500071564184179023304898916030610491621638824424642724031646073941766727572826037103279993667452412993204713947385849397324355947042173596756464935950956187457040398045212040822136475125059833522638432765007816014459771340977191345655415995246285217631663609629010383695589214418811630431101070609671396737518421629020226545462736259732372858515525254133056117744427686782346118744437774580310519440563649578433964789473287145544713227436613039671479089518764392751671129491115746852053126421536002805079662199208819875117581829190637700514664748784766428815309793761101158539865771191943144839139836723398710974118347932697371090513122131472358148461420381680759172707181331336604989126342006566639575430104652325404249502411683272123486996365692513570180873501321276551204162074488411416788581335110928813294351383685190783671524040025376931340844426142374769706154244184019893951869826730993853474111020649885063841046816812366474576392732324151657694103102023569794530253208854496696572665307328222089288729531227707137361417247563473048740990083651457622756947163117604388423376041278753558284770342774642304799997785723884771369629347164047532747259347170186989204249448706721672710397511436262887403696949473665532668222794696114078558395954731981337379873441680396169683257831495714730976915133057638723526391859043994799094008331245553292228888183577902664223344065196006844129491500947096795715434769061594001878262499646053090045756710461144269001007645055637526495610295291106519134121641497138187534767731351550347763008105504394028061027588636835773845532652555270783812920368578274564217287834303582322845309624438356539343135020458818215761752571815599050600283343447613807058729061256510257084071383784761381042974558159478387449878258740410815733422850221551539451776110608684136744808127960309761786221816451081896665424809290356238864998236490214459675816607997294278810287694593844808782613942672987230407787408769626593947557800713340862529576543523967415663491085840643888252094667722160133304956062573033779436879123544201548615130389356389656621838044915458604043706129971236083012490145531207800210483222512992256236919825763966901297679588588545630551410395663049850667143657002313559614784085252451669596128292561864512837294942515816821548558545976438163428921591052602580612512582610504902632215735841412656805145613551720274505398532644662902776294537665097847791655617410675380829982342976083514668270475854805511546205721470610310441259578309265491772520907852539047533532539799316806863018793645202683661273075081570297589102792054638268057780395950679246594954998004407856097188603806270798593180364358485898276856250370275089505148411273673485421135540264849694370089516164184765696683446294228491655327742188681114130584046167157477775161121490760722211257178363511072513895816109614949881400050709682172091303570913231456510010886826842383607813262276208529709492547160970576501605815334235225687180311944749614521381697341045701905707247844797625768847857148339380413011677787324943368678350197187911040108418847213140642555964361460115359492227140589339372216704470405677810929676592261104723122872880157597463936561010428166876329756742048268749615847435300655054375547059348140153534149468047809203452852929526926971701517212356622331647946398390285265706588893993026412700612848331957109053575657528824956285197014412813813484493087927831189402700172539893348486236688608123940556285812457891043397984258800124508259964786986985892748695193715575151591047558972397713881045518102680102806963660399272656315779451809011075259656056141206284076478792078516926268882236920457745833594719761164863373029995286196301667909246531675944323784345882475240595858622490641929427105522910366601812123696033515052550239750200417429725472614131164118885168848013652864850582844533564385066740390514898648016274938336940795909267422328343276838409643691394597412437261121125600482004641012111872174287866388949931462131752732086702699995711147046469318185197690186755352155100275961723928258259833169047426149116793979092927427204597002732423434669503158613997829905945784474415314277309793562432140490274535839923349477416565173155502778452067579710954506746621857484531539641652416063227407395752950590448866713143995777676090363091203950458174236248298845551563684708318526123934936730346114811493930976116883427821713677771775632639905497898663605473612846205911203919436829451809906109661077038327891873281677481162935631698068603250115263059388585521773911120210798489269702182120768269294677451008850844350332546487422981662928025813836883177948555108611260877261729108184601481950903119978411558769075547226374050312411697013164742446609960882353017851374969480436341020296139702599796019421625650890335627673002331883882915906684004103850173083228738153979552612265799593735381583204046367426065351192454706243687117091970437050275607359004659516653206610748602750389584585899132958937084020276688605785197264587826206632754974591374482832247896409430272386124747399059242225531839734230992979098336476404401242598420186382921124885191155072775062218388411388318218608883906079672887959082969123362926541304170095504878216621008356228336947741444371084212313922798813484542832305981516609310198537353497962348791078140237089350343194141405337659714820760087539479464774227818800871876585418333850335322826871705596493662070890178140835525367889895778923964936225052629422923927439433266726202672418863857701470925209925648621853041900372231923329075279814378510287093217114016927280710722879421875042001762748900648495066819693529240292213462929374032345855849570012961589370338113451489581528269710361748358841726162390455809747061505793407376504018228871176078354641781157069164316530625263120037377218582639113651604250480871820872399850252124797761987490222695704599626805213988307512481104941956417261575016692835321520394345726315297216717216935000076310783322061125033327426640971218304028623680426270987265730106803303571607459550308723947140475489405076155196364890035128506993715273847987983363689915661221601395110707854203012303045734223617091582668357169112624399454409826525232828692842592725151801507891447459963426088828766770371615366675406313487775376447098783566866686890614038189246084197082181456629668339457003717301669839830269294273896788548509060821241069794148851968605461361755318572729144645649918339388035486629032370554496207821863973573918691763065598280060228361686902196517353093606140440153898233240537692657433791006939425108417841278777466030577825508792096663813681081765222151069012043843401609208412260949048664779023846584400555437367329788176332046891467479779332259394949613686569872016474044063631870559764644583222440686282173076792729750928439360783916954739182523294814706813065195840475530683855601683286453442135141997227578452568308608560924347199468803104328945055802732319136528564827012673294428418946063755271061213313127522952813828616598707972315835671870926154563307035399600759278337263540281892737883174916806831750633883602469240924967832269309449087028913460830756429274639677509688918447841320028307919787516769352061421353854737891560478385588986603399165206570824918702610414075718354804184905011496006268158902357115876248794978496184999259626917318919895019442264003088837812941278203550885538897054959120712680620325479999927950810276354699326544486900799760596622238205846251416290697594939083251863895148423950710317046671026384332148114065569029365718417202151331066806640351596061757113512290157979095632349492435093996100921234894943244428595581702608350707910135446886538059415217442985019071682726553372260289215209092046424857255289711523186859355664946559137561732201548329898414628280860020992214318705920978812733473144433961645213117549772982551451620827490237404324265626004364221891198286144869094760743427827222278900012307060610301901622526594129102159509820073675846929443968493180278353322080169531194502743347056211449412669710666916104046944237454824580068360049375137723855350418675963177377335590325339240001840660342261762684384496436676921032173459558557738635649009292831702725622422152087050979131587341269984806086628835522592153139392365157717652096661168172789602615281053099591743971591569040374492659971350716276143539134049209313307755359367087994896187425513959101117629850968299104989639356491581599675582515267192406174420329602447390751281629095001448447573511660827315308071790752663536525041707664034774189171257191197792957285452968479798225492034582464890123113551469920047653779025016430233208986452316282016366147853861752230152656225418367582103464841265787390403130035975678204856910941583015314669103778189133920219830605150205174346833289698974277800771035925633275429835933077893916677009821301465941755110295870512209160965205586583361238184669042896718897576465850541650691267271278817070808118847913387921834115358441327333332651575051711097116418893897389751578039938262565666908366602769414423816293859054485914277091288406722189834432211436090905705806614040404648999147663726989787834475969138248350005674472268032837715605334855494336133214465270563498770491765465651958395330496809699869571272908578037266718383697289800704896383352501227387596157119471820369134371647181653676488538626250011361470899758294407757124867785289078756771049991968360264760334585296967586486091080786523185259775419425243381551505228262496559137412331724556160332958707736196510642090842732033357107967907756932663055270849151902350508584930562256569570988497183319896931064584096103788932598953019504353809790534065967745336195836910154990852553565734775115192554318998658414294230030726398525295121661368529443569936484144739567098445258655483232477816599817396361255310944183540944184175784465286216638759336633578610044755199620263110042577793408122878006105783743952171825932246874744523798389676296425316254361482385500614746156690522610064641881055778369055272560493104621202064165967490631542738044645622169631568821202062140555277510649876153434625301620306889534001919998573856267141297733589876038256530717587549644009248677007001058210702497062427620376067477522036235469032349910267408621025708432233939822375241604107958659652293260837417159005476478162631131117838266438693503239171322582084324667329949397361838181801299823888541776746722026612684473694989401891907790367003252943328146235079194464410434965216385384868318139808716847360547041303463560098061935469483808570915578963889786151186131900967593232146340283835956366476988036984797800643871161761967466694322333395949714306625109219981849937259231883353716508037945483617163002305099854592084206666028123615024800768550044190923332401690982328687721818704377586489832008899896219032288363320331467839458462873968193378620331565058427397818675037817497083760721080642743182372119843502942409612663836195681034756245362210017729364602926390448579259997607234516425783036379946114364226541925516475590120695923199588805773758696847517692656387254309858223175605882042154476205297737311950165587992424229264351869933395384315227050482224346038693785963479541286657443040634552678340211638072935777309009442064369550957168500342241392729262270137380604250158565436882453529799187114878460364136137384737988363755023925768058594702692084161560895863742791250147333350859301381920602690185843282188452771325507894471600673284322485359884789304731902459503602991317817868048612076579343967434578303508162845185949111701478295289153652158666446648088794932100297459189476064324777927921026027104433079815442104503973630443790405333700193570354929213945563228763350583318532626552183705374924666500822454857195421862617369248883729198700963199865960170309404361504643515827914939853041736169413808372529376533123422410183209976929295995793515761560982157516988960519725212126905578779847861009397377405873668464584976671529682656026954859997193048787404543736986213325025508532421787016406544459791242202720033946913595532855434159914441304983694579361608318449681166036738984339099770483510142449073566922443397735320559201751479035958007951226674784562419319786777966704407298882859368244324998639976315405489185906770859777716116870708943148288586265263991843200917085494803290220739331737409464563149415850157077559659428682557191146549368838933356916692487330085390472434376623195110280335487528827208209305752802943345408129857449727577256092983457864649517865570247643995046350396467379395634401784727420159380332338527872871780590452182232766380243438902523989049091545399739449146475910657203775025353198036742730726336480119108919528864703208334628324978463298476348316135420942518820820526427809444692574984808943603559462319227758376465670504943676894880121216593769858648841408674471580990349733589558161996640697026505190662411320721002384289824944663534166483988974438360791443050292742774825972270154328082875540081702470903122397447104561571091352681451763545480030030313315106240586280146140488995010794414514324403300594172119834025091911148943435066824117664660716957074178982324351146630691736587040584833787481733794460168483755425463766122678078634513747067512468789817689170796658685819568274198024584070406193128570611442266217209035403335167263336491596213741924376867281643338540316735202196388770028007997840701316626104645250827039045975017381171603404635956659416197159840629496387188793275220732728102629848057431545787813178296546296762178879731380666709101122347749246726821950967859013063101017325948685725459109201571950936458888559322452394416532498159076739697004003577992007102148880422317812386032897757955638873455696455247299193337184617255135488663004507042776990259008393140248588681489496832270936514903944099832978533663946316454935670415818393734249401713096736915253179522224673248200476449557184840558192934767626183585277269396280312042780002772641135685935103649888091622244399931174841160181392049991258985144063827683295269945758381206697973632059663131121955787031077966164231429777032651852188429922478500067116855877562180684027061545832291738381447124122277573501400491567640045344996342302969661961997429682065612486901452253288157418718910639022880852458067852334837449023969658076721940119666413899042675655653783318128330605400597960681067984019767522575380095302138802498969685414655741615701657884915649256765546206142034627648311149587041723721330510073625416799959217976729242408323658857258937059235681144218806363432478508563438805272836328120427091816759887982628757270943728611775586892436355642960865160845055963068782179280411838435351011362073060238428881730482983249631067377253118683562145714872146141516906138303336233476573510595030427771526601785638636343780841680155326033650085602185538223259068316857350995863908298910853219576371494760653456605601195068697497700730156072118537111265224003225747961083461736543067617156069060025111007567320007603583607130800500625460925293854319929613601747182303073095055526838416403597247560010457964060742237282080225939582780077610099358485548685851837127651290952478339287748009579208116315810074645639500244401845015681446715696248597082558009309117982914965248773232292384787803548671001612378215932619939963248206449931911915245566812902485319495826832660160857830986850885063229985897354157069769314414879415193604083006265539093101780873399649950509433619151227986124894802919120615924100202877736498125096579068984042211001245050215962196079580421559586880980166968019623811521387422349079250403129557025736201435023763049733462211532981095094177366020853861100303473449359260339739578614075462165184708765572783962102656356599358730777075471761543409946424946369304009701059687354856215349215678050479390990089394176280445225190970467622226621753806931213774751343249048398672770353054994664765670625863232392866063084083151966826528387584503354911979962693317482380998639813128859874711301251799227616944310663949559095745901325038379439135835492419087985027600010135365186654375516873572439337574130638747632058173115700151289779812879431934446911158872746817274411895901669079875851856815438253506487483917441253158103635474747498702561606214509002489866735192347693088099649467529911938997183426703636263404174945709686984488086734117292194077471639074737726036324972492889426763522776229330627852676950751025782015262350427811523240433963791981905384745340119879418696264717286512632594893598461378345888628403312429420280970037416916957801554169665264751948571202263955420056557641225286260516737386840559165085669760132414209994108988827043720712974534097301525211628428057935762068810281727218932408918976342024365487549165717227685279289577889046243117792604102037692343960835113670226050944515788070797521346435071919913662706450947183846103927059766174226142542717980345520181737323804066869609028775418160641751947320957484296695124744415687720325755702353187333540151965383027204804646706724076984915077241308345458003334048939112625711537111137957295367622499727896922609997199966990233332024593779654665288603534946665429283674318983937757003522273371517804440596676283487042546176225840028757620849501973532816868279395226194714729810510799622749999914890692604971770302036097967967425691864614488688795616743619797954291469524867690753120954096668099454015601224481293452543895341255023291968016863103026975994610782677276513436501799483703632676250376891717014602606415497964279370279326422347912977327092061563775438657436473185021596550780084701521469462421396702506961120847498475578486285809199383537555145994614631886404784770513120034778468585254254604357484036549839270920997686439450615273753303257780571594421382495690085882940538669443821130317012794327381796275108900135016094786476505629159175376737039861366600997165631225709067251341650454871289404051769838048143512247432131470954381628229775335118814236102548996924697201654772004271772031339539958300600509005414506200110464205557826558954424812456557319768482560737461503818043745748141777978255101040621471090611043615818059170335431405781010037276203901727625380263864065768033333481681060262787927201761093716135823479034060170020408424245794065463713987575800489567602333590628995457058504045193842254106246961361810621612693627895189846404399311141786015636245252292694079669221318534635718085060990778166017934067223828062004768521118441041560755076056165418624828253205033573331576896206383568531758257302631174493783230822806098173637222826019162346035419940224576167843646983867877687194359754748567620973235603072971605284891135931415352767526775829742780809981999987911380632548862315384043802782920031770435995208981615783286475671299760310107077121443302407129243239700476654779471675427027864773000104522365560124721671781043563338606277324229948781546470913023094636333238800351182814694068053351668173099879572159353627048502976966589160153225108259367850646525431615246869236071565589304091442786273609812345845651383475813294068873699770615496939082939517338414019116344569082767873915792850288613592178153513306109511239662340163729221448400289255822281438243072885498848450905706496296362070631295880636764444712416227127770080608784058013658409026901555148489875814177748164385695566740699904158979564899810042715525649721354602814584968279475122334596267777613712684215427298643269984408357340913204709031898243290512951320532413615378777912258161276811292443650471344107648348318255672467932161489737825293724350122364535510910340308225634793455338189251363632340798156591184867159780110351394503534667232512625769350855230492497089131197341147239209463266775505712931567623212051331958134176761514308260818719734335525650089311866562080882926752014740193360309655026783114501857321234928155365243607567361641369576883440144090329270791881774155741217419340847048455963239304758866111998980968730856651175591340307983769810874041963418961592760383954631355301403432384877020851662453026090768789480805428047681843617848190017931435463961649542526883202738519911508435883117595522600424858791728732729525628911106408108215257926851753040071971937523204057173251215931931536644455405979974691263501207604343602053263744670028317741168449354338550640844823660503135551634477363155159959769740386129319131119025051168908697130011463585155558671988281478057548967936277270055166902751847316736688019592800169804497069999235627963188227674511553859050676050090038973312868908439973192593012560765976026434970512749301765247893698555239437072550245847650413484245643016265605676401400475894370214541146306172690198130717990765508397286332146850889527785366884604335004376791570154786349383354611873014566904567265710875545027846798197502366992462959668778706782770034207482584810688653490079525430887696254689788464852191338254392396540255813366212618971472946955087550181864312108257156013665659792832035036366365021640702156111092088936437393793500934022200971080022564502756149515477648330839267697012598587272473121058215033887687326040347277250587177062884951188512356417927087992160660055504755334071856211074382912816946300016965500568040049311480636803711105760801459562947529350776698473801377223833477868135980642902676900316204249453108468727108516159304303493093673826437764830102795805574208274618174115602732897116725362668028707673439619138594809700905638443554085885204366591988843867102324025347961634946091024130308918362322412035629197634470415272610273234747581589066993945678828334121961243175014140285681183594364232122244186958952716771736352928220570236781671481079526462699043506509393510179265365186100822167549870413335106873223258102402033124376410098876091122395940598038028658520275431418549410281204920432717183377689333711942980746513908527741033402897906463716457251849740836426321685339339081972605374654103474910980892317103425449696024197707596539065719918437102782352289748884413900598860322822916494618655824962112092437471101951134429383627936510360206456533114271260502299848326159392647881035188213336606349725712263583408956737040943806037730851124099144224060130680247209004953504470221509372540202769297636736483451824786200678710442272896100794162780790172302118962599447037625510534742857252120552511194817772112948747087709272074511029488522976684004087935813308537775358906007139165077910504187268609929048125144239091082506466057775107085299379569601975366161337818824662041979195904475018129448095302205656648513692284554101896658665055635957733368007519346803976464431862346401227127534410154555687197811051340020125715606627839946133127974774845145954699691075740885307151888932163076800399788574049304108029672219019085449524243337929408310629755518862413132275896572036348732968131871580289715874089949262943040081084708333277834000794516884055133631350322818367232191596373163435294981722478828413731532338960105099007740400100100312617636185206968768049206785138477174433115693623504806498904893504170138757980295770060267873011077371326106158889066149474176415497412936744806139068172904456307244941475626847749057200513020648930432808928937935193080032789198401746585320821200147444744080512438621530508177932248132980798059168892555211485943804160506675371494906525907034162999170045794190412773914009104096353778205511962179108071339151997792353440205540745237328293649434270009640462373088621740885367167571032140816571025833047466213460325745254032731172061017370452150128979752993467602324932913979878447981813491855643569723627698073757843638882998587855958474556408726666090170961227426763367946402257223144404940877481123092006951586727461014523003937849443782987051412957640982487589976428657659091586944391761212212959161189356859130556535792638046501600461696182597664266344920876827630014740729017034359906855317029500517433828388689195499592613617111107939498405858047503742805779671729072432326005244195208828078150621784444747622054282636470794525942160225210080913859385328653575840591614492967976681915563943056424844710983781714138494873165438347780440240164465021550961270097210726232107730242385874528677066626378706857998732393644717884241456689704352909134397301492605529461981670826402413588913534708684829287250064021404946379227404540953970177634102936623037180431467030033810355786772641881836162239391073863888084648031289957809370128246645528752282976770791013592834359216593087767505647182240314496114698943497339944374179953181315782967583257547644001449293477994586546081435296155995750201184016568746341555938735325661958118535282978190794315426006443922889099927315326266173793071262017124640576399782574991493504077117099818844979336522037030426861084609846766342669819598513756087171245738710780693880765280931078380566920939099096295666641460658336064681942835083167795236188800469495765019990824484651327376567650414954070718456576200059373913641639729749389245574926908162636486088135409122595072894556501642210693825940904581103931757630577908117667002733033756942783501304910291295499490403548708178968560401860308536470276770768741146408049148059043622571815645372662768636937282383556675622043992621378528628757229585100290397771514532696652593779116163265300114719925159901884387850475675705244446531145155920090701070729528845799251426609083778858474509994734911984819569244414174882602292203849230336472580477796075100248627851383116690721703252281734309615879010092798329209612562302471038429989316803271810438873679774048471052917862330487781270218760173149463949364633432999157116251528248132401080092432300056112630560113202091995331067766121530077885802833696502166078734692850966946226272381567748168389528005916428394783007744952172777499990437673190858490807100113015390768466337431967606333998908195260463207095028641560861277628776494245744514522505059610764570874645141272458076066053907486804892043836121672271708432667950010763886391774450631651502507893491546204853867113561414870244625098566762591456081420423842195778952319874031643467643139239744049945245493577942774105696768918889134044277702185872672176439469157118982457928229235930427521491645711938341787191137701317114636828782001441902592193821146640813170757081584245440638278058916453973460674603367034520277394896019707918429128785989130726007010463893236353650512550147940655243287065138709579929333733635435342662582482162792294954602434363320186520884061867893238303917024324475884958831887313936562870431819652770329618760503340432374957744063673166837488129698287576777330119550404676618094675335188032605031563174272980205851355004079777882407488922861413308853725464092978806590258359230797958367139427582763707738091003037174629193410697351712600938626870349563659779928115346798705020678977279662785780775294696794259827192135743611016716370911494449362727712753535831365968924279647120792866911033310127806541695695147362751419237775725920488737698157103335853506166445198298652077793526376139071137457048161089467701352036602647073625034139216742132960195304637338284694800935672156418221637312474706987291959159186827776235931640253932019363868730425791466800114470198053722513016694158676778267140977220890514884322569703418036900794085343019579591346209230596890918298726543197203482430087110038740149999478122404281164254495715663017665007172680133361630224249718425585024472825080511011757165116285262597946583723717965253574917106030061117001480836486551826631117372007903360743978240095194366220460932965721780995703254070911911699245536024181335237129290255138258839983897049732994051666704409050802236459876057382392752855010365579364272250165083285251758903691934802560678294480241275018946109839146105813942831934834837552715942117610225830942951795256888523872381887627426777385747130585527619511695229772118007678374306530165599546983896290969790968643771347183262319463386186619060433018983996059513473345774945477664277592940247792770043143157918890082210778815144825017889303563919896329923226256012216992091418004539084910960301211832201664131845764249201120926113501679016154900293964504258259005962641266418859922105139982383284307133646536484079444653806392611953574928495550821981379877432390729249425076557334683363423823749985289817311224065578205414898880097491945139270359028437505602057688677516068064854917707310216412405584924860545271102143373721155084908661178264773664792618071706355100744026084996353503161094110065963812251088238370190442924091975178766319942895248002369956795721785714659134801261167553456940056132044968254059248853910400277777411265840316107347476619709946940016891626959963834827048003276081744039481628850114200112854968057666690416000381791354967730499836828083083935217130967264480480292801009343495194253064677653225769901560453213022389770858939567829959197852035308885703407413646848265143376132776209990229550512341497283205582813124173193722833010018985889089848301976261862905545913620445227124860677359508878536079926225180378656400656460939498178278130461175880025687550307675880885666762120275405808384765115552867100630771544993567543026966300482656115679397836159480328833308771131086737898097175114519197663074597057783478825887111134853291106748985513605988341935382840018352358902778727756290566110747913774330709678507159644308398884178634866597601587178223857991604351432430684394947872609829145072487787724614332501604464379054224590598537439079028984033273626722475803098086085397296090096063445242098923877902549713190045335874750622671154135615128695773646850552355215295572262055515811624657187131043697355912565108389661864826862665773456760752033243037797495359138026779697988752438664846202379358340979030494930257411278096055444316237165206516969137659749916983695144763010936611013374773261409878930156333994071860920408713327074660016018014657776808187209779908868161357928970018952667420191991946689301033983946850953711814535836472910404558122882481871747070698827624803724410346903479573077435116378146535545759888073977047312727484049866712689747740020505305763553905662213138810900526083969553456537751309791889095282049137495037943243274818455762623375014073714564654260220289686480042306895857505609087209007152587498081569899525989011599173508472206707573833161291810207846254456709245912669833533148124700384591144001462156293688897152709907681999199506939008926380180188293150852413439410150291108426529419778417351442829240909511408719830375641656393295596187504319261808999007656839889918492722641496510264106222460901407332968806028306289650922394833543472717578076498911386627991706520149697026879252158128797353950861497081704657904946271866336475950344479271307174372874643179066870192155445897596074984528000956218291364810286551142174271909465624760616913122601764916772761263147996440955738484548810256114998176753998389262085691432637187535645971356763908928024804980863780147950182085941069650730839263085223977140350225238001213995987290258319353890520486163889931990661572913416196092760476924659706390579302029284663900595174499430493368372807844625386230721214101664700927782538455404251217055987284507489806727216702498832260846765905917773056268238362909920929701137278286229786873203683588590822431938875578747932157272882868569232037577302418942644133346886158591898991925612472459963253434245547832021987720894469316393724287816448020606851308845412703906016501108527847961959452904732239220593550650936806097612701678940296985878014977247463424198504274794842713021504471177808018887180006600675751492938601186593227004555825653088641869126922861710750722987069040009844049122293589447791335297768806297471188406450156643292611462149647932997470947522662151881887770656445126969664910920106604316792171186982394472769717073464478274630154290431157734536582599339429533344301493383678698065191647941227244727103715779509599438355498925524154826802719461336173772707961081466915929777538002969097641779119154982419529477980593648481595905665772477413020919775509591508770183179151681213160084017163878258369592255468890568790188596874405028191450609337170027495615985310380636188848041375144978110232104083801767675219424698142499959772487437526082408786876158644183364274829753458546874704612445295180684321315588778969991200325765479857683962140571274889170569849007909849208707906234059762492569573374849724114767842974361697775231794571303265054965134622334674136907888382767367148662197389933454235192474216860938437168458389575817688664915050381574965529646927471203420866868721622341433319049673279924304760501773536984797251561295753169728019851600197157498940093345642512797032854916309977425391933483538657999315125313103025182541848936693519971525523848697586819244879932176468558264824450887925594608412195780633898003598938083230055318144388625888106314291402473819340318542527866792778088599626179599012191042658556940527260839597378442140188554291307923710267475203184146968432593624305793851150858258049375125992240334233315403021588907458804430508061403949959766369937188221204337149818653750182372405631811670295952332577389510465784156980265184808291411632860495011314374546279132573429685633655853607559580413145107938462202901309475850908430102617041746226760979858414714057942891656178697109468855750753459104400462499466112332053692085888771201677511847527018799003220677798910332906253861863332022415311098980410239996932641432659665396924121319785247179350804053074078417059913585659314460433843915675412201862199275174414980351023180821208957050870489099526818146130835574697761942928108962835792631959962622393604252687768966231125229685914884334522332926522625325537268253827463022563138380226964244548147415931904520797898466233083079891578948725923296757908187811531952510151763808338314474226402396792202555929742067928965693421158279856661048146549168318810533581429332816580197058889993062005733925468546980836975086567978664654443846687575089884057228019038641350850826101526352759005605869677987305460900230956991450264444979578461096854659803035431954588314780772855666126126909648225115920023035817083115829238747238353194602411721996041301502139879800093896183734010106563540393113729143780621776624942206337521689973789512009780600015473436797551869266142255196778857997720916268637999839971994356101964383387948056501301854045301595860082188865326718415248618302863618578098306370112670419903449390252976019503018629551032469280390531547328078242086407121528338769406389707554666473408243629328755060129926882866428201602915178411882536131631357301220475673973497131626774776045036646059086676986967889653819420020040275670681000073677985245968955033341827932986123453580258918900926114827029379538649768522900487438940580781501979691242957251931488961536371390896353610101584704534809402588305978482505611771362114394391912800539105487309763994390992771992948848695996517289760918943138348018837343638511562233558622027195163193699265632699949065630473059534164167164739688818091854123392496027497501670032819494444030680162971000604549174766527836234392627180768033986717386299870077789227380192026472197359912686233091233200875476482688457391686768962962874304144731923551329798379227361203891232982724962135839266137705730614672824174421120189308906055099944290188258025053299825346037645680941654121150159524322606585442362024907238761389018566240544098073132958945358525601221893642115807067561126553011458613411570196520029609883002183164888669850373798496865141348501603129414295655662125181992025716018627970609409338919071155091518041356498634125896138753986942154926999138427160384503719015350650784645550602935802002477860175381707173916524703965417428856429387121598510707189633936743815771801941183365967306943202989328813055044097294443596848293841869624120444924528662534737528967128002671533936393858623934981108739282044349556604028432702135823582166080762096155340025346312856419623515914682635977603408719476065517845462171964735700119391338419222717431057634502660645634618816249763520969695788579977152025920790404221253236928874488742512358931490394711182672166199128456601162868821469926644683476311795096339130748725831497551048362295377658034391981120014884966921276326774203015317002653684602473095199899244397271020967433824727354071696771926029828484896736421533847977389367693242246617222285386939353609205357672389599325277810577219754272947851872590110538948615812541793049136937529288218092226439293404627124305141568813513016650487046696854617672699744608835056754699578345527696397849947592035825268836740075374409270593844903827694143265290940552757788263673824794140381085627944522292315213738557123646270281983694148290221065929567603999515868405169927084000869208499155817896932116396668289100862137480468954128554717951792462284232526655401449681589904345778861084801733235611622559896815501576774600296575863295368889065351372624258702308039754160096327558449265379227879262691335245215422819505226672854204578127373334620151443567299267143907053808062452182281530054191826086882451382629525448137294370195340081300638424178896027685745025006674794373775304501239785560800236515535803604655218885096047263054378481241957275416132302791870840698263366402293076784832913801842286173124315959418850320193314417995403872891874096612513440221501819487512273908229762567355880210594298921550956284889784813236204765708945121346389365750481667605835359201801290455026536719859652955243951194067917334831264956469617750959894027975959230150806711956105126468857574782947579668128848625250531808181191025041836827999006018263885185639602700102313380481913621773534612532600457167829327217199062087052257184297743157627477517139130820348713260236911047520506404323426649062445155217683455242535788561798298125866547448712590549952921715435075422941307941482564534676343300829090711700497081958602227864376231437148634946758871059984976233519317526369594220702330897364912285915622932289392793117492518811363574970103930348504706052497445452892244476455966270932460819305637817389189321726495178726472076914155745700001439395436835553888461423157078086622644385565927390396081909862156300038633538236229504344110068714072629867241818527533367254048734655030853459775307909452595457837396751229426333254014317119756685601718161638173506492086337337309868535147057019837127574169267596115592448243459454071734625227953281108046876837085616315057372931437591137369833034877729582437499980474271960208089357128786702122384060208725075822466368473076143463738437807544353071832231038394896662883241131640482033047618781605591968621115596232084045278791564203442622299006618416594644804110157833616585228079985762432414787636622805878453353048910475398329024357113968081373914810117746867911828532938142135323584441377483427052264582369612424756121479811399138268690183555808806394604063099086847094391201868555070729158654224649586950049793290982374151508460427705092131764496507729167782150841068636501995165289613338429767349331116373534755915933872770195461614117774142881348985330968900565738803473722392305596861162167967558117063148881304682711177760933987596479020406229291506503105523145217421887312235398276316237085621447729084915197217317339085526405226180268706225711978635161493941547317320965857029661546810031757471624436700065163618719140251650432589821159279707185153057712471919529522111573124125493919551235073490905494917639420650874658880840602693721128688595638574874658157370266999905607956042791392591219912142814523328665852065669153880807293269404640618810064905158171473341423500884430881065597277804793177976274417295280021499186033869816151720753471758115979069949099219482611000834090714220551069931812322767852480871238450250639020343170789281926394365314652431649591168371937082935701603230468273848958420288326711626040340650597337698328456320005656515970402204894235652125637768373748597464491432255323380073097043340158518019611590128231205458511857634073489576517027417976151226298553012619042813960568144378545924738064303218165488457178553230356290781325720774976131496542107437483829435153107752378152561969061889538713338001953284881894380453418949533617148572294640481109974306627546765483189892516159375144393186060531618306387238669949072610185142129912697924206217745346138178000722495082655870711364954606894953398612626101727922493889054863518263945403640926396062631670732115658691383374105347886002362221119784118699187985987090426428914246183578642279960126226011061481287049020396668435341115941384863729554892430789932816395887950003407628580831224732615085165565870348626057054805934077562103119382038645858652098355249906663078648152892540922100071294630710174132722442104062855644922984947634881145845092444513508488328354187063662705804664101619525591535318899498308528579670777950876891343000734789380789820462843255789740830392095187348896495561460731759314075112848016034703628807840509883968957925025867156238324081435846827913108016312448121946285600190750222436454846512326427227126361405502666607891961376204541384956108014222116645375504343245269368062070024956825595486949804644576008389306142380752341453065411736812717617110477939683932963324248831196378486496693317122918295101184233294118682332354653688413295206114480258785427191740048721945413686250626059713103072159764446738550751981251467602942108051231725454440895818480007473579517758262131017196627400936503560533615098795560375750567611542883475314356925119753295641184818083198788320402246420754926973563007217595902798310067033817230761992837805299837355970693968919942212148256001213523956441647594600338841410610492986113009358999158360525437720335383033546771119227110185954157501406378708513734878882635595548809442446021719551010110250876475844363195228872337942370196187521015704496939535694855884651327825393740259363731314559506658799697233922732831938252789336886261416911161232522923587444857234979378190505720571675904656876868567344118470087845596505526528329420650099803816080637316322578193770818707536392791755490962393832891952538654533092273690191401158056208805881637077158028729122433456484086400365403561286782925815604722187451489347971401996003606370711555597193393636679622417487632404407901525559148587243216895350926947035686408801477715277287872733640761985823480939924327862033158551254804257061385244467834095297923374236995953471728286984423177609925375947879205177133566525399983853716405459028031995648973845982302774494534874773476105502587508184727800496975717233092361737876538472292127091870599624033140442563497008981718466957549232791688268585186331343710682349077297661334371787695684633336707295165962264391635960847901494675894044041808799395530063896615341158018968087942124144915205851266269672796852917002808556034804415140239575159906684292661374834415613983235728382340898314252912851814027320002626169114650765810410671257708701211338438632081372312031855022512428095185617189223508240556537003502212167110078272861860144073433055035014217202270292751276831417541229883294398105560810415426444610852212656823399133031619825997490841355714566141063597569200656158163752047668886236007354908775272439130840555196016269486642949469922212619050749659169916182740024422188662442633686183379633340986482466744673235474793426341203091479767588366086013160041319788222734358559681219708139700907536570892437627447462502565290936989205176991747612798217547856153319955831714033004700565082179357147053776434465418582882319659776112377717681262656423418703919746802689388205359301990621751631412546238615134640410401138372328496747048194042908505273346829409047652661605778406052868143926092590248215752830147251693742815406119896395051534353437906400564191167354315994843224851383343418717088779672391767490512924908517516125267093361019723400742391059146275484575160083883907605163600713581758912052142345263508204085753653340247268574643099075523384858530087598829167752158241055976161476367000005367528328812629972570975254782386867941217687878779583329365466996283017004383182175225755389560598059541104997252819471789511537715019809586500900127105676245585885429621778108709051352026388536869796597458762450073324575794129309626548919919100514946082111099163354492751450781605984302501986941371648879080937353035267517973902240245765363071044881004363921505256276119188064475240069156812299157584553291962745947364326098572506677223012022036609368063880855065873679784930635930354125451821357235357490267321972402511820203733357462525454056876247305173321048078204951522287156202699293403326404390812191612241918013415672773920768059873418890518642367865745337442099560320965299924318979420680986851980950094857850389838919560285003400339840588891521846867987864303209322391462923042281941544428710222901296091529568203779470017150595212573721749423066163772214344294354717705407705117775120746780625318135388483253982475969636104902849236163344429451834670248803752697475378221364067638109131217205232311108300436594468265328587647186331454009044512172148390891393666232530078213922466515179524804276324052085613422596731356910127412109823992981577584532759620557498804279634033320942365854748209674623089084155581959906720473010578546613776164645517979417126674921123457911224787189873796481078796997105938009955717040602684415096945663300298561048341989347882954404178824052942363912269498427731646379123767800796641859280915828699935753666779527220969284987002295470560597679754106116846005705004400629997258283578833553094748766975531477743305794822403419897632447011886353373367291942817366223273073442535089267105343908054708208522589059503971499762162704300803643724525618392536261971888908401514930058479339439120411388726145045237744634755317626880987573801194575803612959168803535479159641597767964583940756217954859896055324487237938252458227333247019046501971243267469496960598807970656045679833427715284616649013974813933805723785356334973207377424594938070243755003647420390647369911492760512586221689420898611871403505577637348830116986346987356562650784564864153566290307417400680080957507676536684247689656854744461191741386425827111617987060122391124283629163230264257152764110246349189682022882382840734979194534008362793784286506468658081868514854874395148819399576732267800930799534166579566163610599770014077135513859289416525153180119500845048594783032805278325722553274144484491016946719192700579698476675662973953512687028216414793176353892573102888829166978984747724152487733860752772106711116656129564749712700003790239299857536459639440340610050664351350293072305909187264271190108510697531836649022411309727911120965043207362047332029410863892868406438414746685571577678302916151203617705396761879997374257597218028634765925520063485240050130120358388577673132412535347672622528605571373583046129584768492073843515497619260254061105760245798767767584515543781144624707941101502861842171342789858856468303655429649331250446255290076995058142741449888286147743759936469217153936493208054123996991059567219651933251828332431335351452087256834841459710455532657614826304755732340010135158665080236596625832407453432762744993800838451384003581221048247509237272886130062961617897217541439623894086387301332904965812020992234999094307057640555574790523203240008786786847515986911589790490240760588711400054362129722639416057082248215542513906194482038786607598453593567308566530789647886776768280017131317293784900380914137343956818803233280253908820794003998338917824860489117339954030182629979389677472453266924965786075572683784897958073330849349423987233784811343936062890422672129410735170570376873181823334789131692975405131997838621176099820213476066201605098078559147512779102224565290136419809589235637681592704212225549377798533389661989607529563789395540135528981402130689301045538981718810734719674399382858840663638913792565532015410922033904822975172054380550556061885106249214726847908055780858078879460099792523701746281831135570647426345237427160867001176299586184521498603671022953479736016734652547308777130556250684759915764700652457338133821465454327592103004487827378469649889604674978680665324689669853457839008660720275619360934777722723900416648385380391568811683475016363750850553399661398258930324659644131992236440409349561847808256183023717871031666950986482973768206976991423944653581050972997515678883671773566769695559334535049790188309262074826379011292033107939457249773856600811379309346179874646400891306914315359746245644828899059649091876538600807316451287706214170866912913773618457645244757655813666767477630411248938312737961152623852458394994841213422759863434390944779009034500762586620825587371551445989913052555883027375388952739220697163059746979686193486986822002494820417771482264636619055154693563285443415204212853804892373208906773765117463618660596412279456893120639819738742302729645975703735889008975925277370516913773742900037874568475238944157999572160689305117990604426456989050033060217787594266747971088649728562919490455222713855287403854229458101725507247643170154363508499347485184002198144328682428361206555808274201774569526101631890399257523868981132119389445374740626539132131870915985363318338201996295542905132485845594051544827821284281913903836744242328576297694544587713085846430136358398900779196838127815791283709629851332079728045010272240650535764463886044666082341466439682071177608930305281818178740279380957947911639865998456895012924117949331627188744458694784583302585809367927606187110619816668176445165858178768127633818102497459545737251737489316856760181153322888491826877836044161144031596359752250565947659281636754154279584172654847124299626886237899974895100718148090220737441950367461585459144484971465367716796145203533798516066662094492934860598595861736528237507731330113770165607872197479378993061928536061314985596576090696626202341933059506593091453376095017507985270387844657561280762981068211635596877178284327745360524508838271543257856474071112619793741545706300484718438581182511446214725347215960578769616067306655850940190654343109751152401922163037541821453884042166042558758283245970980119829859734681208877342819780814831964811092266929387907245671276506520339885475968102255605774082194901944753386757780175496489614925608330751141061069529521522531487783955378599308605084344397603259968151697383601354354827506293703220580173142211510500979043347014308408454737001317114112368619258903043104997676505468229085418559290376952356191070821567393399019716816015899307426902174351318786639264499482581150573059056934012693079916467962568476533799281094976795133985876411107338735926768767180389371014128780208226374715965378068102841179259113467317069904141254428658714574205173479275154163932715234246914603135040964861560546834939374372684864171646525826598879533193096642429635338763099947538112931330216437581781702456229832986114506831305822236272467522246801131242842512650754869985165367947928725770521743302510700092884928187678577200858968328082233559985547264679898534872921753320318556100729630197303976956658867732742448405033290099078496882310172770733302159606155861850370834404173593409897779790495131701576139375013391580220712481649199547095912358074988144660271059262946968423528254570460683713474112513558978924803906749202235826559192772854811933506008850424822277205897812607149380785996249944421512919237277604778837375715661528052896992898556753684302459267044035485134757005418468468630268263194260741329816351390573883911917489302065187856804711620891236299988892587206284482080335653194470852500350464857757868773078675809784181237495904691322731729262158455093844729034372446252658643298495586949419654213998741561277163417235564977084551447838027230835313359058456259902245657913681124047882880513956682749647048526113572920308133453884764983996496088234269638481940231856236228973322444191580617171298931074938886991099188942148351535831834842591087537194256966660855460114529481747959046568179305008351260679194448121412133418061365283176494250085355865002924621398008397754932873923618432151256493692674522427798293049042627345075045460682795938578068537452012032999700599778001475474800455386969289588121235106683748858943209711461298469722648227930793399667406472764713810508617875799732550504419328607735341606533348452298270080616948488002031123785868194229529567008194867079919136593338490069137122293381046626753962405226490016569870597465803780176738684090133818997584976435669252238486527433163884845038076973185051441233698607907915567826941264667084842894792111641107064922629067326865772037841964394128632734572044046300200185208394196609258289202392380261232313973798386941972195940647645815537665022375573963399866278871004053437492806418891704151603562075970736903949978674623322688496111445565526483281790680634088757967339454613593168744543776385163601245196317244870924157182942878173080756730900666803209064237895616496753037770743962135919226678514570243899320658567182836715094172391396527821409543735855621535937262066548613040663809851752891373967018436293884225896217498762131903250329862841473770134490882389465566647995215376500848326358415013960122782618533915274900964251537202285846266769962047442779814073124479218296766269050388371001444241064797141031068701443611338905642566236119145378215474063281480221976751371484672351539184941859531007869375036568985187335424817779917878197130174746466697294173379569634602017836653123538105941803425156855358124454525547106043712370854490454556435971273676223787684213089039116236794680251890896040348457486721943933044856152810828856661694549501413036671271287884651007055882269745407664993504721321093123273229552626731047376215907313404940362331728880419127438354610223276186225335403358857435683247310790764830142026574813209911588750525744285082515478039254947862034643822007193716420440612101844869252951244638077290424580957433351251387109627194112645126523707922530359992429846919215493897793306944280284246782873650469921496867688058555457529749863564014850648410918544356948552317346902655708334155198110058504503361920524127621283602740655644943843077156246148601242442535247241523506008455011363845841641237770291439016030019625542133423339583986263311211267374955262992690979375143545486236012746634935961868362929743416952569114790407464034889614557447573375058860675748434513666965130536156538416738506738067456827535619972700246094598517541858362786084838126156970618834760422655249745115915912103124126368227465818281519305818049746767463439266502092350197792065492205589550681148511474649982592979774419422491346285579100640686100939346704497415411165561162832698736273730415899817340731027479813373941139936192255038794854845019953484584805323216837788182625404345593527686791751373195936684961770496586975634508995452789177900389010597505066511242594694635612381214323332290226296553690768173877765006193778855688080250578751373812816569222629114864035352330855664717018630864517012886854349444524421016327416527070149588133223639364437768078244980708922508607758722719735076084582605494666754284625505623989868159383211342042854767117721577176958745631983798789368634582636726552523808291898822492233096557170161861758322841993247073550985800840135360488032859717145505279701367134422182571170197991609159091356757436624079575548446442835874058614771179841595485613097620119449515357323430008708934483584018616818866747315197460443498898631622538713038427419544042169621523642770643756875798777564983473686730927164092481428785529774662509236887636079434830908964772058547657124971360353994171179909600909128967367819911225828720157692908625953750903362931022488553734635748442496038344999479834053212941624513904055842349823808223467606199444084608494093124105349423857471118206575889933619063490077049858898194133732339279952456741799740901999174282841931922742322431924049306810072246229632898875640484576928844743794411256779470315505541083626660990682375891442342138462170932942798371252083926776394791834971774603275252606321542282690039950782759809561148164554490892118719628723254739799703874912939125358968226748597653481249686102145407773710035407858012870695927859215924813329316024511125530159570579587978427178712358236555092333574869559756304050500637491628433159656237099806256240712619135795075999645597789994572973500820688765552260657057218627293399822311792608767239069129488515433378237901911917023321391373689347613219952002121276677267273375313428562272310622996733954579373806463340614241304307374215595744871636373452110415518135577099933261676689201234974491362433648448645373301839251993486153351407502519796061944132316694419547260388368051035710259691363578056182454004137108194374304735249151212684475839084738163055361332254454489295236950645764615049712770460618555057177501477840741098199401508642957770154025261345096083395547295983550565952187990769735720391842494909393604546916777051000660118391136660859218269395471527855112551365468861106383241940361146383939687870516546802977856231580458216307084725073068962644560838375178242056672628577378528564706214974012580944061869274164299865715341607146095384151359611737140437505027439484013511251114086662606788921329897049970551986120709057202568664872484806532347829434879812801792878778264515670217113235756334980778243894682023128541084661655506068820685516409024518640463556155895177786203311590400735383789862202105432978705666828038775725723048060176676027368829991238837480436203812420863540891266302858317448115961894257159334322159437033327296015774467432963264604208204020494183510224032708828120753853834132685373376782553452859338910642676529965307813247117794692973835924213258930301428963883665193337613128396436874490840839042148734480443595676463013768090654855560219364182753192784595103611685161735991038498961709917813295573992990345852299386181966220883013537119730072809889189884766579906494461106996644155755865744813689095899797939918679528011054298262715796416577037935888529388475935636461068989546988347868281099845628379918485300591821758928556135012938712943892801024998476886774237069002761675921858653652491906965165717339857082629788010287231112266130888944778185003783241876877563464641721575844703753532889218195566045682203598058727366201906875155244470159997200849475002498802841382488239318372860898321126459436998658916692878547169326406586178094439942047345427952865662283058533841610923522947602497737346274938159615597682813373875577225814570007042337816971739415701051815268243739650198534247547728835610870647327367503675599140844490413531716773973176827205178535795989685422836065890822290584549529110767025971801563919602108485179616541835578882561414868242299623679047038012887434860524578691539394777666048197123492801998829267342170699736595246441466503533223086821666850539805680489470387600797545437527276190172044879860068199214621514024292564801886991456182923321252304808802379157876760802112498511301699475080288447318760865473874035633446592401743936619403409804548633451548984710662510933088223808951746291682823349240734584233366559619538356440637289728133429627198654707401188527046159894098481186501460384023253407790914399069243227807926478100972261655031953369838479713451859572794867188576869488026977426223255553894835080751170964057937633020072621232401905309791813486832052182317104636732692234847833342129176108804770803431872118682268521438854088022127337476297976255452975481776808785486938250244802061974300667053791984613093123690044991353853207168749154135028791585670089352395433530006861288056998962437547414157189363389278424663633877879550446281311678237514298294113576328033447140737016181996433633391777897929334585021280079682670107325542527923596637393964845556913171813712028057731054796647612849176572146928174400690908484138359609674289808271871638661999443931660986293523993061716635820989826336508683906581569209602397654061945606542728145849227944256622272838618824023825882420565753247475290691673988420760575197474870942303409783055046468360875804656827522694587050768449992396589780651910577329531356901368947508397704636921998841378292186555643268190681053800639841599734002411300259533397347466648885945351156188936581414759746135060715671989612113267056164102308170592094084932174295827865983353623873132750880559471607245654877019067072435262676235608358151983716252917890046570541714739721951382233135131105399899887907374926923552808708147855975134882061099501738885911767493395177447510939556936088814975417880597387452262546517138103950028597552194135321591089423315378195643373686101359036847156811740245931988381496215158537814786956362192318728994010364152413623327378785722402517087182492120160262571650757224669896289442928060196774171769804332661554880204030061888570474347177736292954866366369947159299398483361710925170008126172113136601598184083494727663114104285124796334420065037234708828771007654253159386858212055794239849489765290116305477432023245391582588848098591676155834650956279148828433515196965914720091603260227585194313833236114740202692104282350503995119415673286144251143490366941139875067567225402737721742305513861196993305672833296318084951194894699372516841033005070410842273091052769247684681913670951677046150007132357403025259541379270204142971174749348147308231393814662961373241402752498252596171444723092817060260127499388804397845114298719191669485260608941133830988076192611313016749131167794540198562940974818730052150062087936171443805651072077150166443972364738770138042574492624972540153300403865769924128958647418791587267844611012557204621257031836951508813934937370973166946739757451572383864810103902831014623178435909181516843652201888068717353470464972422019583716704751476035864703604810184672811890192215414824760296520874986102905590374592994423669616392100599099455751607892982786441222502437117777932877437185216605706461297217615892442013848385299965974651231065237719151009493381991649693604224046031344090319808904023713279675671834408539055422414409953291250076312258193336400208951877330381445677193070828083889660962339462536748952616120837094009788148641237556276638523277430767237925313216444367089467061309934270752824733944736306904271371179634667965156642754976275240671211651267599399840639656460166230351542899560891840300376754237887373880703027579547957507319638930069785040871690363835912363354612352969312326871087107242169270176383769102657725864797506839314849101514545690017405865704577683561860763319880162887529148334843524651727985418054305322674520012064523185665551177152937989773187394602477779652334197592332998923717290515709738156048893943222574918776908848354167289988977808913517089438371117157418192139948699461476446794197302450985859174694487715611709142812603885685407689864436697160656077206289816916972050208671783653642036986136650443679241311255780901939609507619941826533548749108827051652066951231927247042747997404273830839196396880099833276976030009107577727355194571348458353973034993675144357766998195682723517986151792764880138772217395927230969486760239935041500236649957350209858271999024451500807065008519516604878812167816391218124510432203609103439112418987925008047409648916086839578265566073012299598454820955475475407558893478159875363017918382066724762231343745697630589991911740228987544208491960705604943603211575259092928924472849071873576128088022945235601748539955149447675014310767605967920471732211740244804938230371623872886190507752723928291190320856347781364470090295156764354964076367851338879888702806715620034797260628353184006951616245605742919859515714352718352613326910425771715837103531518945980495045502473341943576822380954397876554126352723274894109215569311905566426530046140708047575608298530534370739548927572567563719133215472584261639701971877408739157534603793687727750675931413624691659376954710325574762214076014221632467506611843650647279315093265986736831248775782544925917082260566909229078164163929623735573812870811327209922946566994002706638615468817417728362300837036576737289443054477750191550776299827661012067756610717604923683184976104203225279705847264628531569148293950015726629425711208231293377174734979365268907935055478147857390012564095343982389550373851595775745672244631638947446335220333656999687626490220968731403809934421470989474906553289148543527576499899228570467286569677890813607330669008786313445789328510841683479482400715708665455271175772996615329830262249528119718966704217036883525622532053123257737159551875487506941778150654299207411322254984491586224591369311479301353370873629337288152079627187650018445031668267292308437750422085226782206139798900908992074279105522251971435960787361186354464044969126616587988675185015582895715116701413309541908231862189455831982221749200265788925933679361235681650312960474112306029249744925866310865992707036511753448655311244198475866578265407432343811618000962164140611482597842750627131397224038656215356677934861171880512411058474300083883554734354164743533374578401539925943020403604238019709109161206248438574472224637346233518296949356158152151919487775573870532942919295063948685527287789614122524440589234126433304772951892732155185430169796192339853841170180881300908529901628394439764619305160892041711329767965050478987707269395822460306108877784179113957692462071575922838202848456218336602648731635864217981519604012250404953824785164696264302536723149897976514312265004358798050323703226777384460759877928579219771740737864654412601860759045901425248287373872607845489188697647445757127547981448985915026827490799909854036427531900723431975609392299016193514397741599992195107093844837609520630604653278438016528447529363845693231710433290733974803552368725156714568300359519843395111730268439440517084213271885930177326662257987813974765978295757316966966229022530819112302016115341403059184896081406787657109945415137914570971143420472020399268401646934122232907970119764126820962152634855529688027855972883548465483884955054528033154203045119398408396406898137393131667365451490028454311417608669781609746990767716514475463914387343938856157327103054931292215019076429482658543631621914870296455662877947127665103358369034216402750060415094934885093455850257055948810849748182869001935669785384034087845779822833811842804208386440361139140659703308846007069661682109488030166553582825777118148856704159209632851022997931991838521327180176633234468353090774059443867924294903543342752823047702119112398635356965905183009596761611518312390531148678008537366049205785396068381916007697668524264660124293623449517751106487984525183168508883618675698832149211301746544993623767656745586219931939257821592164272857674872391109055199599093266727410820151057853881993808050334451067298234835920135643028032665685870380017193954874903620210092642169462584892672521254512924147419204563693356961537827435860819341712449243572753031612409682002032822422924826393303429575624869267280158786323602120830354647995285715560616058622411487655944318461272301962365512349258616904424469120644710746762737161421809702243008653965304305354000182766002575109843831984577819039331081480675287783225577637399733408028987496372125882685865125562536148688503417900362347687182660144230774878578388124054327790363379153753640207070507145461675335398656261613213605189421061198213206455929591375855033815024659111800157191921066155485833679214026388309983862604321944387426805875583475300720117112977508705635449934360242587583228466040864212364833970741723325897414371933049996570588103300211647928192474885420852420160860456834552969086331602925227132000064231971826379030158523064175147813638142997896547622192369627243810429156715819704587303236020365381512874279713214270823118642942578198834420761336538254948363665276046753213432769522050996283521338596868079032420849380229786550853927890838773535512400471983581402010462262361528042500388265347705109063081453176945443876553736080376524941473606487756943154556917650229770550019676210246069332235180952373978075202725552014166036362952827378450001133240811619736353882986058969933731430805893167857513696706851561995910824979934986168017167628216433064234261766702148064963826683785809587007584097330030965936484876876564878703317022181068288588228620282576779154303966664325498082196034052849036989732089467140456682110583112023661318922438613050076655150329337293969645771069472801901324164151323021849204316226759657899443951984996304555916265521809524120400726492974223902512037986216741112710059345879013751232105672181375325577485191807765352458215200454665122703587836548975365923028424843517453471512702640337297859994587000737813049956137037536578855437292164801530081184222819955163637581667715651116209244457768621722773823421619017704084919619875725536549631987323281362509721552396042131606234343683870090892977542542212695734899635792918530105931906669480438882910512184335790228419195597332131304878773773454023680590768783822909482963970034525821743795514413356367461178866921692488686658937426930831737301340269563537859063329199016519748598186298694720411585592079555563934718496981646766809040815793547983240908296667048741036373169586068992143070573085633305571452977259700187680914571653896494654402769002279804355323798908648995861269218905366104897010366443836569757219342415055569559848598598664343932422416469128799474900336798661453278612209957810164033695319411965547435433010090108538909726187763664823927651740880803713206325664312301899180047006554223409624667985452559346640228913509834452764356939847132175703521828409523421241790425796418541887559072200779265645414248140868441501021120598166362699379991029259277441823991553800840360510726563695575461292689672246642573364902333718501883859664692944524466786538829683638643432692278746299743672208040714835450157769589069923529382037489972258651993177220128534013728454682105316848200470705558052298919075808995434020164598075209657665044951142166655990499741505400657729899895805596808367487534856568267518357444880366755593393921931420185335967608146590806608854018000695208744928100920044060872245180807945023849704601476152778699749714341577613685806214170284281096960172190672289887168484379427461783540785277140663985656932296793888323965855041292999723209750161777656392922589591899636536856012159546031554349000376047646663459150328584615667004690410473154392928086713366056413343891298883753047720587142899121391934490983392185112169951642255846797265625275726201538062326025669724396139494813544741385721172938691712727408140229117228696289472129871465922533002845471942057400319305390222742478811781360340540371663667468929345233177719458577558634795896041668501894954330727936005011824918440024260197585753704631288203885741223517595059417484589721361768057552955039240799529605495818496514874802358153622231062407505444966080969666101292638302019132913581675995111253255601793223911093809363271855692983003069407948556082269306077384926061144275500057343967004626381993182850831585574022959050751355714124863730593292891515446391899099651476780204545930182023806598900324864637074036959527831363274164044695057226017755627310088584657622565166908932794480232594095312882423703833439813811227132023169774668099880612149553659689186223332722051105871282166472700712094830297799592929145969270226231107511914702728579525453201976924297449263335656180850759101542411120121924739271487351083585456015139995237812000791839038877613880540871794192148765936320766356819929412255914792606036025823488072670944473928634441015524425926941289232295339497592844685014226562425925910771414551465889426135362290621107961675881678138064067989382685061463004460192712208450570444686568903652670225030616464103386896175069292104777805022098893134984223514257259699356878010980928629072487580711518908223018138292443416656935911184540794448361669329966000139402607116917464365783279989385981844240591794656222674800732623178277142272161851784224989001401588601331843077439309828621736360861157766090952180449706420406388477513443609074005019241041112459580643067530320412389001150874883662677883842075438236111674773249128217685555258513086937547457429563421107357843641770834264756574847771828182937868435718603318549191888294826759007585725475932290840633238590051243112467260130871369231251166922816328623110185582694361256762872832013573135000062789132663918563016621144201301482274647197836133599660953604185706554752180535914437237870698555905604944965868735087034228592457987277449010565037382604813724648911065479913035325989167805893159389714487387389270451860679254913734424337056401379098166336799085827144053247910598774433848507132841852257974302640739206463838086750862010551040676509012524765013647224668951096130515914292716575910216602149577473032054211979580496319882761466311123390744927692644086382002491381930577825299068483738704121597094418047253955246936667235844004264358573462789919758651542415676346676057118329042804507864321259581217716914369958420802924349446296895045704259656531572342992238663220810621424757347306616904593804808740122477870278421752299388696073573349763024176313256903435640462008799553493583697416725500967154783506414914029414091548156564012708739094625824014968737783462065877405649235711984909301857582428930241358620804259571359332551903024818241722790362146473117017030460068019031684422322267144494850562619450629060727530664978688231050513039836177914643885529562241726414764852796267189415742734675691759644107650347676679669121764117040005258065348609296201252244974185475475440546632337932613094588657178555369617485672596603273806581390807891691003189312747560590201730007387036331670919941038533982525461399963722550962361181626232917667747961770388239124243419107398080670060295093890009304554950040893534925753533494964689437147404035692821235913937296469155779428048866989042035085494766309040959884016010391009919645838851477710790037160790242475628185613148117134382167643861747183689291230931191876591244362639647594124942023085369584904343645341825300121676076691071288465825762542933438613236924994982446015862674358147630873170519359512298620939158538546550314827127802378086024806651458984714370581022899828683761374724115480617485711922686568252038694224295292262812106766810360851836707775118203007747662347391280810305123976120932433773746864748781941161878456674583160725487713960915623215885133125063205188132600294691077700192474438057980373889731401481503564864108949248929893927321562456061506534366753218632552713652733464569516245212925471578839013483347618783835472398451510485903542567063353327020941283089270306539939661414194476344757010014331848789771799191268126097890441815527352108720807932859241023052650278318643232616985315379162006956084938875403527105600528883840442196039023211886901887204502380253013399140064892824569985348994146962060150704026482056594594204405659795137410818174431038924646799735878917976540661722987491629437924028987136184402022594268814118492534028752551139839215957153271548208560527781139399101696361235353536854433941978521464188543353139805376825985892958284340182107786906616929250205262144594696770285143292482677117928057985182335044056353116586013192914384625997637575197526409463121270782327607148695864201786372252823886610597923892082614598732853881770285545562981678530838112618344660951671950236351998906185373073266274055811454310351389354926001816444795959861622163561958098148980299460045059306858322395062133972943010879068359965386990834241489958456379154379093516944511092620164372087694859547540383088663265106198364249981845288040392168085423760854362040165717966196841113685630585200222787751157058492107326028074308095136187172304694834288382461162682829627944602820676044849186083275644505312976122391554466250147384368433387948056572336492625919052765276459015578720491566392375280183913374919030397157170048556382593212989744348981253989776875348521878363371179347451722655828930180097543505592627841077095338876049460029280956082023868093202252378716244767966176746781568418129264733161413228739107815444728211311422009575388503850176659178183152661110164273674538836590665132555031608676142923936274866520164375686221995392323051991167073790185094108938171576332739437551126665898556500069533432982898678416829480058833287333971503571829513716804399120004784871976224800610962620546294978493454370194952874250118365324059037142423279129555407150647024872932738811846757422196002195385355278234354382225336288729562024738861892233744271082093466295794421326593718293821090338053219349690501892738377354938578645650084692249318960012269697640887626055234751508066904595275358211860866245766803470007110954257436807492680594803966329547830022600798697344965917111297195795564553001736368202751073652707224308801193997933955795994615998371637331730869040973154243491018012362938366832420916033475577927094848855850701213980436464261852875432268741767825198272745281149117267104649754645798593868470607404036049811069650948007652225576558810949171455603996596211947692103918506163777433299865085806587194251214177089414077902547994059523662041724489838953489319522129921552682556477481517914655521376937062361254858991787425673083916612046522205639455054987998851625863672772845009733387183369158974830877900757068470921351948553767729104728392382185090471493276666900132193322513175612885375914117660566991441223006160070835111099158394851539883733362191519468782554464098746947372556899406214264004555326618789272930550209141442224572111625527547117887496858629975225756367065338188221634062326179477939199407886457373598771566232307759293650066595762723023379433534147107588901566598306633528387082154594127412113435760908888132415288818186805274173041983630004062227700004130343417352198565217851159042793076686650885285091275436240823247894477538549638332022316423244534065421686757329905521863076150687005070916757604208896640536096116942285267228498081795695332641426135923110561349116458441182037866236651456881687206802042064262163825663206902724646946503251923664205634846594348870075978630570840442379464873020230370761140391410352645431860788786706151262668672150532723716816374731170226724264655540938215264234813153972499094443512889033376562341556816777275750726182957363848679634740656061548554872798759759382561688450597356019223014765885066769441380791791057404068991857779158283777730219295116998108252776369200136964753230836379051743750148485898550873409397084742029500867209167370363638612069543270518100772114311730694703642089809289651422936170512209264658134358475274401955457300130770409750564863961326801727847580772131675394727602624149146175967176800482172585936466077132599434044343574111823200808194652923666103990280252181840703565572584592265331306778719445791585205595758207711945848451171871673143783208070297415561542973420148558547212511886876210042933379445958983067721156824201245421644626416435150102982820236317383437613585512220749744445106598553236877854936795537858082428043620463384146269418525424699566058833290034176808943001864595237542800230089734217457901316472383358762471029600430704339250830703120119005172906848886787399632773763539799623402245162033688994039141980914188523852618736742321722745696462147482592568922160293420476102031946548189302533338788856235896618186612745982781078790306282722822798345963149340506783538327120501067066875328734424579190374287105884021145204550372206593523003284542054915480089280729360946832269914187143966526647195136103917797929630448531138592316290293296796417446478937755199645223136739015883317989824177800915620461881174576611132577946272014637649573134064646673055859951271341700635152282332314183993211215583506704134829320051595728355470105083353170040873050912636985927142377469753917873188172774270442809336168414057420248854422367833172753630398634996153459490458254278523943086558519053770798893007213145105403341542852987496017716050183687914929834201797388516143285233947594539497197126799663454929123197002057235298586678679393549995670106381616027434840571431573196566326354331544884886729088249027448347336369171802667241256321872937873329176934923993228522727362195890092135065915937654857206198104274202948950740543034340128653785528321104616507557775048399904182049272980309553696146441264825023928515096104240573789199345521606774533409972753875325051012856815852920762930710140959455592502512394275407086234135290935283374929689987957508642629717450426567511129673455112544259844813818223695579992030139007494381514148113146359209457957964869197509792218235307099537115789590787659911157480319206465076621332694885600163019378355188841394698034142356578609381438318404846204823094611217846904005382499785017775893723307870642422715335236239052556706718810682386136570045817846996084496050871814904927405675531001176457696406651554676209310046482984272416430552200555282442495217006999821923558674479686392422516549453708994657415309252367999959644004568756430693352112725162214020328576709543603514789295241912011039609233531462303597090963442047278482326617544375106364923981601340221947457231436064438548062290836680088973530413134979526363860394584876699378590223033016741506169066986091562640858910332051242750915353882004452680849323539088450194698584807981193793502720147163604323206464031771290535536945063680446138463718033755210111459246730593627093486378804709221578815349434213426329007504697131897992274148205701636996022415282410160335881164940703837496612945234831541312026458806858892459471857393781738225311821997204631517698196211923208720282305824242281016926005493888861166998289417940090946058065607758907288111878950228474000000496197459625932847391719962309558302311796378385988790139584209747566187700400301523746747158172608372716676407969380365040264466519056840939000352786345823048306146266387948868107984430685738504255950113593331360304326217656861840598380593370964909552655939097898880782323001920713412905593440123106307465854509392094015932874516519755951844892675858714155814238539524855454848665829260368071126629629851335971954925478215796360419306797740861707986136777183084172159061972814876785895809054207876896556962041557110604765162180027635436440406452845980570834246487146758058345444664946864072033273539604277854838052972917347278254520241261464671186829702014712042992890028658158889603917390003473301351974530868897622767256432240654144481800103631848376396826362576327002948413119566149180554664543313605790308273752731617347736136174021735998011225682886272692763800810561180915807746776425697344525349460847784170775364005395290488450296749753415061713563356190507550152515759835269918884097624205625198188203899186105446863870792787743169152268733461566919803301475126448221822749143556683403744464893205759061027818568932038371951905661018715483893953421588553708817833709408452461404665618435496516015367605161048307822635444463013562236458210844209158796466679292525011995936506474474930770544133663881231790218071371976540738940477107507128319737331020590040795590256842661180830069013137413921598428625701638097436088012320602128554147785936809455707891242677444694303136810482333703245986210312967061463366097224121262336497100923249395098712620309562347589275937034304055650673898498219253350783944974049477742487737552762999460606412034453716992446057099671044557430183619556279230648889489876501155280128044425023179586106741216593522727910375484468139145961894666071499883112437579056463677659141532596816459092705285541427153712506238670519283177636060135966983618897463728693705476944361032726564490405054996415918612489612067504426096368624361210187119326835143824920168381216310349323867540392428841333336194487308180331920999235690852724031174319278949938082825340140334452639626178393858380904391714171592518192676579778167052059385555931020284268621903668504143140268093317472855624263946504002778324510872958019569395966080328887993518719764690815615355353309635138923893636280401075927270027647887621866373407578224041318754341565148372400902542102093126627020125598292176268822506663940690200024599333861110737467078021703238914884119110444072320737831933742536912466160821772593477609892284013327530471532750899947212084766917638900274907508403909466029852394045242475352909460196515712347106142942957556246232742236754831831406010806582288811515544724794561607177520977785177285125967471056451028205023681890860855356040850933299528486843867399526627954626521307101596303043951052402558166060612926125233841691924856576336843901833427022862054802726390775153346945298824240602985354987761830899222638739643136976721843401408428127939832803658211001618806685873731716805107519124133216493355143931049546048338332713282750025052111599450688438130045672749081285284279013120867785145315345941393997497738031869868194642241843043681196178585325341846505300484374500609393800428249548281929075344030823054238577864533034552828783223636449563275487585466256347923633786541392350852568045380010537876566482483799952087909744834123894697629137189255708021161470823594507877365244259153646617164532914046808088503641833614781467772814896969717280208657779152883087632085775811773446258008633551446415428145790568269502005897250856412014966463644605458444001854987315621702894706136525807719986145261641891445267153424775386628469858734809462489784193372151236696488400722899517101224954194088382998835353080225706340655232616259939465345522780801095353124231187775873883200958422485453223644291059284252824299927809252368718379689097205073095010694008852144742620974178632434003788175293117714724252901453051248467133398331088187700761440628522982507516644181364734861899001077336293233996000363504061745926116945278407388721534880738002433835590674602712195420569182130328363345429151354676670635134792109288786918648115940242593006231284862439304018083458813705340573598714603232349665204255069766649729516275153853090930690169602648442437305287071941406006027983956950907088515917075836482460432132564640097064703230419890989186612184291688718488712345793474517693744969429688094236344456912043119708073501031192639557663609004586214837591079483857739460690696832290893864291283446178071489876369817929534934626616173141630081435231882018830890997633784871720922828929124963262032422132042442454715316467083229238994441854498600730454520167843157681178704243728488467009355897282914893450225591592938064207264187481806623872823651139689873759395395620928521655770767162869149193443528913144297799247441430477168246345842914354930330119023474073285305509252565444189329024886545160835381622963490123518756013577373566176706737374546874373030478839121645307638248936001111127881751833337743077311497155451874438562181970709756160280126308723154847640548413809548372729207281046900242604022496729287872786393248664482597551646943934291207381882566258788646849095753288513607820022663143610516228636435636754128503965754159658343336954076792910233805834763630350611331441726311983205474711813703064615032225905671733758297986272701657483198792778173565443193743556128673079945449103288323686952841848040907941578604325197926312843663410957996076200099162306020493197255331620428201990510205559805069571834471561861652662324382253929016126024402784495259706371398611026321742761378635366980003358936386222971486882878371415359287138634709170124833324308261401718558003603446237506501042821430080300199186566969298902909649909411761473252424891559976343397213327059075267177964965667691915938232183673032523037537063471460131043295775402486464249691285723726287071331570911248759396928173726578374711477604705340677479885765399419892870994160403747767139505350221450663591942790923059372058786695549384577257710665302814367768737251175527217210995834517195757392672790586571421553938654854402477627364698061800595005463252057154896348294964314665547230317932499916934390744088538745467036556061731993164758256711438106084410657098502111079099327473602616093638752989011828715912663619500489071745925865489917656948662855607140692941451231775280160301977617209862808333481078969982579384900365122619042700302426429127082239846772250718393447849990587471134476976395339093700857330632488229219808381236421562416853752261635101162075680311934819463981583531119089442233149525786493860908523501573424100794246297929394787503005192755756523924185056126377729668030972488340336086837321460836705164720921691963918931744711745379661927342871018858770112956798064505811673488672322738039715533395998420189549947751229204327368614071690764010901939074020652381230931603722996062538902146207104937990008983598205421455504096007715762286341167910689732533737035919217780479473797249762323640041237304155000272203224680246824774779244903177220664562191805823023074408114960226543437288821183136714050962544472147449557715193970300515220076537971505084188586565134013373897144786256121648723040051401012732564021123969150095058664551770260292885564037659270826856210025771824075799262162566119695097114569851414123124992109819832404567712854371623029869304542019701993519044782091307289977544868453222987325173679566602715332009249353679886439699881292461492846157786200001215403169980174199002730783155434380156615531498834804218486049345596423475212839878744617680689858547198026131399037372072867070046833943544386702728521280278659214685487435600831634522128851618117358631717838324363716521116456593231776259308388898060341922568814098776039882595692737849226519837296177455145040545721057551905896294730703404941431635120897207841423306619232078038194944885428396980033609849554459106404938059428225038067469660445747853385111618927605556656995724236922343917508364749617472019489879344834072470304825572237274957094954215774953180540647694449982193115172414114824164723572602117962475818545515476750213591526839581919325482490793514756253408637083630652242290719958189688793127545308047653076752728987141675992253439835579100767767131343166479098202670660260013823938865086877424373360753902347131718784324030370901672288953792033058056998680495535077159728512091762895806954604427534182802589370797734681759647660471292612396460592657676473151506587928380652851975105779827828940399316141080910241278398000550145717567911557538000166753268578463465515629127867127737499411812041138766387991014729759391461340402924860832607792685582130386855404716570409479130850541863747322157107467594774306818305131922153082844145395308641647555693373222609489087756333107726531864139716762400680215402529779896532876220697331934538088171401915126739196536810775334380703074098599100644945858449514892359993070173958291362814742617375145381271642505262431538861241419873160529680147584924902288404928667624623278064282136769839133269646397317651031378837417228200051541139688848043378659988918761363859569207436728733826904347699729789524158279606653543932598498923825453772047926830869448447964827654147851879374695984995176266188981598728728138660107904595912065285219388179104690961596680421542193999584902479972817635125778119923867599082835157288107114667187462861337356922206529475833042138430438717959220307041213093765553374312000931112137478463980161986896059455203282329429356000930942024820170019606826604993912444833565260801563848019799645180106194303459412633577873239460634279950231330601478463830455349031559725360744549064217837534564715192456924591227350249687482356278763193791580308567902967085273480188896441548481992208549325991150070123147584417436166646156701231697313044232299648084944629716143504556713049459164985434690646272152874470431576449878703774820733139016003823865266724251619170427058647075276510565848131656599420934458198528885615305855304957065693096140171533658567351503966607079766502168348040886570873863609818747407787367450501487101346832225779387014274845026729982318949717709656622468189339710949333234996172158699186923233913261280691162573199573770029573591465562056155294576821168601913669902726413550920919748330615100132839581823023950956140612246325403617198880182554328389692125546917141723762398249295673881868905948823200545008366253385197599085948016107441109443322894164199564131755287938918707255046107762196496715046388525529570204830755885602955254581115312638719532122595075457850350747269818605056172619727861667475447521545853321745151222557400947345455444692863806184014149767555859772418518325952985829742939163313934784485709411268087821918607850778397025474239080004637655496838855353387842130165718057826752369993862583396871791824734084857157759020160738083546806487734041089926783858085526994191887785369791964631571517838987987413344174051783759176836103042884049976956049304074663017976938420821937391109176187629852144342368086127778231085373265540893823817424593745305094335182242713299065435744764703305768686057426755509123654404044828494572838521688162060497313413799047527675769875184181883086781816514583924806369669339948477975632633256288497678663862256507757428891633078720746930831422380239106045707101151510366042964142877365373800249150899290236792976837447253434028590552676987785747335426757195278032213504780281695658140868499243315391457798789683494559214061411843399588815845163292596533114702945532897953489070076536173889942893877480064261903251816737685952919251126585065055675100919699966828468349905172335090620178035037302874706884657610989368250691007747549868801132081726356835240880137940449499085578211556129604685593643972886433319933190598141851467578525688067019096434562499611022431982215003225793318487279782288930777123545890751390629307343156376480604235422292202188674305197039739596685720101347982811181219315852189056747985460906160709606312229928738467059283643105251908191758684345709310052409559105502051872129031652671440083070877128684571360045541628355581441109431713190403293424545481442429194851970586937303311043285269093932441954057758260209821901420277194693390689851965475350284135137581279042633102156427279104900114820872593065322754034905778013987021765823495345012215717104786875202879034160949098821951045818158498294462737152392821388857126308163291708831628515069348965949750905701908910921018159578085955465377915968187594019224044630883136107251825956357129509924343427875917733606675493681322774223924175351956803087050955472838290711597441096469004124170371076850400165374037885923955268502007327482612037064138483681695245935393945809485771352887280024292759981970643420901824878030872894824003021128800781449017217958825069817141904350298170100856620696664863726124247150949761294447128147933975801955541363644438506200054892430471017895648102254679346259361607824015464752130829008141537071327169657609299464638177237799298294209145942689028548930323261988808962631965181993288311187356245666664859923275719951787495489966416555589319827871402560593320749671645323328274340226202611500686804687833168600285331627410618102125095934748062676031860402536498937324978676804825818833226314454088391743887470153548933857278437829744933771301567078012339441016824866386251575192561714734202301118873687171536201661312712226405727802044596342056036870415878624527862338199425196436017190133243398441505014001280731508819584143920077466641484366762848305374404462432366788556011570917112905984995759073445929122790910796501267267161192359373655361863627013817717957372634116159423326830034437894127796978883611942924108949978090307338157600734709313998098115917522637533017352691325980453448972466581664000356211783121288850284291074190940255929684769135748360883933253189108592593071342974952041180108143741636207963791559127069830454104608509234563160697964778679744599023362699109394924621327072887237385463188292502647406527741091676488248000381869527834663681018341903056714324127124825753011617073881982512260294566898788492539390485900120547149301583573407391781496254323975138120191602270740426154595835291689229472169213212564035472058340523732969486624900285350166980369860232997401386293073115229399865282959119614474355408359609396102724163135872567002735606888644686829579799025035149295922870473839171438961131281021118710522251192786239692151630956005674117511213589672827106877144125563725212122551662710297859002343978528676713544578337535048672472874178694207826766777410636961576282494698076503853250200481788403750252733175091692323846795743211878478502892794651143069898817655206744659762525892169691727616466530452005215240261430666130090234760669402321043937146212456049135693677176537114788237071832886215148385399332532503278532777830388624896691906664752742537237948400872903105007601230472285453620577776462383632985038698683958807192647985517932147114487046819019843568441744946633134746361821639317102363742681714186305689427723554982356438000274608743218273250652058008798452794174093285428932633909987546852245033534062700725957902411218305814921188357544725881207916655894520850820450508628075993265517764323469346614320215255338036795402402935584601569506793148589948022103919677517263980894851124732262115904251888102301887060825433243009958458713040528954543441167586641618722442564327979778323756127594855546320091696311342394097543889231018183541336735058406594400194822044284673259832865912902513235890180146405338527361479745577009460989131914750369969492084073924341618007313100103267930762401925726506260302965693480865136197347865434704853391610136293252660390357219664446401309511744486767049194375533544402381111351430305592896823920370489284339170130064239482559695090051665260071773772534119735416501412064524487873030690440462698920004394896549502711934489678746263619101030560031415023693538011177755418585573617782682713168403565304199322799726125402475589986440634812427531967731183894429964497112404598939358719090031351110362896893190120214614106496006331795031259246029998732224938594762867329977100871170539512524904484557194006962588848866395922506641568431446173968603629516014152651298749667577060247424722954612961395103717477784880055768089610912257959767929670121713891168648860333431788021551646841536760672798890630148314566866429295973212203261771896628657933539308435899339742048872671389064227257312688546877834596804495949024939528092327956803066801517914930900374955745164431002926008894927532420156497517707570288511761657347155676865139466316773844044084914024631857884998982868496057385220757327916473310123066822001259092640363055100620989874458198447340304437750863231755850122624695147720010187359673936409746238913154483268177647295099971443120831455358254944797192634448029469261623742283285453998942221990768040685005905335859906144513776358980867064264463395630895664969388368351173749777471836346273724002360635302126263508867570768437408804738626206141704134911821581037184422474089377804960128032100878116458100156175687418595327105581197401268100077132376230420778444915980436356089967506187298354212416522601069155346122667029722477122018462602209400849005980528248133482623314128737132705392644179086039253189503528184479026493991889499857968259635337348485680566609406440811505737585005432248702273794126577171665824042098902013435678651854312641709202678178345878635382034224817329477479557826876362575154641519383794991489104732486898695702147499444199901612443706029091757033043583312534148654729705567049923033112945708811883607561682911584191551032405568079535148441076789471793727435218757819456941855495155144541170778975324712255230134149594238643301520834057791687834731194895287629027582206329411577030388711916682304863768130430478031717477824942356561492250305184956603369111262403909606315266320263692373044080298177326148820300737381254352698657907917797365287916587852509110907454478574513612511026140896740614543457270281202894586855585910321540063635867483119658196570803526024069792149613022034565563473153338575073687297367816090610181594546557772005496029238316727730437972008934378712150022307420256560573327133624278703833817168459780384927656192579052346289305363588214278691643633051688676340323469914287232219861300735845584968220376554031323130817528151238627072694364361416166468108404748542492226244976936954624671152619379987076749198717223237471221259239476621322200418820418598123773729587898055108005499687986445476764609580033227227374136980729559545784038379763124275725897015777589760017927487169336995871618792133928701542716315145307621739733272159547281641725878242317929998750897865773565017617869968756370117866299643947739598044185796024818525160216099247041830294004370265438995248864176044420424266700799365213434869814350970329577192897837102541679484192103047729103465763197998858625258700752542597270585244238439134229369076792713861525777848993991902317902787033515219562168935962642652530109169998542820973654569471554651760237821650594194930376569660746337133397722890749358819571365243857783777333882941886723322551453444381742683871120209041610753504863869148570155599494386593400673330490723961764531043600781286464587266341133245538788909445635559686426297510338206731800707153867702204554215965702950139754361904865476572273898476033927635189607073414260465151106029930837705383146716380325932711196678100215845185115466456464575688008244238571384044946871739598900235855031856606037868356370206299384604900771110303766567424832445370922305812048284935749530974926899387829550216107316980602480415299200249487539129389937093952443876747878056582442130713432167336549102272775593703068602012244734743505394176329736758396503459896408714937631172988611413632013008554074005029743588919656408872329906233018476219550584170274663118942032728174405442002770580424212578498539935029729842470142259132119709926268539819203978212399785356222718874766674509841517314013490015044649290571288217800868854684131892904786840234210232912198771513308847135061678292175367042044380482828734518472137607179447407275536228750352930799528150476044468775348629925417223565093540508701683200360178683617312223183276653940696512228356491079546641718103086907185225206840880009104516587182743279831982736554561307908773520302918596318757179874702785091411539266315516632692935692523874084516871793863547183292559805584518725254163857887565633481843925346742949620217936917792270770033382452938171792774092605325207797536983832394027176474076805282088221228449106464303612744455036239551317755766958014632617984102187343117238936878307240203077056227159392905899527040887389862270187025766185892839536477306840160954255368497374848017109486769405075360329682303586527064108660638459631294890314984469291742703827189912902874909217622314319334905248186000764360015813824393110049702455262095043421818718782099800809474874712540940984538164100818678323071548181714219030757756923752582999998618197367259153607702176624089729616452200576888199080398356278741814410241110017884553026249099994737542429123252661154465307063388272297928051579631037846992192070546269016429699555377278696056096529771064282863081556641096887576618878589087496855676212315915059687901076790164261689162768368347187884905865709955780353904410171543988282565398034378507376144149085367947939298017058091347584965436884139416267376514088891638954837833114543705824444887912629279966602833140861256663345352783374295567240316316516816192576786989609981299551416676335612037540124535977505658516869078459783551237906557199334633682195900093583738318450893593631403350497737646555366133702345981487887884331440162481680792589077606866019480119060626377914794990695783093333751164699604997596060078131670684572459808433570341952481434578556733151710861859333308912746161420416006269068277474312082953238527816223784768996185870563117696218817781871184308096989457046142410087689989644176091851821145072110713476620152145403650474990214051613761376092954289154423138151657969939007115092042380658971894546251163563814015613466650043240919531799662670927318994504085073673794829225133139452610405198292844780825148605676370159134316565654372565624622562747918641077444579405188371628977946320904160906693726573705141499208129445364926700724561489361028769367993764229147790060635788665512210992392468127049952378956352244458034348895692595053761690579263488504854903809472019818969021258383100741286526355042916770222159995359413726516662654168639511661585724480748193030007586964368972390612559352089897232736175962881340974843445483589352559872709535788411997389571023555378679533255187942162497656924173609464839065591541119057072996895533638764077516805249913935534074629188619347248365076881042337320741884777363128594124046863271912057245226100756540175929187671326450305592926742639464348713793287351393706397177159169329572717485466061465643422002013114911173860582074830307078150895082362299590616418606091703199894266086831639941400904055106145371571469184371644873712440330047027521676716135115723998890407696694868349592127309649983245294618014635413350644560671689999062927716662179671315187721360938839183037859880005464391223794658666121881861453053972435800260551192683701062575562363168434239626996971306671502268441371982605485016534297332201752272776466939077604287134832598743853155703196875464809246308582886229276701450765650876118508625099311213760090856742571932814244652328168955088566633266448216520427333372449660364432864309075719461453264398498896592002786730175961145903368253628697121319649531412253170438978416602796632600393882518101960194787382133928665771692329945186748327831247073910681243443545679206547019307864519094777638802399965238547060391546795112253668083902007433816438176981841556649496418980962927131769919315646603146127862856793657871973139852071813085361718421363149773933759949294924668945503347913941566263452865151578047610151471733561846666808058491897021884885926219104817153861750238674318332769760401356721549171862005693304153371796634337634903077481117877435149557179615811943473861853175184893058569871299363113218150103463977846016852535788019423340204029348838309829574139126838488677427031037824072949879027803486123349368308344152198925753949906519902636751816443047161078539511755306384786184796070531079318062537254569855726411299703678849117356750504273309897832363755009690591235516864070196746952873616311523425414481783455985012002868827470340598349000539416743867842516284574424723296460475010106694958352032624603322873839628530285722709067399528943591254681405641537511259110144378989798353429236691871196772372009872103148993621371458514507726555644820565578949663825680554360316788581254280957665863047904405753634270570965624289337150297581025078019849251574534784382156577693166113090274845741577029222598363456670601725387333919153692926239286716910980230057183395393588249706330447323846416863130461638326554368621092089003769732562628975761435332385573059932669472107066036877196876634424281552489401519312511122803392931948995195840294325962187418680911145363256431294551119011562068408317091693331403341642279780166253778248011508566882718437195111954334920331421570865204738790538136626411170374852236452122533339403077034827103229591353901498477270423878527592710290162774699259574402012111622027251199019514840852616395536870244236251596591605398838024802961373993340665313931282782275620461414452651551881885909816038829618935390646974773438740613762834085821235801690471125244264087352338577803535596501369138893104215245255024413456072057119955158097458614868419279779568433688827523677484708842715626277033542707981458438056909735524447545139302041151427221994780212824680936502010029251347435944928321814219502814557106337821035641502919955045156645202374918616718042505995488267515904021747253390239928094092848194681844802371145699694236139040152009401727498282802658236395921473346896246981843375511275378807022753817989006840555595841869202615519464444913346115941124930180431859784204953718279146251032911669182721307200552422815017599798975312920401858491752081302275535522621308827210977893601641559698150409278156393085969693093215929220265623407034887752283903292157128512081111735221420868367238125729997308674313077607610294155037597977630488132077474047247928159860086537854107481801276968682694600165990619600803595997275391881276247689511472933261019668951158061702020791190147413999800754765157461702093971986075201369763103514600745400676824444765131127074291774304886869244866760681052996020868144914079520379496044844217872849026462193180813337999521932100168282678945026723268243501520943528606296524615064236727836105773098366439393312665741966486608443121000885956874978607177680756499037997704001277191951984014170721101275074025972375632441596804115830449343080492303107553964717372954321567236945342629193276730948437623110607361150492813087591045406920883365978979251109122298546148849106615363585541956573325149372721359565041748331585545460861996230745955019537960362234632104229733219329038392599526818880809031518136069420791829633770801173668257518592875297808051090456237450494480878496872018836293593641619471886245558392154470562250096054338822252218845121169593282837451952092789962574841019258113924608955598702514990703915869019786040007509163499562176673577330959835129594528890069612777795277247696461901026843645061020239225073983848462420589660521513562399537166533268847031158275304969499324206230864030814452093369623306961005703037179978705970503672630288674681942426789894092029838041440239711018833942619504552230001723919084867753987922085965670682543158438550291200950061895055726065321643931384242452484614454550325864755511856450292046211356811633260810197846307345509416192751031448114875866444929001279294955598539192905437794910535813039120254356212649845335832568382817866482192652163643558754683541702672096719820894596574924062980330330974758608696960695732767391281232665357616752365977386460066340264036504565619750099121380075788261211152977310200859539328293812499673962011051060195427562873560653114645267564220294783269497700823217016229529478438255539536287421770884773825257922723520010112999310613215719570652065794539627541706986817758195366262048851516594531063161238419845092933043857809663790680969023068178858966555231698133295969867452688957357146951836228001575246980407647550114472849064513280003471146108865861389439444264170718119912559127396447412534083199731156970707913359772593206966826379908246367739627569888823323734137685918056587812803764340028676987847335288656773970132335708325037241094257937722768400292411526993983347816321639598234976111190095275417661044196424252789734457304388259481531103042310949134802943065607118553507091753335826472419630624513996403276183255052995735271670950506930018904600376979387595421483770217604672770639402464319408871075222616422205812500425645992773016195092653453255126073845073557517263605031319892602499685651560854091989122415002992533126330726356569219678761568151151704338888010813550548351393508346515760894355538055573769630991458616115751080750572723471535858230145451355863438221514832136119570631806158498265183581967344658832033233275946449292430912552793382902608249460877884396689292767976728660538300018150224447355047611574164140188495447685724572560777757485511883508455922282579781526686907479271511300862860949251359886377041435134170431923289148452919342878964934099184773044324141825042564423115136490055969946238898177224532950250248929248588966584884650287698762677804155684268349212177399029360191302091413982380421730654025662546216228579478207980459187622957663861030013526220452712551881823666601809762542083092071344848496534240884062958342439807122737668734857530408202116502628737076298176569525032868399802486275139465721860082300072189670210059416323548264853142919625579255728651490882238985297620035401703055147656232345878539305348197245927172282654162372458700767993167893545568851246224540697652833288793800603611430605863143231820539397804604214190820218227876464849633993346075120401289938636009829390535147139034083586294005367627289323307202634935275632159630066237743473267199530649432535139952077204118759129916978622350968523162954424606101569266650899837343063383773108085726462954627414731781323280964112667581601152504257585267412397141714360090142856257492383145354507936500272513822659833027791960976203648024165066714761162198624519222144644633335072143038999817971388601996030659119010667997202117973510241093455745321156639403805466520721008341120114594217169121518609846604963172389677863374092889837099930741535189677205110849821158541596407612407536738656086436608561584231596553700141880424446414621594847967004386320923841700445062564413237897860239836104738838909723577659954943292070416897474227172234260387193582904257592461226181492845009577202340946230136875549677728358739235871492081866451173649488176078872362648466211653968056441565051112446540546791144667624836270150170879335866708678235829200729837978260545930514657171628775689898532029170753982805285972055161662543074430657666007649855245970261431749408045838189132549919463876443240651540476126228041321387827617882454480114875055019719113406732865988687000398373326186388431269347895337206275699348155910474346681203839464046616557739220635316223065242202931175556854519739747679222148692817108713623359632521854646285565156453336741023886049423132145924065411706985260720631993617302920235751339457712051064030751632063369718981821284468538877532903500909604562469678891895783945293147563107509786156177286424377735686901960034205559121181333654015136867101910724510822346074040877699598379822072078615172316072262901043030367049767220988189106886471659591173704435413275387801087340525787414858402764151428508797122850124991126904545803960720995534621895683713128316792700526907362298356871858119902335016742633857798077126461046361728411041689931875666876698425966977849452899165894089481438979552174378007041216873553048965803909083675412504702779129867965779080516545310479591438991160073624724312383194324868984473387712796870404152390023107004497583040774132010692075338917256854735573383203105618403645082340311301799708512395794949602320336562381231287380047902469323794906051417471854743458472253259502099439693788830984944286090417609651277878764847686789289966432156304584289009003934600288115481966450431579726489904037159736609016349063262289111021678319604710991051289127655225498191366466113750097899364874419917773943418488534244422583697028399936718058920443352004233448856443327559868273357411368503651666898315211753447518657299416641290073163935026808731384475987211406405493530101710125619023697776352013741156421167848706318291753791825596782458069113753437621396079474240760174354818990874978325254410497315315325154617628178955208466226088728372850281337754435817018032505040386644719753613501126528085534987360922396218446019092700288169644912698006809062729009710956425197595883880256370669385703176683388417442299842329774110377359469396668282295981932000391335916281232184190057434752327644819550582519732332925131382725520843619548575636706716761031328074319417452788760868500693713174693207489803787325844656777256914466110006624505077004641005068874498624845074673593112237197616839926370976283022962500006749902711079158160341601221223478801875850159943681485117765016512048684525756480967609815717151531433677493931077162553885016650900405074551535213424796041175673028439418074503432308908594451283503361972050938477843551981381943850929084830286397377728895721473070800178183144812216507236954023000078974373302927352643223258180994542355982767709592112455215642179792729190505523546265542532825107893403759498833502015650349946688989217846704732449274270866217274811164109712174475533922893502872079477962307345975589817698170699230750027777722895257422677641839662777708089694930893034452042813403333669970118381409179834321095479639505082546231075409326727462263298821932394104154801134054721881139242720510921637564313659181411881756866791023338738136987914167110361071460127740214649128271533125843833146670959100473161796372480821907897860376127213260954553063850240074343666318282948669102419651712831774486006358361750522824624774216697984757344810320980354183026034012259922954616261948845045386353095658855547255243589213834526318590269827918048719774985542268163838284745021328844495937382571610190807957688935349067990294332620869044407642428260072820066613945316489373143781430917916425522424139377723515796356912824410777597249497096134444570810722146841116197401495604084580499571818558416151250686543362801004401301502825779872059129924639601887698881262082389591838104082671729883839323815959485029314891103657715235451186699580622478393902762684044430722929191784447506846367243782830138787261374185483933067628987918394509435552117297851457919503211504646475010666324336145901535595894197476130894434864226993499531328287376542269453976783604506997353393840556328308976319675095857083965176363747057397190674611514281436384151559255267639322821177854332264784334811460152927020960609754031654375747543315023410272438691593989718886685288377206124142018085799502269582152145125680734467670410138192570716661196389418881985098565870476975035449618234194568266524625706655740732936419804483018647308763579462714113731366796065115492430541142756278907321117498277154364633863623337495510133699555513062295337150113437302106034056654760063624571159486254358368028086035107134328787141005827764744855782611102753516369483762016643157022287392218781146607182774642615565018328437114766027765159604812425365109366905782221550532991853860847774790574662324887129726148808683776284567080161463268905658449355406972351674002395883854571967722871067169721735641863614327460076728700051099252939983443454798258548209733605316179193126066095017369374168064947629836432698097299429149155297761347489220433971091340627022219212982739617224772263685000787619452882212450857325990403344372633651561310236911835970046470349500260943455082643948684989107282115292170418068419228237005205225890607912004547281801838146384470794295568395686220301058363770014015564903354130852490352233122277505964521365823879151668910995802190844891127214201073396615380570301127215213991611881658821183570311543748760551125239381443065790288334693579018938340804006462761964079272545482378894415821337784086083361178837647973937990184242778466089199903065727991761480034184370597138778387057035029205518409396388790586153720925279670012014614874900252605213267468108321989806146613308256739959974847423103351498928745614408773502625215370058596323707676627305710922122333606371508253496070339853176730567815755805864401336613099524866422170243571757987574817026467482553611072108553778273386610560419305529624692250446350388658828021735633835523045604573533427382008055707992627902472421741633464243559134842090126512568975139579694072955890628277975030168344046919675283526838277790932896939758683512268419682588152269125044921104126411327643290596324527114991612801554461101383283297232932078921803111385215743475196679412308230439791828426273663080202932124831622188186979399589462417142665772222091570936968945812040209217018673272145445868257812415606450355396002315394470420914246674537969360274292916049097952264125189293063218452788222848524803624382999948517171849406349773682179745835002359415208841873893175446187666158839660506269423537064648889873847510817219065015723974350304895920922292976613462313876952284918556951982439686070283846301871137604338607278012400802135817332336922321885186244721308586839649836637339407494865290919714052641831912947601329140813338764376566109414452739860263059023451175540796109456356113183938444571574414294704851720411991139811521134357855856035150687054549701258985075492889815441979438870154382609635181411972620364216591947903906604415875350564559598042240309385043347149292936933722527925711387635919953641015722010363173733673165839499862829771427504672703879546992272283025322541768876543375553800665844189209719517764356251962864613520684230607142815164249595107113422469672803927012050278093016564182116126705761984730967208425860777655387014603105433284852902718109472073168938848125834572214183038294927807645707187780286225926952529737934422799724395962189144468839403392268393427386501127967957398221774858263654673218150497412460216192453827629944861194220664355252836888620441977610448134825847949574794203899592831297235976413910833828839635242732922936915514226731104129034406521715332990253759401651736224200864466446922360677073914018032495563296927111517432985902356199242754841391679065844697049120845091360341162712577553079109438801270800692429222619047923076604609765992656261345988886054828399786875958708668678219195282274514948953488356528711554484892781517397782130674110997929736314185400713120147134541644639915927425707414576968430179440643143808616226830650815600305264092716888229883841622533090508938415265418183615082151219884271075291428135762836495859737217676773171364072597734115811253919780504378542683066142617196466028897695074742246773762562515139977133494619371593728223640952646314147632625195122137609783813900554823566887374822019373958159695767867352033349816722487318623678963164916784879860883596206279329220889186900337869230373078814114836130439925556639237516326542991612248961891060208886362918238837794620072446960298415857480084698878298467330487373965872050627936170874199860821142293966769576874235362805706376087218173002667012712939938049635631932542523330321382085367018908256955456029429681797851536041034217480596317654356305930958224195011486247687957538173655180754309701762012900452652991068626417850727086678882683731061156081681172892783689834712221644562790141650463231763916288120912418492692055087631656908716278011901267133505621616538975888111889738370895122975016534194494240815799144516921248094608183167645539611866402937607649320926330422025295765341114213767581562407120613743989933234853643728160075325145736746092218443126311044702504547538859025642596558764094110395473393410600845134446668105788978842798173954077899545752523107674262505233413099648323278665945574497923324602462034783961970538807994578256686844598555949084918320858614008091133674172382998946470689281275624536033682302367623220702351703430843968172105630017854278446360900537436337607575971318426240166292065949326003569875482453943900187881844490528061226017818514396909778396770840215516930271839894837076607629711745976937329644630214956185439072522074685079318192561898628492323473688573847000823312748419273412055762330366939964280571391021624943992609831537899982727522823635595504930615953622857096054513399289061016155220849826765086746907303121801752200690717854599372299611279817860518614392032656932130115160789594519412288147972899604626065622956036235806183488679395522827741098570976003814654883527238821179225707960675948676296531697804624854047099653667239526089496670533314028962962058266193348075052540078238639560241317764750946333700125298918980275877744532179539116903701357468085150346217522286829947065406471340072198691649683583664689437857680875996718193910311898483667417248063806201154391836902437046082291071671624497085286415209394880364124430703647936592950919909616529545909006731692277196217900310154833710416999194635777287581553270338826226126405394416961460949410873542974095429217569828358160968584924397647385851249887313410830013819766219224095201990079446009356700647137768240932492893026003749532449827796609749363947027998538938778523650137489863498149568474992030926491656710177184892304622222795885748692804182654790099848143109454348169850920441806568177522911282875873580683674582560017436911724191658319838495902642871722932304632369333453292747893593095788209150199034262870101859388941457439989671869661237864937410181466509349047955230094548840624307258853042105247105756826495180787769695463458562776853668439459453381821601301058814387773312270943913439910021353287456932247986191159155525240143382077074921483231425348773526349514918756693337423500141607826556277111679592738635235308637962597846111076310204708548303031475233309708267857836367957874975783657440938263293176750177403750465548696321905693733797288288254382301964027317676116353320285984300651015763641394223413278039040481342190718691101101447494265680968215894728308624166542796507752068889131037948549334017237367909389911455752325381344840524395135291946847793332749372497246622360601411955593652935040304466890501722274204279988073456393319331047203472596130826264296214863713213758413688877172522757979461746428948642577491964558886224522114033824581614176257474612577774148997667065232915098762194938689309524607263078985443829115021080404448995716075705170748011839088894130016749384749254409891713738524539782900463848915789900156408908723460259698536450456948958677334726035779147793267165149859023189499581027084363694542805738392821312093832059177213466546836082745743088873411521567488912730032440135364083085597592328915263064391756323073348768217661191118680112587324561163641476480394342559751806841376871679542197191102498425773584328361337814994117453000678129395905322615010334217916997643570285180867239150715711155777867669755788946054361351667517747302548230532582103131090205128886484015364729762801255685677551647328337232598355974758401457759148983901008998224204790738782532890382834495253845131136084147095762540126618811069343431844864006093724038844023719726755597807381063164952414522568645595688380713271212532631395021916018544544968109219948125069208045309884234162869537568125233071320658368228573354988084848252106175234749758024886937914287893043348178471153546742182163264890306560394262434766158112548713229835127174557963857008318780367585138639061592854607592083180837311552119862126446713748068343587981744781617472049350136173073278023820859795296663755799404901639252870794494214153437593779399930578023774649856377647906615576963574249199017423676210247500163945694399231396167243229855292127507158679418267085893205867385733774320546011100363861034437428951457850369578574210486073706060053659916287439367179930881299057870095102694655012300157032599979436656641468329329054526592039446642115890247858946015566753089965806350862660738080802711099978101526354864955554726078445605844443465364068666522028889431732465076892432592588086160745318440105362333668231828586089520945472122008739493319258526714077231216594248277183947308205877275353085444587108996057014224141610209326234719979968721042452669252033312267735732793549186434304536999383917784043545735260958968824237352774196263430428173815093002633330142080030003303628901957566974735507272333028244207150881473451474036598420033350382385548491028676710581754466535565503632030964840631762119822881888768871784155860830638475838864193262288607871410622944095061785751395837594262036399271706356511687270016752723733083129566639710501626256613531003428264949439758667728132805982820022943681563915148776582814247800746443615981823367645571316813761574675497577351537713649523782315637574594679821667435001041504222253500542134368564259305066625574315046847977113219142578722069598998758756142714934536462762815568239720696585836016596626310606705819451374668636138256668162986037046503588538567472548230043627715199724912383314731867607270497400815293635731474361058854773352593717988303297210691863174692033853055942217722077420364363555065635176086400796248335177353700625995879391181221828754647648819267285481807156227592244794624265410449835511955965759840905794547847179425005697749691830039188780656308665806874964646442520674024777779272760990749617365720809587861293867553185184881601013552253608463943327520944168410932789632659432230690433963122790777704742257948565113487983234301318354337154529942740982601268770787500811095100319614956187244418879784872180216184162459762446296303154696964272291659972021674640426521431846985571223649385558818117525857764409866861714340974830702900623356872543832097094034476834279269918272741060232035919974705614357574679724174329427126463147856672315642415039113563233938120405484073762493462378446459957585023515178382029380936500046167966908672756369533684671169574681599237068298815384297073392592140143633693658628729620391387151497465042551639933321375932740307494410583962104116300604935739005991075016979086862306849347567280380289295413468076515314824280176072131351622089970199906701468948655657759510952122992734884659310061583241564592281329188099375786494821520396074956560900645599325945270087231319736936119587098043603561357551910787796002351916107076015789906247303994194478863415210885544173398893543907008010960648917007790478062162222004425068450738257578887373385325263869478812618623715794713900402983440384270129081747656700384755165922097661740445628827164923294841040687966007178483427442598117563037486907641979917601402907308959409259173713520407604715844414614268418113428390702661880544915374337067462125177294386547326698194924141602037574319763654539794239853275266732277345568414980258897243667281139713829181747133492444174341659943954334872808379503775488215417994475832655498345798270408652085844010640134611075964155244856711738018244054662013858294434900997992815774377459173265338747029509248404801170577233567232602967309389131576222957250561924993064210110398189225086483571007138894779263977714273244484070732116005562918158131353495495485889138166840120654464003170158069518846602631041242221740135675032675258641206201896086267152663289558118514976991889111498103222633451837154668572398442901574502459573197389758278123657090910043569756685970189717644010864755202876320616967714863498488451094780228253550637641783266262615539509053120020601136630213315496917734853386441589212315194483448923607417013294209257411433328870509528409228510677820196957576719037204840205847542285942886320982530456694934320078500106685295276376400428151860076054444655970890056782562658497576097515798620569977348032279335354970798898075999238026973961457179630984676238354617544626615765925494273712082543723385935515309232548322042573782273456742601866729663962802807958305117908980107095686953059269942473611096499579195145978199504407887906626267883839758607904869795453285787152796340418119904679774653193672491038270150160273984316679351694023386015506858251218748853485691596407134886909641535605192250669291064948614350757478945629364934834640175510989135686481461987186984379898327865924308188388000696702437375462036535865668872190098623424073924011671733734612226142104638103148733327116585967005975604009373980733533095247201948450079797344996484490932305315660420346943566773823956622451702599492739707214873212421906515281657692126973277126125400653125290533563301527513727684727398675839642957370974773663769307711749758315609389035982174439550470576299745107451106369053686879126359111047506483696124300253267048677692252123569094501039682874035016554749200165805435936111335726678858037467762012418892427959276850932352435352416052269664835873803092223821940113671292680725223907037700669214387150211413313085606813231129323743676716753146327813583467424287691317206868025558016763520514473979987704643558198407892906434129642624828611088580031079618359035831988164980696310920228552807866846453527380319925646861859555100584690709201156442651966176355360737415526750321488982090824209934496256287231957135778191449445436488289311287389746164484540638988511774306885085297614966379260862244982145341572850426102228893468913522370378010488963035058029869138481690294898993780134672181400025434727010411359597509887970606207653882099649236212817750239067487639791029450547736235999728857378609058149207063576614237815082496247279547704334460421724480946749367965522938120344479153846290247070055708996947549841236170242182197920796448546372751121548735259285290886663574947629178278760286464435845234469542275220220152684764861869547776321953343609987222050497252992194066255112954283854925877913136862338598808687868438876332234487358924398088095983482136025435262941686386887443507958630438818045157648400251198081946553313005238260762575232643009265982421476007164918798760756884261611172890544700405954443758129300640056580914517174537511276387056168110497159707633018398577509137254070332551964341458628903738707542491883103723267091855353103736898698692437336834177983637582544683601211437297395551108345676835662199131310654717396228738105368378404578143882953978538582783531560077284754004951911585341212431753404687434115013453976326353420785982227449928488899372555473997608970734025646953791216527852131177897636539425214804213513840464934196895113958182391929158709997695576802444044081727301797092713630353885420488008311019659713454831852978799173778258459253916069461519865934347078696308177377853917574422123668672846422599209120541060966311929912913173929048747231916238592551015774749521509962211111991046530163932897408148260796121484104508011340600303961082147277953545665927518462618435913441478464374763018199844380723686404395179878234256882275674499088042937516833291629290035891911362051917208708412828075587680735700158864243314397669145385920387635792943330520573581255774326742858164519127879660910151605990662585187695426011546404881679350584543420008184370691203285509234239055393547120277252244096007717388421268529788041777771452110158382858041505722616687534493616951009102742656953554643234890376321106471636825173391455239282444612405388112393544370760662368588476338932659552079471269603165989750394175003337487371927879981949183436413805833118259151483092839674271522522787975057413159216040733514530046325863445611124574502061914194068461552867272086356366996143499392497280011084581895118433469386866585058459989209725286650963427867940814615559937429116696160412233125396454501854494522502216907058828279520042783122192493895609654988790131285640538802705928122142596835325335610669538218545868118666617549128194474887037150588979856825879928896125363149788325955432488234552449736458591829880362718722729070487637448941622750645000917965118881283926877766297346151488902852846238741057242542867441710225245511027859162371049281215681448872936767137401880021335703711801091393529319360898109654857482983546334300271660595040912192952414331583503950790994271026182342147492255134676461847896030810837977663866226423483217821095877529453057907775249946162299921679569868596562094785202642763127343411749012918112759443048598088219673604037637524936900441086983444935182393192467870424848772342003214843027251234714980748844170863401696804486306120871948066322456404176294071203557171170273181333095042829895819267752086619220440344150026458947937758781839069081893861507402033632518510710569617630876755712325471047058107487168906070150014049625477927896035475375067625076841407438391885174186192868192048202987758128952517729835872738129052705022433095206466872138581500816694663218543168084890009516810886278013057188585655336053797768175198903165602331267966012455520867287082691953667795911953244186406797601053425383747257272817368707414152714468008705950990336323868199346337837408393511316858378688263172696670076380323273223177163714142966613107614597673437402674838768324103702001164032526155099141320671250433982170068307269939595295158144472150787302995420094371695458026623484496879849550966391548441771498429279477346498575499247053067728787900311250636768279132143793078315699606652337892305656764891762968983654873136326628086955554680571476400439016785921470926439433682310566498423178248198177265074698555788961705911589022384380490234693401641962527800089955095155803312372080147635553189919255752492193570401950021312623904580387187637826189655373078829866063203825157534491286219208641792381659485591643275059890742583619336552983393431737920291024430042893363749018171487381001122976452898397632034329628716353449610734848392267304285743000629955234303619870458355743493754639842655887217440052926524584198531538951275907809872748113626425438712801270072010364282231773018759432224593527772040228048454627743361680798310814078797215685311466767787844109602538422961362909773349221806862251965675119867626061579265377925787729192072349187929622026392290246503249749724001912028883102097124259625167992100997689164200321021104907005955120713882095191565096677989951632109598714663122250435825815978386763315475846681617444713345186632778789507510439352169707561971304707695500925698980149981031406717853811391208967944742683542813125299436345335756830916505828946091230861661484917120354899230385053075607721321974710484327751033459321574649124023267149501278646797649016755721805852698122260923485583656895143089645764700609626774924647124419868131992386060810619858793399977706532027171645041883787914813410286970066800461178188674414515105138779717757169382376592636388086332885967258876288888557141930433440792900016564781000421189324106433823047611666672974543284696091786373785959109268386712505372012279706157553965302114641333563542356889445195170789178523827211824414921204261524724186008731080425939512922535311098403358430597786249333804406916007952109431433836771777816348069895616778273415200629122275082016012628976596468809324517300388095912586652927575926116701689669754740120740781909158003066566405850122426997699360122253256400370102493283552220241374439928655999789089010313868009365888068388401717027709650299637734123012893628729203855661741273867159074799371268761445944481604428471126147314144344495045184753547782879814961229581408203147882514029571162696624391207667582169202796318483859063180049308142546049031909054393150935303060714290304973673555927513035023751420033778799750323477405121236871151454380639150973528373664944544607452068107471598168934127522179358854994882448568438223828508649255275262279095772598949529940729350231396284248567826795927646421921446888125864524396388588286371272175331804051141290537645900237505882066460807850271915948211440985768173476414544091243480694551275874071319800775670443785134133590500336042336286624649438797626125375824093196891203209608295448958007678505346641596468692429766508324331408458245095638326423799541988031641415462468454504421949670549396722867025624731564076128650395001876916097179424784269780422570581726809015927968726831116360994949782027748049206775101549397813153976979722666417041903010514882740677982169851217447484965578954406548169313051977461181273906990663555411171460510251734333867638322895247406135647978341823343318807411180315868553551963290939525781125341219217610871501994266529017023915315911816568289783792960238982815754864919170996215639554819806550356938973435878944397625659005235213502899594419846249632524510424924358312625189552947116140268391646074353056818273667815321858950933316856519711605341690843687363259417176044427156234368802546072008642542232600575418792815956740626879219097029994245344349720421037557226761384523253435161008572100846321059600775800469993309652955873136270427316532675799937233833238194800794323702520370833898883297487680060381294019466989201260773794607121279258018508857934627176846305149015072887825312967558837066147558077987563026227587644907149089551362012929874732846984905976503597278061581570759980057861795508937884479232352245600129237937126479213925155539879184515934300871698248490715795484745823072907211088639720856365090207683574803746622762546289056191016179629418875849898193985391986835338073621180138340573653785460354930272904357968673299112451029722715225757548589265628667418940535753380302958330185852391188515852134389563473477493133140609430070154791846666201750941020847538433887164848915628582903941322029468919595404866030259991894199632405429789902660238548783078298381021483580979467898836769735462088667251051400620887675647837846907209243253665625232591313291136688525977501648876814560198155151119166086385662652658514793638371961018781835972050064316896358288881963753183748191171120437012522947290138546666218771307639560267261681042507475999052063468368748376340914675355585920780905685674298804135875963663656625961922613562539106181246587058101077477886681992539086114601868054935881121990424486343507460706195585086859354409502155967885789892809354577946245891707750537205380793309717999992774429647286082758254531993547372533147576086652925991839115192868795939179604827935759305698878190918745733780438246777065720436730299243956245806118665822122330028798029639522865325174422365694376402768755806651551974525719649904415006409967185290240003796239546012852258626401028447998836406891515648367875846151088312065982007409501545686347404545149344783467401242148423185966221013167305260292006085163601082531258868647183362095486020249536881539065307049828637633254132239727830635657478787773465987780254572047066749561998354847143379191185626681733535404034997322728212960858089657878605116710117011456089004598951306333871348436621009787635378537418550809533297305802640218758334880373639087228889910482230730960434555646271250893689966686535177766639773428758135572327566322674386353022081339849780751402865190051565982963978236424567217586277878704963524803006916278346579287559369034433179420942042807370314867195017787309187564485568632971798038528345861620558498543326225895407911146082884998153738347849921659253874167497384055313188851309498726991917743288454808613541275290626607387196172454283601316930420085360626306181298772947195326556427640555693154254984419262278218526033220305023723768636437959535839010912642243157345058335581776196529910112471048097665374885987002143003601003146496967993268255766428375048362866351724785178805148802739569049634088852260211757137559823976153509751909847753363860633977808051482966827579835769333524153169785358160540149141276697581994960657072241008596196679214328875997899338200567636936072066098610283147869479819022210759978982048665750211264406191579271126044927075495318998119225595933201918080080576483792478621042618613283573365706547570811289978092150401413474145150654045741287868531370364874496752750890106890120736900153473245611157721098728739841721542773792359699971336203819388692073680388283127917549522846763161849212894753698375050363780251923057794673853686309104508244617596821849467526723051361014571025500982561730437971370436332976116305812934792698206430341797901800880502444289329878076920470020090673798509584590743166445105799976780467708174798796455729749659517387381882305780338475303777066354902641466710145000703642429276668181831116564564357427386409575730360479012891722711823253854544580977566263354337159164244470593172679817971047485626118210722930336420458091390559035020960470617367864563498110041274803583199209186357849103961404104917552798368725791839342733952433215562823265729463034659530404312974090960193725802740359893410391420322303593891603222302820671098371721994158185294838687296089286706807248979377884590600411855547170121960731162992870155166733374285718642275172640245254294449143682431817295097340174011811657286915487905963123609285463601756464084262994003033461479114718013446549451612452652843074128020543252427580053705538576109658043421904376378365779704847532471037402939489521118491860201991000164709704012702957973328781043153693799390074289979926052899332545300976906780734733368562723837968577356861483863269677350379468698437849562524397575101488903170981375153402615275701074131046189419018821514973843887148868495918605309021051981339717233151060340578013415319669097146784298069140873811083879825911657389512224153043890371557022252159972870039648512527656824790499812530808284007477388903163173868898783526624229484381315337662167181589855703292503099667536577057259753657353309618811860904785654559959221542485144941009078194024702120794273145176297926793887694399776344191951998665749420972073639398085162543641736930401627009060235427622796994034291113982182333614423993952310558125275819861972145424298947763877494664416452562670074149192182721487403134384380275903248936725162737412484954131423359642899038355218179247016827011529462354128179623282749407880717249929919834217968162387135748823233560642164783292715263759188114044791543955857853882050947542205307983628033857343727752396282277330133674499902254888984088295547379262249743549900033900780971551159929656199753561619999785705925094825786862122062960093729386536387600009999834796198324872819894820450777055432628416634274071617403076611213205240458730117498144711048225877401463476358801490823769805526473525773619582885868422124253876937500990704853791293111833080813753617732632090005134760071902139210151984021237783064135712023515536802074110122453287104678834516038662705755224501291456877719544670585005055311117172976510639799837601739964542778253946393892861714276076017360660313835166376229707555665239056779642454442208142323185411837339971166521065648758432596231810027111459545915306526059248988967496344124466934463119474575710268533353079391259524947947943799861671119487452237369732094109336246658462831762201634584351721007802830595925593432302467009075914883640504114469108758116723657891349726662234266113674321905906952676385656180365025832513699075570140926358367857441219566464627212190945926644724400760792276240510344603469034827533339128081643216769067473501976377994681418130054213899115911512295080294991009558437518717951341787148130177215684569494445286022438525003843400245627028966025811932657668565199690660161534536841932874063903355182260977460890405155905028229161838050030654582158553342446287346798517280993461860097285744320849658556829327199011957661920064686888978728158524177458219099940026767236158989959836107168338537734038834516480168355207439902479966752955408465816200952525118814063531623436495363711498070675682124473536197247852986047029001218451774014262706255628908254829366914633324777775595962090110552401251607230234612433188991201254105022173672911478855713339963602679719057436624668504694062745569996422685731376882813508047400675327375927019612776199474357500023403455761259800364430724707311625430771335749582095947205731352465647911474099962269599023919671975601879911577749731920939429065086713685552200463616029962822706101590073262450007292951064667890530557606765606690261006841736167121421026775285799677284980747907022803511552582822437872991642226840013875683313838557503064016675385591626531082685080062171640693668072626061958581555739321767083132172233501562043054021090959536037762825025355461824732213659118756916942837326723052904989529375184963754038156792692266018959323638145453548777164259959791643991659553718468694179896545279738198824413368038557143671339985336825906058344822107142769270962616119530114169304949168424024031854846175287230046544372054033758974076641920989155652678850667626557836954840590590166411093071035991687915776345188254564309937667982453656516385063873080338516797498402039382649729382984275955849193681709692304369643583922758949829839076456194755389953010931600071525998229378268877391391559992606248532335263760958505016610546996191562470518177266887313712804737787640892229379302138646509794742929211010298516474373461670377874369438896065115656933577116538436121214388851327745233531332865542669147311401168951557983283772579262298036581087805135951601791183512119716410704087382211092868253179455528185108107080857073561132028777140391176600901667599155380174762586285570319443238884616680733381830933495372981765822338740571999269474128531480809150865312873752409506773278563140511803800638261769951566313764139066673780735625853047875429375148119930360442038522108360177557528740419476320791690177888458676030517062322807479925298318456582168898622596885077431838283496562315033314881872128157335045472722406564557374754393895033325860483015457600113129591792601710984632140054437602441438052284982046372591489943794118181219677999139922677246292439794600810184745090954447917195661954414496317046986237553380731401641062916471976734438806148575788338408203959788640826469673560480192689704234535364543908528247626091480067323212778165438399387484603860255202581249499250858807994559172236435202321644922932587820259773931392050416439140835039412418630620506769768226935912655390539607773221989312188045763043845129757083436317478086062827697119202300683847102588200448028389323128316813345355493091635494307769787868408047012269607323179953044405895682066337650142734856407819662860811341154467424271988238279621996804699263660906875623569914746601989055962564183665362982650524788055770048263134230036583282338858612793052186566585956195917658773266445737850873158329883318263587159624931623833535665756993244316981917494777252578825329727474244550887374268228540947829847438527101443114465774634932931390877240958328845207927529261222636135395435459171349514010984567787110782604768932402021094738532620999743899263653318877436669621641429637805535614699561798217269482159320204414503939808784504243469174173955756824621383581062039044567522563805441369820750709445217815288628772598731802064768008795430051371429692464542729302101503251628144078683015803377581267140717120943054450178930931938920995465362317320543283303317995446476511858819888508103270385175300121116651323922189177818117608484331124220827690412055514002752922628317575578722923534889046015226007807436190347914822090955053295913059085361127895106944295518151051717433659012775211773708631792842364982994407280136016638985026985999360687557211377875507965473547248732677274246285898731667956423581325250366804291244442754739437796695019546720333384495548611477509119753463181127230018290353935689793923652596446987249985101243633431187940350811210427637200883185402267151382606910785751725283783252532107771117079024955489264026009036477792509842617468317583698262340419213814305241899851582080838154664925918739854130342341508020838234776407878584200355783682584072492072431206381705882720584087689458362894061503992692641803699380542189622866451713340616183482255708765221538076337621544204175444927378120874129514164092262461084596240811050565320912109141663339703117933801443554627320867720949783018721131780170964001951147254147640189120889673269195737979450028948896414413180595727028311441739356010074157724348213689386399518200989149287559061684386817595305468254129854016262824869705464208801111115401398130123973636157501051619829733715958835087875183378854395787610466814630494419325448493900521115049667015145726815278879636894432260075482101932651439911074733582380611312021638681819208125838789517964862409896449597215018489484884539268611276622556768061634859573125891639068366157524981548324050779855577988923629040123557239650076484944046593717423016931654468387673817290538187419802641385544831181854099919570140324681337947241334597308880678155901165647280810525819771123413392082466247256609815759558723450644804468190845537069031989143043268738434540834565634452844329531990132946551039514953763342772926357380596704810804283697135796912766017626339399126411190848149111836672162182594843270868873417383565083807682057269564393606536122306021597452644322851540980933064980388162775079247510001990350694080610491224582991497265070949864622877855575035389253732973919398835945777917930613094795629523941631653376755610158447123105230127715005749480693973306734496002563234739236600491692031816273342470190557205578413878736460269464399831695414501317152585850824248405958106935936318543522072795191058876221629104039774278568066993332287276665877236692729650531911503997137767422837678596751329515061476533336061131074702639121495123986964913816621491433334129898639782577127585071159747429715424178257462631460112555342158957791966074671741372301728823703579276599017540149542681106835094382948914237730562254561485723891784324717315574111736460319916025934774771961891108794963993685955182364521630205396576187817482489923363148398618790476175027039820409964689980379163752309848095110842303240395256348196585434184800529123818082053481894470807712755118956183313003932938656252261259122144244047292805240460285009008502971087236981572460120807922140540327286106759844950443905958509563620571725417929817232882882686330993246489779474295779432428634142682817048523213482861569459107077655203843762882211588195447627577291559050700354707655514155483747251795717949758980697605951649512861166683560036677743659422549384442909015085537067534427605442559408472096802531844398576180823379249287392938503410864598697692607188632417698188754724030404140104223250562922846439436024509676151823437867439820540868002704724225213407634879681523841770416133887127912448815349231171716160870783580757901945843090770947601366281922031969691978174804710058326263822756203441731985890968692707183766204736520529743367892213852681321704686756430168514728928234641927223973726939431970874015217944732222882454257104072830055610086076365181280228297040792460329490608919949976194900276069957691279894100074844269994508387510462523017308299055116525585187958665860570502715280982558802374679419301145361258426771285460228676372072403743941370625414106894335255161684214037285169940409086279886596340638410672238399387890209085870749237434172777719265119584314624118092752776213265535648322967542073750671391425322840976716731184195492355473370980494909352465199485542276106094472839399215041299345166648573566326824083988096940573560370529449227463862858173924947194237366276078090636522172377150188433938026341324529494848970788478487516147528380480404923816709673586417307794564692908180876054754943039201006850904557818664907668867607334313543685696682353918579711726822873054347634426637031353360716122279748862508952152769777253003899987394091122094119101252898994935759695574050667852435816311295055786354084542863487199682519800586931591571291303930489883786722893822382436701883008938335602875174441571818284185738254135376236907519992194722063661990919884063861404587927600977362506980455336414768810849915499200361018804864964314614572854621448446491594313959025908919174152221002387825548639411549041082032065227016204294758935210410807022301356251002779263669431743296328026935821969781793318337416088662848522991150986312742270778089607938731609975506407913697422869228171554167636518352276290129775139903612727555313842808898177896323361472813525205996990006567802320830714215679912509332891712020925005796180182838361572496799658602930322135601569716976389061918483984001120369900610162855273527518619763438290115660855889660068390602817331037067343554369335099181789554839391358840168625225270095621032137991795536596817938370166032281148487112641089691512714389358671081757740267551823912471560608799648925083607953366445852093354375829256762591478714922973928615834418318928552724036693284285307010390350693046660349138969966789908509970220737771768890734699368153274227194999685488567808708545518358695770535264691728775164083892964138515728742171704428736509634779353325485578930465738647342105911595824565422893663927263515350601720246803481209412303930262301539135308678056140288947660409137175508528462965400343876140063963788552256030404701541673330946462399752760947403380335835909387500148453688627748695604021295717232813948732684891104938548716267698046226725709450877031111219000966796079512156187140506330971937010660035244448349077806111184726316355488984962899554434929297323429499677847677626123200267402614931797979359505448973283938555489621410666012762984041053308366243527526428897751393892374038976876232746875238627366752982412874243808832706918316533967340792402799421104926588533551056211297132518882267670064872257481701966604570002655509590036500725074276773544546330521490846641661261936077625650967509533529879111677100120643493027015359008858136128342082011529725952650416768725154330441118682259374775264599648898726544170165256780710567447486932973390275715751048522988958260688064833113877536823908474746836559989741264865132866016498739111312475097786268781847318257249924404743646380345060424394932327622841504097510215037450141269152994881603770263298347015641757988416994085429437208234658713422544543864953080973641549137371251172667242678227953746247147654850584533592182558571354097208659842278953165521202105688191051298864746012092819125163928819047890093975669540247340631429068293530161021212965937947030187693773788569816055938230712491838337660557416135562280198679278778174981818269236107843704220305895605483379431486257226195345647400830676112386063460260463949073546859682731709195031234225761342852331849134030185122048102699661214762777443233970769764046723209756524675609174231982523454858260555567843695936178067843752226984618597812467917856616028545933182526319855387726117038127533886029799290826944709773296069829936147494041032647373324954330876904247646966093078450521087431821793780514032791526148408541743058069783888549210050041560298365973953738975525157610114345120070603616004303183678700538594425485856136580236892646812138390823432166290798171933655977539295868518001407265595787248728048208903281314884330373367361907290035411555981661637854800430709940179876584193990926250570587032827387466630626437193337319298174891340987679159144315276765441933555151252260036028287125208321414020879562212337825392283989622741899219584573880004105271355358601545959925173821627038044965964466129502076634337205964976496781380423297092221779951497597273410273037847395038905117916449435242131911816486841734002820171827462108165047748763933627245944293944068629462504258012941344984512335108470431814278712439033361595928396855399505403564348598988993047126633991684911967748081054275121361273594423325686661862297671952579282124646981585914950874760925950726192714998971409031396506071610439381895642504221738378564843565277342353436410216113383017048124839636443781464892444613689986464911441640798319756741906101313353958422884559501283334697907553138968982831176578037682258214162114503455290081381893622168100085217836554884132984861652422154944599464188541672552265152124820655604187384234563130165821857675867613612190525345621669141457339911619888995625309663829068018915798838944607303810006374463963361489132415676482650370743495222492218081946992235937460669769770431558083665593310373453171829122961480221268405663148182685594899352041739241571422514738627324420205843204806767609316113963565982981823959284173347329235863797672880160620262931466706044839344942952305296675446709214636721244016244340472443746964478520499166591615190100221783283058719121684519524692583081012190305677172675089380716455486519267179942747437994671886185281687844550161180936851213703870599698387545354962534067716216666670384717190758683494399215192768578232833290990013085494254414177216683160259832565345739043383736711660614555888833693203506289610428915293739547614940438980708221713338953584355826462052897040755379045419709756033513047277373368020415042583075765419663919967646934253629124932174064660146877789875369666886024139116148869567821852529968476923124958381890018905255532278735386919509570678907320703557816774819079425563147218204533351184806091170130317720303370903035168572125498784121948491930145325756858123321201980697036997465000468669481669378977794664570931213919438315234674330198351996497575626820416860063809760439037066539385012676508080098056252073285565993196314755046451533998666481549133062900341068841110241967975202739405774133969590648889471310578842815607660150788076848356908114478628999240361673874315138571112643538883696764576901038154084794018575186703858982867100795220217491431799755915870460397079687241085006420677685091011729918359821895343720191002999596897724481112891351895307680940931834562775922456381560524023970278536391917114918340867167203343732078511764233152214135605333570268727878265811259700224076952286289269390229375297125587277716816782291032356212276905224890215076750131278846642925939227834839292477429772012107290441365040526614474652720395076937991808622815894706390099264581902427753064413931743204063006556961579163799223268952336771266192581607016799289983566616955955583855788653756642085340418809091578120621676519967226432690857700175929577416502828393164064502200920932687162472019872969454940187997808766858087614902677408872877880023452903237660560958200979809029277776914526332826272680920480434113513637231069958534529160092617282434809612764274529563626947302413006361305380520475662737114947453405147591835525639192651028606704942813887356952094605296953983168371168998188676434676728916269266181382742301074532115660325774526229322479003962900702211592887888596772999290240730245815038984897163809616153991351457569922019524850627092186932125489441740302525119117825987226186780439453905363643661715968590408837830953978077770121415485049242692518890968471482487508625580777666267192223728497147611253813352553958368658871424058196551153473333024297110358903190263968785189192076208449088314172851983718307477345455727651019540390894798839239471454799872687798301976643829935732997088144196427386448743993529975702641994820236272978753684102727857767183765259214041178669583722456356227022017222723066414729778867116881958485230720350832757666391868824849883318096685034483416810478171932017905863539704186436114750828623031874168793940225078941117939811739844404916652473386314374143254313936620137034247497851970614182562333179466216073134466544851478486567609956508185117287365354805299801957707730314207673902249140521267432001029547838726063630650889049172797933969556872589529419875526791434705009068562428208633889679410842622353832380892842500422110676057812433935000079099204122537684084788920039042823077449839916458784227814243026208682781973827201833510943168442559920891729893116054877373939525312324842398025931128433786321682373925757598795850852675278549507750089409313322110686656784870838309280524928882008834578271639385330652787273265342863101289665708845858033928619476703141007291941454155765346301979387383219536913785423801132859548828254124144677657911606192151269218952919374252688329237084523788519810964672200127668535211372233787047363710318880734692064322085583444186108957137621469595441776368138854382423591170762944462663110264016109772479029593643183890990889973125220820741013224007121348226502009172110714612669521417095604174556613780111212021489443767325363589167910164656289581364445548971958290783343495159703260636320114700806538928631316559143329092560505198282674726355423727865554876125422987859227927392687277946145936186975408511621850607541019510009906293310105218580953782447067203631534204184274782568470027678501093901253966148367314717705658233806101506478873833380138313494445398393862723122835625329355353190470610840301589375853808164628481131593218388964250656625715299830519757599541612508601919754266235355092519859842965714860933066596880482233273701078081650126363343036592872544304299403864447915211122163124453054893651071901025811189848775165256300701102443603572525611270335159651135570971173806817456324110885559621470531634196273136254586083921815553390042054366137315584349330629241263225060562568202402648741968878449613808693303721560036262197972573197111937245885761258836499186421340011468377725314961009221404283318670678123322339955410869106102582372565229823367264188157533268541513742404086062242478608005454158139422473005481298824905437277069563595378190752043815711949494752044112601635856987901675475939034932715208622622765237152914103224715927633276697968325137283456605366995225865779592147446306087606980518985352223714150999507722519389075547378936383699946659897086721868665637504378078599713613255118004629793505573638539038077893818442545360020326525713602521816879554913107155654537548430445779777999876143617881347440301638612964367997105520881910723015094510758510342156736750455341810032865903630153134243405848070997728459213505586449598920647104975552155818654719684642495614062884303223743360624438375057715798460719783859408750349390961306931453728638401828678236827139526107621689568915000874771906236464876247476739373648113875204104174048335072280204550180203378433133414252454374015954680862671596736475541061224147439255944842409881000433900526233412503444459802035386024675668259134950879877010895903123302150908141739353014093823877826849685531488779788401935953789082417868528353150083485310767163463218853897314495276865341606549096628987262541319720353137943187894789624775718311362079358437754114964501754231236288555555633020549891447038567731898010878943390625447790388133909078053984062401933662152002723830148399724186623788951720711741054685035879393084111111705502414688757250300857626984936377428378444889691104309049821357091073285472222052152786045870493071165370214822126351349159854902707897659247842173913244500081508710336657105527189394931238209023085118559058536953777376158389722778399469564702741739002651436222958938834581402249532613474612504464277731294723367630750416066863365412405568043934357368855722147751427438293770342553780638290367139187470202112617102322451819524691286135306737948766296018337068276019959677635991557173638090732723322858848070039207546842071606138848329796068603065971003160454709135064708742324854336662546372574980082586639551590728608982209360618142207832085450658168821942529816409323493535918092734938606820239166405022396465912337824810124729774597287000069276275919208913444571319820598217601519225260396430317168587424352480976523946906636162536465330093985991258314295169324583143844579952810192863326927518804924274079849150668749190293479294467767703753940564961255580910569942240643368111841245039160598552623201978129471863887922700807295266018898898823850253340411533078746767524215773644581508230590967461010234765166723568797448586346451705927579640872810094435846144557896774364314219394491633371596504861142300470398588923866580073096544329569471271906266305847632777455696704121890687300989763624087665804841664349141379081546274129883975930604373560175062787538312226134930369772874370535414687892281772788144008141856306367984219472916144983707393645878181387826856642470101151175946229703295111576194432753265610854152069613253961857288281967444223635975750770261779309279051493158319857412630576506110598996809662142789717133364659084758644362363637336208507136749741275045807084047250358322733169934541101689156186878866168396872625410647923352646832772084686001208205035386861347692498120109533683163249888529625032837280198111071956710818273882213206813063196047845522358387918058150786413851268977428711692547442982614531390817915608753709614119397052051998234182755165734308660140185204436192246539225751524284736267614752791231748798921774820687709296026207610415188808976543676653448617456755048169805193124374502584931228777784413472291387679613816439242482712606290740218808198019560971693567574641806136327950764445738866715177514777243408804267935886812890332979487681905792571322782729783947096914131145924760065681807440418025933381203598924714895362915267333720526424788955837996262435508688682224229414885984701999355168739840092840616286722709946069118095305771634952801998417175805140396112597050054084431873787631478847500595444050914422288721900180226767399230245271687295239534051697679040058514200813084864414629145146281268266889847340373940450939031757084084572933667650648697433405476658067968756216941175178981933635447902094422364574250350160989767011899679218811795354364246136279211675217358553915176655811283085760036045506642955466430593047979954528238043084062499534321430182540898148568059302449514910416904066768969499302171697682573251557856492705816768596227594066231242226350329706084505181358722714330636583026756295338685188110734413100773529303355825901703588396475478869753394572233306456309415530344071940822212832426850951613764977005189083723401981947733838423344475114756626401450181958449445356782524394167264071982012304216434519825590874734928587566711301636929528314929511096613235476981696312848207119292007580650232141823060686318340130766193784560881877159295213487270193801034361742815275776578003639563801671278579650387405684501844689045754738820688685106674967239445878981861051998908594730157606654753963705994775785193466049028374999305753677803672543974230811778007978887897804072269922713894961286436852569329151250067165275362511381367766057012751397687699259318866302477091624939005635257931727342025021656178842959794358420234140933895915591944421040415044789951516456623475069829504369463937953949109210821624300697497852044527828883088863786767182574448670064025452854298035352377088719441501964654538087452427452218092839177148035797433803814171567996871670787590373217921059709609484731503611684622349301722712918687413369022374049297966688540734823618137395021379740679302479751432811242418854026682038807332019419467212801770066738402683798842861115998656128208182393988714091786537283191836907046267156141637019885287744193618425249276191255763737170515761344238221915852174657940391512955470476025399854107369962264257906363223466795919075030460429307499773971722412122967046944024924642532699707597874143309899272368812913856989234801575519739786328360969898684562727608794110646792105049532736957717264458359305146356303227503430720811104804420451336093105776016191963282074746301726753867357479680818573647504127613138806674119329551585231542337786429168010994120613375518214991771667706157123075758905566320129959079485203031751819378721276654167908043279107372478758057747916645205473115370737906394981631781411243560517742055250055341366476482880962959915419326696055270494856546776045371122436959535762749234508824723305690307665144796552344705572541330951620548089189005194770623602335739914674437608194326165510219525800475312693442780141163397095481092054957035655937395280471826463280073504703463640369815841013223911651802001143841844412610699644873807907613715083709597544058666886737915019290505050240877252607597162580969961921903682532222064273331970278337838790761203100580250151523359504265665206655384205200545873755288071706494377444255023056165476573982172694100246544750765449388372273782883405707105311897349753382314656149872833546881694882147162408101572035585311567784117942259598822747064730370518178032738463900599293069024776866572950350459943031528411968298547555541452309408569786183965565845065141618579532329760226408480534662033093365174764469167612462110526175536413926971441473318037819237007835697802964064609673467756674705097731963866502363517572313351169969376156003753951253673484500821059384961997452729123085238707933091024834960698859686209739344562833332776453460743720065519743428693051671933132260079287875659115498301620133626536659701106637693228384996678071181076967664676408984331957337049724918183173113112115356790909571982391621587028516435988341085182525443742300079599156873811785472959075869982950502422478794618971493257045959886909945572435494141773445143219274259626399971791538590337268764773762141753748026015851072698847394505121527337038597487396705664403368306842102563499576713497400491225438609135024468016131248096707077296586411293942338389361054043203076968210495559707694859941257664087584314745620048744737734214597049688931302446878942732784296507836338590762147428993651591903270482961711279954747790595534846830443875042810759504619861965728484177312770245828004398601652185690501735866989379656633611229110943695457965688347953406538794417607004993464585800331940032747616696738253689748327319542558398137318463572265229195297662329680579389213039246672324247227643301164526769742081106682327569259328971675507543307011389830945869018112743748468655297423377744445422970401118552383861126210271276045058018039581520170512816730060069588107913148993071026762114602219621831255648300198047600217048730405495546068937736915577804918601100778363288677927477923019369892273240266550151783969668035641244823263071952082967214873143488115381007635771592954103841408079611355580268170997425558994975246843597800450203272122512022274300104201408453745388917430601885345998660161324555433658431572016196769681350205725069213513760883719576011020735687205269807526868282220797113984952556722460055264594066717108309859865476595386872301632741849236367630880378623959546319641302686247386333652641700931368842363383754962706134227810054132370844938079063911812811505568783799922785858639567105595932023589165574297044751647886372604882238461299318215334433427038006764592318217673528664513572798963050677194598494487973295168737468771074546765435342483952794829031959344633738668249165127317223033330858801429027354142878478502354740261474447103636043401796211418697130719797021102045188160500456147353054535928968426495106409400900108463068256590308818428428078170998421493569000503342691517571945566692344361715586639815054360025321129101545283090990039353909547082508040941771921755741591738180193435080627829310688341242536485780726058084740643292477671573589822434981857920918789909451960054315786498260946518298056044248905240697534487297687592532924238499830622911729779397452823155328427175082196719899547436536856871574513281188621991160254355257125565325607874091923460884868477507285854556966627361006463942859915649376316209187594801033675434025614217860406324002640002033344611763470160690012310683390152491303199973940760675830499136990028248909044798658346177117910453162767001036923738480520302282492906809900078528315560859448545799359191026652238492041815019725976242671380773702177319562773009566161202832569619553591583039601076072390315016787724583041870284460810366800125387027382126570804006481910079496994075033256629757690366591526637295286168617716513925736538506741095005643012459492467312369566668650265718752867452747319485530569087364643152687822021819227614769985505919719224461198693543635162921925945996540568746792807579559794847067186401917183503685924203271142037446218995643206053448643523115368828070102822630445702282928025408600179885836250643354696270827362973574330264221047972282337102816561521199889969840157112160619763869449160854628416925444849891107199153737353984905144045274769708861081139837510230829841145386176062627341437813190603071196518776675628422136990867085259363109568007153046856218245253674153952380055287135038768790294780103832890572228105401612057259697749864859436617339674892761008500025261264060579773384990896759688382420320420923802859770629580984372847375305815752531166503029770019057209240310897777277579268052800761132002360481784910885599052525699417670466335697141910617829385979640929111275728095815882599274236850081602925020024043466776351061636462983331677479574416225983122781156313236478431957696870768762428899907197114545783805831326286227420751879052003098184886295327525199484905474472148960047102564837075112979645647994829313633072056753596206488820076567567696638827607876662241504963527662426077815535145582326310189984371034444707023949399137236036840024894509948034680577946064528400210617324468580696257718690405702825245443993720050895633732594117061058928879360854142294802870845402396008309365906214600871478449036226408509116608232492234686198296534947249770476046445273421322614394036997720002800539156421484227625609149952168378284234390805224694230183107209757950989485178331839170779814045550652762949071694625590451312218552146057766749405163250156670819360673056353541240665929576590821440216520730043591619021774116429551239519059999902948132885722315419386661465391168016009831171492140626204205387200114253608499098885444646040199629172076462155633705897784844884885206512772045313888777755278487699075170616074756370196266297750577907906302582795583602445606210317720696625451208738200257131899333546698566630660302940168609383698187270102286839023746525171352484966245969123643749100642819250438917297707663194222533910337164993217958473214887314712474575910731796417031786341123069115353496102907931790422332368981555557256009911364102346863760018645888684494210496657730300095171715976592209309136199816109765589316621882830994149014874351590070871410761818677836815285494253439092946592247318902583304600776615386598362301553948760742024497375233364739623581280380947065838997184965324822692525647887900280717869287466956294328544993500096805648572991498883379769943648088610625658649342629569945960405759562805215897385406861010495303727984405574381078035918130993005978857871974023565804074844959452444737898103885290683955257894279922491732009446371543738747828275966185239426916525899943948805633992115475230963411881037921899799414814550366694112011864178935147961632565337705967990946441754469653886649739702523158702703262015377155996473501066014501322370020639203760379835831292838201166611295346331271261647807807622607813558897900963169553608293462889202811833402342819649023747177105606395289096194878054477397952322947492124501598977713430630094693488490511023327525482673220031801816884329575913644767229098379235843997454211634828276279525669768963751308306146768345729294729011698532724857985380594109351534616300614244258761434015663810877012535807408421539246809075314125950771925683908206335586332358604742984103532058529139190507998550924535146607493734599647288566471831631453125542894356326087928430427905737560094273801697924274200137136316876454055223355037861898657023743361686931055891033452713951009136736976604857890185012285868223784175512873935563997403844859592646649684914707211502626140095671699539160838024629278275587491574643319778358652556190793358546466292738196023857790178480119290289800028756460585597670155347997236156869001210454018632248450072969142078442223721900490385032529723386093466455973673911411670103931477214179494454745162722811997610278951274840692929017470789831572769381120072520406895160573051178416332048992870976090685420600033349129007384826263409883981181179064401065372552892098853300795075304017758710622084389916003993442573155987704558361423487316856279440546776233122128042473820457234498539063042276530900785920334345776558381261701591632098865507925419368625679299813557844811887637592287878660647330105849530810679153816914657594156240056009860699817522957379169959099967361599237255617038597240571028423055153476454008717412991944703840875728910289113038907379795407892843749128275840419104718805776142339371675894557514404789991296489195774811984452428232364902074963965849366791299804925850331566145019911000519414619667078282304787915804253719407996458098705627429252164353681556905466373758193552668351731064455133244343663851252434913733244666198392955547212860134566904009215745368238650297262364792083877464690799943649345326670637395599761634023635404486648313351298675206026653027114523100089343339875382846696940372275867663047769325763580345497628245895454963338303678958824518434110529908356468256192176206505560282519661724432647629962145319348616542029547872517556081761618535088942238029155906015296952311560209584515890626342712596738878324471450245850732188433461362871420498529140447072855203300309012904590499170314125883162663733160301949901549430017079634875026436776873362786382443948216406715216790388286589115759815844724374954445366292303440329038875810994158016800276168981890389066198834617768680576158566287093010763911094446364319665304107572639461356867226041900752357717618211453035856188522640699587056928163899704463283705669742878752005062424542347581638878228838270032038407686984912570092455381654500776892343965456348871950864814642059202204395429313212989433099720264107667118449321199619640845108809547570805489796616452322974590080400429712892181118711964085006592209526946531335046396363925743166940292527283723868227204431280550526289941654710620292042945667348861680208916737689582304626194722621937903705765243440060943313142625796228463791152688566999242991716060653943018165752951002537811861845812743965565926309961827088529676976086939966320824698096834106166764164646662098351355182977450016282984927873815710949881682766476969747465319729793093285568435820690840897688875959742243929132803709428261402153760612004788792346952900929063692751992805525030994545778070526314082557257675949440433436895155405649567656243437753379317194861604197366107120809985140162178764719727680678182580096560811287007361198383032959301257318332781321721328558162017175397516801129344474068950529205381886488543139317553558872062148273095456233621266159941578791592944245889564157506451376351827937372503494464879435052356459615598963467850745685936799974585039878295718982649849595155968010769669102427893758629276332484004552669329789391946084275841242531268967035829401994488098023962763316126352623370671149848755921276371490166992899202845656360566743514450168847833416191862957659044719033796189969774921483829257258648795477456784232823248444248798472741012118937351051209047267806146324047552142417041991132144444994979565898413348630543783552629508623230131055512442494219193302460719591083995371989701041108558956717578585439610546842620232244628095366497340935273292228833475806605925923462834061235989226214705015833318301737835462784486152461459122983651865311404492774017780403032486139963801944728361577605702360728288772671516856994781569101415142939524171998587808681877637881641626691432415390241385578644348751105073151075862469515147975137444255953083136509835715764275184906111129006081328991792575945791574210124472755445151068576000018191251324174482952222037837079554284821811537976957488284177653170820037297735365919700642328260314137860502176919606273003168924958140940549244800983576164969263222303781312344245129750394657789163433606738445347578716990684353811353676051198351907321698850066112395948764653874188845108957666459565739368711649327724864792093427827850770410107097640507951506612686207681517200363066723994921482709119439957228670661770245564950888957905795600845407909419859128127112266482570372577193199047654153386844988342953371240011905457412526299588276986483378249527899821166269276725178511115202561692401388865806388189959364105778330490566382706445436175422613799364580276348706124441783734930177591976477643675258958501580809515619068616127472441468783199154221918186325858160319414049370489364752652571519065563670136021653532174416112482163193408959920599062316621706906316532738560550319068194382928591780882021412353106650392505136701502023130722408318987498717511099790796453113097983602759176101586645050034826520998939063635807536617495578290414512171922255514328573170538622915469482663894067869627866819942804913110486733844472054876795006002516847568542954165980558962848494281044364916287662136677160704606795401405607807425808875616102688925387332924526515096954973821717663041182839125493931843619911179449692754309013622521003091152206573225331573857015904457712975292373759308042234811839404001428396588677350176204523337302383353857887759105208797810597615425679194415751783118900952466975701337003291301017526731397357861380273620943491291024257597547143478778648794354785083517289998993140360270790557284388283342233401427163864077869101031337407741195314479760520767738394595931406995959539196830634382904153918676009909435174627007108387587815704667838165385931191543810775968548563818189875356610401932685065644330391424050055421361726079088995089454423876568447037568022211946239114937399453175841766700529149505485592213295604094894050319168808541437196289809507963716720670039079062112062791190826487612811796957358583838690152287810273754229704994817136576493229420433690528612711240747455074441141065753784551517291501328607122183683239413775884669511685260481290257341850944408482973573573073954262838573043777618626581806854572828677406970634620765160345266319731357485803207587708481265807805482138739630628579556510338105457787333518324267272122128945878346255463464037299764259378924797909299419993956457606927200481904827555475283093007031352844408794225948463735748293280112528460158875846544293189677220603010094735583415965895864416574086183965531129912406725238924961499213660159264717965269676416971810094863657601323794049737297602213698892070084864988936490362760980199909081969738248500059607865097832593680883313295598706748842031746314562375820916869861784686435564685295075191888538933458238435652999997150346055800379802527599025012684710970443124689136501325274988214713694063634973948959022728129951188029220950266512782218935706604758570616956224647672618898664432197302698209002235180546591011830170078915478981495397571460335996149244766632370153230518187489875442679068265028811459240983228189603295656662042796602190908971913325319693997948117483637711711898746822058345017152302833101228247753261077118737693921338816136106234382681480331837700213692138082909781304667123599147606445593960912808622157641299509787323277506859507054655378159000215294095522430482113574641470825640404892983508624803806406499981489361097779552637381085188671362260980174071349968444081062561559561947463948094576683033480948554856484531894617055068679117056088083969758350596827097371169218910101933503082574634346175739841464749888747864998590546796742399953979812545372283349614598044952019470240807764801550485772998376395362195548897077832724013836109657958372412820017990454314224521388897920651299331591094808181404418184661226294916580940810426941860598353719664006409608097291691701906606573216225170085346987479605445927590839564857498834220947647864432953170901684236703625186005901818729091172215534045307396171505878941066230963451526393555860315250376669239899229125931953373146649153319249486062382088125223584518283552952894516082141283263268744006523678267113090226053373774216246659693173913493002352657194356367143827118010250032054308776235915548779974676448660227593379173447641153947520405135026353866199544069895983516405333659339705695919221262471039715767265873450357848163440020102434231877721335998578345380826287327457537530492091290330021698581190766803147292045721420029430896949758122883917284658592268015287435071878343686072415328512954109586027545267428398853684233994555491494892644898924358379441748765824586677362560676692913982718518261405073379513351426705524987329374429629344756039019261117858759056864529029826560131849959597241309991960047449221804696762966533548846813811927185037448767979502829941992239660891275354013563877274971066181319451663824833025887237915321840501392667681439091516151844075014997633204952876092762398580425144693798857866828715191255606315809733438255318990972354146967594080466531114762004293040743030684058290297588831729649675726070357894963648501211033684029573913211491271080186061158911550583350256965996465825662327580340935473455315099767157523323534952369919353898334081599229725611714462614734858369802938948731104672318924266969416100117937292896795013781032935443063515491053844845093078119146860887784598433699061988864702484017412088576563089856124648031720395076462240905241226315453119681035106004052712831903115927225597517945134901765701397431266929348681016009382030929597856015691481967258737899085812411109972402884466943949957840846026826483739011807508569276653011490952351789791534508454637844295178332391167874370208007964392087993662837151661481980410222452431408172936734429308447855611905217559009254401728747155014824731294337655401941174726461129294351151847645753591661927469482975558398660263920409407753457860859732168584379901335372406451571861875156638094327763340604594616177570486489477683706455706705521231841707511225280247433208426278332058256738004306266072802297784043255834973463372393575751783370883089140962828615151684156098263710270373353196839035261501062863356548647457485085111496304177907700726750527000846562795670000379248249660054713312329927337063748582962705374917341798951303894270116975370465861041037345507262128153919923391993628750174399816537419888810659736745186717141447972765946415433405275305059005645676994700422512123669604709492554171731219039321814650432753152417212855100886314935035471344886643694973118515048643461241318488788081199178866226805984470529686636856589431431875715273113300001441400726895139398940348121991069627961986317779114562284435750890684583024341423192370626578315071589030994888847719113902251979344015870481002464883187615602172374932228732431949288723000571264426292324607473746509626307511570267004837181903777303905643965384482106655510581496577557739378115057835049175100178376504680501816356180523937119109612395922538743353682654700022396973008651491928954103304521964569933917780969661048357492375106134736038653136770631965348131079219958550162551878949318036898470285802257164546104563627600931409120232938202464813213573422576513039711413332812396548818328693966399665356748007272616835066948896424690917856831084833573217518210077959874176036503328004259147131155533505207165957761966422348156934467465855127273114541092281964591256385249184093454156667370564365661325990161041236467208630197739494287719482642439266711366830978654319528984245676348457103239408683259624853088422059195967924318641527829096126370077907492789214399700064589511130167636585969955195185986069175714264218235335210114383239513642576974494896192853768046627725883179108580815577843915487509889148469136120511158116192401438107913957355871215169064916523067269634226999557737158746984641252781576042525222609416946546881560749486937596281443157381701081779727875825389283821873253160574050694379715505056210904403535365679866114819901364196915498965923759681887412716575620724502263725502355616051811326691058596526721300811263804178206306083319493234798608009369379779942395960202378456385094536746356338559245948955509248528226678598299603475222755666777582222852772735934663588320004294890165759971214523871115114918259129263060491801963131662844181672505164062916278333709593796976389625200525999849900584457412934756656476942049623253511592845138841846640162078527256737647243371467977934431739140016087121817330776328902827059343428615993320814530431148514162082704348224589880693328034431193796403561659916883811726755333690354588318504096429106152801277582917548940029543115747901936425395845553298889778148100284733616371114475196334555310541692663391672488816819701641850602459088001512186939614517876852698286156015874902071277778823694779411481575586426794990179111944829036266892885992648681836030635031854180817277255536155277431428168781327290101770986577144979634622120680392185602936188433086526606172531215660562760259153586838724620423247915282117900689640404804980722797720260802311418097684456261713539580037693010459261098758975022843520383215105616525459010500778412234204566281389903065850386784470071036055022169807147863331461013711195537288070640151574719614257105888214165251992450340125753051100821733292860000688666920890811418308573863365396737033374729427555070752172321356784968878992747435789211646745507103141806205300722971090768924534980758251563460235888292842545240112512840266868061761868464233690114078115821599464366676874685772457103796402328362710994607127879884773711729252446900110978161621739811528096982103312158724524026588213429519193670897082659456554094560462571742949614493690641884736781604874861808747682981325126395467154413208487899252749680678774177419971100978009042538772536706411425204794327612896314277351054913797320182641923144424347216817915366392762620008184920323512570087090050326785528051397090904293368141073378523227733995570511683298058291033926557944099076034895714391248806467161813485634217660163974652265823933504359055574417056209614602999144310503287106680596205783402148419416890148109340746299805982040751220165558270450813889006078311912633580741161879680014831344205226843336517546832357694228024933409630435107418875574306183470526556339595858883658034353418294107421001597192540409699232886392717254511615454555172173794584351250115977196910042307128280996087195989353273070393453728792585472877315158612708079631948622377072700205631083228584955475780712115812050253897245765186590047189348393505425739944308267494664514539131177303312006050607797830381227386075703283077432850485968978623084126211400769844703602693237337360200784420635525993417972490482817488562641664522459674110248230970739374452192697659952489938194954523674139631041687284660233201724743180160514643110735405051013976904149921026245974593612207231887143260028587050428459980751313124920962064483470417935509982463671075436401347592452947126193308709252818312030877077417382543741907613654590664261073690159435871860822834957997360954125567651829323861597853608094502219753858109853587967311584525962065677353841702649741247584626099879252863583750988410687129577529119614886419019805868446149970820616530686358714415051997258039766111551962737723046622718811504649896033303900601670381756732695047819333859319195395685659144086938000031217189058793640868112791839230045275773038517209927816560798307508196903042471115781902627966593415616773105109453603299099510996070446931545798425799125084585935342635750492028996226617073414617757121499183370045430151416718263577346135930524597782713077580154262496944422245532358046433604284967075785038434929519473160303287405562345110589004413792840197922547289691599005423239454847521664619593300352886754983657070188939244111856654920004452828247452773201346600379538722856528152048238021629969390835879035563290039324890317585018737350129552790987900036577641430673401531028424630426894836580631827823700379588629825744773203927233099304782938316583879212682104328458099484397970338733590084522875951191887563175075299941780227920727345031016130822847541052886724857680535522457813311839003822125756573942743959960098499916786474905859162102663740721400718216060641944413235531590640061845431247023261877125217367405717516271539750824139543932008171232836010685456349566856335485593317574943873608708106577751231542993968422326305546240473163009007383155142637251512966404695598798775401094120957587802649897319071180359908614468959629443038479586058214971020330696272462025650486145204645908890089913433061399445568814061098620303921025598337832725725381450564019543665355284107028911771250299133817519564372933335991157821142419138445185608227107636903625855682334325483352967321463263622656619594799456889935338300866053479031652818433666306008732200548589403649896774451197661931759157401831610276876796579186388205015612309920182117816769502937895080676340534511332689773254649526679706735850869432044742151523419185837103869634049427068774858335269739801151839701140371897256451549769017758699736831951603064500803246892680156136573140909629583706549560801990463531532633394383511905367663437571069601933623333101589783444604007462059910009303044160691840943897751315416721211877972505611257419183543928855697486498608064023147499253109166991170911605083837054944348358169247521604240014653602008742455484117501962963600314699542888336913131625773949852686123290467077818186643998333298557127172256598900234966824241825445190817955156308926759416078269584141814408334188823320101545359020155511907479115741370696205399454535390350408796105736886691563451690406207788864909137879600999178763417923170486877111537637007046113694631380686367491974083730768437649474529501682545379075489195343154841494154089137439481467719922663137178962784819875811047175974331745989798158315846313320974286231708938571114769086649464764112185240251592360421084442504653929008381081009652981056222088544636718394425653967614633457838079052641462668454779502986644118198739531819110508710995918787242763667222963954908809855570470335039690206329881420459095185101747017878629314006094218525083616382992844161352241947082532819340425675727047152056487472985002131195877276501694221307717773567137496421809976617037204343841494048827425457821183857049987912790733965340206243331473769177412547635541413193436407579359766278713721998720830848563692020669865058877574335597080352905697032192704802406391303395848643874848701199290049306572126273777558094457599081532616624848117621035725636532367358315824656855967740205948957665530029560498701197602500529153930254965869715408391817271718068126083527639354839515600507391261057551605532127707526757119611410940486756361724188707473154977343233123221395531792143520729729627374028893263834015739225600759859388604941716974054790916715185987243463339399630098264251952439960419120299354285999693068893291618465250190033547014276094888883087547405832935481294501911207603856939330624416269568397064010779617951266911562724677573659166454782128010998403979973069507612073427593242709279367120871105883869462857634732514550699695211465163957402131368842497711259979934918045411966741301511309884329520153127856303664364460800653261772528355613687616689275819644285941154718875836322585722180524166018337327313471021877313892538775354398912829345765535312243084385158286901414831712514737618009866699552080080637774603142723518974540239359758875744578516441072583812233233687674868857076150307765705413021420486101543442069560194128065669425333023618513810216768460823801464279086820617482580173011136461082800963424880861692326212188032745336190058301476107824469345275743951409305166039865901318408729349452845682763330457991009380745394958672111709691082864777937516018925986243787683627936703187836356315488448348290624742909407312659751292140937026698864138008443524857015679464052222537858381383416472430971117737641600142254516025974310425077445885930168732385795177943742420948732888109246112821286241151731772491885933627293352561374862117153947822139931365168767204501873418089779794588012334901924742359136072765719747353441829498544332483505686546765628945476572309948422007401031569280867259009407157819323965776396555133105285923018182776639414868833137421869053350655978519955726256210224945551456780680446346337260959594551215943641287647663154791151441669999776270922370093385049174636383638917273427148673110844774815106006457696270488162220395422138477449866584394666340053204889800646509633050650251736122549406273690757834005109493914843836200859145743921499811951489439353603965024649679419443030662965669422588423935996323496478110200957855376143646253224310686356128471825865146312058057751335972739606448982663635295333671026285923614234850954058735009160886951298638861897326231510438174226239620065455136545613860228017092710145191932163131011052925632989946845761918061340451021200478385455113926365455210398123272644859019617122452050408311693430408950842461996983968522858777130362469886730376052181875252804340385835690567258483178256764356878922531070367590375722582688361442348159534234205905037273999832842984781739192013546244499015212994831036283230837541151333624025649021182802341012593620516979085930653630382735466017944146559350273824690355985897044471962657922055010713406168287252862787626263466946169635339954290473219290809817131989111294106860043306396520516771812153932198289523904122327836697671660050136883679387884160687590138502833094843839639828270178323823796933448648924252887306814454868711378073497882940907424387594278048753131694644616552866120776277145301730733702950896925194804277360472698013435388873502448852992129995237379694657344479792015652016038772618284631479976550262959272593005270796883664329135963631764279141922374536995121015847456638250846094550845534034047394442520804627325969447319298852608903307836108797859644734147201797152608567374911365202549712320826972168333709095873588895491704057975404311572118704179248630955513361403148889920930329085166139477677317381530598735496695929572369492665479202379313101102236074415607156715699161661194893601798098331700434013770630725413635406679589636052544065148814280511920918706925171934179681228016286602129349520414875141687193177226151989499553150959424953432774477678951780672757759841822093221827836888606553763327355884916606710609726831452780016207062565297450365514278042881664101938979539371305815588839421635071633936448033415807201109750803059916884966687011630271939538386877366490935357977404318621385652502590192513040821886108074307666769161601417093362839933948947152922008315598636334579732304868967861188785091656279506760787736802202221531618297669749902122987858608429824724873513631306586451586922448921683669516408174439689151199277123117254669582808376825242425812212002041215153981767774108038855990870752984521340252957956703411039790059894431998787034084056214936685459005449100425997385634630607198377686205040385565375371108343536028077912347218956510519503397902327603306559382444413710831975458204434366423299181175976271280829660840822572757342022510375604692805294919805043849027271987606196131212579864689114046965091772538015936060725055897898108488975841549892714813254363261756867210705070732150241431089877342767536506013837461841943403022078632199383942480098535513306648703215219659648795239072812974436660588019495864358323603434703683902187772032583719765376309887838270620443839047886523547894908978479416962475168566905055028698206148581283213128829688401370781577973824586951523508845587527970958538808721619969313027213383124762115326799111622719192876383003794099143759226008888654340494983527865002094005680225760333602677993329765562615039719282858649868887970141631638571575177711168240960368228026622421111735705385628103168037273371334707393927654142387096230486503592456361594649188544324811461156303762141282922193274177614855234355417694104696539184748454517482761643129180947452292103707507740899419167771908480493450491525814665378709718819541607427180898283486721588819262148410220033992251616247475143019263762428169483949048045030574028461484924696460544388046519477772038367498874650768082855694269219704114508943306454804346296011694108225537641844787853457035359232487940150061827997276350293267464949661023272505144176205135019235127238081117840933798901266876310720835876001186361267330977323981658528434499910862580067762483995079835251084480104947283979258765048633504704953307357971716107883312507353749377323281124254042781403015434342351816376073608077776787606975499592293514247398279388779562278421663041150015453935541367015226277720849039345810214617556487230434381351239918633104967928714967777042332640821563803334722540522135867267915052917914701511129083563446922255596208677323361182636674141532029712009262523014143929955072865226250251868781927816105272711078056161922342917264262282552292014164662988937004361735030053746698842135623872791710142810043578775238652986200321016575004470698299730565045687523927657548743669418736627005263128911385226787660363995140476361139410075663190012847885035089971821922723155743398965979135640857742888826625219419110517630019061046564443823136553618953026181247123225943960631316738175302961280546630746336663730593578052376819388234828603171696303185324944466896844430927148636970666021582993725184078274645244033903557810026924410635505224046406756293478283645145932972435359800025097934661565873976156768028544896010439695216699535440275110222568394854894968669695387065594848858269377820594669657101075227383268080903681574495177422264037279642180222704877530217447893539192621059110788928506291677889491007081408586162574548270512273114140206575057424057566074832160276079227073550795318732077472789096778943982542285768676547225428517043541622731459134578152041010112836243714724163993965000208116776522336836220284236259641686217636249992708768814716966109258517588418083275261217227179105249830938451229541925988280628244899236435565753647419050087522298704000740003041521241221699255685129201830398807557353274611938935258916789027216881596683854743499797318052861583512328383206075404740194543760395680332775074636236902838292242043426074578243157312350550961834707568801619620173231630648164304003291824697066812296047848796243245429651163778830783982329651971113745101831770211540033881972503059189592137841744719968222927623453270203046374674278574855296870878020397277403233493023387493433834249841742177780280273512471600962090598805695781487122748074528403646349229483741061811759342161192753784762907712159951192811758442267239599969869319021834430734617756667009947146497769524182477006261135157344897831622019590385632496274007807272524101232376757062114398399503631949124837219607261847093087377982932515339814983744836958505734708768475555189269765702372378710031617829837317647196247511778742155645160074140083216354325128165656115483729746855272489062140908769345701758632289519153841430264780149529442824096379698478907247928530591656644889026198308927724292488407494658173317611103469683135468084899564282625546994786489082152594020747254370952298789736004492631737633489403991363325481679081846021137287122996276615082458995927851513600953785205299450929513568851051212849950928979558045850318281965659732110659388923918220873480052532405384112217725973996491658463961039043291335638678949594450740308960542921005865355400544792204077462930302695564704621718048699208606855468111640530527558383478067862410562104143886430076978780452426499609491778340976720376368073049533932050886233984311255997341702667481938430711289111460776684361829848223846280259673196259251726627415695080448851955710581135695947363858379093595606473153998568590513709213095314123339184909581055708556015009919641512263692640221194480308308691718269988189563225656445695628452558814640697340402968237876556688983783763678850395125446491968107559230570596498342228075598264366017604223991921994805930577541380433790201042815139640310906744958858445176410371020804827964558375524233224181714844988662566986117234470596472120014887656138247621456183516713758029522875640855902865358862470348702717020494443078658794921489036229417156373250521680797842154351745278805833794272964568764311272708846722702379995039666565228369925130275882459217429916187818439909550779024638279586290275263854033717101186357397591210860638264342140237087608945161994155329202978084389028592171553536446133236471180896518507255707357213266742790592672191198876489821008669185463439487418867305255485197991136237051870983745865082274825017980788793363125225724547065787334197508407079112331627495730244379701610255263323501547893787681768574864001947704201325296441107271887425137526969667234679331798186940423248879507069523613919778648025862418777130259612733553259011914153547861285289471898769890853064687871191363832785458951525062895797874419745424736338193807899614716500289999551678123343768811524065070598808561892314709319708431012112611026901281059360571817533589084271473899412415479092748543469576901487847657281688830232576766577136978537122149577618950916701586580810695827589128460031889928447422949120013813159578363355760408438936256775637728728091772056749663399363954305756411438066897566632204353066950182127306438011120187938665096992851817727559697798218841050358133295196753007320253112255350453851944206714526877988017138930431817038365723387995409365386096618898742332297717341401841762342710599158955501722563068495928288717117728766611219158277798843233978488292257048161226937489135605348233971946326245019023896403718756389419419921433321373470674662830652572854265906070633023517490762772914253596481098981805775255398574710093568665777004709289737152160871357001330306571970276429346079517133897071757587784594530213584735622450420240056713444384083549749840144623947677749044204169524825400055112190983741024106350022343880618869746387138065969129996391987606359235821257720338428581730208288092925490817720930359672797072327440225287520569736829966191014569578757741785804094079500680627882817235906440699895303900465738642145003213665233130220899333459716566478011006777116389196153843884184275321078795702622409443673546274558089209328386036182040929525062199886440460836000814352315686445600407995314789961038127415304196881580046342345561478206757412683700833224473124124879285032306656119195850619317648270347196574408961327750520386842604100067982311502660324502876062016955726007693766620159629005251284063849422226635989154968659611762329252267804243676771884811792994484669562087205495411959280369927094316026692317502881701333758164545834576489983824615054693120528219860931913777114409713525670110444300292201549333570062413663063525141396883177973190804847897356552456979357513300287709231929643814341692957741883271395415040642304353784754360081234687448712198767783299122320509744807128612162176949438478211156804276734239262060262675617060641499112935833597822522065734485891170943780092584316814183232029504280716966207199452697853286372282966274751951471217377384530794691738881949574408117140836777029673705451426174788552069776320611681127678928602847550964644462328683258270080174281281088395255669188793059941635716975889506704368253795721809080897388314290365925161512302073467088913561006082271332759377832571375019535355371514103372860662374375908404137174809961326048678519031606099608225129853694295976497370466646600187423924712993463511641064694714303348978476121441119247010120578565729586324618076612146640013548548028660547953527794287847643480939691593553953156366407375109945285418526224629453392629373600807507470326899947877116317694754364013901190803787664695753649921429993126006902552699972090847998777450849795752261168503566769088597651028727180943914602879694907723470457695958297487554677406467239043689176954667444464610211796958406310677539903935910483174342587496578556389264887728871899957044131573728156309226879625881569280596163413060400229708806910946500322116442825339806881407443356107152885386664431334361641853550081487558289199702946511007642780442156473738136397297968701182630301808688770806271049385914591868400433218759838920150392458187087512027508875943673269683547031997087716370225715503128235045464352621172463320812016774248232981894669595974861920036387141901818281206292668548985951621457997049574400602139653513438622239801703357613934322372919598314199602408435273838922073646862023400536484703333731863164043573499848219175932224082899290975759010657874547052542858055963416213517340829585576458713977718282021363923359011402148273774335492886238960073301798959760245990058985516766560041406805705656417519767156592797087855424354458512312295820017359823195281821413307852967421047533542725470935733916941928721586864766361843758956679190950049413610966431688984136769285205439211113911167340745923859626060832684372390994904478631336342834879838370797075386882486696178590359029156196146306365969072357341475460435506610581369810733965109637129930272813499318000785339881186427669445470826209151588091878050399744884704772935612954566749413558358935439429604470816602021210698600058235209735075195247265564267370427706982870838296500088794200210607797698710884232768311155234669383565792885641239278394998794752139537960299439746480425987924241682264704836142450141987527095567169130413935603853174561328311773234781036541904789457009722311530670121708261840186791583862458588309234375423578872469464444883389281765060720962571744500476210937635538916499821889676395079805503064840984621668944628752500967582547630844934073928771473046032969851218426020618554105279312161397644556719101914756987532225341652666772509781541669077056452572012827506547172090459012451079633072227102437403960364698712973490668312179777146887383069743171418413501159841778469879514270454261458745793914334729618893813566180953879393980775307502952220003834635686780690603497193907816865033387950196658348689757265954274578496809552495398882786616692577423929303038455711879918536788341216414454590790551146664606548381445277693218070017488757904629015532179867131561013946334640728117643694732163876114551671924366962388326035000834878818181900294594547461165549260119015608422840396776690569013751405827173709000508595864660797543762544420677638566277109689988633282385737624516425759578902901227634362769033335116013726345810295680270652802619815739315363359775473029136588544407564918767222270939153897029565328354020943397634441780603853770677728233741987470015496626788006558757390268279688161744068838891423049448952749703159827144544690198025350702686117116824966703057932525710713414125190262823283691177200938419570640875552574503959529576475685614847419920212920018358148286170367918586202279722448156797836709205890311828893614461769053756194202444019634297436977533509457442861635913141795990844962844082298198555384933965983486508168048849337990972593950092095554125481714653938165075331451235492150183068354115955274607530038895256736376815978027725767115707806102685607178281607507138763548696984941114138946361294482205680854481514647124390442654475216100095507714828134685446547040323530983093361204458465262195326413712458355236588240309350199952165390093092703870243076822190390720121485647171937197010503378106945152082429576794718119053306103352384528137413054367725352273736561155714063526059597454280268965010586773476270666790818893017842178239868625682067409297443697169707159660947540982496474651813425983788871220968090326649486076971828473019080636310632007710623062997163297237458571146480652855813034073632362178648708191571256490586549801474458370392710688141309763758540067416649096742165169206614751846866753301083578233816576498181908460741140344927358600608226774424437413002046905674518259321053238885017554753588013903501388595904048645325798066668641512220469401714782677324452086180209692809679234909329602883765779709309649520113975761682829085475453616817506679364856101760011322888334725823053738437656351202901604268492079347120308424988445692401066522327762990058921287741023846019296654106737505855808273858345471056460231017075790718298280084963718581877388290059110434751975077644535069786345570363990387848336377964388006305929149645708754630019918731002048139570250698138884306558789242064318126228104452856727778456823501466137497012504347413933829346517998180127017678105785705998384013203795074488638866889412800884686660802246244223427727894255603954275741338775176651848239444897115499006363093942421255562663365376590732484700288645902553974923906541928794980110400417298867398737514987208382561336472457632227483826419957862290896280977650580638321565031514307843753071637390681852618957275725264885322070052558413559497976779161260073544817885121952926763491315083732163520551278938095013764023234775816120047421410887689079212988389241629356900074103416921407874556211983557805367890807582973312629428001756656879053426179508094504902466791094870000789040691556436873506782986010739779566585833078029741513893331426298429759740339170699557996296331685419000409871585536788452771638185662474170980829127580563132152175204898445460745746515111420855323738578962111876355301070601024744623430364790000401059292150558123413394752453788974963213040576442366018686950848314833393869820173719132110505231673626525629650568637967898924702464062539213629458687268104633180599990852317473228803390724663518439087977562175005647986108585899086854994426062267207584563390214720727503991737356629079678659139876891939362381995993360248471293486774137837019951357648085922331864059657117473131997042447508977768516602364366143533222090019093546421127347740705842766921686223217512350827577146888784230679422208376692168079574349804264048816106693027353986445849900502221513748197819561689554472749611463390647787982328624348765766088734763120469310537674193533603199812494428567207490578693252784633507209431014633520385663606390339769614593344464073865151586205328203798029441355389188355126134939987221773728791197199212617402891332942267898969660684300434573928021392312128410983910429687261504098687325132975697028723038697972161493679284612391191919758259311345675089354550276340635345866843485713744726701067561993025788617924802950236652477680193747556720552467714858715375859314201920394859414422156141929672943814946216810975930900409391021603148045038416123428865749972743400952165021723318383389582661904662279413708326646281259550525720671213644577009632997782421163582217366233868524855071607971980269240614168153206327773894950732737022258930388543307780529986826512678289597162673013486331191858349390734202396617052465583728701190278302172027644686800303676208304026736569859864731543981967013638078306121154085889751444697491845166759149931332319985973588053909885757810860784716597916051127026421474643981473516454087102787727399635914456643455592479210160701955531620522678349503011833828090117537043083835473466871013666784204734823006662945517421046346433747167132914624845234450866358453351560825369730187870000735371850055287877451327164516608629052022799776096199356820171217889050814656693487336156905927376344436966601493444136329522983828445453637448432392205581120456869294903596516045268655380516691227536951449918547584774882852870514873405247122817210704058842764947184255457889964006864201498631662303114980532168336768458307514984528295140226156557817177030551416966427287103467219757132864130006910317939106473050989263869703882895411734397371086699983568544800951448617631576278104048733409509111180992829125862450644901700941240120409092067237786655940073286805964637202659476134291594488148899249900362950328730141822359691518436549066632071912167272394311624759448271167713587537167835087522600321354197746015168996389812109266572979320136225537071547732814897215566451900472699068969694923993498072374871648177032120523671286296561202477918135361036286917544005679951306407029000172457498093706332782703957005659444253731059357364643562809676900380833221153169928345066800598636497180404496149203679807044595326512033695793120076851771059082165033412893913045769613034704159686235974104882704026958307588646662448626370594341879503710924338143317819660205063275517823979926311125985765328928084740396944736277649466967798442811857569734045970944214843820711624232049162172687106565910690547645447214469779381462460233047030567217107114825468160515375905673984168377913189489244254800723645240188234072863963581079501374530865154918457002428488890822262419720132173966059023720363903206875176600828753314968426555835426574972530939584602227627709780675870993756397567132354012033592812993408226539962407485524297385077653359629309655477800123650197343543897562316945564341011659058448669185178662485218914930156991925322703327476835422626635544002103516445977716967232072986287888935198454621761812071372597314685270038650418648696027105851578079507345704738137677414769218459731915497215495727453272075016615049824857067380000076017146913112221895168180275692157740094426180564211552774974516629714313130342683512396204923587627485375584184785208699241126525267211633320494647368391911056150793395977394015130369193068861227721007986500050861174531110647263299701658911652021459456607920869751815997703922653719930889789760049235040883226803162144931339626314072783974315910461201191423581862260452130092595883371310554413080445289597835536429672562580669453393609062161565414480617938753598393373339399845220008215666099583265861368525983146069560030518886051381650327640576371313991315029502066514957214956708440483787918196886976593571095233659714422299646293755233077884458654273049213224118966231303940950041351052017052104894306609623182580118571080979217600346878396219268062292083663222441608968287481922633019075915205520118590471488286545372308131107370013830118395056729972566914666971598264594286507296719397389465265387915141728080129067385615947335102127031680267425745550368972100132285447574462808234027763802395403145711093919825371564034841141692083084693305581763882973819335657773956273299844030780935406132642414118392183944338275339299831366766689076528508391957198326081410127261178537618808083648321302699560285532034382411412165054199436116447942531159770277690272002587751878927263740515355323492505252450967027497459132149045610762191820576681115653944411129833162068638617131724222905894202540610063834882042392771194776225982943867057724892484968389395763786044041091796318380522099657428284975482966156833817945891340173893661547251865018292713424435997047194931500941454651186110683181704250446740614484929771134925817975077655335176519235016162939966990526861916807946597031144971378761360583261041277882708874215331972794892265087652396278021818872833836648821423139610808639077216399196443735998551402117933483239539422190567616661417640235718308447539328682416220982314503134098887136938771532346012459558858830322051978138709121960456057221134620148034450659403083158529744748768612197926705087579620039275549400714284497552484991518627758270447944310857004333702439176989565694255265355793338639301604063500215468810144849789667196283749285664769617636673892411272347936196850951615800070773461481198517345117842134351767328133030997033211789193693238353395423290260585209694734986083487382730032658082643004478588161747450523651115179144254064006284198509961659103594700579718593470998091255909139088789179270487058838759621856198848949653068633432046746510894220532550154910379348267579094472680142579412881127366646347728211693366319568106426277674356098743666976256120004632428505506644687408124357178815401148521791361646271248028954344227908826877195030629104814212770903568265369941609398905780988035099829912870921382959248448188045222023091138177294631292964709412050805140835812412143818593140345192710626191958444429102712435187616887944616286006985850964794782737707785125715306488006418002707768123584477333241493708066494799017055676851577810779469765525007662001710121114984413115450886895233105675897954845937340639545635438656970797340988559318654295038190546541774216264238959379503547707471946871675084399439874441274682134419954588108391047864319470995243946589405572555852827552551505163721424443275223646876461430528876337515415850707371377276432080848009166348134930927082793695892344593415247852905126385452085927583796282859009253996051219585776082654991432999322569943744638155707668103198926390068858624701674115622759964958293107530412304339301083662985134847665477372475064200905339036283159716780185312900604530199646838733436750111512331882853295289937305342114113982064671297963723868120894726942896794545916084005563358190987271718514358165890266484473848289232053573290026075447385883076832528902105955807183347610294742595456040906259534259883355860552891446142760076275526131462843473197890038623759509454556519475025760490926157546319687394183580616163669123076054875337428320413702960349828841171225975036878914302617358557821762545631489828892633768705660224244125059296139893437008765349458101634625092927940801858567794646283950203397436709238013141261926124818669904867304321680347299593826432088724130791378558217201003641283420780272930430314516001821764810789033351841430911097743966354321239531748229393785432897097010765691742749054981441921613845319073412990327000965113509245408773883786789457658843343725152938950968515401817223395279403503974170913919394839456654624972636227866674071065246525969273296838682981890256421505963588743950358945003976907660814415585413561112031746942105467662269542586113586780825819520532451256121836641228271408360718523857717646036747017271586943058367917291246834414745820445937920345357496229467237299887326146712216770157701576693444577898803433926527137824262183009308818354453775787918727239845278570966400729107131550633440503571029386512767927309459963808285153545916309201732265244211925386231881445795041377412858367469356623165791925357690901156325899102349078698999041835660718794876968234262827151521804883469661783204383477915790320844669861348801541425169903514616261949884407953363482850219825229450203254578402352467339180591146210275772481000463806126486794974233555038339008282917964754413457845453735559953384150382073427819043374128738674472992771566688535654680920229688303288130835263305726506013282597645489567001677199611147087219850188453295348914024534597463237279045115527644624516457016725746515667274066906021187758500810071527822911787202647266977261584963671750645268154598237794104796825812434654430259914303842855682312305630358092715410261518809924034126024495065870744464340810037803393977777036593564748409155234369292100756796787770726222448691629684449160871753898307057948286956272814545621277196324704042332450506234564508693599620598128611354747992932662025713299491132979835029401689444043625608404541483168686062798469362169507456798423911931349902632812324965372604309670697114422427660453578194173242555904506079394001689161175250324323539419810101153542934167248374733996922383156591053124972383836282396674783811676249733016354800382327199483740267659206675383768218859747514302214965732906892434754064519832246254597385349884720917021199859767569180773188712965498646683753152894084136651896856055531975057963542366147950776771568719310539476383799649331514008152984718152083958096884174916100889986971403007716559834248570967938676002952868003553556004787647126628024671579582162801155611274072918999509431059421178267189315758554071256200179395354980912971373202311934607550587231578463168980664495305646893040358528890325558317057954539139998299629621113107996160300444509851388400077697771097037836961057348566848011255811945914593063456288948294565069691021933913655379087334255032568833835467837713956215671737931503356731590915758433480701717294151236786469740670290897331065839387147049275675531981535891888289575106970150276558684993514931244725530071683786822655000205638321823330454252875204257725664941969688353151972387053411688494662461238788881180035935338701452903326140392463163608145853072509427541479206354217309632601415841495569009440735182977595615979926991313859856614676673335746790393655789354692218035285754342400248152765509032730013945618658268370027942875239371165401406793146555628348750895330343454907490429531236136894932346471715592222211850121776105738274403526515124052996976145767922555514321831681955501902336440025120111507278364474295264625249388555831793261560804398588439804909987479623851706243670415405995453698132943651924525138317181776276061942969379501299055867678889921874824966762621196717683491083467621335911774425690805202911820538404013040037907214834109059251944750182939418713374465670513740685286428808518521335689663151664320184456997515126630220457075901595711405411522384611149200745592916633349310660406304561194466433367081083667938375567181329197898037685394419794719794147678166168756312629660157441229550961327178632668540855621127388296808599627158805258358409472330273326353683748382483659787015314613729629871476523152034776839335871696191208345990890175908896014509586035501346664917999171625032686195588585034631888749339253901519866905451796465487429345298912565659566854926161613379540297889368740028933148834733390784125558404541493894652455098569214528551928010007043246288945657362779649852786777259427839554502965464927992240908664569214340912919236639430180242129010923342900339039136654116609444808081781863430384355814414044967655928996623398200328256973635464264321708408639173650488580435874242925299574359318242117484559182783410967817356498748797078360074332434512899363506435386249322338988460628393898843874461224027348272049206474064195275096926636982683518217226161542210121902353888946311427644845490479570459951850606399089611203745006462431825313522904736973554193448514806061645425026946106654909331226593806524750531150309307859524256613586009794175412126098998885112485875496991198033683312507688922161591909541185523981434315916528536198120464934384505240806750958075002129797406944650525946308057956913163594508958873346475787611423687196816052132604295805453686140629413189264645548420393061378049471538398201301707997258267659017645629602782026678881930466349677145123382370999283652336681168536154160128598902963461062500147267198394742834072287038141905961307157226163792299410941753531311829241267465308800910397158820229986491990558794312149507709632309047299630078283267356104167351419415044486717051420290881271419804130556673302499804732397186477702042023626331572884870220809728108581592996713713036169441957858937247282962150305037165295435990035706025161493969271612537333284566136635491291358506290617892869200922142425783214130336440833696725712930005859626404226392166848067449957492835989683619794086819079823691866202851622653482769742280773699140248221379865752261325609077381559051034535073933296833577962295829677184410297178536972733400362787134599541226767950611874360473507430109225149816988887654092147511327847156001939685448331017405316174778760752915895025830929946631960596894353601154672116152949775642305434097626959253526617555933097596368009628624812008213788503655197905963167256579021612651475193889700343656015642229987775669514468568380349532792558822753720691172086329896546829522480237220654466423417311052672080992497254176929790661514040605884967405481255899525534806638182091708461433130202621379094714851945111157570188965432697686087878226145772967934776566658752651789532562719118490724456478994678935017108481182835570041349274820662844617297152523563065432162408716358104015269688046667206058022938787028439894517400890608212514434098758979564504987721085647790591194195704171433428948512999438848909719772994543354245128241648145363369770897640679227273798348570817371251201009167119928352238819180454347046181020110320504830516457608083500286669144463984660743243536576930921509580915071570388052857878368133142912942041324130233349428106543320440220620333120743224664918024383423138750483166016947909090864710385518767881161449680384567607683369609948149984252596001803217226260034322118071083955418544943359139504559429878720921487021244929609968858896111995492289702494717981541563503372188057918631210526732675276785715562606635238495645135279754131688395263739346849303275637575824259780000454513944679933345210804046113623458352006184944037644976667837556305105626962125618204827363565516424456431367022906819926041553974537752583074887907233022222529180832260917051345680346898592863618978796946836751332978857386106463491386321054458078721863804768136246247784726812643266234198565014032300571948272372605443053702439592864744723945204540842550541510364567179538663139515568340651082022726198689516086573377627062554877417534451049499717504054917329222202527410524902242718231632400168851308689169368325700362878019371762405324661040804594571883042897769540886645178891209151694052798730929359397421809006214645596645846422087149458263047181118824007808872258534109591278737272174585710771149867810770470958931113354403401575469569849174100641557997900975243466048373202483231824717332553911470319345179286203170864968157172739327330739095877567536393944677195240256582530167447100071847854301536839955089307697396797761172280059092028274104112217873658563530065361023307036174795837809348560168741994422220098183428815139577883784079683139042396820093518349299768880321397660141780359412789670794415829590365228483718201686978803270498312727330143908365702754158888096305873406943841298200489821129267967776208957029275170060504782363765403263879416762412348389721751887320850241186918709542006204187463135623550550680029398264266028683203627001795960690591961181121862969817710636808144021245097891536895988654271621233775759564246958447218449900662880638801166916083691384524923403057548659461887460891316561203762342216795384742578876724444974198437738486949215749447741563401783588259304015961610876301131941263716755780106234846068973844913606263764117869484665039565068476322661474963025189817873087123113748265154174649805005694563874918500712708834863869407531871733776514772747225871711049460591796144980003797226060677063534298882441768337038620859329590558635801567839207284838512098571009216429525174263407459041142384671038662623394266182186875399335232373565027215486418926196595724562920638231837645505002495090704620218458517949698837035981804310216781356337159554990350218892320010567138795672919511582704697519847458599255106026863697061199562780229774286309505658169656385636750730381352093950307071637923369294348515683835969232411005423151194664316166153162287437620865092793821357995659700893649378043505834021758101503315970241429030778199323025733551451622207680668936896346032423769453415205631599244461200763489926768811507643378071829471202594318764417225425088676263652799743994026108229098779747452894132782585972411303051561311966217997551314306523348250125693001210850179515337907529684582038637193433355256863203752077507158057735001082155598814167477196526995732254140962208714682411050817794777075801901118680842887288744924336021514830138015586199733680247922236680520800758656776040054683377477918786102691593306328209654840324848457644316784087160539314066742777937433933394320242484237699686055980853510788508897992888306495480954159252923327487385281601253356707030990246450656996992305691061754777614251256656996084234912818762299751051986783302674903974497228772832333335705584856525018938537627323191058986994217160013602183940987429488205485669160946810156001237261441977797125781555303026582300555596267822242002127337487484002002904066014790144758813293317463100632593234910764774495377096286306197559546336668347272042478840888976573369674804788760027693635023594307458861528958762239105656694026998021236397275163788335830280676243051442555566997340545875280395986157284887681681815717373536038292199994889076850060228759742720813684765718608069479161029225353759621513045375163328765787942049377511931793716607841241624530703614316231416212469556857325629137826413459796565149546930010822401434825138892291785830423472046852672112290865479327268223507338844539624037838603024567190361631998318393599271309941557951553137142531884109951075987969324579033027620468696538959022894748196410871696840150971450360984249694862314964877714128504712161738041949141777237088697391935214323764868642404654236742975814838211463970274765584087122787075695751909160889429240751692065505205426000952327102650829897571623392821208189997298413178219924095140684895005717380014905802994232622964154532734241768785263664936692059035738205435139293380609922765614202341304854563484690326143937070922568588822867091273181091445278438099510685612107862257764892721085904310845025251278595619898807328050450477617370383331729597203662889596088814822471898036477490728559719711546264967624470188415782242288554673027225073109616527165833259540801053968259357535662814181613459513021799187237114147924110377356576322039323501064838899905555029050042873174858075768084403915483150334637761203061822568215909033424247526604069274182577657808089223930755229777521851965209650003885202011549099360882782819413140783362036258635846483093229086955807063431147919244480706235569433309507220410731186989628697652195011863323117717559071081555606797498510973236022485941072983207496060705989764249609366911759615024097883558009304882271096886736553576714180848687920699778292709865907158429259725716431808259937362897018970460080919143942950281431221481662970348703161394526782776792701771701086814683106185520922872756746028731291227420156327564212439204375022635291994422338323214616574730258194571527994062941155203409088328332513178453167111167307559253972437236038413675602271913650220171221311205072040057596102092224213934795761069006097467272260246528417888625950481003082446879430601210704526102139644693151769063796525300424736929560452963442641569019402812315109803884795379857105948182018283988969203637658548868075763410080982713895736744362723480191066804770692028384991496335409495899963395749439527323741425275616641251638260025708403263561670974982211540251672687250766200303057071780726412561142488548497299293295238599551921948730479819535283305030252839208929662077572038929222224764085373692199887196042181416364829091537025212789906556326923755189507540679186350604488378190783748790670187865688540913374662550013263552660068304617484548812247275264100103226189124663010376280548706122295738875838240267084090205181780175691770085243602435031225780529317179402973576240364809777476741504476225999681450068485795770128409647684878744063853047488367809204393153449304513017658961168429927125760363578546715246859873868182608140293033679505991071819968462690511658289994056895187403974096018377553717582786177882515993307656071268579512941724492676995705920215964533216440739022871141781461454824091938116167579212673069887139734873781622138006274955713366587742436955489786869944359571784730108072384852762512638409188747248063284036638147559034180874359546096173973787101329968911266255631450590607192684561149131843762453798626841247484808067368747647469656809549085359114559582465989670911174489827807251769887047884772942477632735669080636939341162281723783275095544390338965779031218413163513396702110624852084260284303157133481182687517683906176754356771333500025593149239400230418282321736553216712938025057145902331446652247616967024066530098969264429764971850936817945450732544248264542323243229490712901121602385693385979628683854727182544951124428449398249341337232645188616615680230386802455323830418643675463930227588821456854264378145394621609802360319663724832018392336231693731623879189739262105672519865181661716432117077865200600184190083300243184140884276335261962560524139940774164724890151781412089474680634387147064824336948496632240448036633947534002762569888466558061997437155245439554174618637728938352159491320527821843746960081008570732543727319510925954727614902646733323449801159192861987542610226319898536926509953802053321145583017553683380225210834827677332471203216873377726727784671496482403161036635247904268070606240164878318688148068798208637049410513386979406806022717064734744144147954354387982382761991886663875211667512989891763737064986920866464739713406992574523519241117543185691897348919329036613624589482481190597557221172618847143676186693798463024066759767417674037403607638431439745857572054705722192648123055222834817329183633230325770485074246038769501554339981996638775600097134332710397197701496782097348336116347478228397157721003313592522610984807533130752174618557191560137895292071642405420498900385744700655279626428331786078838839355677262571903550201151635796569039626372889251925097368424294919584201187886725477758986754266887836242757874407456512208992173826145975993194810006843486433058761451248513529785721534670044054173263438700313841796301326695343734226384863004230470291618522010608764985628423190087209238803046863370641624306700263467610845951878493642688822906249781933567369151977702584604653579875444467550905486353674322576930569516592868689057923541495963523757749750690279159444250818321687352431993160029786868520877243357611033517474722946311035589144579721908074319080101018201662065295844892709858823334581170642163246028216021327633936453832199065537196739200801970386005592216771164011237758848882921743232550426893781676613822592181742088225791146114454912943724615770514945859356682700110574388925042333148613580903200106305162500553016990579433523048283555054000873035398591489288307909356879075810813530223918097420872411300041359232253474148391861549769101965447408396793052772797681068462740779634422371355113350262667323407223662981420246857425076707728497038889173825438897506216408988211972643313273661598318160856145178039371575899581515848267141040426075559270608834525540442249834989537612768146839321026717661597814796219594202972288856752905195909071957500688530442867219533353458226720210259982892658887020168951640238095991278124822946639556718877597067200180176478114593848550779875195909831809810204089969090467615850209735054641177558532871736075045415340980056731080560403049374045024230511458772009247282801180822147370485018141579499824002493393223735272684088990091871922576069779087460460827285640806839567525935922712206867811561002976225789445718486111603452889914872841422187553672995131446311649005832427879040330687487310052434345804498634122575698936506941041733537015416305378909581935708253095334477038330170277935961434486412230318832888991714082263373500773676659411317312749596821986042231092733274324461318606355930630054818781442875775707372323083994953395204444187804102772599000960966789771319418387739509583300409470898716518950911483131571891777038094231581631317041701002862939044571808189564730422558485804097801473115674759287285350534389363900233692530436986643354656015430996935671048600910981865949665339776040551145306880732591335181245302806950611070033716437883866899848926995248622769004101285199090055377549905550004466860942029614114143654382921871122137336116621217315731479006511288511229527109651837212405493056409488649649870946272523803528563809283375342796586056594515742768902707695402590213249779066681223855201478578885606497175910960282018309124653902316817708661763284317631502555905959062015033411989143203475619948579032486365900067351866844752385655125302667348289679654270139887708261211191197823063079524377063267249216957106529039036119732132567479011813415795776965362291304327088455154547663989581015927675375018946636495575955619742294454065488745451426733300941072874214151115974402510088150191814600575940037845782426959590682781346817505788642418094231422298826962388604459852533716483437035612388481374705794132781639770254883942185430043813055852097129142780580482102990530326172189590756641617091482121649598325856584587899649751539544533926058890083040851435074476882042448279542851440172569389327161121032597085335942097761314831079494743062702603161261348699658731579059906475975994596090735599088297946069851813343857810666365823768344672720362191117735152950042133468495852200162273805097219462503509473762260620241127655341192677485322785951694686558006512679195692472260371747484900168255560943339232483636412017728267815049023373065702059194057552481864897521899538638031856095883685689814156849249557338671743617689740714792838052672571368868498264071080082636599471074156378282232243321238562836324209427316351041808743449545932389055719072963243660674786911018422058644395699851576071380857056579644562659931223149689320286108842747652648452577399950956154907190073994681926147015173194953105043121039468465503520074579033832732093737948330176244985429151079892544310903263061161126407617017593327365100056941383592465128560684754672676583643522162855347909488975588388182850439721976597430495877624583850058740942805991345171619670373263532358553546481140792567072714126643489720776250672293584543578068654375742401312484102490304953401060769991847479450654297093589109310919879494121039736384931325216675708299399544305527803392939717493068711539693889362319483343130869653959180220978215387131820652897566322713504902987941844565887811645708721950425833470093107814688243720211913606781321189768574136183176477592723765891705679874308188802782252401199539637010174376385053488183053924250728883970814545384732676494465537665411012171266543836110696205759480393185194683202661625961185134634971170614657548349849136566956441689574196170225087292703688861268719053329154353910556727610797980183025764513426127379525589279902617632621305649902473616584976525729010748443035825889208768630869728699605960043768731491979560785171835401562045582293224526548675922728587050302513628051784304306541587570039266082682272010681063178720050630317979762046768417577960993270284941918264217640876442131086133049484629914275612023684179979103940753508312150033514465910891153750084413212665255769991338122721563457940100513999662847974425210388040290332254408443572994433019201126398036513324148095582980820954160340849405446795671640901122111566070905591885536616305755667619388032236957465541911066387697684193514382076158003878017663250256396409308495155545654039136274643556565276600082061368065015077704320373012627765773458775477907356025860023042359567023585376943514425889377477445097746005875283521892226195951088258559229384588716268745189840407259016784632400664626379557284297471979064699903608747325461370142525238917987554004868523399504845894728064650208188306733661205133822805509850946772749300335081508988382189814370929561821039565317113041053456697100683075365482039213124486889030066295813590282879986558066499861393527884753100972192172111434605630399652380822192998521507370192373071104744689127477515972408875791072939549588652071698686494086423781876852358735625420529960044777171929556975185356623649879142943968547751421981235009510610347384398188583299180201756639988589377089269434618546860511595852287652350987065024284905816578946388516959897063641843845144885315264052694878333294239455712157338349655338712316398452201965723556773655793571314609922444339112062508025586440665301185206062215153884069298209710007328223499671768388216926274183681933125177588826257684257343643487714452321431969757152512078991323502456749050541377753206805397106550196884250520109636056993340716265871607533500548300766256489247494959771765838713467740376877970632830275504492466267980425952965476995759141946191905788932064270513400721186352786665217078938271865875378000081969399287130915797784881705488838846392243331543898869511500311419005109560941825671320221266621658233449399844354035656811163254394078806509522415904326206275711597370026891752921554432203157881228336368371656985982612086654032863306744281190923805604708882717872214988232564402674839714357355346515611418038307014464472899544594040157192150586331466202440129808535154262958858720936257947660674093317225594406741629499359179489959323157428148199812869436455003769666881008442100747778683903279205752658679133734852172703714833050578065267134420288431449354156953148286022009708079475984283722154140027124264503321688009331753436979481382977806794578153374282913745149023491699177257732161235498816398734316983260375279550456358937060936417057066881462217726712803308643259920386723435949033722523883083413889653801411750384787131670907274680222040595949028646056855079754232201121074747258443948114026590022919021474395991483972519178869098814858415391182757601236333849905937803769177760218944370236442503777316860958730564015433400205310034918925890440602494370098979333859503612746469481369944807255611587568626275680744792943547123241733866504700334573445823490899413055228321060791567041712867161564283016653085252365312770808552806270779834676142474273253947684832187714261467703564116005377998208599743693165874711275650633394386150342470975205847412188410899294598589094109651441559087035927556966168168095837413011279681380421243909582104954864612395853997202625665479296027840958063879438251562146172172979168949080201812620023115315015551961918009572143389063375297929391694350040463654460356661220933287734922501317455415394851851670880992497823957826000426842621932288172000338722186631701121860898006224781248909139102451166347937065645167039792306013235769733397892580210939283035073744398845057731587023289683699940374495042265572263070271822128236604699787641841667451148960540464735617921087916052335429631380722791596197944805519530106811392074702060080921430188060727514550900618840289143975804521893189454775966158301700947147013420538237791108221012705139488946961964215163365869082506633259623327035187514198487491931903399446293660584559769684499548557969836684247002472353868392446141155821516207095020731498860382672337316345920169859236172744261977546589827984083807289899541520399696625094760201511931854130758319881723988334433318720171650197822833751601101061168175829921540491526328797934462786189905206963931609072075539388833486326379404958879351726854075286302062533778512503736483655370511469342320683139540676095722481400312778551964212417511228055123893087505859364139391606655733586765605464265964584620003150127168454952816298444821764531740220732183795048219647206102284799362793141518108852304093188248695570171851475851262384543599751558853505513667639786808145507017858895437885408917666885556514637850905431166055382092619671231511762409014753683627827195452727438323038156297426459394047469927595455512931903370847682426222746779690379681188120798668511521052981271497190125491408299096709025932906998447056021083983623892280590137144151347706764183062883671677315297064081117117707149560991716664117533071084005122233043291105815807629157357085120508809764176775352053625683309661984987117551386314175282550085135825679119571026640416915219371691221473540041159141060056701101756691450810618863593448425471714944801319827825334422133683943167370964168103281553545291911531076969258296997273041252319610409236003811297262740344475096561455460775594309919292610745783328997006123538090809299634502402926887847448615200216316819951322251476352296986167452784630451543524271169433171460848822305801718380384622445258724497901449229202874990461683704537743171874332000510988421804254500117752378725351512070592074542538792700719010641403089680335040484167229162569841592367249689418808255195473259513587699385174744867543642037427226761495074946859420781411868985388935926305569669735217188833735203884134825998009408687916089744706627397101147109191848337930271744721653369193886214208570387369633967155928527509118508700038644856299843472746859330150869429472169526106687288509159722902383207681530215476399495334946154355878657492179428019770522222318088412359717089813378325468697640344171628362301360705968965395497765286579338478980609361714818114461536139380640748482617283395912931332285396083207051081954760454091991957702287999399377106376664536552304578502531723804393212827896646959578933023806641667451670731482495007442382686557929686958900460287866007465653225758829985392206558286389837417910606486226383948506649302060932755625042736571302212311500530392148462397457909670511832981139539436047984609762832785310351197898562982920547763208047923148098193431146449731338542479508431173840347535888784804413125029130905298536611180972687629796273303653668055469876237280737008423557053150844518547756803109959830523027278366975165042857140347763217614544883061436211398111975486681452225778993351094148622261846483091506758884054407919602133211661428706379268117584198190468088870523429569734867395715021705704774770578752176405123868818034309145862589375651963742226559040880922733102079277958716287528349118182726043741662243238756643930181253042901005314170767189146260576997848264784006618111012072305629433029197828172259330064399339694832482921629470392307834271143430670139565992187378235893867482100224612039960149718402005276431140981064467617421752789913171828568075401476768880151159571889145615620765532944553266152350808204541140125500321526938625984409336351849976933245511584417136109060383157659364354190133657573059964604777942909230176083280882388198184589401542416223443525199350507231665844272631386534025883866843345856231493453884723240551660174336565984015452725558109777400283206441306834178224331699627045164263532701286084935179193414128596468694227153208370742242368079609419864580380751400605122878861498612194971931108617131444109157694527843891649778469187752663560806378699819590616917636909454068192863644645092639197492388807078068607512818433665319332307591410152750031197390092468274518209673344950804159872368001080090797518511051286956958353933494086924241433804776968567772937738403257054568517619506753367016572036808249042755480699000141399229357820138975602865595681345171426447375301165273341629197943374758076498853902839762561828127805091839029353202774924765122921552652267642906403751893150331086558398651185233629980149619177405428178159517371844829164558534977361040032406088967927177572796758911405257845625793622820451681767562997850427210654665591492592884620490004010939359880656036959317765421211948087026726454777682810526332196784972293180894362938064587411333089217920023494247736181173621189730967602876138790212089405684673953757967208814615294987338112454321898826249289040699304959131667302865042993383819576485319353779870848930543660702783978287850668171196283111549477312502282120382615923724706835539726289242901875805793406932299032045355378873398128453280692128288591061786418118234950729663591348933346034537953023646713756051624415029261580747932244358433670713877983453488074451120495793602652822427147211341979226522967398191841004257776610317522529301167854637731421370404741570513610056556696226139681229308009145239350510285353128061962053212824476407435717078429597158151467136041067181052262412717551103175262607935744782295182044476356943402111520758560240106258153488386109522556880414394757107571067751126604572850435583419376826713650704849725400318516317546880705122492290980327917437551769958364439432321775549091661012787859470488779941052944064697186589466075844146426935567210788620207391776719543761854444447768661664357779000413407348993024699913021448962087647308801086546577028687105227612622874523772670671125905422500711753871063727360383810047293695187286518801802518401249714984249261753053176031084842087195721900874622514931307892546982973737863361676757291166791138365481614720160839267057925062372156205248117146847820906408419429656984679377355301206477828383143970457456509642068164118317656044704447559950090470148176262981855738431183764692816494096944682091052302459937215603561789089057728887265187427040910039078650134501955286172838613466620300485102501672164602642289309709988655228011175860911427803025215655164821486758516503306489124588469962243335119577564998470670902228171215419890433356686104028489921119519012304417788036801090307821534815904561424313106568897186873445631016224618454605146803539354703932985665843454052015891363466534295235686786074753337936894994192648684113045345171922578241965764190430272361647151473772699672266031398002454334952426113224121848924006402971808770891436454021115117138618554987768383833710497952733593958700004295650774043210696595860478449309055455100675626582959745107776281303151082481368976017641802364748888520964870698326745132020605955013200960893860623609437254794173241044613764121216086975069097729369960045932156683755807569412886785279106276213138364771416244033143834868454666909436245778682437700327605385183166250306730225507527295947978606898612076035309019028490448504046449007426431463849255287177418182272696946171571214823015281900146767997986080625876973005408641681206103972637354306807271730989662624908136808499973871359343633666481078585864895818091900019092449030583192003671269692807845424000341166039939787655994682134254792574205956618384053105894834658450182753496862366176424353010365474558159420002245148272018187492744160894558315466445412434751151431586743800545719619107343409279978909708773106975706495395598730428406761176739660476976062768707605614881122317726493051413145994207290591167661044467494050550929507332557324486924895511242920568609167686737177688205363167357673702159418567121842759564696370295130549912499351492305301848432799778188723900728310688873209038329398989162967826186295544864956959133695140539251267005956704771683885099108346848479794002766827487142609317821600744562599554356740181885224806311193640934108334134329090628352970030838959383939841277986979291029758522747107803675401454034146522127038552883530181000342611580541525685079445422049110147172769553307221856417610461749529867805197884808735390258491292419457314700719144491464273872549768424592961188164305882255459842725415334947821940378852383827616181697750166628370627435779561943625377355887415533702693822374279147305923486687307464958063875155520133395949433496406979560489494296171901590649145291391480261618066046634992522941027210901378832075373762971024090785508195917828039822588058931420136605411294839868708269430659557429918928525555092848705370308245728097495713598688439021109944744028250100618875957036019568301095799533327849834662699413474837745804402703183679643963438574030183239454241773323269955078978275285659691547692789414895359001145560105426851881500670532699720142461913745469998609962544208365496926293971823787496452290735972390844009950231299700207350856456868487923057497911951835876403865127122004745160288130126568742468630408629091793191441918055569730653055001739178478601365742323740543603054472476549646878635004360706700494792076607561841801786555172412922426893579741509294937337844788102701531333780568685210690811485798581330249579283581531080588968515218785673390565313747478333873734433978925973150593209521288170264500448269307054833170000581828082760810185753020326772974552917575871176291959028705244645774510799519734990417976394513740036017780719143768868182744399624954056030759407314201524952939904400100098073077622317849921940478534558029633245030464056539500897085330852486698395181047568665516723891718019479113605264212951344130470876228259591432827529634742830450838471249800667902326277135646122453350679471568020985122867634717890625421888643840267671155213204441982310420225279983069357632373888218948362993603646861199754507768659932371220603135012777111653786024969075929397725382455851241027884805892956163496939510871914567967183077575675858042259303630430893716935534923997316369572120989932342712048707893858564884067007636480760626083892411454843638815377961516568043724852730934457037677893212841001671097720205461737366090379805308222144159237689600003474791849160133035611185394428674591134980932452777413809912062961091263873533192328867149856004482816709259766122375409462810912602713000099714645928800904879952391266943281935431762340304875128128812490465165483346023514081671115480924295899313229753601498634932883745843768053538158271603194376258342292117438955115571371102117487717780247836355408738175663104804726977921269355394611706356252022047980777905503020966333384410493937214245014094951262224955931345242229471174144311489432398094665626657543746664941473956846649962683937945205246586909203196436776154567991706460431830619682180335033286498065621826330323855981269153734200460027903652686874551705506915554624106857159231983796791482297068996603028465443492048334847583714948674301358372358515428576891216592924537273427230499216984622449791134500868747908336811040561147945328376339480263388278183718241084766254984565730047758423531876002071833085883496740343737146643663233421724701019148862238115601769207704923481577842360916220044823137700806287348892529168631527482380027440106507804639430423132356286697087497974984993958513693249523261056412768079087432377953047347689559039376789539693218549717236592339301049235463288264180543270763734685567668550430900047278731732280396024571453933498519866500779829051292598994689647301118491364278456873432088814769621098032982589664073135529188499030410699984728093901432028005915876042231115556137747806118776736827819561352689112445449823491938150166739519680498556077103324736666367793665064393796167298378982144478738610813862474769913596859843512256403181271507527605445109205635226003540328690298039935688678587462216018084124395478551713952101636943149111638607221958223585206598146917885804074269469852722381321146156187561264935002730612285231946978057887707065640829804249164615604893493571380034077395026345998317576686824592950593344440086692532083365653588272408173621406628482175753919573049869877557097838630166140805868214130061334748425424412383662580684936939615253252951522651642932018899215643068843946031070802010871908435510173531315357770947903757011336933048177266925807811435722140332739329376977248314611430691999392610847710026580030160892396201812892426481058581431718280265016328701214359555310432147019464374147635359202246773708102810036097474039675723968652355825039033926983351949542002765039854343507901252480922878492464922788148720092325542600953653104444612845747909853397676425065483819454404764532915613544597532951693001181723687997915286219731751079033173418038556727030578447278082203942588267958070237575656569270804159608172942874615616929377977361996921632984188408951837149758412248822288646781243429759661335937939507041064118094635493216488656983458653327062381591276094944319506379144995557380285380095068657308116514351784160074143050498579821692455975445177112440406829629845023538451371651593000677065245184701595414175948004207266652413549251082460805049230204529421582346558311479731051809319873961607207878770210872564845941219103933186118882753066770330403013880499755369110846037612666786545035486901579760196662177714123416247151821978640812577735148496495271035047277581170615893134223642013804056346148769289730266536061397927840354275900716083056161160635546976362963863991674771858109104474668860251988205160113261197130658445930013954581589810640248064285761324387104178738418379304293276463847452092001731043671176631150825840160839326373493005332392277836457715586782857306729963724606641225893386552324391351689717210952399824303521289606639166011674726892753999404006866861461101190813182027907660777294537215369372030812601662323296893462242361535470412674288199253507633362179246990698140957397065848566070726157659023399914731192819650952514672637145537364523303351172740139093630940701741303275603385062829271848175018072512796664079808433990678285727111904100542811884165155655530189377138441207724248354775491156082587371088173859405690412254084704683002735026584059463709475618809992064209281894716748664900409566563047527612938064471172092149017819607839237399858147216152469170633851710124346626453023263021422636358189324536403978426909670858655137600932348705515002995971541725123452600111129732855661467946611356818229147963895230495578032955875145776310857790897489264982036117275544639067157134514378764389776707749915553523609663301725037780399443412146234242595035425092522301461012575740168259549569953766988010472234715683701676235463430198057270846619103184714187053423427595169728915733285457840222757201211459601529254400081837718450719303046511176411443312391942894345079709752868613970622900220631023851436761866411557764336523835171397928625768716959824192536391353185229871947514256749205113217075270473434430035415536737295572055622194964532920687237834344976599201678625715909236808896148353996761817382898162469422911410184006937316551380942221937179616370478038390225892552123052364670290476610548534260378356650501280871263816525923618561010105878371203434811312627551964366630707506869077983541506774100846157167380397601766231685838049907029975998887919772298071360609239198217772181642754758475273277777039610242489083719883852227491479065577075386107785273090424147877398134048813724945565694267943366252163983282675417156742187184179037754538442756903745296146123700565913114562631194659847395180887876580410020681145765810132523485961033030226107599239104226122323463531389756030276158905291980712226292182957648067641252734820441024454468686096799609342775998046616778545217860123144111257378557230737304276280141185334223988352682946821815589388608962892027340034505667427548470622638888644693381315478730566993717981647355742389529663804368526061881913589257169402429474699367716023353470102997431899876058591227388148685898900735410752893758869850103345127901064992148004993479073201196834879087294171879792951258546799136169776826960802084472968827878776807396822567665691962920669173311280572524044677173636447450514266840673707392935866086024729377601640032050892161798054543848238079144170403467565811168436367750044619394714989264034759039863820079297395738863124827309935929776499296870996116617712662268067768311261135739491424120540842074360539515050057090450686009346220154262685139578548553217865367929111634639981537271133105434006409644484522771244290791650217483896388532429918683023373320352411751894980802711282870031189601043140580624556923421373484494064534109898936101091340590238251775557472704375958395642702454984185291783279599933990635347794380306583344054969003634147990287926468548370134905377101333009616923346650892834845279304077423999504920236709581411871663099101022752096883559278064815405330603359918298075540670517934854961002881257793679462941605063655807552043854767829377536783094969602560553025408688439134507376055548383329626659043674170215287654132227220811565043631604606951732219275395785092883193691903028107051847982687009433507512899095241386005270050224659640272025818715070983404152443311510755117888021001174439229110052641591810512643438524774412421729642625556589900005643288212824018844330820003333367483938060037539767049070665489936871745495158584598126390780183973625914215564735714860687318559283482632408019030635292519148158832973062338420756612993041540920941054324723231889450558537120525478984726967522580629756682878352389859619766331878703164830831493365236419111216215393196419626875977158942060297640683225367988445219535380370499597157359196051727039858011376551448168734620964309057310161088626769590090346091238280820696442419234654011697056589704608270174824930124321012006802833298052182801952482741111395724263842480461766528799812784889030866302161057154107470737036432238483946237419925847090736929611086840899687690135598379089573393699717813525793693152168212429240005023243832861703544304927443740173066896827941477683834827147440738669293005314502034591757117423739048020529169767818723500762532249654754465188202609494725202615253876243483070929819901706387412375749438730392437998470213544049663358716281311492803365406077001447356449637804037957729944881034024019445856619673254482950096521182916969837657538829517919051446244939799790731492034922672924130919398806637968120549054696215958121078684652641256417018277743811738763404825013613744371992534532896913098994856649541978895448128377072010488998935452111897575962320796495232041113033953970473410533906622574410507724199830247803283702496203828332084550170881756253878323431349182803308241339626419251232428933390871016766470075835367002733977682962595803067062668092290501164478380826095805939179087168645869999056751005767792198687847022055941361176870154381424007267270829082118923666024295472233937320142323594965377112633004858020333057615625276572940185552773230574517084590614153618043367516149899829265791475972956460539742682808772249177791663959532579661915698212766467556807151700862197230750355558807247734673999236367990371502862115103764433605725410235135907714647010817236180562266662932367006816714264760276256950408837240358958287039180959574176167305895486712394301285380598985140773219271899500443626647784778830416090778743697938430206098590854370662998951062559957492559072604456217887260496323798988044928215476703397727357275260121375629232734188681436712789087793268174151610597481013814374654150915387112060700546377434861421304609593148539164355706724182577444476163080198850878477745435365862598058401045201394079568387962440395349411166271676286538852441997966505323750737799793302961582301682543919255851088553050090301160478905770310201435154047597472388420311344386823596572110903254986147174472268811691068786962289255425192121630982967890628974494741192357427928623503423981687703102018872287690723862681506349829170795198540026201169769806163101036079305356129595855974857802868466785628795745592557463587387277704859283410102492531717541789177310896301440073093577946270932602658246245668159458661946218937065734443619986199701767319792536687939717852920148576112698346285849751723830883635214054759647818733059606858632205842110681309816476230973437992475148316924891418945575815547756790737304087692700240003396984710001679396099841513908084407096151574261463096712087717052954044062134004540281235404354274539393262066878449658558288166043853920882413381374922930012258816680035520717608473797771586554170844080243922451490957302226720388706122235914112018493056024278321174361177440192096088065388894776213888492766743521470498932901883872626645936786986507057618598930888877927276895350496655683316203935813052199826847768669282392629754751020802744473806877502947095210334547122865570593582459545128843492256909245504203073139214965131865799626223264542947023496057896503495062209690201709495342856038285872883255952287028209364835276278149487229019090055152731149289900978530885703558935556385042367079806835863781405279644839948737211197385352374141971937357713433523430091165955308919775199374554830637658031097289569840116826016024889850282257293901170028745099858112938506239927337493283756288235606332852644397023324285643949199594510496654608268111848800561796695055455623947514041923010859539809991930885858876450771226834137126038860475038209224320818214923320550404210866726328809547993449638307459808357305638921963673570579919311724929282460573684719848990017967246914876325364293347987731961601031653008630747902974784133756844358981119433024142868220087290137492883085500171948042571717583343636894429066533251671773594716125428679391246018868328417684797842743947718741089380798835203571911708183457170163093752933959110641480013284514614194090292990355574727860230873804819658810664772206326790862047807629294232070546885867391217133111878635450465779158446088312366677299702538025128804678277066652748519393432512046640458225329531576243629621029466282418842727866235783464266948368029986735932494337222699292218350553911686916680058041834006857605217619458375025289101402051473326308405813836682380610296897231938746221037019465185595030213665018264456304209952754540938870963123885026027117955510302421319819239790048161565041208450186006609894226857349103427453630008615562871836526896731780743601790452989405103287327987549077798113383770145296275346835275110535287377337056655195842374629805968078161518247625951359453837017611871168696399785995253394716930399909505889571531164623129545680565751779545016339570658588715794171730727139185983036169114321601665574359966213064901681722450060776218293387464205584051218650996326877649829975142067088617701217137187254698577306100228995440730708540679436766677490444066496629276050286188817329986045742525304779709180035877787062341420127639689567510109125767807440208728789362383607543322869600012949233169666726849494283854906505226680752439772994788637594347744516845873520295115899865988306909577775625469824667169052576070840659920551963443842082101433117638266732444364973810713824887807923324497351100169490543262948025950261998892237740249892656471669036022230897492192203916213806665726511337900415595676331888787351748670681604743322503953943184641877908398550373645133963649956076826315111339255552391833113264385748420975619457198387581350987292704333915937916801857384448572155064177117024290867118229016642779587705365919418613640140568956774791573174781165184748729541354153584717114987435258636366956684774316637157470905388791388587670532554850723068087528103318404129424260654108698022036775773200641968194722818837385670272287629433225926309684335045692363001949395027046452064944312776729531303550325188432289475227016627304345381353345430581716632440857257765157636204213688829499480300961104841432018821924041180938442092051518378111787077460150340157672423274089669678562701913692479490018837607890109286232351081904966753706728768281032765964432157797841771304890826523927922032923784292286864316814712325183714490612680804869221986446607191542890994418544817955749741067046441384299510197778351878819405791451903671595887860497298999735653092024425756809379377756064980801447957009389035040631969500437038175369827319305831879938903419146724357903833132892374871490447396002750850916057803643488323961627249039640365207254869308394963815158881376376360483083800309572410123007186087749900111532406887149731111502378401096073390559890705573315111551994502987603436290717941039608753537180254511193143667071971727705870293536329788804715092367156816727994734338176821539595219256374153360514597441904489044067375961778188856491165831506138740773309942780848370640701914932075376489830958106496446346983448387366310626582354166583819891608483341459322580243790783902668464150729261596902582562889658814674967062317053631265038336190357918882595611055034889198590182420701619810961527021902557589233683885641191981461679393226135567966234527841274638760863687673903712112320171662387799323802706908960857719452212541655443984790014692418801735823930779903244253346030276860280283945723680974146454887442605685536239900011798600094647340352259985488265866578656962054580589178713112576289104836309065789629952660644251630659003155783525086512459438642795019872719684023708590656076298284357176984561440515855932495839339321187189270890659838414536424755053222352224772715806653495252023521633514067455094445335035446903141956307692047949550217630235621537132021132040679868921391071733818236523083287099226410346025303850044548742586230421146151116500308160724472578260590088862939536660123565810751998288029183443753569468985062564316114147342322672393148854746706458530401325169273788409902672574367044600072779151870054541055972899075841331584473330974278818819221271800994263593005957273952397883106052937074248124020754645740801390003825858168599432237790078386540208281472130518593607093074567636736299242381562607692204572538495848383087234344584429179183527447816755763447729936618194497371741483915291719043899312751026297628656158827197712846555592724131470631863873649281300925711007741847626360530155829393663952819885414243414198949846308063726275531088954414547859044850941400475091039735325300522003405821956919096081532491021219144936926017879151498845647123940899987702396411353934216083461201009424852245763440812908925694902072206340678527487763264187468669672171392072955814600295604799712501628263293592740371907289166927968148196191251570042122734675295545003251395501790597403315611345521820750349127177421974480225528873738445840714117840124751857637487402956496679606718564318261581772856329434826720494072412078067011503121916322982514593826865410834490777007376709218834596037236550769595385017861512121244290689125831099619565753750147145987808133504083386264360376325889781182433763000746128185002727540118918816772708674553925583444171481982683167869248256755906549149044913241543740445856436295057485949296876816665933115307975164660842521049351348635210173915587736647405842835334372950427054138480506361508006689238433320565542610924698366945694281211113304334197185391262500230539281196660372199735068076846948798729767547351020104672822359173224551123134656765198142831012318778162643008368639902911130546256235302458185955983999504628054195796290532353624254671692819610901085038227452205225095793812946654584687442021156378716128923793321655104472271440884056796076549853787176681233944412787263550026484788871229714068921442700803914659867486345425689634553205345671113786435204482415854268667494211721807023059340953982698367923338427160754445821675754134314082748437589386042707115404302269614429152630899261041687631695550928917006285815186363190150370329380444408816828910655804313785202759629214682671097392574678037778839076580091079193028423307224895121008933171303434478202072037626710569095662586970944159413053067045528538797751897251317695983466116844131530795599170015625542335410003575465450026498901189262370798435420024929821381844316597195419530591321893826296058372400888993321427306246694725869762337704822354381387982483010551866302806659611135056855087935531634550170486321481765592408293554296831216566959227508341005637198297040646472326334267360411045755400112431920483919952586556508500082415547340138168738445429018627212204812484726470272621075809402295155090824160819276468256065572356231454797180987928736130767532381147193525566689456921406475475986412369803264238907809322887932143922682679410090181969498104997844698371339241676688702896658321164242592579547051774553949120954618558561051269744322261011333711944118541479266882999840982511232796541014734006492787668123137476619733371957631468745659717328067006768668450150804788084056212954914424254780176419372271673791542625400680555019235976791016835279777358492568568495346443116092665221590107862328392656789529246683018877255125015727840268631164789028813686319112578531886411379569405567369885880098949412527437820854631164820276235328362080907865650520022606282642209317628083431976763036069253785850275116258699602837897486693381316742341780701027917365234509364079183775333229908163861319546550079752181980511804165610694171389028915279368486471032249504626722165844409886750638923027875334079958446171694430746947871126183011508541951221374391976001633726161784757675668172554668881601291899115222937183166737386832468336399891840289446181754649958044210161740473805892230759617623206163907995945342947509193179239697166684664365777818433987469478660114553602861815129160672293999998422394285897954236294065019922964617251154342845217356227595696531587658315915852595738590713350377466022050769965341871721332980491562633569125792762871677232654718386295110259248443226452689023226212676153661826659285117006559122188500833345587292284670024259141772809088334153279762558900198575602351878340502451369380123786626490506553114202684083768836200758564750604760192296410969065279076138222103191878743178347849422800731007149279896265096237025123003486496570944878934445635477597488735664740637909818680642009851861383297176481838232024170546694435407062734212872108735966079371897845283315156343262151592010632118950110149254046726421814703352193927126250780910460957572971214399736239200546545994294336845020205493046325535963950858172355164067939982904185239417606132015852819470614728772274253574492120030428460664379356355458365186142683126002665079012047462964947682415641948036419362701252799236405827841323146309485402756739542876613169585295680602968159442020697542825394387032640371327477331899011139565224139870613532261326392639662273997350645944317414639524439682575178156750425874732385540420135430673448625833623955846860466350225562605460809538958943431633811094421688344526225361171361150261968183646514772582708958379573795979323172223251906438749492640472248470835348927927938668260405823819428294353342143400860819213283978468801098971917102796745143202600285420636205124196007196609520867729654718541072709901916917265474350469133396668025773343553010121872958965893785996192945758286450015939248864480592646326726945573354391602602173345786458701363683434797136338484936452110659642424620528292001606748219364783460932649434006512478923661027854190423472281610177056884753433354541370528764075040982612793945780088499425063163712299258313055508737675107300130433055464164241473621360168375434146256661800984421579234299830276976050505022396742268712659823309137184534861884095978894705143019602429845254921813264440649439016241656964675244280947769023025768134098714346915215081963947340135906204903361503466646459812561661548902075145066660604550466520832229421898772525933760829689572499486944729919739256620309328929320404210358026665875622291634471094878532370851211538520678064715202957475905829182812252702075120153280014249900793820479754676850621636266359707413862235540382166458284223951894529742965329667237074625084420507120614733146720147307512957530211552546823415339712107456534383320517436451441531331522356947521969169040294023064019017681725557225693242515764428575367849173940489063396190842656352298622134784917645854649831375734765453463083072110743123983122418344918376491165457190613951653053313012324032201127351072832749395546655436038505272381208354124764313319510497218344790614879282476824778425808747152028505136750927183554304568310739619334316223736286797934300029809903185814430791097068526242006387348199993305703111042549860781720111088463142316270877986921206481738252624827078870519727387426875515462941363316197669988008043375711219492225995699785399880206702423791151324384083298731788460601995890007191619802119996183836511674003800889270105568170759521308754080578082641553448568835777515459778532430052868603708215713531544037106673884574006501096308437085994526257875147415603649883956485877468286100628047900430727299059402658156784494270387158986884878357404009159300761803289863289937347373913370706923198905527351554260538467171408976097138806577746872462551642314651811486533115681353947157594633510621635015893061604187884086739600247739144069795490805848780150830671653591265772092180359989880529315647029626824366173546422603720657792067244141257930127540149016681323928623250004380918676055063183855079517424430082466549395690590798994159956800977615487397300199338030887162815880030056005563019971228538320070412992229694863502735978865818687005010749041933134296487186296550866701869294157667910783738634005376080082994850905013635029432440404203095515946431489943027015328313439272904100002565614034731896817556933628899005211221535484458918834080223682588596822362227954132440554198886676126173482277760461026898868716672141945979929533756954319514811912644553357820441293356025640648752125254394170500045177280471161811115476690188884213698085625893982953511843028838888610342415075821774328709626515922536110060390508247032978902935456682050861789963825840080130534220808218155121174870597390458422566694211972010739605220347819954637063172948716518829551589717711296539295519697049468216213187943811552848882768275586986908000859015320299862635167977068374660499411319732080506084186142662755325841558121871238932455377029764048045053515371973653396812614975254497689341117543172665665607508301372698851036353863806999893879576827605916775089388126250672974755011607114683027303738505206896030948634209639226559494664575650056360728021619225093246890305885171582720670209500105660400511721921903454746677303492135354748284803312389901678872516465221341621303044172148949494337803578233492667697777017387511183381607849682183766689167053972171112390396624195077869707834881208085317564721788644681937327957977748396045141676709029012349838445329844183383380462956170320911621228841973741087650976641896341110616238356310799105695381352209812244796622717616765386135666890223955981554647515944090489137935040341948772068743753792910802986842150234994558808713969611579225453266190460535301450521641154127598915423974119348778641025141366348348531803598790820739590900557790254029111717883132725701748748385886659081178134033313962981450140063569670266537587887339093749159276899981451846413152213677455823550825409503790912388563756199531718092509535550223473971955056557497104178458820725028927012537324457040767481325903958559444878821688376820363923715961149750860982777556371280198726692730136989287475940244786914354872769549242434534560925404059110653790559376552455700360885304591649958476265502506278831766649745863088930721524943208963319489423441709226085031154984405913817439062637754782192924005050807618183871072086977971692126241000562564539811546032180509842438262483260577745215885402244180537619146874712511205962348238792041017496657801956092305034831093356431070933381465971273512672332814498185880278040320433887136146522605436134800126189180804113387107235325504126580287913441710971566322695822986406924851519411691222914500451864826593394019895578846051075885563900419592185526324504124346531996450041144871421887976254293036899176090207965443318367981230380096315515753465507507456577551930363469075353575872057385346923107042401498026219837120250895600318886699319616548208838117621067802763235060560599814171511219059595191424306411395548525288423176396198484967118535994017236132371250118188724703198309586885862714192869587963407757198831041728597146425236249123117784660992196667133219643288579488688688306532231324893411330670024230925694930227010926781689630068173446799190660727007444717627513427139084679879577567749052899290065157552277193050167058496737180026266848146937112925692025477332731903124376460864635657528575290675390742595774152245602426226388454510865447346784870424821969249173542102950786428725926241197310746333542856573276119592196843755762328798834407076859518155140430475618498719652220992826524200868353371852453475954826755664982124761622557204252726737924127560727413594420749049795858761148291850115758469406810717688341754209504041355117652413458744164680764645558156544472651958960514056689686553729894810276665259684978946562088086526806822805969398971736329971723246278499687077747644577116453923749859886280118250418032457296816759925183133269423150931392835734526457622022147706117345050557859533266402357564369066095819413329155365532729326720204263753628777666032502144667462185188099571574443357742526248225490598773281788033054820186856573488961883188896340572375109260056871740460459344844600132527722604336062084714129252455939560790905825493766699732826716460883688200234756741879175458307775227083399367269519946056656780724524406241464881601519828062922261339008739934714869112737556297406138075032935291221217403680843277846729005743143816861992035529307153893428363445589954971150559921306253703066089180067575945068957757641026775151208623017137742435355651489387777959434141742732565024956097489908933384780623646491940925025273456091124864678033000066996897446983594352144782702430864175112299415508711492573892150971409587881668822039384711298035982141454518115717236833357517670971976707013947295718300299807228618182675231375625285744607112979655494596477631205422066813011157208986793578624432846402709852711160953184085599351980106667815990787709582283731463146066241785228403927984054587870203242202442746216856214197313303378452977724111800787644241889880869140888576968775248258300799575072774547551596665273619774347424755560930326601614980563748318487695894520898203318392820594292514295785275087723731150894629060118647008813636768143556667724132212268581491008466813175277558167443893011928587338762167105700680660613392465625187554905377194162066505886765254872540010752512779484230127363099583504539219719705474813457192938485542515776685519183909958969026589673156051822978965702028628920965040382749587553018177853969349542155954234040831124980572418308702303889656971841266332323415354347908118102552585890241454074091046125554774240835417928649549988933812094774759496316416853875203946008778957899523931758760048836120691402924891344865368302961740364595523883679214779571508469665640801830617601124000145307899854381905373144059662805917744583370187421489361474776927275803321863647653699566415109265015494861054604437684003551059982835043129037125870209262629606618145479084234765058136424312479674695749339452895367029590387822273886822929395476971156232667839660867841457229377727733977124283547736412924354195009928701317438362403254244154242207166734949791048782423284458729564768944574528629699746635180929236811666357886555161848783248147101740942065349873284111966994511782767900622231170452251525101879930131053039099419585895709784936346459501445206969814197096499281432609325418807710106233506334639390406780031398473896848051173985047499698694864066926480749059026910599574930639551408624121795407126925393843634224490721004811348415431682715776319186306633853459673603874985666880018357549176420869814245180351137658963409209509087452827373778865731771719558232222739904321962615714615049558590907163172849477284448469846868219697255479904093410334858404477635236715250273360567303096754297135575888885154535011845592812021995979511727129117108937491614376014236398213004866699693291805256490629790783127318841757819429726451513750372166693385831763342631193653002443936500343373132036009203112294018975400595737529978917863164865992496016139658157302323113791304159914106305973432791626426667154467111596586727167728295948191527817858687565256148900545219976263827728786452492322293848195980042205854364341158613130590189581697992888683392005178296000123531219172646245070849925512493284298772023953208962914447259979546372962334849434503742541901213658905017501628781368872967080549456842172419526763570068899791339409092894924057807346272138383875125386237303797316887449186579102212967288529321381284950057364132209320376644827197439640295941953613501742991749392195156509550502944622466226920377718794234787779466294839251933508939687103201860655231189667131904566977619589955542334321552051469217902334986836349625151084957883987910390414467704535743992470072126155572674628100310602797983753838800377989889262132713098617222660997439593774175376676769364901168481917877752758546478677897474347621829123175808134595824224508950510430954522627603765622532722927613112708618175567411055546189917065743342185788681496321558149759478968434418058202239018343657198775085438115211663964773910651125155066312320467174843666992521691064949261547441504929630158131165367774575166257007492218134414432946950821078291318562397103136171976026465087883196249326055592177806197537533091875401032261988036388598089686796092562564293069631774805242713101864029155324623038323975259771639362616395722177945677719495288409617182400904240695097419276648494021953087131990486942988703477779257129372221672571366861316462198631071921275664771631329687529865828150811299232178546295728468411254780289077129635179910638839082166830216682916236766912430209204713449842948723853302376331894998067517209006422135201534665496814618679044002331659725067962445501177564064572663165123860553200515103550725637456295180931688283692608539364474439590672745282668488405914407889620688524125427255858057332825508301457287421423792546284499875991045082261014839086078041754796368356296523944671161836482809183527668419073770853162754050826054154511885602464955538702471879449823022500253771191982223617342411976773955092133375291605986898100559625581052622072330331520758983880544802490363868852565549453201320556099531276368635842849040144175337749155679360251141434995020920984310472084158832500311391134528850740594496799742501679609576967763489552332398325461286960285621188711862123059424491664153099833164202495902606237551394014738120068489361610632222480033157608166215657279538209052316394289571633867169456611269350035416336029860210087733673024175638726972098494467873626331971363850121288383507316849004750733588301405982634824171138420006059662143051871501610109291886429123049971515834003378384226457512959143342701616092353608818112272046028151930839539665992490907426723878054238699780655645142240043336152559700069134350806444786754030580205546000696868391941552136729390657855760318863708765796137267721133551724704505745991807387628832010541122026479360602252611387715305445603858273761321627515871888484427955582331873773106330991313233562015612633205674246325398037788341502361422418980119044222494565881758987009122986505625876592613771325182471733202447981109176384756766369569000906639534087224337966730728210601264026507613067289216634365777348098255829406845762042927993169581693338862870570591140989367107397351725131644240734180161553318293286536277913936178545676895482668607229121780293972819757175084339036818976714745179180185247187268897619470494719363638191723573236986572359787035334600265068485589343596724457515203920858202968663776504827035177268233275490457383124916481879514846658472223017794226912605449659868286926597564354667729876502146634817534859549142716036512856446890561619045012267354163470524557856440208038497339644033383731556361201634552638873261742996033794613272141968640920713585192230526009871644986947722468491457637694614576489861013129303207144530184773273460274502181813351263402309509225072847622086634035464274979685605291461673959716896236495863501746763350913099322300835533849253277977428238159606752677232313316884723571730570712233010646191562647578253321652396773145780117604652279364656854576078551269835404372200369358299347399770059903444604550041022514160334950691739675648320733580867651894750049758438897226247503314188925455654361135719244813172256253895247280014771282692988818474244679120033573873201733843636491321932754904573549946449404994826270375409663585462973373187926366339089008879211789814162920342760388779567199836080549534844433755988979076043237861599385361300997054352533262355565765454518918736392601234930024245375635456181153832955527180983586267681597722627996715041666357650096849640184685279332606713983303951122372730377539914651988233795990292125614251060859764044417678414433006689837945315168686061976515197876698831824106041026162407856936593262086600135438710105837470356135273056116097584668154528297237380562469647973059055110414079579166370319745100841396422092417553497888663931728308605538288433355355296452700552217879526392349858496633169920132787872755398524234215191359939436456265695521226702671752542265887681350649932371173685048773998659680308589396904783994691872931661992910728116784509305329239529014906846116468595680491461334056811772566408935704046505955235000596204903643067352244761461301303660555506049345382095537434757703802060023321535005052557021749799933625918874772108435162623364186390767768128288411301065075368402117574156357905724617197151478727115704020867554992791828887075110487555825948695174599564023909685686791276725067909715219315796745598306220648890110533921666573271993562319598594995907944711612918716840868390204182441679015592890436733051221060130482348759143966948834823217394897165075263606186399019968712768127210310616691132243974817274246250777507693928660879495919577799483841417240113502587444354063506576181969697870889950528195173562382496953049721512692659750631913084342742884193146856071406882954289999144361923585571006032576436766417069851185180183770014610410354982878431279705832869205646617067941934682536176080752131238683784782169946032256894250736131398881200907744685243607445691709247704607705577451003769302435117387466839720893602410298097220081183512935961819696913309594532466191639738961510411362122197469712435161412712295773881714465987887608458360917362195777006216925656007723808892136055064042554988800590999337602935180049197605905351407237965865915061210070834641590248685089001415296839572420879274537685122807524981663703219390897139394589536158739647352590976870209991219519981641911440036954869324996678190561294920834262263599765020559890220258558255558711141687618846936160812670023202672800301095757406909730943701122051435373466596323248689276227633540044293841581140401013744040964330044362510050558176276377973483118050456728030112507560508458754557857199524204242238909904294690425661338205268376823103696387437571961369397463633984969321496749705225502789077898203195613525489993747894359619498776024901413404600518028068786696248099018459181899773900842766399666189180008265008099525490486045210817478367327819381230336942974868674273681919650966332459652982904366917127987632571815840911982413944335570293625279642115748096300878090023594910365101580381615586069986781964587660339859468714923900275174021872590941076145527607328813454890622583654927561232049999823510243554276971687928851530390736444132443123733165282312315507495176810094964616324981798933474654547528494443125251253814539962026101941294443433329098220973966058430865379743393495055487825722500155727048718764862857367821775403238667605007295516726357881949123736069843715362348128642938744986159437261937538019559173082676557955638524712718951775475428401730757549190159654154561001248731432109417333526936043944767426791382802274116728185205222660688677739398885405127430666787108970716792627804384444388861931147780273374354984762956129071166599897743332545199733337274519811907463455760420025645239594858798630253631010164188299405320494626273062567325325137237910456544652033522254743853645609177284554355413790689504970173311321611095150955636121752842425439127268857087244800790095492468732129794784007761884857869119250569430929604123718626609032943871098112084681014305224642626399841854500744962292704703620975652147978551209359091284422666204007553498887991841134535516671280895858037497013258862047992478640349642078856045793469875488602203995300686521926497886015834458564148587978614629582192035758513940019489654529324241260506637735440755308864135881946058752761070004176091660206668343262904086139554673218999399610929372195818776559540141342275840418802536299596203238380344696402928955147362912803509118546429367049434083705766776719633101861058637157717559815339757973620368200142330021828317027931071124116980857338946668984728663462235019840351377677553577949568241933845110548164676952317641748515051107702362547937517182503566584099015103841682964161184240880627998247418502278165254810256794449297572973457873570420957190685614349677809738771359573927058720376579397297422521232465411146305540405820789790074002266777548801104021970547601956610202119321916114911345031050727760493519082809961923363782351815622999430805590555550176353204223196113016619367690910310929725184067478302864858803577413496692838805340501421210619150803692048991280359981277221975664744060555481190946121022930877337133416839507007325412804582608414360018301633375573864410694879054186711922378073229092401944721898925775217002780261859297787188275395780222270391448914653345566992550946297409280006080175440251701205408200039171181025919929461937963201194150959940352230507812462270790282322704379476802199845637876995619119869196604915333116029718721086928976202921967270710443227705325681481606720079752506281069671374429095765174422344453687105321608138082133920111289540776536422923837062413004926806361583246248573527813486682608665332146757935654139491085329950515499623497032784533939057931817859086750721535046107416298571622894995885729894080292002855877883665511088306445245045957653605179146135570319568483654357587335645541926569979724341624517998976006272914066968715519435958398787939055594461626972533972837458587457813427866139324776944284235725927842748125825231619720590306645631319571193794809735812006603964965907479803045567789348752466380753117415524709101678340886133094110482492663317244815652865803386465648799458439638172859639928349088827309625137076146790192994830749057405931674388936321729109037899544663425030740731007310817944453392766938392184924145762106095726186894756371166802241655208968612261910707063586123783124348209701007124813070381877773976043815125288575632769537151128896972100325039112060037008746666379583011083112136253240644886471808160696972367564257577207943072370476675998499417305551600127737316340318386994299952213448749433774902896592914509113325813292144828636506749006559699143554924747868460738575372096172978901827245941172017347790878209562094868891035219334837495390433389732346924349720619394316934066843399912207691587730323370414369031357231035194422928716353901100803514358638172143331939993882028410450352072387117847621570963324663098819123891479180040600768071130332555856116503821625779274562938161238280978820619383751683030549904827047036789497563776159588631507109445970348392266503193683716034389566462995269791070301274951994497314163412641544614353009213416696609619667624212486276045261509065652712507378137896227428300587847395808627580334444535649670621721474928028131236397800460843238418112648574172246120988198964655768420413645743129632568864570442828236782389333056899273329656589544038195414581660391549341788905403811039992695916572877592088972580863790986776772468321090742486524691824534015852899692147201838225575518879633690707626658266742733406108466395503119681493982061864590147154782855037481247641432266298159118900159540786428431171927561632012958458136154002355179902602165488448812084329352341813676043622019616610829514870533877567833485481462456557960737554328683636860971837147189186604517857246458932853455591010463042363181970811194291630767836486236963458811282195762874118282904904610210941597346071275113573451980422630318847424711537660505558715839225281859527994454969224721676153277691174618467166549704628357878297644907025304825655745478965622130374681220470066158508414898154871922636441631834579394814662359365647605144528031075098123976086188806108561932920083314922435205933534213468149479252681549788027042788041149970430132658806522430158596169969627995624728311418778569185013465371729193802642426293209089249213517218520642071423581923462458488986425848701027298467237667683848171588197466616698236785125193603463279960614879772077976924864546319070377839226515249760867709236913428597933585679000722549593212508602639694815525500910252473443172539306180483118402720045235820869696846136922489478638316701240798113568436785190717368565807843452802152823695703858890167873280057640766865539355602893415787330229498609777330169901713388226646434315061519176410162293008044888840116093445788293066591012115073501412090384481028762489866288656133364293674857364730569103665960928689136626809467573980469999619588336957627710078355324254209659568850438361752940739135492726554885485423449671029356743968955025242846433917259469864867795181904420504683217167632583099000273040404424270271674444782532105346191439822303615748897893939697497845413894269430729959426415984819583154598666535334039195837907989506381052460430976684083164186549407926053585960268789497735095197597446457516144031685035821705599241664317918855298269791332738170189717076506185715385090841611411648943276511495877786775369209461424292769004894240045124876550321931466165237505165392642131633217145655512148952672497415354006498258471884639818424154033803707553987984187090033201847606473374153781065101021152757618124756158604078982437035972951962537830103667994507687668127923779346454271151798051973732418414588541313048698853331688833914264440794763895568981806255437588273885498523837627398914639933443339846112786225071666296248304231750072619438960505703656747527075321267653661430406701725254889739857944329367421564727672099411838478568832107071697276808718017214082973583898022724571869890334141542493057339620857459680581160389392076179044284292891164796945247083963028461915014187355104172039994543831862271666889221327992661559465262447841830501130543034788076567057581309223933219492510694476959031318564139674153396506911610820079300375476241196329225772541255512238500372115909952090179755128540267645059348817078659230198333653083109648707367407064918833491382353634267049553351071256852798741122665488795133517547047584129852365601695165014839506005167681938872867411468068901902043327067707842943005063319709972768225982286066767309228789204580931126279682098134651030201969763524489145267415455761838453218044315657848433082365406556643216716669850151339159772863526863072748436174729862546193831996266566912428227542393477033863285637184082365356623391612041705565096376853739981867090144623944063014708750342861963124790696692515883415983459681169215105414302142112869629815269094259049478650326623441882731485806079575156158791246458966838854562365764813470443790835305272195836682534506183340675513607560751852101940095807447849463742941486693087309796757467785023921665868284498397675360569413347987635589833995876544847701751906993797007143948382424017693047811687989485482657436595747215815080407989161965688156885372642137522336261156183666703801552146632929604975649534413656522296697569730703978317200680224469753386597662759522736175026173132187442639335688397796589915379050543701575348083111738557088133821372612596044930026797999492009959402523765250389192945472030248585910353226820539807176227628697657760739376747462539224234499358846137994102198618195083463803980255035741855130382804004664729575892509782380447038451517376982682449931026309072503239871639053094284083825610540206262688564684429488930974540622438557592274391649758748640366469051842839740292116164943248745535912382673634864927742280210565740220583846510244311458158911930173306389803842653084501111484644733303353173851353908516554915422930698603935275802117876321574445367906994277955175440956350546153064938167191394300289864625780592578609612862869729521682921444329349955730406433957820650105077682050983536814015024518606996147506913787609507870681881638447957651479719355007229354646346888526513163793481497475909905069919717073116952672007182144350344830225678980807521077430558582111249504312853368313520178897638080827162063209104150183847598995227009592061897250550156510427540625882976390555461743862010750000600786843839454602797043276699956642323317480594063062552592146391859149446419631974584258460276790919949763646834427142034795986648198629414791698888389348703314452067091732534993546470888116776097664619024279739246450033434273587697015335089774537753546396812601745272022596642849866494466438505815705933301477862267835756951227912773583887101050173288278882266813065437168174802571431144872380431870594827206053068004595781419397380883991524383144025339626549189152413854150719206658158032823741888222436178356192722819118128493437584591304919562714772083674606797265688387015271990268441512466717054370055575624535077773751300730738955242828438825772669857914818626549515107271407827975821945288069913033592745386949613298449362290964089115941802815525699692978498083901893637555660754862105835741507424432643429919748985632205415179108081135668175955285140255162441123318022671935747126740538073731041421287938147950259115888560573733338086090108001539463465352984932258087650288208746785526974135757847230358938544616527002168382764954485040563173657846141821456643752969647600326461861698505913923278071520353830869423364834288713674863747604656761505028187865259684056338481382586130528142349403817866676246581973049288795973223539962284748023535953138940854892073112747378691613274378562627218062949769586922884932582667315172401074201661797958397766285927607867919277138105186420946881384345992898450463374111842530636009473293473857752968325029166151784480981307990650953532931531866114142845528467758267973115836042479516102990609804836608278211251061896936870688189482955768007685263514071369192573209145650773926305309793013214235928899997553117590676445129616231997567998217608265537506311674621841337414492217059008834221385637447192174359961145144518640325182165028769109823005292426926487657910123914638469171043583774939592716308624906435583754742229099431682635120831673555278637986567304749735144795837907106458051158761678788486707258325058698032117786065852809146612777226984661147934756865097741363270066244960926447736303850041884548296481654331518810784729558109683124518638350808586880689699378560697693819795356663479218556189656613540750398522049382474681355544603171429980480127739419766112714381084134703719996057213271303201457523226091325412709271135312540666816866300943080711915438969082203408765443763228556385975993222675395288749022700275188533043469817971451996326941041687336799766244019731858434278298925874606179410100312941162411041757718344353276537914919674073008061216554941816420659127389397967488462916463065358822047094093057709516757688380184860143384891721599612363258314805677895859914948197244500947701939429333867573558052209664107981370787314961181395612332194348814004092913563925043671908284236876822114863199962356217143262267966563349103865663470542269824366144131399435958054522969163300888055435953386463665955636888938400417139068257792083033365948632846888512867974425546474971779060219956743199482208516793065949628183131842170456489737929882441078006184920211738355802195475921492209766029691308727301914615789360328556837725627978191116890331858938445014448796323510291839350862393169426073253528406704176906256949566626705880393989921947869424540115376618141342905780059529693043627158808043218060188724090720995500226489420499846089300142077220077811574230023601951775813773089298188605395356206904240664911869983128308297011240794901092103833550451874428410958934520460442060459947966608093247372146858695234833274927581913773556042258615860695455360859252433305310446687236352060239693549363104389332650508306984140487164363577069331808855923898041935519367876988126981803503799581700479553341558176026799690349600059601425719351806317539146863346304327222367852030913020857225850534025285769040693966063533999192540281564374173181569920812540780598233586831837520115456831650955807112782089140608057953100574480083796725267180925811836306936370123807273951493844250554810292115452057141179891683402495801188947604827555035750230336056471967171929391676522323274141382456188972610417666576470781348768534459261824145539946004743079925510031932796990205565007310531401794793873647624015284046360018899834034083806676581716043329385274924287124534237754292516434376489809776149117496349604310344982019588490000550547067907654359959781473477490611881818738257153785572373085134318555604274491331864027147063985742194526834663523667816212017022548601258331507871211053069106459751667553592646582224236006400147337187483726085194413252661622157157621928263224747026516704167998144338754185156335473485732547095467968354189632873507049597199366566336178170540216761529593250748255799949274310731770176047101114876301044753659008007527820132954158401510147118544025013778387882840447677372567760584000683291152718238782559660564359589850979763699513131008793925448302061509079618422082105939146354981533805895930747480634995759157392043157875205629506058746751645176680745781265623132061875808045725765019945396026900664771649860787122779064686546269013984528285449143643193945484400585426064103860471108539017708398872345736277203221936911348292458711304438330240692425322924146696544320758946796999174725585987019794745103603174362246149558281616401314418112669559062451346587569185974789933458268647899447737673627609757430189977966125372486833667531820640439685822153367082699649692067730254402043541456981470194783233932096527311681337686751955559864783338935520893320708118623263507213726323122201741099034799414431765853970353878010531714895406412104577609718315820082736819324900066494296993385489893330445347770733072761403118123710354501416701093519016887183155424633078496969219359802940434501516330431691398300990576333462548281082650134344531794165999586691722671675551524668130511011452461483211936280960543402814984784250354859534974707563039387866401730195727780943952294182550893436927181323238586572086296743544630437590404329390284475968716106395634610857209366877554313738994793142493297462695511969875235807619378991719856364714890796298432196355752024717244457721045126128909227029496161062073061164401794515173961536107639820861645392730432053661308028120852861139821832932362355633628426194332886444020673837081002351478373769876447476592224929629840691638255355886672655975389332780905634151403810202508179324083151980764136165176989763490667008619994261217922859868779468752300501272513044266863563065873586676033753005636880249732380795824281681347881726736878661990113272533503638340544475125280769612605910895002324031965448535601481057576597055371724904265375090934041670675040606193725356301440298075056025519832990914734659633005332287783525121474618779666201290867849614522851002864463741432816377782376727265686194348386497383197000054989666992574541822846673054924419666282442095642779769937313550554364758310946460701309007431220308523506418331570597236492277364765328022036574575308927247312350838141977148950967308168334874487833120397063174553411134752821034907784978142754334386563970273180873916093664790207751283387608427486706267065006420144375356096870076441894292117797289103479632671271081034369839527325519944287273431053473771154287753018546319379438486547024195226868042506131133905186880647651830413322897028470839887037968252226066720668882258548761615889643320746326309771229558032077467949105512885580986483505586557488786427257917106143773216161516121627555111165755840950876468772229160713457013961210822114095167084287779208519069826690843964242101600447182629579028191378360558612344832569688309263367695980513146703935033543884800457079706520875165683822863438644663532873539007519403278852511835731337399343956529982275222043115231976550210476656958739257948160780934165294523860313933387055844665909786984701579688126231345615219303998122779253771488598916806663240250465570668738090566394788743124723727494355456067012846403214639387739037453619546578587951722620127767223706009362892068320332962727581504864100131618242076624404680374641162629517870668572274459692222287704786080991029888783730326605754013794826830842497329600158191419090758380859172956142139206158128086897148694382068189727669395693166185496093344874349860733737514175153499025786763245905387847617083246515824170718672721992507445210011029044145428187847895589140143032932587354547193413829503266318452723272624095696558318071126542305896019537808294986527437841250827813824720307314107578887267774160766661390503521178145101608969177321478197592238252897741821672589356775494895507226929998063729380275112683543552787937525402331592740969779895371397918815376075021117869752918280775671683807175603615315129076895266922576904194005527050709066602889585317497127506020515519054881954481023236294761443447026880518512256916205423892775386303520586055830066590992757870353847435597172228650588624780835754770269687958504341093086732430147066599707582887417079323516767792442540711018225969383037040687028868556552873334572657891978001820098527192076306444374827126398169559587768592358503269138313476614052003186018843001217838793969752285571716779506365671064932797753031529487901346483210534479901934032537769499249824224250872778343830808121660192155077739387097858029230100371901334019915297604804992565640827577393694024689444437423469308954626907248389234353299240260554983864621552524274142453150377541590853092268695956986995797556953041694667626106352960319712011895930797569484056950088326171729557768339187986972248807722997856877387558819602843681586451761511414287805471025497869145815441397496278895974009686678375850086505352146208591525805022217534974708744540259769612821734383180870143772755082737608069262021252799649390702003704939397326373823935864019781502764103847776432249878370082064940802194473483362822855201031950966442530631471770480595995764606185265074592870403740301953316851364717231900960935320063426166983056272229672836016246508217540746955696576983217705237703182984734043523010951375162894733978645546974300851486666529373473355556715615663324954199379366026464251514303039634342879841833305557021744673254295989292122649523102327987394452056527394382531083533688505099173547578944358685627060617359903973760435638300985998204255669205820267284868769032035614352436212385135269180064655832744806288819313088118570972172774407898887827589475053522171728491141795841147343021239300813466169032411905308304976149869275747571868503335739044182512809637198292370427569700510525885552469025495434094257046431178487319798353429049831742638089453910219563356927999635232149045650246023498984265068969926067611524511081377264015069207461429177965408094828021456275394935452143346862581784730847767506391596777018030549463492277859796835838086322142872988028866621344021197190576613833688567318710098741403995337384454834902467520161541762075086773650923717087329007669953309012374811177079512257542779551431409278983089159293112436182257017314449626232153749235935208608857579881887737293982135270581097641365492543359435481260576013056101637427613250585000593495941331719062184233151876019485744927251258534960896681332758564562070602269060786685083536179617808055319947239650793905484257128654124426087235848025850433545646613969922787194531409223448960065518502078464840265879620508302433583424729976736001036673931093667423963579500076711272326149880130928095456496360183896063409547606787442268630333559345525937133206211486494896079044027004709045840650764187538524331456549783278922236599834837661489771037805610754819637178309289990209133196674108466984038464959765475659774647712946918025356622866060849280916820692557437170274273158146648681991533030543233553790504914194365708212108145841182714391784881322551874763015726798481384392404898685697771690821843168706834665752672633890867228504480808240527379490013351913675838108490681493938438003427151956727533861464052749444782568287399166311954130356174596934077899290128999910408155063799715427028420544644237922998637865956225567677009015138800311830336741939612710188133148761988752584997924074878338043334034516943931978551200281550890771434873307423089917041872507263469823087350874462637033370462138664162441766460828900434331086099304675278741600075459852038423607810780439708941264930732917973381025612969473577800033131158269133119863464686317092262388901087601646985811977168556454939851837571833317588350451779387727337161525501009748070470525717643311617309394790350293465679683090414966136323590632676621811885021760709657772748904463606034057221996230525193370661851065857976688714842231276516833749286501784931296581002359435558170711149631488595479862540341089168187395570713402549617266832795943145350512323966137008144401627004260061960142182252545003975910750249485008144720895871985123815226843239918057397775950751085487223948503257738427069335442468802434449305386304523169750395087923196353677214627834236328471655855657455945587374508015542592397110140915099504296686895034325616606074303734747278631818776107213589593215245994450832916177555923462410550727661412689945800209921253859760287113204278878594736267618905749415284845461570605906165795991133952210874149597285364982952721743722839520063077939988888523045241322092511567820648215584392726991265185967470304486420632243184056302136328556239537418735404775492436000941053326994178283662810646844068620663742465740294022186706533958315749784195151768633034676724777948991545125116799025663737906519062099202604308080920718260218204073910094536133177654088104513682279050268339044640867099963710787417229896332052401681458221107015046889258222167939138652005444392457799560706779833711217127474643305355572386623483795998518667249495419024894235169477232823421232027942483537272035024073277291775872409167275859364016190028362275280369803184537946547346911712949974041485458977477172724297591496231266605754482826248152029406897961160201161832837578640324859179282301232533621119020229787072197561332802792808822698217855559696765514302336416159005313501212396945347575492676436511898632288724641971327844759903167845562501639070904692185954951143439667726014959349153781645744592974136063224530062320163650427630151934011676752916469343147820547229907383547999953600682059235776968333629377882740380776173173878434668321286455532764433301013072860960456795987209970994662985815485645943133163058737702745205467339808064462662633121198550621035654557233626563075483072417793760204525477784413327089292449630090321395931875094235387455214760333584966639328847359442364310553482446063114708154739765931433870193137974145586497986112993885452184916837057282188620180080134511934896001779748259801254679695304668234858410198885050857063456721291654544740686749167085232826504971207077577194723938027893289411755999900422758905308996626459343628181488011696164473998464796135728223535365932559958919933274749033618399320703451589157280666356155318133025513980013239372969105432820480353996594667192135515500638442207636998584727504527346829102185036011203268745559646650798583560479212512192535859842038089507015372096463043885787558685981648931031030903470263584585419212784259189797890649744745358456953717574702034131661241005374403307465453140237309853535282392872073344083099873909649388809136863268745439146244462220593169973579744181229420927347469969892821055739438881096083830964144607856242642031931432464488116067089843651004714439592647138844042407152851217995491459830660700752151022054892896691323581390067729918252044024797303404416860697331753542373385230580485174205649007977925678277972814977874963967720991800286922063873449655801130074373483672398424182925672636311576803412558575927580906894613041928087792631641486161706540586370360710532451544000769637824643363692766079387013776483094734790416554232442633008292629145177512164416887766441416714198891181985779982589838260273265682595319148913475951413213344333790352064670301447339717389810517220202917755255529445961364532497695259978337541001375165762749541535764600310253655336373032574660360592200109456392333613484515631830126777527306848604381674406596575521125201498973303766525911942379467394644140586156147465742730519729251594584389617170763809414031195050966584817190533570360118732580178139406524965007551158239292648598445175689671975259034825009141829266525816223793244812471089145931027593900435655476879473151075466332639451850660405631500793505050457373370766153001568098866162700511385431873872549098843005135221825763386130265020705904408513472264255203535611888552967581906336662915468203810453655145143555608866317985707815783339176329115397462602431553474265733415058090202793716306252577349952324117893281969058393730984542867260750305385904654838607892270374901156967842061379731256812227299450297686441612102657976988940180111735786303983232807930101003295981732218495276889251071691364637741287913104698268541554284755136002109081892252399749678439192260035443873466793836946380913915487841650482081349099272245165527380388411490339051882645911434596209148671465837332403440370196679930867633887778888541455486116138237436254003989033925486810576047490322169989789240671250501726120519926236912543618786310501700307642419701447893531489335120879738354753226757915244647842547833431997797650393670825075898342397880225806217009909287995882328460496520672572103476706389042130750359775747911156058323759356022133904322132987814380398933456520288066262263593694050676294834863969974364823304168085039458400505887395253360274992612685998864044987817352701665393670994853850429337800479914099852039080254741359247564012060798910547725141773814300273233490603096675534715901059267148620866085821591783469976802448401744025957114142636001493267335143886252638206481564098699385146993803792844934250768438133712010045853639205958083664683071882361759866140425474395296620534144660716145650609263182838666056619444876104126158873047511116920272063639991226601220377691607866347893308787630967806560679679047200394591398298862566112904419318208837379675413161814032966691244929884828660436507328086946075491908141715227208566654871698710313143843067599213438200750409048825384920251894418999890914876715280536109294150197200611503574718509307813888341221509312325858347829077330700414490699132225345778136718555751641399450364534822105917951917340713493181777698158763065176637543480076372324812789910394174601769411081581519560543482291228666882546412560923874325817459514984666793346334096876504715592827433445888164051098305575439061914467754443866840938368529755954099885087005298568195629384269018391807585867529407230760411678536322286995371364493405696627092957926405062984395176490648133234822397138747317183900505675297754344005298600742694844798372248241995105192137220994981996488427485485449911938609080340198293350878715080829979599481683873536874050296923509307328218731022405031913743661200803923012832526747085353241980204778380285915244028902616571991195896700419539698582386568020036273641165453169957457136836407269883918717117840153912420143052484345091808266881610489300738711103680091736878770581492028835636691938432506196119294551651197411470589794173396414944705073069122380188105805072834128566736848280096535199889362108505147564587163358844387710426650318823233902560322534278892371883399708117959798790431932571561175155165877293174435217186852264300453875067158013404149756435429782934353346524290047487693247018301152581907558637992467408077497028207464244535263227983447752092976993007159586854543725169190659039389132604811324250921962017851893151323873945741242525390810226337105087400443695373111805075691754261085061298403587987536983851642097536268457081568248936630641700876041863741632005162009711198119905620813258172605606602717363751206754800510997980888010877880733770331544209323248915524840431902141974984148722999430485638036046183154626584088457830493679190228281948520618062979216747366624114569953750526112387738556718118696657343976491396108110215994575259944845298009848009788140134564496976099778788747606723165972348831298830353359411279638517166781430753541883225798279234457362350099108639544954695009765701018705474866482320725081910549846030850311281796918747411837838514783283157886285013564995026789304119463406799049734272377403224320544436238830790469316486137054593956945079031637913667402051402802867886984712041082188283173086674692538673103981421429421424106639430216589489016949777746709255921089289899968303924849192788960519241415914901614631586273393841555861481724623687656466530349565100754612288429817365404892569806646903683933426146469478900194510857111481023964295382177306042968394171150120976637845710160234436809985518105623654632226375613945013451894962436235782273650395541046527585625103846308412589987542519576959027194997114921197676208313908998931892198251293343310331008003288998306339584902952202804644741225734911392205259463566005875330856128973362493216751098200203530543733187891714396073981414204544393799858816080562069736029153069378227050288349145587973738888812232217249502345901961688295744670723948308830471564966448040221570907222639284661710171037975165967328403575959443713688575123204415286462702535943598773389312404484886272951311001165204471331376304976002446188617959504967899169730630491855400048190856298618416943219478012235375209036846822091221859632792524187569729348402800110525138591351077503211273467275023425580189333268715739852033732876139311328647737168827247520901458283154506635568472481273913655566746546199548043811053814622744155845744215384126662846322769581641362209845569499042219271085447162708621129902519183268202115570275394925816835758480240945956534577511116521424517765517390935711796280054462427032700567716062697206020157068050143009518189705647056665915107595002661303661412919718173921883687791640322017638614378620521973941239366908920146382320771002191840045855470369793930093834904385914166846285500856820660984827836586119589098293265882711490215454607652768118062242413296877429081701889594866943276007082571579766593363051469439577444094125113365303717221485121176229354881289688411854260091662457746478237899384353335305359668482097899034512033546963308809540907707136529700359005756542628221988373319926360226033629778340846589330845790745950284569517115297330685984576163513675839502398918979590022871186801354207185358916373528234982342081531220314023680799536928886678021813864671053524271699531789746342960224760671198724846825223790040728025432574640691603023604063338844844091909527112729045777304202858156325086908391616891861456343272519675667765773748193014846456386734260854087201525747900425210429066938741631008252734618059503755837719725715263605391059594961911622724791154496396116402308281794726999128559132583264299155238341470400470229072543766947120393525489270205031763630661227105390788369975895823085268258946401693545308637375644386137080078844150158651934605701613682985259952736738579072360298784062551430808841418989719385469542860721545197788325239807052180665496231379747597221131349124850742185427537391599238238786435215829029963567487768329427885271751897518425839931615150906555127737519925935146559984181550156697507666499270016159643560075702154923463248778705326242040562944796378271251298746734278660334817843175739846554278732508139814452372891925851664160760738242661472584138107204564818126466534604407958876432768975447666224449793283298921388538316224590341703031084704985584995937101948081972066156162652526283752588251045356139814709541797920376464962721724439430206541298709040260676026142001377790763166662621123664335983330282413037757115342815588732673196095531006721105844472763273818657052566692464060221782279120492329846876490226187217219749434409393360281990890995580741230291924859361994527017222567563809615841339018285533184894391000016183614348792267060457356720482127835632310447849516002522750708148514451505954026152969798880057241736025781369489277894104034134550159165504626321030780121744074474597622304923029220234559306386592326728972624848026101280634162931905247878158291573092313256694547635585327435068788463001806255954853208172811157252731558236829131961496405773108579548564001019346394747827199646445141511146202112863161968899298344282628158432343206226036452533288422441426504483307964576712647803655132235258224823798133908049073613032803272196527017792565978019198160637489074423540116252436094698869219728483706469665783868578773602646749432566693600808395528402125864368454412312753967694254584672197285871956782854543382131885467089544375746898879778639845718678456011596839749246539284809069010229596021563381460384831170494517366647109327185183407717817347691192189707829161093020060419254185571902817411829519926897723377917247437693639780132925445612231522852863711579488887523666115772042848961875720888443395285906979516671159872420297032248722736487591551653989993580581880994924272735814316559205142161364672642835057640654590648078617154372365717384148349810845939744849745036142504297682801286494009402534998761400241896398225783792034539276775354532948764821313303324724895387049370082916330085882801421434323724164423573402930617705468116711171060352238029248805116519993541654987498766627011707210405441025568644369657255260854899442511820611828447061574711542781726129006854858278970690283880953225944918674655864949270054741702895318539751061557788861682867115040059251276726426310923653914973085467929230103490239079067216243416680753165590568280249992633224313145967686095388636068722587530882010217811912767596602890057530446018071240806259293899997491198161062529069600591716424529884332842335922417847750530188619090632041569350797937397355963893923283928723846774607220353942620749351252469102464154160373700485592470630602602902897354508741012644986709721164030173284388524197693680779954847109163414221174363509469533084116666699809051975078456212535517509552319018063633257661442941551372406682646667862046994031346695314184012625811885393673596815886832146983287704042995696968245319698363143788506782449295231852625415704961403815862940443335100112089417566052870048955105043004549286154031311321048663834443283897458891251611581050594146135792971940012569657120564689303714985258724354719448638364610711265412403257248473467007547734274097260369430575723658226711688866343047959380227349550179759860220974938512600748225058112775300221571793611906118977559104732988759655293294700090569237325030774916412798098852310294105898020995103172029529320184529128036826746855407206282547629868673479445017544274746765228937913254213703422632427350698200237632731010387243001178797867904281717432671528718828660450064831806176068839548072524552890245381133200979221081868298766475166221877703602955078822834473120078867301386096621070039614600856896236761472579282922624149106653168545357491056959539934908583634535786294628186670974102110515894192755696939214511320812223913625920455829019415722899387344096909545238799711773094125774570817227776490614105764768122057337997085087582349985875241614729933942365033930992493948371508628455886723506386581982137482568517111207919411792359252275050077215453590017820871999551708458549557327383258200213723227880787217344653787464462040374952309157976229991842232133439534981263473507001368794311204521984532906928521774498947692396787593420455026451453701516395684469107471972264563968407074136494400024482076475158953286535310727374179168391271020205300291546359666815969576798824738849554175298964309168489110661291887387467581651005921776541711092207146638798819599557492861348212843562610094338924737031323893561087830796828869268525723388366862512542519709070311220073248824910920124339409263438578548004961652927376347561755925098713303014055258370352405479491318979744908639703981614102703411326595994681639448662572980602611975743782834379270618258826137110342242738488108603644002284292719905315320670870467727799089475952574665623413355994236464239132560852189389644563381401875889736934101565703190424420477009895937393691040255252945868628230993680765992420652281786269888489816249107571583200104721635620643349251671226930090334159031592521838059546570562324740425620365514992973653549402670389777097548957286312455815196119803860131339523222096242028799224639013626279435016923764086038261009297410844448558283305860056723881672600005507613186509918450246671312267966310846516159752810215732872574533050537507228613317638798348432585667716196350054945532076564971259393008543153171106738595807866139901125708421442021622447375465050830824566846865434579887682160607232028347789133864053909436665961644022985250428324646579129922687278944644061468821750883071030400063185119757516586497678467916484386870602639740289537600139708651120715028328889013529064769523164128557995979237672306892633352024824660574185065936786779156222476840410303092809343465708634638328767650196684604245632598913127608635148864086351286387261102183187709874853058855803059311102640638501571079799766058834750316675572517098426487581336820713257463818037319399958321456459053614220747821047119267831693810127894655760186990526495161821531474432404615450831422379415787632892913551508512664258305572094550260178195021832818254628558679708049200999389640313500159898567004032136092512470600832065235457622715461618172749847014643996916323376920180144457717086811803312257633380338133372024327255064896878138279579467014404652772694622046398190329201311124561108486369593838010944131747845842520928235827557249870708091628216898372630571703349688604901637139619626093913308869171545006647909027705668053704278276162647432239700708748929091908735729877830372269021296630319346419014549931841421222507216905945489195515686851448841408802606865588610733270861430692567889780225633808096392438801224601727897253514001119385751445275048093421049082559737404506832388278482980875926825543175496108264170753324921761305148118288938583471707543971862042117408125607280251242106674406599900164802794436532812638442209253248549687433880258360332629986097863889771609611216328624821799637844916818965308320276854298452763699138021978928231073820608896732158911208217023292262192909756335826325886939238495800585546874967909947278214881775736047784073310214165358714356288873032197705594951322898086627270780087691422949452574647909737601376678119941372119267684165944433456114627814946776636984865738851778083669414805764661021742851175546384005212460612060198426961881349479998610253363065407779243078921910274062465471767753746710961721961498185524998604132057570525170141394791327450394267589857679224699640628300614650001824830919200233286313351659220760208183825426506181036182036077878708003105451884513153186656587024932609370133931529406653708051395490085758664339023591853406327482947027985987018570540869074676915406918200926535046051747954174151745456997206004856451663390230631570910680155078460614293367654048217284120307743354143094304863507539490713876694699860998128448347338747500925334212401441783760627696118932776486355007504144540538417182268640464661281148622937045971164799149683900677797336610753214172244107985081463558489830944332320664531253320384588027893790685161769605790179298157898265813669096007055120921529394192605447562425407116114913157590524253917886362541047721582763152295129075637538133139544035305905789208871621658923320153761098577190729912074420401856068033442698536545647969853957941703989734178683864219861755957647885670527500281062810668985665584075490667258994940248860755339770897010592277384111056656270941603054582954561585723824127450427735842171924454918844529442548390530386029868868749524414115923618350936703233423850049975741272770445075779818648996781491213428647989533623382411028089368963518509254115926566535332186721508720093701528565534353061102536997329306708871074366560233450757493863429192118949327686825437543838654126668635223124667994075077416496282307927115105195300093571144854773244429385069953187979554446211642582105889355047582174889488563796587910871986819617697730906940485399235443042946637713407680171097609100289783984638292441074988335736001167117579554978466721744406500507037285300834800287382177859544284923086998649454544319122399639655975104488499362096731164644559913201266394375379720780593038326541610015699938306717460379810343618863587074331984983302449674612404866270199226462957665295729869268551188832977154364150088059952371294448278457435839660101028699607948495639186113506596657747017946798678613662318982618229542282502256569646011027580042901408715676305869703678265137476111397697381827189385282184777520675066627419662755761426130826445183351689892005780021466836194953807357198807618845595040012275750948606516152394346464445617972227761365961756463471509240891274888017189921254001150350549403936187056032705752315658807483406983206273476138574578203530640083650005399280809236061860455961418484412423441931166851701577708823977701819373369223804456357347018763215762666090947728570356411706086736510412413474704327447065216527787360097602498836162615881259553298982459198442037373873268595827778982873425269991238766278157338374949863053151621088197272027791819474896905717772241436133694625750034702826520683044328004953282039252366005344750188006402829375174044141368138261010181347291845735730767920742880492663351667366915674812009450268343555630557309096523090906407968280781021379392279320966793945412251618689741006275784224704244768864502569785172781646407379785968132110686357831642969702779178239158158312258911777745736047122381350979102787484492238541201581557504050357909474413258199601468688149676974781869236119594399447303491038410745789455903002752834278760841245424187030374902055035000203153960349885296322384561763358142022869193936760667505226279495777539429373438765659719176723165196399979660326184420465337478519541284760854606664852358525401050463865615508600152630612032895495946343715296499315689977531638966385817314340192582682181851496253712993503025556907077783865667656538741675434727889377981775880380527935815364198567293460827506997327569909603614576879275081822229255418772023148561349569188716537263110741342765582108634164033102513378372396409967134737444393408251716568014257082880518036425512240574839778936443773178657005260523137157544454705225660737284247939645897335248645871158395116059251121923798092053965337549478098245765492260650888449078066694751363997256155791465371282783868661877927545506172455136416304612115045837903438112035881184895308910697699999135781614771257918223673108611943832612561413468736759061888207705110671576316420831896638627827063072740199756300326547517021765656229042527904469116426928054819428662468315582106489762543889542188521807397785267588115805752138195001785493641754341775413128574321591683759404697876872213989310284609090574458317789453189532300903873953106891496925322297049583061911139904099838395517833916658448847844611629021204065511954517275069478967372764253601839599544152190992768536363213149348878835762559653044097889835026825768133857084285416136857548093669711684941339249534144957157474818713289395239357898552835398933022485429519922583012384028873821470899021298599430558535991410764205642854195640497183124244702759292383378692694883785764776724004036990131501126350844123409419936748240139834589335423950076565012102284768656908825064029774240686492343470040013811383520225852747510141545318209834959835671598700531901069939185035525314648166796571197329884838153201268873253591775213838546981214569390088338714465300530482345119662486057707158837199826355492736931027941732496774512055855058872061880125376176106551645954337743246876633950999032743225909479064565583987931744251691973481051999704718869053517228856297887856245749451486833516625617636191455379258578589814888234237539258512201729638045750688956511309041766118448309508931014721922559489662695764266470771631528526578694008959708681626155153973532709319869556596695312737665384134823547359367367956656591001979941573361920593153515702788527358305665438142953491851729007965898077045476729569832576599009349981658202185357368114406464060336916851581669908441591191512301600273300926553245033396422410358057042590955453533322054229416549253781666336265297360854055397817909233326015927352501489961556762611015856654771516525005327837028226853312733909366030645196987570456543334106054495149633354343475922571186005739536297315331850433040640047051956148347183359947950638626881259963371336764884372976704786193525949453670140025208156155918501507901334757726404393497044015105286234183387360047960424737887574309371646137295505114005447408412967371068330366024676493030812664258407305773611526161329496437208946484859902348711632368709657567119468611037835157012978383922565385660582712083520167203032275649517483173443154828603027820634309912747255484306816086880203454289520219912947120124303533274770390632086032309446071100843595651683334072170383431991789618985798817776646466060413985195898540954618626111651342875526152019719847310156385439151938619566299763494949910249766477432711411220995127131401367427768636091331406510152298122596860333480388283969869898117057621348833433919715308395302081107417545393527600615410641262422598628537210965264185737581545529499911044719967357669037774805378130043267247326372613110485255192285427245864133824843953478052492089346888686845879005339077823760392855340907449874755585346426245231164893534434119318534217383806785074383812231593884382832759025439908902062593296096197104255921996153955676830447093818180621711145404161833509927380321761285282501821668788853698781493636935098269208904209909213700058940027344693896343419362004482193977936636075356916720280616842149839152992127034832779700566867961061193663382346418281599937259716936190596847755625368621247485139273371491821732550752368361111534010738620264706064740376186827971061065511576630166849799586065962267558389202720023876431230637502091323418423682971815418313943485928649095140266085475393214697994530632514212154050132419355953182679056629279053425353076022418121210665223694126937765878432413347247012601732071268804801942333802692150669945222358298863662557585474353228444303099797380713067469781743845203341323463354388901976854636285222660343071060410264971109968877452949307670023825098578897522317946150134222437056326092411503616174279409365524912084999950853999174701606917890866911773000979119027148826780742227014089588932431316396946990190808871821229787007789068296705584939604732572717495388644806341697824493263835824799519303816791276900431475453347790683026980714895799231782648983204210635621627121237672365560655305412100464868593778212113097585975993408125066372877055854501257807914811346082791932875911972249864243539935309821875056963645929811071385922863223594042779039016233144427985521412985737950073784967745583215979095026019458169907439255021588448133563397257059862691063311339454776008426193184629826573194623126962733639267380410119366818265260263685128598104543979659568828701579531267174188928267447422508681031285721403533204020866025864159901920551560866222148260568569365204426727062629460332326341166353838630197719724931440589937037422820942217016292538745166499234281167848518907348441145139930450830115491513063483474664545741057752235168752835535388502295516763007390469281422234434275193175301580268259202040028089038351325448171423857727317614500587469878893284772980919539569582214295851849399160784410160471259859761715381250722725257439534531169724457853604807297629290250981820524310773386546541102226926523853004376546563179871350687839425841137313966894775831022727952975814353119774736503567981291463160341353404766050091178426472319197282898364357252969762324796702690435534085805074912124434638403165930874403402120941465731281462355123760616982858471043270889991002283859637948889848193897130284188232703051243981337322069126653581857258928395327347769601520587621202123237967235511135574227661035414256517978929557786531569653408260143776813963934698657533758955884533247897911097685869422635395198489086351385535392340625158070383057343345806974316163551376540892321353186322510755718307324771616971626675895985199292524049731562452795137100948465502797600623353263225418872798457945484984718345665938314954631625104963480759922916080054747365277926616821026899910602962209031272290336034799795081095431668637327533626896384605665050535196243998865553759272238057287637845899865253150177638884948607014312038679640019776861207998865984805095138048900724121689370068926257163588066273009305968188056917728780209652681120084713121238256005632985701933283354565077009821991775990310005095070864722700430411382229075495812849388440935835394559711135519025601198289831734648259379689005662238568549618325206643732701192212686098769984355895777283388403357870534553264419235769708158928307082240984252879875934170259664918993225587345702271401737597166788571545437397074876341999290027692690728221346875156527029510920530450916028437636169575236477858762020090742671125431374125076787219158808454003481252849219526120657832105449013306700425779138182542870294003308407648192402619923702474602268304803548229246833514412065418856187571487939309948871952405635247112950341042689887097740875290965204115824703702404878736728978372025269300059908581676740051550270831255668591386228715765219010019659550239270902081452324095767617336273642922178080271799220952723893712862313753653580664572924517533923109532341249201791903321138941623297430987531784792069449241304281558389323136185935721518941791749938963107417608337497669389887665753244400067291708191947004175634472992405917714173634787397917120314241575590833550247246574205786273324918485319041301533389865388981304066662108474031517304975843349061339630588030126869675395125830444347325509612609224676346070729786873915400179043887912981499354170852411280850233936189716915862172080513384919744748649207523017753755195738464925742738954743432402272994671747225683230651971983460002434296510283392688120173825262913924970169038385084313673951141974444055065504646665566496028939081940930827346146231400311736591828806405181294397189065902920591758226855259845854078104263879511277679426074123527225626183538789082503765649010460245688946791220424899986034514411279322428563502556463368792941390028541196860981640870052021567787931200231785818330595613128038309273272579858350512813846511498113569313054675124260056765343643681989044725909307354536203450868777207092350882129893255143107636594411503366665494557766623350438853224114771271004112979608247304648424065549988699222576974020209818038075042262631333721180388748580095869368858557209392017170808020220646911470505474184701089388623519185846632162508804603570479265652851290871596729345819217246295416114134356159877260845509451841653347927321530304502363275194396749451871449318147710039365833472375414095399077849546070361839883572498790487755115989952953067557396305595881372049156704947059644973397212941978886877472210197456206864756519919500042582041072164863921394925091983982683035065108220543768424001955694253541060627440500493938563299164888611034607257684125985794666439430065929049251169476493573974925880596376298576868419128092016631760306649197669443211791314441806430424753871736974911438302450795662176048742122107771610323741955537662269497061702884968469351015022679869895688443917782403191180805042494874277989102413741927705101171019265953639275544058479568606030267435353862176936765597150535862886804169500556558740435829360293355609039842557976454429984372993958804395050680618444543428652762692728623626932198935620472849745570773517440099038860757066942262586202685171497270651056849044651839943952182942254377010957912130723653565769756737044070197197946643540239203923852959726271932442336353469114868448837100172965256452313557447404882890103940845944734526093667427084891818416011207252095772908954125674836248949244590752541757492135891655743717558163882654907616442090654248522686316009857218123152969424492443673448802603425060453598961522841710573348061327624831066075477570331249031423981757724225092338125390895463459082535819195010699072150007087686323302834551994071553812129468686136036035964812825743222297380507778491303945834087542460590783307328937490649605904201735675326199840199057953937222615672841173510379973559806439124368040441331141155389301742056320455791589367501915814605911574663203591410425487627850881260594235354925548480394951954135953744552372765122081377621706901617332271634955753812068799467296696727154810742455600701526323173176716240975908663616470482129351685291903547495404008326046786570961090238686771409390387296446356632114195363777911461333589557594210819183639559898562859693793963444809239862490215227597612928541952687741955675636879152404340668963679598970052175545534444242439206535120518135564751621215915736272599138797404303853629409361304627694746306737611162248190532042638474763203809507800299211728924482865038029754440038115742327893731482224685820985260140358983633353823052400641582845233518674683886693689553180944669045083484618327101713548682893004145293221077853554246189674002176649872475790378847554474290667514107908693764919454831966010711284278751970868628031241816712197949102578350236195341287539904393732361603154040626093890359456117988568667250111654787275233732785259666711537231312021024318579906213022339790908580548468151405266138596238098918065132646627663992621404455569379550056871691559889397619780485590142707909061788306454468577698114242676971570913619710712697796875231604336539925599716324147870224654038229080168339002307237190647131128589335779933621747665860350866327427583874954588635331246121845670337061273664937918361218619150650273585108880219436465399009926036785747995878884875489408530779173751509377419830813997108580437627054548977260887412610475231742883416663228392270355118023075632142922730076892303415534959050961783873070237047435037110576852656229694531417904003761549226967892947377996527204979362142023583690807163960948121550961954274783190422679906418250814420940127735055452394153843391587742312851550610970563846195001021075587942014084855721792593783948935632598745880902038953696683415142062609350976697778782355341622946926702385192023091737411825904987289438651951171362040959682826924485835696309332825991592749977251792357111147011148302699921305961350602828048491792713280962253714446497894356421698962666355529392248228442070423189581929398130876633224719725625079111512554168548691841754039818822702283518249344624465694404050690090399311211993719493442323604475153475378028447437107415558953278163041551759516148159466051559005285301011619897279490672340844487517149321572929365854619953326622731635319921133364361906847045801310857025895886279530019891798282764517289470289337240013606720063174393382430079043081589155821067769117623875926271195034004962188841189812585268437752684937286488784836028635015757175845527113684728477080893694192621325572020430984514033144441109540862556595358037307620296217562641452596117832306091917373899598820075581969969375760640369754699802085905185678244053919774154849690471055674107228674791187277690711864810926958941181741462401158325965218226754123903292499779123045961311532831314895586170359437890958909587325923782183471656065984889334294940079680207287201019757385846500976761299416683518505185869636290511776895548320331342561370954477479319511989008405260970791438312676928738011270546578856237843926340864498304021201018223283952474671286373445409257084693026468659080262651710991752167869285437476199649124444906884505842702680656011689036187431054324016975964632385771103417640989294902642349010021821601311850828670434450525493066476417954009753715247952414484215044912386815538555911929121457664390206262792808436370315736424873795977339267711641191963944646964575367556829875774771608615752147243111730883447960339151649775805268680417215641210882186695324526159116430250455861385991897462966142239816294917687768880776758388572772358823013728660801704034515312902709675627728265196479200452216951942343059035137202795600786944401062963536671283463712511106299447191108472576577944407566951374766842660687910757561427861586358357171603191796551398171966001317358578009397784466469650899878372964130272578722228767161074771114055217879612797035273524324235643102752247645996189590518186207850612842469715208438218241497182166302493805373289498931860713498654620608374165521890680952914284710024220931392396929746229946711108582126980048520361564542293777216509436980129463246185510864397115635355238544058912083709140109931228366331785591786387967785913480729318878293462094878214842453014410059650641679882997064976015727728085281323192159758475712320452650941644547510972430303309513508951534100033777987617559387843540955703391395833165822887058085894996010946406612428174958492844685309696532540837523169417328062420399424105709469784839754597947926762709095495233342949332337849225607499575469136575558707686020585635143778749782525744302270387213632472988490763114990525636428951999849160605470602852940819251249314380722284320004616572581167850886202072619000386100820893439089573222886021212265607274620487934591411730309496671590025122201560067830194890031388192280310627706931807641567708781059774410275069672338037398202067723443322471305233508979418018759274939452094154122651083739229361949521285327255551382451111626538684332264098553181988812945726811667042889184703644085901238469726688698952898374200961085098950845807318938747769152890807011320446279643621341827130551145224924609031866516966904432964945457329330698218000788529650527375505196998165169613337714012386076264706446305619850381081267572710807261739839166668038858762548162088052087015071304305268913710195222236690119407420636709083186467302402561747405671633781108935866129572454593256509812416561828406591787610390356889753834288374482570790716092032148689168471219983785893321695889549039279584204202834231303684160358774464999718152431727571760553524894402184601799180298205457174561247254595187713626245000760542905809093083159331501592396696196202585963454432321304438186616222307114448897119117076338595871907135889069275284009181744553055953439844702647618348847293371158740372579979805367093615659895445884539867000664000967743594139028924051244933581694699666333982085792835277853843323070421647053400343667083498698791892612533316232879617068317370359578036362716880819137829779086728762420073706145654409149930124071626477423773950102372473092428727840113070418991124395497664451874409940257468174484643286842151978851699932280912649082227774541489477303300934084178411782242530267798158410717620928785349376530578213142378673163842814628321089937194767039460528646351667329288925606449825911255471154245633211318576302647397440754555638950155743487437586812431803182042352995743249667870582647514851052134593097073972709802806432177491471091500589817228285936442859995706531335368792899138310176239329719416533727776234029020275529358472171935140849896627871151672864353375693580191659874057578356423959830388386428488957494179074786548434089197319750281787731391808472932953138459165762000820155831812141685765185734853895609905757159701255956019640433551135330695193193076846534721994145268057617705860285066949857022456065093711147608872448385877042483170954583684528564888212191377275951014730713174841826812642768801424882935767909292805429912673452945105218076718635377201000109812109727578684979350087168641861542299371368665639142371238266908538709446718538269939245230152530916492724239724323947878082447497548502259858182059221707243801727880819437673059709320518456500713289608646814250282757004396487274406511056051715050925743037258036723263885221416841765034236461931506421821873233172581982627316142559048554168261358763889031805351368308579348913824758916377460813996586814883412156345016290476458777264900732239192909924739668784424318964475004817252829752731957551920887357130062505183798886605333858519048186942962422273880693383155565677629013439407862153304026720033711508432015921086701502148288254284473310319978983505311713662900084810111254097237053426023871400429211156934168377982805647985988612846926072629656052964358197099956637789792256483002157436866816238124637432341862825514724055541267132773717178917416978383072637065376224759386111315132969400976747747494842689673119796595360618320499535323437347545125783852755218949009449086224131136062580892080270521852063093417154395775557179761276364915651505996376861734316676594753539041343584130964385576804042252559810585359150152649908866753099120877672968922134564933630503471224847642823525433056855226971364082039298876772009891501641252555489589936962299051684235934515651590469602473908495375331366324026937931759884313171259294928612555572474806413837256206866806879649101158691816910028066340958017941613826961370087521190174781796875114290683935303565874336661664250545904887575265328082428492893413685667041838304470470233757498223153633276696895892805662432356067563017459716843423601612160805866446323939033564273236873051033219237771190622997196199527997525783114867890501704302362165473842623280604828772565657810186092801975325474698957567056438374437343669159100288614851291777599055178250351210548591036330575217475489479958389883253179249887821546906180167562144602136358172086773425963117032636223053241867325895976317071002109728478567091186682930314473744666692472779855954494538016939289557513643130476176454375237568355668323744244172237591008859513794512000180125755271561772708612407678236986559935830674519435275559766381708178225380906398092420741481603811632259857074462517492401231852632899908668503723119261929598308329765308248094273744303879254145394754489410281037081005339773939936996541897982534328364210850970424206107828375866040550792033865305796271029811190183203521882043600159481257379798841459686473210885928745290982059365664814019275658273908900439414881438197985223334567013863757644031031339916821456788073528783212840294753853648462628214951832332679338183595092013881203887710816554836474741771434144170028842409086464663675656321320547687844058204017913487879955364976426889156102282373947261111356669822217554992637304662639064844068402107743939539710402161588981935843320103844158416074664884120804594692110725220540843528399688942852221418120470882917998700611239247476006970558492014404908163897332811342679354561625166530899687518676965911829388408193264849369736940827977706733957494304304428318050552098729765615777628298531298630126795735583490615900786144306197852388515595052096554878816813978606849992384068211400988959555383830594122660222131756877052536125035680123502551453128184730902913654060867562152412592959644935386918890300149875200248729299338157067036328651866132879308180199792495709705866216930588981058395432401640171946262207036405226499583177786125692607986917703854100088221357193340301695067317610166033599322080425085928628796153496899403949290578323127644667207263301174986890055516747339941376961111453004201504129241452434909502803264930240784627689825967103137555595962711996178454909242305764752485973086996018963636570134489381857885542747210896235927592472888959730741701934093407078372214482988858565156661864936565694711598352955571190585090321975320880515089914927452914434219313538832421352196553754798145265239095181582642710227866428650916848674534057299345273619541436571594240630371031267159483046009096246311011317904291296004586309158545074495394760795060122532702559516956447471466241773452013328508635920407986461557881842590023098422898252648601354281773317581258909943176930176815068038635969937439424194185008530398147754793244048553259729182836060847228611982961997414232912039598090264073675684222985745932547174687067946112538260146406864879104144644190332816316358532798551559870143194910036279645278114233396575716915916633641694013506952990759595934871777802430446164878366800220239980161455533400192604993335237024073532174577493179841069832936098927765851512060179054841886438814677793795239618272556880174382240791143615078368791825458812682116662519590663233513973734621345253160992385021440115989422558693221787152931173836885034983581712927459692096135700967984264885640162946219998198245379712951437054504945153169395533097911622164942362480892355156279573783568185787083663478446025272560483108703458585378866318067210598535044932403905800309198686423088364472762100832345859181704329341154318999881872765067692563606537204037226713180763377490372377072109424288832179048399138253829377340099096662873373916674882755050599301138307242731031088514873209872012220240509297871949950399270350802133395839298339414983859829308597253474694841001748754874709120621380818987741139723185032978169145296229122536271798669260911520753636416037973775685724258270780565176731584908421968574147070288727658741820507666185365722060269485955315405817091539985883339912300604942140045217103955414594982203574395875467027554936409238898110172858728598679822933906556258665996808387519709680968702148132349798360150623020019025233045033776812151925174528790799542110525071944515021977330510445238770778710095720479798880276587199683017365254186549776349314213341474477976410410844240130773757848629561667847742145242102015360501207505675725673177987610825507730440668029853748588093531153476446820138769524866193805302940891771184452785295795690690104124513428871129025502154017130782364829168908683178528572014912504026185240797024333140347001471818288102800387726805960065074887182727627556941323249004555326092788210547318596370435231274920912848742269464776857105657754583206412189079025129280354102511808084153247687330404205604488507105581468192634963978725186432056399189273261057183001086762072727197037188666223513425603160152045016650700134037107504928755929337682773271148867338092231254373365837758431532351637024790179873741677564469262246605038242607872271946736752106558239631433637968205218865816192215607353966883539254540135053446605590988437403235421486653103117519664030993358532490644539477368998627127133430080871932813448884972683888202432623189713843659964104161259160043325338117825237653937268188412572444043366624271068008602991966709962767795478377276430339600079611523922570999815905901769926634532801823195320353396561606559967111064821702994480729263317107986074632471619721015388170294118380795515409585860214640898297993897660092768179133737822618309986214249629788910508786445722452419377383436763282296982034748629769146342736959169708672753844698242090704495853463833641453432537159013765083556307066243292100462807213152947948577699181957199291406966435092533303252371618529040747349136447443186578016074351092826150415494847140592496675272786854605733516225501366633450760648714251203875776562453921621745817051054010342613886391776858457743063785580586187306396790075176903135520934353572357540346882182290582791230136460938971431114579542210632335974406958150348281035335540407336907801202552923658738066515360407994452194940899118442905106028521006659942444370338437578918021342359098053524978346283274911631575163229804633014894140762477560044516345534672349555058343637476632451793137812887190099561494903687696371057198733178410378160716298106614039435061598159521381177250573498356406144909764090343514583677248835585623406564230298827760718192311264804586252895918176574657752917944647838366798597168130345140087469023345050831816320769368350285123460679059897278747706165835557789409496553006004973239604958087190759876514458857628904221573612861439293210377958011467171053885416791355448619609431477657943270023691940247501264901170302579543193526290453216622540163804218070015741632114696592946991831578738819201642085135637327458664622592810583693679233833226191600655220292999319765870138654399459787055403121453129884940843329583536327032256821223704643891226698687267761520632828622556415008447199407029791962926796027363647284346597411446687333334417822925509687919335570297810817009283951208778984422945763070090175485799762256746634204941165616523240027282580672287277387599125319968111268614960266703012864667309387177469463379652537186015612977485369078336700425850681318414346393234617835520924722756304053341145589150937263781073954961517781004531937099308396930523377425700097011896037732421035999995363939550545001050050537768608688218528555578021711149511221478270804021531715939558984543916075453466715810737414071975464490487366490472760364487660909834997128045084689889494587366907517318010506399493996992523248531663850979747305339433633060773006121459140649257503527061083930160047740333853458197779507792867706782358809536603852098782974859294495213293727691425490021418943811265060661807742007415216957014126416851332884794825125542953385513019669680059601356429898158629066374606387492014662059438304071890763862392162281569368455216397390243167087661876168382890023889599928102610337989846289448072931348143562655005070185657994937789201349560472200378569098807246175305837115637093686253911551297514578027650893752834637388593062562795228627920647787731071870034292208771911847154455711373034558684615779231168659586880510759563508787370615149634578795558842923093535822889949511795204813666190484067065335663923442967745588043604696315943381580819112720107884272019173824518704772037790958382728608635461739121491530651148866594690070017260483278238804235699212320298003006460282822948941006507981689430792453653036208857520628702041034946249048841621631446848086320080638975553213187976567793623712780458355597361024180212632032535109434102379797814348185960512220881231407288772420086746401807034911117178207523751464914424397441832047473849127550160811850980994831683808664788921612847651948911497516392969738671220450098385005747576180072897550368580684072239005470545399559840821125876827850534005422734582825910940703147197141320938174326301797537860191303410922237315651996285112974949781091652670693331348921703001147232151526650233834898582423000050249563006999007210165591671706279564123680037081602220260446214673439759860222027647145278238909455890047948880446739110989205208648326865517516136154931643581453114555158754589869952752062535890682404264966650250046007270773641771556513332714137670713021425251734424598508203796839919845218927062175755705961250352151816067185778307458573225973915819518292074073206307792085727416349848728072532356414787988303801178035806547150902579466014069289584134774436708223366343665715824645481719783329944955742132121870512276893478436928468975972072000805351853994875920467809891179687743612742654799706698440884093127669586653244340130548554837476781957736799506842283558875586674997959386939266163050414575257067520832484357209591670016024873258607752224325184524504937323412252623503211054490264811884951715318610496141441560117841189507171753212613762784603313733903960307272321418548418410914983362459973992343056611209959019085671133533783412365018384828061223391436706321246345852489477650882976652859585657985980728615331320226990102076638628832083863915689155827891805317654140584627032001873149609809304448939297562685096271918590321592249113005164600098502480874634980919963162604832549582143006826138453373827294645085525423132939777105981871699940975915605025057805544226977563019348321348372123369331419959219978521946133130483085635426860023993914991714856369211791650116700653369427024220957667881527278704628240482093316956162520393239274602189233580204181389028172289876373718200386296711276101360428091762821186447398082566043040793454455769885599979500653509522886379203078974470625385293617668430828334690302352273471392094356983440136961436584631150474517535443184074743941279593149704097702351645362074774807563991360352771059980669903549859481617729583180336627455768328120896424786875738870289504252873523031848105527185626439959816381312222381964536422558371781381136005142866347086873632635007960217339417150818777928039087156360090644281371612353581890897539645781845030897693605585848512672224958163117968667473075379063497354501797744680167016634992040728219161026989861893219649911406411732955705681118875191635951738387876669316286390434646880362378431113315398326192936899658992377387171597363098446623305652465355310880941968899577356510246844680151328090123843601275813267982248689837943800896656292846947554234867587734684451039975312223997937492321848676955919480554141552364468611629172346844854443919779658069555523533170202372292136656270034649754428138745773699186673115144152064835628565091684205851011786281354021476751787579109220727485996001865208203305414068042689764691784373587204856601345721260611125731944339128776328389980450067175162514607073312517232700234495552819540236794638472218425076511205880009688861403993217592993281717643036965201656234273259832800491138401754356560696746793635318532601916277916954890337908667839056282159180444584064838925294739015392148203780231063695121567116933126633988523049922491516297950245564243483606164305654882750174345802291341841814807250891945885510642348127576176913637955161510763089063994464513950687727070684100570433092457614898076140257654967923608024421195509630455588462917692992020732202899957482514680642652866725214220707749100668411313817086670230625220045621325730923625893850577398221776578576973872056912926137071341796989918205084562522045782822541200987949437270617730542242832450837930176145822042364827802434208230137136648859664301653698740969510741569471609033016843810882884620623456069939915906082209134849743280573825416616368309860976708600963071909063590206942347049956555348414221442533078657351683853004312408363703979081030463712224212886228009438755758321069731126518666195560627108457089365701913057443345465010564850411396311820948754956040388415385282039509083297554810418901045703777738466280428408654852775826403377241827391511300263399227127539717299852331979569310340787546449692259543164862601471948533371809947363801779181732889717672721321366184749588439278934385167506284374333157085943151071236510644435641800762066213408498077399712737144164995560487769868577018527209898184577989267790223615619443257187313181996248846948048239146221100288891282716878145348676156523323915984231814273457854006703258332111677449670010507626989201942180459308901724509132417729341283869999411579735464808645434867612940883857737514819523584316393851391753007560737458365313174128965597248985610966904317719421012897072061015918315061868668149599430845717128235232266435481871746760756906853748364181463911591744176809404969153124773205310119471312906007833929228307717846996002509802536734078775586213322424675712748664794306095744944360542753149177606873048796661082175963242833395366611362922030829081803839515645160443836340846888373489275295649240777710292198620373670993425755384358694214912948492990115472534396935992901475780999822458065106618893522681930248055212116134708212163344783190881096149794314151053187470941060319245019128563287967114688101486472249180766877968828406527250809640994930175700784228673922004106066327205099908524834452969297522480239575693444275714349618751280938516174311517876194026741734112726899137791494717332675547299714355890161079743088373033687058988469904760661808979342174725343664712690037863498787133256672493797962109801824932056683026009642625015060801595479732435727183692368823597497431849995814871802584376669701220425104640587850435341555782223136025988429754601251366822893926498011919054822758178746336824514007714902357737053967792768711933147956634105974900538218033049347530326890512742956450695030394799545161753486016445890109916341614439785204448880848041914011231984491718294334918169118520553134517673218937411437940810464432455088053652389879383961982964066986517282696893363961391064748695995606355305363139626764119461872741534857724397574225617207770152429703462191672206424709915014065776688947081961571456409328603710903844697452413744549688072941380850936867742209053796826691480835234943174102019251601022085304536920685768264383354445421342672188269725460476557721664764592237867854148812311416585779565131848734501913226664958973354140683637898996615181546130699828530626394590559906827024856525544578692356613374649068768850722101996310194030719199157611199356362282458143054605291120038534772751716293525149073481386085970783677960353895420991701513783085215876436543573795657026867849675052543762853404063781104353088615927342840126154267969883453587752313676369462774745113478523122335287790145198463661734585127271084354811023674432416048304648263273382875600251320863463592147899396580985818545202751638378692136911973803079002729642207946729438082172419695570586055767918541404626013850316877200758617974211064406958757256306477904914076837258207262761908510358387231956042644523227462953918654472802793152164393051470109591283782024023158545539214875449862540727884254683732772418899790239090454150904800312520842602949642339453425112272709619003088170747441983716912858756912069977810357521606370915727821111171485009869042363371311281578003384585816711487937863182718439645316283416391910938109146796942313320591401241682493633590452702020221964224032472659213995244563712339304821098861509591266707886281386330163699856204378040896624910505526277176950908452106595050213117444965563548953089550998472737727049602254772330696365763808026155726137166932382655156783383587892547156081428873512205015679992824332790945599820187378010687311050897302707137717600617176597026514458061897091632164933729222230265332083723059236504204938947218362494668732988185415763640620417006873666397158938640280224889295682891303415942177496249791062118433237024721379890939366957550074488406772973589256289503660929692157479123037456525968480469019234414492034528613770802260015166499961061280688858580954905402612880435150872454777488679673279882145428826662069979541611447690843308348755789867436660662720860087637607620361438291789835432101557930669075200363778506435308252640902859849798265426466724407443404382339260697295426597103244538668712905591694342632710049832073965206862773547570326352640261023018853479058345425932672463523305917852278883339809739974099835073776622550111696679706110114271792329952559497841339374670195520534547844256216283391424867416373409592788572490494882867716072623737064389773749877174619638346699032421823905726862297400474146735866763723697795422241000336422662960535658302664835416236195842540117398940343411040866714422467192906373805981145112234262606261323311588099938732966630756410092250515588117390903096956923495762932082967620929190999144593978755592549305155582377555223601618200185164975792026147293498670058574382403863224893607417989271480953281931894809298445253676979944930923035744232534358549788258775035777280254497192598869637912230494779354573751962389076190149198342839598011884808298361631174529173699654753729304860571764578432082608149223599608096077065547233894396771576582638182735276762280026059452295452178524302752382335554137952039345141212273152009618293475753483298366838393147622320707535273557700532451484667408551626232960314716291735926056439299021861412679228051875015219585474930819282224440932398115995402821045230198082727136523926028962659262283512957866826245815656978324241146055278320413697122060296920652835554818945883787063972586753622538651992860976298661040198630573796581147526726532754933236041657295437632101429459409252509609297556142229049241615497032454973608232134826895709807462860840057512743862060843211279830429482218223073415783979941533604615892336488342299984498247578198454566869013115295250615750579570079811919288059259439346530127717858594371414141080635744130807657150619357760089044031699311125476099665840155101566446526518204181153788291521842121029386505757064167596629552618145901994299415187957477511669173028633241527656178116758276147439463330058054670876915045963910980808445836401487482050995723417701943338312686064612960630529264512256706961640292180692379969798838276337221541970974376927519428279969328043188759944714200934204750178536703849876615534650014563961408161640431244800029483207836384654510421943764608767846070494905368315248705960442760111533242271319707115430872150536058629159896281522114218184645957235402148400701473952943223797468762458792163074112874988011322210423955693099681663783288173961928752930120691230050653609332302357728517102492009250365105770835217091711433102251080042370501154159474183282718572822834887283114162440622450695142862233280491653018267981849458898499169790348173688322483698479896037624836435292549041457403208281067566729307972686409420829635105176521869320935506166751271670716828243365651769830863832480190967471520745530150759297873887227290258264913307988101721397579479419714798785288919531796570073095518394794751677281217059077742732504215064269818985019655462268403543229483431632594756332315041563541000208828549323734494832179498245880846583910015828134699357132254141306100244276184700112491726949118861046791162297176404562029477479311772590291480244604431259545473205326893126829211920845475424835151162522691881594766416997722223650791905600359239329603854161490916987349930758730968344413135616575470474613318000159124753268643992831726130243881470162859235973723038893755248429126558695592959022891074766080807739560313117875442404770402345496584452794916339100823139601604724312548344184832158546038151387537195180199256124430156640254113775625358345683172187364905052778933585446856786693741411723240651622083796577975753050602258172313520106330988731465307825354232203026376164063296654633427673611143730283618527360532913661793876466966587322863636354873102081204578993313806606615230148416613855002256655226699978589255683189952641277688418327789245253614161754648825543315591545377738906047205863760824119089194440853616769938991102068464575641188007782426621595449183593594535690091709211889994944232650998871254859126517995758319877884480685981599306733216194261790563245676524521438616688107324188249131210613661991310237770494469017483173806261482807383730586675511090020827585871683595802819872337076793926541217700497071786610730512458205374893432715737771461890694049526651444789020478757719225134809256893439124393115348467596788357262072748936237185063584051126566931486144815318178514242241743149351622742009957646753726458898312705763210335196762851412952738539855876560866306607307836012815493437151854198669396129002434359516011365817163546424598872022785365292947182218903028962340198565714666620122339467561771712416171753313700868274709438977830043098574524315132307338362067782828022322689767378901201447446776453475485422063252714121717403144714985305184378699122731456689101683017101802721600086949730457274002686691450023764120274368738476969394191128588126106034556068528782374030946689916431469078105357299111420247685871381685164895187609848595759038400979941050491419781046843482545903534961718962424146101128887078563999340163355687867087449028033670151572223572950431324457350650317316278807406916043560563861114710736960586610564726560417346863697254970195447231179963820170280337266665711599485821303326701766278113007209992613101970277037180692417136287998356547697251406413665429766066255226364435748013373814795912323059454762365263890351771084615817588107561052536370700814973037053049703148969723956873559397170432844481449468417961705373526812871772247190616324178729407466081322990551552905835664622735081875470301218226753458990152770914999492185519700820717043559376557513013502477106059366550226017956114355675118340406839408543985312582733441079298228051319507678733407020415613891789623937353491358724642262622527340329358092441679614174010505273835309112680976042846216299444598376185036482967201863115001558042680579894949834738392478035424016303033822361155837795631861653378926551145501955976445345774848435941428228821364759596628478378648946876682008706287410986987676952468792378758837404985423085796565709842311618270206958864038273874611259199140594474462514775846818950213936280576628265024394708539934214931663045253520406019214478935399265170917844387898821755144830911411161755550497066952399901199052437105872333359641366242040139648957334772621977487921528021063091387587624558441901466527091556509023430587472158904900025988382738168510374493622196346698109698412316101553026422793409505250359279296758925237988080064105512305395485649989449133686738714170564479202228498131900936329142522685226070863159367622252447901588051662293924137913975039026188874095498736897107622876314258731938761248691803381450455801231682149527960946396294533819889850448972184141637205628412250819161201060888344682635608481791567242651313746417404091604058899876445895806322254779261268676759480023326306223329814929664846005823652581088626414063601392716284687219592814763330372194777131038658030274803361941060248929976057114405837969454013556509189603645446581524224297733752347668344325231288236668660143188988562451783216154667511718633278065105278720933210447848574116854676628351944591041696865923404902493949126218227623494263354517405791662011926528161114274554810330049143628420335144470104813203577793865762537564934624790894027047077894518250593457646552346870303750340995682559817644013789416264835057680278632777990841024887007922286402385640758125904955572149968121127338589300548200482572080037508098879119135911690073150605435838995182011842000202332705982362469693664035514722783999148277329379523371440952612731926614261720835593010097601532886567288486305325213988023059834320226370094058548120162406846565644961277949215720605476903454396774446140259775635539068598697209134267776246556261155739052305838088292830469772280684354984472805736722134355222266798797870747354623576941411879414900013850565527597345197056757719122656199649599791832382513327374225571457558071090357566983235008120481693590078735640361883103027331921447510272885049077508523947193070218239192600944385448693627818224658888299269394384719439463230977178450856632348513033260423377652913390305712563701809703218385004451274944670761635912862364558679124588969597208166647929476546705530054702824805414921261334706249793855941531055424115925529405059615314713119541492491110620642191622411083381275669904515984452521078773454631821963637960675971032036972008155396582742107005143907905092237187756324044725960947123959632378474586304011995021141894171104433331708837375069595041894185385275062805030615004227027537894601723362974662676930149377757209714437866193116829767258668422208556884801297506883567192710039322506032090947737680101527239586747895849303157627521428934263290159913945963167206134758920086146545697006055108354616511111699145326336780342391890572003882663329951613985427442235452602784160178099473540961124986490313030598856818066365893181541370317022032979789485093619555069775978991598053837049999973076664383982518084153136179544962254570428547477776464376177858703073448190859243447879926231665085543052288558881300828011120151761868564695090838009148218532770615393867910508810207933240875149478597679641866879627322565519289332504134098339438204868954975752597922639053858134765718020864479460508134707186296367561565454898615887959876857371554983415063510100912620775994057763669275006094868043595769001975189524969264229090086635655352824740989856509093241908597750696017128447864301338210636601284655480381656238488737846938360425514779285530050110183414629240090174779818381346362757226819212135183779594856068297072032137743531559490635029449168956362979031090054483635304805925203597662798681465873173992427459735235452465188138773001171345539739856118892128155993195633330629557799261262565010355968925180351154665939339526932708290436299011801463799107559565637020044177370159746755406744241627047546124936949319762088924438447122173954064977751450136434983661429853968926832909262896641056247618754566692714913060610360427254798642574663777467054898972272704553227985729656901708228239779346967392534756447583785057139978082650533965720916731530596996587829522120496023934562182876171855703542632447978409266953393462752536762055228381552427487451576271466550255128731823410480042384939738693281015329004961218040277148424631528659388873173821898735692666455568597476384177074327529835459466772632158196570072467678918994705269773256664181270610282229096195603003162481117814181764213013514288750206907711213776830717474141067797246672305311539705590508291823840106234549556052301765316589595809089438139657273524497987404870582860302194614311338334237218817219940558207084667542506002417266658557074961136277925647446283710592169298304932482742103805170028444957942212684804102358051866830493157119469731229275121626677694406252900908641174425950526953593294394038961945230990858972302694230518072349270808478486281651838167864498802086651615176436309912854405669922845077655451244875590882525196775976130768464027605259496591408640706269421381677413162920640474041026081278036557850133024667355730762109185103516785355473148150889930353357986105880070887506378753763591345344224783137377388567144251544819047163049238619339366352927235336891515171945723798283250413495728148474352791240337486675848410723599132746191702588200428148596091795128518262303191108335568001671603773018404755473583322919108146290081313214308321561669547978438230739012203620882691285726992626960772368172931875009901718722767139832197884953238045717036590107867127731783113254380107357722913350964562251666543274401957207577244580321539671319773232410049523417980971764767773741147585295809575141225349758075907341529954354452524109534688553834024245109282611926960187281529383574178272171040276515591495669738480465553024529406568075305056915758940173653059746154771925390083625857083206085673885235294698114736867828212950383930405906682692394099837247981257211209738535464707503505603337988153806924434976251536973443780807902878383012717375496155544403648952192601534955005383288395166773519541441231677085228780880659322779013151112813281182863599243283655683180723883074006293819125567794558930242602197448145619986640622663374376318171615954673164984909606086774486432614000433869797652945582921373337967566611107196334417228171015822512554077363861654133573053596859070703915219203463810997264140370079800053141054930984494123528342447268995089089283129544216905398488041218561568643391265185560266238878209138852018591813885699515562901847755463636289593702574640245475572022323143196562322967941697389531483071968592788604073750537879810474404247644509627607681344072742703197425388989159379518257471347154478085862357750924788844053822688998830584336280283809400539950452913068395306897242589493021964872735050001721714781641667543549996405388726093337711839733208471137266777749484806542845733490181329967983048211671024993621145976199479064419250154236474422915765771508563775852115585958593088409619260493630833576563701946062224916026200093264408106526092370572745815651818270649991791947697960631541067876255700156942742989611450680772580317400491374898422143738986724100387562154605562431310410102618552774595714533688178413400238605833346214595666343522622060129003337673997458527280350603120793385378222110426221315295911276498594002864133244039998420093149392058661696913645171581990564031703485111431155942507163961695480287887961938624582867764966372719061392813651099371065894098512307182168036946958763742423767069298830731713567325552638195555250389044278721085178159830585030295426313657454853197416957714976001150184974351116193637154937522836516453773944391587048606448785373180717732696379703566998506642903264725106290590523691164491118880725527263541626576613652186976708735609067912441459771659103569709706117251542093322773311996694520300595571802497945551422183171644397281037838676245086850638554125945232529110063254519737838410976806147605647010863606910951432528254326544285663277846194651448960720393012860509459145948122823674927278945137754010374233148829667965328913668848677622981125478352407495111155156908394256110883841170725805619491489086684876481639848590765285735923541289087555263316774826094175121173064986514414390283794290252857815918741335040239348558839235884110142824751332026043836141687735400417319332315449368813588363420603361420996719851034305467900250441954452127772835027245530250532390051872674174639698251196501985718164678706183692388987391218516565175910817331254388498171515612576604657337505329996485090667510201358323854204846111290850076047436945646110749424721370406442257826786180304486012998316393675535796229962411476897362333560276068839676587707255762361061106130085189366715178108763851986727583703970474062941687005169344338936397267993812401088783624389473720651547376686332878945641562721047096326517521185998364225473387254547870668379230773525318253479336728937311500663403379347981244233216441011939426562227136561784969897242955336867283344660612856901558576461544217606298289570268477059702932229201557334003993034492844250861503790848665580801057803847469590090794454586092041625613787234734214395224654411028197724235501676589905562085962821767665239391702811307651603402142422637182054122383771953907410643159462198231570010928250396597043136479925779363701658707821745803659645267760100704765190444399693874050662757851277495353723655966354267307208667518230939226565484067723157492786531645635550724373915663972379116196897062766100904817305428587973760806129170156175141632777813204534732326946035189471779007961729756576965301389726307315342979474402970691991277850521038102354709634443270785321925155920282084187014670065844984553926350900758576031256396518407820318014887148231678938163739872454254690826282659970300015622985024319640661373745354254669179120491066081164366245848812378534079997515792874543901480609869414205264213278886889791440831080608995575367033643535683821010431594926549925351877564973159592355269709286499302891521160596721302533551611611231817346438209343164726783869861611026647391573894262371894728070653169932804491430722742457231095931798660163553882198838301904927902820727539603004115568548903282273144020658138097329213784033091170716655339429331513078535820844526591082519468997680678810071311203057966714596552672257583892601301941129503678671828114302606706949845012943494553630507702819155378907634760868846888202896780730578197797485806448070736819032901623142416941640150848941422586700833019642509609428272677025256696942642028905801295157198321088463578745977722271437877446151486013255246191795923093584517479858723995960190104458462825000421750923586738241186149952389399213757363551131081029452382482469024112453862240770559680994226827314042677400088192662770998989157701338708576166465379333372064654591144976181809741886662175628265456674013540489903506964379175900745782096584612939033042857088258073294228930275615519422022956290748497653539892172512434760400579304096902597401757286445725674011979079985047211289541982754190696423571036864834120633385227074372520512145624430128803264032279077777238773903428198682980972333258012110498847674121002319147263049387766495779365469553099099964060855781483476343167383716850301720977886126226601205843496597362971761760352329891123982310775757807190872318409382748885302721472434559404156703009533129649039606005197858853376776243360022560617521071937961324834327634413125819128332819590029121329944811460403735490944942317998254869410539695797286020186069626220723663850109033440875840134349991281758681459443772581558412343797277820345328510061093463136601426587016675376089506675290115618812937068797315545563680138429784689707136090215801893487478593685800169529452347521251071698825170049526370818980562475525093427328979388410938307879112506237651832127637147783745822697571195007428690967512400080180612572767863303149125194910694066525086235116625155153027854287093773820222468661580923877130835264964631342114059768698120925358631888732657397411840627314504193566152137162563993180483373142069447939649276846853950268495578788907734812504625508604250269653020502479849183073997391013069259735161990514774376647716028327033945413251506426810654991371328727120603366626527821029620012799156256156549653486629747125249794459735523866092752866604061375997017026102170861670645278106111811468451868758760034301387089173702355883480246368251532893361220123623243717799609336022562880396229125143499429239665970999410869286559727516072170545879066152395369694188332892712401861113756563483193763918170760889058385069784180369712353710778238168205552958285936717363989428992701048339697099353373850696591314749640055754118471102611239830935353646469929396971907246833897778606617884918504446401716066691423866028371263352117917340361736223017797197105291433829308142137021341288784238025543086730658699225331257752684379359490815702670605969805648793415833569426060361162564977750220701681777824054441463834232823391327990574658618733019595941994741269969049510528134664301260778856483897876956233762407243551203463868302603449453229065488112134252604829766080664662068437980766014675746197638726866481034865082693796332514530780341597239583721165582847546230752470110885263554618323098392960647336211622328351959495485378555955203318973905054098754849972366401355962137367418695410434733085515848604658588988979604560225722303991468971202233202124084821698978510277348037493043016277567818223593830304237701745896864747434224778543995300232133902396525688067321545424972507110092826497064808998552178101733248385603926953571660481359274106302998306478326958881495635881794643065180158034610984128905618108792413096423908132866921675593924058297874271381605319954650122886183525473884635050230842909391275247493056934426345614474246869691050754215812089214350990212584796822226759874916673081185466392037230988065958709660461257515571638849394042927669901254620692620432304117000289335201030537795642543843130730951430370566595736419347151878209618441763513149233294960930595984463590986192141028965240138062646230910367015371989166759568403442613326410047126707971768988788632044492691212377959718913713687650398493491160116606001117462855077676187750290817329180553002561490324129853031304652220589176594811063510013770564339033885174312108931213978196953160241668375610193345432782830664298715520595622752046283501160410738929151491546619205145641314276088953720950286290853997801842129951830706112093479034290497158574914770949765836472519067041501767472711928418876535672550314323895341620126325615885948615179253284346689333474852629991557542377937057904233051412963020229621225953356992041743440941665752972347392446030850364929070252558687461979971555782651056291237232839217821411922594429141803545214744288518588012602103633934389104763063448691793966755293998032143422765485367297970942924761869147421760839334937617371146897302667506701483849645655095645640643769443668724551263864176953003762223945215668399023100304438405689673975518338167577275211872688199907242443924180523185721342836914375992222950360439338189875167932378089479636428089093478606829510154568782928786771475036726835769499330030430721618695755659271844110506779078578793378174394611858315242048643169651308315308981942881674722176541077802689610222301988083958990972820138822816139226146443392158739179644037081265352178684574612871220161872218168755504470388101886623084445969841693234894142416341974262049458778783099625176098067883681268543298744107953720250815860805158068533228792533832110061190331090120638129047225994753032101291763777234806868770512913281953405367479517272496675202606897220654733278127239998183016702755750895977376771333698695718214654508822500768607960118000456023404275140948943635476219729894970483475295962973506043211171729712626118592925842425954599724753976930794750705990542359071365801560921574571852896257877243031578961427973996704613224249953731243207642482818319911680638862562746032555046720023789517484903285980463299434270275821375760033087555583399938930261384638855678542470195931247717863178730199645181280462362850281826610801040947596245190859345656248413283040133093906715078710199519593210562373305467511707207595739013177902743719835090808388502843962785942232167093755047743301025469698490416143011738801474763142034441899303035111459633981283584579876240404944860918101857962452434572532044760829832276037999396568068253340632188012817197094062603425016768875065866766464690443152477900176261696434794971118719684161663698057901424465901205988236707783816431435422675874119466777318292766906046979128020645268531168559352898311313757827904934463231345118681493042663412098094058346544624443383639490592195865499057954676842430891355166839313705084352544671763920989182723066160346335884162907001002159015230880655039417321728203439188673005545261455207561945888295701895642045714960186331144157289267793416202002286994618414600488297657138937167666199546372955328441419829547142477733083634168348274629252431050211270703547466370094223355640193173378982550961419731760466415947912156779121210608837537404654846132845599405156231659893281479556739859066388084174969807167553184898480960495726361699308096401563338883205757469419160228791623322905817202510485305188088005002842137523072741562484987432937205284241716104946175301070462843252066212339750980012801008956179555682808923170532297815154989695497607736951826932775560912018666001632179280586081723414860158493381764038429792794987490053711950562609781277169538543751980447413430310654059247544228306816878155629211246863860883755418493418869057304299378832721722795124693655516328189680518065997705623212570243891659634687120135095364380226604738280407939374844606352591656070670434801746175081233600566490463843967022520093701052256945286800736803463923610319361113338027489135767332213894710578859598816085079299205863510655333305882047006361588734982559701552982134380270214265727403432874355018201184572962791462808196213685549726457187095493573387179300633218830464360896511059063413963239493512038786556832242933218898806173059224326520197870026074858851365105355666607314235108512900258425005156188269162700974985196623312027278221122297105578734426956629815160424477070585203192581393459712411323057333670425758018827765847582293270145446742498953097817473584203477038523287803973493688057948602881402000924521272983955013159769190789158494192148890985052201003765308105130302596301783449259469629313814364670595749601454263554916722779774037884039326050159846962668451461382758365188077849479959455673324293915403694700336997991316402849406910393360800408217916833711354650941252005658112941378320072121678647898820077945838724645127906441711051345827667067502801111044127922665701635741855341448274827240695153186434294638751597222554514985726311360532910694247942093686156682745786507765427176863367088343590364728801086415319435825138576324605411623753555980513167014691660991641002456038269887168099929982067264237836729880252506313895929575013958652797890894566002465663520974302179063259844360047720931106397589498585250562861220602229692208817425417093996631700061358198020374472326996645669545225678645059832696380293381600022046135984321688475465260203138128375037012081749761943280873860630661754859556226794661844430297642795875808508606471853862902013994894883774356698407677007953587366845416965879093009569888060332026140365808925570911607022599366976475162649123120218702154543164664194316721957670615551327266439968074160038888779778130171604793153753959859244224671625512280274532759026273775786983887192456870093196121467397156953931632956459568914753130380736603048114169491367709549227273783728865673384291571129907673307066064310664424228504423293917320953249678476453046352995754982079449278865559275361624963257802256662094437471391130751974768204305854505853823601541192610399631418022011157198740294461747189332828757480723810731016943182143800596671382016931080355596534799447777131300277949256698475119752256878151964738993782538017247342798631428345283506303572810665262224292172161953698439502898773531908691854017509489137824528757821318677709976492014387859939815373593764208360653878995914166798554304606679361704682436142558921591265026048706403573239598298286302875009239347096520935652745015318370627650853660765395066690564571001631571198373462105494413275479183329926921129021553511495798765424584792823094268192845486375412338017652323955008717678552052547328197819644300276479383830072928199240046940190478518325648503410534268212095058159604531527842152318482137517989755059482196595755217077085016263762610426325506736238759921506598568788968869484438371290257063991051755441870233782370442880223518171888548000482324128858648034634976847617635540290127132359339489416629473184970962198670526554942644106168507065278038294405340845799947581300049919012538164805426874973914081371468343894648479731549399654647104863502142198403485916003978279142516300145556555492771834272607061493936856127035340758917582201901004138900305474022746477352656398162345763159694443791286149689957970196936101036871475339355520494272880058367246414097294593770415192951994905203018900282620145140511778172744157501112601213404380424832456123521782024278081677242707594995583638789557977375723553716797323281773356468091789834987142628804256021309464254537654298799403698535036455984436067531199390483871946246200521762006310346282900253788677303927808724840386568618666674114529071976012530865338999599779920505674640198760077006683892782436779583345569593856942495221043130571758292882551208447013026555308592881512712545880684199607138508552220146601417944502732615888772881077192973956891701618819541706334551266866094689194852769344963795577968737348314269379785404697202128306695537746627845327720585934055684478839991901672967349791247943634689560843797687148014801728826888889006355105562669194517907756690792567753084254050843328648876496537616678160371338094503480338656552205158782153934607239514790292825055998432822607496835641701448351586373646070008640138056075676372312479413173883317324974952179373575230751440406860255083578608037778160945450128753254711404359258538365906775610668467709238225419239459036252475245404695285866280446337663591934803717856538829652426077347896516454475114833789807021071548176970812669880297786396582818024365603615689732133285339119679802267391948102209342411267543965011457743071767177442851043742104389682406893016672752425827600718992501886344343549301610922060548767079300361897663931755251990336904209714035337724268601369481121701498159517884622418848450229922978405626426458116271598434921132708150286067366629409279885387141790921804527273089839882924345780076867124647564561565331292218037308817099677414749598712511760373068667708595024210672679678961489503285186456689936989092840763419583522762501144508895461972374754065954433898759356761999690818994174595160730231618960249755303613879716980104129111962556054887524657796656102128140056030672553577775061900915803321788427319827089886846142151525943087230985695499145668310733628201358458524458421689175166765845809722729322845997976409245554235543966446409325327919935582763173269091531732112950824347615482483786673732913043780419079264287313196870982852716025558274512472113182182609847983974125945985004895553014593973819050147835616807204298691828707918552420592276191131851821193747884666008001895777508406605062635946565410531500818362191221391300488750180197311247950758530741845180155777351762093975584281632583874367944491245939173711477901413892165443638792970258223502427266579403459756131138672772344215953915027157420645766674066726662806250948374202152043767970870186799870362015245823800314089443280461149627492532748831973131551420034024855558286555280795892383225986902076534178454721071412529068975186025428361095728896404833041166634030662438899575193610127542471800974285186624845499983198800209139900974079974948109804354303247733228893448450160326203540822983580416900570976511673257905286573387643659048177992828297345409460085117828822980691499004235772075774713303356246334091011971037706871822247626011662092911220074901633306927611982271333056288364167139517089305211384046255551109721441723468148564908971693296817410008662597901129169293679692777833127830293615596055578979086781502570893968121262478626525740427537017067926712344931543372131470110708294769889421139183679987926058290448916225926185402528139995496917911579020270126866713047234418402605466285991119326367350018083144118117223825231757091518632545829447023571514122213117967044055085149511937146326858042915215738826987575416062402481230259894795745946833472432768480319499059065462943148155393220387114822207548580038130963427758017576679881336102775328352932498655300178975428114853359836035004387157077506338706192583967283968417128646554047726944213959434894866437521580531711609120855887970559113941894758128106446880630026403263105917285378588381667235381614437935972738156516933611578380870538589336869952417435027765895461916566017250469948160941920654447113500135081135861839922793187147023484938583530441569218144253863976587729605088554347427228344584036945870873971388283437577964785110992039756942588740770623291801541524626641705257548146531959517309318713833260849439855649741381306513283984239209201962024973331155645434648484130277997449153367167095499168270497624877996570765070104435443936762439558098484860543248547470336497618251857934290921267986090610792763876190976531295655126515788486657232911064915443670669094228275448908497938728562185718611114977214337749221754797295065058822987094456741951261542255915033595209507979796850095995039724818972647666946998029518464260477074279637541185452092508809002942301496999625303760777597642960457215423123047044824199831910867780035135484370069925134567883619170504833312844457519766389661565984496313169737338782512844179597154266185560435784539055710286894950134202772062841822738083893473829033171417366441852495007950337421111844868580015300453229853164878007050230224065668156149766786005893557887589420577379803596762259730116756771270719925470102907980606595146548825517804687558389998075374199256059930860818561279336797899795560391778097827931201313990378729409462792684186296345953717010175492400995480478339486205513398490919847133574711500232974845606833678186369909334090522264864936199983695024540312186533827648551941272801907939837341878539799772319211176241598972315171242061524136676378750807769009694406873731832720713163250392531788217653572174288478043634016948942597963780873530172291800129494807724948405324115137949042610317711353502371833444100721223827968243646307882789904738818810142845782553542657972900076204352939454903585362422487766620342597288691166769854091668024159568339018493930441066973704790316431927851372919541999382196905968390094093334750086235596852141916641039461814017618891855348813849088827494650680158311640271620097675517280091526289314505287834084651748272543751958931466052481079640239743922371664221372912675076086024189907927902143330919319046313287398181240622713946720590809285141526437675820920169928051050554843890469148521768091353152061881651690248535200239644636978083886081982161849679722033778895736678625261127252143473665007578219927814220636162221677247665718726377553334085985219843809522412123700080256795759881723846055957890502561349772899581685733639447286162364969916774296449942062494187321047280362889971435663457602772689889109572726624407405437932109693854674760243309444993400520245262814237680437170376051922892182745551381026466239123607629425839007294728146764299345027492378524140147069655962609513594119284427021153105289905295813126261797475007397958301403852441758451914409979914702340666844716586391008112223351826942481948686197328355250992802323439036383362491467602170972321811535902582789759042157681715895928271881787961814294082997403014086800298937937437820370382370697559795020971854449954940303402140435882190898783145404559686462730546511587114753094322367304108023332260871335101244773667357206951339553287776515285918920594938512170206190239123125462043105443081802210671289323529108802559100728092658272577095113527729227409042023790657577983440432187143622400055230467024533815474495103288083834544290776620012013072105929623924452442182638437740231639176963751225913236357423288498519227658572530556537362483799516991654723285318978311965653102949948388474813306431210457074007595233437534828095205740775389607389981647676388570541904333070208388766589192711519448225066485522707274925194103943909855666593470184890822285404298084588274675904485914553428995274723972549029823982652948246620446482066800107506770816996991406114683852435366152824480424002606312441742066271377656128201644033426506417359619941118346789119669459321336629242220580256737258177504213487049163734836026246545563865244436661972260668444733629632703577160737334162252681208218130155864194473376212219604023844413370202829021575017809839136309937628501010845891687954834684105587746771028538227816360351255203652865693372565746915968402235319826496864694057561137636999279451101506450739609262738869210542941392190596994653526507022454489878445421541655145466514597872779385627788268560505191212966811200251121292776206934870618583965645704927219201733682133043091829156823044300643272800676924611921908197992737277101114089632743802260561908061208591149462080252345702774134665227296653891303197397199075870391370273059681209264064086075457165039889091772824075265212163756991055549991840827504164576749933814792632305823021689994685734756271604070075774629941367997389661837837747740989943087872231683376147610928583209838948429710365246710378394075909071709686647461265061346539707100706675792739083364030964000100852445524697429810705279349833329109187251990959009947888625287670746528169387315254201063751853504216144814587606694671386134553792098457768599107215365497806887778840145018817802605118265321448212266952362890167572727689668574399440041832911091923545672938146696111650709908612402435357536709701307350243037610126014477393535375550656494323759912667081906751825013461870180249785773017062467258320080229068546293232028436199103494349339135891051976419488502367613149219843182277370733053677811058773269288328184016562488377949520779216325530906460399030557211645444856252897767137698323643111297757145077270370302071955079651752415538980907819548701882017739341533055770368416183557973530719962345543571776692743271806375662536587106232595622183585323465090225923026564719061510588978191944697932949669021379337142580500780069887721134132927273726372608068914586521473657805804203859489805718282189793034276043995722652106941350192428478094740005349205213261958630870645346073971349486714643063120580158268838374597813382639348682603144418198400173394583931467170376838190102629355862720041485359439405526717081011157720830313132275077172937621442985256515770709308619132472643512632041688617842198277238252491604631032896194254318313124622243703238360695030073422715003927038994299285156606653602126438515627751251064509474881996334461909371875225557855292318664218297106742598632857534339888279948475392492223152473204200451835509063622994106833589497253832827170566287785547574552036768682481630649514216810729904121140027396516595519048699072093660211492822236187636882137406392440226645090780266660308031592010967951240499652214030509101362805041533297391550943925929836801320128200640447879332623889825552009089048607582628137869269243319671802638500942062864213985270934528008298259827219306509651663639437572391360025598973865268979688382529146326647985925529679993769298773612876767741405790980833151025177990025296330094616198684672954315482813616849015973399068664507548877199636319210535718090211796850272633662186217432649024289303691538562817555277279441391784896212297904603213062121933313841615836919342350940697799803566824931089923387323446434790004611377490311341300277130673763050426140376661338997539034131388945686059656967365998563591009239355430430995008219780235837144031954160553369359166219126238345610092519058196485949471121089999798260888375930024711032235531593110697425414276355037265601947791765733296165485145946683921241723072593661402551036046745299460003769007563664143031843772608845281956280708581276652930349984945375864658642196329876356997114188214157248007880041716717341647035768988035896956697586435538021719384816936469422412227210270468414813128091468098142523008246580861019007025025118018922524409770819467535659969132357482291160509775993226589611045948123790655723886787980296772418822756601112431126672550937122038778762691227505628709532434319643466776798039221031343410398885174788257340505607878562346193929924803951368715119414374089895718463139441650863530201935499922867283463867011350102588792452832033432210276487808503289297100071242573924173959183729038838300743337863429352426663430524626606544591647927863750920468971594503597597953644931283572825736704477259106267529363837404125219227642486182101558402888413259667702226407541886457155757826820839087236461820451911294026470142693959942957639196439754938075818465583333587249282293843180615974097382116377385248884247819562483193426681246786264352738777703359242374555635018845043199859878311886944580110399257724488546174994134555294021295522895765933013993167085821129780713347381348357970635328058350772992262044095226999401311087859077203879494609802102673848072478030182723018990910972020623031965704351188165260769271027108250251096675124149151473842123236374144194004826604776322482780848064350043634264085961339715548534610999629245532479934153325997530907810467384101187804015876531679221139248106883294662360956715203217359476915966519833758842935268901352918654567842168127056462399639846547071366549495658036081683122153826047002689107918196944893351588696792966600701887020435077591644829832736800355478224486334345813195022264404995279549472152733257740529003402664496903519011614697272348199987703281020616163336672907576302572521758691834111653545479168190435177536110244023036964530441018854169248631231380288870721795449618312195070391465083288289351611197300083556086464050159508649937522322152629545227598746885640038299661601659343000036143421995963141718144568404684641769170352055725638299797967962387965217653308754704180238008228839519707663991699589919790206577459845251891151180803500413337909881130962772090407431193604688954111158322541676463702394139805292196053736486319990297743109311007634256516644777352859426435394039913284282868146195192529139301260277163810784424637365573235307742800886413319947389774238086181113463058451552854667659371718538403080185215762973981093507152351285651240768292393583169956555938049352847045665117571915103415771508821609928895937655089510507070124174664945616778231125121648942856741513366936973349236080703301752541179962586007256599011919346579443400534730450266863942440258490951028519979602710277591717927725668905787898120794183444400461178453898791911227524885387566634751068918692774675900430796756139268571304611847080013824086734447695891882673633227550415808995095744323036295740029733657948413033002774884395909042842460485374409752505271438746105244209568439273457202865872350187495120568474743184245008272038319818339271984407123286958843027381888880071571274021172996380000717556071772064825796877576039709195719606271291897534438894298670313436507778172097835228709759651301416802338343041746070517565373466802381714237280802600096582216289732923931834973881407506104970645232865232595072537405045117667851148287747908521409242786702274952386186030798174378905141356997030903991885958960775095925100282669150691575169058194424569503915899247109079472308785566550626867390368754700876349473751706597675110847963419795953202200720499198372870198840553092709614289990175053991153545281590427073528422218061649739021221402349409835501416507997675925153266502960444588439075468671665813441523763354793449165909205313834026114151663827394687418085775849240223312927670919653303761085473378708930021843370830585407641968419983640375310707340382788355255583478529518390269995074820310405793348915775719487106597601968370924607108822945987110646714162054578922866298888864188922361761989879196765840876382539914243477642082333262244410664036361473200877913329741700153605310677902036612942858642987327141026838154045900763859710389610519140602882890077832834433650627394456565973897070166525228458935141329442200818684911976717554740884738961836902819343451016550831843438537286204380516301245976575775524057061666519765194069415967218379350116335172989022310000822190250434530268496197171448303141150896806548212786940231837903752296769114905667817273483373206207997360420168989585524218615202763555885278378846042509498005462196948978586041097980617368178024504406203646316229261951121486639650074200750788388856957264082040262919233127717605430391113980187104200261976522297963338299525302553123489879588904943196917620293346268469949896926305944707087562251920794019586971328877437247667968356475416167633572414830518137996316033177593987701110316098635619811587784256226543193051175080194095844221099613867312306304388221385023294380876923992867800600334827902478036600912487341941309388281256847559510071200331654553030886092413079238981794327870228886679971303314691949685038297240387785967527894189337810476446677496919063192016725757457852823581727162012793346434289330352724308125758675515556562730215068182139115964098514662238521799632294962113692343763686692437077677525580143335055987347009083624450582833976759376050432975261203267743816111737944736578909413951376218349511138020036313982092039872341658178153428969408712547891358126232241101965836052572180558109219175149687227883948015091953069964258019656623935267864689213914797403526191867081405325085506947862651514405602725012381921717128439776579495675313633238038592847763898124412938469872308443839592816223166046099504275038853636427101406832779208925121737795490782931945373104522945901252467678574990653822508371589110509645816441895195390142857308751481348640302716075479517016683541843714577547217392233848429044208938655523752544378344285398596815608452096726337524614171395952220169579715099562423218984569543456197556575952355573259857017675121547588271928500278755246275904830828955091537182280077105908617554091781288758503577614413848068100914223625112917221307634972475405356466902314917938380755410643063668600604599453177718465123973839905733879946923383125801470182531582692142881336396964640678966975639353991236640394813808846335874499060807801848190604269458562912545918962771887088971035340029828597056738496597166541514446399068048882283718860502403055676664224831480676245373699805375913909081448721300679980230102046028895944726779840306320196278113384025265363777959567915484407499579317670890827323615705410429510114115594678778988365733216278053862323105152988987868009318929149619547919941888333671922059538709715476180303132119647326696686966733655319755650539245908183401943694089334980958093415539757697150562958244832762678067924350790537086644188490387398029287909000937384920454293652133948893860495608950243978868431213863197015949971420479220826372805186594725459266719398211751065600102676559752592355766816395605855332601187848327280583904714055595512534228251229902343919041497269531855800026706512036524069288866328534575264398533242020037674722001344270847561164590229319300052756008541843189732822222535896858325693537346527166510964933003270755502847634574627186953955489950045903128528769977817472914933475496695704846894883125581522146529891164207279628580896079211981141108429754932509537516491008330911563832141091848811172276021411102079098122922373297482487039893626469992834252792455777294328972038292430269050317942435780743640591671546808201449349118396647220831096123138602200976844671764877710885951580367684405031543340333637374510426490624805157290917172166756672981933140213886370844027258459559180518190858652829890290864938397923554357065339314272757299463710059328974899891368254667143957949383702797246669116852954453096285168549757830174158700233786520453692244478534231328045423245156140961888178461048898110595972337671762587685086244412388154523523593994596700513266789471809905997412981417685129724542459407854817266955377474768896012739388353256048471416252601396405275016543054402096867587064608333991312126146975312082596148089483109374344080436283120477378664994767614774216185281650866810167422674763583797840755685509502414282413409187003284375552369951179503752610836393276781764636822587682429164871411418090071248387334040065692784495241650769745732734034543164204817759127293451834306681920963525043525332829664188548670480991883405142481235015106621441316489466925331185605474467299965186736596150227782593087611219445815756817654848774237287671322962357803441861995696283309443887777147899445231952497402698470644487833558948123607028086607820379333963638298427378748492793843417048968808498715166347910287551620209161205930197078038538339969329828869119020348322379069207280552807233994221796950859038120730223912443729236768806587992164801062138194985734829811788633768005155756013467719938141652461641942710650778008894814942932504478632519088873195514002563545695307698668444411121546468263737778769681155394080515632184785520913466891276963003846428566642992810212916759826422648186838633215421050304488210670566230768161455608446793088083059985560303769093605291889505949308533879142273988034221872965632460225932441927209723770671762841732682649324973253302534281272837205437256112239032683734470605418390113717814898299224236688512173576519972940684086646090274214878721317262127243907442073280962226125132239563132416665799153039775668704770809795967625457438944793390747137382658335398184591584714902071647031306052905849671245362638697919676088754027675735752155549845928846662426787936913906396134407028390699472904304019733273158198637905583905335924238011524653884504902651895641903853396464611972779089901784447937573649079932854175838666551368056447417207720714166027395030012491141306729972731890148138510792552353896469823726712887453882369682633214662901240166866446533400340774502896881680183114654309528390475020287596391857311627645159256521190449275628435818595225911216818372435985320004227574392369669238222738813623544703075127106617331659482050244342473919580208655084533949583962541142121017100275696302420263861909819043725251023028989780656624256039724287170896341868304291568594943981011329222757354713138432185961951516520671344932299546914899953124970930149121682067716564704138680176774013284736025024773198438679163744200128646386694530540572157238754675495969041426711448575723778813998926879990673606986133703409092015435609188156013380963977726714130346568252346108089806812467606405293473334241715146247939857802454053175399442412069810209512633975948510733485441237565372287820004774155657822944563191599653708118140342746692879691085783846486332691450786605580343984134579362529457726114608060889229069248596615280327388978579075948812738654466082908598216597141557423672810051778572929063629646568910581166689117344933942905283533100396557317145976567677375108269514214029299764610032800101965357726341933543910289873050726186170235153797437782980541225473984619708707046673520799116832493385432611274774148197022575244612303374786579907358381132390368441600088002148180625917091066169457515317546597620499381997644769432193356517551327705897026082241259605131370447176260123104529507381307390888488173903919953094743289104990709040949519108833321391570069702050337852816911180486210720316421087227787316449646307002745060794009600250514865968265770378713723485240880749707708122379213554806234840270931397009831642541532923197907841563120067348559678815942921321724763823508515515972363494149008631550043403031244440748890978796290364157681646710215843023145570101115747648002874839448348402237822138243047268487363845491675890277831592295963826481075592799032468900466202207823085278214670431410662833839974081733247342655306708951580176910343490089353733370322506396164079588711331693984405248382682164724928719819847163448545792896578804002941989048644301236683228470615168114825226254453144665281669541478761211857245818281886275949223797818059506968063425932908993118721436105304011272049756958202252339193428779079817466767719288144671240877761221498135641218009399894924691869320013422165812161530930164073457385538784617324141543720784406266823617093389836106681538933734565355744243357719363340443026340329352065624318674337781730381135157512761886700666609106744172962890081681344809227765910091923637959162578565677016065682909002301827932023478888532286305386922549225932701905955354965724638624293687274533709574993074791287035013190882261883643254550039975014620837617676736172751830809739421118372948390111303410524719411761111596994089038290977515884644869698609812422068902445655900388684024964388557075076589619731028573701934448985875991663311940388420903021884678162894263514512868789893555079047279593704377795190965348047966905910559112023200752239064692808761234537509353600745206115624857325306619642214535496769743725858233351559678213728617205594696850630303939665596956620590430231575764223381053228585800984509797156838342581291278235489852610635885223730150195596119211524003300355101104576528826166161866750729781007148483005853649272324701410119185547294773810780582604451607743832744277977140566116374522152788261274125589380755557209201352632338471656780234894274336514651037820813286112055334085719458298610969753965820527811339876349410188317862974059869316368807004535773572481223200295392153199761710987399968996865334667491174982281575586520767563040294554430468716538480679007429958044639471656193919435862035355853524820700899821743368899448617376678257961481842046095867315479348170004560831494158413289613938627361022107219194517692466827908535513948004864756387750998724872874763765200863114137160122866988953646993566823719758827665126414139169851498270902692852622246920151231212214735029013260005994325790611353356900441642624568649051167542116530839101988776696431439879183429966994658209322009643173964688158853812758606912554888400457265169682126394895283028152361089404279602825279408802868145760187602583447221554063654303133183127713094330009772688459810575134295045822064797630264956724431102308835327757377847526855996754053562957341802527592229714687640005827783724480597538010742422765231141439887536336747779067998811557018690683812465842498380938226952718866362022436143538121653229519962489108731672032357967720758293104424927315519741993259721639325648769848242138326117011705731065244512341953959130448843415313162471723956702175716082509584408040416280062075830396156518329012372005795794277079582965252037651867327435859728713898337493034006650187266213675346710013731222153884184714372027766736321613023668357362288020763827068829867746141858633651347307316390579744244000324877627326649005766938075198538629758243212158814048212312700397977035131373533428857118554813909435725629808258764480188274764472984344731287145327239450750693318462351936470854659784276854827402072960359960543333608025451065876960651192638130938841951549771986381635467778661385347499472882954432191813416040024269525458946748382032768770507461166406126772552280257219865749278225489482370664187338089096952448389461543861574108699357842823387258907982233764268187791216516687082886591656395595056463885567076936500192694702339858857621513274223777376669617164760014367419623282805520846546829930424371759178192549117379346062676913856415935315055814269373279069709951276309427098832569811695677691259994901832298250997196571896096051770784600969626718073154101400285898129822447582935343097532984227204892665330445843810482137570688933909896820190025816467548618585550674394381636495952243441427909876901245829275706215362621825276938571655450889031588505448945151576076131343019032145789747354670828061315471033315483740060603251155040382176537860720245748136390118042586329641847355406196124201622287607001902384794057675823378122232637910107073837206176972619915743867198286455346948652627020222831564338450706984963931794999533656810659901158426711566077979253357611735521209673232835054044471229116742885748147615748983874537902213681572193220761348271185085666666121633971027631209350261376312071896940595168644076439584977120104139387095586021368484693327947049350784948067572733450907554640338671650941905713844776955590935006038840763626341636884662808907033382175566284482813113849479806950253663838277759407016912123380552870933999254978148448689592448867374908495714520765940573026855362732661537812373350762113341099801582609840657535764536689427726976456253582400307327810691026999815957200025041060387692379324470394427907149050199888004554124025594548491848643620739881867759682606258106402966184376063933983563973269201205670246874948773659443084390315464359995966911596465043894279630240202042770783867958784737796290907198191746763946637861820864544820606624195472303139548112394664069086096603128865630387841164785644911784821446775600320792287931862748425315786115416213228196898598202109281706228705079649209779832255906104502634475995569859584244695915660340019331511704190286194171837700282967619648832875808295336100507235495011206288369876437505197574881158084556139256400727615486576132083346392301615853523176256169584333051184022188963740060968148688200295031065095536146767293436124089628101000014317886806904437095501824601778303404341751762045180557574828322894153445212241057039893247813873676017849293643589491902170368121578584838998137466547044123299504642309753875204427492123637876792818247101368272235671013844264122430709301681319601352786737310271598652775601841129962564896216308431359497363246954966477262448310750755440144030977076556509656675571925946961973892986619456870868466345128066147868328076844927278595529366240123416092225582413036767943595828758129379178125136774631995010361505760733732175260801107419908299237870965528130359194298513437550198209349050331260964054973317007486240756560860363434404962185114040547529320120165888935733864017462235692069652859499570266748720333514596104102308468712800689371722963237855512592969477671393434862228743293167934160944508355469316358586894673255142359906341726702834720113596008822415475308361105215692473374373444607759537809280935908817064143898706944993461796690510994996604389557309611240271649782553809464122058272732630800554943423456662321808643664564324570601411361122860557057904825778461238625616248652513541302472566519754034679113730751098297457745830845647479449151526791009967671154941695117941617267801108349528144194914507504162565335924428012694134082527952927062226538613046830134464999866033523932089159861395885589564479406197531045835580537932035109724722160839544813909203848251453228308303456174570071792256386457509508490113018779443479779872981802254294349273623256116214932279657279285002851951936487592108954294379660325194372582061860711797070247648629496480029513075260547593655118192493833680691245907503275341617783270018423521025864222008269138656554256899955204411702584063239699610476683326339140376726058539737506320075649823062060306701680737270490933875417081848922272726045020070222565611330475592936101735788510055515219267076693335340372727692780232306192191030216610100507243569349590541095292998150972123500008281004034184309828623636709623060863033888204634501003323755150594957511846411902140533800835759196655434452392295878631430396141560452489444358261764223120474862503769935106054252202965367878687183555866291091826797450516832576269521533781170522852679981576174461598259057839079774561473802507489228692219580881108556274458174462903608925988096181418500061591881234449329792645833268690346747759734286851386056843998056039020023643438831386976705813943394694874671959708562168963305651757390778463177696184163089018189424359438510785027241507617359308222793014286650821038229278668761193339032242342528637736334144115268709905930430818816373192715119895728173893506155582888540786217784526474471343632231324000131233500710018951752129404619603142387160482894485809327834602241403911738974782576066234847456576359427560070602320785302158258752812720539700155745002523190025418803966474234585367228193994563578849146381850741325869196744187199677826117096364581446675846545019545436792286117941695615816817016866028755598384780470769608545475000542192065224893368588564775663079812023688760647922310197770011269920496338097203087331187856924263421068119949872121619762219573992517230913918356723704378935520558299373815917211396684417713442954794112745715468204821452034271558362238016937819824707274857622262407956731671595783184274879286280537738057002037352127101720919061740005567119778751466886727163945493963834095381375106126135013885927464115762567376041115859705793070274114168087191698308521917017371037170287873846704266120080605856329405067690320990908869210922110204742820039439436803448126303971696150382065210008306983063059418654010771544705911886284730473292849487112371785577162504379007400139409317905244000709746454190912858546875823492372412026598359139876419559131776290447329561140771776813217504216582124145799883613373062215617065650082111156865400610533620317286089087371157015536047099588811754844856416416301518284263108898157845267071362151187595812915315040135339606635664549512387850691261493693711607882181391205585761385420523403671783351165624109997620639183529261508931734102695273717858911948054276816741852128556008091639646853367918426417079400117907647000632405217111547591600092974852689722293355122376758989880683020000791073001427656613951614210566946026848353419769260109354936218300508028249145472246567324420323850161257438839859063560085307166404077301584087218900221413017176676640449906092127671394860357321372817224379044657436219194203983351756980747771381388056047614934488252091826961022188357033678410608491091141694500712757616409731529178298151462359812201596567167182553307530643029390457188310908378967886622687049353999177958182842382121277277704452922867153518645375820386907628029826384509537566957660232875354078841756494313071162335715492674800789234034248541933870053780995467972072560590162237170978493878353082272909529678489045236456691156848654605424581905082032744284218677470313863430042491273368974072069806830551183838333977164069618783691002499877062938772946690750804560845117615433538256373066753940871530814542686900917936018689497493891788993688904524056317281999151327974817049376453354281733247081594966312342227265985831878676649976317375953151311600446149688397218629137475977677548879348733535491924300172572436380958053109960272050781140175223310620810246166811930763121309657703223840562929332124107265566693694022087817674996706495604764036335613728023139467698925793413774651533053285445272032770006901270339416543919525735985329913086487432482072169234725538287514794376738363656434574086753418910834574496129432729499422292263538709570193987677784143418457312287781500099945658177619284503004596848390879345338589350910822169229476852429276494832921712838863544588722248055323116494357887652319658741805526216250453819702255204980106271683682173675259548365732599962412645101910376979098298275629357485427569820471686498022053719076838651707546531360664849951454518945042245266537237222711965176035468859109969333411585450313256927545419258697687483293820214425706512431199212736669118198371080698161248595810263802478782804264721323343966310064121045537507962537678600792174818021894035210642985261394933203456581759122656376470031512300404504535021211391179226398796848148843829200313150285541572451826619225703695425937024686663293087643436121230118803420158510423184731332264582661251002116773265856146132220776171302055231494540135141348826126303817139032318417679778594071215506033794753093494166032647035390141807677911747905590900378776817635465689685086563429084643450066009189317020527426301880750272058045064898723620477966335758935971274463321648514009046636330720651543105294766366517721069830957298360588795325791593245106763832407030763360305513080805408213247181804811152778936435838679705055796365898498263055798195571509161450031851662997388662877005785278156273317251001249637871378661984884211926688046827994045318003150256080172882862879667944498412674967588471449283933287199193563479350367585779855245165864095381283234049814877382895457519197101371271214142840110127965142010973183274773667862541496831224148271483862953636595520567177936765591693056699786525017708482096818907796794163227882808542266947584301935671096390179550533457577180783124806627969414639048773869423805897181013156906637075078025656837594872769350709455089574886436203495546483073346393096139769597724483504038237957700867870744076426427104340628443117505588862972303780117678908116043056849699678398895654006477389287312194510257790340193661603152690050288280395218889925331671124956356999156854841158383286116451558602624581353015151927190597003322863953233819165301395655141468022004517038330446140383508958540225150471846673068174737147597385141152909050938316993182815777692357228062437825026614866901537690255050888049330092424996541318998924934032811811465417063023057886454741031994099195800673859567820895052682158451234919919583024618647238195024638097516244383082755239094068819477732762268492431714578762305505873455164155961718597253339968753828052459338070516073449093752500209868143526272058494681412414741361142954530962871030501096971113747127953546053826636526412514931726952477277848034956027988526986229762128435337454148105081832691897956640174548419550366861548275850688638856580135501155643246760292942856628034236611842057152277543726473382704280015267602825992439923338057620198221680833432609266122255542315226208138273039607942646617911141978126811814342336799788688301179614995418757439548195758928728141284832446022423635548418838354978766922244048942276312122519657073925763506899913136521411377042707888037509996930592037939015210135769473631666067886200791923576281495890433319005996241822812308835857007335640753528297352913408654231821481585346285962455163752134951231579824022480983884266068734193000024339194602876779535937473183326946145396092141214342730627667681718248042182292913645661439364999216759812431375475206984292655634216214963472507464647318476071676914055088139258169063557510798547391302994109738337685437128490023984762851402534314771492004426355015446270910072384715563182528029688035568078016732246053134255491428350352177673328933263733210734515349187388806273408578564655867489331954625279198425932330988597801578451708496865356115788500881400870862889992255228276186264448667633095063918401347191083932297403148189191558289326479718795623517554790984002947827979370992557182314554519145209780418377873394180314584980085886170667055180897031964440436553434547151478938046098122466619463349472497875551087554709629457285163045100347465832002856753956319940101616859221962819924350114122553736237102349402783105973993032140673422906915503426370716105512249398344541355225822284317838783979339494903418531621508652796143484961501091804970617111281353470109453577608302658365563017094293373958365350835516246002085365523187976090848384177816790586325852178609533192824219496433963687777474903979317891217406437852204276543295767613665690997835274112751097449699255586227826416657728901740540247756298522154622316949139671581546786209073935522433109406502192311484043528622093431254059521997162135097479512626728893394484485718819674679567556375617078426915690516247381117440398371448244836939381197000179475515252038565625614866471964213167741408258846139200221619499018758864048718975802735023323812955625217230819116153996637791915719457177800623949282125742336779350513527837532775664819335724614290478585143085848301934308372078774114597995030616056247748747350208923152557741592665035324908595077543785930464347715273046709200976137102721232179571306210889957431416130276812939226231025538675662786854723467283781289133392748519551278058557351973035592939102604842675354974355316476986261085926348374066008748242764077089262860678997599742362087908851982444134732089700263947373543419891072689110209974671186370034964099112438432838696661941060749959638765895590960150838960705659222183309034886424808336035819207593298173848941296118033464806458913359036305129307115325791585151635927697621294437414729909726926882411205316849947292250731517313204190677749424350253881578469690219537175873859899913310696318311655643823349766087822621258734989860615225133564109533838554755552268033782778702245680714757108070252825866707639797107949707264471087247715548316827357033207512150154341984945391854648256473324633457334358690860198604674829822290733264513598235688667320422600781385280960205674610275841712488682223332453464047411851783404969365695508908260020012943197041487140767683508922068976628210474478502928603473562495955980447873098799675603904753129181262087676258090658351173277589416603834864222034466295674563904754648943660020073134782075842582468839060996561068898061092044484147383493750433187854852057831602438510473081280303641448309945467702806384519330362375968547354007646852746802347836001418937491620948124694176770968779587772609450498412642142077066924407094792998090441625526302647533085990374308396688036904064064706900330676765149714239855279102405831210583474528601901786448400273487570865976073729068662048127573782506680656898988332684778283619015239563457681845037980495855845109476954931158467140834545905976671611161448315628867026949785095007634994410167143762605240082244723036649039805489343971964514228759337354838192991927060842816276051605713394132487194561386055722158690263153132029755481973303867214465534438045876842729352836154247191761802943308725220049418770120914686016187253921143904840012327275579783324809138837207633968922875086533030846649363672631612390578456205240734923499847448564215716680219732723301542995781139792687947673829608597283998557432450094860834712432194587238710282797907198546492301740631734640227820638041112821976969270116410938544902683550988256142854008094349401763222398409041655539476134118862016568765340238664907646150616239520738421264452098553338988340778844485048212943040236294487625098467063329778858432107188359120010601085499074739020618455359653456641818675941846583450169386959593188512107234971424126589914796916050509438268689044719560953818525692487395955252495897381750243580709946846529061292916096669739111651058701782048383237821410406837014616849392738794108621882415504961654692039941965366990047998449997386053516584638985561268152427443149827554235229469872717931328067327322582474293289841033503793717824641418647767523994985328969589937471629753090818528159516910300694315568638143798400793241537612697137458325476271226888839225952572868003576956053447368231533032669726592366942079540120227172329762440784923179792057372426541897707380935794205916448411137538132129493700706962251452847998538659997499502504089290246518164730153878120054077564995101332449693462581521327931083592639742894019165112871931346082566548529175098311563703934572877407136662840550266674263222688829630079379479205463762120174342592789350245340695722915349071256304649043129784798205189561532892569432031433393146323348122557301615463483061765799824734977129564802502616713524924996369887397800999010094938732579400745796637314058541212130897087623115961563470830423832133058263580783313339065220947821090043875034185445838816781447423555592654293556517446543117838643645229882564683465078734682557807794625622849550832300914261022938496055985610944936188907008676840406221416914265862372752028234902600893795645755183639794033745719835073309745313214234477666095543199095304367850842378681869095603567095161409118249050234417308849231269031240866213041414466076647796215296690330040600969255891341122349912667184934173762966066134646551716472040237679724842508503847858299241156394610064838202955717177294043066275234239399253651294023369683001282574681187808742699742066284612302779922163134152031860143919758087429644576328748030742026294254089867872766619939336104912526271979633137295278880132935027128840633827937429895045258608881514216799468536423124261460150914169798545031084508311213547209253561039845333033006119438874639854442608113984207724844387313007222531290530750265691210858719616765420295585634208721157914870394327539457070789919196834095763937880199665913056190052641386405726760774832001831700337834179401322761134681955967074053792787199158846748295357583258847966364051265144057578321191889555624056905942598871119295174572505676297196698229045412941236078583207524334038834601232108513126891988063580710644961763340646753303502519067249605737609958161276734567857431647855319494731091484175834215874867696756970921153840975360210589120534970475542932503083906873892209455616754433454395843425876625155194180208343034602711533836321226227273474780586393542303892572207677864687347471736152961443832234657556462159448974453117781528082962234663019385700504062947407989572836664173113731945194863898707455644819944228545053458995256095452915868919581394238364707497160943084001812280538761827024206044373803853459288109520144010916824766230995062470132928314006334805100405755079784246841502224354755850501328593599832987795432800138050510886642418250616956417758700598229108282019326381869194692747530787227891329950118687438315717954048741609603813222478156713045464025453885570227318491549105883956805141280242450800217320094223741608513056716849450945873366342002929739919085681807333202235836991501817931035543693564289847263683840211142101313808947458118303832994583129384133284342674656235969124712014281650357045640779278264866781932093066896488205723040759386389584858898205293677741394452372116140107081009478102980581131614820537820416895256399177420355427759935247243065872380110095052368050182757870551112839800740941277194463903120031922073791967913588612278632668954651742429803233096343033612847358637742153918501947226402769506359890994963716217237859257587441706677085842130735022456668486638526729414600755307320766792980145084295527389485821188834736707372722219514768216379104120861718679606542955646106219600079005075582247404610917675831315050556028500729750601068476344608667793847516021543152408560866042296369849190734738339390069985242197568200125542257177899439609958931610387136016483693471217937057679949725737992708621911437500521378808481114472524392893485883009523944222196106598886381878446335107227339239272673708091824402406790525652899454961319292049899968744146358209418552551653751628468296726370009063490915186575626547037523767877142373230536467620513288622615490460114124912391310057633395396863596964195463725266585984480984787062377582335597394473027795337102610907245696902935069419026398250106593033778811781032077780009357403866920857617476983878101498179907016877539946087208130645315461436254879212452945837601962649172031201846271654962584466348070081797795052664677320111012762172115042743474555948801379237758797462651511227211980993355218089711895622326168898171788314212803032942033598902974277594359421735358031478185794777089650243973768585859988644174326094254469283697103571898072444647790532748539290125628764661378383334355035159432220367857414907064150012451544967291162986308910599359826087935855680180355264366690268579866312985353901750607995498488657369428650490972790647814208868736106984252086272619671622333899245580414880564759819273945312224215313110337679391763518439833129751546221977201629863403764984036664263956132630700748680920620939707391072623368394047950608092033347166005527247845476859624874318804442270381242206052505761796841616002064145818174934098970636820613041442199381352817012198633697615130888065836897617580135660312717796454062089998178227628777429969664975302984421281192175651896884945187808456281800521691080523873490698371141725181593270688934797766667818625091476688271484292456134133020336194230463443522259283160184940978335703083007535506833549879414427556620622882606366042475510565282353694083082750733447558380611620696580469471820182452288502033747294904409282620526501287869476659404601087694365424869373606741861350652902311630840698264990621822970678951765296260269854939076513882749483642367065538789268005153975115137120382259816267812301888006437198599835564537172658764830775228084089515160053252599233014580040925997680758934687436644168423473053356850812188451313327814122855219758875709513882866584918399769032355778539564574331051009817367962329804008180064597639945227935732775802911193105105672449145226277205283819303108604627648764637509099829780537326341364596433562546503680736151559121168062750451352097418986176219701720324993968936521524630014904090130948889674275348303463334300637303945918954074493132733732111938225360238924505499364990637944529583056324811221857281973289012696287043611856925190272115698551627594059729181563882718546699651167252748014184628901987376214963760382036550825349098412371937870685252737360214529347234064502017112445933727431772771256581209335187956236660175139151502842294653981168231679968064492068079917635350535453056822970741671475461121603440325257827728143847700658282248198705997945597279745641894759845078298271988221273556593870713371343413822206382187622708342924930943760822343553855111707694620157204660286112028235364832633576010426122436599979868873017437299491386387216148473112804088465705177031028694719954579439695205739304547479479194898617260229838036755107104299178083728251295292331270827773752088024661272674212733751114958625647524987622137528155634323000920263179520496772242857855597092865448369945117472596206559432883025865255772303437754043071483684151935234434707719355001622399338299948188878338343783326862487931349539991633928180244978375272954059460306916212231181503855379685880494196830990041457272216856384733620990671608801871946781987058499678256268981124935010285491882252828076324981159381540039268018983525205356069278204041824868766625277174678140877557848370649793134504333720044812276653045933694498770870570249891722183816717716860072067679215174130735588679718354104916156846254037402949222828978229624150374929055813397970704888063406907614011167941216388969662563356636874554976216447791419176630222950225999514414552795454214897217312532596969491903351302601061740989030667258699547767105495630276839286145340287441174658776159210925315502769434779956798518367931694513725215238658316152723147233840200986207947945652441605532869248394539178347102500484319778685263430013121231152310042497792370531605653402798188587634498099209401694228277962037967661596586655439659251305517851659372380724270250073273575263911564974715503007649861645027235885383862745611436857727159217893558688400336186388087960660628603541440786541548909072861273607009450867092157080660123844110342344317945152337367628387083655778322646996203833633579153752649812870611191269322995282384821609107996375453197575768761011575617606859231911244376382084987938774920379322769833419464771726561726806731530217392508725776341400885701255448792715179623020467825537261297339014966052230360374150069170719844331030747867126489949251703578717922551925600276176218845632596795092875409474087126683709396135936890302930534416546692735997771208849518007069052903398183904214695801564250404984381415483616134376838880928963004914110675842649668524488065937666985526600863740777019383971545962808685684267054644879079228783188561460090087174829348657961072430485741599871740121700791908367991678403468002162709101179915259125245471844152635839619236159136915698614263413406630826535526707047132527825090538708410431568393133549899149906358005170381110103489314994853973939119835255725776869170139429185875558963484993193371817483506548855958060808955840320637035063094398359424974350300160364380851476603869589688740799421053705496365322249221034136476287791490098513396181962735464384705924026733631010017681911640653954037920020503022889164057856500474922113920843203942294586587933215572868534135020971119245902205487035286980043185865539495853994037335102617663452125695814586316113010699585794480796766577943212161007904440146101150984609501377692727489602627380373726136519468828491735914377510434030524555366961656620011488669081769033248560736886395372953378542407980367381180289491436709151941636545014966544933592459789307907897872620470827903261491772667565570887319383925899525453601496928728963841065876066845095328265869630465829216786102700904709410683610536185612542545509470343514099309209564174687219077679556179644658577788725862282163294188476386940366336536950896227277535330417323500708184276510097975751046052526076632706704528634546418026000061382282320234902145792418357449328026645676234257541611530051319673498556612300552991713888873080472111133889700283244082873724323970959995711273674145226444615628475212488426457453875587576944013114827295677213263064470783405575305526428933631782400106774100570369559659308662309626366805521554378035587370861824939840297561883555841512729690677790857082495617021182402840906891688729753487485283535187487126819347080913818081390786689372703428047659433713317813704514263979227053909862718205659464151059971216997293908758437017436948819468488311407901721774464891562733993550369011862075155027469557749933308792027681124764979530461328205112573224324622791498855039614428081689195533472846367658987791107806507549777890186433248639288832993688731707202903541472171173934937620208421103592004430867933929143687075025919173894106034171493046938876672354146198883896055757102987190517428948078226258155521323096705194560707931089967215500993348065190502731326892177227692337995633431775339434718648135955549074978397868155799878727483549449810118134259665736422627318836237182633415195818414331916131141407645108444212014913619494777896870802816458086376342866122593701049277458292264228358779733398059138200823392201597552385732935009227729306092206944792453958680783128241132512898269036516828107805038428973596806405897537115462335745128167192330956136954127036520837245403978305636203964815220745705999314747962912560391847666154534044254139338326367060748598441877288918665733302770638247924314589363597587099785323620970836897354676755238111799880614008964623581640603528837880196685663874196470976523104289814643241202870462040654751210400822094111585212789112534908125052832476045491005728683803304942200424994357626495315106580078428844669842786565003722186408567798608285984546001116716182810832847007077847580472082115164656040298372736732596270224417635790675557722934187612545027026169538752674661795720703910744347287066069917838392011715553111335303542549441892422293630285410934903766223184318024691654715491497381545087164339832612168567516811827672323893732807376062860734903105380968173489259148627537528739118305337201645265005945308829184932103201774676393340651160100543831791269388758591924145992403224424407737480719496797664250644057279423935805651439397055022120993331937142501685155191524179963580553429907597097148859399873774295718438454794920075746434546706944989274874880696218322432345687120016247321731370544919449328253973548716490201684882456561762698741857892309586634745476551303602786258722879282116729013749225349373325846427671935440732420510611777096811939400957593552234588346234046646221152691984820707459431303217116432219678834851771444256196233248744873431953374731506634615565247497347960350234693742749932956700111723381463869071304540275089001012553032571442375702492930258651743837765516049800490892403401732997575291678345269445943166295663241117584239676094688311972074622200770927840481875977856380806580812973333071326455295955993416797100988284490319218614845697826505815507708705748464685552699279610173847589803107362111426615121515548257605512137864445726235383033874429272965721477695561725560327123513280475459827868525984284795076916970084728220805636272368790482291953429936257890683058839917241285376407083622752626772180500959483683060106438452044902879351238819034562681175664742301413026410463617380060521819791216317255756860735686054682947683136344172112887099812126710287252829043095228249263702611721820839258361861356364716674031599618561071075186363288474579013194144784983186913222542584322872132350541613499565005791966501110660584789086952080760753875247203843915186921726887186660336681328750920858929177396606891461600775893629928992014714751694601727297996734146845107348251144826182665850036886249470687984087633092926883454456232386897627049394900757425765288043827605366780671108609818685107737287092434282245719392951113808191991299770571786684160042727166774358338475775807897115693568909117159146102044388391909125596053941235170405432612800694297432747884201035682217755438734302050324453577378396104292603474092422458337934064979038518202374971179969598476244076359849201753402006304411662811167265419109310827219112355349406467286416296166059248614027199319713779017332256517864900464055842727167150802993303418461411940591581035868147792946160715985152912297907615907002421368220965489158340332453654146287376972999409287486656513575359174190059300113303757483835406521184772471802063963376439158521868527074756688786838231052452720592725852587932815021693575547380463662371963754844732651918893806199418026886594313189321215040598205867649457930216170687841773626296536915028783011331777042524626703258242537050800445959515844176527180898650340848740364937581305913905688193979420654327222081509006374417571033557466287143777535409309676613628001572551844464824990728173486395081024123478476098915274287387291305958836893127435854253611457679066060188197050211524323422122869341893855170474258467906866853092075628123456366125691828823800305419723575761778735224148019867680972892470371882351263947718231106151042776432676832258928060606180421678353511012854289931354650274947780104464570165992874569477239139619638568648320231885681305856812805995122813447607488515287596927971342251601585385449093547568404326013483418781944913904569131138558974096630011067672058147342175271854977672744299783893658957071952613361872711412792350551595890057514642036611584077503493457656060432114290714563280101607662471592896105988048598825054031217018057559706650895632504644921823158030788120503186470556806075014923451280656248683438135595424535922437883519747533442241337675014792275869222280691724759909946189653501902166060505356357123212534883217204216353099453414193683755946692983675861111289539987600877178658905246070301364389806187858087158507428127744878379595703360100187507156295516038703384152755301504918277322994360670361942652444743874562237257881875005086693474309444604965803341645493720313601668075375589465078448551216672841520716441906858929264374275225202175053336369717828857853325007399501450585530806716051347673761099882709822929723746486131575367015332653081275683314915454806079682498697128611831874406623592634902395024027159437646082215723359870560103062333598073166295175844290717064964643135724253360900482844590435975380132625953361818995041456025187939262452587957882360519469357605243918333450539789776026146334584420936059861243685113755104645047726568575750578374677565033722457298516776495940129365208568837555960650766156092235522053741168583130702589331101665694013650614201953828558335004543548468607768184116613111878661386915949551658200105228485236275051124733579332824233150196820886121817914409358556123946513597039578687216178799607552132590816411419180571260293761418307565305273400518823403794225404952517772326345369806558522942612135573343270347056706699398816261181926351596304025811031151460318473225874663462370613264784438876941684713975697204327113973046793951307576946558472756003367902595419750968241171743456326670525082280381319155166380662638895848278409820534122416989530208984559176399897019927131564807528182029109929066334580990889444478200407874744502907378240331341634124005475660236818215420519124966070891221612856539873329897907933213973418360547628492943730618239662918212066276587972332900146770470132467416551287088034416030183324389548517891877153349599945842244682052609087273818719330928290602231818936219145253159371759643161719946365256453136034250826267217992727552166089692103551656642701793911435778863770686395437645525174218014592323995266418936642298007204943313129366075729899022700375838219110820719611997018755898502506110507055466647644362075042144815554271932950922734298819236529671056762783844251702197918001256333422196021898793638574292671234122019138832467604320039772670167674662465328926095272497498701602546323180134846455458465226287006120235494933601156954255026772887716096097930882290420404320640483037942031373730115169081201327982113787762385592946472968615606275643670313419578684218448739151887616558260995405835848814244736767936953952102411610342110126204491901674117330810833324892029684140100213404457400264005216459108869980269222546100798661613963439535575079346559308212931499875085532528461132319812638036262787544327155299172619125946173379434261099935810733641106155826722264813786966900980522182509243189591501582766529599815921247810552567552868146960453904597138245654407134567422656547671850279461798519680116367636078052986234995569968263045853098613260839517552245327268133570056718043401838886525440153347024860104354293401748418284812423809324451043266416350207735591218245367364695231404782343763226561558041005423413063912243522283219597014565748464739851043764574372494062897905287073731982823822310641783035135365081531437997727565630871666176747112413255680790811477969062292993424584916588045805729924783619811853869216463731780381534997996372475916715682804385964703080341671579710879395759739674180823384258326358938139519584292543891927915701449396426809972796638427552979219347442723486349996663217438562369792986670191007824788368168023566956665724999621930173268550851295449513100631398859969824458678042636950286042425462740857191209213639056400678658027068049454642511098995685034162809834678729359999456075341535948675070693761271541166463145514563291007441407745078392231384060059864928776884411275166497074440455012839007665600736884538980935896274282521757122792572356452692385321223945260592076820842048193153074485535122193950159950819941339955287385633855260130419342168962526341313168845414160583267711064448926692447005730542727136168345794575111014875897260822694053969400039037103403972645896725469575104656293178379027837981489243192536204442578970057916054233590711012659678337785767657233463867066380812598658378727480994841993397039012377399254550433165927872944275048398605000121501343287695392131630081448964742058751418391707851038519482398952009029536454386470867632010982206738412163792009319048252856226845618970402577726233154547964517395062344233146997138048397336651278180282420760321628497687386848720410337553755089185326957159883800016351454657776881153231661088337295777790372986802990617203523568127530924307372533763378112341433766845077823004185125783531608170841137923002330221326237781197280080093763897997420239997953204848941400904491878746358011373758063638127923257593601914310697231293115151755254765101042159508071534804456781993251341914546706683457242917478918499671457605249677130040169811568674567518502603355435413945303834400301485991777764418106995215374864385573235043113045499569513031769386770884617958570158646084573719986940488932392556037941730916287859449295055667265667417106950635549984938813222008583650148942778192669315177543260637482100983680425382154616344166135822198714821328778589878728129693015609645197387201607422613174822704797867532624535326898534923610232563266378009182831610264464142123410364890727494530701406285327108506292606868745872126840546294941869964398305012515540478867986981177944709874371770380781443687967451392986423467363998711792821810711621662468718687638516817955032819341010420020446668153680120184620908730545728950218979860892780729038134068321311193672717807602733347130507378128198775176504494938672147593507016727831814014461067221890545165780109116515172723784929105501720326912585744529671943058972351906271506406408098958553968160196880642973085133250800969362490218819766283285524668034815744162774501868684881018132193607825182435775681938600039084615523465763833907102335367374780333632138600405311959713926693579645832893327420329130038949439906931191066347051377710099364953629227069232805435254942646090149373543506563881747259595934856025324907699484552650445915131946086590146079211699778661930635141718044831946350210828560040415883675195791552375631956509966377045823300941909283361837651418541764714825724623291244333560131324956247282334392592933032735734308230533265576335303408204894575566821231358655245193207549578435053548854405358398724530974429473793572594437142686711986137416449227410700889648930306316534290676385885349512849315125885463889263810005401781291303139128451649964998586815614903304777373411333060095243207278016551293882161467387502278871612442649185890602299935263705598797980900229326815314851994894317312077044157293305956382552541610470267951789466619186549099511415818226697921278760452954295619300326605872218931708147610989032686020627785786470487035075582197729070509622659148568865646344346378427898860207045711402208184630095514442730945110246453200019835371128326536155297234788784184784760190470821451578803459379590234946696646421613639951227048630477116481103673333913499816633930902076336995982475330661746862427066449319932395940846315859908866229128252727528392297569156025518008186782640836261290035557888951923525236921124318697742714203371233661578499422497707839029842716913435863390082576785931512545223205903567424185220848626931873711418137143788559285829409911334606082541570230716833995569284099283685076277575711175598469314290821413512229109174062863461249572852854113407927235338934812014241389514936717358961212086698932906883383905827646087770755579727379703759922963370685244804666930254968250976862631509492236199797799031552292026106595885314942207352020822172827522878881581492475813352515726112115981862229513288844099003811642055629555235635566336355029104303917820064698472587605052343864105757914623880239312159777758011088075558993659378919582824120940585230801889089465238530151304872550972740388726869277852558871540925168172088466924114007390203985538417120113190196268357949549231992483225782420868701713617180275640053744841243233186474604314154005449771172114841560230088716503491435145686589076079042998803889787022460389220862697819768012062071909228976217388168035102941929516746497954944614696138241672995430277815049144600070424898350907385785668116660612627195555593220227248271333786641823641993128297233608979453874825775385639936640980707860431451124528154411553790569826826250077904259365342982228402039417424596007022207534102862749157553559986601589894819176910979131331751582035643730851903588187414020859325446581103976346936350049534079795993350816718858106660453052958305906836905464267854642977762157040395479639060035757037273863697037272837729890617245146864259586942817468985626057310788256426282743383359777965453686512273906032697652768509307327353777169714225450704727191152142796359216806734443155583305837863795575964999949157530395704453257391707190246953123406788103129761653403427634382710122777576542226993435112801077603924215679240499938817623557080665209855571063944288520430246303450717331222880109187093109662349809281026437587961801027380611927153336392182476406000435161805798483961137377340468048051612408469646469443757909018951558016537809397053560186791015997809677854367235133948200840440497359016280336819729395805079473169909499263534307891249373124784078135478454355406468527635617222519147236503572733959873183283941872348174637138908329654918288992781389519447179161516826699444206373619841914426389289878594156250885996864941915615351384061296593457472019467920351067295859338948776841175133202724286031549321767949542599661870192030145581945632779461299526628552831559840905346594784624162797347613219391491646305761890778736722934719580225943960809369200236221502261075367883185673700721756919828736517057987737399468622546807170106540981324609859438036271640495908970737786733479529649247203876869965295246700771845484029240088428939812137887332469989957683562419461541962690021804122418815235783472494573562923104178669965071478845462626386902072260397586184840667597350843566902203689811776936730630569888994559993852491050283557058868722436275624712411631954368335621984756698058906557512134733119036063823364523476576106626036994887795643049836296748912165411059669324390512981379526642843748570382721420087688179524139117404495837153752779431516348554286902868534071071734289962386074740111349084398942395757617136872017597042108882043132581848620449782684142394909992004192270633276734480694976383374129381147620138127781896680646655973899692130017238169495588003844750424079999292323820084157561157823284230532121017711154101704640231730192136683512324771102385957500780856780105300124033169442065147218483720717582927858383949924991540762153560302347067446786022410636711102097177123907813131808429128620842519369824477316941185213641478233112970227952643588547632388051846242428117095564220491387433649191412126221321846048762376616018010459216604928323127495377123912238485648771006610998337523487483240310096422758966184177249858543346048616445676759560226397449874354072923877286582834027999420540974109264167918073497372761693682787967049969473481292615350580847258506533822347567539980059144810278809592592994418041552294662533104255775321260720593618282715579420356249663622445212193456620381096090791680133753405644071299580871146733446081582712710733976016232257076914654524957377112656240640658170344422620078384230758762283100171106823436974424397607205251276858929549545995983818269814260666560413745241055359655750716295469412486611814771889935645377031868478575253687741861266639970302522689600451338347749085867758800730604498691410403180053242679620005060913305238003587547541743798032685035804268168383375553454616939354610733933499639905089686390179291034591857580327940607430142478091164195038915688950646579249967815545244698294179259369569924617732540252225295935348572364568915045442362877841169846965932801965403507319846266246889406069434001882419412107114748515398842381651055029679705598581200039449231091026238859331412306661469687065049777118661910501817343212590336461418808547775437528174080437870605436648800814727677027104953460915410509858439245177805803158169129170607911525738209136210119770356475477436932253175172202452710038613466708767974527569287804117128027790150958556666512826776612571654611887052221679808962127076084005902583045477718489072753026329188730366510868187871824076762772427727148655388002705342301038591621720382782769226198636171907180867579997473385261420126374408164437100771483278715137912676620394266436712641984638766668492203070025997284197076688404009258881351110453635076557435690067275986501180086896827724334524141707798022566683919622154630558703235720037486145922918896564955978578064006255914182438388356650813857268262946954942581650742616248923041105666559124122844317393467808648180097951413676040398171277932526361114851243999918820874837377207432924920148133255275201779480112684373068832121100852197029322402530761519282504411539632939437048965498830226237263128482243852640484806925168947556695034892678323121892623510389085610154432876940367670798353142679907970635966841343440643201919261658438884752936123715882028916734304439817991291419599932621239365909060905220541793415659601850155285651959734719226023288098356143305947452256621133910341524596848150006968543468237423798016776172410898332566793878556279054404607786689856120608623454097740731776278125035253349121308435032757929405934066344007232250938890115107882072330288230923685901631383246571785337448254068605069192935268073128792513893190421694797083059361774185751610527003961770626467673996157098399333325431640592354843889974443491678208258690844546043923593607849483844017722202892424400596329542380779445344151461419354328562670947144436849289566823085293742769777507433290190845912536405509955953799022199621667529487085035919841813066042527124570541036281086264359085395083000166613000729795110712756353996523308562139537509303409703049609574069170381783650873204514929376038655231334188243645278849177749568733717748961540078485567024659596711573123131537910649337029809230530521916527801448386566793650522176588654580907332184402050565869413878842291604264041586482959035660574435785678331063716268323567964411134972490897001623925017046388235337005595340276480049129055413089017538257804068118430231555843624940240517975265892805084511890034945252895528125542937290391887802675875990199104952616958465365436101895762456517467283379559899203820570250387707351576668933544657905422136503511071535855015019336289703529362818402418040732231934589723862743402850893405969344513949541622082970030590414409304915017680609897174825919339780123952048515596119059777502934016919352078046961508425989142330084011617524499454673011693120479787290077050561242245980879080260593965577221071527225672344945348434439168874093276817073884118249457509106492274970207376197287117606783607243994954762005052116815456419647701500236071630629184552559305399772986436312012090714143772527662327313506563295320884686237376049704919805559763479325990187621688947700875901925067200347164969995484616592927282969950749251373829313470467843067222938470546215611721836894844382932212894697608457430387104584658024885678542367272297839976193787341523210250541544679358277058916211935118533442213817008664446373783812008015771817841623920637029597927035816027308306318066822137781573412402873400484131355293791758743541049654577554307278849867009397683575257290733158076708849733784690935318580506625857367119502796991458739512132579946643374093233383012001160520798393920559956029346993003287619024055819409094729110694156778572627548771874953343675484522587469602637327945194291084897387395258981649805126397026653397322448276628910012913991408820670092863762004462725597762809633600027666347672493881306795643493373351277651067404695398244933734380677951755230758541232101502872199080610928350796682320282735797508639741816493370690220522812750471563155970927318056555794541438923796073847907776785371690494570523147221706411322788247116892602532830352543129210155088494046209660857384739882140676263378691176084353068329010832991127990920245533734541080780939817564673519461120885843089735430351008047714688020538560313654591888399651588019218087432077098569906962103530707114424840229199307277745366267208978429703430382302286000147867797018931192541645383686794234755407399397717041245031382391037005330541705014852619924826210573582082140285481743418351663494544679219579155940564361240880213407113766389922457114683876881405092243535039940003558726444822749583892594664756888404944012509232101456827270605901873769009513512916553010416217711544110112262859926718612080963126135627527369687005703744752220816934533971736518383684227174646487127302883756709575750076326751469458578533025521278217787422475853586622529605185354564996302798285779541786358140009744563164645314852686019089286302594622930784265366594610969584669161369324666786997622479799567080238179740399345983662190852057765863254716095522516993704856403019711525947949927249268564741287113990888445550123780301932010478699145315615741911739331182110928797057049730846152419661346603650840816577299037262768054765868312533753379388254911002175801820466780824811135227681247356680633485627686933712004664378739348476216421883977020000502348162743107641465988882123097684963436431293362407039772502454836978798523359277060396080375017046989461375676139655939955229232424275692591745012864580184156559364140848506479123869840199050617768575891733749110170068145236685624526516338103016857519802465395336921790752470689510530208506726284328089043426281572710620884023630614639860771418592339662692935551883823200939358735966569203025360588605652782842387303444384095150701109850383618359743771023419716462091545333230087005265733861597604548060445475803941544480751037469458348719656372843951125350007537796466981238464156767410737810860484696632403314897982362552578940203346952722005352936392568226798882869952056125938218634123993765516483399722808540371730357574250677661139053919166749968867462290291912586055176080485786406750866094480587072564993102109068466722206034604359117015487465336690523410991949233827691668709296687955046869761312278374901293593675682179976242118914636551018962403354998682100658922220910185128952771855014914813242050966290281098487349557542252818996035604652235499744592037428765605394651752099050724204280162730125950241218084379954774230597658156214691140800596424883393663243181003592075455032232457846736378568007570448295078407592515390024169352283420717751771917383184890082087641818698199332456136769833919228344210874114587277111494903758673226645229479196539028740326713124273002368636016628207696904161060805463610857011975682672983035430012507613456893146470510852542858030760521694800475393950241862219105331484631367605496914698426602553207635428471073903333882398428070353525830799385060343076938576738887856829779983549548928159217200935409241014427844715526855881171250537833243905151527360297346277161305915447225736175441605698390288969359388989171523739189919370728048211044309700929355838556494259792178424164468789537272898336858550272820684922649798366331597902108083552443704475755027308045904154062857367145231236906136279054769578412747898217563997173135606570741095698232049971550588698755930112683284613067869997815805265301250966758142311637467861615082991438726761002931892693672887820472116083143759824849660976898062156843130439970642379933228299639174310197551162052399613006809603262029469698673761475034415613878592382904726729159713807745770241989234696881681873197109564619335420789854211536859882106128458844577167715736225424917811896916078369185903557048441257358177428968361912490550562605039675336652219066594203989592287989643954378286246944393453045745334932013494256560088224998710504966099089333375646930819624145159173822446056224060022790981833919438138183428372627569290756854081082403828372626100081812290859838386470870682525509531682374228522751805640950652601479256412065990257517988322299608278638489259367840095025278120620611895263709910393981326605332002905828373874039721548873605277858740928162360834576291228267229539407991910291857249487120853537713561820837374217347283186258717735170372482174027280216658051527110457721298955735364381311089923075019526016723286570282214522295322166115751576312199797154941444817963045759923270442561083955074283367971454802518239374268665118633148082484831241306080197460169297968008183992834400231272753319819587377087351452078027779354003700038083396829744507729833761081689342976094794998244992663082985234849723139394772531435781945688537611538103923788559818875431243242931677784011160022671531422790432120401745896839909524578069418783852748597422404412765957820202003536045466564583582518542005391240825614958306149035040541801799597201752303826303899881548536809667483661749472718759914536996875445427210966642206852279738948815213723501930957004485188216189310218412133188494838559085876199771072474122230910738840472019880346795173195628195998863041971510382988994656553290204918420047220033257703946786835291187011697246824000339948575457202516330576324964901785329612349383708211357933686274019772217717353315642718739796868170934924786298402463765515173506477590618329718922292648712841365624638649468837066699043962760328016210232816855970543665668685621441073078239962298235092608905188485991349290127641267408504204671824517717704715728930174588018540866772163726817853316074545278827527993568981582069682277811971958788663774479173094869669255960566534118441135764240018978174118447308186284315621819422830686595960158700477340361566809648238991805058047172473373755481578245929170789233897363547004465723628833571441647737171734500163422999828913068266161816791763731725294089402990919261949256981021455458745891618030845944383690533225327468579862170226243474494885043840143596829440231482794497566495063090169646027977775153038426121828089260979866108543832004167662869809259621666366430905906793081750484307501885358999976265207849759465148627928500080314582170305495432425846741636194842533927945773573908208547817252214295217137061722038378829154053119673546188713588107448128751689199617087155777093056339398801380210085045529991505264963270385153685150108881009065677325148466667183867051946137059903918692160464682523011942328818111392887434678053428058559480473264776550009819024133208645540350589229761862323566300127753476766512468622750840563777540975005824815714589664789697698562541217107485343538360173546301051730072986426203043356939934525474970634884646414355038024490205507081515297342682988168075241302438850999234772373446212804621369704059460589311134216083454178574553759900467843812900447764644826882950116838700947734778307048362440282148743879787233387811071509124522961762337252266274233299179507002344268385761009670946242171296397741630748315568912303585547764146941577205576501633402032137804260816831387031167543022302771151760518887740630594274806223744109791042483225552830167147138739102520351716830134007929941902311210927134311373580436562866173977660454197911240784427213358701092429624154172513354088841227576181192772758006830295912130685406568437591541108008641791506144676932954971393192956815189004897522100012273136667650339306157017498124300592693409331669634746707188953557042466931030562718780899961451482843198382884823805254913324050961200987816344012349862460260961194736189759873196872660061542608084045817415630930263057406203616379795407628079397127369479224244240099343969517427067807174501165310267001140677740562768974439622321946735397766108520647699796143298758477678312457244530371794793769255848007449398712105738851332737045187546382091354367032864371555127609980160234022800527679687756386898003071233527945501566838088264689889821163320133555893514140446719793554137095552988974122623869331493395109678913421156610699987011782964008789396562902291327432382069289156348004295644640980566927465734133887790466868874577132458233044284211691003903628524647270333976574238324749333702052264063960096440131240373702981852065280873517239366584720086234926376512182720747140480196417689585237480679189856076561256604839257468307054988912285816484998745407859906892791959086779134725478914921826030612592049779930737506268401974481901677047802183989114480305629634301492212801593937959614358898168347488112574505314431871559919847519132091869856652464741679052083701424209535619575091824823803592642677668855601737257887649223217955426161287038559252399753783662775333024894175907960465645101682249746994778237433660012809491533632672776262120079511897853700901969791230486056221366775508926487346543928311348455385152169612233992129222059065187205339608440055198280499104769205327055872803455418085961906161824294727742445808628027414011225001451985651668064024859868965305384492141005704123205386915646472139675576280606644139005478830340586776482289864287897547297580159530280125448321466249272875754272751360345496641948157742543339668773486516745317066828171812345348153523102421472077646187364002624969378391053140860511431137648748520986281578355255459379882259092318636291813332415240834939034864326764619467159247973022856098401959351481271474757449784634009058790536027855987868029028653822423235097597331700844728370300382739464121660234725712501730597104421055995852621882979342716138515438672569956011057736814997246381645021819723369509520218030984947694122926100100498230975155894317735606048676888455749250543412538795078840860043846936004812352664943007819789403389407422282473677380909288917255551104443940643708967183055616832000208082018662499654482051632982329304598035944633141863277270248579317059663636930940411852049071807451512015315446548550388527536215487435731256861591944112959433484773130165716086092764730865808978604033274201865344608271850937884184068155216573383004858141434894786536207884518310442888749514068628210118306604307870489124404790254747551330653691114271341726280726645261476704477766154621284554857767222354490253803713104194096338827934674716940059668503864845817843551647224020877341930287654174556701605127427771632662961479345257075592692444249338491745258882006822869203141719441204969465161993041898882408792689396106431015029777671376884188537993744571336174786844377197523770480654897625849411143768638017034062044105829893991463692284370555586126468173629045570008942291712779439594112340433009618826504560531476533526727360962486677392711552744774982896527805833348603508064455592684762860012147701057959618234478343495232728838994500389502108541361010641915511011172866768797019682569055352482081545276897876398433494583655277707944783826991387459768209578492637007956384087821054749072223661885889966421092681071992590841878926604856625732368612107543324485872131555604686051843125476729101925238480414408798357814298326483443285405513987995639261889622360459423349882484443276304485577218957662173215326294530212959604209204501364513155916911243037486876696910263200614980012779476653973172731333563174512191809711692980271615862396307500404310875404612406777733278782766821852260347584712936189559532581614310732530237753607138803787239855399064383441146236357078748911453672201851408378979383335488355369373002220272961889678942844510187471548255575129212052327082009993991535464813682162795829457651781015742393465598649564993637728168208697272971600395025523012454498537491082380873130723765264933057408083165047486860053072966607698752639524452214466856626677981516489070216526422256004393638156185616737367928154545312906026370512562891128500679609179556148303993542473502765083307283856804335506449375728408788134491723925163570189204431793021430636117247846247227198194706347385659006023035688321060739876543549587708244233805516424196386608746453943609939073064954842440903800102236095989641452640010038975617768511066642540136464708501395129468614268753675764959135267206350020556987800770998358550101593342092601802794128916208221616144453429302648924303827566327844478341723877326971217514387321102168999041850151866231210458680336564793728242957660639888781621631056891537183128597142178423300670990087362679452336043113337270979345722486540597499084483792168335399047120318883215066886917244524495887733148792658696919019977446189042924551942857850709959647693627604019361733760182630613141573603675809139333480836384749276736604955513743224715658922632020723898701046858550890338050830303999515876368676622058439547473910545794525795762903966674217610927638155182992835022856120264140515873573090355914380159816236051223619726228552609589131390143581862971252139466540924070626108685976537180342299841917374926454493667153997059336577418917772174399836020850599002082768467088758979393471481552082982771079183725908203048721789181755064157369666367630597136209748621601400557736525458183112156888128960768581257625469177353470647154804503992484713422982217378131924596743888636609363120820702483983385497602760746898511873491266742947207047340678264904052652677898433237222222900096788327475258446445342930169643183753045836971871381514066341041093099311572551047487457973477525845054478501980193201959070424653108916045416787393725748227443508606078192218946976632583306356058003497027859538356883836756899889061623740861110011390305871461014688998291441852649217368891955045188959106298570905065623248819798364429499900719664216081089478962102613062924234695349786051595388354678670821592894655498667927503975831356349061861947909825482594554516535688101612494119974471928287489253178148229846336521472183334702217428274846584050719924331228606138765212506972113257249033249281623819675827723031587237359498286379518165494745388853984951816262177448366834092998830767085444708181006958992137131312588185826441825976387703238318794946308099665533698864827747161147719569594413644654021463769761521558814685704534651868500970740796421054827863071065934965160986080428299901544946153288911335121190471004645482584675615186063912853396764297732840163393581950532520992594522508976414331913246541746966583490847330898236605946431495511147448378667463754321653585045079307997909448330117397122893311153125582399710683346838306746695572379561908992796380717844625912349461417197506936964642873430655980681096994388689492967659010547612036771216569265539647628286283720112201597668035060494809260399638915571911667620778935453532948595169177915418380451185638246262657748718117149441511029835894793025402682411037983139345544198944961218012405244990161860924289632279007246429625758985894865014362003505361801470354893024714325227884983205983909879046918680314697591270306489931247785027288084090231237922917132210411810779272951809640561915238433581184812085493981096989724850620568068324168070554620721537443045777070427531279935774581900602550652747321484482874268547233679290911230658379355361871992493412431645174607304497224157397356384122138084176369942142003022137674589799554789747378800853357395611610884166055594572648195489237038642801431919851167633727079907082058895822019932076343564522697171150533011634575543208810152913293215844134164166647641254579320235190861796036371746873242346001936932485475206797303431070068250645841151417768170890764624048092876173101079232824898644176813921276440034058644973439881021520060271407415854750975258114310323623927522338849198218987944741588759076726151543093726041234112753126149582054038406555175052700165080001275613296388228830986535483132421429297057270200626687639628495011014832653457850463140980265535804022148500141476649390010236710686753791428655222696071727811409734970526974091223559297313423239999282194061892474629855830134926284079071556870680237765330913604404700105628162416322441825539815160575953418505464938112333074601879378651237636755685706463697614839649252036994589538679434745588400630719112009872456796824792498014929776757213744451586282946444327602632297657840560456562451011740891642563700677034978161780768415478190217792008343362447871295185746897795757002008645242681848502348380393866184463153056824766621138584831702674322133587927656702758870983001031439771369630551848914270810296154373403588952540381296477885112088453486929111492858507060690350738599299903628636151064904760015658526312177754297182112466480388524986350628079653716781552877590047973937375532195991435137419066310350948694155019674676730979130012961621519752083104827518417138734384088005695426339888886994558104989968571095274218523821271473691569560014602911867552628415859626563371267406526055493601562984934855225908203199198076284560257650104415880432032546083591314853228399299853448499363273499099248292838211180327010232946806516420381035528469419414278316687633924647838051051377889346022892864498170553460441222834079207981280162373105659106434182077222295961321726539595749661594364887075870628252815706365109885092524557032663013408298473208813031600140775337914630262446070356547387930846720265894162256646458826933431697439441954494485479377835162624285341752139076494443964431732763887362676945280042573936573150935563315554769840818174547655273770608844914239166913945931389966483346710096168042045754487706952213819971712137623434172919513268758482668368712601046589719507428810212404089547451830789762855110563086899127666054484210195154896531955825436277388201185916875545961302698315979694528616655121144473874654809609147336628749215191871326999105100167423913353430229755726232506182020389593140167156325336060040618719889288134658041426097457894380432137650134185332518144493942657138308761213807115328729863201540303241085188577856162951990501230107626094790655299729468604017464765306692713202965265444506601218981864550375596902407864221574418224655962544763405637758209753561206013884987658663115778250074349185496619852821854334629597582079283671295861315387452507057219250523819361421010865117207438516371934663162486597435868407462043157969540417117508212437842302407141504600732941009279803210777751962845092074157579250737593425195563933657899054822135460618217099487362996999301482698026335996076309091423912311324986512802250683693916848542650820070294261135933918673809294824469186242077334818112853403867098263845123897986472200991411201169720380338556374243451191189249118890500159935436936092087575352376552973235833482029085272373294665525606457380839579384131736265421174768104698774201984073838689184078116887323985748430811743717288808431084181113593489875923397660494277723488152169456201316369337977923945596999749534535998671778081126272752788390750225866163159885522799798792196814074532459370557626812967106139500408629922673577995029411234453556737385867786745403144719769049353151413222869173676996336291432447297204269253207479536517650279222174391507600170165739167283927319854867734601637639844336641724651801342211608995320393622451867306162317358052565048715295791582656647815083277285989248838386397577233659756838181815713707442519101732192242658043329911833438009160923848569773218300697533311925370795770954627489520246408282376822156894564322346152204500116655282946814619828183870629700048279332645346646890855992654496441518941060759468306884559386099349029929516328595629916031010965163262059359358850105080547832631605130214408846105357578849316339383131072362418703925247634440297942720676621515304598427105548453198170952084180426290363674576449629383143756779546959019858149064552755412442970107578337410134594111598786136168277622413625375081914247579890469911033075176623811797704844048015418244335697440661146878529362137817009129718489750322686606919644460093975890562223450218892980655933365342575001186804958966121689567935958815299957691323520775464278153354343846080896575270627595025146463321429955348696974153388948823704236370344782911679643845429756695756156000856398789786304188305600156271501654432690646482617962529325458929560769406115165956319983527017148342817146220608043232827870628037457021951636053592477397599215086128430869246708536438375941291304115097313217430137438678623447086367886406973814107614203234599967967428393764585396274468244028542772354090494337604266038875076645429450469448831313493012460267899551491373771526552425406168280617754774142582222759250718157579635548008030496557277215701918325088885048743384434003566262229065487484041615591930746039110501777861431558946113982386759352045787612228506409044026557277654726570503329486947530606796777714887080306147609372469636714187420093189864143119572188604185815211497325984326155250617071142368022245926621884449007834464898675668695294127392325524225050075497447556804012581782951795035904666454837691534364647313172392161730162130076640652513497005672318949045578895249766468448226930513541015473228875532203477879123938244887836638437275219108462850303275852938470645741615401441387858460180012571609021497870759368249378236207030834213367651030073975382848336663633428493982189238558185465010313908077669918637684441254770045440024995143087365982504429157325140205023128460860484523604965819830519227239765367420612284378673433836737749933583301511115332611990706348607903596138623600956930909360447502086763716550889188315277851394990617039784707491153165537751872408731081693315572863786044121415013029802267487959718014181988490749694001617246407882801941480538985362609873407398550772262387946667692997839394076474409287685600284627933618702599204944282438695157616940855593215085200277359206754263047236585257910549082540186975972925957878141664133767507338525979362220165214887715390539321041805246160829509319028722914002152053567049078688674448635165788082092248492652698151671260908672519753171551461967619777622009192473624036855199821286339675009363305459027107225287856814404222934739782483269251619318140537486831173685570099683112507998182839731243424661256110503800524666742693660546114061062700961271898793308245608587748232218195155510577844236998239828375216149067533274737252545935203232592148722906244035418480274938905045259136125406986096024632130944053253899936772030100632142946948483843006024282501557012092294687251082501920330155622515402781691782237265946761741592333486245615975066154686686729470273889879126347625111886831773296478482740322849077206660990546309455012054985940014259226638708364668848039385659685896653845424076785345820928735191420251947371630026195880063105286943427373529377686872032754635385255370016751861706660425049942014640527747480979045985744124713387055919138065247215841726396251881023951342294352445546370306811432653358759768452290172579401309067644670856917753490996534487974136052860227384363777055577213275945052151791723450932442678900109539267932377231394384282644711101750802929904422756670747641892855391369339469157116136361124874821406310240002574258387999621674953219476202305238928092581934437933245589054988011711917028708951414876604973518431966920197427360383387360457549483256493804615657244793978418049070755437710466280036318422738458276883824955165334379309123282809573830042139239616287095043090116545704998426968016205753217825642854038656246143115935525176863033299916171457789098850839745548780902684440472969132831282322960633328433680623915301590908027710318101299870313360455179531518008297199484851222700790456433069283486859516049807912300026465976109090452730607749618140151890004389044600075710154096646639358183694337112974269245956036860287992016740185557877045353272201798062537480262693417977885438936367737734626279230326912644105969859778546197930264241714760070815481629107499551551161620064479610265184558598352347277740964133301993823724994207449273656809638584675131685397781330803243182942914420440662036257446288804252307352834631923221363714055006193935387401845612355670556292263810502550187836260587061472972145057214330541645383685905343216312804810682088088779570808862786030460563183617415636714927032284858934095042979336446298026131209869604411072297122908101317895191656152365527910395490567312224909721579944754758978203675351728058749064449200478468343089257207223416095580168651720316955536863433168377565324305355028508369960853634172981747744870984805972434598376006105888132662352295599809105714827772812867061031416052749382105724593506625369482285595643992705445700176026115045479408519391424382126107026404483718835524819485359209885030655040404822131648332252621882800744880632634151662517411581592928501048543039540587865204196168360347529034109275347855522444926253636926372126472982091994252479561137214347101320901903493860568105927573941017668579581086268473429018602535395964573181326903305979158229754981183620160284494658570076283011964363214230190782384087318335707858782753454677682919324636540495205839461620646578420829226472264853199921275397750933938344560074117429447811687296518347450932383360207546936527138302650759142077092680937012018553317056940584176190755722223861160182835841485413524439693407044709563868187719036273244684501341712817733011902885128024603415249038141499396494108206150999121053885166922834809056105304288699251101350119701584120805451804060692959803480425407959963609378909242231625441468774329759374012031783876776891488214201108759705970250856059008250093807645122558119565301775280791909647539049708111232382134816593996214569517709199147206341646041948481504847361239744997679942332065017063587938787090924955444278986051326642194267188910634991251009112349331753532271322183232505566323935617969964462147460438960457204135465921804020489802167671417870690333902774058593958547272649274537543051646125470299847279422366457084844573351292662737244023889103309191244779506424584672806753738086155729064934655075141231835010989493388276147156979783847270059444154934167659185818141019637646971726167015565644032019228287558845222025612974645191580945854076842602855201094853152108520893052202973604831165468190504860384732617015665652941031332184159372016176922081382469822729530875005021421106531287528696815313500654790121489746281615789944069903016405624152012051920088851489587415274549639549008345840532579367398537823272742279797022608336773233929304662335142276678916311383754129941450899317077093323402285144038112417659411045982510056448073336318896667508464768431775150826701855310436305550939621988232142206876326180841023423243346008334128035957537711759434025006313797125404321706592255612197318230831302788610578325824380809340092638473007370778074288507395428263603553493994672475070412402763711018870882969932762073263544531107575870146454704655995750263625676860966977859299596562466136179426547571293411577873490845260535604965175200842216786743097705250642317114373678957271071049034270448616798271558845175927039895812128333391321880980384192954665931104802711979317229572629796455627091656477973161626142590640773891182781447131073596820278144797949907760930214135943115572447027238107193557729538543367370502043186498122325424381458155171653197262075337835125264997817930062187464358467951182582784509653601059606469563755836855658664287987468133608856435286834020933238167426033814337043077582759567664788866349282987570842934605206566189259379037006173726820499907531755317653711253543210421920814341914042355412983512966194780944919194840855401926904594630377467909601055066562293573377749902088290912652002259105003044753380591903513809587941144388713102311523809696082676826892908330168636154581464550922534893829257221335740288299475113249831149803659212186693724341428777955148113675442564159631940554464789631122750879239182013254470365875737898062859196271556577128013986376471329240272818915445949290536948347126685430228209193298932140982522643097336861592945063477264102990675256787711087440815091452109502760713254587190512863882129105990603617906549169891782278917501024508788941050147187153042434931171818095204017486426499842273390662804317133203451171423247198638129283493230628723757441049470661689570200817874046551180059839279680299235384693037814536590792847668487947159549848589436338995610639810215913014288606370637690614277961437647128147469073579216185541630353685942458065683873917414084437217126143753376828824138737157170641651868007619738247881644763249295134830697082822597389510411030255952636040624730573983348888160188117559966702000933676283590924505407207482141265761831073154659541587513537214397590223413104561191373657321000731202573591252066637118365995312591632053714852511421748656751581424176362132143537419164345592170498991357398088752565937133938400783704255811170023011634896044047002811563609574895989769217195699945964988011384413014255498511252653940528840918026185955405531465858219087088722754824211722001880919800678998541774711566506641792907111051664290911336637822774041431609352382421948206181774573274115511804729501808590785617235179379071410583845725767043236251947012804005337480166511127576059730409019739638500415743132921612656986123033487835296968098921080606899146393013075421074090328576200542706784780104725647471136291695713912117518461596514336316239236510143501646599787924742226327835596329382965377505493904595581641147747346368128675552431827951734600476052112907671794554434389151609665743626302395229208561236492735887605998465522853547401718104038732977095066739176213826198985482567130539590277087714852949109748267795233999946968979487736615097952161543053419051896741926235222326453751399948353346718948640756659167883112869534643295262273191281447581543921457763986962216616029375915843858872375702671624234708102226486595206808360782631049055702479496242973723494667177079690268996753202199960302811489972266313797632029419082721911037717687121361136148309317062318010937163561808120639561367597389636511410758631251735664115334193585457266614037853952901442103200258349498457541482450146194117260814573171872750422108980271861390070157506328058001375523979769270311503304755039177837126117228262495905058185838140215464879692359670785849032580761241519431796971219597381918029655424870709021001521297073995667127640304906911161439695623396262757102461758493775714294714183142500493940964110098890729468494366838953199439668211185186267702820632409703570761205704582587730650906488567070740554803557427468471174005807135700776133578176641335802415709570159065923592799111972594143911835070260071277027685113053307034624437357478967158922932742941233727608113640945880861105355502383049710434533601155082367907710987523410262963312866842973618966747894070668415895290304690898934793031540789544442134997891368298285974101203333191508266435094761363986531617513945617370299867912915537958702513900049520604704011346034609967773070574739946456369857960015342541751294351585678140973556973400099412437775668557152316905351720125182232298785064608043408103269831967883576572849277730907681992953741965808056721156632631304267530690122614415087274762545740570372507019630748409065843063183871734043348683760435553935212682700445774839675269315516417884749607267878656621494197791957282076690298922133758167946089033034971889877231136697433962690495225360626704938834799685113682683250388683301994482422493240140551475767286947966479043292527128636776833203659617113449543571570171953155877546448239224449482471523595250171401743026757818973408349758743609905760851189616900869971271797618175310437768762294820150490404354721197136291547132544717685721262526194794517236786083884538760021957089179443353823543864718915841778898943578982915338440409699254145405365846986907660295967601999682548716207258085921333379872776256459851289768242550169764942424724947743615212309291774805171049449554714742820731919717936754581851514386529102310550162756450359078970576264677358916292782622733390137573014108231345474739749234555360779442808684732807067549977028335104789029348730226779387647115738609131009469541333256491800117520310308943179875915879784572253518535151298650815837687756184355666283658300642276555341572627873826267945939747874797209701264524522433954122341563543645405433650617425405355998335336060029838316096132863228301629881232946171546326807190458531939108990733321091182139988767413673997620593201347444624915803493508784104552670538696159509104097503972747337240486562623742953206919489594830873189931579534210259875671936414267168924211973322719615587818409936000635774567151530172018316886608981169127890410839535731837872704582351555748011571595036985506811658655782215904934804825661035717084263330031153294105411312303765723336502868815558795410205633359833818136696045720219040887151226759183534754539503387595942481093727978892939625981629343882403205022966871810662439651427943084226845896626037637144751782572685875227832802524758236013666591986990590867831232707784774786040054401545892197203705125431695378917480776262477426906477015767884356326129014824010606982529779822101894689833030145958660771706478222022311417222262892234651835238523554367167280862606669861310033374638657637770376335261988132095062796735070312951534323638221957070993628109860207478613833806773316453398728944550565469482305499412963939420945650191432266565546927648737746957410103952780143526400700880489530783930287760097051501578992568024332153135917571797623835700731852595045299775999167051332671476367293395933231805553517156606088590169465360010442073542294572983752706668066203356658993838230068658864032126867309207404691681415684123672449406843904932464621376635670649509031543348571254114303379834339259083276166428247444400808768338079440639837132266572218187351636105598082149500346862906318372039220691933302923267930152425833135230926780839912980589720435687558737671267613130293568963351553996792613553989485858417359105444514974079406328115032620834154844343250451338146711356009558199746517934751055985477638121928901184656306197361425208384308548529505015358033310036885479298088970988693930033570532135222064386559468892703108289870705345059550341560854536680071058627047557831451946139519142773971166584389253953365238778126125328519569092696899335504698132718336345334003789196193706781800743029521362325344469438225262877994227101041450061705023266238959751429355084392727483912223925761287148185094952850755425813438484441587198440841071803659411213806043305150386193777330039311070663995930837223242806504074339414468291997879328483727482323720503387431745493387850511956145338838195652182700781143119283315035319211187408605665676301021673427543319604906769772051873270634903719732934229186163413223742035088831204359335222197392616008182107384920392320960162211749272774605484403111592422236443508942141568854741709570834528715307463521147154170210418537371252603581992636885766657829077335820253541827582804525820579490322196460011818809769879494327741804632447082630434348485827025289276772850339870801825426657091142796480457859674346951315108876413745787939702218821434747323441561318958966068142614477984393406196238835004602466939079853830642570563048520478475797564941160116497087529770882715261553534323028607306819888930748560425456672737735597306535915420456833225180701480442770989323253847407721682210008941061232771817895115543822021395980008310525165906005554398663012301673359966733069873983620296103808239133942132955701937843557382312725491432724180692579246490693926857124594616547889880640797662861886436702899034157858072166453267164820032165240274436949735727048399884588296312732468989916544923670531358738589510638745675716393829793669218829047049109250253753123809419533536127620885618601127417024908488061422825278862516747061755573770685558172366476841631766588632067978888886326171853905641664148208024954332184915683716114575918335838396480676987814364397300649254403677447650294473587778606694681097182250794497384954887526732607252177902219551298392749774649311409287389952604055912055741452669427442010345441136031698209080040627038119826827070976512680770394067871929802933895514589763368954029735104296863062607989042157443271454952519171888902149927747957766752914259869002810594458471983441091258469604062830554516909828046901891456491788375098007563224652486592470814710951288016000690817310649753901998520937841754678234595648346538786368014986364761175705640443764034653982243536849431186535477888826208566960531413802896749769544622723893399830457306142828708977894318012093376148764719400395392920374924757888848938344162230972035682741451261009952502922689348457867686926490141939769992479104990990092528877633862168597052175019782714614985621545680053923201374513924413122265608904860952960010023618658582488383918667516063533393851879715274670331062712205968514934585467908546363495432302429824538974992351507779369471751398581668989963633389848944314156076412250374213464283817977757362835885327227521596429450341185880551834728340802812277540024322753209223245520117983110125351774446600896534932656669430183958633118865620470008602339971060505396598641850096642402766333642530879300087033967557592628585918766162922711886437617717589457485993176086987855142240889864867233931529263708423059210478525211783960017542599075393618325258069131422709841187306258459597650705983342551170571324005403762220895163681749543440182030285958601568733003541733903442103684880501768688435420552675387358103945261710847182373377293208742982447626059459967301971328840635678425305260332318546783690540855183533031542080014843797555787333280196069507251019633585748151136803808851662600890259414101395852421265463916281660920702362151708977972065505060220251690024544328845033007655039335814351067720034822726557750297131785681796597560074957035173936750531841068762852868139677267894445175657548369152889417738474092206875364212215930992082166271431254572886226149457050624193186253268285224741557942552663477646580366504505528103786144723738224183915613939665771451604030180232468661138178847065372999014482327095768380553240310268696156886264575997578424004844116741455839025698100352845533199706906285224584878206777582174590364587186753569043696420562711518771880196987351642308628090651331565927890899374307610424827676456762275884540221375331847188863067318790444772407725509123837138201810876324255022578304863017212600032927451452343929467059063580107985991380086852192156804472019725508093501844095905073384473117108581619940399120467946625869983274568568827635733779599661081687346243865620434996998640290123134102221915008743005478544465499388477569831484095424117989873412947195872613565289790794465464926268572197062324701036296456104686517062155797176451230412089720150517470855047494818899440310527794356412972595208890778504285259797827177110290949613035361273846166516621048744544508583487763023421522200582323013555452770612333970765189599034556070178177224478451649637807104880117008253080483990022224958387874779167947929028261741519215181269424646448759851420423603443735801314154534266533619126486591699107485778380491572816823553272790770316367490236514095241528692138737170254709951469063305294298295674907734840956702649747295546623021282423405602317278767555166878884638758629207773469508637780779398617102416818248770404626865740198568465374013796448655572783272172577714059429262222959771660221556105591389693822085461647435309806756266117569543495459705763409400381232528667077025131923832022911768063545649345207688264645290143998042253474409084226047847124578785388391977349163665158397754693076409349297784036641038150861471785081013669103755611084074042514919608012303103532601754120423422549060470328626835058666354152471899552284795445172898757225163598689138694162210669004210707861995603577434832276561626252368983867172356429763727054286836090014328081019235809470695712731380050344685075023005625004231681020404444497254880711732513673233111318548711469797643860288618048945871096684984273943878121595478905095515977746452208812096784442852342802179718906629018466702663084928712336445845595648200791966744722781166129751995766510370182412024130872700977384691810651902139007155507435963995724569500426011634447009090975228173971790542044369000133972985033633733007134265903638212258043741403543664341928197661604054764088377462478967403994343572583390101969769908866933784352524746226089348632388474036696987723738804419919608661686007717167284640906233409402470586697808210842853632304557150189967067076675553540562462197310357424411668282770962100771987967713460217261095893979491797157996821156707040917695084654431870279050875785400208206373736192215936607411892967433956240069919285857612550697762826072928471214454121826239899583469170827337703748946779227110047965575203800502433441719457463465594117882713026354259096217579822380383754226725915805522740140521898083763339162063504793691910772739319990805416350886886963059746981371763371259529589273323873007143060229385604422458765269317877592813521139310043475785030974837861354340976216564154561033063460574991528434769474068852320323604118157767151175141068329212326809459935202660779083409204664842640409321554210918489245805184011158918068949125537728900132531496694212239258051933681649152359275229751319254016574698056818001113585285555051978264313235265934959138825936358157788312186255078547165032411120945756521028606577868245965947406575937164015554852258989593457276796977223298422199542723189364759851026201212922776824461302287716708106138185728053132191326585524837937263427322637444177466413588788859540476820944560392064546924087875891978883042209642638006884462442727982888530465087481924429786506858189041152146027692867563323857003546269931009501161065424262039025973931217972193878657061369077309114238494813858526741196204046290679680768318169492616768260924738914095130163592378506025406889794057873053066656524201776700168925776454652033481619706275808459271905864113865782491683660175279488173973450160352887847342877986365637783592206290774560419717536595185356879998422060165986314044626840308810375107235260633979858625168921645659461918004981786872153836846898709916570529984518082794950505195654811609485875132083708146078244766795078068556910094997945298418384279010043704230433067565579779097969639283466731575634100671932556443086149205205133624119402190041928842130411452305178563002996459925150156155498414207630228116409757832218108826203736815425905308423496748105215483216484991929983287097609311232413338634648397017099710706980795871444667053671032906428662813954995614981364149815970084098470354754880239290658617462218598711245384492460751966518272642725173090901241952525883957534774802711330957011028052662972607665706398466249061869349152796028684151621716273603346705741503023852330417635005579526958728820658377585542932769924052482277978600906670099017133973374141773492408538411639246754576048163973058839149497990688650217408135801086420358701852762718131628274479726108382880138919314014221370127283482719182217315595253699246093363769940373201175943530833125172212021914594465581958752580333098091382090127473937046813493504338140647906324212403268704963915036429326833815197381868640827552741528640726577101390394794102198302856063040894972855379289322622029062802687911995649982598723667843270605217843432335766666835063454919368873034044526857153392545717561691334045698550520443588578171698853783332040693294895326108679397715468358949483018019311866728632879740876387587597528412931615441690178462669721949234196943121796160952569875638592620229754261663039831594638003203630631441529928727630917393195918208409411613061300119921384474321577989733170686196123602312014710727505285939694656899711308346618598730305813983082766911945244574990173304226602844284387563816922776084208372966283656687169549780780524818432490322086524209919122644113520894701385483206900543794199956621070835714016121345338810132756889213981927798468570171502557155547574419102075388293467286482181801272183107395774393390300445266072521059832497635812720365237568372618178376906807009326008451539586596658052094972218581925692758103830454898138643854952597989437246249898844434916372851528630943369317319148035810307394249749565354669686831627431515435680431322445430734053086862336324726735314710499678322705098668925225645561909930876880516692433725053531268849251261191565990579899118042142664655033761611031062116073714299548695416213738682410041719016740238456639147125315910159637600850320943793080269942871516904732773036852685072388931115467755249398365322902524053488211953209412054299915819147603037649633008392216795184111009686747158310040670727215137926256402476920974459621781065632271234536046865420012516956348762137623094271364723888192533684143940967457533522658959643066009140182712196464744718630992043946880970750717210206293986456648420966426368594827011339867896148656982939637134031212711567237045068318021332235643544868472875157530336643791404207046690004201838863004536577857800689596874933047950680584693266621184040006183533431495319329971841713532362433933765563859271743199085947037978625359405726289190617827371223185711133314607664908001649650676337726483863940910065221801145636590729854523489570274314835631420971883342188647042427722795250912351571791494245050263012268222442607918771114845992312672376976580714841124127007008406875350386931558263508481590635621253849030061919876516105500277997325986610996621960730844222504885277335280749957459890784507240664458465925330563157097955909491530073861115401996853992684255422076599772913303301331791323375840363099045536251060073771836047047992750159576743039337253720885443512879855293374885895505026401681069274130960980357294062095436944306617494879336533271927239084992027403446557808638241771817191102474604213142934964899823841655769662115000159108636760630774671537454689630126696128417970260608408346274946701899626690320223706870779063896062698429723699746963893116871005850197697824442055862844773058837522319573168596987957443150803487343922663995770415993065099101194203470088694929996106873990020918148556189331615312401335755661257501637535389840217248204910208943896614982139984828021283172670655728683817574756673655792351394505260035230973542630674174993015128691432168763488880203591140626404661432539471520772534243689475000653852241348567367688888909176826287195090948043232656865943180750009408903418971537423779850912302414355061668331633533389818974523846373093728721568752419896514434698682898609409796285184165131681164525697345061277022442447025722642469270726554839701228053165958819335986126948701858318243374164541481108029407923741936891212785081120943392021410911599914926559669746931007860248569414845510687495946016654823069942747276674734608828526176369221874555425462922190673939009909334183444598194921834002786720940431997661955344375327033714394280827355880515124856763516193384666290619403543121137670107686385946630575113327902480060122830422637428615444755114343519974733528175979482735274165882936402891844472026574432341729608164091198484509834813440446227016980458494269862771391777707162929320285143554751637931531198173832789120528708145704578445705980311552874851214820101413972260121477434831192434316554335460163123841102563989026898115319791139144107317438679456086030774480593204014271721265132470511281902139279070839001901818395313993235897481791865903550825765014293672146918930115875828024135974136503095258763007793589950428718226056657775204561253962947034273686854622700239099442040183685525728578077347852507458692553325327349131296481545746065122253013838712349816687996372473241028486787413822291982181887517475733893152291241224416619567336893807590053687149816022353904583480365753305071380940130703898763891910908661085049433767136231281976177584238425301615823612974570124250203905538994888552684652340930235740691216843735010293880895569870744464425022883281253613962263190528142654054096559235708606882877012282426151395328739009731585194274454783008596048324286923512225859038682934385746367212975308565502418710367583916063542265301873328685608718986399184880860242557325954478976256251469971280270984081592753786614996246750246635931836865192589304347440029059423553369545968031773762914725948428633858799565868864464483397554369813115835837198021120045506786081601060726349062323765986912493319770987951841836112548825092681589144320344282810156146448798705337423582659441075932023482075773044108286002676983387763528278437097185269999047474653925671560269442166031910583687031828265714170971849193459315452071476925051230169552962058891703127101651301223499420061161452910675030650331105735724054687700454104338284434111911875782339039900050744012600300576985543661575345333192982709449713802352977085950715384101937128503446017658058150644348489112803063432157602684809507080488390799120342912690701355701099777925334940820120544942330422187805646172961008139396554799652935011311205335141797754967876524420623962191510681152987837799988779430016623368987055070907677848858236964913723777644423782893965617004457172852039319071139130029847381539202321305437199931178079667668997120537723702677777604699702113994426655346338540468385686062088496714475457570119848797084636189451260193688062809144975264607287832398244858115578405068033734254167341277184474700932558180953153958236163729139047548459349610163018280604546749762388937009843898281863119884014214762596461385359279362667062175090222547193768287537374611028941498637985589991596988679832086040858191164155115504064963849761548599499586173039716263297428561389793049319264984362294465400428520392223595607224143573049810041120055162256051215421198425807595761110103581311729187332377680101914356024839219467605404504527325471224332002775772051668007360418420580972837567030739803472894084602480683355465221500672731200580257552986772239404310292419914991552224530140843962029364240383374636855057995476399609051630337241451500724594794080289606808801450519957093944811192515561681804372503066803025461819079337495387230563942430649747003215072018157063054962071125758469785177590277059611968092840945438140054008119362244330226634689417528202640904212857009199856786001129168584150484893040392222305412883544133819845616883523452619917129929520743975421879999975799096729785928040770938233164757637254241574419797438295962235392854205540342546616626573861687476130809647282259149374167799904359292750857979478343480868382363108463669109906906273029821317074506469182771838150868999479826258056047167555627958918877365839422802223808526420265697955718192135660265054074766581545329254354951593379582771129741426591383116604187516809242904504286758500260221850692803663154197631803208177069945764700981387958224964116417267137443859058642649040102863694821968073864296957925766636416608732471085847867300467702665218295621355925401742272826885100361655883787628824234341959649996193061133726445790844895520509241594085862868213240485801368330171302033975046253501024510128897628501946245431028699563168631822499544593448514236798613589691697620793189468350164187150148062419580437084207803305157414056775540179211232850922493034412169669429447356207275378068137194711456871002791383029974548341361255432678700423314703850307788911307706141131100357941668314317992922346827870103745789330033876641807382016266275528918861546887037554938359121768435929424732465140706570243138075626636880132729233601680839162043741200424403109479447611405631025478582443038718342182323304151884239722093290980451285633686310227293192041384660700481454864504892589933617524019296218961286657570842687618333297212404154629191554199781359368182561981807177858993304690711657477689125839461356797791439381958692534309391364019629409200581613063927120793284254565565603369042245815258230582705985251796266240360248875742520651582672669243202183331900687444580332223536571674147805429089677322464492684277594497841732140645564057954653562706495603756763546774157179143136700797545033610188063394304479076693463866749932604362149928315111983661591434694967645072551444287005784626145109493624154088023819501613328355687069063553640236436458111260700123232566001212723057985255688088095673320240261579594814469423574827595094043153638059632320572940907353075691936084576871910978720618100904270898291222993170256603782959301636079059372635196733026131860155049071557678749060225051903477228436726684722045880229307121149721419587425040358873335994151369154328855541578859643678078872288521293660404269103284397118784476090133345272220776898188098397753797510757962466002177951818615733133742286285925757132769309732085521163565913146782897016364860567948522014564471116780281040065167823676267353872290116076477121763618338852421417111433981373375789991701465680831068962308905649574530560596389762498271982166290724125247248336924730057103085741381117516071581976484591614889635164523057087764869002303038372696727710405470631298436934239733619025570991840488647848755194135012223543010949012264587931888151883352719098199660650554539728602744367417304829493655486871834646837736887752472096331363044229311997370626268390204122186669553907102319118871397512152035594319199559058514458370995589087534699116554549765399406150636695208375810486922132768302839308336956573429610012809504402701926011609763270072111238427674244651313488129144795077201138873292338019876342216707663013295951471391886047341824129618172981062182970055403044672082483715622832397833916567966558220957446587123627743341357837427131418984822626229685282121357279757763083841030567408354463253233374191013100239783424986166968223558723615504880715608432359621218997521157576366503334159857505814799205744782297622702766558763898584099463622484430003547618516925287261642205425585755705099701338896892384048136258799313941202513384547239466204204631591881124329851837213359564987967273439513660237207017426819138808325336479241955929002802408361381293700890374436584616494498037132298023543913395683081275716605216278847899451278908609926927129015567662025792938821031262192860285237194886664572498417255151061323667711572817303888132739644579031274387654213968073582195676349575017677817338205325121678994938758239565142329453148114474787859138836032929120356576045101592923234057331434784720990013454214103056474650708719427662465300362069091331669941473796254380657430489023080526657339601072899025960797567994213418837634503434073673542480622506208509867654935581850352720485169707402258239695594272378613676879525383158054377988649931266435138944600825147407913312154534720204941832100136464747133733824453684512561851772647945573732833504232884635561061484140490496258361785758292494798248602186207838213099530917999692501375171165463256453594716223701252314147590313396783277134023745585301467528016236433294922672608098373716939372857546036297299885915489037399045631216805929516370849204605787896787437304490971002173808195515771312468562326431443163512236713855699010362052961913165665645701879545643638384946848747230632419281810150382127830057992229396866983490133004755769699479363248885440222372782618950571335912696189588490056959747284030481785717127858945147158669662037572798141547127875488750003559296607915373384904474184963993769198313140739305596551390617504199246576671005875109794205523155142127573547555388638273145194123681826380732405213675930126230515443560044252276483592265554506542681261487463448012664703173792374750232813368088396141026714116523669103061386636777722278562762858962598084168716036135797313131631970784706026208099680713452804576494381799229713246293488427490137721551747091116232121717550407847490875050879542186096124004240811170894827921871747577748077541948479711217479068054829207428162245744933210657474707668142810730962348127012922661881049198011065186041255074139755549853115951549239345214346846719759154692931842143734295985251844078748069402172741916020836414582901742021670546682933353406057626107501032845364950143613165809535306558966333098886684842269530664386272782927920040767120684521048252791962510228112673894597373570738776106595562905914006512942534012400728997683716262375041742329986166928038770589686025433695103867949335805184961616340026476678486283439371516752180902688580695431449729036062130979439571422262432408098993675962803783124504536441964249092922898931506628975202133774948046595586229686405855138484161388145468327073359767656821575243399063018695917653000646991648025820611348331466804637963076401717748104350726636583149896764644359668275494609432773894227052553516706997269042820543341759162801398053049601071294314291025851335824698915577190654100645089107267386987385335623614073462735495815430409385453097507860868536405863956822436579179430025344421847449229506338544993878583809559149674319362475575545917543088668881268945150156943206709549823620749026187187240899105364131132656780769575339922866001154191742062539418010992576735748688052662681824542131034302266673294237535024572437034929393375283057650289386620301619376932047078316816121203964164528967223057762915657316897509270197221829576077561202596577614427313328619585107967952034382790449252515776019495983507184712349405822969615024310525329550746183289612238006066879494256694031929824675891594790538997508127804587918419549046915019749594778433025101344920993718075693496063534341031387845389596901915563058704993669856964035993635527379957519423979679911110508411209488755185194462898740986354772527311525650037222302217383348925157879995175234239990435695544984835605247225045988784472738260908040276746938091253944763925045153669597775905001234866620437965431362827939087748115037187053710497524939671606222253703764510397720032264573879349585270520169674446994708423393617759552784526437340815326261635729451083513835874797117197800155773233934552309093219818820138910449171870628142153553736056037733939119973790786620457213292202189020796617906904100494665292062252473454627892346380873914783355484124156048431424344333695758144026512544223959101093260501705494930277043202227605986056682094740131281474057684046926140589189076639352416639934195656087973121156909016645415015453652223678467667628669726148374151241623994538114993232247456275152287924973888122547817548673003584172414171837782947341118191813951091111169001729333989168302740363416772864162744051374309409063405549547956488723265984920919478125869952992260774084835987271619855614662903385537945371961505020421754216807882934945694910178704818478275669628828740751725168326151589424810858217973207958970467790771074988882045293788007422496791764385421444051112061276502251588807755069638792946885531238868165417958807691246226181669649590936146315516904583402917522247811994577072948646700616769394673887294412155011301522486690141163002266514372591450195185983425152759923868843793569745830934217465169522453466702553125066564087534185822999173812210820896631914641236929791613345686444384950883393535460476070469009421317873208405224908766471265560530409724778948915473719280837588328348903332104571099470599913936968005122412478955924642441788249034502568186702245530632767481828576662356184463586426062939021167252902459769541981176699778331813275638130024345058798599928893356668186402319161520468424213412948137309004392120991893863689656917922315112883544346348745941290551671560435000830039940196034637393966522583103265871910427046966289226229483724504028701031676052765458804842773003707229224946250896394107010060069698936209536246536505804068393256679460141280436738109774394771637782929847050592723986732717540445154387592544156697277924249463302836268824956764432969370391070136230769049148723266607912506174804033712329748501946491512000978400378729451248829148461813729348520181915470541513464585322468523923629382571310972974398848529386656632938578715369200619021164317902131013059753716509246143308956913771893674096289381227990230226724633247397146128271141380225424433033676820919454953463245870208972141203448323795877931633006525870581518465736683544566864007491409087215832474103699285158290940789008001976109802785580453463490226904978486304021364439731689573964804666160260914234635086798591573036305950382961978636611026972400459867941453916158370680490268014009373803543960140288954746629569230662748513549186932421939019323159230837685773032117107215588031508430242513413698884533770759146977119166724395469375292835762536719932330587523169002498321080334539849239356810320935735653484278648305995437374263425236277619744587074406090081858352180299862136865841877441042015871167101886154522409866866708787819351700189567576421851116497079708203868191003924481272163145779900213673357975106539324182713741680265500704625137956990864154662517022834824722652234105050239072435275948080135983693261197657441918384179127905561459316510234904011949277133298877966318844664658848523983810500928082357532887837441569914685658595572050958539298066579485870607979153953389450326533315151515457623946023436425091377475245605274377234642121042130870403918956605114299350591726816183307076630054214650978054733091816342437117530915880932449615379688073409995894683547458449640128729994583877822831311006678076835966521897792371376358161897794724727936107724120135279449145810251051498912381493292720784924317394188199396386096114883320440009112862651915299956689554462764244090743059826227541455515644477693636854943415841198558158621216946488524563431243420605219605998841312147969343383130487830789838304152561710999136249845269595542646334257097329997221548345270710576564206239131991173881030170812513896030310445710186241780601750982295381488468262665698097312789049762221187541186584697918404102861907862816656748853263985000578822378763879567186727365256518002870290527590800511877755247467486530602824852103600227200877679282987408386997394856355808312467967401414271531949354656873755126498919521567671129522346696882800083814935729020199179821745046561005277002011564165718295364902846079122714994702042107237154990860647884178148050659102214831454870644891506486830331520112431024654015144587105897691361344133846634737593285292204805218285366787971196708762293950185243795023540840001575064807941888997777028707345451436421213043071725965067754407465780120294640823172728160145515042377130941572694239885113902859105362193970392212496937740843195001419175316677248046614123541564241247693817834560803994250451757881822303294130922806956101142983671852621461910541786670159606184375312994463440051996351806165274504366901768088721659421141629426087137842492896588380629567143430472851399422529916370554150051528232479289091852116112435485410578033894865079382676384336836256872384185809619888764925616211611016837252329841810052684174578874005529350972918128568444080406150948440466223890469098884997242834047558323227683684800747780605692413834421908846999283370219563749242480183250732400196666628443784831555986725212974779193895225177814010122007370339179879954839296899767924122743258779037393175248412961262813723293792589384765241049791475867998016112919358191234847195706324314558610564968205585786994641923821986994731878039432436005228813090692425794971976432144897526639196847417020134004667008638302311022659645008444266916629785659691241738512656470052515982450936544916193456139085345463042466980748892219364227158331486897947299313810681759540319065966663602029779116890741036073658813648755312699791772007114044936500914240909287551113520525169258213881820768936924036287320474106775688361337620137444187290685596780930256066348334900409433116512926761273200422371940476960975404893557337979969680070132458922145046601430832166536515175455184911960593858376392072208977757175647667906639207156001029455184972868408856292957882814094481881542082680532791245635216702152990860357619625367365729492811869104751631041186729350847251239767042044319103419340972421025296030242196564130380326537719935713654834138134555570735185647046079757766986581534984753631663257853668925775621325287758624533918973142309646478421222103830854562911028941796977347197607032202597682504329233488554174764384775847965126483754659141317584831984951598036607070649313865810903780693706465965860307673292437040571036554691903879267585498669158033241253984240984782412687688191646630865106329447974880756817699666976127079489847166627297933216750475856354885294076959948768645888785365766339225692929806019305362803680667595825116306134773614566945305876226539855531130634262581143560923764291425660732235779054701975703866810967284833157788174077986931797448413429920859789226757814028062623029223301601703128411435404158374608013158825773917536844826714065839918001044014663352443946796408218243991491005336490851936468549900183143451349329880693872650215070227457970078524654682803170431641411449739915970902630100958761920826612164733911185883506504131941019352674218038009330763964889018720293615124006765331084120986890677560075392252113553570281981226512948924920692594822158083160632233111929654646838537022295086626318621135315350428407545295850937017959988831342081621508026302519340596828161521678474401703260996938212496498855592872639404591802721531676787100749522136892876501353746595236751578582393340099411170412935712267231976422316028545130527675506650567388008312393550661785188447359275287216403485613561190155869734066992592594391531861953973306487958537086055705532821970050333448367618994313396655666658520341097538103162564599696708006995484738281814937064971066937605435746682317567659251741493206211194148408494258403746701729607414513242169184709454472426292136841015627519587580789869974211966636926734440169300598939179300379549839531482423030835806253490844698470160662296731340056209996949389782541266082238079289667651810391340783118772837155129902923152487290518534515783098689108699367525953247379801123449180328242081096752673676427519923819479655026429908685336843418451901238933953313703946474455557427362033084230888571791102964006394882654871226604574030363995499905553941842668198642977248370972323383861554941272792215511927008090970639188269480168393804395367895782397068898332961048372868322905379977910028505514789880611290779554554300724343500578175837278474528456452473527217513269635592668720123449291787630949900093687000823668262112727101355886283970347387551923522526650939314134938762776853876728136550042197973225709049378653964863350919522217329993562515531492031157878168309001145401503962242292645189773859963344284494376364762627169036834410019046450502563154959396506674134969941307329097749567414660799083006472127510553299575698197590960385113070935462028460400767166041690324148814118415811274320577463343167674866187085573119422528609812213492438903891271215254092663250750654922582322473346849492179080078951347943882558368723490277550731034388556040687854113697284677448174735089233194180844024699991922968180413625523802597173975729603629897119406628312620700238418922948731896332059886204507290540767059081617158697086647125045152426437534781083602675463090020330671988677927413556814959610254763897504551240941103960311941314486983803972968157605131254445670150884846131364404091854948066452238532269470925105094459380906298576053086135349164839016869317967689209050622896729952324446719166045535017072975150251309907583090652618877019888046487573199021164442865317528504492303467926987939023487082611721568602908061843297806648526749368548074952802762029214494359177170030663783023050315687034878924932204800899562535992907225024967403480390835188010197990771463071334226758141742127260348609881121909354628789464792263146339732515137612787309291290547711329664689315919952594209369523512369190219618500060218707292396014086530492589062795302116147592098213754237241116001792974849013199763796449244179279010514716653828641200413521569684169328765798146236535999828859197664174455559981562789523320769399639810299443658223844260083876648034146224924827381266164559840162392322952513387735543607401389296125481485949619186547167519141175453130694776279266720029890208790641799226548450916397462628851359232155277329206892132349745331714852864987453661153321375886960731738615279275445206833175300963310107598773147169801463097302747669043145934457461502169330952232218437891173216039442448461434423145501487588830403424648302416840872411717004539141603227864834330886907580488422062363712499867046958855132996204631003036819586596285818936666406517726548960690139802532172213763493161955970302846568279871414525124490817817174597429205131972471757313186474766836672041495775243468024630140968439087035092301876627781624586081217120504340665757676702700750594852027548881463394446346328906167722115322696206083045874330466439989243516549899400716420562401991886679509498973397402784094810348561310297583051370977140782693877563560179069126726059023072607520915734491672482748429173413672296798128022891266890726002176400116011711798743334496799586650005552099952297940336200732799501767998827988254022548591792336411945448762828421444373541497917904033305927916287454129601092006795133941983142509991868035153628605266032551880126328529525590206973348368257999418612375761362192067070221224432401368176382888442041568822335688374336742826738662513729537375280647261170692124061543556600393970347404451051885303114919920809058773777253753452721544621879174151001735400513655890671572803930181937169641097297747189308249913710584503172898210494550299415730791019573528802299383923453574880522754044580550721079006389442374883491370830672449010076821375489907603224588595353759000485888837194306228112239241261987793487706110253092685201317254405690384005976433827126699458948486481987092031583645948103647873666267369042198966923441441620099905097238518743863405762646948613729144410143792328992342449735285361210029914359509546474048011325271255046915583690471497716413668716020740434045136458389910998488832754449524986347068313583312695810207385737908127084929429874850062490894256175945975744354103398308819388608662760919745578872531892029266027251310641958468162343554917844277908389533443387830236813349969610800214664571363294188115635526641435359859865314662593307936887399759334922590407719799829693830154819592590795599972057318528574326209967516829351263775998234850982835462447261875938376460965112812853558112751051339219944509305710151665464055130623655119921714810566131422751807131293590501955516435300916845765454113623028408574829940788630207068418042996927544573731859990120850208063796743206376365052758895980056272002964880640053303240856824515045630534315010250414162142006726545964499244292722806747710988282960755185455818845780275007503060385382135661270664674552378619278583378737865426476683899728668660689105344484090166236181161582581099711519803450292444185336985736230679332086424531974839764663185282326775338265053014795489841482789617255876424059679007231655646961008964408577888232044645310641430647005207440723566041436315077002324886310353099636211371674564300886108495374008821918115904713126493824235243778260637929146803846658376605292309043429534984671589176097197928703541476208402494758928155192312978112200804313548187028149391870170799036769336954677099364084569822272480385253136393526184918780442850194199813467540915330510320725453963355777759396335272021892920965608901272544270939912541009076648486084774735621438488796316938611001869948862235415951548628617863607776698112883797782950452660389205457652997160507201260943793184225448353144764422764637610401422480631864515039527015986664313724076964658662127484010046886266501133508677972363365960061895315760775931536278599814143141799128303133683722897558779104276293833463850383784316045424116743135626426413018206825918214343780280694389494463777655380289056840233481946889787195072076085147069020609291171937433655258811450605332496742364189886791065964438243699818273518225398514900075733537095758426714013582656914522502943332339790343218884547467189383758511879938592228770042428247760352995286275467847771593414890133707043187205017612646513522934965548772816759857189561553317257189218713921575206571446202884101869598337975344478270384358985633496908270381184277360541265725406530890806218305292076624954751294183922737894082190015771540641843596472734328604825286440407890253350949378875186049845937036458514299567491010825501087471951471620568209640764611772316558149369834074966256879580027738946137182191757958857175250059584198952254009925368273302559614151334459078461123693999300032035698877219995714815427426218399790412142097938820410062002549196188016731659575871511586296038109441680976469308858488233335145001707439751527894520157664332676310593731757519490931252858425185261750308501797631588007382735151481926600623001995769096908130082945358714287476227838654234822762979044669302557431101874497673595044175375646365986228681548073023997254582849349843270328603983540469771121560974499551913593404281245040883412710966142035915161864844467939091958118785966479719604010773343700328273313187280170678731378658358707128322383296565828107309257706343523668967329169720848618292213209368256191270305960139894778623647879318577551504248722101616156703223835064878825624198228125834752338152212209846264895169537976284503756020359188906854120591017758880477339540125952684029761345066985286309050603252691855121935491745556929049180802267238925258403093730000378413363273937711564884741496456436468951515697789926465815944258209479371888865203274421976172856270288501736163095301693842289029401375273652320081075282156956930103472019522270006900068803518291585866664302358522353656794586499712801890096633362804610034501925164329791580208654249037545878138198395222167010890012768067406703486534008180854450506104490984101549591450440283715398952670151082682589661801863868410044118416496511900175312142626264097768138968896852518444369854876209635501542759516433313488696229735444984293622063841909385235044747771530495822160578823883212643456032425031824833014578022828602140899111064883362546242927467257126912469005999108282316962838562660623372111318782664555479278967685152559791598653820595156398967259882486396433289988441611639864370477925057956262930009310238464200227070803951608249009036417310373708673323618953569130244000720549623318907267624895495222853537883708763340068340710978462258143185799907365809580126540905351576776920441352025975764345474016127400717033997598070433375450885880886209553135200450521434290088910603358049126575392540123052956368385682868910781150608037227982537086730788983290239755356237381222803222838237117023334545596255060621223825329994670177972303795344169535293868833617707588124242227059398416660785110259603938917821868014537794268259793910121295388314561023332414471337255547024857079662002983697867114932425495172777869188191003594457883578112442415017472692868199004671295749258346325988852669623566594293947632957759768271744717337576621767534081925478602191907210861612425102435625563004057731804990845004540267207891370678268876170614566216447900971457590665216972547366638831552664188409463177019691731797335206512718350549202287394660298988651164800293788839656097095221184077878799113050243676722793772006540067628240091652055712474578713916969544774132392451869172293975575739672045262641723095277754816281938397254342163871282501204972892457913355659007333087260143067938579510379196404608019993034192314131592367322044183172838022695146800704807913560342177025957920722677604133594218657795988389710842918100604426870707448725055578866948477608674325659860128423220558542360536623917757300806906840851120649423903651824624903142200433478369329095582739305585782542223153736080145584004891739450503755734789159483424851188757416623133182089063108764652265936059879193343893000325992285687768948810848031423458760334348365554161405026730472145299485084916552798867720122222385643335782091693320020753882604670909431932633891775124485027950341345629975674908480310415637450445402617771204081946471624243896887003304707133708196930813883240926553502985732132363025237717086382148377322486526743823007509239287930804481507352330841450699187063357572539757399187304228362517991913427270469043849781594983367696228292889332727359177151132624264934830234927790898238022710757060127289563940675642829556186203033396475083840187952754836083376433396512339014952091068388565214217543518599814935205150954628252632161359887260255526404662471369319426369318915261500634662794833880042571685966942668114225340454593695160380887260962170704939296654876215388054769378998363176026545146625252823879720873182851772599433761041054700916033693183602874727349393502377725212295575359194021084862928957310465530123962435336006980431479846593264954494523631376961610209094967479460723920550039816773768004193792842765662976821218405837142194287080594383702532798664978033175706401724791866079271477735151778921051289267215276215497069558217352184583896526468089248492054053293277838385925385069846211588292666938905173595126176586446445942852540589912578945149743207899675751064241257034479942298161906134222180365140987563203008692605060896146735169827718832066908345765215059965009135011725540800699278488379611975145291277164585740808734413446579848088488346870963626216563885050895033918120768345629387246778442048127476860137385146985478912778830027176008614050014972411744828891995311035985764733790670813776815454927874482721749195729260057103701287786069332347729065197797064998993081741478705880321428365136011339416893619157411279882969335992651841731916987775570290739248977815838168864422774573234127638806536887865644092297362473838834730680504256957217711181662507711506673049717098474424282530526726132816867605368532014567322348746164520314065885533289872757501939208415770100944089508125120273617799651060307618483418323621185687822829302540947641702665477377840774384656127031958567067910165762711349462015670690639766942660866826378773372920088871993116203228441861666005312961153221098453870758221932864958658130896196473643562169557585918927055009623799103813362035296694962997763063997593645860188997799772850830181813536071350892881526624130672780620769708106613016204014706008315872873327134123687822427510439128540202631652636986339844697684119332277428628439810965109333042587840970577951679729154137618061441609472053234470739849862364486516767150396631156070079076665631869189966370337471547615717430068247435755533603313641958356375291803294336013754369671831041161480777102798785389262512294475817912790818925349637388025257856007418536540937739654788779300595849540463895215468563178755549728353691103596658174682078002616127498604272650248941946439864123487432358453258567156938395836988871866112657733909942851390068652821485301448226213721323699442109296232928472060102082121398593766711040009882709302069337397955292262542661315905082016735593593357279790958136810460451699497988224870883426964094064087420150745033471781355202066124876272474789104885241156676143858048240012119226668015315585504593940074870019068839730638850445881619774358078928391088166496512063564613555692731199462450587426569275318758349257914652795369967094520799728368474799652084739639770621162880940113225998446112089819851142416852655198016039066913478389005671282260866189671907844951530683815763930260605438754238736046818630499989501588768520068369622311273983222115093225593299042023601329835718895693720536121852692901196400556208588220950022941093099183810402637292053792455142930372223089783761411753387556021018808534520816113991108382302908784907154855851648876062982796753863082383703037466491888139699034519098396987136410492620838138665124696139096684781701255718847768912888994728340688748811342684127593203585420092766758209307551899222486015880234163189938529456433695010690682839218912620685341311631507617710689413091457466159696016032178769826339900354237623015625368499018365914294240113333391331702322136938324254702112329328349281882135275792169586403883854602162374430437870003801651449274079904841088867581528993061233618427419455397780515461155304843741867467423075260324033991157109120552468707487318251467934193302958315274322842126935427004509866997741017446539685391662504402927192004759950276116489522549401710803870524235953638708733338591788814010441755011862543323040831825565446379847994731643219887554510249499190032718273064653931208926337892167076019759408783947843078491955436988852501111112993080946331513539332952409427471106243111030764289925978018765534724719700053884948639591778743359831135124061303150438025424859709273466022270318185424260207553591400890763589812392138516690225281627150180118290311225271017870846886232296233220466452394059995941325907579196209989949432077197102795618263521511247491653694859237081020219477592189106717855558878520768768369983515066212438776506742151073641047495896476071763963243490967892226320182198501141256020135477545926901408704141585752286492403030182293115855630512332642284851573558504550977498459759350818003525163310533045054981600696443226247996051298056631616620191366018930110875656054991729252056966011862345251753243322984770221455172917125382620099582567094034280709709425932984257859017492390290606602551325099704099513413852328675584168670426833079798209701759113962556210996079264295498750259996243253001084772031193443047657213517364683644408035606747124489030547713546602587709211609998949655014809130428360914404730086077891972243997939383718040313854809007950520177799551493289537983356934796487731375129781407160803676183995613268929992244832515872068139794492603636538918535825198744195828349486100324681917401121953999413620600289535297523346269880160346626646921329520759550461297222020174513826199263216289418457615891388043942598980578321039787499275734683660771781181581014573949907328916610332794517939837999315370802453585996380037807292624446143613575016527957805658632993955482236242320285992587093310806215879296413777408939878289593575111382932064277911073154441261319646743206018045480101106782201541519022486064013830558811734244179488196871467240552101902031502683505534524109262037825200538506969458986875224976649201214197034266032877249237164941441759633096469656060937741647634498196260604765271805525323819106450571008195661738500074839091539299793305987716670170879071553585801338680576153863817661947210519272991828657794843011861000131004163108528261081463044316271433688512646521289140081202709863453714860788019405324577054687414815323591612811767684420949519517036737780044495082152873090105578180629586401739515336696394192449006149746446666334332841412388800100711486591788380153019909331070487239522682407867815837112687993591792883927964043042805657956053989061402183251116930098177214664098953137752730384063327303797742932686863219142906431754821988110033953117649826759473051559125301918827025259600793018815891033521878177049554459608347099473920862763098350202970125908853034379924220552302319147173425068043307381185039421810783424962382362118906565536293627501990025096250671225414044730417366680553757688992874223100857981269606572292613223131921625896817069368460252281380604615106218986678364245059530019366323103413067540921959347499499804523199867388450323077164625864711765351048834080035297553967474056339237851309986785419516972750967317716704338251603490095979509772956992093779713367069723823120618240890431772400095965712752494792475358512822806853637651067275947484467413193537686353026336972857881120603005209601626493541165999145761027700267485116876741792151528756935461701404700451875460946813941697924261399364673005140356305887784283441335028247524004431521577086044644266286303830026029941841913828350605028456776960082224120816817810516403678473285306039173145822778326344192628594185695983949204555384053878707108972081064174473069536268885364306435560595997006479238139048442662868021410457194470262371355298887486067240905829174334203093291348615151539493832872858226730434278732139654985839927624027809200793677393610960333580669741861945084258142622839852927538293237290684523670019382652187542045947531029640611876736955399030306457314226827655162514945055265325085357861799845676633553742886095920074274997855757390659213818934575705141445368063976871837372409344629344163056773321426929638045517142877459784559322950899850302122306822827191001163876231701606106278573127373964744151545178977597614382473231983191713607754539867896800332732145921911832252810924541752888936307190748960099222278994140913845236294473932406076052834064742634870792554331712670775473964475091882840034714095861113488285406630238494841265283138891239630447680731341465557152434789156288082067053110440280295904568863005375463339328805374879633669543387310411167779602459313036046379094223743600138857746511517982599602010926229145210722746831277936384311573228128305890845417280766605495906776116276056402009044746584859200745192759235576120397472676042936503226448573519007507557473130552909868062309846375262322812995180730015332548424571880962134933034771543924229966196950749459312150865980549198099683223326385000735789051321131246843264514433956705537617733417518314259722123692604622831662244893064640004573333853788536439792783491337280252109423406167684772023836242727830963574541626337337364960925435623877792196866459447745056982116464789789940774019486543058378676969851896652705918189713310647962824539568687816082977780082770276555589351652505730110256377689987294838466174391352351101624623444205260099333353356687099981313522135663239415541970387701420084636013939520170777326453648241405889849143985054333548632338944556465836767651434851855224629309470394562293649218148103250281351375637245745552042760139689678488371973631405845263672368352244640332566607463370093357584626351115664332379963650165361165019156920713795806100847080745092913106549108492615073984250774986940484833912910441241541834827530909810754046383790163789004190371672307763486473239719549977026641348014382311636080876159721830629146228244379322684507885529899438902783564591490588789705490414633978742535021351595112062097156979185866812261372654404845705608296806545005350700844045586087352363505512967571288129220367777814355693005715258224945069929120983113362929782789095639030885275119506516907009042316593372064970236077311654197947210581330949516991325389376774934133890578523282493286496231247844953468897713478078537628365360388023934777596927264701737445862382235720041183621632267560185218603107596783786453340696043405973797962943821897855308944284188037704993068926412367375325539961024542997848328031616802266643861055427088148119472014081170867781336504187965479400929391175356277407729887878712342762385517933514686343227680242301319201237917507411017666127608621515026279050279649638665076619544426122967754154934667600064804687319315398536871206260031186724655686825171756241419177429965795110841178600651925392810853670545050364570436576631050834689174842446766493199523630536324477449157729519943512181581140767711317766381320610374041879584709907931059713381740301621895838019589495902700228409969821651355259277068524143747181535868207570115221129701146640969248439750139413358064199006664836684086245497652772687039705060766233363268357792037884062410670165190104538668276109334220570985534429715303176971348164366344290054507989981356025302963598747701882321630407748967423869108566025020076749383575967586611793037190968424410408657190532777542508635544803229324288201142819017941290532799022513823675727613238894516343595396242740122814781720685328849496917962942927163040627419458229286078322671912949641462925126353733116293277177825748894186021580540287808646255044883471932140927677333134988840420806361633460876355340550910342530133031944625613494563743169841090757824196214614586558286366917845953400451757964693044602942605807607349903061808700997308934743530844160573685943776938309598123825920875456763382104947741876352816996823706921692040854581752367152277185720625457509551286263089767873558378106392622517015999636500837895497471115148456048596580909033701422247318736676445829839123490527548173904247353859053669977517455403089036332315355022240640299327718224862649685362448987271819789223062725843907269972886722510339616693521981844088233039319902099483416928186400633888117830514527906814251551029832632593803516324080990940144387134195329582801083423440453468778866543886684205139821218340977103837615453006473068565120926391827494646746117271700116606476833146555406815392502696218673292983231723530791158065222320419790794236526137429316765100914057985427486757068801998474556592589826955348601655630385088472955842218212619252728671980840566694208396652313464327317562933957452631056519091359699828010336489857421004820401101030874164717250087932225348622773051177073202009671320878320306448809168859604145494240403985891031050293746124614737288962570763581021207773510021931761811045457729892829741365788868366810846645084531066000558262038726055728355791110531269984941323334018701782157869391227291936886033532889205486033511632723988731433546944886741220629656457054377361686760400815658101076439193469890902048475350029925376298551225415990045512670221106359288760558525133142629938899695165220343460845605147319350885062058557930873792912432822376926925107667994684462233042453345189926136738288406141636022134727635428745858611137771783146218194158363613061270226814723591436090503201809385698645492232503379582517196249567345788441711330561490106471975177589132639571604309813280763660801285921609876775262777702356856903620919846044816641816540327127950927149249781063171731019557682348968194394653059734813228111064576894394263383538267944838421165958528702847448214222953954594753979010076374073224596045776800662797830781201652784589856750234695159986052409305545317862980892047876396622807554330789827284468453721300149842693504991862816938505726652262208432423432466460003227555437037933392435155955943066510971503588795044801926507140617991491681056450113649452194085187320718222159743636260733278259117497713140942062950692248677794067650851079488978656854271050784820395755667687078100606580155931207434008018217067031775349527679831200605488343165390004762179420843973204339747942163026456366006937711229472111264496368772550416657987681329060743731512427479174261862775299313491571083281035988550494926213535168535971375578480153108014707370143972178783055070289487016959824060475267012028695388826914840868646798692960842500571029351288015727388161393702824395048651548830279034493920623055291133400434602435291009949070914315256507672292922324164467122040691705182516104783836867364983221436076681709852619816110569368651833146277068539060167949446878789545731795230008121066283666663118379675153297261255391446462434552370491162548450125565049057249879478673520389469985760776963053213735609759091607535879345198074586173048845929237949507668853227847984190538202589661034788389887055031191054693218862505282891774192173970383696601836460654291294398571034656250049349360751577110260258679348056629110824474084661142247133076203367451334165639525112209320348658887718641251085239499211030786143739413702114342353819844757458215530929025114906262214067384389728135005262964610454104523417276355498244305779945587781386803224144361552444427670689642219357169157544246844799545053034693808237642925075842168563222910920061318027484489686206433633021306625323603315238496177839118244217426180472497368036199000978350354740407287640074995573768502837706259019240014401500241958095786822157099254973502338183442854840067050281160208007851587267246519058548991241720867944294829207065126871115021398012293485627556254911126552046842499685338125042802271803854264138093499492053023225038666135360834369312341870273203073627156600383315589257875936939072692435577696996362921236308213113259385344318715735363556414519143503387262383627591984512072636879406133550701641093170587878767373134824317823251818950533532061622750730119152307218526631854732863589572232481029439998899426467318497397310650133449951980961061641629483039059021232055177033285814787485470423453260136761148999400304088417567654540510426609569499721162232491277253505425525506476843886894899443932240640533685115296377425776004531997344962643586158526688035562012603712553485829360810930726675247017912685705983706866368130756666070300035985053426027218449874661252147078736050957326307018599877737366480958405236941125171695286167735506083945063088202759917416726393885586756930666664257699134566984213038243483137359449319091960765486657903032133617426011285650747726601487472885383775434839166180921171256566372857037985643575408578009852180175606433701228870728045790127562994127675307442391263222164305898264685708299308548069324052480483217972380669295066705026378399506730662372636062257954896100869169967324700039195586828332250703990999980072530481466417974619131301110152525138748015392167396856100826964337283204485234941668108690680009782959130576110173202672112180577214002937772653326880277758297006151013519699204693270095074912551833535592464006324833473323329404110552527439891556979868886240339984385571763603762091454290976308745897893489144481437151043737015757614980158534545743317736832820033157876476476372140811229329391345283333527783539936180029776800865861833152418319704933641064826506167065015883540886234793981360085238959394844787438380964696564437985547863621219081064215882085363162589947572445705651609059271635617861585392970971227119719118966156035152732234464801614494721647492281209286656495088629148274344882534144045285296928378997359095575206990788541539154683190033315036063865591433528150195688728162190197558353973515790435450035833156565220184112234706975440672821364675041028486139246732432758000545229575652646734629316695000785410931453147185749183149688625550252539817826806205162209273563717559303919122017325643354317277317751702206612337222288941851542566431208312315111312633120435902257930341562764087334783338353076556278608683167864202265272280233145206685408736677324396432332691361373497501181240570405367381021022553778705551320007417828064583298098206536437484225455273790204431179297671555847613894590676260835004177074275725143667475072647988609424076660598300211590933909755294689496610676478932379124889101536961832886049039826417522575762671272346404500762790012306312607496016317452247579105129054643474220874432211371327019881169911251380496769737795908957974311256682349503291297094836699891138152852857364202217749414223893820637138996280615480710336389580299777695721570946479191660555168701596237496802233607800944276615585403785267965189148610728000360893595559066663795702234788659178144113837077545059960026563688604967633500850056092852642056661136054430427734893068674790110552753855473755048259189570851324037327018258874025463290943574460233981779481591973736953000450314512929009671037291654176483650802488037524191080152704900416738398439468343222118861694663920367429266953677584028803377220495862117808670423241379318913224969383498299176117098156906173519089256950589107290342417976637425549023406592834297518923655149670790662122439903983384745716966854472722909010822340914024286230669940852862312905768115380142684109548294247894174838221065647329570480740350448923504395428407194307905575579187492083145909424237298509286178860229650085333821488142400007992297614062543056760326673668173160253574479950528291085590857679356692874749299873490708260447682772637586402718904316117843341085298574425823088038084671960228587896909135613069132509743391521853590762669304840783311463400413532859682850255552923206018408113138653905410191890447919252578144389107577110347227569965407746786875468678907234561780263784770941337417041135551984932985264364503156842280901926700749262647134057675748805556833330531054689236035719229979449897986651049971525720725242338093944799349786312312883974817013414209702127628534232785118127713043230022707717830313440787968139532833174306970926361473435142514614728993103850784805417376339098147622923839337683136716532638142904677029264664775794345362503792911642129223738140570240312144669530134640097152704069150295971279761330801019145666372879431557594398821611954264779686252086987458533742695434129218333048905383327993736992258148031414902219710794231679288272997927671259163530710292606191873502582540751539520464888278561940535997020991933854671699883837134471905255252194248016843749908806818351866187451452642045845392704081325645351207059111425343860393318324111002691297881110114862131456297731994771650242711262144187526939405772393010438600924725720073917781246487393164520664563138977509627858848207545272703179683262159399068412301085610830074888253711048443492534231268436155614695366075683859690389274088921827716802496150269884073188135931078183852999213985374322811326322876970834670524768536799729252372319456168175045293786805143120703934825285174592656860784147509050392722463661943605084129993607871446432893320607126397726423305619535123154218343637294070723253366219624910372629375585947339413287937867706750905739760931296685676125138160025818577780804215327750396872798184162428661477087053244673475759361436614006693910315419985758928506723091443780274415946086492602254897430365740587351547453679242799196878263762597746641146567251771246779130392551969240988799846351926974811292419682109475789818159423845185501584849484567497377955252335049573795731977929880329099570938320378724467973127674352037073578457190557965349897380205173994539333161441944398077340640788061314298720433318771423066288530911109564839545854842932805602998412404041064876314428822434165418752738949975444051936489949639100684486125104362798699605086588829829721885633363982023633067345873682810138898390684059327516309051255685610978939992796616083316771979580055813555387256837005374370057129713120540392160296939259517322681973117296499135218713301914219891176930805046044176432146158413990752603685400359895834797301081623312896522457106496788793357936117745896401561764712700002618957708386273095323205867621779536099844954593747234298144364194173348026918784119175381716336640558890117427780673865988802905340108727027298478231636217836911832572141602982593079919319076746550765868727462681352304460758045259236691400688748599538020498902844622829198539638248348730284608336737148104940877707088116116447509996060146063748904888962545285572139437872999757059443529726970422086733021597889997996675872236260802857751856115159051144585459190911465595571306936300202502408946656979985489408143510759276747150573674127276123395430837660969491152109951846039282457427047051985985457741854681042717328912800152861147976590568422668437326164233835157762920849789597434700297636962904168431142018799573408785922128790145272936940944888694864463499332527111353403063745658076983567711113231427528030442290097692555367423242887634611407819918443949281283335709420557378360561941357729202964306242218284697255873916997968232753454845892590621948120877991430446721421681261513992768284505862784250600942037436732603412615533106869055538993417326283013652798385931002201573473794036635143599727741344104121183316031613325502703951209877454799472241437189492970930762141791104653677281675441919809004196373102660175733471233088029971329099722848001090513067491669806303495282506245089091915871265687755647052715063462376208053164109872299848585679852828502783567074844817603006662291699054473261730767057465689818327285411350980740170746935820557698093951056764436967519088927352077459078565160058160835838928703846498795415600833601703356221020911745815869313252881820631155105171344865430109044205325878277904391240656114589848105299670920436793177295498845635899615092141329873960069810412769112724699967913516533912563870412572048468992179284109357698071787919235452830453307509249141718610604670991892557515951700382574801038770432906879782989664366038836488385783125455860260416062504895668677514927695270492821867661984035538480228022989099747023777821437846147183075712592515903383026132392911031165512933724971840794228709264936712032317827765348312448496211311517586846838438051771293041058927737394490685062593559956720680171741982608859856977749305313196428621784169482790013457045786761818414513901959779439112904619878842422330945222307936418912896172423901444141794164707094570631418472922003639340122092750118133688481935367992242000586286706946280471215149975170538961660725963449746935884088787764682735496461833977664128571638334754597648093141265166912471282419011543080650769353562813346654126912837096633571207793290345397153157867305314177433589898979180532675458378996386900184036073013118614556982196187018986850957108932200430034639473115698641589458211633498458803617002170061589529910134410841226686191553078615567921414601588346156342582885231453413813776022577090481218378521995311571330347741634466561811359928101375702573120622091535136932781192440602383552700361045217310697351063797764193992119727624966236930877270886777350329230935780042960495533270180636489446389554351970779591557047492982686322588472265408851555539784969266932235392542530046174724867866182802256789726689041329891883690849288343376386920003101591647053188403309532178820262835306233976167709830594346057871843145431115384708686896320250853533071299483024262741622345397837075444276544805536667366869034372436863518316619794774819821789433470569689948455568645085779068703523193970582366598291167862056086331535040801678403238717400950378733548134300602877331891619881745573864570523113766198840596940944100691663844028462078213204172577947571493583735800632582054320556485372203137374220585407701685182834163498638053278076644017658136221176654911660304887262531913026897456435650374890505656013475107290344279058567669729553307994539959397641506612545264207617900612437526848441889194530977458022709667733511311762101915341621356493745313456689267129468171856635456989485645060749091702792333235389076428886079492603031778849922275695477909940912917097975841064419057987380848488699723025784121911458827692975689108206612556571072888945343244850946277084125073575096494949481712919192418789430086264502113997129912842712664928310614978493073115429552477896206910496319732442404012126709977971432341851003644003703005349237745057179646197998701698085939367524264477256789535438845200404859239196686146402564140192490763986104284684641452791286934774061455216198441410758378692808874037279378766284167219933088936120648508778152415886009049271609981376691513356395872060493241979727508075408859516042860452589298632405475129043183689300363574884957805266199070354125609149203773102249453251616106233775299751556195454440486046810998017486576734747492950934827349771723182421524492838391327052230085892286644490355960509935553248554889667308517752401157643008696523447352350855297641331755736096641157957877552518864099740610293883350293754183889106941175338216794941958469264010194446857302278643399863805484003442382479933360862345508669115340510450811613070291687489503032250872066395235895108363466002207926140807988705065834134443949805442778605713195760872460166622614340849667468028506106703127047274864355205011823499080778717683612581703614120887242066121546146722536875296929282154540966343388654188424628219560247031031179913893075267775689341652293354897324764504995112503812712961293312521836218743736201743118286300573872359556528045207294956138301324230586757345001525336053004142077467613378567823912693670928981894866055436320838783379736432844303765049705714232822773792331708455804940834373744970710012617739930301214594917886303857492694468265977195820574432336390153884553777199958543952381913841864506115700642987532370448236533911962478364555340659061098741896399143793734124802935862639609893093041209758057362116450975552963501358517616924415533732441572563874959154563573734482109299403284504693427473889482107925287368034238004324640054810467516017616312765146441396328924540654778620579001638697418586469409874089528443364369163671350215543523468915483989051458274242880359052171880939657001964026113844847314340503228661717482556345636068551646286435026310084145141640926120787391387915336792875629252930832844113305913054284606460812061042387021281268587865617945857386465510198205037178732231005756821702158037270819956240422289021761079395590268851943579780816304059306928619363605438472268600577660130729897675328883864871315926322187897467446625980330391935119884298173245946913040360579623793554732194182972091000405948399185624612736446001288162598744611154590797428264001643994805894293482429749236074633388014811565759540719445447267670232596593443985411477043167992395821405752373441207242863442118140755015784345155245892088404373300156507669231972827159053428170274067295168123222650660972528760946122633793824721470917769898998126584503054682365753715427841845975125731749272503905570269311442215959938943867743492438163874291572525598608742798192145849425079209480625445022927795419301206953453253701858834990252490993542838783194637838556627415546934953364737379023420846457901407898628113771691566367260871346076202711246259760550631676114018229778270790094357228970638214932421398350151631483918211315606075964312867419994735382526308906011165779806972272195530277268865864553692628814384599428150612166738595532439452647441318205709008631549141510693251885985838307642189702355591648687780728220585577267192460765242563569944693364393972480421475273148791633466450150165007466635858303231585808982484237157776051884499986102975928568757085557699865355697496313420875489636622662905130625469467506926607785826809184157457382034847402809957969862274407946893875883841636908129604753605303193346071719135713000607027605720255729195222789841607207701059356780361434089192668299990785100482719790551911400698857294366496066887544021164803795578032621220766108356484336850679994245785803826888700444759770061995797489327057683699800100400755849351289026917125162522588715010287159458901540631901422274696909968421595172413803479567033971127740561464671955881310960581975174834933163253427587430873302453726316264417415878145549364647424833512427788996024777285890560117058621967181119747482371277771047383241716754643555274238388545832914173102325457986843521691089073570261075735409037179583125685141560027527685123197627906327479224679481297112578842825942173937946339315332388828047819136431031976397958024416277409370764040590908561806678903690617014025965902482555791460006540304614687358762625431331106641143967352495605861157667210274863809861815608716407394903624093603492360123766366519311479914943827131447489024691446958695711983034081817370436489219628862447983982328897016666083105273087019838131028587592442853258365049822841713261060207039482262959678539614068512562304328414197260677598814489673767916153150887895629789890823673632529455537503967222995518037699907659112541049619447723261826582663696579409281061213309878304799795689968678285470260948003521782638819764741337406367760575295827445222101799858371883422385321065540443570026944372815621228380074480020925317445567061024204263167815317607289666020094532199082888265504062582726813153507849118817674186320457908601275586944243143315819376483989993051365503211405991950528997105190318110135138411516096899808176128802331781499285253698873529883907865696717314388847001528458336461428802066509777545986005805081088928752785471858299022844570917348188824929201650479367774927923104530831937289086305201817802987842757961852321329392309945086084526737344127654363909660331568008311721340393773135167959015984351278336074912375332463938286463096612875858115804989222198032534882115581960770952748253909776665930137105365332178884294625269206871170869464233911395797656145431030727446185193131596804827072954572029084281522997431268345801034299149009059811913921542387922951709159509336547061415822234736377394077737901600857979791189808728027681960925081525689367655938835696416331292120308575862036028520059193112782715130195309851679235359168257889803635287176114531406321380961258977806831783413194232142340684103086143589892401068869227253083458896944282549591222152257517169844089216870542863848947538500685221827843887831526440981254042306482773118093716540000403407119070386899827140276387776983267682179591818507696827387156476313969593631922502550820962361659456035204351315534360759784097581140157270629140690982225559482167377827151713715578490209912357092785104595320995442846635863445484067619589137082254836433839114993817071316969146843255214095614359589692613114060698905845087656770321260786325488678393405691760859027762286079345402480091307746933302749312441950439984911211967669583858665924967075932490644210961708375062147575503745310129788186013814584235860575357728839300934186328786136217730168430339454492850221145845290334013064496029264344995989477979654598619469649916816862134439714512085181662864456932251381351629475257615408153212629262675790563568922121337569921588929665444671528232001186642348054826991940666243234531715150912845954731413594609860148798127708944247942234884328160895749598612159606489475157492760600054279581416179914118257493391940296724659796403161259666068706544380215143196749615556378546330299175733910739637707414112136307660887148155107871999127929274575032207456379444934264831969441600078505966481267121773081823043650338705403078759435638960704318669632939802765488541208604403021478680163980703694743696893878328209455291772071938469908064953214628026821992313359810725432954206902102823090866136368659577433821983599975538376950451691220100269718994537312049481405543844904671135459852746776362614999823402173418426622284038126684148658154597516618753221335655085104771750486439634044593277629734444918057154298578365315722601858896238098862727779243681598912435786945814729194870682301196104108208799240957005029043553509199438530200669992570182639378985406591797515706363391669142173068416955293185891061341609405321505472060194778389252665347768598024275821681180220964776114410409893924822768730625359740129757740894505936029111572826571669955265320112584229090765454048070549117113912547479096747542207160458360598688849085251759748254217065822064790511864108902974195829582963075634694278921397793350123999309218356788107398219341417009084672785831755735821927127465031034539819550051664239893714311147290527670567829909031233691157236322791987811640609624044389589050759818990556491068152877629691641145227380650520674750423862797515849835365847438955344749663693054087061944527410546705433450694980256181965967701826915314783437453086251721018349467968487328369482130032562554861846955118874051481537879485964696063472146587277403367065973076116899069880018386240946526438148736009014097070946588262115338474530192841733182393213545530402395913001597142550240155175278068952871450653605160392848265485052606711455244627294030325433594027474477524160200678441130168653562673755763606805455721602520885157070954709947319872293372017639039218164579064541276353159740770541749062961946559217922825400789736144284935036033379798004334298127366918262232691681031878320235604789655655661482341665255855587756113553725473590090757463733034324746829295376800998547004141694658109137351445671174021376842098547054292493774341771138570191926997752662335759965361269312362678721420952380995742930597543080351641283016205882679804373798573065829302383123988140169548338451131167990145634770084324217577623446086729429938390265019855566713953785048274227140209348013676656536816286191227573728778513266100519233769828938973795411869460659966674163966436277877345324356471880821500003028453912524863424361998468275573598226789645233803306277997440268310500981766269495087132077769783893805958717818735972519007278407644471789407059601393122048141860196283609188851976746857756126047092302921943791281202004557920184561690041145010445554647781892764570268620456962673986313264327973468310218794461493284701479379811867716877425589217913253948577958487647594488331947388971855806730553312052995952010652422321079089838536750346507911119627099580853634412125022746843511037266186488254534898901624784905314758147213408657535240255518864202351271112925933922413716655483834742453891449343174816763981636746675540578747816976164367272502714767831639466141459301639617076389107742644504415769918999043124425209912998944848720946573562620881824963395276328510983814314984098289479858222439031406195359328421050914637552016116461321530743136646532555966875089740298306285986400197639228598485644094683006427601973057898269987042822680196649378635871850187842388242413107298206738648385035200897729538383544994445068474395774846485296770056717734683228831735790760841826430988128722938587905661080081327230363160609492900033764598464923813659199003550557907291562407691412468342708887718301255407677674664681104250183129575877469706052790176247020085229579461128652077474603899433004809205146893011650839725011385888580419784036614684428667770455005884858778563505704513408466977620328332706482976966029157631137027463280577426087218069774505483040846627612845266687980975348883270984020122253081182371719931791395839016687702185266858219565494279659999722160910451757726523673778289586083763729246905511447489672250760945399579606906503329629496804059767260865495376933949152291841656949582743541127249933163093263023882680136679406157696098551922606584079088823098257260558950796644288011350255743651034398244804961185077230299155943681328407959358590017187350530480325558822779611864331317160725533413460624974927536176760167071463929609421495632800806799181623354607123084558516950954336248290336777844435710233888994662798354329236326874546217473888543633613544965896683522285083217326819159252661839793712142588119370709548694152888688063674463244772980806669405982490117886718910865801368813120372712349042665518678679016620024621029974526299579344887118516323973314169768521960344088923810966439563403252821925757948801172134016548914962957876744311261636397632186019077691370120067131047880052897750816923965651509658118900248528031132182617311650153318041771997953605529353791031927367068726279938375236779198316207831521775656436373470662382721248788516493031410176159645323759821853614610187732334953825999498567894360830045468327445133551166818706923144435402857551898711422776664466435778156240282200683042061194244699123639306540307164857735398814154295964848789015195006388469636230724572249443168590443847632904193998672261206757723563956106294316613696823034475230215073604444468967865537519360193288394483522922454999003126485585576673574063772003071544641209826867222873438310385039642968490103358713981013626090531519791468103876555614917672570076219215755452401342437680929875384191463852294007415396661719815805597354582747005545355393915300451369347090817847896390386970884660573133709147665464847912108209057235912615224785311464376127655065084196328921579462596105008847446066782835999578217101942554265076687973092980454065898334904228615013009933631766500236509782646997748653845099377026876419551981807456771350764346445800223723281942377677101549144185108600976307787408999029674817484924392241997613740670496159144118037687388867384855783577957812569207057125637004329682202920031069829692063043372609845871411492573708030357637441535620933582944940757958225354772538430557324339551946137664527568243609671954534319726276265779664073285210575391984985831016760426681917002172310606635434496599725093476351999394444319160322724965343384810689571840506348497968243284316718013132629861726200874124636711599074450965840017552283315633193822301632547747098898037675340256938198253127138517366286982579893906557162939544581811130836468898079939776204231136581392834095146888222590437229367435325200565634860227336858763019864899427281156428746682143134169039012500964405708019753719983466383124959834740417900299494983394024463560266749564237766913172928175952374187333088297834206938467645599629849893108591780787125227293531627914310931139770170966371318308466641193855412600514914387081452372522065612538167398861094845183611574869321186869432611102869661011452986400523299899280344259313013697077091807587782138067250526839691432315641844802622268819780540471399770877054881337424148815296467981621411662074318965567680501595822440940644553222705151036144123760039224038831933861276889680397375553808901170550661119270042132166938883947030734723983927926336355605436506666041549274109571788836021435566578609156045479570097530321120890115753573688706455117710228670050595103646905655600855894372874272581994205133257766369394923152477104357931043575991197910026934434144924534330569288362027820626909975592683827621030011993162728902863520611518442905333571306705003194812996279736777939794254663900336798325873837281760373541984279171327673707866992446320473766423675012404171465978124332549960806317825889032969324642581411235822202167869944751253802677059783488961565613165804141766259368162132580601096349220483082196497727192756040804464088491091269427879842807479856958769058301585115390280322666976834087151215970443618524090133560731302965254267711892406871954647691724636108415299742039456614388017781565815698321246661561637709390592263917010519398918557940221341029804284719930391759787146158051579694927504495240869465303313043582935114974999203877144108553520157574641989199869139232273763436626826679208508733844892659644958625075121234818555386116244876063026943938878027122311084601385883084949485900519453236393901861675000099736812772003727438114745340290171879827067862402551193009684169049698691469228798163565572482514484012541343167830728961463235686996818023955461908987255374920750120311963220434030618864125842248462132131016916090570009103279936649567406878353180857209930006769987488803134447279646243250114138749220548674034667867536593993385010347703927038663899009451554821634530058351360890971610642662499940851233109322718576546601223191266832523486958462057722846395371635103301754967740367454679686086759063579276778416964756211378180910597281833644285432586380388035681288937581086268815341589610412709111036744630839908470196575428193237358635668535598849982202835781128169639082033125603554409365915488763595941180789996685814499234909703468479756918499873448592506261532888303231215908339302892036640683343161400490603297880947650354732462160613289444578554543483203038361902892375824430248124785334807892666638040919899530593470923987316636475778716461586317065986115219898930121243050259912908733624288929141788716894636971135265476363135274040547050688489853904562708108045474428571289119181742861126424313127391167710266892230675727170461358604832325150598543885301003560451971353766321278788583462422878616239086022098971752572631159718472411799991018978466450209829459082598313375017944149363966000124767067132950010221987083182971036850478234816035569064675753643245240096663136233453260329647240120075160925163281733832270612225842275936407228062534069299978242658658898615195113783417057672034523596877053401037637715875437179259495661681706941769000740406487023111743127047165807100972078220628252991382717119182961052372473489631309803847686672088722444139812651108315114477176345064625799440607113563752847984055324058470863426444271545055302669414767181644136452712395782859816542899221992733957879551840092432369817299559901781582292441610720046887638367878994800263856909837683257120525675189596159578718582813064646618896594488554364390424259383583145419426978769208193274173328109268753235857649397412425742807091784834358451274006552022817422583414532407710769633389064946884847719453291748198794414276566074432640197845628930852979567174703834968052846882043162797673355753091437017525042594054380652227671730093371775447516414749634396464365973598165986649016098101752154627351290865077662360137809438766779922121286485679319444899585025176462563387228429826011462418055714656008225624623933218589957960452807694960844788854277049574227642605191273951164484572665267420888530520744926929643018442265045177503320809447970290400320204758046042401965131768553911086248815360744530718072799713434156582039295686683721851571028346589892300032402783680570132086431309155519023252008274940925378593937078020116144920929454412746381152951316589838115244403473007006760980105373732687142191425008015855250659247199024675152370377680085692978039140909724649166363525932552227160117399467620706475937839066225822898967541149922522908157871659371312868613277925447973678594996207930890091670776723853920841374960726613254330402055589813796213347045885740885264946613819962680409674133962411116260666743913696145101545195112660424296346723303797719856147064029500076801378810767006040367945310871372588196166807492353157225114608234983803101958915085231194285531999450501469650901152594900515130667475313199294134570997393372429448431958673677505564404068741159964391230234898688648387980794295398680018675448321918362755349938141672384432115081179234922061954213446956381982987353980851879668639872824132532675724458019219491178922848192063441687822172773650079415920928026819509441744555652801202122494306169378414903724948754191960580727300855766955734304179875872438490605728757321028980128363438251531150185356564250559947873824209398431883144295196345071790435027827253749835556645585541205604315500552340521610325949936972746329024020139926459145268367487467234048692055354907687920045368889428530892750333942688419016794203463223879828759421803208660751691267577299857530187235601020814615287041299824016053248616683010324965669476278240340707803915648804749470819999505698574945582276747278753938627327645574877235133516889015164046597355991247932399213146666412091761359596374660118877319830860542761879626751729203434305794737660461963678967139964832159391613502657080627278176790138653047584249106408554381894020197344939379807058903410249750475455910488402566873561927774559305000744401776648701781070566797582140546058667890933294865725831321299757393163976692386668542103487174074666613099519875665497973705992672841224754009261284418000976610473726134747030645955994878644735181157741751786012672428639191124608290419263639144477402830567820653465401179689126771921707281717602268477858869174164694452234031118700904261333293974348102914027611888209351993749987699511066511332125658763959812168229976571989830341886094632685062490855108916899857804436488120614208974039644886753370414083392982808159557535604581540737978933762824984000562366576629699668741970851344371392782877966610527124999303694954377744336817584835938094090737190808240611685355929140041958308247116108103566384170811948998948032342983104821580679659115912916429560496241440197127870165741410592362798748226554837797121033204376788385907124625111506565386460829153934894501167833005488674113839070371286791927611813371691614683672850968825407665078810119879305150505634711462591088650966828137580569409917595820642329261409602740233859989822115613162924523276625068960343428534088633798724728689226735431123088989208337244258841102573176330545852107781111296187684632631952869158310388843071661029957910303873968530301602934644353593943969155068148253124181234501255469650983006169575110408028660280737693113827413016687759216789985139161334332869129496705717357280854254366301291832387641027659164177438640902942350410811347557198682633568713819149665820356862652630303775456932653191774768149954481002520702744659547325249260345360259237183194204009810490973910733930361536123820691511080281260996872660962573991859520117957034555475809810416585210492378609487020730119291335334557749380990635428217280860637070886788822758486537822189974625466300751290956248531173679932049956420169059794528320679730203283067121534735510415451311299590306879441939142688442919157288821557490563722436957690242082222946403750179700754467371859667289290303085973856638110338963966138360017890770788223009027270405090527327607408559613932181541246487505002119320382532805279608639750164618999525171472803551367769582101063332081778897207156694991136837409206154301482054913243254137342525315077470635060943786150224630643797014228640526514782992701884599488588524033785738558857795515157267837736563517205779448609322874305865539795097001910188006530602903269399829601209888950410883170379756408320566773055318250779276896767782500492457781699409875111653157213293249567501885110508112983541972265336174580208788522639964138998240265865571295669492361351150891275944217095687130143379176225337154546963872298547550418005728077655846616517030147558826707167299949532564635464664704441715487044321878755082008475583689601735346158617525566685900919444819812219731993860294206126446446305013951825160838639095359100256611276134920280905585790704769482454644170041300856362392059655435829926280277457484219899704130644494730487369902811361295707228369472441767342093718533526991412061589494152229250365822080912736609688977296243163800310402384011528088016029980277349665468219337850449421128795710273353559239029947367140020340662129878191372997397269464071604942506133739049641311068744665243291887167750493085927113649149205712208511136970804466793491871354843696034662699543278459729059472267528768428532732869403956215719381105308564919160794864058243714122983469369364858513313295956822181272374329862836925630965427837396138973546576043693279226983063413715641017230690553380366061419705202711861893928719702449243221212509383924029796168575779110329293976562633761904836626325658375541018171237925208676490206277019866202543660387694725866959872590389785234653351091058631181714805945468964186557412679444137861648481332858767027183421710428486629943279515107130120586891243493272854981655426063524550371273319571046239150264090803284240232406060527001300454840929476834533773230208336603305577046351073013192975939703293484405500338754043363645118942509341106427885084820100288631524889830027369903496704088284303460461098333310972064908463092419904072678144146955694120946222403781430535793597389254723214112437578472734931111419622801951619343902029085704244211490658563340074920437352976889200207222963037234553344037345699287874228773840117196612842929952896919562285396485037278673525859978053131912657910789734024711083727875092880256085884245471607223710476981724111829968959471131078567571851236432994521402110223395414699914227732363145770106635298301128001624549460956408357076072940132391648793527675513579908476214098083755361932423377014031024281964453095907323200070514502907749134139576281027612969649104308087767965081597456808695009196428573123461276749968130905673998737937824451376395567900297061381854433508333336600053330033036868838688689467311324208175962065541024380330434519320480874678447908428924291251314258536434567037502417147591815917417303540135611817564217720285866299999978934644803311992638025861620592469636436934240928970766581303842741722517253529528655645023305175932223993031321945367350946096454518358117185283276603772589031415565413104796608511292523250880805943400534298103028400375890545985701539670484996698980793589226821234985283057961433118845275022707303725501656801611981600519631201598242224361300143552791046910653068268960817513076100447923194133106844122080538425023211375574237138588992625629882192706952668788205094891597858950734232271050805838139304871395910356590420344480020402466556228644991217228646955471664134633761094315605281360972289113573006876808526022160517212175764618167273503548399944076588416070480679244876465819840773618049575735770084012299972474395811635500975245616068039669412757782075462401854214979841744947309414282199344451445995460166195557284169762760766434225225441709392825713635634822364841251897033439510051744204611408524566018239636077237687286575408856905643873739314683079312277427924164352544917289059877750724607291905004010806011744344117402871318886767092498884370979216130137767824379040734106117946664199988640623036085354041032644372475271656172663479585113279117975829647111594706581516208401173417124779144971759915929108750178721387530189534693019280614209725696709754730993381195251964335415877127888680059561095133019333751669410677714028709921861073883863714249614998046429044029715096086611993334601404201209638797267153918653634933494421665394565948063802049580188239713793725112491766168871985199313672943649229326375680686112880571292957193930762300091490497167471469815091290125126557627308161209337889136854328210031095949025129907000965984873831197280531891123044150431822876375252131122439455863938775676258244057921929411808861603965229714829578028222237531213074500366200352083267156972061039623597885989785563965021606776449999428209236155081115242311164165622943216423011259900692826863797890131763519063994905008625825167328239180294117988944859363973479995438130491406780475426468598041273772812576663944879435332019561301352829235602289039960402430128993826794529874172527178917694511914605276500522748559622654725835456285993161583334987489330090131689266661655282818321448004885925793534648156539764814031018165900745414060777695580491250805310031841737813278781114769710965141576364572349405413832765514578241604994688284824314199536060756733557305238765462398859946848583358981102312588013738342327173200150640510910409842157547190786946416315136692925955126318359717814213439922275883706994787921169408479765121932348074415743241188938308427186501794756675286866876998040969594469500601388042383676509954293175397319765295858025559297669233446628284497365004014627939106697214373243695129151736129153109403197886299632120711395048440196463214815985089745157141922200066827015994542217434272956192682262687002387134647047934892534244499215317172494934009452460515214702666558666524253471858036531262553008019570237333486590571513065290971270978302820248577615089018546369445194209583160163297243615937456211659877639132230458523185934989249352931641739833435869350654710656718845586301339139699806127658608724735456675317027395903626124772798647668619503729645620018724355537336382130773239441946271418701504375689380729695342497181608973495905717299661653512749714068717407885829804385580723110601212270742998932605348677414018569311832965264366789519234570197544710508742313779752478913201935245251728164462822068136877490036199215462702413652048787910109808816960515493910397859057823327035770343278315018609650744205776862023308702258740658117345370028574538532623781777862729336188903412838150051286844456772778126711317696313073754312809865388783108680374022090258345704507034712892651411804798151967489463001236901823130513989662413602659186818920968652881869388158592124599887545214289097947722777351078574472182132579548219778384465248802328355655919878995756465034413172146966097552186451767395143637315042689795460102179677845606030812856766599281471277954989745390488159883425664926187928197932631497579889939490820298660245714123887627017674235294716097293457916596765544779312023326633842694948352790296255424931877784882910220726389775705851510504927291510962571199364426184147404882022763853812801594484621971763193729616306061650584597306197863473910219427247742582325456592018728614949699702282978816937204090230629912181240992027134840551796273824100937257600852059298295105167087997699160920250939463477732216993696184045973816788912497162539588173734424507365611849321955208726890414519722276958077332581179238883298412401810424836975092585546528222667443139415896883733001061436536055763909234188440525607885870664740617137325391348674669403180871248185412046900475216900329145859333975537618756984916348405946581674696888273542723000835287500862690079782213074025363959962170021636166379722015992062521516246652515488190715672745431077262980365810694816157684142916380434585182430714996458006736104970805765973976407395447028015403697809315053760465538712929870887319839369203609747086303323288625364998853340207088701993880297950123949168582078178950840573840205735079783328360548026155464171169986615646934289248487006190467758399036015245208407279410882143700643268651612474427238851510426720770581027611468085038573365647457671303469484231920137714307941709511626917643866187859251411270636546439845416965814250468307138264255679759357664963580834692035869103798831353844849360478995951197072845439279181927335954766886582739460076330481917547181772838367920795161648172277609946182033215588188196716595105908028534411295972953811478293134668907051714519819037745050107643945270577981014028593023808166562633275402009730060320253496607834340755698172765491449683294519233829107646882155989683987863851374494022226663865037326223360310001553333734221974543879302103118231991567794036138270255880994811629462020808323845463811317242179154054199756710137840929697307985316336080771408921997265793097800233178059239934773865581260725894831419985101221047523512428038042491408361909572391478463247588947568985153047433324901587840448483957021453098617461561620838418698370144549686682338781048213885015573408460032397185667249474968600883950242518752483031280938724768273980804807966501356452631085512435652617052322113561672629359689098426235780886154601741826259886307006416039105855220351316326235325943214922861542008085174021229449342394385446959718251143110131287951275499626500398916859852550183431907248188153320374171620237003430608884000976583468835349528435562499266562649255100595279465656709855717005456565289520291395663208918497758635296183540801976467946739117026276948482331667415042445035188015609714002561790694289285962475492200797244215760826838993998471162325854668472189133349695502485756702162956401757963604942607759584626262244822320449214869680559459001643547345654672566803385897540224669097940275963617800360985935439006092486766008532791347076001486638321857650736125953871471650103332043272053212844989251708349275954253095338660219367894228730294096315938705392069145212593196038400429095972247080271079962635242141458212356612302850626551750612144474316719616727964475580616782986131816629093076287565829526980983285534964016465792676478966393496567588236453924820227295675998095663728400791844453382420992037027132636117310504059269762915653596903709403431118344516358288074750116379521778987423768529721046771391997039296324961943581132108281749832829804034524002290659279098484082544183666255152278216718610189894360909762240651802345513155103184755348798253734039545897057417930545127242739266123946317157140816398393468208305814757056708012792792188839848298229108275712857871555799538470257290014255311286989905360681611051168902294877337685254593749597426526517944058467781640774988609748419695354011819620940558379350967390114532102874108354002775657324918922033639137616461091749024936877423155349915764987285682892476317977460130937814298788723853337324668000538213803070273925244368765968607387883119327900622933435540171568020797251843818082283325194283756911146357039436494312552181006446612661244563156777334654340399667422793729438560696940335381838372525999253863133044357365128316454255286437595924052855132992515467476327955941333146946230064209790814218568167459894751900501438006992355590033833200290703262404898110057182713727050161998433743215745347397611631223117066529927150753440762434882779373540173763779279537145535778122992380625904126131034077494834026533736161198369544892778068932892688538512512000571972817201450021442463704570269759421433537844466083404655760591242934853237902647403784127613290077026157798255864261519851043698717281275917661361854334858107886561683625443221139181758503023329983153710514831235150407874498550496815989296837115067962644718918662318077623866763714652280816821741681004171069196339585613482346561817999453392227492167062876539103067914548281180830276406383500757461175175101266799258303516441346211030119073031936436321284789069748800340244248792464814113507692189434338057932222503206227977334167931902959781876786964648662466679357079350327689255856189842202501934313170107065812942432728861309703419358392231877168387912690365088276083523478571478000360132729561523519225790774548429570485616946847791754533726290369982477214474481566877750688390059648606637840818659473061401208805303156691967637509802137914794308617158455947310593315105184319062006849673596521872620807859065755930488825469940722041711726116694160877499659318826022485959125133746941525445821829700089451985803950955141816574634642862590002383774022452829315232569127427635348118358997743222949609419502592445652213469746603788427814254926305184373743296717860549654379061101826591010183713652758584748924507212849958318445401093564869435252106828441721908512448025720331565491752192717847265367028577859040740438891727689271999396284039172758221395557014280470273423203171175026043932081038773184120615321051661270917722491464541992232264862990073539476095676728865873581272176824730776365405708134796968547443249993277133786973291734778949802076461053259572271665804240605887689902208319073275093501167839007600881614375496051444246545153189604652376925094202518751100667221917189684026920957254002039401397235170142134693933701128809601949517893142128784244900141483567883731023347084108702399269606220777761380614477865050489867207999049184423161156660863311988197573136159378363854293148000436449158796469590142881479738940603004273101010854126050483889513696000237482343511906270411082089691082620970658035197479567465073663775109383848768103801436725220696049021540508336910006153375106982957856192353988467376574008866637234987939069570152202714129761224027325677805773440780842895792674133774124783555976641749991243834718028947590408956560648208860753503091757032562634820668849239153339480949856939455215267661867144757336497770225478739517020883609145436178211750443392268848763625667479879020349124386637466806208666222894547152872224711778225654881268136451764979599110333151726494038177582366514523168426808559089005240436362054544758255254365749109639558562036432914589987106187232281412052834523984700470863555984975456008108502200467196056861135782319275691263420345370443333489120729933887497329679430308578323939418775248552707125480501293725315397063213988831862687126281313035631036396277475074730433673100743801847947329555828585400689707123925072217973925804518199125221931281278926205811931356427986256700387180358125994296605017903106060854458122977197364530589157261745570544775424849548596802374316290356704542436894192337096788214343634362928227059198924965327424858240904280221590759558245109584956685578929011342217475219317965733757580697201793249841204751255413291182684659292904246281485961923084424743850072364848297561199314901817603522883040713469217216062625393564392006554553239289733066013268239446774484024162023030299411802520958163746612132890310177667521924744790477444216216002691490140612786056800407542857937382147935330603049927245397864317984330094599082030053876699123810506459764897623884794802796073528706848433096242414653225250238529942489950234287114592799634752196225685593939997270398874897161293298078549788553926099520951600424124902954777733484009116978539309757124377010262129322356681183317668734249458800555369235438206714148142165247652735755167524482110957797230169691098530352544420538574826243789236170928915321328697273922920299777378987027515712089519863031513139163985573183119749047061825697681589429517419667038432536984151744001423386826052535179171351172014320938732594022704368411253763244638006179622751260717327314769195629441965754761189233364480828462542754670435429871092212057232881541652149111351422250085207765667833720048794179630248364199908949242845646485411494688227131451770305996987202562713035693407385074749595385683761568042188299603605798432999903114673471062149117460538777097200847802291126798744347112184584524303364077218032257755109330694277125418022888284415508858825086265384757261333466061722469420760741494209202280865969505077341646846501920843398769172903485986608426081242532125773335410119939712015170682821618136481517464460731442208337670015558333296855976458106996934932239677039815577313463419783193445045188273162595256368884632218534800308754253321231657077232034168402991627233372346064900491372459009629256024993344257727458933498388098621294148299154688389625681066563040296504501259833684350156894988727329549740926497341815212963202421169304079231469417938250024363835710592603405961862771289176904090500636910184964850419897266211372377575947278111013918286546257732291550206350349908292446105098858456520589130631132015987419285363779806963329475814927374659350376212912504828615313975454845935916186308072240407751443329860348975041111599871705642823584424001410478736816023557818837761785659282071774677121952801929065777738566867881566748397863378377439259357934908248985916487021291934263275426148240166888248388594678410874806720739903269169437392631073967280920595171727793354492141204585882265371721371573539334957902397704814463145201772934856084796424007368068533557330279859436900127616472054105217807564047469012286138556775990064832137621161699300037345479482788218763797413695015126524415660583024441544998119188897157841323934122238002284655551688898007722683847011426183494699971562828633679260341111083800905828415113035412624276368998616592858180088588377461853578878082918703489957101811695355380754689950159291446270797872796368123135669656481179648745368431458914834825640387513588959293770098114026927927816583107478885061724748661171490063682361015709221385300544069049285291803705772074852352981049518158820158705968006628747815964888126710713646885076441245565723734692059415625960662235480892195875486761357640163133639585601746865118317260531380640988703599503722404931361314586617073343384126588018530149538830185943824364143726593952729529055547521240115347446901628132103618591071526155978839205968705994765671948053622189751930837038278009763386962444969438739987150753068332212727891778821044330024518116303589102169970660283711727541149579382771914203721048951248824738688954796734326783218584023010159903948460026115560531035404301124588338314474213211878248546590025008641436744993549516213926640224762813739191377764749926458094249116502161293249814250250527080062365795459379130913429788457332143016610951165613842394974743837740751926316200614664709733308263468837366467551219982269283126274618465210084960568736396905462223656514790716016359386888305918390161226574057291565855113718888392623141286596442591680179256607679953750589407900235601679744975329998095987945512246327261770912207443859680288676338694335710462030516832513230169655108679434802664951333980949502543661517562106693029139062996526306890627456715625010267885361082681766256495778991864082010175386119640049907785846174809967574311607937785047747782763178115351223365445989189084237325450495888090698825247583628100231606615996124336045209673942504153600891717575897630537884063317109987579216773487029820203733172683034106168318852902864323545532833919820082261283774420290838801281248131594258589618644208033105641536837707617719719817572296996565610170157368026232062629888075769717126207578770572098900724768138909885335657721361456353311422347123843698589518749074322341111664803305359418377961492110745101767225650102614111577101117537069868778133317201695419606471842721996205525092300694792541269309193661759265013097438331332597558189542673881626818824000674108080840784713966586322077239809898485465677272921893427085942380195563042404364747845325781942622726495619944092784864813991930899671467773824147611289660372164140029498393049077625323610117168857754158504088562802335435663256913429400245685059430246444571061559327460042530344906295239843181020860674348078849205465132627106937685191694370942133263242585658137605069144415731043591668887379191309979409136954469666239948444412786234117833432870914249691539464542314458945554426748855235714603332243005481738493710060553152019118802248258567250953879846277511518645363451447106991265055556223124711177258808567490782009670810803698879907999109143645063698059993648657841589784532509885768229903555479429705428188669244027985874485411531646957227786680736404179530662527437861992815299713558467252719183342439591809645235799257930556403090918820527601989281580554999073363861199184818702014614731877872647914114285761862883004276682719206953579396610008681265617110256432538052480311059399634512756318853323727801365362638954461605241303490652909545080791187021325867293079886470571691173470749366558568872765416363431359329694714769682108286728770358066098954545071767093111230193931639939866924523326132059652957437758928459931807033335993504930528091766590679739442508047872363389719306985745309251521245567618430237387407392445340733444641972376809542356641250043481154940647663683940118993188870248251743633714427229157786881437864452313274283243681008669597197829996048928453851165311648043585278235744326750873651115056670305095095220900187106246955551837169226819939103361815625848873163205360384850342774840521161747544478909317928055863092801170647435061982751970837881212899697369479632312169332046198626703664415330661300088209927781047945450135952303106044960459960862568276220667241932264139811830313929865601697434203056232962683481605446897085297443704566013177078915465703678093536494349074841801644540916642492136122039552133281127775431792056571645041384251242854872228692987456385614233034638964616458586701562928090366054497849260159410063467529455510760291592234545379270028278265427734095416482417835167064277503992747430227534242844270537888236255238400711528715795982369387725530526987790005448694125878773534653383503554539730226427074557319492594009037148711428948031819266000040525215949269376516991377275933878465983327310065600857840252140206256858536984236471134968537616989372114968752140300159475478276763592903180994181474413806791612616644810444745323220056689249137037059199870604519844586686669545571321535378234048667116345104235238327458331633095036310117438115435166696509479345475038103284438270449121419873802105098858983476762583708873132955657326705366602473423997181689503498083034854093943140964114693016833970886021429244446038660760370728293462522162685885910314733570506675451803620280568001436415627479497686782272267778145456020048373528589983012340381421555413122724690889531705569801548470055208596542209271870157220392608591162005624492401479067736680276713552581541208963050780354792127821544186665674776651224027176106908111539396661018146103190632243635080535024498868895339448431186454330302471638259164173055793007929036724140355736883617547953590641278280377596974504191121265642121119057820672290832022892937986755936774866254032213989953997723290940356986148534386921512426649319988783843513076190291576427218432556599254520445026358443632076226942668908990504016992884070526562417116061140980213759159128362368280733532644662810834241514113866308299517186652593467101688097832750698772227774578845717351754801538009600773528011705948026836300689882703971070225402810928506250653674976718446375864280934056399415896038560371458474911640350475558554504485999066556662028642281979458139811370064936641994513442787416032015751820152627064668051515399061314586475206779280762872155677892508164574738989542637010545243327464313245881939318332370010613688678707397527238633300431244291637526019973926547658436276129578862182257245839517494781075999309208506762406058245890137056023331591876232553491374489731570430352097558740381865261404984458168039076411775126381948915829582291629778142731601718183500719518305762976470906830511869870377078999800007863158986057892810625770143216650588304460436352412814164303841947330092726169993714701578094171057654900482365374364542042555425827128529916558501240783727783364772288496512363495416025325177846184540971810308142299477618516285671742801428985362288155002544247569038732979179883189670965768385148094342224388569219168431567734533382240684302907818075120591968364427267284358172232480905053124393890509731413012122919433977570530122017123282333649546103974979093810113613480814188435117822387447956068009811979363055517794596664917034889402706811554483925797460768264255458798689998198149124012427712666245117275607735038939288074166382825451284237726503500785265441484143839696054002042868919239523928588942263354377108079894098624809240219091466562573324971417295582796697078674623644687245121577581624297774073075557211799957335076585618089433965172717105168308730336262434642598304141025647278894521131856038381156336553402816120413049652806394878254809965817629377587434115558733456041075637013184221800620650634594877499651416557577616122301343172265651116429742715881968034904568585251275817810117276794302464052423911479938210471597851937641101083109426946161642811084272986005157271274575535318950439836998706453306474993973317903118522804759777091531701411347757069882111131718184833846603721047066563334522017512277209351763415647282978656497533181956984740248712146355013167726333488663972279100809020205903380792271592200858345310388121339785926067495693413038267922599921184203932042358685500370772451166429275406272589030059186891751536472921060690058558150348590467128751485565045464239714112842009526468209956952372188925655530397884730492693305940076956473174527549684110832874421860573433652749214700922948547072309673647812228328500281050189572464977664620720489152007821344252882438725577550017080335890882745539314926806955269655193512752062357895327925513705898485404211590182739169584091889994610189070571558438064522531195056400305465382145418089714567050279772711731649434697421258922428104474211959881880095206592093808736145208560345577882606306267510875694701909593126865716768895917361268397521142475478568791523869285421098853243637119686505619600028297734668752759443794757746356209110587871578064654873291417315197399705632474019092920308168845384925414269083363364300097912461884378680344929023301955060707265926617369215869645393858793839112581962220755017807057092418914837464178068198055812819940788500895873803309677524819115675685816436112827048301266755304481323085718123565538937829586103465428727206426627069461025610154816546502020309749911795742118581491455379048225107406891320935954268735439681264414742325681332077571873412922582499654250144178880280136885168686573867278405805247465080252510439989116138592903775135461252448339481361238878594018224896101114023099074909299340113263371090968274815925803743970233850400585943689233876179956975243985607195057269021551174834752612696189820611327116359560375965550214174057960656529201770500399328984850576019796581641855764653685312633222240957334629944491108095175630857016097917618711323474699334260918092619922089804130575952485423769835347652272427362135108698967958798947468398066739949318868253892237737162678210375064643209989376537717319298150279923935977747676484025430307090521001308379610634805184498198708116909162947708882067253290599617686578441314774798393115634438105307093868700918930823645440400203543780864756451834413002948847860340119561525687539384043833111419957511672726161470834531985156907195057124003457572906937657154525717073420986000545476129697712352302317364692046709045826078931975872012965747547451678517108271526359929701685815769135459097327931130967993160400433680340246130203390658405100378666152673686976181831577873062191403587401846976543530940042181564333316787536550797764534126288437764798720810036538458585745133663455981840726451311321473248224944262283726643709392713737479972831811194242700820946197760992108032642031689653053910468120874949106667067541158665269938385064648351877094659917685279869228378535151641935862395018070434429279114564168328233544075593095438154610899303844521455908709634410482189687026525896705748332819651041824026098454231562382523618485686292222531660875499686616261811880629671283796492616588111986632000919710129044037523056285220549761210241587776568583434084537318456223845844975255458616603089212045458245734133459397134034906616686460951853259536546509906336588529555663650749427859804310550196910774949864801238751192391286879996215633597310059852048282518765960266098900207182743793141481949726814675185622618848005198104895099327403443024461809484121967547676340623903512975123169702447429809750473243976630872301438542357860515765271775059110225198771724696355351206511911623930025880772945650584007919583268902115099822299684617015247843115595645081967923021599900168379978051420189713354499750278059833828310535094003827630665663450113972166799530524929802630863101405334204771552400800830613844090763820041846500231248379152963286088100257009056963048801436500106090722263466424328761115858621448264619661929414795710758535274453076533351700492726133742294927189764004892143411927202546340760705555528434806175952107649812566984067698673820333937870486271048122707069955373629866976573438280100865796753129740541812821318962727630807471552670205939977927158148689951775461163118529321047830442967064355378467465971070175002781153058749196280136891979974837997510062523606189800070726970796923911209429784045251582117160747825872025266044401618317808627095709119776941644347294234123623779404685582396378495917380553335801460807371616012611899755601630178365692734153151438329261572861412539084888936459250766479634537160933006940789642517497143317713296344165972729172851510556466958485032596101373306813436241619835346168952478519849729378934588978087749731473043610005839593778907144362799149425518914674159803271051125369133537094666555470344069474088922323183231476139381812023511133877201333613640003208171026800752688376377505618451942343022062159013870959904708877209510192475692958102491537432124473427487534583069697889604256036819428059445091804238560182163727252767957050233693733195723553129988322570528300656296369397203063664531421110152956796388032309127759392829411341468443391254506342964949330778098063014039876937253880338826104216844302399821429578885401154744287222494692677537565654522772661850781118531864091057750431674764657434224443754245351987961321611411779901326812663167460545856633135999948834791010159111492092870416092009791993270161600388777145037689600934147339271107880232102259334037204811479038682466513207440093754108495950900330077767757216617021692589247293402199095027549153863037716586577578306399973979565181067463067388504219622336408508720403596750215960643064347485579094197235514212426247121773997027003838029568216118207383224054060096381776339363423588460726031006603794603490195464866742775330460114548823636269088481762180862174246774325010558366133605728205549126890892663827552721124038484776995225936904458806443507476643110202820846744765673826769112205170641298205888750782367451035639919281582188685616428414535016110126250097292724446536933149112556697095471950676830915954981611226404992684198911136389848377457440805444309680647417111910925721552438323402902825483611693652494922346947459987853070380889585943225962933582382180697504659654920985341570661463931708864022696607601932225583772093608454433488183328959364802265770819692469066586806587792550996990614224853291949582276704358729189086387168626475371328269410585362421317801841961359906903563592577430953664809374578613797015149381668478271759952521165130542489978821839890156030865240114978550600278922086651713440508705997598334013658773424298190758270459662835396521864231665037472141470136052627805960315392562802856589537422309022704661031117143904690559520287633633081409336553446530214389400185251290740648880341601892254650104838763697849126463198739674687872878798349098677302028715852656852669682346962769994515066288780409955464641072478372005637063655782557544282061727528772038180055366287960312632555229342621718361241299608744819149032052855147907871745242776322222143664120940541673921413043885993901486669269526347235471999990315034189065057824816979622166543230338584724841860743930736529551054983661648873077740854312944018373700066910337128345514309138691547674942826785247520025556215219126363154913315623254494881760461669507994070485644571364115649008012787305368296345751162272578964786144140248804763761041708340548469837185253391821121102481780761151561076119234045290378202382919824933376400019823303549415274232656485596560373516635130942544071528653436799439801510822965147357931800486104732910190947338465333591934173940963270435050845846730451137422157382063022443270060630438380215324186095676471217220085709466143591998117624756447779811982705605527934430748503044031671583795821389078764193707952740699780481216387734013730011282588953058214124286707279778333193951166152636107689006084067557616983818465876847015190760883949176444347321863604581472999917234909795880618785015996570639926110154625385552319480935386808951873540296681343631153745251752911872981476621667129927591070935119190643509929181040720442901105177622420368245464966045952270129087917891179652187380746324758596318183057551798227051297128815434308291955583345234639615447938753851037204066780580019801828855152718185006183018277751953960774838994872187667328995216141677920057933104207962250125501651211935878024049045330713405876610531921308209506806450996886073081074976148635666643094618392764792550401619039951645393448119248984327925981590558341995337998828490940903156166437840772304940058809427510347788117297066549169516367479637583073803050328694795860986453028724166204295485459093079523319356997257323317402608003972441525136796949701159835965050836506362474682701651561397792831740445162803335308768042691363991310134739449669675302174624421463604735883703792344867596216152263836204363943291519947112672057732856388133003866159536664607425236962733202207390827143384350032736627683756005501794008232933869061654126596010617889541545662776996435724206611413047656171699826057710385110196096158579336954244526931681110426903694092625970710565097245864285875056517389432807530148650430188490245079514302134815318031635094217815595832299936316894043194714495607589406224323642633647254674549893003328338809277227462168362610620958907445623773106675000820599848776635887061559723276923669906726139693543210286791791668666714519607427955426131074222177132759145785241795635636207684805650643088331342473879939145655391935649625082135677345860836793141371620401202503263148489636404060469530066953797414002634806532430458085820970249575759729231696449686042409177868282674608688170445206950832546263624092821004896880591804408132855310157114029263805715251028950373233520903025429504428275831655124818658488675599193563994667431061043724745001581782857197204677139129077346949833899839412647130871822355715313896781143617293206908622276247222306261485915674536813171201362559497034332609735321211647814309699542994652757059021780462544173944871580281266400492830009318843150294286193717530658042138840485797788504031495854066821926991351004576366074012803795235814539776913195127937828558671850574344839180021804616048593506668923624013640356363363005661429751062069361233055433510623055804181069989872389137758830516880437220309506237404296458085934128502310337615505525021665440334825203065456298552470834707873267856595336323940986901811151370526471728319005080378951973083713514925981805535195521344786764634011094618109200458008721334915141642354457360943592379281369583335796976342202654971297668001939614287791684475328215956209429824312611313701656086019387682543164225022943288804789225490447001914746226483555696337816282344253048478876440901560755671994068920861423583849094890075834489979707986939117173837817955079052448627634556626371752122689470378855445716647945246628516620072806228582985151810478395595765725642159355451604434489018782881428621773865813496984674092722267169428218227012639869700630996709368196534674015848166308016374360991285580218589018702380702583654130037955512371705457546454622226942264486336607835665227225733764449771468057272039145539568358400935516744504291130176946157787890637408650313135283860876445020333915309553238485626184867400266240369158602543144308609570547876295390223244853049923755263428308189108680188802854942336138742560201609282251166190384880500616762538843342128314204494525807966621853293396562870587288853357136040199558833581942589067308081882268199424115977789156747180185954350433079617802824522692155479393591349743075713020884790307101999574964808136729077993054332496640884257987406653553184177620832834800208040152493412427918213866802450692831286591529382998475817395575761663052375549934802540812467144462615775394045831569345170554188286897729827784806259028193043718765464470598429449526549739114588131798355557112185195386191789056485452321622613086964618381221350500552433040832485336538054857049745325631913588226974889744688915905199095154088238064286056350157609078868512453077229704935729569642143807701517273588543850851628786795262596945108301733349784335383027640021370588281540349439287027919001918179211961814810404086486832784536177199726612386629357527228262764484561778724044465849842611449199709597346341813067783939886762604244562202356744648556412860891638922699754487047836071069427201822530707866502406607710003020251010433352424133333284169929110259205446714745457249326341073275173811236999007012973991295741936062627261548891084193393454031115078980005781288929053550757758135312589665684454868623592221991875199918916564192468166446710898431184432068285100343063456924912920911910095977090891611477677091052322473557238301074265959260206564670117646168659865624689950194810337297723863866569601893107325879565969520812172331536197536839816689292479249223491694945031368484313314389519414047893973163517011546765259327780861879624469057254244502362416683733486766454369137062379175084301960150807354200560010869684889835831819719557740830950795702462285711305625944869287841877887742691195115716502506425767421105961684893307615825805107231414990289744032397864429482414925502181796486231997176586341357817790917262664929408171597053668907443325352345709577075770624387390661975290580574823603654493882133926318444524504092735078537050077487630508490235087148657610781791134399385594988079295093428310527456349729696130040794427416069575603253790420076330468449136802163834324844226750483520393439535323765618751300416551971609319772964932351308207501428291813172971947001020143866757031956437426587631878476381920542373502843953655126867944569621366381729292028772794348855974870707698484866911076489138808020018789182530788916921160209302273462897419185828964895575553535834802163321970145824461845342316861892707752724982419941852055722890793794455007173243281389428571211257139380324534431259574317664031262680425932328200848923693542202945910181158559135831996649837445181970873100118499906265428326447785234616684562048888352702105347611622983800187789179657072522004515334377260001965725943259033115142797790500219639794694434263684937261151427126451774263478615774595300845420555691295891085522774609791552569761217636726295486877808530297839314381220013776478691657633309263544858102409518816148788385946425662692496736092715375197506276635185357456585915219521132526867058121859407859308944844555386149304191293302530591272817370435097339304730678165456532840322492176438592887541769296994969082299057127963501256709186908583559535603592813385929560439720767344871656018089931364294591969063725853718508324527670877484431646407724201793447494923660493060981808789840363155431684435741682816421625411202773536297129102869583663831482500105579749600930970561421532787393932913480767112141052554877703323846074806834666009606149241777930193308968483080656722579484826881971025486445951846899592071806935968525956595364156717449897499118585826310832289356039307371066630210051811976942274617320098378082640841723799672818137946127445306754512353988286376653086431918645437112109960887316002871768959465952445324351336022828303807092006209072524299596103421012321920209469832350670851925790010704315423980600941068737207714377848659961658750609705560582253935684955004494094826033738098700029246430223266837482723815490036605700642843304769784048743692867623942630029610481054160269453547049345793786799631560743517259760674753221823391944309100671356394089818757806555422304846820682137230719418477354291811163225647972030119181131057331480123964028689947841814918548032077788916694455466839878474904671950689516052230196283071704235796415193925898933817029545852591313072479326319022812448360892875787646519910421067860375336761852574173513030372178038516279263076176954291561248051213290859524031538059009480908333644201618126137649579804090184845505993797291261185188960689251795741186013035660369180377870804565018703050078523608149527361181556123601060975592271907042454086482943264883978927898146276405798036241612271249442041326199167531789264712758316816231395438070561563835834659621038535421456148620100271757613579113539284315753097194021798149864437454791014025418859603174871922164160578222395702438047909709966041115257048860495348121510335511716241964429263786111332940076492104921104232105586422842199966608944178649337679500113558191206797719527464328212437628636117826249214169991099121997063166817132575624735730161317849362865099221253621076437561220346779214665749724446796654938103241510403243190949209538837292172374235387234428423680611405099985236575066839060925477316877399050334059484841540104725524944510366840033293019067182464192191081342251805081947266691892261164173603827606286790452783271399120086540634123350515584371327167258577891313991026214344380627945416863526707514410974630834841346851021848347602335828341898632271196416591202143527212063555697039172377350042696070202119619354943635045101393790870679061703754972858154304283848449501589661288316252511014671504751482970442207472863761285186375560704698589009726869924773624676586907473433385597286131456976880162514977061940777399380358003206188933804052913219513150206955105367517565216272249701883247458320662935725138252044245315729299948108762967392218193401309488745734482883203451997377970543353479747994669696712101586164884906838893533523798057361162880735136395157653519366179917150686468178370054899286892925798224080989502375002584634856157297522423301374945835493524170767805992524170293669016660637363134423819086580981690888491619337619318386949676305283273305849735022467547508554947297175804730097705413679067707608929218376308188729315538459970823120289587387040151453376194465983828762866690339408128655430395799308164612179746163055614890565957236128937179484519038257182660377786009063192096878756681241991550840807437374135345139975216844071280007106280909244139569320482290824877664092179222886070570974297614818535370460476396105558802753849024876355980520887693240650096419915286925752932284846186814027029188549023208058170979262375528017501436958070917487173071134291019245388755704919083443018473004268068472106387695265507541240906068892009940320935064064062192614910262402344562211491519419033646719059737944913201552908567726329735275524422310629137806487825968096364510910455930490927425172694271679501053532413559603181264085012725506954382573760049787467873067184591697909321161048504508099025745680676306128903889827683614452428296538314773763043899930387901110822219436012886171389117337660656044261049618544588032704969312650004018385114115385295667249942996274439928235129608044499672245885415700008004023946836704321283271568488714030928111134750761603244825587817927599983110289972576077820109984613085265330261650141766332546709375704237190110226848839443814627154729612338675922328182036781126088946287077916611217264559667775858526537296294037256300416953559676162176549248800349532477666951125906706673833696244263462107571007294441934984666075622300151992647832900023679955530106478823359220428438934200663789750457968721897371196949107448926716181345497419061142409304664619392477799556669120794258890566116609623261211657165282805701785908075617707235888751400088486972794538178170440477051050987016035296086007429046198319375966986137524993722470069852806128736328311958312775912526291085602764818052686818683828242910353595937947976171353120815003134758984296992906527262630455515212627511244644755200847385233358032200822257947296546159836270498669769992549755164847004640514068969948485736656358553732099409468361665080145594185404464478830022362378844454512961385715550359006281452717626536766245813731855119533656376669611490869834092319830491822155071308546160601544304053299933782321008513106362910879256834458921466663038083670308835558899166047708672954122221765213432323476774183601779554758336924854482783010806616376833091665614239324082804134303725898154921755035663946961584829422516493278789197170779756519318323459939497414677460067478935158292675205609950042189017676681626270466037546906728965839317068457368475536087844144100960954308529371116037347589973841988808610196909671461155605886764267588107303387109514374888377852283972115416101559740817458493470910960591799472396854029247779511760861235624554945301097701115247398275362050127918653213953825928937666411353349250564094348774063551482560567106558630165972267569884567479534538306167691157500471238920231652759226872595199978227527542338580703478019811582689484244329174744373677732322316375566372684363812211620657123663967431994779902509405501049370872290986922797875523788197655970355393965900015523162465109981084188579998863239523086631455507878276790401364059792737150476768401073073263865379246639375907969250354047216844322234299186487204196826194704398765462731854444394464833957935453927954639132054534361741201920427919935216733757504232007847557742785876098828031303349198985831444614189921982053153766935082371325470950180168880422050328166366780589500901363728833620731774766834340411135154084124899342017707762287457183381109803890233200148439311019170233548813416684355333479127356513419519322984883471837096175977755901304249751862980919281424042838750740127459787486423826445088541486668427010502865223207130419377484097493400554657411114340992045569629494052938627136920261742237741629894890987679709985566194540987862194200563513567283001884105264239923770504174262610260370703861270843772594794201807265049933354316148193544806046370645680885599284883725386930992871811637092625170196443709455259513114958923122248944321786053356369654400588441949787127037510603499956869975343882466501230938755429899119575108784116170524506676531923512526740516756281045220185464807357778977026318148584182129969816082038820017352370855447595369622013363523896830890455649162336631783398809427677624315652874594387942403692000196813808525790146762296959606777653881562270985842832743017568560176469419045082554565793676139691965002511240246427541727386576294482405350580044801796444230640328969546141703601529780323943594316715299449422825457382545407201363388489642134958791069433210974590825197252074227242950396242231825792383276100921922331820742254398016523966720045041976131915407646799271905049557962671560533431680478380353420494236891844822608945985204223261010381030866708871450751930552100649363474780283086771930840474389996376739811322111595450088743293674080568204592199921655820483471935034154696283099198469913366005905713386040638255082222562467655844482999272718127481295933179436824836280654207743149435783872814341817711634583694324641070322988436843513609527205435522383648668019793115568997067179203592704503705370136603182631727328840060137975480020303406687371389729401427479400710140646893877111786036169910184386966857203805683984757400569065191345414006493013745153885998692056105313060566154797154650943014404408978822387779927314329901607217373053410092382642555251940901868182779906568780922303194487702900596217777043165816219721375640436163939360722004383341174614673588363962360248017793173540031387996917404969449915720869216995336480638342875794422462220809579692756098683677879183936850081987153401741617780221510650914811008525482601260877173865976477475756315188177130602011027748410157362918620014424241903875989572911146994916380954463428617078650730414780448946962740320048517986184967977413265315483239028018250428450256964947445119368489930034092121508616040474902666993184898844469278087429621795803952486026012664366122370127405952870174489032176125093482429969806686403011722278365681146137027271197705409920050770515873188750614831053678406277641901625191885931108054319548172838283266098266669406487512000392725630798026467930342248116159109973887588863802052444725429152583699099564516354434122507442112957118828874864782284029084702193105684118495995547171436085047887830654936839459054378930315061847566883300907201720104193998528050758929581859563323789593310265964903577937144275617384412856866027637213109179772659984689589288042736125120840502378562794467161293842797165537679155612315328936627357842989111200442995897301857036096879417740168802823455047164167948506268017014564246443794330937815377752620831994194875596037290330193557989651044446883723999941528943039558885921960426814473278629575642544567132471667622083218621676200419558313837655750869635011168685892975120467897381243636666205899022804892024185225313417742744327489316123553128588196404518881547357634114910989028417868135157225809516565204709825933747750680119608429697837113408374566585137949385954712578426219224321314822754307796265760746676019570580128887558759354536233039981400031982714220251077404608394770385922894047584653363017221469011370188950879357730561281307045025849430307811739969412788316061061555251391801417441587457785430619677200495980154330421378974307054674182559592886630030071007206042358648107531906423286207713451318543657374805183544201198258987319607074159555693228509731532953573639430464922275339724965766062659949732819795350922182087858836400759035083417334840784802731897513182735984342917333520198066649603931693121188964716853902427880362368861822595221128502635364511323355984549237953870416545915132715180823605570601093722775579725602245141817755815439545139070397603212471062171847757158519107270621788896562501461838779977857020258250391002240032608448683654972987897418589154167506156231190453068923858825272266879032030954994063045038804684371697365298053777770019501787185571424068719128890267811942974953986692407213635913440662778825514397841683085541891860339214224553277225498135418494497400380640941760388090794983951337931986826917091580323031446107978377224831057578449673773674595927054448249595569466159347959744532036694666228630118660248949470466631490286413802200780798382899284297384088960384055841013090919946622932278266509795784677690537294424057101458155889780537010994117082343756986880105977756883164925188713218921915488758049954401386870122404502943180017210916471120049649484042980674629471797750643562634564860195610382335550363051803957452321075979356914754051709913276476587601515122643014644116121146112740734935885708194975746755240298093231270375310679659441085625851992957308797314161196282098486025203695587907762671884037577899708073596839587844007397196356642034070696383209109259173908315879056754302364497509296686013436466561831570778593281923372758946950252366748639874836685285805686570014695689291511607999407485649260022007276258169523941847991873682103287545750472415046247404796558456811863419296931774700259712052800631865703385744058407370520496008193345739228096072409948921716225526993856798457730503735625476826172418661825109498968849337179890257560234318192797297850113518606775168664242429948229583385942841808278802424223267405783587389645389859487966940972971772566214889494879347831805204160601813286299457358407320301272698029144718355014195372131072345159878451358167525837096578671983381632297840114777191692404496066669366042383607735811512003160078795466282074920349306538436472466184914796120482233184204393391959970666058203805872968358285396184429988174744622514920823602280882775591334528190619407577920367030231378040179029583932922674876702469008339703697039030968572800118673729887325880997351683233588015685995208314250167580314221405669061921523813531998258231015351179858969649870074883719073421165609514727944399154677876261758262550436637768659967633249976805441880878461839953757585902778139248694693546886423819021458654014979614923616883559783056864820391125103932352571573357819511217251347590791228392970603075256183145903032866174820748114498868431217797008160131542768440218449530252188519097102734348421380389065848747427162912146950827969868268287183956043049514079535542054185478980890420060180559308772041362574308869230423167837210437530236266518665496086133242524876656895397733648492125447006469061915815955258169188810130886362296838046969299396637146028151217251675909948858523868929881629508151254502971452123263371333261719153380632838870930113058550983475694337631835915115236745953189469415328852689071488739939889077834513289551061547235678346394162062682877391391599516869732840798627525384215681530191138203657598607144036704873215800845337026258208844142048181232199414731256344485250229998987052002292871833144970867247800380408157883240422367642831692388830420123055579029888464568304872545715029615295760615259486709594853181122217645438096661965721737961551377513895287495024178809239316620440671536492758939967190002184789924160154105934899865625199753052342877060377641513977903532371036855764616769390067027027386485128209485135357900721224807819203343672237278011110982256218096385944524347031108268881577168885412432134855971420479957160072725084295346203289184354220933461908970960316206113250878227996543017006533220529171766416080460338097166195115892961847413581425213736829906164250387130949640382552613987150619699931207775903948686493475298713815359937724474541264662652842586312411970970320962878819261114029403467763541798706407114329064926196598980560361201603514878262768756428998275232913823768397560326024537112255880386181420837945050263253386319779134570778351787595212570059416313331506500232807895349850615518280568310166193931208124835380934804454609476995527591869017061892226599500532524352216156246761279716864687755081190666869381895544764730053831706107858998539421753358397855164350101751536344495830150391048191809534541286577918488409863042458833411556965552549164556323350770502102054498457234693826234253624779148457850893267914148288391717790849178011127725263280480329595126608545049930634435340666830238005072492610266380952373881436915962004985682532997947473081765341681130335982955037945064797077196528583363346792579415018537519157909573209850885077024508488100971960488531453920754835330735178784552187792469535767421177678400603538492523883583690437688999840034795328893352393182261199119934192467507317066231999745105196969571067919413612793023444358783373121290474129530525885475515073727330092700445744581287703536272556929242506743146945594220243200772694400570450765976195166017245827001823088149216002284314143258561395793414367771440249984915036413727769150689589903862246312500983066769518517513281192185462299506875013879225959723729884027947732423683488860747197980049420019830331183647109267850568180133309724229545448732543865383217526135773288064055080675131304446945506472064360825415160647402538044098407725035642050792164285613667716718033174488835729605207477417633888805540717562423455327942504552639626942761727126272332253475098513022491005357097386724039000645176230335940418649972655647329691042494280058440586187672005177204262321226401763926831207325646894902802598792409778821603808265025206833253334076994982694342640388388896466435871294263349969204893642591076297166460839085221931523079156328453041574379366940136129746602141553136686210835905391128822498662366418470930768917297570296923164153690332479135427448329877806598694286551771382077315815148745669828075039217755890266290084438543838038300759638206676304977944536626046047288065743835504224769169862448076247103194249598022319865548758945939409466790115219630388235713883931207376117736253645480646049901162639471172922910182592150414661146558668211934772530651261732011205797405173388488285398277272370581126920407631033154053750240295926591291819569944571599242698650914609008857426592646350998612630216689258651028489603329085242013032873246422699626609658678357441947053694246208037110674442720824237260822225423345300179766964801105709175963576313012096548851514537550248232777261421163133648362959994771861031550188737767755219277671485039139472132373978007293209359659764289403746603347429791656083703694250983220847156439139714087011607429199523927202464396940019831657663832038610739168888496272994323054548190038076225110126872499856930998908039248818092545495911820503937693574713347739812388671774968113267977280078756725161533229993211139673212388457319325994308429079784771754781558118218037120782099756937423224736923212765422242277619228459595224673775370678655779166683337073211742614446538978305566257264300432335821849933428973319244380750159889589661658404674600750260897821183632737127770824772246921512278238165582750279697974928086230083072283575842096049503705932891211388932364459947617692836664506126193481875907044439689743844216184913319253643390182971022907974764530103278607957454740119559295753872654713417176766711002707303860885919619301435587711222227759008235532278062542998469318466181123926939852991720191849089125064193405414427982241003805744796090261418346170938438858330508461560277441490053585954843557960525004649383851074896299800170918408610425165601965989648728235638423990838686317589188437232329691565514764160420300787117872529065743101919503549855329844671666075011936508143445439929047450920330218335958361276260709443337830589655906238173009773267133973179507393564547560872357137751736851818051824393880222773906913588816782806101019545455775871307095619068012421259152205764294482631834378996612823515084993423558332703810932039783449537721272418598352933248263050951847631647398960007164170038870220980292254881343069129631400739429125494202567755644234743946119758383177171679666695803819672424456833857304765649943408303067705011195518757480466630981362713442106832860981171118361759431311721276680747748282137712369060463451991276445404823806432178364005569922310397327701036702374433754192679394612236838688357738416964404883006126727341859199038112789968493779091696223782904596716083081142062592157324742402409122805072306675522575611454366195741870451996588329374429116885492357106956826041015175710317760599677305639570339511598263942484635522849009825513481548546391904348802623531626433593620178964184265203866563207876803437049242336995209668684629616995723336039431945865976556309109509918541710709747378324270323295644457209427745757495876356255145914997230460176393988796393833919780804534898946498285503632739683172967538038910224022072486954339078616320424355347742872342103865039991759475977061249609338974728281394475043118535032399295381444563339926728768401157430008304127579268649713573593118166363562777044866485027896286823534873088206024909961099482467536446228607914848439057035191915145594886049153349433515657618958175605752989071264762981845908441101192294828008954995662766442121676524815620804332161004556173260071903572155599011707407146968777993113273387117976359261711005608431613584895319176777129119849199751657218596885733759109838464874433667157056242800397648147842517538121815000596025051860021102463547738126152320898538272358667833303916419563408366376077434491278109903590381530892990498018834505924636517244474785777624629844396980258552852559294162298844054378464308107979969648335668617390386461747774706103575736665331359672360042313343856680378109923285644356212031568644223463079765813284695602046670486233849530767611840245734317735492373443419315526637141259237904715120878204778635514865373668349465194048971204619881295883877036477072502283349238469449490705805397987606711649842849805406660535399696442777213036856106965587493156065309903913404257299521679187684374917118159109912067821211421006987790127091086869545055054396881581238955107730210461389634804621416165253043010773916677427762678523602918398760038156742507762761605115981372197308318119111102506308031079756835018258537680891609009559279670638915659293695812446507036733474688457192471647430359694517084249790005836765389252685955296337472422230940100270768968640544335952459090013021554236772944376360376753913771220473569678600111328546859247296267237206642120643497803722072014515794283627712917884953724911177537937812909185924309239574198541024621067805051421983028254946831418880961646977620826776864871820954489842128464534793177090843602965961994050649311150078625057785645959299615208241984316901786530599615927943478166266085512202430340457204192939332230412519155437092003553865923814035784073181355215649130403862319412248737411161795568263217735796888217094327287127184426325986887662106802741755393700464960389128273565745545210674169110226570024024623770667761684074186330561887997172165224392885716390556374890860035036369465703715255355958236926767784631016400675042957827360000739844743832881425628654475148257997560316722407532251158775535709910142869982010655202283973750264334751520073491205218807396222338073809270893289567794512758105427311852224116539502318953196320526890164729909820928120167986398931170655263762993115913252263549945779073345043575923776516269802872426585210923072602928559101198655395120867684034066293279613127958568016062253083746771203876839970961145054840133277425048065825489431774522154416403797974206854462951767233003963970848899219308037773377440359795550822381490468817123033323845171716347081005155192300159749418988070940630089487145777980566374689274086774231762280529908320844113623341114122180983513457906468604759526309081845579165549006326403653374789288343704021484032358062853318552743752308968296417571268902905489106672068793148023919537073317063286191834868854084354314098769151127146078439607071812884576370376633372371121745046700626743097733316645492546985869571439997054461286531807622641788498155030625049969339911588376497504890187291601943368346880309900728044459152590009047283565217006526769820534400826612695743319071862429535068913389858225148096581930055157115544899567100977794447082003502018941264893607710875449189331516658721331715711696446890877867847304269208462613112710537633152809894042943296495806375559902451462277954223732021733285626807441674697636543772052474269825372049822732313858345609385799072179745631302771627499461435897907437740696167658964992932763661649360911030058707013761535297937271248381497238352838993837651162909603431893272368671458139106213917890804070655594026766837261507439562378297227791763262005483885618156281295963873402155166394606995465820699495820183691070870205455327708095137677887936614111721624742153390603344052208615311931376878892736970774656058351694131986925961648024934978207885525856014181343361097076644959791516309908697650195826936042514385100097730279052534068787902604371746904736475503678161932813486425428214915755041967418752147600179706366762490755579206011352471220417701993359714506234977801049397104834609082900784165798991063614331333711382189635949193826842050088638516779993564694844795836875533755845095578099724419706660045142903623835884672776039928571477767387978511947611245218214025000291741878718942696664270468177667577005790183732895991006178876738018280912036878756154422861689221025768010601532098607442761396860902350412117872020016715955085762091665980534846881338607965274665115086412640003797796517349546370191960975912027470299640573019950403196374298261550212570942927239416607183713342856565644083519245329406205516024954294376088284031586355356020021389755107245801831696096889838650672220184852260251716777210812327349563942146028389440612311756532193556989957783793222316807809116160827495258630649454416095619455524227112555637523381962399410954055239375940416748865650061686065300028364194499345687224032817559425038408955116451506449650206047113679921504238614524629091402254817011287736344451359571667961571709488971614418778304279892071227756403292749263520689134797273261814597892039941998929360224627905368804472146354165882001701159038973981783892655547503386780861242626918109649424728508253660485189478381853423933508685910286074897324881547784610176344764210954361469832391751904352514295305233652102164039224151055802773774590982202307305865779068571857818187083084684041521071481245428837224875423128014901913866061467111433487489530988258340243580155334963488839093579535010388367273413570960306820680486841423531310709675148051000278536053271973266058469453896725519081915846223809224034038222069945722075869831317724456891342066126566038703603437441125253448622733436483676123260521189718437223470656279498771402523526543729131086825036661595315419453188051381164042843863321590303716914699391980834117110314518600390753996061784500211071654340320992682540966611842786308985306565230217456539165311816576400240389792172049366290792020416596929233293603223982737269174717781262971579630662311041981213545145108693361762133260552128181020412833011167431869287895002082894264001902383599749708205761311299056170690788041731096238600690223720221304272433355465926233662817093645300224126190633982185195167535586835675661466939764721472512258019305395553248553897460910062582694777585830485634123333262172955945708940727132752010246840579791729339838436472440282584286752792994928882571117993853845002019813895414180563759812224609662065769892416616689702210304881764612732600975859336851486001913769896592098708195825262784201480699666068000504290335276659160300704696432720408921146899982714755765614124990251063237447771140466272563021757126564062245257696196378943169123553825468421789067933820624431521498324983565018082198431505194072063917554246971019890994087510804312793006521782167025571308223567063451406142588011555534124291316475191358206060126380194260654125608208253397869439883796808602745692310680710324310173990253076074689581940232972872389685748977422344181391061640087808002523640294671847111313227740540734773054120932894739609219478431530345761388356700499456489806424204954991100317526918822410391306287551340197863687390088293278450075288003508073459082810261438810926421854636299171210400077994508281020967023672386412344112988241921907472463373546253394060423931381001921907537592392208977099874154288074774978532675526814856664674440046297598575664508211491701947567041485923629159069275975489110166717942159161536089566411790858993754656818274702772666637318196405263846748510478963419673674526005197374557986887395359302570138367471081961989460589740364472565199025124809174718907739578099015438964677363580606757035390325050473720859478661445938607855818886116877972926190887998400300852725307558756530040766751061869910023720882859752444283127603919811769556193335368527694710587115385345730320833259234726005778060282615270835879952676441278042459842730536556960126425577874910272632300621629696626368764522574370029621485379785502254596129109496250527419132343311005468063155558656617136945747851639177228953755922437007390868723177454676334748680979825932776191331833631615625573399387190865224342963135437877486526889512016165668582166719298196036551050680053881295658839226068783723326582871041299607882416948302765437823367846172608818225728488735045115155883488746311778396374622543459113587559267387157453733417526855593725980143022844321449676613298505633416421624004659189312749551981683243082815484785301852020760749951418641826747769281800650819143034148185398733483946396470911673670430574400977926664729557478413790284926308406587655860213862870235918772410832134361390270985961884365799855646493268804474305553142378462101381622408780605678808381237715718500148379392591914991392407640733281047292364245814214881521573986865522584141843451432191567896962126973292040022330487519595563572316195348586930108122033524259860748200479377149660258042316660568505187639202355005378057106139245817392313714223242865599127454652719095271334585164697756694688273897410836802786429975180942722223311415069527667791730469291141304453354924163470511407860283587780362962539413338884656788372714773216556081303706654394027747186851556261660663273716431558779593233721683982787301260241648504744674593483585209674380032423061195746721833131624498278353245227975263683340099893671739784113058415200929031916363468493789013233100662106968629278711549197574639792512352519414738480044544609442309371995082724022047166372520101757204862469841654613724066311120313731596599684939887828000640885889005803715387861689385906925288262708537121655713394653280114555561096447506325833158534647880254446641135843268532868834023394925151338590251946143256121568731486513610176620245760716110226095578323215144806662054977451375737406799664260892136181155252586119224351212388614580807877187322667463165688298197833133490369011076107824314488886575449586392258704542552697788814221288463720248799912859449601436025451204046196940739163431774334461632474110707154761945739517976690330082902308850985756517585207767739779241916801125141882100406387321682482660600889610792256787707677991325560336211680118047708220756614232687354497542917835368090777703783853268128519556019260201317438645208414580872507061350790370851206012285999359786667586177813831973583220406044569684132568619090361176185930139836255075302315256704407075614235894409371184355363053054107367756022830165353452559158355718817706001263573564674018532656350164449023506813456467171552270668440715040354164855433979818912684239014981140968492050996466741493582465520279813064325119309148616672531665436396032345263215184948648313298129197310960457247028841184181430227714628416020911342886437885814068160158202547842254307837235113648709057129471608656560699142997787433154026642657133643425192051911820775696370028827022669042024761986196488345401536215495982095042095194347184817964864592787256287558275077363636256417505811155135116343248293494534528636797756191618536431936166345896255511756277491159530593327850089192368762636910104389732763850630422235298558234333455113852422011627847092486150004246248251907770923791592451013534090598443384490454830306723549976741171852643026519327757864330135034669797351227712560971961149715773392059996801517199657403288147569509135131359531631964539117856881333251924534236798709145042070258633074833744438194104882810151444828036492948794460346679890156281909273376974032904007482712681732057848256455043046151548810114655617585194174308720994564248840409055501015258675756794247438034722035366949544201207648454993021722275723741571327338284125621639515482931680648874245098750403219657200008086994485456004916993569463040583924205039684807223598645629117457870272060080567043181728673867039905988176439428689710534772233122650972750028684410443670093504848473372859576305671471774680589071037327347410712238657295194068227746070084746313313068645594509319298231956132450788498434064862869375308031473166415188015642106445863236505750328865429145646603170558524059812964695466837418667581563533235745128273007187050416277828990131352814188157941348437797516511367638421687526992449717883252079187782678169624913529862054092378507242911879825767638316683496662305820531588375185008276202595530057446556723642079341273221958185941815453838493370471025670668350646536779518981304020988034577614329927926116404076172906357649216824285602851511102871580400107206886788351680819284574142260924035381562087231928061438569448661309940766464336894726558493060710863961396389605842905847845216560070523096111314335793231242378886144620063985806633602525792878929392648296412410071195092911560590737085600893180665232535650644085308185843907872490509761034647304746761489339296658616451276091808925198681292381858228394350091812549508081893476854349383992915600726635011302266540276089721741070031394425412536148036179713343392533490573438682854817551880475224495766457748465665191315879106806917920989723667662584128149064746927331431801527064376274402065739279383244621772187081318017776156118371179278560829826888923320970465395870475311655787415050993228245509549230718429302110245484546187617148911920281583296681492154493448852770069939137516558390559917354359635801849834730478870865651963176766056327441491843756352796437820258945081392306286130115276811086809088649997113377000621587803857316790234152141771835479105359351130835785819713036204563112509315644729987350516666828428123169543955644148078302860249711923134459664838274536461146258758196288476399624688309913016665602281364171131527064044428231291185273285523676457739943099958730878994540020309749419514799355422707335671578648066156998833623863417712951859893507344170740152613614514280501912617269519022765597397771731386967643614993089241067195399283398149929032158056294012180938880487500062114950553027342251430845866517570542602121875393518021032988244632702691443108098378810569810898571250560310792950193358373366861255364072423356182531838878729765339908738012089787198102192772612592446374465239184934347172458301020123712404280857845064515876184387913800944869653876666630777199815413114918249156790846404522440626582224442787815818648536582883191135699819724675101292628879022729773529472347148381348943632161646589367456156946748302894842070033394043839217686984634704470180266414146774137564304479785971963839816366925142130758141623005810268738236694439517503812584332382119345111765215794658598337224735764123109335980761176770395006276140563547659655394625076079769836104644911197173184456258169884075809325743662020589449185498354851681684655412634469906225905562125549835383717874555827043355777214313839171372135437154382401423173815178312938130962541803239649067293055033527412322118597130284845843629583151208280829723701784355019897811439938772859623220978085992823930492422322915746851919060843027391502848333491821169602495445516090642303451032769098348692690628530838579084731219384533792116979560391137283485668109004172613330026266045165969243176414089564572322004122434447577078533329391783995239650393275885832491539989467070045324670595161471325444936071504250179198161597745599539240282390832884751707045366804721167749070069495118195420552314881986748994122541254788050537122120553670690826142868059286559718845026069615107820747935281560218148357967774988509319382747309531603121487885308756387705771118500249549911939810934407666231889864427264710172621520257337638042441755819200138659611224073867858930465801226447199013139779019297739122775445468172520211851490519002841824474790983570310915647153679667201781584043686402017627977899613224187360236024130721473151104289461214883149349264802913551245623624184247785337847695663905576297380059044055059060712138807053091556105266788382268130166108947210534913078485574721965243926188223298542459262507992124519828112420013134197471516411079947819521495303167859500695996935277901268978241271387126063294891466007871819956263773377338357877953655134109909686604565878710337543747882595021641654531873428085697875455454431597435013797494441589159266969954411357570900368523131072831703187481742818892606480721983019192717802953384881875947669293996491721332905757041685435490261297003020975506542211699223557338677297921997262174766136820557084469984577815139099345114608045741504673924120654781366908864047367909910325878280727834341568393789839540164518256393407683110883622522132909746506618562293878496087753387297024468785238540521036653152394991209046284496281942319662293904397728543713081105657885007973158138310450325094911320184095865516613657750828945005806091580410180135072729777477090665684538088400811448224570967076669925278366213599584414120729500189634974384210059674561664525566638943172512870413101790912402283422818991755459118475156862252922839862977816536920349309547463691325472505123720179343064588200826279967179628255498075001286894501144118528950016358476163927589887730733550844190874098688375917743704709706593205762591760999671813744961061234817717014252461560056596475227072810247505495428730280401224934877754231773104856488900588373907763740117154699661292770250404551918519234321618758428322408916362787778905995821846568930071821247515280850700608044231798117872837708770537908866228391939217182430302837343974918395291023841328949369253331930989276041763325196760102733090684373969316740007723463057420251075289677493291628278347528593170165799195146185866574433063601277608786018459954016366637219635103312946366693721878308263162466416943901518887618595030737278448408030413947680459298424701429612054686147064073889022915184911996538763137306228427687496258992028095007168949961448609497978537555493190403901982784062479736187939461796425261534626172124149383022977696527273692579676798317306814512678559417956540726409226300440423266295269801076967084088692412223551471702475759099100078979940234165653437702879462465349350777431179563255274762012311555379159597441648919929041257770294240858340153063535709355231874276606557193304697545567012367087929511424886517984127285494826707543224995543469187297702020817097920219226437648074739689065898043713517317496474200398219725267828012044801621131291904551310986139625927205001884290095907710718341645456305349987049739748440494293025348037391370566710139320419104774344722673661445211427487179931587979660513886475425475561403582247514511885215760418732987610569429422368164882531116973142769727871913355899813366325491511352689383471612182677624009211033432217204420846206430655074259739395240047572408138814668541313051248723545908197614921471970847328351790093436246830462912417272784118311403062209215660106679188117030914009500664549913275988920615962705885712388679511891324823912452755688652070456037751645621577991742533542378042108270561555247585725913992027031268393718875868036897041406507515615790834447696561412164772229196737412273490727975570923509687718811736954101091842600848598643224395249063025534526212367430289126451920258437745869974070427219970466031345401684485200143339215722164876913920930691327679592919147041391319424645968076783051700765831485066159867193833509038827504049599954762982748074370043551021913121612515063800509069598981152140262108764176059215371941750974902687201050947076169988841728185672941184595528685768244565940709144993845891205733219963286152949474743781697139544748030001401840469885091999517688432669663817529443734168307217219742127244756248159146946775762738874580046629337942166533828415521198074313388106751719022840856595822914248659114221620181538429823742561932481566730405707854585301834289122955134719812915156186574505777788802765378255493549769684492724705178850334621660635370931628202505257675915743730540791742382168345858597144263167716537849947784445452017281878974959255541412610838681730796160898088501428145284450894331260463145353740380211122289953206670233273313189456295668695424246725684288697373011025672929059683740728158158493495168121620336038388744816808885088301527772537792594485691384675954808238446846470226909171398872242465404014322582518235448202922903080841175687270488787614069358440720961213560846518407904878499334317294177348593698704156434136680976424803386037570450963588440451310073506671626350520582274901499209917309577251183751200529557761323396907481025349833693385239408821180596468879214283758720853396324824965933044433724220775005655715737086822360352189722101146712167298047185737329030384703138192170114929982335868802537019952634167200376938456378343142380718320228960612413698348178342484774969845223779167977426147793820473749541707830172349425275490363193743951125096126503844971618855576149180739623980213334342766326643875473681107206552291285038291293192116300941505334016188669081878283971794272918145915544263778054037664552176753809519810626889350546503687652411888705331842661368480206398162617643368240448407644655657203068113910668280079365191141412800417770417111191267560353355228488707418125353098042250582623101525110613528447903961405100496436667181626240924302969231995902533842938024660614763028178594903265788221390954271426652729000181724216542137509188884094411876013978681910982011223659559673897398600576965259804803749120119519171855161623203155611338136873817098503450437695078984855257167998276949286610207292073550926565595562051749502597463156986813413261409584713458409774328708874830079777315240973438130841094957092975367249492430875393387711895878911292148808926712336572270932009381331185328023178775998006338947855044974759245820041338416063250673235764261937503739592212015386511964000994010791807230700131917364458643614176930257666401475315616033485393823344357557161852356169490793953263171399404586272016989533171423934252059509719907563229915931460008579837530519097078556872593541635367108368426467022120220870749400924337646186257016956971844351818173019521669735590190551040947111384031665363335296154756091237869543861912343519687040158977523874606938879513782159494827183686958866694625526803922414086195144179719721566418799100419994134229347340876034427190049459321063388577959217956262041379885478905015435969378293255526856733492670057780201379341294837928104914328842687800293586383846978959621941319808895451195575529166306819585224940403401427951775718202601402271078704146754768135862147977878274849861569411072406718382214241062003061218479918607367957034575528022160729720301804607195077709984723524451319082997790964494561099493966980081831767073877192568480321581902012333111102723122731468980557370756859318626466669395618775367711064456821305554370931904166690328172933810539514352546778518088498175915112835862423089287965319209921900520119375587262579121571710066029240326071943853224605662562274562867032540787740393158633496190971850660844121250486403795143958542867158565031859151917826259708417857949038555738806997919775249651686644101721371580127889759554866344745329419589417141299620089738915239433147336997291506786538057142919542022651033031737723797712207080912984016252708269160071316334215347742743100274502801539885143733502970375336557140183540441484391298462751478501686630673173520005161945269828702863218498240516749635971282779744285981493510064875993578995648222584959777648897125914009909807718990239650614291987795775739002871425839139462518384738175837006829287907774898950030432215472995977289588440500301848918762308884343138250725644924604634912007905464691416273594410062757325380298863643071727119949752262942747097998729622296981158534522205167263951711659358491691008060082376672825379052830796595045258133530401450960683976663953799700435971352940949583656684188422851256618493076803073273103047655078075085766348070947025382426820579060870509496110329867729611165576175606560440240513631682255148055697158303740700863779489204378881887418942005890467506168221183743601135711153090852616122751544192716559250602441296850493289324343270120508935428135077055505091907354629637250154187472887406445431334832348683535571512857540184775134774676214321980951974328094542186082896254527137810999074302669878414264840787308299111234092142160565434139935054520223057250304238283146299319187173411053308148635738867996658648491389599669069735012157897956320087074390954652807785404262364341546947856384243145936068615070498754198468656005578543654788661019721963505150807847683418981917660528027096753311328254938076807769378900337457358960054863427685050289368161696025052059706879210153865437629754173417852849424791008050476824373539918340312316499262272404021904376700945769760852630395593823694520905362762800890906656526319558718914230685151015895407582947951072609930831736260945426578521164817599313959691597607127822296466123688451174561352704308262852042597823493983086926766235380087726456178066331428218962894148317956914364403627922140771293539071828863223939944374225704216223859710655775182733214329007945259415052961037922530688309685691045433269735901677178099178239084552770877023064575380826197998875014279521388958398239578785781306960679865471204556770362710704697013380568127668263817143522548069316622110516932087579424918653371924047873644726192006059933636201618031386124799086019922778649828951542567072689846841127004951054523874160847937292437967978433295131918594784506410385463974805486849695952047982090010608910631480584063728379031156168022400840299138664157080356674922536888647802111964672426305433082960602556233285804212718107076864166646053114754787397788299870312014180634814806849561149739815555247750920116065023534853015691420057356371297422619253907318333462117926743942724871323053632361816418007440114314448710017533458328346935594539733975282671483526905523964504720242555557455904545067448264442433994610621320509517569520764210588947623019124064872610382024985916347981311816539076059522384390532707832994367497231762523677434065012800197244865731147639433190674907413736354818386514093991463549244815320489972613210975993875986971570341183149590451034533712963927266011153282701680193210964880373305605370229644507134892452637988168867279023310948028067530074048612210012022597202555490240734348969011876580721283125577828955847028878143186261143240723551237184101988422174515634257884858615451878450037505200753713968443728948568045115862748987342652366010941922544526809101754912732458049401581096775844495782457931698161777358976026380023526152464308833295749529813889456706629396781524173439202885179772989306573568080547365673860696082314045900839325540734907180238827054900886238736185132496559811153027065668404389343720739905050097926044458839663891655903344025397305217644418954520334943511207989314645843516053769711043708238540353375816838823371599866020984779942155844636484987311208910483838319039009817150792084124590895894414226708663394851449507939715335785364212997066614284951628589961692357906217632125645044694833852806222826284471175459397402580004626566859619823865060903921964731914009159522763928700651608350403279713317325902095883617541501515002230239530101356822368801085607118404959176830121796035217560330232806295426780838686241979634916902081522352906273118372874461909670212302620075821577468204906493945975809412589589241226142091963722386000418524530656860378173306393387998086530393731133802226528768481511419228308307362176447125150781137956232795040548865342403066495185619290044443099917342929019334400700195260107301520209914841895239443334868645921140469701209590747520899459833723217609365594506463210048454599731958468690977440733828440605931974423597348733016208906640016484872595119984007301261162294813109624051230653121100427112119338828241298380808369488551820102356973464253745174114836267741865069303556185234495964781840389025101141865763534990735300954602256469868207869167623812310098535212053184067381307921458957494435467015756701524624803984343537648081360907555588013581924623272596402840024394339575274280976535581011432086031981523286030270901698305390527959839528117874902275462468547929281299947113923988002106721847540483904309040421547932201764467158021149003888057309633672423759087566219385332861402799544954595696995220606891959839938654893447615500612476340505445509448083981991999023576325517837826859949140808225326770428001653071160608138129059223369139794335426861730901166435775440513981817043124367425501047142830544082435835857208115439416385121954593369623584209136888024935525869704808474746465448822948542865911554200892536714512206813894997187229624120770805432513047996572225747407671011732004425872214391908602112846616505085130452953001126245192209246306362674248566305229607034916484056174451659578374732616355944717621126117381124158367772688195847526018510311407805275924939761541097109625388953548700399208739059596096211682200090837550072887592929251406880466602768983504381137705405379125034298279241714828268292461453131317155045845426094302463911107332075983934960383264681543798728447319342447013860629231961757450767260165185844985493449317806353576393913574198904156426776916589250757623789227269088008084210678179433675216946952691753631653109479502408552696096109565783523885983629784158943111593533226945037626295394602470408610887017702960648754071065672755082704803500938498349283568817527976671531322288484024900668585704026420403194728017950740602045981945629542187062585552551861719581341836096082084479877823534469077036823900162736098995726825744526320859384111328916985701005621529639848208701944320288223127570019030497021221396151189108713351440720901583888156573306141459741159965993460238152938534653401894853889532708171398635000176367972297745191652677473563705032630378768273746552312249291288374962861551266988979515202231407326125142808647161068085851800378293315299952681149734734883095311913229994995416978750684549538842135845185765654790237720505964600739513656995594746389086329048600750816888485473978761437415473858085558966343598822537051014612194743703368313462862641119610686414564485446603316214210934816866554600122349424123049956269223424321395121337035693852901561786485576428497751828025345478242229803560717025415765096502973075996084803565000669422765678336863519326814776229359598631160740593198643956204412085336791365813451317303070570517127959855331364558340664299105375744070869886767508564147598286557549944466782603702821154045180027323225770280830980069297133397078022103855849736603992495628758085468355619493149641411133633283714190514876494936392473399029742334236362161348629702012399418045770044176428750848026190568113894370323025697735718714688335538976436219351207861047164534914440848550370571375040815930673025615807213925366278651910089599812199504696432308982147209132491595957550245477673988700279356321749126048808252707165499441076355740602657132972101776817591109387895298337698829194321629061348236368366396723144367443623302058583448775756812714137548578969885244884980306043675767891934889055000085248561105635320228753854793048864670981051631870192194561579524113753154936939189885744720508628095900003374578870070485407438292857456726069309827345154009915107688431645275320289080712606498674646813579148356100168657919605313062857876824569719044845752882968775704230827513110004042466988386397206909251537957564945085228293165883039175231936756916673875143603549439584361829631108067424936538701769266486323041067682204658356058813215777120152738192195674233735728221805262543819811366759822127550539489035720436474007075249395807495983736424316794003719429910582832099041350792745045680901543271400095089332949863490271696275100872091105585523872063313764769170742533593187517440934314242685092927124941568463936711806736201574565487132370786526906118450657543158728602504883001685894079027649702009499815088030529934740221760912753774620119710811806388958922075706461437153594890317907047810520563140726980546947448067170782798051579031083597318154335676537433869741684300415974717499483438307159902837532318086596136767708341491907323861321589423682351175301813030318403787515112784004398873642681224982587281828955170919403658352965093747092016167510433482161319231147287732243059850364757253215368577958333150848061359637370050993304745872370208565918304233502701995748348108316739621787837348996981482116438078145103393690471109100105124302224068706473155717271983642575759129079582654802713582255603688790277495485488408735345837397954135330635833632063098524958653394051960168936584718129423904672866173768342785055643215127623180071167155216854605969260927999449242956977480450702611405956406232293743122409989920702159048108947860201823963245195823827996431796343843194499654411100658327180966425703520698704034182345565414502786617545410593273482513179810202442197508658708102053705978742075891360351444471361123154318785465650400668757716936933658888575536792494228059178062744922533965410767438529539472662786573686769458581687649140124119863668340180153064431839227969312575622279446613633129306985712822904360651515287488826939829285244185691286424704497078291220205886466303674310424200258605135504160424487000361450978128738614690420638224153731732509886203291026457304104153934945494701695719710742364965289553845199654702501807274311412771882973175185229134808253313851767689774159435156773725219399826710493731938308920831128071012449992714792360385777198507248174830459529984479475045728924500570942591786071426148784750829894275187837583406120187004986847198839922186622824144058346963341106847087706880146378678079807306850693984277926260550254993346960882423733041232049637273125557822797027158785093534368174171905507513333085465073940147163261903308639790183280624068096246720805316593994076875618309110212707125492535830312599817895902219069723803739269544644507934425437022971152680268519907952810589699798421170682705107030616735736617501433569429402682300766002518819309270637761498601133790560566618858249936079551857019213286782291082494746028672082326598629966702587255993483640367943080523996520081217302665497778672152918264240942203267556516101870261598370418007939940260262966779710008408501124547297824175090901020838461182470490418391327432302856622703536262685903894503461095010381815979069975526453441650759049264094650734921775225968788461915921555567050199261583577536907126111249198255415038201109866601135059337718623484219154778171381611811238241620681295528984806584183184935498051054381798643702519068091298242516067409773553331982841834022726856680650278267277553265101275659350877408274819830300568001214381118135003384566182301948422083978359676363291723780431537441400261161149111098142586804655776650946978216857151847619680809069246014385225228172453811725363692069527092826840543882361193369870840886192603707092294508641720523985288129265358132149489085463217212750797337785630082918302118792521594836770793757579131963915000264906567983052887217806035614066061962793147632284111927916118201090726848336071334338180609090180590066587923167945606618507136986874866084376652656604296152028537324183252997984430913658361669648350323454932752223260872152742616759128426326452703950063520007962894879988799277513526105180039133758528201383829427726432320215344660966536133688832182288275583420553982001111816972333522216324464406590018363276482728682387999004482141208394429524287477911401386115161474404874726447060922343186555022481585993117870036568424724969329956401527002388246182261874051419830259196908848444750144201382852949884669362228268855378179951164781391136867073715702497238052694721022026285390346347744310353366561284851214486548087298238462523052894325795391064220175046105201400651755098005286769400838333507350285499655212253822216568901384062950658971611540414461523525950583035954146046643015189606261677731441897716548955142885940894807850132862535217324179015244895293772182906828968166491329339671489623579263005495971175504235874282702353909585955764930071761407938667899990061797553757011443360218617935778882408773320363539725031426049074086535010034946020621178179895674020979866740301767501387618071086119917060946883206817945575486082670286196131529077399120125049549326869291607777315394922640383991387613174524558483300211118946717176522684794365690916028573619536209919169082993109705430152982454263382763503139280645727608168677372059118526091531731274399924436777213609791014354830129906341204422457803493090441446733314196935245883809996328065068192456448445036963807792571459487012615106599746147263179770879361573500495847358714237558639919202792639090644676057783659843752530822400865188840677533610723537864702050331853993839000389034736808172531709686447508528218601704790949809413395268514270189838496451982087794584890738031943665328480321866706033144371386149885162346928764676413873290679032372468955125869020615918828996999268832211865872676805661960082145878738007307169383305416279249992231809583526313908463980597922495549571958093974990411360561756189079031620247631798519414402082253780474295630350794023629137008768707327964813104538903133072891990711810853937676364096322622450270164398124046660846436603520651854625526681653607065132514853956662158431345328819924164403701914978865028811583727501988478531921073416722325719191370218176021396500998056978278531282614416333119412828055263290165022362933822261145995403453646519022664328265791228170910648602506954623759948590389944882587919332534479730374414069427608490096374527606942892074262910486109527325365809159247342907394611835014319191116395318396686591028326457903747054096316929897139605944790544462350478117788695050441715402352559754120939650558278987477642537393583474798292175759299343449901150505129649994379014582614601294740359169702330297220940865402122673879852634811904281596987297590399959649594971327351439192815883052351004427300537864571025186678484893747312463009130648437993612008476364970622751453417928105351269419885894363021720368900677005577555830389427922476660910525373085365268275372537391287072155184830784557034338555211100282770671083027058318207654042291338021168091069139252136903387925418969550841465686237162522357877352163229482360054980549268501331819496911592430684511500462300154906890225617382631242834688824744234847653111513990502038164096590538454907151773151700739854380079089385800334319867186911367525224442925548350269221086976333475516808012877888236843231280581010466909518768568189828684302113302290776613678941946179769251053404483002344224481758253391957932836620520661046928606153181918657614724346437897165986008072994595366119560580476862118079911653324455993894856213493646420757099317455959157779787970418425579311270429033824947973959347070668502826028619056610731590931423536397208763286152672122519704178057283717532821597874455226202222699425693698227906899286960950972742193702800310064075161090748312715445817143862101112645323674461578385544129027402352222521617799846551493196016057881170288071339804229352066595813627950213603725369966074803243706959147982241209451201584353060998701061675764098042946645010074212018498612443545440235798691723493422885655424449778627627082477466510693532889975669681264403771042006070208142879092507824000645023523326617008553299236186017295367836982668086204990400730897068034773494394544155189395737865175358368898978764556658720103984072919747422032849311738740040438647401716210333044112102897233705973448322725038785929477746138168712194013784518738299707689084457157798601029561025268260466284812290036810007545590209334861664619780443083929985122458020156618136846454932170067126421996028252814918701503930851357719781620510382217521361198941127725325834888370333848774964629514331333215537676573570523415491099808993703715638211559681236228338006012958660661967921874879435066330129748033199438601028292403679077670669120283431825453879040383116977878985272154561830930215378809664220947967754661981446481215090920812496921350109505587690947648057396421090964749885550584561564033248222075314126600137126669251710866185993372693597841802995090789444854922933389106477951598231399540069462597423981467719770970151151761805613602399407341569238928899959191949314554935600286781261442969827327851074644682509759509244186805422179669461171044142442614149849516638981859234079664154340839984351002885898499487631631007984829439807062140897671292808191865177324816165149389107398897197877452444945463305528000035298799990260439039670376249760823398848556970421401483029542513471271365425995909933301641760170065963444512973162961658829827053034589010724967983586141929990244179747970075570959684915693881725540129291088454123957518694389718332865222985418125171741297577695530059912386342534683511082338750366039440241643357931686021086702760411221075975633063694586336685167773499241768922482074667438654653899713142591075657544698525987927236421935679390491335819488709879204214977590139888599062201648062540304196954777358878670739876176453043815914224687134050544054892399171704915425733579407180908690616694377642483542180048839810739468365649960930073423758509176655224150717996274574635831172454384337208625020520652863884778570800651999284525503473630698406982926050676251738261165691289222050277878589517299903578155529534291819785515394054973397224892219751497853419447724238371895235304027985348847388371571541581463560964211400826347787712684275598359298300524432854175531833055448132481893365798231419059565423273768603904712188733058691361749509115491516888444513164552820169014555872996131221360184695459927432530940691310897425256411799456315123495232201084823776362125660896442446991326361982243655561068482742484517849997112437440745010961085991612448340779530769113073627792633413881230261745626243115585304901327608605756912554373427958438815186793219967469252451191654397074597079847025398039149465635955999950221997761517872859934969396521516877875415705876824381474003765372947332904285577022952002233157887424158576101069318364460895126731260875035056096613950740007528286834002895542027589714771901865914351733869929761856760675378896161635359303980985952006575354479162981524651743811160720980951157876689867869974493692905669850576966071382630810486849739382462158830964044489631148755931360140360808282771266244366040063512978087951407118192493574723738847832744660592609298413244175147360567880821961469029343910337370613133511909552735832024260439833237752316820395946031972289842439396404329176071509319791614538885073417539817974019729474672233148154222794285499031461642914568251186501324747370556849083279851229325022049722913557476874256248267085711493140585919076048989524355712047631090206621885910301220090990882367178502058054413884301141911408068059622366083139405705247504846585295145822340678402116804258475758120606187766092059029518336495070013623101133191790699075834712110769515338477698560073247649362167105285603979030836815398430145858158840797001532960755440963072569031227852012224448019958573096330455128667880270348281116662325340506540005820661036530914740864499702167936853570082872263885709303608902899216679922791237290285195694055074534072659981621540025365164937184792996427532492910249540313913779206743823599347141437949227294760396140809746263344279771444524794767320432721934129757738591842572292657314379724675146730524310421061140207099009945717929206662223551340198124606816373090188485783894136651528594924823560848720985582040155824417726500908567414502855777099208846608441065658072207340021005784142599158498230264035620188422344019045133648742210753840385088178990242700431345347865546487783448723381457050030473193654196692165693659674729079697987903947385722706458896018673093044590387889700741894491833658667120404681054670891555677757034490304309817608499721905135317505860819845550952994215378891285936037783126416806477803487894980729398389550628261418118587079736299960408615098451620663179471538932269711707289587813214582662422467833509180442415340783107593819546577162569423672655346144167490410901051767473433405437235922148904990006749794724468381537615464371500722140670401590214319592986396213811464648972257713864641540834118490060375031213131946444069020310840277708215363500709163017435164576938200081317650728203239089858658806053434486160815767860551472043213312333286376656409330933806733923303126859808941556202571192099955388831692575094813234859870314033256759789041336735945508811807288884132260449358043006155217166187068070090564884161271190481066959384791153322443868216319299460796967478600554174347932381033787952242208904702668044198055978074562320894150759582179956075205054854815232936198400835724010841981720331805276446153534065416172827677586560001904890157130569569689670175118423478476093245801894363474828858456511830992342815753219661873397471212109084983450240196201436664664199268189942445496082630683479162155295734301289751855427557381974232024009290027316538774052211334405016457613273260609911516367673662149006901360663785025335437739790468954935601554526126388552606921094746691469957057019095464391706244606301884814836221035070106660189045550199027842679470315305171286446479819652490891707192172686850436249807790922601839032641044098227231697730903270770700801270145987140372595787239712609549490840627774491989571410678829716480816845783317480659378428400418902121690392430360836297026610370999536682554406100844736366718959580215075104217131450550281908486952034285597556234129408349619815860681429413702755940760809101275147774049670284082800570240286208960731128013239757474454207348228239783337424330836995475756359502106053453637387363161651171780323348904329569323980725315068050819344120854068932769724055612832302264059316033149675851392950155166026921651074018719630425984548409470472473683816664731616969298909449638882517254815184123285560670584778182692792874681102853697348931398469917634314698424531292675644874094237138525792221600673137869055220776026320667562672213630333995660209986724365019793314951729984953894097583804048762692471849658295960430479135526860686768709964703235546119773623855702154059523547305831903464651035130350649151446737471856906258671778825364548121113819573435843399257702315407723630741334945528583584237060783795797656717005436572718401149572285079083626034305373802440479031689634015209122891836133244157620973906473148325163567619374076963677812307742664530390415397616362929950253785752982879124309178119463996174868197494636014918182104020771339502155123563476963089446516745656120014887913640992133548866419290774573413214424565148679758167307271004855312728731795790422134110340857446359487984737374432635721494266271062151318281066847414338205438086909962641355734576639540603607338779307615927953385294455389220032346500216540683736303958872640542282504239219501091471286700914922806622849011596564232360958813199101942790393758792040756055939060674281818718587596189808487077096317491699904636365710443980546671725356817029097314073339048531228746930752558917980542292769859768572995409684056292297499796722664911033237164445988506549018532734402069487812546003542059122636695970393030373657543668871355015524340187180030765459144353199777746277199333420841011179927696904068632840873096476745480397808252321409197443280847847442239228671607593024457385584945026007546221081611935246782044058439004131174313430849178261132585246196686229149400274667918447445703627515076373106785202100469111296241951478363197255006195840748759559393558827372166233758240032424548074442864736490299920418779227934312925593645606095017109493041272352163095828023468260139153424824196956825073500353205685668916090466992122703459486315869076431614262373874767984279214832503736637454032382961349618284102121457180199535280236879295405080464350423809632446037440612230208910526603197088507358453628383267366484669802600777688755797223272496285107259117513880749291750055050843656921642490954891151582249073909061229083029137059187564085142839049243473261760116588158793709610858200763481245210546961122745740228878239066656929967004336901570835360824751956140618774027368580774067227149979919563857253065743334273395631960366699877124847921957389916850162701043041140919264392368276133899552948622298035353020007407238582916350693989430877646589858920210925428808798770025520236514511127607468003015687892088022666372914523237876050343214998452133479158860465590220734790489104347537811774348087564574937445673962254318179504222962217566102026258541316329777586121930269292166996317319432035517932601957375507087245101322054801089162299581413082712232628370144340099671544318402536055642679533214897889585084715218550920983506417858104139739604195654516615307567074138028503466493306459097594515925047752409875195786355196552141181326632891264827704481752530876251246314824083037798525844835611496355537248764627799779813432211347300377730259876442822644846516417002706729384832834042278473002053947408853437410695236855407151173650749317636907890604030657203555481162266817824819693468842092047323564845379587583898339509863243114620007502611719574167418659800738224847911180462476836089713959905531413258517663951982198165564318034102345541170896071708336378829074069972577147663004688108547610612522620856683508167795165391404127029226149301765339064691213194361559651926391763880017502298973810723322748234724029630632387719436294298888258158474950486967652933431161681593421864311365981848457158579949049463397695086958450396797300380789760411566981942584468794070095300357145976000898504321134589684144867222396529122468371033716200914720163568113519778497658254765355500306860554357632236960745162990546731715513232068683299021752957863980996674969928368568531946706534980360136415072729644558521882359259064398241772672255195949719961013926756958894856558909039486760928380280535212075415766430355810708671614597633122358891583834872825681583375314375029241289453442964893007321855658631422892937952024759217259192494146067034485121459373609546195220329744874006616106579915991706266846602901965785555448081134676084450992549150335814635936224715231095258543448391254446876976430753878439694013426868603308094473104861971890139540474912999891337963419621186693066611559230174923588007302588743204392572076354571020296378356360768726823943519642674752616789574064589812557977988105106439819163047279772056958746095059260713424892025580091596446039997850039011692619864933642735970640617298544883057588194988711873558028595028942923922151873427069041407246636330030590879781906345087391802345396265766763521054218602416721400037218232694099074867898368202854623526260152085256709426352900641751117765030091399540701630357538956867783288425930631854932789081698873808156821771449959275560697583783763373102128910221205273073934948664848540478536671030323230818350937974919925270550832303784882581843436413827395973141115624417241842229285109036548007820334014245784089450819270758342947364227780368269357213740024855596439942296877174204909318873677754506738330444496300357108455110188441619274704692869706939876716286827808175682040102767247372186356123107456109558869697078159988166116741448814163972998924045019913728779085500524501299061214779879948942731621214584527982034325396924040129745414872507524845883691012656971922693780934867040913185576718182425505580518782779468441994958092952777658559176906751837315208159886797076545581986350335053563403584035208342712602881187191711471152825651466935195710598426644340449398337554939526054094323696600415872500044990415015241446680265936232966308557789741540923138623705747181766824737144444583123878325863354384777133465266026856483554524116999958790027521250806243703176394503441999254390270806260208969910437762712822087332106780325607786131622519163475291211325884766827779396728359392389964530773166758243984057567495295736680176704026935275936114399684519556376472315239125163521268776766827423654647695443888230593426237943281197691351064449839029033109034270945841287159323274773591685003867486606040272188710812681937643786169073140132946828236771201813727491075956533972330165865371284693441288683880107359817582565083107047732219659456832190378724207022110588862964963177260384792960010094295873827510842440383553708918516270874979886777217517572174410156712635457332619860360316941487468579140898952172224248703142481140467471182038181588115222312888154578013841005328609496174399966817006344062500945461643744158771793828548402441013078408512275768529475039336196525013372409553708844464541785797775250640129123000727699871994393438198271245923073896565503781067130845087936862379137088441984932149616970908261964790317868448543517044834389312531761385611765789211561113393536085246849983552691348574616253772143166176820329803790379615614760957232963957122802508566942882892997080463194387962100060715777208591591309910536874141720970275003152555457415537265655853932194088431112598495863431337811522102804531132003357577225501460383493666888762370729979160901899065483383198030507983862975747180513038298713502255809419340024258806470089208200312308081680457786433814696549444495919663147156029202359549355222804208534837780627094152770685972421386165371789012754467516595319190709357627018476066815965159654335549750886580682248523816976506955114178512046150446075920552283891671715378168564348691436358949981335638137241114097325392883563098218582765787894110782084670564002760006364621400999550470398340539888699186047634445597795286430354766663056330465056889326775838221532395329391997281539400951090220807545096926983141950423728992862401157310933062127067058465002287047808758904839673286880044944895895923927416378624863216295613038044561187156343951934622263358621787855244118882441944911914294466966234774229068551472632251334502943389145868751778574001991718987309749873321237737033833984543471918555082102722544795898187765652419305540492103160604972976633608423448979396037160901652035867231610309189518482881019190525773193041809163419966561635567585605209561032054719815748119034864601085375255402774122520511633291326497062957538299500647632660562885062083586065174078490108389986819529739027662028858020041056438343964230415420050023168669742384363268588992964817037127700761903035405570049795728433537024530447972644947162837399523077079423523062607216452340416766044439020383810980530986380805931437094108989020550838213147474622372829601301909232364163190866306136027501622755393910311668380442438105347981326440605345531454837766619649506714471282958216788623773648137318211285358700711600264597844748366676947135188564252611337553517492103940797055125034939464425866019820136660481677671972697684783041960724512476305542076212044967049688483118947016549742701358080964849707472658059596030504047549394347039633353912818532927249001951025199344723301778664003933642210384653644129298454241787351957135534669129783507146844785990693552019522582000552268636697207592865755532125368151174250581621331557817016622720216283144353424870131771374861140713168242047884612155497329156043434732490541563528445893973223488713149271843088908001180219507362455546554622984464258205667585905105454198468669370012755207960820792714663226180932209697696532500644479032059917541602542874296607438389402230004348114301817962038176148255379070008204780411203356315328050968961325722981955494804924080190877673167503867209049985927594303888005941828747413511829835162738760413360382098363009585555100614385031207904406086906602929870869499156157087447239491992801315871281160018387697159709141138157272692828513273528844915381719730881950563670572974963456723079519036240259679657177090470685482938466536051429009706323936453834916794963635339899369920728629695983965878821462277041029813419390956540959472817677059130457160535665545715722665181434594032840371917508526270333100525213958283985648847741416947957564936102136975257227012886269794624906890972873976433059216218867824349026818988665653854225934757732701779507606403816601757224906490705212154184022142035423961779526361463754328336556278745556061638099297306842792525148694636498464422641459260145528238807954624494732795184011502564591318934106777600467221592022501788231806127045150830745772602720387843807693325754059894837814251449683456592455250003136910007409100693555475986005455984500273657731986947672173064837261196085296965495163277139302109048826797325478014533690167572167901854858899600304929815897069397030620306038631505742193025329118171996555142725488847440056463758822181894322613585942309832451496097362899244651184964320991900984615210884675631936785865981963889024988862086043392969024537710560737846967460457299422879805539237162835908663481612207370939689288091316360210598683244867042574160135877273979960654764464499538048324473453069962858644925534366020060395096873061298418032721713403245952293239339228160232597750185933464194642882430689704798411547532599882020093026658036675302918122196964142479985454819305086969928875774944059065427694245456337698583967711372412005655053773305021433034740161557794610610917748322450316576408139860656022431797617420174882866406039087539103294938558667475601305689429580186826467070767346413809249645802590886018698253137961948086634603506954776283991842347440547847210655353220755185454552977551834059355425065523407498639381755519711278840202986125783389523477913340145412255132690757350564885177539270733377452525978392371378461921710775563910398218607203682494894424771740547764976363106225571403204376736483500353787489736194733586663480601348065070513021913166236954117243517696188780936705298308013760996173471055508857237344273264671389047390010356555006707079825616368047476141887749930017251821455822162347200445456084297812509617991504045608213252352502302481018842433566505813646401608382909405028332579735715470297751144714607398738458738200453494103479933080672393351217480092124887360270339551295622538109247420870312624425321539772683522136560223811369194382261120127595532762163638406917588599311915615022045462053317517379278764742467869377683903205119205212686978547817601087582666947128574770194190114944924974477560386655660536263865175684897937500196700178270306388583022550538124960856382021343290763145882124575957043985372177876421191464122500323129026498643506929751543510007100416464451930936125679940863907091749906985118041469042800052495490025977925220789235052942839348703355782679116145867943618696584123637438544403070172994379229452512365494784704805045617249744589055013676923756474760976132808208652083141441820227459701382865776090341872141683793860077503713439558293117713274676636042345626516360348660796563734973372192787837226910416198028820433413993275858208562772674020815764121356402025846010058483434108219666158837297693665981024623287224668092438618994452632293816445021042321606234440022479617141464917382991481778926443632073994727045757134413371479291418933046964707028144749578364624443686311776488824851645168328947163595466802464479302553122849634935209768600459499000081854861566172386653565573346519030122443983704100581910536341310346895490795303995478231090570489167988507668538772381485665357212330024345086172801263759740667447443302615309683273596039104271834444879647228978845160143226240533045008029620304411386750528720265079498629174769944451100351256979370346675585851456760054696492812838601337546504498865701575595035723226603016159465745292674849009896250373506042265066546254844816408888109771379843142944717952053946273916256016294926464829837530440446720120762423453251962754965068081458075830121409214968183264726467580545671667540355063010108157718970971690666168710841572724307681348152560489343547971424761624005082259360143707442295262672188411610051577278833779878003924519261839203837320481240978607683480200558713842036695865625156844845926836552323889163696252428149545145790702243792281579777458831211632239724022353925226555704618766356084462534120400934539274676067034236611705145526105543243656980947869510545420075897619116247157433086189331444883011032892901779610557104353657707108453801248123789878006594866930602531445919235336688587633184420055127557418432994256723322003916204450322554163358104045590207689034268264617799280018176167223794315863297843447995833107768278743203648677273964015394547930930962626481947578987445284259008842875847562931151424543714784872082141093994375023275187642619692652453696761691062978537176090253610765074161395498319742042044963205182159123793634141661285493962756072602756346831181197493348398588305205547325026929409478753872015201855664359483029646993795309599489263690969862637182496569802560636378892546583741370203602418653995307472977938171040436674817476011598687475351965065976925516135048261346587393069265404808896660483783428774021222998317202016160341724424084354838914154429939391151902816225276656959548549002096225701525981969122201393031717043275752037031806566935450014106452897645467420628164023065921256988556276656410144332192646245982484779329988940807889930420079449610027730407450826158864153026508285819741012146065763639360095404425019750382316642552976295783247260525680739120039996149859033438692076270679403155995278602901098422933160240296553778074399061221952312778692588530643921810494083573973624563742847182905145917917751015444186139950290491726049379870252735035607855988216125074223693034399215382038682713591519904370105454935809691254072078030547403150566184003711451969843745316042299899849887746313762805705200167113939057239847590256653915042779149936864479513184839489283457855591285760271205967643968299113679877879745230100826453550559501693123443480653329819946936119918078757022459295912274376270943722135873829312873706025115638080142240724281020260437145305633751179304560476240997332080931989624751781129839096022011476204929633289438484839871997777178027460359226317214242449640836873576081069565594901531195292212581276173140894649659756093509078591679121446251465085382875194980960047984736475298055359428034714002738378235811333647441851528885058828339209387561006146525766714086571122136116298413959726380405546172276798301563792829782280102002375167150701380090204767631769856172868592432998185831718701936782717403265106060612221241162577428449209056295035699371115223927465991077337429174675428612594186048130223904027321420373653091668858569638675534467202983591019454018336132783090786350795654025844823828537442219362846773691976844169857318049925103869622991052293929294233727697003237314550295115724246130261299515635594669516368239083133564326464761641942061595071924872364313120725618169443325183921759279263730712133861871104898886001638107885143534947004397419951999316163784016385736672352172771949574180954149515481437401956164742732664618223383469294145509903274529512847696075690116309216997516819214043467113884677255898736935337258916172679482887662246361074379047655883457334229018043801588615916623568491179422075554392344869321197571947033681480264254262413770873374942745985696501693435702437352097098786837975891884816695943463370571895845033958982807468822859447472067818521621001307719328855704766029534903785902163445469550640230616317886852307773897411771533587041114297263578837656722457091451589297964136643700522513924646658994726772488382475559815044627088008529231228895381082308318508813676732231642826026997546944341180682406160258870067270539364577605653975999776412227131553282248029433733763459018767511027011162635056715056637177762300559059656411716312466193841007869023469435785379626063168894982281901712632037225135015127915118246414076771275597199576013704298756466638449311140869738841416897254436975607652800006561535977725373300627763832994505402235770216496541866735784731319154428427822972439883633402011004790918835088901463146139873533453295142391521793347224628055016862600003989668558154606248517912183883269234230915562110086022258097213957181577226449571927804671333158622424178001496980496778556685415030872166947298294625033487568210814872669933660462074009861287472482318416116387248367538562026240441810969096668403247613984851532837486511258274476455106182327995162320632845732583343603646086066930174264433950246587471491545431488621303409718878226874622626365705028302888372064404127166595139131745069083649894341111994480589579856368955055896934604713473222484979700690525452832660122514427540964123988281987523489517671145699135481314757013220459726043841092662989875930077894815986268251798512894351102987431909084798151679582239860956581825783941318716019765368169118671519574195494717133673429516064509529793210418218142662120905003955488290239087397982403682793485909816348633248056691790452864932285333148070536741340164741942866598652126607372580625567913163750275689395230913629683434399682871780284530374171213369642720932299777948118433102472668641518654101979985011462311482073750303631033614338760888621947358524272362556511101417979013024357777318864617038073607272330957532546684487083753793466290021856989144742071858693270888207772331115144600991867481597195648650354752062102415582828548112486834317522469509923623972381182799645357399166036263948453091997577337249357492689661178004643119011980527300776681882886198362457263378141167503228819570955074012495603382370754072678074505087629336670272560789984472642040389007489788485561086583176084750100583374939457273864031247860072951839459051602698416191989571737945623903299435768146379532031423090228500056269593804024313972540037632273114313709794287714860246392812952236179852743861386623577565268618865369627340006324928910667789652972070684201349150805410113352787928877002271341349184596441087253648557240013023451503108346605226074852902156972421734592064211652460536909415852804817086722547256580471303150933252638611305160576068359654308004374819837552130983410762727862719492126387049361164472817140253222373953455357102450486102326641258053663057484751947751258121932720322908178415716162410786051441869225084898633511338898528254780129531235113143200204886248737498199359940036165920514850425294297961875975855073756809989105420948195434488237598293739335162870105619020633056245359113851354196134331511741649917369963616800809438360346650745643827710296787052994364609271311279465676494514260684519429485007574146717512405107035222951445556777402493312299614204797925336110956623985165290115905623835204296103002760793944829432354900286420470566410091036807737044008058119895180745853952092007325273253669918251259442542504502923012914180453044966389361871247174601986204678931131621072117907459337949131528565737851155835933350150340349953122865065827452563779986472061990947524717882590360362938329086240611767009203487332122130744352285196513642734027948250994690661354665733693500970053181449194489712620644137025822351765426660204983218237139473820766985577248694552483358752164606630311338901976424425182540998565885899249665828233795821890148040094186251937272530647722874461823059198784644410342018246776927303804735577878313694784421612254644359394212436210618888573306463770209987545747675589023515355144056001856955211789691050405366487091711284273644743415941916253200738542432655456194694207420879586657816415349139463800946357442090717024874927768451640379355917507863797012595617530221420251057372401699718335058587584721568425684361544918660600256293311745848693205004109483403484403567371455608535253333792755503667959266794440135286819685485764759023186441883665934627748410159411066741946939171757511935896464903056654339126170960420560178766037640104110095823644839029548267447731269725086021745217632829151918599968101351089945185962190872753200727758236550677314175503983401171631737974864917908085066101176032247377711851130951834691762298835636897031267615707923291794031824706170434280193670841684077796403412014608941606569257181362842825318510573118600868522541879938707885397459551998227615552620077778694112809209534148412741015055664823702157228309606869309036591978849400067248123259771950428226359246809450948187968188010248388454914746183127813709785717020314543157276342239201918191034448563684567944611413606504715141580442786212540713124514153559185919205938743569827638694307796808839211068966629684080536295369296210746171929038288057613864780060077667744946783860551518779583327085790681610909144380968890762894881591411915239839883829098805421464793729718224966441204765697809309257538117021071109862149240225238137287957878331759544961848520028817526781443105076113455231822635457641898702109106915595037051552419426446832560627397167000769612242071645022142055601914874871837021513581300604021395442114508703985521456316818594437286678578713637253337391170673559168643244172129907245862560114513817457524695065516342665670172777766415779513977380782643618906733197256436456188657270348047827717621026452853082780286751887138364332293357023265108189220491228754571944490637079115715617212055257864382571927266371721166196940665036159908505620561105035417646368941822378363624433805719095308374520699323938820401997272143948227865648249102296076555521567434030177949070981454453628908938264739778745706675872661924249110518986425734267275708020420504745517219985020127192454365211175261235465826647388911100751554090953900161002977116564681043878704031476732971348882272500924503537562653336355324923497112853717980888237077450627381621633304573541978263733793507527707797753464367247625696587056727310322520107968307341527175585414439066167803108346936439548553065435308231636766550935611134672853287889133646406779870131292054086637459434010341443949455104584724505855785010596807981309776538191825883287822032736805479151779172182185223001712578857403918047260664482989058929277938441062694856061320257008502555190718980881495718512401393327935585882763367399092057621480974301493670347574161022758017196467512777447875822696496846316840826787000795285746822130507802720702106932980921958939480837590365035139406827460123950926485814815439621822512922367919210393406138528484608364379483553783545775125488779226591935018135724883094347495087500585800770206403699083936626304665188446191565054441426719151879565452279882842842708077892335969118370817743807307151392384016124920929549484496167757940270454436045416457781472485749730860284918274549021470145234190751057804731296858530277756724084058411369905262696470779615175842010282967973396540345492760416020444489725865852990982163943774576350698454354388897428794459265235188342246498457316313618605976062013837557430093136927481911561830041503170367883873525501071289471768088993117356358111747693801949468077318972401964632727607083696525026794085897875225851725339967674253280960266110111800025098915090864097948147183733151379682441313737334202818320179898193796060502301537929264234050269827691439174636853940360409614824075218238991967018967202558014535793776954299478342933132409351742770779017211211356249177303776282108491152136247092204556637213102822268954358698584914097905416908829649866063504015076796803188104450992064681575226836273905495667252589141702827712129995279766911841424544717218118062428342564700141605833340747551268789286245358309992689976159701416498855698052471558540494187588686516486047499797169239946234113743431124100341407215100148141731522060450893891476440109037905472794125286700426390849808102140771096230532569576700107481853027132957424787048459658915552038592802896319716418088485058031209970038052473752430032921280478604813472818301869979212528185263784422899823963446630600012457336339288845742738559382305125943807112145896074091104091029755241058681839315900677297964609671958937686599185764527316476230845539084216460441028249803599482867514128843303932545201332036506478136032758066539460524718020975306556569042688912826352245668633888046867808746020257945206624356709895044337124329865029745693477301510771097195723983953266993174766457767316053936934961860554111675828553281037998983233080688698533387768608866550416868544018858722849865309496666360524519545829196738563982306731699420261376145764256913985221271981822391481096797892434453488440828619131302962505086062418852992071942189545472062264795349644669334238280779193017477566158452707997994205278790814484818476571746164355765772681870512223988510619988647678070653081106979639863239164477845030177771910232207999473962896319128010250303522557477425114034302606458316442234534000937784560520875582846999535357978505464563498993793090190865919270984035445350719539807365207796303119302491373142160062679582666011745276819058382242464950798036967247985721623738283474287775312665359526506181849484877064179046675166440172650811188961590266915061663144095212677713199647863659256837543678198346804715848791938119189559672710944540486158700138057667445248547118423404637924956048834332005208959236671031160825893908367272680218509532452661905247157090201182923746174124580327582622668505423928365077312533277039465527405100670666934592956127923325028380593912438594794730546491119646422235455162301622994789880718882476900834777417170061954934898717610552459760592574693455602028029854686910985667878251897085433528964659807712118625789175667873598640094284214595182107313794058792328026726701280529207367880613493935471618605066757292120543352157094956059142522189532652334891506628312788549756622794165268316449397737032585635860711914231602202361578487033782082719625632224290413820070670814736386366049531773196210140427978734670945162558261708515978324586710082657330780897833546720678490620805831106948937962950805042859063193470959741629002033772241345361502841014019517901633659755266442496254040887784818580600790459131106581004121510633905239175523631686609122064591437365519722649757212837943107017439005195339593866414445224697587236773047440257620598529490775159183943366857669059261369319862319774411010559154372180362168966705819979210555399552556836198317361895392944242931652027803691025625845979135813852483722618257109066157570506102275572938722538288789862794650619026114253629897556223545543716986953173272510119025087664418018918699180962088241876028063907682989971844830394979084647698437623381979481010958985723993936335224594716084520093470360761733479138184098139581863440403659138536602091730171533142494019717892720730872682737034181127377397749197573480872446174320345917237911256746347628591640388574459135346286576736023198808489547443737114927730620188539748796394380479306553924942463991941495800353079096330015934003927271453775966740250436694325450729131581789331281513760775836638661488667384959999974562339264492213391124728997709657457580920918292252089801359145817802065537915969831008934567963488894552160535207280205810194908650424395013698922726426277923668534721395450845662676992064191385729379846748864558278580491094514397584975854818234637853717784686844903646157376252824122883136631480325998543252092854722769973833954893387889177566673893524045362640334127108375640156537771152505260341748682167294775508118918341073265626080257297677952025615601194284323361336330185447352957843908994833565261152296112476929574768663067698792078065076455118911975415299415082019438293191064852615675692244384946721147995369705410073796851553824777928523159550091703554304070751560588462374201656583818843940050223277047637086157234008128818673594892176619251323918843100957556041565945040097074701565645849208911941791214607780211045369016301934943230290085246741234713124654262323550156436773506172900995260697453940968184616118469390109961967201704170974507753341057217193425977525574456387717252170935003915102561899965483211833287094264276231110381718808154109946329806968326981810315037486233475999550357495674114112818494140921880030924557598003374624513093564477725645817300076411324023243042071492046410991748114838761146677219086137005425720182404551956213506849096110398103323716272236746835277186591886909657263046285289083676701541937722434634392543508288279852245432760446222240473262272305670177820974475173608551494810395957569691923980596221563990291109108095904331338083917326824788425881620018180540807697803816874722248311513674788546715383688755100100934298755165948152556868010752343540195868971001740782358962541291514707381759123564829566989835687127803867233411468457764039381823794938847839842048993702049807498108639284659287001699576026239290951581081314221224404797956678024555189230492860082944148190320058416169643454427358994306477682454221907866645899596417564365754523644902746966851679870226869720924373517770332788336907964403293608043003535545635362185217361707815585317636228964475084067550141086833921058982791628633044232901185928019913408736481949723404569683009065483287492793881200929589409076716329091772108471339230931240076980562477559517648938987883156108190592987502543953292288124595283425115871575791609113052149934487891771153658502559864756351523641107664302961345766595188997075662556268326192882999927078140642064809817288316752595912659954438499523352164933373990425816523904916761986099077831628364075390719846059055741129880345684818894513267207778853973189399403159200512335362509668860299083369086202697748972348515882441791766318813144121321919928751704754825547709829626450208016288426084087165281214750488630689623726334088338798003844798560383269270274770591394832431545084392404913916136321139781494428004450921179014799552336511034542210237321042872611905970716697945806899143624567433177684185147992797064537173819662715183930578608780650394386576108190048239316655099399403704663843602886971856156064152049521955769226671411288374524441408657162215996274717740011765408147115766018822147894368632158772115827255422031304234794594591989988661521010649268365946708079047151591879331373560289198773735897901386083165520845695174861518147192308937598353503046364322784668151069908692759991363000977196875468340611325479809590481255390009103735588012969021515948153304415410727457569074466125968532083568482199718563476704812969035595799651807088710409579977309396575929761682288741915314180586154433852545953006675937587580804183519723141186074301816667087350694275832531085367614388923131746777593799500783043867994991450304614282019579640596878390450367603619178340380618293332507467547431531782300919724562559716442217397119357128436381592670165191438502075883181621896722801789606955206049581789255887455566542853318349784105096836498274871269460004729365406197329025548112691725851984582445742550317817372550000734254126146650608339407495578824342477129606310734037680003095871418818663703192580473695286971283857549484658187711061057033906248202649047503241020091660478983114931099332510588762211162914740345512847815431819006416421666566814390468266827471793836791153458309691895009387224012244620686936881269201406889493996598834319962855360952319752390831449946292992229659405194086789744715018168966390625754326865197716700374302768168865127349748904689426753184170927854264647273477477626564422370732570077244594481521378678844060926584829623150359771541566437808103479423310554916890372899711730776995972215040353993478818163747705010960081293453707971168597899600234991737975334197826393412916319719276953296334689110615497601988557250187895700568573583692970919132406518322036327087622358020701641894473103180088924161881493229030002392308482125587457568434680834374742516118315200798688318019252421955434847246212264278175949747776078489546372327525959211688135958131745416438373611600942154434290031882879586410472770707193921530080529262180698101689923811622526932302058208018441782855364033179261460935924433633126806663836681100636918635186465423249212711051997878449330364391080397490781945708735523940524242578766028016572033808044707304303753895749807886738264045006589037565393702380952362037259243571850328041773393043182735674025287203924255639250525226499053966499620744399032593837959639882519006450218787474053152329736559482849562134395163753846377330340570004480621483995555823121763889058800146998697432173649015539836825262020995937116811488392131336127346880995162965741286128376209127810661471865773070711761159604837373505573543168023468291904536137982744767339957585474986027527072833061237806610109826477874875333133477663747323695087140539346623427891215169222019955279745038401960246529237875094858511793077313615134045114046820394051825744252693465778923815421932288610234889186855439967059037893559714238365099489021092704885633063895879296325690336471067949007166430151456612729941047069060131824670131877063511369092338299244370487754911925199361140786266400636757301117350597058363789904285930114601194401161576617745599226563029279344023699147596688096840103954053134542578978517528789055501433360845804682295795322326632440530235636628872690912098212043716786995603604609177086147125634777794599971362828581356105470262136410142872471806581252184309356649467534016319851153923303938307170826230242612797532682897289960475585856051116583730859898590883514572670232584223030744431481602755983012850319925404549441750050278493895295688796629269339398125746672237930188463312964566633535130806538042104866067323667343196851693921269473397310922553213881397890024162718927381490850178710676294926210721780321853672782145569960869240757264007560578128362360408123006281762719473875972664288872853437063842847021882182696666929821086133515501895900603181651251885755072998595852823558128121278827914480742498674131484913164370145421944352030019656393715802799715427616690748361212351533902875482265760566796006101115546189602997040910147250857160635652494816779321925717044902372348787405853979912191445647474649932886062642570546791207505418311106733175972843402114703319782627714617979538433337616745489505487344710205621700566828122429875869749220537608181930248492193541063897560898217467659153597325349134039592198068216447293906049462723977725658041225129205813425347953502100741572595439115975292329539432880908198096598140659389577394358333934048719028603238898021664328763594431091739601902138351116433887853856874737847142853890677713917066014221911281794342677048433822766514557557455985393461389594229478205352619590250639521226157769890122081641696900037756749299872574534834980593630755149941284290753272202883781229405235502709054397486745503826843098823660628004409504607545040272891637408807186498078728599522156374143201929881303819779353210396497989135115429098210115498472408305963125847607977420807212616840906886245904642014693738757178363310925233406010209681579673960657516162091901119708115008135621568704500701183847566278026609389182423792363452383424602674263613917221914573989090982873278539715691870913038372140819333306202187572563129282829862650693244191503380326645708180280078913424428995273783500833744240552928750598803995881066041592963053609272085200577348592080804455038063101204507735812495101574088720394981456981901571136116475127910216350985020296628378133434179993305320137414594271954226983998245804516701029354347828990682742259685897984303223235307742341288135390347633680662534381219651873061452447831683158743855752195174975659522227475449333996396464672888360986811602670477083511680732996931452844637267070159016618026485394624527558299887817761692208373177060021259287893927690857644155107945202227521946761576739486926779771704636675326414578262206124786876598033987314267030959655225560213723073208549803221825661507756639691299892675906885292259242978277396456034960509656105031064704715205874265885261341782155078793260906852628074594778166353199776643682057869636652756231612920076055173035670230304928756789016327481916430243927618067878137326979285619834179662661183172009901212939276942140623578360532429107891066402019339269441941857155450888784588384440784614136620508249024625016930670874505615581466889087944090380954229786653313165778254200625497003892768568283116893085400826829108548670150172453803758645169372772939735868988723408000592851788676566263634983143826431662523935226992458182767184429384162752429443439362483157681102715721946261953756956814169510897020016184210266823871974428703991509413841825941410070235041142894181780481187980358143162172780751478921458196902702966367002080648620205290609210199709825689794480888199081219032300143819383180278625864554811637300719977335966858694980398959932863449922109671785656204876160288658547701265186978087128653868651606570124498073505468044550293526827607918007429366461306025863954470987181247159139832645914039954464995719125928650606833009384695285206261553136223113276518987806557887773806912354490113505436327026454816453370621379639492565126301409982418738269269047948197693467612071143798442000270740475172966371753314267671451454979660069978979412323081081646145609297572345658570434905686614130693812685944569279987303535379704228532663622623570494723931909288715526654940629297696645104804444735848910388001556708832471284946751331280479915807105480619019680706857973215767362716459180421056781994407647654851705537546023952296281127337558649420721697450306524555191598285639119376363960063027938459820205821229262308044099117347426786333253628786202198877846662410141749812402261087949732504949266815090981072630781374068988585589896748114935628608994853098105818636408294826810866705398036722408230881028614057090206766139013419199689994232275509147693838096163359836889507481100062284392235965839417683234676047145688072674074098911346762590798976788869770333189917269933129489067956854394926166428432198422491144215268623186508005431439834735205725530700056442081361934907834343712562267687377243927887988173278069039468681938173479476688416105421799795391358872078190516456374391058134434398890768553012147384772217123870300251180052592341422149207533931790399452746739818427938199405918554212565427383979362168567362307091124778351734492865507304276908119157726509951374807682761881594438386363976808178299659847236219320652700732098643717908672768760656048473182510374617591640091270989653649163272870152189167756749444917544568443692733138430261836122589281588037239986709939606257426571040663626836994392283978081592777709246638107483822251613425501336215921598874809416722607211390086562649704254668811034541328794495949688380125465407800314012360696410068090762609002428178445160497034846022223093443994546074675594133856565104047434655504636392643711645919261079418527311514503471881682999877538278724488001363307854065493304174460897116535926095675437201496730077940683175436401769413279671689651302257344857679381861429149664055004253102620125957434405698249624812549811428578008377985342583770248800607546962773235299529755995333127175033624766133968005631692550278326113191727156157918437343680680672994900773884676577398429749311650855146058600938853014205700748152105325444630744745918018669194416500664871437329569342400172659045837137510360148758048211152941428327075648607645899987676679405683420927813793321372199507128583875893064626800363810391591079107100802623419995231910009831829442092589368740112202826507571098120552206960249957998996736641718915522878013052746133437725767670564582620072105163527819700913418655529033893604777158228907062091744381839727768570741383474545785501515988142568084433934959704560707217518248920034251477427449121742267727125173575328783321724707848738930575447202401188957983082210727062764891741975123411640959767130641169566498423675233366875677600407864770502540026632988907469046740172636114353203101869023521196002685311513180599484048833877086383339546124183250268331399426480508829641978364015540163193869880062377024642118085039102461536789931323716472350814412504725068136951144508911503268752993520600488482273137072916254962153742309106567802119545703142992171951907483168312990118486226915945140413466678319084043495533229841179359327850768315409373953376890158512657060923363321110499932525802878533419847550811129371819275607214586999759062667532098477992883220861686424215403416320797597603301966280889684210435356161475360068480162746485771997960789222847041559547742665553768646049350153369698062750250893578615896273796155057691028042273887359792300586410049736956292654698342796532004498488418662027143961561030289880954725284461857932653667992413374919680718420729054760837422342942385193203550410109681763541291227599572536240571009430599823718389187542855273996459078015140903817295223864751349683409496150238077942221430939044246458841405131587741423194745313994478618745673029187313587290735649920802000226399925126149152323038172552014200020658449477456929187038153233182961716190232209589637412016261808089963323286572485687261172246180042841737975614950834545439198867736821423575503013257758659143537312240805386239196370834456516556988903795016096330413297774051532460366946960271184479311270621084653004995843423163179882122330451016405357927798309487238007665859913679328330695175910202163140599125403488752195008055092894892126984358130014919266436806610536538356418193003277121259201973899699568849338673627224869217955951918391895730616873494133707070915349658098603390606409263169804826535652566768048608630581021407851467306824428372806069679714481289276876692173206988814077647840747016718009790279169259830093972947699674444305370909815952964111303403872387588949999539516171026901200023600486847593332201149226775366979512444524614023578812174387424324356282008222428637307014417963273657145501822635403201403310429682903316067606973518934252829679724829238770295032707489083147309428371386274868079515001329341804735562317967913723189566995348491267675792738037961852843556552347522112674327939471679350758268698033658490133636990669974042251805916422444442695595242037014737391776330249791050697721419739136038559774270455299075578732766177011520320378299212158415149181131183823321151735085489825804093866610124108158604141852318731746052299662228776073390885677152292019449620395205999330208700113840836727917706140367147760920146873824533896832099091052182961039184970170433850662500241073839346370559012676670079591835627030703882444972207981637962056679079892947420798993044411796059310709928777597444083051159512425277121397566354396407757767967566326611389424590707193969578822424414480272123901191705652664981678416948452587921131343985861048827493528977772985430919388620366227754228447405180286613704669532471581090257422880722810665394352691563180992427393291365088342334304593541675562253959548693254637914649153725056190231819987235521659560524162544212630712300716883028444209055305391063278426434735590927496910448142190947397734058202847474626049866450083723190344575213821696404482871342806834139140453506012184460185566962954427138298821978294303555592708404803821125456245008120296144348493386220743296719292709756417685424743215619842993408517048083569282507118688151819719973549024430785401873147735114676248788769814898613491013848241170379729591843361992387349217293438815939586104878256879483993519270899493995133759793338446001191729357019457179653139187767424488792211639729798290853045204306847956400635199746300344817515944952279322023917564788900636340689685904480487021291569682913711731363970680155481512854470218210696686650746596403341797716104285518384623466444775503351360984889323295402559604831171093667732986740210939693766737440636154160313763878515628652661442845436440549648147675335005106167891935922953049959408250135322529572091481660471697456441211529784138910667141955509320929382385164225864980704268946115809642067376708549581952693339316462761489506952231605711732829270123225742263722734098205266270827195814593093128915239963148384037914140299978340891775431640267676045314231729266184208420235920674931963303634301252161162754541563309149620550296535557252798390216146991201983993875252213705769095541479179358686912607546068136243065551524248656953560309843336606163937157991546029040265433243172595580152479482899514429648254297977357522049247287901844860990458556023659803008979134206593979252833782441274909234605643573232278601740728861334926705970698411666072859790777868761603666224365957251103245489881395747212071148944462887347827756746858076679356497473288131138077411281280336248482643676908586886935365137550644876281122503855966105103642076655878385175692470833340615411886943062669828397146790422103726700680115690574764178631323881743010507753213751176498974266843808564627507314740567303105719169892565877693268035479671959084132739725115371703594429370492374469247472007444087629963720909828821939762572828760528199461901502254112164117235068875537499649201583347272182529598787615277776622998008278468885457111158821428206403828760063531136705785530570797677219615540797789279379792795349180685372692608006692413501530709675382975675472985135813143524900052723929529343656361530034103881870740425415239011085182899610906512899337171083519827302571482554494140858461793386784936512043676283571867351968172611011778457571189627111268970118513735748309011678159442808668493173032668509112614250818795311169827759209696785786512420123352668442926574177956492027462727408979940453925341897854068977759190044452092763794344757715053432224305600831666656679323272965288041437800815132654355556401451347044345966015680371718723878021000622375543777121381192036755487148675863746845424371471843119567481144319692501499963775806917251397556187317752800304092330161599463209285708646233946728031592557511244637921988594497539508351570059720907469670916110471042438460626642239285881398283613507986037034872986846809851128976336908498581482899726375299292634231951892001153940456925607532965817118390634648390458030745567753764778802453372109088378993239418788746117595967484323034768650886395834826363332679486976515476272212818749659396352482865945060862087382212137434835866601396397332138948470426936793294883511361387869512684858062023787736280531938937631316033977368562691138436919253560720668727689285817138548595872250058901684010489275393223320712578099184192434852679377097790307774868374395879508544053498001587194417045804366516224153361503768697707795176810810350270703341009075194337645480050087676400567548197557102642850826106110965925047423734643172693009450361681545393311712463321329162281685141521692339109025982025390693785577119510860238940357501177368166970730381010276800516897112651177627157691813589401396292983255703097752035623510934468277030258526205149779385191043974919083662203096513031944524651067213263044784157214273654013880477255745456644239697496101472202239062366249900793531294788311506759158447177151673153622436890170700612307866169701037344763600833172868697910493809110706194312140468311600845110727505681986905168643793206144837468793717913650110511177936123029038543135069556436686375827108091118332236762354837565321251453055560892759212432380165893473606519735973953038930000121889679853162451652884899210247990403098658335955700784288309018827484260669550492642202365744074207284743002017800098853840258817348611504455739351090307139496437155004370059627249028549567881914539964860278928737353328202088247547661302878134217796600354436285224868439148577717666022726366415968136017079742717661200876031882948660846941754520409685365632885589945046483584012639685752718074796583951246294659976855742455915640985437087111987323437351662739166378685447320405417568883012179111840261997866832539645552502560747170513149971281099096664574260717285706337396690630657551476109972889455220044649644582641357849777427390601569144410718734081876342493308359701124206389886473961435033523581948890827496546457757042533145992037750418886792737940924940535467743958631696102634353697064549418464017535808219764423823597263363305382754342602253115430852914486064067652048264718031581960694991574892253274468767633372969183268043628463923551693659988535975139265575764047062023137220558043513432733563559302592977460967825425924904954110627658938512656491312996718727133058902927185243773152051196276121808497547685280249850022982505066906014093202448109717707680641662458649618857135714339010546712247777554672682482197124130708644578933145946775078829385302714115208707225830390363464749821700238535785794769301441903172958080359985426882133886282295003647402038536421631185825702769382971068579952713817608608732343144959685303515588796362358084059929818766069508441230399229132399342162621142362323454776814927206590611447015592614992815681592609024269988478509346972781099484904066869277026049698334570661805121621809419022312680187155147437563179685987341404895088114545701205737845640151163219117515242997130571957605859156357592914639707614632384401587873693199157130338847481979582363323489819545209268470932557808373224503946178299821741081707724325809059873319819419939414314306459103448200909751353117504868430569832125512293804252490224899192679455029365066408581697324651152227922907802201403877714956450229280520294011205869634421063005934105728857796526754324208991567621512876650950180300251449385137122778644425371246437309898204954621525671168391662979821738696209004194009497226237762100177450959053282845537189296794127102565266635091957115986300555104556800588765736060936368516095624753513851472958877904648813690292051623248417486678354984182153198987233029713799240518237173507336485450991143896765577912198540756189403555492742668027718284193900754705938147265460488590794177087196786551078095915744943116873979805684879985201243324804277197107039871224156121158388618628599948566512544464308810494012920545012651538354858282843688062939945728040270488273789661638762531607744779953048652995942047795222623723110085486607041316228672536282673060598401960888389285587191822686459317822341058376451630255472313074860745532011074505969924205677935987504642576242343105357051549554893982515137713859571381480147406503461662913764217660041383542647233787592346451609079671525591820120120669401888234147023371957695193274243684570503330722471253763680507549066035346061306495935743803116833704490628617339228178378612334110267877571080026452884177319460031152926399198327327701345758178606471522847087019682320920380689660088428032611842668633753597855429489845476626948246020652964203692957060766427509535249196818386177430974428625466369276086120986968206407166230330641697044094123321716302409263258446925707229417171959463304490523874365510676456246286990800728235850612278895107159365544574167872687861040832701899157309508215791507466497870943782367278085685050192256597885044117487377095802919104888480127045440560492680765508288885757364683098419432757897943385008516049653927914141246795193391072404082508647189716041278933925563685584139935696908864763144010820204685684264823986550661491983425163311242646212085722449696775760054906674429208960298703439856989068899797225739388088839728122955778130818838910399026027722665205602515947972627461634762633726969744816507029480407961213179016447943892856910981710867230919382646435965637705767483359427626585255041966302199239889139863791390925458555551000428516765364170014343244422870981889229754840469437651134205679613424738157424501865847605083531657501111854053874262894756572419112672629605165816312207624934044184723572624904187870228489695061492359077436168647386447938294945730985127713061023658793017143613617652247412842343379792659501360848483767566540583632773213128313232978320974346233186430555578771777677930403147284409735779728378910117609257848644724657796463857494165449876324508282880961378656148902694797573919884851874539790756165614492076401762098701758224793167303943709080853280874377388564687062841577068835082593745403160427927699373534154379202918842589896930182042395094392060702561380178757798096968927318383198609799805827988150390031743343419526263259702934474205863006756433930908542019339333989430049508904439018197270223971921912457985293085277894409715859243668132304083318860267519604179630087474007841330371884818895205143460934821747704536432614728533919813698298653269222843678732496392480935014947796519604575129234117788627791230413097428214561421596282640718417835052803129638794447249872931100656758354251052825437090800194716216450869832637381233675466936636111748249577243327785016953382357224429236448069556659707818413765271123908767213849916129523044129079026527770788957444892319485248918621222135479728105432015777743423226361850334743927378980376436167507725206342443530460895115462701555704837051575462642276811698478507272434376698878106405917291649795451493415443532143084939512881007462592622815668581860716172572297560704611406597418537513788254295702831363846043767754204335650098373205102875021410848999317006275177894522354133556226148822810878720699238403427824588927375091054624151770601943765009942657086635719430084862329345645477138847740853849377021997531131362744809173870707576590285586590812175155887654297160687949838508321555803966045178656198357917801722888045483529334343215859616068335568554452228958670942810837934530750478811647153790264001079513166046248362001965325645009898695438660615858019925108803968854173095685735310646069576108926207313706078520340413377064539868991553933085980909295899285297137907435767053102328246989500346038341408074175571538310455188183697842946193833902052817179985901090795224155463974319624807825383756829671090428095047820042969086603790413578842656585929936492168134994268619363714002055634153742110702293811407291839909564887745937213749818177081145573784520461986956409174859233700420123556056649038598515176303651506258066840915607809769590134359919688760641375911437389901349205175577102503877041579871525548660077588028927190224914367046113165332348742001386160001668026517916488035293151330500675746966595615210028314188677658578618082331687698952034819401152697354729881391237334646526128672445865209343588299688681118209190687289030043256014928898462036459081202134216215474787913831198459560822947783707964998665334962990909202822664824603896365503719358957620680274645215605737684905447466300781201025121167855298869007691404071000425146973452847848418090325540764081207833126797895700613960754620918820828335843833949536553613718809435102859509110803208533553151456434240588109070241511872922220902945567834045471835337401765293461943719636606971344468930907991908922549753651666418538543303798707832469577979978000082250990593245249207103985166201913306856330167251656803750682555566069181391894292940731442631836873444713481099243865645319994501447683420031716161002178292676501819422281203854017879554954221029750960608255980933801146667684220510561588198319604753223210827528825764859376902398100681961652019645048939071900188307342012839886020419739751764497604934855127918895835870728940971437049520151271320098139517588946550437741635857440331547948239383836924110588760658546522698955463154073475644146572385396888737257865609994167192543680270232277004637619713484406329445499777780809598845333388338121957445594319514335078210403536738175469386626317383850757057720909424780854508524938838337025317337138450336327507002373009056095988733283955813581213118681818207112349689957130983381306363374440997188425396604629821928639754828302407612422427355531045768878852811094431399637238340841538096195637293671462492686852565890425794680035573879297546254710050022300595636713874260952132264393269098860957440153280486175331402471911188109243587517589220520505418126730431642331973280740502033720843018399124818660751313795784329256695045906224125049060988597888994924336797603722223781896779214006342045055556054995455925632690155220141336965530678248374240508330393988194247431419496009485592566688312831744852689215107831951277976416299151526340509638600276150400952762800512248123399694191488224439452510120631663088415849720329773756970126092029984133157319053970352907174274897204470528185842291364767000284254132598558620042404649576074617640682448249187685399100481307194356849218430832168076406243777669013023649661942828475007022346240329146906707102500544767951709597735286421910447404179182301545071840338972399828269406972965099799372892749939451411723054468726173726777508549578471413515873144276840472883741633430852126856977854506848246114946144510825837110668763867067605374423510952700856978149720550584603256843242710505491193974527947404379614464822614245582654286950880424003660973977359703796573010186720609200690809821047119503831667195249047993784561804912702667346834179882336514106651333260817245681298430553893066895439440393758172863489961214801464584592442240716449835815820187717508888321102031377250058959902869312303631045859142991677039162240963043620936297771074084337185562225204104927074628039575810320047245735388912505748071429853408740238858772779793674589210603042685352355822881414034112560832796213897019356779613942703352193526549775020839951528291725486174264223273145008739323532254565296240996131924314988767858818499857070988129755879045230295163420822154352898607072746096119174247186627761302080177373869825257255761221337917882920598053434173778380305525999115776728454336003566519000271302132466299001575763659301725157228735702008350673889398568690612357132138604779311231236889570148852330442858689141328338736188218098973347379882908626890313618398436110796652709113937863453863524575258528716583807825714696405867942564352905093955870922963142944076185806297636015971657719966792492160072701629147061609932364197270468494491461129706290977807899542741304515600611840779398895171482464533337745034937213866931033132578888772712487214072540170761592030898929583777643524084666102394273454839967191552277233645938792443957280500056864562423366649621510700336120108349324538193812445619533239444132001111167882200557788145430569115907765976007462812055599074229902880040121322750496959611591609959118920576800691815517009373512660865872898681931103676211838968307867905459832013758996469166763176031115036750546055982842425486483898159562982217021002586146929482980417350114219804653757095380240023364512921401996809533783306688788602229198446976961778494113411187454242662502136918014022580016725283884724526585632247343778947232052399138071773029727533422786941231668589936652649955006181288974073253580177456086656501751372733452004074598645757468818565043316975913337137408923487881232282950690857275166585806757965456338648092710276432054375078119373458149377504583952616712022726353319428743301076558328405603103192981471323885893623919194314866485194308295868660216118021991710373687430867619194471044100445442261867333475474944103358783838587860810083015079692934641863163877226351468211960957690550229028787467152610391692819826933079260280656339689147992011663530879190373081929713621805025978437426421697297044603861205175013237457543619015065137806703230781212128167584242851431366256547567100150155026741614513740576020992382147389250196576582364404422770493661536872647363863094674083425941473950109767857338039466455986098793233864297752676881601748723024131832460615861348812194856409450321462770389372281244866036213417453443101129879202478321025931708876549349450185017507899664424490576141188021143860895944471278512942743545477046608185152123293177230241223532760920990501334773589708297307914416155248875831891710667123639485443019657384415535715564639734983028876184213456545956843794486986614058687810480051276315139305634522140060297964448186350256831431455038101979199508303679066974458807162568828675157271932450602298513505615354042466413527772922437525934546909938142210351738393825492885681859886516180760955754157277331020795733197391493232864313299508345235688486933179844960396638806958566090102301550947913362617225678453555267912490695657459816650254247077769604444429869201966309852915047312805324343868960988626863330192377499689785610060343230126593751463370336398298660767934483880011139782081828098880269258456206955557853282588163239157436182432717517627636845033453473890358167362908857491732754140550017011473741915619670449805009049831534537971050959922406662352262289975182098895694475076149288255454555690730117855068021814068249448965512765729116191055348076119845645306845873648322907092945606045301061340143920436836523607280372604639263083855033357770326160528656174279531684441190383765825471579689416163908934778908107703004770769831197122031257603257670384528810861464737962019786225940054882515192426289167120863312386682214432290189685059108996434459590265926701417529455069871690696428243432871672666008266148988858019453541829093689491615811011763376344753312214839360072124823212515723531557804713709333783413417635530830832506314368341720405601393522978487481508223490428498842718471151314679187201176919508138602682808925098927111197931188542673991453421605369417589529462417823855101307544391676008015886025117662238972290750326820908605655901525784241063331664172558964926162383377042959183287141022849926334363188896324872697087095824297170159396466136600626157147536231924319136792778202586038185354802394849065035277799065275610027543552053703130412574425719432079590490235569973645113569223137158651429888367347224743837770108841415198664436616973135744394347886382083065452110083331877890796050853891437661988050545471921682420462117406782495689221530875823352872194411253359339736918841111828356912258772792082454131563192837092499026107099374174547013401693551059171510490378174395371002658222777371193682597610812693744660130669011417662172428197706978651992433055687270290419371736928384715261001862825573204591948679787203349857448114233323049257288434524926103190436456749240720226613632490203826172720409148016156350876666309662122242003980049251537995903417474340643699963820676852563886203858762716102058712171979306758334450072727923851064670234695600841077234616688239436514695038729360941435139920894333115403971529159038082549523397433880683500940533400484545875962684024154419520385951199385305691073432289872536615444831804103393766618868120881406267749252463793273898718379355029779391002656179227158342529074059742368533902459014687533488660471655095005534402704114796787024680840623133549980631527001376746136211637058635966474873267103225104172901299215485760813059218920907782035221139766792525390819591512151161312502325570065666197429518868571568834755710589534265852900131668514482087430478098648375284186305640963514993415123097755881608858015746470910521836896097373005143966607160678217144812465751415625171150974278656236297113599015144570304629094022568617336748949746100476565976655468859552409806679761792067247127671992935859969962884853627987584394037347841895439287461701717215605548880847495058642091364752892631220012226347162006165649051905251965268611217910588785010471195994284216791190216217933218130325045156591488691573600324369496021680211738925167808639152725630353727891930724994745397831176267072049282443249140422981326690486735564098754944825920578706491957889415858858415060746840070756747023663563975680470758242654862454624862717437271433523630848694768690538500421726716397403144009652462784998464642714936177962695183245532304686568195036421978521587338401912622573864472158374831230913124725743721502383621497906733809995445893106236227724132842828002710011525855327501847701947101215973310955192210985998117539008622577435804158357260638435268187809444474432675850781165196433339767229172655325735930614626538126706146600028503751922246076283057937605200741600145539457158059746085642648489848835955936647016333900366609960366552904495329256265811302097585487052229453202239009545093358001137311540847043215493688837483088235759499567429045164614049871196470921619673167583795993969065412827762714313926311359193634020959393392578935546341067906029343557309459440748376753275813425896019241026869893262640798072228599283491060842203382400584221843510597109815373708345520707793176299016620333176336671271518435129344435398788586389011830230584217218071863368146310934543222047590735944629118263139269851931008226877835366750890501150898203947337755752797476161067625420564386342633119649944675489536316637859543256918895782486255726938697427708861851493102589601418758145856789256553077872268050403407803170694627392667208967761388924091325763709400410098260066427377688798616642228180737917590902852840445193261491583874306776435473787278731120056902647097093663755098096013024471155133619684582583164417930171740072378530098526316393614828450535977040680580255529743458113431639095868985367980045252360276887492559192924458336476561469450164486600204439703491996896134353070554537200628481675562477726965243536417145873219614292898366185786964754900887397904926538570088858052525870105737187900294035264717344898332096099446568267379101435373638595393961030253494334068924376865550410284164106470911723854662214925475241614089829548267572763286662283702139814533046685465366153019073314367245930677199295458451051719616022954418784812388010633408218559735127546674101280260477432803054340464691027764958649149388192533813453410949243009649196121631047330187239186140617639031594560157594306536459346534103541654560592855047294009055702276356798475612224456032013072374290054689157730695436839424584644433077620065015849040826352967784946801262785124856462527904835273952564009015210723103426745488477352849261162429097621845452521514693430200967090769090751722428880402307647448195746265128794906231517877964429228351982453101419569675120095596191467093146859633645003070040169281869553027841577259649961520531826046940051103354599378632292796234951428023073950102428450990149164662984455476443040388439533888214190443561373341604424190286970738954011416687213432786529954395116403571863872867630946662966831362868909275782932668410623826944409967795247190000967878549219544178277750720998556445067766506006102457804174350235225312720878138814050704784491056472177475538774968641198924461417784418718698737781746579508426091551963528374890230972545813033540253151316735434938626720192790086061402134431439634985112367295835338570124993993106096593912155927801144755578141768209478392267606948785426217866720493631728516121837654228328518408476244763129589246382734069307680279251171497867773096024477240633726423016098605474613303263605746171228854781534724876106472027476258237138495056616508868428834759930303091142412513614546310876025718641037247246257266031278183044400289460181847760335568242652699112886951282355743660880431996722691711427462417906857331219074908841609132065427043989330513298076287370880195880706594962701992814946346146903856915778292055813146778466181285376643475727090416920008280981567344077742790700038354681957236951430200767071660180340424585868353099865760726809975144598293001872332586454936105870585407639858316320607835223980474433641553377782832473112572011239771130199590160152347999162879759529217786377530264201977517341050227439374938332306797326214684164870126136544276627639871286049620444412759243558004209719588503433647194864319068495802372607276522070480049378072676255112323824354500459881405462460094514736628055276392304274427826849829988526907540615897796317949297059009753912951903608114660355138879667365001843754531164364867579842358558208217628285834452933546444571839419445954681620327989589665945840557455042932388190869129230424711126689728575890522904457678335517734644157696511670181325718390360414396669156698794545297186337862235675942993201100774324216658675982810848847347632177519991325077392863312819328116395872997839474172521797303978782574690453018061803232123081935835937093050031550581485372944698871777061994922712593041544346605664611871599462075829187358345304901821563884259923300263996043225630226764033498419227440147787241949633592610300468852726983838697948642881396409113459719305244809254686781106245298540944364323593980374811550968221124764845938076591568031202134788653777456788336916040169563598013279653137101094731355688794234518886304470324986429048003215762263087155941516922756367857644511099673227749758752315289647906406144703782583282432170098479924153255069882396529298412507418240343822243136845947914399869720362945360849009034011125879937620613055182658792149863638815940875608927648720749314923790494835722164595132587625479683414033547008198061510964168620991970509895655247793337484754316675664805485383106714778188308085563099164575173644057879006351818936398180573648617817808010997248198925886819615772598978521871885364427784404665167120969694914243239935076701143185224736329331108372288241761910880877281302083402731648305490397719508437939945021289331693186263893228168970452381615238018596603356065245856438307509872103437797359117609474455406668062487563984783094997904295612937276125516077000819408685237729555312395237923466556180956308686504551125203200368001470445296690564115546839193737384997576379941059464361491005302582530792796942304506543143232243818499356975246191413711943149084936598071322866568942804710393694584414294743837756090433931020669765236029496080942150807036685464828255765728277135971817349624810115982056979341532148818536153694727716824875203037499097624927748850940629982717338229226605494623526949521434341700251278533282222940769076354103732049189080622906126994995073058506316309714753396259636290721466245037897396292888380782870505844175883663130943477523707578699355649960425347060561505348569261108828560415975980478276608894094146064306192498862637417745318769189785197945013798789202701645052473208455461640716627197957703486219854886719004195382187559302620933319305296610062429318274484341107416561619448877108326055179547340224747532452135724570930367096308270554425118232015103524997548185087726888236256899707557647494193793112658937662672451924112691718124624724341970608029182677852161619217357046477629309192933852468587062780729603954990901894840453341036205791445440816427712159875443375221410164265048947864698848462945443607987688580866463686816714476728313129780984524702077656234443181555580185710184700124266439480514313386164693420783322931919698563517650490811717104657260199178877826612265203124500311662602135227821317150456133442633291780513728066100232948786728220326157258684017441904976009449371592030736786439624047096635537944163404047520682688601645170473247198256871496903466623244396227762335386969495849828423737625679889086254641869112726351488298866834405806963908300991280650568059808507949286080961454326214004995139256063143228018285532808554360901364253439752472683739459944163823246427001975972953556581086844615147007063966680454878147994378948005732974820969667502782898790978592347903747249746594625393594707601485921378662100976696094601397846666332039251471203847108264330876470883014909015414753888833402637923785272630674643320959419316016751099912676915828181309353512864780462965140670424183938367505066179676079038514347124860392948467947537333276212536629227403781091765044291153762108494102733825625110617938967186953380417391609603892997465040769850150258118079136966331938855603824870270600361871430109086152419772418552955616925742002848776141698409419742240248759974157032378495090607675717931391189095797427059314614354991947186462372747517699220606240198217459200418388638478113196488914943866367856970143571862605580407239027271885881865930329507249579547512126011161428779591324922078169946178844356362704323030764028181219072035386101539423807961128868047732823843670652347265029842354748827992076932372712720108549774636371512658706904306868757029264223284768478680871045172304571582144913114927729065308748648764083211548582829630489797488716079807309350299017514531916489625073177575960533737088543732861206051185509738321680996000400599202322967716543415456677294260924288607044968751039854232596631129519755576056949559600410931293831988799106350830445429697957625121281723514819611570086206860292107039741347261862419080246801722385202415549059647907702277885089047126545323025890225520186610514259424750422440757342373136783364626458348226507884620507205374619093486951593181004394247545583050997272300690252546750109202532205089219526744598987377793911497243934806489083618538949783341692206252619682816664251275699600862660576172244501049185836521985336337424017707044866983914593834897077905442171996878766345274111465038285812701247008394900334439073301066634917702544721831522198051216408854029540947515272154454571574916232444037357836836552912900441994816995947028018412372668606331948977471417068613159241453915412500019674580935876273699681714896142221924033029000371638052777301694468607294786927355021508930301070664881935647628704443209435303579203641027614142897428741100950218930088532742404667123328927050616582121433251466078487451456695732451317438633792521851024459456132837340236463125403706462712313597684445872145211867682767899632226079300625003320183348837558512958364413477171674432931876076584450908393166035663789553943239425423443394469565573085342326241209072218558947692813265324142376721827696101459929948617065070600413193540607664214092639249152249882892925590432291585819811261539632132769328938657093438330468413458921988235484043477320875898779675211831389302557663963668856658776471905527494771859028490722068519456395379288310136872662850325158423973259506187251553941613006830497057246351274761456885584602515831885135601509851882978390901455497981825199590480929176037614442022042010260387296744500231649693351074543867903783520229091144834147575555078288805391285478427335111211708362024603340849811782559655864536271227776455694468762093135355796575235447610289305453557519952739610060817780286542065488686190951769490763305476287233037893562953247371916295152185790330647645601084466716870070569501016970541923374593628856301165604549896542620319372910397794995947584805265224275602669258378102432536892560752752739790607875627655257351603345919835971689729701279348061406836292501275311391045431919609206066592892473006456781565960252243362005241321823910969193249194749568826523106637105326428726316022966185144363241349517815000569796357200535052214784602026144071901706368460016132543652028444879202240068387408950024521193960981533936754326722609314750130993028611000107718877991766948075095828909478451126580789656186776734594039302728178840500510579966612756461517237836594929873434568872607081033082142667703293583210734603299133278013586887532278600408285543302371733713946077733746488664970380449331215661250101750482803383361724974974347214299768343895057589703682809522705025458354722799610305448514023294731344335605545132913797863172413914834582064101021771839370190045825326721116045117804731526151182013419379851817758975761248418547857758723243334521065834221790182123169374184858402282285223005061567237846338182933097138371231726182527295267935514625879325000309767116636600828386003317856082105549888751144566549005327959387989394799140139081881347568729195227608107564200063845476675845594069320859727018771351525563695693396137501716389948624015360440521059695355901752203463202923335068467171606940175384298956010579170948683425528584447144297675395010389703954297550067339885878380687859438686865761528013819956577223551348643919280425347589221644955311875142261216074496879970716843296651211058819782649694568689506082455263670629538513613469848114608316789520422134746432013731146439466105378487361318684362500509397592140015989639008523337872945132543200118567766498629660171123733729015424341769257572466211308932714661660698563200995049981213725328103315634627368769618437200145547997730355755027465506417100668594630529132041191785953936656864624097560734283966189034028693891718290030564361469825855403650904704820904994181636284852472488840698947333472868883029004601179792115953789765072324366858504672675315987408228457624667059396637323032741323608466506551857153044471839617080189123907658359501781761502661306644609606946059453344606785132854745041581199611266221764413838811369930584749110126059040147602753169211410098844730768856319659714888986562775242660637944092689546120477174211459811357199722545985267804498521869430071661260473627364625070111878393021274270629977844276583746135391988264157228380137361499756232866190508755855563738376100354231857569735672095812463768818599281748948025078492043084006418854001304914202993460613994538981922066247836044028248495576939236341427598664836766769919051640151735492504446869792647015657608463187573237063796189248707588650609434933169673996974046896872130798900437246174437417730524553161354168491838353462881137499123486522031541239122105812921053396333385287483809851495107019330290846249631518962310042449909305886870665105797298043340701590240380546706130742399791723320294524907923097263179320701700432162275359073816649588824287673386545859106050328343662469581549063427632590367313212184444515910655198703333214638113467751422638908672007335134389394526013486959157058408017069304989753816227839925063118254086315616860401012999769985705965915085109035044447759545616125670031898165806645836599768300012299193947882838468684347482448932813476608174858191088326512701678311142968587531366787155079245688111293220326908907594199704022085788147870743785991209206012212871156657450134763730322228559339849212106027499643413246209504413532292068022201538435154779703802968846374982375413733934056831572580579414972964942156365715168697695607027022946428002155839422049186705119338413877904162291066123892333742430709460820986404219185232999255588363688098701179611830695098013484040413425921284375934720565424613447500907307235384559330132159756480761570772460719951975832852657475781401824158316812024626996142800404344828951596592537785325093355142229995568720311678103526364993659573666020243244974143966694371230384761129430596487642586062597249472010618287026855187789977327031088093843509732307564863858426426280460587123930456048228560115735834549171500220525836045471385948011928980520429760666605768215393532825935906786626424315083836446378726282549480867045716421504558915526481993447001575947818338691266876788993246423679498409252588353604005156304173603767261158697014113142371277402400142318383147415192868456585712644378858188593874496846412289321687512318713892577657910657965827735538868449750750068290612531196636263718247787082930508112748241914434868065532542948579135076515208149984037934626501325588922514225827366803646361085673669005719568507340521723791883387882120030916143952086665780862570652624246009921067574880827190939269913196367738442015680629979216514538159505233557190970117527956414412560509747359889615503881462785077427014404805674404167938293943902611390458530151675191574704979099182560213629816404208389297444347329201487696329098778709005359981092844675058967893066865985919964659953104985049310838695280908815973629108326741682529154319254616508111541636132111214424381917690379993568925493261052780986764768979987776146966692540789470648171698680233888606260324147159552935338390165095003736841334690708785079398192345580241010509740525110797392256596788895010725699361682110292900391191118719893260532688954040094330829895872308450652311363273707751903062978785511957281993847350252609431588604116576610693959178387061229655626035486067048667293731896063575017747291566164007139842007465106486139137007479514447458456762416502261967827510243927442669025189354168030088133613294040886122826516482160936416906721826730756078667913893433604824278773020314301780438728274442057855675117519668045883354691849166415809959161801685168323352979962935676433234664750492479718278749424537865226777159535142891309770292269570795938013522410168898747912220675997940964238944776755539906256717303293287112876388310221428688223582309763595017132988232691879574952587271475371128772574032688572639071813255400307631053604300647356852290388606899747817140991593877104692334574824943112654287671898194896161639763464806028013648526106334794973789221520184761133624098726422538596521549972711892230303297278884453339406676778973036816623200160030901196886513293993750785345129117770445295911081919902025373908713423714567042493965312695087879699690043183123511655828483528128071755927848507476194293966988043699385770465690735509976454714256307691045928629379737735977479492729372836277899076899320940724992987559799757092894558818497412500438538025015310558925657472178156700094663121699493647869894990475819105727443737314077623158944362451829536986257209438764550233367913644158950014979819986207038164411159444012334403389815161974231269378759988852667498076679408508428125515525715877921282099794647523612134029407395950423250203620287812657227676082710945130511477983413029987323836435695912450071273123205759147827273193019455025867207145068094550378679052194237964539676022610689557247562940790355833434470819637502209520747927957244099139531216447761840696443969125522181218921262647642654037950906646864034994900586467769692040760134996185379287038913611626405878743764436059190588776895036676841230492322153034544925194154437255822214212050608732497304999957651068583704577861310002503938818280835754112700822049845880175358374873508648334325771741213451251611789815685334068857317344288274185584256232622367062324780379861874785237767740240630906986959581102972768046990945177033671556164233521986016232114503576421682556859434415961883908958069158775699619999370541064117480114258279714054758257476366775436182956341501320205955847980836910200927089714650160282438423958293386311644916385418057307304543068288495405703007732951633180317515421217618853409152913565087766889423298984879293699586759284461675861515265996754458082465499334671598069861461748717557849020283335433419679680176649118917086049688583842110348053607912634894060557165379730426322038776377663457167418010930196851535429042308667662950728177111761173351574123500506300727727161849018371193472175299587816219627184365776806657818640068171803377330886986763836646963892117966062489185791912689273647437332575295034435537190153721704220224377336096754065615600791996146026941347236004027103699662289769497415638772419569413361426975601676060677918850175901936538558030441526759701327834206188383587479852180532423324776385250964931686704840138572748582486903199623142964910305399265744306953679954740075630325886860904605837570029093312128091248353075598982601241133991145160806504257479735247627624013492014369031704826265512966708811232842691657225891354071415734644981466133710938137255019413640468489503582391035185300478554321021932315818801628383231978686160619798836987849979934505939363499582146133171823820712122100456768121963159839697805567644137292125334403893230559431894099581753679853807614644293752395175605138546556415791061759766831173138780887953404009689206794458369583802566954610792123356091543134204429595386169843153197337465227716097821027489239835643778923689922895679964961705363959109161372762800100718609345168918783862526557720669746109675121991933654701849579348530656831590705542462712387150065636037430582205902113208897389298920772566771754966664833413971748838670903887835900647379415262983356438338225856580998620181052079032694143633934474738194021248577826127970909333690739448902767452933620957201086690862159366878249801148962405604555915188556131594361931677915895662540736573291591311793475678054342397183686702507696724156751025457399153108019103914713241112293167557842418056618666819508126358696730890131694233143398111920060874862529489769023944026048295048307103650639448744845028254799430667390084431360611846678812640345976983363813184860090107953294073117501441075609657215846453187748516847251428293170624772061175203602532145597402722795083043506647860807064163114532151561902304070195274982812555127840543328990335175001380854603568503546659142989614055440627358325316545885578897279136781935483946835159611826718775552307764830222265386397052743867910583079960268585385492777856056149059639251502127917029336628270265815403465350583783978842911041984924769099505356870436585261729512465829455682729588560396818115530709768530607203811977440439488747189168199916190042312863866340301964903001959805445166716740418598907381662472438292591309574591429946915476921435852770344784116516225434006093371990322191419860856117837561662263207362746375689185072411256457191884713113755781148813158703441019589121565609025687402512621664160200456153170920746003824039226636562199284474543928941081692816563375992168361034921830881966946522433630082051440965905646112328363271593169607949128569950052139571787525494193421378250308253599275004649493103050643362885048754851104660030068373427558742465708701525849539636520858384047852672605850465676556918805671103595388305620346392365504793976061412281963511326704532318368710500816815282297337641232265949725869426883499264711504774627434214123700190688470880873353610987722954052368172714510812364036245671417864498174540977418225125175893797839803036205007210343937510009067560848255200971967241875985392849167821130260506220620363766414132399709485144809767546678948407784523258112950171134211396719344615861805520281535942703417053266363067377465684555527864441664701131379187198306186021596852153342111411909945080556046048753213197057085718212400159200789145322670045166050898602302921229095408054138410306777156174214099180694906903990021714909697978271934850703217990361403619521677227861358653408826582176482819039025621511642381581046581108228849059097101253349338505420173313442898157335970731761923966369617835013529695035468671125111586741046057874780636716879172178706119294618600041104090382926055059232702636664847608868377124292082277086991675752678508107545241880438061449502212271548081847298781306595806057918991234686779684066029861125199532899392517076246334299640793164723291983691551616004657707551670805013894516778738517631784195146368683151423208488685362659306372155210696254193612783742845700478401828919163208258393019962757250931005497663492871174946224302319129241675940045594589989361893198951679544340087200645474989479446901427572433745130748847968463818650372950547594576928854952349353263714624226779188409385124395219096775321337380087512229575556615147944010227949113654915630011624221286274973688090816865394509413898540346450685466520553818388231470532090232365152050836659049263576854571819222872776298965459718120782685335653350770042682243037107618898841492062447554867541584340791399679061640735019251686336376318408844623195322413236043944538445268304903196965986251400121307557697896331077519612393502556048404641543290399378387780170839616297785285409267515382961748335994460321810299652738040046851046745153516261870859462100964581957687124421672652355406928358900369219938744911571763001723286747955475426184832260160478010450156774464902176541869425784582623216611226440368126428283514505204603657442381087084204040433029989141902012556309176656452193913474344875251545293964323099440280215299903784117331098389814844357464137722971197066297314305882146308396986185257467437518543073210346149641841773531047852308708064816642644313067860020598511875270498028528801402838941431825586865977479659640877218737230842210257858518411451423143288326771864898671888946563114626185286429379360887096295302002775924419627750403602678564333173877174435504165635458616061178074541713600229750504422977973979293135748265263372465349673906005628185644870524391662228689175005271283622706602918326277406117102790040354321340446231242777843688173126299575146020371039281719995653769676594734617363070004529615607375163977467962520774724003721702698353274542844799457219507429345261662157459459435989735375974195409956947001088554924102988626401137427073637774533689226362103049569478414808660246606395838012763161964771309739770564636893417988270014889084773777659613888713882211289123148755468386640890784228621682966827767566644184074738675518620146323238215495993496063093977719490486849897775802459286319008963701530773133471972955272296138909186372822223193308803487421141951582677077392966599284576136697902360697525050763223650862623803292268205845711899295285964156869011497572634516571108638236347548367210769966053184854736574856359852118846625725812591614912613072955334148197157027151263330045377292849804069408968818076282571510236114254882321411515061382521858794904779628742893765766806544244055125769124535259345553258948063939826632651301725171550698737077273905083331172571763567515859301483666918095100157678918517382352711269051415470930409279506680696994216410920781794722120005126149190835282117553911741120936157984176973578529682838851763904700716317635973297206865278927923213564430139119963026713602755637629847767330146863405855194783216939081665162871953951009550611638198315606721843627686363007442478937943017339001526549918343932504048082685884068866442216439930206809866622632150955628133862987973835661272793964270342025941381845410541943270399113432192598504046721374954915710165377179052805595584465129571670416281171495548669361161168563097616125508074832113040688271289568741419812136279069358042439455645078419580715655407699108262319033855770333139449444547188822600175958168403869932685497668075521779943583026553775358794410049030293645784283800230179521122864484021290314698155088322976979023940879536383846694800064069973812924834619230966914715935036659730216237139468545282758571805017260771595466961731003548456481525319325228043422142382948533477552444151129390190468764232946672610560925142952740940544960121424279022177647850574601032392847927419563395928120235919259210939768341678712909144269504828211998918009781650316766713549332326465997800700689060121653860363437838266144848057912764470881990748910173027802843404789808364297702933809525961238091389157049323235063167732682886995707967738173248630030295380650668283581396934772708729174280127364178652827202404512568462965113874147888452988251201684603841357223466182600955501690127246987345845506915032016240498635073681941838400165167490489975605505917754053413673345828586376767786132230247463445105122354222897163793279052434812682788348827534617916838104684595364596395225296891814305993683683711628111416440055275610871372047094302757559778825925489020766894281348818167162008822130895864444770208693971574444262390511993273912132014735372323824221179613352433110502779584230374029833674164948730703857971399553243024573315282825774714125919499735456388402777684289771144683432491772651268033680276497613611249818623008493348564810448910245580472376103089379968564305701527964397568120379747710460013818400363262471127565708596508860613777858944162157333665471768454984049217266764104602024494365603217455930020540982242335228259506793395625765126930049112360817906847080088846508552581393286662321134775483084271384047844685984267892658248851352070264760226724579508031653716985504205426987251014350870325629564449764675232787498496387005223041652522776150060243409672015176979750466014797430647409604713929998010731922491888017809813460694868892626901123789877572236429682729314105825818211547887805925456022206022956772523821225312110914358549832479607356927528773719697225850047828011601670316666983882872034015957816525573515976335699467116573582590332939215267055251681781149651267703807838561855524087859691897975702099265866823197453121062263865447510061261664587371056194670525109815464826433960812617870308577014348023438004289267876952093459709171050285407302106404977476147577154095861855397645785013812667176423627199171239765041394475199201779644388367642963701473627412372563356377631965226481708214426718192899993415507506700979215421173195212388061420757619489444348757580913693202707938040538911325740942707950883138193040505685599309418584797834614503305256864142823859840805107977120611256865549263250029700317681241516132555579592040788134091116375940407840511055216471082144759011072396887050747886370951310172247131611194503769427707786022520494344768884467859808124165509346661085786536540406731820852757205742761403214762501008375339098979389605537730065473686601209472444852780299134660113668246180032677725530440548252273968042749983337305586006075561443389927520404009017509296062832112300214809460992848774858606827264211038429815911665429920612889844203025026237165461570087927168218214785050552532944094255621728478040963061954381842051573158278933524422003991871663795056174109493673553904557723736053327386478922137215894769929820705822491347093018434715149025393986586486177504598644850880799413816223358021704722043254836688218174171619301796787851857397075088269957060296087608376394143175362234987982257841612298331438458520881913742729943486604957983396174575207521894843693501789390265963360607556669918089900769002541325143375364894738842021930611965975619922001453052731012565167843762531902718500089536182679131343886243918019564112998582707065982757880618955859716698443821227225655469457731677415963865436194101013619616068922068253341924899213539469889894102432126226101982310146325447460908431739796497597220608568417431843147309502403137528293074368885766368474265567597402224172256998486965604476368486457599599450625447815982079981137392165445316293786891387452617324351590369108485629257071831754934928704494932535637567178381259273567802949882946075484545868918809162917200090839606657257420579264109165195318019963972577130750672621607282881263661347554863284985815525963520999724636038617694509687214925089187174914569825998582289407390760419857023552900419151104536752574840339949735165219687799845676724002719777251758847611406379279164315866327150927102967862087426939161376416424280863008117148296859864944204315205800147906232586927567261908005392708342195337020142005916037800557626628663180881275224259528671210631180022352260562365485284680035015575517379118260760285816381773991248777216082020510742346205986048176230784419935842526863689736639684297236598106050384156540435442719621758955602510325287439313767273131667325305437203593297806029829343281220385240294054481679981355842108557683293262918191346801292007952461439690080213460129379986890838979175920088867606924567389808003637514410727008125342224315452373496254386395908394192203209064624712699999148779176439100118649317204124257451773081398933135237810247383422875373629096228665057174403414743607908212773163099547928707606808555717773287881847627437652169038648323276512694982600120838218390733848178638709326743524922208202611339545303035257689243472462668078200560366537620230158648039170133301476046110785225770499486204440300603719864822015757719358707903072112305697107106986755344400904341549078373309473748597461553893214705018519917123093397782517061075220539292470216392242295747487588196152722856324654018431067937122271335409208145045942017507238387293737906426435508355112675626815798870448350379445345770564926648820083836711165908434153274684190321777201739606869743870153380279905552709966517091210763960017949428252807955028196347085066149551030824673249449814208103692469542347666661888808681566698658280895033890053464551911247718355476595859828995631510959201016542491000758918427464438625186226270459760658547325937131039433083404939082911210141232639917118867691673101497728562928995203569720726227363508752053514124429881075403572974585859121720997289072144343169764408041251912203376401727611788936351539288418993895407829345501758332121047110996924869126991235978103875241286637596660254022787590973934783351326052152891173775764475743297081753430161265725099905648255547909194950753424720034773610263336414623854382548474567473943866791850320778936100132814054433798729267577212781789853166639862613196635956265919093900355904491678163638763873097906984031539495180281525032754299681280958507029721398669844769669958246199178333399429670391743077332597386213339392244379373204263219481126313616308844823586220169376507500248455324646106614746295829649485941306611022196101079836570319927410201335079774409081036594295449084078086804038579219947136232740147969995383903505963518925566013228462553071963693039815869473642273960800637543592606477590154449258262639583761886391556820099360720564172166964480138077090856520107850217480469905005515611323964504181462212781739901599261335415726133787301941024288278409142857753144133354952781051711803951753627921368095899487449601454920457646600408991752792501329521869762204639437403447552252000510110265759687450656187350793326261692419027301994592627753677320470267071170003559623514717502335092482001962003635213974882814209884535480561406712441002645387539229538155793292789631585317490214499558624697011836781980572470176796345766015760746337248388978227421646490425965089543280514677805920105034473654443833620957473004252490545657171495631432382412597326242960644767419953011183750677436195770296340702427510604124436859679824375164731722893577191380654812819523570280563882020188851249674563133713320077901630805525315443840691608398577282890915459649045508740840522263420785972350459032942859280328974416903099762648823307909023807244722605348995214227383059528871087918113994133207454198007810712128244619036155921889620030548474160062312219669718625907756286609549620883000013034152590042195681274007400331920581486765607143964497745385797888977947190133220604328300978888079189987893059028411056356670789258172053426541108355225914657488378484083649041517072768665524963048156322073308323204214127085662537917734061358996803266725053299992279501893387849112870318936514208296737852649605478134135921171914183360812877412125046450846269433110833482972153454688063765704755926953462822983131947343234984823893950739299766945072689207424159805828836906074695230510380023751047671451364949552365394838842884915086996524095574362975580929220666005535189679927738889554006534683941092738824579738698038955277042055117105179581859539347716201714442520491998602736273467205166549991765921831251786227149980787734287069782240795187354658350507530560179224085780906486992063013401067723181256239562964267802185566299827672307619585833230376282859538539858491386673917204089844560002804385885265282505176157771572676687433975458748308419594582293041566328780676228275919877291324102343338260123340768357923814384115854154858489488043786571318404182540899030720234147272615845237622477493612015675821121574126220304930863198960978271794165090229289378209255383358496414689661256019449929536337021800220426285840218880291352246998579968711740392515859685077119760013782414140708071084524378216186169054208319680978324945952036811010451867147508075956325605823478375643645313261850173709680986835193779102354926421547147494583293847520657914983847124874454754555140035239906296867367204691827489416289595520004366187992966113632426922219736234685933798285372263856167612661906851202101735480036857467411668789000965915159770251991826234710851653585609175144043752781848190595724580984151492455639806204522273385637381493791421849550043144132035308934066526008050412669976467300025653983392806044715456335403762020430653870881395711710727660081300421357308817890581633127408666130269108024555767233981520532271370470049881556211890018788969144590232743188924429186004896710937512234195164544386095468858116148804214504942537987146220434883503504338981495992046462462735187993202521356443351876703415969734259209908884017398255650754096194849999047346570843952946397225743283006480146201639780113943165992126646355038163804888307471378839027891618035996474341308277988632630850514847762869816497331947773354025816643077782207142743512972644301467693425485348268868178293342395654701073046601955165827255952193313895118209017546809424708408520835537756346283331860062498013364985839509239394201872720681823969261845238444087763036874980825955156303115197307017150591516975999915287288309237590601751973261644149096704525427299369699387540893404076450067683298515556726876166358568700400908038414099493402009891826506909071642132057116885229814213222549674151889712714796181026249824981737360108434368025093758937406020695274953596965748178186320885950555130479229420040402406325065626031513730057304451892074549528756254648791429906713290221903740801715155515182273725325839257600675684207777074819899893722712735493046257543339269823234248856919326586715535075400703742569633448224654125188668161651504597423182606815881498085988736488065165748237932470998133926205027997358501223343601261217077528333959383957270390329793967798559327663827619773376843278083962055381129791858006558885339786146814380711760933469772950890908627549421737992179673959324719765713260823026141382580673971120923600688690672982468248488432036124303638099702748858696650596321472288194374851032603092398267786932494969702715906822081405774199685488807434725092304508341931060367216629320450497986457790953231945430682916418902613388904630113201655280264036987023187365487689626471800784421633847028046120111788955516477659109430116775867835750153142477759464177255710291625071299215190292321757537118956468082236908049943263775869064069000253675691330964895453675813869106185110606573345690061714733264010169105280642219706496968426087922190451125164846204804749725509750294319112850408299260234328696627740200753481996464029017205644883185547590351991675858124530741669450244299916078946177853118406083213843879241348517785742019953078653903955360474277720658523196442240493189078228123520685216007388825737394398535218659389165875210566314856062859067828526678916309698696485987467958431889806252254116086698975369471842782389608641543384942703859515173397325053600950511164670421777574905360795837781885523736540917554539561629558799827896995951949031577300465807454044977051543480674181336694626149884543228262738805817071664296756104316759276039189532410789437629832040773288466193245661504557057938698602665733062177889096112163330137780364159036456003057927116712335515341359985191985748751706574218399156037997713655900306827670169227857452905932305579574953992479406844568897184061675421908823761768444506968104064893568991729081232559793897229814987710775613695624583236702155064188710591616099556907279557587085895587619370382507973589363409211164100211026778815225981179811613254696894178236244464721609557288367237572178914085463330897353422450978531695545188961662397177507271838406541335176085657408956364377695115192496651579615635369387479998345804541386359910785014662061562428795158183991040376817466511782937413247954844223090452227858505589673122816808964193234665439364675044244688136623925023598603881846735929458260957341772901788651169112200241157749227102190749137330579599607030705371042390597809386683148297877762056057984221337647484526581179577559634195651209691857043317655694012747729185558613250506292697252278743086139302144595407650216213539266956826192121926155937826812916515785357132269230196208702639538125774066182202275621351990370085110439181905230904409822704280082655896035269255607549171564543851830855495279714726735870916838678549342080742192131596866680678148019054670289571131394934490041094786126777961767357025339629402498668263407284428691459243370346249097189944908206977657483536678538150321201349430172645062826270719999939607890268314305095587985475274547489091560655093758280604339386223180444892464376651777300695062977313867939598999303313460888038885500308544446981725557324259171160992750539327000365700218067600477152275836667861342702333610131697193572987904487324130466545926906922843480086832034318078024072978879219849677271212660433429808459221736628818997856019354251476017229944346738109635718024530137051616691323571712210270342655341147801112870423148439950858042890479178688062212569596430474098407599223538377094996917702855077280122039143177707620460606074071348155808135157558287001901320636126689619504107394676647361566654130380919159044758286665089838083723985514825403716074111653789300168493446066688391067674835419234167090499993085734525732407440724869286084804190596828418136228496812047981495546746988246966548066463752148539189507554725374263364510989163016788414504112672022249029581123914466484457621924256900770040959006342336033360826559365020728560227846444139401214249358649252859181872632580461152965812806124883022589272386696015249561502793527478956289163941801228868266625894117832168523706532585417370457416107842357157071259478491084510726575577218987205378496679365036101766683020074927787712125870888243345873367627359393596864010566190867869346094230645610011749564079893562187447428661075951457440173081624953339681215116100173264347942463864696161734524659459037131105183085728467048197685668435941963882907798775130062526128906038642195139624656357206409377865118060399224475667259965615218543753308526708683923675888428436918726761870341512036648798633585019433642931593936179497360845223920404177580945376305577994546039361870310673793904055300995867145157341772543494026275032522744422301674010666566204050941795591444622137601849142152076126760371219327064114754031959878851712925404902015119931415330950202861998367226486997660051881598242522293731992988130833906833888035445269575945711087466033129332135487474076311282622835191967966926325582951012545899958165086634202272143340897742111266893346560928220093266452654084738858789595009979542620720027413751136083323049353392578325912261382387369299247652041164351508198730745928937502660151126578484605767187972359575422116243708345151751639717935915569778337990257106157167699012546478882487294494092045773095596445294156802469790098724964844505518160265640845439194745602758217751587817062273683267379051621663246901906940038543278043170197560676012436692539013634894499253467783917968131448269295076939463742377537376328553473864718024536108997727689474566804491766858980544442201513429696342077115096638486702486911692138408548161549834686603455780642409682189457833069449640210383669709887046890182295433240548954883122109023562337485219839335668164461047157286757218555235129626106680492851637591620348239657518177497600641005830340638355500624400806480628411061022942248590906703550550918030206288246190621831296963011007134393939545707127350617560340114608329549450209019521314106534296003198886888949062419807818974323637209658445341332410079926472854051841261414807652805811349903259375881884766340275151361269012090579154475240781155863534225207651802178656098047510520204950283879039850942550284907651480683523274762428865245539261216059439901381208365983698556499286271253353592329424150535767371952438686971021410181415097157604366072261176627290005161617344367650507226018730652762484935649418333273113257803115038487885637340662335835311648511075863039054174000724448569884712535374849602279003740376037741464088093730710861660522033931030711133974680812176160896230702277635613799315658448098694471726395597677919221856291245712103514340979874786965023605206338361616268221857044405954339032633964926766953191536889411516837993486186526497551764591790182147093459845457058308398645393877636824890323793060750971728628453084986286766582046742847249461910602573361120096750377320441951038698402723377432789319309653758742856711558041827481289065351126323040320760073372370341210835955033451339018438609963095134380148928213247741506482961223306986644265463162088687482916681912689535290411678389237128128404664503859533921583562741031408254031202622691431364539171399422911076963440520384293005106490657486985663399124185941306746203478146004495627834281731926601513013664385124105182496024896614621352961825507906275869279860166197127810432728762782230675444887552475625168931174714671765166841344715024451708843423925707023990193661478271050819247658724596180642888165055475233451489899762025785198435344459411410942174386102345217658031508232119490567614361438530994177468892984869510769460014933289935297704488620280985866230190832880429037602177952991542039416658873034674671713312448545748450528719283666028402270943454205125852111321414730874853161127606865155349506391232802173497081766030814011935118337931445676748339576038122269917668123197497390328788004737441429079125908353919096829309449251317813016337871216700418000849298022341761699194681919664194364852007387883742504802259779062706496687748503969819520996170453775253976813310986722408881044462186075511751908649426517529359761717980145184220657268295895031665779751341196410709318432264536739103153439143696901132698069660016702347001393633866691233207371066784773954657733876085844805058667150640686834896542891902797060938088517709750384035501533098247273992846896716170690544730533883316300775312918720813346007413133093321535828089456901924160455719392596830609885217136079937224419390336750463766165710203975052808471874563922686819087837324002646796674548568186235035074729709620267215410024501183570987507207227840552667178123103291930490161569200577871993074069652707238469289786201878994525829354656854444054051102225760124921991891540699525660290946401877272130823012836601765425834907100086459355395230241940256350589170555243235426201200402281776108923159995683571160762899897630142643600177469039986569508462802805966614375208738982690007809950096273357888398498599287074655378374178830618700477399829044484017493019782977792885839934387364097942810677254739008215889718138326415844012975892915598447282003704046271986223129149164526283443043723740005712536022502323446678693630687422616769179470559412726769121023979975294160246254214504096086845272209551638654237723789221129375773524094064683694187669464028862339042544120953031576313787064666764701729543169901954817378204557817337292749571536627367563498504458953037357500704360663622012192722334738502325807666719974208484133330390518635775640879606317971326251021640813992043786740342113764944800370170139919559757559012976681605417114363561086269224956007421245909365439115647600959046277813928261861936743046753042166980358632647414838068394461276869843492088097941546953572011385931799188313567576578487212533603552457809349726655237107153563500884026348953974865897781641496008743295375280665409467026383417361440600601025430997405828665043183055952350574379656809899096410519653339329736192065057326107317824086999182563611712698708695091669469680863135652036424836631637239285552520625745588811753967670429512800710974701797360207752376237044215046875223903610511995591519524894254910226193351030533530837500237579490290876877410933582846094623638620671858637356499044475865549004194208864949826042538466286885539025436012956860505763598787065614389800553225747496920978045445816165885373635945196415306378489751555275435659577885515496020354867097310793471384781619569606643118106836695196252515715819444424013660959943296181290358951675137503848327692205367480209503098005683510917828383655334115232617045245949611157738094743026223856182748197263849180153963251651019693540329279735105136530216964914315370033684686769993735108112906869980927079538589092849676573935030870264765675193127974419643361348462621505038867615626369856665526389812683132464170346538936291875622224344576531469241767985712664142300722142769876236467416877376409716783402190717205767930752543248724547814400181196107566200800880341799268040307372457702004131838351467285376393074978787432938395898379860152272436356491757545743583165700251369962419988996081989624782894975284795152531230057336721299868040023520458979001064685422637659151680005539166766989613659904998484111871334074631707935932068550698425122868577416321006744292190203627524186397576094373879884806475623863451232582170879217808755911645645695172353678428780042603035288284606647979792542426160767103893491333471492212803022239467203478122542454998718060729873021186949724326255795711897930838473397152292488477149046669791070051813994729630879970062469004055220556471188914030258374300908873513757148764251286714236586892589592804997512510049791717114798804328715482438191138124137024839127726538856201201635013459814073080466841518667216733758001444328299650251184943260508313463587510698080907162762113518188706203231946575687318389654668835770839415855376526996176389174070220208621602859095189030642367358619886970590209021715345027242745775096234848892162147421574929975628322372182133551381814339955212537501520717270057048175725514952612625678034875378306100520190276679208930584011567929861322658659053236544025320114762953013749539500800416944261268141462623100669632942256427579427671938541395091208018901626655036413248331377067166341583117586812666712311570224764000766713933846293681723982810541378045761612808153914570283961706631800600501918348607526829931725675399509291071823066559621052742753274153746271182810563538150030274617516571583522577378605801835593869704788761928634322665890081810099266685098629931601259004231000031254170425760742990709499179077655654479631991324580531886133542212303350678941909286118301057381681812607658228929713682031629139247494890714219523655441654288055071244707937921021365786534455054950062944693474795199264015692860165655755786850100229878153392388299067794592247712224081372772885873381242019147678991324275073771715986685031832036035349739266044394266803335503980938287840767341658348993360170571231176173453221388114691903444507872506983266951527008628832805115425032218079641718236559321915879012820257799286109921133749905984088738418647216668808431517404869737351660566179159542572774174487349707105603491586474132029093610151453251014423734909592788035917224737953963632788502253318569481817766336320581058271949945159350060268653511588494527076731599916100026226402370608391581237310491114885833837705051487194593400004273527951549737076167836949280038418439736312823631368565194290870460701892809501450885933950720430531438657081354913753426888709949046425380032805264322074820582364804863484319236086433169658909888720754856741695874358380906625777414075078780098499210783830337021023725201117839091993940558972092771226956889170591717742722875066586412365140863911911941615458725983544910778722305679496551678395539479261566163854295999371384233112135713614496321132333755551801970759612028272877196057455090540567971300300767851282919759620711725858272910848673674703455800949148248298889721679876296841196556190678696641525614257262380796399280103453183586215752011792160655987573764720411388293706102505292596728846895970001910547685391237463422826746486738293517680628231059659177974359863886988260878177663587904355587481614575759781559148121484299774681319279670779062106534606757447502680452300633621003031334068950123150604320551963856499340708454587625038678556348291015796210224550622872543969625541130208468099150977706802021292025167131439516317523314412251104283143303827228876928156405846224540812583508026205507973492526638940469309762346543301400165441275745467352946910302250253572473453188979847935401428918889405472664978279926727892409184689746298227525192083426307955677206176216473348365192697203207451596904200459856688763970351590850340327472923902290035404461291651282900521798064659868435011955660708148627428969716355779941332729906237720615171927817394357295218915881879274567370649359929769942844383604336561158630591747803643283138532751434783479228247354220508433105448675134168782367968854923640582948168272200892519946148396324284572062539893976309486748859117147641103517620600011420819930330296871611873236763770573304744485162923092495583254525273926924655445733288042651836399857585688452210531566075405920498541278035090526727336735291079124475070576204961091422602604317557430517307253107232553233294882741888232157152221313367341369438922847134353470753627880895752624443083625452562546724064185768494190194292498830835234978560393769342415695521954301786578719208520337584259378494847389428235089969820247174025275683018784499167583127963443060215084249103294057549879938271624089814958531103036067199106977989375018084320672938664313636792109452132129732825608435450280994301552625523496993934254082784720152017999539215066625118316764149444785421579053816257618674140424988984932718756556879488542485597992933500274830191540731098788906889599049100724526915086051116237357994102220397625884905150066828926996758954265004258034575500876831821233958049672657254273138644839935473227930832151098797909165701394263936227826124317509902412893405197956549244755307027213114459993453528968155696305989853204092236498265902148512095318115460196001710672435832475430939120078900524906266691074538607996969792694614590252051385565741412308878913336506843446664344160726098450079008547180717779029108241216387434197217710695971115566849833087725739123216952117417989508460992391920101246247941918041342618547991680392233777630910753265572847612858302521125195332870070922760963487607035698997550043186254075531534014894840385697916675428041092702506865984509897239609000572156977352312441630055384469569019411052491378801206897574932200423995512019089299418607771854931812894933917237785319726148817884898176547020476950783569218225651250010356199608078761220714087723670197073064569688062015423165747893038527371885080038370634565477999750273411187609505114962657454799361781758342157243325121069605593037581395535796190084081585635313313002865302322292128288082437118357740108843417386485322332019280361428982415060356509804642732306245244018508258281412266061045689885002497667492327058560652913822813594446193624382509246263844607673878943655255624404341716034112547777406623640353914563379769602169824086817289309384799111859903669369579608961624229133467933235156524611591982992840965783997210187484405080598780006874996848880784023655481128809564687432987905765085129653277949297496126536014301816098376513903500152131694167070000173324543733602210497795328934742802632179053739857839463555244006731276695611831505666838342799154956728450565861169971078204574198017329466046697272224794583270807527665688102473452907272997798787006118449940867523853806819091324585520112523283974446790371816771967031043637242794214071250396537350528771215499655495293819153592340071023586736670159890600454589122193645723114875787481877288336853026001890552949817269768266410516166537499153866279573655150877680867719646542502616042173441346518318686330881759147193203715399142512614585881073601353300141484509435041212554859669690292334835004511664505462133889861402526138443220403407449527596099114243961556390425225827105604518299851621623056193779917072675640073042445303911177169736514220298820661101844686760369800705437357260416589067779319523212770417250135864452888768090686361452791712688629406540984811167309893511593176399780919651550335434400396977311647754151636371538732122342423605993427897938053769546173755498405777522983581761977460113918568141756672887417743769196485988095480427718438533695169230498047678159693230493431151472414545335160595288208595915923507320496484786039069059268836838859389983576121381432334512013013097249700589780430647659031481017396291502086409866129839896380752743377478543136005290094102758389280768065909536263732895535298317042746531210246637767024895074585166703763881990774683089416474298420961846838213096566171437612789318022450976697346182897857821882897662237266594700141034127477114045495339324223519348572869298206775718753721468587390151090146586513853415545954141970570621197142244624858473939308146116113306518315016172139066520227905807130767274312442877445881433828048403021173100107751570074783944175412113705506437525054619246730598324143564911157150469019568031001355910489551270506500288185075030108589623442513582844000788038081334820088521909272574961538617866610058204694514055135298471598023860345927457009807908589485087364886600064129077091369108523112265940831153014967071430185208900329907620073750450319597459728034145414652794282455123431707902361813319657820115318396089863713316518847261806228820516067706251844144654659297321116524374960788237537218001603011424245878336585302431409753835125710501173659984199279307230560381132227052318180603620329199032590927415699834097336018322330845108838406661922975883407263761251368934229025046123455917709395214433990748651622217268733226489978459565600605851259481062558963302558440292680116350957706635177339284598494089563445700501326185589920186566008299855978812248990303773300439354866573637748960538467777739428345498443490944696689734789287583701701588772446481442881868218911056954735784739884254720083308694007010316441396608456668588550195935340044891184513086174802889686346498283227383223337363414952061007460514757064526848309968715421968358958611694554115420125568417770608274770929668307325772423181658236727885300420183421512182260588009000125513028685173695231968476021190073632942101415769697122887132421172677237772468839660493013550187074343502837348987082323985132477453998454304277521773648894840529742413716311680136059803948247150166285310724923886563495230240429115507776744441410777429871967880346755381845910355084460818221099803425736985671522013945098379301216197642973684597125658819102691675779319089967196698529259646342407803901668009520086886030306187738031560838535012676208449051859487762859384176740280106269853755102489386648800047083226704685529498994142467575040478682400148280042092766082953251619642920361474856485030087146304907061731468381122101368306242777064234856846083271320463976190608852180846738870480366198374263744000390014848809754126791298520804179562146590872766408478013060327786898039770995533817061291735337072738242051048431339602263576848795181282582800625587136941401843748255628608452187264605009652607210506499902915980432734899545233472597951260867217175742478279122912266353947574512523649912472094161679117860838825892007446313855584432891979528044039807771371780745936293056670952474090738937658434375517900777957170495749394309942436263392197702578086131311686418024780095141529198862253626891115744791092850497127975878331020587236694686255060368153605101688353430858395988663935765115546068117670607877864198406008374567800903581371221876161229965537185535937208586943835587565486616302165156116863133094532612705882592219656127656490454968356924005364295384316080217492519781384822024532665487768198984522918142972959178844109357633840401065692400149254083609145967271739663726057816527778329189374814204531292524531931843045897254555333219060555776081246753428569679305914219318269531890764972099738843386336390435589621388910697800700411591308423576995216817198046482901357423281986066671500554798984996082239884098612667731721904337697925616443393437176034602445053811856085297159045122667495656454061981924324351468305963373910379124382836234932785675029270211190823724152212194375363571121022350789717123666585899295929647027970565172357798085991474328627251471704166870136377511289913337980854839568923057892919979963862492592490657561054211791181954676210375711662239000966001304670433500305439208096953030999550568072861309136136969558264035490711538178264119816992378640982892864416564996258635495717403935252921199518761318225617155873602671866520046527331938003710437467887494177443099789746742969201637481785638318129596919696308549268742763499334784990703128512843382411010337283819340224835723735578346434155699504404978542006774964877667147282317533720286088692083627596212148240472536015992016484618724318364496677743890392633971873723247025264593197319831572877658511945621901673769384218778730789091275027061739154986812522432626356080234875527402177737016913488975597798494721631425783456929347967421093235905056485495622531784910929013653102776959727602525626797559970134686291816888803079623441988767421084586690163431921907444317880681628725077708644719279613188537873841557746254082911167517961903514093497893164888259656314938059482903449099814724506321248705750992538877622479325403328070754331256360568765793832440793091156252047905528207397656333305413971317416205424508521673684899012903730249109618385147675726421898308149755146995099161964022797062307786188586881899022682136863057189937308136418537172611165799050567165528798053840579074370536367649560615792994079974124338086867854150187149493664299989338517371182967477030793575917110111186653630294810043096053258075138252804627800812695564297324820756041022111143735448401409809807329197317821399371086577671432987906735418497560952977169399672546746497058222312128085916600358004160428856784770776059337531574271720153854679106507107194782718984571289242710280338062315780208424702898021806534563996009818684262330473282368779164223493898698351915153611675874302457106745262165155061284172237308851276913021182768007052919073322734800086869359845312831711916847418001867444311854892458047580738613685219487477033496277155792023134335315276591755383473684376247645156348793562156767621092177479947149252087709011962576038903805530623895424395554703780297966091719817055991280834447457483099884946594682971726463729939901369337510768398156701457992272755107198158119803730837863499839544259647137647037621951887553733924053999502757796401777934634400821269743745042393366744158326673484217338260857704130617260021248478153896662438855911800602296118203114816340139684735265533511371346967923363493580917957073756234019679995194902443891536944586038057953673876222333338063619211764768896876472981606463629097496811202897594954038589041977418635165579936680585340719052903704601156465425126826036237494225994843722866407593696520271423278275771178672669396758125591195341124870136361285210304152177701707410427272134366414682584227375501351457391713611602186476989483669035266896766342711331078369582588225801701601236641493743757470768988335542236478269929929299388814439156937682518809519726258775420447576857602261592265882781730131670422842062083367456183223205558929479937146462824457256289942685218266978684117665286200116739559596114981054482495835935105991980072902749344293014888193913248697680030158534557591514485652079241426214391907138513397575585398392599128028987154781353098373356377800075623035490397814503205116078841778723146916538596115489242365287970180219362505861079388433515463527377601375460156202586994854587954207580535594654357517778412682186961839052572286194405264628914892292843261594925336784224315982916583985487541137705481232405865155100368351541648715909303309243644617574130347698932430523742914372218605863291531890265384266369696856366806108488675624343504998106730060563683410509092822048765221906361764190318673780328832648082529227879400695590042515311645805461347745151672437349352862201424659549949742001586717515237151170590947171572868422810056109232616587611951076543107704593987062502768242457863049450154680647351212667451428992023641877188707092872900140666686477210284116170161138021818175046962412836436091258476795356701890448075102086342845441994986716396432497761373216215626481721746385162752412373213905556457794929458299070897613263032626957563203775224713160059941597808070008739187434049306921331222751114951447933539456992932042339619746524033159715774809330838609278985692452044068270793917448850048213605638625540942851020343003450649667199942239007389307735658262409045632352939832439782333414068282801571115528977464418461259207785418435111730215576843187152036784235559532571140509220141726010728120749283986041074702003271457390316243907962226561242734756233327980229706324896748730057135572723804051498825011210855983944385168324894489537489599377010146970855548928461876060814183309567880287180215145204840884972969587020551648103722988780746329039916954519762865497683143138051099739080372727380164349439666200476922334637489285559299114606105638895283390036013585002662088482344417345257307956463590490411542783253730425338348234399961273421297225268499065187700980441055085190854288708718290904310216550994174082495795713690345668430807307720548444739202272029388443564880233403403405509501768299116970995320528959393908271479806670351250753180207071542678222906253897064545409471198300511046982154312158921297835675870987240974594732317971096873466378350550890602382898385027504038643170416906899223164532340053190741956966872476938789931757568727214332855231831294883040782409818891446236480681484931088680240851440879522740742465090633340145558584538078707646849765210779676609495946578818812993597791151960554582079221594200637787672164094447239431681403104697767446050964558016770582724016358593040756929908023605692778369917939332815560793716250863065475059225204587503278657582796549125487757048449309130732232090318017252915143754893480546065841602180634228237984645646912850866671703865314398941064762881903722174221270674277501073893594965027537897558234392999111464934895983338827975621775074679749035718918386289843202317597518733564652088392119170097349053017628383703924998782335509889354956228593942281161293255152433538509057029605935184642652185586589782722325235051847510127234244094848275744469030615587927606643394588118707286092731034391253385634721656549392400966275390956577194045753718654445290197903193595983091823525595400464957355708672385795028611247500713529728345352238296152271255118114631535866251357903264585037018429707323195016301831513579373482569814235352320094378154288375383275729536118037782903390449326379229356726786896984592067379179755031562467878249249669983761271935343162650253676359751952414485926531829083766415425102448051284333612260058422102747300645179920310055171072802203652373374163400890068341262912769511391666092139150384421206465842645784325629166985359839911080050231254807688479465939209413657086518288083397780917861906802456017834692579900296964060390330046362772868320196923833410739377121992097161732949606372307601209422545897710814176466532960583191531987737306637879805401835936863840619120106117109326376116917790140371684410471025290544380732164024558056512013355870787585129511281024128214858258568673102200181915221963139908674805241284332745827089439015875064599828582851329858184504347842144929051876037146944570323079567507739712752751091119681864711569842629624889483499216886808089986867852810261220910205446157605584349992427616967388729691378341973399880084363999497818544805086658074499898086277967655036842243245816703051059355320134789272139707576087803339264948037006102298367127432515120647837134164776819588020820908782569153414818391089939655563825874992737265587755731943408059844820235210995513494110875553339604604296764518460288882074016259796680151621783724033205202968377690001012086472181779254506687118436272251095506712620801109546333988333962620651759026002897711171175472065674018130898406482953881012446593579953551114148599008224048033021188391549021497141746027695065488052369691992289355758024748543738481259975795311722701676301830101663351995934752679320506471544413469456358501715147837696796818909082433482461275104131665792525347126346426050803469363149937666589362065656669395273504714013249775225341553191663918107812748356362618865314263060069680605488875021341128112634720558227868188625504661306227822497272490702408507636246827224276607536954367444675636756237589189614405003663941662992584085475355805191510215376654113096323441960838230203876008181186883315005782567527213007366364249786493309212383245935451097347603261507241566718918154730023085443680352270907136508126870817261251155758952871798895341940738045140482967258834371894147626962872094746459163793765621584763805087289696915098622455165803367621050231046165742307122713756167796912692607705844455514678791973410869588445693270879376587869903453716773288051875894718827336506259439458508792468619490360885891842240249290525218218871928612709462100377302565072883910517298449357101407748766477179684824625634500555237061993096195072933756524023458140508281363701036867848811160422236939244531113189843579364412018585322315675238636804453727164933729709411630988077851359537962575289298782382376181589814721193073788593780244901816230417674628558292239932912180405126306726698885562448245601657510384471095327962688389098601367380202461278478735163371345234273446594809992532921256278694147820709933763001214393140494376704675886019118993825519758253616780901832981145381248065627352758104032959149550089341026297389841248457166286859934937803654462210614748921933711968973727347638222595405572343569951301585773263998314764256369473788249656616927497135973046205201697399270724753415606496518109228773803183470001029189663951222257048981442246586602589102161571414233525132709764205617317823631807925348159515837739101090104718705969056595819935132819192348764041235906211469678570847629910715745982819021534034051806717544432708730636081686946448119299915294617595204549099271057916910992444259027396364084667465724910473956591493296601180121872029495451229278337722211366650008977227817335372436524541285649089164600476266066675804780869738353818441846897196846089237046978972996103481151624351890071389573278635508689723499634328916999993990593279142891781789051080027363686216651289770350584071427238028826131708393849748668800785721987609534994086731292168573729666758196848059407834341413287349425741424072078386052621812552650798890808610169448858604454637672890517510558292688570159506144735662105114617705955797162830420777322483457869701892021339048195609608762289824590223020463896737188862824978823862916846970766169636540835055141658372984156303092104869819523734858567010976025875383342849596045125504222953800246891736800622402114866369896684837451562540157492404746548575851702507207802869681100196907128529699245024717054462127749895539545061745563955750220208325195146697969385481326612528910457878658571392330139394185948145500386429896720156622836947761269756241777321503762865837484607997844451006845129160008024751330363117646482297834995089743441128417742007722647614544224461841036396249048540300751224706576375783434524421548726310857877057587230413751519982120313026593557574753518330412195817751087529931486654733173604982294213572640876649598423589018370018630819451966330837111351006629904949437133933923422642647398523610944916860190258322910612912750774805558194574550408121638838881596954757484460259606588104886356532011211945422324604328703015239481128037206750534482278123112528684283610655008434764247957940625373245685246601906963572935689464183883027830355542444788922799204640901120189810670976260856946568748282218591886707125979141254430609003215792326106243819570197555734183692451046815043969360522246239123267134611652397225395598307750508873212712361669770868429648240194863703046176980956922193661906236551599005631550158605195974195233739027189845347367533462513668472616578509628161201405089228287366045409130793271321655324812783840548928984267853906042487281855784167162717249407925839349930750896070588337755949966157907285069724551209274999666153202346744579349234357347197032496259821230574723282818143143206867330158450589033364915791188866134280034401503182575607159605917206508052356695994098689892216059754578185098649935855437919189793567120003441734891338541457947181369258987944623526654767491960799953953825319315383994594027497513516192789494200534324789641166127356978797424489008922194018993997001762670699377745773476268779478706616077109258414328513967869694657737173691046614331864860378185048214902866802323819147352846114223547478908983730644130947624783261084286091231138842669627796759437823130014163273778082729566266822254713339151394348080787211179228762592343743316993371082537483800371091915911026646456637182258995191930645087980228874695504774708884359590428868675062401951775524197029967690102944614589754338077731335812788097111306440062032282876603613005270932240761861135592135653696790257389889333549890291320910327567347501606190980984852975009812221070917904925944993508296530020908903033742831438641847893910136614011128318427888892328165826374745977969312572978914150050593430368431056893398943692220099646389704529958365065546837321842030974356125092966386969686124056802091317876515822587144546905636673751356630071432431442155618934969809029152844275374303748213063616731873688619160671654294873638081590289877534320219851586314668987762822700956820095545064725260745981870718233271734879545209504608069642882627107917498985776754284389481053047492300461054533231290635477477483213439120208160826508390221779479077393018722078667745577844115717996080573910035920013670816083120424416390561126184942419174454742800353801018286999734809416650043087161587987635051847401931502578349991482098752380994476969299367714850845741014179236409822290747025507260922830770636357912487772869872819973091624803022137408053362344539455564519307153703589476833585146239494064069861122244178014328163884178522960078441065040624936791520028100623843916077804588876574443861788025398310081840955476008111446286559465630544245296389121615564720804487627719782832239236271056950360630680754585838416983089953350066753116334181517931515270161087051738741533895331417900180446520122909166252228531385527901009323704136703187877444357911549585400345477259491279963160114915726087105157519105950684575686842646094270039212172465414489373447533218527793626644740388863397462741949205488542477431688522310158105872847245164769652099320466796265382066131928320052579407182233455641554766973880371431033251820568180102241726281100090048746817959813458871451704729232990542856057350306670905605281662303092468852881376193831623802617331924291682373764843366362071184606853366185444868439001573800727298464300127956395564805424010003241341596561859855259039501998050306142730119908465344041201846774101250618696204553926387158717988229543487616479299605654552602642683191112177353818871306869934052304533114676954140445059915312072032105541171633048568849438872166827240588271443909936245392063162186141941088194862541815549650407773670417612633949037218178235993424826788628834808888564076009064675706009488768883206872171845641043813786268480735685969678440878827385524743971238447447793110566814263975351312044255585125339168102048490205731848195531000501438326533846050702519115685673776516453030600141241783873520619980150430670836497581604206208163939841384209986700747242124469466359128310791556957233306848819168597457323932866435038389194101158308445968965506595632035627873191561385493176181807740023785583427230976954017680633513327277071164734579879999568529043008127119313345336572351463664001564819071092481006151494589831191424493930118462395560467144698879011964637198910292884076433075870130756746567096457123802091989468398208639880815093802709974404642395922605626458317306229245580932567864831777403642151740405795172146171493964581376187436589484776282271851454806724935127136440424060759312074061955589895502410259808442923796181500071880537055283698176633699044111788998662394448711154067880774226378075291071346845025539305193678041860862265896503779775902056750500922316669576240951148004907582384703089904093340228080018367300578868955851415666287552323034539804924936440018603676548889142053396678803539702460635629971597471591174935878264273065642795059655523081825827985782421323309542981630829105744634095800705452295466050052837468219375231182307018738877393501897785187520401943012993292583262808328389929113833611870484249887060345061250006732347081769020123085029770288482315993578538433542680577885951747388738234378762384702572778572465774599967381572467066569389763278024560980232660277990147225991818797534527091905442248112666150954691039544779088170669315799195528891513322014217345962667060310826311064454942007716279232314220480788977937982662210238478392204581128722344745134010029809654702194366971442121210932132783259656393253367870172190691160758694981904005949290331349262687400832994041638063894157815885927643868736188996151286735336236731044128413089862855877493543819874619303359769847341143684339817358795439791154241128052801043520483011403736198685510045946167807634555365854245612336981122177446653630808882716977297955756014192736133411792709734626043732321539024329361142439150475797986899109754239696163442547175871622044335519160202721739006644381747269050560524555614015753395430986749734301038760443985915392693348469781097975332635258352617915918595495188130942478488600733620350465801374136617696992478792008728075521394174094392090746071826485426898468782814451215710356011412007257448814948595478004236078667807226037582379200433048300237346025536753489326009542357360242548163500945647823623210330648320740852269528696204938177167654319612155191797481018685897081782833061848673705185208297772293553112842814009553931785889370175158208227997331187514001044945696296619259029282205571898791672732882505132266925778584731155845280300636889704448988227025171368626178212127188650750924955982906563744667329436427539079124403789879190014473214003834164705452532382328875268582190887621400534165839027855149965494358525705748679041529067368197255689102417118076118794720335222144241191624976515068589767193158255269537920407391342329898118950711684664718914603686108228200481372171273794263681937744915607464093193715275735494680928200062311757481218656456783857519052360136456724834135329891469126330398634048225013855070066191312457977934575982730954696127826391180036325351156540914074935060469113561544810863042836904712199342788753831573583168753628211997675620976815489572963901349637827814825559183604239788377320101809796925950025503491912227084259100089134558300224563486950947073112218784516811490182280582750881108913971467916261853649635806077276319418425672772416245990533682029625008775428142156828444814020016626079777220482443756063805900923140120765087945994491513689607497189656809014934333040165345365432729851208317135146417720324192661420693059560615928943404965573090087125215647798131253244142931308876381646367493660388989091536139509930668165229489016796558058952860794774210476475329726692812746932658047884654591085800975317791595275869523115406134016650399703184830602824254903958359197020102088099200326096342050454729891989022141076150905194081188413970846685983554842497968149533182332359181897808708846251577231297472556148193547988294882757611134463766226064272366241477684312734965047575992676529828270433049042473308056528986648291106240596507197268257092870018484324141880898309932528927361372818023077192714681872876559644301115389416984485644670918700356429388184856282774593569303733046923824388732371314924008464880437539175587061618536167724813995294393320998646329422518675545150226026413020372569831416759892489236448341556777582158968059882565803394866611986845589490260516547503450445848613643145605620333963898404365403856989659142146622204478918757752077594111149234967679638167011931732957401784118645489774534400260955997989892492452054641186814143694473624799765467714920196619540100541208045212630078235140186534771380335006089301399079888210533155989851206600958238616578016830978500269515718909708353584226912686621922325684166797023499732997978035346216339968538898136077774374378795478051711007629043701657161354864183634417527106099084377177775113287827234910050894050026134085000628779228330888020623800753333369619423295280830528977965263939384077716189284884737222658918529698371018201764873030499082945951714135188560433343462031768739332865591689670406536170255932148579175246768079174310627548831863274379361941922865037271267536058747011121953575685579467718340371225420128785259654060732651148884180352285356378367156319863782262550443427631903964539354824556885744932045142822566378885268455055013056706204345394143769716185398191024914692639676878634868223344516947547165927189150342845739722846470396420804703810912350266251805007064387583878919468527820898731850302104592566085573470405330473022401707451202038353568463434657636227225528755363491221446146873442041221090880305930328026823702007016237952383644247700934207978603424514277621496150634498217103344650997226129192605291766593444243837070069028337166502536592465632073651051356179177062294622401299333290450446619676567438579394820064625040426700266899690958513127479984495787159268383124044134806377587859554607071544895326312077161567767069256073682627115333349522777281297209652031613254861480924860297068044801479684058584780704819136922007111074545517790339739576884365140218646367552452873485751095038858763339997577405707506630730956814916726083977522479212816744132149505575390998646526416895902865900860260439937674207904229995009662866328866833497231818841701187049083124803082713648874329305332253842500070070022585306788028262190396285487025448716458357194807022027312290673222694640207096020876957745105763364714888281262184792554163796653540370401518989788320316877274907901657632802223251367947624639329665490684650625805834983534931450549770403059457719776523776651463816456340871779363561884077517345248360168562390866112709426652975941732931919817191989048681816751994499637241829902359231409864340627367774027566823103189006124156303090960130629878560509195501785141494147966936171875873832024663287171540777791222594446599802664263025277464453417080744486496815160040696713420341818192434762374480193491968808447858156936394011358493763142825890457957910765121246066164854876080462146748839169441984657380321829909078569206864300411966867378047666526517321983388684452066629210080911265378632164980165749684279540483694391070995211846063947660641111831380124639130773030933025250422886327092134740896437201518419484383850140302925884595345599538335770682426111379783229732661324345132625627833976582423981207042920194083098487404575866454405149647166745571628836503836788355841170483384784074279702461664962981451461272532854664548557810937879427027166049696316308666155519956065696397919176307209805891546122667524796472887720458361026547494950019746014740216987575277300141851948750149167236235345975278848771713906643738007088652769982475590848736164413737002384884756027684493468544000562638341840932368112989840464139320633465849019882427893509795104638523249520467976653673656200573032014931307796697825121474487130594982625477372089508656091345733198848553368551084802255466913011479918009784131922912616532578152877292493005308369223904318002692482224223113369556081842758191833016143280730968316868874292749660002902149156247048180233943289611975952253586236866771598417191286973368106648545136062559588060524606859577438523110850605206833908746483156706520792772948487291709590510473803081443612457136355473486426718767346301284425730505551885244263923501323157813734699657212703666901585091734152724846387282173977487058142126820318173542861887268298197913469288964423787605337699174062736563584268116619363387411460526089275226649238896539495802518782990638928191646024824846976007209145943037516173043207209857961828252222891471212643287492166222389039327726810194361650799796144129397950031071787278070469561318336714325815277703311298261270214281487269360601498405312937403864436640436137763330059201645530003866687764337361390939473598237440497531293590930295871993758925875929600806222961631621763504012148075729215387547282561648036159984571104728155766972494755726357552032939211437267212291767099686271805319405852961508032066050156198997054907130362250117343810493720926524648164726837764846329318967238483001768747622476414402847233260617745312478109675363652376305885917665267250072725594061460093164312976930932219917743713921664457772381076873768808999699230029217353292776399861036157262239695763896693091164241973339366453728276093640076947530389704242936217263429433453846750626594073319114498526531622044749318747839809104646186333501686858269040104395465038103541660468416308668747735800469859052745436583340843655164211902329283794475375463846237149301850496922288889474364049686095059770321540562625779058994187977617694309532164876431020865888398601030973209404303605388716841826248856372661108811522460511172928089833812259562682142388817693731935406747815204804422173994394951637079928819891215201281210680360567220601044760162108368092248097101630958650892426486622072856079131437974641301375628712752270522843407801553349690523772183318598015023938517324647542250526969023050784379050863934493671444493905910666271243576821527908981353808481980424414657061624033861455698024157543497404237872870378001358735936376030822428213434039235111415960740188308361639930728337440091470488551512757964232733608072163487667540825490537563747495217337034041011487815926105571780261535035616026832986773341922578064144086938653652235618228022965379202784637766012862638426621639137053580145746940828670652397709079878128038803922092738169390190959975944976731481018422879753630211145681028359948088688349895133818477693565794706899859180024332110939178120656743110222641525167721132673584204501433273994651109508784025720709824624666253308815768574405599203361323873578062789684298422790339011122933488001427118578916792027813248051313659654433798158318786821640009018529634248681787545525568172624073583405353312054413121694927351346462024587589171219871063700667940074631747817391779389557647405974904303694129521927018947815239578896612051429574874099456507818072146460277906383884895142481031519725201397464218614752204877614113217711685809374811155519261460668280715386959115225271346434583842620115231111623442355782121178818383509610765069731991105618298139998838974780234673591402405613386299394006927330661326636724687631229369601452037323789483410299566082688676546344018556982664877525267336673694435193941691462637330089104962817265076676340451533762512154551816613730393178021072540344508991471880402678024328004141711980641378666217125225096615994358288884960427385601686784999082400428457639492256142368737371580524351919120127541104421107661339423477385310338122434941091990701666268277501131880715295456117817902676140671829215054681791721292962857864459973825759583836967294534627649990077118607923361141726923339208505930873173032482095012463605893865628864679241134180645969281303682666541710394179391538193395725951731983808947418427446504615590652421280291857909303542890789440569115770470026354205508761621637014470592897085569159527509291803919278034014479547801991750368906237865559893388767891758752880574022693694700810242104482922621644929495982777697907441095638433927948331925331475494613946449181008919194345789838848312794026229140388408552258171980604433144414595076110331071902622148695223589842230236165208758150949518271394824710356820935343542280528895619945619159915585001630877552744724205381692080597005557213813932619730326495923569373999021986333353594167366188769905758732477325791415481355602086131149923897522711416988286127441447625039914449524002907807637230409409784376049036994755347246377741824394900887337705415981742631941666088719015503367831006816898514678753104072927923328878621661495658386987589101389957078148173750404897216854155932261841744926849017243528556329158633699691360483001122135798985182596934874411683740878394717113640607071836452283864590685523635090522701050620365154781118663544040735292300265035192340965932862254680260206241162903282658717177530213849418542546308766958507704672608853837428057933092592929935282109929831232110017196331966786441477229752411056477095458122038791809231083325515839479335368049262564255255377895909875303791905179155805864926602300408728124056849428514008099465675708229072587130671383415277201462545966913123296855830929602629016882931047052405690718283609855455269860831483733670116142855126355041503891582503735222147064679152220928314947287940576191152070301759880056188839910241490973535670002116212429332639582906166683883375685463350732771750259463443223374984941309679349057882522074802155361898709947966496842615414516343913448360027730319786360840687307591293731124884191781104287058145473931878882980635039232832263435560331103763846990722933086095553550093431233317536979419428624902580783875821908106271654844304556649419919259651659958296224608392990075293334085553324453577389059615493337608262175882891288357403724047529755387399560302689010679071980911125724701753041483150489876868589713075683859208833896450810983429095256341998375346555859780761954711050064311054464093275831301375064013145188526875958847870004320707219010531347952060610785828635231546171694842103732399557976513547752091463359377428700943577744183202214193278442577414264233337875338804832124116776907591967279149816416011293248713631543719826481511941928191358372042723824424606195160949386040268984231108185521174862248076585516409974844608041808459001039478792860669026344417465626153512569141974816417039990444392774157286310411999662617653704853295534188672524921581790260595851551009364692452955725260597918812709077915219522510149157686429871810209300433243211317184698491170988822809681227382170212446437821684560800903726145910627180770744965134176941585272635876333820519939221025054784205878093453921022698747735305704868229626661156460961751257117650292910959937859429447936882415733084210802517536534479948235739150392103282704330943848278285493107330871138937696495168190968985317462884510869024430692896940584733665218690000021986768626635209473628431093056801876636951053307472827309176846044200629766670111282547774664327766141288166630670075225338800729986413952212829623304772912338358022180661155229379658291310116413367794680360608291363039695733238139464269799139994103990080465851405031495726623245139638840786682774158442811870711508037978298337268079221103577931073857451028203971838233096205450857641289324001097735214460829437002100545295390542180793227023884747333867509354949739485714322125983036243399447967984214563713052909357425852054672606260499844169637251606957957927866624043911951290317544973105322472048291043049974309346083515661838464285080742114797785917210702753762633141700732039926619562402741675771137180231118033035043946827688640662149041143062860673520642414913205064502673660234936054728405622547146333314521545771356069894725128061914917988658634751382294588587743384613181270491936748272850422633924682311818152561886971798340756047089852910351130312477567307807565478249046515286224663686589305756442918349195777420185773826806509995488419942270304470446587923021486070139536453120093192505027758597334443030473909246845852578708465768315286509863091598918093518489767051417753480361456498142745957692630585759096176866032831555782065862340883714240032787824753408925852301300956923936968433127814035688220273650689658200739088395435597014706725051536951179902411264936614125571713958984203774277738731798766500525425448371160296938182324759872909748979040537751314140511469168378424234504957992985733356294909897340886613229004410955897133451782682149966652229608620973650741490538807866655234425006150047115206618602960960491888139718360579988798294475216712963437794652772600105756125273383849297101356205775185874842625285314013611867055098891315571462275627267600874708192461714383899779991148513393206659405561704825335824954857543470007787711739037871770227784449256438263061390309855395077385799095599705124287335130152784918487665843710517865438063197160605144422440644958255131374490137709693407521403375460195528254048029970585524077476738515014547553334266514664851341448084141969683949480117220302697535432291113901664548116539922652769404423903594498482259527456062686478289448937045746393934344004214803424084129754131412242000420570202441090573075532697173596349962058404378414764991791916819515162998768523298463159754346516865801087848628566291776265787333660881364613928356736141420044575212954296443037674784634471754583731831207344592165525195103495778953480333976723002380293939006876398499323224346254806175450858758826525895987444291801495279370773056190399093573327970077270034036560588500870344772551836253554265729078060222828220400311430718334665571678763666629975811891821489742822764872557439161167284925078614653140350125375960165038150355660116497859554267059147117547685482457057874102603054522318416102515645990230660028036872656260915899681884286312846762103085165467437993450198700059851427639821685744764424278845143351243601424586649357642194181969357495676981550995748333419095534420869084753371680934195666638742542908349081461718116587467252752784053432269301257080430511342702319576526866283445871598776490593709709680314931670484036433230003927880727425093048305651832032441241110374902333120632819692543697946800903153636780649289348928415351193898650301493840672092159982113082755664247195600535611039821304290880032254426336556118147587847006886234124883115833112309790586976364631570967385113068484599586518331192564951717749183478407721418712571544037156797475679183213971953751288313882349755716073938062757757482251036304017421515493018150964792828033806737358775408973656941701519906156434088369708849325489534524920428075830032460172695601988046100826890317601516995623271273303804268314004986373062687074599183999200208804547466982845007857008655155872538096157022840759400757946800506479995950686096501395635551566958314305356499620337497230029503753774250822220057787623223288789365418652112788949838589824018548440496870716978865209763094424960474839495703468939832914973877326308209879291824485714716739836021821934038016836926925145552890384985077616231948050393973438182366396958401766381292298793593853246187737814670605010582880148265376809176013616980945475337873009051822233500066249989556223210219603077791783861468553231890238223715482327035618285233842781775919514614546564590744475254855026043944027900323855541034742626267490623503061805379199455994943095911602050265164045725047683267815823453288447131456645271724187433831771845985421987774171776480989341299202081430377192087441071353603934179645527344690308999073184115536003582071380097084589600254378914201870025175785878927342070185282571689950028904093316721882935119689296377751292476082202002658181391273230837642880676302278006659453851647577749987243434160184108724925544512548334303535177815430278096524628431446631564114227996236968562668651149341352412643933558817376326265616011647117885346998657452979120762469172231639381024273345087351502610673396835663629056487429425116969039556100596482906691122001942294278483719555719485621305404265485658682110064823164286064061212005519727495550551017408984660512004410018201650229914992684924030835268844209455065384189830502981110972941318631408272766128828234468080517487052239665886778084369094913050942731175144258825187316818784697824515931473075968011034946260473417067556157354308575319362127222348048068573597533459408281584579852679578958415774409289856802942542084278954133442066895321603378064245521611027290923071424986598343737480549766218344002518627167613994422433726674810735836509654884164744742281903248589335841687368646687281120100141294402688799229863774388937984145888391867686590755198410138276523608749755665103774656224693468565534623309561552641973803179593506580495025295089447464324572558431653204142888901795424183468257721303991521540624551433313518330513017466716912332411724720733302512166684029606093923931109011064588230051765813949779385232733319560498488471479176436108781093385103857001418612516148259463074289087321810690529233788476669767142907056214238882851757925131254920647315000958601433901821010534872647343622099440470364943977860831968490702819058074026255687249225002533684252903348701257690689317536367247634358973645682281201271517034052452622475284842513843957736436306100496955325519948574254977878426537631063544258038191054881971200321825103362778078045170690500333430864260318624746186268922205188145040970609497097353230737195736256845353293706318295241494126200180852531048571995160885391976080103630149407872963555969025139193572974944810698385803519742034582031709101158678216114023675140420306857911109921789899532934215972920921805949466232658266174913422038815070811836605152555627195369766160435780481417458013614299800559642445733477681880631163727539384965984389582416339764673153508035274151577548115437914713540442082100927523530041766151545561530376732210849303535004288605874998565349431202932770833303795671471583401541058380447731249748255910088839974985104517862359938279778240841283800194067580504441283544010761701929437683129833077066074333152891433336380119726537106957127047402055049595916473921890212649104045604798327687528048509266188236548985240700563478350638486704087947250298847758519838038310567453737171742402160227129928441641799643135191857881252671818696460408448697505523655338412007526374949361484818372942614215240873339735222713211458437734224216495642333590846631930515986098821284138005526093906989750872116286694271865301548851789659192948881921733633372045437932315777642564692511809254078859824509971825192615779777218666788072862978035118133783117259472671885963468047016215164899952580649443642508608624546882530484108050875401276511437762441049661614591041779029997408284869081059304803283335360455379308148954116015299259340800364971908852842361319322834001860458916864783233454091201160954117056407771875748721824245235933680515233524078559287437989560121016457104649510730554003553891685485373450942476155830481949202139543210307927545514708886408100335910299582194284149979305448050043897618098221647672780210757133496710995279961241849353365361472664456624133549590985721261940312699797039142584800686867771774191640638834490543605903524841903554568976506212236266569920484351609451185263963825453830334609727645757643363103383144773667721763569012868809882209811580941663221331904396257298525458013291407218063959809554286233550667557627142558744461507574707779010817848533712253732925797036657966051928956560252304057625146856247230867434320065833199875805399241430355615895500100498989436371639088393972963800093266366297747226828128014420086512300293043150292038576015200279855232496261681599392024854185722677885883727658470820012044294720660135041722677288197869746231016312065050721090251005662886987893677693243832044040119325558294076219299728583951886573381290113971022086836163867019196656315613673407432949575880217224905396710007879406883536790172278219399305537542628875184717557973454099790954456918630505486478465458345805686974614625186787265069574172992078271464628886537565323956617805566956624344100985545514468386962872995176844671460808264671312560356089126729051743490954433037657794049530000657463083487781624075527674080014616476180947016007718415000388839811976633880429792382763338963162784374868690774704724123257681319417394576281850779157466245531196483510479733799358955636878212164867411512442976875714896417358431697932248799087265870212072168161254708771203250922961014360251479173946388327805589252043593215933660382222884900892330462467235528858684785822809506364510187071918902874124631699971527127042808470153607464446038929981847875360243683843555446125290444547559315662301396763575041881100231275353205807906925744531916999458139508938118394242455998907642072029058944873939359455529215181753795768691741600219019990202307423388724570909476390135703108255748370225629098069818538584219237845347509135896994847286111004582081626911790210390780304931678676293823209862258886588478522779937913274068330830690527044141101544257847077266959460351701837539836746217788783957094465968028930277013352290696197659869630880662785142871988150738522039574364037051395755317305731763288615654951589093958204111392191134512551534868439309425805485086032519970440102722048688431935799623418014278214426412230110165683089956337665664551793183916975214495155037925444513690059321002865729077559949906856745584510039023802907800298915656038938706381475240152094658836554569638188468601196524417308011648064343753500758501792296364235939842960312534878055846148663667723708391492482959020725352816005269046013078042275020788161390012402887262287467496360509161344886917177073099794959764055275328458616389042981638983458250137951077622947095852346264706251384656561582180893270003866255697494246332923361441873586348410507846211633816820472356324997945305851714994888774945045912824938898760238327746932597931089935311592785525030655711920400550829383624076355705524511538328722391304687587607292244376393016391866827640619960254939519062877545895569502816619429076296060123809464040219517750046771144077840857734781678769722401764354325487777083538276491969642522970289397646425748663571520251284958466827139633406059988147645152540552559170785741720623885497070577900143959830885559092055797902229306814996098505696141814622216967784624871137689772619803552031262542962173876624753763119424052940349789545212216200989276949851509078002718256938781825868706203127599653246112165144243793333446332818089617004089755655987055917058408988193465760843016829834358034049828467918804427933152845907925945427929300093177397508069996663932694464541917352180470244481391958657798841887114682027957368892530581043739218051347644054334336517938821924694207723570290089954587555767896312693328277015543018968898377562197336410227915082177803238532264714928867948433746938549850324729173691437387789170767451928233202944777648537361105300296151083940706675959277272046457867292029371430006954473906567935904315569566914402827746374542586543837851751519106934170042704890481708937984350239519055865356049756235116724432495344909878278303017078480172611345553711627955858453985738559539338975311829934995745630377787550142009013500489423056842112418336101624403504076244631766773186025494056670285783265059180975182320292476122708987983424093627523466712307485552807096454821465277625479594210241535239668258101713686023168855079903980585896365862233482828237447225840852336772393251516723442470624711845045857728396922395943745732746106176723786745249576607875128705380304182894461563951488496394903253458793052664797291333245498429329359451765599959239045810103596673272532449282704001922168238340285450600795821334696153301307702515938136715349331153188679721648164383506607063135946153433484007509404084025390698102176468384778666087960821699335425908045113968488420806215485185587891476194027331945919984263288460713440404733684184503304996997443241591452670373352015910759181830632657510020108296117783372019372713910919973210460438979546945875282070054304750112683667998789402999242787644053296354779154760993744480749516651176472026223745579171329651453741621887576631585796349087592413194344426681748924266703143684939353925424054635705975036553033226848625803836236724650718193877794803409459804970731385754591325303128449487561369868351966305430085510698390933091081665847136843040284604513959991976512925816110253686559894768162385524824696174453475717091567913164957498956133634585804141661482050937425886536694176696995882508252043558779545391263001991632060132662884923359825637784099108097075966004172179361671425478626766145183440257429917500896934908298029074193246070818228241363962875073427890938076019154490017753378872343089329304087253108514363984545534263990867033539605809986109775065265690544404052828597591150216730876888554443681670935345712582152399269600161334896281396717270829423851399226776948009279033878356776863677834549525417701939274838220097880217489017943348285411894254333465846979924418758117111662275002681402149258469481418460649548415125229974105035815946986404385954992635559248218963402733201681802001329516673446808450163735851232047023308139495557881268300834018297813774079619497499975859641145146118638612213641489826270319777818258459546096253428032951148358528678976732130041681523604529053596223901554411303860807733135740548586300949250950931153305435537772363169671650758372741132567855711457162027949018135281762939728864152708057401560096629337082429026161165267270657364491901139924700160973306595602077247915752303855891497964572307242883532419495121650753388302187325536460453154042432865012195607626983938596664600622372596847274348042985275229368059249092043907125480986537205789745311573703640616248945329013716988846496944194805095841052891663343960263423634438415815287426219701177300511520755328051977665780212609089630400721511980171716312772382427279440913348504658592166022979154423405580111973397549078779725059819155098667902712925460813481332428746305442161505917477699435498254877045174579297647762041013673659685870421579728796731124936451790482900205360320981280823145784613738061176388792158908501828549891864460177533722532039449877339323640871739350220753411494406443281388843082557357524694087635325976096781525585684585970896745622299440104837073899556230851145821503791637731722804843700597230671204430832633029062187500165716849891591959512625088503785800683299598563585027821324082485698145107909216121477147946441947270686378180192454122638908111594182959644384737862656599635477218710767734608988226171525720367903526171496309512816152814279056634810569649351861422827586780035945046292615355172648600011082777230334869150133515634431499223403831512270323305226258556552905488774943336740430151890787680959359913115703602783901171567266367800713891971129755461879863414179653618109373303615712577961543978300367974251951251091106762601887008524245222051254727062880020518476007657278659965369756166328330190521463839769734836143394443381066356256634251113755837865375651035011544366265810717716893492355401910275570449439631101404456819680177589170718129811414276660191373021044643841646022808986250345914585746528291070813472267676825914417040509256628383586836573671343920430015495669634400666830520195170960643551451235284125754994016171794961954331329480744560061285630462574729446304534322516256722211514154106707036767243249044556276964441122174989756208631292451637908491473536929352559048564221972767598471505384752250014207156242326695475147448485191039615230099174899961878314552421668516557564040040638035314849120923972295676818101589674672617051676260834969642544460996620657137047928548883184979856172222983839936048780677723601219552008987987245249698477226689878566290279233326015382105076694511492536853199604835888103802296339332195689150521447406137333472784217281077078819996923526755143139614992628501360138032921097302498811129046025996161578877361983417498110100770148292745412066917267321881475833189620000373981530397361929803540338071721504259402391728647033566669546930275430362287758458027904377831268677712051920686321335907847214939136479829857423123593656325684829930171206084082042180011605508927769514159716233122348504655681574897119400782461876850004789267256528450204784024419811251554597636929472669567684458924438175919520801294974595553141622714232305476244706379983922952356285576651496585503554848906634803711112613104600646199214764958146687507964140351955558186243188085711055216213595526591808422711116828116818282904791244242264602214924318214520508343364547583500227126475207219462602248753724149313055892108023880299057663804467683515569261693902627902540616197351781265887664184263960635630987858890572644515520578067900272343354684615950030664238857674935336754763859196848705632071515828510244828085844304937109607973613444920091890594980951049660393508733240996486052689683059354726872756237326240404864932699353490525284650926710866792737072820373464986107128451947616802114317780112690309596309792404272376299077042893314912813014845375418375425536530886607809805511191524913272516661617242073386313040066946738116242422903385962028704978238721079813304727288577056162708739162329716346200428360671100486901293339796400623619011483085375081330006575073495751216919567666392545366294709507288506497388081098087950929717172819443875880706988665759987989661541720218292992062974306759010625654601675366139717526474212488976412552929980062441200290553397399589244429749558436718726297727596883291853242545664429602518478825010935184255129046255750055015235945127376850289511344841498284138520564544688475860062758987251939971546913038243491141244504704781426632210502108271419686996512592841587434873655982407570623117362415682858294650743004611357670827303751940154914840230513702868105173733623985604050584561263840903088456063676528482648052256413624607965572538033003401940901143251383094737449317056126559230631264188568639311078302863116398698764314215410221407088678008618312628015058426634904243061562217065290189918151630496119185773807941599590860601782191921333055618065095100684433218906456651527687083135986083885781767095416027828694477384768670243798745302429343435930994084368782021364914163399712653599358095079457877844182056590686269939633779370895001057100633549060135174237937234144749559076673595185345308433491902493420247822132402785668132442680371957731486794935641085547422566990312634906757600787166453918164376748976325545308996032697895514480637195092993823841502812619458736302747973080360670639490589955957802144973948964576279204883421754893910530284551065723149797446828522271614759898421651231545327810700020401143206312161403119513107378837064794112716795929862534994322949385022690962934311476464878642574758919373125118821439729442129461914598320075684300883471035192442506175655695600993096779713390240724701332163157204005712085179271398285037344717627633843893926217143271887118819589129806122973097269194330127476678438476289461162441480783922259052522904195843946227630379038138398608306718447315518499671901281182239105244581465228415582151542171893625659240061661765521023571685453021936919148283011130788969531662849761525891936142268258169749186876543854854334168321113630662655181203167677701965020682569654536002492690977053509522576796730349520002455515534064456722518331851871944385190332206659727686568840652304321657942586540714559498833290210151726550043563638661905133470207442366901094278758547350820230016650012108275941749100698735761565634670880610329245525998592101883686946847205344799484197957262545269209477433493041907085983515173656283599655219703375773999177283755495804200137532758276483345224648999180031172072537790200973180354570155287420004090933590082188681152098902285805642598420343724557921175758283018290395921140080122227197185838085348360908779300530298662885700157377708073682285844329495702722149445200512112091963521566229925446350147317656010693493193576807164384902173515817607332592217518012827708052155416438114730267709164378178377451367815739456164558916384699400646798931149964054405652967229657420996199192289505865496452832703838469767007057748331393095469241325507560355736489011219080427420140401063692567968646931496086194983898793093785007125944650187468055501552018179260790952693180514396168314302603751125646456338407106420955661405841191931123880411869031175097634465480705619458660303417724200624661068354606558429101113540720994261369404486060191962281558496305808682484424117530950290840603532510446239495510984488574573851103478394005240514391292173542065050429170451500183179643547460579800137235403762071578827345312093369612150048626262291038600721707275085930725255584112695944165108868083364345213762857812118242667941091161455188822977529298057680673537526071214721966636204644496323268489018073994080616869478277156944578220420765814154996053759253231485735898772136562947388356982963933765785853905360137561010574538059364266810754837188477205862610758360185354322472714710808907250002344638452557971904118070693216606830455334579427107170430035339710462671262371513020061590402556821346885296418388254964109680402450367224972524748156433592822447041889965765812353583115137556960326596392390476086150501204070193434600743392081857034750662177803918336731736619395853417355394502117765289918380672685315091055476519868568314979331343498139375396565584841765435208711090302844660519699954704488264195733812346220353072292888829113273588528587889440515534754432507024578980461169965938069148202936381783849200211571052310633881146216293753655617106771034099593847649694228038962647042195539359471108931956272357390640911567869730933128004504659449237994562426190094471049977794564696349938616723660539372169615002459060437645355311875513570192853282251469674822279136428340204708847029378423985660802438966351523113383847645194642580921472413789543598473067181240234407135063844095350033147166123497180918799894441138803531645229606693099808862089772121933413697854816791109439805640432996988656923304113745549469498389820180205661458537642515998579747703170848622702815715059239479818813117032415464500433568642811336627638433493400286469846491799067207905320611726973207730860979639646000622386388260601753791044628856860997767983524590508036709397583252020901426970660398288779964793307095927076870062598260494728849362517215430337679966473643136746212773126511730865932469795171796683213584023346321928443058312203522216826104956875128234817354415441921363942403707996486124503671805100993761382447586552998891057940759246298718905601280390385744015362219186169811560745131973923018088436497971450590279739584736959148184029410848223107393900835354812075209422750124498627652467731651118835248927828170435704077262511371857877170896679138554112580810482877356241682438548852372087958378218135880838121508993247012609563229317436633502201823686814617842140423435766764358171330722332346374653775048123353254746833231303216428698659881306040995531627181072045108136038898649709996319762217989594524683175869287799954862975947638066428705276475636695767611434638947954437153009514602208913013404867193944128451448113360423546872499739486522113029046999712102605126552147569352616627551576750922910088742354264051514540680212928930036128164559127046775439209171896960752538723786612122119523809148382347305512185905139855758513346615362955017313280471297179666443336650477205897661225682391825100959622400231040176375156335646617271430102154070449398140971529540888182686678237851128414256667092844928361643730147207863190395891047504724797295654209697587104930530462522974161860689913672739385083395809584481812559105292778416554368110554851995264728326134011051330973646809278453048535292611497233275856371992854714683385631086026100191038926484633378325694636267484758371766431541726350220602967152200935821464314577117104346072871721176093190499655329169588036881071808748112840451060635756533034423060070688388515343201055603881369360658828489916982372931342036874124560965201682707550973264412688839025046090106889878200301501359727220126354938504138207101791657660038413009143790877771828470274105954697730423522559132196357903705665763051965138923025720864205452226504301071910273326805552776098499026887327091917457912778459655666468298937974242934021955227049429957654813950582345854242894979838628700913004176351755303736932502867097136398671924571451807064896762871437280288792313731288530467725732028573034910622757396493056323040980799340944841129538417510460376947454988002069608707552986155976902735621799395912013699443654302541251138918633992387291953923591270939383128431535140877523226827936810933345963495778017490730108983910085665805415852161706078792862259208470165289993898417034649782432242798314336475129622436374012312674568986301831114253417014093316036600407067083915850081068375633297581747075904491444262237848084821418451762825645019296178274189833844165260783163269606398947689127640707070893658200513979400882962865167353536010887866304111804435155974321448490513311633106031972781425125249030583528725738629286534256670391897470572458208273291603174748851411908637706862606172915417649188766481668407694815576124142949439766422929914832053629872226590203343767095670908995453114977932061124211727823720907433719023312976747851936260457882436834582512357094838141031886009705440025073838851197230197211892526469397969589629352656139321392036730531029247632539522959653495767691040006356365507334442242149713767323095203426234819932630313453801892511429930887280162515239261471176455589968779500879747409355620070570981195501430158906393452233871442845515172986575960270010303216289704473731928778763992340073082352693430956452235374878723393928206170647173682188626436147867564247651195308086703539111429849067152375663872622175141570170663332991302918727110832321939966697968852437164191866052830449006909019021333161966335170144890229158816610158417061089153801156820446018757000816695625151032071216451604721153308057469246850924474949096457872112923191083450012110777130533692328740969204866450884098333573440360781326065842408107263358493651532603705187737705741470194794093995076989178646636074940823833923196568840689468177069605356875710196189687992225000355050666348065704083782741110234404040123460097163271705769441003553122761193018349868721727989055982321993155958708589594573959944815930047776408560861259291880052132578380069541626736958830754287784582343605189903665894299658980625501502806266140423398589287098781859220724033070095740226446394286506427039552071150892331358897311850702369746461511943775214496741723923901190158858612664912887246493693216817162537601609677147384908372045386857488153165003079669899621010706652930111467089822303456328370559777356665380639302994045336499327597371337074963509724226043205472742007720813769965291140986333127141529781137162142593943337448690770974873792862055215751779731966722401759539572725106914882516238912338811661568347098684960091582400214050655813703916531584012321782416773685322022897864558978065521058600896125529366751255313573634113936323232144757388292196938797276429500478449009727912164915042587652672272506368643990927445867287850311949040539992922285658135395839590040091511201658524913669950395306219031008049402704390447633336787509514176872136605341766524551144898944302919755572955598625843649838547641056447137665159080639896148057508002341408777303599043907976839229535452295379274688391692181349900672656072060842253909849765546001677974295870615695713053894415858123116339118858813869805276463749623868757984738429571264812675099714790450055778049177827256331853470990827720906175206963409683232111969941682154102899152775267063035489234256764941838904431282354545914820182750862934047818319294453058354516337563489271678463907862270315584846016347086581401494971771666316259024940188821112172966011219879163058426293186892534358656205639098446987560775419505815138787556231809620880973892513932218461446949283435390987819296070830819921120434224047053447832808929532877230962627850147803549796722375287070625381442238240335067963464594653981980852198437752517033806084787580650477113145402184491048001859118216434113042459650099706293206979422209631685563976580228680572331173366674630928911507056322464958130396629221504591352207630125836020619440920446872313528269396946728147268396850518759810011480460107805040705145940777252429195459316486730337174377792647176955430594077560445057446765043543890462331182794816406456093104104356476544653496505506649794894622034347492297943846452745313643760712973869835310276282960127664315289250627816055801072656986662568980415082222409750659879127375169575591044671347665883743711733463255321271657610001723029474579020840740746489247017728052220068694910615802815998319157013377053864617598436318625925744206183160784758297472633899979742966139030777762889279316295354299122817118781619251366173043987510581968555175358015951606592201832925840222479038853761825994196534380805093837211779114966573118687827827892329233887244840779766028417923098609131775705220048913396949824809503332495085436126684398203543375188377096903204615194861761764331599714041568315021999860102289619073145277085343043087324113169610997835719307521123762476970546245852691602998664119235246196365594748746539498451404620693943605847933901207050095738204611417842412008598038521225313660447540469244381135943075504536407356585339786751926604161376054675195352776310681415323677134784005964701709514117657582145790367807181032660704190029030282411210494542547221969928343184265770412285293017105322503386181045932630116150965527308699994908123016093627194175190739367834823176174797604026643216055458571858656348540099840194480490226172384304322227962065828018144491285964656829339887672569433901837777368373459914105009292065346483056849567780643002690532860367917479466792160925693164796020254487950573070285860168777558433515492672724566845363809120712795211297645113030494731332798241787946670917126055606578972183955940590555763606805102494889258509839390896657516655892308408393199208814934404701215805336847555191126927774509580265778422683455588603853848757275107344552071862880643024509572979698487792657355260923660843352735009307600410411084648970159863655335686809079306063928285627965104609957428689336731706907077207276389364342444503585447608308363612689874106744521895469389687847798433926320775309304674681673919969961799074876515180641772878170925007725321500112677965269953976054694477957296945621837240560659550213391459164604802945076255738893079711306462669677604376709182375218829346860155366928303244462473118657006677187692576440638965365016325667801663053121133255693838417253127619989823753376791880260283223953625669905019402860714301784486651451159174184718995923503221462833130673014189438560281767797008792860606409453929087047952804612889844695518624815065436159253612146822593038265471700444396766506044120721750324044820706723512701505139556620694321720707791930494636822328057509114039752998913673423171789008773788613909860904115960424958598708274713267909236843344696627353958808617817305480970776001296084149171463331303415230738757182734630827840210817181771632582727800467304750576660317146905847072232788370025271353409744341464694834963568088710397240466285737538019254519022575719713601006191899652295873940202116783486757013854629458055119634942832723276370198151340451561883743106448027165542528404302522137941764930615875104928119801301492068925493011936203921616467278852330385739007833688708925682503298565267377352304560135215624502764194187335120862056144269781957867780741099610906462570887659428284048246415107456561625808761874269568019230557228192679463238135078324814536544181001475366150044471572752954246351394722595010292994893766723728513415660314482599125739665340397408231425055912176099743847457093846597487443253286567632536414920756863919317021075856888362031523559055045384139512559739856908981405248326275555601138460385448016445938455494355029082035938866236006714570093687104498030753532314485187809172955642675641890232261581879303016748605658458644819759169852482277226847406110307044168334806990633079028815824965882696293813007125130208798148827432742311084912423059541238191878181561816098915318263885389579319498579261225404977141220677895760310240885798258678877328435471705295864430521966809296766347992214002387534664502488644318495821140097507196830665899611928630753079264065094863931602594499804714234739808194493810850707727461336638201627343065578480729629016290080520965453449218079192573253128058733344484495924973021679421442074625083181989971212986400518274865892292929595630158249794730606622873513448402829640188624420257249508022589986962452894314960903597391721738996366628011443177762560276209807639971427108188291018683321541842084520283513486507657683486346018338461935004290298259907296833080081780269597019832317345212720535847417074667305271805047199632376838475088818285916059432508574052108339992797526369085594151368579062109470050718916309901136189105887410521767983239442785373533754381724665467572847492251368813426470561334963074273188518315308897526218441079480802841532524650611073697082847526989573082347467609746662634253306569402052493691973059788179094021693328410480573530907849465961392804447258584387319773316876048555910352090204884096182497161632480283912989484375644733043333336612444558404736416691436346619184537538508270905583511593799198217616122560352456911860068515980961826215541411684978063023353638822942285343002938099421607538150514146457924483536517276127629819869912936191824951034991652145848528694677796986360647324760751524554466071052805582947934498597931162666612328881078210129672759319449008422079475370932935422392942218064341563181396089229815887802819535510441785609466629558653314965906745236827655112898289517297445021041269643018625541602287168397143796362097178379666307649811716851136007182597784246645510979953893242706020998159999102795908293043639505891396921173699685674149072411622999951560646891521113809002541699947931466404925643187556060494205270912983884528420521333160036796224620822365009847252550769078331758145839927635859217068801176132391343126407044120877355125513759037723154498367282849276825532258329553452555050766802094967970435920867886633497846773191315702450445341294238458885833205633384254786608687862329349700629076588795654998420231144116968436016911679629041235100463428053992744686165748593701455635525874665949285297212411014465633622662677136606793636424277872055379387525395374102539950119581061966073069498169823940344803199007696910120144140723309997967121770854217643374989012116090550041116912079703038701209758889306341777484946031257453326868795661838631928439937474548295516806397540135224579202667186023736706699706040378895016629165409100372881437654559667968510667540657815380541925172412441034657843834909445079527973729709368499197809543451163785390748352925344586067849305043473478619357326468942747142208073819624307051534749136888564285342618771474083322836497470315214853787707871020652847840365234229579099681224076605615964192483745686536030655642340658786432159458717362677674832642227556985897049507241214206871630068471908529106188374405837790514878822428656144111379275522967082678491700597492245144054463477529238551009591706862515279990545287001874529151958893598965325519856962399683501159505344579420613444178750793153456480445088104141499177913611515867759310853465493000241971662955535812927410909952124319757913395583282531322718154893842122389247343283082744729313326771397895229046592184402347462402707064369190510238174633644751892807063325168770832496011434485535154941351847420184732919266515840884458958113509441448738287938401838298786876122543464738498785435146946243733167597328347254857840902338206633811514395175137252099519684042856490937080364670976750446714298756048590006299640513187984497395482901559111778841992457904667222632189254417961991998376521716910155563222815488789892561574809357011992025527974607220793432767866259117105269152429279369191360139267750443653645063181788484744368216300555025701385513953133413952722917439039048887716507574219011165258423629671634391973179271471335494963529939384018576773116197172730109712438573038394162497399092444763889846490441807327807774080958573650954804041464793849578245878028972014267888798600747177063895172690328037274611840644269555145212706741719020372395902648181595978198680840756039515058053196316900308221035815563713878824966323493157102109358210917914373798071249410755520614191520567807147432267000858803158720898726804937919258798711426449833164532206481730684013991893112032925112206515789821610285434783487827383051497180736019979592107361593726285588572628094651179412097870306108865230854779829670005671485224149843504832562057762726655925433220371609690256932938200665154922640330403356769002524042244439302376492488836016870930424759096428870990339837003534096885224800939546076944157053661514411528720782588179608120767084662757754781228768893233943466996601324823507988013633029367547335385293097136529514569625172651096769520766188535904697892131661748680145532102274648090464200060155861497902143388817146865191871951335356885112555732320300341550090749463727617235103681486939579251098616209385472390256094522186872882882868235254651797218204672466800781997639050159306901727519448709341969710921061140313540207313014905705340503122861421932354323980127999236540821753989847414821516615410060569763559798423118173929199041514970566241057487004462438258133383654200613930803206649203206851462889293692751411568148697115136728156592689525099536310019771362268603335956951754736217337654299879015842650184532552757271739966629972290685299450031447779140881625054744619491123803531256617726113603320305641040703836344327810702504758669207395572019858752293512600092985989913276710959759953678957599078912138042884300427908768202966855777909323502712875837538049087995634868559201640918702501904952317782154041061460750336477227703800624295364339980220079218345426574085188842517864488872345454027848828430851139956859309687992731004015838116036020037212772447673483389410351014604759665467274241631397628874838790955581504695614321248587805216967027433677678617117336248555223141742530600403206068700370753009528610917371924201170890212351800054226745813069179000896007166062932844969639708452212180333281035338599044465236335840131786739042580690912588506189698089454619975300946114233997642721611802907560114010448696921836788791058316902629331643786169130454524783586154803843872885641067901224943776316184671329467575567301687360007053274518690929588029684131117552735256212727186012775295705917808388288696489329296535856891549061190366495463055625772409254156539516492358134663537922059343831559986159686568815423495838105847250369487246865012784285814113852231924252280512258809843251664443369216579575553706313014749834500619121935330684644051245128363607290212937288037617409660121375785456446703712366326396431413943396805021325885923778916416892130282074011256408438933942635043305303820612597179081787103933565791616520749290586934709480287610205875957023110760381645877004400994909317327094685813837676925823961973263320007789454849448825126910262593755779759719797881365371280868412871546325586541714372248043623853365417632156060318152611916544432127544224910811931718605798688062906641615542308573472093344750821279602106549341528829163673339557987397095823899428418461175747998137255019611552484666623712622163072320003989063795869467982596783274282359188499999194340341609497067960943031900799382445453210772684975763969780976679984985851154214111356423163811792771370621886172618224094813471167820723514015491955650041700425397956662445974213698048647495362543215183406779577412588038997857236892906966432474581733373400400555126673601629530115731720432926842999252117048835829994817100941611364503250603347799863287481311914582061995026840010248650169487130530316589269959293567726156160985325699013767449942784306691761790652148287871339478621489675299749148405583322462636817531801573470580620518249558244776565437438562089083098016647388884129793255768655339846433285522575497436517212178178527994583824987662805895643653437911440466629628048834647455270685360753706886406882087847749966844216720400734211190115371976065461560608215444513198587958633031937613970847158926584446722799235094731106344474239263423252012216734035232208281868564771415536077349845025268032385955902910718415198078235641513081912615919060703000701673946876941394512974611773368795733715727117847957239180592005357824587023788382735987248210694151174418275788488002640801541895196272611343559878892589480135237214498944716741766384349340885698210072627918024604656259989298779172783261669724144079084647989821884928306583007228198174358908995761052007733857350437525754669188722610692267083595785582393726940468235101979130837660803437570395291413285296138605476537016487958028616162667889874880005924497675211243723649742380334709819138786816287915994281518898952620648917557872339520852368164048393730179867161008445978480653400878285090852177106009825257343522097347783342495080775395590985682840499242858080847267422630224813479537360616500032848349453861535777455275990706415284790194548228790624985873496101638377167294117730856459300130927778261098424994059120163395157214176887851125976763430423496030267719210360873534520476416091177516610711374556091872249230171769847797654862076428558598748018187831566093414307574227663058545807463396710435447420195504934160328529613530047235778010178555944049643333509010326993850979961288607788256453118939718285675225369782185755346759696082796632758466286068159576520166370497517091488548676283180195578141340663817847575099306007368674125171757836159443707137536183987398638448385833714880348859795484891470725444196548837380657881549204771619841916926039474142389600706576524954905410867496119790553906546921310405888144537038136517483693091083744293632539023330109252612161658086489790008304879093803781144728306019009212208132356470645877732988274827547545870357727307160636293232540755814490054396969181883317088650888760859197797661393613116305425952115850862735657546589671090292121762326625408820242730814331667747745955877028115236411518480242952982789718718725546861517806096310267872875849380446475535684383178068010481144714464585373683535779585824443366820545677647949482101908737909928144988818352480714044444735039669991524613152235004913833270865885777738754632686259991842201691361417852493978101794381113945920553243620067726554806482544501721145007187943951855603884809379957549969702304772897825280436728908660990030687180509175904498393876292220601994179138103871036756662510465473420016333722900388489942306531550815557925796894907399256410870988584347274068684833366111030412411633809396796703735557318744837033419106567922189103274769279887128837667457507616041887610991015532767225282506022044844149763478988763696829080734663718861894407212429648072569348832764560615658950731390325864497528551068035411046284598263548326854927005909370284210390554906862421924279763718264225661856206887232711832677889912005883082593525511662685473320124867767420247069586313936492991079559939574337178018084224819023744792170353005689053287233144533586612385137619512728200003241909341695933142913773649311097699459910364523071959825884567148867053854796704052021241316823071823905603699635175450359540287985043460614171776790794566672181702941567051527644614739663508248930736339899595777892244529877002627591478096023646132342836719239950879148780801269985276931032626800735948678382627745700384163269506586084702706283449987945760006478512020388225154430679705403775126018927059209311068143263164893251343407808840669320872762368384929090672977447696775317133080595441197210927345520294956687840774124443341628693456683378796670278585338445556697207396979907436835324898776511091739798597665952975143589605942764134156916234071848610252229081323225931904575557623814421004688560386414355225899938395718421854150088562465631437536577714204926203273611074669791180462281507602087437063347412863281455041987650653189115593372343482023933874904172800636579845347584599684033879862146719666176126924491104105751570856367645205080443952852275183265416987750539637754513588157853421001607516191720986267433409541080186133698730837136801685229337513079961347008484261832748085916729924295366862564209070893192088020054686945672436186164787953776809817327755179033310135622849005515772874743653020980763833351839288550663125339045600948755803585246000876558612546397758206441904899958496595649105441512942995701124084618736563025320164346538920431144489142914765806166240886024247973099752595731924737624441440656432454304733387776373503342787651916934159479710569652508571439915990138569344516795323580944849731158345971635239002201953373038326131095392053262377767910936660261016039350671760999332799900271652520960418412984280303189749328137362061205412062405157629381423255965133222974596591005815853442903653969108847429753806440151592849044872001745125000596638874844417085455193802132430463514930797783569691582890353901552104570353079515161920378386462049775947337936106580847602254685421981563156255473286368564838917773471453404912788023615697693611753114257347990219321308706948595960041369273901422712938254252417603111409186324103551885343925824101783290509877951672637401384246751319438057443734532398029677614669086092271500226733886774795804392764360734663794034572378496256643586105922980024370538946836807343561913952932972712255378319178177858013706550005024215682088498849166860965633396895625790927110933138984077670823308240423473566722440240804856321697469368321449119852907949706898511294416805466944828484626780135536523324968206607430221758848613897776702722303924890495350474302858394269384409350840244083133341939110600452111464223838659450575702221893271625056113432043264104222445873745795903228352886913634244900791544683672932870814710428305869856454738804714177443811960750355072745143755063333105943564737020052511305133261474454001741140439169104230052669495578746922454608818520049207583620767114726032650730921261257497755356918063279922446481805926776830729388473288129108581599146650127380713263356304138606216256606149303253890792185404813465957584088691163590802122571247852322554366257220343752481431611834970396652440636401786146916560363641520600368530181633727970400123290621877512679505771495592773101770855523936612965172633853223184576795085872357963364466163953157795085518021786682316031003455452617974621126100866988480031454442455482572155581926776894926801076695447375246405376432135117523501980299603900291015354922851458787404719607906155660369754675374514724189338436327798456257996199030287347376519850518389777102233449073100453750871519139763111132558249335595101533969476293139611976116569353196016470805498114983920970878529609247139770480888807047163706919025268945880409952843381394428013503185192146620604450376986480175476454787041106514518578962807207439560606671741172515688581521781920466436535073482986038203667089973767488609625288032251666783312369984301871237645234584075778559290362525728352822894259873115452206625478518871493003359418417064323220997475157497950607341619294106749034033694947031876743075309037787492187681807692030654915293538170441812512165069006089761749250247771649824458725672090510352761784244397918102749082616809355227353016893399100624394453631384287122841385769531246147659517029131753845989326007728751545635774471967794328677245462692834803550420221787125445279910107396861640277124071751184683823627541524408341298789492176368882908785213488316074467622119820979324848089933142552430843510004590596226737490424440708267688220563549879443907185759354083449334902927789498855196402894742993265696240455587998599731226436164062131774349666733706439381914119466453086921693441748410510854958365220779452771305323771845728274938615509184958633743574798994961380477073277193614602776609345908988785377160012359910193441370434991099828781461816392017763472948981236563805459755968559833308224343980445496171082260200921347028021250390282087896634418703464497988869286699296158628109925980090374853980228345723973832099873714604686688562888233942728600943289175149378105322980577985435609770901325468505496110865171727954632540226357009101987995669370332462317813153244721498554772168892114501336378483600551616119942549323308074160020632062219402973811450858292106008402249600193288262557065789106872728812383800003733375350975049049820339015415298600773273997988017479452372613117512069200589473463906409432002249819477240396127686206435656174372327573746018257244326221583872711050520694407920301069928839302776320982316279122779128914041351287336512061485306852176339977781400958924272517161419324596848131651049951006932410171643048997464762414698781332847762162024412693464945375010604329374292097826854457421116038743591970847440630248133471951514914512265738624822153881037026783980378661600997094224091822345431725045011920114676902984786261982285443757771056979998959983119809441480481095550049880389049737905198200892136146327249063659314089199336703199638121814458738988022501757509632431647709362551415331988666909318959926204440991747009798758807687238245705532180862256345172304621287674167565014803776286221198561723550310975879163714345661915705169647954637935124035528582370068680647623832143980112576679644684388679949234020003470266682132659941227132981415267334949060172819170587046281647868951911438342842760600872499862281229780718394507687589645788362827019895792418743170286478767696629623688140546769004144915886976430722684834361506040760747242688770146536334791770997621835558400303458594647887335381473139367418529550783365020659124983396893180785922048538081830557944626466637300411490028945315786059737839316905705032032816668208476740688522187978161558007328211537927495112053585492786303367594383343100916118686429482934800531061370750294163226507926771227944565771173328430249029961020070509300693090320414830020679971995802367541053850953173755432587100123111113765633969640336595078179014956335258798409353670914265210328180625487252289131538420126564718210491596923415227322965025022995324237344952314712031742428797342483332628536670800873271082456055359618136044452129446490269397983899622720707622359506841616725891270714774512560378414391198057748255392645762392882199043836859703582237492901871258373408872148789023186623676405026534219083410315410579623450397233376260087611824179641519934470123195363230145577578518248815927523099658131293719626881990673205213316082313870470066198038810604437505030079000599432105428612262404355267901464359322197508083903446172437896964384066689383773432415384546700032167963536779497136769287564389708544855455020046518316846071809164102714806625577212242130905414443803207151692649308215445560987047760249368532579799075500652513035933693778371535031063003867777231952284615117491158071437246385092671286928634201012810927789308645786124062970514664584724311349516079262094931257843096934915209883456368683381639271524918946327003267288052820340429778612837170184749539032327158842237150155943195961822866786226244895757141713364018267666647412047459619969670674057860127418423117600192793994808991127440053995975145081284952112171439195081677439717023490320154663423013795511774744496259406431451508281755916709070402743654087770288666424350634153700352152183299932880913683952978827717775850119833121616379214775148517082380952429513449820873195311380671875721886563995442675697039530262435739816838811529996002707547482326451626645749876767948669013409120522212830738967475141495267861750051942025066103986789224773775827291107496796230682918652460365002833961860813343133660156251466436750855691587489216303448879508556623809979223650970381235844538302939159221095133168709055348780272653681887881132538473114125604375022168160012359125703151319305087432750951207237457425291443569889372386070760558488211115910253300067809999502812226780248421537645420850291446491482923138458227916677580591428752333331046034964614927232168838565395757621506486071720543183810323248802795062585712943417031085668826658192731721222921535870088285445428003780642964558705685135967293969123493146292387830646652866988969129693407049559588788422848239971995476543637846521252627590166969950518218902468209309059117452557178454720976360826640700147616117170937470902367802309881462978451662844187745180230415160490014826748206254901561671666849030533012432426327851819680136306587353739236451068521777614805125353126189009306741673684379191463358529790512448774964345644155467565421836338875088321961957659920622560241676434494182965640203360525427779637177831667485302093432428806204718945616747507343389366409717629485038373013319519112564116200391992708543814147395267771262327433849677110346923015990984332008272627151701325522251668859059780983956376676313513952653645910632883580032571749388400158662964257419608537209740902339930943534932573813935712174171652906046550622931250840111452566246564413403659894371933171820470519262955018042458111056642704416368405812206625073997308062627321393116399985395168938303913665182908753187242098314068756853619647870787207558890154709614243044488230748375185832050002223959189487762355087059882738135911684836393813220367312803450371583887913877503698127866075706203274331939712312540754674512269643839696231741559911917762536974652264529442630774372523587913120586472321857575867212012901224454206935364699218675408461693650542348703661946169476104358662468053364276186583037504269914396226999073542621378260784132184651824636067454478811678288810528247364507391210242521530680988752676838626242092251227854635934376995488845595472042181739807366365217926797484340860974170509102369584559356183605925685953713191713868094696591405246187508487422959537149698702596643159441629524101319299289599481767692162308377838705844156866338455707035103432598323004194982156823396635987462469094091144984982268488183042503618022487204043347789400426320026704280102164217429057332518912657844633516424736984953006841244997040770670627261390744895948752594010332250649254844611776860204917162936080275479382541456560234436941826348778587434598782639574130769006787481198296933601001464312865651537396303056583496489677655529341465611566872015265480289575636723026730606252360698261318352473499028420091115127459028907268116196656687391946704719960194217783005578665558016524706090608041017232966114199329145619675101765606309626735959024986808893922573741071883058311294093666577914419176338025176775614794952132436650686016968640087038616641722776176438671228625593706886258453429047841502168343740901693207843701835613452357150489345060439986724698602661779297252232116296733760503544784155517522077052298154108064102160241791857123302327851768137779332910590703613155934247623131315518480455037507996409501021101049125264348482552184121512776573849115945572396317435608388436792234998594557150129813150942552379860980812811930317496138074981625963787976342166073652738217118952310398302670856002356192329550408270249028392583037207485638864420422849780059239082004060588751177838910504025140989384167698737109563954748156165654548357964310081003832574638582659239896276291026350667624861553658741052652584439460908061087460533156880364313104622054351151067413195223562893828418070992448349959574267441000053977791630605118046859434281829154734970360853173975943717987843868002737597267715921281498829642953541500949638689466247086582267191569900807696793184276273250908247847980097365722759664310317808988731833304741417030505477602086032583820031735567641588627674151907309275916645796295818020232183006669789173985539761830115130118197108956808118071814273595992072152299884028539491272856495991816867436338917148039848547130889599950623399514579493491594691306640880581291748467803536246223978439079383461216825325969674665006705195942197418245284021829302331372178859103958064345160325673767467820182006482454877616568762710060338034625311035857131495628493446876509059291000576254689566039966542772724738756906398268354972714019199007492669520120444705460184650480658096108707027776802335145647012651013852596977447196597560577326735046428828102040458911463731558903611535432555877045755697056673895768996117410630352055847743443721997726337444658306844329202099518387186075061595930325577770285034048493470860773239844518291025241966183035051156984773702132259028225446856634882459229956442681126784601321321564055817403220122330090367059945441034474944943515714306197617828650841697024170603819259076138789078646748656536501891175612721475808631892716070291181798188189847515379903383002717711203635416265713977095434248973931755549306002004819445771230468084720157087318124318360863798966455538337562947544752980698393101268661093644672493795225731863307026645922412226668221849167600805129132284912311455744252919607283573170427155194610248728952894890055320142322142314531996975557132370265583139732333363967081346088674567238634212033863163070129961109307215185348558258481367497247417765585204461804672952241981608728725005284461945489535378264117319992789130727696798453506736965882843619854552713354920560076321741087883780561022019327577823220294747929414198950382032651518043862508024654892436858780615742177215645828449097907320883368973772364515933574734552344137687225211011142535097768191432163529744805081404761239801535094357286557019819559779668942531710834104525482246590342507655485748984991177222818390902434071491196651736865107384501793312312768720771313523298769204677279085325863808207585302182444721489531165455139965436480990103253809437527753143491827834196437166877957537510695696643597126872051968251845235598018526682068759715099937893644926845102835257341986811100539155170300903381614184272428519880964687225072328891205601634813871932327089482275893363167714921670846319770544965163017974851419851821943118476627302306052143493312202161649164318255610520513194570327365515548457845092536031074655090735636499705311567630328291524083956161777150458838605534967553216472762140233341935025274336544877878756845584775807609130981419343938393220568372697131640929476904491536726215057801519347212009024977546293994127626016626840353785767212364260997303317453608558629286833812434263923689890214678621439172339890177325971592656510308820197653489318567077618616559839707379000661141811500194197500694227940458369408590927469536158577404092288247110705926597873898968157725907217716596430455120269649743688838344053001171863250927710232401359311092257064847672180050930325200448242749947632612160802201226615256263533357711778452781921430494334120914206321069526392460613059007851821223784999945487960988194401574703857491571888006368382343434293968280613136845057781503993134994229246985180226061981368328915543696318071795546062189535286957277423514144671448402717201378848577087165257668048673491705358504982045457813965287804032529228659411739157102298394048187150694162188298345321103250800071555923548536295344025371805812411076184762668976385922345688943869149489202528812531992382463358525738808479823685428899748405023087351415885959006937712994316669279693798721048077369935043747311656023544242775419000219722779356887143123360092275754465013594803690102682710011671805562989772528320734054669549260508530960655849257197686128917045202387168739781514935553679923261850198658281821009988023292569913680792182986908758285303871077437326899152123571248624851952094490543885248434113526259683113938535709743248589234256858008132302061545569469413883305616273000302827008734828759462162509299107414198815877597259445884345529147089678658267649557518009544125305264540101514655590168647747196845957768521919793475746870557197760234784579700270312977945788695400625196839857411286268534438121165821413224899262369197861851242197057466810561536450524192510718444928295575785309829872109108026205898868863046395233395156115477381353786296737786397760345615067149314083441561904585445592659989730132048020107761907210273926979733167207802281533350224287601882514632036671816138003799371686976948724405642701064922543639395933720444920912986995556032257266898041109544788072191366072901382672234976693736227134020630508301980701410744816748286119138222982152337810519343066491635974615781294119902029305889720965583292028509642139891334842081599909395479777137622999417582040153175027972058116532506486818049886439052632853722736149216985423138310609221439402353284332056501367889971957272352391795996672656837084328332616131995900217317000357723499918548637758074604757839339233152334479334831735484606520576800533962465233086385762594091459352270747605510894437352525641129916359902194856271806773753253217851714310087796175165894501767420889732798073316125248253626042275484471312684087005740111637335765637178597327003754383673392271272022165686887837769356140202123005775260365344960112734139360335869646088218648543898943585001811052461365098626568749647528282140093862614128763034270327739389545407807327719505178848686990006208927014119353789368852902508511399121797744131033887493374788955323626788452617247166730037323622519522932650688125079751808661337028564326750668523605606617366800021830339088086635348086883268739649049869395780001950257030639854387384647138452797395302608180039953869401609789300301671944065017789365886322335560162249991304630496628689626229423449867356537928984832166861370477341525295166645846651842444237208176117056508572568883087704663976589553220433856766970344442145309532100670012475567929553024239158862895113299449892811403595289683742649013545413852541659828221974129352295255015151199148291917666667943105625528254750946997011494539436213909908030395893613280671266228410433034465315615809723313362630033619117686552191331734318208303705577532520598165925610114714241943821028415912779728127596196408359585764305291078701391678743923773240406182291246268099106340881051459418663700632672321560139750452339929299221366571488242017049084067818871012348902098368307081595776811099603909892000102470862804313578020698511711769884980863439511531413550811626695302003549246101709288178975449867419124718556740042367846524877403390373249684567726136317259170387707330714532429880953257012425286211854219029368097549676990365080735592344237595116082991725897961094250816838945880664966886520196547356315300816179894856088472318844830062644677278278813125582301372610251728883724240183818660133163151092622691575076552005757451577809761114157984979601771038378174199498375858087654914392131660721431998123753048288274296037885419436318679287184229494707784015720278538175605488121538817216122807758179527387644550044938201914722477270693984013158844085122610981659384567637774237733112170897034774454918547847860989789187784828517550897297203289821323532155525553619239675080538287010874596026833032676600464436860121640533233282577204726014226887254330967624341152942693415214730016898975337980513252689539178930917593339999241577352474189914730569816337466471742949343301324221654460963620726513415456362418697307458418741266590856176484935119042983321780376906662969341073073371207089295208874364354001738454903259419541876289401108083495398858052932237100266217022588194808634584095507201332297759009972218851425481581569979112559403216568719757410509116968002396555848351680475068366734059952591112430857263679752028072876533740390543537805575343397075858211701272129456791205281997784926059170086236353785936344515571781253704878538235865964799800358293823120531057697424225869516082413265201222886467568092221212609343493571828286266479788970752684310699482498880753238753389758521988655766763494137304135927661974993147597841184533726816358732707399746511419682952759327320994216619342479058860783591155431031688913890580765324658781841237593875792793551184772924962740249392840942388850400772122922500959970348277290456059374818996328211726713062187482862639717859792713484318143536717933814105577883597141043793958806349188071691038188652174117947812569786164732350769047763291528706924293304656699260252616831428865412429961347665267624227281945830212972090709814595147110524421996229280105980934247979655089643237702205348007120136266116595266344362383857520606030203627137158221018603997748563013777795032284895645992956709571946562493651674791187631924417813873936304824775421126615007973145245413713014864749390130956123048082066472967558947726389262893667309399643760959684640170945905803756571208661004987523682642922673914977451443378527716838208886423304295767477484180919388039482875228987659283496794397765090854161503861206813944297807671903933357862300422522040360451190682826944432579777559316365100475219598753030386238125038603961606154500218248798348307003109434015373432874693587420888500579077619698521607075231036598690919511129829207595239343872306093147929995003976524654863560026540850887261260041539719892219920918484960074912957104930079150627320474712016540254290586637951612765359453064706788873330747910424777001747683816356565168834118711336758627601264112243219192556635385532771551661933310366119470429787397200274225334798988021888455708697107475440503998312749323409786287660617046104168002966866887765620492509602203950910008172881641466888182918094717480714828576932298053791162249092728915169725845491518167947554122645013169716034905884576639255275956749492802483654966542409916580594153137157995526452261225119471758817299865624486015561794482205912102429078902267630798381156388895313579464649759628128672205199518145309323777061626333678582687357793598029461700100561581483806295732158844699656588695233075417997872056479136403775763120424350092025789761196172673509265563384281468432257018396039424464335730865153212047033671995510182088884842268531109594479342302877335528849164935692240803861704759098257636926479981147354145448730698144240149889755569419723794922305165268747377474214013217247360009168447549665651259592339482102332584108468475239395218228947306283909243734434217217481388581148167121931268346153595150171441462473493509618452710884543191154860361980625325356638289341861362825512512178371188053979520702055229679308434541497816111376327084866454603669238240851995700468518137597313600648013310057006365440621474183321501118959904061281082565384823294965096141232334086703883576716897791846544658639365441413211237913470412229742639589251230307249728126059014527267573315263074202917113706279510401558209630793061778574070959658567453133481550206058620115942654417531205706276255821239077419667890118393146294984315510077080371309921045126102573576254884948847214014414046394862619086671991769603862085272074558455276573713353636980443884775653138480462682141977560458970895035796154978087650619664690673715402339886044227363971415610582900791884981734401746075980819239783279236485276976663416145639615259221722943219059965008794290000048139815656347953691345599820456419257744883460219883456377550292534330793631600692602342286375644358971127378318236641158969694044681992623085401209842633722928598207784541267104618065947350713184694747170150306535428086935667393121240658647084086321561210124240953681438944093087035729521361228514912959107473580362941122046604809639542251012296602397380066659608726688219372329154111764344864919222981887398218429651737891390922112963730797000005222416001776392983045982647308857291163527416969518940635370260131505914288670012880394398341405857921875587883301344075609523409917727457342926395517989897341857521121225098786997374099919224512815639701569491305598603615803129238446861134418604851930693056680941877608820370549258068227616132761157216200007162491717959639760155258759166025805880609384715828232151576991977550481454760317874529889994983119264455849113689946235055527557420138410149035919825665510822683312793398692567387783866849260918648984353830963668853329708398742938823853497759348635959620492367183315699169565543442348633463092669068648208309315295376218946646860506160352866535674146678797964647393151725715466482099100035984039118072365185597527804029409730906130300176124306932873897341735061420651530753350906618217283375069335716436605680857064277562636766727609982727287848145958610497054192534772144289352221769155727066173307693221408804206863466070650734411863674742564878090314784508616299914592894335277969153661190316167281349507599867191351053462944944916133067317656081197567960519029049798427625252712463342108447539077424746821237056489394152123278950281669540855460233267859926806341102482475588460414290119361405547923705247850239709808247644731446963440302942715876920682520116795701591128597096756256665601302488030086373702453343673879621855215019780335174509731098469036792788248136768066488789769546186353014947427504184543445136287141997547311571137802669613226128180051894858682547177358935857524434669877233609372030215740433250075260823994160823617341071563215502136520024294031054146980668233141781549048136870763514793698946411186410604110100814701725541332908761545746205494817618594961681632365093888003699581277912022816820181893892043130673532846484655702968156792006121077786704359140667550217322227066947841008398363515524509489111453193412249969515180554519183389791625769229483858494145181181563705209429288406554532490935480874947561219146006502040345166931292129641416309832176390200786424027676098567103708757890025158978733349150030566623943696853343792923210461535333302895693313107816511752679599383599581618231734240100532589354016151382009154540398590814359497266864825192197545641364904440180924309396945303602687546629430124133924867931418442079674144094827663732032892941035790943806753086173248080523015434539804674162214646984188816197327674405133777628755937148306008484931996548109784270881355620574407727777035041815101868497020615701931736621440699737051143137103394142881980351876188871269979975729045099631306133380340743616082567474030873614479814316873680214347786176780594644112150835352060920808606228936176660969649670522609954148871195406796673971760263557069578711739943993000348224132957900244028662635485701367623519104866911677209296415920136716840718632074089910025359587263847411463667614554909686516099014025181621200341871306191146347045503735265312054755371967971714029270498109191888004366207482490514105842754679221727165415444932833138090037704387179307445982094106919349784201569377889744482563688971088776868178934065682298285596341127809926955506280510321566151657100342171901593430648067711452044495130745860697942348823367852979613071252668266300248194101516770537005508553698517810515415185309065409238078332494804412519520799081439296379414926581890678945230555521559587820092887885427656289627371545624605742473652951476614986696230650641360442383837256152419788551928905382179127725211606241554764464721060519079015352260736591199589496881158353731653183142581464546568574263201580768105155109661467414104836134145482582066164283832054035734803549493377736496748359827774563184117071869077850241606683546376155794564898889858723326406871609693499775541601479960793217862970094984813225668620238916588776722369067135944596658118752947395624075487112533650398446653149970940571921477957487812781281691263158703576879565480293133403228294791207906951124023445691717227546545261086396450040601062305935834934790612452772854529673066291925090687384393578821343504883048110239049229708810380888074662536902553110576265396647049450404984639010811226980598360106009235608661241638011589784810546037149255459930287700331801625288500344369960157426825990468568083813752672719224257654812964635712822499220970826013159077968053751350966469645963039329297610149640760705619218684728270818818748511092730563993054573175265707838892154219275932098070070513232702925449036393161622305461772431045844940006273774140582688462969448926802174837254378515369753880417870250674886605399984405355970493471486581282905909761641605776995913150952811642875331697116842744957618740771859932496358588061634379472942945188254353428493784723789868501104730310976418533557531040063538352610219892558364250097450372101591899994996724796808589821956375140886791531743150662847435779844688222553693166286452888028806076225533726781610231557915981711142435979442935802079301262072600954560274051689988949099504126929607366971672947880112306585731373551330475791399058030378963761519697292814804473732271029830689265728886963812542256349438856436955357835453009505972804078584843662060449187644428387550757482646966927728797374950285151488326913771050568809197705595662643744976310445400705419557109037214540009740142054155979326973394546748844257040505047848229426769421849447927161413515707729367706131407408271626449476530228274548045943090689816856856246288193107688790420048887476388577935338869560024633672635648218260994995771601029877241549828863335095853881539519103151919563365264503088685706431501753905278932520181535636249111805626865486148849806860682899883135750335586913113192165112182896697250104134795425910789769352726182368878826573036112447567764582540438288353826858248538463817132649640766518614504919355239335238531074263028065822677713581448951047443121241466994281191822247480628215479501235259217005394221087471831453150417759325315694515376512375670159524826446478881450084541983705532553631861930917753928644004470073761579430409832018086789936963900022848843681485036190180846863377722597871041118788330404842024656917084291770146706278169874979756024925460356024199125068621890474661250329753883167005829501113569754885729254160895347469991142057539464538086523077443856057522698045227579688327521864969925146627455232341901748706667871282448616620928046610735456096882366744865277981056752299670895740740478752402986030176863869749020662981658007858101521775122187223875073219000318688809975283311242902215833778924017582256830279967572834749894792829399376078276796076962886166577666678190785939381564826296477406656426413962842906202408229894450061481022164903601117524568758188592138432304453294058002919322418928302604567343988663030645345540601464227757610487787382315957056222192039325939346412186419861967752346619971137548337879747839444409556194294842668871778530951355668998167173438189060077278427337964123747959979518414271674083501989341542602847102609136913407689742197712165163033981240509093605285110789299616296068896206959596785044943695987408002527169224739269591277404764722299461656975325098293793799472179194934783830853301394139693045736540528862240626215888640307817423233480123956566039979715390599729459207641072552810624798628721146499981223873252258577856119015216728257731393903348381407657744334401397707320570672562260676164570042808590866738492684659830967955953083661266054370582331211376568943444519864720922915320950902000742957946483987102356077055980105763824809865414972619603007742764830414638650731538867111804777139346852464360432892191147118151349064061972189206625196845112779985429969776958604046922420116683720100951361299745790256409879220353690310679610646097361148734609952796772820485797021919103964924094918070334698756162800644624115959503851063110122845891947034672912870460447800311021830856611220559810452468103182253100685717189983378099784063418546393532482200564114965110615899875544500864596314692339921421577119718046975531337619210307782846741311334670054452556053780121813881106798632507870605659096357061431120919657254167096676483285174506835739704625996553495940095421004546385903189154156904152294593855523627377164906422141438790746385568825059433579872948265302045149886511559563422166327161932155522370565392710759552635343807055198183378007448113278522613381698619154757040253672731965471686167531546501894374472518260050525564886554059917103280307980508918597932914306258026089059355084656948761843997067010279720126088390693312242320121143563837742982250384697276412030630708652112999978659899108821843359740294094375308205774324383943199763290100184765767628836540814305528914034746290969185723146861966851387504819845508993789795512267268368551170221461025873998609944431462381209339336226738436122750014902241045543000243200050570892245715424995342052040245793827764093800052447180924177571208454851656691885694821885278271790104440148588409954419791364586499050402513017462536168110772205732346907865981526085969418088672503662479572965505362539575055456992562504439103617636540221152519174767771838800280752019515195532458530773955031509182905932659893274789405952781672934966656261930026462091229832568551471145672549617769333299714777659353920140061393148415280849645265242727247372645355112250084100229899744863133962838823812407562052802279150090890164928637030693876736711568444194556874347697592635915006182647938637102631442903401644590575336997567474832332208212439783030429334240008907173401081815725927375065788864731107339268000656086135771567034330273628832394612864418277119956035504477544265256274379408343219072757973063025284653604902484739254335562763409046532841023517372716151783888740460957594233644200122632332059843879562398645510335709037573778441232177845585169815844209977504219536615880450065421932060006892660819123530694698688479845166944539400862585031340048890867039687554988876097921217680584951312895298612615230135968809562117251080928785667796302756931414992301819924312206087972178811095128408326290777856656153670937200443224808991588431107924913251905228830010566026608540251459040195828622333728860460491277537860983398845336512008474314093153526202061577388886472224734074259548868229288790530904015674573449461894861706070772853106033643385476505710044724811410910495905845310838103376989956685075789582469024651168794930361970124634171488707085386644054312889339604542495089151191200435837462525647665224885020444378106584125793711172043757470423141200122638775641358687246663233721123066832200687443028753697630502684772834788940396269978682534616726751116886131911187641925144509489793196580700588579034059908862164990288575221063327357962557927141928804272812903051388152709665399894587165377039663198000784170720061631482313516137874680113382522438243814201120503238241999262279738510872430455510882581629302806276062925554965924281064086324627357436213468038281807479356095700404857047347244842614751106959169307897109082256911015323206035386023190115461442232231338055909750097286213261816367788486282716770946488797067326267035204334914618944351943274384445614877465770626675099058957751401660589273025655457409076092464523863125534072627956350104922756392286605921919115920967721202232173180392523412786463211161156643690596183765555333318130934811505331423808372473644377188160913290257107561424108336074690189488936623343409163556671488110547399786873675035262197724892315448285714912129756646347083639095686823237487219784967983957930567401206217112808976133993423677296275034681846876565320797196058902967393361164108700630659180575457968101823099720104062436924020393418858891908746867137120147014510570978579447910107891990270620023854119608871006647498777716717944858681365344676760854227619687955316860985907508601985403390078162476650243298964823842582113135661696519836581148159652355409403885587747334565347662927670163914334416831202497814925711131335672859757762122560463549785565143681046034563659800929460186176383660151570086024996400622673888363553119975257507676112734241552711655052533054125673633307044269162971311143206726770795606244124956769218372564532500253947378331479250282292318354611096398740600716118391165467379700497817468706896821628891923442569467509186188120699373933907761200701857549805954158258325083651506265201809724166204691472204997665914947375572313790078258023283634097688920642901221527662155709757537331458748459177586071549959019053519344029725607687756532109984752129448648651652874373616670948622077343529954143111041589946173816117007613477401635858930402337527177326884998298443805965240308059586677785452480376618517648125446473127457338028692683583829864609611828305177902944876164380330123684443084980675105259302376065386791212448752173262910174598124141097371539614740661965767003867278681048613300731737397742337379982202688618769186058409280437551823849356357081715896911444023816096324735920104330553958663216805903669067799885712995267590661804290908596181302447976232111964220052934375100152760532217333783315075737693192889808694180695242123908161864811658443475158010379955168481692292021797312132368575257947835901237952173602317574906428720360300681920893219848559878387543547812123381761636146177605943712322453459022184323396782413428526000211764038872873637134165989882625710089752717238710832777078790269181944829223466608106972977063523309097304689938634596891175235359527394458080770148973897571322480288818873527083682210608930611687650825267048501228639680758096989035429011695831535432791066993552697924115453991462450743509413220277754353541272336119723778357303263230126632983052510355884100267165965965831093194322238400871554948785369558000559546305370121131819839972005991259394885551880499052561194390738513835568306874243943428522253029209052856348799065926634193438238656326654016562931897131317230836436122776526768840310337322272396358290091466354617008852410067337842744352792071319679426219396181251805694092737761789367561371688291991922803456926134935473533972718967398932864972206826812429855729350506380309718172454849832397387325959694244741376989886821003973077886438044503194709768017512779495420325883079402333865845636125060892624344405184480866308259213918385986486934638447327653849427123743599399678818390906830107887689978964612052900511921160286137030610308074243047296348852679522401229426575778030876107583368451954276725086692903803675006962844419427584629575742452844190160394681061935454169148356541039381710211477558288328414367451218255040034603653743372670708907651278966338285858504150118927901621083072970538854391785474614795121314350084879282884531120153293043837583994275673971194522719163034672584843348319042226945412208545873241408719884066032812070844410710495318751369914301568973728278588775430404880818359543430398635041498731079218819210309968673117896580638522233742820299361010524683790258650339295561792594717803548556061380884673612511323584374006993945424326015713662440889851720763348642509201940004022259632924419790413321504454854029933752855891587524690480611914164128119174778566219952993752652050808996471436125165092763939105750937778336703770898239586835038664604664705268412627875701104511794358300841216462168017162565745674458373189550128566691681514333685387901341922145516843914243174434785249131740232126225878836114687386195139241733120101275796111124129230796024280165873233801795556131004231336770212872120448940814039588760278109386080394760449485064199633911141967609239759241487565403349010520620418457105158804644299113540283545766853362827958232723665078593000000113594091962482720355248952241628182316886803783361239215144361846209324105700750253467661884875292872141510679088098777534041332932575176879951493421705002181617478654806716787122198010674591684564433573476809267933183676075392064029621481115690575236515525398305897568070019737586161541939333698503717948828874423433731698417995212195117089122014545887184740047596980674148350404485730973145531769610021127083111354010405162484238984703536097286469462412605957857658759564980179060653473327560901720367072340252795926788696197310931944392362562123239330252387453082090035864607007556022218104065470668264052858449864721601387326606225919790090278475241329415606907826978579456074915284868123741596271507276444651607289545355463512267640455182968612154794727667132285139915536858834834658316476090659693785648362506029408111086160902952096161780375273002042831319624859354666094134703086188959429091099215028902594139826775386415396020591005048409080619294265657751795840556239906388714644064653569864511717929364050551231326412204066213842830940187830911552907547833262783728289370829142966824600090323726290103890987367083346130074873789254228137883246399855112356196383364236484755185686241050091269492599599898207912783577784738318710981584122238783560688445250443557277406361134879653919388342798172313934686891535695670771821532368863316585647776161022697533666291269503522824639016919206738700179151808127287014804895571756381684330474379280943700164706407659080856463149823972682479075433595473689298295094574444181008184493399590307441344312374430137174630423558459693680500778961790739355797348147596578662759457208212174588308600417352224580112990811560690208406393395792001359933926975316249630899820014754600326230897677777496165144544475963833713996400500281845336884493066709314532679825935345100968340161143777348421687107546076651362010003459349332199652914622333258925798992118880815344113627789244009023500124409220793076678746808059528633687901425983795246503332177589219512980705861889274375980866586084090260969809073542261789027312168294324245051057305483496962380077345446087813738558444655198368190561958707677526883686681137768848944564647761240499634279126790839009065159740353067794639616240709522240852290032032796508738566494992655042996192042976116930036454235105443031061439325939201594685160162992247004066843771386317028398317892097628073019311610012135705724973270465610375034256951070686594859357617612489485060765932792422671668480363586113493979010482527495978123567383466173177829809487729416294197933893311281525488877912359183015169496785744852716586820908590107923235434063754976664541000866348037950113022433334674505839811758361088825987313785874094804885277818048370316630856969780811691801680008269462411829867412906360834330309488857217526893344234187452330297416676398034483380564825103193370113387058937193839785970320281581542877270606580320233980241914862843571304110639461414529394845882737355834370551124043723192576411873578999433145131648961836047025569000920470630483317295092600431091871570897762930705554289787139703884722707486329538768022434831314798879424349495740316532222943189567707993112795700379111846418546311437422293406170232045802281524530276004221919330854735552180637172883110150150756209620531126729084741570543668409945653019374608626700899350483853670424897103097038341562202125930502078458344430096454096534515490742000010120067666316052033243686514468890514389861367412353993675699181327525007128113216953789183116908481750809650798788108339467381601050259958023798145788524252642694788055590455538419844317085367621749156072606866342232345490407755290122074176374721770038330567360704165909870275052463340263757366671681166308620158236688394003961130663307354722218359019106007527388495542255580771290716027405653430145551734739554525256640995436098591916372858498517860340017610855982853997862631548363413712810571784956564065927390892271134601279802704222673347263070037762726800872314431985765007881485572473071234322184526906176269940478618440576344881228283496822317717214968026168995010684921397788609090490653124822769638348387884306077734331702489866176595970350207616594188300849613932288185355827403000365105976982067634807880064137489519922759684735850956359450342240892211440884491092709427756777656534904183557444726231684777596895984729453411389647212636376317656105347273399321350734212027493143156870043250500930542417860827977022671505797347148903455787917575775948507172248879371082712534365209040931282197110016283805738781411978572185831821724714341264576345959752148735386175107263183104373352667622403165844067403772870514503806273314901269186622038089742573631617329835557661792872385405745446959260451005673351046419091342969209175253508663223288108440664636273235259403514640837528978783892179003832259626842838632043193917725536683403967887033055199777968695798381861081233396661310868985239122673774758565770045085799042265541526046236970088866974247742184089384255821741832044794974247139403315628436349694242369729642223985365222877437135399638982664641743239198449803638700977678528708988352848940061979358274725109890396062952460147619334298562968312719894738527811954972983211647885803636560179925705600412245058235638077290737720569413734085535895070758518174949434021078000642656129558807629683590473602522816946289229899318067497865876086534866750680209790798026641928606663688838913153090768999092176877437655798970297150789067981769388145095784676766938042333494526993317189840434998053708662227903601910986699058746922701291472919528250241247474412732791088208085761574269310666474525332372890929267672111231635666741188309105719859476794770717002358126259970959509773146743006786344224434186817582561822817390690001658921499130856840320409921533085442105222295689130620941001758048269168252081710301339061449613985185898731399207696516154539986988552048102787479337249656111942282909146439709874928876160913895149041231890748133293626022174317126051378858696400497870537059635639444420035172618417798836484355678916153788810690355250710551629167408646915486594832940773927646990255470822583600780678760917887948753547953109210373516876226852687639372298641359592026296187872386075013590453302988895672578242249317774090540760594694598700874852453143226422045644812439406986081684780583255677683738557134180947474780131215746912427808308238574170159943838285830633959692029721530914708428726364845897653401294129986377763513913316614795208937013369732272515945517825978925757253402477926901087870289888080252382076453615907758928195285085325884561410468846371587472717485012677567155228901202708179604766248717378218833742793193325822795906327709992742241138476972751808865949372469923813208858806572036996045981150819123621921172261269203665096883637478102225966839765660842582960394151424726702460618288007091088891604505026920991482720097233857577766615614813779558185277248150208352374305647070928950558559164402419303325085583157401292274958168892866929608186291954143680825107559942425300112269126564269034833581395577104274724000079483527614095218514162035527705491887174832351559478121571156444588831659900219758465239683493307470777909104688213465697190279104154753154786885279190456792036883106741748188729139859158877134222464374792895495141125188584600187216400823342389860238606604636055532204391255356435490210690225558597109962014434988026713641402980654096503317689127560199366603376708502152342190868652025066860661120482964000878413419813688035799551302069785681407470936403808735852384293223195467383399762359211371222161716677180954916490968663904474512704800180032344956347179011592461956413161339363353376494066491313074557331346472686097963317113790138733198101300480286152362125695576398704370081021196573709846177232918374049388792356917905741902082936255984805915179691108657172248310095081255141795374470762573194118189673322642555258307471420832637527542534578999482933000998286547581470858624789449892461685436511597614549184288555855351969569260958177147544718375959294839663370289929908530601649545708520699993238499385976711315861895894166261765414527238458735224879146453768614863574444026621430103376250431330545084370216479911996443398998867881483681607965922307238616165577663470001048615941622688837941489587161559281224143816407542556226160263067438077197948297894528595332749600416308789104764543773836663103648440562908326177819260795996913305534791306516056438327027280463847543942043183351007203786924068504771319772354207421410925056916301232881902711564268859188659099124652280393365277907018366165761086749208143471809613266840327893636928758827478075310394456539160906063699383268136629200849507134183209295887319540903001923600288558333594035352295109563907824769239537522389261051421207383048495237840385157718918952786176008983978093481318845710780636725464555312553229796435249634343380772499521382852199322079729468175320414747039949503442810604766047337466945616791676965547742636021180878725182158989126529853685134619766128433210930720660981996247008557841356449853833101048772397087928557243180381797594319436369627838711035740470048929080136484694518891985619895103103851401299024318040876646291581572878726949347013131794219015154224390628121616710329557684719284704279393231393850477629428486746354431357431589553031333558156090377460943674132191726315332040779126625748065000552128775000197164458019160400909292902824822379909098914513458846755121214505589213113335635722040814689948307095406363830927128733662787703985320393497004841951651885013250341922858900317597636383354764232479862769747925068965894404484375578493375039740174726128803826669220613937562495342560227248328920496408465687456700560667322810505008050663807497287154936608406211446289330920088598553389108805243071999589718118357306200700097417766017360116314899220638474883552545911556483270759672035875817602043071423418343443860756928856572686280827924093613943498753250675071211718062364542475032690311953258267763225952398356647267405144018396071650218772026032657249617290647911163640283345858234678404370127470774959137172219736134826031980459179536641421844485456448712984945849583785611377470369391622753765111541822834774468479952910951842039223880239646483328515981879664113164420405590139764730098730111015786815302072583130409644046859850623657210482360437173187808914585372151865820033677827813680070445929090070829731762133332880013883775457506665843343153712339713503107536905784818080125044038183864132786060322516375684994812225126173037753029030182310424130397811714464788986837576850469351072501972949355419338543272819243457054234231967815210467591868899326131685045266402949061385956612723780602368067371382816635611143926118643842321960178872692503252993426918610283585961277932651778928852657302834447805175482353510127396773062995657996162630172628107257414951270028940128650224234666605851077697221723920572369339971121830940141578469769036182050844817718502697388472610808663990886981765383488219441718063861309653080279944367446125133444621359390553333364853736467719194254835498960818483705787819527912778184196814027658526915229038985776457939262712916074212010877508470512753409805168516737648549482750247435640699638971479854257683357222403003803356455834492425823180514589576703552810414478953575827656674085202671265181969636365242011203931448227332989531066545384019377626250138372924916885664222185310061965279476919833604731423152358557451794728725839660114405580224984525744265406280899859574251180797912837576069892849140854660978856180539298394250227383279088194168154433219865255299594525075969787791198607442560310711685594459665466414036504634589123773130524243051511283818801806009837201255866089531056020907283911870459750196058756489180710162985236039319623145995630341600184328999219809657506518989734888096832342249702014010138511148246026272565292348260823642330898634133057008174709284378670089526020891781967334931529397363810059040749998038956238611937387443845316512809166189771775555173951750607643646946501088050435984189068864007247673803655175207209484873507267263992541129088698931776342271049011018944229188726598939884140936959640578729506243457312352787635773819247817739368445681856538652329494404766336479831295174711293477490644590968367620369390796391661907397950219435271199306939303926338579962745466714082839759116743745814233168291809319493777043855844307008882482777213480897790928344107102117371871982353571293498681779392971279211367779110876518525819798713552063045495361499245208296930862891093481129146941260631550825873926397470962838618924950038146608723600684291068044283686478179494724618831724922427087028313843191149288785804361440790902398833074833748050065670516241764858283569544890591478587510932136961556854932032072904848990798876729995944059253386103681262213804577333050346656841730610456738819726652292453687998257548148485507022121661203972741646623949759404746417604417393722203043291413401332384143103297342091525167262862048037308798695129560057197406158367620149477122661621186080782792358740340752211877139300707921157152846055990416502603906385194527895469894454089951906745563961756778359056938583107589731428176875122167291527918262055177213988298109652599271619085418807387342291648584278206969917155380941548427028599946795491111613382189066833835731065674958463637045560000873761492798922677658325817516007446300849989378012358105170412451683902551705371926354813260318716065245743864645998173099386572996598248243997287341048208985865655045927492432256158064391382321099585324167808907776981828303399111319775051909788334882461335588988967674141189536559882218812304891435495897078213080354498706315547834451135093111948059161545009207903206406055830462019839750326995501880636383289407717017789101537655825615777870394025653585401700441064482227948554815255930486835244440718267892188565532559587859036581940210000804624878281700632532071096168859931522510036462786773067808164278336073477786315152149647078345016450617529667939066984235830904858146701773252593344618438188189730196640726774558860204292934514800679353320672529792618287004329811321093410752910101192641736224039924800090568470258277735011207419996369751716102139310812819724942109020783983739102623975989908917691964527140377028415694742530798024664594169500111823779515772469661211262100616864585397512928635546653622185933845121969581805266400220860740421601664145040921666614855155193510445598745555132672915188817868853737047778485709643338360416711149428565734256262172851864853758807272418055583787622840284293896650746701592973803644727997843328367234606801754629725021782922702062716090356363243261358179189697265766529112663895926613197642162346416523937143699637614233010780113495674214606069463829321155148803638410731908908472995174194741208712597374344483868003843589473973636479124810547903838500533710313120039314991035375166132170674109670761721149170874491836548980404441592707330288448656348430207753129346412765869445413853837451347541419109526222242989559207017765244831186129330319468502323237731397299806314551945667788891587740785676177814027880756500983367333136550818191272182724834768214213490719399284925667048515793367123302841285212487733521763749414363493596014739180174659977041508096162653558480861882131502891417353692999483792133548900299856182968685817876964013621287877109589109317698124122567050918046389829582093197955548952865060344222426529058593686739457441512458287376957694511262599555016811152250515725071046110382825719323068546020224141823084137773116862609706128640407133054281856752954411124561224132520159855408168078783301373631967500868276965316640774516906590356186178659560924752408906220388078256224155875445187643080570095175736746647487204685466046862895797029166664261867360179995618233369227667287465760697568314007174320070527671083291312104229861955350907988347769948094618196887277086054165595959479038220258537568164938316175542646281526480079609064166752163927451443180043900717842705035562136407500475899575374971030808133951968424169289714336271356071611499322130937042641662777729935168363867438361028140031459345407536225984234409505949028013691220341928821848316471388458754143589183274031637005965033667877590931358557434212266300373210609705239618931954253249959872542449115386478725238907656787437492564143918880052622223655974206127369200104817559374376373021230234668476554063052437446776934691290401448875998441246556702143254951686825228834329490409210617204744305660722403784497530334527214964873440123893913655083255612553246734629397874865704072560437396656738618820683230278883886362197170509442167585065586401781431998920172078440100610290270329615210730444713382933853722804303890129047636503351661228420918298488848402314661425466417958906909275485532368968462143970264793783390928369496124095253869291032738610156798113746182952622084830124591409937748758550199777313330033735516056342029839150820557928281069585420104096103089532741172140818139779297555453360675830774377795392535947629813589813486840525295487219984708846491563115294165284789597651036865462359854678474278231850159921773464487332751757465957395595625814289588233294074807708582682630367221178623436740276634414857289180044816148631756824013934399538913367524836123648965486622631190603245827042137531112495476987840222548170191709684410817231956597169347537024542847575722864449744501840094296222868772534349171198993255368865174583072737835056433781989802690500795703643062178302037530013910954364940895877706087834806808000747141515209347754179454226465193992496433909029879486257019177953655235293831723333636515462241431157971333043164516912610573316549136798184292376479803539579356254070271257413310790740237915307007932275111437625857477589520854976262522742488781130078531095187718513666868225161764577438107374082147077987813593529470342872145135000096661142246181366575421902845500035863576532216422401637792927730565610621766754110064769137032155276705190649723223186806084417377870310379652838911303930312210378065490175017107776153267774709743443168627704969844967895098789160791109363728751134778858368584964778902754178512781792613741089529394981272313208324255996683097795377602796412172034316104069359662748131703063561132998979839478559788696167910276830841269217994387858293384131039656568669599529609762752845094632803718945450348931347442148389437668708949066660638146060290252349952660685181766457331040368706366265138176708448548782901189634793657719473324806755422012373690524378075413805363986409031744558515676490801472262317568595932177173198475181524330081338523667751638925558967850259288473539259265727457403225113493496711120268850694446095229737005763284872891833532212074626986921423546918932148255917998841783723448055953233652938906224584639783199788319528476714325072151849320272002333447846194948255144844423755152299139150954705876368121919760959930900271204472006067131049917604751300846647979358227938943554573405194622379770053673756352424076445850199708693409076876605639241696229766352570714375162330096731849016495934657443277718085327862911563363719824679476574914432182789293145104079662479551202273411081639646486196347889866434017978027771941543142019077398546665408944947415479286956282806986215619482412676131606822566063881309468890259222440697451559553318350379683016048442588371821654706662513945923384723802845091792883648859849944965405011366407171855004381244470247356744737673762022898063188103073182848281181086436431350130341419829728639531487009162490004910147905820910403759848011702040799468967393687098926844181398095719254239906109784564809171274153271308729590763993272179249771469253696151407254991455489129348984000997405115016241050943805531535829821662978138062156393872735193155101197857446382823714882448099610282847662382573548258204474309220301658594583047190329048062400643812049956527312448787818188068724564752596109397163678217899015305270356297723164302861469887165397217777399936040314982945207053323078971377350802631559043039001141730723761641979947745236207987813844461752320767726470354414630349229193293887396581929870218929770458823762412708850337902202993728262475509639378101376336986392823017794498420264446493353829246485228577509339335556920038410722438654126978255272021503589046435163841720497393945170466410216322624831930602157760240668000085342256639175213414141982771268735117002990915430686851748829365226288177707163033552887886555744155909372106311501180632476051881845185916757897896793664571868054851688080709153646926413159807017175693297071937434804037733284605063224075821515154199477296658305078281350440627579129624521807786530562971156584570849264494369446408155081036140855877526972042407417706811371104713224729128587146483155128012894191150130517559304880530777898682239923525535245376817891604806444302972675492375985980420556342380430789803837474691277003919256698107604056735334324365351089821717235255116351967780729016194534191048590170891480359596312078226661537363833002893988202168322224346628400997077988454989631605867293616725978991775717868926078999674651978099666280526886802211448290845133639515501517968677899083062702402642828061385274284543170051780587284397782275306811440544925532516975422803212381414015697456816474918163239985718000010963088884935550792016944143521868936097282181075368189798277428130709022069305939668094091093970095122723714961891485748785747864240930146383396183796872277538009254488621796517629069503258379607184798604885343907222756270406090498364140018821705545276146102510020555293037600011450687696603093763207965628958415181629614814167942913879690735593256142920552541149106291751430716275529516073720905876063882719886408717475243396749278782994352405408870932350353764417924384216426238879531103686653034203671482646822555330708153328876057054037809949878750370153600004233496914631565353044944541268788622057272184938408713003719232399928028022837624411428637480205151188698743931716222633841308755590373801111354140772857529554493745754149731325148649741952961182289090753458106701658209012144382110300420412879145538671730354151964702596218716970420279347972746810685400558676283324423617254604557167556856501212598832309783586588559567001438317737308473881151776178943374840505527327081674039710353640032355804895383694369309551530341436803548323206016784402989902476792118657566459755949620853163595964693034840180305648004539698217821180498156409286667703097493468161569639842624624068188905168245739162289202605887589618646884380560220306734522751133647629334368702224811532150558261194522139029657562454951664708854005037759661329047120182435406269678141242170968447006363996694810941302450285326034524996544950384720537080068945097693247155051053971137516085860384298485553118209662462535414274966636891638622072921064836677594432967593489144514852108056755050012266136485787716112632369880625548248449533632570639979950065141849366167083902629115895360423833636211302814918844943552889250934410931948527925671605104766452735843952963479872629472738632147319715470330455733706036253571603113209938764797837792215501465633720036574021468156470521989780066761836212944670366612929498450050596742237582359359375217572115852070855444287703780466659929174574935544835322665799489413134816696176300966429209766105230519615762881155243340604133135611750012227083687083988405149194217527192872930396166212336301290961647130753912250134595630325198650783432056263175850331731596929580181567479209850862974295888387512659081875442212616286853188287871483873276982520651499739389831479587423896963708546361635786392240771600188026400237220948006671573836332108507637338420436009917446123717254471925530478603711470419186312468890036475127355202298400106090676853186404746701525693141834027787809670966489971696124734186916481343878983853591289164808642399741684298176828853040953369400464773041258371402297551969580242796726178677294053879234769285424442318303828455850255560881206097449686102290811791957414576783180457996942393513503863483472866487027025002884488200213044084327040880407772958695929461109220391332834854926608068671079130133540008478148289440290666039006930527043822049822465465995033138674137707841012847775060481483049684737613756721419475394004068985929194696878702512703052029265236572133933370841598949889971323645923307089906290511648893684487885105532845098719442279313578973671315881518684594315121776117733592009900865053923484114432627647496863486472293244641001596301876617813060296939611095225966359883502304553441720032440991508054461641683514905184556516811744955704421570732934008772692782991776780697013851787513806009528262026881496261921759862194838441414623827730964885620118313025810110829048658845372562942076783537976566951390185014745627449452924045756641546094752104997858187011069537105134484765984001789311390016085156631771006609446077317321157165602717544064044509561229952686442101791560622908407437762895393353612651487056381561018019166728165296638866374113476313301685629456166607274871180707497143299445031773409264220044594297779254542417803982885988723523344482147331758760860803688015394288363093428873989421318276348650037298576855140950055030031354561559360838420627816034208897450511132224343049690446998606024051300121431528551459910555348542519591070587200238867776294493091568563355632918740223433585991208240987653533611011679385048710527293679888758555769115862100287191049480199264307504384968012740761049898852396582839159329796838478385167975524983773909865743026665566173487053648208729107440888918741232110317946156269438059260796278350448611780219727178874444451294005771089388541899013141484635965096755137178036148642358566496220368804457467995235395182171325900832588552044457690372240411758747033759057955618697147503143300997831137552635117211232157291013610746190223253562923891369073390094150013649638989559045829669870021617537000131229089802039645070482480136975234600243956778667886321125155143665717109378017916921515876467360021711028128388105560948125733632400994422893721026088158928248766913394219380079498910839464794070490102392075909491355611615945506692130676971452604445360152689580286162343350509572240990446785619167642714914552237528736259812891187222620684428091140344487057129858605404342992605231310060952685779098641254676759073612165262341300022485898767069839667697075718351761223297284478044769325727651125095274978556965974666509638227388799749826589117541922344009488811685651052866553937278419973929492587917568010966853841040824313287554589163229779452840580068245090618628517587465903478615202979405141834192014236737239239881009288844407864740899262898316908177790709559292576093258919845069955214119921544909185850913793831908310239521949009123250948473178697049169216468256977950013676385692037357549204612763535051294048397024036899422190017875111486369436125015802180931886062921422273042453671362225593023953356195490927249602557545014209491580811267604982580321843096977442783119383125862809900617216847763490302334304980518257032942961868030286580777842743376444434568563402092688776182917367802072939266084148900483221983040660378105775123880601465573867357941440011834090799306566015387215540082870695473885217558502034277898136092108010921155574385142084947429726853503260285972978660732516305359466710876821518554669655378797440331719937845764885134635577115764249949015785576772973305488117753720575784457906517924583653268017660574758495066029084332846274725633117524475373118471198896660880831382955086247679243635893599964487113046105854951179014253784150912268357388397175251339149279361352953836427599799935529886800391073404629007205836808440843343854456510025401727828473687522067681524168440859035529842057266481695872765431766355127162355381829581556328528619270254955161980786535153460105920762613497575273122094875989440723967446647609929005345629897037439688240035922413809785215330771479538510610982959852096954550898329866518133446809769232220736821267589331027623900117284527062636757932557676546953584586774435010612015250515963128951407697096588122214574461658399860616177056783481463347379547994447136934473075888224099050433196744315016818336196440182663154008966376712624095689411049678198381499935258184619177923026936621188953495230727530292186299354970190476695797173419206501262645506996961669898125520299304465960894974664308486317395210531208458608289714591618907965854936073860685943561801777654840512066132819468851725965783102664113297150146628808629718185820738267020725380911957543462068266943442626225458092815859975115597462305027538888040587095974580687306937247831554728838252584172257122623970403382989904861496440358065099210040970742898001944357432820880582988678904142189384010015597859116981852466311916369954062929830480486311562410193749229931705741404216266680108634507783500823087270406217009461865708813159587555025838850203329741539233891194148668298161358924348545974875490081523128327725972899850946674467695399606256266338715994364897869399075577366982823607230069774200610528407393440635821061549230561196371140145474836379252568998814637893492505927251638924565106575403215234373984591751994757591356419082312722590106128317653989309479884671604074217946124729692112983805914402995599744660739271119153322657865616754792670372357633011137396234627353484642496661487008137927227708923049210093359623955927696967914023493847551431684508671998871617589844146690865424009740011391867310991234570872487000732306238211093932654935295042452032029029754806769387606931469791340565107112879318366865615604747590148552065232589026014750818890850397841786281572558161057198561521995940080953110681979971215061802746336813937273429847776834657821935573372963268720832698511840083921754515127213471993166727776879642458581933741673592947497420268286860573136493017443793244784175144420352253915094217637496318873183805438653883633421613368780343320446686961241939378009314415089474006092159500492666014817670161141048167522908670348140900365779118953953441904741326715050292963401715484027767950944992492976495972498725289921827306413655620794260848408544026890454321831462736360909805642205000736684693989652680174992547182592875629987257425057176810871094028747059119811658304024302476364737872137524544514946771750240894487439848947152341867080338599437611689888816744850093106715501909345302608283412678110125532048557747913265660116634140621508280424675268635586363494786492590703581483233131822791991849719668413888079252569572212392619586494108023723633819735598349442124751236873907814364000620866585427131428424136203103206969175006036732683819472393082020706935590632597267919176912295838126395167756798664484496171603058872252099617363145491286937459130489060611698928523893811218839291896960766986895720856568607203947729191919098266698802581611973510650814696739668638670969051462248152374900718768228516516880203859652743495255844532155082692848347825811593396652711188391812448216596507647209168085994599031510335094846837465951716795753865398594103985794374466270783176067492354525484281391187132003728729599463926567745673786357241413098963091532700656003493752601240586811299376205160329269011585981597217240218484383819538012952714218122673611659581026201659437247501045411190354952800592732561091755798891404080496628744416572446058585563849028844534236454030422628390114494595937882106214740308398846113287293180164876922837609999311217708389708296561735271770188838147261389586861104352045858196499682777289588242678731957946399112007213323999941602628756487328025584384884282089068775678033552680766695742465370681375276761584317198692130741077745877208662410978668869012701279633126514147366626609341952435769948590279448218028160763927472711228314350478113313546889305418150056103886697525949920560946400418699844750145797613178103420032284229628088563953371446726431680865343659313169903012881967699406139542032715911727088576955800493825442203837990991732192565694741187197540490638709780793631155873360610522711105218225452212495641852564197795284838473735953205785011993079523846308627807484841697801343542352239314545161153514562335231033121216095496625981457723018646531475202535455777812518693357515381170404356734229238153348160827439637993493142704180069542652216581658851329830205529056438962880103481588865900464596631827796008088582669922448094604261178851060075683742507152651799888044426478779114508365038226188305548976360326243006028697773190297973917192360429315790341968650011701132585838967647401907540621931749858372821933648063850286529371246621858397943991821420361039067856888842369573013118017728571817395465127929163197671409448731212697025537455061505652273563471940283336666316498179407250388834655485258223085576454223746916296812266306338775088007747628996279263165771908910205029512280466186476968000445886035797915581221515408791887283015004648482758031936170691292265537205775722280814809063758019560002551379242552342523877441818054137902651133696383401549646492905530240543054393499650232895163797199630585504540568506982555525180228632824835282372938875691126166075803596416762973342687338984838264402393293679832502888266976383928606153746983374529544861230575131259672990073141280776809571553091832482779187111920573741496826940897287983870812573631300710830259346267002555247125028274098422949296617977046612032228915502080600034044366447832553511099208864804883667420505705565336425074885623486098015784976986463306691338391952591102430608580715894925523936615626726532920962211003980326967946465763783244911735605216479071324733445563453467569096924513584063417956190668963015493136308902044757566895410186840278452923918333396954234424972437466387578179699655148119507705290296440265501139471231879319362713660725205711218060488261945198911803745362787832396354678719091601878002042380571643422795231729197900264594060920522275806881592682219566563087695396187639052196463909118755139014927551825171631050905010975784388589071527833356174361770396363231286635796274991880703927148152761839214386355179200435154728622950926731233874435364571295458499785865011455363430365286695253418460117682575683853211538159012053952033027360564302546590557722164861925176127696340157102654820291122740367160832900883126513009839580374625332338249401470977758874467388301381946077870580329811154086850514023936085939930460077744856500247605787850244422749265432966194680941513063894088896047480557765299043416285526028376328216383706179391996248022564030446288348565145513581177801162643414791290648090164581704876789486259651340491224582394826392456635709851257024616049599341074326077606186777339060589214274771820843317753833858205725393477860451233151582390039364615991808711824605608356850786005683389266341950607313428149023148319671719310004904415452149132513321519401995807036627534142626650078816496366612010993671072688756778269168479910062940186362635008006666538290829222670656997405119823826062181703905380450831653680289716000091822426523537801282530346780581893821380551808854207052254662404983948000779007974594778458495261049566260233331166452182805071926797279407488397029726577553106087316657839695577076131022984523501542474574286787801127846902196717569282761701724556451062838262688256134535246778990303386887358974996987405381484393805942698457225634783824843648275734530196093972022102037640903504592725360152413748908879778677177909490248875052296209413011693083124097905175948933793777576462998505605626268875695714994666544395658203283160350794911754463930667625553285449749287944625068427946183390185599211692641475333624772678431707695084591914208782894623282844915653470996689933374878716964594464053806182646565387445039469481323006363549634641370210019186124218416237208127014824398850171575586576692303763660532253289595678331996188497579174992665271442069592015938734346904432124502610155143521973809731755604284829504503796288929422880602477162714378770961536476603714961657614587687037658026018161659480753375420278694915525344529963095207020347439498761437966963472753315420609122614915052680646830269444243539380576276628962147629339244658165170238692758546107546819765240241776493408241137941257270534780506069307482698165932763200088543169522916571624076574620184970180054652680562870403145968246645460497592743454077825060276863235893177586047511813051366976878781574463772527482055137655174537206078947641039176228271033433270370744670256190292417629460851943961517220079722508256197665595751499848012630268976640588575811842165485824295898056420589552702526710366536336824964466433146592203141802588627947041076571047467973380809994125330819035014985029236561001717666281791643699627957622344716359188209083496160192479539497983477353674059699610261911493649190190346573426927114413081781737397835895112775866372631701569444814506463366374907161375207582146601823809369391558971953909550495700290460552568265859905294201464420087834182745139415887312317868792594276360648570121391071074058112816121809645943178948382746214712923862367307341664258999150696691679856758492958888844196861358531658802590492945281417739966071083787094586232184815166809592779131287243122260966733637673047475398345652227660468105280728049211707789475203548848834880443754010926476377089013275423815069919751103941628373912618027134879929642061039041336333023913438273709502194850923452691145093677745655119819269230471354634081263217396682881366890383757720089164144547373692355219365572940384379268052782465683209078761279571580482257322862067437677954191189321184797001429288598843279289162602619557997428371213367061627816217808652140818360127848959568614801221615701643750922102578406399224025309502264221989531920099662176337131757304316180893501327498246303605009317060295699527363362651547096876329802716125794466096363131894308251208009967368738617871918805296659812212041342639108698670753447540701282116207058211475510130448071082140507172598684468727024752445146117346715641288283160139144634387544560557354655871275251373844518418597232105910211485337678353547400465607606720688344911201711680777545143147154566467051867529639679343571565243423890836049808025920919726861818522631501314561149956958406983659086809071539512021723891628249184390493591176347310685314926950548128655345338216349984653600410351858936227776924124122109325865454937108102230351601873776754677778969041354982184107181372673762884214562942191676475741304001588773883640600915828397508179367791753347466901054587008377565410524471247153207938321108693142663551192737915237565518207776602838274718030796066311509798890152169284421281268090112957332172382176925387687317325906268017907769575309155777426293154382741358748260421421330527511057931291833285123327912849244226470720337586739308123710851999370270165140235048004915667636911167917642075612844338132199814939908915353790916206647983018668809586391879166230531784555481572450376626314665986642759125373392841502926903613621093210460853738091052994717801545738276459597864630668126726163768350095271718088020949850916217525972175705734137339457248744938546769697116206663513756069257198243337349719874886465930576374408416259356430088597508856149770916053064552448618469416028358825896405217366708584771711149641991475472414753834758269816257944560558324780680523642976461360221277840755253847776959822782785190189941177574645539167384864984219892239257627240248748196147150818029959347364937762044561240329286216319142432655312419830524142241115600890761227985619910525013914557665085091725547591923133250906182206678623175249529841015816903104549407920227509398806991181925241752539937759668795474565598817470295041114293756202272213655643171273157292921464521469614918428686496499728445456178756780606329066503634167345899968792189404420881144247771418095352736967441105587736723297600082739193493689768551881840707950495350355969348554634740598535750241714979560114714091552671997460546605111830899928269248754202123186665875026804471106515849866465926140846145742153422927262036691030345367555166188792174128801097527774996641911503009764682675926125399144102858348740515061366518870520048349311606246707844697288158167259984689803469398393783057070929646297017763856298089447609658907053239402728436972131328925017887062540708936804834476243757162140797544209299889474478550536287715834540366367528861478087589840168482049689107731366100832051551436943196961777514663215864179605276238404374373062066939520655729776200185254190527242468525436080558993519016980408468704039517009988136051957181690327108804366880096061688515095787760262811844820630634846128581946873747139836385029445116515314600210515747413151194626230981294790861271330203896680740941047088415767549289784294196157337732158004442627874161450572125408804615597075795312589816987245390615595048981652540045452845677222699098335506224205680199050418840899414365601147241246200296024773647541084746763931595865778531444204200582865204724144903890769152469718305680579757047055118204689220046827532564880082412737426827015384420477865961218866756005111980409686364902667159214837057292495123325198635409050716666990540504049604675246343958853990812803966257708120972101615428502567631724063403272393451456082042593242792179579126816937484325668002332002913256402990084754870608128120094944337702507774354015428650403679099786338950100326968697201780989650475359786660987412275251313619808903192983091931983405121844665739583827831363981735583385721162032892433304385561327035003328914380546246860497170181056882749656224584795182164788064268877436540082503525405363124705861688525342822099321692463000435301742725676530296762828016708287864293653112784906193384441469036550818021084496894756694031494492405770181807994898436025644105110313553763029783939468437790945710486469552874281664354526104442231985726134187691990915471084294065746887342756202094189815224916827705158306371777518594839640018646350331793297122170579672711418779808551749924226083242181492216188193242980681433162245784192976108623234287265911725227072450248313280031828820626398422334801601820286472437617666261805751140651446405197495369209057007739163524512280355902330165702750953969027154276326202691153075954903226377725484954286538261532352407798056366243069223878068925619718886315941212870011607267112447997795646269961986976610576934773929350844504113727697115710645029312481019314590360526842746086235699254453130815755464610118017163871702232579556359573611899420346652338004439198826449184327160297835371039749267655864305359122072252754836313376040150828347078420624202618349672155266069832679261418131431503486423570181391976818519551912387253116769270527214147911393446678162312798682098781442598194406746845640576864573741410694343761096444667467499184682134622720891985179899444190405551671065925635333148573932898550541817746017749178903525967644236551183739297941702983126046573584576340355358908130578662773397842357760112342023397772305870285893075124007222845288962822243718366754403034155040825423970948082176574829817229586260224406486331830655665254235288798152448071591660950997562620980603216877840702953242820465163833075460690186296987776675190666777291424794420864344326058288190771329239019020455527498343379379876918337462342960232088741494812743069001288154273154920752587147250127712443591991595776918149224061979489258168961891990586778297755859736825104785572567529630412492631254370640201213919446293861872697371197046872021604573838231596459980305517752585199525762412616911362092418839202204349156529847556239829212898618748701616091576890302163600438713602419974184587297012863576578719836707115364081557078636435853133493918638510249963900872619503980854415645317205807844510309484785710375985274340432953870505106076701270123757985049370245423440562710465930502788385016406417256260384059675091245531952752718282292247472837287475643835140687760170009020473145444120941285267531801993159795210153332117792018442202093931080031811387726043582839590456007504961124806345286135633491205383874571743285072848411089196916270269263061251332833638309627290838031331518796006447380615359514570507177262354628381079421211534262693473918262274926311787590165477385140896454942070436459126609714963980684182577001235880090147725222527251389883984421549892985831910684981829893811644353247032064658056155569669841581967818753982141442263345189907978119752737485415940914448757654694793664302822135620323763306756446721233422127120386675538216507902199533642926513330517092843140820505036909851154966299266406412578681436532855991115684503078081591017325848467750123948166477253823741417036137015788000174523407322577603407201780183615064819450918497473098025483747903263273384037047620515481930292409210960136749422080505994238783266473010519579503260381039411681443632437909589648819495745440707262763947232974262646905089623526775676226129126204545106457870246564218035313631503380559849522783182656990296424128224245398617896498634286135096043858512960163500558556440871574390790279841055756864115956105436584422765669491472210517273602730428440127700702878380405229514670167279784449103559553585721399370193529431754040481481307673731110444840213366084305356622945638884224596921684552407220109521538209786950413898759716710998039377126638793448796435079906911550522331583210620226489857888524817436721576226707666928508263296006738402437694781287869947727367610729173409244353545520138502574219083375062947092819485685864619284790186659882507801434663374490908378773107854332857880519338562309393422632344332868317793038066348700477571165541200732186265249713953002285502812763858829371555809235441587587361585941493990848786681386582703588792875670154082132122816396013103115187911465364370889051397936157431949144008429208425249949221253137216925328064469753507316216603658725989785038744176889778494740083132631514047262904845741453564656045295328752720832003359788983532307621608488633319946537551225503035637504547516539964411716244940458306706918062075542413213474851242763689502048310510481375140911223322443599530142539401682483181076663511366079983791577311336411905525397027567596404371203845330870508242345759470267305671319424229777780979442264764579491863700785837834405119906836377431198745165204536970717547767246300067787758071820115036296851360482162588825421040012007396964379681564911597590148021843025584109139388192185713616120430815710877782454164309167393855185479736253909912607807328714895230769252877899573961834306263120073887547055991056727635509222347926557037533805275210213597498822804062295864263672888156393389247339579212635758442847169990898107367608339273646778579425041771873396412047138823531177136207970210871859438301488734225754509902330921864620725577667185884802016499872467212695494421954704613361793579527645782877559005129207896046431856295040702842014739059485627606237082773433026362502282912530905401654956161459687801415562892807362618687209990274251394436181344707689554922056187703769393311212547017248716534429696464864758045703988731925498878096136201947797191558747509748072097820790168093740656157365795963282683780287196570898329875034040193290816870979752743398554305197015207832186700484658142441803965460173173016043577212672384285959528294064046088147371307908067245305449578070214793750788216914305254892001986352343510604449033114938111307954110550257209897935339438573145421857247314323426639267828343377008421908276151353969837355469281606853275941730817896032635057967867912076333966540644675600572790405380914609736244612064210533173828603156151160099683889180719498354910951681094019686767008264467897457033640042349956296513944997176379456395695952574777520551289073638201142448008663558935681619867865230638963965452204616846838842187309552347615096678536262239669629193332476296360794832931080012499798900481386793730868205899816667121298272411137228517069733382914260955117061031055917697368082339683249123239059881134699064577616345914267405808111993218179180690091574909460578258836481165039818839215483698419350601215169827625086112358482133077806830593146456204805969245254663280737772011078185288539506574914265028211422519803721540260851470220494368874560873027702847706231447861786497143292283332607269424703102340731178155731491795795117531391805013362350277849185110999835534609519863814100709210242261468893116463141268110232855088492366219130479219278186757112474138775777703520934073118689887176275041738379399959382906916201135672439713583343490661545778049827498040576250180714235153855928234406421911179523218814120497480849458393303062979490538328733269721001133856988907340846541755149845088943927581774366494614686217558044805019516131203726176435206564052474509657887886404747445148212274587785345317133347500880508913775296536683524022685146716306159628310101595930506571085167760785109389882404972542714694761377410914667998556668157803764509015118890850851314964480913505312737562271581216327027995742964117090718855114351954504367308949794828263306281033126844321868542890534844759059042373054338358931697468704789311966059520726712443160614216347781748401407423035230257602018250286884535507437485730886923586101848578363913137968197397051721384662958153107625576261859332074368684010997877683927214828819247597990096749035638711915109945575777708667856218206950563603996029130261329135425603631448394505329529244964419159919288516943518829533097690235996739529829801041976447134803881162524735083510564317094444224954057002934181403631500737975657049263267214552084936572364303650808442469396448824298678744090505771093644453555522431737685978215525015408473431708687330020051141286898384344212240460480307181923098656245213546849552431797361123391505712385448632114212166496640458086393688475087939397680514325501331537882526217683308331430531342077105312027075998771931771785905577486826309551127188833213690497784319588355889895554321909190535082339904670204488495445390441295535098395178302764000529546194268163801570251259616422735152095102876274841665359290667615048473978973550988018943099899452848868061454265688744822856152372052853856545037651589424214282251604728106416375270026288165519552029688032763359198683728239921809426799820608571623108555181441633767967171231566035205552320534311962197023536717123696313374509026579163659482866129982093986780900975503591349888524769239920607485021815128999594462161699183135817449105958523363440520737381100478868153263827699686368356484506035863901393361479382726461413157971299595447775421900557308460964951081969543604159138587834247376475391769558610085228682279552290389526949097133904979806386234011950330709391252011403955791943592107388362208191346222017678247152422878724945910032574611386975984445101294258305066148658259946279364476903626708908399004654922141721071198571824911477952970721669992130678216770922552240056026636729227621438560614617623804152153375332143673855195356886274141165759150609112082950632342092948533629287061438613165949657174736289943554625604019732747397501379105884803687622680287716044248330444296934985873121023681180093239887595292405513504945867695185752830222652608726178589044865348341350480205496665577318772148948686080696172678206762854051654754362261112903710559252228763813596928330874240883293552494084559154075549450044724551206216636724673482540136137465843649357401225268581156604936819457642770728660396530273623779527382540597045711668946999476887275067229608078957102320004385094188367650989398713434903676025707015568938132076741628403507587153312015314974669553640931631339933692660448782275427698809591261263145670076056331647830629564007539553787724578003754485054982439908753029945448932112705512004945693495693850973661694222906167898604352451827264643846778585258591637141792438851244344441098851200481394697056151547604912133343414455535179578406015434827246040845833099038858132574359349782177046745416157005474021008779906044168443840562242482124153106126404173482886932993107079777679217478721547119156323248933526628831770873153965262590799832831376067858877904011872626472037869032150803183535539486635700018351682814749134602817835258927346630035132425045019491521731833574144106940797151118589702455083318317665865887820444442017651805763833992542620199589868215314164261612765223712375207957362239504350083306911338074401764093814581547918729675620958121440037594111479423095708303991609579882910341633712446537448089051991628979374648188129648224286855514891125030288942730305159077012254920106876489129278130729019464948038774082750163390979760759692400345107336141009584990260388989759495990442893506735190117034112616353270825740602475922891089061762515485214353879433157203179839980430151418432022596062205445495768110689188057010971106117629243809924812789872938851126404987887443800114577985345381408270605563467085731467106117451063446259512716235510019098790687313096976509372374230510621173777058483186577023529055213251466274903261100799752597101306891719173909579884657237293212960841487137757568737483576797101306842050355316596515036717066613502965540413877568812721857370775630274931307871392210747494856923191535339548401973951918413836559702524909139604875771187797959561965243917559198051280506331010103156701945938663187236711006824831157691311747494879442235362403278444947951194309206488303439031058623201349647565257945588643232739629516881918541370013095771819915455225488700726942819350006188747013497682793849783425899268318368223279506859522924756441816984176814415650584913077851637617562537582153685969377658064958466933649017111704287083764626657867959476533445879119190668636836587527573571101015480518598289261370857263986354270065683167784385173766295926041965632451454169219898917518139615407434080689098004203577741641175211326621892524132924530680712513224104722761445094174682420731068851127537106669493219965322616441465864343523994139268716263998933120149098758999291090107980987719429432211592369276408669587208017736800442319989890761850971921439635821232882702574812162080864719163354439434205661430976023976732015455163694519974043776675279909085069304132425487379715669203110403742507064676518259865259180519063934321678239528506197243037930518670634528170370940719048429727488583004412333945672515488883419110636843349315700406839499196510138605370745859748207054161239399304178505092957926675533624701201034518680717411373721909107967242612305178191870837597941415887191149303115918665360822733148939773098349575449889102677467051388614548784702545747769435131399787512053295061985901208262316419401025841346284561326088042651701106791206867717018721540301913112153653010092359665964649987466816031247596012817374453629121941175438186816008387703913159280211488681606653153231135595092684426671682505350321395460168075813918283005833848148843379899933399352207717327435278502918246782857427226671027774692927383812393334224479235091052314309955342694930277692515621736041613674137834237044089973894636875703883288172230328752367681382029094014514204025236386363285789389386291192143561612825419242058572851955434150591028420912855714485607641573983155494883875094388320075835403991987823944796130930738355696100856412144625940790547057250641691461699286990964526035686572620965536689621693812395158316750367427879481058371268891279189099319461807706882200428983103548957290820790217276641797624827842507108797267662170580628450878326741001939489722030920349939143237385284539257022558137727900150588328627101043605401873039488052126987316572084040441983052978543989119382758224501730015253853095277411092791525281023545305046668899297104867337318518151134926808867494578439446730514532510419595839290382317454070317114876272694713954298448355430960682130930515154230827080032738405426759881597294859948447523396499276437124450321386170405637559737312150291958668689297926618017936598316158532653746463437584642407480013461462123229048903778605728531758266090583454102199792663627933072208864032503004761875260069689642579565151505743632113885302393560779127377517723153505476605749049883256583397072234883764267435061939437652677674365240997545489848533839744922082309089704372776299561402452622726230002981366323365090554118798904086526878815941918206382863230844117691257552738081649325277440496614956026491648771633877730912380476829353479241969454653830039269691092820677047872689644339224877285029661183004015613844184329258271738050820122645617344926562953753954655161514309042725939145159530514143775352543530379910551110762480313067159793456902584784542528829213570940509164610521316158073904567553111758563508021764694079839638189001572413431584821795229895181508344158061930057394534099888736030331214638565415734471213880011306087207983210052855484867971789513124328486487081477156953145744219073237549846897546020005564161066664825158513567257789040908340687896202239248243499266686659060741931222888286332536499219567878318427930051097051312683766738820099289661968251347392899688718718965031875251577851860568495201334337176074567421919882203656451703176870107415333509085906583447649860652754728024562209498372845189038427707794085701478270823447634590493476767833521487323001762615655424720158471204249179332229731284464255555834034947823422964733751736362988354357102958321962790863792871557034835673536783800285269971290456003513389022847385904716045045322763337744290902184196886181614811288067711075548667474177162758280537390697483156736009867245894496666375777613772169652005987423300234054311991096013262207725243599844201571897979682937025100763978611761052516319877856998210697631123090318003162914229576405674081048644757617384934230576895446944288094890059140432286296354963607110852709468606753879021468458772357941657138785608907112649807400281506039387147505216273916152838718921604209559745084066939749700848173840409061582855424482396626353091498899301370331504747770501251482791375071604022801815345355838991618026208871674957757674735488117833879485969413354700000132903830228056544471734585522931148376793481246043229107914587949741565433594235143562000242014133596839411233590090052968459523917824590363985545553282532944305774807655348735914182898179509098573039780942066175827693539006117844214519509481250755719366874108382234928231221537958978288702305749817537916975090922401134262098514350712460777582138079369345157543942007662608378650273488172035639142181046870101729097121436448887516292671965648327607540207573961388993347306374435475485263056034726762117045650577366501178716779714442600058894347745580227509783592652789467691614769331964367247905807395647010253564960484014743398277723575836132021207100578005139769874147960844986421484209985093350071786287563327036055836899485739052138671454544239862731272410882727299961896605155587351785600038356775581693424636251269861797382294396358214372152959082752533325516396969704522377264077506644918798811639085574219794627656425036470912751100434308926546941765532734739738633910606851981664969456211011133662670985092886980377422653038648416285019481692914009971382119864166736874400787554319076050496339606529597012838586453994974869252633541766970175093405426037861956617264517761721254632433747132708899655230692611545546276912880826053252061169239982022703858754454552851732981672186481514516111400973784472974824861991562514056899098193535403591644176742604012417291773505344901049884035399086758496150425588440171944331026756175213253588102310883002504483617507879360050998763044577772276691282269050594938477443709457860479848855817968705384902366100785915627266675680840534584234920831991917482195315559693603454177565542853655537650265423952506121964965925788683950282566837392550049527864545219520003419132320616705860080854087107164216640679533917823200082521320410131218969419894862127747653046084902902352017253673502280420593740081244486519243904357364155726556805546204373252022563119039138439252974750723304877559184150462175444915932442208990496747866010330084563282408034518270759239042765555638252516728858170857243424617423289702274869261383293064074038391053335817384601442115233416884872352229372176783445351551744891851330860150916765786683464846873621197502327669161638965644777732802691133664854037772237372173360073863517870947970974165440068160677562655914975908421531336310261448149610655826893552690920725498824050053257460062625592163675717603451140001946774085266349989392880402345798041544244186300671337048847686301112269436837677882703354614358274066438731603839751735815542618818156510038957294350424072786379388261466760175583659963652603890144327138441465918937717462756166722905021059411474865852289827076708705072204783357966132978188768822077338968103064191409822617675501552809238665089293737924794659298822394003986403023054953625076485316256047196699534366626054927142059389556314118534613305199442013303236834960825285321643378518997946418424777214948614057414128835064947536617406471631647880978550450348196427826151639465417887726192069108225128823434485076612825431752784479892865176497685670010685042716133296080204258966617364875830781720342751282654693564122250577575388381131545464756744951407176494953547225517277578051336390545956638655209877956137671500308882590870046246511148969808372110179694102033739155857792921581279542945536277249757346483118403546696352482991739675285474224849702451490148747708822771497647635792957423417287639171396091716148676735380354470165619103385912415727283966651660471627563693956327081757321896700610841274402457300164633142992546370143809829300049749998696314207953620691036774135894066168320922129425030753583473030421158551847939491683703167020142606346755401694322506243419115128778540419218831453824177750172155185630148796724935919034429655362314689494180862268191674048431382131687572346920982895469993236548210936105070873827042841339001159000695854115375984963618123790993578068808750568866356196187229584426591381214864063961541673602068138455552235527662962036190548375368769700835745647006337547673579190843191152025714219479128216734332238177605971713141955006348049146233366378489682682189059919386341835386542811003948209532714102189565177375307398957039933982134201786251530688557539710022780921299647259531863858910613308115799890092438057176918160828500708231357816313895720842206059795024270515727538547357982808519773422436900478347497976951001605830073911903885876221847713111615706966700860302693106477687557146171457025816480034747047799156866233615003088889149066903709787496498383772274267867673251768556818448289041129241413910099765039939829759090119259819912866117975231843885929585750646784664400229153691459084485388975365320844841277836701391462735100129592259855457960704258897751798830100051017581286126424313937220771342445692232466971297462221233573372129481413540327776418894080160024565961239667223187791609503677351764122094416667070706073917676902215110130103230443000317185156963576722715685484554687690135199982145351753427536892439035032860367878920201325671430674350568157592499527289171520880609926849400752789116747835717692799262745738249784080832543110155484437937635304293582315665782909959900799731378459206818412692449899100489048298166921766414316731496276595239898107515371419305522622104043285090279128519620735447143661854375950503861996348177755902345845992694067436096546213731390915124820537020817929902954263592608224309219649393626409593684886653411547492658183533012640124524656208094418384206621147525810084224836720575414478825491004163561831955963421692234485701222846273449421212498920097911366836165199313044206071513932059485315513160709968289876057761211068421953201090567030444300887287867018412532960291334575024841085249559368184196050759666003722230599569262905371269447566586099601842907137561815597401569873005148740597297094159730264376097762299431164304325310291435887378620423522210667944472740801850082896464859110488736685472769527907422891169670324238970539132742575473031525854888895046334713320709236148048865200769562439281003411158137097845761149939535826452735357917629020152388118551493433202279925500782953338582238283010530807261458571817014253007799946962834922986716287792787828876384048268725594925772754255843797675460124123295843077112854701204675698930601699178781156498586900295863068766673948523028420354523234296099331635610155776297460470243288569763361056245942881426706288932074823463496818359663659224115511927056940048119303466709770397006209433680701050998174879785109851398331481722353032762285104258436399447486036424752821910875370296929632407858972780247213898868890962157871793029572640446119833428535315537703587930597013186657500045517309131045772540254114219256667215298426322816209558660166418782738787435073484375902567535910423852969144748802794734586298389037756493895284997291082729180868679623122428630333328347892493211167366559362385246043229680130166094336616294035042547594474828990453048351595552044246488078914519036301558576843891606720449195491087681190139455296838216602742903609460979929385995848457602064303305883706871700792768441592944338276464527825425839444901919433582891624837402800460432598437785709448792085169857007800188874116677755525572211250938215911223985642351052684112334802674956895194111170725006350338229090100634041363223795438094700708077660610835942722399967726669489327577159159088827859265440733981320326844327699673404798423220112336544819146907312727873380032713741625212755280982263172897111496795152212332676035549738795690055372574429134140577962510857202709434731766822884796843046514063246031088900381711589571218345622223408166277875175090578865275730895130520925607030459142604770476969358618368757097548783014202290379900452342420060351560114140219869080283539708001781699159915879689283140056690449337265618888297180234679311339170225202942716691752970771592381786646974112995378703627206848115341039688417529244041969913925616982638918495314884847622005704970832810129825621844683632191785243866034008336459849365874374818774090248960485407164902553730575382634597809334844163256510023851815518667570473480914601513176925443586233751417964308187341438344726678309832254011969601562008796562459734740963316506949414927713797294493584011294284567595907223232620412041942682589170094391790748095913495718604928412456973053896918060100657061428713563966496778778995527658089211301891193835467663788801725687081011537844091001074302594321281106989288391231027267288506717734415057290040604317047915432599615753919154081802649558815383666153488175479311343659930507977186587175486517926873004843503407476536684889739889461365996899235765293586807025653197364489846043647766918201506410059219702859061013306642583906423158745737517250234395310997940457138607232536147100637479085329498893554814726096388843454526159640647965451499696116209574586900431482854910985726043065279907315071435876378639544166869130142440184664007887487939675552967257558161755201869809951791592100583886828514686334873053493244112567713312036407844224158539002898645622996342141622635078382705013457580203056879646522735198936983736323803874058147889975007702164770042812421221582644167977829989464886816835965312028650907031108123594830430296348354043170267954997212416593049656713482736500383753991963938998646882398607413303451167109291488661348763992998803850584416370794579302850189284147207952810386290626537682587933963251699204504311085648606103161480630146424900832411149235221094097178451098948548446661080414403220905562898779820862453918627201297291528117787568557714657218246759713797165985313341077535595373931692889876802934283805143895072918686362439187863106754713268229339332960440908370366412926055789938510755666662907773107433677614563521666004103158344928253932337465583586923818396254615899692539216747999845169183578752824328175485309329446468507626607055338065968693768093725895614425115589438244984265216255478542080324942342491433955687129843074524542434517033626472399422151283088670316155913054016689859174673991332552894741928821566886665796867313946599182056656889964513828590122509348354490025865157883752406242700759109516818367742532707204610407864677188170530212965406271878010105266013073704021524901819980269245026127609669383728905493062635814510348026981522071710779041694219052352281081823526175563593078796736337247683634118652997136116505443829548685799258589668409916767525348541856528585018633812557758457956404569262715245350178949559458695067872319496858228239909064120932784867103304819586448874677503400848141662740980097581562173976520858746190467375560775738119326399565306828063704868779654070551365124292597364028398694238234622504734324991487769982793229625252898789623084517083649558473924123008095384818694658295325461892971835430166145952418273996388958509153232561504776342216776080748133217880371119733657683345014340166306538468634082105994872529835918065411723830706559822367692845531667385531462601259542320664173818450483798629536550776340060883471602214788710874144384955354247769528115045751045967899123192561427338133891293060635632536771857008338082853996688101085916169197329129811407845109235429081797253554695211968586831982955250107542596926774255592822349181554452916561730879976530138407125070326154472442643988590974544442303921257756821247085480454211407086186797327656872709021232866087036985599679213969338620488333459683116875700533855579984289384907046737757727178481359737183531672543225090966676712262832647274029337755581003644747116999889776601317292949754874504622302253541638952766234401121473647975440420857477193642671953041898761056487693657996771307250755604908458393079348958519204248232940947106989224065224140454136601965084536444028702390438748486591242840277178234252951009076649295955003264774378463524924367309496033576896254940118198401877136587881676772868688137622602605080656052641029693511600733604509625421980994905174211298430531166639887677312862861602183929569968347464876022570606227347238503648577934054021789818469662767150406818429115558151574325982885716277510267456209606091770762400264291841583402013601311448427793524931953646507972157968959976995211801223527903228037758396839090455606376404735862232857643381870647953649511943910801843133568978924098596905309401414011884397824817487261552260829939963202682417754764342973391186313723487724092527794046347695231277378655659327175182097235703704581051701628340372204097134634169004942490060243528878057208409362700928419171312335228824406487264197977600186877665816678506229054981651196596017714225629624725283625334097378760122451034024828519222362145783014136137893729338627774640542423043365545791198329158527511998414089547706120458721611311251753492079780118437844787158953427648045584242288733521813810884202054935622197828524788825239444025607976987185698099550735840980351480665708837854596391175957337941971343721716727675632598281915905003789331125779173393682289976748749636043566443322018779283147383523594481164236520904637837741045658854466782591626797217631616991172182543343601856715812040675034088812654399903004728200587404136817486361512736541239606001173312367551256428879712968184733186741233444861223313757235816490752042621879404130180817631958860348569067594700897135223948480175643767602606321602850109087795534693297163572997146210027774625621623147683739908550668324514067337099671988131841797319623639123700649296327451200270681960965655176477708465887868382024195358015982859673299249735551103302839208157119416478990367056538101924301981807145883695104314111939296354535391978776400016608859678063912049375801483943917828790359214341281147509988779757695195965962276826061036847107122912144652846139206195710355624851508831943387930076962771206369527535821044230759564641838912350097083941398010263853068204524623853367048360842732403747976528637631385349937062351101343826945724050798929139627355597766823402334663346721414985653204680747115106269382174895517004663559938646168682307318880060726851129214025609943588683665889959424183362472869100353693190605847107200310831165005094705848973609053463200495435296207204026202905630926080357069017125975076676199441511652529786480302116906845652067649810234463613061062956287746728810797830310653448997918507421491562652198997174199119966450425423516135958147369104496243458983773131652875291807137677480825147113431754192273648899429047691971585409703239312559540854598773683321285882418925656891989602302639299684352345767691263560484438977934523859826532440603150413204500748615369421991658671029655204871469978604046250406197787825347646312612295407153256677637266769691452238096446971038828922437806107272418621893479508712744868942111460949238270274862144554563248175405642651408772561503939084867088987213729437387467428410428801588211065420986542681589612697354297255015635832350169182806701459547611752885831616855174096763809448510890804169724851022110143909160753970569307431484220259709205241887743703723270317526307624771699130900613746683093368550831502239576660795887819113607406510401142590588564855616241818274066309949955378823950855160976979254387872184237997627434424517188871471116668753768852359007906008768852535213430696736801062155678199293187615046088790953381003642032960952701097185918223917789173717773874895688274767755118950474171413300368597267242555277867467710866508789091357844400222636489000035769489589196370350079811486406900755862009538475513642504064585706733559575590735612047963315543403459564441471018903023029955875664833069885904873346536146720808496005146430469220407350219831922164214849955525933195496851622666700424232096619609448134460698106166562922915966487829316500282076762175665890222051615647669677135133406559982623111499904547590002564171591235720061915801100361496855377185921128631810986345983516357202941459956845866245452856344352865114631647610660997440030234695766108474080543709239529233832233250444924877413738876726022010445565724504122265866651766173537587367129190180101640154828658714103129028076725878574365239719004085051007174034612825413311462770100404001252613644581349624083121430608067219811205599240053558550000196190496497883869146574151394537480855027578963830269822910477102853983082947902078724076055562289672242801785309787830502247603955535330726256720984489214585633633653854882486415795980132682344570487602293826384372789258630155462388296518237842697558594942047088919587567565815706367397860410182869936645216970488703580942678745374823977782085430817906176396166855150190082694621820139601150639723664394584887002311024068655915865671300946632500887835676905759891120007872253150067078181591422738993892862120875397468680653121301414979836628799187552803738022084116964040373379094624681077506919765399221764778312210054704027071470293799208405127579906066413762801857961995024417683605608804652319503797835760487861847559167329743063977678944242303153468043152444518824689056491730602553520504148975187974727441668903928429748626402743352809457522531193682392073150691962629136475964795414529755077915226194405726350459882198768431657897971798629957959550559924732860000319653548888839168420792745796517063924787992483726165577266451832651110879130984514505127460597925189629404857824848361621778824663574808960418148226104183732090109028610363224092245876736571280065448224877366925135136846791872777622720681535071760017226112763591979362141658009025071246444378596875046838309361796772396122623848315906920611596196656384528099916663365494398508162233911163108631742137777992462622735226263434467345840110395673421426511533155104440673110663368604133000516646371915610465582667843384845946397722375851483617496115173612730945343065965765158236499062175714847064699231372086800169375860832307505677314496415451178171016150800296440563488929137735272814888675914930555107131192308237246762700355346845421968042679314151784821164697133970923543116630036930669829376333520405573081207419524344396446050052291412946432711491716709089971878646808343629389540887520853983624159633268176663087603708405412388938420276642785555043631735782860907263595400723115103441901409377175941935175599255086737807259757430444538715631847367136450174239825081931547684447660813870591114604024070288781545202206103775109719499214372693239525774416328138211045866474629081860001543059921830789686353494074193477744807302069197208063263026044665342152097684572589187560048053751977019089035285213461328427714480978191198921192510824803082427151350528751489239467610706385420927003141947800320257621965830433741590579561069094199225687240181642931902371868823034782006048677768469805426475098403628247395006323447359951130362316191545768350452047088888820450195128712102985571141066904711255310136472052157734836540851125012502124374495120326039234443374855796915815468668216193044620108217037743966889742407730546004552890872198648915151044878356666621043049961039649116214189782482875217466207027328317676961931768502386769459223866812601968961177118459995432766645116897112676738561004203635628966734104437775080216905205051488080860422449242014559951650578411644928841955498201130797358867487042457729643435818473088963910072228790613184779380798947083676633391193722634887027035420739582005695450714819175730238659851941012142045620634429493053386231819120594427654321965740218171765434558629534790762208068892837472366580444287506778430052192049538035532120744158771999788432858737977900332054100367265578866618201711736875140505871620180884968835966275087761806909252383064551030719647795772606197995869700335444604186473830734980596547095636020289842044847719440336421499779955224201878896186748940519468698366218876753289879551084411740972967286637645955441025897219306486863557163723590415353010499944408915102158872611814915303277297584506117066590615431917647698438901700859426947902967993965080863537612846285874590709360205124887168775938577013620674474485150007334325224756551323176362136031370377770725755423942498058355744395074380485184503609911385761033305270528475622387458003077535148892546586612571458172659411970644447755131613256033348663057545673301633205208311751900417032460827861281045878837965610162532949532735473224230409936371251596515554289848130502454315824099999909992914892994266390820075078973682429838212875465713365402383746934309340998756608419796373625434969146407651093328102191593912746226965807126470195381697204573659190130782566768602811883828823235564127697372328369455874325894820956834198830776668466332322884910630212615206785877677805386200978813391491448659091018842344048265031765362721295306351165870821880285645682067404129673021547656371465133649705961374396993130704296864631773013138085786931766558881954004016430185082880078399739812624953547272691766237954218896027734062433368543780285710394128380788993758738000796521207742053071298313248141909815367149058380894805977957494381834068077069004095714531265402751013250223630074982662170235184227382493617042276712789250617996559830020419573041371659241422113083700919276563504397840579183922318947878984571739142317207200381767493472360706317234358818966010086548154432540477469877969810568491449083662330798230689472591376097086287028865419600637484664771020351441402092432301632820862022482645759057273054549892577782627831281946366447219595384565488600887637411968985758108266531624758107372357090444797610206149368733969319742145660638750299892650626323030688093163030250992841133855320523714327455713916352941280699220008586963036369789702093159026485824995047445906226025384063256176221913825981242567419372488600362934609472764306374438624259807515339613510432832269542523578384664214273764428479075328983206906627589236646055092858836679357923005489024401913336934961537117108412708032468528011673094771502339631515086616544173263075321531255838542554323049594998483810829399477319163775189842199847826137243309736459102713924727795496150175308438077998311232823231174962616644929794245098167645456587177590285359789186508055623088875091029259721102902513266481081291733396380971665121077512217641366203219180345187556352252684383990948020607875192159242039933623411532878194629527536548125333089919060594837706417949567207926490422463007984688887223174169024917321325316009440819039786402041727533530411758974672430591316825642462284325321653220597357638899408252094764827256385272073602085004825495346343250900881847938537242793062275636301097935125383315481341285091693285402600149800641143826556651869351749081209846502165393903916654978599681584787989574295933036937257895555164999878009635410113947862555838812983441776038158572867647576489442062086226651916974787585042197053101773224167247624682026417056404024689752118889643427303676541288944207511032279651375821588665259469311055297299550821716974556222548210938899928508920518667658139759334559581297273012180573832246389711276626595137465732812251429276569105920220131437062782537315639583139645111125338330616785833804516652056040075540738036633773231482266868590567803689266239082233972872809536532992044353812709857248441843711145738405285362700426322411990841261739994048618915608187911582385710353723799088288115995021006958234985689553345063771497296171550872582095476976575659805722139441525829299044583951634120333195771941903095780424281166594334525892740283427985068983889718635166337509361595318947250644136576397676042056511604802905589761820219845722023422874832748384860106877364251539509529790694278172348293246141807686413611530642618020876035105021298728987454006612069287355282362673985839122069988339861991566912815148051782820941504248557288161141761430225007747194657510826534989846912918025088837608018461392518451647488458368214954531333059714514947853144238500424283567328418084658877405009650163856248202625367049384206172666177206178871587202416517193866484310599354151648683512476080876412262469846776215455046900100579639304299432249793321559911096073053277065938081419269855067171120318832880399813414383778816985195443318383661622263331296494089260996604155640275395766085561827662232692364697188802915674709760679978977225931224279231690484325974876541886983817009620060166234677298050388467027690787819613317818699358195882161912684080618510520853517914240537439871857630676709586156154158658394217195094110278341581602005569605949823901451392804745972396886199236749155753225603307002538226423813529740385220952003426829549927175176394847751361952896839577532739770918679985819094840048819060612786183947822250456921981647702019783441127316225364419900637063860323587698425908429046824808252240202359528725354900021320164955722864701130411708555764591278336161843370355437304701751498578984726924260077392736110775859587646029447121098187543945333262717701803217513132892159706838056803058708371492883869535176471928362444107988382232690401729152251223930305420733289544183717258883842139702226569839672075377928153047549241926294883933882742651573224010224805024385743244644386324874787770199036072420118765888725435270079656052887895443254672589875353728918501286213909297207715399693055683956318170129848257787350978649356260495804207072596406575916342152466760840309461403085396246122670003854383545838215611614338422082773942899883192174017276018888080272649039553004079583719034741939009765301914981381406855307256487336686746359498326033472169714634975381580451065281007533944369436164734483115383364572641004593112924232892204740842737078961762285970340349781620333555930096816337987819603194337188197315654999212774637300741700415198116584216979737555904520195263390976412394945746630917304268996927668680385351888080804820645750738018506138424299012985387070306637405151841929325379879962066166881975477444621768455031560254640132072289362290678899591572933140064738805751841167039619104473999744494884692255163903149425544666000206024225589696597466321644515112025909359005021012118166992954172750779818187231477647791259579164660807164472619856767370050567584936236060004406894686755623985785495272688142640562889149228231422617649780940751627919972346125026930348144710173463382828383914258982063019583965370032204373735264376700112981899501346593900128980412029975599582801352140190468921688791040395593301483023615079067935271219115148796609337804079908411394337359619301282313122257124228299410816101164468855142207339803229178133530477764891959714099217652278387095166298714567073058964991085596047327124671695317913998025743522852015605228942951840832279434437204666295194396465627187245557522483365152974830571953699216644442548192964920728532831651451567662826454732585103065936652025402611243328651144084175437690614276318675877999116468029338824851504811866062636183668875414268836761686980292889605304034553839121366741096997799049532734742457303344619638656554092043435568802215187557298427355594634426339045752430150367284513363126057893160434158407252955604723907562630923070847747065790540155900015867413517977266434915990844650037036854926585230049769566951772527868644731576453798543890210649110276148677467499900720812068313167982394824402834268547425090732222244161895351032430160218284240973324758397205907205540833236780476599173068113748986862835333530076277494848187749962756147332878645644455604900333030933551818608749754272011778277796194982404341979553530271100314767980871593075595674853793981221246850385383205099874764932378136820089472284479525365833893927096757890833913373511442032327341631105852154593170171660115526808064873764081317418733705371158376337530973963467132277181731846150255724716503828576808324168909820729824976738286012527414960755920797652557282299921756067797445177255932071695441713795374092680992283422484816433598517564589668813814317432666732015718094576264385598036842798671841413960696958844603023907265960840316765753497232123587372394620104052523245865128182047863788091686609178459406003805827931406571867131226650760912429677935840806774752699065284377188625109680319086395570677005368956320591304299577510809237733242315046441698168604755678202179274501882809362177974560658614431185487395212629909935112354919417044787982689371780667665970367070032417465860826817648132084764925797473978257400156312197212081670718097529769107469864227213995392306862890570831446823989875312089682150830591250274976224999322730168720148769361113165245692057667201163421995578438013102820595139175345492385454950459134356383011432197798087358732155866473823480098493433426518129453463838532569042529615706913613296056748216681596756374328934458121685055123963490616673728122793164573082900737353660904098317409495106801461599223174938583102587939693491939699407863262381225336201888180598269534634098993861765021113175308071380321008604794879155767533640994162515407395232095934715053443248312093205586260643759463982080458075984718251539935402043455556848786198497731578799908013927963800916622788422436336410223408150303794191255689706788583872677150957254553754681560859540694895170520887528318663562351128372177983960590623477238009782806423566783921567491089173571991756682153820226836735108631689951354922579069842774170441980258489073617608506343373825034241525865614801061209768712957668913692187346764489765002067106276596278218944286412508034263969373897117345725961807562485775374819880014653683143775456502876605939830637150973191659103558875230431992370459731204491863207599652765512026362692168920367039287856043371694505775353709152797708269278548247242105302681688001092197535172241229017423053533729299784491354848128859257838825198196407015378730616483139195932660230277941322337007836130301515537113767580899214114213424330090211114432281565542636233684735012158244983799065763946395055518034610582784835645642233006516617572421251000159913232169766682762706786365318772763757489034322663170884183071967132513866101554330800867866116094320901131945283347678111684978315662509366183083710019020446352300595321948011909957377574600026451333056331434882191133916569585944373128596661783966061843071999116717122900715946438453191886089752417129492205337601552386573020582713839066661618476182528475024988391057013133938663426040863557407999925549117875768693716063413065834760673200803003501450447238418028970492866565093979637666871786406473698495438204982095076237761801064740058781058371866605925476566770301785043886000506438251995970068232936270580491508245607093019869950303122392872329430696496413538634894629422493305743843784034813975739218639042059795991499254776276569104358197536557725726983259235697612254656194253468713405722127605196653049777585073615973247523305269850758128651805157917096806330602174664869179679964681110329263610491438408444027891423411570777706792398696956659883766768133532910054349860971561661027196295723968906520299198837778696621819030769910764401249241334274172630747889353919792595313472631515575978852050316245026199595522659555584753671456843184996157007398813547349314329788813378056615620492929573642748333949725368162797335680921492551718470605491850529647673723842521907406649185682647530418671921086526789888949488924615104328206113466645259013271400468396883549493345221013699952564371769940166850240120270301198325335840247803928693777614609990170867378642754554666848533193964212964003229780372022389465780120944595234038476227410586413355934237911724086368537651620493847119220142991101727536101448954849793075387373816363978201742848090943511164405788167680027973186379994809856593032607433648765562754769886171676702297665429158757131588934555022247679377767014117899335930888226961761743793334151861872787258161407955170004178105632839693176458866458094675634257151399537567826197382394641684009469595043192199520134094012213038435954218780519077909979215351053081276927309455982793634915275562915109358711858086724296613702981886681268985804879172531557109284593188325356542196189886746405553201173505084006854593663911865199109793112009315858773983919570930839312807332086309839399298672265546170709133642503146239646690579336560655124495810488450704711098433394160540156606573048989601373335529016635118768418078280472430996582800379031264242837897512860139627455338893083947454771837969995558444250461369300400530634229416836199509190091189571047784891456531097291834815349044792679686951832543983499128956503168820539171177415765540719006728305317534704809242686992272655865002436102726839160711927312646934029861095728437668597632194880432106146015779330785944879188450991252540825769406227477276407308027793364742092276973854866877322514038956563412302517384294235997342185314745238416186035504449802597059905142779392332271405766616705256400871203228033582069542453497403306304526238286559827917502767567816019225308763032332435742068541341260768711276624886072701019708048500561659538074990462957206108547963503434604175132775135798778239401299421474038959298030274499597906627407989174755093464400372290477544588373047916591198310874356846424351777160115671498614301876169969744289767912639426864136720373864994745970965333335805674663105524831160898527823475320079796035057090821542457742401044909688717050348435897141032777559864211290805358384126625279345023989804745970354131285131535280903024307631747816026860524054767995362942262021862622175537539592994523026563884717230128022420340581920669690102025342062202807886843705092163144703733768061175308873178258799104866636685333038585196632668768329356180711341284645746591266519539752205738376538756797754140003725747311952368637528745594700980490852332239159863018245504650741098920556083764990432503741500072905533751002769830577864115556509516388547082929752820903512430866094378536132749556818918327024542192234375947179667767787529336479260007742110132780648769127698937887331405384120225996490656507436617065443779813990183154862859066374457439274497866204492315237196838056860263328979497518868061117681395820172467344422577620062595762470286770517578363551768725353991532451001569178692252831550893099316911527032530912886185660380329183530415333369331449043458809514358385966893305708304107956249891503289951664890571984691615032570571684292987566224408324657735697505911152599287845775288295184825325470479668270172466407362710338667366692181596517147916864102404816447119067608295301853451397375404461427396663199509874818805476028324997800924929275756599821680196919780365006769594275299814879414236770692831511442233425431646347026322603211104369675574991222059802044203582553752096868883957945152503156360690402240021447295636060519185628719954495105186497095506759404237481969581513889865626821599735281770535347537193369693231743793678180239145341102305624572270397271977859066175409823628032439258516183266481525082588089584872347113443852131314395152945729347028851689820305078175304632831484499165940301896874683156131971907555189283870468996429733959287364738700002817856414119075465026167247530951286094271760706839787786622524979725782384822859013261393133022381213842731846881293535012337412252064401842752339132778258222031225259586637174992977732648682866280731026578871760878604761048640005240208839064029819293660515534966418832371388238888280927078079448080736521520954345154011687632586461041891243154289509866003203003607709738991581090603957747825841224031353099800825294767617935624036152529461788855656682148169572099246953106868160537478963826705156727568122457731147899429669307744296364750670221823832222113464924780084186802615528564375818270425134787495553914953972793073836727641341418080866146677331131275144624671920100918894110926682848145351724421898037104109339727492501888460631076546431804750395314031921430370248469781350454283582330772588860781255039811369335315254462292950615821848772619790010833324573617573855362907200064416782118412183923936151375105338916672061672540792436816592869705671594753283240602106095887427785325225430836876682399389186776371565155824322182016798724178122438849743068682022978041822049300314439076927866475794747155197596511806986746254859799064331497496178675738053395207185196612490064748233120150347952146694468751183601394099475414326101444409273879050805570683718157705244540801727396075110515090169211321289869930426977251043751604819453326641028861997637590534754988772159072923845245807729383881325295200081383802737781355630352009674744376040371694884729182578477100113414460541941267824639924262839443201340564396745716317012052543242855812390290534226707861773743218381298830659726856497838802138605465007684566300813182865477826964582059623526911690009326633548218728725492046954725180295929159608705971623802380857001174264079157094924475698690298934386520324487417776909557989399201300017518328904747884983908761923146001794033353877517620876584961879466810352135479894034575705330733261566748301766947468280538062900517658729903054437596395399334092617247142062796418414997081811432923073778111531804351154482377978187382497509540777079892567789850057059511991310699034230022307172119135752681581057435187230227434635227554051010305026503563356419302097731715149845861363502686525767514778463538722931547573778535164513320719735883393298676083185427036456814158813935621741437735195992381523228179512346484430646116837689517416743388478893438685741241670318143628136465766970587045832805508099195311725701196870214972269177587305930043683217119647298792583997581796155061710009581761711275180484994089893001938899761027280907201888207881139446865719307791520331746026727323914353344744182303194381306616331024899821923508286458185646504369127944305620243335346651129872368150061378329526336159479437497050510457336678148040354766703613622966218001028383660293953942376424020751863796660142792809983714513491445739496186529226243133938252558786116003638081235383358924535971515141336074606636744379672293628677884384913203427438639451111099900679678131098518004615992707614590258674595767994477226982485109933833401474066551046203510988210311339709507172479415791904259310981139244814835225978433959758999030912317159542038776801278529621880591333308219603313179886897288306706645899432921975591313608280985489729379777999615017691886569070488193876775586866940399038625094837235514318633494373252601451655986472285159717329539287277904690854508370886342271671148067632885683117204601794715153717410460921234237851534652620067229067543482377948634730085750593034017118163557896149618064870298161777235894092284266908537615495471330525228832112630296857632936395952297109190999407151946320530955419946817145328990709803404770877228691701519297433415935622774983241986218378284385053870698172650050834654454383992031574562913716263606645650547381855954109112250212157321455535099679009767167453547977931152515745118912343028206539582272654960682591683627554383775642783836567701999278134731999393756384987501736319914175808317450546466828524476858337515222108786273754759034862900918650314381848326887809519258480520402437425079199111059906301669219304758030016483951257210684339240483418938477607335987463005834836503381481102139557914488641902219249012431325358050945330728355521114228997028722627252522960707034292509544286429873466562533963738203098824619379285440755603720365997437664759970178606083035213000115441169481415802299373043429781869385794319926924570092964530512460787716615050164274745474470915275019190368045336173064289775572980656299623106138500105017601991525496198856688014967296480272844535514824952519612266840179461096948865369305094970241317678402378596376027692692208221039649946015587464998378665097361094127703162637909911952433946325725925046758677973927733960462126776805513137511017814069731301998364405726863680879649929298849026758534396226560208230351950031644682122026574895886465496703021352787379970746069844690634469858700882772972775991476524920540151452101777729700805130685818251000985929998747928022087675451611104490814392117406881618771134545076473565317874413069038173115264136256296315322082517912465502677460970707907963042650922765020306089588530511476513405076713536205367736813656001345290162773751372868169356629494067755195976491302198613027575919453418719458599226772611239148750334732928042428662379483338951492072198318200697978246510887403237468299239262551288185962712565914111267830898839286920413225689650538353180746962710034721486857309154811185448338665017574552906842779948595868624352542495735066469598064853444301769477977125748550215387612366244495263795392348564398957101695235747591159888850812149503698576976909768102124471080010427106926927949242819383124340807277051264718286689419673943410580021489978386493487567589520910241537148970752280522696440260700310362660458588162462267134210215407881433749912969679127687207299211163513461916622137186944195602249899321812766849622126426749817539160593837222130550136952993065855629210208650629965382131352092000327789717927327565656054468130930786503904182662152007677795545706028417519629858286399236798402521967938608959576261178517653759236042547531297567511522524548902067137589344901469019926875997790058120504315705041039124163012736622000179087801450323087592285119269515708812421770954905430692134808735283946251921444982406386168553514893145272118318085891854313060536237146889249553724185732089077109788213754286547396653783923441974795112531241000348834270647412590274501524669498064177367678158706506899321712729173157513793805790720577487247293789998995355948182297360510608028355097550603520326188036703406148508656024963250413645303524416738599106491110959954761537351585581510434259681026122884845023834372376099944697116328362319977925590562471618197963811911561283401753463065172521666798851574315405295884767278943910712089539563554194167074989828987587104718191726211148179051241674566192625923953903036631113356591627307667407399103471996032296177492519743820511468117891167305368067192478917227158141489495297388626015164486991656354122070988207807164314180617636180092234577188583653500754712198960924655771977505159258260311871443906163515996307939264110161224303750084786198732291500989788141878192733066286274971647365608294334494075801989701882056654078922862770593471011530168042781816421895253373442279275124558320047134667693457536389756832732877017216391814867937621891253708135631878747322583112211503411289178256443814476098595635071507972050452438498495662254983670638286941875720015233921067178899047482362459329712008288918772017353096318493946084954874088135358483328161740545088748020594926604360570979298776764252660374106758536845722675692306285744229700639415378490804586768814629801169836328022615356421795412573725698965122308890076412093677071383721064157915189446551427959191221632137719871187434226351818796320627754253321834250543350312138846769750491155535546627351840048558777822948557454320369922754608524250312561858475619410398085242797751172200332287366358794449795054754079343684682600960920483300914006844591734212716084291665300236138647899723041577965266976226150566551694522759821161704698345912172211809965832270457189189493830980105755607498013510461300023649860269662396573356213801057527069966567007932845082076343981061883162940079371585490655127272832731920784736415463807625855737734229962038027105958988390458445465554303478418964088834214543167338838348995876162247196388720776135957990803047767239994406595197813836706725027392363538605882999607549717945822518240517927818487806540673447017883883635907947407899034983072002312760833442883587978647555530088525132929815029163537711411682578638834245683560344398401854953478889198585161339873724564503419286508433352828110968586208017411911068646667466217633198951325427413403634182718452258718843842202403866678340179940036305702591854728417354993847362875316057293073796587603070906976057652299151820370695148264308394677120398671900180429727321303235962904018649034935849847214994712436450803353761760783621559919737662309096171574936693698248338242719410857914859992610561045525152126519484168333748818954223706078098193686497870277222971444955078680094157484984463824637399445035572813236850129599355245947149692903779774680680505124722012023105433045894495451024485438600238418874603922082068724280566174029578143702732697684837638068193974475183411844928684764346077456773902629949801996375577559394479466594733103709824475621708605802991210589322798640683517810925019973897774356576331116132660449784962992359410160286954085366772891038368391939022394358412451618409684122962537349735240970614347530808438226295188768015055188797400384668119184200295003686089714013279865278601128791558506796103970799723357090537249170959497376943725619482785261834805895062963073110870429970251446298001168173217477501234795624150903086740261591550034598747768301577735893865659364019063532731426380724320059732067236079241869858503617555342320786026278701394532558997166910381039200586443612905256876113719482424147618953338391956392114281292275061787578390506351070660060308827847600943304710789529514543686625876290822561128373617767680223007025572172776677982927679547889923943024444025777477989819398509538532566470054275557844546744273102066895346687887551839248509317265667232388608932940483816896536524134419267416497469823645114802568905860065748862202990511917641675463472496431541762408384219437116112957135217339110884042034763026188660216098105454572400558771806701242314735767169831749993807088801701201222399143507122016591973766545294459189546456151788440789744925349878449056630364513234476300155820825972734755262160459755532936770859537990560947104251063699851518471899498636761785804361032151475989647131803251198320976410578028416274914510897000729632872806489360992701309399479031313149116671162763220759316399042388237241461770561706808013072781858751301413795218096532164540530137976319098882792908296137365771835064211413553817984796334961382250433914030908821163592499545614794980491181472367183352470443924063366530609811573594173288378772332952208420108036078858044143211331172861110375646594983429760901016963352338768708971295330941940178831402390056991857681501965599398878471745070921106837835835340474320361334501215745248319858015984753507689267142769297824451418041689782159929179459637405325692208048057719969040106623543979580372831982468603133516920727711854021207389422486190933038027127210622298309328645504763599336554665500039581750949229202323278797810155739899053898905460004090192264531109751291191477269793747035067882130654164552534235041132630214755525858034898621403439951515036754551665048886904330964498774217643460977069404729396725285271126754945981393562353697363033824482003700509515176360201359815314850560580761930608412943042356203348794062099538119655769910267745230898101524231460293886479785488763887657261190150212480370502274003517890446863131400466416788942476646993270112085762956866584987080247597466600902219353378892540994767387496943324822430777336797252771167342790865162805615316058874605935892717311306415386363835299273980711924080435883041755875701940016688887189280486978714124146601509814732648361197546592022572052088107942039479400234668241166441784547898588129323337317938999082514845397399294694445137640830938169676934594136497619027020368013445509396180723420300174361558760129928143462024218842835422629259091546118177062575116621602353001674581348776848368348229247817838035277980124848319175520607568484127372734195635092823652274894940798128320191877267800870701783026386182223687662766253837607552238724494095608741167440444755716725941257017382349901669886867932089129452218879481372779900880690366191764861080509359375562624481404511546765224184481365536380994052266603708132506379882356232689487567444733069731655426213326837255358817841284903419431944254714974475340008802413784158136858297816025483735129137643900534329501080968797836726130397016643091337345126660746378571116820383770117896877500715655460489879587702197007532879885904739178158281889316208090043333191504705577889200058256873449624800222947325355064386592070292181591025529590958975029244093599006500929775240048084003865770289544473618124100193967692451791433411192118113772609312705106074722021307706064074893402961311501785917699249355212133924240089572744792029950568649348529437050409400449212828954203653471903890050417285177990058412890427183760968722586530372416025437455723542466570038404192587208370762022195955592654654047965969393764091571028454807595519961257268993601571163622735816778847277481875254300778252692334783886528537239965384682669992335632659785567478350257707596867048736340721535745392741386230020114754205724122284915069861107310304105848615494532407368366881123029750357420477975099305282618681953589028783504727788395531141286702316928831324986306895083882086931867175212301401712120587682959302842630280960716629217903913450968191682966551796724775993030482701777477029934130472531351332669835800988025898886876339936106031407327758355609269722142831681089610769160306380087851441062878975055582375259418017338189277891081422864193494265691598194610427053781456069192764662673872369001122904929435486157180740392473959804229191089318356116385909393296629030380364170903196474086870844705488354881502232572101117057064377856204865494119088796180161765451746431415009922510117278255498988458917836575592481929483157785862201137760191892459092815133829846709073810284973277130580577853465178853169224780936165796459492445497830509693869319839264341535937367154876942299672924982766832930118998228608986802842692973950732742665601443913253021344388953364384075695257257759498661287428531186980209676862040491211453002100013336550694483053607472679062258505442610133154374463195161194841051279629005951696723227269739846226828482798586851540771143443879313385942299778761706025162344172199284157305003290897545089762452615862194948105960285259960395583902390465310271918604426644107948466068015929169097710784874943606885862935466667517233123177311418127517218798946574227462801807872013442310379360876911382495554630257943104094164065901378955301152575254085018082619153338433252544685349026349277195225873757038026854820981212388258081286492019902724476813602803951515183005124839998886343828810895990081140189464800768264595559714328163814179240833631465938381474427079526456253871518599110535893288104408043381894886125819742597392749408671837841908481538073308647605249769495047660602944590684892149639461436396853629138440226826196421665291350272892792977074761167689426918024548559291917567577861754316867826403067980003484402173167205281273776682537106072643080895115392733905099933532116403698644796713765148480210752903201993056708580639373450992107544669473275920531584198790928277548478947507809152242684207547381947577255589124320289816488842707514095625389443854866226686693535896008633347240308418898352905279320366482132964513625341808167601467111928822950514207520507117376759357242621430365944357010590510498398180687298176056941262415582830731380018114826269403890321737639310965463280866479549613446425657169333385839676351955088622628156096239551746310054193035284122609595632756847954113288846463230823918036013115256835192400900047811637270068250030176828757838529776113683273979939455661485197861379959470021876782825695745493147015113678879112476889562763557860684147225425524207868187540157504692623082625542113798249151644629075656746364323596388793553360157353162911602606019220295206513215588736745270391936847231560294790340744303589045536473388998194916526354479300481187236689466272671022969677671436033456028370829342986677794762504551440431431525876235333267413971792063529461265536691521613349356707304129923882819277411672643001025849303870167846886346626798575992848427597592843610764037940999176814097699928143433207206134920606579910480075852310823334096296495988070176148852348023624745618884101322732177070020659672437928667813904885109562786101973826396738395693940851853779746057524187551636282928234408674231184380484804952440667670332370225437448754382161161970472410627119199804952977087211814058530701772267095498059994888789255945828937654090402165236030374285324693341435544878823063456266229103217252785759258211441804764635974105880021448384648426422602262646883317093298200375942367922625631099704587667283902915518334251847837473537582327348334938283805624726306699528485091599708449641563238253233859687885289815219723397970649907269265961430794738436249369838087659964503676461786943579151625248331868887627841935936930604763560980642979880260843414301892181756519934238940468951532843624064208924286120035987606773759717680579310250928315249063942120499371093717773541820316358382625085849572396836213939887806281351632578439727641507816125730376548561615418313009682538052479033359416672656363478949240821155930873035291348198487126756188032686283220433536081910295025610564900595396527775326404103496339233085709518158310356762330075877814592093584988756910940036022493850318388694754558312086849545561646528874100006256457920859913240928716490842251897412926307984282848130703660309143270907946409226182047075741600789027228635008921945570480962335421797662484302482256665941458799691568845301935350058676537667334701831651883103663268468801452459261168393584386354261902764114656827382885101980717378630723942234363790755351518930122498647768696377698356391048444994052100704355683664405611672976280485905187733441424288936968456444297338315139534257761336293763341333870930608810292880414885238196920083709686789421444886724454681227733316895589204492047640456829933444324846521082689428878626912899022432251700144977539023906543890751557858449594691397088363811880609463409876568058470278285850924970914790543074485743778656795538049578815443656869778757655565266128704973159383056939108923963560076045754782712421440140466284683538196424209848448881124201972733817011169313425738253900854135030502343057776337367637083778606886808239221337086785673505960163133952829402554739792532219537817224688368774087438902585136442832175600483578240776153777964490439024495849167320295479066436349712762138867891126944126221223601691603612497881049070810666536388103276412057599892604213910698220227635692840171687867980169243486142362640832076450555228609500414943341179836284641682557696479217784833399594500012219521052682602591403127098748882289392615127893899079713896345655909499575569430187071614661383234603783888134474331816181600331811611950783565939732190597371445013727513238882855440801546219336642265664684578872540537249508121161778858709733576275441736092665360698848729675231440570545924643223661227847579850197545977998862358183862485119730714441184931276979183862661406573224041869430855651618600024533183408266330996558715591834672832789052704041707954513789135728829952459346566204291500269555276615700976660921548413153271928823761761735495402652640403488467669755123239368027274534176033327850096529976836473335904121489084644262577712207776728057219595988220339821208601385265058157708069158098797667110899122392165613503218316307511179257948691469851838732863049982711182958352256771079538974639754884174815130760624757491968540810755047150679465710674177080138828969646351869596130031226130843149621849873953397832171420179395937737838482117101314084340515942716569775254426232332550399626526278423785151695678382367547288936699394478658095013541173427119981167805087452734043612663554867512183865945740065399988280324778552099066904216773207035010182571132110472606197094867561180201564739795241107488652815374605951797556041231973068265173129034789256783944118086857156787168277998564739179212333211819324722760129164191214898922731171487583735445640786367851070238046559951135687416132114434018729307978379114750800674559620404187215290965266016804344604706698308915952569214268845231137461484608057349944117359152472861573938378415406371314331837608115305966418899064879667391373814358003044983198297541008413039362596771567445976060058578163258717241977993949711371488992567325050757782399053535915773694119182606873300886169734374583380776234151289505558860139008219696597259980714727384883245216182403893291042987486663767893286926154641794222196164260371015676419244859747247203534312895090531068517922153389332163382327996241119993841243710331780737280211817030135999416803471201760094358395071550261608788267531008172318944057983377552797819930306829696797752780915312421296823847250346434766760893629705996913870762510524334598879148302930610276309803415691879912435832707095304445942995912160042231351319758575430986061574017506120984650354516035195078373077865565943200842289962788110727029468563661444654755943545301024809690353543844693431584332275555522232172421171643932516261489335877583598886654168571767929071518225624123353797043421709648951780564902478232302239172638386710942828795199960962932083137319050722092795333671463302083642618250182426523215930533548488325922491857331188065497447210920810474639081441216081496221999869050315481078584345161283523896307580266533689789915942070328630251955774144736546172909013924923571519834185329388150583119517374783325001662687954192246788695030114086967981688961188633413290744456593496937596332332281085512251077703086578242867002034151681837109983352529525542774090274941010260413126455168386248904612084635174297292202318384276546672907724021528690467837349025957378167373651321804292678402103420095238483403985283519645868300812364929160417302846687017086416175879398596415689552880942939212029577334510303743124743483797330292770059004910926358196927156968686897575299517988242356584331451429226386351080338694963297438800193706367928624386804315958925067059085410333424297987957958115802859886301330490893146880094303372059689677797116957133692290936295604973066068481918689374797403178969358670037364533507289354649049933671425535655180504938111293226901700604685419452752592680779535996256790402328784457081903400501204102181906756164767547787116941869131310989776548531690108916452278834478611487764923145086556272098088358413540509159732108637771572199133551318104076688217301172459465481225835961205158140105227596424248914378962153075150667999891950332391857748249632910230375639668678906194711301151976964410642326400167606897091509052463026966127291282783697318558229565796939930436249861595792166271610951942282758415470743154509545872273493348136130555143221155681470245802028026854705902837255710961766892703597764547387785345523117613464697621668127764606225722090308465092276748298326570677399030613364988303422197574145906939961175294222402896839681943030966454818133824208988452050465588152094074255607198135356923817343859730211418139926119473927163452647814513728086751002660268498552184360749253048015146432173698681380212064331659179062111639070050478497035071434528228756295138998726335385703055962282335498068304178165944399329983179551088448369163790052148247323041621890463408428700688237180941256441995521065712596508495364605461003378749769393757601389111612139686251713403463188923604770832469316732862887854665263561187812577115668541566145457227112587001794320412672745593880844318184662654078517611799281242326551135770376403876707323481041972082881899744395685792265034412850676398234210509739005821067812672834107006343067620164797985772238595473305117876972764953419549485365749281069472165858480725558278000006726660350167542497779392642919680957111549726417237987031809174242229050338255545998920138831923564023021234079213584623256705359370274205359651796636848276053461156464675317099167597155240164385532417475272626333358343949228050986032064426735844604189605704378836513258273286271058291701184458356268678319662424313985077692995842582214658159917511352872520125190661766634905404431551617966776371414460175546430329929691493018460191288717450789104729097292159323751047527456738026619531705931718766104823764847310657367019938763797014703776914814728162720832149253331614292847885690899364041423797657088989018634575797816719897044511196608754498946522340294628445061720809815819152790810157086452894562845843228082828497852664752835860121569708522451734170399384456137864418462535862078132533047772058129911039200686135239127030386331127407898509415137545391140168047208127244417958977133322082162753203212108514302966390286027768856270031025362050462194011741063711176294542935280219524027236687945652161855989029280362896342419382229709503347666949453580099377278418811811532061187745891820649597818327390144178959190314769496804028861412896733303762408806850932443000799601703319909304062310910070856346623171445941569098692511643183402617798371110104763462621893173554907489737046518919463772637422552991259998806403101561760167543443629423925699791252532711681615803438376305855422048377872924406947796541611910421808703993649297126466077298658354784351218542974154134389379621531619642410107851580128568544743883069674819948773663176490450268130680090154890680524407496032315103400408901682239295286931792980558161662260177199242310187680912031591213035049620736251352461789129657176560026534459839119268967366732655003049086737442544676170718971406463314293704910034380588298378389276117497149497700981746428412397746115015157295685023421535554628242842490725481735262547666358030295131708967157454998977415796879614355845260188540390714684693555647028669183981943576062047501228648908866927586903090559922561095949204610620958146581886546116796085892744794568328011276586780115867933587059746593666196620756457641046877251575871299077092522297595625023294804119798568356137678336405673365549422703723786246559917418473137209342433333473459146194099582942831948626913040300117115652271672404817325788549639506203676175154207460821840908012832470149302297947206997642265205790364988042972178001653532680728561528818327312737593755213870555542863535163668859655875272361114129008586181853742233317647905613345390873326163979389794883318131681862881335228198289708506325865674521061205043993010608771031388598380908417601529745307080161581339099628660335599338912793027173815336677171758887127307195924430816483149881220176755050221784253721693442713009130560514598271556596095757066245951368776430658184611927624113587621667966433869688795479621623187858787074854659932158527512838514585673724557192850479239028699059309945465471595252426728732856305533644216598861246564741673330808789589732488247471765392316196024769502538740962907199897253502459484771677936353561965074806043352082556964159924859442478160848726856553081516238125514847327173603479789483310680432013086587755265026856060642429673356753349894512004769104319600006474237090158259176542964053375179317832566340524298145253052886076693006884118137219504427876987333072866345818768583709228004166943980212262124584295070326457115471122513696431170206146189537939069496059384390957955597913796144279417233187500225382376709613025032545420514632109909195750243808296558257231291980388715435350923507818896743720268483952713905827994872190491697205031962759607166264180400139752220634195796368545600028216414683090935271389714533621637866622711313254014103376922876105868545002377066763619032837416250371953656506212479699915222088299746703167321426354648774133902390201011080169497337151290501813854596798581218944681193279613437632218926532312756656837517759641009886821658194463540224659729436875817327606256718133191644656127679762710502595541094219149249615073313973878650781109138690177324403172745942553261144800572654987649524296464852687824372845249648410393319360980869776115251563403258457238965367237774741327993978006425316751529118619833259012401061704370161958081137328574254678627622071697018732774828188531040916193733682845061181465995460633623130748480721481477064032236837880672184186107044617809119647647110969456179092775417911876859168695040962202179211876523482761945520229201615353944379072069305682636503241167277222332715066452256436872217388484430615925364364371369465978820517241688730309029869473274502525897822908770537419038362096559550682008634160824116408536346591450366807443034576742001959664075171726725226511449146188242302913450302229338358879904207700241839082483249098221496780805233372780871312009394422790383237599117395493237422398179113423418014692997049149973931102389515999917663531571140486697500856706930994635938829456245133213342186192339084093831772789368940065853447584046345897506138203268870820202796315163867124268331354094449637178650342450397829799192386485040260101873802554929301863414720765343268647677260343196092373211453096885244789520396679211719710382588149233526551065494129257039723560872047519620033037287451382258210758646885105267356442223856668433968863846559393255110028207954784630276281908198089599999225520038452886607912930010519662052590200312500684022421625189121908530728268226501743466112007435391465572617067006534656428414536479152705470235579212403925372999287504131849667302909485900677600499222462386618215852182888117355058183579897977612261730584667610589198755103016900763205881714245843441538011287409929069792007035734624949744577661294429436801376515095130422866843278586181278741621273304075192407980869337014006243261474229394304273733738045651204212579918644453060441763981303475728324185643795928177617554447539344239755189977937823423459673102428727908943511581877895719191200939170237157018016125342086923970157935896249755189635926076153830638296191768447971633144707403321551432986256775297687351094209512208454922452843196241446888579217810744946914702758764614583420398919099988403615083261839969094831973382614251775708110680013060471269155863244784020365668512980101981950431702215573104301438455307587615675874831661252126337157882970279518422586886284948597467794290081725450690368768669885722034721265486656793539130847990123973695240537457748966716527544780233528632038184540194653531501126348430060070137642782223840626223769181372664758376004666224784272102615254172186502724851407388764649195479123031318751649011736878939412240749275285752196023664716684688565941533093474205412265156294350904316695906753864930724849710498594051552437550866039666211699143061190659356320423678479478000742911259189632087200794307285753326681514556508795266932921020263163666956280292218552675636104510453679899917099036589287041228968753335814623928021047319935698560989169368146899958596965703818137106798068459097016716891308261275609051486948031570777323917061271135940174829245282492929319015608926595750334726992111859870739632553536649724607534411367875988851356202573424815211589184472823894891544590190205643005527145946868134570565999551368885279507734068843697474922404437140784977229690341095716963668614589771382085060390277556316635838142022881789492631435034809638549483965230058987275030903847424273748444037567099810096524743022745984459067691529169151588584196679391294642388728541377899797413640858742256232482736843004915399470534822491159326653815816615866429468396276378500196314583707499728635984194518559678945587875579480984553811899547600260286122357672354002055675939351490844935264379355247106099771839269610540281984886878918674117798136297039136877695634463588683824070726618727315000457857663496464675920745815664179221280166564161398827700163469286621191997284160626568861644136459668871519076171942746454284354641199060063765761828094674581577597143044158209632967822464279167205171865241251441289642996487189652824664037112320541729998068394585008824278909327270407511960312917926085106923226001628641547900498833900862375115272368622172393252132394684756794026958462858797211287723589745990408980632175345290950134778648775005340884132186120118839343579568610211126158603503467448308009332854538016807266877977825836033403451260920315672008387918800920804817825830960925943183468508868081490120051699125311956074818958946565191301412060477850241484593194080308347567036051823117955353010960215728966699635207055804305762291008955322380080462455131072856218682728922316844107668216935881298851072054645331917691244532656600026375480794781276331877832608882592399418038712713461521102659417343681965812343966753054271671256895268006972291776854721984954050863214156617461697604128675002303472969902881743594129364151112752880587737569849698088278138789699992527521722530905721578168822075450387779431720656171747654553546902720368215766955776020670724560350058442629741334344335671832748766256577569452856742079191111053137985654647720803463034390466698802876206670991457220663439000169541603291408560834615144729092537026053849179280600346166820548849517380077407089563286993255270805184743643584941623006012163492960326995955340664422190572621859865286731376027077607660608999975988977161502634486937111439125113068719855461410585825383817789196215506622764657652767540597014047869741094299305006400659454055490338411180303014504558755188420994381932190161458167942526585178106547058594460637336962963674709902418645735487207382227032627744366375909135992754270846683151600859899290767875147439292466334138705462232777162019668208496316317093279944088375108389975495876697051856620864462680718872089741984044294779990403532444398539284625773055782076529824175413501938508156781675226795239420185273034757897570202473260271403305731524067839719975532320747525976894620951661280642603340897004906820468605435698117981957751158327169979987210179487260138885917872010844837302944029894835242725318606452135579536245694177709237669434294940665237762156954521537188791707194856265483678604594335014653220725004808706173780421981403164855547648426126767755736798838978059193262521321398977809003904446649632702432326783687740098556829268779614615143929827294877350816832446726663320884370354679365923568501751364590884220120164853416807244802611401074022390804790027453932789476021435841823547633509232839504466254123170299859941056735337478011064701086802919226619599285094310401527276208974565200146347955918242620326979246495898949117530169992612452549553932121896545452570302683634228715482029776163592710320328560778996514824467859658284398311256260724390447422804394175878766481496535433532442218694421420883622950566242332013048175883226424482308501870864559627147403678710934222211747276627842414042039713490524975930342201006474909764771543483194833817079181281974803552866973999593309743135436029849695256297171271872363631614115690306083783838287663187279244686969661398506347691065579927438558924508269864085924141285668378147502832579557974192030996585830580129974214195231902783237112105597538807574484756448608156875169785124669061722934456552474645664064689025550872266429641863611088535881679970418808175716951415841856243232726625469734100014720301219097661878576362835278890244609255954400659957773927379370184606489859005538055960914618033779361880885080672937618993005366441040527267897661777061753859137865768017711911802755419474818909665379387840764131710846325216311975919122034337229666934369459689889461986478528506787720851405099142196999496466888858957975555889448352769683587703753938694292071744819569565112019377029333620086998547914012253274234561182372310394676514860567360300017785132546299366178815286347977706942103353587545542407829186959787637645818079512097286824780440916369705968111449389863658631096438383805275384725218607886671894499350403837697544148240221773979451655132874170406607290924759631753876925807793655526590591400753146776270279583239060656954639062710770659950893889033697704268885276553464802856957444377768822778753978438811068173687909457310912555851557795532578195056832462044390320482141563589094630618775198614711067455606683561688098529327859094699075761085663322508315867218839002478139970259098709807739724208750421870070535507583120189940450540602179095886428136205180773120809781024234837185277704095264422908198576107447987345079348079083575530842082839570427463175015664664333617390013323033630469053025923462696715164126799485263857741232789894831754955261226509418503446874202477224372248361634603813864348313626193945831983088210508821225151103154447350225620376608837624163985680339880981591603822831178985340496130711412733497656620210372798527396556333011588360178746998728256775147623899569576799300044833126614326785980435968334611288751209898600737876763987607498998584158056280139992257883389489548757929310459793438884627403975134907869282521532714952714744324018701588806660286489740778844585050008580459522460797785113532331880466012188206806817315805923381177475381719043576448009478849247477839372502793750588440744068486981751439085575153811781244204769261200857033425634387566937756415748639314308658683378719602893139380944924477927356613882357544604761281961997851578232360731367733691825334364103810475049935206086370067811524966509202533546236689786316516519369186929598117863313705806027548038311457596941714388396121473344550590126772815892015529115135540319941152713579124019342709093503268698273706872057142304761110041703280853003863744504896246633921574713351350700800124319229038062031469587424008748507614885636384444400552029196762876625534241864393288936652016524538778473680501545707684611208840479838638955596076973952563951111586113603592052522834227493559303641423655886958390036533286223881349643626386929204057762028701155166642896554338274142533964430251223917370379006380963350303323199918742330468480368739561084442457847382891158872803920352181127105469053269824960005776504119573211650336052814461694229921832522583178741888352970547100369705726593199767246515097248246428287041278315157842934181389798881375348092624693052483407631404365433927102597892698376022921397317240938508605915823235668497901902713499623567951573388975637202156050585348148300768367510387247638759370839566290575507130534007437745154152160288349956921358235266928203938656391240132735734209282335129857849469480442106922025679309819275006674942757306675729446752407227879238355315657302215296969754253269916765094313989521964880507182951538880989212784449412860652459399056937140198261204443302103540714571560211053405285660819084856215037616074457721227570731008731787407712558732463993986090087148349188883690184564317007545758450766138933608700111347874270860574172160856454836965134028342334304141265830428688107806985616053952371667923711329225453471119564716413443152503791292872442278908685652378124352271008924714382582325366456606534315729588796153289518934283164687286525562272037858023084265052560345728711787398367100103823995639526287436163879701134367897914254665535145695799746345268845260841293934977264457936119463310957870780908697453700280030449621038998756402040728334886602140909320114881039890824903836909675511863259813525723700288749949737622189985588875529722670196545064312935556116838557936789373301599428744148951899613600807008785656857078522065881488198237619163398236052616644006158128836644296116008753095493511452385633283375172320797120889792309076230873474024391495939027856342109888326849185886997897006861411586416903953788427255847611556871050863322314743942837439187103479409226634410708332878173363113255516385622337410268146944623980472213566276936827049694917138739992479353230832472278289633905599316690310849898652879676892375051027568520925039563457164903719632143405719842696036752876400662879440069847942439755959512120687328987391964607843389126838896701642196273983634482664904629923794621227164612763729115003253825881799073493955634709773229056857100598623221534960873943029664763709891813518564023441730089328223188211437009694433949687964505572203922707890650751556543963601180953498838132273013774488017533773788872125190717398341603119901134059646958798276722528264672023619360062162765424611975386801529656654402349363373319087979333470457362890954069031595976321709660008706378038812696390594383274235565179194749486782829443542306149159426905618545853144763347043772027922373966561786366956906997493444821435797060027863816708328396798290952494384832403413167475185063367326779297024344812077359460631132537121596976154856475461574748222125915001573794506857083125134091565279867759668811815672526124985550227971144637231979298902104823359401086319332476359103667021301853258983921972650435503707404919743678978825552806354593825985627957528937768368857066174038629610793218292351391527483320150069041072579284716139686387229797565657019339996800982620541243412970619270609175661763518169777406255486245119938773545618152786159827660150772448847208906861281954732219703145152584557670150224654231366619724074083101809552783791549887755036089596386011175200223166618658149949872749383848237143555281448488719498750418263076107119790360693438805492658726220236584805553664035590924511370537234403820908114266426629264431189842073834625250892747406643687722358124197219021054061334023384362493198844262798247323201064566234451950021785825698687785049024412199755686046506203462454918661186984609873530399083487321018655071771863730531775496374385221579185493870976867806872579606442403164876676081440364898954958552485715742449200614955149441749492155194481904609737810074888737089453694091626458267516582273259864661672207916348495603972375233517247889829367427004434274945039585969740995967363605757343361070385814826970287996291993258324257434967883411004478239072680837870642938055445720427165651505035967019798160227536606472158906036313729419105112839976799037510221462847725670335416620604425531291806884246987875820230773799031523412792156855469470790904903154087870558609893862597151555903262379679520257630039959069188172413450745603265340800247440252749950827453653745126937352889278040171626089575850197914674976400619268383624680969241014665263348463371141906130986847694609314363187687188662702540173976422190427696715297451115770673871738864579587693761466756548627712135061758531655901748619255601589594248790546167524868644252668563166391519647156093345498576142091126632913773790953617077602891173081881382671891330146292915782231373365155043750427700458109697476059556370199801809553369728769993565503659495561640895617548879258248458006923835313254769854370181225762860645773722653040230140945722426022056998823631393677958638944736750471247655298454893488736913614436107041438122868090287973836588047083216981912958998778286071269783045210323749097722438832340708793003311771616557336175902958226986158266604656553088567568309579720807180351876162838013374246526314408433904593474176183069545317626670728443962660026826128132088143266365188239168833906149450153322864522119815393583519434300183946408646859490072137138783915299901686430879695521562846230544811953009183544564779337301138174217937953698444104307242798778298511812583675678979597079190229146231917361169365754921595177630132212566458876741387350275906624590437278636105561073414603625475736815355168316874452714618331126959678917249670010184996254260983829768050910320714073991275720353293226160149492859058373892042078633226024740202627865132797405874393741219081584377567089230996135770977623925269745246708126181692043486166511601256480878765994992457265640088685480243144224911770692249328713061356838748507925329967455157096052272564897436900510570415891426309576075394738035296870527194505870686342945132051149251358490757716573915475899232146830668897349127505233409085028233575211982933977791050322407753075913763929360293470629579472154500109610805731985932219325669706771781564424510872222328599082737580869054764603258952105863760344786165619754151110084742047160739349279435211205388679037153953572470817726918922396795817094733802591979624601804865102567402809215493122193570443024447735277881703412291644400608967943167289762292527853243639771873017638277121611767312491732170866384022207272396109687249784372660511200824920085419713912323826481182955061791944259358179298152314245815434561843547133386496938043365392993691670677880025250110983159141313788078911830576595523528682057014268226352460017683966800879679632409848324152016472204487020141561592468047939176718417342646466715475267229291052485897824070167851088029258439027117960836970395735030236066295947652045533481578080901464883216788666130198121027562570406960386181371269481839928267171085066405834524351075876906732179565546298978832802500370468062380852521551648951463363182814827676447303119647639429982902698397125459465890432130158950665314457049107074759758903915525403196918843029170180730851781443666996043739707071755465656863905418574302798848474698709913909547855056996625306659959014748690334841089115931055981303361929777445684518136261458982747383182905095050521639735299449303325235040910426422295851976606080906331732672174079494165329149677422250113189817935308676993280416635613944656441226503061158553484514893464805286372047004786568615478738922808249246626729269238963461554632879524978347614124567480627893296498549520988806257674429735836865729390948346131720391940826920873208318343396764068590890481230891115227467062187335505994274387259056873460370384203485218647544260829077984661176502311374098201441557340138320286827094690570422658129339203434733840503808154459641708124539027995489173644734247686772276215088850410192780182730681454499880772994962511896305714185914538814144219055890981713748122778939532811008422191770014844556951092019778659954648893335496990170328530755574013097409587778146674989534234715509968998700640347012456579014219673114797027999757642795832518137846583587705992329365691740687585347736784706493854452819685345065766215794063951904053495362758551353286644769900581261012110795464422629468347824162847096069341987325816525622210090813287738848107183097222920873249148944659038900787752299244625702787392070634461921687074400693005395198210032170857264285279537835739460329054110069792155008642309105473839373849486603270394934920319161792892701340237330581096358504224635780304018847908698439198831640087574775645166251723010776696144159654796278668543513022855734149140334640903846118004416399157419152212822391689661561421139180621211424144672905521214283505040803180206957888652580262290190378440447689740137899344092925328589273027531520257115727083817103778244417085576021715668504786339538506603497999669232781183601209611814268075054456372627399416664100372491309295313760028518496806132231612066721100038915823886661714839172311243973075005814152896536826898872640598212642531281339036007459570558497294147287743694082581807197971589521456108533815195532529105522708795421553052641923903478881868833042558071386353533379714017721166959644604106037624026684389726601870055027686377977274503670639471002292560697298567308183553562361487890613089175088163205844073285875696532500660470502367465513062007410427110941564283882509513986157353148616847682687392420682622303733266644675536976966778828481640700791036544270060375385361327222544153758056567920191630645357285526130989274775427790406630881320104341759239075880100624421657170853940993868884225452816911386580556239021578758609747243640229266832293562491430197053636171134049680384334577402572464816048065967588285868484450006067194875157547587655052517390734551675682455767403334651620061420362417477475359299384530553439538688535984622874220203359493193548435903823751799875875387512532865351529702088175163552415939415047543002898623220716175028814468179688647169338934604904928783731656802089260922274203542310064833314175661832056607057559774186703713696663425090238624185402294236403873505763687401758966750787672528993589326031667421093470351636330464647938390270619885487139936376679108794266298733943267063520125691303114095526999701359300108257149154888263738081744744219174370325993152599622857164995152764024483385731865470983495398573963934740719711752210256114645174898321069801780923684446608330664844447661744085057065822399751632471151351618415435697244551480128275708329382428697289633457776921872844156252650976934271550543789267732433326900134991823184018141370393072181950226919804302837185804177024901442676805796867587882193799649123010522997488219263824211985008483724692069161180531850740319053678486281685921532750707317805730098190625501256871141978678286789715853220262091057499064345810018501417373357479746279236130973663578308652195476767935953009626785158597383837277045475386074949903775144019384985416198767527437430732167552986284103187145209414299800561074844400632054499405085002981568397383791991791199113792084358421879068091852784576115212122926553308688752737955414607756587986762020744518390298753211216955102305272592329018571313220852148552246807944699989174701903552204954325333240726874438336747685316547648005047371082088897576254968302708178566582428500417284376635520102665758046006903154271315412349379636526345482807099388867146243602426032635165281462471188727053306497007511300833937418989916124112953541047289554487496970092248810005466225781279075194029271735989645444556420650856115382908912163709528605604804038589888741833805306044389062346184453689452937250150960272340526215022079603261790279414191498914936311753516547554823760167244053032361970918391537826780094070754226823264842172041578903114841691637033939243497763703416554803525989410075951382731885693583556319656695914304785822592617630666515084242757631531405639345330858939512986579950062259651208557833396074484685201295168186886084022480743220724239106125197916396463521182273512827061684408205274300815749644875025793050160895391987149243466708882439200883741253272602266733719795277201567082035974236828592467066956169120877021879414051997926606310859775508199954887258303772064363530479670367668136635864435229209559072857136501515980571881735558091859230810167153097261449735735421902692133084781397166788481442971139955664371711299311356564278570185891562202647790829655076115233893768671848323837730901737628624909121100834374611859247474852041195592462774723807100311744419694023154486000787573512564074575725898144608151526152417072800987827567840923422707881570780691560421601405581323520881341739272569765613930195919720137863442584731629342483173180080330787629284510529521459226158614799527797150672086895377344760262839363054294099841702983531069325065816043693661390320815757124837365031504881482137315345986229528625063862845203634819262640732807552378435374146606684616387765101439677428759192213743252624622258445237995288074139489277400117607317313715358411241375833492724913492450591134847789409555476780770746171436123339014891653456749569365652046850874373326689048748297996914914359476652654929581713250203364578211722134326445496905134524498463415519369191835516315165802202627734056158818135252417874378872218679329535368119127285452464481085157269981729279970945023422324315739065552315161419456250707367747355893276950789360348145453474180044087718921849444470808054353357824766260109790397896651571734417247397639212545148625646941690894410117867263860755438477831096001297871698305288912383558930057768825677298109539033494304283975864710575038606964372751003143528452959379572920721509234789075782365443663751528829724048421155531552191493730923484317821146823060446627813648127342090079646723166870013315816434106692796788344608058952077085197466297749406669812169972264189199131056222341396681093946231270052228826869684940060921505307968298643850168875311273774914735975200028041896975073586546803570165334510602741813310668720415261792894808629998786504847389985376465797834154355660198633718035868239975839641284100036387538797823862798070087669366188593110530211172604314316648256659759283315981894535011378915457973609570049251711315474299745397632067440374899630085704639781373867220887767164698002711698732534746865201827145640310990602928091914590619483194144323950277394357287022514078650142619374725035795434972398524566385151206613538521242095650352948633978816979311348751011179374619836134326421943425921701343061088313786004561223916477865178818698989203936052368285350669854637801851422264898081637212863848674397175028749902258827061716665944005303812450252987819287261562358182514718287356430400053775341036353867749572832029512835949858808867393177159905794147329425643001692789562293919515607524027109317217928631303518143317845053140595248135637790441885533265668087097926875190914072651218730299806978676680190979781459465072209949051992388271527825571186397304250030361678988940648304593605513820908406986643778151474257944804148999140185933322771573626639542641807226032958376400404117959619251898679916419317866108291770709180740308393994045362494805066538990723092918534167307472068704967930963852628551444214908003404112558488171043966029779565300850797241485758516013610623431765461243379339480085127912816568976581184791798946083629344759812942120096269121744908588113257761910797346048363598621549537745663154391697712443625899986374976209611455566200926944146669645188556561903251606589524464140090152767513839625386631592501826794632289895880451979278413513565591688026561537523526477387369574020781539974336062559126919258000591315913118368617106476049332960593229039443119147017868519401507239447856534007374812914078746806299709465431865403309119180650561195271104031422204027878467257263802488225002818263370587880147689654417869634533408964926220965537543057559080201212659359169182298773662414150196643943087766186447548500331351775813134005850319298181081749082916691233730694971413770450773446119236966558407934577491326270531167775756185824726051495343975468793919947268627467456145565968819607993380227080968225075782086810735364017386146586686543591854232393505030087779954363933516669260765778105439841752539100750749285727732454963158176528620753786699300010659454981371054117647204999793836587564363838276579460918865114818265430350650396551027510020427342987711178093679337386810926929105228716153155364752685238956212099094166102989394588495054701589867525307295539650991260224816890348139038648483312869437184695592157063729887316898398491236559625660376916467560667600841989007339328179274039375705514533410183887285504800112225891997145520263757481733713270684432749316359703489787618869901192924937112685389582473432663064882174403656553937581473319625500435853803527391761173207057588825461863034667403230357953931434017411323343950584106236482043324444349282879115218429587549903535290382854685151456663001466255743340997486455241852186170037293166587379802549212869093399767172748146947505624725621895217296292370858034207553830003567960735496321961800926098747053555445511033799174536675359302435357624163139310739511953767253506009209900271570589990969550018287583210824512313901948424276764120477772290018894530209184970275164647173877426868554381386294928051302503496965469064530039158287638149473302180096044023199125738032183215264173175009440865137976308168600161215908076502530114470578000102876447597574755832641520841393366541836014261644785690123797545896166410001766940685796463433540207249517001338043814987110589901553677990649309026992494851406277396377394024105158491391013126462912477383188917496541698737624703979798573938297047886866713367617942380757775606863764857631355021419988279423018106363578781607593334493426435581733331134230973593448336301894298309614998330935548310672927911568596337775984381745910297017508398631682917737223818562273009333675902122306383305278407897919793906323265081229964842195446139749395647526215426871190148344733415465188667099162218185203571808239679665902869273139213081234939467241810316785872499307584855230801076762936576897522207539867104218248832834081936212580075983987147666605966865165255658738705935865717635659129503652998890638764730847439217642536745305563434128845712523203845215315822783530087063211899038263604947228273698946592024388114085555302341147758086660893325078769081293069291818728539936232146913767044169592668218115161281662285467023937078675201006742062234346117840064869001477899601915904373754967487205576505995926963715663920034169000801574634532179850181487709675908038145486897695873028198388739354683128172094202480308235695882565329024928291773146763456551461785986837429248756417526522163762680152988816824987562287436125579721916869095114513186678452311691282208472761429990530823006077607848249916832021255681830400618614429508502096772676114074073800949794083975516039494207296418826592835114200867112008383234005089360727806689967808332881532456466739117766063854291422603674863899345004717639315074266765132838972726161128575020663565224163935630668897139449079278992173612064853159890925024369336994837276915378260065773923273438369593524702616485798551613246266101024581778959858921663800431136085787781728585875221291585558819665206210756943792160718867991058826158470933237009856723829671223874335657146488938732467950065016922626892106250352735273859658954323064614047666612798714108262324482353475972452318624947498457700971907765075681729236946312742561641136020707122544335045142460765489581981685822664463964623131283391273427029407912370075538530025441913752314957405468877132841791058639017905874720697134002510282362394129940549868579460768388456518086942916504526126045153121060263426910208295767994370202935084003721263840466236121866796311950103880473221673703160237836542928536630725484640706249004185252250594848495398908501351197856483021460714758153896848515559891828795381195199186803856039894294723483651552481034805906979744838704860968365029726114121444082515894985794375249274019104994033255258404404029231886793712449637170582573307107268525376939249214520555446876403384727109289926488609068173625879056543899206779335008617781529969316754426709879245777774583047194262144449767547445162804617408166363285933767775865778901058570154703163147029209110082384370992883235166754262085929330024675505521299573314615353368039441862193448884872245449419502131456300281243897852836165747490654947208103421228188768308932880673737801322568713324454980206112813374802913550483452497834555214936188680258668470752500391294780737008791954794982999543550314157224570217710747525418052577794789127415423655236404540658827852382803657076525714130145405739438025901187620435125322710317881374752545269561777861221384481406329572904605673085743109566675459461487023715671865488414025034923874307402930079774043285704386056870230660014241572886622704227000235594986403435148793384580098988507536534283174935660480725460276353520049881377329981121136832029508373154788895103904071466551934377524253400389366739506170619061612510256095341719925640036161312109147894743979981782233315476493620126140918851036849178831933248673919114334216541139504636676712232223691890508466745800310213932813022406224634701772694078470677537279547563651801579882763471428081135552148629813208006877923205559211204945778357441327314523796844825866257370924157340359857126989069595513047322604701940161805499537285539234954948255302622994632401717021835047468935505767159431551636972683459600208339655447547804862525555451204514497221161209175217131681311217804828358678401561982153812978895578883933361844931832896199057213395689011699592421250680152113559825192334085949689436495696573490642910295679303563667916505380913071741618418394255105544878770293175509749036522617111406845975598357680333682255567300055181126627030694509034481080328461523519942054832503618974387619648465748922521472726692417851120137088294791969358266439670571602344913976128229762698260248973683531398973412470203501849864484659516157248671543950592459956100277178840095727617804020042586657202230011867045336058313590725992894104189037748926720065568980074490275496990840968085604996461912196528725675524426414629605405622240048482681229702814260351433227934903930895609083005002368543736182121629852094974571838147938851297745650826931338675955191157723877034526258199332543323593016333867599763243595465678237424614113092706394596285646832040534034091072907567793391658218978584051896530306612040999531841957542579522530011819811005245065434510204928083330988664743184219883929666916504890526744844156453657985513863718458321009520244613028840095527508522298165688229395740074875454943538564430262278166552620370569309753989083544515330726332450529576921963694704056585165198577855282060682709421004603253699182084830161925141387616243737700361458830543812692656824977453834666877278892828793573560102195411723811754677462279640369098320638740450513485876502092286303888093415552077630580407501151305610407881996042958671136143874651486735080678510559679800677917895590458080225362699259432023870237703024303815459346107429306867107711970718336849615910656143962429501455824327519990078710450488775055350167472491360602830911999370311374607214927736997174133266997247080889561068312609894042556087844606904427910987849317795578848852693441479745674775874658399148109245977448693684646048610625019355044119132553505191796315711974189999123339228999688372334016380679489616870796536312739072555789081314312075245789923466708437291863227597113220823072749775484544860884075423858743935377113986250476322614817177881374150181063134884361144546253246790090259643055805558534283104275330625049217913456109273842509385743367334779567063957158090272952377718998407615544478388543154717954270140640414368903931177068490218128933790384766995870704618100736048029887522510129761970445790921677909281510223596120396034727038464463868507626127192754662632692977011205110241990532873188765228563783787266365083007372565787417797543803314439052078569419940614558851518861585545324724123699181521478724833369461503890219194940088581610682136658365060951485076856168650528286688701216582826382795778183070906015726832222528948038904144925252684417383336919385317659670963514156184647887316788422546286538257801954925770538239287087478269269194676259967668828034060179815014559592508374937012294383142197502794209240613734780253454184099021575108393397307159366044440352757691118331644436085010208998995616835406368370939028834846559138341445689972103755229333186200811609535526434074915023949710416914677158223210158826614309799804690400872343420550618873255273265332541158393268588316844380676108593483638065651242678894855451011325049477936710696483407364048576566652016304994451915040631561786426630514404407898142951300116209464065771251488698101567948798717918955363776857222895260922839460046203777587340691085121476247545988866284362761022907632632874329506297246216715274427024510998802019746638106259732948192957344383259937846417351462797724378411946617205833854479581406805775605597155606457154451863902140673589738841818296096623908967692359895302617086965697800643816818537714899989268266389021435694828347972506796508964961547995661381970426155740385552502840766365967248133919953016400519529405789944301133842957599085019729447262996804359008635908458374247200480692014103901825363597588990206237054427255761681704048150175028739469954792934424144397453918995830847775958123698364598064086328774626554649381698956228131851023150016759324136833613338633362137320393770831610130946205979441903452610492356652850458921450613812064440600501069907999705111942790189183336834040898280685160786189367085922284353742815080069444561999833418442274126215637519925231605614650643039034035307981389851680019604278889843901677633307152446315509976374047140918945518952356430560256928104397509018764999265354080666215043071704977405682366252509105077165301540692512552979771187680913743998925567699083573779102805639653805776467368594812433966905234553483110985895017010776430652082786765913534191664082490973020398736963006227862899964277863158681502858352199812035903488241204713897809570455003228336658018192693026075916918759429023755324392224922358053638945039549327685535771669665869041241966607496544131870103545764054268963394708527142172769312448403729950070169426541334259967664727543939843794757519224538426269721234476068701150171833752157407426330923737939066116457371646828136573612329406826183228149092479485001830426873267011113793612188412820117827778883461666272152846205179390619712103622073060152618492527019262055308406275598927912546718255589374060955159579941595903932992983261928113991462651521604469431930505727156732356116067512731223104864025467041203746058871247065490747391645188001978790647962825890150962509740969235919441712384905101273007996977271487925873549884495601036604779965175171580429027362499274565183567499414542710511686190435600971138172553028766468643253142537298674629383644347780116622620500164019518405935602402548641446188432835493303048297194979602935017102217759396212960028606975328554029944586119592959252150241536194525705806625022940408340295627169745010438843397295113682409545620989915778161965617930408696115701857188037763250404956916788208449929127990714075715882703442965779517500577404519893489298274603767217492655999740829640604720921552004739292131469497936958191168422045280657426456567525930574617990947936959160011281051111515243166809035114562883137915762334821887290263676226643616495710696458191387373264748716219933351099858010660696803277693435118112249108755838290600015446089125501993974902734770447401451426464623994878030045302202686503079602638265661869921686144989992684407842229969749552791632312863102445132696959765573615746075073907209535556239776513074471526779788210699035637949414845432219899465892473770442085332624809565368652712855619338538043967927352882120831719458529064046679143975804771233097724753074262088092437609614379320747718348926199597150673757513774096847400457479319525801164491920082909522730888025814073475589740646887478699664419467511309317453161235000034949428863785467704366437344588634456357275087835156052527556086442134267161546227468111225216875186569547553517179274443251683506954922817272550819066112203709972806577399951944526875880458005850538727308010592045182823588055703646382323459883818265645721054468902446822975424223018453721816188968364725421140985205673979088847360012205911916937809315042064826288495104233992872107891878225118785603729990682154270872186492744099844631983773331372244670937123282162142175199039840848887044400416192250936936604140302011791750960598195598128594384045746735098250345276567807469962310006969915597861315931311650831176004671295592582521031760617486224856569131835007305015430088630342398545301754382575362957403520495855129601237248930495578937355164996722715499949470017569504552399857022978033812961589518884481045552867773053275436368848559318170114869606749491029472854748296510563404322633889682969278000484596353154474907226470700690439803192804769702676668324182118850112566673067066592392899077665335962040401207351285273056676456595730414407934796679107466261176844851098804437341172873282842112431271479894417372771648358802100471321897001776112578949761974058152630047329475549757026031369579875956393821712853136120959329956952669772398848283337663242378328825619654915599365148477258935908513633411209267272989068403483519837211316414530941182482839837062885343138119144167593340414292176177419127906312461220033458852362594077075732126084416852384526723160065827350885636937729671030271151054437579018027766718898822594893659046669548612924591039976855942947078450131232663362090904857822278630065808088666991514271944029174396611327472985596833943609422094259127362346780843958484881091086689043048903070771885258115991973357631352598217343790859965369569494119682016463310971658463156948521935391954662242167728265242995669407178216795277453940203953719177856446104515233280104660327559428202797669054490819171878987663872670154147582607218267209672904374268369459538699985207235996426663250899361174067845047587927860748894600323957974061738885636349847821736062874525781127404564516499268460782809876655332106782508133830805565179626658062746242183664966972799231265090260339830483079280902347437074916322665240153224160700772192509384047200020975581159233343952223412491973260925057889845743397633974168697081473466999362718132285600511371435148162568026710351648772591082853363841072307759550940190548820421370263948770802644862891259868301633939902190284000505561137641847603555321313761871595331147666575176742996957369085848084359593873849010627489485495148299592576356222685110038965663020796989320201276457191918369850333102022109386322590266248328393273846098280886075766117080833378592812332532622008046879793538799094648573037635793440991729086134208756566059580895320153551634344275354820704585448496116643927598062918925356546546923233592199621601385168537038471684257405013573058949249802303933880254144795862537023016027886343656589169522655866206728086369879614749045005659864991859542926618704939821962108598628261970855773573975304261245113619433550518221728800918074239176839821168165496107663093902230527475264772514312083054517137948633346810094881146343416992437547260998765908779983036438355440253584598697107625499914237328576328561962232915120095749689362316406976804393754099833016644197118982269703390416679932583594519368785392329468812746459272211447243931253995673996819914358736450710226277983313550132650165270202874787103106328958060802045696980834505637514959774608314611628783393389244903631393787849258629626229906360691226581956665943712074717214952648551092896637166601040400276054751306092328072426352833332618367725544932978318366617501685701893061677778505765153137500890899269144001219297926763571683091094683181797162391016282300182986001209630709846534623686019299113530661238785962360614373670019705743362339747214144017496878990172618444960269717737886601639816058816599435852966431458384966267767858267312473620793938765985089614458619686835024374798825623952820967774848834288999030076600567538233537012015304854817498960694189103393258562617025386822588076508746281347243397914700343792431987114239307471253620280888201153626152234234964578390262794552984201262206278983902358720593439028280458042904837843839685524091409565871408500048947118994007470734007018607671445166668920509580915886792525553368833442992983114972703062692566999482877537661298102695122117717557255882774108829264242174945810780091369500357693982956235986996015597818583425633342001265106268268743094179258096719248570010192089556802844322833443223446083671744431123210690254955354975259687951934812446302355331981051058278567431918339435455937935238673556736228821791698450411292229435739041885300958714938808418914262607119476243961761698554269465962385628483797182361298743632435535151035585456856713941340421407221363929873979223593596001785832806800699995746137113242602555929597183875164611327851822732185896145394815228739844394760585821114868551043503137571171730975371081813701223282676660067418824653233116336275136673692164411183363674885734109980261583576757921756736863668848359692898115421643330173134536533563673722245581213517340850386367562145594378918596009028719468242898255071286177032173632148082783328945463470408946509782132244892761745661100458322305134563819910533812824496287531326730221440832451184879914885942314743165480173206572179265127375586379416201673385950996778009517298498161182882169588254814490986580176780182611430751818477557455767854333985055668218075317445360596954917613034128734541763037467239237689738990415671835181575478552495306863472679400646787117277614596419965362108963074626329086487864702623408828710687567620065889081946087785859693944244203637131744159226788129097143024633291680163873192486583746382679123047863308391432309436807588150752999745693105831949453993701138504274236071073977277654485980399706339654179224959334793612808109058707150498118199989908072150013846327278356820266006310894345308192271313719754778974207334573758884785173975757578623370920445003475924975727345517851905900384114721169076481892137391280042848151196340086525350736217727535140831475382834704245432120780413925551102161120236436833246341555564272476948560364567657996524592672803452934098201024721678438396490568294110596657963113650999780722733624860653161110260211370345964191733861814502796964885581517109840008628550282755651922545635450082900179998847942242914314532202335985114538442666077684261298936621494838481444575880200525883911931946964088472695207497414107315443196868499846533631060758028676535194025131075983482425897617243847043384472336230120669410262289900674193739992342607352702383327302555654811987493132564240870879280518442671958961685622045877069743352802672032105965365129737516646326733375936016581438425062478988083576870791763232960274747237064239816273562672592538714744327912299190358794753117603343050053153635627854921618230397408549276240162751635188175703989718826989808327807534762982811844417918076302869930685285079289644592949620033220882795905531547732252510244670521951874073608294266595232702832006871035488840029665793653965485059940503142448711908272491671928019946699784665386694236767946689289151190392161013239184728459488728729181562967531187778305204484864718671385256088783643616648820991433816411072642045571236983737461234066617622438674166731853817833901867186961822574625703127111705759184070942899059308367944678020442876854578043571287865722765669357820036154143774959669900880521224377485470390580270530655811557107919633555944829380576612192818974257264188821995046534369600405645313199582852757039185287950002487618055975933725820821541208335439410741308174319895200164213725217684301498544969475692156940687929836754816927035331517606495157551006507943204941276937868361415185442126973185107848110299634413064190557758940383285880255749565201749877470697840568992137870987572563129440585854023103221895481061709343420614534833206859906247809403481579278145732815860432152525283265127382526132113122851836459420397366083799086059223117779606636129076900695015395970763823747179606056913176343202022242875971416989538061612569864533420028341571383384320859554304451389451491404783565451868265519880573333290923224364958963460301490185579036461460830039295496171235899515454398493270117831046801425038955444319115551349987395697815646269124263379785640296935646630176952506480787705515702406045699039587019180476129436239784829638111197430920584800868659522212123226986377461471418309270851390460627453738852961349289834409239536490516404491133743493895851555870754449517953336787644688459000346254602163660765121749478064652588766906348300910635947594222269531315379655742947811512038942931941091469353311531824192806457518820276815179026663821260117305202844330237142309627612626591123730112758089150626019729351066567139422120872254215023304660796854335335537621113269221881863086624408932700866595075342981686106834615501891641509107102610984688595248308511475785378841601411956050860040305929353159679406704149938111163493996113094804146049477642894691480122843197555905731968789947463254208297362529337363575112001538389666673453870693800653804664133466723043690074357822063346803688636860873197611249269890646185628354825319705488707647749028490206146505618534769319450389167210432304911920509680535174242216812555621714478408040550073637716172877178004495894433245959958403747384645302756711840197993703751060453362809159228543282720996028401211555511058520057772231254156252116902708177728457116091368024149198372133757095984058207643582354655008916633042839270353875423951290712882508838588886573666400272128304171838856436705867720505497016440602731695325731143829834722381029525854965054889900858523683249006430206680653120309664821373352020213161108576106827011695204397514172350869228063087678006800813522862186413993727823506856882195997104706868558735655759229111584697240454847490076418037287801435050356795797263681298645305371910847047652588178546625167292777343495467307638424205152099340362319493538804896710475121333612504489635138474409431977209980545653516025815510747323390442829128855333306711582628067305522216637513839982158591604844375963930985085022651175253049946952606098215879306513373678027744304795392511066381504752209316132989886013081763052061053957349617057834065829432845707567262867781037311572320120189750018759963158915683967927389597244422785136573907301223854343435347511180780083153586263385431156104971489232919820156252377843460922242261766815009005009664876884670840218954917395314981597317826465079187491382573876198944319108590546096442627317244324111842205871461861447194177733664443886878932329609587202348087699948637611238924323049936016636663307579040304580097811473760008869351297149524775414039308565283228341121476046618160087893507587308641383443073984849074190577807278377473889130090127002911248911706343658487015400705830104089515991308179990877842817345276595278248715071079892200196595910113500692712364271641399497249860701598712969235256068324794998703680600584589886755574493534286978258440885329620751415104193905225180279457390865251168453148167131309198902360619593735005612788883437041305614480495559752480994938414225244796562629566379609947381419182053337460235192572108215222242156592855070276084749611076296143563290705805134023166828218243413835332652527678140605773119495496401910774510830118460200229956621556796552590927563682824743285441750892024346253378216503393334801506068655218229310187388418315448749149275028617882410002659303639929222693966815930851713705757159178530415275101725003187478737091855831024806894699822622031747565413186972777140080918914893354728844700264995570525326617188404272425933205866977289493094968368495116021772447085848394361427800159466092495052373142488037314880840420070719785574663564195889135321275872582536762442437052024441034299297653617259542961405269245737595152103664852174360959193530885039861863564053749629828855664140596943909670981784646595609354494208186471937467501563972602146556752309120071495460612572256602009027043031458394513614051317296164148111389695436692231895065518959728020876935294172718974776239741446753431172431676201486925716674928896286417833239112926372113139538134002816248394046582209074724057978985155640228508576127532143062464085320474636822845860444203525834976367571307489098455104458783865870244079275696464813327207412860476164016756376330194855996371111551991160445323290007190902935672244640308318310409201592509931075884139578502386134002142754181926355130589909552936415266588481001129957584686706331706145089865998888201059202640483107806528507719425733116830307559078925474898129749784533279168201960336820059578955817339799362498832273269047772716586565440525911802654048476963499544892025373894145451363381356213170570364547141021556632433181023444459414564178854790844597813140538345209033822722910324756080983661532706386837196190668087228052772055123520712879805659682436559648948547158173690808635398203255066864495614115486602331882409956430785533108983227213543194329854673450346678737157467518685756197289310458584254520166290916347852644760775368245787651791314674168634339828228754178585527854678166098771445720844185575029976228549143226676999117968857918544886177058941246687327054627896946375356138305904718452089227142814084909452440818037340909015443223432689375836238553505795627788184781220255976304569525421508033263895989170760434356421280611908998198084094619950495011602347251283552142331674419517640174585644467721553240804364586662373527560795000521626710496195560826911995959176612548692312956595975001559866802212009008877969264905609742881575616787632667786137567637869124730017653931601390980953175864665043301615015966115727674394712742239690120334519674380529537693155622963671917173615415194490977121047890546846768588155510191889063717456743087086268583644841228469530183385221093615771707385273597518770929788818191506806788770754343135576241104798637315478032026836820655930786142770266225026476505983534019269089142716857365878292862962021796481665857080012024750424497383932354142551104077349162904115415056428240546711264041014915453319370804206723950464011254135172549678107181149554917174222452269750918469443357399565308786548941095364541642171662702286084782451476550835988647520528236516687019204712549892317415524504529130338094308143686047733488871164686676978902963987050362035538813172988968702916884005008218936172208112361118908424994148513940286236305085963188105689578843115694821056765180479820889138708731576197074446033684436392425254626678688877705241570107724800761902096787943018227010042589376924117348751829151602897712253747191365578801436868143001108040905522314667370732418543843091144647488348708832820687371384422108982291637997179748658106306992723119685380154872555168289394189970414198166738982333415729420861677995380039518377643261155736793346897441642779153114248599815790353316893770825657858058546221334520922850915053324724817472728661225231974660362358314438073707070272755052208364749634138636851147848057568028541599922515099824470530215575679319268149454630101469892810332533308722987281910274368604361618635456208653582579673331851107569139172965664317070623776830372011112177810602574755702249795839179558991886618445522731481968971125797670267657517867405360228912982639518189399265777439333009375031680957759172628461498341312909020829898539314010660045416920615792276423627786731130488785643288885208082793709745557088343769098217616804115051693429398621179473313446906748041390721407559813412569021083479944535769204893191280417677670943494416601170601699889802671206279754553063800260337653446583586144299199825404432153149708041847663528772396934412331989749896964958087765444406887526053413545577057142713856698154032093515662362152509494087396759037989620211855128409408879921086420766294980158208598958410454272549468067205166468269801420346482494499780655460377212498838233149631481374324836982130603574467351062388869091167912651506338765221957027807852424596565020348371094349939249938409882282066054193943836529805560265857434730837028871181554710742296331148321763447757853185222720792826888914485958887361962903031076555865976848457900194223192459659039218075394819355723657969203212474635411667333742366312128941122082004016597699256586203390315036659104483945318660450151499459272184758162256199446036659161939680181669073599661781177367272497729214560035944470778069176827929219711935505800651711325774590075889246024831820901000145554779802195695244881597269429164984399238381495035269321180405130987221623455450438591438722098257224548286080281183487786268352945335294846855177176365028472494160626135707495996521738087287987061757367605708367323392516986634247829334916865997377891424151452711034496325886719490499930761256590606274716990082737991135984186155168483889638308563668669934125832608965672613748734136979168482577083775929537773782043238156098664674130822607016021147321767140699310014590758696097344442160760694499540002218401248123766393692082117933517547866290561933234146373691231906393030583359721169660789207722536094580702279722334948406474939605965768585542483900165901995657776039788792431946580186765706891606598149263380020544042178753854446470704519147911720518262620140398801642739003061844455700754255346783157728293115936642309589246885751790814672290863005323079158980441685395473879235102683040722483595523322656007338053756525820175424406334476859150879645629092203286585753884336387090102407812306870057790181631253072680998564717487000357356642758156351773538981524718088765308661592241195972563974195127099617628746538193915926870956406328450685779037642293830982267479152173214671887804844555001605096109710019548122015079979329883571289143845868868596397959156930502301793281178720724588708518842733438313171947465381873159439502137965992508342686345880690607933957741046822112055482190844967712774228241196888477368294400642825268228005857423729811585914233526945131397938359471157094175710196516947930141875736395793549163258115779323735045862044590323086372241558338997981647148102767603106862968912914221039141490143098366308228649376295476466426967542861260210814192343344188579758138284927696170413411188509182927326527280408903379219479129018481483780854640221459273624978728109087528228613057384543756851599561906036374691471355194388650948921135278545928563859418497165944860110875049434663735758181274422855792217390428580147406358455824628784415535144521601173441909229661744185411069209465912340937007627044301677657560493360010070337141713556470987052946749632026480533199236561926844162760113108683036387518361674544217837227010434121735525658734781603477560269556460364294050433884743030563011908615633836904665230767109080486378442766774418913527235381786410886368827156240217513368059169358989201736669222067524724445135103301459931257274541491270691426063797590277199522637996875570907611435843682640724513330519369612331016326118756218178934211022764453739452178953832561106194223024597861409810000254352623420270861897546838963192538906623615441416280271695990151819067541631399778181853514479021942044509859244691566407873648185207109488364162592136681783433880907395419608338611109509339609401365279546656094549463223312692235755284550114095737517010043382490375725039018898233284853800721559156822882543633275421406046101327867373297616882032536438148593622128261934871310886203766155586693136387387658631922445432155366180375634228184351502692957218146362851930018875974622065418890234665140750005221930683162670938939128508793221207265454870917596519192158633317636938598258069323327646512908691140564618716964179578868638651792737421426683287034712352685339102831994667006610735598649202920609712252547803413155574269923210400824901453424837995088110076351100299204076433785890970497239614596155020295279461319549331322591199701355259304650385738503655823185415022074437731786282364172729506359264843375208966449596069088105011517559586571523499734949029707698456821496917916527743220535482780855446887617212577962134842653230889799392745455123254986157271051823613726311875177677337025516182781371765751500397874067953751974323160033670578443481964200722677513196784913584130678367267721076438211517680191428492216217515630449091476244775970696653689441794215715436705515740676651707139078408702584181157148304692984930107811710437429200412488093063866151934774314632665755839523908812992685373485619742328408521164219424959525317055459411845668922469795190404957275315178916855301779281212532692253268919832422704713728572738821901708799033716647152957624159991528925110025784616799102000018465569782635618537110669803648134981146809916655439134366411878661657040778764563176849227502158163221218765895986061669325353508310087379292725197402761051721407864379947672373318778450660161393475674112665157562431628914368822136330882671975238683367735610345229930079938178825393329973227950143171563608196641838303203203240256276790110850339272819985521973505928680140737491592275009443032063144719190903702999866006550720580996694975006303264455487858926294860591687787970154439812727817404332507725797522187126656427849857727512291128521025035125059515097952951902263148928289181322317683926804380426976355020013333347721902013273244581690855982551679286349125975965576070943085932697693033457350352811247602598586157825178235149383351088281706755933050618467227275877905528673208879285483804366022835474065034778288574186526588714486040197388145477589149384945769502498352249840757030548319551701962881760316954228031456959217529922671565780721681236852539677413560874635463612008595466254226373508324593792809049006079634421592689246664879547571686877393358726154894153223569149285568051542470919808149777849095131412524803495713838078752082138893536036782552800687326228183095749543778260294600029422712448697799620900309481055928138055477921919405136549820899270506464770864801363369969697867701404452285066006734943691393472554271613826662144234345928108326847879928017645323607644628980569435721663236872321366905968534356412293615739364260341223538886110373473726695613127665048175748210372872758153864832770430390919148726968731985395915827889995797394292587040579780395184367685098640092947719466028283858098933077840670633108736558614006118983628316199935272421227929666928768997068528418477966747833341125511834447018101218801507769616285119572881950602549071900478558338598767637706971873214578602464743915866410398574397151212781039929354618389991233341901283401994805225177273128922712054320213725027508972576407042448981090395000940664692711702974960580287778780690622224509824899985852334081454529985789071905968980495572586802932203565101905436527859403524321154811526387747852465927414546991932613898626734701445233498740413430257026216882593878316310040766056498048125246722509645673726650090329094722181464982346899873559088827065866045274778388857702295928093316385866426551793175223347064262420721857220745871462756934264775061632471516297628500914369027509600663323025219800218654205384545103381077389821676598532142290402708714202976421640834605204106553164901336833855105323477084185829579287606690595942917503936967154846398306891878220790737940764818834073575020553241494119455771920886158118395809985249239376476475815054369614964839279135477214010279293142576184768988720647758098417875817365770348778029014321776504910954877891211629109125891647898603011105463122724474003470881908346027575908317967525391163848472010719525036205351051934453424723420076522214130954280343905311733360058915326594605317295672072638575660100226330149251148638348579204902957377056608341234706926075048745889121927605356945359348696847721215751602735466801539327510327199138459693978826055672965954614426106264278286783004278885771811256919208633591678072681831921679923198935221435163272474892025425934162886199783930748828845946674046818317950360650218335810726316549700868180959572456782962777189816645448420073910055146829288286261304228122215183410529932408275085160769389122328240810409393516768039376189085292030638610116089923030144963802457239972592986591240628885799939108476547472960684766410797337304532502461225030698495218309029716963924646695731707873570359012323389914481007440358219715142820823505848082265596562598631890484730703623167937142090999668380365865425212111097188793813497408103628947843036851931980565620157741184896285873343882381142186553919036926209566943254850214323610390204747783363583569627324888016425367303693228845321969359524440491117987231083945476650376677993737342351489013690761061451223644908344607279956178578469190551641421312092006251718779081100595254012461272118850176855386261885649150812581621101794294457531780172122902111632612615479053140440632033913719591337262363081019525445884730760638132125536401318825100303317417513062525195790436771404436658556118781623820488673236456646030731109823873277222980636896267045871512906224597343637345507581339299043388340031485899222541877250459013530861573290811241386934869431245852336182569391654318294997158904901432278514665618548364898314256335324006097702611121531822022725501530268978828869786964776966655420114661139824073137869745929484577532829370442483529039165009185316418926651743118883786062748741467719177258640129883401466433920702958378944949433001580360570327024198716119893436549319906527901768881788206763986241836517037501266573495560222687438924364122254588499124569469609386393871813345998093092042009464847004045532743391605696179812160393117094065090631942916394887333127073054677184026379382227227863195767283671473657107492265054038421531706080958079705868659743413357895593130925664552886272068051969443915867967046244112283155515872440518098094870767491822824211590959943654113693934557161719053227773839439474322683752390740347439215363152572282937519089040822447482689689876164800324225500336571929297935095674559947545530786978359264033148577237021643584668959620312152343770774646081012733233974644505192659405231836851099376486793968760801066201917629823249541131955087019053118482031123534099720363187126324862296524114759400761527315185611760107825910656503386923405019153331450781734328770213312158112643734132087693247578744795582067915647878694296868379373612886919101569110005510340744710383761977679704284614650058743250361482090954067809276077737753259638714145566461925016757673870833515457280334326154679241922681012067563857508261887762245660836371843505476853948306915381861839224341818531216653857398037259842969046771538899832809570180609835723646611466050008816538415736524158031406632880429311586106003548523315119131478581373337219996455431821799868371198774417063049030000647672767671260835402072527785937619558241727153430171604373803319893708824715293983460118801430331006424995899410665593270209661753070972186082315825805750688401496218819395726679507444586950445199768050155412870655990504290871573243952462999794006853275669685146530790778239989754083446833583473870135482587175765968927981919500981399242801283949857692921508197054001758818650971732641419205139660179586037815490384808915890877868606761632702309305236473353833108628245804036442792060806175618527461391632527625012170010698585599880078196928497886185187809273193893458690404298939275224337113571639605337566927126609165524800225102999829926234249944320989090220517725392566266220292091707705180882007212690468494183876433204618137315858069128204203802759666094237039362076820619685050934396933915499684602772864666805927958475482949365200135594441030204758773503846903217213165438787492784247479034376137883499612899050973688537389997450844875088890670571040872055645121722645360763653610655386717546890355194662792515359954155678137924400059211471617273531189125609239934875057857675655994518888376484819255288666573826568801277833347868194111234946909066654456137895162923245265183481562713210259963905087492581788006651329567972364693013374269975493077243665306550242935524396597312186202148380035406322262067487986803382614017596683387502754972844500425854904870518659219426236079996966208843158579822150618909528479576527899045122645130960090518334446550264828890367940288768893837807058948561619962496620471429532695625654745919291130460162146625743164910244156568922496533966582331485598920186916668508557786073259521566055043715024168855714052857495319460009722381886979818039886953213055119007023119336296097791948445295646070688033262418871516235359206986373442907973451427708395620487887879807100690638455519077080923623138156663306907221247792969644738968750052448755122094605815775837989007243282741222057852163041618670340916638069265503049217526227285350300611925063574907530740271133220429623837800378314947797976661353107431671910401321662126011906867160548439313332747046611609120326631712800057265379715885363563080039109599117394371756735133657679096917968601683634534827527375200392111779072526534269369684467747253535131665589822461084171867349679230658874814601633992109631408282421555169704124859230580685706509431418232288407149881675710838261431451091144743527848298011580040146656023315164967169548003077628035246871306279760210519493183428322273351258670790112491308936145799943868677182943973408365188519154474683772056618638869904899262582788726338858500427805234720970690261738196946890319040762664795475926118943220367706301269475582633498566903661577831797114831794953530018198238969498698619495239548606215574442996596605922454513203369781384832582183197544639614986184505277515470756067402722388865450560768080753797841811784616013669541773655556254302489333898535552860270019929279900182927453003141422375177865764775037654597336405305534285132284684086631153353923109459257161509304726868279585060727955136378580519355280077648009186254810740009670151747550266538121257367251249367630753882873922764585155293282263597524665397942679084065743810256480641124580994580060138358057662037624677400212473589821565761724971936931979098217079239662629823070163038835327565388181703851569278001763947996460539391879959456006167564698329115702372325153123054258820370054481517087388518873407471987087364414295622159064287262636861061159170169474944024606796628387346838842911625915383416036582597376684976854001851648237351641825853580847393986523614480292131500778873076553002872565971369086213677428987641256744092117691163582893649428124730827901612070795699202455660356280822548868686078706090398929653572815852439277151201846385763229602239411569567366488058194642468086338105967814785352906885086401872820641177209603193308464901321312798488206462180288673953358293800557622925251903880690184526808481559951841109594820041321513343474672491919645917751006937292741338066419666339127970598670102630637534678140932886556057647303007900627861809053638656944196393626673620133678243327080660363737235559474252040895048664990508304870836080189405682976724011793919232941086322141421561355430960618818426247382889699837371571378023000856116229997178650745148122122985591085541146054251528733385785928492263722702780002770170899108917672836170583757040487994712801155762286070877661453775620584496207142624279007133613984740250828578340363324082136227399516399430417540381523666882998037078586925981940880963411630420441442361490477315762724967009447197325367993116985385091952354816232094250499746132690566844851667358478206225198489786509637223905798228989298848225836191090511138316877050523162877489436951317388108914201946850311017632803017897575928654661509478172907605424690518160744256594262327382279982655831399322530168054032275132679864506740860611946696215449779445491077416317242884798282226135699844310242420924006927962973459170364905105010803582509880719106424606697355954728676585256085140161124258589750916826550482446355316346531871703035008765443176436389085673735124201105643084118927638784496283220009031745745544260893808539900711435392915166116906230125746852480286193757015904533807661921373812406365082960042862989643984151945407873479526488002890139021332603098606775074975484686508572832086776058610996920914494522707161663590058493726858144161647902282590341733964495826834766523028774887140013056208891598258669970530779928441144895171301433374976021246218112051160822529534950858833277108690795191920797288868914952793817883678575099300129425888530230094868771175982212706166489512838649742305573934813084055049137066018060117143885016094070005124620441842993645479534012016161086796374033495764578260915280520598353280398244185360785941991646286542087123594571987682222043102343906974125843274649750960908763850321527837389381604711955925369845669031025019340017113740224341636024910754632982038284804820640828383165702796200748428882187130802836795171740460122720527760226801287557070018537568197102077209557267779302885992535728346928375449526746847169713626476585556809171811082988912634553998009208432095060822661222158031238286498211005911669222908629775840039931134078461353289702691228256867649763418018262874738128014222323183226153802532624204744759626239999324637576770942406378651516282351556103682070016520684875876157983906431488265374216719038110177297528990771206220528377570593906177836223372350771004985592205249706430690958589114178430732507652695525144586186425911684297831256278903548879094348337291930059404852218385462904643272598189724077991204404412757826509667517238948554314636918107246946013375682832136616421045712659710236603946224775518052289590831611423617735153903980100934650798717327053001859336376342877551145556780757583765407207736249097675771582336521235438173171387442481602898479887339430365377423215582467454070934716848794142621701910576200840803369168743142083310587525190829988915951448980309588406974605134974844308697631059854796678211376015880698872810738949506820970856763775739222343484057507843497531727288528805100362098522241059534383355123747139886997145461074774185126451738604367742962600155022734742075456458285321567213500086052004364078577804172581830610472951329397328414603324209418434604602245761666175639028132158535161663651829452823057221739155218219316111067671202001558650703543486844772793326914049680559301390996932211534938456538606005250051416465233012797257695382161170766606277567981066540216001304362952812308335831012444660354674913027533371451611709450202175859013935355056210967503355965963286212428438149740999161323673614889422137645934595394457146311454928623152649859145622457039654345631689732373883292647253908180797711826127446024012317220416636814260369483933613748079771905737235413177196066727839669331825777761962344057799488694097867520617855649049351475448241511883890628761527566399286336915492604281350710162184988321963956749443639644460585115846230528043320676620735513716548970975702684337606562033936414233321853736876532144796823754272893417908088587078995122649696120695960274168237777223438075128945907484511120821125800719318801803595112670408637861823396111119918060863891581258714212171456205958775273161841574130116381852437199859747265446365760093335891724163345396845190961801715967884236247325153552624343522347888788410215569374926313372882102533748820177986886082491653662448006899320391972006365402710206120757907228055404541010057587512143741589564941274894610968400448671484652564200541530884219501004169736365159369597638562108075295611725433092691285075414150599803993430568031380929792230612750078788645056238835755790366630196561654261031889151718939437827593969393712346739232885895826235197068223581693896684508772859299352244993001846094082782112122327917102083353621397543144038268659296834864827617220367828445798914850945999679639128730319408397901868797550158354873329120274667412637239311521671394800483778760682212763866605490609820049937402509270655938109049071720665382457125877241039683010916648494097461630605701780387303613536211627801328052957329987310201139317775294580453811792759700250547617274095668044410410415464752089267937317894297981083757893537632467189881988397780323622077920310504305068913146465134391263397145842881732287483021084832603271422308495502256667190210979977210598493980802063208974531038336772971240300781337726144082359870689309574715114981689526060732763929396664384937875421746636927930420126701019145013157711801029224622592047852116425932621467355769840284893887888946519637558188227450730515767426562334123145308852137551018131808196933557772640346148703252098820594052656234759494738748034233842537454237001325767686911560772002364012872527651038007855567626818083995012569246107964000248031361859989551607185865200544846790244893356626644732740154746387920569477261191190790765915344913360280863210605951112803261546548468700422010192415813110276706074926299046035536717093508364007996297591836101511681426747099979372052145542577542261025863942641502594996597986277253066382851688378060961997281748664780189834414398942110780295230931824600834610188763392142954492614497553427202999634071781625175679218349484892752722954614751848112229241634129188872890816419917007788778442178315159572122640976362824582605162582070985606755411185581756910996903758936173795787267538857878883331074370881813785577496850703270530011332386713672661848230304497219410821834656029969792736312878122494967071200235237193368076114868160382388913897556043028795797330510737238995693962296771604227336756468107405485049242187301210285129615001564577692793472533202170081853134706812900574303654949538312527745623245921648933780275107026234472965058833621589936829432215809351150663965611851569216936946582208812284754297451013302738083437574345802643468232517816399546529639720689040920991020265117874960322941164379449880065614706081482622907764894333799917836903928133059792891094874493610659925800396258933873960281209283304968407758959683319482362993432469197465491971257381263538846299579176485091254232035355132028810446074504562917669292653007744865509088475929572393004436809889687247871414539314452274124447660119418636877687339999448702592797468466230912997043738639043118620309393866875360887257060581189796596517857968350067235265496287848217099088142830150656968959565893553802114028095654844183790050923347089220082055780197591875384614697560027567190280214131610143529816859214507767696516414854053978451199510117261991343635947748304024599029644408604568986373341570228545307091110622186403821132514712357607900806227851333754793791829851123362519983665755108299178777422056559874388913876986629566081479571510144131611253293613477908904550956449045353931006470839325864670771547721532560185487418123073052506734690835691558046497561261100935684904834300411988419060936253654311063140722111476849799231254457432067188437955497593360710008951758791618739869107103192878776325784805770594331551532855306606340643857377255532852962312077883528378925632933289991058825270192887797338002965492444181848905938024996344462639786532619747334643811958489980710480587522236114171731184000947355098202263875749462768365625679790196384372123680834561901556394456556050184148983580791824041105290513150930582302935162433992110092234688474110640170678684180969460097463728068547459940108836501986425697227947619685864493539422980295228623288431813993251080396935913369652041340104075750647236678134114414686660243164227519548722206350887068194428905508747150389006159521993885933701298858539419244438131964630258085678213031459933617366655926417966335920784235639290950640796558889697389269171758852905712988493841666908537962683942196325347794607506314959833711669588520200732631450835909577141355572336433739402073842034364591329563392045788315898668535743307369208212060214300256639610942644809468298963918612216376140262533229341776713361257906575067010177964824285293655731157918974548633086159169229543415642985385374815700815305936732835889000027726720018169824502033545697268068766966861080831020534165538264184410728177092380756272063276305453934659267947735591168608977526652124800674789391555611607227408421006207002248805391197672228773202066920634077372565595565138193703928888083480902152032053037549759553950035262831486929449644994855180765061487526769655120854250500665074836478205418772653365527135839268767970057121187100015686216493571119356315226905843608067709252005857389226254419505044558482577645868309679170109544106320611019727319917074289666523310145166573109721937671496088056724955895629542621383893275125480572974804001558512523665233180858505736758884682299456963217303349169891444945420881277615679635946701948175899206486804569380338363623144602297266576930876758667651335372484702602150527782671041401489749065624584300216699919431163311598722588796367230619709123362605399554085120529963166410538613050914589422090395501613665226724083203229321618054100753702387161524985302836211027214095526729340307229566942790504020913594348802612764752384805730819132288149360215721876881168501769951782022002216237957610785860223731046352873476492232389095260051158108534720250051731482470817849724097506171152237581861963948730499620250331546271733025005603598907835745686074941708260605157680622836252900414068238516752804341469749746969760575760120883959675896350737849343575403814857240307712669536320081804866930826001186562336235671806595860239578289797958242218906552675274813490033691583305233115184093468940200523750712660815310796281571707038877955971172549292039433064221166078728694646684324560478687024407177727191053330408282996571748733013237674653818715433425035227460865280985933052019737627202164004409100565632244186759649707857634340035315900705182395195892168277507564500464819448328307670356189880291493828382702624605465785655300693092046548610245623495077109741246549876006023839022481063315790293745088816477878160315255456582829107320251625486041320413839784361771808236541347257016499460717227303805135108761935245757660736381036076832856204099092289688863663809665764293608864852918972195095333565963881380397395153212410885290477044109821803325264421557346975858931875408841682639043392700296514132292243713442217594238847988224075104060337923441315352090086762138651507431406697592694284415469302361073420252803183745610898386003232808651415705240050479252170063943543657109902860091888056788321116211842404555596563169045478032896917884464287037949724256968894997175623658897661840943917277043632625993992104323338474904346152361627992331014846808212813633489091072294720289321260344214053711709953587119358430827856723595807301174563027589974900843149315613669021708950204787736204743540104831654451784983397707244828333471780764179666778620397046820329931682120783279009057782279757802217234722949487517511083758022976681442736217586631298587807925963148115331670814316164468754289174402547881963481209354279337206705773227216584966494120868118787363689365104473383251644845738372791900309992399804118082937137970579569708482864872580214333739917817895151782340721612881353668123373784033517871239480485914209325598608145876227663130881622733933065680436701429647225642738780280965780606464642476370334426913941958558208881068891840854148969711502986300906935221278053948313582222487500246491517915309083106384249621825687096412534947119274635936605035402850761376139167704541764481018636924880582212741772678645112373280309284863750619488676294538092500606673429967514719351689532134514352713460357851685867469256297708940475303521844900480255345091751349581799247164793791682208827064484854368404749254528445264953341658571364829731563896212458064214977959389191335462561053088587761364048041538183965718242013101895490754707602328821384604418848750915407990808749630813888885763630248236031328839486966047088142558894956726942299844922239497655432998655196376698114472692949681598291185594398160553297800976222180497727831701039349988987360308798225322352939249053660279462422075073654781720626188482640034491644026343217374608851146077539732207302946915073326608970705488191235405327575323978145940398369460195731817106014552970543326002910531744201104593647704705986352077731865900009763292981606560424544640826893245608425492382647843186117920778806148585871010907034628289241507311670929387546811917981115092329257315389108738228936030307987359750605648292006960707261989988732314698616560961864686215870793706544273835234177645519506888769223985815150794071857029476864877479597390965714235603709440142426987841593594644697240331206300856436837915250550957312022667254070947653474437252367477260679193663753261941566952211966288446784450597333041515322670671924625710590358407805877155976458833939676018680637934335206465790083329935715511304695581484853535783597135035940095570789959601606037061325772283506172601839790209155165672993885986797661015639748885990188758754849084060095920392114026303011929640804418228731747716916475887373471851487754687511964211823732940134917294537945512604603503671123682061733900668263275931310183327716921205269087519344223881581790840537351833839363671911659407361209362791015499189200121992998913345587787838619059510930201655634367164077216068063034839680448003022014133775967057026920044689519011032937930915089213001333537424739836765809034248118646301369333627908640342376276491092470252069979663914890805086634693062068216944352694283913209207295537951927008497780263955153198752901105409449760822013112296082632853121950655323189793328654006869340352254122883201979758647267814963484086210013356853462754723903566589248462800399025642388499442022591519910192996070879399069653084259901353108850218388178868070712969820232265739202903169707778680142718243186201084358403167018572964149756276721611804579904466694500106854949716244382144355734195515102870672342568774982276649953942271253530948192822789168907697534898380594471426404536564332099129145641968342441979816618701136982937049186037836313109527465267987467433981599717025788810283168417828372293411549059585266582417755429488477945607272330102042825813332732723154575795130613040324228714290192447417603993346562688822222677668787053320570279349146302944470232269598566928031858747898086670219029235890938701919969311907856432633417878477519002519629155125596671615248227723990967993281632994918360620609276385624900926688395747123350144637882494190825565876159665418342969353467725453250785732025169701571747760485903961451345730269897317707497637276610544539231601593723072964715197518535987177350242044596354802762762521569173657007882764258221810470947274536433589001892725337114545369680397812690379096002722477378626075012179882311546918135671159020699479860754645490016034683998610490247203430473286357884688322212890248138819307201223941730991677707700442729241727686081499023175900572615283962947945000490228182392900179318314160485373140273804496089070316393069295019156501355276093193352202341421202765535681688137170175358640192620295261822862870924868181941832357919464899412325327739686002031332955467061623397258837367054290988359094867569195088143791794977097342586299718419083794338566390052942575374951711935159090699529512402161164868512108845919927478701162743148570952517196277449195605252897884586818809142455340190689759269225534551655646646391864195717135789426624612705886457992312153621216395692605144594385513168591706227262484711266956170711068489314682188449590606406028889384004155279989409317776185614847333975913483683845644436073338211099780487203879213068036845673922658776175685172619108450493204427525259792551610055789597663808823109613969365187507126956896395367642796966792146722629809537292260439582296345957554302019195938307876825373552632919796621105668629310901127511984406171938166403582973165838920500921965604990879284921399951444303470183724252559630568408752495577524487479927922086375163874204955260709763387228311449786140267457346846805140862666034850479489235491139897326217177675860050981830881076608398545527698042542549989416212616181902686758335908146253692524848349262491595881274938512915407764693056065243048899545226489654931699280740456984347074536921252110274753151167742014972525511152863936591748938723753707391785886115054769339432733554116402407970817551027810274483575781777427173366988101869479482556707515135198220607633201155477114402302441024898047800086363544353922623962271944986214983550678155765901868550214554469507478196297590503544810108213922439909329895244369708560767501248923242961003279830541253592638917200446662888530507078302238239402932604056934962765465901643600570174315156471076476700028451935783598915605269707554531575577378269069729668519172289220478406084857627936359097240890102273887907091437005316383184982304362817840642462064968707142145894530996132412649690144322451629798821166419792712323701408289580569762173727585403231189016534757179318291396930008614378617752311196447095997681137725437262137475630709579118093031213531236309864884479981537057950281188904012433169423219778198947568527110169865172074741276585453018578409815586642944323103621101906288861459467599960485841506383146056175679511186014798073187654987184884531016316721558152792949882025232787141703325129900743559375554103329986654194132828847377627529786532948036334855705359207333764251394674671027037872353640194965622202230841992866583012443155910979214086725356754923159490587113514715747553446069967935284629485057561747325719892951418474501451570471211424290692827451643214368403514475284407304513981870855295906552816350411975520945972428057158517703123603237635135864551837865535134825030249647839974110192210255195692733485946821819860251161165531635369226838887385366117034650825031745031435952674276372763463498905641160828533550085221939907453820909855325171901467032729472345563561017507266563289394970760850019882302342891414480004273584873119438862438315258359018937353719719172239439089288977995446258789928100930687614820433023986036971571816711517374848489055909737479491729907350977361169317730347899012561780441007063171966642477688797860294277107568826641063265677417480816339740763066587994602165651928081359945339609624754084580228108936582636152838680260588560685867049233184603528643754287534286201479151999537635735651021270919230553254306794066550213696003758200626142298676813444614960479225781758700309380891741678857700352902431434885111136581783718993167846718027865573984050699521354171770282450497447632245349584875177555069000714885745117423972967228419796094397495098821804987889098339584475830731659630989686618174246095972436896899165873306043873820863955175372651913864731969156094216849417571660029901941310132825488694116925409760825545896845738697976762114727023304626434708598168035389711375525895113690023254582794254806455831488146081953943392734873893757965601044019077231059849452244303483155714613631180520216760138729552279053756749614665596710862073577794976850013018613424558892913109979692676954253002812265420542465302041417601500162314008924497152770218746582336646612382441776080070363290949037162977283662600929960087153122668409983441276183166289002295121616122942917236230094396420517668661900112020783644018021033008742329821709788292767241006849185369990670950262494047387775338326184398437107996984161329815930585567995536416947808944226700419920475069990336756616040365020584818440553620182067759035425642739717184337825393750557102882457031560596769498035370202698204513725213755183020118173885435761134138663924445110323243844369216751626633072210955298734851731086946782822798289939497275549109975023920826377032999838076956770493341221645605766556137597270033449855565595557691431383849200536704145987954268034141053689730108678926401119822031931083509595937886730780211336903790160397580015150613825053068606131476677183434086048080481481549341850781358297850364937491585966967093218232024931237069345526980359922408187502547822835915095842511849281803790792317730483843094004199154673985502870814077596756293291471067098741416169235641923353573686591633822736249348133662039099204399281403466119960029331031431361915261521526318033908554538552391903126022134205594333833385052020472202202510550343863615578232862017648620514816982045929750878398427802270696192256342158483949098556422419797176283284378565718398407412628659336009484776267439105507419137680811768832224887274897868621017668211320262233926256074216358876135905460411830018827359409642694721625489512486088570471631637036338143645334005111297431337888574677396784129963794486442730107629790819269806441305570120441624226373667293602039026316686872797363424424270496617486216447292424130395107816149437346680777857038127358240037646784712462664275638321234958961709627295902702733929864572383195762646580498459976957806992484751570311521148250339365996624905130597565506365979940020070844394724187837644931629894860054571140475046127837395999052122385205412622387513649634415496250498595674081639835780406762937800080589914641537681889258482790522135393371054664734285883871112930636243427737805310674793056322570778828372363652216258901885304831108593194755432234212841279575875226035474784813023591091928386757380642364712131095076448189806362273683460576882570791209185797932846744884945285128290588737447006115859397740195654731663175162074595910498643385656121032612739358903516461011755930445599313127505538207805907648068967212236514662490642185639898605719086379685999224903606025707552518286147656126523559204191104373600518114692316576338294580531684851336810488159318753339009996050178810679356315915514929179520581943154578833614601333885809445967728510865538131500599144868541087718902215499422356899897036911349057730386936040872326738430402123407681327243341878395704418010669350608320546343412228846445779673153246360727334191554298338221994175106572582650069619687896087506499206095610584314710321961354271507429826031152425757146525758830309508356681389185415536435826410505653172814212558704081518020748230578371979296883881383130794439599553657607217980733896686544429435916467621139431674301961479795920684597399441360279358524225291086608939292397180910479590097061291635242588381163932324070711890219994382010817333602027873661497949337315153036490662226111974769460288599312662061403146104476160156536371533446200002881722015191020840058518163995863765551946311500185502535299945774122808357649772028188038856701367098808907241398739229029886094730868591330570354693848204845968458071615114907883436289111832305040971896157500159734393878554325253414908838963438180500319484935550727951148469050990671666420417386887482203851660938963819928836986159997525354601161023225696723135210204953141415656798164732015191829973962197972356292761511454926945158361505758305708744473666755556095171461280887489645564545968814369486652399679505169666262484267334476502030704309515850172783958877771370422473363584617832925681766467922873509439921354491669580759082959772518521834471609053100342736184997991257338141361953873993926324314298045555608611546673716493749007353130981356642917500933596356071679104643605568997850643714720618224285904675063832201675972834968378907655128256737156564200379919742053474999057221103448147815893186660038394627004118114236411041463264849608901317806440685467522890510248002074906278046671023757955142837322553390041256177199374859823677812872354985355271273104937709449622393465331529813453942981243683460594558680810739464415809493907392027579823457789369851890552808029370200330097399720015488214356096476933968411949098714324461125671101782363351388150519187113942688825854664599230507808096382982757214499352044174190318842938203144778359028478037731899275416186455426020077990830827588506554875828857528351381879473295776725000984176401448046376064303834776766468238637252507570172935955819815885484232338744166992014538025140718154715955639476820734335489491652486227984896300065442725541117141471158037609029224126605095681089504847497556984702831834339769204224499827617708461040837260814445545312331644248632102543627666360473090907324789502414090901713528646422276398718791318317211647066871060673791857757684156727557861096977108843592549629085688652011082775548910430954412307651578703353127318358372503576985434280399293438880355703047611579157018212302563291625456174665353034881577959966807564380659898116382677272426736504502236250305543655268501192970999463068444095614493088675388993480331171666111922211924208389153123043444916049843353938360270956918274490578934132605543300920823350689376597980693620397358534665199774864152106223568890002394675676723551173695604426675344026528632927923118205745242414321244226414965232232049276703972389611427313021897357077476717445419249118870581188142987855078806139644620782863160690949266486921422468369135666299887444141063877673901574871724048299761016798776437996131503845107684393169468492585766256104197085030734917853454883298241893500438373296553587088317807899958030110653420384597184291204429760522116173272446154801914157174130442470591552884366822174590324591196191233696070174077469546523977915013111118368048485747911138069493435250483826800860188845289851855336596332438887001139217807742850939080233678023079215304153060755112246336131013961306657702653774752199727852673355561804675614297303390461749653809613776995729325132561273018012957323276903004013297651952940635655027995892677997875710873561658998466302857423602857792184689974339469688809277938766471637862201003274791934590189064461901378238531664695019602658011678721725446867271160774949173972506373571654887138442018887862070975868673600534588999493856810890170431029918536504500199167565823870226637193155064137198220878986101958224703082262189603279097881312950527002286140349449689036794845860087678833284856752204852191094002601221029886597770715529298543824947569401974926259118230103056605603041277701577841607650152873823433720635533195210966078393552119193944441116431674119484671514855854844695579647624120642494614226132753717317829803640231845223933357033066594651602211974725837952417187326514488953342911665210725426910614003822674514390437374845939679018658985026380466798021863283482066036062831896655939749264731296149926040314887597162841293677675428898202814473095382362610830507457056844405148393565188505790770552336952523414419558505487635390906174367976355989836608410324160152237337042686893357821680711866209968818206050105152243125825248450669074215739324918477338053820231205456482615364877372643151158970791778794097968021896511942190945445315218931243555499675383315104725918340311694626343813307330927457912792410507398121347969173266447642680918774479962835888305243329320344655255114738305931474585458790662572818523387677776887588774741438886268351506049905442287931910781095340074860267979152673057793346600079544567746557813546251523402997415115552911120711236146635006197928128655082620447414298961637760421263140136607943699210253906375016740128960788357290687315870203918654365952443262139939132188301786657607108717009906496054592594200934269917593024280670091103613194550700472288750717735628105706609286298842169289288248635610275015821235461242431511133309172186547662147174842423869710912564171072440582196347968433625993796165240852445094881134665609205985225726602910197806870898265471755245725456430819292101664099941549363181671069955299440525762417147758161394696504053734388296794826501492710017575346682893359904584325978602505149403603246500224253243642137128660577338668673959976467498585875944516396875823675949492939237396868503482433277293800532854956347864529620078925924558294436204206658192416931985204516747423029673763774565149228629211298827347522034585665127179997053075508220246567486067519258977661426113533647864915724546914244172440091016595479568998670899218819174851474949196530268598046176650045655358956520257295653075244818143992255871314425265549285680100013306617913918326446120925122648262619404553602708802308457695259116490260381559665765581504510165722764422767415125915934294536715790458409342307435974735136592171821069429836740862464827929443471881834050897647388280761019275903499274433679159380040007354913547628881286791060216070537458399702808672884740062458088811615721071406659164683411371167484095167785047272098389323756821700490356542262815657726150432109032483796911257018315428814485962907523165527533693587625887003534556459545215753991821767666524194426878279079839382574640984195163985519235361863450535689475572524667214948605592679192506254789684150115954121722003966093068760223860734105981909343129058287957130020546967700683920867969828364498306796501004655002239973172917088390562800053841400244678017053310602423245248112974415417141754345338524763087550064599826625926499422678507496289031797804277865564152811810969650667017333796373919906686681210828390629063208458107894605462663618681926657655910519305469301326378398438114987009699389695441509536927352416405392852518939405240913990804565307868949373457773687366357755620896669028490588709383349653886106307475164593536302965692273640547249215153890331471958554526689025012870559750542037255473935357666890208943631569590822980258887940764323346522688847204198223988481802123695043593035345298754218419870000658667048013185854142586182117513462406213862712267070993852072742986811627373322639965875785966238133883913815193595762719166347424599459548731834748017233815500405677978680553427737404947205899988832858717259203231218661199122702873704428499484640581540338555469053722787904602083170495687320735094093368732581343816407355420921918659961023946144966426621250134701288237771172801475191230021805167317056780278457598901798073251578163883939612394643388527269134608665408920895551094922344415143388037141436713991414780628019746633124270457860245493859319132487782480152535303548917383170027396977710724079524791442738515884576265350782827874374008149286752475318894144200245311576755770015716401253207599262802179124032419480840916613901196452247151784086417079603089554194156955845381551448324909374681935632198363022263963468198745855154298533667231166844996703874892875244481416606434955431831016868659437086642887059569601393224830087033815673042879141266007637483655904313196210895429927167764960258632357045086412530802631988080696707769663202619467564437483068680244787693154467579163905636993815723605786145667369564459255636128697375799696727668598218095827551116064970019962992429793277157201146524643087892039808583190967019734321559449096341788677278399167331047458711653900642604213272126584445198915773035733747349841138424736380329715883669955570105068023479695816539672081688389221234713140149303235497376189882149777826072804549809115545367549961977931719018066234572598644597571022038429121541922407945942430863997113878635525106386315699349494697920446710817697523895312516293722927483930956927093853017924446586597170501230886236106609780206130600711154297525702909183768815651552510191226062551414887486405615984453257894955955808075376199223236827819854928769720823814693046200975201552062945902852133449842627355053561626984681417994698622302048322163299790384347169649220102898724803045568775059216506849387794011801156061823297271570135566384127169959230208340436885045634531399042963929875961713103331732445521118321352567462664168586809237235431466366832806119208372325603277791881882627795721050869476062405455004876641597230787649093620912820085546644346565564650154494507155293250113688826520829410799991849090377170332355180324270510909383364142686314499645219591814056934641955438950739235371170520100762796508209348220142070411709545027890131047441646389661750522875580615905559647015240656822872676560430028407712017502988054395504297588135060849909306002497965531306808693260679328371184286902891065744144357930299080574841773023967118072829040384111165606237364453926527558090328258601834475836198847509908667512415400380092894465996806641704576460995866420055330966965236339202118510261649839294163934555745606048453066651042429983285654346030700920012023642386006805354045105170357096331905089559690414753246621379323863952420121930286102409112807316592338650770835439222358134523385045466967633014856643922243852445820287854848590005565024544202360702995347229408404174597675632415838630697538091245591328937839665161023279176752709237851304512720141618286158829099553573857242905974072750926024805193612355296677604190474600013359981233792196249190412940232217984431149428855178352565048679969774027614983578873728231494925510061076861788500442271880231477723777804274075125681610220887266999644580965024389148580086758349226407482908974219420292239493999436901692297509120050934905497098911191423269657396726962983694547712131779076395506575695688068902252081967025154806803737563884422376450935892271960861467929857845793028303658408963593611981188398900915355713893613946884220896074311016902067202993324360145470143564735395285708170857126256393962842600135922094371950583353948124923906101838718759752949556789210132896774089520423796449615984063272927582515004369220581333956037381229272890185339887962963698204440478263960528660674909641516931932409657137248532019320505690879353916822762747441190133970863131114294804178634413933601884753066293468462894226052970904616388427134413357956036388629496875798306729014827489308601308857088882769305264137633024734074527064623221769052349931949051709591428928834116778931859128813815494876194730714454258566965869184903090517984196697131868832052214130750255040612449863915488568096560651477161286892671946618507246173278337886513254548166314675228194043195624398734685312749255450594549030420208423558830609941895148148155443811497615588239497033797118629203175026257148362186404825889247031304555323660843145224187498270106219886192319399555812214734595151200275020829309487769633109479420546385985390628108533766983790058299038762414697859386477349964895233745994082496299409243905986678284524720402606351186758375658663154321091785093637553908255465687078146286557207622143110824366861322618657744063291582472718536995416962830220419296348048755087325854174572818422528578096177328914775435541772235912613240703271378412941474224915918584525193976327805709717423108493606556660119787567885463626964400663594839824352195784581178161043893685040399657073847722893267458384443860929795030015732146225524728058689983329967901382983262448448875153930514695318716463304135862248631911327840467849203988371485387394452158589830660002373781720302803619226836644681474089669505580399360138264066484971522414665354889611242920343790845245285318180196193204586909153343582913454550455404997818686672663536611261117055251645348279045786575250627245970921339748469825192634763047186858791564277333917178012575500050904146684825081814018718395546950117753120022316793333033572644481210038415720607091941912926562508396758020057104825762983984910094653785724648556812064232564103240980643858500641209317380623953396203761536071000060438540293495170938214832419208865245822910875376677178458378843024782049624495387032706911123957097266259072306612130678491622019600466862681085626048033028544892299363842146328024922709412522654632608188359660850458595464881151309824798447162616828459573629371974268677331529524158218403901714249703947270329611977225383026080704195601101512244469140277570621923228175531857131962164859572029921154473048039311935303145051741992459573766333666327971228280383764306523288762374165961801345704832372756051545498430535806715172985658571163974714391403366848947698618261531646533794393475921680520804363012119731507448339379055770336345147338142856071773300307162523209004487536301345104591689252759678496071223572645386217370243966650265968324775585386122466427877886140938741362030174354887117874484354006615963987696545719894699951498058274709573344351145642496460796848804950671397491325417951528430348060007330901283423511467041588002692874973112445454418294058315769963927571824253177088289099399073276423348570372348571033941052543005004204349125019321232808922412537932916998684600043431245970550846393628455986426300048531742458381126671200279449273760106856240180973558983512932412382563960089177999210315900372927929664974322879521571368826824314173023447844573211305049458270596770222936251479559987471041479906572225034487954701298463760555331470191320405286046301969794373415570898199353684949907843408006877014617881708666602003907648353844133189331479289498161972299724288469488225997344401975386500778461405543551245361520091227357033713440390003060642118378910736958166305692642552324868742830612492032573985944375675585316898027633274676395718054169581345316190679741679195936328469212058655433063246645523756593681269729524888583523841908789009150724870333153694227170112751026190957596997615311486480914668244392740438537290008751048993172962762494099538616381305156642356852230628712618709339126282979618702815450459528054168730848807269958116853065523302425187968539543978592220946569443388506833246622720101770611795799085356748639607234735834646998715928793144727542949256051739409533443940473425035831002548409645046931617627953456024762413802440082126795110560362452855214746292790828477473324842358157809394789231897352328674336370099484605063253198032690722168982900656668791304930902145035023560484937973428383565545706884963635831082033261572729006496942847736136382714008074025434078574970532807975215050132052987110196395187023102039196001560577507603404455697551399928240201906078191071614298067921794859966356392026067057005439084286198881991266913751966194306976814051084530260397598743562391738706922856465122902744324765744544729084178736947295510665368333969553176274134338119009243253182883620402287804912263828441084733324986296746126712718011264557317688068404427668960623390592801156101006803124157457257009398660083520577156412621543047367488680481457323602121793084697678866461733163328100426678249427865635900705569647908364269485802207406148608605810382850244290464727387901749091082409158896001708747445528350879584824981406397372153762024045347047024855290712215827640900846058233341319876306282401333964995650525103096651449508854440768912174339197179666396702182583023908240977809650313096354849985941049929346619939306944706779129604999632435756611311031174463840932537216672596793664154128404855138859443660611319648214067245641297022415197340137975646645391925157644665420834413334202992468676957777901660409451342370370525449874959147564692289463636943456995973909252099606241805595192620560241499976077161407265723839757784613201611948161421160869135962816456256099727076796922173459277808192063471607841204371424243755694302101006712203836155872449311719900755432861788682058281529825772483038363328151586867653198915578027375522367233167287600144961685590402338226644730277676321280917135976435403296579795572850519432814734981177793694870652179800559998600540103628015370235755590809331789386038220779511702357136207859394857308892062167911677372810091272572920208989023642739743143102054038311593600088882330247842235876954658463735549426480909855859280017441132545495718773597236602292694897100176023792624009151367391503376244270893488446387176547115929977893114004531469198268618823683184534374881349053031667666495175740935340332525267494435362114268785875744284953173947588630267751134289008654052624306391087584801721203249995306244877776328895389819611673219738360446573661794239070491591496619782361869398898874241902935644062213964210182277200094790809343884204850390183102689318773231659353454176866995740300388845206543169162679727001469925617458150654397218636477499110941544391004642868608019182853607168421822908912421763982861827910543267435646799749010219423393918379040996290597532722280701195789544785539250949792234426821642666973421343753741024072719663355307218299471574161886777623360476946817383133073842666237348620716374925610170382717944958289903349214244700609676419693209315802522818798912585723294393671389532731350712784100345546752894341504088832150381030963788188848146236202706648542467763726360615338869555770803660770153962557817687317815087532714908675449331768601387699496373363261005077701497444056801702632430788908857986720572305139046430820402350547238911471614302562424821835263295093888356000543192135911190304875717972180725779130567751397984490667605791354453114438204125819125912957634572316994511807915718686549951109880905983343965099052248038564164202240259524566271263809844329711838787392185496351698432611336091134325144548044332382992759142711744059606508613122305467123510015692496624732220262013293092798345123837238669642327958561703753175942410280338179462841078858852614641975012937001496274289189727698828119854657083381131733747064440485478510485350634687696215643704023069700128191012573498261838457377263335893794064833299897397854872033779898039439501472266343731637961409415890171121053020692623624825337318080330400848465235292590166225720799233552368014230231540735557148141513558119450540918564990769008992400064901665169329950123759218816565928399540986102537429825431013208564127318954902978306466092810456663377418777143221977149756747644576216998262922216791051834303859602577156673063666801944378835721742165127233949425667557152874519437795662015571467801066038836686950433649784383194160749746257384685276380877862024502980465380602175472236583202924468397401169416716679719394550414945895128456161066375877688995366104325016196434646628484280227428685635225394548094199488196862033716760832692068610859297003655696890920555187827576500321205040222196150781249414584151192982295885304607064961885245557851340702156898700707955121105703749812959160146783508877028987360800367270122522444069602653774682316353544470553199272805650142813977106065972732458522368765412796335270886193601861457093005609507534571314911427138665908583756621586525477210652454807512341921225429960666446738737444658990602740306906642672337408027137024471090921736982011743231004756742758177113683975974459664075925930686891162491839966954528263441474064523596521702079027564137748109418801816154359385500210460969104734828849152162374414682145228695776440084532895595956644836972186499807883998461638788999055249214876001095045415966750754412618229246616863216590805387370082676455470672979294380621663324802154281011420467905115076145761480978752955165929492648039786949658627645365640168087356194588407261070100508505184162095549951298328012188513201108303430318520260422184106450561734231413879499013730360654254299700535796470875496421298467544595345572538874353215346179162232314337994990757993162586279961022038088836304474539065657625396373686507524446718505177484831703927826134391866362402634422493488343116817553262027003243884958263125454267435033253694382842277336953390489840464220963510440262291010563915804211184097080945681286053851710129079533415595441010486929443017577014560801537917013772676127229584970470060981051449328714352198688452855042863564853661535876728398453951371801582994199974491497274961179585529008326507002386090103171857640958251777616146644579560998029129578727286190932091031447251267283112740259091231941295736152754058412998830308081895381071320758855467936211395742036725747451250099695507551413277646208059243612927613897055444508095734955237912003997165937722103115774724966284367065428950236573109223039696325881705740852960090277486657335049526496559919395401288828820365999965808936336903963178553298825031150407080081689465258258615487201043418819736160683954783871431340370607860350958283915605631058908813812531745789846286336845406039180379078832850282692939974992273587577135047107621318332926036262157199171805290012627857926533862303019204315891950210636602092864156432684451310009480459601864403510703461977486712036974360928833902083915619233993385519372260922353396771576873000461500839259798940931054285709032077596926164386306981827653348658694334348437396362922650448984575420969715807890763560366856914806254260193097888625295042896388599109593561804145897096182246701276643464612377504229023745007402399714347016904556387409347940400103659925423451018402574341788213784807343762620630352578105897228643916847671408397203125855385949954375208840133389059167577602275247118219729348178134794284609247937956620868699241023902663485186359609906651951832389805875546301698013767754333100253572316859852943699193849605364370414908086776853007846867709708361952618437933170254645629705488202330977163244389091101005074730241702155504695898758207869397653973271092561575968240172367966916039314691526485532823323631787747539993692613714896687386578146861933984315053809893645192985376103456510834663149857780329630433550639896353341808967559035990716505847968855115815620298318013318027897439324837167841075324781741674100818306734611867675481464158254056803363418554603373333174038365872029251973309209591963830925538340426312477451449445567393041877495826005020167067831343235778252778763955738417272480151735434835915685994751439381884097391364412251798437940216026659505398691877096270026097300901624384463980088797564216726150112662162581019731329186728750347128220383306817124962566861621742324657176660461758281872663643203602081999107061377117928746198807469496964665181694189935370242990882529831652096215604747124900911197170448047629905939989944566143340657987780007925342115679705461669982033439303633715255044026805394521477505856044601031888100877701514360622154253487152743057487654478671551758428464160688581706800634662861268960208433667403177433728263642763689872994617312495906722653046707251312700254869979123276914183665679996770005846131175416822629946031236872906131659767701375684024163764410481310740615415989074730207892767327419621714570696028769293237093385136604919866193646064541479189411190861467329819815753311321495772958661681111416146637488211925431120063245609581002680980427510221297355395010215453942149399008168476437647605184049650862045967607677241404161434307119012039012096238065904382239742729914411057579397564113201444487308514657615229908212650026455243947804128141903888690128566998622261957146734584213282549695993698848106844816075935829996437560096054841653784524237572326468756039403933336015082109358960257927174155137471212303941994128648013207172043935124059835151251556628911988578451046551915760980792281371608312791233909051299182693729975961794768376419582501204252944761400340081598923147326862538572725580197120212171996706568880298784336927617898280147655066512668536931339280564219629018426914740952301289226059339745843882015827182215351401933728603599180733972336960812196439707089369020598797111582014741831644993702930459558823597979957005237839680302505962429068753299670964210636598557404861808247168453245088626190882333998007970270558745287413472254898810331944777087462169484836246396146936472674498413170215728730831086038924377679490188359914044000996200108657148282033719909906052354440667182071172153742287679880389111064750613069234480594415415007829942563874244849888840926896036218495888769684180187491448035093521434935896016560371393944102751810445667096069887103304776316650365062819365590494732018353512227732703844100477258300556658046478426807523661536055516661435615892363969391642494148870959966784773112688227240707348700691462757904836727165514726237490768041503746328589960546347167891727377966707868810135841353083734305553647628998161739764051092559527182690552476055685497178891218868844731377196720602101902608594915965814261438238962746436375892933631184778383394352034687886798554677272326588367248017614700526051849694581015316594420124586959207585090565696389762190980443048571581596259152507002258756160501780650832838754769955419288001631172304371246798869951349121426137946439166671099970392517355521037089959474435486872477853568324934937918310508008840431609637694727772605557490578495767809328241555207937400291481433971686553477355160240536728507213294870575693724199625828802572189799720967524495696874830220351652492420916174828315011713270719826667945785490116051268894183692671166571673844905132005743169163229700567778130718179434553335880374028880408446265103833418529193691179863349723580169322827855175657009572304893199277127933879234675088351978167752678371110138488204423900069375205511331645416868518041077754672293858189870980909243087130292773503197527873677410462293581973612983917272554258997278623740477352521539662149308104256205325424129466638572103350534012894423078521063873884865431154485909642363025561136993232776600319554961999421862954068002506268719614116689686561144799450007775964328223043610797980896602339478415166037037848951883562100120562685705746338191353413371321572277647814271204524748078343823014319390110365126817334885249661436599840786777191790516100537396769168606977995397805549290800740032699074372346488418624702491721435882385090957260071453396515354314430538224684560826116467128043062349454952364589402162096813032161116484010984889578555611207259858253244858589968348042982184348772335924564070385143402241607086134134857072436648589012994713148831189183577039197372196380314240367946858966628566849737305647750304473664298603187440183393218020629748285163144000141077884695514844106146046387015348326030136684841167600848163671771671296741899352863729074393360244983104575786519446286211849992728617707105631207976217104477152865965949447934019344051181914827521620402099841956305647603710502105285445215586324583138661038737129765493700300972538031978908445331987249734844846293714707243314169936523755261365608018717864489789549198608858007140281882203875064819743793906203609192899795669831540258205911863661648406665617415035565067962891302554407546038692822829583246772735180308497561781488048749435065190538489540790871327287971814467299697865344545377403441857884114174918324255981025082761634084943051531048685838864266906344965007002490037560056125602508608067148840597310681926742130246554718240464726519204636985576330280178154759969063889422937470390568625958735497342452919283714883089631126560808125279537227713246304577058476351284496351413009674833349883180301109628727058906955092247646932976490451077442200649085567842988625415997788600822758410138473165016351133381978485950243546451848218329430484523335443961313028570627200362171640314072464033612898382081984580552872086776140487689799068607278339967297477282685532469451707805749586926388109171725317590929381742700087993798998925796396465559878398011909809663795198223923950528157264450751210082770989107818516475769955125240175532430380770702606528562161253016877907929319696565509283035145329358084789343409011862397257776200992778918375495760058830010449908631245230533992982240171033810413459890793390209957444193912982131769588689391377722265511268980280537717386715396180578550620566792401627747138759132083654569063711094170227600091143813313342654126290615014090845284835486476068531539115145464644903859160625504004864735016969638068764950269011800749080072719475790423915938505048866752780448818496869150453752856008524268844890674078296668806023455730949177220624505143788818406632665118197589220518939969158653527700775904582173871869551259196857332332810704937931689625699622849417210840575202019712291425109765569021624180680420271159768266182071257969320296798299704164577384439305827666842250006101807377141163448861308544830690723678850369631768529926333263731912270790086130502360371989265825750872532535781847940391129541252098116688758687724568421944780674858418265723437962818743315874912846650024234995810975105487382293532943171177363240934159651598092730612533196427391986171025625301453721127261210462908634965369398667003331262565462903413015563805306994023125045804287362645114608393648871958202460035528975823344267066322925929764029679352725367155654570566679136604423835162853980206165089679310664718094818013741987181194263144958127893358347897934291860670926586261122348384542705548930565205389858140247202632347088904494226495792869072601672359024621152078257972443624493813777573679858240197338485162349774792868952855200789017763302524234967948053412941195326673500881064685235597764713889462899012357287437201571760959859697709826980728757042870927099238301281580332506045484397377017378731668284193358589688405774837769695288034619753827635199434382126361145315096448721174780706031559191473643156197881231794896138805469141359500119835868975466321773337263039148279955647108992762930331010952450775524403104960726582997892485905421853280791370299636170593751360722718414505273759139658790989853960026053923957545892762765284445245484579543044784668320138220056341097021500896888956430761508660604178284413132918714641537383929053658528954099585810200543910880377352108979815956321563752673008844747226569038815033071611188942570954115528766793736972633566133007299138118173413232498378928005452284872205484592352482656612503564876911451621500830901188718901179669566769557050864634512464992672888617819608114105949661887825513569602996983108076575147512315588165343710618726216422462276296193437011768072705692767234069320117643690914641402736570430106513990521219754242261533702629241691690794477694363081618269713165799067266972948698339366142342943481979149737514707038923161629183219115460260189492341462150737235601933375708390768863777066888607240427311048495448808908938892394068217178231307311470676927369464811665006421350135115625058423051793857396415789843903960584708738271164564743012000393778684287831963800453522429487547994720732460820550544249440631086380277774159307962425903204112620200920118165223534262000701808619666770697061020023380159301054614403901331700277002540869644674275646847597391517226338101885063355597940270266327695422568543481604319623145950827720929725728166228499489789057451671325468599267781887816400894091284362950469520695040027225295247343789382878783579690514780298563367945758432538243200208248729137656414408764999744275835407634995153521530639801283525721662602331654445436779249721320074913193436710026845481963847661915821842774972364295168106032758831313654530998220433088803386043392290194756436731402984887995477149801937715150916302497853938534853823693474162084940611366635407535649358778138335703203030589512018554896930743209938725529413159497818499397306665870175104942931149733142045729785968321489684949146568344183665757165603207067251271928464102087827082405041273379030834672410874274501242820790869561043517809842748643720678824176143959846750454845634327851254947972550167280390532548130504493884253924763010298159326312423670619286443088955748244800563850595415615092255182136568002173150180614036823769402045699689771323303045987931698016833270446388559078683874830933113755757916334882047226365729853193932086851300520696089609217445238894539768565978504489924118891723586719345710920207590501567017498956881672428945470652357265765541157266325564048497759317137717155720903975778054172886286263117329557752149548387682513062925281186632655748694775408219366531640684463212727950122130229832746971677283653902582683854299122845311704170981514856964804602454097068569075121267295498484064582719327750325665401274962767767391958541741150348528579987854858143674964924003349317390525636261960405909950854292689610858672207976258095257920443292054563960621935144192188822212356648634768459708551216593263626211089394774029267840393757906988938002025482010867532569846177819982392188234788888181896973602163182191523469823768369251047267937168153205345208583632737684556733837846017714629249028161868846685130046958978442495787466184849619143254189798738070230602885393151673600582082750691646277988204204135994375991648638028025799545327597780763532304073129722294277796939145606850810623531750110071840891975292531279664082764561223970826753382849352002810271977974993758878193371771299918948870139326405184622585700574971213199602675938211409037825020496113738779801308316436007457573550912867413327512532717241962493964271179115437193323582934155457572787608731072974592938446226261443205891949081869646080087057959554475470704088860458918903385349235568101923830334516214234549455601612166910168536623439763063678648483201845995886074034440026560392102375742966320842063824750266669043952786536484118021865962144524453445650408189591285971130899914177038243782469826809762107415341350247974767401209758384229078124134064018327981699862949373646900272349516521745910260492703164883826892552431670281264685812819027486025805261179599326536982902665950055120256707138331857174081111889382552485843327983286709952819117250338723797727098144537839709904895410571350572412963107722367983979596771152263746118132013710196761479037914156017391909388197023426845597635745831078942159482117525122260249876634344009615780432714498387210711866448319044768086626212940548146346238320631097875632849147318195550390379993096554387066478160300713364136259533044346918474159648233652200905517507745144673904346203616237284710672777805982640737831497395176131873650642588484637710886718309127524555351604424616749787891544406347309323475598648387727374873877686227201235756864210196198432270906050566768940224133053822927769842602947239341273320759541982710678512701488819539047264546874965266206434235525382862516378475822943530068713975529462021540119882050797908238800373446019526244918915838174826322963871319191815068943705511963650187609862016906895265326602250144250056057739410010570485668652248436924760470693119155649453505567837457262872748009260521627591289886384045338242221940821465844569813123466509476873233482235930339553779171352635892782565920603614614523031714560158405654630677540072543346025291905734431368762423172634617948032000148969800389007525847766825729901166826107929392704342980453817982898556497947235070215305720557019657719472733924212919571720334954802402179962725038060476267570984073529728014956658059374027155704260147638542566617321660646039564739710044900120642198007888042991429487985777109033886582393161821261615426433853581824324385186935293611328854262895002611582025015362701294668615113455183647241028711671676210467397620810107484870719894490691685895416024531976100925061192427279937257006350985641214600022215172177739470893362059106731807663911983933229229340715582892731723388327221715431642932833275569908205318763975225011535646444331176273044888543441698989117102249123563785990262683576530445597289760460828853050164910432922481138678968251179967993703295503350658022650786526974872988936552878247811179752913627877274423009086180541514130208102476881922326340314120415194822633483112706581589974551921554254797252211684565687642228503326914125514253412117712874928394350121882795559837254825370009374227013245320681579180284584564950165115097650776802460057146073914543149006024920918881607433861868775340601322400971120298866055023010967435734784565324715026349541941546823736117396526246993800819663659526802721833637267714675283614389042914274940492572850073080572971982268361536868962831622160580427322700862649155314460707872022791272568502313646502149384320872741218174070502807081705897788949251028380239502231688739619918899538917300480008163068587176971189546329718580063914154869600969666474393173185970093913878960107873088251240880934958381043706164852167801474641627036079883374156553550146691258595863619093143697505879583520289738862938629047098539044007228247106342797795803649127205962060791733418630478681470023036327760417452840925626907416964372068210195591486965920125218119655586883077399031095063596895604105557104338362696878773066523936212362397391977172921533051521676054857240031151786097455410993804617906774107983293453920186446756580519375968016724243158702511762255963243318272958427876736485636380849939634216052154234695183288751205438278550882655548364463907648900391691896227128024314487068218572808088185527381321220049888334149850400579313316904330282716429363120082454070231838818600633640771905665410447592589133542436031585485630685744098404860829716887778043419084636756046712304811523192758246014609332784773468377817664837264387674126958834130264058515284207213089784362665880910645129706090192965260112023187319989097054915373661729604136113675931952352584926440749570591660901905476480209194342407795637434706509520048038765403318411466988298929622937326365144763467739265222672918872464983195080669700306532562851825550087038543387823201527583108304162371130034642996643428813965940976152853286300892147416425164604786786557431146720595212012432965594702349992164883085706772875214178837539491381771317617773508415694674249750847876638686322589499521787552359601134846684712302959389429717915448395082959443758944626491260190464235400733003820865469501365439083322660552512708570602210669262871681093276911440064602310270985487704725193801210442097905663511110024021203449411953100662728677114899594098501521276100763980097769822949084275430790826052748745451209457159003036390298787641930682710900673961194746831034718804097990216506728177314671862747745381130593752887817110949537069328905602619486468533758611099171040560559637458150828944736266635428163919901966119192027194662422863850741696131293242912507992551911082371833305674617970081547786571762857011617239052048427671382751034711500639529071425249499227359054001437911855777526993611187538962434122091259752149009139753562202216521995792160357949092042183538106920042513249990614653879426468639465420485629812061509569612090464288826858341043049196269297802025895828777156906740416178314563998966063591244178071609094581664201434591900968262964591089680666215311612836397402417836849181090231104383714131617192550928617013482615172103546475419214316524691151467185985610501420070236428948968327306029510062438501146621236265530657224431369654984969129242919719986438078778263514015844177047155278348390171790371996671681279658714107658014542747944044439529016941162414295439251869574419492562237404973268355427230903613862471271705590041192763581447644467100646723837554566066256396982430820274262533550565499457391242212083534335648399188211477442037395947467350021383210744876953401391234191028027750522839524031495597686248439507594890338172759491335414068443533062046682354704971157457930622322017737530063709569109537378994791204759491610212132405437868251934524693332777272001435787787986809158251936677932460777402996841750591683440449103794527043817739670824022940389744462356210850313034058106432250388285523547926087374600492523251759240999299667436505468163769165873895324015401117996008792110364350250762441476978855935844877127538574948195230175764982352715166625230943755004706375713938615386312197088662507120010537512248328360227446606012463836910729105275452474428734393727155437212552024022632553391215611090699321278996368770219992401951445414653451496021481824832166545230662201729008608595872663343278536155901181200728944981173167057255881385530042674340855354937959341043278340673292766088152299684761699119190460131684104042316369976457159097607289206951850874767671547538065489770812379547513907882116616750914842930785696665861985249309529215066267088871760163743092760325205278341004657878624229148926219486652609211440461519581985192635071956538165151007952678857609878295552409913424911668265121981660394456210677872551258657689159433427612699440055607873190050751553100088060060726792489791704306067121273474967777409557416302863942197781710633783525854615767623376592040410334544984080746358691804711557141802816303693158549624331346825095108807926737600797089640617511664939488272307516094848883510291408084795295367672137751261918114281067217662811941677560973148316037398529796302578101941035992646423191337216093863736718071545925078474665553554746863263653661332316697037203956383330143056119550967824789705310617058995004658468168905998455421288590268098342547238004236072250925366979156781282051946978699131886557003154635569912425570257627033046119525117239664142347788363518958833487808568804364293355047569738695055090638952039187810521914084726790902330508303801238530229131584494508272692140299004298966318943397420020370722371343816835736965762226200741525581035908718885407990240509390466435512535275211990841499123124000801741983066232184894996412024421141254988675261625993394563797169781042375366827717743260551108673126077885127639271887672794763414671670503431880073124421892798376599091834370421748673328057477500301378088122035831225061636293571208710610415984154238448277975613062913869380342743141749834841015690954185986745604409321313740055357378657711474391144084905446345702017926947261197568205159224228078048484901113569891844707099204537347666010361119089857395180021669779570384642570522743386337092205040782490205413145670575928088898796310663673232865424405483438559753930507050443051873847288481730098401505835244145069465951479165150916242080740429683908108778935390932844946338564107996075987996209588182258598007705665851980698939074966299389760345724293468345916501916604908698907122907007815222971731110382895404291735538239911731090611593592333787123753403705206746074995581314008536458338694720790764937503482837508027566394485081124979182686996840374084755862655737142750349992066203311189133297167610640706336982142033733983119182059412379611827780978991765679718682575754483989912409843167365570057509943951240943726838873602451256524787109379136591633422556023468837017519132798662335884970058786842869721840945362486815849902996767061671454887315110826485466988986871415109262894353915288444231017443631721011111054304755820625319335651011696740001073022941327244573504389543809353221088760583707755317051764638546934423738967019925022828279118197946215686085422142853042664652240176801481647793503862454205372146857129065718064340953234482396827925353182661055756511931190615373605568196802530775066300315734298067459774749421227923335542106209955701654275804357810395756495550043697141329461234384791951813590995264882588656671975076306028812996081998374807880021328052109799946691907866317339170001841696162396334501331514784254661007274401907194100181742404652498620547564724964082854326935299014959167523550449849879692745484546311384869264268765424933188419229747020264874203211349371215684258161267522246250725645294371804311265465078997408385648684117546153212114717074973789310430056187874166576857882202750619651665704706601019035074413931973931284936297917906965260248994743281980819837326912432893451158863546393015896881588066032144502303107234907180374355372093350896912146262354588460944465959887431501792423651994867741218445645238062028108469021437552897543660588331640724750657338541840752421886127262526231751592620258242669912447349823886126224782458305290454084345720674383908422462719967871476690719534445085414660799484254391819586870195139235987628676344494349719613675424394504968146100015081369466811435079891627436611686920114257757510369357930597163735968840332424568285075912051578288058682407133820017614668755064218197199226463515826705052278615897567328834809297344316982645882812967319819673679528295630532832840279604139081181279701786281514462112848527389365965737454607232553831187055440361383061839629687861486061295225975481291565357028476644940677762439964491524569086573333208426716404673749170157240997111660693662183828259695835946610656157302351551612131600677278355386517275676452466238630636296745107926020193910446107694954757660458538977597508750754118276111856219244267307862739875142031023056232260929400990632258524015263545300289587044374862774193236119366001194692185860682024767448993121322171724404849553631349115127609368400708454591820483603296102195756516251178332502289454936107375774594288477367292475352704964293980731279233743237977331193254811728970026860657774986680001969847222784611750445684648937753948146400014673347215379583745419646343038573315651867975289764192763404796761185751974052960385077919452874209988775371262678951007907435792632586313233516347108549818047284692303496766372629451909779697647025630796591487371543058644943966030473463645055179241685596320154149864946715934499715990747945885002731249316468144441590135479444933951691833486619354917248525626360847671281673148706320735726247745095177131705738931533043511341636754195183232295269024106344530466069214399286590091397971802793558758145449842696197256583156088952225548968363107826193917487382851035313231351302596063215137168917224749544365836191645040203000523025282102650935121999184063067146404364488666252394736128743991131256338862810006323933665931486798548298343260561356785097354238285975285877317689650284205885463084108316392530863899837649538940283189013880341506280504567008767898858204520317195032402030633365598577108258944628758493950393869683746950247300959480786434091708303620430976932406257108407753646632580614041045640580294878751024614183127034880942574619282571752393877729282472310763667270600127541324494079982337323046935000248547281523946107832138608083796912842000668764906800392860969064100726371628622063921212823456662961447752353311267190486301184421595837835053082762027451104261418241941220118086577595427449109560922288167083409589247042148362732099342319194264803619165726017265794689708528104113066893307030646946522816402841862805786196733347746038383841326720627935194793559895141414143030637886423522149940928360270293276405046506329577627376259741724453880924778653409340743919302632629597111287251866841301230028737495993456505785972981371732137219157557711948861832408134182315740086089412353222513562074651437370503123077047587308528472506291805985439561953246637010275753292413383054415718951122437092520018470982888445189916250748073089608114478010169485991318893647505345767499802775185308730271028449161738940404853836982958788757029577675877312514720521187057403473724749099384571626154515207988874367298247104716184503847321285233782854031605022050313265701109229068203224827737780733968590114844236137094482319775817999601083289207815000705219400362103299654613387876962021588014157348627453912605304861495847068133940298453217867969245168942200103171885799621527778554694148370005764302912230872690147897733201462237696132658841185606051419987360074870421835149225959688073129791492664019059575248251358731899143148523915579751006745948752428167313225949527110304975087396640904423141320516368710704262145540525005585767347115033136557063989301898385439944393980349901597791022107596171213804899475500679413876966491108542578307778420724634339515341565652642410011164615490585232066524417261440402641418407635961253688903573586708621039401723774009410675496416435536723445303876311045502164200858826710617927329513455610979051395610349568984906992963214484095810254286145065848017319966980543636994865270221380506740954912705927385083232649697757615720276359336211214368212666898771106014971695421903540480508367953985780953825935985873588413658102049986740421032454900385436482619192355825919799040060002919753147257499643216203423584362373706081582360572366194334046871305056442921217062885544644300826942517880542471428591402485769266532382454397653623203268165647522924192601939365034868822024600396407634100440211992474637423572902606667941941687249098428394471594882293270449545619908334223627668598348636099572998879802577311230181311620712256406593910196739018152353500838490011944017335373006187432944232228250730038809630992601108119156030665203159278658085297452976019717035453541922472408542552715941490237879573684276410812670610889641136559796332796980828076249800130740018474929884384820752830512053472039380539394104210210616601992400227797332363933006206534479843479901398594882913159086842222363078545571703523008864043164695820854846036986510745655343165516821941784166582470608471261710767262773117537788484156630629133936894940631238174694436912106115926396147415732942768879924545145348880638775469665934327782332812611331488824361588517108892828731249534418586121487518625476581326157650543957237025283688898909181893546269353313224623212387505851819586396800735525771997422244332765743185449921988323906935273512491740824338493396427233592622066167479373877247549244726065625986529108675282861775281648801857693219690997678579996725148500423547251892920251936581869624782647767541772389031976660197094684776492662851897496584127865150547780668686338685985786359838657538462399106001411176542383731618349085285860946382431198138549940808411300778350252213864625375181533688047598814913762999920034799844429143133104543286192464919335012483843284646170749292452834888378820101827949235171717360245214457065607050158190150582160890423410732668587894018422623770505220075073218312813518293748845792967951576963521674534086783943320847322631056766197031254134310034323355010815876778383261750487148304812279887069277836154625601954700060505943291103506594678667166538731992077691619503401626778157072098044149712559757757764281517248256724107073130951435680239758585539959391319997463788852371396494813010118908243264632200692297983379009817727972592711798054573969725991111256100934837499816950550442589634006326391763679800548734364247430151083341141637815507816640932567090060520031668783199558685837794200477487412466865536530682732905520104581842798539382598119954701301291084158808335562456182873407393400248799126363557638171807250924758700537117891893028684509570282191180296891862319172708254865126125136663583168561552646603393990840023314137086392873318642009309976326543549247617604824548334542428196778776521063028305445747815638623441037888688620572867695751905463266825815339022051596634036521750135719204674272872406931125562682049492724962883803348041965172850673837145691380706484955372825323131338379823104483414162105002949954856818844216735611493824361103370633359912398800883616348590738384593188155803759196888068473371113038148505632017556130318047763734384554957841972973750194630933991075445735171362577646361670240853322368340179439078358443962357049538972021547141249189267174815279584309468522370152388794280666642700256127550529125603741541315424441020860065755510149229019925382224590268676194933983251482314529641010269070949822643492941915185157310833009117149932279326213113110587976357961315961128888822679534379598091563192638464907112030021082428475179895352785095946995719555511948501539587095720575569180910638352684378402010944367120500276349532827143882383893646112864451445059297255513549503320200172362373048464496804269265150661084934902096897318344586719216439126489569649765769760870490475803858515211974596052932130950089172612318100412218216239429202305293918978872382298293787922061350842019787879199976016449723560358414581799725719634615792211423078223249057920524717722151620109381530342544414239967043902694173850731635118456684624745411305522139622331261214321246823866998174079047316610657715322817940171435712911877866721629696733834377657898166824834580229190236906552424479387273731862415256701826797856348534150324255615517125731830380720766580455260688864671045601030874953825700661271224874947188804014306845896059538908299406860707605728017081079967371903834023965207228767267182500034771342997861506611759189061313290585129647933820243462205127317889743682701067473437103035121243938782782291968328882847125867504126913253485305971839228335651084088420006894986655675680408733975055469592080044698082817918761374826782120489415975675138995194272514490147509975896823466968020738889255468280863447280879833207109815883656461232915148854774142174363042901052938806267427479253166924103009604626187083259505635344073452025608478966345528593583990808245840625559178415925074277419668859679335287271941032515235905983617939565711180415686554520629665566304595265222686966620313698549403959616565108467256292269219814633128265460071875752985879243561385709115535683481368861443506808401980873517951497119532877376723361652616092050129955249604117571063618893292563409798293447907455690832738581767993726761230977981174905297936058803297294888728781867340735778234062431209863512519899768069410708883108169449140688799912799299104943182512763603106483957190262522558445582743965839674915971570863537906674665034104498788441791860337278333709512397580319838275068046862882891644320891761812327745687330619212833815499570363219948504675008294764365633475157001963371797733081679078018003290710572843174746060959582525634982528890285509269706755655735892434450204506400846409611637114579311515898813332357519700543796172365039383639795563012128004632382129506152031091896536579679012026396843188263917052636263994259118356849305644028056583800130386348436722115053167723483001082304413023540106404361011881873752601287903496994198733099247977071174757663613603215081496439732576161143623140910984394966479905978306369125507009843544502173071166187714389802156674299378823557952293071856765563300483006592020550205020241377884204724073283239175950916879004309380008465328957929760270986356788784063130800174239370358134021031345298317196432172475094819562476508065778865620667574525627379055645956058190320279040604846414249582578037258165928289864855151777469308557315895112353729650912599452469186093478335368978262158193507088010966138651760652668994627187062235818196258322312146724260096544359432240904638732006244667742299074529954336369733453750994906086070116367219241652837473883480762169627391227156418941598095740504528423293293342165201846684743478582426221916044503032463443648171776655879541012386655585444566411701995983868613842257509717036375104214394374627102233706414809178174482660293373970964127494890294280285652311700227862576413236303801309455135783042344746747987074489989857063900587071889783030749475826565064738416710545498177238391885260509623344688145799593546695778632011401424971148268519780663446913107734451120157985210261873979489247954042808233128477043213489978987352015959134473745633616637422726531549020694826987538774119770141842100806468659560510030395626721750770466187124103261456169787577705521680227852114554636423702771162065467398343254811117801385534169254113705240574264012784719435545689631398539207292107303717894497466192831380243036688234262070122031806038251917936346658540700416859222172291526752788179407747111511198457521515467079842672661946469586382430112871645105622798648603327705047085088547481153799541681671478494896392968407381998497191433498660037782770681835862497821652731412354826016498690241438495248480128170331801938347440956009081454949650698822731219949545630703550396337924128251481023980204439379752249720153995934773120415858651119195323753962851073169870615835865413083631209464034632141112157185642981131211216916108582798054054217334283198589466952478677064608423136556072292566862073819133329003860156650797721537802763881821873068652616501573397862131410950058147455842321792346027081846768423404568150112391927239147165709485937651459604437991599896876769094132938063954652259086812099425442628421675829842084342110890347992873907922129261786770602498315484326440806795108145045294753436449625914574292628716755039738006056423340261926122900589927771526648048890200086320455588551947577455733822004272440672724335531622334941193148555493928049688561968231562062731387548800746410078332682304435453848128369172023243525694440615036431552411908789560808598897257802865714573168952807489038108103212906104600495520330099263770341465019505794412633177760492422171946397580630776198410409277549240291400704478376320817486420069470859591821204190077719730095693167606484175920893328978740636116861226448970086568269699571884052039688910830039496752363431485984623340441143000186778056832697614590747187436511822948015581930647384569663872124982894176666394657562507463757891627876521640297149708331510444329022815964227377434182731937873930206437703984087711911917550681459559571713019845278396206251557288759866120281558880470005611824586659674399345165631076308765083488854081618517671951201797557038118943106485713244092432087328280220862511668494581043760994347457520418037480162259328504243090202149237819800419674926995953025628842615132929932219873376428572786411905639936361346426811476015131056540899393669051949164440607629271546875599819249663041220109510126713547497652692591165706208440860082141897560284168107533808203070543478020309149528975639478798249234068211855876738727471667406305142694460292850928978736281268761955816450233214274840447588869164106319908484469231784500237108300767816441623501516021575592019525771038408360379410589972005153270192762556831539699053175119882852878869524775069331093163786407798095274008114279282131900637468926787355930979384883181388490243268229414941827163654727265994169595355517971789022213239269476667614045394409627275247135612964878761161379112151655452865521146747989065529067453436140069391043605203470722804795220557796589543008414422176272676166179793788463409787517138620676768337572941507557874120999793806930747704674819839308013838736439364595281704641605648083397309657539626485877511852319226142603734837661913055185471349230654446711316068640494641923137403019196808210361311523807947936754346633326028319247664438207975758650503037701448698383488868394349791822435055045440679437359596746227732849820333473514441631369272108352279873447562075593261133521409352445333885266725094356289979997215305219399861584697562068208273158179819881130872669559077003427585564419215860117985301138082486591368471908519995456328779494978844764798265320291920267951358482695924159989799732434976517234162543836385895964407516814211070100698414544590413753658811597101410323602154357583105660203296984641650741504285602596106376255421804091191407611141914911874998401614657620885798615253095610627049244649936547268314861120999366152161764256713150141815078331692299798674844151687923273239597802432183414547173964472469536923581810689581320914691188273673469485993758847548496654231160240278766840078094601314522083999597391799996215666808544387444165868924922826813192365818706109867443059649012544377422487507900852311833948790055589291572641740178095636034649364071124157240980890794249883285516817239091316825162619537988740932711191379655531481413756609755143775554615248747431884720377993909354800628137447423976664497974017036470008254067724326033128876774386741658923709027638520986796891790631349252024018129990330720724320461631565832385334316702177114097411463892624656073782702725229788066419372878204067426440550755166721932519259441569321061182707165752594230455547978082895937686413876425173027798531704564092670282560209883122037055620581028663296294140843906552998692617944545563585215450956845343288066243203654186922550508942786237414466836353733501197189104596621867794341493453949497447550711216257158840873984827276216740745975297250812823946879531143859273678576316237824971576784349346748664820328833181525965590869083609625472428409185822795489134210944001148727033860440109782520390036611637467562788607002418656424347288196622925268411572378332860950166839384700498966866108022025317387120334506990707631507308620385980956576894308594231672305169796083064949935493049615823786405197269831443459310408026738368993615040446165702579163877465371125645607986159823135388099721375283774437385998424999593584546657233405153078857813431352718561215321996142497021614101982227564111442717509031852078689785432774936193160647172479305590245152720878898388882223387366345720389447469680521044460081224554756536771746845392490871442884210956347964197561310669243027605297082510598612405579153712594822888237567408954485827144835348842467333321086983851382640020121166383307502865791441190467864411735757192473108033259320766781116693402192212769054796802870121706632753840693700163603487519305271139208010976291419730622288690897398344980736069465185295920894887481933124062224633650469008944856319263001498251702356243593596078745682948177812579675826604799510065876550438977865248614579580139836852022519946977328440111541042004976876560324611724504744788236700955619660954168129383568862350484660865275651222842140559638662093680810954222261003691884682313124655302877495013600481660116875920016401688365348607825177032404405304506035457656698612015228094501521602069744165695295963011273327097317835666546285546335465557059888002097116059622462540291296045750544953502920332700437226516795902395416988249153355758774354615995627046414041033195166615100854966236572331003215849864396863330720008641630267737382918204024746471270186833129795648971936713627964397533235231510411641606589649270534558991816433992374447567548854280592367025089421203330623508229810773674719897579534348593373993565944138650642161703742179063577180870398690429306897449549629451791268231906140422897454749787639109166014003024248954157519676261919716735781384195037258652722573825219114845221813378104792908778108309780975373334074720014743695162283086619464065786026274172006263710464192850297699086556742333738186640703080341448899185159215480859360328862551671926138627603712898390966188923031861213934298094659806374980951604120631541296139205638060268662952247612088839975384779331941292474154198565822827946931778451673630725737172490281745248203235478097009355611874711281688868467643981244572829286491336865517910018853448270473056979122656917783714572510300158850871103286853586204258125041508713482219476467494000984637916620714444062210044740789807845415374173620004097046547973830186863260807602435934744967077171970002247072610809531585863943473085743724161344887164694755299856689795351939089569121499056353355956868961254644464267037448645908753839188027119476229763170867738249880317622543420438443965552499753550579269710002348455989277577449844213818334454367897447792715653685492326446377668309495580339248995306604767598594290066145443300562158221959407396312133152562004739657697893916016140588170564363933745441414791750643509014805972133241995336938721556420043205697444575101204281998311322979568108409315090701083776338887870740186947721329660622042090474040381224967402632517701936895153549067161906491939811050671808814344953832266664099415661097106476440565687633361151891392273445762634253160119683342370605520802250662972397907848272326895727406201624012152679766313840252065317740008267848934759787913954897936838724729425075600917118090962178483598674501528032242072164514162567618962015349608500159154816790590937850306926995695120996034990709976708348626373687631142377440261502537263389637089545877890244357929444065726863893201911144869572784583131390604161529704394620337279714391058572124713182696401265496099004288210560370360487002656190880592816179417770439118955541093126020273707753659235061845658598269754352145777447392345527951512083144781057108057005245482318481122001482404113804926556484854135976422206606502260339656905087026398072734182746869076038154474870995510994639495566749557223712549735136288230950462850308978559014289659863975773154965310835182114743500335901802560648751051229345762531592252925682992286230601699721694058821039342781804327861803548396868659227768251208712519169024611491168820079604336098780492534558120235947377775584291543141013050300098488733256688770713908522051935884674454296046920108228555249577033916007790593827629881462151103599604088929034796031156945495386189919042322501067529612930631637529558016830788306256373174156129857809956145785904657368085576361065760475450618732100302045815521355170927298570360790657049334933457777484514437435739431433632476861900750970874776481824823977479328184378817335412161116127356864379735713905284068278622738170097532800217350187571209267268308556546892388146259061267391706294801277516928760348580551508952665660257656632373022945064741035116837530921794093421905650439486688394647272544113923071762051030938818254696048108219077523462571733159747547200034052125023451665835938412181016597111850344405437664410721697312960954423380831651539332027965719167370197566611853466339655313532748288580433635692751414459257456984094379483185691820676594452129799965879179606411206120082528059130399364260842869649588413367411914551091182481905002488928599996816251598101097836246961144732198150249668905432282553895765785670477046479243911561451710329687382920017334393188825342000318146408256669699505139090320962492174364070744693195897998344413341533079892333431974364445924204669708237605271394158617675822265597919170777766060808186272469842527913388408263409503052134066640323669747415604867339468537215938031467569759817039030598067741687544358580956675080811187861865418842120444299265196337551448843458728053812819159461196848420738766584562614566990462132268498727963618505382894374637054993624132401062281882048646779765317696446460741380234950024657417047346625083153908110777579976517274753964051775173112555115021927218461682105897483512518461255730605167463458540053182550859937388004360022421400217426667972596542283100819568319023460005182665066516319445831968590471906375683119172242811942846092302210117726757323420922372648646242515089459942997425484047057762980183951507249124806701457666712557603636376586669731165780428437856540957550976991566352499142363375870636942062795239976029615496431572651356560128063569309627949195693311923379728531818018135318300588090987139178130917204296607703426506179555603397440285403776769137921067597306791149661373922503221423315797861901721512932450003361879225323912569429002356053106501873909613491371501684069852334913232611267115835725717020722069706019874609063506435289760761287397719358927104233384350275994045664263209277856660090206742023332300959275719393152408987112847942552940689487041709350407253483652103403027385309874978709747237506474885077306460456096226055835759799967749710111576599951392721856898167914427819805871402401484689803091289718825300302049666336044347488682215880254652090900991363210269758085611037752324971026666862714314161655464773956645956266296195226330975770937458442862450650752316613662515017406059546952609945496466853328485431660868166403838544799296983648673775634540006139340728266592181656734830624243751243659160839455152104872142241003956201876364118719001688449276908043144231571814539194699992012980334835707926099630294994805521488188885740264400151422237813582485244972504510518069387090687202694352570997740133355463884764253771769273041112610580775244125666764189776051539310549042934704360897188490957511637585467292390533384747505316140531784593531701969520798016600917062627519568492954794848897400967374754768321620778575548778880350094779848111313975226794665157946561747512053176081549072061589832867075195385725239777485761986210803503761976127398350348751357265363289105771307622033164069921861146694487906222617399315636935890377406535102083941542563936581531783067077466879135787355201494272133834068742896875836960958308518859686079398201606027926864794540434891000581846590795934180116615290883189800812267322669701999392727703173101509802585795247709533186328569337476658129709449992826055763872658455032074608101736985990172743150643942749015069032699062856973763545427114056678172033555327116255503040445528507822399593545135172569523766511433106555310611090542540706231526097667132805333569912516134719106404753597993476167026817834837130782815091905696077211548338811005288111700115050426989639694153051053977672503813552091585551702599748889595116849860545694458004655783482269765368248026289984535134624939283704697762351598216615278160874586574654380675641892064231099552334144803496804699078508909981416958977547274875697508664387593866908045617604296260761537881857531289202743797291534139077900107755999013271576273131649771366826509715552893543500472484188036582585706744007833594442213337674150090076842993980358502644654118835360511117910138031277695837279650480919765940873332720945120839106196525478287721636590464327428289373016180228463694487865635133551375316819038343417820779935296333097303780366810963668653177843440426230148527666663101309164523069189848070728999565261483342025109302565711838188242610195170611011267667022470892591442064590255983584074369630445012314485511061671122330925890156613107792836574727766468164271499245925457481674482988626925719196829452026804969146165705983009957914414350265954910691143187552889766622094295799518630090757890033365881253801422310988475149742439540930829913178820832623512147197381775473652075431999919371705306031098967348431261136067506117874865793129817713529393656909547217784786349195073010320986714018879552330621371181313413916956583542277368176709787433629593507334540273768327647173639764804777540455014337054698504305774842079641719995142731360024838024235950387198139660843370157824233826517242796646399377463144889326523496912294878378840367908575067440165877150439071524216533242861417695066479174656060908694285653110379884659379354439042833019977921799406906798893147014118498213654444031757139834019021526621431972760133295223490234239320510288876477939089141681539766106213955393712001316277213523356488826087375446966740491014281462549811528570024804132796219170290773954692421403213096600908960481844104459582824832225277221249155584121592881426670624523197142013423959562581599721834049345037828350775034496815836289597270658295769831301403554813093809042083565326975060180617497334577458419657023772082354704513921034111193756538713343355983538007861236421304184003187725015171686529178366004931611179012680795896399428608910049761681867156112388831095779748426618172930494133539874253322936083158846111430168648129695454321971696713639761773002930309716826676678561515480921254063547178911268941160119366594251543265492934240270696120755616094777807429737527619744604196947872173103013739102827988607844686404011275773395822228317378484337900505113976330446964574250342947057212526003569447487339459178241021304637687748695779369760893320684420829209679363532115056360212909673232222529092224403349232102908354071099110035021446288665756265576378923452060751442708287171015307370029266185854207264818149600161784042335277706214012959180652935346611232696533698034186841549900491078916123956193461281004092887923255246307545511052568418810900307806770961181233263866730238380274073109586050346480313888116901136402928920011378498967717207863803018363103816720059583093459430022583318343199191660390787877850094391448937597082077238805636858510359588892506843552171814790416393154637988474479904928793998609440154186782153581126296019987183811173498221067593882124522350358362236355481681300338001142668876179417871772306751044783182721540968358248570538268127485896155901387204591463361575851276749954083827462372646073502152721812279851826664605327454779789245286100133010952138631454953525007859627998401362354591531772217908538235728084250556126540218375962054747997175975353868238406276872602577769667188110185739514675803692596281522050890645381140837627420589764565348322866996554501386723798736314457788347283297940144344476818288198159273750122799021780250077303892672381158903266631205378733339315090418168139375721200053773965815724009244369336765431365611259355770416227368490414760541542536183830412617973247100513903036412215259458901632932135880161279848260529469221778790345871751738852666681368999492119158222012572470253361852426219918964753602669303592743048078267325643744909153715912176032995534965174816819785325461979108226404862269226130292248773670216437393899733892342442004941090967743465701986949918901578532642073707174227354226863807534126543062573507325302371976251589488250203699195156567414985344876202367363409740499339902327197522681495772620161148365566152916772034493599359829723117714768468122217077060663074178259355888684423211347608241776181044206227786281358193005424073070245654106819793335223047641918024570134831021808950574800898630309023294492792252270345968459106550448402320705352472956683348825576695699729439593878809830144824099989494943009324859231864009931318783444204868811434986786169408436770976455089295592815159524045495441147508474151499850021524249414669850571751563944958200050792110495496968648245485233304046523908961179700975220101302580206386494862200077996422066260806653115355332224925658958304644319485753384934197891609042715224614426844159644709166314822094743206839945512152415005725796452226000630412923030904905895656667285458857836034155668014136569468053196543882812140864968487230272331107725733611340049450999414398571325554534586592713976957091497713586866801463628941193456467375682120680535094687509311683513903521798443163121009919620167279350003737767613634195740287222196828478173489258945007081985850050847734438727777132034364422006276940321939960134981711338281461337099255222032859184165909592852836070660814206748900001197467837907443217182094044878720209711521174237074142348095702489811509167856985484199136420022685317319381966340819759074013149124413447565627640720581203095566547873104781287306558878855332196220415811258658782675300636180963109368511951511284097007305210889660150606818448483687927357860851321565241997192375159607437900258969903173427847182877616231643987538438793472243895736256132316249574666809692405772654640990406556697399557080116998510723471933413943133340431553039307937375674085526853404448364771243439530797048562106938185339543123197279955164821453933620419502147004464716634247174492922828878420906157194422351543129892109993426050587476962250734941592135564328846620883036157321034419008637558109319537191017872350384171854332578752361930282428509904915206852293575714283269443055243500948250141835634418387808514146440288238206514375841148406963701989517340952878143671285718187234436484414505606653381502832728912017661766091287183186984221573574760784820632431580735940445550475230368570148644973952412321819638760188539556051440095950999595554463603812995610117574408408812354165846213980107896655653920940525375083940225234801938583747881379718352136031748339549270454324240749865948270456257520559462883159411663340700119291566566625865773732585228671290961784621411243323684515637471544846746677278933776714521465658555282278226161151060217782994001939216889413356481194170940920809115156258628294842154160846146076620901144281250110251778779334184292365766665584100985139287797327733904948389971138885048057466566261831829725187112251521195547544567385237187888689406402194125601587944869650851596280156912646999943035715864930592828789243419055572640287292062118490112484728904914822525990906042155605452319667774853960953584112572646418036521515570874760549479689532324008716046021508525867089123143512327555019622987149933584697892657283651357785433441243436678557270501376910589847153154908643924449558071021658246054668471979107959359065098236441654908690488874236433130463940031150744761612335684897766086876206987017978108512181447847418186035565652432487479376469403588621135199877368139463497864982792013074261348530371416622869931548756896285429786220548835245258217628059744629057189841070688325939028660120546236798946642048597958076641184415945323531285033090773218731518434210153372563648678655178030052360382212338934514006883417505469205103596063464497281363684151995438197570081123599643342310307575193453301941625348901143768953863669981200072239161581220599222510411311147098855064988940961067272229373287590667998203293170183185316254667696043827083220100194280626322549344361683838476721099241591329139363535172266241614256819039901828397011437071620703236221519453470970444608295600921789656252597843203935074495655503846490888288603866355899461900278441740067624967940668065441603123967682060724084015422739158543186469677029048040055018520313319775872635735073053122921258625923138154139875693447229421503236183193732114930011334783168887222147386794215904928075953507812847351155637644810558255104566892639720703295954656283066629067328444263362995813170990306771362740351314390998604621034257047870809578820470035549778359362698085872587525639099056019321318707375715683113929446584572218328926108354232728217328876091842531485702854943986139904797513183315663269861615008842238913021650209500988881589174794159316506286389314390308135117645750377057552638286890604683593402772500088383965043255521466621168224377507073181253980566128064514301248644081355151334755120790740977300980423090003093460451150369393620162595322785291201087079798799539471094833346791034858635829491575775718741659182072089724335273297902824506669073543756401595459351957651365076240265488843419103829520012121851448524355597639866149998010785357850102829263028559288016755503537378804550542033442767094609218398525950900082119888491322449705341675485947451307228633863879911612199336901441601259501589540004606719229994258882805540850939723343567268655938210622492558068894266427456386278428833153366315840442789566706582409994464168801636862807993650650166084034770190040575998879587683086270150973229776396309811099312060055006258286403902462956687804029909053516408261295893052712708439840129122048131272094037403301888531139354522080466564170870414373140761296280067661635492351394165059237896154300301849071041259797720999403415019069295985345310582129336986805709576607177186166040290866445664417512849616239305525547582923737339286474092893055202780339958492621686574392887977653423837997187292568181531772061823451841902437067790794002241565190231180373246881243306725621257525043555103547191354508438268353123166527721719857909616646731457533767330037789881957481972574283475404071898313516127464920797561462101263763290758802218713405198377474963370994685091776627026019365289410344398173413424433292473896980612594100123106514307719725028000894420320297936297664701488375836140963634456749377859120139303476835346531076827874814450494961739551762523122889407569990142785781554874973189077135801266004206900700638476589721654154580987682074497640160062820216364032179757705352993960761104396711748573347648609912579042793253225800442533374896169132144991899541315173210796536363975430672668157137892429459419866107236348668570495296436455515674827562498905375148769100333352256692087935245241710332159797012911196892743839727620972168424379056174340793391629537849264958757139737264784875765202404486668365084830060775025549565193555674355106140384297746924845355348622255209436981464922675392333949580724178467571647045992603567732635384536576077082457388587191816176020125157325425404082792991586112736270248951702059313084903358214304801210814702964022535598274787455345727625233215963553678545607799350963905580421962137323356118680538440389771944554894744029254095633849026529779356621421842914350528170846220634225333640726840839279915280540011920248341950092733078403676225357783800189477917251802055233542086405794188935868009590570757609159247242732595561987638995209561726566618295099822540639656603921704002761683768584995926609934609181627538938560335989295150465644515776758243917972747501515355692969506864112141356186927780759015275122880108542432509011833662102017976945805198430725918852845302611263988483414030638189801314602285786981981842577234179261214410886652632856926186627449215908703018144032258346757356511851639234255924868782991586918970154045376036617376325228961079938115284628181058962602994077342584245663997272560459740783347201156706586594829010081888462580470916502580940784047364987357985632353116944126608380733966650686260591556469703940138575994290748416608365238171552195938752702718726510033369386130815941667689174705843436040576898953658993806561913981397436449362222822910768449934647927139085962293842098808697969120970343474242438669157283469182664784383754832678275815205811002140948586573342101589560509150445017080593067755390016773760136717782028386114452432936297111103598592549596569457973336689875752777755068987133273408400514904715444531795176935321217077104917333707423237717610975599922064409955970103598732892155056996971815774841272715756637346535170350214020203438747214466491078642172985924855976869202176932332943660985360282720680503134113975573219043772274658427849184995825862555174950623597087085897797059915602854674378139375401809326880499002533053804667027719413156441082611392071648513330955608099275684934894263794156633412618586336540069935381887316160055366589883963844799045289955308263212655959410210373653238500332391858181527419308046431973197311145153401104063175978856355504254314630056860743236724517992554203016205554245438420559935605466961603061655995419869417445923467444868068981699541782881402309787869212878290477926116264187377252140739577120958412969198655325901052407293042340128487112974730176489203015704779574285662175607615644530453998303910622885842045027044045468780550530977628682582531106135597254424889383842171359864357452983426274199784133124167200882128274878555064528794910126075407841459022170032339214836617438488530194001521351724104453449939771319755982144765910243574757362385447196334386068768397085105585316133790946246628351244250558735326585824557566506261395899970763442569273741180599749002675952789093028456337844495876536716667519706177604103650615422369100857077130135020794129659281389676514855318287932842359530202975003253615388597600967691563369947444228882683870281893887379736296717785206812663716182599791086488768792208453697142447611572436882764033594665055914500249010335520164164824951932540254501366164756357739281974472505815464287724863890060143377940586343211727130931228627115674830177614854348538714398700014508777886009159825676051522585153429014316863428449512447069833644645351987494004484652261469163278113258892146225506424786901815554760867045187929384704757455220085719336564254372011669317287208139774181543831757250672263374402731954952979531310417570817745380358497117944957118427574005946420356467757972312458761009492002270008005260913360092492045501260285833144243401103951016515618346163467326216832929328217830390928658372281791692141346010421844828111233867664610125721772734337628833926510133348146333457616875500049237030343039034827979637383876683594738632617090009580312689731456770218852948077852599707389883003422889447977539026762952125155356879308236472519965971718527031561041059122441998069896474427659376522334573085600221421284347011390136578511202900216198377418459528371740207672981112664911967495677931161147290857244212278724329714942404882923819617926835211518621347312047488615849051006639119389952213253889101095601289299122038624398893320748466118904011068870068058003061823855165866792913333662576263347846983341459017557897705617249520310243720175784820652848501429478629235724342886384162352625590311154492008341852739161056651429093664959336754004472051639345277266406553821924683599297349756226223132934318608768761144359717341854377591998607557041587849460312003061708588494398899525166976780526822360777871782466583027959798232690545191121078891383637609109056901323934361475249850566717196835834199545271678083225292484948028406603494518708992671061902553485328573535315550266964742312871943410224450026274576151276587343922513710296386230091189318620577017199705736261820243778488934779662573744632467047111181407212665399499921429784700293309029331870486471388724892168598738662237988867342457537210812418582590601522365956226672351411425759895375794254107139015640353320504249309046105193848726327256006130657711249638022617024650892083157782611044129378321825425878665665488510076776539413528007542912075725348225959161966643248436595705421820263977634804131308149261830808515310478557597591224382402120939175364777405735198490617174678269581553143094684533865548421521274277169834503768553132364060405927871143683631466409390679047815376247519836166810252884913704448700413164241948891085848770924187282614626781036323180830249043002820595029706385588257589388278226284114537033648176026580769932365020730801979439428990009649328043556658851221655959462377535207263017901946006408688683021052443520522897877302678879073357340581426230840752367111530255945472865064424935504010819870266084238762712636917028599986569039531881913101182123859162142479564335825846174935842954095530917643118815358103011062033951368428871137881162576003938826411462445480625532124230414515639486710523447748433185433812135294423047951343447312292734684105344942903057998373589588948714154301368628539440740930754020470759438105636119078342346369367062021114048466929110937499741192674566557265742103807123004920004561262586178014141230024614328493224961934279261227159810012256346639401046749403121757733679707739821042949487232688763730345325403070911988637101196782781971624714422966512667068158202417627931395323971748300992910588356277197680039689931795153201820689839860826032942594202929009541696319929545407177785522678595741479447986205814194056366987902600223881699766133544871371312061529599652934798979122320325457396541977308257226600777771068596996619424682037576970357613967215463196418092860767942191701601421356928428456474423461888288848448034618214992808831328718261337780076433804965730063434037780541525724236057335038462474979641822420706483984199438219339359169449247713099576001035124047658179293091614861515721171923844957207567573094357357490953029613802653704656106403479862148697843833272009866634154076201562016581866585788893433064405414177174698816958260742702495610187821068757667662285448814460870483569116360069457152256204688735751147315419319168494440004518111525277981909022053812805828260429158783345769965420435713192726375355621991880995655775521789471026590085604967723782983432111426974886470871992254863875068355820176161524262712397775704524186324859918634262320080751611710110254847077941196016265166263461302378361019626591652679759975036352168716128324656988650186462031765467135195365094813966125816666473230981574600506990158562438941457390618837101706729661081041240762487273135524579327995682183119169444499803606376524192931839522879757608951593874889172368379000094138435419287024748407939098554949467047135997971392036552531601360901681168862638071711186859646874412050871944865670168720485517407695732724396283618463014600120147816596353951319546778515565403204513868018217478679563455442990536808133978117263019726639815043572392469410279518024040188981974837328234235531911473529549810897127509186650831967554473677200163851492593885557548604984898936605293770513327680544524837239654225058279810155722342496965939928591144470216482623788567088657466910604345026600399068401863347088102722660461901784818873156094382823860922752161486534290239416133734520800362792998427987831027638672586247753570183564509590642030606970226419333839018147142139350312212847312144966389855720746120697481409924220015734972639623523832080760530119723407289425149041362693971742360824242779538418235165307284599830210482916466763255059919724396278132005871565573149452670256851372438544549544899420496734382887492527318445457828193573822282297286200374551602981823556923564330285695529445452585800025058195041855097816492261344657172994249636968884879989778412584058848959171326848201369414803216513492600626650398247686641950992293609445051173298093996073449419149612677120439587720586026912041117990591446528127903152954186278109132611803721756916346295264855182617100274430375011031309948901990206523062819069551114742179698468893507454507986486620532702017320798210101127040897436345604785525366197092163405247479861433205289576218901559012287375343653111244154759311799969716655558635104217782495268639613823168341540083297599085683391688245334149187014915624992626317515420445599343939966247118627949360084946210893362523189961830425135248436240570390779041810435280516865260672134916360023687712979602811019623469500649318027389395644653592198561206635617790311942831336224676893420999382965571984293525014258936065394043912676156287774862897806504602633598456744887820734568113713782229058983232053912820925350225556591251902600884218279670740910172258115820992198501889813651266633120804624067764662624195005459693764760712450532222638795189237767100963013572699070112960912905393506697931735917443354946693955710749517235023452047346620198297386280497055105826598929971511165074364869162179314789727764870991956063164841095774974057897053600425093569013077139270821773873123854909516882242052445815926551353015173122699344301122139523612120583751680391252330150155957091953358105764305928506420410080339992960715015115531420339923833627300896343443830740443636630775590715182973125729447582156225019012213204352155233490916559833333018539233096212390823857710621852881790582034222230031003461561969559927416295628017897416330306155071935174619994631765728856981749954585555942694913810096602554184021817328307510062553048419273645361535111712164174350549898540880147167924860467311460004915436021156952217471530362318672100399608581917912232531853680831638252587072920755916408876345341517336886063437278830796350403341761925648170243796270997565735458436622994757008459201198175011799256726316050420582471438483872826765995200758101411914552130292168343855471410620885819875879585504838979397343381563514751756500513677343133623208723578174968811135900396498874536465960483851960510856494009669065562506691821023948226574660889092665732080302786194440472831698571840045658280233893009272874738350645123361654667610839171310248209984841481877111390725622147645797401052299643898416154931515286243850049803744290466707378788943112125300968199719673241512357234624712696788037500705548719872722029155742997696071219136579802934331470040574669902084416157718852590784003241474403876637160995740420185267034782173072844270815985033777778220237223537663996116841813600817040421776584989027304157037499882634978510723344685075067498467738716108971337825943097031804869076177228507355479463994214007085341498547556171797655553897397334576355990417516937023752371157869645581349650560107479377515825042807838559894678101934351490006280003684927640162769311226107398224579832058505414418340873840410430887507625582974293184628541136399159043257217079796645487032304403177419034453181281520125667516077796114098167027028564934350266812123640751793810811417802609196316231257090762492234808626060230747650449163639119290856706039417820718488980677034558551596615294128504144819553003897510901269501160514594794776019376748490600873409290257289551325350040285245700913602962067463927491479177534013120773994608207585652851373064429639121327181497331646617630831749445895229158538607669282471030183981352732681886694531291779716104090355462160644695613112428538221605314670665344506543835265029087347541483981849919169865584938629165879765001620611658844526983097408354603382148735020613068598720814286105723187491679470718515546198239083781510301833821673862222160330218903055500358681771189244240047480805574411376586451505848657072157024392482368877552006208955687943904348665358372451181693785136896122949632502618746039094509872743609743572356541919556185233333585866084921348701170753854105665664003839655639579161560757149168455423443989164113820712155144069229307170856108147977358090345335629863866484869866357693831656429004976104266009222888079630021717198063704783116324936847309046817823072367472868148174098526576734514806938944872062657151706581318014756085190940188138414863090010910872167055659486577527900635037240027547951739684407648231786000612460554012680698959505596477731983953362044605495318406493861976351260474076142105616280126127309164542320158989925208998571246092279693898108161756819819112074605319666118761167206099220809466778158349278970317094051772207126757924796330601925559968593499989170579336489276272113359484763093956602196993851651039811388985765893546996082398732854056079562343157745326800126326087347809408501331595452009009330391572662737577481694820067873740074535550421476294483186335647725191086978656719754277299505126572489897764778102525314039615346305929891956023974826936685969140848917526900277205264044007859942071394971412928806085127415409611347649682877419067020623077568964804270654956961248249574396965220097369452238747991728342269810613204597387419672779212427105977123647259341538501599731300449824802426513563984294033784271268082515443733035609403369796865602107455533935964758342239406850578339542474180579276523292696645141879997473058312154203971764759859493611119825303641551868054179336486939584561578226838799582546041615318040611053312178629379510173873123851430677463888291192068020442708466250234723090461830100997692721679159812862721079123683922946352804147325337788247577591790563930372845800391958748439562565185801451464073794263298007214134156422837582941052798019620425691127304704634228334373507931363731255372943129515881825077735231726188588046877816981377479237343204249000886557912013554818316924239136493518998659458562016415003186456391579410653909129820161025546582574302550313899709668690965894499525471669517189871805878381895204186020665219965400517561790030604567730642000854717627470940605586070162225833591917378045444392126962273632559025876141607360999763181645742628484782161933883107086773445533860847136696900553239904371234392855769528616647821104627367599754329939405561094332132754510869116831510827843182594701079831156993628399671067257933581592183931341035555428773060391779672841667339051711936350433682409387608751609630713611288296113686505251975249646803497076376690329219585044181276740339952727624349630335099941755445974159092711278030534733234964846085414399355847331312532426670700633926989585146826474741229263597344626410985357816022433707189484030819870529405657457647430416684004390975940380653932914289958096642567350062504857811147698955467233855837770872325324384727300737541666191449004793835326945410706496982292991972177748868774112789964621882256496325085265554609813419595403349931257420765697460793417796769794159929681100465981661002013491422917215859405487843308915601230385431796059377644126828134907592813929714919466134977325136561296747577846368833028562605893687666845258468214995894200409196272278521598976235528588670649106975647152016223679295909295338808046011658179778215325778096590744654498044719901760811112032523913690457291239521288933007813550634801376777731357669895187798764478184897175822787366708832701846490323184189883409101811468068828911742640037770814319038884595677018367103305903894307781617260200464892197593486365855471837409695975132488896035369633065472937488615876117431636733980111784655002500196663743934329420500176150173271399504420774339280969789406445232537697708765093209315919067166686853730829363659752830428925916606157104796110203664917245203184961651374459260869039897122582812620009673529058043420897326160722171285978052591651578410753190629296567821013492453344868550103498873036980752743289036573890637267239815265661347574996027289085338276922442675387858358426174429376782383846493522218807882398725082098995380216261146139643288022082413359873910246637853472290487381164744650663827149335563615857873968248696186995980341299083096207429981239092593931960394046545050277319802302796978683453377504096726571690051554827976982745034088301491311070833896820568409934589444352996098220358550833225239990912440668715196760254983888042420566428837583791720250363982326489751778474472763745118688815755654107995458452487679921611981114073340848498590604834125790786304074537928122913031756918166604078648747291764960293385303005084410661337604012949858338489554360729940567560050065670318837804689040399586335175199248078887523111044695049637322465148006323616058825151442620830103966809704519177745495160325797564671547461930066727240214369633644089271776378815262023121897933001206820535071896983826940642968959500717416564237771863445369138207390792332780778228785376787372187965256453780554872183958838912537711322976071542695334625698241856353892903794506678420292916424492494808696114554912935594463337799921823072725375631450611821532949821604034686044735594046811099951686581977623131702040596573124571558628847736220586577304948891682314155660175400899268553784261303722525204824640212330244598841059713540433956269017096353450470587352706148514066405277723913403996494669401458045236604018346103590668861320955892774695208862545188092911933557987854959005392794605476967582464656017145476246277666771543471240790495524364086734666838870008807737762366395003317957761950136394913718363190604098280801621803764324269912194564233730471570591382920700919235251652021773715523135675337287183746716478897352385125721789795778931763964876083802521852795584457875896130805778453705064511569506897464457669463849325069158099138601910349966240729248373579171578215517429688969597686557143279131867493328590226828383403048558729917485357332782006308876588640887731198692977395590378108559099172099035248280637340928178696226333987938412495565394934629133420733915405631887189771892179156263661430344108221814469252642468816288912844863442403661065212558470081467003346122161275694340236049292298742308977718557206044623329978599682698782090055653297937416766621085585590882015214473693949007357170020866004807406970166721811621438962204768923874827539626607796894405020711460982463675906223658665642368494511196693156340962725858854187400150536596736639439344931081665014550050933161648778359872826286200148974105250263720549273801009042819625685176303316348588785536288590513857532597798248776021280527616176475374664757645278162374635298799881459244291937150319622358485449153774813560627762850278118634806385743805812101753885866263818986919981991529041700655302081371100571672157637468741305600781153703804565744555590753043296374241290251333765746133865830181871146468950708083009611665907406251603940612784462664747971330005870077654271880253009651075773628045159980263706437870621796354810281635841019298847985107651945954153739475304517797841611532057167830816364024166593297027662906926061245867779811838219689287358264685354746658336457140552745334677713535847039788420175974673025641988065934601677837488381727573932550300134887968834625955464154155151259782739226286822547718449878605234377015433006384334108172429453156591369931373525093552376684576653129508566543633080122967459657717209498473838476967680838117672656050533804231075098490180292960067782659986352621533372520874846121762100861656247830986749568845620786779077465571120165458381023502024473244127750900832356194660981106060661354301308435314641801863326207225809601145326549770496167004317689334936502457255200474601232327007660202187108330401933779001904593807614024528514365747456880464925696668972970721653685152890993258217994885948497124207422945831635306377481856157809247523845452780554091158789143450146446363670841366628518163083538982959958972952036115539334452894376006601263149443071722720339513188720481138755830943146595696511542686758471695112929957978157668833263936831681454303061951982844580481826626748826509811248016794828609775070663265966425206286551932709086606847801965752563807702375160444921681240701774875226182459488836691685657070215012611233305808426017197562810358944736293700422026029378192555756628609004422811630632156649249667439625891359348496397462940609282045713516366232963003861870720873250541524318805212640507768296458466461290726381692629559058614334632367961860286050010960222221742275595381329211424322819347677225951831490963341277574916930980820280567467073305324039467541652066168958300618306446944734143239025024611710200610823835780999867261212618057530114016386016670486553416573263289563853116808222786777772541163369969227812088485343781386423363683566694730215898432146690162503548362944152253060777083684864513131548849150686796013971774346225318566098485298523212475026781449712827599363583346754973782867119844954284670220401031906230747216455356950457692943582848935522364265598809649209289126125303824927992228075508952791502701354798975173645302279457528340337679484059451004291586886160827883314027707059053955957056129538392028721663292918568134949759383806770256384399554477039737675347986370521954815072808387998564607648679174438057169716257377177487751031670307630960348356590396308082481826984876543644224864018322063116739506757768088656595108810818019106369230254871484199214934906672967209730726112489302568603096136590138643835921074951411982289328748393764577493527567560150263732727020176360485411321585706345599038125979143461024578363900539382665629370493550582253185640629612860935634317595502813250676111011338502042099440783217982543416025195630408491836134247636199302972153382286459426561297505138178544921718009124500800976890290543344760364388971085923349117020234284020800709036604126481418246437947786599295899535349176249762199168030915124503312081489933986718842180325912631510618341583713415516785226249381763767910051211508078421728164535967390118285047821603720958230582684136463356150668980416281519724884364021542539732860107554394825860541833052090718793870480113130664369580883981520826058533443400047960935098308379099059077730388057143578015205770411935923385439770379694615293458666026610338671340804334306724313306956789968587192095996000498895487739107143765077037288742262789975974496944792762615915731195775648471719578072074316409460126737552405839656965571272448505845962058874514480014716437178238917580943483171664768305833000492622393696537402584591686045095688622050561884699272429525005205134489676385390178176603292123672663862883209448780751672595822505513718760458059332277577124772472829001012995594378302880999793915466806119076925570303403826706558809183471686013463100360892241277499378433368038971202776229624367337626390350044710929030005152411133436963611322220797084008668752580040511685996537419301316018327625304772445011227956484220035358817617205859399278859937600496252968743111037826291249770982365515371680275378051921487736161217639510729653896904316172069054226015565050083310701478345784523779020749037133241613360193132320007299322415357587770450117145161029839066663981347361525522365748429113171765084341959641421264432327256126702131036107246831253371462494444005145549401823321830767513695187603206182264132436182290413535276679509426771313645229433295993316658977454403634372412369915404633072298802436958814349633323152889343560088871718863342053620032239295839370244553542830028816275329193404383453935163048103375857837672549177482391884988234860018592026509371553355192473324192384927641659324926030074255326250141391805559033048064130437064703396913019940165613555858126821600542689707114350800417761800531236547472461341726373397603552146516546156564626364367505508603927861526164177438866867047218220870229299259120200959187943824885295559550921279125801995624067984767879231555867873938257348346238160558649332679528139447063027645131168031375441100325140757683048659834865940307763172270990711282409753500053779421250919779364006514994190307163793619240624355103907219796701095171764853091298608415169167861942293489016724103125365470938364645985057687369798637851650162278127417404952745585738244196592284221619996904666849659187158065606446423864427492559157085498732093605137729103414429259648652829424596879646634529388569861258303660034554223464661452040628775935114187398805196716841219548037417407515787144250489104692676219386930984323671356116374802216221495258864771912111425419983167247736526735709011535794907781858344717011824405526993402928526880614062109239924577628135099416845755108106215642614261224798712276738705281672478574859060678092229635151982502316880483972038124769978393738518396171133352189728309554738742669615508344876279876332854511616407434081174703640617541304086886951178045641294171718342841531667518458236913041329893750654260033913852400581146913125117550894751356749146340849921569908517420742827505473468034080450155924518286391429469717789980287594266326152031235667097679393879642260949457046905639854460074460333246799661073096815501321914367035795381115529629426820045147694290267520643355637147660696754928210627829777059131132112636887398533426723682982879934019671711319670101505887504116766450058483125935597592037547429545254383510677704829141996981745767675133936264954536892201240921870656947006098288496565784687918642450524165764790281532631036111828044825608407033997354741384634663332357678506168861440044220284763046162994247907100810453110567184186141548606720742561010123430226639057444740703658552235192127338618085393968996218804411849978348408763524281338027100108360065786618137248679420522354908269376921800181947201213813115944447464724965433385196324315576063627765824340848208085333607895448364310099084292975620013189801491497616346753400577425735790478323243030509613343602915387742332995872727517167189192602875106844357429545272569262181434907671965432415576660549143274712764390312400363587110335809963275738842747826537883159371876066863702102646377775044944341538511776702909450840821980052360992936046501160396906429475354912705558367275174759815352705273387835881046432280600483826745354760651081984502394638744226866565981574218630696317181362029041118875537535022753423385695716217109377741510696408908014776012949018656527299597648766601878344842686435166052063845415640502873150684655662675222859111184896731896042154722459311507926925133827639310013848231189656921014188033622141961116928598322247856578239712115714555516641329161563048715767731266256830402095741668993763261792901400998980603311633224287718859004996236400328692730515403562945278255804584690660583274662605839590131378708316747651399316204212145725626783137392361054422785108062160503358523076126189585255433681360362902164019936774275104455913367392864102977683039574321681540235536565614220565115258080774668228327496877381876610046396459060843011401758289342935404296949744750282824658918725422406222048468785188741469729013178784694477373142174542541308174431928114257809885995576663386992491488528760705034611463365329490719654493646951318095870447923705267729631990775503806073872989836862380041460494159377214962141873534847025415798546902604827756833611631481928396958689232872507427081227015550290351605047047517897194746505509520993739922341783715702085691416001594398598736305126880045557202368488672051944959037191701601853523735760643806921106499783877946487163005652405730249169414051811953121712192521413106224783727974484359177679251535706695108089974595757777522347657495938707569733864072089580399646806874028295610738192034144215207468719093618254646329431562518559337271813665835001423836157876471673689872079994942983208239455186184310845285963812266763900275285227831096053400010841572195038173122499225333493241415726824904991079546796326641770456069961936285693535148126053741562940156120083931045533856121039452075285344729483109100556859143220278590707661221994721540004273604964482187365290511405163921819821288434089082887614745230848438202696711139735475102489289826556501132243817661664483369305904554017286308808198762507178237487737744057729498283249968249237428809956887505139553886432387669896649538446922740640831886358771957540435868456979318095550466052634084110732207874909762170621965800282564096753022558947251050854981305144469522950257022705440239527389128731806582334085315987704313283024578333089425747438645128695303120353287041170197498698544887915897946996380289305411920021311945729141269523895868115951768873729374062673188085107770202048541351114143766846531592566468280889818595813160358427338641616987598297704428369531213207183543563731640224385995656629716132860797865283092342428187699632365739677537744699211798874774939724638666582796488336880129040466039543826940888331566738709317101567229888013420315454774448466394629311398824994965307977330319719387967281236148929256021902617495244238863817445931239488836686146930045973393311535865644547066515670635551997188664437594214714611775906340720734119607808818890099919830897520269020472046730233274329166776947773798325444083652984386996339021192349589729618432703178036674835911875853674864314043788026937543087594541527134998886962151790013729903108436034069059570153288795328214125814736127198570317998466211556103093036441009952901385117603324039083108785390982256484156381972572929656608884474980030908660335377370346820862270432662509480161812317493517219516680440503657358037677730368034102106323298738939592798965062533404906282439898914862724716482546535725887975899215071052343967001238818025377142647518795255289455918516904550093201003486245970393751672928588422945896255606499145562132909326818785889987863999626000629947488737910122386264387063237243629741708244457198406433679435783717435081830900387702143430813176175726791091157293450463672327181488763281800223186970182344609535653491502281954527521184688107718200970099435779753573819522290017363560090432724477704197643124732640626782299455292044126780834299643013671030697193767791345272635810340391495598440456174489690260538433638703321768480347074493686563159305867605818593884611818233307478855807631297772607463487032886379161193036561550070304645563166690172529571021990607902087577130503752038046877160834184570366607302837581404725051655370514986811124112116792675472100106149210897897517888216183193868431169902116345414113856764352686682674994297429953917434877118584308233124378095829900879828387575942917695238792348185055026026885928994206331481596923710952478498537030654282473002968965114511915164277733103972248471596518015036466855762094794549372614117497959074485356835156406838621260816229336021896098118471208697198639992996220084759946412612799962902316449980312126319928143894937067795213756434667211602018035740348202715804726080819177272795444548908570718188936702877734323733249755677933652982865227221638824863142594286042878289061247489974213782904087562825276222300854118113346826567434116729009028541940697657473657554338671865039153041262033631777018130963611118153559402776541541494603264436132111423486151780499670645439135123004398529330993973372017756216518977077146201430498927041752487128469276292281893689003174598875308907018954978489471155730072637385593384304053745190750064476968469582051089245094440893823866104181548302605274054165129217095053211570628365606708770811612969704650261234944557679095660924975658450841326675044294176980972218234545645990779598553269442272417372549373318629863263509233992178709131494460308315231697030078376353883169906486735659407628963358548981280911817752949908218003989325210348925955419011816786982623823996730494680279392041472708327005203065227903280024380049649585955740926618088437970855844408893994665493510605880353115212494878997779590071357306699141651629986243822132296682554174159343042515802603806428118795146884081224888504618064303150861731090670891040874261553529423539313118704325761302556755732974166478066115870962392517515668815609220600536407313866113998068114918996926453828356051128652452642652226627890713676128996606132829373546081717683720073503857736334412355978238287338842859248888327224226854447974359907631605016133300553777459552088393292090296649263878375396625478568480441066432087443254759245773936159985186661336363930117372341217399482092181731562130293925363484406303760378288664530649066471254817662594317568133849126210430460739685202068274132036017435297401597895845530124383619998908473476411774648641769116809061365516005666356898455400623695325875566554467398910505673176653864752544719903237237880429566951497582809384569525971658407806683344162087906297512096075309808647546239771104408229469963340483143726409345324578769596317442712756472760421805831790222341911291466548520679877465361813301354303720489186481378930886985308679759798544164277985298280425654172188400410399197986179106603443382724722855795472738223619452849585601580515170803696672430938573386878698943797078441163575841609286418173081245232125399134387775323258554141324368990327892219290082499678933429718542185033879369718396926268970316410067113315949505802119946893972539788933697159974027424824032108663031695183594439534175225809995299981113573867135412707113559346847823201621426468377439948953783552982013709228144689305716335356129790195867843047209367521741766206407733766633925471112287365482449320002155125161081318290382477202382500010306328430653225179790342137541312684881294231595011780766879967005813510432182801737248116850876129744819859326086654752377284173647924619354845721106413893123882773344456259256630641316868238740837067330489904055525118608247169915934556671559644810118760872133961623073244907396061894049361294546030431464363256495219518251655722054302300092879481813124838150521048428638735393522829859441465276804040742359489429242957559960464877470770428004004488401162634762752790476289201717766505058680322655069087047750353498355355645156105967179842575282444186918833726374449560154680465837460489584099144839854568452483888595033609196486138399517489997367989178692856305153550391149388504079536267834112058334802499545767478349375541774799518319216260470696438117697082962981975672668218494576804257795026308082187672856657867717027735245582681857242242975084035742233377962068506127387423376268280548630168615627406794255479982757775642726715756229919236088185826961584575504558331885545028854113649029041529465010175821323353210410438994838991822491435970526337364782070624705361403269813344360311711049543646872039373086170997072598831261489277649205467642207726073277535931185540202550824676835161463065512701336358045857018500830203519828460938774049195701604864512653752472823628978175909149086560751058100912125711257145071425081759006518693973791800064864246765883210928411455582556626429783141820518890343157176469018191105016821209279670257665269097655321133639203175113917103606524116412147117907756490689463241817538949396844381641654352970966450087439996777511043376390982858003941280404859443954820167921862486350850008302033047239661834576586141849266409370463524026045605831548030707948861092918028753565047735869309557839597233495606229057114483300699741011010372908906573872094430177109191315833439552272701081804540172246677590411631618319745771526557785298006732440186150399656221440969212175276701707059215035134701817621438716351654544081923153752399427476034909573664295447669476165273776032999105843042642112402604921276967481387528280060757457311326415888750964635380739788983560856597082893020270849869041945697403484681393871669907058286080342091009555277991475378515955857320379395374020770294636319085042370907111504260092349704457406474548435815965855966485844685769845317198653578921042109739512994577337674901388999077877072085164295945338178433918014465780819935206710159097847495164124964382853294622022824500052260418277613552136520082759178956833000019661876960446455869980284172536960640025035142908247238796932956223326846926383273470243266893964116098081159339958506914798788816345962886997468040435384213557484773985120504079697966043746312414937519145919259340098383268392712230872054481226318518463215448968411168373143818156749205583406010255030844087900364870040755789895444649370839071679339280074741824257792505391249159025541557820306478169934845941873594550347401749071932317492605012057154119771073096774325538090804796552294766245232383267545075041408078516637982680168945252381271121688274035152544506057596549935288165614852941949889199152553225452287120541816417416426382850658089745133844051673447553241998600595751708190290278894614555080918842672960816546471726552558953408159940896248505200448945955292845855901247084530752370955424787566353842062923173038081781047560352656431349789229067604065365025486895637451215857974105109158822830044301949466999440795112317680038230023671808887156777539029505379860145287933456712230111523944243381210189791684055452995334674751379624886686729702324169892600283962284400634814754647282620761773476393138830134845332720053081283050173304679783068580825096082113140472534452345567126290140546674317714494813548616926804875358054460070585893705480130956829151125798139570311487503870056027511373518922677662599171296025008002407675056163908409571656067111277112540219984012678492188277268351323765089136951411041555219710800243789924812256710649820444700568236480825132485093897658311641456276500635572403754355105964991980366884131440295387639482719206650549721250501559602482949022798270240390927375810867567481099271820886955882506908389779576185263173617358828543984193248320655230730628063731452202522905730242944194812652173494684659461885295331365097549800477165651202130854516979590745633691541884982281887328624433488731370229264830143120026661159846922866319219069861859481845577387599459088948257693820264805999314553614268087703943315843616315771952024814648567224974383223262070915354247632447033604393108297250130613432166023455276004058738012266371100564220040403071797322165492690269457997453002585037054940466005328758111473665714026379295729548571337339727057264493840549932756964790400119552556002085625658904646006828734565214438135330733585190245830670969855711753602777068797176717981644188258397890474925354641934388927270967954195112783774571397879565542232819231919175128427033606812092090769971621444641026396673892982810183384983381357075928801839796740011124279106891340973448735258445674273952208050423923559142543652490908936491806565426951568344816254296089237653793569325948983153738214938755959693312687727200233943909366431047397636540425385650876081751512083373200793778567220329927159882912433736460910971727472495389504515219788069770482623003245781690230490196309098542030772571772257287144870223740394855941789892565671152259809546420663940845584534026616309440498846106513896416480061647057482736317675588342922941021318433325114473187514335102163268302600111373010521052604588421677194386401009575699357794531450149890947516787471445362407367876438025835024178626273462698476777522128145528719260359503075037953566971770083356963034617584763379198070321854690940903666751926247707446515104995035328592863482230839010382520485010052826251470654562767728220541957431994053931457471585021427882588338305484404144727784566041277798371501640379861421068103774151877695494871338655282868209800242235441828278138652330330391464052370864234878162431884677070507876446340242550522425852471709623623388880236785987353907202368181746131188218523843480607152266881277687161124146225399920147047417808028047431828646395335002934479095324859334582371404475076585099254008722028765371372486510494943052534445397209337721101921254394764309937079842190813439597788446791061131480720295785970129048966701003911323576081503774868339885135268860392057075478132972449684376046818563812631050945139115696575983424055881562653979600248719875988744679320919428686603181364305519092498849541858996034161858051508405655325845336451112455532469736294955398714408891688008299344255706807561824217809878100535267635029564591107902920739499318281206246460130731138786402854147047778621846653596734128991753349723235225499415162555951840750833360692658455328339040278754224228427514448546890873179897191847566350982804763787051094930117821714342262576078497951201486341592438213647944935112290313618018458344297249212413171942222843644988267877926329454546131078026376933783247744647045459153371420326558050906328483604429932126408295521348307571273045249993971427907865353258125253625241785307415827368599696416150589770847897251635821966235165410278388470331839849474371807587490284867138879828030187627102191363065528047511326819129901524457265157969583885249301732431636324439474032316270792887917086115492891913056713161440200943758766330622862376895774002729513747928527950177418017332487237171439507065170952301619775367961461816705939489852554930612958404674082204356427065796752464938906526889093209469495582558144629434455138516670606329545966440127062228439825982053518765860062835881046132270816385783256294606420402678096591696625054839426542877244912723380820241203597076688497299656706229183219294048584294160792202042979635080352399215807774714038989440623123844577010978471815221895565243468524282228507928620361516543019844915519599819549743464662699775653624076277762466243673928866066444812227346203652578038251335367282993249170879613542175827604640809102002301652015702464003707857234494664900598544192421419899769437442091962606464164091294232635089145806772374345095393821663160340047798340938461696920905845595002691217911542827835517716188592678208125037729739988600406610245560792447071870654041917831348735305405188688166406850487290187122075482994691783367671243263908506935172843626637002903394146981198277466517820597900847819704039331375597414763908542051947507260509004798018692663525913283294853035850830283127430208437136983933433178589854824504426658809055046995123925455167413405238489784267869301844160807810260635211924935435994546095976998383260008051180178855948986289854782467078355758162101669238353900086377645233514819185182454338290479887176184515938068261655137580149094869949076172051188631212496334643042451494199265905623738975972097625871952458993621860443842456401947461419684371433240145257639549954660345859209813080370364851843775646520310587432298625437908307538581796865114849024938193877719675541644628461156579473754315682668257486198566706101789971262034052184066734688277685139372705447608113778531934581397790617053043424742354003586053798732487909148638453522665193363688826941711013491733743119048286508518368685647020487570444533726574103673325040372560384143738732232935824035789238454380708153868654504087513870035031633110797962697892171819541484456682999101318728358264778783055246235950743467383074904576801511217008420168074721478179728035484361039870416672332908162963703774794751127671217690247551580088740117095054983249317820268351780790723809449936271159642153555846691776858719807868716437524376611066324258711407441864000490203120514472043567156745798816518037561572760795482023308740738168666855747908429798783426918726811925244918127798292576293475030880509567645121518667492858597704950710709282239377200561019139576589165609110152751548690029382865993248123651882627481359854161558815894233406890467881068876107091900778414190304335324816992133027312206856694888498553907813792936922438752323854537769341958611077087390262966793670338065184929496126846954679883448632241552825596037407509557583283749372477346337181275411159905768859171338384535429410674731093452199624915860927402805594268151888670792278775798916129461951766735170109733232368823909839588409006372145816539823837888131809702140461078108472941126548974671540901932266559817402372891988568020384153380540367547423457698461453427937488268836949403900063570790771385529100441513358454263937294387099879354791208340147766126352705189892326503763455322648527817252403195723804168987020980852140661525695959749271141231630692429505118716171924656850129377852621282495166773154993344630636354389627833244836101124279663922237391195430714164109195241957677806710648066207615639181587279277513595756877544272050892343175780130018696962564563214013051961533203460926536894579799454419800941056547870857370586895365460222236825811074145765187047551228264012681766882577226958888537356879622212008386678118173541667940615805577314274623555765833952911526119086117838895477539345677311978783449124273424346071409698538097129572977900744661291745788364744828635930562764208460493187284780695368202210750137221542273715917179240797330365767909096647609058054265493108099248184144790381381861958080548283105815412391004665286304695238301472565337297044496750504421909656707058149715573706560292440271050686828500794241124385819524153074102156784076052889807247339155090927865411587914065344246389962998600213286992301623649983150938703018720359852707291514100869337208746601585597592034756000848839171155355207488930470573150046922965116915574964906943020903722286384849143360046855383111025976094312618051281793917639751761873055101439950163437850971578768317871244734630073994384089144862935204122362867760191300030543228714950730115704810076042599531795699833381491741146100610034128359607234009727139232958955666990389209699401959629315121593843517475588123044703135236361355135210818306893756474627101534378614519095624952544634443804910758625818750507366764319163873837987834917420068409465098798361384231926162054917506090003585456074808801287880687088121768184132316573717035868910770898239868319332209654859039146894001697548168025674854342586664182944874817884583041919891307885619181852743307163625707271486281878119637107639382901255077092498598254916532046906024681843115745682775623307897450002646193487938699472450134292161417088316473459579744326715513714248803224932393363187409554630321709365827920502127049350738596683382839797404162028161199955276114439982706879177771046937224752396940272561691930195922255135918943104687498660291923747621917037940875221373611378788256883763461895496089426434693270038804344304597325436287559001464346593775742791350266833978248965432928663722403196703185832012781719373590309254385163175564265305443476824660320461969535509768151272127032046427463496328829479045642570287558853644094430184765407364149010641512740999747166658948059398098843498780575513780023465794692697969597005402776712215274684328203577783206068156888563532314190361481140897408096912459891838786040624731367098154562562002846142043673732903910947107678014259127111053071597387317489825633541078244739214824574508206574215452891060985589841589715992521743879398975380095711981479424361018003189169612423243096070272912256216504003807735796155984952928037910522611762826116126818482557158322546562831838348784184023618649981299426454213009650774635396049322790244386869097410552965876464132050845165448624091267921515482135646691160433355637549879051475351962982277244326804260923998166316736628131819897389296098037619238510926533184367840557161601166925675662769890458065072927277707983475525467481399396385622441013497788451372637566234824255291389851586631494454074883543003920337774523820512615797622707518591649795703362205474268961988577060200148116660852532999402772647249080071338514439332011266308096012191910194350773660708461824896947283900983626564527618874366240326985607231305130120475856846671734216509243108723145633368664777792763858391394344335224147291879508515036432318764716326409929735754435445360898006003989440953084113427248734732250996568546650950614669892665986326542814753459428583525055147706689184119786379311780401775322902648980901412916879331706372971284639023349211455197743934174392558709749949256973751964948081412591087261734408096761462507030018369244600004237299077542515140360986082287513058971150525278998859350814278893863303756939161691025794788075002421484129983955581236935933244523728400585900780058249348940075586116564787288742346329007332949201807416616814706530192560316818008125000544044845652101830169620258933510735476733441558108584748424192814826158449970796480953556844030055430551629947518371951156308602474041489005966094317015502606132698900941214472519132780818792390047041364594513348745993649342098306445692163899263997942231111711692037274538247970446661312244894693095702707876136609376807548637043281018548784668928021093308026410963501071538478226343640854662337732477603702160704787944651309596262479878406546987365796262954963857017314013822392866582522596997682448475872190548412232893828577087797945175412472840413002351600152097679436848958862352640442134094282925918073190762828048043832230821525951398504270732826916306411779876784242609520890100304083562743561015028762179984740539565021600436489095051711451308087887250618638806137337471206615208852487763426474329902977448423388592756250518554448250892087107487841880285123290051306379182302223429730547886052053932830350276235617149166291310155475980193395928224103436931082828154755941200379610818044992857958211184750659156321924923586815799318788071531002297457316272276328475209510579807078483790093705091913936292358817038031196125526367105371005104685501454968341090971260686362499697575336981146489693885161773177689776973204494128095554748400969074607666607666482847505615477842719531103827903064661570277158840881121558256708302440595878071294180193165180704337142965173333732204212214858003840900524559394018494827509495279026782118873251781296638894840426804744459477971285474724866736319406048582819507303617247000724960624233185035218944050703250831653813667358293132460075479217137839087253848548607770348449387081660695796741382219650630771125704559162446985888887304650900187617030643843123572975134342063919080678746145277854051716015296297675220933049426781480423487126457107026025905428101983245666388980116854419328759444246446765701174085461138282154052044681626228176976023447640680884487987161524718542883027912746857890316001415852929094402573306130164202867774813392711855207945362240868909865161658778948735054094503481198671062946005281734639806020066170654429906157756072152379429253863569436441674092127200518522392516073880674275380137733267468725883437656974056190527720760532464844494613286646831602247714480557970923106516836084755127732166097220811960351724627900808453243170433857068393824937394505157337306154370750459737206029371708826219889598725496697588987796443889819265203619891029515106111500566207774767526985106878448289062772949020802264563745612375564715633749841196715006851507451652463257621446948911434183809157484547323336048514550055926611290106904862477757747204739128097923561753479415946615424086917075182786021040438908373518878141292356652377213024033477129440648295961065271958401845299941973350680992768217900533841174805152464314751561480773716599190081859768837687742339731287929281117588109167308888544120169949428860983146308899823871833357553715457887414247307596062058615872270971204640508068793073881478525387053870086037480470982280018671530536281113933779449675862364734157126218950325783943194204881653499623352308933894841636585419360390942412808587613759812221136263405780180865416637819627492998452956103136324589415869967233652949865842711636423079217816422288427846000305767885091810354715162918218729675116399276014651616562241664781033591632917677394085805215628228062270009841546557826204290034026214912368523892669987561490169511308364658017397702380892002840026365138024399956297942841409954993864231835255041571629469796435997807839557149844849609058168615937961914913577241643049502061762127821421829182522826967191561608994485328778152787237528674197231819043867836658259407436703929052109480557352487791768954191710365007900602814628906370524535325082574557446080591217777022692898084608797254467446765057994775690010212143798450533115833178017211548809129212882732943773814539418433110945855626031939704839718293031975207801543787403586379491965807328999155146677505742851688366376188805706500065327058444113844776134679206254241238771688439318644933940982402819938097571658905739358676764780179023892079848585292285907318863691296319077751969020300611353138518332714689879878366082041874033343308547242041714090732644605051071353052433619816862445391031781412700271261928953388196450332576997158060495624463181282518016282382449698808498283646906737434861153118660210219080940844748116627562151770674148204942122454278939538586691062556137780042494835220683698529097807609767826646436441666626557811274272065847171343413502112739308340673155540243604064089117103120519243767868274381355759585288078554698332570767016478645116487975846360065863295026134421553475744119841380661734637252663154897381302888422187324047191456017248685466096426726451553363223297152036695472164880369955474294654873690269841212928964335881434564961772737386278909799041325957991698953718956214271288046216997908539651868074362001932281309044317828388964595131516754641660728901155654789351170351109166229387859798449000284406603799047623700035384051923423993390639702516231344089895175604855869661752253120712142734666402977522830480154569797657791015357287668234970928269450948584770314187983538670898428189663897628723888899333459746403600637252669005755282658959809222014762050643720065683357715790421850703054155144011886245509602150966027071076911929582725355261767822966287600279745095964685338298923456918327282424396061682842745214160038097220939767072069464488726520449533249714580647828648992360444216806160521151595703929876226055672999905611920111718473712202438749978428497235899263425405575687262654149088492803394084699635435669910990289287324305410636129413438863827394351763699805561946797783534225358890020837585734548112292092611635247488120774891977144802128194053642132563911705375324715756902439999027906307918575199224104327326615736214561748133294782605104267815573229992095918231727373011988279279146173174519515614748205466868025818602270996226051463580612251728551200036010886723486631046558801669504220367924544136725732169850562521197101395675907055915957154515295836332119930030701336113109000679344706850378964314075480151759495505244499129004800555044743391738836096762052803137802126356799485765980646692980055185864676470741266908705035101924958181886956178731076369644362665418197219296306531979812913745427543971232916044687921597559615988656386788611569047576162481076793779742829175796841559835436956253286570191997530812401105492140265828969220153351034468316770042033866851421053871528417775639625541293826365195646001673131725775429687060753463427798288955923611976400353479627913467199021142935333533260937331496851306624091233165214730032083954015010690028039871645065846814049318084224755220719619262809065069227377410687017432774894658175531927397114360709185889840532713255266243883876859296928553179453835213790274990464717168977946305867524442280972907684817870074136021198557124223025931141825604951265223408702154886298952705663016160555203461188189803467078711167713852493205500062219228310277958765237676863790523363952367840514324077941439928130387505687968888855635244939258126173685555530961855592739992146439041290011620324445271009838384530392058877126345394111013549506699879576267335643748565036967812663542919770626221026325689049134612884158835842556028161774657182050936798407034033417717544794816389275980279335985559002124513670383519215810038400839972983405720045533975999461624449990563618860835688535047917463680323569275203671822452602582345537579875101819448198042279924377518741149485819672710945583775333443225959515754893563822368614589136982697222969823509805779910991242273760332481025440897949644917533727338600979299857267943262784076072508631038168689866608107152724762004475500811049614478942261617822167156219342720125766714973024047392573139859442177646224592512578434174001768001697722803452893623459271819867870982916163660089465553855833520369115307347334305090309918465434238068963218940661751641819047665338167037484992134367554950187544419391076857111906273498723605671041038677584609746801930916488095797278795953304649900040334439904703458508324472932080247622597995602460010211514882550511823583637867112942176436797843962171337784593695496505111458243402709670957583279717554644446153916480948906767141749524601964377568855681866048643629096020077054992924150254647155740679000250680791819106784109492823712351538266315217812556727904251000487488855802634207565561963309320745242201735771167080851999365585810560338523385317179281129517939352632284658476801061291939785596413322926692463357549529508276456046835421514840845007168477137170512026963289185769961350993348669102888773416342153915274820143693764100405388826885678865114647239035911597648143559746342656161589682511836819532817679507627456690059567835554289704746300155542404175329247904929678823330520021773239829103253692527984637144416079009199507529267464167164350965954877618413032730407935871524447405859836670678623592290139853909531664053430524581185596601363668238863673885672433228210710173749607704310026013769740414702415173301072843907695550284099427618810126532948768016755937881301213785978956461231023410971556047684796518592149816321465589618948571989811977171738175753332919418407386149721241695412538884201756179741421320788552692644685039749078090594251936093981793453133856480570823330582479433463895858507489525231751223594868234972080196704555299284195879715586590544258845370374210215797244437704451996346756458562664766996173053272730135914730180986776972296793042443703740057823822145754615914948974442934404471730744213352670992879235906429566335370101761354326024498493634615895493567312349265124944165820449546645036266708905018833364158817270074875753848094953086036912616419990943847295450635178175214588340143652023761135868906272713655300346104268295695232813890228571254850521123121974573872520187644043217575303398895121205066883185663245025963637546267435079333789783601971628816272446862247885152525782295380550996143234882071581899754899213496712734894682146173198592683030735557422715871868867788061636904012899949981617895669796400387125413689854729660764629539747933029898562590496632707035206148743049475563173629973772683778854573047555537680805066466559675106522507717174565908137876680675992134357265426547702413714092237019415424662862609944023260096062333401286580009898945614102773195630808072273141138597298332513929112119708460028861786269585866091636951973461967229647414890192531214976963910348643820103505344919741934763343974442981842237175952360401304512698861824349049970635519320890337895550454750729837054942616189513896392758924445667648588053213489868546342794851546799183970665221366449285742374332100937314744987442441065658738480250732912764605011244092360141108458203655824356676052824686125249795580976099480390394945204097540632665218137250717155571909425220498564945532526900532995760369469665014067119127324940694463368722234089652648313625487162097624631292336535891484239909742746660047775799045566678022478690615680410940306422906050606807346637302569122544787768162226160410999657260646994276863205781240842179338496754049478962300212624229863598545495059366728635384570542412000593157345160749465567853900066255745103836960822513384739360693065794654679148946957123130115251684006333013578892440640340252159094298821925293960539145685352163408375014717094109236239319059018778818549777808284290137186016647657877306382949820745550593203208208249920601372985020558987530807064981310480118243138697460510393434103803712609142331179101439553574659706575246496903976779831041093784134722990999769375714902291365736246956434024777743659047423765844156302738641601004532458905895635895581879704295129042984297420069717512200493060535713368320612185300303950619863940679761779791099585578489461126874246712298781022679204328786741188017953937569266329704046632288152713097321495970611678626459279641361545820072904661536091170312664470044440867303459810831102668335234074234796827842293694160193784233107570961095927272718012332805864443607007456665557218533078429696755468295665580603043319534380778380197975209734635033903963197750341061915600860146923266512027888644163578112501720054867174210978645023316043817887357202728362594354831665284928941298032114178843795983421852250821872628924264969169245583795581403133976035086374840772055044118576883353339575158897175217789080352707508837915525764218456547816403919396768336302898979652134906325083149579085299958792150176015630883123949393790524737053505732646215156016062134742147710641703281113017201440081144251567811217014411211690991324600123005415451701271188558798913332374343525784577141677249676175386783867703084576027664061203894204581604429108109477013500809168728371626929509472145130828680665877380781047556762067028893944801886227418790648351513115976324206417134229318659706232708636956901375702406700689871030725346288227829371382191337401551274933696768995560868395537512472354553391835855200932868955717064297930714166706293217889542281422337768083225033980523578423668449014736653798264324691558241547267967270171069058999014774623008699945747422461197310147323246850123906997728519536464772716803255242145723752422872811958527099194296646742957147201637457040142872610790654296391511404565862604669175696948388914353349392377307453520609261129085836910267574224678564582180289785278170295338641630537054033256998435132094772652849485787415711088027193554632926691294484391527290736091869093049188805839066395262475091412031183052062495373979473999520790878963015257568843505664074782519499101187800523854701170026618084696223734015161335363628155713670610052162993076431740366656012571467871992007464638559382255046859689053770584639954387737715981877248551117996081070265247550837289846934955815638100443683447672528685383508572115494747212898276805714996346537312117111658562372773291601069292028368177407174341042869950237566830501979411796485486855039845069301140159668562006392931561843054361550624795300945138724607760206393774128897968870030705899150942071169256004098805634248202692676718254859471688862585579051624485616708837864298031586957069767353632983784733001892526675766847373529477014489233513196722754518423738508986308523209557325808869073111331142089507873404915019404250512173856836545540512049179400185917350285622804659733041772868257344033832683179836699801627623596236238735343844925766088861275388610551465126399257772601504209573957540899768402936453390628011561733043502573291561376155567980283426745417122800674666260675660351576881251428982732764709355367195550800011289163493767258545452756562037212022787945231707945960726526199486598854532081992386588700280650556492011577999730288827642202178377918049658932226644639196402867093296511574488051743582788829440995693099688370097253345979541660208904223850069178466071500996007839370792136310037359046700473707823829720389249046714188843808065090367891647450912699963281410724155874724311911389479854684679391793640633821388522460592535074204814120643317520500131415510913052003486510788157458295782716106316306800887999593601573601272586442579222630619529221937588176994598437209640236159501345481068096760788035503415284358916200683314941145669910181958229432894640016614802545898861371997567628492154729876072830212716938693972358615497309615383573194496399006297213754069049519990718567387972496436249852800680058677452250179464855302409272075211158408444146408703400173381566012783485980405338002718936333122774146428542427086799294066885897369525597607946593594195351286348338027709791706926326789910743166486058588608823995875097575694713525470490324203511754068228052037197195231299089216711850700706521146543314034383269968551077963351370616605443497923606008613672677404351513435361687493161451280563627998470256820952531634403677802276661532001956858897938128132164855153328914828692433271787962574707405023189193911175017839116240976778321577310469306111181547999261350077527961195857817205446069272309352912816420181738659385431708754518366785457015489526542551555755715377661391299443423161285862763396282414738797232458165202404697087445186518285855773717553623777584599622134615069914200515843242812377258991202494924936772402560676853583981319794343297645492596530529754026995426227044587103966761707754849607169529703077051886757919368537526113839705942494294404060396720353208457941672245225764106236300560400528832489824256131995912839392947983498563765148209720847050639542605002498035242547237311996959659750738841267169834609432487756376030888661168669578412664631745462416272546595225947483460223175138040475492087789668038908646261506973242887127530087699167373669462058814798853493996176583203847985322536196600613995239128227982078336219681422166933317687935105242621060055441653001577138015571376996144878748805809663317978178722652636749793840532873578778839205993423051496754961742059223707832868895477082285520741789316158317654484916284013182656631252191475602993417860535728827570607079770022272697264130856383764183657237776617190305357206527924772488235256472868299469856091686583634156083711158288033288908075497384263094370528886008791303351532943761097236409880299575548053725655700168748321636755441414797791883884049940179305958237001877999349175827199919099338368886768373938450007066807174673289138373720927804073745711975981527170669321411164608801837941987222117881570678308293514118261512017168320397839664083848706714702768150938409552712613765224942319847474059256189764457345098263115287106158883046308237702758843226298009528106007400077750353362932117268539720543057997971242299389080632547556879522659036570601058135509972162262310493126657509844733356201344373333052239890870711373684683666429802221060823060535235284550981472731642602769546785474215823613135109213425235060639705333156938823376831736401519566389699282938806855500856452864100562940738114497761227135801688707125014786955575313226857989467128717352026365746537433173377208973215622519374339695407888207017306683464827299270964684873874124196763614748054494171435367464006879810912044869999277035523744321552921873629855511483711597730558929581327372339515893201485475240961366751614214965896984595601680905399092305603096764698628796853019517025367753044763110255954177037961423191120473687867269521204020987885129521715314500823448291603870887100520916690670333932839368081467369812038362787560825786234657353835544970626622826669478615071367984084111966676794625250642332535584613094555274857854659822978253853928463736966437195680339556970002298635706200688130964203378829363051459088873732305244834553120076903931598387504568658762502098981849389887676359499622888247288249400909362099874867178686199624726694418624807233514724951249918480425878542967429111862399771697975490695082270176194467496471155419687641762625291786338753191267285751733764497265330243540081455467496233017890187889465356723123452959506271834924972123236727445019320314851140255431596379511532778577117593003583107980534246565133806803681789248622668476524380456818895410519361719870669959504502919338393697427744370728100794840084522567562766520886309078124045946906697859767774057874548250991531587659262344549887800625088784709178243348997161072875550620061641028572119800700251292375381756433553469836888347349351396365373695703862611958449665232607673944863413509939924257777653290275163218746844728317825112196293611448174760945474515234435332802476786436759478480106445638622060425039448798240286643308768602052685204792052272780973680511839325838548387814013246045658211269081729518071580298843196484068688979240651358940399011340922013648274745474222756383237583602864875502410733596917064233339560439086174468034043177291470894392853411894153875620654733550220630870313228384666471252754674162458421121911666660401509338690096022002810735070276222849928186446023841839853155740529623650006417890956811576712067373127598712676640069288453519469167246097073974191334766791646731108231548741779666205441042422928362044125184793878449228011599712698094451483468731939658755305388866258897471160315222425108280563828745916371794863019061813033446711033190288406107557740635247666216300450198792265368204608649773307884210615541926017092136105461883997301394120145465442148811940627972679150004153018146756698321707125805267296655267597150280453258723973565918781461992419250333692738667413129917026182552301446343587841505239620238424600991338542755295714288482436376396107306037172636884794820683062123458755569851821023765581500799755739238091708453714341244845369539629854019861769859139530585167616809453642637844672132179848597549171592190748598188212078746728748743834898882606687223973604276770268991070257465958759316747401430720668354812558191519581965963187875812472673906770295713098695948889082489835218427240689700372034026404356240660260382048205609184270184616371207805181381752399404780520263084631918573742480867468817599569350760432799182215087315879225587069532332524123812485055126006906492602859365114791462373927114153293506911760745151454369267282616569685307290713039710214635148691336347613211097760523129222788659570850004794960335771177444023538623968262964731739277149124597403864379734857561960601417771418819268984260855996918877718248301799456426426465198884817403089241075527363325057372139228192123289495852214911980998379202839712695742519454223776388931900040140182436369387174567772615410479026501050686500613061093134228010138353017080655205281725502257321231254206795304407190895704361635960535341643205608646467059126879283281155293444462517132979227719052112597346496103241897546617190553471235688738003732798630948143656504299363675149548272184041197591963181561351470171439652704110372308008579378924901630107056765038768415393542004343814557586066789794158296192395750509895448113694705019135045196343128664406719416104073586091118084043951345222069901498611768509174951230624161716189948744542816437239953923523922855441569345286917163675395353024292050141016594187496819308044736932240086315422265616967176323348088277881984112341683559711697250419486083931008086754821541528117401719997105826368511886186673873797218521299459346275029011604733599181465510696560943016907496842269275516925240023455602988635842085898197957840677069332658774954858180323562630055265426599610648268332700622217885525322468306701410101932477080566814220167546899317423152202436267756569917969494828987246419727794592375401959795159320800182924101347207994688793533625123547438026908403233543720623641916382069223202198245884499195371665227541827468052499147819371697480438311463610927461364385973825659679779223968102783826524871811707090601837982654182169032719175647120086220021163826179725235475874604829900069064478335768186858406209968573101139268708849559636748134784720726054204264298790478323385630445054486338720856030003531934198462556699512146493146187543982750590258514671084996512981439122000911528592867143798932558589588844434702894433216747322886618998088293184896905342983433818396033118849340551928484317232931588610036580791936099256609041394235603091816464467013228611494598088332139443243066876047955601432948171698951935015224582319010612630926168881820908752180289717173387404457596345115498873634533233961024846419734339919333043120585652113503342930329555521954137647970897371481803860090219744122200700080088657256791679174294770974863602825062884991942271059730682160818367819795662640168094221728383223630339036025120046991950555609281242275535735970659711246744885788891726352469702149250166099207467086256934442812208690842617960237640942002938514818394477323906452006914102001884034800344733334188907914819425052601040798559050514246709226534091518465242800655474928324773890307044383080243189578308645348240369873616972000616198160081454414941300412498329833638725887931810124974862226894178007173302991469611048708775590611758956509281364136407762456009331973954127965383864845563080753421666204571315521825900692724061171072943818264088037131683666709685850566753365780873115015349433502218075370491325242073587872622544293327333494949748399317222178109161851948715386409090891069738644931700559738660874800110144995136872344902704901236764474341245386693504346021040609331204817761426420262191685298779330617731612184515979862606012323834552336840591303522118902022787248312936341568011773619785169157807071464300566117102773416388978284750471930126950585475950281324147353817045253970868024131171671474564441193090813892790183365960233346001214288583080746081191442818805345208410708938406161723144976896782558435321265367493971906419481904097317793979875139597230972320609987337626374280915973664628098354812146860388198300051512262787000112965367266454583305884971696016065156810206780031742253186975620586198935170914833357236174263324528796483776985942569145319729007719931735980597621624566968910476589392092695674779896059959883100636058262464122557126620735235704774103270446470480910198300625266874835714486033176197971845264380432819957546037686038179645051342377589093076170687715950454877134757938067600396754689686091903598785087621097677223543267379038952917426807925558736480393293329332252206981352611546842549574540698549593239941875362587535533226909779741226894697636607677178126290056516175374870093006755635307971845013991259923453027631774126714105871962814878062687383934181435095542420239760589825809413168887000907066523923583332338467763990368957767820301523152285332504736690629738036800312760808789483506996387254394482775428741803177889978403554270947488529054239024648219375483676372900555259544007946351699988602910034737610429245125532349731885021093638708144646869013098466530366067561359098746565971732572932862705805623057535851192875578023071280673372693274793153972115335853774048889009625687328794562839937023078717065228110542909925456178051321612180651973564050067169607415061936023816718570710790945409732820715939768382221506831898214287877246731293768097051315426292754189771662671527410968715691593262240782736406151518182684703257792282132649249598501548134886937014158077235030579876066842861054929651860885012088369461094044483754494904236418603648873445414660716000012922252197354987851368028663290484885267698775673928153066992703047918458702946312465196699728071296850718892353336068083399169728954377132955782671300333334683606105385235594812881023121628682530292917447474571337315363064102563847652237078059723513934197608727842817599126563084063663036254914250477724187913335563093774539226299345737286696865785958794474650678093716548223762004531847309907054092652472279739057553713379688123153782536555282215451706734994612797756443077147785379006917916584892307835863818320528773251803831354825524326786692214829170795529895840492648688487315179750999509167743215194411381310814853725860898825750797515836549996306467828898572502855511152683319193675228436431069358167095488380855347671561531857686891599027898713375515849650255288643013786040253230369518997257526619101578942277780465183570033531384885375341574185527172059984846263382302311813388119682045843870864200361551738087311062691284785393831433099186256120667120003323398393901529986104382308446280691976621092317384654319323707574951631875175870199771877019352153602064467849445188794392713243009130807452750318477737617830782352162410611707150949681992134132085586411619242659110023439441338190438696315785903007508169956044756817092478147720778522495507241302849651071689634196522000900142627054475816919274852399971678311253805605637687233682369939713621128808631340908386678188980420635200646918183304836522934504974850669842636448677634135943674379931337013711200969548860649980195046108650060370913807831519754740401317962646326109662753958519358314410355230271889174142842449136026403543081639082705926141994058160537529817702657220329867602165704317502403263769057753289858494027194661162183721604467764417184473393093316913484642940612848306209440002801651116168383603144253472446576299910375120758258161794867930040232731093092900512327279349296509430633568488360562643861506475579957176810909470681671390124281433674325678526393033514887754065722118160747941287019192327572480455205199457876675884846918827749303226550254349418737746134824549541356939330995515029049032510225651434732746302641663191748083986800851705551926721946404205280787223205990246728446553777994062558230456579111228611979877899252101220191744516356719400355180079233690402650842992653501351724777312022524077807509915402703736974359717468113723439341278366414506633982215219305527711454589391925825933976237210153497154727267051025862029235466307798213778294312088142199544182234958557558127880888160219191067237510142619819313348566555585007287112900712761542943912766832123435992576489983547714462828750004210364616272539736329014298089814620422747378805446088649598160440367104833712535408853800034893306304604613378400228214045584175355343670684797631141980173457834917198528614940605787629634214059665798796063319334934043139818210814655485649903506478637088746363885477094323521071656023817758237331558231913267822328067505011048498512112239229314266560024218745713501571596332130403135263538752043978682113208306676968202380737210942009946323697702544557413248806053788980764703975385671386581456255740079084991227268898965635848337388238620115123166699032553878475435435939054912589805919606264858966019149014758496506774064727078764053136274125153101749610216750763358652124043451855478418282408504414899904339336512778925289394903332893158889438657916266752090154008072979650294697463482725065529829462710991034979724766540366533921370295250602214264390348133612442101577106540692104104313466513706646836719552376757110066830689804847312895180879602171819507607069477175240219062749542696479439794726982200415673756018867786179354904524798135028168535221698701084676423592348376315742884747297523645744286015454158703244622787910940184719611456135011280396667989410356736166939713564807299313577399442976821590510985064186454082690387907189631522022328204486475895250042318938070537760638410292455762398017536790875185346957176815985413093334863197738514094955645761334547718097693383332219630222019707893734362009882773143402089876241374109691939131004082844150492789791772590999329715615111850869489353824976806617376970922940342313979370263752657583238170009127287157383990908355662642605620927699072033317253032888823462830167369770620814788443869342677482530621684943308657211723021950621216679770400228066577925582980039351138222360287229535081995037048787749602131803278866877664644557707245134515941525176596979198796047327953639314903940057047835399899575623139209448025932103645466057974305310901776297939922601577673106458863878501004509201008033633406431101701811723001600109494840526356295330630338669027578475249377007492986413487354090956197974517246625282792743208780630635164735510318211590210327553745726151422439876411138306688915899869031005351301873965605059307275522327736900898336537921460808369362809150621876663608129014596578564391183365005279614503302205952377212265271364039101901989057451968920477842676546802467960721569370701517458272123144422272143258688707347926143487196678092012136562273258502877174295444148359505895706785797977818077415732809666986403681316949910052487157858444715715807124997410459440590510348450515391374267411218233038092451406001642708551438752859737197026856908575891657136868820351536049542978867780022104676804254728806348831123248301855441208469622598915803912827472360434372971640970261392504094710406811725486851392153258830623017307727880594528929561644175269304672002141526906707331082501218982833425235757820417340031335364312927890824567266964634706994549280267631035311307288962285683444659714821472984742331960228648892484556112543229392320683314832927265940389585168259026911935567398804110194085177991803450350495831765783039240079567589071126502574251229147600693716570444088032752306890470254414428612850373656060686320100782753460311076030848240947296921166490812506349022768031028239306184228412620429286138679329588402944141934399422063723481883353254024082618469352666616144900877256647657194148398758086962697512392204372890126304448305389406158826274921546926481874060066360090502434170442756418492592403445848834417149870363038053843962086377368729132107656809720269327397520927410629716445193168949172723712531474203469143558818508840029816251431473006832155881667338444098005913628033607730472880995015673055831320106612170996102717747925650881121861351701498351098719402157717274179169567992486015945105997736520115330148861923128431007998046948469059703842058971686511829660628697259778393389340514979322118050637881078641937925804258714149383224841807450352412039351532743348497823559956665070786891421237128469253585101881557861686044948669860904338362967959250339748886259178500119999456336642436193444999640754326475018028349554448604347723651954573878678691176236079968602241989988478890643202323765025463180802364033643471062819715628685694452383142864465443606720859329015212302636164826510805271103630986161832619664303492687997308720814119565811414450231169030809230530126165249160787248852489293009340492245541069833316411632955143089582461785102149994356396217073490707630797139651698294001158077570636661642222670827575358712683604331635285114099479920960213278421334810873914855211890354589331660565939255408333933701353991563585563492093461676047780237441975889854934431753694819838719406349877326523326444901609719590312203838331693687391088942051463618366674810423432825689631738498633523557443543939817241822980882462375583585611087400549583385745909366533287860370632829156822806065590664796838882681193332758104435865311757198466909992689624150826586751609591089254509636003122915125350379156108102521767773271794016472029826011898815789904274485391829004472888187948288127055020891126274286803062275645957380117121506366239416783170548182417898502935927092361543151348693170815857401147551836050291866224514376348448335668052480576671564093293615835091451847422712905119988504933478169145318740640719839478496279046831822582298279257518280681356234334069661577225148462022107511467322610509433329517150414979081001194833784636524164282045138191350509210151466500688762023483507294066773291530660012323119460030362775243432847067538887714369079188005961226489062978140086315506884651369706488745884174068344123871811497823865268710621938198575780567778615369584826297641394289618811679705205387903767590553666206930152351168537253844820926524338271574439134985355220498172138411514627810267430237472033635245203840298317884367689736482820437497959026690222733284003970307716492625222811751790247945438678845460049785331682564006663195009522937103349782395017388154776026082738508612836164401604132905537465181953740914535318478411079154743162979466769990924155123795924840085952068468809723788488403880185939296386117216269231512948257535415743221019230973264574399916564886603342139930436161997140287003348104842552697514668203779875816362187364912803065622833058297079537743399916641396837490201907392027498077542831059391813814916303227678832410135243547164057353139237512071881891942631837167083760392987602074741794078830781087263126107411656922097574141468168813396204181854706609905034055374159452965696842331508055522873423855174149007390573578125671988207305663345563829921690455617533209789984934970477192705448791399419581875285491710543863686563804317629623712508457948046909939534670751381651694859105913021136710518174637334585802136436499635909508186642289227627963547830356982633599172860908678466225906037658279528370267738955782986174974247671048962716725269103420622197139045746958839863529585730043515646311936469232705690247462542107351209465088120185354369143717558138389232661472158744930747247809254035213256018376300752144335330379622702434784635485586363885396134449953500206310057758614154212690998016830643077425001800206647295890154106605239258436484198260213879058296804651171579302061135456048236079351974672361421988794635579617335799579616398438101766514274981861255528893426708769963838150629125586905484628095182661839732359688028968534618597017094601540745452490516292511837892589766699502187733214821401078518012497337285277614459651971294703509889753075889965771804495982874623798054558967547018434143750372741550406529417536073126674523467762785442690688874472334461615395090331818999864445792038674587081471161716041876734187206018115789033425147945838074325208736027785215491494815458565762480960577973594580064949398154101498314429813322782482658410495023814531858958244740680841286388679029311173342750944634786997739156912674523255865126826142711875246174235401052632201855401549539593926029642606495521363013594608248167143588023526869348082000778505164980875987695813270363401674068893651515645622473150114142104786616359846290800751114708218573611337053516387425915711604243622233622732776244267497859216603111279935171377487801327280378035057706075772792768153531795038096409909897859156266302817615771541700622525153240998439559205830446199816735893297185584533126519409301809802224976260248714671939178610072977554302957278389382393135055685789423234660208610285854483547766669617203153289856221201118807949267582200487364843441246209157347437967590159561668475576738196903712556999696851073591459473893471917310270363462194777717974376414386068419082242551350936136577970467896783613056855862137245185576231879840285812956942614741903546536532864111624410228599650652129336099995699465032368305414952285837709533583764821249757135467965807893399965346330178532273454403679079083071764153182270584376828734788130875334149979673631859476486482904840389912693716873628194922487200772090181921793235386544431499838707438794219608787694068105350142955545512896119280732814877511065890921205478335471027750378063688352486596957604243321493613917600337042779394066342869785715497993717563127355604031632761231412675874545771624949271357565705555527963686492368588118420915112734399086333617810823341058809779620348628640909057398790834261805993510434973995860119003134034367458761652472524863454461639631824205857700472410157136494766261456002235419250245103385372101963057208306188879156038519666934362413809174663635315599530101716374209232683800713091695032103153599265626424423283578146737095316243116776162797161516311319385329413174999835753024570285520073069712303432858320408749220512463077213037076166879226791264670317852816978785300237716552253700690285507687729820876920887281017723619599596152642442608618196248642826001348658910923112685619306899775322805226986322323364496233013247283892533101502321325606030039543173733767916319572674004432832470564918225141966870066700057096819352381885566554942186776952086360187669719836681564107429711749841844191874943184685084083507724689339523296988623545708128474314869193400093763404847153302825197608605919853057786837150425021216295735881267188346683073319232751028513281471260885039469821168140047635364773763342804776066288095469579982023610342195770773262188810477260729482421173958985127576262135257042514055545614740222435187073746533906436478791030048447435238307142133356283246147465540357709572450855909859259990282481302446203888460731995511952328664306575142136331639863506501940345618919484330928940635649872409544249709180578308752346239886031126184596155901803488503367711994540013697569516719954396598878047022240321558776205314850552549362493902436985249474957379786770978925810626963304253058794724600601079800116288536911979284960708145267697956623276418258364036091559676842954262296080695715322555556622124973562033567439725902556419827725739315915678143911169122315199396217354465969682791398306549164983498319343584099837052848985894258636569085873903310256689251233565609398452819865188461214236087957734981765734999641539009027447550415821902315195893736177426912663655951920522082812310997726254585606099995085923075299627792083056891709218511652460013166776507137525790315522695669786358661894160959092460005082198154234783925497247938259024926003799999569116863871167472730548168039620192110362299029642996197468460217053733821234713129692062001900208571789273257579535469205899143139681390181525724916222202383621941989421163786789164041232458419504164310709093160989140605019924234074277077889885453529642908846682739093827138425331084814207375262751382751845276126672168025869013883197486681452150417120735515559768659870887064140902214072066474161508317807416983585853796329463395448858124899272148089081549636960428869972308609065200236519212841899598592758561864432712323830983497257419430314087421668250518997221040483274626520106633024707710365756758548255382542604602147251446132138221801922466496905396610959761827962995336967751278620457417399949018103865113619649963879006891795219141422206748362758560521788100688992687656617634839504572972435156484317633580709243994606087522406664226667233761717446264201272823778571927696262854102258122671366924277918789757715082502342492968696815797940297025617010933878526559046324184662611739564149102400423885277111314564133790713000020920265348718485237512773499182010421384311793039301113007028173189384139733601372654479002848114512951563779791118949918561339361183286952221915358907574696248904415873837023109514798726000807036066996505598577395122886379744470725491764551721817831429126571175764734763691450573433863365643392724075305129935978311713299070417387766791104295551514669161556518032817061574620277352596201702308657866973893940244850824392812536419371910382098361950056594513250693311494480791343972874205089654849044985962094260105341589528434177787490108959407977991667292552586925436143048051303688990151285484809695718416522470556553928294193488980831135435803320093586467154826366204657086211307914444363002963887377599550037264125333177787751856432262391371554635992095656629066789106163481174790533266619829912595612638933987352312589447186278231878165586455296467577320886432724251917109998946290235378948797284433772165439918312694505115266178485591882246033207753036553284402931690066278129350979430470860474405138586060205103098684368284350541095537986757787191063069088344864433983835560236834009287701922132241201158925600593657028141632639899175937309713314303116122531311417708854996644236750506379259599115876101323484286704538321407834946808263061053302710495250855668914401088865111230674512326561964520600410835238258568333754054031589411449520455297947770929887964434987603567197913763913721877872324966472784400384426657823379513917267168545275177221179690089482776961847215938255523792008332596835533015014464067981929980995395397866549745180487723276322225968210684548390346414967551278754532839768336973618750567043893038207365041325882731683687505692632952847230233930310177837659280574064306115390405149572429738595955820056105558349812605906260613581437318863291148056159715095879534045088039311254824678676302796274438538590262766092096477694451933624830005800518510728459852528740881309855707054419640059710283640730078224546851549722974592814429807860056734501695657178690876713129066603726490684220049515883832162578722504344031963122662819017399176013103231925033436687585601283787671168038689517085345283176806103748798614069757628043642715239906473211319400043306559203007657827563676261719827005014375338876092410855005677891328670849581673097126761814460299608509685013432011180457943500834797950301332050714258116735369257941683107614957253222724587590337820594345393635192097358918628176947743198209270754640565975108110496825144663804929449146479351520665540676598207616281080680248087415394867817879630225974627710435555590272279049008930243040950223583607518313845367007049386766544564081559681703204564105854933112516256017934453172000806526648444752385708290417213043528526660487566432643394000394714962070438918245170095392815850456828338181168856750392384848550613168663536820664544847178321866095603058570834110582961154517327780919338148192659550000434140379846255115119766099438353492658628564099344250434299651355381753819748844520288781340941166510192024926630025056519008450102093795954559251642613616783399301789733846432765615148859078029905257925275134848620206947263257593804078056492579176049640292417663051852057582149349189267491930352774289804524388830547954507312603993653413753027676539545493367437462820139554996564369349292260261792177574516082886204958204323880949570678089181543879487557381833971457505831094853500778904802872538765514458446241274379939165157696373977160897790853327945076856304101583543049650446782158801517359526706870312661472852583745347340923657538414091020470306980722981388846530700973504231705531613036368293149946883580800796977754267324134577027212330019094809175570086032299072177418587729201161335163174562329971456846727513857671639747749732441263934929135314772798636105383053189427865387155730044434170071185191295109735135464612885989302590922833418483375370719596321392808450496679074560060809342798527484899491144125290110640267292437645550110997359099995282821329431003781377513462271539954909488657421749693075717446755375666269745153668587351980148940133180452326569059210883868512426133167611766769096351274746451032795051835312810025054980733153587551235133998490454838522342620820469164072643175583295803186702096042801725382250959639991568856943374511349380612864754975116372614958702536662896618897437847002535292073272216809295474120767072606079495744886983486975434852731299373212603245486392749522047424045704029086983426915164753526587488037376189950632506915300177934796282298032639951241888111368030604033541406244035704244095887704957595850219304184016981654778184020639433360201826659400474393720928420477862243617226002946431164315428610694802649335873038161718671853331402789370629520743453695750538669699454293272279505149773895426805781044903049913442844298649571385134622944711906523499460328847907218349167509910973220533458856036573816047712171642502438396280313919725420531000801825517026933338951191472487795475910833459556403135973639597481315047002562937868951266261201440360053590963119831749953960318271608956465347061413975155935602839290201982152168968605291488534269839817260059571576700137745222512595276218089810274281214037172832419314098614689147592615159985449985958878754529136340238513115250863331515229001925781704732432746607119007202467458583338538389996542886768552845545157947429874511571374978069649126911468518515537004056869200951814490464242074620222363190007771501138497529712866482662543619030152973147245372913240986006552417842662619714846841164761555959840669106455063993421276219743997476735810177617395396726740794168928436206639083016959948342651398624200872841939317323603930610054061654469705690174892636848794089376403222857475844295031166815658372460516437001240695924483720953395585405525954119483126542492334528937534177478698144300393934776350099967985997301107921373388403829291078090178315655332504056777404991609396513051397371018462184662364425995482252150144578619613906948191816196811276535809990331518155523404325375953213392737343538823036029445458631716661377226353809047302190981441558792225741567353642293118882333723199413979449516043115409451710895654072250650353655596856770571872929408862891597987398580440217414716960999986563884922004228663835661462121662268977518859766592219393837288540658417914392865897015550558949932341289317875796026050819809480905483074095992238719499101336625621772379277615215972094522189624114603401524948801626594468686856208518160014872642473632974503345081344109899644701968255585362238717173005611641290079688851802710581376256233729740560996753106024202620086042435880130226468504491050948582971983058765542643196608412318458932312105460286826475272530039605652474309601893902254008937347403107377288426435028585283541991167119464729573175610707441426000926632974735851181564710388573619087000260752747193272184011890983950403856775465801944030699436278232686666449404341474628836357269957854891160300689283788429802558211504511377331306257348847946687140259816058740790888377526051365796800009929433741139949179791373501073004775602835376197163284458269919454733896108351119165601139705239300688385421477759000468175328118693816061698823723425528227147322097922726075969970798713160788576706440256517371745994429636914039526851125995189649880233678285926236356062562956756835327492150744379676439196395375830791680806556564995753283786739669304915982809979141142843037840266547563292495549197442174476398103742801781685883218162980977864591496015002588706824723769929095212106184264866564069643368573401169226416896851135170494833600770085876417896761910755078521149707612211123127664962949500065125426618351448300942646935560936142421622858935523095371390297256839116424828581689760722359483261997794424257941180758661990944716261197619574877129683435469008217060379601745979915824018797190880135348513243204778181085947797850135155157061884858773588103865282515654254291739534080321540595475698679087906131099411593774881627219673770709660157079010471696041623061319828666998749236528879741465869353258647499031752932925899045453526409488907210913924405226944517984178506886755318018889659204237992861094902474487106711937558132270536866433275541476879330996490733588401959919206961692382151292816750678503558836446071784024832610068009172807899382917782601576367326503602395584425923744148072993182818111676780176899823756274802628306805964063583362922674653292083221244329614823944788856579018002772198328783427138295154102181505344078997389591748645842447377650436923391359967469037527599655734018102634646713231402532106493370734575145697218182118062002351029893612549902303574070361750616477446444791723211927829404375240863719415357868778757439490357557513969904113527598602719730974948649184536305633075025420409240819305723365193875423488499295373695828108857849641269478165776444064098038465303753577493286095199774536951379559221852258640354815297949268039788979471171863070291866473172142719104793617780364099334334011254086576735430179385860827507369057056719196461927003747246168454491791291384657799425888191711050789251328586730323454091987690583344571294031797284869847822448895949972791946105233322703255808262878005331394982495886036333785697116129184243963644677735119212800283251803669253211795260314449777129365816271791678601304172625680079083410001908892765377436772371477156772422953065122941757937830146566483033900177430891857204811928262999519318468317795782246479829741611566414971273191468527464253501538593844338840084181315681618527870306667536309649574298059935662540902529671890233961270174467201956612367873312572272760298402175019307630040242247280787162076975299736665706549975049315317724608764715837942312984911289192669340006342119320979784413713953003115459250184856260656622594955220215059975603751463513029361801255849792333718253007136238927687058678588351641589688390572286874028759759466918358545593345010456659495864774039764441230448816123205154044351558025781110539836897456838062838513099719588437414411963929005178209258766947799174499966780559052938932342381444413284736817651347356313435441748536298713713287957726203010693537801350967916468328384927265739407424549193095307562273217631302411342184555387120406100954136436016342648168839007411696372399963474821171468767907471230663582082679541447299448313731035121047266298516390981721884812635007005163896395477250521483697407050289132593335191982315998437150797841099456647712400662019131624550690140309656466205888343661371652872777807547694353709305557577394432252560408337766965079110941351837654556523641949372890812227775368029226726551423200522101040440437551370724840441425959370309146778783299932399515211751872846632070065521186069638358533238065501618329118777134650989432750559676389008355979262627543162831205134768312267589546762037845763504079566025512586389077842542259977130861752135578514418385917423097295625792447762227936906524209767572151301308003595003361314682205702178067518474508541256111942720992105216052620700127489830930097875627527202314114182781371298158878090920308656709096182367990278217956421826216205396309872136152238873869627159300301862121368388543246742076455401642794964496623943464151166524967988880572588772310067212889573909208863561807439043513003467927064462452192171916105570847099328186931139482408174662102255509582928628679647417433851969612216901307150840890274950724143151436259494180948575588126601687486284436307830466226776583132980900690884987046732276643854826949952844861960702071409658608497444744600920727089784191580784333726701640543814718129761941280260524438237399292393315527553560532938017092031871312010877679863741685681997494646462481396518514711447662214202846667187218312179449504668068387632261486128032686698002436562420889787761428829286996319695645008367813273044500461377742016750836369032737052295377925177864567768876303810130303077249669942315388456372780929964365847427862212996497504735190527467793799960641175226342897250226424354145774496034785986045578718093413657587518193955075698338810651630263937987686847871959080205545287388579060851907230372804874346796775295448431538387432005077455809398739179193706694223676155875232723487858089542942414411523254614658605338614485976710891831828044122114750008658635831926604174461044285189100958935570714338124236718777580557876586044448354764780860406965736873266558921666086649367699424138715678854334281416388326229832750032598695244131033425809890532839687144018603849039740837299130458480276573095160278528416972349001714145847235500915141575030564513301003385972101416468251117662596294142757962281369943388045686186349498847696728336401262293912349495543128256911525927879305780908386572675906251052192934791008156635778625937096535387205914406425116592031601924430205750278793767786687378222736499480212659281130760922462329804490640656658710880916419202132554733746877565844850756118310212240353820351086089652756129410432756567106724922561907883550456912124172517357324536863287479963122479559050269050680756460045471690993422086357180408264849695167403111769340046500819760759465826821270352656627245751849746606023727934389268294935405949894363195601567700296665865393037831960726683638056066484726657711602388789716477026498463683554318686751266059520470562864006675339174734788171629315769367975851781046552121420121821526608442778528665097064102343415886890693466351065596811513462705045966501237672237948345172816359592032506158094023139496807299140731791685312568120791379072860481482731616341261685486104185989952651349119282216746947189513876642562403672307688517211647914298217077393183768626799714861684727939178434606894873656452006074672316663089119289496562440949392018136613326548602667194682194798402015765093687438505272182983788179545917537631553389273882838776517777729311919795558343009582503551354650174241305422189746008969700885462693981999897969951032977374011027530942373904498615925851678857810277248551303522873721866544977579769516204774879919098294454232980746830815961642612728839770725603565816267185053063329415649180496022268949474956258681349036409304017399119761687731899406006084011670540425089213482285267899313106262197197858274886777841072476685928805406500636331697280062432840865348375984827828199564102598787279847896659733620758349159714837277258008593460837752513671800329819542430284693416613893692132339100774610806926927783476504160484373961688177578855139149872492898698049837912383624501089897198684508130472591649645129926900508918139770468794813315713095172220381641497229279262936084640094124136876934383133764744624527723477016813352288250750220675764107094391267668312483342914541833241810227054831336624077513360788668095681993985961144339430630095839880329304402444145764689246994683715537927880685152457565286003169629434554243577304471337098763635436840777230105096495891464523874116823713911149062301265508626720712953665743522279960840027005345331609487835529275656043488340333022834659765625451935127588028218629418033745984114424210425713078638781499786966688999344236263631833189411773205526597954903135338317682001216558196074822285873256664917501746697242436983745102578466172445834798723864675926388703155852205189831194020356281493407895804611435220703424905359609044137588716301880730770683161581245128579837254110574912208254583103998340594757099628115096301236255699789084977969104317740544764965295143691577869279998434062277169807716929344376172566403380221522819606641841482471885657754021983467041705523108459637368834376103488522643669623801166901942504833752991832034864724543691938785263949505398911597097563319599340109111787929304638661322178108773574286198439824704457347198162056360467851321673575522168401692822597028866794501336573219025292860061869053574930346196400484649328135555662837822055146021001674486875973435939213268790069350554279503202698315417039516966773849786737010517154980037963413762992005159450407519280850126312874253779443808419954069423337757545455994037362071863313683409394733341350994524026965082234932140956986522279191633453879748090028683315708892535789395834113585014891640649932730047550870494788004501361422656902426798420818118872175254762514460231175828093289012182179517546900854329650396210708023067511505035865121132685258477077609075044611575745267344486972536098633044472094701623003188761201781710648362957562324336001467567528965041674436015871179948268391210416427833561829780208958254363490651394912692467500931073350204587008157094764978699086626301609348947496383141117312468012263710105202041169746350892423659047809832774202041806782097981652704751547443128301022659589113156503003177336713363069440585302075054324625464405386557618953450111250909186104529826676838637426330047357029606573226615940668165677094559921966480549427016026240300632004480985377211581762636053483099833534781212611631968635316852772923770565771902244047346535039776433790834148690419878385834932010169207317149609639230401187667072316884376732294730661984408963947821038534040156985536118439287918000474123769117560639913457090522809479656795489761477612591974464367013697770319337771735441237948504327589475230343667782687530423385135110530260685422609756672183029784389326219413405471246525276620392718788586779549663961837355222188332493406656133340309329645733713428070942444556297462548288013135819592377800124795723684299148026172132386572169728434470534661814436977976569944859678420574071793150240926977427734396571154461221563213208414499271040566946663680122582110114930660259498890949139336219637944841576412411607624451147499438648181543357216864615531635133828382816905322106756091718847849893666928120158085978171499307308494088600765509243066885598930853261509340967888600987445401160427547310768886815353351382950515961831070510552529409841116106385321937606863531423044680598486584596952649194411024170326023902564889852997627527388829688764044827229991919054201950537562607114507073258143829184860578432191290108121935684890218507954863981595562288223691151351411540038335908381831076870513200384703005883475120993227756838140863307366255596187663085932277442898609127547999429683990776311118542943931010049889130213677485843554547542736359110025764103246621878864300029077121113932798730954766761603015376571116667749193386387468929480768337043975742975999885232130194875938001166335785262745025145645242914119629354306023593410710678858689413844811024370355766213024728286485322841480154236286994683951799026649626214991275668996910316805407713903108602386524508952054265306303053252544979186449617272571800737691519898719440306216524276311815149169033279047447545755926135217375783163185451629954448018475667871645809838894281671722057604745339600594904726627443321860709751699345747229674381494663278920039704783770992233126176163416695927431497623109655106908109506114358904215561917663343046676864017476683789614285612120064233893098390925129605733613908165481554536827787513511449242651971126972449947936407581177198456521987266841063750525059681339623499139000444826461852437835935216590014629403733826469757515165450383812425664056091235367002368827459246207642499947659216112060739705038232782901209408249897066529016287303037004203782419970746491317704841499149934887482354003516027427134102766304530017493724458895315918010833872846876596275334758706915281230393942627774111104766579334559295236943921160648935273704854215287974978423567847192486306600897845195593078443264543265627510970911126276728090007465796515879235641559406016096401741972184905303408358076586437068943213470587721366641472187310298448507079090741373259491595964425874232152900143997105022175991408051334143441008573490280368274042557228200419717327066482946270388531783982862788605062390460491446629035256790323098725656949773294862784505728018291831136142873116564568070301130309984270433762115031759083866688058640080619197315227521974996596764030476631088923062063574710499318819526876257463498467876694672377521570276282820926098315687894627394472794343015193546889294667095014437975857160767886788454098840268489621831769261631247431241215765407359760372326952176374610289579428747085575770080013473179225579698194178073387282970164707153141955947446007981592690957579701548674239221591496220586319265161288448160594824018692213366961812059088436489819266404375367376831239103686973171658279104697600373968560703446857404811894112316382770352731250114122782844211260498017575061414287184097352859361187361118880821745887950766570429063206420438450305922778618875019414607523451452700022298230146542688271617915535811608361923347038566013012670225341964038177129274606187077187588163147670357001628707407826905353080729262716535565881266338386638356939649032138791937416052682962175920830019546992162567685051021542558313069538337268206450834537101499708837306707411377447561322454507463259521789584992840179337448107566717932291569137699548598491918294058129634281746456863856276726998278070678232289766648726682836418477292932368145226504414886246351448068791277922115016297710435099552612750193839176263859223615256420507146247582514243312288761094019387653514167085478128432245390901393348004471787543526529890085000822620369237707091050403558872126942836506038832473815671532527798035417259737641454249622235961175713871888749856432207737442580336332932665216639519930448526902149792425657240198711535500304429461653598072726275271717805948255355966071346348448319638838781510999966699331055265636368821737386838832999059004380279948507412204164099775971135889169258497308753408850193563986922856312205835804734108940484034512744305776297308741868686622045529310921726895869142552294262607200768282689004437251815666365736633927154262906434686249723880339372673112063888443576635678012123857995637236621521502937642835470200411511432092712370636325324195557985802316694320203041525320390379169845370238386111027340109751694379999569603619567465310121374979063094835398888800867534219139738941326490379166552447869193656304416008558609378285772055600287205206933882968926698150528042598903310891875253461566163394672840898458272783105655041234985802342213429472079762156233815817789078521084901871249477863240589106950627250969475267954758551105117708465469419425716589776335174201808863819907719265026705868595595594323321271733098242495353719374613006073875593467601704964631015722171316172589763648749889306415300566878915615947867951320125497946455575159221931564177907665387620414196232154629754834262242464429264581322918322977979847879719017631843376546916443065537886665520943121865561164096664790627829649817424725764930392588414216533330558457998272233773543195006688123455367674804538157905209198145362975179817121385461384138049614863712719322998690755985776346761017437999721362400491477326507390947462839223741532521964099427352202137595401419653605755580723514603209854660546134079161902388099066913480618704299740660857297217643199157983274686013795628857256355642825982463027409798293577571201479982418906713246118674890606054498985206198238183749464770436362816139302597308403490406203343922078103364076000126287146758074736826656676476093080745013597773136540537836908974304696052860781546240118687908434567657911681360632596272642522830172483031971686876300260374747325817904061054373876473438522314776903670252847551903970553155287337918859395731417824452354088336840860743062456997383422459303146403459226828709654616952081514744330869780471324118298886449340378595681203069423168916787354381092319617617117824776528401092341013932091890882296648772464395169323299636868664768488007397915236832345483231167787063069738542735332973883978321575330280343474360710066197640645607737160448803582524777795597959366329695076625216189403256643978491237057583910076292874274786821469525633025448427166202374502841481611908027900753176233266002234929056758773065329353509751301060668193548643053579244176287705679950463941231017751276444898234051372517660471610542776117544467090485120690149090387159375076923596969824641396915240389580122815670789311281487075519938929896628116127184568746432259670301821694886353712056090383631946230163778393691540407180095560309029765152713003052749911752674397351046604840174947132931475148674621858534269254629374419842848514489165139277971256424323327893587474561251872399530054515504838036236334919103006597115025742014766986000690225756876661949309968850726273623366104856699996520435914503622424867243102983474453418176550973387395124235541501814995821598573089635025560803013792640041106178610266224659643336899420371677009052935035546286508286055816546615775843429981322310304372676746386283867561096432736034343921283917241776729261595903291360636160234403172928171701232643780695749000045502832851020040624635873153182085543720076461950759374362510194500403316185487783889941906861207456667085900200975303832333595321681008683331967897840556904240625705623931871465191866266201171255406777138043479672380004466905354579132847308758131616727295326851905250733899464906369272985654139634710423479275657719722274948427839333457203841980332043692196787130267423045926267034963502644482315899823359196298762723193294125741823393270495583917877645779083229686715836391316015511607557396287138963657634650365347709431282112560758121319664620608971013811217984337693513297030457835736024002325169507791379544520080450840994684599310316054771877980059840926107244482611189979535509871294521762409595676729918971343985476215558171139792779081540882997353802134742021822311904865694330351725826447532158556676092341150961865562062091705403445024764564828898620113211771373000581954208319561255973706101821069487120537018800899663279458565858786494719551570104875745498535062106917556363398753206565127339059461858538424415707348510982032270500861453728310387711213839412532869507397723619098449185184692109956921609842370653874060777493852571961328816898396860791782455942127541890060963432291444456975112629011846337598636309052120202337497242134690035823045368574089077458990418781991507264744170367930972215186460776859563563300464163431854511568722671192048252510491970786203505875848231369216253747163936188161117048262508522060918904633523491964476736733611252415293059029503440190933553111216893801619795766931512416226805694513203840313401901529339802373960927150823451676247280783407945945327312748715843329111333560784196200983602897707389299319898562336900119354845629331922642880875355594020805717538828553219744272646360022171823613019831420883841540589807724730265358277083120706120825230943670703448978704485090141517524713021848800283927858670235528042841683423045090713529201985950869804785886303410159189641926029364987935909398972024934474288963849262927856371549300985347571164385121043922903853500439974918158872165278355084477031496450228886021031245540082850911641662096664050231194119125054534833309588752745155013718790584893884890848575055469551450233558276697140104958029393277325205481793361734346782776420308969970453589167195878167830231740647515734336875647050594452020312266800062215933168956462640766891970652545226628512046289948686427074854377433507088405519561031563192036834192559045307708394439691868545318407409577380320855800245390520921075004951888816710727713253567809179936580958166772600028640843259926006317389317826761120163060725938772769329824107515236946437780191517015413255631632729466029142219392449021615484444053034043060686203323507651316054115483538625790636399566204274545048721906466908131919146738126953512567382552312040943967945876033940644359128159346299185031595806789408386927134851706623676995494848647265526083997357302034121230836054193741109732260357839386301675631542025316507091065278214516147043324495417028191341359780004666787431963736310518533896768342683874213515321610678749431136373069522975118464260675125858264679832191441627810537452057969007881370345760990220943238968836067336309439030554843130198814553050327324795873251858405175897230359852661272612716437449319221057213277549482851377542060614764672630189426861937336418175017660713533679912495250454029378407323731604876800248172213503682860386840188644503104389273751027587562518867917612477526448552582715313287146573280087406592784582969174358332647845482006089428864466827719879042268577323920753546119536639592004047756281651694734964428047913510745268084566196734248134546261334199686036154683060152514491733703039166811761062059519346452707690281521824171568344750957656039059984199460605948037455863214415120045309793386018104419235826549948766205010029008641838082429277801294065130195659625494859096021716497056778617751000062805691846356669014247881163507573074838313229504640988820783798990049618067995705568471735488026448242576733508560686486073011735269742075116461221030955388945153165999491292378204653168309516506555551920769410488252751204433577695423033834836318915064348830843311954790463138417033430750331361655322507849731203187808328067401199925492753282210437969482260146925039093213236140609637615060293798130425603657176412765510359529024148906008005721046608706635573341870914525822582240403305050968896656673877870025973905898663235773763078122133358061531118183188734173977214516329481863827776160555042997385713484622878710059558612859043255296517841928116367860154997658389605444329035810790110735738551108024524061583798600404960802749586697722485054451976270628677987819246406362030172634118348951839958066183624629045794477078683119065260615677173714207755784437703003975315164337488131366573052029871350378539313850983374395075656179192789923781716657546131558448248226967019419221589204738252916717581329797685334009773713168902900996901030602534067597928452874698489217685948027701846563382536234918624393048004554046860994932545450074769046883441801360387363819022824758696805744511014709827782994873381663302342834108549759989490712478778910996666725841564910720250138742234178334496920689506193512383874303915975644168839354460160414707867623404331871323792835314256525817900587503107236043958451085536651937838197319473785757077305562006339730480575572087251718000913008157420462313504837608772298452698335205612069980399387749360919340195858258699502805517267052147024259388266405207686050758765105472004856416571736211411599711329246960482725296063788542569305456218125326755416475844167211490998305752434395289135370022073240948115488836057614666835460229661197916285212455580318932405491231574791875683900612119048801193103545891637370459906006943028797071248621843410940910558677088901854431562427488849556378172117148156603588441641817232656003470470879308837809897889954718841066227756756489744496851590791221858534606933881380065651898813912637032602353684322648348595674389027169096237601899631760463931638074396649351564481611965521999514641934017192835751948293132157056206223711096968851168096961324383536124871357436144851214996185135445116887720342880265794869098693086892292271314239324021360678916209599465906413368796026432424038364035541968926723760030366364188747776418648819180094819563919478181682921449806168431794356290392788988824191469427686266593211396481906382076605297091853348313070737600735301200523374925886048557285596063973382396432756938762731664950570897335134700511004484468320436719406293188179655899998133400081952721559404045149492145912273597100117193508482125554111407320630471929731196872965834293242364567403460835131796109316145052340779435739594604617933806582404477777639453185574785390796767121545626150722020332282133726705764343429774419064437711523255143830606935139823748924303704556516433838902922297861372102665252888176357189310585755857684382031829858638264496102143483163255107880996961689564180920699366101087239872016972998199958613824353993531302458259625031216556156926861116564237508593146470221580445746685968727916507340270917946405147099164730759580992456206198378918370031788913935422524074785187816914960401311981428111650391414736223546699125678169772182800000706523705300226649851634226394424654866557829824298159251797046914090157794043397020310480078087474863756892708613670057401797777640456380805108169496601416558261035374708599706615760052391963799923705771493364836411933667135039479774127974092823224362059627795150348678125963387057994456483176073326752312543321072431311026072833043931173915249310899829495835534220426242269580822810186528402931582116895710939792277906885599271208154191689955103943883683225992568173227836862575817558698330918766938567657993694247145413305713711795865009978690062807121113895105273725477404131961828785511800149862056906141406371768001390745176684645764772873961352629864916203717031168174049971241266478781142029035847819867016490218132833733297531469283766776377282825986143870856408921651158917895697517454123308604936934277012971371733574980529782247644233744417872351530077885454945127935674772444303418980499376082789320133393522124636008884216378341122328239460803495301798903122519793851578617884336556614517922901358597333541303531153784780017815553704831939921040381017309176397470218622675155284132826531247223051931577689930232078576065731565807145576522185491920827534756627624878096111126829000461586970271329283489480879806922908131038567962256197232952614364287722911970949468110093423212218218852723702625047285402871774748064014588466970469775193984266071638016934781921837122227484453445819496507036904432287171822431364503362349084705938678124302209748139511034940223131107594291864477576194535742588265090226405508116102550055496141702958736837687527613917506296651250667207092094605371712143932015762406698204212372988472087528262062989853849708197650900771111910975308371419104116063651213785442647554939979664924070511914304318682776248516512244436633614577268570579367384843336229509037621665320712390072701536744904938908468501303751482638855613748389164373677635614373966113906149948088352517121023047375316681573572398807795675845448773215867330279826309854703564866799581713491433927256679568788268565120851440982373319170854768565037699765483319433445969171339243023077592210816918882242710563811474000614340784633420904975390577940145433534168178277988166360270045639249146855558667831560770054979005393117204267920567623898116608402947649394696083299017752358991286306920085712784084261260072049005557110905271849375657594331455461611226116718428808086977793087812573607843402331605795054204432681596872362033626448894723929229108892523873426931991473073212397778717083107945613129329628158504764620135141169448386894798436277027344207597583391308951377349935226355583605603993330146391547744832319308498305749882702495611203380857444849019229541542363160224377620359639494473384528259141703478248164518220128852648872355861065610009628425260093088793070320122296159405613518102700577210906101247252315149795917923253984901605149326645420816382309286383522411712250831951840691822554451640288688718208191045594074853806683612035035650171140819695937584126750834641685174798520817981470192064684379897551355821019582416347965172620478702500327346976061867686066343920697373773142439278273862169149911049261996873953366115462134243508013381654611212626480872846317363422344566257636651573465340588905303652252148945147556794114223740673337642187362607611762859590608016205455150156007244536035365707630367443787389016089394730436079966474526080322556385016948625907265016473421711586150194166670609097537512421341005302866255011929932471408604974000025225449487156134760960901904862324515382413243607708740448782188650805469153016299969535857699316333672777953344096839558604683009326628007702297829250300647887927919963466705272275560946832138049092463456590147461771418721606864245030812726544346927725502135186231584164854700158042438997203870286572334798557297553732349081343015316729599113711949932511135332711589892720944561659977799567816215064415591073698449168991798635737492852666726233558834980193827655479090370233608727717495236629967369105250414728673514335783389824467445515619157375235114097593427522064294022249998118484187967427127451912008574507764274152683860110374352662995125000597143542474807829942507021818234897084013354090043803060422621034559649349786893113729664605599579720207462629357192470680538333913506366885334750831308251104460674717893500728155521455506386415804954372730432298837981689661772346986542157604074929350983872528300413891182995855262972410087685941914248062001788062055856358091992998361254987579882647103964295799073851548412762735322515186174193338063450865988400676091416241548442862049623001787867864727713327755355175121782729466548431080606575442674295412421738678452775596663568737263883850620517411577492673309115782777418042374843934556074883863975703629867426058531026327263256580100120599711921075063827920408503264096934614396045960763117815836927171491720118286600302251211613624077185195627222014899024825545071533411630834514803571982211732431443214712581183535251413299942882274980208285510061142685486087180354001950450595486757290055881554971791836008724212950506982032385434599962714450638086038952316434574165022930163335489064192421826279820672632560526107694916938939631138928978826865467221813894442427374686249569230901075879542434942135705998588602619818363731158322678516371307105129522895240313018694948765315155553521922313836541885177917600097427057720612424415305860437114786518410600019341705093524889424897136172844165036662429461560292155803489300072925475711952104171330151951182476394463250366910094443529191787036014410995482260367159012846318963253963371798150111308353140694013499927507345351726751885691072052533881153906664040569351182512191351304946503845180172275354828374839888116412881842577329498647614486358393113047179786586856319960870869435129104346288323993262279989805964974959602880729290541547322228368653614758557894045528819924418144045654568907015766531863459584398274436020768214865663138355893495914284689763178953050178240215788008348887410395162199263959988586137101970209371858765374087764212086667721567644840633090266174442318784687232344876429456558212028761181734392973504571953505714601523714260978999258231274758833096265300018472205372079720306157489102260053727536424156699850798999039691104903146069240942298016843580361802935383321812620705417201584079571694700409843350331571084715224221482342660188699656423599991280302092086951318317239715549101441323909513067801942597905190157448106344465066685298575015750679088868511533297930291608157075040334019887470633807261677643914427513756554125810510726399617112896750257435281849047323426618993190481086000526256398100537631939207652116381964608029551227084153192713070067405466970744957027080155164839103183352589795349176545501580077530739199914232650859793844490800178503148696235968488289403922695403045659560047424274162253900010372816640052761006007819056958888884252750003688324851793775845400816814197269345639827500543222057100055733367822703574840287340956330808026864398794438737673262201919168525425018542517240661719575953894010458764226885292418692629903322223430844383036932037443235800060622982607654641055052921949945506244250023985651461744959771974401053116600528385767912203776807826915816244688133399703356450235695205801296756028847682347711153055518098579992875930529330680690463626414653236759291386815519781509797197987648773184518821434151971008492493042359651914360376913398946357517504398753689754741460220391182928458071549111050985766129059128745105893360297020979771528088179837118854158078689620843019712839608028363941136523303021947447559711809736788432690463717243106634381861359049588962307765362062212178351323793633555414811361032343522245978154588239700166285808460603487818662908960882532337382389716446964047222119760622276104178314729357146004328283627592463594118861905655355799325502938806510668630937482412949852341656659509592871437232313582306234901762258907760710525964309137304370454044758896072638948742601152991658353300409868119784054734156837168758595820833611305770131640043754755304052115951087540678420531340641678812993016637983134506654143855770307143185429254815874196284176794915543488866696428941504241946649540516905139592188945299944232478208687261432069180245182685694327828275435301244703297707077618399479785441565484202728522845400881279108709379503170392447529679373768670167841700264918422470235424714479987914855828935135446323027739844178331987466469342710921677873734254129339118083697828027517903912372283308256998275537544075139217560323318681739508743130773947543371108238541459335669505222891786170876216775995963054979993108403202767327286632101310525554245507427765605372058052957397565100974556833073404318652815238579912068350314469112336984894923263407866462556959415636608326146806572547766119557505408321209903078064048500379046963547034953302876701480714053856513782163719559294641168158437840768865573580604622548505263848517515748335516564914545352779792352164412858012340547397835734418743054696331128709990768703643039906066686990491179246791459462605968583956251792673727876600529014824795890567604575440365738156260424778973406632333421268881471074768017609356969304368400190767982119762263783015059931787925225370775581430659383496304362311932820879927672932239737827285277612359337035793663104877219414175252783591878262314342746291016165752822998563279185938526655672138860057774175016954240761698774329119325712844589652721571767974019552290714222954713868997082099387307643821453212505912137610738573825010315981431296338871319974130775156288065193128127983171897482350172826001751666145006718256376432210387183596652975544809100990033517265467573183170188656702185993564434426196409357626881025174369315509672890024220274523110872576188343570699170115861025081940005564533535108147923862142535476995800026879593183136098259184388588966377885560625722492050889156946301937730322922102088538213629601793256583692011793739688691769113891840069933013841035010260034851152214805991304865959166384354531953819808179290838557496169750094090976936430650336567891053564555720358520542609053625044327602629500311469781902680427739443011142042853829248957557020212233337238302662035715150233471094186239784802027162731560640293768628022433359363985572140439118514635627371834797127673415976196534474466056918874556986793469484683493985891217486789178298382605331229367314059343617342655764199799182966396790749533183301412345760041597003114087915279852766455368094660742542480243572310042835746344850495041296016193647667406999114396403056495074595815680771735155950892281097222841601891158833442120590604088552676943567320753598428218323863619971587522934725012699312523024034559363867337357542883538148920092010352257233900773468076365700419179465282550686045519414869827398332403729065424615759305113600334423277839476695019700196403371023710817059820781645944911554682550786816512368140200621646547182966908496038176351203453910961029333814411180564892041010707217023615240658421332618105045770797235876537966526156039385284215378789707308044267278950005326676117588623144060097554802459265110849123321235963474555323750533223759645170921127413134128814838936613755926723035969165363668093808558772028191682028841484691082150905728880951127411342958453259855658945778549368233362151299245384449414098207911399577118472180634645124730631009858225782680878871987361998534604903101603941346247801179119106692416149181447072039352830733259493004508037254416399407368458345797526683444084787729504514984177984978807025793075785153487793165476939839630443913044847956323343989318181086838744459708588135378523154054117056777671851297075567975189645024263469313070351265184182513272817047646972121445410220506966448269591010836166121566897468001434942262039529291285773019087532422325821474252935739781010055387335527014033452653925330650266535211581835680989632413761798322679067334453223435436178743410862461282482833561736429769161085781998811216544065064637639331035578103687824666918291499330514903759857207491709747461959356274481759190931646774270375594934256296644874939864578932603263565640814957326375664304924908656962498115898477554839437387802511883005966141460894502293360737670566705495014511714325041407554116109254297147868284027215176949289435469070488785784432368883279689850134553709542751582758723695545836747590082961150279391661490497890682968945231744646014065855721805272227237877423414584857752487964906552806582707298798641563102414234654622281281516483238396961636124914061435272833435045438019879291624716835964985051560634866771099455083979669513514015206393239183013122424689475421004170128776101643304180017659436921492661752362656573380670178845868759449184160347332881509658921471697270546388588385102398512382180167685444723894696445831098892152761902473829535925858242285703755418844442599588509349785150515956798691994971853910387918977065985822755659642565832503044657242403626020308297642411703112357795675914509139123078815710098863857097302402547957707061055155093194888844844921350658111288450583929511936797876069180013000140131453468703096022699277489927674868917208526779040937536704007930591610976811682678380666827932291865445121481582019798299783760178348485071114274072471135328786956203489241610988445499554035920355031675403205816037230545903450302261124463912507973733778482720214106975521652198885348450750192153240991254780889272702020906581816618367463367422315249053830606141902735015865293792922823153106438908257483074314942725300308450449176386970108967260514636662486504050863712333129539397293294218752945812928707679967921689943596766149139792460471706428341448885978313317406410151546701435790923385649247969847072181917038477519204948005029067444039991058490700523999601893297878471815078654544577812861933151813497900812462854038018895369012431504874252844834003989066114771639271000997642120872199610404361908996307202129828246652969819699069531888299952898863451827983610792588857611932734994741003282597451712409268298840971584741426160305440161249768741434868520846423165163866245845281747961194011082638669562574329714914257967444683576049167625285017717509190418972801443354291561812645506678692256246120804912754615429363627527872123293623754289603366968846638832057725574850435509514987964057873639364918951255082579031931578366554142585360567631587648627672638479537634173857611843557274528563120349417760442128980669881051495319131151705644383514811040099505444194819173788309331253056081980215199527179451139005983498811058991385762762902217502678719496675271977505648911847483893685221424677311581313927217654882386938929235147761983539673011844242095025462065142870416503625937902259248611209922806190790292688685091830843591532449124851318239490852973542927751338420551916459064383904759899684062158945876773720279263147174870511063338547230125350973656723214215767650249756034192671177595713446630990709366177902963295042734835666468050064219927254700651258629079556052730637127052113218767125888384412600688899633454442425260951493280675289225093954908600548186609728996227897544840172396943250002329945447443234061147503841045885402481977588182606123267684994280789422788540889585173060714476914156705059891175251293098208447789917953413672342116741916278857592648275360603536530015250950003365935578650830293285186530727321865769343375810786370470464292662897806143515832017980088025010217396048366151415953530516504274703309933404787308246416260807456657143028110425000934697214558030685657233890144740760358164723732375457533054928690347821276064271422947803457113393475126988138878813150692674758159151982455573429500759617733892576614623783576598407915227698772224767611556007051269839487505218906942731987472443625178789944060805089627067532556670306065686005415890261804861182834707973717411206451074319307098383288903723030434630880325454439039824275727189142082937288322631749072663227463145408650385216610561248505776964317950997608242176869722515979029906736509799049293843634082371845862841652413341378686641016058811702998278599987470090550779336023217079728730451031651349826418191399814925244849382100256140377706305932615938163316830587904686379168902361095899975983146390152932605953076877396804905426976869094944193471285523375250667427042191778876883442228260393229718973410884327571236716925964098326486716510464957657300663430831636376750785202849347740389461070883587095176144231663905103576750810582555694947134388750867305904398667322021718979835609772980396390897938145335242184090185314966936861915275929406505478661203335215161586803629070746113149832838485762713907312395551872737885828907823333554806047043359878920313216637512028880027103814945987886607959354641164956044563763492449111168385179590978908903804755836080988622096895148268482379470240421910067693911101349213630947254238642982766114941814651991682094766639871584993898931693609966243174199571076046868983112496574245406614989868691215707905911197248631385018883503908835965493000270124303531180453378534147531321110310018784696267443537876546616871496251460971564665257560875790574246473750689701054937019994072448197247778839681897334508560327456830085785607347951588108348046639863109523637274235902508789249005477212203191101246143081905210641670538993204465487766495602537989556563301023880000681249424373558236591791683880170025722307550268530330913857376650729638164212717288496678283649841206315294954158077057478041142667144290158095443067414657285297823962913368056148627567014684566392854530332147240667998780919442469656168583052335318572607062690126475296671300788257723161939285865529148704018782578398099528004594643986324394359893260547261996934543816040517464531366252239910665727712908232106522603522568745441714966245355316857105503345466439997693563942829471610864709720972858094314122154265687359937411469663247996198093044966897769506300779498732693709591240389429547825511008308935899112739714713373009337482060740356256363651082053223223378733138267915593175566211272809868394434010558204425157702751027458365170730081778301285355623693587181369654439027734435629162475008350117525089285646882417394024780377213685823626712747405443336591867574300061835279154755287763047656628334488447153950836011226918481320412713353278188228040862198633621776835333052640239135930835611568209243458441343072864992188316034562880014512254658381441219963578544361882773139864956714012577579467443098734876491364422827131372604670781105515477490816966557759712598082851417914402224016722124828249321065205889375261800024385170936203601472878402387140486966480720771788905225854232208755046426836871834398689383896442065401791827309252554052374896716580149276440311081363639472639157480349401277414192369465476364763869021404160443574548128300149560146593897233194945217779296110570388676306261376543402243199931414211378369430126967100356607961503728970002114440394164117048588037763930273135080205888513908280238125714063546888765440957343980356244898614195366631755970501817185908375989251470293054157711605348507298821173101063840020243292931948991469249400730791700190283912819371641408573084372820747965813253777111773013002997088011227145177096651627152458493181111419799379988732961883129041517383128844813339986646495545807850506262189006405844364616609421843951983781203781750498972314514248853978594587421630012604194657090148503265002770160257240838603417398058112422141312667295048092377071757065744693461052037420800962645983844300413869526646849986268233109659186932442957886499997781252610323714555607936884575273705875848786005442063969536990553539145574716808013200543176712127438909646480797575122445238160751701292069734754268934487190593743033423120743167694417548606431647396237558276291219489372729651798478818564258004336659368144051649576558008542633086980045777023067381367834441077953236416075394254246412887796405860428278588405134329253209124485986197386661649188340869355311480517876534795616583409969310081195193098916454362057100619891573992462701720698257990478132486408151610419586088841856281181373350587998580153447005113713708259488091447651858853248059616358318058874952317979802596606013920524908413006840510233619217520933432810652618606426767391591046808467494243918190580988219275020892429392599375088979491356733800604501762763164031240836479758550213133185408748173249581884603124317668480752294337088241456196679903266942933484234326687940437147568569154060285797641846606088700496897009516848822087158643345322260555746691576570345174974435657718412725511333199244417784288535186946612529011067474647575836528949500604799726554114323394104181876292428231041142513681898730574910074478006858314146140430594384168069438374432966826181611380403115389520618720714584694826990214160079227395569567513147828600212793180498886357102229303805949706510916746527249296435966126248819246908233988244065017993648289743989434929287600453264731271169295405246099519013106957999516078410196973881943881836687952724295493816660153690061498196879864002855363186139070868520798634104932612043611912031647577604837560229764533214464754711401039534007411961268124718516296828978900916159334112453032368277865225457113825539366959880272026088568482247482501746172315200570386852699032066253559493481627873141340667656446567398541477670587561734023386291925581734600562313485260208030304289562522078848172898190790447739238370652614358654418437013663523184195153796854685716332015704152340542654742968279294444464727375482598255916309075828177108635183128002543571075105892281249464426586146176784430192711892034264685367181901763756568318007801102068741950990119076805791836447394224718484021609382377373600154095802059884760671896557493371032764629214328446246345481807547773029601905831601811718492580816951929144109274360684386480883926451726416734844725609643264975437275614040800035562991373649127756334841191190397641375141721911620747815262985894248674007325770455048692432912211338181177816403480645199050515572368151317102886462631102899783090160688956650918761826021894702692198504539542872147254056978418731668546809001557722494339976043892009315209046868556144277621882782999613507565252423788930048755301091767874943970477934254309924284065133009314600132528780056504107957153133581555851966031687141792954619530134217326541523333028522820754791169413420861920122337108516428495914851544192429347976443291278127892361891557817875231259374269951750137730462206331539492749391891392594208696055517340953945885367956103375671654345659111038737272143135813941947629090203012111621436598346358911822034427190321761257902242161354573051825426593070959021399094143956826960910355609163326966574601933091622741408339150548630054901884018604690159471565815936942642878626321633562232288190280167851427247923286808341425363236516023235788624710150833914608231101972130900097457968703269558501330781840806690203069409697198817974044643343548073882514570325491039757546822446899353746169960232634936672160644449428001885431156256709528757286537689450004035732464431243432808362100210985535717784130823002521578237568305289204215878435381881452633839351669507798792627401615157069586242907010162418515621720013288404193999041562235050298126315660299991556823083400974104617944794968830465521287662624313935156178926394698415257860954931477483932249023458172307441249175772556845821271048864268937622246730479238242274016745390122432344736382821101656476906435833232523815723164946651267317828049559051716198336263524661399630426786058285707885839023606276035211313956194599021508600127238191585583908172308256525794799774826311338883737872454437577994867558708419961692821203011007471463641594516554708997074170538630566635065239516205303342661493038072131439252158859912694119054920369010707551873880695844612114435753394241583887629887621438435603112661797216920885658367044122769010300040762529459894811203695684444313104375726020118383956966436375046350636426539725700930504279820513051708608358087995643423248956416698037803397614732042763936619885982447055617241323125369774311016701970188852769479695201005916340200819795268353222920534364495950482994118297220969877624134797009121554546727115309303169996044658561088700509066898135975485883027355296778494324302481619556531742561502577519575268136187896046397649359472953614571543160018646312619616715931959706177733772752214147924319470288794344083333603786536761611043738553983526693286069021390571013053334941404774904989553385706920938341908330973791633739172934394809086566199618562500876302685785039578124153391044298524419821365877430065696864179357457485639311139742451451217543171946007444618180952867400199556124070540276229332360236791905621779105228528262694158585936488779922304715918750677795235776581620548395176107336371436230427826966721396469506899637276356429037401049224217295794286951688404782863168241651882760833616184433359583432815098320859033461244855209614437372648555319331665061844360577159881265754739945822848712718680650142588345885052705803884288064296632941643469242711300186573305451402914421517998545634351030132094486264014944053557719857114230879790586235426912592417361564302575532686888913139333540093341811433161558490929574029903388796526718671200273498928962328902460931794616020554337918657127613540788444390694037933747133870866090833020215336729216733933376883021218132380305533570174087473030628621003623629859753689885986906511898969753306738005999181735999350255991944154813399087589870156279735012296608975834020517354788662030555671151965314438812516594671517774731914033857588027709961978882967614271774848039822622229281397517449356822917806760667104867377592486308288467875937378283236276301573194193461908753551969274162204433415266354715523172956089212550361827850956294208961226094301853923289414671874900728014269052644667370681632745521980851566921097941606247831210235501995581330816988184745133529519466313945677128218294692228678273757371367443382447486631089498586557366716408846843931952602809957803838969962354495563242974346355420434141302571006061018864767610844323129836059349308856157792660814123471645040672806032939301919401875172559970261033167975164354153844974436124873458790978757272360229191065656550578033436498598778225928089060760964634135373128320832933434517429418235356414567970394013977785527875014532761435941180725300724594365297895873816036111850848805562969893313903046065128372103188910404337130251870543949216920035026079132501357318752927586414946533615801863083071030510242856229902536161337348246581685644343855910776250026081082618424355675271709510211718004330768542155925715683154451709424462660562692031870888003225181779093341297594124239136839094285138079417682659803789310406215640012955274577045320049969226169232661944407212113535816752613760456310229146721450801364057887397343729449221098524974858717387954294855089638067521356280492303814077315162405654657433179754057213643772479914738058811558399269964347080558552051475354428729234736779019275472924538605038516484466969355228891312239352758868497199456703955329174318388146530415819071098276347907826814914567365370297656016539142530986684162867829890684319324990636141310514395800522537052225799560346022298305761972714158921990814291929833273512539685599873154712712243767179290185333591300213721169425623669414149971921664464703996071143234545530285079876839713930766462766651603982555619221610975287454248156508787571169147330459466842542671858607431377609642837760962495784930403453180238435325778557802843109638913710173485818797334306415765868418765183269506017481713833162663187270089162804891401128980596566551620986888474516212193056220026722781954723490632695402526588509501199203891864496904009388581585073752671964964368772587340736651159831276409969484752553803872835807850848674355801895252502992825343539072850835589784405398106159896880871438895930208618672376327482340338940778189445712408091363267506081545147489360906807276838561961310048061306886556075190559142292500454080304261713504587794776631025818959791250112312661809301968673089407873817537683331219948192201199075201587183229303836774709282697917263013390356611490941632825096576731378680062943882328504333589986724104258755373947239028384030202815090820127538205815495733598925888061617773166970025414921741196821690779259808338528428811131260201340231767588485676482845010949238709161750949628476600210983559347827552222324517017212342540340246255633713551916208896888119744666021690698325225475004539235057860888203045700177867752787279133118630852879639550560703803326044275557216194235871039255500097406369971810078892710896063717399940532972644326522919514685561622319962291019052227463488269100383451290314936367607619300539754701497727967406371460274402345413850803119825887755301446354737556735041994779681104632113568599882523444811555657208183085523972882997793018057196573503127457411653154300178605387753137392177555376380455771381826977073154970218475351273414774384695418043118520632805500792013557198929093167587318691103937292212641593875317449736349630666019842056464180723797173494052548026814154570884581591611542131156874200243614069911306945553307710706323053418248929379813854376779010473806612565580051699482314832841287273134969705142421226126448123574110101592730524883740146021330698297514543367683988696039275196828754943505190695414047640988768899459679732635663012973845773054076789132504197425647104036007887210723684039859113064970746390902347826973929973559966500049032840666723227460064305172771581455772892622599328303972645018892535904351739808485696043072323217226137359170479005492196635386855104848318344640286848843132515305295094274660306211048869443134625997300304226257646488507682093633990604809028206238409865019038700445306649313212399973514078819058190195126169093098533655081444872917909794479734068427720730954469824965238207811453462329494650937179312710934216649951378342550887228586889053601568096537185060666565020087566762068328313458505122554452374788131107827622567000065812613059142928935877532453864299417952793269917880468726256619400440937506999546170447029353780083427020190399205091982445254563316936007383590460957285509277145482749098493297879353790387549653117885497810555967933301332848696431555986184248422335727081468915944446830481030544907243898554501117456421429312940274283142707317458794896520688366022526603991530380354328514970082819109510429264981200542215242893643653913944235622982983442121676511372319059744004617069903290761681299982786865429821464454153923876136698242178103373802306882569662749309055760374808353708860626699514191458062631592640535025410076749238590999695081776756385999803039822116629082548864445798033442858377279319077587980580278830755644336193360043478811922272292759452949315430110745202576556216332505689355398632685886310995398879910962475683719167267878573365293834745769551882042608882972830169804029513446645949443420121388497032304764862545723116391095886364682651114908258660523644681314794317325998981849608023119809891749499195016697455227818160519936364256920700223272936926398143919379314027646201683905625647736430425011980606252551210311667075925555022041435577576605389313971694963850461654340817161518575305086054999864206775857730742208783274444597486896127160632276848617201232691302893917720060883533603973677391336427691829747026929622049426217110498391655246160372750633348626605976633509674058071137081742471428376690206009143677904057850707885204477904333608709467789691293995805300867227587750554521032563985637291624797533275799499913042461704174882819598020899249057207250327227527842742547297251329829979502771256358559044375499791838796683685278740625067427163783948466897580232094504768521544676761721484342220571669473213972644604793058794587322522807838619169152735078743743431660770398523540981687607897670676785592444617823764972912669620110202402660845960105708938291134358093305722914772881984192997280167293149468336246911792142706634080525092070309379751682756618645341008585120692045929198205895999083374451061637614408625741094575265061276124257714753614482020963032358206760148972745970568699186913546151696971707617228750742169490056266782644485557503450638962586489198955012129616284477187359946776675185161707559228140004214699472642088506729076913588201632868622763578959774379085370824279515356746052333475741261351490334596975614996751353745133300685751578679459677377751682578379230841578019274207506970691247492523566782983783824739801909437430925382359319361145382177371948742946715158432818953203340215666504575084483366598971192364569613359120581320367364033591354135020074513192546963377294578358078045673360849279266867761735152630144310501082166320499032575633707889918483179301954840392958236172888771552491339599737527235050011448471033964412494082669395422737559418406847283947118242325792700626547187860163183723759507953862298044794308016010597066401019136079911489981773105026793431684984409684565638587264487263583958279551233948461884928557966771309349306489119248380231763540601323963686849343105576328488869006768689087917768056612175780786910048421066301589051770006570707787435359209694262123390984681429608259557985384747910041554795748727749606029023183313780894256835012771008405335718887546204421788146644194907370229223304196673074853135406843151954502357848138465040638417172528943399693259898002634874240765972541444165121317661840449537186845076720666192407642942169647585421088794399393699938116209701389351055618275003010535574416291458071215091702621685520200953747082861158083676762158512248411023224626069886202057855392816923000139332876085655459425880048404768191602553756170725044058771927962052828213536245163317593608721014458705154170173220728954715950167171682713413157112980542086496029785709519718883831070766716135343763044920780916262238019331527378211698716864184757167681099117147710550185922027876218649824293205287184780971985415003792184474307467065646449049005614460530197749010272905206871451218068069992268129860669470457602456627381933758570012016023011465166459009883962790786991468750908986624048928884146167617861125763607176307825869588335643254230972036048743858929814932639009173522259690426967861398337262732345009805533121348994064658623295649521079723335263535750095781157329716554457612577790216822542542952399616112957706267011670243237796210364521468519204860854783990037117804814885346060605403934596348269020891801471808926251504403785462973038752347629673397170212501774662724853192685300608852658602400212746998537224879528447698847735001438487769675447223035272226071440666952076371072267588428562108503206203702901578493130988633684348744237172162776665492220086823994031237524178416114900153189804458040586473061551976752539281318452272449386662720545602691589022220511228859041581400060195058438263086992518746300576471325112003350521073114156757587924467925550590317118284418906756425222625436709092430438433387825966866676582397024861786782403622752011255862347408939276718937317261898661240782125624633505585032999050000675559459023772084529965320487510131681735945793072068347688370600096462456013834652915105088712222294707549201993903778842952262647251400905467206349781844477329821561811399610225318814195837297960214972402417105900391311144807056321765705056417597626865802976819893272233031368757110552781326401690249106097526974122619014936267170342272779628861078709237226946672119291855728695000451991074098891546437460940764538900663081708426343453500170820007716833381729906247979249317699957565816047499113667737767030022233153174866533953293757857052439053207262907865630246215490225983306300135166325957076186386592784203101915389627850174522429395475613908586281266746714433290407440538563535432087164176214934015151314535063093380373444179858671010592339248848926345338857853249025487985401236463795167274081969920436285149350874057209149132643532064572637153329852654851020243448995263808308824949166975383783047757498404560688926799644618682817124210127260278853487871420241017190260039624781312244454952338025003635204765025195410152765907695338258382144789611737291915114048148780533614909910465346525118794250254005205890090783145758722360187163383011758454879022060446215638824648496951393305044459979794558076113072333255809017525827778190264434955649900971675904368784843282191894843428155967955684198851139028659887027441902629767504730613589774858666620497582189614857644800169303340342414500291611727678104062062361496971443337360371409724172521345210967845394549007628022644020350346465123408229929140242811256409266340583905449780504536063486614410122176380633805354239262992821343889620467644931741913410222310574150104053036482385149781522299824787853967021659668679063316452144360850650211538312418359979850511538445600937567722790987237731808656221682589954716375912099670038396471678088415137564784130833544089125256208573752568873532101737078728343223053642946428205632854998302880232477775258597721773372445038681017083819822143641215133037984367043608111056318576568604723438636021723132604757231300988047491703453259189703821587767810086572226932607996484478902800620647976557143855576478543112079647759904680149588241988507003936678532786160727793743366055418528484961486355215323023524160606215476382855307698060671805031146766113987756752720454234799688601672678540784394640360025902102041425760666386855064635085951743135186459674173816615467579941073323755330421821431152893285305001330379248843818316500627926599605258724475804843869016242828996993183937796943302103560814402825139502525757018141191227194108563071888820332201604626846480197519082483919351710834746378155235728826740500114211690502237097821381494231013724839026847816650201663950927995204069226078609412038901293467439933072578358591927701198689905728773221661423292925248489812690899384672588269641888564357390960736135777015466080150286211365582764007524703584267398854437463671011037876642540941155759257668649275652740255634952811559465521032581370938211622806507794088719626799034671103069260630961781355198221215925463909049279807762372553227572183328422616102515042623041319200767198526027023215566685398719122222595880147780182345659503729195937133963466527377433726127581034577582746203555105813499205336287607493488081958689800641185399532219775190300261158752452542582033474129253169682060528857419877867269434200926197397493395120825017054565124720976532409291604613927211321857609256621911472405158743459866078331027799102144770813631299015106513086283179953606820848923974206459279962527369956714967429800376864078470115632355539043631211871654209438730193833109604024511962621914624700045926825224045801001692564045085401719216687689533238219474271164805140911744002146073093175819022581911918008925730178360999419261158074947357238241423600893552004448615670762649263969878443642683081481713340294225118680419921309758849349152834738954668496530213437187860660245574268442219151462564959842269468229709625926196438768456376408582110532804780545903469379431347749264272269992244750680239583497197544332542936503858018401956819554677157305021718364482045833979373705213356577693991698351412260978625857754578017809121891483717964777188478219569028323782441775386754062311996844492491445119929515809999024590378024785453745442212381814331552289399873563192904802462057394874052680733654628693094735813674890264742841282187644602512932531893184631616262330959339607996420741790908474031462078362715500280737322580987131340818403722578916620831361053385331067277586937611609227025323095950357486752263867932377049923998300733845353331746762790948751348323514524771670355665652838219689394483921838935201760783647366968963224038197507088913479765335760440105927501438466531732130495594424551591546982510800161780446724185981526034604782154057380188991334574425353786529685866926372994456355471739820469462192061817122162049955303376640725069840423979953351329856776299424581203230206329617107676991818506954174600522573921609084552878553357873519948533935926882059659251326049899312974126255242982641636659417685939623890252180159883417807139956105015644349190264522828337321534990182651961936553998617466558105526792492994293341585493409681222682463856907071469452876064213883877370428636667447686523492481953896627042921629061535791510546217790048654393826586559651233268660622662219885845382354234317679721370108258798481094341068806142907921385116237607203979017738603575266861581993096073317703379217898925715804417695191559057328672097813472758492986222348819732045011568175415742568432876936885203160953431787536956317252220274034601936385929968320038466725632482541179496806431664749841451942963439567980775502758862571423185677937384102936900412816895105829813197216299907255583762586280644994634716026365178309744807802697883082258849776991799366121719443123504367102653658490129832169813525083958290159177533104290336098605860181723013287120215752339445446434986244385862552904309410626553041467430432301854021114139019867864924617585323198493219665270521067465843920037233041853046669933498751567411761674626359480928243536529298233286408226927214754821553982277453349631116512536695351888079782320259314958937645974381441183170567259683258312257369097804995714508090885341471550018579026474822407525299109251483726800839165408404576374390802782743787744082233747838239512824476606098624037354042779129441307939304705618988389309575671680784905772390066704093290099922388677276229028446054974595802486060764221357064376567903457030938841442454920314106823137390981610392257733929822653503902095285984781055468100780627167348397938166960104742140011886506813711955082429001469493512627849700608673607005354270929774727840376049941051822514198545666318452720630818502269124373962776986686845466668595598004849098499708708450954877364555219855491620814215065232039259662252399525513603813770555044595972582292309001636062923476914003132917548427992211388930588314604114333415777887413205479052934349058923606040728593818631574533450455355276648349705681361112310286543983479939478690089541107259029514347042214837123749509247565829889766551814372160755653518251013346954734250390526911268996472453975571214722198321898896332157554372520977247039546512167991255899226048820933277988066828223346915637917120053678521501751367685615073641163920185238452331589516702798091126186829647910287088027604105538183661087535199880876299720333770506826032310722581231650791368391808445009036692654270166190028143399411374998491026395983767243463378955384950003013904512433899319153250875657353472573889186677550808043873763181458596309284390411480181357612173900655871425517065022195003229169330748796379523332194288573019132585443807004594699671000292191698221859199482563115893397435887083286687730831906249845871173534094287202327248394165093625304539360569564007377558116825247143444138323123167252478999013284848757223886065421812469574121448514490243317468023905218297151329119435554817740710417455112798240030888759757990483539669019468313004270738602805898012123361517709369772577219783697539273165044577115462017327046620805998207806718480586890474992260855550919189205762859521573669748530716608930670812905902269335070474721707005876286444622845035930020466046715573458009086389377095834740325180406096804060783563484320615595635060975224277356772686467170744412525644671895093467293258629383478154313953079302724445344657332379575811521523449090479545821560386771417315526818206264854699094821993097550081928113991466499085550099438015805170007685108886758690426062139740403385976639346002180040806920219835590617277155510419795687073226926743993418217340160403994536418201962030062945121666037730918785875010788055717033083734524259893212855973935640210776757055894129299703548896135724084569885144726929021580571453180153405652063476213411852152901971027777753706919504437786757131381566469789995181744753605308388645110963257823339926448832692287957930419099771320132535366084530880470103139369733207720286354672907062276579445533502631111609712664768910191952624869854360196308550036344015064209824954963967178161906697082930414811282012169532338217080758243417755021679898352761186536406013388403919170567096859863752596555953492646503610126067111256461528846413598114843462201922787996093549471949011383008169326448936573476844322490731847597374011088492557274999533628307315460410690823908160870400480373148381810544915254953211760430945298486361937526796666826636828679178622793067738019701645797476144173547858869337184402863477995606148629275645499563425535228413244672308374910525652204378547391326736061261277966819765451536796026548599583868796280854930637288260471389602013419804597502205999295658849180953997476862414963866779266644394084913975987797046133558920273591014893815934250903778179962759832026127468421856171043131380701468598716944298673289132166228570795869042859915268888595329085384022292088899411170556977029976462832628748810805690870453111757355269809416077942878477723028780316315029537774670201052592658359604714837602591747568651382689742395371004326256202281386100059778255622739719946229239308446369238274722842100511771024498294012223006065277909310596384318501738452592986557962285173057612420382493303531946968813733570020702061405733383813213965561564052585287315120402122719161047479984005709111349622181356551808965958884868519327246916250188547276008931736177962725123745231466312487871223513147952342050252522300893701067066952083487728313182736721824218059996456034804588806636673990214177541071644593477974537290466420366205669985559368388853735059566167333802785268572303391068371009692808132546908501026406187122433546397915189594574876228195278889766398472895239363150280860146989154358031765555153005813524661720116330579781048853549884655341707937399051812537614716420862751461809327621378462157740383195229561328702834546604032102896674334211905762051783088386480818802814924490928126093593575840776640053704607571330016845628769611442758003913173083301035693873290453313271213276277592430477576016050371262130031488434596893143806899216659296456045034783216053558942386211164409034465768265269437099472848365836080351866488997155924185108140814051782231784354281145877507697454243059894808701251198827444828171498614690940913365965735257612802365811918810486589125218530766676440646354042030064014436049732178731308545349520096770259954718801616459961865055067984119248844513868418283041173527268788346029454688211017123139804024852266600959433330497116895261380921994598605567401398966145856771296783823767147532905866293047757830122587775637505825775193072822075215577978777016825133984597810968383486577648870345484771138308131915123819231145308601236629348362974889335909321190553212767583578597649624613210998264632483952752668020922713727228160933365985580845565224725329199697684371053112619376256956164578437498350889630739922439899834591892579486494518694073548419977526768632650622462761663973010535232861853189640054652322073867004142509444534123514977265014402240006515052358143048793837926272769236959542979346086356086027576896081045637312380107570395177261971712627004873365823771652571998877449460684174061402691898600749727722075677647778370274847513366878512190015751401075625711666110593120758097870053266358415670816545885314519943999793037398910268599585814995158493617084361245007423236792548426680544781557274426183238450181138740572550319560447438157112031551555833622723747978632578721385100456501936165728950371693964141206452661670177391511789826679411069234748520483845648226009355167017645857128975871732855209885728725480039835739647847214426585117795229880525904682509978832736324526406770497367305680910094892310479553773464792254444637102076772977804049470336666159275298304842809540719688336720232209450326725978908884971472943470726012785126556415963879051339309675575568141621915593073822737930457130079683533010848859172499759562842611401757153605980208642541087706885786666286843390378435040816753384065795180277539669109004745028444338258778857688975924391839953283372329547283814450441091638150667359189628944732652280627133717695319400028474098165713156682911525506065359416923123375361032798386970393611960439935481014710492666920129503213825731490350265397364247914585950946140749628983160352802961106422624825741630058759215382462268824549028948312280612888914831351676439584126101286596553124360348439277644923918558479000025893930169108934890225390515947883138407588149416370522538811886290136129398819043289103827501552060384062391773744055887968534944074570662121611762417888485644060816768477406119384589822795375985512728060049002079607726461635389938178674566193111262316219095642986030540494125744658185781265601685657172032987110116471316435008716713345095152832454306692476499350157811913391941114961285252076584688994884868352112076844336890272198597809637200099081104939921072440840846086547343809311477695009626256771968913886121339288030371025196379366065198262189236757629518206024707092007103640421614057548447284067253459888065042078151248803490788485831207642691801716151695427729322508069417656156535531795288425428227088277537371445381842727896457287262148182388507567117073516688017604277311423188577410347076892930276095668403203767730380520685979597530056261253483666809813403379926436609414413304310404814063673928835077925315326737705358153939610645463932906963778445804965826370005366209580830549410060446234546149767667976885330569373617470127680024491576306359186366589365987605517260305568515578377601472216249407666405947302591800048773295896257266219449615586846083236985837622386249067346597376370212472237241978907376853689741123074917422254101190911673975168741833795927843944191812069964614083875270404443934995669796979071895545681702803300913550990652946740238699101346998117436361351212869303938694607138973490298610547461387469889026196204408027092878158473260271042541682791694915361223362235830724938586479759606052023671925410229785420527567544000767840534390085164533682198874447045676578949111221012372262255012348316460208133800885347096902542704300996699423338044084405803685116580210651650160029821884099267824341917212949539109328901879321369022622108810158909125021757978328409618793224920816767310376849484142664561326311350018231185430933965840004714300007645409530559646164379301564653567088220956470607551467683329603755439167038628394159890629616753648582906576453593558078374354499008252498908186171592412046160512155936379337507900666374984123418702539520379660146830220778170018828943370729536783547333321870999331507835303488402210717366918772408969858839585817626604391280458231279540882126906457150437810879903685006233253725438950967863993510382666491418094680155593203185600733150288129051533743741018447395992837735123429797701226984640689901963103134029308839517602262208588790939963803318894657421573496688522307804373418373845216041017307106657505922371056936246717237938627964840101403569618324048604018540042627991371563910035485860322549919055174641127085883895560652725878969552977797225193694663929828879576041656254267036121123385311605859083425885994513874228128837606543692415175503922788681061669133993675959729402771132690067259483619611111470028915965637457673673195247305531552816328568115244914606277288432935920505027745891273647225716652798959507503760035405409901771707221540254227281719181982591532317322613922044587948946326245410225350826766085878081034664203161186120531607042549085240502217899348566658505787721597643666238654949728309055774302328891031817316337466950133159681320502239045417501395961407588617735509149952923320516729185171773825043600539641528495942927115090950023314157621843220427815864156602186802347875115283723243645534943592484786230707849004513878097347018396516754088300779892148426097741742615208529456102224101334020149804330039218564439759901777057690120405274930294150479084757069976202479303071466736612366730969433526955592019343789617555820754448405014186661032007148243667526269298207305566916012315359568719124172314438111381862154014443196168135808957425272046905900170265730534586692185993412989632457659699498796603048006127527980012397462276154347679062432436433664705631457335715253818510658288315184404128344337416632769826448061962365635172462599587806131733713472113708192960864001433908265587427301120976099398043642726593432879562822773878989112059384918011941297722885608798722273610797122718000096590170528555278119732773339952539569182497026837882324076735576141335906480146245849315686425233370020679722522375203714533705608064684301679366911499312650554677557131873359566954948834806787114147637928742163468023306685381851662226951443148103730529056805817947703392324815930409854247999845804729060330903838833015297759393630195175074435153939731944186586305479932809425985598392649092521457696495678283051846461981722585869921015307164417979921892556934152722819517616541227495274049790528973541571717350951698157148164973622815822799350498546189289993832830000968325778885704030490160478865963517788211340435575427870411075537028966228592991832196594926197166128886128344058417611426298146080299224863045210881726259636752919040378777222669021497149251837993552708333610213036833928629959911513125290431994896713167523370421530054272007045863670411758211889105901083925656583205455686708643491786219884747665910705337545863354056897827440525691148748339143983524327688981250812425238774947142907222743637403565773615223248005379781348157307804906652106458825247060615549470929006619411454199616937531007093683763625049872930384984141056773497545992615332811194886212735475787600342279301670159512438751241463573688191730502535803000150702411835310083251607677817298856989579149954641082812388052908524357867544740575996116119044762607110328244941579816835913061312203003664870844199237200531214642793097318205728965001450120731906507486900480980685993241829650809424439143576624078911770986234699237000643265869664493734596218202087768063260203955160057349705580190122702091322515043399117624213541787230417842003751380482071697397843987236852791262204209846198074769621112955963790399709176256000355150973717694874960382355592826591244504684983968839228631778855821934960926354438884025480244070077828673703968319001782204426341904335608398414679788977880613852719124376293728708293073776365585926179598879352714749559092991255145376838138418377457184134312548425643805237542156222827269928657264495885652938137564512116743110017201240685651068474756544913706330853626184491640939575476592419171942540522256490906684064889849792121578351600580603765960068573697268072724421293565042965421565214636296299719002013903072154320790781858764090763542247674132495832838864914768531720808784063026696610412916449332133518431989997758997609151010310904243025954667992979497791229694478999435393586132316830057136641758765034864798415719785351868128537925724906333517388990961098804856635939142588637318296187332712923569102442419683243999838387798805411512642795182204941019647541989172978886708279616951053402793162574757381738544258934537889389156675023342642916094622608335778386269679282804575701631919954282944391305877761624194001665816967067259364763812148262179959362829437013144098277351896016056701562628237777497429752313946580217465946235180980415689288076165336102614517584561172654679146433583289653677735050123188633727484921828489826464096251244996153820416294565067521456643668395580577231808510677947987400895192353104560104305253668534155234300159731185371250200471648399368131462508120554553726501168204159576294966372841034826638049561733842816804018958847543469122001665801105227888042768711121780166222588216924923762312923084435432586850427947721244810362149677916792275708457714228229663082770616016733358033673455293697399211415220768684696031136715073951308473944299516485993051633311595067403878643638662403021053474107898114858993779368599138500677479162356902375259496099963207086509401195426507996005616528298961760521543945903224467662720629656706698658409899734764955741981644135960046532578978014627314082051154276213172320592594438870727088193059093750992042599160534076841513123627824818466579546367471326357041970760733998193583386037003443640394670779686556957465119698527564998195087285478118527791812853015046260424728916375616843862168448272026626123406926070289141185554638811555386640056252028758238253140828760791812654057301734953933907860967691130737625011483838085215434835793296729646976711847179094607531263940572438485314566230819604775506290366786882850572157217003794250605801402930539297309954913886069857864682480016972842620681705083271755337169273066255172508480255830578328175595849636827015256778601544049245601466258447128765342891805070151970522868131461590250422992352749874599893445769700537196765761603595287968490058232734097890217561197602919968957916561522127099696887487949681859652007328942949344166907902463759587451880719084515306149824564828302265156899412954945181423998977259379136601068582093739078653519345047918547726302629533217250290628947814649793568197863057317936671343266511834577009384393228082704459334193778589392354651456038638849232961427906896872858905533638080071634059526601378215101557634981675337017961712152506406894772530706350134934136473819981914887838102133970848424196333442424082102168992567265028803235870896799079841420275048068774188076582120353307362402888068657701959471436139889898011685238347171313275325372279926789225081441061447061939332888943334119649569776547035908659577968218448999536041383002761917006798845338439882879873232289324920790643954805677640174761634353900579279881475917977895340572973869203468620829802347780591612114566835556488194699709553138960070645848259546799279470507380392164534544722437793518564182410812081443925226267498385886412630663335308214488951962146559556907280042115278635962614275727998113781617592068936592004553604348906443916832344739479793730025671294643119749351946935705650781196300283629338209940305355068337775122837426658422867329203795776480646806024891617567959347433520560243535721097139271653770716289252441831616842402766474286113295849574541336369568173522616004451190830197544342330682788907393989434687363498341189361199883118811317191194108145909720283357769995849735701485515457536745113084907181714481637643452720012081890529704182090412804976411356197146153478705748659048286855482117522964756824436886097553004227512120262395907799459135863677171499407762014313385527612405197314083588812410230063997940000477874354522714701835583739288384645733001541614797087083515597708817324245847571467800825872974383463541062262955998192659062369254394070979390526050251046404887118825612200266289837799280655125982486422032969393589114026080496591544022807308371222041485602527773983332505020236603090730579262188928185363000331558343916653876620605746664650954448487963940604198816432424595455497551131430967704907361057381866642533629335627675021796620714154889713935041919698327571537211783665529133794248554971552591386432997940165017391540550848439433886520146868117182082951313220642651211475964702033657761789185089916886614456561971695610586365485728072945930519814323977191934317617926214024076340072967183503374098979743369872545608840854560497839230324876564928420207936351628371833769417935619037886138265790749729833556675744461857555319561585448924877137132452490504480418298126694361383466618704913966278037044078104449377333977547597396775800883839129541465321286077575095098255932738516211913078591939462079799823327132178864828844993574961496067469473878959010581120685266472464261166404558377393135884407350167991426063374469952057438347860818298911903923770548305076166292194342866041157824129248185058477382785298884515142981150809817687550483724892336161367455571876967881807224545747724822962389595335375898865345694867097537634986795417704549000331075594343871773571283953033862078772894074830535261882601502784871079615909110525333350599747001129678265666613667154800085623971538656839234842916605562107877903571350930265425696788830879233315438112741738752722747042497385171444400514860602484749280526074420110164028503409466463546639631763927390707228485171302295014570253034460380265052457040416525792180521362225914987323994579686325473220767951738641448373077442971861548844250734168620277548058520036062888637813167889533129692825011429501214956872145052930006614718145213010612996350515258280762686206975309411459573548825203807452069428907529335678832021567609432897999537118650444578528370606338107193792245707678080999798921624109427975169229437745960208201420967289969707520912318061678609377468310835805220730203599656473385376831012432847686089483750503111016810164672028978330213093105287220391377578756063120039182307603245789436566491035636058438520158746155411850279935350294844454307763530892353187550907710979138009136808237148868154652961628020452336067627611410131259934088999030121098101029701920830599960092439318622746166783530583995089210105398937849938745193416941168781045239131234630551247095432458770558868510643638229108607282642689253134063554372567152138264265961326220493453009183119088955945853994067698520723887512429812839562039043138018664355296138419000864105557414651805231642951596919119936081369233199309501434518483439213420607266918701288274438791651184789529299735728547091131842595107457290435681217776919890796219385442353024345756847503694756517677321890629729010651487434134180062189597670935403525202286096675753786952716486234204492757401900497078534234762271055387236847232797708334948095010894338511451806856060317776816308048519931451619841247826573525005600312105880956829748162506078815990466845927436582628589458831124881328748249309799241076845932363376867118462196846493987800963776315607650257532570692087819093039225216067715367465598464049092331605775364852184608950004776173903058266759138233610379642877734525080206924337269926546771798782519692385996263900651902154125776714348442533795951231535955627549259021753662927901907993469495103689988341459641004163108144694401562837077406992114537768951405308665483769604332835386599410024109593502625705453256803067733132186729070721305694197417423259686217543967734260493057627298787558876852388389968024812551367948772555702264633054151899490678381373087333478588198503562537720714541424043799249920989766837808739180469358628808243013202207317152762989138656946234400829964233273753822440224761336335153259246958837147013464335326111007304279863077633873148869713599692460459775856182187717337253662590420630262929016675311011880617342890518996442042734191586747971200477391309458240029310100468340311366947528401149960603788003317460367634132934922542691859848796260950140359282757788232574070858028682140486263798301239174585956397418743410097339239128621060253169617559236937379759707522538473663299890434819664180761370992155281782514596603703463301240646395453968275233886059541305410880558396550438083018982036350321745858693130280936700518617234616085801529569525623814732521678393432397145467693097582148829198545345896330037063046903544020329072955940300659647694931399194688544108226128767075300840962902639712502776662526853712187914874320591863952051564566527363145854052407451023035897818391197191681262018118592968958135635628756795357767199532466193910394589670310451758380971523871279580661819262066054115268631497123403622858914725451994448310199452565390967047521627504157376677088430633376042376065903528141315676186761787479405570872011585343413501220711789975062510612313838942716375759613715521925597919468643361015758636076595096508010689050592375418890748238762811707217142140567398151557324520478015041639944541529152974524272814767858874780418403054100064178539007983099857022711202118979628104550897514642078132230163427994609393364859578407200422504879076783167339304867558862136003709981570067087206736826769872148474288585831152116737946124388661870262773971522529985328816216912474248384033710185989307350442877429640576028936248117024259137386456202946077938855393633215529786745321285120728911043040455376318292846373024298709322572844280471515524495016828187141452719123141132569755602500484233847008575132433849485118974480448815963082270858774556710503977348033337262413914023295899142111229228821067929959266218360957874416187861550427628481501221482799848719899437634831547955330322954703256495381285817729964127367784880414579903950196915476229642430649598518183317995607195128930319247349551269487446841674160328043148925282379668275791593171484550243463288240948653354364650556024106376914680213912818343996526118238373791071912466900737723588596379471382612634505279300804117601987481111823838517189806975449447227112301492276396770216612916646824386777138310973781874009350617478320116217329020268598494787855526049803518587391653418406151348318421608180742644365963615807605285785624391305823733466334691766245957315426387100235611348108581043851465132748281732645768888637861156680453875390677971168597183034230615208211088934162482987653856160502390354235409152849672817358044155493723038349375776554276534151148354990480893618843951386030884874563548584882264823516972106652961223750588578485264804041375299574966686447163451175936822674073515132732396826915176763456934510951641627664885224462484520509278686149047413271835353113644773065786166428290144010021753880821470236839387844405202296162173341556471542497518100512186697020055301265041886433054398767439688534084761143951018082277944740650755109446704148700964557329641357743423382335824598491747611245187120028948286005917413244305521889594354384800248006345347738129948395783460565547795890737888917468286216326273487326155069791913704827947118247849943383121041860514115271289347725454205128641831764992323724802114902590425218331996431046311525698496457802220085528438691076159233680194901790246891642071744039484975984801879228532702323393565986165996964968064628160065308991804617716243701199228871138751458108703326379075257483975031805825334530951439763211763181650651220010747686955772251272433434110280178189095984812302238586319780158732582361427825567519876350838405642544274068831947402672192724750447855856758503304790364137339067651626318492090392872248942012667635006382296561763160281193516711519626056339201020382312174312477604246866051445916179306977498629354782163187568294928488458016264754577595998189221853199124084393870819153257805047878509465263274961909913750096422765599298031763128213011586967459634693254406691454676031977556379775244080442017502953832903241077733150132950243225994066744421208541511852426371186333554816641079209988129777089491510280667073826852608250697865289120759189365774502067460400455096196294464243641170901754642953217333384062864214442727117977855228288458945104572140435317739885832911437532519404897621370147899306504772646472663444085479040310102289970813148558720426199710799292898356683017675738681442159518595064543297798615023260725601995586483691057426196866580335981992075923315179211393731934919573353859083029707698290946560692897946150931337726885284831148923488812891029825479704961099834758213246082166301761712319689439459725871460973495915931368089671933261066453980604486101799821269491785162482615061070074707210117400948081227265028211684439953951498186453076723096561752012464963621221299778843013107266012690680921292608389854937858891585352100465656267418534401886737014634385103939292725770759785405409329842115337360579566048219113254537806674145860973565895182133067964863239543933179798931653417491808182742404798167422557347427215376500273935112998073864062785863317202619714364011877663876765389809862412341032488924066147261709756640436225941160148716959950778375976296756954183582561938406424941122540262009015818911358288532060872308895270672055321438034255666609953390294360277489853938114109260428525590985429082423690852330149682765584790409413135400396514270030848701249235706691986556406015975509600695354086289397308856892360080362913593676687740250278004750188923690739196958664178421115400445211572385404797906002465522762492762883188673550878587474336625302662344702538049951908816357492012437468943095489258884378726242379668555830153378302701329017378654244847699167013654327571050245851897971264956349399796923092090692794069216470179710661824737147936826279533233670292331927411191774291170178036270212968486759009655808705689898527202941132816052538646233681717164752251009970661749725965834638369032022638415079455934608539663308720411023578005104040265371438031749967814238299748889453194358608361545984294422205825300897180103117412191124104718305873177680306970998363411124882206206079820332170969364959081612134154015890116704962891367738292254979064678990332337445623677440219108023212490691890555273418975610147222713404404632248449860932857811658074962898124848329619951316239379878733316345572229094721060237599577989935579478093325970893619831978351568148841857149451193390111288755919846514642152658546514191396841949056657200574776977122792515510801276445582706460648231654416689031845264084405581576538182930891205098919344070718506752448180368298207590381256513763357814959049919046385313182716726934538955840190973199422566889117481392024950681005686292265717994921144360481346346006712762140681508273822617919622826428512008269761169115696259140203511496424706115378165800845903654443634242009963097838653024282632836986016723502461780071039085834480865864958877006800809633889939328852999228920578134985244308298469962810278022043847520743705075900431120858425277085854900586644470275578251849430373879981942965494863651857080891173390074281906366213480785643590375458610232541025981966384799240912161709454597141531402538213157331520245463810846958042751633807333583124183848119595297136487858195444311196997625266897954619882505245351171448654806096035267178794873187693749741261573800924270893961010733196938138220951256358280017520208478126494029823954512979783857238486836218216233198820493124600352200825370590370213078324507933754834204946302926275206185735410773064017325612785117195145012004868034406031202066126561548562881057130869149883666580518409356675584606741650709580562024287254443679986434865612729529109394454921133229721595914296921609440729439889845571586924190028364569268942472486955882442069043645272799473010282811060514786230046141844568155224668534234947998372219879801772511742696469730721810159953691114832113738526870457671909209581744949636810473172574526226952751621423352914024144297201060931273790128959472209745632805256915474681705786426965330738853101661835909980095262224591057247729295562005442229862095575697377849195287664400148272709166061791785162137805827984094737188549949194147160383126160478231563572412222438641519882708454995634891217474433143999793901445579709358717950335762919332280410340846431808372905168751533143742982231372469196474681158555285406275699182500953518560586449162186709287895135052169946389721533538896216736741574083689848304416350727589451650655237721524898691777523805793483863724245292997153463689360508855872378225417723748452142043030990274845549713126261817653100973725641889221801249413306224029912284299153113241846661875371576048354071212436113449743526211399393933502876784299196894194550425302879674650962956607230565640496918479653044716752761596510333781917702177483355124579293203951168176663835221408487784387728421731075686597554063130813039816273861908876888045804174748226954385917223397809479602588225741869981130592978940158175916318895686710776850079379607558899586979340158375290731335126079833138599204472056529397420278372871699642081511630150582790950221445123429619202066785453840777815036680744055526886761902258985371269003546362235099648716987222394382550147463934666061330894433040148373785444088905935335245008479731327918135486327548506951134511781959424258402690443088806341129822815408080203568228760333931123677334744570281461379259289770733043348326057176006705679918424820513945143423860961067816545983297273012196026033740518195733983861700873533127650280187933993811580109182539128364917096655431811241461474520672748349231785017255830685040357147656936686987027067726592937221585025832845960074374702331429059735895228926528682908212076417732889603239974002908157001554432083417260799242011848221468962342225105754379208910780825148263371684561424723822759840946218606214063403664980880998508122418595602192713160727798521570632360932619475080286134901678467457617200559946820956430509128015404718313087688678800052528165650224852452173472900170944012287536374367969401757286040019383731721873781776272402481576862677151120149656738048018826236801685827684116882077595230510312289659049876940510753368798327743774633694095240275334438691503988887084334493336074905252454908613226460017542165989078987100042038985609024088706421093577184900005631898559186145796185563442537459589375218675906624487877218266798769426267498120534556250901492879047174559246921509808793727295953193398074889255038845395352963820836636596328825575205509645394513999297081182733834296627582687595730404857967995908881886936490127367974138644982683892748823254771748268799273013903427575124387752688601974475638262007601046234364325916864296201256228547256702037680560406589879751650439627050620027350451697892112097304182163561368194994850866878566083546103147250352551099108347231905039826529429260527860387511524406124751247732200027055073240016128438753592298102559221678945361425227578816416639625194294333298525372876071842035544091451315075110444236406638185148730537937301991953516141130970175013758425412343015294338001831765999249209896936942611182183597465067392797375496309882309196182584937229812628913927208547423083895521419252425217351767141623396820704552711850590496257971505332396901600819951643479279458298276266436974586684040197211989497137177946058654359622845308672184632914538400135360010293804930751203318665758295482633467023195417176228435096012305672986840828213615867330796333301659205934182628274034330347465719861065696362540640518542022538657533473701125834980423224959363575835619735358262147393332852021649861300856815331288408323618141610648419509988441752236431770830862172742662297873510153942291432017518454759038513593922858450205008413105500894881792944046390677487726024060560199696893288722307430824562457981501756348180881210234469629098952921304164357079326715089415330449254474835010840448063477664404742670811018648783497935411035899340306037450324662396259068937425174491106962346264663794628264053445228001015622739399618954888445643179803619970644671179188863733950075073616070128395957379860224216691193616797818346959926740287849290938016366316521401442442329294693573454840309855094056211849911788588946905708060344147863727078835971045575069054742550315361525780148887785433004381498108428960249064857689870158412777410485070512688145809792789470697615711476580501956333893051126601605665069687557096845866075279840795777684767604199079239891488952467181597119428605487563811034740706502145575176213287964302198406675831274381885625631758543724548881884553371891620297786636712677282352705222524058416276778803581210809903950696937422477874907000951089241265897273055576550314929246961761392749477308601519225155484522401446360213056574117423689676558650512433999097307632670508863917431061482112231989480770476050733684181873335388130887831830489396259386635869513856363111422677552809828185021243295401214969629227860631300316699068713360988179732648899192245573002725922302589900133093767686801620616580298729640145822897759032976644207515025942447242804521295879279507777408638899276832397213804360385894578859676074542524063949676944891437847874669147657557886087798300901000829759443902857227700311508176864834382692441954573000746880458735111651815760573521376477396031516964127363872350014227358357736475623648222923388952828504677982766206756355721907811037162617043060686436497612729302588708851391324988389732421229075893479047664102469192885904689228491298348136536278902519103516424758041776416405722603196163569174797224883718297747686654358467862862341171554340244211629415799544054229760813489859362390072663755439668287554693841308858988975865279082770259470648975102098000752961457369201911328698119483674326663398486587266836544021426681966856617762966226794966558831081173025537056884349242346047862027628378625579739718479860349616600112455588943462400116709462850204892864223194662605599035774090745943307321986712432189522359404666979505281257030346011006641670520802427901321830710381012877667664872019138334016509108624786491149262040958808719057270365131329049684139509160859369796140220125857307154651644820550752751725442008753799143421083080789938726086375537701892143010334606336788377558250465920650133077607307577846439010415514380797859579011059976334071001722770415162406746474858334343918857940426016396479648630589619452835041722957429678831700696493565218200783676922695612877726984583341244224833011099821559321992981230654827032465771949532427155947716742906584863542291746315676546102611796311728278223831955354747829911104609589809119245805242924081819851693158416974239937131508817344851026379667330932701223147909326872705663800533632509477076532330750629805171193658566484468932232484737160979413455160699621812280605528435684001352725259010072914492593183927809279910841152671270163160975678085128704121904532940045257228525478248166645870289352264346382454276877992375964535503703378956908360681846203244583492530716046770916072715894591367403927098972229193368960446893084683755932631155251468085469116696964486244847545319952295430869872058731697540265523117237033869755143090391736183401101157551876683928658083403322781294179479777460220274796270080150704363946566144965499442515967290092496069461385258730861731356218677959724848172012469102141416327327013059616827161515855019107842600533050312814033419061834182137068133785224792443306406194629566547313991332331517598883938461614881352834968071838064585007815162495590750042166999975850544937225105896722436600796333390901531375916862272645789755528683865995380956473516664009207558048395461633337458005869661673812615417182957480217144276050628866346385048200196794032590621023598686773663042700453264792777687967691643164017077508973330382916364215258546756128672414622271201700831031110759629116163213205219605654189839505282648753665427690487986115214716281992547546234135223684745400482749802126225177283439902312265426992725609060325163890231072971735634630173289664760986108307709390988580665138671448068753028228110282715180088935701975075010460232832791447430672914849369351591407156846590489870788884423598090940862718160102660114186582160548138387945945361687880921619222618065157554207792496049065470448713355907421282911115901538464163217823780287673896399187611959498347825381846924170786240838320426796108840533123601788835800732396374530873623791018947535183528008633341259017899217739397378005501699747487109159437083799709142433287956329534604902589181695390254859038984294476650362196674795403427018688540102020299044815580602718309514000658614987607594730439482413213211645463769276785841474188828480811629563601907774797835658180328294602353177997643749004203279304594568029103558407846187158914249927320585838902841033443536066718400442349898422688991987633719801583709101130145307274706970345328584987225625115355201886450330902552539310286765544166611652517581472644238246352708143896448272998235625453903854184542807778063148368697599315124812923379630465060306721508085589241695823427786813169423647372943653000570155951296119205550323840139134699828094160756569613785517919307079535763068171624870784001687096645553918737632388421062980874612525419982057100587867688340277958172825616362564171304866048888521476872959689351527157550015968295197637972944614818644395349727086083386546695946767047332413107659288726345484968317960849871220456590983366714465520155320906293252805642310280663776955449674279211757020123347056462258529588992164534532588040494100153726850047269587922931455480269054342667934003161900884376241239665554892307100564581589316202075005030045841957288433838801195740298142198433450949236607088054095701059970416154325685731370052636080698425846468875293586875894722655037539985515190941520933211730323599729421634450739956063078017313182452323561265193687899680943815079791499329764641428631608743812737256839606090863892641587816261824063884268306969119553452533041581432920231354055831142569295815510439552404900264042924037484184615642433034193626090768629631225610720814630232770932282214529695828959288486192238265653737504979358388997435217067630205854133954575876080342093619460748371544584025011607374710034681727930884675160764056690689729478381810172823308583819275778988596460557424284684109513722597891765417375158161306097925141949194479779411528023510230092721856524637886776519562374522252509650731590299977563682992910266756301698320027662407099422447113223681927628045649537909749307454902576323819139167500239155746246133386452926965684212477332190479987091777373406391349250122072162583764706043326567626533545067674886534663521237357041632946034090402863459911023063548798395171673173579335660416083887998507547229966732150083847597197023074346551775834228290406367117522672988002320069924538498631622725547529969081619617619598670054476937835142450723223604288139339526098282085138973232545892956203783844957822761996829458971937671327664174638338320672203132958835688560538684152766428645541588673523695395110910851167685321267823031562019503117510108154917826202043640753975237888931483179151480945650826810713457448761365717911534679457410728185946756112872127933107680980038579565994477405972370346004258294603511792217622007600818944121620605771326478208841034848879477009079484665113524438187636056652716360725546547343246675325621717456906262011538591678289827135919769997148851401564274240037140932351838125318162882729531894977564374561715727067871060241699300672742795471788765919392489185884241468605978742834027325882990894839406532844662650293451128126998503800298826581913977690067429206768058661856708445379132660675479126927692850309229014385461730399001902703298324106224703909286676928068688438031839973476090301577360160824419891812563422336874716572813587002069610254578565396976820722650615252430881975093226354891682563163051044510179905021899756524132978590736623246924438284253676143156648779694980333084266562711138298538469909452159148876105225594045330990782276664651448560685066930961744295725768068881699994909367178986663003368438707553437380045736643865101272464822517065252103426522580124216455781865730256290209082678978878077538774084358204758823960885987157540646740783823011660651551000105238708641735251063177523357040464356920064160064882665465345774808262553989330749772772319230392483727538137738432078665547928611208033116036549159784088954089544667341542511124234678206175565174459205527050459798405509305538511192599436515697980047814216220087949618838833634242839993760021818488059011842818642238066162612641988779101902100820855731996843484963963336990516053382509960804228405206936690239227471035989463242576175131332309081728158133582342556029701011244074849934362638139407810835381872688387197250199023148726661222256943606613301486314006014918349814637416263417479045957314102833048410091081229564929277272297283740795138713196423698647046402436989254230618009713878772824455205116607610152109324752381756539033330668614677018585973758893640475667264934506442543420160441390229059133680313174175778657925882030976013185815730897162168188947518614389352615295280236043187174817090886001007988861078244233157076033061372359869878577783644069591076217807187034964735080971369360000039253549814814061199021629754995810784408033899808054666574146314287021795298587032297542262997374843599636818853888235088335648485271994854315488024990773811428008567680528685938021361699513162273524615818895802974943515026843160469210371533703421036983258968426934036682733859077193982799365357597508345605417934387362538299075687261336089852928752080736218104764182913267096682430702468175250037169291947138517736371530857983701144527865177670635734760756066635269917131015797050622196876212566608604087219082545975762612464581656253592099914827426506527606372804411669339906412406552276105927562059783306472909491848217107482047754213463602138984449674485001995596542635286125010307162094822905116497942548438482892024366339599798462102429712027220932660951133819411419776920863187923442158385753564722801568039462081180514733224515778813620977292768741668710023893241897794002504055155971302852585799829920072296161359613508715334668957953408488897944667860658238919865042211139028433718145501063503868624991344234508970501058454106848261833671932118469023536864145835574609183854043181818247369016875234672677037431313131671457362012092334966643152278461549523024760040958760023342263952980188885918431986407313951209339511379484519434634622007210330127107712014498105978125968503415801853775179458546936067429466415615809766229189570800358962210989766918544196754758440083836875979802822053703409129064702819657515279695926638565305119793908514308499176845755212527821607568759312946466540989431526626136139752775728901257078156128097489499534602840824011541387130500540889843918909219391284706158011649817013112222144336581168974529078210006641066540923688328634652433190692202795897071545644573628725331652875060940051527328004029731643766241915814866523848668587976522935465232245945792617742875208498140171319615474549085709306394648097471820757076015195543800698542452838178625989542833033398037180361793291443880874119410989971311959239308935288011613602429732456662871870960066332903361764889499668848232342730836283267672231979342076535333282117902169020335876254726983249161189057837640078616096575606310414177384304170464361506773234669573196675058629441868556712337036251370263954951052123740401469551943144528037942757402408496201448248680404558634319847021080403387185655572469939517162227155481692017940851605205560411691257871580608350322154161009397250569038126763136250317824504147981912817271598350535276990092122792159958250870912901303061074942252966674858577514117088875126189395681499573045422658684840735833841479902489653735715745753777061718578750075671837462190968045641075951978576471629045637962312847572807859531003078484599232634432299421919214896259440284880743039762332041043160113762901945226792818406310623166344890632928851528125502448975853946259161946294514375321032137411972653403994479463339535890027158169937931299771843873829530864940599140046867203290082034758909138130704874008975520554350918647478434089215936191580767474748705861497206641786291674254468881717522769456022303607607075802795833806286300448379974158877490051198570741190705406490541583720450691795794382257934791305777637699991068873292392800347029248817183474472755530149724162624300108725483199169792954033933114466600584822958245657523422036900146654524809689999039890051091233421613737476487174410293096918719743069076239024484892610461525570708997809837896641059742632775635907074287076679494891212110786720499202370337569355106535845665177376733962321266323468946082420503533742155578509321818738720025594722427637079010260665546672670319639198744445357904907779140936643167370294967486573419767419796684199687010442472036120788865339275069121816628934143774598621569776946519562514231924937114926930183614188201510170612672732862678291977627166055522348579032841146190782917615511068773225544763691401705806760173148343426930720169470894495432593694239394758910828323175381192278118379373214480781714766138646109566472830055193766796510457271145446499688081593746326393060629564753906916136141731184582443649439752050972751216432605453982344108933545683108633506324462820901556595703329747308712853103599349700220339091875304044343124323673608581238649094846328783823016330003015028341792076675343877056544158507688454807016660678709258960322862654652038633166900581697828735026619170532816691014869599853135904361270141056205296339965619783841790999924868958453151495394356877704196477994060465520564213187101763451949128478142785301491855611803077628321887671279536184806951469762886231223881472060573055878395757611526731618247718539446989273989554901831058659436780291682155418256044942945869468655064715309164321034947155199580493044276051726093178623653742291963063174784743892651958111765294813158431616110846705688235701403732047806618903713594298698734636949271440612075320075973165779116718317954763423348699299435284985455780548918158667979540540950755291228383494238142430820722355836205832622902479256582334740731738807730026883429257607283047410032792103593159366195866897313013849171277539181529064279165417839891953351000846462403088535928770857934762061211548600547259612981923771470691003940052738552027578681739774799330387525113809838579181084431683526432741342115602807963665058462371403703776106980165449638523848351220839957840869249750444176615659710043241301143022960388675063174359707499244022691700162920538880866681527909443633535277569539109064742077368866893938867302626685506982572508625401246883625324818428657396474211960994953764660772381257092174552872961636862906148610457174993455363514448784985575236678702744394770858329004571365821174138938818727673163697856158676272547347960267083545567626495428886015433444945916536387078513190337889833277305359148237995830199775330267968085420839341516333843471628373074867875845673934595797818050802894882031383494127534216862234563566571695816704508863422953375589945750034044496821627923881871913471510913064717974248149747457059916008423660667926780179420640192979519813085886137638801859977226296799574866132918764443065990338052530442587468454926496169441296317216484428672644406436421506196468211951297092359306576076931826565183926711442745772107431382895112058823077999966537882159351232208360393544943721779865868289603312825662063043929577752648541660021119870075599198074497339863550631175344326509080797119680134776555231889575561974497724322103005508932459957253032934512618468647710731906205503735262316871724937446761897266710129861470895796656354840825885880171547834897232551986749866596592753562009524164116013184798034067438432272560411819064573702217968795682622387538130913320452341883128209715016265542509932823337684068149366027702789518562584233860969150229766455381546541487685954736848020332127272941750813488539629892896945465064886688680648880491403424006771193621483387983591783686326819826694372391440979095596647733096177659512570630471328994872082800564144680693946180109187465172573122718106434784209111924188151167001717985262200096504333060108567050266990813655512636351346070395742758860580503802350618780117144890666453648206744400356549472652990103410476042934076917475503274930465151232357694819183280162987644365277163344663870966924602839320794937604844632472322305011405225617277528205922321883916864561273618773229924437706692430083489272642298210489513063202383924833303172459795160127246893799678252706536032115053015659229594535944153708309603262093494561464793802126763852929074254664897590204237769834536546292040290474918183477060819847276165803059920500396255399535693690672607001237016728856526703227651579922733079864654874536035738377268126916082527304021449946855518658332571014671419423089414988348779700822662656892751802820317815181226924205547029701680923224507584305798592980000225663447710505549823341030022752813956331820679855419052542688181050943708090295058947989271991374801945869358501247073097464375395546965762092175441476933796619809539142239145875913080615965754616189822643806831388200504908004091330171702863210919429434576351872325196076597311131321374782310152159937893973921638774606682476263589718661546151130259956343943828466995997654199859064611327384180705579782610507830329181642237962767071734590901285340678860337061441092181325601502283033127435573625237548912710666644338834247945677587546608160795687452416921932716330465856550265792970385401571925597742536408610516268283465449877705300193371119434256071281767364238467833178169110737706714747243698279000553075073738004558163427955261560573863328196728530803040251906350107605050270576631261659013510672985219869757623263276402428472144262646447054541078579068055210674271292605216048951658195204025154194301684010769686205746047863594413280823012282679951412701314021716969991446556534447666322135753965182299077901214956869401211466029363054560051072168197325677431721843260357383265468989010569700234874895558648063632435104294791498491962840690385443404750780549379269556200032553834848372730747156590848282911893827952006155344762962566729270452247993261142326784301786240857159744951233043966333921562136082988912261923300935984582065585910615241058644385017816429875265168728931991810679820239534233134584487899216932436080393765546358722818379914166940615700656815491254874789111532062645294451412935916067025754940078429433190096333506034008432224538190633263119503652283997895168718050782298585454982528735344260588652604464355764278173337196683381726464114330094057101403786172283859616754956314112839439361533527164804847591424042589437457713671390699126287940907646381943916315621768141614231133867512562984027553205842272649004430640058511324648834278522817120826571678566594738788838612477350459219693255065192190712732522749725557647835660254602259472431304159448440374003903372203183758057771313538962670639677349343445197849293793277583761849473917548965568136061090459299775537761042884086842091895725015194389324218934842065862161585574210378459263838080305847288886551655750476361069565029114371694474834357579415779524055886602182343459028041396293146837843914404273455833180398062008558905424987130792607819647656683489698240171658140789214594824964556107791621685498161194117456154693125002224775898102925068049028191329303332364661035002738924109634775981609149235699298377441252224646264024528077138415122374070118385947687493829448492613315705198872855488803199050535532894712257592591101267843620830852730652523570400827873276715885763442932869227315013740410202851689091465279155933318172904939943860570749407179371022605943302274744659204545162359146349160639632585420925843739571851522316798834426638347268963490260903914400470147241860652421027555035918413965992051673360792449727773290513193265563985223539244144591747994704102253682229912667522561472616315593376089446812829305538976072180162769603099625628330542312006088206838124863745286836415774733009478028708971956552028398319239799791287970156190091313183128334726934769754691842996607600924155961746698199183655323062469624304028518593416281249124768083796692823190610399872728136618030726008895698058920529734211812057345286984635149123739499766048489345481427380406141647235560129744505200965407805156962738549545918855189229539749150198239245979077105660443987926095192528760895757992215684808001167110309353357380459340638074662434634189173921891144081131645403083114296341888592600984047453325273781762426621378941138593087576977987702276082715730739315341887035312474517601649131796419124917418081201756236615721432824430444641847324240330376570335002924374968043520352242386720167323089371539627988892809134539788796441273029239163306228167892909611708679016982017208384267583798970791248735151367754776707916242623730710947069070428905324487821515491548702634942614756114517314799928960521609316660313574590091657104393351755937747314105364329154780622947123594363649908870262501259158397090060727773072178869462297362401335255628233611531771966656217690849844027717764368539695020084679891723314192920337074136884600783116788958279176774491574374017640392640858011922645228804695204832850203105866970671523548480787134876615862063092453912530993159241695787235678949898439716577873764630223940753556722508758186687202245508491831109688779315208934336422415030953100218549862530097974599642238811046635916097020405277473362505718015941504280752725297888781998236430278117018528463693356838952714020973875948163224342652559412592165128002644707825432950624368379477310239200309727750570626558019583662741670391379762920859676834394226239693670707907431997314820038885883269095947662253373216889229016976206239312255835519961384488472029803883923992625746192897982421949473340798065107084287643294540209451900186779314899720843641515660031737005438021867940428134610813052682133419569102574400533171623974493803269445017599067742414625370253684766536687854663339067104808476064399574762521058512191460428759309814703064115413568950952563579381126892616334384186016341781443415279544882186697153050077120253535166182287257649329465511945762259872173442114878747882617637223542092058095045692835342279534423959404534042223650117751078984257079313279160677425436430640954828905906416712895271873661675650611680014759705504553586684413175360016189245298130559820155713263074768999759381641481473680629349434271184439583975095301370388468825277865656568240210843038213520026252641122275173721296752866581966552176719361993306173130722369189442901580738657619537795839048617070638405574333955281734915102565976074452233476214653809403720190682969210607060598830008424172128094492668787525337279258716090133621540633082874052991378177992158941162275723124842003189486450941078401707610908345708401689725998611419345328874269066599748675867422416879589307282334094011262686771985270037837780673676741614505473471152838280820200086822297219683632008762882405502335870208531889115744434227216713053906928772470810774408857904804382545801114026876368997787090376904421331389903489944174235596035276390565841438378999946071044281396557152061373470529950732090814018759632700751081246122060895838380821775020930567113820777337911391847561225325504619272018539080332450907559389768794449811207588634343304798614459085805415891298046552358733751247552777945704927148162873796993133874104986780405488730627700173611135328858554715610532175065400799444617194730264271876135045553506933281941901277094976699985745448880769331239599542489333195138978594823021367430007063831597991252431270719858514649431054139512662133373545592762902544430309952125834456878225515846668453386926091476877059090221560930467171812938418185638444753376197413246053052789272863258993253843400355582335743838500900720549254725443356535167298255274848805668274730265403427476977968857583251011462944296480652637512757889126329250037394391645811101633408686973829860696204394029089217549128262668809148221300078262488179852290010306133313822597125299740792408877551770784644607182844075813032617931310646785964299619563861621810445174022752344549751212444870681611214680959621694419432346409757832551788682433055603043608977007511536527257933736901217976089444142831502994818672301518625989796744890219839472638114393708611831231552335085623057717344481550238457668175026467179414830356911300977017472842399975972358173567474707166461687479046633637619288333861421896725752048467043398696736939903274867184774860329404367862257390934289480911704111755371891592758510142134623449539534499780818759644152344602194571902706884949758220604651359206299830649453351999785585242113866968950269156250169546690437062925527008701681370101349421118157101468184406802077087772231985869320044262598506378829806769929706835976033012905301547348967795541658814477862248031097798904493055846188123897880128372049218858482362986592807624802985629229449657072040591890782727029144062543120718480397024756195418313616279762222612303159068001618717178220854063113449193669374633273951849602038241342762925339106120489140393580655552320679998798065679745957902299225473052455022246923950041055983227977989874277903647801506260872242057310196767054534430022467755430838319947648139184749283215513109993042372416862296239433256928623866251988212029428632919827399079296240425588564512281218384911654647968714588659738149205194370986706307202583138748803814611013640181240679446670691053927355940830461304012917937762797842932257391080937049202526181232601968478088208785675284903166079540705424404929104240624806340783878779748411864849337641468797159208558786550335289645754609861485223271787014842225028481341672912351681295275826514603966958397961513713811574885993152979686559041426677788731755184967005155526591218432649208067970944954562711328371233564743784799888275884602905582154226329562123180425635885080583694865427793392703965388246533083245183163895080138109514142849498482103442764221729847098571795501921131979824091103777279653859523261132115209517112497031352466971758537653051646069102101145409663002233814609597873636349591761282303085395331126563774592287020276048310991277582258110123148670352807494632975541303293416039344458854699241065631465294448171885804167521016684505070321888325503833670327262186996688517257314243062865469507860041084854532733409824599367034033415702043160290536874635137311031202823528169153020797354253648171765431961718988166832136919510345042138798720173538988179703001320802134481192712968138837244526934148270071373679134191108693711161102489767460518030359363021812125913954630540413603893664271890746376538522757995952210122886455467182228562354142504371042753334976613506949943260928397088907000481409275873506444568401693114371085554133901997937721838186526070435325367693556411489909071006626423944907586001726901937201104477948499025340037486233048162230370277420432958799740670640687186025728992530268133397216977988184789637484946967054234346456937523055266026794509878588868972144170053953227088917010624825190726377004419032448281790075807351271697242018945106453410405184555623765219901396439018966379053880052346982737006625219922780430848367774785657958695302085908744583841239688921670591879457929223098854799142377141482415194967767669638505289542290307739740737541874786760033644457818942336244300272441427245462439192581403065145690478162461559170125362581239386549153516258603025862512757796221980040125594549864378447500979190041962695236536893535779726903221197468628734234524310732783288344660163699722763448488631643447391456638574571418988900307287240274016407038931063249503756781956536958729429945497861379210934765052912037081075709626640660490416361480902425068015299322887481919214474343977460423534019965932669477133446020941229991859370728720763718091673765906939803730988340996934940283816611048578689552530178661704847435271243136293069266444966142456529190306729601914930853326778428103300410613328199314074343045217776967584881914799925900856492057084750160174991038238403524472477739031557935686334740153389369893087734021074833301624169831846700583914794484407728407900964843269690465183686116283414093596921211213448550519919315757981916924821714222871353830038203027911613136253495533040746806372676886320541963639216405274934106918128836976347637849711791088763963650480078368879832071204569080147550756643065130288186411871651984015182778368122255228636845100699949056640773674184746372054963660649269045642761881201822496738527268508307575549783821702590231086562858600011593086513748740711148709657118117686192590464263698976359802822890321478798811396022603795421122621378056787697225010769193656237523296468269451863172157805551106341794486156345136148047309110903774050000130731917985756732615578545294137133977553081838320918846347624963504336667426572877374354420097175698963844187793791304771809141467954242469714515145804667417998395357349225188355462815530046319302405236552595519380219306505046395196174350773845898279528667299089331126111174035780380330414044272395138949969396651982665798169051960428914627404559776935872107716589772764753203535328416317541510158496625441044012719032133402828878257754434418430955743399579314936295720737140736617241104001420469763645004733176592356110424868067018779851696267654268792411556349738936490612161042325159807609647948422892166187844797281137497561441524752400530613729329680884868547668294489549666915195024975084214542670793584163295353710438159343049843313954101958033588185666181253303683621967625447370506078107853993233381482052013178608167166287646078178627185859133074457809077513147373111627177513585594947166269297255720652091143634019165864453796166988483337845194257828999455002999856610843231301153082929802055141520350881511467100616062682806480491011441549521219017371938021628473688895188252289512663593737508816502936866306497353717579237310185126930562255057735218558883883040345736277364300508044862140495851418765926372113483523958460088381128365985247983392271884709579889165492980154950071400044502478691178171001676799848279749094533643619837119107112913682595479856929594622949894339641399416050103146128137589405318382758399990843187079779424258728859965034244082308980268926704476165539607626874352797015688507077546648454539498985544456461073380106701965092536584490177676395679823477758039623359279331849437573174630235231994933357598781621337720207954080902602162497028056072110555336610655695433461789674679281458287046634766285388300497708184513900783172476453299706924707819152850633364636079389395231069882005642014839046979467691653234040106002356952705332334132459866656544521244394450324679198826388886370503826226888696910570291682367013463467334246833833924242433861560203321026218527091780146820970828123587168682514852233243110301111074772485245702752728935684430639105068435255354985411497953393848597524583815448041052196923800309767998685379216841654741229720383490728557750381200182504653012583745229884647074420351931104809289219856863566195943841705062790461649493459802356067040444660205615523901592230393515345784757939922417170623603302010753118017629894430598448363089472098806793882585585353410670088003095015092879036984362947750239827398126523084020959875367027203090415112815074656521770821273208475450633133090107538428952196174532138198233969520642509327090630258001547551955331650762603715634234896576269679469076240760415664489415960835303614958124184193435905244971423218757481805768869440607052304319731239873286211402448637325409723037206754747939442327836253221003583527806468139819881489593656110277054961833002718249392775873302613827976408829444955943213597012731864344825284457870358599708084750307682570709387301486415387388833909609742832609781090380733444145415372750531668625901119186268772418939419175977910592062190949540035091838518080179489309682320913981425671347436658608946505035084228801256293029168797892558540206171858976845919307206577418112612276845791246160843693134160696423318321078234259979272677600876574484391605237708445819386702022392046857947380622816276610347151728975736105394788648669591288863895104682112318345690376309331133842819575940438623579270595116210795582343414147192786731701993936309506408497605186139043155176117399418291703945151856998652569716769780441879730156294925440325326821622564497100707426854127770813463421249249270478851341850423254019371655174121197043551451379543612863515947284774974786015592786749629526710712976094058756096396505196777938870676128006460622941914070112883423885398457373603827812069224758111735242931137696143554036330678320882228664660856605660703434691383239805512982252124907306368330881301907552389661196473063452445316095448337268081838098301344033363257889225364680409414097277758917764536872410233870292680049470016408049816943990946272398754148069326967212505240124573194693877091830167869093330995407724646493538482070375908542037674121403980174776834004141079588068767440932259346515884161487324139416165378155674984420574331417194144538737213387129142667010241640115132326057009553062403341676113813054597928208412680005728380418505862342223675962306368512851880924770432866415867617573419672651550201784576636543232667000482549787292230463993515500888407442983407570486599519628509756677332811278883877717632782298899010745646221367471834951728154132400208766963872117004095829481393311619652948094466457530659050063089944474107645357419171163513181799704138611550123282597951261684317619094961140397341312621894628482477191392913169258392820355214305847765332554619184406880244907081583468182737995052606563565829370420236750809149004758391682913022573693986344765806561897024110431059621984429959889872020630514667338823637441857051093349447809897956130872468153041294888272754538904433801390419295592983784293461120193325401857484444872948132461356586949243417527411004921693244851638020275610396947449435451760600632014490816784774042246185254230888263392348042817783750905797110079538041725674925269660113359751379803248948692194552676781467363384027364513116454997657926917962158945305152844491990936107685554740603548522016697498089635361186270937232979834120306002142751907476821605678535153331752174246841237718713620661249889371548683551352374212890838572493514964996510386995964130460880606683993179975143674982462833389870844784006060923342830618770860612924854460398358434288607750949797929962897176667967693810267668985543980053557347622348196279570783979299546314633618659129990428967182677334995050681536542504422830149206351208645888803611856582321820505087357497833788114031252606886808832780376179110257448699100804596803161376775393876925411121698059610248952985637662161602821432028607640273389953872902937348573022097534144719196510929783108485514635043360230829128279858891510432874482615751682421244529892874855445277915344367773441602881403869315116214532951826565188803496107642067915504902995333871287937510344285870720096073151117624479369169260138340667993171251133377544460930627485848165450423461314716640914060932724596009907857981623391672246317809494237805119710285560491006153443676618643404275346825514855612427021288543645986387754196381620776906820928463726601305485155345437790215070475082781081558614458610722935564977598242503831574226352406801853575656135093017063874756560788119006932727996828349594819801992629203063261165743497040397286190692322113134687409033571845481947270720035018831583135113388748951991091251677163272608597573076466941549653646027393464028119755463950977332718893157899221213941788012634947192376722454848078599285533836333115538697625027790105280370492168398859149716829603158898115460278791526985161243621026661274173980131723915672080020435039581134968677471661091177742746513224307884046126091967399846839381865674355747196933745261020239415999474506056997450981829251411086157891882836957351714833389825250588000882790035918600189273341605844522426661589743390973959980205850119009941837835279442231862024318563832588533337875700212202547111480937221844929413933669773703248112482362717974737191764570574546613031093267617923014599091871718248046208769727002500826721850370869237343260504372184748211400439649535299712300407058979412650414226642854532510598750711115418719192174555011638942434838221985928137246572536625107306969226378061637806160296683451266332704199937676695534499217874578764006643967739179375118890264695780868784876385418328890732615476833658714275432584318182714682702839444948884399801308611441726530940334159000331838844674879050354521594652034008998454553142057799663975776785810785645151240530767914413625148217467520682672571185023719935372918129936765356600227673454428623236995189691804827443713127159191758677754012769905259399074286930341753530757662079707855604007634238047973327667129653452288082863976931456089701209735485438827242432565982209404525570949447841885076061001862840866016691923813766783864022211211157615469929774167984767893535465348249355819629757831557657179965185217194227887759039065910485160061367843838359843448270768340837559653427927895154022777434281027414831212310071503031325905052642987833781698967706642632294074729166436915639060094745692106545315535595660083384312773703925065411586204930957084659437617238930414016217214166930190814111106383573946088879663557714188264613956826287978669562525070600252312006564117918996004971036066187624725941975150134276590378520575248452078955667484624273826669692130385606646912519133576212364629997471099555793197163232701950889299122590311988730529876774227885994465790667549896376099423990493869908308056372742430884791585444082864544278134042535982500369019521671078985756016735316176992772391753571707318380498191454852509496299679518990721036301533974864645586596298156010473447950391225759186800367224785882513312574713538133960672138007907833555606366291842172499444222209647218159560208148534784726255652920195492236642121654017071510159255889862271995251775703952625918907825595261020555213839828821030889013354052775120134213802880686948048643284328252544070478859271432450830899753393391851918104920900970748561536253012385731040661874802738925699002501241549946505126889833790371542420401554499435651835760858042475582169611222390581015037311156781889875558775842874448834947776691040673336642679815215541644758719987572593296700472580097286234284160335387555888111156342939322193268548823734199922140308733659086595024765330960126858582918322914688221007511107655413043547993553276580588642388265116526946346217300403182495082789296076530692850603911030534439868144259735586492498143367941589229713491643103470166733035736362229028856999909024935663966449363469168483803596832169503044259949142564252375081230283858805850787445863183945070523719490533410333681980782943066069718670487935865280013623483785945573390003935784033647604332260339843981306513550518676465348988098432270250081889006486223753554734033622948017252829586353838328763725660707222530423154015016151086972169059308686592391780738167414652424456882977193918170388353149418634740095658943837753459363381947184351289880055749985958042791722939063082124089327644991265720080670772617010606979322998132933690226006755055588114339694562987557542248522958318615672578294150275566417079479777038526393073953524579754636430178433563970801929758538623410742871640905684727425824986485453803474728082789019830633540715473667274735615932446541129344442588520965040156372223020923638696669092833915494160410354537641586934202343447480358973447356488399431494921563690276358158986250009132324318228394538897307153753449920770571875125097543913005945876802029392452476773214971174911017843165116661851719254466283320983021238461088440387395937019178225997806241094126366847332778279745372649563800233058121774301164428345759720278753715355697062386857675661020794335473305487815880357346398544638863056157987377102823847358377430426921153894091020454277393932729154860514684633581462377613408379127448979956120425798707072022493360421584317908628234187784990227078657187691772207913735457290382417044640516400982381609655313383917571043864425419416872108722995163713368715072088973964825434869216152552629522887751542722801107289520112357635180898000059557705322491915613425164557056189679266466973920714913735914524132992084741342031238953792789765544699654777260057197110849333947131671668791242266868677298615872988629055915850941058347322576859771556703335071328183763204981919860782112274816963214664077379220780630053097599533963227262224164328841027959457573648884992570788436157197561840769150727274001862823082218481415576186016450151892504837321911482099231266341234262107451889563260408345767307243595756153205304623318884908755585515749154931208966425311820094015869093488661231121555109059047282539797293187047780993044836393385238878953279894404601912624108630053278831150602276042234319841341981491757645170273606136257551284932900111227892834398227591855905338641231149959137903593421063858393050224318582103318001526203943597390525258980534492947682016658197230877082789876357333062165489202067978091614952138272422251270493581793675815812051150552101668325485403594823871292872945340759659257199697559469042557150828551411299617585285469157410555692445450016528133255083362583915802650363510430043651018255997812108556725891053108466461033403550515400529998492083283757896036711097202064715395423979881004715743759761558413195994422617944253624390019895239015836344891694753745658826145470885662816366443667550321439158337680784778399396542912167772617537311337782009333072282586058269395980655242138411624854757343555426607648120553281984775333049632346026215277893320868411714325282201240816298214714130492984999350182709434725944461072152152978574016529856865692100289513221482661558884667343908870853951283657719043930979440519178495613623440478451141198061366328270455564164990425981591708027601353601167500026505914209497396825869783867809024023261293202848373824716026459444996349852384825640582130041700170938440040820475502937639891726404716992076152707249691177915856525863726117516020850495286983494437675534052027842071636410714518052973097242144649576662045351976936470106699995002454329409326620075126870123859210967869560966112058610953555023400658778896047913112004986985235517879726808263158553775844730985055867942599538179237076576058562406982620942295038714958252708997821994547422629257293626389901963127641934679036175687253401922054894763542709917956668461274426970349524764156102246274828300659791876179423344613452736436796863627313070331630280244679729249142261659520969046124350543169790461354501628460075333374864047248971156158023920951713960196984394001113569604273386859349504290272484279952225731963079361076900841175732926983402607729258416231508279605481375652499554363540919713493983858454598802750129208863396115809679781739632979778800721152040635723673197081746467619416917069031621576526643338400476533492802996124264965118878266737472260242319917066010778626876205560933327204996574421310886815433127148601579155617668904775474570466972388018607662951122036821399846405514611978521121303033083022510378567854777393088612619290236328881124914259816939879891297530002694495484320943949659471834380456887379514561083766872805742869750715362455041200566343593758581251098977856061965778387138821322260255087430300753894237528119138596009367265091320779215503552785521338026322258248842507595736831475183386950323952992907262937763569816017165401237081973603720745189584361346526503571471088537609113762692887312389160898365611126011118988677902290666138950571116199206390859615694986289553582716112005663945940911721663813285727231858528193080301953194284754334988745896745002731307131240274733536024435351592249178567515839848700963736961583330360824887110089173558269104678721522119015568344209181558189577492302631062864516778755291149027679132894810573141593353363151018070895559771848034136124418865847956564204500978095607316815898569146743984650619809873984155639879405489245297167045776119320503510215222470495029444288556378805303704663648528781934944119166822980518054671758519851628068789804758120593241778513095271172742321761895293256787534640162285765352806686736334527735199819466913033891642481259465112104968449476070712992066735264700411621941963267180780049215019242314034367431031030360870394247933616692885872603112163297572736970780159619953817288643983233770948655975363748163916674041845253795049616629411996150032819202622470499552841714572419803443885976686741003886654678517232563318870560378130202692090267501051829175470931626377935661027660976064958233291554434385940142868025485849832530284386302998815476779956252610122494643761598226123375695033387959412007366980039649679569305995174504564247435612693790967421265485243607029809865616655699080198041217216108535367498731003763348584111383761258062200938805653813821165286238344853552149486623253768170802443864756074762674832027131513500223338584137464330858163236984553474166837151188580176743987075017805640832767159067532846550808970780840950387086722860458542757951078401252632779231813959730331375988008653749029950233277945365697754973998207000042910777586628999180636983746000784551536179723504889900353574891277034658223377666113001509122323752541138132286356830025777206550794409808051528962587451609427625425705195624471153888158039083228868405055658031905398168618579629885627497549481388492958919959110180347759033932674762231206924435948969016695336301588370004102034289789532620346664265119044420368708890832234616030455802986873635564014580267278404262026730305447345337646272995793538246479838689336726777308310530593908199245231914341538065938686187763669182799489940976230305686918134456594749949658953978022544886940155406522295223288099655415971509541329554116931567817790376058510606030861667884106489483331211166947662815145715382892020565113413319995617989857855506154455123723446946915862225066803186016314198440205396488045128196019794112577991963539665482318007996960266128290086884878567015949491792546863788528239275523712918472717919263760143125721519525870901538622916891154388072561119122333940827156473818542871559304317005459449295866084262410841606661798815793777790830402594789440125773261720389097828356745026434256100586671480473163193855097557969824582878098190481043233780676027412153885575856770942998897933798683110509155170853161599525812337074386869855076509256521321075801957186010553479534720915566882620034701899217040785068342525589213858270532542802068213247141927126110148338128554939090136578528346319671815898078914246439833032942256350916489197486353954949910992817470736950296032790579218288570492353315184791245001958333306797070054817356959149847840785489364186418419287186760510325269349411626735221835723393877090144690925775362978323226709368580863980055576389740716282306434754575050903477221715299889610824284421674681170863590081423620314735853574004919251463463943305720782143212792018121287305134683326896081691357425303073440259906242535220398138104242709186752523187323678713562822084858018037392625621945501922937319443905631310439803471521616166912752886978354899014359061130256977922751782234000323386002967191991896720882768488511179582015133425464554121732669335896700971330305960108009632078222825346859483240774216363251502979133339801755020160227378506099958978279957940075463192911976033304015529456267289983530281469168635208838747254941549867243396546909937572288861250919837540863088187397052265736977281938968927971990249632260718051462773993239760424777321397704510435313521350850367275507487176607842014104545463910135243419106165008740916576890653915226389310252938789596057926188629580636797040921544991884112518056587660594951351877643247277407681845786929194121234114368055863007070354002746696317677737228512472558746183465780690490227883929467524230308431933542827157041595470352319854131029914299063220573200027898533498347734858262508597930002793893424197050885623796027054500997697606868198678238363565673231791371952439585002675991582222100604615836493506237593597948186702305153500353055183760523129549023884653751699928879436510972974609833564197542411901830050210910468285483834025455646909596444570569379302112242351497386457000459245515247965725155913006641240372788537222261169484632075602430184162827179234513990542062081891435975181497783208816100914736599867284626235588970749110646155667458689354595239309239392498332735393639443046609418363129447523083874913362621607337273711009066578045822658771799026514290237027158924976298891171642795154120577520731829735529511326742007495595683872577673890208533487049986467331365045873593698731843546306012834368044304541962022845039453179933543577424713069577952764140632698061058680888729530197975683115516288546549851758934916326595876658143869149045847749445375330488004091023915074166615702519730483042254304892610872241770574423619920623550926193578550534847099767402425086353768300497004991362954317478998740128712700392315056511481604787683491010668135775282050434340965390042773666524121892835902085939677558532894350520859134709963512988358577084159328411795928455115013237104704821677187965115839077437311428020303525229034730728316127566181146523969940385859399744808016034533215478186606929311646844867880545554717607101085688982640715903940656529801318795806260723752591912296203836045242714081037090837109204915269166479822052157778182324816433431877482907772970900655143893540849347054428134701478745598101679586083703651895335022957241730083644748136983054858601886969862984954343990990417390367207574268660997207319651677977342998826925875921770189008971344457668145240511422513401859984010610208274154723881025162048342819644976856416489516866687074678278708804114896934407239875518367089029557223548921863434942341693417443898672561146830157672033517408318875726660092655376624676595494739898180317128767229168847827508406012875934655132636201881463102117735962746717868367161770866078241846050719972672866236635864812833048858364340122390395215208837965856268998943044540895364625044688830751285073822020360454149417957909369639254832529404453106145373554274094262279037618264485475000307454680782627246892432493380910529298701753853582898849180404079864818924480079610710833456590203613832427378693372246111992611278048599337201302188705878858170306751034198856753695354853873955804805031294848435554519780452584530532048694190581781434202939952807148096199964365097977387060069995533198865652625347018372824040071553786582636974213721995903013236707651669945061026348160707504311083218495771853610515118538694293664929651335938790299554051289639719751117087706938877949740471144652896726022890344472182813345951579163327603744245914474339810914690020442386420850734599988158798140691540442192853417507753343737916528272978659192955283552680832398529892876348614448106785254205122517585367026065669674885956832461917375820863980223396996989274808531682107251384000613549179097515401127350117928430448375967034815167845186582623799586059037697027731500015641913871052805000978236554464929947192544185585703401698890403362227764551455674520391860891571810017570474734869606961520146132226071162058626889795964110520968657166410767119587939767889704747203438989399734372838576895681958008424032952247537311002507905332500336099958301386893960912593349954356456178013566681302329560095496039221250656680569539547821795678000228053381005675645712446988606955218708964171205001041098697154492102778009936192946564138814426528751131238120762027733414321785174794350538903126763705862848549375872887780878074009353965713563030289027413475222141359362072556427595320440582103219037902177678628067138444088508676640234991074629740512684161791558220132589253768482678637716521396620532771256157012352240601091443663582239116781343303260181265636323796282411521827266711457711656689268015391938827147942014674420801670007172993315832470516464310632419237308957143434207222489496610197719662034712468642446983045125560350671359819606749134608194491727294750470518804506558967484792332915923002367070084687282753262764024167553955641656687704032989260978106245556315608365316660143989856932567308379925122277702205452206799601384887269452314951539960664810270114599323103716421417725450936577378060851988545016742156508325983561487101872956119376103603916696896532770075620817028882547030391943180658334313580809797333549093381577410357298377051504198223539795318180305416842084992055403772155277834910788532121346567848001324175794109021568592017384347484492115141969025560238111282563946846006880915819707859187115869427851673080171096139965178238133404002893638712772330212419963275748998577640561979040838641810702693661868355721085688294503420733121472636275219069365544500281392757365945906326269884582945384214823262332107533187160324811620425449652302012760545893570410856777902427573608813713291522337138934049902891607809942520012619685448043306526727135759042607420015478639063402851415382429446316678850425887730831202074879330813710742506087954769331785628379149878356509003879889477680534641462672667340978923852042857184853678012105574733673321351239183394536334462940907141408126872913312449042260409770929027247651099171894588783758778221266866203082160565240887997412780120033347830107329701012456668801178845127549973295625646187739554451585242349003797196126599727055220715027175038424067652693265136286734111765498627251566960343234260905983840905332514857820970065834866992136181502330761099980749600682670257289407337938126901255286918954174625454198969454356952762322680357661000946575441060308985235408720468789840415092271980727521590876639474164451934739530541970914627253639346905242132801971831998561760831850015558272188237628797772513298742081855147316692461089251021282414474083279823023470366938989152522045401887982726125961297057777374257954883328142366907285031859615461201701204599734922513448514410016755094420266904154182403234199657458043689258978039526474816497853783703207097785644644746977646530653010220892151816875001278659764568519961409292028167949260578339678258140587812216965415850098942875471702728603771227291657770503583806331784759646294129554340191541223912701191989873029709493118350596015668828760358760726982141171216032589865581116017615471077894561497834631537346262344375817597665959315657800697874526984399391891018350387064890733201965609945684682496120340863260571972115382230438983385211294154767612208613342882017077716740267463169442369304218717993964695453730339506797158155319093859037767842045631262773322525236209162269382205299667095733620183875473233738429608165064719420077380944088376024187149782594577223453544808960837207343877905942102285227788824350571476301272577619617194344115344617184822681448018988690609950808011505179942385929071243666472087235448963487465591574836118151444601455735482706284843947690637792181296406225679478424017310084475257275967035967411359517298628718636384030677143428457549885473532906643357721247542652192712938606629636027691463947803190385768570556400085525858751295385862908770435005303669417697675318354637405823625351703844680042854733345707246351514373715918075699023372005795641672562959514543673673938114982681202708960104662823081591755448267101054708693549496560671776294857024044724336830237533402101072237583766717419800004399714105939553051754544202576370485249356896337418431196500859362659640808190428546052894705821108529836923457791267210944882344520409754722485292295305124959917958275679626995729229816497895168365490114771414112111191020164623791448852581082024680082992986603555564453042238925583169651237098533242892854361058304850394623727171300005795684847760045559455583216366424133251219007788519626805428446847239964075435884242845472505833078162997850728398184073098641789510908290830318453068663863139223177772693379103635073458211784244073586841135608148615536362368681846674390562782445900252282180555958522620744331041921247515906729653949721364338424755871590880277590238258647683284716352896241851988958558055957858451135875815753677379678764530829114378211657797778670271697303465559520426767838555133668681654257536133971050538803638887589709755465193957845214952995003467840041517366225103065448902103683053018492494080878642960249899724942386558622789890808337856606090067135246589755646228128307208382514171311293685189760546032383533700101869234236211799111257447376338003274994829952169643347666374350268963017886916799860771769129602421588748394479429782274570587965176097806947485179481857831262579987554277936687682647881777258704205127427266906947788676860373285481547095919863742290208103566084863330951583036469630796576108030510894893292278372722395315212748085476000793710190716087791098881612319434701188933922390872818491190064321614454655889429132088846139350491844358271792303233292750484373553128222950056855703166214957295099518943670154995042753345836473261507850910650065302819457545515289412424527459065329894164732868340165896575015260471730542332345961040853983019582457693109969206681065890523749701345732971894611304002779669289717810245496815236736598738811064340862507829081325543904587322767940506019850067838679900710178177580579119870026198977121565973758428805010689087585765840488318678602137015087528000766704784948184429512948768167979837071397334843942333011204711861337931106218004587258525664166823498175750564632885209853017823831933792677514896937696137721334194535374650042889542589471473539362149770741224402422897407603075200582715005386101217165172470602520274410072992396796137834295186207743031662734127768211431052514891348138829551282961714360232816741133406517000350749592361016962597513170873099916465865916909553461117954323640161387416588501679177007498727628292655227645989486113960281508541237183890541720501361804986002692460519916249494801897117167533817441833218691332628385602814274444570335823910730087150579859144754715215429209937512848140712550776862914315698755457316419717254994736387187154183096780729328880032959630698387518081651355644669875214207158261682415537303592735603849500397503046638269628138025734685824058483362300964361952036981426195020847931257236942583291970609877655480511903872557518653543928965243997947228700776154317848854437731219565622537395825243951940413724332718333388891334088357980506645704486023866973282904563096487677600732570867551977950233931401727283812777734828669359530897332508972617930122733850751756451803482868698951543308298574192129001526910945604760088283851534680455140606949602384248959317797799075137804317618023449306901981902417178138961138927351550377857186140186088996281693814944158879125328850746072582693479846090336274609964855014455509737280803364206046472530543751799418184191530475158234130627483158494632873714638519165273141415629955689534683312256223964081265416066509086922053324805139311024012991031649299056763449952822959662400430496865330446343204132672055535406616883966611214969873561333781104070440597881976174485036695717031296087410649769680818312982919502905307529531137346579698823597010793244055408961260535933572939244155427339208831509115625828979460262751906646620382601952386692447499824854704619770882743814014778344071179217465290944230241026807074942748664488978422045836082966975146462582195059588124097898608342963178709476700955247725984551263318965198502078814742022312041884820984906641554775120086749644314166943424105112669897829669833862428150830586115010336960816582901404305366706667914358812898107209904695571906841945199039878737885833195347431857672493405530067082929044588468603375659286947284580992572418948652896866644334008398206570793389514045852446519763236307730349161325065858083507623331411834394459692840508247110920618311250716357323567656116410150048043405045349104486203573523149350502525380023380144775384967809504036378520267464158603848092681050467655236480895231816932452991156224781723355343461635001458353233151910092385565388326836739332785644530053271400422465250191418618172167760488025942585034560657840432152826015645810491723321913752002979524611655425965528431780182750821772808899544868907948173961561464003254245446317549422630648719105128702989808946708622729464162431698250238931502543681216241823973213420288971993819893371217375688742080221120701416275790667693895259206446439286122003972930891760939506360754380043855855839027715277012183619772385452549276756285927170159228217691278480823670390503531287044389422118492680712531567702075481712579293848663897271149043464770233478930283131638261421487422308246090785286256546152281220287460699271522360407435990639902498531372889897296728706986485693078434377729861920573533918144707965980217487629423161153541087145323174902751264404987470993969997455991817271765196420455373404319315078677511973621152836734214735694089963966262950948935933395395876027532962261869654248340904787935211138279477877264939800477932844267066622320159291480389257322671149132709414234145329741890445465719367034712247232851613557998893969475441034380790375252076091997544214518201278521489499669044319341834165374629274536897973015403295963039867394256177727784089244848399602854930927418303621639932578882032265706374268265614286499189664715278919302918432507796688483941711469983934076413088837822967345351451262834325004797161054847550526322672813988089574316021233799319294290576782918279195822899339468376903786144561665820020922393758149971454389591265595153560032629293519274693531101959719210061213563923033022430624409454838125452698263029255462461559850570303986062094817635500982719859541627820323754868410602101820493492933737442760510635398904776556164491410392631584726210925058850574236747296998319796419768719397246882425648028690806967930892783554959929727170250303565270662017672252073815266514628574778148590347920448818077699946267796280516587541149354459941224161081307641338153099041373108627994053521685195474767583710952396498501223598648704231461532719002876153385918285484317414933317180224615745201974302528306762663399537594120469729779805059931362915790763134780784760388556022841248774260251358034286806129919731691187837151980881063498824317311710110542240858802000388488300848007690527142630773016269462632552275771794733952604954610304996990227720851916886182359678299473840453345690186646945124402373249492156976911600159061967837378026985003828284069726984910642476669541917888579982087612948624525386290123466471630107400043704444445663504860037209460279988315034836554859853474443664535845537807327260597056955115195233697547350842531389348722093913153432052287428558455561857637847653184108963325577117992250551531094717279091412372556613354776220469642947121117737182188989045782131633009627917533327688532808921003742641348747494049400253652112053644642072089344748546352239954987915115210917218911481133110133512397438973211158645988913344850966245170955108204609829084329722298841194080092830003467969986032307401028584395433869371813505801880883666236781090726920747977521723751482045453354608846200889650639771522474568241050410798727161267343542863262369203171960064544237387382561569170697018904564965252099340451508540740027013113641425406116439559335319355007533137946477891435348030332232933684656880580396564420130218995970453531230344551237204956793351871223300914794585142853724534707538217819972529123858277676757305609830200036701197814897945680523463647806114849008698787747498367743450682524482925068635715285421739428080501628083080784898793412018585649057814421115885630179035679849561527037300087732254782190081975104877013268567155334710254090782697835649262113922381093273991518693761031558621965878359961246728549470699865114371564114660201145080197751217140897277332171050768122293557604322531004789338728338851548517645325056365614421548571099268515783939531790506414199295750560708423084491002400719876959374835954385705581995110591779853129134904466103729281269207564023061088949081179577045051023141422150654856216728927092252849744881945831425587749073530539765509863364799918980837217810885632680590285481127017705785327054273851267876086763485722896109750573254835463053967607496889364900432849412667820255499750630933722198976907534413626983658651499678051379617136272370560385591873723617755715695109627485579892836367744524265701580460318042816160214379644880244549896445031358053918662953333489234199886514609334345303414780136426560151913727982148477067489455613765895938149852146338072764374801007024529016847134415591360943008785017644420495292490324542935412504729902011623285622192003486926747943832355731585032609100204191385924790628620028896120351608500265224447096921394294553880048072647918207378900677529084653259227000889440086508824783877868349110036914923775034131007560266608439769767197202895691869773952147682602770012259845487457406461153030356195971656323235968452309871484479561369410041646412625900962619497731038000067888185201020672633838667844860980188101627245668030460110761384325184632872504100287869662748856790612847709113877179165810249459900502259684735583217508812658938978231950456451344022916178007485233835109081237786295368439191271730855672404478318931028218958722258129220613571832364036973416491580920525133790223807568313036146349385521883952682976632339102622602632212364525888748518524294388216910750132665264605014373600644920200212011049088897590819468330121173212827640762982390338335952465425172869827400775358638416154868248226980297707013579136264610710500343440448771311865343818859146649558922515063578777301024696055749300517795971331636671651029005600590742870848445003951868854628526866230555626063462359214704517017161760274240769540862613695525276648558493390495914239686150446372119977403636758050431408684064060620057628169232880975915591438747288758761206384744311508764140130807572727717206994444505229114947178126164245021027763608262822649489400734707447199205284316497823709620810859739129068517686005461017845293563742406530898191954530125077549292492652825095124325481015193796962304908043468573144604350340316360746909897550940061793503863161650605209752485051735437017891270329620867460535563550943682427502870597223520084832963819762544295171642270047502586175417822025372811522664902797990652337139143183761661360438537493570010317608118510614754741120090246662101439773511139072889887517141477268144969315576764756206601313571414127518380958259940449398666086969445813785401672103329190407103956749585378046608034131877592338508832278700901014882485969853155478148800682282472295626157471092108640539450975749079574940272423020001726362167468865173470358376446043471643481179429683494320670024052443242632741416415881486121582996385371077333308920248512284457010538521668527895911596582159425645299362303033318280939134358044419236288898249919779291701542023522394056311739923189301779825356611357950996473006187613970907698134640811391986083347618009827727477246777334448146268577488455512478718618625720622776996340982768560461147121632257512029959294078408089873967386079723649870659801030348822546487195716695373292720726376428581138718480690003578667999313224041301805369307931698822174961029825896533770579575928766263706419259065122883386801434050518687468978181528659967558376638018846571913388541682027803394999688374538673933869567851810203535624840463341354747210215789177700959198992465057232787270557674229287786173714583611677813295483147051909998078826945834383325838934643963417628838856711520163213838314185747418318862460836327443525243903207076972943943889423204426704098377224256751965037168674405761520060991560029791511445481846136415446299404225450143547523023787828821045914657125830624754999868342744677729582193511738676371343350133770782046169360247576704401054459882897148658120363822623777846231898178981840700707494185265394338394813840450110709308624484713248607274643738056325498831822351682041391571620690854190162853595202167026354318463308570188912536422305756959291220811951267468151585278752295851463592234267565358313663263682913728857410074507203024766900876610977435093448233005839146162823284059439077314468664297551771711945074006940181428424635767985699471599259541615015540673392451451977283731154650317567386074938000031899639503789907761625742083979303354369306964884716089327749429117615728772250923342168527127387293979810763827838306454638934931030105936361029353248339909496762508612044304627323977874064678846917678679949053912962843563962594722701940341451803805193379254144803516274139959678733927557961110478232382548746920383014992006046695202142239760901711187326249799939260080434645360478081840927618621441224094016973074946450261442234837585710071050182098227180826931546976746516903622395018468757004247746813726930462804901309036831981674873820911651975090614283440489114425335495650753865374742951427330238434281348687454722900474968320865022885278661022004472008891606342047542691820432581530522188947389978618049515398802417615079586480758708444394104957962892239574557840792567394923891600276169470753111371854544100236765038178791907679896331559331266530511240037697027645660458583338054179473796914898410474475717432858267800244387751310267427394195988311724347470123915558191799337044621373936325819096856385736698935072988152712398416975221589245035494950963115115067740670776202492939278249448655370132224649992078114676981389689677658710027713748654808280123283956080606481037091349491720061813582323186756302976509710928660901920634520303335690159257776725824928126732240987169743534374082184583115525650726472115637911666787745154632830350512006497420504580941782627417553399493225219392496175485203533756871399208357231152255737101154429721845720846551807017915666308875403899613876327923091310091921418725866721605312821754251819038067449335734384195116988725264293047936004542455553277350704107209525678838351717701562805501703608191234222887416432723190381573889867339076434916112454320391401591904705892317242705188677872451419467255506317859714651800491109168710552962858589031186200471546668541262139944475788556334575975655193951019412371014009645649950320602919223421457964268863534219913116661209255886054768711336016166055012864930206185544861337511497159939036667481273878250411046705519542314296333731302379515832085401199384817603721536323636537279867531676662331955308535461699856305303355104663116119765773096330927114583658778668640609892010028303864117879051331581247347202181396038322326526509576896915359300025177672343059175849195347787464304628561731499323679668085218196379621356310796076732612592645410152002748582769314184404713908270839187813058919754815671191876812049756458721252519383550005764033507673227053491049184139759172985091834284181017211620823028703688809306867704169400843433669978531225931136677488737448893064354126663335243055866111993938758983302443936973582272363115418498997640760214513731225431790410845520696758014091696543172415140293153214931829952359087031478219175596720705944494703930312029008222710083512647733267404204052230277003289190924684188375572955216768586211791311644344056916760471172879048484563655358179963315119617842903943782295232653004456981067066549301223739788291883753763567894058140248809449404059055191228556076934944395821131588907000157207541291897060775707316954005969671045575044618109400824602504847986990044948111013980191076525364583549754683751144393020280891960345545571960516930849168204268109002918886170867277666961574303535835965397193985449807143957697339052401030583282793745540799158967573875127858548064773432852420167174621541165558158392486155561276029485880594766598518774592113233012198469703018573927344112869964118017912397668745351406268322769955347354485184441872752514224209662158612176514925962272858073229601721374962541691510927957415337159645111746250274055505155624271468481780280325661234841261107907747392541118742872001204711415560968761676354826984691229561631006255857593658704324884453962010594683218905878161471819110950605522231306316472377615628582817015068892361295708955673523611019658917052945023697375914241865128611344325209672232867210395900352864755638033940356207489194569935975137615890524188356580397546273783550556935342191181051673961260947325660016632327684594162156892116039838361722443107131316592369614427390133561403981016027740082429458682115770140603354097831720590478837137525472327636139336020511395763389012163744944269185598648404684164612243434397103312372960652406780469464673865181517438731584034321041484436599395586362982927273905808574976053284924230935960893413596769021297003713932735947698255204745500011819757797352823670455925782889822058684849402211089220626469886904642737187438494224738161603350048683627512753350977005362045942103031585019896605555529070745635650167137871298226019699796477988712700924961822356457833158398810003910587255511214462464073292791627017709714146197367130949776136926780543986963651645592281185701072919226067290832513610618655365409009709427028014025215228886611755330755588860751518403562831440209593134088630886479232724829821529447224390366232553612171390164293779935764123708389937366625900554638241821302327239184273653324888444959076277806145534469617057060707294005676463420670806170280094938240366542302245437787108235928735791308202915455922209732333849557999353307723636720294890192073706655754098032479803183971876120352639416099349984625084851370577712081911501124065412539655706114680982232118160260721621448147429662380395212210748378308219892511437587222519234391294841404060038625104557379953973737185056375307184476230911580580502689203835521572849531116043846205279036344698437129494779849245197518298256516212685493384515199402763214643391756433058485864440376846124605909358501667347225280270294356411142005031740283916818261442090231618820722185689260322967456313506825700483307606260269708998623630254568202380819262608276530284845445897928010055642171151409714538952681067882967957165620171452249219774512410823216555161959965077123153941922497076944649390937696560747606514494730194250816455140319966686425817714160861174454213539577077667944679602306391686929655453835264835017422360270458170276389693304486726841077247387942583501230269713484266715689626032881182725651355960671580168900318735558026213130105666353998966524556371319060842323281759981591205140085847905923725650838250038736414838712521635101646900540171336707272507097060598142958487402484542252563423239543089968451008188398752367743352312427311633242385583046539069866443752182349451642057574811388849671954133567304184373938793733879876358658529888739714634481701591040741535664523019400135269283876280274231732489681611068547582909334455191983604725072121494667349473168624354136790757337106338848325803560089007100396510642245154356233253414603905367448469923963809456168204293246091591420114505749454976586857787879606832600785351882597792663656999668608043013201394119894123918636655891495236558948360498216360676515539433708104222122690167420359041439039957648114491909351046606536655137146528487631372993077385096651770758794069450258202403592825718105354488037262168624061605104136445718837912473595330509485144914551351210114137562937947479597278311036181567625486113296488968854704039850954650589455693193756643070971807442708333042851490006121423895214115091856517424025969688407575976905698966679193493045466029858887408865950614862012015183911540604814108577596617001792474891690404022029347805736159900080541312819377177318473275255589410696139423853530604277893539055506793014465018081287847522211249008361309352485434257393365959853821833309773624952528515538705712964651720744517073900479773186795316391810405135818566173219037283515239099150454860636327287932531562825658579299086655054518094156653513065210702506498242496944905280912069507318574693853295655030095400378749735809250311583766259575269391855647630734685800035070807781562883377340458799602654426321927838327517420153269281759496787557858565590272546668009378949173782441835040758011562291668639075542195911173405555862802282957552936315619896071339481268214195635096610320464379228651822202981476712600959915595941282075704156761436622463631363654249409488701208241035905786584927807805635391271112433953256422646267979815193167731789741631392611349675943864194100162869706838377007009556477192349810974523492209099727709073410870838092933469607733089410514130600430341786847547669138957664873456660204118198915175819390497205297201623308853820745121201089588415825413415485319516483132415122505379877632912691425611609191460368621747410510474773267166176750948363470193653095453414953656622586055700388152048092550910521253205290472912686915853078587688837760763737976782192162590040151698894445791941461574055856090185429337245788201968818925388923335040287457941825753115714782722356114866752021588888875583921180341234523086772498242091235161440027633232063133985038680923376141801451002483280775945269010342913998397651917405677858217438031277197737122941699170447947867725976718237735341911931543623428556196464755506680532475448419743466430861123118122475274546996370988293622361230352063698567899438138898600942570552286603545202826632733322966828121899531055697364646188069576416250509566544308068432384962180172425889273094591663442374920990361186948152621080521463573555272340836394395816435385664350952021611971848081664847961427312163444684475425961395933025091947360748566306046014310271448573441809030551184964267248905217454626863802862829999595242024633313566771669208363999853155390886587373733027551830549240161927270057860780039036703869663945846532765320888584862523366275780457989440044252498009699918144697656629984852645464988146609387923525828120176577738492927137295696546609096421240728110522276843772310987551757443523741182552511816654263146619989195841849129611178850226753812205045137792527762457366182270065988561071879916031997622022615314468786038164145348766817679837461051989969091071172980221042567518063116563364454190623628572847439279218069728739319777041519088888540993115008091845913875844370912048449094681563082751654174347799296927962231898386813100884438775706565369595803449705449965306329124840773241561821662535879789693445400300629937949034877704895153022858073629122204933638149713134573550997343058430147636716262293570575944308082486765158970069049005427653108486819206041961281222788380294933715815711894248704685924946793158676754691956339324748021731918618756022099656349776962537000831059015832793577601582459978247053517779405566336202091659876883051458090470144622566035503795273798481845601797852762835475492613457890477584842087117499719758305259946343616874298886074909982168047516304839745906162763637827605283725150491516282864325334680082816681478065050582801171340821716501308907309737704726942810347246159877911893626062916799264422128488552938499894087805758826375784304316321668653683522910280260783906999338589051382849059418531805004550269645131497981497281606778309658885219114999827989075493491814897467315224316938107072971290544316692862688294075321957257522482814810853337350569200675679085644470937226663384613540495170023195278692683803176947579943755527169580936549334916529764364345405054014535463143772905409646434686826413908541644873268598314866236832868450841973176615487352142487093029407769584571696374519394760805701979337894795346689603812222750199928657401216373776984847689337884359026361969455806769026090180635790970828768793839414152345980899145229254889675672884840118743601660879017017389466439285081216989494895153347502229045867650382213076980151848594275150280635326503603211332352577868127680883641115352187265360174047270876257288090755341558874942032624175977692727698050313325407900349243675222090293838369027632507048604739115647284126693029308592723197158395869824124317835601563989706590221950732428171973379018292960658095402805160263460784918133659881247102271528490018280892746468937735825907455680531346755687776816449981940387996488447802411762107573096963267902561870696884546857823338647761766657953448343546264306834552946025286942223866430428804601944480255921681909584854594559808835509858596201775600578861291263195475569744719109478447557324253697750311588025048785521201320158655721528650313406048113288547104973815823772172407994473728998980987745779476607956751664225937610941750346301249461213318190149042370867992161077991916470452046691520009208789890180589895538625060057834575624374487988368252495748058441041735005662650047594850824117837047042526430403236477417790994626465092373758832782484260931186252630484833254268157584950201853881878107766819259776410855537914433747366863369689515918662995710949097109300590778590825941686411130563838528392412726911049541272850549992800683743662532199824627811097784556442194152174477832893995700232914501718612588177259894559945273213895125085451630019453799665848073953007418010757403314370590703574916527385306891639133530002885849386923799373341515982077922744248644262835457916822961531091545611220926982013605645206196827327512108808887269198648250637201254950405470417837521517342347265743761399654226404423526911055536303524739490757337143721223340781190870781357247324352638983662145270847379952269190423985157824984673945096128690872638652049601187490942494667000636591320719884023863355788490457181428527526422689155953633271498331055219210596993889304523060905455310214420806712517016922657186180049859194053090365533468602091130137656075870238212018875189509863121139199606711061313668618790521644021213743615613564139931870772367407693498040991478470599889250986189140628836231726023662888456719811277902043798751584901723603624429802792883340606119730185960904981868945082363862510933893014969283812634815968597162193306226123857389587074597875029697029268539772095439790060297529673483733307187713905904140531724576188869508793397420282434258656137880270193670359314220686325288932685863450987455805150812469052602446756764432080096160834380973535324486973331403082605836833020737039704757506073525526239051132651889489706835003752039435232254711983307840249744184286400079256521931089633205587250124895303378511004200813513452387587359285498302333747145014356696587541352039733662054634739509218425472973938729122680596234413665474860537663347076919736194598773404234136078185368089279611755387511573637647564378828136640448806387169219848800523355941408205295885578127151118809384077105783261407284251709234459790082715506365937867621353234328775093612322778824927137729101005968900275607771663910504552174234497914651402443828840463221119550238374777608239599669229357482312307498879584418565564915232210132704631252312969976737332345408383287124438435184783351245125005042436669101595398626272055235248080538641052119574319764929511315450649105406258023677966977405579846081076784754265667695280799902537715569518757675607328409736430296233846184206513276657235309152254416508754232239373577320953084576679944544247332629925760108165096806358157997756573878155969874996776762694509682298182539993418238772481744519441915861717371737612781554852065136563378307609666943201214130277688976848554313330345781057770559555800066071477094886991880475894310975848169699823436083930950069398522820443326509323754488524844427463082081203998117902206646647725091792843180671552287214698214032701286026114868794608143852931061053711420676194729753064088441174258550233378600066535795389061116315657566045554349843807318985120076626340219121586007567828484755187293198042856853997997282327563331355852712414973064169301095518800348616336118132529617471291280523843667116356550868369264922817215754705008504280557554044822907994724197829961556615135936895226902267707213645847624168070282102773164458191076881907944306964184025451791941707860502039045804746757183299708713326214036303269451546684516559588317448422434351327603867994456753397324141883790521829912437359466938846645513086363846530196342747897155548678224564025925684787928352086070777076346905059367731358274323171181445968135523598134882037192080350619558560503242383505817910496057803426981350359900784492450352388549193996268922990200928636607333305117709852297844821694140577198691776660532695941065191733374464695745486600368511026605854716187475573583912854131089264119113614831455961475769401685990581325263857178255297389453415627935122595822235398386418063165861919626969756206560103711325056335539376850053185689634214276060853080338579136824590616036694443014191112851259481892190866962290984253415404727445583592135033242177474808506781397498265364422617482730994460131162806068130964005119533663623441078108930897726035463587733637679170148095985357705710153381447820252306006928407751646511253409395594707872486605516443963271297614149770942107678150473020771054509793817366225497931357685166939918572181032863216344892142891500533333883948464730334014617805260961319579750803324600410878257048455435998770925181309880444444983093806044866403333884960554271558070332367770391265540517505363386978616317901586436528061924028354081471140543649667069783426194306642149068700590106714691784722320664312592361460248366077527454970537374409239162341621315378912547077697784920800339178034698249675562797679300196656722385387652597486526272870030691003746135290031810162201741155174356288411816932721750634254891125629494034372547904699827183168809177838684621014600870587332555289485785038941037233003010232262202483381077288345044124479799149227339185090478145085571362259064808160553299280057305103685683146858503866695368170043693448647885181084933169580261174702705203000059406249221274710549201755050581421188075422049979159582726959871304154477532353911456557575064829242768957184159190950157337876066577371316860419932335137101019798353334088578903802976319452522231088774872724288476382441784005104817142505683495996294049192450019655839901224367794180121755269305369758128450863718332286365774923311296614943645126604502137110186201042273749695911210020203250615720297277748285088576280619209582469237974689890470616566382355541776562621930394000809643231327434135599968803138227364648677054330170239064244555290093665411034597112401031859909008797942006855621459040501290514827431694248113604593833466729201868986965358955139054682023544756449596761372530710359421089925246997275286166722283071059208182219980767314458657737583782530617391191992896033074557789333024329691458990061357863268042315363722392790186935233410818401728781315122447082142117568404398498337124751391851759202687986302672073528347808982640843739096435283623718828739286940936515898492355470397474305799236720150027235618614811051738644093613791978223990432186255604135236134753412222758219562545943928726136710691424472255183374843448919389397472652477655379110964383304757059338894573071698467232122267163003005538442697986041323990013477676552523690981636544395742973225413274349744171484550742022167072079139894074832160468397027735970859132170345717248459480950528433057865461441342077124692007052448702961270560329425819960922205834159895555919981917352621816457662281182584564494979215647647152106982088362686089460348526915144302456001979404718359997752732361314063290336768395269031374076346907993289604363756128541921304419404772915421582161032571596747446350199620439592393280928219018616127346286359577804184403870781065436348935597363609178107154999931172414634280767959364631494517406175281041279449657920650384135702288004076058920767528613021853382369783262156245488391374439540237915306392626472552974389548937282893181965176806540118214225163054977881881780977855772063379986195206306929562906663975441329946887986948167265595353993706113965206137354210050016548704381841002243688724635889127565636761636971070170268595242291223739348467256783700402981369466155721261411282979078943801584924435402392762094875140654269807010561216755799132193918270706651744368048017514790091157551063455074006267092652975055637262797760704127972537138207664784289056994297266836942362239088202183695157478835596602968106249125257121468018521801428565821225142151629997859624043477127535519471690464255252867517872287929178267772640580719347486915597964797041859527292283042600039899680121325406805969490150560140777548966226460357375541499453945060053812996373956669699458065727711483648533916319351366781221866505545578772132302727881861816086644929515938812878932445947600642565173834993739970947367618180638660584999827222068794292011114060000578908413226971479911276180146752502971204496033154052214756896482705530531928878097051781973334287561098834687284235414750871636146341811447709591182339310439592105022490290355114532258733100534168565580735507402907684185949470283430262527755928743484085710650733014718164059794323741408117901395708970974522304643586680207536955938530881561451579088895648155026400789363168085743931898664352150220029203754225463260832780760237747209920661766054809745784987551272051650078014130829448867864544493112310491371634252730286901109891411593595030864933764803033424467302369135289402894126386211153731822950401740101763251836501397393554341432594411616884490249832270578698812055186130530020435990667578401955253112270639144475398856785644980960742713868692030355466185810454980632990723136112545042797118161697355867181757592605152348962553605443044719502975166190548813969137694433236433159612638993750616510394402546473767823412880983589562656603408899681314714158879010372096260360035212171539181839828014786272147712371781181670972403803998402121307813340598517211807617637062565000748456336041853976554042615175444259636343349820167494482360065877491561283742709895019391148985270074520524006230171434640937382540010765524047256102684356764915986984047167112081864101621419513104281184833794207553243130553726776991447369674528329732890669662239458235938901162059084783666896391367563413514104192093438135033575510847255762700336453671118381953500194698595276063813403495124914249723208533353918764890374069294046802903420664603482451626828429143932715026511110444885160163327094435012027217828187125252527373995495009680390410276599253154970304292150210633373351302991272359113799230450168442795063565232929415650781685244043625589717536360458906807912156680420920632530793645429067047061656059016124627630692036396697431854421849719487728372728732699111353274307640210652695887581636529265726325758113943488385232732182286674947605579474924413166450101481490336944220807899552004096565231611085585869768864375571490157074877034327695803698592708190388168216122297550650517351292189459464794005237974605492160602508399160568779967574228800795066718665207270687015067962337488334583685457540804600562532864173868848167373382985463824160770853108925605137883261507416020590173244223711682453154973009662722153894542061362188791667466517016977048387229240219768054665349709820525347317270290348104393262001862288962507813774061799602305670238115119635712121658960257270722214624402479844472315778882171409645735915566289343119573650704127470573268125190140174679772410393897525732745294767909623325506726416607076780239560167856628379853378047927464434138990461833908815646618910589049345020054596534141602402358245305982246235956520897394302249677632950889549007457085848126375764617905007579421340231523495615104778167040789625179974169695719998765419352290710877598395372964484613262621420642772751405152684590449882564379340387895162208252636017875399800136110943703622979806554362028309618986539483386260727813692172706748130327045532286388524516248430035827743714438872834868984914797386114891339235030043456332225827904634162563985442487493992756809610226947899825639854733642239394682862352257598313413104874015335354225441211658559801253934406434033480245356434206053793853737093030832200509993426071976156806860416786084328625001705912853147230110797485066636111501116896925118174183734366261536815858091853334839595462588224459287543053613712586334841591276519518605158186307094303800336877856628829199486737718463564737435292385251826231777348946500302495498401473350201951165657703980027536621436577383263034851830919892728447648618603460988652779640326696192751425941062593076164801751655678329176536404208836891079134503047347249012010961602458942080777648330476581528813980886997397830110918014058435015298634995667268424350204114184255377052720770888803416027467053188687352217606382677101592066049902904305687296791336396582027464089279928605511119124247066499541656373184800693955649833747126549079694617447053559782787471276315916384336963178734346524660443917943701162572884449180433068376869753891277374278861466748696509053015958861610597272840468616775294104186769263432811056375488217806938698011963660481459176797537023925125848023426603546976115339277454775203536724461851386818759419321227208269863853179925198080509113553142287862871573254872111796441701644632057178086692757637017756768824327699442848610455708181738959066749248464476724517345912507062115184838972928242982650894764282278247530523953881000965349836297536512842594190722051954708986408546357391055614420623164270974951926558195017867729624039241531389504551984034705208699793022257197300282377415610123586906037114986496538476027461981062835332535147527756522990911730371643424721854287398951674796954370810213302793565859765710411545031917706854792482593979623066095533683995603407381629720915315575231865100925766985969555148940050988999341958447500381142557529092680390329196186390813292602409616820553524918856804010331506313327548167757595297428678633661890907873764826668677999116355501648459114750841042708834175881156708152530509897575000180379562395214689071180237279312411376492488835763650303092836639453388363136950187760205031084414211637660842426067035196939991568210870839894113084139437309428960491815126055632373762346362227551811558302815806124651079178020070533216411653063582923545910771394260261690929928218799882026654254754595250805806587114308000888864016751612846229208886767899458512126687407582126422039236389622565232154723734199704743021734398138194030975431245051534139858063021707504365567130208104831030241124126249411055292496220834486020037221373814973297594652997233239468238725404228421851941566203665741827175789855469907705950386360767908539961304516010596019023613327863756354121000903489923118282114094339358525114248656110229820152194379973429771047213028575407463845104475612068862292015073894120978600660953972500955165071006238708628184243268695718765445952218727109340129397537536284406375598664193409107806647664273176699689614045888578033102674053084557251114310751417385575488727299483329796184667567461168236769225771698818762927868100406862535004114689060853631854090718327040305070414109302360378695580267679501081071890638636975497417677472011315908543615430941618151819080381972776553035864316524217567566798863953715489247417745500732099261580147503066872319893337804607806397725822989840166492897291374615387520011125512905582562494491895984897860834625848512214218298842632908800884556316150272145291707145566980080666377559492752342782833463350908247525071067787357490420644866682459279860640141678549171747757983900887418104027609383841567635277227366067810241926614237702384511914181097391576232486467557884146821029815922005081921950098019761774085754506145913584546679742545693180219159777436951488443864688740485803469992017006135898596517989550354660736723419039688416227468668874566067339801867867519413057865113230766089461738757776546678926973973201000088342585250079227447604868036101881510130745302067933240768738032966789811121853456541348474079457827703577679958197127225940551582811537276268938841343241029242361417898565853910251082642970895554404445618163071745900321169954824881683483119682731297894563506053314212370811866386450168911899283947173950300773728718850388640890046747324149980163588054227729109726079102834438933772938614788054785617818195022988945526729450904827435224157919823449643344803416099942069723039431679144657898249334533366306407673598326156417290375052059091494711909237836997703112717378844918597396998733469715168279164862924096312066440874164721830041693609659633896258315852196925179451134362113252724655695689035773857808188488166734782414354347261215734762928003405744012267547174997639391039078764102140865956863472361110222226911352812874174918350554651171917854421636199788723042908910703578904412927370353080622351989110770340369371078967161806654629129064667803099017058332702622160092139508431664730767302316693355608116611213415808791572222230982488749593785955531645593119867073527597861444792298021990996827597816609993063040833219499839487260641996391101401008934348259957736663929220103733568823618946914417465816117422561868352146300853110993166558454467630149259209892422161670173482891406140461170835229936151330886161377860511785075113417305208643713877915426289319816073243774694659848190909491269448352357061095862902048185542387064605646729959592453846718214996635687248405198732397377841083265467103285475033824362547997556871239628452792054522229178430852795523287708032468902891730802723534089378137616662782342204198293335121501308856727752557078214237997860334023283057325533935491506784246440532098126713109526216139956428417310180870987463334364815374927814108733571428774009735008906467358380416429291780736360522723379009727859064015347484130407581370546698623849895799995271446584449130284793854095671472106393985359125182167260051829487765313490355311601137614757424826250651820492777018201132881208090292271823537443376434240238631925750322535739174164830009744165290816862251585792924367041458647343867301056327901239919984579496536132556841288145854066310251161413682668657948932193825685117480681229660324575789038474913711632255525605641392103501115395314624727110356480857807935957169232783895002238966844621914299446437232942685430629041167809067322917702275849720030946563726601581490013085153038455947727898861802006943300938627743027099822719793344205423893104045904479533118118282992739702755371125262404091044851096004206305814888197616027049502356109104721969114845328328363413545150602175751049266531457868765460745524771705066351365562575176114494476853393637717001717951245402708242610193775549900157913690435317004493443046533257015033698952694809202518851076084543309706639388115384923975433040032566016971116234045934663617793469604951004162354252830111314167787637837258093990760989718550129501127249031411250266751071599477350232751775357582879173376024051090202863489580686323041794677245543661386541556579715954362024036651633619769790980469564140071963520812703133120012822128345839739863617198761760412473055415260113534263275156629572420225399847437908547246536899921857251832763111962586160870520340167953502536248509372852147959211839828069892194378415951473326601471595652502915128807074850536250358941240906932216371898628646714927463812115627199843970383775426257596913744319572026065817581362161804677796690336505081442768913349240041989469626365526077671738200329730737077952105895287258804632202394223381840048424075435246047498315202943858520699199998160374002202431453257122425804704801374911132042169054236271343070276993362698590211307531198761702697938764952052172202151768690393011477499162159069695749920941483958462515734061316152123559327141404600192534769305105205929158216486497823922992147085521617866655813427946235605675637173649822479071706518661066087922487191739600075421974918039644375288025895240835293776947815100181674551609595299912573910845012926041005379185209660420595844449707434561679364643161353982473245182267093188455980548342274250880085180469308909193031840576159533268858348472212546481415295782601296221731203717292944612741421391505755958959077176883258816556485326667435776384838793856699292901667022927554589377750292230754753420567406392131437217373462358869289667714440537711285584713354496953751105034135728075133658784025449891668674774827027372278819592447821573204205842606735589919766411349192347326714173067311617941515600914154104607237575292329062504262531359285515205316803325874063253836296847900092231654723037455463135622343269335715962404052841951280551267234204411716752039865130820489909599122536470326373081272015022460319661966570917240855315925506222560362661559665468053709314393580223154222878302178604985090113465629602398833094311114836757717898897120107687795576598474865852053510107507320424859008241343455912039761861865003580083551185778294482905370652724540701642675502173684319730460576697216546776757817333121736109123411822867344499989488767495087313509016255435560216154274111991829331994798319712828299158253981966955953148179634735419739956887670863076416675804357935527164939561039309501271263344732443645542368666904584635638052289111158567754070188452563974305416254410311045539919773073984526163117353977627224114906368439634947353028735903990590589247568449621214814378555382077033059600903991098036371434623529759095923471603175885500685219963004877891876056092509011103191540933315530455748601687622105905029356655693218421057417474089520068968832819326711040843412321833736202991541409910668329213610887786752039507556768247921712949591277968687968397595478868364827832244911023561567618542038298942235711023674865597376006880672556427957053020750848519855826879176126876199072637456315140388357880493656790203638133833329004003052462044129507708236818373879273606421124904767045269719589451182543886357259099149250094174744213774765612943809538919336094542365762246912552585645789400605224658044252003678614767380752763975712838942444344130079049018556479395213444183824255392284953837291729631951730747002175717526207235542371613481141632323083710483357883942832432546574540431843297445496110282795878476412494876791685925073345953694715474289664216258293525705210526238035188185178247065643392602552168338477345425135592085665822128016455758831508376178337384427245637292742673164339358624562270068590436193650199659078597576058699544280486870984375282405719407926264265485379564287241734643619922637397881474186901620972037486605999805356774649889917028816108095736205904270434462061595386270798357785625678086894551200865279212603980384341805731634541440736227805603162390070355258673713581735749623154462261932294550955425199422642353573414390160566874756144282853242132922484033094854600941407658424355897636568690522798961850152479336622292263742022650680543827327215172538485161317561659974039592380988322712930634710118469856386995270931955392136189530304229356778449156679296646753392512508572353845060293292723948423618519602117539929603742097163279187244067674927492209857232305366019703271705697641402812852562735124092033248517686215542759181343003649842603875284493631086071053152470372147191628696854905584648814588328891763637447727375054010305380382041140857491999681012414336302794889148083507543917480161061875104792010285494871953546249604683737756401305387796733063692050852527055705427063408861927192284834204548046020690399579750990026041016347300820454862197220225000074189064748509332042705073732840005858111523050798277106514409945189843888796982116613394018944658136535711212792931590376287276646728741525296636926816466952746162964412316996568134368076776824716327753754333208742289983238400194542716700259527882515186843810497333416740147341152912014698980087089320460620825971419355795923659262451658051294671132855502814367675263051236417123116437119954159367732524788740379026957390339003689830016003581620545817834347753528870040789976051484375042713298493462043684653967665710679913853457684043916217198554573449746611079755309949401021743042752631688254107794217294971961894252701300869855669285211991171367448951275214209356488724122655732300704506329887666978644897387120548435560441599670187641763051140118766159294381821722487233207980842849989546632740650844303793667231919905586161766765256189598153106332393004934161124154481829778463334982232592793045534556238697706393517627974368653848293638808736950309764602167879128301935486562340978986201197294642786567864665145469934383064366687333352849585873876525535919152929284663242041915596073527715210260053436420910626105940316144823953753122943407267103418952537985691538759226414087300321188797783635935818551113857481916118999218033773609797261841372310664866907055924282506797457290071523094486214050810346730581812606180827775271611065050087489292099207692622900158208746653314074681427055583633179539055552937695640550430537705284710619126251374422277921408838542947214778303716084384514252676019052481450225420104757951832865931782519979639919390342948607791407526407061905281821553209126302402984330885609487019064708137690980166149446020385090973512027104553064268537195516255141855912740567389558218855929442202023260676636928225873704390188510252560419375659922856596696705101305970732444744446532397531971573219156315025983808690815417089393346874029635265869419763613290893738519832497163474176047990399793115313150846369466415851000872836029191561039032196549582116243422942768526943276818536013109796172839000478040985244600873428895611159036691071576149819431576918282675108109360287946262445616021415093458629003705766863366457271973190659799642383179368602960967134119076114692116368312928665948172018806096806096088438001931968160184240491947238755560399780399507656958247652693679037373435491760399893221691243876641059540757334980007647904523097805051497510667693432865889339624912533065144716757875708744729276139454496191368758845385792179112168412038470424789815434124559000197973814927639156936012506187451721329160871381877249964846467747475928579835581879212041623513252743739845392517415061029951354583898183106371361320107800922139387255475941875125240085861581268583883021496515706617281055419677523989431590117296009645317436177536001045411614271128931487977341765295677276476907374445348014332482181815250878582261068787669365680374334236921745661882719498588237526417110128212681328973061296219440064203113606843923574887453055681077987817324330181947390525860153648420510015996110661583973031966983990277543648549885303349324316248383407264587475726854047492675391249134641191980295523770878835228901042497048533017450879729291916680819684765944616667354848311375272812413515761407389658585425670580653912738571732543157732523836143251822295313498058053114855935832561917590191507964824655396904670390326467888605052135218485268169923492587544052329864036094012424324213695793996191431186874323074604011001511547422123924612845147962569646946798062164564381866954427698842660828513819323300254004785092773864207546123096876535612541223139255037236454127992198118827178897455469521869347200504149839892099736643854009595388727480585658381530904576598299776136032840329923328479098776631102211812151258202950369453140422608101322387089052323777786556753459515320037141439657350261224680171851396419810883896089278206278915940347198237601539566762820308711902538278496206943792430614763025015308538455013547343569982765647176775146291950692403841891827574243328621319799741810238899891195579114761264334769335284581067774567646773854640791527546236447137959256855920927463305938178119937317007343229900686166202404721496442239478842400271041949443451865688733617455181658861922794205832500242480720617317990567877975464373370352992930275009814792360022922189650634133783444113586953129406837544520940917996856761451520963675500015036137420929956459444037916541502395722272650928355351151613298627406738746603210071739634608973833684631471506910818928770568575683144658754218883669075960892739840876009740713713321745719497570103847004736995663785399297089306695095238947531363241411794634369417649868889766154335347593104377049683120715818334255215540538779632903167447265409152304633923231400476643353849836657770872959419960226831131723480295997065754264419703611105275991052922402464176786170022223511071815405496162838227708784000502644313450164998977657832762423608060970156151297820629827524144710721841069772269876695310735751486497311277353315561126192919388083524930360869473659765344683524762374692760756945295784874602343484335087732272941475824874614246571886937740794754027908059875628109995754452640883396168030180237676298782276529397457289393924623861589158248125497548126091262286002619200168889185631340299900524158595557137939649372567344036848940987675863037836859488716221305603207994592903235077868323977641660441058084285675911960983489073947490872806214807991725326873203396264609303935652800266913579626524989070305459536320294569158420542928403165377386179039592118358880879279354868459221914619052116948085500492429723623582330470253194365928552551844558717919980013176211148186197935782166084509238592640125860695391749896364266511896397563089981122094305803448190830532087365502999237538731800073369329625788229183128367679360343657862800053897756353985351831218791528360209591874172495182496864706289226209738239336423377312891654185684050290112008111515558200501201709994793436289656156480224797473154311780928176906710182016178662562360526596854740829065333011651974086821614823548092811609286356390483970471060300644619193993113906270668496823451359367585366878365448431327791830526606133301272339462220502263480355757510220634315883694545290160719719666771888386014749578630911783811213958438606775488064488340919552488453079564297078575536875058035699916686476573816425238572951522834607331214702012190087380483340261059079509375785626975673354852116215238747078781883829750046549179763089239336901013636091634879266448015783441920804994544065632060800356646933002555570758722713227054352017165175166370825704897995462064745525150345019692353266883171834340919593974194832591876670446314730952381825037278342203178909116834979564379509798794519762438666497965056886514477175751009694650601973773579291635784637657085365064634919189802221061105321441783887044723983470723188084145041077885749131931396574057931445195278101739624223878115863301345700816878726670876612347489245639382213943057949036940598136795164532430269913156346714872172068115604815388468782562236296655603829213458709275339040060371256778119431452723762687790562534430037438159250959759803621236729331161671508118791545745793092413951561350556004187782219551373888601528966883506712018813046247050372321966224966944715182443835590499945378628569262339893616756882700414040252340683082485264319518493685848206531269757588711974148482758542157568264542114430109942957091189692063224400424060424732713513869890653024414046928841995565692586835256336689018245649887494655282846199102813132344337547390129005288994601953925653794236890925030770573423496373716952901380390686257265958133384130291868767557933641732928386352202800375390334676495155582526856124629666679511470923938991376192632528182878233302227346051655091891975974993837023383943644786907560558991754800146971724482300310362932206108595079316091318943665849707997884142913514980141822240748075715995332343647518983912931621330129151204732877894755646493874719781560125128994236530847279640605238972197167799913458208905899103082970569857093723220057558038693279226212821971566932055988386998442857022938020580994789688838553203075712031223620049123016792400344911772460814500116565242398688991694326551253276697252020072947548727984522946623574536443170016055900096719234342980373862258207666700154878392975149034846892708180591456205374605281640753336247226968448438429771653245261058266251983318828813336932018195937345259540311180542224435456030541216521267947310818532941509792934730869078707595367396322379791310033113164382705628163476418025726629064076331945430951187843616709160328285262889723354215144975623363990123149539248775208353635535838252017660517103751042452012610863086839233724126872929740333235825581446330034023739384857299298322335071237192887254344824723780726108481490252444310990244779145978207384143707778221588697576259469855493816567718851439562449928608316128271904794703991818890949306035397074291559503515210886179573548674233487725453262707861516198767199963048534770198119186916839949724129354699961512784871261987218504283482334085755935684831354083315005676850530850562091224342735754247338848258654207836678798193546803160616185857367138020091017523143402077357203567644079830443344965028119285390399155174863057501183882732492650167535190934034541025797576645071155356787323468075765559938868370498749559640642993190067268956926522739090335935520652102819751197268312869204665365247427623432592699217874927623297758973271350201500473936235831065694244443048076225225612255543261790206394258893149857653859474821439266366199284137526206044133298258300111989259761637826532320240629648277050827472608942186555352309011377343745499332721263887616003671494508206462060229528339563004301814007046809202513124886438578033675444633586345535649348726140092507051698301578702806779770471587308346535360792046926767453889802293656081405315083253432806944167978238518695080675177629580815748371575374502771305267445575403070517807192420654052174552745702481121604249859633396505636024036339750991062017298055088247129221769695871340183184953265667615401987441689380099691854655064077865841140676087155229906656660125170108083613863209268978663159325541970352564027709001067026338080489280004924188882766393721860058389096517654153778223378044903021515465385665988479141890246137436973437928282697614422500190833445745665962032338179233062287084931079881774321743227063157953548857184015523928970657723896173925068862257405323534210246787701569656362751269278542565789794722007973143499018263641582417359423982970239505434447136490042734107552199455293395738404050918257584961189421784638775542730673794246937391128103861180167317617510856654124135600728149580751713832658127675575484716751780401218865814349026519778749503952277125012064685619394630814514539984569128335499139788736732294678387385053503364407177072624286431026988092212193844047008853975816832054707259349454577148149010767992312219003145883301610695324244714081334916288192518186505921239833896117854688128217658698438875377131872251008380802134172754045249562277238001742741144865541107774438022627016788170891272213081905247745524250558920488807989279995903129571769560261882366210353659107763759465339768957200559824749694760533996847538275768179524832302015265338199076279725984079316488937846793750162736344412879605991472490033161127098335364194958168511092721745565959200296283294988410503076259420184413236069794768104189938350362928100762371340399791373286840942198790988324539049266068514916231304314514022814257445515032382155591115281347149346392402461810483473710640014326818711814338324633125842934164676349821796220659284040521452181285323789529140683848276841068242612294055985647950664722381501733186090146478399807495841418885237058598709679937413624681995323409720260588880805674793222942393065833053677856997295419662342938344154415917639860918295632659437830390812382239529646840539701952502683494247131125046160722161635207827652977587299897368359627759734851950409383180746832724292407132236510808584793118371397001910993200411765206243367170509419136217338701133990832928750425884542024918475019763884747323037698817044121508668059289265388110441865556653629066001912981722517073949563613864055192520297844620582895995125737411874419431154911562674145945962151563948891164229524818171620235474316990726932414974900067943287781165926524614895515994565909589845033983535861833783500069020614913294836471842987372642429081615734691873964246322858971850201980494643487741150114783515376493501715675736085830863113453158565529252298877006206522888933820529742632837858557625352514268496725225910956928149513795755036014910662145617197491044353097644043560283230388896514736901953374739492117199903270428366915698909762379219523835138160613269841996766867715641862401195855692958904103437571964360626228544461042885364177507134262985554217885807853280014885543119405106616305767414281575710929333427475939475533624670982148066056707510618764526869240035698767495959881039017725812354767498050156303267810853528196966927989753372929762665875465137233545282693145058820976655751277832267021602843760074575758564102153975583085345450301393392707801592436975955012275168580073038455569803168288246692361838030255026777567198169230142028818621010824529983946966277112941089732417332355014654532331097841546160662604976757138362631308333141874285789064370728113339303605299034911236116448924314023991212730948711858670276663452299243226415979886248990352867508542533922918541324413676234415675986805934754023839336161450721761239496501703685611804200999510475279427449904296160994303683415767200278904347609535721118090635810684433700534081346081703568798861258315507791885505344077383191407806824922941951895300156490391116317645098996815996290299911080625409859462891780020375695169852550843987835109279467115267848910322449657972697858257848865311082312613540515802191214986139136666442747189749597317944522017703710390309294139344658492901212198269210716161962072292387425521456073352116256284586450188473117189476386445946452699700704653005269316646914262540327464644297209541174631127152401045159310555358092526054539966050476368149296081646388394638217526149046660319096932373747275325546648744089932489299290616173670510506530495759439204827766273293612856430498384066677212392181376931372348798580157827633719894995545137531444000975221344104251968729142096513463362932992626318360343110799591558789013779591430309527487889930032533807817015457443396113950207294960508559594569132165979207640671141577147530846691727384532365043407801919340179327433764991088215626547919281003106334824071206654396356253960298000546597956590698279727421405524311791338658689801427286177951657894595579112264184892381241368129236779917105183485646946751772050988247709367306760389353375125313339165270518279434256847127426079493499571069944219030485058828587534077199585046760884871200325767904347251108865312562108186483548742696991493233933488883048026253817386109687792985107566802214605501306134961205847953884471910024658439693294946051602715958973397191136523511590223288080318264442208728189371447103566260662937051871223001464864656278333727585287035546566464340515926865818347086737442366378674189472972811375115733954301945488763348938443050931486327747340799447417865301349681155652857673054916737656251211514116378683829309506558248997075560074934475280983465860595577400068462647077366385337304116699932274738456983493523749310842349542564844036591522865886971740052891565230133620126794149733077127684416035120369188479301460458442375033906906840566092494606921454718579860722524501070500665881324331458991628700239275716488425928701531455057698168827636200671586187926408479130918623129370022616139582608869116650712155326708928217862133247745490631515270677133675999304848699498458949268633175521399114535543514046690947430317076782287968178328357672079311914869850058224977731056309992798867896779339545572445446465947355462357023313022582520541432151075328435746877889947859714632785548476343368897298204959604033059778600995468533853456050146761027711015131561354449834913874779187943244267456670271460968148452039037421290320440901131566696482395486227714206620185542213427516693181335643700996312828749036982139733074457422699681526378326803303843499707122731366433445164374592235337841475624483705258150318449526912093044840211711166664107742043141555426080502267157530136626225330486549095388111439771492780880320212320135172276949774259570885173999780293121117101121228428375189483461131942525763574412159852306317087328389895145397483498181403484570773191704898667501132994721851893271040527173918781301961548220951357322556896363707536278518965560218309769222956607540109181865958306707499426937806066512717914832144188654593792503904350754951090855140983216397030290343788416457562024969168673144358624686562823943667390658809157906840359423075166323379563014713903324503930416139417793118236960775261458461304815959728814368489758427970429266125328602981094906334485007274659446065461011546830111788591663739310463391192321952893318703199542378599579042174279238034647627084682982045226991891452630471954551003487208279097347433171824327032695251557324606414393904517672055915793120757367913733295549788021150360809632377335060400149964402629509253694163278687540603095805324599901799403255941678191273520703684324928232698348876032132936410169251655313407802788377565327089395673225132473904843195065526998623813171099242804458273814033568186292594159201280877454434746826453297712181641914559837281153480944224812492798309108837140399990483245162186690360022165921999041876761480252040841768517766066072002019190700945955786486328236859209708050899765161360510660059160824363928598389746616845520335118755549052839668936226660185780478415579796003901288945403145380511090305054184720045199227499308081350230000625101924638137670203979047314708883343938238847686497406761767609111334277557797981047382406387596458119939967552521515554055225043392101173711963948881439772368992823160762512044118325634794413691040326375044408449003456767217939124393832693804212205116607454216904272300367244833771205564969368735860132877335449400318597697731855114955451853479513209937740403927588497964545588950159345713138805063489971019048839961113386122605389865907121625124783110313134811388539102147414091198199639841672491685029870908674907559121240204039324374089905705391742889669593485293574880663693632440406019056728552166180123849318369340516606439687411231434295160126240803813584610289267038577712031707181025158791902645020674678692232089900565683279830068583489222078783617667658500121660127642445266966145030108300438685385685981765261645776072691004309909606092730371729361905031567119016902720525714670522318645706437630936845790055471569980485641557933061798075012759708418353069870456381237545532813155749754569453530714254716891585019326165872974519613270490399014735709166275878762088244337959165035632705550434099313977934921701778130036177429010386356213657075936140207259149920928485181482982040196205259196010332018601416978545177267619369726091575853917132785439379154533288961697323818766929038935238234251846692144857931422180243970018918744674256959745379076972843160194162175945428099702047403001350557204706843118621497343153858348304538201482935488272073846340885056766756191565349018880558739161748012786020978467499300024404281179563184928962743267756799573666462623756255112734284168244200957997753545974453322476481826378178126996313581902361595072653765445713248100137596780973211645112485588458649449044154161354908024349394216609467642620957489576898601266984295735103785453213899491488038697238137441209050610097591720028341691618255123122168040619839510942966559011182159531131088758285714008742261360151388203753106122766584625334845696133126663431734259269769411613844350112148501085566711314440526141222993979896575567543853923446385433080966859160508735008770860828112373735073402512206655790350297773681351407001867587059255813158132703374344765019700732098337114938400376603310337021349735526592444845202896739735636390810118752501605525075666234299890061126689872867278862204907013646217217054042101488075659135386176854973240315413713026962903202263661637418841970846862570021121065913494021384066279049251470287554491107910266567879799596674129425356760337111269370503617911017534857769228248110588289408911537099220230842561099301210498605213608759950862521713350232683302234256047924208657800282890064665082296134165032582494080607917742067824173519098934272824059156459304175248940665973272058781726306491528615967586122263005237554549177000085862537960205282731562802530863094654664116130848178808957134872465419808568750175627533319732962434544664647778571224218357713264805789496882099343091511409671842102280823574895836169879788808767463467988745074146238943125276004078201806535612652889033157522324161323221927738215353200470678775149284136583022851289427954404112926402106879419166471368344753793020866546727705406269059859844854054346219977721285052082509299279471745948481902372105972937418055950897400653336402094255108163250568405878553993951591273542508059286927974047650679146912635764995159353712189363561710902984329303159028346997131872574366294694353921112184973859615839437054577507688915516075327685589039632656374492137516591759265820547715060245389680449910676615597188385159345977111162559479760712545807589424151263697012615806842881709454778228724286165180911758692782578052666541846989887677358309819821993751061084810750969417484884178837864842463473356136295994350868453417943228999090048109183219337510433317558393264191486100192815554651122792807574311042380215568565608500770235846127770273097841497905121307618388052923909718160303776633131340956352974466462276362918987381374220421969954498599033554642075465916381315322144258237038169882394758870175957452979810060541501892676313674521469688214643925042654188637148084929716627409972943419488341580432030172420755518937247814242809790487124555986082758929251833714456704435499607868473431579142441988090843139944021297322674175771585975861089178140709916129312999832659453479789361934032479853676665029855561232089813795080173230368283609052921945104375291737082229544902566698427927809652864181581067837855252299963984806251595898352348047805956141961756811803034558438348764882908542363743987615296558499169648023381717614019531653764473398099714777807652133410044633900180537854808710519697620827900098960234876484654756999018928363321171258081932083786259091438232064005625045404505766720314523874235974151209248668614327907285308546606557832402974701459069717485580269601625384447425720835083623431237222232448634643886461546640198312529947691679387925408266959118580655590923475723206530321687485040168280748127278440094408899340813712356252941790519602378291276119235949085660633014564538951834473285126183866898652196311702310354715846279705930452149540164376548328032996061813628020645690273720427373302513962793485399607072716917694676433728992685457354855674044050506000691231103504252373973277828137126080783631737159644407900646381168684434178626191179646105021390538733112745025868505377286500350018014705914459308203189736941180820633958160559545291138153639861206215977173084849281369640168855082962091536857857495829155286148309733072604836252309171941547394029804368932498673875621816335994007241952785344408694495923305087480555948576116189760934513871658118688659947017214405951317246927802534002132842489175230497298454334713380317307974577245615881797170588874914896545983412854120414818302006387797801693294498164444770191935751070272575324285583028209246417453578211832231083579487992821208848969980382394439143364390226550521443948726315748918865355954086027189329141618618187776266349537378408075104183265952271073605551484799982452070250741173408589843824511874370448696973071581598445216254393706893922220205710945756111166625121765578140463735345628266140156592667755646197361190608758471439820704623863467027484075170262974393408800792395098406048831327578855478185904680353750374383916335633214971120192414205129053784575491992174207898213430582180187867768063427436653617528135493464239028806356175014710377468929014010068974935423132450437223424459491531659507253607461401844207491778025321635690422630430708548282984050937227165994718948337254216542013690740592452498470296580210554162932566586681082933304202253730650513941440149291839840531683463930306155403256056018379212521154970739198276794552509409391068698916292164735190920762609229413616752073493643769026749228295267427409110958568066085516344501061982106185610300686691570311254982733710171938460166198773132324765802270724701361655168174172154668354874052859070510039088950419465787238011334175497771936207716904326511512640102486249454626403271609305132250308385103461975666518416643784580065753349181216651883571734868638203629294640461336215761300700133533684603838917809017176510228921255079562468599930053786873493472389723505721692199176103588708320285093276906864164355953648005285660258912423007000999266106892208966023307557008281070181234829845387164460224088071750383216036957868239313956694908041909498364172713017449397609124381641699537164030886106110115191307886495371142197610133136059065212752428714553034154704911799132873030154726874602985302579223508960944303980107362976019499843954791037815540594465695995944500982188848367078539539130734508091474375737104805931271816444951352440743845884846459585700102628236041182120754878722695291126401096935085516593822754733318584720734804501255164958542915190245760392927411408836859977895374894222997560326674733089093347333510846820656623840533227319675368416268674280499667992410958726457385969423458529857351175600810786899029433519166993413565091583551638022525027183055016214960971250391758206729721444316152928472076900151556234798852247262029680673761696268385346489702758391069303805525126909186568513602617593744943483226661812924144325230075235656973522764547288638919551678285483738025551024180320876588766622706693185690205317591842034235731433300169464659982665487197973833863689909300048419339885758598796818302550083400652537443572216696753383624835319278756750344909332525390819405018525679375922683115684444636644089041093807404206270345924984881982569355455656183739222751302686960257216444205180618029911227544678188648965697564349271594691616605426807658932512842378564961625773640039914539708011882067360784826498461038225314928628011047655168444139319533292818982327225209752165892860917138515409711047826678657268792800343675436638175439479137606700812621016135137113054984855963055392978141309869467413501083519884061582758846523498421403431383665253533129769237778686894167627073476704522838799127926938485055455251187766713797222031030213484547180064790337121903443378956724922751015450973706525809545925101965012297956142910358350126486981303310083379749130833827741009763307381886213710923923266609445141417206005154779531509320567349860374479936075026257054177358961507243237603326411884199990754362026475721011491295199810186420998464713249803718800865837352178723706241406993229957081973508750227852546467151988119825488871207298255484193958079308634258958014959201717389325469350283306167987160554668237703037863050210318004741037163317647818797128206723339133216074871953129218602154628103404568787012527486540976964901403175606148750450810038167564344058821756232462444290975733677843485220949914211705343129540970015227942427373114863274195764132277200570619121550424623944064770632329304763313642620432506646591974237069715754424716461882729541721797458545804377068118988364058071590780077789090467881161123293245968865188142097537608341256646000758361781465590483818848821595047511317520103847580593371776589800841029881533749660899925026357432237918662018992537187502560044599329210177695155397393537911679646320050932028436668477114172309726776517625236693079087563826846709823122143343915761042570685009815327254876456698746912260161137792537258855667485414126338072426817433606276473748825495623880461400464190727441324610086535541244604380538488828440234290162715668320500718073848644028042740485587369763866884514197832703851820613120971233224793781314350903080786721812154373483960594192695024226382455058383277729656482880695471277938231751750776695068547092885937383013446502425209700647159731972309628819145136229405152761125895537903438812085695299420491558262578091147829202187404709703281176852176228263253122898769544604571756208020014448800152423416957470216129178900903720026186783486697890452846723381284700856518303571589404829198198204487223512270892033206706080233331905021685060027095204740044821528308020421650395248649607826968068384772021386839372957824984837273957417733760333148412769900074526036819993605303806810750719673709024307970837614359666867572884948356073652128474388658201268771233866476257276941201139101558060588606039714420985095137432380389538474211766136530130211154641978470624495112770471981371798821617992714384160677066299663626568427282783075728642662991277891677554531758566564307636865943430356983828711137795579690691234835078540873169791213624728446746328386406762903035299863720528858262122971204163064615666161222384802524116325544430820179707512281987652508230116148986386788919329189949120840770403379110527563310874155896220608645151098103698699320775438366860636701168089206101114117545490059514355300337991752204682859803664722646743080856853056343313598034273484962531211687913723619018742914448342709861319608587069105463516885212965783867169806251435841781385226912065228102307305271006101007912414412214369239712068232579163712503518844653489453743708752913106548056710225536496471405406171682081261659482626794881893789125124545655065985977148774679170959329407087348006683907130431228145236458994302176713291054084132699283393137018958951205965583469972159164878641036283890550195460601819759286336817678926098636337194319771114641354700722659004124445203636467007315673517473439255684435063996851618725847971045336141335252996776988518515050926388226573913171923352795072465070227983172896454957881538687263578294304734637358672491510720245493180629423381230851857934483885676114846565300582466693926559211579196164359538057298615136677490889369206526511958611540426833283648698364024542816465933909201146038360869454715231395653562844001917725070909611670392578314424947840830079658697492223308887919050702052426663537760967040992971734976030552412020488988575265914092410943148547686303479329564905975120148976421708082352309679692444345972579560048429138714634610957002877336940112135594504019827475313623342573578725220599240626511094991411222454887123864172733131947092665376706683423019682513833079150878232480015417372927889217673266790522596360438624933756497148679354636330421850986942652066720431440160156263806806801403185753466683416660021978131727144158975408881510105368633659796213208424135953061098486738340799126484347327308710411658061852351267629648372250835965239612363734669441968426055864200011119533489508192215142628193214524081289988900497473506536018138534001369721247374598229621893093868485225734219611973226132944947987432351580171152253630081916564136208750321196745281759567145883009615724199783821617501060074845108222938415949287687964796865824345157976576161880697497385754152768201636008529922737494089303837224067790620619344726139243407403966059346823614123775687897173391545758075424629146537370076902179915050272003414406540962426994762191502881873713405956400344360337673350077465950332468851897393501975891977335160882330998713219340085260501557357324469216155131318490324402734699259047065883237861241133095323742943856562400065217726209688559609567993730906324236573114362248169387709877874125651798259100012492013590538115678260117082779122792904834406543860887511234612193303497667150396797097176532448256722172637480325637483171534251464026916193006857916727435907037811361144199351426829422941104737285370887824344090898947773922629030866624008699048908461035996614468397372720058404377813066250716439753011927109928759034089547758729936180900738851449220506373552428034415762202852115568611197787651625921097094781685660928673765609698205237851880959402779369204229885624696621831769626130004635496299057325942207521875981195731040882692221363810420648595093100997180455994454932918347525344858299791114228169169459769617254139718563813742523712179971418340788611177922145848316664341326012878600283785017501521000189257495681393207393887329298871073347537369049059599060835800073287794509861737455302576851126093307095182855651493069982740702956048613397235530381670311271060780362321834490312648744739113858177234197494192325888966666206584269808714005284441958594782626548587915416626868518646456426862217988373137420100087404402670482871755529018357832963427350850261961248618030138172241858577779276760173905837751325260474565804120348355828215369483740854581444083379812498069520848284329686075102279197230518209962706004179517455074807369649971747742013988460256583718079168487336273509700814945064294453891049988823688258135527091136135037045607552161656653338723032695457518810570167362959326662967763997135367737157694758454866602512332718563551941494236965115013912511344509630939446908039450256342155748393307679981530705788542599338787284939893015189543673651172374041079686211238423961399502152870305930766259019234308193734504090282748623546361875941719361347723325050392308680509534398860556064247385466041740906715403534810421105207451276450212889503881865899238235281781160323075803811187633217543514903181760021440255069427696194004590808625422205158649761229406844053516065033321673243324414359431653949259224185452604571055755773449315575535149497364150773799319599148309942926960468107581796923701698595691598832189495178326285262592793294138474989083079928311292035008118270061189571688862743460527978168472736821533174799515457873764977792686880458711427775227146101793608322828845693916878790356219227628357977026493254601178536579864122364922750239842993858409155271394256537144737014508960029729419937230373851475721046396922823343592492372717115042834921342096256392533256002085457662866288055684442384916094151868014435733282696314390118728873259924572288097329279144626649865758294117422882247638391636915022753219275172587393324251667666887257624578189970121933806697853720130769825042436127091289565204785275891580687098476321932680568391308599580983057359240414836257902805402226010497795358529680432161559918837244136476557141569300739401001223533462974195368803498266637856432966068963706389651711265446155070044503940508611772706626900406197297558843168992218684214485644692539608162614591174697526998008767336353095772225054636469247045290769961167922675785144927626980365938318244379915837992818187815426321489942660350823997908254781694859225240337432158705871256461909636247659331648959267843919042841272507031048054450897653906079395370810471212569747589003121081677765792455110566963636038686247459735307152652979930441316326999285488288358340058955232230994497382580852348222131911797183331948074445927750310523640924598160930462303101632154647837850030777505819392039459863352338754288498170214232417569208338605067375405827835151417483442083010205011631049688108537530625556099819522247760907310129559315985874223118205384210798130282832878505352523484663492646820923508485255528987048173874528411173852433829191238170472173496179450307706161311171500389831919448281616503302104144835102239288920300587349563690594948184855065709221215750105862508956357081249709306830203343929882679218508557937210423828114980203233945790663131467213952502753152134405360477328620547893515339618840821611194541957419789284558206750026110279656943260096144047951652630163724743007186167419630830182311739346154517948512478550119185837061315765276677756086221944103351769432818226365720129121745949236605603362849804057799332560772235065406730165312755566954700106167566015113613074728603327312610695666540651725164331667049758955789111995430623201969037074162415914739363410216624680629996942689825354858692777526469205674025055965382412138916383327751236536583952387061862167931890264144400155285207138331357927193639117803032062196127567487267724032642765242439314148651988868221313764266521951477194948368701436862611169073792998087669789292798219598100150112193544490807240441221004538253974497830318243468593356832910996217772799870533755554307641025612447279155274855656881401840414891791402631225808928910002009476363501898067278725967491087274999538198006190427516588422540308475390605775017922466320876298231119333850911424287854662136972378969440796501591990353488476288485088674716671117922908676680781803820937699464265596493977110061386058176406458739745625921681485153402955106235254678641290910004097662474989613772219729343649371140401696766574411091188772953339301623220361047042855639588982808095947853692191261804950434812336800434846992439470719919879362474017552545584242261793191415031575816778578990123468910905582429656139972848638752992846048929779277635824026745360227917787749247788820054465468461152408265983885938474079271742613102673276047221955824105860821181115293323208566169007794418621343169935349147603571076648383886395390989541041256297374308613030222170309039326584653931611008233598402435950545446815446858347963217290614340515061719590378613894555408339506552436992737979955365012590757555385442278881159526329913660986013844806923714942247388422280364483315449454366193256380875314617464808948884404302717573403520343547457716673125513822383586356160881725590796585303041347256975921271697191173836918347636250221885958611041554017419322734203031985542202230903952574912867317346627795474568067978043138350095909258207431377423496480888507031440788370711917362499706515225328077767666156045431802952288237847493043734462616478858123605445374464521365617392648756841179381947651363688934299554969449027050789727482035917304499014919618131878484045816927333776625753719429907013360912061766497453746055910745793042056139436864340950392448577673657001851076036292367563508191370605004180418372507710429573502820304984467145524280403559236724813316679978941173882232840184067292118447909389601777920632119130979031077417453949233440561036143432918506131297591179113065350588594953688772034717260478607845034754368051692922900423165937960532494427211066221972994131576703298229853722040718942082392811077457692047910860074923821820182095254613357501072346455097662923372168634606768539016480608449512141825502116164811676913823499664389255832442378849916826268457447613313920002450088818526457579601096973946333188930148125057286276051255812969936603656140380489330218044119981011639815115015705649150508212516699701007733692653515699751940053871448929079410860437509100527452129249635551352631312299008224865512428369503099842368394234219555012666387223983559375596877994324873075866598017813484810741364108381351122615025727814525990271651243011393158364246632424956178141193755673740829973868080340217883413469357299053423908764872890668903007252258937997616923167096565701789579118871575405812227803177126725246581311242030644538541658660167486732846580439209810394408899298538149456254772232162554016140954243936217129310420511219802598870260241157849148605489891067958840545739621505384523199223333022704275743572543975322222495664992898971302472998685607566375157422899984794225827482963120625576179176485685125600388690963422146819145419765076099357309487463890534030311556175906979184047247469461291341198200025203532725701521418294266592041683130452279441172979697596632163714188477514909933528610417979169927919965278829570273610505466942798511887534865313840855522153004133479090069521997945538044629512634455165855255003715273451186557671109577542869709502174100691934989638521759681431717107435999420564326780524469385324254675392108041857278796980461817331539119761478297707562778635076832259514193021266309720570416181964178439837403647813931636550355447981874720126626936842163961441222882003693860405219348905821534747104852167468752462418374697702083253494581140419017511037152155574666506844260783738452020991197778126861262958279301183935095333060742012250425788964173998862955562218404632541792514103490210651820122513995767884198453943173589731069050760190038705441531691462721001354273150604079542843299694072949693834995990125769132934884627868352862421918785060501267739800973655004862328454588520385601048203394841231499078493983837207578628211059248102548023163006079282112017131690324200473979718172103784008776597403494929744345656050225173814693039469273811456528613514117673757238531137143994877478841023532402168379926584858722963317634226712144605246183581328561905107826909640806017422023307463563616076033937969510464445958550289877954548095488207064100251999455777693227978022952503074144464181306383315685950987514208578734798619102194377938483934616038374349606589961814387279807704064746853002425204741093394962558439683716594531446317449575350206456800240523266488145215079073339574679374473667773266834186928892211837403777172860890550659400657460388544196820114513260447503287977394878772514174535734568092465298035351493081419987003657297244166009511595692241164697571762673484949471847366415800907636735123751714721601132672857094497883887646020506769589690858785372720361469878336964519372496998784731264306440211588279330569412612016537178567032503633565861370792842501331077301897639554160390176185816514428337113341477987725319003220679637475817233348176842039087047181183897428674046246321815224284449052457888021351569296219308065304815268708755513923313397522796391236638706017624949732177208041813470765191571411166010941905131997717795318275593984517061582148404870216123260922996632662833531638783564881147699662925342182315255037505530268898409517186136385940539536012752078797709346857541542796436645581929236562432238689373148972544472905507071541070111373990745726231598734560069664304288331731269974262489138745189813830061051932515383041437032847653191065745620994991984385047587474932423635881457513277640462728349191050241131513624105135181040782984494091167816208874119261273080025007652718363058715557149480294660184678873461262842036356292171847485546619205821019512872578783744109287486523075412622887317586304923840717631652011904950621561122821377277749137538708551834733096868301537416520320857657715497294623684578849723807567555966634976768696738608089287337054264652214647870102561509301106308332341002970918787392271879225196510578798742889107022692613127500682160591143182685633078486276720462079394971169863933025583419422583384482674974205677093577619033726305220817875202445538504368982706193572390996665607628282846695294463648706572713273526410934127968572305854354097069338821991395896498778977006038662594305560008392872386501092034292459209735207312657542161378730539663249222219580459292025341400910980737884242270577775757675457892425314583667929017744268355678417858697871117253177975938455997828293418453313175537762429881005280051710730952745923217768544034755608613018524901200214373732229836625009860426157620277843735328529014642296214038220034793105333119041563673020431875409049183232460422090231138163864169428028668337257033047022226313633907831301880202635349284075008893221092477320479853338197904946654412677754045525367175749053828328240974000893574119398243025868283674371144834664794938932480205632838999831490643514198867171870850975448598029403025616635571820748650584777957623567305768398820057980254291014020046909180959824833384677775500436975219048609234335994226212339307020978580164401365465190455498899221678361957492075074760029603340372843204297418978422984023200957542142594211590439626606211867888822469479274498772878783940470067733274458256621387663625127783299670817248542432467481505057753116679077577290597612093454920387542070686754304975130124462329382239435586474632148653205173766749413997681426454887640308952921906856815814306702820731590682936411177325261105776379774244048365615482364444191741894489059888065356588114572048561652032788967410022566048910548583042479749463632185219569084306723012021009518424302232902056938096909026036495521670350657458890471508731888370563521720511646327629688219922410858921379042491697034394777266517712910769652889120931525104009646391454826631807063485084117920601533684476903245261786452053570897765129907173652219157173400977986054070172870737655399088216860121063729066583658084407408005101630764385238017362774716304315664637261736971040825696031598370511861800617691765320930036083447756752446668972790610288694039985826251697721089361542602118910602022258149994931731792313841637847023279077493534610088324573023013433375981009710373698969999591770262165905585247738916937415013619411761468840067274924300441855173327918813880986710404361955071089250861847877339808114752554747897384498203313041762028576088537180007675646745374133678178383556283778587509816856882146864425109739600304896132693811888356394910466506069811472766965704277121396266963185796807084791121426864712739930649401427785981702998307766708896695670691029702718748842918845951957920276244404002250391882669779579841813632662029179382221073727912349300440198568294568461158985376402856662335771783649837330743011057744377240553947656378363732937938380120797391073659958222894900248300257868673365177316727893713525957465918286066882889460023885476897818635030514652682188187880596397456354697990118808450257542700266106752728487607963090584984276462192226682700535348673091531296170713669165517499768861866867011858043390347572479776399342488614263067602566706323524564571022447125159764100617068500956991036739653277069284912066608760803756568397393340257654421061280806882388173312759321994495138197443825234668697221458605121706933823376153897092399248797726094752024031897965326758757056006921914706465952387701560665886387510346738646348912665488169760014920181015955423388963284363669858556245945873378639991385311768172376733072374579932786201885869862032151379466448101608585349430752229073851996222982761256967740451997919967987766603150928573680539700740180888797044369054163583041224467356084550273991188135993674317968168717214294615713967205589830561763410257215493225767665999030907925717733437610309740826193525266192568993941277758237121201629896595119782089283059044319851152257060101045356248071879233042846641528725006479560440357099649244414744438618912585706625974969227834787067911194813967449957328538410336844260537577927894956878711037187689779606252146914796518878649007124888849256448420189508826402693977044942398496616261149519063689053208701903015164758619040431564243573805325874419109841579635274543818455302093911170941401166314973438157096941967383138497740660938990652620433141147967348966138212933168630019689679958466173562493543242813970633698975636275286855303414663472251432183716008968679698869661700275856491891893971903474606914817501288487779232784221998761959327941114960210886449594037346070773750261330489123705087571701952831707744010186250283565801092807211195150400300057462740080095765938446491423453200475977834525381402256109123385846924256889457390354316372684098207071670940813807609140458767251934815848384445286700466693630159248237581306146591703945411932507112976508951547479590301623600783499360699311840711055075145840202759896339864911306756593587935025791707514036167409045001707439999046024772002082317588072356812804198177354190220302276142346653864964257380264990621141730769294655272258156304921847400993296793462511513967293411142271726294749806353304701787596076037127837952965473647279031315883483637389720659370943766804960915279064380184121354102400266117379909909743500224234333032560402727891432830013204095848047764951806152199892774271713620414248466436826794451551199563843063967084375292228905792226825364555478709486872120425555802122540339324578682677908703234470912174375925469548666393059713409928052848301059806433433148357421388240200432401264214071104210231449094828768467666443368454652010555623038119555163575996135471652364073800460517103842510282576707677532863872672288676315938101987531024220182416337766714191441648927679396106987547158657241415405515374618111782768302491447200003004126679823761533165275870202376442118119466919109136027070446148017749271718765102892148744362207382836272349306208532332407797959974846735522565565110519713527570492936266851818121876026026952904717333261164585856099516687359367074142620352267784023083901745370169591775558214157277760896090877001666476964463532955397368206703543677412912033291336805913519326883784352876993931191390696585061580101251689164004397336547643029384467566817305665816008854402373447790154956335344228942722169216279204158901851377602178587603762043422925583225517073675018234504210302849402045796787672600343339116286602034951678432801821914620350763063312362928632474126195442536988693794699591217769460639406018303034660640604682160237749424687857347383457805924542020077073267548310388797132193721007728690634117522055920537367784946379270970112739669271788504515096023953901743485069043729286572045453267485653005756723484289832166855980912358649916607681593486186172470493676988751174124296261012807236824249661956362139511120081372713687322410255826988700626623254238528446139153178692619861819119549623725667263109320975610174180557410019420485079682073197664005730616894695304098219254342640567250470555603947065534010732292373774593834831922911832150393982859656874582480871134892087093861437987027460120369225153571888920007220472139694734749348561138444454558045536487449737906699206453534461520927651785157737007651701991191556155607244561813549993526309231534571320682418215629751756496637342465604626791580782193200840283664913888436685122815906674368645929106693209565755160028285744712501903852958624053056128936237811375036671778541919288045451681906073580729307903574382876352223978996864095301208373250469876190866107289134323461123734124075074209465031424854914232878926892042388862655267639568223810454797315138991046623055719808253321716910818079747702666314945083971638640835943049441450881629740967971521661227703421466193895112498114888370250730066670939604442583683428283706955599926231686421391717379573560415805236790268436708111034895583399525921930172906860341190580936701856065923742546035200312688181601682566236045690771202838780902759696636140125975096093659896855267773705958852081794949908137728648838658982129772118370846041853828971937290196297649911888047161100615570048500142384341385582616336126737256228047056684944663087161820925014753067934816377853084292720220586263511678591272422929909164733219260315756248072440139801989160819363240565044772493215594111311142039111934635568063520406421547870305104631988848487241010618177509677767475407607681255038952471367387017880128910064201995424348045858831144679585933360305934990479688397367884455588816873387432699027311042170815358875917472209458025259601733768689434816223922517344994763111067459661071780971047083162453752719232627813587348244776447519174598837003482155129033168159490641705357349827537057652989016633692015423210027453917356256946385936886581705931366641609524005524886202101478427694577372691184894381325725226739154245750346148221586963249634014973968443436726381094584894564160528582928485850806601728356616876597052119581170658485220142942032725972504213201351148545821490739353264819193863657573703801396287413641411843508802451802097691163506381879674604041181840016307625842928017896224284420869106549418357208044010273544802826784358659862786112850201993862414794973018133274160166322065201244654639651195684536721327637113556560427769239160216358109850834949305832584779098590931039207422768294506239193577050646795354168492263018455804317703189106619745841412998830435758249752884840866578383271139281034140752202496215690411228554749362944525248070465151331752070190219252015382487878997429392242722640110455669146346366157808960515380865259966078958278224744519862060929770081520700682063707810754624585272419699477793502666321386011831068608352873898631291771185958462167556540553559338399819766081173212304726441563363856732953935565390134219858481981268927388700770557196926111054980157959517997638023353072393647210365035359521430852231795734749860790565634977439092485019783500288468428459196075698653355586816535385306966947219107462865520705589716254112296823304638025201874558974728433395619521103123224183511645736686247039797675847146693778120797262804939102666473612284276392177504547669770985712014390418159592054723927787911422931200252979276123864408017870924626913885732227961131816003168390672955567215470443084889063767358457085734621723877154533951686707892362879636535786822073177067874471185531369739685879546634997296956830165293957887784657865737016259803208610778096750982182728731914697619849477539354862454196430542206179207833202367948683223597565956483944645602476304925580405692343452525922181167254301237409819476907610595698227935038901994070531643103616533324974505644877532676654961869252131786379905976784010830439326470710938117831370514311613954563632522894961304909628710478394276941689774564659007273913719031011546273806875329734990326029464503297051720242210979640389572239260494361330431262128011381420132090444894505458820894365447599285430987304199207826911861368913442108136863238546588743786887009987675156366850944577869026316790416192438537830306449751593893348912961359509063503660477560701368063148934485557263891340372733603917272026224077553053170893048824753747652756446788130739712954304927803683866444640987189924954558064060246025427642228854825243593261460751289991394567061066907234119254620107264398503157063257949379650429803404556363009372297744754463359212974153502345409585107258099595882127786945130295758549257084042394147332879349882122740969710043184320144656596961742639211767717052219538540147901005951924335732291310788529128280609214083948160746677988786512915240257271522221652611572488706723689816280300357590444861323096843930517181922750562910307447984689975063674864230117250321285953343242409464185197951532505460419942356829638328025829781066831697449258705858975005288234904286127845743336626027920770000068747922484820666721580519525463156128461919895025938823173655529403968066916899196360919764270752192997173846113043871048197271017846616799573403388919922520455204923762408285676783993533977174276073709404538951249796606123244419876343542840071032795802687813243333376372909725397184045237799997724173127744544500245453421942488885248237889309419555816845974333141611227730323225759105054285286710108584846193386996112261426586301531153575374641805709420544645034074586199644545623827972489824353756302357350047064614949125631502691119811955168437314139766924176240611673336559291857528394932350086411901258680074091080037466541487082758753668222569243450256270522956639039530250119644210652249965430936377252163982754451432590023276846313019113587936849305451433982494469883134567445523593088199068348767681545035113077710423530773951031856313889794578612207113556226964854410615817258958067225090040187758240739560087060220217602314216346253354288093169689125458583911626659021344698931041076138385509911921687943357403181762305692574339485374914917208361259654906020171366713251885635367753021939636857176046225788976394428181356642895412566158984011105956136954889149275496132837561904137002676295479553850242453168989915907622481724144905795638029830366946835037280076372342821633514075554852584646557286144105316999794001042167872313260874398809346755615178637108402540383849391094554045033645430366089910503571444913120114249578661509741057481101779277454845193841709485375047039666588068352717967506090704459477510178665509538544664151656697152719008301249487181050013335477814955785101158742500737204849560669222891185433093780244324878669081336807956597172900263613685323695581240745658754207461709080559497274539979139765490262180905050288398852927543951016543990794245019757008834007069568577073546724619340875501668412265501043798026704716111654022291749764408314048248263821816169947396556059489772618089544548523601266965000023419346878600396467677296453642559763842299731272611475880109854963238968876530365484727112091998951765832170551331486428781924181407206701589957161589129333311967911891508681117303430010361104479743848724280857353990959600129194761981466888811736228230698534868335525410030424923941518224758431683904908987274433578495950884885140808025831169609888942470937467399380104173076273726637903502059515196914743473690393810271563274952342707186503187901236143347222315253366564631692451125475626488840892743193155522149833266748465291875964065807794539914057329091045350381906553340669582520006356035658904006273986752913349466726380414557716155438276488123613709559201248451855705882068377849197632366588736564613461858341677972187384109834564227138614322577704942204959828906712453946682313431000043228966483623862920113340334950363026921036752944352626375910202049614103721874127333677311568441947699361736636090486498420259201893831950309861454329636784491690093174633214551272204422212124673851515385249697436141646232477996037480704340823314707151804056257312848651621707818494897478454241072627824069816439163991073973752090915282812454782696525110803392521482725280972588852674816904856866034965599331840948681386118170559978055991925665061638385257397317428197206902646846002753012355985749193578762156165879286586126839125297251491126470196415520720829156577322436602223776738444570840538526381374067590272356795661323653336664052140098097596364241477299076990963783290602579072844356882505352134790350554072807231273489820213725985243939404175869283399510326582979027647560748424065095340632738591510618685485994536548190001038882618829447972573603826429820956273149890221120699025870299284657801724689508746716572398793154294240319645655126470495533008287249371644724927360986398974331794735372959642475134487093167859048241139799420266280251477785157774338389139073238890423794352560511028662474684444580641615305646715750466899656258946542301113652266903500587522500963530542780857316765957305420097460136887289776918992541620652159862810491650699616877224921413697132059778088980542172335826411397209729747288000351377674071835453573517799199728418971716072819307202984184788495831797546619035709137711671187508444965040569736884138014844480219432085338206945168916034993882898911238498138585771495407531218361581775223105427137419506158972933793552224882161637838441872807148049764273334695725438706857675277824883100355572876660978936514628882339694205676686594715408935141957929329448827098742322788560006429226587402846464060096243136811963498580446855030350951921818052136062440121154793053507720705055743718468747008656782401847179014954661909852675357838491973898462228833060361486225961851210150257601850522941844477666257742734636348231165280000093562337043357424103032076678896947449659082712554249830512190777699812847923832321431439816453242823056239107040307565933006488703897573765802866170490190177251189909529466204040312582859316242450193443311229653873819422327182782431606455572349403230050297497525435074343180966537729555060735326842551066172052074183159374262011212811913187875494858695411949080941872705269606034511875867331190878758248502203905156207467725018348883534694470822922916219955044854745106197406618777898744925071385104562473286689481317968479842882077153181704889627663460954997625634785198679582009512557385727100759655727469108243817442544910362841832984372548633003831428588215108376896413537771179029920878988257260764668340475757094064313012677572583186502946349305449132641830822152376089168120483413265002565491070898017466180559090178007566289009125471463836349701352344115016360712561614541961472566961115534346406368721321591842964955947059042054484264546573855654422755927137020654344226564376988171428635545324389669028024999637706907017810378483561591279412644311439924468182009124562830993825172915604655611948559035247884804146804394449030355330506515314226048294648837667169918180471728057574016208684639728024618399864212785104045975276669784221344115655794015848568041319940693454209518359207216621782214217650536467225715582746020533924833316600665012233004372284693901395098025530813081191283192366960384229889521296478825537402729517320650016099186229103485743466965339466004764936161947019892369183158628236345761704591491120851947238979508763053119261272393767247095937503130700088612039320842485549417562240874257157138440796701344620041098366008301546205885174111515922732079367670263741173912338460814636259515934744659408844226611774372551099590969868444175512153189757296073988349927890581809340017203011700678888461088335084636195876698380733902350304832474368995527016665937229564999379730755753090852435882272527921544075243728159821886751980332438366113954334538222477099041572695666161264928125543589264444531200133880071831324363123416989733394347429283126012900406031708884616965592029906758740570718769224429707731268540682056681001637864863082288945818667862253603512391658511749979108905318256754604294659563270525058343728839050254299501723281853733005603476398147182939573361205316542010764116293351018053477098444600880375295720292234657762359351896494203394342604156922246381852635615969216746695992641257769251518363720824442966888498733351975620641372442416749697250824003626913382858420270504587971534691523242927690537627834973140107075555214487038985905906652952565557595902726325073484083006156823224860508394759687580254511056725741248753309985986034538472420915888671255279986925056363588275021772704890122149072534648413160069830436428109985617993924945522369331388360002622578230694220423686505379190839187376181946122003832134952614082894199241862836665981863859117339538500352156507023525636294196893406164987547948768814557263306463646870233803000205442838150272847936084985670429777930820884087385136401051273618708209972795015252070560485132027263384103963258322395783949021774579585619696619625346335732275456015017287562489825190063167787201086743932890470100774489001404252317638911662688498611036712068581144910581162380360831348963747055041199306819421697875919090910541920845912866317503764014169446089477239537099187499660888896153855038421236243831508538517166145876315003992056498787679422332082564994815698080013812002736061939890072551988652847457850459529224838565031868015215002886988577464262397126963280633519236603601640616681539696417839833793294002309124449282115841978474319072810955931506336484020967347678260866447159606108712254796511076761799630771419013822998139339210652892045572324703489886063245553815720538172362295509794143865332707466203969149041465070517418064968489327887523284675944969374315350669453878827092280296798188946660307132454493290796917470230635002558800182271542699234185251576468568096628168529256696866554670290140898360550026126684932196060161749924432407143214867842328541177050676440224976596768001087992906090208051377011770106521332870292962654973277669807854422408493284244412326404075673275680243679708621697694956179194998916523979186083832959467343133818100971445593773774432077728770227377994434786493433107463902388848677196131327831536770372953850875997416842297624655636603673293106431211884995511466329905416601122927627286718457082415828022269870003557475032019560685532477594199105954105373053020889852440826309219086923111185415676131982819911589212755605398466823893629431213048886342832046275369209288692550968345456783369768851296172126353741643838577938400641482985972523972246347221916229004474015697965199116126741193127207537679279668340511618876040349260594826282570106365248419578797364696743662002302633306717720150167986467508134459756706153718913727543370081000977342574845291683132641408499823740561196593667853654646204606112781989109714873904444785145445463922818026533894162042725810018873825957386819111217863791806399805493849455140943555001675235033825786119171254145011043584910538024027723415567161106018701951339549351308540405285419591740410697401099129700255932021602697797299762939811273150111654814820889479736137609095788176092782176505534045095888802390154957466318614150781504475205879764859828982862648901745700231349306866142004078049289203424632591019645424845315949493846056936748480688054810982176414598241711997175187023797649613723390262576078164541941650344227306898951720090036792004172989870279605636238741857689733884603205845011985842812177673925386358887424832147740707760272501848549621151122038177972965387590427919382588999010229441590829537136543204777863974246785404035783975671503048161803499080865151255723687573027938399813692406052824698034836127521005367588828086731966659524418635098157682054891156821294589341151649898054508489221364090861994614272402665344290737579468319596651695248053581366209896417835517147436158147670292061293456772898003081053258715040157132864984703081503179454853784795255334155253222430606089746271801828729470634908487009867246922349436498189961053219356124725265916830372495650801540656042941905659227116866616502327030007335541118621383121893492562485327775911848858787674963884116046214316692406672408300938171825726095417854020604577951988994731044141244550233942282524969563429667444920718089074347284992634116530588338512544934797594071756157736274305759122934089719418559389587327289769116980662189711208365261407232725725487044792758680649651112961914493456830867074805361952889008054310660443230300950099382849403338877523161208856179333770158853714466606764999887883791320353575070421812807905998118774527307884061699704204517834545951282722811826744930121439529475082934312376809922726837483115583861373659612579448026808375280065284567357883247533915125902006452228974777938935585170655129925252854160597256839510965243756316421467899951811067275755148894200372841155845957427114078414129592094281720456624554979253845011866690527661164446617494868960101101676052052157953411871332711343158552471661352723728341869963777289612919936738464907617792773360625966189529185600912307806225208408989729960388497715663991973090722705074240979792980897530945019135025179694269541857540879345044589108347298647673505428117594629921001450759203065355568313580035785116200379804127885691491815636080257007865241708546544285400458301891035123134675707440628915771157540498724414002284154866000452172462318347046658478345759995783044857689057400102088329690411728078481891216510203866107826839254241468960334675140556053837721837345786678188315154619542347877491691066825912631650004440218756243313162197881250456473979528759370758408429809548933920621786638335262744019751241196159353455251317671032640608238181340556947846536819429896625634342265498493212425360476163721757348392787877332363014524701204137403211355655805952873110238521467842661360270952332560421268621099247479843157940612037984839737191790343653772842686216745965937850883159037376704745012195267915506743215562149876384044102712350426602294928799600618802898034929345988709646811201041252454037468684659130523315238540233377332043682842391576568839041458487295190438887751911856417179109722911140154208776475471117597870258403472203362615278633505739724000638068240182648408709905258873321328940013526078723158243275228854013916245601245810073596153949264224893079967367216611803859778105546372534263482730752534533703811655726551394196605571738005236345462087932957893484002624057752391554318499443087243501193070205009079108555064450103898928294972964677064001036852784254944654975278071613557782015775927280032778454209140148384238529578732387097175211259871611968658771717960230309312966379831807504275376274072407950216160273523426912704161618644367358548890766491126229128116682792130484290100292411407400960918226246542901651282000321509720238251202128715976444466427256408698112082993028700582113365452782069943349047051275304103172343573720852317403060694975891526859979716305852453125677494536371881372625814620297946620021598154477429383949913991883017156685646026494554050128387046862574033764494689747870748251323780530718265548517933330274919694650652052291334966306083277929185323642477832089490232257866057183068309237432093058074166218884617006094422924431159482810554681798643567314921392065560305045942708902741956557907426506538398419751962298477631734911062048319874495383802071111191155677803139873981596729697634196646260569270962563958814238703650615668640150427140840782326879237203600439894744487698310358283108268935724264602638579274487042351488392248628893009010428387353336760909010443297624877351566815876562660988452415092120369451630733044827651128750933109224567223118933679668261294844209207881645319692947848448728879194031578591733475678532392376856110457809810612424626615434605207009503957537146229976524560613917678996932076188543591682849892002056069358383050233600486813812702821549347848773427949301057579690730295999993897686953815728261404953286788766954148294705945541534390201153420969445947361584559718521557497904841146736290451947992546129534392014763311758050479135717284531151378805795049714672079204889773017364513147371092014680992701853476400980636204508842930462261403998688624136378174759159064133711622548562158242773292716250446645851114978574962537380753127969564784585950650638542634560637319355841965646994497543425803003137203037031233952436238906171527472405087134650857364500309884165284115076632975751560454647617227324950093762749348733459511943373293300443078582701262289111890327137477486392342572292216955397430159320754568741354613897798492667690075622419824895742349609705425464807695725080830832976057101757812792140754087600506462744232939460657934312638329294139970543599896503173951734861402221994982048018813816815200882826645574316035449092063993294210149474233046016870912183901236077023350594286666691522189384688277504340866871813583978324536342872584308905037833779884718629735623904521587620146514577352510872519505122316613777525924394995771112968017287177358744491652367244349754691796681053685178856940061094259721125739927091573180156088430303923493585967140258135739506364960515061743329823684262132576117349165613088515271449252028622531056113912504420634977427739014106903498217094049055007394016211423251831537881989561182488030643690777713952368597133375499321169703269681982610394376863825647428785807457122966233807647742662342197828118363228375923118659120909249984123181253719425910964825552596551677781100495125473238584623940178545199405632970465753731927951026376749744027657494070266736267399463559332976050990567965053793502673069317877135630395925529006287116653228203273864325248211524581802325517694584070975116330783494289843562514141323259783849241857135524733481205561413463774445551150870948470634187279193237934828736027100181074171770087571772201876852980166037297164562020706189798480464563571004148670672208047289540687895248613909476576589122477612318734723370587181061019882548668612715613513849772573878093677634573765705710010842098235931755561586790426715438211977893327290798851815658348817436830293616953991877577202595532596947511902094290196971369437832932469995604291226286987865245634300044722441638652677425951111352877805575249426956448154849575313692032429116526770500528860243417736722696258921971086424589794384908527985999221094763055051789596698171231462368455850911507503249973413374133683884073687380281638106331754124701041447442521998181296290271177404764158681493627534986456989885129017272660598737372760833753610025095854439864845502065219341018554178706137173177398973393932339153045217309608857333950478032563019834764035460194176658189783270002156509607362286865549019453091311525961416167904776888028425796502895238366925533199100834850787191929613432231968308737965596175042528376558768195973641547796027951318009852125982193009378360868349766169131055107979711333389207389065439696579861340438081913476929054776573254196387530692300728864531919054691360879420529811788504155061320753824971717701222299178946808584843002288400743108848047407866857091774388157804448796071752508094917912188553451777487544704160690134732091784216018064159045967566274774263632855206764651159019734419969073905178176522399431712551185511463416655308354718428210058023828457861450344243461224564715201952868119664577193024597795491978382603566806202013831978250746882565469767793866689300658172458102154719732165142823243791309379020189445458498911701858295362947701144353539853158620951387639175072713151665887534364739414187433223635690658636252050966681100081817766135068621903027347487952274889673691447076139993345797248125349275946601708480137118104141391313803201041947181995955106799964031851242644799610917636338511676757819944761222150477409391852648653869076538810135233085892575249959714355474020628565262161592862641342165722899133445176436057182164100979797880580839210622221566921017914285242051642847361691777148741233652171864052983427334993793456427406841476790089615017325063292615372062783910972359643100498208842272957197213398540099180188884394373654516835672212689205990216300446409744349883411582425526880068452561199623630254161168122091901057141939837636602080507471915539545588350590853855799903090695489191195455433436817121554204031518132842632813707538698694028694991665983706628530959333641010113585553680034535694482723601152423321867440399463237827985879921551101977283336637871191912677715520773708564119354814182234354105997413588739518899919495187611290786254537162939485855871048443798841696032577338116285446768287650213881432160951134114080192975107142396903102297621351872708244395265188987811624129895407778903952454073788055197092129264451432642702497060205965829671617810016739186572276607795159774778332572016076087439733604973181080476890137257414833276103128367463161201008318483498205525722775204966289528839291935367751819607052076179989138845684057646831967782012274025119961175110132504231555928639363990324658645955741487430436537011478028124768918756134066745716684719977612720120192086943949932799112387064126673766242756639915466503628360598746897536831970677186927124313332059907872344086154867583396617225682298918820219994506602064120367752650887038006926553530982077061024674805938564867523898782781040166204839308862420741150585157105851533738250648577883574883655798128003561903019115631710259146799376614378211971518965082988631987032096807924291154981825969346792805521163211222261540220180104781731868216540196393231033028739107261638189407042568605917040544987155750674117983489615153255573416056866411461819749874445913289605934370412157758861690035232856181953659852155793614833176255310964938142998395048281965830881572577586449950338396015430996822378266128604363692507720171225433736424928410897783405442448185855202718822803681439026429137648952645366471643380191411606464298352359288301484152806640517643903526239530999870468203972577821237586000854675853107861783453147645156487530447976663095848186887782214116570045477096415926149194934060549209834664909272217260743383869133935973221882329816719252976055195022254677991698569572440431622227046769582001766626829030492035841253836055737360342675546138467975467387316550914582956960898544161847779965124346422151346593474464895748230081495809012128137588251008875242239585120526898956317188819464186930889801570880753985999362368958476746125888702052879156890971028323624110867016502416032715502396612186895470863679238071057539622106343425677987249603153255418451540519131991785441376109670216477386340094561363889337124412324041222000449785891308843979274431620617086581224483519622198074855163094007843775324429776398158292153294599928867588081305556421614969693503362169321697749479104889126653616915127538668723060384809540182357217929673807701755999136499338117621017735573175303410533326461925729055326546171955418017035798244901062469676060834775188180919321632878097328617975164998307323306631681134912434455564473772485372370002666830319453606235882071039429698625288116057467715941311556880173629693851603534637952122191636031224506728012300029362595052124383343002462097598839619944821371305636428991211161530367061729300620461550031421197070970887623541829888310814031974202622324664899088066438186701668076063917905648319614894787256493421712925897579413391409230912659198224147199705160193456462519968153535587057681941607538762555156159996279792318105179147855253792956720538288554210660548153912293664170803396796150849479956721028369408986225180677647552586805688410473916319649249977881612521500150344495452771499356612056127612271575564493817219848943811860294146207269183660518678805436413094173869079356307267354544225557148758485016662080652549888913500397738521937117999067408676092740760783666787539733975962573477148297911667816515207150911969555388221375935002440488696474414617676924289916371936416304752767760379724677895677861583555898175650592446911065093304524084014194472309524461837883192952177879890137134770802140783738858324206898711508551497680762352164520522907189381484710851553996089790895099122190893007959711641877809845501635445720236313494629203994148427619393200392474121858241745286757689171943589124009166010550092440688889667006076379869581634308857620697201917588389449149797309350485396905376888342285340718321174552812407578301431991301434808465539333128577807508370511474823847656515446666083654776116756704235465151143980032473661162754561345258646254057989693384614539245301468872723411701335352885458168921453118214350897028682288926687872824964675834159859442265207656213846622307114048868871721939428529167158509944881557742632852950127024414626978788308330744523471196008300280487616538826919654093977005508392986122431222286123450556749823814713463418059952225751577365533410672241820820288192740780251551976947986329880610448924603753465333866133503704860895003157357387347315655243289223493541187209570329182374049802765590573248207044355548267310645804311283650921645185224439840568889154443458354459519862333569231865405482405075472790122707756163870702640508357132624879058932186174908183996664552884878489704526685265402706062268017517575024010218561833834267422998264902888783380379381966237113733935866823845379903907447682183971002594398611275039346997893184342565406129559988056608231603405027934507442108560234912349857202107773685753688180260174635035988561271929886823844627774419672350979717951427071466901140629093382402071365818983797306903097901844525651111040831065828486433742839084694492819109630672795331198053344158259874935860784587675050292900725786497133089635353310664757782760366566618495096374217447355722315786321980610636451846199378026505739002011944125288073674287944410651210028620583823760762273035618078627355731662350084369309444627685527866339664619208060778804388649021214443993228263489970526542182393987512757788542697365411064091014589055832502684192126358257823985580015203834579032496062077383451750207838742647132988522117096050514106695133883133011761825471308886860478484317614477612363545284906819829017255747135897371814255159454367570101651423230258693883497656454351356146738994632824285218064346049852812866433739688251861994157234236135038131935462198295186931656992700060101133725028484829114273412730532338504453443104865357393071335926654193144923169809264585071042147387633784985229817409615731357850354197038746317109940253129318367575994110822896860883952278875972673429283744780973579464689347483031454722749793112449196047994570065706963138851330521657283140528108849359528302018045718942194256037528675515083805414622238144555399040864844068989963405889492221014643013181287523078093913442269954898958744398503391706286063813147894717286459046514495089524122468231727209688984702624548646759207097605709332779079358891001536934260730036767621269389428289570329080085453935588291574587285741254525763945303870274466025724351243837759221495407089649165973163177825015751503367303432611684984560722323483733226859368724996296256225005936235972777087555313752594591602628179510291723069940807543659278663394929949388426271177322010349197527031905705661657424122087198225629489751195402189447227547140585950654386938342339504163327518915727909046175672453207896469598189754761818053759041953375247100754757802220118007385665656725435564103491833640786048630061567265097773935550063681909979680037762430640935374243878744931853407013399085462357607758466057052160109721048392118349678936263705914283611136086716032526294879389754176710024058934546130464834241428098324733331591532093003687661203697502468295524574270816176806684906244996845303990386750564471555478481656708622097194999037752359396593607617690510832481659046376923024210272162719851479075139720263045763031364260591211437874751770425430670327004793558210231087516852812305461866522859948568788730660174825214740946378997275439321788804358312790136631434276958926918614130918076794947723050567136801913353543840768893882162343732627245180118059444371960055075039503978751973407879800954626268861474399293383774839267375141213153506089073405757115676406212527290854872208174164268522039093700677001630042016563125616176626643931943814582202143264798893231810208696739632636857620266630844205391119321190685926612630762479713610492972682817006746967721022181485524475046038266918107825485930916894251791119267572633522189786894545616479501747858027157873052227304595302821795825995049886569495001230434145636617914126267191425557701190129748950787463676629891647862468622679921233362178292374319384269242001719362115633986391255372710572647183356794614612479283676840286060465146305516640682943398447076105191734002313484749593684954392970873086496039320772448728802493766796059189729233944114631736431958975995056903809571596916083147621056499875774035855856775948788376488824431537647609173672429587010893446468052049837145444781370910033790364240802072941252851298763186520091768848233702913517363895681998722405656999484181842823904691208342588672638729426168372935027854714022263480116190503088080647321218202077815672138923707563255644548149878171861039708259064673636505837041317486612671882161574480970257261948130157493364149621337236822345664532041496986519123404936853734178790312010400153337825049138868984493841551552477245954715968559597839621183946318374312982167534064404944174749413441240584925271044720547054253836408607360670017586250773969689312247666053200598700675747138456058734986456674836543820585640515291898269226371658290307615324574556962409863403975422810229585943331721086107798159205551510407544806963347411846968941620238689262972629487723377619076611946638339417655367970668828974295440424309875237881912352552025779968387541590649676532509115680937506949032623207336493936211747685864018224733980551771519225395376312039347798351655789303611287522758172591073653634618118812780514405220760405412739499266337249695392674803707049795118651504676701977090271036694046449737008912371135386809300407716889189902682964009044926623982211058419061952897351536459240137120693232240805492301724445148704911278116178820869875560809483972650662638403970228139517929600387987284318000801120145632633858180300583364065410001925186491802998484474435278345656523274318225531997843400921119840583904221905282191986274758344383093153647962940281879340191746522937557094774889623057591535093304582196873481919785932374858700003897003514540612748793967875915533271090055701756933865354799850119465343508444283011733586885902468105011533893146142912085520169854550637328559808774064058109580145944662140545517462746396688629163975791057305348863314623465383107710069919467462161648350516206440037951460627109710332792482681326407143930071650996448404514519995063122568296752048937639640351033028261827211226533241594381566121373317866777364258612641701581363118625186722183742453059110089101534442443420910583227151940939959463538440232220267220008554653918135877054445503786780124959357237550814028043298485298281753295418697741189872138710735144353936641924301493002726235793198258070927039206684082590625624759741097319966664464982650372983148638121620223188488681815508780768005528542869992605360986120620372335332022039431478847364329986742774872820568778923507624229043935507055568255200590024916659143503343724719433173672970931152462906165893833027398306097699181029963716712043728251765993253661624230005339085837042468634850834552058976012601506558234869905373113576298890336842888875778345219994738927431484146289624763044651487130058068787652460410786479608314657946208680980720582203947762849404822227041333738293343904750354525513309468821260816205614091885668492956542325678909622895790363012447223705470027948502035219584943155738876159900714270381248257959932250651145826507885158596660214622136821537111932534480841237379730997009348053962460781702401719694353180715792343605397162325546758101821043770516722170802932489105658170433938246878389015357782454952873087165188494250694458000177931946320474626148262065765645291619715569655869210588687240832686851608001675946866675221265489256831842588792894710447179796713604348705037516632816713069854535587704558073803817016513894195419788434818077276215458579226711997744252542800683785906645187850529477220219232742647972703866483735455557252378383918597905171206823501002944786882930390074988023326710441350085053858488254651379770775548809642275091155836551872213992939034091445496248584112724236011609423114202081409288605887034716962017061496051940574217401673001425654388163989953908971309329239893918119737063783486352113705582362999220790276183296452248036958414144349033833264983698796660120559328649581240258534290505832911653754008886526799919107601462578794725674305334441608190363543448624697308213290650262884338742418614533116094918592314286654340391679282278799133777251282361125668938824049149780836769650543972758241675403871472697997013255134280365392639619490873360992567080247347008169750743980346019156558504017815961076699073365378558011970694942398060557964946247304438514048888743494483256739150727026291737187763412874828250353881550961501996830944419535712077031963377338981213389743894538499236010808635238931131968449187714170570284188606506242089173853089316292800311694665710142516988867576366221375205078768329588659022829162568996916831871226522297070891153471732541017709809591091657685206109623987488205539645573470692585185244335616986925472592541723495604217046113483375341295918202040118902863082476326820075120999195052254015323151840706080255463619089553730467796438150959562494899607122738157753508761823111184771318031092137194446661862336885655327494264516154603845058261159910646160157849615355119829877514455548385919069065206240616064930451869468175981166741047498634233038347471879240109279933383347373082097546143265954947155630431932023205288620388615690840378064245227229350286967937276536352482400276101762059655544096541092699086044832149460795335063347855136234824324789468355049571110084295048736591507010407878026145555112742223169647989312296796447477098303799502592995928611388879498403104380961201083435302266605610722863017984015757539514261324298432192247525607277305529980607664839482314880932767755999727406180043987061875848182541915244825387851519926566300880819592559127280407809200174793988846835736895422436520881279315718506567624090360481059057045186198175434095844610150778162444695484351350783932245793146170812413547774279520601565219070146622116748053228947511387841005096888549875504796856724922199159442072377912152711720424172352783241862388653095441812029281970585986091460076433764648975643505498617989502578553004856599711496689767445375320198847944168719718623177756179851184698350298011254389490575243744407814824613990505556808058562417905931189293358864736138328146494506993725053421225136034528059648898441066750815947749011747641149395012993297381880230154031008202204197480266971750006237843598338010216632312842130185844818513144287619501265878036243682001593095658487849205837866705933400005910288259948108037469680938387084898349096620882150217417108086186587815986232434059332256532375113598216915405932137650874110783941021681568248207315476373038617002088672410364416439304393731968315346273653119376428007957291318474501395600027325860892215335799893855918360128481537161646849931244803279058588319666779936114106305867911481472422836687603526214036660977174517841996619663638317013518293049217979155187971463234100785524630840042666867232072632024429314560689126057876739769502224931753453272060857961479109328847438771740471159313845384639534656689777574757525176433652983541751182640725750607774842243760911053997391694445608995794282962080578188308714751715065104286736532628851919517997682728580917656134516869672302548845136261262705616273058889028971696867376986844054266159741605602127092860780639975079374896872851421404843842168701881874806838676631541810847655430763007653816696188338588245353672702777770957406990291621185978789802320980978082801131053827122077101270115966954442509411110011523329916850582936359456464044217076172263025694221235482862974292236622517982878723859305441543358539385000553063289322105747455262832158814061848526712545646188327174764542237513143195921044234143718999621651437659860127313886239643898805990451703107356385844905549919400803977991530506911815891012436980407240297294453793471889077959751116832999689623843267966685364344928370836170643685320554214164230156151666165876116891980429502288732004157483553419609712703537194480028714031592575967649092717391719184827761513204780966532019369702324048595885195920165289079804632256061308313070133236888937876667202188195168376385338231142770324083467427312163646453964871364443516303035795038582122969185528186515154323491618036464879692588820995416197291568001959511896630018921749135835198376665675001820657301301368572783773841901483738333121530322780679299173222495633818265147656785090303071333763716261757546703635382834334380757966609532508521482757146876901992774184359432283731287835413393185113197183568093843014971184625658518729303131497899491664013994258265918863683241130678731113596524138797652900965452003663716946914320832636435574599352688774604234751872615277704666419050493792686926877473509132944438896783059921948110454388192300272206490581791124751616042355674346412937079218715056468667829155200251102025083192776701261824041805274815355251947507213294266760350866602656780133200194246579019179252166567606231328834292679465151983582773640059532183429840459562006968496790908208847183342520997436350954894853630284405368375553682537756476809358812496317134977411756421645399091920050029803277314491070769821516849675519449168440650833184161836941331777892144951741391253815095133956745192230447280141140255879688679140106145305896273569840322187087733563341119141219486640960126795148763239530316687910719041475959721342494925494622405264659737012931446952330283652581492700568610408000799857446813901001601873219428970490157645990879902517747163571407076334813736086946655664445713737156420604147357945844845619670439313201196120822202544747640206745164663746099858144285767868256062926485241854193328864445894585962659248954543981075595265842052421563018290803503253666889059102834773684362181671701771728447475529629759546853475360026189903531827875717710798888086570966765592601803307425811176054822962399884215914762755458265117192192732267162865584532299390604886469848888683152927850849594064950978237640753273924479437983242210457621762475387992584102414949679465369536966581055339406390881962654705071486445740790455019112200987239165898740056419064289641446802981661080237731252748730037891849955873247604771130060821531823601929841130970632683574626319964020179537600285318622802540433806499753094040806789843353137804845485317363115505080341630069014811403191239950679584675771719916612108360185147580309594930767449161851198588026718616884438685651033010887944829868555271582070972092749461673672985409659388929122253156641500780738003591183172797564883018208568080453146526167912773499641303939609200755804386058271596868453257965093413923162570188435594772680220269623014912308173982975475731938106461766962063668884017586391348992658820748874710156956993627398859495214823011971845195418172345641664438824084680672615680526050099335147355332445196104845988311461694534647017142381085864438538710414565466351396441288573430949564663494004549536464829838829417054043186160444183839711880342697266971557947391406399182000284024844310339387766264712402298944028379031918712415877051612862659599200239032036996925366306091339229506508566228152570006842921370903941719734289258398311642249620611989113460672129709681493229611314781170629412580288080973231483270560662559539240133766934843258064592537790567859034546914694657789423957462996264126454900399419464822158396762359875868649221840830644720558131628370686390145623182981566480740666549045597225568793156285976735305417964247684854481551479969398339961899142703104067648557822009528198827799589677111044148172382218784928921123247368656140097184408948630030793054682459197238735946212896983325612427276572715815813538392008448780563390196564539550984366642141288396465216102091034921782723570035752840738599887010230706311540954944696288727870832574933980673687714937954629473264258303454142838428805170168323785990270506128148802369660287634383926692495411310547152118403589537016190492815807457466662696158897346641013566490501810230616277983525230621155106594228515253893051452758625419541737751729048808530552033353010205373804953297429500780493143982417581551171326529668440500146440585252094660658965231948167995034322527681503108335866019414138413284523129351850293022831808436668450148052588692891513699231217233758245638836723971617637937103348900423849941255732120899195572401330469466397258273675518501348655569710870919198702066024585766176560246492618313089578411665154901756568733606769448627232876653316045500021316956099965135740537681268553959441055817522587242025592136726412980138856689819488354764264690125992473917929302377729109643720349306955061973393923150022077041005839517711153471160726310125485387272260678232554679399641117035907572751473475595081661148060244683380145102479828342182746392729475417757213498423159067584660995899707039988833118222392233744533133408620832776734388191364246869566251053637828770290723399359832824855221393369959669462921157985209671788706724058497713339665565311675403582644085422657649833067728814743185811504659552699141919131595381019685705058196251125850022550469798196824129573099864389790558397403326033217394369327907142341643343224273035177622097198717711711489469053168075585674777566251038507155172326186446999356113393428295281119073361035819303671863976988845394585962685899452351409195607237112670204523367471238698505452981271382534952878471441419972236772049063908196558110370421249893032380775196185785178384376998997273128885595032282672988419770351079825044906344548451149092545556918443531185509037046827130975082496064953455243825276392159290884382317199771678030488016330229933763420577595630344886407194800566307422572215605010351115653176228773179695922237345871083031425589855989435677801950062684881240873059176486540236357986049068668529182414622727243683684291380017972033453842784832112072227796762531166278627572026710316696677217355249493404010223106147745364585992086640927075006388856070242753782791622670199082855947823861836263030324981368805026649253614039661361872009890555951195693853051979190189424717633859500162975996920773389978933995574371640494313857067744512715160290312082828657591970502665365736633220701094873044376860941675233861429204391886724862380494489272899182877456376204339885464321963140527383170475588511213629873983468530002269290302128910460294504298942688230688833596840835862913293016095250211452335064729969017475255961710292653921095452145087357375680607203856857513256325914120545492219307641561919022965873208458535288020961425898545662347709240431445161864101763918889356995509283616752536477699370856883695200782490891799902056199709439164734532168678029204583873071934967060819429433945859921651656529720301948198479360126441000032796487216887175312513910432316441960595473612728093947995518012975625562580969241049070676964034009731404592096059680510651961051984774043530115197305270926481633169878379284576913189212390869027622363862669545566561207128693967141513958303857617610889263363146561028236808961471517021716729662874707634487009074071630379590867916229315358204255227426342234812789080567596004059300310971601136409364925035630334710554972552642355954069910728743625620464181830206472824279455981281818698308159018085482141964838162217316731880292395458168765799441333734559821947985240244025130252601140052160044279004397226406356243923761407512199416562926152488669567648695602731865683098565338728075298386275847233933673862228449717546637152526043731907780319335722650115034277992407858501575246976772258140963315347636588507320464477433546701568771633577434099050686544266419180849667953971311216936912581371653636403076893132930120792937957703518569711898093008163204280038637215377873662375119087312091603592399592220411477014137394181899880769891298934394551759015252589888416444172544949953085998847017743007338275748096077370125917824270743921416076637271208088309386108374762912962768753367512983275372854136282730114092148517417017067565317416694617722982098704887643315994675453935833773053542420757650138708008778961281661074844428066901010749664108961634065379043102880392827429210664030846534095433937862140619092390971130839164817199087051441300119743513328653179142473648371980316184275806516421382658208624520416513524527825680424482101399946163478035578106510938751307539230144315547577208731369810004719555338825170839327685000339274020209737242207381363558481207812875851663971845979674151958101284882831152769809645192829773606866310738467011919167160575555258184689320346437503316425416256724220049002382771276142967606270810432839431294040555954946997554595991880727077950569850695880039481040032513341653072495516316439307255345569874947210408709929782499103172649981366682112698791749545913622493581408895509113718553161089843791947506143967220517827959636330305850629339383995007770453439038381618671319532087213472248200168485513546567646578529151328089110522966611504676125847839880713343057861180179771657513187230571297804447011526267292754094284432175621065389950051495109413117065121879357810470135926990554634720611948499874723481864164844525324502341235571995279657658252120279086057057928515215215681396476793027522725917249086097504682390580623848859533020163258397874509209745910941618468868440464783280313816194335488597455495538129948339269614582989184138867777909589023495801120473447282621065705936240245497718434148486605476021286669734950224349681004252571439973703325748399839194656304994350401041586405413823917951304120488980101599236577916105936175256333523736828990847220573419708608590202937903728672556374074780080129727175338585232620900009284909977281855154692261373250047336513864028142073985025149733475101019263791776948225361506435121563996298366081372249897157350437846140614152434181913734685002002604234406358720909442066151086342994969996058153323397040013238703514165871746506375009972286099416872354856720206337118146329861894455579236580680796343666155432380327879962761422881353020606287622940837886468025785912060764144981060498573464039969307140545679553586782692469080014553965399011480508238352965655281783777548039599593924028549435031111061981005440069480813890907937651512368497280991753048225586487962639617676056689884100024840020208909079643179776486639855203342674831378737436637040751799617668036592396464575488247657544975200041774820359247268162003430541237375924959939587412353884487592051961627946644829666672416669761458807275656982728094967412901898256793189265650273181023207433877024996069073487129009941149452891142110908408075374690214666200357396589909167742268672017140062062028510073235390791264389798738548657747106407079012040785026938424240886298485297165822321073046290980738946941875613698637905669475920757167166961149357738164684214073400560854827914413535785361269014243757431312149109894179545317874936332627249971619526445950726105387748198914099589996695936383931830015608388874260794538888275236358405648671851806598391829519260252374008015324802408212579069476360836533823395094844097735111715485357303101379668704046723334827941241018419475613419815340346347182444348735027444606618109613954947839050977448389835695921218652381733533770929301984372505024775700193117836633112788231803324956131110417192020002284366638351183612584767769227335018451848136929855408823933307144716017738597253426387423448102170477146324201535523751542419282387807241915243322354550735369058226268177712700153821391518678483806920023237582838918436450456062077048927783859203584184069467786754043429352937980388933652843850748021220173036934834392978250806196926026565206537483569117845397091399851066587064904701201202135629699867089516745992403159476047209173086216377118555714055525215798289599718542674553506474874116434507597722937605003426194505718261521830654955013753258647510201817113323863468440427669667618079305976951412846874230801077986124337732950677992587132482052813455173382254824776478740532633740699171931133328115592404556556834716331970225709443160927166469772797193406252049678400172341063015505025962689010728858173460638804067611639530824600980403242295968146927490406509472735355268052747452713726253571705361084554066894201971928546641299131983341431137278754249519123512233556447674598867634583537005355363314158310412028665741153808178325330312702610180892107682799578742773872976694879100228736355303308312749447656035818028929668918248946514069939046149894903565494169261940084992264807620792314223601748387330605640135813361757496002661181439436429515981321029497820849798003826710853910733562735331134083036340849935612800665846388484649880108297545134815248458085898246011623122535057419217420214114949358911508815016906223008194427987400357637336255608190480549333307646203088318285216728640974979064476393862999300948260160501108459903732523461450207739884180671553897614575578684241487130471180427346274031714867573498905361976314054925958189355039472577005555605664925087661172751073625986992098043173096338531463022613272071300487511248412701397127225847957753477096644427343888920391885496719171173509097137690548210043830154994273549092281900167449433528507344180439931696446347659268626016305123696011897360146331038251159967804888710341487070375147913656577457434784230826179390869955861208770724565314887743942713639392341135422124738610119429404769046189217410784064974960016587756682548076918467131975229671686372463302289627666040088410182802339408850366739540957221546977428253697590441741898378711161737153548259237725806623308814615219343652755182001890936681322792306677801691431500812461330725677600896854161304594708915478421704228773239055852761197720888672992196756797578962807334574031687492547364241420153496890419647469426458487361037837911036651598819411860047483533559302938002476704793829121441159626567503195333478634924627967472583073223559964561324205389849744670289745365214963030499409557713620780832578774051053817659953590452748453014203408703560922011057105169481926805430307635119307127442834505649459626620530750986136728474832778080863763051832673058857681796853844116427379074463125582788164485871607072447135657763547316662680515084810642766754777429217699286617678235331268351080511934709460261902888096340623450299302967681786095262916872946059098120281975063438548370621416829393877769537361966067098130666430386330744038057874379727744582678822605174826980775547041170517407078943094393147003587522089788077530083973867315634424815232463464945317205638609516459833995872967970969112468651467013944501049092376043330871304213496206777150488764851071716301844617299060602133875462144426029429694894628602348914388920092509909543129514829913771605658076060343375208993406808491856081917208612930554276403581455546016643920876618462017093408912262376299986156655987189485439085781707665551394437350888637368025702035208851570464715775020353011699700722561370132302339347904046138972084647621246322150810273783728671682309657441074342095135327043016889367352010745713720948402761775969412147876916873296920764610948978115412462510775601326933872263332475875855228351800016133713886459864853971011242709944828036944505096843235151214652163917059001131232117039127211643450672525000891622268557861339674868081972725517585661759236892801891459547020581803624328916727208865254414049471832634705494444362736791075191512739776093344440888813522751719278032309797402028401539958512944854354091051927521479481004385062454852283295826698550318215514606445887123480141089429168608444042436817793660495381069849314830558194940949820602345538364985667760002159250860875498206220137199246610705151063993026806150367105960454864431292583997794361971557206706731552274881750313100230112300467219420168011884236013419727948416183643661576380039376414667869269923675656330007792709470882718994192703479396002577978233839576166421276036834834190065309931709660944918701323855651388225655604811493481323526350882814565635282717751901544437199534708473158160559159162327345627410043536687733595742313577388310657896468065115336226612874477003750746408288396662598156992113201527870694328075929321600148088102361306431029044017464979401231631311300848120255732676826908572219099645938572655858519959968615433297454441774552939842301132463600347482857684645031847006240313049280716839736142063026431669074867494054568466707055796868308386114549928823302066197473660006207385418485109733977599460191643175826118770437389794253407256763573680409764326332637404649596339104679940878850887428892589143230450749347288570416691537522784238712557944306643644654372513835640586841540420056253031544009713373680284799148686375599009425987329616501988850159095463194008107659799716994421707329713288494684435314636543140961218071998890522586726859742294236334103768934422192113866296056534945943319621028757787286207033281240647119485247767521045162872860220562225803970761231070956567524945373961928521844116006392895482995827369967324668206194770384487933994178971405198667978161631103514617166764799928504858037120895081078683213793482434451761340041557988517387781135305069790175851989759236457269331026116774779351183012544512152840425986437429023123022003014898905109640782449371416637792235698109633641033529426408776962707243438665616054451020929063778944940042263720062296622617228416106108758067218364161222930203311106754180885714575925551874846816118772010719689072987119234833068170303430153319208102095920696286807996773331171258588034760961269590428917247705723007672399658069066965929087916993123861060374504720903342849954642090081971504181004428338101077022651666233443247193985474650372051650643667263532287763356534225001098638031115782451020916761420724534768203919555832702988266758322867033927365936984283412372692728215375699404210581470222359294185998593270491850250538339918851059151104282399538481953654369056359883631116187127428020808466229992021998975456272853876443969109466208595075136180289524725402164774319293472573411566758106350384581505545011932770197136738297044376565439697175179045084133813550838635661457686649758026249290270625828216989211621255059966835964704549152451869204548924147369723399815809824475663441871951999290991593149155333065050390557035246066483113293403655645572415203691471688326297163538034730597787327486535301527369401194435281407273316837349980474134149344811268509652608932162932426628229310312358590977436181487301595048847246235372814940103410787832273153044073668091227149505741273450376488954622846882905252451222516018641830595900601759880127673269209199994500805359410765174660722178514863433450240509260698571511432109516402935486406686281591066805715809579016832569392854328626491815790346866558468459692050877678327264024160696437443902100881543144954155496504342795458006812897313262363196780857944267968025770531893612703195870329853300268548720958499821092932150823315084927155512374763429120039445584383143223896914298294256928472801544327980897614714468414743311476794711950702686929481521274595781127674013230056538684202973417230680253040544131650964078524372157033183759445599748377775583679971774202883888163180131708052007129182243403020315605606988416693636711608749194309598432440624868448400005870125968320325172482689957091389704760269813382101017525295967438053950694490474467525336329952377134373122930916822963380940037493802318885745280848553106659610388411532739618945330591519874971700268167065769678351091476049841573611061361459323224292884735514689775428507226972163626046693936658155104638252301245687748361453891933133910942295359359849352577747032672342497369276238919109163561289934573971414088114664838931060676305946379267538744207884285161765804960764013499994981257600108053539571615704677043673714397446412668281948757759136248125853033595244156657998158077148424717956200309920364826603023696741453568082314101304648995165684312657667779895859361758359530620708665338732220790245393171248677836776511433898961327527445081954047832967233898530460762204411171304222133841374972377823071102641864742336887187554836615582521469848466525645600545688980164371664412365894223460124816328099668763543053579280929818574490580379390614186213780067256976069461930069280934603577582187845325181530892800238264018158985311767476177374234365888911390819596622322530445707666497651201300003767265892636767662045615193252226972319668952060346685331456038313693467898195926539351752063448912205471914509861667705539177628256821700311852252544451914653939431673366778848158374676437216685676772240780605413974273940388059975127010833143809451518659008108862890067282959502485781894917967843548084509721596006663113263665761613043155720447134947453399563917500364957272975285827913686879546880087871768366600457587360804355155832458642799638668793936488143327500372425349238731839851661828597194308641239653944566514599098672074700014379384464778702318088263079556037827243754493952115711050509492709295629783811361747265076678221034283613007314721808279245626564901791525842645979576183477121308469618827525024501525387570854509000828183577800842186752611534018269616295056895143474871341564970110600884291616146687960515101434011971954910923242884589303992803526502274056701354837203369644676492005011726871089153580339205369909356390918815732781563295308806385874264196613262084792378600436897294203059028349923971531681206371829407020451984493557499412244753057566598855364210112202336280922211765838890944787161037996705177443103470872907700735139689805951932694705043546777232176523744553414848133841907503292611904181636884368833715909402579572245821184599080676895594141050447226978092034540118855090489049677414454883918616755038527380789131599516550986826208117415035671795266799775395990308738385189732478666833331323774515462393360645932628689469105551919178300897446636011214188168101475572286684852085650521279353554612438029204282978026724476851050575268716108864014656712758836890401788413906062661273418173588304035558067064505972036824392473976627279634266817313590725965073824940111774758726560123806104466674847609650874628726250930666035705280918712950458518906288826337727163086177969634087899498075552070567072640900345702907641234721098293915329310626486101854162210176661154095260675132833787958789317488608703608779476026547413439610224877310894959434388895787934604789782784093261154728955636258960110022437764892034820336723399200699165847016111093238135506855745382974977287593445794169892189251608409311443586919828463594629553467532324127863211769752122474907685602334281567295920518306806923553417506830063663126003822612898258783603390288493531308049292168315335189494720405838008494281924598713034644728550397128678256500548931740179855249787204547040698587016084727500931692132095867331797567689006446925290354855319906609278709462090147334159154750524844630110473488327389441657317022996505156426989186344413647495506148264655080706418975701867659013972893375318798514726567078378269999365024782866126810905930440927047403765104667075638725199898116660053563799420831984511693082632473376547107213642632296414829384909042025211723256525586787512199268077680685825942109255303620995966499551683788572826911489780154252913808396448216739546321103462060170754780177859283144213089811339194078707328425675192486645623730974840246769028116777136149118172649481445251690938120657408237452796838869339832600393054610947609305467625710851943081230842785274653530141177490882111082979411656791357681737320840247239564224719168899925193298454373476359002736417130184365761276281928959434378253118177551313238818914175163582688740442964302250515391829242210573805074512312901332117078607707278601488781905995918207613404845482576363961722355657590509089733928057682756896593067452632955591892389765982209443638704069302128393100198461242770683851072466352403621821988937993437170005376243076421836610098679065645146407844250726838182304197427421437361360155772401842897628733737650411137501726856540170045998913645524242819044510162234755632460876970353956117340722558851784752721573816305927875218418822080673899778362234318200955046699930014251020184245168400831137498373459554935894299311061147873000853661706696276367439072495428332465627337785310193009008776088198160355357324953535027839118024166705459120936667639010784384265966215550916108838070767626755662337222254683126167439684975707418013063745970423266385062354179872932138359322904793474283503498668132914532270759948325399538902079162469168211075580732601439778674847964998195845428600680095627270573789247643065028791699482226348347042113821182713890392003134827672177194616861602116377509851790173291099943288215772044480369581318074546412501885229520117659926030519514251234487276775101075638564971441682928206228258526940508497967318214171163993450342927498320503772476202374734961012013193379691968614070694047822811883360992113280941005044472909769297048293436881645848597739860594374177758068003021105909679047490733669419384710542478625932420979860111152557031480316993348183242858314538906842132708581703320722514819138807112384523715602863602089518978512600595911003625709487940192956397100604337021488708660134416788520485593087715838842215496692719151733833600194202335454549639690425071795902488780703112561513721613938832328440229836470216086439933322412057821679266401876369946930154894896186284744877722974699897307973650687383904506193435335814604601487385439685982362418405609261196746998000360026777869566198529658327673876621642159967766811184377596279599306341152354524669880203298114162010318739492796193077381047544405700114392455706163717871715953436162631205975530663862436189798321850662722003073952271298419890705820771102986959472615126855693071699274234570628764037715346886913907919281962163392245185031718850758789063110948839400800894099156046420593119487797733281105350218988364815776110077007477733612757670105482915606331879162799069796048829208392969310844742243050603038033590362855995949148536773739781458392430551179779180593796475670510779610537423641509273534783911392934139460411031306678078530589928804691459687247526554650749902631741590672216480464687701722291156785910237497706399738438275801988538734142013249641583718714344004905935856052469516907988355071033487875728728002203405720268053511819050487453160244342468405739809091582590865918338343355590333661078686840834985517714051170629462182995950498990180504607964256729556523261135125634595964230977668696075935839274914522839444763889099330538398937805726423942778486731822641361241385355394627890725945000378430546274544681559958775842058867974597640503885645639353490969605929998318936968568653312489252540249381340476867158776649273458883977247115414397597467863973526068632320426314268305697400741159341142626097991954443469009151418959213700163924836223453074604349095943065929323177437172370517001623698171208190362045631720898806679644738335349616517000889558580257239357977008728990510469728759868658167752881766561399503299959903849347724109375465922828109862677173203348366780034280664086771354617353798034781056465961378129978462157055315817641101909485777112423220570901064126501512162249513816336823889726248228410685980718611204459069593845892687845908172546099897342560501197181666184975083793561444324580271613237216572868677623813382428475350839800110158403724975720174573934294174176679088280325812223673748830354238434431593322233670810849409474226533806440674571391567079528780449701185975895104002211404634563399820239626058590613494319036932858866389163386497263656264828417927080889072284654700199112480579222047064692838141837204373207041427291982192411989245777901576632601838959607518400608447000548063009427012561292665244452648499540485560935810269379697052696003412532693586098734270960745346915638085461462337576984701724046305880916513526476052183597611635984205643174033675346368803314809090032149406772723334038608002589526420045719724302792729800421633327621281701779200450099472787582956228057342007129961656663200570774183650338972256577256907882285032951956988826573797626575459669900677475945531645347594558365719311507206222534736363223100541487111286399443803736197193542732060990475969138178901557868158794811601230349273334768299019811945197666118547385836774975497533085764216037671485315414904327723164920109533399258335219406046402801869369020475792343460502389277532624554266677569098672151174182130079816537992689937128709392402373636402899056579249346712048231913918982084630041444579599158314636306063784113565422379454572042508816078905184823583492128182932365832195680372835336341577211640667136086918712075034017688280833684104211696315858974741379851333112133942758215309612579497862153258766428929799618250298801982095075584503643835734257452671650047906607907014356500999978404786384870914852061190027052933060508562119521406024451872268646712785141183412578849416530000270659242522675953108482365766466309553115964026549284029263116107550373235349701978597798024649646512687821832818198639388565853791528147272583113048484531011201718199975752696165468866110521975922368851288332730946730413073389178212102571661513592016084446583061912305223537296048826896546168557069518684295274375470809529881576510943791507900251676526435299036996319470700021809061634313141083897484046045575103129049349483245154010947409417265097815240713176165032094789975234457258819593306521279299613683739665235660836243599453142393602025477394716670876603496788962376768449056684814638815475556685368667275349472924264243493416544697715774780096833358296273009661590962190586468316602516558081569187788309178494769997268665963186327430149827257708206025799379622384804098278686282795013702576249897711688507360030785925505694658411695820882098177836489641535682730827859153848902281710106192546307617317240854146272335191037593072135571657994870668368768500561573023114183644282039269310848010916806863040897726138474042765977404326625616607406574732408038826649112247825416702187712456594610018766041673980283471463953520911770705807305902592077363280346892302409289879243950574084572337054278184588846641973240455018802830910562037690508149366652024781652463991083937600733050996573039479192285846250074693952067211967061502563971377979578748973494193850600531737371810936269292053415456780031070225017751018496997664130346457757343119833736377271387470981386878871487497831611112777020899298902551689984098496079254107211624318930057790065581741347168186714296354005845799824078192510329532231823379922598900605778112351117264186130796569991035158551377737346864409224727588101640164080890349465395242178712777747624424024121644618100319573066105084884689750874046338445770285872857713380521985959853022408181281174818965702543010560763035124074563607748261031247729242698466084928581256025884316407796352126154864136500210599130845485014734605723143164405366390877781526166556124073435797948852543946827287533689516961670906911607135095306934315009538714135927307809031223247317707254500921951959780094644985035318678985480438735494566170636064087482753495301056329016622821187416909971651869104331031240205018435438534172372703609452325488565566293647779534603949872715515836284813894266213034296738566821906242106063513368928785108385461490430251074027615823899177227030549282464521332356889981789832920474647798854443691192478053869004626737335045334585228857144959747366477066308843437363771356979792018372769340116241061175673059954380275332157952986715963522129371696866510981676825355661358506795294145984927562157848692830545624823199863234879763383774083029452336678663412718825783509973752081468965044881306763131283365993245249602987370079221156104873287147016564646524428560872975878455529316008637987570149253409962427722435619042597068995141523347776103621494872886519017188355064843874493430671370404428540679619663135589072102672959467455118645462689805674640608578676211833374008520288732384713343027081749299616376313188057649873043006179478391795883473763063596045254350665858786135919530822990155686653607169579482696253791901320298727206738932862643783217531384772187306576848448979862252848269938251751481292709871519589369637258902813043241825497125936058851607746856282586957619889870521291806775367529050842730945478745093921147406480709720885498855740582082886199369693229560574238472887978812370575935190674171831986056097724997885054462723557474342792826007666602998055883632949285399241506496634412441515476697271816873503592574763733167223324744717565455935677717814998799776468537719794232954144294024620547834557113212412954422496879252700705746417546204949642788047667794223847123594246871882487435791446634144035366267944381898072536751839352548019990907993428162099883340010735044149981498141680841939050907767248123879743743752936406526660025964227519630720027775072569841126749764862642196994285590131052902817918947267375714402974070417566137905487719857908623247696987943726124571061731901246662086479688528725248708178651570877711660033468046476354899655438472841830685978804120280250108899099681670698292837771882065539892488308711779407126304409669936657247683310898803703074982972236470980448139333703242652316560947366780367438296328952520437906985770924916086460361704098989546505799264038674244385879406464860799693647580104654659171088818230843291918248755911597392820602564825193370819424789618876848991921430205111692656604853412500542208398391581321873463785808943010861482549103696781116803686187792487515832102523827616548679974984893198412702315254499244029299646223159208292869189760724957651018613612301833844713367636868916011052817504218712473085307674490794711577464824100752750709497390655833799679806220469949444629580272866027490474428134580796013271881308541051175494957198561293039697394519989189768680909276551893384943698456633659775878025836185027814613152091019135536424005607200449052958092269284311916423282339003836778637732224343187011914673157726208310066815341133756136959837080672805726806712912738782286311152733959915309585556032851218706649326279751716209003253686275939202665286100041377472193421145656895251653415524188459141854646853904151623046374968539514263720071355904233521899369822606967488246751386493517025436155510894980643230455936906901805651727199885051988564374534375672840014946679207471510006683723847629988007452036626714884804423412855246070299308282268047703229766841294358203359151748863958156204300552675103811300293537012026099231371885517427740464379213587523105884532531960614166267119203696346971091603527761676895722268572840076690112354771560042812901340897916203506467852698579705530368741242683360469607241672672119777773412467216017166993509569172230197797853609948837267674704018268986278662894590942150475487891964105974010418979261918356904966977738058235239506512261157046951503033128640976526166907427143129068145153771315271454745746291847734928215009275910634158044393661819201314881980310591676778717078862156763090058924210636533229393653491330634614696824787152631803528787747094701270377429354053135881922028757988556173029336699810195019741608191593410457297859091820804494286386794332622275126896443925140078967980415532506093414391124442620994923051792011999558745662265427945937555046443920080924068151258612300222754140285696225550358368134794801959643918524520936967444197762204548547218639089883622117477216409469000681464324561048728685979090482186491769487956792973346729950277183093629455849515417428125706641916718191667176687410417062160212346234700249912926625030061741300012614636976030677648879211836773965696546383377270182477407432910552133913062412593600753757537805944005285494373250344971497670420211683936490385936971552322208309080285879898381675433608700085806527898584481896757899089653503690563950998222347675983919597902051045630345697230131966468741177293328376890206019200916681290632253080045909733424635217135720516915491792213388073328175920421900235247132612141690546779130603795291910502167572192466527746596757120265329776329025040750630543446689901631462220290830377485835354300367420246007282586441619742542601421975574124588470306694639679568533371377072438834456825488591624248491929799712584955997506274400561966784920338815341915882648056367556340343647206108798933016922036180474275393890567103412908986111077184677152001075161007307483239767583079799764439063829351031678178798197653532601468119022749821706940031588080872924226602656249538451020482015502989660768790461726249460624822051065027701607593812330776755740005887193900054226341746243370110552929759948198832012782936870955197802599679125612959901621744569890878639352497014544602995944309079639627782001819511044447316858514528854186325135076925525570778454932187267469695355119110319596822116303719710748077708414646500101455175028335628139739808624946483607958846469191758554990783376090837981469770961836247911719366927509714766300644973842796416188486372176142781771580453003292265478993002299635746121660520212059442126545770602217713501529535137317080697060271247921623324494809685875749400055078714831443395364309995901260820894329841784390807335316845253503326080902808627340221687020019253842780657788372937815100410104259112219615272654212522387536457236081889883835598109834891590068580172938348609524079742434227621606154270768421024388771785576118197101752494662782876324164318737488826942654050459755239239564170913961694495278896735373657230743898396515881526307556561740863655589113163595703295411359337615456923865152473463339165978615194128688715030511677497754982569212766377826652093843004355861136896354042193132178150347727278210961925294444562800321441689810046330966926599276570531517718880922429943899058075571788033733030646322344628208709975577582515839745143552675967660731042053227509387488905139277818204909722772314120147607024237565897020707086523330294093966079029776077769613274843961418488931159456851789430561519163180921699721768196891196705584182469925630486639784289348962057918963633728445678869130900329465280414426350377139593214137463650776078870344122007941996214200527255393468609565814275151196817749717006764946333546375499636509159668478819056608198811337833618878683001007674934394113442438984882247883826880051510062978907591532616707680559097802244701073604411716071613682994048472482681047393705523617449590634535797599505616325614045445258251505634754704267369708731941144392524096925896575357238984712345046297846003499055232500990610766182961610074647238040893575933423777145280122407521553707008537969262198210457520946757207262575659732137369392968285451511005625357432126197661291110675422631231319998507242556232527575825984749048589941540867475616051948554305879017745341676372691709907969247581746488074467223961437678134083526475714300958614881482232596180669614145322851967552475983133557085171081195692307113737799131820835669856046166221996764587794482625341873051457407204878874307150603099859993839052149340299028433072057628469575622455733472267480832082067219202840964008440268732102951729402475925328215761494041141772095490425678637457543991549893188713886274372345741819536984796833927555591698991798865832584052100087900297324599402399850366193203492242876380378566056543622208087945883747468942890732506692509113781365375848823150914542881908125087030224882367775300904958169693780556474215375625673022226583292605398224141487281578964241122718449994377554252803918038903233679602426720123269776214843319880572787224668504334389563311865345137586483705190995972592899650423642519824902717161845721102005127370507768118938586886969380908603697737844018968496052828525028533047368952701162667383150209381523390085216331294379910653431006427282709244655510434086013482772379804895370770973034117109510196804399061407671139794541174556370041230446838315612569237686939101754532473681044204529121619118679829901772042300449863109070918396717043796533817070484485579935481145111365542128071518270009157176879453666130669217309710256510981346552570108965304445820071945165185919359503374159161916958767956468145906954777773875589769492266809752848996711943600729215227520591619230589914006024496901604844873037255081910982439927094085723764680546997883503320532319420861663510978756608387289334781177526928036102429149038982425140756685751502595539562396828148162241173339296438194819926790538221333023107026397822594838014068498885023552593247261385311868260563177657708493494718233725665178966583551532220427696733385856918885635138719698372472112260481869367693025668238410542539602689155545776836052218262095621072080727146684696642440910298153635692034109003744541039513999152291115365972704787956482255334347388120088690429551539073413543847725766694465938988177079758158781931345816362965257243469631568124198031023655120704499130536765067584037190278472262155563834340769564757750012968566096712697612071664235123039510835530806525903244477030141207159813184476118078093459387883940162216670564830049797709286399922258489118613466138920329609370893707650574673013650588845853846456386021544812280656253886108229672935351051964706977325849464893185617391535503339221902858786827298940751207908156060692945685850601577040625927948092967881419848352341995631056820331667381848729852763318302776404370797543349505825435377166029982908838954006106204383440734000070429346577749564712133172396489334161800130593357724377147704219205994114351875384494750900766375734480194768011791912280767146853706566944191015409392270421024038008088745403741735105737979079750577995754722941436331950658637718797381244918874799218441978989680831310892972416825334085028936852160645420335229061828135764603154333841212036310636798094067910382488617753214869945568906238467072250580478576753581657774670840712990539445289019177647210756073260636521216717976034048071727434509007739418700384306377162018831639397076113393263873723909132328001466305836410637908969961013318126132942701218799061807145729590745755763995649583941065289245928811975041883558365588262059965262100784139525578593668800428239143642435608879639555315520516812107494910053355092465897420468886070639704571628101367848131841869364366050221304947775334495714282469224684747125353208443902514063273972303183750302092349915950632363981701450145343196315040046731830668577373998903632021563636075277585737615805784031451228570562645399788976993479001999419566991496574206671379640238964285202604076117536864638516497314646897035965687978408780203994271286323948733770825929688613054736709708455313328886842889922576260633423044485427738279289098942017395596392752444893092028915537436458374435584251263206610939557065049279290836171603233660444947552999321627724955531227570613814408800175583783865297701522951923808925902361579366397758228946163684485208466441470991964946754206841734096769595651067223673013965108380435017151781983902669464944383144887528729612176489919782116736627645680120933450890638311554660009316220042606102630342216024703367212282312096630253165943086523097067033270734282151043276587402176723757850479136644683127828211107401047023057014774483859224519004862158564264598088563313011012888131617245927306615249709538229397811432783759759916714435839990644452437302337906629168639627472469174607072979881395114730881738024010761452006533016994851718500347496306330179810791928435553737220599810127185728735591528346671389047568408192448545596332540849221070198476133291835434087988768993988314023570505790681567128229082639025034885410975696385828938990649833652518804280440482811487291935826461845625880211264552955387094881572643356221810062038338699169419090524351434903365043872845361143331701991815594746319675714099115414094452331681286943509575931374867516296228317099492640415113266645005498064541870619682293993186123238878015889100207978436993320235367620057069373767390251955509128881039257569368630099998349955255294556882116460112805952436946409958230752535923157220220989587818662383960719107813173976741696502705217030449103628594743149522066797543417533837330525533271430324347966588089020059544260416717479617735724256661081904165563661684621390457436512671945602947473272999722094616150736396120695497593919654546005216738645659290024314958331932843728839227757045475930788413813511538099563954934045731116154145896429734140000735523671361791639347686112164189376037316710814165413521967881072705254818565810998088731192194611207054773002238503354810841283225870291489616917307176446880047914176234533662785570459643544600659616623208742646622490410566487916545723137313736107178404772026671232658467610248063920524225611002217083290225603052591687991491727855357700091736301632479288823788377420694736510319699548032756898821278328443746342313151103106221087871983760124845637033329971420255966782292169089530252742410462414774152697571289596146162654892720214890134942888545741003651765910747820054963876393219575879894476082483520040650367603493031445002629098522856333875649468268838378277186951872685064694898207348497023695306772312789670474699449170684877429702531853676859068635983556338651971123931473447557615347612631912317025334462016055743281299634804783290342248355777838732470624607830008598512889839368395917909923985560843127648866557713474386664262550571378949531697434621455437488079169427506444469790366004902026500002512708726421839472170486179365406916615693022186716507708204705665818618396980161577919493774104850856876089083062042478172855609976939915696943769338790755049849323815176765160821648099006472283173976991512331987990321417289338669486704895331724811335072846764782391064138934629442667728049427071291449270342662522990965333211520126703418030121131437246181587453254171641518757630249231309180973478053921759992231746364417026958267796838611926689624141286554915333433943023479050410180450902626479467270744317137148168733516284287369839239413705148419613493398081703138031409053876833337383191495402507184993347882610149018231540851269269717991239630964393713643188680806661622593002155192356204494539113925878301085965616153341286726811110860138556432580058072257888931476351738151880061563482798752893293774995731021579092748905797606685859033674502214971651619353543603275718265664664802667537845956128656819423142185973948384415506410662727032099734129002866417096172403902860550764096580611099142733424808835930933650577740394599013284885611213223452905611775363255498593623159634656856989194733344822057700328813584006190352926776305947427403600508364014978402335756861601495405315719987246376087570723477282330218818891111825814108321332089919676879511046036770886321072343036489196452189505427946768532551827508211110144976993095476539539442524864127136649155565732178669427025185102120377229120040927718294315023756688214601399420204853060002590284772858989877309604213996065708463628266006667528072709184101262140982302043771768929081839858493953357587526401291755333004247014951104137301595688120288537220833645553247916152105191068556553689298258230840739747771334201965106459617641735565545241360192547407974289705530087251415328141601755179224613824878257460555807090362114993920149220012424199431499832751481650685267489656434200842994853783118355396583867938743189868219986235878135015831955321287218254333974612846394656349744550431868649487614466575871799710394992096293330109156097242252549705105279817318453809981459361607701153509249418143407367699131555669353203863858504790275300419850495213084923495411315160012910233714466099891210900717819103156605341325849255580897852922940220311549416615423479693160035767686035174995480479237539822021411836060147312159608797252770437055960499612495243120191660689360969213224762623475408684639720379659984430290222138687781606218752020211223084129725462523428580811762222816169728422074600477472488670838042822425654447206985855416565073453815042167405490415089534434343176151439107884888838245819586425218598502604009339798986042194109578013186082739331116400140283196254912280675955570655076822076069344855903059064874010650460874737754736048346182515666651585812455497321903268869905293828642689435636733956958376455315328939903376660918649418471623176219876415802943783474959367804377806688333893491281938408619853047777588216918973601851507465189507762030752223551400814983913886584959560042825407555823624365403647714098325942327674928093711755076978446904700677842706415850977888886706674009355281452401290335571150069305813594145506705749868165116218028740106698587302248960162492259899708722229648467411577287648949465939849896356015124384071097841896931641666169343936625913913076413289728353205014349694394247517679720314765394635933977884606769052362730425342414653791911409474486579165664806984341689498957211197175377628015464791956839987715915286930849633451598758046345146548013464924443500177245405307223268228723647817626363445263416284279582231616816321098948514002248070060620143156585988594578366048367123986408393432906349893029466372083190667337731301147858139505105519391240154326271282892767777071005633717705742945354745885708994355958745561852083488398067765970577626578394044713977469007926551371489441574533307698642366898316293312958971249519142106088722866778698980591670283604380480570195465065500377049802380558333339661589236393403758039954981488525096685019867541771175782219159469975737808361246466648431126107129397911875094043196160328297676863040213886852586128420506660742848448400228418451558019566608915792480043435781808579891533589041617505486218592148352672662723097478521208722444570005965354619711680929799355505342296425350203903866588943728378477131895707401339759743907945543842883380766723766207239922561944696430251800079453334905227856537818139248250234395946412373390057109722220654750478777404767653117117534948864756541334765777179118408853919549481421210679276352950982431891392947454759019816399570929364871371111622750204374445336879161387080324787251037470072899197489428119209357138791267276646223392977164590596601193075916155202458495897442232424747248516339681155203784352038342666660858003634751007649575668627310873336088580502149233820193611242915290663600655785598012722343380895106130719212102273581228430362252808145259489070892219465661737639687494743105571051443601307258503568215564651169722106813114008656795930918990452468085863768523493897311165403970006302966803607230851410530195840439336469211606400253752891994267040186023232577302521318157129937103593190999527042347974876721955576323851138175881152642101142456248891202734429303183100486535838866276091116058161807859346746237647104432535578516175349750395700313337686991353757744657370036310845117542599132950910420883438248648745572250377011719641253254185286853281856544695087576866183104959270225079880461808656235376095195463319124953464703616113621189919122665651157178302129934246505556149436087952882907237128221742545125239640086378219306137544301302703533188826439511254138967187659280338393172692900092591913173108947754018374023596730088224976873056841399737361906532665961600902934049881132459633374450951519954978689335268606943384565250708020301637629749946913098070346299377815612119787933177131005291213426373202238883089487211465612828708515148411223404991159279460198599742797496920575886263884876030269454837770309115938067654209908455037423529845213393617561450172948213102282138143442586608799355015336332364989974198189907930244500639405098007347465125924616046063894255239143882638036457570588919316792885588254161252894086250574785562688662983260393587913722060185864850738515482644898394986397815775897438972788973541875152141766294897994408980642401946201331917704438985777600191315496126995322615411290918934036812919612162086215349651438663878363067583119919786238522042211205176307665369249958453349206364869510415944386482521774852591223750893475205550305221455073013479657277387562019316514454080100345721444412728569437040678519638033073433958194570126245377544607375395344315859959035966537768537682502986797829688702208489017239531455829553693901393293112542666670146296113434487655771576215490990937139964662631880610592250322778643468440364655571296585085412424357323371749810321763763104922211642270085557792395496088933320727033908917732499581405190736281562638233443821731122033179700621243547752217844226569018404966827278807670065887943334807706519557090029773597579405172948524011177035680683814950772835155886179978872739842484415832738434307128988470465647569941649606853641222455235231252791948292919254036410866571466089856170027741269589568404720928320814013954140669008574634200261859648780865641103539375348216391590763273628052052304203600223330846856075163459099197760404965219919170844862041912769088014024815246171546311016995706281197011508796138420400413605162865905723414174913493149937276052278947839226125679902468289948906698967141524624260279979258288860615185024334135286143987982507424277590948652146756806675778060479598935196881885567463613587175770429054486512288584733712760870362242609501686940523974185955907228501529961831407492332584918824177173345548282787352316292949859170770312694083569187942895269749465122778915636242845106822824330012546512810112694072983820655175918508212535990406642358697702274539844510373158732651816352469155052879275358360971623378823573041074147452960540699949939575284204573723033630032635818462954813911869764252856336208010068904863146681752835156846266225995513932228406995243777001273157028844161648463119887958851617859190779893699414505986970024750693368655478074965324276010260133988496018492732764050113038653234911151492885577706994026390018804898341901342117262790842448496099797603768157592206564041925634854900481152279436511001401094422166164483070803815150431128696161952676631625715442870112775560029081817526055348970408017199890754767649670165745815234643611747684100061406925245428663335165768485787574402938942915369881923283541257942402278820263514623208150018510614490696652881445605049515807909107497224038362018590903837137308925788253981363312044151910405577255754844573874908565374457879367280720823568337178558294371094780470675691942177623753996923583027807289250437750834121621409831860893535582668743436732062839853474073641581860494629373440562187693745184033753845048730843949788831556309665163758201722147611346416217628899917710847761311195928589722053793596960729442752547730865088189482240964090048622676408483520615781078502548963587350453553142453851156979257716900549202045882944135024051873275638196989522747684033694756329075644695472679224762171369023129890270523588287883509030118505949617588571123389780888070179764920930696600925145942655876073713632710979247407726679760781268273780535927200505664801452794087125204785973249827235568445456865196814073287216956771236214422497967629606156724665153497483885792691973346367507170385357935526351460922482992754542247307931574529826935187533414990543915505882464638595337458222478853512873181736063030235199177785349109710272853789669416685525186477292507048477504217794735122039787114948595754726291076467163831216044517233956390460472631731997649698596351419373096040067655489997812095313685130118350271160041357513177391189810441445879648258652504281605374327638372966128843572005259557477798053524189765605289204574307546189549949166226370455494517179803010165482091003353040775952033908010682114740952614984233356794290692245731336926732411860254438445255436048125320282412069961431867062631468023901453009122823321287076374325694949100047607144653032297494073799768287284988058527692808365881489062762771560898071969634235698077589814017028839817033288959843000027006372219267833000492351506079771016331213669385950725677210015856841206153617537917059879288650970781495723348668015741547348700814584936379390411794775192187096681146103292545388566451526890337682817317529613127327063548461877478325830494151750611064162164309151717411731563564247179577930843980904427224757002047813273775149994805434929116262153627072696196566381856212377702522142522449156000342094269381886369705248715581318696258966889913765102055599912831327931765562164931637289193733869220407010993136842383689356490617264190234985729585903178958291521568778237814739573300632609174878895203641121325518693491441617568706160687625416416675543056956968122292586512063434570868857863382903771033714894833160646803683686085959001475636675728171101418167201206774092902844404983989559914634788903064775085262754951408852886860651805129511206646083007635834328033223546929459977819680856091997018619948425649534095816584318315949355835286196276124503556367502508867098441949692991728803028989430572004668712759945098544829983417642989054335446435295501662295519834232603590790704263814534461598160130543017337116724835213174123683170882991368391729955657842483231502653626061576702769026089492814710257329734122554032503420658583829439164903302620718977169167372682325497630316409869394695747874592759547703787465495894741869012136916402458083410628570278170195462961814485064897199809691946666959192006015266070744205852764531197305092965508433037365715238970290347479919899874766149991397917227318542074539819993984356611540388011112532348809102104626436990387919415054999897072664625270799920356596388470380713485876002432510978576367606858132110103328252800103928220603818528298849163113527091714078722864383368485431577697854084221406181514769014415474168924840199735614732706179823435907048495331206642864117514696246108057106550941257636403930438293951938919971654835809676502778511432058953878672119771727779792502056893565171693306569621006206587928605029295887143074587617423181981262588061836910968923747985381729687016895330285527412260723666266206282005045748261536972288266865336579035296271990905641060813444994404651708110287110627204043617857024088215734552162523369955136988880197457096316820505690178622573427444240597295356476536282797706932225940087515460955536664958359016168966940703222424202755342843440882222486069514350592972552877492209518983534849385864159795998397152921837540155131171911148308756580869402815243199481290744256635390494978261537072980049741906054208496300630400642399158181093780210024592019936632567766782280187783251058164350091567232819319254937756022445957225098148499194143520890513503009089512214729664674522786548466712237120347685222468225226574702333917476542857559348004835115403218297970094926883563340855748807589914212135812244055091622656872493858623380793915060244627006267805937016657429688905920612502365877620968632822040644604866439553189322123059231008956942402648823150190810664187401858933867965767220140173282200515637546526478834841672654746696404585371817491804551197587406508931781689834870065468327606105697000806724342469163235575394817180999823128502132906061038470135431559254604647005046433721525031031221604196412269146405467709854846433866926419772859538990953611186857117449751523390945738992719479171647754380452043775893368230886671371081209372917658204850221796679173394469167096517235320938509579381870400830538570396794471638195656201282293311842212502043737795394504324426944478079327819488719976032007623946108717550465663472799877516009861698245936746511370113404774531170284309306153407236338559211993476927194102831898586095010800578315706775129916575744859302219882096365553867510946847884207100097179808222106079240646843804080141557340473047416361145081779835626259733453838789737187905854346834322133479643142696209650093669871795622203241946014571850120405568277719434552388779637561228637920008210719031996242520563291275728074739461905406221294272371357618737291309700759945424629212063153883424156352821820174736419904883936661179168650625264773827924180180099894437602609295885023742770115564244699638831950588489916803321920867004854038459202752648912151910920935197354084963912936041007037793852920498806967756473321801076470494153608860674281483024745693754145222728149575168569059855358665780211323377389336270747379247646986756326715723866350943222810409527704571865483112451855431395057922343295977704572037859352138756198810965973950357927936524214465496381795788972138739538790730365690451378118645206090207745952345335195844650881270137769306726175299584381315935794410169078592528808033624664240854253121835407023768498650838341301338647889873081942212154817816865992476308368336862478655302891034919365813768602935335120828470004255105911984308268643862354570804539161638110057065696574001804091911768208763771149333586519858640607133667766944943157307333707151686888726051768993142621181841103667051069483667083836137299821256176873913116035072870913255724451765564479371723723674317240647978223674116718588141951153832733340149156147024198993251426199265823879751123037574941646294324749114500806206138558022939824895146160774328521822534351159927950081691731996650646725761228355060526781216177156058631452486616107333168165386995615672786550086007913889704489210588172559069942280788670031498266126779553361893349680277538946952981490426954890715710035276796104171827729267727388641540819078903316890798524781434084847165808203289903893900979862435339573705875093812212399467094894665705728419778279452103063451091867744181021206074681290241816772709280514732755710999598445048034859891050532765279062271649154107824849184837742667423274127155719990810386281235172340860301402893124903799279067995833920010750859289925197900277397200226844439695862305670724639313191968217811176843751228675227249329357884663551214161118690189296966233197985642305804122421306648529577512781578166588854156192580011127416717496521638725975340486751363581098703442292063421342899377717350303170958186689115791172163872700335341933248539018710632209229940785671824535062081103796972913883254127701502741111564947553738246973688215775460519880886270995856842117688804575724236524400892794461233271224766345177581347393747162112868943858494200622771221555900326074163469157987980069844728426000640449330859738497936558459749735694809655108890323642258305896667471733281385506749281709265530295255075185320561042531185303052693060159777868055322917714681028635972503550408523742529888892195801619534496014239528733522179014925293392676671177779236158754098146872101407418851834174470178397093735142864630854414241724325677675629808228525820415424780402792873172819065229754866416738398543773240210179411096329306333441412407868689228664561624003364224235228825968006801027286653479573825913218902286285010924435877232496885564768415072901333814141071894133375149076629122599510037198393475883838304266865227401378932084980614758095742216806239646182920532693592309384468875677650383354421190819348538789754377702304514660141765652808525587656798073486423553140874350691855421618115818876812920901848438613625183698073676000907465048663788813459686494417612307643895162175731665800625163081289099173735031618768848567259583747530687265661660171503306875089938851542217300540283784575587796336585645647531946739995410840064123808662444239665577865607381092112595861850423602438034629343234025493988120339873573657182252962635276864723107786960901707791487640990854838139125404457051139522509976938724569512933133530758382892543930977246065959393086659242809946869014210546314288448995146299969502862765905788996283319519025599582622043620282065036485467600429095248961083764100251792990574636747490126073093246369772365608113506106244197975160911994412641206234534632607277635070258088801492600950746730062823398189231476777814872031981068646035036107874148560906251277734548001055134393949495262158336878837043688840931405235946558217672724825808926289052160363170852715240478365515104670287139132093729080901283772949600797175056288691542328927281366320569701262066796195853330010619093281355390163387258389537270593311262789520536579601496073853515778301016323224680444737835791958831177123421507515967192154396344311174252322960165563114214444151763540807380951972301589182301929350863574246557084546770339865669995828558706722520013721097589782097182668070357824681320553140336209112745756802026041017397120081653172426805188160539778334293367343890877431381364819545152905274547445594482964249697775840825157537887422298113256152494698311479121860858884140028213854098053306042936258657567249475416582983528215685033565383395808552851702717998094305659020680801778829151017848844498454875164699817785092312956732979066450276284163205459543036166802764606525767439163350424975660795093542679799435658337009590331015350127432544311624280625442224439570705359932781020515015822660667673789136229691981160922240881566760911255117736733980005000522521233674728744044351436173647260878966443828764173020487362563782895304585743324395563122536018753298809750875346755426912292511822729807590440370404136339740310824293159203812506546729145989887844314745133383386118036850944390760782096010750570323151557862869569077105546999957143107781960665555418155161830190749368167430830944806812476747033331562978111935035476306321152348463754710871483444121952191329047080056112276817756655021505699414750342106552886674775023256155079489296884857930623757737477451245953386163540229476207461763824039094388883694249535099152989097125946096812932522589253486463340672823081711784022747076481602371199968403049002511956942528483980822199645896777385135075792484943588368158351727588549562903634027179044876424917243490073857541507308335377025640989815205050625242265797667175791676360487419968918852490474410343922057674295193593050817855273980461185810623626486662754528648980440573296601199953939249907798095455798128180192331613406899417787167483271392159519073973619296046597236528189581450593799989060574864401878270409752818158605705687031448190258866796141367245543609632344106361999383177005669616313339708798655340559152323592807183372753927308849364979996771424879144819388223733958938705258617408217033887548444500497925683170048202113627592920298475845014919119503816529946902278681157081533335589092100068384503170066734273911244694045069536042673511723311197701258884918995133808559854533189537471866554800413814443754642042142016072312958756667401824425023004631344564457004488784310100581211348864546239110656966327096230615860573785422956018722791747176848950663578387895456116977873709145696995705007769814489583507814433097147087203096833078674494744106382040167855673435829753802757393111303172628878766965274780664841679327610891991394179898422477290308984733058670692888459637108871607264701113000554054194178735848111192967980469612177360473802469160696835661489863285152725397875474847671002682370196863800948006908047085515524804028737719386340462843439577056458651465203444829210553751260958325349758689366821077327519147954263714543108212788322710332760154249569517171928625975400023047610312293639140022957308495488875677707256926710748616131785098724073226146823337128188927962994245370503729791291138454790735266360872123838270109353530717970810879166182410172765591270783207811484551278865842701324706719336881393209212021781317590905748437413545425719633061023968036705539486096321591873897942325246332900135842573838452873901019254878631523440828328278574756920917869548170088993410414555474258371723951277470651279161759455783189453480760190008870666730731258355116943651823159894810564735308961300764460972868276421636968646954540031213201726290993557069639684480388860459563252865477890637395780217235704347283506469230063826636778079108291522628432415789184400758950613839622439944164801071788080705827795854433762916277618575485873378506369685796684231774404457261362763065857099441404749685429778690843288460682272586958126780020731878382705534808045484298895530729512370899180770536457136533709242431174595366471795266910368156934088090901500023923812225635756623981534059341606613542635211590330077340334553389966588532034179797477654172016659039177720536718132085499917278637668145286195811483106472104403571613247213706120956062305619715667203430557273435197779219709977023039918079025796035178188822268366945553293146413864018220079922651097343375472347816740788977090471017173606734622446725006614427115322612990041932007130633944942454900910006517038890648690212157208841865340708261474041098987348200411261547206389371793650219866786676950777494766670042573039119296589845940347150817324920446561793796428231373736519771892732150560696619179877638711015321374473917765684053583254461635433902292067978270133568378697177334292309333186308163066478138623964262864284894288588685135783284333235923567095829654390769852258185295791621789797787549512683730586203860764935185427088604889766070344194914999576385384724652229289371573111246216717488623845958585890330487523899258243246827612222832502984987853840168406337104637780466911013395772525747290439070078498786964267036242468591073858356209486497155157856411024828637630280529069162489524155599051300966508613471836154837724384682380603183499859063039250054435648088046894176536860657643524508691973968795169855592840687211306944897938454047407636677370422997889805296829448294064902338262585289905509510167548559940978331315328147227993001466351914149906505465642204017935532360155428045189995616542656150297705766071095714539402230322447521593969309479670600444098165642600265798208190571516703112585495409821824306402648985344750993568099118276651726033515881914966111831130234346672289262408994284445343271667467374280569694532121665500948078410825529051983110357865700153704644334039242683971548324498820133360161015450476509363573826490071964887732776949329122568468704172146405708651196529464040621921690340042484961743688111609424276800191522671397174604618812784892342426292821041343553918628894148988501078766434603390510280489498414308405186912753523213819623894517973196892759759688315370337971400055920000537380302291670176341466886198296573664368000957397719869907039230959804577185632705593085448988980451941199903083090075223813459425340354449296526652167662281278777275690656021181655324978141452536436993749906270082272158242721192589242317277001797107110131359530506828886211402582332327296805510400594568101024062905543554892444703820735517842286479032214294054877115518092302564307349038427326897048714372876939791493395899886942010613276451677275205661312133615605034804744250961293495953533805658431940902692047600318893896319930725276764496556246342114757841371998704011727971241773315345948900799812166318752961147055374601478627345846681641395176028628769217403075295727217053935747598810506533506956569369190404707167023118127557923456897535567511353934862938328429311449238018226434173644633571655967150706103246715086116549623041842562693649145144174269221344780290010367453972501445690404970629670163995493044992499062473987891465517404224074723046066641003749555240428867463627557310189944340130718012357281881594921380756563404118280508825491116445003549875421931555463196001377831795644792159199927441275533057727634700576954646339683219914335332854999053132560571751199298003393064390813486204272727560265105623615836322509285225373550752742571218599054990991958664389583144657767114447474141434239939843217841662901501825303071159458813789308937460263089242775028995927818441980297308248445664733568631287594769770069925594869815278424303795507965255962909491238201631898452137680860916914258030912628792217164342596869312400196612071555735999973181322344779295390770451184354682613263475676093016533367867003209484342956797821563610800376918785017246052712385812029975836265461545921469781429247371292808117327734312808412134925598039375971101953252906873819717556135795124469421870074633449469388393886085254215316984862627265311721658854671170674851145386855705842607841878920838408377676645476964547288181818468817662100813884117346790006026218214653068731419586594945656555748379981277701168709111572208498578976636643364743685455641818172303419272853764399519983101482006081562411002866125797966369231754582439029202628369265948840618339428737303808430672664845175607053316810596349427852733887445973416864154407220002805560491333329849255895407306703889378068392765864845408301550224771428210994347652981032281068115243229226123368455102647102647729643562423036227543734405002576624864427856273852502476793692912884689304722316235114348784634998621679399802702595021626651383818853231758730238165420605323635475429799446810641755463290561899337633445659575135919804372068684636671330840574162721889138948974277821372235664175454445373123130872379982990211359431890013213762134147923598670766442601216735227661483983988193413470677620593063004737339896418936509802804998449402510119240250802382972957094040895204964340333510608434029220440251667109056571300233943042164476269834560512037467619349247217215244898122152663957995942398494911253321731617405770773597131796820761971412125001210922050329138781168875020544283396305926091667865824212814027729490935189886819405191135664052811352150333245257534634056703051178388807952696084436294344859546137681171490861111785870372030540250570530347047244379183060986030248972628317803755350501747735472422008213831648721787195217709501011175661777300988104732017506740169230561702969264989604798554328454445994469591479559762354746518463334341374209281311985177733336981301415378342914411447562071058046392641539724783879616082193528516477952113674393140467137568586539118250400295261436077692103059321553730378957880318298158667684359867467726542928109516815678771046977985828743474711499335029339659014791298408044202491821229183448203117272223893844700092386791577089690130103253513687083243174137301685933346647512449413559812565374025592753241457516432165598148650434867252913769850262154367214776948952845769806154948251225506405127032773010444782842434144266267596019639910822572461170417204427736169236794251023791580117692757443319803781706534861387397621580640475665610329254125384233980463501155179073612258118913358554864021103389771222428908199407055430021155051191178557830396588050137729450497414525002962806922721592349621441627072171436763290405450404624368226806445812960473245413759019839514095372008736119073297564750587673822635183705025114131414021744944558588305013703614039765810073725635981114806910878813858720680692133549814112215487136254083781601167745769555718508029659151574359096691914465023442086305500558191346054405224673159412717809379999140940779633350024258105382051041671025876466537251240346860282526352563234243396806511019758603463969868754798058213617120657324199105794110280905532867741987267698840045147806314335903044882588551925156561170369175653624332325640017084825176002784693147530613507375822837512959006624060172171689154713655327906247862748126719419967761308500848171113752093669996181925981640645774742237542704577977432663484772810690976483532486240041630625917239791319207715748034588386093560967016728347942687790799956663251376918421662373809826733900903486042630026356951427755584174654826572504930443424362835259979261634792419764919916694345200822520185534652643520406592472624941140490178927302554961249043064193734591503760687795578025537068426242382581600323554222987343221217958137604512199475930464053224713191608835104891421840968743913863275085344400834567361297484684509073463840256342192214840179159723042329245368641190466068638174861830896871979002773737690560386325155390271638519224300006150495465908586672245454786958174576282582413040114434931966609678634089590843152485504608022705262569658376815717175475097608456726183691545549931031002147800095949244444095145486217640275222165543001083175860481399380320032177027929031942848461970832657579896563784659493562879549340964495736581473626068593634733957849322258469910686241847293621313408168153589475401818705310626755775463533239280037316827139768245117499893317995321508294830750103684568956995217116036160705524756641898318674302172058437958404881023291153839035982245838599465734851617618374160592830198578955745179940283627695059675125479875908456924490936172960495824642911103177616025050430530485605934331056722054696781114443588549158335234482535261057801112512184563473549728769456887517332545547171141922515073265217442880184741312244477921480420360627464672898811574682958859472804211145229463427483975803617194946798750898416277457315275238595059176421029905821305232333397675670069632483514511130636695215304833940478031460466622107593610972585062115138688422572384782737501615447008778783938418698801109048819622638359296612899455274853475640343959245470099950774303237910476024412885739725113791946611226250317610396145247980681950872538531592139604935642449902269215165701083102574213199339180247801609233475727422648221713573985662623615772113171569643440455859108674821485458388530811700716942705100303255540290222578340993430897548361735852474382637017162722529938443858288226763750687304307731557793228488946748857736100052443626294085867584811211916070627314083751008502057791375608155872678919193047023011824388089172767533736364993830330997949262672548689971704154849213874560294625783062253662859693733827081846675694955834363249092369924929394473708363129571627634372978344235142119467249780320869986533653812233796257966921045685618807414691972351428622716412472234617415809564766068540995051888222281377151588574281921697685369218098325624869611428600627729989220291829835087367820822061803424141553689077696496833385188220895611544097053751976618176031133331664237339758675159373064576275034031177903629415227044239717048247530107732973512288369229906004173504320067987922578194654574724364606674541925849608365406880449799449903810550237705881826183566385373187404765543082223676680691769680384688713445280458736184759423069854675031225195989997792293678566725238269872001533657958734978367132193691344960877921850228576775807141836845106474811186541655876036776825705576086066470921708622433882545742215947592368939703286294698694900192175145124931677278248858862258690878865454933162774714470414883158345581776420163107000950961549114504894714302784498989375430516819434507510894700138178317246675827317560601964090485428146294075095714194360843794843584829823097796193476527423715953841887184900492059620136467468337664516774797796360074052831519928979225002780617927415732140510875908032358738048506306662806892839095207091172315644496179247796416192098870520920833409474946464262102734080638296788307843257188984212910600565092280368155955213214187972425475539655188208979131273436979591748823747205626917985369011252911908114776866111403829281762376779097280632474789521421899842117564319716247522425019159575933397537931127436556643205462342576620235223670465631873304655329348942382403650376204034252811438862169508580316941503046730799502079280145559753399353460266792219121966955826406637697231240616171663896344111926380794446976491578384170011720343751233601776644303791817185641232303758837096274097980974962264335815556719887980836134606881216044633100594517575763127257884643532797182851127127095449988078409998794903030243369730716725975237664708411998961979551898459398669392074475360857356692837959988166076690790540229849000021548536833796676310592101790752530952148085208357810363979251969972171700852701869643348941841390215731809968819295190152612384662792062828234155972553384127057269063698873278933142144705042935150424803219480533243126595556183578755627382907174104549702105728689005254752201436658735198404148095766219174151042908163975161278752103586317613759771483765240684911568081912205628398268419407088426812108696252880385094246296083572557727189673942085989093977313619239678957705040905146691911510196933908576395373073330677082453303137842384407514551568062804456135995654223398126100087507455834124941532365666375444001186590347182541896445336491422149240519631881597118754673427197287723883280471243061335062703629581192156640266753634453233141923296850037339630957541257609521546977650859203831325691495185975491203461584586677818808262432447847954498172546128160789283491070591590037841374469090584693754788485603668645258234676659114624677801651692180191326244063500578509978697776042666450452090675827886264344747983264772575874285657420200080096523789467951342171653294692956228769870672631788115820901089180610680231409298279560561773097295827258941182684248922072182924600755773154566195749063979307631280988979487278644788947055041037000953203366526051264043172277709832660360830508351972606297043660960838868390693145579491338079532032338186017693586434551681126761471972917127717757080717894098485199515516566754930298024929052503150237663673032920684158588983432952732685159882295549089810498740086679620500139293109676045064222579222375353685589897725342785002208072572576373578650650563873120077354845572400639541715517449801706988786581655654075736967683138414061493978090649078837265896440269349943494814885524142014480333152051951148239930827522250050905276370607776544900169394068162363998753560767487139439304419196395719859687170117804222686638999751108162683368252146466676087917502627764830885360873794648315053772278671078225862259523723732370635363770721840164632072195484880543201312897252903457853035053941340645229340931263012969051136600440433402130864064100463959748991992679924285784321627716974492428592862833793057133503981590633561369883435342405769779691438544424439030251108369051663902825824475934005090103754443834529535333039437925154819587141429114866029760316347169113276696657749718647673834318277165656269888919412915186426048892548160918305434485919525054552206490885447914795160098327037908303779062403655177319910525746775268662355234348975518660448852349225446710149309828169343053171020447433469384192351160107665677905679318126326630617554934130600837922892960983142641298673678470590573787251313948149555107522613084398175648093025655613761916223445852518977423635494574719459805271583799740965446704395406902071703517371766529776017374154098735487469815894192445106586577697659469497467452645598218706908277774022043749078572104815692061729191220882598952399935597339704741402627270756913950351034574409422153889010434479516656113575449822661326601605462077113030107407051534185846610940755137483782544223296522508985338110414653800956288379001687862127184814805485539596827746926334919178669360249634521914263033048525789320814843410867809871772460306233032601791255433283176057150286508162651675478976391166541650080157140781751329754514680930687638020812058243285121348590822407062441122711012942724902728172320675092029044573342072034116200987853471602924219025800599762312227268659635993518881662820481810326601150745625491110214079638198189613280815526443929869678538656603288342772070777485303965151902550628067534094228846690549935951649163640128406150330855959316684239237651899186906030338224589788027927082585354165180855781511417998159213467475941173483384162591852406407527779529870572557197062303122772450826044012199154734041632792552568539055778744238497184671335269869582434617075831678096480268738667292467029345266805438080747792256823325219945021256853583562913129116347731178672037344619714522789727499394201362826269922986952464845435797046145665948230109376878924801893240274174775255701068542777836233880949800648751898741091128210223295982793844045464734464825229843195765375419408466566454690940398603840131970817485860175535761562100362232126290073767335730863344196212985946754982885289500000724385208449453052740493173433737936465506114728615492524891190960172720466093285431552002296687372961767601943041108553672438198607354874662417032218217615064030348148748924903939900142084358430060195042945249228625577065281087973928738305979129960526968610403487718767221739801839298096176760800180534536830693378949754177340979119639627684723225911702963642315671446419488976259753761307275145304563678403286272624487401623836857099944312813330367633311619520426577033407109447084722295729958588850806759910059099762716793388464794082211765396031503217261380162191434402846634852802626372234677791372088155369134219084035308858944457234206766230245608021083039959233304515535463740002458487110634016535937013230203351393579951557843961101181933318678833719158481299743826227683291663960153015932122230186853577169805763866129889185119518544748502289816318001396152860396302590795559381794072543462596177434196383128078346273192964061227283259980976515501455918041414390309952916482554468308794939753499319073673493621250781778392213651683825004381764553997394696580883910469319407771998862773532716427000012270344572019956911447735504702551924723933101244466386026900600735142880927551220995494392386251250609533998433967768971453733876639648497401200359393268382447786546592853013370211436457161477906809837731158564024467778054907760948244899564687074511016198217728074923377320080132108477049417844210438257133128652874488059122818160092729545721532365774981671737618365497171034640177759222037718778257119955753633723643974811812742096056331528600342245454507133115381863277114206718347395472967756860944850112018795987255117668937583726819998814591933473616661350207822523914284809798606718176955977282263098137010525894221534108655250479733436221280112467602789840833225756229948759910233464351166370470590607073933487524971238137736953411291281721765855541678915550222024056290301797698989573242785382816721350767027404848880158847628104844709647989287368136361485283184333809335823321281761419137869108776955029209837258751139194947967620484805019957164562747357364791415476025956173508997438490194994855982685557914912511564957625416765540069021641441722775884454630529219172122769293625643822455586775036653823673404890003115397078378183788945636303993115344110061723195883192881863811536064543389503745992237586194015072716324786311708264643387546700193861756953366314544476912315383515853822009099473556577825867758703075034599757002217379647529556243511002471016648930396665655311254556448230585969746179912713952893287097565693549558359177665039505730405432956990983790729041162489567427998262121273796171230546490825998673578357107392606726203295623567871576470329309117310215972998729630179943203433760577594439921488229629571313047088157536948375410033807792844899863546507910131406768250891274692399446225221903396235606219407540105613326264802778016889531782830008051808269902676845378208289782523314288007324147367465799948694980358004872385151848107282480694531388576506115499512043041189165472883458638702654714173811557332710851024448682381432064875497738182328478027750529529732528158399523376386251721012087360259979410899365990224614889546500900158100919999960565453261623304401776470410956111263820140729687224991862829828024200487296530479491409311995006446290646980659212939167396199700229221144423564098798473612792033293721728620381206999505793593893507873417138023194206732708267742039851563154818102118560658285829446728902958946894443633045524028551541971196893917830644209725512479636500165426980772477409746795873216011734372545615870087947032620555297007315782996434839802487278667747207993115880353401134435406344448581298092108764013451210473563945966928527823718684851018619880696777186224400470400900910373369510039486306113960207819313436369083056431791914802786620060169137723836610420887591883313746084089241331237730266128084881003529180306970414409038830008155178685171228028700510607148144058840951904366968055308670086048380022868938710901281213772500668607533698410403568736128582833778557446060613145405658198825806446757375710380889882714778828574380187786130145000137956222885287693350005748290356792028639937054218875706677534330900598282474571641458118695161451022360992847850337520212081988553519860026948131682710621664399241083578131981611413942341856682720751709911742800136122653612703524174768105197878202963671791891262372209799955520209500464596783016769219027960413267575553036794557162721940022029816430776601381914110283863560282754166542864577497302471696083843469400961142402850052901531460931010644347208492519341291361397967627414275292187300695545646970021346435644677244459979379901020046408448829792979492932793785599985375413748758759381255666286813884795760651808010894749638716519596042217493778171549509696690448738871714162997122507061406882584435807192662020615326873911609788843984953849980248817321050320503222945740751583195304954774405639390257044501634198989412962433295745647602475777096842239591878678427738369484624191212227225160010038483361569469354645522519024352892501938289945692243977047169043424697777108462755570271705654647741323949845199535557394921608391359161832507772755671594245564314993438676945407069455594608336169130634729239440873806618309419157381800296580657229473184427472025463792942023381427390679313011593180212876459280730347514574393907381616868463908173327482337418376403330332341025331590941216464094375227771917209510611303576921318257267303753732817064014478188939179308297884447452845517512316155867111712118728154817889996621368952217375589498441242207419494366486341573309485224820985484609031371334925273280820346815399558616693894873429872096898144340391620939726759586370972404607163753814168339407399690632035771607614271473805137705385817797569564884448875551308491444184641039311718562600476185448417613871851590915270441999441251659103870338828212387916670822015662262360851674471808851551832249078694873662625958312167694020457875732462158171572137227388726803065372364713584423556891059866266498521181401000657132643731526634137986590621212199838973988048443098850419037592309049099478797112001918373230043793808793444505549392715449215040910772890566812705619605968110993405710973026381753623084580196076387180498265695623202310410317824207825284942406578950641348499590741537942595455436706777854897722143518887221586052763930917381097542406517505697972538152366008974256928962081332388936888089057095838174865554497783444956276415784145488088765095307211710968287766534098654408636121201571138654326300056355815554389907958476066301599636075802769047638508722000186647451643847520299598502690351898741132350174620257197412795486085252698824869482789875036456225381304921925754480116828411730951727388618533264764832968555557915907096475243227978366662140811056701690870786993790102595164756866805475875878334443781676786859594439996832791623068805000103994625497226064052510359725187015286170068247540250262659570748421018798465067406524011217084317145668332618870682278616147802378775547563436079021186744990974786354063708372400261109547931348664989239430615475934793700295991206376356530744873109179775590212338591713291534039919126908647540958993036974691049051247944939586153003399310953737948251425933616583309211724802878276820571979942260218319155152521407402104357181863058172593895249369531412299910402641195209556149722872000880865139137723775754960859012527311778260573060692416640135428920923220374498341474321369946322404398579179921785527578902344550195451681298900592661466786366365161705873239066658900647906300136503915051817189894785240800669767793417306023272290600856358201745394836706817386094821499033733783142538191332894214905021952980879312270707309532974741099626935012546088406959074824717459736912789743924119701863980975452269943000012203140131304727201482902336849944353835671383875468650538462315316971289911098717906174361076869265782462831934049166598401343683425323456482191976400064460443006864638048548641476360078925562699305748585422011147498956489551486500256161788938373660358310758330499921499046381217268545130954606862060205300981864705372635884045546981766792490054803416959748355823773596117005400703186302645032692515323586455280177107428632274885174816915429599589194652192048223333176185644690351095039391700303621492046169898623643052473848526558776570846531459483292138124227465962674793681330193791136695140981151023782787838297988047304070408476503247209561968999593693074398250439384809857019583986597175438019777030900592673589096562947802567146097159639830958683263835663072382942791284030535104300546551791532005090617450907666961313360112935046840165187069292919287462609781132568374817075717263460902018300796440290459708187228407212836981552136914513277915086126451885140848569599855929708372373235683969668672797015303121778107604301599516348521353769887155176911838213765010088906962085329259146443939604779627157915990905476589289556310501870948161155975063946356525599264117108609786362449316366371232579292335420256051240366477011748357949215548649032990634739066118742525835585542264427905004872290266554843395827790225704718230996277253419861753486330597600488042632027571187903150229510978977862252371088171643138712307573402807103982936704144866218629205452042807021761317207617470331984524857807977991726999977704858936004956888324871871959125757350825889295557275150803858967883567015813374504186518366697068163703125411125842254362740357551926320071729455425633047470211155993355832253126403680981799994988986197316643392333752140428040310827525003121531490342638675573773343332410637152888747099276688227933644491837495751286749912821255972385431092495446307639832320878199200062513340773028694756768871524114993187200842762123104825015242943254998087791826774212774172325203718774308191326278555037552965306476396831296826193066218754775331210668873265314616519896405782225405472910446536609466730295382362728044944291241346666274555649067745199554949123999761862840214911609528101410193364713819547746745971298217266483916830468644011433395785450385853904195155057272313256087039222906484964847105796144229528959110868112068301462031817770063443004168142332423083044673172114278645976748151735536634714185746416022541869729024304151572719046490342761420192153466899572854344693846027885372851475211587466455652063676057850999159107168478363937662035337566011459040212938140778445624610619374001935711191704745089874951929767771996967675301175201426368069204967596426661042585532755542170230397277044248745346700140512351885968279671194389500486703682119440326631520011996415811189005175229706574988507158558602591496639061175958200932914198093941756265125293516392730197918166323127807272790881898850587388316722987242702492958253912633296903240229436207485193266884262565114816639299876952962852094966773857843556232107236413838537302220627885019933116227979023381573267687026651434627230159390442477515636571494816381630904896981980332930439400517222834893326958735796473884846185537448945325480411388837120474436939598899380651012030702945748804045281177338009432450255983224309207837319346150328691305184927226694098841815410123278043599385018953347063396161708756188196118805813242470092186910628678876512550491331706449943000707583685641247946597096704861176490067463231145921719445316646819081392703468168853106074981293430474638448000584099383070541329682974570599617554939385156909315362611179462311671625869324309940717420898616341541220188227762481847904511986064874943797581167683663661146707326780787120061537274451896382500201429295551502973227278728643268188904069040929021252993613828944481221587105950138677259699251182117658875569334873983608102355548399213625049972323447849730286790107988902213008008558622086886400051429687900962784159171211052265312340627602101968069571404843044919872389121641764865297291890898183882892596847303720693235404694906960713875182249666941778275586739769876279388185378372380053511198424332350085125523559123284318923629435633217187105179215647122443762895643048551025079238020785465548469735010748983644990126209680242005301203953186674365082727070824504406262188752545414451379451659307742303861099386378586412839178607852648661877869664169656773191792043257796184477893323019951741304682139304861662021716569865944118219938385147444323385841114888296281647363306977148270786580565380042231521451082441940919603229452787616992604291990588009399330396480618363190982026671190487221331656336780273264257611146067850538963827511937880114328073205754770192576203212671957360114911043836555815033071042296214432725872274684359843266532213514280989205968351764768882712597909373545598974688195351580417168261534582159591527318503784436443472348662247380506844139281625809800691999826889463155862647189733427251507820965513541672614140110293549191250466459321210446395068114076396718043029839030918553251544875780962969945946208239915750357809915577710582402651595733472942619169103712148721960811228201492937623907216455065145750138443796124642498331389292880809560020086888144329946368331866730758748810832096571779238456919387402189805752977256308265114098063403596335854677275439755355402671659317639451720300157605046623938769112732616632617907368509303522821873290248922343529872070786441172475476734749720917256884616692358861208804883434377908343209567436377127605439902146794895045397425186219219941306705470473585069174268934571514578486444429452751092855614229602259510682996883101251419797074240509190786185012984157000354761739631687213510244598649144658667236807797647238662737564338686319172581242524331082445770211620982292962681744855798712960153070943822604916474997575911054052318076726369083044468294965098819423143595540455790814862144766260469547582284551599130921741580353444605258597565674997819319636185362001694252108240373307329633938070239363550604341070057650096302321044586036847930488899637435799146324326094319865608037461600405179150609815455649927886202096788093280108096658601256730415500286991132928837785242561196529078086628706402064388101112171880645503125253225863214598842953628466800378210212489269567183427005117561761857622882230064795398171267334347594769455504293974692788996985833626942758504287175330253942831344337717336577475179822485178047036027449527715821911115647727075906150253849981576058608586101907166793973391067765408836284523744961453739455514734848290541755717447267748109712082644824159587331699722034612452073048644275977309636991485646099794049005861803741696914799807780994719870938957387198296707076847001001286058750427199801145178704667411803553445034797183478568429100741138151497667725634335779127156243000242729519050262297822451921830176652998443457531011640988347780520512594452119166525629999746535420427620242357528105302998967446483384037930878542509540113311562977987601527230954741662956849896491241158070394414694413067685685134374606759001578627853922593413566688291019588629397711100274048823646169890048069071998155374910472656229545118713954210695290402966267321432431090968548839450700772452989756980929801960298515616646717616453971182719919468096709798808812280444087198612419853834721954735603109687626003284023033566677670093425871939962170936843949357533536662225862460821705717876805109918158024109177430243529367422379383793148751729675099294054342528699498152837030008476451793813350573017119781852188307092109532770085502575705144784340707174301343999182379881139894843403060797988447656258123344136724016720461499423192894673677062268983924468172984615680218059557028904740321093819141456078874373151879799651788870577087976633114401213996453005748502988319846492388732390908651090981158118805556294808025081853895762448190254936135485160379013821445406957097363766080845641356207772287029356955879586226296274717719197666146756178449632895309938254123077002051605667095581059859004623697320339244311352995181677397004583646767797876561465284787906777722638473621588713051905145979323902442146495798290134036958131764397363959311317097100776368268889319231517429301494559599400301286501964209601995544751964298977507844078945350504601971098645028443945202049688206999608917166982709274421493247473192594224013911957151861403064346699159000611326904775783667927326921098998138837439450504463042509352396932876230348326398891115069695283129111532540414592412329088897992515872781042486569811146295606862757572424586866007244109812724818751353461089857009525343444516806275646608440166700690750765168881694636999406144143012266641105240914371428114437593043733762674369566129915665496670913170921805832009345515479171352893376307249035037935513122739829899587738784166377118223131796797001717899548528531062393187973380475743936588380786010417568231310867351713845298385932799188800754450238358613289442429568128108129329770836458835469964122484180306221726312207602425808446418283330355002642222637527700164723311381596996616617066544244235437064569214621635180147050632126621945898168736970737414393164600180009819064810415572987866596572605291889961361293123222417083708168743194960856200234705611595625374291662177842746522200234534554047785875555110365632133467550094435135870168061968512592496945663782652148434207221276020394875672017250596037163316795730509800696012513813464600368425400737926705149141389396421885715969353745843906857189373766279801436236853716876016656738098175075994455693980577576311220193040949279803357291689686852101559228902179238553793925480271941179887663706059932126039324290798947265386351421040143590443837068036368038407673588729371003861244371811690588172371012844984056284740386875586033106909874993646062497774953323990724430670132149912232792349230414566764530978139049869627985707922471870144895516871829794815432186677600591708035623057444291986410229500973733053438553284558373747142554450283054610792518191009440951887842328440214966378648881937103183845892206752835943972834292601797481870148568900652405028018563117681944238726117807642304419090527801870601366144531384344260417336435736902295790310496989412051466615830643508750401284387665125141022178625576503146165310008995240008100347977941454653650521527875922346022633248761771546656724806695951455833621352512263158308863361232421315454025615752505362226872256766553056400158273227605081199974245448656177784660681365575008882493164559110106315294333377289047179949945588501790129465816821173032129183895106453742386859407495161780022039634295967443328698241611383674047740077177004129405820042577062194427234503895349314004510489149300886022651834541142432719240128149286877162545398144536940728461010746163680972490316214377171675655034230429032640343081728511532609641049319241210110254198738174689872605323165710872762034144096621356999502827229941157093841777590076344102642358096609411082799126786671857085795611737364867817225913896314951247128225883951287567057138100124075764815243226415195272258576278337457904939631862536495289897856910086290402243113768779378117371523893356128432381353988868376315316857625063851719890284021852873294292393033776772947135847108063840054153938277872040149619028792380632043768034214300492869284854667357859192482333447821295087457105445754682959909026553787359057469443836612416873730233202119826133250722597595696820595294492104687800236262873986721081221450593652361874935390419147461079942961743355911470268578590254464553818248165627852366035113500774769702163440140142608327994391485789196777202958096697210829029150019947866145159463058952786884788304242345398705604346894516272397307295422934233072894415936166253170607111054080153856065045970642277984725466104411531774307890768312134813259794731257733448769201055316976644078679744856503129448989663004787191729756308864492701324679449069740789482845245578873391954818557201956949120549114820775675274492564177697279511590311312731242262579130718095797225659542521777475268938485857521176940750902660733323661000725369112863595243763944768237305198839586097718166840485380552301972018771301701871993813830832937753029761011024582604267829273310230651021368378058659124653958794709976759147887746052054983875131242076973984072407116070044218363045860126537720489682771522072650014159386219091075927246475512125471513504814272426881889716692513597178434924091062705925178244419899503844633998017573675408875629434633264132419457433975415115659308365873903517373016284625480654486879264233886063482405081372794372699965536542673415356815180837942295779691115781738148103140060272149079274636884810716002265617706964814760641320489672803674027381707778603967551018690067497909168660018686720386872830815567414705940260961021071147620077794708953027465446432901047243522362632162839109664215374496743380554390935371109491077346908380225605866532128967152175315712494386486588025318328555995021203155584068472698046779770104632347268696076859595267968536445275332589348366195743351273899642586387978131588849939822715185869773752808657940337393716487609988910281263134262324325533783427906987301021105302899812303949760751813980162920826166154515855357914656436467196019208047645344752288010221059946864967216771225356613000723119430829081965441099094931783383306120196570107576866983187910676965447891160490258613848218745433088154195009094027515470096363587304357472128100355677379942081301925275935917479432082186536242865593759745792527914779846223569635866314247598097953792590165564195199788451025209136925070540719444384848229277330859032153300070989776635313598762647306007487085466164225612358186397060598348270003554864363951549595507625737871867349707604221769683760478550624574256880827870172061011004453543440785935555444827272089633345933863699898439220211295013302805856413639558024958382851709095647738953213558958351915387528385644738969724242022013334676436890922033922874227428695953943241910128854128547395785645060427687280090902820764374267242334522389090269404506328011004285066065834989175113504989610237104381016111017948423077575060153563271095410544124540513351747544478293098426115732211999139418892382588746334425058466753330185559439068001512834975620346492052301353252771195245565426002018692843458530055130353692737265037203267735352175087647637301404027045001185647723078289217916553049790132946913560477926461185501271315656752270802188793566346752582560928545129103401161963183740241612739733788259156420094225577025768823158267773619949280020829177330229265025559045451614016567855626846592852918003528636414508622879732427593254178948162536034407362752576436964631169637630868586156483084041335528464767522502083362250051448120713299348340484030389299059146586827872094401169057536482243572775007676391647433911512170598001951243651429390759385543292958207244164389701447175401807798804816491981690192224067468929272274415357879109055072298795928644189859001335061031329705029253662774685081517345495847134197427487554699471010994525501897007934849958980493337954095532371837583392096963439522914152144678909185612988648019313915544275881088285799875930524330785219182216783043424554106970564381248013782239760380951269450073369098617751916263486662394329091196154938050526739592463626863806271674953041998120551745212030703404778854422604661074183180162209923723907622715449475331225139316099959411894245574921881933573426964928912174530260621023151225890111277283006367485688185938593847004157730551335583131065632860043031584781474183786171559541746963236052271778437882643280387461070694906761056991172081971344133241366338580121840846500899728568444655980405577136208792855760768195519809072876573908019842862964644303587355760416619472769301026775844986615399414084288725440701195737180090351420706792616827143308750689211732274462664167393548918946361718531748535688389283540361030782181652285664116180514795940069488067171699745817009318046239810829232094541501103294748095515694614560599333473258882177236488722078832658724404389583082676130707888117804149153916010535028479010585800548977081782846039586165381078701626749939253688577485140961974309741987669958293401641910716059149130743161591022504247079191303425705940701354645959451594631340063620322176897630288198998267253901291880773329100586987088504419464386722314751447892127103606426411495031203436923646933962744895229443876637627952992720284905233411763316802096125977189537765970456621402217534753429231355091452180003083853236944525236414114781875699939369903270904047768020201055773712752127593339271677005289556079427954899232284562357431514242959177374784270927904765782370090920934654379446890459684680949034792650107549386740116416268475754223403971475619046840879640062376530461712330574879441359138575817764425497635555952058282656367810015686755955211964600099332379025410157335759583271900111750153035435361823888891532959717446438023462766728551267627129448360596541267502661204197531895795573795368920131001078044384356267717399832352819917643646263148706645645695512394324959711102631502389561097556050906597033423806530753729876513899975900824234789517637581865607045013915220729416768881652890065332228011366485663760630469993140352326699499670439165689325878913530028840590657873715849056647161584030582697836764150575034939322223305412125326360354427082058040056764419913014072976955692988400653310877827447570952599277596451152345314229664943382464587943231152423349887770324122932685669468460768733773746090656249398003653139351407018443651834532990303083747096759713901828701648894358569663105987713396555780680103245026733000247980316824541346634380159383047550099116186458589686456729762979810423947590534544666189286782146117035978448884658038290132709705440629302280439414725183881241750768902251956249741812168290645011078075909293650720356008136072813574254600946033278698597254940936469076934029549417033939056884579160236409742682955916805005738844416289867618337508034067232367802568973000888796296200710324483363257715325049282241065149582609031823035446061891881327401108090280542152377313184024386978652378310197505319409518366489583674165859844919497926250454776619577942128257816595313982838152329250532159361332842946963725854864288655546577167822531320992288519497942345086012495619270349016940364841039580278336418296086075689658609530598981475098475920628512310911791964259420105340063370492628252916157819913986044042172454408833946672911066277044666564847375309315234773226031603220021969681556846102446431567369120224107871730207439150727927930120580569901828812526979401142906319974091993536362053695802271767447517081940511078222677159430716688334935537436594029661014119224743974697044902139449711937156751406260719240389809856019006298305836643673269569785668475771061050280055645981808771171798260932173233442141841552145994838984906073361690574226470873701925962343373514959618163877561188280228431714926971533482502587546325951280917648904505625723542552953230107770596026507954354980457306129890730353253036659661110484412275194909835077003200066178549316878302756371883875204742243315577363838136772019755257971513422793091396020774171630321801628359686557297902511717482027545009990527312224978937483636743695622845098209103780214430933833397080899524432191276634811542205595407868122849513509354972453381923411589254429785831076417467366791152596406738453812042638683328464182550810236078491683464195947304684997983003785568458090615983548280499669240338891262333678491471772380489414445544779906153793515456176610885747566235024986627473768809653003192202081983361486133910545081455979304260369010897495155109733224049185232312886733269496240475006677644437289206949945394477886181944541862710446210562928415324020502381649297670216333534625459437254876530127616499585081339377553476946184676266878037895043022104336898801596446217130050530412610055076539719092269245375140619340789918785292431049079551267011739397075679115708098986418281700881497743119248520820882043568428943875079597791622752209257588368471262908124199698651989709557617767487209847502090497995500342326755911326675787730936931936732999940315862133725517371110740877551990954498650833408109486376920043960397671117959272390787982376292152361281877699849255854519334403424140393017740323755027287588851492995750222488495787896568923548828552229660372729643706730696868069139258082322385308332858235143006218780471942062096350096972513161725318187092822782982301244654291563816479679997057941399495758864898078243785344159699805895041297699704673726260021321596255991092038373623073884727596696730262663157599325133126054910654159778701603722494052553950976113891919705898754429656023845376912147012449977311315796583604829479040872623726206177226903577365309504388875990539680758838553643696489006619107130471811158285915094650884881411891938739524087562085367771318200277026226380859731685414945253493483253645295423959601896393125563828047597733557599576053628697994283476781438662490035243584711816341734460455179706539032548106106935653838816608124056971421727687414409546289434076475179413840797312701705500696661700400397050942699613210277707320206506115864204145971959795051902592074993794140287984327976999730640807570881214139949948532744796326819576698461487880076097993903298207270508824000232456079523861547139800194458934321668241409424659860193952948034041866047935181491461479974899625600039111834764113210821521454669732772725686744942407726670944536572331291953892696747357594820752873705081027473368700838836224107055155135359906736326583690307197070412505056339944844992363119893244327605208070918198058690185619051454560764809937605835599914257449635952226708666805737239334496360763960001777840067970789416648329256862325515575311292102064559082225018258801674982318223466049461464486989500967897477173160784495578629101598157279658604438618625319593611436698962674170567537814064967268126977063758972206099327425106494339063657503252140016831224920691290735544224816466744021997869866679723283579079421162041460397696853213342673470116919064090297850156856836590101977551298447811209607459906743806819458928763215669731463017069719343502161271277295847386196942724615896212468020033820389534172681944597173610321371321445642433439777471098738080703437944675119740025935573441009600617811544304423235581909935838615583317145581800148240342892304185272528146587344224059041482548086548842831783823866007924107630506866364407475565759459443222498380426058612659705974585842981976913526382416219962666163945092569043203404508093683533409711610775916165413317961561530637830761876111650403047109201982157944514874380400853552694803353060213387509598990559169277615398237684482804271846961003696205581258180287570622680406960954695756690823481643601396515455095951393130418999110959793140040963136114251239578175804726137694289419312432477911466264554688470627990012204807163910652566474342282580945184224528102799502375214876158294374772484975260993533311441079619633909142555221245531701020638684905219470572572472502688946784387674616658774324902859759566957156785633614574405644423562415618761326185984573737850651714327661270407694830821068197044637885637728647325114638509231071644173644942111181450116922062786555637347754315565976097377991386715212611457407384056542376507315398442381825818623867310070490375488821946719210216685850893015111698441307608297835701579113414933823126143285043686860564731434746054147172151230517442478928148334144345578679688940766464713312115187810165167089866026924427862175459705862379211706844451929217878083570497782246303862563488042887195948994356726503016022770599670001490142770707888997240554933505881575837076378463257818695159895424446017793554631836780187913346814825058660861854627266429879848160029322159405692258600357506656972490888956650996644994008155549346246995880337683985627115809382306859360558338470989515057451129036822433005250587194835377089284341732641659288409189207411202325299465539443427797902138863535766420606024010432954573260630954305613634897506077984267928657350049291125127558743609237151887761613961129082362385843246298146776641288618373252967103259574974606301982023282603039175732697416472607856438599934133950446073448337938585938827256013307288188207553336512712511858175737511303318627025079387150689840433629430878557817028461085540715119818772330822244129801454139521197918496404928977940898530252878450859501968262848653512023215355202145760002172893833814707685395122640592403308229233406158788086684456994013556250613094343067253293982802170505747515641335626254090849368731063433777330523530008423923796187455794034948397300803699498886078510512327961749577504354351737283956186954712857639390823686994703287101881808611970598466582479125532306001571762119832561641784760145305746233355281470556200677978988935084977469223580346554255920880702203314903535193981209129551555755914114866368682183297588935289819759731734964628183498761741532955685885070551113583933354970422847250387576860693992134868956523655759843255020888953575673010782146394506515568713534510839234123123391262838529154317930720670096974349604367482953834997877059380994197108980504669939564779320880375781909713182147482043748622576300354921682348176455286230317315122883242622181831501756808358311840519683943558826547576541168580261258025579737377050018350760770830686063208112608554494506397414222737672771604553471634797442498917019640584638615607497457362610218134526594330196561154236929729419956936665122619493088632625395290734646735147937660976283234758811670817432432124274472964375188541361236606148182264500161635779987719807127650207985176635533340435842820648608049742728587910368579638611141276226569334386289115043938452598688358326066558710688020818284037149058714447329387435363432681438901038594706062303189154032489982540005435680157140285163621949418211348336185047369249030471473482798574866856737108741567935311459802531425188642091186408609103440616201757659223913995720744189403257826753402545627125081309597702715517991857446236102693212428221489927508889270917102187897635610105182190762550742225018540267521125269814344135989529909172943825269673755524688348604195240609183652754272614144014006048558639724463544296147800503048275532181284358899750162859032185042606097329479817726832317325052996074058251936422402149122083761276627870875661139977958740648395004564581895668991728289644255268710553612934664769674161290364179305954693295734795494928707830535931791904215157725200787783241154698864337251324428582751291348796687667380477884085415904214792677569359213915214793860977557218680663454038771370848690555681894640387100792775626128557744888782248004509228304202790844161839204672631740856798896383026904191115449907778700532145782798858281102807726054426089567244884114883333045087252867180024310007619895472928481352677734860061358537116097657302437436741678703935578362714058906977535936385263228834412016098991062798276701430666748872231934063782342373600083646260151347337168211788131875907565002703085859809211156142661072689917123862427578419788173565930572195418149251376836499394016946910927888434271323791295258864205126302089198125766433742424168969501640259190553484687171747585773987909271495513726807404503909330256174642450614449775918027444630120473380396140418927761642282405152782068730066282249369239364538973291559380155988126695302654706085298786321880429483414641940089604780112856618215729600019812107282253008355520175337044376866302351967634326755815673462393458002268701551842479955525295413124236773037803589465355296755333049181302853066549958350895167204409869708743057798800102186251877905503558659373932481881813492754372761845599370734845648665311344296485684383208844651797024143570006145082925431839977300231970640968534578853414951717860597706114585898772498099368280376192812300814998374812152877489576198890168253514263344562451421784751818508545040492195420843127845718520804536664390843970424025785536083088489133005178460720759391317328203121418009152999145302164131776747130013648316152078106909004181304478162166249758533210681767409917495965528822744527637344033599878870482129049300924913940245894721727942476876447296567987270026877703882629003315778863601520935237803446696207394415379193561166493376185966493836630631775830246411327186118928795690205134301563154941650982794023037042373716824585009942932948905657129240911835236172376085765938721661533987665701676553417172699878362804713072936609594727353655599076614141833964851839329921969100004224402629808847239623585414405998615530113990195330127727043363041845370313093082048247409735274077343142108709262097224407400752305265243338238218110593675544553227810869678461233966046141828189757870093503919002212359816502602428530314391322123455888708654403883505214919888778215092216547311646090085779392282736905211848660497032101212814873645215461577811871652872564459459163646396208697725521244647083451276114618650874063685735187863893367203201905790713832528186661095537660478249309285706993120347576713055985550395201272918848751254939442429450638424522388363558147030364668402296643359672717326871273414535015052063964449878942331254404870937853982895471473058054120831071244386107304139995630696220279643747255581473918666601895136883605711365581708929855048948853588124896414162128170993946100670136942405056902974682181120577269141558673572491806795033613643266544577504418442734978557138377777164957997415574722813176300731561123875246906996008492923451754248069640243892805526235188768658254770554996593246545953157067006483498119589129614649616329814690648883950731306402457628907474323416919241391601834703039529855772042482005032301596501480173304961339073169076606601690786933432483481306328731628188056528297584762745752903369054702347710695593882854248629088748783930610796548404959971300019160296842603486027010790139252339784571593701682188989738500680968048436262514023944251797829313463466692505619547399404389673172637709458693977867211043758465991950540520387471711507381651004551819026203427307146584071005784905856748966422751397840053754384852998284614146113162898994887931066403468114131304531893306659440377756868883346033111251904339534063622556004839223242894294219954431321089096735472333252965757535436979668342767815712982698251141890645874257115748166389860039362985533929516537116721707768984095223779841075104279856377156530916463301927072460112683657560157390085289729497003083135678283031755529038941550463532292224436311371918312188191306541152642072291307491906672581980620264605934619906713841198454179371425418076504564121551628193201145096491606756375892395500019448255638361581493709811096907069528112355416426314574137824880359989687377294037466383280695101779321501068811903367126647144061760973396646156955832066022699716722583937309901853508810743637066300913112376742368732739734670843898404541528320660392331705296365189835652353706343438545769367639743657701081955652455574785599761874093781393700247432521541496869863435675226951042218501917099257967778471714361810454570502728092212268993865785037029487535078329614980905175878700442029341713094395594783337420693747993690091548180611897983951466222548293292461024912209643352047724100204710084269982865938378594195173961401108897710741735520389105859782644378105327759102257043098594872714327968448877455098527868754790512204899814916850652821685657409675058054972365094173230335579262696448685412391739209735667023819364560198824423468351884786496409000906815182359534199257381192492554612756502893109792021216352010469934254077111387871981424252248264427714940337569107215976993846282725777521400356669221968673704362210823613921473593147246113780625580476742745645601618641059315754242261917804582658074255235071123868636753992921843683862391016085113787524046835253855424543533393939730562824962682085448770838241975725858745984458444072509425249344458498093562789035110112284077347955662902794313068474044311266846308784054544762165848799600297491434318761792063348049626790345757328020288360694795181618225311571327809289066735121807190774279999800762605237090953587888649005577706164949655843873670243851666943298340266557941144297029348818898462746611824021335740452705238860781286394868904352434568948259461358852379066110849153722838123368242299540766747719299133092119534655071990185736749775056857067226247358185897647311433537914319615710399609182750953439222365447325228666256582741002714394784610434023703865059745874262876923646629034830617597747272122733407514082961864140111151664233996041367920625951651121669773418354581050600920787380413505329309202632092733772866633370653656614861025162077716566793397006159759657471150034125164653459635791539385298381944737230700116807169033789899864273513663101212435810737119846672655113926341961736317205604410320975004553172564077001778402127116816319943948978014712163608651450446732643934732638567979672993212000996742659873285727368125882628316326784123539105328690232455989961852801494877922725441604568938025792448235873990438366236646201088555604950937189821828419931429260079875001292357425864087337904176290937016033792777793871839188295392733334933352800124213948427687069894010788266385228315879336151071095579896112760180338295830425609170193653542048857984668950083406779268933964068165575791566751269446751288144229026136046399874098388882161149424913000203314159538817941350198927209346296269652058164956771083699225095769219862772282573895235639610827344700120457493568781587771568676853176126987631324424811827465463559265935626898211513551408739765715575554571050528590850989099003520129628706588017656863051248585362646459111291423306853553029475437309884725543017336922192211574229286803655866568486988520277246789981549686241194284427296399815989242850896877659391800127742195698864646548798065584110425865369151895941355435454337288915397252801719155309606839389666086194712231672072383001526220982349700169129525937087947738946254260851059021262828485011728003900367318611113022935408442097003952547675034789974421627274286943162370935557117205520268978654150644687752702467903384111005153058366285197075607131793958845708368137953810533802132741634077644886512019639449826286963249246390829359171823775790320240379574444655516214141661153200629812010586839976126212155529850232380821404043343113650567945127452988098265496132392384591301990605883180683806428903500588365660663979606806876510249004387167368172185562318476759177260137389558296325242211608889272422251689292765186190890346335375570609936536286956587579726630197411458389788181055245289595542756781089540794777177017537379892497123583508489946804504173048656461820312632014110021667653827186098036441059032216249853646965848535008395839446702508139574618906713996603268237453501519518703616756831963409614206553271991827204554080728724871201093819913892925710369904679310534638319782391472389181296233885248241629355563078526550152850926985718968577462029413155363361764729957691021560152370589353600550124053467927019572383103973670798435851958392653218195918504933811545142706387213490029216742124829689699608286702776840676394350354091955872211528396419695584735804452241357792959818114748953225313449522991598731394289025364157715506872180901983528692781307055125101190171962240630770600275463322302147117125844327813960317663330337836339784390171726766196992843354906913552016143618317772333532128586309971683330275222917491982033513589509199737038282331916709533919020227291805451360615418980181095081022343458178177009166449188543495816271481731052408434491378629410568905080652089932981268517343228583836571244088131621557270543126901425506408596742394951516419078765917601088190774245702611834093335976403905280502703804517112730375239323317829333981453313756608810702070464204722547250171402631035175449723358637331273540190349896718562941055650047885669471155711679978354982875710028797236906246002559364463681048413623968619858148393033545679154019521417296008424665706406167233264572402591490513049829109584209292073690982273738823409740281302589051171048899681502802411075563382040481556067585279633676341209193982530036753063623904267300320762692175390285461305982459943180338966053932384985933291217507292463405788903012986858398605524486101446684410386310044910553431608407149861118269304222242152401983455100733485076625454235571671977713440897388897178877464998568313631121502342259700934478594300789495778775774898755844537151747688144689194834496919035633148577356143509469177343417117199120642596710027331453849032302326497121235759228826550442057779170302351090340672204654480823989097217128045932533439153605232953554906870171120388810013488872767777911221238927557127735650392077731715320792665133705450531477118202304727227734998316655766283995208695821854482990462116626350610430258633562475737334423239635332293752158804550785811352134569382100761340733930007221191759698670922812622204534997828267917282901483340067621074144825243940090766357947197461763670470909119962946819614305445602707684750087564860263671871569977250067325725938358868823235942968254946413667058319567746564780435986162470989906244575423928730878741201705317580898143162628253709126985816760953370073853286931319727783818261057337322303727955541482292051548647423618984836594977773566347402538387556651126978782910655239073535721314366550550483936881373295344168880686401687502188134252346353778762544904050853843974170453232665793614134891092593841994539357260844531583573635971251195064352002043786753226423430715274169858924780328954439394407864956074953943107645154562860231690103843735004070390576448207271687343516540272464347206859574264287351309932512403204122443875791879156704585735074894528667610876228031577691061482029241270583700999352193257163780181890329869633797336392913707889948362377798531930392675665051392316289114312584731517726416283919312843592452217218622359290050858594061999714687117459482518095208339545937190133748504213172952567331246877236200851153180622162981562576466155570937300858026214915790304603070025678338150557167227473441335611761115186841605576189105357510040198532425033192441592821596363555554681855707626995429548165934539621675634127788898099049312038167450275498726971055464933479054038370600804470890333141460817967693610131039816131246712673513218445254751803182884825100485324384795890369705326488635617714229500888064305208009516595263488127138836670334452851219732271707995546223212759159627921101148865340303877803252969012497194853183043130605939022815689924281645658280533268255049073106504298161811916218497689113290016701185844515289605879050168855587396722201180807086297902022661749777570015349771005024221246444389950700078084281824955420414115150355191634724593429829566610911536126397056790994006220155360426306478206394114528797972856182557770569571975591630074166591953851770003336058618874636772702716929414095334664661200921902963607697079958689833855840380934324174563247706557453236708788407162121026834081425596615326265979045897914592087919498754595030710904483143689054777217072564078537249084770322524627753241273171354483571006294314071201849551739013743388362291409571898198929030466014507267529748690947884436013257549050798361717570539795714322641108977905014169469118909413569801608164377640703775143871955161345599254051447075725721756750379455686633661404383537109626471199212172914480600785749492430505671768682837112960736587643060343104413663843990896541251003226137391287114849708565293477924832188198546461043673681845446027517205661563030683342335622832400734262059459747779003567538979352061963345445229756017046826018771594132621408815525091631393241770487542948631769075726176013954044674656647111431450957240129992034074982694161444844906664460258027256364809712207850949109309690958032642516215924980994902870750898467909692315782066648160234188776893897230392343705291772784191685902411633654687286425594505422060183062877608639783707718479850844333377179307542512769739334318951324868912254854787282959763355260038753361704817547914022787600057888868327073751326640514261659293993618718977926637915738975017869093879932864729549562558933205724581845434482922102375125535628964295688848288405459209466922322313722559388904952273862673041697397928885717389695789176871239421403241937236567933018980987908141037413075056999519807039881963763297508565637889231678457365718402338813753714375998538202695346334176476444368243223844029563615794980962919417215005204326820949171270310011357940839835115041522408159159829313710315479245288502653709244621007710426269063586554701961037449757788481069234031375483751545050816547524546685060227616084562195997812297761796841530208597410000302282787220326116570166399319210732727545567368218001213520210973528626970084958538272288105603428717223638009486402491227150484542134772904206448891594261389630495865730513989270464816798322611909113245903491249698661789748627614268672716455120598158774408825641632442678012491593612303033303346178678947827877582828247234789359804673534181910874907063744811940831425151894722059836788794260826686944359896481673292890589584633318203752252178063046649611572322377921674875532989080999849718079205189062774756348095338428175699045717519649880182723313180879581300965456811470532623805386017274609128036192780597375670945297682411430539365011314163075259692848418055690958268075752325089487078164828070579845984220016823979189099593037786518571774583742341940737295713906356716980892361491572286507062146260148366113143345401575124803589537418124265697499694168837371429295436556113898910035411269418314828454112807176132784599175475480542656220808906278991911781938832401916079045574754780893113544258433274042751028457542091640949704928785146150841496030255115498184917048242439396636734945436733744364819631790832297019748035461191413803600755998138241016867791823338353146659013784685090863492232193296875104926117107319542887588897813753120976763815878896663418381568830770709129925998389058043011312681593024294255303118961624447607867826427937652307647267719729885124866047498802985274947253160313512232410048392490708959601464886172374635152114843576750175861496578503525293192315342404739312586959983285859045226101653306217060048694892334870003902803586213624516062059705113950225386596991274820539306444432495347145303493319316292388161207424113435472320304669225092730715079346863041512473121229180374930772573448306565731313107816404834034130090986193456428376637405092337763377427255991665708815285003050960598412966775446520637331277237136558284611308896259096911521271416035024702825677675292814274641632442126476994183287467585617423417409223611846131408575339402401580636438784469609651054857051637672415030946407021173581011599391946520380080265887252529736058558670643831148871159290374711229479238283801220251914756309631165950490225413778836938548411668882604768977608759708629813118987273387787892609598685682065348578904366593668401867072816202029291013549330588013323286841736000748477008099880263333294009789983465378931439260458408313445307483654022703940751417646552191048744642620356382018642202090156310455554620963196773131643100512469515176108073977108550135846017797014666717650948296479878120471003653703656757486762975754690059411988752415062840738570433300270836465365776252131674756493224363069325791890614419361026880996452366142533781283466257062205026981991034351665775549689950854959197229134609779944695313065710557960445479874683372663507503604505433370722490045258838404870371733643110091452269489605910755764973390627452487339831825609279307610505058215812497620765618291028983956245182184616622393760020419741550378195567029916338562830490776988748243106347990774206530497266949049059730629362862154836090887257586214936232531793369485423575208783134467584510996556046707036604949606209693092434013459702522322462606354184312871832805319441373411283526419185164407669210736136200201681138024532752930848301873092943289286555802134188109280541777394165335626640306503577224580107494960148432710366278128872365616756552544950338030509965105290776286459858556758723297637638744394691340228837817846208036375776643180721743685621706743303992794744487860241904106188623678794570131572300273789264871630655929495321917324058351818669382621467029961158702537796644842815522379396281106186603052807751279699227686976222405631344469264928459823835074907216583319481851389766521905362480740999132463470908289660888821888880629224322011574509362520154366992681914266004615063810953188789019919139748709091105640812416193059789062323419032763233334050195078658471266957071341235139549660610690822483750025263938401201677904562665078508397399602765278974099127061966319114202837150092439506272589621541012420741969131628007931180251662164138732143024210792981491143973831024914254522471203426640509388965813901715880760292901861862086136200341644420533989571828519463508490963915121570602510899073825442401194466634003496826217968891250716949438689598264074125245524415260038677740049862462083967117385859203600250450828601813122599926575576180547644485149147663852133377383135324122991932758876227620291688068239967422953278053946917890465505684470907321541364869720165022213364579985995548672178209083675448198211654513774063358036042629056084746804372527160927453931731972195959575765476239687243056002330027532543718017981801398551147145880960123152710302427339298367990109691201830860903141673940772406620545143850493056300237747326159758746031327236438853338164570142778926263360677437189310126039674467087747689959549102634875918346575670691878559978888135190333402011071884396956709815507167785161918758849618799223687790847522273731033017355429661756442740652760708514052472693149410770701950976116167450988030996765027188271903474956589009783259817292258014192097480950417728485420772651901161362328260305410330856084167900207377940778152943470366571997085104109142276662268499307698532773760898224663419805570373675691504082210786849853708818997623406917629430915857933119801429473240535569235262055232101049988042683723718056274885680384368947356116298853410034176035438116537862087412040889798964448107116453570893938238097725464577425322460092921516547670777385537934725337048796732216515858934520068906956639086057414595124827286877372415850171712663281510919490979097117693985566206328127092409669164322084323671236968898879134758381867260001675540355791967088054265568871813412816217147615313610639219563975555494949547447816206577636922745150030864843593792776225822727041118318627087013207766773494424670598532139583530002756261372130087842610401205924353316317382102783912841117159928848911579666233064150978339784636221199047526052599069023768690159161869687323680075922490031919400215079708541593838542031163974401127077405058896463881182232902397759378007404885832618779640648098656813817732275242629216830510260389388011006833660781843985925860726518185684738336491535578203882842294798734394672838274160191598862423711149131326046222904954172509467642629802774535789087978267473072917716922129035008561772524434895816998555700982969263072793546308245979817423988387436981140210511925270979472786809586754250519932210595517540068731668326195988979504224667686111204895472190438175109612373436700206342716044977178361051997588684491786756066197960264261983054083700137204673919482449094083155041872034555773455906617810160690003516916881843696568364107750895544852524715820649667725942603891816339322586114397237610513325309868594108855060488002111774348358876241715235326422244361812157828665322972992903123348441972919592227617944723420017531544720898485752003257979543379877692616331489367219286922385424631594560016918454962132930107576491746224901942752726549069225627841628357923862279384234135858812786972767614441106210016210572009759546595623919549474073104768750298891221429777123879842728562810142908623189615521714142014941505947226118756518596097274550704763379124542045940089105186734336576908140898079446083510117665902501891850856205048822130347976045068668909147302135260923772140863879482185661319086189032107765472125374934372626986669352702999648851856990515130678724292511960873914590248799854692509464203280915783073184190516967062393448039125846350420435793866146045539201501006915187353524200079666301020780977419070485211989995321572604559386396179487687181661862874402572288848211966067373285577062692347475906184561217557929037686655423383034515646494897479276960447002350779259353904151558887250678968442296528043464648259920977548292939013404589705301843648730530362847907523073088800818034774605004214852227643837200474310621159852715254585552900766376849206091202800397797027414124686762059523365035978040911035750171345836615134654850374298455133387374616663627341066356929747286783198241094478796148973685391570312833302275437212977305429491448400746850805421968906755810189403578213734622928178216443934762023644518009008171474845015526345235849369624084513565581815915437838598796462423695271738243968166585518313233990307123228960701178340003544824123120337328911914432812025205700106158612209043196734269605327441468219229334921794241323732803693908195858947167543490911364507194522089463757095621496796433791432319274081731033132740479436129208069032129220732380076119314392944087052669228791850836639383981619549287378868006786669226880041588103241955182519265608824106760084531563027936454137779929185601811181147407159234748316531442961466505425536217583458906924854297367621699326282324689425319389443473801470891817379857504827151464609923896961748910562745969791204629997233629780454637866109515865749370737575267597697660235478607609740048575671283227559889865150281534811403306133635378322992031105735190931744507256075978628337528544111171701820309034737567174232564423346303991233236273927189737484377252728027345000245258798888477841865073587823347179266223961214809892893244560865887209844785538389966323454263260918209844105061903296773900344645911617475880135912397852869080089875126548808543640947579354119067905931179141320083626661112598725978290133067489342941411044600409328142112781373488543870081245894748838089985259609914224132503430234724179052746187941718906137606039098614893001941427588635168866265269966005322306852136384657485886992431406899892209750808475332144392930029315095344421648892625570645968507662868020362440379185622172850384434849902725654907872370571541736155576463415243192084970463430008573521234295805345498829820408254424120059799360377939407204036460379789142899453498094695521293197200124599586135124156447116878007195749676138441210879684845531608914410661024967722671266014690284403302408794750730409131234962547426134942754917343830035204343560605453275894505801948584139121695005354440472123478412383815535822798719405445561810135487150029027917109917296202897996694535443567787681157104021070922818679849978695710305079064080122272327711824971807208927332186291306205711228135446874088402530769605552261941447145037724612553549472930024618379610188113598519269194455024924759765474419828514630043675556049117140290554040967475121474951666631335655451094624783680530393176532062929963407287290504778792651989762365714725200645476960834709589833813505061568460382224851735236553354026224098712952007846663384563117005318406606664742274638314051536006004963744242554272128714987449612139653325125759744154665332874999108754383184565902761923061386755212223406186158716286766129781286296002029520385805502054828846949419392234589087686742134666129061673187975130677675752161094279097675965428447817586515563168300310458034751471947304364316463360733610705936860034178690407362922341649851146319349079509592869121462906326338966103866561352113077605333298773993393533341075727644709071509900595963730043524320680392697632353162210566564431292639077145715639329540910274859251691567792721395903993105826142327797623857341119674154704943873394666989282141980593193983648321093164134397221407355891429509469647270954132923136765171228495148251084582624076421609778695324393148410442863727058532273977890224826119721115201999443067347481247889100189764791323838560456161464354454321485266548727698829085882258436675571655436577587319843180801509239087224652346147061461565388013643106493573985271660048313024997798351319343068973708953305115932912982071301588817093814962069431105234340150660940343174258390924439203757728357608767718958300887663525657294201435621648759504872508838678169155728440516344914498556510351762317749186275009552844715708706801427102618224503715708561347313903985897844255259386071908630397815832952929706313142778881430213493027249379237522125415551208392680566417831336770163225446550878636310677769274066624942945077604111518741277399299110581607466812569640457160858364596547574044426741605346643530703851832140017025372464509483804691472532342786148066518953836036490130793671492428823467588307881734220456281602503237653683637547067792965669507575648876081918466630655621113406767137358938565550455230072379869184619874862658337440797163067141230072080593805409648376436830667086512655263865123482884153688477128456017487999885017124106913482980701467011440392240535342387830658774817611039338807669934186308285264170770186685141322585221472144400949786653005869997660170448364180851433302635045731632199943730220857910060462039690075071528311885505069746145509748325872337274693548635668683170302016008549444298588912067580446807603845710244625913647567259582165072453155049165963853281298934188052765533243953421283065655199893256857561136365027799576303301574960586649385219906493675486039391752518353306859566287291250285332938485375965791128506075366241651335473998180867129353589336547436226874388558837083876560310248336915213787874823589308531563347336144731665238885728971149087304749913805362104323169935862938341700584783014589316298997823826555869329852080787762373489619158822776806107228754451283708795290204146018371419256907856856290886892532206647709474917314666958534302013503701451790238883539071163445817897763592867392018715139926671360372353720892102610067070286675313466768655587107786876570590636749169512403294639547643700609266801585720264886808738919983096693391134163439604149539089477184545585817048712693102195524865435429027470610589741014493403701974760875729371277714844695762893404186308027302651240243771258239567361939107929168910392212802543963711745842256678550269135848444676825126502369842204131119907905882794550229191637516772499458994821136892867031254413217033317752677989726352425879244873924366688763183123252374478765577737602374204695520736120322986209749561425645457384371015869946272521787193498571568916132988390124973452110027039691839093611428130504404763179444197493995829632024856701119986283282923065882876282289771579386949998659455343208969493922783917168774394370902635387428532190909166512313466284510267123932087255939747918014983022823791772616644361951431350305697638011048553391096688493415901928616763635634839968551130335177216804168936753786760515514979211074813855832742486092709997706760333871367013132177270362020099621258673975984840155005036362145966658861858318972731635573370909095641160421115261619061171162616889933576946135937224433946056095493957895625671364329866911809440008926679633426826296724007073444159161079941644501290694595960276757956682848847301522551615860730595235624162740067910556396819625653790830377771398100719275797596990026151740442241550596187385541312120808986682843165234058364962229829400370777241041787129202343523168000629070387452445123234551773462133656162351898270108380019276577531246277659707128931908637305244264236364504157743526600111384284607882533426808214747087196441065024513201145496813044227447006068913191209623760526217042192002938773119370224209287810526434285852458779449256098557379774527780593973949016491204066196526007632938561583367488024833372817256638373349208225062936957037574669480436465817708360971299607864001705910203499132832431267937996161024228279928718242929940189982027222926532955207938115710706385319392707686858003066599618358765356511426894339665256875974561354456780977482730872591667415874798157161381940377626965741912863361932916588544932986720056420097846007511464252149046139828837036151543942900707946705697740316346736207086829742717515676849514048344122260047875684224406657511305794082365851241796796707823695343012122134930654471154608360816123208614291695728648543633113334398883496189247557748527809251926954333900712258819345667755479662486819204173839479209637379383075893334171928038391251991312414146280252423568410966592190639861933208685326596197980075431284069024179589454405329956823677103662892738390280557794546382562253068635484241580134630397033328964645327275866225610017775640088111843435909398210771112764506126036881996680512970802952491223317150494909599858538151611633549409720028631081697001319862663597146070489084085697411776645666685066036179569945501640643863232188121572120204325952768737600323987147764337761974649478430722442237760487262075146864607574367135013430487536687600301973312658876212140481424261496254773462361422248794882233580565996232698907247136365072912940349327369925825213574131657800846939375947425245171644826005921098678413655146868730877044894543391712074761916732563711595767912207766768162384627869439266726123275169545779084090313169488572806683854166005075049811844999722731779622428547530660854767253267674086147364961488807863218501560614684775627157422209002357209345307221522967229899565136218191726020406817761949285672723370630318979894777542599602797692564207853859312417400531751151970161004533821700820060684691947350245655691548693098696549498257240765798255573682903152919546673776961412723783133549191801899954529673923485264664283506341232021148561860524832616446034145650333407217563931463304148402239726014457527119250800345349967617471963723000910161305575809234503742750350755144707569603603412449324906822323420564019165843850338411807806460989789714365120762864270872457089934967592070815392535574150121917422450286586689040321979388221614209555366469215637136043087892932464334668905821049482653185272478709132846473054002721486140738528879416321380301335866116468598658190690686541284810546618301961698090657980630479466746731028581578504302897655630623662227553213129257166208632290330378370639314676847751179976077718857935152892591157299027636224413836731097168932514183011927338601854520034968275492919448246141923482390966571405899541615469643414429704564738832045290720467199643519718429446722511548590378029431993578219386942807817999327729999598782864559842230669716233871538245163519921644140388983495852772008404088767827306006037730785498510209979061023033969489724878088785899410247952472154557337187612081238466873942895154204509912866001202353143667009285391664712379789481603421398099042227241795271514466445124309542111684976014267515581181266508006970753633125939828205338662047564065873804104476753794677896238168103297790168945414185997637795498826533364536739912766081431407781297601331067809590004898727878702351190609408654601555129540661609273706011691715511880728894816732162410521862161063241568767826167276440831815313680572452145690821707227931105765999695659421391056148192419364524868769870172300573076596790203873081242772662385496317338512148956104433459892563885212344248288510988148450235663931747433574813357613198999192980611735521304077018586053581227229311035094991457466263840734682570958695736554567817620555102133866905264491013685000090916534530309366584763112070690409319933738871950268083217823955635331130463384903882629002284234811511038015951593089341602879151271241961867700411789452159453589329764675789108045929393455232729936651519219340569025185459928060913501565146993617746378086988144140579147294179653651590178604148818425931788955161402433964165197482613225418070185442475696246127826553155779576168621388195234605676845673395885843714455315702564902776940091108174662967140721436255030193542514910722815981595522796759950158765773146332337551531417783721640977224318561389520902757626968504847260510869346544533203822917489015409102683433214258145216166733036264147720165635518724913612572989561377314774625187505052576775041800750106692666950413691981769532101702397617394226747441110841994545742407346399938045378879041592848740846865381569663623887067585894705355965558505121602331967820094853166668709209126061372524183800882553506367745886707306824420240186288975383552762132855641490294486151128745181373596312975320839903598072668970789145279295764379536936241446342535446243849150987343015100723686110108757754556158261754190938842483701022867575485733880007938722140403519228902879449964638537716792967257032824893325189641557345849566633992303454259361873280689572055503757926813578854876598610108711944446379972811808753629219241585404905001847228480067308384874359923509484661405430531044860228945319690854824954329036756162462570655406638316077635837185860263838587214971605603205310794776985140733134751038235330885498137249650270405991222581907125427092706098283877570133185029021096458111419211993542965774051318307086551061451888435942146384224826859676504801675211482996300280945008673428281270881978262710921266682497094024623566788680371690851314823370061661626450838873500239262640084545053035009345680546529655884139237346340366713290151544414846312122040636992626283499223346908606120729672807538939008616749785004983515681824981424108952166665802538343605865850035574245100046522428804377844057230052535566041488941995244022843909891801242348167708321217022002319265495186850418528213952212713469221453916231686295658218498974787761549802363080389497320296414092345802945828140216111493623141269015474210614644841908890343105056660221907831119024671047831954592181752886269755756735884158019555419804229623178570197392271509399474430340718910541378992427957350835873060886376476472915343880719733438998104462005716460802165704504295107170037195546958859305812534657617049610448535714042396654050785793335888206072681978110679703444885570259249442136424572625493897634948000754014230668370740922805480735333902752114177239975148208199432390389433847564192409574883025012873863389242895373117461793181640255601137694410283604274438764189782915350325288757323370100637099659808730814201279751767753614321799922552234579874273504171576759133491321068438130946722657975421152908182425645042471900427243391866638070244687372238898955199192620639257543963776031072853050043656905022915872734665161642932712696205098033487019847827723948409923717846574920580531052246144869330304846608836260027013029691623226484764514396308015314164438083751900856885075740433034930006125909002429488723360602137878412468129977908889309626387750100597585642800193913495478093007158470511774262215204511615540217129557394863375538356516296031286374538495547429964351416640878576757128595972861102086576737682989451515586730649035286896187626326581301496292392968930444666558559514028688685950973770827613645968985475517549360978748523601690615069263504246802805030192080159862825265023646750857639960686331346176266060270401523233121133181357703552713154373690738265831259368082689136336231637909053765549832639891014377255599767181836581752339190207039800505494340560884223179288912421332473329755969880684758670707897178923646232398647239250785322674302992217222408590481761419101982162923360826438001563399985053244736946572862008009336175063550828978711754425476459958476333833965934066659532476760368177506691985460513337195255935763434294159364847906839562250960227842791552351130915859374575977844840983779513573942432181448919843842432764674705749785244275865357019063434412591745906003602228112775013795975211760565716602656152469438556958724183927915250899476284670646515849638170740816364614412743592510032572881249690465561398539283520641873836844340794812959148664009999168260908631297588288199834349798779487617749434901770761398267174371177620968327427158830896238046120581491604815569322497585989862690888993424370686827991201543354908969139232973203291610837402462089023337332047834402465514398976293955712199702880252168807633074465311691976133714087535725734648649791835801077695746094748179166350044775214893831783985215246108004258063323835876469234547910884673184187994630426368531242460471762399721051018541367904562971979966094576904555600751220502224757759233699328624924326606684629415262645505977682228407637886308005444041389232094313312065294104715501219204216848073512412021292916454376821192853034134368206255111070254677781301094801353676673996967627752413068234964077152224653573055362595442044759019399347348645392545147271127211399526582861236634080062839011115078364854570747395574335335793763879968543195397883551026100512360804328987488489395248067492869069324241139073129347617958500137659528896729797780251659034491448177754560858890467417753686275926825474422812828697547415237643484743852774532270251733163603575419004645598168369797194079131547383769379268905158727762281757928943627386952622079009963880095510180067078039033955270838944046722731609094319482490610562184616291523927702049998361002292650394634477500232314240342886147054301694243999261509313943887068112410417237221588010260526602851983949468994232902742058547877256431919980999902128989901593743916486306050841190335066744872859620554826393969221807366083159880447291047648626620034631130870997118026816934563010194005625136432965321299174276949313340970016887199277105471981317820117636243595087070313336766151925219616351567603772732773242882533556878821504559828504248416335980857067953511503298529901541430177880550428329148562654417824109173965207639206832580415159975775924254103769057969505638931495765016301931008060011917911755437246987813604428165926931502332841517918462406461945415547905518772552853663859509446257443514524032940972340335764958196001526647091422538923769653812032590167257994956568387258999100440066415583188299307643444810569104128953559552661566681761777196348409993170207032233676571020432574256011699294098750509229658719900378143696715392115464148360673919911617487332159745692936262809395919700984067984812911942593233709732886715995278054060624198671294559955130402633796947645693938823190307171080672975515400489412068742792666308271256356373135742127349205900954493960686392467859196731078139798696098508767194432487834325717868670932326216463927891398123903542336838423840488338185146074992405764381024032662992679965973162345476022341890779932545633466494839578639571537014028983597785506955187192164691268279851177662275624805714220428838160847593483162864840460308036288359614113663737353706234213189730044958875978664460463832139130815915789425116567245558795541664248802695383691060859025368714309209246912067883132974111720659098588633606621035298614528691908980723343003641143218327972237217277525846008886162776133961787391535579184658019726189793653233509974921675549371006996392059396227804073208560321943425211379911814305924645945266262687311111856232428544030806057857425872557607902717981611874763965697489359617647678848654814496119287543928261578519234117092645157812606162674292552352280922139289550576174668020435704254669880554941747214997331956451316240567116149659152017711398496224702340577790939351668588598485985848950327729771623377249815272960036117974887365978934986921017136422559918435969620578204765035401860994921289921881662139567623240516778680100931295494342619591371927801921832845073233460118910987136574146748815100629207715977160648319545766386229394990331583628989615476931149786273535286661624660823246892551779533964943153954540858186905802447193906568368522711891126936265772576653438175621840933965667023862836180778478997764509301146197404004940441019959897142678006316675823352019745120345984058659422869118112221271797221553233225442354529576021169473962166321456304657132857332564694683057500810194431588075244528676968741855840527167428419748356187369098739252171129545651816765732555568227318973322312479466984387854172175573050627645564927919893989034277925561113304784270551082237740113287609486080957344259177902773496180130660086604196152368773037699562918911651903520147029955838683860765611487033510042252787746147369103422699904959365682552604331336847107542757188608442937488403569457819339380336309281948208710066531753877879467611476864061858020790169015675320401943694305126196358565967841399983799459407406030549907427547525550521193455544220163206215347290708481057770587814269950039378890620652344437227350306552852551153542971953698044371012658182385121207090706505723990019332551232346246767360901617013228097525094156056297328244608895867007124008601251503480595594027903940237474202256588512066562734649749939681727909248331262539769929427062451383410262766014148772073864196695213421526781400274764493449523453320430846130899410947452612797420860676936277574946728616844100500612570448588824338617676086714056980126169208970155220243841947572758548748509634821375581199125049255506590917141169106625556556010950676049467179190034670542355945987651078407826412139709581635497411762352064618876408791431697970958175099465558359171692641646529332579977254045204283741367367263774803669870872480678582094743010751658891321296959778138444933409929880282373253638972192812188766948653070214944219758263482209518443171656595666925646267007187132792043825832511213222582560436722481381536058167297057813515258697088680168089108548532600403254910526139239024389880783834703019209754623162467544094416383084459518805120825312441292349579320887083499974164513528541271881473103009397456126323243089622235223732926467984620541431608800292762405631187737077906509090425060837587562827673236348312613948001734356976685716005015617203973794153152041848908129369311228907281248257265872375393710380777002668414618060865604375234036325247564448068654648502761132052542809001911240052981533021252848007115336513433239318917348580676284607352462450106565945360729275596069809833440871178457380896356671579832034237080982787259122121093641179395346919631145580767824994368272026147056312107389421793443370680587443668004735073859448575734634968126671110340008049251092733360176649073863182005619811450746965115672559043763020300879697332616003923257735084143137462987935701090570343882125122331545028862161268426030620356371009878640913829834770328107138637162848039649068023904979050768420751727043300180028360278881204298715401800824121716930858358697320827161419329284554022488651055187778157469943095003725804647167601174562896964547624835762506399237366381834856322781982980567390086136068237449585020185496811952831281472676371166494993968435726693031122977666941037456247590082171246783111981454592423882595577537331148104901259646792451201426199089313038368465597901457649570161429375256781175553878580909293650003896197200803092408866235022670992549449996390701915446471586903154721857518182206480197064581140349382877701200181386744694785736828075197400121898052777334206323835905362999978161284057092195638533285218132995169349951092563818216701363047535597547842447614685065004189928649196766641733486310077307942687131881471661034683829424171986781493858890819279433855325845302883275660473837258166143956597993123138963383429805166884217227417064776849656580109556728002449456347688273647312967791916601030205334468789524525213342643229143204278184611914636941594512511010193993539938569081981568248496943199927517090762879756567682341349914783342553675629236076505264876150897595158337550962106306268999429947887078843168607321023975738168466652731643899283812349895003603924833172722139762509643970004384130514801427173358076753724057597004526506479535075023616376735762736741289386725251065506029573878769091515511438591397374865547196136801627512147427090832844338331654176685809786197811502617088824400232492844096157884672258807729209828961956762218200626566765091676194955523415112015095779462301301618744736695354662224453172223694946547461626781997044365178729748016928830535159561174296928486188838878248644732204787048661332579991689533406954104900035458038496269663520081782611013894578575281621006704227899325253360173302414189058868181725794307869496712788299651874324271814665696536729464125068912495231934343766995019540095931550891056893598640624349883778070502819714915690068922922607633295852129094530270793187612435024853545080748689660857957479948374174435853730725432549265874083009862815304832226880472550648323078119849063800868025033816134627770698918573890922723877700019543587440163924261235341842725859808269366397942161384412220955272067301496171455173791660228478914472554497706282092069673180972626371051057016514779066051377108719759261354653116492947480077664525682389063315767504474978265900707822879830358385375166943739987586765965879051525483257462424182041489529014411277620686761775355852978835418237544942958448391708747310054039255824203845472127979373089106727139729519309039182935690589191331869991709603352028567504551392566469045184339721805501499144919934193810779670713752973138462775220258827936823395163099874511285828887609475519530239204241681361395637247480829546580691312662811748290699616535783479645882033693938869521103516800619191719578634940507270847704737657844747740449684901112890059299911495162153085857724381316103173002494516370248231201125808351226529039975519605779446713162998858265539942288265036804635776180063690076631297984444732852933530047370837454301952502563936996596300317299723561834157849774974712185492768062879874386272206159786086389532411630665792447238162122001413831615260635471802163243699050772894219144072008565449094454253869001924827430324861584318359230686652731670642043847780794764657294450441489244403762448704903585203034046069376399878922021336626604978711426932636766256491894696828048717163315438804614026098290889474366512254104468866293357736052518425036322205686095734686578288446854640515649027825639363744156857580664256738189267798745296310084429259689629575564496608081763999351266005335048361225217080845749331089541958967266713609339342552808576395162066917463784405009134820441579288546233995779646897892394890521619042777614260867977585578124394497800521290220519222009612257298002805253580116350057060952205796646411628843620050603141656176031799278665982198440952337658798017760970100853059572624862934885247969446254669985286889926787401849577473281933310652124114954851322210047432290920011133458731642522829420234921828575751286184137868549140469580471909138047645084373624782811886227844342832738510807706935883855147318624752075673694132200631834980059943039001964826305434997144534176818245422896460134953498354169252889761721753076283161122256913737410918061000523081060852197119340235435002328465457806350566375288497195248636037493835081455000733700988224575911557315472298502482132393708362586013527227991093063201740302904744018308752441345919442691201988173780673128257400042431770600653050423722994865420893372506576910635093438923411928832947341526961212737648655892370090289878931518476352213996975357957298622799300344204456791434433753783529627118170184040142448530126411024672012005210272782727139305814228433872812673749271243290315808310734377678467484005416557762361701991199751063243065032446267265247157470458808737603848250611246898450256741325708204545223550792677613137195080423794983630297458269796306355839448458426619695539013486209094666891975190473250124141062090964199419716090866262710603044372897977607987521444984917982090743730149105470349579770689423536241819503303790810490846568509278356326493888474815294452809828495397744729614365758766490023568585548170562687257367494656223131619146121615231438836182083463743140954010280180713446939332523391415359574916786187128016646820150478081549551117416607741876714655306915718818459065737801283680229859521551519973693419650676069821557591230369747857904737028409949601229999898115707390837302121083173664242330200714371371570286114368459820538778589456312358173970719041195529142809988049403286083791981004002512646032013352467547466328622086181137424511291910273841064071467996692825650199436952275377942334685849902671959624120728438612235853772579111719767012643018116810025856855876367495460810767989417668047379891622115608041920318504048756474483392609475295663402763435897447919317305285948202974630953198041544372230644816882450079440620291280394834502213914984359241252587131544777373396953244027661802405193516722077911819139065526841464770292542673385983381370987633718227735134120623341072859212167474028924721222976448816962387934710940238594045532486927647068939827191160718056754392402502931938642665612692507597708562049179122410278558978150290478898720353791356250685628643977281450409435244211316411824187512649905399814271098239485488523319765280618566115592528407389307475357128693671886404380007901356599536885865469929238146728171284167454988077434212429487672659778652071250482692830837952210386827638810143624199788582386172910643495711733188375885184096226843151114269392345773382192952405065108205354963763832797370465157917508323740797130460543492996197803586360036801311323436252003964492626661567787342572661339305557291311416683108828388269560587951832040303732410902567721190744836210000297025162695435058039256628595606931165851824373992268018625929963408561707364797800837675211002098091673981714392380993187490764952665474761400813112802612010636368741163470548215640792415104658385597550216608266455124004604516771259663187665539392188602019216848291321612026546387204006734824208428240171730496443857992067424831111980265298097263618539075371069506791560038676539667261180176798106949107674759108434303751496704057956411739116215496879287916059855641047751962627081383856640353396199644042604233160724178560509085864824622423059335419130938974871671496183398479432541876394329907438626053230947439134088765066956791544179063375425650671056343987625727365389959598683487293139793552992962711968458442816972489772394828246252514533077164758150464602851409520824349396201095356168902965667703276563845470724961333124089121375499134196494582339595976333002886826905989542299809673693364421137196113199078239454765143928616249859570595701775696228887697869587270399484023204254047244626209209368888359700225953210532554506556636983293393939046009450958207437481971024428505675366845624951581703772584233493512663403595641830914133250620301454107379323362418917067502315419885663173548073968402355344093773507224639762020595115938116937129395518831971689729145341160020808828195062300376950625655256011025696586623417758183040417594758434227858021188786546889691963432003608243494794894129470904399490409029124279381541802690822956583445699763164091595479390173876827545156213889688480100948594204483112801166479674161122313219216081599964061130371483818536406779359972575123725194921804703310517997065722296639936724183306872921643426312859498858219247246730873655610119707314257183665577050436100247495873762385773219141480046341652658435853770091945445913922893934588982950830456585100343044151275964289155895447120096493156990809387317026051133523819079788812416333457648883419026603872209506895025089136132322918251468433452373904946948407976552768492971601837712308459059910649421340668630159500627334944519441906675891967320334032410347768546232003750141450988040236503068141713738993383585120549402666552909021436529944860507159202170721860340629915179567964302401087487597677403812202675420983458450437753205098593587404175763751887783062457549905241662801333420105111225288611740330134123666982168515204720013329039276721030874053621662417797576666676151464936999403705353236267755282123330619951907210271647394944048620572693514739285770169943972547910510856631814887940708198990483659712494541858963159090698261209451551263077017061865436276416871363620636652146922590575588155399726169983803367157998639075126941815610421027500563927660768051392325768884546976727425575356361653832669394126657258926547227760880440417285012631938225800466968914335908648740351048890579600133404592898532723293691937904279563740512288700099421764344882672477743563280193350764310740660041851453040491065422510807953647998711295711522705152207704474141006103961722850971577416821242137883135504480149044721547514519299745071275625910424978737754746733413859952871911931262892439235196232283080693843442267659229171968943585344992309243202961664577692591704081508521003982789581460675081298671469268439375314145462225098287464597721162216286704447072358958010867363363094916045707126766040599129246454571364336683930894239432477378152012068640038852976179473956511349832716462935730895416408254076155921024179622934401898539801732314582911093293816599350718064527085776728511620380688808392993393243300909725352092334358781257159223210519881996534345941822908738228902992991895717659734112470869379192440676425674505420939799291958758754817044366219543821420694006642322196943008546519531058454895686910372962262925018278257844277615322965457431603675625800099261819033052795982201064767564201219975842056904974791626168751387757205346341493114673864237411077169705034656661724288391342377880397896869165891308668489772082496575303025073482410918487306947007432508348886309812351578932269806558082493004550059102574187018766531428824169141627587752119531550213074012460254239711818023146337243973624076612939557242943299424681269802447335588726948746318784275080677654514451964939404913103023823750128237946951913861882116143468652210404148102905087636847509614608024473776483252967288470308154421662974876078845681463166626149976885778547647205871525678909849743125892805310563613152028858526840975284159038301834112472353875035490044137528602264891787013286820085325563765054022154104788147345456748258254116346449479389177005711525765884608963049389092538296063397911343985256147380981601954327158873022324372981789696795423915265333872546566193679136513533347140018390289868709485118823780723749419744328220490287077720909515869392988633537893476936112445776011909497311058678767717946186691266751416285242220458270145866915289445579304803584164936984963654233132628928896897388485675621664806857581933765169925802501634967449819692000768615537081492387466746619007927265835301446672552181184682630568878629136062314792183301387505390140273677060677646703316375418693132271258049284129098997993197720965621211320829234308712712067130203262833247367569467511452790044653620647406645563547514590017262041095954926869890221880680475144996126157654759186784691571062817522108688849349163983509185290321197476402021235686437298517712778906791402562864510890784017622549691104353099166147613567046969735740218805825916610725703430947263613037341572408430717492467440117996427060557431104869648631499902562323106388300581675261483572664136545706695401659152815376905900891881812879755971440350560353430321520702850665671576817632386900734313282986914281377842283084640226488469469632398214785117038549743850627903551742332053663105362290734873778848463880313299212236117299359382114810230094242421043334699039947425980651330479823077695984247136414172316912544386439194980700290888482481005518163560395558626036397194891348070731534525976022575655556410828892055053363069854719484016952564941402661122613962788143315275719191502126207653935228545472395743064984632033362600139068090916386368179189624303848523862797430619382368277902026038625980355361312093174809077795469314643587808561744312538923586462299978632757748450362781485010674481546152621949022449692671222989734410747907096022306375785793256012766282302702333950246369589583914634375883067440506588955397141006732820576066664272050041629925170262107271716839622793685866939104288576007414043340661787116260501143983736756471124900880325167333247222983840269956990072274913777012506708593449509666534411222616128586454777092090428866826913138805426882467568630179152537189632195734751553391681987184056205424732785450234414503760031811355637543066906376797947843318421120309403454305861269680901275662137381689317268004334106270136022531411820412642717408101143196014040234939076318411990239949014881215697694213242087741002421963103044856664785325897733745351392330779873898441979714549955990883420119512788469094091579885746488565538347517204001726161705489105039048350740232365386691915144429075493608726172403708935986787885262284402286533028920112174945034459098301654516364272954690974976013047599370546815510928893390244495878411495783259260720412739591537489255863215014543843663630349526433111906817407487993136373649043440931837988974419537862304036162727261542676074874698648664582212529059804292152373106573569816650790522390330363656487239955951002983005809890448312463114688680166484508864797613586576497982305989360031712038849340489997104407298278479511372348792866421696430665364050693513096193843397566224513622340778208610085141966297188093803932386202591359080996552771849923622543147251072955229940664875990477606054739836744698053646429852205883490504079853534211520934068421282001194046172134975489229092803768017809640062763112502128415094991995559836120386698572816177616434142880859283954607849630011299266419317455899719444307555785098518484810331991954266199015097945252752118408389857214027974602492415052334290791720840714956920797755568386508814887395937090746786232565533503745753873189269457436881683552569177526042192567562274215629386104972190164526717615963320275366823459079322032192929270541325215312503114713281363983864607186637022733236256969356053784070915150681110957840375876463217346917034719414796183659883322531137247519594629059466071499982574092727239647772711797673038075092279424293135034368899598215666929032834787737952136660842740702927782632908992026666083279004999395452958443685559185392503874019123478649438665701283686725301406643726903930729594450627825460475118937213943628228442104565177234147756002338526879673917876138152591735117354764567608179900544349025487243134387068876986205229895208076817858695683882060071086066587663094637159306045065333930093439683810703320615281357985743210778712003299553107320445017842364506459759719567340414361457906228952427597970886671673868008378477611299934618064923948829657514465277269362978241547911633832554017001932979042043810978443766649645115316571309868171669951419185073118369228291188711605729470922434225184183477884240332649780914981338678651545552011312673929083051472289888696895919537699062121945928033673052020061048316822889847751253078927775775829569368458533482654087954812314728335541407509780171440419451940063672717626488416376648920124815762387124684239705317881316406420985862469593742634208327631292286091582323190388170651892593416678251121113160644433510935540269329918327806512059565205387811228419593204618431463906845099162404036185620390293438774289763375296014429065046615873711096193706530050820996132648519511172528880343926723320853335071433171995936944304007533920823869017106531201414016750200524959448732562857703100626655257670011521692584129595639151186033272688017270522371436639632041818483757705388476100589993185882958826995839092836881489358706887281059238940008977165199350001330772634422759142927027721770805301918485685210383826874860433291095345370778405227726269561318505823690163754601850823587296007356839046065867037074945336327141688600148250000963135736666569653397705989556632765063582184436221477524746738096088756317467950150691452202073497615348546298655821606632715552689172224512958064249808323105373608512589182231602571407613962353118523932013267886020328999780812474368143016466021474980638058270652857049844224446700781327832451800342346067993105840766107465526111983700347410639643502911922588610334211974898000257220289286286368813270455915150450143808937656839646348396869436672599348592200858623043990180207057981798530955117815401053782183792349863741712802517880576582656047422989348701948296457034032270326126787030710200133952472697142444426947896358084652554307804413055590107856679241965706564171067258235419976444611985420646112842261607169820990149856919821547261922614772757424669926624430854737157694206175423171911088974353265587088483841690501536471105969431469643058801228217548516214369338752424377759577918818011189631001171253361831059454720573799274256887355586996393299192400897872223983547582776742633642462710129884226361354836325201434349481038633017754696300190410240893797251325718665858454133595013023916669290086433935972208662639685143140420071486719411004364013134452352231945217618671541050886933624453464752061254225107140446322616656382238410298761275110628010238752815032001980088730213820261134486942033086318749327488177273822237370315896269246886053899087154502999128312121057555976348936996582867925595497965522876796029301937912146309900082204801680928705666574806756950587762561449266889475287695845384287205103952025465381176094158946293746865020439944459995682829342182629818845710782945518375535955145229964318486434231450878955256949168282434055402872453786839691797207813819153214378873031956295386631954563110354785659257822667548471472694102603125513587825852854861852072162833222414688633409705699019304415896104351168433607539212826328407689661273250140912148285506899437326900708860860583707421735422925390378244574158295596917401787355691782428078061982609552882914501439682355835673542006028888291652668093559851835464174668308457542406273189513047379335557974809979645734687669646972798539146395858441914167877686010520759312139649583047984704361933226185865215382337468216773603540221665254550843337320461515914334940385382073868579307414917246442717982192829728776349502914907780743037836514848228334561554907662561670267359934188323979208015412909151418639395512527759502007479984710865520502068377619466216672109197259982930612815177936571196136680618679817562680896184616154317239202252242063451053291053467815029317027370813127626405245885300183048866657843827069383903131685920012181974617660030854812352022916210326668950575876356564590162153457749316492523483301863360189943621375965521069385513647241114366389153371353424610547025342384086657018319914032624913896552346718203626649532104022112984146370546493977803593019597173027993159038014964207920868510223860875102252168233254233656103092944991265850213445334606441079893464315237009490747010663528418078002684115684328808485670852740882390400178689043447840173775440263742167195748801207091470525334351986063404933482529129497520888132214924769836797394989672877801917206669137781693311110274883607856909400202845705392591627455748227589769587830702903242214129797402074829750573578488255975898670948378765842680024983451321416927984424985000800447849480369110953395365795423466241621000178671351224492471542276741299560576467346399488594007363054539035102139069108409130958895992042764271213432643508755793881380833203432758787876146201228745466388490424291377331653486418380555974009606414355156598405655217792606987025495981145360391529088285000839709823496053829089530605342252859283548231897834238867735457283755111476873498998043310616833993096687735319377980532094227861047620471656469260645744296913004961169981014427874602908084101396138294839144274958725758888054846476596608021037089955878623029715795388735455204943271291002075930173185906929859722580885610681354682009215921969973930399589209136077782769063277359563551845178184235361409956375940706987806346098177570759563388647095812982733066326498781437374379040133406374089613939249051178251320895777003825646154662937475264945027186675189198070393265569185441537378625811033771963702695407716009848888491689843532327553731544760171628699169323812997987761212863997519100925718718907907549766609812925080218462544518009238471866226133828187852470821027125772942335545155646801633913789302345647925430738399614618636761983559253839496240591826935996395006069532256910226162300143788672725648039005110751497233569238952941068539931039334881218864246236959508438465471699609120491803249597880665037664922627988476745772618901121784745262094257814726462824911995577889652771304969755463891228430141404424986117456932802139858534045968386713712616252943810340802105974267354353607862829974053736803484383139874432588314839513388642007645010838080116510757817468216642557466059825928100323921481038618672418770996062796333899879629885749979688553847701331628229715914112793686120600356453137366916566285853542311189989894259403523487645603835549019050219739262814355433963407370510084391134699172066165839555542607615803295060224525178148524931663146831364159854903917663653630471704437618657244949310281888697613177440355105195317402225648589006632213589196401465781647869677517230755413107890236596378136610324567647486181652508869447814052204484581996240957045835640193230850025465618327719871979417192155139372717031033230681564197862680973989520280860518044694183516195219605345027323399198717442015549327986550262749947841454033921836714657764427975797285362710883907618433877464511371706976416032504754507789669321231041255895242807682253208639798386834305558994221796530573422179759123415068950413950478459681893440055322264467721142417869027812913076127288739321469723693603758614373769146049410950757071887536880814446646064839399820119372759096447319183766587622879097482390509514606366801015655572050406498519757169919205567426608434067619895103012625080092702811534294934562407991848535267617833492281475960426926433742719978168369952350642875500987439671975736524706297985653191546909816765426874860633355697666764073219346117737019984156809987460520402118958331791621017944093247309942952337516123878371152468737806562520579942225818215981077094206179750510237654300698336400108844515144402081402617541035495871269674685568069085290105746803178820632525441464593326647430879217181316042914483146009471872918346976764166827447166106308597765871648224111136071215802101794095598025128478910282946694333731189751634339065757465115983183610382323277840137831340289539895740571302351826198886232435393772351415836718598260496452235639522369487477149261122328178451469283773949407186640997715132136033799113528033077158247500337873222157170433212394363159224311982293902898703023724142692725243745303673868777512526457349343524497065784857381003221366612508867567526705363871635766496555515064150238546166894498441063577227112197530892261382419018014415513849284663209140988792485083380242129402374808365409532696614600649561085670413491141016059987318186292497865962391873503900017562931548521954762868478614224362339640873423643934614622556115062444185113402237640028352147006487230613554530529255040576801690577745853817809272224719806864332030453065467290504115141401038281655967314020231926487607811779443818213095483246720665083611427551780111737225324868016639821252419439843868150368014788956274361375374568848195166658623133541590852882793037316901477860160418578382634963656022123059009260596356050302010124931859817746227852564688335423808557322361936864976159168323228800947811074710989814383640462882639468314943421517717400760837998073454130061950681671760493095706926677643091465286833374662764269328293180084908074004684645640245900840800700840772148620592227635825914709352743910161138887190249482164733569831784854577814941560647261095031293455703969463116962386384323533424321238805702306342002118386226102620414622628115596554450397539398794469733365293132076736763593470049884730433872874927717943185226956789810790606965972148564315007527643455639709775759632311149811037969371476092109201863914582708540157703929117198419768316108279830299040327321967704577383149541631928972107879504140036758622734164745623947604447730200979193722337647036704752809137014132529260713532444167303310327041754577327329755391603431501942168341134444674268386729997651108276078521240956545859059989506421519813978518403137039907247737116083243552427318422270697817050564070169151673106018953908395658142577683227069465491656268517690630670213905590884280568556295544516995414204551190997844933651440212565273853778975702760495520204799040080184485551401548659577406031013099054463787923434313495090023776644593441254943763520786562488727366196807685494591968066000908169038989579271612313273144254934525172973886846058867802780998844423489744776867867602618639541712894775186882578801760112667283144423717027476100764560201298486280948780462608089207553469288094810940966034610434504000016525293932662521297717526957654675712654249278267824972438196554995632024229067341719693175432444001285894136424239431394203621770846937535719969821585747466087786860108199308278083966232384656770636938734135138163147134427429337096847886085984058372989639677802666210339241001866178959624637775202507989803131469732411845076392834532921471183776444595057682712330564076169688938496561671993926518437372456842464946925078400214644310974804584916422229227860451661318754708296879205127277681428773343665330090227905835044870671865532685102395046810125170174754224412116599075854811888974809795179668777364398850071686188896482430358707834728404215117641158759167687043594420209331977836532934669983109765358405796801316142427653209297445502443071609955018090402255688214246990735511328625899463490103204310362873989365852043348039936849955919327762647034689997497651517829525754731624882328943169678739192464611436214227126547293069714217264850706347474623427191556867693778924581071850292482561946740853273140814384054076048498230453523011201412595333044397590988776191407451021583204739340856275441092198753140113317636759319551797674742671879416507170394456262780914596047981457991664554078217660059357179188650440296540704185386835797130501976863209423327859037491148031988560238546487099132629460418491803481089970141105465000099089845740688731680009634527538809492462778567483440191119954894329227309237529414748307386918991722996296970509868134048168799348035286889633360430183508280454502110532476285395807109981107389554108559613938278623228289225223493087482650085039042496144536738703740755389214474808701746603545228553290229499291091668891693516661480985629619082090645622967294199324743884348425220662731744604127083715319965637448725826448729694187724400909609562537501996952371342890029108465676796595552027266819198662738891918273293533323995137014582074380882952111015261745269974110984279836100864236824333217809913465844915242634567915291642597743523703123288551618936171033929610007720449668465719058181076699864063394981223025534985181404653426072248502058598263541467444367373029977155597588400042224810561455848076848749695641894679428326444173755156630134266109819749523456204790868803712961810782139096626937758974364749489901608132346127471886118791273588556701606449964765457006988590768113673511262700341107699366365209828523824326474870266390452035883072231549590318006941058257411840792785874538594511729682247829789108493580536751802952712026301347049943927770233229137880242789703816344051422341081894560630807381042830520077021512118192751828090038655996724768081545063219696700158070727907927639498683397840629044908682034745191830140827380351023478531480357687759509255467968648801546975873676674447287843347904850958134332452744252528775938428831702870133519445237336572783965922653958520704293155204963644925065498842779814070606587821785323320505313863123674572039697696082031794257944510981063876681888391664167667216520411438221335374408924572457499455257690650838888686635671196437033481360643555400453348748709784688114275633346862750316678526550604163089141522134318987073404712065062954640992448518581112417963954695268599458535769820004690635081679332725433787930518616218807875116785732599955044833351263774243845478902968648176091249364361908975214294357617467937825238613213726116592699953830092315647573255421128445787698389579783123659906250456943808194535815000969946341082356835043939142277167948197473484496448695340496862469123066745091677722114033130217862186013062876806150616359970931062306782801411319870969315349775601407643129416693982907938513823824735387516588604621242585141483967472462630217323368741781864066098388328411484054200492253171446389205290546926899925071155218838051063445270908452711741014105116099811668651160689258961431156091974627951950662542533559910071731360125990492021073375763445249126444124256207382328304188807012539819904488565446665781902376526093030131787464256716243387042607128911310019081363210322164286656081374308183604860984317052489952864929863251396082758484567809795996092321180379947096002802787305102482514173031780511510404338210065336989119376631427341957153196047688276861219539041608098676901587517397500090905533193771684495424757621793417556948261192901624859469251609983255050916036024514800084522909303777756742129355349639611562984093283917280013643121011278843841003503184922794468002035404647173627840770695363434994136646281565774556011275803094017777670670414688477192599553105851765841403495870123047393257206508699441196173679251214654261944412444571003654078207293972749756126724065842235062829411315239814061611149750853863507837718857101664003801348646596975243117553206904322969281967181878037881845013642731501667663801636031501710602920064316184020841181838497284385840415873188475517680968040227643489445376128904190001604568374990752769822114001904808054081588565299156579046554834993401546488076396629367921489061081899700644476778361871712916737467738876171754553431755141942969693765416267086238866675559819571196366261329098421491826151891148999617531743000002474515894816690380847119296687292969363915027576427346255856505717437438755290301468313470866424582162912661748210249748135347446644681258905573996861183710924356556671212111956256831189648870682158453810294616889896335225012494429146909525760022163561751130140021387068561812197860684526782116278644606781023811622861910941183673789515804081473701475209657372883131035880911124328431033803030128404136651665950658565433491388401585746998060141199901706607757036201550176873142551888620487707037442235249827236650090751811112320927119632340189675802527894600442949891980751250642188515340634597923314377624480684894098437776473679185456734126620017650424121553813427112265386141153534824186381180212737955995580593665737595558402910947106175107339345358985575863080932157379816626936602904553199513606318554551137606115989324796603249131005601429409073157930760146002257675816018570567092516922659808831330942704338106648705330979806351783754096904200678967586447821341955453446360187855368691172330265430873204020037727322158976483465046774904091603592156469430163894509476970634415424918450086910878418753402011269051466203600074384596278735085761217433749494980509875777940319636576457291087930987914298708134783651544763105913234170746146654077488246379364744325080873530913210165527788062730048174639678931774192124643890777780148501393003000627883880197668109706526889453802809963458853674635000157036014518001732581863636702508958305705618293701999657077439569281049196128540769763532795448705599602952302970566947132189811809005470026089319888648394016104850612113369438432361163133623601822532395245079349447021694472555775718334056764397582319408756616931636559616903952301335801415083622568748248497956569144580877711259184883476038908184832272681964011180519733896839082115923668314062958019707264284470734057299344893349648695231797503890436840769256271210979949142014752878158688696394348933836438367183815357221806951584585575711066558151656029420560916947438357784862271874769765155189778134732854453301214726283842247212069311165504256536472900996909889847394234494669032002976473647735523052325451170069578032583810957806715896629317029037178680189830608958441699457970343141176830074211480512372340651990869609781895942607618548753510804970537938257202568106778891573878650626568655672526355676273438574915329804077326105517312455777638204130761202588224333764363670983381293275896770103672234071215405157177653784964981681497159546936539411863349097495119475320422304564946579415585078904515228000714541976677727901098437350013962269315445780145928413404319137293468351950073155963471598011575600217883678487515304403523177819648115856698436057859185906789091091111990406423139496905045869983924662964821109063727604676009271824666893354364583158013877923751946584035436913132178764187690980730324205976204449792730798067707815707938227923012840225874597076054350364496006246727396944745067717663957062150501054881319992476947325246208061078799516452115252512704978374621948194777917144461966925667479316662631073982535778782997617326129358406252465414060462594127637078778200445383581949005498338584564330240116814390750192367730038661857249215634408443484051039514877748569195974018172851108638868703474938000224215383328763277450517606846519683339494290578511720791177204743982239026155207826880411068013062134615726935394213766278951663894236532404199815184260679446028940762601327977062150159702289219652388699103975878838372278237676605268773461147849873398249413426081910954789153553768330081198735558920149685434776648047989682272725209533282944258374833232039384199055045109476987682636402968732005867460823314240897532950896835391996661457049501327036640983038849899654480547569353990420715336562291860517862263149304868029313710609922721425650560565693394840020333623498057932509038697803640687591280075752369007730932508272016150367490334658140466945558989957373883487425962491836226272113466421129282662080266379532531317287589662203773755079133484673479340219870794540244498724009030942631902259140667388202255484760846795575634860698100132529160798305537357465500395805759750721879562184842726477196527937529976482092287503258628487328225103941603508802751184869425094184484644270132385594547713411810626193506298207633420482616755275892593377974545046131914903302969276020200959247318688198323439969948502537269604018657219752855782129686178636968820457304440532988650191178137696453108826819935288030436631846030498299427321196900358234824605898628698144769305233868053413235855252231622066942330118316678506458987328830810823714615819914417114997157356459959808141885679108535162110864697950561534356452917962199710917510063261031856416819307276419783866778882141602529533230140042007855058237559484026467508583316770525050145150256982296369954680142629902443387734048854126621032916053815167467391433821659181144154050232642403235818470237937460869201835658163824950003493640712130797891083319454922970487672590928681478728679544963988023972869408355749952507119456783858191015081350559151542152730340487400466004255936522815903730920799136883993230455947461527267474031682139183810732685660654138095560220836104841874776943673415400800110580063612126406114620950217807676159493104532064577073230442504573709587901977453062236190482258032871818767209740046901077191534715405369502978549418446849934712095538113195322736635496660199862296055667420431583887966309007626018941395764113271347046846451578750036369472445036306747512642402232089754118972105789750025900333128789899759715689593256123772317190079213033012339403734746013878651094045009799752314028207981187885307477195182031960381573772224854986374288166739931348866466933649490104984092692289142090327491734723110761230566171249533170781975917585163576275157008918166602832570534908412898578316596444203772784227142579207263004315727124771069595000024681698757424903493943853979817131454010898206179002013093780519756430644912322052734437859683914362961983999695415268004029283597051299761449546144523620689393430321400148757101841480016585070144805250884273051771325993658995354019287476346805518640487258036833971448562627790505740209482606700757981755568132366680177202894194046663734020831313936624816978399893441346866774072232534977636027220328551164249113461338304627175845550315734879684516592198906345570109414905658714925908033696166415483275458273843651675706071770631747566493718963056845721408310761000798979209435786930194390770230055185734359925417621509565480878960229923683035131867797818059882397875391719797762134576689763758426290231894863981979010839752257557608322938764751200743381686288228052087460465969742756419861279845845950748792867661282161201064649930270114085383004229143861590757035340808316703464016181180103447274717518674942195643215170147724056627288230834239724854283720584081493978925663149567668123908730228664863924122722489804516260501242095189811715986912299767747923025938757195896541994283576534379093471124624898429808329401594227842718827777074298380368222176578238774075733520014315461760543680486447269549813862610374743144595182335397203132533757568420965233483967774865627214381990632452768519326595129091877780490992769410608414266924099328523532718711472796044002714185789963492416262258230672648506669577403548630438038424011531325052325186056794003426696878746588119613006497624009365637916384304373492178066693195308011534556323891287724775681445131197445054567926366705899736017442249222788633904752177548537111544035465295878279491655574035012543300257881708313364659930371825644976389520779812093749695047437626540903791559608686671688436832420612783281780582526097595786026125000250009180438912889218535704007922840028893798922574934206429303081844130853264136447014807035867093968674113264359353861912757591264791483965634116173400960493428436106267920882083720584925717001620062505054336221289144985068080743302272180058442773643016270239088615586154576013189123656048275492058191846289404301145443261877243044590715460316446608894042637608183541028854667104899161354044703987834039280853515311437446837088271110485793850040938172398375500014747222899672137640167608445541283108986024957506834072395523073661913651135753774706632985219238153003102222563208712390236394703868852985232449181863229072008200024596723188385617326366568653776714220295675476914834517691766235173158634423911409614414774046756767527307899619423694060835632093377951711756617068998429254839680131972502419358875686367830661448894838882570995359492204986690681004474809706710793385620912499866997367057516190204355619436300166016531270279243411665739206846713866902124554071176607631541783321999176489538271323281214574772913998223341233676972438075677062234711263812624091320192584618526958985990979173065987627231789295117608197204531583690922694002353995122096906314900563084703128362308712412311007497683366901758912877773462730802688976962306819943337673619334753841034827135485872728557163637927550273581956534139021178626344034697387019173881793929050204848247157154722949249844618531971049775114204886840255720518063540450615647520504073175277539938975317003716957493714675574773484065261817871807487304504143954496472661263894957306157730728434784546750309730925509203844725422702823601288677180076627017208995994261725950252825211587649795798638100739164388769689732908486402396047690734118852047809881965051327675336415578300972563671456244401545284150674757130500995317051596798597400465374354641523905645078357701205854509014304883050341887325687589200728650413404633326996814144624976388935105802630854483996834886181526007856294997071353134602646224932135788503564929124413342258629793509613883188848602046475155168967525468486546929815788190795492157925756652546426099122336985128866784728852285722384236601486778033134542502405627819087556625441016624473738307955400603278441666110256495936497626969997150954497076878279585682083319213871825075823543291008799410962512149036989976563586095448440913365488655162080959693901539473592389881936628929997036613382256517367493787366762189137043579460191392897459368110443482912295957108863878265930000612481776473652586173112860213545858862252053973269123582872272587885151787877880918348830179437485136600221790416492489835017129617835699381876783883394783752858528753618274637752590403812947130330831089733496408247824680430341990562997119795863997405833438443090315832731948743961436309860182204323876971768492575610020933546038773329779026316788099400273663139164284936132938205058217402406011337683881213534816607727819985475947886645931481293558199116384239924668559192548031538004967093191054400715614421288141635788523144083899473972305425398106894476387268772942699735912050927929935585277232966888220253952202155359846440163914199666226081271982000457958087920851006856318852382937696071663174203429557209612652921402479406718042235421851891887602405511944020957406310310788001632512853722581102958151854246611755915445780339129846736429831624708990693502030266960105869250494382279829765272257446653856884941406455793399303428215149105419807360118421141091005230095201662212993002347836683297615157019224886639647951877450911069604563187945549483436995472074272980803793535147546145870274991328394126884064320252860196698946364356498220023174883841218272083564110638032539765492738397205645245433701245838433538709864420472924460383245044719533130042170435056095477891289025619697062800045664062662295823076184105088330226377751194091796451972966053195956360642318247031874646739102275522672729702177186109541521840920084910652363407313973261476365715539361212473078546820328018974621361108134944559914923137508505825266469365057343275845215891333154227382650072297861213587752062850560567307600434487051822121679909288720176807113505153458660363031177910132736756583237568618523423637692232154353244426024917041882432021218427874470285623723124486590142296930509408188979067291458188303632870407100767287351742763819910437038837056904218692880466121613367283526058837972584943052062038639588610255092424764172201451094797439397131431901539649253257764291915587367702645027489872669049450714992396098501672686663901408107956859068426154064523273082293508537651210134270968929827503329842933515788317566253156483620043455518787821629963071225914083731693981160310206697990427019241846810247586533135744799125319495024723577502064214915897178829448282564213986504242395884763459528799101312812376612457338741406432799727350226235569419051089267777774439405394427587764675537824107156404318798400022602487137895545686315269228996763814450542274604745205415755021511306567688061867212635541695920380829795687444065379714611245036758778974466434639069763201688945032847052644073966233829954603521128587334151224434145995119408723310611568435850442743262964557816776517658013561839357971887864408804768523488396229531685939781876729988106428866238721998356238902542541104350129000604274365416101329051929385147790845066020170410057832479082129380326762555377876779208040679623016655302145024735265966170031605730043717233070773152259876644411203923998489659090950409423186421644284204172201191966349509684122895021065489491043595561795684752504525290940118614847000870273977240933015289299079832821701368566194299058540158383987377818326993542349268849844146685343924896992613765313330457144664372447731365405832201280433489504073799665989749215347439698010889925317916296335236260390075597355029642217801522249165950362226361131341385677513318313565760213254435627379678331013753071008157078542218880184761873529785113471503920778296357929925043364839774081764572983510200634491325514353142612900983279754763221083444453597297571575516862445443728285914126370392198268252783264542290617164903870266224806484102016645464949911964872645403970459711602589248018642898666716608708090933659419358270114669947933821119560090307973090768195560599398658976535203008700550794901032464375186132879641611728420831752815665104467431736187547380562434104576032854502177769589198279575905184257685758026281434392073776087026096327822179705879614850130281148411117943686346229491055664405724231386266248760298917305487333544640890149012497604947588756360204104110064370057082896560952926402289866113647640426036076285522932338876569483206877010014770667407381809010074049431947746000381460955181877468820910043953160107606298068503857589936446436474854236078647335759373495802435847303742241479050460840294050650014361909341505476999751949056180146977527158512334274648606083723903645056175047806617818068594178650927445184863379750260222366858259441606093246536822575640505030163534162793129851160943383474453073387551104367452231943778469582934583119597017901412808104861547498619607787239948835637149730132222761959447120473175634214253873123566426263436256082916734609700758092598563070440087219321184816915625040404589597827862815534404764811319634389960769798476555430373493678888022595242690236160683086736322897299089035390153262921176685085460882705538630846178034577551657323701669521286368483063068905112466152788831011821530104240843421692033812558562113225898954009492095026222604912914495208583505528725520411792554545995256742833187516165717779321958538751335759129114241790930353323099937754351931365555773137943006505029703307175670033527138213515198739515271523098284605868335911739513839156916772414890230125339275994195941072596543577058838612589390092420880984919476046873881334491046060539496636882503939687964132122854151170769100106223291792495431192803967873750538257097354910905055632148179705020331066708403091152789770767513942884132867430479605218062835297608006269191172676334187476933629366368294313186943831132150997530005492913789735165239947690547942921102039858987936305121996793805481899829984491521471617176167528897138305094920161201982327206174135388297956253362379116063580917271884732201662114990788760868822417381488444357733800053607396189926166219384897705798247003751970108295528741479289420589081282247438023507592140133919441920952632360048665304983827133142778881955449006321427553966070315115727520913186711526939743098281938225611157233187195157620275411462933972586451744595528718067231206353301337792091054156362136845052444970924560446183525809762462865605670486316951340589235671603203594752200798982538720661203361173601107922006435272874734953886752784175307181439099165044930613838911985521373977345209546395408344080047698589571337724654181299937194416052109490750286808591762907892979993611704672933624021043048894308761077101138368518555144635524852608293071003394568190056198431314803349461894231463266037312280197347760909984746159316218885846772552333123769521213655810447552737863851436343906120997015099907121924878290602126187113078036507041768207484967515415295898126168477478779054591794926436810174993373958361931713186503136485141459665551492778118673214714839863254047050581321262284336148710002571723004919563617622732839853889453277573777991963575520515276432275501777446443921266157975520177988713150815208581867837194551877209485600441952935760980171368468146312489909709652007119086591106628189302531406618253341671444498636501421899478442186987443768640860435461688178323884214667684503767059798769667869509726120305735148159764733749711129152809996121543477310685590007804799361043208946937098845686206972288065156647486517889869554837147818780105385879330651666686764369327821210042326460102820779486567665021078610886917502719026843880222942816003543287966906595363573890489225278918446270394171320556944730593149301578734905009366355323115562971182149765534295281099385778517915509262692820260740127734557332586378769127753748225594836534078882167263758867437835598944977591888483710133740398615360608558304292679133021673411326485210224992644679192824966333632208110444474876858222970615972469549339550440747087138562749176052756105622625271790055833938912648239215612590518472734067851033355870120970764473856841157650637917347229017542846912297712806103240343957176952538470171599451651329126969565560900247112514853688794912239522338611619463661867975239558451835588400273482610614796766066253504019947892415972994572222846144362826721244687001877544122597388444371068341210310643039339292992923024938935170826409583224915123281696134633539205710663880877540983461643785885223817131744644728920140290373093877997751140770975033378713538717576718754911759329707479162235899622652701280006607482744789169499041865362817616240863183821941627128412008853282384052233136494484297712473859896450550396340204546288778715824978204845339170299548774551360028882223349978159626028713913895214634385953492630829651568886584626279608453486358628644744364357788003197314722953719240927406502475290242013295859890928117914997116063354095538039128452336357727511154344431786718284210956946856629851969902275654996897906889582246976794700938249297641172057597241080484228030249137471520007984066074427931893597666545912357649083935327813638733994581428429615346015411622237159094500022643162276167750796629089166729611597752102574416819761386088543936969888242433516871748234195576443604733276958888494029571192579812449195848983360980518892343700803821537314032715138039312299634483442335933357339919837464959098344234797698949900489733754078510213840174877134420977352476674345964725720008378209521897172647171770235239040363902239987737053378131570228384866838244813771820417486334641367765053196273784125092666051604334173737767726442921033189161256601485287840934000854775403770089385411751623691180741642026013694420697543215345073450566327596174573238177991446598487902673169646002417630847037477975519931141866838576854362379239556882164640641714993477404275366743340114637981222681914487428544635074161204039766891155631765188711258801738317925403467234927435969239985414679299799670051769819224870046599392146443171049370255490320065930135877809269638471816528175505216974724167119577982101291584408329424484354119206108037825930607636198921229772990415150644068205288747554385416325808445589979475004007622455320288982429503494369434134730976859971524555273175281591251956073625974844499871211595991010302405843275613919953377672333603461900083497279062405201833215619939228528668240369591662819803114177518639777587449655967542830617115015602134600878801975038029120631272417266403544861035935841211709851147317108450319588454233464276072336440997848157793551496753933530795958158942764393617031199727976727001880070850687594767941404787542816328458175561758365438202938897056634799874933408095282791672141448618743716277170704152638386497008515928105811321126784861735782036022225587377494188455094777674601309980346526683413559363586508537428878194177834700277980444724124592720050261070093386997484515452634379609260442235302918560146349259618217079602038403744222195586482561118273962888409473547657698084627878118337908055166798314428306264215443655305123602297440119959776534430004715247545008220501098587306542105409000528769539551658422785584232643502839424832282573729866456028402305917793145178215939887438514922621039514325256418502534104670997053905172744095404293461976571957604279897440739978709593192429846456312774913020848094401699404876850939111526762072836941653787951739889986483347222502371255605151081241888006392560376565695662500191575185304784667909444936807772051013912651778647114288422014661203097865432064071007191601407155908314144870088353550879903456035703901601393263250676726967052538478900946948514238388820241291115538701417549932698692466541797209335944909919685466942162773613763705372521761334226523792068070182705226271313921863766684606502543129602385040692360555427055648109625985670540337442855927035626141051335072909368145989435944428991451155220615627331796398262444545838571922479936365496069403606898055999759421399014488762599519804975469472465241680824278040319501058597411267708213785372369773972374523392503913405362914029364926928489793877324574010957914469611883931198701934439233881114306160771288330192322107645676773387206057676349370049856791416919996831245641944862970142424008648739643949441837285679978753100217415015173285470646980715516855159029913913109251763184205089675959796465104793108737606019888387658939690599867856369428703391988101562468888375782294725956438839459622125615612360976513609653424212464045568636251589594650290745465863626066553366681011788666354693333563306974358979492742547737051963978670938412384878432060090577742237854802312698987446333863867586241588029421455830081282572279768342568437810224711667000522410765645253706707123172674313679917404804020515079202958051258851747634247907841447070424230037595973724037150887350556921603393046322128054446495940819183047093356628533573574646548979869668965779365362319720573290898120465695461044324554416683239333735512575100044432519095119924457176168161155139181263253731226797043514484257531879225198492013175429829669880785923905581994881775024500788445419330728325463578458190025303823280860075649483042961454634033965317360020858213453222173206322093505389282102374365196187723998422661818679411688634465478586342056562646363354467041864474250690965419690885245676890888059492768995946137684309769124497779142869343786068193648076794489685306516229675762283219802086921741979196791407302321232751492504884482212238680206317028028925196519211332630705719439203032662717680937240180203723783219328522005181928922997563810165865082206900592683407184022089374546026716482442007395821629048784329652068245272981207031159413486682884386861074847526606032410508291650248155559472348155488335536348923202346991942707760033214245850713881674831206866639652667298934442496167901575475606801062076937259879945445637745048127469722891735780861856844138551553567424378062210809340417190243991835631471383730442790930449069789718812812290833655766211672056930422272123641822610476533702407106082210756419127107638663505834218002911026522298482941945342800347450123116007451144085128387336787324827996900506851817999996903756724755399004191804994175176925748661455391456165615727350723329630270893790192971818399532941296430760801712652866313415530651725692791742152573617288673298646073328567841709012499661248233444234441431546814110948145510747247598143497597909133467638614641664339871760883506938374483359403121449912400461015638488359696096803658429723343441940074191469195481995282341009205892615354117494424264525588218314997261385990496977930463730082864352801049231243097784138526038496703652240808162582609907001934251922786108829790026174960924718162383040931160885193679895268218765519705239763106734759356422234129153738065976192103557554777504272588304043339991422811249096649808485032759961571941803737283097637087620707857062989323990529678136404256586865184158506709489852779518147608242910849669078896254365636836921278370966621934604317955748720261230333665928527767346664233129488819210285969848459256900438090668214379999422352133268916058587621550396123629993645180786788212569962021622033479088208830612422998600909160979311784292243218370420528061103040454293649771735761468941011928592766851304629934519081036598894488490453527915252087649717109180160942776691484213729426361543215666166879195551251576820279428382924906619632494629432759125919129777475708180717167284298561490098392042339980121570770877220295531293604656522519003815786583861738387612693874995377028028358957806373181923115230770819250135556838043885414517005710453143273129687160037522575955493151723453784226762896360918240081840332621422006349798188788320156462273018481894589239079542508565633126450038538840034038315169836582293583162600676125494804896444001245302772405958390186067239525468510163712541939334431019657925434200737288825407560921518522824575331134765421985334658929277739772009241334943972494772732001737276898919920000793026187582960395464142008450781130453451508393378862275152730722611899453591666628550534793117730232854394101668195123492263393589357638873805509005295754857906527129164812614631302251848484416943260837662881850470080222854902512005092658467863959672318429248329225144773363230879123907322633142859354550907408940367515338008701718779976707439285008708577485181105571419584207537323135723061635882024744234732660854699514211204627855800300426454992083090775587363086395767719333208238573464659372570605468437594606583599423394814578994360935638236589013884994637381303371131928870588950772146712390013872715263835176371695743192428542217330666969527326859312667846357203975376037943680681994139248011204007356951933440603509194636304894825112749902995941966516867315790017566529678761191630760831710501120521155146994025117796794929421728376802164793835747501730445137400190486805072128106805385659777539919975887910319860237236568173457002567868098837690226102795539774353658984209043772981733968889315935797928093922662220949689404066039136619263385453877493064102738868620464552020290935130972354507922046640196631398582540485737604952432834461695993786519572212047366764978856630754644464168427338754089534014364361830122332807526654847309079784012018460542301144819605107783976569761232273675401600598083020969550682990886700530662894151446480596558851924368998410645046412845635354959442453058960421909735145380928497253222989692916626686369860746918066793316749132641265136038803698617440236272919857679108472897186112350207357188696201459924255583892636152880854549590216349722009164365815608799703409751871949573174310410676689631736969853647029087592723138246065550768197585595742068714320360886792673566147144348344473748343410610409203165851855684266399539075019684090402594040317939337120102563435282763875523710339245317911087592625986854843748666945043166738557129705393709038478951770436252312410132489881251606002685788656087873738711740450921925200843374636326761264427399862735832983981913936519864045933168666159778042395101216731246610389771334887067707950356940518085160334957804398570401633371850607339551718316778082844104180865620696195895227485046840936399005569826383961893358128390484735839232819533239004614865752413952498615812746337617509298635031519518509697668302928448958326956700239972797946168875129585652768002516141070804194553014275453721616101063244434604870873080947354165977986543787971498066162481678414941791280292037359172548441409063762977660117538992250812001523534211003731473205812467708796371899581756930625014048426225237808083491699381396231063795011652242547692177659637101613266606858818809655829021237280265409994579014627524292430860775568634901278447476179918195034344738338695444201813633697938562373054709749858510137792100677492066175371370059651429711828154187619263461280100535639298938376155441236755096573984502293656361420211852055362331710292065544981676363465285378639471492815408429673131914198141869735688825383357514801182997672507682408466944998435084153917055870597542679997100301912762805636452426089808373539067721255410776205774595234975279661109697787298283368378235273196501949892106303339209949007893498456481223730379987856956828964536530854183527996518370849389812420071342108122177955023059578212503776467811013299158816255203367909724983266647778280375551876253199486805661166427810964672471832079784075177245191443293787656355250024832920998734706629404094193604412133653987910931364157366506846079734631005033019780443761711615170263082222359012773194021400144742907681744755975447648445445217323099465763987886213041885400449574832083749400465275044233978676789627512865644429745281965452639544718375640686746157351364891145038877618759972568580389419387997991897738350029017021611083572648752480119687697905072354950210252268264136568104485119735250991973407840650118538221672903422407048999029018377751427767797609536549068258632975901924107319135179850520010923727633881434749543513800567167637380755511514936616624178609115637447461556171242737160179741512088522764029753351862282361508141499168939297329393397228598898963066183814466323892710649314152866742911981484140288132783770487358419768480467734551667322534857277926887956778579403984211954154499598029073842014774601086136962856257718603508980336115650206442067113759526223230748887457194834748466442216921541604899965967184616292180371726704098312183119022917207369558747063193869914197034342170893438505280751076015181847562167699731168340404953725267466998274212285509711653588873281306609001776157718901748317694585597415527755760231353220868952905197952456916682008385592490522069980537498545107748344198353117280330196596899757299684810112835886631607648932943748909858863714022949140972114118395552584816133636735154417016108476108929273483916199501416253954460680394051415499848488530574736821628444257490174221059506348105417253923620377141422415838669148131663786959978146700548574231361771366829194601816555417544147947741289090509416219452994378329072571104458861474501567137465810510755983373049675739897185671155437687617758591476391314699756306136752219747521816956137857193725998497953694862032222956746895116143115009069494242023565444144194298015965989171896016969378566649071058722139801385607455531588234162628155805474470933681692800112507432450444704573236847965210653794400788328185966665205186960950245349525526581606731316750657726026284435264080782936839983356656882104151249303930683833785640614779936739080609524848202226095755103607491007912622232096903436922949035794107969638931728796179933613879891283687500023362046785541825776083722568246126773026661298809390052525748348176423693871070559229071880392923542428055524039287663121991557258840840224129811554408370535115475371775250718592412967195365142402335983373002347486742645741591056521698593304226829036098693433974429481034469193084675807838320111293098323872716022682756097051856432441752707412645401925582069161939237161484122968967092473929828577808652652570977235261991391947580954388543768007929353139009182538756526527833192315184144220072283234768641833759420918157069422049678457420781079172499112247868195759378572284497246825555360915125376363526848543803169395753378583555714978056093083091683888024569278753953215431111273175377423642812577638304022074537291013219378096969713866916047147178897689385575894659599327899435149014809970000050058509135166186245001040581315507876222298970554290137018217296574736538152500942280925777579039051750818229906030062261496719766390384588351869175310703746358277866129667488139923776521594115763332645014049447522141639129481254993315683169739036430006120433472371055248883200939986995008148451450910027486167601836262075441213358367214054942022307334581727245064138814964593638199125399540782106967733224453392029924961061044012743001367991911369211282251344383467596839437695167133449072627642939130666831129375601350732501100851128508565689842006048032206845327367736201073819612774113779200430471403235442652699338046375768560673063639097522144604015262736353136302242269445249562324434084333622744485171295066102258404247215842245636525158355256796288719301144354070163246626204521477834829092149776414675587917324470013939787360478739851310386930866723120000349798436155910977738879238369938492270260135295113668903977681555675248763771516217959891387350627964612194233610016149654448594103506791326109102029910128784062537801232086108396264615906188861072550366023221731685612955484320984605608378028410580231337372877410034520620552055036359474097929907048742181554709710678941680357508129168723792171706700333872837182129216944113926606584583929858851389979988134912049334490710916038784177898751605051929930123956081405836896772331305744457251671535295808511669011018231048958265051049434296982078033934845928124952982987883554017923686787729097248405406028202871703798498318651762923578697061629107453297942510530807400831123258199786319831108760375124534372064982126455126375421695134514109674170446296023529997179048023892172302166102225347864058256099098443585773215285772666921859575670629978796939728000799014945230862336744819808127576938262895171931248704980001327923070325396216307546992925803015476686388420395201150976357412341584640338027677745833547497390472033769685569932281466535618275251984247921271449823735074306400313918659894796440579779151993316695680933937037829133860318713844581989683378172375144655963609245572433537988516447648981001977953139024828568314170602063905096831541982877416921527034518686909934715888628227943391123618203058583795157219745546423462732265236088833074328843508480109268645633020399371752791763164129630665220540066835198593442069551366882637144348659780183075076155699858731310071078016515741081818658124192067952005652056215180347042828285220314096618729689461451620500854135260562338187788505940335440024341352480465223024047756650769201723805511152468839051764160516898668489837407431990866918537230489316905416274416606544676354788140319224303359200436393072258833048587210094280079646856529662863783507230153388630914248508450165172136002326194155703048543867256004407316181024414357333814108162879071455214918363991526131578554892830094675783744719132122514631262243359764425674509980731698583789039868365594731018851444380194154504688686539150561819508739594214295413291958929525853311041227824216033835889725437785358344587669396174347315622388874955073567090445653334490596605638256818385688711741882124134002291091669372079544962713075985785518144855422294494860824323711704374842559760631272486143126970899787925220791040511958521220156307790153993060022014871056593321696349208542575397185785004433925342273910461523325687348959169573708128179846340348529796991302575698466533361316012693032582878847624834372689195262146636572064520650337723058025671934612862671202429430211989724965553907867578642427830265744669955065942662222791918133185974722457246650025797543477364413570922658025202403538925120744072514361110832829120764838023763661233582588842322713036428252298436817282100723609927196274620930874495961881311892939508351830364265726856887387266264466387503344286972746501749410649616808874456930078694085691406999476219963280306091558356380389183550460344710105541214100552186822221925005395955241372416991057358192462007472112748524383403070474926776244366568605218821412221525480654588745452457183543694298180899575023324948525775316925465552661119057299909506007328473348403988689593823357628487722663156285059111046748278828570357311741505583615758724204404253360467720439913147710529836231643061171122436216347267134209333674038255200833714614263552574569508728791153269254797307951980268553460871034032886007415963773053437055928547520994304179959117476394571435138436588554649428854657877535999746582534560647382092964912838203472075416662041035866330818579101116509527480978063321703160009594005689138660451427226747407255570427377735693012349216462638382756404630951731277899765217568397109349610620885267157500559494590767079061345583157121916395340380830781383614964921196722033516737624714224380956758154167865994512510028746424912256100320238386114341165794127613374499722540912740963267818252461004558322261135984679792471138640133654505743932545661933970467091551318047834456112508470387291071339403433465371988270300995265564578449818962171238788554530738525832038876448700131839210325448797520447214432605743823929885776834905464449516544644536121312331030530164803620557363531252423422998129146368874160101086496424170890457043918217560555470634581536819003016316703687844564020150484545699912669125310642163086157291591331768675055637978302763324597300379432876067982220364378895826378304273822921313084192777611099546316343065375496764620954685986687425977486220909344616627406726257294265727598344921362586041476063345089848159768453330884076342462259453484894216233467903631452803271281989041625001067011860375256490909238853916185869670157433548877372537179339735902117400585540432205772186062913368302429301196930516730026606478281872911122830654145371407200748837342072303184678840554252068496564648496177596708970671486812851416426061460909832738084705664613817728519171128959686330080626628616720023028841450856318525231724979058691967071063175164357478864445850730596541435561537468795032731769596310140332277155039315346383380333027909220118548939747666141320450470893956476484455988227179918015932454403075310462345658097813184299609754108792444879345190413984395676396535183110840644048313965704027458132772914478046344897931530907795467230622646736670257744558492446707855074258835482705454036170468245346737282504891020349849881852477647976064096717458459264502575182292130583154264766658970658603912237435963143767132491903261006114923825326570291693406905546184547761198996881590484982605664912569854595172709904112187990715402903190288369231533607781186511725439173390960492332351890285255833587475724271534546149641726772866162908294658385524387399085484467091137327472736293566735095755076872076048691203071649431205015052076014257877311374699859173267827862764909696953301288320180239303012438772412175265607027079358844872419531649203929548621301887115938931853703129419920284852443823483831271648396881810652931560201575088022793051800617996931347763439070342036252723155633313731314577753681356142381782588043856961656116050190789747093415905317918062583774104721729114637428078860518545172620861965197511357968479589992842012775268300571990582432249284945557867769291969904206356948437439805643607682281867941507144385498687951407766688802749322036059649374107479958043542654021855206467261316247980815816464359671622436917874288321675132584627344947876216697330551231592343884833138378801382943750177612287681812594582633763365685007950200499986307874121304061304965165941157884255227868007797375690131787279669973976484462015583903521973087321230456103358973442826558769386795152906749736045408125050056057703102055445437605350978056618504000074145306315781156205163173698544408422340335711304746614535865425409875761215851467059653453755274912244558504443843982450456636460186738548482637261272227237315530877601498174403829139701745679027884219504075617684590213884647520362808261302453902579685604858979853915400250012511988550086505800159781083146689019830105999905417542086005159063051695431479918113561695559522573162196879084872245712736862066114620015793620291888416224180337793189031607870203262139907555679824436466826318159229868209826491433172027557578479162343077453645549518876426215291136737880078145451586588358661558423829999955705889378575592326327440584323501569892892276855446257988469224715480200343756128016129621854873322236011083559382175575080028494563380576582404577850844403917317728564325936585865171415245003723567944002247184523596278738029871939282133333824211397689987684834373148059031828057548304775328300716812845677834161493490455096519298312412106830191577777729998981817163098931971302236957167538974387262100863903573989917756688577825504128042483045303429696222099623252772772141425500076294340391185549508759425779424554502993613333299820223519452907232706340575889298726672063800697472441089872543794653121785101509638235409172854965023974703540265347421472384676517516766783173116517870722468070451217600922515632401606128533431126266889544470103036460513739237817389095203230678330023518538550052861171525973880193736604857142947511810832382033811462593804683167112298471758807734709026055686462809931300182896454804765284435164908402438566259650768962658180423954071990354168267736707502712317439741254757111515924787319448217841396236401042678593069761089566890601913057929694132978638742463701908978057935113894647386574711244031517970862163947751639739798772706907662654770016786734978270206228923124710629875508591504717924039088206008575903284171191115101792697468377969062745312359707145414208072993969872019497120876390065344398668888143643960800321389233357449896953689621628872112955425797949946763326360477788494825066497891634682629620283171065786340383874146167471679797987432558269464922764502592607938707061986696992985203104162300099558472150526386383732695020986551021790727376121654953332297777866011272992436448671142390402660716816420529819600545595158073631589085669121585037481217841466033864760002423376642399557829619195243503392111336260332479742438659011637719851687966904813288340394605259473061199865967656910305598066289215634391455382691297546251507284669641009144957674921721660519073669271479850441974457324470838728673886717119075323306788493396407935391623780318945920409755191296706134419671305292039312538985202094223017100661877298519033885084558875711556293046452759965400865323748255737528467514957857686729292236939413314411535400652315536339164544963819888435334559817413857443457167850039546591762220094779870746837180917612758428905158395695870655518499544040105238296793923993520988897052549431255924672633338566003177178520493104213555530531325912763234354519874010244335873446364363924169236354753906226869104139331092600729701581815503923250950308943779735443124448724509352596598046878965196646775802124221082184436171598908046639528529592488727662266274621049455836476308343631188570101174449694661590114049363490753196986960675799789862735615770442500712849883362431940081533010306089148249804338161761994735225312705868591814010449221287206683265204056484729898439160437584355419911230059184673418339066909639604313374984716935006468275361755090077053867269849178596686773439845056632896673320511016591979423734069350783906417958960402931545109016183694906186991898136986227224312197552335025161028301407014060614405659247876956103474881460477277819242046150287403177335961930466475006608974599873938649820251933238002876900138459718835779897925073794793676687288951680811655982033599731402402069400949290082527189890260359319498014874667607776355736247754560763771149335518077477819412295410625452279024530538079833340286647587668364028507295565905883136356228359373706107135880655044144169004916390842544005926890613032058272489129706587682231494361546308756718850841473828586060284945625373577886590559092375300300401465108794598758390915213496424761379445992695976861446059938851176390952538277150685374059886513783506435848974857342555916745354201940177685584823178835177057916796249532853713851430341762265513944437315871448506942997748223652157909360184462475754943120855932706196082141546037685894322084030704871043962341850470315667713684327229616249347861835298403081848561108698730844524749566700113738972162817864068836522139141096657638723874140399939864563926705891373707054826873176844181599904901327705671534954426018782719198345224840776430921475820366677369864790760237132684817882595600158758753709550214280388093051725248408391473278728729178949663668270013530872861904033247462177125978982940455194424541150369903109621913362966514290417753606604680363273957043086921446387114113947308174285205368138757522996598245327086564780120915184100553258053776492379110873487072577790863811422430331271180794831083175993334871538091111987226100454990305514302690522407831313515992974143456044477707794332063096018076828642241970973173703445176791096207315582872205640678452897848543727391986047261724650999821235340524958454451232901602476309057067560705551931426308281724181865150062472966599204307157898409497796121544354042248002086392865375744234704176906357214388546419136252550884438560618840997796607830563504149577952586295725675539737770208929761098231835385938230022255635319771290259242766380554762010480741695256169611414363879017256315449666009777725332412642470424451727548645163167079946386420292688787226300860822380524960706425154686692246668159126174620683128058745517908530721826784506293171165241190069566926964285800352095128680430161121031862548749543125574640729074342307010477793267450226305672825259302820007052531283152323603636234742394518222609364059078677192937345363325751435964684112184693889852990027234739819235067101007845844940674809332621267547600148603488126334682522476776760185774703323060688185457556403657291770130019646813906596674793330186721913081792824264023244070218730616888302615926980185119955361953734626185826070284127854561470411604769898258086114024737601078731465091086816995348473924952978712841859763966235887928955646501350383034115213075400661023066892941260045051124151841126964453283350160343913113773155344433426025707504947599670367626182791235492933638603013453368807182330339166072547619765349463583833731283625911273555522300539056306952189661920739239446068012797227324039486935896207729139925993212201178827926758042273858972080353398000917691853434895451424750587737035620097909995959652854124817998681946061539162672104241124467570664233726164552221946958009890753075569522809038618007341124294427632811201084887497438792140599905800234438409107037538848969024107978618829456529673354206840044660752288014043611899210866363526776563216415111391965417786633111720250314584066163279681415635019604892700028042047361251127184898106455540908326748490928235237315111569978553387871879681185152041414205259832944846621336349725425071678233671081970964880364914362285266783401330378860020715389803735439569910475527724366561817020758099870136131634646216321120937257154402312609324461594602622454747945277035250543682634035713404745419057417881370513910929960891981139757127121363925821063467240772674823868680978302348660896494254007513145083400833399550600157993937249725685079934147126041664664184443510245245360667062664372581406410382943530837306825608904747944784810489282283863219339517852602267692102821115115881306019605335608029102110989513694149362852830526997173855274874273064863179154032593616128939063756216345744726637039086078505047161561365897380395905100687631798480942663208382191330105311242298099807975762577018268296421469241546462130157352118336812351503000402051943357166641842668926097183693311131640287666483529919940679312819003351136363557997565890369452114791146911380031882707377162047805364388393226452638342502513776617462675764906799309666991042893895544238418881298252952664670387645957169597937808697053689727524182470941012562494391530770180203181461093768099732282038957253998299033804099917582951362177807768982987913423292788299672748395967631499327722141921948429195664770723317707911406350418523638802613173612429857751399483403791109046594202944269115258977446128001790497698237887044906243567934262450557197284231614469138211491256064707104498920161375610334828943315681759938718594579665806063314392215074897999601598132860890991350870014390598874280466315196264398758312785090792049493670255524513332084121317332585279179109328246647226178022558847455208623351785026969558527536907747218237926589269078932558157048349860440121599748237314369525226498879845816513854831672589211285671368619450063228652570531787726873951767388381249256272146536683045598288155904060516328748164563778688747124976945862528198163794841724729316061720109167801334011195647142607754016769358593974091553953360860861821574416506304172541024398498453682964812788501077389758894306137686570896061258866056110776483932828422667890932562201207102065431456761040341214447151104558753714761443680071665828618203781142670264860362906720513598810078724144219418736166985260165131214295595098594190242247696563556405186954674538900736838199195293978246271760023961423332112131360593865014637665822614960081487197080109395784823324778751971411846140459037310285027450068203938066960000926939476009557153008280391055919811715663916603408280642180055711999111484809640376460169738595524400522054930355443884883978823107327140151279509207906965689463842119206561845807581789515209124389195817301640898246885440325642528491036586818465993236570727965475924284238838109989065395060420812569974110488687806655640881184618374655579997731054210013626412714791767688766082106836787737771616338569736824840267116012880371258768645219866103773167069668821890761122138660523831443871592411477876162505253902225040366148049255721586320449761274565426197061710168284342072341566037610457116330678163133367056025847228463756852172342335969745217919801868455277693727951329626733943629323995474635544722118309615149867968025431758477253717963992561338150385077209166338693890315252503009514029593403733591016335762928047676311962918894914335100632320693826052323555854225945583228538422170861686899409201710634360617921417153325770038453578103714351254398989431781583272263742851850666779114647123751648426542734676744063521698015114619856724701003374258887489696644113620449103611317064987649176719159967272140250936683955462723890227180520237389775784915626816145976491410364004215753146348409915906737617685271246304300178817188251517276610840067604087449668436819396981955614533986742776516741716844203392442232050308702354782397288045901185169377048280421932221809628426866562628854635515341005343119189378355507998869134038094656362575721820798947896363395686096573153426691786280609173066236635072399011755093390228046724088280180303950152332237287968531726784594098332543695504758668634653211181297755528835587336602661580477185963759339848947213274876311247831019517332418236567829699244449404629266451785770545247317340683385281498914290757614861942735460542993123201962540337114188814531729681398244041011773816078819616282525881990663126652955897759756983526758425737974554889046237283758531695783856957286524367370848539984968746415559570597932583028427986985992436544010112926061805421794184595253142148078590279089152270272933864675169599536845462384707023064350944297866043518455019826530425307762366779354082900621023678087756579822679126766228234474711504331996471031678737883969847461680627913564240486941834646788696764953580579054725895978495663645296759590542495139034503679570869650283140316456539255432160165241809826298481515059534648091088422979666444169187429312628966378343120518410890977494734856265999037602763417897759411216431882119224489682907859688303075165376706969786698686834762452365254057292439769113506822656171196719351181689566963086861328288052983716782447718693277043410293726177387804349944613737444590398109878097040600029778601067676477562765987781476126714439844253744402740261153807159201690460082406504254992845192190665220991799797983929348492109651807854972456252093062022042412288465860447727263183209161105586150733094044611302234112675420200401691216348149093277910223593869720645490969737325509341490911685288743043130155121048393025102064732645147542352728587413926387640835227218633218405833653060400272256357582902038576624478991661253793873432292349699908916759032526289218214032275890428492750442437590989192291645562374321821008203738858840260172344494448286363650694220285844037869326779184652272084439836802969378214912196273486569275570418546864390575454490593243874466689122586882398785264497536469737974297245473733579400203704489342634048038166513759558702896952389823851928821905659001827610079817238336011738971965156741688826015084630087865483297406233451991798721123922199589035110754178615441762730638742734198689720709130277354214310405770157778578359421233841743081835307281083015691743698729770544222842243690241259006379081411921343506323468897899872416674865470793377320076455750663424745796896223853401823912802696141715401150494433864152153231767602401414399834312220160253064455668718440298110594867046626685598769666008500893728389673787436443339169008835256024394194892494157117457630264366343549413268615862179087207973276758850325413711691992942233874637052731696457367331353755972101522605187919754671550712647127209551234775542914533789725348907811859833976783678643176219310058886796882658032201666533311825052722045848563168511322155607991923359900590372396742509760981265589327697647449393023872231908221149606395788658084393972612325452540903755749789147610372808888089140728206224946959403103227191759812280252534421814749060967491765919424724951125923584040358250353576277901594887971369136182081970450972535993925052974208883542051226193352082017386647592283161176347461188530000847881185767784625504770266057889817940941220356176548233945885313592454518642781174041297247140880622832534109255138285753157065411069289594185682493316658568670780703179472616711609401616308536031465041820052711644861353348617219627543039803270299374654276083145856566431656951576095001372714561451963791720095693289549978417440748723042687713913417310070537996107547253642743712769824921046103743086968693414854921094977568645910183282684804123905698410210786296207111387836066011718512072544255047005607359397867453308371950343514881846041412571294389092677561233175625213716761780402502452674522992590231208618794690348256455461693382414202654038641924551407542367113243069306484890698544981170744575432212486854761015855140193004308493647654030362866974740231466021671062084588652876221084783580159840450426089601575264746156787329005239447797473441388291150271850570063572958721299162648896184803747584462466731484057178409141547148842719396746515002624792634435135402953628646924908987341551609786971575246475265186994761169013709336514357931829427969620586877313337669352945324156432665588741942001331009184886100115206999282848060076021558378688468843785898807934260368471687703000409466726856905162522797306009133384555191298997276089383237226573362665701460665589121550500217499140448621545480140125594043260198481447455268007749560069614226978534128444485689523797321130094300608817631640677557809084218407023919023244370076385281618615770164859825901677375841470039531272216610297397533173091061422312413938401315405178826690597203017383787521074544126936042488038448928177709467722084085221890404901895185870249360602964785622643918978596548472339127785966593736148787716489629868787097320611075342901068349270031403890794449507856798113886457556025877713533033081074793124965506118752982109786467496778418401951283979600133276899077191582663452318505544364603839925549150751784559830549435392177168656389171535471207953645274840750024178032840370447040500881376415265777567493857435015656889818316675824521017271173629401678349758762067979606511214842257654150008626186420005201110517432568288730193495734187075003912327792316748832678743375706443169756433376873197498879160514304884376124762030003876302089370166107796967595401329827629666983961142929194520447564574843868537465306353987598458561316476340840972933262154206732808339036054620652185253307754311948399650578494416521170306834158431705229870556856675209317789581751868182914813521584619646434668660832700217367791389541558804195365582035955488370770412181502048134528041842036701774297272546159119282109507168089013713978086248250102022979388115624028694663388911620352622810921790762295620190998556508237677223428242909061476552345154132188473540980621517174868781936203898614606147932627499565706452246189557011278918169372063693774159647479807165198437459553960198780174366259858695291605059088606097375837719052588612829327391750455836920162920616087276950147202437657290460054406928132842180938618109448208153926712856878704022942730934418785482157753708849506658626267934431731515040440543577325576568398982630509028826229705561703876246365059442605084791124816134125411057160561284620924706928153625675397900309391127850594955083126615243137335935669042364664807996073118161332321763492092788000792040700335854015515679549923290827574731343247928686443137519408850657991581804486035583150681852327954567645916059342873709393246877940258031732290321786469012303513463353699159441833888684990247695243884660814592547315051990249438617748317688178395550770786807062989747221677895615098590623677374707166992916317437311118377910222684914340169616887886949547497798679764796727064941808633742738399805250962201262317547541794454743502384870409685701725469206564012926184292894158051847420565878244712431763116841993190432055058167813166547797362035715655610362356082440334266811075364838154678554553690428359164835198527228862238512915769019351318160540687175450301193539732594600867058806005975335859620110409850122641818650968509580676596878102021035654819018365283950692967512771829886090248702344606458884190450952294980032497394472636709448156617363290790448274985067826569064975905419984895102245743260772753057776593028356825703536855830419787594586804341827099161439402951596728013652073582477743928524708044054853900455284408580428606269320984408597031713225138460182081672503995225589179547661495284571316918543459580070519035724356383211516061064001671644147603243004879810457882454413077632610131579200417882078238224486448271396649900894167440332647224824791301895936268878906175653502004536664350537393047845812691611199321683082347270685055474846848267806958659860017394377791814334378288007976606985542514257361733413481319993550993488927091054198883881001615132114537371726897032200736072278814423426721333908771959669748410975420405552070452332328806337987188997182248561967936881069574111330661548020843913616317858801732931987419037976847521216822239666456529628677550530704212319095005519746174123184650970819410284240725852063261120570986928114964538417511549562237637386437496420865017406734422432546144293373762052332690671929415252853072302169484714893363452368331768039831026439325180410518874646504994276665048492556964730932596082945747955954484201060999635731463624265529359726885717197815845445790048659990724934150477104153713179915666640451499904168419355169384051488057053966509425881790659634420921239516601223509465589538715047366223840955124438946362449568561023463942076721098795945026038931554392629904861156120855091575305262973656944088939641849463260788252461151157071065310602608901374823151744758660611399703275094814558666097381336328336598113087051406686004119962092993654439454025184701844566144433552671128647734227523911564364411484546644203098173604999145193164396397238107794360862459649839357638032496799200000360731610252188145199362930069551016215396486623722422175071611608651176275407610027471712233336408882069331895986098900173567671790285690572516728282098403434871025105789638714844704333613326554668200192613147179391942079333980490611789145518173058840825637403872440489454853357086233863029728966562150152005176580397703670051977104891864530363020545939062121807182486188491750374995451229902379858931107720192307637696242512903359664959766108668618161649113291457450157583618252529004124148037642702209746090953448636911723039894001298168922859811682371253737865416202864624685054122919220275130607141929019868780765109875806433852114405687978124885173403405604272215653924520183480512158616726421065224016614864479158447071860954315192187209294399645637266684353451724121484109157824491520194895458387872093012576122594040676485540327977986429747371909657001596093871333657399877026529152739622326051331653116140185310534381857314601280670086694404190788309579187768724850692471005095817234030473228453967146279328976211300665708925336319437537065745271265191507515702584431706685605533681259142597017735689156718168182844802586619643369978964647737060439577372597934177720486204119450070719352222348616721287861236091923333365073426448727905576974465052407050311467019812638820410430661748538582984425828066699603496370724576023465198928069702309322724471987084227643793569875542714232159883597437824026810562951268325255576307765691734808285791856603794059442521448174718740572335612974380921902918302964519782602851677914999446162964726744740535860742635228952190745917194733225307119059124761408454589264998207674444113724225294289550464475885546528376562195957841556497910547016337756758480994680863757519226899507699182122544392394525224552066360653069796922236555423594109979168491830411073134009380637784514912511191702229623527201775894340999691083887145960747708710023187944965561242668753685351278774357216751574756868133734113050464729164927489786560247552145055726402237138625574885294980896037429679661128606640142247656211276766081846894704422166384748561258657413481087242694370245549954776008824188348119378866829242358219613690352882755389035157514979292000458983753612790972363059736314019507397787280874710608027268665389337165801378834285605088287692451440290364179869220421813768035215335505239491546754233671371730468113021557448801808430495652693189314527039026758376213564337296601628646148290449424968799497409626276611904759906552063831524202121603865565089617623191622964985975366299639500087750782995172077039738284985114479997643668639100498734107851195251067401717590381930788592270949670553175614551357677227206522557930877864712252434078285805628231827515218733722548013485264323052572907080059868847753207398705008156713360390142926949673973748363799316268825974602458930301099243592934731044475729844537505435047526957687412579554057333873362668075149575990999653750878733447214466999551150855708631204053265187056758429713829265183578685813535342995699969230627093402826426481495762298022385047081592149809916657260119071700666147129330002910599014639448827313809089117742079357398780591283500688345305913179496172360658359873703984311952278764075246979003131158350837571362209333247441374145185797230445487987146323372276404349210211607759459978103204799364630396658043564168635870886512514711781709450719200947674667575689796008519148903523286221480159721525839628635966669351826222872942445387347815779492676076935672189459314913369566457513152149845401170148333626468944911508607477814994697339175513155305749664016722677103885676083836016640364450998321470497245895517745514512363126210361904370385600810733758277118227718471485845502073485961647592063500881636955623603315401525257790735901325324822976840252096228942200885998015646240701903690197510799950891831272116763059220637033994511709807187043462261652253418208798990094179306878521204244641111180638359238451802690987806594141624925195247816180610467501529285920291492368142739562248724977214065166700060266965837803512695461102861099412633161974108635315559618198143310290143289316488691972125630082123958472400883972117444733544669383753590185672423969903871956597090077866326250401994783382216901572532147733199604539070898816410733165613360320036794241631144348741899686152201753586192467639802487421303352588931083397197273901943108704760045300479206832216098105542593129115492369913482580579126362327836747126526233589466108695085484452691595688643273702062440206684293204181479232224349884868382253316523402046187564450242509364158296025419263358019880808306024490372159616536883388509395986955529022812171182123931623413021686319805193554381430105431491423214866421693870124082788379832887150197769684009684994518351938157601137096080316503038347874681173463918971184544540877387783145654813651942381164050988984062328323319662475162354007021352850541319986439759893461941178917348951333832610335532788780386672518779314611994928785600406471592631337963043527003526561748271070005087442359032603448858184194088750646741962180030425133998213402415155319818571594406485494612410002822325931616259573504899158912878913675689333359548981671194775244403991843650373749200163025890426589849025548221231284162727273717852682609596264650988748295100996272400109648020915126312739014586229296682500474598560935883403400707893420657850003069873474675691406062132831325839196264481753339184696116984286280136167070109373399704011827904525711682502177111817506775571963212220844181495711408000473782307364655010799191467351924228870547684599705497291564788699234691755178051830408201650991747123664938789997870801193670636195195538527004993030287529514810939771928332990738187274518373691577917148713732476232400509734795879086528512865998227191494806456201865543265596796579352639704129575415961062182422288920337878661646332897303023475836740944896339791935845937177110645367255361205266093589636526160280590008160825164370052907277908937093380586477080811888417558449963210565297137388345020336544156789937675987774242521162062636645735169108257731248688443576509167327560273827230044254358644324160563623834077906590348739953163883275383772198224632329143842346754349574042282562796096650684298718852190282604651880138159954011288385488087388574496716187179889857802893074343290508272619342772518723462471954927792408217275722853657557285799498020816378258211610678291917424995247176398008615210216089683007785997529548450487844865590540754174335552391649670691827732935369330796766031509087708998784073154592191072104219324210528006547088234453362903904447183261198182050185842112861556930971298266716618186033697498255225266350808468869562205814217783701879980697921485146669853908652648184291140660348446520241974759272777287372591494978036509841580998127173266345996812244443866288355946180899095900031214130348578793871911310050387447856076708894194496353616105694856031579021689004715097975965065780673943691763597719079565652791729013400125619982873447405533368893931232333480707922756217084307285859575292745850121217379580028380177925364545772623257229476648013654070162251779479201696904514353455585996394945606994391062150768666635080172966974727795935213825505095051734697307165410690025786973390931800392939053571082893951379397975229461650053375603500784911674040376014815739923949095434070233421123742775158458675373320692045102240751485808981705280892456566521145365072915278759159005707239357788486842838269376358465226950891756684408282404092227585817366182417611017505250072569670085859629362281011017109035555144489775672597483262306884541747766372622254282283151010993771187605921337615014710932891825875642382744185500314429807390713870734760749640098448655116325669301910819082650275509130158141709861711164600458778986317849169889789329799769437730194476084931061486016921856688756525036320762878967484067620454427538654432554805013065859744292799851903399292631234468151205785466553803004461354919070200886471596306283231479815342189193077902958952918567845169904584358893510714663624976390824951614139981325332961279436943353484941250253912229893774831533927192436960721520263096523705143129810171076128611816123948270320933607013724611889725754113891452094979829137095602180996420369245930822395024950286512145753767367772178999302566682655932757731211185380161491276349092974147652854632337835441529490747175772749195921368792721219445381395803185692826272320712992337205596716251247948811233393857577440570603397227139778782957870749471177158441522917451348520124406878606155922430707375359232761311404635169410237332857240629004868355249415039488876479682963000318231964114695161096745350134783332432280016654141777052299563470128536616353482041833758593086025706098167655422275618492144151970212569634348136338590386060553432217896606505546902779878831735728561497109523854733587245921660007968357117112719137831291047824544915674723145226179400925155381589835230192112808951728255468775429139181618284739262312978003331545942923759533282693885110381666415858767605610360938180529217151475189828931154616974650770003666950381272954143650361271873580311769233809521044707631175661264654112390899469158588522890511488615414464480051591729859569785993834396005672535042172725782993118408998881441262961401425300472405167945820175925198424140085829987004152970432705600903579177229365766282831973815562902965188550258467860616208394771750338022029264208711677028033682782858517645994628581245590988684756800339914347422480015293874444228989516135678745122271138925118186598257371942235178137896728128562507132337425351882380203151333056120994114727578488421069846202883216506639491961606964389531661560846005619405894215870288664959266622459498267520403823545897455814668215846700568364790375451767574008318236965876914423956158349680580528232303578595293174294877828214221490376992249661652657843931465088269632235430102984218080457734666482173383626507677030457160647686878554188518238353596139439267177271856958360840097859256590998986456302735080859221108386542960080397608020565705720879017230509632395862903844014032515114096763326812342212540905237028189437388131669096326110579111299140934076996163811242675408166004726081921119181185218055958288841010431443349061743897660047301654908370108761106277455851543880566719603090705081509423532934941374954664520719616500077601532335160017067150372847054903325572110305737325175914911295958161719246974057852054875187344549813079672429536836446528504444584737064290034202039259057481752065974220171750314282612134919281622786348691372642864009499257565326417811605100008499892746810223225529488177075322271685614715776328081668912227178491177025140281897983067001742765257067154479800118154350910804209398976992104354453634686583745259503803831436331384856304364245044929809286498221286180761353689300218410773998992790532120879512473574700981072293465914823273989480389179009598859127469551422365023663128579854415658917019484360780759943681227846130856947348074044717557318237721241159323704740197549564926455908639306976828487358971245412069149412989622535557683216272341842502509359359228839153124018465215521666735258988858087701048466374172471011223117934995601037129536093760927443806910046843710851922599114677537388422294292227289887160163638652196405914630411938154037677477436092961055838036476178744605345227497068838041054360481679445806893810423308580903463432294741997349576279389664462373421502670384965363994419677091671627028406577208562304047652644056621409018257712439563584710286615987941841892761939681612121071019956592061864102837619479342044603632868890522672225425621908532314312612233192228021665454872023649729592598324063176441965462522475070546392529910600197800070130998269315160459730577027926592665677130241144554606916294616399981409419243337432134819630666660025055223626588957212412075840545506662111126065512404961852350190378951217342701975172625956067956672674953374057917843513976803192720039831362483161993951572457468767346490085515162109776274723795170882469814966621242284131101404594666119008689972763755721491490390083425624490752104902656623932958151509816320502589639034692201636888004689472452802371304195280588750308978089193020063385639929826030045387983631447475571901268717592292637225541533152611924945615842452815912298568159278826728998845057791140322231280590097562321117774442241472414317214334125982978724246196025143464624066513572310867710464549414075872727598340419551326725962304107796222340939613173508267579329597664461189810657462338677525969600513906387676638444143365927457556407397211632357984884953483970705481371611443376894338504532660436977418585340120936352298493334733355589167340629625273155944372843900541782946004123051005068180051413773679611358129945114980448240018039374290140980470831527267582775067675062052445412820082768897528096903938306343274914893929801555623029476172072996549031728079985565198994511812931013497001058841513614542816687606846328594413985198827421597419411658336877662000757521603680525100892820389248913823021263797524078657646397200983683359345039764118809092054558318029410997565484277189855135376230117749363642382340573869789087521529075904950826208525772408964760243760034459932193871170168940943194553818716157959296347403602795371304908636522691951642094111963123382229312710767479647511532330615829236952469228122972185217534500770195823361417424134685388593002434991927463918564289050258121790629916613420058774204203205465079485060070787691559815261869786023693103539063683726407667466323491870059545386864905435726900526346014615389494610613473312833450059491972043072651482827446673142072390004681560613886924212949139209777484355168474032990144415291945659063351431921896570811397977692888523471267413308854820882147654406932629865307670424478444459881955999874180494364623925513014678769398296317687425927399100670180076086899364536578088830511456507875226841337495528521819101185653196474183471691405878137165255332017837804226089798607194719576549246644804023371715304439310243988295478606494869954739166382651891143790428861798558531109480334416017275635319852518950803112142146951717076761906530368341014012813276432680152956912156575109471076692268880220502160254542420424304723758584528425232283915907146127175738975708080090680026548005914185356344878300027566469453657458296750584279607140069447628006291767797607240472133239545170120591854206926644182226273097271793885734121613426717746262078421020549404341079018458627845376751510410865849658228390215545586617389814624322304504116598646073613740867247972740210739909682647202698141613698940133152713060173452768800208232516957737953809403357267585261429359970854047841740747783709207231678485451453958602997652658765701853966946234780630417090981771399396240518768761753314437281627983394999106317615585706627817168565675986007333455014318456163354191139979708579305733830957365189151096563257398457588177173491819425873280019450063859487639338874433445014328443526546155028994155049800569912919419627190425515493346815853847592251945842012708794968482318071589316517683048408135479643220989426887267218964256743018431251739799528354363482903835850589461132973157926498077202888033849793500640518681497825952779164990542460948823817892577350181453384110593050654339591797565963957961570344021617539715335058906826815207998625416443476825258193520191812148307093041499219597497031319030548319234578013364841021574680112549865440026518708421861028587079953753726825907226223840205583125330988858533004958060099510148578132166900461187997841257174117538452042636308809846830485376013606578894986435108553259235662523535947307773281277491273395066503318691118725420226350097897021498063283715741961638269699084951190596214031328505024931624592094950934661987168295552731387356185200361318027343729561314287867542276137648567963853109091415319358586890976220771240260234458658855032842163776101919958252317618731018139251987988493718460437229249272132967745021925140647769410979087944900831856387249890419540469684003748584301788002893063279393597187169486319991194450574935567152537124556992701607306684834897213339194237274804981673837398463128229023355818320743182070781310100712197762268658429991938604456399396361996242923088716084104424903494123050846252885453681757490124458730028862513745729744908526957312417683449179827305048050349624381311709645158864890521404568104898218508652287850278772947271647250097254490951008650259246005304184900507007791165012980031755909597834202325078050292453912536313461152699168538895035039849668584405826743837592265139128261277007961105180231397031486950716314246739580038599137930924734769588765014593091820442560678938124684424569700508712302448934521274430029368069173480836289536557176010086229799226294163865082759263945371340089967971085867178197870796071349278622420115337613442275966616516235609453658281428293927571834332013670031354427703529036844492358365254822089880320977164006957902489673414128473606791901031168916027787184251992736588371370936272273127643517706547098493131994417936301748672847342935368917081753265027624179145745734858397252459624109816271593585944363494330859874196942842318028794531266312532393376975496406036899083708482992313701694387476033003756186762406774291577175015337587501288150073930845651495379753599293511320699605497195065703591880706551227349889354836200844040448210479256159257652973779614679311819421455407589029172232484535937499068159349057648856297046764596412804098889560322134362492186883167589478661731729458346395535318895254998443301323166248424723110661762702496617309659910892459213674044774372441852877592873722946578351268425490391043502172815810680055162109858871716942182964697771457547151615159809740415789974973003397007253157474811839479474134779946286264546163358269010458084378982877077613287303087606444331830765438866825781627909721479875417086160390978306959794923751848798430979764486815162589222675703230444522006050728489172078355813861972009308908726764793566084986413023956629762324919527847143642051256542995081217102336301767073358522584044125643531483186081231293531298836654629108266216716650493407860776120541834232576217910819540317497219742379471535946799931285317097895744716460360509950511815690704746859116769834169103270987236868338086108279632065609876492437725434284261853830939311257052573339883432015930378103313817025383501097655890782978673143936414196357198056099114054583220350296108204714859804598917542334514780822440896118278681048888887927945797453662026817539713093828778749989141635851105726999156334733794282327651680873367256058685598928972342816490904938398008342543941640436089231504671716456588786654906340785284589068550575384929141393113315219745691001845830019400453483641625326277557350219513875969184673118989660138287962268120075490617084066343791504336488663584366722815000007632240089282612608161440012334676529839244845984956089931844696703568769788915319542097409267798476154925222083837816552395930005633976264581071178213063702195903621520110931322049484596908504599664241638165339430393861798257256811563075398437364444903198923927095691489382586840896415222201489184609875578505553427857134983786748338085694653252711604910805201911413482295150264371923533414133515418767280450162291988100834789812805458979162700411564831358152561043532991545874025032356934892832312630030570013745830047576261053172374235729424671236727191109972515260444278036883741463664844273404193136309400789390502818831272014667441202076476948910663330924835578693722244840774414749085239303537062058336965484588128530737435278358573169658688316461748403761997133649953503038347410998461328375559500451861034819877864011412805396613790275567596383221670393094691430392693231664276068643136127528043889547501950629918022856843368448649285748053196075006592252243495584581172098939494705566286910322940126886436177384141251969501482123370851921890267973439331937664728780972497677989149259344363476114186121040126540209394476427766316658253031464638811636341504165383217263181677861322308100468696609906290965608459135533364442820406574025278163896593453100380545004797892094020657293228760536999361599848251014687500447485598537838815043828313608365021045637903502647778673076761079133312366832826126845778630797358777180039020086051650970120792010774305595059179239117082150131272778816618405550617051123095675648498966359534671624660712027363467886298949174109873982755530135345742098218633985133785982692479680545356951552313397809169589492516525968079342082306508913617158328205589749694672815935734957776983302253632507279558732630275993942283915826264084179799465642420194639465225054543686755653001319300827793755313558464639316229177701912095101980848210620089639773020109772086721690975743751473069353309702088997575432480411194837125444839461077596215332884278374710663236541874629485016057006143489593990577331492375585063215806216234620387570946936375416470316061700466399329190768365468212626160613919909600673664180393278504166049420097838349903114827799853292079658921210606802597861618977075269828646724017569250007932510124495363891142304314447228347692513103734743388646915879655036381242048828141618115849178227955503589030277480550488691989481871778737062674868764806898561468557706571439734036353554470882635911306856260054656437070971154752428438560380884007384122072611994672416857946235867403584946898396102220418942458785935046237131537779422520513951300174740602050261506138185771533070239229601719756605872377747724932788463727698514537906498419219891142441699133871517872991826063481893887485412979068020275577156411953030869830147777527408560165290707156743687185992098406845750110751954312596806390500297754906041122775386087463422160183749656910944400968397384475504935006400697791329116720707902666027295970682640584137108799917162611626925615365135602893474716761573119031947860074001128882430699331296125495389260956675707407206276808340760025183992594614165647139314732794053950347000605926826378404801839983930777312782364667021570020684487266804534774604372943992351133889032614528951829845697325146026425539226431563794372372681122363612897672412376025036966963261023214037120125325788597104759095466466190213402742358962320952530472027681289537165560447936755975746121580467983260526065075020329208259103481378930382449332632471339485929298118380796750014460099476067434867118443344266400076026217817375619681659911765245747986556872270749842794643184132736207839785335455295427920747356604586583682076420865806501785923279354434426249497304422621968785870521499566599622799455742560915203644902878065931786922716894638037526483434428927514936173654065540007643532210542073770831925603682994650828652430100009862347297823852268287466520317779336616452310173465075179616961980268058668521955897531615316901851795332940748932119482519783096611720874775364888719637338436006753745422467906371556076537909945363540286482372856403237012954568065715831005935431645226819471820882198112118013470532031143628495894143613601243262629012331545615241229910792926625131463219324797516258730527964174037681696418902524823613872482422358899803333265534058051815764845774068250301730336107933061007237157050407072121501902899799839828182068567032191026389247874081314452934484764852367871752373217185864664753799885191308461698206178886904361706656828795200040286587690357329586713606403112217085338908346551550816811229492081521967894425003564676228549760003133128531188642229379785027787182078014994759125917321862110343220026048351693690538391130331526198723307671248799930527970865648782935582889214367281885365557831063958593554883615347033269440206410444934481887909713119483740043506428073407383258704818092238704531581004585558382928774846214260182331956042298517014682346586459050637400528130843068328670547201076662809962192090538090602996074422733456345096347404162046848915644634741721469148177077662296466793380633567163725717743330966059014437503615024419296551566891431871330856721620891949429698724536525698015091468226542021297468561699287398699815211385083417353247845420222911347124154331657488248636646769001041766799494795266395821707144699668672607348663440404039699920845051084558718079239272049794351310009127074105353468274684129720823159109986258468282271200119798041002061659724181349022782953923062778471136028374939290815395697333779468397836223887791313190849699292073118082681227129021532688596975424009659191183528413218085648861761108825623807446654703249556889533598782242340550703928490660559746987856330700839422651940966567019737562952464281941718137429842195830430637641210639949164733650395649482382526026466292140660777323571670948962640428666859551631789913568498601384164756884847251836923863766428898312489857780174790637355268541158204925532668962424137890019113022154801065831356114209412820335747795732207412025945244547042480085412325460182155591165821783396157034266826333422298856974663259834568150109043883523966109207078142018723941490865566916477125387121986107091153170009107194915179180182398530726443681348986722435172485951317427658084979565008690300312993657167045405545716909323201140762914417267915171893241511741270123460475206332441170352293331226464328837094532219186327498355106046126342141074796871527470083968733130613160858473334146161676733749799893149025105951930372953760596450670229331463396984429055954530851100546011652639791930431372708907524390067906971506045406417855545146412762058261544177863779634745572677749625932678874884700303156871309433931018053256977900460675988735538044163047747822884091980951109981351023304975362105838889106673560197878854277629749158708704938057545702329598669708434587995277484973837871821016167942524280867129556103250455667830856889051963314054773903785504904906035804268354482086775254236015763792965043309266974515984681006724477764304290498951143253506264483877425536713350795795258336924011467448766095492186958944589402953018633038851044968901376845387940542548769341244535290592524215609955113896889243895339517110678493395001286133039323966864250073087418626819434431321691669455259921941750148198108987473255147057039581579933901736867325776731724707784966548528364052841897869888393725637831842925795767330428811393123117612257337933078841551690234281129494579667914788409875086944935089668030330237791941356559703210650115216696111814172901967523136451736409819171397785459306922538117227017053695590701213035165095950384323267363723053835610417818130146860283464682070935770227980517366659565209973273738619799176153561496542342444347927442827043142284919615663990255914889016714389135532661013636597416326595277381310022647167548602824074096143671509364173283244765814642458449045300580932530637371074697325169061800265822076826263980840983034589006867561350628230626531711559098067275244360616197364211686545699797853933547127811832640105727521999422284092360759034907627780984409880623820755394064598773059426478301960423778297064130104008465580459962818427957770706138021903697065982517440630440522793253272138783092939611537348586207583179869800945135113880663602298104973869220441893187553970407173439233621987501891684668145696757973386006787372864978313698769755673510072798087639963543311857883659737241021382776532655522629153905850526628146476163748855110189048298875136305872732393246505239351424364726093959656388038582222895564593812276823698823151825612716307977002305036381752817646933167860281428829063359373884481494056141013730777986581653811406966401951888888969502577276875746952575885762114254643057442232587212266844235125452906178323008028975833620643789358338182610813983051047051382187381358249454744909071888650401679078034624168284897822481813184457536808609866567348706048201125173975878099118193676805135219877416939013316916348252138722048043654605458324170525833597429445989833965988000790309237991950802723232649078078811206866223560599684359511176168307743424075438500509137565363907455178240246309501980466757057837303008943130267502179029712177185266267568796043812925689843685149343868706909391940473650342261670276791105827991363357425055806263370924161058492008805838159319578814843423921683254608631334528179042543300085560979017883505482482272733731796144011849953100022383818151003373800370286625678187708278033588527764232768304951943622998336107325294493066610949942369302366900654566430168281214299004510630431371546571522593407792921690745224324696905147113991604045785653304469549824076733349386839008094568712763422522057231722431716500150653790918391644081283105716595058294749535936967744698991522904093783849707994248790637070248686609640720393791881258604494329348837149745548455694786399671431732540158764776680024148389918104701008386688108335112489722110113897291571680354926176936432967749839676903167691092406114825979600735836261521940466458026188620863058705219619006428012755944656955900904242368606146840135932895232250471503345032116124198759048180247364741694308211910411390569227493553047527527863790305810294033298058655449541156401846171399104994757593622662640383569278704882059477602542765844590611250497435360325300091225237797647129833055735222290143783552652806290878745692668816523696475780661595427070151713522778572473288114940994163597661254370757189836906978844740782102785016952200658486068040424861987894378974987786304323849011276288132497032541917405663070658513990214108831790817979787901259137990300712267445227716801617767684205280595349885052968783184547301346444306447101486284370192713223955521896274985358958296796861782264716620606315335979017399983463202754458558036891306719199349869074113628129042846965452655360404422711191211890388029391272086739540721012883656769205164223739505018108443578873508906985142572341868680968850393561104503254770291805129619312025748045089392396835193837818845087188023164428530026493343821978568706234826504776238987438525699407094525654617369261718615064186130350706830563519852042720132912381138463650008358830560071121481838002967466768270905136525921499168836173029560720445642899176842046533505554584643608901913982426573831371600122546300709595257473924812009477194256889493749192707795935645345149684550294335799692636834285084127165931436077144424272323917741706783613732784023405115764392031293214436896674060279752097575073176798983757627931318694630712267491760095564715948471195488033041622568914921466676182804524831414762651371172434977758200990147539757988407090512846465976858285468669656619606071169100942635498826196450719962828116136942056256269222562250674159649504473084087694943355234992687636815035102670457619783866412244740451869640764818911584089343059461799849354891792002285756930486504591721646216370802336618922055393896605371237696547452384754426269088933197779344153018415618421253684646392157811355922978302967101093114334458198342924991067939253444008019222505052041989374085098945264880420829166409696288705802696206056444876065770815491061752857095729195014766209669944043858221480520448508305107992631092210543551640686665293539453146639324687887214905521049597633297093112370340719142340785214348990889241282411640584504914206265150818251480864758111082854252154378617507633386038701512050082495217481726344938827088077960666676212525064587124946679872791594904677487605268937290798178550674149932566537376003699849139943365892483710387756456733571494736314137307044775749864104994912633002876172656179519960892753406627314798849580393025274331028045541331630198498304917325815826220955580620903833370414675480741020863166585911321685615172348166308981628913171180492803240803172915670187580193114194392673945809982773650118907937300350828489399365108116528515598651972497293382781593374829263988260321402049147775638460542808361791772480067265864558316474256854090384441539497994310571474390242688014563378122075496422439972506987507230725279275374430994868442120078642585562471192083470203777423792361489463202451699393346231819864334576877023919022261140855612599798489034532071602215067654358302883087243371872691922723039555322057704124622229781181992053722527202420855103130822049954892784008712125348574031582500034470029672743109846205028511903125280693393916841222199977363252832757332654664336949430403108553847876837076000811257629859812612019689082394815290417981379420095504710630381907860088478109543250722517895804656379363747998816384698412172755171892726068414214402762422210497201371204459951368678501766186469578523542954909631173048967583349877211425053151800218716351673232012968953257978451269894608320337023331929226076817169824290745169840304822738540478364173328846054581358287106969375075439523805080670830189603519687919808438615880481060249934798313959301270989429862155239600818400970093674671836852133403204531603259658198686528825476241917841763497912156617596437881931900694786052215805331736331391135658116308594444448427408369683868172305094198802305384040968009271097706950737941730640800344966013302577930283472772678359683946004121908375098764160871942910072148947380340267570135613006231293147814825555484559860702126067772831789140458992398630216625824544908389811466983769384911090724016555212674736269336024639971652893979071065645591879930796545944728058860703140931873716289329170493644328675529325812066582516994895972643258964720055252053272192555829526627641099908750371751562919886925099221632581697051818697095540143879908635617731760689619782901428929840957596688291001041624170421592604246579634868737792869052250794001331513637395513071689215811713148655185665915337176968073981500421224067743066717721719945720882063157644132796898631815405718508769446886116625529129690523703143648109665968627817953167484003437289156040969639116823083214231110376990462667048619255348305186797119785236442465478612276206704650840754693971710811920103273104296978010703461582505746203767639991505767598836047356756835534333818781051015828908236626528549038140141763634186727782586816940041027132647545904265019003165577703871412847872283896980811151204070464020092271226040032378303093168401313567278686050703859685260218418858830118970917052914768684119913752895776954435309844909228379226246602010495959315482369536465786190795171417832472018090649460037621683257650880795664755469772353519232859025100972998317027900436600103848087455170705605981659282902427161094315596851571543456919268589374554812557025657987947970083891791860558785055079692389782753136076817474973780567224246952367343851297966960854888232288506512333644633653901798268364387668945098432612919408809031729665575494268229705088404310428533669481943918558095949619479734107777646316340982214157468396946504794613076333713646903565754728895098876062913768591466692000723637588992492354125394367206991359589791769777964292272019130038255482580773424587956305314293178413365449349139375543349922167688697067386531550336685153237897410835278671756343165226265602915189174146542473156712090249869159045709239606773097142868376048451218865152948593886419562852625740193793844921378262095418960471659709010012806163402184197563584665032729484719590998614238238924308578874139146256769715647337390949695557903778004252117388166672033844707826555649724217739316632708094388712243815867057848707580372724232781994918699501474024213298260924314871458045604790427285199937302910567635069016807858386297785294430458962268309082980559033226671984718716139986459974770668391704978379954243154115211118803234275177800517365976734899027634457718512134734403526670260995391069201943922674304575015605103676050287944867043755242295198664962121093920879382730607960510357597656114811298887081156038258785585004003083804270086670535941612045070722482137768240345648135924742952356435586618188275158593259698746276310412201358831743106323666824333863267151304957238448342364008188224657354291488921748475152170585033087236179015819015724467360168583264753482729478637374371786065116848714665127933035320691259058795232503569304443196137148181936345256148174497368417383560833058307922249197668462879586258740921796222085262339411392334501438110545941149845117565235437691903818279922059274444145534937663120727183288496245513742688458968152490692824645472704800687628658972744009632031494645236927181512662040259738056960183126535141437462935463507181219296171513118555687094975051990817526841649327767551991728966390941830481165344660270829594130233477158136502517453601974888761285277288927873538590826152908479079197906018755106225256238652456538815828426181648164383126094111657024062763311074659818710803423506756262788301485291545115877306700751737644556811845688469910655611427468890084513345830983973802394168527320111568015651201726344360369806685338986451399604351310479841294325454286626522185008264325763850577501617873378523398582517534488192043857807636196676559065225659149011399121319549525988815892101254981997871242659188218438617025703749376084909835417956393076689353096424571270460181192898500668518803766146010038923242135557942230846409183505822851768401552136298612455678716449152177487624557869677534106904760843969689082132786673237229714094008837213304661409585321740668688366186395493609953469967501360503384592402226586868845852250257912541174477013311383400276274154520728018963571434011053942750481782195400463488451529650050521906389069004153416484455992043638802100850292914208946115572177545137346743950967766779583959416997988158042221608915141012036157077640324672104231056122042429342625326612013362525827119693275821096254508798296373783586932013506578535769650994316180814100413543398930838172770997212679247863919502137795315778342972162008342023693205342896167190082123116629445102612696252525920948661303329662720896954325872821626959632095865326887420362338507445136382932487601729295659388118525758860492273111126345375221814913792868812645440559358843034789003534829116251430036129611860877463989473365563268065821434173978923909869399542288023250026773199769413900695214065890379809308013842605906877258895856651220476204378752932674203838900028636442297134835088568457888612336662652449859475436350872229032515362661800580311351665940873487509383115877098286286166715519199501707757819292487109023283322839808913120082867849937763551321729660750937099396112429279511407933687978301548083645351181415385085013119024338760001117292101836510472415054939168805430045358072206116182710272939450390493864980446813485581188742170180023074658031350054738746721571826238567800310031757115161553067975096037618192490883262041692276962275763504143632450919147106221673753257458067251241712215023040406527582412145081242544344081601975351595884465527417576365114778883054762344844843897170758694501333410830986553769078218563507181632480033925233713016252967166250184861885066781733479246846809174671056548598031931378209103114082075081841383280912304412791340451593520539713238307577506250419724208824346820207551544110583064595302575357901107472393738796956737800158801470297462865533222453977967561043682600221653447301211145256118816950445724937901725368085011143127189698414061503296930870589509364115016610611845284321954596099414607541862395031148600617603829176820615134656557126156027597449162681167015318705314697769669500230329483662869405924501226233206302050215369880922682762062693118417502758695588954029604880892754914694913904158482935215668581193368005381831379133309378363047831684844074834369824500654080266030292054920948070229400243981868425354467271361692090539848334518379639355852056511886843791900726299282317559497292856022205358615598908484217877655293436009624835167516748203635206704125519128791874099851895678859467517862815173977312460362111494497435462925341695512419742489185927679274468256113902685129490132820072298176500836402626256427119119947505556736631233750927961943716795595401322136007461930781055642918341776281011140458256632688812481529834761064142000065580574547333601921901914352604677510422096189424757357069548397624731863854293062831147261767224896029975365932741284293924611018181365538119057325062150226420320015314228606483695705333511138812362119736034439231053699373575057795422492770538846066680009680223122453571913363101356987367118893755798386646182025659483024503881878533151997685722600008301535367241537748242726208414066717866513983262549053672521140046570360440090798398643277870834863951784935990940433415949032755459061114603990687405894074753307541329703157000891464073774504525903466630362555967455913789910124938795202497963100088529974957054449836856210958764977115458072218575038642077127392934267441508541105123868087711615862032510231236561980578163208475708809214581767236217788961470649193444950319463688686532346581072571709347613856159318843936677891231662966650782801073269660635674226179953770876284810710347638521454910742505581727324588589379937733085484686916393926088056320223122830611480332826226355729243710711799211816721725805929450576797851341251712911734191233866209814019438445126714095298488897132242748074051474688922899591499565911837531649425984317615111448269373428223087792595093939081632512730488531766796233870827380584058580109198469657403782750688510237037164249394054251265351103961020945686189324882191084778672859152002372365196370785981618976868308724385492588245910069029942496557609530693724461728465740185772174762405816297909351468632160570363456218581726781540203469474282900827659038642449141420052672757298402564954430378649006012139832877323430554852142993254940941773648318882345929060629390172282286676784184264668971862841211998829556684229920558116030910700523624961806846774250117504540585934355036915633903200227581659747513247561525121665129904688528446090150224749766979174775585093536584664950247712869061524447258939182587049335165856081124763335327634337916596947011526784124690729307139959711811092268888191496046914994998720826572164878432333953498976976373223036289378333802145704961901687068532737651766462884379388095573844700123452557872121087742712666051553592484416373798318421863777497685192333159155970551776382583963560549192100171946422451293259396797168058397321376706632978789445483833213569966940118122068307209786220576199920555336195549405444031026211748781792713398441623826512449965995524070620766897344000712561002361169618905664029895723024916110092625433819817384030086367832288343659991228966732937873826876013101515413008619770287386899950927373445610959854014934742759985387056787808216943860927999211823387737725363688346825439247676531674591493076413397799560414010000069152685534952475904584668639406266195757855194676443951412405089834980785018430691291321615304117990063401631795699179249632362274836109848714131641526788341201277559879867489657349813328425079896710480351446974580374806341107109492646377719297116678987166318902433310440074501134899995432837780526201627778163375401866991391450966228535618558403748760678085484539246581860908217440691534954717622937296517533105825469966295284469041367917271249039955750365863794199515878116695506881380815367742939523812238657412131445298775615408436501555941200292031704768192611102873522395284152700350824650174190631729163161670552941494134642464608294529418234940623904396836683508599965765081824786583648512822024114685617207752316431716269331004229465601737655436684345972539752377582437345866976551135493205250553115889942452568560927136048736406057775805815646164393921516214242547242362982199690910233559074121728351104239542289889426478841630993323387211293815535639136822172972108656166366499619748023903247651319147049370753250769610200440830053778313642512913999462197565960607704058699793020309045831646037249187894319690500904037710431072781402366285837964622905898882158879656995053039187473869838653869180680010012705210216222354875329997977103269203556592834847870564705975017820487475031760285188493356084513111021201780027729815368871265319327312018423138295089331012753203591691344364808540336408348149960885569479325873806538018899260610868163609408826444284827413545119753741995854780776005092340733825187584615694013333801543163382914945645085566749802405876002171813751747146675211352491606534873502918913950713832238052629375933514150801026775130155614996315775943248406473878801129557650427786149253531539103799130255014414115500252114864078019009240587675747429466387788081616851926838613362762167182713092991068326736148499103891392109930606017842698212955946020977024177933691236594628118205943995616728208504186631564249114575637835773727031068606258978919077764802530024533360804657229744771533675116200092859993567657831799243901893161568974215350911111144651494248942409813471855079150038470257621459374323088140143049324067781581642815571469028972164336408502315114720957006562538558721854917044810592703495211044468838199679471673826481509013238006065985357317602907722510822029774303057724456406791517373214220665257787318558584977567796626504109780247008475496632057988487010534218458108523925497766799276201710774517185617745007815536082713375974329298558490654258187456554055014571371984336854732153504064913219925894969840095703004998556166280188528729899838244843321599165569915334150811166213630496211375834183786737148309777134075727186368709718346861413792525727616605639404117990041513446848981563166820786812615978876161313776318533951968501959749454667058053586651911456461619486341533693558709620630051024692508539188735907291356629916983864164281431320752625644145633533589419359162291941126912659754870760020741496500373951803569779029270935779717557911143600296932660894755656348351885988838660119394481108405351360264670891859424181856507583405172246043177771827653421441081872335352695243162930394491242297614157458268761094036963757050742725605524241655301985200198676370119985341690503782073222547286488674671390961458077228238341347228999230970013914755130886416737989027957753784735492182644450849353575782408589798979994028185054100873697712031963721424945249177764395235125729546394124025272906744642053778246654397618736837239290898642936556292733949930322273745421444054271204353506103029448254931281029191274422760478548690045421015461596929816008849341212333460967703395940595672717940884608502234836868238614703885604712828633165315470080216150690640505980139901447318761774110336503790837862937379192113144883068851262404920253788453131385270092295608382945641001695874292501133554177024345863842006367276166861682529687315443171984816255199583702617342967677341033289230863522808797884381323229901971450057757161711308776625239416947040557788977937677215409486731599031720339926325458950259205258008989089850112798987869969074679012892036399199709436390137176989366771501034419286067650206966851201842038316697714481343729011182231755731368862427333186874920078113328889655113244874361306367481952913332524467191267973441108949981200730518946192545996169750290802282704904747985524326726901253112437454020725945568067716893086313906501452149949427863836067082388068526792131064670002769514158866724666215213949847343816375205877745293218518059658344416404669333791484069992131523484904146675067380133886721122313481591939966803800408127650630929521186582466614548217161902309179787498482129569013585127240855286980935547544520968552846476316889935085891104790458416236624891692162042842421892931418838689738175127969017103395749169514929833739801352139413260440083354980750013066995333255877722999925111807008716348088413232726633519874765561769032180623174416430917559284799665689032536092327586678154097312254402205664597630269486120708080910214984526482211197049763005261757337688574678916872647599039326527939936843909378743512954340264296750522721430282880585376295845993537664457337988541676842553759904315941452970058898867911285277180677268728304105780846905490466324536023923087256107016630622139568088231539457009933000643440069077697582404703034968121304260581290832011365193309287680664762415128735355262608102297433717060199939845559930890628851147517497009037741393823195576353706769347240606343586860828850121235258842512327262616802671610967796225939556262804409282316360338816579341268856809572245402444451173192026291332200823039759778702162239207045681703281578556797237368279612369825290317571467279928458016867622084905884985734366481306383385453863325006321632787290243506879277997600429971825879994463696500584954662932063533449942710477828608793067405569426281473167022409933677333520008275113779456165180142073592574006773407330492910893179459562094938931356928856876967448079466646874449516356263683870619476542819709895308701110404307621532955621976650899877892651341687131220709160188604152582289320853976006827806520379543997449803160028256931605769585991891776096187420765908301479775875936713301224652164363902530301297178026839605419205420978822256265903497248074503601681150906571875533908789661059445102386431415390975596428342846304898828861978583757280114517207876184741976364138110711152240386391039549676124736243305528504145890457151308429053615206944516979947494926791952955316260162547827626704773772188430983338742725370377154713240740237160069050879646097741119245333808781514438852395589761401402634049952448055693533232512821116087844861903044521715401879307613179044318991454038355742555368348266784299539742742114379736924092476286731372421856208205812545182246017006337687590535871670056534261875779499259329844011864105663912523571021516237817863983502644738799755797540619585214282890597912119567056151688366977943705214504403280153225494603395786469984798656349327579889484009911330188439328595498118181942133274640801580024267665345982711355703930079173062659530972566604382862060290874574966034776569987026601309674977714679790112744328582552521696919263054460072858993126042052206112871462493413013180699022175466382272830035605589725595106103433203231687728636971959116791370006420308467058915742371064788837711785667394567133977462282573830055488695861027766437788562513142255223746637201832493690894088596196318497086915696499592494360615652294996898158529350353384342290293008771870493790427514486333745997953973854504384634864657449173083653774092751984236887898751517158773028088707705139923805658997425167746125809144158702479431645309861220422583630733367471432379065715462299758218576225797138634681630172887731881609634008960361927251142722587291329572005477034345915309785156586491916407339122298087248797159705865436052475361626877386942816201680968029299932344898930792602902614236796133559116388083034855632571822044995576336183899902745714145913469474616717976905733511593263161702331253441498421831879830955724735764078204470141709486893830068815215518788939088918119949237286980633488793937349607240138658498140300358527544551052306685760152042628151951786168110625879017869259848277415249636779004671639943814394902769145001919723853877070313465043945818751363144102746545482110618411931262041287134770200971505708769258786666791379947012451837470228071665040826281823763797337458513990723746119044830678118459883034764131147098038249128459837334667438126709167634819908307203999345619157832667487792346849852085668113525625628460794791439890145262177618837029764546983764816954677589598629897245058731700223899386643048133680839608455924471086798770894633099181941397824502142998713455574016416813216157469367957828416458052970979904971577075230593384193223757699145757514995873258063838934370561819152462736189932651613263682890767512544311466991015391003782667853993347841640234732518216244965260576995596761870332853969929229943842378784583033099948162904474502747758860893551743992889587005257819013318356544955980254736449753829648478370776043041622599766013720668839344537047913497475619848259455273550525581196612749362417626222871523067689447309797095002285728663862061546685804593119666181568301650467164468876287472353239411828787821086798017862635700404756166936095937190274284337818375112343985988630516741101060022946349762707084474545044434067485439330136334304830093931157197222431280832932865712569084569927161160367943180355241049701317991782214091619528529350722312378857893133124563843972261911865338188376652457460639373652269912666972610706924803045218036113987817027105409740925123331738543411115992311885094542548502126787148674565461506216568843543998142754371703108891406973708245346032519815970112126468329886012789480004519533495330276804456034021577214411796706128848165104033889439415181303626136269734858093094819713633516565650368706124304389110551586271644830672447849958862457555307332672736103928482186780936612191858760656455506403636578157048376531724075269536088745923973786703559554837652321013198256465020902341311377285057324238150562163275810965912298056463609165987010105865280564147377626186822567638543807537045548477747637422181746501527544043826798507177554089272116194903017346316507639970598501732218043388538719824699524792928210712879941055391074258708761643000355959345755034849496352123207698879199927611884858231877625086926353225698038031434007454103545403226872017577572855572170553541847110048952574752808948475777403639965772986581895450772485203144003197365699558887223577777826016903107962965745835516886681890497904128888906185265559824132218731174496147822851252002097336463552209375610408811411477285883568525952067273337892805071288572966866608774740108710608276727633061463057926861398147743551729008370154980030671523629071822411499210520391021714836700919084979896587238516836914027053209511192806764712411983274701321624484424335614891375310324163882576210989011758540512870735540330655291152229115674290473394755341010345654380939722036946862447126507652542434086314896435768262687065523278809797706392433791545155605400363186721650903515905885469752572860197181901570490430509928370707773703604665208045929161920888787485185775432535095419904121827331781329621549926159580443092100519268098034162735243456085852743257809350786470435189398548264732044197170487868471214709569631474209498236572032882876072653799797142385217083810593539309438606865385827334138634344011348613454314570914719567296950510729005621337882403372727160439346810970642786249728925268897118170698655516684638647264289569313604859564444007268419831790093388529167677271945102799225113395820860542094079695773663097594683861484069925249273944981433303604938192182702359023673962485175344313232320320927261832320054454670609996008158470391595034251946821167143026307230075406942442604106490666655782914209379167695062376697418405909760999331016050073887587271034107531172267791176207679786091660198466139038359943075592303404988236350232585942450777555164767288113258948654271070714131979176632740505100797489437320177130948439871019027905316003288677297569385660809004846401818769396798694620859795979095295746927319998870181636429326133543008442690575269842868432534177782129946620999134172895445752528711980640014101870075390860830697010212358381646357611899340808642713856701310613380307593828161044518482228418350180088594911678087855179213119497957286290428029706537169846611761487103834331349702877133944081508010370963214969606417414887100676442443454899021114229665527121120082607223814247812823670448286702405118357289724306798548485938803579800619288154954724474174326182867999946940653952041116965939686365569875335436910822662835545106849982716366509738772850592184867179245321756875888992210246030110013921304928110165831227924894648843500297105655535330868221475346045821460791638435720492673726850188932264228111900088369814879124516112406652399510151272954892789280040271423015925984948889403357603598095396230415512842102866816077692472350046727472324456649323005795787123110392569250574320780361590810732788771264720010530315587136596159522293906362319547144528825322076928539428976651484486112140381752858197309544283763669078537907767718609520346083695582790673638384791396173372177479157672462134215259497148488718026895118741106787081053783506224301056206522617512900058419751271635559783488188814561927457603486540845613037516531633966354681725547494007648118851799559510655166163470611140071647640029020130558668366712055191952984077160178358350244810112635225079660019438917755913263614871015115519583240366535752171484622330458888679395629404048602777431614506448076767333565840664826038497434677183518695512585511450818420956950873525862301443835586883222728363324754131285303460485456593947060671399876856754226581806190775698728218642549684475181646948985208417305204336830391120164896074839604390068348543288174431188265413726258380229298435677429300124523199615148632424318524088507985835702628742204266737204043310037112848194929095325109631709373630033986323437627850288004291325338327397513977032563387135756683189559606309174277771675275019675292298826783802783447949745698822652660721247660116072487224729469312119772316168761577301322538507885148778347223677494670676256933043180325894909665724211707746052492262565121351156361546734327514337695241920653021355036056887529669970504871353410333221784828840561554324381343834167906190874618336214637566957648181693414434261998128513535496547353441229308556006477447060478968680112651794555724102779754456098650319219425644229881683434176382507889632289272846661859856853055382132800095536083840298498358258607592367774688076812649209761904915174120354614863209551065891074331045732904042718235281267133777966771209729409839509962940840873440327105791293715899294491808860675458237180320623780958504632631114976044525150619050874470105054692521968098645754988089984581264664784101287465731040784002021192070607643724961863768635845384587652319120580779053361134119654790621002565983597141535436062045660203372718056013018839546242483921833275029637066333305005666587096190518338826752098354068111880119440840791337662315266118294068816906482847433087206587229823782153133448384492800454908873036591154199214086846370935769455644484289607322484557168524241121137505214198985820642747722989814073628611688266639271126808756520239412244902543397618605096608608354592959528347922489834962834034238428658423717395310068257883223651994125143987912512696083107480802613497942125753245321293107686811097576217243674702896036080243477080168093822206448484800334693159646028848464595476685514407286796660714352648398540003988121049475902553657781408120180337414961728332975473335565086373032505105457481824456830042974866368734658968052014905426045797719966870743656265433030141178786415235779980381533096010701049752570484803740565547428927731088419259078150305756407578057996026184743966627027505502052970537670586180555058925933601997659180598215675939786156719902700519357087656086089280104905159253727956341097215829423145549148721350751247785711229404824486863278740192839675586450898312495675656100020756722135921810802043050786889107220450262470053267116877583439367624859822841190179697081821554681236468215012620479569868918087896036668484019686216380414310961499552917890719278410725976282300460561238251906317013988011755460191429488065129849624153829395228105414069236699501662677980914730443268488083731568798859327489423494775824544610159292610239416869618556316436040729153845292555061259306143801529917988876347298729074456625546746742438636326931491262530720807059520764933845894898331124283080735696188859524599060191840058150456393772280853387374776125258338891127617640703284712949633519204687271724746125180779736307174836839112084276064959381897920735393857029790786249542374551294681175451468976149445684093655648697419131075461194057910989565827881381828586508628016718012603832348151214284288104797784288504949832046031038710624459306589815195095772936541110621692924939087993779333996066369373262058998668824220071041219139187031915067555199392987934703219160111377357035840346535706160349028644979599055152266696548910078615253390756376450878562206402515536559194021166810856014266046600642743195257746576248119294757098463531830324074197561886914682529559329261176775001058403824669951334483492241910275636647102292027491188768898097735480436919762718051604995980981286940730209393817114039837139327356647956465383954384781793807583707679837025140411779675800948284380244866069789860192718781305491655563178771325895001235860732648532633812085956555544686956004362804748580313290062208927628132234788471636698888649673127338928696586265949272566101831486004572379287640436838872002376591554940527211134734672327217041973965833613997425335751787234962259245536404592715270120684803282543890701225490476881206449795183313537192533524613454997212513617259900068968633249210021602108069364601044673258189557287626221050061622693167732524380155851211070751321891143608839114417885991052981866857297576025367224002020852468481938492346143847781448406700125614294124678059141837810301926255331324624203444077743604250763958790952343072375891178598265492690541762643594291003261285446425296223826310737708779601807297071520703665402256630578287683082753426745506852374315759354854691924042040803997638708989919996875991467498850899907583410653845933335642183494452456311303439754788911523765673092854766692778770997191239127567948644440519171616997640705591422121873611421267869645198229873980471664039226734348702467964448200184607988774677842581736731329900760807991565553623233324548269196580599108892603007479107231261946778961842371638822254137666287716056516422184651612897881958359850206066849861355022986789062475241633432896119686018935220098647230681138694388122178048205012509537949983576281086624023865860738598814832017852097783689484659456184517778520855105737426998233498977233816807182667839344898631070584545446739084415793918890418866917751658119097760843414056460149301713757036893740978268498669547723252010051120571057797127929164276725028439137854521786073035275697608253194102944106319676878096156797130857095379077589346644472310520386109775774562577407379628191188475071720550780657906919365918782095501700483677180103099094064100635679675423556346496760089825742694432887876529812425849713992146533822504416201859082382128615868520551470028766427069042917008219315827512656944896189673999843486379416154802241926957484324904358877146974833197990529252252547212979181786098978645055048535685224933369107557579280825892861944479659850127668183805954114108543075374457095729639447173504590347226465794340605212126981953073910950124121823918691766702988333350115241962664821145686144538405702502758607511798148934812717056265164326575132232965993840084579425947163525605496986334919072649161213054381312256586646338153958844035532954845508971704745259043145704734653572951645504958925137990450334616491943228653735285694107180915153459807722078914442523453689648856033586123674754076692677176227515846652401120887327210045068673022958780405037044107323938335238201129115493798517595455857863008272463159410661277856053927421417223353624838901614984566633801675635002152578340025863974424807489513306460313092712528840608032618142093778467676610841889330247666024300700897907149600510956827265398129399084887054333525601460040749662766484601582906218217285181938294950556240130918702163663141656715180981242363260817417693609665315773253810714048898258205630583088311471769795695769658659092297387932744191106895041523655697685204352416057708885962853444425457735623558502626431394930434283125104624668844338629209757628943833820628972746954163699181560693568696180617797096968959669433226607573260442277631042939622461119496657515876109679599787736962051222562324939819314842040621936124568937852890663909921302576019285256360022310331077734292382427430452013488427923892756229949376324749352056578387256393776128280262688054158954759097590332284143447395754643184759473322782180086436886210132435664581235377731305434578205038016822327052952630140299350705357732284706640521186633602745388327725925269664503338371730576266928385150313372873482652971989936890487313295228727481205409741129722931095595524309348539731283737105044581708620632405050790174466824124651001433225530355297491032477993131484993044180826978832359731825001341681121083794429738216642971355584701456294507740527788996101708270710446556475466541823658001961630700522428031391573789972072599402434964104091608384281709346957775793093666741271555359225512996682225209350569630824605380431538472809440907809730657980548273915024815947226241781543230064316839979242509149173557944742775301153066805971930503876249808135357420847334445469232160483108447763872069781824805888947841388088659850884937420932292987463159666753461424276651716561554746748731900937535570824593115869135996078518358025884660990053543588230667074406333807815265720370988857184209923303805223913491327666285473925990577110246053513174018795053859172853841491173153124710552112078525010514096448613604698576100754778935459692084879106220137999715721669069297238759129677923884811134533733725851345078027274124569647182059233018922714296872743891254731276348940768031666323018922933488513929870217986187951394723030268549547730375258138390764302267641193768458112449906134222928508714620614051419941958222281168019786211384896991547719576631893021168729478404603521637529014109451746059332867554714382666162319704467678320713482290810924451456744479289853573020291368815425270913287583729052631040790067158496546494751882426883400418547793674594497256820099858984492932250875996721471001597317518963188959943188778077473853101805704444824259727185474353164238092866333707202714592271335317405986342703935676278946572055426603156246694050588285627653112913684745899137791723317119100545880227624378639459380271295132275622057860210944047544867260405720741508949847016214984149661897471095527376019712628153993022838402971691911449911659633270037222634730920757841774326853100356056558095684912943303822401622096906254411506559324988704866727346500706468728526897810816191688576146703176014661236150644901171738257775020906152271208635845803757343255062387322560248496766034670468673833333803174909292908563961072540601384467994499681406080227584338990564128073141423932997633307209891239493260633091342555835637536212964147058646377794969827797018247462172734018255972896937276746667933404679523533176156950570219726753777111658138307725060717234796389293270341670146521972177430067343614780548612450510308899057443930661852007319165124395110833349542820206603525508874417780092197561860491273149844555679517512742276021163707957949469599738997023213363950930982567436627921580203347935519758462025066670304750695251188356690841317198595166759420974351286334727244495575415672691026268402148023909163834378598140986043441439351702232451791789874491455278810445131279929278204240707679969302543230591108009934500797643266015768647535224208316037174502852265534712308320145363463712372516873461384332448337515184477676181091874273594458328915841893493467852939803720417801318663584320065455721286598765982709953458974406806194885605673737399564059233130837307742144882063922862280619462180808406876853799950140109787899242623905786543822437913513818545315825273576564322695307144511038009862014616615037461256505787648217542055069717138764342143993733802625411252809120296899070750253057610017852354807302096723797082178100450117281903652254180577777125109035548884057844954522632239489980654669831478328101582713397743439159245541732498156874535212111917028148105142111772693107125906544300913081170017896505140509952123498513296627418491900512102530858612865033625340767685932255437691045657485363887225737272552359963533800298747614374757224676883095918900709547586017738653548185889897310174064672532624067793458304650957173453800611590073022115837613706640958639377377996355531492929716805670046599896214988305490569424083090037528523261615109382854959814473943639080307047336569409451541144259131843699483895571463273944729377050132766153667789304192563718927944085112862156942855239714329493988536455174360534174198898544786681141058571950321938991350811462011402844552237592617478896861915787366178270709248590982513508594332278558260553187896221214648379471303739862212402980008298931369425406987360656402064429815520201089473544742145852542135544147525058996848801106349334812130442308819217507092552065527796426017065510336840261379259612584616917036249475347328561930095922492269233481224734074573440680596866408239882427954221442239818010319160729581440882352406491840070125536097227871484135551895225284754229721196100214659413952852666848506692073263046760981203817603838237949168208212856530185807979501755023566946156034785303443315748937336535821343545542112397370706079463648596059440406274104410140261177411061185822095010132346384124757435836265813609229855065873948973255529767129492215002820486678610298702853139497582581989494311059388492237712657448686342639438394812013208829454771299511829316006355029262313064107584904707641534124578858998124026616221820805657591494474998053528197842943028389082458965755826629451577468785217082812186441519498686866135928773890978857631605018623323835460303492340664314619260661459961219152510428079873997170116044214945200870658225851873592866851897266303352423177366158315904976822067256337586429264665144833477364232226283882523981539435403181146545621770741133366984600298826920809902988626490005878187182324115684998608055818676189904775748926189956865800139125816200252360056806836268504549005921982952139156660720965650183380448763038693600678536449190636145368180636526848561002513302168454777290774308820383538379203148151735834860504521605760275896005995066821737649203673034375729809872593559367723177378086959553077288899569362268186693270043555628923727759871635392876909436906993994064190250214540609721401022807019624529590774948569913969735467142166333949548531592442271887013602165954106411297698746888460392516409865434563982646706048522117614562785453988637023023543124014824916914015115912115297268326974967731145778514577384412665020501479001977337009982015438401466374556436647077532690303836111213770817017885948204636651725832679666848579919800358611523075515843522141303288836610713486315932484813139847422025050504265903110628497109318665725872046475649236758933923461360088755121500728419568705159027712330778623502257140991802789656263374549613963723940268033433911101254178113016672911162689462048028171299658471845951095586709711115576507202087432649542830837657690865130023653354718275074279234592630082921457133440942647724855697343988349457494887913782273501761194938167055547149209806602360942901877723160640275951668728103474151449933343679098316081647405521361727818018772841673596206878558496716182342442138836197873642431092486131861126925040908014116842947297394214308524644566499219679669346720480436650677601758438815245766019563253282274167045225507737602850250678337337267980606230132159381803867350988665518151065027053508943696749676086077684466346533177151680725191990464793811622198603407882857112030163673330189467730435475608338066425932458619299438307125686224544588836104099623560569281135591656138871900566023910573289793813884995847654457343709706610725507239772261467222996836650862414285113356517128205208799691505638994971253333795234682291636610076775118116807752659116582845805569591080716745220415128228460999395845535445249855901339783958778301028655710294896321941103976452497499720210290929321616427785782732146114519995216911219895045798127507183936461541018336922356650636612516430310094915720080416413160768855242132757215525415332771753115034367580929271781556075581550894680980717418802296790103380601829854349703652738460256008977640865993382993141542777873705345929208027869449340748977570319888454910503634428385138091294825475880788984261465945343108209127978274612980608459693526967707243920564894129546731715132419404449870451682076303240672770021984846168791936899743745233393361170148102300336488111881811876444190896460644345050825978224635998235208008881685030729239512249696792400802748566219772306050240577569512019037515163008574603813976870095842086926770774068285394440788401829632182994371936439781608519311859258546960607717046652633100287172155258095899045171734483755481796233283208303051365173843356122107735385440120899101101791667187084642594185338381271681544710124536689360390717191185374347074632796258175139442327203555691365734876281272387159300668657914549039927703906164620687368414703528444025369470004897449578039366907399988726268145231097114171188679515079195332225161613258600595282322199437311454964559561468838291125018662240167852940722527538193496188751174533023951336152523344151655614383693193678951795120378466758830125660298556806408524027458246396183172062465096150155939674711838807251637215337932906073134156959912146263086654098215273982509487187045863670250872872819844305927249913000555850446488108054603272714376084907368867745159870840939100767475508838623493525044406886908287943773431956721576037288915861294689436885527271757325784739830664858323780220607934067784787049624661112652431329080264292914803937528356690795810268871298222760439360564811036173788793554218055033894449049021174099877424043259313966863043149120928243300339601401893912790942653010054654783049491673944802430100505352246626206047774288673850896454261830390690658776790902640195135079902720143524515505633379665247472601468700810959927007002146682873538499628037798376149120119120020182346206436422460930191277210369349493752696795627124626588099882253997491186623367169168537580545871502381046230917874552180426688045337717341547134056769276572067961681777639985621718190241256040480350087858029811400359235449008209006283507564674401208038630708301503189018469381189894728353641191363571281727017405989607905673750532819919569988263086867911328075015470551385941494738826877988408086673650823333433152810673062995434533188017729540074646225171568333808004182729227947454624213861354808491202716017136472935198956895581219244662247049563079316407585267328732696970952698289581761686225361774470309984199707212446583876461615922557229784713787993438855982651129223762615401151384459509716123096891483573551830363423852153477025646322337942846941829780397024866826744941689241780900351400294916933267964543578866679374440893570062111994991276258507710576021432497850832573466509145709855062647692411914549768729808562088409635598872920878090931534638664484141374512145438617322718533132699162643640154024302144218495795466110292616195211797382155778797296920688836865831519564834819327157846205235476329814055314572042655137729574984484176400286280557895918306061412663792003015750636457596992327872680617613014967568758274020511961457342073043597776654206790872858119736632653906038004774655797144900170014147833293581287545222437921921461588391252032448121683921254543362323611946633237699081336083499527047854900835657940514670195803724502938964893150761167187716737414635027001370993723252143089312787781762075142019694273994156079401236176266499508231390472103696993511161153441045005477116000302478082742187346518496501089065761999834329606014795198414257200138106976158587964008623233771784912870575745495694157455750627882222199776685993905107590034706342234509380115101839365447518456835816290888718912636692750506770266961679430534753057302349274479038716071047509061405783053466117097906692163697620980561090558655602633209751324025778187928072638982618152461989674466877135380663450138952247918456286338466742436228429999783072630305363947456928433230705344972513286060172124176777966896370814573859216547768178236652996280342866326868457188251640574897141114762454860289676152638319849618993862247100963362350954481748430298162252919175334102441000961680963072747932417819464391102483963621467810427113440150863122552572836486790157496254956931284980111293137065520170501889383241464576245320307008990509053230871327290376234316037762627536783858155640995710384511429830553167031780716590427945725213242077750367547276384116351795209708095555710939878240292606428679981102000783772904054059953548144514872809430388268632668297219791549708352090235230559958268689031385163175583670192174811932245696073872005513481463029234043252926841767286645408641458515631167787582291292435618064029313069001836223630021045156730560488556650343181665687430438574687237910511224821322785931294880651085710278911355946838068967606733278860151424266647829596512146127127483735272844052940836203838354471372657499125710637850636281597840658758395620079792164395466315170242903645826504292635510251644388850907966586033575122362246082554998921185461311843192132052781612739666263624909954441354865383622348188497558758391598820575492080017274829459784182368733798799381319118971038429844341894724310411505058124826576615346503942742212855165259586857153021931173504270624181197629407240118485453628383712033377875994436787836598056322882128735126674186656847668691914905994375162255604876811134682477347656947990816158506161036516089116304979997069057840493845968377233891956236925303435525801907688293128948318199715609743792316251938612544557378456401084498540549994303832235361471189480064645802538345240803978795683597416205193521354272339900098793765625423260184988500440696861544057941660066782513154737552909920268099792065922447188805789863616314688099206022614563877079456596438465381733758752722347409131318651411021736641165781203446035561973906813166058348866529731247979501886271199399402268649562485290547240131830577803081865428367192849462312294501089912773451435899303785779918466148118656241263829736255769563755595741677250387610777140698995943975422156118284431301946071723097089928210915339799384448412984706898813916355851797063147081253938852644341196533319353387876353575242846958042977264086901462606041178502906783909277551843401083575809704450509231022365664032569784058085151870411606526830258091741568265696984284921422872246181584662567628826547789925104761294160470904639248390081798759301008559934264851110722754724171914135785611412704030493371567565607092327121359653978581379392932584638588694125471301310655547350475728934081128330457515115474269779424179226039037477355299444910190575107609749303945795939787441097450146188066182316254844492996078381700238768424244887681873195872036321315444925955234764260141610703238121188549291273629143541180113299241420857412964227961113574432568658326211772154208995829008473939974781535807676836177867911905258728101723154212241933591638892331046033620207779231545695514824879091171484947834907800390880740285742765954913668883869052299159417252796135350302055759410071060651648984863760696018027727663793557005726927918541023222273646177581048338748928610835144751603314886476224237114324184532464708540993221029475337715592553598366666708855802283937658623334281148464973956740065553258181857979487432741270333203033378594513793801994611264576424947436028428293519833013384598081269089297933374147371288336461696561088493942723918987157417313719221154006402817745104894661802060665104163003655115165345867178048751638080222097788084712686224745709900951385238484750219325071586396811484844288496130221157616837202902289244213030879946910452878541916017385714286361882181116974813886234546262092776257933060423285088031509830658856276718107123103500983955144552967511033190001294738622891786895099039375281499615681969502426791481112313722301329887102891391444957788047318802641605014334764665190807004041247796549354875994015868662711305899473043781262921022796853079535539557324967564395085118762561827825695154408746809410537244668244189473450997999569863810427884677616634569657056087766095310796887673221750792604259367639006046943906879278534610409794733721616892864866399255867958291034898817865490278691968315504006631136619915192450847562419090611076951510855187374152386126607445738400085577838006704552376038927575836206634434178243243015535829102868798093013342590396955195026195547826510038042760963203659122955177653089028507447414714729852223067762106736257788136324296567026351691025098340774427417144269780457385554281180378083156728261942639830589979369921055477334758918327384129245897097503036657314198642157829842290833023849847296340985650692813322767542744135347405145654692560746932263194599154101104322918956089309724073756104661667468498713981853904706740056199913279599487730287218685096785172785306078128234685378989534625144238793995508089788075971049127592534522552164494930909140824353309867589418025160495762973930016879615462594440656845943499151090552623538396441417067418953832734997972444270481188260951233553256902251410735199269507452401896350025083371461313215304262787799008968950348980939911050737352078001543902524001022556990370917241458340943024785258212381067631921082685762530763633988929644098888470124046761832712784949106786880196839904883010201292306329792677020107922562393229781430399269847983408164747007315698525211072089311882610551860575451585635041857497045276589661016921039827339458710280157030249833362595046168128441708422914089124777163031211972537449173091280940114225498861250415973735280708383632570618935788586642033596716297833193943090397825986624179365269781584936807008147870835921209291772925743407169810977599967374344277845970298558197649022375096947930912984817789193518997571427700285492247653319760351071786255122617800495442788851992636918026466576862880228689336924022678970380351386020413585514458948947140363903639907402235790981788738179458348765027926714307849039363685178523697118538646643607537825769452155507796018643752226463346887243822322359861654516617771461187354510824079348748801060745961623723176367331763851047725959464374698579345828414755531741770038828556913173783717340679594820231839235845247049042319678433784838173277792607810534453597777246690598350566644334127801721970464401298197662355890245107140473546939385797353122219131351593887228899841088392776317824593774922294969781968490176123579918933185422365002292559674444822140419479208761272926389340378920041900563104666753433515179835105816127394384428016829178257672154880680364863667443466657943327641304056809440115962936485633580896193904431905939098642880594419051927220729007451366684528989530837456905851815176196840986244947677992504125748777775302825968227428470452002864877025613701495835872833730936503241154303409744219592959957903998164212452129263415386368823916017285284689119274032157969709965356480507679988852362990337184420119993910477975379138006512140196388046119395270935733562743178637520069842076913333476862157179385902274594458125343945650271388856577214507523015015179828872391832745260170044571565835492856058535047987981431916977037066629287594015121691756581526088008013967622257492856552111852006663780480612676782401125177874439901253022129169857677768101656235932136533560358030556955946662316742177284216861282943077420870298646177979364016009186368693827590725578617740120709113624334286887369593759885608997034532342450021255297171683543066946699516464661636135677197669998527191607683685637873705210885400644789904730370656523993378167587763284767406845376844055378256033611512833962162241749831096283019092586256385841759201840938799966304283933936370107545277994460934625510422377444289276128507119934577177183989936298500093431802709110964833415578176435044183732433212322788815551892174715145836528436814528323517472528232992764627248095677249221121950040518700504234845155623083793865976996355308367714454919992022265195224180567812970185088830675841735753759235130260547601570726806679320660279005609198574786473927934137148991406763325244793906276920769549700399246241459911138990587969668181584389888256563092065184514112469280299963514786055745136052746617512042031061219033006738341053964568172031829258217469116967500120912710930626741081262027069928782294734888762750053763854894621248980441076865792303479476507562850796518262371143802129922151929875775394068912949980459859003002256275901089000520058454034646481598630105705162712247517580283780428739300878455855432823615129821459064095976282983475504331494908042271797652202203229960432196376938140467215277399132269476341153469493595079618704890767596635452031715750679618842331905201266537970126102674573366705971917346075006054465528911642238127984099034881201057157046834696045078537078482636318087352521651020032506399960489125913382614270919762131913920797566183749661735348139510226820917188638261830549287275448376816968598108622531493760397211191171150242875508043674905201131205256169016423345020254606485859066763474302845293209808054415566134314368173631267220325059641099393625706468375538664424681370608316705733622739206448603891066255065143046682031218639067808677742989105030943201995450195267501187100147945892487995107980063286393548430946090737902167381662314509425068934652689660760654564355233960361400368536825633549702753373081984490420432356444911532025003833426199431476431666581735476137593794784849255851753934092639427436326247769362646469250398134738122917967114703533685555392432016341856061099050567667188657958627922105315113681686964781124742544114420471265055367061015296501598988681363281695561403576329775092398977058206851521875937117442916979979842043343485805481957302989138156503524307758577010298491501892923291557452304087997713312760664335623729623579237287298744572355327506318389444360183107558887375197240546171485495175505569723308483355254682244069515454156498768391722346218913910428331032155210500974627567427518875642411120820016412200889976941494256766058836996584616537095220170497686884001089814957592964184666684970951940067093852266469564791622655941823144407845495663015571341565098747101644543408735809030432148379944358001898069514200954481728533966573440708181587020987132660821281407584372782985275379431043590438395780660920931240947619617109184919066347730036059505589687297443612312570971412295313460389081687737306428360542569122889999400277096383980376426580409025823239356724139123721950243263733463952630431558001047255184980027315641338012955305028916234240779275687070662857738110967907982245489132527688646942589195976098257595995509363615048827818444264294853110285927488572055813198541409817309569748948677673518400240432431793257577670571278081915467711992840278679151765772569894182914611742011064584130859481885906930540084213076923668073939680526787551551824803822961805496148191280631925085118735465555839611388875462698772856194912817060925981746740913450413501547554067946401771354828658187290686184890330577325162461540669219771929038947040090266581037379458237825048164983015771214824416214008568918205400231281104233264648579812227230222019165002432474874262151968767969863291249837039068877381999823602779185528149545441904200867984013379606511033699283588663208295024660223863285573374882936303518784355671841164668449557022024590295562174576216330260872288319982969541281533277380292424417944697505248258996803998563913061940263591853017693019455173629255878036335663159074824578374551188860017989021269695617827369040978420856197260911520915020584678264139425485478845876617277926117214744009377168898008891896397853688866413375028149382708341951063725844523668279737498373682657311085330682732930722121839771938684487613679332711132629402967155956095866356156630426858027998313043043750334435629390463905228868081888424204898830102701455728063092767040280393299521322794571187482305625426298826649176556426787378249135041465266524941835477539260910364345648100389177820622463474088546301882170977427409128379019202248467572677495726954777976880508968649390117844302113946312301023076506103803545726058706649814152745677131523938521233276530784068035546398364933674285309110086353003650714993093091717729465842782570402062901813489314878715138751827748311716749755762290231460942632990422502875091561414364481076505324559518392151271561958325981228602515361955310968326587780014089679956835044357062076081177671462924382569990149518981987300572135611380281044763652399048167824349244736817622912216777134263729367777825013133718511288242644137824192491790926289972861249763855803907129400561037417440158571915349938450014864810127420873216437859373017743548835749382032098647165282041547864663083518226845308989979545263425077061214963116876920984015460529237590627192144342456319273342097853765397675749490693442157154172836831679524617364800598286480023678440088378742393059191479775577157653778707431221419915165006379184385541481494310175695845667042211992540924894722972844768487898679335518614447734165817244150569399545961421198329669278364818111869380644867530485991790647398818681234454624205447050539405729149363323412480312557088250661353867468530085503097012668104034327778251826868951212308706009972410628617365921160466922809754080479246083309128063942968731202530756897804669793463387970363991420409166334190985446793782262860786748767836738603875756813578706448099588158228879928047093430074361197377596809746627035825845605702822731292399104188953842154437397289020892088574443662013280066354822902166010136882440059940776331100434019031240800885187311631315986190120247488634585986888234275257373386653523650817968201983479733545976823920166245416094611282179915769287066064033904733976675966068107268924550402356048784563347565644148782151916563380597075935844387828439250114122801461844917559728463785239843786242061829570464018264615129207933936812174844121436371241596904718564981181596271102823769292231868798991133514870818214442220428343507793165278941003762438531605149365213721264903446651732196170138721149646252764694533869497139116285105765959544169912919191874506217394986832372518478040916274980828063244280098785010995686019446634009781374752240011675671278058379989064109099404168472043820426978289695557580029306974952733973123002205420049748950799561051075518366455429348243994389813044810682454835025028667381617673708288782178599670089753639138414309411498906785896738870258079332876552976004544571541624540342012406045530262880956972764783152129009591094452645827286663008225112885114992817273996678582487531087914095456702971195833548933379676562572994782479727178974952233693394983094455957287179256929683640307733260673654561571660518845484291048556724485516049056733912046787598501075975055557625164204027536384048293113991702404329640375036473582462929075213237942660991760515450034041276099033698018723080009001340022971751038644638527436856615617578929376251977865614485736927945215914724147021499967590058025265486619708189327660304169107324270650165149738655619952963664477500680836245923555443429667666915017173626042661210983547916657272784465760271670502806758604825231860964410701461020448216088279260104063511586427789777029019751188211774592649785201508447644820146132647640295979111628328205592249745547169713631128391705887962638294876882489938081695628026902861605256685461499924542073804153476960629747958324016225066711267216644191777227472899971356070633734969883427248595427399460356718131662593054505464482262765755576092651346274200622845097973785964985373298092800872341060017085997414195220305031948686436550638598730312735581419240971752262136247248944184112469326736523088763655674816988841653208400141935842875219062776625339446977530919755052974501074562768298470858760890370603801610434813504534918219818967406070964584061949803274920452604707303327793024032528517381555927211651504693862820466823252290209687849069896256366080078141673771885654009759612488654940243016808134641166446986881449534816451163540446573093409663957826931601396256282174007253423094374020344630389631354145515112334120660876292559029192153294063321799733396142558871028369363326557637265210244798450456225299032076131466712966068779660015066115277283454988646977928271227519587772927689177544890003032865854584893839210542780140039598144610269040817965143167492188594264136453929822772139730805360269507585915766589058096242607285326557950070794774833825372748572826549645917786336029859764324290567959007377257750158862472914843661055830674915187592636691950322874902975562961828000321371949320065865763930117010094023801693468478263875035562721124660526572610664214995893534302814742052454166970874488699546298979704504590930949754924835710018249275965978306733177571409722973683850714304978724048046221261303492905468613275955309302558354910685434578623259869077347244633270714061184507980590002223043826251234733039251121084103549013621576460439073510439063993884738755737127013688072716164828194228036802051840422321402034935192146966548727361276447026491889899711443842114074379583867231690956036863618893754480874918652621542305577442100800093042240592051223544113687432901187145740303506980033437859610067035396434157642233702105939050356440547638192153564826706263256229491884635572580054308467629470143399009099379285187312759909323467538841366252796798082272757074096204101907635192025752088518970939796019635704889763755802807756352008585985846595025550319670637517216307749655359981318008880446465744040338183731262170449614932764132986934665281797358104615347382664037753827238528424317077068266848670643568741673084706071299134560975627762178141932698747779217699647246989194724551836216930619571284643871979411103875929523088667129194812581918674199942772789631486450138744900722689930036262612444798501842525213770211921972919356757399018981234216236079630685424352945172065078883206262024661477512808117226717839598448953621635086853371930860528675753389891001353340486354160031078036368093390567390624663528341329870060500789407002879082467100526739642620401925586022737082352181491470723913430846424349420256112299681893156857386071130482842958354405747682167823525483333477082501845980790229440416319121213725175825641667301961345013223619732112053514643685161923723816063785934507231506726083170224127444233156974155356597073655208053033949261420636622427476892065833613596394920680391683217909309185297567981765041389342763874529257880911150381848703124380921875244968099454943243714931046429441776164535936965246137106204691334285903129620346303306791650321773685298015422983536503063148264902646385479953102326439240593207745655960409823240336407058206986411951895475266309158137135081513400737937520417840635083286748599907596509971739718091091803890225308837874009615972436537436398764185918996161992488327922016030185745357459657358313636583544537090527871082964981785678900534904443152218844611825609191735021590483504388048836030255122736442159831856977766449931437563212020576699952034019825274314785011362426226010998861478775014908816414491441844889889496869772989301345570421876572995329640362623606099390248900171882671195205881749564560335586084978988271429621889854941369635554757650101410732025415780036166191851811094336470526563254676168850990642080736751846960171726736818184181136323831728540636739436020209818233999633938144518331057895668654728903678041061489674180134441704389924202589544918623504953984953935741366512031826867303898919756060074236890541925215410687440107834981352273579608698640002149728057278220710643757842799966224602220722850959481568246314696536747439954697908593605904690464526092909437330442083563766344892050990950981966969031060261959824454537823107469541143584487721565868296620764755256151865648511302547225613227940501721528844590737326554010082651146977539901584174823402135251183757356313259617039720574894200703669989892663193738660897921345697361941006263559302275579108648253878270760553124402309659357675039927920881668116000220055011155582119518486031487479254733219369751168133533258123541484499412668913627005379225437251945680651938925081049799378732941077749977845128093401369942724562988480787246004987423188598268906694154714173989629131324545520969571893119804656699443466801748955683762447192488754081020026786689391620212225219113597205326817478659616961645415682588312070357072743091956310136365255596650360574538952975989228345459124977736403396489718604508929763931962381458228562729179383191941267105160531421575644538259472538770774004847558994621008498842031652270769016209994723637720506842574186422141754013861255317667056475215245857841150614250059489097732145097103442217794815061766005616221787581515482309253819367707569486982221207347054887966142639664191589532065658480111018699086127052258460635345864537828039272213966052771278447905797720193647571377877078339612525205907742697901589076130315170239408450677709490860831036154412230092499306354397490140406463821520664867909898340075124064315902807390826620571597285861562176751311067004736765453238954339524794015153747883753166174730295864841687241589027781317073753203862992911506762688248059860726384553696464148686729104032157115099953488591060321322499535535557365867503993147694391819315147021590125176325227210199318147136439679553035430902199365191894440389969889834047277957023004318663970959878161839412213362595814485559405116472075474045225516325063728429380291602609386265013202490171843714417021468053287563486288852236820457126984473065309367849285645967323931115254760639646520330064216443214708776899816412006433078342958187954194976086299759882932867818501690526525627034858934488717323611067560715234568410421058468892970205517463546689517160992628756367093563277319075619498982401222190267623474802368565030143226268490077430558507207253527453614132271303741856805272775216547956713406957618631739532005537932108808891933499187274956833079299800756144406132928206381131922525386676110819550464992900801618573470699221637647159016813649611151235207020149120576007691734018702571144736933264254304054331835259028633898856558005721613206163627797052005943480369384364668290387508053335914212504428063327880829600025402715236427204695115969869126549514501736409042269373556260016160786341984153118613271833456733715362033179300864475893759779267703959707929251558213405026058340886886777112090639542091493930553834249187651847109117945551403488943595137273680700344913071412219228041582970227345557805315043227248651755795186869662734415802862205693383504269077894874375472524532038250145304263737883819388708894212839805204847787481809372884814867707326084235110434783795455171746195391099821907693417805654665579728240111320994460479487451285689291443291204259621537611473391164946721432374455998097853820511563910694405195139951390968613584377550911890118189833007468267845161155131737601570900385677562794648123743903436196151779803098083327627923489739571778276106563819230966895823704055876665587578053452454910407827893538020178246469892621441850927665261275770839726652662887016045999523174325853230105358910663467757689161791178442245359601639797163813843391496559986723199614714380303190944957731282579429324311285163594969088053023285862105724923745288074465669282818640965965018000276733171977780124565419893645978469834227324018571347268443834846225383749071785844002823311100583156217635934954624222648430649083309428292123692448805338990517250603350290687444396747307312006134640198667631498244474678589105040539595188081461900133600774784435899250516966886191368076062403206952274519402003091230078487319351833574873774740835743113356909832106047249768912825698483271243692369003232619119788319334740338706053715143386767241017820584688332361964705877066512791891808827727042064807020153171815313203802870965159852009051622759038649689835656158775870622243906144675454120493578259473847793313128863761478830298635827262741972057947505370651516151341355204624070417159588060357723645994975122528728872616070899224706861988304952206944034967479053504300759767946318475856824701885856243139855919778690655626846510076733812296967567141566318295667075253152572115494696225050362688829307538050188878724020358429287458532198207280362960556351489452750450332096192166386240377627050730178964727974101155958624352391213582337603240090581559494388875319421789366518593860785846124602696578006660412414565934060941356354037052959762123538590377159113659486656019394500051217455049146356975744476318562809027688108836452253900355653561895106638556765523282821635521487602401610190807150044478011202946287719031345013766480343569301604908299513064856827505072745596994115600017430719629300122417382693060117187540303354582502435429669673661140423516703030368093554851891298179250079354524451494869329806366740270464661618044780361072451016687948547136094663228493964817372851736553536226335580572272797376035631610686976847693029633846414486923031147082529488294126433751598849000650371216152118330101910460469474496859116308436029182205578650732240582646183654535629050303449902528284275458404163883737859362594377477438428723476182754998210338396588955241083209362789223022927198582980526194019610751507697464297116167253335707809065679186804634888535656708829576442911151323795225929329417837774932321850489516464205270909383792498388238685196172988738409929939612035973179544565773675000478555652289089732208871366396039280243739977634661361759873451689178026315199602444961489111943221472898850061810775944920618059254920695532305505636846764522921289781373653526963024729607504291766657765266956105553935437690511253381399985345089196622558474320010490076531970943550835895102712616390795267153492130494044817642632156132175044202135495608373643638513753392575152273930475800254459521368617016163382725831840521721338630570022519473532545017958538415753479596757050340409651610171346836265269123055660103173674558724659389896129873556611192937240119450068376939461647480437399822312120886581497430024424149164649604376269711958861601061765248836376458595118278516374808261462192312545944297354207965080577582592667393138276595365708933179246911169125715434325052006730261891933225925098104009577338961529655613481150807090286971195489131264000059610573407875471058312582805364935353249077180597291175640886776808635917759627964981309732063342802218186167293720417315262115018603311004421325180088683307136033211872589973151201057848888068292400634686544930711792504622363994526052528471465079916713784426993745248100696364047045157774514732156222974407237755569153948383974859952583044269110881541917222062957206495681567837327528103244961447381116027934448573547736790734493115051899261266946509200505482394278005617946158940463759691741273775172166766412865947445226084190846795054198623036064509322353076703212572402747554380419167017523247152139555134397707762193424380751051803972087205623168666690050566006415557291710205946522760879090776485166019298589885631837830452119026847262339535177639057183703215410085089844425844372084257460839332690368025856397392347387899828154001150649453057769467054906472523351988184558050983367069107802801339379917482563891519852810648127669468288057244127383232735451146614152569979183860218077912830743459390739015670946612138453189611633859333828741483243177623740241327951999071812030660146059680339221848816827873994002917389151036436205403580542850728863914653134183282818029065506730343965571684180833650131360449196974557294020001046805126738141564026123894821151943919199073290676420168884426288859094408680043679147065182100403452764295028010826619771268012532439496366907125685141684178897444076268623185018858641917573210320895986098490000340817980880962781862850081615813533034953409907777108091177673995260798891304373551081361834051294078448653026663693484288565399849078956925229091150375288525128640178010419811161534209301129304853803936396941905446746128901220355344614722690989202405207032699971100269713059572115235754849522501902877654431799411940244227791254747835834698797318711618582830057292280839748686500251529334735027231228309549162448326034837461162606018016733045125411676524849539937740716239257557814681184535343555035368727714276324829790423265895414273998332347705703562296650950810006453339317619260402441073192694596676572910678886106897115465551638543784614489456236780239236618901806351647223803663364209831572253736687033081604679226169825277386236141786267994157496203882226490640372346137927812747208361921394523403094817137173604546310912549927802022916167094866191862118344875948257350051193610337670904342012284096143189792381258043193161710159318171230349144476823822391456668494522646599998439140105370642812667662810633546906673385079249325394761793155751175644986898554098960925501911237614746981471020492284245059006524060963330989288655856879909536570646232330890702299651169636722455163370684904572202752289401836471101025515208970926988273458494672623963806177752446014057326177706800818960695248056161024391969196946350638581923159285077363335060919297029674100690117068422293609464818169893113087122314178660633989306059484013493865572138499551577254493443092869837067083582195651891443271984971447573816346905050386115472823690833783645925805445531316423784827727792381210714169508996944753100550796854346555701553935127111453445814554757475849361225123649966073998237922712437462585513497574057559337687964135010130263985283838515899513737789327925810801426832659195180425450157488133144176950919345160563607449217312454046657997338919482583223497018922200200273650973649181231641791076413905253883551607601177627912751164840151370599300644129009988214039356992880179709479447095315615296278872305001679172035090013706198214207758625999749126767150161216058339957895294627567941777476681457434108020921446796668947457475853604945561538382839713673894894877357108114783819827767023175119954686165573186952725799170845044980483222646953308591801468952505294876490820866095897853900001314301712698882910790831011042583966741316159220093165443279797017050547900574102857020177468712711725195972894033852173800979678219974085701003935947547400320139739219230791091062190443822543566483561419236794121182554223193431279292611670970606934501079228519693563640946501983341340568430152063967622417399102293446812028563529411318727575933503440036906551683255251705585187513046128188938553758882704112325690232161633625824181830449505267190372121121293124311311144582365531100535577477298260203972683351786551178100823395897894355618906510686983139770250617475088273827036256883963124693535287695973682787664790772614512386858267603664850570767574253030689563652908076725710100115934821693696660168172843220188482043405866886368322093474441663574979388845582809867158839404657037888470434218722593947058407681621840240052099775956756391601012492342220241437089083826009886070065250075780906236800977841387424595871402915218612745816900112694158138265227476745582604229314482824264805643058121043498703541707844411288583907387476776569006889706276283048686905371104549116199774044901055209218576551817870707940523709326578598617364449142535692649951250649266572712407293688384862740817999358041249616594438257928012690748936956003200009985727404118711326426900279300617499543226459079265613421162174775479501366982113461291249184721955836880629483084252871093632262682093865227057872461914000447858074440644226378688985329058658196673370372237456185749235861274205293421114465141965944283731146242553684514982059007322682628398657186987590833580620558514826879838160369768426197323730671522023396512651208246334624918716065107496550502053129695400842349056302092342540787759852350252400542227328355222386060252969198899197950482754276593472696458534037005925415499732369523184625301782417424801246104252892128834469420847286658258796586000209386697542477714635243265268180918771303368142909944701040309701466865198499075097903832304693356802641074783063764778613200722490354709099824131297314158537168914551934768092098250600418191793619917323717925198148729753325140433635905126614354100604647946048857634171914442400614687715953062405851791738621062821648653672221283312668723094119724186259995975202338296910453604140490998305367954045613283657620285143810945054723829679401574555569945854230294759867970120502556237007494239780148182744409438676154046523902377627327271810269057002539943001248848555975796564406414640343769602440579789157203066161352550891001581239879011566097833036832303011548846890410934406127157165349378125297390960261253567233738027817251021019407413420885780797449763889149311520066512757737950287333279472854255759619474317690026357022491937178917873979928037904037131561427943174437501686534305215841781021486477151741093238101706018060676905206541488447584041829639152432376576288499511604415496283502643553213725768924902079097627022485129559956152927766896554370272849747704791878436106473409051781852680130148882150298835485492887160155277693126839554338504628146636380663243053899944223821730787761799780154260841708725119396822961288746197628347972787869932622946001057545743223916241937236607522144522716394476852917945853138321628937742952410101162234263376913132887634958536142643629502615316626351171215895677435477314963092853127474429313569725312713961702840856286842937132676829761729754210748978003674060111085443355336949185008282424452689944232085304809860705089369826478694393605425033868961196796652317268021539145807259660309343157319983189914737190765486580043457111030254738936976236918013748502817913469817724313894161649531180553965585766534428902085137929286673289662821913688404130964277925757070936352847551226226905358555307315915958319113814880393929614761202332087043891801928054830044752758891444253866551558366698446422783622021834694392658504771940497840529792311909175939612573581885222446830964792984348896903644968996358020634027834042951958817727011717751598875652568066137920616485630124177592256632973339684379331939818349856636893151142818045541358382571453514764180249245810042992686805671623886754961624009111109724496826750648153036282257058867368901962581107251864414533295990455577267997845074686358013766846459815513596739027502129079712302172015951677697497888124146768741484702629093312085547258056160345932767711063295337353294830454933918166084982552617023628885574330769590657426251923879343936023764938588970408688818013142242024132389485891896945407884175862005852908263830592511132652738336712724985995818787137665307669224588176134680880034081710862418557932574298046423723066402044152317888952425817287511423780728680913846796563531408666565375195694625860084791892216392024413797921302736471673386344517470662723737708666461947634855721229687462664898641934477012315181748234025799435119885614499721949482808781343936183816640770700104549465894781608167412044030748802443654924938204493289531494619935172237320109456930236365159906280857908524316032296129684131273638388696254987021464220494140726637307614474552634355765613184140281339410129149353109723405612676840840395351190548877475946354449341106649634293301715696448604501654222600288386590390919961611755194946880062596786024285497612108753045140797470248909263803552088812527481995160610613835242968477878385479285711719440562590179268616048836315621113763112784120929357363426295324606681100524027740088158774030713966758709660712018907775898476925029098834870597283721520823671327295910698669512437476592094828212698479788188467449296307006799991197711307054225331521425253938314542704883523307248570075492096551084936040912208582958079589941913899609000102328548150612754656644049044626116527655469630663763049390178436432862034205390616041369750804391929008236965968072518617468937900905069220364488463245392038053934742386584884266643770972086571810623197602012846754238102882901258473914800683345503492653376822957945216790675443219518120853796525604555037159983661045191352601813785563664414956651028887612491933890435627655742879815230492302271828355407817604780256068117378972691421241460405134057911999900287379643869112414831853473735545576535411630665489931027179948557414711665448698767762400654050070519898561532951029553214254597247261995703379674914976633063245208257944382828992315040387496788373218312170932611417960098415585847453575103364421491460677570918702578636432170025033400532562211730376101527724190146738593007836224943091822201095309793551044984516026325209214529500150294913440686513600709572733168829370648008383832158014995769054583847334886070542767646422405351678017840910270835171386343696159126958094559899240319155466943315983588625021409261999253204651120613827466096227492718099416808663369814869365825803291180372850230554984834636642787430106096848702228322496237432038287335051173344973765217950863801716263290533964758362989969326063274842126086075071870142240923237926664828298167535358479240352560402084529339623512738444059973683689731294909456116034806695868337027778185938267684195360615042086273166572718192252131605095064320545539160040965887143678575625631343143050627783033753722845249153700443610248761861293922435353206112072908678650492030004969457877999991034810281620911617151277834008073624100375942708539536421107181286024965722322975705737188203815588071737308464845816878332242581053462199887343151526466223130448125247599571110744126795241473957773775736588469851720953970849000767814325593725147125659580905446095947604672282537458065546325756293154990528751588306191384194053890004992646516245463290366977401151889725865613037293888137441787300996305591154282804102609378986108147614117294235236814133299905199320443086105364967130888968234465193177014899731429164752791459104723160577858098253797944617173820605261179769069475997628723475858085018819275030930212345761639437403937147495157533743710414582232151921527926950209937733912246340032156381883296958601825439899820079720547611919835739736203408565608069281302955425793094344992620807134739917995900152423423810559454938048166567403603081074572309406064142238817953931671890278464773950290429805825532661395524498702280833277018843023614734686835729294048402241691698686987960976991217803636477085681334855503643473788677119360951505881722375918101223291539965965545580760335801981036584780304082303828549557573159817242389069737268167504034617325390321979995660237838431218225699511212327520639000804351649600072991831473775251729396980398405040152734961947479988186054032757893416921799953571860493158989174015450789138104755709546887547886744040323052733146412660398743457283772026263625996990276601754082949040761383066038485074970959823147105544419076749247349813964863512053481824521021142872708403012966320986598762632408496036368227386044871233100315369698662731229975479462810060258292460369975809762380274077963651938261749713746771125066173176268089787448932974519369555526001532020016987257880291359569502110188739572756718456527407809861800415674571105057462120605948357696013416415560888116647628710203246339863824480755727997029811824999642424892328389080363022846044888369752277375315671028226518123776334975806646074753683536829352819507332015121619974358437512440737029405058798084586650163628316524894478678857218154710450014068733026042777664983335899701709527688995779263614390900302176993566935690998833622589818495171704373722161491122308154591419565135276980076203631974008931753938901616339725466987090585631421585595684215136702345266906447327890460057242986265267640919332642662725356460499105256774002070386842918370918663668814535139665327034733484002869446751027184196874309028632445282895581918922856501796160099251055667296393150526198837013130315570675386649022039044862731501381564859905803106522086374081928755194566784235484684762164215660230327962013846712541591111216927804210035414038971301183516472307430798605394117265092207889542736663849493487817917512339508130644472161803201292226386408680833300293464544697251512714100731323815697735212809272143027566862755195709702589816791927602252684634113110422008979346927397227131081755855147356026189584438311960320822847410079124285663701245726381275204835197487166607067462786026817697252774895199803115487271184487148111873364028802466371224596451725173778983786283953125060170733983770313109514696430514571466342292256414923070790581092439459802796456391094722984850031404622951971079000421366060873514380035152017058495123060887534539125675848661733581006558817702405580340812210324518106714191328660256610472266179899140509373225415864472300373731722451569986241674930744701446633809977690432475897248724532034251436179807661359578162030677210746206283110923460674963011834938788022576431854101129200376762530234230545152295284415413106980785865734044424576106079590133265813440858203430438220124284336754347139527539660819663976940382190624686007386783583296519015403168391832011771484697915537531728787041572131175311100818618352552685836502473857887137830733518207796780063584299615714020297264482033523052888017649483143808693464034015735055354266184701613668184519840649132376069369884085546839719555875903737358768607211793030404394106250534741175633408381525771093796859443339502523076897151086105841865619727390968359833276883534046465252046411407073322003241736114018460657411148019540659251249164651958489934510084984044872473439803682420437930977958903108566008295591132434137138166185301581264003580812030582261660673229732877534422039665602718021066202650731201629503894969844466147805766780237060238463032384836350754739779055691221914332954080966645183566763635208537124081101301289346706513915182939298854801881401355853689951229584498157644315719267178097242969107330142106539304277373326482108966000049295667654855570711658330461227191556843924784863371467980893610903600868090130405142863677246109631192954425517105253697498965684408334248162245631882499047354624223684774586721827884028964684496201869271490969454080706524382975960735232404106453860697510243157905498047281298238522438192785196675258983437293595710375148790221729031161710062828380883111680982150707117147137516516559820004894342709348640901841257636370518978706243870715077683280546518008538964494734030524556640809231710172048201924275613952915795410418386170757980550147901990066180533033636907430304871870068459617684972051342886698694851055126708328390353600730557433346824886312689204537535766599409279462598579819998460443720911890116302059541844251725129886943631539318079730178052777099739197265718317059780104158271056403762468952736650078137335773974995492091003261301209026998893477807552302191990858077256809760172466399921019526161909430646061659352501271871491689948960282617342670368186036588515478883854415365519832909411349670734350357670027294530488419960703765023354178921772473376301691016044837059197374583101130594204083534047487343669216568582960117814251577773659312245808135443647437274693535671226880727172413570073802410705279171719401650695638733220509975439402088614955300289677548380518675603633804635713758453382219068560283810683644020405249610532033612491132641140790463754049074030215502156422240901517923698487785088057166360877071896358323951332928359819938685399374391951494538663534491267530009758085781627973558195349289507353127529351095703715625339549569392658791803511390273425478835462540741865809202414389254501251512204918217780850367674669612765693248281588341683740753855362001949008486419578377699076289456611669653582390646801924689210217310178440221576106365613557830716604748211893464370968998178702567083567480143303049028661618160667128295413506258405692130938897132555661435335345377393893217128869459604267488543284439525471146955208645218318164060451505196685154521586826239437596089501729104467181769837527919658369987129374675600953519119229734013680381692489349445977888494802361376493280596468615260561279449902061689855669526827974337573167356912519087468840489176627988181532233350508433768094308862812161514751264501302756174090695589380839575370426319128972556465893454974473983999254969681278612881698142512064305814677389712942771269106129800570663867323613036751700882713016955266255605417195185137876742727041288378628645495554642819364693949788982461955216137924731445528779572398710841286781117902358432119864577487375612386195085988611753147833731969450115578261848582347900178465994556302309605982451401684843860143507964599156091070653484220347048140714588209132062916610986386259256603494263890071535780162338563141472827086473508969101610701402217697783097158462881108772469520975271650641434593539755481943076372744782801545168360096907958627228859564870223889293131203628112636010678123883319222439870571373971521960587948186439993221219515268135492139384469834399720402111259144347749707635458102344151130304161363707991273847364126750502007086908712121563627641193271381353382671945828569080552813716443627847728388338151557545147625655290321251910793572722621300279971066472350803487441615488950731305873868050883189152392994991926019801548316101510613559909626520291622148829353116092539790672208682540691187480291359379250326857422210364030064034825059473340604272430286844283711995990268444125421452307567909020013001286025210516806363937065836500568488694108790124623158013551611172534329067841386377623236829416503228621287596000441184538527395378302881718694533766402664577222763856653229917432131660779895747075280660430361951404893057704976773372728835800363328752129968675773886995233742188144183999517288704015341927602068538334438956199756269828892104132077027748074145556290118439626585470602895667160437131927300392761084592016653106973842043098682303697592391868853937069572967426228887370157652677213435098669558515762441520780379387852200606645884889233287078187628362234993829370461225990924402424665517311140659738802775815019988480392199367006034353953168639465034170066280322193595713273721178889886339268770192752419730097484407391109410816227520619314057460155200683130751010154996659696368268369490434767780530423387649625768356079989379220482752235790129438890226238981840551784297786678888095726031692981619086108994956221036038885708848175056159624386139890861618373072901162390782374197597095853117157398219904964972477473913591541884200403394735308484938730029814311942054547997420847466295030501258740603165987345261761791643333521030682465648571668157937031222168920247864576865292315248198556229279245228862167966344323732554634672351538109355393256905133806114836800400502110250897774299475104821830530031988313611455838166524109073599165371709178792183054550810858905107072431403845757739717900730942057115353723651753182977768065392687995865413804664787146118787081708356720567462392705567471533357803811103579186752277039263919594159760575730095713076831265642515686967930932804070935093555671972902583230611252625303384713842228601442450582307279448989581048542127361468493022925551194563383508048960621454381410769832177404930302014987825714372148188975439016260089084624702291758564146968555688043816378126259768579059137769706855465546810819444453503202575093567257324339138804438898257644571275643703652796215428242202606047891609731546726607154453699238284426052422915844481862008683920410867234175730777850194762713615688795868819175242047209265824820963457206987149852963708973056685597793782870954489517057492791161647749687097497206812526420913800136786648167932344119547415236218743424669423561369264830937731700899917495851473927574095572692389513788595191548690072810526140017699174077030889320189005524514976547559522489292674886116993454402176585520906235206625097977805831370239203744412885934334051812669596654448470489111172041624216877038992894936650004495547450108441524405585799013781725272221387798470108492342769308646242586009237916191707553453962825473453749331310857586281414080499275632754580689878109231643431003019567338122641763924683805501992534164608446312291720055719826785125170175270174148839977506726260966020819031092186063099408306444468010825677150662679176160243496881115044027375121474920570075227096539553355672687704173825644812582101821418466762436773680624552453385676657120034702614634434637220967653849663509027405312222573889245124922020698465658126693155154591036224737963426581165307835943675728550217532867113275016079951376059111816455814177561324686056775104831912097142103721952106348471381346414844859652409349629742131212338894358752100102745145224053052250755948382650309253904766137390700353317224665180888462183566812812760861573215714485713172733557139768947728836344487738973116273016309437863347479768680673597170612776783805748486366574870875819187750871621548215166467415867763358599375739262545864322843507224507126360655124615450041597335016025188035569660037801488989701203957282324572280901665536793518530930333268868212103854327254257779343331001895360455376745791195496562975927877876137072131579850838502848399920170919745492887235758836943904355302486967133883265355806721558349962358026193510927521502791139951287657427369490948134412986927410378598920893272180150203647580559956679563670708940174695884040446834471135837647426394627207780388931001849032951685675530174574207404817694728680605681411891153721841115728965909107212357116879277697902865227079194612309420931741433701747138246138837272356949860410410412653122084330569557975759703864992106720324223316245465928923336817897175350237492411504958313431602936496850870126697116447267426924177137759123579214371844194118077262845220995141321206470187520955947687368891333134532348001749373214470224390069958689767060182198833739605265890538312270291937702605185750105849044676310262213669752373186811704628300587605831886525165113629028830357263824446114196420366698279256382667734335952629962598018620087517170686277019400138987702867544690176103285453376437908888849214391935246734292830737028597381829722660848032085481424733942657953839371760480062583472983808051408604845128832751623005333949523446024584757857899824264306896041864368520398552874472759817138084637426638409590248637702132080907520579415789695187160102017729633987335283117318276145462731427368069204685241985877684345737945126307187245022172436001105612216813192078458657124853133669837252495585022850611441157557769288860356399786394137121270629985517710798685658342704079116755889741483453137167808764967686213104798986687693901593162436613100637218552904682280765075766720804195927301422225933950118001945655521443882086635525853990292551818078915871781258550257255173912001377256686010771906364125581817233976968892361853538585458642557341515887357718672950703372607452110788157752485385955705027322212013819246975577769897480295910521425014371968309702402758822934517395738213647864089513665171560556432669261103388552751311860425480387216614492976763260452396684618899041456485126539924212060776359155712703477299950901911336359471333133558929806514248949325980118967043891674608869019541277252686901588083107216215668529857829927809407241082100980057296444768701489360183709457002449510064438706792175966202584838938160601426742481312158496076333717528612850479006194471403613613602677866272103069403336132804469683767628479788497229860137171269096571898124320282454130014747407090676043412086045679225557656440073749215967909798342857642187083436044980073695572892730787286082561024828722479648809636603521631890833752192066610050082019821545466188727313144687256785968331066571974526614051089830382794423378629217274639151941996832907894897579504310234895986117520400289768231366007670509615019561646806232499994294905152460857684120759752507025574927006078982829573805466294587294590126715987848426437883659447909892222332666407944129692531971527488597711719522684641444060355507665477882722978013698004521826709104634521523260122330571200215537712368729444128011347228713664754171714971433668215903290187449116284677022288234507734753470108534968375158490595538162411851524174385028296681579397545357654008777695516813681742031206312619712790694028505313069873013583897960558496121286804758782536413321198219448487190379257084392642725933212394236681038827021236469551781825790478244578035245656219338235527508790331146666007983675853878918373439034529984306131636774246621668797992011841029373283069849459965958952439609523615752619564813109582354433989589224648144504917005822086481504997058459891817899793446637620445121949527711483586103491991097558660261833617839971928526788891841561984706423348689421495979758846450388022032730491092863632203348521260943560274830105177453326296878212931985420334645903176208781154009502291768992079841062675647218281699626225445022262972822964622850451367858469923123340486118408436903737001295294665526498348237039790704175623304471790634279027987632783259464305476278424420611674351710113842981377100788666366920196639797897231915428703479391238339085555091871253542177432829155695790343388858750560507970977471136010304489061377316318586668737551749733443374875992405066988484358707860036984381475929138222689669657521288112523321949204711454367139905196692545767148184885213965617216748072925338586363636288349255719627301012417831410572114388407034060775834412709410273617493111110361898295207961786370564553800156997871962337805551382765562183902893395530968339572208371460343792310475007240504682870112539092205568884995676883758439470339114528288510590363692539008358662919554741971365202658716786380120581858921007236810104486629921573341783493458205532554108013858120334575929741365143568835670700604082243686648033120037134347002074442032633652351916745083120791950692726924776583674394338210812747109060752348897429869340038781754341215583133996353608146767031601712698604262694156124565629956384798984086108870803639707437357179668306038852814538943688162852283200926762542382261234075005190137666420052102248728945879676214864759083531335675567653356210342095452995873640202188890331090052574948182523303803717367358591742091150576238481489729168478379080714653221253980620025378725052584248752139588250578756286445769555621126049311878141811733795201235881273183744649716286587533150369748539258617305324003712455778674353868007750463696414178842996607882583271123958609195149488865025130545610193472963526985751316514406971111473250802683416100004366796328757116755494356399228306523600612482258900126312472627372668434768519336887567090435119071564115408226905278537646994188097031580412606814574265698678764299405447439485887365268360164982608991359257828141531236682322599183579889698099816039973043645559929653602748786448925046473145982662866645722328134858967039997445234312927403626095874888156675610466305515259008547738771220129905966010357370334452562864042054775389945068300588171819379516071167046716610387503688990373619857223662056175425865542275695205067401335158555361222712249803521198653533985982098909140228732758524941101169385773093200327521202312729400675515313312146157870936625410252245489378938865084762293085324535278379649959795449388140132582130618438416889282441928925437147730993889439689117418871971158586742127300924151040611462733099872238013063403326041941965077944607165764504908200819007359256986841914919457160188925168309651816188817030421063730839790930181926114498453093626177083595697753654831326637209287759270292311853817632833942123490088961812737032953553484267290886576027591256588151379875523681398381484382023019459803130068526480124568533693778581115396154207162138112883745251168980515418236165691408269631009691303273281765128475974024487117492062297148351401622217157029035222788725476277557593914431986489142699582079675691850054836800282027489145305168489650749710862177388571481695146840976038954649116293591693996574617463807847569510155221786006723909338674605418668896641684189102751027188185050766346127637337988004441613378069316133130077551596702225171066703541465244070117067954686403697037117328498923733032725347295743175254896579408935216869507847368057202207754569387621680031372051088520645534847459468734420158892169381538727139726394084160209678551988472109158359512890782177192509313532323006569806580563937617753417362476862949869854233582811869672009062705516643659631806641220138408250819876707982249518650360990596655723152304814336490302102965957613377693808859314627804854655816535423436395979690837628283116428893195420776236574818590260789750957270824060574981265316673826786254840346375137455687857607254572087648772759949725481758717753993686828610545153917618334725479772371545258909287644722109445409529633030710594092367786121784135498058856224759917282551449599004133575065491008525685225197312191652046864181816094534699813365298140189105506363214341352125594067116585871060115454839399679552965595772673166455779742625726510858559227470275393271807898717837129878927549301965952704123661492538992984856013858704900753547708622394922349563061747169471912895250303843647611316262671824757789801891446995505298670340889460297873710581265811478501986115447739838012254540818282360626576348726920751859949598994915068804912426540788455009348901079960058663883971557775715697432502036282654070054658352369278934673631882610645105585230047146214390274423759936435634857807238944639408092882061317481249233862519540052941590893577054483681288175825511629364348521369404500725253723193196252267510713107130420574993921039609842106166334365866868596021468002948839851438837343042601416783159872360356883749341868062120081770270244496036332258672200543544584985518130717597352772563413039852231699743179477901091812864956307741292233718493871325411615381247305331981661506981300845102767665722333763049674367734739679723509009978325517222765739894681562168633407628170667042927457851957612310714681768411436932710065311551472008765749350068185876841732461743907018035967388511429102478970560127974262177932820711681022108600060978583324663618790788503043589989407210573160115081219040672665987291172542238506115504443159670576775545368057530538902488210912219129370378031691142176568683092636628743858724025297612607981644385320215947746928846793211479815511109045805154263330392677680728098826802795990651064872393530790650677873605220206058696125677014135723433630488172999453774563189134247483996625593137972268401855949458791667225759800496934785282142803673982698657075193733067003145552604070149028439704377499059710943680337825191194403531355324218393195360336119938742515208494112561652369765342986859027676961375202818236376266748849406131156337880442558225398607627653629200938502118987296544333487856265373030059075843454916692830573121911711167719529884618247133210824180266131989426019949027590207152019726647203506752290127137219878631551545060836314487919534600878943420649339880872071573856110473710587165867334034948058567884977161743897315437800665073499518961714071701469031063142232026198442627452390184894522157863550231728850700500741330047002386242038685479761206422283435971954849350418923054826152346386029339333304010540296872896744831665252912405715510289859532348146744138541435710780867788948160517762108304616606030556944143106685354780247360665644650953474675454811267258149673750189804956967614917628981179925332424028202697347584091622536485965292586580607590484495023905078373683324866507221259697649703525601298118856572754437626560906368371340595790992670401767760439618323048041817353253566594046661148244650945500309963319352068980258297484182273593691005813637309262570477701026384915566331910989804507211109351719766603627497721516411323031763610761402836443643059389032082466720292831734570809869689155581541725630830422442761402887450246006868299431394423447429068330323872093038877648385881840615569118231077376931142209901457995390547058635083722907362991126711338577446050562353048797883009331141840637422876284073155694281683630388110883928051419052384890134809438655614811015769373116911251524413591140915935522028903045295545184175421481668516850349197896371428518890579865103089207331823467500791221466726818683862963092784818996262904003869791911399766177218635018469257543969487723783060010665935136720216311863528972268077667736001386229739556251276573536387134464277530894923176364407573250035552220428683827761292369125073140294879219820837762769084509926457532612696653096774827227109726408831383682253158142311292956404789033277115124661431012247461815598246956626726120108941586199697912406888070347514323522160143036215458213683703293287600177276428482458320380024073122267238471939531023979160318648302876240830806781642049816392454797904705396442831501711055949579912451663896043899596043710489091029989409188249819143994697279522065614551621121970648612574227921395405195469298163249642352372240856467365275493308861076822539988812406084217605939507171156874926699570756863044755080961922440009610410512931386236968170991755581306580081621337539648469826025005491653842733934946878100060261237869106345915992483481531096568496828139426345700781577920683638330886457939632716554978376355224399008948820496723269395229317250225419976615452146334568854221606594864838547454563478916898152624233208743951348357665141533925636409986426185672061813770119783721896451487863954719388501864833682882670294199869515312418741492740436773050243616709090503919530542823091577318822044935820751385218384129460987203299318700170223385986754498605994736670308840089630751685387745969638484834558393331532159454199972196084987127432383396713445814954292087946946233530227777749027641522162608100907868364855068794860770957780525140998068613919615189150528220210624451985427356024785974592048835916721625408028460842887829933473841278446345218813219529608136940021223285585070374612807132675386015101862980656630624957607388594240869618355468082082953870954714871038709156697354966301997298989780860293557764629889738122123323384475554496287729220500131656236634635679075647377626561208198002276777463513242740759287018205248656962659296349066143555222084271551299853870935724145803731209005455735526400247148837321210392760824679757440866375775411810195406540719831204215907281925720600342926505483975864483544280162766880933738146330640073573233791138083571801890396159788306242482927211268844696507368475853395934313105617466860591682590172695664090151925255937684713944312966514234721622255179632288879814763490979466457423770182131493537231605817351873397565025499887004080885952448118302072360184151733759173297078579521772756261216404337877698060376904624444489058098820229792231813895146603040195660011607368066244954265661836179734655973864205787963664665750290010258935018912527696632289844300300438215180874791472414178174602909560911687067913069407371979826270039026255723755272790888247247525950000696348103286463132524276723212796918656749958051677337355119877892049750416130883546383905684054207989925629280710189551184184481253394520771128309507832837823135354208477707919312926857805630269901866331903084965162327069142641102022624635058019858249581395058686448068463142409015596103036364879571936862129664435056395476952410926565222493393624442762877663023941349176522899001947838281811837163775800626288731931381903523431137785190849386187016000708386495726544887346764755377141290087396780990244076305876830703924177181171763512122934691841492486406421447998660429930684614638135163076914276081822202594206519416411419006045973097315810334032294306879641132397201509403834056967688516496213651450232095481277461351445539214158224203276012870268277455083244813441028476191636144947074562688914427838184436900222798949687141172833686501344855294330873593637855329962256291461452364728757788508276523179218927762307534937826400929832599459145564598536697791685197117315667298702495722297730184582974425215889336822492031297546329285069529905152391894268003581910207755910929442909176659355956212038352258190652859809864134736109052434513055324929887247021449087500551661638965082072090876699754652292807300047112967851764316555210099261158469057358162019499083163869820872669361545341813328186442757567484414532677008845380669103158349636080090668663022099027427480854364551348061750816066384655534155506907904199054912755159568288695001107553598067824255870770597380765169400837053231507271293930541892352000534200310047040951377982497530181221154088701701703495405604254353704802627069514152522730020764794662669469123943039067993203684197926773451471208895352743637632319605416898774439042047950464303927673469963433497883142695782324122446309500858982056182402235476381415784941444513937998839989525652707776236854542805098090542654091993391401369822304498638691654587793447040662301249608782121444094598348018327504510179362580730410641103779791084700239274225214409311055928201997639103408262249685555161335901763853840370056814244334930546321721694090792510436434513883998384202525819025761597388119619564956388387682353535709555435726758915970223874584938418469340591667033584275405172879902681424858697655426761787514450477916581632624615157816079354897769658451420780835650253056638726588415365837364148286428413586018262183645069259919962777728077849674761616270588508577135524854459597919513892413743754124597502054942579465551434224324731095296623257625337204048596315756579220843843130818960842579918458181712357508059001866921747622535644575576831640527691984273142968115605212643861805330309437885789882241007781050262200878611936553862197482345314790974319870024904380874981916822686228618649926861705745125454982839692464304461389001827504945010700330115793298994295868278232083606910611465801766497928549086691948122929277766733776941577044595710138777522894166463698034943031007695318817291474425770626852632817590873021224972206766940962600120636037449219444082430585481314113161566686937674379889299011197446871209738341421726719741398762098345388591673778039805161850854425554722033205465933320581657479913515493234373834653849211966825876481480430431610994924103742485040168885516694096082901943029176556777969070933001678557078669013621072903413779581733952077728557822907093722179331165109977557093508712562196089437993257821187550725727759495872682769832719928564887618670879187834766148351369681183270851052817448891026971191149723768013025085379756815616234405802691762546473412245549109785955316820209338701351972142652785495628510529312511918581964022347838399055187443424131469051939638733753908250515966047120177968178267491049371202035044138960271016352241523700027935926632442581158845371900100775062973800942383891717345111685951012323059071931973035060154433518278789847167591975501269110202067209301351499370328035065885220355123171201030291533711793359567479969605303619315688717261184160137867367904861640979505651406099727367133575652470024824695162306464486494840410360188615308055157782499816229406767388077887016442710131176949951683372139015919913700384031667233272232318669455966745460350253655700793657349478190363369799695828035542605950136593916956910007596270057302656590214536410769667030422124086904429782194536957546355517573366982675893031525223313826085843126185409279641913740797511126320425234677847457832471645919061517208263471242351552030179606099013866857671910043149267390718391003821016536447160721616867264649965032115953757131313408105137440043518459223278083506499685654420875092441426767226267533040834884623740058792226562484344224240921607624592479892184642938845778677607990471955091302121776891953861546781619031974988548043982967001846761767533817144645825547299196724560584354918393976841688945837253916213877352896450523150263101550201187802470834617667892925563176380526413774107503273535776698480748404904778867844564959097391970229300392644196975386365373880088804389351134652638276523210660086799063966641664100956193256933245762158793751058374595998061899669958397848734588290181712431186139899286770015232627433055602472218745601311908794460733695521715593563837608874915688054198289013807177134026292390610551488615860003133612801030555903786049585312883396298209837827587231167290443097410507745928033488912017699835972210049408526675615951011032605009221031265970250984938639123536204034704426216019307624963652819676477832646831419438977295459707425579447063930497525012232568959301821864021316997047685760817709943236472973070557375897651778663146886919802398175008938449659678456576061018127397696012391904107352822751875702268463623060459335844744984129160480913152353070673598964844139859394338428113304403252363631818150291931858869590128035895148292346837910686206006338564852532869147363867580426340157932298777126227373069560888167428746550209791852242424097044761774484099072077612580670528730719126789841590054283217768568769864119476296224041661054918490217249020166157759644726435047397933432597068579248195254335173285043948254050132655050991044011182861590075613241940411585839776555401747753635970915751536060617357674594956429581934397590923037277413781494031769647639265285066030915711784557493207005947063112014782738109025126511226689338853811186428880734367476431156803284730675906449503462778077940234058615926113530375704919481368344318907262990865654887866102445636717914559717922296464313351675374197326568496359323836890803349796993055098432454165648386147607760252890294892590251117493906565363572151511474264344652434715530244394817682758794940041602133209489370356430744286603898905451989089649365443089268328022758392491472543917881351959153083291491552316582200950669063401116764201121611710217818164773629161308984221076878545669100395043155857275447294004681298033855573188727285720741055313295639596570234501556307409343004622049804319980332213544527916381946479116110076508727946963044682605146535699369556476309600326178933412482413714352283294571759415500285190605720465689597362168790865122283973527498216224485724773562883041940388809265746797133231780130715949210451640434883549378710952514195650712273774736203123826681130178867536747395308613996134276197157664555628283603094529772922463811031032030790109562056950298703691086109772498352618229335129553626405134011516105154475027273158281707991866610082197771156078965749121729103130071575663347254404018228146552649583939154961142399800806929031498912451655677376939632220823535246455346974979003902393297070969434676662070246330770319563274157187382556947576396044977298215587983026433296637103235365030867077788275401328494589647885094567733547847636375338297997224905581445476615797336811285381993063646333807766622274742167264826453508708984758909458151587151212176623631048769099023997750414071141904718483006192603179342593136654422382807760075070971540067404365937979088474097913815972656054290547542654392630792321672247251983069911392445633257223367637184166149634347922076075152537764956625107682292154017415401323731421167382330928007330674975317969971193893305096359020762028976843654508189369239310889444117909811927069979472680559387367973412059175767710211798115032429180849188258217095177231565568792260667433860959125803219244545042885241864892039143774930292459112543409255250772719396075041055163274241180677994719549744189143820031443967119019533330331001190128968709713861987284234568037867967760325570088122244221027770230672110449710700530956851269517792455507987410863334916170871977804387354628661325669210148861748092012244233786995637589097085966455187772354192713060114263584762607469457254730080505062047716186290195988598868826000405150137140891302025875911148138362623174385396322118978540296626054212451681984110129178628401404419633969558593297887030301144370785071548941525335117465635087845495054462188695835554239501230287184409730982564650982855844235599930125576276607845318015235917349747596672908355159196335692606934313064171361644914262019370750363900430250615617456379344770754978775597057768735865734165944113964667499475907774943688327503285442037966682287339918290259057374539971837766190125767561343895495057623684373499163834456985565340416230484023394548588960596446889057813839572132866539462274105609260382266302709940130504555903186667292601624298704069114691385348986080646398359916410003957906361577643251786476265437463696448958291414313487427819553697692704423976891765971294597175843164246980438334619628538182945645701695022140407864407545464934307424416539994535836949239334069025395377456691004424678581064022500991640196472158100771646900789130898949624355532259892693976325915508208061039746769566044530993165428979286736353185941063000133653630217456565788586605340109405763216413975602558598273312713488339583744216893486532960220168592343268299057146679294470322544079034546276982852593283238070846452796586391473642047189578837913399272505646759823014972430855634531397944295986102349469450055968411364015776824054620446505370115566000940385384417361137918033875389718932174351261274744453884905922925204771140878102346933009250681043371964592386215912513521623097646161267714642034506906244484984158412171182499598333717451350002134138007275620610479018476935480481236623249909366400289212514393138505702079781205448702795961925063793931534972619551399511779787491717503633756919843724696087612699465565975105393302173324133193521544841910080682498385310320262132138948840670150650398299448178604096898490764290022340016180112705919153979538171452278250883033224581748416927264318045386234331787375478126700446932523714200847007879378768743809460335453023309760409486379550787455582277133560357512336238042145112505346717759143940783162574106031601646320306219104423797845178766360956799192315948569420013550478641615195219842398028909459557833658254470657356465812856540770344347368886080489000958660477424464578404539579908410319611683350465758023617843184806030177730267853722460821227579640408590988278537679663811745731309662317710942020616532800450201738725346874036418887382655975507583073700308392698951586993715702357988077387763144146328548678597938899336182420526420015616690412586711705442198043084044035782849542140862799369190300818203866255190138923899428817968139935154619175884571905928106137330085710039978345957641883965039652009275586408647016991519326809533933347610936539050683821249791401281299210730550822233947100261505552608203081369878038776485132514407521840263234479556449127039696919997464899996197121340906171683473213924448846465685237401348472399597397496523611423772707105991730606126222680761237401659646161472976606290530830591790528129811153072904207620878355897662736473915294347063861722416382023516611058751233453973294513852122453607154842596648234089490031622854200150683936281114058871234540613806947375177999682634943565906820580356939182455531065858838955496061605968424299562210527687496884775117116702652191831656503515674654525355866656655617226031052585115360620599206584111987040760215450201923586738121286450566622261126819581043149433502411868123541609972112106229294430118963178152980070850677205966270513291658565365093543774323051633059022944248102989247611160874193358667643588260845808967865983632516771075878566703277765258840222075362682568071953772842368877843257726598029503146120830392561520890894147672714839596513828434093157987471961074100692348956908286616731578010508128236574622295416382248316696018572113285191184155609886973748808972770849343342071205406726951979645260493351422794570097711251049432742108870638551188024438142097365333581169516531461186823207197322233969488226322244288629093724296283050212527037898108444539404776440325100384739350032329863996333904358362389386771657655178440056405202515566136141544333690907886463897776899929515425210608561448739018750411702235066846484157157891821894907994734974541530549031274167642391729820605732745096303322781912612333928513881752141170884769136137264588689921719949271499992206202252284569997497608438461283240985540324085931621293282044575214642654893122838902813753037310406395546283166786789213212236039138133538436547809522597362293674881037010557127098997068992477740900460798663473533358724974191574803963988928863106242138848485730404853718749446146043181675707193045195598347331350850992414725526232934092944701104257395831628436044789384425723446202757415993334329733672508798007061736236991256062363225197378470924275781462866428623227975481473276590171664927185896830325098143368355794100516431768353534451845706890725765961861208470579809391099801357764975398589995634639651058396796842990437891054127377013283650416337998561459252510925303037800500652850781743684783961135645831324466687290721526689731902433329937865579424795327476989373593103801447941232947419391873830191612990096550752552035027397535299631770891199888054335759334534869707112941167134869081972136092310669752182720454555177968630915947263875889575366539188970964327384961756903739179719852301563556675611902972457267285164913574755155293281402699137757359474808278088920615493009016248643692020847002924530832502282411908730851693096469063100534352045194716229579068093069283135814698675359057159127169046364378844779834013167989724518404264481898533739377442758118013712161529157842154540576068417545011777173987566213649181246755676607022148597383311699490054582783726853022800338171284639368042120359893974866320077790093745684380268400082333535702981521669316644260989358098323524626153223477882897596838849525094088839678426772625485507452688969836696023300955436243531527558537930145195983303060497406327534010754197335616880811034025929359375671023067017865266718133829255338724423715799565966755583417253728553730271257866970213055659483920176153866825173333288948390613606871068829536339313211881055651414907745855520127161386500662117988552607958497184024740079850658454508297606018192764907698702290102003506058259390835684290165923188724986326843676817398174809286186598812661007328764036915775635987705056528912281817524219483089831733246167553152406100753179099421241144634807674687860210651643612251072404709271624892816579045339854352528664498742268369877551511196992754033046304533788221186662323959338064653886379986003449114701354250262921339490815891476985037170442083492339494651501294558534535779101697283425699523422312837394062971382324430210980668637827608290090109004536844698103080821634991351098459750271906465465178896622592931865317104248795280124243605844957336981959489250340615726416777633964753070568585464011726336613495976538091581128203963551460254112294694768113937891821354779720884005317949294822449185718769166496879999564887505506732799192402576157577789329050097125701766411162754389412075499512833294602411990227028617143223509304396288545097543764536918747342770703070342273908657053323538772236194349935772684578270430295972269628836492984421242871817504158525225465252101785375066469531600340526318060342002425495498608349815357213368110468862350010405163205118380267638571265242998815561117401160621429317851588892735491621085375676256727828239373948108792920167117493782623339760017150605992360329427269146018095066458622631094308084651315822208234752368075925123680233237459099301435256827069718215812198699965247743582465639298558242599614405337110410065584931505338670359101505281695057809772203985374697115802798200801350652650690801057269178556553879407063794854742744363362001158701906285385401510143287399734514610864854274658854760041293969362206368038981289666021392319602899526187524849402714404074974447923046891744727227406337549765346997874969882453300627701822168809459636283014844508820618612049205606773401880736942307076948980913258409696187071466807602636095503401348052347792619741666299338329996762109290959335614979811322859427535533605639779012555155321209445897585792012502190942932083680509130953720299593504245249812721528656881745605680387285223889749864286148022799271405874517079195496370479692277029445151121487086484588041140797335436934404553104317750723031651959759760679824332685957092325396449003844942535197068044594481122440875862350265565773587958259493330472155949114844040129661067798077728653430091221650557964117580108822988867939528940599264030641076345253585878567263082070079211608846431147187773835684210004924827945155675552138953928442830922267469525744873011801028311721796060208986842130783420819493727627532354232440621004223902120892639196129220954978701474547132626503558896569859868930110005482780019740871254518485550248093506636721959588806873993602893975045607040971200508372989487658710332416325448653382995617061139084827919035011885386710482785279076299628469200709404569784632766670074080961242881479800102140581436632361911090721733722633544382930905668681872583159085936098035502030839847700016098598652111894730047062792919172559462693879652276910754905516823045279397510096390735488035340186444556642155705176878149922981863545385786737096762076471390532305621679630207971454348243644528966137893675360106573099283061012778540279833928683919288966103038488348852306057855888367697174984588264202109306817622884924272607923658959455039328873471719501746515334085368345844133006212781196166551419838132285815267356732750598218140630785517713290374589531650093411217149218247675867407847006206366401013708666052538309115082247515178686862447720304618309062032677138266230389766886570661921691923936308716974982722150516063898250343968398909735192895039588792572984154302627321632273245348362281980471708447531952084170671476961951036898438320662169947208977797700953150474707730925666367181205649925858819302877546978642084774915323408988613745353005759617660643192364448982596094887823243984616256784197162730624943009599079865651727040411166461610087399586309623032219860104765408116748545325465943862889392368824547730322597244045810398767219040674166042871614237730923570945577988216850073508051093106453851057567610144787069476066683663136083997605855229349636737493564853968942801653954358414889787663875673914788255360038998016774970278628487308243122160298652116183919654538448404810536265498783986190945345817471208681844249098082804495548260343603069302518563633910274227115868959492358956185731782803694993837484824230999977923235119843169713886651874794297751917920735169205066663093767339155398614022669275303921463845858471043232713619637426143025626285205755495987336819728404905241072130996633797216242506995454914291481510091597108180427635569840915706755828317672129767624017482555763059252006125142263760478736903357327731457397098157312023731487970075209211751825465150943604781150849259531953898216850188869923733429086481728642653631636098298115320633021447281335688891963751040980602497553969593975372834596903518487468139034994774264299551458826878032268427207091792565945772884356852420433107675992531338909428005008540696676355291245263631036449332848121943030415932639225412369545739037128928125195471679557718265019134368116151518465893060262818668446491455376857203139791369393595893098505838159877935055365719816864765269771121254521134162326643892904502173511907323119311499354871294833982659466077300614486233724257118157670938970588386229432371843251317133725655548839883764468456258626127086175273640893908773005429156320524574813451800771959798153856584893846446895308368966035007052965703925392897449629272916610822083747322445471675413377636114926789981801876240476138078359044643812713210420567381376845697244957485678544600207540132008249638815743160908459746599318616480621895012620973814476053354058671031350101072942837671954079759423938925873888394681560823185752639450597785998584000285918651244822372339313470139144303803014663639553947059870919913208811026792869817757040420577725104155657701661360835626934001274469332587717463381455806968480504897215800170241589960890553627252550893808150291392906621651924260928119518222485804611115033832044690734742688128220814519045124489309877368059416725748058196739006706392017609833766319066456261136805872044357269880892704058328355725011823392909737834433377720306430196796893759043441945041524577704346702204662901741444875941899141277691460257889022665668915002746563881475858249930556170089150132591803638722689301743815167539432443481639885687995708949186099843098392151661343688463102472532690169499144653774858682507762791925232394400844320308380093295472603207424401333138711102788269494227397108594395447641731981385216051979787055953018998158125621876941594093461066830111781088867436799134020487906605975523426731017925544526023539643438394130475194582561239246832861896859436960507012052070499360797522278608042221375986517950721104028054082468326643911388728188843134657867406070437105087442782792573652154260965291661476666278513625146061484325217174710230058992974862163462833712119805839778119872323675107501458843778365313282224322573177013371791336655203530705821137918497786767122936713581521429490081473933447846455088605219670235363184195136343385127883415074431817393648528292959111797869568039961069421368048938771439530742698931162786905345985031043002391640657965641492811488842296342666757398297274517279034327421749275894629913158086940449813465523215000188289115839303786887961909027604458060844807917904490031114764531891508897172889847858981559111687215017783300212813215478827223452316402136949331462742076308636326473188845834237504995113815769931040406585023593690827145886936037959275150048674809785756811446370054805166622550043329057056243242009074802148992732379209822972807993164410602532312322999744593420330180269494172333427646386385541115756249080547663668202185108546825047704249181877429976526687952433059517792104328527532915706296596229801257508546688853069913141364203501941845775242504114082734955858341801742670566109499797473211054943585537683753768434795974205670783677889322601805916257188959094522090357732894478440597052183561033756532116834595761022084333870109842120516629656879576681284560097049411649570800075273137951146461434765364156510910730842394671311749149989799291344027130500471647527978451719188600272021661342224295845315625098583137513721768891691513974848717364143008745807525665060873190930354576094011127436820152622035212066665363240558775795911727671183251147960550968382507636343554487975368052750532428710781997801669901968905465179384259808392686975918637632555406118721317971305943649238567605026824762266249114388879028716569278240260366199787135332204666216640646632743906654751879686224789959208298048435985006191059215495822401656237095736798115104734312976229254033962203254096856940811158714892092241325005327921234724069793686529871624162382700604414571379026114608141162126480820802856993211139397985835720560896527703405974939136763266239090950822315235388733359453694097177525264278347065300802803630562783605065935088398988454643894426470067379979514296525894510170120241311725289185896786534118003203935253285626129446128903432104934338731070261421520518555104972941228011845523220987822984739731893562815238685339471161461179895858646591295683280706840919850780758883146599271992147424431919822006726079663999823505260249714282721158564148145330791587354053434837006940247086932856526657032743258450619918387903693701451971147345565332895218583473623235680828985399108530693295434612980472589852801365342755769678025770276079859167091093596393498676650775143591215061629994174001393703835882015431898594249929809168513624983950424784625526100574405368758178846691376430163180923755995277289020916849686484478635258149079725832377618275584078144554456140742955036587838036840387274378447728897482292552882851142437412199662965107443993483565357392821978296672228669179217140826502833673558028468327694084767024531585934199513621281427173438628923942626919572023967786195402507648450777812181744436832670519134667379142467859825455844146914330725659410472625421674088257357126636241757974006934330163345457775656947775581823734071978704166294311640638729713093397167693876455152095125507929858156742014643290788477428764066437597206391517436403358691027289685846154083402145385869544276253719148200481556926038497885744712320222924035362382427075118323134630959640300214203480917856193205116706662309076161134066768237253478147748457673015543747021403204189754653934844726391912635620784266724087505702565035319185701625311523165846252424933531047588881442111714006482958148929154688569517553811438205191830247745010461372143710201543038442154669760679215253972388276151150041313357578896166062720068831750692697696088191795501079575392494891727989800172547691363525991988852573506903189371804181821721193264561378360448623946935746975410745182625331781195038098523481663245076198000919604439630910704780825676356709586726393676783505817007288025042405712500041168210615268023044884516105160541963256929574272528694402879709020575742396545927433082933211566395513641076708474922925927941728548312530443124436048800227309221288162695533677727652603834671541623422543387736126220699727450725505806128783226431571458668711894948478815505676997205755107071726053021069442212193853889669429282999453656360794565381128056642308510268960255819254208585405277320588889370161545482055335742373326955540487829643786595832696022098382815439083193523271339261661340327844077503717499004701071078752378979605572867111218284297183980033033197274991116236769951670850226938658220641569928477668457177733602439115916281357957172025335230206721336287623339481296881052744213110078380959273233441653558101324197840078449068565806938203878263186608352163108936591466322608104511901306029114554747931862202237244328874427078323558272757862671362403406426553085390572793958535818723335974726453198935806629466518913667346533192952279307273120101010695023171196843147006969894285161753723947943954068334455522353493222382573667435123538269675469617131716296159945531739343530789039649726884026606834243159136333324555204007703484834704377653122702125894723799503036942133743223300210985519143109769855113597907156530824274150893057693797190750491638162414422072683721989759537691744187980459742446240108802826703831542872645310715671019855709940892454223295166828053154763376644628792326295805700089848380773881960810318171925672706969153131222438337268002560092269132400491121511452143412035354012276234506914483560750430961424311523789286237326242923123518603847070590028413029561425832412864956618531107367621749183484810434547678352114462941322951723450693450801014103057507054568395601045942708027093092418492388880171749309515997049893233721940484265908276459761414433587294511471057371389257179115538809128428090928550533926532698473479753459510209981162380243291140989788625710996214607158840874101077998493043798836607035641556903980540534237883577676920065274692613958863048268082147325674472654400853764202114215993362899933174178964726594904729269754947182332766517368479318766974009482318362515626963818650539211004622918758641027723123275539413293551939083964429676758292689453203139332987082369082740881293011013051389054297187108168365716225819184657610837821383708726516239151285853484688596289697270176276322445020791042292565850985266157482139188136398543679569245980866216234658319017080976201797482422657141842187022460455240465546661930200972166144927057564356814256819666298634594928499861635787804492670105735148822142640586870009500613062486582901751068919824817603954460443390614548881478695004740887747413080879871680538216902750059781289137414475096684338882999058966190055834080724295842198808269127925733110986554437165828966366224103763817760537592590002039569550628412150571765176851986384016240843107989079809198472073587377607443294790654657445246857552164451960618598617043284210280688936096646214489858889841179228693581317336376108556037242610978681202697134784936885100384214802616757817911399980817694047896779891407518970790158243243277766754767363677237752808404541800946428137712037834946057472399013090226313027533314664335488708781753402128713071502888667116726918652407575870310590532570697033995426375229843202725408317155077833405087554378590600761216155933492215597882241835584616331428508647192443722427401923869346269751125228761502149841395624323640255088546853374128869461856366796463512032483639377262607639964005876451345768970438060099857481569970558615806510225958150128548316614580250047438638507708995216376760141624620644684387445511225522153987818592290564816154895245035534070010884201784919784762261970958086561585548363471627373416713408173973485236868622497175479983319316108873583524642511560124804568571480556665147617449556204160171676194156813565904847546334744449916512540930771830373412180781511552616839546054157086450855758566313738874763560931795731627706758654733075900355543112126158417679377706497004115475377608535680167774004903186419753118043570101112233486466670769264929658078680074976889886594548252880986905501809670131407132517748661582774350882516052570368257460180987242745573512981878903708312307384367925103375300879386165242435877080883626808990481181807304985667667625122056079097725747712081545975178460184004372548166212088153498830485431148749063525412738455129636815768755704767864197559018260336760994356598244872150920769620010425113221906465845884689504199903366759519277309330699538874650981182918523853917342824820838970911954921831975357842776256679639930114475330207058451174818823047390048832294718773663720575640782635900475345177665382129408106069662114924855978499017146513660218577165236498144529593654853064887352283833069960522578358074627788220432900213801348101105461421713815228632703921927543377088704275229924957466899594980387034457476627592537144784437782705176848118066321716013452869058552671777312966443588015935161230567651671373788842143475482273623736320403213534455276951296524818954605627555851400489046695263213333973810375069268237348052506351075875248122129749071421526577163614116258679949701405976384801323122066675137489485260665891710875141110935556981977524976421187201057264040110333404867827442684985580446132639670134699984130066177349867941717593883197030180357003146844890870380296212696639760057324123816373463938107055989812924208276421318431793447127861808631413350277407222803980731274015917439839417752515796927723408989868609414850343683687259191446364305922714661634374746481106362591668097389948352495477845681438751998002931909589687634591723658835629950245128055854434070001351514567843143889867320310970456097432976485076764575160814881083233165156851597787277781591416743430220445204634506473049929896124318880366377173294182573748735382394698140792525786523009886350651575392900327690914738067722348311723034121678343432937006660184520389073692200835582648883005297533073689198555109349195958501460185891819920457993108269032836974852608041362581477360371314653249576650136071265661597004927779640765511771131676077740989778948386616282298270115730230803855234565123855535223662257995641572403697737587387479760233306465758127610704804272848266282233175715158225586379217974356969720101048930094027897410377633959629899346592012650715721376509655558135355352690422437485089939202952987071585844156159687283546316407365518338073786070505332225184220123616478552316587026712874932050304956148841110427266399054224897552045432585702467887948158255121589900333450491791477117444730290611703140233451559510495168007298856301101443279067950438529507816700333251997419442236103800770821457209862574069156156578440997550352210904828289983754825631843762436030331874076934039683139699322076830983551417856143472239333912634770474557082921132655286540078897911456916778407216518424606259240600123425309987122959384716778411461289696370429834969473410570527684293809445981472031028496055733683993599226195417927862553485682842649349784678369168912091751317413745083689346931329548666021538555185033503880640250615313768855301120902834405606127281304511643681441076474755705887902486824405121766071247682639387460039289952168705141552004130453289145479475452461405473886693305975930957220514188783948478797488358869659201019626786688565215270312545363984012160172173489215599412427587642910769307551663766763504247609626172713294765221718150225416671927443558281958828435791443463525077535330009061286184692582883668901811145438146138319840861035297463998824409959101158954456149814578541502770560016603991062811673423889691066598382328177330422319181053390820594730822283612287899750987190256750018454450383139771863716117838189513577654392388325411247281999444574118234783061555324899439394949236281086000715217517530891935094322636175957410898472286972435913796987877749932452873286238427179252444924003013151720125022610690367478148915782142786584999112558175900748611010498277153173353174080242241527553886069254545330945610515154077755311166677208559503320977288592279679924718453217955733983899154526102837735775286025407261840398486018014218144150003156961126636214456365502876087209846101766871269774337931126619301659577337471366354783951552865067102710641401310623457350756236101486468521904011678320611706422323965354787167982290273555949346096929430518420099183316068668977322715791511312501736118989860270318390491302314671042344332858645443793616478341798630749073012447067041528288236458705301454740557910764406633558514684860664900440501509535265575710323836455238501236643608847297203726000068771738985090320077640587426096636556178508075445208787248731463461258838676098455074100598443149615488733634899601767979937750157268540731331638244044483885512625693547622060058716954960050443862438191716853328074426213340885680541741919507419994214297631115775819555070318212669880753637584860838730135216860905905722981614339277338103301282765291413208751427020859452741100030457985085510543938292889346704121746025085598571105853935925550048299048189041871099812958227421099161723751529507593069224233602311298768068514990078730455966701347633517532628850558109173206266905560853340676755959337734824231448627197671668311278488395814209031511861155649916246070626098414391443809681808096976532706164985766372962872605437984949695006238174384039826663808548975357773647275260654778152627349363541554568105429889154969968406850391524787848051932961143261328068640572008813235111890353646795601513460918091822315495933222409273563954472413937897388231870365264087718989600044636333140051887609914402724125350794583405135367214065225416100542339674772989035278758838965527749179904368453774899731863439943311033249629368727481325597516692507062599106470458637761634826032442744852888732143112010571862650583073291168765529631620153705556687151556235609411319184312596935698028419371218456257456191743216580256445942128172283355973889936186103456587955812534418221333310302382325342904811051474551317564410688268920100117496379710826505154688277165535813489003508131237812320722819735433694996792091308898140864888248369190480126491938251461099492510499827948879065024860564169389421120062505630156173416595910519412968076229160328633224132517242952282507542524144463740699645165651920704590808085920457678636230097791290809438149271912281280969881950886024130721815931583000241450121082547902343759910276800657787248606197914923691620041421418289728579996414319135109690531308501091351175141635417150815544882221805895226454517608223572998193290335660611735662667390978218859023803228244209794803449315956870126000037319693836936808717730581243910397950386262637786206080593438263735773433388373170229943054113805683544105198058147480497922045884731165428351278470669615020977674201464961148942780498565024270613431810103289416781946409780090620386397850759314870835903142840861777409164269685099397399140267780909701388848741696582169514166526660457992808753305159828891706197347733142995117549460682657985997867506411961239045351925433229834339975826518747114087158436601668629960263023319059977211570059425786408871508533075115772169652735458491129741593079528915886989663064189292398689376615082340890642041853777624508902074428380860154003119806319972646403910562991048151937508029729057679379650668994242087031150371406412279409642637820659125850315439126096080250588570696454995761744899323944939758509232376932246318374584592580260256186829952438068645316622964098328221086808062992430421110227576995325966182451117491375193609510411988601483429076359692174589064198382114689640374697778902684763447454064708069825462106570154214113173611629979282275015764503244102296444019796971475192475021990884744351307019588520151441208387129156104471588467515318645212876140347787884463618872968211282707406656649632285606035181125419156274735966984249699257747618717060684753309382939637129670569863966372529472392685549278970249109487241275406892713702823185404320182704222930683501617061134904146263589528983945484309358841169114762199910925599536194074778506150251239156345549595436161264965003218845812770427421462079265982243029581769661108077164014146833952783105532947551289793668097676313210712555436691270467657216655076385441401422527907076479666036997995179180525771775342061499151247271641620025508637075148090108279075423019102749584342182460650935502463424118029155340430667174055022466731019831330561288633186614013584781428850375579270292993774011502564647067777157080404289785370792304043636377318988904893432073423578077616566271481489634123651604142756888628572535930083581915253986287942479170252043903318101271931156806660016165193607020569593946290584307578872446611938034420377808184805745879444405400251943205568582255986707434358798707653124025725261652198045398112644215904275049078920232131984444450682308198464643062878107618169460219993460982750973735604881433126888397929869698016399772695045655273344916132024589678100584027697651402432676009258630032757635113679418332044022063876203669923250132866934018609875059681376592573063217667848389738612128174068764977331234938445369744234842919106615022981902987118689048640620554673717071802888166398280621740038846259665817138518459726995277621508372513521257438652135554172469840144311812638765286980980523993941132502586558569077457778870288014940908951547740411871857938602236859697267174963225093584017776599526928851548099992862827491154526504306208168723956454334794071863620245240059647099651671921718561011605161409343713781480447083465315449651634220682717139406641552024246482548328104284542380796194130188166743483956052321734797874750239029447143824646853041315852188271628289125653302992050022172249811734196979870324621459669696610421357152855930947047676585790079778827808876582990463580709623979725297020405386051726419355279286174490574778363511537486870962987918047563666227578902005295901386392284595203534773661611213348010754782728485086610047746159775527194771045763959919246465689284966510838181161619858983256543003499573474226412644463797374368759315089378040646828380775720556456830574898225111957974121202544530300001427129419717944589142617680442821421294511307637583100055893438601571345625719321147765169343072560337966528600133790032317747389333090299877199829498649586059933597135302036976010376408601537836907937361407689695590399374268139888102751496398925963907115595699033399670688570368295412307808829638648511010506094761985093983258688807618550312530683125037423219392837779716287045928118952603892566431943052568953961022746180979542331983719541003844236076565597038030245814363001429412976057645837019337025639367537152021499183577988047342858985358503104682488452636984209659901644052569712127462866813749806500092791139525190614459274437665705142402394487572001603743319352363699863181304194215968781935215197416659715746516947822463706773192037661922715596966921211261185878359528686825844684353456837734874892313139245607764099050101684287458097289657636868425450855017076328461111802998101153257299249812619571050752681596398757041830629163331853696175865498595508539953520816835567023570211229979369500424662515546488498392006125616460189989733446747659690336799335194518940353372615378247205310163830033017196213091459092453731354500557375836256647143568248316586906418344239883119896798298691974825838153069201739275693156542418538747417877400126303103359411013644216812244617916453122868275606142007878232493817533278878982909542727705232462905489928649326301981236934815532796583256831770260070649733857121743766462127244972061851253449886285637415178239558015588356384377708997614071461243191998140817657112854390997100870635856860162870024289324935484046709242664649494826462635065029767584946197446932783792228730330450570795187180764465723159346607229023051843106578180127406576833576464197275354307441042428613341386897486333717820861953283625131135997352670655585510753715577369128485567272093803381911027673738960814865191877453897285437046647150290960041304767458477872849815015844436128214336207733770513352347736956309004504937140170148232936823505047296996415236057840563416833783551934689459346099931834061822079569945818182804168211774044625537945262161653617280751443980695586655510223604211457878751114787326612860671384228531092508150706816141109896432915314230330789749649143011707873501106905891318411244698665423411284949846636971593705735564379714163998595476566627501872808535959165707871063600982204218362916646256830922830810150211228381140108199458382306345676253293747499843197687735862548987032692574170739986891365273138203454220114256878023021243094307217413610660357664418460617975851511620743231970243801044906967225890773769019638906273648587470934526217923141112512111246310364484170332981120921093904439706162835056795229520173016331974537245347464670666606363755862433362963729043492628617289400610980652908062283222887513859073917493805394578720071085895890955631500951458253225051216934501650769338460397064086971921530095085239189450019923661612475467347350756300284288400306703769856551673902126618674810214584002143466668083885413643835962112062420677284498662577621231412253833907998198185582131375442034665871559475799182117008521461083022042301920537944851192728457887618346031179347602167054948353278568370038655439104266219592765777442421677791365455599518018122956300618966339140514572182533082367583471052019164778852129687460533954615653294236191356494804010216191383482583142201749394835188207100592431591615053846840671439057575299605639196265206898394968328924712474420298129885035968890415254571386195442687559413956482028709680223056727736959842193127587938903874860047817951120938772259641773504455703849722064446527594904621586651580266828507648603950798191254702830014104790011559984256353117317467697616589573162237598267485020319318186633458947839891476718151540492182312007413541421801955885461718802399305649162603787457463463139310709239768946597592749647411194053846879491549115711031309562166724942840187237767802191575142903984842350206394622080133426674551353743642644516166620844720489644812541974950034396979009517564964661015998847716574096923200608731330970396047658706801730979841672004171899270555347574276824437245430538032697520874745061001978539719796495302446243378983060047101680306315595511840152476931470111884427829097301936684678864426690074768687011115473165338853344605078975814542851006529445713498770785728709124830299299129230086269225339594796538978938108980333189108571952577897415986197576286242735124866553259061535021171227577050267811739393022306881551038960480681377101919181112140030159737032094945935952496315244505164273300847222079556656310156887568588722989718258101722778439313000052699864403781604891048477566845263577061269664113493339649509272852110162267748675467662675349382290700980623901116542818762781441418767149730906870941178964465006416306153139000096575164357088345255578150152518981043321171584461305172175625588450768996666938873095449064845223372070179601029533289073381185019041148034924201650010787104223234462042579265403383307472304282426139861799564357164629076901567589270642850662788938739459135037554849880016909672432724189602671645851213547785217602541770234619505607136033729620891990386667717141945364062099299149174436895195082969059955082540019607341176714736827095159051261396301836629235961872942961351508513566278997663321106888407347161112134567140190583324046430419320826419715199301181670425304704580324319242256542577006548070584490113370094059838368170172592486574370721737280597239248635879527277091272732049872240978288710281805361795188324033144544077143478760305069075560813953214928136747283539144538799246072426485986550505124861510166235069900951271646101902835391375871720813494589168628850620437922801044565755172950571866799013640604404937747475960016662726387604549790541392926440588977942219396539772394554312516110752100815293327099218303413519587898351526240356616490593408493216863609351181102974788243011344352612402423869203630053322670112525355674557404609823748757783567450175930539727759050843006632385337889287287328034423965468228867884144308928403568129342307753206063717795696834772572721321423771119507070029159621415737924645566772242818725812455508905704094845549893261628747577971751305723685275400007654268744724641605089738892995905257759723900898311837507180857006318634389327778636445287107812118408406495976070746954260030243089188021728679457275556125531158250686205634275644587317891124289281355333329430069854904372437170327911327059723072106832572734627790235689006556666658111336151364852524051262175690575374353683728599192164027139190714426182646381019439661989096404817333769817375343533826440408047598740398171005777296314891542755903652554319094755548769908633436753293550464139733789777280640385684792762448583464613517495572731191272907341831152476786703057799818166103076201474301543075397371701045291442232066509328856782228480977835633396263508902307422617092567771902335579052236621164979683779632848228783301170966472453733526585406366063429330458724808069295511831357597152838762363858734575507608949787498677714991298225713883182355365143416905306517631711609011774374168853957790436882534457880857870651584634346299053718187099530278668115104175394486077868713514993933039118408586118409289898488099885198380295295762592772134076070277741577568111897259338615284960100356766099715252896227241092498505741493235283066660273906080400584627749572079390915495053648926972244834580674018264235187457431686890579180060272923999567281051672989628139088508876323562873179059937301516029887055218004257363659533904509196873483286232750846803676982368533606858286783810314374184882600458923797478662151338445588340041001769260409842653457906296838620877915987033906265792111171633445923095575954490091210547615200574287462578587741563322554574050520819449748457968014813351643748243065050745906301215251424854972896111070604912679913771488965075276437513632307904475968622964616304098297004251027288666922493715038926406527895256714795155312538496092150383603690151777030798074782639379339250769876044083296207774515714742554933003607152137453891047200858808794808694040903483344748452157732930378884533489317312897585692952253798236793218655496404454134324178369889582737727686222480406214695307545269605507881709566547673974668979787950295374931659404461359591574695505988655156803877395444125397825658808711838243830363808507136860480704058545704825709631397987750642076146473471154411198922072142704159062111916419616575197529335476955872176892254761192708673146514895616742930942719045208273309108566186827201795426400929006406063132701253258522878029378934980915533032729475069544530364513035840125369134518894823715856659101728580734773777265958924112452201070060786092291971192611270840398250614917438784038234237271312900384960793341177624421214516114505581090267544394548332901974003961412074772312517361215988622932986538612495922498828741627554091356443284894311221231931213322639804234419206623493294980290888101501869558751584104722453506050659369977741107184816782977776350267511424797606662843509592523844529746035494786885796196134718889394008307606335521811053910793531457232199537832514446712192175851921011510128717562019424949872231195197667885546173267598069955320819232879228008117774426320057258046404214297290469725425572184530840101627135140423136507413314294516274254645662368035468810869058971183721259001518169444726332831260853427844324314253252028565992315665082527988054213766787868098177381401863853853038947285415527340098747496215757072600154148003115770801559253405660841912412886974804102686177263324536138407802323269358541008965187589109061072638672818433408434256625350688747433912241645646882782078477701628832598410995329065160812362440378665030602481107512967255983595517409693613621842422248692641665843805999536949512540706422709849123045396440670849670115744886100821249430541531499355050073754630087311563629637920866330584865218977648965952470526939376451450197311901244722853114618092003119259917323160925609748239081346389540526834090414885322573148279749866535938022048782960634036717699420771074366028258200099598326142700912926477221193165789898900881686539922593724921192591151595016480929500570052842567415719250900483570837416910226248802240238671275863786979450096564869334529160647960911458611310726417360314794502670291203933095613925410591170939474817677587765167334881472547904849067539103404360183182259402190231054316475563820218536146442875249541847722103795068718120320367658306441256111812092225803087752777312879418618275598658208923162849336829153597968948011537398433862265973050086679782718085887060585440404523681436786380175993806288032069589663826539960023900399083426465755606877710657334775120837852556764380820565757694959705682377955423660788828489271292278287797842972075345152713444191107330345134421033538380596201367804786183731984035153690675747032384702120692414566789331072041352356771528038914741636156150981587602270854557012664488018529419339871218080317868850915486513014054055644415168335593614592123068402274796385963620302990301457693293735049761995546556250058656112046631335665976901552577312704310208527558972499863388859226763801188448654852148700138860180692559781791808717412624048558104484646526969784148034383198726765555170453415489603791525043484223733943253753936184240533917366158849116055914517828547665695202341116623983850391327806715527741723653924685803969680790158698523833910917860517010765119454328166119699656131108475120300690920350286428518892283094613070361701269597500244749693341212930055749902091634511150259225417986077329066820444856937205337895711014749837397382728729333791466806779694619310392104052443998479139443462063550655141667715355477476969710177586243210152181705722021106568272522391782754327419201857697130379085824969444875572291263518937233066117497449247110784267596253903161625625304071609341008764701477098375121174095128269469313543520835093611286936307218652922243165270324451249370859865212887344303778974643808172134574709955257986578863355908905442848533661192572835528688112480255605199704221596668711036982939750049200212611142737069917408760566135624916837184800754436477851690387561232878968918530084215453847928514181945928620295570900487897456896718940123883019550571491350764871973279142575418319535895875808615020900437631216549487748409427562799963368540169392485111663984531806487619772251915903891200799139949312926634426015105238952315559504763327936117518430154125296206047872449312846201417255057718560193052639650308479134433536533514289952188741126630371133462928713688553835606823362411117345101320877049359057950973120868214701560183223542189300357915690555718472495262764323560091640261430329491862822582637166998486471819553345818886881366602528056290901384113102674536791953179448096425395362323173538666292544393598256278793257972089210182710592179078512997810616748776017520759108413724607996594424771338924009262449787291700634082621736494541841963946957635762556338705237976577239847779261497486269181170958761941539524199026050800655527756273137067668259662685156203261110891490926677488633442596596453442514393332986006346154794633567814988847490472187825381963271503690528535938644511833764500198579200425990408567591074471097958142871232037583638958475519533305879923685744824947903869401011747870729758872670032200601151411705276686182269181344628492443785475904981051095488841589448101696726868900100502582196292815778871454354733668990614787677564972250799414210738186073048899242323889183379971015529210142777158478021411062344647846741124202602544365465262823102967285302335962841239216846165406912304519977483127671476794785770991132533903651472853698443214840182618611923995842436611044497710269536607076330099362630200617651710630216364468458575301156436816060144324271321889267237385357869132577928410303816148590882077195551355917491958782693494207524954897963641647923480741726105213297429556041414397186252445502736888239599823838964322604293798747902036573812399624139663358394451549790706713977869963058093558157293346562560481275038874755233647758745037417855924652365121841824308456581464180026963533524172148977123953734761152820910035475669118010470107669409468059114548592391071067982248942977028358746576646559429486153372603072732697851654558409007448461281652478719215617743248664465365294537942732885253102835972221870241466608111598013214267848888939220573951417022650308324807611631631323772546697669163985032082244361042485724389185131362012846492889494519404588705823542499821137287559728560317001971768807057569462560379576219934720051780337351021983379155454532060501632354989904180109671773029675911804797802473188440399447904501653057862202295143742387455465821810660169103285179202626247691091458436742022720332622376697124616151529164906677815741881120405758124399086676729406043243740295494658426843550007773877716462655625100786218944689779424920467321738616963288396389398934558990169977254977760562583690920122340118953198642928697860132796720026995349090547751693153479994121419541797593695409474665836570994176773575105646561787837711099777387964225327688157289795935297868156661888825149526623169791678798890277159591939033040243974066870773888215093652704892081244146157911456265725962268262202519147383887807801797376575323248633042622347630158029593055505939375876011917614639207510416578492785212424448488032647588032901194852536125189907861640283254032262982543996803833051037161751408586689453727869686752322612569410498061960441266480202610221234252737799647965519400348534127630382308712423204526248896577394160665474823047511392205235899635586284069566458776449164865424693391212661501367250085457328264230411089005977792904915287153312325421644783749969865114698769637381942131323899774255533140092619053049477734989938423315663799476283175195182275128292057903344932554515066327948458365430345627682358485543799523836840212535659482760023278915804957600349825106439459139977459909497461545301811804965751410093779648176681633875563029270063407665333159663621878783084429084131527289947562276800592819614886528476379835557734153433194143195206981982460466540459772628241059802338958827217773003147071499832411948611270582262299321791080373286462580966309203514422188121683195871582059814751159465562720782445492391049483256368179211091472961688986874381181597101148676217962794980477909986041743503253217366024277126338312529305146220268523316555805035551951450759595449594216349792646729543030766455938835360579275901676177042004389436124132589840553263854481268025096097190559194916266855961308378794189969959146602113696585814859471450778783667887203174150423953754246132154995408578300715320385647378679022478383204432099677631798323068966789785031033730607289174039688671352118347401186949629237974466308448000509818197327794673907018159476083685598408599222879662769795782908016757631178233463297585088230064141214263016289588011880873423045331846751280414328737278240304621186584298050105431830912981707377027825119371468262649823196808955682738556819379715232808754727174154031945466917277082575334581197280603742551963688293599756904508190728314342686792347983548263264066696832634205485125962654636740940131577712545440531760183880508805331115999625725719014407619446793196372485363349673190645588652185271341329856839344452274946951410524145071660780601873069524809386167071723296983552663819952136182507896380016788291040939991733834888798328879405214536516051456641663461844989618545187703078773122805436585517862006097472115855074935890230995723995396257190783762920152931607977875019840003992829436673660334122004837711076516830098604662124944582170539641728144994506569027630574117752526545715192616316574400460110231115575330903153628448594284647326057877372203842576429345821735057318743541700605679992565947935003255660909110986877614456507394735146297639259549133476165626509764440389701624658070240142996918290654977608050771197791549393636336458846983503994572135121334233330105986691759057306089651895942596644592455847304675282882146513217761795678467004308216105178876468245191159271189155172968297503674523239443813647873677283199341011513466718274278985295436322168277277265758133761506791985957614062959878404329270968896749764470136225781021837415475310400590587481869026724419023839015244160774813132316520370463029710681743339117344301182421013176196959522743399822970942672720842699992319074166178764547316506498173712067056222892859365698689056626627532740312928702399924494143061931396009566920181809217104864382614441494948178822860033113402358190153334010415344433286996652559242758799365276526908674376279165492120272606812001799577786606403484287617665037299313464327315509337006111551047427516176068121860772066340662682372019723964268564863671793811931394116473531521009074199289965332081667029719453352285213287304132256316767603342061885183780946247415938739916651577223540217038572310820112195873216384070123959347669605338799980195354660396711564513165562592090664803465713702727368849032797127866649779224400502848983759319072358187450278539495566904893272752258377093649141837500714659411907625941136033746699721007184250977103477376112839888484685132703681097277976514191380305752346886854052168718489097107196341692838505569600970516682226000480710281329828052438338533724178813795713583110923571643562913937126793178165822372764543308461056963658368433764518676655534852331169881994065352413768714463195602304869879476167126611786739381913660618980678482895665508297852440437569151237684190853053393992266266886398390950593981992770655319224713445935502397512212013474544573886238729688911066156929751996057128142019802182767282913723519802374306397564491183738238654134657957698627510149459225183296350431980331012496546684473092248644910643993304173121379931478148255463922374784929565989890107781150578642809879704691145904843964327296003228456814587763388204047014829789274421124743562355297353478325378258926631459696220024182503861755301574430347993190808628370894895124315459565212680016194966515478007412156334372601482279088759136484513835825032309396083431562578921081464484184532298511987152191295966176200527425227934499002760400046374836519633582302285157338519601527294458696613097422204152482661614412917809776873862369183066102374047548695297938834439139193472264405377193933400874558876690441363255412909189137326422638907806511486206081256514484277774411805486018216516427045148667114873706724441822483905381262162493268774641715328666944491596807085551454191690802473310739782961865400743187406230607318543166047591948964141418550330281436804312064036865483384501321573266900515015545436227082732438036685709354766628354595796197071023234856486290526428040732528547398089169006576599616057316546478206131711583746185182588386264867532862056885659800214467381248621451814125546885114962113183189189348059647815484767815503413902978102128959967005873799781002355831489695654615390876757874368183003112155913535746675682026254567337273010963022010568524893354032615474962783103999879482535845693659385142531464911122991794977074040970046029896642814292810129960314814618871098022297052787514418302801835758338353697779232238556685901848618958557798315642545127582348038252804851305446016743168781323944271134087919237911220780221645779800635908713237406025883214739398530428103976518630503991845098180553386650351660679791524967078865437107004150454575545390386462801683386855530066543214396794014591110517886694635214903115744857845335983502546939002315638389414797868104640660479947047509577811870030750278555624044664300420393240318033570474053284015788462334546001591527282858912402175366497361174251432570954993063887099055468355125008166466173502398917196326392835692065463499838923124355028602660195656485972070355323417128689911335787020617243901424096902660482662756662550364536327122014450481249750770128863784491089813939533022711711229359737036923395331367330122388375274079531343367631940871802087433539503241472139266698250135930605168431105192152921965083008411839900259911358367554919598212704311524898252987667828491537106659065583557941267515495858026344277115041155937580416909567240743613590343116397161810412157360421748844424534815104901337031014704855731498797912958666509408603863557887870351830820115961900321745044481179449419855056714995078764767530184778042501260987280097271330141188553135694482343643152151459914319021254190995064207661863437435010254630129804322617859797426163256741200036848647815963765041179109233486740610338259787638950136588470091047047479078101950797078172874756552740259875706533906696184837859049445799359030614462395877788545752960156845688764963364016606276958755748611021622243390879540491699768284816894720528271545840697358623753538104934137155566134262459677341541786369973289055470523536655060238338693830149372967483815321508926596301621253586956745363892674918328567433750523263517863908471744709920395418876858208242684331752542873006346820105818736219685088076165196292393018642167833569419443392592061770067674127981444720705811164916694230214140876807634765804969499868439854956601601214477157727331331958879162686584672982598720374039733981787086140102719863422139989171897581638579369988693149246821362175134367317176927253339877737174238058600324284673326550625317642241718085517210614906308448184187963196380912352850121803489060489406206294396409725559168576326533583405027712277881665607536284800442288305885437615280271303029211083029699861759342389409223576149508104522591526144758266527622392040895723295367369777225578619002259467706476970490611361359852216767343255313232810924463049006649231957849351521471663735038733376573559130733262880360088879844296589236118718144611545005679373033000041838522246062563068258029830746653544390476442699658055696680405674346619011301817435094452754444353498639961670498488229596688330399163170123099063258878934690226418938771520560329363042925643710210604716191815289374994537989324214315047162549259376998108946982344873892454415191795405183600624787286924245699248732400308490408682387092737652334603411189700243982184289611079504428613795461855797487813003935368363269376599127625197824768259566716920281080605419914136762493164701454574237371934497683641308771994266403537964019601551110433530925630910913676999633758192069679157631906830349923709611235167077287978270685862802669727657717287654504097407448793799938280021911197635938462299493746587410813611367989312760599086436085083095453496570642579668936417370202173125989105068399439475139987328981683844503475099764522110554869588250233627965369506707216989839512426675407721108808607169422030362514478510406674485774192757577885519623733262379480512492137413056498640152411812623511458858917074676818866896526988371045879283976490865522011220259943548043011992875467045348548581524938094422934180559546725071608395752382463433740765244824550791846919724022008693570683164196017240528433334527105374461256086845797874007007226531031874200249254713777813438874806480560532058300309967175538114348587016886597694136617402210127677710142360997705485700580713448290450632138109014742205255889927799802941815425561132608077516608580996279341054088484896361698556985992902881229515084305459454664997394887232517371500850353071243923984753733634114606446560762818551475657591221398449447186503544558902685762208738527861518310793982676800499783968262461927280493088848226535923328435130018323523316552782671320803310767873166586729382188506531081459660638011804682085309850493376937363407633118586322358028366438945199260865774129929474213039532065438430557130107166356849518107293434673016079716062291125841882267166332606364066298026697301714185015177797541452721625832393001438742857987184149643973217083828531572345297138405889791811913544573179367834138046297052733475280243219407630787683426506486968009220742326442996616503349573061609999273297680818713631466748292055360832855121270457786856554182665582278082500822445014757732700732665725906833930206021326797797390960938308745105753787915737123236121862633897367533460533351404063096009828865957374957429674908489408005794060074657308921463824842301924082097482210790971398055013758610140203831737042671344644584878476281511186138300212444013739442029883412932899663932131663175716494465603207275248949382632493237955145983103345261577056240481453023657970035111453094661713486317195765497816899379803327135270153662712890946879900576602776347808391798447534690302732504383583509061926591900157948725616609562988339799131113385794428405024452716004075404697229514345706232539778714415105586143309591174136775643337070810461915932127474335734007182316015758653442336668922261441754148919471174831829971678268969223173293758829945351930160548910940466497360659136135171056470727998375400098034435242607541607149169988976177583566234051698819266178560043557914765393206494067167705043903683925992577597575231558136111720651635303098760757584584358171345850175373068265482334150306389960926358857670219828055388142711373795803313356304274157590294376273333348771030696331308977128545679857651891504726975696289995523578347976533868152882384504175098937273434002680851854999193132172403732605473981989136414603108184182105040055843053850521040040280794979378064411456088356078832970001149895022902370999546258640678757275453066530255413592998653291846939147816565876530402490996794430357003559967881408068424820146082619869667455808513092864532573591917177182864495384654674665304002952721984707399884173963817867678419622163312155167233933002436157686126387303406529016196531448775862961264110710898503243117614132121023907866631338730991226449615033294996080961932159021919575121888693174533660974554422276337818433511132749484804261301944632403821872655203591765972006261763600031563161864058611630327332691215044156995368689264859664473382311316590013218834765749330087923367060994398906559318453722230589158150868444579755302163490959911043381871661642951341075881675698378748683365497110794902732118375803878104575717056350034061708813241871811826306951290619264079861059408334733733128747300419717648208280324519142857125527703700780344731076738167924605435460456484744352589892009300997289560711566842025774952830147068321559935630453065842334472774903253946544564547439409689927921639401235215612983772768112830290772185433468727110717173904391078974021861280579359175168295348575686144915861342798718666096457158912514343331882582147095291765815942594132685706134624736229456551873482245989223685204470325633425117366387110366524287810145612672939224576182131293674320917318170432279076623294155968488879143161088728388174693953620561768252611377989199870651233988375530992407061069551187985257380187565386406359380918941667777787199314133828785892319246953546634521068491192544252843303251203501372914565326435693715159988881258156748642256317943616129990778651461216382367175068814221206550282578807692486502367055466131491736441730481342682607208411637903164143447432261626304050492666673565945703667784067831484200153564577884879934880944520369740751342477079224604506489823535366023677187173459098554559804782766598324222846162261668407212692466929994332748851926211920214793158135866440631673009803487657468406288463574211934127884004050528467387856340559391760142706032203210222108039643519278784559063698927339497806239368806143986976463008482402473516568599162482480934565814471240881509894662524658336226626458029923394676520540300358344027193813836304032164250450010589506256377117291823851215536312727486865126224248946142718647967773747121775051246381921189275295361544932632872302134037938866007243916749225434321200196888351470320901067903609142374971099958730244334075634237825620146699439533773129806668929135449321342436440565409996219091911500738025471088429175267799022382928984171943963847287798071017066926175476040204999428854852082221621019662140980634655492716284680850273597016000697986833327674101108022141347502890398720876581016531545709295276955208086066304665374656516541595840249687701855820003060079623747205014612447678025604186297740541636877531859996457452068099743880182508294902541047921608482584136453398502503959743442654442145927990676576758122680732060145760368054828670274209025915147889527976556577096802397329250019562147727545882848260415058334788420403960475405160908957346748279300637198593445493861468972125450746470877729243014226691314234326786033760795926925183329719359270509849803008017096452996625900602671905009781334734217461056353446589615439690413946948306837612550789633413600783277926109028627518205245024909574460810579790871898235422013610023595949690939582287507771337483861655914759886572812904170465445977924374519470608812979331268823742827106321040400856024033343990158414508833936002002898686927280675912709069385088347783665237550816512305969919094824314612145243236319772183678390798575254135590771624846527273997620393709627505447948837371707339329757596685078302327594874956188266657900734363907692293560546068490290242441818710649479727251114087382823024337616197828658147250576658781022856999049072025612182916173405930484397923128215033420117049265884928652320435589444603581444745854412020094151163813612187830068801988911996112438239987621146170300018032440172587079605009815731969978476747599397303972755678616798057681952551806591693254418524724393607089291734281819884084387422846434470433938042811136854431384398710919010605659237537349862421136123335712256259493559518731138790964366066114244638681480210666574605280322482369249351429008661951512661561145576043158735171935459615017656710607049810742112506866148179371848237398668339446766384971258495109054479441087549471964902456567038229228696386141548756080681687289518169081148354240205085686707521455415157177507102880614575656161515021140811585341054981046296011366394395005842900736107133928035615638163629857573708686740260609864014537254241719334069856108013657344134805007473382878876364921893792183329618694695969234063568112243910500324390877917809232963059621267307800273789559164572087054154945639198085292321966481636071867710708237406384346280007247813590999879323625104550581764747570785698058954390897508691289837627010384660689110440519755019105945225791352945232820952080362972348882130894764946316179970374984890188611633067927291026317876351105270262633336502174816212858076915330550591097081354488450854538532190077542179154281803378940900181045607232863257617230359238674467885203512488745231958995565020411462091081953501080935062274218263265335591951185613505233384149139803337019919926188425502989445810200285722526371742333988287146277381772678452561818106244450230464684617824103320966298689753530509490784051510147043338780642464025556921797885132579294517171039983902529284671718169029434927420097904976987599624639553664567813424283894686206719698555008363987509898191834380564439268511856903404261612685978082888401045379206012627770073978217364926649806995770278757270755852047225614563773230274461898666690054803958824663652580739613405111397964400841227852487629520258786698005789375326332083199925507395864242273367016046111029237020055745755632036647310801378210703918458292942682697693800774353152505958469513856622595753375701304853984420569243461871483882200060037372320509206449979609765945177822001738896778740107885188492140152475258289589674550863504009235304040444733382991143657122256666942188903231086492607385819472327404954732633827700364628985026015667774851807439371340659638616095846444921737162370119921954057065190227703837976023270399996039638477287873739669970389555151654743085722559810892169881309162491865460838562289364122038529230794564645451956747925525503085310178898498677141873049689337226310759235621495620609473541123602332368768907586501334529392092041471122172130031287134335225227374870001575653221285440054177381935302422557915202001030667511282243174990817710196254321974632842566693754820996148728280233053545793726228342752852988807375175437811763726984987336383742764953792137633870989423701652629622111640871647727021250555293745193901935982382628411548542440555449682104543872926631271565476559114407493889864068375884992304019329758008686707385537778721872750455488865598780934042445874176618522013293960999381762178273248265293679917251767325227817979834350978780816138283101343991585096600087985645946092211076609154221725387567144963574307508557625901429149640915183770444367906765966632579019279873949431371443994196982204641148308701565698256779567607107721899892117046061948659764459200019160536083852204101407717342687297658440480514151495121573910044702298855252641194459336080207625499917582117392642575501322289619872389427092629373638573766468918710380768740285720774469622667873372317585396133687472429300262154908508779244628126738276194048805771236140460059583178282756662195026545192807613113388006452902169510282406743138638516471678533609231455243762088080976853593696681091173189562389969415609628485830638010747027603611777024454184161011654751375902060099383393904532210542777347212699424268356484578972950710974948649824155404666272356033133644606363346185129827251667251748660327593936695854403859176382802070962121545383940843323331403804424190899808582238951039442980821881958014711445031398083024272015289357647239704136328341614651561015150141686739257744206416873837158684403858095038939809080447641907466930026452386863949794489559441424544348903874090653700387120287669778444712110134368990350228704803974565240898485385076187017442809620006298175478161913961135644088583407094433895313655660171763993985693755896616942785181568041569737655206976094946120234808466098054581577168479807760109431394811935865819390698555345333317904097196429739648578288816500760281615395308611470671971445681527356302493565058580796096244271850792200221143346559257808763809996361985415281543391239044238280900858786934322804710645051558399277530825713744793777405785744737747500473238166559425541067037440140312261720360578388847516740851283434909423900357015347877785070436685242783689904671665913083514096792444614817976543267680701815869588394375731449809022954652113373321790202765726899637437867500375591030806445683217193287943468436145540624820204283768978719576004823922772504504679830741859559652185967193595121236902031864482731486204460337202538577322192192733740070681812936740213354352744562757190717189514049887446660859285039219129928789061643169252150111867976962327280154443737259875224446947148620175049590999209754772974172537930515486828815227708293832571395930026935686261720518325469373822026377225121535538947332987184894226423969469700418482269658339838409792706419999153678143620545342480483302901555964920963245430660701657248775604356871470264849003356728742303100279949957294106098605606124375180009026005018546118019303476883039025111193080817360203261455857270281091988614264460012349322161702402116796237875182508933572746977849983661556520567182066841339621205334584326362242014382036704361954281501164347375563000659174036381018170200818148253294847166853597492225781203627719803894034525400655619214479236120773594136626215451812923362805818521315486891751718862500695443949006154524812079198636769145020821283052294900950254138203690905134820981855329001182808663316489633305132276881564990454771277694610216744982004629913509130545106651777396134626258208265427361466768858280628168463321866132561557580481497350217850207418084203639433412950461328328369341048813743818874240696894076953300673248019020839270374351129013194154125453491938990145669932174553917574792957168449917913928201166517799742308191572660469653822613496519451680945559270164517599473974760178691934367731365056053063983342798990709956177250095349382106435106815529888773591302675068834366069744243250470165067368306801490117645438007945284166869784848965008190545022479856647441815863410398268586282998324633336264452728954155837559541524002421263510024505430776405876237456219963127114758189468412005887710261700615176739591649280566524105202178233711441116701946699498481137550918039476851633268303214268043251883686600894510305024542126508005752535727614712069345999988789175937370886115401998227158135064788503584472087103321495295053213752542199107065270567139135314863560130444501288406488857937877280306691959466913263831465764726934749973039339080101221701727895583981450448642552799880821247981142290283009946474833086764590465002167512567721562542638218159724464640682243087606906021037072189444403936280841853078179482670868108159661588610730794886367649112301629541506979994542121717555374149412411785442536969098234790440985305592043158131806698884752017438738849772646106759579646973062224083299675029522090006161596681804858544096242198471027257465476955450281103852404108393786064636163113080430028605434372446709467173146711314355722036866854883741797559251957325190524905798095963140941753332339286373957825733701458760166509801844455933458728315868639765148776806071602790571369077526768956750199298278760893356223109313918418149703050883295334667198157127313028099152495462193375905037901406187553051239300695877759453939903764343019211440161133607330816945063356717130977614528288432735062201771815544408749610329973131651367066634397955974028714336390488944898525048507036045333501833640591036319532477088710513229165968068454777023145243566919688119714231863074979846394613865704390249942506770075955673401433078362903226870274216642324033792571139099817113206274829316204949032881240583258035515686128365395937177848298933509915684651195066421299890784685660649158525310754019501710795295515291275082312083427085328838322238504076211429305907110289306901939562266639951251407438511529964118017624252709122131068773147471128813905071615035897222788779672347697672628132605112514542706144114462093878131605239498194359575103751972911775655779646335994776788245031473684533154930009006449452529985501630154567382860927244702955241983335620146467085921297606351609246747631107711661526887430668001964743683984632892921442051575767740631546608788380537855473639665559573292388944644066671657635602640492607854062559583340410753433207359249345875954897317537339288029245426418809599325826521243576792888633964014505150062407086647293638571881367119263715377016526197217630550461404377954316970162188815515289488272854098861056585739294568211105879298628987931930655507952701882163524064914370116905199035841213325774334172440933298992514501657135157755636569345339122238500655244052976910087188982486163671517947269906701940435083802233803486183875136072769683315073724267437252520223439276608071950908718783028719974077111699128543186468983357363912136795485599274592678002309767252874667699263422012965102309397381115059292858923731670453624476684231733968089137808325947163495619336721604325029078207586079769141324463355155229041751837875048827017674868904389772929483787739939837633869172429029200274856159824469753493086068620377970036170778887224395493911766123719462513298555398505856980225937051118712033721554713993330778109766790802602717629478721657234328878727057923400636784153163788981730558992473167382449408906315780715335127494919990348713717136916943344197552752520657836839659898402860735065382146254792024054289253776874275697363441541407418997583775415902476535736111118305262728356112859237936231740392804823818220750399904892839907169450554077363242883790077963716380963464575727444745862417547490294414048478874360962528442197185488561332101801551061943471691312434642680395328688150737634614524135774212610902162140600882287744946223063385158428302844637001848253172261955112664299998211175729259833122641699574682407542865030455107007136623130816200412933366168499305590607194160212950305543881625660795862788061249539849137716900805465197658691382444702298022763809229127439240643380578317105555127688311610513278598136984936799114239894508414761338377486519269299567743581352088813344538013566180351831959664733349429432463414493256209385820254846656471240611959162743466509966266761339776647531837840746314324934163911925028347488098174430419093466625195279073489858653032708994587621609603249122916739818375199504542696309085201879926628277176879466112745647492634990655411767233023270293164151242240681431224078269668881265907258859169999575438761907994110289061968765791859893187999417465037492089777982666262734815906187137467216783429053518332014196603098475236236172645139546813755745945626663848357319418053008609601054713210207734627041515543350182051356145125622796225167428109519898635589134664343966381110139352316087252735234998120033020861048086752627515186811839791259121726825916697483616513745870523642153198865526014341184095823943269747902179541747960560595485068146224805499132178016142953048625308046249428594791618280424457753741912372384494159898946274892433940086723115710327953875461903023615464909342112902127628548462151978295808347086222263074238239383874359158769888223449033206632611030462041971627755116990714690153322410743630984671653330584486995316955014682710038167663869518268981461626966147465719030977851260618536502775033783179745178635802657653315709487031065180441490828068955766286369577727306452849497729329335978260255205811479044268312322986961106085207624979278252845087029107747456498380440631768563143059545154934789162632252438604235619446512169947908259468563233679480273671750776293651747248472361297743542992101268441852310367124250367505106432220636749138385048576445418109655435616323002301323940255202006200973026291117944943407622693232065535440154803623782973622667701856193948523818478686999566200194122245915469269150822183676898810759286691177162199025736544044586290053515955858425763188307908136138625117709637007506489878748300432581356298963201067872716902712117914369849045725532757325262505953005244658671674736026358376531798155972432236822260752224352307968476670641953078470738018390208559652953620354117381976488524019475586886826292742828196831032646619186420578807892600341510878364601875168030694181996133909561497999122996727109198496156923393520477092690085623226232906765003327758862214535968398713461468087564265433367570781765387896592253459709772505694850180708936854720350038331075955457900569314388875085969720500500819745313119992619955510747433656886574739940640388953469352610230215693664782070308787065889511275879199768531009252716539912779501159067603392270464069067083524841676380517468631247185424811851906592178088720722923613003508266353989712721051592021362617511564525662348379904571741846182007977424142547315082870602915589233897317149786216212118883833200237925236891079918915879582656654532994994299623178494778971191420090686200581604584548415456757681222652892152513837795947612520066850675761681552790696711115239199548952599006906377774154517474668134948630219239236596129656865652450712355857955408092877690406433837776296259413700129147451805917375775671912419594034238480358779591138840503380254616824113158577764014439568412503160745495090045261960584986740546188320755196175144648606796637381789489110165606835587878151864062493503180722287812160091080151571794004685132409811595951293798861793196219683271963568122003854703655462296297840735154921141458246894478746650518953223508680799737517939764233140531639505502871149234629300162848705342422920166197736165931709175629065632092518220441762036786243269092486145963712126976228391918290246618295770557607225542202305835842861700729740671082111517652321459959612560166611186164357249274645019090841577424451788248993412518891051287994457254919880450518810024795636643080533575504364170194756496362735525913586523686415240000349846016547549401284062500522043507796487874597581749483983925130839220545998621275981302294199159342771631853789083094650520236408386103152292712886226057486769460394924172935995539895979360550280108045840213819482869014341295426870501042941696249961293955890890884996490938387957849753378129064413413619787190072968571150957833362822702886048112774847572387605771834046855921777070126037828099438152037837445459749751140734116981824461219394861000115928195163969115955092115104224015100315533549539219403787758108735976091800687983032747569501504021140813013471540241051535730714732331822338245552849907001350392935329269252981507473988907349079166640891524594176477784346992782191744724827972020233400494272848629987459206048371653687143952152158949770338415352718683083222785392875719217523974149693737938367283272564672008212027474505455563690285073103450465838649432989560772277032812463200922106593509378891413491174545404718471597286658538837633256548182361812203220670328402197504145037779315088720850045892874549029905150528628576828270821552130458554794957324347132464356766533354331659011096221615565902872334113787575403803263994482015308717440147548370852408178878733665670128880964662955482105931794591478796710167365728529284664802887648644159929467868094650025971028519906333670268742466781131290346189886356845848624537906476719671837125879393615028520865179473830377146560507331229545978240461397662382909969573139064093957246866583097665854289176537302102744106383623578807332579805628562459030307344849579088477973043704383207321824009755236714607296873794336255859103494804425805281186625539475752345132911463180447379268219612576211745542484883356511783340051345143572637200427209514725053202869498150511465043324481305258820254077333448315448296510411893978249314929512429605867946430488525781517357808587254808493345422110747783046960574689365292303525842573376785460113261349652924721417827105490352076484381027441530404882939602123051928233107945294466357144114542188096930904370955874629550266010707451493597464921185761880984961113465403316401537172024222064869900957924847540183822114884579078580720296253900546798045914675517097101736970128685858653110379695596085997322059256780366884843445209685198259855544709610976221895619781694382023832267842134533921525723212868629214223457442248793002180046087129563415382133943876815394217533012429552303547220785631383123351953824835110783800850933597295352229836221068783312871945806691759011556832312232298985164048724702170598454689328219322749046543471324336393281056558233882304385456933999047187141088288213547367138380364826840127344084545963465895840531506162014049600037372009784057376487590125782495471285744838457964583937999438761516050284905037104651709615744016156852293897746175458838830472038829469500971551727316207207029836514710074746387660449763469646763693481775063142780211934881627305577202148184096437449267002513379681951633174541922177580734308479489808718047179726731287152556684003185649871351160560295483538743461178693357714153849317550020442332373670753568706918460590241088489739483758422438242991804241496666617265619211321484893979879447392930262458003045099597555827147488336793716328549889748529519034936056131260048299882759587327120593573749023707582913396261633162032672889856284502364906627499411727301199800754568089239532490688595783333439536116467106732010922736123626359962940035038108043777085252493197529547513964319460179102648631976155077484792455328730545828412672517324552458996541260125063815495102502104819713479900253521346659978377743205466442970671611888113016713814087134002003813980573182540742515423595932307775281239860358869955069225281987166737246096697692486411747020452230486168667280586542020084758579977806658197410764430075255127484086563619635303392297476158453119796763372603662761929811332237481114957313174399860435265038620824688555792933710236710102514246309422656701017184084177893960718882697443991844166222000849401451819264831578795706811782927426716449602063506653261624363114449358319630475050840282637001072191117708516474262534011626809429168630821749893604962277536626107343890097063602529885113675942822900434474688209633679336945254812599040291433818246376322142139877975669523720596549362613260313715429721879088232137606860442653862134761352621214359722351642733256081590048169977390321126001318224873050586427794126298936629843318836297263544581279011297567634402777244123473013050652459801347227835402029842552324819933593341520205311099593471582002394536971990321389987026796117688644409402488637361801099703860502653488298868917813755608796361233013284949192792585333823238347460605648485150364721342281425029441321370533674452658236966686324212039084692459292881743538302169811810957729045818793743737902686513998402617737694160896236866313133945324165791646197678813155052502602527894200528894260788970041282589059933070454620825323393318127452929939954815413244576563773440747951291503701733666523575761041147490010895636125128127729706757118795856608087160263304952981192599933806275096515380079249592100689119246915404761528990750980501146412339745136290215260274886196235064490913521770308990296601956213466921135462989819541815116905370719171581552299521913365283061971028626631686244375239147292205657354940529494016628681830744139666875549358885180059905040152722719934294550951390202596718103797123466502670437565862297455048860670670883097433383047318859124591094105877135823004960808576805395487702540413855016117534170123191114082490204157079953351414808737579497827878214142623386112216168053366499946911360583807161392778634775887151954159437994816121671107150887393050966983604755937457157708325248533555296819981626036153039246952863051373211872076326495946707329841746652925895994411007337590434747497504034038371663204495379814405377247259026692433880996064651940118442957386505774579860524011530527118688168193714705734587794263949858458458962245691159325553112801286726638326313726333804725488282003732035547558900207666744403047136108707546774334672417188721546298974366484256389785865254353428306228705939453103102451661047140524342283339021897879063598377493407331999908385534912386250621363619085094849525676217191823157018586125183132954889899286532593278395032885222685653320801616520071344756665645482020189155785947346732955155623252622247128709327114987313309070232777278730108351393142294088822256053795170349588767037587336423806531601020635032863393923699669818155921343415536347315671831024131036838075897589496907329803457925303020852757253757188224050156522621726412497437729188009676078065403551247409028338921404118022956040075921928184682394690766074827817174456671336868946047226179433794694884631906782392257661716949235767844034196050976798268147044641538844118227219950331569698295205741108876344317006824996017183207542949078381244176566552636771203743995463139870701548187745141748441442765960863736333287866392049687696449366093269875927945784332924521396241258883997332991476545034750209512911792486520476854112673982557409887971249590734350035651169388608184942736721311284910760789829721276051865058011729081625785175141132513219476769574637621920264424901522934640576561965232450129529338689270666532813047368067334001700851236027761649049014133798336533543432507322252872525884257369718390093015224862652475989293593227256062492808743665942257388470210569838877817738561441144121684932248095548221617479294732896882081063826674235799521092892866335468060602773706663612493846681632614937012246882108303678481462284733131496817828459011348206573372624160196551674876422666026800273790454222388276440195009518871961599643025563565523502541379511040831836201125591928497706956969439848110866149592087629263674825215976233635289997565978703214477778157799395807018795250575531978477330928627709271954465761184990810555203366668392857008200134300579825611973594574593045415515974867970624352215892009278850347570460563282391314697510932175780059765371587992399207611827053970227386816595682355690408008937882166573541101561480260813017545435563267978598906232417176822404106978960158996243065706801380384757357522024393416793658128750925359245514332886111811994228852007296020008264950025300674753141269780159560012411067189580025920741115127555824221874941045645240228805906559547926248943537371074331774320512021128663098945516687345688221562552562590506395107333783933339900334913535441567344629452113681596476213974688356389092156695084260035305303396149512236813839359490014804666205825535089456711344020560302453380855263008762084103177602673521333965042864970087470296671159062073745113470622783603333098553057498683804043540398665269554923087489178157684067602852098791156962426861390169984972271157033514840332530535274795884043123310141529302396300657883307229438348157222838656771048748169732418478189030098221382585215578161061308737776258355323497058422299449953968115474217600136295261347449749308051248283587608171588241522388004983904114132634963596940411539327008847815238446048663611798089153921801299232035273764816483767969101278269147125477686025853376083323688211162583775845514933938643688267830756475856821134971434172421636039282255251254624167308349997440705769693228548147921249687530860307855430826906595679039176705574492646461287466035569346713065718335762881954627448235978830633435817384291858336197091971197139119839416739861706544322326393930373859226356215612658059277387992869654719691367436576899813125413817230088986774425202691914369534707476091035081821170230805874765592057611810814366317517355353595555181914997762387057678416643266148876432681177021528528450046720066630338370617724068027169274669839481475556815864292727521359295706280312185017738616269497875082557345260274777003327912860397108486119517249771747809385494477653612537457711520950468231609032155495696758979410910383656008028028516124346460372591754427346458802655579833194244137765427071995711977821451353563730763342471217540941401945356410422207559551694767761305886165517471310964251764988073043078857293050840423146128904032218960492378617269112433845436935420750280417830362593253527860093627359140098282895449165522517142541602367362037221206953616178139806527139003720317672876459736980601656253599165062710308935263847052690270381858451634544975394798402147742675322674363742073775775951012382507685881370669386129371750472984642338706423120797014636963395281272566603849274059307350402216070718343359249423318160555366747157232365424292745424816944593611269371005863326599744833849286284498344900815161324696029711886102131339292537675735660838159030295048531203980757643630225608718120459585233048613010749539713630771126550460949642246747393013407372809745103988792145407299902014905214389747708789360119287813247350652484038618670108601719147657929479389181399943097845804391264384518261676303862046695352864074771678757879132983527810762987168166703865454823752337089681446992573552372129411400910628018180706982236022306994604223290333901961258086274097213669188179945748595530590601423612054278250397201891558591307736913181924224639358491369181957351840262406053271025797011609424276421256446392930781268631994155134511878576866867172443069027009876149774588169426099862823498627926774562811519925438470983321663920291170601350760855522187307941434654932093332022711512075602270138615076882683073770716555534076963930326141283523852600623444372837118763630486783283043113798952136508886780771933783573581984450633340243554172887377782425779700610157997680666574514547742134362256569461860645162437337842022162151601181840780312265782436121852389007916252994073944001831898837537540418581047708371846783325334934052105679928968008611468850867592321095877657484339149375240207628694218794421640538974805611511036189840452102627207271537648029906663247568892395937847908833324402487473884305419125810754178097098001381854891010964374927332105942395215054520006322247803362390387016265747395162290086203042967391762957994880000808648648638538784538580680506192335511042386991061833935080353546891086260371449125652116524300167003912797397566608471987098236809404742603060807352013321065071590116300788314982808342053899198144215387511561179487180678391635396158488044842153190562782922874760623338736708879057013388691591951491307045356408886296552810799837357393463035878856423878384769253917521902631951107393552302869611647706305635063745417967290996418431963737007329435574321008872394205616547597855308973301342753475106937290077173698367167807224796507622724855747772667203105015537880484662418869703324934251734156185398621964641712985457801893667348283786417974282358239979873370652637693804269717950177424525472457228846259027761778001679486814627177813332675440531986835572296983705593568210255581473176847713493012004321077614977407470143896285367034574829210181559600220407577783006361981714253754133623588279842293693983048446946400181845725637688524539248021699304357103778199465429388605493893433721909458440617579598059952157455742947290209132255730021295552516721226200426267272590561943968384006707241234719647992524979136502118979193799212182788284978582753242978685350415376884172153297261555235473260257712343407517568686521452922718828403231443083678192150312577356688580730175916556951701661172223079961121319043030105159448658457886531456981372234389143377063032584691900341833659473761115010167626741922440842110863933291488682909335775997477912753264355878272543532992048016688169981699009096109262546010746083551486382233648636814823385672809157209049636531992496612647978187652274281179053090876003989262869140539827556839636749163650073808871205628689931368253603669865953680607408432386430505473580030916252063992699619419735867524616863377405386672094602367521875443559269467916017200259442864422650354281658266739842489300859991642072460094147676366812974813492308576966624492708384845143959588066557936574501437898479585966035181709050090651033723765168172082305227753624259271384355950958606754166481538447910977361816352272942490280289251275288995959267968725489227083501591794397865385545320269582271237956701145243707591603233785149165265504902963584593950417220096382452325563189044035655501945990859562985053386807470946335228378385096193192123100651512662254290987030595065012366974830565583258837096141643073180175687624163752841881836809918042765425682086691112034274400184868816078565266015440203676629152477284491943577131025338630379299447930817047675879701644065493217140293157888157224949514880099213664507134282679344672877383291834676960796361552863678032735070872496428965386762795430571325850486508135348581022875044453871187766828273360276140808263616713419848523802636412987715512995872628513106027744543013935863549089111341368503273480905750218296460680061693652388986167391093291986679147386661870351514412939334171696168108521876078535636481958473056741997206858777474335433134158115133254819348788441941268340334365712328286179587654900381038997769770121179444345940046659247879418589332371406502797585363758835388369806416812370355017566802678298116201312823432841412417845172644874838234392207657146486983503060559473219154946667373027680445712089007808748245602385514552733081304933020027299648768943784599822065918280812499482787685947468772754357359992355936484311539478395335988961068202643101837481237375269410042057759165116055529592961667210488597161170408315870678483146213658485227790455411333492023721493263049812428588506998115817373407762981593919748695606015869954336319271814150166376133821940590944017483168683595050360890030704240026383853774610410340190458072568465581571817471228624759039104295508789081644600785372316981375010866937209429111578364161875406715640317286477204447504489594831716457783814929714233928894449516324322356080991057642645877297519441648273176934953742458867499398905582623712924158883035331927512239751907534458022658012801754560559046452751701421941282186576893076415203026023486624162829353761183069342500967618812084541202610715704320206176136971444922812552804419379213859211203997074915117839916656596573966058149051029159484053998740348765776538408862048220866245025165507783399346623340722624085210286726372748514017643891258017316493169206564665110435806025586808363932660148274451093631083065455481328305810537241825382409161153731572478011023075197372401974719662150570309054534912488193488186840839669203385533337263985915613168021790728709959617374036408004138482229474393345633616695518019849468764205295519278495866756171984725453635412945017175392114663422001298864470152313109656364673652732234923861546763446167913115093516195003745974059905138506942294463007772050360123494753022247749139819069052789617380867053545736405103226453721023657888611225500689917930119221824662514362928199975283372348969180939426882980820931435418755180140833574588538894092785504593623973404463664714560206984428281639385316792228441237074726163739253492067423075429595513614871958226496089226664466300524236663673095041997342240222765074721160595688834238750130817613010277938021358062096752565921951473776918897567216881874941173963413676759727809219873170133533179863715730642458036487172404964929207686258990023431517242212320666872686320725044683766881081213116543853586250143672545549660932633544355818859075107187256564915339846800656494408222343969184898305458159591567308583444670238779684196287483280634215529771217356440449755555097429661712315796163946061747624037981060482267502442597667903247050899143410190446511249429471619210562633442050325258454532432950563733038485976358729653937845046650951638351897305812059370494044052949767516725812018703114593768770811388569547575053967303666468139048755062562827128091704360576806911693713794159310676400720945055127927513266980086114287046430771059814169346534088036887097261432267855251595068155675869936519144803622728474846059450695364540075710472568615739022585211731813496554654460944722053681135199329609530626284662234306066051950761369850391041751906883847082018166921980770166467788957217117163866941868859303053552370767467538731531646337710804524275021443823893847701028515408140339032819194353276631402736807677726053435927440307383446553753178046730625090333111516729483187062348475473805426122939865797341084321032076622948678468781058638243267741411688667280625080849561080133955758391583050555921991364828314445435262412250522116503207761085255184557495111571629344147961425682917217782205665416158599458356720969526649758633416124635794309992951174243470739013095136894661999864137972047806510356135953170355380566095027813973381538752982878642062760663982352029823771424192099942937950299569614700814669918352031688495976022571679304201486306540619100688504302047784606579086585018103235534435367939857030167005373652965748080573237481606522952553271372619058337341024469047595887268637398258534979637175455649163594205291946163835185308235623746065745672840658446274539395292261394508434287317301937150019065303123619069630879686921421266572093383023730283102025564788088282186636115466158304626339537273606158053921343568227816617682366696796572349099916690289214902808251579465443223437564517863847574803152041063708745059110889740034817314296288221099992509958251497654881887624620021112955276889859538189503320677480316320653370617497296533319141755512389869440336901101555664920682345427289920988469215769506248554670892670195461873186675784255342599146999216304534475068737955589222684990209403480573779213256983287811203782049407764570467066189746303924787021241505246295868088201883615389133799288894548985505063554703745460629385901890166741973335649477696100278377829443279615934106539489583238729775598103846725921734625277074009545770831212656150105873696710333558888145733039560503299084477071500509353227592021115813145296234814323084063311471903640433538014558349586921198411005268690770194797427484781184080397086524763619423588797801647069091519795855481869942641721992236732981405127114140746261948735203738018123863623002531729008822825139517613282235605123031569948321556716854325226970524575654980625589213742197543914254152438280793751708045429240989486146018991060617859832864236274816960600479005173246599896448721700659237326954608433734692893445289555622558265530080563493341282043545844663170162727427370451025934620768156798436179870698235203038018814691671490976154359270503402557396087421891905224441380793398414124195433442484288537883494024844840538261715267860273140834281334403217767726389247241811426416186616287606011005375899983806703817149649974266560100135354429938023398335270803685511989628987618654199125924564854034617251308744604721226631169023251299441231233856525041965534509401529747696025185138706761283694619198641134459845377152951129097260108244620325584988167776021263835503767806355940928298156784737101645688430120445674968970651168853120938487030036855197629169819646450096123360710425910458585108983933365690411620675399836670310351099482266173809888691880006274513294589501777879051094184147774646537575741760080859676981175551998394837292181665425708500022802040365098103466706150666899210200946414029279918594565918679939952211279593323827279493521064593811319341502449060278267443449030802267189381339099560945291673941841202911541834403775139656462818578196005724308073278790938092577090828566738558868157886645963496675361431322014663654255368582150306279393863977753351410633177003079265427521755511956405683239979440029137555532884842487569146767844123498031427702911244998376844948475341227584188473604533987023301008312886662723195108158018512795085432653631202632754178295033228731206418595646346446240392609515603261573355112692346095885613134521952764269857418876728586159652633321720789800431346182863545693307897024728332583368247765371215987744962288259390003397017943899334904158744806493542729345606060543511385183987837659057785938646895551254222668666706954433337608414337437872734817197564024095074180114870859583218135725951690645228974250831643415751360509838907284359495291154049837596237942295464617735273048073445472503816131567942291624845880092407786984813564197505958497260161508947508684664831203270189075573753363397904257969915277371748231022756059737536212872056287463739115912408437577197513804595477350096088859937930685090814637242269467308974958176667572177348392756931088850312152067678852648910713433270323814903056091347667484574418150388203277174804010973258900890443522172212333867151172848307198894635290414751286733682931964942770916487641161103465039861588073623513096484261894317370837332650351732714388210376246895792974837601967191893336594156296032220324404688165118796483315311505228991307943939232678197326154151060050508242887511606131951373322034887636098926400156195707199385628619041544558901315097900761262579769582403805770867001130505143021559080776716546390145626480951346904578547682993035912765013415484858786499712000127037768541138190858605139754520425788997007415912815841446424692220112004891891447557877454205882214400367093231449647205288487299988341218748159082972355956444620168332270175954532376969714435042279266252183616311983782714403129512700471378546769373817943650416387344194455976258794241202663764744132755588921492850072422108152827534073280434240797031822459098583411486432933518959142443303616877426240176268585103051752044380916725616256107854221175646420757244233567143575477110288985165953277630392396427604611286822112224847039545593179903723956581735601067729692852182580330833663317490713119361965297953135125772121254659739022421110263614671550801537145119399712356069141715212745347888490700115627259584645826900861421296200333806424029235367214058562666318323242034759523471558148953886164705303935607134680413587589591018931808616173073559583531008186240846864233697106114936701708813677308973413476693865564029940660649174134784002255454405158085302498049282286280553557669624823712805587518974825219829867556211428621360031644605386915288918944829559189202934053152010929740469044840827312487994451819883778596008610496416346691173800155458001696812183716736064109631683653829271196592499919981214736465606787327400393453064221487021328841613269225236567114559046978306024280100778797399026489772532826300839505019612599238336262871654641584582386104161303804719904118685747204332734791875412993992103218439416013474208874517473859377523015253039929903979207925093763564533293341120067509425631814195661669118589682351334452949708535372962690932677301596791411814386376461958677175589363719273632219500500670272781833343109066356907892323376424436885172581363065522496264840990592951248122477005287679790863048802264893256577237724079318050193216514364385707031345451457925075225788107333057929144133396533873711757289196604039058232743252865473752194584899982865472751774826181565210953940767039207881855211437676772084418934709730436736352595453767383029152596632713190682863685372913239886086341838298616706127029410058877366518325579486174208753927029515786438550902711561031487860642160892682652892000644154533488147466837227835955188487636529029959525202192791851704102427016129114755725234550240879680175289916729859588581897962128064516826872770621482039642872961362577171657578011795915182206182866659665959758812641339278157531673505616719655550163908618035959890758712794607065934201618317672099883532754748959879114224962029814353887897100320880172373006043122831882528001756668478485818800735694475271747958900335392624881024172030751066337749563516352523718788745676956559419422569557310174560138351533566803031092782766530699470324854313298620849035915246614941071562751320396432477878203594227515001941261262441606526077652312871554932208863217052548526849370474056844427964626030746795763383244369536114536951369921841715097464153314901629294380368666945159719033877490366887768651375430864276858273431351076858247680782994492862637813902987378054072405679546201893921619531228590125178256520902120631032754986942920226929828281996042806621740482852676053322806736929832758644612511894397631172906149301715393402330539978803961270674873941451925903562928978813215814114173481330457792259868652022294658927917092065503695991711891300199465009681238990899902350431242265858524209880060138974943401984618020999257599956149720297141908093411174617301622244261608687109673558548481027411471264240330028225828003486264623106380910928858302466419767592967085256388289090380604367204836393262137247213252163710375201495100934137226685858056821372974133111403709677472383572276323813820637144060614401511345186495124260764603967380259136231380576416498736330105753784037677498640890199650276438309847038320687791614647736781383116766862013380261627153252722763541974677837923177247793325231530078429809035810799787118654935054161967545814652017256969869021373525822602340587838860815516522428465336161728230535457690507728409638308033336219066171256099865073604655377404310473195864308750598227399098841737715245583092908920613474867483850576338814018868949258342497510216354109059782395867321643236033947414230506039778118809277996931305380160445877197482826841635679307144834596166242015290806051066162956266109057915770668823515810041993761613775081766583266379646311339568516791242572647590362126470824573397571825164048735999294330555912098216859597480578859142840863185074838371026439087407593728214225174211293680820553404612059340419586407306675735826760604413031622687540690469576378817866775913643571213772427263996299727116003992836247464223414175677677080898999254618534056038027451995536859479006227689820849849263794010563120617542561257670221478779096031774646420201819467271651496820755793656687293323969288372526116030897025377177769614001219792759816500320813291734338511820375337987442058843680500324225392493367117734025437261691007491198018678342230924370189690619221930429196279092514704477247597011426999816162870074185974034255306325540930442537730650849939962029588117454639328728797486457517609490729128865836851774345424367737405979037908908001184290136580716298763263733410606890599112619956167688773676022516404401597220106142999626383791546918198719544697816165168160676572071050509097554658298071814785133120044948079652936971695240595206484988403789533833028019769448273643204678839506014051404712845944816583756206164607062579206686992527196343347863775827624746519423424817767690517531728554889961800543725828444981651053946631997228487355428774890117330634692604123422083102013501889767119687091105830913414527468595716923405225601473057698330550863567757834792572673698561636338626302389775162570235083337555874860614305189850588229175442331224182473577473703522996969276184474202235615878233792507268848038704853553273922661028399211881543886791202585359860480350281940382543688972722447832660868764400149783667906191839505090815643048063186531013351034406315917894165374853329364794711926308159977572004337001704434954358702476304501146600247426335708778123807718095490724955207678164303728767914331000146489944903120139856023829404310916950448725882709361125016988839462594190581867550398524522470567637302645443371644566389336758833295076238250765085876903145093885734824896335859258377279917296348596513737449803490106320093064702755079596442944134276628786298080680338957730872315009994338679030768477588448966856670234692843401064884548038007817561165836328490960555802508049017769966220717976597367549491462365382999805385097546355234493635837065807128591674651224554945025687886261238506477460218355136533985162284948121095497288703343801420941864298716936829982017228411040336879059961035435466045385067653633054457063076026000468493016784838638840674054893712334941067139599011275669821117335009933560661146836390886119303358606569439561607245360017332907210203836487878795154823498534813368427940554649992461458770168811314302943730554984936197277967088953981013616341070576802703079696641842968196108092230568257479983666251290506759923409518211763418602235800724942286170322322892243293429469514758286574078371608050451760139711924669162217035011407644941658817884699387614177126426005475130315301766158646965179581790339696495400565109002289585409407615809869564407410851000940541791053846657098443181847683086326160770244445009807786329843870399118212358139563102626075157318160360654248680101129182876661225529865054262810831973662483204193082700576663475313345530983208449060102028610783894882095327945198682063680177979678954672395719290363177102148490415880083272710395834650334885039951258467330292155388898287774645757156439067648387856259178072486419029650735623799174477569414908896735351279192397712696304559691695559910182951462155237940436967227956592360895429995774474056446065652388974218345240977412614474750582996209689677134901761562562380066533967167879428746397930770431780967998145385340399819297364973110713009832179230083786311951401120707069906480930498096440500394625565273333087758020482419017313338645026459800274332089107530352114209188142962810626823715718034487136570749833722051603470343228333496205505866017664107754914126222332868598495289590947986568321773640328279454433660744855777262243796788977782286986280264781585333877665617564455449151870459606784893541818185164970692912184336922084716870412759771308426080656257664310624858268138914943469001632803623023693281895564017410805589943690362365679340227111538116522438480298528803750684389695268978018726096905155817381253740383093647597914593768584770113105727001425255892028080127994084189113616700402496649770732665720362476764189608927011703369055885349047089755434774837630821372835969949777345591846505252017654628519641572008337320417786356655195373556840347930274700055812869197807601033295074372737253943090761583079981048942103885790914537244335500891469450300206417973386271164472028596440216021731006358735867375315795734052315129849063341845623065221306369932245920184587250012331448811753377134738213910300969191886296270714551389834548063438627521940680121070526190026976584200306962190769828668782942464232473866519605873602411677508069791209918012121403700656428056892863318757964328480676456324909295669975276886760575505727278761594585982725706096804865885563351061045217516432589415866271568735000588181893686102211514894252573065983229712417876698339517008278303327513486969977685908090681710299599388309839900493835101587674474611779563389756296302705024013587201970139493391755049431460526790441045111203175927882706007945349564282283067012093260872693663721001304812153780198049393224333297160806670673279606554133969959946542921244270551520288408151267072440637435825204413013260990443370379550166250234362966254305124779072836483327090513818265534240888729518389180933656110612156257964136547148193277560318133075640666494111255848225920861782231584816340504003313914959852621530153432802956656814293543912172153223442160496195771752206491884184123348915889054731610990889467177579375055186738827948364226844918111675189258983250942982814933601628887814760808712026708859309335065012027058330995462850759681478023916398968516186235909567074844207183125461800371981491616181445847755058323039546265761207142421554389544383105607279583790090632732881849289744954543460994352113348155132863238156538500495758427374069512434295634553746690911819556236375970640975806300318676623777514061765715861998496422425856743758940823844911894420500463970683674379170206375017080225245928760519913409366376656818704413002210444179301147632289859918899210672223316592254735756953393734038711107373495665411669925089018138809128698062118884093161163178756133352930406214548533249110629692790354037408360070727368208227144335144898493357442692944045300316854478443251572439359020167715232452642986170660069218470718295456754401001649979732560226567448205571743989971562215158389616154183373467189764275319530429855890222046739389314295037049264913174870237891222755505791465094553768708068362995690714797367227920885209980820089164577078174832700863414134761135589825004957893993563159339108060480954412962435865486668030259373602587686908538094453276676810950366310060789407164071661251791176272625937744303650429799581491129646862991984493438145549354878145019282845475675078647842422174998597514068333575996417786976988485433145502528166542152423196584623225220349189931587192979213600268400334023449226304661972153911989874647518280258813495909250732875142246156758152468692454249488985412787425030168781163609277333943361677423081145580441404943100591478519545382102752441800442130798203278232980644062759297456044590271418751738982324454573160598045502155381382757283386087536179720200605905562367801124793760961194024974737310877580269438632396469662654868427818337716125676060830711378609158456477431773126779462119045362274146935103419057182953952027764757705517688527144783924188660867319493576225460116408000632456781645367592388459387997721832495325844991323930322102069497372657304972992644146992319338079732208020247543250916902856846641981422313000647727330825875842910169008222789515803869543345707226174610894178269529374671834410229805551687473184795426186851859713918388729552075241265068938134798015247683020204836263387300368730055635890191929851537064956815319908930059066324486367257605753115780903134000511761016743101854807519064603705611253387402631066948877121387031346642660786988832001758218987056226787857902889045967353688885161475413595421234980685575574439898845004239364320846507019730796610509794670992647113560623699908554481666171920654113862641033106935065369392132551249854382541502324701830315252414247950605799536817249942235435503687563557842149314899387324279629077741288163491590952186875646352344194361550934607993725360165874393044085338143390708914257937474324172794595300929526052306314175803002629223496064877881925721072295374563256415725882192769572818275903217659200259819136718071940636286356517587981878751593225777213712715810273646459702125962669679866077270299406709715112645811258284153149064430037978078797846503316046455622857436487235478867902327870220429905619377205808362354290068593445758270278920758031649170347674527532574129997211791590366734056710355221455809092229541047146524877419167190575336095080338928961714210554461838318271788157894628497853539673421948852295347334239000345134626533741757719615746375154631622911273319219203131663199790222479937343126822277422232962801958289942161552225203365011715067371862347370727659087158159099240946736611744832072032227466887467043681416463902709679093380357339429255595648501800761683456839065020927501583283223646725684621956663014591577548248791714111240024429522901055945160462847365447096642276745181036874524022509959137752504108932911718498809438604293774957053851100560280478406576574139664540584956815086352182473290617826452437374560374274410431653799063015094304883158252179487911443312898023024980484685795529805642231473553113489768628214272439632658370723584126888410737819841409906988771980770931798763399662201667019010944735705839427749193210788415200305013486132521209016822084404743811053047169567692253511510907242424803255504556323548449752332235480813607652078549569665132670905038809532271160481790345257671299507533861833432931534212485305612754453275863751686423365930568543169410465948242335877649925137296665548308592776319227609774426643297481462839986117618790322129429613724432869662276972574039017275300277699083772491347428087389170736274609035650739509275291801939640303183772420076487415397322648280597643347894856428977853174720152554253734141442901240030895408726473335690251087203452962306034100162519149859644547681970993028666920051784238292879073435174960072150903371751404449801436641402304329811531071069130437863785417051347203030375714325225970988938239000921595636025610512478381252675695231419057927361429980354873209903883768182303119693841561419147688054447047370342447986873183311116008234433996557612642866662266919502815481103429218439266393386607343699928823563309386248323914429595364916560544673710268127529063599230941700457455616062318199717759548878412662733765699398888283577070842809808407334223756866396731886860892248484906743256059606315350858355195380449773527523207008698387238679486212131529136588425289792646169478853441725862846156433988133319045378349190724756793789528459511966503027095872302943879309054276088350047323976566866355957208053161620091345820914106274917136623092490544039848397279144024369087094024664341682928113442641357072165523755522663972008948356351250653070501973582585205038373835867236514896339286342862475922162863088587015459063288681201019864331989331812986090634601963094406217958697830056141055126821130288337881636809249478342940068597810584452141756837503883647436485992764255211864446775734903232117424588240650124402156553441934370951062905928691123806526589052327986856367243628350175464048970397462898065435931596719317666394285073215555130988630818997546851299613791076200059461997086410670782412322360136631010004745151051824489351069173136137463824675888837613015003230674082762399599544398193699852284137005398100949113614440165858798768426430914658733773170615810420454285871153099002252477734036937943979812107885382360834810859142324903409599548506439199218816203040581146451250301276727564273035682275840000990691305463185154943640643858664344301607398449419650848346464074270203544260789654725549025079259068059124485571890687523883627823074284025511872994645583572814684822758665566130741168716608090896207277847625655012893811413682442789082105044025834870232675577519021319982599552708534388741710547469781589242253724804199766718027843697084731475694692752346998375843316895220784446070859374258264939974827726785371905943508995376550584299830134016751737420280313771228181651879113562987810772845494387102593777467613255973557565396923322252580328706494746757964999859308452827161889083761067119169745366831704911275746283522691784985258716733451361276948485738409526065475147615384644847088994200685801046062697124077464708162739173827248722322963135465247065586891196069255088544936593209016090592632016728132989735039502193688837784719622810871667404075681794925413049555721236072673141257902442506492245735091722954342752049228712682532019300139053726252663100183962002447682195254741712197409822959430044818942375040715052115850325178644943368108310809179882687858281084071828351972645901559314614667079143002246467755476242015903230296527375212669571013769802567026356972031198826150351648953385266238879672933452003610780191776895873315740029988999842578749604277655945964330213239680904252955836831133395875873117907125570398750941870656648981176452728239144684573291145109662033222890664348144129077092074952700634534337708062602504446789110770528449258844796535731725767472307398986948599610760028757070534896539884105919571977649665344390460131730261290985343661575530650572097954149634852192114908890463649213904639824178445715112739835257793591201791674857346937413100418705762910217037863689363788128212789472744550752875703994136166931790517509962966495812414282520714054171431635599025285565457606695402476326135053690735386682449859153990563427397001658233604288756203950655217021962033749166608957192586335598987228236051987332693997197903020709028821856379962778905056299217023448120964106674043965270146026713117722500938766666309881145405634368255040991067670096655422248515235802811769266373648581467944043298831784733988378046451120106775850219087912852887760137785293025398109717446131099607079273376627862837509939197436356468415576656061818963089003585872193055857671833097614025172331867179579006417109874947574429100591432355097013467655261258942892038566040959118771067920903123527531557586822975757378351984197001141030461239075263170987833802389508457843372843961547310728167710010650422849147889870750245161409796892563056667730577830683228330655425124083902887695206579613693704979227398669616811148146066556334732964846566049955526648580531658302964077974234367163513589049803920830388772439009302512423274722602751222504882397142398030258676884965670172977423388053776079062974044052322188212181933403980931006787478479454091868918567334341394106704723263169454322661974896652134984134123392511135529172302549298781919889038097731537049914244331062792145881700503097174797073151945069423414653048332671109659538566231910143254435248539881320335674020038681503344413322313144644582522869380174177513736729044590601061063181622951384138305708849360204957264304916634936836729510972260852188954084468363039247255979773559623180192663731035582699356820486471690616787893818373744749862550937770479717095045243505181952389332746317882328123929673484348079201703740674241768596521535244204782033097139169974968245389859293105085122981716097543477261520004876352211086032989660236084519092375860560863819622565975815521779736501205253422670350531828458373228368089452030129995662534227810313991588623532270881524366017691928664568821548690507539536628290564313564414492145459332507825313673485242772999558896107505954224265876838658825612251124756102008770720510443214242024553375402079171513323554476970724241648210138335935665620187667695948546451625667614509158482889672982519567355054674578532615611910767422257895454228003498124768421102588794677197708895667611628298372670950884800561205412510490603247751403336102278014376514326203381787379977852635700523253618302140474382153851642817466651347865233304235452382793806633802742162918512366051067422139191163740012297834316210878318829188356565553327285199573822847539760444225338350963738531463270930255849513651022486374448755948224133264663011486139387599411184688841819572605012385570820636704813279895250715924367321741518257421103177373319375795247160173053855338062200809057074091945460178263927947043308298063511848282048558656456555929441656287128364510976962329915258539229978925937660442385530461050282060453764969094852518512712970334672783749329666502645618742766339689045353486895627168583766176751375079389215116404944219987054988447279013395349710439060204030683446691514069475744620388402644370408238305688629177561342238126074789408736057116284361909021830823260239020542890915832379832155200841069734029444366519680002486891544678844183387617877640998084568917214797031692758714034338389763077952922434652635760381226983432289887835666832650831372169207370538927579083820670173374062851019124409190068679438451646510995942759474270191688869111706585306955636306074295785916286692853079521754561486961986357578827095033192250233430508195047361846129302878174480874845901110876555243928356731312318437509296177809323425525206086308816194952314981747487055304220996269603557416781822624704817304625122604107587891132384336598398117053499179480965770950098783701841154750054384667348834491541305355145522424120428937648503338936671084912476239922027073074990931174564707868361518864840587515401169554675276609539350802983123104497343305079916957290328710728419638310140419370880752592381848760058329523905221022223376077822772717548685237574076567629126392333169447485226215803791509844678014757031920940797005100165837622226644608081077393883113464444134163017271811622387702041654073092438339905616834577069699907964055532711540836292936045216238035401287941587897750809607712992665673578618996506682907882903796611923929435781406272910043739831334556608863422979834437149134978831847352143201479397207063098954410476793778462596368358807292307344343704341221168546215186793343069601601653042413281814473147977834589752662290360205433822874977154083312817918366827698920980278085075383682946077686497662541350499024321115409953667355388139696041266194347938084685741325321199695705528693551414420693440919160056744409845804514455447516601422417616899125146129795925275155941494327133809525451723758460648170685299837528473019490070723908743023704907485389843942437823343466956795416274183478229201944589350139850883786724772931967021760841093731391569863236366465025941585264475805656605616478557905155995203482222907715436860311045221090011927092218825037236093345504773895678168596511024047509650714763351181025545331553446478304100459802756032549107768030915314877794483878185919179948158351719189775557844670605544518186519643362785218214164897826151409879320230577389296290366315974440165953218576295566336213502554802112862076183255860781911163757603564801264720488829709208689323146767074711505029563479305957425373377773380465389567433574672583855017940463510916543459901201534955393682074104598561016959825941351358176967337944759455003077405262719329305519139036302154563687764997723422780701164970976628548779995812180470953593846600113977270849404796182286973814197353237282993792917257728551867780743230370831790014535547551944886358371345256114296513755897378782586074476278961145778378955646195463542068034707020559457482930177781390525402521887843022746301102284053845075177485437302580122124508350517463142738844569745244184423743445308128331862182086438961711010242382777550026140399186696260080839234093248005001109414946131180967095380424239909030561572500547666214921901197421579992570109046052954905478925710926433435796456088331194208662652978037340648291459856736293955458313976776221814648298071462988445636520974731406333778898783021209221428264282053976489184101430344938923311128708068250458956793483861669623356512558602390050978888314896475932456030824870318535514156926499892922752219557377084560847599404381152822766589232919164906166183731277875384572410348585927648887956115372456282221181735491673462015413193070921385414539929001648586009392200666498675582002493390087600655592470346568319457739411071639172156179221980657919262545236914654066243828917906523881732531510187117256302791769719926835366929841266642704757821421632891923711966475844524272348533803069811398775317274660835006034638912677470448943683744676048205767128837112853039377667287888262916475834123906702669702811360172619264728473183138057111542957713081355704627771170861232845926894048366294138483348343163293832733195187140761428039984203315545247869356477186082254438555964098392756542329331579672345959253779464625897822288586889118728585509527823407881530024758113184586171229403947109761884846205560952700769461887518950008718066585339191149594182722378763397598435306638034515674997195168104138699184861997219449017734394658126213638640501042603187952387747552682454925082103602449032226489795447708882489550603357949929001071636466721328365793328121416956355411421605189734320317741212011359688190736002081390343711750532759366187014164210676404655488000283867673248512908554231831908510828262678374332655056279856077963078602282530537418156569534450419971443246908918599037986235195695090834470175021543375434369508289668788708750645457411612151571767263297244614041874599091194170837832783265320064268318426601986629713698212718769647826700157571404797198954780340173025711491724717534307141980967712459741579114046273376855161539313012225206801337609370031689467162240848547533313826465202282314342719573257591731262297823659862122187244190320395507602106076865911881994672170998120322467993095791601825645401583673409301874378211382403917242543697847317871459912559599819178129823446936274369242606903641771140485969919740403224524880708840751013760908820778849644843875612353435576214924012002994137084523087034901858161293492958555913844964990157024044386983420166135077471433859319763648288348996992601588001012681371616072668316425907329598650177845584195848151874711706264366829449478287304100062465570808887197037119135486894327265238107244590878662357849824491695932032166837330740054533076777175858913580189104189016070958937583600818065546855327714635654593525162673967534929732609001274069331970797361598721897238568270082319814670842930279625392385959192620124800709387176484608244318230323521819871604417439789671809895265688940716836889058656336198183799153956321525699386332412702718576029856123962363140267959292631530682225089662734645814748879263903208966237076753893397324175154749169026285685048337182492356919556776152397333367221842710321043442104373648175118280030713026664380892946490514996789322263723506551869785334748710997851868158725942160441967952676998690086717908187463382744130534197381730735080019541887248280240904857994357560443969356740106112491052996272236333609871059890868141526129764183549086177508438530282330491525958507867053651882311052269711646196691012011978412819246437917579767785898496352327982325234187730310204835690497052168970208968793051036124698104769049322223193278879332811631008200588828605209755669497285811234443286485714748110598818120419510043438566715684376752479036395416857509432993123033926589921697025952270819666620871798846950406012289835198327295697669171187265971310054171109527044998864083020884388932650730469279296182960768430200610955988186543613667214871845310106321429785501800011374619512968422544587038466279269551835288492044787225058392455556903224688540433291653495123651672454934565928953522185860422473085622384154499836084935701896479906689970013680609027932775617273258979548921627450192685312188599362088370139175112633232572538774326062351860813364900930825632946408205562656334554990118475517636728122237084871935501896106865281333049288070946123266064077573321901777331209237892526409985841002944547981012275245151170105949911126369459138579415363286741363323317012599435133985693350721961960532981330279237224175830936484803574841755748433882813343490911147292127252484535627916393788758765636944703458626912025526264929087418519877920752023004315257096539069259833330605021319398156242840032252526832283702232099161140650852407344573059938790670937879318611294353550759252563262013738885865910277962826075405972106028796439466362964257358481748967596147090946469684087446251651471825451948531693441633497944530905115457418011601089106078712011861824501766831526244919010590438667412036448450450783635609849576183101595841328594913741676957329231100639337799345407148599047064618692723921203566885546849462122039835833908392866794211655848616318559902196835248062647046609148822006620037881639367689826702958291978443120603196571144405227446283556687387229116515508537933801266185938955177851841885097428517203049662821738044448635488437507498376937479654319913608765396496243858586824167791999845394533886577358474405776568358039813812770868724847419429138037163768856597468257784618812353330685881948886143971947959958402875944476167915713334887160810478667630765149622477379209976407129935244996961282415508556946584822222394030820388595322572624962218892541631971795487803490325939101732430198379075675574937706189017988552652614168846686015330494572273304780417012905811194475962894107693533949775611429784403613519671077687122122043288275928383449337556218705573923751034918960783034943956566422553149888830192820002195149014246485381239765006667639634363230700144181931549172955153106474816211763598699971982255160789064075338734013326048905556184471804076269026294170012101480831066920117842585358253708549751750969852630951155705016404008074508408049962824105194660286576539923135646403754643820033739468080869054583947043362742062380637501656366538260142674923640397759508918971243597991770024734702352698967487770372043921184224294734220072107765829603208166658542871433609670482585402105313339346421453307929991353795032194948983901134012435359865137226594100595309315778523578243192314413871800383057470150125909830386625248218384776025647444221835222870906802488350411987935529415169180195471486080843635187563927618452685527226252125866435939695514453066496234117979458864409034146304146857420076473508395492126337677880944554215181362133299045951960676599530893713998375603528867605078684443215287539551435002803762530349733547622184392442547566145180135243048238700083781883323652202191103132284542013737853531730824296753967201841210339595095443858149636895928388717755755645035918314068690431915827251345113023226506695318158813986718086912671736606185822534026333801954293731029826819815314093246532555821034095498328666665267960967990921640754076603982284370839916320504757901026884693430729528684443202096085612171444813121850281798067942113545355427830573877237578336545517686338742650224953533934723633451889872283455773548826403125392891259200806298347375961423977824587040463360633865608640810733574824847798533108359454881889501949792392247786253911553771475418020205902200512130459379298050846227521374835567815709862946529535211086194378520990243395832561189360426327866041691760780190774027924220365475072101583841369499698709609565076572874414948279060563318720313314481899261139730012086951361646675767361671834266929941194580148814153151407424984415233199266737064264383974219137586911819497373069412842791344210240043547897582154182727237578347753257797060883143671182337855838646335648322076553076835794985922223644598159592440003169077305234929116839478174699963317710747808409475841299969412485935119702721235086701019085273715220089659316483388641425493046409667595996470320834604989050365893218957845243769794262893208848823991760852621891466441106952438175096005842876294345306749497734093465652656956387288482550043632528126839529898081105720748031775583862522203502871618633196010879044170040437744269999531802647715485841600196867772138148666853694914325514128142843793636933870642163780374442576275784346747067791359598771327690009018304293577503296476310331386766359265929234392896254660110787574357376229147644591820284032782135122391377877381993137207806701634233542565573967218267174672226009585727973696779973636867302604835861447586219879276898745388973556726351321285387484775990949301164391445268904005905990503315472098842540048088026868123513674196362749932927689135137312305172926606474205921811055717068637166576406461508060033549046120362635359345940352274915228903316415010027978304840206386834154472579923616211278852856471937496208176655533864145364918271689729271842715777511818289060213243153744476860374389855551929001224907263610164591744724961871511065347186857901936568592032036157156479318357923649948036181238607152537032562926485648446292394829901425292549770483932612037692404725287126649415125207354527400218219877120097376503337819281540955036752849159823528490585525363156614390920799281797538715191970483318968005546842976946857615962945298032563019924473563169774056621866685230632160942900801992446991490058082622650521501664755580049485554484524797084242914137490862605863037772009902539427255927696736473015580716855068520006412764764960277834960707079080941606877424571666125583405845565427339512499971811423479326126460020440890685393313137224275414491745344472920814737270812092073659444623761751429169860453097019245917409271724841404451497738730741365748809170776539338556819279218984835545994108576999937208024966906450705082405664042244931510158486218838675960188651477740563310954496712418006755784337515680121028445470497221760565521150309361598242629908270619888884999658509187988936106031275033781566887143240648210821925011673252916719975279070798596375001891401735413843042811723702484578461959419507914342027384028269410281447405444569391538815508802184311432300017968798166235668184046376995894603927119499507595513879211287053019886669147293496584632864817924084922849879843615707000992095330639954964589968732284745297345246715353003598431447034759274377874041363280220781413148022068333988349907970779617817364046995330172610631808772715987525485761193135605668421351346293608887970655894881714728135162825394945433384077894406342824757968290037409851919930184944476700126000100292807276851763404178839048449160624566645558957358662680067279347110133711800599517999846030526323326390230416537448290551079937332731342697662275750441935668034581767032625739341137031725913568661609840154009548409960582485583302498154731356162553091783415972486536862470395254437502604425139410669775709044600729448622367039230324690160352597311364546063827157888461372631952062550652621586713890751265076107342166441877529997926607318619977776157018366338644780879855254697473245178512577749114343276367202814370037189528684432492963538106666841918469259606175049449414312408350959812284771709385831525244860894656369834964766764038284886261128314673344240536416495656572697198903100236770949917842180577725386668551577356234392910907620508521154422294287556703521894923401618724848359975979904385008651952284287973402700833981589572306115570914650670707684889479837782124488863279088172581863847616513794745940797494905845130823754742733556271855236008483399780229891889198228100727182974605312331378855864184092390071410665585562209376904822802616735694353728075203866567873644328275872685124897070573380616848693684757660822924080242520248475603520646716459476104327508133656791609533657299198639031244468212210266819062740266074973166150243294043624251710883004184326939412245314373297309850045620950192881306885223988347557501963465918883592410506213500953903804051733746114507969491962480731103736335748700354923148089780502240201849670738005311656658630481537606469203690074453992566472066013126039225830724121821681945273048675872034002503524245388557057412697242095629315703608138322474244381290787545836317530612632128090674198941711558195635096335140459761476878203611392486559335760242036048446260702040635873821453524411241074221877388901061766004954569603324430114442696919232762348513151244347092985702870660185543115295339407969851091076419557893416196531931659955556980897369808697507182045491136091895570031515764598283498221021719796927288751941459559695859900265072546989278356016066568208900822400738714358871479826972374248424764502088830312757045478031155508203322917276198802200746295502515652472486933755842898184252402446594974873057518854025544724789864778851060453147404200084255163098580978561254971105734142203126526827529312683021751134765522642923447429280944052828886866915767643802104247843780357851142458368953727415362894708586354264338804424566488404589983872124028697459547919350854883754486489720149782246204587293433635304679351421958480676107512843455372246225527949163541084326387294376631416257658296068665612849422239160419420563731791732375226808929972071714940906828133267464938436666339400315842509823184706412472102502419574845938794023125827494021581670276900230778331337908201769911541510518242166665492149951843872157351721824352976339550872388620949776034224323419153097209797104257852976413831752406416888154330887395272950474467632238115696039635289991950149249237493673594960035349112454243857329751494069649105377022245167411961571237332326305628254128917771175515974981664575664448164695102041237283946004653940219410593899915871409186131144924418412118357241229253610389444545356211215994162063090106262579491557033954973380798977395848562496184899009530973833073085201498412263132490458500405548637692373596808037432712524503475042317539591625460758366745324791678116149675266428928469276615987076031153371465250552184362275978758843536827423386315778432908642404027391135180541643986360763523530835098686297313991037262668074201368177222652915340675958800402597419258590100168252025010149762959169342826770091431250817773604934502302821146818496953666404530446326448931797205423444461076835534621745590631385173666966196167995140317102113572985467131258531410736326319279676227927431613296333715660109382230313565107517522730439632515695333625082904136005911956630884566188523884770621013219153380159529714875972512129798626302773269248981853327314950229449888022715472635647296193205521415201577322247238348718886619361538458563744523693217013102406568330968910016177728126951936099251270795497650478551877651327462499332905282400042843924498602824849217499799921969186591635708614662695157223376356883947161403300936126407502073624461826534567237834759625058487300844918635301495158083735337717496016749421084017735609580300136477463612318841570858811343455076259692895538292919698712529771472673480174096538814747157351356744120225953833321432457007149285559388641319181956717008687305876550133942603240403311346244085713364537255636874773189038753672098841693358316115741779513349034594172935888619010096619642017274780429479818429861896210756643755469863496564314064198368470982792519609202865990540277544319345007592808205805810432237526030854425876739675897731225323503815822483607472415378935094669296801788595583748466161721829744825478695971265558244151339265110238482086138009339719140010570799583123399251978646744800221500966723821682026902482996847793416617059525045265482716383647528336722075702063013793933694887753512067739621413905331645003418220426794596701251627190989043402191713974729097192879476742079961194976167665941337424620226872768938840585468467904105294056680873742584552633220687860391216405491269101386986742291175220450659005463997224175757657744259490321324238135390525483508308944592608736730033697813944945509810484346289979456265177602562234575377713376037240234918693818088172968749874668496812488776438872390950353250779267049311815211665672130451908660706042693072309594327349404518156913421633250548979455966953806303849042804689329624367991807266620528066559549793752409687966446956291881849900318336729676681471976196286503188403190955475483939621486138187093247019327251951000015779239452913995121130705295949961514127769348115425809957701493574818171896619786849847097116638144200226612121303987741489290523861588443955943983085354421711016206204705759173036723241511028587379319994678651264910192348658530122177417800580866287641810520209560196200118117954908729358128586237987986160549449654885692110894835216362792430424209354869301580503463078652672110799706589024355983738910675032494312545690205004675306856366434899457487037642685490315300680781188049953842585837955621313791124698896466758394218873098154468463466295574375248537738169632987782307787203299791607535794676024811306370832807939165051888271101902786530168912772251429921508818995455061675721669751685865408134941305148756646166291164057128786585861065556419470555112243543536679511192852098622204381666216366795057627357066041635746775092801856118861128681781731862433576838992239003817700774680354796447765002774614182893491376421960212092940607069015307911014986830113296438603514438500725192507859875126955578643317819140961769525808990576197931096878792062682873356273845507231686975210792424165968447134121179950482510056165581587198798646438767477569794225725600873934404172785128187586853674956655813361853794624705008723258432336933114396696107459166717065015354604908695158040817032117260395042137473371279481696840189621813765208767680323498195964250058246000039886354617296763671676619259094812970238349094044907048049002634969738317786108227615256431130971442717013365741943922163250165305997655729290794038521646629298409863256781613739004162185917045260540782484472320517402075737020571752854092333099416289159205997054289046764169219048167141488185274094506579095530326007728995372904726518932678288947962830143638477337164258123645527456287511287447956717923607285272577023662740999868845237769975674703342785800463195493306297447157480836529117604317548879842901458143449538216559049049103617109125916583507949752148289971769829137907217138274636993543217136475597315766734947252935003903590583987137913588263981020078087920857972912794848425961382101208858770100379045884441493720256075320434444416177401878739162855059731283460244117063564495318295593514390506922314614456713971460971851527500541346975726580180796384953126855626216303299643515337912020919250787019403240905754565686481248422711085544570193535181401182850470277117946596119863815183579448712129044420679415999001352067377411554792767025795842371490167558974936947629738462128402588750011018646974406729500986836627949127578273907408942331818177853233974358125606694293266639888696273974722904796085276014926117951317827276263520106652925613454281563727679227496945074194236774507507997182601477031855200012780524100180331387992181504399767152377603912648947252910176243639916513901491851634439755079417793000467502642042803573602683410107524062293461613899421366477633641264579575087609358942456716719097348134473529282777030961233476302768653532927082290169869029689748775186067041789490268049278938724848681751737132702770978747608417270471880123203647104606066750109590566175035922831480382551336280645261480884735593021847374212532534801885609685303888011023419026169938992175616157337927895304423414373290822685559390417309613222919944483338817148335268526613123340143972812295032643731835925758761269596298365389240033334843072831255145868062659733103305036323653773956030344338191800889234728490350080880840557334867498552198360758545344886573494020691312562552053451413155255174137275322529793042975099521010205817900183863738881555607501879348112030816488376607631564752304315395603753576308636578930242438964756327169039442157171914766075882410361006569986462520292879475952462988661655403957265884432130233973195271307319416643842397896452247605777573409541978917469450333908485100804015142483454574907838901775008380585022264858086632896803880958394590254352736069332118509028176681736567038357305220675176983442409479483045644070248725818706925539594514295887175959206315330133421152526980544766911003740859782167790937109861245493050798554423606213984964575521415657739348793801022351617483845404958244438714720401878883159825351625521487044690715846457587872907944653259704624973405413836862038347443367837163435928514673008053273400428353450486662237387717376549556078417046084081757701620307186894247256835581064566502666187869248955058185722129426581369467875019008963413449992485573206487990384091343076845574422649710563959043658757386018622786542851612635338831646578834576519482211876493386050045723841465794277799199821886634918264095529917799166956109441485095450124679347459799832429594376634965796636330847896223841692583549506543197899531749114505938140827853135464888084898354477321766682298629088330259691140140931764078684307757207469223774539901210460685829791463928616650045383137707852103275452734510682495918845233339449558137906213679082217590812838913291694953433927727191588943275664848697937928625152138491721912772061755646340328632059860725500972560425375192616485542813430232234826486511192792333704402483438186753509439287656096774861174842330711860398941221961423332143819373868927915436211377143762389561397550743176429013785644771860101673192035962036534717403666376410560847291829162383619996441602050098411598178270178566987560441419448080075899901073192009312726740411583239890820676504538142530757203757942302547220531245056355315601703671741177199850389061878888771241830364292632488450194271298530187118199310184519383086805068106487128574982786099295689560262099939474160995334660087156072690704499324907426532024278943194788977328544680645782506245872215081890246209339989992770118890497878339541788408122065759011944206502347896845128547323743041907855167803476382903061050651869056318968228417888733335348207107172686712075360609286928241634150593590470407134071623554173171487883712344937416258548958418208929385173641773434032006941511068995691668861267972655827236224208713632143211965001432333955520364269129981898545293733185351469975417384039483096396726636452701265002088088797001845151732790189234989815485705081395176176407113305227264276780999595131157765862538598186076761195519673238834500195825706034287766773369955193483974845165527929889888629671531706862677750581144126656846609019341407810366811725856234037206094612377785926586834596288277345679795050640897769705651463592048670759071796315475716685654071908520600067091017848721273859447230164251064812134954937222361133369022072129763863658223200708221506343363057850847972479906815162172536007789352178988195878988015791564489937841394491312735330163187818029566175322809553834327453649727492132312304765032010893123061073020253567292748777671317243394964769350849528529389558717723717868368154395957530244409217705904802477768925583077671866154463337986413042052157695237461647521822867676332621126794256475465437223188161736971046674859727967478735013152501395934425324398436869629328850079861876706674285094239076326674836391231846366797863341227099864108637578919942206638113571923536399503293295177220599456003646098814363262986251603921716671746989552849146260272843095553768216550281861059471442320634316018775328168353853276480241178919380657336435529057094854601584046241436967318475027448278337896506891390333358381717643201068676436295701504890456051481521780655834889130216556704341016089365749210927196721773033408661491870949224113949861639480115724688055137105173886657072949761860024749922390196202930582917058546363030300793166461559759893879314053229179806615918183903264122806633156166445050339159933900636073516142430226274737661144463969354039504994965989058300222452909699923671820432874140526229476669060322249667205700408814651446459533248001892299089632670302540702686062933967708225402569132174411008364191249285340982279005846974689636188718105740231061846887940932668665025876706669578278429296501404936554000165381836012827177558123516458562401617044203803036729028050921062508733562993174439008345868919183605995874209731767965502318253733227396314488885981241779720502323222771119804702693491317661643635524967528674688557821901825074935546556405159840055272932440717430311103761766930654467075747301866528429849243954370205653854533005187764747385875965514990397513145816139284703694658286589429836827239750750881636878509815566116580814333562181168969552306953218365249791487920351702125678737370407574684426451531456892217383676988270760289703063330369564926653601339620921325534809895810179212960585016364238676101169598757622656944824914091497518562393421549464600123060369259713460895733356652445850946629967883333223635002332807345016212303611824358111994349116589950262486719539503346279845713566209285244107296327113634263687488514839154629128680300124756108154874714639159537131118092194084217156573426574951900048245945498853357040578028601499104524184689425229743715539205356920463702266345904615021813112301247957463291926865753884318248446923370876457499811398357959914678767323677678361969314321905271880482744847228956179889464916989713985092270423346229154749174932004862166824529927762253276711510005677473856619051594578256138355289123027773078976520564906787572255850332635854820182753728842533016172853677617556955927744263035977463546060640523662966726399073673754008032496900435904932888345334258462943557186081154719025855071409444434661280520726596628965308835121971694348177038142695179906000310927192332466873463780784006241413049111101477699609621018327295714995253260568479009951930627385457030057044034717934712125130318876531989780360576542041225593671276494090634994156679317634948648274781657620644988604200393383111026110574894592002220331885341192305918591941364118356607249735768237853803430110262825250712273113899047171446428514743801591521384533328031560265849425820556038403402929108673014493230779097748213454217586658227438743892205548170664726072363957183746626393672019599986188059465374003112679798696954664201613260312349282325464085212779705617037684615204395510478778975106526611357951529949572575738830487661858262785246572422539736235553666954877918520528239952801566737609832108990084733171430635327503806310714775577276238077228333656431777455707634901002733676582769749001459463243086102937012272002249129417850801229402588921602231324086005417035479413334451319712772000455925956622615556887761983724044728188467068270205608621710131221872107149755489417278822498532500378296244041022911241377409007286499099992272100097264235105544447914129886623135506295899458068278335562937867558049669469038364120637853905189922534611830678855360869849544297725695719017455640986423071804634653658203153821992061848502480001322456900780298742659241894739453066807892685980334215390642464402113122138202051161356419682642832743017807871864062443146551855030220147676407465542497508208184370957166847254033343593492876335258871461741239708700803916589288629318807304158521113297164171656995959133122486272742789995942257499997956671873551699341509583763594861056013536674173035859370059524083624210673173327373634757138427487839995230583346943577593526019207181391490646408635066294009710229856731755283419628353736948597049943589768268878241056982980080278660945822878678332688060953263556214285155519923008208563483052576092650899580176882485844513770602225748694529276145414391977905738959792901425200950905819648707805760809460320396541558882346032762993468442977469484211710455392249634135945930085790283981704239135475126864618912075897003880857852932447131492680559998701411303041955602269069459950362686348071681847620502953930221319065514600558173610513068978268974347294773758380262942718029914061959073856712994775749768635052346640949645584783968173569199333631931179363222525755944369633851819325022204990128031222847948899287516621875987129368308912480550875012307500776974328901748043864889197421497453432951518287573050954819329590216606585804105444691166629986293483184273030903512832745981283405752026069494732026127529306049084897419819988162244860108862617407302120788697474148764349093405781817251502457692856610007068999898399163312054685330250132032913284008063011536379410826464053572735427001952426412084469633329425923579794941977532173678639362367255564923338917449282858007673309308690697935961895547156987467524741663082945397908041002552992243650508517072843849901580198004052599094884901242725463942298798465279057381732664170383715701296982206340833483437131251877851368531363757033635608900186037584655919715188577367122533972564146915148096864091065426305852317358914030472600250852206445930040740190894553746848367873327961229908499145896639347121595509575068434646855288934126329282007618302036835505835023741849795147775274606507727660566218359204892184783587137506755862845527368062376772833407262410140949700169987571332211803682833338980944125887020456245917844975957702771112251041374169540565600024769884883917464664826003487723778534574683498657266207604000794357676494169499540658971249418449571148595840446233842738233266514385604667511981097112484800255567385467617968008278210043697343633940008934368503240689297773634450386039663689158221818492982674166285877343761819330511410438061882483216565975082434493985432220782915032502977094177931904339808838421913101580389536563495933849031585194543038841074087479228210250809037202636837039068468752987458046527961264091011135472986406832606428361469398271483025239698343168031927527282448804925128978380401729312877040456029930800801891573969558248049689985095506738421703103191900465872968851674733342486249802467814011714617537751644467026625877474479214184196380168696157510888506859276998095246840484227903501928238481598998587579499920870096315167183204901004036282027983144641995653328075423608463712160253179006327835689831370641917091844197650617880420325651808675327757213220057965780454957511303225272398629479217114447810710125464371554759555051086256219093615376092505792450111652168991312123496204031366771870949859228766163691403013351015359465631079006342091517626585529590559334928352626710238598693948300474270167184958794552415179485940576743199880122871910588996222526736626885817518719605089321041573928990002793176212099485028469912629341446448964245109688534864082291166919445727307616888449584751666874181722399373552618112712832144282541415183194335103912969421606459991276048401371869263613096615870891033559021580024420802532774839069290581430636758948344098980638106080321163127654060289655558576953185381898932233308002896922933011735188196600674588566744792487272513552447824678881177714823016197322520319081023502630077873012286378434834789584733734826429641754101735293062871085179236055406711010583993811239812748798039700140210541388177092640760050305617817024258832137774764561576588274024098494856069498277182594796782552458507026940679993493409978515111962901812927127480968270171509703154178751955826251889769892077288079845527092705117005393508080213007909645686649000730847900960966834835238211124882440557075288721094282667097057873258799592675505614767440979066479025598465056035063672303600348307296414376951624591802316053461376695112557037243098766085225792962780951927528069001284831546135168045538588759535660544680759566971795723618135246898290500803963769827302000371955557489671495667139597670503992050175349486457749928209743610568862408433912264841180243668501501544773061686252288084998428825191861363454420707410407505242399979736868722185071793840224226299078431661378517139258347053043563301973022240924331020263639082196809862241840470353272307413834960461617482647793684496559122316095717643678227327659542963279713501401191609625655984218458310308194702333797427920254978218893826983757263758060260638901307026361180327907156976145083946017084238474498868317077974653337682656093760028460491138108110573496173881004668734506096467952813779917973648388701340454027873012887909974549289204058380879306619945654119506247227542194814730200699157803261276436767008298191138652643390294309862150997634836962732763294826264482938836423178359563219739394777645226741804458113752517486466355398087553948112542951033804894216666474034222625921290742411400983990605349015955786342816626901900806006222986793408041001755409821495162297054793093187589403755028277926325158340430727642531958732973015300861554307014491508733345570367551586590231935899122289375372742467540204495159137581734363595606325933672991910774673559483698168042755948493453335146617443309886964585550694168213871335744268406737706524905704283351827266281270444511363497354708053998702489571119910345534348189785144130257050706696228056461917062765478223019018427206445839879523640784653698426323017410440517726969954337690238229393556833033820925440992258086267028325827279674363398022877903445400649152315327452241089356836035786297156308267466896795267403049242771099797871004191283008695651116900570764014885201180080589228959129491999843327475389721221879220532553038094374109178395382298939574251140506749608055448769125223322726948726773512871956550225154883596045668231621340489172960400849891237831901898930142576038786915815727620559825958685037854581910875801127610325175565579116089131032137802962074640130330309763033140642387643443911186743656523361783495490054208751310361703281176920531332440149854226411833439597444153899902555605299302130391898503281290519663626652337150484460217534520788928548747878873658848784260298456235180814318443173313507839539671120295955536113183685871248770795404605601835033783735258410138954745550543445700349010872009036174858937044340716219211342068171084552573316767263631366765380270170720618184392364316601023499228349465628455575529751070438992924670438944360315642614010802521269263305693102889538000783375644525236342424589804577991937474871640418862509836100457987149222313435676423460248711558918490538093532836277841503245623798020525741926227071787142975548597971131133569454940232823579575329652949492737009468946721296584168105814855783272563710388418296856436375109201199132982149376650748352381873589551041938311547293556049784445120471569302481443404619551622981982559055989718803674183251782478450094033407778958365639851937044945339607975712261771488658930963234679875786852478167608061421072408778628271589542025487234270700872797606349672684770429433739508853790370576200849832261583074904712022543272929460177160653638794922501267840580995739353346062416065584910517058030899163984581870059174521573393848506660073377878681302648256493977846986321100185591830593623177547543411429204250148142310310874943846522911463078795369967501993531865907988145331023631337327967546592828436936938123586350949192930730938345646753035307490770273738119586744469629471943059992424668994010958898017730026442085621352991040064737002930029926797480585866454658772741682434025612779997094492098185819367786131025079265366744171158606279000613877206929528860905523236285395943737449067432394404736124833692735069932417099147874364127942832454385806132141468707542735926010792036928165993238836359293531532463431125803393104007358864911673697948185730219651008100253494469158379152242095790735435139791490573017842146507427205477447579164749955807831627917852580907759854185119448784633971973326532480970428580179415847781116074064302377498604173904662165398154891077047986213584046735094123381802406730888895177578909857026346251216666919109261284258056482240338563439984325653201262789077684329991297612969253784066512731476818934223671503130733378593956405556918139708925153698834021446021950991042421281451882760471053285012885198305302263175451271096250881332300165790761824491588537541557691042539478113834737501147032339051846456545065095509542593466448403439514988223785979371011080059514215111496376975851448128148085677478523111496663631741481907853873050883018050299899987930637292160576017534692820837323146808493319247152830525930419221949419348031618964432418926953857705539386685418255385613073432247185580633087058690190803564236253404098484644416321027793555404881327354834277820319223782531229070857609795149241373365397798605005248106630882938762753079391365522656428550050679688924649033096210438230511508594891847313159671863369609779009987713262932022501938618031598509901543276713319677335103226220277060579356937875813416079074885830237810227664564134857693407217807256571938045343558130074861483485782963640019520655335382156420707760685166074515771848282420112979292934527283102239674769174676728531667008129182527667087288275909671114979404899469137038408674580232178548431760070001819593491397470060532341212648473248190175275051541558412990301473937042046608534839280866439800044425217013368308837201511262176948119637442453446278077618300219226726105043348586297020210960946584887776297951211051213298934659062190543775221691686495567503986479557215251367563224073025274031544051353960549652769446396902206320563278795575157240571605157019130818667066370998365836701347407500563718324435326694687988692951191956059390095542324624009590511248939315732877049141780636118257421885400721382402297677382873212195818610638446872783962844880753716722484036784147532781892212587062999436006804819774298110213583235817284351094281886611279946305041178941467678823238816846085019677582340544357169231523036161118342520313273851789529041934887991274934103886322512266913272089654245250859679136188629803014271916518771458905394184312984430876870530260886809259902535846449927426903431322902328549321515070952413482183318245660421527926868096548507655540414523788404644131469829793687565671254475608540595879860495591580040859436258798621397908432682244685150131330196325053856599885252048251977498954629767138316606254422322151387262625931447686899030911464460779313703460083792009801333435840386721354300571133441047634200775895475769334001028277351143125486653712701696736841898514725589266845398455208529604590841148436622343825101216126451660573187169497649073210414811282135941027545644670129283691501161081121350401648426411963027659107459076703906404086426888151513559934934591903218263319509146913306061737151018334107808846612875670970091931199662350121044298919359180878247171834978344041450539833339548890760103054412850065200115397802312246030228133181167345255558713653457903471289233830707407357414667324403862042666758276124374488548029581570632202041203964139714736431284703605095673364553540386081541391782642793845076478740635750612968638580758592791380599340203078846637035148850610361444086196408422631442902762147372263417984928542897821520029236269856221998221458279482094625672775382488036436639543904700417954822613399243791430302914007587829926299680375686097944036116932676935301528293681408367711130365068593896859707957176514736972206712168535313207244487579151062005956375394061888973291256710521874381126104778150253827617508511615510899198999801906894893382709610363433254697012173857908921220574929120846409080092243444367580160164882323567350866661190547421692140091689395424170551854980480464894815804977689740157456149247483206126101526685378046804569060030908223894604449913900092913059362623773307223863185004236497425536464892267809906391988874034528861700275401555035796209393798304183884943877447407615394915051961163128909092621885589964888358676487657695019083705211805243254828395080982581173092191886222516954513359701446637793708595352528293896970488563771244180681740950734088819458438053444058169808463075096182176282766440485430899740494808343530549396391881225674680631530927270462289703531801955978495242704332331354510884105825126851050164473731183241708572471846582594611525676408057908580095147389994168861174982970027357724238343490731064291392094648056782276683485510316287137470381216483602283961391773236055718267369576833055311960982094261720091148189139028161408596706213274728680565399158672634905098372096234439140543572005259117225391783420778495627685458245145229053803883864779669256945050208423586080410901544878949407051335768213203284484524895108224713789813128133450580747060552221004062607703448138595561543756098897680543255068447781675575947986077198913162645054973145571501872422612680114312081633307789886371928622872963992039007090419243092923866889298408063512151803059819928387103457934197141397264430590931340250679762050970251601053066105384827201665426525535492758747545772856807218390586239374172568180019465333948224873540302848122070416983641006933897538336781089821240783833325056134578562375783077117710165702541830359736748362933128533681104824575629817841124309968204449198129261808805139317379350313962969126481347258561826798041637525057534786773121898470986417434038051803749722308294998931597472850312299842256735538895741944500029340755057714106076450178605305615277904804723192075491085118012077634849302644413634455626474181558713212832464820822049064721524384761750331931171266162990733976327030040603330422795030057805390289289461920598792049372049353766149652139886027363191955374032396587944368204349180773320894573025181498515409745284678214744974290806630921451188605406401872326756636133657669878757034080234522275242427177297723935546135093504145455266607731189186657676445836721975924316257089386944508582354743320852657864855666498133558319487776076083904980566267699804165705680342984662719495494314297348089854804720908631872490690854008192583299342030204414412354039905942378305972023892440500358419731725492156892437297128471742119336281086694509250972054454982406922638291731066269501416371286014639719996368931056680711083487486308777653456591779826534432613637515849056332600612171603431731720601416222637077383147847898294853763457954015676268115772744645285950883780153894727682618871323435432724363261849922925259330026508631221686935427427309604390576465466164345076862335799210630949521955002001151595966339629129620668424665350148410463073208405710491105128088853908238989456918260998731038262702530648975840747946528858823951721217829626619078760227043569925614304283191796081558841071685177534903608699381646727468122645708577254263768731007204189667035410163379933526271778999560150236942129892559739451297238655052576653308719807052142469867898336559428647892046336550290359450180689109437953300604044396488425742959484985079979243508361268660932218997112720037872633536374697167143063911662117865052141319230258591350120859416550909917235308615674808927915494528076690251521769117468699076225168166144665941073948154686035235733176607042462517219023403076367929690554406539211893992685896558465906132073918684216964297697652985586279541740436642416320892590094059425443940253177551583107266473499184782128558887115280254731426094864409203186861836027352522333902927606570380955041991407347449392746036011956777551020210379802713822872996051793637798854697172625465347836555353077377974871120889770501445541712576991577725803412618389220467014316827564165954842048656047537868851675465232878321325574586044221333735630122704846615870731834193933383654382775639331150499556324293125655150434512872897923402788995180894682881014104231134063786083616729007940788499468929030428225310398726712778737541507356795783111826226000695967132169975588295372922438266698854127442959576940686157599122906598207780811043143903490251153709827565631592265072348789151268944846226070158417001126100801807746760801014334767008849285718185189454434950464031669848898024566160136893100567348605148026418384709542010678885638202261595195058145822748902359609590173008753111883546820992508065540086145554568964985520443728171274595895366538573808522638331140529520437940617753103440357170548416360912724803235202015354608758795844624251653865731273377246826773008431805089928168147602889211484525134662345584309552606098840065707926777371789803109634479188609847038328765376782399908314985541244930679306939570187323552679939454753307159288287186738891547220926682328255750078658376085651388252648979009882149065964052394458236762324619663061493647606248823329743457054768289853166869973576095592216745823484146722821401013848518438861922144253882836342988964659338207080570264706450300676172015836747911229650174475785330979446621612134860438725990658209218159879641106172531687978861862545265377069675008685029625770353461515589839949917332791519059482076801529291135496920594626726054407230899567358395023658995817323834920631234386533602063320463842195509572973375926835704609560246216827135331163462370981841393799016123287507884934704383522946707962179744467789605600608204324797888914794632511442168928549530398366410100882191453601927231760487784683504902552713625519427332912016126160109007509493799327107426652928407852904165952835845240380839788332766226598646297883297292782129269072248125880973569155120983387581932327542568573799876903416514201180807017588955921829919152187671461450746854689621901776510542778380138890150767272226849460868950159468888528767202028657130554287307341297696737510241209684221950003844217866254596125375258016797561179168059595773064957846108405156729002278111261088343386448303244591685972602278240815259522619939613799002442818642313390757147571864231495302545800723677423514790143982983817160342862374321009694943265540874648248459105477119315973517229576925464305132920867212396903812946047459526679465499657593073594153454864949139133863962497668977743188295679502082025009235265501815119596730753360551220848743165769901143259965979585565976680294080485722955403243888955668585683279123565347965988035082814908800093315108926376679362808360206595311844815306146296029955800125529050964652167622213246864668451086605885527624727355975264956525328765474913115044131281988704342723748248809046093576262658546580049878779590811209508115951554483463829608348992215660963101916276438626135450177477616492463881664322662260261066737423910107090754887986669327471684865113105450821163290653430150392750834784415311869209249770838869308179115785718451025615992960588756678033181439974257173260656478380594816193173538377313681361848634740964895105417055255630387121430662780875482217051307596759157830348712131294635144162009826980528997754038403479896165697401847696167912707674203278826599189643372532273375503416471245271491712627986695590833259438785635637393349796491570249060982854287764341034640672267099634668808987138852956936411739121597268929639653294180385903565222045577753713708768397348796958435746375979107955825351619908084685080335887424603199310192749783039402051556953402831070092808066953935847702847629145909431263075350687145247527754350015876913605912255150415366943501322859602750612508219959276649404610504017737491046653964332206286945934294876187630493615463097141134551548435271628663908839190135625964801964987612467133767691417162431387818991763889904203846271214189422949148995367901184110774558718329013098518756111415033567580942094934203907816806770837786959927083602360542683589747382203892041030153057492679161585892074841217130599122880372571685498031321159147043197345726429769973037621846156172000656546940026337450090762860597270263106901368234855924640565073417213583796167307959152888098197146445683572947605761545273128560926796915357565432055921888069069146851951460691943214953494984213847460005031048596932269749459700846392033006127916801845371436179045010949483074634762660354908341000930636454805950492260837226001973435725418134461998349251580318272769516628135112770801310118034592358883686242756292321700201829313328083933661372728632860769493132823677308572285215122966008666737518724940010839137245398113187730635606672801342249440448356320887719423941671370874740058621227936590436986472150671833994040473244046393763099394802790631646582636901250077578738595379048737339500185103403450515206312773319730558522153004047137613110663868019595609159615365603707770086389717753582260461392759777281432788216938668177918471463912084450942563426188109255774778653223466224039935956846126567205382346900069721355706738719197618860277320340731320447352707155990814959501459301108898523980271386616103572683704811970880188622204914659218477292208028634615793300901207701790932395560171231266753152729999370069906329445418511868747660094746496218341362419029238748745381475078688441995531367641232767526587902015067788845351517428307101751489777245125486878875845698759244146315916869456901471742732074602052572389745872747162540831709597260919478871918806562323465063902729843181635944437835413476789911334899699153910051667219030012161671292579734221840205318349880568044428762021338755772130412149832662454338120978637799898242849901490304617198734041316584162860680787311190354136054815488950024048764126270404184656399237660525421354630558726298684758186663299827745009318302948323951356013986324216066152999170398744265868289893517321389737923512984980222781878556742142640917009628191097142498031724451449871545377011169613163260730449010610920894315037072219593294888271411668418575169889064302512837099316453534511964365501381176456130066806146917041018972053035490777636122801072079206616054966455502991790649428623572546969384072220609325179128477147164824007783804290878236648412840385882992381617170521204400161623892886637900446558848257033490934127273967332590076203037420389995489606464076754919631699564284280513687177308362296264746213403401882263951698042014788724600909876920462271682052052986598482571171175361458439275023184692241899924141182668711664076749165877626090270435895065509773479830871943718980972442145913846830446568321623728446009801757970130975323004997347287163380831644403253721728498947176460946150215123271849250018998276241839647479324495700178667437608711444255323705989354286538339764544521020245523883771869002205150713789963212651368773054514635666476178613324156334600392441212112061054672289893264892788367945397559572179127451663180164322532090196969164206980636922593153965336812541240073216563120796882011571023332415317637181798017074542063385009567703326919784472205026737764258778339480613461746945855236898594178006067382499197542465256763251943393635757230813757996827372641031226689970084419962683197996567333685943321263221788464149985355422351568723334526777963735518338381079862044286950015682998760685839310810713540938376734488521735065627026252882305168740371218592456531175795195741799433753109523210810907300111537563319159264588679190272641255215308035487481513982988622061764206047003230232009569637074239825367059680196310837376334140470760935047093876243775151841055036034397844581847192885492164548048594413611669594489239441615149734531632674978452691431055343285568177753455453045289771184065865353319580080034167295710027560412781699228824123260814916574037156382611806486775617317953175641492220908448433273781877244577893011501374632618492372354662936189440731449841278054610003406715716033955342734083139772643582489077907862606681349193979650709524943780579738009385240587697124503293718319335359125394048329047761300787034491100378202539992111292165920798144693394391978837692659807317951417118864197035770234856751362802767780864559051885871717633005760486431866691387171820572425475491535653747539226593038609110216103108683768357666263271461460804704616139865581343014468985093265729814751437244158607989325029161648885932847111604520208370596744475242479710700058780829273380469423470378202608463982201589504133869125164726068685754584101314172828285730262645260186939510779248479293895802848815861816325590356229661028024014203610499478735833302274166275319465226173309462575034962326371683895316573314366420143094520354522051846240248956655531452358545615000655695421964277398783340640239623205893050406446896383495206311537858415690821807092548599356904991633142645913528892491406001688411699000912929302991261671719049059008655497161389573324415300215970295645043127252021335576211290984095487137091331619989660152023854764851922371506677679936268300212988757132009854953232232917401756161001396880539328513640402735299895591914279601606014977847174563940351004187648343057497455955004591106195151927952456614623147464678713054832177059805671189127055410340814291577085391844287628794899402471523222027777899808714141919697406486897329281696490927828992161834220226692312905517402166479899694061790936000278801329097583879980440474509488261664014253601677285483144663663148115024272838578309365622029252379711109442731249909440408163344152141701397653632629325997632915014833027487007974346428107683462147088406311292756327424614539102835402319115243069365954810385566204889347066291574000635299180989393604887375098309172139378131158989470079918591571375115784523308890486583125399122399551808432508216536467927561711417175071650389489712883826168681040786999389084321149255191940876797269664164781228572871759834699910423288011566379178629162980292657480769335613828390658709732714486903331096352216089027520091458038588655816777421049452477949278716681373814426765864774726582591512458314210473664614518592847549207838132438248911645456806446886120674601951723443166897910642347557175416357966451246014264425112309422232001586892327906844271325315507418065013508825309039593452363630070556013809083784253480196392983151903582343460667148702451222832108628675530881598569218001959917702541229808813844308115528802172576029276104368927212170970948726935463207943581931300669315616756112820413397936159590097644768571520510670437785956736809329287944113927786567783079525356229604558744982829328056812928112145337911346213774125675064090382207175658452541983148995451478502687349474290745699594397092442326300849843537226374389168562300511616691360190439970798962690546702474825256409616106294088656397200437603420094319928119670893749002513981329401383083262954593602937320717737389763140322217739371978758324569736088013973109590965572317695053665736580596361372247118839456834461188074615076758803862754361285421728219664954601571252286472882192934401207723856684843571958610449247573428495154938765111644023160712727924820319502677639153164482328270055323137683658596721194428731224867972851514396057025462468237056458485993050853617366878422811460768113813194990846016608041123278130600180514373123198090607388398365596265004219494257482266468363448822046415450517742361217355898591410910916698320423119066329364162148341434098236900538285766423056595357889121648784664020581197243129898168187060243014365863469118150111696244346502259685155457553892538690648055735603164486852388068033758035279362266615070648147954765334450904894113135889264389485784201658462308663949244009844757490937683355145951228373248876047322141677261036723252432108279670026526408833670698037496018799066128711733908856675119528002512260365620805429474240705706398477327066301855312512900312907731712754085028793914150793294276820263964781830015664276545680605097171204147664729589656652530763683001895510194171698316023737266415073323102634996881669392376601831469879041205692831141150965197832124269597784414376116400871171367439396300694439154650813354790952735514558917144702858582397623006624629257642884081820582649758677235238787822565967018160200930157633540091061362005486077953864663060975129881074529281162375702661048638750406294275161400109861880932704708324901732916136181587631016593047997845086382758177718316573672965591347638964273864971317046970408954650238909899675064844783707712830142411616872418731641011889673316717264249255864679714806722680937253191917733425628117359673603818446594903479043882913052879327012300075381487236452833791643027714154777547761211309011052466475537156024023683616895148922557473463532972034067146797179731589854183588686667981403985177480097814046120500955803421685237983265127429844845426843689336308774096092849495737226580066200638780514728930832327157179112694649268517207122816596712525804015961811240342994705940463958065384179560281788433205935749225390043658500729857537653274781444842618859194134119639850354388533421456827709928030062599613167078152667513946357180909460152554940729099041464591419442995885350620894090711388450277896276839559944966290240576927115109543143280544139449497729008576764633809611877139239761934252230143758073679136539654413608402732516537925349920763996718359447914189150763854726069719518287846586347814714959749155467339261841130052168733774645218794168417886107170812055575765064737344341524147196090159805657043965718549726677331189323683762952117133291898226485375533648420391242936398319909184657449609792812420228900994434187778282857471949774112041096366805164214205578027817209628143117766301635150954256041937964050430478377003346711624845690465861153487192209292734867175740054660427768735580369342536774884904657933937866131468085583040050430895223433416104668235192000493623157894592942650720371808100783113311037834293391103758513104288295864451458130832648104581796407474776763721787235097095056073136710947124499642246756303371667561930275834128289879685940502922596165685555245824646724878281693031466418191723188780892352805728557119594222424024050186173442255429570012554416336690274175995200709001427663009319198147427976826951817440489526807003812298826483423520196824216322302662708256857084272056832374944569111898876647586439803264393989891283910859764134702527422201678245013641307277004664091561052395708613258464946395857173468812736685887872055035738260531454101556038994523757907205138713903214510716503420156789280754741471103065051858182056158017895285108163915673731179408279351798028931323816312531901962482664483653467063868685901305792300926107667454207769394934569923205403819632044324848289794682952276827370504920411185333308292908910635944274234330392544711989834047629681606014689028198323534674182428274203459940917161217426342295220882225478626935715131218706621248727036912276163066424679837081450341692942290527940175223026012166741516424031413732876819903815092231239098024428152137235720074978357016246576150242781727491691392852784408335057639187412283452867251265245702037749210247974315600117688479321045657046822202817967184286277639337787837299145355427551192183207100939035163404913491040850789285545901318557585341683507160348687610119180294395066374518074158458687376210586897204856776953178573546818603248571040773764124822489132507093606005051816060208809134445864734248757554464558394134834710229229291243219149218234719790417503484851932063054154868680804446312244401712899380346722172316548167697844387548246795941336552700374323224760223041376229274205102078949879160161604210116918364900424861185456975705495463126093062381711551467631559201065467668249613679655894349885930562009946337044381666992038711889649005651930867002308401237457534877834981504526314463866328571760545944619662618484552845163539116478619083895067396070946698209070306441269183050316093068470232823660263273285683244291919931895614036138916509888716531582105014195637324121708543444143752409702325917242256113411467673839292247632817811453611490468630240200377656919081607095959144991615379459520264731593946688720205642410416463336111158694211145990460050778023832845250747410653668181573745735503863014716762828155911031028837344880820216221600580735699738401679156711953398112403695872964943709417814850676239482200947505364673030195906711275131778228426667244703444569542146846724948964983945868339261942988254095416562518315196067134902364263375881657994584746697593943890846994301531766718604301904104876697702736055268905156774722992207127982540921872244760036030146444455288836521679682135382996725062991599390714212339845000152526703335565722881200041407062678791169443589829829514280812850863965312485702398658893491005387906387531258139279744496570586224271337358116094883987961776878680239592456729532836762381048138183822411818285240578927512373514124211232222108455415821730334951624899821505858131284055532472600486624293523976329564196097344278062389168488791408451393083822076562975757002922433805669861342031764200343582951655287694402079538490003711828747200082754346179471116517459652250234226284993544827942587910572514685287880226251637503071117857006553967304434996960002418621075976870655494830549525624372949633941949995351950669510206397486317163159261342709084982630975128936370732736309733866874845784095026046477472823377379178412363703611118268014296261843595384739369713875753028841322652707083142439590011031418985959764130710560367230472128277782921359379613945437519027704617495590359788780607284634849245646613491744287111292820972677498945709965632959331507119270684460245262377649734355587662373630773058169304862671570694796755364444140377213108519478678787776533271857985146362351843537186063224220420493231362638055240961162709512607648819499824941978695271416204928324403394111605021738695443597762601280234254261157161066723580902576451464497865930281289176170644023845203505286273334606239267382716617611558193151918626579137096888073645428500053936634773460045712169400967593597298395374218550601124171788262428260157220757325588281614082713730303442012224370478321404348349157242203755325998326078245451244726642358083092294024689778906400771459746753975704074049114051549469991218841082924412904369987628388034726014826519995524842073709788013845372019771565828875891244808713482391955690428028785292191170410825093895435499983423569167816937125398175319442821804301289503529200187682994313130330970287711609767274304667783997821422267415293767225791986352368727432699416954891300352331551848397301846872983626696722087548969865138331316583549120170564100859908933171163162334883083857617724014015211692510305200256554113372566387272023894760156531970196800609519485675735025864392580707914899050991532859262079186077898888865485764575144769626495180271075601962546560818072613751139773136891476440876601395545962194062299265983205971530249896266898774660007331054969908072877543514978882231795550569978624314472194654319716790469391486437163090644654560821169342455045134023106319246431571779176042776991222137200050553442390674834525120387992212579999306509933177437709729761601015699186715392628833585287644008279207572810747523287843610221114481182830905661700295584722302731171927561011135548195391314076624249313050834888956152425125410768460859467368251824410605765866542629637348765819733957338677261754391016276545979602554973823346553005582523061345923682036191494567196901700078351557233446816150721080036693170520162223126942701884087661868572801127155050824857226038568756787524077515674024764103991913509146979269200452041298208722206735466904565941206198099973125262179031079658659688081346190577184859597576880505479592452088849510228127089741099291819308686056529192047433655144819105371988294588419392324206524721366678879753469663447086418796904105859050673118830558705697587673186622371902012388829458530273855324187864644461821684725136077377072440769082596356571385414189445403784627501153806610954238396473664554092315571412419731988608790211462266260376925998298173542292984187384417364485399328565506022964836341202223032483979779854319304856585616447198707441611697275021512589639835544116679129009086639532476784364479716733911486789088071147256644593904347745225012556990531188600166943359078355004734160237254234377216117507701667140527459374074502665260974513431240022192845408384454212685533536570561741597992033110748722904063629609430248319322347783994490569832493104843714997895445366835457667983642020689264700586342282019704893900595235390856441181846094583391865324017493347461655045415679714489206678291279179014312046849829047372131041946408156227121566123598792625077675857139309954354699414300613463655522072153803919209175237670212048782780342861548809972904525788143085354422949662453104428323469808232787993069094088458331856788845572291837838372605440344648297791006674301066189532558807716211396759749894235129849417832697033981489898127349778428229870747644524484144051432964203279733272848557322581088887643340140491535420389296894413666885056904702711852152021993781581753937874564180090624429413250522155509007401789469025988128113235753355763784506331368498449815641235986980300504519626133565935039988483527886504697767450078019901261530730746179303122581145725210646744843621685750250495647632472942462367921741620505267884798405938227433195955887007587063344093662011994787237633381525407827444732987050770314922586678586532227217315911885397108207851669391772063294077187012398182339604656309734358909756565577610984576244623151146230888896726555670674065937948022968846025973383821577889025483722946306760520783026261802853150370591872114373269686107566730994295526652763246662791094034449271215998016314059774301960111054536200774391890784990288533860954847363142348435230935068101211059962997299555706486956093196594177983147038650080266023288179543703469962480660550404248721151626277904312023746682634684734906607457794722231579075000520678537750878078683569006057952875523070931956364984058138437978583287790666030793107778587123014543326731739725612033386576626011973893631208834295704541484466703377377276157734554378554183690194048119639654559302604498331471661084381923814858442810951497143478438764915651163803593707794972106825784732565312042692125064897556405514589282053308029312249560275466110116327902996664557244825095686865501060062709331747506396024937459351773880491840790739869287787714265549096855061766456670212601471759589126941183628818570403597277764389351357801623398290560324638745090280630471864538035104863016622204367593141533561193948672143285365224637450078982079954613488942522728395752165935149562783126469593370483350410396150724640129005190021436405528733942365063290929936994182808535870311161923752745240825144654351001747792071737420502655401409991615988215070303955999903726738309859146290140493599316962883196354205647295478172865284449220827276787802635771350032912024480910052700020997933128362920780351084939548768281247652230879273119809212804614252335625155635008154867062450283558134623881784086874038784594385424076297983836343620864066559953105468462013133225163453880585554140853007992864978095245485885948552597448303159948408215258369957231853712773896297890946138568206108160090441665052521709243386270541704239769089662472140706248134559516019949877593629655766287792392644724572880229494955595148963799233767309664652450900390504234635076401159663241177906438438189923666556305242163664920403159773710405169911079652327834559100475566392510384647101082134857984220447585712878452189908502666902850519060918952373451605758419424086308206163678408838345473036043115712136617208372311853801333095470603941633310907442576240507307092431976197924961474054986188649541161938921456104517735696432855377544368855031540759268590020355337994788174142326596724394265423867207203118609792623978396177161995349507078930008860716922933640255621744484951291539150892852594753783984406845610161816541675378678649989123817084126667479862948808184436930558036016874486429752317575581847316948022189592370111190895493822092468305998910488884433276534853843708264269964138434722760186881390982818874397470328356506534369544156831659733726790302051274987086528544242911689549395980310474016774491759369984719098646205154095686035934462271126468095060019505522626655250470718178428817669931045757900294780912068282001888039255642461114328585083331382783344447114855895847365820874722565513150762103824568435568656669739173136964076308711309031470831947729263204465615115730006042008867779655267154291213834315775861987154246323918283931054713379876970919993613598854409006353418038001842219194093730720743176519194623296899647690996667713988024288209171012233514771849837188929526412687946713143119984597199131067570867629098896037362138118812467586955156109486892442175837064829179454736566334340556887794753231016188994695373370218038478975314279914163193697671372611369313757386516236145502996419133387694210136453562752434648394864674313120950663732009641684641911469742151171970532484152713786622315322588082550997920732555596771095207113772350622339992518574905562898533950371280468314739074580077268024202457919456252957105284481407767510427224075886886037324877927394644955605572829376698180630585681216613714236551218686059223704843943783116244899381657352540839019002012067745001309825678113757940647308046654308916754897744911832569605704248116508449197031306907622838921407267653418927496797302072888357350161438587491419869102662490740997858212451681196427072893826562357325125482855299265058797188077282901964565497141651868787085173860329559925081507234521693811625687187885544866053265572846508754072974740372845144453529545561034540200192845715590411683675244794963780001768888229261016206680621378113692479458333566816209048234963270380767027849826333737845196442596855733787836657957250124709519965025287374838020370831447460349677058670008084317801470800660554801227804861315180141046173440910914800531137797760539154062824610044461498146912471884666421120182995468767834608261665492318067088300659597716024910236351032642183340671599463035422189666296143502590396956274145877027188908785933266708662220820511741400101563234530237030908950553679168930467915288199504469573010883400257803321226360774703408789385159675153758707593034868123973373105098996691661205324222931355399310400751264431841538838207060492908826648291370527030186268198266808343027166310349885076081339609124285337209706086856669462458919022142788320864808142465241069248400220747666885409332728018158080959292632189218227159812329143932794876143863977373071474385587195486375025393357679814327322167391333035484056389280411495048264545736431833583203714729257014438182550469429931886320527830132467795888698982856764820018585008362703973273081645939734648010224874364556529790081770405901203366006243635929792135027579617502452055147998635218480355150957215182137389703277664064271375518366147971799025636305029890347881784738339169810248380446925276277043265714340919125945583020631135481096440822231055168010152832915170753214668351015795685991812324269972805694573587741533545224605990590180096206848218879083246010297801776867028397399766672780381477977867767385150533332309393096866333579851906757656246664549185182639622943307792121727946124080285807969910443150276753630756540595556153125522518266553387037636831621656327744799587869590184976434973479386820683340721455339423564251433116155338654356659680688256130850187671599611532499114163167121971892046189232909341622205853550101739510112064150081106953054634406408164599247677823827195803144129327469383638861431419631989294526049443762263875259947177225813890221228946157740795300246806629433773502877792698918287671455512209633551304810520284721017670366778228060406060305558250862135598853163429723577318227699911520845435082585556905637754805283404590349029806206185624811599410471656261677675528915637415013268211268038096902519714899709661921434575309098310617496960336615923387131688788544616219250914620115382404593304907882057785589640446939306320983841574113770787679890578786196754012963216869641043967384055469551841199866109226758243897056170990295930170652629087812422247800383746095109343833123525474131194583627728446806625950623818531988123266017500444686783823453431805127397480650659015258156103497099710493763434859855075712491974224906939179695865851251038530818982015103513077645522625955056894524156228942333785133735855935016222973558779612911081138561172868770482196383462529081058115639564401283426617404094980713630605703611898972181531902432730688058128047751912160706148205671993376113877824463103258766237988629920132849612684920621666365960909614771598715783036421273133272646578309437771636971778179711669617555448761144283038498993896933679795995030146224243787266512550090541644642764895938248594320845332931141027128889822406208509469464659416487273093020751621685713131094028197354293771983623266242961233586936932534361729189009943688766514658104940485872053721071458268336524171308336164602851196145792277701329176018963158294076798151403356225469976963160444620786509119671039969832941416234019541467778142216762289531116517779826675122080683569318089018449150271299197261546973290246007039077511868411423790997425295707856243485696206960360402711897783398992948435712493585532881668820469721982399374598026685401213793147826630175852706592395902390079604445536347422784172862752743404384518340340662680491964723198708201023198950814655575673308343235546524769765451683887568938741059145824413171313763056220810718218102752371747150573496317276134865219913921708478174740122526126135262748024732127433152380754248155160242710871492895183163271566042628077730525628108204607098440281613653564723966910814144616755660678632087586929212345442566280596373295963260940752959690995257856459862538095658177990595439552935232343702274469949647104896684931175552709001136272833956049432956566969703512818089005744345664217955778263634929352642190347372955796532279534020322868326304451184699979359998945441913905775634336118691875206480180896644195843969898901995970545617245540709945134172375299283944498762099588459879703045667135930329291443656698363316396168404496018982402687484790589785330355966700425428051115982863275512616030713651760706373438432858677001059168521772591079115501568164721829967849131322476808213387739829569948900878510345061283958896627677531671452630238800074725465702823270917840073841520579542222098907345398504672440294821303947478928780242785738917482906206884226104351320856036041744711117114789545530255060247019390361377912117882619306176250021945576317294490364934324693457899645538209060397652108379455330664108927108848846792187110987693780263266808534509545833708374933369744067306383131145150001467108795426808246830024649701020882760458510295877821683680045587045230448191188496755905178379630706188340900107957954553823208633870723601931813891578664601278344050765815789798560946511321445410652724774255438203941023857688163111444353461835313849900842778251253929142728516013155361801384308573901232076970208649033562911862779620257484194588100844920477383342204796194972040051175490106226909724631458267201538087809804942321131625192529615139482735230214203388244629892291136351228105795827610607167132875747963423897740899998696277995503953687321822718891687909170011002560509425082881738423861229841832174007624861953039957243078228314491917524577324825507609557835315765931086499373797708090891140657799566874600985474834139061584681367049820624110195007968660762041785341281715823007254067727815809748513603384238316888335924309823874879681170807394875427270114642699311802507259904209417158024738763174922046981017906570089980193787430351781094170471007222620563130020715889476766999932650428132482252310514508391459107898838078385791175554093114292069160580758771360675351901137642794767768788198276175351196454921927568745012089123947150859511448377601773920241201710524727155028426434773614916173202350749786439030746185227995767573360417579422575299537687183873423102030577371321472161983789012373352141285692857149126292508371657261475469115061867300805127733249487986117468446003020457897677008095891798188729699257289538468548154053166198481941282754766548354425396075307499083092996487008071425206540774970926006284006132225147617908079935029176851255454669168904329422396416039904678513784053686509761812988879584260707498784314412083078209474100536980921637730587870748723149606328060103704656017958921324304895623594649391865778842176436984618945319178331437715107857550678424801922018494673251107078071310178546915805246984547205982918968542021290634376835874545843109935925054083406888580594736006279435560119025748691002306064381292250489603887774995590595537633489749161325716501172305622918886019459269601624609305253102132093520853795651296247740772246810179700858870160613556264979346405911079676051343191729959482146656293312908051040737754753750601522993486904493520287192979653289369791130084025328714698860005814941930394469538137914539393850269448899082901815535703755823768400145305487606982914307629930042063112690005211513549042323530565862663180792048269812151357037964503861263193865108506118178458307759229952972568588279806014549455036545787726441774222594004151517713954376121043116907937156262934891104214859015557879346429019535311698050781898625550715110908571971078772188850341850183834865735966577284631522663991171260449684539132360041067846290211211071177933906536193022192666586401905260549943176271504047591188546742081611528521511463463208995905369368876358264324156820619773296236774860865165201921742867512648852451573065820389826765779403243466567359722388584541899250947354427520888818356656101668317634691116480221698822345343803063331117736870117297705806165202358722197378571766937856504639660315882200301910943165769432346287249502350289511552684603951590897306149162154173503211567893989874722184094378616583362776348548103849032190715966440932991496921174323733480984772352385077045930591349874841022650504443878766847070942472080968035765989881584428593477139920741776517462799993036542885280964896794764678336178086690477438047123731714322538852198109136654838383444187439062597361909533467432308364248251958930368422554772605850032295980399287472913803887825263985299840459283398759016429496223759390993122261774608665470874728810377011213882924585681387946794037581959894093855084500982495719537590310501281142843929653735362270095019528522268217986409816999890759928701095737017474915950612829978764530171600857142876792919882459260056990104166498842590529668504726096689591283033797291611799576869904489702400111322071638510544975456939444627761883925962922587429182924702865840251358754202098091569541687512076289148189442403568274649255041090820765635791824930937337090154849351216480553021010319758201553279162770585645475920767925751594430693892258743619906424627198154680855075608238259568455788501304418600021973316754769678556759606681237467609574981129340626360431224454302447968164552810668886632869379391679707684996064740891696551423647391386248881239767808294031266261680218943284641263803421566892234556326577226050490016091005910874002512249028507836338891725684052347142015167357297836651670005123497482600754034181715147208317218973614397632364080784086041153477825028999713733372981460560555219853378698285041540118775688507791709817617978499752486009349583058514913880809319868680900868531113609642618406735258188837164468964893477345693908821396878926820617233112415528263682969643555983424574703208610983173179429788704142676550490943736368089064216277140778391163629014104570811714985094370851683945091175277606463473597018101405778172076349581884881445610695514712650970321435762630754291543959611787618866580044770391538381294865666849146605152163130484573286421810738439518240808416486326654930084950496071140508797272663817822760159505152014438689389108762901805774168071559609765238111186642051870464623881088049577553265747297218734558087773545596127068735770841790054382017670118053728110140969374733187276195671006756130674406386504418127860112408988991586010623713424519421993714471402320705982565193928033917956745029272565889467088255420303431465850672866591808319776915068340961487529017418179711839800354720883039215204128349932266440572455079664518339874158871558449849745363271446206340994082570267481178305270124010775119482795254191836823921640946683247002756411988945045138915623436284303793544161096583079816266970914524568561415312460735420455440615943778929930883793626512838691707653547723882144320020350335642525330757204515651845076933697851274359633368487303940818116200651545130742650678808568322622116710286140218603162810569628634935160643091797113545832954754822697076663331766467562241925008538604655948620306578705109678225279511314441930914864202789864684952054327459376113657956476953076876557599595251618684534566986707094725949151880863055277569572871004482755062394782756650208754246286407748476543154797619317658307411850568753022652412683845665414387205099382404068828455318764060715390441378676981619948766988942622267284372583794907113158655003522592675930929007572029502834806341906474186843284015974122871991902254463593963812220079767074158563402916053596366182642020427368021784996780298147086748923529236225576329646905088808913392795904617650273523523769342849913221664818217230889794070384708310889521490718624752951142597116544969773425539132793455086426698918840579059879259249079321625421351528846696191876436597616240915754250328529442293234659400877810551550688107953196476853611129779600107800617459572902526409349493046973479354414589075305201095504709705243600713744158111240847488138026127905113903076678031815901753983339308087095244100675870601085247202250035265309216843064221777964773782334861519207984408982333127000954167790120761504540772473844292321385780465810351626575568812860294517796901564479522788108532812215440248580595908171350815023588178601471383221297270129309691908309503122361030567961743375716153590065822346907391872806674330052710260635215930723835023025876632115788069095956670301528092292509943019358271504932650865204863881855499053946985916107015416959063656259331474113238204126985500832894101383838683993559924748467328188947165968095284468913127749555068101469824007813026001204600143176672472660439681146582767946825734584181043619351965608690547276315397463548303723909627579400076238556262033821283745022214825764136090156624880648155111263963467878744978476549509010650294108660300640406915625275251159658545423113737189252904861734823988749158243905447906669000447867509356254972796238122918773520637852643098767670398231058277375803340901847006242581669544904698578424943214521717676988966355018820799022365594848565193915930639002226856797832974927530267695918431119202368824555103225970947381278248020911225896259573607420271194717077907721700267935884639268710322798801281408100862728999325075416884525064651043116630758960580347822517274890201421040013247548652412202318642462568583037508260760514131585075592208361850822646206769972044011467855347035314458535960075047595246048565785469019225097515486674195022889288228743331417656524876336443861319072189891822040994043636494418718161215240268921916319089645477397688608153508844656400088028723218478904149673966235255724553435888648859785890805265251840812082794989640248646135924594758584012536975652241293061045151664001361539310473508679481653972561153240336709034698944168919092208622312089490616672516937142099838915966045973884775301117936858597851051582126447190203210079262036971720760672271410489555015028875479970474147904948424076043497709953772430671408709210817633985204706688874927876833801500245163930634826785943061450386510102704079412099207147913649021240760972337462908527075805254601799318161219000254297184562137514090790237903487749909606113910815108391542623349653195696618267404802386479610661199738034233383219364325573976276687619278060401941309466490803645590550874316206933146358096647310456145638850041471146275101337382454853382755122507336992759557928206846038609059435382615536231023368844972750224096114541869067843124635846820549928407081799861821526594564828395587631109427360353833710360428737501252256866440290906116971155269853408945208291990424074047845745661671027874536020902274075279376349120129948141087360491710827427472254459653955744097175493315279653267451226430763187553446606353740921496577318536499425130078306626128621025629847552535276085677741159374995820793215371682630128518874686505604429903535814436614499737863696875052257468665675495085102943147611611405448817754233540895428923949001029083173441698685364713441950603506943568286008824000566625361333878013655820102847133381281229492831685265052870887452275292200936524150667048535484811698470455812863317960537187577751588688568086161883520479793326479156257382774887657977143600436583375668199887174206920997778037203658664341502299056857699688430481652908307861288151416182350179935577121613402972373101783386413187202557210973534537569123448728615993068048501872576464248674940230803637375839080713070073625903636630431176735780922279616833893147109019431528057713474806150815046525346447140126854172482970172762923902294955594094761930617553799423658713389585368952136982562819267706653908042141223498246007222737235066048884661733222800511430280762421905690761311535926998801227878622693557425832416014671247341803983885503646168681323901092078670965918761970224879663113163583985838577101257467868860169591784617956412907770109436636606360098231935834544125767558362372528819581533131723126110399362368366256217763888189439640307830548732120168926902203181522467121887372776710242543530663794599396360746223682618251459418036845926029875044091534961246196525627631003992588906331599996614107787880114487221970859063292244029624152872007529004816329032792474694898184854209110557772867353091779916050959917814418094497127043703110550410360741335925995499296562999606045882026485117576572964611946312572711388328177013626761203765838677929558157250501513272490819357743807906494210404987267327748942876659905495605581477729702218293157482641055200039616335773520683968157817706952215576106414792218574385125337345946303049277103690654983312127197630798371994131884925718311182712555209833964363430967140630468459086979722414274674397713704415229924517299536986802984030878428313736427535072183298923629835905171144825343920787135740755296604941355671319317122818061846767574216807215817677878367237869978413438178786717446985869217217660726069290452202631110840203281903142680499792674543436890691124842938038537887333883419691441566026050191016432656947227288658728560460186398028536763052314057636384964841843400589231283854594467085958443972503582755693812924294490268697552483684087231493752993799429612523463843961658734259356508083408172619725381557932039049129386985830267909310157837854761206458676374921292426807648018106388240536638846100060385249782718459513585679796265628319714175368602240255750780400701696315267945090170709055808727289599330884254520791626777543970930173529231765936561286144190331451603217798972899298618170490684195409415758534441246756416143866027764051732862069893987335691601415193624151225826096338204602498973695875969726917145677762188259042277069187557725273481731192247593026847244278527614413725385157682874070399965559948618519147929334918536601708083240241321436438627214458076175200065970187798811251285906574247209510653788874545631059684215438834623063980328672864425198488712497753052601855300243330912331003239742918731536336614791909872713909305022575451389239110152789089726220667264120333480048145652542700224767114639102610070628151604926491871272747764618593792497610110619620235207488963395693042041629854029930908430405690920741032265641963340730046309833472436582665763579916139440656412405929192200059183544504647906731246102914943269014711516370584459994453045780466472537291166601756813566707539687596071045173230911841801326512121875284868836333835260448021906385352288463910980987052533731907726030236428547943506232956460990609043666985100983391213597370811843735370444475936148385426403949599674734585501978500000394970280526452325544973342023608882230126191166222944227080771513337538247078019758391451525879244953258456219745243987689276708265769807166120381787275652158172842190144977470901651637866671350859986877575154524317265106580260683727264503187043846552997655741220747266291225627870192549076491997164159561998399244979220945402117400843830099417707624151497396694222747478140713767613033691623911343807284404926112236115980811006935377702847740783505159558538398988784314205787139256696539874190891381280568563299436341102541716212881794594077566003145379213426427846032933749250054994548327731899956010841662073445934062160591696913680486162899429094283647469618735374597363931622397853889896046722989341745836499283314429101843899277410674232423994214897788722555016969006027869690856040579617495296384990920951986843071954027691648630603852589610453651932412320510170518110428590592907996443433180683028719078613300490653526575587918679654809692430053090106648711608036478627242515073345516625299973962963759488638870757261913756624016550365939036790056357776335770617944423054837049229390265092055960436193991658999688417907624989221058407801494505340252478705664540000250505710768605602243352668905683031357531222935369504046514523073648442121357008899613796435876760096367689494559279662005962185972223629402798130595722594930484961240623352841815377839032971245122086594515074425678094966718802026063864324458952674000150154408807877075581074370868100677131171147233264552342677377932127410208429630663380782915537963770369918394243858732550070266896235584653477206629193941399663060107420492419547808769299662316487689017843788589460952009513321410191690773514986316168045900944958399587298881441865679527278138449548655562191324137452235890566591078212745888533109810877994199073571743463331677266346708872217371059460861330190706037994083077646583497561522781552330774224296505794554330785364593586702561573812164286488817870718461394219165894118728717477111495551273271543074852088522115163985775685085873120771149644100285979340262534576930698407455484885439882556587897188689851694848562447037999795497222510445279244759302538581237615221849723966596275734636522970799209255831372895148738162958836132291975913446095361916396254573090243702703223542891234647519700947549123182294572324632591866475290282631451459999633279092232004798139957684481296809935040545925466719288645786260435202598183003034106984685655333749050014641578542755531957774107384336747390295113950250044651338063920901617925802377434568137518860153535417882427851110328105149770981749739610917615973838801010912670397902827377078161037947795514596071850962123549661537771971970063704383836465809912952550558729576733840290707528166386179783130002226888610162293011928619739330025468859169833540854974985604662156042233697793136157027420202915915406064072692769101038624021687471657986095007493910527746523877410420300761450344193967006762915724234030930714819329358393691472374736988564125358083065486159797581500987147816146058509198495086422529301965908976116613168471888102938660290494654712127274692042649330193373298085130497532443255872060363974923181689934470257598636559122797859156081592352818573952737803306342200946363185424574059760531318146628079142771114841352999167750621031412289460363500177442860716696340022879025074390403699818783727109607960004825982900804386859235967380888725413445554987464293539964055663134832946169360185198145894416633029805973924423090181713986966386509298722681005589249363367691531945540401308741012374160753111149200314781798991728732469859829577758489099597918480824247458604724805503677140522657309662340433203827767225137766157349303343569739957203141280588486217845273340717609918103777002492422606604880244941536369097418106903276394191644365835448364704983411733359672185751712652018912770184055829865340033688751384415713156545896600605208122302854433262345798896092528653900618831001822070260479875081117651973065608687431546328268627062998541275217276293946650420074171983695889018938717590634172871800685340081684976819404456859806455306555515518926347625116002003294800153008059475060759293846801439668977757839199112531864063578375039232133490599315233141444174561979647528712352354914772308285922401760669904929740612095955523785107021794420609166026249810211408059461030581354272028659742412719281626728337011517214243138415263098389587765555523466498129682739950946613218008470004166121196571971148253308789779552161138867710607398751255066907270420260190570507902185087995083113657353816353150303814205342679330409738814612642846217585480494804815385540199013039872978471514894581217838844563330798996008559818755473045392424317579850082954559040693134039789505239039517204605272317857537893209719466399487676640366749422980406713369750936983807644794091901598917468389482728854593437642018862910818374413808339575012366362833268954340134825720116861481928118370911280409437554127382969403894725370907279236272227917791228277610411845684969973244458889385451169091467922298516227615892714026863823661017456580196797374828452303752902012896742925908309202256231217528078306954354559555058850730655624473194028557703404654175079306741752656293165514377940919178979344999773253675226022749683004280983101027578599096135365473087487144219842405884631915187007330524168651056734862587195818515005674749855066999172358472715064982700453789415679575583353861726248599282817717053782479920390518673238065822095601960663185252716872134657285777559026539650357102558457424525306957212605456767961598230068834031468972965526150016038450186762770174865075323816522265625703284960158618473898372849374719766593156304086356143049976576872835177778094103303449750653461287313173820267303843901131875945412176674858702607626416190123956622121578852791454814792085384068491917797628753524456046183905597175861232273871928540896565693396620269748105280789782007192709012019043003009113769167976734224556341615621025131350640233024759345169603258200200472164364175956076553520633432440214271023670314547361795771777476298112412313435964822200566523044843553433511963836828205008775587149262165191966832825662420810015899528569909212833391660825211600256863177573429485162914806528031550031514383324814147563225869986617785554334440751700101619218669721041085435801555169276439864798321930391194784887272452079750046612257609229234521224422711968122257072919746861838099090597797684190034182203588763437317681518037498362564298454727662893539480034803676348755394241535304994970816854522164809574697666913078414589209773664026029631625529929978552662494256703853229716404442937386709055019776424134845993208776564839058448582736944949063933449482701905972764133939020573593264699657747330556139520245238884735109822693614652544215874945933049383951443065284692884058576305063578183589002567874332330439715344310251050965479981692611042931726474199988303969556250161417213656986980238218475473044060783508098881693615251263357972611919674328583732461685471842018605049690275933973379576199598787268517141747210612144087682668722548749018551365298389329873124542105964242895409547759227158343154331020493203626024393557676834560838576087441634451474364024022352624471364287533254385417774448239132876985326056806738551280147646724856138536788539698471265669971551959001707801584067561125416497297780446499757977976958990960908976488843243539216202260200670535417208186216470706108718352982223140147609079226804423131078833940113314574940774219018531162558619597371109375962358935438619173866563350930760624403541200889386148166349216957761059664985567385822835622936864212599278760786822303393769137103234790467252322369023921309890050605834381087673550579612657250544891636471481984781632972203881467734942375693736095759596424441246351274011023477658630694233224721340260156498817262967934779912922225425930536403018968545509216636803419309228389965694490626862257061936555822492418061132787615022637412070844654362350529962866677739340271008230861547339062634611176377203960510317062881666357430170157306940479838796658801998929815086059496038538384146029657319118852797590111190413503157847587552193644263872738508862727627642960162887904135086328225988121967852061815118112901642628857320364226871467372439279757920232407128823850184638576954336467000356026271981561267580453624637638779933542802794861223245282415382775209626625803494506659949967449204732259029511714294934674989464965299365858754677207502676403480428206519905192466289659599690599196860399522938530417230267714334643011572134000812745394606035417083224902904633628774541217152073152271962713320257466684859065343122555485081211155669829810746712807702833957025720728613962675850283290530837578973954571603472127116544329074257798983717517501422962055616787894821049456288972472871427760817557175929588516427881759871224089712129695263399695730038556708351892194778422368814431506277980277610614920023574351641425163517356859075588196660958400033708858841155945261172001100709158630323967995850546061919938678049313984477636171239507806905912381689267041971043332361050419786698132666953174005698319155613157001289510918654806906379762354864635555491497957496794483516348785914300113347366455368856388047405874161818627748479397966569058399494740266033386976429455486096727731592459987445997769373202337160234018629136850729318891362129092919805413644852420690538050731344118043118916275353507410832641096616219750281964667581374895806960801979192832947471248888345082998512171887121765913423232384481259034527899863860869022885041519575306729798371558712452571630770249973206625400679400604053945346124331787934422447545121663825170117425842823533341440787416193868361852539803971862870836281507072526600315993315394130496353708761699120286813427195983695414923403223733157229641393119360823859727594494968372397845325636394825940248719531544851200772097370268246640188946475227772958896703656814758284106819130591040098235994343047400708219707400297489961056938691225963333756054496416198291008169731190973522341876907678539069197438989810743495794608183534681265476878934079435217146421023847349703354282292143262900060613922787421895389041967833123601807602378326619437301204015733326257839870928546808314779440180707649891511836981842711674473566037637970268546625607907726044060811660257159976530665941144387508708986752037162568442231910679925648727136247845415125486037496875885026454644857018062199206544152600673037049582210130799420179667473118837195208191212592605779571902827336613463519510822732273607641326291906475994912900011747511395570258801094087938109032198386531667441118519285573756501902777500184799723912841815025173871638750419269470957581303195994901182814269527573277002075721247246803936911358096429986181862166833338432470257809744679412710802483053943088412276381042237722836101014960991718875436020994609353838864799628216027383943668354137614834836449704035755659079859252622903500850528990985972009090060551204331020380085471082660960667064032353171157194946164999953442442210329031537521375987240902296731790361833245780659869873461303472690512346791788832174154747074771008655137642343698248420938513577951311672565411963986052924176121345473058396554269672852130820976998771102966352750214651522225577762320268683032717129474053992547844182534300065199163479603429016257747101187669206196535030895067992653355069499572084305134480973126720400548551493951934246648692997239711204794022271499328165855723821597876084557350427783117826035703474833195484342431319077003119257358647617356021084825131660004546893836306378496683451769979096228695050078771688778573259355714072805474581959610507350773763409628606141201860112364403602075201000905023363255557865211592800004239800862449485804841866983886934415884871026294933927332780135415835138942714205373907573768215444128274811845900760995140492447155931837068211983369084905603337383963155263277898833786614968626930978948256609124768706466869207673834471582577700033024414789419284639565332789391224399496980424362226135010140369851149176361024772652491396286837165215028179268596272085729277758418075169144370839771376064228040469178553913979649948792932567222171865121201733114280877172934470492243075171238286825378939317511164140554552073887033365186802227118329981982593670087160722145664977002611097470242994397780713377689936404397229439594976388745826436806454568898969465232644151114487511891627969700324761497906928361660732282674973996928831107584524218779766534526819836852506983061785047523053797076314210113076216708681440495413992479137451124913841987188440043165046767013907077832179823155428807623259731371468048321194752849991809576171941932414611937198261507526084099169220455362296037206462747917225442859058864266757293329001511923877019140217234476600653452338073613819224137360050375567219999008961182821693087291106523538439199382911550757429699034675326549018777084249098317923665909257537492043334018815912868099658597588323456106410530910605685462392229084165254934637374158270117477313208280176095560556951204004930893936697887147117289041151453696925437985786469704548617045151194803885321002954381633411712700298810741006316242177144839514450200807873612463787880953299324866222653867821698484191162710283665913753821640851874671738171152635061809320900990314778824410948479679699507368305052354112716524544590410911414852107324572937171862817795634759790855714592010414161063385171073233659733682940379475041660232150652420110600511675050123046607476763196134242626514099385814839393982618578510066424219976077313751306776971876957150484438019169292248122282287990293014404951697403269484238507123083775260729630587180442316090944590414383839385151835677163770311559390562235120809488776800733583958460292084325523427958301874633019144477299653500717101299408400816409407277840855521503930350163782103676605452601982039093740396434221435520880779659562972891055154164184709745526709954797430540652272584655655216405788748720715755193324928370889381382118149161836167139438681229129525335475036922802692697023339285778772207124546746670891886155191689517103946238631282983630654966062375356323362667881451528465892167095421835638828487625264045074354093013183120309326840633005867952083772491356318594231520886660783074510476745503709009720770709248235659602364846630797974632719296292844856970796529159078067970828050124196345768718035721340611571539202987061485406875685998716347099706639929058756734576881212248186424080865144311793853359619222480529918564431713186691222249364531591265446013364539333475800413209827811273365739174443713452572843794193190214112013384163925227508935800555445849106787365409660916784598248031367884500394776775057982577032680859346766790806979303437663147324492252796995319306653206870644333747126496593926890891216358534041571307844210843630194009271079096717770240765925527466537774086467210292495617897072828792422194710901159217863454363977881088707370628256046775992473591560016146799158889839582935476523009634519228598663527436682782019278239002305061661528840110321006481523534148543478096964228041413950366636359742523888275120527202512799718680023354726457461836588578022135290465842233167890315940150471781232678067028580447563495908628733959080467129123479343476061820773123454572670486943465313849325788585839576160268509948727251466047831035317826318367382110358954108571566267845885332520738477778064455285558343136612995305633064834855220923541939240561672628773871872595246186559530596004929972700209482893907427888110834216604601132028311007472312128787648261197593037653512459192102520928497714692839595802170257438477762009522910745595763036009398564448000038945138400427962005397932081540973945365407059978570252651679699682476487948348642896716202835846445612292842042892328987926304005970011239524138646439120261135923455557174845616468149074771369192582086984176041525128234220093837647520066817768279258037974737448519793926438516188019174460176719484697043137341669716004220207036239833353739512440888948676376098851432259452965240516737976684477143838939758176901549843992805228313377430702703331371567185621564818602517868361252413731131243771445838428209628504154338687144185648579534137028825639357319577215126779162741717925816808299339426846733957120980633060120209376186901455164338666571849179603119019589988476372695364972291360168532323201169473203364663010328306506192391794790154023215772268724494251397567550761423839106548334853970290833081393153812059133830099774286252322644306423070315558216844214452656517526052009855320291969226949064828216786587639670609318989947309168804900372186341464136483128552946841946601374172579616258175276385556301864232637430555172827949681881900816253640787861538773581989425045816950339602798878317976329921370120828714174588384257514247729576235670091573642708213976868654770715727434897170654069546876430972139504527989309407882709988300231348661395772347957797432251482186262511057412036425655847782984080502326767978265218241953919078648373248933251229085048685172216047462588046578150267482273029950708901680016605795118981040120770105708916969132949073774268622834731427353930596433025112017048426653061157684754901847568398612063602693463611839528663393775408740472366134848953152135183589606222648393762300885550841017733483448041249301796539839339344211274610190847965571214600973804859717344071292358308068743801370790394745996293186901515790046457622123564494504835346872099609738646273174322795894002190399999191654349779109376938345772577629662050007414383576820419740566057498674745851180874109402273154447763202219628215399136315541817640171635705258045795878887996848499461128993555557161977421401650108938582897955229268684885531053116585644029501331805842239640647835978444899795469662810125315610398944946141384678323648138321132689817136077947599820497169082936887457671183212815252067147339323663086866437434633629526912580316106488067538093342594995162646778770125649041055322585257901858622011454297562918468146307778983251845028529350848151229942506798318282688597956276305203141960729109298816085339114091044065052105331856422972878822447226344231189552361210168768558525435564204847222213608874891959697514582415014937258576195277376568672163490161647103730117297837842268067224928318457968616458197871671714910084252611011535470070762555164161350592337570453913899981291748488187326626556603590698946479041381614558887429355947289642912159021565888242098987769224423193908667996170169023069930753852994059063116440799127071721763683495588363462148279191922171261481363459277586705235176641112722587182694606227537219303855244938746175877328877514135157582909374861858294805392659360694661131868469328143250997586765529153056657199026225213171329603287867005384334307250097658251659269494261927080784647840707533094454909864941857492027011124687243199512941115783167819742112557349834764284699745541809111761814027425795256778949113936700282925543618370224384376241591230291172279720791599110251494870112599162122569838228128930004257175735089091549891256866825995848254456295383611630418381672466743323661081664767750974763962540229216870602099787529554699172002458465029483228508440666824103788923327483742215475452573281049453956130104440610037569676987656213267188846873705536500256158749462911007333644946715117846929113723877189743890872880778854044518847505284924760313750200419332447886610015824424095574252202357244399814307805999305240225723210475230599804953893985418959655772053862532085765236791374732667204394486818835170795440221134725331486469789240053749842475921906839778910018128193725253509069567405909304555111199567178434528482149558827435252750545024201771166160067238127986815928079355756093221431541526746712650755749136599049304000416590231377831528184097382959121020240510308593936703883747467005037247101381164173020105658414649189478734339487248313235328033694529463398158605842076511031161815912067021742145706971687994765088016502473849551337089805773584479127625644214872441497877012683156492438650517703630872740496947362202100029190580997172490860131514361877583610947534929562738499750635677225680080695726822794906273938271088273251955983074139983670960713583396154399021476081070060201012162422576191667270511524385547872437537272499369022750234004428330443079848118727920637943469195967315034325543457934265912148575024478105367949743989866688812746124767552202186008289506723391998310593460912031705352230073554388390883618973848650207636910660771017455945135204782755146724223268634908127238367358840521962979077174483702412880960816251766985801641082546332862557972106706741330748434952239957485662979343326218577368714873809247346794635820071367026269921156003739301393520773466139356342526346202970610857000429332735328582152571445435662236207743056755719067900466875755610474324614938867071570770755421746435977718306929639483158396393883509790879116552792985668574815131200568652936087833934018524380812878917783106000227495641564313157749487705080761883734798073092346878034612685439397206589663800690909791050536288384379890427867314902257518712394552233968696059665498856672680652745621864217928078363552283109406381950035129759278490310363882028007881141872061479914833119747801737634218254005695736374556591992514842686397323967777055859256488391318383448584702064217238879839725443088847149964038043343794605702341404901878269645221049729321063002218869159075537679218111652365803903925846194526480467284913299055899326256178851734501365520541310219752325404972002601779787536485344375670548039996032354856571869645899067925653985302203003583299792499920150298475314551735680623084422580826723586404384460055725026310016950026597248138173575581224586025339621547371648807461242357224137554994935362428625820703639780665429424743052435523297646258336058267936440445254592021437627892328429729924306401564246797411355755600993115039849676590427465540830575244455513155851023026365023861625389849928139142096302447298278504032926726806835654069741794873478216855926567007975566911095064687834003948618428227228922412048014881054690031844860226629532634561951862279822858762715869227157013918905762245919392501060575466648997762312339768234956265608857227161522967879781536634363053097467443787164036270443844067287715995907450092526201689697053661159359598104164655166306108746694583628796480161811546616093348224044552373018865931258567520054166874571809434738531045542335875178097651308569873354219480353957391960797861648624647028555195147853564199388327277655743428032154554699646456826469796542609840413696018158396795316042316309884761924295594914130460649392078485153344386700033894105732197137889609568848692569762070466847643173167086848779502463463318472928366513057160840478751600847376522322395890960471167884141539195855599330655092901365175885053619933568476995723291314282200706061321178634383202396193020025840337512353003441113091835755628566439345096190796525672091117843372048752803981241669445809199372319070366029509722591871845143634317499848642495163256005068592214910292545107438226190406465639928180036886198038287547298828368761857906692040410524826166658035197134924492951154500170361948890793770075488197539028455729610217982910459541175474788643498195273208167935708119632211310097073006743274596388970353437266793905131050018078302618011888143768761916548849174649195607699339016732779378824990324048511873586060007139687979209159786015781196652950648272133664066483542208271417590167153521251014348121891755064106914473520688957482177304406173136997885279411511662992066635523396717765455358561401590366509875298131243148770768051182345171322775834398734330563617951251313765560704052688080907156189126994949293818406273526379964954595669111091999787894002168919801278063495542310305262839599147645595975712694707164930874600665329789373731433477950093955963474880179442477388709692741764535064593511838255583875695418710867611500962887031912946842786249844812133946236772204243446182411288880619905492945367815362120754368680934308367595232397212905093359376359125124887623818878216261271927725485594822729964766798583785484625919236717188612446455001386027186352438998958885619857336898925313703268713431845750428213152810968735826593039640559128620595004530369793635796555984712993281048758646633919587542542496227157614915558114919449463622522515989733069192469295790492533848670655882009799279589217916165232197830417689447820078836091085693382672728780792256272217312556249062884212791260623503455922778871791464102194903776651949432904701258565879935089782731166335253957948468464651630361517386098017584153347879148167963245506263452868347635286710118885604437495131518109845805068439527646312677039198891818702325331445093084984594819583937362488096281366258942425304796498198563359147675256407245564547211367367425983976593032370498221199614540396888290533999140829894024293274804727515899115338357886238786727301272317214754584160582870472520972917953631093215701308039256768834423874957479312043487698503300555025356615647523091205604802642068601638316424756831211088408969099788109266202739325606200797191939938411389283932960153502766857961304275609958319340431096684945754969729130549593044035586141190729473521842755692430217390836729150013351266846457319914315120110521022512068052961451317004740606618094289866546649839660704221944742740393723363002055157373683842447172010114074910909171486539683212729131600248994386341956726520738188650664755486947635883014906439626019886772121433928074425730242024951511464858052948385258865931848744773623051149609537876579544026335945026092440667236971429293435925065577742788703736639009127190038440020310539889017248134826426691749759308834589072284717044039707144650372524980461396836037839365243275422840255893157704212897628264220742266902384458171088940535689652225560398478106589711728066680493811228464057333038465941323633099891600940128142276562837726243199457539616404384360445820288552200044315724586022347409926788483153133382932177800757632345414184541419756580735050286959128224063729506229651422757241574458777384890241495751852818735810276139459895896719739276179967919788621969206605281230090312168273451678694355561380219043532584066146179089438403297097457054322968954646559944220772423741913070342117278256788169743279720850904274129726933127498790384775533236271159636242909889859088335523158023591687980716899304777815809944895828339102801672254648685407844675030440492139288331282064280346858536911073939033963057667023058240991818740906474275655313510544905808295147160780759885126435033351795704782706599328894556379370731193982246166731192425880590393457758933879747452667946529998111982323003202953300342297208357880785882361194042061054547657236103309443417939130970626162524091347521700741076310164947127616741159587206240279713671180765539425066330971394102553256450492086566610461999094680850332486803274950626183272094277179023376254972237732627163148840939379489362585664030434162324801327143437087592541740897218579724673118010332767488691420960501195216200343380357181122120916923348926595534349035785682623519706590198138141011035204421773852116944128819654367241272885074593073255304567298249226111700195951377633573295281457815200644235934638874356187832958112517208543390341129451510128113448988247108763633183757221676593593264265984996733006638646439749819954411681555407340120569309288900027435356185908070603558790598317237315616877650613131849709523151525135943473185040308054637927556964402063269493110488200623555960737626882719813517994268094700367632630736819164340112576106631106524755289957703900625121140369118118448317228704884853373894300242257077992037376935909538472589531143639943396224217294733406464693666916590670069266599670265565025750696992104472668095331205570959370683168777119063268441170612629297270034884552465574475744875438715650070023573326472525001319052490620444963695213576813707670480038419461216238846053626689665304598573117134294486377858936643815653288329534704038386862422434533712698498189007167498067512573776704085994513253622075762257433353707736000239429825646603534436441146738302682608944779166765466363295266564754003182201526504536369246594008662648393591951980450895394205246432578294195396059825959987372551232128648020420496734574813445939124857395297142615946519052372096263971158023503903553546993926282480918178193159567242711437799498798727712274745127391186361095250820021892163090960648669090779164651702253883244068268539552143961372494431299419518701782285771973613401715493382251183596391440294879634858675641012487481313450374151659224594962571449030264009407285558369785866102215561099791733610429436958075981982880072176094563606686815437533706481444434715437566678688512309863914963031317910093095885495487789661144657235595057521589319765889563274719943777912758720503208678783410073516825663717123045066210728070669959221247921341017918645697764867825268701694662493299926279668108076125144105471144611451759418731324214723326071874047260831153223321773643713078354093264493567907966124165255996200640315192252896542625754237882708300100072060138131301041922905050559386978003547044141745085818965157046030938612631870441710397131589536722407180750157444957184004345087129331316721236215125103424994239745282542413936581884063206575210692676522970391079836459977635794782523830650027831511009436739785730940990782199226352852843177164051327579980712739447439382568906372779468721135646865867538368153510404806889732898253854749705283550226663943242429244316742457551307344881372014214302339187983061244678335908986490159668630551180586742213689824175506137797917315920297181966359621409737804962031173443400795468973745739425945749676922365893452779281896244335135368640297279635515304014381374966504647672084728188132897837036171190068062814846457491021714963688588927972897958616395629440561324889767910504285332770381769564083619930944407679043637820328950224836152443172818160250757365595484389985850864382834075142972330162771408977621903626985070251013856319546276650732891935566355871835051080237012527308811442143718770881131930848973101843978921980132988538851133242098897770217056724356301860381549043775188734449894406905701773234281256282152106103152850554790245837076796661602270971883368277285742272815123468871118069202304309537383829290560996801293988563641922304076859923697053374211994704038011844606639412811093603544906815426084006508543874057578736372420594165049301166931789249451703868327224513207899390687065120892174597251664892528506093963091710439772895691593780619342291183880317987706985721870922608390718611084053595635055659798006715115885707121690431810510911055812994220129176479300110858238069184851782599209266745881460937887016163193161946659015168845286969797544085498883782685360172750374219921623167595018103746387273595365171173789819857808135959738128816659337505081293045293344903702392966491125496977063365871148663501005993719903284935282617569385452301950993144948511508804641719649828938699662061282009970864217027362259711442033116100268275430221202441188436973000225594831402191618069611149802298798037764397004024345177368902296167753265124864295541900221618256200060090190574328109397265416255646067465103117840342790579384405369103441150207727096888404045463867431297127709452800992888734556343782817684244342972887171267772214179341620844964711129929750324937065894414018671291968339742209814599911555263826817748150919455476284785107583910959996744779574497428473783177894898824935408700403365406373529749474662632860434175032262862432106798650126054060749704788392112150234786566762031320590757563902971654876006507790307160498663134948153607186514268161803052531765684786519339532795161500172763544666567246659099066514221454955439448074072945834304444459445373644331364271244648545649466019547163313401491076880166565735473411724103763735232178273218403627617079198579859317993554972555739404778333248905437321816309575431693670447058570327628287784131193954495083541989847664782540604744609245453661516828015504308231841912117498819892281673672092040348737719586620130330769984701036875076799816272235812500106658683915501689180659165577235227857155690905554219174930903382616771788978361362707356034820993875249861374575458867736961998721671137819298607961554448948799423234842278955005367122477042051133250749505423725550961734509941604423952645200859297673178508718418551459185521300962561796025157087586474835131365858784815835269360787260303101124717843342512846967915984761932476436814684725767623291932640729226944408016946330944929482445087046120569284048173101153845997110391620872321571091232561973201397825894319175002355265490902250035971551568881535201684795449219482538492996280729908773074441314732356494308880457239432037330940206685341592519410114822296093879691561843369377189265634543115328685782463802598807745634482288495581513216086309839633778425831067743961372275251608009991110079108710865027690067178446131444941915964759888188205864359014687059918086109485815116455690952276169524740755745933307766529860403673071440275253650142767975086944341916189238295615394384994662244367059934899212097428935973240016479824117707123141363260850614906260296217225884865264486582107446948040422866399447862185063430856584203979350674918022494849354009797461564929285526268418325164367379778636025256673474643524501289147853620076231794286511387682562925234114639817482705308405009087081430348996836988448998934851237657361254108614408521190992083535980540058497240827783338841281087221277514793759607828902290029058694277857492758196080739983312855909632873523422204316845796582204937195164909205485595082547147695066850331039463905779512515174106563367606853485085923179169453873452626647712403173527612868565454217404580739085603017092579048683839144816276700072713572412464535772884143012605896168337174412465680117650989527484538700098099318555195804986701150644112696238974979569517047153253507024016036010267205499629400108945905428870853442256867085470180251360169162191002360742398143826626458943301728934888106452536127337850400618437587620049723238833402846135871764832391032600164845880465185226285560530919044905022267481184403342746277924048682232944072307644148614098834618519528767922778541881110612892067832594440194928411384366604667214684341941507621778376023654571896685903613332045863114545573337846056146427916298861361859447230394545139990554182280616766550301212683675833648642160046807130292519546699324307609704490310511033967511602439859548840372403611371748206868475465797609408577481029037554053358937087927637922080457143323448083613787016692749686180049746336894110189074241466869102473542951821963892703270834036755939862299769154796502011079961199282168574912994409035138208217017643181208689902893579034973574368432665274301713742123017833452399658458632666753169019762158973736368029744479098548789858301954731499604240910784562500870580847148990925850651440306870718736529914418826281811070416460636802229122877976213196569831737309650175075053485033804559714269491917345522401522996893008992247642277847302989301635867674951382619833328213615414746899424596976856483146400377266832820885516663381720670965124702560568969593671915374643914624299218116306058683028582848686654252198254700939226470774624744425125315846455712773378065107573072271257692682032670532020421527058757589908101954783751315063081543395247225333606476411693667420892663493268511219777367470230943987225935104073678231133606810256519539588774454469043629402197811333869818387172158874054468021390553765248680963553537729705819055665185981826297242698967139972811538815078745060128173429586200838193162696099257463981145497366009447487462824484061016617108079384388784747093219372120531656429786471038154339978053075376846809600675011876897446749142856257658479863562629338988169795877259921650030931964799172648566983342857622120105153314247580888257616709089208576030928834193136723321472079671630905291857891396003376047483423966196250493476583092248895206058419641658212269632839181974327137957359521342521594271258827526796346783350753970708250081064492940456956444303938614267178073162047759886558602539831730188691390509755742586895973004106409076607896184091564784258033758371187474483683543233248583133859216554767959550971342447994688292205489394372824427232836888174968627822610779243097323517046651245526862727900255996796673869289536489648175125848099228024485170739828837863887459303673071347727810710054512966194135346712895603989163010687374686076103587497751968817440933210519060760389591302689486351346219469972128366857960467136964208834639335779551428873433753899924652523610444684771132402851978404218836034113785644922896287532347942758955092018762848967041496508020779148210829968648485526548434436677875420396902475841227393811935735927847394097488275979871034309753654912909830369991577197419095642622694664672319230007444368268288622058609053232494809823361996693040606410588228723030977521953054871743075861647840562478257191350981064865882745637615805792085936729652059332183346685124527078854112586887520937289800452643033873821866075164826843700624343279515129346528096961417202621509606511364914378830681535629325043513148907427125452598226288693153216656157430455392869656813014384807451162643295528873774491090233684344141811144419434796155502939586792331835032329868374359302801956509454060223791945235370332243625075192804515563770008038730789006418700191049469383843116420385916191731048171702782993224747843806273465113184923895464279213494842041198692865629207797553598844411451800895476260058752333075487829540154802488941375524093527234953611393091101445869732226407603064497228385900139377984023801769727414023652001304496626594503758666057896403292810914831009893655344990923419607263348167466841029369560037068391813667307684642052674348595294630720162947350291102679252478921736741106060096757037156625946096136671116151867937831563854777059493605802465538527719218947089236928687995667311470588036487138998952840753029372350306429272240884598048316627527140047688528694686845819601564549327246021839402544266733964675099083155461266319806285952728348177794032140967470667510647931217994539953941962095105549450652845063123397812896738776181249189367687169543476561061572763053515715998095778798908268043106259739472241634294828662716720418712403450685814823978505583132504476804566647477974653395271977317562662120715353246035001569437773572406504762368901592626076715415268943992254254154117693562178297157725329191295013564045363276938967331250990892657528988510098096186877898075982019860502233885921251924228422662315216801502558778297177270153928967041167463679277877825191386426741111433656875309134685534616267642019116135946688418126172547068484168852110870941256909251778909600702473393460966708686121825916670925608787708517845405668625723611730766348143272684551561361736112013626626157744610759184725782747794085704851033884296885882079517420982045434726398936298424388348993329517000806707111723311498614774163906105116306365539600393714799810932455071334441661003964524468070128310739736808638034620381957454838166952669214969837289182145537902296114848238164240630626568999182594209589317915896514581293468484309205769301200234457095633324537498837775072716900346676846857059982776238546207112604886168736943265740063884283608206840863498035750013355415345591838373053589590210074701700565690297444072719507350555865571127949675593006120578945476201514197148560645585673535971005307877282467176462578562574801019315115208431372973573294309399365788048554092902960665559913737272240741144143689389158909777185914322276110559074272054069086624567012542753601814600962412165919838268968801681434659384104777663892818253283095389916650665816795665917373179962661678234001203127631116459057797700210186568367010187074198206636200910874233480585915818946574330947005702936521381472565360883979085135119382918972340397300627786520795532909715802918534505612864595964552579710624389492445753653923977703230721768578316153583495264480641746115440045294018699603681187419458069011737350341727706590414357822274567301303137825038014995090668172995357237534864187047163767214797115178258067268337841349875347556717047030653813905790219507046086961310262491807336254425006560799535268958761909626516716720119678437789891562132577055108023076857023297392536042590052843304417004146885963416331155715208471035074409726998412056586829596198660583385266252060683229685769707786003459777082663225835507955806292226276423940767927678930061972747443947605603825325732860681858465528036374159971949110602399772623699586605613598417100861081419947518252468712967601584843657193482877071933886604957532133919449136935685107471814311420861998827678708936013277287418020435934820557949018455581595519464541991284729869416779607957028230280977931642085933418770160383901727098510963835112746740251688919011070705811704639849689363484573217808513769891777319253559333665725074126196682483738516697922302055628817588081877708942616755703080195934900486418620029704548959014162607877097190932315988664424635426154299404672497973174190970588176324020371176655653757709314357232723049058399150148497325143460015008750713514551444198613548939549795637732367724485940056910891705137740635861614335217601067943621488173908125071148151300067438555525540412127679913108761084321288705580488809082026421717161943850740567952193810724869253021251907608558518230492122685223224801588420670120899962679970601620801156017282983637386681665263439469407328361139790631405555879433988152750008346000831534920671548309654104861682466923500153083609317379276351988197377542204766273656578590102847099807517645116584365072478357546259262973645413834643341313329579998647622360545122701048424966428545204570323644288197958236104744870253459445972744571177910026502146459884294576650287414219290267370978811264465039014511484789660050047433714914327939858604863316520833773699974944993579042800220471668212197201163431859558786508675842610180782307239625769376091561858429493636702128433814973444434523865246649681572212616770806353271744806659625516363449097260824828001463626236369058485686866673756998543528320764722661550125172272340884101348453034728972829931264815328179659000836944410862015764762052570892119084542024564120124899821910986811272096549227677440884705229628739617258955529758037160115464784540417470860998784637204616880185014034323811476833669553117894695376334563604478164686025406194746906023501738163059958779738326987638538314259213086862857458156146347596792895913536316471527801941968077846325162555750764909665780564302173536738835185548050481895013650431069194063111205627433519828555962065393547542555816497044300543640172070119394025497600434795238868820593158997634371869863769298555370326996764448928692592320249328786291031812499520478037758689303103084072890103550766678468599955360874121734993611233231505362416071668676024772763810607118377177034814191486259793061761889910368329549151503505994163323085344717549239907489249402334454981464389309688829363840879872010567504167247595085036831680183888511343710665922888300870111680927606018379373118708414871165878279922378011475346975073427587181003933669925586708095364350347654646811887534441668499535658911003187880008598211800156392143970150984559024119348870946853117481250497133011873612017015170787670240335909176822525349857355075622683451060421169886018105030204315308344230244030771323873995519047856892137619390341255848366811239710199021052405782162439090098779126016319763222976482041486802331070093604904246176730605394804909123938984166328863100288583190718473607588938444476861305540675584830343302748713489756525982669061435933656946069697524004628810341048264316121957882046678063277694985604752271892481993419978259591763051013454129034428551121277784824658719654993619711138473032927902497701063434742449251558590339400081428549635195705033215067604192966047871560406192324714678352415561415458115652647256846055327213297459149470660587462969924412960401820409664274879594630700544545245204154859711447803982278738749516371933653786276817875781839571040844135422231722014529093810135102618363777008716797868612153118922121289846305702669526902171874520151419547533911435388822036566267583282244236140067737005559592766375295517492935055714943149747863259917818148643012807241319103907623340677735632168370702288986535457178908600376383773951632855756701727626696847914816466031220152995598744628289540208847667737669420085299069842033559423242026669805866653431680878609086532399937678570492401171263776565825663934822524289808307771193168455787718759713898785415338104724138990538658452463419437064331563298249460896312038967655208872822620537369322373666563160148532903975145120698142620038357399134530627913931571290257355217243175698556311420942155889585593828738779961199245067349811419555536690905059890632310933788139017854795463099946991766136517140340596141732333464378632543732299851332920478229082960367478712975734448170301847574927068828215701389320218203816776718083181341655213642663161848074470057301156761421879747689656348254488474671472518620692545766931596528046965885447313249179545923853594657352082217504373682821385414106538441094261412947501261019790260913490190490425236309370262858157272106618589300982427852241760711275685623570763560927812000877281809339080955924331278272946606914329716844193367246181253108001285390480535222295525069429741935073137585974963676381061916007011937619257669614619927543690441583249748997842160742572164851946030388968171729711333027776839869920093100060108638206005409648702557620140192717523442383400761232386158603387661044621439763237735520639261989552079520916155257573687342112411650831600303997644481277655302413019154056013585297387941081697409746306882021415414162076014828261745977986115287204737187060358305104074276006574829454829220361132842924318066050969151829164273496607472811873005351006166189949216537428968410970602972361928842680156569372360314556449129298110707219618822742047893815569499517757556632256307806315003945980931179337441852254829950736453091806971555734583108814978369929717183910657687039719315116070401394404754353755690480862081107467307483910512279344985089502378882458052027608446940781738906019456397587438013942925430760315328162358579935073620438300981032866785056576320686892633674681064423719310562984699108024736585382080198293060378532381046337661978744842458581519284291536022978732223528635947312319312075948961004858460126619218723791705621305845843565021934532367282236232780817553116552093377114891095085226457101737316047053037464179870168175248485085946549493512649955358571063058014514701409648130117253213681418669912073827249802277780610338230457631220381399716722836636789604896731531805509127409668905248630206956045157729311024129326625824466176030252851638070693176457726140294503588872015347214570262366604229845836976832833419833692237162211843905505045975628766732806758891681691004136051821746193787563430004829270430882348700598505117528741854969927664679865354688308813939067050700200582325634354840793585580662219216158297108539827120226654720675540683972234756261002884408254626374002842150135741958871356324396848941746441651679678996720454280883529998274298805534809005662793894805818378410879152789094350028931778519660018017396696588863623679647942581755779568225848448700570332656671265350074643179055060266597452706568772395246343014531733131475897131257452643132844913301901651033376733537736374118983087001654838913906043644160604602212599422833087796221572669595970102044823484043838180016172986811102714885652116645709439645743670794279899674579135670703706929771325013876306002428377015551239402164362448571664070036819323653989456010837354200869759034093965226846901315065939662893574143080433514640713919507944329644942832557548861464387540530841649345592977275969887138928486368227868831829986579756597073548521693227077664559455611973397051624770555318799096874375006300926495930854157993169620835979542892093990541978286471266628510059788026770768055782485632914577753610728735261977745929743885620459526892766198273862730123716066418996815409423223508416301495770566766518774134356259029497938934716766620228266864951169320690115396611386886540550953597261644813438092979496390597696400475618863173046064015811823402158215874590886541676831305499932199465132164349790301136739138659915217658334431348341380312593272172264306685558438315712205144619469162526420870866186088001655875707123722413924613140550093486774222831375065219770659821399719512922019631067016145410171346137381683313169230112897119170548861570917335708135103239106416010580819305342919072010324846011066228995598229635585514051630524244258323044969260593068345948777570813273496798154607337403144279167939002861555952187998938229268502308654262149396591143842000356408262770413079692830665203347527972694020385288024222049186039358480017311391939803712853890153463369505695814448023365575335011055283085552855585701049137146951055508325336048674232989895585693454754482910883584975892698670677196394993774065782416115275423414261426184134298334354391436742597684692539580102284034681507305937438811075901413680835868009516670346150226843449107410363298355121074457161189735716810129110007572007518522985453661683167415513670110021849990682819175565723784891172862311951549729203051998694261833709846798990670308924526206804728496337827103848042552774464521472024579257254402108290760840775096397365755581315636924933310633164091886504271837003184631816115872177744659602618840210900703218873739643561298171991814644626460086597366195541493554425692073659167426953667767454687161306862192443198968042267523096806110902798437734167671110387182738029982247940984995703185044927129201992861138966879541526249333642992047990670817089053957270644916663430171238898830928417394732688548649838089097622103929519215770274424964099197298424272366667482732204905487666909037618288573840223962576726917564679758104665538496537194947298662677213393996590298592071969542239224977648958104995369735286384144831570019928971776723058866168418378923274920762577120307475828427861515771043849431029073144756033739731743246398776836392168580757451441572153308899590045884044221559071333329109673081740666425665437935281714551571640752292352394074403168042453707252310416933471714416289790188973453489294949060870502001698556307904805452007194406653774649933650300692327703024066773321145246668924769799736661359307610722416699695894404568891910441770654676705343841726625424043216085977196921202316400914350235617868263194815288327219095085802824174088280957757100557500963629485667419584937232264683295178610909745011184864008685238011342658277801935217178970060696801127030778268492970085650220717629529407294025541091373497463430401787355759019269155926417325590667559200429203381088379450441501157644613030457794317129998892940786062804515494817373080338711901453555138982779904978529125823463784129357137698600833060530199963571394579568207594566636905158764818846395438881346856400348451535319910382724649589007147373193880168570811987405847193379187246049590246272713794841382802901436754529043742574667756510127448582597871109334723516386430039035465784101613320296684297856495786864322551141569469784744861565753301403773662442123955229141920767733620506280477689600553455657719136902524785063156483955231266411954757557068318505123821215173253540407207606772151471379308840557152952928509645626455059195224390657322993516614150586419887935872171612115129512370791980165530216277509297433079748327222563308886028007235296307519800525904318617816457240202379992979175754383130570305492427679684026661862581976005425199654140138890343756138334601622294031831738471174669806946951970855275211948677231853107683016480699014834340663251051339338792874757433250141746930028614494722980456851923163970578834298667298258731440370030967925638677203430329606268495434048997505567595174798480155376628050394106173256948705104418593097016685693877026818748060894416462180872840571866105423310730600886213042376475437699626512507620957419122590608078329717253373317501390831610850394285855208613373881218129068033531129901470520412485974900295283280091891927945202110063380098746963637645651608519716656973139680551080103602519804769252338311031189588398831626786419205641216757997242811510760799437126858719635268711867292575488903889825451303074108442903234594521509759417505133763864256702989458467659173484634399785584958705275147881524008695528845913137830987114293453727490466311846218787734609666295711801258832485239108970302425097089929442348074366588631059735434899446562946214912419163519987655523910776686816991994857757844043756594969452802036624252902557380712565917834758399001492107419001269951644238925610385447637215162569559922638626446603017686669404966855020415495929974727070372182861989767220258252815710754480391520947422152969575544057689212891538180467942695208870170887241822293945328115911742906438320182447419936454660520415822139408393432824785508598156441370312523876320751606990283981757758382009119480171640910939475058484761168591543606153832949137747506657545456235186976851963325511888980367795163482649067428823829831573320443051595956778457344915184696921163492280166129702485412575729742004409706881338514696991206150328898987239409104431849369385006105324801238533151160412092898696767812224966884930877038435836656953964955892168332726984064126438871873495057008361033735812630806740169887329809835793580159111362078732304579822429689345202700438567191245089065020459296298278918976971911308832072988919817897331483103275226883619739185653920664438461801730369091925248973762882927276160132081407347788591419185024184272908146993879106958786944276418287505878526994567775701288860689838105909461908526094305791227928121297080928985219891275585963596260911798478330950494722200181787593677166641942523764896510202166341621793459685928579374364844182185708878187144075626736760471042570856947860738847972658489131917932772886286339218415149444475680884109830815511994657881411266208663355485016158530668471397243555849392906693888776051655255537184777106458081841099370451466075394199367401157150570269166862878545825681463055642395193741907822822398775777019852664445988371353162532519393381304825304745728009985326790171124047023556485261783986181417926506245290900970651122134354745535333182698375299089937704692554997714841943089821379010934826048141574987132587830286542173078921986656647403191196567731554923398325571603590463743894238301766423899274250075681124379672118494619504092232837458375894260834717901229442952894089033266397330625964531334100809735289042460417223456114223236492547955086135572446267765857692895017207382135597487886651601504347466368752223059804676938349417548261759982152436267418303913575199832070550058698012741244417839687679186859709138481408954399340296923303806437026069078465683489076013589933120728007150413202204213083336614287516702731701969686214499909378330973972259685992498545319507691984712991779058409597041100666397789987707755289282714786503724314374713925637333720731705689138958764240685324668636169884662913579526161062582802458474680656010871791559126520763360646127256345144387088548895602850907744234977141577439379542447541536887382324037868089205815560170794918499489834962768144596502616954363819040909914911060676508259395865391902151981796737447792647601641219259597381542682561603026906121016420303934969160806742095644578147899651802634681684102297857535620861976018786985279839476612468120740841361603004865682355171927973821763806115396954507390790758057223145405935968085792619344070686699409527032016114154520561596522119499068922630333437341112633158023217723854798418851897007759877562412181878424334290011399170255164021541042854739981980250458062997215559948163430906893066801110596764355333572014981724518747205199222824648490539605831630136321675610936482707114123272054934052238670742419363463356872066770029541177281471732547018072177946571939256736528629466828243900064641848160036266328268758293427054307026459626468736232180094468514770425861316936728182266165027885509026551144073860324062646944390981725741162763824957980224454978104308935502007559799144570944861883524741373589147344668025374028308007787873969881422087624260754449185895237025381275033692878681771975362839797796639278939360832022066658853829072097366325641673473010521703978640244577573380401914714728967539822252504394630990948831682902041213928993240079143666753958661060826916792726394101768350832181512999355033736365864886138784674885763949672161262525253523185624231433329671799192907970493135955185254147838489787028722428816704366791793088702977899186221440198051620741446139351661621993045286864700013367664568185329667309454778373016542239202937991773960407768348516872449023400716611161271208258408112165878588135208970491859536230724015539467631157223440625227441879141869144099323302945882980499713425185539111039301822907211967998288844057549415208200288743725269033652696271306532131805380573547579909635712225171305300673309289030245183091594137335193961816219417863658999131291605073615550501179143626388911459699945666663934346525737903769038472461919697498970617155672441522611263146333418240803239773565705122932253409297778878320148815018438289538122574800113247666412181573839126068447633139060643100269568297415945810514029709247873561725156701729061367727255228010200065469562666100105120076021884744590758709866800837439056593201531834225462638649178596461568217281761621018085189865257781216910931239523610973336560882205886702835108796442305673615754672895400870570009009648139066756133451534887038261939042069751067431634320891056007780293831620188133657508863486335968970785136076718059556715847993964251839193319881655116530714668740102646143705030597589801847832738210815259033192548529781510193269546942969898553600508498692005003344709679524178855913264076617747949928238493224620255853528813902659508920217262069809441236489942650542172282479717391162658135760718035295401968346214712022025997866142080592845289073043295932822298934331781977535413910341127412743204005799704345709505269159912778505539921235057007620549710360404646494393602373449646301094879724230570354274580847813076551666545519335133686636168244010253344178933811033556443024733606575347953781616358676316891702618645223854041296666582554539964406990978921481377740595233339010648746180151455030560925684067350368325799570063156204206830348388345607039613344554191826531576266225831680453435896811431002330161887800157443199704671405652048259373695290415064565158238273282871095106679588474005306014026512167817305383691840806320186612959928300808029804954341407023632386620959012875083689056567201539721951576143827960360294493241290255798920482623876575323963938685479234063090295509320272786963190586539321479396573595608801871148619540414036550620551636099977024287569312739050277135380167892148686967839894164574193705020786395754130408629047144561760439661495774455903598937894185527389750079763010873609744391453636860129787452301414172004053934013805556449700976770299527830289598150404699767934903828981465291584717933054554514319750801249700137579138074396612232580548982533925064869228748813490446390087752147077067340527640420851224402618187248885244354426769785751565204760048515380444527329796741985513673151164260188911953538784358641887589994247402541782946721913819303129081518206370556787616302487016289748874337951850689847025530559805852913718761586159812607357612271637709840760267424095835034943775958368613434278053028839516314570461201849198327653182923331683107095719410516972661698080686718482254384447970447050787190835891714427768644210608158571286676905433972813451014364141650344685377048807735996376171698152828464106263276826967042639841491070531346683804133032921834938461063395169061847113052913026644032550013183411304634590474597358305786949738540478891526000950291113880070094806782767755090419794687137475221633586266598093891474289867284863647219786636297600768012433688313583805360867344048647306630789763128249432819933254198109020238761851570424831086938522607200969577521255716129415034582067178075433295552660805997662327888097040552403930118348081787245920178008676470538080866120855228788540983352958070782808941762277922519167555204285550520873688725262621221873616361781845167966692653045907422792087324539322984068473569436744167379956934078570955803639065246344970957289661587184386310582205549293750894645946950783368105782755229974779613529939996824216541169996661096107066746740338792818234906189844527742569913532587949027218596409465770725747398668785083169959263129685419689077441798913252651601967406907050611126589055530160239257778419673667100492764510199593968591141762855362525941599980409486098103281729774199914427169368656837688180243660871045047609482339951255681636278853189626103392754262753448359361744364369506786564675828480142061540364520160422124643473326342208282252054587054461611514936982500775611619746325961542733436375208633874126210572852105816731212363198283334700749718763565192863734259936232828781584358493473884247879314442224104860341004804029858204894891814432214279565967471355735097932004694717464074808999792449583473822026838712637024387491705850714068483205369438740448390973564882951952311585838343633225226422966042412415268513829043697356588663170994826730551957598425814946747667044329757499482280966260212773067151357875850815366500365261899924057378469371339161592530408216993425052149686770801083597372982099113866837052243995487451704945890327904931459814439451276161733193018489772668492749327487209403506627837324542720456240039260058739255671658261501024235892694346312189704444623743985940653304664597978231240378057324989359692187048870169696666492553085552965926875559299637614717980907739568629744654042732784758981003389279542208469622907002817298538040941236670630291831951409720066575863819510021329928073413703103897832688971916675476703805516784149456485903462090179650499125756659471181141971917369923720580952473917818493402125897198486476053744163930423974045718466941432647124623426226426705974749715920674446944390053689855181788707268189604134874285624409591743108868251865014514361604735904580623862483789198281865753430153843583582452131277121974713480436942156752586495009909696069477644494977037328801920334388458264831193728566936637012585947041945270579530595669815322834070852070250753375185934244328998299304277466183322898384133245164241541224783531363487325586129120348772398608345346537110634725977827779868891281272531836747710612956517198979794602116393253534699798333710430443645354663472149797418845528788669582421467429439741154903432265753220181688673453099338644311001581649646291581971509540943380101023044465372119624222370763808127453322704556172790839685293945025342429088528568971696952977506302240088851542991101484144149996848926408217974138593356535733599080009777429250369885378051388182714103042932046670335826938393004508136439926035708237341509056873790890713584206034083923460385707330774651528285689937394260513126852325008028750280643386157916369301235824156861392354157011663763938697303368163807546365253479685801909351272074299450241375677110606451672241174661449462554236202296517956269361085667738929583512357308095732049037176233093822727013858111713564357017699465130986171813704872541048474418263905740575512908473856169228008879098677126720015428061822105420185661900339804985138307524708694097863117264607034011401357456335449836163855020038233171318026609557132780706487821054900976397670886559185082517982609807070345896918931924801206373888954999634234130060269179690295803344612422867561710087272196063549248010397620386416448910067987643785240632241598042565175455388259964838195397349414908012172621263691500147413903992222700504742722707357422222117830083931349805437524976811834150001043305781976758743687924551508166086919944188920474590234724384903100022299915302480381354620406518791701712524459606363094154770671640373993800111429004588460787167442073142493600366611046508539767417231463016502995790879461457410234445097027371159752341093547700597015604993236216375356404008656193802617247551854696657476698437339397953954791733970235869831256469092811725432930097942096565660120628390052609398560658310210238070760171304609613843693420059395577297217473386112130633178727089230476250661857862392932248413648549489931910432705117152627886789221592006199016977183586377762151834984972775849842632878746367389935440474563947705544257480504966647105053779294386459514681998694106122345505500594866481204867776428151347080316911740915053073972887133258241079972839254965035411119470006720994531445077587481343584217053292777638180985053735382044327955899185478025404543331268329049396857096686558395181263453264449087265842563978172289134309680744751222776655191670940957473048940465951637538922508629868578392430906132812064116534307535929582353990893447925919920254736521569856828963060997329007061444929057552112579240623236493900505960437711357463733607263005178177347155581993547924347007177453241781123429953027263103577557112640203552086481865509147185466789973474000795573794648442954237784370511157177353531098811587971015036475388823637579006437748338993603825360368072568399627356267643537448178817856475253067197474499601767483501017650061587945823786706770098933715775740803558596022871075929505888420929364322839682198315861130750895603592707978425078106281255750375166166965433582650049330453341801952799931976482809858569436794348124421341826901129196465407775260526448576440900551068334484634059757611570569075724270286202724582229168800400374667673192500847896960415200419282256444222831646014269095466188745111205432314288476903539248865096787694251174246115137293521289241280945810289049036640972634167813793621815179468487367023841419327840677868523044573341896959027796590483319265497210162506127158163246976412714122859670359043274796277212494690256311326504207434910005550286900812077954458504859903019744406720470206178781464964725830479072610646116055204277955669812590675233115758592169211674301174458203472977629838461294382003524941051632674725926639858473184628175016382801827484505174088904424529973925176319348887737642790422396926598680159663748214179013065018208591217251364106592637945590742684145919828672355289363780917800046031589181444252746029948173393365460902179138022621127354338141643559806559865805955704475434309158842486255954046592233482101957650488802469561760607045134008441209186102505575902704613063499542919568981834193812196854110377135501498677098809960714912155666162728781121088750400089137289323960007007539920031819267535965476218547400546788454234836718934926848477741993609981434943583662946723337396274303721125701696481126023609521884501553498747614569094689611746975539099874586155017523229721528188543379974771006435422652871465820103385808743435414688590083961305738134897406866165442090558308542653171271882730442935057778882965425348461944155106680467398734856317255882797184325473091588123737999600536797752593565476081255501867666588416155389394678740113224593052282645407427673921725376959635221741922219275234637154967656354820794816756712996283449229599123470582036893043796256953094447317441125273894528376999206019958885016909937580923157573012886374681610572943776758046912203522834077848777613594391730326284939643424631843966255719498445015731123106263965435847384603331133593137477387129040755583509049472654447496979334323557695696470978068947438038781388616719299333016342103356312868953832329456917143472086929914961773446795125224909465581815859964999879049002538693846101118272289414735761107284283375560355350055722228899293434376897323751739609355850880806962358740047031554295292734907625457114625031358310825584355756793472402618137749786993137787516922015463304246918328486489304470215957821823656718417082083645040341816597876419309523875956811313994982018311393406542637036075888002635923590888498459568700978285365030094946001574482776774181214149973623022180225809419228672448944250266666510208029279689183208638355811481427985484469420813494317493582201826966887822420855502354931760091526355537269015971552385991192758984463936660490331991386952662302761397670894486341569322485810107367804686233786982098438521887662834481087591244864595700199781703428696744784122759425322852925019290334996110339635555427950225644076587308498941188028735516823347750514556242288844286642500899672265555205813914475213767310983667924261928045352118286777714168236929409458628282799211854491481400477579355131924886272032508832554465225573796765401047564553479534279288422127776813012637401276205142428816524803542267208217994970441040049135786904865072821923348225275076297611037836066551446118580410341601835114762950135486782009596022395777326684409336404533275019061256381047720811247901871203522573919441466289158408758286576928743019721991391474296115419688090075180187686331934781339142384222646391676625206876616345017768771131322742959885484479409113353220124200984346568105561757636664363626131816921253447935466220094372182953951184831003094253620828239282335272761413626997368184530773123588483694721380499413399831039447108625949296408803224214369798522454945328603224926245322283579953627606834915774807604984593489607611733453446928638415272429181682794046889658977472609387285187385677493816735389557321866831856803910256486353111795042521940934684372590921140655146389925127414137786028795132516486206791071839846232591283043238635926254328151389664421903655927718314687759367887727941668619974295973460873822329280137924612293734952550015058517349093565074682985794008352376003338488039218391336419202296241713667339178237504124329102948235364716265861652887861770564796341257981384594844005359379130349717564434862349184317117351411890752771031463138407384772054151673334087098716884067526975801444111039798704777098214115306686327228563550968315301721974980622642297372575045250978184041411458541425822775183264883978609847165485861506944485711364140250649997320100608379939037446160666194006290837170761326593080834054911173938508635134425824036839372549569495710784399631452156316471218534989749996855229863489125121636002576036023944772076748668327051963105712897730912976425889848094992559964271493220217788425504848913467739369746325888653105212729590769090674151509635496477568409602548348003393666570750387181791377299972732449726665887286396462247572302461034721844581442183256438271358144253354025709720743993369315650148016817447513048801325440648863710013076677717578517040420380082999121050190208416929294853698037538639076259846285649959211415589858260436295021237728116841584295767777879420995345693075441950247346316695579271739176553614343155039951198568594784410311188831914991220130863095778901043425748619951999836623868176357976242344755068262781318970258478682590031238601659077307142831754735166631498798166321933333730278099062186655145668012348344294652150866486743375376551634652148562863545933995729955256694992762516129045526245534116897052438882558002199444397530516161543512523049088370635007311156615049103002620318860552075842784805291737988436429316471103748230248449765426550436737233073437346567796453783272299662445033651758279217794762460462128766986991753630005123499328865363261402870742464998973240092903257620960028506612891031116339547052569138760143512522646684908168404160158007518029871158946238384599083683131841749772311841599460641682990307509445537047206144460595020024153652910495172745175021027932290229472371499199883407964275030929501297356184321821036381699609695771838181642958396582426721922791229817212416794322508099928286579945791981541446632820754731976725814739343978827795089141084199622321989731458114227303682599808583044440352874155802399228571508750418078395523252203400404457283524109621919323148539757191776045288241937186806638252674287472037079171911387263721113273272463464819467593872285019250113022920270262147887510987726410786671285048156173074385642224790336589866499099164161653015278564612570996249400188669592071757438607929270913381558772219369344214476281713081107426913660223839945468789968049484964727838013887445462549327520548595545876129903050967210108904862570795239980458160761850440665623890068584573385545251892099849677141325807601452815028404857409749320550053501715689832471232506850911658702783900886005203149795815794154200929182744477171785391443977410949337522706044883226105118830627960488787328829877433958576974445572416160689861994142943046204639081372789248565325782851380159795326357685227428282549794796796598878634225206100104668038944975358481783329221879427806673320770267653608790603154416246223655846766555286522543266454430180235561669741077072909629555251856173873039050847462276295467657414879258169873685675028374554131571596920476797382762344390669547014427478800044773298646788931472421614220310836215200286149165746919890912663349473753859598374134936612517952156506201353374278370777269244449650113326478022345163670873374379239856549660877655794768826263736749034092146041384383804996447175622600973913722960519450702535927003141096414602083731218760668550037362639066291980444452849831140095407025436298119620040298741200605997820563915405630613186037937084171297902029097718282144698008773216754704586039114930611146680268532968394206396798054268889830064654968739703037709429241677626205607166789489318779182981017638825610326760420249309174878266300715938112027638209201011061928268614468202008138230148522587273414459817406522882500235584989895468963263898800129303531047340568366037844434846782802305904831847181537968873405425344470417421593313427086821659462746998905690804634036489757344381532570060200246420646733964859361137205730605310840161232736333465855379877513809503969948075517274446902318216549867868688585696790497558517468129396513402212166612328601766739809200084418088491950234553838148747688262842479969839315426830398190864271345698419262597869753857037292772474089868998361794312496531435480220427870765869259637650007273734836407726655981415544979612281179629821099389029737963855730902738432812091244300969457390989268723058867323707736981984640408311716394188254961716828887991828387452111155369555071468177941280189882331325169595898383655410914139147946404288352879498329392625117396272820675590947181430378410746544206559216225909322971866012294501939707559514554597080764018905590567673514482065325898568997611683038848653485385995625742071929742866868337170710764582814454759222255967038471266302570655389722029524036186005612705776389893117037838582016874120635829555626126451911029860107377075061583318960992832415076940703662076397293473700141844827092851487896997826466780724018021533163850645931769731112629682973295523453480063634485230391670830326053507168961549160127386279847848431368962318468828072516373098702318347482891451678704425385457666753604221172021611162721869229111779843024394852593118505594851542265571269689287770806690615838732477776945546033126606554288644006776267131443283922025055851272902520908855654161831108009336002542760649747843860925029885469046704363871517639252079286664992271444942115328811545916095711864256175150427188803240583945215540722661069763252522662495361140932671680382202896671384115100198406241848189320338344625295124300985141087262698285519405375655039204415861472090286925217131989271770646302484427438180008621873549343648978534916454908212076207777588442539681462776812165602321864485538447305198851167345684785993566578891503804278807642105926397928620698383074220479282145824108124428452338361919483164929783431795036430302035049067926219872191180400737614996421187324116168787338166157892750325452827721311589988590693499839878573917936018454774331861403541331479106643028899314168778075273175462712217854729287191930851527591189329522883071345173938438959040896465506006440108408291239105216525838404902488414072024677307444467999361036569935063738217341463671025715619675008616783444823809703690994384093642026273859527772604766205771953874871096210601139552984664686587190580973424990121617225598552961622003127946646535087717752829585187386634717850929441938132814964382054755203944933414656039388047960483247493322763119796690995907423055476570758706887291950960347580575360517207504086749093818731981392782443389680215150108981453880564996902101974816553841059189788458755415858524484100451609285856885928012997185632221669004653466681053949683939914104449884477470085085983631154396509252682471819970914837514617305224899450642115318628484102131775507839353862215016638633992954828893403804571929335716967227151831777562355205572554740628430970325686660112371060097992520487333672647163394145201839339288872847553888362905196527151308130441284793157051558546421356668257387338899854305358315881366122589114829326309282506906679771800555268657731234992424616552421574790935171974826400711972084061095167838149573746281313325843725805925562473982514392500181705402853378496550175695405407737095863679702320895315625350000409931995971416754747397935925886494499960973933818946626610462618234207227757399364704739932174496145268962091606785863231698057432040389676997076078091576570577296236929147432453041632542304203703788427400399448857838298945817100482829518734792103153608479855085245635304789578674348563775055173792027551408590296771410113704569764667011881681721683793736381815690304676248115714536785325727599949119633939429465269706859520609471045984636148150666884983890256769583158226537239396165242971806289614836929618745956029348679302386154444891448772907380041201616111040109727611851669135267495512776293405602107165692350028644333910520317974459095231651866251474629851001026212070704552735750003356901661218338833489280917970749107765639201675112855709380377723159802304927396939509832157908928161033110955324533441919506816273332942767214842567964946837411221790009834175966289299383979841300390166709752528870378728267146310113583521702734786441573627644472743341208068401354002082921440483130914327933800140647299401015438235576300453195127990550566509771770375940884893247232189712378784300677783320866941835065479641693199241373336907791622812565370851898691301268314661898449124103327914286459838254716389753669027201235804976338473611826638224621207228467417880912686368532558282858655535055886821551781260044309980978847851519669992460889020248144236355921185719291728539348641634877044675187906940081717612597145815575316208873214103299618708227758021025423956493045204727799328308425540359796391568515258936073641644646791074214105196264711646389772081004739723255824962471120436203841117505751800992695564295020980150837238641474044877193946999969592509486386656020962330235965829644542452363001770154796204544744832602516191979774694654952478557908647646591254152454660575080417140793059405307967950725848376670611236320225924748385391373266931389257049216084078422174042392883575635196928618378995178106970806779546649340406054423626599066072618675302758612307516209696432919759109125418436561621220483259494807428471399835835543702561712623779242665263342900003061534308430591582332924479812350673080716857072364295133532393880388253822514479162060568086920973673314518161677425858617999819853172288428604365241387922750991964390450732896434616617647955445092125905279303664883643142468674415112499407884702933385928690730957015424211500265026027869312946073264229863065268892720068592541532743990465888786151710340543990422663575705693167902395813317076438086236364917538678728614155734590984937466406626480932662969712123759939622582935352534210588221811884283323039805894820698795805727062639128447179410118878456688301612009653519045202346608338685400492813522668039992692317326580461492561802945651549742541655880051826298147977611325608387824133015448943611564092247444518020537182817979345497564550440805667287018448252133018288025902388694745108382070769474629650521719323178064714192644423195778490784498961154570021323310792780737304330170388141590283941447580446284271805182992397366018375180351714729216293692432751636923839848312082646270808129889129887207536193507886889055384580889437460259666357205257413704682443347573397885335712422041589307794396499739758157640147128091906842824655197492576470192438459160965489547140366391826423762629689873556747684117261473264796239729561691063376865719845678899400509993420934660136463310848719910583478004255783818205192087803576692538250619998367851624441785341588468745241813413442385998917247500531167045013321587127686542319826088573070691155975775660538731324482315061800445601201430614388571599921001700866757049569393531645915731559454933431141122182889700410327537785650342178236739182256058561458678082691167533656080989435745754162011520064999273082927301013798438855218845940680136587419019717133299147536376648940886392982211959290800299742660147712058800448898307367269387818093076030097279090969169739599081238256799046252734693288251564568397249328516475879711118067636508374770482779865158244761819120877642160722227864412740745134013099077453541877984889876229234343789940213418500065214181284409422569097584037665393702079611605695226268305975581997638570259269050805281344012598665604265286191584416127781803854833849870513353591055421281724570538538335259492805025306063852013684494577859909306459880763724884156227888898197577785842381894005327366080643271726951294367691993679091760948621706224200402948005030240377967716694624640356065281699316189978264235283691682543801522509163870458290173771535330657827073563023318288695418632078701250936114782124805387981239614257436619844860252321716095637384582716813830795612353802853649862824544183496757221372140466484553689804346406746776734675860089064286938550538998699460442347380333975065636655216139879934957131971232761773869315234680025267353447507753017296121539265978153150033308606854642260689884336054286177019357833802569021935628723111680974666607025592630862870284531466055996813922823884914678258549763612730508717524781556690966891227188341030914276323615893788575493406019433691071247531360757881552317915237296851565835910221023976787112426000219700086656356690463979443079271303043109573675076278560414576423231409558274656356868410504046491942608814568014314786578975860609863233500707236388065747379612239278603364043821493753750035057496650059151136615456183895600701467355353367906800478086126047072761047910874091217756965827860297211199645955958836545363009632323030228444249213516153925351275350591765051931972199511246313435772722112182866048797347709076665906181230501536916137243183028617023874151632398822570452188580226985283388443259404855519463944946887777394773628130053033582827401904284828262014031318942866093803281127775232537731288318458188212314796925220998023660661753100904190405217327943264574792137219252576811383274341232145034617156696353267943891772495102964411111629703956852883989416764390386514961387692406435573023169838828411492372775430023107918018446415992084934093993028440613272054035832118931241900509254933714324737211839348055162619595475841038516319902677451370640739659143591593121711485894814664026312867417096737558561658417302712091450249601792411258405362771104377728389541409444706586516047745672153935958845153752319152902744667032081125763075712386204470581275561036500496060669838904539737578422301094958409918203836240640390269222404204781437033602372417271961097432724253289011230634397105604746146085991072556083042856941567603519554528431128470605091092128009500766403216711102656562130220844484913524699676050686820892898597024933062886891135647773558353635005830752071486957834295518002541382654060999910841630321156916201612269786750588739727611234427228150000731951176649489543055156252764796742698448329028006948187086354057856039811586467277213372668721259392696554316649387960482124605243096773122745991411930410030637228489143610851425030946259419147187415286026407974606994068762871713138608158066074435289434167188698413575149674624995757840348139667249711318742500167131014956912814290284974498550266425629654795635596297648607833768384809537055843091397282700216547684833580195494304394564541162297556546817876188551275073709319571210513748254866285695431287436114841978203381707699876343475491819765843733104137907640440116036357783172157708025697149727668162162826553318479901090428368949169216817325442540118578538088883205643322090783026061399217644981171094754769267565946808688931065714095621940160443518303410977084255845082020517390159476168826408620997093523078482878928802998645710887141543659462442122274774838650015464752520113407782527408296822475858528454905837372865120205793452590791989451353542256726571109228477991531066089598521083367896008491110425625945129915513241302964686329835084002537753146503109760630621503832827813290504592765559408119815872179759854272292266440628131671588468741663293875948818249841124699137178824203107451042136732214790478424200312974683483999080583566934526393055144785183898524011489989236370366974465575244154309194546737275136748694145151186533404348408929264216462460426715621542631965525612931166761953062179574598510250899460344076237588897863950037204842528796789137766304638742374988728026553271499155705728329496970508950751810367800190546416181188053979762998883275564737684509713108816948649688861378500128857115682632967143366049063665031941009647282867694620537085231245433173568765577352843488711736817422944146806378298760573144559035433078590105264760343882088764376693906492963304079269993328105682934578750078965531829926930718585595460402670134126259130384073462066325311624261486485406653131057164857419930554334821948877674218700268530470799198757140271209375080999566123112877861621156856751907571571271850374413127618480975849302180670248411130711533400843452212052171045084782614522931177529180888685546266127724999225545304254472063365670219923291041216782969444425991896139177987591514650708515251938037628504908098760692830370048714332623799726243086003283833969740946106789310688590485626400180729319051133255390390679070666721694945789751972526563100681601288206780426141950301284178139990192332574376078422547416080444725749869872574817646110567416391407252424872726047067716068690523168078370706375900375293663980017573863747352735083020664325674031717270060019702704887143491761893353694843146930473373149243873125263867748847880357775608980749976834416783511320264986712759667802106416451423638335154451826136476325212830003221268150245921283256341363766964412219171009630607539199831192616191712250840457260668923538621113186308899625179292990433140044493313965171079674035716205081490626383805629490905181805270068753739191404982455203153531709930870153627480358839725387817568889206508217400245757768781391171756679199048354354039032495725943891830814692479467070364985576828088004140795056423524939317810045795161781836407808755660047042348167900226309485111052188987913389211799473581453975466648830927211614057215776025794435244676390241360313578725472200192162834274724144188926329426940589242105795082353482501596626370979182172093963207158629331507860292426767993176277805520444694146536218818943051084105534964393730303723946936909489565184954457446910494468350588396878769430923700318019551181922303025232014394593636240472814670266337510735565016344582359619948558960433947738824487475038600891845554370254345934654434644107693823871681939451321954422290387203140525084240694654399844417295955514879180808920369831534328187859816318304406039682638267121470815056800276833285857248029710011911252610060069617067789968830739236989148132039931809800573339678697172485526592431265580607617578919130045047385442316409687220118645458454914346789658086570792910938850579490886676916965506075578356292199556845321020758939612295518005409977002494472580650093420650129513080448969931398540160070075963430996866744649661714669652046368606018396157721394458587546149941100650394514804903724934374359512152638579766198867786214847487333116141136842283139299110390153324992399408086701011681845039668992749549648182004423159767362112121365338243691931407863036972174669863683749369565741516943587518975922149559914609890957033938798625269788022942632552677908439524055915307512365497705435798022492188102539714608023335225578874484242046743372955334721920691850918028756495360321878473599956647289768690106650880231973548324143443703038317942159718017578506899478351522616854629321477160085928945578009375832387467745036293916146750991500675850119875223277563122646096641223370596886502645929098539155913239428754711187309706956354508457998571213913672874377716823118277120992001998729047516913139329113777728261246815574208433248472344548656113517036587440631284888948514031757875587072417382990199425322077550189948355393265575004809248282205575018541577917214098425312954127742397325560148936614732687862880169995904534199091308809635939616763351595209697874925845489255419985433695167411569942171120604205397564255965273229699843881408297795149164192633446068892447507600512483638158010251739815029721861198529663961382766687716496439065734821101359513503592456249529684148423910560992468839691705440720612206305610279954992432969752015978469106857325678717585183078569011197484374297382648242461186980309744765795040738407944165169677087917283479418633104495096048361656783076369686458841956973367300879483061223306916630227995969484263026116890968424972005346532064653848203569421568459755237201574851705893949879565374447919457841554264388805633721586551850017482181812530462972564433913989526312970482611042168441814930201564731297457490349466989332163369533158620050196761546005808061444186047605305399854780197798429104517277512825619382561697806046092547456807397355683504242012873911604207119074366284484971922377406863429244635461683747713348781053050933960425575548594082599530627683546516595605952780168601090995420075351655303284272544073403723968687300529550209475662943108461798495634608052678219110870792198043460580858956904911681435757861891808337133981976818918533781658284571302005554731487811841981301570353676947420663772381071552184309508816500025713783917112931229749649112978881599509396765168078331013941407760567326866525570983805918270608214437407893370866588748541161962577568865531474350726626274974137712482260033004581084526545240601222471834265644246538711264228865478785466696798030598625286456801685291878217726710893840933149093520112437040061399825104761316723887714954978646115667970013319560087069222763417276747326738780787221111478116801483264528113213195352076349829028591729060355695985444709717987551104325889401235727700218748620842410238898187326502219935536073287007495037628228022344684817942529107359532693509132670063903523784468745536409139198358813604509031758632282443584777642926915303140757963824379980036236645668532624511673065045739498468562720570866120855854527639405086870720491417055736328850928286026861123101250817078588936262059311989419975327718988701501968389381072346783581241804206015423564388482788370319585166541369987546313107379638660935736524842702767854754809903706795502044025387851783936788411793028362502312600489571342835906173550732961401509999860115121258367349910993108528114798320135589515939772832841975307275501809871050043481730238027267473931219814804023242679060031082124824013139789504566900906006143345331007019502279569839109705639745016587381787608900968531284904856624267767635561126480472510500520146740776915322023830109232184059006845982581060734433502073467586359276016463343798662612986343912559410814104930059635561187850296067734939945671629633069039342530640823265346990173434401666201709220848489599040152016991996853862232776442620987248899469983592700279322318812582136560882828696665394124438001161659103334540861571034788142628512876138270073158981795111167431650096642972830765748183459641835579529075777760801236644536571554139245209514958842030278927045075706389422119646930818361143291062596953770379091857849268901871754361345216173973801051996537342147195776422486900279572669793455430495219226793386718362959494319563949242071030074630859074589973163097893351637635953458369012806655718607826209747465362740557853155708724608014858539859621405726215435915316831339149767909614293357419369341725078828908767811100897175757610807913502979760700658564583969666327489255945849849240944315447170562871351056572553272610737594912520693461374189405955226052944326437579826376355800500479594112458405838617061047207788404878631469034454705467147756426165178445500399452187556297300472412038921127446050928250687805513569925328216449910242881150262809816081028450077259897732035853061592893737829639117217998298720590626371781695541237892102105312762375375565635213158499005075759559369215956703918342210222129526529067788899781830441609164263002638228540108941968904822354553397049774560524735226096529742488515968990695986389437492602125407378613442552899419878833186864043094448921733719241543140953678474440016843535426516797596055579865372393064125317912821322345114388920269705248259696714906100556770403111979440036071565852952749885932097425655209692680651577386579638882143670294911924869624861331788246695782860549653856390269305113165384740796329856916731473867138264945389160176711692451715531084768381367151763895677434696993475486951125317683127624794572202680089236705923715600007326676349913455575784745530298078977049588722020777523630674346346744102321997786175663922123401348037103197959313531367128464219537810127739035637873271187557972598243650037271008823416958779677650200318175127263274383699073140999271631434189142462181246329949085683033811416932565053652479844145122201858242518323149620084738854278263980919704101332246975830325752129346647122297344077606636645519458749969066153562651513491715947992759941035687066731213177685885719077436656092606236660862837017811433953475656580202221965970512433985524537847393423725367338579880338044462273548017718740132810159916157196178514236823852457088736505131955846246151287753843877040358392478183145519338018226980528484335193225302080376473611304001123356317092326649725748965283099070470628552105163326931214597423550486367122809238838885614384847975645960502348987157901403968133777787453237456208587626930188708889791668285895217313745692406301912304657238714737248124077367132219230388325620552663499550803882549633347326851987533480179122718798612821081695515113333573985695550205002167881304064376525969354968262326360192506294273881667171109859251699023777335199200707383147761912977708911869145017208318228404530816914501249484468691811723623828413975844362371337964674614523982983971042552560798287324496671106585394811332485779852276255485805638262097030105301595956450882033036975191162463061531763192819755274320347238225225947526750109562043418973674435787068804440184000589662052491548071901662384579660579982608761821985626739901294619311840155498298678925902872624668324489019728985916382246405400240174837429979190237956776024202569603425894533398122162029680986764516915048204738953515164292679162072376608229919212469668205791630721359986294951299873499106020052719383709673144522557682500862136386049236086893761615443258714956166616524597449441426852753147945332636827414366624160896770393223973960714922834893186296687730067744210551160834288288808131108918435728817468118088847543500093658177104636188169604020241919967521979609118513131332214781909804603382362222993069985979429628140311552459595831463372474862826329398833098338674860156449883603807558670154948795556846940401933135030778390528370176088372339833578438454967047007895395302253819601098805958082523263939420927119726434134336641907146531031096515224949131428458147808642426563846940437568517173921713973270045152132798262371580112989966018699785588392907775252638836897583256832911498309182431907437169582915989610863256970560987439810918009555156025817365683580922472306584656396254772667610638259516669738810541203251896623782526059696643000620555768456138150260159140318059413110844755246382122522727433335188519228244937519676517778383997216939637306400160461895488351371723183203655890585954527054606748458660793154881161761759882435251901278526457087776091000063421341021486878450817863035430144915056680466633884967890909084973291933694399617046482624570148748421005260233766778824732381208915913546208027153620523757602132389417911492550347288989736676194276414069281276084552592771656053087683591397256220618120066854545768296245160460158525713664050766984829857181904413769914599014299483521795721802241428948450043865029280323480163960468374893808981017940563116826897837473552129868479684948005218975404952002299971300783013524270092077741089997633257952003591225392755824398222469206321300423854076495870331080096946126969430204011934390334807595703460821694576323606310215906736176720541071163857738157712970014903673911348983180415350230557373313590252447489543667814972727757693661112609462859745473694273325040903296424685097492822967951514707691239583607247180224411663089346083741799804127744067226505222983771105505494500448145054822790289679048042807649070460594477980967271502200989671617381224880177698990035828277137925865244264286983048563584427053437533757768043633538813884669755189086592033791505240716873636397445119386968661607787541188501250307852993166565507710721926145540868859595211734200949039067371576579684817760604256924826318272402668388243484038749083902529450372958702062066479930258417744476122950288549002870580471528320070384069405403992304374325445670994563445595046992129717614490797606544475409559263861734425915395403820686848646621279191840575146717168939707960749654197135788557381669561153783386577907331564801348850319624382315778170101524863089744658359454517592006283003105636522912448876445057644604880188645558844204879004162179346270257016451740577129672406466441588945554958994166655457578870291291876570602256492379179286093330594615236757734600894483544935196085162983258845780008105133262371021091104142044303570831919595868775402039469895319018410086153674276946128052723019055944049600073449511594249504166496738517038538757543363512776283250595288618505918577056490465141934974932368724697015800218092715926607303531609657398099337978721885795989827580648733190764766033501532575565768099359205814064449665852121299662773078317482969108542546499213205290936003300728311139280304033875519584694666929205314312948733937329821807259656209032058418687872308654890777063499853955701196462052422464394915916513774011674428082947217516769923364250745663932465013028658431475207350445368084939718376819328381274255147806169056108824666380454076485005698900536833533430805615340443571592169875702067960014140199251571196688671953219668224534049105168704969597534260685626373656788181147294089301857141409331556675833351090910279046076998425502468092832131239157125498998654926185113627816900114917787374853773443092596928670427927157090812450171110336120139975744919492462648961933459342022695439033621355413834309619108091100430016602704014729057445467936912576803184945935906744462055991478931618577857605278306858325431715215919919386155268277656960679618382864104424222882158045372971393958820920711021115644047732793092289682095208047517728200094259088158453575017266318702628626676515393643992955199136590439525007274421218842619952854827595551359480897128428206204252645676952083182196573794044001871928464685248056971632610745351404901089475915594203420180973311569519550175138641556189098099184773275710280338892673641561363115560678025467686792829503193443502635758355888079970901664788778166026472450453829405426094885483609640773828046081990047196830515637686962710222845379277439473009359433808238365077756646928165825349174185668441975457652064037471771800660954909307342079651939400237781869398275370583741218160641423861388716502426037445325438808871439952282402753651216095465623358824018285151676880441599707873482679654826060342048997712002544539979345449819807594899594047886558596207072051389450371859569621293271584119534216838660301248522415513423389363561072798075347534501605748976380985304213453286755578510976460464493846007856622842590740280146563396624039061753125358036274541565514763138750059164536806772264385151574178540782235433614341106906572030566125363998560235320201503575212525059310267746748481396209722806635957964956778954099298423801899242691432289778531221352459456177037974382692960484960743342095488723461495090521290269398450393446676454727345879255355679409801413092516201844525537744606014876946441685658902165462252921878969403049916166761487962493364723800073156301612063147751911331800477423460267156847488366189192727553902891636873096520662800986417631630096877616101491291531692767371195151257224251056211239127501651207136968968004168700473772516711396423520451529026863406061413799760596284500984312223889549760610269786513685741076547038357664004815967071845799867357049786924753492334116754678215862334966003198808835558191284011233057233604098096518924396280821614982425512139328271108825738833194436864794053752634020558100720418907802615935126060776964326277764194470185724845351814199036666676532130453201189477589635602742543813739217889987990788204134875045086753258808287967682116651601162984560767735594229363518356673907737107570178454023796640017591362299548358866670062479355433452647665762421460474275411093955029370462143596507033449574836263048880700259973301222135971495815594952067162504178561728988866311181947894137014979849249535780464295138468450587677877458192573820391491877380726781567418487611007091901350599253627175478978142843511874497679782349408059686110041771146181118130457268681408559255210404656875664810791469945523082257638849265848931390551686391394618797118019951302431617743317377224067937265266926698611353720288080718921708935464258690431646626822806049148945147985054575810912073030531356522867361869989879943729501286634749125751551354736862448561864480067849095290984695568186764701437080466015487733050794428101468467980655845842377571995475068262017976122100583332770251946400109480269278762128532112876616056117287415060868358525532904070642954456211503365850013526688841557418512177604465994866945974777897808192103679835374992659722910038847370967646891038497034598909514891361451013077876958815415046527894849675208503708071650505327838871556201372908481291742955353692193070662672595550903813475598421993083105645550987953740561230325130685967955658420970085324308807389455069636716956840689348705782340342447726961830913560894998924318293768058545720851739455955203187030904758424991558420475485372078750237538948107293904127425215061963738651963592470911061222634673295301669473087009448685264483548826884714480118061149723217670148710826494094575254349298002170123975510615404373568820275470511045529302864707292952118039474636556395688513801659448228833745377889350348975625936729909726535565729611456088281053053481498140222554588337642380592577841921198475544123801622352579389393727966625388700663451447977828827426611529713139203863817741405722714533228978689691135703926427115196341010546316824795765833200838591837093044008228030373570458430974010179641681372028449192560866673630786038339678977387941882279714357429540447893713530668932271056606016752511272262673606426192797910625838035335681021235252465018894041443620333058412726445103774996593133764674763017509858068398691989498691405429803969415755845286162297071894462950483479300113138616527463375376681759547236819448207129425308309982017544331725705233451540382153406515365516594185964384971117524845648061838085563468891269614806589788935543094053733552654408053633492273503729515619364553719488833125214439928660099078702395666650778385061768723579984974473327210415889352380316309773699709563522583997896962807094606277615610745526099421209012266915217906053483832113527511075714541807068851051985628028247087561670865324899545820142844540344735690939968600233150506843236697049647785349414957564512471105880482186041038834728797307986653581536470448083388158216215302099448783423910882849866710814184312167253975764093496509822198182208086885581982561321302317664898269926358607933723837941290426026311324447630758334963564422661202202502051494461356950168180269484327786311981743360556354927273133298231184532752420982141783754122795303565086205458079706937171648114889701968471092608206014525751036777390460859437082447821499017534256942178366451551576181952493366613389715643344668118355255464932581581466671189820685315957229513948931196598249107931562141235157160034906684958960640822214512410510308095822496274754964158151387408331705100287788083714600113720831958313450267969624842133632484070003031599862427558334426759667243613362966814783279863390745450403446867732205272804880400213888121746427884665968280994176817332200645894293370613242526790529773376452127235124105828525712109690415167713541599782069004612486922843450512824119079946584144653656308375480041837523121940628483397801983549349234241386889856114561160254925754921573936466362928899871722541974423347421872539327130076860413449479982576237768909188134927503287953856119111450665753807044908689328186378907060998351200654622347127624824140481451634443433325119158230147327620106186055649576015196190768116414662026198983608416106716701513476974628125076635499386887922178610097570657285874156355530859440033817835811647535933294543952549057509180087924559818656469015268507304819015775002499685189328481052648561076771049095154234866220720366273091751486917845799756775396722956206269523513056551368991872519935624647053952142031229405137875034875920994694889486674101438985742497416659920951523442433130501395009216339743299420291085439136308833359278656103515273797602205012745455218303543083704426321925116534177166578374501456010636958989781412069336478885603155195458748182452934760727322057869374015889733068340434565704359100464670330833832119925462613392565024101355734880309672230446571716109801910859879951868503280207869598097693309497474805579252972752309353810217534446021175775242700112658106005737838000559012486394474007381171867179555515024426181739025389273993524886992408761835403288524082057577334511591120840975966059555669157944472035111608249352503138724966899267997118467224090404654844532835069447695759597477395381704369350808611950819810197106254171693894578696022854548232719880681822662024859442758752300235596806247417747750326821236145193671308978660266820386753086172692766372395525121646058549578409969523673077169371539711359404625798615298418724801304392012937903044429360081342630092367124400775537651022716181084748878993313299522930314241188767251956627904469119158195398866804431439925008512019898139448020916735513612899396319361183405348118735594946382525254118879558804607534970810879858200072846152880347008535018545429607059757206965359632994056502802955507902207210384170519265943457834411974907616009344667475058174072457990571694441368896732165575549870392825288326821683079753453834930954821621683233014525199443623954565534086773973965706490086584557153327284587342342824535347725200997432500770942475008111752325196135093543187550800283170551617578419898389286713875764147332581396976435155439926392044755882044494595753472366776693271337158887175700006386492037854851135497428388255776326566880986619958570240639467208592646848463411602429697997837186665573067519695673584003671632035564480915857913234359991345588749137770973113082565849500342962710267180066228352928055477942541004519564137679430239431624133292705174456622018129645096349201287872897488590604075570580342600677704053616596697661987883270126214646901790105871229425832832903415174211391717686685722703068725456249173543969704900209211763845356243291513071699864142788996699550931224575696233900254478220811058731179515640594056578236936954181794497661264328837381266213891278671648747268885826413942522392735016952927560451642447573362978566654621093796217177227827048082407211543921863305388854394533562604370172736861024842444663988594882828500296504177468794830565659406022120473083130941925582595708654612745039953349268998065041166987237411434296476494447534150034467530036866333096101362814994468024233438858531322092125256913264696959179057306101349482657931323157562901582928582505043892160048291769925253725047546139351022129161433068603882035299709535750093481381734283476133926847860688884173279308364636128437817281444053104797452786211677342945651009107345968284135472399000760338743376307308404080899538925148389775828069561740608046613724146102245072022018159439664501048418635959941691433669715869994641790157523375478391874125621496132716801770829050293323144023745618895701929284544206414000250285503317814859596731559813826167136984556182993127251392097139484885391038127309969495129480242897270483002309072816300072281838965669316934709715616249905345230282056336093357340807590286011339226894432433615232137621963461141336614731171209799762577882921760409094572469748168034545048129425093490437320708273941954176079163989581494077275226908383970423879947904878957580481085871041731543713553896778573104917343132872535012642918057776101159659085779293438870044763745653380853689425371011631639431705160574748615062475653907726577579510025462184733168728182401183674065800152754783727518872397079798303250358768703525353423384950893462327505782540429915986720157813129040344319707538559940769858557132651618799058981898920155246360671122070956176024988652509295578765328831607751036825782862388646571210925816627801370913610282765906904021307298951222180444252987426125050325691780794208260810350301648986999762172026329912983667043237339831686516419240166938253459843969845530501877179526987271840181416820205386421080652152261967119312093539047738652150621159744353450246816596833830835366402441087047761048769199571268914755206533155798124929894219613544934197180132057157871550680662174028700640716155378519570065447995348764475011149366361885109252155547884551006853329929888388190876179432716386726375226206924802646669119864591227006693859621760291530982296763309583843811430228424322148854348077646058631600843848483831207062356000120669541732611556147089219036945213868324300306572737885353726452433512049635928714334245549614060942001676551283339636029876514499089090991105419943656806322851215804514237131544913764393937282891108971995857856497633962064143247695006172803792761484190054998178600177324404713149667078641047231319607814445872656256156544785198914058909729596027992371145981440349341707439637458653382812808290617135539313599858601591274282139059703928993595673244180984785523040175296125384344092669127638155449730188445870628665750928013157271346560317993864781241776296218495901821598846671615713189505972188518106752634529534273316757436720960674767771737994745114443215889795007181542323462504487650812844572183412641906341947191902052116348083786277131269459904751544507288416859873108908254331291924622562219498405657130285661581688688188582200897284837666193549548634881447771138275421428938801612451021906565345713336374057524020029850264910221669908130350649476806249609061852287981767468348346349730868884976690411572243702742272256831842004311734211127210039625928855616150120712814801480382047178635429145329336344353048829300987037465132329472062092778478475822131562292500857593610790759875869393990246011205069557986394855515432801996549346835453828994588077404600038047354861730999746839273832487152735542823539638502356707846428632128479755988443910161286071634314631277401005290689914286149229884110265291310773119593625956802275051440570674606282483311539908854062948571502246293501661975472102225695695313132478191081241362234716131339963533774529738090908395459417079402683045746128759111120356888299940302816397458543369528152030543419824856333908886755340097291794804784649944045581515255970758302665547365868698204298347088268296617415636508911877074025676752095100481101899005850420981771453182765279517745351023120492050108985460570643592319399785966465431833076682991695676663316415731161380026718657298973666760847581509693791960344849394844056378203791764377168239383802294761867955520374957326477157905041403160425272556823349204953261396931122856863974503593029934447017778259137628467270216479649288265962362288734897960223387403030602760571288789991714621177519947891929823569762261163227689014520534953588939117799583531102632208989680601141325222873716129018384668225147067507496198277681446042993145679370400775801462239166816645974325787996815945089502080847357367232953661169045292584041293247539627973862442219849399742940562752235406406014936492164647423493083388367793031865565058179377606549194919241605298485998127424971984423766720782890760636597188967961089031745971785851798937948039901672658482308867701237723662405064935491787299140806278708703081081977719470508436760173258064624401346758070372467906354110613373958677661530228831902102229019685682376633260150314319285936866906996002164591609576932869693445196882457905618655316386806898082249903190161569076872202806338253613780570811147312998158904668550542635810120016288112938106087135410189399502753421547180887148596908867772779893136568333130683131223794690103192865458588736886949209885616891744944256184026875831040206195938118895237176959106874997445389031349939123927583243306129904011364799270836243686117533004795977969009763088375949650200693893471095270937788866339400442524124688078901496988946159377735961042473815179679150303429857959883681119126127764372330630794878806812732965544441104884609143245108993048287730948174472888298171808876528042205426917771072450781201234466662458145050905826955190667677207751548297376813680829040304657154859194672086667889710772470445117242617675039524752108799929748847263205985569874574778525371581505937424249352679007245541333948933606337197490399597508719493054478973281822201673447568450770931864083654888060625993887882832794958232970247445617117031221992945161618462050137570777157088236615472500592274283088930356148679299704766938479515642685746879013082784831327791731356715090656566097699240853784867690428072786186171723486138211972675452421851887818664465562340443514876232818777030555329749969273664328854026824007919200498581311272786163017806310605203329022106419751077326708381571051318161624682343588222221092058453411224280844116972933060403103779767185212396048008260345405394479049740478840717136156317629596134680090659542262413796475964462486266098275169635937928766207690767491253622712524806859171684003336440926107984133176205697888572936334444686428501406391700802162040714338305839191183940847276442561644728662872916979474438491883745524731499685303787147671128533849999103231587841595913189933826028380257167961993275526786106666428629527752232139667156545704439198490836703000232789023994648147796712967109030550576960135955029002243155341366892113320125550310773747545003406262534264070579420634154138776426829796634888343070621153145999358053145430187001752084631363748309567046062684042221859193130713938933061837519254737985048626823305069055791377747244132258130263011319069508154400700020372174361341974495937719326890812113010699313484470946356687065033433820646613242306378592083011716034987499954196374730579428670523547383760451145818079447910135238503824196199005647915320464690512846571727371157728446946239362839846230174811488884154456943954231446028839059455284187631113634308516962889493101166455536568546632544203442169087185446716103783593720480788042872894160442032342301889307661844397183790841591350708258726878756615803353269141843929378821228313531393729041401741626724909915840728318091433340292952298399292946162773328378547300527998639354248599422493663827138096123383534075942351317669023361155853495634725349269648829378911858756846683192150119387906807910047209921026229214303997010343991822330599189538797200895080046939732595147817905357941366542532319705010962259518261969323799865353423795375979642343157741488441623280785532734266985970807121494904449069733439433411264170136648270976496100118314022943442482293389872469504710709897729812929504848343293129390865220717699563953755791354495741032535856019727956753813034744187727046730452115891951369566512757405112976585512656796937050746461703116105134465504878835066099066422068486697840586541155915074931910430568113006529167671812412546498876357391865923659764994856792347873478658035636195192080342637141940637879699830313790361381582769231237061576120553013886012803171864261607664599390537536509939496994340282595506402377892799320915903898110152318222898424080781268831803618170140558571016191665205346839846658723534325050629008560635416066031788723019879791381267845803222696408279236438697788388976391628334392670243512739231321964767206712074193168710403290799356178718890532391425875305514084611698507464630061812303471871853617462932422861637112664260310696564431357024932969759618428424379240604844528987622896438875663640928726973232502332381451526345641924694379284502288060669774047621502787424124298666304931578617240913706030559314067118970370976012143400968889501785482370765045512769866322656625353920090927695589837365213755242256584403312156933123787685335572831253785235580820317218204539413732529968634780909127161359423870288849712523794287668301552177786456999003384343160578665634591755439378144567888415809413383417000437531699350832145555859082404006874057616053492316157539031830995059602444663464277305228670087968267299909289110092468469465386789695747805748334667775858673513352070665178932797919568404523557727876864679221695581017741856431587648424889880706656624874031138997491996785813008507824050661854480499834089490528086963698464048323182233424079434264890180180480815190945423798882276636401105095174562491826289930218786281507466828168390802846832862921558318881119874605893271342918473709794929081870927314309394116956037034043317009954492087289631407154939499950398018348457565721951449392126603518263122106071400587448421472061053833143611249216012939805653906135387197599126527403897426646208443583032716514254824766093136124914209639811528941588720058218749908606143003987388298628975997363519920590797251391238473244295934278826782100520617679181546726803783383189585904636148880218258361629232555844916611164004145230990310366596493636848271634356727795687517109032821795499600881879404022477069913548497668260231581835459813718442922464514604803109189828157941656060056078773147903895603792607294470300956223416960703543232999417243610430464578888368078770286604975513643451594232597913209955898685884315668182617986429198035538920744243064920544138744856701546743600686121793084098859825397157517425441777919825002178290415600295439549313738591113276814784569428617171850243553905845375731122238674827524360894767168493611426799635938098773413394596311893338841836678282921113776002068823515929001138640202463945290654681507436077497355411790160447826443383078677507380513688060688837600796926168966323524121433106453303725615994989547922184745881844111875578511346948601734224319441676297162849219587933979908801351275753724505860889168999395750224641476632965109160978372113664971864882047715298575342824179139089178538783272574526850135748907299706904947396125379548358501000198859039156798687377164201806241729420475313496095196240979491686954833851577443357546561926553474127744593095502498959245460393612473647579633291922517709243602015057345995556097693315890061060666999164215310729642349218523213988702996174734929016156079172092620240657276697937373439006737692725495549352048708694677111647008847790314842411898459971429951405657919230443737740292400180667670232507626701941874146834688922413587735740500770771067812750885007310449058925959762300725306363403335616449883990520901860096144763089233270473730103986325341861261814835187609771800239596011203527281583045593789523833054880751582824467537912614837904221315497692589662870648280281658697667929060677971001084523819102721602136464181884141704930153313586632075594323834418239162437883302293766737377997678792464180968164072103109674878310444127803730831886688529125286327766564052434456542898695883763276186586894686252746536009440539278443804849715466301232948497946615555552577848979245882021294101636927720643949547218379666951090602692386291916387434715051147146471800536919148743848625526737415175005147224440364614949136774510541836546847098176466350793830369742635636737781552656961567114178589940110960284409139970824969851637010944372112329365299082943564465470951726537709890211196425247987263916610792264406119585464277263248178690918943807768220740744661092155136675731378011668061687290943511497075108257318891420210365002081179012240266391741456758032674913456426926804631213443851919497377761234138557413730750747748499458917953753839237667888316170590925065316360078592489758284087851700276319479011721141521671027706368314580858363474139546274874452768320479315045632445027133787517869513100243545156462068571976372336393632145637968875347597392135910794002608795380953245951478738303869484212175554813780778601921547164930754376249044565245815715334653831977736539934397207032616830018394281808507500185937208721365071636050080391567822255094321349391238523375578166774856857788117651317704294904436570607070179717823530570646494834423600534067171711455717769799363394254252070988044858306374381310233563777605145152557203233887945397155067057610352316100110553134782130962988971609916053844337768971894738417599067914974881850643388474784655551146714891737349249244199880498984004383870990057559768189180853058618272645445666199923812712481563127388471265918177703736382286017748157197050186150538794148136874901906485235375878201902702505520185741785628801080738908859603607863920457042756129992153784990981884124850550294533602802423877376342520048815990551030999673943641869794390531970079130663040417114994453682055565033225304409482898935994324891078049012879221870191059420265393732472406427718921653525772762065204784584084364472938256623677822941023073984993159134085166147943129644736897647469882701730564712041955613129111025332438131466261053048897669821785332273074396671338667644475348388735056158893007820847107319139295396192389946958442792798535472757615405425051709461615240739530981801748138977193252745273678400719720745423340938639800217163350152600151767726496732328056585299124830422636946269605134461062037254909934924189757655497391166708757117508958644866363553634041937209349717960485033158991561009523797578130218137584215221739569617729345111990604763484942780422406870799125669656986947920205279160902920321773240892881009339432012510302991428119869262574187010595438541989656946441860656485014864812802285749306756676790001149785273611007836077039862914280130061488151173025927428821622206203678896482432556312532241450783446107518167784276656870592372208601299201207772721602322131205616064118870530993238449292871971651343127806831178886008679958501564615007661221332505058579523558534177043387522303202978468157624030750885026810963623005157491883078184500057504635034970907807475409635422188599261918223457726090102101169653989549116166126078289608925872040711985304725520101400993992315924358383164867246736822226376291348882241556997547934766948239188989890969912560369908445659883520144780416528369174289621281068108247042359291546478738811740179297392224165763298702506172937289278516897524224386293822471461296166101801012659580800751910171265211671053452223756825384834518352632506933356483186883353593862145439820926172005473903010832821159464457157182325166355739298534056099926768900402463131722686669357669806488765324254120166783162021275137795966887136898682367929278764180399756926949552919983318833126382846458171538551666295092215703123567691326163248498006997676263900052798516842774923482412496443997982323020174193098210826663773714678562452976765617549070588600652675471005257679113747038075300574098075170628306697415505025957333552329574364139018912222226544246628971371926731524749379448978875892820076353297458331446253805709206018243993203636764937390874120399317900418573999544508699550462522747196720425479608955969343073457955899846917356841467252623253579492665583362553127679543307598349830605899188434449094095207693062722102734938102033401603024291941387219423977589938694775486224176245081639240038712479973735145819616031133823237397725199830399488250533464835901625671888441667723567648425132625283139831581966301793799712579061525914628584593359134670666107053864195328390166694919803108313786641891040689828560638950567807332836454122992032722134807399988710116539168701434294669612878924862929015134731671123600825479046266203837244093246774742894979252732823040646259271340916312964029633217182933573651448449915124728848287994532269321731459657812620988645081407945581419489593843355746675023553016329615410648528073849032771165135847586546633103466072640014143471362431877857039097350343589540446580400766922800090687618533885627896167305622758910767119175088046243350541522437129962517642285078107982150716825494019072485112119441908017754890955164881654755778556254084597622284812197703083293513572712060228573032537363989186238143390279010588296139167643949397218164006795366573824027694710915536338925517367714917206979199340761211450061469275886838948129860647253893902452606138144700341228790656620509569262855375758236607794139647732500955543223368082204744897259763745968607333367121762834683687030895618978511603232803892264531637127502409664660188997048172754809799575545356778103415961639392257721136011921580623757882582470184205691080637966513247247706054986173065166796674647290781417736840867069716207482677471833668724460121491602888375469726034961856033500911738845989011698120885060737737626652930398817311954509552644759069925367438689920527484596225035679976130447885080962741446399650446288038837920100300709351739323969565563905958753314498336839261485883753563655680609750042618274184450344682765340959172206121525917140530366172460733206021227419368677604395202675197827958335621440375417108768233515820159696471977353800785402575255993782205221369031852020156385328321158399422235013024366751359279129259820131345451070446633842549966887842667443904146157062481361399969707999663226559890284917656666782033131841334110984058773435115615384809358033920473890451708588066034164094829466978984756956577831713073844241905479946885061134963890566911304233797260371822041221681688937192690278984001458864785919854288488558073411563437816799510659019902440621545937582567260657723755535689226577391216541489289415652762841657161513668677414305561880725091081620744098060429971675956658568213577250468399593004885048830101605416423136036956931495231453590435711916813794879532997133012227894021268943404499323035555003178405957440959422664344558427371067647238787786637865454545523236492285512166851851102967853195483765125942590976195757154542209810741234093106551671405622060373151466470609865935845562709648021995796779410089472339512780642404104746419021186769198652950460811834830322556888024053063459324276516437261357917284034440207214700724035703259284561158134769383130233816325486236672238912650385437810026838313649047081895144733561681839899064363890907106101244431559923099540055601108397911072653185119482134793631316800663716080300504696979784593321487408647880892057829529208654667154842545843467248429699941707897465708566236637381381284882790542532659985849877393596079364608335981684446844130318242516615856196714046284836498758526039884970574850696572531401759475176642412664194745734468546832103374914806059794831771700875533186147304719206426985774412068465013333584427791886558066746300705999226760776681861957104151718727714169813659606805579617506195988659164606274892724939295409092627404765695040821959371908989907945601039662050975045353718439780708760061128346341565778293913035093574382048383036311952306221229222270277184672648815455251002710117581056729984053045855651901355562894970860677234276108707148287232915341083626126598381234911727433315659313668641649700341340241495726859826849569582705325282154862905382811159925500409711508670728624149845618940166543911885751160514857791293772452174424312895266532225816505181841190232305519763413704044766094863465262466685814238928316332784500362477397983778578937095977641694151514831747317787584358393457110260180046969466957680417733918787265373546370617690484977623353292822699948193914155447996928424118915165751618057705021247330558833285831238132899076827451069258609054188106610043911525892863626357000209505269707212046831413777310532648913045385402361237493539932535993506126010448085092986832221130862379680263195861059518919078612050045195449653164872554182735708087749135644469858062884339058536770004060078506329788133277636701446905532248510905650734029535520747206949576559253678085583826565734935692585323825519239566419693703668032338023604721833768132007838200664842176982389874993979652566286195488909036855035174615769027540831768534023729251578713533582435538123101015113807705744633377107116620883260594692610445741474307365552295525997409971878081680051644609525382431452710011385134882851118870442766840508278242083471182447860270779614617015757980609718564438790575174378973691840259784195817739633520139041794601216833759454269938166834193146643584738120701661179820667092320242220511727210149217147813250874371621901769800594569455334475892487441877548646370437792471345619276024611381753703998561598103583933314399852139420529358486148725955829513022873696498026840008262657732706800830102328001130869245583362022754391243550569900156168871193514121662205518209396066617235443412597225646318442123698852993688664066518424872822130424640161808829705344777720945262720612754663265812851716834584705319484023347268782227189432267525495831170018801959673455258457514046360958192257135378410415451802301635182597734234348305508365178416028897102559941052034514676269733241895685398909114170858384973713462745658839759062974824815401102251012551113176247175637006400617708159266639194243296337664828337240289777607583474594026214694606278187595759621859695795546920308274532003073882369700318859249726300015713261675000868282366464467870249420493743070695422096213882973250307677866559703660552253366422142694941583791087688115739894209532463341748435763097816407514224612338740204346580241827300222720001817973563172450911285207201977946590145145252647506602376753877066620882339710710161484855834185067203389514719383917980213017151641703896943722934339601560761079187595422638285625083380747472588320299388926018280427613262782295433949002554999002793855597517144196857370705579474370977438352089113285813433070283638568358043060448356010841990905040438132839141024804383311780382805874929069768147499021012854024729431382049616091381489924345728320107410864272751857183463740183163139065789378044146489470966332117394618093332245697378435871567855072393758652533211725407010138541100137832482805217562271388075479323453026770303775657580331320043796506712429435402872558184404923267343016576722134968188921999244672843014628008871175553504240481708853417154707406787063782051757999490592554169715686897608294567364824764864753807275724192971217579118344676163290913736906665301638122808439730451271311409590121999434850790094918619217228473999438379634364516837170367812801578305695077428930309333902724376785487371365168483648152914760914639107855099495664232924196578061620654083323214262147372242275040210128745914891034588531382450730042914983997650514733539218764957909131556340225483947544947550794339901043764751021987946385215762527712433288968118225403802269002711497520006919863913141361611687322127730558539425289826887645179316082339203402642225882698683960904158359576614816276567024084926830712411212545683236136587260065591039785635888431744883501244422964163315376003714511483948477686199533110044350309286437704229746753453920910949682967529544976087366713118973492912790934560254219484769251415195435502799592426476259687676134301197623984270285453809015748375843774148985726019898462325876703167210760391279685890976089926914427681428249059626173126304496528842816339637685058936003602309265837243975499681702610182400344560768444044703093832834793937426288388773394995054321501804371698947405207832124504693468027361913691388690982127047943620396553733941035532383732547866711069906292684282938839011461563717501332500325487789173002713593882958833654378201210419793368881460561736214859850422386498330744545507860565258223688406092334989680799867980918983070415082107378568677189232673313553059179796462531064274816326460676623423017862910362971605967547717120605955478962915997447702224575542094285535605650029892073742647860588663070396427990563300156259829805791281538924192523664793889599032390958654795574389452538157290586256119850662201659359460836353013011744963688469106807341310997867968737216764365361724986875081576681479052104542610328837859150989731046060037180547978528321824611270898548003575729933575504199402009656129430209531828529558232643830689086033165596039200896150443607218266995249258276127513409109562185601370409184414201453789970731556729963512410511039297472321493103914548653253843130858148485527411663448909499034306679649578366927290636605471736221880405979554260028636863309366268310137375321400294325024304548707080471247237967065622314627973351842592229887435536491626157131359726869768619890567131678362435139654439427179469301450165778700112220872502676048031708454730714064191808057924402688203940851305186091796807350273646012010056472341905315706024698037170969699937645514086930150747262619386045212579430724319310787017835794073776881699348168442037063862765649183787044783754461540716201204066313246505107515773821802305231915882628415683742123895659278180428967752048668050623732547158424193149557978737686481000128393550651280904405170379692508017134739631231519269901787300047570271861719928462912230951046868603657333068964696245134474541205468159342929103792928920830303217718199015552196609062691259135027088127324309076120894798498710485826407530375377127030390477009139989840500853547762560769784076237271585710114764691914440781941905130266822194032204934121855792475134035242662616657611783086853042239223491554666933273899417113366439750691440000027877909694602412956978931519980176812549269801998277484888013012062150325782724400647184813773525928857462313036226734426147737834505619855294195014402325545338067940188669691436297962451970786844817901182419761844753449068072748871251068155692321795255361855669973579636570774164677047057274778969818504427061517033690328272422466362021901635659831552453620203476249083706634181320365837537567590156991007216453597796272657233641557887318957118315719974962240871309886186018680304399620602685059592312053493658642086261922179198074932274873187617754871056891273156284369273364481063355580428976161636583333871129587908241338415029074046162728043791581515036863007211251854619035237884065004170707599172559380579906491857740787796682650069513221078920697004242287175685757022855300747821556493823886267238428592040196869500453329043240531539121855255626444333035421957755494119199579665014565592722538664831394819808915798115456902402059598436603819817541867551269842362422332500964792944242332526588645890406965347635282456591056375996909906738466526011731911294128478605118438101664069130329364102302037825970811767139162132447819157560854256320555403668528166913500510190015689546541634391720281530732915241695478261459845467078899904447522052990938973974520363968775621171146225190800138910451006862266665184580304132015398176735645440976456132577437433497913977405870439554836266394810054986813095497748160622228367999361072909356924455267375093531436065517232022538974325272953645278617421972847345280326528895585552744472639354201123378328527955608580873505907542115869731007980814980278432574722168239532476359761176053401422391649874937130686772384345867642879676408325402251782560957276819351397653422187828875798209131825372766011612079603732510369559003553895404028224619364109608312389695717714032517258426543799127784202263062014934972481071285167507832001746863887012189669437153398938369521558837311910230895321164369734014032511522214715286506558070617102781777261116282611964071636680114845508021721629042780688561132608274117244038383572745322515804259827997364212199363541580081859719301895566634551703716483608149549612026098112745112968967945458850739473150487053788670966613565560701777495718235621750313528800163799085824863398122190178002818347341654116371685095021041934313968966192501722369040259180561372084880315537084277220374285987315380416699088489630432167242444140363850116239408048060238912773732230177211063047104197567555933473843857760557705495890517474450494195866394113295463015547427481823398129492432241107386199074225059081473746908436543266009427260587179658493445938844684912170873707093140230398159656394695940089099941580452595407301425531416148961464509487691804195602656744563381467869143448827947402106755288588880076751879310065071610224532050383915170019789518454756560320398478366723898050120998515429069574866181431751212197513132244555759372808781397837179862154800078963232305040794091635707430597680201329631940827677263024633746314401583129166676357628663278929043371550372891441888851080653640256178433982821811756149158126954406911054329515873306282910890791936377383111341267622494712603505681919678405533319394067439728394251738707926611320386411680075230570378358864636411980687236552659098288290706463649710768615243244803684096153725271368530417393969247431725761259360721605182928654432833162247135883007130044334240753723756716081651259797338022494238914425712065385951157766026889080411357692040322457169317352609846644993042855472258489825536762541471096929549437523520055342758721985478428427289070236184880698895285540897563193726162533634314120181231783475307462153748158525390231923123178973369063995361704477070238026935447137590532714893315733859134155230725813230702337360346124334208346795330837434968937041034472032277353420749183331176458764812683137346065902168164781731772800449921355014378039344001756193834881070071060516967241430260615384922375398538041837086971154302653305615104712068504663906748590987665945990013624442304123040689892881959948689737296647068571073814566452076688982904024205815198911618434242950723273148500215666269312868379872409015410056803218395031748594070440616224399192458341421002307450230443308587814798033328688648139489978987948228764397934420626674766935969356242108338765739096963594902951726437890944760413495101909161003528769855247594716086606914802082016826917376452641939373420369706669757632508984384562389932828069032159570576437491384379538611390888898082828909826826088907427652898153794429491367492489340987540773857023432087715833116219459164987354566054023264667783591552241317198606671059457479082300141429249034527813562497767599712149203303283156854607989473949671098981280270088213714663856008451539875420841036136046536980492435309240987739950692103810179825711410298460812835698559950897698171851538128402870717474203184018119888537826119794022896009230869474168385338453057039973864057260955611268593648628488670599821635909529956149995048809582386943690440271429227850758483602269739978771596308130568576264955428669757768426879486304307109327916217415980670746898115760052941240240802349205070430626341040100067912484381460452660849618898966633000359111541751950742504593458162904170320377899038915273533862645690747080393767515358584693628535426744157490591575335537377391844540731864668903853119750865390456954010032161151711856738553648769468411700522511709077280693056073767148537930807708499806325421700501798446451672364893683686132639958979270257243749411230403610220109110648401016572626262801392322419224480442362877739335838403933373781937354165472405411308535575624738220236917783078126240219662717228709116373645147573414668161805801224409797769980737881946022328858668638515488766132966146893348379927269982797237541931767508293934615812496372942089737550021994381620456359430036329012642542653657854458194703124574559109121503458540553020490188461342097577820996842974432655068317880258767308057475150054841415200059189431872698187076346299209122987966928324883872596561590247982952458382324393480123720137875033809816753140677346128369274743080183072211321865951377021456163557965072832019471026213564690984575394051635722675375473100102736159671120629497843179132352966140690278104559411339221615813657215428714166888148117011523603561868327295113751970786795929787351589106940343047514841679052026922452305863739729641233172829411148670130799059103787289444994649413997860255794392182539562129437733898871073387523826618973525300900591652265651482074010447795153863560101031031437310903068619868947108732203818247930740470062518451475587768386985910268455627583929618158613564725328700270012918758780179433835371740768566187827533113724015278048419387802439352412496643457050791655716217272521703335768711898364156147249976949466046410818699733049863489978551719585148164177903803434311217142925146437172021611333151637016406559964115894454213573050517451309487135008591439349346521185599125576430716963120876976756811288027869511815658938150543528259421960702259455777101098261823221721511470684462606316825273167466832030324827973272487654726527946668270436689470191675967407633993221664271579160478821668353259179373490253313199875252653597957857288264818017543083968179877878139715154739612377668277704820086300487376557424974781096810474827085825795266552907737155974449140576269538014706641934582394049998165167729677656007002607799907320574612361018858919368373669116903993113235895798076136247677910678499638268841830381623255734087013328229059607032054526711586249321744506428537601554132790636912575702158505102996889192634302792655805607608515548552337392488290308253758075580496162450131658390593198924842349188576816951216202813489234545202335973011968130321213381445417654270161593394347945286231986485576066817021650989953987958537164588888945617878912153194459812792804153481975176985007701693698819577606754292058570163063273171316386567905857570232606414982831655210472534408012481615438551873118670876974134493327107836527658017902694350221294107556893195367884759834038323606100570962057558733255332856250006484331042118315077791840916918552216189705017034945192299093196488946503998980804381795112852381578579492849666362518686983451853921650553029274639115423080969552364376445876453393683449999924547908279046694473889243432462329808437638007338215633427777985376625596599745399692895979765344052275376128137843101099112482101720713792447858313061504700332241358900816579705833478637096935316275209040815970130592026218952875696955059355690244997399233538156369822050650612620849995619684692854176870604219999202922451705510316465953391748411234187544344078720669054352439891144200250235618007515112631446115689087700071105996222997045763627196653988251130841208683666956897442344416516876354788809406462946857878301107531196799464336472433264380534179918869525661029320260568922561248643304492349930457157752784886159007901383523543582620968840305922002400563992951218154586563528677138233565169111240115770697178895869497652843542927767519121914166149293801310303839665143965854831374165834198073291757949204211341023160502697878705614186804320713371808082556589765152377157998870684266854377707896434455912212359640637772418657735239217600885171385848483562442343619416920601190816379350533175800991343490262304434399598567092935046610872358715037949156125887234186703836768858469550735515091226196845518583861394551164430755797087242307021217318778442106283493259368119120195585489978151260181507459948900318195463338307832000003649252419727189603945285008365430275381902709602589381099520644947787193908477297232264544110186667068155717882704401223930660066162674235358577051283732980915272511581180532435486071007351746938408505284951876345365847242350659552803655586658777554826969663972692550249474521769582241563829863274779236094672405875220283718023365084340088144800251643222331230297500478809052536200770672158616321380023176295145345716046836525090766332556421314640788945010169263193630952606008441254239017771747294498863968696392023181493386704002384585280855733569820652952182403602804974477052012707103289285106126961926315752340750046280779449373082451605148713096765290500630272726662072351405211565280755576505133004071584540859590051019707217572333355859111783020686911951430990908017726267884560030088298183070171027036262513845888087471462694317661287056465881868925497452654326061717198793457071272412597954331497618920042473376636294211885789782875718031837886043676717036980878518398646530750885397308808335026943399741738853499857738432759282142735840518199120065757304641686179165381616039947893664307954266866080102818785938634099513770088168151897289430159765185670519192891706253493625168637072333768486499848404112106651372828568598626446308224024893239273474212605736336326485821372536401928395823926815427138312351021231423011966985727162658249760333537558094406765572230182150700430087368058179768304447617289724014642204402703050813743233564781429512294077924185941213802580154054511915723506195312427152194043115866724649318077111969607303323356031581471936235736707730976399002180291289396715355989989173073249893177368013344629407125897580521596456919402474196712476652316572858165129124326223489364493943046788589272765769843588844745570826780168346030373675039110212736717152240206658188181769773111260776234237169768228996065503618623463406192128060483029786223634123942441993300304792404567292423248555323549244799316349219020889321701710827865782997004645631806026631200663896047543941787866228292914117824255566838363112699361035336436445208586719379095212703233237725318938322394052591286122017976379999001005049066407458673179147033871587328774538091800103938916213851296625724447474007811858893978234593411841539513295306860153122089452234339685053030437713265888224168594086367092361157365945643057605849331427748808000154013348574995575193430086832444516050192901127226592264601197351629067814159386846200056034385553628802874883889385434915986477750930982818186500173065329798686796016367147061738587369121205737223012404583322615588943461821338787194251051196349184590428302556693672181968087214603482608374958207099529775616699772121629078347802726293379374921415399629625590046035432071798149385325486507575745709996216410497945323649734700215909526103657109604150407179209125770566133340621010718790079583192569367551030528062575900094075610521328822310369830999512787685629264295389933213127771725608495131610606532532887233405317219171178255458156968639111063295637632847070039645662998639852451554670456013920458269802894813246641373952251593061066755068411784079774439216884754447886216087058919524987850607893876941062845229083629837128786714156439687870373833911829579057213832832320860146043023336348313506940981860771429080364738645668508464029102559614485113361805369585842913113346883771415685896598682951450498395911809959118008242849024980315434529765722690472959565204623051034920452986784808658540968643954036103351865320730446957005271547073426276156209898816930317609045703462532784031477913190765534262908821726705479969053475053723821628457111926399078515093708833032855402463299740185194686296730001818710322657179110363230757215767536263068979878639506925758316491647272209944833578783624131513303752702264633741655227153026060627267125555811206233426705688020979675605295519487554712660833584164920323996310618028395877423054631062346968506562453370203926666817448769968103257422475224609750683374754299652406788076405690399690142870304183883203327428632826930580843686714160159303254547446645452208532251123698274937542931789724706353125041850539989302072382056589292828564342263862741746423022936158744804949346017719023047069490556621980063790013615177692406396659792709969185468800950007330302081988779517665479478384216762138442313716210709108769422998118815032141839384370901115149733641140752781362831264371353627269024032003414211468988427604617628259005102757222413548260518696749822259584102959815460420335160051999653832497748099008008493914297787090189545342948631900091342851794555825749843324761663139534309677048504415892884071423936071942431535032572582399442495084023438795537664524752049555095620897981411146839738740910668914302817268542254264716931341861871321847472477213090130156381565880014166015967015666564850357561988460639739625080463654855148592555243170375278860329554544047996916772956150971204279756189785271088823345843624591437175196822639132067031749110333423577403618041219242873308781244304694355170878314283610851118125329106244247442010448950499764475636766721293113713036733624112612070025601489884509649087293767428842570454907488120223048197014425892925095377604755647371648011977546139008411059574934245669847269572487855518898889500287006839093326485704080791528566088544693935219295676808050547467256114953365063305064599174826772847264952328689114762975800625550301763350563937318195477432473375318846944154428924864505681198886878105773496289357980104182761536519070221623378092996953120862382713364687808846118607372297090413354905241357246804283566066247086282004115912898245544982829420821997218648327982069022885146130890040076107599548394223334074658539860287679741774871354516107159940841333749818001859523477636304245805403330631269821898244435106627924843923028935420171605989257193492665415986097558707943701790559929547309503358950262799630647364116361806049066668206463765169903638967984021343512807016695667204731195159798574913390229349898789124195757466396766820007693458842656505588126450892934238046105814926662995423383257763921588512163699706493798530616932716046652215956210894890446318914021355201459002456906773361509915612880264970889409628158578712009516846284123931443315435309411119818764253357276845276880350160182843414274383836592372825215912053665625381236972888656991569632113185661850994392927272370108916522740363033330193788626557508057539739707294377326060401653272801601318923852105037357804695529776294294389036650001765173770583157231286933698323750814137337497826139729674737576098444541527205048191775741605639873430886690136547027455138933746132281333909287581287272524340948892447306023581396065552064428598697007084307339118299356693804116859715578702837257172114048496396171355025297267383936440789585872228052934094468532137183034938132937234830362401568741273545074710026523617079933088151032066380108512772932500111143086448600223526506464323476810097374300758200629940524027369725981239123979886681037545319531688744525998742195989217539052815122658811617707799362700090681877743284498715528038792136361932935646819841695363935877965255858295758910645233160577825767795837888921312431275402592371725971284155485283940328058539477518393410174762039035166548858125817377911541961261484721574832573604818030101568527309449971658503812178803132885236539942563371645350122046053256970979579263323580108189908832742330100338487852764746082884722999179552193392190726983831943337199289715820713332306291774649335791482141633016633048479884461290191198348057567918056952324999323294049965618271007433642305975487029816376381403512422426276814863947215291547634220435298647779448335448183944712080438398365568297931053687540080590401096538353928935561749219847090375204176011444848524902410653245458231531225439167390282487442249968623821002921158391502729847844085180119276826160703856758446443970395413017869608166458661739871704340836980891682536427614896237915488469990679469254781229344167265950030285430715443525611191360484961809489752771454547480260410587937096440880032399269921276993678985943955704131275212369776934756061872401442229850635612093877748957526132785706004695343940611688122824674180687775524511464891378189496205562593057916452542595501394906042954565176882470310645621861814007357114048253204992659172731336588681893965584404088936705038458477172941385835011068359658960314166601769083540814504042402137673640501155334952081586277799371715179343580416210523578522453737347983074781015272001499900859509629191191195826171330071937138054572764847503274529522411319493295751745404301258317217913862820691521738060981381968949528184389041443166386502715671022623032933634839560125930209499820637794258042897129407792694494105689175811903472204833286795943159180522868769729920989350480959104698661807105377708737338007369350739500626588810785318941348943896936613035356552696871117529050164295120983777723185045055164175123415095740499178977468448721725777678150212502397052313391984438409331877374621173668913729267178564037883319999125858167671260952715470272449324088187248055413032552376601550196786557667371987388973919943990020262256751739277217775071464747307056826814620139691521376264204563618413379204157549386385420927038580917537252017595941444112026136024969217099347823863969420279642511297609462954424379303368927569287226095803093039957834676994907295372133959557635881555836180782779288953314568530660181097777758422394938911132974873997891002934064318267628524547068856831553258724815939333530635049589235387365939070759670610712059057280379883412860088033798192811738833134726636982787421423342719221763673088546481706011960575831217196602408909668085363314319693217471157224894629446690801578917075263438665395704758770854567287037406491234376811515623405711045065620444026943889448618503005521724651103178895125692916484154516976267333494173665416844253627442209189526515631600693965536026761110802140902731449320721108565195531340887442418043340511519736132054215171551166901910359550096995145020819780865362804926358610651670887125132252666202354041547060542354023030732984757786861978100588351957045477767406105012475335666400340865234892505392924084023424453354186945007568795066758720401295719820602481249620391851682495745767147332901992841857365956167895348530296320399030191533521005986110410528068608596431964713143469735706881101121168834777925888746099674346356963481086865238204346236126105561301154885028984184515570562880604327848730750371605496275066789614189810737809977892679498726977594455048566368468098756487616758014059752862668920811480002623457542114147558471409161161729065287646258619253693401511432542025263785505911220529307963730117624678434982057737575173534478346706449065401249496137710966070612232975863257758936852896739195076870904378051716443545587260571510485720300293451185774311390278933569794324983998705516420791434067778534423746692450283404905503559686847996990495161475122717045011028378646586656074356734306329119299712423320760087211191540146353471195638955463253366695640482210881343638397140284936740069053186159850986600376762615991635758359939408729599468712056710763221413742837388198527344159583842512111000336447855321965181318043523997285951960004016880718391631971508979513842232317303953831717937040418341680319190501770934956365115645263403131099211675375862679341563615408241067473634386171979627702255888593306947765626714671845269562435244886911351010460605287074038656450378898030452252565721558121462544472857485115560465798049253453890794354906342344464359110790003969908347067161341513322220091071112011901790653181192711464226125388976562334625125852393337349231363825753129724111651041894461154609704496427976737751115425462720975414462635711639604689977435321342947147521864031702078528764586240375531057073919166336804323302837922217745466028845448476468290107266089343873256603444205738616467181230038149769974115654367198081180903906012429775682843888814093464365644766322403882685807088804600735452744737902408494891116993186695844615907923479059305444848869664448701222204495283844602502769873439659656495617701888355763419476912887267354803724285437393511702061208042304582863458772155960335088777577957583117813893496033906913849894485946398197254391727494143739095133464952767424961559016684342851517924153064391317357837609104540752430725518169586301141419674055435584790158574481655004725454121896055476803026584405846882879541384274068279027168023962451858851690435655676765011760345437915404083387548733692949878032508210881507089650546616345799143424282686833501585876270023862947285366974890651289375687990750451204384452572033483272385988263375424023389507843638863451634444255162364454504743501464962815505103903039311805764976804237574893866080106822533455699401489651689227076595519987452902276625335849278493982212000878909951089400034681909343564807857524163158953092884477251508275939168306448937986876002425638959054734535552990926422763997493391430075170181869653277058551199683214605323846783695173925144699390665004866589348752173336981617715172370756121601412677574514963930703729153140796389039392034784687498731981811012470576081960998193006890466406678982025689779200188941436557994545149154975330974377027959887624147910595203268130667526794266917498937551223440221366142388502702876169089463504481546882306300033374846209864534667380460962161662247048150079396526112520288393819251402113658569791336360705919838679116556007284850991446555861046096223050930889605893357499014941084767418911754979505741795419405709303783354209812465188357082936975946468660585501972682746453809711878243089507137640868745390572598049075317455349830596491241885327606306725005711896234594279394324960406421791327463758060847224880788126573677470805748564191067982450886401250255433461497527221895212133315307454169042513779172180310067751910276996890516805914253981351382844344942520356839542550520831466835298145677458393146135471025366220041926748401284978528812695283960961572364011232939170313444485626332956997799295891762177203927709683438632445361626590427085045449759076806191884146456932729448227659316687923442409747573487796311878909662273238616524790811107290505177914163250850304467147190534280237257752138628505925013471489586958636721177319504506193039638544118728340973302277246712908051397615511229297446520770931630880297481486471892329049456417877925664094651951959663231342798001746101889182459693986322699271718089723065978445627008233843335990996058312844361534023529043862795609689014509940226592524597409882631757770536322592597847202869602336800733175657869986897470928866753747952632741056257909277098252560831080437374138240898923655702708014250921511175755193394423726319531290684927617217585580913918410279671457442545522606573143759987374950040149900287243606655413180185685931787902587989344060215024986564410693816902762487940467339187638641998279146024297769788035530775991275262436933487265309082350821029773974867600575456590234600084578962958745722766526050681847562294071431258030223156250483607028659682205815804010190022871154605569909693507073760516084325844788402581011161521695068823144632535125722093528434579638441267476062110339503499940298149207851556900540261498550519000376705394495669716848785880623795988936369134224121348300755098197013744508672087769491779214873257141013557729702167557268282695179873754865252837552080212335671326527781848728494336784007530144592655362920120551620018369688329317201590248768119001907051629299352699892964666184881148726382089992817303849954020730954055132988314445375693060496020360268579127854290036219257794371933597382194729124932683745404811096763171790300714746631986370830287427985426574247000129502910197308625329892583512151935644142475946977626961892384520399140687997779259229387010353833460937798523697899245374186562134304385302427728122462150918997654707212363910132656271112672197448248388894694609947512246073225842231046813647340658947960319826201308835926481672316214958472732628116188255422965147220288729500867703230096329458633485385705138859209759501599474917942802598861258095331629221453866463779110249969244061593419481187462058574441316702656465869727374891329427641976343481441970157876344823616704870071451815918755436137574399303486103349620794869955693051833345149760392621536949071524086691060348630048965650501125322795297738894834379601063498380076166526464282688746703811587719665117722901998303490584492664084188348682462197145803593912470898211235305440290760185491426616553120202486950699280610017777151928387483523858672484581297318066480940033525808000824302211923164667118540676191598897532256160787464015838765498542309706829338614837142462289240454947239472027271473000900436385022469548830083794627322831314386005882868960084096054128910875988650811254338320484486901804673134543736114576045392397411127934426619056944590660582138696723255886618917267950880062649772221207265356235712840041346036636484728596033091538475216625814364131013645856602588438036391893758657612814087628416472870750012386445658342241091498974071494381803780662503796335133847987294498846345344958973098371990648296349865489468071602834686452073604752216447253942863600424229673773581953077425089029173388949341902249402382688876774944351333427411820568263777725897510438302245168405309331096809907578624192234218289821760011174957155069304147468929718720060573047726596711168625162971462523610157880593874769991696506599730222067516818363632250155638077494224655941563393951312214499571448639005572381855229959891721252262511196442712169640561565242795922905476960490572882035227401880463497110150666230539203557254248361388427649275913834282872836413843343584734431564628078255390102718240354159987515628660829307258972207836511572630300672502133997160224665688905210847726614901489817627388588153449662957684141802713929561543330189610324692276469400718050254670169404140149201034687231408614712064919705940777405835627965503552938884489065888362317606095899952078910976226293056429631055368039172405637453989684426083477668948691664914055944033171886300126478532121017455288836951831615792336314568826652635532126911698126367692193892997856034076056506953761965052994268731138183091322117771289811559253152381595907551476720947445473386508323097647715806656780915185712870477426246285161106914337004549470417539800318437930675786548109561421586081812596154038779275804352855992913427315670198538467637045239769020051273064106605073242682401977150977377167961240115780024083156063771107290781169752829384589339733593111782425151408579009005391018965374250878486618622739310092550474932254559429484154377229386197113800311391607091578303680488172450386406106823657384647929374415174218148836869531189792404001519367836709262171218647791689850651490776766898018479039925843041410287713173305080378921272761549895587891421084010298939011751582884115929686260335996247801430798719115645046870035119554850611984992687841669669870793411945430173304937634633215136321430773843598488707679470589035725339822970560898404009359002212064634493888433156528715653088045657564679259170478083526498662621466344533151517741590134371966179188517123015605513964836650218760796433391310657742064056954067853819130135102491181907026562613544639432286362079322126127345075075337198230292921217317337223792623892967133273032284291392609888029964333471913224041241321855684226277452725554531967359383429955513962848079029217104038935920877935110933910583297786693083037980890595763762129336105181814098793645898103079416303852515747084060243245525376334426106325738915249334492867463127332303299739524995677854805755601775184213350988866348907520205275035347617989293944047737854453517477331229504274877476387754105154683614491686389368580586389301021719705289243973383068432346663985096636668943580004701615014332852401525825953904897006770828971902973222977656693825630473728456597045183510282860889258098504345458090913599660915575615585136381134793689026842559491042050264142214848448739595036241217762844259372428021301711846169703547893473571436144811415915965029163633157602474633935260135067719439273572759595143130384358656301514669190364090725993716651943901566705084312602391238034950441168545893576851688114562541238628673578820654620323297845635545750410373019415804046155486838915516949670701652472269476227517953322742258033277967867160294662967594095068488955601533849223263987426797497237277321780122558744782298341361829188382989190730952618916583421487593329040538893880903800467971499242496414984991230806830155097284748959699845689256201422206360681709088890150001008791633975901169950824476074064116979170341958092459513392556350022076871912295664221510377957635722039890937887994787475178129483245034768173737038347346283606971005654566846807082374741588883099235935478966158071687050573208437595600537981757258053303156833496309040850217691416150766609922331454607570883907948216651987204257685426004169775397198036215189886034188424843343758590462486180983293251414816801758370401841807071868732642919063154916524637006412797736163654352873640859468302607487527736428947991024415886821559893333998775199456826297760823969434344116680703102822269447827549333811956377475705852769536821019106305598656277845790620358769378195260749218489470846192784530397220614359478979694329650543641938116110369468990744488630251904154373415231230720605060781595957714316818255655410653583543009956711526888905633576195649544356733663508927768470785002775300164980913794430137943524214368722280770497744875789739913761636276460065983979025320316559486046939757989499724228252496989584519574335959501810317894621276155401756752714158251119715490273183397981664889147950987491515999332069833786883445502616175065714539335494587324781247429054316386483836209811083294087759872164710189523954962594545372513661535788193664548715125186403093691292373949377358069612941772232957337115724525243445576742427154542495601349846235158015102573198396459334383223000542660276535238761783696138508810676256385518403572730171932038071658078641597778938424494440320529886453925419154835939249745647863486763055083489686863984903191473500686935051480278647774937927122721564470157553913471884732628909041987278584006526549074762817825798094743971089861402766283839785690254755980087251351407567357022024237216157182819493157042534085991462572462880921385143015163305381218664918814984998125955766565427676239980861438391977521637080887906505664289818622124633301075415738910143942749546060289074718002884773344015828390620676057305650055149954910716700080244929465086898748723999616416807513111475187181408839411484885696575857508386373367291440361488919394936678467968591934448139783882714664444029214021217068989634119367051936489352222143305000464245829683624043072618088422500487800938004089184761896324350711892929578394104624254788028951210242697948068285740084216312227653328345362697402801745185580904404749839576578314663603359504634762777653893810119644128739022212271925249372384883835252162721590974791199949116013532197470381061288219921870561427033171552295233120880139057100308568822088481399158749457242202740643362770938400926536122929881783470788281361358390937191148211113772690798227045063118618745803898093241476405880600532233976352039911101616782340388112651533027735186445930547901534700851206587238496942544831115527504789981194703155616075329865938327746903557655447560909999058992360111698782961012800197163817974404067696189766928288917214316555761735757029777545677586051849745897971100805276499944158847270038600535889034044067090775053585683157198573119998349077356524640626172671696039425211206284633189332033235755388300370073903263241621311992871447050925521857215955370599895526741090492401320862305792051569184421980634760395939508867896235646300248575036188575550365779371639281127806246843705702270827778357826966304513950313680161562290643392696119375432018296662632244209612079335992726953238209736616949894901872203843032569082436213374490619576405255166849138580275477113309480184362354543867351757651501390486015718418639706681922505752411403371425922564296442927447607083553861479150526151636296253173327613518182526985383328679620908461872611878241340343842024304907599376232357139405666094001163888468329488667821484416874931948305564334273478382564232413104589330051596106586784253867010708822108123540662046754335966508079305442376820837728186199849646327231835821345201681128503774199832854977047043146300839186134231697328584349365150711435732319136555318630010377131115108578804027024626912598279121870521561650485034096740974200313922535359548562573332693817003533078111462354832374070346608861429001955246315837447286226310363264850640586043872718716561114581224339638798382355510919860863761292587140267656842047451234736988674881472540216055617085525398819310408547747133434038428492667060706067521673294704650060407098883990981787915172201928951494115435241424201531643346093879250732047411796108927375717291127756505170541273266797308762888360145432743471694323239998631330171338959910767061729519916652629645011356202003282022428842957418365689248462559904883206980643235305890591855438436846735932290869392911779632448299468949197673108515609933796051886408252726603563366769862561704435516889567158931965345430814681190711845990521821363464505435382905642740749570202741667476327186478557963505375064586209606724322794943752736663380847422990485860622148165209236490671915434561842114845514836072089119521154600747013934065397782840946900897982079510673452599502207218448857758041222031550374163322036578406262631106957696041010520090504114109037733219399187250544665601483713568784559730492519062992004097138798739106656208603215189088869422128085001662736385693122052060314644797302166813128490317584844751422594752573050684236950930017910497381443777453553626882928326474136584786754581401361555353168470415600731048159669763335806604303007784080637675563610383416296169776534580220231919939068552389076820232566456088613869639734712988324597555512133477401609603347392535099142217003674201184721297648424055099165343195107162772345106937191107958546648604344941905248615341557157340405884006681283462471224614812314559335845754712477863502626659737669058269549643099649460285631359992927792721216668028422371348466296574280590089149251766663089079654712703262782386477589434208284015975270406777870869873210271745491311970819644560743263220096149741936517066179072170602535928115588685645845389369968203416889423978835322850218540604029283727154268058815851965251427836899520935782637153879998854963555814048418444351074553050346437331503689933405757489435609511032027135470225841357049545640134395232992389226939765234580242066401267884081476779657912822782076031390045532446702649184929615119555132394858249942164433246358050534887233650959845684363475669622565392478117972278342376445698569429238231540368017081383130542908532363118925316574255595272298701146440592798827051503522342460782756774987071090388933464353575113749487304176896129753715257054745299453873576256607193489363156021330770416902315582269122156891919613494383695660877702235273424835592402321221946369190344593320208649342206865943228942773076468140863228063832764698280660411860312146557806834872567449051092778075539296603731483174338874034226621689985530796496960245077888575086875943988296969971363849217083242528287174849556327436563756979370495720163096100959222678112803723298750128213668739391109660518965195265579136447980145078090507816444540983649484984026991019784547926110628943952491604535121696644403984900935927641472828326740846612915662970582119158940210127177006095862433093878971409422147407501118322938060006324966657387591601861795838063982116306504730597145301514984084188963546590887928803385850473825484458699148754431321891086330589615460462814495910704306105970632803679249558580885254451123513642236476647726270904632126315327295243988757370840211495383198281051684624125690174190349920980734741934730012335274858803821429741731673732082725408303541905176632964303590795362972270868890357085913759938199096358814079542396551679074151394853817010167121664920357042601798345636988046441122686858629022122938306031289287547348643031364722110072335373235407279093262276061679535112170185929541731422820561499818339504738105226681456700584653324024027621684312996092621601599512763045399876188940120283928910186849502180316380135732369955441838968345165480090201353592567442030970403848651566259222566646637304952015095800353066065247226431385486302382584325575909564129965348205151201297404614476053294212043282182167914025786915639493343872130114347268770990654706408937876349029133516571929314742245872226174584490282085464610272656526837604168180361349930199955003069732475920764714893383327862025416364154771691333938325071036222445754976475627810007975879018953146161716233682843321910108438076730974949457436347078199564293733581210995690685255292854911513113473789569018226851867429716304016918758958922016448274344318308587342192964788984885627406270274531686267692774468464066772772308976377522220433860945008365074280140633241958744024300592245839781932085498891363981780125451663241213255697283112025027628776115551906025824730850989815969733158052850132665647538383884265462714638294287178204766905506320052104241639192180014217469987102847571613893543321101766070022012065309730043331885853660796047192963001955487797215481967574960508998973307611649408456648116678456770496863038148215880820115310716798117605712018040422018480656862039426056220041405039594570325549621092563139225176210998702682028004683822287163261097931577825641401411094894100885406392226879282134390359248250506598040838539187232160592129127759430512245335267874130187984340601960813722024541381257159837457394512482739526673859866343849443901068032994854635553321338829085060178331358384686600735901833553518783109049050202308108637039672102708431620263627392600999845849383338993949155300323183847750680993414491977426241781470017260539851508259257547740397313221090969386279123901240181435359846985719962819673882717001425101098657373752680551034686277826385384238403630229204253153748316119018466868516429900716519679247364268672329518736447448372534797494809317069006184465096515691987870819311403969866767528445416581180451860151428814904549057233471776748336572255562574938268420546403293222761120105988367258318562420961648211853618187102286527408962619449132508943471059030674031063103369943957619651199123867097327218950962794594358315053104694632552709188973653172234596528518276636002937486116982795537690397389165670782711355307038802038617209252552542357974935007045897275298293279281896543368085262209574833493779037840396709422162511355656303027366844032554606893456307151268391899736453507569442439612453215579452699122093422410258364625443227383442948831573221113885390913286950977979314083941718460213082744952178012027205583095734505077252908808607221180781233049224316851978346914942190642078866424198198044347861443141215021772908155060210157599330031494677774843595963320195919643616111611233716295090257394962689288793258278626940108824532432603998793393970592732389057849363915476470825670086467794450263942083963797503234263456617528760805748345766474610580825427576826668221039519232274457699735948018880585639553329003678727562316845867094041565920770895767524948343195977302888237212235749734978554753826634945355015696492830999775405052746618684827229241838909559604917868296838479968335547674205866269248435582094106212788650371889386745452342927542851100812805974909480365275709744126138999015479645869856753983766611971206721543077823868332237170325446317284722322010225376224896270010802397345117118247688873311051253128631698242746617106148373885922828792534909362580895335987731457857176206480032070662922392573329490532776683214810862315742316622468357336560001195747374808329642735946741910148259193520586037326963708970031370166971969708648716419264328766238953344001776229133038119081125369600364531382191052706328523455470701751009283190177602604660534284712898110780601231281079986932277952796258377257589621429484594500351812158594297944772852490021819940567934575001977192402289977571327393946799874813046843013524807878618744600035621785720210102342200418789524226349869739240190043894446845631826534500953971964426023643225731068819060716000078623425336307751620861531883196696547337291087104026351699576159019443684734691545170823786050651707643736083248418605571599439967280584346636765645422731345894491906599341141942864822776908619076021204811071040443396173183116045106431145668633272867650479240667207197020426171762144701119755048965781076433851486246779669789791331425855632369726900499112820583772622533237949037706521923189827173270072979415451678534183634966268579123729971366756972125581249076101087839476645485136125534338187672964306183291562673133540390393797972946332996321058726785493040195308653251413322281775214111040565068131053851628426227444917134975858251691794636927723545115263950455678484905262104255863157337147687033970685210426961235602354572547712776223866001654073242806861015539420259277546071979340527171180530970766485376919405311464950097058401954325683825810475752138021743838220819022607189359609502022177203172527756877291270017630708450481726855924693986883833481479012853665656264666962418766190915740188819087283821124502032680522077280879211122260810377774223182069999259718732062225327955487729311858095457124748905653858737230417494481503950229602756046146523693160046600722047536062260306048363376039895812493120844319297079638520478003165890211220154134051110594594214127173464173843006114841978196545175352521636571265103899937837430172237337712581616849976114740286639740026305365739379306529864015960447217814502760094961057161530846617916479378978567429174447953701629282592558609443689065712152672490582156932456405462693225738102252966516584409862225778274415096955519440275995475855359370553664403195836919246689255905165451202667169371245085642306095678662922407056325995430173635145358007990643343294237192261497681620957070758829689533673764057154323529799515447801376634101666697681480333769519069294752147940371894845713845570043071821525852244135524942409180761775831687879009843616908641804584427514984156641127649973490207828870598795650101193044279215412015732003487552461632401196416137905856572971189416581272624807040698704369976123908645578728824196275107525871621834686470540267419117177033991015186852933454828287596695982114689442545299686580963372731033397484858827736700151629296533932064786469990656406265258913738223363054215327849879668061860662533511577490312655767111676986994806751762485662824580521032269440883596634509935872661807306467356870809989349727914647089667910644345542644279060024771793631659604141099022157676270610920850717778622322198910530328382483975994994201767378650933092569624499321712000427561411440404691936174182938924204247964313302904057976289743693214503882042120494593513815127939916677589773403335328272517327418112985111399504792865979843785549248148010839016773846187771237191057658404065314172983752162133209894094556270329114482776898645366596202824683714096226666285220265665435142050013368828980297797542662218121555751298640384490323902682387985956351260093737056312325434645420161171887052052949589837711734360388099531098342936834051298663179185251724462209480878543822133310214265269569940564555924574590315910809350076802007560531257065996419226508624610150680440879349654714026678923514819970346861911814441136506299527133904246559315824451441864727808825624893166853553005354638605594240805081568004033275139082408889701830641112673745514850185856118718619738790095344826825274410267277272601676849886101531987789361527899160657991011018722023313633806719919140645748479913184748730448169249459242506840212465862365849541737457738020882172888416141951030844235049460415081410624718037471222449510340386576944455602145883100307947237653936324488308937593361709203874054457312164396849133963119754493768031316924429095327040550233852209360882794241620802183700477320368454742294110836036790575616351929471354887743266679291993456885583871620405224513920756439888104789417091983333065781754277466000839615629417396343650261836009187770153249961688676844086999639187859375279080833940382323854011375070430509387612961333000546831446181656258802289154589475021429652242364978625747264668639693509228206612490236434222538487454745522667363186822960043938104535700786576002885494615430035392493147904691677727939935877638094361382058552554209370209916073664807557439674525647646511495243171821197778860734818297909969222513669965228068777896356678454095719225621395040696092596009069249840258831686088736843057922140838992216503744160258965807921511175879465798614060458313803276958994768624665812854776733311124660581468703680802982541053559906007290957884006113053182704223923259994389524081645546084623806149211841553540544233632675915744453797620564087019320882440559465267225774169371831115509330741722733162942699688905331351737981306474232242242096508835651204789299416871126917379667758892987307546216186783105112252214739582399728360101527649333874092477478062379027241433898626034067530052979534350597491121860391160493903735851411238174011056957828438475453776673357505092662079904779920986998355441721033216859003956333712851944995633779731416490377020585409530947748152666909555637537074965291001350337495517990474551187434945473235422638106197173898470982596576123523478051920052872969201280112633823914079153341805555304025891075476406324367900518029821887353583360118574128989197656644393444668132042855299347031987112975848955948054763750909890417163241148560175410272769008607470248681554195578119447891472120324375180591952065685764718400827205482150503797811033076416062712471852263886193279854319925785687179783345390427332999672312660201945774039431864742890403123793564650459744535428721356923892120564347138928115730587052946995902686572304292356223492298670495081410491565996645101265760124999370400644390166165347441112048627574127344072463677900830930284463880606532757174270688401949084332547075971311476663423129233477444839038842447748846609676336374876035579172569165851292792009476142441721143028414313070717452033055652923311883131146710037696048054750751161189744140899013587391508731791628818739947443018001666488927111887891111461844067862283473813397914835752121168005321112289787185558149851995034476596137557413563423395593731178240769546557698580358849318880839918672205887639473112280406212434572440352529125359895884809934007361435326995507133795760260067131566353758790424401014295573208055488115346639259603636922361061270316164956050394381758093356170566461699681657214435932089067374562235326971329050382770491228025905091917779678180298717053743292265823079870927456147351348553612554074584808701172678373192321577120266478547156206840170013015289404439843358487490335378427177384692486741868097656736091409597864337137779628005618246415092451116559869303967102247936083166310899938330833875129868687350350373799326401346599862337557522350758485741957618499102759272823164890092645716953296008479529866441393018292722343176234047295114175318578705571721491433298563456420748301584073824314930855412744652592200823451915718238816282973849173985280393167006636796625988298195352595077936825158466975493202298968153276600613270905404770129879737517182887558515937119385667558248825556505826943873605424397458732464373810269366447520324862783312529430948588991800699055643191692792148531234040511640586704645919892714296136981217416261712494417571689039574137116107118472205566050230827289430375215057866753744060435095519608327549351989529719685137256439816982461948619516258495136639629490014403052130148617202872188839436721796626303977593508910694692037383152407228290137723996643564347679390845068632126274464318873559938743000697905673387859230694928317151621121315164328109108898073590128846643647122961243326739655900901970591717796858333365918079836718327731553769053743382004067693311809752628716195007098392984605616072964950833566012194755783481959243821231945994168675968566506901643330018720353663076416844718204405038744996107599242745711642554142610773331132345394796286231673927848917434533750084420322356465751299143169811348581042247147547106894296978072694636256925560321054500831253241058879747110912455226672286372530948017614845926174489474786430204046616879762555953946196221476682490148987420725532781081488786866733947224144165703696025361632785010924343514582944365041568509221065184722369282976837462818793658472130865390767985331730250936531949417241166286970128745814340212117009690721022558817924737831672621346231190242040865119097889452938983583786253809598317454515603216732778026051428057386726017597784820193114981198613644039697942563028109124670275019385135981207912182544163079112282623206238544596444163176532213858627442147810217340322284896997990793493020579706412490371649874738154588959944872319916948029310627479732524095274103040572283127090285343690686351422663651678710393480833949877935623873948136143254796525704589114432414043974667634929417619550789337404652686585469313650937398517503667587500591211284360768838593720060637479657566470725015680449510437233591179367369232614894988228556692055824738415039033791812571517031521636608894110795996517547563451657298863841248476277325414711836387419579821021182804291175034507377496051572891698214376269306309509936364051039773627133347406386401619587458739466021769073964790377137386418730655822702647753585667284504862303734958980021284863246805603317653991422148738986765923447053068964492572896518028619456674272160905422811577872136098778067616401796135815150728079335691236686783278614794511758294285727614272265233729627446191263336174130224489741241409208704408002074690301220529451796674253854656992440545200335189926089557014851220198052853234390777994039973607791416146606986429222119082179425997604431839240895206023602425418170285940887220362839253494849909197067987128362111221003402627504771789135544390793335796759144554437863545754777155661781524342533628039424747996250566977208572225657936282489291058966701075176804741482725810716140895924965347728888962835189328829795061084529983748050347293133502917212291751889742106960767994646503167698012334236571848558683336929623649476543212530925891433718442135420963680482329895423151048741373088072822480897534425296499722447014825531153066871903119025117481672456135842185127055477205164050523730273429474179136645427583613934597476434533220455846681915934523160626846689747175101266445573652879037066195418725699201353528466374318978910755826786577870201904095058075479971453407692920964503612410632575643274357117697160342172243593905119769973932095932175086580116522817676884038465759934680035239312072539315280198850145023407564431352823295247077862026081774916465261063713662126066274045936195183642689348285638897100933547630544721490176500520662817533635277727824918010225876810940294131119290082585204096369607688316333480144973068729302592806029989328915481165304250634707450603878428820925681847326950493032312856626087703054219878307077279528512534057391909386194197412602003792495751729540353764329919688531217113210744542312355174022047999615136351513741821826700850604882180162772025211847939420730112403819058697410473517666993868192776706694870457735797251042544723547961667466318721140992808555141998267170345592694099512629220019517043170030026566813040447013286504327694844208126180821946009827964412942184915250725064130906539113958651560675433976206469723667150849993601579410848640853022318766341682686375805683071094010054117702041392996965393620914808890234704168118522408169977735054216450827133501479241979349916494839420374384087888913574547037062095028703042109957690887466628247402954306651993796983665852251349322141238720679237531293114976471411709495927681130375721266697947300813478628213721289991541904507024098663927514502863933459376296031057171181283374714656263613987228687444058924286524841470254819565249829968343693441986395098042273571641937188121518171527695130709856462527911457290624293105018122272709799303561866888935605531526333320052116800000148401019955462485673268266352299960853737300385614764349483777493699792204757462504610450877428956183752135833666973650716040230145813770308114413654606015042813028002191614864990818835712848228300525894023578390287061415375600109501096601518035908794254757739928148237393045759728039472783646355181574268019056511432639642235610540939125795142988804400840222510740346882265773782886290379900597176995778526744050852266236012804720774449032641173045112215582492513488449398254558680060015259708519473004899757612940331935539269039971912473010440559915096275081303278339584151916827474925444810865855474125605496389813014024965835376340174598532525100853021584464063794284039505899180725902492417819546614609778119440450304915706691219756699805118043302908226349304797698736538471519049925047488707894990978349233912626005230608624744820640304061325890628112902272519280637426469508343266208975439587777295105964548445078600337276191400488161692503606921691750796051793986574136095532962556530656754188204629795860008187985897291490719946024926700786268784072292873503903577551208821589371743970512701244908875821013555626671532034433329182191542321986911908990408764513125642338685259499479635876361321956435600321181118051240677793405697633418523011696795378856837353617926895764378595684874797628385750676186396246829454843018807148495836539736153755936072274487671984059328599495725744578147168676773195500255461840054381280628584409338608398835948222573334528400752724251588019692440793175109668083179821845798465249514914050079901749818063420388373802085759561284860856838230239254979479115462162139195291084194143107585450898872111235768507711680515173207134111028745272799516318408449960740226271247834376426659447157458502505234474079431918675379324948752483091110398952670828691035105866592440404618952868211036678788866761297203654368738365301994053465497755315725970246336518874987164693330056538096934266925810802297909765760247286084627632914036238475462090568201263056900264356261646898922638209396192177653669824895274146825361971419545857878904089458520232064519048080029081598562685695733566494924508648633444166330606671228547539722173806348736811936779971241965272844141835797992148236551232216532265780994838745979784915613965510100048605430706171747269976018208672697374238104185512488112792161151000574425105364457676137825290461664029105033773520545894044645497337036541496807002174884529287626386558696163059732116247549548065419488045429263144852289364323995760407038880332595979795352805599834498321963771397934466207349660469142103119037043219225815060491157617155227278764202097510771013740422622165045096686851451789044537504876358552118705176663179509525459034263498834053958547868824350616514242712230603126695532344523693833394616508778835482065920259666710843755247581514546038057817549502894376487440871850460619568122264129882511800180457484537867722602784318776309846473394461376246414614605719871624112641304895475146632060164483125160962544863414966736302385946876502136499889110314919715316676746512879696215607521439826728570621593931247529627697695622858904906480748653521808332436242106270995591118787873008760422051789237794191654893985362645235176699134169756630813603504164336257785648698045623798282503569367997645570368666663399028137644681677165624444575095573466588331184473115013996939541968494850816786138529831969357188817674454268694715243291235405656506605290447124028422490924284311878388451327812339543129148462807104776886100322656912543212397083247538786854817174130724281399476280784656144881410305465299693896213989858471791081171778895508562294419305212634544283236116611093890705383534044717659761323592612587595933245744885417986153872451508299982256612996180479941164019728089465415824207163133895467612565863348115471526406983459461653114106245570121451230321273577940685115797914072408785425102726265193322288031481527785161072352530333753183642874099381164084650158532520674037354546630481929062333052966175252996872656193794971052502226552481081360020548165648038335781244135854498584863104628504768050816032663130735917850727120798112554418616780171885606720513481928095888794315669817927157185246105281993080026864874396823457416012019991345300601929343589988869730378632813839315877217380022498202740980894798740107134789886835061008326405101412062662721536993594013034723892912917151970515599952957398857372025119911177849292481469708280826076832091607571997946028085824603139016176104372700877147651824867247545590509747040430124841034339312577172056766350614651494306575523523751828387265330881338229488128352652071074174555862524751394070156381419739684475030172457758941419970961167068913136768230627871559372397657470372107883542952076702609332322727630155592898988924257708539059014226110299063758928112772941812864494385610685959759192665594944139017617568884491272373941136459706428319321719690399564559959816548253607489618764653864798643057765583744469381439046355834253464760211137354152411109042994953975462117125012911393635711980166202728017709260121424255162537860826487940783806175172709112013673103457817632245331947181013698741923861956791710997736431075662546506674041719315726652381941567159442214462449027065600885592309462939436025025316338624832726189760381528466495659477423498551248494676603062099714064979784390679539392773382909572213071265653568101746996842523775121493642254994313938396629717878594408380713715754684161492031914841403281006959169993970082332699007662666026348060781756356291766507460724838869008276798254198638112455470127658307470529541641139186641712875712850474363777130679422811581681587762595648118545124946501358621755286983348378096477999220688040969691995586423305218361448664580548510033769327988101068767131641258932669565625041071026694050152896859940137653841039911795516778844422632915339148563983209826894918010418416565145155458082714597444710993488700493218828304280451950906391775713885467443046296032109039162968841217843354982008466719136672923158927069343926192973524408065582765338874647004543299916468860561471479149579237987461640457193672036414203621320240814245483523715985276255946364913439365791088429569045748048071893311871249999502455832690710851228339930475114891483347772106900029753315298516140128378039777041348296065595106348997095939732112014907632377139927037067709691792333338683694065719899330753592170549320803796514782624638294921907375390666942242151034771635029782451681496610857388110557939668632420424220022061153514872987918623473793554490524269404395833898820507426755567240472711573720749107351390883235985138429601370290389464148148297521915418189858166803716611540922846851324617686958442433243113322977295344517111285350581457500909078434335190714803036863660269606570566524496572869016933652839388898822448627088115082572778733035081792922139522497222734564005181123888341505038969195325691216208940711363691105062715770686702054833042853383983435021165894118853793939917045551556059652133697627015824465661318644203927624769291945296347442277964667264069229632052706521411332525003101408730251465937189324050961734350046009661718669639880424441657869009780727990770645803408007740448645053646114211811145488404338714407205538259605411831759220946174548762044410521381614319167769061491767330652300088025941003260633130162396795883325473408200739800089303751528859630934446272147738821911755445302188120578886075496657895719219841548298812909290936805388808224481527917308535021655925310109671384993826465408972957791422944242294287798274059383995278777935553730711839229945038033903584639809256636088735724649182205451121388413429624758635743713836658429814133963475618257530118313793015179361749599598936444104304573947965008462273146563510029065819858491788689518690771004179279643552267262253315650417359722951307290201007228716049977402400794380478266487799837693063224651598330262166681195666259174108337729858779715329738118270347711041754974726173508782581926053497285955722180732294520293976832409719362201145223196962277589939847316156280133252031312888985355910281007769885172898773830666455101170137698026238987830237721508786659245722719163349708517936677364113541424780727213547573822705064240711371781308620275340127538545781097313459458514874657850600549408421192049164688738043150623769521924307849098194554600865866494747510849846736980507647538081626852229775792375337408719000184502898350270196203413380487759953936510166833397548385094920046110118483021262648410040354840709957647447284893780190138437573463761763722172420062850176850753568985024238319326671772024311053204632791131461506108516331687367049591543427838574690747635928702132227918737509437018525512942327541798069564555963007323849411041271185596700783994831814977374864560778055248120250646843266702484708082720544200095960787917678011902263748098202549441841223360786201138967287468010218524796409844050897868766633727488139812647962697633651779295741614497045923271238025265136118343785721447822447932984594450351159851440244189917153863592209230055553489485573502216840460140262723992552783380991828562941764546412940380879227609312470363191423959822497584956215517431698291016311134469239209645741264128494105800242884965752136251574446761655305015317254849257166353388271304024667502152221101899378255720190337407345650080529125459830761042965810056714388177840357781434435492072286327236392216203111988837484514628013497429562462805607106951613479104647550136305480808373352448755262290226501816505307302358720603315409031753892056509111587721817839252924285539784080804847611831080680568804620285556268544308351759809488233470195184216899289368492922403779001034204026661197937452225313736117682270980721957262274875922504139773374257489991458626929555203289085051882461822576407192648511072178554191290101918547046578599777298712683873272757421495105566617460672945178546811011496720361282095599419380473505577555850959499512045093240162224023315377841458244363934182166232774611527336361265406821931664705153731299274682047205630627765378372171343617260838744163960404823997949314462148847619413079842714026199200358260895547114292879652194452072833262202008072899572236667450941996871024199618985322636536499149257504093780163974389978560065736517405278248667032454820634317254691268320289535052984078798207108719655735189590847063772322877706280282684613412329469879227588265852473617755295609989150564227913268520335059908897647519837999984225010094477416129489938357849567947562390837496794627570165627700955315019859801974315737142728143850656511556312822856846166435460727742645754873358023296899499383550631171440536036358648582196304859148967843830815723988383903820667688933831225178543247445439366767448290778204406840888271074138378108082516078640716948951825497086050702195864802538743073925776752779081104983703923895751033314644296902881931261030900122018226320408713891480539088856504708590240487737688528334080173356533035119406049194755995584473697956360228778819096267449298005312701406992428585226884631785394607219420724419741578288562199690416489938138815101574991060009461076422168560209861897752485429888413053749133748438319510640865701773080430694361378939187045285003449901440213493615317610564489106282404546080056033697811436144228710339836103702649330491759499348094506040490206483126027415029045926373657903820468860780684613336928294297305444492807928251963714653762990833790770823699720618929527368185642673004227421083836042421525871586984597110118369171376905738201032634066694979762376980715505235025431129468803539136392493958036363812281951832246706863055768169150343747196089865201545399427544108549376295429616577504598828898072581844965061288384936448858755724825693140644407859806266093845096454815449851993037055633036074551532573029281180724145159998724778385585012846603591429249133511298653377507033088597869676448726956861184392153803887939067881600041212772232417944618043200138565772177704153480401131268725254940938519880444563374058223314141812429325955306771518732049845689583434182088601410601320139559852869193944232458787869592890153920198208355333590293491777616205138089942435258226441719290679840155228911091595156719074904272605821031328358489780755459029167707323615417170532638183128896534575465159405965020090479094671102124415798590319844812287854955968264835747151400250854859651223019705046675876030511545653666063040203906024962087165099062862927119076876461089901005004924230909676095187060996679708527082202288249338342118204741648755854557682128574997129384064781116928081475365846639344595457948716010856158092992565345276286326707797583249574565573791054647288796115978437966537386688542096632968458408155941412932153532690367653269140010488946959825516813128798405303468987862687886003056921354346632201093882872126441156635863407449874171213192481725412483165564562447449996703003901257273927382699487911652879572377170754703393694863627860808397424884810267016166149210566303768810145068387423032427416201450519714444619896804442676280526455829985972561048744090672699659751892678035046603506604311723815805884671938254446062768301427000961243279228105027439046941398813107521549589613990033940698362371851444917115375304283435425647532696155003516779611080337983492424566833128086162836311862444806866536953054977388877411970501558215708628788064657765603486608571340938597181164634229225290360436715692278116732242997310672549371832597619073754487732118620760443337213747777982539317051875747799577684035625927873760277672380240378370138071759962308288891131747346440201737907686822319087883039196921180878303027045255660039260848781992904818266443860277824696366098955619083821865379183353079704413533614063538309877818477199015499967234681922936473255226214667412714076354873109813171119197608893249576776439242084425716006759584631215935944613970954939130952866139617095054593485002093006581161454729632417443001430933420020789203906003336945941960165203265978816480271398431030877154360927565558609455662471677585867922574128880839487614114615773164227888660666564014000974861388746047789462300573412338080333861296890180122479933999893253356511981950122165028481931090339087389265060879329807568015963519634264902706563232106270066033526111492347223548454608877141495550413304458995686294114262844015170175817437044493485397510234130536790976387217634423384843313722202516854022551524604229265097609487189069188154423714829660412196657328780008472569232756561479807851516788053565317725153876607547591171760187479015005734387127702128281434137943798354344158414001350396977069308880828227944568731744032223378233015862896974648543258705337034933027320535406867855957755961237502867548558387788501809750033731174638321512956269157326036610330004786819537759788500476218703620010331691725503239247980382363752769449064959095849008409726372390046430780643210000596598802352693652608566978759595058059561339305852741480767891108516291865492325168082594587974149870056876619675043249765068626809455410869166777621542654475593190110095114734018945617330548106475326853365047017822447756567025049630354130322357549083883292442756491831909333487383909602666943867475930586337173339434047905133283635344286960403206003266257061934287772273455956831633908309482017284986215935420792807032164843460474639380965668296722792751507944708731595415089576520954105944424587961514289904769665566375939163886188080382842594258336724606210155695696608099567805777638352523168877438647913754847127201155388087348332574985057195359625556691548489811841005097272738525758461691432468326415003916180722300194654547396722602888556124204505672916741266598920212217092814839142307146480274032584724385806662044976344035008682736045434943596457239791922631200626325050882195386617282126857952265697298098597062196344584688712506182713516626200772835560253846331563812671689517775323664590556623349416665483104458591218810921988759557168739116613196680083036864058971841402602419498134789883569403292340147914959856544247473408364337217666764339053893789187296734233984608446570920247230704277477816827819450205322745918631637595788165850903774806098475812985101568597465764054964210736318191932302308217473494137997936556418630427610003434424072510323720424450941362527986738900175701164963970320805470795168167515125386482311889556621412073133675531313309802883745824929715991261640474808322448803695997195111826864393370084453574848890023694360571032942632218067421581735628953199718122250715793395103618713658006326219516308387803578559048065592606966063893483616793147335729414536756781539947051267162688429870212318353320669630041737684818606322664085479869170874069169136004817460017058659460318466440128720639608962052987405488797929331681542349628223256974936144197794160618683050837365197392086948324007667525546411507328675959458035249668494068198947370729374415968986683148824508351578613650950674350764573696575461302390543714959270253034412294617693755550673133743020385287864671518493018489617163193551462917659535688175361243183595100629511572174906238772401360582444556734841609658385030661663644363652151836024516846994747721501394241382912564360221767732635077317047840926249995891988111898629257595842119111084575669401092416121419731909881775374117063884091844185009146100965517383961593201219579611452508308072748753260675901461849524071051531649126230598050873557663975241322021378473863718261738893204705321683232121537829686955121268221705843861625396057407207258453009143166249994071750758164934903150405571332842118104895410415465940018838467228754023952506976332816871983605857110935981878567539590521357993535606553765909693976317147540934097745399292608868726926258858566312608956656760489356455474247288534353988355532015078952916317774401075172096988086626307549573158838911660002206875103098265579602071244653931478481786468982574007384466316537461026485068189519686026738512143723811470896926053490053812920723992173323783291188167358000656687105514979027295719449058516852489046413022625645715307774087304997888269835840370783016553262059152681314855675921478747150430171316819999288408573759729308965257706908101967144344662043483639110429292427570848473638693350701633364451609274662595921948545075771275599332084624169249105700503553674664819231600413820237083806327763382922591352096312381917325962052451317156821223334953711277439121689544890412137075430388519968580818608675796386226459430023573060163470256536729980348202142115706886265789074285055330418103191444857196252960957877022775481531627138980983425336032458023632390754858896571384866598355698580499038051286751687103579132744431045989849808835304863649645615908066781072829377389285218055264374273375103723269196256799647915599217875186036520879716136634651666128108637445853514709399999741374701301899101759739776548599405565306698828892354832676837626207096029804007664437068961232886870008923491282139307182706253421384113816947826081361522555561888385971884015576757060214467114746519855371877767222557951420001119063629545735604196303815556689620820026798257677868435243035549902076695942842359806679217649608453616487503904973502446968345420698389332407479201955245228647702630962960844075366179834243923820918048210586112720687055690044232253626718900028119110482205395587634179481741397021695203938645260240703492346760642383900652329808734304874905875812272743559765305271563589418666925806558950717539705982832235748653018103219849459486257421380575819487814744525225179522770407465856330372531762474016546850806636679809597806485700899328899218769768799278583744003503808013590700216489803907278191038803382717281019452806085932043706523112263455191748290944390057590930951458486678352025040631238504763572115491218890476438681038730036335922157399660529550985628806694630295770967357183612201337393399373680613731141260286473242301447150263939573057184606929734200601086360818981285219952435441733164515461513342327648826659110202272082241463214975323464573949575245840231625894590594007866870227159779774439789575173759696122891066156858160676236247189451869799009341527230649299923211479738703331155655395169470367663363993826899296286165762377350429167881227298144137675472939076660275174071096709362141728003878436197928543391550104430805402592636515415436955253394169836929792605192113446338102803448413866342554279104208685777155466044184818186093958390861118136608380033138367365662138533171469428096614958118425856073175993854250534476045089589984503606847534897993297683960382322700418306129062938157895701421569501892215927484649090359561199022528070231061191506057056748758719113973241981083159329074625929010644588551238048643972057317038371914784034535037435640354757649280038381962538043259325185138268163247634011729592364643097178378828416624886023582047607222985338691166555879651917728154006465666179765844008559588878222725512043035090737352943591475366427285944229802755599741974207860582857429995838041608953267612753014731441261509507633217632491509051509993007131062207729192504308074971478336802553500500534572433566609312344934017418736791597916516436185889796166841940752530839363451029675319410776745092375355108088089897885007328918549172164979812075181366946369958202599294106404320147147577528303599779300810856562227741855271036642449235189665391850214357784021265045357099404340109488444350239580728981568939063563642951083424170593179286894670672531328791927603814885926055245677548149940716340243879411493082153501975293462053849047930400060428983217376149578311827908099118346394333330193757471358506511443418830238125848864080164766661505400327446048477827097255768193656304384140175964277228307675485657692409711097727572199414175805595908873183492988650477724899022320812299224467241312490284643745846309432799055401819054863144723036908193334359965717901744476200207318460292814855096185509155919267579480058181438354523953575195281091260935810051771394689663802048792852119141138670675678107627129343290459778458102001773686147247505699052498712620625234987647593483046141422885869667800397533504443583723299028668252398092147993838452635797028746618667253345230802046988999721376825048007898963852695196050755122022573543972883448050798990511074335272346274504105171341826199006122685750074958230118508894666384017852401422280852639762662385200452831230427591573769651850617308421702982409261983311963441920066503016812965219399324337087628055514520053948782353628139477448835352070464007667751152964084658415635619231427491664720190455750231482743922161817085480682028042935399859536211294371753026287124044287253567714372232885622421430483782786245234032920012068824903759047257169483583645116570499873090235250758862408138007762476741129359309099049805332711243509169382345135430132197062030180820995953837668814167668454511265051682072825962515891795614614886972529656504744462314373153218023159476873001211068096962939377054223821054567836524404682502329218660015605261392672996862287866663083003498398887850010901519127357628572529330890368206961781673966927494197202474543741096278815291410534999940983842898913583066216563992500249640635984965173701691258176253314014427674283134608067028923589580259137697551460664799009995732056642016127379336089631991625993554846073695106907561365223744678585119309918088406890503622053713501837898809611669704428996165645823831956251034169851315211327844341565819341646651242196803939132834097278431366609631929357614468118566283896708771248922567365454123286421820638441489604158326745899829529101529318653500040664235278536627753279371280969774659029392983332562964371279208816565410128004438978879920044024988216977921417289574427557701275641802582559744449509741833782421721148733891781311207162377551449695326840705346261191592659893675872301056307964872700982391763146516726975509004701451746036527064299035917141984987413014676409962866350477280666005791546164120635978636280894065998303422728698340475305914065242609575495616723076831702963694972363659694615441515590873960709914274109900843177962148965302843435002000291677303876936388125244349610084432636662079724060175377457431284132054474629320107161748465323993323101251188135423005271877913237565199426057684174015739959980271540244041245982734964959726469415420596280470409111421402182805353815823132142113535072282854061827107963458856952461225084875488844622259494201060918983104866351870391835457698199793752813775362545922877837253980048440099250161885011430889071230620040623729081841428097896667135711442354596627379212067551115515749666705697546307346185895340515214315097144970225735815818773746754020051910263538289263834623233267154766999047784531028480972924925695261344394847875596419059546488764975231973668696577888009118338748469986632448002504451672236602602069842486539357676379481689274114310613390639886377383502939555913796838563476688131746689542097216483329496253924722162260404536087307170661445166999368240151750279542965083062707296770854351142018010296308234399858314328025355642536830826988825071708663455200590448362999516143114833650734717496332768469384608646854084555365967799317991818825355562638079723065168664012435485379640195278870278223092487987595638099417436611899789446598207194175156230301730677142455001403341224796225298410336412007792356908872566703868958968874242961370002417953667025551287001986793216503589684575861187539229682726267151150013213372552368629379850062422274009764256523143129535913965667815343352673367857628896049038597531550989054940175287302334893139898099643019031284958525513385872580289815637995059507653178400088224088340056156872139301390179111860750488793651866142226176411562788055348595867673501668770101163114291341271609634399651384813581852441531595758421188802665722431404619429134543027742978707987468846166760410169021009871388774411120566925734515439882195938323514627446830266561528232815809439286844931670002330034467696096943599364343268169955280372615209773365038352773156138261011059481172159155865862570604577707636263747434765742091090525973598843129071656634994093427990063556881518255807615023579337236982338723146576237018452626068181427029432153864265667827128409898920885308403951757907798786004256412512259317575584643546961913213181724675614901553493196594864650189689980703810690627369624811571889741114336689618143360006848222524386497722871469202654841796570710057699700487887355911108005836700781043158351036497582024729598347690244557991365298271442940463847053450044188694706893858996910891863260881307774377433928825955887989262912445867161477232325998205736427091610639756288921825584244541546766951737552208774387441510574643169879782627274538566420790740985663213833581401855975291845941277502858074381059174635919325215606501636908191622237748307601013901540783185030145637785487133121582621612405476531348474401419232265817811264391033961750465623144281157339593304192099341032184599622754107520560691921863206810682767859429127318816390183612882781209115898475738955963732514214684222542517800528586984133105350639032633907869875109458072502902341254370600121100863836959909155413846762946256797248953471331180952743394015166721343774613129824455119205514572225681231125060228623384505060066572535686515466875740675370683584313663507680722436246191346598550797494612254775011455088681233226466423938197569996605308583339136782882369155026132168566380818855348616142565718862332703517693173343468948520888466486288276300674549967364654137477856838545424266916220790673152578454407032147335822193603832102011419031285557295575652866182395270919621607813543514650393884701589723323075109820532147548009250998752972083115792467791011337633582100843055944047393551593473699985026891483384681880640838845273050240487589521206467050664749021403588664352728004100319458570774550557868702260761217281703894313636339931735004455453677950456620922312149707693544613480048442845942820471615839239857151038395113690241348453701224616671909665868325050104202542748391684605330304620566373232934790162286283123260572344749250971982828953171359345869107610493779506070854178017867549994927749715768034828014079016581002863912190090814309368007445956737536892162375464092382587654314197046801911491738027584158666835242463161012145526884133216772136667267026846704586542451778601373786325698962210613188490986983747545260170912941222077362091138606543001255929877637993193873389378826473497876378269325627913362894310859243294357720855451477872920685988808732545424541924661676021472959039823738441428239602712630877029472047188450522616527617865102705750888339774028675929700078367781381899536465291294145973070611117846745512578360037930747878294405500127321464417104578257444019607191787102366962449483084722279450844045370466669989589905591086645107686089340973211991173864038165143473703075332460924461107826542158668158077744572854047732982061687935311411589305133958884805335446736467985215036628517172426652593941532053886351867956543545599387474352712970276725202876567936152996227359907048942814647225349612821909019981368754886579909807717072154124879896523682419910440405212157302545950187603484831226400493145107099016408458491518106106454549465669403788185632780987525979863989940010745309163664619227362707831483457645456022802218544090579423944057225479738454835625730709074084075729671477833795763403365441542125655221864343476195907003481240607701808876814202292965987943019981595514564849220432222944482764925108776348620308751277586485688978712602629241561798144174004053743555299033609760878906871460175767170253419969248619721513574970204140539541400516637217540174459733224150014164071672506507642191251124088969074617198210643279609326880050677215530342941806937232031734098955828401708620904252063938076368064846053876578372008788942693598631118990405515125738381219880686720956219298423525996081420475229627650080800489135242075368930023067294080890363421775176063891298397333707593549518068215818024408519144485619004030667297133115990694669976476236072939178780345949815620532156345519163317187817921313470338207851508233589874171930029734714432218373175298351946558683459202507953094221338978536002329351013492691514867609996344544227545799158643721918240961866638452793771623833892778319685579491194176482157855357673558964712973645742106577272006770023895366764365972875962211987419294222574748388249718876616909528470754764870094072077160991762236028029569778550373152107554233101088384664644337869225028020340649922007707992489605993783528107675508119726619587581952638152562410997518563317361215182361943696241243816634834969182141544931172277811460084329288603653154589847274029409634739322074121169103474163732411618617178628110132698634200398014125110054603948722518969859360168811523613315121840264023804291590879460437298743529496256857584118868057859657163745103767045584746333253957392484614871844866261362960641704694279979550838621279176798096382145038110288103126308170309480009542765780704136628559285377282305952396663161406474814908920460053194098239238530262537907190665891027198694512919602309280577297518663941717969598355495758054774272219233746593939441594288612199910584786868674893082028522969321933470326715743541381331378444781820873552568459542460438885760096848192017143009578386562420139224112234093339242186710175140122030096751773719886548661095952092074841365597228090773021357940273469818813859571693911808298942098383587696200245589434974504233610706401170729934563335346514574004316090403572098612875580182170111751475532586010492605602458783761537190561350178337535691302896722352979753598693080271542735334751319814984871964062428211804602635949141371268506336756800037490691022865801578139027298096395367283267668577323690112870705970900537069309111312740305266005284859156463359151641582213211054916411761658038036859955282966621738423669248031480443299439546354992172710580496356675313237723083341306991710898202400954733944559531543637009324903773773420718329833569490485683631719217292023486294190547206075362651398836474523132660355456257018465961447256055900547733397184943694289783612836525179304272250155309729823446918745788929134247257173165625284614886155521825683172697617979937311160902086488324440380869844104447757106844768103961999679380153911183481771527837790164034927547272216546505130753406948619879493725322931627346038642874165499506597163512962367576080503744794918139809939068851795269363834896724351322905010017961677136185318814908341053892324730247196911422030357626158606629038305002529414597852650607166501181418854465280116339727318326957602873192300595686675399460076932812003727663171281209327041860702629301617938706313063227310896922831591528822332890778751232577184164944991583607808604906850630598145763199617608157357562576165428995032538553926987028500671562714181992523473986207971258660950035087976407906196371554909798734454304362803877969024268116038654219928815861789128796365591363433917675306041619386236662353904272902826013551305561517254836553947985716261088699719699604795550634493839908068885048391570352281872785224393355431165071181886971703217498649867234176262722446712190216513188732132101544977128968331275872501941139997919853427467910586600422231406675355157829832070891924226280371562890977900041348527878983574815341921848010038634124388466315281092342544970071534050854532030588207842672678392470015938011868707934692109291557602482583545424303342168808561767212688555732891223286598549202078314043808747552776568557642590104502511103780569580717303953190678484231565316602296389420698563374065647214108071113356728359820219460778749120384742908947995434337269637212797136582136535712267185174027532194234299375000287195060758632583547500019821800915397000050423875791990723764567655599659853943874476697596933300684264041950893753848278793888804410814204265047021988316749566711461079895612095411566985009155919056944427720549729318212643304209461640758319638929204645043265618730123681664823065821507037385577841416565196362219650641286838042744400431490886375034222053590795376660957412103174543077166409321970500595132132224577721111592046256561348849826243166569940448812541391858192131471600154584712513103477940798306226648889465186910211092355534376659460957344267446468444974876121013560510538902022087279533398727428137309942607734204220372014552609383351015185061738494504342455131484451121184762233570732708506201229760269355132471249706352275709192172391739771261386610669051389435747935981598589141831425043427802641145230918039039437917082270924663810190869687537831181750185546038461109506341411184237631908491368959107564249431412342514697263146232411189266568173541847128801896243544292613225512669624903882828932073776610658782976021178799811766070455536856531695390328677791598676911730570257590893928647827557147797129667199502469836365712262821234108115758560185244633814287373170461453863443378242820804228868951012312614714785366795360787485804817467675955544539366415267719880459038284216776791548351989653027623287256579941134454183055702710927752873912583507700765172178496514594441017061811515320766195800491193391865237795395003655299054819198035764618610802323022883932836676820806799578510036979378170620135892305356041343046464137946159477435011051709785738834278648795682773783949184867992963650180946569457304787598105800057192149164785138854036037483854348856425258462565014977964834269269604254616663824770324506043733673704148582190219379720779740409076695432654905911895304797073142490178524771134327088872681411765875766143240978556171277613699322761581681876757263062610033040511328865744490871390624363238024962102638388460771870905121448782059016431799439965638582610781697662347592754780387975616028906660273290932220444125705261118618714731469502253579187079210837777964210592492236645034400050667606036123592700242401056605554790639293230934670449110804552750153781445947784268091428764761710491055964448379770925935750530152917544256282933590146944419067417955215220716408436176827019735601568371926724054732748564860108828414485113058032794902008185475923403724895140530440900779211384623971441589779835129013342949909861843230306664745587745993877080136869866424631160771213508883536857170417426411949290218729815918074253907421091869424161209996240929832482642308883257496344166199712066599200133819799580334901780160885385383288970733279838613410384988757165237124338992097300499095225634288025448534263361623936897099492320925717720219957600055797948863706663633188237277083579322251293607131796608835988286533097835609329046808742259584348340080125935506831371091164591406348408109156989266975326457803937682710634921656157452890807158450485858127208723222843154470090095916761606337780084557342917710016158610881803724007152566149807243038374686763834298428661992046484236084728787794704245612033761900404131988665039884974970176226585510611841853138510115893270567606968497160453435706847051803542232070053812142594485084927190995111282461560045092281426054336718904571183031346103694488066835024180576651615497166838996349872069997974821314822172182429589066312865044205451998628939641850641985004965998634349443395001301474989814410094451247851962068071473128073521037475064084942873611584954063200102741007383607226741356405730753162123391342453201106967677935231570353377326887235829310211926673912504001377122664580865046074010493357525229762433492499313898687707920532511374524803420113289508779432220755592543033505641949479239177862671241083298175422648034552229102737188871487644395861010695240920522722714253076656012779494760445761991345144093090675077642426164658542623010031484967678969138144330074297953050628740349210066941014074983174236814541529885002227073513379827793864495397378441695112636920836691359500707145888432591091270398703854447298687520771307738970669215275659444027400602440240997408089672707816142292066579888296157178686667286757637706454983584401863844390106647229370738485591167739058057461759115188235694002016565037757431647539100684880627594942501324136474657207609712962168973109572152384393263574094535043958638493510016626692067372667358444889209057678471946718033677005025657443436212241788173460049392419858128547925125887754531337270081499752789434058578409854957303555909364453150548812171173768222017934129141965864750460897053491567244578801510934474715672294117507804343690394728494663156345444041452677780597877417614841147299449701317861900782694725914676881910372166414974980042631896835347177915116293355984500374464667965510699861087647422455401399172070681812705414226199900106938834276208328197411162404765981978438488038647531943860248214782226000347083238489423380278199156006317456018417547353635236152351741959427548012572326302400291560320130385488281494782082142217447028428988071908081230454515999621610039564964410894619117088796268800387151965354366136261918919208856035338277667861514413815178416667091219675760141868431648615332996496130969099944663215969511497655997000151079407589930105499808938848244117270412736593690253634474272325936936948899724160732810927238787082469157218768490693514818837849468990155589919275997616671646186028266619493968468456053863702812772396723674226306781685062301698598335958668492702035916778890987745483073054988423499805574764766174330609780961197351804070734109567382716243077112315344544728435347221149363850831781273446629477717875458807209835243679252027959793675117729823476932858502053436103244728853117554393138299944268794188725367581988342113691229093235740497749734227482854103275081885077995794252082214177643366889985869978100386903415668056710192755375382725095953543677304289948549215700837999730035368745602057775726279528096111358092269680591728378916155402429119531379067489196540825993587332554218152357868300794239163347129369884064433281979696200150757401629387932893625729455379686316938942795167775441386483861693386093121140188048847618709917659388489676966949627891781043573281115876778105595483520509842586166447480137325628733709561421404306485649373070026709985968533974135059482533781627969418042465643998623652457612561702700782750288732053180716781332678793658657705156587892617192908676521080550535963046450522207573396516056920433873281725862314908380583413089305572598063694351402495174265990320605810063523009474145203632223178683763831381288895003555059568593854138127622675804720727364672477132947173757199063523294918463485258490382239482055774182611391309869498145710274453876021475592517848984299885293479330194351177868764183309571803733270719376997133117393634345963881754397451539999106264940270694052431681564480683190876809344503601926600475816768653754695243540337545920436818193434589923994752242455761398584055708150580984664559205988349651395875699325682344261200538221491886694266426431347885924002442948305860747417758048752674658604021719528556192244573653358952146507620829550331971853215713198929603838268242411401670207644675419470754794866040696528551274139304677389824464843587137078926216320027395349890811853595985079328466391012173564056371516291310218492774415713269835051799555081049757861731726890384010939799592071855557964817324906817184919000337760399941676411864976715494164326010597957844136887189056396932597677222889684590843088146054149765768450091425027615837349312118154027916027700726936517621245545203113490240286993447737695486253076196401096573353014575395372763304478383330583192610758222331887167479849576132972856625712474431600276068342465668832821636174031957252287062936309373465061879851431008758848385232482086442400522008342457795105441034665820069357852486704905100354221820107610344169195100973748312745445193457281534258463708047617948252076508952765404597517573132721465063410623815804800672387138707029291618987813887666105161515025581701696730009395100294242378710818330844567829588658211339345889651008986944231026100919303530330509342586028248167747575582789836716043496094631126976941965133957551916573392347694089978132120036730359044253841725358205220559172942184484047054542016909906749514279934536165926068841291827303334707634292692401358651724004970303037695746982986490462655205640169758755318916033855663659564985582894515132111979596850059237786542432521139644525636509084298355255800002569166260543905371054309177732069609286341400141147501823816500074234199377056828773519681557459704944171092199572287599480739161157063058199225635406460584252883414814099140447287938926199120448855050633845454177906382422570109582486275202282521630616213188604080909206771132893686168614106907324782638097467934338681011479018596117577110694130622846237255530476107257762445775033342290698185976118987923744177288348881087397725894462577937502152181446423887160585404633178774698751890032362134183073905337833175584276574006145847435946651028746887855002320455300736716349325545469939990422959148964205604012619429143367240146843407788025478989160135420830754990804622330516335167962059823244883965063943164874592593785958735434859743994773624408697303352450543266222121300215475416148216661350448802559220538107738388691641607969355644530416848280059074971402907151064878038494495875771686704562639477102530208611532229745791208334688562615029223387113970905845447891734344161713834777536708086690680606867366430148172088081921364096341659355475470709602999384974462789119556471202377365600577418272374982206901348092132104463204027126829099925996785210130641310224054803209916457923321259358404202282181175286689278658072337021346363323322530417894635676273523844720828658035392458344372916333383425653218094026047165291405569315293065043413223658071245174253625255757702872645578127338837725664113016299676598030267025243757027312788331542897641997481051752386593826893697620972238637587485752549063171271168202161305046986478972696766222022282794013471362857896841174486813116329946037598309351134577992614990913535877651302445003127139101611303709580380146470677894946404760258066116838894703999282079397956096314545359318273055510301050524280904138514586039816369250251294828902687044831699266547546702001914547284727014594826875042896814471998231833887565623856596507995222848090128385937702060226509627473684806173543185772332770229427203872534542173010431673906080546878410861551178664548919624741014035173084072133273411825941417737125449848345528837312142398437433312720985620909142466497841140752065235397702681668460151945844336293758907918457961147684848840854103116068278422271299009420765865582230056336045010761142458253640713429814714289797399266362399300151163651280561163489430232653527173970505782051431603389853019351887003505452655758222461719466568177312852638097121760809860213618238798016105924264964645446282406148141242487764348297102750952149729999371113235597067916146310109886905655090985077162269789502344004505498711393460988347024065922235714434657621627741090328495641240971198195720358771904967460538656478976438311587283278978582460825661431644981962190154637484929572140524815514024796092833711343290042659487166641830213253564370538754511322186410581229271780705465041649122671145152837900795991931529443954480949050042586638345200099037229630554125957739097923464496465956102094895068373974544320602042084700943803566018987733946716997201094634246795581438962762172015852469749164454138608526696257036267291431839165820534902410465902587064550789913179332576093787495280528109930796407073770495457438770309987652483963603902295842216424484320514444614578961917885240136089151164420555233513270495829348238942454551521441367429727969846950884930375729050249114718008100740702607731146264413958286640522393812304686662132732725702928384208537149493751189728740577911458852887829397862654456174726786410189953092467985665213574762264707890029044388225767914579853671607918340607857258521729144907523398517054373390222518631960075746443853158538508219929523037840987627388246252131293994175345441839888135049889136054988011450255864626318548672093349271822478072970805115889545412977495226886084402972409250741745309648817798563505206161799249645587806460375599567645164829702880372727356446539813647834765748766862823217275456450972381330636301802619231261792603836146645339186952191446105985995162666421974324653334641006004887815365934049940507522770389811815217513714261967732208387384373725718845458472196646141434919889952920448958040057615721583204792764596044411781866965148374405366853361121692714519650806284530934466840342887479332541586540037083658332612181310247714695309918443431153469233791782418313264377232020330175906499659350482035741259498322543702902956893424493225474034956275003590923953326723303589174132843555812910639626821724135995381478262545976432085021853084997785761542492789904768227867808215456043222612408595758850124019219391136231326269379187448258616553227142751797202093371279149485861143359589129618395617346968888149253432885998924453414355345288411979050746680849494706378925556172328851855061783774990209399409608948344140599482070818907409801687322460169532873489442561839386926896787124304819628051336454199224778281398531377255654824788831172216873990128924623773372862876592281936829980959275474519273966222354934348673331898232636012188773521228859021609981469137713799032997591679242626852509284546994037530005981113507290711023820528074117232102407483636097709086226747105611689375995123337777983102427664519254547683271492525638025228435138221383110079307409691244865649268151793779951540307169607688215330235433538703739881024529953414589828531700871431468148772946666850227156226651814103918808731490915565440546779762232841145833630509239780573206164493355867368656995756468331631236695684262137049173308414742514846738132084915125257109941976668581069138654213769370834994158055580610788408785163791221495991954467175274750721365973969295831742998237488097310653553343894567159491914831366215174980884867543421780139813644778494993748581551211712765310664970601909019477366037600542124462800398168476064705842752446939965668575602947043223894704876024579969641021422458381300752931243581215298393293912750180800021442216255681080872216244212275304183319943199758319124527570579576608655162280048623171404013175529640020187002008458655930795926198276733157261869423222111832983884258786207882952555287113374572440941864614435542581899325607537446559892955376547736247955188453793639346164875050177332895075043400113700173632699018997577476822576673226944703892278746707090429765916162281292942855337780693595732123499730615021533484703608096683161424464988446900689585462991732676516816331643610367566468138742025020775347847418888993111391221275399451827364470389908645887570937183952857098399115198170291860938299555774366234519365593663228746893324605684340675013830268356067055432979280645627028100179398982077846183949054760337519528434069757465929323497501554155574219168047630703304087013976785478742905718362484814053221358715048335957398276748439175828522975600132307065897027083582153239300550337209876391957021987679827423978186280894373107679539258863709797971470383934526804692996694980470831717853161419692469019467516459686471883392952243891714558306287187392566346170661278967743506362548629988206812785884646400756307004458570630359018464852613147753522604465863078845401033754017949137579934647333676333379840897153780060503195610349670766346083436763588570957836787897528627425355146398358312454470820904509310643431728663265492465579744051757726472097322970200079222258831750439426561327079025539852731783130551961890867773672541675705670413544363879585627867405397626936428230700818820327567433866860243786819001839818427814719653665716134091959634027098029265443028948766710480783904921906014899081962324808370921579512950960388267456221508895746357940259403891573471529168172255520500426463445607551055484850623059811305955596335235681221352533285152002305556771553197067581469104313715019337539248744921060044286715119488997118819624249474368153826648179212275721284109845330809868983696793772612207770344158309883190250253128106378364044802194346141773448342895612531581677540775162751697622438625856109823630251778636976054351732868464075545677958034460866917170720537743394960888395962435022230331259909495537435691521867226114986475329351486518182186562126884487367386949570330207695235349243720245044783059188779169246155033484535188698825113471952620775490027642707436782698143610902109012863983865711786796692443384056950476902678582149086623008849136822774422876668335423035194100206104920702550838087864662272967562763841786690968861287752240261047392546963468451457683654254933408497369730697036332160117603957721391021067786897466736113718785312215587105542512730143735106185870806192776256201751495172188963472072768734570856868567445607907559286908562541934885558511160774048014438326155408698136615841570574373897440351169815928998360219636367930294209451893468363035437603286572262283179336542293136274072226648533223222134194478363760875737611801179447398920983232877011825931091133737557862862979623915828860754810313370718442782979621265510438083425932247839576032630483441289996576730509093295431156950572908831648684000412186341478985765031385852779252751372745371629124374012659258788714525685334709940464542814774332273202522361088631767904332222276296527541529519499314978734224922439138186815039240963933208675293378014741759166062142550678119824667185171668038315250760545331799482102220894128496568626961622765389996888032138417690379025185110869595295754611528254635778252640291237468654919152767668434872956113185914800765946107703585125924551685370451853502233622602942494339031927470782748724004149557523400446534217725194829390314407358291948866214487198468473662462071658368785354881147032512423668821019645445084023578015106815683597989518301168117230645908377974447120324614418108226164800844519066187296209258094253182425823959369655674609695557603404515238333770174888448442477246840365746443442908113556887530973250209199780475475487807863426695695298065400112950674496431744872856029999568297286815700286520730726098772246670520812887746532213795626969615269589971548209101249895277324877293510239671681997198622106514468135778189081065722837282815858700498882807614290506488494877487446681617780242942728353498301038979476969100841891731635546382798807480065334274845694944535878760210164176754837568919892503388074006480983725269318875813173223018010020840707214140442208704982906676668417248469404951171171938402724078315883931841283244801797694364750438860231219328131901357088787901278949118801094528683110003825579628737254209787604847410391151733598505374328184291714924081852581236456688413180275617454992235560454768232734375606233574677282104340121474148845974322043289210065117263575467494051485505373930500045511152783719618637254927189739365929541871134953771351319965445435940501206506990094993086255411701353788155546484998948000388427045230534695642375142856471937166070494350581180095518019846136442026653429588968056934780543601729555532439557565703406995245632442720260081401472920971122123911888101912457285539383719802561277814117037900909221439183307262048241559461641524745929892850677958917047921098780653591909021185097139766629870661037501102712146320431458058796161986516023656877410309767989943118384748605949392978538979906551937971194957441716289778841689707409899797648658487622424818648896968413591192596606905176211187967423423779424735632493026576111577146508313445975426421090375837801101333264681262395918932876341276373389019689035719731559798995596926467849329373386447023075430832338501312809456704914672905890823328330868520026491547965541555322071872952047048631262646051739197219459308790709699582877829352010135697962050142521277279764768099097791969793464765167156258409049966801488481693196723333671088502249536472702272625944510352847524077256816878166721863933773189654165075151010194888698906218910915105259227910571893600504531688634673370426118634712548960166015009561298255406341378300779041870896799087498522503423013737517952062435378432419224181231695674403457154545983461134551716802696016108196208259897173178829137997697193390848596393793434887122135694518541304117182761090943869070821903358046852303705319689412825003950030637981847455061113201002604782007481266996988205143547423165206656997238962023846311401697315414806370683659113236211960018982171149563526951452581969909226486744240059218276498897484590350582458467983846603797119489695657948841274142637265297736535315276972750978792692038993557927839937003734544208257775140336978973468074422381033561705756709772110632108887044142289581993252033153600540619904366070662441005440368743032430289560648387117233623390949297861190077481998458861075216434081536089651087424239302813477535169793432536972568435577222996718942291131016564726380546104511130157574172919091571492851554647272652863106707933539158151271519087205914848723081040032469271109948952551141667724797024437294803579958478842373710248910408375154093956289936902778110498532575262280728935609639605077447927649938336866208847993626479158682195090494502958462135574341896043634203797151674525730867499766364939316654130511680291167374278323873205928246902100360851790216567484736836993431728491239548323114973693365504514985526395085222825598600596600048970620880219876875397878541667490980994754225526339388043931718439748421820656878635836395071041783759822718247974934297445844163840957877929354470278805864477153162047994517331549902975551107438590087644754931265960588076010496304985389045823226597810889328245777400398906996154110574676913514431057699054786425763709732059439705708950472278376459450182864504045869594610785406177035123490814865373530395031385441905429626007380255558126236848310872053137704990242394999047794893429495506221967535847484251055031771643574772894412863689725988074810525441841079121480124746907004132608370095525457846736697161579685730224973404540557455301582639359915981616004182311871564910133313255036349460393019725041532552066598350107854588362324360346067714438239527599899146183446594344678872420218084640444949713888840693896610180535611637031416331235701328264853313753164309010710785677233287409681140594269442716100627646219708161637995951560038148613038307198395286293934810625495901438846680841097907477312829468145850578551736155681463740824327606775939817965193857049441035164785589537419359618916829950213814458156086943059066213915981067524877479201359218500438525440478835144185726995229791600742079939838392881774575563094767876691282808600225311870405666482592453708250629138362770756784836485796833953273306295707396952125432332112831881939495209184855959774186020111516456344281147366466546107082633297523253985311355569340233775632329669710703992054582012978097416541288059542489229297748331646828950644911742406754511179800510912427552830498253186841768854970566640312120992963860215946336819684792363832885909682712390374607566662157565504801554173242143776280242193839058645138267613397036037729760604825828215595065477936357647637590939869295121654450361835303121137208026148280122822540831532915073962006496682111239122391720204480555952832157100631412886419730400979437737338269987640747276710957856943607054114908429165492558214056198340107682986602588308584228494776029647431312665385663524039410873460818888962807008250223836691212626820129133862070288624018636506105190933056328650446160970144845446240653090681658291833813234718631629294992026545837344105371146235102288087948938001105895186071528355145440842356959618168001446486433555021281179957290356875422239576990610628704301213057659847640227449475734079186302150655318447988654054435736456533768280901195116637397618602172094205383149788783771010124443060405080832891276891203527365886639799828615172531240228687854159401113524003108378193106901206507041547717705352932263210795337124086251978725240664047583754309708213599084214356090919750480221066285479637744135614903169257753759213581815537099636336004840582294350211482146220191151840959480859503220328225921359781551632092489627872638221514870676752640376807627341004875935250229611215894691142566462838592579569079636508784325912047116576522004064778097286302466559617823552323634964570036297538739470746082589369096076415876459600690537516913951741072502128548050372166334313532369208162394958345209396153667372376722363924736962084398923647425466231902579038034869714104254839951486951257371005793624276428248201282128872881907839450459521071781988758616646457523679904885494300518783937683034514689918675876421982113994331930322154885469275734474488765192002960197907840192397406937898333580632858714563979710150238941523957428370695652410274766794061924020392315316057249715176110794774368778494328482092943499865708900261885569774798274128072357862093594702519253475843783887169017248820650102714527503186817070442150002590700531238595851610358970462885424645808969753921012609916233355000520379750480135764996645340869179095599713054327141600365350902225230631810965208945446613596333821218181353814529227536062349608916999582344447879454648949748196841966101354384472711525595710445236449650814778920359991680725739365193105055773525498095842444947725319745530485932657970483442843406102510241443863351318737088024187264159194985436639000863118924066732158011189749418068265353112451332282717958857289496308380970126498552099060089368601990116283672866753219737532869010385169485215434284299175566348638140005228113319347126445381542290488740881602288781319055298285172041479089754760973356589932010896552379978740676624898452060237381695440318093063700571960260572390633375612829183597735511248723096916252991680676729440253386736670690125625570300464670583254378277997677040466500208553377864237205176091133590870104762484349077404446275596464490256198974103373065908827177670884325414772540567688533732689859869327094256502338380325055838683189839279831245144280190098696557717238639213058191637469618390057803290614909958487871515707466818425382166639143235304808503806736400364110078854774987559336515372413437641835155617896934869561361711390591090490340853595455745402331408927041212490135898712993993499560565504296901147081847440858050364487926246590179151785190129470895034722088138950776636255122065731992877355694217422095569138875907439478287070150959294330994226182121085434566683479789455125023897143506554774332911123112551041854225020845574510410264259146779564717258613556705334794117540017785042144541987250477237685765660588740968681361084246174996555081459122884250959612077930231067253205043093073382374868450724176940480179097800657964386577161885739760366768684351142585783129238878331771463377689798529714553543067516925305732718144627078673710221915232713327650021608415531729523997323663997551460932065219512248282344289261053282346185750030641970461851563731170210325504884591761035487952359942970070656286713455983523588390208870608613548638567353228428356602979854136372022972927931817127507377212484083399263036786126339651210050707461378670645528253890782352216311985233708183230134820550214828269882133074356823083252130622243234649044910189042307647214478529954378912908534815434953051302238819350352926778632415876362307462328345328071566597017701044442878978191653293237163432185782119101819779640006040661337533524935505139573380721871153827582406840531452179857395627640693199450046341733326910336489714144649748051724523285673415136008254302847930539604979602429107893598700234968021543300224464361823573362637929082915301144361767341937074699957268410930539502836580397103352662912872308763321019562723743490705089357799353653312203290936535848009676142336282170080330341440683316008865327485649454654955585741780220291289204006359282865676339954510197078373542142668087365859635891121966805727371412143467957405630455695475689833397866535092125450438756461209106555907985772969104427213050906122950495742372913573524286928529430116850692622691007248833230532621590436330684947192652053771401136967642657904661339919515993842118328776167184668168711762194855429687582103946597587622668196885475061134492872363699265117485369989784561477182435439166888608745812616392592216475482203496985870763672068223199625211661098378112809342261375447899630297371985602408704343788234164973829924433622866048948688889614545679692740637574970429127667956780483539384370443994498970760066027748586204224991672090824142273107245293195873365297132733027009617690484340714786560517021092190450609060165614402851570011001798911936535717585417815561315361030707269440440308670753237484766628465591077495237019708176459631016381015564154931138518229737138275725181711885817968611873132230376774869273660382680427035363164136994855149549847829570331969832905522950959868664469760241255855468711004930101418055001530397841049428295744491867997922786201523799997567717879307526691087982785033957373744069864688170391933798150855794576795012955131350642835833295473683789924217961357041247626436380873805523954762022981000490523788387462273951412243578617142362283330708394048272563287008919494589042608440866112795465272396220419459377211192727356827012104456189305610383971861318116109627513635412730003472433111225079372470596758469249197145108441633579822308169338893773360546000997529782500516853790517109236783548419525203032917023500779643730771077309123022367730011735293148647595838589141222707482237858786821530548397506625262661872262744827455806694076076983955437658898408761743151136636121022198612086855640957061711337937646943903757440056042273538526956207575716123623321060663063322374333915322136093148949417446769189314924310934851215379201242077441680713872169627942610261116135103962454109933854741011575810060034367730683882086405329047336809851213821240930745032358441416806084690615194722596525093384958805121457721339777791416139424294942552957215339670609398363006340994883977249266390112117660802603303531776487234384291235380404016526096854299428014798532716327025468995247328800270944985855080289232913169008846287097480396125667459970854454575925192957959961143281535070937234337264239622386691810272973684984853632896230895356618441526794766663730122481602201177610175318550555265099040880683287915372192648387031000580941986358811591638239966719355025485652002018128668517508093016066055669416569939637143790820462704395405469429737635807405582006446088030403836207767968321522814166995123344797329831596189311441307345613895502348603775322977741743607210280550290459404738959186812575936499180079684722173249098979968811562782908526233185793039560349246467231621764068203664944404771154458095626521414768666348005849667167713046195857894976990688970581052452782553951017514895015180671129536188237803875469915457635787414831049189711037279437374519342959635777340663636294568424149022694531481263407373803610127794525966467864999651850958200047779480043401799489587215835455986887383036083468016072106213896819342807479593029740255600720967940161986280579624699561989691340491393537525687263284656083410127787639098979238044407710357380491283047685480657234335730266217531416228710696215445653539164178279673764766976106615211335073393458798562164477586011098926583677850483824825539199609745276322200901940132448317403040027907444170425927924188811796838170615445331891009083796067543377588947848331760171488843307923855041724935663720999479353121477708917304299796222471072671492083594766678552200713512446054573958049281569618453543136843570451301158154834713674527488106051486753862728742149048835525125990092535890701307194531613231001983131638026851468595158377459969390022616004815411343431185131935577639940356805587940275350785529962698043762555508911973973457817512605539177231220302757536815177691302931134179979784190770718460272084053994992593942954166051612132599021359133774764108199195728250684084085376175927176687361445736675605627325670507317860377964354039486043179329528232435080810525663015310734651075513990181442745245001295814276738327351749270520009096664236053966843022812663763570187336149573684996457228626356314379564417603017358069726112964332439612812965839596201146236047572595071866405315733655672177052747229207267638399979862100505576964286927106094236680205968623448237592590810218547401251910486084083869884309683013554877027068755169696041980116819662970680704641728706770816284284096508774317035219856500227138437118428545334189338919840790457463754935318179233567389495386273493619967712608645386176297177366136016586608378242244070437096179277092992007677724777538244561701919361450468730614868214139151696548748049374777055162552729621290908664621609549899251871027313725281158957957077059552120633648215039521679242759080300532881130018228344638172802425273326274673348251589296295859881074999681413992332590545942749778433361254010703286712048068492072141062412816106757520686913635030287891359291880635811128578825487561173348701158582361732579809753823344640569390077568565150032537226478887885155740665857970147896337160362762502083002174013782595451188858967368160834074592262849828778659397651886658243032992222738814718020812441252855836802049459988011924619687933242184959629187121921014908646562313385237248312597344582755361831048095378758824762760605757337456953319384020445864731343891557738283931260150695565707103779134764200674195830237794775469403987676373517511465404260782419812430390064493735053408368094500286136351358220462376524890399850521698005670824470118334261416880862498292890383812614328722536363339595468614284018927048135290221691098986132071210369034557081850605596129392646180987227752407620948360558877357570405524440801441719093178368595599439617660356170019319070300035329594751686572683878953648728162728547638958319237679838645884624676946925624509754920385915818009001118417348112620716161517024178813941268005140615543552651513913341652784396647218006115018147164544441645604268848175602791292744359984154614962665100777342302396170155419918588545904963240233272838861173370765889222572406578585790288859910407801026177470651946356339269788844978582153486942170922527346036207881623833594094542725565673745515126265886075772732908142597727106264222503665305903234288639758662984667076985743983214815377747958206911629160888126486778993973538337527458722463860271543147007655933468589667764657482327229600973427012566788474870203300080913420016465600677522130438091862432893754150439036850774106478568918845525545823344206953786193911564236545086449904288458830288087138139327154065632114636694437410085859419049909121989088782078331852265539955828845087947210142110717447384745921638971362579539201230788369462497568246993435370285322125987367658350970517256203742943703019939173869924182356396762708107960873187820158957598593810844464634850523465863862299244773891066476902885586331811012093604172595350076424058505592239113649259087166072378168988934929366489113602462100955492634549193051720756795333236618086910356177082150175139510907519111377540944557745346164215965632031369003249751478809836357231971403221864703929137376091888777347713733147821003798663966099135149305125038323540392362774861385142573519318541484406352666241799965039674646218842449540849891722000581978634267210390992978077579660961893577302914624624931413751960127856593451194274764533061944543584220213681461459440532173806019609684786011278954910317434569927937102881159679380593326597236929940591827690651965774862878265360980727844398493485389996061584615204478962736073701816372426315220799632622038045407593625436227962178620526680289466835328996646993805130946970875629680629234214616468489661171649208307077608422709790966854650915849440533124370589193726954926996895806714036791351058858574149449397215335821366348708149996116851595102196436967308993449134723338644663673035961206308454351978807091591630230973266809917689936405433712501350327437424343126956774927412053920048671218724030896774745136283205442191356915382082822674627804636127409597391431087995379301379673094393105029457738586368048721055830896882825841430864332467628711591571891990168444094363321594573989181568976781127276608192384851371788623092409691867046422239054781060584335080521556794918551193151775483584750388947207699773197090003540436016969861151524491834433739044364845083449701176012825138918426074524659488797874975047444579540771390958952302903782025518762427840292883412549932184686347459338162365571481647204569180262949442349952873223627741219636790424973390863159843270324898308297678122044738202462060851914556723706580232672033999628775949087360124091124302965359636508285931647234822307892468753725924406066538341388269302770825921433231619604064695235410428542685164029665805460629757502102669816688596205857577742191144229140112549569716191421626399346733183755134844712888456549462611706118017561116287903276237366653321729741693665332868604622239739683586058032305587137243279305519914777882717583097269519774723756052763369253086381618284921481639160889627892092806716387327012557116187558319483621158993186588497657758254935204131860249312656082061903410903982136403913838184287899160299027268410352386660392848397047418532187958920722916304259025170703536861827252198525912892201458256813506511695357082244961462068336955659278099974687390621828901063709026308501845798543007379687484321894177536441036040274114228694617671506247992674942001673393706772755918405346757369864964231449688365694809743453359332146945808419859220160704516877056410868474384798652795063076140075028523096401420611280395136105372181588783314765292147166688693877383584816538564934060765832263855988206943454245605952778500382228776720641215288506627219259779953905799554530130775503185663584371058007201256223048695150105221752376235906207879954121301944169001981010951967158511558371109200591009781301819990345388951489255454819834066476826383927189568104681757541819316424058523053164204730741381412697168962312965720854759143223642068629806380388853663199212820136320122415523007179633221220004260616880145909080680698541931986587967839053393404730348580520133098719888566356704258739056190191977553228692618949161801724774891278755655546524129272457616479803803040183746023250714293239971539170498816635451580619695234483772291783978490226225323492001811093207582720140381056890077534247815010618363987837595117096269575587480276352563021485020261114826274471137796818790971583179791109148468823553169015296092906937476063343262371325538272616323493367540368185741333869883993944204597910151440490158269938742277743890509005817821789938735796057342240219145301449356446030738821494006210254423067248527386866881165364756605278318108117615023980105350122481113227057799226825635061886504673331341946890902538356408306011975834725957789010654630447213290466224287035639053570658801547609929582289613195549428452147805849334096037467648500841121372993378182346535939878100622606412650931933273902752493911817206552779201997954245952177631907901607258733967654309500178689887197732259788791281291535665527274935703615329687822427976524207709224292867648550862922434789712950637868204852482166168382395849766318435667348835121353312392027048663511933597348005854373851508125457379202912342860627212738496421962445394219284682989873529786961068114622570639416559757601751362955320866724892528967058761757337722489568623310597394642544268851049911867769280971921062699555085985219324801819344669831425864708346330553908647061344747553437922343979938456257523736670031582116732026476862373579426000966701104484113506668649831466504266222418661669808142392086509171348866700961932459810269280608210714791162088238430391087085685889135903440597386953617368200476110539874666323765927793011958414463752638275053153335976916898780386290289043108774382639166201657357246019920537877302584128122507434170973688514837909251097609475224301850642594101311988100797283772922917544011462156865454304411661746752452720714739760757936422833271149708395605153061940279741339327106678568822734837588706378656577109641788728258609881919718285342624748817637978954044773808630437465144049206815882464937375622267847663955022253873330079974221487814774722169653711252925757968902539793779034078390269056665166713199022597425877779141245325529852633973278108519971667440592828587577639946691434420260804946590328024262634584124719788980437287462160655518023058590036772460517305430307593121920288517391896428677790960339037133654861663409719352794276818106082024236254295240940272187660737373966370627649470625941825947274426858029045755418130107050780218433546534532056806431153977588301211963728781355204847238621340102104301018877532507721411366754560275144598758203233887909264277851001323878248043425508705741570058342402016099194665040081681302892028012388135999076199451245831904304205679679965407932016295780548890148914263985606367041575890731851468284655474127963231778423351178728763041211600696030852800536766172486511338667112485775494220391354636358966417216104651574701503113441266648860287864227820344540235528933501689728648026156700685756205480289269775731965196490164321370284587498715915303627901263308113745805045035004616810214738522239308478691696715642344109120923222550294193894303664101534111033457936398366340521332502037628590073428499080632316275993911211516060669603789272124429439025673806492107820455061459148612953867996107418767358765118412741680987100090307076544642760840213182830896548884057767975265442854768904206752160798972909066935211310117094777988853526410014446499399099424698068274060867457501893044672027925866741202755502621136748458846163494513481924844000850923562528122595811250689952257905212404112249762495016557863709054198445090448289811897020869728132940538091008444428902392262814437954145700417053521670304918122216617189720781834956766509725128177615212128679088138515778357060089782195333067749611917195324220284535477697151895104474416535203727418935632434550609772756614656652382705683215490504999495057536687909984174772540429908627928119836224870996123274402366676992209305755642053866386537444614528366661666853638575659968157208587344573511019057117556868167805109202056769947916952898758411866784917266605508682601602743255516573008237540374366013916306208088846173024821753560163803877408537183495109251454218842391020392624027195999328508723702911408136235317080748129681898052643122587647618723841505400995996969169955976635170915623763835366953129786977706743800614062139980691716382489857622076576474640361240782764499997577645602310309485522610059261142866939110167802004525214280321098701466270319696369562236499652904527764076543204928840536219115856917818169850274533889917153522435882753267579841454085950356619540551233240716896460187670792971648660036125298965451341354089803332007346515117107446713193168595507579309432258275108600813716544293222261067998920623091210675293135210760059360511119695385720297869103590500333825590785452990940425339525714932484762331345194667984248216271396194178201994798444601569832630604240308352434448663109571027396199491129908471945055787400409326575424446516360842995223076742323994571081121877322934117556355003681222333488977218418891426747354844654759239148847555266260614500362560033619592204264098620278653049712295207972867667623327747925024979445128278570517370966157353256765945829331074419653420722896062179260758680960526732492166023910914032666680421252534423875543945491120057163060706356597454868959408432225069674396404392540109474837339994663609575043745516292172248875905305674302226659156895282070431325314374136174209767829703433283977807732301204026801152451768658097663223158623318005433334830526855520460174404411604021725737123716766632709735092841232779390442581428517336777568251532618222628302290471379682210681114642103209279525532889849877580682348605056445351900805511764929701042809849975719769345917440472363887447807989633585648499461128496784625985422502754451582776982196439026862125918877613719703042871153747169093815166597543416131773620300447857504482672888339894078598038191108525218478887068925481836612337966020720216981466855839812072486015654913519106604498362229878334115268781988158943747285432478071932520475014628475839178289369675625364218285339833919850623026558064962220490042930787522505568238136856899368969755458097865849009072109755772035225204498711365468136200641665760088127776873949751727868691461702051316059434481315079609894259999889804928032175013029032523337518460468946481584204440587758845219967129156810244020413498205407284738036199275346092774758728239660166294620334819278596144039208585572894809346664166558804511367782807700952763895937183830456868559997040168407311613274015381130130873314651054721966078972812369567585035470899923130731615452351315813637501302953643308822583161672625460111753422096922192804094142773508391118241112256363039755185134852695550498491014089961175803216536193641430426270713583921579403771026236522851321623020793945382417088448903046454191270695080240486647958980656734546155285836683065371755276210590626381386655723063817308896742446085983437835577358776659853971416263665598545356566918397431022506919537591693514360486378875580455768262686994316454949084842628980284933991712007629285508567204664057478014192589599411327347647522590673937776460854615440923231816912754304085108269651499542612830494302219472204178479672678020341164973981582757574588697423757527054011952915375415475591378366291925956051319041778408714392233815912078830131641995270453146545566969395705286506081309481972206079463329055830174032509921192750754441380782848740792474632664319171687455503400965226218563148891014167523976356961554041760808779216354739870618520547804746648309059847878701468650283095248598457908194656019445986784554871339852600446620137821757879792893238688991382648728478075817901453862211512478476504284670540457479306900926671111853602797471754954650820557199126797527601112523405405960176756794533874799521700884925505957939374860047570098366477688059741912320356617815454746815846422109394357869231558640877286163987873913941507441459467888353860364475672140460023472443998379611808916095361993794740991384650269203858777714386487768312555881822990684409933221408817817769444919883190953328715991230856443384687623449626198730906515577466633894136096549260953652350545043634497576554545966964078586345496609638362328069665564938956845881055487658800609593244115003088607895959139325162647097001833828858083756254087947667001484030888932795906884000212169127940575244447307992213444887239987250118605691800297945240724266191715338672495881219204024619461679689689190622098757975942331405694331076806361876327957988998297713240496277710193211437431356028124637104918967904741199661033070920282720147203679174763663872890358852952438261903912141043603821016803930280924375231775687189074587129813244892685487766621397390572099878224557476070934762589215382484548370328669035219098021851209176480322138745431942630629498561693296327408552773090332967599942156271551134541016854772204463733595633915963675477481880660006676878711517516193718507352709468320129478127789600120353707573300663479491781071078566003293355674597676208015961413854784211251375619072250807748744961049527374482041973927446992064346010425804155808945810096377490171716274561327534153566993212738883860329801663450575802929825973351051817564833440309618827574083993743880334563430304993828684256386530537877334701200308561550087361146739906845055124709095130860596694708638136513782764512081168622310006858040972281598925064927781137428217316730433936937263601415735230035927600235338473395526514435077504163171540040186789884090195299346287725239374158852087931433522679573881780767427582405451466018870103214276631125226045004226445413880837578781132836526132991420851420349035708681911301615142423296415653445838058469708761066098855207777201887815190345537589376949008639254643305895852147249391413557137294013563427115809175351781968374834076636062397912520926547756849914962667390600210401473022389314060642975727691286482433318606361177577725175997685465979093165522821112124626477549775033241319665906766159359234593190360267757667069590584188801977558181497057434831978082787780828228052811214679777955746489531588754430154502186452085988453549324844839948606440295972390018575426514957414136103313591221684866195554498160501603611823406450788148073208802534522182999264587098052870116359022360008717697647681861053875163760393622991378932729419116319946960612559339761214525701550932797108903844610694586947196200718687964212452305984589133051995755613814205701860210876219381348324843831298135434327672214558208124776392910240064683661583909538662776000795900504180031732361501152591027468862203065967958786410708902264107141525789301572482744021896266409720513335452684798791972882035648800275510699764136608004442510823292144875749696831741352589259023596547895532545284898280333554374635051672724337925435405948643255269669433439654963274490468515853493712587834971628827463219796829087666423953903693933355639123577068248590411814344088399626728388285992268437861825410257656714496600181795989859481053053585898479221150271683577228985110757588697668123768543183162557826983914529678176691238629706444079796466839497524366641868413150279956973701652777264136630637552181097698309356485013693161944105537864400340591208138932353249593155264108495209102066547184609099625881561735916262485635605006169938180151156020878351069077561137098792790769088986063299328676460237808385494226201494665509526234959926541315928696020581123402747252733474782340467449801886964780235727476682109349444934599458052833138725119852582851907344956215614314248343498282686970217865232004439364606463715154570211098159845377153408555235650701646606124947108069943835449230290361324646910861706240579941408749154480532585284987685378551394930758034558282901454512459864248484865909197701198870452156750048417544857212577973555237517761260784484575713529108222744757573866571987932274549479946970760946601726234978471945719646652030839410249724310575580923991861608059830314252315138966336425400351181290541764470287345718372766520396530129518462442563993099799593182087407133079792783800224693340905926830245156222846459594187962664657298933673005225317564461902759318597271398251295198911162809212985029826683607874734089832132921703009263889407344340197166045019127523909993233577428404195489558857041999664915951301075263466539001755942145562587786654522285257429164525913262415838657598899525221225827120142887209291457687010924951753363869274818547153806116553304102361030380120858470485078421353710817897773002824734654932118983315885064050223792363029935195836364015442556742897843871552199236577443714416391055223042565244738262381880239402720108860830590423879797743415251656685403670110663841289426908371821833904345942783482370478638994137610938770003810564555636286549639220372594774097351555010496478864575409526020255128867705094665574357952580239604445282914553108486719884541851220545238519604661414242818261187941168208777176495145409154389604929732171441552075060476367974668380485732136323136704872189595617852771912653013628824589335554219617252152592119878132180230559295868212071413682602893687534665616501654703752992421561433307115171614718497055948755597423698694073404184357083152421582563736990546589160193385141311017272326977363559793915873444576114963478926704767747645913615331656314109741519461267589125196374496717595003501161930008431917561493712650914031522060146550056719527585407831523680620999359580432197164980939831596731322802164450761642330144942000041905484488301668382805522723760987186972977032421873916913732149829059488981550655551523613378552050879167669616298114846395002125380494843523398238803578055970689856190975780263105883381613594796019066228544766215347600304488171503176864366123114224617449786209734857976198548569857013000304406283919326405080017532856593684465824682808374782717962538562327339051677027674694985709576532731591665964322032457182567189035488661624182851676845364922666869332848749986073771125020874781378308616056960763819888025564914847970400095539830384462076771589285121195614034574283303742021210009334913116214518316727759668929879194159560471564575390735708649631857075392898495956339656707526308031052605666026178279476025980045117914628054973611933265754350976889097200608281645979303819215547707926144000806486667702663972494533250025403506220206571061532225069701504094238066108166392818163516634437225072201129474382440948471683244581041620328393170677190493441667528010480872187920633340584038553121320866518824202768395483159957273680445710825769582365192005140442969610057472772739652158113161858098204556726265356861119467771071727619263172341288694507026407884100790143883243631078311414048457224746604414827249921362102800336379399271498000570938786882110848539824874756715177288758026757581367853559410956129453292952256091970370519425123553197944281471538974022801562921962963276913983356787153877602894013446659645893816344489047790588199344913121335590641513928393642421094917176955438947963174643488422601834205892875216829878641036955772683777934189015731000793178183099190572694211373952743916292917755336831547143033593844764203014612956171997691494577925248107830178941940897358720439401079594558223404284229373357146998212584584300562011614018039636497597953600422416373275800581246628656773931807352698625029137634976193760451608899805176442406177202179176148309648337262659273521715974931578418004046481629033345183795784008884626329984350924130845174800983038575121241857144243563724269266137159368111736626549508400523522901647993062819950867283982081160399676630261894658999280374237731339921357782251564854505535131359283065585684051170467911220747058546292991019970348661298462057720714927076703044727682348547634706340582783646898145345269971681556969682830907581477281155503484256644354020659536102828028258138106083511806607175987455943245081496837059218108215547977981016260552655841700919464304546252210436369404184042186241718003391875209084765329997973533014844756640395276802510516438033899521634714825544507119223164711640782653138320665720158666578539121072102048003004943274358595491669373851770054409967986828235505922219336639770299199043931647866571909546955442630167910540465022305124605604367406700054884634791609146478602100424602382494339537857471623973348476182698580282300997784118275718811440360670742212493954202371054232159906183979355190555234558410804603646877506461861493993078431319730805464780474835653219441898923954371688680925977663851657281652305094783517771500867356039647575622082770485415332927705831264320479897753832006974875754575352616068004179805826119906937070688716358486733974235049087596737751385404336979257364913586397760296484720539847993535808955688294423493256437408136231013958895631283569871156467568282612890885940970590069274686226261925096088075138675017479231243169460150532745625217413101381062772693721960975938551977103727012569578511268312792136697028566718292439931254163216016340735302930407493582007917546579366727589021497216409853652671522317217580533545492649942621434811524786195181042928412457727443743520369246037540416019310773232462515330599031811751522156353742429617866686907243583217358314453856196634067532769470507259425115346895983073448399065709231233606506269672905008251619036953538760868813893093749659681158904584334484470052294081622693815778301938112637156850528019613588401536486594940102248530633963832591526743257925934375514143981719334032800038714992556327550582327645319185398991210382950844890209963199524739000217104156211274635216553972290760416470597271750791968740814032669301267846052203369082118017105321589610974755661248348777746327451958468718034650250631323132389231794982067932449150491133459343984540349450236371158942312108019929493000925455783000234827512216767644471897783207810053172258048744411290843912872789007499634844282707482245887396508249368085716198953169289107839890341573946844376342871531458729339028359905974354036552391348694112885345250617313320475490710233975596943577278744932185285435039306058873363861768878527383307418005941351437469490216021014083026302075707328288084456771558257328811942604694284251340027897204423199876445667908828445182586698348364449366219932389700333642268303223900890117882909693023808268556995414723040704844506092828680597571713056250863504566008455969087411602042709871559560021111645643456922162574329231020883649370942365567769412543683951593402858686215477381855099530834305379282572934614673990352022418398446803634994263293160041575074649973751696908074571025518969835225249397026934053464987009434228509472694070813893295533942918322379706139605379155818719659105817294684944523427785560477171760049434262062988619782749305881653010732466395787991171235986145049235429717468677020981426270677690839959079052395240015051950181287085925203163618241883331053381842171678637154432702799936222234701669099356801591082026225957730483454611934453296771256078890042831576580970314885563816305647292020205672464966449346983246901973143235588548427517097717860581741736744167066127209561681089843371737289265109716880533536128376537138994187395238139093194909326939950142335451693887520287042600728402492783383985409321647072153431482075782507363336323436441266998815263224623051670978308314074630783561193465342279221445001006157254270154083448359023982697787669603289196692320664451501233023378273197958960471843708396041708108812508599256404854008338702837104063742604833176891646495669438852720488282037221038934982451800369913422723584133771865052805020654922799136284112249919541796361556057916773557289030058559919206639267564760446699709429894232397378989420223664211405591571100586067780754904446058302183970276285329583737554072974757246820509537626606948142915702919209332172254402483520099232132011636741299773902565528446589251405051188333025485204266107086436871274636233206747012562604089332264363944361113550669512607642447527625608615259193214720887945316509402016822190815595764035757378580286719233023085347523905207930961719340777348508172746500583021366764280724903411477657789380446546614841758469047687105795861664798711452539465049825230149108137458967437281239651375855034141386285565471477218258664218184671384777798065806040587020421838616170488870542188307750865131377877528069294654169573995750278825622008297712687113085471396049013929674579216345400950628493875237532319949211602272423211383028277539105567175676552036034633473054353231723804806644577553601507296715674683630270157945104485453375966071510582204497599318955808143497350381210351164440796842269253782289038037909631073606196320885013775915290131607494902420282867213890470209923363722318305094698048176482300604153407609130395499481021918901062523334115394584363170760728285371515041376745929597785795588132363425424652217220835300474750775256512326213560251183398759374917304633482272040776556461702358006652872800240669277155395385066258040589660457759738754272847856459395267293559949675409093751602794563233069420022535765218504131056873888761630206676991378522858674895444658236379015672857637873768099877114083190289142250274232076276653896785344945330875604283005564039478092522871453745274375638654596645808160110282561581135218208706997893420139995788061777161170232361585900116968600146676101762774086508791261085152320198695864942222612472036983303429955935726001502582265124578706811472131287318004413657205143324414267392748796913116203039754362927672795785628774651805878823030003317886454032162158455675070683647105810575024310012413364513372493119345036262312607212760189968314548055803681737292278664357782804242157265178859862838695684869928452055664977934934188766563237148491368798630079034703594495860411215645828373005344188501527223204271917244666655208797782488324726837857266853332890646121776915310199012050678744720884281100474305675390127620264442998865838217220012852491684029547863825310019527942843193146323293010823805532510550170146802066372726869670880187730178622877678727323258988157831954385130578979329951594913614623737944501010849058597810079525036520743562670184327500512087044789731750624612476442181952118595314218091284351977078093672931675059087034712329054674553326438470374052806998092600609187867279299430347249575150092378963600996870958962456558533059036146408311745301470068909916394131451001508586583904962186042058060465557593127116865809588977657629862962387091401157826620039277001747210790458834173715745158037320380326471863954541620898661200124158780732287774038076881944419327251904295278895841681920074473193903932763106210796018142583501127800341712252815603044095135933001453432137889060787525494597440590326808453412084830403251296558991625095859616285399963127419713644144359684409295575492926607740476565031099162351308314575686799128429277948808948057844301845407113951783120381253596023446471223509002499573912441269130077981490175037497671598976554278898951737533667333901285668584797410422314317244214590194495607962880268111483865618441107159264881929343420970227844210115179546295178420275282335769352572658671970099317561353750529732998255940880237553382068122388911182909647624117573794320680212609157512424074759429092540162456904933655451678412921229319706413696845363873727679852816033719641875259166417893089001819789484747834578324114999240130809196165589187250680968975901470433886462979754331324688244493517857920613145498613977197865831666510678173262154468132557168455788516389251658263112824566109217729711048865621551700086336862691812120206312616806453688783340152836598387566083457562189472360711274459350192800199013755266784322070629394067700007952934065296540472221469698930886310892453349807519956171802789694446267564607845506171826532680162090804766977389799668956197261950391985133971817887574935140670370365320798898916764806942974036190650779019465393243776018474276974982687769130391418294845431800127275551226056056797820971666050048529200085184621956568604807791809619124804989124982467336336187040284921785242180119186474762735671360689348178763086662371935666742000732137650181426943659203781740872114259038702337835160529240586382786506403218320796773170534645752327318033231344371893128228349290091934284169404326152751187499950907051686886993658787972733947053286776043569023254743017874861799302315656274413943477274839560289795489111692107732985822095302635865733712751282822897510015176625939181913840807070558392743476000716887547984528004311320524323641040636814883084749720855133070391886168595409967524005582587745401475383340311681363061231547264603314244749960772570975674277229325975763449213736913200331654631928214322012289973922928188915743913665953336704489442722097304865771320453974197302410298350027023470456856167581292780967956928876312105762056013327446598459880705103221252410869184453674649789367042367162721370438555485609130142441709902392858206178139456509367359075834205635343709985512571169916011109098030002139220979060136017168333793033856275186213774312338911426136491807518996979414785415115527388287353761966883923271343133192357034844078652081433995418295552736833085299907277667745086368306532465639197832672662601156125296482506370104344953939689626397438442670228114694705583903630713679290230736545825717476876244449940146107921372483511987809883001729021740970299112016135033880600561535627937439711754789781573303092545919322846621924234164139743773346671744899289743989842494157398440590384782262042729810204517309421498047677584071856962553249706206984899538074144293581135733133355884820849180715345541149314183118692225046041746358325212271088808986009184141652056252136716204866135721778783002129356270105933191601668384463266061310979581917186546873802299210978407891607525846424851940452033825707417479610448542290627184433148784308836488579506124822843536837166105335835099788809621186426609158074097511560670838919883291731606432886847966790129275184906034202459102117117165505827410578222467839350410023966344003242148714148868010614138325282452348952910061649082276733740894284336006831440012841811397883049162592062675946922445909386849795331909125068255368880925704648083454640596404377532839536623394576134197768342231577775242292968590494051989253380726791534525880823773327978924663992642304472623402286291599041359441367062075219502108743135483786904672247140693622188908698722676211386771095769946118567229458143448543242233175387817978081483548917496487947376537613634742569759762788860222240457495523801097024557107625276089865376131187455729707744424474504291643423869032035945739400509107115579731374100366658923462322256303197535646874012050285078385673367328584709945961520401748269160985425386607505932486841650814594239611822220537271465347180424942995114405981209580058454296417302694844900950226168382220753569286786450909981800368752132249247002481135973737284042691830518913101044410629225393233218169081390671003144495815092802767282783041986288515380759260668360110971645741029416511964573794604245580729913857060244271922953921353887417280097325482492600661041951717954234559316411585049800138338532927865523251949440866604801367815780457803975579030224969925953191570433912684341470460138360380409037678113671615202943241103232841489756924177379278611849211396422843469040443839165251823860078951908162970164984287053893924936121838631688254947926239985324968084868417570922418909742443873251350831184487694618694100996692283516331227555928084020366346076268115833260047319800381105475231060435231484252199599074468659134898881902172402765210223208755007942670993912767142292251561071696027647422085083440579538254528895133435865549592687053265941562945385621245422175471400931353693289603058874284452477312739678989533478698189119463101420910602285197879728882743087711765716898244531088357591146302220681424708895543154320156051257871167345548964418654488397087925612834566908015589880679224665030459369344550848506544200444927785446902238921269244996744520097789395399813359954848558826113995119732226268907169549726511795128882240680837893609145591667759242361007062283101371552373677269349221209917327640399656205846668796077309696113507781190309760134324229305353729109707846339650374279394856079624458672310771989486749818733994802301844608238837500223400716513814698433635714510491913609527560911322491558991042069378312792281227992178716874299779728422386049867126299888619015608987885616781205254380153987242500636971566864380588722183668429654316519383915327662065415527699259223382262734626814008004976816167580230543287952120486580850514304511765797420278740130364567642117544442993688802121852394218259216726197858589929634161403505127407119748659843103333067812617175283028959006914940727820237646384539069219975243335857239620614569167758748168589534348350103440973846218062692647838274094395156814106722538975026072112352945969799829178276373822871112150745513513067912577159754953854241963935909364130102736868768351580211318329628869013319762841128007444303067433082189936460017081396957911877898450385471738105593434702740725739652672920620999490922348216649912307835368580295628168138553114022094694906717213235984687223313232115427724309850463901592555487769646684237495907956277154220177551161981614313159150594109749286766278600471985733653763851123656582932594366654000174709480805271566097563743275375590410044807171468599046902704963418787061131964779437158097911152097260378912657247284522774111403700273301381379235447637634896806242973546559206127978518400226690630513447403934604240762429294198752257019667288687530010846595488037256524560183481112490532585958442366108727924262437288077365658062741499299446336154396199665186808657445721119878731503865051178746912950576202701406149136052170721645465859461076586919869017467510668479594078705472950699247778168037797921758070553969632030280028938695888707551133675705804798595033950638272548695923697070704895684485864618184755297778147714550940194929249269070315499194136110461926669320962259926448006773770735353186750249649850615348676974419123091756077028638906916901954098379586020773066389163933663596326344277652505448080376044641122216048914388288526335636982047759923474495287199791150556306558897157309700521897754269371068295769291226558794101059849525658130119149920212817282145586703845821714452282140718746599764995069400314704659219395439956202542195580941840953983599506053522373199582387022222421206496650593104857639474346530400653381869062760982764563032283951788579318976162947428321564675568928423153222394153041396580039766160567231931268503903751622084606379636015792186862100669794680987010700705916495541066550300387120888828895578446566633248432051215604007342005421014432906068410822069318334528718163404798374798659377016731393874447150222183930669503424306829919216176800088656204814426072580132656827003202545166847334614207375976176157677203386005030697900140845849393320908921140860376954825917690393136204114155787368273680113139758619306236727728916163047267930440242943876773397767270731090790838013086287797146119833227986008613767203559234679177600740093417412000272927255521513054166837370785821209693645044447032216387601972408209705270017007185948549509437021100700794213946767606476067245017040940735364272051613668732916394944325097210880288755439726667264152010725298490201312677197525652508866885420423034784638968861378183206324507636157839213268893850610927099507233177855495521769678999802688478266304611976498284189821572737184244147213385881426398971117801661505933264312982282169638058346817260310152956740727712742083919336068846250612770225590400619228110750370081628288956106093876480640856883973095080317143592259020931412247224811411410168199951535464911182813355481221679798792686147763737679676645467144661225704565044217193055003347197237941768707380590917575999680686469919571059245286575367841444415577313131165755804046615391674010737444341242664391833404294549387684371518536584385219843279222367246032545273414957724221519994629334753882870277696091343547284051220770770598956827212038083267428048154788032292167214104338908916536690196315252111391204305070520568933319324056992210314404505629829263292208102892753994432717527772522760121414993134040859258507271070382504770951901405710277344161457212299999828913378550954079770832628325829117503155985239998896384636770152621012399128220800313960567393040396582158500229966425576317020108715651336380937042186600943707268444544068087549656286302706742432649307771008331714704170728793096069797806452890776248110645060910600920118423574234806577915277765175310614688276339147164387017989677413141684183727281022721518598834484268556638626602117666576799445406570212690045601879125379481713605915490640989086085545440359327494220059287816581643885457255232427377939218083812205891127567413603344889043061887373563788134520869724324687960522367524703092430395165959245851536625360544685848367923444646652524797690955148046199892258466074709043044237968177859464180681622875838719198656921459146112073797923195469900526893419269228497887624767112882058509070052023038943793366553284546463366507063194520116962208809777881331662391239763904163726913225905941735054694937366896378857804387802970792549551435297888491401379221115351268373583311122848767552936785855276860650729020043695098964183820662789877029218714373402451042223250915254794506636233651605635405297395826824296976145607135056274233107313748121116733526925863261197738270188434820512958857749574371275567249116060624428320511135465936343550915944631293345173383983796129624030976247259351907917476688035152013496972809575329401222047045578069555048786069179994736076425137129421973469483351337224813390779618507047185217578946086117486145059655220215696679883899777217692145915662756760455927792696114014509682142713044551089913872758715966722712103102628692550855431540568618837529090055210233709604114578290696796094701445876533106628398949066128427556909974219378559152874104123308470842544194573575336599848502857474141597610741195093751260840137544311874960374769173169097012774822693452083910598326181601658183932831737704801986306360254713950010886688970097521001789051677786161157760645545695704582243485472952436499045509346983326277599924502899681161371969250371289114129040965859268021217623021657902280415123626746546774404467667348991371924469198251441337467939559375322622357557319560905320220492216415728395664744772643839750416910545709024856540509594273566962220784807694168590722511929255370020226547932794059458178812585005591221719944822436258492582594969133638130885195785245609530187696159145872973216680067301377362560635463034247485126254304328418309740925248530571073624880593415072751212163016426965604207567092904313327745015116381427583157918951899797959807458330583366107400329160595406113459464842734185116526679257408008955767663241312411803237530701111941560743757593602012052115364615921908589543025185902489058816546503407171845792088210031795217801910609316147703762495204971209348238386771959536380779480759164800641923681877047589751985234562614920731079277825072903581349403059840262078376317644743640301958523758876487379646413101583768047686117448876449857676991647123785051890147892714079166798994413219228586675860323816150837525801373510321216626173798382238479181509894243535051279937153198308343628775404675383526245490067317945996629580284559149388107172497732496270420409360146417397492405920245225098554224378941491955490482783736272344592634571200089062258000151684311188903318588602302511139732601656774206693700120581451531837823512082372583304363773532710853605182844744713422134087639391978164900702207893581462814643777766167108204122627291656437430349792500356304058200958777284603294995750860817352093840914969870520756428910584745494045416449686970006102436590178215215045908187121371662712704459794182278415177223988545676207276468365292197517942334460634700464444516241324562699404389573387902152413548999534154665626065631118374023776727978288400230189197017229491814079125649123143247416181260045297142206058302497234563248024233251935410252873246928171373266177065329255177690150875034209586980861030410361929409211054378141032336576793472430386076106378381760890140847311834071436857109836899004088866584742884776485837447008950823561481635040010324834817841149245089634166543970862017418755127489232522561561482898848513918266532035339717094038776407531053719936177153579835918012461140208211089571630843015889077746100296218673333057828214908208175513442980070833723152307094131613007604539241910392369009740064948575606976001725436932158337304255649867948816243885220202564801457534492881935853579537602249080977709701438379901440349833190688721175705698469645641051867086840250708144373898158966462231518885579037044580915773907006831775721706453895280960079384940395808757188725751247770539922296791425534165461141605884446936421797890265603363691024949296150908016621309841291437307804996027443081361759298078740796656867747211018196332330652438080687472698254035065375298954599629260971224494760156217759959949655151199800075488399320108402293340307730428838528234384904088103201611803082299668788502936498125183944442084357936941888727557298055394209584564920300513193516587605607054118673987914369071479786499550775253786374861280178228315768122928967101148588046962327843481165456485689569306885995097452507399327596824463138329874378131581548182310288845977483840144179901341712129935424295895675434988867696571944795102969616169148592275209516886068658272290496161089972197872964627259924844804318433889760304657432787861956796568639368282154979270322618208347379560789097326644386201774608216970889051610074977549000749036154610959254806093057071899190558268983520183543591763171806942426415495870242829182635833057128020007171425427694560284326179619132217951569640769185391837631166213105948875013959149160429864806652584997412685324019753250179796585717768647789150517106649349795621676065724526699569666955920089835739620330089864664540173654617016066458402827885297374594204148032504077119411655231730793689622264934094434722634556622376849875135504856908694214171511761953273994926404239321765274993161373487066505206301683946165611445201302015244619652355827790165687680772731169953247880234714901063730206607029122887433961882776271246571341137425639921681831289050841800456035466587623016112826388719221048720933447913344178594145489361481269449812723120056540752756276882485761916807906732163380726114117287568387743865584205899494885950718429121314751317153614549321926649329795056374622302848423863225865827895558242388424028231726873616496376551799439664685778118289943349391923524139942142505581366338865702544935001663755449386042322038136280126761411452569154992057508242767303533756226037633965267750417960834749860639715989720065621433610935638847451832995303571880369939087090484928539250236404174548317959795331663384062337515076285159973837563355854604976681711915991905937834488775227762987664746232633800074289363424417454607935756368420935809883073233584823467357058121945120200434976431724368898759181469366126999444380718598128315837387783950771397051130138462869660917381399181655714184657196760836331874142524568123753063277754569049841104211746062430940220722041649294333546624740383435146464214057656180133051122661324178326260463139002638834560008965021642937437882660403215037131840072588641109943350374427490156440073796405638743773549286252569944796754336183981193197620277233659188022673325151142538650305655537524105233372951710362908677436503409607768945236089062701403820370886299881721962000081326985800623769615454037159987420763668317199890798706758140807177945186132139216557961622522474030359905600244727981159787925055662623590216704620359055924897365394487034915488628115437880353343426874980473439503193563355553745389613557111554420873895194791401066017699341422281516983330882121962402437908195160325759620024402936556701200453224222149161548628043363910270932515647580335199628886686791252782687129208946095337514256060158104771585320913606153428689110430575984217700115085130252803931230722185363950519736671720073398306993130040290027071408837758718337099998156472374273805704274608070266254119723698341946164493919763414930931868099918152036530367222111309102204031313154580228987711066601043116561340796441575283387780171292113637659116074920880333927173105106304088296654419762451589669660014752352319643098743489287720354119951068497856701641810656160868070034229258822472806996581433677929389388549002754851140442211775071057103913477937260557156962261352303135798215518435414510515526165329770943523323875801496160927005437817123020371556282755412256067511853793159312827885715576062072438822297582585335113495471390367094514016552869693578378292757099727774498407063673007672179315733116367297269243590901536492603175649825638930118799754982531923038866927818596703652976098076053361404655591282184830563869221247472227487060366753882226964040420729194501610636021410539360363717112754829504296438964359366619946226930391066331660551583821367059815066687772866215030128450638293335531706666751862087425090333390800780441903791934221502251123095870293246615253754953352723797425884815208947835670041111692054337054553685745359879603799869728482273099308600203721917752198903671121668988001951702347498087375711869429172989271830226908878109102270822744886296552423548053759475588619003196804613883650183493340220279318509061573387538900749901054154669096562049685821924435436308101127950411791065970443008164244827750574074528564760005766619531502962208343238806365599080711260646586339245196726970088351639210256203071652014034421860819471435050168899026616213078251071557018581809709907417795965525627536391607069685734998068251351669919218454042609863757190471974666996066107654340888917246797489632362684709815787556581494385437762648116812677173156970863771895589037277981340524364878749950969656485265923541484200791282597573676791861248423385647949096061642708638848980070618510429135873728848101002771012440649359402851761942502190789722323946977383362022855703743742749949471878807760206283688316200866156449231638927675976224177765076039525690650213473048744058114706229838014294391677494934820954515200347644117775694174252460529790405333897942325343635081549549550592054901715764153801421204839881637291287229488183926294155659158644431766631491833086946936186060672891913386724306777594798609814674856307403960828319621363424391737716242723036523649570681813793623551640174152566886347420663392947385645468614572367539761237149732298861784837801677922112952713635007714504666796142936830881708824672286278103384903917031431061462715665327432766337514758615730715121699582581041893082691553290670605990787245016942365650552738940228271274218948503480969752007695981530596246570672288872600978625739494335983411542419112743799841839386319063068763089765934126348973862612787178839061463642417905849302477454277694598594928955610349296400876827746851690170338219497016224507662934447811962904621227025731407303838449330058574680134332564639618197777420866710094939040666824518359779304383821272324941954224538738014690463050714424728250384434318606481525739167067524017038804231925644117586889010281309109212609715264312588272912746950083046411086042451727028321826470379475538902397598530944216245513924374863275067460133768647184212737560926775989151863132138666365633522645277732056849955842958257983881505778432387070855256610566975161089650664148286748062541941757385716030458728179018455001518304346304917074189484768684716181841550998896855750568709376501261869845473293936232564401028533571891331789823932449785759580258904902079584083202328759822261832352052148712964234493146786259597579616540007661781829034559145198898448163525403097613529779240002289210757974923241478232175201717912919885573466366055790297673166893099410842618103990555291269711683319179081554745832254098626339114853891845614196030677607096702685605033803005210803886816968416095152609040521736345499784671523824207461453435735832268605937585067540230513973495519271907367054999960560836467449233988102284594008805751252979811760356586478829412836694849230543001436923415175545757860901311818799795229035682295095063476615223673258566228367704137609804589822687780556894965846488892222036227851943694959762682040040463132417691394997347142063785932874522777134091288129472060420443193919779542298691406104379492655516454043613104605876404387464350343808214332207625787714316161567923081945669237930712990615926294744499173306705767904697453456089805336358239437708914793880303115567150597808789402996160472170090831385378217634262227296269251113156127986344667169755377450508268615241206623054977503738438815979609125361350948964892985565988293058070682349636857691853860620054730671891160668986589320719351736329354694515656452644269204134123756003823727357227440996173296362037411009549983182966449814107916771129965157223676832271031616054306006267642547805644516784246468370746619783711442337813463917559947705186792307553708789127250233104175082417838620588321609576508221198994227466215115765036295194103186527604703366921712807176024967914846325329420654641996079556242363150549635900841877787385452448149170758902233130099246087608235058186138845955188112643224010907635983094102539275018875848464551746824650688692386210071731171182158573570129710801443907391270887291561425519995088520348725220216081207753396198706691681940333279214058289783589069096473402784366343902179378012560196027163813282768313638576270456156263889896359055253463761821495110798023433840137184891346784218712096002859223921717015252413388399437884439404888920818877072292169997641366549984749229673985615516739647741927338087213767409705403139003630116121872156444515288148709362181263214361824781783623159263493146209933368423967583910961643760536596210580475599269682045693108940214171745309647586572768968009807180138844172637838789784364916272893466866417313487119580108657705583717408460632306737487539183962352657873984288160865008134766008463281312381474595408375942123357096948322675309147957165713757466731995001547328949667661113499485839815837490516539396079456205096506465121859793788017161807575456740212669495503972049762820826294645268891025458012209292150506105696551374140737194660770866946718420782605362896151693417126455127564692196155112608494451435136189361078652136047753271723046737525108797111959275252599679890406170622682127082129624249027224412209635732790124198869053000635614860016760041567009666509120310104250423663322466944671707855802074563754958239505738578102747581203432864221983375324914659692115781286281238915750416312270797909154631574199984079611060800184178108144903712809313321398436809814992722930141031452612560228124334224819282161158758845873153037338448020326482442264549588494412833365179662359712700654921036205488148752492351061274606157822633431810316915276240393336066792484381664828164692937628921562523294690703407774980444553200981873822237542992165663819883201326961464566332227402550471670342010867274291174601156006139981358323968474038168886714746552439207142589247149662100488194132296363842955105745384813709214714508273244196348635159098211727565971987632802305804919552646230098521805143599651221909252382773826708786171246352436709018892911145196140066975943575424619605475293181853608777797701407092005490457047635781966736196776721618986595129903298137675141228156534630157614136055770958207431080985035449455323177899874575812337063590917568369401678026263176592907091970588554439442977661023063238345188114720174920310401700058431592769641555408464708459600214975877887137457667806637590229683251153125906059374251008285538068498742704237477438118729779825143438060957843009935271823469332787333448929548564368805353629288210681187935989581416999568018870251163208534318589395301532199434135751028032494746405825592622287718541054050924020820686381856025956353484725798682400563220753249516759665510361873351077308247420241780721702533229282088579213732598010631131437096038630985191792329182309626902895828821534487722886726053839109423678441430348838688058603184980633067752386692753805886597382739082977256192061302313479450978882141363661846389345331544903765197819488238172529008099648326956906819147110688637851349213304385692099570608663209399705377055069084494702651996685418684358262143580035127530894238817420345126131311304959884287505956187599209182380223627060825286937374504370130247816807039956471523832320637925481641475734973783675955113423018951673757649161029063575099704019989985492660300433666399892466715121185984461709341273391137169402289415994908755522911416078724872447458118383025994862064591925851888223438171802611103073998902483364218933783474004652802928077691687651158655450377209459604514833796430251870017393221309891558525084743836948649458527573737832558858456977908545899438909214205107580980717256210519921771415657260542200436044024478247233397285394432756782048373440415301601445027529969421466897132675733131524371389261961390766753877498693606879475483816446221814509410279836244868697746745506136609730617412755003303455238573537141107692242942632133237255606505290195510473160536881049119106875346573134759411265628298442766176685315324513894279621381340447460683014604172047726354515502468972746705341931746759219201901612004340451166381499311973443952857569553021611954019314003900899936830280291578632857249654328253775471885021282681030021155399973602755078805624162335150662497818741452138448953273787711742070670408199292109253224942066510842065200236015335031896712823337434994935620664614627518602355688357566651331620049059098419971020122221168748970109457056204926809141736696815459990226339199833149819879430563646031885924460693994724534977637302864301605925510909304085827971169521087008167637129126116565469818530055038403500034258859579857336365324509175173867845464679549142581145001102160201228439915988761549663852146630215334121554046422181253276932484118676730432260010514277710341288720140441791420696700933707546871253869387902344716935403855841856513895430504030444736376498409066678150506528314012793902277528554411792738534512726332868709679823414514862987757989279427174462891317497276539317139406855456923209232156669361128187194161207542653146132355715024104335430409686636430863605147199390321116565215934423716642115465955278477811388099809996126198638731132115964741651107199461394005282163745291372694748220285128847635605030027991596790463807496156421974305806318079106219190664272589169158614357777242560644193260568973776805862841034854528292622439775550323306746600466757598532644078781661674989540321871529340486203200969368303732732258829988065765017881901622675535097432248418775550506509347922571989856465811084630666305646289899052890761408233828686396304866571445112005546206729320424966411337429207132656185561735503562351394218696290419453392496844376336160270147217027072045707197119859317444078441734325925596279516455402362716709135066134500818040869076018320951180933740277668238639275302361176924658826546754651792909395173059571438703091194673084856498258796648555110351224488901638031098543220198263470513667774742413307220932842741740682351833948572924538091378773482430744319312049336196951567797872471546970892480698386843802765855916814178026037239880856649450447809157003939252919108813385784672154749591233869358867683801486871650496831274807040169990770666258284339799717460874677591654286700454521154679048128666332088133227093290782432235913666417709911967054587607930314001216989945182627003742585388876087828834628253949827875476336546565455587487631051623293292104414214506367435432561137451535348451926399041422434123966399830221347651335329282354630328450467932297666332066733729257102274977798328690031561179653932260084577023166315104537861928607317025040161165709965379689201755687129208578987739067131462084452814862108337677401485103107250291369293031109536358250774399456945774172407899394496039802844318905061125817819254926042841461841504813934462045094774506235291551918047230430926150763821100167861771376469610138439716033305823354327907933702185835836319420572002094268531655085945565634217482599709869406433977193874383782611560788525644327103956286975184133915642887079220226519137807463208023336729747610962824502752944692861330775882934866019349459339500931741999583409990317102192120230663408038974679124971996027276836282562947593766068399896466319711236075531780662234580850725691607909358597951433382238189059740208914235791263091356073810187040147328719800213028594358583727775238446039054818973293099337960640935263431770640577356380662650886846748372078063691334487883932559246357246422922328381082617812395590009901121029789626462991811519245688916033411973024656608517744179531957566826106982144604072989766629710916211102067653005475050971995228390439093223642161697017559688162198513911114059107072015206480910087845604630214729101613994975933980626154220055448958328350099318671183832835540348250697306673945767847771897662992267673703977748449948738327056720943325701648821011325372418016173218679004881471409956086024772608420298072846056414312078201884441044647588116394939128743679501252205285899189844558097433322360861290758904522843485959208813050447333860454827350113791519468393536972866403141678017862720070386653817008121325382537409002291185639104362707635475684251947726878262125424249376460312080396102435094280567029884719022816732039917806287246548169793655609219490676871664373294759391227892497398794028441481254935587095180818356819500334743352063865457874284589859553781600090036066791335925046694761746765114643222049370431044677899949504795112513529472479609084862935140152985684258269914251898345979075512456703667242784773687379762135515809508543147439551269344787169408172445954639677604319464634461913417689526454618645775211826889969836330569070447244628743241270062621351766570934940830716260888720431732673012343415339063831124588245093919316762206115226928917646924517455993660822582390402270901735820061937027251862130734088325560069831681596558419792722347971876686587447570635976892152426922769828358856262578501333153017996856207893043160457794820629002527021027081915990565499072539043200781025305008625687693394656515715773126334607279128309377086439230461474532833127703990438748251312593942101885343333417335939504654288716511155145033375764833556134552019909758361255750229450063940076743513849627580875938309127406981235057221079311765468289134539900180104687674549800310849766355902146409655212509200397110214210321215881499897454232052463113927726529257603699661012759956466733643225229771581058014290840527804161227085773840454525855419046781701018389913710634824983768599461442337147555708714146636598969268285022935444422923198015487689746004700420156383346651354228789067615120276727867360508855129664681838932290478609762151307749147102009864606302023428904133215766575331369421314553680519979081048397291945791770820686551364434459386696673960490048638707758742271466665011074435042669462870878611198204664581472965337292681376692896916025308999789172784394452994395004289375907443844403655960349495781445801921911487135678993399955252969577838627589618611246952199433679454607111424341299263421180942740838685520058566591680405171572828405884290432967224906350754065312803931513176575647074481675719246695619461387363784609160712866311257642752929660366068026723474018525988488673374599955241076099887201515905180805521110234756636656053004514577305037820307580662544065317992603571332599652585293247710223259490922247027517724984672821391647353628175973695570062545097576429393067516948450202423470589609557048070431837746420786170306858247532914359323419349691191455986243580666970064026498937914889463163111958040181043125486212762026462157281532112464827856272578185218417656872429840155755612992194572610706938068801592687019970303234816877006476008359958590882806725236355993265923517002414267499667144379550666016805345570822739358331781141549492491016728391597895331509016537119353251064338560062956792332569213700866315586460219067853947763814531662870492228616703010199068559259617144469773948567382257188666371179028441954751540979036588663021751816121796716596808780106026338968394391471162886304094952619784616030159138015904391803533441113227846615068434992258016742168879962169981533448930024767413286459333890538239143038392225130481140020119885359282203351376526826841552340283177212893323992551896492911285458644283303175582577361886184282144897587705986010061478966214453621303964999175401747059829908973593849361573321888623566291217898739060135095483001207079971349163407314547424601280207595365502031716710134130508311060247782633617022071759570681799274785646476024991513592899725029044767048212584383414984853490064555980508565851513426307636034678283127144809160740143781570388763874280309605015965204172234310936973269930037034866151868709472936052729507660554567533075436838860970773155674264803298531570283122997946773926385308980401494538848358254105819465137807458158347185692311099509813513277223900202244781508457936787117335442659357694169844740083912305283873323831093444287834100228792185495164581352043736142093825251856781472078179261104418017638921583510255402255184903268895408351706688876878191491321571606747173136210099022752229666277691127148129403301967009319746440345985211452757772071895229403666923810105063494163491763413918526730157384024887362635644502635542058314133745830748181296555582111899406285942602266516558922572187088681034817894186862289616915961862906774865509247131336946594886519508520109175492116646973788422307672098782846626217759179871736446920902863485889703077957026350179025381305695565040191028693824515133584236458455505096925497865992273688084299044646744569244797422354083892428712221865725578905430735879478512136927780785563595390391758882616558917690814938446349605628017001068142518674994429436061609667569507518033001528443460708584379754435049871714027194631061890989999531609292286500076811785665222318083647997943715142378257622285667679616399820439741665156579236434310820469043849527886270143501707641630693003248091019383288524890699918322799660319145917784483029617430621212709907463573552866725437721965274438416106243156900396390901451359064812156624384576934982960916513046626196955743694317769622032759269109386774740428826057983303926341602040946948372460366384603043045733993996255615481745871107539894927249548806751853351232678423053628898388711524258399286045249167251570488997738336207419467005401496342943636933112336239461245225230304273782353058789112325913274197969549752981637169555601779790517751785081284000027805268140395346455243197167531763121735311450195007348626830184954810806134618755948617043157382605528075388925681819662569367672197493225793421754597935134033177014632083492049942644315370267564323452218161824446116486021024835826835763310278961849553973699851539719530043099101128489575052173882052533432314458358803211790781238078561857404982162846798329830861705904250032675632101894751635150244984109339565359587411292849984758510840086093809195084829335347317860845893777978136845276223694816940019531446740326342473530983498329485396268185650866694471019887256376354789103724789548833631679018903380894157579944399598698693528767514885680079746557690702966566301101921753794593574622762935887478990220538734083411107399972850444078805133415892337446097092132333368485666737530182884334959908027475277752329006840170653459335002309375323509747032335418833485258402181793547887957364437654099207051802937241616519526804365238349271866455123844902889778506325654108136516878178064204875462061378580205438055947658967311993104938740267754156712479483923834365046867522339360148884348421320675065644191479791035448911755577764041973682274163519457529912690106902698743796587003843428472626238577584412859591723935471209059691267686341647071645442195396296852166021886997255246752020594903616955078375783710087478380618198635203883910508169348203322819662994377097986297558171981555130267980940664441697884575766041072466533397615886241123003933611832054191596189119767433116338148263166514921488480237999545350047587069678899366059634245055665395335913621636721107380089387689307936244582499180743865926307816703440372247109703435947609519767597664696584036756276351838962656825130202468961978243191895294270865802861073836815826905107655893035876571384755182480094428372806231055945407873889260184961136344949734175325421141746660952349735343731363049099333648146177452930670844988968318563400197221595983529815081191554135734933935978959650707693632469544673860027086494510819806232140289158656472435411865401753222227411813641494275729558727616195236265194957340021615664616574068034611294500856335040727846565836440712219146786920182560178851124071525449418697029477242092860166153099953035735159617421113712818850899866961029059912360135803509057617476440443147643681704821862136159411609037960511375999840243524450748977723837128341333465674867891099528015862952796795220420449670364826633568868506682232288131416535806397346852783712617857815850012587668312891817163064950467712375003753532818256803718556749221328513156780565916024961891967533333469595772408585398140231225822424159283448170074618615435156948203638944650506305384970496432423783662220796448397278596970310161908550051164276110965924375381787253099803334828104472738869019626477711194403729176690946035096324295411466142075426344944001362922963137462321985022060692921264887924586186800985568943706954424678876571430555556515254669850883363458576027324676406059320547535800173143907627056308597353576194551806497032569101835441529494710212230197932253575911088047175121632874924444069234091974830174539872443885101449166319395087417036370138300381779834959125857052100843326337216743269754877019676243008392863516111891361168969752844907705544617484415716687907654309655835926750455582732267125559315849080025090718631150490374656336837501252527368580041608465049979795644854387851073232214507364363349648234114428048771939797594353233216108915201257934157872601829908301049111635112947117656583245972074030142563824224228349825969355949877579244421658573905073516546170507758873806996650326845420141037049498322623204041120490981703179384909296382695113623268728249361496611637953665674192932204254311424244254321482335112939176516177713601299616221620232506034014726249938507375559469744465759147670513930581721234096804239261939859508077069053561198375922552761563068668781545041559682067196148913655863558817044608095059859253902141462612586391179122071780568168171847505250185677788775431953830276014675222122970607319151937923939520719249133954114264820824650576102862997656971404282980366156546100275116635188759773681274721145628500789381801806329468867065133269025986605126416262828903473412730901921536162913874807072461006990803837826554903429291308606477225465087801030602602748079038455270974609371058569642220517958224466335182966438401777659989711609421935250798880828063132844289799961950024915541220396149046444421660619316778018032958821461879912342848275713149503494069562366083625490461872865486144387771098937624744326982193759545471495761186640938558003730237019143084585670163041659022554311264296266889712904019616168389116568672819654652097588158904932115560369857296131438716190759218461237762055959977283649622213543903653146148462660694214526558601383942004775575525893365067536076578203809723587154552299526875493682136671764154455038901700139047701085177943958109760889687110611982027256120140591274708657890855964255261832914793009777908424480689511860840719385988662727035582768997879520066838365171041176898100129009027249015583217831541952514089246445131786648698824743493709187135270814025689708365768561692226003306164937109569267945475502798140667831909567036280905757391713880336890590694060442975514007930581245847207598064316164695946738180724143652205785238338652841779517291790873302964520936228643918062581933476672439998799899764485137590941740334106152042846690967890638716339768203829779208284647397464014061186426997545683816376271520924545867400470454135920571260782110708383772177545587149363682202631124113839985728079911548594676686588463080327207057545155329223700779385312527392926355081018465250681757214465912786862564783371719271278768352097422448706523006184320297090615532828223608203785644957688677964211215083518030298404278749520052494674043543390074027671715935187631745800279214047930817964026771355633967660429902229120585814689278190661963499040964702934185345719960844014339698330045023475142119790791896151422775075184193328517536698493772444008652017368256829931105197250343477218244204170713454092027976048642346172287152719076317983555147680180552664675001166137225679678235079626239203635953193200079090161004347390166750360359574146504920310429938625396079351675862636837291787237837518517086523485147909412510858939556112227503358555195137191190896043872770236421880718581741601624158293750145099385301159620473907304809253362061123157711615499261558391133281541855760805732724667710799814144308667784461773114955018961451442056590392508720020850826477097048981215615882758391397798308099886021907055239817026353048004395394574144909780026600778099401488142660174316007499901127099332480732865634379295396339941782620675368190585253267660476549498229986780512378484137911738466201088127687277668467517451916429593212444769666519438264089350427408711622025770128541495811278661859941007108837083664241366779883488364913585680364300971951915413835601667229436554049269312051142718412789128480868329967822985884429590245693669903665093257561261723108102842515456721785824642858235759471548739623933477548039392082450712740558361736351892053983858029993407005379970899332504354404828817204498636844745925751345627369688851804729319834643928836145541394679569550012584690187635939857794640784214657965545981513152108881327177672416865305133008608780866992422932779049627439525971642315277471779289561992241768021111823847293742814696008651285756873569871733632996544647056182101478083800808788219959235170680753330186921501383773310381388638058163713548716382650917113948986335330596176706904118978237988236283110577272680225023913245891438303605444247872582204915692880016824883483345649924895956177723700792478275534697337229485624711712623661902922437701706779813331592270672076744072153569757189196329137382658884161634607098464569010578933324239372316666636939473747180207070247412565505646541385353360814900186231993315715235250175266471982132883997006198477534043693401273482919865110882007972789685858334674058490579326482722077859543713141387898517887527908120276940901033036329395003037287213508950379045237216118405958624254237894803164915617025418606757345073397872098020178148824118543114182352383737342748754693263778072782702306003905690345771402392522762178521194028801592824110390516836377573038780115011046520258738070207156056588089918804839412407290759650655649163099663535624841080762411142907939981452842675040603601182348805821703552821783563745273406469579149779214289687665063787762517815865285917315882409924466952664211241602502354293284672710051116613249713142038905753176986549257248499100790723516430702719711373316781151793633028859369657268066997333632781506496956446409169711389775484734787907964000691613736640771621262705546071486320388403929336375267721485519232468796660517002155019485643799989357477983640365783239886934906550956738697741571522247586325339687915923438263134487776538757722560551587916136506193445360450136745250946603962662692650016318779616437742832497709268418697198011931654086518496745730370535732470394730834882058578428366887503184307763156313917390941660206707436910909394472278644058493454663968662571059237247327853685530064210087102668021452483597289236554114958644022578497368343683013728403549755624554234343727627359133840262616186355506457276067788555069943182197515871376177626102071008266807501333516933664950813117243946776892972873255262996033453318379174470404705752476997297063245952710437250331453383758263596949957644437710994427723979119053482292208232328544325961656498748182022958175699177951007616010038402727244406254927769148259647005776274996483450385340376073395047354113486779637926997296372855767527488620209703116768115520043887227872005198148828895069450556620401335749951701409991744283712264086481635926469354401024064289032402174774561281781568641985487925773748448304061888074114990005284978016622713428688711937192022721113245991405490864300032535211832353601402965005866526174397386923939036562528281148072354758158181954968103708391292798138597043923665552049726183339772316352478871532284709716534680332633847000844541512589710347491262728863294454137957810142769757646728190953378634216686786049401823153258432906169475871788025836729463239786260464548981243689278305982328095665804707327221972056419086122152282897835508148295075047204503709137608590424777312477549860279722111197767556824608529613726087745682593746965090408868964346365991846084400208900744438663702244588471951740392653015393129142696290251483224399052089529440462531307082686629256195839192475147076960644171226365986336114672900136402861926513778878599241791283566875051447263931567193594359001827658252355608860529816648938052781058304097738061960826415626527198296099064107783784004920781294819327440148835734909019881329779287500942794587314156816911758571270183409716523617961944761312717926769026817380539336446857305656092204034290503776786284217223606170754456428281744436542197986549437506291709538888494400973394381495482584708173518783917061459362900261534675968748123198341903672555624621505425613788319498920248237571621870657291967768755970350205653028165155309077514340971067236632094799076631044129832698519405119060863475277322796760093719832182350652894871002838028821584008160311313618211294308754240816168648146186815265937766390066202707582983333128736058365426319526913657175165271660047634704963221485416901910496803092912225080085386614493689208211133277921641778878163835481929093810680281626422434717487097391203159300154839194303828182014408432149440768609499921579979718421706534275579300344481293131032364216963529194704437629414289246997976323519264923173836871006387193791685688329446362898618693881667948455522619726627834529934936649300894256035428073462456416966096680657068459340612910805196627226299228970184407373227456903028150077146291671822303454894642796347616290924258590246781747431172835749963697636451517569316660325605354982638730488291159059791944403837585582916277216297200273848314115519420338901684787297061360442231137212794329035162673985038267541779277470698723124711709547222424105677471981420555164189094934104046972164397568459039268474308969869423556719722414458904828042259246141088995455971880149985249599579770023690481677449324852385368619240735627709127772323946903682729559849001418261046731823000658733695290917851902834372434011274067096602189571109145978773246617639057764234199595921163777512348648136292647837374055226525106633001979039265513426148351933764640533167020450107217834851905600911200427587691130254606304392012073053734539072517156142901949087599752577734185743250644326018089419823124259006766400196955106123564438469651229774201630048571191189788179312174934532260051559866569012815395532383510109676947305065087484940627646425872904482991427578711640457780935232243603802829989989876077658586130420918057013051237804957652406327225497851243574644943750593126551437899588182558401929618912332884590735401729740379485697159170287924917674500302075737130352449140401613992085083634713276726414269001313219761931393095741426387373488257725500550803241507740180073086313196193020224915045649640207180084228569068674378499372508224369963547310660195348111490840946963474170145790977266027229141800971393166020985474181095218341639406484038018945947341507017097863725940342361697714465683299121993302816727740639586079347348632261391609922498734596550261306528189913503481025003677253690024598747013946207490891504339136854853497331520485765419452897959137598656544878928268446211819979949695662782200614538324710803842338912679212872841922842840670629640113911780372661457346406222096199965126486351252954007706671312283067838706729598128564427654423715067281010885284187698030778824369665496623925164130135769059216966564284734106672652376698836926464958952467354176667113991703516684276350572277704896465677533072175001767950668226786018835523534572440651462385023161580523631997685505532995613893137418769975450406511776339920606482534991157395564197022756732017552261710210296308360678134845427324342524636261230451151043366782760508881692188313829310234269288574416916832583124667473674534703856053578513164275477360524374959575630934147731420520682628123859160627972996785072776974405722300196093700539257141010879493184148852453641778851180914139188615050600077691624245861077711295719258770175382740771220717008893495499061144646273827900395358253910643647724882410492778936349398624904315339292172795354610969447937457078524523738733208330942724443829735826312572557780023067747044334193662382264674255792901582235045275006241436643216439114487349130700698784211707205600059570966715210189928103160955060966071832623227853831002461022136772007286254160483838451604447791117990093279133684129778794485879745520316507631171324544820806458640190787800740759578028253575297893912493984503085674091859213392109599740739163654868066856386742634056841306724594530853365107966667193036531195476687333529909089818187065606678999414834414311725460468715795382233794379574135785414938375078029841202157600679414743602502341739827098500929269981321148536324231529218942936131404557829508527502274148861324998992955160630113206959474431227467452178345030024432772277883558089553116484485791895351411874652331259064746541411306245807722614843545613612036963592553045809320074505529447282817009767330328588356379788437228411316897269018834330088232601480637974030562260722081091466618531122122833728182530828901613724268306137730092662204987428197901992763629419393669614477882640986914194422695738832841287008987152216897335803918901367513464240957173577260628518141071565013839455506280294748816458264520558931060351161583869845149520312772411491243196215858895331605719844699568548787935221014317816508861528539603538274086771155737082201780550062583347523896459039940511264701675046558896827698037273058729373629564589353283447108703753891687694619293837666561078727734798483984411060283047059472407597756924319920371616380884651634611787762561430697076068762492742029860038801591544874094269599959118690855623252533278632310046920158434417036342117003046168371395665048151613595494986817373766120995897827891159680336558270489682153938583589565099082027671834536117394966779623544674722629079306739515445721323475636058545785606407568045600196923141835325318314373402287833890159515251745562294642234176089219592335096549604868777952822339294455964103521625684764891178689773108748230345430834599506478084866394025869649084721836212230643537238671625249063833025150414330001367931775065596221567612876022627112754108809425950317998569985729994781124497092455626183700418892207401298330762324390464925312755477093578378295155714077908061199302995964549781563330359313589494025864590809334047669863234170851571441610544386497394404042059089771329445972483392068742813902066292512088813530848159797114264112741009559323376838261346438872182242219465967999163586877027048814099358878002250160707733939173147178942269884532613528493624447164498496567051576550944969879130342231673916421730250163066980589551704763086219122686418343896665512981411797968128656621458213894392899199176399741572419068770487924623625905911973074078081154979628645189240563075816168155042657517546957340760402894086679286686786448406087994749692280540627910848730693228585348081636385158761766473666823997831475727989180162690930288184853147476725790084843374895704572659089789788121560798146908850675572084767542781615864769914808997549665970564058412168036688924595089671136139959080391808686059193592461294723250615171064934979205687785656250256603481782718036181403776795260878404222502443402124747912424476746604307993345039199212875635440467282241064349600198768299093607834185028610095005948942773971561215947741473232742568452244861299039382051521753533446458287382672309861197675704198374787715019498017837726104260658862065620322865031619888541554852684831365696943905420125908890887931303602003499299348340769668068367501135261975770651516533613844462315907067571520422038817027889134816946972629106301749723990688029361163237163026259873545630470289521531034859679141011714248615284343068744269648157509152668898759378615161588984134004048785278632638669479743447626975613483841600097607468994303368057183494788906009939218196565735671732495668674885978938688612666818198911090675674837461336591623998340179706272600326417133432608035388129583308603723302364516620910128648791339991139130915490345842032969775676371181800617371860040589690710055427613472715501074275513140429017049946162958549010629242281799632916316083411562193565500209133904732321648250838775227641720745883910074048447204065995901955776963679130095505660869311778584889589817289195374080686195827881001974854046193979372422214074832695511039987393026257081113090127304968188510033834766389777587546926900144954274272671591570450007663533977322868923014710991267137204529357513015876194195830944958780935511599921419710943686378189670247938938963219749783293653965922143363238497943639306049486461823679269667612117379787425991620230189145285215740053557112133437239878443232512768732639575292047524110898048177881417749931537821606746873861124136411779296677642265816127849617447245927393791901274706491168844397432780430217645978983951319740173690127231507702002314571520152381686652069570514224609020213141850164570458466929810891683470274593999261472328358395066702989956647425667448992135968649777718937328465227985348101178910954012392812377424358308506847487458715605324705406675384207147975865508169653966480542140464931381023613133724344965571110810190203230624090641886825117126368330597791223096889203326945039076594556858762525784681714869583707311083107209974099599820505518993624598233527998796635249443785578052439006339148036761079346762632278531049318415550469680921008788571461493528302521644367990098292279401963035086630602859218808836070712077807886268157051751435910371673451094341712915513615961109133872058449068999795324948775201539669766430242781708927381468852489235954704168176062919981964597752004577626082252101206250019188658023460583882979812338161700291125629671281653163697096417719587323855667793153725617924501823606689509110394843364674043538184286991838634284242721657215034846258649606348654059944297842939706169521128706402593372302481391492265743168338227940788061506536416902624314202368076186550867832434846026576355994754818179759172536470827360752802934475391925877485747766885874472391943186488738253606167335868646944497809480287816823787383718400056088482255130526381655785004488273591312474730341290163150614191358194653838701919758372838826769332606593946931294956768610506529945331327363879853930934719782855572198738655991822874691922612917122821735342750297084318235780617234429259476434688214655564693512729902865510199619473461697849341113569225321128928814809020113722329034474721246114151818868871820652205876951163806835211273124812811642686163779237621032385671928947008674254371192428056519382274426301522559018522492940698391291633978292842752644691572116244546269339081422645352550679597760420383781286053496085970575239057657813664045550135526169051798465381819873501238538503033304215926994311470463153893617504252190137252403078357222792513529794072553541247851523963081413826017299345944226162056202013377167967513917832864409072986227883368663936427140700384802848909081316732768028091036275927809115565410323226254245870980953191428702003673619107024471770158413998577230251318077156742122944701019083126635314743465113573205665797690255580132285916369565450062676076532448125681522119939997312962362124666702222407757993393725447887357908490849603045763369760652163649202529269374125226447865427139251691591077091672370711745867330811023229204455701745991987036545088899276059620931081182918802711337338915667732980285353352755919299926738573070435813803121467576040406218882364547873744023741972021612682522547262814024037600564441773128187377719640098737624818186047188410357442434440964765346996456379520460818584087028437863907018906227026736553909051391832089014714407205261318845779080285752597889815995413905219834411280630050803772034385284715088322013794155335567880338362941369886526852576661490611198605274409081932416899114721360887107511534027666065316745743123969474279568696730720358024078641205849700744889704657229986154380517395900185048941419173776248844260077795395958484957123289955778672606718278165165983311342007051138029988191715929000208799012992477067519833727591213527814177931334847334915717579672991342657165343313191810857488284615241652167326148360136418655278401804343719645907102181383311947292520006369756191871157502353685314175132768154443955251946382324817992835724643560496619666147313962081988953415892738297610447162463371898524368803403841041887593471699672369797980275826852423604763148092624324295343876477214489961706669366276035857908752480536357911385155768827128884976337164871014411975603712027651472257060910364546848082360082558790155703688887393662698096082485072567139394095741065058530231307969438331565567351700606137112105044598542480224449152940805466522196034692022790394406503774963469295161931404661482972290985054103563302665140706986145663608516606002115990895107241639479664971464800146670954657254410454798917280225868183268235435546581294766989285001016125281349399405454277391420537828697533793762056534043321904055765969722117697829947875645499514341457201815082491461350144980380578295716862338604586594261593847137581517542353768323289697849044699078139156628624923225070239963666050303971711441049546616674548597955525513594599710398772465742071110978773811007200906490170124340022662653380422684185201086160105347832628767706279925764725808381353637037598249204158852509821433885516346745360398442140703212322948398720658643792299142485687342043343084513104837755542716563372283825386892227384966598465479312420108067369409307279111717635442069405669894422431154517227544221986742440773658717211002296412282484780780711792167242733534176803460403144755076865030745274691543799786326857174485494103552146081400756787010834029929399536781240558070461694860031283591259442366026425302164918234406319274560694924163763138610272852152298582798918716811688434869733497712433579585738818074319629473819167430319913825594377634322232018235382368740571144400793985992268994897157729146165236335231922201075337972767501521598099386347534795226674816456917946633302844688342275846926242587584280591008537781835758124094408076957018989467068472146299800317137239526434924705866650992686305706764381152400760272810400609943003269023487206089469304046719606720366642118521086276378347013720662804231006807485557265679654052667927809435688269541233573413397536129304900476120592777702476532124785324788117319410320158384393990423730168325505902673704723886351488197458044937097137148009182460768724255767297197439283318908432091739619906429474075983624190814327618027202372413387804556025369290053123031270002844101738061335387341400156189529068149272161193175984870195131132910637578522240543677573641280017861751684173127686421913918544228843818566177179743141601835588917402432044880168771591574295321254663384390837907180133893699012635774678156466247267992119059129113835314412155073201210019406444588013366514701478857229344736685137337801674527329157021216028231206354489444533261523789434919044766105228228972292270679959188954886888875967194304644553612422860633352638612542817765845217187855816318249339395733792389402613351289268129276953286432802100324110003154432820700823097788873929925113651941805017280044167936672675721287877547323008182469732926416296350837156945117589382225958039699395908258023928563966346514713133930294908012904704192784817958065712123307194361926287002588045665189189543708951536960123490345928909699430939955591779209061734522262402864702468695020986827402592307679000739042044383990694938271400700409006649021073503972027678801345885754404424524608011219416165131349610871402980408878792875314293128791392327330907808460521809415897104265544625040499223892715513933024789105461173371567196559869591721116165926262173699756657971628724134764507254732069233732922513271847532563490888672222369640477783661170507622968949196728222062234580122252312067972593157864536829206019703622424424420250237851794786457805383208931023459943534461135838185528122189747101924212027929863355811431369165610252292973810118895629988417890581749972825932031406391878138415108388812918640675928282596968595628807656820046837987640975541429806635228675435736103322349163236795067950260952299605839024217343293933130808913649206441920471298212844004430826868766592528773322441603191870285383318397806128061108388253689863252292074358270666730250318493667403440654102247544306929595338246658389914150788654154655138108211660631604985863804733464608669237021254926824672593508432453706454955756191403079730132468032730417555724796166317227364409828646942973383508134095914815019028618567803746529393656631955086124092229986006211960501650022273117820944989526808458461164250738305761623889433520072457284827422229919272960370871147295730913755693899736102093342414249308138772249953539600439929567057825220506536901766545131927864749081393820661422715905704616084917570934351373880623929327022521673159118667656361715564759239549288952848416697767392931511129772427658304455692235898358362891997454087901209444678025518720066610689680349672886487096293837529839923852717790585743584912651765414561822868271336951310613511135346945075785538208887334792668116905701228859058554677960376718237091970732317987253987166415030530603862191280688563595063642107393911015842493602889860488452461558773325370303195180229682742597256562907830531860277392612364068171027006610037740213703365923548889594727972128475815026834095015675348652167281884407552005683179703764939748334297414815517692626983719376698788630979853433500821273501160050599591001289755545332316022857601926571348584280282416522651627351158872804527123368803009465529010595186595675575431027345211324327510011785143064407237989074938995326106271517373853234873602580891420901676986360653841507550797558047774629823151606414308065308949098237741222873622283174177644004720379191737360962599292241536589544109487652505359140882229588719810315520628997962357382633859460152750313835505312954761912608716400866515998590239172823640527674644469495957916966110395112037083132567923222645413727240588854480495825161208215816007250499744303245159037733531429980667174037676610126175875851007380972366092920288961230530565029449119353758325842273261052812390848702574441372130955789225811311565143635701138619195775454780237402095594536309188553618465612852273181893623809573407545193951380387515103168418819355027041763011520748004807925697645493883178401403524835147903083014441728107051551038669937089047697573477551203493526538441666123140682815387418787788835188154930503268975641317749507138995315353070724737344260166379327229280313650905568714380028775942321538810671041375468850863020337790130510606116354013437526289508357393098168212807659109701718970513133601774419739309672155115219424280214871833569342992773440315845821536122288286505090547868570991961353857725466921248135183946923388555024166937765494957312831123264121819642048287720482432155198868973490154494109419525548625201372746720349152802358439115751033340660399418312880137597206647021652778217196251595855162503516657335042101314809965979398470452508141280840499354690395389185948997138799406904171450521756332829106457034634603648740368525158126110826442380347203081851965499583570154105259771086046019958457287312569772667867264974020421469361276412506728034029034436227455309177392270617281881015495204432589030889701588319912180601818758672914163348960920995966967069418593645441402346970258352149478068951884322957993744297509952800732320119440153387592460277271378666870459380271579466924122641840317513842544169946018389783970795975207568306142858960185731808316829655800455510216972399451782625128377864151752246757873639908950549996276776463707713763692698496453571158531813028404910247419082516892535721132041504381095663447975752955534851071464187306462348317768379035699625238828487925875154734060649241856285349158018894875795126140796692633229635122595667912903510318754232942319007261857928823841304287962973797362492611193990205442116395330725691807956239321996822769374527647378141842493254846872865471230958884730781596487964813532542272640138882597761197809051887876507101972252248071773272482059439957512791248425756035876956062146527154987912097439609598156202105928993707919222856973297947305110217182801351871148933962434204949479551171917496498564571779716132272357136794243822771259874281509131574760286002305351447222398664071520533133721103462042065917559085738094334043590300550582518729782864890255982138539579284010446121511281011280729407711666202374286642496887642657174580568364632635346788972284477265078899470275525538130442239854038917278872329763409732118753099368754172246133521705665171061586706455552684738255672107686819651659823845035136727538214506683327099125981016633960732562497604479417423475776646780252003149874231469257659579459415578380342207677267242470020118419736784548231333174905414351519066165653065474328180121417587107614764672187749906134547092054999823899011570210532073038628229492117304081835325789837552598213143992584443860339014030966648599127802425511203689515804657760776026423011590596129687380423774074281467978970345982515753620727815769190814967793741299813454374308438619791936872293906281135684159809518001445811074939822933108924296361100652430684526350001582606211031063349904830514283699958162768408243245811092430694884662553267935470807873090601878393631925089417869491020940492134233799493490985936793138987079965055450909858930764568055436104923601904987262488236643291484368503931925345863397984416605896974205861771576125768255454811714927382721579199499021381212272513707125621664282175233140738356632933424482411315762752404348329976453091589880030572422000952887079535334297599798538385991228356705467474216998245740052315036636898276670032194061562757720318035868334994433331808236851746525021473567186953094013255091889844191106004119364316839759974873632541335112476838813218601826913042399248073417936048051476032659945100435264701163694013928051965879930650045556901491601173305888445219658475508907741242760926246222748692165587706271319666739690585676527034492179033245064170691732295087885389351715112248633312111612988677259585415078338043451305188536777746953146539138491298780531281078200120530942574080831727493273527296169744728363916947176695158025524167662153557141350893137408376372925909425652791757715703166834047572987628973870047465794363577606940603758222224327376251397581031673682791969172994442885829902373654741565802950780168895823152325225117403563355820400971966502805738238954757894373874547492770973295022917477107002370637054354998254686963511463386179290236804115413086806658931086950171824206286435594181467235613116610088614739175332091383484950001987368902110469438221421108267938034409127585858717113894916257442640785015626255145319973723951370374510127852421905879405882803625331886780969969991877947413364205794944465489793565732263670706556275694129107883778844522488911120638386150573621955764133640875019576773470384863802959273568543670429288395186671018990656216688544951891505708354856887782803613601651429680754728873869300584505094123801438913366345251138291137378305497058821524621288884182287918043916180664985947389546266265284318527910118037632027403485626284680623767023384256660170647189811984750426486802605384225585851607851582645742898518916461336391874608339679993846917338528466654480141911294263027886924639445363639678376459572513369183077716085745392503033498418454833145554790663229104739373916835732883751431904848665152465275644281978271479584596311838650744806889690470926566515662446837852464608985240723823224904295289270267197432969300212153526859822471948066509765622562258423231350105202945462084585117385066912375566335275195904366120346081469209783191344980073566548861091993789516713387679086962895789103164657968613510448226368960793841435927794225138201037334537084880737402591079025384577701164468886392729555724513717657817373054370611691575999580022046713832747507367177426040608828455532121634414594521646973163308140428254610696630409996266534291179649048510320260503488958361416357627717864994274931617238490657458432120477052815052851417747237684957995271224416053911921386965102677295745586813691706245622042543528358435846829012711126988550972011731437524867743336617647148076541232285063036743725635331731301402118691392105408862614590267751808114342978598057313908198988280650134167526126883319964000227127426798408960594919111975722712450711596260285390844564969855549466293731089102433373801675652470578360573780082587093885924818440109717869025251508976552999736581294406552670345808198135936499195155776917062144720866031450794189114902789747577756339690368932771659135296690495660344371606647488134981663980144961901798664745646289268109964112173723556737072589667359397250442654814370037929475393250269716031709713909921087826058903831104933915369849461637519106214934026625137998470784298630149680639480324553805557336928506564106288906747264654163369841842970067932489018148098651719842814608404439461900702292909854675297902482222228652524981610586478128150349051827482603265460848061666329751663764597740703544109119747529438859683958780915556708465746677551443987249941082215398102723206568387168876676635644055064574058466274150158481673825250239406523800996200069799934242223034051889237802586291155912211243850523462817753821243868700105313814279122093820429518215689143197488464105154922957920705604081249155944759850548895367414904102808605168874219665797541322822482231299156666513029255945177314284227040415271799494330995839820337898812024811882603497433887705949602464250279797096755242746853182083381115238722419768312718219171271391352729217110801084349396050134552496423594087310994776969933361468651815586768753384982570681536545672954702066169409488635181659180404313805969984343765139207678168799903187551664861376266007316378030240600607188728187648604927338569487917648005441963424009842814500140040208276531514919948211340253045425524666333266084288780167582737230702116981782230236505793300370571515311473604142907241485441255752855067290969483693000457152770215482843215956970982015563713856550452238309122483193631869874973646338251055908248129390409395595058399954632891953975259842082993363543512141934561220163147375968420619955205990455913074058579394160820478006526076078372755101069712129331185627490352885213937567317853706345338829918700624253681482596643778349832443325845360158932077263176136811251507307646416172210919713883099726206074520361798328350057384917511059075912397454908745435606419768701569491114444279415343922628738121129897296687942744910178535167766678232309936789978980488888644425384193759518080567800781795073653046507190957454348814537449412280201211852150942612184234269523459468511543883318259426679732807737858849270384086316982168330771815581135808895164212354438175508384917892388904478011112274396636286577629207042125748576030271359350434275746163134670811893676399620672105052598773855295064891896638755342949639915453621911932813836993308633194933604487726909228413783024348843292299858039504528577862272155408053143382390628014897765000503430824074459853662669628280336032472658406835019660640522213527389925696410825575810130600690485707514704449491090398898292462416236608533000680233966346447349805187303739106091373266650785897133395642820824607202256475704350759808614522229602033531317269200765182090425279478540270819308494557097765700109468687274669419859336442014615415032767978875723892935648947487739269524170942046931929389285045361031863548735013290277823477900002904573786403673880165342803782866726148356018442229944321602113582771710216448387256858367362228648741549333956612124531952680069919549349742671090169052146996957967096754036792456431014733263226621923252933016070704013610546394169145398263485818579998259902540768264015059341655288867897184960199076276428590900284218633016152356386826802966524430259329897965769115913089202495900757903074657906822267010945216899388348125239727027281669279855229986574846507609258356757786060863255117028004304830557253195585130811310278393298855081643512496116494292327912507347608631520026937487123928493780909993443721469083507063178703247716971389608954964659773891892155389245715195422735940083923727777314349852351086440194579636405100324099137371452540287327235595157449996276239662175002145897986041236903332138320179972995508164862411219006225457966405736756248121043150279029512696412031525740886814021701336849123028768627543893849917916571685015482328262695454374268827082830746652827282659361152874559638248148551297567481557774074075016313082749930079553559907757323296163963836946817594907102416452649067936085318518908659492894791634435484525844496418587118517065765005619467831519636654306366848060298550920215804304347930435413320790538958566923234447774132754914460477853618412401298774669412826081530759114295871343652263839719345423147573473194746738473810243346452858671202442016838658850029398653437712632729240297878000262927007130433249411837797115843292761720345695513158319408377217979768758228556218826697889016824853731362789616299256910987028552978405459090062933456087998341076186702990491334738513071221629529503696951425708087950556751094183083356865720754270497636684566721567717416028888780897784795367788286941836384175090696559508103960546938909541010866743412978413029661543411808655171073831413952866488436656247834576859725548634678296243864315091751251551198573873049198769794516557140283886964347165979915068347734168059379700337454395471008503418619379317230949766384517182647516599131879861478266206252820692214860362421571802803370303369985892395792551282202955048938591261695982371638991637858127446932662975423074458181434378570551017510351284746925070107621997857586477590920378555855023207555144138521330827219536322133170060155955754475370348653436565365482733262797993203068755309832955104741389963774111204623932990501023751039142515655841982755602373109262735192738440631792497035377439130575386042163216813135162323971222377798698483182866581787559566255446932008619666290918796474403067673718036557853222270776438220015737384395665212346333069187555186549725021013685653764261356541203699177827846059022022177423718000846806161710696608737480003098881593997417512609734217382046766635034241817369210717235665828770628985269811300249001166483930223609436516465127650039540999144613646173595361739992381883003364204618161255786834149601280428272862138131722533881454498432396688734187912057688475157367961657552360475162794527426807076310210076674729365495551619082408270453726752646833091092564361104886215402918969184334056133198399135528667480425180456051792644464306250588682260342616331176872518487174583278690748580524848189818687150740870738314086750709506001755024297116356043324526270668304144276918117767875166608738384987207094240135439745017714599148068550957589948806600922417885341110984901484828881456835638304446807617609298455656518396046205883834142871231999136436135844058569711512685380359715003303255233543989251344641363767567160940392922570759128674150561847743985721704290124440044391725331960860223374919017396436186818659578747324062725365536702008295188282150043355756566050879876929099900868257846046579345050042106709217167300275314381311779302427996774323319108151218834973185742746926746793142671314486156780632977613371497437339796094679333793649973799833621355449924740179880950699588292037192538494837863391341261203583975642546216636122922177976398779662695405932875610047263623173168314437529520362098076065414456707185904334653454180909651214957292946745660790726643708501597263563854674635053752039698233741821732868758477751641835056984886375286748750387402541212273771081111865135265548482747028381144836548965509878758886054945206892060166963907615093429829344436286510694223379221180370652143015690861532370230453879369238895234019247611613121264727727362549766719284506704309388813324516746867515683519182327070806321071342581447125584866798139705377052660482886689567126260403438269563105134749012187962867162183644023252164104275430822376261768611132469952477071220134488674039101248827694483107766362172139975210706682078002531954102671431935997328869877884435559812904142664238459055213908975513304566260925485006842500916264496126554054003530331489131897030429999978630336425158611463098529865899039443220113098923778541184534458244210159171531234891019228391639256812354742988421550051254361028325917785957626799142656280944247915556647099052911812726605109760927961437448592859018278556983022870460795391521635754852681053996659906390767265152943002906564518759540349098066226048031977778542502660420859862284220567825321006465947313703356232340351550664456287397662050656311851525422285183171807283645752045240842422733303236299781067909185002620461024115912950456885961423878648528557202499927447995172768049142576764320650410109855946818080964017719491124468928304325049723059229419465212084677961514596076345702453093764383008511478413785084790419515795163002607330181667128151561363241945748624738942230907548832563760164871255401147036154146455434122075589826122627463823523940845255237109838465955483401266649582015422290088834323941694608568150439866896527679230280830947530259836427726974477637570800658990496722089210563801467354448102631378719368563452299695338128664012050826805727121758535976585728394133215771377794427547435049932496878021844934148122981281294452107130979179378306815587390012679736317653642009535400648139699240175437189055100431675920270038421242103883916309923427254633252474359948273930516599308607809758208294013090217816823046081029648129287369004421446337722369088420240948115713514342685527598701664581584483610191098391120387530604400434445003237928359499186562676984493411649690583568797041347020499522113197424266532536149352535333702540591015808181215186293818355596733299149311464869377843155392466993074689928564740639976636250231197115731995905294719118401093385042767786958715696188989676692389619415410857631785189007230801799278754704192128694185936532415733465656346735102763998654510149848185341870207438159593253004478164676331975823079313473765054589320781381035438284465361250273736851729574356113017084026621110295316651395299822162693680563760897002766075689228567264411789021958034838436818788912041286965096784640164515132376900454957364360903362243900611080937280372799872812687496787004723799660612012269263036898078929191265243073628366117315377965229988058824388070129580853299468899558544813897763886380613769402342269934342719865438820656910190826441470281544929897403308864207270390196729115771756816024983702501119572264614150388323960638050740662945504814655506467222763293961117026936179101799776630286804767883902399479770900522587495441344405086080607597218659303631210882636521963467614792582204741469365396408253100210167238100185480089559577660144208444994602603302253995722461414787150472864143164088064808497433519744931535512274909112327367402512601681511784582964898512447868799673323390058796444308463012542525309830532525125797119238896324501879749618264774468106757732496225754330239375374918846753582356829003466168534228907940095831361983803467298922547259812497911618104079652631483324048513539897956783908884005577805246043200863771799453526326493894338267530490394031725506742114709463354610382559316159515334402887757394413166105443571857880041202314951087286134400071133583774887449427409017539959252298216044221662018949169777264365549416306106213432104715715384475872561035768178525703514815791264253566965971653663148520740793517850615829997427117729130477238245100837496812293602082385062841271705374544180343874825981303747541592392808960321057348451042458763853105387726455890648609049860317800354252750667352903479958312065214346848630297685088836608828497334217360647269519659822681681182092510153513980888739038294033265782651349227055393013769083661907863000030010109946198082795069209692046866245084095953083932661520814571941184782928610192215287788569267205424349756080174886413033418472601564369510213539520372970076992968949408949664597753363156315520383184505748573969731567423561352520929349763199098997748668677758426404632478768249991923609197920677829442802557851083581269972365890752746762658819848899752011395115921420247598574822273219012854836432824724400330581999772801105522812518147521018194257678746669772901300274433510972887440876804895875240883935268875887720523845749708541495481492406794189207775841725394749284528641964979088112193936866331530281357187322362336648217032836683396073722889971685499820653699087183800665906033611427154640738077415932707104718461316414347383057127114261241654218116978128554642962536794808596556876073743874611732525195581124535210093773480488338827782485104863897468613461531324276736822987023091565243889747110375038676756502339176410632008419953637929142099977422613982069231403668346127784654839863557464902725442773980161691634882103063962617986822800698423483476366031562835398541325481569213136248051910307757452233942439926414111870695317586086123545693531447945374866256806956408525625592165631015443362975057976679405195191671223138372910023753737363925043240964324388674735675910027315490219801061574146043947052774611922607372907995632507548689607617906492297715319347850921068190005693937692430957648439926681552014657673411066813473327670500814509426679089057235684111536337659489730633729572841449726171293638334674108104356684115794714205047621593904375837464660279408233102712415911617994080836729564125732595090409928685022079847942064118303052877391962016575267274047209644499836906589901821224023782395685598547345578791564131004336634230954266811057296083854252606366062030483961616008941068674018259952032775971749428547576261447265017934093157939798392518229841211365534826406652183582917986913739187397203636937973074187616644926938991572455742212496782974763562254690264340528298725738750563099606777811969360262015343540548773396165644200447384948653016827703840300587834030752985375081678745683037374693759165789258405903976059597390645241899934747915120665882149063716378526315010718103735113457971341601330062868059497340324904822692034264779535505552947282127993437338670458483752615271177505036342914782631250677908863399180238078179868243925279860921694292481944445258392130799277419666512094050955225653819676682037562562816701988036651040304939166748587286255478511827455462367966227759634767857607077003829392202745386051570765031603321609573303130196028954303454609831654825736483973381669748661753334001943418905267749782825719908288626257800887311406587724583228215231235957375954392633518998268741728281972943810140831674500236814707911210410052162701985838607429637138097015598072808524264953702447441678309114255515170265108784184907531106202979576529504913732234496122901060603966189411942123907427534900142755719784153042953522708783755617079723465331475702450185425382308220834313542721401275868275861682437158587485279931096076278498510157178053026206445282641014657145500200507712678867070874229781388857576237876037566243462657096453476604922597662148978302959903257077885758315872371625155820544012387305676142930157647208441212313913694571735013457572616160272711433483263598812519122852877572655050319635309240703227262536492155088038201550317467439464609421995259181448667294343925428396467479356108771754199161040783961638586902102068323121205097542143474643171110204612563867230338007796963283587710272690991016066659079902403338469528248024498096910190183310206416328698671713571640546168755373565440636780209827574356624018512602314553779759110639752909451424585372017114908699414801445563732613327539469724803727566075941975945819878704172967019959616917180386640944686313864696160728790047993087603872968914203723287632310892853325209889524962273202382001264526469003010149448064832743980667156016951006677151723776595386312672123747937604598097799883290752410060344881247394532095139333835613591556804410425624758814883684749504627158612176628715227074936646850255097663995045022104986898913978509373303221905716500628661670307363934562438774205465336965411514021115960418111183228675427658688739062860696177677395042859171784285930370832217658032608032683564096249195745674960450818613501576897061967113487893904780058670461142458437211345317107716617277577592598993963147932195049216232599086849253953960865965763291602074207786676850557638089633246622244380938269523724533725236740711151377571689955127096088006233814003697659039353244900793558773238138872626368413884298932643013632049617736850533127860098856353868629361454833131826815578494556258281725411337021204672493083151070592301550879128046631147076332844544840976437357759392311940568134348361866275614919293820585291553597351400070125052595970447724449054099461810670830500973572376892332135826209056453028059927590536193499309203736301297793726701350133615294702080925998091811615079611503769916138475415423134372174831083796150094819835961490683440356592512621284811104411779657988689325138373517204239637718712050459586662005681828876836888728671179946131332987214679230412877202090077538295114861985118102665060847888457174859002675660559512203191489821273915692583695335021545775175472358100368371324924158398241929947196177352664573086712668307845255360061373060130191582833144519381861270139471118106821951859495075200187550792754056756816943659938091536026401700443309809556397049087943467259854099691281574427614949728921161053863896859206662526387963052471894796088421759067350638539801489906466412295510715527374917022274579463809717873109125985005976887684507187318174585707563982826616978926314636005714949895297088046502772913289039430400045721671894878667748516672693228430774510126190168193888395106499919813291743512085712671002543738963894845573649104020631434449820180846220370620823815123231321850599281954436639184731185755938659744163904271295154686058311457672453304165226394356529219306384695651989621926672207904889916856599391435514408126502185758097963247085299007722085011594035451365888219336918263164625938924131593299953003765621730414617097996920335551513395122160839665422780154144657343488667090782086370097472621981970629542108734675356691468591087265069410860869376774831495959659196983000052642274117039806199482002460527723877183794917985601872582451411326383205509867750272836570563236646074785593761552806857911202338370325173159223045368652336923917763252579370307794258247853396546587463445529798172625451465390454707907246940506225456815754686658805169642979122316881686339374027311591117352690969296637315825911228057697975832086483883893602621810977348896808205205736807335331497751344130039130346372198144080754965204527814614445175989327922467499599873148581248058706124202353336418766898810245024553112899927217103396748442626989976459784456435683010836400793259103824537870284487374729845388763387196922895337350381697578668387633962368440531875242309323630909491631812125473754751925021933031851395071517381523692261204360398039672640103493544221972294588445909738435889019012510677274612331091980859241998735071977866914377516659876170078441273528782296763565415251441453087370067423398809306194716217438290779828605000130860813739365573718787603888493034675332300637538632261581690145972736356333531036791433303044523294293311375073525050274852903305168898779313437673614802975916192891002020424758500788585205450826784542856363585801386293439150329932295237628074084504445680337524758793524326299392882658818243658503201719390268760986603808399565934892466618616989188211229758792009472891755307143483511506796977962436858251594081222923290084381187084752313050657959355259963546256027802303712471348844469289661503395241163029463224889471036476475733727523459620187558332315128956370343737722450980553338635405087078729247275604442785591106258346408713938362052741362946271906770320958924793233226190729021911198502983910885800029562741180576228082528487952697013257090815887193973381843596905939136910603717305969026066736983769164795288140140704471228242181983839479702354981726149799922793322954635448902754486238885271817723478640628294591924065354684268587494577035507733235974845504132980818706910699412141704610396573251081419099544701392548009377986906465673013875077208389512839539946198580093165303786283694575877533740050340004454773294038060625837647040649965033625755515623958915177176318152040199405805643019302656953486663465284960292636192898145546755418118206456242176653642138026646536150656184526256088990438799673126293089455873559384784634290984667611632504850892046425278094154925914685952234377334550525704252517641977879102416549433482034344339966673574768733266372242074479911368627291218646951030433148167087033105400521382528467972510686071253544918282745749302316590098961622213665508440911921368171581646699797598807001226243884807224569195218301433840485117416179352660014145226041452228620469671311321109724000631987248497343486686279400784486940157275117282112849252547027931108844514152147479005495277803809594022377246479320537153059738629944253330621013261887745115888186260826796757744607227784643146684621516947174951852764859045923732245790889759277620993927364029805609407529583012528257167190131742940859928735065947927955930319618907483599142470785643038237225479861674353791684209685346117107115164340041988850193801538084214996534014946549203182213930617786723506678471572336821533589131257926404006366000269204974952676035403518605587303453937562364517446250912559359018621927081515702301712498307745606891911534686261336717057098745269918001136951944366435873087814051005465389638197233219601746710011867776517927839231807246585124132208440774739576499827299233399918352250523239699665646508300218891411568073552235059168823674129069054973973411342965787075232096455960392766416990077879820918137577185193765590041880036503816519320369724406245877483491068026127975972088467650221526889993560457181575685454159088973971660358722295552099960015751000901413279098533293031729589983309391406169711952720340076287489239639642038954670593352451586539137479233720747998914812717047313150353119626455435290457975401675771711087122668953254527787573532212250206836128850623355111354042101134355883761102706629803920213176787342123271707070655840715821217445017935782528035274922463835367378105447830281029177562128639085791518885123465672326082652067333277455541957238651666510326878655408645149426881969505932079916195763667737842704021613688007693449473673759616337238531814923871359134123446296275045411649730377426950180375455240358668743552033219127293330514058514647792271853880823944457758504744670967289251988271873041775916930738978829152000412508236969357539954274465821484380825076220625311602182270849018896559138549089603932037474213759884206665070636873276913807818671911020162889220333306024307836538004486806880496915894397933112218823150534091966464363704961914960700200298853835185001900774931005851915523847490124434323098835695419118151765993721433349814389566111180816337398730983191587265046952231460541543803359610566705487282364654183762581750706532624735879140441058489994758379075819809723611176915878105152190476081646853482780014116638091517151562713582536255502264724610449208301174291517369042019633126931775993319069500970591324865155172350529036723590962317977491603809377242523731331768694505753857374771560239946702926989856722058125222765257279148843518902896793198472577330912301793039183555753658815717623728681793662162294185157758529388606098248319299870860700358872488950270290678982926491703167135568559191183479700776906383624490286073128851133944706842261899770881378548978709484383546666810460456566774526742173490020333908020421624855955717831476599363523981028608513351074343169136906601386376556543180622376412083629101635321666633029583675487249683727490370861567085474495998212045062076644407768074713064298926621506615602277985428541554813120082421565402737632749347872178902383093982170109124244173729729796316301585271819368920427997483996676510598970580147876653073679507657016615800034064042733569954023097606486404006755111592976159344083011674653588233212586007134304016842348132939979791445407512830652626459844383377383239891338215423918817919122769634614062784617980941795634459398735130414927853337777687865897766249226871456164487595601659009657421257383191822665648035148866874204030184673405582757259087039945192510839536731977209543539128119779468585483099014358404604376554696272713253185756117533228231308623718390368732189438082571440785631738093444358036984735559343310983938070083302508753924236567920258710784056442753372427179611098701856487661128182071217022766633673066486813888783545307329154367820703966895141335407106974832608078292546787105093664926716102328943805150656732297410211649307272375526564921953865956722672655729681588724475644183337226551744630739500613081037987507793130195694081206114870515513245935004344391517654936049018097919157352172943219224914223392689665904942227564934970452294182698121963529526616517635180751339051006268697168610083024004218828768332076538519515964044254867864258590815285927959184745133571716108774003412620942524918859047392139878233113374270680174206730525730736809811751029549496523363785823269892815547198216092389385541161032310246444831765910560693328979697778218183828737601673108500394344882862363983410011727923925266161006811323508662180116630341831263316091899639037504447391893391228478376117233347244590987845331686519494805829201000193874803226597832851673652444892746630156721336347709719012913178948471866153631435676694484528218087276508459011602173674874737163659447622954882408999896661837288923850944617447124848172995291168656981972704088606440377177982826668231393054386739448549729710641532751480130983989871006547822206165279091954162129208876035424004523436117536216711640212154144269747159518367687066686561762913198256559629345773136271234434068279221666086668256184175283672501083359049850765254992587279685280702346178123647615615914901872410514430886994411126823613673447735646001624142205478762958443648221729846193715009779166979535793153675805702370614356640882172660331306551840335976412096165619124822886050212603148909058219563241224995976917923663410030745751968961919852375284007713459703599128328879703843020504070789543268123422067524692714265249533995911174026655834293606725431453585294408317144364178887770691071908480932477786827601050725585038479825876932020398568822876375021377711644091047986487960509312258371611832716573929186204824848803845711541720323881396392288093138508200263290387545461698915912390467474473080293350820983023561872582596696264640217722540217557569307770820793781839973538919731740646505545881945036297829312567136413775622893178657290357818637797683123291712929593231742411181689937135045065240017570456770500706972402650564686093306890834105290540462193774512698632492878590867696765849729677271626480628199226988798277018830153565979859744807986400446218812654724171999975948917588536757776281854743124127618717849723183752158699704380682519784958557815500889241553615449655964965871447805094540352157857032814368842475782264680230014576590476262772841274643436727021616072353373573607095706408684147436905217046031636459380160828805824031241855524921846384010332368474048249610399267611449851955273931199426713655551535923789167142157002477482537807201811094755604448813361571208211320234464050950422232045469166579951982664868643536991247839678552744228778804986571089135998451565900401947594374967978786606112671705478665739559070640235703497718354419936150132593486136385330676780059044500485225840606195607111414779906220645475828292491572442874899012324984342266080013391966916264480432376914209072379563077278483999028118681819065372603182437756924918816595996943929601506505846953349694900555311447834609137473342151207886069866506423581155621997969706667767322517318874570424164911063872192180178751802397553038163371528757598744651479761760108622645324054460147924121748456480769030468796917873103792567095050912243851009934390841245709682646489882584893757734631214243452583949267635343342536345016386430419687545413559123561758814967450962063951307180926510578787430910008735176001163301696340757159629027591893330147317884270159940646461005996398210535683428527573496001326357415256603846051738711345617761944835319844257172206839208735244130198464761685834087737065820362948093406263924253231766178409584365243845603573186996965748207780803142308838451129085307350922245127444002269228867975447584996029053136380749716047679874559563781612875524815845188360635861271738851365064329421535300704060242241465842283924504352873342611295920144784242048922547622297283329234665091175577949251353341184994819048931365735321089763065187446976665345386959173755858936440577158076559973128741779374179039467132100812828011909776985963704768958518147221446276452831814755861882318858606551429255347222241337325751291681550644859615252735383438954687283851412925961922445740626439983013638097209209543831939053871232607420480225953350602349692426624038630747478961851437344657792206078836585979308948882690812627307578137452839728100718430862773728612926699781084085520053013241929614167538207457636202772211150637795952113182500874779949524626752839618828143083475728359939773886160707925946440849239317354475576422061434137666714268384847429061496279169010163106385565040700374590995915565225687836990183911459814158425665945249019461066699243287576291908891986836235119523058523535416381797400144761568639546896900768684926917367742341218986049729352786331877834762939209829354202366578946470518662565945783615542332633544568330331412305217193096195435306955062520148441944529603972157573683920393982441812523738079437014708445928197951214346649427978784309350921209074560845559546833302786413845245913279899866282714683813190251155219537267065324645599363520667539683455655191558481591425669397337292128274110734517304423845076833011084785156881819504459605629622077139356882589365916238043377729079160910415832138009209458528161857255499367698893286640633245869832581161093094901999954682507608379966020317083031268989244599810164039274824352608470666419102166738671704134181466856258927785713718254721143730454867002963147913417801640696633141263224337883151084909080182757343336226289408774916846470118162215939570964653832694897640439101678547989141375984870489154033210819205199965493677800990999309707758238752362628595131429167372512756752248852500044633001569930071233168382331718972679412301913093036913313418318820889377750181529093436951040665480324004736438309379502421467426611066318282178281258496430720537334588399159556060939137169299994174278198333473901776284761903044340267407328597130730850162405068491139233989725423638120654478349803680759422997787336178566749596220523922528444425583985245628222303861244691458599939432345107491930094859290492303491799382939118871136069784366730648958545831961859831246495589022532892155487849729119421377909385770024566016901716245006801007019227268858145145545001212474865354162139180285708351542205707052753169530595009361064547276942080882455177282866911030045428164517626093052366701530851715816226276136549038542745433554403307612891496384809196487402154529153277136984023645166885583805621213310592996799641428981069760115207608536846353877181641524410342003743429177539749288225141694120877434065022685908191397846987728639071472773350298456035951469765472578852054185541203435202832146177497288970303438759396595520350072035614147326137310227741605885105781348840595998507022510751765239984372995721564272609923747688145445588579275243636691016034553233703318790984637026684236359050000389502578428489937983685453390619405028157574447541060811438761512330303699054858785435438316955848216767533605316167539513194842184623338762677656560628468023873622692301211029474268191328704592606480139417400792227136280566290643169291592772742048045830886648287607718862782827077180702847060572919646269467898305902397690450392492475200802650835570326826920527362905646699585997345222469671608507427387408066165363818103573030660356239811715613497753750316962197273937542982228593785798119831238295672517525873753663388564604215766529879900804638304565502324557050749144970647944410909191121033615439233685115881427814781752698010707963808946951948922828499409688907621106227939376824657783253670689207863828739578440477796197865569450596682805432246788484439684289383884153002092361736065599862019705898126563010596122048328618796585468660245051327846313679236630244959905336589687810179418926912669996531667581117881002358261885270511293929257751579123771390738442185419219940909231065721952475260292748178283621633001043848936540169977299500644317104827994489233021556509520933506298950381771504937348060421600340788715858886441963789722563605681428429099969791055608546296225497455528101842358284678484417805270748173281627168673307690776784731978041299692305285342210279278224037298335115848421885044632232562593135419529601871449185492056936271077297128839865796157427538760241204329132863957872633449515035966009463347923580098484828100143145388045694944897931689866122410632346211755626177988038444138654984638393848775603205750156557287359352534935322340121603901759423243157500152668086548536786642306111041959942899224323392969802409746078260910098820500317460000908875707222795987705789775174205785700579762459580609052465424155896798471165915731343300662280911091501491043369122386256340514204417854881863257796792110780313956481052786017362643316745624999313826068098539948481503542166575242471081156900973321247689005869457755217070622562241784959357049455973443451518341044169103397631877908232443114146185301966048275947284235953339191627625756403432393187951358397349151729427620431237798917029471807398577017338444889117375931978612573761266981060862786245859149385550292111410631474184013254749029151952259990320488671986873531925318042390568464907138161622834329233254155184332978485842129284043300190588954630130494983008955727875410931929179562566536878219285775192616155913606463871385070249235125676465486290963395373660268689418084717943336901871900107939733269398338666164318629524939540486573648623756866872881647536063006626594539214603862386558614606480691789696140571816555297832604723732454953135647699984987548426422439388248566010657318623321661210968788276536028323953363496183459309601362385073901149525017742746445193707729866659698111210071300807292651845873015103905449112690235532555594775203444195735229586599941835015207512138550183372078065506312042466321277196103452462925905714309991569973967684814110638308323740345915936605166987757774263038713059392424763377038176789373385760659010717986092341171487912188541519523437286957513922697178224822667176790665863333455921107850986442425400329521371106674442569601388151488527555645107124420816114427106901902837596167001726165670832838434057253825740046352249294856611312851579685357750276330922404539249682605755257537969204735400179818073204189226705822802123113527356394803036252590376105847163563760024396894992336340927061521577145116811439433569725796931681586517141872988082140818852763302086469719582262905833602612079594414676074283865260676490322760013039790298962593657112083276036632504730446104769749913535336228712857554499451145688954444151648423006501586976977565161382743011548494948322076594953859183666328737081504919559034451842700674223627398939357024793413121297913351790347397364455914478592454701421321716046252171017286434238185782430603503546833154862277431362383621364646850317139069190537283123689767628150624481050436698200255426171218760294540066854888054919798109992032323931124134841639822792322334089124456726895372767420818233839409482729975692827716595848415839799153472397372737582085056972157341185511714835577665882025381193655315649002747499440128582782328297523843754472944099805416661295122677294638329624714651249343294509314280878744584932467849924689669448539403981194040672934294120678420033025303517203887571823773679564061345094881384047012977620364718133364859856035834248652962571109940490746050487118440398822063724381513871550619542320805864051663506469619352801106664265894252232741424212820208781668930797244807281905747019615397424481294352249014781904072735196200516287500697229070637637239134825083790248820202103052300454248501928013731332461501489498429875972199545028742215215592014056650466446981640078014615455221135776736434555506160672671055453397188739376527065005440261929192840203230295363156456649639126905353997523552086713365816676064842447992417511815551397967676962018554260016989584984162390437736147719108357276016634382602071540575413285667790328017996862877447950678109377600413031148161037335293482942408930190373788823544707699184646427603813514821397001213840251104135001438504029058225967312113061223812866488537910909927811232826493381932851445030056638174489380798535636742055419648036341015874389982192310979886787492178776617864338976399094741493050066821828501494902894170492098708085819818170689628663886091190040209960175400082511026142106600936733460488162169914836394592751243276325158266138637235489482912338840489365451890206369143838917186085649544684071447472176070118788260129409687150617357736819851511851757578772817280224141186695567979537701594996424772244374473089155482853382218809144227581159078893343292180762989147991311049223752769456873271413739658332761557884711999229743632872407325430511503359132757496685082152893045411941613494824413031317981158154294165196680565485871754859795124992036270895352332877941214458193210017220481343265893349343450694603890386834473242911325810790941134899804020708376800694835490100628620254313152267610777013167942696107917166776244502892519343473107210754716158229225761556439156040022912031643488714811721120619549794762805353958208659484134998411450356683257446664882389529890420817001803466684375885255287397864172135197328623706949817736323962745381132555212149783698605817145444068879232240308824325424683938591185527513431313642131057281332562211916931732165446395778585932285076047865536771194414181198579678799464599821903018060841158185149044306946000476364780986762687929574529506371253029313402589182806161897660648652907389878814405656386857536593763522811246421450777095755233820658505529336153566371812582873802445577949094707584721328816023138387425494032713605126546688282982422364451687213614429653134507930957586326069825090787836144846173070956046368952071971829942799372474084056239746823863686200985777980901114406800545521298044222972312302434459983376647242734377151866748611362378070330434824223642947208210164848621989943723216387817709537749970832315209376825828363687910186011793865540300541863402439849449076782740782344414840868564617168338392037125384020718540449289627220274628754655282362770035619565091306992843899408675719479621708600953824600953078934288707931151754682144326669313234849543751183337511997185635597139186948968970731048666325264234998025114398879722847837476396940557155277801561046571928300351845898661330792797453829223101672467928972947286364802206338911873149944073914675205751573739009059785313618733150945399019262958583441746635203799321727657855563547519217160988093908982756234551849262389028694893470292780333669045353494387577069037527470569203110058121172016017936708442057702413194692409345374135524604649888149690593571684799256525209276243220057624168102999800609730253299574686781980179655960189172475845135032774151599290895117422841053067868180042102521272939536171300546091656069795940829021706904553173065558327751422176040254225720995414494106642651840762967874221508487137057462511029603373887256771839102864023022101902087719359030311303579483878139955230663446949767493721080778208728877758549676707465006168598636757969916837352805883918169061317819720139563692789747845970247585161645021854265681338793039690871458772377111471047855969862276087890093713562793452365491853048655736689888480201917913257392006762107272396013652022764784635161162549091035243639797761374188237499369503989517938448153494105886684536263470138554709114078993570502451308882748766307003187256124660554586938139672657463252618892880920383448335696997160019741771726945229566175723128235658057959846700997821093591626721361913781386846034975256452789022855576514088272117357698941719071847016939317014227225172292224455991559495627300248506565985919743990465854243450732967235246132487407018827163030099786169162268556226753035611282338628939504075894460299504746402164546202203234853068214391655971206642502412008067001054819620084108795635414401710083273088632696481146700197870220163174724185764914570826042615151620989668760239959105943777998062600515713208391630812697865489124475023964317060086769598698152020254135966500904545590165263453407867037123598524934846065055406055909323856605432876808683395809460798915216740102256158987734506154780548775232436683850209838559146406891581142360822598466912888580649432089645344308358419650009811041943464349445963142507047321095363281827314247921076343439575810261482418508383595124270080979243852677143485687499106420099087093680939066192814304768771719059108647962736176106028572619215562169295548353572213634634908567130635165688614235330170535255086618887436476771976351374161045216134671698808228518638233885502530969151111957609518388302893161189094608431420190710569657148275586318240068766164790563806331950389996608081940554234825850555947455368704054012234649939739284604865334579732561496744233271187732115524825686550822817504928019755553306360812441870736700697050501124914797100812605305206030011316579928682355525480706176831890136913985414225869325342697757176863027671874636772975981611885203007095666727668047195871909247986524033598075905800884757383312024881989846472585709947989622706337936603550100783144709509705543669394915562764423799616329822306320292370028922341974984878329561825305656347218057843770026370535441199051839373762336467929226079328588795411770739503124742227601208543790363545319068992629400439866133314009774267181732758321051282204953616025998623147467614622844638717474690360519908274934375550653352347533431834057591966317521771669145896340116760738104065634241058648787819432220687646906358980687957243977737955757568724599572069595791721568335783241121627757822040001295113322635102772839485700599533783492798771482091581756218347413589035650147537179052254336105250694776163423849290265651951538570051493877371439271362903768384466540709601526288541613773175181404835966553945369906341706567005020654231716458289757436523309679886471117827659457522999857078123641823493584758291484953421215626374474378378488175178542348907843687752563801857652036783794540957003761365439688127574977779355511563488414242472852885801095641222308743277566118360123478759058091716978804255660384088646453478091635968489893151108395597555542023185390589184435467857300918421966418917357241140005996957112477492536037226592014535075034051394924455657446911808832803068510703268649753728043352362809609693919516102640517649983558277676217377072645434256754108038966473981120984298528788203024596341764979991897096894826767465982035779715598767854219635691129653936574203196847496272993069587487365346413105199044861553864714175165019392995094523028932737444813632894826552774567198112590084165847321886169321291570907768315843102288996593115131744849490091521895415088421296869879350001884007517288694930022739058518859002513658486342808839530837307573082184719947478672628173561619157856896025618101848048401828804948571670507638298710450674989089912351374829280621813543350932596964209223441151067116268018847978364448979382404649910760813398923265052858359316508854984836588601134477579407471038464592244620828855126403567554986335037227452206868708106234157050497206822192865922662479800633921539859101225792164088291105089773903718033270737516222951129211909803769904733039451602628562893582846921083589942091539025302353631584058235925465988132950367399989744753356892941496525953189202156131011090344216564274505696668447160301955157856090724647168896875858050944066783761048897664042445985507648230631626614258945034746804776930271252030608136391080413312986598976014368628376350794985552293557621706429739822263551870126476024123416466448871761331444995286096222015682723366464991281640093084694201489337832473030254576501334222265068231587680857920495535719491265879623798482868495691276533664348057156100633579601972735625604982916932693217378745197898488959069831900305134009722437357951591934168708970115410254703490057923277323290153214715531389537698042484949810122837764121860683821229576072282581795109203035067269902211318035068362757615234828162153931292135893528989252066425709688098869484876058852746788972089887190570476961615356700938473106284748249840476909407945507604209131955470009593938203748127266229779071315400519202116613246472932238010443903890056346795388522430512264177446280840848780779039289369721070740793348014473091959281625731719519006614066970023858782410586236477931128860858176037319629304701370492685844076232322818840538051758442035482776628300886953050772895565052932410966469116422482656529543501841369156008367048833848275569718274116584645886426651929086750443967206010902791223802743410078283166047063876525878140725907693446782738407074766053643518049581794392617266176774045009093480332537449723449460359412629426022930773160668523367090914847416640613490261182969276099566932154344627437989206828355696723168706988541423269731631314329492251769724404582285267427083042305791593362165899345642073255560281496989086551966101285764841916862426934079851726786564673646802257125977991855576801236333131821651460149852511642003481593199813322317859088347778621847173895492203600865085292796567306485144597561116806673060947369518334774861146325141146578363516655700247707867306725642072408333798149984274904643284979555086906114588624825196540946024748257335561244070728080913512931314275705947736438380962610025676834973407477414521769095455173158721217826520397097362106937513639677280061483442806236154844300465007630448504305924145675936817997792500536938554703498987924177809708344893143731950855457680267346883932777525193411650596863082252422732129849491903313166950299779916359486942628047396120224034918180314439968183230568744596629670964353471172317800522525904622455989664122543368054136107794146944278263279722218333546820510915551980389760192986907045235202968926931171689528787516233919610144285254561678548426605606241400349246016797339620860568415619766092254970390894353882809192539351706227673482284343582199638169960883918703446164429697538045520419744817019985346122982336904083994547209145851653749032085843065852731168947863979171983517648041337749173756069408918832604491543896740523333664462627551784357124731563226961095816322186210169595223137332922591638177256293037039267973731199272922055633169505674020132393618044030799928134252661889500137221639514682927429840433933438319790585886855191091665605733681328760097381069130812157243585491828209915970892175014193232219855299180377353139475906203616843757749543217104513149295704985500049987732907296735134195241443521918197439027856272246335598279495751452775951776797655359285829625559296877644462373266306165249668321950354835884164787830911267978231636326918149574480550728157658888129074613486537920389339260527171648627616533635962461104532243013609272492187511275148622332141537392637721838046847898677695741941915650599573549944014420197364295304098096260052489101829339329447507956312772673519801460269224545050161602925368745139255440455470817066674274192134888032174754409188751397745110393291667789667648346279116976695316103484919015505120075373672746840959448909701911667850045367875727987239806118098914621217603658064754355343396848161259968605841850056184934408124815420119499740749804010693802531019833293566752149691330145614412207171914720907345479527659923640752990134833565462394294907395482023293473005671281728795131501715994544531766477375058829896545869084473111876534855344607873633680502530177055172045617187996593714997503547279437817567889415154888084231698981049758092481959421203379756308387194311244375648532489101011162088811378566163939356381539084731952224215584365578848076485187586079975193999783719120743027601583933597536384633253568395152576123359072329175983122754125718178100167306442702199989673808882615662776253287197667378027154685581526751628063943932608669936229390581474155151694192256735520444652883350083842452883174585872823060634048759137081358724177030884499852629328587366249934126014247442937275813702305751138116515363264575479795032223376344294425263914187277392893300415862589686568801593495699197178095246969577696850280973158862231916331707742596288160749196828700087675612341023476171131087066762102305615683622004187842133462792418862839781150060820063547536624848771826054080036052456986536704534910448012478019665704434583027865802621044631416479604004001744423685875166058465212388059609255580685184570892020464559718538836909830147936555899569605488630755810881457202924376409763612895953836356282111842421497331442035540813269766119415736364235505932312124532582102982438376324993909276089260884923776176676644205183694682522310256833507227695405960884418175965946355336486314651556448926270793108278745131251307276638089589599045126451481895423924860745350139441483661136937257820023819470191815264786608544419392036326031951807463834690806017163946996254580575143148251323219852211408158479140007423964781450441625561739922533876516426189139668875068759416916881742756071451323252915072755720414843271601330651325914425742235861675886906448825286287632704329867238212942455954184162435295315043846745942113139187209013339166124852935923445976958501453540494762375334887599097241267228536474005456653539241339898762242915693841505232363159053052358286705290808377054960110928639670008207357380720663576841566794189933927198608908301431246486444626841012996511833638470135004842482054638025489462376399523616551181711084609597385564783934882549984247675395429406077239000047948346379240789606665625412762611342768360998446886067290628402225319838007807522493488329870024114902163255346610588519882025510067759884715248794381421502452209847419103108113122495013117254754042893471481017787083019838017902524586541237129692996416236827717840874147809896360729186217317735672388879364492914494393389702605551452653230161506843090309020701683368844011885197703179303342668003962367353684553864689129597685200904991447601953240140737912785028768174773408184470951594883224408869439939175682579234306944642968875918535564479574889028171047188692127933371996795559587862093526844290406224204006659186577699581009323602704404834366509820614299199915645861675495572844990095275191789955529588162309607481473397092393176740045022647376222788230671876730973897454554057476371388307017472629854230798809213222791856670532788008746685393868533682939452980782500418266409620489350778496856143104484725522248181078329920124672411779526976790263740952706859654679445419267140589270814691994972341018736315677101049183193149649985323676125783881843144440257339930923471208263612962424660293554576691990687315172344004789833807717678263818610570342189361149035638169006192341402653263831831996962277732221198590268224060616022063178642503890478443064074884586243512741743583841838634249267146774617721839953091923388113031355548739820547819317269666583159353142820787662124145745189353457237737036365349230870175208340511272064621294950036845829225666297740020679192961279901798115537416623356919090761948005151417447762390247295603267199693819772508237524902615689795089999456251183722923311442903732713556480753940226139172465115038944521690199842210525232265806208444252982279898636462578493095157686494720957513030555868979971338169408016988009421571747232358287187945502889294955630078818314234290971569697774222739210712784718584532923924609876732332885985442052589359314407004373462406651107516248875623861548314428017094184954848704491800487150888865271058282864633382786378710858439933578513011737885713478985215864381168543017357493850844351385082798720599967829366145483126208834310294456753963177212974924692546186061228792992208111629637309469654188152101296157636073602595998608164723544085072501094094328460242794892072388594892071650186121004392171118272078401247566305642013404033743027258212396911384785967966599813109169828108595943446814955159587364228843612739033605257980776990744762386531053996844183681288336664270867500652203587129379206366898509855343727668416877542453892384892229422491505887167534359332984157848720455486656647207119587447123960081003320569513948890693311863694880289900718734309832837322109875002200086567042870286049809072764476110437887119804087506502495574136592584562863196361702501173584964717064616164508306323142090184170707311387894707484561986604547779094791712747966541399027517323499577251046210623798071777128230340058502690669134507569222382199027704167027683902147529902977322390618981373739555680533579955586864763778658243122560642509312101475501038888005490554600742963772003206730434054656117510611794415905714832447329819288852887762780691309696489124633744390242388927501484478168069753822668012605036223150230524892614733493368508981797406810482941771325828559276736163634263712105283706517699273381095523192280654522521339273206447152991614635824066302833091071272622251390426476343077465575326393421520140620426214517835743473523472049012373307447696542597860408099206968795747112958238673531854707927777802843703565737604746114922180410007910921591334777844188271143446714243271578441884508817263407387392981078263409774475882737913806826480875220521426104916736987589688739380724419173945799037015497086221027808661828294333073266046811437955147885374580699777809613148558477527484353520147007418508024473743549947240689866649544702127146472924931505253622024646048593666202203382519879221692245673403833911198608979489983680042505447689448001231762201713998198542163015819535355403886975243005346762682769665494046157437581806111965180270994178561784838481803008541940238363712966679151349896666065866372134587659969077827335774175941072280452053057252163960631287215088390611327890385227868244568128112258203925104603600970300124174544629420544865221510244026206645712691944971154552817040534247304582129468765328686110036023496953734293670620940851051016504032499266591687240664938222094380599132430230758651670782746289259336045231341479650524348182626939462381745220242683814470747676608443299402970462732983910725678697403743654814942568555320390884603099094481705640026568286339402556821337536386214880568180890269409473844223534037335881116407925777646719053352926187867939146386026318082576706531900218099789347395995585487749773901874153536560413564922943757971543415291329911410109746270984366897996466014758925217117809589533262550182623767249349746881478401103612159352601564401629306759534742036816435135491182785012507507405311671004818991261124050916036031682849398849314048263845736414394802393942380886748881159955504637501040064239562290339423969486936518271313737767746442749460151985635129024098052899660549767724828708626799311976763347562272338628066666579368980294176622819463562850266863303715262483292372904998391411140801383368490975848004980178499569846053740828500497114418501017921358199453370319811509793899488588289921724765770627566729224774934208615040697660821983780190673931925643099774718073961878741546514527868928746446629692545219405105334909494775222659659229176953394188017508079872323898631184256714166971024934388412289684564735548664804069636475067131732369373518687478090946397954223296060708165215894206524228541836368012383277301506148598942728035398129765881437359937803504705932485861678509325448814926348648013380892595533988637786240434095941057474983326231505181488393661920284020600922426237012636972846710579995327084429878627490944412939889179423433739412764626444750755216809241557010349690885173589418467777667047516793322613889817335884155703148324431522041335965967816076610728926026774927289588261684186767392427067931310389079986292314203008944320488167776172949261312190011311435606123410134181012677608351206848146058465586725386297933493158535516522266590693790584128257802482287233350443463895358242841267372818656792259855605567018623723284961733571716919743417574344632881479128854114272944572527075823104565369110627571074742086482123486949708657095153631376960236832035928096386710064526369387963162928126308275593505702338258681317072553252646692895007731919301748754749280359932275788708900340511007269865126689742899288086791485630968939686918252825995054063806654614863878387665355112939111776676953057350260694607593379001679158358164936052062574592129635170591765852867966443797893698225246338508385746086236286676678259132603085601319773768973815646345994085692704872032972116977110224927636392477665388252944255842555120460668059383314351631260025906867420625422801553699123350251172023558304875244845845049398905728122342832732154961108461315064456724818873701643624171098912541835706836689503360111632691685390000278005717890834764554507708485728527293179831707469132776451233073736743412433728870169603701086407569874339026488029104888282431415331380110570167863651584334145550423125546546384166894161544137493158347888075008960573244060327743982911099745491716779954597829247492165962865572197891907598644998798412438592698680151550706842812895888455869287698945405890694180869184490040813730652661021228473131227140960916439903002426276554755892866719070024445737766302986717502244942370752201047499915059409733340298560821333486343986715158718548913290280493552771802763710685224752438140709192570445625055909380182845514734424873333580397768515589112072509312464565625286447190215157466896991006981010554876467778591482938188700557358123763265611273200327579442828930834333107739639286797002367617170257319560253466530659673279096028649687128345329456755226299973203399799347457173038536100050516092567915591502410729659472949222883459078640880794733261668258314238002536993284276012200193149266291310320877199242710574090805457077006432932938887090016499708616724149501703191385711215159053258977988146587616973836190247168098124804352382607652094665244107794622808555431887962567315069384300284171485555592338405205559973104923695634805939774252650508894840401663185971728200882908797275230739866656053397478786530409743378955314019902210434450574617445878225931389375247078257253091985051339805522818746203489936003774257836510541074790226952133873224776364062945668698830065054764603138502803424572354044133334978644635557768258287681643996630180813300196107561385469035232789044944843383760827476872432191743820913464388272396590289536269338762446966455870961171537309032652517968934728506435687678490299110045500440502648990813178707735944078851671622856232194464240913183540872299131967659344066920511482744114856699491797578835225666905826742058738987043538652076109441644612089153250109271611847480664338685499895268164589134466173653336319562877221558447711050743483014625853746336665229024439769155733551335333698937844665343243211173202383842741309105051066914800792547935867044560558684924700635317702438627353108534188552753337364264661458651341605155272152918944538976366486041021293333496162681664888390120662497675479428760015615441390860885984499116610272734543740351053717908818253782117130908507522239517737082282958716137544191165882648868201905107606050460369795086866312508630629886389979342836694274597483938667269508636589113943109323348073522039401159674140549936083090869274170626978157225354408849136347479014915726816452411939202078467804915991363992470193321560132504678307898649648533035766070133655628122952497357164295630926079557587594979484925849207325383658207638492816504622104323567440978132038905718229388101606243945045708847701652745545101288426161670379373080353691619156079811781623609703804722425246557669746041783940735319465191304628019570501006703332701520938971712233676808485392417027304382186928355966843998349340948373871089419550885547916773413103641327615196371688032907192961596619396578513439909643477048713513374869872197609582626098014081469329916584666500255387107663162589255378806943659861644934115641640682533750409810233751609348275436313146140048686345906892459158966803376540549973139445510599075954398604250326515490255516520519989101664283631698571620631613374261416666079989505019415456007881609031015402164091441031051951393209462793555766837100104900340484924333597064667892704117699295124200710361703388055681754209046218946404516022615293501943570268400274816331223337987958527355186245336902633130442047265039938513642072926932158923683817202005807595490023632891050556389911324983761233904746934872442469687378101198171875724580511206621374385427598886863977847224145405513520254928576297739631346898195160061185345518016753855297361519284137147998561578268910569471250940567842095123334640814135715306965002877503835401349389038250194315934721712775629501490208694089726360426495835150633973333406724802006815103650229902764367602616309439220346825009200550379280359473851300525810591862699928909795513237044951903000022231491485953153688338914625652182087443250812370322203693269490336489387431474672970192542764776328263878777367280599194491629083579337527629122815834806789538765873924410203439378632824397311717988606355523105769753148606296932250012135049394973911634669950424240171598828423830406297819285400646626615415720817199693095989153444578464791111070032092928680190950127896406397243182444040543284620593390144356123847639849112928089152117634458248654596349755377705638563556572225174708505008994617295964656645534657891606686452531799726205271082700438269828398387748029222087201243927989546934481952005215919572002951431352214904028364697911524157759905954378919930710019646269042120370434690268451936057503866024999421232835496129279002834594499754292159511774949991962663393444351030493519419364536637342367571758252589444572623319160225629481562219331440973806390955329963038936201853030128334204376527246137872033243545486305679961334348119821174684846845242825262117737111200316168986897071135346028854838030525714145402656717146249318810184063304120933188509499281638171241645901359769250949020019114947170377593642206086905153922899928608136580825138504993487974145336393023695325512323137031177303522290362274798055601764885428324570543935681971942792335211127870506695018588525989362049487835523419643988793179972479205873563097157755441163737805367289403092345851383932134293118051902139948450026542387634824857285822534243702796332062109748612255440430467466352155668769951208709455871189201490213465780811814079978212952016607500708522334228222374648580433698129559619551018247356624013605080385695221207927175048142501895328284608631193723046983462626569836418577852050050412014038378764593341969547322921528838822261214122300653968058129660900503039284367390342220617779099621739906229520656649550834933767510977787355776419646360878409038296795979693699164465257648351703289502150614862295933215322273694532240954712331481555536442779967504066685340804287938476116221622014200220970197865469103532345382779648783090041732627098014705897280807739734503797589470345727369287560807852538386425507747699749632431745517254142577142023312833955023722172260929808165150736543742226263499138856576931393746600528880893477968479570699731017161822202558134216306593117537204825494344409475419183925812906536600088477964659475571717125616599637380225313110200201986088232422077916702179502471215276772985614945469388668207328520988699412365211947724341018811013167205826865746057107168721375984074940636757186330440257456518873685525511334868176304632401904226001826929517121039888028715360142157946172464796896720650775913407819334295997290577612550295989991833053658691853936417792180942487674382164231211546657209454827207901733516791870836478995483746514979266920719846813324888481440220598910808488063543328496850131257156758804313849598755379279091710872208044617129766921098575191569625978421125702484055496529556682344738040139353826855740388578409064569046300734395817710331688315116583496249450843169025781704752551967078174623389625382986449141663498054440872646623378636472287152223379794487497047927367070727008615833136693387639991967124242331805171681315006279070562570982539357960855774672397258022024151020035724959235704582444111312903121083115782120939580891736278536375366401340033085820954866146777337826506690174834844077742217328325317656878480592659070038926335351790862368165333274434460672131715987089974547199275013682405507768322577261873646155842568342739690783503365200680133235960519213095415150834971303017834336095555580679956117366728425304150582869229006116882600520523511527600199536900638546038612327307994940535873006050748814595833296098709772979930607982540300812678291105798992630101255109782799228707879401208622349397204732051013219095187640739245521340975517590962439686166297107983069418220481924332573658965262454334884336147282827552094626505040839710664427019032638477493038809763348263834939546247620090838370298349195405427891085569766966344171875490527346377896038221193138305861802129729236644474214377919542523115274082353378480528170690454177728988993424816552953307709733763096341703411747005461935143011294047952188574388262580736996719878024949692746692760659054616167026657450749023770999884829600937916619729385511018494259541176373459265367772323098072262449443069769769090695997522438730322101342276965887835759234564040491051829906947329416683263261117108977615402283840542030540264644697487974769841586501045873061667328886308463284131392089444264646350407738273841253914104770044298048960472779642231356616505791378429830347769901000957466513284361488049266922689273299075262456932731893812063476548204960854252984941736201441087495392460260242774947873707825183358990286563556139449416272701085632993610413616830113312704769873254737407784020618414745500093178652166345469172587288314467811421023882841563010176191268621909001583756408665908408480152992744898547043735214164718751196189557677691018234145353639730643340978026392835368380004765091969714507080431098257036668139883292067582957371998707488179006605259218027331395204670354456822464077384384560131739672399788201840817496456790622135983684862446724688587981334305562571811941907330460508068793468306284002899107436744002419558276238331704811643740245488718832686979159930665877105558560064200438703312321989635501979256506474986310221625925084700051982320255625675888131217379692942926143258090536187118678496472651281824565974320855518376621007883670458968834999986505156328839660086181968909048313605935214753043050067017261631063643443917185340492053395002983005259355426439754342337762093179705376203041989965995819064721139259614234862012939016098570839745968691162791648365651112526572121392636627569023711704435784225378833057299863556983046522103438017126240701998096503522832426407766276040063822143837508434818499806173291608869948188660209415878384062064734814760858117330567209989344860718993303842530020469822920944562810032987761393879105724177039861275160290145327261458679163708615664924330784967841620998263626539334481677078189819693124390191166582263020314343121827336094202786855545927880006537615753543696768662798607353449684608190531819167390985163138499412862344945978961607023792564535327218229831850231748136398366475131789152238385592884689074836721225029663541507269572093703415219047734772371814796281340185981987906431147398868157588832477791645166155250415332697690898076352143408392792972291682611641233638438713184694940687423246612227587656265401647836624586530243804305151357725024404792147796117461398340385183593005591365992685999758165320130670802047422374256994272069373640210853755012606639896744655514482764445941596685934273876143943233247719900821448260732432055543201672632457477135529358436792676536153890825352910234181076315965513577451314155173692046192443322243998700275243540543094088520711630765702908607703153894317794805195105140268633673305816959528756823037088443889909086199515036191452141155205163488674034217022642518521954963588728588450216247781038841338272570710340722633484994935838667020264894555245311223742994826681697436730619637067944313061584013135883253755382547346395745319867032974796199005373966573115354636663439581169443030896691975955656346407072667713451708738540271624524169611676416403057378984184596071094899722249392747394440511958818401491247495326966470707554914566991965760130505235178148081267824707980951512177541784694309496362420859851809844480393001788867172089472887597539055109250051375387664504261887838239648064465459913223075018228061591631075866570917204031763580055206573986098387866120551367022492936142823106983660357514653174323240948736166454338374401434059825428713573315541093499422319091897121169409625585101238499420388519001007665152609893825677807221000918157542291551746517446989963652766341457073667967678208693846623594111955017744829197972169027809685671256855845576005559951404139783242684389002281831070017538622592476370898966902880763264236557873633842535219699151528677967459342174663723379785753499887145748627740770008335132197075494372629182304181214943007504712457345040715292421156699614044400387019580017200004147138262592229192975261188826972665505105999685916346755158273327806236943999367280697631848294719934881090262326485689791388410202189110789435443681584963263613369305715955159325408292398607371894132007151111821999885068699881086963918705954477763422849275356875446943725322662568379338279437624994821505366888310011872982782824951575438252277147512337312472983075442032011311328586833450375507650722110950569783873634155717906555966616021292492912498737294131037311796207100796321409079770692918760079045341454977577187403249935257364713968096701359298561520535978341598191958777480427057062350271523414843551535985342795297822482759833338398636567605842869757705972753951736473625820861300721366399874310064155336429985446131513964611471275138818970860570148775532688686983613582477597459384900940924342370240258519227854761072988489214355485817747604969898662882434742065257409931311296496297050729217769841745699058749307840179314477761968095370774290370162489455204945574205208419509279704233725838388220727918925066625574799956109310942674998498634771666179531038161659762464855508312973257519115363616228699987555030735028316525314056586048400595486004776466790089064316087056058234958960373621279638238068527940942426948785528655689654660933595299494141316218761112861259140173166767431059520639139714579062512749476150640539819539178412071430536682768800456006592832491723345322521580984769573603427853366178222021905793030626424035101794300084084341547703864522483327430140230265864815588292278823472590296699163495252407516571629420206474540332296569701546335455483456593780963447646363879826316989884742564553502416710473975367349508222846131237670923743937810268443176789011317876036493118359918237020970296829137868680498751434574321190164184476092367971672877064657069394406488380171437822136727281242361999703091955843335604016898132882036483708795851131729895340107563692568400988296293952692447594004995470410535981755681319732159043447191654182415301430668004585589076862759921940583053364344999727619593328722936979269766563551608155854732358250800977662323550622986118042546650136182145301532021247706041755218294844388031974524180943936497525553323320601467741815739671252726889639251290510573534595949464546918214533771655665240814819409421187908598373301230391723789974328375174897630404283485201891547836897274573952275045393259855839390205380260991089923453918961888619164513475174980661558137181780401175970503811125694374869243506194533928794925822799586429169138065607961223644472989824273991648859015365500698747591127776540874379966797935230142780418106882583856915762366439913478058070976644167587764107895762038932486886796112638716159827103244252694427610370201031184848942091679649319977039923111724217763645799602114811470235314162807960998139973279270917984580809517835535406673995358367976310430108225791148306931796336337363703150013580304719421223595030237447732554926899500751032475859216540605310294459115324709258250365043476546123358262095149328243197559485301079120866644674418829911222214356483145999326856317818731279647195030058570988088799950546995469277987422249694513556749160946707235544192357311684662489878888766943477057445512519074619029403522589286521899454898768117237741714871743809584126685604778923657859118356956256508485788405946291710325977340241200154876994675646865551804576042904305393344328357655970675839178813542591578838913601091695732342405976154980528692980112062369468252230507981485063884700569470650808210896046979220616660778206427931647970738250168546663546375663562820324836015930795354724111930338580069436249646560652243124919942972623971727945888044823998338579814795239590804600887164625731644209181971405959620598488334048988041397121886698319004424307727359752186843080574778110575388645484537743765014660646468287835609318792457362551536073365734249543155085288227647946888327128520950851155552470321974718823712923489435828727535030609023542334025668863895491587760020027021615140018885171383721631825079972669915005784163981209926125148281330660077761374810242751331061046220328466732662395028767202642291685606372467238141066373501005701327526795053092365436516497904872790010392443842350107896865762610002443309402750981699375099449545567276964136091302968177672230745270394273540866343984127407835636743794484759666008126371947896422107195653297390559341699762939521977974374789859911565800754568767395478111366762981145740017406828384522925521080358076499285949715167539444607534432930085477440136648221411326042436445102946876882787410210915776865089350690310558402334811363919167815992214410541956541842827031106361074316356334034726993050453143007526792703341704199829813568256570342172679138934063393388100808121191871703971884097849293167421656979771266995965163212331714143643285113345027232346288114544178599239587120019232723149500028101502536380893450794787578856300273766800843268047811274803748431564815508692989378268451923060564047782233511024506071215121372931166941770624221308314679034402083818586415905371776916971166314678347139075236984202263937702452241404077835846421928989307505068393060549027679343398935792562689200091861380673210195456051447472887180688280264803352855370316564239617027946442100810398660136467475626816927752093288391568453681856218298532849809205602618163002729345009016443780843674809463971783917571271056959663376379852720053218109743313979883568953310593073295453943803375152721906934862589711964439044956270996733941600600903302583063763122381701730462147336522288950489060425795358922021088858876287669888695000757660191156001698287658340774442530308496130811642538189360515522737806432667002555471083514187822636954056397440512684242626719988428502462837143804156233904339769686143129316542765972699094993163541690374283619735297942754239956193439762509643379795929629457672853891808928015487944618468218904410684277202345262345367193937825582969946084682257593705607774713641552745561868963670209293563315311188999476781426455975572669195414681681877005677099449517155640461008173069457049019452167687539176851251764243346930080044518831528146692331052023920039038557461820174415130684652382244525503106342251158655573670966840072972804674332882023760550759474464997489961569745624521350832029353936758718800849405178775482682050295108830120047085689731599512809558718579334944158654431188989340427184755004933401513823681446862746619107682209881559478473947010455072615702247980049060821975945822820397601226691318616183013273694201783227368213715989917860011227311098139593907564095162007009878467444676455214526307959529656281471880928391211780036248512034204917618859157376574085564911323778593746054926540660616486190523806713674776305809125093915720003841668737417110883207261780655369514921092444075022604436805649644752812539084845009471703711571241382535925844272341291386853713180090042601274077170844602036489447379396482206697189224045160811422631114125234222338850302077564713153894983451476561373908452701979083602600300029157313522949124373013631520554235424364735241076005110187360674123681834254519230610676624612521209373613839324329279200504241913431650185616760670156318126772385701615812513591234446913985354633895133047979135550132037471535437151476525667058169445506578410753094391418297768365502082405675053653308840921682715275038795715195602767256298912908725986140592212970683513001516524373534006968699729501032086963136575981371222488751779207516574829782314202016841421330417923809035338737896374132013794890378117362712710373037882058753713171726784766881628411954662553607133986596102174997411423703948270104771207569815651484727028798192300795074212350495941208395245721074237396454417182440782065528282885760520614581594531405016985672316735483200312220206218603320154723050782062758897082994785636193052233650192582843705600908893665344809697739854022560305050021167733305711949454741293160258898130428115768017345616834481097682875170373943705058192997173177377678494075594782354292721804925538132525945632941831286484796834337331785968529579284773107813400245541077783331399298739390590512061468918370656771226880418463269833609338572568828795874729084937546816842086156328294358288565786076968265288145646389715957791670541899597378892385733636369820576790169829697137247715918852676081565302507045850521133781679637022139418798150576816397265589409420203265293516391673443412106213247512037558338050910432249112593090203806335327073600163742048988974672980773797889660692400267052405149299541932365346036971024919428587707679593684373981086027192356760082763292824050747166982996645059092192582795865407916666878789349961980725146679561395388965994408628484572194703046570775720565752269821564689131414571476281408387696248672795102040680862075511098044819894349876196164221747885391914275919104107257729813593373582701718849495087112240285110610756358735300193241945434806338528992272109636204450954446189074830286224015719680170442866378144605223216068077125067334372688177081562134020528376667046479378367540896605551199596958532778601760521924917578897948552940531371949317782272773944294985481764630810077784175919997802053551148037681228640575976125144487115111439017649689105477256078137816334534936429882120479829459093767616428319024304342483791002511966177380488059851720605381039736483435179049813950824318424986292719476145813227350337492258297691883196676140637515655855727935591726493303304408954244884957062854092536228315364335106730413611455837806112092909481322081333976331871135575173353497030572416525022622085324728233785097531102696728877765735288271548852731733902536032860274099748601406728615126689322864769731586284970732158860240464263428359757662297604194950319962383852126467958575041344819389627634914113776370208356083857605970335304108185725065527871469300672907569107253646806366277319562334380333249682740655434468826567832320121678733194372077319013324403939641996049078370136437835925489460233905669869023904680182459433214627134925897110233548711836020026943322850741326046995510225380063587206769222286146137027238845276044197610996638097734447857603060316828914939496372184500669591107493045616503842832978971879294514062323177846613888550537633845521201571738325146329602045977945777108886186173797286540130568417666530542216319665345327223260511551012097703058052947030329907407205342059241680053329888905586922434789664590861328625786603473948166729700560745676320936110497303492268933575350245225404840536424969310228421745377656142819019980919454122283742222033601593354627601615819608505000580492602503480290859580905218350650104704470864964412687376200833211548981144615207360413216931547586143715512224251491823051227121568867779659621796395392914422753158567539089646470796619773408211115525486805819054296634043961070159259559082448712970152081192019527384087138897694410834229461007991866262824482029342895819080521706518223564178129441170151831268304367476359288240497220181189000633430898143745315702143822243063925659774679552841075391212475822994731701337557942988740499585347627507252636991135595994554424177534246742207307886168326460635086107978177343014064819021831605776957120138498965845827939259692236906588725138978667598147029866644866514346597335798412435541576590163278044235071971237723119391757227524737350253741240226909520897185032626892134462536071405252009782669751260903117628579633668199177414555260119400189974385932572105195712921984535647534168455305118462291126615651485553404161744045982753145864015506500147398106789301888893353073356462958207472991924001805044074194760443854691723140173189756690090655915406575981347133233160778549874770215035696754202358310670946792524961071767970457998337682794171501805804861442792362482207279562163355227272325730804578504893720368034367219479571702936627636360587144186613884930948017890091522421783851228190827347733899646405119837475921853907206933074106161101558422582525971073570483259749675664734858297189799322234603212004027941688101928594157113084833616854972573556308367146091771859816511133324456937890631929147555026531376450917302844291904527547653792165172987857539155829989188633736710604683351900085661520972827180144477579872730532520263026605253137205856330894816969996348059545377004674085921719461146091911745793381281673394132911348040174185042254675801538054901399601868930768164155412864062938097991196783614322858385821150970044735143473158149326584678040820860791532600271630127793307259110057267973657266045997412928383811673361175569248853723154553721574966509007432816015367927542026407006808079892297722304321104504127252435291350500053247174989774391161860672013663106146095786559568581079895276933111555493550335682931204840320640101121768658220300790490431856983643082705090530871512872528752864770806946574919151396116365951552813952767445785759322207836919192826772818539588037210000340355198582584044205281992494300731472427506234132414793281013117927553757193807020410156535660740532471814762575076887787614032284391557808895008011791519286805816432180121975886036420393167378455885364830072861089619189249727184806947410466382645776671205927032509043881965268632732792660649946133264547379984125411034465780146214957501097795780262283550820957966667651551629332821358972842677347594488857037259916348987769522599635359145965868655009468436268073625912115659759217264410351851911756197172705690403146737011589714819460246077626894211660660910336028522062274680502218929336634977174559852445654759284286404765790975709144907726965229650422869396359534253896555514137398731598882186143755539029409488496949388530601929917522655239863232580092235671839505979286509069724936327601096292118326259754348845920957897071235612638626689208026648101456245145897327512915585439546658768956399160950062895835251874162409693786272952246236322852392697578272734008549373570313748850275409069755915019809908508386802587583428158167150246541178504750938451599588130993751209826627710316874697825286029301586283496966903097898358977917407080782911254295326232573847315716544714854109637537748170785574096416393453295025260133278632104807050359298179663681072761403163305710392393048077750333804366353356443842956575528458276128053077848123030559849497822880236978307461939736875467018202100489843826963305888708189286086062079635104863411882219162357785327179638879343268404811248003843540829902313712569466574321911977854465707918441491443657943601106052845093961472121452819028414704089741912940726288221363996830575279121628106584609762387329616650171490454641899293209966719519410893883555120013975013967234038662002667684587624132965575448319072835941896346173837031054355334506577151997879881487661414356122701458980962815981053250189238149042681713951754899892015670967532243630408860036980902684937797236984616354882854784886383672287621372956626007616848548278833634053702223729945245448559360542937344113440616974360166715825215408888102200245534192222744618939507915342780616111474386484875985097183757805642642102916645722289525456357637610498305583851239040267989719356399438340825834035675085585974809620455841121007562624039138656653029024655651104171552642466631065013435552490498253174552674945351155240983031069373362746034558931052254138239548795576238692096505402757699336230971524449564489876897114592600832514030801314030636641786592741512873927033758539940701384667852102293791519359680228152508338164383173699799367602125366088682573346906857809856018672888603095554854197460083448695029631351739827559196927246909212898272133453274572164938440073323986067227380823051541041106009707920129362341741540774585822615578610315668938611442429537182554832327059625778257587227273880580283513232181557544711435398222510000248838544911261041125275414676058278891239135476254555383800803045938677843358637100919602234404575769686621369875443348606906221153886876119580199153963244232886617807009875236734154330015790714108594939801903841162012014981538376683478827795609738804021362265355493883477989864673470829563041013457137423144968966804326022061830713368581393727868035115387692264726444457812591043914417744475882214030084852124966040539437467348009014221215635876318580979515422779342617469526889419634592251388894998095993434748012302410977817374549477766656830463778291456904375606454257888834432108338977419046692458336615578995241758811082621511935603971631664780120238653571592731422471521107078952128609560885827060134070574007907924090499626115831601510355164536647769044763213199765731115593946941259492029978179497330531466676035754452258990322854145855355796858395924209124939646673458735150966665281162712568379122875806104476793304956863805457399286604413616555167954412358136326076196244139969683780273371681599705153209823381322515292156755316454459979458704627917707155177729745920728474253084295316471127245813232810637598880030738740478372910125922408470500126744048112922945168305222391670741486192813224129824735002948084993512153689109798961530676616610350603006221179685876900473555224335042435908092216532762034037386646261105622551435626311420589496010808146449711061664831086324098518773921982303399542047841213708589762780165461088069478002742121243477049351706643099355347984655574617874852347076502347259343374593811302770062012232941746523907375974208858275218551333530650099642542375379200031631608099001217158345986482024797307605779223709975129757777667055419250856423784007743193765959944046968906002809307093080289853849423205082315693310013758953255317486675948271614445315224431119642604667892944905436752467918002870362567706539457425988709347349581966291079912495308706839947291614224112785275932946770420515988697681901834889982044734667851760908887585579647993085765010828377799318625115019122411238496511052173717962560625484648320660435003082992833733224819239799822797543491789156804874857656164586896247815257820484136551903575191055233982178401337288947639733807867063817203152024770321599301674700520387510180696104235548074901051618362122392569675551520926404102079741731725861005831563900272294711524111986118091232195018002825788091536082273019575549253979736944660478872482898956750652193981143389276133058158396564019870965597967306641089552776959887604424868436334836293725920392245153814929224778791435898220920201871336767792523818474726637122665921530875206303084861469324670189124940982268391235364447377567923199484880837367462531076662569855395207357353988928373867966904480562916083203136671518107554723133867966646861717286988892409437013047912103270681507064769816079174788399456840253579534916244269645132221215739324067337367585238641744756040145730593628289114579115384026609846096696441874522617225765869854070644403701188233881543933909766055133735365149694841614226170529484899434439751359667293627738908285969429414617211290013007007461954572254979519031629339472175882632014610406259582313753242120542328995905156327077285481073940453713899411110835224065923768652341851194937766081918391982912113352690471974991079889823800100645190905825506565759107322230309128734070207583242807425896606707413495471245041057997575359123996457895316970740711870216470992105052073386913157448250106089264421202280892126244626068884364943613697501441206926437215491831490635397306136358713219369747834311613440138079623530705842603340875163468823955650469225470469655205530821008650308855690971085593887572724166170148463008192282232252033986408087240107208300747264437224875772067564786885752010785287530161849802656832684958929366701372340797622724726406176535709145203554210247409736608354741467153763934458070875467485443041715425499948178518499317261333629005543957976541082591172836407821849391321841349039607341469080220903316319742001249145435636848862205395480513994404776257484371125891674312360520251337986828178225006915048333866731358720232537143576566891199891053575462616333830485119575992311792499995569721316021828377487226889979547757617200296088711620245320872952913565659616516174510120621616046051951219117676113525070459683441696443507994519310106484948152596844393679797349225879141937847058052957609778190271724104006094809305812483649552079971190978902280714933214094026506418646658828795927413594478711960179732454301802403428883764183732908184282418930461970985451551896313390966120190378667179614484128556661583917654988106530513645192242384130576920839777105142951613644320277194567975230820077350776270205379530883079091209829933741895166564921534484993416809075003786764270965475595798811763194924320600693548334127445167794271789094423971955672098862673271701272129185161968977428556927143598749001109498201657212355103547861912188566234797220961072811627826999378694569540700949003197545307846136150445979772984757921085982091138701037238858657251954762627293966193091546880787559597554989100718965952072052557639191687230237657197639424130700584720944419505285356047963815976472858178450536176163802884151885179214252716490110618617584715862940482526750436750518062459914735717010825714564189672295842026126212241065705731005900206299378249205596811003433907760847566904123841980925764876444608397133581076977309646106388357350499389184811926038095185473922144571367868596807401469426875227723320405294887778459575184728688426756056988626257486506753657810765908369731970411060372743929628524522440329993755020303913797657194563254362531332135495479497129713448384109759562466745696086047401081027545554908834900931815112378957309125705560453644349016236368660070784164061752411664879240568696219477822121769460138663336313132251932657541447208645295695897889803567733512546060479396946039254438116617476856465351632084944616501206917142840102878000239335987860400589854697667110779071815105559838343924377748259717038149058020769200243168994572301205784974919716374637742579498881413644632855244530465325809695616159113204562869520012935528363311306010055220431740229090003377197864807261256437536638448514599903032603553492052681668049475195231383500044408598455245119363987081252662857149519015036048296040377322169656876055237998054010923434862908520214802241427735655529286715527574309010239358205732164704901367294979735125445976910519525009773410462977654339412845197573724724940109289626275250103306573296977269324775976024004361811978888846106030206034291639967261133383367879449186622555322354531211340003582732078764920174296222216979969353996088853018693500013542695247870360209251808971475954448341871743437338232909866694118654438593651616244507799503472104084669163714448309078160930279520364616644304371195314130563534816797783118599646479675581632050926872280018588166368907743100339401447222325402908726830511767332579675959137480459258979209204221841362853521256935495653586809423891696407272357614228737260647789985744950715815025564301325927289190438285810605050616843528243634754626199543278170243042310200599781562930013718348132134972445630803033210731718211774859205085043531157837802339277616730558074855657984666397500677324606441707893128760927415982465741176993512617874106737183187381333343956788361164613426507404824408554649749803004116473246318244848269159479979018462529176199732867325911282261304316568607375371623102665247945824952017414693724332440359032056204676701057173518188687914076162756816553509018615226914836307698482719919396850720974639139562667578257336035567491498773632197112231449387945544632321081327049548752917751983634525340600878831473556521595927685214043374380042127966264622450568636896640929849175348330877990046538737751016099730920322409406026189290904454154366804904706098018236716445659211261232603631591797217837663977552138600358084078345582126554112129185071908391612470745794701706114323891925537103241399141575665431691954127925299666165254030680810499704006072595276344977864230536233245736577033853364530168303852520291135108339105260668610809412646138140417283027881790401440969193671373689319814112077199853785331114321598538320905362361416943196087866191945121446779755003373476907836755881422649271386727898161390805473098975002886254309244472566170566357887134361111981750175299191915205684907714666440994935606506829812563779119756404258730709816338221249657980370223462278780487715516935832175926963737430564970733666698649232316565631551098576571221157679312116952140371628688980611015839672856543682394323840824075423521682586486387330019343967533078962834471292272651256798464114289118625567875183847294720574455708224557778889605978100072324565758665799376885723934524600847491721974114021362169745132448066508548334404480827553503113984424249273642160680281489121216185497569905442746467322469863392966078581240254089401167521897972470622757669331130861108436878314630165263566825256460293905110996336002250703587019297119351710437224738081533438477043182314276304039497967135918328108593896074803350892678108617129853378810473639337886049341258913490930105676101389175945175111347385841370907906768453371122939783816953527826516929114464304275483442850672764678302217984030576522690769302814613196498033557587977813118734837916587294748420932527514522752532024455433142318679185282799653532635133229975757386456143580353401401945005150213305474824268133862902992311873513635113286146983600429635403690124502995762945022830281903911877310371792201057315122444188272780404529490367915091883583342665445515143013902165885695224518793639443181566909812241233164169876670588417492816779902746754948501774678862210401261060588661731245973992310842065493893861840502028123317156975633088184438412498329962477238627481135780446153433215570586520827143550717290102670412921064060863799738749336594976620141136526831061451242045948317681255361122329536738228211932624244267253830789730022989049763885035637100763771721552705335676329473748804683654460503433363903175292602979390873139613156764898480173246269131755476152364487632650773798411228420497932206716742710754737630922284333828708170334615768498890168360456696906886875471788031417523821376157274713677723872343781308459942108372966640538916690293245918593446069284726943751210473766115985858913539888497129089584371646456999570087576741275805906954986706443447524295049072774206464251492195969643393523938308349528891448360314663600892086269980199479147166005561092178632616632638011118323197818559984092826469287097124061511494111214493957125464347332563769354241053457411171430535956915825600774957902331463468423126814806918364788275591743496508417833976320572127104431943650754770431794970328460625646387434288470007904137694705129511213707407773699292593545060566924852083685052764822697279071051210214514152155976026104628819984619312848149471889832093324634025831087352499650558046087289971884560873933805301451104522071202675298987547300343697350126514137112120735584240126922129131299703698443879008787730652970538039144858215035923181650447378364505905035351250546806009983621592555708196030341517968920315744680550139771901686945147077457600545415971843848290627005244821055240451578631114952513482483086304920037585262279098300190998113176568933082960395036376276210313737412091809197036040779385266991089879944731513947203038776339861517640595599280384396735423970843304597483561360404039772099231956479092603318770723914872537911353024638820436078346581263991460278758128474695452113835616831541130286654454138156313453550866662731884386994443734982695467511760829367195725401533023676709875311496918177897208992864769427633821483652748430836383701517755748495480131180807753706658736292512295741459349752373039267684861027575170151099827323108683749127221178466200992800001964037441968460195727448871538945055503456777524518422305287910160392636396191380774894604044595445776349658292385886232173433120129114648733638183031021644330953449416889615271536601642638282926174719268582274145945429340756909630272534070868473224711185843350961792678903378977182448406817188730437541595566277251895738457647969743771394830565743630300144979756926949370552591692487443539883522583515570610888675959358983303608752725493346008259385324707954861402205806739280355719198703107123094130039416150684591856075783488302501228495541182846279073266699704079799662885948084661666628704143988778347667880702140482547369108441680884563203323335572138769700619112275543882154979744474179784148031069250681027485370801497693118447609141695113931597090426979189640310846264669583181012227897903405346022864909028139392044650121649350318796371231632310031428863121217350668844188004925050989797950860629474074950708867385350730879780407143106432343872708632485731470279168798156872410887555409192803194187415402670020056866059891737320351218175211925486152655480868823827187823292685233468970306064662801775353095865299108693075415657407032958248283059838827191421529272548878550957917882771506960723224749841471679410309884266495427247055543069571391800551008170740244875829382589184736540445520184504251903643975258894861366750359951489715033357001489430966819946852514050484356795353706621373604264040895918375318255779340676203953681810677489231866767641790434579327702624115902332143242850161500545496796250713699341703425853776812165784962978828702877555672130987880266335830842905027986943047800680713156487233921028787939003129440770432467915617132101582224541048617740572740016181359160891606579173615350149056664384345660778188181911683239063394233979289235612703087419494088479344483988397970228098450939118889806249708607575335666434634787524081230985500607474092719600303553242535940282632248196767644094802749695391868185853838180796706388393558843063958948729812284715142226069179191055080756862029851200402398447256620103513438799240889739958917673190659183016783655508283901120300787108849545651234126960207891122972806727300683468441730220638407704990512202852130595755332801037141994766895177714791531822573278957633880781344625229834714364525223907239353140410362498102271491604141362741447144396548251608052426432590078335830376369430993885455243775421088937501110575457144587230753869348032925382551880014045898996381417988481081227243069756064328125396463173829732336053716874232704778077085081792705006931363131757161570097319564601739796443340615379732311491903263332164583388647123912353445141682289560928619925958519071329394289487199127678650939725578703759293770454266394836906469780337030250820735740026386299984644971928581364697835381562803173239162254590057512977479627090280072263551078646032740604747714378406380541165328421276909182966210754667734527195832829424717911136123051258423978299069907226849119344078871938451418616920453686613735362397492771788333111569151869899974355012198709238986618903380905507031022466331883312460063118176671762361403051184258638386652971865697696996266366717080892767638502920761994501559080480852218064233519389950731176831289197740458243321725184512168625057041104729272245213151839512810226407485364527999909092079689436002733390359861472975663571249472160173694761337782332875066351727775871305129491692952020525269543135207523104153031270641879201140762741945463720151421797207104713834288571533156594464403328450427731733155181067706382264657655864922418417240426521013208281687726486139366354987268429869608539006061780263426251235829149380989842347879364720502835069309417874815165382532635457442572374598486251698555716906402417439418384025401583927219937804390064808507328623448126197980638048031667440845428719803485140676288544976481628160377767318684710638870270379640613767955553971926535475708744790548229120244449178706971213392701038424696513858840602819019070222085405787112759937312172985191689844811935629218247812631632072901162664191403586261186959362319770499935809115770442290545990841443675801971821211021226694763784763358969960527465246269808903959786914555441192804500349195319472066498111183023242474793643141799346415858508730375013161676631690278390018655632572822672374820286060806255777902254113888903030973735617022461102011997715535669905354339000142523247035560894604080731543182376934720384983009160752554563210730884603962015914149911407992775917971913028359319268118786336531225415545651867825631686085024283463082144457931979801958328368336696151359515141220680399547787678319876126450014916953956965291537610667469786100269296167785549286645913444434550892831497655287270759799927250990623690481133387795371977791146594334562777476930561286311844276697005257846284894655071781606998828313433905415960109041916090214932509675921106534047965693395437924028837155664330662222972747627238248554329922068667517978088636033006338280101175199755140420791935431482614987421714102632744270855587923167808900674963055997782012257081272797248421574545469135467407317667454876922877316792719743333143163154138484963816998792991174190198004765825354732827957725248160968318642157078038559881177372801164646004575267972131523046302615464834337449233480070481114768608983311687183602317959152328713319043218713211813542236846191146313237069289684544014265432371980135537158504339066395295414183824288750594073824845073113034754204286116976097152234752595810914022810533941561876689509217222750501505950930311954319142491648310002622860931260022269112938366027288180330080981850802876707808924021118025976419090691025534244471054095091079359430899961981447590528334726478001589293964733753705026391792009573278671377793660741038745302101288372657973649926337442675258547109991662996709109388913333067563304951310885994556257991441759741945240328488532014443735718226318207939964042680854821827017741206417159222352463865263250890784849674827749048489827570639350147192121021249098922570536595204663761475321625998843612473958313249191181789744921384207947982326129508512000862123828713103249150015349126258570395930784038616790646408780214536105479955728373176155648016239409565732657748512247783610900011851723291834831946984493395780633734863885675543476545871626415386634269971800104426350150169517843863943361382961071181726772033084285699455761805601393356812166587742360447567515902906612449762759972571272452815328168986116928542252210283660650570041463898076245188673607201141074267747402871580548021898986739695118414838566611478708492596111847239743911705992248138243032273639981675185500090716189756716571689677227252881428583454646972844223674904137453089049452500086238728036867836279322795215896349985399962842273996613689289935696425346606842937854361337151329857670425355173710020806468621070900864105838386271682379435013192217421115484895989151165012279191072931002956343747176847613798748890833190373417238440919241853511901592008660915821857197360369583744162766021776471578355918697472315097031718930951519732451998438060613671429669909428507525911574560130632661303753489005755504440165571231954315510663056305296359247181281010423331678020061764085146014793775229729922479292914381577121433771461837786672944769116820791332966132685658704994932275460757251713390727882112395180444639361562088819182482341704804656115377552657693307113027376893746447892697887712811833905609558361398877703206352557951664242024840837248359199747950500441735930265012846482881148871106512689811503092180980136130297153153796740731249457140518035285021990138162669701389536829462123039587869584936040829675991502973483577313180479702841073432134098637829347986219999199092511041634245318674793044737227701467904172465442674687900751653431077272446839588344902532465905532761468522007031577477041611678948778733551858123544863250325493417525992718894613240199757575655642300062057473275870807313290615835153566951405263253305159372041156203088815457506171073734285998566325810876181744566810285444895000425606179577950748108650628253445280054716595308475115158994598426341908621225064723863215660838131530519983156497295874144469711335969627469435906613985111913485690791049379283626308567966001749341985645412228425663012105308813262287912624050307659978931155448800052473892428887851239339681286114982512911921439674260436173520256165223672892371048451769980912694469489952212956414316550951385145615186456767099004762738653112582485494270249582582133847363257884244541282306982316193516062774069485031910236819130971907158882622026093806399374314379217375719864343156649352410326379373791878338287645489391425519287592636670616780437142800648874466402247629147365664155317916783923152265938882177261448434089183978064000095819467728943985604686473225203122098813361034611361263633293581772537331160693336413328752303203512354858940957764896738989565529876189666377597759571816409345098929021050176733055856547275774455496246673275275390953333457798331148856686365981483735278700953138086168179211647448301702537691216789997080592799446892496836149166671189633967517397800793357315623291819934339728644052503288820080951649745512250946001539195924541683005751271233232867938022864721930462943449633181828368822471627905263200041728872976582728384153029945366034229712413567914435886179400626032591371558583266681660349330051394684771746099771657162236475457233226763857734478712819538049130314341935025304342040797482969407979874598169354687877828961334536086839513723664722242345998573477927174743555341335365441222887957010327903058457537004937070436472791842397106183492326848033516366630590136043591894873032186512183012127211646810082443814886305568026762508409430020328954507197152519870142353310250967416283684179100411626096812663927599891357686802039830129538261293402986646004441462666254688554231431662681297217131323410392212966745029299678772701852682644618818806431580196106101514542291264968865522590232096004316410951480570807455049413261724202038790729986172782486846135383241627457098677931331023654773555205317262938465501212284645011582199186170795425636515949307140434809040847977644382123773269386598185010319476639966388863574735896016956468481054288314291163148313546500092357334990178204461434235922044296682911970561582936066946424211720648965637351049351071317701843002818278227201810589460645481324072933451258554597093662249415033517473842397322385994526565799001391169232124518317515390923334176570774068968542296778439538503195235259183760266594690700644903886088128388114487080216756134893600151140251370804257302628485802710444733360152985597236569680954617579449700350527615405664840046553110737386833238959464455496846761059514805201278912756390923941176701452951121009447686413396639809511496433435816835033682665076035327588198209679757166960321984819181162737169252840728181658737586788448518631663504254967766956718147679044933776834614195890021831595639191276920998069655475145411505118357528179560878843896975684311307448228058244372853810677436006569686936215869713295979200000193990607370471028592581483790152999989777810144817458652580780424824276620568165380683766988092011326159284699922044580992325529414608114146999982352963914342549528885632801584822980403546795591568747850158854090799477229185313713352678847138747095108579413345543486459909770104530374156237183127167627291697589319653138304879645522973493229506884328678598007009274322283812565694746901339171668180060811591233371713684337893355983118733283831186602414367536503525122081528396423330779390484244087568703964839894043520180107205173611735707967557585371078135747442377167061618884771793366251246132566288909974977348649717570068234245534623338614477513595331706690742144201648194458320143492289643483172642526071588988144807040039794584777277599923803700309542373025412928650353330992384522786270740185805651544916081268732737577661192364556331638390599566401607694230403857364859318868599873548477236201830026033919364082325791288353521344325215380102843769728827632575745703350506715768346289927685123633364872363569747320730427217946123926810302632509938632042127527465554789252209971575943598926736142734236130790463803004758526185253397201297028030268665511655028069971739969221523200502166566193169515557651252982185945445728127189303733351533930206849342141702366389928675576614627620599339828866145376350703797484718024167016188424311649424543089958321599298478140018308255328738161187918492096263370127748083850900095185816702726810388564334510351059699090875093562650718059300676654488174623281879572614331447940633378481926257616918490221251456422708848104431822743450615320800639629201449243715348599906617994735264072650149158016129686934761175418271951792581624722703907109490315320402338592195094432605693632142359313711519297068984760516761505994468895609949975736802534498753513276885278300709476679003723611737668197011524137928908590134386183836046346887848023860139876560916375324046651827493170323257084417377990362686142114985717646386671078615529865700125755001226065143118893082079812546437727170231766900150050017079259105140637008679179785521789522137909240472282333536807670707692612798015115427289802289632730997638895218983110438998898018367785415521733846765068294955762926965347085623573969755038769223755271310733786421722084912254634515318246987898220693024006332200234291673114827417552569738426037459751206969287265329839882181210780092351789215736235769555324343672255327984794537321063320601239532902850665768625339489705759483390865233429467044957937734348581069151160883762330500217749163500925718421563523552735605039086020398860579662315663649852116793246544076078938573670123170255521142764674425822709617954642496565428624986357941589423196669049972670231440267623293644852561108752335793646426906598930117348658783573692858801635189298176069566868896131431295524294475258739384219254496564349592885553080594710549633619302240443945439688081843290699619484384255661028822776526654667385847138927123510049989061165882577320924256883072465555862983661102472791341192795740769863007906164571769094509021632114996926434257597295376135396059820472233407306170759582736889155994966294494009727255435394194601802705762469939819379233755084533045816296944073739645107870696241377631828457120304626757529980725920223326692330016200741659780312804746178703334020018008210209038766145132767809171464316915334312432528176201409219369338273239723089320746785275128881274047323234729468852909128262650549538465602875487367058508682413339172487273899492476956097838759163193025244910803406481972877469869946503330097151232908868129128710903696246423247264706677822326467376397242136251738235495937927498046183624608795555480932771397210166828588570038204405566848481204316028900156524822227080503063023276579900283541057181549848519867152879727972673856440021914313028641961586994793273505066052117371273262709150340190944182864376767809064876469374167684162369916611287605321797622030780468508918262275103992652598608368706664010973428110118787644176094383966293586389234052519777006270981703791647475441738628000030670509295470371238181963953094025452003246610883268183542799227093391522460489886096435814592848139861210481439501728894240945657555941943859257111684976049672688231977125161637468926893387612618373370167524079161778898307659157330849042364539474928989095345989614441815653951308505014012909308272786807148545081890142762410349329919061603054318257690674725257845712285774455622179483435001477231424106047182841707209582764025168250592599316328335580485031894552617738104228807192428316969869432178174754661785129068754837516448599362898400605052468014203804122740501276339120109124282926018483202507091422906679509543132433157352036198704115475195431498739181191262875258050975522747154815058781635265561275229682929233054471431526624521599755611163750285199974858153562319930454877833225065236564115969242302317375152453175804130590920502285044888525257654533249240043233071165648304455961013170611474958077780541304186392788357938892153693414217832779896769990427754959548777860528836920885541025991660504957969416055991325315410350362443470801747184516424682343845268297076283852450216020292619097783966731458538165794126880919481021900839103770383969656645607855638265222860450767058080000414508363315645815087686996751209331144210530716047607501430860250353299055801538120079684004112885719113145368690918795790951687369158531159475022382936673151668354425477709434897361809338708967038875101949826725286302038372830700016239997611880548272204760729167734517932310382330099624570905345324640561889401309008811222266906798533625013440970638757396391365397895136843280097137008460739190147527273758986180393442798930258133006868721931854575087004131942845764074823857478638547231298972874991555772416205304590960385478580963237029777480140903953537853508485681140937583872463287977901970662929173942016174283330379489055085585466561822465731390315325691917469846871564831415220378568381676072797392569360367270231798097194713833988736226067083971448430376749184466267597399422238336218936879455702746727443282772739614341239249272627560298680898308497219615558554614329167754043066157395601539868363766714217997227746795802452970216041137529541153558598187633665118560511876375384614149326420222632346416330391979297275213537972918148825279637336945637078561994785868571371946978823964570509003929005367150555356460013715409100929416901682900296680674670093099753839104109051092368136714276036470759491900776417772259224925578968911532328392839771116321049488213872258393627994821184903372906368515490155696926978598162899270537175729968585478979090225876075409419381573893907585553862853106672688900041720823093319689100466294485492606277097061569008604134595447185267878704694237975477854037297025436655686733158528965205606860097913340171517874649772621685686936585494854727320072854088498935089004348614663728184969130907783005310956434429346805695935667558824891535133014341088485316155878534491197377042540702031781793252296571852583807378431579529521806214972660540253045735291563871856838381652486462663606240850830518993494570907127486072253280413096404344701813359651131113641175674932010647728742503334439964797265485434434438612478416983198683032801355462443821720463542193760043134108136677266092749463314100878526630794853264045566070119980847323945510164013722910143208899851019334107622049018921359550560854610410385021197261547992521619656697363822669814268402772886182876814277119985829122728454308942920395158273627978977895657571429151154145366563071112470896824713541844932399350767615067991968767955274865849851682975289681156367830960793444916619816779318259450645425528223151593092754184431067877211551574922030839169182756380365177511738806954507961744811350788761303326061430954509777366495258084640479793966053276036430735811777763838359296686458206144733650420359099940098020828449101208776513926452219589897821659706063828667117382135619644317517134919749795157431719417118358636271635474709345220442191825460132912005790038283779217542860609855947071125807449305144953628646858251929082964679661067275508155597972797206196955501300541920963076537667911934941856020255237002997414708233154586024666116852745654780013748523021068829380747225548601315415451362796891129177320904455731946966729184612031096694334390054313045209758207384017949863702567319710757996461903242643374531360166845544295649081852712192564747738073126213281359558909123335532995685247718831379840309281613373820271810969565295254277504729917795546616088778248010956763885025867996561012533728545689407428753243877736107570852746618083513377588473039101903602943373771268332680424110114641988722176069288612738563440249848700203860066358792883125701735965489189416652669589685101863053650302000889625556937798860219955099950062203432618600776750043578901951238221563211808022193129535058931384544504042674271274584736383267409902083500167439532787015600949214860539498397040593736545066400428226451080497359495253187001967241889294497488331430464544437265926617229598923021721751197728902422811436761608959503583321986039516816793375348933694713720502231643950822756841026985938553580032112750403253330848452710588000631325110953844113379094653845762095997916327949493226173051068241566841370156599031243550327072811727800306223626089908168342604021889728577984650741125509626379186897658268489940298601255967606769452860990158144075190054698383302027951304354083939998383427279267068007607688119116240988961874894337130161177187998474889258644871228854638076038702991512088412665641598939437512426676581264333637742044559229068584233987245468015146155128113085239535345782625775345414776366554180878129824019589877184546115189318910746858599880150740757659262758249912863606471499304069566793961471613690124191194386183778476491464874691299433121190028709627559357483437156612129375005964734806485606879193732443606151552688071447804967516451591052562981383104356518810845702369057511706305565554964784305917937068168006296701293579735792320126207244021272706024193339550490845029246757357013443471148714266606087186694216136617512315260922809320704778027313221471508294105936141625276173058565853492864737035236913233317870935093369103972555810921771264469549604903350129743695917700633999505932718660352715350735183736259131294585581988585803943150071092190429910297327073883530468823661548271623112877321929326889228550066276600229488509591246672557195632851796116158460176242135564506288536825597779731209187647062757356804309773807562253796829836741164602441174462153448874192786614379603886246156115723793853637148955073010414078674325788103294464167031559481830754890945112711271310613237078891558164667837955829373621764508378291095596916571923202263712863023973487895973251745342467487059794331181159491761789012287289037160845869368796381923767793547886922682700223356596277830625602576861518436431760021040018828534080571953157355611587229098861746324852865798992471067041980500600482308478748565921207105059730074871038705297954286850034374204676281799369771376872412688144082733230260891826012385799644582250336748444794510625875918282182837057213345080640434995158251312297352989481711228921016959393361083147610288749543311286443109593487700574070236982200843657384043220081636333443910437513591160139915211722353647834832137739300784686183403576714537626439552209196500601975043333213528782167412046048629901203959913873220728414308594738319788377538170821185378842525027236718905862008959378369455716125984754737041445548504741909743025502710095500512963412326211208213712235929684586863996057894842697139236693483542215013015132559951013620499777608654085404795298993670423747762588803708520093366890279092083855498446955537748564608938790972797478332714773987208418727289030769515207285024055535042036998904952490973060843611454249322635936097855318160874542325278490207373747315995840896865426431302361931815385271628291653034079455549141235184098513934172510788262017385836163907293998088337153625861848040107705454305438088854548156922608188258707779524759963772842207790800028847992768632668036080333474072059717699508965701104578227225019428504933948703272296025042129279414440771311669028581399523987882572608263311786396265981692838575334073386495818419441146134575671712965295650201752102604518430203463944816045644075223636064316361967344019653391701705678173868059712569292961153156510982920663432363691417778311385937276558779348689080888429177539441930820674285524049394687509996040801853900048572188609122264196349008769255556365077052913771612740631340385932855616030936478136645033445387233966732514111867605041973365118810110054980560286899906943234510464965845931747262468053859959873167667351692354527931523899672169713556219695516895623168592163415625599579342525019442857498443043671411169848469821859565028566946988531986358407459708163491778694645708939050609425412188637900490682569371396290936388656701338391286129218913366379336874583597142549839074181102135075252523768627818660043340211626607801993420415017288197186155084894379845657737512933363249603522043125744208279879815915228449785506355518098361164918073431604595679990656739112730015486215112661883007896304906287545632845284752418771333669181846553089259866492936582234813118544366961328429577695058823060944378799759991672237090790819026112060828737398765507693796076257332749871575582108343536851610233424985899188287598611522064720587923273625909363266660153858600018133622951880618988843383637248218573178857403582369740771148666316977071847316927704376070635086176900724016239841555729222429465666127939821032028204441155034377663375207407398326199329803182243414197406049990652289630683749435115743050077628835007752797793455143486125423678023660299543794704302683807140683878558483967523384405456525414773772287163477426019213779105508626305797295211973311936310622178932369819762893699696507723629642512986456351920132717505105895687225128884255610678652233949850808341576491942483876727211128124352460909727220592191029857373975626399742303333314230168336175350702935303486647505468254757065854142647058735978555769009788690224571342326140799980604418977408766254423847381300965181798882334595523853705415108674899877966073714410018076436278437732770488364184869099008543285545059576239609416983264723940959946434914432761824544516742484895096696094122045648057316709358811424273752812913650846637095306851992469806012503860785287113129242342147087085341986260827418467038170159763035770032946243308239597463898410669141908918217615830510337810439395878511932239671159640344774168005913477631511162468584985674939071138030200153817919107061606135654733410950926682774959740886430788030127202358871286467110014309180588803632999541730599993540006374735811609594506819207105375707994751183672598586843180068095084252813273730566974083883207477982215425925197674754646329592792147897351431430900284779525824173005928818278371180926985117421858258411881576273642840878454550896664122154596177166185856853055181025770009195357047047932330418277080863679189596491477348316480410721445806569689409493124071707681022484333278964007418573881262662981706644796438790587943507412700921956218083109155448120993697078423542291121879313899516869052059730302670922485727714431495276975183648383679178815459765600453652659428435624508463585797188739325833502854626213421966525975103566466864685509015237344005128750934961466464700437520590538548520857370449714933769047946964694290878799780217560141282833894488337445302817636181446792965770861906085120925294635567080492792735875764927247634116057970964297328824052101281792876990570002631341610008257416006669487642344841138470850439279669596006386580196886029258381028967573901271814647216077591392934751558014613410263763533603241956058017430887448256543378926098314435984216756990120503641326591530779806910148374491757470965163726523560212902449468877568466094964944116337647512736631262206107076511930742063420852105590074491953213441395424227913400482102394488455224676553483677758574352147298079065147755973258768681189863697705959269679045479615042829100919425368189789600009874304838466903823831173592790260424199355706046025170758162712521339607109746830610947312291754518937317963613495859025255586113714895431754323861233839286262083840503430035881413275284022975177239354994544114123197663637384804456730969558485117713341730164234683499498535887953227956165650432071512022089668205941256962091051295336988507308155028896976473493727382544996790269957451104905740497444810865000873518908644662691997551951452178804008285955420275355894774158227877055143994898354526936789584103968899445185471288872030073218357161073929324973985975528306592170304690547605613235425752745499206980773495537941574266084629150047639495879676328697255735227562297906066803081191415543769086510278027658738311534864868711467172695550820811403192210880903509234517810683333713292176901471990428934997139545098578172909187170723342247526078543354925553913135679634000730265957394250286620453490898018492167173841622376257046166210091177533964438774565612847294700842082569748438769086537884842316500116160866304223760128827693134380106725282200335771616706006628344235281603491473739144632720596125407791431209452549929985320710298231774418402993573126075462687399882032484396632124074749400201773292440322400185616668854350304396510158747735149376197872299039328464691370034293770985411697231797165231145292591249264627196545478394248210216846276404503975016993043969516649878485523851684482653645493846273420930918700511867011212221824004289503234956653438233210857782480912146484129318020362612095076311236088322321568783842849978408596434768642929474942502294292988109000351051217521669296163445561500230686578488814885788048746375018666086239105586996515140809122452915885225409698729636936456166602665119002384441304323856065079883068773822793454686166696586744703058498517518749150044219624981065196016308110041171732507561609194707705507710386760643157975187054572203128063235007170054767511447424884147561235731767897317963818620745224452744017518700339585074198085896551478839012292141666478454225960625949588691419959370476831766533685863888166249787815076497306211207256778780112785236818821484779375963491839411873632480846884092605991658194204809926575602253820115858023901374392670775231819586026834952184572026516341333238784871064152176629117415621878234277016734880017084459356373451975543326815463113411777971384483024611604685384957038274282466876007831499787605246248292910559658183271646417410354690493705368768309249748470011449173015982303662819053119835784251207279791915066953534742866697655107781633473795000815324809386103298602940861666922324161903985663604863259260655059840145106624485072577405274310470139056919405364023443319191986702289051856559287299518793446445905199581290534547252549648262398963990191124795154976897250863170784685164504009438790595175876352301646474025225388398472140565046002002251027081338543293932925547985392221082752127279931178774766111281661469391217442863956800326468816834873716378258171849251510140293869000562556892879131306926129821472709749666528334762976656377817378061189588872137993783248739420776023360297268238300203385666696613516288769815903711127781074538846157237916934401348836890753281550711330251580543434858392754502153956894999170427761108197149195303421377276111180538371404833875448417165494927620384102938539569159387498563536359170944843718535773388531200836913262403670119800278370107385252574308186217846748959826870651732064304322429338980836469082824321582355869242092682863376519714132266641072891107300277387212964073004472593628321340556357365290655181175950404132557744448846442674031496590124612251288335962059463892215900701281013759745828064354153944972113630863539706967376104747982539371188057756347231235140059479927930835772338705343513991929056090929988384113612153161098510540788351090679423714212422176774106099481473109514725805047110158339966843993095482304792658402187330181299589954940429753804533194127665399378402444025658452261584193627971161027578113560597497118363338829891760928712548997431052557812778106838436560222013176229694694737412526983887501070782475038582566057531933232762558865116811813398723954372850861039068190141700403317286312614044259796632571772859990626241351882455770970762970733802805873860945619854579780233786454617459787518955515991525783708974237090430515198585487127681863194555223795079830387269933167978973735510430821759743873340727962748788150330446234262668986979367391080655081048076876554498963592713122935939873686951636803649451249980485454235791825094017383468167256584866823847918251809639110640653430383050379195226732503457374507351712737039958877619594082418019490250179319669555828970047085705938532522364499962362475463361648822235604038111589175271865040939042363795549542731916764673328693603286327552739583170394879649840822683889927811648463064729830887294636001507487441674341275475912071353123204278044205392874895644425285259648249792010669721909770261638712907162803158570967910649408607026426580454921417106152361821793279567513116261380410273856372295752110868333891527458186009478882714285074746725476557905596459582617480197654140935298805463335337071321737119242211635741939176508409599135997816137752796623979211454028858189738098253872658311789265173730778766836112916941498702393777831750584581703027681161490661921353175042675937129176586895019765360034499989515766071197590540106746231358030441604838337025477290812077417302506393264570940562532654271117981923632090446050274291314059576810988610851980397268833294882472330204555332763677877940742370648885057560161399229380060667984903057283312665814338445805222543159718986552232992806487286378392867582847425795315401040520467734825077652198880469489429522878692833840747116108240108700301463062643570662942610016058319289651140312280488237295531309430836286642632588157917814072917113466489900390635816763283703136722985247154235094271612502384167849799397296207116731969178379979837648687474462852026901116801088119399068560478689767812304914085285805299504093267385502071712018087037139774807040274864663060850250769850461737058144209989798290051170411159636629085266229935619867869260180956129428418569396451336540877936998897340754988357542257869660364412996209767736166455815360479455540739271027872754618649727185528478501335676247854784391931019800978681919733784727817279148314995888634169697079843021927325398713177582885160375533999549308276729548940286132247752689958308249507863797244161611539376093227254294523065239249665615260174290546460685202889914707160911338441798538442114163024215597500299922195455869881754155029382154974334079455360390190176208739374607622980973369281049490122498153227811856972299182881326297683311946768309614116044160541151921661737091607035556043144936466608006819868995441690703241469830542650229084442051652878163403778089313244009561362192813204977775311335695468244467940894708347544331221323217920130858373244605488383891853496691867536680849817993022175008022660048819874426126999071379140488156363041723519616182321014368684295530358435934603030436473836851103764509369365888032417818887545532831161630645111258811729555717077827558139008357912544485322096049813727130930625659331110917080134385782838554257538588477494172370400059235924737648544438883551369641497359108876557288741286235648217380176411397912673704171729286506500714150539642072815560899732720288380004309209102616270859427723822151656529525058237590388414594122496388874040169672143192742324205575591049355322075975426482027847297894941427720188212281115834768452245577025282587362747842185988006536308979423528148687483268765949641915470239650139274171440878164628293346150684489322826561895394799765865709260856203885680726178555936090006678110788013757003578657485923837640732623251083877650126363112280776675003129354957575443852776790744771998323465561014419218855767395719504753247992310740922589449166279863453167647948460969610759365772481326718654927379265482463258677710764647930438725650938284650344584215049318277274481979671457824688529698030101960504502690245293456515258859737825320238424298533617640253356264975905002015947055707494801756712270330749064199196130930883557033607341050434684958729024187887040796022175376634599262891542910663386530064269913699108860072553650475856979256785332791384355742430572009621466961214732824678152108999423884291445934275506323182372650470839173835323703942869871331129626870026290761116662428158340410702482105922777105854188926816033782769266772675642221081106993737564921694888844790796916296256009827424537231116918450321160399684189690428628644927260856225085764786828437353591523708726770540685168801713443139829597264086854987096987738405007336602436057807586957407875331972255014923072146638659951498397838562721282231105154873914496186631410367009061381300598277248455708209565623355121390543668561733259884983085779482213579483140668705948077948239043632916147964901027951872908665092100885235010588765123685729688351138964440198477255050278420377508317727547859496703285604019361141442896898514693457685042970578856540604575410620496900421627125117588898603872025240485842435370033428106451411743359791886072367450710288198333519317257680058865097857950407861380195051990950807216559185165640206540121619510088976905543541222095992531497249992141884083955229686575831355566348122708246897698429274687062768545911504557380251295846253156547781308927899382168872718008847005806093125444451523999065576513553384009575369419818080918847074294993727144473532832391573959022868970549027746974897155084048075814456810030353240697504646721780086106725397303093419732419409642512224996664152905427317425282777011939918766774377848649757521335848164361442178627205852749644318207528533856752147260550188120832377077366773985231841782634496014662876819080440317641805280862802901381008772485921192583369043502255838534170904816114991008944957093235077916094435388878214535658252892677623425724913823111628382815560757489317976727678925046979125231119468233146553677816002914713060743031415752769234211885870506819457129098344837625716486169343785460935219463525424269520547873010874044692859291555103321526096720093608790103970718948863358112206055448081069077886425026071526474937327925638616533441681457653579588155225570586750872227233436586507624162719461855036469968758718963931868381723207985994493290201430411496444608552474740701016854757155503460698539050623099847760961993647699801339492607974214745230880632171949925776624483371257692998816773816617803877214287837120060117732665832101571339890005712083758387676315700812133765264860858183253868930548839460054039859784257694305483947734307104355440345842330660422813117937735983398347710817108145563015617689489831599296623240361320613570182910163903192494361516838995856992906121270507698758680410730706347160292222409295042109540138993480197493943754977096376126552147933332901473927403923380123628520237355800251842380468683962200192494411499742087631228458383420121480593677896763777446121382180577785479347461418534212488100026215630494222813281843076570610386024384471823763184577727539605751160121530937336691023579718626572969631890511431422733605671248169496661440910658634065638171010546831837808417906995028331285510170049692870724553833059089256594819847665346710223386876047420082235085243978424899641644027949797304545415429147398186488238838088843480639975149404061195999199735639125559754427178763124745269793637841508390074550865676265612269898227095554917782218944138177495648122881373737251906247421237567606956994050692822453998780302600468541922802219349587693501802626782567610969271771354759780085544351750881395487104436056816741746328331373416345144362132446248541515609352421753533711516297661623400733421208301644958937817766669485272164775508580025315292550615161979426528530568397619088623818243070978721823582773418360219525478847933584846834807816256307869081845978248381588631178746547263246714596375022629421103644765566617462488365098006928310151255292789722236824556063789974183320120143878896699025989413066673891160439480503655499207514776452216793414043360725481501281102838030650548137619580595086835939734198514241668485479292462064957985246802091166696850054813409343780252670953471838569548226354566011391072785062955380219142194813894120652272658039532859709262717650295795950289934351735112207386184316647278732908408888166333400415822188896463230382873671812021558497172244428867353164077339824756231697196020109654037497043889176356557150995579371608006038982193333576680912261055510685218760256441011314560126105557470256862240796950232318216601106416638872317045270693196590549396549525989617487952145499168981036104243040158603856540151724623416119121915296712417776417236672243761248794010959404064162739150657055792355544199891871277453523701019729734272868519187261980747766028639198348418512066806162487792064818559280027624547637473930130833306031831981953190812785238695923263561993348647775126690773967536861786989183869476734214295877142664490733097947974707135523882739080259428713067402871954727361891921258748232822911554402665967114762540504173250580160561192513134680254388634773363981076043133520931524725311516449026918243860153235831218157152322121278782245235103425156241557810390955523820147725087149501471320189219229232707346083555455621597871629271739198016104481784676262186031686004527038157565290953713479270395032964922244833284476069388820145389306163696114071217986374668129901561717760985705514763625160651964892865346340533341369171113758694302588258924881716405349681204801540515944966432736746376798711996301499441612404216871537683352330727116517539232642662458158243494315848210106973763908165093794043226683600379323602225334336095485466723119386337289675474357667302641906823304608469291168683308626228769520683155590221749748348290457539632161079814633612564913195334095642867177495765177042057513111151008648046330630526909595100091050747182086205285780234426829965494500380878076186411491091373379577441054230137055134733716607383409577976415496584033271280029915145870728882032985644867178203108837503746128307928711018568597542048506618412037458768485326659358728918623276239253507522451083113770127549447122834452731830551012000083256062510765267320848369815595924294536806153107910519914757151261251484351908601893136154207242993960494391960187401603414775083773582843601610773901289603133570123413273118038463592223467685346313251003919588097644742606188142118404609571504639625979930794749356313430456489463218289900866447342133591888979047573563830681392825921911946037912471306396507927753782396692434126731014255511828742793227890440015436076114300485235351226190935836753292036034820804343645097318899598667454563903449316138706072801882559644865626574550312328480423964939454579010107086048850712269682596745481172090222071067909454724175057204009667041119560415076716625661503566989364906575923800910055547968781552873835000586119872758423484517115334364984580665054446125836557638037985666262364151386651245903223659077362653688163261495131899492435844127844181204642734616300432957104084192477523060770441511159596899797301198367578118703284441025269258164510912950599193117876241567589792658706257053656570820789635921588221666832201152752833945642023083535579252505962204303068307201921720528754453653241690577836009139388038971173106137932550921114740387021774393103366383464873817466150583968471159030349909021351798260981913049162202950362073488330047251901603982928613926683239494994880371405125717360492470224672883647515281251506617167188744685993700540949636349896813077415296780325032142953907291442448951972617793804347330079572830064382885517189131285481634246747637860144368145451755010421148071000844201246970263681200088780351996828810222935843405669708904458782012113406669363219934638022136450167183150103110477690145543678354175453953709307170085693336648366181506732531586844277949739974675093016356245590361126262479561805080600848679922134895225327205585745617253278601159086021385464580535015932210315616541307267932541810248815651027140448874920534813307169010042835505612482427359421194753916928271101091150412179041513723123656866041276895708883222395065540680172237970229035103180957755316294841184616992284130044067151236741996067751309566463558792978358672459628644854094783970399530881295125618080907382108512030041829807962344494221465161855817225376621566845344932621755036500725902942803681877312029631023965405365680110688471896901912633605198617072776845534212586674810669108033573779359140735058486381104884635307418603068852855984970166867056806636489410760115279857965651930852379778155308953341189931933360381397593415902361132992886708455576495419890125397312199726139531982994005690166945879828508540302488663454416875313378007488452872598210726026114998199002581352859631818671141844134089205305407840766246159554745573662616107385885047366058783041480596662980315615835560834188065923272492831896078275772447322177749198890080403798404817796976351050851959351119823226914556985838410956149133535298072578850625406828181997296463751540124561871008205440340247902530043882454232609860132812732174671709406043784034400454339738043360513715936377716542780437718945941261076242260150145365162945850090850215863435988843812028967605597776331620814281048753794237134195343151976478981751092523986399523402865374395781778602138515168083296342168399401048097687784841276980726278637593177509082434154686993720856055407061142870022481462790774784483339367683264144305386684609556472195269013092368858464280111187816060047442395657103305916803969712312441640394203652583492384134178057795974438685302730099835139765287902721503393399541193560086420666294971418584775870007389295741882932391396260917390794036349429588799081975427467065462099294326212240334432280635418513994069492603886759135629602226662339805701906967854052918441445657772074853715210964830110399443997209436111881978136147348215755823842471731081117516319986860847263462332299791418756565040870581934834058957785364588485404945385759827440562542593942743147746247202764435079796587824646374781503807095745165200328749494035498926026193231889474836897717843905240673051107046591436558821981723564242973462278624556065825248690020392653309979763864073521160874397479380545083108401921012802775347369771408577054172370230988399078945254693352372401269743590776213135220350976019415252657610915607124808725494729800242223666155131904173941736185540167349047558364564202860580738500292402205174893212188325224382461753614696020352957608000951285264542187362687001209374632240979234125724612472148119936365963070307237771727051463029780222564084423964998669689362321891662566195978239863422225214092964318868582331077829759278357644484137511818629838507017821467484995092668231035346484578005834111064134285109425534605745940980771681387935824604477263055606378036129941620529558202778977361336200768377792472854520342005820591047953343153525333983419629741081251524543562330362212478102681703942054073641182332177087042425058790726087951521475334311349557746386335472618100069699063620483339347701716185994902405324745452264372809184050960364261655757242773868993169784924564919285752351204222750283796599146934492346479847166926295889283190611396713153241488220422966367852836223306487947383134458141843605447528320145530409819990725257025649858306355874066788661163375865483476860609418987879530465392634399564082498221221981392324654652308823111602027526517303283181665651364531116660589114018158433018376415852825216918788132169901128003908103082292087469894862056050506190961643016214698653951185520496067797591785478769734566062656100113808416839006827789340896228440727533652843792015904427522141750792923747660061105988774341817715032429862296203970424405899091395282478133359659101470656312086125712546227165459935637026413056718098584358821704224934001280181503510989494480231337874470994627854443580166105616600502215305917032159559975345973977650397336749302524450615282167827814305891066423177830525348097294081236710613562310440393313054218315120939875283787830998454441019541221478789264096452822835731234335775564643159399806979398969525922094307274601687096694331021510574604919854382717746974616134186415604362445830623185171643088225562388475403590075666730901274753261820446356471233500800065865094914316790670365670815877108521923532811869400088028335589892397637094042265577884162149839723864520430321435824476130747288920281280927014509073704084455861555714882508447622661498263972326939446086817578012451960043272694430870142823809569913667767965837433282554365482392382606577378361155350176187978360890785989932800054671687201908432435959366247117875389984144351919683331337733533303946891183532119936318817551913477739218282928705996527763908398769691863909535961525615943615573316427189378541872173460956578425298196836736489972714543800078164389003366741914356125808033857437871848096688595267266603435288933587456245375544873631594209406616151968208850995411217632850065300793653856318486133782311699566192601560669303703737658649140139189822976403137503667745129159146509871842055709740894613931595569219818057742586973325019176370146630109916632335447837855268875589217213195589561905178606847398063341180236381224939546948361185194921132350783337244420255271298488773250640670675758038598429231322319558914730815859550634057802127263291777668182659117546381907690437664503109481174410266725669733173927362257007615800639201541853720919725897527049661474253299373004817048084129361954325583340961805017380989335247917630827540167362394805383445503807460145988812708321741200204303410780404724589600222896574117224257646589578374989302178664763855024970955449241339889375863419715686931471289011035484639916683225174218089387810360224020647902310351358612730003109461583826610284630088139393202480906832963751075911573261670139149138368617344693320609414754672373206588578322624599591868826706215113582423027633381670448620894327406790606361531083039237570045595213047164819703186653260853741721861863987076636870319817612385664994456157456249889092443357869948260032730182001618573448121676003380860818893618014276484714681117208696206266220068630580567789544760655822500510115689159893697231255394188959282835007585267320268309474192673689193115393046443754749035517790056632056383931667375777493467278970150309530401707646844257319329181696644398643613947248445661227743320298799437772695413263998292971444225137970081965177825007086435401542864013839800308257420077121538731991095472835761267470882408405265993386299357656568704201780002233405680013449599916969411377667056290995845590304318836353539509224799009484496489105325233962892578114228531904162260160363191245387145598958141042547778320299884411198266794564230577572025352322478829932094396803798823228041130093216604409358589864507872089881519471094778976014020412094211158006280154030166414750471893715373651274416582736801997137642065531111114771268333620019732676447019359805401200733050758127463076046834848304141118756992407507220686022139904478161197713118555714206748699692898539683388547835187861001311647787712921473412573240915878093677729407196873936642979962583825735691681627009606193928445445924640365736035781511518577498167958605390229907222493380661266753739119654586355978236155619532514315840418301687761349604528951330821779237659518368661406335340569604100553958703176727796925947868292391469054191728200149494123268156578454334037784011972399370442141632961927492059472899518111362583011556162290779846369750120968950658641176777535686895582150049183510303762163639625079475345448006034735014218284791237320298730780168405069690868942438490529839347340836737984845071898271707691231641930072025544590025369802536177108959281945477881274307475760683456454041434474415099151879869593407282183517755668291019548091656416356703937348966176547296506542464705591810252852052469894549920525700652849507650034279674851022590927380614739817917029164414550921802609374974846731592357168801477763142471220620937414636498468092794989917243178790114062703788129447482602022506861103478608065065987281128276495873011633054423421837110983973739323925967946455398646173799879775747014103494758502457608879248945166733661464333090375626225139401001197191324918147826608090682600852000403100234416673655066177763562246554229557033480637986562902733424407923205335164293419582759613637302250323109548568792495279608681407731341791738639406439063020199257171321655790381770506077809907170175402961355597589313395111836559694462166043264869746387371611117251821692033147090930665204919041098090248258194583515925636231238261403302715964341373646253093047821294396035991689164275778846868856376119896750477794132252483312759911252036051216789378731245189496978423568262253970801331036849175168676254440968258756707757536307135088650693785305830144464245986718206211426845646573957714129191750613973502374979536187580305477456996274635202383618556953280263854375273555369694683857626900971671930043959327962120346344139672461095775945383088588635308224813619566662245938251582254781308710872083433154898023622861332249198156177166309937331766174783431484798343916134050605531208810295008023728146076671690041831815757107845290534793267454302976261636532435298138266408868609229815476978140903102711338725937809027287242238191484519832230140087013282852175853434088531120778822383317952733956207413418799049625904672341408779362356517679915122109417682056570869255872889715105389430396647256118543855172101831501595580610933377172845499481779471712083403014705661382732921375980731427132695409931196333635790757042685178620298078751980111241261734460837073484179256285213327138745904325048793247491244210488209970595094513681147280060723354436842629962317591391172259397648372300716868196667848246952198301536992806115184627232254803919562808598563679142362434080902440989456474700861471270365299865884584400501354129525145623143762722525586871490613992674781896229855974524002979685252178338488411775754842425745156666735373934175579834972571689754121079193780358654152360558394114906387768277957843358025289204478903049670585027542509162174326602588868939977563214839699608451250725872360907117832650819210344949579646281727526400416430026622624665648771957909790333118799961236133510980341018232927100210848739378259730975169922485119543085725149568573844148107615808760705306818639785601366421754048246332497078871832982263385595886026218383147980307718607815229428807778414540149852820762606228957631984587578998447881891297201108031703337629796217643266093268271736670376959486807287645822715022774369188264055829704650384011188059453827832414460351582798073795864720713518470740164814643901142925845748505154100608080042373972846874464192684750527723261549361309630630587575762308065179851636668882291786797019496408922841715154198234781710686619245431439474459181385543930553816474533920720636258689412717995773915126915379866567640031229925508255674898218875275638155065609180444086028997850838947980131765400740726717410365028737625526430441178010953390278668904560369875783442587607964197725070142844143354017694501210175167696027431206114354269538460206045716762765798155909803474726406898599661002301775230658324015789610489365114952463106572621970831262458738643623473222334714579004459821775115682335175596516637899868470804368137372643605932042389454175485524424620396860358840301805943892191626959244655704346133347294122838195206373853471568050364098845431927291330848673655377310166742743193628766906032128072266030357295658235987201123914979072868623930018023070971249930299227649813848563124890331433029905141582244465791342885834502618284766699074236637543544990695702141106118191228840893139567752144084662109793007832171127758111289016355858619526574137841871347130779191474561109124826436768411396145830404861961742317768574116757076408681558841105748574681488351951430707420162330661440383640091477315978363184665276177793534783956262924238148170702079549712045032652501727948474167920164890356976323204700791492817768931886612045644102487515541394471105956959832708922525139792263908988984646552314342175670000160099270632306745854023045970738675536592785862969445133160766866302611201364449571426883557932541349490551298144954725192420670086787897876127665602151613980856676709316272818017076408261990840776395444505863105261799874530141135236724258894799965260809339191462499979185647636479771385865261671855449808807594053024200546757499854759592353949917292908842241445792111995416610325315110252951608095579768476286917772802954258888589441817719473745502032265896450309766489336934075517690831437068606406780994680775893665898727213043517543033997006092590737909503797156599584272508480006427701281940396432461386273041182433263886282331070601416272710703623285780395654040933127285461796811919031546807597755016136130514187035664481494836302043536648535675771513705249146438032664776601016589761116699477365643350158646996565805740506227678880151108591916586836687133224872720580928170729576331125717124069620318197887590531739173736884130308526227064576300587518053872131284974524439172224075234139472003510084807797274469229981070002791358998591803073202486417013208584444466652945009872608574799361606594599275731840327454334370300092453725252252102707420170069255290870748381625506369297986018896765774044213327875304631405477523456195437221385801354078186037585497134050753899561148682127284852663519508035058686640879515600973702525575442499473346847215263906447478380781283434108453846825576505740805119729009950687771557830928802381455623205179628492616212805713724157938169136628571806987207591353648023140253450948731114966795617477191644506604770615679529909569689439138380195136390713310147327164353457588154029222930303594672531339699045019662291299499234689560611888428267416174007553586340492586441205341266558022683071787491014071690537269961752168165703001179517587560640928035951954668826618632692502139610070917097206162242444262161270348087063612872451921210565003424103492142972326652656685329758519700083513330717849505460523083419326558081905835787143700621737819730275133144662376188309880617902800985999803113280798883527560752284815839835666370043359677197246733278070798975329959150243380752034792986500617866584190398010766565633614874366208788661401896614835108576680202908789754884322587331090745839912911534634897030189754829015964059356471875420876467395911893659199804864739046617939004293882748593131863381692978857686079229496339605816406498837410752908634259552949139357020200538544268769039753336360910434317345126488466053633978612209521315758562442337505001026132749698937805042148743464144623482818742193340295476105520680654012849476185667158491113724895629738072549571948978404925438773111803451281899625099902087116523031885875207965291658130255448186462071331341194427259837386978805053213603858047583778770513106184122618371983484821510885160860810170762117004217682199853047752271718897295920651461637835739862080486640365765700149070537755950745090179022583118780686855036927834880544156747704993712373423572676687914592134399062543944667687934799219661976822482873256910160395754686732327567555643549313811350920287137320057278753438529302581473497049564355343542937428277578741108529429155605082838414439537520826772625403148562563533761369638318376798467720103974001431690936051149197976537440167351537456132133943073567173349910391787099050546320737816500515926675514706755153108368447511336597134899560558767766575277477208524545832386816313644648720099862903395039067815507481594327644378462467494639558179456975517852149788766865995939298711025919904301345363008623523388550792305662873296741225973398509697992979597225050893399423092663532930437472399214121138081146442589179461623706702507467886830363779484903903239797869377849174691749291282147291991277318242056969588342597869164799034924646530815972975386026807857919575522954698150734469209271254022495704822429422899275403006497841461554646638839337783687336465804199177255374200568560579771629513440701606759031358939095971036114697273921845935639497448210285326043955393653726530502575615368032391425627005353357059040236098952869905550701322971242575732557034120678962635148081834410911985257200997181157541328979834984903353987839016850744588669110192360140400507391059709438698475134283142611879473287876393920475693241140216312944588588760647574549590263971808154034325540688554450323144711867338375784861147706630924911493925537770514763918769462328741348798532484578962542383042095970919216955289132950318554735226675651989785435061439916774185881743431052910235551103237901868135165812345235026057791274522594706179603787435890217503327019839499053096502792009903477377221258214562517398617975232665557079765382766291014963211400742732991124446198052641728342672813222927701249695308013083965875214446545055704708726172207569201096267658641967754764280651944568081649388415899961318551627494434861492546330859000497835890012363857938301999647240290450013192813924654737600695786876359091552381371140112253911758896923406575683618577941729086258416741532994846384232926288022524218641224201429259875199906106908580648038221311328833807655558133889496553041923573231010886195090866271610259322216851773776782891793960339808435402674439203050949650196509899290368741395013415431685342026065303829190867723208915177169612198230823815446721023986819806545894697211769355771669368184863900598265001386639625239057921841936884529712290499293311532462044943234556792210395868600032485615576744711730538947721987064398519837583353630994959682344289379799410146674164152796850236703478269324990244927050260416797242437977873140503042062227284664513383833687044794119818089595110099770830836481256080910676444990610695318598349208614045228202911596072329765369016006606082843249879626793941746779590172683199645150865558758349958932491752283756443613487546608018335406470108009930880499881261971507563633397900311774351383799018403747499422659259623115466156441083820280460104606310317848827928070418836192559938686100862005331546489984944546446362027361074088035892572267509498190956627657521217751121293084292859069160801808743436590024682407980300613220280965717126639399360659653972512364878528603942609597044043870366079399511092756941812299536134084434689681267333141735682015981530427985145166502176704371310509359759073688748827029464455868133911957161236619077021192670885302379819306855842528122374184608132682406488312018176053304644852269039443910517645955953924376422509639138168554250524266185623959361514445135022815886896668297454257405075824278932711368008652821743388629321764860019966215772353241298512252588108201117095964039399426538557040658805193573046980967913075906249751102292415197825537456924313905315227904438099161763907947162696444284361166086763502850896202380294455773632229660322022798841532806648157057442605817675305225438054345462031255119804815165574587715717569710106576449492096569332145178479971863502156541497755014688987887073198733088253465263833184980054937333236501502664108252613592030062160638359079696132885336692731753595830137707425131901872234454172126209808187943970366393843159342571326654800206321265615400746183030848018582056173226138214610938372734054150102079203983042021819166564759420711777256052025988341608056632594660333811905470319388169519370350916052643541208915160650528462052965902210180305106588609070769584284791127989271938667603538767975489488666272906717912966161043134893323617515507124116522398348902132987988754857515819522452097831229542592556111147271034184836702182520033403635154198299005780739735838228168682294593926901087792130160461559377876286455291476148082441906529486059164994466750963100544888042195033464631687066209601261258459204582834282464471633310153642569538962030642465773343617518630783526081599289238134495548486361995214419946871635822290342741103215223426701643828963365756096996377806985943072246979470400577899564677970631310109777915573682196613016591487596453353136747732440199989499084772778353906337664160069904358927108470422506934470425003157839779859255147403628133386010904567057095279530930625844693861869710123585885020356938455334545638709520275223141542567227735881964082766389480723514041915027057896217767928712363262370550645717292471710114043129864278757295203652158010723356861122146277236252232458779531827746478838780720941372820163890266757764530929952273078059903473929015135125010860839625529981575870173484406421423000898927904345751149425088087808592838629902522474200493661406443352308625529257095623862551595819740671391106035484255012430605451301456870953753437197863616363090107729077469748293218946860620053463737313529828041886901355693163465649427578416607328418231869814510229600720424971248412727885531630753736686088723633224500812016610346813979022952334956366723017350891294594661793721992811162135078144805070448398816389041930952191325444866975641120959421920447122080124666817984765191347827174630377853233253479442912065829966343444744569556372580551928624451450613986881680039174245536864897015205686008739590324999817716685764332915681910090543670639775605352964654621420133575729690771193517291995937820041357824789854380563709943218923799402201526064715489136930806544461674420197415034773242069081930034906060945383978853130874020698217845909614128132106199728754453671733550384615283675280253164400410062564716144362920035914195630781233748784170637959147811180862991851283167084439789589496839972729217022393424087092450937458367307611889019970775257100048476777307692311396410040101380399267437511420368987683681282778849792646189071745189079405782356426046426851135083678946708111223196489691080063140052866563564535396227262123658033679290250027255237695216927572818716923069161347830956412285889852781003499955091587638553966381268149862593075841263775053921029322093262519835921775233227812648539726848391085236242519355250195451719718137177423403888357819644899703455401245072103614540889139678982154180038793679093509285701925919875053431442980835434029033427024574644679269108444284882011103073433993811795084286698722190189697807640949824006702999884623129191350802174377368429236680209697165216060560581987588287497510688821566250493622714410225539927857711837068890469921714297186801619800164914825473831337704043160852190671268125605224434597548222873550834302897909143021502700522525576761706885965150539316216683350001584924284748031522503121135664702910819168459612480590579807240481600027869440828302730931574842993816964013205720413248984311295331493859360638517317889543183899345260080090472206215771476138799276211208042213233228806970991892165933240868358197081566327675495723247179304046654027821266371755469433067113713664448672221234309761647034856629550338210402776416303844962911926278699372110415421949599476051278530253525552480567154646051123891046229204103936814257138796697855886444656158271823190517796149831438785436721202260842597614198901516319655647678502473662064212721398312288304491210372635448593021359656715874815547223259552446601093566820845370218437367386613760189740969011219938023402790799722621317946726542574101391174820640214812624154286221523814702709830632586771219370479010507121315525347161812429628183475236300950753725409529770631035772953323966358097982306484398209339753432258802134436870574478650958136125000930926751388741945495461050136649626608398834476024899889021146027296433309892528387607665161238842119207305300003145826460905933288801950229790416528433764324678470187364900072641873160209786509356883235029170226051808297925324196239282611300737286404440083577950752747186501775169816392476226178649257566374867172918769012508194303762086297953451992796545479915121490700013147955876115720544957152545204320419398372247712044308052073963922065650151157933541076012110221106581013362796138524867855292193132292180603473138428114045805427092492829439278871811440024104563472369737824433256202636128883660037802608915097779061052633117918216366451230900252954409038563577754368149124155310209388921837141844695620204526131707707225093677383159299295291406503383503622293872136264989123002170146752117168624050187464449805021480022549556724707705092473052884560468673313419955285430718242393583392670834085994137844715355293053014347477142704598339358609696705338868458307670902164079961632124507566781202534813569316659952205990225160516990279761119242719888849469049314279220120809848162456537293027289155389299069930480019375496199862418630350541124824018917838801320373476429781091003295855408482130000491692592253349904827910709641516390572010329083507267264051055480753083361163368529835792872923665830840126397533918830469049079530865861750643489144845801386005165202947641277231677566387514467344040303869444127311164354693273759544958068007650137899411337885854302984559753562160318370088581227482150894648001290913251762060498216596012287750981096537374331623271390485552495181411893580702838796088354474134061703941942378045025237520048189982992853310425122699612730633147681972416124215659651983176793209025554567809646917869268768615659039774539151022718583721999504619309562539777185562691524841918765915814823551230047384440034152668287073826661320462735117713691185303817798088852844267839804163184655037033395519043488537963993377494921584251163366739987068155336934350752182897931956947036666095124327657569173604771301944155639371432071270166203058980229866500064519820862957480005684942413972518770380276461101719259337075578701356746302623102650616985828259810766433899845647669239682233578321182237161165880286819982957928876536497272381993146736161281224148464608333884936742636208291876120249554979138989708905097600765060623321420660759850507874726125800566391496320652406283451173942290014036411183014239798919614034696394803373594292859743306701953449019340483451556725062380377091962509034353120197939325025432507108000152196776675886246902076882719331617362338976937464304709710734130876730404473855217662500290193430697964277096491009154493271162948542583147698907932804332754598953062869381295857585747311285975505033889680271237117203834395967245363651856746181276192122192466620743553869267897735854501081434606120479787564821152986633799909075341475353751960005884760609489857422184078495624409333767169439807276423170871504712671541804918238530269370014732144830781526760888483782048615051964833960841580953159799385589206260449169103678412330418733963236491414897164154477365687842226218535332967081412232589323546747975088481955958273109277516324375946812374068318128464355748124936382297692377876120859223384306443798355510340952316183514371968997862336566433330523246231530549562719851506448991785036581029848380538683845477839159481098619193221045084428590217618108506425246850344618333238586858977094435546603745653087866281280370734770785038634452992002476415152623602340495704658790946987741681195193429029015477360537267396118500598674415359554590807307597499891524320046301504814834717975431071792704496837884180961347781468251040626235113092862572632059742155526661726618577025677053575960971328289134437817105309033812718537141222846345551574602046046264060449339808981798897748255193690515179760422320059587597423175423487408601702118332811703534613491969640396541810069193814092387868594284108725155737198006792033162689396758671130185714037710658592802058680060006395265519875526907545143254962578225420983969579360016188918712398756888833665211451056130910097967958770290918222352643114427800132968805411278126367845777819256885414204766249335753481315310212552934230762876227083856008298603949347728717568688648519355276040130306472749716151239253227826030299730103343512543328253772952870173709977143906532980368045854591031711372587529664954849528330869360637692149184397497255580701293318928185315170252076355445837860075610149347224034436628955822513299349645188019707982393422162595456940472385886240394868308969653236242712089106054320176241429210322859276139429818209769030004743081522165922820225778368614978899200553790508280280474315190135310306529764954999579392144765017075603726477833975346801504437576327989733331339809316366263789695383568539138683478489221504983033666457920752979882616150634243104598199731323093657618448307092706658801232978899265975005815226298448759002298691956752725811455532910681605694728962106975442041359928860123314457037755024994602882444290138090548937105857221450283526763859717020243871633913455309578285222640424678920910020432362082479915382666824617639885221193479354519076254457695061763550983075562154853950325955923421595814141237607662819359951338912174822039710778507691359853012297126468993148620554959660671627416186276005034865026719178154038142434905855847183637961139024388228650482673884119222492986216269577512372296616056861059273558137492377556044783861200163614811187904194912169437543034015035812780398825848109164913806713222359363443627072062833999653230517950552782385510448498563034110872652425322557157275073703534491347249998677874666737111695670124830459701553969011596013131539117386027969534388252973085015639842357277030285399644815525319493666264729874034446219671588827759004229479235276993970035404957107966555379604016593882933572301124212716065579361281080055614691332226275098921039896489639181513530224762896846391352997328973723784580853133204941150697767483098774959031116244995230147594763045771230954495253275875014032250054944606220504511153289667220224428672242080527695700006442730501596996438102690297320929325180429939363169610474882755056818102680618285569824819970565960560009880037243511119208616759692848676874918261147006545810884106533030555390267829180429401700255921538665651136367127462772897568844807413988534690760741342343473121077208132077920602296430182666844446878300800194390287479153356746305815308685899857745048838717311128781079331682857134282082338353711354347814132914940283176666924579697434770027519991377082815621358368339442236389703725169990002661248818009976448236090305904299187129397346966839311246439165084329013485138245911794988448762498199555207500497629766454011856466789589908716577113148665249641060154077183467710901868485839625626473772739301180139430740559063744141455156603836467300667744916004207389379991783711300810656869649676702601086836184895658662323548069111258046257827582425460372899906804359304227069117228435779699725536766671419477302532339077252205854418653137557727596505210015086366118972330663016798637091579129322444727165718408027380039959798468580719665361770697550820528934360361815690011233016941676005324815446971528627430031221563456672244001299414408255186252387032713337955007746554216318014420956102479766019412125428400652929604289272587306553483188844074986978766831548596628499942046693774698278499841351728979297636730042529757147634847891428722298477364788275913805071275215792152476534844794924566296197263633837785691892054504577505002388674110082634347003585792646000705071502420456608250322533018902598279589154378139531513653546150306718388803475321416228578759835435747367710713256298463779187617028049828013088741578249826383478247456855736346590069108031308422214932779050339342236002885944480317263999909661379203503918588729857375411008526017805315237684364854870936841330347656970766648423155913305478643048757540326323602951973302018915946670116728268266268797339223709661737605382943271878828468948742922047812111724205690568957411939285365187897381015815231882878450140907339111608920592549380805212350119199557790356099105889190589229484266976756658482451330624220629414184965164058614471785394050223761204657210304619605209559775503545749584383071537252208205343959457729368462136134602791283795669676865835618564840960301451530687191329598430011132428764818885400122035299685014874632379078476518785139572863305357269291205088207558294926610455193282350385019465287835936113494007730650178235949382596252590175007590414446624401633336961446199205322191151107189236733435714016549869571169746621813235461835783270976463928137815499071644431730017009214197222462073558285929529120976849446190802355402854611838764801522493886087350638478133578366117503326116512744399102062141264647063589792479140052825215664013943627237956078657452193484365590471859231272178707181489257185641691149422180637972821129370394275373378721878696505223392020851637511039966194031563214056768123960632696928530765216302636902895647939617912161507767305468384753600112397462135517488142140386435989739161043130580309308833841292664203817187625248454725731988382586514756245486828052997938918134555007177735223108971241163820984935249796588531157555988520618503971166440995543831063543175032615809089753423866733960461618502118540149361500862973752257157880834244851164508063677407613177585605969041646745379600612967563489298406782411773190026368466692629734828882345428780073224313917344708769055614842510997358349283037247669670578667460737280765271597750901405068487414567764775699426218510786568483863613011434480339472385093152904141656003580741345027290789965909269352860869008201638691102651286949914103106696838186602398189027725773068755815088300713965931635179615637346661380636421096944947547490436207450384576038945782044749176589601038052265838835884954993532161325582779135659663724205092086312666477378970311144040127444596057738663928095516794262095861931514813199689426518273323113462136049528326831987009090752432719320517035698082490192712008813927541168022214024070925743191307115766852169313938383989527226414511030322359466144565445726046638788513523204746439476108587519988640624294779203456976798579645319513105280054667698640304566982831343262894310460604971732158355554982883369997033128088618781455724986456453997652293566077677648780541409903002086248951889615574138858021623311901343688376552349319155277347023973982722139097757125353629440439903969189729586899847436630144940140669119416698475640760016693832769850970862417452842874729652503359302482246310364818391892556849910915132619533547313765364612976512117942583229936087276916582314931188036630053622904452122366735445775070849141716297638425935423108293384559288713618178287475848380165465483667013135453475259602547678367784955664344945118870226601626771652706196171330209329027438937810483514087499119297311932949732232327331314763609010493755727543514227745021732056208337678091119799412470668001484764835685216611503674988702743064298411016693180008951544676875317170470245526629400327582795010306250441252804954795760048458413197037347453336082250245454503956591861481940761029247264611040122208037022542770467506580754373462976915085079515112175732636120390396331094181962548208267641159530913225003373774328432963879102446901320192920945453204833800120997109478928063094794233668991443937902806763331543031666390613295902607579261954167844027109827658625188852535657774928540787836639142797576643980586075798664589613667757126874058989956077737777259889408261086106978416542498606739177525276129767945503856021067746182032009818485724172982753112251514847191155376323789233651777910073281731216051590339316498732591580815014637886112583399197943012753786317782332849201189699518628346440662002129131018274705783596427916652381795831727118188053714564530869407856800357770718306221713379620696430751272500568520768602905243119297157062003104584352059598882092360580412580829417115363324868545105442365500878996450152121229540275807086965264402815700028279000532501389869823614431525793583532865408642911289721174735179592849739671390937992232134074809032681609255707060901269244034840534773642408415509724789877759656049332681808957580979200474972256147330649784145125618797457458619981783479264862191892346477013838224206392550800032056051525171932322468774197848063366816793216473260170016727851758591764246868099105395893726495707943939878742634357469466910260026552883810876326985748762418187629868530046127852827469398231184515972876552425662676192692702236913496386759189370109701194793792923882245716743572861637272838136632615672466099368237230180937190538525324610139080182653740197845063560483737318319101843284871287585843885157181793032317700647428053139352118792359838486212426558116167254276896954908181734615977880665692217817399197686402930802448632500968843920444258623249458952809908947514817868521599722771757294558903289640082161713386697988650492543767864450436185604675578854126123681562936613395193996595619093798317630414982678389962445136540984783288244000221771551646866461250518982888469253437457756994323802869196749405488159267862618166294759654946248213767142606175043682256644511075457660982865658227571903529754220250705011285248398068024313793688178523719813470159395509675730686351833474044650182837350859378957157061813274522791101223887913192171310408617587340845870735629555520427431319659247293760077207363177440409687708674063383813358113757705821276444473835252587967753001456572422787932214548474611787993649020539346532629947798313313574909085292240208210695911138194484666349930422793520307767781188546623031751508048714418663250976022702460850775022700934725071920125694326251591279772411541792496721857503751377979848132583763845828807981252312260031072373851037343973526528333396907762052860494356681210845981156216113725030914910964580876480630626439382739641147756859050393063855094202657470062808830124606383415439736668258402112384575011526439802402745418010079017324490154379401923765081161354550901614471959840912131720016842861379531108632056766471276670618554471934195923142701612817687540742662169815639937045490321020273995564771604782338786564092424845465910993053088751921591911395286876599792431795880088201126047606625988134560813937053020823525489357906625280327550168283863355889487280868537570447181855136656712190088286917322879233136823432167908960514196273600545498628592845900996143832012816977650445593384264884225232750956977256328208934016850980347601201756470921041898425217795876684826600910804352185514119536129594091938435669811057696519370817636779821734880470699945571791570789001000652430738010336180590632361473660391614728140637792147616636026493276205054397191566895012544975001022495022692295030890225226470716508599908886807736027436736846502339671508035676237434574097780865498255506591060437748738598557874215030886998148048745870902656390147899651403201179264459283162458788209603769703235751125467787977009817406736250766646575870228459760985408615801644728871284183622961291808232952670025355107907918998600678591781628025930574758131842554045375967284329873208792150577721935683597089647176114448321505934338427147147475902503887144605393167963596212528387194811033962760889288370508283057321159618788181717834928598868542088439977498611863335410031308307900756122042324993149001781522895460774995539969979300037725200290914643779236643214286515712462001769640210546014040989651804215869194824575072028306468501000751802051804881637660796138026486143731690770105592031340238258189657834047748792252999788145346434410316828130397683627899821354978711235082641281177514767769264172350635691407063867443049532697566433478369257975778213005753102838997995802097996992377767278715850391266125484467344446304127914627481251526162786374193410109974796325892208773634487164308556560769363481329142262990467737273633455896887998246714470918627470598795277373395894878880095519265626940624236524557400797198391019317911708497197544653052916734863841731186900961360177784411562227465456414631690631360916140451905017879521173786621598439036353596406614166211169728935065841606538100465751008928945258712421827992399390982018108617283853239896335532497693325092581876345866446427253906420627307698149677776726538361367640533223213256542269039024749899044022885529527379930372739643087145739492688572337310374942072195555218360433051315962339403436937322186555829239748604361671358968517422258842156917175958459583402395234814177156704309133227941384374005139711042454678994430376134579469551214764778443251656786393824586248956841221483558052561696400559247415007914041308641345489628702575985727378131764862256258886353539205584376135180545489229417344637343116729642040049176404285552050464542386911103039219304706898242146855398132925268493364661174813142923030653680683174602059151315479846892249183734217512942548812951165774983082696867981669724779804513457144780805730213780039606557819248685652688767530350239560505716930085780105509522168534800098992734262530377647887287862649666683885654262193955924595969403271181137851458756326889349893762805715527429080799243496676790361752562174012635637216551753668703390461869647017199881116297339112843521452657988927339630606073856855783420942462908626509687707727662646915340062016660393296505600388614459888567039042094444413803930627277765702902069960605120204543554252647630743125776271063221848605278584986782781194648543455387023824956371003819606938072169201397536201813725380890298171895720438970321689255950111753764519949275897050715064998913047556699898837245460354584145126399332017770226676762295587753323006263791487457865975542317330048862212160918402261122666176926868994521493174041142425408345620073815754023452417144770763720209554042417731467238094811174105472656668411274900663210436944616446316828941767615528445299056024958934969375694912876914193685182000475136695746418580932929819842052406137607897541478893315670652491385712484808051774010698864810827593921240515545875547636005485522576689783478912560351196673428333755622161041248906337829899749940174746907571937136494638908507654647054559391495717498196254406153993614730252519416714552535791167506810749862732455407194531805016884612005113299219266932800399929530586999774133696700698942605827252981511977313724456219294811826890416699244170236918377287253898005822855144153960523108806031912264575965321953315508511705638451692949286510184394624944121920745804888084146224698720555708667578918832874161478150881472588527202558003214822601722055015301658806521260841783473555330107071927187871183395720792203581264997644722807220339209484412593890729129738598797469181935523852291203475383863406705948479449675187284987598018468818422314323452381326854176952460582868032939608133302270152920471945545199531456520571009611739134759875869197337056698320155444606118468717163998145035956534345285149666546956650907394038947178905589171567618464927951134918850926377381811937652165890059639984736620700288006516876731220810395683333141415493259897325164377854527805612460945460261135840759788817952767216427176941488371642624380097181927158623818039276956098594246403582223929619318828473122197695885433343622933889047172756812271396779176022848928387227993475427743122786994850636764148470171090717632556946166381310056004334052113643820327115026993723188905178878810362096142160506834042052209472000734902551934459545781287307356417569828670194306196656671249540020293750568245147548288724398814302370452640558981798378615982497343335383736866303123835784166706813857998208329238550563903834714576963958471193789874213062902127710766103036224840197517140075985209407643850229324881500117382152293258334043940668604531044418403533232725999394776781814221016539097807387101502328724482150952764046684945325310671724876545481542023988348115574020272790191336772361534459816947025783282577372099486001208143894495363251904583315726884557481314975236860035125665226080048467360169655859007160100043827274340172672054532023024889277503729306505230075677779299910891804927277679492539665264766720288779869226702871022616914948292229154365694367173783540234129599180389872357193829065257554885750588667108584508187072799924080861349088362292962412402301649092177520889003899379021161276441465766648295866766869683082485838396036027833624025664536603041886608778885530387815378660990838334331500297637271208981837980027549860849179686235936941055275350662126864582830762602687192229899020070298873186303617641589186030858425584446392172122144080631393237670455923014538378090379064712382128776138956180624113532616707118279294355067675971204062336324238509405011173802945782385742000579706604685803153483564317222232970785206044759413322437753572577542915316268715263907540674833153946080546716675952352448316118568954757559217842338853054164770754399896464242859583608813825070284611455718223413875903598884386777517266003977027029728573486569359749615226446532974217675160707674692338420130955680837545053992733302384104227443632500646186666877051739424369903066247958977349460988546649110616614091814500990116463174226962169856312048885720132628777056397046780334559444753512017978749112448685319519792390872753330403559750898690486178080003789879867320486789046419134015047408396602723965888889143729534945738041870502630695650015837272217607786621207846309470751495567184925014141193175535949403193022665833004627691685354045024950313042158075785305612828713183143817500493506545097997276063068514898035979086477497064142494320479922188493126960597682980096941385219571276222201108816600365843839412160197380088040414268553412147607448800155308272602435587277635317841985037299989397864282575699668434533964487221509036920940222033564256648308695931769035852308265821280411946319816609555484751494750519334796565280180401865149561464692411860273244879943059673937631359678785976471148820063664534946899522897594545946997025163660592620924632845762232681979610228149484496688713739310150112242654062188007036608683805288490986024512692652559633337079329382026633351472002819889639020710149360737333889079446824082320736799439914647077492034216415751395166506113917688663470510663768005318374283124661252765965278296870876122123193908727771257114500248714177313487027441633065778153576507314269324141857068779529178542302617989716890728967766855350317582963416477782984813229123318782663320014591975060315518136336386217594704266114304731106201101407263647236450634736382350506401328799156718974590731317242220673685087251760674256936556154281318890380962666773398479634716543986186807845695776705456986419850889552012096143252115856205615456323458838771303161448246599951243123320722020695069014165479879417784298084742558023154759355983648301151145865845920842156778231871676772455115592859389472252457660210264461313281639200622719403575928249481674000100421232485500486988805048826263138418138461635320489346925090758867962921705475181719157754527949483642072399720667526822204172886679772690684791226388050238208706886061658645868731546031362210855232475716372764629173294899801896416321901910019738841772882416050712551698498976010693888216565000757197959214299792628442968425548916227909467884778750417351630832744165122927194621190978149272855739968231366254821353251124340855535103533390552621845692278980273834868930180250584345674916695394787468862404066181017004678923095803080544026572073406091203481202482929327946826550522076184836268025235806552151039176887464804841762242511755253734909789665955286223301858631378560675400274384188972474678027928691094245339369951725008922257279946543495568524336109111917573748084563606868469645479565321297611991123350549450969925676804171507126382341268935149330344993964348964647325077862024019876620167092550302314330882399353298518740471139492409500299488735991703495196511840772320759591822582877056585916071874178939953218427623148823097023102461414971454292057318152332972671846010593606805516968039833722085474552842998525087583186698497717590219510778382151669667553080715006494903267248284904850883255185401025532216886821252664024141075968009199252886083548726497432503802113519071422348435685722636640786949861175358452191416545045076787678562745114449864496095012343644559342450987993657855573867693701762659758040270788316808013434175517158099979831248049393480065704453504062204278225727768318181173329246287931923623964275562236358872963099649438136079454900237405169639826999818690466817986606366051251104020504641436491313763824749850366846369158731800997688897031986517253926364199193217398098884288625590974802564341010130264067912500898061087739247378059971492729182964488411604105918168794302765634462613666012697862645413680855822333335505640950967237519720435227475670068026554942727253671177643152354337991607099152567666150572818025115204142460176018734100739114772860864254665830836290220132726049029352559503054312352183503508747327131380999772482545031959255517095461957678806790863482300479902100614663432677394451187402157981530208394579719607728235007733614848057553736925286782533387927597929327827020651268907942525311352100163030386118332791756079770982518436392286065745575532835939848512846923991337560351940925606536575063754490594929918260457859165844352603079945618259921543009410471794838152390798965253477116406691694816603079298750660821728104059602718862597635154686228257915357151507709150923911677360087751473955923851193381042214069845325363557917509886244779966270617848389812130587894502761953374713034336732236658752319148238653955118791428374349720713614787025023586307048130391366104568443681867295814510321761984692556797458474598029220560808029920873491651110175077947711051943766831943851178385728764918234231627795241211538164369877442582943561122869256405594245290347678662294881815906854280814161967068278582008790212076215441183594393478537423160835125574285746920152634135186656909095253191469070515891004054100905163449781223816501251546860142518771146539404119850368141453709433741019888823840415397785402477601157648950068666497357607560235079422689210279913495271231171623689954137175205894013701002219460321995044757527920994798310809402455195058596254214322864298416622819692463496461983653528690068665982713018891531394527764045817608568558130367224673796064278121268551483028946363455472004510390045408123681782175340030196834886705874810852517123766753168032207704752183679583399015378708185631195440265517423467022249743333005299834960546400731449176200442524384966545153830665029261729935414466410056086551966685942514304947805477211003815845099538473425592468254798876037440585617987866064464232095776712727716315018272472753109360407992206391490097899017625730945000493185011712984088604186541441168770084530481187000361961019924775969374631399150408417715795503503757917198123406257205206127346839780967174454096727775602357707925054500584040423146297883053016454142176762586181986481059330239402096509432754901988291890411473667743437858608276637980976192882315125347533160457488059069043974607653910172458658418620224687663887376465975824230444506690379407151760263461687091647658245477092444549719259235224034247051438778807630784955245677877320478303232264977198401925539322118057924622366706055185273234187592637693034282245349070523863345196273614820583530865118430896434076113459338718250302547020317370322435058935574603591524260585555784072187895343225838906428208769482344893764333016474843202024717918414278872980000032108537590454018350484844805348450727576136522218883195443839466259317850845624616018380035255544814509166024015354708179876543070777466019889471031905168536700081041353283378521928436738785483705198512565745991646846428758531987773835232568268597869559423337495331850603887056317371918827007005486165380489783597524761691010355018340889913292651825433827228027581750746769123108859045087166785424842086331565438118568462982471135111729694793467306886127194206008303342231313492223137661341921147306925169638361258673713514021009029982285154027359095147379467708720492021887961097205053621858166999589881866312152516861755949599439997155153417149462282824199044576900217485691736742736722826091822997379218448721259360784735392787345666318548362923666824237095247046503253347779594186858276675373176841675206082277119964551842271034571255403041443945395867971963049095407178062165996026680279612148725247793227319896166473788449750241286717915591980527200900868757835163735882186003783241038450414033882374524506631632971844007449829672217849691621023324359131099509724586436678830246517146938887703690085691662037367166433423009449128688137463406145059773619918453487006603749004877856104151066672623354048455585534523598615287399661143589941154509570192589457505564060176258410500076861076607231481045638351787894385098628748570435606218967175208187152118909899361858927584482577815188069597328554203918794496726767778699864958771863508594666971905952948872703513678561966128159757135456776446707310297019360485918135048532395972660648143938429563968575445958526604915600321569556448810288483094923750985231751659397696551874648537912722192024367881392083896442894998762292108027231643466096165585500081605880500100871913948690476585854218028774925081014259647439735836793925180434848555682098098964558095980056946855053778923528334108372513150001179009491413563352890938578055237465780431214268568339145738276163388228702831979514860358207845669945599516558223009031744901371630571928667591201875065817248613107988091029846359481463982539416231737628984342292521173411291627041390902724583632322729503780194522862628808506955238600403049506169176549786260046627582840147743317037175742402432143581416885357771559841212817255845626842807717405171393138034923052708970009369915119055885681078124455706775973046214727381346693515512231194891992160890815721815975525983296940966616353584301573312934242778602925207852778284376626170360774406953527866030165910833753874241365857463161838171002947264278218778926226680210689040905058348731821419672669224486867794663175507882640988491898321143482070781019904587008443596158612580328967591479120284158301838350485875027263576759032933337455148568961481079523594476023636032576345074602901752465430348832912480304056304627232403373102061770321079958539255796775532380206405067527307339396193641043989490132074800414085292489950888094989862653770359731131319683923611901616957860805186329973997522550490693251012827768134566919982771737437467574907447794229919077829925820707867660412355166101427374570616450166926662697717605568713647163466609830967729237525246626075234637442863256236049511533864861566136638222560898868654061340801637257034439890461861946204812128654885357891106988522663114323270489749911485221766993788262972959527273740833391915493207417361873028781464077343717418727615809739077193818979458590252668731861382612713978414296297023822583982689550258879104001255283887673806790273751711814289707428326766831293975551645737787627150536605814120013948426149104256867985982535197779600050777772055814336335786455613686522594503551530383371520521075015242868712704468767116882414136721479567786713929756523411433306287191891492863480180844600484359463087139259269468174584720033376786720262981885992300301764314982253852975435155846062352336432950238420388614412322875433928805971231074910437237816413681297159944857447469560451294834908262986023687965549089709540193091022433332369053608069880882294586791808700677942373714037353148444184969117205972554218872166173008591646119131707108159213256745599369051424085156370870868793305889383786370107938289291065451638821109835828275901771226061818786232958517068169740128077230125431894013072837185210712240966112870167382085709826208952431589535737855541720892034225512981405588011543618459487185877062657489413835977559791962169067888213623055543137753951137002054912039154509260083900377988410624627096796889224784279871590580641314630188385004454407587916613082912477614304641052173413369719670371209264245740994963356804800849358526869687321450498630473461321623030642368789662139353813463695225737544981213069648661985927628126096288836475809317591127977165704290504488373254150467934087491649154166962346793456022057690774889704282064281380828224008205549997517624038635380479882803690053832063934810651649389341266892775453658761109344808074142878725395626223260571035971106541848824546971728639385643622774420245050402226616757509345819500232361714670608929588237830221311358849329028982350675009849481052176676614431721244645387450818521237951919589999583211976979980056564963620979413058022795283075875187182272915634251145350465567228206933734636152341351430865726113514282821611470869295066114075674609087707447799899292101886719003996642254592638690601418623500761715759712746421902597848243594115150981684250494134977964068746750716776607965752825872758058038500692692443950983471591616284029799658084994216509154507322498770190204471056122695734053563285634930845489368443268750559036030862832526741618593557063428681608719930016550715734057644706868125009729210219714556799101983018877886281363613008091075672658518471940048674023261538471413575500559923537880380389882137177769701066534506920906571331216899368265612473502906995147482089184645991630323633270494217048464681727232068310972479087573028488971486001219262098017662698302845772651969953603113783239808481880076859625997655083895107147815776083574073478722697638257192096393510461796679452190290771967242610554011859243084489585301532536391906886897644604335887261034353676542584889712800467157487956986591363880847503095819591595239641524957150978162140092154126039300065890934250347064535845890047332353309283089597381277412004805702785730405849014045975624591698489734369201836956204003365034882347065012041445364658855384644392084158493261566446148235865416185071874002367734787290658199135523576230419678092211494767915806788927806831216670601272755112975202983497788132280968245668227839901904430094837634278500203601552678019198516874918791169302118259701758959200203582222322995685131335806711577626610634739298649840220109872225924292062453562640455413582765095171639132199537070517864393765021769137985549227000548143169491871842893957455359246834940846115333191098715849144370016904356492593984329109678793212384922827365775094901733644981308562742234034546678218251541539521921078544231489951869262535504183192188939150930698067447811791905722605985095397324236642027429606462478527384208080173709740931846416874707179830995696001110509508235506654012777555032692208007780480505466084269061310224735232929787567478358688877013093600416737323358491146168861956511225594915876778387785841538792300094573454481038585872399595289612265483174121932095560427766324556895290475872961530062211152535132392827528932933796790833248532549781988614260307565252059744001474696327936931586378846824110370008700215164868715224861777963514022842351007665470973731319796370584858030832835314002195546416905960277853801356634525976626494786152742963308323299166624319569751780856013845504514734361551788110450151652089812332040736645635618022229219167500878157331338132535423043739579480216201880162777770656737128675892597643781553280607217126858978120435259146292341078580968892003897945400061096591825565848429013296349199419058428777787679809201198432685433591672527140485061993305965865104378776212076921057560097296316959418625364419220097447117519787142385163491477797800543039011208007416417952763053573900315597984277782538566524747708681066567634007001336359575942834298215005830625976812969072414231239674973458150180114218110265661737966129379441814277689523750318989411586507421629956564283775150138013793764955199195386304071238626239352925313866113504455944941299497938172099387547021273424816479149154500940398213347628044606160903951673498806684725277069430716998367686481903635729465633939764336165890050621803993418594714511735676734700280477076304434162236262960292763222550405283807435487516465712767055683731848483952105421092434210577665500085447138765487347215878968958058294705183871126953445346657309808955008777671178445639811650886220832905582713018421614538313663523964634434873398291736079234121799752210562358305715494615194814498455023984409308177886838182215361455369779039235739633160973894175963696333461507002334929448272530307654445155489325044134371049118703247793689965549149935137567644058214631435819602271686650319608553324972584729901301997439459406006396078770012839564493945991712838569083892520477232969343453759519926951947767639406988589443356324571159004591459389753685912417069314271143498806229290893311605405630556334876492764499767028951290818887976687003140171919272733172217236890032752780054267354433225402363078741340462379335658849856276284728848611941999067719701788653010288333838024392529268453702108015684930900600542540650831477534182898564679874658225803659206523490504735518150378913476647293693556999748971540970609263756768187409368588346649170951852749974601226856570220104000163915562134996311934604547737953208371526013069593318265035665450081030261548307636681819550803162431804016165731277032892089433762547297610097741693018281810262777052632791168878870471790870048319348371138609809549223830750162275921090599470040465344004467584148277298145503318809836690227362672486892544678761255652177690352499950219250135451082120677547606300379055826648492473076033452755084261321318710665416401918876936397516936233306721422286522249624586641954659084144905994679790345185212078407552881518490575823253858859290688717733910258968324077744490349656733430008663778244450261245462923721257089924363057823142863366694900244743809548322357691126050723967626533139639625060095110396697737004397599143450559309070145874559434066076648752906796589053877218910747665255127609637882368062186740276977724755668374629121006240622447614552525288968005749958349163748607380315726783044044149674734563661706987959322983866819479898219512149823717801382643688694235878871662448047945507568984127874868349293354222333984884540248642610739009754271488074635791712785040994576873996955658063344480117314339913626270329922819122027229420354532252219324521526243258670309479158476597397412877209954738873145386916322635684852751565033701860266853530081721082444137394380578770621885810365528650282026930075621631646328268559026339002624935846673202074336155528694982090613728608807410851590456948480290728755472850392402160009795317912919361630318798791937297156857770168784773513267488710502992195478193711202327279086744936755574604892482058989457648735483209807115306194052999359652720864358726190627916356746225220888576670718909688826859505757015273400406893561708851298669771834857019476647321831228311899509568599086563966158952517043445953249171216865775953913297917438499190323388977446577036641505899941068904003170939683821337254104150092478113486438747120982203577261552408999203542175115979673399673360255350595346192307745817159674578737967715406380567869346655713438400595639861909153937486609514714632168266950452414772804971674724838521911813301089359531038456751678001098705720394363403911330885341765121087517676940645311364288982564092223850928395584063934479781205758613850830446056390296924567863297879194818523351723011122408486428982010725856075578054799886043508061819779803938412379758133181873094397407046111384436997413254162387361188852793788200387909996363038617027443473906403463003962158121048820187000216029766663430566355245329748438280950458332102464233842913074689031497453630410271128886808111635601992510787100297525129759023041351878177023664567289674955407808192331395822973512877435332993212463281619434259325787684972247748584834950714855335996588194107377752702717009115398622936087533872887352602214484702739787160429887702809965615536579797038232081718424725107361350284260845509061801579309339912266850412053027530067269653411400396963436522587292558519171453796630987979360902448744702413167630473202808582466425358583701576814695237914476007455700942878793191807668772285461903548936796698816427693078329317846637562919161796118881617106590037476141966366222696098872903334581994546016017473295784891505959881777907100207446538826132902193954959459904137878407105336156204528605468722671016748312965619594393250046187303802175597252414893370128157898760187646603745714854016432626443869119659211677780896764883355739563950735592306822137640526481364233813200568302864209327747387579601562117135951721714950250881574417607458035181986567311552261326763934412337628612191460075648211216067876235748863022746347168789985257469073460532764433431018433107707343499179073473920853632548885792449963952521128779755154584334587501699009731224307905621232785056465697410412387810944235149128000099689548109780247690225844329638903967378121379879431236733597774430925829765644030780935439371437936734468570378428459780710593067602519498040018719050677817119714203595686412706043778188501581226710855325580970999599361840106458077837591359428416837328340521964646254690997663064887441865962709424822110298409636008154171448402741337282257677988443472388342303954310910222659837299177043341808638799656772183744068739337370744764010554586181067024870778754750457640256832172580717248304910755475019317551012005322858267536799971449046567651893134197454707233702979204518138604277183777935548424619557716776152224932875127644611466642516465823114027206103514529993501099085030965621143260059266486747442277628171714907205911107204545127393467445915263310340276924587679943352506469594438134094507854537338572360910664116928283522924170604370360921803023730687259312403173463478692348210888517128455216551066450928075319986176527777727651477137070157257782240671239314614460236915574768156617406818350204433472405403596669855244329547464343881688067307009100176120782726697588845013379579390073120931345260794411635682262247718479177957674522293348846511712096014832225413243989530848573597408432979417750373149218876830157590699066913155323974444418608189251916611530984289606972653204745389675980687802253281381801755933003461378422383417258532645456749022690100505999583386005346012497374549015044571296281908403251663171062953988126340332019738181413062320130061761661851882309140641219468376371844335111283219709464416039391621562750116677278107373889478141027398419279214811708929442359260103943971281678910085332511781636308545082434339627177721502134545074811463706315803750792212938824942668666829298118742964149690818801259048041877726500718177752713083778373062367167317044883311867822571672815991590908519721430842644980582093484452712494609192174293273005752437496444993571891675271457276164351584442911115588628435649565355949153613256127974819887998245983686690587421751721559625135630234057061630051790932335167272641711001158170107422687475677410180193033104761100431228472317534466770354640954707118171768750796190332149143205687723377962721757794767093977957297698336658829681055027053094168069135569951109498428382839505418870668344012182503673303529077062406314329816775141478115035745283235802754495754316323899964291852153268252450741894073574348369328153992923561249397833817327487214584546173008608301675061575172809928532122605442886330625669367669652423954579676131248086903308724331707001822018372956039111765009817517977297697964402952880376476347180452271597523272565174721301033190695914814978559999057990293696428721541591622728652721011879924194503524125171874662791516868954172512836622755717428645005375197641070579449871552543043609248552222040702122234335562414797330319019099107970693099884996239216432444706013507563401764765493727086058982979515676503875400682914346876081638955507831260807059834662216935245964720974871839534683728005665422805842839021077493534572843292834497871738584217082405704499546750998296527323151577955988529449220519690281601864537602615573446029788579239414031973162285262236867291089312303049052053314687352114141447350996772039447332329473792791910128215407595171326744092040276709461277483414610315492991125607636540680438766865983706957790287832558174847640536996562569009741751888081236647747645607708056168767827098379036724270205477730159538079613327508156934788204794626827162392360785224649130425194899586797699528339238445750548856240192543664801562654467667850255667129285407791016340023632655839026174640687287897559052007844377962893487395355540746005404946529945415550348270484740591128272115439562045139890367537786091024619504884017552028226461197441232413862345285423337836588937652501736420845858728591296402282462915536439064291938046557737560066409351450620771128330890576812283816072882597442125331810652725808833039303610840816365480930689560963061055716011206032345163664774034553588620427005339626575378840516487371978906971183178657132074055855398080455104048681372507637847944780855306374427730307476609978492727727551080217472904463008358041124506270225206017309477566563775552747714692190933973714860819431380574876480472077857968902151812101455617214492255554144034079746631498654127099799481471604900103298118329580776393182722922764955532708156822580114810851171147012661502468754413174760636788766110965988468493000384397882841645368036273126636573248430763565470452849537320245503488971927622533427698484055629599125182754714252158431884617069685562697475677007485659298307369693952342405902890876405303355675852727284130165947885254376150105242434870968616593751870341410959505130275003711017554137968809454387273682022242740746091952453154456026258317235088893698510519178481159521796658087353664760602679249888494272523031695134391205375864907521436804314405571222333012074768938422011391571108043009568397334259738762230088482552261956637996047175221560929838200196869504812976873851433585512412957732316848577320780298488914526592605406477361069523982428949613524243743835867281213395134418960863067342215286769758727772906114787784979110271284649155617827108817228032960536423052199862548418912196277016560307756096918220548262585491615422441653491899010744651415149592363743800253108871489941811994317429259013524560854010078475081991361591857813215728484470369056950987848731881001541952106488674157862755276748069908364581082255295993980544736085753183374144315569404050924837758009258814663442069517255598903786769832695771498038580025772057529557248388494707953650635298803309927143956441173554760874775056634823226383734644562195477379104203957621280223971385097288273847293278718760503835432503717468572204267363068858164378744268416997106387914971194517722736803013798847555598777325224834184648149323128215103353604610961447427233037266971425547726173534600169299865568047172595023452747507573721636337388781894312917186105632080941922380719993358352900077709123577728399929334781912311227895303064982455184234585952272330001073838637559501204360275802533678155517457222316804630417091455153421133109059169777702922196028370656111161439644082026102272137579674903049265339792151673613071763069228708934311515395775068955440514451498227657733833090060569785098304235211272773416569305594697081140375911094276240464474416259543744329901352423102560603173940910295513780545187596032967323232011283016846330034586360352009166314141141671566705266666107092363564604119774429241983535569345691163178888641845521660208684835735434708192845736395882084845825621311205217566425159570766585617584578446126649158542122540928957767323735758618661097260623262752097591942403174871000606082894061721937677721957798596248310813507532805556141359785586934117955419551132160902685473209085315448977309738653702485304726476811726666888703705810941969338936507763197962849109539708319687518389953569139282062201608622375962616938321149355234664969564755501101765228787512115552778963658324584165190150266820744910378887863718079275994360171459551436180157994529785139812502500313171561471245289118957924712991819496689847919792395877546235752624892947169927178623102385043961295689729057345664436439206410658381664457330019331350382626109790070713964195742904206623342341031489385482065040020659566632536205781145437873451416078656175077702859802791694494661241823299239820488330762608223602932272852561411556502687861963408202446018008564668431922025268622550840508397327049210761005082444339836435649707913879282969642789639200207195823152130367558753049057528494399507058349009344255369109603086193927010985468869655627797125754114932459169102158197585469108815239320644166373145276232975178726386857833941061932866930843168640836634551776325839226227108441837197187277258745038999419227211088894612338570317094250371436138104355091135166934409987219811022478937284260371916077112478275712852201188672893836400795121894365958520517461241813179777056194979578717079809768055416500354278483735433015733871263378786363985069778427397240308930290609061100498086716259763380417630329387168663972375243537740886743447327444366815000180859069603733460104288310153774182886930709560836266009741824284919606259625030667789245610262229879890513141585206145106618889078718259961399841353058928163055268220344187472237256696234664818162439268817145939247463990712958327395055054439085644455145692619658821486433113306407250117009902048737480453018173399250891259119061109791757311432020951286204297668616584584053496616701805322875602181587838102098742083219121855245966876976322204348436876705809597907606939920235835942502475166594527012484353905337803830899392964214866610065349461742960631839897866434286692275155342291982650013331117405074985230923446926374388417900107133441754740927284898582745852108203212247072864863128829610926617263147398196894136718468397853646015501588346776338957242362468432625445539789851004913354602236150042542998107197416007747663306940454774527153659350283748309918610614230499491805853806390694204031284613496703764948062199640057377575187330113602993647018348515312612952443443216246192055110020533187976907341487857848039063788868651924544963272726772664840431556878136549218090269172988805513056412264244579282587998717115961630803814713297904612959471789451287002383273212304376896078728247764698126438283309616048562903874133508407002422511401553651540476074755787940402692465462260798072540968230135716555000744457161771268759702300501373699094023957128256894924172222150332684041359688093306529045559167596629381686691286602944835322588227204893347119233593814803959852449488887386593528838033985644848513051155707639920182901552715383013361824816352588929133334572826638983912462188442355022028921589327162217812147410646786647721720983091421300836783775796339268759835877387272555769790087259880363081084704576461133552811145190848969366710585839063698680036581770578191915488194636169140390586081756950362314842871114908840223619942806270042631071765681635191459332776687605621722572382832537470189317579513700929145787971471596794577615784630708369097075553347143223590996980601543549349611167067020866183266324789294334019756476332522726783308574609366694684003340369962181532008784563407466240088536746466242864709259431207971745701196316353838736388195990324553322540220086445358350534369667274397464992173497621308286854433261970483300248837197894734028867564450379226216559454229629763426816828860526675726527425485012426671996339345911640140851046591425342947340905623787432837650855410504599290419476241101496975452081278275623599056871160905017567300814170154636837703027196532066552802691531875470710306911412908802161479120786442804369035283171882742609466775648274316980497590585940113107750601365020881750550695738205829830566474028304536232842242785967599001297687212799875002253226325219077190585369100607053643621123639825994812466714814272426630526572650313434838223290924066590792585543789496042989408690424027604696798445198057494370614684574647932224030014160859076865150840232425094883580693597253250141600180254933695559561449901506528138407461362584140407632238520122242379182736722722310304380117961543710587222008451568031140862045927719462698638483205444282600645399953573407714737735513309336196606567469146458075087256874145577792015430936272299040890577051784088957448482431854390128842422399527338522904323972781584490626069449049320060642690667820964690015850475142230379849220364519772342985736332467528800776272418340383581438710327648643809448996642712981521198646338462352837356886688371683503750052637385550198972166515659832986276287164729562977725862053098272496550909309261053460879431591246425110982196525589547333897127373410152283602896249784118049996978619637356179089806172680464742110859491774466940699957326282908485297189807878787737578303521785510379891057060930111300519589874654378470139916241500529700359873411349912416860611727355758137298335888142583843416167794549058559723388058838377342762192752941512872077377700287218292599718571395727268648365314908609503535606022755813410935345846142359695462697836054708897154825596030457841357118181476153173932410333823317058969418845530514249357641177376676687503071525679704393215388696788800198933239473742176777225590710988568553419089293591500092389270827740227820322976387433031614215635256646003775747332531403397526195921865714146509081579900007639375913516094773713765168971411537720964715045405380129081086167606701891536124746736738991790910323774066714285085781362429968244227341556926093871770460415427572368612887529312706379073600319669762861710219879357730909664942888955335896755675398786850409735013587078329186852064265237272169806668790104264585019413197185985069181827629881153475510095220142666274852651251297020996143699093291472527129709031847743775708034165295655479596883367244783946888211572262685782314232899504002601959109614411433367035960114373731408567651770977602666916678578317587768613356799704646730101643772136428891378499768421606214948116617991350029636148311216597548182237001566427004265212013241158165787617471995710328549801651550709745218850276764612746769220931487287936521346284042262155248627146121784884966096528265233574176414779788890197348086467510754142661857422505856539396489953189862149752788954858288035979859675128709799192386095524378690600803642372389670406598711826841388556870627514321774667506446184713777322753630729276788295639311017957016955370210422135403182915880794563301856684368299636087641558985357391723566891707825181471338611632261195334396177215287782011224645198543560560390602046487815376041287624045824404557812350843345204631794076879270440213414254508028433387409362785747297555976773961868803802327771572324619989342010792591702345150867164466491064663477262291281217957213165516808769852645113381628487580426041357588659063007761999381902408969827722010637908255741757822715374795402501320022549980079343846850078570322176565935520154866671545033286634901787710442151219751456755546778557756372111076551601335118464195762734350178666202024818964071746513858354801339310255492500608807308324332915412577023834425196090490121477047540686995672953317126085637591845448788894070318978728030123133380293631645303125534581297323564947799971421847363556862659994768072473878340049828076357208321015988218562991758222688589882508763962446453812934787536594955698402133026225751878515928684444222711206983382290350522966954053224668994104668639894955053709534350300420555700310917692452658350592785630438934975443316074495481084139803753895642478661179777318893788201686347779371815670956706726317436670093593123100813702575680867086273357106985648978877900102712335239080653702439641296009049968322004701017158688131831623479148002650149309443013228923764399773104510422219039916581677618746241802559734086104808071223143698422505007161568224813686655769312330733699358712247813825914213759537162850558697879272702776650484267959196567958610064259824513828397489264986443267029522734639285654680060783800857562779099086395796759223195869997705567864837377655721524561741863592244022214176381965053906009829277367586800631554753372049189928282889202023658422665075059138026565416283918467004866779805924418553173889601863606850473842011436997762953347842219989050000720946960398509793887734276853480519398804854824492223210344253258543328800974659331190189793062788691240615539134562725799915727486577452151426122756325611302175371116107350021868077583000293801386774945904816527164207489753398164951988909371153519314828917510613235102732797908535544932595953002171701458289717774824105860748593812958408948307588633146939785854420086945993615766083944423372633423618338267826833439960036206590861337993741387982225807401554773065190020985539885420064828211320434861898726430316628236178363964067295001251285945042372337370176213501463446490110698287358630284490038382412403989354619025269800769905107933025569887385371872932943792145707097837584228592521509516382116850234986636906693082739668283426038218399115498787299474617759747770712437025458978067225719989133896438010168732157499861830355508220746076772195643332722613482678797278116676478626200349973302740983819467727013939515152410315042148218093763729401584115632593449315184788130290224571296977503757537240785209854833662776950905463488614427649930215981933274262796484650076709805992331861044103112614549644752590823915955558917747937325264283725316730502445463990785217721715461236923386722270761014180079927220528713596207921993344918012999007100080732591221575734149517704307978520695482838913606653970567567490842313276901975564473881955298781702985774383006618188496361271031484352366019702022647891095380094924264252652910913024269821284224421242866072112485166050796792887009055785294978428289881430265024292897543387597600433972353526866259388355252576569819880218704874029950764636552180583760666327241748618428153338335819615970699960764613724888386360817033326831155844065396253760059873118489663533330226305944388081966274093890922907509201919987488662080629967103525946744595327510894542728317081087923228291473423967926450481087871055603575977955489675627500864954867475984974566719371976442388347522836899118332308128370113760901356387419124570990177874564097243071097222891201231226563567599672272706066294731168103585225257386908182829559518648120667747386464443090924566565136320179999384247256385321530705697821669962167335021098060682165084073978296715601585005528116702151527671028026794352631796378639105254651082755565998072920042643602141888109872066781321151273288920515389350193035430113455910200144083612308713601787779518584609848479737917321444254351701369503677681627597849459921178998120072293505969560650547336911874141240566757499468510497808217633001977109360370514512588643337589064905349554683232742752387416875110197615902187170583200167922952447593864188795596261733230918177150312882244341281473431361047766667516650635727088932416214333867313542441834847328391267238181343536291675605483528173780077291853135988652559444102867325506829422329514166660269098692034915240069437708405354658540503497709679900349723762230968467986831576399238518958018651913907958668852432566681871315648473255861333699456946866339390582487705899344596472161117727926990182729288292003757014947681864641985013948553850409988525166994009374992368639556004094158260002857573880732608388878575004657312723489410173946990558325303105463942059464485083664800528220787654253085202304448325071720076252914943261018183121865483546988254471719466650820950900087731671588196294158286788917635230165384029147363309646298172310796173225760935736533549643436327364559982779035139384051273799306936471383303457868312362998263393203306262047904971645679910459774774379071870903482660590119877996457598123250903210028836100336764275388332835320454608421469474988689503730802673291859818388049771364733511341389851016674569691283420695593748991294432721996975101751977712524185633221150970901240990829890017951654187516824116112056174559394347796456626194213450946709706164627092449208990040985772373393790134644907125230366294162050151731275789184137837185261496102529837213719752402853389994522281681423659786104686629786873982574246106212683329966203434524675632002116315899307836833365641794312649792212311027198058655046620382792131563884055877549868484284223116231585850112675332687487787371843233791258687995469985372804621062556039245168409164785234073175908128456264170161840994181362251871621256511010684249677305985596123820226270282763523762897215956586797545274248883756794695965823817032881936518968573448644597239357374365559877053302401086790305560412896218746109736390526578388269622438090056664067077524554272467433421295306472781037044562619016551688255548034918634263045898052313210393890953608218228419936668792889307525403005150635853082169110410657436744037421120542987701219140134931621743025417793403534446979021952175617666014035010587156552616032152631583144062327503272635521945028735319208983444584574174565290739289397163133752136938492966040000582038880982788164073180315861515912554044293630223919772677109127301092378822212972507329923388877839053767774848519799041520258425717430126581350585726131542416147751085184666146179407800394845752430443358329374163834856537265663709874143171005008857637383295091170116087813449179642269696260677100441300444409335360244597967107804005160890464610364988866091875418614418495438571202320473568809142866794981611592925147316110845699197423460659000793582121520111970345087707344860683909018217105519233727388098787619008719840875750713326943388569277822735929960883083447285509931476439170730855500555716818660450981300594644989276775060284566553282399867652389338601221311758687351234448855523961949433614630176563998974703400135144391961270506166832944948239386045115475591476680351489194581406454877114639969098964973357973559516325247382485297698492042175443770488658228754465170117570819903169131059810692893626780109218933233457912433239635856625194435367836425683558523892417599218338455582852351569492959592802845625027848348042966821645771849707484401235398813019765731508154952063841869703459991775488574603069154962014878473304168725591179307320741372540021732821082117418138622957879695519158960075872970799154676398245572292150778062627253081562635401415058223955859033009949027954376357448280735101550032691936125648782894256560307424218795935737443540459001027644473206716243380973394085546202189460014524412769642316019467825722726108975017700533485728874408534256150810140109130927757635756848921739561376370813268320665309916736615454575626105748398459020468158274957365683096119371482617393535815710558048146306324397419954104083958676498822794276794709836024637142151293647402351772226523272209818848946777267854311657607609151522570016150601378406887857987139633743765789449414288342771026225825369436093893702642524133438139064910949192327218549086690474615940746474440681741308556479824194797662513353083901047458965124584574466473709773945737727692628805526787547729535649974762114091317480536604729269055094858396580478803622038407685112186093573829220171066480802258634343100617906151809980459979515611620065474673651776075268319498565679069046948211393232820512240854356672499057996501300485474101672144940060702619927663401844704180719925572938956957943190571177530841537376913251199510858503218734130874869893560007290856857989217975838019083801626444190281840438864938361431988884867897040063080723808370507132315480945649539402841565024625049011242355261931800481635492452723845141496269280572844489787952125788161351997039183492645677459724676250928360357572803411743408505263603451449362606861633689163297594887610840321043094566699649717395717042924645370522268574898775144148891444286575942881976116674618718538258327651936007678324012763068143262494666416225640436052319310629508081611000725711468023863650825681323157212548432513225073536037225143319958496370130248117799743007001668792611023033292991750892715408709771502259298997457132899039795218889213881672712505122691681428785393280539821433166849058459043171965834328067784867235039001298624379459856098958391033777407551605187845192679791996225835588482771307171465830969970408563598386906229513230251370630244072410647462425696183432161529787810574598843138057588977699430676328261892189312131454363753962029396213472445998012398428855847856000903802057153374455668095022053661453586739464040198433047850725376997884970440596843598963991190971938193639519116580994885821563098582316862532045717522156577755843736631715484948906772087088394780497394772470671303775023682333301347584827437629449360391507051689438110440294459658398257815062633136166142104654337153858963852102121008289612587777419933852940576266011646869294040560155691510579271897365417456818138658810880312771474049373138198432596074680370762634068854380422123262781449608600661679152302333921315849556390621207601845103289169510577932118709371080181441182466773904921798252265140129973311060654594742234323974011972648965801353179815201282079860629425018214030291345020700834073474675112636080580481272272865093416229828026706893709246705336657115983932470359349747424681410379657988063192025807233851801057441161361668197240220175223212031479910262436928355100731585415033135489598672636398227693817506581394190452568546781450345616176149961071909085836297070392032585202144750147178788052764741517178256627530480166032904044564992800973566837623176182024414742030193430181156007792398257034044620481178939539138366544045519585982525203472910198266479933752829726677023843983933344458124654292833704235553574272070848107230140202582454562580905252464325247126569479720558137451324235801291993792974815226513925015796072849841822357945181570207395695556167059472749381986969252650181165912996406605386027772051778520860037424713544729875575420368942884496567481059085420892583303886115256609476688308879232948533090269881986499779794635119927644151842774412970708238442378413412721932805661047070162339296496705274748076963061196794899863795987166669421231806845446779058210405836653173677076388314819201330527960288560511183423021218387712701854225456652862432828634255674771785500384885295409840686753204915015172652891359355720327126101694743354895952886254878033256530271549532807672311468141562773158232875129340112471351864518192189296744596171458003226131359578460301053691974071774008389730620434167415642794134291417434485093601954403222367318935277436554419699758087569058313816571197954091412771311765118860362559888012582675301251735422062762364834854525643592719137269008257911459796755649357816903449577569899293189209981613715665118164677303064307093133544862279123629398366067319428397123658141809097967616758590419491325641819473115961056529061677820595427366009888191342334993382484482563281440042604109607573838644617273352953787849836075447194407432086233156176357390925963156176377161742515968587530979031703918366420306842342013260774162073492374511663706459572870435832453152017647075976032374556404965254881094814231519204938797360526447435298610939260649353869750388003308411475039668050240658263476381696321002384331750182849613643336233231857369618888885637542299569772579467612978958086932591872822543445743232843741463713828728527569464934655607526509148059777086056751637401074825966795964391804041331393938639019508940605833732553239087604064149307740332838861967705571263429970532451218296720866380580169390354426115021431633207101540349354629513399225702572860537422023499625895657536045771699262083614493676541748964255447481234823277423414209717034745149264689522253442358465165536903229891612703188565922456080559259793984054354950896166024442372564044757976367053060142382525818725429773393112291500034928199847617959539525042031205587866306900196841028198879501354447616818823327134817083214321269154312478979989511475551130405833245927434091804971731835211783898557704799798407014962106715263477273515004635896089337269256449843218147973312514626072713788577233343635363131153876838785864706768820742902690298234519015783869632869066310437157429590357800866988254905499938066881804383625203607910977708255037183584452206436314304934744207486998567889078764404572052114059897767767666549744652484676044744419930149609959239724977002629282071694913311951471541052771213880938421693078976262034704132880957891351290764051151485421630706629695752554466468885134731372732365571986760185414104661558781277556859417455773703315103534923177603754021112795692382818435531963314468883074633305424649847438905362186465022378681117861552799552642593444784306981058400219507996748266721850697402189491194429033974955564007772274746111517888897658036578025383328157215434645108264009598750638720759777820597638105354457687042412636383904329299813377968750109554855411457530045016416143982802720810630400301905174499685677467796274376066285806845507577092777466804644635251276725554997379089943056995492136736234593307708707365300418085407577487524854988050837374029415806684551298117800812724459101694171236252903350005426153416499690487194717589746412067895114398372863623917384445131327861519918752500995662521040074628295082791052035590571400812719504976055327359142810275339228312399013166551133663338798911696163893269047468021528281278820362587567552289182139739254010613869627195911574636562719686363687158776664619570598959568486178303774153451906356481832207245553879547642455328586327679489658734421190884456135035205239117499168312296152741175885289747055737111738554150679333000891862469292792361029182556640594709906025682951354003440026429728175399427511416501963050670831609736853540025918207767596684715983696329638278960009370345858136822553817550883052117310363940323087655103647122668017550133288409314744064262852645830010137644144401597770865665632881015015389918582686673942098084194322342188126711879391160611554366949989574764996462971949602905792086584697451116851064552039322953762868696701260018204720454017463996988667177044772498162991508116755317340165757789688583777121265696195589608199015576589061180272100164235832741472809371365657417839536421222652807515034650986517244277016223239216124844272073555283428419763666154045083902449814040266440817983198787843359444142350297255903004967031749299460652982538234157061202577462622576236428590508729490476184741500450101949469810535794766041999812093925929006111819781380186213449877216273391758013810300784026120501197396185166390575455059557076700751765609634852687957356149342683245064488073682077636674709210372969960650475696559837346217177931901393369235289072587718313695964557193598501520535558708707208672078108422961046710090597182551698209431811804955254989438854600119692494857669441874270439334606778665999454420084509231678670682667742644629483020514510699523390963797531437382869292624079899916078812602267000415582092882259819082378592400890929048286402749734540288521461826795644253802610984977550629509992617746906250424309658077242177488604811031127324072677495005670480532033888260087322569835168091839427912765753500074824075109721605100085443136279327315306669369904718434388250606267945207538679615668134354903619191925662666117674449028219582013910812883711640471723674627821124437448329582990325995831033238990505720148926280273623779853266233752869852066702994416594536839213949407135021300148772856272531093752122407347560355269528775639406891196463947769598990736942188633842015585967838232247641771995030268676385837710483168682189572665324351365049282888947442915359005623670409683909048539612631516070782592194071937012493091569725397164323306293743283554377143290983101287540312319115131798984495573962924967887399951745083645028768448200655524825494909933992036389544047623012071043330871323469410955804651201641901898209990360302232885624591399094242434648262301446516835042720101199846391986418820856763223249776581006799873375778786020809557012368495612616782693229263940819562739938835699139793697563803604698515021122386144115718129883941410590856711046140199444016529321207613396706234919880140374683841147943508517759497579977341679912081049016172533609718991284874023727311147867453892859434538154161064733655110653320041941796118310031340488003428356508255612783071403491750258101460987232227323978145105275234955889333787608212094154726157145167379628190926297186551766204764841099776177512820699113170300856813245805946265939065800281578806925724021334142673121640467457853582989381531534766416564615861628775845160410315485305432885849858277805538804575654225607241288171926413419849428223729987353357662736029601622948137143926017782289296474956886335641589295051152297992274995790787535301941953713749598813822047920977185394944199958373826057513094086919686480708774391101880245271188364008432693837320428372385071953223623032881343317217406118631811313069180930288639118601050664772968907278816021388541805850093451879674229469392700852275337999339808364881805097272248082286278494827376965473009952325971722588326770923998276051441228462305051282452729382685927681481153235838487348247449919852052623330992978859798725128713335908807712193044086442268001913857745542636448873968683684230117011917873718610946038703336860588483596898779603566937520689396747112894052239055649814042792090729986843039562625629717018453853555742833407934775676250732285666644761824938847287201020943214304459788301921641492273157492650525205176016423713560202834648211985367985830835413876640500050020188893280768449009717633874931220402392009093617088385400017299287609412697180148394138458381236783827708292895518420735763060012784933163852526535130576870767781800578451803459927334796378524829736655752923601511476226136053121005863694740445427618932919265175847401139825633699757040920682513990417578168508486579885612868891923513945197409579863132409326382391663401258245815965148328615408991734399694845295426460690026839602582353853443522172689461049040853156576514524110987332300756561004597368671094526055723488266103253087649972576579003255335145847170637797120837234173614518130111717060770821403754985475853880427376275681282309112099929015411687866231953890514655427554953657768585022342186421614645691900014240054481390519760365160226673237707147224668989898235441815508620264271681063844171808967221597749168130831478075307672026907381223781919764919245844406721412276016702249896642569396682897269189428307967281252624311790048925655046206564115970421376612844724733279916141674128139465047150169948346349189886429451352898798465992168348222995847738444168123061477476970314304413415269033338993852876131891607235051764292407007245599705001309126098457945682716179133071905687370307301334664279300765095511533685051503610587494027354706125553008524948631446141189501697929153822901404888478158135751889431388373586714330635050279772923604086729955844444194916844872232470725977814395513985840332994098365677527176464006244741061686574592968668247996238224200277475001408047478300506915858734863519892868276187564103953806667843042847254721123537410572299863031070701939649477719415158627414926841883941358922097484849124824907565744124565204974951494012495494653832438825727057678200030483901501604256816605197734655998254032310208631617552353943529219008578681634889123494845439933153575134723879736724554866086063763414150750798264017412627651540878270531986642557208763036065788108259194347907040258891639384402869984411583950222160474808889423383380376686410350882345887695671226811704055779672307523220600742405045824042294726180683812176977449836571911498017684462703122695318995160359319609721513345591513778076164679057407323085852900078315341883666710902178894189720160876386779982357415942452407698779607055143969699511111629041126540193919802495115888859977008765151143662804705125374457979258124227265944063122551846489080377859332463462673369611752933107566859607874307343333738655249121838466854490119801539809197245937383572327623455128956512152555297597556255444217697234633135461357746732309857167947398217481573194439683279033441080476789434887367344587044522710912221050948039129273858144703039429051605229563218850093252644761904774704188428734973416178905999684383915394714919107608053394661326958067552188225097951486325261366198624240893800971033814071287756615965269490967221674483050753657386042478062128630107494731854312708791679964307901966010541505460369358207787978068806735480323236763222764111044112761284675067148598071254418839153317749246893225663316571535967471977665650701562289531008831326956420835494198790130597147936716214446613452771580767342047431591186140762264487622745544601111038072412648458213384145562387736430750967218614220293766223996048321223642816764513415629765407126767034654787895092941438047425255033452050979379774427367084073031271689835995354826989771444108925368006173960661678772929527097772325660563664196127239939619558504499052018567853700001514048695426165918630967033590519196539434052574995697505921049368282466141049014948510887563207569473420686294702528493357407577260944506497239994772316031350630616095682556553496677370462366366334289796090077767969786157614030239711540158534193206848623158415013117968468337213249625788980699643900536163323617275019711273170675962426603724725438704446823859050047874053260687839142957266434967026269779295627046498288024142091233631728290650630680061057480145398850450581159331245222399394276475492828875115073205815333572305088681871849256936098245178147947450025309922978050580492499653493807322204642168701866891405885807856431421446795868393978702130125327781916141756743273963753628551201118698663285221947989916527736955390350475341765631573670455778053732634424399446384455724389503953188782268234008439967477083328989662153220552066814395960880428679498357470094590359919936916529848804459694762060250075984798864458013412221896288939445143972824825073413143469769603510257365116689510554557944497224460285948685740010822644813631224923749153143593241106806490348989422133083379442268755872125554838877871782145455283714970170893532705993673382523251815036970983975487936137060228699522576618141927714250223600559609208519559823434568164150552269378575259974470021926053429367913302287856900050967987224155958041716204179074682374805914822721294702376126053673164030526343806124269515996683328956557023046881096830777949762832884796205693902236507075070484290223379039968875717836437237857583461612500485386406743291737801605840388910961707424375427325941829177065610532342722230994442381372314486750789191290343953429827331766776434182502730331703646904228984475158088021053167941291708037778684926565475295809399758601002865100065559245998170918125873524268720976168654119278721366542089819720475537992292096078328366748997083381514424790011084643475761598907724834748325090056730674568883041933757295881223244479295842797820963340912385868494637199019613178660298854355116348054125209634497083075463584376111643966915450162186646013837835279431631328138974866171013305307136980313756293063804690983202295399547478600672100185725447029674320280262036827131949638000895918998224259350290428397785797626540678239653393899148753607113080480848611217094536850826313240476481965996172254309447440313555307908825221340219910687194960055781697117698364891341477136679636781493626697901382833158769492915160484549640521865463235257132442698883392542878801200000534744540381941507970536585578151734174940933592487081989359617955431212308173416835943609521793347041275301717851440976883407411146447788432515449611604823212164149812291634618277044630886780132151196614824674654618989614915851729359676757634034305604765991531154913269806809982661003530794160193097994863694767972678643706931716370082427058901837775272610784377589710192780223032922274080453056042806929132003878196096126956174644808333089438537971710300292031199393610712700152466721319122367190023566968868883070999205719624495557018668266307070175119614575521828605510734167992603264425253620789382818570136873410468003408297600920820625426147949683025123692598906545789286871123051028495644748182801147166832498285067624536838275537751512180572427892057849313770420926710683398920002510844538396899498072743454511089189762514338424509459818402621988480305821699661659280237863126334243025493829630743577232066336646378811699145622173857877765711296179011744912783605296203708366369898595571976353374098276852573527294814059887281513482897125202273774013621738205666877097108803933928501907008536940691556525042259154620082493573245001466202193309924706355371632535461958598955825809281698220292415229998851246075315123510899563147807531844878920840624558563373035120061855209946796812384426044335262169072635823539160119194839580210468331891602209200115136585809699099825425221844209421938310308087027783760709640737602037170755662416662215950708460641785655991221508433425801256158635497357603605905823064216901361827766917841015122465287809305051279754923522118774560333261747103999048052557762062817427247238710005055588220946671347642708955387669479932662282059707416726460912834052686574305620444417117853271366610890160009270970131432060041434081064368378994115603738881433230957691913843836839817731132901460745714952143966794034426534198077879902294685393446239296125671130438025290344810489576944814979850247081157378627858446322118142648450986251479540677190999253732785360870571565508141891365002489425951417191886596500158140631293121270507102368915222016498285548921772833581763066389238169750213202899281854838800939009744354211718647259083437579338911139659397025145228807635424819221682613838418717753245701748727562656807532373488382576341072395502478558624405137861329696616363562485667437840647353808380500695779346862109264802810132381355651795581485748991038565268068942458497212304072877797050004511752354197000260969129091200952034503279773104642192904403296235866567712922479273772471479581756638031891749001125074184957537734247873807814938829661087276256015741611010142892387256769998334089768371259300576049395499677013072108364142059611731384665381015361886633755387409101757913649431770450329261233395734985882684013695020925434139471652065416241726754534757210286391906262419011510686573117206187785122582855219928263357873842398951086397357095115845215269373626608187403203502140754389394197546719910867994793410169195772707536053322356764984904655046917504864253121050504850734164884250078897875013197293742196129320766014157199648819517786222921701699292486138166387747817943930646267278038287498755025087529558670112298507942183334422605253913605668421139489932282299360758861971183335117314879935121344763515787154162414400830320535380356458387250477502258923908838354643500734020736893642049053352015932392744612914654581065851291808489574064332619977592185828423732614683374776385228104603599677639915728373960605276460571959293586533532448001741607724209802551266047776039186459878849958370847148122115191963729208599310676078313964298899178156194666053134606861258746885410316212784581521242689580339041099225030237608006683656834830868309644745299940085171767804073021188642752594870539965130431125285581571803399356601140160198452204177419338662384784819873057900981730621447493033296982888672691777207418419984870834287620721529772971754342915150710172399478282730803977781093314634667913995008593426240353261781319664064756826228233623846392541673435248399952217796553555766650832271411280432513753241846914581810517839298727375305810472680591682427621515398457658966431196185538416730442461794831262066643081454474242657920706450355133345559781744422713565531655828444014773317204141717016793465389275636008841201971625746267052964410472648002001912458031064558526788718063330952612549353226630611848798179491615320555275511889363638127869562459384364251618606723055159623002389672545649168070186718757569399553147904134018870642223691020347555375569084137330152682819536171738814331340114451015572454380187436488842526424226955702330848246787994573132931086139436211793180205385997481438528846860477219149938925897113370802889450271716788654841128369748235004105429021883624544829678731420640226042014231228648094514537741828995936762166903747720559907158640712910264171036576276526489547301840663202457159013834477791311819870394515438569781894605993200423052768525832155346988819428916882710281990027666841488637525105899792430736901023946560057920486695319661819769621114476145523848790178396065540098762877459997613691990112530514132291541180682426101433133276347818183800396866824215416861404760004731974014441486625226956165095520320073919269024797213310908531233689429321109099789892528993345154274541231935388715282342120285070867820763933041992248402446450171692098398352472454333208326134782687369441315302784581252180510401653507951899768377669485992579726516795270735734107842034782963242823459454739078029647259840511225242280309312603954655586708786861802386080774243998222210390562594055661683558220836489677011868872245283463491861159571258537467942587583436556488651209100483370477018459811395695726209224232459670936313804492471926408785914541397500373681952600742398802236147966172073444142166404572581998244309082912514261592909844183595248833724660342706166094956348902940812820807492094521502607278682790719959437310397845556962262628839737597838935279926951019557271410654013829034374630544035820466196071727904947531007294618826498190933689563919073233981880028711464326927734475262758213482714645223088543966400945724904958475566412616460607589383036730654319926189227360078809294030904834185536639248797803277205490523028044490652009739375685188514361381274504373360985810765330107405557366089345977244364058571268455904426222449326185491042227707127580035258754092164108396750573228608925892752234687075505816034898325558488175839065613869875048328649173520434252941029380225267202947228511023527783972559159575581241121412588237475644692311067747147709867408430268353327810295694719794371465971108397296862208295660619995925463887017666296055533444117379511054792542375487143935423728763977267557571913785562481242162044398638072688873273608301680549659108009961437803387652280802991991259212914857539356849568369690114990365984126458816418052369611874772139903421048303999053069295868957800090413331828692055345346229456774201065217903556408914554285226967590386560919759087791329052789489540846120429605470563501417034227637373885032296429764438953790306342178882662058421133501852314236923833635050068373528556161919560985653560484996088277957299142630367473102550770641899256031949124797321864903309909762665731552752724014435815636033409141659376559233114199779249185829824062531666363680424540643900859125724184878670992682639872429604530281925806061038998101044447710334332506498966236082742242136270359562770790696522207953260962422668308908519706756946310723751055973321644662857186292155160229339473579927021276308121083938618264993031639089125394304659778449025966772873203937152959428415535457467681633414361245686529459052545055016941442990960902304230144123243638735639050315517531806316287194521379978156578670896485599801527322536962223437704736167298094736834432681680451412819983279089477242131550096938021232269320275380452412714807885451913993247508886170081254539883279724553810095799233116997021512012109091746130466196453158367995392919265934319581256867718604192544215988326985299951608682908639818950916313354288684006394004293190414297259942072670884530667391346924373710368581568396494677718445356841582161491331266145435866440664420273341727483391090687990254161405666943190411965898798119472212288511911395922649145498505320920909947092889109779028167275925404400557759411744003944110207404518505296893656558073306853624686631984992574329311407994799766064404442355644503095363469785274441894043070493038879955365785333478560338962739671812894755125574272345212947049983742438938755226293480747429058314110026868176986708359396613350852007627616003140295391883353116512238771473934049256786088611704007364294413107641801064644258797646132756253389017004835910537919997923404818110557616356323956996799472568435213634031547132750987754141779449760491572128287828549333179513939509394595696143694243711652825505990656409717273855318924664771150068667141785385714695258720505852813122186058451336452730684461081252329564598999300577912844290225321515513472372567963028272872468312124631779514897873450398001339005960604890414599215450036624910155369384178356474878819991499359616989973830398062326382948606494521802166444537218802491933111852006261820128862582632791733257483693479457654931527802619082762941814163586435137109162595975119337878214953463722094146110218413412034333382545823533046925104808475124573573426216675200983204593015737622001925216803696584324698882284313983451686241225922934339260225608565842421758226406707254428377607201450971392892950260311630840616982044293324497301188548391785031953676800529469622870492744804069754602463899685343033979387174024361282704268342435862580403630327829668958159065606210869440334000484396810312225494377675280621727892767065085163090329195349901640034863527827545291188907516498058602382298741621974294178383488088518147874080401741083384654335758512060109931328562319922399610708160711491215204255113481374691366891203140028046928204976365674013629596063034952639146973725920264803533181467717210191004220130420971531813680019532544302605901486058363280511449001749653998683161198152134110017832519129162272265069681737960073193557787213509587611452126259916261810744387634909148743707741552008652138327308884821420740640369733259407071656347778429211721431386065949494733963384410254716864972397548491758995837851802086725480181057195822880324310262158404917434816947502200140163361714495706751493227621559761144250535007138054413058719440937723595166253398771918898367088442894454195235003000893062890079706406916255755250345533404529632201274175465952355226562776180598421593076425719164645528709902307076691938419550416420299730605226689383931051409766019277424350535196174670468636225094144068830016958985706515995826261415333573034304193423145792097801283587958650816402513970760622257370553917149799741821693519686197053173972457401081202924166260068510113323203392249512659238974336671066716109753337368740092329489820263932890561310725054571098044823191255146225949806226720144565902804811462194154399556327210280264396775053390257302439585099880360792558832011975477260136530511476548688634202684819137088238705051165898864806462210337038840773496932634493584834976718772178804845246319736925876299464423608294514983251011461748748286852770458882882948458975234534938635024455891301609630459857583140499403603275917150669114687677489388895580550287333961907092550822644591131732926021484038944742346971022813833818756482121186175235978111569484983311181756905863106619049971448180849980293218079980315886954939090198919424802487033244916602453231643326801083513772638796294729102982169676849612441690622617147289538069284326094325238854349131864637749775492053330669050426873451627963830324688944859463410032948855449644130968107523652651108254818243763110789703176981133578050446881751809930856931107367437323731773178494342710152206431656448449449008565439200621093833212258417020138361720147841810280255524016589224900755116392993804095001307741823200432338005986387061723456290982257079260531089570883358049769027925286073895400914059990977052368497280527001407899415337454890564691933701345870003349932539064356085530418231990058295500779390293411465037112690017818134189957203098796923535117543917456448048603954647182960708048706552684875131915809990497160900258122512488735559444441206596563893538199630581700470470320562066663333122873485102024098239566058945182271646268601600233893311574420464926761010767942834247907296887611916748712298283069069402150516190262138922627674902086923067036338164513804581790526454900666207729746975584281539221066255729902778015081317329798558394208949280154245501759442642496600389416855187720110166845775996252566318977938609794969373267517946038994458385303739602878430433587540869738980166714647204737456949315365980400764141138502926034280851951047130925832906465706202940101580090611232104033919440987170294854075454895939530195709807314703180838690822161355379187549377657080318847226032423997184815214856941487322660822974754211271556260052948323278526945520117513854521109758958083819988674984628176878234102892397710142104472669902024629317760311189197501165541890452388759158696528943632864114796592669988942117861444718374159823065858343397534100927632591983888990904818698054563348969876350217235504126828186284082023006654512605041302125832095372708382854881577585709646403324400358223128803663336070863440807884490429679482048939564281951315505134788129107894204399540737228440770235358321804509759152438489842594488889294306129871061037894945161430732470248100044386872577772172801559321065291001884328372723948881714480132066764606756867307226901944893318502873058728839896271613178219229660866520946362451614189085847513959438456238163799830712154239499185745783389829998137447733265979196064804182704768429851586946787493517935271122684342785529231754967528394349586495253436838551827664446753964390643303804702073631548918613692801172663992842542008657008943883670707317081124508556545106354697371783304683272014035194700151664824366970700164233801464307294356099491013940013111249268670292314160458535336239201612634267645074908408861919867732730008556657779558346667804932146815255351620786667235419003275735021982500253182494800589619542413815666032210978497881215065059684184994288070953313424980239216144306136421086950902388635088227827467712477720638323386476551725327202519865253083744448541227352324456395120029848539616375630655170417829401904901391331860249870815231726854611987729748771484183559328522353634490913742083869942874790996440077640613345349625982456468421313269948561934294980031298531039063731956068569212812004976007436151274471565276110440819779626505383387321500750910276533612771875946263502373243336467561713480414049749556125727545112088543255493661273056792804981461377626362521764641902583741412218835361267453901500361807752784743739803994425059820189618139159851493537608620119655705193165729922108524730624168471092613091031473543956737892277614593883705740402751058868124335164378180795717321894794369771541235409223103837994012878495285219506970002313999390580904225007478181119379233411535502006658722582075256162514725550819523002522726907118526004397481562867182032379817650247726178414443633731914629394349232970962572463969650429960649510128630885454672262802402651698823568956973563714136801119183897528916086611686274460441591925445219288952554438846863031940615278070676871545421700261512266184080776622356253493457824172747919549380888881500286766083341635699212937157868179303933465230751834817989963094704593989270638770117679999874525590145153521562085836606799214893558278886062816573119504971872908377182637004109815747292329327868425796984360776516700852648276927399278672222282326994910200684060189726663616569303950312955651597104078130488380380436097887956766822067167974433628883842873095372859047574691012228647273616981237997670565328354831504214171519720734733990148511784658810100954447627687064313898822885298935631947254605669683371684971584912016814776698484135973442262247796071712981879323712957075602891674856259847983984224826170927193946467962187102002225875227645738697156382055927323881428900243792356413553885254872197671135825974523704393818546166599938291009548125939473219256080119813206144795980995575001868062378638030897677515765797747381540652758697253738141755040611271431848157983432702249697648823893594543224866994716979386892824170848765275459079468721836010233402608038362127595318602093366030128806318246784411066531016855842036107902470136602424317256623434660803428847026361247601676112877776065787703419062104711795588186365351085780423188963020601252941586837708856980004383944126209482237074383680900815063265920554629232746374397973885716803832932449990800857967902918805606602455467285895170898312003039560639984707822949364201963656170978628489537339078638440279602602798421092924391374115649837205754645951290894400276895783692189654311158140807218017669326904490224794856500351159378811496365212520942219138910518627932764653712654608211468576636142867674900871971765032661972325480267694556809460283563524776254393642965862002386263426752464329833942440001834944019059147390496339162041852727146067888773570621801678556622635967918726239242123354416296583278797133619438549583336637615661037898231117627847476606241876022912895817400170629913122246586561549916839660741389428077737072135106185903552340434369350421548239390465477290896640042867190562832539874458010557604731093104157177908614766367224513522674322454511784931062646213956496280850613103525349348427248837509833144827682275979362320865431087551529620887543903623210248211202319724976595322783007142003042335355306247511660031032350738515603787295936515811988084823932768102773669295588007429132819142078073803707084124651414409761068483353662623367654678333618322069782461689624572762026942646446168236780581549777675707673317426695850355508247168480864087811916879994178989300098820809739033686145294729726592220507884883928327754074356020440168098732967682702509420098162550197255652420830574679301969715912687851492103391374501998231957452342698389956122110706516535565316299395685525077377179764203331967728164321427085691085145516857406039323957576384702780047466003305980163249160836244200759652774179250887783524649511768302306283559097823321332606444132598576640723045329568637251137772554627215511782545294052774572071590558987579447654259246970137112593845581670398298123210520598792941798155191655854142839778048998754470232379187763231178354593867305486548648398535103536312082323405221869063524286133786381186631215353749859243097281351418950686312789410259788973712237906674863608265057660828040318443883988807326610810297519550563821647847280594938661162644236557194391439857972371931294547390222059973229991104654943121701807742913045907709314421355145121677552621562888536525020755788259031857711711369047739854979693766584304805563290054482278855265763684992438977585756630205863229347578399509639087986019665606706784068765505580775437031210618801408177575388430117821898176190647859274468246464494734128304059915347691874515034690757979464899562858019798768122027367931694985029548596519787115517359363161512793299353882293664938777681504828838930002051594396283691292382829050233346950219767084504152042538250622322603119422606393715292948403970142260150726724851409897016613581211841213844164726903983239518278962121007737621824653269162123536137900190314844823174316456985996194045399458677535252807622835023974403633316217994872554495513757199915128119377562881818457131631020183636270972157378636899670617410801516144022680196794509710310789105811123479132752332011032569548189162933370855149258091436016544961797033356530947111477525271448428081124535791552364864339780317744409082380461482369916199964926652884721912131570218016569983253880596748709381542657875637445555072389133688509974744840576648591363723090934456106192493819627610525759247385655105830749366370287802922943323671159299540542666808547235876199373339439072434346762253451651283628271323573803432957045464119051123479612674702225450116458880685476457949721549518430543226939093520690285458611929550568600507560941696651906326257996021992227297213702921205210184596710695158699456437844049181659828692989240446549313507519339441321582748599315566515353148888873331434572943016733402869893409000776660291507405421911965503042108634110789393896182213614254241719081209266262629919889740460612946438578822546536991254624940802002182929479428416855405791535484142448793818467581736163016680775433742609011926650007312928676800390883691699789932569523277474984872850741146409890885288543897301896063767272810127698953961659418010174000293984404028004088503545108911300620861760759607321661706338816696864178058741612519582069761530902907290456171522749801189908374331983825274747019251747766390349382208637346872671372011670440912529563851179505517778740522662643204284485599315201345364720257350897559469904292259199900460333488386794926460642636497130051609438474887285633281076834466945877049678486371492726507620060711337008539510978406177529639746901278179087461097329604361192138053498531447688144086687176586868469149268396626810298875795831609198840996352150552627757457032400668955641979550279223463004673392095349332088572282668712085191480517590490507541216403948293169681456478072789345197185715955601236407281489218648057753588029203137321104520203225529020168871424092300486395221599427500841665763771938636139838015352787626807252819405175119599686302058138247305468920344128793790902321803126058213440973054575024478931211039313932800527681454094498275014328147072486023246483279922620250558415716269982271006522334760982016030597136530272997436977018593074854915344717443087093556583903369040384218220169598946088492492001774184361377785402498463046537731717198189751793479727089534694037225014364274027538801596885397802926563824618752192099857685247605496560247517621174582411167756837442558006410947039825458454663490546834619717839046427366369539781318779357376409925501742741085149209756217216603240835313098760337953427936243436603796327125167695042249225296034132352872730725748530884351151695512748998179036855836628042674140467260063652094850685309244887691854418169713657368934553141662647557399942172558355932611268160137044746350170932723649221245430572851965752014832498377989020980346935822825111091161530831020036478371533447838949142144921812076701732310735930161501638053046097092214162625704047287692762992092921474984841589853297698488121058947547693371823680732572453166104430619931402264598193030232512697227005117302929101672897389488379388325478193555444451003842196066365242547553908437872116094335001760870550685268172429597973709896537531148802928113145855769419228714864919700781468637773448434742666243967005198230020542208201526586628065037877813122500100302849480356811200457559989567865879861090979996037164522163312152355832662105050544420883825025150500719799813659986842459442914732997179685926598451429488405266612074235131812510031166674402347516527390695906811458183971458442634917022953350710402548005179243151819063437578662876637776770012064807816944209426215612922161423178110778781302779460244024309785370727852955896452502907922819044637194244168287113900965106894718261760807944222729185280736266680478130198804396767832048490854342737552645759981296218608756787098324978682967187984048210108887869043130625933564634707637574722826052206918577035729070208538745552432740164098619503122956475930892703210978712930324297599571886417374143117108427197718557757355197357710121219645084044284135531070219200462538627283399644238168944627034608136409537875183635085833121976818879088747274105205183444246069626959187665954524157923975600837818152669579499233805519422212197921611366670372175167215677232087265171976391141568240683553001808799115136480077778258679795999590662105448124958568906757622873134531787378848676571708302876897535290221749111981273140793499150219981099987513996012844999489471172117770057840058712265383941995320805134018087067402816881005861948599388784098204776718267412649123420159780243410877776966408588158162523389990816910214409100848769393124265869725602158405748600979853354481688781925839250365875652456003904028007721094873625990424870310062889826559643304893554822897062960250973763012843193996332318787799727518394913785307941029934624017493191020263185639958232196820378759817202217616256638942731357056482412619156850466223066341380444867409104582074370645228126321573280760122058819904955185867987948720795090277826079462514495893518668424831522395918796657370660193129127386330607576454969364401603527009700972636000924307664508095757701237224661795334505061547313602159425565320898070123729396149254088499078965768985631459121677261804026574082946961006232385013432448907413551176815952358108861006929751285667459095183946614992345541652799415930052919135247918468338981052324944484197558930566794185906031514862814349976774044474864159751437060094508658841890339500440897675341319102043889021078645153744766696828910701493500658155501634150187190110662990879145542532775805535463619607416279255925801967478938559065733459775183891031470701559590514019279637985969785109247022630576721265265587429532422087169867440554500808730906107731025297114149069711974740518425790004823339121504772322112168316137304015354548130334553032940126500891966170811519577595077836723523782642900289158255371507206069853788939567614960894670563748184083644725868438592932750088852378707322627632844334715563931499457436588936100467574509321225204513058413657761449006819264778817285982591610879745770130219517508457920515613009376324309308852974593302524437274120922158574368726665389504695455413820139045874906426254281101167917189221784804774506062239179370599157481361665368563955345555384919474854426091784606610314543905143328531996409368956546617202683093728115023961386846838468856120406089076442703820569694073783921246279456136747950305318114650484773086564787105624233913085601218706962854546807402823140315813281944749111075512167978346332330652138118683317856657528985582884449591253396558621635527129849201118044735209354526913432489431375294673238061400504467675493677689068515527225948047695065003738567279506237652440948018305201244729149730559216591265452364630237897530123294355516527547829384786356837740280098191663140575975595686336261524883579044016540533173744876878582637438161821377861912555753613914224421228656810155738943568687578241381214224455926602736723932931766908829391994562805485854346986522400961599684709210740326385961505643542858551320676395378660454772450991615508251651605016039485235925659760881528274392067553373095679217592903740142199254692592016705134140017889033762429744193632472023009297708519848196394477043647790444357449128030784038489637799874008689898712611748340884763276079823915867279560915455486174434737501871328670461579968181355797834007608426242298214786957899976438621407243966748681752172338550945150978582962320589579087151757816726623602547563574797164230718275122738406122258611519206737341104464107119792717618441814059667007515809926182411368785528185929522337177169501678047678859129948677088639464615673242928867791694530986602351165797460906347810830114609618498816012167999735167838492718813818652368572570400011892094126667268444252965597633187903087941945784325731156463061990688418994127726854526357305343605683161236986668714827616453879535519827694527916127213744523729227859032075379092559836561386137795721059451378257988251815276508431495758361279991150068888948201766001868294608687567131296620158914574068359616459146270786886280474359596356352345151044762375178491913520510271725962783144191524518181475746079413004752406803461870565839220864796635291598780344430687274318900442756949982207910953302235811830703368613326613652295960234885186043536026607001873469820473219198305971974548716519682087964892795426685969037913612820332263088377553370537550325360075782904153226486812247761066716532334607063141663335590753214567324169436939728325231605658829753595233450389048998297850870038784812779324281504441038497982419657282084462788976276161972661603619938017019960065523018825173025669946065054361806029105406458310453263200678759301828438305809364773106716009155668095907964705895691997840515557636458049178659435924602405364013571352264732495553381159445874863305025063782844712942816486325462904309329913033371163739845542300562016048272097532424867450959383537207033348590472547624473085070607340415002909371946585010711122683016730428488689355515366072934432488013550839154024795234697373990680811749774737517289522529924843443348373921366584482274273140517078399215024005776486608417914838115995468101574767967517377885540100314081385025443126939731869761090914960046777700430290413273463791750829640179308909737174588267817934069197523690533077645668753160157955691262095003820696261454449068714084652825975365154165379595892939455253696268195209225085657436509859801369308257320125132433720188813223918973290999559763135031908354998762539285106124297533322736487963943076050084558342064942134399531078742502700904727851564773846174717845483245140940942411663102996454664138642360399171524754393131290934764432159840831762991335716843054434398225482370546588678729943322589041636637350143726182293567635862516121516371757479201616871042679428148784252441112539747232790054301482630981728914975687446507329186959307202110880032306095996820608492937032033812784417722253831417132730429013536557130361309091162198675440310992223848330150669205689395058105973557801242313081662091215476924896178173765576590148929331605487017786827927045406543827001652046834805776315966314334521819703198373552394782023995363588394998500616097156320631509465197144776168728911132620847640509675026995269921739653878237666101685730640563484518386342625790478280611041183650191145278705090732055181466230550194843093293714459302488036170078063997055677890831467499022380840096058587189788358137443752846245799894881046726564061992949663451463695112391622864601241764244975522277835388066159740735982780557499162244333077822244391098343628118853825977486153959766677584513155396129523993773802776732839707217009158421727250854342403486466056906180846990039103685018430117804726213491681600510791667914480501462028617624937931342946519304283019523572167389554029990979507214502267853791795205002023255956851092745340802935591839896454181504249309854573571896216549787213972352814783235658198145855377241712607200316186488687058315102182764871084725162433064119016556768147355388350739783695260600596397667191283043773032502489409069073730460286797488699154626227702779252005507129946903410295123405584210963246822623644105580238106745881261511526603745837048367458338876638726983702232265215802356382910397154508872695463095442255480881974103306821595600996772127025305669398479030375220063411562712852818703907312865384075752842797729253530683983328400242453957003410818192756371941564291234203163444913580554136370352670879365300062180570829265700165040193897514712670944583998363472873299696662322810880236671343590897653650698855111979706619416114892766969454483815387928568816036173877240015665513091779379839487126459844469431687549104849373544558400217930428544349401967961238794321902003987893263457106373268190336144441189663171445895287272156272077287348147442985204716569891451626931160059734782769359985314026898118717843200004744102396113705356248320997205172728220372122482070433997622723181560752129706832630787724398543464437313880780920991323254865565513110022635817667355949133987547571239161657543506364949409665672884955462742298467940741767267314376198881453146053191763125063406527792116707143404581770524548345777869662718929088473425446834684497258887976266621803809007687602223049607849038164844325231463218286775657896017381462714821022934664309610614198285557601291441113989910848865040384098899823059005650958367514706185787542119693664582858736675658207278975379889416684714252191299464945252245335270047850695872997969049331783267602522749805647081023676729126211766542871677548805061136255948219146053150075761798601250295880225404527700235755217766820054650881412198635943288392845622941664656208812231071251802656226855552401947121670746435939909476082978092134327755665536490258948887306166799069719471348432114032150982214589798982450487198658343735680902287455618336912219803034845988522541816251382817157405152072037669871511366563155121219642691737207046447955960590722406388929789884372224303783892356098182963756118702328404800271905284694489640061937977009609268786356803808053313486321095673186492877277955367256238928163438423026193264592338639068234547397081964650466575700494200941538999213140961830215716420837045186014146792557902698724507986726326984809482355229567998482431103624714010602262104630200527090630705717566349524558496861478617548237696841258336335669164344638048587567836117261857952926928215623768856729002793927257711721521879798843674110678928572282329888037280783365218999505939412275745119336410239933064916539994265388520473256679821234704214591455480104116500052984971477201404693203508803441249836488624029316622359425460283668943500387989463382326889742941337360823453603139088491458307027481745471236456903881249501078362725299089158779706877863025337382152867349016231302925288353117145553811614962296090453266767886150156285549755885888391799615785479348367738818976063628390457474109831212181382132883157723628560534849883704967605299248957629952970832458954852612224477586640798144692956773957237834969211564918446313889147454458100271163101297949715174086763740494829988163201172494638540594790405731197545074967978768520949314938995113343553159268081879331675709859507600172113226039553277671496806062533806650487263985508336603362581760775964546591731765537359589055196037208596208271789904492662325600259881762259064926680536306992358656476202077445691159284533867568004881989638813025231060650315833455694355456806384514181126979901427702583643797915903329886112791117852472416306446415399296813368327416003881804838310303503135487007901792856523779936410575760524579166718624873759422796408355022162747881350612573467228197134132905917339529067368233039491328492221436818474021115208577397893874819750145845564233531290162169082191694363375775393765413336640013047373156863748776243208317518852345462440001190308619610868715717628530803977573013298392940244637994080969048149248268853878088452568988343171708089760879847075565956183348326513344298302003229583194709394944618852194191079680636813536288200786090278405025760696966727651801494307544758399482054404470513605918172894339139167001404942201170088256480652816015408351586357176533425943004952303325227002962193016218822598662254758838743056995364931706283259511258071734980110054528652917191536029074390730943375283273120103438753581866590299071207077736051484244009204163281125187242480560208778235352827051050290724888622553117645098145481372498434567594336935683860319128187888318575555310657963011384979272367704143920503582996383035716106799967192241941770121942339124656286256697510570174168216386685743788154737551821085524265746285133265093561919112773914262875589701088080014613314046781308696008422003467585514113671518512931785855323988573021067883190122952909966016660550086085444708935416516073139948285355041263265299204931452873731238172708212220629607390952659116269861566324870459886276010606257942976897138992188390821365263501317937789239685763100259959109080922793755074255347731304714405793745710580260193492311004668168861007759613670766616429624521147609841589093464961886694070414645771985720104395687398617524585264228772750559131540922084698720266937158312356448840138975513463076339116710365767676712352746395014139325219890287797480322980919813090429784957369291498786172552611533936500189576127562649856212848416957482262114238662119614196389558696916833904519739333978059415430851589740469073485917162963970337712336110713107441639493493078091372493247891197853755629771743923521361480317621555271292661398090935240966617396166803598451964023980369366298801739603804205467444999626935261139881115078865342826968455768195758746170237732016840955333740581856834016162842011120505415373227759502077403149271804400710924118222512055907308601265456636339483151174555453949982080444780890612038473871719993167556642525523768483604039233034123452332089809062780492247795492780170743992882179685589288024872214987266866266376252410700577915098187653394032485316918226597193852689192539077097394292416961230806896977046198159402680364065063497825980719678652894092625789840353895653201441888814100225896924550567403214929841631878963878892949255773324719611704809858610986973682309984034829975940261821873350135109117635464621411395948672719467832897367639572682676353071354034011739672828888270094545522851142134924622380834010059754782618130897140879359782323376033187899211493865811270244842957003993558536848441214617387868138027468837487311135487966138210769357730811726349534265613809432594028042053653103312835806514030991850420768321896692027452309641796804437660887513588700200792350016157428207171524597131020502652734871801857747274590977278713268581009521102136385202670627040226260566792273826178909361658351507975166722664109073340012157056089088558973090363394558771542298039704877919168820686706880197162904365711429234444388850187230076393579621229129542286832619681884116500586672171668324222251495071654120891531120508568762991772016864213753019143078879315481522034074381398981659275556984791898801644136929752981948818854494794793793257473090665072490223363187303807736307821113329626689749356291925035801756861525511176354140853623642636869292939263228543836675938468298175089961715400587669462844950604066984258833655587149550984456040749941189829792490366532032667454242350971921166688365885322122266153448606796695713567752911539652954141195560532556923827621157338310827364168803943928867609000681233758310412681288525908315719324692449609802763505222943929083282406753740351628939336405466319394203172860814359023161275474089820926514395938304364366983387366379322506118601910014521223230720729093403911519507872020078604192637333180274343677303229583537457969541851143557552289310882954421266075752655350102038212214354824322239113239930808302213617229837482975156153911405627952262682797818989296989751718123719521224896948447585726934017707280146206537499762006085584225013943945019720455007800844374749857267217194702650416807971292839877137062148984611905236361005790865352725429128049629582914195398231195586641055582118677399541311911542625879213960136504284691055124314742085059113989644058170977140422616395942154834864241617378681110498723164399906677865739534822480379888929745620369350116573391222304961566571539881611944083185591119315299550229198895895637223340330812797304279944556769382511019647993143303812847502525978563599727186827366817891977346372597434133064879958429839937964412334479295851772832095318564607849840950747040373566438235994705364440891282301524736421931660861163578607262582095225740663081195706651778936724801993171798210185258412720312326891223074489450706192640141471139606791193841607542194474763119420988720239030411175499675679136371349703576164373642301629437575515481073006105602025867275335576987950616745005794109958749199717817455209817851344362965888417069839439250763503798602283341762064907178938950013546333969535540886119102282676280012408695741563251843630884658211912472134842237765452609466980093894638587776570583552026732681143435506030412074896749019257075752374446128871890916835191509607374489983561299648264728060190662624054577261169634935854951444028552578257363949412619907814791953961054838011918156599431319518854869558367150272635903072945735459129974301771008869054534216427608025938891333905378701534347327884191255050495975687927491240098960923235914156106647475927608397886184999388320183672555080877230665660260111558646362664913627212374210187422387050044076404154660705801098583230025558931647487976285300513188035389186432705322614821996204247663644394446916094060813665796090110984246058691383941155697992871018127010181922818696628202351784897005477309321146953003443018259667425743114182200000855530279433234443644255599596673013713451300790497186356401641835983414493974369639203241050748420859370926624548667999157075716583804233170673893141195720231075430181649592633354263858541306853896184804617105883706588446204289371751535107408275452531011047650425024463752953815304624222346160335431688238204241483650727241245840150875057660450311059345437778759285466769560855937822200483475612759968992639450205404575562092858934089383978092748246523605949226122845640673211514125540511931474604037015420461953035053663581066433419349710288803143361948041760103599052517522005485721775320459749818186831180150949636502557287968099639832961742256097465310863419453897894869220553651933262308364877853763253261441154822953632101853483990882177446173103155028078476182065520592960671151061951511988537797778176601063036841035135882600629912993567923525813408787244099211048228850309790749034784940616038247113119822068900013791816015834406661289247768704844317756287641419819769490902247406621224683477033787573533424467334108124954058573860734253877656437022396072769538757982472744445538442363222686091727725271921630701034994306025739154358467311866275284892572323605005642790806377518834172424425116697803498352655009461058102544546363624564628595475844728085883057321265054946738177979126115745375868311575841532843098394739400909385450058298850994243817129983990037420798901558981782060932211072274767002989663716622031773362706852637262132861244208184714898302618256109926938617564110025357152965297856491345425055151218656364672641554791739173465959924437885075694337841380930286672257822654802399857281344020432960976299334301001381408850768618960270333222564640493332231047621535161194759803895019439341350793429900708395094410003035724269933161087943683380281555494856211163130178287602540824348522273963740137307084488040476327639275386375915142840849700046676649047775637349960579763898011927245921795950940530309272313942062169449558806289563221518038570616350215612953306968599546408612804688906250063906560674809259069754297234517881395269277474337685415147424989881322548727749346338946408649741822501836591487381188531787419338507298481201770503933307199978068968502271434339020925480662202988613697981023255606859134059615725880308703858935885579455424701080868264774768010296037451734891357473749296618222814788098706297972170789672170415897739716605431696979628464737417545412369590104200976448478012437772085632240289053405278349225230464319650855019211917529414679796641331195392228388662269320458350212672358191895875261912470365647066443054605946738235205153989712438893331487168147255922864946125515708629259082862368317848983688250341995621862388132378383293038781829303946194641743420379697597143861995266497242588155543195770124496369638267932767186072499794390226943771341914392988913169037748379330906599335011169940463845978424937953281113099825707967122665516588117956700554020055070844850103238584802977615424495758556748455955998732595333255141502061773967251151023326745984650902661659604888162492173879979555979759941737383517266364809501879186589111719374097271897237629463380268484967927188492294115807031730382377395935061653159190005279879864608083602631694998230040678024172094729315188829090935005840622802166072512020029894525093156557536251667314753985653911537581468428979018659768451549728960090457154030688371314061322148402383597906079635176045712418324544853724920120090798896288734120111749689922293355071714355771521273677132679385752202482134606260236825862865218958673536311288981721081219692082695907247642457315297722274281177464337660282286701634816837088037682833429656474737876330567510946142762850740162589305020634171232153387439775915455989896932066720081940758069096335924939967946973584436308177081008917908947282637268544276296676027528441988302852281987144949130804688865800289333414915451586183255827046690598798460691851113397165983861495331725388650602360803759548731441016937319956233642007325145863098982910091217516875230047979749257871103727528563436263466038035779887821177382786904937666645499705926454797310688602689210628039938811948261003686022992920556952107734735658507794544835857623354647948929494556401952158706435087554413260907015717717448359134341980933346785715843273364730815412629666159363108924791430244322370157223762132838174361533307821272819178993981277239548578843987014910194837407110913978046401143396725700090514052687677410267122635453008381464862292769880816481979059959975586933147006863719947742687946518442477559654939961469319005867010355135122428165944401958115766609404333811114898884144797638748020449943214325971159086499909022450597760299498641463874056630240107418968961010353718161983607127461618104152832295460821695130381966871765092018894422107272820852344826461537851784891010119389256758213955863115379907161793702220756400708795919062734729807516136289564804984015001247577787575133393374697322515457059111139027786886547606368379039469617801169985729915199596204254228431973596650454655446017966491351839235452230919668991294774548699272905726880224667626063844410344588672011930538972613718705483557969242879910875332159240272890585492482268441723596335557980380382381322654100399574030539181178152333123635658169032185473445645588054300017535000526568453608952372308893422920995120559592367538493391064829880499013189109277472075194203496378483622264055504960201604172517669090778087395602323296761788783563540095349407063836132925257718625693185679105920581188561299477350417969834498882457628851197748649872447629256344678050341247428210554618345303639516828086342078344457994354340988698607668568785837447465263945851660827388752801664434512681388883888848456817011869003618462778025971731772954007690386844517602971431067805379108026529633680048786717890357230899552084142179112916738046521017117978265905495045189584060060153388389499119413396043915459222086329123242557758666766680714439620840975974290503759930859061139581534161684610072777400311761776575769512608785286186642263089921278655428925402849312921661076697347973813535421905191741306578343023945398547817976487188444952631699991236181764257719358898510256196518451038283676699403841162825907500225600012490230094093179916811190681915813981184584839260013956551129482833865784234467037989352182301385743601689194798202640008468866282760272982834854916088362040512416314581809405623506367841008213816222111553615562842877237453806476679280440495028736951076697901484561951706077075944377004914637643328980955767399947870632242129687355545180449756538281440550861980343514498093348682329459822792734859021638415903688838331365430545594072772707724124200600232910338476416388771781372193056531716704860261377574911163275929900159417286711625582645195272658352681412376207869074224415938879628684075757917551507642073973043287122573261727028885427495872514193510494664473605570316048655231488690073871229949534247442938316904071672876051026581267151465480099740906374607638037041208148308736695468347471554623768768768318441821437545465056884184325769150452488465645647041033215940237064479402599840474796556905543621134013597417799543371866535377970055689584844270358321933088834980275872502374711979155543719372741499753245103824109515841021445281658496837431159321669360909132647279534627859682286904349418453148887484977947023916322615934190506280497540062994513717716551748754183624990531453874012010772475311765081475507176419898511213195511483317072189222154734525389958668909580336016698838822768472508093886384954851141112085248038188263027381587808075392344344242337907225587438608658835164878839721713962895869431078790955227987544974483881381960706591478199192320259104967186812298183342108283140907882373055588496202727291712948517390233347594376067914242590096204197807648806175463505464933456623871602765077691210776773439163257058050525424286720920333259000094264381713086127543966078964208804545782955601917930153977898440255289493925816574004037423218018326856804714780706765721820562310976974028734813893053647190770792933308988715454283702490068702955008876160434482169048262416168512881644473873184274275580776403114553952611873073368337927622499602376524688189993896754439084174982102651835272418859709566597746895935197004682349768371549920432353394046500565678504845611494279902099046387871822595631632554369566179467675257110959452755006594953586731291852082230195111363083554585348309924361860222854912248000315241429861204889391055139784812492683417877645629606597003593852000436329751645679015998573545642484074928126718762876663232906916435358758605158995239155966475282970066904038340632157043500496563667492876185026981201626363241040546805100316685391542723582090920775407576422883613273927694521333554022807075774613851365477387110624690068578762125986454460342698042206201911740690806760574790075504320769504586446949641154502299709200657796342921409912694475997825115360835600119409095755354479484529881670706069917078009105577218519479274348184247090522165933052939831715529675943994149328391777270455190836279925980690109634481675908952959315820240035493058432094559888099183117592507589111718205237516296123915950048159190566562410751981559880923742726730171659006885236744896717462023788962144731730234242318419495611099815155569863755388226980936377054816556877565738488661849630278410670909916381173380772941028584570235631979599621256614272138645073446570534677383124823278925416760160494288739607467108490059847847316614079958454818631658164217720616833413997367708596322794584919405654451432010390626095118515974017166672712172738869631358063821360148139342289365857933722233218399488431524578055953996292865864421382933609999389146698068427098138783190565132489657495411528022732406945923421488832026328617739302383991747718884955432430846042887311779557253621211336896613498486524165395120498508999972704703630210303241207974441563278264905655417220308849348719101539587603861019938509811390231671370501914106092563667523607554847005940569672456353683809654236924435231128595777956639081145445326762968761107805402593218101734061371915750993344468204318553301568260044750817890155012045695797849734161167878079631790739642003485012524721961943432826806124634006738533923300518856876682279276992106283829975956789547303133231309960342074022931790880300271950545294662293480183319549365258866167075867797903174847849511002297129164687848551777079158172372345302069751113403408600039547261659894988145838871711576935998827774648885462848592907717547621830819663730467190651282098624803829884356310187072424978213005543182664891391491921698638506188448610145030883732549148596448895086486200126709218583056159717396601365531869267486719334034464046480994601361208622738728091221447708659900136931518859865724197684125786501694445375263804131253754024974493052718718497004263110401629088934897943496645177172787169033971450888171817116423033477706138773916853290692779526172475437959514519517934419655922280124410884665019996427350135344633481673033473222645597228518047663685309961756274142907602206209879333801346617568756207904893628367676444667042315221565527462366475219516772429133676673799505269015405998762369404684232061255604330932772491580472579192423232343320520659048930104070550574118326525276402856093614478999397572995694371129700391573993623915348620812598717920666265297083836783569649585805653573393709492043473158733867133981428023201890823249159197325883054663602183727868002425057258790257588187877005048002404379808459973113144531883657504577355613865885679412118302736559471083410040785713254588427867678650497943866711661801886358108119811965191491894302222019416131393646839092915358069757088717236146593492314313994896122273063350748208787777935433002530088891573144663964425836816253246180418963752051938173004028546241808275828870297156328402186139683651567409431922162479442457397474501921847480042909364948006302067638582239451756085187133505038970091615208449103039164663567959096505640859762641405020681794270567186870065381949440651878973883866773274194150704312806462119482829623036055572578366964419242709879723340805448276973446289087719561278430263459546163007000864573054330961583529301411813873700338927219944253300490610947229422449368528591100111332324070502160006626530611061267049798326149029495483209979393082715112163300224547557617494445217856216496478808952542565925386097811896988356785226864096420260650839522467031232050155052949016474169469771501110432581061810878072669358255225473274715004683195963969692615030515614192575215079570891402505643068492899732965000131511878031588441189620468081177196301633418363787540800707714212470243498409101807030205251699793009618978454226082863524283131945301055218548091154858960437729130751071295065992432261324355571839400993651931927859792799418343522374781576402015937597643186049538175734785486537708064978603956779803597393334780331101629090307892388879974882616614530521641503602171900413660848122615676555662992558490190497859004484549293926678261505095861399980350339142730933361377191546665884770883087881065473668162684064105964698663294341401806575819540028881324179579210117263013105044771246958550179519340756084723026139755127124656627759831230696291324404946715743506721850487234972425313720185264106433611350898239263785960825545103648423896224082959251339662284199461337333382163649460040471783567166956733608548950353962141057374396130905529177431357190594006425672826845305305721836027126834282054242713804783056117582942165316698324768099993814440423630523214384446525818305567747308757158427234984119806570598665710629516057176848282033312973136203364131830304502622221826558117146113486836333802666239815542771094705750595426888212795148870148987044492500661693434980288143413356452964275237694307117927047046806318595109673901543973229781963245609523534548418939094747261674361164398473612081416875352608675522081700780986177736554073954012746418208152043793240181093186897765373756319863107654230993549102008640020227359685032264788493488762943646350671013669225050618415159053221808324525638301141474622485355655384319228534481359113660075737384905484869757084816310866735857660629079671206622292039938963246795085698505509766756947714344409861194932116207440150828230823886106737083708227167623831988339206136469144314038957395560944138942215652013238299254028294625099305792952051064394089208287048932983514499334136789121939415003237375059887850224657100494773539938155798901413634536612339848327843078300428938654033889399665505078992020198282883253961376653703563390063088026321459212623276849106480423212446598551700800045973314333316272894350952060979482043111143711697660953297830932657885348678321620798610341358377751969177578141520373238676185320541447253664554307953294987985736415284125252376423964316805184072491881508831979351181948049271741650953127501653400290797523608279824381513442645970457690141548649235724288650044024775430552322641345741277413818903223881033655919902085400292912311999719449472648166019621508682890564833075487145096570117948594382957457601904183279600439607262499497276534342769710436614908803015464739026895479604055641088149823443396613544331795038534078504510819272470454829031957752071209713817732407589682380002757623922795598350203927239439548729892661274851688487545357502933811779746113365341089545135281153805212871769462366675521732109714744410018763273985756268208251573525403445944770912474407001705761351272763810819497314221022208158831710572405946248863204099865430522119351962321402691560172619133878468513652663626235778615498030286845762952304412707266944767612450868627257819043602207020274652667032503224958599445714515184655884603899608677078406553029754063241648973102714665399454611945357881729306696789167280701329022217168266485515009466664117799267718780691780156171989300791049995146652712603287754849360296961466408772800326898573984870824665779761257391159873094566244792548643871733584653060505079196058394179359634574823649370199728416540354187916261076553731418305118192811995363675538824629167030653500958298947888877381005061148821466423545437570086073128642157145944630428248659360780117872109857496252190822093713524270469936349549028813096901504996152563053346863611786919147440011010107386169041099512712903710115896036034381206646984427883129242101776151844017457310487259849225162812629221508698488222708468821443444016162918736687322055538107476805872495909350838785533369225913847637322170575217929466676561357223230839049054387755723804305865635985043268243116207344681269812021307415822629191793699856993106582564450718763996610355860213363595059184283838555490758659495763014106929466223879707858134844244237655057582634511508529051135141617536019120200881605733409292201931330079164758454429149702830794317162195727479256672189249965187360585858162633543634319564128709612915005714953621493141400386301101354479525790625269641993563490785557479995186457428806431481616215310983642123539825637857710902340321655338392366684495434252337388198918317154869417773012137536841587309562038099441677810048099466210281930846649746903934782119572457359802480426091885838825581064365386501194453941378421744387276149867388164545274585257350852427465352650901617034607435052567048785079325048379315943377575183643623188701189123912647713401368613836531330532206641598539780313516096486038569810185207067056273743727090476410780133801277414732473698564752172819738400174325994070970956001335411729980707432914952596936393128667357767472313576967324845680366442698788701024709574557858677356183752098289109306168208617117040222400871293388169031213832000727069518681918930555926832299123675975301014998899139968849821581504540915715605226446986121322630098185785950530606072434644462484728750421043111662152993127932226862981231862081920898196035386688742468248935974147056033357489341807632641313580432449754612423299253570529901715649840036441510217821778091932522377458885118209879810763536715194850961809123009365726287559964599147201170458964129869718239959374857538921580601157324197679556733882104295141079475477701658997592435558590734247125818996144640971229365504678629700089282407327339351489804987742036389143953008866144516799879144872212908818304325669701687349858959319511359812749773042750801156355999517233875371994078100856736482503510433889521684778836782802604082454390861023696300133620088518053125489169650393436438398713955311907718552482336683080626943042516676638942392570128428643136740647512584038321031961403096527788633344873471186277783233927996831786995273329500911969318633049688395589725450386819727876675680439457602784671471386985044643821007017866700712771187249392276426723707008854712970779580196872315892203698514180379627642473069805566167909892024218346812068324260498881049354526931716510473528356281263073914659983437749443742318870664148134795915458944230958983035735401374646180459856173397095458160733576695318994609737900522804263918196827021481500477780463078969853891891009728142659932681172693174144697997150728531793510968545177265950499339169229875353222968589130218691912526643087294512026901763121478088948661579275298901465892909099831209241370200916021358535272719605506595207196155712568411396257157271769697985616231819975378313707326670626606415485007051152539344679146698302372460061382287708877246644886143644322565357877754196962023032028804884925326358474115678716068536740795538384776394610206134322598284577283547092211149156251211263750256539933706051755223076628149137846655020830750481903535186459067875327279377854842738307261823225683618476492542486257151227359646449505452277157504568188436138276917212114455744069116559501997976073163519821350383811390587874084005917104836816500475536238913737947065141859258649782808539927672580799634205179799792995968498211378841973722588129997409321531522457706881514198961545440900613407431291171204820709830619553047162458434382968232699980288268122617352186826819580742511826267790213345001851032015578945235002807786131536651667105382853664567160500267521854977408362960572281217412015978308742958008862417140943340086303046560415271503846030405124217565604683082262438723473025008807414950176075165793572927007996247662426212029723971451794249934483462113533764112730078840722666737311436306786758047294668040631564183222501187372350110360930767053739968040387132718752416971927900192581159470641748864239243308724569455501225232204581455495864326468862175134680961414094257525161483212908661862706523733084844664068458910347537006650739822346055383544639784182831703784670063449824772648193237000493380312672085122041102396917743459718040660727537730813519050392228369957721300070691486833027190106859875375364185101098167394054326819866810697328640857930937816353955560556420156802122137276931755115630431075312248759618043480765952563508529034655086712965611183512439847491363919811229225365273543986590371734423491606902831134108307185055813945991709624520976761121701370544921757240921138727256186193158658083550414526521041872664239928028579257988427475151302452207869322167316325160074731672412289354813242503973413240792663790736597062247346420502817323198102141443857040749386734581412717104320649922709641116780132114594461131176116032891172402900636480494203101649369859808243667891976258244718626913948136111306742381804061700232442972408471237051601254299817188267454105699559896978084024337487710570886327414353413679975468526896246702570868376248085732515194586555897090361950265336320120437156347970042327804061036591727485828323145661939730118949989310899720807119419176017795267118230255661347219884771599430608345191400743207731995813053435944182905937720544160580305944539361588746480187832357394036749937310033738532197045213418487064508934084088009624762558229301446028339390179493603746282592023721322485439005094886839977166612443376681383696821750790662758207457585378756482316389210155381186936090982422108220441617133274606939820619962946283815275680889585314465185064520708233671412606834226120692369844515979462901364242852968290527023293719325763813432211354915148844142810403264480881059270924667001509783041609517882189748802138797255429614220000041953433059968681548797735491347230166803958547520283441773894680185493874157326784819554636878156946956528005334702581351160399342814739954190195393141582393763821783411293831516198672059135540753312301759699179767005956758795873436855253603164981586044930159088009038353402110202823699361388744950764769134249391773588896982323311719401509998117223336565872428695947290779517233446600704195033279497637425942864359413767519317382861755162957164340938971696719574211450461734077531555432902935985522566923617983199844576258864227243840127322037928658907263541213592938964497615877724794205763076825149076829118313268609879285249315512899597990872375375732816186856114135321391522531597366358721117454954527903269061553340187383785988606743520787123796593152004403437315140300552460256956046118849958199746136066740618550355630736407432818792702033755801989992463937500524690441348811382985044952482120743696846405191413145811519304452378748181069573202395695189257587126038088502868127024545836368917505923398477758834486692503286518645039524130176901112175299079457047816445785094552303873032503384793328211105263395204937028928751738297011756846650309664330757488232658894416356088245130338830354604579143922737675126594863091315115639758820684502132522398692338060810674855381794783616347764544315599555629514240351425240882230099561286396829179694909399630590490327185753709904538529767199644245823895083927650136737845308173592735593624353068875442093889523030041492333067099025623884752548017513965619401685503795612076928982984652310924636781225024196674548238611348395002400624081380766487259360076671035207813167322358017693816184976843126197983273562107846478236402712953431729449213370484205080928779147004567841799129880188847645591724640703251809382689906748972450513698218586014502846929042249172383824348444730761055097836765492267989192445958691809855677805472709546485960988182154407435738830662545058326913131731272222903507704254297381449407735743888091889226136288275525206848835693816912198411633957137395640179950988468354055803145862636969294342924630160581613820758217309614600912570324686609230330442695407001952146528053053919646936873771354643555062625753497799991673079666542605599650888289609977729354103490713748778129091175345041110541473699566301530867359445046566195521185011508472878038773658119208472522907366138572048179492979147966798433123397580143670607908430584177249459069215802101262727358626397486013100469582535513863503385434253897388441718028238497742552750096176771157347234963954643306503661620145898037643125040680000849976199188010332924655746026470806117486016117524865669403201647394436438015601389347899285405483329369291079031045746356602403034410532098499501526998828834185412443131421504712554607392935946713675643465245928545213361680114574538531489041806322727252841920070075096182989880198800733211928747656568282115920270733664362920830649737088316315936981812971403634578202517008974062954626298379538617979910541848285286421801671795488710551612602447974921157190535685281158029826265160296468730721779247162719342122958042297953653766106136841264367582316636598474602798183017451561639239617788236298054903793061623541534862268555757077414949085795522931336912723147242283174787471800483959225345497568288617108242008313176560787068545402156681971871313497576857280086571454187920538536004983903693742310280622051337359964851139931065667087255823287100938230230054796846937540270649834382821512302647780106799767970107818224126619563744331273118114868035022147030498443272961704743576133314072124946806674598105369605819889600148958029636997056975698612942980428629047821018409302969061945341415380017617321756037111678341188722121502001445143271468318654097335103645815359575969930885675632612304671619875549068643773800371054347701683084507750382551606291035185542478164385987305038283596694333012942950413804856610603417435990960816802398001967729597012843792966583510432619211061592156300917165223275455994376227174704348162129192369862315878832960588960835346143169243626504282388062565108589437273985223734018143195214417362645112090695761607821106705896799091501440997672843913891354127450265071156108871284960271032296553537178831470554080958199983188557059192583285408256506010837393127206968980364497948127773219889200375934807307040328280354945115237463233692663818468350926554923065602441703069466981696269864598236790148122975680709597247828081938895903460362586597315909434340609095976657866559804862320688524996276891545272162870268047199472974759818353744652417995385490079740158923074128945373908249608563350595519125705051596187062642347786622719838313730673250110308232460597078514335434179139142680131161404342458584805169665315123041440169331808268547155564526669747002585578977037468669014098326434272920776429626206144668656705429286176809944081131202807071599929620670441789239010895477249524444672102513964018718200506123776264874650357508880933080986866585046262054670092708528988462961891792835917197123484236096201888192838048799497648031555443937283053549359939964451754877533769071833380774773862275477535392010034095062688713709321350969360919576481697354062339156504746655186811162518092225510736984054803639717211830949525173091978999993550679184011504499713011367044758771078733748022057980261223849361149816097895665935430632352701087882153475385971736761314020721146615985205684824707642091854153326475893946333600595668586196009300561254948895645298815951039948952915243259956688371711613317391452803332291194019912033579402914776396201822352097021126395664344587629572674726670186445170415322012924264868013482962281902613138583525720856611219201549204169103092840831411688288060517381631776978029168031794348033538475760761251618951714116365771930705794799054302899356385495467927483726781660326931231089677088265624335151828510083833608509480636622995414748785333215562717569824004699086081180656073248561661804138250318129386540950179819672623171816413887983895420986274777886863048672051659652674991381088524214959453530185923452057419544961517931081232832420551044705166786202441847495287048438692243352675045546452822366998943553317713460690459344674988358189474318169645785295742966196119383997327857622482331004654876208174689653572626469709823821713218837281515808520127342070894226032494123844860554159779178366674325625557100734977062275123971999537852514942110602896131729724738538345501164563042298734156908567141851059180948436739433696183417137009681565756505637256273337604843340043138545529803177480413725045043511296404189076544208152882103045096621913697075528728046475474988817384078329323645989574177969670781728929613629398874687503346860185134864998841976620308890482916023299956579274458928458443280735664438858056643256625179965986912494831351929013597348386477860865866233680788933880530145331484537699017193437501893363727435899684228772618738170873497164773339427656595856987054885119677715114129807332394545758077003596290709674977048658534418794370692503102492844125614865723442921276521835719879170257721766382001433131204674348711147381376526048596069583782091522318833178827607789933855233909495087442327816688043823660955408886346060495848780752309959335225740223579618924469210408866430583720307428306859738957006975223018237998597371815412235899635504983389428684471143927849656405865377371673096234670038363915138461000476761830197968066705136948939857381673193487411069064594385635721546880448736334364503977316171750207539695818541234977861907180335289754882420795371291113719220588165968664499476523922915145382444751632559085917818199832666239578743720726090930503830299671289799939503665139578990690215272828655520503693831766883325149108073473901963643351860172426460545171430154094511544578825550537922783046064777748259655711278599323046431626172125178623264005076089808203579265736459448731181848699339951545009105416823159569249928451066492758488643880269855844562932061147450720301828869132013935893274387766606373606434109771745087881993261258609841291027057007960887091673691177823006043249395135799661767602940283345967570256239273251845596350199893209735136900326727088956153793145389179237493056705492036250026499127738960014335493710003089977120869461889722882176040190133411568496267940852396098749633285240746150324024769272256234242234794704955570911378781385685721949184175100873438448552625698053517486531788117357542595341777387412505230910340673641453709561370566453929809627260583326130236330226146104035006560594968043292336598918055613303546460348398185775685368717132284313476666977521422943285787645628121463962054926176959281198604717988874846659765327449097617149355996392144924512180389028143515212082126979564518497815669716759864270288873924442865072093549126894411975684282319475094255781346159592823542709959477599469676516953666229956222205845057831310218826437753073097943422723827105123811105622275106662881455066630307875395808917659142099087437781455846282122190562747468321227939951137503871071255689881340338329453425942128869128938179351738057438345644968018315248420988326320362958798937442426840220126540285565796731784945145189041261743612554229337217317325995756105208309467942821571784473888788990647614925342192905425156719694643391868348772245190302682083289219492222947285695555368554483973572351822438725517596531305414165635371462930181078228377344354560255282308948593335642708411680892247106854968766686379794865310042265106128845945829631534297871795733462998849560554125673087470022363149185769938870024231672573711610164834209265672861099697431342178559687005827284980063798193983461962434774530435172349380604817529081024020785152392606316440791473041665856064393857817287927868422673435882948447878888088738255431953701124661255895885190070140397399222152684849347166627526161314787092668753875703485309038518324236294644425359191575846095231171843967645029768533376478434145051413912429787732980832810999790751809659574719923075485585998071857198564920562413407717443361280851992777282093567654059112493723699375267197930015732848007898184249153687335490259193281916265748845889132948324233645719332293989251054168191928988357846217682737686526044338015677057759343847442866772290898249861933068085632389501670634643526637924911957168673509149712048779092216105873458266374819663683075657388170690666996618138014933985718565499789189207100966489124686051222631521223586889692795585449593610410743992061697204852639609119096748486957587121406800484255407693132638857183690230548855964130762053404319719739258796556163523091216709442525420186127256241265904289481655758938682433391149450493912908474531501897566808071848924066415453282502355971654096935751412937861180515551785098315671333469736617062542752471120602836427861425434304928916601741657356436329455594914521118491077288347011727528318273285145521761863520060539667455510514218589289116291676864329234506303051311144434943548344461417014604277715454825639923498064253914694549278288169519396333870576572861496269611917749752262746821832696746410065607594656718407957894517933564478306388084095249170807530301554715919540510952119460041975012446612359531405572896386729319939244702363870255929925279416866947347085178401612763640700849066682277068005379637501959725598050166140166857387067654140793788374597051360307136380279648345545598185348676111675789303255080014574384508256447883545713167885874830927670072975870879464277053437228842708732071610503218521544851776190383851274313506992127103175077643466271016035459681068747487215326745052250361491225376738804101865228564241588399291623187624844195990601828375602089810550054466064292016531576357071174425533636837776275130282795552766197135613952725134205790539984421998210325136009086068537761987552126489624948688566782360755005106309187977918926340458818755415325696615246869951895367212932756691752401658078460794563236472834959286879135187491849532116883824097672582848073378354837341115345971227910148751154188967841796934914019181187216661508863212127399490321294201730560813042082071938365606061372159671816178997158771879506959181955502557139574564696747777240365282026442423556939659482957589428428088628944719263730143614824942121718607275218799799121704799825864920415545716141502565468791737343363967474169246349669355352515679075070525055920689222754021682059690034964889431751406288966428522427875008139448881440418452821702903020491185562373975061329973989285445425012945470662027940940309294065017865249424846399430894381845633672234217781555012710686429036610384372686621477437946712158285406745800164901592190244957893539787296996922951345536941140077551815956396338854981197910887162851658783361071998016490473642192611437362605662634375491771571550327081168626612911023329788394955657575418276186948051986490861135927857468862515144171049583222014428236959474153129505432134816393006128237724807231752108021547260602999480619640810563897767754992666396890521461399680102471897791285824008594805758981679650987423139960479535355885961625929310616076664113762204666217583232580703425383196192633968309580207064318553877656957298947828664846562298659463590113291358575754668596146394187437788021608444590022697992566043102019744195704066573925136113745285059262681360510666593126029199839693660104391823271851533465096279771334232652376654119770412308154804168968321129599612607728254664683387244702174102018992874005958205902977119135184808366356389655180606198829288617658239951526358594514321936693236376998806857534763992514617990015012840343801517348431235002341119049371068131101541586285123417740536819094890787078040095848657037541799405028809168604086753224220796248973297070376450438748009891091927917527787522392446304708225782565766691524972657651786910799830156276664538509980165399032938259954546897014823515647137048243470771291485092592188603058184203317736894103217119582052762832819233236770925903645361127794798671246297167645074010949233098693394729448867782378498683157054331864803656116624073504427375936318839997781242619279723558112843677001846929321120589170818032475483853777818871601091628316195995125676029403501214676137419386441133674967494323310290853845334463097250255796761915014244738494842099633210406187349500711840994761445331161230834663024448589636340157134120335289331673180541074355775760971351849935710204054519672643928078297686579317199968649677642327729810522895527793515357435572147796249527864243622765132320885333367493737014419830993535541454050692404856418021532664545661581456109161954779554847650249300717556810604056733744534974031837535727074862414161811328039805077369359530446364935605359239513944488636936770563487267202328630446574538323282363538338453180883540322356179620458366496864437138172448188235285188745032997520746861383298083059834902745756332634000189158998751134121747906539175756399702486154556143888100150933815169998327747134677692211417681934266123244173730732966152136572033893719905572190713134090739957353151181777069333401955015771490874557425967734951888849315033441861865832993807042147980567156897864790860299132103571492662550432867580556269999583568299508735831249776054158741258654901082147873464424037675137402925753878426423015518134949365394264799507315779935350012600879942513102143189636853350315421966473853995116919964723612982239867944052907152615701994339344707605842940735307285094213537599532331426948990159928534750545093808746594725339042457225833147486304349616828476843743668002349774988989844152381923553366233454723309414899624387503596358509399439386179434783699421322853652028996927007029059031768997759202695237327708821298802580899625455751405618327672112659331329748945519055512307176107296662727671020642987923841571504975629940332490408047001981979610838660838001839763643662770707635272470257647682553210337574824414432826272835073109314322147798724280467798073331492207153420911505652205439170155030367390943318201158780231621431912834006899471047358261873325713709808171670976568360600179817800318660827123142344243103656565443342426029984311923903562081114684377716851521471318194672061967983573217343954507969485375112169164117475774939004130340405039589522765799551890582115385866463141404269339631151414201614198490446138500771674342332470243650589953106370483161430664868110407205705748910868437049153374067813771951806095018381072980077519292369479910025460026486985733626874820568611300281734319523246327946517843708102994592095521658470481867960990733077544779076583580773093566386289160858809630933440218569419768165452046865047857773661663196418282863079876775726989000168266639801857176079628412794938804568773650199727607434566268093221470844770506359297863895896752836889217532686726385889947551968425365374258225797442804163010518987934966151703126570498228267790469181637965374691984231365698284341948780366173112432956234534323217300845087786445680752472500111476687672779563220239133052603874830388069770574235062263356073916224505378118441997879126336368368602636793955308633116518252312178606657757063381578226998877103376829637643281083438050537161010823829269566550451177760536101659587578359444690250408636595646650208822567230752785993922227964141520071974357614994698316561671307183780280184172173016933669548887470505786308270690108707802203368667343811729448071948277797196138294918075023981531433010618409853789879710845197778249767919166947387490689880271783519786041576688384986943159193727445021467971430137706757137037680148385182780372326839744354282829124431726000499987449224160835811765962925560656701921417871009991740186626786620282179769755893365969791974248891128072989610873222087178171957286868979368928758812616481718629222973652277397574605621546490672300596119916181013585034090200162405711612566114970477995560642560252660690737155933549886512482865944682345470242942616398452878342009935263963046645046276623591793706377702450141791124346970311305554184583024524828160312075899026173571519384349859334504964195864816115531099258002613887029836308637787098296296224356761927931604100594578219018842915897404815899120337522891375166260086367461798154311511726901768217364375415860257137539941921472640685338694761722149255247844944456689094089486627314550667933221319162654486568028828642602951046335387866225498451716948221041310939849975273368333679406567927876081647637652087644987868902183888644480764745082188023437753799670423817952572013643698971900624904798063185003582608235033068782875054332577268098962107857538644082827175212965120596937894102404519310107282721105971906974038402267368619128855961985383588930548469996736749116652806594471482612615290813979648092736964120173519146603850721463543640854965075372028279293074893669226906665399576183205308228168178855437361811059361628515927206250405306017399428932430783847611704486595474483077267717560244114186296368727228551934466544816820189071698007348982169968825825025561259071990432365080799529454518870567766020043570493158576062538922864214964457723633164376531578027081818502881094272240188783870271138977987794911136882086170418156560199735802346961788801742485749226391837479999816928465814062883570156635694636815761168701212663749034260532562554791700580914519977192255286183081548940496080040912596634524331229697746833834274614421836234120862536025940183320251006680204796189845045864683182435858067740274403819268362779155012854924948723157795729933821405154390259655878884262737961106192639120897602472982773324827570801364737071967558574725043444525704475797938871746231779840999200580857932524056545907196836383874652338260375309720511720672196387427548314627687566187672998934833390284530644801692665203278984995377749334928414139201004243181274232138490700557181823381860190316597747239039832657156586265434309756442876167718632769624604413997923880344692191308655560575606229722156948857043146997428527011101466050353535987238091027586609076282928987620426496017527430504180847359153665333036891011075464013252348300352588803232585173596232555299915588457299344241706337318685204321069979673803814885453071651016563596272756672105726574872221220668729709959342538406593345638000914881353624265866972792907732623906972861094915680153769676126011182843512392798710716707727552309757507896642527542218591177988908482678548388189268031204591687006446772570617434821251028815322543082774166665982118446681743813895708690283396671350205973843935010511919593329008090489079504473660881249929093766186630091196275126949674552903770866344300327049705301565328793637622937273039748689474010877870161006498542120386104628180355022542498812269749034136193003863749658673022045802711080623371977817299654625830767351100405366309144566435900373633194120672661238301206422312957603461907947624839499824111171749854355255559673357865221221731567261814418290517395200008139387945901618018617317487987145813342192009617397596470603983589319327443446536146912232839412295125269976331473643982830185483338449087320470088605951433246819330138628762781163480718962593483493665301354633452244331355870629663783161774330832915971535382049010159315341408079357581280685680287879842293030573910786889675701759407068959428708781567087354471350677894929830851738041048852314083902683696528635871668113104225641400494893000265171388620793839621782780958405110228878527300012471036421034946541618532833077040551583730830753352707608785509819854864334607678941723531342303717611882996369455394875836595211179354713108442030720166342621946890247306855866130293567268972396929301935629012500168130689468764065957981481794017583851400507728122454901519525047306927806698475621310160203315285987403651040345796928919990276709488584984904517599659434831275938633883832317690129540932918416404489412013093737377247090504477949222577276890620266818954176120757997052494217732536527767418849761457751098848091681420753735105182959078458522549502615928445499362748760079128408715064508476484922970782295373574809051140717108419521597083231009032179348095679565135368446314956534882411233398610022335551294017437827930528006441107275553468163044117264871389185101896609291232111049994009950871795974103764255613934965682751077695126499708879576007918902641303342220640209256879240388322882258829822093009429952941704463381136870182497655849106551542761117163925755025677955390907962851217651564690181529435570442531038792330902582372721820044993254702551129469139778317104090836169984477768791982382987340587508751570373747459265933835671381405648602127525583026660169362131127930435277196506856439163489411830951295242826388904572112428662406085774781896164611514412792221105077668129425375062766180741536728365852611117681766914107435535950997804904613737749078336603891046304466737411044807756966778670881401962901431326171014293461960207991713980760676074267238069080605644001077036375069665639407157017597280705220347372516755751517650995366062360179330755360043702885803839609608577826438300690481978638774183137309463528955917962805135827534156579902924924877117166315715875379528281366246479483199025281019999750329546588340779576384553115068374819230770810812212241208061444393537051787135102547742085705870014059463395059657760387312922644748843072266918881085513577952652770681975006817778595992678624131241445074023073347915084600119533545489729279616219113257279892781360882748868050930977413296852969643384065059053598520597472441976327126021533982801408043353238442916416701482021501405189378589077755919848293052404586053776309956092518994280011844617821603433406275893194153081089370805445025873185712654230070304699358448680577233109857373371625563617945522092944731266326677943237949745582358080184456868815676009975626625208998756192431772416117577012518551358210927132769175820494998052520063004338407138779980236750186665862498202934366819559847003200724258432938216076871885935423773162056743244167098569238893304833677402157960095786373046805077995570163045477262758153093687835882811286514392645674985213586963495224548111217997443333882062016529262808654434907981464591470365497106330035355211712560499164718600670770587392553994257651191376776137247325660472721980355522686410138988469638520458387456675819803445606991040621785934308204770061049436617897017076819621048253815552015706251915159912551169424545660019353396937416206242228544844726288306887907111873908105151679588818451498944630183661519987409524502360130823703372462746499994318533277581787537744704183445095642341801561079844215486531293123337385918506490380408320653482262465454790988066963580660661170379302803830625504868241660132195666006338116005263364419438342665586603017144766348025690668348721303219750142622875001946352280319878025462361104669132543567822422519363270756978134066407988620381118569354482981027763792604371363036715281257540803375006190402020609683096524140371144955656246579009619594676199624668931763599653271458604858618205162786205884670074548527716247763688583661173364800787503976407365518374848886704909055932797176429974205675423842032783116000699157126105859595846806804272441280060769759364984563116653860271871338468997394827588007431108377957604444787616854639434326770620146908261239383194105939880167248785419943001589964928571649854346531881612202163671581230491279545638773506595885515310727957163234123891620488632337975780296559936087754770717059880646761009734218989545953436747925832699744806395818596078576769375676314545448573839012545140637068533592619005084958569140338808045887626520561788582930939794785063205268578030270868314344661302071389845923800718551179788776260861152507265047179222738787219547399720678883646657581147628610733925784378170855219656837719385223238476627335952121334971067865434282653806935648340087795883267698898384497722172907883350596860927839848953403740311284986947110280022850798677397262808197277999590285116272026763446602821102885303982059072917441227315206528940382989737767410775282434461426757118784337875193095461222624060057341068384074951223693234242405747804563908658644002836715398588332375419069836072894818108618617796135622026738304799282447763884619433767615881774770733996887306582713719617361147040480214027384325819369494643104676495125917446249335674255731028612247051884340585211588036120333942126559080362009234627891627110768755813194344797690946552097472528494237774371304589764124762730503451542501817905793069058077371315640365413290896148736266392993127625061035581815750519527238499572552744317127576679190104519228193300337945277690922149959986200987075474911429872996532346529061827875427060899745095768647019482115586038908756989714151815433586933347010223031601445304848485736398484986071982197079940179149253300148003243901895430352397197840176881708738293637551922143400987700926305994659186497086104296634019281725010176482745997060893902800386355956170625799854914145718023782073039117878861152162959402734041942395601873916499424571024484958688543855889318507113207980622389742525668737552933319537272351453682031114889281585621875920823866526524646054765263551444521546167335745918673174082803346821087495066593736058943744544750003418080875906735920156298335467029053673184083877947203791616385541623251433073118900621485666046100043366763679739973402301794520918843357676932082286997729436932887154438094697574632890331376600144998141771026185191425078699861194017123679289168768726695288942169091524750282204323507578807361972943542152967892544712423025282891852834128017730012672149628015399157456905298952479183200416426995604668372971150207595861270697482513447308458731167609646714927966775270812671374644645332709932535768679785261894164835530408523564377974379978740701527289285271132355895336120238252672172578974926772236195405137975149495969250961119150072659934065449539558821156856959429526804948738874041968021950598268603597202099692001526962320878098146153322329143026254960191180830781603406648174880230607118081230534664617130592896954732335770302692604355523028708549243440638906307427712335522402461294980733599927597147859196856354519247720527772430254849422078487002500783384486832168924672063498769042045411415046867173394696247840036553604323497739557518256508420465014220545911848958285539146561463264587494628846633544112958464648895839161533587721409145041871495816919865609783554859822836998529384511985167352589798849222871826842415270063153005726956569574649121702058865965798288112167772207369751707100001340966188901248148103579087429931381073802159607878036035892594193066403654520157793915320845796715959442018840021573672331864648805160650002856543870148641879967471970091137615548372493176717704476180141085878481117717911982912199116420949547260420404030400753529831078294000933024288093552219426422355164505232010039464872433331510265043110569655199075483540676886773382136947673803845653346687674815295971628976518589032038611167002491372887728200746361954863184732073622854055007371841334290464176431218443077520836058516418773054749514867537279944542801055236347005642452036435121578746023551797140833478940433953352455270219093098936146824797035718736921121456363581567295729773233081962370984517346858516510263210340955590389377420693419687338235528292728090158858641653246180277011713689454882878766847071686349898740535349377960600253681590602107084189408861279220179225707199895431867207605032977903524216589875135409629761189532338364460315471491466700048554724077642515163298051327680446712971542977950625746666525085840226310381692483096748735139576519395822990478587947716867961379638824275865022362229545813464429877309170349585947747504193661786370706827172729533334229692517166491749872638487152741975385489601793797864240612183573191927975029247156150655411276797725032401660497432990548982091258309990388771440189740375531194575969234100592759893714370227572741374367330658435343241828711082433748784521756151863492626872909988601726094019219916048607291087228857223310359361794284943396751509153210082021942566947094153850767769816440541018603913739549504645175680327238902157580104192052597537926600877721429808751729607950050258885867747285643592850796363419559817172928789657004810343830921610948599855868452878007662100020502491352355313865976347182373805652215277022180519600210932375678682378578828418253171960714427695887798114014798683647963091133642366891479405051881113557537803020979529892920751890308580529052795694227514408836059643322720426014830279756689516893067768020773613322310177921064342212099061848086608355542900524320651611263300042356719666633978649307494046167753400365164967803919240469120719091830734000620235091765851874377019733339561003549802236080047936107754652799484565516560918752887248758159239788207642377932631243130389435261721055933940831856889505660486173312583286374237484800063051930813881561586942210092254455933317795964023152804270537456534304066331472561857065169783733606538022412103153680004471957536358103872767259997080643400998003127250941239485524333595291466271404430764274972485279444465074989921758116343459240780470082343585555936374616675175817840381755669800852644067602485992457682073148028950072585568305874366879840031374593511367652783052453262998131432141736386472997280738799202033219962552438317779227953829874525096384779278913134021171413128578306058258245373040894632780799063156195176362865144464457824341066700723687917501443753444833433022254642317358882671848073251711428327526999166839295438350986708623062546525965240640636557720940968610930269261565656919839436248146953297824004132167836889560435677426139503963809832414879435906838184769106266699843231333925929169548273760266231759554228077834222724020369309595598365441462128467794105680759538922336765713691701521911404118431097037642564680711258883365702065197348283564330554561322295338661205106969629169111682238070952476170321611480499743034509437749250196840439667937099143300058174396514815137166188418487412986714415036242821264920350707828439030085898082924566061257131475556704037134943345489497382732341461500442884364116553714844949915376529275328059735068151459936667131828501920749269243705111658133900007920337353860567234761834622710184653188296135023259966366043284750332947168609854540299255395383064340237969071251119992519268336122993852546182149380000141118964860601543854272889579354485998038175260971292399223908903542207506441618462136986281991260355175961571176309578612154271292414092399223556297560296039108867298414227820513879084125145689774805681163216084111582066883618730875956078716747437975693061160714493553155605874068597018639502113274056028717454136208107346782135031766192876951316818240049847744492924923066206371220034566201121895769801530647316202712498410340392203850075898795309553118634641236360138525328939191438027648240954621503820981365398516860279902596163717882727752478401226135149130412933189776425937689335358652666086244000987999902640571462231937406804366861935448286452737847178278541403839106983333822915638762727917862377710618423728504938828151246845699903030553823566962978072975091508601263593045759857208055928696356532403429389584348875860622898567101552049616270793540485459040410264820143023491610369109848223550709782961674316296758798600420682270002995892221687837754939902874803780468795544346236211420349487426148493985720453618908385660317329017886869709260171772524523525434185752895281999874003382730770836185796440680569442291898414391892621804241892743139732255514043256521848453021551768306501995773435682083758068821705944090488914375407781426106565315529091905303946997314883655152346187080944817127241699695200440966588907034794172098187128627544653891306447574557224930861830751903749941974466873656979148194852615951903501668719219062380778156350808129187608486337257640148607790618437805312882598826828475045408624919180197639125274217677467769171512676686575583381802711473738459172531055052407596286213113378910496119600017215180490144447527423420296534382592745346939357771956209330460413371056097789171003859409292353542898133077880794367456669759168075330082520085207110782253828423732654983508594917350891744641022025419704619939698488353373295459795647044367992861334952567284319242080644501807319943933552156738869835707644262967264051396469302699654989809992443354422520609587760946007152139263915241490326327336377241754814073489225384334873198703622765151530028472148685139076249653515764424501793038266943638842395888158449080131635005080466548668271484198462826524437898221781969763035030879339278055118411902426306418086625306191152285655223082144015337145128202701770606868059825034975389893373660562667921108114725430709812986359980444987986686782395101464843157445033996004689666666080840967760015541475270614154284268460437980764815105910560746230483744860823333808430801659694910777678781450205037276395315519525122316026728061923339884509716939170136491242399397830963251072433216785835913292268933709398930725973571473735469947505850942268659162145484761355926418687214144536644903139314258647733818531160472533300027605667426772996522753389116916555724737615090908816136097008746503920644268067098398364210766230417968187061727099803151841203866813538658260198223739048716543482886305346580826525867403903526179450186636396651555359175416402575444897374875403161889088649119300417815817100043554245586238226951421484163271190167908546999437524995983826573272433994784431721324371484320328375151881292134653147739506279598464428685220685634251229469675422912912707150322074158164625425553480476037723316479861128985139548135299154879271589157354389766125916036011840160906867196634643833745651368765498950107590795235200216664553507122688353624570787039790252004718382092928703852557625077880779376486018399820193567732636030145443536676468487536469361780620554419634994137181953240300446968724178152723340894458160870548229576002853201969309981493763831650168047484802492798064699587705131952768809516350237573062267370398982675265296649917572645967607435845395432095526963863237589900181591337062421083770724626972381450176002664115856167546808475951182597416643721489540649703718271513248543156216577792108707159232382813215024625509283741825233333425975556259195793010286078365976309042182345593538870908931436976413157563158823892530919355261454419028492650491255206053811613138301203413796670872861024681358572544588126237154883271759705163815991671388859168774746509564505319893636542667049320440477044267978169003117507838234153530419696826839071713470823149941379061983052810362656154146783932061467852181061857900665873819110539008759521527249345661848860498445911759930131135570476444784750679818145508135675056494706787330770588599306520332775120008698701653346240692353122550743290727987607721701059995683958062672085464819403960031178060653235945965516769376442827455510293668839757859001746447816668474144601898317394622206628252788320711218541037414690682976228620231814309612587614341836557846769139004576296774297640941728018993882512486545226534787861490781443504495610035004145239747270656894519281687733655210871515533703816911360921041914369553039437157724324137217871791544325793546059183505802534415290308091334476609239858167322747796137599806832234176959073232975533608977637075002203761917070728713365099798694737608423114303172310281206042060414918945982547571620085160851012568794743151117102306141282745894753550757571457473304040719798618443639795073859485912510488029802838744583215312637468340890875049392937861282443200759552706194157090566172892550415754024345400258464760199017912627178191115915987088281238200030108533490807197114045609353507781784734155663902334069448169689352218334071891479932917355631578760596460627886855366750707906951287526967246021102855725767455437329922364709343172988367072898397597123721893565810408229077888105217522659044942830384576416739682730200397764657383332844020006842853263338639105183625460265936947870758976850173400685939367631973859354894538654661906780993174045294014808375776230030836231010853506162480647388114742550116650026676281797179566108941555327871936812840491217172912287818484350475196104609365842733546427741686741177778551775552138884933142938525323149378398817281184754374708590691163392750068038955869999448102685920580060602079872158111404040791042687836952521880813239546817333818687888260856663703365271273332475220264173000229750937150475350988029051712908307472432343877573608464344915548245948902895643635165154367523496561646062506881647321576488616724122642323781494520428113058981999626612028863099416476934494650501990360715856688310182444438072379178892601224809638887153346104682170358255374549311247917152452461399322214235385156128642647116052364264993419689834097480937694409198836616279670661664333082366368491131639002266548383916163217971842682976136091937076552380632904258462532887610506486407171985997549253296999416505243170751515569548954508568880372154997609192829985126312761086728408234203647013735960690392321330598185270834402841164591391050196464169397798155797457539851508869254676776491337108043601892318487267208701693439418890433906255681946499056011347696226160582985409683943022829477830430312016582277219078000741095988664012582782623685389359477602141592846229651858544841068983711176656570910149702790438693424587814933685752664851471276670963034342557438595983483040930505347507183983962557434309992632408165127642220242028208989880197348317267666768769984140296960661781249218325226138846889974751995636669385202205811939852802075166224603222783779364380843153535634034909158637085139922978068835672318061340462383229070222819824833920955894777567813444434194341798876373600770212186863801442319835463896985079645849560516853868205720397370920777361083932778993128859832745788405309637258924441102248568134367489463559205114579769711218791589555523719818697279557062174355664891354065889905695698233369135365745068886885751675350178027617966038969544083299098229657732492469224987209862004247342476522464791522314941820477553750331098186722928181326762038461209914696651383670888379908996379378462515080392399546634272757168435204233409736195063943571380063425474321150225458687110724027154236746558749901930146927320084218441877467218467808619047595855187032876993961081119874035101993011845078900147095194474447605675348555541918440093465618288224493476406064077420980835955688963787204961554145816798596513447044113084312361527507977067181689245554408260812226562589179455574823775349950162950385496058369962886547977298290618047324671361597445764426866486030568767808756758797400920390672842378641837691824447020933678647400577951101436297414465755012664783905642227645743566069290354384397615049819576905203430488891847304338971118997174499133873850795301614998076563360199301871443030068005019651318103444922293895745026012900403038568889669076768516036270140890505047552993703033218273440653171105151657562736120141455848123111157207207970739966303293805590864958790158154236013382904844999218135658259868246530537352059733191867596337804457172730835774773633673890218967384908957312130875149851851369969730831409201400610408735022155660028839657974889316319098068645999663861420377608520411679876688016493333082775477252479406186073236969258446690286786381677661751258829579596918113974573665277869656361673767607176324997174842092710799367142657742033608030572524655921117310692678490860572802847220910777197710739055130093040215044120183485004538514176569679021544458041641108901125222655604830011547200911021611948197049800743581244250303228397739472213492655550615655525948878111635019551882551394926727611505880210251079711037409720996082515357206221254563101560751459917995521311173718907086708892367683745153246319910395799160155522566791338965653122102737452917981523210651254115492363503056279473134136309318858188827470899148488222059340599120290532767226654406458304836437582797111153180794770475159264642479344366171902371958274114377458288046380373869031128455882322237312382364471560381224226748737824676036689270028701464763469799324028430662522475729680073591266322434555533432151200445368473850197444889196849646195721864239702624577110931042363152355152650198053750308545124898531160339988344854462878516665707393660224371076426141398466786568898640587432419978415795612250767190247717916987583831948382645396960797841498255039139762883490739458739670985654108082943226826007954991840959387901739989207107747436569920369430961678366645788350062262111922130266841063118780035633916788330401745693047465263919928883389415889856518987480169622025605557805013043997418017149265636163488689681086434579170866324972850390367263580293189536783452667041481759379594516439099166458405565597518580844226598131269555815706069401712303013925014110056230329840545245788838378998364098865784492536594142875202100304614588051215920953199073842074218726357627650680311786999530334197746964177536372712248126262031525589780018278511453734025198698682976130261842707994227275893870463833226843363152174061506254862624828038081375077919063418316176386107914513629664734437015213397006328151664470021848024792938498250190096158150724205159923267064376314764758770712688201761430226684301750093600680118041122850129185517308054522186607942767774623547318802254251599445364204561013819971077639620076993754573214201512414958097068513092518162495830811214480649192400644916375037548089048498384364418045181286401496792374827183374524149919960268134408945877901683278927729069403109102585732432458893890419219982815647571953470989879749294230602096094554951848977886722504047521504530809125410763521516266975560514188225845987685009419014737145904744941371775265545809687107290002617633553533197609564780429723800294627369885341203850212811116837237684184495792695137262673894636040781169323596421698234972442990026784486942160822283649727775497873795222368643979184726569366716225611775938684824544023653328039556668241520984686319450783916999083561384751647831631479699030262825676813362330546517381069654073740468632831140616257882650506378048257041901002121485480897909828589893030823692141311693312720184402641794271174099396569232978242887309557333071536690608189372860266549753925046866401646021955916492309880458035713258544177884748584053046171297942409934602751077045548930922462574087055686966815358050550829390615723699962506003124508229732569192923028000098425912562231544962751406996581043279812174980863763949895226994923403053272432353598023648873241882837044821158169951389267411341652709458450341892475982670988188179198717723041289416561317061850146206016206432649222833333582570401636387171003665123773556672734939095623587232888644892667310290918832762777153684858259887321206088710664858097771984596229709604831673633801866097291517520869636899547394108293915701330113836783092955113446689021531194357001506734442452886489913244023277962207313494827869462037130583789769647959795876815848337159628189415896631238131485375216245152703657240933713937684432947051198073766872830434308875314121476490438932713719010241622808040791821902917573196296774211944509131932633888371373002937084037676386665827558858564988091803548959321406660748211696623281831683743557275679925842366843400400055906200905620303363384953373580962073405742142499776597365369319082184932188489725108328458909288129564690640983149173059031673417464928953548210609671527100554930427784787643208858800857849012248746387688930418385507018999066183902088343799523500382927696568115305142928757647829609774213874034959969240529199025203415442880144351660459869712491742575914359500443717868680204160449863948192502235404508233863738746064363823710719323800335595966701218679382440499254382152818702508863977832045292523891151602113475611550676637930756582562831517071900880446443391994409827943706786205610714143344308050172361491095475042706031869532588732272875837055086866426340152166394261712509864201827552561672747795025688938541940717005534535043794277976270354733824898629370540414929286047175078595537915875751193822412243678791024016366984582501490707183572321503737390296484368723752691969349352334622693797873993736097706730155107402377483619184680393537628818706380869117381924339973489216358235602842306009893851977309142342713182181982563192021750302208728363161756615317707359209911920024942371552483829416650861153695333304518983064653525756711188412769603458950063056213925703065831145084528197153429059544338386288933975416077200816451201222184979132107606732422161833749049744130897469786369635341238373530104961085028616955810554760684206316152391474487967516237306411872460953414213708354419675655726704196009257783394545811490598520516171779610545938935932749059411176702056707079605046973178688119641677121619821435771398499563974521542148685096935276169126006069976031358019714430308731830498535441013444774543956433572633173017199819519865574823474623322653880294722907988314173362795832013613339857623651024010153311880352111152873864897078969137377919968562788749457145104708980515860657559592850658580150555267664987610803657640432993386619996298116409870837550722401727644836186067656460512509616440470015905345016893977135486340983856690560073985454945723371881409956076837050800496719812264014415606067232916441095195659249084045398617061369670442764944374657427070707793647585506908602502592887842873851071402882738242652518457279055072702438623281170066617835626498112149880644200256347714112179027654610126867752221480037336534729822980426752097183254684546683252467287050148669403853082750761100098659166130726120186521777589482866186172394076355997292955221208674163465299898843870339573536281871410769538697364507654831077171742542324883699104990611749747892588585075498221527479383287548659914866575358080858869937959130500379230477818299843997673001715755628870466572922135767775844254423579001022561748861562527784788839289977577956235902294064269572103250633132766004350983306665186782306944650494355978937373166536568882375907748560741603852401950522056012696221880652241861854992495075609153067429069319560058939204544733416026090644403566998834978970298829102365301931806711881164187740205624929319981287279100559683904604916960840844967365341066553402225674134113045903010480967838115614702904722443351096688278858380725871590718303336928613213418687872698210061620311452228092517314090252393921502632214018633692679968405995449840312032252570585791996459970141425586065633317349360959555792876758047619227556090495080844779536674746027085420499957290603839307561167318911486354488754268715150058638900543568261971088533398286938618348037822612337241322144747188290765515199804863572085985263152763189975063133256953232902991972605051720527067153714583225877599880556218011521573176845667065782325065405934624436610942714163332553734748002130186881089565563667979348827141188247621162410504236516142423387509695760359719419393623068357215636676048196807754266039447254853363094596123258362875562237887556766082431130482431824274691220111008269366922671568315600855615350050058596848014427770617683554745138161577199359715907070629498101209213444080183042679476869274147237156983568727615155209362574935429286878217745918894109476589285988190029610768400574381054306194926374571637726831746248893714376407121508807967524281015321753440626595879922535852377800104427191707369885261853924315924425574956196364792919833808371998054729709681825277103635217110228548943187440507948409133761012725224010750446084832797077325489575377003674810030809242374410821221140358119351774034706775777155628449905211643589458446261438863537063133840147898358528015503238127446021306914408281318531700123816782441156577840357026339293451196356258179971685989664495276127126887004241805257658771107897610686516065272224703470495335252444212904990362178342822974906396392198394559726895269150704611563657522377391613072845313812268416526196359680844864321246588491386966156696161148726458216009046276842230533322590276451387965302272285785350723497364331378249821107615254347120321956521437524538115434254630547673708377693029418549862002227905454120530860351298147021886761915050705723681873590530507593442859265101826352136089030189062614934634181655014687633811790718666183153497482052506543712730608498124960739648536850093360150580851623515211942034506897759609647949293689074885440080360039297904532790212403104314864477131952807140364028181219051187052893497546738939353469278524768990447886513398800878763467094735436328996651561632092899046386384674847177275972257343461210691879676931096625998359325570315204508317065194588351652173805655595009309248178080647766091569029003180028891019468092922324140115276248286634298942857782120404059024580275564571625252007687941019195256922916774775622966230397114295629668668364123252990388172616151142538116686356803895221284818673874551291405571521341462986640266387875918189930652995547732773298846311338828667708813043025581432203280289882715787573296725628594090271604808111530965039194778937394767470831254422603128643187326951216113571402574706400825840738947841522764307702450378127478353604292103511579922514747217066673502523065835099465781082965571644432092551495783309081457682035999418663060167103265117410452270919464534397048205510611944126279212276569343352098161296216990277364663724428715125081733317523159577219709235867581661302819198069855149696821821314755072346433467769020299438262934586606838159583396119002297202494243680136661104435057204405739015860163198642991138001095236397728432762801097472364758908352432962273407741984790322352373630061629300487439376192259913834786747294713799540995208874494492012681043689179834847463884858190067275565357848602328904064581545747850546284630105653621773883992511077348140947075630907193162630686119094137107040676775765613377388607930017758216827648457473017482115097471128371283641978335087872847195074779483082810571768311419713203175731585750903162928902524694875773904710630895545088483755739059198815159497803342844717307559115632370932411626576053806923818631843098395385466011007427342038455967671206893667237399249020142295048349638232117761809784069857116405251940044022277171119627686693231016784204709364083272701551957916270649374359481174200369357551657164874446999308235536373290847936848173573579657312549963415304223878489145296634603485817478719436219291241237679105694637580715738388130585858416649282104662643274867239656743842278303986450407250337980252679319399231634069275021738598569431624438144804893103068142589464513068947182783628313125681529981066832042073537107371979816147048046863971443934146963367196398088719534106072636265156975119223429483371378745447749907441063838459928484284586842227427735775219856048407861283044952349060855160834968805249249906508409306489482589007705514411871657996986065536543981894894506576105347436881077959816474950966528040574832118526473897044656407837088958917480590862570450357190170444672768524095220514484755791340054082755239716944170957926090800342994697684830028762394097357756310184101362897437594269706546113447327044453631019732477781407253715510676497469911791813031589766146262457265931853348354385999073664367328985096462403722349433529620446353226212202266768352497403314568966937299311988785292469364805660474659968741843945028775530844176885162974085943684968665836141908263787850456484676938961113620413438624706479100643702031881291105409441226609452872387167683250659164945169558784796262834652675378619208185234898107124551691208346930517946811176431735870179970837645536589233972633051449424463396654397446222173143898468299989765275103943535184062921430683523851928048917908252085363824049022224732481568495318592333872639412351973224451636303473953439837527471440173233872949809600812543184529533038521770304787786534665697438526689134881692639581913662254809094817121788705816313881251779306572462185324611557225925373618861214476266924962189532856447909788367528786551039366016070592515248213791456487008229305178813415639364864767082912957536490643255734901353837760061037758785595013789032487766456541812238209719616140835495500529921206191853781718020628433733945013895640020803094227539030170493105834156201572077497360844553086711397226657333445595078634512980755247510810865560612188294238055168188854604024509741842280629724876639441655857288346397142014982621761244537196461930623266412048545890376313946009603953831819081378465566595015138300301151792294831087790178732692826676585990666390281827007594276467450876139037590964746699339472057797629968059234598487120866511854090112077306689906461816292394172757430529566493871655143276816438716719558320772395318931140730643274000595844163524366419963692624440774645995666236245484943013141262954616822565156078984192408495436492034859056791963854970660674161721009768505049643963543792930318834093926833748404606139449725140854898315583528532328413847491209454341064805670749912585822464736018120916119593631808893298315648356986760588788968736896664138172463679136349937237586530516557656637994244626650133602826510569777630069174815269127557563374474580754037511862300048820468884006216025016109821256295165109424471616512098217021507815735693884827221198944298704236715738069733557662556678347255495015361147031668381019407696218265392852282037199492500120848069058616036676519221569268549142051066942629767171906509404220918146922183773566570592527095106622291942197897978073838273767145762275861092135435660955192372148954694212506994057817911683549616118950963713449427719012584241407451134805802647425109393186473685111259772003353811664246853458148637113543531806156964911270215541510361544633904795165915134488953083193755687401880947288505473463671835119051778615146503928961393700934371692577389977728543911494910532275592081349534497849934980995440018454399334685728168460812454510929836593328124742274486633106825116181290010427245704083607542999524093767074965045036373635662546333083263370298890710295738480391025639943736240150357351552423117790972224079804333182663993379528700993382392314162096374310277406148068948365984147516350520198070811744472867463416207335839655950841020030070406248646586789078252160402006277760912054842076583465615698762392519944473885524790776848951740949703778202264751394583315056626243434847989529681041078880950795099514181355442583209651397034786016107956035603798574798525023433711508420028570273445904938812146598687409053222713060070844429165018212516746828456925084970752085391661002850592939461828863561108070058090926293992859382164875500921252807916463597668845524539265798808337263084259232742261302573416466474042757788362718213406012420380510539292287294811017336899644140094205953670077610771615666301372729577290032851979531934832148569035337865758157754635943166997430060984227983791213196645447507810943197929678634152310059156293336906819663888983074589744832612943616290934995778790937160686765727886786320551209325401866111415445411144278950561044940262862906062734879207677787198674399607220697217852879722989698245848189788470319936235571784895371538516538088799412765076925536630079168711320513674185103686430940303762392364493487594542204669875287939699470978679298490811384586454305923072903706530604872174418278290548143978793474966959741006363700588782776958953757334843906707138186632537870153756053142161796818912576615736466668632454394190051181141407338910661574181791594960904249055815393944137952781125246682565861024096061910174178594254054048988048441694702744922634588806924095574133854071690952760734204442705249567910409695647176044034345869886634522292016424303591075503082522930789701757441549142034757596298299595704464435429420020243371706913175898850706188016929759276082734914908252268629814546371136856521405398125727060394183861311243537535916733165104082922018528398743728506326638261621972550647847702896968604284785695078110496274380597120826529342433907039631886728921230249369304552482668365711509354614049219252012073329860571805695206315277456235415222059012821912374680275917877952181997490856957199225512342418207841998977835803745642079355560068082075533617893861295750115915685567210484494333692625661807298720063021269300459209309976162861890826195532875508642916357528025867535069730789522735969417356393891178695028716506987669886207804189621078615927581120748328577180432651041252150947855935505480747366912337102317696689024979869653521130550052835021299368586304829933018320185900102056698612219975172998672463112541873055006370916678148247501225422066075026076979279061987898329519745351694368607210398929762907263676101611034480221991895767565790056931034369445280729530674362693172736943146650294307837168882719559835894185854652750437439149877460557994678324250067772015118161531420874525873235113623617604178316870737201181984377459173826577099524898246818380041991184681694711846505273039154340003168757383774130302487757370538056665481314377773928179605128931275769872917700233688217333917918757938192702849928963199744820054688822062392405509237694243205600061510813265944061815582624673271421863668536376476096986711987328767445990256476332764036169986700066757428822587806752812357944974162252450537705520549020209800859559331201151292907737058120139671922058093226842718421665720224758561199869106478278590211818818505453467159408019383353485579010496076445322901794587375790286439090536635848143801538991432406734827027639094577761613949880030081337413953824072164185046033091878600327173276835149849140862815610159945720934670533400112297126454420980850884619031497892499213102676822541844628763156259614697704984608177454828882992568699504524887526915045433186698270741882796628844461054465952198862305540732939977893130016644429885128600746694919532101258262734660409398783913960440295175233897622573653779644196349365606044696624924922742706386801355324465002705745399908416800631178312817779523832100915795914764992980223600658445721498070126890626375302389634600514028727132599676830197722006499462937738013880272986789116808434114754631616519841544160873160497203973009115191635596035381737593981615817064797053034457381818565433872227809115798294592695434257368232143708790862181380057346345145000120673826978661286569284930490418241189081745772328791004850824562278686884244399652266014674396201965246477938832025324227508464784473424703014731600468529182852300259208304194943303046152904031161704092803914315207466323445523671639733647866221973766636515265375198322100810070554156214306895356588682836957546608292142829440674702953610883617916698323352756276973422895922467947442261901916404858885934776029376005531432276440346399044511489017669194501364396639090116076917727928987493979075180986370763640713895283734231383360052393189217912860190820397180408657929406739328867096344031307227445514458612989698340221381469721225250141049121077015357416671543714997158507202819599655462497078287439381904250217512885441734792726076904184875261806385059200096170530337070736635275552159927919890926885228808967109922027192315578061263592141379779045625639421266051450186353970224017634917546052105738614674293235660127253499303260105655641822233504807675523012312668962136398520236139242937028945431505215991371576778450508870224334040100151893461434726819774737411140634397685564161942310440619006300571882982187526932665759982739851118576514406790089663952094031104265582912064905973701522489001807772194476963899952308979185778536909715025264453990478781604944813546224674196083191478740108347176145962308272343525646809682248499528450432738498149683675515801644402932430791460033561465953911162569846496465790775113399286949224922277486454451094934962155700754836814792179003512454808881378515129101871227890991604382283817546836876855207139828644025489601599926971035920579495741303439244710530086248036336129112171784350403108478338056614641694873108817234926481379160154691052579499156555744588259438355607674768957733056773848960343970293177852519532320118656514594120848103407627447803689443092692718624891002587659486504067182577704701690291022590511702133687714567297342634030005028611342737984469726229580876339708622966758835884119856533044817070017607238362675082890213888911289866317201876522252499588614856489290222465741113053552155486631169251155059462416380291670631429527270173929074743469592028507265617889920288423653543374122635563929374123653522666773680077220120737509604669138178761127924049848230901007157723196828507470931353995071416412219706585389786636689946277434425817867302866448569919881312769188943867278865510314599841477273417820777588637594574535343561186402326658727955887318964098355499773543345467839910437806043314215739174711043630033721327198007121504633928439274211555585808999226958238928265884894362966087551069115534209871068409564948282903014238502377417256818385589053156463400807195017691223513067455402243281914224543923443596577449035892266044731570364009640282632623950853621004657439631767108552668465794281726107221692633466685183703276366724384841152988473491776686816986311760798747898390120082767532178327641974640586794355177063194815217256899299394321168644217966763790817902438936337833418021146442453730549697488500514705305680836292237298397714727294389678713888901660618859011609733370800884926949035603806281750986858072564324573721913221585142096746408919091835936870672477075161114347846915182795346232399302068053832395554125512405240934103349840766817229114647301228522390555049818533234895379696935156497898081325979561693804201748357153642214096369507748284572794633349491717101399069529381613107579185425994824212419119746837843233967067413584494668029971955325551899544243260783020490226965844176882520093071676358774880135892085075832544015171430310341922186849962296424604429633451601737012496493279787364849084700877975178227805661762864243814022073737215624711710493787630874138041817440776118231110164854498788451944017204780781978343035011797004694665347961934595483021492561926877341301155869799559825158891433945968604390116314089484635103416650462456973439956037244036847900569034423767193617721447585554118319925321037784755358946555502436723155214007038332096983996062290096167030627288538793590117240532971514534366442333622228415405720362116089525036989073110079173887060783236471344857371024603378223046249867347946328207421234733229022728121796571969319384977047826194217684661250710612452841532039039838238630740534576570585103549565836888839200807153386822989831395629085866004403252118969112233977969544383746628463424456029457546827337587285247772229127728627600414533155970805667967198974854000359774428030248980816625868641287770215895233928551553295385735319952625474226917979645641799255107946012051053980940275280694342860344366234180633336877575538219684963833503465805799519422418090086153797351602240945387427085013357271584983838673551256967995150711789122705930436694510009609353978486989274947377987205149307800766202043909920681805179670610101582920179854983774909956221098961972691046395505693432662173808623819698696581649971563369842603997967439609260051033046908041529612024943487566610199155941031949626757778197271180270650662817940002163927974389756379191656588502356491023058184662274506893900059375640956829017300090470261523959996696313113175936888380418525009479318777676735919186701126284324582309245381955006371740966095840139887807065770456137188716977365873856737971925204347301747280414118031916653947922429725533007109491739839447158394512612824261980446163541386375598618842319044705512738743987355339556870912270857446448964310593212068001160922663334661146905263348812125658645558481830898428311439929099040226452473858254280487912698356089058759523179721090905175354289006622512214911823127696142780383766295976451397894717527210791137908866700333648495675487546933752058274229809131175143279001629331916705721380614782703236564773652656454519091359023961564708368804748840564520480304605129356696005280948504921301473137531246940315742613064709779291430747086166570153925284554009649905364830444222937233635885922228288519123846707919982639546969903833258660529952912881553225285837631294652063625444966891449640159537454529519043571201665987649924971188854334917392648329939076774095023342302987047586342888790546747723176567968139991910112954186257601172963811138642363577734616695056503062088266639892189662066899252770072254185065104050206622715268917494235872002445374708846506109647760484218740650311762644259507029496651545722668585365767941874481808840412743306797598943401532335767574791296786787200809884820882738101706827690856906821235263517867520653461660893230770384515525156325558060950817909814377373123519846225252190341207465581025852138972754477552911261265293458258218878488105679163498282287001829390488348529947241675718063429423878474899133992157161637310251264215193863480046881318944664893392716444191632842649020597965730191513383675432149548775197323457914559671535120262112123980276481350264934239124102675838704905510314135244230945905107534277549629368524152428119076890337229839221463668097928317382070750540165618239731237094863316476879891557247096809449474671395519615157724415390042782456277452697896354962694092305186423143043417172993483618419776224798487172637902251098377448570767238449876265672169563967214260197264942968210765062955796517899588631579172461948807625064903155284698661904475524014765249487801521040892589863758689423462911377333402249825786935560674852968663077076358663991604715734596488564125784391141947340988195228717382465614367594369386052156515196391469719210714688632262056207041481706746441282849060592284387644600830021170962357427165259835447593368557682514021121089701288750128431364310329691734226013259768205414445437858676879931816400317030328658453612832740932776519079989712444535566528105605236642319495292152323887251449043309874203797069197525801332471627554766530068727895731297935128561354921800465048590075621875196450715521480694783234451736878317294231334318726141819176813808655494625973395869040810503795540325748214121709929136788335899124963194898685012451077838586768551771233267790811536294514508752045801776803419370271903858112051629861602179878100147788893427708181304266675297912313362756959400958795932545333561414307897730519642022353934884631337542107078792678192885874983932633365436970377339233012165833207322167672464960481827911687800653319385715051260942454253391287274890455217955669179419206922911469514468896635490639187954207188380798586843612812726493963345860020971625828013336828264458272706347834220588480547130835563754647791910252520885811758837924133552975251353090404788635585028346119344450185832826939870093801323316693529360834075572473288696757514688573558283457654847764724293041880239268724883644420343656124338119787444502419924409693585847526231670316664224581599034272811222262271602149898451236766030697536815417825984704540594607396918368290294722975633570453891350407799716985937143167616669435052555650024376567321381371399347504190370977646197482500505093938396446086835250285541913763008769752107567033870385494182949135728578706004907822791800602567651109872266245904020880324766964640444789887680045885037380837339887771362320545870817808950949399869010792572090149908014312072246855571617893396092037794060944429126611330658587377933715260300348374475729335166442913449153468482941250245830303898958385226686048299271346284935749040134873574372931316244763353923302406555095612692026852615305319389242514071401608001261260913072244899532573736994060186831811471718390798378964603729382784351246411547006475176814065787925635285452952937664706438578889442628100055940417385806616866837733552838819985395307782241188705016520385131986259935280750688963538045666371453725204299461033243174335939449490297889210520289440018066823418307256169065051974821388833286261962154581671747398111673455806154340159897468124573716419847880345471122765669012015291584524069823550772600639987583952664189201215473979265172452464776579204091227058317759664237594802047058069977546759988544621419512652796323074172896538636125312154239631124093294524375769419247370489936991392342678898733436090285442377411279811545931455238648539759548838358639775210226017148197051408102331311507455877206036332928036856838846266343127914488636578010125861676820197645717472866798196476378619696391194449174370900924433345796010527567386039044943320188289095732120519765449754776652534099375422611626503902393986204646746136144946896797851406764410549576325056609173864554707001388277240763261416199050210396728501386910660059123523105607074794684377030878155953276176022032927046537583012966480929511982575156469098718895153345104246206563371788522937391661209148390002198647568971869528863016356348036366457580249349219197928176337203662940688592422486813940424316115776485249784750894273696990332247591787265660715017087869346517052545946165215162108202599555515866106159308114374669846632298257429627861717749051676541321790286989557602156644209946408607541819791308910060164035536741693479402615198428024813985819748678587135971056318511525433776423360016689242109986558733532932907412173015793789002924432614283367904010330223563717374711634900753939166462501786800218286058947035530582197715800593778978060578349529087504367519265948200659268004916653253635922461721632807558913655909189012327004645857602402371388911633186021339371802363552897208859575677453786451164301724366960713503561420172072192477836519301702177338198179239352842378976128080783438023211328293724873832740674985232026507565903029463485418293711852551606155553456348837910375784807492122483903683859352983418349103022080282582611780374570001632219909568237498328274007440321631601031607084743797824839521113321213974416258172639030035799329924031334802856671959190407287955014290451563824524608031016922435407776853533230929297417691882965032875127474808294054867622981571274646648356792250921032112168685048601218378304888721616332877307606313847611259591112319667443187048830856425548358533955759806033739911514905604354879247563401949600374857392493065717874560135691292355944173081758899102945920713859797799720828122785020093850929040662925768731056828534075388540723250748987322938324312705744395992926877094243833373623495007184941119178813007815173094841110517941456010508037001769573443492698039123662502761489229535535120679145905813566161392602654300947111312835778728254486426146005922306835410150531427868343998291266256913922169555051047523345359698448794932320732195143420838537479472661894825941038964319194957767633291224878816483677489543845224623000534654828447963803086523782680639420757093356390311733670824707678358825183250436939097451018413451676624617789478019748918128668023815368362984362263169229406609027147682720702030401826933178305234515553298007655096051934386640582162796635284858399143028868022375531667589367176838932751854240957924587209287539002229523506508559081397206613100358261240847121299322115723919311245293034317046097873664010847382346850268670642746194223781931916060166368425783865180834330351968849952667708909925244025171486258604005716301733065254954772493443523267840679838158378406833072122940997650282506435209187011448539276856083768916231182539149538798521668472785464142656117899948579677351017409646401018224218253610122612327995080317250509432892446881861448378505071487249601854323846374920350835873801915119592223272831866326838112808710401757807292859868044252554489525187287456176367173155768048154287902897811699047492674639494873565401421669040407470798966540464464079815158452494368041996432670225247368709389007301455758736368971437473722458506218048631592303846386982264355211687846824809820770410696347642660410311511157693048842374398314012818363421301395037498766038328993831956781910385861608935109201730676486032283881058227176506448829434845640558259656461867863483272849388725914447046081298972372696629091008851849338520382183440991454036035301637938505507858048563061270309998958596037152213161599917554916667193118186788948352982071522036003254598712201316528433588189780267848874403675018795212069127815352463593250099689094056605378721269766776433524402375278175788333266233260772196425610996486201048240728175860321861059624698226654306367200563022047787701033653310202182685942577764243327226558506801301747304543779373446389464275669458430055036696725066035939244898415081959842197397572205570808275587374521076774902960488769210398507853748710517889918616508466067447891296228280866790890080030630110226182506422295594266047874295696997559942932022437859301476101259700602830855027268166556229922699154186210488792973114646157062374121269551840043405137626634751001953976647586866309316916819173227384385913286461140564151333622373798756252108330993995118485033822532571719829705599246550125562944525482740195309902570772935918812667430775910399753093167739816089845104466581349800542406016172186627440459457170366560700065878212816087813823563005600150435637219879914841815416708294146517755997590753428048534667153623866036996762413195496928140486608972817038907525338677025508285676140436460752821819604636312734988644998848787485225643060361524730303930097844172248564240323022951142433745588112150410228542697766487245376226979214570216928087855937366076187783255023918607843918034751672917583615663936198164291208290332002414650336656971021343117074597745271403328494605476840399453330948352224253228401017436515327338146269067332119171639074334782986388423326534130240167680267373012178354725175498552514814031498908544165025032301704819357523570521826102001064343022720731119909379685415204238225364772641235199827229387825580670764192117078064500311742937785057408939003516317779234527808189731309800434733889908503759369134680150299759051723387453916599006662447758689172674052146345918856684652512654066903168842520021257036706073832959541097662689804677984813280069387450812596394169267656891773048461620352735896876575523916917438269663914983154073070098670424909205002816374798399706346100726098060911387879897846043339802615723082090783992015805917820757285925071134850445806007670538924478384788920167210653114802153251093473192201441646146562058810607547266600476609643255221574081252481025035271243645245336306428319256842395571912902912244367924208724775829293544794651527837704544560381700072163344231253281787935282036925176673471200964944197413899120469865203044021097324631637057991349063617631393985822490780875409428368008774058248403293538758214988364744930662523100888703436804523535222436336647352636583564454705380464992737043183446211436518360696820143998064374110086011886832209109866204114227270157411653470824839069163161822045864973583459772825915568760259638924851690959372056806396804130510538963653063738696107750485691535638955163222102834705176156550713828263849046640991556655997141751355164218704772258105841235060176481683328325551625534655829797422553017515319458059850597420172388923580106979435964158223882349559962231140826470281123202538003088623080195606087317914506093849491501594438126980968651797671237111001240250510419402832277787233278620361257520608791330119661277483979390527826722215781783211927727514032044510142057118144528894073733132663559516287397462615193597735085820489061745467323951979933244863433398251778968659616278164166157185186554999790410796573879412142800771148935250036308253991323825899379905150791381146110148966406995078362541016159902809114676407070430948322579318210721350456687184854957858288848186462343508773357518241800465913040936500772363447284192643853098179527291596847925470333909831561602510141462113655516731576827731431014431098719385347727798611393374527266449443540348140338425727792085285537827073087008491569850824608626067953133762835787348881480561725613892220599331612806919115804175281004767311833062234449129961699009079614483371289900117349255969279777363294678706200605396390230064194739637586555755087802155294717911150186046093122966789175898635633762951795960866474338234030236006794211699324656622005127350225300962203306570369261016201606469730189891326123402257078568472229243228198954737310476438466242831670496308188985748404335886002120510077969092381484444704871814688575647549226988022410047921042887199526820836654312888056804362996329716319131620355154929403834841219582178766593758495550597717215717007715310860768827009774557287221228967492804303471012503873535864343142060329885463556912787268102739013780222218077942978236565324755874693185316703490093554475726967791459045493204049062167922765554560302727912513854841495356579274222677879131608709771210233840050999564484265528909931579881552635152509601912488665161533285927665441692556235219627080640221463448687011807235059351511279563593196169519687494954589145933982902056149032083403113956192259458901293166288992524207380860278315297620365618624131579587256509292398863677097442063626614327107712546566812641900728764367834271901829867069137687664737559081662329012163044944797488479257751368080890939462465651086273448789339816328139188185340049753715172684667449760143107414760429425838437715246042458085264673921932316522447634270947317199947687099476787275347022140805143638015263067219455694029897169431359187282243539361245727145492320871835660393499872390533519658106359828836240529078383281738321837670403813478353668899326597495555493785480925275904919307545148679078854651393527915245583806755704188516249215423214142171449884069740764265447762232875151671519818011410081332916001115312184301076328973521045276371461134589457248019643216421505942629232488900654367608169373748248495062103272538688666000827862762194062594977604775602374599528306405320959623542792905269042372012711414210444301312368609849739262055892737731527265927634160062149374661490013062736429245354132733821734512358566684709790957925927007224462071777151221431212040826970761580001579478373293060903507745261812310216975916409831041738109983249225163187579938226002734683378851382386441056298756339904147245436439671701606711966807868571422431506170925301165431687652310278522671755844233592477138361668839662253833852201524985260481881457460678864118548488496557785224530208118381345619811308091429633167425187010860542720388469982713210610024317235232978943355219261212929782838111705768554385104616994257225469726908242472607531257943705447089368188340128409785035739035014540296516664097736522151962126125513513083252944516065198470933855693634302313599400980285972305945776482605929882861561944599426870968945278133724397021959288113452283503183929189926141520088996521329009524040471018378143037768145093642903895033605287419256505456649220594113086549519397963098743787360652529645048643344138046548100657963469499720256080658387251897104306383914487181229199834767480764161773356172699054430926073314179930286560403486882830184433395130746611278191675097253752535939387020500999830654600820612338440313013438101459126329714264783753514519431754612896174550746054235450872139012137346236230980573338882193621736701652866152062663111471430433650679333547646196151341856862836207199472032373060459061298295938279735349576599532349694043373580410247738507634351819966967286372557283873537685452626669090820653614836122174251022195533830770874214694818979665194945827458037982482462323634540902112344483832735935755820193992580371494212248409322412569420496212964899001350577391637027049120144075756110543401382356697924020473551312697223157244792884241660273376151583973928594515789846319480080370890591792925126324575560763743418244170485619559519828302635600104360788586293209335021495825974701869387121289149387052040044240452452197261979659243164871379209391017267516777022860348299135892398764360935680295578422509416490195931195948608129426277153891917034255570165428141858043605194900863772011475684119062163685956986713554178003824037909350679051583282144747795011616523015172276330641650382137239261253069983298142194656335137527720548461011250871161241581195249157736280789766230204080249148238230247191265540521061430247906116332880984862316899203456387327773152902996862213912569580958809326610793641721162090977276211827431789738170357840029008954000000681283774381501089013123038215917064377451860259264435766213102418868498393329965802065045123643422757139100536488341481094741879899584550584673227063548084686322841056046975293295448844155366736810262165696393044305263922225271263073843002355712239230863194000374530942540016197505811861566531687999332616071001553785912474182564398202829213681532233240979971207139654130536829546262755196575502635912809660084279539510745329131510764517050931928494481043193719418444515680559681934411452494258620273097529722938055317186529583070672388030869786315702774360401432447990982505646596910357563942149187159948537115898646057837041719531199023519765607739741174322706682615720629093082140772054478191650699035631129790399035167427759230420330961184238519869175454817921000072438321614939169771459878716995920083946781926554708212325516520892420538938759812284436641199446551041213086134370677515826631936661062845582821577680077196737481626497855025387429770066253621463212890436392951639871971605024956133856753179092928154386250832977273957196441222804774020910493130497992010798808187445259202774923851434940697175656739203435196970157381266332714899174008564585550164392634706684718780237483290568653167293775337963124119026722061928614083853276716283178935093938309657859394455608441255779198339515104763187649664776641548272091128286390995310067082646029703986092191506723104159353258493590164564686714923712695376324532824296740468259650293039068663888947043772831823073518196520696788643504620304270277411407210057024288177893764052399713475098679683519288053434739706071889112701418243542907703051556422446001489576261712405025592441680545665185181284862402837344040956528426236921511975264155530950015219480365862472058007661844445770827893226646386164833805663525358785522426972873584977727825287269544917535373089047298518619605098815165349565433788438740750359789637409186024256943995400790334812904199854096455055110906051634945640019230676049007828316488334807297845886021580858150921416423262622001237988726937859996677881504494814782690781535781084007921948170540523447453610120784398145883159318638551650045781966042950616258216840563913019869148263798872380197150507987260251039630005621177346846445205051181150816650967108808032131873015278462146919348524836546485804253669551403622518907741213792327564523564683019356165586429188519391025788679146313402479504606467135268504720096997526640633394763814819589942672947813439761073007816557186368053352498961682605663556874603067861199430734165014803071283251342902101285969843210420750279616350524857107376346560155180572867743505007403264435611146682191094018922103667979246746636755889726752368552058030205891137851623816819211015120722925922757245623416812171479752770696487653139445549414305625491795685565564791343511010625646368871672002199685502911956259776305824298288977932716480895116735632445428276320247066204678491625244675689316440047861232209131436207961216952671097256112661542116500392691957253395849296872941028441553411973032188685253719678247188420787395269793002743063129426858357396952424493852540345567724481339758949009231189361658542191791872309891361508431648326215310296619240353901328239705955051209320608190551008934803129260186983190361008340115972660757343836423291703033630473230358016104712654540184574179612573245647108107126887483831722702088808600615939670863465694349646997764535737487876558066886224188730203304014211101258805041748891535216791124009743394965747109617443495594093914598243365031340024391839641584871950359925367989788065733131079641665437325277769846181082563146016088436951429082638171085175649990836780038455874143974860034494561105186749694186669510080833359586950438784434249842441583220716558822432920321222648108562080847836292749731318800721978927817280534767647763161052878855176747021459973577075803509512063834264477733247263305578289355747598692886790406224203503996500727245155637261664995555810084065247753489293446483822306361035553278243720811203208516619472710346930914070940453386157497274559832541415121239540436327071676267863841014270708890206380102189082122447970308386852453657210532794129960314336090414736318558322040881734051079211140891319641278097443984041900870813272001783807735055866059204671880301893609772721108129712814116706369798761000108315451127587833519850766660349884686815376564137613348195675590254271846822256277975686104916839863591475009126662089976534167022700623126898355487464634090273963585905342404314472438707548211330823488877925254338902664974417625917722333142725936850871874827848839284170556591931008013663048137788150277041520613547251661174898109523192770858213505831874866715961677411949650911790003473038151465441215560750273937391234206020369227466657202633029548476897589796276998142347693702027037371149780792799125009846437942286067661451446427868573457142930268109397745657414060473210212214376214305941977885219747861942489099410986334209710549279434313062794390733333859218613027408165899744604209441068167502800027634951580204427390344338638814668501016553016144627710710801763597644867227100271063132392738924292533337414222053344054381444319067763489154616466088985412612005243757507321621162827922479014538272422747590852644818339908192764142886410023506304553341097336711563526104197314157074254350486029806708303719391831994855524392518167191969866637544564864210819565819813702333118800765829636115791554842888415238763866872718226556852351389462521877110404606955903406944068629680749475867749542856345475510084661033903204350552094915789554117241428937554809549473967968413123129944796084870782737223064676355314540047417077718198001146396323702856373720875440698486878235894192503336331918250747412151440068694006317476718423322245905043604885825010755000669824113476036530451449087257588158825654970893607665394109647691581153320148452380726226359935871436860309710935909570591798833438385322139641024083671517845289163192477396615001829513282379121381361542267898764581484515679215560352748929817105476772848777311651508865922708481322410743944322495160159421905900774356879703797423088368787772652680433730749150379702180311485014769718153393015347827614167166704553588288716413167970412821933354336671733143683365588326201741032152772828872403481486924145365034833922928093505245108747558485302034046920240395526479875494464462865096031101116720467920860598061635076039598272574574328629507185585316402821927916174650175106625618935145686178463339737490262486546800486300336078422970909998510085492247556263538011542176592183895016163918978096425402668243884446063945884042613593711734241470491573675389049600202024712122385429284913953678452274415963497926607853801349149015210457505360581069880409278524984774452624177171514870827162317571152611370843257909072866839947467022117382839379102560017186194785933836135146238321007696949958622235608755337112616178896994707729215528147238484011138431286364458042932354485879691244824500945435579844208510255888155343839140676874119928623682382365105659221253974870050008532729135576017973860953245694961612273584453680876711359938474711691303181312957322830917451352588407212147843008839615858762721487577407019229443163156121437516241724407500357657164990367553381604666921636834350832696451469603123981841142772558276084799629408216799478377546859647405451782705314814955231608964538043100137480873052186907414806127774129803403619252366038180613214265713975608530502919145921908514833203380331338201368087643303970116970505187096184708147231751689745116871654983101986959830748219673030595267546016102995001549893429094540041502382887357687046600656196662325986015874107290514761122660717269610009237318618521994901066815657124142721353094310476589528855885095343463093831718416596533004514549115418912068323569916623870852515896723166307675972980332895652709341710725537056030253537535719661403554853101500786818816666825310784338216856048730271360234042893860005043250872035673712063321289980732562533248976933992267056260851624394332986847417663356662899515346224550863107354790867694476259818677371587484562029697766304619460764377326069942719234673113264988263028280806335783168471392784898046229593636509504298761288987765987830436476966133208733179221615960355386120577775657766603175239947590669191027846017115960124724837558499811279370975329588696061857449216658212786771930345231255696895469632308384147136275037021679352293739797542501794162440011100455583554619448094693972359440825335880436509189768911416245640086127761135898162780226093967589380597166098118584780135317127433781871275317850816016259271816539850223969486324571779365949931593693357125339095300814615575495037840296375317194373684224301237021977172823512816920713000363024172563444704408877209323428825267215812442548194721740756771657603620093901652030839848401704897900960797555124498315877052932836444101324948050278634253141522239653532691283593069355950597041669262559129940074798113204534342324323322412616184029032755676139438245155604248502689567146363678352239891425016734950479579476980740827352842886298388254225844887516689545842525431567543983017412933731479461765957024802830962756319452677187824306798415262976651966754214003346378209402853546853725497771027266734336968132458018697184611631565671244638947174238539286095546196939966846654969705607316297285237022059712553349317925607762624769702292798800902721471647906352381634469220184180232915242303421445742007707164453697078318579136641372909582764096812819779964014221958065960650309971354104350537363104304294964577313331494788607746608375621291377927406455973686761624103796980372360467014513851791066913892039046175484945529515907538175993071140085992913708282479375051913235343567610682209189691348017113048329742898356593366487320373723433380688694626621475581443503145661896466696455242501633675753422546275308561076241576352473259911347995386189614980286432247717694113841970316438400958824814496298057719967870139826220486776509049193994034418390637794533042327805193771846555375731792626918395716737485887726902820706449921490169933832214912294533143967599929844677516052016914225717339358284359010757723725234033702605115117039419679494930882601916130220325916207389625163674535709784847263426806850393848881967790723829002235424531379147747391462751576116609530427133560950496051016569632811879165818409939275287621056924077740766647648731829265325425687310471747588233178517936566851370278195073660956962005091733889522118756792749907737490500011775252435090324497809270750000931148559979988297571729301699853891757677391420120147583411529332726546924228974628090270855124148250522982833704276610020828304620984475930089830350277249658960750396514957725193109267961498268212724769904301120842128389756884920910549119641373058444057384099092581662698060128624520603406070421330970472074230578829720358319907343549681129351568284100065794051549924838437100826077449304304835350525084781246281427695209213127325049784132905697467654810320227579575848351688564536648354173162644707529506352504101786509017682594173711961344935586399542918018452069280329463046804310533829702229057088767845967295655882737023444262069355953914183339393395337742225038847959566754020039036465191212518653481237770270152464435860915043040667692484114174628451977770079194155852385694748147410458108590395843199453862724191762099292498364164836271532686924986289049469945812475238779755889746861807563129855236079456733735776478499608758186112807646729633750632530062827510401664313740575316662652707270223123835205664751513068051282859245828483238600854173648365684149017073338523364885014240867618466143083642537017664724770046446164664043695125350413665472315835719099975284377574189357931058608225406176747532428018479298233432507619615893222543193540966167781529593484323752489884988474138123125918419068938396776294766701882120622614154261558632443995817425795138521519304733530628022361734956776564102162503735971082336796868617397433031761234876087594429690339881877764136673493845448923141212234737996610110955252676368051306336267588346351485270853296007346690978442355522493295080932058823316728133785249050250255852140319128573876283366064598668505965749814404566237132438835361831414293120529052380850987479061066768966453878270226754924611974707201994657716932833145093452864284992677800003208623823951698822072594819893038760069422212153650178914210488365516566250132289869190501828537773752886860942821207073380170035151960215792145129097415838120781940133960278997189568616460386811796590607247889746053336042704415935880204878311742396715094492731550020697590250508471544212792204387586327046540908887722836537287481747010470881858392680102928370028821761234859570372622497231015010841411235346994691932168977078004709365274920785645876609150278837398912742589229606735043430112279376519256024205453675787292422807806066032394463029082149745297444157796305207439163602997196940390088548656936221760055606917931200971890471922032208808421443911572185742021297004699048385884116619590080117506307391148600990024178224990646673836006544456617005728355427829166698830116122104416524906860427113666443440187108993057005913093973823606797142697541583560312469769096881597779723962464574830642077696695806263358279795742039849811155892323057046904899790318546991798246374593635603357996273317338879859912917583435337351046542386208825318928865322210338905020162887440869759885942530201641848240637252697006136167470732050609622933627129575715285008944290571687077987505895594967500646895814877689672907667987665572754072811515355077293551191914420695224740935204172859422167632173332676158231685500182132416875691270544482828672875199419982765097527045588957001515960728700063400336680727883136380007145739388086201797342418653121878584953895597261290919073675118096426095099157179895659648578293933523170841477985914557299356134249556321916467511976405076407130107277179863961137482101737706501481625428699823669995465770632421798381453866926879982445566602635788302834040859130524554315844821081830214993150170472189275109762495391153970988123100346282508240000966723798555698002213302928489888640693122190991078693453697792973726594533888148975188102368460920498727422608298178676997924644486316244965300120349820249016169472289543028728132677547167754971585007017265474876790959120914068467010990229729858130345480458049662295364342005408814359770563132903147113794605502154003483358150499893745554112084694374678540336656511968395260718331397473701870946751287148295704966804392045035211212496921815622633821315176886222370683761178439104925766601773494658966194197846683981051778794439833747790401005195970620831775594925974537938198655737754989754010840496522266762196496228233570287862681597244429250020288398210755441016706744797395317347439952659261767134522208892666247477834362048740410654373380983457519300785954738873023689104841603836427268554737006472630952318024871014895248601540293896600764712793739128760562106348943244396973379807010537129643287667384841466888331977416615227674476347259171756705574585456139358906007937453623402352272515874892633328009708766956917545327039775163257749570766403374664785888386078722634388257227167647856763873835044424228818035788568559137371196510979897764245043299221294133981094572293097046378777802128921983663905924147383973976444572475154631512512940394633685941313842754374440855430454721541548436808099353523325762110234991231280676662803236895865996352603479767453377970592063285595386922261199380497381612187916531743943634867533285689706426353103391431758681748492026608243804529312740554471341852349391743518447474872607979239957631540965630162952630229170799142773445118198170425115543331168614741745183950629342230878743034951456783197629348168136519581056942693044931586757090889591668686070944982562593595801972728978731205325656882262350611543479870862968813910989718597979905442764460593032427800505387252974088804361338757292142400354365210418500042861189889972828594130753401668288316080041681223926407645105723838720312572456913633841800778426914431288502560415548574505742456371084978994960999187433633942824372801890265155541986610785407897676011751425111515667580361013856761313315749313804514959228261940007406938530675053278808713750104731496732919588820835804702539884070619515803573990418986608226137911036785560590777334934632414698393970130273196723582608596960322109653187683689356978920883720480259222954807530470547310086673316999703824702697086907136678384456101911263777305512964423266312501455911570285017560865730074332175464178990643452721822859795196936948803903002141069429240520219008434750806667311079456679728833512704613305503707017847289530699335615800658475982264579196002809541259667549052928875395458932975120482817377196443704638191918639174105689706773910281450122024276080141979349436177971904327773318591469889227103692646255183823244312259079774701040256445123266822157023598106158798096305250877399684111649887209528649381026363518544315890995570759579711549891393293082651298397568385325570568693057812921420090588805596327804213668756050352065124178909942024705678557732683654798505091221005006646738268670524834660963876736326201140165004343041336149890427958690242622438380924160045736652587334796840281159906195894222547606044144408736267242019541305174340633381600892808206965208593002728986210705589682970515739311710527518703764859966748041215177961719368010567529677896236746214258434005434976536293836615392106449331446346584704319602251358250190605983082143275614850326705193603856096831625645603226988770176493673505529032267569218815669556211552974657117634761580322600296415771209567520921555219240290143563660116808526685391327915350109569353209780314010914277508856024377986706008075561430490932882687070907780720553376447101243428883621990384463760107928618072950962034117947182795318908307192874759479610044104652171009991552917790715170855111164158883457148351247781195805465113288318867603248054859066943651496689934931428870031012110161739882658698952842285607320236886284182430975798919404525893692550336374388081667175947794531340180835936993538602540751898501939856593150889095458530698093720820072901586141019353828701939720998641322862510330746957170361068028703917099719395631382097215700163416458464468300742060266529537951436783343455272319414891300489074242840575965055857834046491809411100027506405542575601045013158964963390621704023527880639532065753191789112263154354301403004215345866678339458226753003359589040695052294726825412781992041936128362479381967729632508277835915318735287122021790626908130045066947149452348020776542932969775034223123804810309176693590830474351011025722503290054863029446222723681917264373253069642135257125813315506792053889318914953829890177874551303138846503016388027586394627157965853496074000082600149103975081182206454171160162080583747675356782218209520067798129362333334045190001302770213261438151196012788973440987940429625673254397408486332833447510310369864478116354939035422767812665813242211873767285378340341268529070875871408671963921112694860926863739486562898021043972982933600617412656348976902361269507370684694276561646317594766154930054253246343972545464897339871130991957252454413528189911669692583831895503356199650683453425925952338018802350258716300357669937593862214495201177878604131542574852389620597617388277594398582494239506400054534966665957311112114973707472119695295055911151442413114098578012517691344645604759051417095184636554218656736941419389028695709117257626705420530418755996954350100687474883995977475336690003014975187732225965813078206006743142723333468900194304168268156422164833779998131151551771437533724271387493829783991167002559365239534230610535922181689418179631624848573868827165953322175657902991083223784930431553295861669475072487392279338955606233094550149751274828474592700459804927515261776371793490613870414281629305060909045167640495353213720450940068866735712233209326072067394505024591370384432033053643373981208846526847012848653645364779295760546444069136600703516735492445526382370696833904813775498129121033174656630044382100901755320920281792604151822610118485923456436962738268353670404483122494211549949061600636575812126187734131185154073122497831141461094218041409435759667041402933125496893427037193699654889368587487010117597914847536115546783235906115330218312301888775822705173809403516174537184736215175500171445537010990463543080342964607767588101915364176687069610400864332861755384945889644454584389521686711150754432617793312878261640750581800685155236052191399126122166239627943441402446914133155374742758807366078793958114795429674066264482513911998151923544397571783208361663247160148568301367826737426069768266477134679541318056127577359771833068957809878715352908452143059682884752082141537203324641626720053136119837877066801511385742374617143845880590590475867947923343194627450077102960316002751598667510902376957265051438330539113478437763084330620948598790048534303510726383645337829154026305449506604384399737670420958465789338396890272674136568606383693228212618339898183605706776594338313997148944346739347718366956349553744985179615792896935966482823969691397341743687740795571304088821105975009251297580320236883044006535517034023648450156877586010994001990552568760879566835673520955151440460353417189230889521370142044464890969972142221311503803828137952163867764956532002932330535310595309747525660102840452584045290264104652939564101456793171513825984235898949478631861814936315089076681711377771065848606069026745455723216105900045788163053660544090591784820577468304307992809892422017621587370271476725740067449564866188629540183906948637046580611054963965117741010569814915403389787632338550859129272190280007029436875162380367215419544983259655158144472904957190793551302507469574683858857191425075541070048758997121783049723261441133856236433549677151144235118880380558990735238201706612840530753771725171352127633962940458095599165172699025721202927685472481562958723879014876194479854326276770304360056398715115294580403751777379389938770754396380895406245828044896658042513998051059276853650868360594286171662100575108810824515255568908503744280372001261443227578738303460063567049000098146984827735261211012775487332627429677112831729867061374988328507873761061473372407435483339276061180324093000631778660765376903810018615618266809059112257382155982006621327861638948760453654843111190483303835859894366076561961856840956656984750595447787277155769845711422072820379678274271587394554861031641386327669684004125803612834002282427271020613085637317044001786779071523558327345262332677500331756736629644264932973033932000039794467639032558450107340964076986116401737051700475023823602341268029275943895440860205499687635906319853790036189866090938741631489949685902900013992602356505463916393704728055489695913524725083523224609193876655242968951035309008824518039443266911287759119200646007355666397075939429865303915126039981913576507701279821286752782247531413369666192027872164364800335469603779155539275453138448646076706877167849722360265874480353760926203882045318056293671554297655127931833630564308950160326182436199982724488325609509516241446333187624048098815683499128408737095471649701886276560466239614303271765532787528731239234107294480303178066986748123594421893079519467595818971462042555227074658378860123060938132003667578219721021645666861180560432200436805382617260948321556037934461621887732788134689868015034904682037080013807819844158512181234634754642336095611688058485615197923190501567244937843572577777983672189461790799142166458149630644599757573979602366444618033245545096932494313975625862624515423023939497169284925143062808392958049240842770150217932133211041941679027508001109669463785010535192150365817840769901834535270361833769689854868351060716991287336739820366697208111848618382804963358953932728220711868011774629109156885937625299876406317731651902565884746337549765729468479294460193139181862266986278984510420652193329917929208667378385785762746285662887193996991723576904402712300171842528236967775256995244705368848417856664337457613899015168300728440118333000578320170859309122219132132491528886825368958154497098662865791069130972333742518822189001250014855367382856283019834542158356266398952144423252440900275556158053977707940942990629339921181948957120577461253628950949001904708936270422197730051803714165869477108148196624646714905418764348762947254226579744005493173635166123688741824788848309701101559179844394674995048729151596664045961634545929151864793913358898300784084241923761057920943198570364327621131247201129682641217690023603051677141932667273634807289770279456457279405842410959873190826172680495541322575277430238715057075711743311717467812644131664895124692510329255470521390880949272896215702823662317364516258748262631821571779672301252809962518511076985349137879902197819876086151536407768567624121121218918083353578010725165547088994185514208622116959642492194327274807170338076700383455237933385355622186744509004781866075265155495025971943320738076467175964449131193023489802268630341456719246931774610654563038015243047051251568999651658151043377586008351181623706231949730754435562540930815188840241553703476280062619073987129647772646765125144005568735255524955906580821024011426530271319324096264744719642151858606731164963582825226691994676291104293858169199906732532159479265520543614865094798958108809244177974399805945124765845886146575043528646936470234522993731702616223769231580149310796370861620801941717897066025629182725445598520272299653766939381117141810300896407461047596788065674934778657923622230601634074276456964494688801012259707923473201080426348512816224336130218788010335507439851686836471606218185395004684996282480436811347930921995172325194145706493744686537508388297263888734894000286158274968738884784685690649463543044496558409346887890791193736858876238423479850105904447643879724545256641851229960622312716017976690763368954116568199508788129068949610990028260855092454188288182696591147144427116519385166166376033091129664334502892591223142171515584975429742898990096255175205859071858465752724911112478282153353838981005898257338461049762877753553642759984297939399197326100005461657224143658891733032458535246699212425861274064961626970529661041710080508104295274084327393088033502158654218016688616335653727386620137958915691507625621894726992498090461182707454348791539677104920803380496762792782833446490540910309271757336962139571165921225555688294514361833334516671390929822612398395507481725070426031614467235843206097621723627932699248115979956530352394102650394453309107917943630522323235770166429886375472475075857599065072936805528192430150240991968331372749201319245853482839511794521345066861442615318123578921582020901397305669837789771568944481090655785695869497317057758675635282057567492710682382000832340244245208126521831120573756311498949616928621976328189014366684331763222707992515909922943867274166917936089581716482788382179636921871365353565029487040774496854966264766071388023631905288641563407130988101721623613207270500974530116127415343744341717323516976869073871962673567971686073565499882610733772176035656136192265700395377421904155057707440453736392956862100373638233087560742967063204975497119319036659199142402715219774491235713741925490954149537062271044204276828647843477643315601084272655913876767402921801777893167950962547325291406422304039879056863090363768421405159642886033013239392836117681734560445248995900565389842586249289143286386875718618853354189113424889017395418730906789043871826769205661874362341761913225574005071103109197313292606780578585047637645123194525443883166425653521887476828366041290781777570736160640314412699668761080547288734358526786590003713722027809730348294462544178649755450944042572945840653689647691051827907061250005074793696022215840385083056947341970831276522762217828236144269246761373331062331782433784378418517380307934145146667402846412686969202246607218894428895540304977057888855016015656043771818082979851633668162791305580463343794242015319663149530097188476302353520614917987350949414884280886240122685117003545543362250682465939663198511507149587403176471823404723828148670511200466817037597534518199427337514734795342596471396039028291341653531018196646282287606734550570651809867275904750101184703966042783883787835202228488669215886918096433509142192082576990984971936255479163206957966087051674189963485866020996977744402748827350980551152324549752556322502217759847933151554700305316512226208425669939601786072955160266023832112736363307896298499554356849351626104638615476523177795671670764000623222681498210591272606552997350906148568745274360923867879141823196034604265018455760234273946191893361686198160473587594722144827281774812226417668413612986671611104681414427194955376486590170595563692729464898355405183775279038974914818809434105286266616353264365142552054277039152181816030649951688917734119697386104424109045828198422238678931203681917661649100386037794305027551542738169006078101903453206204584061578712479729031660828128811971253528786858390371335693908480670520409968881477249195712993783754449232908311306940531660824695689310909264230753361738133072771976079269418997642264091865620686227704266301755974483204323394129280654797143024532967628448645657366911881682692587628182984640232764255554712539947198690864782726893568198595755714589108812039472678949643916432873342781950206887202385488498760421699977094015140215107901464565088835324698875822679285032488316542282691845922547454804091726832880309459156294901067642503419372919134053599607888230897052274757217429703691765093162445700523627939370886870811684766650707785208994101522361637515802349478460798231109358760543280766910849898322656672503468898175057501141533223755787400884809598142714732163630343336903031991631401503997678616894686986752897507929281107154906710282500504326072898386450122191180898080020935672101613791296980562247566941278913623759691504796697333881745294459057993459196725104364166552884198364314190576784866920920990999308108569254781558419251662131362101437642253504593126437224723383935947521472450380652879104031805503214309423305072733477620535950655810165977957897587984013403709659321160288821323033392638139651381240506057723581648313225917152639955359053139252858060346276720232179318358725998112692861144674874960486805769474893215175184877345894556409673640830876643232960474690671253148148477572696961700567317373351222575973526380499240819899549195075048191704839301465473578049876347488259628888306853976664444720419630486945583545535752128025456015393495122845977529027690994031466513294784871109391231859138418471719496641449159262706601577834331150890433357269057738080448980141101428770552728279112576608074789533032519185616956839947043437433277995445549833873467815159882486517434684588288596815876707100364305454430089148521739402697763244867552979629300166574213240482464606371417375273086330583397267064694810222143840283100254233530825139072945636443158944805209027818854887997312142687261363465748239559275493199182744657082363554378830862459867402618001517527810327903701411629551125636848270118891255404509839159692414929059912258155416197164698903107470109018073549827038561194655367691882420008724855780487277721700211322255278016243581605119298558838202992400986042410063424400368814235362110697700100541230180104052502781369799768608959015592089457384758983507369744139916243059719682558030167584411853535145552713143388728207267382458208241411717824197351219017489857171714588044925736574539529572658269419698655912847764487573726180150706396353490565315578786504249223148629059969369683914538546804847910270892274142150116065791035729015593921190090172008857818713789634217583518101275121186065018422756657181880680260491922670139104169243433548074141500891799283135454678435619464584749090028955665334567488484275485092108042802997579016184552828808861044214859429271422954791616889625440494324921840842801645544169650838677155213046783696369956609252843526787596094642133834647578995268094144229874795985375836365900786312477581058321651121010124532211974067111747828469762051336171347067728743698287647404923647706670348867375424997699700147871939879501283175923857126344336305042235081357562483374084898649473683930481585093672068556674340846432995850984154390750161602572072173098314774501988959088762410653045902863508419730760983066826568313464923983333970640429141738447674168414009246234576020459584512845253210603231893320378324953085438648910334889535174552563065437149617980725866218794001986018800559398589521667089181491585909998339634875384003077641422105354622041056621282289139817050073434679211739420328624313185003948828475396838567594802434651773691490139860814218986932909187733371146348275646751569915893183696887255259654774902654644529372663304281357910900170497235665419429143604320890026378812149565241183540134616456012867649765591964970617746976406780142053325752664680564648054965028484499930739537737880529394127058708350060120603580887066886849574316057323267341806891274135723248982024398780178262843402473142242765935488900010026414910571780171133814434003137165304417308992010875228906704049072819737505070487962974072333651055428714405566741091804800616431394995305191970907336689904854355590331370837478527700962818822385738713744912585156328143344905329987921820972068514695174850641584174102734993995778811130527331144205235318324232965847910936116928453586299250297649929893659659954364460113273170174142464441210448714264380907515405656864227727792077384045090806153069128382165738095131965060595447478137536219332629164608767033856615621086352037939143947105565867730913491469984249333165338833738227146571662209804579046135659342118331289051298706886768487570257044335790206906352922967351341302869122223385090119511201603944151390373985986876443264623836381460796912324794472174205627718987582286479952246030666113483788843668399498981698780961484359424661939209857038323807113605975775478647282281823416739825356859158374889253654950683972189465878110657586846652883188969595025587838171022435785944033280285115139301925157642528034331876126644514702114722612415423603021135001207225137015138977075943079306776062582032625227661544578342719330258277953512158309732226632580955889998358186808491116811070454315928837843802576577592288477838934370478648586701577404662859493750564615589551572366021578724026798980768536239347025397939236724584417287795911700149502108839534333376181673805939011473398660256812125462798834783260428414101544771879254778293099743628969469585793786398318265391534250211558263747741888976041958365419232618902982352023091298585372685287207467850078096718002744849965121285760728787200309535742614635215237838428973514843871626202625768055690717289798174737722704221927987778267084857413969903161043176017850253942688459480389839715961413672122880436586569155482442405894104800264538219565131383583228111407935811381357430465137493122963667092942413990516190315196172028563307563739070611031370883898611953097476046940610284496264606738597121763622345545494958793392917321784157242117411382915933569817741488576450364870864962571436202660854586968823982526083390098476513381570330114911310988464409539482507399432864996283101721754375473661335066549574873883110277803881975340427850297289187173798532762783622845724051406214192159944515314230105090557872246594586481252432980019265144540632830506277494715543304687867692408953641359176700168832604203677037274372304569374914618547258092947466601261301411367225165238644511089980617752613060915445968295071538696355847119849926818441501084726589096461548935408488678041761209679192670858880567599379295806158181385565280829214269886331966489027370818284274332239380838877947449012559918249720877258347185474664294823290352066873527650275496480743849636880469188342882687791728268688461342697748067630887159529182384993531162409767062637742759194418437827992920256331425219182028481582785400970244522854843587839832877835886115800555798875311294815395436307870964719197752718489382520076308402878869800048630257639071086201906228697860829125033711497712052619370854184208564904689994663889321859665999689662613467980077662139627479338084976340797417139332682340866051798978473837832855496131026886539849913412369350648946291133254125644368987958290721166335361157709393715346781900746650384304138156963973846759857007826802156779869926084395500653690991255146938021842170299079446644280600672936302510443742270244325560703568946038822338120959695611194410761784005690459011856629921033180108716993006474685529850483329826655139728494750188107394706092849528280166064328962911306704656878962696342806536293658922343667603927438824120113969039328253383453956824558684353087596394447602615913784028896442549437798955849700708677345741231594858455003927968597703494072540553691396421281224406574640072486395918898943052559033385996669040564919973031025173160756703001601818849780059217618519888848174073509353836109848062453806082744175024423443023214254137719085746036704995840139876072400367582817594548050729719592641340558840916490165233079471353701921195507918353374890016360853532023513513412665172139767341619142504646358431056265467019069446607833159997368639529988829836630235019457029289911638392005288622430650910020049725902303309716370773607041739076339065322812270941827269890485234131791063711129188942020263829124785576116390499707758404866221073909712141350147527346238882486467548027148242278037640422253628826136813083114694350100650203731692596031560063906985482186305898386939080188320596834486965491597992206238340324729046477265125741500618315301048374295338610669668410400749361157229391699991261219489615805944886829170092200280648246460648271048156128589547322561883660752952482841948620949077393076476526710151662587618533251444939501882133673900735034214690097714924040226291999536443724444471341503864280236059978516950393031205747369483081485168587234253937828248589986783842320068380846322018111821279606052570921962921761050773356266481458750456720296006555037072586666582376058469570425827816605398163941315123968501435466148904455380461536548011367070218011154527157558389014312015505557728273104019363816024619431463917577631409472091744532661346482697695442958838652826474534423540781933249157850361198486957723632901686429091798470764998365649010582591306610067042241329665057964154436267619879043099927540909800916108593075218743298815653040074798611755828977514338702434092561980419190052606002033494372528326924141375280284985300888205443067839811099997485353288230465118865408421539500002207514783591020417393303385364713511766328755219907675683893388268355904904437370755141297928176082915674462395146981065093719783495173674969922704975134955256599721915554722733500883409974337385032806904256430630309861475954066618509008831903104056777309104255884251113979540451844269334799587746079913784423831756783876308670151855099202756466051303072488709782559655821276097543804162055541523848664740831495342453739587844047778947339603952262609761539556272110527640506115240765556420430639722544202467814324932554130299872089275491561753574208134976913688386360674895033693491162716552310173622615184681607714161219926939687862309063075373932739776316533366212234723414252102243352426116761935201455492917990120640310020234007883633825958251187998008246335660033040014129622841188782811344602694889883554862345068962950660405716878758069673300006628890499159282227573343067448633671608446345883363088298761014251745196452876106607261020680851526411452265955904169602525565267016760285311980600692105851323899862228076712732406250196692857567340099663967580913859340355734554035474305317329918957256894040780034657649587580719351981330315847816973179132390878567549948163874106792993153001042363503661524820139988999137039085707960120192330240163620325596762737477489466724975583917817282371067106976560294700971954156178424075214006829188231153207328430626675530737669067286097767600281630793345109129213628946455768289885409722048745647540381436197109225384821076896217551801016890140155978058504680363834537865974020325432174766079142708712673182026295742550894677853682032921374165726242681923744685269062143929283018832057192267231997449285673577337428355496350564832785056678903107768403897442661914993674844586963543029807890866231510226315695039363028182354060266667668280874869396838950663264426266714807704197143794718843170600281372644562955751798508059762372283983732606071301343743176533923864635701609557686105553888424833949904275642272959980888639872791253696302824283862036511613487560977985556891979359044745884351877806684659096551296179931444889848090133256698528268033834583570282052255443854292732882018376012803515116183741126725075596816832777897227650869178329215612246287617633536968847756458681548268766785321963933310437024806531664703273298100218748816612802765387316395107790118835145909332550551635437235139300884694352182801290183128916454844388198487714343627295019577782761793167180310947501830808138735488300678058414438827357241698906535256415065710189211399227883532421180438977848723810042576105575743703538451114084854424034591899024658207851464716457870231513928375212026803501460723764583361878014604986753789765324250750847876837340170356667542416140695424758596655770332592696238367056784285379517057125215927801584907653409621152279491231842274969400822239125037945925953025829313391220687134091932543410519103455753079182615550485330332391346032336986791385994976319228743456459111548577333191743696966812853167808467014296352031043745228429518882615151532871443577912436246044422844482766875446332103092334699249198507665010185907053949716042408536976307438552251765252060578835957200460386650690137947684533284439108548922483524310651639686607576950958073820823064880743951014167865817009414977340657915606516010501983791833510873501646507119543573667767091089521032159586488708803631839452693407456735094915088558160855169466952553470085325065955585255784033409317976728317231836753006191414272109195968739158352442303256141141137891199983656770502265472031320729057154251376700560438932330722577992281155229852680912893093025215561714449563197646115880679793956398700765553531489129327656522346337397702763778901514849582227251672045829753922095106278266895930978270936382296655204914808336467391850352178489065975985339414559909008808384980416894407508013832442414163442710200323543720701873401409194272141990744980055287456071953964144380180556566292388588789130921444910837343449413430252491632740895252641443165140139604030053488413962461159929283046069316730108897281079047332242783792647540667039431025780261141637939158379818578158242814029441154535302064279633759481824531623011279620838504449912188841015678974353297041421344730181928041582175172737124668048408585507793195953470022367501177001789661456342677998580787929872387904228169302674597222610532842234010690065250933429582833749913437755043016372930888656633558313901884443886212448573863459667511874013194621345305843622641342714421156102260207852893742775239635516009851860787324552959079428183237084655426291578131394862978745899413840210573916857229061828910781909998201136065922509040510918898889374388084455565181548232877957949042013822398275226043571290534708263756033438670940960927377864407479140753299853713415305539269420527298371555479047219234662552037590867611461430954420116121267093772012114206450584779176921599255675273416349474541592777701357937299988602899067998185988561874137004881739094889946735768221725347490805646666612148523858483716396881472397956984681431739288891722596889555544504523162247866712946528042704842095015602048514370425451248598941604278312609166774073750813602756895424807082143843627455124765077920070763270941327360694355372859172040309632006317703944845388960203107425882149221040811945103924511916995725417864112717898189579234832212781612137353775883384949351875509618760985094942923445551863854326447044737873772055053636024301053645989217891639906551022490535380272552995741599469346069168154378423971770246257476305753221860946499307510880433086408463265532987762740428525363300124093549131821821091117582059106562043162679008214545343254823789203411914013192157860637470026493400623502803916946092069077044763375223115428993249569193231943111299504782120941315290565485177329664918453057625880317546030894613077825776552664977319951612986686781500012816016988201642996302968632884467603627868165723794702688038827914975410576595634830685476022641169234987160979408868890704875487606784111213460571864265674550155240269066471340699840977398201395469865413753136737939974333746221455850199675638111904471620236658077269221901348680438281258515693835573995702686544040264232033097223243149427549037305165290206490819925704221551872541277808276884909150133011669886022905197277240999870538941726577330531689271514017955758675736953089754530275944686682774899447971384940417414879585864596926297122833152864912451973619512405017168428960210781639115044483095265197149075233240540601191910043982982458057488485444382891838824610504133905704831375996583771492439018636751926541849488306018974984084119541672923725899914106635826004262995545860781414461801284625599758713152596579053010236994841495392438946619523995004316206809302406577117056076979320075459773434863924240411103645103261566972717621752592670281599955283650269843142457814964486372826294168867690610762619682490657392244532031645170921638677298603504978294704376380520237470292972558582335313803681421021661602288783061171539312559155886853484572151270604513018831182034082661561854506946813831383542708215110373243347427565778234714768557580624478443684152626810592451171699473182265956193932586356396683783844948996699416170443921306697210269572716131405919539994599190793061421985209077248573250892611878757904207236621612759442218704486097011282415250722093152723352368604889298176833831103275248615059094232643581865181339302423648248831541507192722787929728625915070112552952471892958013562772036995412186679905168782149182484335567391533565596587128940739455995484094434629726551055537637820683491298457438252613345864148583296244813110594502558413877366665244114747171048681704452102672591668147433824523822426533943421644019133235491833897603380907136174061244755756560498843578445986656813552123456603117890570483491100329085273753367800725686448257081106128694247452284113199168294583671987166390869701128066420468242685299185534356732875086927350307173911026926203112928278430476956073764538966928468477387073548714883821857985810116024336525294129731747275092606697295556736626675221901266899628834060195237886917271449159490812682943360685041036169964747248129611114449158829768586428884962568629583898330628023211876552238866789941753068345522050251355841390853527389142931340856782533700364655751050396738676043603920448348766168076860590484247167163692303488341344395355630391744591864651398012453898404215380948647662728994753078367285751672119083787258422603439806624655324097492012452916452306416451545541258648156417936822501536807288953791947644747991997935344504952576215582907855416631765802225108342796829871088559862533837149578655780730452810514945721994520892514246089996932960623598165998226892951782575356209713109525636844672960490513971820712341240446190136622818964864193383605420282041207591492816169161320658278629633607847494933638214355361071924649065346035717053404509018712174845584324644009330647037995577072024936290901519536167772481799552903630371209751555117549019844527469330062819650783346301933953717841772666336866605645856367085934212802539089580685130599541594295983863651883873501936903144410068425395696879025224793116740514579083850377491566728994084039348907306781891402264379030173894118604041187683991170145858048067685611736592320540508792761204219576115909040958748360088391839547981815216296240522735337603310728958875719419269658885789337806267604628902139675789438313411806736823476683405637356019665442989020439259472987578822535002118609980361301281288645376330311039847116170096196660845250495878361543726979904394658153485233249044013653225631899593189939411662716593082808921768125659501334420936662888308350584549693867456828537676048144070798428656648456724930993756774300299068261784650406618951159111219446633588451542983966033030981798426110840551597916294233694787003390668472770156749681993689140029253912119977258851636942558338340589522362945396948217959240987009002662258893286452826958617574172017075344358150743478872620887696446978261443189615717363863514365275607171699903146953648783836987471430419032801091780446084448385371648846081201420739017422291918938105511865367627175747450648784393237087754449124560296221570262364942063877767550713542558292727413553441010796240975462443270594326344540514822863131405521217535627236990813531059195317740635654049162323975156634063927663134271871558663345238642820698098942904543500030952211812070944298265288449079514116052521397069673755883341599958373405882793770022922830346885901692969124167439174163451608231478895057589017645331638063903556490969378684518716300250471574698535140835212521965580247888934092048487767853845144993869127338748838451023982709866857891723992468421143972485969571742070095523960629241035951828300018124625787911725712538368433421660040708283651599346335164447329022612058105321589495506664005260757339896266920690993202257117163578904280748992822257833981304867564133601673746484140311008764614769087126560380016112355953960258610341805478430044386942575248379287355457808682326399652907006215032159942065371047297904222415179593549639231244127371488032281436251461876677069124509959982969937698815177624376534957854381664538343058899495300443695582715453468035240295066192377957449770700218684873906260422463877294762545771594065342736097325601033185071545320989595833288531013783045197373618914755398015989670673237648530145519929222836911707865687324232036707502297463292375086182302781221538276442666353734279401634408274091903511696017759404256516816402689828328453229043585322718257638359186883325742594223826172019967132394989239172195725637378774714708476124124191796693942768183888725717516104142403101248472768861236509653285882410364253065727574943636329210417858345696645370235176076531750046307227554295426905064464121602310210482795497561614675019946635555785365106766358063467558624440133076337818900952473317297403027729451638185656921454551585109982019681309375464500355065505983481421592322381671225606957410285427421977915857289504158457963331978137635513612468583771968261798499555901644855205418041921376269834479182993124886993858486370372347743495072272606737757695000007291362999036058990103560117386156674309845686280076793930281520545275675416418795144592974158224094322212625741239727402503725388318937901754726571539919412755843483260671469033367640873187768899950585312351548774283348574277209465827902633224303774482998806693186231679520538793612958996094332252929692124540213963952698989755137274960419177862641645456930784878434240421549783152007077388141900580809633230572332885538531155186033099770494421541830789997861571205222650227011363288596086126996595771764772384856429156250002445943194793992329347018286539285942237262125993084636786495882024261304610102673082129540108754358657759076611544908490160425020784364310858827109546258713653647515371949652876154327040933308830567117642020423959063523280278621397757553172374977501951019359914347440258725825813533508765900767628662925258024190578718059821608101143681291078861352442138367053664449116957474996769747711310684835101570155218947431902535962037583897973794277185654342438463133222855524312754890879535634376492238759538105353601232131332424366063698575000079687858537948910753871392527726680203391589708748078256696148887187438969085158812594144415095435776670306653581055720609454022302432799313823413338367509593346943270768139645443984505684893714505911658414835355189648082943524306975445611303701183524919708082393185901161063477635290260167107229572541997166597481412495498256380737141186886374958251042074097637356383733369891260503596650074120295706069227952459951046962990561670000074386359439113748177118634347571782937253121309809185121215136434163723629906458660939018123654791293830631217779055578723792724930265918432563616028792605608483882297156761943838850580703524733845601962806629312377969695041726391270662581811794764890208991566376760757131554364284511660132202695663282472956083297195087588875886242098694797549335444610355048833967245353019278778324533333394046223616544787931598968535641361610051032481064426351393515743205340802777236988866759322470691311400762172206912187103163860444145949983598265797071638069280426985479348107416305194156025255118613198587513716278206736944842029803139144886869699425894785652878949610701605877249037396087637514033652356798900765873138568471383199900082505593623841040140561923168634366614470441217210493368316426012216239700702628808505615045610789958456775270312310738256873587455573629018846835582345261994276676213891272310917556104636334166935901476983043067204421707126746757906338063743140657800585452079555931215829689859725216280047787446417321168113466530827784617450583077990191433594254777452602088589697693536992648946240305257117860408393109512842086388653676999186137275551836143796836386555528831065896720257006230905361969217123368099739453661178036081649222970520487997637390450090339199663237024059280822547792982268987814182133766854812345596072140557611599413583046152079354821793858013584749465168884266360398806037797286519119102275247511578203795570984424881222188847421592501651168976904359964031488208477442480075009375909211719457043221212731178933229070458985171489986156866811651178340131115217971954093626019230425566896372098631065827303695890718623311450613691525771442131158338784742799406897269617094041357833724612961451380847090443061991873913928557749823677606437309682641197810831695366921764384055508269123602768728519281652127239545313409248723836782435404504385377616805689704953523835549945284696570080905968244442814509805347757720069217574271560256954068615723360898929396381597052115788246789023881969925889422215276431781137651001590940123897334457903527029176481803071546666663719661393358566228228620093741412147238765007452900529932965092075469692562310564750018089498313686263072840933652989578660836882813924190243206906118420755763428961143250790222495528506178408825530504613307116968670206287069855856013725456479631302677547808366412628196974138694328851678252630150882657730017114076090990955773252363185948926284755260599014927520219108013898715020466192198648964907482268734238248824847005635035440310308560106565965434306012133203488146981335315506040011730631797551039137837035546484748279294161860488234192665381601658508866796966115558267620287845919948504445926178370729869697455311555426165483451967702364654171380085959945538902937287741543135849897720339986079555709850057759999421996806913822144545559721897435135609181983003342583801843636964706988377861089296728843647078813141458161407752614220486790773041835441239231920537646391033151075694131343502444194536751039465374377359204253827670736304447035908691920483303091184586284568528429982467356104238357299910626574775130404693999536949466505464540911718710209709872529491947511136069227325157270555718892801139890236579398052692292256485342266008557365021060186812113639886551972742703405654834079050182241660870534679526016237908371823588433884133531173080170599058831220009468194313438216271832929702752653042834245723131782605068871783619692677739810377003110146003021121606067168130625945789199972705123731800721956484323360885296333731526724936755273421158879748612636658218014149133782067929825400967977405160529431082164528808357857809846207357169694877136512442911486534676229411298083693445399558329588584011662916542137733616843239186878726097986029534713413562804827133902394868354376735072203681276361368247003378243169131713951129612436121794533490776776152844140846235937255999041087297806296110896417008337584502130413735817351714835916243247571441722274368199283420719060637518403621615757906414982360256007319594002724687548604569679940819252815721819045408631454403766582858873862088923756639357581977378001001885695296579968300699333662209826830434688899122458027317795463425529607689788262938112360671881565935116493851948062368063992881547972424339989680128163046732405133074890423081644005253331577182006200489141926217114836671143090238431898226934901951702085200259474076039473794466772275835520790919479886198262821413960094144783200944399342841516798857683615979178822116326828998570822435767216058227438459120166665220359198976725622012094014648383506093697666449308989012901668799309375149931198497924798603290687553872339522179917391422361610296004101481677036228556257818411733057735833173870416485081710772561571386044065521418089192812334778132936173530436290481826603442807287844318466930471162533316211231649901006585310151104536673087787180984806405259596045078182035054208231639186080701737518233819162595247058129947274870887881613044167926586783077720832487210773167709722470305584111857543684073574937338740285059462906669599624189438077069500227365439396654245437243565640190134026713352516633350077933324229425688009190708504655175654604444268039755683415025502281661777368728668368196698523025084971655736183464545969383466900138973279298144953143315628338091277565268249523685202375805226650832031324201871067402359041464662594745734374097745259061831356074407166233640579073092455525232599079253548049567951824110092878924094720356097180310999966171079147162287701162372552355501558944937103930754585071343430928950645873342038053319437558347324926851746769291915573577287181892823382501779254882169367916767600649351078212692687962804506777398996580802275148156924417325893195950997728365601682137571787557926299971067464336197412852744765274280385769999361836704926244406375898542607616020789835645804113186570612911654524667487263884223927195166494280472300026324942291618763725751251366584186594735126767073286538599729006874811369143986403143896619260865687887097484111998901194785050290623375265652164253465011458144037602153600958038145426301512816928910111202793870690724102560581891970950200819270349976495790423023724954049163426896952514293162631910144075319097014059024458770435013043776467287502806101717570722051858715264906956629704620745618123428367252959645285407455022609895200714666627507541069330962620884385264697180300391962126637518176585790902593053747291804352345952040274859633604426601298398983756482562438350998672020202263985781361689843678239480638841828025729830996033973201919175933817490129009577892293528886222110520270153733339859050129916449540716118755321498684488655085336066093942376815037916191985302688782420550804821770314522451521938327742957450387465175279430595186716960526343733955397840569123890094871859068452288660013898080150327937198555148814253847440493048840059955104967706889686052108420736508518472025471765672463164705528963154543255452996912232004263312059580245092639463797120744408176608797239453896335485403326801298753894339647479379484295582947369973419968497648012654023322457034618218501226760780776548070461049046879273938648251766703637588631912836341010804847739015380915321981893615275045683546692485503745807986247098149096704005374020645213157696490302347901747981753480308253252927920400605575774696627298358029243183043984653128575832350259227027441582279263801214555693461987893495418936214518951827288224151112627934026990803181678753067397930571964801986420540474017013564374851884240273451495276941943425398244609862550625042823291531859650714823793203897307916100957428636683221424798620628288944039634322732155507328966229324440019914044986827572939890018931347061956634900349878279859835256843227074810947918608979451728570980778699341770173958227740251171713606983356658700418558956749075064796100692713372002021102982384702474918003923885431352284017050139337098254996005124137389070223472537781831840160075917130731474357751480835936334224425657931355722321360641803069560766694725766561448696843418675824046947191665886794868880359230654183116429479205655454176059948594761885625390029229084464596752974760571667776674372935121743358989597013518794300973029861799473656115929984203124234588410220859391857055229181944666259465887378870673416675818702135404748256968690409939655990809244475173978299034270333636521248793657383763658847414373441253714181514621705140606385357935008199761047825801490656523447259591077295954055801421188384556602693882568834837016015427304523883384314440478142749454160056535481075999696721010542277378241992734373110252984262645236692713301952972840343441730129813689918194460204848733874574403054555513955231081264300711796994319134398939451052299359871749087708248392660307275063040458587614424782059624263623958221901020056508744400173453819717951623130753680242734443847476785039672870189144953827661240452583455401917523587824449034925730638374032233358030891928416031370898622412887618026091098833596519822185326067796027886699309910723057483920453034703278040019343996001262137282679384298181147667845910219636544100966624885630206836033380462078323477749798289275264559781863608352839617053528341636418323646075008773637014867301212079946699994976476171890517372262966389987217882451350231326762901762182172248174333029359060678937390018556904410579234875404897937297485113041035661084760109826695926835444129252023220831913536608768255305571815567488576278281013463901642199098902712675372295635152666605750193465669432173280134694861806754194490241650158401961902329753902439577025556523987037206894434963965173301047535996564966348080405555531680164221915892233202842468133909972194571207540822325701846317499504625468608798937422055936406460594295596288303870333675188170417417333279871083370406342718248956079549807436345625520269483085368525264433123759490253362318650344728694032773165187369601032283690811710795983543245336625060851831304663140695427053270006541017113886536687773772608717556721224298372483125868929958957375759991194806546514395189150504567245882769088454263115337496927012865988069544536172012812002012135357092759889878872153144479304186481582418991995546933387147462549648581535925616432872283652363705812261824446538980051222527518099866711175364164273940492566027893396202453700132959411641666044984509356551828433800019144932602088763685985116807167482219489908013132651175956539233904982237420399938301536546661568646545691342214535163092554233537756854394735250879770245517712498545210198396730872393496036674480320695633941326896089722644032943514301491079012520751163969168916806142768643775497490552960600317400889878674556709779750479617841267004512908734336579436352324615925359904417611667470838828785173453411205419452905422863263547644121721485199532647111596963328235639485817026925212381562270969955623154139600704494205058757778663168442287522347331918845847603453342697783081400638046876292955561675967559046971474964714052872524382394550827863620815563944103308743510239793450209698247120838878319046990108214568115855286572819214646680139255478777478744798645369676513062789282064891220429975505343114524127583795997588274671541642644207786296783702948557627970456083607697052567396771370878805317902811940863168697252458075770933800594737847320714260738168270811170386372857331486302857691319924453182175926588784026149764638703941285883759913513008942749426492283736119792899202170907532046915063588556701407300052728671269362286490964686015404568367222120137814795426472293806764198685175405183223354889416808657946470407197898780429491033137484051647157485677432450268220040813222492206256832506896902927527532958041149056932373121845374602022747634434265759422533313412708840655958277653892120475575612244616286671069404776417132978691341331936450042184591990172500361131107410676057511146073750770112585206235537400421046112924347860622755429768382347848799577553233735685329419234559560146285102922831304126200136995006774520988950808727121024275746528424183214966733358510675101763646788173056462618701969865350586062505887199432296977725349941885615139421725615136078250219613868417334620704914841939147554849351225903064347714753562601875487467170667965341334208950571787271845576976899778370503900543946362365865511350427162859456423372079921714422117023030665510922360833784455599657165512388920782475820041558187365268475272214588035192709487753735143192143762035582127210407356678180228810250473959826242721671922987817794952969869004742606350604226202597763411920861764793028451336464410143098358072864932408577128017204535863995652043766251296441942073590110321396579903924026694082569841187097410358993798771403446335402048685245597759924421911157537638803815975116667019385324761406052110040073501842261806899433777566101519274994428440136068400690171469864620522979905315764980406089047433557858471063485421230350604242137929295806213138025026111244123414203260566224009088793412390897552818180004957635345487797711728053146233135337791047230662197957283547444124285187106559947159035597853736780313804713237117614870882818123134007876226915537019002503829593847775179406141871579361600983227168199249777872463969445521932036797488294409549754749021417516305113622440148761477302035863114804262484521367636252365599132888264652788046562806040945697483407747827343797899368394797842968116847268953849507754967558826679936191659741366416235088935411098793759952682506340907077766326046213381938485270445169779610264332664831845146594358922404738416917105081167325193559646953180530210898207795594968985843186513411048682140112151602295035065287324810032911762982366722210558341626666075820355313310822805809063847503225955438217730094288461855646452857922190328583781014785402682095318676531988375419149345022053989762521007361098661498906693050342879793481502275878262348621114707420456762832844599663534061398153966882296880953974141295343261078037949623645063328292291366728100453707102283160103930327445206267114009818006688169516711943118117632782286216558760030003547490525054856502039700422537134816683425412289917799734666009119690291491363629825272299201467499377791424975775376696552481096678713115389829771457244845660165187644519784607019338959589311924973511034419592821452463101555611663634680291286952782315157295685997370003409316028887613110314313311379916672430915409572739802039346672673153072399207051078857153641503099420957639164432452376014134271217050705221148784346688428250701702976057820608563560910008487482000691855900049582076090621970534722648316047684874644239509731179346817980293620751209801021586458603687877270245592177510534642439614195193708666712324576953756350193154624765340346969519662800480987035706980787243598288799933248812431805579773627390918204894204397679687975103893936679254242750278515324106224278098357649644796987593173328718199908862562516427768382824937430345494328431354603002547023124086503110854603175360597352225339643591456288070183437904549778010168379827695125570800264773269652308841970039533364346581015727034565399977108529759286312008589686253899800168911098085629197311954181811369308097932891924127206258361968822317629596997801674357915287669981358571367741375761679305470993598420561037274935499442676576285766943297607496479361091355587151181987176201966301809756404732530724455283763694090997898406615024563127522770265030900075028420450835818308155958095342310629151342307936756390837430720499287714448856469096770814779876753560963034457742640584221769351417336392907742418755973423048990923660725155374734327134496328063321641316802620082158157338355510824024204694309580189032859592129717707979666065030812814945356355142285463107634856978802900192356166536019522778132369994849676439961327152052063729398852974126474105467292236605163811156390596699784167056674788638978637901127639974651301565373134591173150258060620423536632950353843272434086231037318270358953846893787626119762568709999124390853142318604508181750827872149815013890470882045402673107242371397655439412021571989814303073421631562119915843671162113285038476337985157581390252207023135003232642582338943233670107426425949918103726637039873920730638222300914944946104583709061282893356560843729195785316989008748910276121617044345861924669671344409230532332031339912383695361753997361163724828571872131517730438738658205658278450553912796572030018501279873274009939566205415373610179897030009631192046430473858979005875803077092742855238290414605887998698736186139514897507992853937740907086109714373552593405873301495021699949133221655757848687717007232708851651147148330388402760070212258857885463408529271310545523314665234412815497135681554712335833760027574713400178802592242266770896623940830500957709842939255415351445793118322856116732801614944795753103228086185502400168586792627534885681499084055206792368615904842701027049412207014481014154049265079518053346996289440241164646289417304899646430666130713490038388551279449364316604795677972792457890136140286349878783585607826300803824954817904860216811332414820187552838316879493962954396406999812942826900381216194123565948458028560197493134387516550594244208601562351237561557153859339928966647303663344117096870774679968514075080891561191907818304349169171554310841247076494965752435373537740149988044460331516417902045727071111789722557435387483115503486311527690413906544191898880567907249692514998461030109202386317830158836973166521134407349737450451051740502741495999911766082850334275271875934643566284639617595521366666154570433327260127633316005733838477215141741266356034385878124287662064154324363499460572467009575251581393440538100044643466520709680886467734601029408477820121850522351147609919439248837226760745672589091199506110747711176091543794807348697446928038042461877765846707966339390206838306090180474718190819828789483842198907241682471061853725123744249804201934812527212582067001741715850697293351812289024122409401042225329622119176351588997700831568204560503175047026924661678208065971446374456676475862552211169311358953187265740464947058071842852869484021324333819593832311535382974833200702413420948062352076287278931788290731890759551430621853354279559720781430030069154990137486699381563659932138328040705689080433016598009193713996655882758662798162702598443985387581703348593155446333136505728773175142919179508958625232607693778807879528311299604902641428127765134229614369106193739209758345099964825251909129438567493891059010218610994161833833241091357747368427626516211117702149894055468312073798251376696524873638809339960651430603949197604006764903481160386937723615020404314289578592938372691939914692563425328198620803998067579017519276813337682671701509798184964414411434249718244788653097614508964932201428722591528210082115281168070624638229316875395938237018534605822707012980263751005607876154892339297909270975739890505648876477674254957806221905617815712727357005336750636160608968858037289487747728864562472889322658378952672049458630941243672128944818278898255622480255735025583469634545890507001896472182046576394439780116368950835254144279901846386061435632702638983743417156307431681448556861600445919354953510207943218204526521666810630167620049453883094104962501565865890827795450670549737624372171856097799233827531298839938266129209506946525011605280716390217412669508740790778448354105833478891967800814386477233812543483043609693521485410054907227725044804156394958142701861561823338017400886363697049540379323614680076915078391365116950277795538208607284526420051882180430291758658206177750768380317756212511659281495705566100129862779753017639498981052290163936263130503133805935086853081979216751324224525479212342482294538812772876124484443811410084233956307097140303278783217947754003624911125009449010401198672620221596371657579918301868137325131188616728361018070016672441340238878545257365359196569044568613341783638701621617345005048409019152844948558937786415421737891299524049341457070206381470232749744792605154391070437344232511565305812512616040945918414247216279824664667117094268582476602304951717585963136385290618162472458791158068485411373248272828046137514490570711086320067777941070369677110929813958640223528245917178761990169569285098279205374018803124331647385106766502840246007310911543218561866918462277910132649938030636574468829831399669619916380178494024495002766522199917808231179977450879329944234292147089506659922749907439196208386288343588874003317334137185846450808888392211035855782928519164327991784822192560150165831327647650779750684462718065613480286292353827734351063003457762184280897519077679159434742718152244269012135506119626301971365700513104600024613721304775219256371068641335454005917177051009287759264562808842133808829475902421329515588050024319001908471111108547553039361845381346722873742549651125060620019925231219817438785369196211875677551177472769617563363449579463461461181188522758460663250842478735355880173738582192248725575385410489465684127892532701583046439628277689264411051045635508391463432930079417380056840894876086829760208166831532592890941092055961026104110345203321763865918260728053611167662188291624564976825265782776116089181997645483438196277977990008306862249091748405710292667760598085947608411530394101267902728391965717162023586679945023914759711955292844637340825067020737734491359001638596342582900330714189547161461126631161023947162186331911008003228926556498794255894054528329700831740665639520206249040404635968209895521954798213921433052255806842419939955365042922150790618082571650386716538956273942746974139243839012101861518244134055819386487284020233062403031131914969567612087430847336537643990553402289883246948871356003212346265362220499666080969498084723200361466239602016826433839062426991347228971862251162059202729711297188879030134310371018210235665720517044797646816785200015766804596401693063141732529966270713597380910782263136368607557365112691393237643445823594858012824554486908951882996454884596558270273976725591248724724457202269136745001610767291177041278006928757418858004470142752285115479248650457409523898407847066465726934784230189312373952641401581906801385121352761865916003713017740066732810486090404728442876527796307287268209433310533670456938513379189401800649711868261944608301381955468519204020670890680899681047998989888088935003468690214330678173928576487305228640228030255118839968036485490135462610731893125282524099832739986542697898418826126406370128974168752368358179973196284663317887967529846451068367886374392738034299968874940712667399384990170322560546216487728054054804444978649908271294906161211077590277878602364262762692264506551622299181021732672055323004623116739840153506424771905231908182919651107216382571402781254022169194878412350471002383367151283180196054170069312887821762161039209351551894221580408680624020133212985542141842965705990142401902501784666305387223559452615662105764662271207081482827544982296147724634644476048361432628137656412665160677559848878638854845398203191696022716198374302749040931632615611536751936923976127438759577253294078550916046870689493058892543581813864850955844947992569060618154772820489006444198371778587507308536593915732370522298575705041645892665299664066006108045823548279276989540661376924115904445597316494830248379358207609810922137739609394076069085309009739376269204681346298849132986173388949885676872534922943260913587615229650610624902123951548394324593226081992402836215244575918898910286764284681470273431382137744714730403674443963929047061257662079790604911784126410801923000243836804868773408434435082976098461671076993073946953645187574758775554343689581947426716445341577220698349597855275258111684604067209263611637904249766117883856700827477738203986860211643934719252220132264250463523971866275288898518353345347071857443507802178402721620589995444432859841622110600242932773793030758006270939936288357227132854207284883602281632789678443682393661440577539545543356337656648382808085965404867464605182488542762476151691784419007141305888693234344745765045442823496504485243537807128663403239522707518502342886415469557410418018515556590430094842840210337145680665899686371842668653313286592358383546395296082415553146819049704018852169104902526001641796989267331009219607395855304309141774113225859505781986302506096992205679500651574058768221307567492417278174447480413276539840396098967257717428504749077676867916215781289843983552329974117822400880717485205885812423378398107038732223537412463551533372569794940001602480288678692184697392913936779365781405511839488197319313383474397231943279380022513565257105142681423472553285214983775156071185096646764945612984501218593022031063116048072247679329725825025654362077275262740268067495775563140081814564261436130097433531508737672299589212771626324291341540081634516903133891516787717070145508904871466901091393959841979971050330332521091663298165691779390504165024462393640695922322647377671823407924738002554677429023851379245104965824751245044179912967879296840348227848778774521690218724354149789712229960795932297222178273147095986359573412780392058812423495460462568589308798950405852577923589160368028508166335776125811728969598585592203368387872105437071258634411411386503653966483863771019400144264591527969011992490962691454251554458565616351166288804962721136287413412506547809141066507021841991055903230118086489959265758792640551565955983595354941353726403045390118541119605334775131583099587872410040791150434783577097044051747409291511990477400161370710036846808791636854733657039509801528428973854846579546023582478431325549646383906390808741108755961496344393773464099714971993451327142677269765245084439380196333203019135877651881421982192455557069514817901252463748883388019891060960529572993698426940915899485315105162002402043484783753293398150476096828505826162179647982392546093694492064406483266366780772161754053796764986567152256922042598512516023915747229160305864854275217604358376689649218082417966053720340814959929876534084235502283272038261598970557535514729796631519230670041449604182055967592400780937426446801348773110178736725988858593586562543907856832234727481834844140490820798590417290886030934371983429671305062325799212945917550386977657493032730749113177245036981483244079408548323117611494534413106807716353662053634059477614543102856939900084140557841198002083510899688384130428621318879024544343003581208801879690359276658915935459089069977295156142323112268632734330268863279813387170849632751287548807859878481148909377351958223948161231454967354978423263656840832779907934061728941820166925683517476578211001464284924310612734713079216846640629824840042148230914737951051097869474104507577523336132873174183596415058206380694101814216625815896021097260273690544422774911801511507905825483295142679530445627270185334735995513912368929990505628051544927538543819977286825923952855187574490044758675824398304627042704867484068084844441544918507500368596174088811434055258626059500292233852160625349871327898523984051391966914353568980176026873145169259874887779387026729034946380049749414365528428717603870202263785849561915687591094374881867955845055385590936332939148925853741101042235791126972579152896486428028212644227363096275490430250882627013276488873041887745327966494558309106382517242559907396812230292422323373794039019945370830713296584236500764234427287903150266446268230348890018779683688597589885158123604026590996450451383862870682862186892442006299306328001625858267919570940006785942741109056981341653258672933678161112081354786600896216614113257301231078794491059249322772466920606185855553753820502787307446183979089542566106167981760819728138571905513037722802553998521534556887990001759178571421563988734620815419058550965164904640829873660598179570072601584789188936868016733918099905976528742160025952344132015764197528985960875361799418430177829576095722445247722682507295196266485731859753054961148635719315090331234049525700561247985515357974033263501703662511588004128804456856727089940460187930725453884990340195935309313208664281015779868208218002869137845393880231221066006912639488544060561121245290231288402511930684490469194828453022233337686964830311404980217004262551181900155375945367527614116197483361956272650475141533910102536263850441237156431285727773228309822795494575633206320568348365142487097207026644755592771545954917590721358256637713403384162899208927659638246758327427885732911725946216877882900974049699622769913050429406835822242031832765647875416530694601799722855241069070894913608101871674472852245878004305098371670691134170131852946479656507742687967222439016405710905167329010339128161024700864344029898054794168167875040920682201720684812519911174881736227362190456352875649652816059231411822957477295330936042812974295001774903495644317914311858398717409837236465523102315678236255942573356868835713646448673983121120266166113930466628018028301803320891668974320428510302551165816862949630196547394199304517472679792733712495737287493148899236144938996015658023387123179364619351543342506803973006275892362785255219144491689330428515638143836419953732448026015373975261878557328788174498028198839383927613045752514724735965278042755807404043916929867253367769725624663297611107264867042433880824564360003677911850996158634946463636272010447888744768246204469995602295654961268751248254985319850321354298844032741844003968383936071576423010309832293682749754261541922207176341282155775220259658849976672050986332845858711837774618815912358376350817387587441251595329741941289053065029637602819562330344954786296581933780880276732251971929724767719270744661295214374587152465678943875866186199283616962718623227424810759064544168638823564100067733118687792126023604599208486864768152016343069003776420692695536567695658658965677215650546644604305935189556091527818245966855982476635070268947858255002715046100056764470474462594890264172604981086214146754339271406450170266523263134158193942044620336219231961696100683164185213231060345795533346584766922266889979733601398933931816939319339349602093324243576245800172494333075958960723827677801315935141436507255609774552859915929143464478546029271314065537062831888723897688009916295191273320241274986643057914452513950738101581690126431360207427874286255714621553056434270376932987518927323062245749776476930782878104815929407304394968231335734895740714184025757879024422258218161026279540568932944424805974401378926901006715593267729143999604237681532833008125864470469266869594731181160685971347003542706216227458959132975078443048430806252545008051967024400427489422802335383110532256151329201169373947359021129220983549887481518913246074449517291241277864215758552264229897726960401049579441683876330909482139426609986293560727626759695487544950095395834192556865131119322226141954649538869954988497289439841664144320476526992664562155072716141171231774630993622274310269258017417114397713558508479401458722213225859031648456287876161215578222649946931190345747209359679668500195946585115492283407597453889767360359354382122119728526310036393741244667561220909006801862056079454479363064576651813012863417118478928742964818602062878534638453811121655255875686518943593686766708257147708571876465527513618437543346791958091376983887682166897460226905497274516590110957764991305241285946878951951778595822217096569792615547556770793616019406437919669182517290246371621616729683976701519169653418181654179172432964492449457698967687013643377123330046890604053180309006951332426353529868027677765645139290664378717722845521244472248240629977939029644119376436454452770042167339014044639791531565518160548607897806646712012211857510019227073040186632085627820850822731566782836533759661722572390576441149623661676518345887324646642973179698870454630156855658774400027109432348121869754854103149869540676879447249785493182692360148666921088808619653422146499450619632981757495113137138815602135642000512996972225479490521828335925207823073035327713644713416436740199004425534408138494655042554809379717582657543100575463020034718898088406894775485444728643621872641070350391165188668628953200078894209488959076590698277517211279042379894791223399739139492728576953467899123623313889966868419661116164170291748943848177473316403152067864891553191917928992898167130116435125659762105245878218247193275970186579141540172445841890705898347228374156153233203746840785926484959469970238089106947797294037796754677949248392895109793665914292023085773559103161937648804836535900401059908781026478218071990276076352690568211281004910924526224765655696141649073192552712317903826754632359238463410952681034128818825566828762781974551097352980376581061795283742508249135523457357273881976343416370172513891959586820746120735143778084821196377642985730709783688359086274157967846539046878748248180427714184381658496288221807976417068433269685121335314478975723857149138373088518845827189771367587179235043893035361010034144693076221492056749066942854743938804520576996658223744324399817868585311654146750651551256487782415770316733807415332407189532803252023732242204983143617872509687812470727848181064054383652013100241191182969867085660724094069589210794679270898780148014133512728346409514252490990968760588871496503589919516878175799898500052109391938690129466304866902564737243905368379285917508012615873738942810704627159308783480864510543326252878402105846906381726686754511851230244336591032087001636205327377546795134227128512471709935479580309160409271032218225411791052364911675136898758186065638218129618666030953147436579372181924334474325051250824725533690816572590643888136859480079078958955899552216615752200928312571681103180191729794012428275389047536697791504548810142218688911179753754794808395997325341935978141184954631963271839090391058238103068391678866159651658765881921875879049117676819511857210054499497646106346010270362317418120306250915706017098141592670695347895904116832025976675051694777814158834590721151416507857086645446288569983644898447294768286061124594095747261787699797691878641283230737368528268024587985902843767307216414816290836013703854062175451060485549232509940596896075956333920100651139890309096631700098638950199366741972557032819730389731051526206158379554540065214651205900550318651373158162586425097253865443633177720844522163438552333729779410344431027547000693127554694683596250440124084133541431900183397127357560732872603775343309953805292746446524323540725395338356672337059092546721892832891077186441545040631346703981449376416512575389127445433175255691621748829278126882988916973026750967734412236071736208959594613253138762580276031162786388516123425013770447097691428412571466744944039079796710675517917395321496134543935717432440436278839085968051933610693933157626952088527816391565831361437656183067103606438618949979525431396488534896987729542555204649392439075923897889384555764845716892024423487333472969714067206536652981340523896747352875216754791036197954629768936966385778603912396058524624219905993762435772760271802536365584552889585482031652982184395582084690261163946872648453968041267353482791697408295212919790300341917924802272136278607611345356696850542284223093813496770286736283970649766841622410087329462846503350182782866161083209665396096547634596365330362592807301442157212262656759378333110360736141294304132130898818665528686660194018812319680350443456641256938573707495737786404693358032221610165243750197557801977727862100896257211787645364573217281079488658620447913844748771598571713995082861101652176506313325798091376888991760382541740343954906126158918254767733846139839928673276573348573379087180371048548218801130648228004508134897805381965112908860382348654773947696650211269477585950061292659975828246412241530948873506424131293239395790547934202793980307762790987059813330425160113385108686291025154917927768164850009702963245261263206603670342802013295955684709045022760886431690799191522026734340482132983383941761127835300331198804182388095656588445019576503512938085105899806543338883418698366535471539250476989151873246713748382113387453251129210865228393986531732766192956487432911196942748653365883778179964402625900894386184773089343649326354098116690508105773316762305954619888591198193382398371732979601020463158895794284229384452871087835539121090502072502336213452745883207042416746603766809217501689731719647109595775448692798444725073172088541708819930745417802031863149389282117624716986048214451727904680501429325440206974813200502277307793697108153712635985982351589912520627193978165299883133217894923850095973605825572984271636776547375435303474708389220930092280101865089343250214066529875879380086920802733219412489327590272763062807015679934331656890084391816413722762103964181873299011467003842269323778237129351722708467793113999582152716713275172834822767430272799826776815647976721246548980635479979632954153070407572458727895198238388955787529950509119214051867303520699924965223074367984100513023548324385021898780405284030408910188668694056822164552001777442323527252877469269746501883782422232090482738384873378408543030836653208025670213403834091726580270072739412257712130147563235318668378860225213043767393852408149692307578671966093808098318173032301460787219068710853361480540260514494650027809299653285706182256617720466037365286744105781566268830685567291376791245283006860835233872959782643535592429328835590999020522586490222160776161546945735255353571403754256867495608769840660972825509836947959885807258805449449423296031525873805041515279380071454137859380371653739117444926418261851958051503720239578685009210503085228146948067584755266349621200685239695491686854722770512222689125240589838788866884925990923592953713422409432209496259546285764389836718183307596352941157458738476471787377270919169589388634711223791595444479856510887232989038166117210201430351606696563277387104795312037604440937366204751429265905101383152367895506808768155215844796608625765357955597197028329641974433119447654905541013726530987235418225493315620288248869830229934002550951308606057522497697069507733443299543568413794740044797539929473780494297251554137452183201829773152419835248661317757899743454986466717016909520219750690772804024094994084250542591840618107892122494293899194009234344642067069431667533387788073959540605570202365193171620444378119248890615971216278957459295738101822579208292132424115670763853271136552539902463334165684553002956087041865930271432943032012314047936684518739803688316486235005629007835604564286806901627319123312260294596772670430019075791145764841263252122676742413380923889876560574441392713475844293839714199147842728801456101884710547579875383510731543107807419930534340122367172264882818964227209257997740598922425272712401887301744987832584832318618629340600218302837737222125221231293656659095462645791941936223881135834512969494063617216460376472288410914327192428969143465369568118808449283149423152722887049564857012063265944542545095713781404185147314786428263598252172586282836572886179785777287110815465083958615624115456631455947084658173942547545539786274699088045449219244212598416832631607058189354791918297915607779105760634924328248016015443844316885641192571111662906381025993815148087039854488708774268057948120776465626124713988745884481480857890811891459499259870439554939646841477089888769023628809868563730769897310099661697488477684744660739983769167747667479647538945187374424958843335541285245874626180081748705246952007826055158057596587008912080612858027612003646923713393085346799419109305931552558333343830819669147319547138570591336910697534142176309631624650018527310633207954434560878262146391748369210206993123759583080621182996799554606942631442517762448711853740379323864278067059223175432565231297221292460493819944088970055109728497097503505286972109960706899817583595146042054304712668221651375293781238878721051809760308465903380239696513872784816607926524088210518506411638165044271361077986630835670186781509422174301553729129270963139210393833106332234517764496038625988163882020187900231698395162497633598482574703975536192732866363038745023999323722784156407202369541487879409901473619924514983590455485153686501625489046743861707544182312104088776355456656555478326005666226763826194461216113486867322396309616336459008664191351359530115810282165948252108663579044867787015022227224456767696262226262054083437255404684949245930214444849748151618728135230050182484033886024347828897349223842475326218814791208736118734821123300758547432833678810877544202444199680610791769228076111429838140467252555568808746906290126061593213315379819078582522593659320757082189840384367633010420134320253038553256310367680492593449381431587986366333199884202587907512120211379936669900042837529891672187292246874514939065662814117562412304026287682654616339325616959120197114634277791767089217298367354668466733022994519261173352745585200822731817437765372960773322123093350384500626744062836844379130573583787816560806722393786804897343357345267216961284812967205322164425914899109670540794336592273766778803457911363322776894412849549209364956744966088113706399802705391958652108762307777516666240813861242175311095085784227974752528578317128632956430093391006556079346483980648588091368828570875851358197846530645767929717442669120331819628546660597173789995347851497961134590301944302244777758349849731627086016615665141393068012200387285777808646504942284417404674094094354309239525606404682553268657421950825106472422180415018497202373190055021481856464965002914146867268008779416399522018526343818457083098073926204066867105903235443870548121846736193365478332806094960827013730945588803083810870145302203950157537074753460223140281585322917302924739471047077456952802538677209743907571350079339766023907092564490857263743334100395952073406726273452228056265352609584279019771738494266176140840648497166014880364792558446542426220273221237002002924127330226979012082481980637666040483874197814342689543988121268446951389054798677757412949327374813528952185728045248252430176134733463873854261423230922030457483351755968861762231289030385980081876656948799188586683750038015073912663965580497018613558803535770599445178873620860029618677547769118249429881527824353959174556388194765604689038208910759905338423269910738216204999055385139763950452511537138761032509910644215127691990483606682373044860124985053011699508836677912399664226188006457788334260521257115616013486783104716188773662148280363342915766048514162309682163885437532174320733685248612499259141552883185736524577484956907720004006968525153204769610853598708594195477412467821805624118021868724430874901780649360754392717388706841908100147016881645323674728971713705877575189395788899905646135738595842928431829738691709813163168513418084808419354900702445476670099588455114307557446023377170237078383333967580003982857093004141891961240965668391859128586773726843284036889738580038197744052823223150543761913686890892702542016881299475332113583917094306920502744965388733638524841149917409395001134087128559056539603584881889746313983356787449752018811135331579714283591399183834811492077711431196186031298516532581627832060787784667684669732470629265792391152559178203505776080151946153469971122364891690302123393756633069130523597268588133831156798808763404487320234480303919792501731902187476513091617791346364424940036453612927612292999645971549747113235128817045208700470681440454247519473453528096935900735182805225176909943010442750270869586018068514326005555603383531923149762590449415180262551349480113474059478357372537632374753195572005007072708622369912520176495487504613095249926407405335930171241961306645079260447821397897249602435683037043869651145730789064160228921651805209766903487142221773679745644448089830022865581803559137302907271458282552176777410916314096375519689816215120237794024106837875632107327110420378808770314338969684873231500979349993752241751913582421016869505238677432417089715594854597546557513249474572231968348327130563659867479153277299315487501530477028870826799792940856742106113210604543910976581700215028821337712400071720088682133098553897322586714432245688208315317652359524439838771359180857508447273311844820736616634320962648061870225226365985533381340508142701167852170128095216928911789050509594144177586358411559233902046452009842453589514358189771738937708259850552613946694736934386582865946427371154013030180956772235791259675854416308652635908484370451090066844476563437351903430568175524690564989621712986981931404677584353043241335469276781931762054043350134311378002119778848012905195589392570214397276849736989768470053683387009393924809157956918408424416393290225514556719340006263534421202305733514458171939091397258014077033216574098011510801342126602089259424583477122063616880945864789032982443297968677563411276243288461723072023541313413748933063467168502710975553074347682998572907389404832926879698707591665830690087781706106918480706170387898818039832211060736656324084178909277938286790678416176673648205062605842122018289486142320419888106395270480732184225388445917369620618262056935059586534014106842532211644885680893498447080368726444049100330549256050812205128110877674927522321842756455240590400167565772050620540148050953167830518446077363632041800415845446855147278650913074061514982285944375501025609960905737310193919999176850709568346698851772720788486454655397139885109659207630893471512890304342747984560581674744416777358613937616428303606947487353693941675545007711502307587986303258043269130773622166204740104051278320789335425863234601412911078595657591254766089139853525736122815307571421532817797661964752039176357172900498546326138874119400642368638046898669069235331025746213126105071307789059267968359713960835378656803447303189701818534319896218019187375085440600224690924834189721854654155055670812689391943669416167811499052409060277651649879353020178379235841093388444336483672038742349102353182670270580416508617745859778530100906689010356500446841399351974722262930658014511708058813998239826473343982602261919019162105793011719057216385083656628925304188188928676055517916084227423232415438829182353760970951235561502341323292489073561219436283495205326249671330312597173561500287096275933698429804252210395755182324564695748229467952379821089306459792161440329101785043986698042606142227724338875787057402077779301238309117968618579797039422853403465312981825519910314109844664276035114148441335220160812312840474441125254567863778941188858506373552749629729274924031293066084312429285051901928392184596403304719635378812743434118623592207104225192751461585835525369654701504102192364566982381846544114464525874768612769785492483245953752792677669704827652036857276999301964062712037444618573070390746516615759059462975714947061900466065148711811166817541225569015838489626223788854063550022288756429765017574597092575828427231732770263604127094399271571334983012880320697780098615695430573853999476236295188597729188438125424799818124470407446938945988962598997354307770753310380388324757010399454313480300386846564912058206199443132552896148942434167087355176200302830580496044153204983663240262371114886009296579726231423979586266743745047534731320332380177246080733058402890250576556485435469424067292294450015154592994716925449974495114309174757232788921142865823140636915679187510771685792124694687352820881304633697796310739660838899247282343489739696399419160557986853492974703988661652088536740775569245651849242202865771817479873055075413560169787143043878620607818968004470340397520040084092755898491525538616231706453186751548586894333894531789115765770010669373622114656941480830530568868544618731652664850508609109021979784220304985797102969809630743138280002588987248825672725512112574542733508501052657735915187648122553456267429437592437144571978957134130848977972458317756605936050078447043887522551167763731845064543306660575015524366507949155498331517849266566026559012094789271333805281306260447878028147289587309091350159271385949561562103672561071668083779081486853528207715998293492447685153552390131000346664801694351124932523429327355812982953597401676986216048297990471373397583332547443242520824933786539937021668326433529949808486125864307967190342368925765984724576802053434892525954968283308466271608217268498789032906448174399481962951206619203677931833023232357195809243293773847549541237131551848237241866520896153888021859304446847273450287598378792511320849482648395503522210310417911682200339134783696908457199316982515357452051778454135421009009017891699307191322545164238118401902937876647551084852275596958488515080930449193301056723665466372369677498625804048281510743949845581642129482005091184232978029101121045470374277908054133110094409402468437961796073554747753797841618318561466944888212553439566570603118056519168681312952039325898364779141554178154286643319446224197104664428671123769133150858697395116437176601730453098614259578815377577130298113004756572382454051919607246418746492439768225208010368297635404626899036820482498115519458057376329787780246865310990399065346432838108583004120282661845790332639598028572503511266673434893872483783796601550759904042358816711004960570043415890034951034564761904016324705639588401161373196367734116504277610749261227864400152615365297786758628509609888312801100354460160264481854184029988607724182163520939296799752063874384985781341396280114967948959491347009356755502679006949149784490465994734254977866835329301021605355001740030565227765234336260195555071517928173368543125241336062227687086199056287918470555702242715362905424585395965955174229948119914384705614047348541321693720376481503007140504744223439658626749277516048259884432719470925289980974529281927675233495401977441901639517155584204975564322573626822034647907399687876767121847247353383818755162763752686986663987999690192379970629041772344011988642236540665564848574196246394899591756086436170028233959757191469199080717411335119842499007605214469582224953902947906614705107514088705318913000194994371963386616748646972965878348709007678539451781347216716317076344929349219543086961409682209380524294872292786460333791851935585005329686464496950195550102755806226477369425270908345314134985477527229185706790574295117586087954043419640987886077463070823379558051723925395932345646863734671981281406956172670682471430362259503802137053144222215229756106803574662192150509014910360590148194940970482110266679668742388776400632946341614280759883854080285808516518358723565915953200212027466693585897067294029024039167079887690598261106896321340588351440786078372625292541501289374770087208914748764498826159791081546777197812258236854135523531389818739274325460614873993724788651194986165173652689523383334337221842398194634918372220113947201600017193812657370168727349935917716665197655297234581069377708749370228841240967299051300737660806451674744100672349699213219103415386790148161552472028069639883238897447623295379535595764933327955910451328887266977188347666126176604438648741003677343687376155995932064804120860469124988871250955698954237599523699314414699106012328798594201568334868524402899872487371253141714828852301994829394913348870857343706661405277811256060413605202684031271347690612610821971436190511146799833969299968367819740034434617161530232551626282569157143167868710649975107896074601248022927909190818044274462541979604189396014558827658681986593402871790398446403110476531820565824448437650631990759204591152542444694606494834453548364797877399898613467455639280090852364722641778511940739738709295708142502540577459488453064586949446489246357939954810596971038134473156241007610537586353805057184805830990376830021537416277563691182764351974143072351447219152141716457075812682489933606887702361800543566175955537337786811638476405464454143262847606084184817753916801491512795698700037317728150740669378337110136935278618715346548744377835526092090186819608098618707572092848386085401148170552825981061894551471812963783752363179849342859326319466007843141604196464312829969209508245821769996186794180202400819925402696392746329218416303366537928868284536815684927601843465219054188005576265730581912600368274655396932665276367230997031140745106454960379307696298916894514453832219249275348853878623244632358123899226629152804465677457808893640058881272571328658020800880360469742099940390903222307501421276420478245086770648206709692687518592308499935292893558950559162434258367253772300191655353859902249516944542201905952984347484903485717976965061217997915413028982215624548693128928540068692926964874114532204363766387814885776423337652011943908588859584927974232412575748133993038417801458559242459469342074325508461053573021834264065802356001989547012221634591704450775640385563842086791976960536409197172992756012386546949616084538618644112632353367539660401330491433683079141914831433256561916781978680353171290765862121283881659208865019678093973566185034817835277892984751398803894821268001777711283438824722530918938947595529233125717761411545905550557080012927847098260657296761996121728416888854603833325667127594397172926570824044219800572833607544337680308651057490349345996708614956792010859177458990963977247583111965873575971532993369386206244487435344677585818296678080263586690320157601253068958158473633292851142187780387451935470301094689170708345330517046643051580164657296710350374926152982233937921468391087704685445022623026818311902990064669540719586782733303155466226968447691271587745191164893007383059860679046654364130972360281033757581107108180330838906084742992304933769552899681653015682102247346431501843137227144767210459682560485969014403468979772840312296768287622327002855560320306591027959857386161675237597915328147275222957829887285710227220343987523842918887229129055912231130658769039995020032194397477894805985318103823274506915480300793304583143732333848752236462368894825951590893312476123027812935604021734831676119773962935595950079950346202435947479135150956480819483058037322884912407987724540202158219394867842003615752524094870899144195092353907929098170402044293489502158204985117835371997760159793149566969014188141245009338766869994959498737343730254474694258944687322687735493180339625642816405739249257553467772570989984136884857242270281127497785623463766451347331672853607448562684529294886026926840718416274773448505824044450436371813669079290678480197375775749369324612193638520129760882708813355728255977282274430816915053722357447693342815087605527959404004356801942812276740281415615498326637099489686277692071023547004092569039623846198821718965195386141732478259048150247903597741879212112871935731760200367454549595099856567894286598521769588899311640006856829696715023260505001790846450392368053041297574018559542168244999601154738836504820389970853051407844106206377380494899519825083082073174002307698866440784824230125225027935812376736171740729469378734211680908054957553459662472541676197622540772092598912525111440658258087877764180899139917737119634964906709576434714498398732759472300353713757083711371642019378333043365195028503843539381283145898105312001332138137904277161587365459602518631705683063013073852119584338877462741425879145073847479279763402264739082692062761121108684722366649302878457889261405947551122672202551336862567652744276742462118284367562113245478381631129523910374190963589702607204170388976306124721620169235363104816673866219732143289135861855675420814779075791216415824978729056893886004070534752305454328121873593613149412170804536264450600844378407026363519738244695351194040503613375225659164862499109248273208961751479817133349498817955625176731142287046013831500388364588356815796036909681414735119063337761861762539639501509719002350270427657695352742418436338208589945908237907197120500893356321316134427273608053193762721520695724600737138687854447037890058212967532730463010297532122739686514721855773805255508598831999275503448981243084723528691090862572065823486829611627341158805785455771299534573032443301605060661881010928098357186060145546287260208633363992674293526138290557134260045713231080897217901816685977401628691526277476649883116253142978951354008441796680294793062010175097227741051597717596256566615553112800136972882595555777850253493514650846110716444207818772879783671856412551415435743937100755219720941137358521295134204754157321806559576483552619571748603045001029193898565948247150101236406143013376556793265967437687088237810991579860504230841053595881397268404808182323138091645313917585721991082410606833872685774377533132567010853941704747249893724110474088646291149283668423251763729456736784097520240960584956419843311261595793963462423902522666581291229860741231946710386858044284812908918528318077938763075348405049900823573963799418173451022265026107336262048169007307594618186074309306688652078114844028111712151809622265058283540240439138416822499491822050312930922725616295179196069778182515821470157892687853320601395017213733242182145675906595458853682535614799308516645631026309546965099549000408404661993599883043808790322212230309731019106296660411650427881277509176305885771806758084359166772602584673745628335603136764292153249455501894144457459916863693422117931730879705562792764344118005340078329556183204818752094623436376099897885530765540339000998691080968646030386032326974249134978478095374346580080074603976599959763164287041840271323757884127923939291903621758087384117138082971243527588826151374946771223098026618952119093669951026044886622176169590912859608812633636247688188334191001603942214116574236287965969645939732174438600718567022204892146964412133370106906685674003738179258560646772396697401272966349480696271546990892852398815346189905778786042760572753431999872842847859757384828535587769567468311200377028363222337435227057809960367112923464376905649650940349385979472482085271819645915145272692236987341261888124111458208263769727077450975613735861297783782082687184761874406661479747221061420848562209840906152226080046117674714573229447608605799060194826929172840073819434999466709750709026911071589601857832809551320560146915669679544402522295274567732757167203568602531780268437752527266535841598515841226703742339442954849327918231185394110107578388786189337333543898964166849130046246782100441575359178901610691771909552852389444573486625696426702541018990161287584094851243557182912060950522256956726603659720591070125258366755075705758933962275783057357642183297952725256214103426532291313193315945601131580461550268782295416111101271559205042961479577143362118608870941385286781963008958478750254278650237638359390702981810006322890103893600791268882521879606153518326413762152617649736093667468425259638087884629203601280327284565826103080767761206084705792522847434342283985748968190475403828259415346786713687060344884301555771775838748158456706646317173212317770562693829771255682912552154841665583309965019149125625563466559766198968705772293459066254493527309858242936415591821898604476480961566625416715444220064047580609345727174436811645899269563014559126895513960000874913058376954282502219391562981979998892663477394358400561764628838769488232719214735475148170340583972860839048151077826148035783011161112759937765445792083189620697730460668096744194045273801782822525543146405479000526390393477057193084637371575565381493999867043217918264421469946195503383049045364526520439489557917099354077301770289502742339248092876506147283798241013201893562304059382569889637827493798811603819742168573295372753104681283052704527905132415561815338460819723784788558963718515302313150293000335951073336551544951784593866518034209731421164740140924640842626047090496458694877752770224809961686931077717459648230861607618677198089183951881715318195804837689257984876730686283525325534492588891414019763930567457198478168292405032293687153409872042555546591106033818913150390540550680541422025262242497589415307269388133041477075935327629563661419906325832824196248661317870413089900031976826988320160750848844118445360476862943669365169637743546882868644763441921993922686331308931651926892288060055824907803631446112632464878230117066533577253804850171049923498841191853744707336999201500653185469194816565344499384158942029795361254586129311775632387025121633522977334087734954869527171200606404323881644253720989880258913681416404292830946865166275643870712548962474775883276774839282800554769035064550488628248633918833602691749716078091359543853459294997588219984404471669711086409571018677911151524242344408298449294753382582667801814896363664660058530594966578442533827242066931854508287048164593324313077766392623889064420479783756143032227839436316969917187763398540713390312572373723244064352834120293393297370610454170819495280874751505144974666942259345792740014088659872773076896033599146955993575944600925912000891654777315780692125195693836707320266988827822512826076930677489089745964457528045539671209751929395705573057925789639788450005540528620721325552784835801482677442111717987606140586585265954900563110113581074871192351533406557410671336906947551754905986142040927438925223542437080693852193111862061593609598761536184836216833795662187159608372550067283981643635147108429885837563168253802225753946970245640526459418975861353580447326193189857676891103947888861844750556695114719144783519785102005518879059127996638438322260060157611605797076534933805960857487252682710683651597499782465138377694684939800620933668443136395741212014693198153081254016101480817655920021974680180751928135229662644187045255725221902383069361563978402851125204142037635533414100421800675497371798769041195114554999173968382086026533813554750657584792070049797195378926984813929363930665133559567315242520506841256368657321640432107801523943355739359979884871220040704374628463194864099994792835050890596534625351143976200554932759087645519943132192847214914972847497124721316127621916015412349453258442816631097680235501717992384696273714518442425421301954655037837823118250876876994833054365737238862651437955086562865466782795379190779845914604395878812846090299758877795264408676412688681856092184099159690768192507921776553607177594075753678067337359334162136934768389669853375341250949223525770473435500715192331620923513199079756149595179030348112169087491366030184973732559973368200419327070053058061974662908659180123565614507832725036194839052088791028324188776834279253541008728491980884888353944071604856175820484518244635725250033408415417654052338946640199875618690103476361776572589655043684688597269997179083992255603733443000626408890263262802948998376590724426161956164147218356448633958892551347708538683502995990909971082278854863329679952037190308905050388881150300408376549301131220174890367060300474501001244278215183942457620820854358876435944456763631664927348560183865246406872753796506010743542993696505726573120180398468908281302816456771863744772025045981743448583435344009222507294275852152917287694564626704621571811049559059965332686953310191504232324980269492940514481706726249474377489080097538804340557748539262595266833010780988219828730409130243815630298175215490153988020842481060472728494840171806117911414717653380475161440305715013378378992666663935087454380912828045918694043454236580701724826496865230529999354254365252942250233793791006467168562024260070909318345578871074156163383549346491913745000896155110835246438957813192511364703042844334666447912002374163650981459642905576247655437148898758716044473661925890574081180588912282235708954934561849061948758717290544573324517243590745732127368537294253882509816688360124530718104868468045406887991542562955128611525414961140618817100578441867365913524046657414006541313352469176267968033431968333808388209742965487849833318454963465472609311755285103289403519811545936180684257724514640860417319536738856313943129826143678713751342582764868804315229936910187218905212535506262530054396746420721355404381409013969038169135211500341524861284066119822301891576573470039921418296243519806182783840382663944436284904674263289392132280188884376922454024315070864238329011793512753228066371733268189116351434740711865426623432499983603579748625416371772885988243027922059876378771624281327320626426845375612581712489202019940294308229782360239998017887060392107012746966579661219127483360694239189309969244676951335623707834380054580799072164321251225473950631349320308804523774872555934611669304336329310322904979922428971849751721892812664917864299673993125149981449001343881513022424496430632975740565899680703247556679287345525689511366679274150937420504915832773988829482166475548543831145731041058232039395886152731496071184030180721862597238615159396651656959389324536091352259331511000296719084609149065609477166473142713828733613612023621140741771524375828582183936317144063799549928844102900461754275793003038389656400171828043472572582613653988614061637349457382038487023337863603194473872859034787238022099722877557521424840172751295190812326564440885407102445512925467075996958280480777251399570784439910226172528897999277107027465582214573914552693214527892005574961736802647396552684904767257024976362501215438074340356216944069237609076949100710231885808168787951080455611042866368163915814041136564915769118047781546678744420481406231853568836844403929483296758440575346183131108278123680999079262361961363971769382940983982823954589682020907767856102944954961947488892667285729652927614278106238729107255870708949222395265209288858327680377346478518310508674823226982723503155735531643424431939144230823300680312296995214301014330138789489796620819219562084445092126529000415471021225601669590229665535467679759686177137526872407019584431300968447063477880356239474587010266900857250575430322657273542076761654646275760442940120499373466396609512624463411315671387451818094609286408155280551194223198879746564673180389620844455076217806843311050154032383964071154416752893238807656802539022589197478147747666812684934943719622695345755828905981870561578058940600358477411623218867843348264781682161728867600700182165579122945068790109355862481768213537420509003017605973680539464295835130631541552898315840944993163477690836443267601565702567801928625540162005234208821137292030563598361333227904283422480431256124290130967221634970891480692798392683218126804510423908879921317890662200399186922717922011871336124073838551926603497812072483234893073838562230617547052651853738432926740007962513032903016199660555900150821169896364867968744239079611836806758324253161562471713547534689694217616502444364267868388947294571665444100874489807927593095812256813804285152527793647758918255821910928199363176304776115153311228063766868084110894914782059479759598930698908535492559720753738668837868060708146479717852319922958024467398530151847343473648291896520429196840759602408739707911898135618725598937198892340336783705426564949411514951312124886953827097175237700289411661264707620855091278935664151767824055550211312595193068873258067590934689196686903528432686694749485576897461250863973919228048962343385916851711700668946454031414656223943993572182048269474567595690959275068875779546968424678221992589328190701533922729784801494178118453393743026777016142042779832150261385089176083244673581598523676253789866120806001493505509025848634391055655787586847164019995087537897072149499108213842951058505582053792103027723704965156386592270678080886661747591354909347015813122217880013674124022050788271798004526632403574430903532087224363711924287787462416139369162999118033950090768243776501196494828393592820140886193612410641449652133392274053772437679290818306290182748096123522676551579806307348720884877579236098547582007075984728666608898064133165572399367071510812630740530932610191653504402723187829084869350464299467303991883394614127751718650721908846762379273195813178081279479021175048509057977786562362699757923434632625055899493664062100325468104178531771936361587598558870090293574729958762809636766419707741634945603463384263443194282938481916659957086922072519440352102552352981975725302054824092680563764213933156051860475484289543932326735212576556410518834876664684551698926445973775171004960776045046395201663663174022857627991339897231702803302554527704732749911048116943640995900057817395462125215695045764557809102601381643836860148565854217038830367299170186326282923707305861636453226415702351611847034631449845308303221556954401959453932630024725817627670549726950142562690199877374076320045206501708049524501857982830559732482390378273593548212160921709951128973355936735367099802636120847544843023755524188979994206697841164969291485595654603197897875610022042515574337412913521170176880507112792031080100899349786768934013018494980811669956056927740786505424683798484650567418485278547690691432597760469454368856518390563019868392391775798633512933929494060273409803193422800248353415972909897274249614014533918839837554950142889462694712861583240467231538539528895082790581108972591641835317257523742728483240073188837041049809833592724371327045735301546550728406399034103184240390057107264487523379388070888011282323773280957837798007105166888514231681826015721860388878144042028691715967698790181530393607636936309605671437543158366781263075914045901534685863206190749157850357981693939215191449585907330338612065565182825934620098221392471034769627988929158835488316593635880190980376876312069013640675682041971924684330217960715250992387208829016033240967732862913550941066709276930267814049187916934482226324621011512320122920742243620984860987651440273921793400094347708103434756859389071344156334093145097682506319472223632862788280329537596950504214378418225691685904387480538416270806507749876959500334227407409683181059764195912025108116648955574002451784015101543162667364676488215800246401832522145403102730059074797902297037196702415319002545238051102442827764403521918353749451757633198585645586388178170428527727601818863544813966647995419723567734442798373745305321324943748419695936266212973592780459279729965901435282440675689803867103362465430165907885159547028351996582424417730197541339376949561317089540268237973429054728739557483160027208196395869839873719381896701644849713148865224793406301995386192421189560732004126248136193100560924905650123233637735509298545579531175789801217831841248047257975202097686813457194603845884188503884915423589747954191836187792609969348462430296660496737835642274906961419891615394667587435307640155537579529263480256283638861643483041429271380450936086878428162269438070214634734255808549373914534171472799864281659627964646702153296775288514076514401036288804198756723161651787884573646171401350638991382149848497534556803271192171935853027338602323201538336410342665652235021096085498695968844112355817062849949356954689769817478364516606417206554531330165970738139264510422955465967517846334915233976091372042188801224359865695943706222177209930512257575793932914988800092054303142822165440325190714491072796044408522973399353903263602158957582821089307579471330055483593039282045394074448540164375877874180846178502137270849637471146612270118136016270135178430147519755702747464317285867261118639954059655600966610760013199874595567504093126504883167037102607727833651175842717190272736402829163202611015155117076739967618993495484697256119778607465541505841290867187806225593402769622421856933717789156641176954466696760234968106599069581523726659987491570256757644483722191223416227613093076223358070410499757287344448007296397524066800376790934557007920236964421687030098640409887543117145331362881123633260654337679570471965567976110823423517690056586355036465625882627971273829624116618964638326437384189280858448045867166952132204915593837483451364566083803603155681443664864742801020230979796925252906308658293158519957532986989964041657506783030601085134429021914445433069805076680655579888029920886151359226602540606886427254473107862669248807951200229902409894413253795384544038409650390387894564781290191520370667372466679222212517266359848375312792173911495989307485878689967521886010686340340045496308707459191235260445895168329004158277297231246266576113719790461545090861260318266336777630160971835625613326659093027079027560099126307347473256999231851851790972881209781661267539748057203085877027343375001485153237256971158699767531153356379724608347307507086143981102548257302770676175016496055387293484551713793096239574960533313827175837526245915738156574119741337491563425612880378033661181971052865114591034087820895557221939320495351427853856052095715020369151205984354653816510259920504582766221158411214278266837071199565812307896110263735035045094642686355914256466990928789924177471121678117199535205124466078092515446318119281119926169665367907013639897021762060938980807441936591192722982230458879815424786860539040610693265658502571718091646090564109005988769523891045204379236208201176578237608165668663199012695127533405485257108692636602570482283684131263436526968844741188513169377597292268386961104305751166953429864122258188666702659025281443327628999545837594260104960301915986683736384590353612964591215190439841745597586960234353300104883444598689679142997109953269818355457472469541222504272689360312755144971001946430588335030619063355037159776415408736688176168523434664101448610869033858325265562486637510845032532668223017317630107325298367719754222112175550058554279373087073401703385620522440636831215780869598199027697993373799841874162715726026737111764811809102638042646037172978621926396496699583931285036639152477284848270400727564636664193177558818364825858162339654344785939285299638220805088038356133260947870810631507801526557363382326200551025946552379477254822006935737320133892193374305068063554503130281724394089798990555778790593547010076376739836835517658211550390458623339224986065381225479116036696638727585581688928540025413450161343091487828249218783689895706760168401228476648164539005623918878326677140978806286855809654501282981604930528079749523372941235159237759194318907190345623258657973400137522015296081060380797523842308970508780981021289266847341990747433620885719051084491528988491587408020514880928569788078929596396487621753379936423089115754656426467263449383273000310365655368037334541767259455925726874116272281588363433751444862768612390303629372626743632600455905425226666585453676620023500734650974806028153176998561875214058924340899940979609724664691207131980790490814285244159125582178952433176504694839116538624845232129042106757040669917926479078969774755331841997522255373753815161985210908469001589835380658945831106768854976895595937698998404135262138366330810005362472040212193872580094495464146219548900236202980878660090906516316018304327696988132969937412292985056568506093736555875851553602968480035877832176735712465253276448150485899401906359485282327791065606509175263232617900866019396856182110671180667835612597915105272889059904521809545866457720844170748875923179726946536652090238357743270555424152298149481353632611947592942091383728903988504695329726825547947235034258043521302859461933044530052820230103551508906604362368295022814755930540095086564842603060118891388803318605303100204920528570738257731382182870550719893751369726596015358819832729952240660381587523590124891367374859179621425457242564838059184429526545982424749965922751982516252222897880529158899677203911068191354777049479737510460788226835082282056687932226851080641086043521307589618114310984943929181997189581467339900152138758469599748895266639152550077804139378265609201190416450589445182903619130778867204009036163952989286221029838148013266820451397578530633384509080947121852374896036298275982673845871625655789291374521873145085212152335063465783649362145753980025297724733668962715900158248639235285595668269111098237439091844564169769893368363533769094001656704731776980259632200077178957584810841026975098926228148216453258446121738903210998484596371241654927571529854975946823417653779869217377812647889679227173043722960706360116242279486386685266904515259376320552232495531025337127836528242029306357365721636605132943899085076548011334403988293203570428473889874968743801794409662438390418327394890808083692667081305409434833275642773519159424484152653430636881796053354322575851303163492914935113269842436582272906968003169190027681595334750822259637673331203090528667424915732574553116713431845782461149450373911678693243651817762412505380532350160668760901580929670810259971764138026313865629852675869418436330951357637770337589412649114348329781861519511688125128454596190772320308385262827897711849473500195346236744239138808822871901744297762271304804103495579562698534811085267610782471977168298175587269658767081346443068251030137294764183143944078840019064157049686175648513847148620884968411456144279797126212254711853178668376314644143104175659098269853004854714697266998251720401631485504664673930448733131416263640206499452803602343799949056892341986248783094197918563962521273091441463774958676843919622158521312508837406569749305101813243002292533289201906514573878767013684322859835098598977809394160322916020196778209402334815100517880444377544457924928547875268097631747483627473824666064675448659849718112165808657222790035574729536445618137739535945182334250400599873964484705163076292489016371567848313844826214836513946039310832494429349041480434939174630987707801491587806855656254384869352428585868698930121510473787815618377679433563103138283572321851003651095131212652401108728769574261154133541962876443967335170598382631216601270787225487732445506120130252871023632367427823048953255615006282057152248198721267874770522040878356495467141976458938729783327552296992521646032592423963089494471552512211736526330393832347949729884284060302258180686783208309696629070228429879833716049588735940591809459046782214841258094722866107738659682271568140065768714667193563665448781712755162725743563116069280195089968678368099871931527469269754104137497875363873382278706776366762516014038829391392179562495098769826216703066105398627451919229513771211205954320322381355963129908375842903804731510066677645655900127961590779140879458385100483804813938271105307655783529995137951348300832721005805339169250312489237214179397806663287896938889688919652850720372952654818797651737931311839886573742932949886733991416149700243837398571862971525058051591070699918082733198658941907960749043385619073281757227535492892390435999155448245968843002101609243659984274479475440808773717908629339185402926210478836329980088569309760454162882932982329222947586289724631744503949433246591972089863443716199553574344809098319810853608814963256773042494130422195037789979406578087698709170034858335835467358728404998228526657356650476919467149508131744226384231135182805472770672763903992690816576139433740250514776777518415079302129204378211737986109541112719818264448669144139069748853249073718150794808574433882356012641583770179900693020831287710830842258401212629102394325123655234910565054005741748366707576152153892370054797634048401672155850564282690601071213628132291531276833175318350050328253941969610303328585003087576585066997162605369975407609631480452485198214943891317376306022423478993833584010305277183336083958760080619479528749357904077655182857030644888442117429767384766046466340239039831180759753923938168026556642458006918955578235660757350583818310011326617821876450207087451037161459713328917577548838900403103352013823652690382900471958748196347841068227018783253211757352287713175603836102876817614466568709671385798050373346527661252956950471796983540778126464026859320366133623507494847444225396800847064782378743406515464494747276884426073606331316360394911374597094403717045218672003565474312397512991019640220677377078812840207516058959482405519260273613391613342650287484091681586537126643465842243697405119401029404693146530893981355957369185606408744012665773946573711576660236966892530029847636408233212401926015266041516565147562172591116027671491225456022098443976790311556370061903161751005925895886664180771255164638579548253809820747590601008489900429666219076962385136440773776944954639956466393450049469669772868765334656218749730137401985588305699564146174239251639399796468324069584540095839415540485979243704768626515686558548584778247831026614104125687550662266203925236860482254827834318415458602777601475336935554456589489712209991794598357332276821098252154595703070175926487073560288193395047437093892991875586763364750390608810842365061153529716655760227424823324562324934929541587945150726048070103925137997491152464307553291125361278599610115051455970680575423883746303384498788469936480605089766318405682740913730709008594613866706890847234306639401235505106641612677280270824532177159682556432081866028861832387753477369023212497764129809015386727895105094015599812794019783931176523265788549375215944422671414119374074704548828844426037986477462994274637147107847106958452132100063762927297068547105099735708292642227704765619016168404894112545175714548543194284301961253163245278878805961597845071694686733252322184014488904660915539306794214864550627661785922986519121592089866520580746197903099781938105177717572310237389399354527259916763420762564170789520845460657395258110913024572991864895291932269749360193922216620846080927119267364451492106899603232942221226021965369449015420732564813354064254448929395900094620274401729904779211006837518774319709311632831770222189088365088747582442143945077127018302386977146332873982534769729057764335231953444525714632303075210855924568035671454148119797439036827074074718225631650223472057608310942524942513276948833744973883546793318834621831586054742189913718101451799499204876147057747874531381804579466516972716636253826455833614349018602080034888342482200123631032358079602211870428717860086880596832381997505767617256115922339312561040175413763861374682078273212389635835729791155034361044245338596236736845489162529537561256784369039670766508411574123609584619813013072607382305010095225755149433321470872598713533443599014958749408913338791193859723588133614554515554609803574300072744415509483652550205229609508096984112574842913174203602776847572753172609154974064116362725984985614838996908271968585550302229181206327815538647121826567172869005967028710839618719725158660698205284986966413797329484780824849026218981008986673168069030922694920485277175131533635710883474015060435050323086087235587752651767111256706169196571238660114086255932135146914914797296360786386533781603294454605139205743974896410638266806459280056679715515121757434878353897110498063480590755677908775646643114070920828802808165740481991149106776035975286297814890144190170619265590148712718042458715647586563845540181449558318660078597408628698239124557601879169751500487625059714228974451170955150022381536147646427148676813299705142260033175519593505240123771749454668397456307966172840712070960688130397517097677382857980479539904563469658411564689270307889022738018326120012167638012164113434040801098115627360449286105415383458131124171341110764306158387861880960937071271928039494525236392512445815494425412553464903343882585081925682601917718467066028318237675940870606053500855206706597484752960598334353290707593199100766957741859401703317253357046369645712840919706244856331243716901835288421306172544040183535753440905713945042873425347304907919272057201307397613476350365564447190891127575078846113149744954674534839773265913660074767664333220474096200032042466029813942332236066626431664956497926495356115736781095776352512910760310563572310507444934840933982577114482224340202963071651748806479863069588214644219955534006465688338558343127662172790289923683814858492723259094365255885702418884745494904076083428495047139200109498960667587324755143490787565978292302974984070348473721041867423565101875285877332044337998411389482594976840742720793328845407380886949229295996275099115025594415846258923786104387684046950477732470240496583247974950755111570612267082986845508936718954322969306444418995490516833721965132110092133581636792919953315898490835545867541212243261459211286575530499345932492335496318066049982721653505651561423230817887048521011463415632307886910486030415570678412216249419195024928282125713683397453120123777912515831478994986202745712309798111473856921279008005648055394718650971063723422840476954660391902416214983353093721795264172966911919836475061741333398848921953923342111821592893821259000552578342118614718883888021597600732981430692655018826369399871944783053943091215664338546800675173033138754110767779517355985511478710650409334897433457395898710527759294714795852921870992633756420430646268375799479240889742842377936905672032947121999219958755833640759710159812529786406133608471322904231097569688255787597314529966896077247955614671811512805185703679547794663517671659468621766108644310844541806403682119362225713826595898507017146322881071308330511831355281956413729483750348384484986041008282781961751262396569694474564239874824737081188521635211913019920573810653236734775435620335222649621137427396850362269673078034496844851030686425100511718989248509565815874742734535123315084299044666380380972797578439711949805988233121310759698928542553024199875574382510284422278382278148397703639570253521350344465003362672429889349550859711091772770990154229376166783414512873307997482636834616794411679574783627254563476668744398480705778214000494593908725816560940784174541514923533193141257973306603128000256439053859081269928319498885391230649647584797689441247128059694085481595437318056083795716619089713496886138331644765953124299914892826117496620256074910123322402878616035126041943335058547608180837574254358382352728572307621362701801286355409975833029930421318185084299206934499289511377438104444339702225009614632143779511275107142163964756352470525588687543922794100473229718936802485459665059264700862797206373000570582403294250853182415607405626746377974945582228131827828612986683620122922617835837756371317370965828990753206019729418002297068607350667479308318624917259407194417531738325005938718725667394272575052891299729269363064048488443135245094880286807314084048083542172026164496562607080758923445339635020865086541208156991756116291880954561902224462504902310077679531752338128639978066679026929016925752427760285458811526492290222940384460219405155264794604265795029044695904318786294013826980933289599313381178277656460603138196567311384220319128063520963795864574619129349890551832291022971664328745879575360625573285990039457709914766589136307028506443387709913342930911189806470146514477322836506761183471227741602065840121003386674223434217042857255513720645795087511059396029492111537043900719026655364589136094671518357798134659338713504551456557692034848153984829797580775034949165166330616117265338413819010818485531024477807372393839358262302923971212711567560905008341554392063774377343521107966484169844688802864009368682263031883117120867589985338692232231812229860407434511224130836658831235508823985369882876858063154448849489907439045171191409558486566487002059273953635749884236619571919139219156608974767601255902788451999873708180059922287824675838244971527305093298754257712952527407828300187598968447346278000449205050395534799301707164426981447960670574145467242088932969372527255104200979800335875321845367982871513084946419787760646826720479867115903441717535449656678539089821645133969456547616437338280748794079388457627545077263792611093471410603312179955553003468197921492608286305197502009218658586305377414660427437238313584255401591659811448975520866032071855686652306016031094359385225756672332095359679741942781397358435360829214325869277623845996042251231926039946029483386276706724549161342350218328141137072327258075399013937798714124879736215305628035278544079251757883116277999983603874767786610739103512998864476502192618593439571462884298300243930395724018419966865845254533651464501440016455666075362500148688875023935123374481363315627134355723555713615298232594118746375900774863201707046051433544401925745816362197536315281111176778065807042736853247088857798664998650363209859316094997242638123412611216449330252262637075992747480227828139873742861597656543241918671882563551121312694293611859006875120926136155805605437939322965198404654669272639078123042704015101495408145850900430132838268231595020508077462654496062412712690938619494058639992268198643195039508925524886699405217380195366891676998005186772033390543776546022089106584573253534450642729876644695849181980609018564049887171966370475079979896228582845089305496258152882006093735797363642894037732996712515513154873821985963542564930193617295513793174352471656939550768328570549388490746094654679709211873599943446160492615831690470955360709726453377940987631607745932504847442863134289145221979978016859906923567356217577423889095440738347611929169444734555213918216808648100840020499205840023482267585599520056313516605742329964947225212394979675353784471873867648847306177851589184812205042126441818630027170836839501589611349345114039343005253834725842394455774757456385079953143414508961100749536469314273172307128849364370648634698180846432288343728289382314711262967621415656489937710042677646830658906684953752412000477982465510365540001660369085730284699670948205804993103671320171250589429516172275566109922562436664528179536124708850812410179101272816269495456579946580808333806098968928493332131600091583578687751763254037306997260279453029380229814118421989607300232777519698214316479295748501051502579443986372849789192184085375448421338759729999514107658095469887445575214883202978694469108647291522791458021919863438491489619178345932374525205456919034362522238247774417250826830005625455180117713740939203137315739000566485735324106563871562422896072994221346883109918597227689558405670807107295579771516243644598240790386282193839871237008521505639155013616112691912609013616945401573768164256174948854278083026333351112206547360432143901637091961273186045842915799938613605623224376191447514102553697302051223115767564487777356063118616821973899701459279442653655249127807106531835383583232214319822804365670902607468619345216284299848075796889759190671561340211650750414434468640500833458062854301855611990599278398632261754729007630646819912049360222290484213728747792547112214360271250837176919233569509000611685646112259990640829919363741445574267120888261748960301373435805398497798702571357187324100254063423221107438786877748396503160776172620926165186493864153000187448979540685543796587237297175368690160328003978369333520914991636520171834672902674679149837483017025397295750203459283198714587502608944131685436389024332424268299665998028857299599386242676200087232122821790607085514384111389881898299700047412863877316440377742810781809793880181169352931815636708345225695255201312761781832060428662269537566806201392893095567244308606647897175380378298323674430784797692495488631437786679098183262081673656631812394506482263332150201573698646048822224698913753341886801414889411454225449055466509462035268910251498079383114214781542068010437555912529950197275995816321492417517651022779386914221458686029849489160461733264916919407799561711977199372917402012666184683986877871174713481139779823344766521910374014249309060372393018524560307283897837514396293244593578607508958082784371006209233723844600573724107831413624570332179072807505665863948553226166938987677019099869549019191593000161221978158500940104704812383929991819573386787563320393031912823762822655567702120043265112506662997596415957079419130310017862464405918432861867356199563080580412507391196833275899822273071888832758797035332019792555536768964719927976271755447477787587785389465747023257774148433676681323070209392462897274858973803657869987262497619915769872714877048008294281133845558134418231685426607964372183682519121653152355347049193515653905285853238917007171576122123811401623742061531245275594061894473969409330791418623459768529204990044889229692406460208675723474970491664421879925520344417500685600050039357465977138041664782750790970980370553487186150249173616665174442272173044104799486959827211625022680226161445052819063647262551835238308770056777856605462891484728980083875144924987564866159902697084690469754024662385641486573266633433691395766116517277502898750942908889175890215070361951608252114440157839836219044940603009706485135042449790288335425029067862276060608637704361824680554942605719922372414466984670744563965424991010031408550280587164825630477025750060957415942999326014485315619250963520265232472636025741317368982692634446778396312264911000478392268400946082162583753555969124624057538979580028743352829002156263849294485034348698534558249037257269350053626412073855106053090618073913382001646713877461449193570615565806242345833737231354237141038526537643704818906974250685861609995485405895545860843669654249110732005888654798426967183670359861919561273689253345567194641550077329609963525979690559010884985265857461725680585225807342258329168228572884509609081375173967058795301294618483824756213702370659445097393010547065388112919407872516394665175572090873906414679144234725058223089468754920827299079674640744697358415085238649805159293533239231952886788630877504666454123686751420897772071565820196218490832354019139676221116232660919447117796853709634891272994331830414848868113577204733233190483623507716805190526055338134547182130733130298172136525625911878791341697910332510376849116611142017616005472537209767675457596798354131573131419086020577891146665767523479004304165706674636228543315307767761719113157250095564305872723338670133261896195119750743721564001271495059511179287370230763280003204529463316800626890901310045851654295185238594503798676683842025090687395416888181408052830220559802468316605426439031491981539071608831628905290139692642277015501526605243821192944587308554657715371995819832757802640944480051194479963363208246555716702585253721202167064293067647077388987686123987158705632186907395476240081918837193629784774655414750004415922013933014125290979235746620374977824578544413276376362110092075088674682812597592072977753198880639451951399315035873243607014847250120693923402635740627649932357892834080407009468758954502923200416040985569406590925869046185306516659291369853425854347951035617697634430966315357280631783965212685724191296034684181976745549839169251573450284716899426511398915930533948226136233813840173412952864248213874881163810971032470199841695449033526954476072502208780704332188432495285931347614875124635904799446744165598106822552196983574484772425428666975209742976572889356151486508792024021783494692408694310050555214265334483445488315539704067349331846004714613231779253629437742513105273643440233324174671412563229018104000433263962414516277278973159887115705878964945160183464637023794243594834189650349040997942135814012782931775825711906131943036307980495976857246476744729981864309179670627479167608266606377782051904302735534974429030101263455879773887167658426462153311469121384348312739267506238356214516852012140445278595448990000862815276857005951269372432874611908991843141387910981102555216158593573654965622726425843394617161261142356864141448452929854910229980700057681913358864476814447151229188429833835788601701692896829583912458396774941278056824067100296087363161942830470673869799900113897507018132500463737249645337861459974041095655503045426639508613444772597592857418346080183567674436050470692248691158223337220964918220369824866365532434623784543861023981087162871813583615588516702647166296094831105895603169719768246025609023732694964534122743262290445074411636585337833077463411166852883448935054241023040076379581092840762227655369723360661546095408849202434844112718445607928454206087167930559035558914443721627224922321733748911259735357761850939361957740076798062397955069080587849690319864502704695243234130292652916449704657305601879705117725205063957423195786099116826384786228059364503539625979464953733316894906769533155446016738978328570520612050246581058864454397327080878111099201436405765895212624222914741319424039161310492217967769987553250894910060971890539195652771263752735906199917698930833425925267365851402356622463506949473498623995954999757786803169656724041744908204419328231354798205594337829225599762521062104075590833852160879404046017358170081868787949251534663228092051155218939326783450539608636124262818397470360422283099480092841378220512628506695535925390560392735196155810939706753453553035684131261972079658247696330716534714346506234546229084118863533930387408832006875015854774558131834822464062516195529421561218972433687630451604948421871787827562725472130149587420934874316987833218547031124618001214094554494129259431907849111626718050846624772374264986975605377212193646997942699931690915696560533501772441827074875916738917703624992977588675109453591987629136004767455164273441062885580987820154073102293961377779739005978070480478519232730454871089861701464380922189544402855138628801877274068669241299789494499342167831597023119415274893289395462280604079344458724382547777738864704658667187938161067463181193293498139482073003463282344165563987290065994048968295415679679198874186198461644845759995587335259843142579200262032740602369716706562519164387654652661371137728182115879342854620681058146023280851967870745300141058523626350828488325757907506542950821609487247975956544160837029434636652096470780988125886520459522367368630143250907977695139983053708210516492387367274332567441038491752860978889657222031194677994561836439594816920499971668436174725258020280074406971654671303214323912071071988923669343964879712525924114183844173866884990217987190188404710168959767621008179455332482550937633003229999363335842617318843951200048429745026069421579232731136906867685977978288550263591650038334004421197010627280588628743271724516011541031706469975483940631529049552149535328726517275914263221225717993880823039325809232619137049778147680460212349220015531837991712739515805819752062943984374215563307865298948450531642356790126914410702107924744159772302044039178030043561941775119037161652941344247724144084692003593211361981417657161741118822136189577464002911166208998734074895607623481911201133283413101405395540776569524404346746483545995271764510267747224713162450006522416788686387477853389077128372287485981380430585380790002650066770388533966681528743659677421554280561116552243747115903498421157474774691828788228160719763226209776044945877398781870439691202360104976570955682674268878491995419798069985840116737334864614854421462234337633175069062372993701461626857984833438171052680562483949090829299615188091422597836682908124756792150948131228191534021416448925289727443050526097057064949802653813809696262557122686548097020521570718766466837374020110656251044032144518177108290868564259141248478799549576083882791622555335430661659308166201353517580442781331702473030574211361055463803150568432705581801912114389927854719822079538854222611481623992623167379481622414082892412116410784670646836850419282397305320995473060981625001496867173568934273811217266085774637971557267825959386805001790374131605808500586724767240865474991555215913151992105955405550805464623245845299200283366388131454189096885197884865260837407376089919681134038319759886584792822024488479377364184389742966655389085287801847268239800554118775489849402908636128556351904156317218291331610941979267096135145381717956274347800331333072826034798756964295400797349288480106916122336173473840448207423562794549152924429397385870153449860303717011510810498791797715553008151462320949351032091297244622357389311155811507845373345755966861963681902986312283270089278876570815316328905528136298130738325521171592235434176697726465004104613889531766437222858654020028172832814950963248656208918160167237258984574817364761140253587970398482686970490019577516698218625401801693547794311002940239540876339208425701909007062248832137983978746468113917788442271665202657583394457055045244924257307914616196838182209443000546579581239588283179597560813071035323272136140573153036679885277338311991227238806991160152845514486509903111860389066463099616346470864359678659411841543903849408773364347446972338746228075948195909209467130343248182847249576936897105901970987780720174274452928503355872285032349056555232468790770980892306136407945156825301217643145933177822169126678158308471000395775953348444329566902027381648496828685253847293440587723857519641718344160708623507293754345016029167450705774585150143870076878628242114869735406247618068635127934427884617878241165082852153893642643145547109079644210690501743383545914804854660296428701109798774740817596672126570235108377198604764590608488250679795422960052132345476594647540763172610450382261903348311794997050232116958573302157264447070365944214101950538282810677095401633301285129284992957474734492174938847759881748885863615598854556072250244159939146534233388531961361524308984060723892107945442645710816872753579524189979665513601154815473164913090251007305706496558021163473241832037779796173685623321729422128452243822409512302708882993196153154786337317311167969582232428249158492645697491455874771884377843380770841974288261628373752649489586491793103479027950023484051334828338440761844932546585268926863897939113238878629250896947040912831881083033265437467491601687653073166522989990192629663245939724532842386986513682973784655215675802928650115177031056521874373335190150038400783366940886617236776487409516091239388209766437889317095599878804284093226744070595344348710322658760476161279802998287242094525380866557679741347471570451616614057556794832529269612060688998889056411579104905377499109883684594227103618794709575574707833000007026701615313014571790216848682856152127419987713170081406914583550560527121436561056140308338702665986169660801311923161006916342649485159566127411224493206202564723116605356460467640831355607785460835235905355013507736303487423049981995938659689656230019038940576658985153469600054943175872482615333718114212602558818511847154140284214672278137966635501020487492689994510643929769530002432316948132466712078940116782666012906094451041357768094384696816106477282216499509567539349804829964019472391867218575013578488937247209071900714759458234620196467267802310628354780608400145046021907701535234405688471647358340644769400038224996354986413503190394496402904370021929533301657731907905475119424021343459291952021788314399589149437794802513605832457247850567179549729993302096792915166054325998570576090601789050433898825280641796105981062116317722644557192998919368803760704095787656510857437966309822148165316404264565969715350912434390492013776862703756427239799650353757048854647178897890963318633655036845223046844421795701014610072373292062846102826491584988221418858085429678731945257439222354649592891747794754373233734071778464108730605116624027718650741659654326322917898760344651118340037613134916568776291840250898646603680901916332138935920975481889938006609873640703055790520441724173582729577087266321995036579040696601730637117501284783560742260002893194907947864689355675184881722464604270193698442328078164972327445804172004757416951492329860020305267828468762275713954119068279078675444912511439244427809358238157919404138898803360867067782737493419209496121897640803928453395695463861009129865516615579727674275889520782496225749316066383745814023451178729141000583784947358750222832144416965581351906725863264047782033663622713845306784282441453278583412040221657710193436252486148988565042299172622314666673958728550914944535766376891107414888007419629924114223143182252474128625099079938696086615834209643751046580542551727338422306648483299353630354614113999449972558982238166344044066867126407921286794541542755696551259353162991539752858172450376737129655940170632014596924854989535944568978234754275137081949030394333499329793583072714872589072555257710056786037493806438910713197694953505429161184553210699424798897312698645053825387044449157711134716145677542582658782228258134859960471368909099637527388974126026227592288698451794322774706162278976771561836542168692940394820325942042695804198271645852061467380950143256496396390572165923536784895552423972248423406506206961105448697832682485347919454126002088861322942220249873636322514287721000142753173315299214168796775749037651483749477581078182131224268879292689891787564973710472545525384109095110992089295289267867551244667017888502330051354753432936078608366504038353766516738828444175456967255282966138539447317621261322840391194082658384686580881213434618587146405519198089850308067881750445280203270979983793446117441709972648428993189230186962410267782648888092983545208970005411683014401079970080323060107639883837847133678894288310311296240261625189865014586162911978753164102460520787953232574374851498924456779226306632456018843320889774658200752689734461390542763122764203536266437998387836854977349325367734104880742426571071234363613174997012725615894638321111957691007958406462162731268199920318088251864128210494435115625885910011484522369501598306371256531343668220727771496870479696693459996578040292610987631126494970835781271808096673310288620405197408100990863646493301973195893058069652268631431541454063782434319869497185290497155722459535342322180125406249214599341901482614019378181023723374081943672284344891124812141006787049802253844508960721849106998983654889073855345321970862585141207295858652508433140818723430665002109919065842047617076852546692876193747627008594395012080811846608689254902078047006173956914966660489819049011293397588507474372520508424093923508155138151529664407525652135362322153563564425711866446337972751027816320997927861708225149210141515403061683763530652651731474608594786553900102755271407690735886987956915329363800136035852935761920251837387104378893395337617012744149200757900202973549259257089801271532664287212038901795200607675363024497069955996384105681827719419064195651492629179756319958144490264763431135508790284041770771488607440072926742185206837511847144571531231718976642355508176321266198807048507892567190399947515324843062025162783320117108034910909167160883953867782447216895322011973741531136666071273020025521244203519802025782936634960259288931003932683359420143235250285121153471651125685025441168892330320516353627925310172213923671779524511149862951245824183592018589726765039378745853484366926589343499850555566851246514170525926782580534666316126294703943610134652934810150682624933606005254133403039963637405105927572190152716654672651521844426745539100512265483900459462093430202784334782247464924374606026698523320069629239599601940174358134927750605790252745044734140316508335807424801248330802088351243610042062746472912113575388003081476991107028031496607733645960113795160157980343529571760957652166703647186312836923365581715086920441794632325638781839162029052282154147631175715463959366292840190295738438035997949390612892622341845856799733090402609175109082365519256636982192400141973741500614570242471690140309939815548689031682010607810059667008319972565003785133421973328067698771435370922827806152107814121648425902856657235170851194708599980208312836503937051267520563574471677875800275765573803820502965463471621348837244571656218595480918621278523735618991246659262770440142992547360290164194044693411177879955594375638060415486283565820696198872330987359425123638960417029200662259149728975890960944461083717107672218682894364143306893747999377872500472742485393975261260658110185118365255313897328747765592251556253995101132113511142634910776709246325646771763067545737090270001607651822256400265077397092145120236167559343913182295557339184764043054795380744347367051304861861253124260796886105980551048012218826794588814079823154923571876456652362617779793312557612279462268095304012971260971379391827193684251281579849306221192816532710823026262698778425592596507508207142183409336815885352265922456051875994513533122248755412971635659910290664122440013916554615775927902901733673543187865122891788244488282018249261589873945225419712404132688280441164722709861170542466630055243407680807171729576805938444304308960933420053697445055095426619155677565427496139685840879416327423075713515827550320483804712060925914544201791938099989553829064774869705932852583410286170484599176593787955768904937523493570828105388301044588612702893564952080223096496497860088168620242155318050269754712880147379353533214898719152860014400364184376968478540823691895723663309750560100079240852236149839521010027861652187077362377787179883979202521201215924878490248458929291401677952919323183214275355202521129295910712804993920070546786337944975904567651784531693321511738495835620438796294588718712058737011940446167418042995448984695074768164572882061763461565693701962932690378968351019293588286983109015727873606845305339756399348416503922124881205855010660558177977954783391190279381658835605931161238305400061903343610168252637769346692872842754210885145497337189419012309743735607189477246154869622347667920272680860284009601814111152246399002997939944187103150625320081304581913809469368917027884493141478226162220547706230536033196202700314154630969321156016063049660221348066792277876147381644210530773458375192716806179049635084091460978181038919728369932951823858459486316909355738619310385906169798886589167633817822063108673925210089857923506980649095907158130955441187847899044748868812957404288329638312751317106352779320654081182599888130887410622564177360041340306264163167861926268364817166065676339000470409992617991158194704982356218901601003847086780355465261394623332518860148107274636922053491249434681522599910557772529346991475611455015433283091500319683837817539742794820182979686035566771708069875906683458306892503532423968723543033608854360557498409737794757014356325960978180247358463017422638960088876603970612402149202229671348108409836663620033914156003813401592177653149535062228414913517039202433592350342775294567920618113068225604702114351453037349972200624137327061129470330486202512591508342831296877451766904085337048654435548618729099885874737719693613833535127274572230514794021968608393985054547641402305633780105755924888582794009206364694938924383701235779678659861644959687681255906471594086602997306377703579501558061934130333375096701570876304223796583905927979812254705350448003764990106084235760930860048187320323967111633918442359935238395894064489172179232757545443812551561048372131126991463317946808684733438321792754448236618571689486265018734158071373332251207625830829059070975337617140962648784708932190451381890997201920667995479824874657519730859862583731504155081862853278773067666111843152663551350199955330365739815669008929279792651635999262643147622800064005969991446665974452884462929856432877152732751808839931098298314477055457488492662354642352862416005725097427993846144827109682752365783388919777895118932618639278496411195020943880419778940521179601070655093624192696360362968690615774278733609280452963777779176033618971434884424757289876570788875486113997190480131659162915939136476908053357579324367099609670865773714550733810316807138166038476912928473468145530565842489172383380855965186957968823551306976903611894672237441480870534858325407601654966707865454627313042876959264878145667083725116819010506097246745199597151326257706559978459379166619318256614060552723044815544486573968692412533563848886623275333847873780343642410347710877275557905533549645090756732273493983643264542029330142664917298464615836958870876573674789760741279384259427426864560266960895608652770556727263813168855302670903847863116725810170992956831749913537385216400387013601528099367740443232473019642816900906063770452996960002169835135146847489848290857653948405481038996029215853661430186894858841699154143877740245014719520280813824702682413938299205749231989489670684170283656980840276567760471742627838463680990775437400483101981379341556009275248946003087868430569377785857467063088082311447077737640016399941984514933403516593047768893930818049591339155146226151429152135563189906642532059293215622441418207708871456828665743009633283076867087378246401053800372236729338358127760058001010132813252185828822447210108478751038384699510383623705135456398605834654666469371834490714664299192007258474685601323706509569756210022477064116730555851322540373700257321149989914560708481585917976609347856168961372747543313934027570821831224397441972655548965366349388665475877198643704844942954970813647678962692683388090731647468910638598289562595293812934600091927423183542651759738426416993275811615774098417022441765148721178723693658892001970294688564507848824867030069398949204629158452802969350969202368733299941507762799990712542123909151499867511265614867576689270553277140308226495015648121286634971279536031885677663803938894688326024995204447174495536078745505691725708633697858662260699010905868914165915434569736144017338215192249797645222382942424299762268215030722778604199334738340748205556847955922153373091716636701142124477728801467188106781658842607011155717306067004410963973268627447401697988712596367299257836854057437386113933809725864923768174030245423642620428629674020720020973323236539765165415555194540975666714562047206977385628866856662320292694605286804042695483771926977342546301330525889592206694210099829260952087900480423097785236095814971589757865798057572649838054348569287554437179219598720843577056864503882981581834518014480253354193682482385138094231599350180341941194398277080707999740168364440988990236773162338257736195020124304470479867740208707897416957875430971372936911048906122659521132205665230736421477930882932695130696947803233484000994012053775735270637904939360775185760293094085005105106556918215250883751016735512860445823741172012151298238982623518579299852654272784898816703360792382551373744161361055568668567164203363063520641903363730718833573395596309114287230217030921426216989340848991006315775336123977180466803221650080750423497316936563804058602452746185683693375719514923747610946521733485136078649337795294445947113568251554340517596232661838233894519882455860175907946067196654370919783738133653412326103836276202261521793128104930863159937765011530019178231740137991365648155436972852356013946268880743685403869426665175953279027424386645134055610593329193992676466437726776203957688453495563134646218824434928534349268139527600712693700417354765303501919560438081691543210885804236866308646013442156838934872506779396737258356106861714686154739196297830337829656779689110068674754722568314230855134262639573244462026557537216010270544044861467091519249156066750911400184704907961002103330664749235122390545118936627624741736372969954478062252103950848294900261606295609020877929509344183547132066989681838896845170460361562052809030356221574139522236680296641834318141944527498099127701771686126563946871967312053376708768410755284048728513539188617240313194017672318625178095243371425407234130437277242078293720394185357882458702821147115135120875607727873809722287397109320796138026183603469730808066797437616591621065377191065234345875943192737649100029310297948517414958283489025180249223240766944020283126467401466006312119634902529856065558661322950519569487213993428074388259059896654571908620434787706485110442225239296344209932540412169531381626158816378983772542899094489471693469448583204082888000373826772683396317221703184957946586625403369382940321530355209951749529718696556810798391902606699213414709435188871229513932899085665463696892614682174458684565695526101923657274924261000567146070492741960052022929931178812486429630653244998397601991442577354892484638181081343034154362055219208142402087210553540816014686965868518130006370463493416893010543929695277846870446352887233976716496383655777259600737820771282357147372727062838530632384848145046461963944960876214702826098757948838854168904410990788145143026409695082094411796862880956268769733241401233260265907852282203447668218003886715065518226916944076751005740935084912822063785116017889784091779826783632225470124303098101570803534970892201410650733890321318035945565486094925459129820649036955762984617374316557560986614038830316602167872587187583412002443674212368552659241472106282680521049312163723160202595942060370599443977443305696986075227657508092164889367074466739632506099676542476169563395162385021827996004992229484285375165739304205693766591795487097544655577881261288408401298415922145613217036764267080520893374693187794370259836465064487491868459951666279436085235404218658569883653002147128485169762222219243274097829109959532711993220230069323306547204264385241023648226700834667640811550591274811424999081555072189930703048818067182110821285150416602539201447739528344087903821617371011956827285019076300688835390640088051681409243437514187553313918776481112760088148908057125220831708907396512555249776177225796068716622903754199152391752392462367829188152085651924766110330708542902482930906544012037106780840445261844836622974979676149439300617708834872382056618283850223151898346230336097635037184265767493791473450233976440112666391212060172693181410573862108482407220100730003168242497547370262802886219853731231544732805150840843149828645663027484968488588849199520543418540661723053956848562853942086951841482996016911378161794933360653744715198715595332880737596023638160685151457469940343057561878664162615252699160960446955567103246487846696717789351826531718527510435279869506608583398958451327718709598699310959344350099681607199832658713880057786724888046711539813655934043363273868467097708715226754766937778006197335641881422953318303476429958207305732537616137419112834282189882375917252802082106042608286149735252799465523334520594245735616027767335704609716418949762320398431508688386241086928597299120672324310220750107972907780538469682622113316375422302784531277169744495532159458708996876288489635055444677706376526469433551746347218199029265504844897014537570115161662782826897265218255615851539822991537938837387685791655564251077662524500127283117203433919363352050771036811860892387277864170784126491911174420285887488367283582816313731096947219926862770055380175926714956537650760102712693776562901340829936645410500029921946743698479965235240861103725456441409014888682577167439151675006186841405031740555633635636247006052853982647957888399148340535872946232605956626909176890728187103257892886884689783567312567224101364679405615857077849208256690673197488910004525609492651101774871865048501824206405801873128150069578100270992822547690567498346643943398706782966836050493116711578298082547375674976012195086188299152954087104613044368205095816572329145349957864057204569111588754262132029884637573496821979100654589997446795562025789815183254197149162851071003223667680852112483011635170725349628452529172831239940638488372390995317857557992754847261969479940943721686291137758330319086365949187037260783429649273921581453764889770750127880558895486634462971894046342927285853097230321487644978157621648489510880048088844500236203081312999012058814213059516852739543393944636968699363764609178669618713999832330741333064370651094578555833748233598004537014968739444679553628790655618313736829001782143367138628378982742274572872104487056858935409495586825109570105996088062284581434635653614563435482651928437493426203146266971882257575169447878180420788227069440883153275758366268568842594121300291228167408002841494024874224867655545773455883061596114373524462785685221124086990893491586215763594445602661406311533581456898081653139552033281462613050731043546758171398347733776097323685416704459457360732344101885827163977886122481000592497023560176858578218723808760378169690839784792755170453805100990276031496124295501063639864130241284729433242454990147757016841897857568332453934202825685506745566327418320316619306278688954147993484423339516186680631791153104240725715028211485134398500827587989755362709236574630231568880928399740440152171712488926428746299687207727123371899133598910035470380019164849895388120328851956849965981599789304615801017588276218669054560697175619962634509493588246746855400376185161434749786035432416487075417936435452471709423189040440891289099266249733832467838265217766219194402872997291810982907008272377045720531902635698030066785512449368090752246946225671291783718626065969371842796228754204284616729363398842907866804722522236756881396422999377413839542966789524354308567030856847795986117085944581043463457397180696588378575800075028709461820828968593213740606898418562723365850160901807775265230605433619932342245868993457661013336609616557110651838055094891553212149753579388450035048895213733146978855252687393325197466650399661297029222552461263214959383205828131002949231749066093571980046938431834098259068561739757895430674654245424344742904583595344297958962434904290086812435733029857275327002674542016204599166789808127354003043431735533132417896183835447355211543311670718220844864255648259534279970424311715433475723464118515919081227001762022549596196554830233859092800010532790191547404460174845907728840206274410228967530133357864581911288985581649277657192814485969944229488182795997037838176985360829301587673512669520152242382234365827515341587969194387506837345414521322587290202061433645899028417689572567761036229175664081327515696123954950803363306221586386148087257554825439561415566361558274480216752422245986532389097212265397896512460886567330608649262183486827552050946818661672760049021903831320596454953406732316091003868624713314360955017627458429046941428951441271987164054114494954648204517696766469510513054983301887503934366076672434967523836953113865721195734134448514401592546294863068897960938318090960088114632906335904020169207310457962329093270496519182252149550002467583720255865095869628715548887766374343214123544870490044848489572754562097317937604046438846953997958168823836551495951567411640144425600411310033732211371926796735700125327495640128227448992526787717331187174793203407796773053865699989528996373883712734264047570830152555386768125026692424502534737107712752083455460728824746240246106726351068982135037866644220512020636840678943907540840330024485884634926359818324802542618445510398203772524627408845881301673874003148939457112436419923463507997294964361129691063754189195724372800051997028735168294015228656589759779606268750939301952343655127955127410513770108444842527013009339609703815219363137978149854901266056916016759089959038990565414942105427911446937896008348145294603903167648735882128015612678887799358154138067556453586155605533675157235580748455346822092724054551598823185170816275908601374380919751245506494012125818973257088994115180975513528574230585341785539444459791717342476898011899881706398502869210237144391777245167094884202158926820934464840461293305753215223893924019585554576956865903969146718037987434378130534216346025898211159324339055621291871801458339334320744542461610355428003358536354124199502116752665067585911157524848506383901756047091110627508231045011457723100020382687179172060054423894970666554618707648030978114353561977552412112797317467193906508872964908907517429906209913900485554845340344956044174733500234661712194558710555762668962735774575510235992784610338218562409729543818977391500524065717063733231720551961866713832353295286359272830123296781477279608243431838056207200742018288154212788342052348423375710550301938509736826892825583970859533066012053356769260908379359676360330337027389451833795297747424707057887844961540076637744533793721828827677555552322402608949974015503785925872574880111618755607092018326751527407455208586283874219282617856908518367774784694550582658925491134758736263259554652931492159499632124954670517380693489926502688850605459515719614418481490218548746313733356913411194194665362443502963133387750069224690174505196949907242946299783342502393519188706471772627999026085901512264900867891064951651488450922205346986367556962057186136541954923382501007871629387523765737322195025798723438618337366276835878741537393981012366344270619617121002013458054544870226780974899873245757543713391988382680074738449068116152774707831162673584779378667204182726451813788735484232977927693818059255502936218295185243736045013103735867538076318299849359931874941597858488553465411002139328090555111199343903395187689304823504929983074165257746771373953835052473335229040351968597339478732920478500750639902617686669075053317678100566175316867382258549732711291308449551946612415610092849176745633658115548401561494706034450360791935824653100967486032452095347002283463137356681657293148620032229111905258256500473699572291070669244693004461218339507328677105946408466028411160049444133832261340265272753405100905212379599903236917054680203258476264361885154417415456883024724917290168425612183503179958882247563657232896981066044880602246460983459925780780370899400653300870658709698298477069002060363328124726134727471725711680805973466974366425527132330725395876482553684561369879254984921432095756933051890868159071350660872605650476860845073515443940105801985485858511832684923612787313279893038374060364720777826270116913851478548946028820801395551793322417462979759586430983834359348140493065243482516065102235906111147217909832315754261251270207418678994114964072429192545361275661145735597905085020252128808469770002328620339803201291105479778362014557953093467031128792290546007336541485410411498443611634384390906509501193728988207141793084500647175542506143090021009283045581526310310431566365482330725582099113971801248446892534926736430316413576221389008005507495385706427391457543156301123027179911228732899687733778459725685964499548164421136878692719960465816083670629578103573848015001693172391238261750167885092132847909123216931135346691673284344481837115811355284231463784098602495960022051189193328680369130280995436788724166000246595911364721325165827736886074988503721784717744937167607313336721920986093331581791369012938880571347471092014180524724484410426059200911928181727330289410672338646590863195289665173086482138959173141943638625960978357140005434590065528244430355208472277554501824552652661634628472409980666836783796971205879805705016346950901705625687037955315062082461382846806731705384394212232153166675210885659976171084440827954617296867980864382546807761027516424832869704801493028294102469323722237058005460375055154740933737343893465202176374099497807280912617173791528330620331956712411400593192554736086665926355279055725188975441298338225443934630907744167114486454837428544104385080110679926523903503240359665248153411181229818629018286680394598339551466989700778190721676600757003895110611573344823210427863288249262515338690463736450345771653527359669785051750916782947003516203090821252513909401134498124661739895190500632803837657261330596735127853448240966965814469639864457114513024314004404478299036659682102885447801094645034175013374014710154858274113210651528936068648741453669219044978667432498272795308451282384560029597831564566679273045830092826949784048559798199063811937425808600023973607471548670709479793975067615745422855066774535790730141197583664553923633045049391243801710955313132365770575678148218064234846636541427263416292389509511232424786827637774568628837111225837225585383660147189030137192528906184872567371634872010730774109003892145137031576565555215852212063802898124107273434388490084277251573324608569586979620198791451816781913644567499477197043060180880962145699900924602324096980053157069460415099509512863823636169751123554582364006196476571623808943754350869008308463945116971355382369743134382041089001091328813717844651724671907562483882129999042346750527099170086166875046872235584558465884835563156642597992568938808346333423405311268063381679409935982496933414509546348746258718339137135177952003937475710799226224781577983741164787742655647355598192808917996383586667004809759223789298638324061534607050950589599108089147671260459828493997901721780068383228099655005958876130233923891953303313606384907852749943493429262410850136893510164633285597492552645805278089467192857561513605267755060330642462064806930066236385334372955651030733139281522501517807329744191714891231121447241703192371763763836120639016559383870345072243445053040337149803588215196089209968662319298390960952680282969930089988134223633209957443360869551417498477139880758412548725300663859038387387182322084338121374437781427204971595224386452315761418977713064132201430253267424717319839141167950459156280650893732454994088156107391438066491145241457207021911430163985538867188137390873491023939285994005009169615272328790521656614004990845758289572273928123814011151104505920865364128309685287880391134811257596356740945230808921904205291070937936338913821732328122252995306155008366895230887414499217759180798625880517730709522551921704350076970890127333339515777781391685820433086347877810300540872173345079669964645398993096733493515618384650467738100813286502919703830108886504262550956142356946942420168491056367901002769648381621832183279167522957627707131576261519582941355363094686264798307862880635236279101549369169040055704696426862365683139967299301825573770570860284023327725872403614694964022763955762045338194650100108040664323273478768867956173211792327930961486675504103940325089370314561499568766423530641155526712202485984935985939356054677607641115646469721266088676318401884149117214298646750175245517545789286117836720289102649994613775307745321591376245444353085642001729954471069720855195460179138255918535653739896542340631967546070428925965973988754824381445862421976810377476542123612673929909679262455111907988703855946098942465980762339240101128185434068650580679901520204256121918630561446731746097886782674643300355780190810006551640140214979909365011944448554852133485624979345595064809469283415359366348209281212771454079858281073169613184804978429147275783577320292312094933722145864265344051538761582706620690359800935324905372625200979405910985636664993860439147078041075405689954370940873578772229146497983003391915631608898100298435887295093162566223571760935557965224112135619447510823534129300306111164526808901336312326932972270853391636709973579413050807851161498906336850396035872080649284794502608213012962667807726649129942086415661468685430513752392858046108175026491596582670302159082954055561986524347520407429681113393542945334858189415162670074808076044974674954001577104658511740752703398379620761101471898448335603578172851002673290026745261786146068658680145197914164654981269594165305741275482915613091811007016189707494373663825275108188304919437389603997141392942551865750289859595005865064852119376550175650160490170976710613650456183728822235965862876812136054442464174491885615073314321228646870298181127224373230292844399294590799987933380608062074225342777475134536965249721740934166008023946319394394742776738940366284321414649244258376053220069832908169004918776223086804325376096573536830580138333463747969865992028772082323982510226107254938657270011597867087488623090538905003238441900543009496191551567011792759399901602930752006933190227565848049334884459915517860285893108395703147780742777674615924207502020804879215182620760095033135174988978418748975595472683825034854644266407401605884717400637765183906349074611395935134499392411519047754198564743171565045246959560266554574284776716747167708157285518567982430370848920639730008000266104835527205192617755595758673900221695542495630090663243982568344012479692769641316532323272568035295512753634924808147304593566346344898297459128972500443051000680216783358344438930597213629500459957889473254037454154825238042410986498579029791027422424151843621488509825313733973148289542870017871966612007514779195642892296103326014500597242876046841635776724328727934057319190321253523834463110388516039819362993040922585297245634454657258701139510125031174588589700584005909112358082847565955168453447529603229985110910019821889615000351594335209960358895943808592074695119575360871689014735393368385827500338517713560590975107341329922799290844458792477374453215191561083655751433828071490157481978170795918052917441893853253745401750237016809572736681402748824040699920130930481568905169428782241315103581198969344498034570215435849642303094040417583435236737067816930389159094661456082498239322319799791425561131500586466406283696648161125629309983190348528504891553536080987817646889843901004329918018962573884254440788806908275960872637508240066773846958139060952048425747718000960709992166638425553584700970406854208602948184490947645561217494481769480210642589756316453558057366788830988620888783684863285995725612358913349189471858201730984754846914614031538519136794547728012438009590410852568577238717110658604322056128664230288355200352193405090510217464561862445582644929963193941166815063393882323985774493043050280762550183674742984712364199207160966470744382278264968194556205368799649235908679901165626644608761657740522462209981249818024879579989584862465152003972326934799894141979313360872131893754742281409003048743155874797474795707246864845756526539546666160930925155274540958082779993940088711715214204341778951303964954109499239523729158398303420677905968668974014467334721692477961955426536137074701815984290132781679297487317984048728506378606447873106423217344406164704525040180576471603697392392699556512636261659128926423352946027576425652800524348588997975351434934051394212219656416211265257825115609270383083416621240065439040303905374431182246790196724681288835713619140796488996105378243284105924011255805990241102072151035732365994727579593521474293554974566041429949633959127865185626780694374852403288899078937728589123415719225749033751188246806722166255292474644670726078171705351241786472472344671788644473197921683440219213825697964659864090474936155729541780786440894736674621896195058744255246121825572625429562779837870008679034933054428050384602916921908130262613411003942525755828421524356469814212138653989496168854407441588499807582181884609428026261957290104765617526369260176422350196009964300666463738721792128022137015326250800326240579714795248603098573305717005925650896864208651405958577139694081050308075067175601539709886937266471708463202502032656438575782689121607552270848838524621552908460463450654347318389352661932582127879476459854999724386154456404543318568389295067912611610801671734844280406783595141468903350273524328188914060709959525565951304154338179019005870597079465608373925519482580748791905013457692436372626117982811618713766500522440339610422351430376744342785179599178696075052540520624454044852878494092096126494379642550864856772787452640054930741288116801918293253593714086759471141617877612349474213871120111291900833798836325825169119086040099690623221545509845360014833057481473357429437854543306599283416699458873951692689680189575203709110756937351279034841858697870850219144740013951182228135024746218549565563262830934768861869127967887489005736195101983159217090677313371880533661117731072664547545857830883842808819749720769053624439717764016443581686016985438776488201336604720017012065978201170647802202381139875306279686515075211493485767692501513686299119295912086210131663117163646683315490602800191107468517225518774673991637670335523191758364238930828542924386821430442130840274659741061688511878180397637743604059501745799704065283316760810799949721296148405834464425106483873920865855483354622619879557921081617848566196010339993149514726332759417990684952501222782926518397575787024295147360771853076748903606891104674447346142095471868585050709871520675690103951587315044398356204656876561224869747505543828062245359344501553352305331406347680632632868958846740264283306116539535875760804801204275788683750258778797123353324177486452965252232593969415120650521620292017977126445031510426973067457240519428076808272235848179826371239867891690511200255672558086499361461400539331839747667122870798741903168819391969555729561788014512196238526745174853499453671170715280563970871514963267185198218390956240806148018312701338375845114379519766064946013035196269427766929914875123947004666307382273070571596877738797244670479402185493136258759006283378490793381477564539297988631841462835790702325605219307880638742103919983983611714397548667034512304911126540978111823404762017117358364139305495809929771418626231076523012960333456200011235792993951867451907094231937777225183255233082902706005855935948503841367145707040503531544509244915382848740424416510725736956614036279109522731373791516682203155949138086564377586756322304920167902534071222954585762676909065922994313672309080936255770332310715035861633144561953651534069197557337236211595798597114046470025909133496611396409729116368820296937812430645638364271085035376766710012809497601338573328014387681492346028342661922212930577448378358555857332003471282077546621528760915283364684962968912587190002052204210268367335272429624028238879284971444986409551507429190579613173860989409458561129466302658750360220315607328898962220305211862714987658978780028138798810711872962595516436848985656622266314944953944756855437423213658105288598511491663529198704281554273174906413752075304265165426216599768685477645494782526765848445148178439109147578097717942017032816187198927356199187404207825823905086766677917997537130748965834775287670748476208233761424209149676266052243357536371261528004250813284649037576695660783283291087798001000446671435329377519274909829681257654546510851932498018970684062079264156263831307164256130724021756921572332394011414417176185767027548150296963791836914972470918136860728945533988217098040968181483862330278114608631958139890769113483574154563637412915439434429338062282617562081871059110546013647692122686685283914638458091428258016428059227209361088970099729603836577109510821602402039073110532354805493405111160415242122282378107069482378631729273056604147250725418170689338429361057545803581683160263185816991666680599078002098552797886896598374086124193821328827247702908321728470834367365149152077873044493742980431897052081497139435960796942263847021159451233993382837180965728674694685337744004324745952055733548448458432635361529626844637419364135948005344886830044846317684930335015181848961748358881488316019437316545520866706225432540128632483009477727282786829502364677446657979908516335144905212196048385967069460832826299645545205710810631653424673041493427664342151034471215867622956146581156258823132841855053842180237820041762645486753022846548571209622031038435693300366217398519224107911306575913492987356136040492352132015540429789221464465124144734362177594261355128362560278532642207441493549844516304853657758698685329481687217204053804808282737252019735693533117113944594081052417932304089618178110414654987762054584618348566291738782935072390189452677929664852640841345492408203929726423810859260475911540041491023872732886013127339931360073363418313156889542633026794200852268737757769222840233080595912568174766169131857118803439843578583398804218827529531557237762731535652705384488043571353200788194176182553686417591245283982444709211963806612479436960336223795694627033910349924495923672350544986533717312928276503813567876087539333059028700525630923803548527223576582269265650076678710623495955091172974572253392079982392901994306913944323587960959165913487614473046469147628752819062733223493255949713484935793953155024335327041651098876567218845030539434955126207208043235456532878313334610944786584291436483428131609028413012113896868457399792685345634552104159860955841595188496817416435115652467730341911480404563619253635781802532321233006196503581231364637861186044637951876328326303133670207638303923673834027863060358856738865665085888336324097374531739377407216465202352255983652284196954000266995685699250942116620969508418270530325498346344050890895130764825106362305588794764529637609248579226012415510367328782489814695489249833939415550806421093309029992979773095582523825691039524099531881035664950335532649470083589847738461776018878766332264491798151940775840889144390708118056849227415981988018608516240692660812559488898751468573091743462387690875771311156749558473955027573688211427560037605174644867208775685544658420471588817027970137222570953836024048468732937739986497114819665815947509420486461916458895884977116342615334776939204910307998972340461119266340001652193927451378011088141058070363766951602381076747887550824838505210677046660867536139983204042487782844366482263637845351454778596190830309313458181266153538714480814001448353544159953592819813597005873980233347687355066417799269139711962863181611120992871336236892850829790704119759752098375074193376671449942239161484741192221063859452123317790154320282988841540437444802347886962986641229605730770182435593774447472831256281663780776478370384764822979117899349471618681330404099541851653713907519292899800876648447067787741559497621849973383540265294957916208228075746668219577905170665941375790107196395852409587635850431468902388737788110614614104471410732582112919446030249398740597869820403093299355372522177935958721091063180529670259972742264336342821792758950254151585720523692572613043047006194906316050219981292663128418448010954738660857981092188429190959274646355643457442028975441171126451434140919062560323372013825821800063722969805168065167825683569101598181637975101447573034122334494464196276906476804347431216029377739069509535196384153017140127046378564748322674888193505557506408256995476445069317918140334560500950830904897751139203113440554182338267799096240422650999353763760921567131137885595780548405265037895440508574719457535398196161288844876485579344169916723367992921695062143614028556680852367513869682060069250916397681787374746831150571934588870792113441958897761390643075220906555229212776086588731721281711108788137429830026274478421607824182637685518325763982184961803398577748452976408088687505877662990200711918494233082464283157105529280034030838770104273022668446069058895299819043749553444556447830498235979119517838157020153414958150606533316368138241502701647167111138892995348382373455311455813744637803420103924554805520365458524757034884533633606898457298710631065202718039286151943146607803415013108011442203162740120650183295324279408306342199458387181774122993970149949660998156320537606004740217600825786648664895120164834756562220092739736211624263718138174336807409967189309706515965812876927108902576376378088673937819100669507620238542452803779196163573744441618176002810873661788852202485875199817637110547938796450354325175780394749095227038585396476117128297810202228749129260898927024651110916777521225363315771072868257236264551299237026635506461083326307549831972446933550320987084084180174825073741858621994037297493277718720387247816844256914284391960776606457831411513333332946267958553596247994752492759688651900781232289517323095461289519911691187311472158331517480301595665283104754062182246222786530150815448431433781931124222637442173961979082531608545114294561060763342166135539253337097704897356940147864247762155019951590345232363247491997224564613891657123557196335636987720600647636271122899185923703809549354076369457546084771211295542015807189770705971487736265351547607788717899167258603143412351654733497698015205824610650496637362437361444998862959339365443763343470271448087232371933256129988698709910007774890443131225161998085061732375600375071393262664107069349640219740059490766438789261203551509022656355401234467314091941505410469808488444143066125753580832483550146544882665529514056666893457915378471940540938707545709425209716989591405786997829695540371109348742032574219805568430565232926764422855769612570723008178049527405304634392335419493165373262851571586424777252530061247647704852235676096024046149899567148821139506334999616206459959773293141708139532704584286499312238937898280994524733749569277744166255671472070141166477280898142609074698460430520561614271470550581511373088631273965696644048980396637182021439972824053171049501520528640651309458112534940360053421371610699032296088133758072899520487499271678448200586979404767954318032550928419960814794310612291114289035190420791879469290908136525335425545347383731182855807204504007929441018336302653413937610232948803842376356293977652908251796501390932490451158260857150934669320876820006065069279662005648880019309174502330047409458675935006518876561670982846947973893587402847087145031636827995451595832836104355297097853809119150559541829568638415646410085284347101069669958782136826763169177958707963720724489478346297740230260115133856784177712553964179365129828660040812685134980244390874416313163034379901710679612291727095233132195676161641227541499935811557537035736198741095568312869144613447051043685045978874554928252814544539171694750250566007742532202784351227488640968303954208247484810827942575385507327464958683934393036835006261970406157912143202495133544599580407023280485087080194836023037475967494557463723457169797260756067773901022562211944261126183578625375688950206457268451220881842301048910391524008340907828498638714208264433498351692308171219945034441981493088561650447285438903229257466278677663635318319028529482090914997391818089119048912822961310615932763300513432800766327603997678504735820431027585789458047924263151308853987524587016546131056907769738890702143097586045697042631811487321927339112643304130760953103531591193338409351020143374622133774157964186722131138800281748399752527314715483199151941331707068826527341058641783426020249005103254614407852002083772311540201553219685551446972685701405491485925228463309479267097060336286644801512793597712730126826313316985862969261170127009897967248494220755430920306786816791005913763299872155817915905247458276831373526744159162772398541182065099576808703996805807592430650394436851877419715701047112471177671453280717073393439155149344843544700460908893692004138372221292179865674120420500239071808616133973687734164757660012354318139775439324050523504578078986340908932551345142134891707552609806372333998306949885901928379582213799553315988379213753201018459800423939063759300115809433551638461846403372224199790524187827477526407915520776878000055035525954373368597966612411390573021147805237524557787204959232484840523500514935830433257681368840115855971349966477151918329002581801927552574298509148562073418943681343582125086841722953849470673799481366890129596149198288229753673881712951586324513915293018589144459056994670427945945585717954678762337756624574552715611533715038441783999048980817490745514157383125891042174752674577123694926925735315222737107250821598043840747492137466998856659647615772588455543380005270469340745897224715007903367098811474688474975575535463977989317614260409719972287875313683830729445388599396585888717507671147618392486832285387274313185361358466065529864448633996082819250685313980044021607946012755603532538486386616745529521634880086400036567441553386405745436424847885052689282055101560391380867677257969661098127357226728205677591830744037618129637421936316550494643639709090499486904085164773355686362294009816210914478679845891018858754460211401788387796471063192508374920009442236674817996046115179223792329017413296443300701576224646744100995844966919678840752980564558226489181681925021761431114756260739165914164153701041922861146136924978023462201195367847165031413803762959813174058583854489591371650073384804706257544638939988241588415565985743747922744105166931157094110902356736775840974001783442506276492051598131253329890258639672679946385225248207348535492562897689607019840608471404614892082346502640489423401892217835910007223057107778441919951395617384309385080763150772315227152196368885731840789494171876346590011442048947659323051278574596040676940089218972620857724359451835439425040361830567912551848110013438557515292824987203769059462414533290962218626976977477207170012341786397133010903982210485070792595281239889995275024285182612342157961598572295367501398979315165835081695814438363043981463810499450396114153850658846841043481755014533790859276014635004813404506883380900607410452686087522560697549704014734749586601030839020780343854825516837102212261882646020460847561997441871568030537045244200943009093682298353843600840032722627190894785663329071547817732048793177117683983404844948219188533695384898388661308883676044499997013989917911343690439373628175389558179510987353435665997493310912146253306536824644077035901234439110866486590535150097097651462902840435983268509545062633312092974574845083693421973695055072450089897723981690269256313545285490862423195657354004746197725051521911398051554887091436818267607807390332893676056693305536430902098375038959844299005956677943279277498023136609804693357730621176305389691360885585025220917763020077522358141122426434210268884187236788162681588686620860941882308324410699300440431475155697084152217447963066721439646425908546316321395922665151938702725858540470024967882123228227852167349237170985162132871298624217951820284293828549011266468720243498241375627326655143209048684586545264455761826407277454579403946019555854484879146704878554124218000991925444521114121384932680700847153296096283484686229219020884459674673010762514602182668432822063146522874977259855691009182262927241387439653621037972989380203189383979356095304890979014688578688915098684105400671453624783926616037051087967425741468328457104825616912487330703510252570949403037506905834883366476922652877449876697195828770519888692909848026763740182914483567583562633106889237324826404714504973892512643715587505865813475566769970266141352613449208475087447339081426216206277571097604497310057067851125470198954701852161242872132440593546287980131982009859699824191137168532743624327258150123806204103001464289217594924330328862472686018654651342114746065010188261209635865296842569749019343205610115582935783200313630507850940321750227964840538605619110878795942222010286023625477161254037684443766232778135887029472151293035692800435457634232407816183242086830316518816744043006947572127498131361229531745891125130406478626840429471251268135275311656066689049008546200898497231870957812230186428467401190754139270620367602078534103678979350040418834685994477645941880034685744326211124241575988406103239797162616234695000857556447621491205191440822921750637009127202764019269954597053542203250089999913456251003109309768440052067597509945303695784079022802060930513133682354184554266059410387421820631824784232113376608257349115273532900370543975071776773969209292993931381614122915168006943058286740724203216275372970459760999530394670815271049425009686651591734934826765025145706407973325071595809589052745629202153541723453683671148605048155304367723195363353204255136492644283391211862878157342596232656468299552676850709627733967952046247622017716762900704093057998659057809599381193297037458271271444524447231203798687578582725041673001121684138430148396018102371919597306144215957179437732287019791975665634552731508863965340301535620793621168859233374330443693302597158493981688606200779844566298143562272733450995747781253007347357696099511776571486290860744794920160940531585874889648175485233796421466064306309979217958229833002752217680464512916810746342773122753698420332230634092039207819212862420179044392239951897374392389282286180869012531294439545594626022987668090355985947547284307453191316587517019568377901521783426583960455065862822334703925556362615142334288278282448142049665369751939026974352439224859362867249898722440478303827960289839508951193172891008706720948597453635711896859424977412227876326457781152237284807646504781342038311276757592550445148891572932801606205648063444137975960437970047477187212898880668178950353799324135006971100432737384236523006051578692332734464325850015070450113625124882831885588288441394663553726305200190889445159366753544017270418523717945033681581494025737398348617315810828056756912445480221387516530160540919017226333455449577357206881681107803721427751407060344753870774584321945802652905879087849559936933035743499001866187784615429536742978613202312148313723141628692457270292196819272395409110406875688125933399379670297337099897102327835243282005021267873101384585864271685018069968034170041883677072983693784689317819932124361295952477118091501700854556807167250081644076430847702359122804939277456192592572930133138761798649821178991592073467850408803807435406877789773997958301180470891747332536530645837196524567366467253416548256649868120255107778657768923240017446162309747378458092781913394924103547849739527240294594331075943745356561858732572668668856876959425799946487537903694125298316684698234018527424810670878342774245644248870846491117348678948259126961158399591119742247140826380623094498424286878666328173773186947352791954988174887293683932126354870657103882463414414336211690351170915103359105558948359402008660138823247906353638269644530171316135983676396184712786265235729504346157372147321749354548880269079804975965724095159719620913379671970983284001276103610591396192187247352704310274914876289450769038211626720301032373225852060196054527382378815758143635087240212685353055182592387998021294156051060735427494928079450800177399348791012341021454442107082121474820000058414485295807300374853650926788656367203414758473466298356725124519118077529240112892595134147700298238694732581843729371936948615881582772636739604846078630010677328146202055864949946949533948760837581932587811785728213674627916851851044974605481571280094162512878142116164984392160642205990586769729864992161784315995844022895607754455062589814909487152291677607596586610757851319489057248038127863719604282172229031291713152154874323272887655355793595714303093352732878745340513593082320930669668395518259196980931780627172745919355217106435745434580608363531182540105672409980031578840387197684444140781083473424968327547723023580494143274946266174081681214502869600291910272516160677559394397250770954973024718123863160023837778699704645039021256438794761739123793824034019947003230087341934232062556559400943455313131606312745473803612353768481676742045767974850111537489621237304483295337456333984359353601756827383974533769680630651215186372025425384928530489120187459091622418976902447583169314655121002068074799411897609110309721744631246317032953959084227588385468697112082390175077145315891596707058171169969741626551861517217148819944890145121891009362740841713910556538851978272676690057239619946636993003264622364928093382034614769617846387792419371044641108040393713915072706792721714629719968998084818225471772218423729135808903033616636181343942388099531811191263603186397783144814846369471824501367493914849728685293116205167313708534550133870800044145977332338288766247981562006090826897430046480426961401282176972406328277260358944068605581072997521331372623279298316728354603213968884176573750291590338682579554757862356747689277683389886652530092066120827155740186090016115608875986122480557668121697295978818308366100945784408854143077699103956325509063294262031546974654489286696924583571806055002723931554152935179393122527163098489366761023953593244035068762705990305333421914083156336003341343543903123271996437149505366113320132266210007839578807673182071879111485434870296336588939093838259527429980144222364414047054392955901819192627846194105557057051032659108188690854562519400952070938776916663794994970013488275767919546633621927980212346008340937099488576201464109971827591447002945481026024814659029042149174374634332192520889334898928711564512918397980965783238483689014038129855185083146211596447897688570341013936948371936223314054012038788656606635060412991122012729187619386518350778504313434207659545063278212572713182286034962048183663849612973618167595373724969143663581565380776552319882439188556966464307486467123618217642410047718114340066449067772456038748657293915389145106521102593360772376118458025388429263668404054823157435588536108791687749439721095490930705321906729347223776228310986401772770271004006696248696506476850128263517573455992817763001807166607052645589202038366495486494169524168175732271014360714203880213190103777823244371963966960557471307522220204186363989790147770339999203370562068563466385546622998581755680361925090327604542620092774265293985636128668970019697703709131216834660469826623858306369288969570824946098303141538953714855677747447609863277492157793343164051605336937956449443530013698980955162405452238084212738577477646051957075319686163313260797200454664536361299400470409553747209252618131663518720247179962843713034813819949097317895922671968682090796740052786459393888792665287338601591538399601791209219838762175842316727474947484589069366189789354450611136341204457642248560960806461556493746063006299744747991501277559778999919058144828542917640521571137209671103647982683648041572415425909285314743935799893352702991496250362784204553897550337110383050795362564798655755156819128949915372209966815335754008658546001591026652980015459334854072120939146126839477816374965351965742094263225511880175347365673649978002590044478206568315076251573084627436754479859125835758889538251204859677484740047876382527596652619669567790358307737217820113211068864573523091396438562027573208346017610097411616906199220442711270263501797260327110017140777100104395193428417763102206402250730008376998484477966531477182387109443989238795240995399977435840514776705267076887602939512560885089620633810445307341500486941892670072711162963499986308701084323684044035828736040988306931842259239628411634360557820473454032683890368737700040061853886535471773836029093217649606645473262105189523854033215121355684490618646909760699307128972505599197657358195632423804293511440200459444888243774661681870690333343159690593486975684913487996497123831992590943744560412789713156610871545627434197525446287249320252821314170015146423051923537188570957903789396462601612263600871437026285753714193611363640392645761980696069029847699282422800266966309849911418059822102745992730822110364608528672024441013868255959479534746616836748928866774852410008124221557115913479490435414614975000367741697504245865603367463686183651892250727374657584821705915031203533518844287272325741369754077256737880399378904190210122075016365162045395496084706177407854785080108846826569911146988265210778598612040736873592951745597402482381876487148705599185105412967497287954217532320319774187794527007736770394241949362597233087847904198172585077909231829807623639032144085705173087970442441862262303120891020052374850776081826695607968460983277195363050374942101990986735097243264922371530895651554801263311592938340047176726198514492342099339480974277311344785500253302543454507364758112606049946839170669312415482231917127098501586334958575006373950586022940169224941730598434558092096812886628524866508808901775219823223371302591844807454656110437838323974049758832788853256193589701119729153138196484241822831385370933365097510054644067032336779804505660430552115272121052876065095262439736322977109921616217240818133461273984981046948199163737056845052043046054857667225641236468393409157991935561270319115654997975446114433447653302354522159790960419887373245524234237663318281999603946803469316782738064401029605826615722576858926741032962798151276511849100969741553916083938193987259389327886486660538800421977277905551872005896968522202845084729898322735043705311317752678492078496978240425035620540759900766794114193040230135308398966045740296689358276141118805221085519688838188014313726463256080014245501165261261249676363673216987627480851440145762671925004667990088112671259637392474034465877508542523980971587946134064034226538392201092207614542692260312806984242344625786480200887983195056463888146200590872954641694533273662479217157688911525580349163604408028216239511635153017190774931558446147783076886573418935886452490140266623385574968600650612677246557061055802806412874004466544697424761881779823947025701935115254369199884559347216609987373670700021972396383365616978961188712457276600475599172821495696317975550047884096961550355609398346564867386446881285937362657634756347534263572525573391091636263702329863097213900255555323475575677009930493186399208065319667023489190938629862746661656242235550066816629900563268524867074266781831156955001749267791890870581321576176558379376476944364645567103318623254839719752551657984119573007167405575781322643990790961783710162906532739172835006255759596333125632123502015933146667218678572704412046030970876469040365597110836504590104603464691300721304115402668812968148300606510595109131066675819065972423808525386831498158136698967910086347481781435018480351720042457180187445140183686580614767329338047958402289928956748024353225747524305448098008239940508576015933178095542463390569312090405203800321867540004159821654919696293765852420148746560265240943346762452001950140708148364709568223833655528138053842853661516156447437941945863181429959335046395715299841369578055588336322171683307886385368357430447761864119526648057796234149136188334567413186061727020126695780174758829184109241905760317660541778675908315218948246363371714442712098188223838635364121101065972925518763709256512597965273630692571826087761405168784622202151587732296184670059601437209815380787583085943602151168310056422360758252237621327123056080023783251737283293925942575431476091261378762952371882010580993568396018206910112237315389676553891972282578712734411428865284839749005939781872486359371015488463175186448604157894875997854733397156160757850535653746738800000290772830154608648032325394822241140365470994556138590826308004085501340102127949054390455203498632355142520887400713162043526762070160678557675823942978683075452581346540273456180406025737791908226189501650392640048876357865932631693946211913815948023726666697736872490165989441437114979592632919898691466163854794730195251530481576480337317968634445646117946610052877222727837352499197195180434430368978414594771026421215754091712665763792470709236366673641472553592986003897763291580516973827473724850815093971402171984158585023649156626117792823498327103415854464051246103898955819431299617681441995114873559003516094687245301793943218651273005407623941800326168211492579588849670419559745090091876077198019793230789846810854869526375389457584774985462698046217570164436678856852917425660325274173659386932376022573007468096909459038031427890028759714137689078133831203901169362956809068171398861047432637224281537149353096309345931250669287542705823166431450200075890105246643943261593801270109371414325538485894571599145464664806967124337649518159018210711418633514168813343046010331505762113759014280746360553689412762512023782424664277767751827608510221004079819386191034738978548267535478654250389036301348583051836974096080074726648321944598660856320718430111883960130445046126060452642982453241979592324582723384131135938305439701476838974581596074194617846651711467324480161186595285323242852170744624412297806527477430672602708251088293918168565613410447095547181559398677230721586002441020232518027230992144399306285636070781691690039539021449144325574694717099855928016093400241287435394861217169996194011739658766250544825598490193929898093017508107393513334522349278506371951870641687062831308786906510365958555878157860676810100018422790417592339492659520555982456684859713723531264232041561483361499578751285194107609194708168647509339158791882977448975024764194917393188626413325135002607127297108725196369290731719835065693108448262495449439005699175008170610315825572168870683183241829419809985031318974339580982087225212181218730064319597697500365281895784556267778788501252063343236051850397084937564334039160201902595470484599601535261584854496063574234258710980651321109584328081332674091158668770133582345989621563044607721487794438891777134690015674399647216343405667222928381783798327327544108686889305653741724112711416100313060325856517504137641874756916452391652037336480624681480380616774572415006988276817232641931880719234702928431533318141963122785915457660869287250206774375397578973248129901437566919345220056050059542911583935757492912391278186361107873757064334632394556468391386570838386369467339173790780992679928500966564093746901774565657231440302970595880090869077741540282150306314804392070933855594152775110240836507240407119653984441942431174542456371766244140725352717245165206191225966387584363657180861730822676412176154803889868685512932469318427000978843733033848709198682665332296868666001921796832635811249379880760549332573258389821934558606833740267312699040436936674415699958779362675947779775919395551520783022946114601668298206576834296849927594311238541771829206340697668817973736518703886022155975805004634286242288481317604144527950050162230901045797554823147439447565923028538452871972810983288919094833964349793909271159103738777043622953166912572114492857207324344601236523922031130723034171895909659063742836756446185208133091138744610395284515086775182302239163325344126272263842719566212679366588595887584748137833097289678887688916032225118548367865800006814239658724699551058567504894608127436721521347761025550055770787751597024787024050216622408178608846152313611575443312810155492792946984254534089493564091983371652265914869377685017965041856347941414135453261597114217012878145195087318128688891373374457359659828653957495602896941522270386007539872087427685822626166321140776722337770807287079971317143878678682379729941761801861403467973194202664321307129473033734459854033184302410816136434977350180133295262200466304562817952337025255308894139859653149303495488062530849682255193868521689318202933222413514078909761835374201196633518126474240291064832663887480428334666354992741656542507724385303694833685494100996688041708028986247719699359373173937608924417753781135743499036879360082342802066979546104004798190972714954479991715850645364295499952081784357315884839353975673192556727714906966441360459506446364869844779157551493747612924987118851001734622997856109350356558661489867761240197993340788182844487288577050224834910601293748356266618368488955654528660159572808621426110550562126716108836073264006100925439096442546484282826296825323222828008849755193607065321534195884565026800064766317681017670535140407424931654436349786588295966279883212740273330622064754052597879353091211432651198807761385780094158316784679734467646880051487597927534202480098512858087707396056490366218528678179337461232157820944423471568795301814568525788543419434529770978014376899976461198010368652110908874602895525076073825609752294034867452936986509327770347715845341252933234050263491772564118294724876511291120903976570558200520423064376593085100764356881110162174714358918260582899582975498487714412872707595836235487108395103088231220370202307929527662951434419052050100718692329821515395595382400047538792820865283954327790813214674369299436371656495371890650205176100416098389486412481798769445285180992036445541951608221232414833639953334513236369849277868820428341467851500160301700822991529446384014523466374380973114873838771285841319485790508398108963883665665648329271898643234061826161988976439844538465153103280507893323588047347487730121200373556895971039195077125645059856545307262929605975815370386916885882723775206950547417671856758302419592938267115029665329817148490037184466188313706446260001725438021094735528315336500024362004204926210786381773523367698109784886487931388277767059089515444456464512902400484280187660900838245185491472594305137894408813476138992734760444779893167736649134337247974352367755001532333556812051716301817270179512030369544171048671232158095494949299600958927750994349761023077992748882414353997372820434903851719998175294215082314114833320004350166302048189844185646657239074859840229258099951244889885032071455374159632091890302488191403942477694312519685747965810729544531294134591722072203631634612439196670024384850297787158003419035160148660445262553243877297396305646764350867959445184165336153070315445539787812347808954321872584610781799237983948887120976955836745871448171305400835342810434889758210690426882245656908254900987005309872664396926408291960475664608522924157501495857027917790630487033084582131875463205129076369666365472421464211338680717884188823448216244600831624833314876809194075091228184493352589503533203666157902108075887365889015994040536636707947765680604752489695863194050730311269276428872237312258798784616027139786383297048884617034384034068088385411078221134438077837417671648503070509392459121562612853037708390360328511117643004742668803392872030553975248296084620856695734600076998115183344537031229959630970156737882037918897693048021684678777588639347521203543200849419962031434510310669260213883604852252202395696442632554215892341438926270291077507197047612820231500391045878023211545175236371413082081852601207655026952653168251351739587707669218816341961023252851568654555871962285180398813887235935614028873527244108553907838468198509095427676189965762384745820149385437386240898345204338865651561551226565483647111881061942279983007223879655279864579694108156309392390660981488784761518654818762819710630134775467349158632122564899090580188564531572791811518418305007670195394269949593007305983700218529524745538498994018881175295221715186450302897057717827736097218334458406694702906458623322660352836927100685393327985722102314736629375406155784117835508829550325450243709686069944675888207796316901105257526769689435450426238145748576406986180855250116015848107900891867397608310944974576881351847818925103219748138623289463797560247622767239364273831885914603098327000658177346384653511450895294578207592312648993084515186970727065570774411257453571582799549828398833988736538641689474731853322519449154529363577178954821607423987323994287132753906336415727361852282128058904000406501958090786506476128130542199749330888669678875395484916124124749804212786225677809440761006262745759976212486457991434161233477928195479327972687670299353586615903990962298722272900450912483337548132661689200036981801831299072814928022895269145723068649590050427054328843813720826682417946450003668800463750188442632783685579695467449228663814808200678801487581413271662811642201305402574581263402011987992993310268795079375883890543929143614669319752666150856202275823592327558600871573533838930242981222183646170390523026375596970728235422844337386213167142574436763732845619531238378905197283138495846075885466336848743750012707866405066356473737595314044502989072759243825130716440167963771011585959606578613674414815703922562676196656659426165724179482108964734647251402391302535637068775090185082663861939367195116717980537342728392191454501046771828739262747790627028657137960461229798607776343273314309163945512782951307240297377623076552980632061710312324793105083996809240403451864073196324835834399857725887375090129017980373175439888676733972617947397292343186128318325322116929874755879955672951839781452113380612912230708592635664133234455698549337550258101337437050033392846267581677297341765136724422152849987868729546421791941698936279822033959867389351493104665414322047128895408410161881839205608949215610265414589163342521853705839813225748640536719735786764045391190322317316378011307172159344068292217395706682226436885359342102033780498037044889446581078240046248668103147965523911713502126527268006991791832794404800100886163455610967364892482504696695556729967295595544082831772670841837947427836768099939677713907904030882976855605173019448926999596518066857792407690735835973483233490252137021860358188023841038341691813787308625280307719791732816789726000058701267680156233764525885681185712330700634308236997726418823665935082167676436046384054971302380035661921950891410461167122161888532614258933394756048389508325388941293534575849320704211956272432544670468116419349429777397930978659518727430740480386881124961697017733527779867703481541764260179338137327274286930200486705680103038469687893433461009345234306645323528742919697799245323725579701190694642678634652134459779233976292597065039055697938805121976644523464051063869697429071331921547094322204530387381699257351050229513294850661114004869076916341373760889382567463174596670632649374528381904553144138857463764023131244044020471579180425265428294791029292064012944436764494289992169861224011643220010541567103474154720554583407006566074067871655046307784343572579083599859649651406092317110792571094078191320669749470029779861690560469181401870131006201899274727990812245429945982384445152974544081803101592943627005814279701200181843121657762300731089548299143939368224822852996131648302841100085553996803974020404452789678180841833259247114961104788208837385460423381333036684397688767862761208614404291193157393188441866305706955159088734848525965908761351940047337497794846816574976170416776991537642969627229983524173067157679946807750918715046405888418300707310593915841265476527173118289053545208078305056742936313569066524464935636295545289275677459600822048075819504922656385030543612992574767158099306208163646524703206398454071226112418646157624472494327954880677756461893107268431304024599563071427588270106627569323202345199314614305634456854813999235532018737525509060571448893012387320212183065513486392018229858612262435825136640775615605521100367044707283280892321904177365514075731371882424156149348068032392239558253348764138088930180968031070272595255004467733560545432727125381343938316175854127158214993263143229370178698001394217950907732198300329583488440514762957607143609265490472192379943671354695869126531301859485392918034679658357241403865729311408460735484848921612475554459236204982861750231854141823389786138192634069791499250927854230211565443196048819652556664599376942899960214172489635709006211428321076263815591776080927829861357274587370768853850088497877606283497707862610320349360342814754256739780981573545203033104873457798654801339434581345507566102637001202110003675939089776696804506416069122973900243110776927546593536948775470246016905883734470532009209488180681094601994236344280108027774429990406475529655919832989609028422932759270371582230658032863177218071906879373246317421716532850163793858117057022964232474517587132328976397268286268740762413615065342610765744008524071251238656764914658748135668232634361428416839563267384659179056382097152000586612242701003061588467051539236131399847930078265734101356721430417963030551801711399574654368424799998024348674313348387183025969485763251190183519446481843181727208525355772320498083653793240829415024948386729810759947435211313918606363406490808780047556813380837453769419332270465433501757160996561662675651976435593009660676924141612213749477361289136961960445331757130362558735085531262770700306129455217210019756689993813581979803156839115639249714675435682418304451096363546646026083410361619015445094401775792235239447472766733133561043095360646645896990230174125925231655514959975353039638546259259220583090087346236664387864036169075035766572143875063042974354545021316255447764210230338275519396892413182038313456901936550726664995659610985235761839508644663106113321392667340959339307036333860788136517387902031223635181740963965274659920722080261973739086813529794003991972009618495707459378374635196750044549369080510783481190188669446726470962569106837137082049945033743835244973566584549250525709455739574344964513046772986174765843867018406879151081735105191323674014014129073089767287565937538744704252135888657747364192417914166362642294692758977231970693458451692900099223883216954209641435300135503305588401184316732717491486697966967090066244290233096610202012768664224270422065752512518014820600205598983100294343647767162811657388824125986479762703270460828820230047653398881444649551743541396224450868894935397769845177533979334321841662550311706397640748442924251352836094613690134946534564676489864843477617379628021843852650923503222042795170422997443805154689507246505656976685054921844533888526304465929234478002794151882510259510749838551169117073375938518837899182963310175668821551598274973948741283718546702241184887642318690569776579099216175902025529737390107042938260482673303759575468101352909324613920766425965235130986005475128316051493995047601748118202759613620307922632130871285665581431707598173011180114255266371323328217958542866751566630095315429056710697805202460879348647632851891349728893716497932989016339578860096834373855211232467016290523027878330099869723220420122025470870837398099167079840904786739868108952260646776472941471763907242758329337403415733271428485682186647780071786775750727448699198778263035615832886101205129502922479981459187807534775247337077004275123155256027210613385204972056319658986806119449764028456279086275423913681948557165948492444551444148944095087292652199650078463705972309105316726173928714920650589742555850192097286083565398910941936876114444530053744676929571662759153728555971487042318208633746298080517616773244005041277863153956842931690166227238295894078394840216150683754926990934214170388319225646322417140032744850204677180330603434338301459876193796400578882342842503966778620694106485927668191315391771740146363014150361386686677595452041015451824099317238375515294012783229763037598888657600431694595671221647934277382243166432495052705940877889431098775568959988676713035946995822767843736988855167887967590611932323172202796339279157797804125214070307320446206604672039212617272146006972857369208818858038663647345687186529205456660996938188836209381581450754095472577117745701738414535728793257077985577970211370054763587558817674011223226682337349278798770064860106085202076668010628623411108591029973604159179447207561738618728714630444954770394806586481096977484421927648354875439407431774997222105439784118384163836903886725490145272799174099816291771662361246461617336744820197910437440490253631651883571934191603921935150549597465746827524577671463734388243531115130749548692143501280791082988080718410505363562107512569047026406172033342678387071822949535995612150593261445205391399726721922159143974110168474956352950806867495253948762611599680042387708847304754129024451704873666733779310429982954790052155633655886808669319414596278636034967969812364803873788367253837003825647176302869176978310130928902864453714711094397066559416316725195098119821037531184990901681597489014780014914096580325236685304902301885323172548114479762454265825422650324518625267035285526032165614631054248938782514688779593304092072452178683492342342193789956011362042027410015729958436275281601856473971018515923224659768428709182939064281195401615610555686452744934772538737157102839255487648421908693143446267920697245921785927143837579203172183737839418828273473245574551292634518003611844650948440295957750285597716081709527306083038379106566746122577374175896002166639311803498839307599621612288677265418554918076573396399282370068054072184123617729525518849561685888415214984351261657766951001736845371739333451232726034619744378279063471889675253769041138888584147505009471320746854330290138697045114228054058974471169793465665328284700313303642032953273325456874548160736026211074004620240487338836688311586667018017084810114718191399097573488783583542077425052268344931857912628170028480604767330875364569353403103949833533455315430417705064935652029381826769107562070713776077152520936940607577256367204112085024234235372516532257461856679711970000816875503631363929251830999829171935269219199296714418519041593702259599192381328286063351953424168408207361751268067104921261642631067240099479852773830408981001453945871419985015048607958186071798776775082067334887450857613151905628050309194540839107985898907922188610242602899170124264190761471116443260470772468102216175237196987900537600191024471227806355736561927144050813252313762739156371832064403767843559463974616927790069991045523720151763540413249249342618232289585430466923974709728252986271402692419611169774511187253483913796772037249398904402131964407267939306733092679270045235878797635778102181812214911820014474377135355001352385911746815104469779101020664177793527854649070450729489166602617651159139451211323074278785958528413051277767385255648284339425884770285189438502236647185852005002587721159958617032828645992923212730153461368972260630396618974140498367973182344317226922324799322950691862781194075566062099007813841133231797375691931090507407053234432073958692775969693236895738860466866046901804747782907300050336580651650113462883893733857513261966120367100878568844755101549768685830139670685815956241741085811750998956613051230005121228655933545890691126233590478529618281039198057890007828851489246602476001562146774745111268363656616117664379966073886979015848866642531105852649165238213539343680524869459965982219490624507904591482036310793760212105887518990666401894182483569056071039078774716107773905954245460575500314171112340041710280846493078753250087218499739717138527873302675971834804028579235640146411806764987057042846893955166643912948228495394909698103276719919307366254812323237344009539529288053059216294728692824351234413587908459032952848350772224930831923610830171219661000971200254845356384665150703954308649288210693416769137958497757686211294978730612024618841717230982750567681871022921053968903754210464173417603871876524845468937398588150219511533005301716631819629061164184136441468276436811387723764301058060001150248999051174365583202033756647097229552768451445469312156312660535388932443964957096410237562104785913048566088543783669898265297280572445561170460857276484204634348748102331493298950114520538467839605550444916253025684451594699500354243174605476172010633036583683180061471746349440589135538882261938505651777462885745781333109520858970875438789360496166900593381372478861746761140734760418169763012771444347721795252947929865187370579545725848458234890747384592119081715388523119774771162271006836694845662372505729897187202798461631478129616204035298723320882134604104954747403116383570037947341789529390468363566264079114916894456595629649066246088073197330971734676709956095767268855296476552646090181817377617758392773689989640792546977138677739040665372986044998080832521316345336815221940294202967562224968384216165982201374355446746416190621180662035395936624201413454865020322798909025516197782924606708734335186784057169799806633064316925928372119571645622054596733940017937968858123155768412026382648285030353670318465320077678693071533488802507066354912574194798838919544693515381025661042981498035286434314778807181494396991624647692517113328694302168406525388870882536376179181931472076722969481010294088703119618175914482848467811584607461721809202184872875749858749339446051478823715040192199209368544881573789405214911688510680837487098267655283636337621000319661900718934287566005627155175258450462139008925854265366404239898390945699409832276767890487824925231852050768602997258982382790164958991006451748285300697768986536764246531772051581193698606787645749331338752331102260559990553308123246202841700996917108263238460729368983935287180531124863405577458522236069080855170471658665415121080755376188037874189032865145778154429778905993730882105570295039830103528049931852365456428523597961905188468279599511880054261448122003164713755083574610404243723143240392689356989417073881433214226922586952742321502953621197719895420976148154154033331629724367827810265988939184937409783558410894995648085678759773247784475933356798274709122316826750473440080498205373124911317988811760708714625495523876410674796778147316864475191801858527113145299955627794318979978481523233572226323823825463068855053504469049571289569662751864371522017811731598665061368294892284855805931526267152805225920597646350183451267178847397164689156150237850462052835864060031579595854909072825608418441800106374455175753735133827967777716490351239915661434464957659660482889952225923036465328083373311052533686307839754018103102690725599131210289103173331665085683041218960735869707289130505415252233273275617730134104541404465514502115418000175018582669640812106443103831199570430457609370851524750937643140610745555517198957848220443573449366078375742338945344907575458251850028215618770528683979719867222919222242649123182451078403615896692989730080936216884863034838666534269872069863546691187238937082771774393427662208470655081522296339177593879957886452565337052384681305804750740916212020533857539452887331209985170253177297950078807750985569097453003055588169471037140948169199809234440342594129639121784824605766098477046356642037374655293807674960213403831674112913807985650855683867877197760586510650504839455167329032099272350926849936411331739575452085803027367332916474895504526698839769086275853276137563329198029314508835557061071608156277839123122974264532066074684219446859058611547246445302056225335658325478879975834511763354383984861377313261138748203906248885087148470030418989057429732470568223676353818728584890576027695430470131915156218781782339710667531601354180713081008480516994803131574386757959035055928303780138708607175141714656553418653066712189238379478758634087883543344409273650132842523487081563937664118915997596595072407510533655391004863868719079916482288944073277516349622423165290270041567094056726341982412120444509623847059211242604736657612593104330732346941020413430861160581939416539251243285197328748033350159034044415017198693455929167671536718092766451863826508780576630130626841694287225559167605847534018136923167431684810687766603503690113330193103181858832761105321839100277405683817099662942585576800512721748061562440892328497526452042160824129487562680725305367180229388882661737807510320984517505589320350855165468329432618155803006006300809127079721012464485987449696407618152315174389686964369632583130495210190398301317134060806043659699424913622862254387380452886654176488181611251726992306638904022973559114666833947667712601252101686685794818297036708865242622984424491232251993536133249424977231968448499219775815934367575811570777154830591078388340052034390238691550103830706285425992977085011466936646251175530260190412945615013643841354037800259180553883920257913951787408948578331352304827218988338950340914045381604087086681458802497453206186397212047977428244352982785147975070197512663564396615309772817679769748152959643280720608923961620733156677703188421695620988966272402425319238275794818071849317138808738363975802509548510708313892446408781082916167655953255089812523997354148374095702423287059397409411399964974955586473480795005377385537654379615640908761040649665537872733157265464223003722380510804397747919695434864976718670038203818036676324088710922259978941425297876909587400188721744058322975827236161929084772672386397237184407982411975630279987459495800308785887590705207567117717853565485006473488871182112741488613814271710296316483289586823551945474999992107610547784693861654707139871852541518259141497206708271599417186663016115611055190326239916278745247547275974154631802969727816557303824242614412528224405180622301515400236743955265019190690182945461519506788410630219910260511010151249796534244359637422673286610590754154500125751472000391081502266575623548809983029624325701798125189280160265446319057726882844619816445309021284791392473743055857496214771766197612781062814278376515735033145705245917768655299549468317494364106960242672160945401462863346491045928298347688527601951064810970850429058502005570029345553276406678960229706355185681301407706665831643213256298018195813671074908510802615454641929598539833276024454000656638017971059266577237477412109774373266815325718384168389151308331325744648023595558314813371885611693636838040230128469403030240056762906310911015257187206045736801740366757509692669898853629111361190620145437904239576757878018503082126575567621710848280510856485257775662831438844233507322929728082087185336453910330393763953783250119202598334021299825379346827630901204461751531853634837461921456323696668212867502019198922925694797268257526374248455277508757948622119096039060422752802920281971739435534096176740605980724063594583466007819119536894397238317565603884333737985952008885012901754891932068687859880804703787471062104062838567396669101359393009954163783494519430254681132915408990439189294898965539979957920639607887205119734655526870167970262127568786910264824269094008905145927704935213483693410255436421395389424830137229310322684296179898781189397300520949714775955673594459284408234666632614884852132029885162556071000557042651387470451016403977027024140341389890057987680872893202634008567452493944012258516196034516085860645644802313478784911405342560307215376655776625726791454398633722214482429258132605017595584539958134646346381459256290985461485910448536309961511606355475156567143238918522048946546759244990273484305579805183447511523826332976718709756896976730084869402128117765688670065465291618488704082381037598692010151638836083204334631044837361716504308291872076760864907564867029854530006763305912510046239615281920522190914335848431023824219627146371461472724330443021510906549761564532792215054243506020922285492171332875770773035470078512724035730417045721614077076258676549369168765084516273297904534700344849172444520868667499469208268983054105070816442680648388953989878433644896644316335674583013516512897831558672462438702569330004192852408105159531189374309253673541304917010810238993416245092284532314890379822769945058750405089990439487012404208309687183917085170496773409049308090636272030901728209242629884788986556588726788075162065686204468048938903322954679235767197380587132465616820015461547772108086220598739296394469231183241143710289836774204377189315423648369492138980732807330399314475921259622115221833706539768904720842734123635291617929305524319544567757483072023113085409668392071768263262795735194176840684734118628229261406155767198019093795358059210772565395407009538996647745406606811035060577923980899120156741864850305712803354408644339633736909607206899725302014272378350452774429266219954637289455274628654967616045641292592465745077046909300904609884195671567769242480124264701038172950078992438941152024782746141531088570004513395648117238791228856856731339010594033022948618954683771920803348316594329143773985056147935379061492797043137036869076845639730346936983575973588136526257829063016753051079640844271269368096468627933545326172711247453135729178786259868819504389348502857424238864036010688892677456973382116371047961302413720530289622112944744438964256698647032845154680854687935491542583150517556487172282541922644147457871873700935253818908002664694703575462703093951797850080589884634436625994857065107893647521588176497270003455263595902034146600049271690815703724454311028367946546098882616163119132876677969837907016358731008023366048931099131471955697232803579608628235522011984476909225878179239433064883706826465189143741685097266051315912639615598466780161731590750317348806184642954488696816567057430494570456836135185051266099143952059298243063896680862859522031052387553917558571292252870672082310968919009815455464173337822470630458819569645695684216347720755341125977536025623429273057238795881819811361257824498124346116722915301067283126218954630625244007517589801052773313147385611106557544687507913129641889512650369953325282865224224726896987557056605429108130433240668413687093892968951686406084283348607273302183994096329582744933110533461111610218017289575793425387602375423123712435939527406166924806311827632204174166067398767804181401385954263581872101037249703927892934743700197757254217009908914096353561382380848624102246415484251705859046106590621787218907853949357310847116990052033327094365415040920232344738483983995552900225800674966433725960436056141428912536035908168390726697879325916963340440559834785413929388417346461729985831719315968020962742945576064983853767126292945469286579956094951597201707497866518894809047331831626060756591863795564859756112993693492993551115885442441822709807954200770291546540924061386593919291520703027297351712264513698850714995299185138481156900199434754577641215891299787245265962772933580371516158074097565535888046626573017031406790961822994464883691105167382919503653819683304270857411072922813710044588965812717967262432453439618210526661101170668078661580604000193569640857179458827849863381784541485804714080984300304853393022615474381457842835157684286768629242824473926720209148603180929689344128803383377632557835924523269805133622725307973967047817455411290428573048115428311522766930442049827595673646541869476833264325123769021100595573001142205180045410597116170361085759042971047337203524619927569547456070296542227957860483312522122047692199644600699193877540203201784140908658260169081126150549045284731800033349397502526591165809578511274063699773101555800256442027016736358661849100197328084078528741416719044293849290868325108495405135550544471711373934754906480298230525050742454855531901386801417724165670520961913096201967572720299726620841705405977642904015198425194519798987352376094648399336272620922844341007853326353712597570555298236754996828338184190337896996092560686927469300201724478100715416700962874588175535647568730975632985957526543566248406980025695085492308365959965629229156212607923390452307747643252480159372651589016144649146604510283401564833623726297947396919339102209313982182872043506575976793658022778905543130458330500489036853846193866658621118402640265012628889517813358908348613508599639027574148557189679087427419940180130906891302371965999627456842667944420555213129165839106921869637704025560009665480597844270684952311212676222903430710642285013708048863745033984571188900553422561828295183634288387282407645293170606498697722819654420081200702132642643589893599169361767490561861281740688093362429831201934322629159123921606079649574788632565139997528322990220986822677672115383378775061109344915292183883355207323688589998614834935827113930304816341639428735823950267665737067472576468299580223587685751239836490611787914403642243831224242879176267406073857271318988819946100042578922639841323901558253451200238835934133273920216446939657874488629651193400419259462326503597869305767013840051128930032173523541840862778687615027185698700227426819027079261820798612553723250983306759299674498936845055416778869882357944528391047267624543763218926770981527030857594033332570574340848700671418068603900320473841784776073076088553816608023610452846325065829554796353532420398234452997445153139574284582471850019820212272112376321713183975318896522866358415075240959152436381775879302102778164112029576409047045440013638064201533989376236058986318468270139157635157142064296428631386248102885966790747994906280897849994168234092582086728581437282048482671750526355117928740096290023050353168380437684879647652692084456744140824027757914443944781234868791099058147210722140228050919333248137177189825632101985429499661108667226531117196554885558231326113759415661073173044213221468147516092888149178280136945194304683529799164215970012183579676077881210726772610261064333810949750125493790279550169822511494198242370744838815866217511108716923140116819961260418160062467710946126848312719367127002164407764159250842671853107411748153387068684063085623831845077701924059966084867515000061925468303862766612573544653987531154424497056475342763777023683894213996203442062670995992027950955362512255150979683220110854418929470284749967766314744187199877082691194870024119423288000152162743426635854430964644216476411878472291169599369322889355843934871801100757247125494038501744404504971636483846759912017588378256403629392337842495871116744936858123163173280714633410036577599946272848103771558958070010019398243898663674897586413797995923566180422144038531539955544583077051274780075204729720774390741806456600536388904773134606962857889560016759080626108670193601879399351143515864448089539997267740771643645695240814582323010678196702119622161527859108845981445835857181067194485267620270148550030940971642813324583561284571635325325463967798730484140789441703056064928966794414253399894948971526688597661939631080566730344363135932910497919830370271868531439659764361145373645476551434501996934484390993153344478664226880390425066650739324123546716277292776498041337692571509119634440788605496016346080023679838476111399135142959735895252684281085408320815031626842138702323849371451867029812132914252457090227030392498962007924432081498496313485415737526822385558559301424609587191861038710645725247887346511000562289765241287804667607061388724651755807771339741093319348651959878280639630717824374204733485211349954267950091518486584976286822571427359762114740545194155858366648000914722242478928208973906505943668674711407217530309417966381649361358975624063407390278345871341598498627159194779140396154517575418447239901002784459609180759138182122091791178845194718509471583530894879225567396226509108948027068464100429074273824100899086151820996667049054021777445352276654523674714937640636613216179275412912343021128661264658605212365780250188929329988927650809091643172703900958094246339272356201415045606102910857151276764481857965369981769238852803582107898223611259213011245832611442047390190668644582013457351390450313272606826806842124223667395187579551608058073895792919236958681085786518730085740208115600977606477752748189075849567940841238473017943445110006085542930170681179440242321272196910819989975539675302585418562108150730740135110529499022164550475115737781881463419713921421571937669572619983448239303425669131227765554998567678309658455996174411187099374174644687807553104092112900336777971783445486742038197366552568409877819124771334198948646596468236088603539438346233598642869091905252369551118077987435047240930194578840636548984909174836739839511780932450659513770491228426512510279232591919480276196211686823607796845638115633555917734236508806850375753367398647015478103429738008251925523336346293554852807280560609007067187431535106161894363509365020193467165617342206104088045939414486120700729388207080932210327284389514351480223042886527905698866397625691715083844942259581310035104751359038046081109504795339462472828525857161370739740635726226329286748316931778795897008389825475282697709650926410159051574658276690607559338255399608722845295152638253211495886938731778686932463096626851723258594086983955077398219227675633633956271313036589043808613231615864998649083755424957518998272219878348775961938222355166544806415468847711581511733852074113964346168561584042929094531524576010872585814964138539762049103357399503403226979908540153238708187938320588158552083678048090175522025026456542997446219824787869421069167352692637167360109151625645308912548921072374400077840472995074582220021185310437762327549825097384256763333591600348252770515994846313817211229765775479909799094035964230649362559195056512623582249798262444147219227205744443231315674866601981683005670367907604174640200819484904069509853224857938228519041461587382173796101550939086549264379886637223654948197814479545671708520838998096771751429423193399044351716566701141315207408992659609871009228370999531624211328072227074418886611008575936882938978487370295928853023039392714167623335203046316057825776821807680745409216128777934106274112549049851539290529332822216838226893563190292094621259699941679714847020455824659333751631912316944310113868895947841804923040689748909265184380961593303933463323473262691400408923406715672475776125977355212417921247793450064115891242249754404233636395312767070851530999011974067934535206090631899915237572634262314389297758715033770809914341757285520755620049487510415466949393182306583810478257732845103902409814009707318348905091583265201494881825946024433542334621682232948378434857325566575017288280190021685975970033663384897143770635796213687538980451913519258891037107181435368487436928172205555849269386232984137373129475390193897882647791724123580343960902200029556102518466228249784402727691094216764034627451086778048782580717949634715756139985719571631379729187170212565749587774193606937333169622462088340947689418876910484327323309352911183639124316354646842526144369391364655174190446342690111844257475792801459858731828390114385343121325687517205589090649424601655809029422841057658298688305522820476249534884335016487577815851482105430590201080775954084840883651734347668707492924847647301815513225401895962945353669658897470593025852432823427017203394991668557679389978494670341589742295553696572904449668732993821100499045484414766393460384016394033096082099353572629504712879212231570054023742421116472517333431858344094449096644647378168464958305274722542856546355114700811930385583632996737903654145622528346187729815190809264061388602614433156463594092974372811276943708942209492357513874850237723838960609526410644241245975877743606548157235127596160168907439513393765358211523063647906380936689257147983043458185676590460321685964620528554238279094425504926670201717794803466238114133610952904424323674057517730008045393162032689835544352626623843351065582543967743191401344192975799308847197786728399759050719287603897274654187863343750060046721009625178033213610228357717336149409887549776070117547121267095075330680263006772095244452432474919473896489696122094598666984933856144970862756087642200212349519019552152540247107196108552431555544076687506484382373666176830100657341466093671118575429921314366560055428857723031366762078048515222723901133666774837085515481724594505272826591597752621421215644216821889954878499441468845307796267852375859203237235287433355303699559043867178857042628149185852368112000629672254002596342587866364480635406578445753946548876394591910332758850228586805897505469411956432619488651532577110440277197487437768232118186372399085866484062530578646024753438609405042770152797392603417464430200905763261216225966587369062379473909891116053296277324733312437413340267489525508336918932460050279494705663160962102871340812731152159938387001815161731484379891334013025580266533380537141732829391204599142498943471656053905287196167638457229873194152572834189690926120658098836666754940960811412418130820286062650764005729111832168254569846100211654895933290784430040619703584250383769464937243942959914525348945244294950430167783466678989600575150993752376181326561286772063586990992935424553881485997526468450856095668676741949951771932961438750493020148709480227740076944456623266639687125887312994200169789718579655881478573459009213806823818136624020083437920613246042371792388612202152848920353102391989340605521119835463777951686762184404613715477983182713671771159580613635855140845130457336215257371471817617070056559481052768120388381736442145643157657195509443637126783788690964429383944331677564757884400495088428091362637219570333742255901315937871625683642494716739460482345257043397850443740113419243128044986247510224741894107224277416169612897415228549561398873703226233924760645182479018917993660474823739164391074477774127047254833572060153137442246443309235970350046084995257271963637608804281646750688897849213757454799892641169936644582155583269447938565031744265382422940785569420373966508988231845680246320865280577414881041031389156222995966746359775194487997759159769707812468569473573059688174890276728085339235378634763382626335329198845069281706782669647618057708074795300690321646293526981815960095945598102732218865007211679048091226651424346779348543135738218762442203386413313952254115798238057295592336025481652966700333007390431201730176362423315087763708686202230920059393211264620812963623031924909100295269454520239615040820019106865973526833477391961967602563089439331010024819387734865176614543054986742910617746763036955516732682284307655103234385546622165805057469888151896779666620675185697266768354987238810930932673514500973383379945187814112265297749398985625713488877497076116320637131478027609628034095112595516480894309177053378579175098300906269675488904399240659057925928924445454704801902221117477900940188762069275938917606678202478423232828993080331011413875244786372464563370310294927864019610860534010920246306728558243329199205331264829809530554311662502099783760791063181663463835873856833044204184900033673441399495476107729279948637371872685683980853913721755153622725615128607794232912929315192377347945774540716424701213896045112424265437895555386971139748719376297425965165570801612091871589124704643769829337941441353332928551888683050898094744407165978649657337336774537084331161188667472548283980479479773182647274144287728604679537248316302929447308933686552094949863564426226503578829051389493643973804564950310138397425986430749847764550563004702300609054154313268825756248209683323004348813913179309875594928238766700995801780101597330420115674572266805923124739443851747492339149143551351066843766943878005013104976987867447172221032110458356089220350935503372519492238836675256926865668974802555635019834273280565558108725802979593767295074368291676914355283952291667802712380147669260384283762851311882814490572427981483398021425516093348111589042222292080768135562573500381504023400939013987772968130393940885268797296383055514740482630287560871460417797305501731419122223631736908826798045201249962081267052462445717222586914853315430465907508002962701005350309059265440214471791804424533396888049845238535734907498036264304689657628020328372460352348805204627075394591745084297798488555178684180864527360907436533859890275153118238793946870525782869719993562416464377479990797468980372306439816022424005584944223426611842351881014842602906225252464688845043627355441855551318833561275108312565460605121913994561462262452502925455951564402069033503977293439163250602376678963790255299783400575648416850799588587316973013071377712739444594974292537642559745728768674168922045114017512774809907317815645683973368151961221051966522727035794704859948389497560831443461422216377927898000898732518925044286886423551067189102147174397159329159661368802784725127661312166619446999215540327847509283552673463223552864901854735767327610688859690219730359622981654544403114985081514077922540335176448049565518934482107516731060683426788457363233646298111659388087717740977758239229345933599791736923425622281006495114818896014521972998630913655007108267021943619392930296462481788685337873270993761789709528043538272453275783489356134525749267344220193346402146196116551962226429148204040850493515928786207391880834387683324747251281844632878317293067426087706195220707936045887724042899629726409003170479886004993225500800472027328294258139882899067036485842872627919906432187014406420734410189466046921522582230225506603765882943393756340998168414425345639332893377091701970181212490654753734261895664535266252315274064639876020715112897954700767225328296831448309614500821191076972471454245130503319629477036675080575469669742673462038519807147995099687635895019204939307143114578801485407422638010289839344573393535930346145195660002750196310816955138916458425161527986904453063247982744949640529808910591836531370545980327369448829531049486351575108329307425903290006893366495070619587857156873306138239864458182734630507664649713266865597956127519053398133736973460794024043197074843018444585733564602019177532984164305247486846110454552738352678044037669374501246166161775899465570668306136126745989816057862799518289098150393561052916317981458578670606467485233242719279044700930461768057286307980264855490698935672708098961661342334751306532873655125404997438848150734850411620123680517689977598808646835352421860081613565896793233136859452634602765717237848004832499220150331348718789085990028586239918508778983502357882799203678901748645750891155373747109444130466213416342761760533938651423997582238016025212603954590856542167015878890917877493456047496851744194542400510065792537713423060291928069015689532535715272317630299033197361389987895657741234884863133750567952249698383331083680601007237487437609372693926206406409996039378159391868327489583437372299559316116159810177551805760849072599746346623548841677798643940658893474678672227449675742032622265977698433652296272160006669396683479762068759675510480440424833579025702916858247208206694443147522769163868576508056039678060827215355545719807082708541094581128673618272668455966946935999678361260242008094983898616461550395517135475417608285668844687406628517570031785385317058271377467790364683319976893119612524776560896904360183126178947877428367787589202295794759632782525421595304043247083365547003950480582997857824215576124734205984098277431379781403862716083174607827476482346687619799506109815521166687921903213185110903215241011248183835077088211653783904892299132108789046650596526429581928984349724343696230264331480274663224163563124499838398812440596505998292873808239337219310504794457730294602270600095227110231064326909837680337603617543125513587894676575342517562835506766227738630162067038498628557232059068029252586516463100402140977342600114986983353706637028805828236748030436499101213259076044032959642203887196578947815086926999891274106115888752725768852536143016758756060954119694411388801196603107198401080967844809310982894257130584636828996414373925735210135235673481122198012040114095110647729228166282498608500065217571316895449327614247696991214213776694692113737285521589900558991935574319068292885708448548401944976223165684646061565129262153448525037828355999045632439817143170014677502325278140391246444162524344728486707764065275378565448239206788604351745769266862378599994604541992600277981777004138799343645450707506327688498796012674831590697968556025821223693993833213107499324277571280989984090662837891704564292859298180814565969586871321492180232766179459585253292667772513595804921534138105509606804838016731728522236042726363843795165422041142879754431120617437593124493540465204925800843799424471667474408766838888350478122370378707122114194058475797251033104237354851736586568240551220783875619914073940736888746148229359037538387398335773638794478531839445096011360149531932731974655346446457942250053575513894672788283735041867909624736560690898588858321031913438258284793978496806848860704940755310258948299212865008361359105273049500939661601556244231545609284603969157240533183108965347177109635043002037032075463614687909354028594767729291183205979189592253364738142022051637571194783405447939646345343397932327518261775331967751499605369927138328860357130803142319026219295116508740719347007577842497361443802454122342366540019262013802025964416952568939720941828254200620702355807523829823891564972757165667629692305562187074180837358769473124990094797080245646246690328186277618288785723109649113244052445068202351948855783122412266923140310626501652120683984103477630670424196514118420084358071345860686428072686470688203233244478240555584019645605485226398313734619791594059185428055939335257175537589044805312625889976931564016648429628021945329074007824733104739757716946863567085052851434043601919927517982100637515292918015685206546954111987530621741270629073343173617472113622055615910769312727855025801307358841923876936850247004612709388228711455464793069697831046179458539191179450727252962273410138070042913078232244387772694203082553571777486331506841430694915785614379854073902421410805309754586856395567233176703404949952087504865210978931660690044064800088021740891261807831188673857440848185262298107307867709005578025351100837537863191240990014246485761212878426714577783066289910272178793118691916385609442659850880411431297774155916221891726806613128772407553397161929333020225447466437954798730111774997552148162420718576741124075029881747875242747396651874037461931401706390359666087387906173647319790131509405459039149020525121687813654464577015989704936645213835544046553850870118472605728036561741918337554955258200612081664043133937902505413890497928444908122788112084079400750228581569809444298101626112621041593579265551884678842594800824013417311974628207573871838264829402324543750860154736779901718831225933467577307778884595358980972568184531330134797706901563136176869642811075995878138448450726022503959025087666214166380283874341997574475832420459881343854967169269671642137753472660021220666255552586776489210025984224210912933319289296688799662917089591467403604906146137722129252909518158740704615170868851601770527021207143819563749411672753639883586742307988458245654460001399427369849610558837649671249568559881431583794195899952801364055020743441780219689397560953666478763235253242527532393234739841223404986803803663438864425121515999894605982576252608702475055019695069019031326867543839021068400882200256183318033553929053458980458331861561504587269866546521373662711355979902358818076878660403837467755299889110222998733995017756930476193302784466730536150719960877933659482861605825940859397165243428831438075567834718492365024020455652150842319059965045277744139606593425888658492088191748879706713305055257010055863593033878402268338471241813042699568725916718974400542483994891192925357174955149030418337229199695532774723055419688012558864596017259463643741096860286337788328472761647034097847843233140521510805901277731159196199014425140522373109088312316088783920780136713157464871684405805774187723745612519701768763556957198670014923437112401082779519178923839391184331277386285316322129413893568113322949994843367079072989161201327943897885510051118520916885548537031433630721428190930466031353465421417549352083504951727261907845565625879262348316933594958567765477496325010147149517367435051866858556433206617018907210076918546899118809973786976191090684202720796833551705719085627091218279502884107978940571803077613432691338620994706704736310201470151351999150988369126017446076558508614336087825643277272712062028087093393618879947008158419555255560611270433338132691266298154955649846513291009768828275410120585940757767765662293153929863108419285876036310083812534995528967378181146838328956778975618332744382313686604309985628758889731241992732982397862329060557454264259588028212811547159785970334234974157209035064813215499577697229729525622371056340719053474813176399266829658402348954314571394454228988591297098314944206357578811663996264479107048651691358337524486625268931754458041894161346758092316837256780790226315054322572310194430654484388194335388437713814708099539116071899831894785344859284229635433374235530861876941438504981890019098797199327101047904295373548950319245668848994570069952326588047004078528571291875694156101054143624734590945939569763103797606352299396735708628648082741967155885627023937714059865241952913816177424075235310185607626377408362351823316707181772644071162244052914817923659333432471425863078183112355221014877172644853778800087237483498259172074142539685380892023829641372536908794222845647143999768878638284770116503363703497404980784710590722815558571892056065828525118272251537796401814656260243734505664420558866559292828719368595478835851889425548936476233552175264123586521828065331227106369176646500936058765716163019148119780177803227841454240662272920137291380012679527631432928713964736040580366425505488388547224785827902414520224004502405542568620725577318581397494221105216746846537026492659004252318290146926869914159410339282769570410382517193582665370022387314636698266031554112884563868518897465134033179369627911530253313561628587616423848021556337301805619705296344575124789615652209562555004278142340909698258325499345530065505068148552896270485495647033040075933765998858259784568139167541577853551746394765472052815993142508901156851776731905443006549134664429853959293233830221727851029453809462398759601516839037112570229027842882588433374214573276848065605963543098474301224602652596610562692356274621963769541041429002148670585463646794901879546731431061367815820763497875447687821178449546978953463113338518370440830863755014184663952722370922438113975961897601348117166713603814788860031541468214725868592368094456876976140948594638818633811901522536268328086537300172119349575654852636019440238109485710046558598718818532990081572424660451611030412514802863023848030508766745067526631720734573715312752030719348662792903511999106357131176822264580828019694861921552284656918779660262496481217403087670534228536229666882852610429208107263953988102526516124061910684221388694657222255173050754383230758715988560530716168733119229735107151527256692162478675190407306355008810820983413837741437211060463998653073389805984178623357612572154703342508365313629565978451607302127558730417486644501398432905612875591618635644317527029277209321787825468773699623913773876429991258509529313045024486914563444968007946374596738025367370693172901736115272175209909660381902466073220118690948928898311150392053399620239310698814438066583758261754425654968976240439771072340812909867833666349423085624904582141714980862342019545859367020118606681820274925926056226232611600387105556426933900606159836079213033856274979986198845061540564634755315454628863434543122005615794791048597845764773766249069332304810865535952207408329394616177162853099924685121001399576316567640493634008009586251077619369924644614359843202352752987538521835183207666121859573603728473789194068541512001379339258761564096846182911134908536289858633591882889017409405890985899925004735325825094655376273585542228963139218098576246753114894397311275959987291398600393596625888773029079187232706107970647597821934116410460245683076001381719076350142584641359159114964362950660376701425641097632042152582904307328176482599409634137576427585332582688191075950478569267799927315341466392215536893867258093372461035384573252284751742833623221908900132857806955800426013792139951645689174492355661527526526322274885506873644700329225737425249533606580029403345226872035247136377382639395674855025871547819542701298704283329102239162807703099127951400154487622341532824171878992320848385698648112936296077641104441600888968505828526857597119756675743823920477817673595181736760634623541670025961662415323143661077514644433819395105470708329462423863212879365381509116866538706033191329670387452202208486425170052671409252766746921690156016987321818253562795029735184838836703031516876993907267192882286113732344568761087205210679097468447560994060117104997020745591297664603649747309031301183991551245437161870262532940220873208054017416965911652518224221725745737463234995823901676233260647859604197005745584977324615545409929570259211959935394909210236014636985683689777047889803779719401575136493442179725767392600177078510930146354918510708639020289676638496299971102173136660456836957447506542200313551812426713418910399224859677683229629900320809111121064328527145941500107786727243394499640831694301098436229844361598633517736449044504346268551506391175367423369098595813897315347234283356175602886312057708123803245839985467503631111489088634358330957059756420970874740969054228717195058708104175146348077569394458446998656855602021716800002842684799790986225827441997935684953374602024969793613544037780148556516951656359765195265999141583597418503206591313264311671767572931202481630454838427256831758375827667147760035651671611587555296687303059375747336051973612127595709590457917397909601601313435278740741330931880998289385908748183491468657697678420905877403399621364129086035966184489593233006575244500693152543991896874665537361651093027455347574109071583073422759476897257062684027825111294579197582482037467587886947189297423237572981383532952281893113568550184485924529746383863594792497698706034330333591800958692990255172217269537663568658409751452074108428393661697450344727758288340315705676178505534889102723896669857358589194762890607706677251276116526293606796082545271605642907572115724006960984469186110980278624595101229957317184260355505553720907485251668962794600417889861141621994666070188720438565143896932199423072812659346086233233023456235190567312232222752555220867999406998808113893862905362329497398940751703173383800766443117332003474802697924873843928277830492488590154960816767809838853419943248122255207896948038742042771233275870435477975924795130699382701016504908118976681088763150585888274451795073438412988908861901025189434570646641894688184207905646630119004282885189271626506832434021618667967508209112789832264570182757340232722758690352409910061663896045591490019215698001892372281541242864241130670571888513658944663608010033600843536991821444582935221911811297065129872947428780741434102029565051529677245189882086135543377389392803435256035628789666977484246867242211930578612014709601048416951281852457015467399602496070540650374292979818309013186123131187675338063205722514257398304428541538812400231687106507786744602610695515886668353279064124626384876064826149579629707369083758106037792681788728964381665034410547188742919876360060517667808588676762333024997117651534441288681165653170050455544660074083783415763232411420135248534225622304249153539525406526489787028460296255597157083258484484620852223013370671107029206647833739850237019484748553953362646095915417915883324662079332103226063518953567431467546900460995397486381251807752588993256732219045223108923866914691853115147332174980347165972942224226100469290527901774634900125856819965756122287673552295558580340810829552714795562093309339455624408447837527105561419431553676057905824103633008353278210955727947436784938583475427013104933686997699966906656416355404428548557687425785312183656148724352928629888125744990711154215147403241907962910960850429177972778034803767757431801930787691348271444879621305400293663851507387720167169276914680484337189905241065206049557252563450750850656107726979447952753653074404096958478627088239951405730907571126837493437891938425400665961689178026980258489560057175742581833368597114586683365135319070238100151504943706352880423405933338442616725486015178048641713945770922910681148627470347078479832842459124541845890250228364270254840080144271337022637780138361204322990020935666158571353933343917740367145723205255263537654530099899280379925578426214213330938618046803040080367735508205047807330520230962054086799156792856717054813442088025635791198816130718624415605106082125342560638384081295186043641593956300414361766111479001000226753508275177880148264489675094709305182763181992325969494305678625859467264498864600604583812629857283290037985923207317136296742377967131863651016193895046708168667034606413101680808083700637144772449025884273686689073585330601511150373861230859891465675066154421843131228119086946336307104003785432168079152793229644743350658595516859012373346653964364711604602746826848311238680200249127571167725524801327111525102936889185418010309373018838394733571704342224400055117608241922379009566528722754277073648312717463677261542509008660195094461979055805593418948452474306725244458163841199978387960834730069435556360717354412295603255238997860639596412484984386807447488464739099410540974909157786624803121477086519677079466607662523878348570026445648952097912201265403167419055568517008308130049555878343362702043837831026870401363839183656200225693950697581984654659026249157137864399503365706217010992491004274428945937359216793391876780572196722076206086972508711868529613870652251715237431362964722352607452785162224277022682032188329573634617236250974308581805414296535309356553455497346458016083779582948192332838752685266059783412420624996936942126942414645099163821865475235641746762305308643324535806839314345643255654410162674963053681502882859607805558420992151235768315872643237470225612347012316196640129624001131966746812323758744763945542077613433041427558095149940370858966733974828193784639751761724390974680349261498760737057561678639001598450656185982241627475790423080099248563463586373884106704332236983271148849703423874744961588190172815760660268924679000453024547259240155232387724042306053082083393754515014774534335167728558365817214382161505717848286651844262122746658338929659313983911191707304727007642633953266830963126471881220807287421647625832935211513087083291682376610718439390842801873057077157102066788082821459778933571866206907441668080117234627899561075312942274545896491456274521966847714665773316790888363357041887062045844154822659314691272715141805390988969819887954909381696237362205277563925873409479791582226260089141048043845133529686797180074660103457193432184891827401156506979906481401096537721887683456089759629765175700538082470330527510603467278016902206745197650473464306216938684609684342771781311613565780333818465796415899100862862543611184658771449443051856817827964389314139145258029044746396989364134471839972480860464147600080728395947080834095359151164126204776774307334863474606957894556249995636408318189205671637866856805278872207107404603179498869294532182230180495161256758840003174291784274287604891442946284484712911111585536807873469936763437863456493611789771151936335286584964391734126775842454148366306224733219237170917757780273533703114977949996411260766944738457430444714518064101483700102836731941536836464677821888206848520573946136159153420337992489047221753199278250430206674743896764563235081819504263526819128368410525043448940820933036623150019226125063205898736055786708707739509638749157490092718313131098467933321062552103145497862335866882363198625672642973418028656741990102113031446325735046372579398093390808880324025067520863626156144408792306283853279883473782661168360066201847495035156817354729270020250341872653527340760999330780586210284079253948009037480803344449891668820949339409109107128974049954813430726483909486015951417623445279041025480691678265222427014398764594902702225914857734854159454447247478213201505501568714734874100022869864177787444039179776472680819708991376686310676976338441245753612146501778683688800314280967284522271677936414676418506222266471050434454646500065047298751516249043036726749195857896592458050460137393554461342927749385142264212705326404623568767260487989726110207844255161723397232500452468608392776771917916589613029025084920711220312410754672571277202147897239058124576963236612392773155853948338663690095419627667224255655926609911561199778425048958210946766778511926263094723808332934933608664641040322864432862755535357707622779121551097041882681840300910122606989258703711688524957574431626501161391363791489093425277106220498906779873465285882314637027716676984674232896458946149679890946775790914104266538753874296031881158675809335102652996041925036880628433125459104643677021964676211699847853447653797132881730671497346812215908349523162224251880863815414521687911176733895040017285749773531453032526589642361299261934075332813980475286910772827446596427807524859982581360017512249908673877974532467821997914237693365890939521575893935450780857316968522260985934132047419733769277748351015099482946977921423720326025871456768920222816744552328737257318882448229286279807297511947217140671642195644601003857374752731698204486099281200229480177065852828123374218553664842142745755789598721766797036977290337341278724187555704828024108052275487549307440801971697663755299989382299325083655945082763100121888737041311752807847000375428794457036363289555139330990402787287943390090286018870666165919298212813489158208843260721808351041214550956558382924580056579506538856118711696170758160263955734255602913735193592723728874458850363369872703599845219110627005964050058799601994427930732056759235124791612190203761894633327529048781522304654786012145814047038392654935491995409120708976798154088181156928452437915701767865026786775811925827207031580153995407414753459625279368801509388272110213231116536001304898483330784429192567668344877681746314897448887069961457134667446659267104854992701095979742969584923310644905996278874158778951499125043094579486173018881101244366328594462679048520539286063069266781905436059883125530248265414201757794151456843881388953756731422998031929632834637482821174118800093508767806124239616421625887631529827221092920572353063142434058729664071960742077913424602926845346187840926495171515203590098245801845768249055364014591935235386718061155722473715071749914923413750378349466965745816402855735979011452058010268867914367624880997116553892926182267507759681229485039621822341090804002428083193422546822270256397549091716594841309370482508597561922939310610732507124680552241986254163031934801575901941159707329565685300874496782043832297954624441226546910528340428979504600334057714310466052089993875612814258207085714859909163606357598808166895482501530351909220023726455851836885940598041414214212992212002462029150199259202853170992774251185544578672210441874117933343144331045769753388625084686691961409686862679825415116763499108953754049119115944241098735974843724269619396266957141370951179077680422344435917773060284136829677702091978049553438232634107750466070499419037965946313079553663662988766235095367032496193808313679463763248991116661494576109420943374623546691701045240281001620936422011784085031858440550666817339133542483815869440006697991303952915154767233867247319183724693562572637545940985279573228559097002732898335623441583713386907234259363903151042477926844619262216476569632918875872231801508099977017474156231874399729262349125668672409255691638741189703699734881677182622252918841019315144262201382509842209291743356159784921581989072582722229351460823464144613916261952699653021026992213152349579459035126275230865422825747330405194556201355581577966740773664439923278954673094355386401970299009219363154947247897760625495877978160306477041819237171556778915606485730505459522878002963049281504223432324760808792503441641073214290344570273703237757158971916730040987163995101122302941400270887484872291502029505333934762642667469661928974423753386556217196859308124081154055236445040137956609377643359377624228096416065025564771751585872134285332276155551438166559732184471670809381941515836404194270901303887030724360187703217849978229742009205287144052226163370910197195104550910383363776259120178831557913811757499489517707380701781298538234822795205280897549095029168462294419462609271756281503467826501939106800441497793645972941437507882315247917035815067138265708727764121935807323616957873172650018437498393086513242705670344969071363358056491752652656978812059526069905140534213897844020262938344761144364449138267096091067571950824564516570000615308347358233269811394275684524095833489956750335129138139705397779651455555443347957743481523458963180665682752613700615744266746076252571873901928568589590658124936381961693767373168590907430126936719445349474274242787435969038382355285522271401356871805611396771730739367663605481368961898415692823803669177478667760127811536310334138189762436507923927779780193780525258069409090791606816644048910261099053756877665871195133061344636306970380540436229384385524265023969755729979956440876179706663788286149160104138700178500449062457095451419009309997986227565398677714937968709449082848444823656008445924109647316151752625926685126839415308132324416460377914825209959750691272778052006407237887793565094816574485162600009449526382860280990907347978586008081880310723620050316772965185913169099449311719189984079580433071769716011261504244603609952137668699287740486439413377623574415906645143026331307202563907190216511799120759773971112664616575601911982070840608395620749895729827594767276709208219468106400904886430051011995430405560761786823957572799329652719898611139184817625424945652395667562442418221045697680570527333626398290362210779075875027499137567378381015551269391917894211837756299548093090547944212855320272788374267951015609288143443607953927835917444249788070048955195900494103749247172956015219041101391369226392022749601293714344302530134552152769431648632751681720106215087331268902194132031278917924200167014851621279982721207612729630475121456946205972621617215762873432873579594908355267117131731073972187919613905450610395509712005344809327484379949263653429795543213541057654555760826868171005827003448583174146177472438785133792735298701842096428708977938450608776088928083753516319433610655645390060977480607328750437537341503084053547106578622138103781481493221454145653028522043430978872018204964349117067220556573067639668883252648542450998888348473138132908594672765741671475522046466758191982631470959487474139014187224717846436274553163624769535870206798678055677317928533831875662429269833074222290294892849226608506281300102039567467626408858496686189143961631271976658006880140228937196754887266314629699896575620423354000144199207728660586139535691576557564688051138364700757376860748280260637653672757259642786251106044892028931761004619346639143720365989151642875318787325929240896463585985256461118816655227389381774155580608424171069649616596515944390385264007239019490012371871753175760325070645519902436539934478640674307991026003631345412208121769233307557635115837322404985962095246110031869459458593981157837554229827892806920896591848676497906871393074377997372600246175780542437635539638268585857224281912906513783234858329192231358315678243002920621667657371401345370760708167170038618574252209601443691397161252316153530939357379768994294003460522908912059894857460820305224116962873747000824874147017344652884701464937875411898306018934544288705472769561831378945033118510258653666694199449635055873943684713812180000885497568275413132274640701028932618573561330463494368830886430861145413905021176599287059835034334994497657008435292984257343303520605157092296581110317913548447757586014998294016955330312834166080371027739422678725274198031627545856848527038283144963673351644000356747385099691241052756179862070751276093050615888212513795927399892950492607321954716563033732562669208018410573574260877515988887008900493859560280421165439632355217388674584888915936468185311571735525854845225313733326591222820679379777801514700614142871120879867278447544139162925211548122375724694185252965238859212748247950053455178307945466686956219710265471152824260302235616820605076122154202125803956831785018581065073393004185155758260418697471277683415797593604009051156561485251182673794572512942671996841604112459613919725508651234933774594953089895624306684036053235148514403853751170891655298615661163380618343902979690317179935946657746657769032041733279306033415917436115191104897513467566761944389836130036611112774873060153582838645722306167512856252853171001852512751657544207697835767675985668463661862969703565185359845788393492732864418332844130197989538138164928630801885764714210158550976148846359520977409933818145797408242527615168811591581325438586032259808700501771966171372524599335875690672454578090930605914803347810631176212147768643545405043634802873335031439291388991696931496304999868429290668973104772203995400457311733596574698537450832527361969498474482354912719312447633418271791400989952984326571242423214890031982934862116624530875139473345641820886093256237062521637233919961384136821987412551079524903286923696424262109814236602597479846553776626031473687212927596127249057407873666231843851685900615752082992278561166158481440805358422947926967050846449718515522677793483711931886196083929936597599714081624332795381107413841303444772565001666933967128733825135541661589267431810174332304174682380724567488347450077999621372401518080922064143299411018250452549737913682603923166041020430894892449090710752849896855571099934036945513515446195772295863743453137467060230078145026893936630802221966060548158220312912593248442517560921021856401560195632242839502212593594374337825512938145021146594284661250565988350758505074605870406134535890462411149324329068799577664869908602680237000600600431332816697180074893217611642545791426831154729824616168129081228446197774588850214761577924984122096477013164539867940220888954609921934028867148477179534196490252065169225722229533228205016770577404900462999096897650845859485392978869807729699069656273418849909887875145188622306286531988014496621900465639521205343182344325646685720834618814426869487013815205532504152365822761474655148267251591476860081906122553717182013071573632245466674335093093544867826050617151780129410388774147116269390009413477675651911319956277785627364152434501573878434535001963895218629950905533830225925939473865357110873691033698897537795649299643239593757268084345657701761924829468559192165634250937385765299615638315697685604201963085374457939173485721601583862173846931333672034185791547984983263981009907827374574074741641596052837500497279162679220639243912091227412263392986737564197011959677834306954408336022222541965868756876230483051233321101130305178817667398411012087532726745225605109810315377355505095754705979091663157402467353884026389228690022453483796275520064807258488822057042814415342874983264218714699464009421226549184596322015646798167013795218088708258991398119056356373889123930899189050001791433645948705476716084924596576548872863035771560902480810325162155372818678064452655700074892848058186400556915223835416261360043441782025212915076017400356993051064303314086019422888945671941080170889460948845749697575394299612956564008405310872631356664385356777679853141947996713973199040928308364210528011980193571286650138900917216245809241182837730726973384028517681978689215926426098081462783767647706680501830166546493885705357942051125206561304372381870010809361400825483849979432689901440564486712275357124935521077715030880238419145479054230005303699218317638696947377948503307297237723458338845609392716185549758835059695434832616780526894802482503615975731103024722978294990943519271880857586770044437278542426172690598389124412264498436126509103662947930107109442328207824487019116915865628485344929520528267269523634436097128125893610671243799663108095818219255164624044353830674410493828570955115897678818145329148322590855805711114225789256313096899805803517891245122173044372801516276871277760392261902231963581758364276085637657149692963251358658271450280117230621314215685092758223790429780509043987794686261588490309495618497605916470354797749436974161264373460886411603183873133700526836137269710439390370874135054935281059081969728463270596431701311441564036944306208581145617181063401230835649518395102677938223421177567753956673293918198331227254700331174459069548670602199363701045143244664281777966451139789455234696980093277347097682183576649097805912422376322039460332201175009622695896510185838700933425894620305207422737598972634179568762548361421473870370630426564454945697209129970487912257211034718281842386266796949553171819121391221082245306510219472495698040921544229353995494100502517907905325716691302502275806912185631604050640306155913873982345429593772070812682589643450862994184932714522448151178121468258652960510785368702052915328958341350507857104243079842950710187365138970292396089583075011430032210486398471409416639640180858812779526883462829788146860344056083005627631883468490805198956428401463955002616763134809432427746520690882893540443524694613989792690112691769649552440448902478093529276166893888065620128553407367343198573440300543439420755606784709559347961538287461061397346420539035371086029922166584627506203210795541597604673918520883403398731740467827578435746263568085898891258528554989220715518614318866416695627697438183655222760058535256570750969179603771588812658305871127363273188604354251058992557047361897828678114160711975741077338089105550133956847055557735333745587345896104530575153245442760869514194685994232922510712519359754360736085719924494918664687602984494910314823018427697825853143324660171058056601067852263137644614907148048431436021853449270143941409504879443286988476664228761108313520838506467951143075980865299023844246156100688806631952943592712675651772469104492530221713134218640785294365495254172657468947006033422635800533250075598798483243343063001744611756665923330655277148663455189153144025464085520213517995856253899819540500937238241904156708205410811129222665720032938872903753914611448949900147854739382186905825550700413316953391799812580528205905474326771453467078761065872939822542602153973888665919856450112555930155702613446183022371601606077534239944793721374349384902537393337270772526359424623396944612857943366893421990165407821626378413386030477191947099645319532349415782375146415652029719835478112024469744066483191849138989795178639836892506283132178847465878284381117818679883115077818346232790773615815034895250698706513262356459159455635233678353251825633718572197846599838732658014814636312658111685856509078706677518306953203873841745567611873611668314890728763972911314171046262896693976373823871689981534529109306757347835970883776269618063327428840924907769940818110303503921481013052334107273902781530361170128881037903711382368703667530541753694793239371352435661210550046637315542991011581360612874073308792885985462255644502990203289614304281428356839509897327392231283670056002906603680973018083110763009075453452633859458163102384988489639285342001109213027952478664447831274416024404746765774793563258548215355308113140992753751703834636946857326474575128253078372884809209992562759456496548641321454791037764564078090554137215294477409885533141135255789782396628575930598934497341471010497342598280202084579113565134041883691033371432509583529232519240308325423401777586258297830416457018483313524153240112078053710576812717465227817314827001934932089855803878309752619302267474869762470868805182526713578716276326493296308087727841742830872883178414531676901460227316238753908232394590810079535629427783526542673110268079033111445494734740990390426233275178852804634372080202117688457414663280877538627530057206663427451682533042489540464229721565804979878779159238295468005564368229764867746607392187753782245355926756654835225648577798290754522952524261592696272002007488130681323443243035315288177053868537076188820706270052545012095500209248617568436196268559372784908422436530459728736707917400976938277996774435549231743843602367165862995670217354784875841154141355836277685535098299198432807009446463898927794219286698589151562603130439130515317627909559237964748061854615101527605424725194357484591080424173165700517092831756928878631826445316637800727366675808839360861204671803469126578768174374875790638797218726280703030097125133405272269095761307188674817115078175549888559765692340055948484179563245629962929554537321414106688322451108372087225533852968403017550802538828334291757640751177501118703081894482101850433742701060825579559398026433444688983011490236537265501241743702976044258243783553380030188980363219492037514193908910521011458749781719320431387229973645267238300191047474543206745976196859358416850959950140085144459322789929646365698638411385482457537436130436696032868671819503554027173312546333940969099063842058422864980951728142894675420179225004374957954085934530459059288582979691062626537240545700153114724054476160813030744199521971266574764018788067542413744923437200238807517628416757585985544395808955887510593788987675915389049948993521220178504831352025333047318830768719377588321023375510594541439670502678938168971909970501977121164737574870489097342493832964688606157319513336151246218540436679734570981146551895731316671419162838811303481453823402895622872473013888443585467990136769392794712818961339694296613560029084648063242317092342185111774269084152497091110189905075846608256920505081096014654547771273509441579737812606309870255417947377264267157813509241530233311378491604588514524338788305629055956383886852518503557073169579768087677599551160014543891224769011638492438355400888384457893619330685804154628362683205383695871026045288121652914136658629837479103581392751500156910809240581362995615096504951431729763957945661479526248022971372222995008956381151584894438007408276202249049538551160128734546811612605959358925194528729546242467774961482419927263525406421227320274991621295640364617224254230873560836350626760631861112048805075055843790477665973848008062939246767974755437489337259376883564361172291957943739039041936924209364111638075508931240611338292193886856150470801877747833797053055849112530027525924281225541266573141387433140226369047328347235713526640556350468894499848175366676701235113218790836805506869344061595219625160443882853253959507999078254753329814683522155649517435602526845269649717003373736334828346212364803966440238947990965383196477116179812551709179776044358564702537585630180900776243072672129682185291692856900819594723570931763309710491892822594455537639818371562505258207191982772465789168813525757109508718101098300942921576068915011462860097686760946144412931007298299334623306488376741022488755105020016490805851197560539845716277633487905682638858560174541368956503650035387627428015900990408633370595281604471247715112828658189582332422578477171374870162419837541169419543204005332687202340051986870171840118554940832142138192444177754053851013223313845429400345822768612814213992578326058543631194903200000439979732154640703724069876967151712881560188023256673334133564855958454219804317785700249236719437447827432826741452647755687610828125835387137527481983304020548813677193723653383767818160815861778849061684597111331203285673212091152266493565659702739829176033776672821368431435481101082523111728205267206748219704830569936497194672675817011168897077701330723589159877704621559309540283681667750162101769887189025180923141366887459335337763235884167379520038994045589942039892828724769056176332897903050285319746445337703457150714206295799494261625915839081816355242972842678617535842803876595019694259017564390479563340720359221223858430985658951043960338785798739186372457222604799718132555380549466463320874432220800217587865721290056134444056227873203442231667186637044598986165262382845053765323128784382157038400613724914376559703296233478732346688517328791929618089388089466311083012951357265612314892025370061191888379655847004888181766567699983074789356919485046417949473815717541020317621483025079397737164903143442628668874823263264688923004987100171227509183800458522138556236739361846106535784130919120899142940394295700498097267178540303512186830572151824857467728696520576614751891797090024354426654466764187276625489331178605433881818823293679206676340346521472885598383582165162428351755018786557357600387136159895195540680955725398065597205592577420597896527734069579772101837596378182882473302796265188407251725436880458127337451551475035060500588641903678728411406330910348728764275667064808770789763513051670204325212436009627473744330637932107042590630638795264809529339012242243834650660798849128617132436759648247673760229997154772453702056374510930492896142721500409904018699581455653681160708450116971871472823723178548495117784566245435201284547048414676977051599789895318354056838159769273103806175062632342897182839492721962622577197351725797226282241913960833501967513179009628271353366564676177172893949777840576208628285334202757028935169319769066192543908241991791247983683813216525935116896743241043614505991806781553509371424549468837139857215740733713840868867945260330581518824404996488708668672570276833487306330664602921809981729755979199687784616217872915596242808742343776725450356022035329198649748471716624218290747553801194995311307028756627430234758096058180674034907844035421535217417563164412756671030563356610797750987565565559849810191422307081080230189001073194174852300175359006136696088857587518353891186760550970692788342107839619623224373980868095856399640464498909309707119461970145432548658493262833114291100040981804095751929754119672042638103557198122598195125703369747120970118826356619394455784072228957629028903936469197300036054453077030967305163257325506287211109976434784628844552496615813585733442047946010782569217854072118901005164721480421029442152025164894170488836017880565699069606051416744493658680503051627234378678349441368068154073880422007682774202242379001124267180046643866237125446605815686395034486501032535643921791994417922460910013051815742276544100504794544025737422850687317143378406836498083048523553793476580647060409702754769271042224669568399301679667029393557876398215275062336814030136183723173426234508233914032218244680622746609283473298754019845253171582481837393775233839418111900710474404761133564420074324170843730355331092343087001572995232713748191118961533830735801688503295948161766311858146133329360158915284984895685242646013342909545777561245091566653894885795032981367923481580625587329516306651291656638228376584880316336287755002040623632758459685787427943932466624051276360676186520826564662088294833356740920025647524664680705104779821477862901540619510220729847331638990642585360033184434587563045109432056225194277696773558630771129264308047835950859431907099496697725178945348163956944032789216914874757249307059210004610022196206517779788861818990009790841318933946872366084583578969841625931281565979903951026963996559921849329115693101427778679872848778333400055070239940259302444989036353125245539756044037939626168977502656090856915358356642309256611119025731684096873464666821556825926652189706454231009491927855820977501778328245497226215014507672817029990131597194151202298683357436046842381048155855919914142424792396932670506509632158092639961201869809418192010829013835890359588280761146158601385884299899538490024796331778817045455122224844466991631193489847618920254761309918941956221552757455175340717374628770397584477591824269312743301714746967974376698168471410836666319028509717048434232041197247991807426848103263481409346711365833642002548887480357007870197329621616032183229941593498162294716138841175778778383080524813779256684103566764144615304768112999984654233624661162142990460904721979707292802375501110250945585843887383203236564736508217794733263232602323767343378195093013415650005699190037943303617765325141715220145173476209445957520947340243836213835256864405963421827388127067839711937069208603457770128174281347943035526650043796408865233880700682360389712604287054790270767338003410432411620242484094548293373094404040123315042757449028402447915964960485517450796087178241020547625625596439562093322813738829406936387627003159646334393889512546676727343568884838160797171634287600718685230991149917971363943961485847361533627463059196929398948564467495699051391472195657596292181037947585633177587685798748489956173395581437313777777709246465488549096797924394140736257026778873618286677441753667902843840900045342657427927229845860122097905636865532454415207489112505449018910535374127978088580592464426025308652038213679550661102976245422729387933126531252110689098408618933949758471184165233228470596728499471266754985359326960206584905676110735668697971194502151728423921433378287666948927996877781735281263519552735940891995760657837410909161245767123778221110304501638632410495648636813283459103327294846801396459969617035126562873518483689836453050287773321438286771109808483931003894863806597437593139207871262095008203386355689327081202894226614756801473665418430537105961468380534852035172736523293802406290967307814065963198826525515295642720720055302003986606437728360582720008819924123544740966720509032915882921592822352297689943577853517279835072649459124054682812219304323546095067867905002060734067514206385927406009638428749887391843587783332538375931501453659272754157151199422731002283200512270511737146245409957680167097335661110435492217275976442849448194270218195158856305017744024554285326674133993062955569137194044633576904921412524764648258315474249605400829827436922348458587265826842302261504071356069698164618170959564528832057548628473648636240514085682935726903271399805201665478770803179165348606114845508661971594606963310754107520654260129079212625919269566271750441608526577759684267830703802390304814295419288170923102984315554303970355284201622710533672691635352359051745374195380463235071577160683525321041993375487201318840788064529390840770066165248186294412391161270919368757466127157170904925149974756403267544457791141842896425676386494362274278223417625043885330933154016758632551259645701622365332774327476788557983844553924709659975392863070997879780240690433567467968147691106862735055327924744436097886391384932664809630919185327915784164081413316635424301636176932850240334788099273974056666303085158438571652067792982630012773671263307089163742766188726185192182221891222001732440547856920632653176217720134311115509063033090061550687300401676832783096058132778665909122018200710050396111481040104640370523855895653560551545492012151564639453414257508192536759070161420720927732706908592848761108467564248210784391686746245647098013929770530882923452097222541363858356779102763827268478429895721352800063386917624767956294408500535914808197797332082112977810833198762537718973324577208812243882474831937137411231226964890973033999833338250224453752062406344017560147471485364215460932593834491622762519588477937360048217152533834128283491694513908533880576146311929128710472471569474041195544558197918661329586190196063548850026881366680736536391061232709511655901133785590926774386234455720501508259141158891101663318623480326738871452195750860281670279572367952306470247625577569524353488592648822956882919628729546132352210497344144218951118474203277558595964806599314833615260883312369335265006848579252518984105991949924042584627963891017869714124375132318621660346016908215732088333776507955275184336252866530487883323730068663677262254694251742047221173353307015467447366733765954589577108871574598986997295046677691216291732439280160514684840947932293276811944814185354720748512583767301807964109927381692568111088637669266953415639888485256809202233620243229826711479223523634719145124863482672482065003956671796727364934726582686089607076599182950364031068813558987171515360432071323798686225964651498428130755266810804332146726746915919318560034439620299302273802095691722831085054078863261847987597352288420607969495158369810621027582130400704683362983481538260597513587402154069359939833310936494098348637212927646070769273149607853848643346588430199572430000154232890311498149895580334023978435734951699016639621520953489937626513795832510354950214034999944367198934590697539567128851120605140378512024482631214949171977517925342891324364433340709890578187643761329360096803527514996281497036691909989108305415107368389961988321976295098851222246480342877846488941542127664166017048312706060850657288612812811326687929282954432155979136898419629232351420523116849530527148947726338610672134777926729661669165787033139469759722633311239548103769619285011789069795600156353971242956982013097857654695861000084112388815499622711726722569338926128475429960323155017398025328092533148895719521781136998177605158914047288863125101552538896657291383418598809288335587861075394393288527498151022413204823492581317761303226051110840242284484464159838154473919430128359960944946837693581889116709604250927174858761271684918379259322020531801098389852944267310906352019312826679061601079591998815196667825279876919813796296609168507477097552760505510223190574188353813232912209765216634625422472832963083731730659129385607643088637684381710327789894556804626517073146148900733030144592444041667666758633342727118997476030314896805926432149833265143859747085106834482664669817016414024440449906756029542254141604595562651398995067631867110941518369268219410223492458943987465038244292847968131020124570963442351513813064632034293183352493112909897194939021940163480741005244543501731801718749902801647750294462992023651057519103789523166120596228495989109862206245045714149884530306023575182772172273787515219437537614124338885503891799129793907359226930678166051983693760148894749740570453385409902614405446274097818655966169159910523259522420065683090345955259867028483937634161348601026278389052326277670354023639365712026030852729790557967212770230816735166608526342137892082067173294892198060259601653387567836987391514223968838726289708640584238604167160292009858420680802481421569907075018469454903937671172551836189896142983869276859735427182245752097477375299472649883033455156345457018136484595300426937059121029760696468767768927484102242951631227194445533542441296246352166503478782918586159625642926190110926106027479482924959239455806905757958409898875425601927820689548224075931043258416426130836780086208112032217772832454642578885154920872732046309666380215842978799196662550469577517209072257208191807967569696024344547176753611129058418589417100368868726288879041188945617706279957376324450613301298770706476911279641659054990391357358527961099494613564099937282061201768927226853692225266951165315037697792492617828914096053815867958224762591278688795969769330406544342938721077188316711468148793777770967199690860783333089713713968279923779180525102741659255280944042634141281685470198576900533953743809436380054685011282903995760915081233149016217412729083249752716207701673389121824388003341118288481812673750610846840055451366089304707946456642306911328717119957139802888924152598950788134204650317499571253755304970246851964073130121104501223478239541151659078661840823356502454300183171072633424112864455829849773161689634881885152366239183382287046735542773028099339079244077372686592828353090537662747000552877403581430593188297971705822874418996674117946287012742718492875713770109400547749114714750829989095165099186357943779304683898049440628477735406693162260479314662260611152906303884086809465558628247854096000541161949849623529740536004112397352692569041827199430421769130964921952785729462011915677707263068179805620188421654395648227580286064708904004628566168533555141829368709870540691639026757881928382649057238701537421875844791149420548153104670192362029258134305740339705990979370210337777748767012086765643379686826662377916438784967578365252990071445738867027211884481542886795461023639238766145192685675167421075160856086117116149956258879788280894025903724554558038895579825453534187895174482633806694414201858667925482230547527187452520911904878268365136857671817256312742365942855332399826693778940628291599763297983895939534552923845294413648168260220677477668396846697140859556967294209709585066934097799616841667244726234515407812451756286211415550241604097139394877608484924683315284320800379582834059394563670103561237263620617927631861807980964465406954821387824477653423267236120839829676083589726639189776094146047065686936193621932239393725266731470983241370921814642197556645911206544869265260033455274310386339877173605594348035907168919905272553194444843491330509721055765111730089733748615864863089518706262068030432894450931139704326799747161492290843634478893337899974579259163931165210494744268861928732611555020522823327889216434230281845472335478158213503039004043655400888283735614881972907091749770338323060725069828158807821187328501359385258757823880150857380269082428997886020617307663003637360800987916658281678799040249246051609717723234449790136263856655989078452210383787977653071505923324531443265325791145922582506812203422334520789368855280947417470162793650838847177378887415156404972032124592736629006175142139618658807054844832316649556800267883954074683500545204013846963038805454113573167348918763094682435103937525500520169951441399282796363989838727123120581908612913238407852849211297447124844103498904567281404290959846911375443755838976065546882169497622937767179507191342369176260685647598391546218868057610294236411675926883577911694449727125333707045499397333258638519898922411737223882337685649871630567211749947792990636839858980887949831322530145838996390574744143176864091636344662442662672403361935558755383702223276734702924765343576219160289720605020740758172536123108505486824489925647006864848532747419555215813692524488524895026669544470685842418227886151576362591213661345813774682229427348719633188651786049914973987180067191910516760922253489608109947000171353010402204478105817579725989528319547385249657349232307903627525640355528127293297677519953482601619174070121328855990051481946205064524309053438914116974396119799169776551795443649885552222626223825565793608109718830419368984840965787383433281303909713536744164887980101992790150988342320043131620569912926335618724602574050207577311628558206457956618979279220436129348939558494341513432338513359106153079004339092628178237758424465221759634893096054712102588939039963198211217714082711931090994647922809226000068009874006381518265193161534927809875383217927567930098533293319638034713180356943234428816425736368639121354267077867518010953129408260983943338124035472272574177475481607609386071044681882231787811828344485924263097258228659577527674775357594035561483076147545158350875909336997384336921364097941449041235675086374769324578661795924478347439836755902163048322076279363996744939647455288421355345566785190990748146165024432035723026540833305350522073938629934579040255751015135004482487622920549264189923546009377147460166407956375024754131388826676898986287671030231704125323603239399747487815983257175460978946629249371466355167502522559329763741504009878233895517762254419435546472740482887490872797638700990157668951056035105836935565748646333189786297807188247292232782795946848150796120959095229650399767243059479627918260658100185733281769618677771455715555374795606146113464031953469930372586854929431115612129999688226265848858707145723345591874357111898130957298490224483984552242898486739148019830022994799531089603303673437319934685593524946506445672794868280678019356879743431401422327360065115630029800799593095963841279369195454947264015504387396296868032251938794122883621386602796332403593605734342829008737120356751287604260068556838508173449147053008999038779329727718153229416501412240084489622540306698630847345362176103711202744212834192641539005310656007961169474497560446841872828239005740370481214133051866145329329716889394585824586733099864233728322787379783195630411366604925169660384720837666590414088453019120216023221089329825082762276883276436216614965536038157734360720565883042422381580351895627797728019748294676187235466810120556648004138310096948184978570450040606116764847875799322299085177328393607064670191144912815920586968288541133467699902731384820723394506138599263979060750097108672941615209862495586501164277078308914520958183476951846818578291739391219368576816876755396233377503425046753181443249738503383569096900609833844341994412686459924604495395503280449742435916028693077594353959927716716250440264953726723690889689441356547129431510438223540242322856956792421663945022105791777339986599260936892287349626553505828999007141489938299461485459119960492936888973622580204769279928620747940358644844063939961073819247438186348077833222631828811922724563210500581667446341167693960267514676785478124337697429751511784781673618737076573367045141619432855938782271979689128163252336534171923230659703693848274718985364875204627770268671425510326403890410315065072656766963640762401401987325091422270390373618383021038180243773422285764637444117058490245254592225163033623013259651873985148611737634920154271694890356763004094366377932355793615989671547043715920889946753405115822752791769071500070111323871621912475838678745630909653200712052682843883561211997813169979568855470840047655466498585099280455302476980141128597263903320476733109325075224028538654914959391269751624627609899927585004815981483373165888019384898550582302686767288113483811006638052297269349180740060395821931239561206809582195689267305724086785625942546421235715600816399543401755079384807529047892441411505731191022661034470190736274440374168607495920853056915634252380679912579954870658836265430861516286492575976672718109309725410758282815551858323811329201165132401991174278185122663989539367460237449009405922797827518386495184795758902145848788877987519168685194730742157595920362419742174733664838502498970098976103797848027696647894411236824606648225025400730107199309893032666601603922662178049578355426594017220892171567409563092848658249959880216660495470961316987587748488712586004042483619412714602330521034046275656664272867816413117643675986868939784820337016462928738996813216295925826341380380030351080708076811059225021322689443683460053475430911239187313588089266562358466275692307901615230292388516683227380489217189812183531700113635168350442598910927256511510829035700182072978618275271119051959903187211306235585617433257327523148736920355038624489554492155924816616026000221843990759315254045610650896179388325157968722054315848104562908899545230184733546241158311632014606881083019518270770890107006526019564978191077638813986548930845096403378465694020635679163718313771822499019206230458500547640286344511352990077922137905825079342696705113784837549196593552416889177898728033120668601481841648642924702044957240215831551658944075814203774148508044401701740454049979878586328467333611149640620819350109573855223633393001412791915707812291865349007005289333190668158520876786519650582910908057007983090727634716855832719827313694191639256247356057113835891958542493424279285863171704027161442587993168499717563563591014699229750292223961350969490690066013785336720522002684803280506642245669004236842264760082327903163948907401379778655270065307562987737480522377141632079695780352302271329771874923482821067629595714151003219769097399330666458675361168132524842332628500555740662895991643992579383153670934730943038226724136544466190806763008778992871183410391709969419185759326521488388275582567966261197517756121777561942987984566827703141645049471921280071317308500102104643664823945205454571282678988983680715846172002165252139617267426566132107149385790550894729712005651431689293591869796092601415451019834711237928736066428823264165415519229713084489621569158954346364270927847801006834292096511797653984634563083079209914450561013763534062799976874903354285361491513305085851798348609799550118423528695260029823789790322458482779418162282877555958140393125483254378061323478395540829537795316254970089806989203007266666702041973910663593567263445151535880724807744217955262769099467454385734350814645609709446081979990682301039601242937175272331047767448185029815104874794704597330683230811940301613916271683729010329455826227213027234852417601513013186753513414512300653770526504747456232527605985149952347958848378111218869953632151443724389565274399814375991097973414451077378891958234035471009116424482604113235820338225328177212367602885700662961427672506450625521574273787783549920934552873825870290602211635608761169817231168405134344680171407687890687425255435973576435449264777243977396009328117820792564889593790619606019160337746820522119518649787671668451322041101057082682477900451454036724852684264102938995451789185829359518030877843227522485166224997082459397299800975271668440304045544203692887002427362112629247556725137533416195835059547715464398518035278838655934884595578638252841178347989322547150759101625088454874486787683272873816841094595319558684129757405620547321388195823491714632933325117508674939070544948771808140736616559805615592716100049921609279432687038554072260584406688248687505019965745547408431026447611035367593741670853572040429175002636781918366199040003901892789222764918660470711013084102859899931374456519085193834937575486287032102517938440967980672025133163118354855958397096673575720390077420841265702213782082967024101231275095709903296471599086403564788387964603878571989556481269434376791982987142254300349821289578847769070842562350056236476963979283275981266540744412197723530184090087156183974352269796966231441508860907122151546463513912472374578259211098132530070121694179011435517004220018410405273745309829777633942786693962410177553990032296309249046448782614970583271141287867677620512799635863471122461823057491270612803967748184988861458122189260262519645922066105073611325960420021764320423022263132937659654138837132079616945041744019361970258961716964783204285326341439442665703696756045269601648375202171772880702719043688785048820474060297260356683687001544139712715585112318822782633720075639388034575296318851837482055899448122133237406194146776187406147219573249973700706704126266150749576497846928999145439268318859080295420271506225136333933659990272177220306618082113267760655701667802529690186154767686391352515940265505636620152701699992655092020341711120683445710577049069535975914020285364236149645588857239376780336533764194948123631500289591294121867878031958154081917389096174261795832497281378303487716367592453517323918775155750140177908820813414492564581214758755051191763061184010404760071621159726889149456872975934242747009354311122888114109249677199229119885705287812616849655255415227167150423726022216161793086962145049874844004732204209360329843865370676940966584956381927992417538817161950261852098128073641150807019721307436343452588687851476315102171439010047123111661258630553246475925631549501500504436502393088738882316744661791366908006339892099568414241650961040599533109124117959155689634472603560797265588659474767584955654688564424325265410160267589183032032599153400552473754320613674778435737797604791682196478513668881258707394607892142122137503057124613793559156385805827417164571909172309425626746288677769553022949711027134415497451622783788001822675853623993611184218457218599818740345726907022183781721443392612763928000175429667369120305372303231606779888838743103287373586162820830718840333701388437200051195015646158908129913163220743376411371810550606751193533090693512125602234346707744820522376745826962635768657990471573216194627758711127521391851908973229300185921466863672377817924111163918014470078967706028685535866665109666708780769333744780284935224094604426907850129600850254436991295666591367647100167254548616386438956324307688548333191615420939724805039941204938848534479035247569728736044517507425523921906081589731212469932279911026747902017537090849310175339557383783915580731725020069060217809424149925649206597543321333067717251326020718807316845909766330716762437953307777851343768100593731780528923167276937371639939583139929132077892307990139199504039594212264915622447123152249427242650950002165803580591364393508034791519986700118630419443892296717438015334883973245851359488507251315520341675768031424666293243392968011878127412846549481181181893407438332474694314274327118771900066822181806720105242094553730374884711308822454429387751812208512533213701483320291203962718958194742275728223743866904758005201926015302268214641281059241257604844392440757112907684365629643962699199052326399920472416794828693804871260189121668538905863732545223778663815724945348611205801495000896293792100389683247175301904868144000303300806878350258704139928886198960139550026697117965913472518865202038205533069842451971054656884236070514909157922248804457873262701863515909401210272758651634889007977850693621411330841712470579547969466785419418354041043764578233795697750079469036811730737697470105400551806012184289584442465024460124453639152916880255324405757623692586253466374263056452050912426624743780568446840113385977808948103786872863247705030501049515442450524778947696402055214996074212467252410799456940215840452502242424856210966309522360336231759969395554226425988383117583459692020143394871111912668619810121161218376173009146159359672340321901962436153939153549255186390700321629745226202703634448558261352467032779200601538339201852744290978980012616739188246506777013831897922864245434678981847611019415133722069166773485904373566436353631584813522502469343274568761770243255477259013643193301242529753208435832433783989060886976076778041207022019946679939353433070998715997126927724144041475064030038237948727684166756436844804088308928793205792918967031200832415753779859026459203996617775875986208929691171357251628906078855262770816264852825058676265206390111844793698776514806338157457930961845591433317803257706936069513110383800312598794440988789602951328101952564784908199993248701282652780330106173638393805820443966859372012724975642945386926231224820873637344919841999053101852234712286915984256242697400107685103130442426061118617086492008800339740631309408781171426283054242027339226079186140745856255289089931177314622545348968574357016034849812401942754675196148351945320289877041589668115194786819448691997549655826911760202505953304147306279219776261932910183947634324382107130708323894201682344959247965310780203665181257359877490763962513998754165200108274598368885520084811070411784098092180804228329528799322116167073249371036294629137391673612947269405866064159393951584818114468777265949650621153533938020694129950722659166527738991832999504328924405430039419147026557040896704496098885767118142199309706759727820920953478385202778557930604918880748742801342874995098364073885708504291840365154395212562571176459845233331033021779971388236438095950378142449406089220191813655874305625103622195471374397131838835396425382434359597741990126994783772272989374473924004261834484119638870458073341353621077093289602876197520259279471902370897490828592010054826310105747391358262105070924775984791584153903138766874923393165118407096905066852170759496372774290253321581761941978649652054019493451159459124182385519769851987610834337349499310878870958491905563258759092031037098839822964752177616758334486817700141017494563929065649911220677915788039553398657456279921926698865016717640764331995467916000093145782449703222360894543444388192324607975950719930140410943119092192695654709845086469835974549180907580011733107844016049550614997240009940587353707784689012112891421584676824499102259371087927610685424550888368392232302877491428885065600262347500655871148464398001947770800792976315751454404776956429708874565319711417570279423467689292170043704995685547293167958226753942950779088758093706881160896169519472538352310196823678114271454968304700177585306838960860276097560184315087923248157480991325285104745686921994593028872614712404183623611886076656230187705317981174604751817773411734680578820331283880822794605841922260472711815660926711457217025178039241362632619163895212529841247765263932584412476381439263688462414338291339546533977191275064495126227217501393576730938731199980378250823339567592399572854478637625983708318251599982053714754000674067680897544025259887297078641206957188128762957294687875247188596228582313881650349442193224146732283101451655661053926526161405168673179804465237257618649157373703664989264511403057683764495095550921944097253180474893664243263381003341508689930187609256059196907616830913988001331600527079048886793694850050826083249378088158483734792585309543674415184480827545341190996345057354032742904689865853514949296785939522656075217429760910824057879632828907933757431502355529463574833621445768174561060389784655070417949201704984100571913666858520337584559485174884712476740110478732711182490863316639260880211977977543869507597200899537933580890659964928597786306296963232457324711702013932769881531570664150380319440229774114242882182307964919758662795997053752157427066865021726918138999027367370574859987484720785941003856590097347325105275212556897602424478957412313723983985155189253363851911278984840600865341348961725790691967920397397254561009938669215292276505515089913584713367815197053787054729151171874169760680096597370438594188124815119967374007812248551152134633447606917248170674796943017095277973634809053637333716513387679075916046202250634615359698782584498995728500322549418371381390435756229177150835410742289563116822219692489997490248852077534888776958540755474398942838440253694874186329997598891087950912600920912570253208547639211346075491723823421189216218497668412367851527115214049192894646963367129363633457955763845462994733823962523227704471967805697087833320748338660881400212189721840962608129114824075122687289211260642225714287542852271738484159217903966818421559084851677859238651052818253141348539677871972297702287512032310527743830062595482095912498478246720513784815473227076801022824592381140195656191772350956076671654288199307602360381561494403651875448925475801722835278136440448733397570052540210553048689039716198009958227074699955244136351043166543100953926679636777112859912793409002543212138230497977100300040710344063775177899646299168010142497087657835500085680001071957394649989390093773241163566543956239336661660459802868083995783570701412182991474251403095086366504315468280339101647412913953751893947044672858327352349636550471774041478522185182615115450636674297144048304881334808317048586603557332491142211159089561430755969501986274508235737844780762037405890821405274027356789866838959523813397743419937409083600021194667971268078434739013631365708369510968080532463853264930461268870626085243976668552045080433191947769331009467353271998018327097849241198461221610948584579497126053217473123881659632560832127352896853671625835170452098828966457063410706852481793794302412654456255455038046363158901564809472578054214432838152804481086337210738453276706273504984090410221900658800302274501396795369960526713660786435329186434667802065277806978119309600156471189811597115710615832102935539616490817652289854745735728315711402405092380148378791784924200743469564555655559585564352665513409697840874459327093789541580936989562174350367304538665069836116334714841277167505122170490493723147045361005171190252232495724508973476803374630495704983571808482949567900965042152066887556897070761175629535740194017332757480373469886235093318659526471322198499666552136180565525209504907079121145760110987733543594579889779755257228919059639579493275266219071436587699604872749735351662670677065029889593919157246517560200215823074642051403005235153042385843925760703582214161963417040864012549090621547586885992363385043529909691015400490190695541879609525138409436563520476523539015599981771558298904814658449692635601649545991361223691419551192342592650793175049673613379467773428704523418952673738900219499501643053644105499989559904847110414380578113374620750841186013286583255993180514680551862621118617362953498928646372271647812119391697070587577656520242110105426312388559750598379168171400220199645648807596990038443449815869751835243388389021115354094938212872895802021431104422118576223194105329291933949569718198549117150406252535986969178352482973546792227725177250110523562657469105252924504186692760739488550860309206394225106661498415511226451366480526488916751903956167139752845042496626763318175299488959292343708677546333469908360350009577524622838196451820879949941348312484628820198378950597770490635993263933406210485924588116611177322935759296550170666049519050127476631938206371992208154300869910142125565905383287661222169195375978971785988252463926313774856555271760942889455326918379448948963370192301915768901616875075808808399756632929112280481749903794769412275366044994233835330302985962104514118072518904468268701190230617544260672040935183729901173000324461514334756431670671613508171342784291601472249027135760774823990872345322593144300933165476553309904587762658212809264355699818076567667633116948326506466485919490397520343351357277677152256798583467953442615951299180213880709220075582027749950108116149561942489057240353234668566034864449629059650127190077232768216608690627904709838928858611419365377124930968813214310259814956227140383697978217709106098484779413764782837220609232259012300542453074024682712706539913706525318954995353837237082505830635102154499702155081076414244675522805776954107072211995463859897228735674313111264179420122641319267509794429403412933050570106206311091790345843723598309130100203702609233073262608475532739287322438947262079251842453189234250640240839178850561213822308974368724668174569336766244780287176355299092366099416658974369259852723516816115031575839738557313107181031703762957284825807032519453174330792004056349767115993364023341961545256422396095029284479835370172968619771627246944034513536065368484734311449332973312577688754749853586412528776526779822672278477337332185844336095496128739109023652674023295039833559589599937651033332649001326963235936737318774782386541787888358941277024829607452346477632363911281006955431596188956683019596259874550860879583997672322749794486141029972926748693081748281493429064455049711479874711464004439157842295509379938297679680866580820759160685476358452331804618318305671319655715557136353557575749658760558204554504078743285142773477637624673645677330514237497128018678253945191516620416901863010388265865742488274699712703142137920910691906233655657764858832033817047828679822368229474243094016236314070851838135394044828702464523495648451271155231931984701958314894151695353509473170931072608547262540972933794905119587302175444760099421718318844304144487802258985409421632506368425279127211568568224472725833047111808556596026840612833810451996125530939443603909879419983976750537514392023515499178090067189816632285066492222238194276534441397205034855553738530482830258400676623541515672521165418470404914263960346117043384686991217342936745282468390192861170861665036956910158926381174917016084479577272354754183374279743604737621356932464770806310057126964912538422583549388566934026495618564305757373766994240212638069741599702553053847634471532066372010473613255328534143808327416027422474028355386836403417668502049320606149471621466580339428054009646433253979321755602831486270925946900548872426530931107151362548050504603006771186602190769802913833560184637109976444901640604620242236433273385114461140174018159229130745344994737293979695769242223762300797539332745659308060201818526959134887701778677830995285682955125863688746677994189455335174306843292159122611540720033921982839871221763225264590342986851250330936017465718540189785567832649071533083682317644248898033752090538512059122488963028030874802158004148519209657301393212264295789672858995330036549161996197433760155538886179521611120408665167049570042387253203209911704010920709292420427263560878217728303961961626107329423377378092689121849167828051022181372915124868541038169224262862512276945353150614325393349131455693543460744607390205356470548255689076161750500947214819663483336061109880731050403343735276743133064228346395229167920454032888668528911246698692594671589361931559936123437971414721842185532052915983574975913491309635390300465925181695742862104032489971588753586175720345277377946997040486073249302842248098506341883766400404419309035344012719266683575185878894090791845629685086587015314073944501329692855222735119258431880375717322778312238459386165783128603382613200933799779364063674279298997573822096760051873847133142867038575119752682870268426635102139777640290660334405512531367697341556205834284348002229895822725876220476847097682494858982528759790161378712810295654162935128560063527627521587980204586710801873794261036132598488816743825439670697647843280898983072315425562295064414044169617953696643712502061079124163694475579009952333983007835087298284958871202919640680894042508165661658234086896855903669898269272348948759735870142760422299916262476777907890458953651040526459253956927991494426658160687183062047429772825956810986121429158179971473774904378392621428831922877907716044648082835233990593932147112507627381110803849167853908078798061858934548275093799099894225139460064994043498186891869798268514081790136391033926895901581035528469540448591204455453367917284661575769170742327629890955910533665062896450273614276717077046872253441029993135545688813199210127826192837428535457557642140316035851108184122295182678686467936646139356129703669435579958780902639654844249576965299128143939067315458427575442465430175032865010804634889133368378978898887135827657444404028483037425180672178778569780284488416537407939081153843232366686621205495389998120319615267292445574323172096875676365237824507184509725823325565761520339389305902806692789763726539779774762403586125438149449698495696913759862491016014319352236889842470482543037147947700549594313925173821072328797895131487153882266547525935616533371601878911814710426380862433894851752136931654417612307342807621556275749703975060802045021609020937747306771536128909842738243539267063453780400844135805686927444066906610104753319478790326041423678124289077893008320946006765729712721103265151762481439647197336925500758031180624020476780594997021755819740550876144940562270224655407700791595744600755595309784165089439918339853030159443276105022106960504790061407913962504566974983938669650688948350978040402376835457140531558184350584688382707795872939640991625760353665105998984315333949976569884452455430113925116041813261036373057671982884930955741879301480728410177790549005608788624251280473976744123090813935565657491296071208564845087494075622415727685074006060290774087865732200050665821736418811139646885793464684771023236497255272762455485599264585620573111993269540327121327891899209527705725099449599712951884855897791503621783293852270216006075662708883330274863554360871840376893770379176849533699414738369290290507893206184704471002568021242321448983485961097562207887598331150167592920119160852421375251666475624232538395761664411470772611639878716192419617382472096023599645248352866872275578172526855268885962384722232273286627935212780943952644723955193899275944181705878417062577984596657630675033177803201176830070227081164489937107288351641780643384037971594653121366769553877954330069098042339180835962479950373977310798225704782221287774035867451341983889443380815930872347378314672123794103501759421911385701411566441584410655645090278167786784532304799418016018237361778803117934488641556671072817089590181315103580944165964335492006613122441652219271288754868300524682887227958905297502146519854980293688377469562382257660018450411770648710848323469097037668570392297892406716640706173314105137272618917731915102470758908457255568406505525767732495858394452933255140197593478190228830061446329192592231442333326947700685565592991353707562620513236970596650344162585877883020828407921076210830400832472639736065470480213175890701881730989961618690436318691585443592157711753154925668657997675474374939189511357022288663415493839517528768314104603825489935463491597423956713570214939618071249972761078384715905833480650066338689666858377577137988837460434714561596814333220560953874847415009606924764921244517575005294538880875907851320798642364110082487722152171908816588753109221882010359765568108176939924812554325314652341402921251643638496255185125347271000908866473347544896924857554296868967410707712712932147677678164123142977707675878530415109888298947695400874267697265258767127259241203516153333072835122915156501934455009958118860752778441796741761562582877723209112012647950145646513546559227096783459111611487401444891654394934087884880518473096482464281132742769181963127688028671697483340707871031246063693961349939618795418050215412992258397879726428249177365423923878876348414017880026765118786559946012434455422822082675333912059180605982865207679072932869387268420893267973757432202658894162361481508517258434560176855508336183127526609100008719199201429139392859325168998599242646642989459443804580813019934676646869772304040488583417073801309215352970219656354205974874445683954844914029462266678830694218493475464159082160561019865047610226452383414346214227815301431201616505888190197555159286126817084561832987884925126659233700209939577969795360078740452163598746354441748698977697161322503783822274755328261772489684117752907899804344924369712305061749856735999319897240536892209850890921227347377662476027470960846562540772313413278323936153717510657338447797334856311685404110286380851411374776133841215085848507375721860044271362778140108382761552874376657943188005877670582153100258228766682887745618508747493815025348323824342080417317976627940614137930157385188056024817225513976343719315317494153441778343567793816384461854510915835842500056412001684705908585527741226204221387245473392277345343639142491881658799207704303034354028980215751874809207841520421471471107664783365148141643558570190560701732490300427955076954630955917930625969665697967580763102795018749763271555024534475730061837008382688017453567545522103325364167539333476202761862367155713031259207415368930652806749986347830207562687829127337703864586366157718959884114375972624227067055729361167221647523750256989981353851418724323323687348023878139078236033811554984294388774285592913860750841101607936963894703034906836378030145571695993126593291643433213328438721276374158425961644725079619818111128111409476924077411379649867659532145994788109250241044645258290583835786028414348659173607279917400214739276165426049752678806962809204331074337270640259486640311865287279825362993513052659304440085211196930726591630539234989201092605920305821690435177401626888248043493554236723271178816815681199480515606413482128471124124972628248127056093284908886477114624154368305986855356215090122164469056102690958524507949445402097791477832642406831045549893661382903003052349907877541829927018533344229245732016622710933898077174636360332427263725983861279080824607729159164080096584185010280949421596477125979862810452637823416633291273887231909605352767901253444694184414817768458948638370669187227652262647738965364860732431505078819659218569397003197117938480833002469349404048174273315646812860649242510312604846362672188631357173136796515610685633598592125437993804035702854900868881286185302635946716422765634271973297281312818248876889102176805913947003132919704579873509269582182156085857472347981390724491165955023233922855475256701741914963615404039970620771825954727781820823026333505679164559192461650921027133559328724373777838117875505193522230151902936911344724090187575796292609419583712160118949627766697161036657627442681825192799043107527150561745511986022435236947983538554197225212820641894381381026077477643505938667056217886552268964057611324238818445231018670004387306504457054621828005496497601901933556976029337382701259760395542440694283843017273565963888938050040690668639917385681053621772869772316189198315910295065031654669768299924462517758541789251228431549034048508984330054814439142447133842385632740570903867051627419083943857387655465958542182839978370372505520631139513312015716863089729950998427624955947032921762957365055256975177169114297319976058523588730102086588589623289625610944375836697141507757050902274208439889493779456180377915515150980845894338039938448059030796234652494990522466594493626714875496198744904314150122548044244657667499749333583509819041987944490307969633091815056103085349148207723455071892023819842710847996377558158261549531100146323865178600273529150786407537099117724983280234008823040305439763769324054744037436706125954323734531660533533664682831570238516460908172856683498704456092749117535909006941863945704210999537378715558403295089201183269449787075416563929240346562900145229639414460093372056010255403896537131788601111241891643675418563084748197072668866652273852266912657738560174355426173234969232567100977448390617049928406938274510939615939353777634378445323921385225034171859771357440022952389285785025084832073612680713767683659454232342829619545671448869354054635290229319645709577607831362470930889736685511251063915533109172496600570109172757060648813053622198796149100109939990552522511483732420191056833997378813675894949303168690375835786151117760311772158487612418538382957103839663130340164101656632599783292378852131688900873485671575944585911553245350177507012056554250676845124791144829919457146322591487798359797089087250636104528312236788191369084983769836079960876908385620058831277895483201487622296836443770816803397725775965577403695195622788898273749053318790521938336627106987442189050978018696749971558951817850762188408629647118421446592793166996912248864276431715415536635183541556447998889920025990635647469719726004351218146512383431524163555193992186440942197758612655972159216548883269463070163724896542248559438241919283189881062595669008503345123371944479986294214792487339026013634923851393495537078008763021860206128786698325857119376221878567271964819399467893146234489452441911586727279469148715208879780928307323879920604457907767797249655817616739717687288580645658332121604477611176695780005118735437523221556454159021028627308092467231342491584085439183672813691088705055322456290177333555925785064460832188804250219941355441641330493020997068488827895026265632755178041113599700494804145133852317341150765711147504610294610929610611046542941125636991755847874981876439260574874142825312063930555094557797058032972850317413260818636548319533811644006396651458926172229411805672219697217012649432164616290391807774695991294448979813274606124531051989288392728389373592096980388458456112082666846134652628086693098890569499073875364137572397485485562767680462381762971304042475488926740154901207879957236329804839057795941058277711756815818746533173636571302702160087238831917671772713557001892127440364529020518538887222886101537131771732079099374278559265957366175866707507702726480330161708043590605928566080885812641528091522471692925046306373348240170670567151863765830784364149158641046380664264062577406170622191541093270786573148161649589544172250458217742169507340662740930124705000465642276611446756706514678598435201792158867102978931935677450764173495332222698237529673949161739279183008684270766269061563284496141811913760252410504288740193436467034826146507144472847812346722444077917697099171500293380421651132585446695429479433334813232578521261647989245330672964546045656778367569817403602212734798463225228228604105055306761564047587001610606800811080417848752094762936136051391761889917973207531746348403921251860634746680956678994661735444190564211126050038561145928646649334829769081548246127147956651597026208444376688470776160892153720246903001387028622354403454242816567484746914620291243931858431594591042925620185119756663901355548199771680020429320726710325104762172436954593285667010792277230028055425671276240788220246474966162225566454440696074911140919376585804218666775424289689879351245493150571015215728226925732712616915227219942775126485332576460452209739534787142006502126633697352673722290502515221940055548751827677375906425727176065185448957446859127632194789691029642382052106757382269354732079168000911946548641861547969262959491630833531760699503536266602691961499523004555616130312565488890296688838691734605183918835047503940893181574510312920027793209621233849760871931304534766703918369333834589336118690904488809836937979799255511569517839512812403082997111847925807490971437543420781390340594964140096968301876527544156113400947001305256885515288762488675861942115236963608856020821481394520723932770323970360153952669910475466898584626784131705337298594324501941013743561748262426020315201473628767731411521671899418832076192293453665395287053922597448216673410117714188055981316349073292527835120445268421925065242301470788564483468198915390841053419354897097595375951658045894397146184797228321151547474376652439813343224039349600983006512498553128999792511973142003613720632785152829434731747675467186315190532428348616796234614471209590438123318433248597512884071649354920104852655383207607237453816437790931520260706362648005204623561794725687125691386896129604744056629182640318315763399720472601255639154628955109728126424907036561907521915122848643835355705945600318354695396063099156138793092343928731158403754013461987123704948456706741407172822987910678581566918580278688829558094798869946534840949770456639051350669101490257616006846410559692247722631065444600915755938970690770766763740140800969692233407682987621692746433389428438047505407049603278345930046986559265352779213552867055499555764737366747406746954280118063219657250709983032841346345810945320639260004185526199913257456424274791012004959648826444985391148298095735945595377737141766847241415971821600996227493414872441818263618695912900453873033266369151959024780642522342650890354622171704581735571033031396722387149113037418012686215037161517205390452757262481717333106696199154669226007398839322640503990689295552898893216952220608924292280905657374713283394072175527135273023516707756125965523625033487564953312279690323461150489706564831999760629789352676717013448708771463447196959897182913643538322180413008878111684404401299778989866174944666104335278561837650153564118406291030149046274332831068421467056840035431155201144272767767449819152520520309491239274308236067608044602452728494714848185778330449530992551800457989267186285636332879959726369292281679443250590571258323345862154515371492292213687859258528231674155167139580647685853627543936623680376776736382511034471829501791850210039548573533452445195510674482809568235570366323832334895060403555958749184826307845947599847287058025010754130478122863081697194920551433934898187627953582923943698506969032073260583902924394643085922852358606431844658740102351085891656790354643936343614520079424254919379743672735423717678768071376129504939183001800048099437534358065531047494585078008241671116638920293212542512901464503897538178988380809700122997842890287880292688164552686810299679567855840020123090033224916442700048576946405734841849593339723349202976159632759910845170927593399501032731099108574598833053102039509755901864205537128770912263020012117510574737334488067398261913912012178359874183453612007123888322029852556444023320318242770862254399656938704529955610627065770016369734976412437514806417371289019860904788460418251541091092446968403431173836831713516744351432968718005854411977589646850757486590707187178598843416946680538228234163376546667018690337286803648738081240449020073650811053685669927581481388370243809215907870508970079846234434587837031671864583108250842489804865902312673231403119472246004813963061643210260325010415092161362040921116978909174665368019244756528722487511842053416844874250801174410370237197812063858154928440248558847948195856516563541174206064279254055703439982535792456596163948490501482514058984208130368246301033487191586799812178554780134750669429512065707895668439829876283376216064071897281091754002237471534103198689241263901208413409534856255854194539199268628879335709230717999366084899736930892503622330919834609544181195892352360687029985080748497787618794497357656220780310857132007908185484952185620234816543554433586822796539984517258683409683414761168464930452912865430111368083428475882775503905938573011877390141416445820907887551447884330931187046447989813863894442419005980186500764956889350898026184773972013320157108422629021791656705202232057628523288315696071875244637350134188470250491196740741565031156804901480939637221706085191295473634374816824619030806216210384920117591547435732472300578161356193519423832754973726503293315030496540320484268674439871019741737567029179581830616603106783500528445031965936138767305806710922649887004409347905763624548712908035395369972411570620743415277227822967273952440821946285989306588067858904528542350731004306251239956313287808464089947168952149077680748418654900756392063484304303784952606685557359370787315878486794384384404317179080032846272943127786274031576308277232524859383795516783225543772608853807436146075328569849935587030314441912505335029629770094789653122849066222106493272007370129213814359184587438243823978791567456878360235258239802862575436582889622700877347872711329867987404209848596052454250234124950565829380374098720494059004176078644623806035646508329724499773501791575368345943845333662404322074891332620749669850631994286803676883219366068216904618248409150625195524445584878197860748734324701019603628630614898390602393121829058999983427688451671947013714252517490045486242881185471695495109837877298193074320745845788906264492245461549897869662988810144812331681953799577163518974999637839361364189081463626769157235650792118662732337781756668095467751949037374002004534822038876701725610179412530424973474321995736425039613616435267275608141151472018438709469369568326293281585334117169762603929916783809754847182033925273071294581385513407114271499732573233522556904460815061217281778784996163482328557509370742834145002167328260828086564193502267552234411741678521762854329973836895227781776924776839183087501888415562272428872167851387427244322796024489639527615252160786312917270633021350432082963374311044332111546862952038296009061104099868577056455358738436496059722685902259896470162789601584923095228851661643886034162087209407902075380535306650547084243082511838805813323388487438207563789551118084542937168411279583285252502926181183824108222257004735854988283349868518021581384394365716263954300380059443920148552200734360631599983256839216504803793660465846443037842228274660001820643625346927653106798620371656914182369520080327928189827401773893050935446137734992066300482222341197670206887502536861190383440460582491512727807631834057836265799029787596383302655169099158054352255591611380338709352915877804156792063834134785144075748683250808777852487743204291063182018183045353086215694471340384157429479424016191433229281024847306006382927649983084444701757967549951222786305652539819971413896466805012225915694903671088456556013602547610113472223192296467724671269459975923895648972122606096866614443783569431641640525848161139684550124486349323452615246751718719047465061030125679725945663866386283597038253845215966289630298521116952467379824960484374698879394883577055716282131840830598061263740245817670650942251451881072368990034632974766131178105054643364037073657889277958161171457257085667000774399997968267512262777322760768559207693325946862166359767672472657310933577212264882150315953867100122837317100954083704525209176360837966993421327761264682145515251379656080888193975457353148226570205666180965457756576550738321687221691155205062342899046427814545141100039494419446583007293298396467014377226074179177174755787253627938203488103250921400411775846821831298414955996966846647558891819969419905480302591454444279278425093078839542822332029222738288920307980458892511643264486610899025967996468303784082901566856308775879290815740150717379591271955068532186753007039231084829754761352650211267890396080738730661235571844734384684769733695687529453542533936182986491316475723363097557662360711653627273426236648077220845326941726156696741961861544722259278205630887637461738874664145564025725181809133292873816697353522902786552194431487177953779104386844465213936777677985888961406071329417326473034350067601261609742615876155407480766918229897338520793069784057311413688738326382257700406069892402636389355997820559240287313699722503033654592675462360074541191262690183849858330888191548319847842141622111896701552685403727640121387280928788640688231443719596698833055548136721071680237395079951515106760285461371755460049144999168393892775301258688954919585084847510199079297972443974822772850886525796939886711808002634985140677079819025915086160688405265632678986154473771288981013927278714597708134953959428649024857406187800860116865171651134011017219696691137332546487116361029914996064946047680333294745491458948501549602078291419478200911418826279648360326052476684540429333345215392657523404127373072076921283608748967131905099839845140925478688912082496976864459609038205367388483803131647691081199702236967477014228594633597021192637006155553684760836147425498630900115363659412402866045846958389953492178214051524219366213603897934677214811520923591819718968400140113580951122087668478860783962134647791162690585697099843280565490124678840970879329444137502359961743091934468535583508753570650627817770115852277018438222446622410921827312219489274378259252201615061297708756032495792667812302781790779031755673462599579142636860337481640905298832609813935284375507648604439211720623707594683713473619094952965906624812138690381267067562471752578005221408513309528274058699453579732662281806461028936456003358604932453402093660822343003713155241208651359369135309863477510490838670192984267521118125308255962332322366662076647646666810312761130416594901155879953884187649733242696412747234944514215422505024803364065402045418074480504736067619698518333129424113919348817880134705649154000319318116869623400426843515877884846155679468953879808381820693668171936913820879144019908060763837111233492592190660525268272732201795846124342395756830213530172458280669742892440662327882478683220902905006283551540419154265595050747755104665054910657435025196481172238555079092214276758711309552651608149510164431055190365088168434218265528401246743130154286075972374472221821860811100490750869240678973701206701502206180439006061602953735341440320722851039859507316589960589055256940928987143024726478465209963691402833737368606672115134690641666958142363825260224058214911883073265134743269014247001139401320880924010259535764889355768880028721294694333006918026270075900563537812633960574944670610000765730087998842047336566760722125856417847057524311072193590617480588050128740004393310337506113295014806322548393779605175759952503938043223655982043441089584085774827122755597209269662135151148561187603138897972876344169116112668241094634935255630242870489124232742846803221872964715710882019590000753457456381694572241527091548441847876118256813557239174393757127528917742835520589305895588956967922813685881991535223289447738423540544363394215593348308921099069825655482547967771377363151965190511139753968044286814793409663552723252615685237348547896912955816388080470987130954481732848843520864814288718924403386106513959611510105547383940116867074017054943314629399619508128368269844738307711296765304002225165438091338366140782263640076313801518733646257693142313959810657483320763738553109523979091966421237211065790063226412450259825970269297173306353485020818387180917306908143970365444269761273415293983518236846599216661614176775339615932711062492375739819101159827152488282519539681095718523447310966365469252194740016650948928707076114339652302481965502027768305011029391543132868668242847850316297713084514239574974327853461483976700911677730050426537495732562676857598374107957774071740483751955268813523569707052636912740189887667255673279783636260158076323596909142682705276445730808405353069449188135731575264343825178596526575611933986968040459068351904331606189399586427034234147879364557141263744750360399623315318322967650628583728068128005052036062708783864145828020134181787030746166244875568439806872212599838943539050476142332920420270590592745965608514104058878314754886062111699021603885155630426101566443851649143924546903471125393949886699716953683294654705643600489970757371783877062047206790051902393338293417018871792364863263250553507664299597257174991578436107038648293519131233849670886347820710558948687463862706231113380195421982304317990051580582779484680668704256288118698473310104355218095746149995111267454153964477890513520620621762042212616110885894693772645053335350492691614154973101894101029945330884333944032089040898369366749020878522991458322154380395928753843568855306830961242390125495584429735275913047949553175641303170032840172920326184483768949242252621342227587688872900509647066263632884438563475590867375335425231850800910761619684473874582264467955074462496670217371119269269264417912660799329831198876012966147684440691052275627587836337196080358140215617728148332845479765000952735022577364112769230842191081182692600715528066865843592982893263963453310633154749947728053224979956419117865670577821650924926585248892594105265507190564113980251053709937089639241176136412995990808094785303998707523331884899491691104933120325188366488332717113078267200707234004769178104322647034906752835246341436650028818264813623979998261960238908628554541055276368482579244466710932062104156042585569836547799634529822898490701714658202229613027397849574244665500628409573772097110707792423677019794499996581915337529215326941376613074424975733488714008161795023550058147093665798877271324308479202522863777261873727280202322554740573457780535504835705333216494230297145775992315301458936997046473546877178019092576590288672229588677508693682631059988012811287430103269225947337764341966946704071662788153723197448467976235483601328087903654113110735501073689301347734563148693045652292548451767870737558776236862165239444756344120368241810074060340812526206342171651592329317979942865035260514778354491056155987225239263469513477521021052287689660145182444741692803705741193269000849774874777935528509785695252173700520472805280943578306672086243667490815360502224846239535366968275406673372727061286943972458010814064546044915704914647981931353374952972848668127305010723890508006250078323960353529178169392074817607505249831881869334282051811702318157662682524112309733095549905911385929338379117756471502725727661980148269875816876878398716696061121187375175028372538082193782762655652740773948214075656101188269045318980725359466223368321719747343146900615125050464067803559146588645806304682554705014177089700318982010056653555256477837043179589943671930753511405108319529616544373734430918012550966071340572792830490007348142892244379957860205851903485873552823733414544644679157621612955548593140781236061471295021749431019383547866414938204890322866706182188166292993860215157696921138197037105514218998698828601484283791178811653872271265479689536947762952308785068473550666325908247000874987408892370797682641840215391964077924248530395984102060258764189753697307699709618685403596160492926597769820797540394486592221509819711566610826762645107419941289092079163794802641188441769835863758325997588892306907850956292559068320274694262829665643503620796531813809487531402778483483659677558758533617114347487924900024457414562933433926329362707036251672164792483261717282885339512113132207732170265918774951894432049940038746503922438148353131730459626849524695644325856577676121584082624047592452332940334745773671795704516204372816661736949490304199125925649026033629761434368227130754503446996264395204062695605645913829481571610165343445052300493005308806927034087784838793743648033219313992795352299197586022217936617403648006410080407150462165117981062197016753476847573937498516580023366141192822448153365841346956810936012706225231946969446446171904059114602794347348236447212315992824651806247234808911017453428482686572723450525123006792500189007218071591492120875436961895322355090804852801238613415851225805612970138756735504028428298955980031516723017146601461074262842481265001468294889234824074719254375698501782307629589032269178944887760866977597117395045904708710919149517132079727844292581032292313233762704631937420162457322857591288946843179998295819301175739980870940956088658145598141813006846849831246983335730186271816611927866525570165298679377670842417878152883353424206230094371255125367657080626352969040450481755020173989900289264109107211154568628199038712434908775005307834293310701130090864073749051946744872935734895510221519689957361044682313272045471876909307199160645544924052458552626261405458945671383227402751608769128355856326873182160458057373718289548349987443355872253157603399224022445383680792423182708457413446653780910419021865365206902598637382824999842501695378631560750217104894838533742235236740827721814700879205867463185887066689589741708375449767400416194975549364278756111562401457703601778208016679096464879878218109428916935535949093965791223242651892070966670327457056979176953962793356610431415974933416893481415333981927212133944469522535298700853924593380547024271261154888477518240887597286045858505256482062135540599014899300014634012898644095461498259440667758500749084742396028018496232988531195205299210719233036062705565480223880959242651667739930796746231788692310115935288059031156699068117578419945069255249189198056098692267169743255046982171728041843008219526450572237058182556842374048048141282672355203304304681555759701496746538966809072273679684954425132718684518171215169266715453646339494664238172052808797053054329218290719367703036272998407207592913076623925239085871603396905900828677017554164478765336020630877978271434275956960731050987239952206817227429317180161229476970449063702888371512798357888551399715391654149365041676793407605143469368175993380621886286061517398247732483239300615861102250751322072915151794987009315406503634413247979637591180153253179898155155354887893844817583075903655226733792896863309430317260399580899045331704528896167881854246464497554501227287903786471676872462173403912928928942995053996932535274971720827985027380552446399449535731004890776106439847266861269785552845907191836410616808917487695429678525234924472529271203849020794298591367474158490222464580839762267568134299515483239263706493187091373468572401991125163892085515047606393381849420009422506449700476312869928530908760560957599084041985857865128671212488597606629621673717185677181377485915661887168055889188561855257760017370166543021620490070512738464451456358777438195483665488965420083673022858161055312181474796107647378004787739500730371723502179152672536365611987188572220714089936464361711142621195570498467447165015863508970313740434697171027542477533301343617134921134509119982741125886675076351944091460115940984033467568724160568804584621659144275738723733051870722305410973323452022152510900107570832471638758115614860979042083995132467056406385101366191194622606639928680466141824313488045126623856803713049075944803282088323778498656195510516856807511493977070146272046483737660805775705622323113810664014678355538141775130493667762639646546365162363494917253569287138952323401399879514895534322626131608341339234344015413382155583036317637213209929863350545023655695702375378681420760145033384951488993813538377195631827386604764109839160518466123068559666723790201356439311128840957037640854486587528004332246966538343291606565555192772981584706370429390765823193925771615448457967384843705966870516510453893370030964016512409403434950887997385667291570326208815817004179512780010372386598917649193562304645773918242165139221863229467719013992587552429780996830585367993860595910158173361176169045325545957216184075931360788070510033868658430990844173503942324329518531370718632997304591808745774423874045243188527833396878997760128555187823435228825449103074147670670444206390488095479141109451594117875065423941166952593537373428117511083146614026290505024016769560140584939670364023744597839032664568527368286245376142572972077620284780214138811620877427387267243405926621189870818923993132936127443213496126580944270159671222994688070990671296860928054072906175326763753305226363960472822239884378836704000029002548517417495477762760161701877331268255136794862882672648938356360064716636267632552457396624592911805214798901111395419737353088119120202036358431058467729291464604098220215359521645903374368510378234424643235485647952973143972000129691329475230275980620035147032466290617536494941818843680029164278909118889523815954160433482451181799078856317670649322818686174211040776855677114074820172124382288849883455753554484121425447452934825236907731759708384195814416984874958322873051501501401642963367438870987617182440628908507727208208402352862360102195791129373662058444285132273034493498636746887000852398644994446144953026154173410578082334083697043748233862425898301912533888646621799780125472545276998630623771957610734395848319490437626173446112810532327531796126135844549772537041055549595476640833296147633925799069236876371579445664547889208488720765375527701748827223529946769422433170040513167313936132062996912846325266685692713596450475781264804882875183899525059881262120097436610550598731285900955004772235521397531031827583933523985933839519723372121008179213282405093434187852830393170723232835616381129640328643292243154121250861190913843255363441696917431149211871547144481213132989794380968457116250700521503110520828064106456747852765816984111415188106880711320287700771692518714557813820122839237801708987776219753624844290782003767330930396021623051059947886192968310764033495893189395278233056644935319892962929667382102459290996941717503266878840870005872382851124181692962155325385380490390505664483030340588589819509902612921997017723918492525120613556910724090879649503907781838663041269903467808496065520816004252652313907350633820917876757287215050931923946405995366780083157989962841846900510311377654399932468138614086841551656331098085110525337240991248373051833138162680923647660049191259129405416945607018851688633979250960473512141957536714160256099907021566192532190226980555185428088950971209948543269035954181890759226772477255980704613361608718769773837893850350129856265389069756830436937044011927151897588228949311809760712153940172561245576744641566518642133476092702269802643214712174631074321619481466133864302788050399925021839897976127538327056897975853277693684992734558879351333803891144721584983705590969119201717080305823648627448964747893292273401071601499413422185937522899712443701028448339197263190210194992254521475989014015997173035917878968326249391329481638634214065316362100943960073068773662889199778704050665168398245339186695182850915417089678257233884495036930640326932484043000151360213104642553713775562248724868505316923026819296827982338509826825622694584805741709259602446463412239725111096891866434899310677132047425958424255333497163862908882232970235575862992511645661132802405710731170791352240199985977583676057048200976989765158536744754940706500624352607870981151131591462102241048607855314734498741626230525585978152657956793238686579577001032671931315444882016095086843401435305496605333625065917378020767275277012236610705635271905106487136955296138224975785204313694424889023000328060487925183435495291961010635468544231235700124073932577557850415030318016434500732327485468375620253163160217865755658690612431677890864604894470349025687250200851872188463987056458907971948997882053677205138809048094123769436748272939696005470996064707733887095297354929115086341928337332894274516629507451357134738810048284059225070600558557996084722176078280948733072147421728646561407086265921230987499501466710677861656927368231742771138457793663475747306281334473414405759993969951146801604167563236877571953588140512603525364349781074544886650509831561182828668669452358324163893035523887209636925937242435011239561018383932082350103835414446513872418917024212744296162690148443067407149060193195629749635873903296858000102817653126480076883602622474998262831788234567384710415025487391071320238016565459537033267456527809834396926454479587373230340771395364803964340974884678446700889809157109460995882279055656826277684262066053016873814960829744031766738550422191172065091746979674839228654860847122895793165627530085670306320329161700412544381076674648251216320271466828983173507292174545317251652822378242838994727232640576656256900937942657966040888948760443462721654687583058669676787560636953377499159731114462861466418056124661839856620611748648055285587405157957217251569243025219699431702212331234291869443685647129085134127584821893796425244397198093093212685686966842131008636400431270673859163818319419082941867915183988878650558754052527744446531129521498636494375786953278445706026096749491833765664421077724833328445373260829906349642974601756205980457795979110740499794175558905571185763391337533412589468877991781429215524923812892881648577509041637190849839462734393561075337601788329722898217702834928686151959122231547605466846840713943684749618920310805958635155285697721506259012247554016744233931958091383067213395387425160926886469484517014145918632297287633883417777838839167862038765827125304172659031565280984816561659819593762965261094361613702168974119989905320751326019412753583872607843568279450746783618271800448832070018989001697623284806841909617039792961383762078310961858534473592863102795541730853807425486968773076850258157976296381209495151869117610605272519899279366238562215504316643329454830942886117366031738562056388749980745772015617974884873628100373461546920157603404368104693866543436531648645055995748026567523499389621342573850456809685862778065184937347167940630972186863005236317594322704726213263738656629961206474426932602761929574521548348363980666393181941403707044563914868866618148303311147570740547625268911153652595347018905089810527474313488932149988297231011047976946843640768688229763731773534121280895120146549381906661144821422108955679218924572135025637030269610872423860760089037843570204507862657404557464088112330751387770418144854100912293302435759861733670403295530079048934172239221768466650575781828428896288029044794506013473678645890186586826287341486810013503769710181385702351118601056658041943718955673877196273809637681130223116921577371513883869454004799187955385730295857706693431489783200318906562425627606909942270238635008490998954896952393863029058130335803009251757361394386024640709955313105335181308488223362433120296609347031922573889562013240929866450719715038647128299562210289288331355123549095010216502471542419592004144838712306185409649295790184581612403459761909109114999772127507584591251507281611194471259515166175524168370454796666065149952414223665114714869111337910985635694306417171077811361770708239870228619736689987184975777300739126644550415890916956330489809918379180552313816267665070602848168080522893614134679666466186831144474081612300789181772805704075024852071065562480646797746030300850903889552126882354855255009342494648455518013406268675376660669599351332290414322688174945134347773482955321357953548433705453354036024641550917272484860837840407949641755975759850340305751467888203902925332896232026883482717282113876734740315877119811827715568901404488227492475656373325559088223099683914631422666377028313794031093606637047405520623428801382716695136444552502723663278597964680601339716368735869364336004575561521559940623291500675956706836291016388673570031218142896826238402531448879739902319702603691873665513681789123713428502343762327664747038998131227694549281639187684583518008161056682829868396372690272628374003819442286462026126536977117546382151323866822725340870653389365505711280854140533032302784209299865853815110021813412953221663805637132163979385505653951077424011973465904286833285509084988567577462463317866180627124954469661565475929869914048756870791358788204928697131060843881036877120955393618155481613435114270865943243046829074604504283246346397992471470934254860815603729695628588833944255044030326468147149283621305170917323586453440687890619434814120994630836076768363102776995672517211038124462695966538933978411019415881478754522092385447294441174626024922670022082650223926408379328202829767826134613753717827987068303967668562482834216708656569101462791317127202063701542857671858434137222779541746578137008643679758626582602758933810304529021084157781496443950815036414009577423177626535508287099670916358738848538121377297520900264625913682616439932771820812470034831390227626341829097088964901297092679758792664852215891623250643218428786693384933316338074075461942333675517164683138259063437894588821958324651407516418744463088352710191379779334606387283490894215274264049083761464571117217602285779184422756736335421544441021080423289284658626781665830702307237980316980307774939346478299904217057509069691320907581700004952019606836933006362585086800512826945890532091169593950508845379184587507135516999183903191157280807253342842015344679921075908775430034937178979302999548844961308719466135367208216413592320155645286658990465555948146040747988517844528815088627567541203605718175660465030699446384253919383817547233916672445593367152907229489632422726948529305099743330991903068731956175297135113653082178882318824608446474645278317796792900014040459235314338341501358667259974879646468422622490298058360710222256559031246079517641919578502884485811413986324242224242499601099193550603243396140366500934862367282548781285863812099589595853446820371547723101976786335742675162494254549340747036287718013923181651278263426715011814248989065869298566615252062323312436216351395377010574960578227145878139086736906620479920370464434136766957716833057329073535340206563146444390632730587619527949299356944992931250585317086927652230737459051925118097826062636038699519320704178572799902780864145837597880825506274973210601941530707052718391541635348478075634529488702505393065939975660060607118910548819551523536513449321710011442718274980560503639790263512542888264181007289816212116555638031727352463525593139073132417681025248021962569766937424832018732265927771892083609337828132849978326485851316037323975867078060648929750135048643894292999266863600647941353958364561603860292968365605977273385337126205529230279632525787518421347670349784526592146737180558355309224987208273167539852362459978805668339821722191006402373195990159823396929762973078939031815862818683108681890551724701276311998169154688366905408900898507561666001633997037435206628379834933127650316026564595740411875191781662505603870390582347235086996249043581582077383238936887771253130382483858962362447895960667636519385070568571292259688217075244281093318087108779375009587762386427662896709224728588243147330782511980993221726255353496102663647617511844051185585762636860323270820735973574624044822532696539594845519259662087119499574650710940112773741347084682606277095620169907213243500758673015231522773278519994736401548690464924276043621185718257613992224706073007447693997054185222760526846815027562855946288977549072967917463573838750274769249040089452852309602761045624382734448881488552565589432372983235093245197838637430998473650840637086747243959327806967236821108633725457196346504067921131312099379111054510150412437032794927505594382632632417625178417561522447143143498973557355121276594832366739407879989742776147790683181869230078356365411900420830669877528913239027303986478157693094965084266841020551154478377421661283597682182020913218300864889716744676940658604622602493667725957015236547016914443415892770689685040850222668469778732270273977524000723218047405593306575674720250196036077185342172732245968482310681112788255787126806213511122836741014672964476169689195670444839608933012429850605600437282046124088559886861160562361986495162355816707903271188952670323846579743948854618104662491991066242808732108634587708828908068515525848898190147909337569380342512586361907343294217582928557766946538679663818494300496962655478329452620039855163220659953141755719398349091666089752202268277761374242967545353673455413554958620386727689630323952451326581228940638549744360780839453822909741010021518703879280439692339077230349857880179318184859038973014462516372615372483554250443268718401813211450020392688556466062008675977742896942258992332972515138010327771440904315256935538379407152348583993024244082233269514676718191117338515054040123242239405724241170935731207381732629300952867454193383877646588595603587066610500026339817676207079763516016506993680749364142040103931684569504921832985881651234716700685012493439661439552114341599387644690402458066347322129404814839016486954656363105306506143959902156646692011809959571108517410716471189697009225716361315647290989873411721513504398235071107653434309078242901178575812027995064364613174214900918223312119361420555613488104206993157097546011217977271947215885657633063945437124575033456468646377801683630666654971381163741316801743507498099239826524284008860648751883745808941092292600028217480440159318778026016218471290368868350122819119351522918813292024464549580846109868885527231349013814971928096250342581261341742161164902090762120426208636143727304849620393601648399814610258118481878119105971764020414764970893333905099885219814523040919000961792509577448002429848071718933864086408861176077451414880169032505463738723857110619556206033940652976070397883655593940659911074111055431353565650149647254012852241755034919745107020633344814586895285300848128069120785466781184902692551553576430228505987323044675360905641240404410485162474131526061616082534363169385470387357041496513157426236630624052292568874586088988883174032177321224354793066658873690197803733083818020632570450186496140947849495880257673957587912816738793919241073892873762912677737745098917270213970651496519522830682818277435233494681611841163321401860566349808925919516247018842826929404740882589379279208767191851310297366080852927088410103889404294528385589371550966833239111905963878808788767784664428211989428647810873005269638160619910696336100042979835277437517008308340537997188488739034424994517328537354126566337401074447210668869778447359910595457571272852921749981528121777724623337305115971756534673694364772688618802684728926813975726163902139171211649479970954893589791885698410180757827566704285713840982501848493615983693362347575163149699541496399154943308964065245540251730491360519660518664862124153788636190054119059687780005078076437530021572544066946478813875791397145759058442488149562979366146956613018689973458277592365765295659423841067356229663693158381865079137237838862550799093158076790194233095850300249382047710252886133847083781711733144077470874690548021301078455525868711476119898177208495046347309922444764749092639263073500456720566641693843730718585703646299605104712343237853698258318592570525366488156031510526199089400842117690455014291018751634819146675983814523016173102422227552398126714058844207563066292021646219259070404753786473650430822105423043089613682152054536200276350834716476267420844948716935600434613976004919597379605979315324633879595537307592674368600681831442870916159418844597083788323029530735258431571608079375527496114303230633768596864886796942129270588932208589001860607463164636379757138294164144602096946386488498652579760962089312311550504587360911541961400954059171558492085929747694916205388975427296778656707416597719443512930005906297983843981357528617563133693064989394934522961452199249339487846377834397206239398342596032639208778935781136317155043399366505581127280984522494582494301704227770014343301619387247647448263901847562859753696875404723103816429022811093654399395805370210266327698357458535650585387137629826916990575233103237175127970820937188805701033777753022666726822274967113249284780322201922873334216144197648154965310856087618082669161477568715961861358140440165641729849689408799675638941677209500988211629320418710574325701078118188370220684304899474215876530344312698340494778248606763082519598040903882562130317754687287862753169388255133208503680713334171490438717482406879259315980775676682444992707823479158662350142186797656314256737924501670439778028119564834173482770639288809881319191340842782814589484157041548970194622457007481880835744626925459820144026768351497445085000508998318885716673275547517214758502750456528735104103592541166145271258602660831154303718660970866442521883512288178904796949838758236908979016125467364539237839557231799610339376779501636157367012689430630871369397333035186188924967751147439723163557988883027074055975216185564727110977101062864151323209291819371299305358415335913540752109456078857649148789878749137211613179034412838835930157148565325939455399354123823507567360664858640554399803898256486316366422194071803488933107169581040049170969473229843254982412937762696754603680160372662197181914100203460752928000678660303736329357661790827676829412825405622807416189041910511182949986670801660571835474825870762797710238311402892466221465088752211105258508835207117072327904676283981962256672887797942522624619360329938795691526672519374875926722262299630756422905136065624432916267084847195749178274583125255106702925733142625180393509045629874000300163593041542253685838695081548926644116332307226701676469965691476084541091101466023440302865301901099406027943866090501462216758727959528704565859307506397145626296078989129913886386126289328347014604729333396223647909679115212568246615210728176665081885363768373226264537360707620636926495278179352875906340268791020712186713812869587000611077611422037721739939137970858602149172990288256558073985099070674795171975832584687967029551606864007699645865581248540653979141563237928932670833153430241197302181177514963741020353443866354367565942243693254323933229440912084816269286411116652825760796164826440007583767941789378234396197856838376802819676491439601704577626139579342393797645959152512770223162493066885663014586333851406523763379013270531405091302064961459907199458310931170271488699592158697866504182479772541785169537282400246208591390606775278156358408062935789597456414151621563223648140451301687448736489705697641094879363523317401483345003632191316053302284967381217526088854670452073509759101836885894586766468389850871790374403439904755571764396539853835894965748848585241710438109260109719076244769060259428834025203971514236651785620369960200001441099266976444997639356055983842668932465469957211267071224780001305850894803393875618228901984397508543929075193311707884272259095936905535636421367001582231364294669156634028406416458583649922463039911145589340593083496184319899517710469219580159570306242188357942360456525340510546938180939537011367636417853170552812013860746578983949115384083168381191306106876537707021525105331325706430890864153076499237247612594641662127482535422222545375220413872281455410680767990041597817069589100318044781563559939413518788951002726510699118725477557311493521662667257493483044716846622783584088158604696608882813048554676754411533189151918160885743857317068648649874048098700950325428098971820989787767009365615825478305562123788965515971591212054486971614161986568993972989871847384784307709828101087899899465348752354794795399952684559709928703725574987009310770706772734577786033567690126587112515016517236395652178519005365740299040627192854055631893026932240837118418529546752389841954149860428439749329089288066927746684448707658057514778430778954120743174504369411139727288545821196508821071743615939312666310047990360475001838629980477975308563275342745298222760809496182680354704765640276173969738810577274283757333078724212408423988010890120244095384644255589680208925018231836211452079709401795409796382877427823123245224934042705350296208053183759833069012287575976182323052985063794546431680102981422332812259974324103699216534456402039135959435793925318532905486705131758282995278347861131556022930385885961816302408275009613003272722647374048760087815987336958862153142639833606884862574871265222717631426914943667025017874079367308155101069348901444347339323339024650656346563714355152728410368100935642518842685930637886331960348094600511475699490885941802285061766993746251044757366885831795243823174617738312475579614297419561047118967281970148331273319926058871520045136569905401938273988703391545488908121194964972574819582433226723696002277460641565952399150471031785145815221545258710235916611602725360331032749960851090920529408208117231278334526394538350830948971241768118007116287638997687961516535557123952586808405533172898439105554092172212059686542324378602742751280278706800460150238489344475267749683819111190683088465998204927368073242143255349921440138546263749975958896555873519699729658998345683452682498809823274941359103278754357127360733621678766473806026622747281602810318226248883628561222174826609028295996007627637800458130881926738325026530928295390638661185295822508395991722669284500597631614749482022622920003995477854425862289171569255526218259122012101873130551151769727792169433532731876212398552964289694431916741884376297212114728130369064436955031647474740102488896448171063426713564525231653236517991190347269763124795501614972992046453367749989565946725142823809731676903843724874303344058913960777227736225029906131371501444869805161248780752381905901176306151639763162940811244135917889201616519459016560771148631728328899153186019932826567834959788014901598510193504565561663789184607978932963849799084892026478521398557596842797938556412585876180147564695482230044940512765036495817285800199730820564176594076716615037741168753380031752962608038147434243438330078310932994492827704509709865455490922402946788236030100416042571004741363252944358008280858408560928802140833651062316050029289038411801131108706925627013440090888175500784381527139098678639314865988414761222248868532376278571115017058271495769022261502641017746269464009536155253409424425843425697921049184984109032286520872865415408090725877587988110106119605936779850503262502688788948896707795483468867438642769430265512434668979448346909425516613980674583527065437300599103354001537413289458385179620098283269394698888024922846977321721338501245359202381316328945887748665053762555120766438634633831097365960450969363818515080268842497393339502273215703284931683300816361934612501921881733071382219619918640960179755890849436227223988364403612745535360080714814538585918119548780600162322669581181264233870966627721612503414546638788565341442167881681639485620249267635398475231932000740341438593246715465237607915168266848299091275591754212402765843433263596544238509929551177081076444678262814272867116462857685695691356551486882674407859649750562258705388596064837571405668777856177787224940038620064686575612805773692047397600779817470109497347099811996742159631932671188261568155309858541873645111803585842451150591069220581936976584670224590371542601672538705950046913243959994018858467355325326335586559107050719143399021243453975743013246963066993696191117190398687742836305842068390432775540644887053994602268597722237764294578845940261624952970691473171164632769754849565322714961847559004450281378059181801921978517843724239415756026984261688309686993563403455501104129819196971500674907521687572908654025836448160764806553700642129656885967893442690501414885332744404015017782454017432717991976137384015045369747117869167672412822424675857842410265949552462249341515921591999464334581208859274848818691568212097775829295094883863237360483022221073316225585360143439014700521059040974047650175812917891627790953402574389272184029437479629467940346385985780453229571039559676035291194061979730820902277595545604993429042517003401053758186767326743781788405498985431245669174767240940218120549168142393718951072582517214156107174581820396268297291238365596212920548949702674514614346126817138790200024886265374599126051696557085936125663534435768143697774035018114264237152406260577850841367619798748597984671352727539790309919496875507496455040788191362508477273501783001070607803101743145057915948918685218969119087319593509061332406669465950478017427950772130429132223921462942211391263944011493240370642147439165522060911162245129030369829900495052359907989885797462259475545050412780686432816433528673046673720039348469593385600733566179678602177867730281524407314235375243395195755564631508063741669360713597876155413998916041051863914349375464723984114709099062434612987173227823704440456072607703682574332011051652524688417444738030544133371340267631471346646568071699169110206671375188904409823349446022764930709635299079128111002298591291698475740708404278004479037334049371661970287579066980043438308650722628233816748326011660267994965989703578659764017601576863981012164477189564546683102321475470595433686424018412145063062096918157087073348993184979712276330723360615076937331296958778723388349968319490319073701260181118005235121977030475327390723361601714977177204770656899556113439098045185455713075605529275806450842351571468852443012573551923063859548572388182348845073170065207398401755839476463089072248397954510980398549444986712921210469362777452135241661033877637875075499557027942281593515651109832959658742521456531619595462668049413998503045606128860292925075076858693307225907957826374375761005953005531637587385831217656316870525487964679673740662966767622431514194783946715283662860728645679778695175474748385286923052958034796141391633301927131840776183807204699760098991367744074872871105265723256585106510197369100564920550167556106423285764278931336380477876768089693143607948651510967910031958214301548478863504546206330485766099785690764794722964868438783226356882821450970979692034342204248799343185586468856506703398850057181606391947293793855858563537779052182040130983912448623740051373056522119704832217770214534696204046169626747592857129954815016599498737654703990920673768663941804803987428684913620608995645174218307446835003928971044766772665271409495103538882182550967004468385638548362213082061986262493256608322095603810717126050488724827358012986090435810897498638570568374759652513933132918770496823084419195716691818895995333321435101998558342421745020397243750243963584228467261923130077417534953815624780234485804803415126125242115627217148536803767355113676560861392966645339127499877566349099503554548837155294602269466310394489668701761263081292241114000535050668244072961328004375194960659830260070085276431893561750267431816471217531835588176690587945872254399147892287667639986191124634442190006223957223394601806530877796290529743779263008418306632835049174507335197294315789446994849206939527216671640870509490170829224087577608551800968417578389796380531212947966544235874437340440486947381215851900869197896245201907665816519632199501755362998936442568627709163219545232548656349631923003384651243941845557025393145041584854953331352857380190292539721863823299879713736659673515053192802371106451489841898407545863694025090183335722966611052744580754044685866190403102159074263919173140642380261707186824934014499204326917964780846538553831136741300323597140159288278998203271770743973099486120142290087239653620538839363309495619651362195203040274411577571064036443238685840692601250232809969245332932262326460249820157540203135381469729253045704504248936859951767284318299914613632999921635516991802044773177266891071495881005221112058551329688428280482723333930042645519124957536124237753059489338284620986706634363426977732003364035001468595648612755286918562466831430956117047181823711554016272990193072809694578650051545747288952827039757215849586162886587600022378430112422536561381739418172733455482747420626258655306432762039626125555145602023174442146681279246710065413034005456149857045491732229566465133409910545917280694571581960428673376054656640774343162128642496109956295204595480392543846742105816489016642922333592456570873003548737476515070676991125417646891396584675169454244104170783203101760631946510166767412760235124624172418571074552674794601138654414181441132547931765161887071500669177930034699706029186821113773473164933205610376982940549009485063280948786026919943278517708577083070901059249084407158727267858016429108485075806411379561960170199212502317454524557993722460430423036973059313881386711376644222865330369618418247129289294524063683649384292535818448204798849205440202431211144008279751084222573003985644516953708664517332896721816169269647686572781136158787466564143777192207218384411179088039751530040819740612543407571778335552212222454604270317887678611582796693260893649993419529675088438834124014509566827231269537806977835832077209062140447488338443671913509968691537773704033135223818119506641153586385326301744791655301737883666921052714321224201962056324936330330787136410879449147868703124937314191189769671340194160504291853884049332225166295509769789368840342357399123045115924643322738507090671862690175298518065894157151979656821947855933722543339534738035426298200978366767348798601355947772056054878531568600242490398286728447083418951540537857177403810386098559060793450231619822225288860143408161922192190055358595649510279373252616011391218568243440202752875367477491108137340719465437591759935677126011821342558205801147539936850011226645227964114181250729183387920350484543574642669925239651749443981971585927588729339571594809491115401582588445892716919761379541593525810778725054218881755987325093040408407624232311839949417825926449458635844316909403369593864803824273805690531542747014314933096244097504582804767621042537940723711941689016066395602632912731452734223749971063805777363452687592226032948832305656708731137664015625454479457079263459284586915484221074164509564830500230186403295245585500229644736255007986806548332109887194964621959213041231495630409032781282963760510745490127114030910829745302082385125974434178649513170787836311814695926319580158098214720787722160280432524168506470024234905647396631907271342647818299369018084968047411291887211756495253873668478704499809603367397903680248848089427768908011192052559717945417756937655638699726464742391760121666154589476661791846179880782153146780342958491152785980789803365415175921997388178569034020442920770965072150231407401318345199791181464340755651244034242520269877924022480587078869816755456854478880127207667279731900740596913446114387487248732000106633352262612419386430734650088295593978424021196552722882296445169454486187695713325212285991318619236748090408379261364995538425568755897969355451372586794132242483037355063583157448822933294743129408263342111511765824605465322552927565659212279014740880315803588213074363012903749464628850773495739781486180883639865557545825508361674981323590908229238363633136467226040879264500024392883601884452751926096191045142606907916555344500734502713598416870323752490068839537424079255919444951140266961690090511283053766322246632597741296955287608642925762689630438948525776226335023876374696136383583298648672714127338188697770091425750090956214261904723696206006935846868196921559304351597781563193192175269579275746369400769800871722981097334138050850896722395477943760672284029289192828617415812085781206339244693511072354753726553700165775867528032189024568455649307742205328647246629394866127050494804214859175375406831955713898319399799659104785728996626061260905318594327208794145885887592249311186061194916884695480346412369561939701194861703438021502395312063363328549555798283965978342127742052248923834221051665041061890681231699226952984822777241801604765879787702661271813567761421049911639964936576291085672809198228969401264748468471705011044737291657850697295181819170897002653825205475889445636517463043369125113078812656312516952084898194933600817831406371592859994964331434648451592477520584476197669618622265377931859900826725909686873880269326332593829481553750597860269421267078690514375734856872913622183107525376700294869730634896076718942842911528198335836787223556226038911937097226884656906561852091801760859243355108171013047771399683701416091669968758940167716786947051235306127709577710487710159392384496616425411633698922111559119960074761459043931306992557356753257519624342137175731736214997446666070869580511087856534676378385249116968959623130471966739641346077947900983273685823849626314511645606458781384706983459202405964895609260229737997263874846424384216739164899839671374224191202754601560497983238414811862681338394641656866578633689975092625888050652473182023231001146803716905307043119050657823718890453354384153654248406715312875304441778326706591631111931680308322723344453362760597391277352416371195596984537019261812875460314691584755827409529842150118511617574989334949070046151784972978734118479093906474662364137071972924426640068043723040211360258110215508900059199272425831471389360736631927361629730897950256516717043975583348706175019628904654322804328904196952132071326438310202045383768667135941861503695954934869725175003315627986290287712799436493709114373982656328919077875007920537661510176579134813315094863779238633830715999729043792756232501436486436224232194465821835551231106858998032603984372961269663066696334318264059590045583611978254428941564153576522738618596563620115308816715737308443617936686657237987004172031067502539960919162319735286036220337964784061915480867749289834863175772246363865270503215578225798752183133995431878967856708645652091275657238155756908535725774678088213591868464121969274983042203818815909047725391489937251813564459158708089516034183954177765285005341892795010514887743164598504624723995180150571763699465318692228903268385272434926608691276086997431259707815602093613365397135573756142033001348499314908641333794731988848959324047851120212108207418313173240203516403813035538460208769348654536103446345986671633427477797013552286432395278041868206853520689355303395553861895448432571820377391598626434143653341702442432449713479217805324771506421444558716530650236303318604296878499186670968523052527554509115525052222242642142394653280744873893033556081928820191595537899578877158984634048902686611410459943424001639284532658534746768761460041011714586590736745173033835439591487833323769842746583079219266027573769756775250654828224618538871965744637646374380081557877208304519322246614681832960760721020579201880740528870484046905624811866115295419452537265439813527164916218097382314255728806092663943811097352108301232026175126904416919442297657424851834427386361064708417227186852866442281320770784238378155119981894017398276830452857947170183291992726539820149368255073394136117073457981529233352583376251680362514835582278351285428061035841836517832152189280938203037779742364192597656555219834512282763843642623260231957566983968908914539695294432845645539394789377144063178947993907761385480953346950430566391826206662158785146851774491141562819388068562560984845151532899433264456919975116423429092354512650684817617378226735399345838980491316018157490255837145028571049837441627598533469380704334416958216456560654502236151515499468605669745999201370307582817386769914316551887571272948633692532682028787504983615525215719528300144843487866614282368393702746071145151149890745224609132007512633430921600630047952740519565963254717824653971341516727672514177983029955373208543345507080833807102874578316051812696234044321721668963679332884316707573286950622738672260123027833380835382997080594664374718229290579722350895660222987029024465225675127263481669125179689889727510697482227150620552079588687683865839285225988117394911159415756774967309281924185328723693689309753656626409061835976922815454106753273173378486839492585136198342900491587383673782225133805827409526869058202132938458725972901194146254903085180858317063576025315540173434275546391258470452582120203883339264828273851211944641871589419042447986982111085922146493692841497338036752567265830184332607319675732301873998975010442153151088536811815207116869540017260113163427125256162699417048599819373493895993066052572146544823798170033123602239260384655838958714715190105334570683469326151744467725968833305759839547259493047196114471768637238661733657037434777128823580706316943126894390983872117551813993538964373477345270675691759142847704577271301458162629676228136737900144253613318956684241622249022745110095780207538821068601076711116200386818842957457080570322905611545859916470604648017300486931397819631214027737124225198321384440906642939085627419078870020863544210816798205832765004280975519288134145123120355572114355487449170064338224606262000891669607796350698774649462248369922011753398262683673770255475472437518071216791115766336752069488987132679559223603544668748999619565360773112994202004340116830080445431061142659402401817231573241225006732673396538835153779735544820811669451801302885543872799700320887788405813298339700484612201247785054359876120033935960436541961997770408780002925718486967892993344650062294206127481330765636902873226896418727453584620102657541460718276401714319555192210029455334515719889722524389326045369575761963345259744187187683419566267871780521578087115478995353210170752977278253098769278728130957480535202039528170441215982381588003640247032256309242138234855873956002902402022513486880099641170622621305244491278647739766673505378901520175507222243732812558658857526577637391218718405728724710513127323243950085589854481295125680226386944708391773272622485494579636293222189838884048823254895318196241086403199893123665615921161490545527104369096394494006292355294789377691033335252604058640285888978385942573688125680957851274436389732492223847438377102293310990501702899592143133949839305478744992071521036324413514472899547838793141585182967713562434857606643738275487797553720036359634728456498513324087403185159410164516809709817602919222649446663373474030240926392852631919707925935359506517300075220536212637494696633074980034474160925779857752806757624834554368885749617910795605371054956900871742803401305267450731029353791440748179889517372404355893656766382913854465140578377210694717751994286287784334144508824997967165618158929293013709279218166656177101191377863621729971121990358095916989107633088067995865444079014502413996367237334850387589939239840190142798763822089342799511889861650794390288634678594059276810217908101373724652610079631894398166045301807815740822805070869128032889109953149977887285570271491354443090088252374054881607835156466138142979002419375089313418021389714879095801924392488657923609447244424886115818978349963102582524021751159953801529246649362998980995062004820663275867327536877219179711036093749083854887658030503452461275270974334244552218091156731266422110920718051950663449566522120902489407722892352996128400275025604997029695855845939827580106481525282641554053688759670349416372560660793320606751873138121201943577065458852508366651057637937987463407285985429027596129206282307094833360561114601080942037150916520216155083715855702120222431515426593577635658875583350591950714824727247164106507970573657291291184691288284072754740044716477736192570541025524381951973685432476308393552958895948593116508122418304810928263285485050550408514850105784678233184590620305194028948787977697545574299262871714583504907996476352741259570445462631303545721449374147737182390675776103783545060745872078426584752502918861529620526513909603853536196801404057643256524094186178026685661770374284443825502566262487983129998395777495236565612830939666312905761785417464971224239818048472015908485739985243505953008402185683167166727726428053151531529375889639995393715857068074447809851886343901263089088881463393642644900528569176965177888135193717786249552188850091794041178427477651122355877110359885739457525633167884569415585190714247012512391701613286424932872681409916234291123261417963994458174579832024272378164751857867394402917918344829927481911871546929099409302289059233621987327201446575516364397710429307157848211402275908485460278158457038116347983573274566846403112856004519764974838010621420776664609583943813913997792413560787649312141999887643741560444675942540490345158569710299320791226767528269403924945299399088233596834529972462206925912963481164443917245614668134855391337327021877585077857663709826020421184982190818445478671639634142241036158371976467515308115628049118415721013876548005020394161140785577645361535346300676546052859789149893425142005858468848090969317478107572033098630851155813362838590249629608927023642757381868854729787629094918629536812469199026550925882970528949781785388343350283760823233010001353270475984658558110574691249332664207654819120838888385090294548500033197715495108446849124890223029964891486589426187639729185107473247298306382256253868666601419849360221524175996490683134488255975443843517493481265144274766268852654106025951684309318998681256740138277994849248352395955927189080363924355792310452390239873221443960359885357949608848736614644239437256599106253744511282682603296480297798065759564958673722557779549887627379973760845637416465886163323480841971286307407106198674650262623309394996647454963254824946131174915035616780011955012616887729641021000601365138111501394611133939659859600750765155185150058577962612621540243694284384364755035642742499741037091855909079303790901618390550101429865836228447974517720752431141980849137044036216318633001533498364166866054309244745268930071607187133458760488028635105392293248669770949258805411641161409832025096307741573938413336076028346096156817997238860230536184073356945437722847257908865480173799263509581339459054812707977646500756876284902386978704256046056950615686504346033499530004774346794437574489765712395136259421492173243323046769975235516734773484862676310592667158192898027688549734016225189912242187603449695127648212880111699798464298284820073513478442162757017938695599604192461607952649604246795078114440952675102114035149321317678105317775924236605062281553084278695992223101268282191126940522765608146645335836071235928627140931470106843842803306323708433506900690123376892092035437559971454496259858388496225347065291490642811108604491811277391010501445635174527949099485378476194739729214850991084591154863216271656430272872924750434780839628324553310679182032325463064899564710432228229683785831093066539972070074831434050443545652537130664944307556888084107198665124805774468635298219419389538469908816173097020113947769366018854489368667793539116988490479741229152582405495931214986491162089063989044996087834651432489560276126983617676475390158609387608228394832399819134141330355155971214370825249865050935290036634582806792446017669413552667069881950273123072534845709905663282990780150770516797605372953138602995977268365005144042639170707495912555452264266285490437264527014667835854504846412510370898821054637478565880361769489091396590387851122984237338778790135550090907282083897344455339687635246686046748667496252316028898072803682031415063773447380131201348444664899722451265384989369454646520436650928882610276368991368212555499430017991470237395201173368669868234630457164446177024182098040878016986481376810194858619939463938143429880623533434753287206662370879977124871877372205328801089428188275103136435833582179613979349603970687337272137191076120625033974430475405455112414749633889767989921967010239431083254556577523800730149844488387057550508603404175592596485565013061180787049447064563957379546824938443729518689217147164126020717283356923111638990967093602593437468649935087679301288738128857092107483718910516046486186527041704438309086554260986397327304986855249167385245820072412458573097092439269284137558841226922728314560143745926906773597173037491101355665955873242833550287518364278716950537460168965148211350157106601984214047500264282485367644987234399051680573023713976549045318578529842112909206170733435737754707357693747750737232488988828641906396499015780446339546097404038706706441128362523253711276730553131160511542237453045831702568234278789801403156822508908290329611464696133492060087758946489170721885849809717405681928240275122244594771679348303433942754496070203222592756587759823865831953427625193077633968249681944036781392184563227064486517625661121452771719004437884172843713258292289168551228995838139257861865512708850464551327182493452523717953624436630973033810499081847321294888055895769853118002112982832739754445500467243033802281606051942404364387610849933702094580722023874729872259284899204269482438496704423686614321418502380757045502396223703100214897066183698217114248432862943671818108297575880675661033144741349375465181906986785193986621800880618119490510676394038156566756687027866839081563188012510689625993267239873999868645846064638624312821322374788925275826525362276303111695804062054380959158235193373506700849329392037917555912376189210289575635362410878760509460099725277694004760348314118747302514433501985553180849131828259833573131343952168919910651744719549080018723776887565992162358402388267726450841537010385542057953361255127735125778765018017552542218832681642578808022842185566821672464222223462114052126031309029952951085032087324910046983779386660403705828475472765509576905357632996414498220060810584419686289467592792205551605030149038431270768544930413043058940207105737513556972345290944459741580514128059580582127540124301622923706109783985752930612882259528718928590012310852121285896332617455122100345092532267874520773007491721755241701472825816835668018796306081116769913636398486808021464027943228949677017196773602619298410912235885252104226822501368403335634649592981229426531105023738373075357982831023549468273167423750803846074059890638862017270184433996751786968263592818418651208096093597199471197598293490049802017808707838001405803836310250113383157743136903458010036893742120326442388104480989651602238626495882494873309883942904251033862308945601201447022963821337840984672370904234211962941133379399583667863142868571870959644444192978359077988985534442370676146777678004500811810850782564908697624070727323811943206688134623520520328675540498448443984452385312181493973817282557460791675634769011089345405992209385732049084225316322938875982316822756793212054207817772071276118120747723159997549423449381553444313193367820828903668574300645943020559950340260369073614206238081389483528758738715086334754765768140247876111250672677200935607695000402744559006162317424691999148009991869566543873163924129433189144139725460824373470396881065183975072115285752314528190158086908509662929849444341778886318029179773588965931312344383283847936988547802213744075444193087229452642583466789173645767331231703897958541775628910686010104787569711005230273193140282559277511746964280410406995952898518550512524333716038256650501981987143180528183024945234053609149301297514933103581660964979445775946760126599117717143490245093688483831996329265819395013065388219412941548538896096069937585551941492673062388453411643067608750361567216102379307252589657287573161638825555493135217855547422945637714374297498109403594326809247958912029773516512923877550919112243834283334501878386210488664395816983807843938023675346826082715949556443909968910788551196634403650228640470087483252674273520292071464989132012840603379213915720135046267757831373975053311300851750923124694687068106069515786876370613179795974278259065673308341973536424906288316463945258293102938921957070270057754246540814900797917517171992670913406401808037985317225134755994509448856636684582231088214750379658931891212369185086281561801294056143342262809971246722011166878186190851994305234846978131621992189357443196860406345756898870327141466896391158847162248308120516967468539040356067531966486721910154756189150977895185031817335593056172924952434908944035368801197188158358677086799338569471793114525849152733838467500004431616216316777654132610690970767494289842317132519725186269748252938200952484660959538521777417762319109469883387243291331168073805921315963024139548380875636611308823341249480345786389794515441243603743620637082920485740080826663766390368924910732597817785984777480519249655850336263783805487364741302837162110686974542152518403779710801456853598015912433489301377959188043550250039437872990928239786470357197809939909326306890448854659708049512673206088556357044563463012920311942944098526754602229769643279646904432996207818687804671375544465709828494534868743578446434558895417122476365029272423180367679853911294337988099194177978179470584068210197911298851267760368433835846579614421865933762030425628246605749230201867887377193071785334933599144701462152779601502371264980122117983550913557926262043163028833548476189871932335375812651514131496267856782074548801446988980067690292733069322953183582362235401789513561849923487154270985498484609883465052190942939165203826825219153200697266068614933287144647438198743743537311974450608594035163061909321241031020762312908300796596829365791311120910280993259787336390582711929476604282227992229608474668286924537621613124044778270947305355673195024060494189895752714263622393688954504613437479402017710876307486548704092121846090964798120755728058950799308976924610689189930071508049598885441049202024121503834898504653645515914309527561608569261790726478448704977095798275697450386388894651042142044643129327988471029074286621404969647881356676353772284418664852663609502907831784483426264207244774148385438765681520538848539998902581983160606329842970602342427283797982272140435164984841649330609442856910605171762542323219729385211607022753827618583795435462316946563169315049404108664323564721446183800745373568093974358496467739927005022790939757273500156833898446966966322109970838059107631548632063221615222335472049202168416035861642857683289144842231729957806385302239768274066640279665492739263186046641699783768631833799502191382888912871352015934860402370361879316832172800165022315129967152778479083434245843736395892557051347900749280103347948392597846128388180821006693943843282630442824369421853598760948176375546708558509209982693171031200996421554982466283526046320126602949745247519026050268414665394839233998517101367717920377101316160394649836452297207462344658937485352257675707107814119465527878918149516758486976593728865420272860141159338571478489742946294823370575008337911695615771204594089752144502752095857697198312731269545366718913156072177832319520659146569035788500076566646589288948537890861988375973415203453797730761066272571956815084726821434964207406036494228934938247827512167985761793727152081956705523680624926689360127765956713304066251450798660007035034911652790770487309382433541741203991631208163240524176138514271756181739755949366344316181511478906074942975803480975157742804956196706544536506735883107862872636220131082394541196129776812142957753999887080201027942556794072425071212400782195304199446045696508661888567565685514967425626477970114827620296660958703136241504287762663101814817262207857364273019633951882708300330735603000948272267336204400254348255322064583696076365021729775598447597748848317371420031330526673379146111557804462120541958906438532646798837536784409108274303657675222702630474634002118844885805043935854797111372772079815856491095450160498792915941518724607325526837904062077600446856879412322834209537950206394226837242498727053771641366601571974907317914662597389295487515537657054537224717784671391700036265630699065347173204199157890369324559824932420553202857005531184707288832011376508556106903190129654191373709596660936746504220725230919356534105350651362999328468347778278540843607569723126580484155815667834981727476137628189035537194663752886759248367489573894426344972646962601770048729445267417229880902348643242223244406790371379456488694572484456230583517997990362297113015020063670417146704474155339282632116990229018062434560617898193193409415490450001585545577605364936235393882616823240483768038646293383459083431466882302750461642455675752922865503864225247643194416781031120575666108802578094628832413856606509035395450921440915510862679577901930658511240156595015332770538212798724624754996688334002958417339576588547934285450893032079221645220401980103071271052533147364263243093652605039859115473203724988954539345081809717899935789240169354863373240449660606030573115944275103754725219487437897584935538040874726198041640257011381895212672311201251385970149796113897916708019385623174870383767525626108889777008918368972050664830041684474894601872434650092818025306743805991153497632330848554511677695372680408092998350322456624482635711581557437301207361015207010473922440236087799485248253732306700316304846602313385200315001742946214948988778179494282671957336167586747192724296072045347083383000376048582462755764210430532294796295650907388963235753187394653787141545096493630053671575763130977705603269686460164690382412708837930427343580237522125057476294768048966465086521243377899553692538077584208476138524217357841402697469036852653385573695857980612040326885988326534181329382822702898720279916866226954856509912624031259661151242652362196998171191184403137626401745646088572421025345901851775097770445580540024205019409894923092967939438802824581892576113928158914173956913343246775284131956774186184076809754897096409152148902457401483641851514595954029322377012997345245678575739209392779941648676607992996812323372903785676589301245455632096500064825788190074357704490191565963929223212626811638305000282762931831408520703932632562288629390270565477532680223852387862355246963213538789098057597684603225400564590046479932448930258486799428660297694437846512555637786357064508661830526740668253458445634816870821525276105081036887253321717061163596233887783632144755575778462404524484797232934107652717264665467853623306661193382054842736475827291728038807453996276767422294681211147220976504654202212944288024660573129674640558945071279344981011077942288865303257466770898314949855763466779196685076523950874963310256706035219338377617125762928095220725422285974243436267617418270944045861819442568537129003762690726796745399254181675094893881730292198992862351002585599934845021241805072958436272205617336251644090068546600685503505456377582555172331159997707772725996260449526643863855599853337835332967172367788209022908863031110890081854367094266092064471826882324849790789973596508695025696035886522395653768860284442688429128884518082687193716985768288864480490179299152630062719487893037285330156022734917216400085293121686466870266982453219573746622374412046569458872007470160174014019965859580867482977023784100375623831864590758357330799522392508451707732248132495132612401921928322570674145114651176043401124744329509024715111426939799985344288151573246087507842110731217306986711294378940596002565705587232315390266532817145356568660045307773491240664853018889639334912414559441252896384187634397843492649435823156869046939798869374344344157191367904186995125208626999608541500297466739380106036998352052968730118110047734815173453256190258738633773253642373762190285318461799800328054007676241411293558298327284297612860596783640511545441088906890594031848692392833707340338103059889523184350014948555125255999314818155232198707774590595882043386836797154930916206755465518742022428165261280354861207526764919259138787822540448269096133617065861104142028362745929585811238041406599996581855441742084620301125875696346253987240392275376628397497281453902826784769525439861923141937824034019192560781532598811698608882636579896255932580066514312136935939029459645295237123469906752958100056397348340606894213209009072540850836066910981136035399694939845753804646500976422513269984380150252347052827266465815037108500517150483099409863111342775579594749971150910722191275937113366699138470482279668294218222999002323571396710977612481126197095605676577230855714849390604761608349763583771656646075745926990930787033191722328736119608160145595184656351383717621502660229369941757167223848569563738527798286873401883785563589965064630890721594435754063941357210211430313816408835496438926922705905904434915420343465453596794150896849431312126795869634593542296260140635469091067651705174548921541192782180936628336807602775340887048108420349843214534334338259577641482479052521547820059136708711153130273351658699699264168013797761686084174954827749148878814063010876198540478846566669745034382955160223344046029516388737557616249168379228211329832665092380984373339569692308978568604441459414264679564661228619878086825028660069699579378706229380247390786138057747305241119339417818792962315152270015350768601775083709168607058535315374104464294077142470257772385857473119452865315700648206579818513514069411951132021004052099977439563481502955148256450206241761631999850578287420123908392048884392171024692573958208721083680647069096817612800330493031733636850384336884675703837077715859253276704727669870504485557179658458745233300477127199366598646743850419508617693210370876646049561303133346175159933746279138420189052765000251500739527132910350914144715787071487382074174212266818464976826085844900573341627648113309003273096210854806325397379837941568751963054306463473724237890850895519032233418478313169952466483848876078709310935126358644083174379870938681781078199993731076078509117517248844679901996056348342004043547430776411559923639455463065704044130441950981945060880474561884565804945474954843143464723844574392311554569018477605449937831113828858459473800620327883605472558294054821799218125029813937589960384632414792736905839780634966534013975272134384376702709565055167564612330185262970059399397545707983245686350550943750118213256828517324876040528550647684454803650419137560488989363187775138357011372059875773360596585265480126108154697840157127488203265740763329298249500478567612076642876745077798326819659984688890817455306234855642983104347836075107384200893540282592109068768045439940136628629554494023054058590425051452827342132290140367088304476556358125849378777938728142730634154887974684759787275259168860113275519714491181395379381148834376817290329767307766585372056058556136527135033802343811910736915904154251162807316966541349011670876777882613004596059732695247999462846326817841656477051339396194849118939443936443925670365837837456713184369937355494438421177024307497409090824534701881810488019756930745390429817159626962034696243515063453553594903262488877499936438034790993435923425246710930492088387954557108196197461031821742865215601546892312023860088081575266207086592157041437292798620167734812785403652388995223593604746382070448816571781661568099409524837746635180121383577317259628608083173179784348391147854236223578527111566566818799130373917363713875982674889646029194628496871689034887613971436787689359974542348588919134693105644995522545151917734573540063950959247705369928355830991232465434091548614049408063374953427048218174445190204031697024804531650176081264532410957542807410115164361486712358286072987868894948878572843010208111667464715414430614576877776627294317867194288293212651813230547825485813641697434924595444299469208468099670851117408465768244470643635857925265381292691251557892567993199272956171603831305026867686549985278157075888299959230208117100425570469397413102894773684573531601372068968376716700899133483207343576677507437758257887084170635283802840981584750362826865523722583145070329770277113572808820513320992099735269345202728724840310532067732891192278985906390529973211520395844468779173639329286605984772718697249855748671355796864802388412266266103374394310988657948197700319586058855209584672793522185226730932804400145378497369835866127789852858010818145843944719359970365675189399548390696998777314723545573159657810805256106472577739820528909915207805226780787636049125673532867363593151444598322334915776018200359943455513951037215670809892413498517243326573488500435839242525413930015072231534606581424643865826213958881840701264633868156713104223784935181242247696127433021865075099715833129741377422985361899370481908410167355531781317116630865847435732533027886860774171828198064941730103725180094469745307059562226382462235717750844511524867161276592060692067630499273346753871139292128951800738776935751699259196281824227030205583452323415608858223729049666319568074310900128654901136595494981826950264553454650513884832466266792585767906798200297458475896545708856828192844112985354697288998309238677875170746148142978377729125154166414209281961559234334983886356721717324013945063228299589978732675407501116662128736855905657351308517747015593914264794456342701438551046570380391449081690291925386260574326486725149943606389298339834914533663027027446385218662497173105150904598231682490176290257328580261353416150903916384263979162375914705932557143763463907307982757276477101489680388576789511346509839154649460303316151718392588036046092646181321517870079178013664699405467667849800252307400928314599078267305284014583017171827695734317381016430257478309743851607074222504980051223777463996849159319224720341974460516909687870070496328845871931690758952653893964735956595251158001410470294409206840325544185474409736178535430151506206405314529673094250167740192152185464496317296491963944383765353427205793209625995549784189921188633262364019042581189257637428047357311767898515624704222137030682642776266152438979524190789505642029973914652330058807298741918145131348789708084335299147653120638895525366754516257362455810882073797818464053823589937291475812522354561683479342584290162978067572496868674202171357700134936913065688462742764069030248639974646348973791726529001344677205355045825110342434460232080241859191293604648045835247081953165429439019397353177746050314010802837322883075970907925078305716756348180621247499815070439898787394567069921915220371383882662850831257180008544127305742244008812598187708715496626171099952664419548054410580728825537708074103882440022273893075761308054237490370155494111347554097614101500484807935504840227109735356919081377194241133677149904877573714759442249666748821293211782223262153155671861688647856607715855347809563930066884453520706629934963204046839279039739492114364118665767659852812869652913618526784399533823579043055473816837667715479426470259666219691390615605737120837579844539743267342259739824452402915586183833241642294304239509796423328879492026326604859655175636941875316376848333321651081532763235593529937049005922919438778778475115243149058303674536380715007620652860900530846195901711858296918925630327757656338938323770295752580315531769299408474556781064766200116800967611379626739150455138390737472529644871134614873584641206505514504337164442052239829781891614016871969697648200686481241386749958096618536356814604936689144514602185679619885509371943533397469852058550806626897274447918329641645222613732292764220000494442699198305447803133084546043935350140270600619789839986436534330714867967837486817854762553185630626609387600686418220797940149320818175564199180904727798272784774965384836456722351973306543764768300558489737479952781449118286066558116712731122265022412544080731415688538673574155420117322013988781305206388000118985178473387717866803680398489795755262251424210758903299942129126393356990391293816728946206420495421276086397257524053322721145570365488355676793247969676591264409602512494264540886158059398881490146236263352929526233420308523573133932214242073028746208578076195649239188577329463755578923012815003576727730588680671760878351095551329153393618079246766968216325654125112157953991463414344908361062876886177330866850809954559464649015342277716560352261219884849153041164406415810610231161578717804521564522278606633277158839889697432315795308736932435576736853726281508423352834888634695674404871742046845526370104642577485157944315799924086775719491434163213204610564504677801924107455984303573110250351061310190458225583943543927520826749123405807270466666935201431451787131462329820798916515919441477947509246145220187837207213266101707412499723386709574156404279785566779078566772091878938556736211518304317796629639039709632597181541323561510551659793348375673663365445699882206236836010202110074123028922090088212316343841806295916197187636340070435037898683350331339834397643121010730755949882973726728729802227087751273723739478226887921972658405150693333776686326201192719805287440080858153327557448350423796458938169683292592505048695698209891250534136350058028708215180105306471988388672437082181143268800529246460880858223653562821540043891878409138865126098245052868809435456717510772507917149568745547083324446321541809258588353845325664059728056163809952016713740412002634161029786723855309195347408744557328179013575315929821074446216463875224567130423016968626617530909685904805833892790873178855441873750398116653352830788335952068017064151156194767363114791734284746587374257691486762477480861437038345317208525504770812657054145166176474290334020037228636933767577171090157475660704796123378513528789640438744721907255675364281764050862241127273112571931092380362361980303866701812121039992733414135638500573425165931287731425754760518926725605245293165043092599290393064267035530605562608122355059926500960911678367874518707574057898988754034099645095767579472712207121799172186400582741049200503146364032118159345104182485419912571102982831192456116651874401815146478971130868401258751707056600195903685046645391459776862980523789415201513084823605717012619206104355738491165523767884941576286040386630349056421554139125463827804184999734307742337097676110529389465986590846006786045403268729001374309455932631612755993365114876280955537518276823353896891017238278438238947761951920325508716059954684566245337864129278335419455870741559225991063549613775078274736034852290554664137725727662854167053017578033550678757425448784185412022285926009929569818039806503572352301036342004946291357421499420258129924339041834641692612030294366242740508259639133382823403062133499722013226412808981184833921284030387791549861180579458025636257306713718811412097595207704267524457761801717168355084253831577626532123576942219284905214415007231624902257487847137705609361075452717672480071128911401070075335502848619999524964078857183019261367302595430768615509379520152564482984133874887629360431520980632169975988835844213032505991356255625532200670224433571883021155049035470572934702624459370318528479035423078710273394214608156260935013451012935787807860767474113067562083692437258588550969747119620104603897514542256123800943549117486869245062588274758340637953222809473343566204473719180096020078836007417961555123331078979025000444716696020839879864965078030751053842597859219008222614242202717045853005421578742693058050508702320945716255109441959074749471515941314820196955653157727938800508610766398820007123649809703437739158981437124948010292157603264050703236813452261223653863797292222180216033137787064895484606033842813919480247729888645637229079587492743924857274332536719256969514320029015696392710611431318484624772032275940982246563467865221586067849191682934621397641082068274921201644618434114929696185186385753353150404379363725999955935133208436123860772688858744678570578622708418419610648279429871490299500865970378564293033846341865001587365366030084506672799500518428072587391135132383134141051300750623645549866778118998476719483449729642121114495804358013323163873707615650731464819700697638753493622240901184549667758732112146015750750761214364803468040263984415198273206943157922986756704652186946812167052205071352853154768593015888001534411728531208485129260587405025663156499985328098693731381317044482377641784734098533685951155365890569280802578531405817865109053615915511173335128040578805701655585150176853839424635959782305649254986901554548557544365634421760153250556152483511359093990785749919290585496403629099871419443840523851609359249371459145165723763362588743667075020874759967852258615315973562959309711587770932458687516666962609052460125060856566303624617381789864125849693122613413796158526818138556799401884443504939161635704054320850361083056000152213580181095076154875102070967812225167109962430438325187416366460074197655813066905574528812176126939730084935035415185148069137844403716715556117718334060009298989166819090474949513706456245093076653353480532097552230367949913544052703878843432534902292802237723970578541268440426297321954408297888252443370756343340949008837322225945576442003563898753889506217181813388320642533527692777287794816132570168317018738276647718445031152212377527534399992490748531680509525829900545877417308004233948299950856505116668442597279201869536968760625093154513024453226144517890535872812610708314085048969195239469529892653147159974212142841338020719929483812398966755321558289105032043500440573371646905579465388986779526747121427255593437592489544881490987255439899641864886729396319050285862488050007592372672572529445113732817415821160761223631652493478600587961427560836737039634409603395724574109949693646907982891803518726738711117004954371424343996712076358471723982334836290775050251949271429666115143050864589742932044303404667161605211920373151252549912764430576763447001208491376415474201215910257846651268915551134757684875979141470531454008915691861329741896216543471578801457053056974431258927867035879690079816055066623922258410535077397981506451581858756761279843796716880989090645689241435473299110908797805403550566315691002910686234921409265439936295174142988811035637741444814592388191261559567563400585970029887423790347723115832449594141074082618386340853297987691439880943075297452082005983842839734441115817159895350642737302337693728996475513757590120349552511027021729033403225173232643355438353662714669310902151820524590024190456498939775517753213666969721819229609627284649231889847231756680421110412993615547739313591361813793373206303364056124190954640540351328938109229133137333350984314964243458790748280443779154741297936296627761965536950326834437319857969868897077558471779753607514088261795408794587099061403997085739532286571660282165086422635313019574464685273978316036735812826062202521544443434712754210290382534529928055696444566473786859583604034844210617928303681793225178634873725453878136622044326525607477240170300392774922845144570441126400638454622860725885481070140959566607181098089474048294407074408855011603075251055134932649656582625948667390236432682856600461649060717033598567994364599102537133181466487724013479514999743397095586623474446455526760401548578029010778251975970527091187720613278429850885288004326311190886856193143893409728653238797755269551472284165113241899871822487763757951008217291884970654059087567356764503152509978382769082678124910800406068357716035704987260159615099351545474837558914720924871254137095831671545407023959449139261407943398209701069447541196932510977717694486081596310580405955942214987784602654223547110301529130199801303893908278250800972336618633764731155854352243577045631098721196867616596476403696017912650032981513676674082049604297109947535142471679390088671718530190903994647568687002615000810250640674572122757146113062203940319340629309350180294921537718894207027627694511697767012198938847916031062211016370303686443713726374174737609161497836408082798601227174130159619859287282362574237683599859308939825811421656999710546411393171499803719542713198196128240831572066208601358121373151101747090152505804323420101401534277247130326031130911058858583402204870758848182348288963470369905149521791096748555304962474248470869862142024845377993406504955999900936352991000834208724824712529275053994186660910727971030352191062925785799775432751173989639250585783479887807629929077368029554491152817246862158691505398611541310356427881691462810906125559108168107432852765123449765634987922576380156187705713522203248244982481067991745376626655180633258960817340761015110027202920344856734337606845575156735754316326099314797132080739270148035008040210129715590613663189963948857832221087874919300960520774301359129061606930870874773227599112893879843587821637727419507222817642285922185424323489885374217479814545180042767240727095663901425346809250850437980195199312577006168735412822671229992973970253235047667945913602013757778186022167057742301909495002588436669230343170610260570406640984444891835068152912866450202042281185210195234508704810952174412697652064700163884081331851272694482899531969146194447488790957231935452963325197102055658561071963031376930699164012526045893253254835071033958709458285164158070696307584613182638936385057623930491030560743725516240835537070653236353133472242849655243226034288138540281048891104607787551342261404536045622093756160591375643537953673503357602825911762068107809490981185180459827048502682743135145490035862869987765757775676440512873538310023196787431399202547746599937384934546027034525226137617440915806142781909328984354374211666363699606823744336921559986466410389408012267991075649191205283647303183392046904153237879932766065327232936740231777948975253077811722996617284272992991230703999280158042792758402880970581409224247592288862601894938837848612653522635859244477068851689662821998029814534533210714249136123363406178243290115325251616613391867349511163834403697234537663383041865720876297827129952360507260677630256478973252617284960559836043852113302375412698461145805843250692710125005295204261800564756875389525387851318511534676144489580435513168955531325246981139396279707775602017463909597775840790452594503803042738369318411464675416841134028577274425162377513030854050711775621533695027754426402706470281852148924456682346446049443856681957320264527549552274800460375279820976285864282388507574936258642586536684246253059168040192051337729530378658329542259353878961630554713754127025812615194632385117466807838132111060861389819873583731815324914470172448013903515221215905480593416752626828949683909073401435019895604042182055131250213527510380752568793963295098471130028998683779703892374595450368397563541884661246780263401651306649497525570267738646008686838890133186885995037639943506789685922701494808449830325943683012227019798497064663469581494840275464831128995194438251694581860570285885853282007953571851179348768694880520918193955161989080529703317991162714895764483497818036236777712879302865136595847368437392768756421423405279246219284973601795744676803502317134719972279701811159782559501177146368759452037038914548166478360529265565447972949071314073823044760279120814420391871612526540204387311418485765363734811736953703767297625217760368012602729094914689492284818741131305445204900763183173419536687127670394877284603399764455946080830484710172871826469356263343953417848776528146415805446824387489571486648180642290462929619705123152301558657031729144061831361842871314586396638315170784702095949084681799926694043270677196843837487114387204098188439451424109483911165788202784855376155942321592991820148994749248491816129053248082609268420050008004907019807177961740083667535573690637286587467584871231194549483590839724860104194950742143308627937390055428152635603183440963787343559974333149979152211025187056238094086219076410176254564948706436333884659624662546628580504079621329119532995611896397582088413088161189060161212922830274072468384387889922395952964858480025191002185977064972116574956697344809586885639590267147542124002022829780264386182896952552928203226220972564074876937299057764959808748572804626616345375671774981823302597776541942645810477345662300447194039597079836098576806738019011957434933816686556009772773966057170209081044174956371080806622399523104755253867601192088379988030640911490115947740621803412128675010490814854866881529920387561285753855658470478434891155329401801218712240145613427098244965192952210091743580108678148994893306463525027156550441441508808362736946609818451470512092157231796194628427428652705805966829168808456237041955947824392184760022790248453418229710645614176756279658617636245535240607179551386801590077266117827104826001723033344272835423818479526810766322894686128442153755711900841075802691444095956063729494350168086812923827032183862376315886491638768124120595326068691060534999552646857249688232001542022180956046034331799023615472509650677538657986241343812346902184664706186139291570048281918304110714851957334438938478089471321261735493322871864794489790653298188688152777944868755218349573648345144143671337591999095170087123450712587937823155760431506392471238562138186817067256694444829105269519618873341676418442903885452068923609789851154232379279252859787547393349451285663650120871588876571951442408981615221712776020373929882778498001569074430200513005023767726832476397985370903518848177508363618423082250593794082913133256313392325627012568894183413910241993113247150234168331947727019732826821054097921296068575055516823778850135209345852601119049808221324090105166783417562651679989659518557978487758502295763031262496730177612655588654907992508884758806732145202260345793334425235297640266824159207219230280400320450785421538922942827162056171415237115820922889262129531536454028102799193774910198446819822786607055578526612407894762086109757642899967248011458684429822859567088314174389969163002055144940148762367605453482466299304159043765229281049799053742248036046666644003094899615614626206967596635594527510158416264936906399324387401914404100242969597573281156291897662773091581886347744833433200276618077813152149912846591051532490367177888167556377014778639014673156725826717767350996997938416839884098667062280459885306090269780053160379143388262701520483387904079414298718459840863281282542897729292937451686291442066230978027113320020470714202485440135699449505355996467835412365483565196587097400478037350949871622572411258521757544105494318100341587764249943459046080018025016192819663106597852188994097036829566374731407682248370931630502175133598463524404982744253341215012378494050602060591218232164131284095487266472099460265454492486502567501466712612928313381568941794908646979220393772837689492111183251361269146070486697898074187558695291092383856541115216304684464055275340706250588843996806689513004285943836536002271352545253906412691147913618321737724792852684648787837892592205796037449500479255141742586734340556268216952770807641468981260643892636139879107052555054713185176961555225605316230484160302251859037923025065279847510398045661975445607679794795875887684721036276569032147397941488970361298729162116046264959312127946132135484248624586425615363895408459637644011367735859424191115808253335719956398342129552543697554034414337891100262298747394741327692331178340324377826909569965947276311280696826295589718752837518126297989507777840590285961057461623218545211130673868630699275959682903599538586451030732774017704819351230159715773326390887442064940853126099233938576804658605263549442844783519063917125690668707977389635595531829223932568840136188127676540727100504046526026426348294267700283231595623039316309494633997985845994164113421929922846739552019667002700124678346505778098304137374553820407070633228951534123991981354866285007609150488933386645125865389428010735177628467268319231786538851637531590676789312869066055717972581047079687663762000095583049842507051982333343965307553990892423635740886778419669911193177383493728366123314389003557341544554630819434398530290280201792097525357194962969281421658002247990883407552578845819745553101002911837906927709385039045040888055955015849102779149737378450766573057619908722113490110386361020833792560318473686194664575244443613630061556412912651485069563778909966554254465082503956209503112107177523919802908410789436755286754485212780686388701440589660946919073095012781276386542629838812678130311918816199154579808610239399080957569728527527693976313590315786138685371659156381644143356957857190393552456964486871184057757437988234293184745329245567758392177465593666398129476563693031613979658784389357852158804433645101104030233576675779667095691389734811186891083488982329893638221414119608637581358048164920307566361943378982565369247419842325084801505827222770247055145163680019669790068861587423419170772817577271237228626710333640320643926355443532806395804673393314578102642464723877565092213142121226774404951585652808969187696030488104963920398407697761774947990207401622002872338911976320588067141907667950555127901969430954418082256735400043306005188053468497796872748788885357394972651237546571611098222554889105650228527468819946618308273337203504621742871849688743820098382330319791996843442879215465872246297373362087119349035540005233760101501087484413175929673807789566502771820894487510369755627586453048571320502474040234095230699304371884062547955442088246202378866265413011367500748315423471099096566526026284142479203049658798558260129237407703064024372458271757553793897506674860954203896036968547176074934599085756134021926545974486291202342119194236437365998930971246416000310909553826165730619381515598667701300406449219885676812936614929771963871994010596634655122829450268276140401765470114686683242115199909540593784512409928573270737816862925795104604694612635727386486593372188815559250431630723779965196923929051396920805473593600922751173441576355847567453829575533535351370739611412870450231181279984568586179914668024843208485941386982085662418040358225039540566301526776675540890519994510842141720838010456190629042446804786378832361416340069679102605497214695175522364518587090994610209351659343310144131096340195957312088892169116486201341386570552375823429641724684621829552802428110220120157054689882400265564092490909428761983094090149988342215473869878966054573219408861461964366991600184439316437882007399143456182761482353243089577807364197022599171269272773296097425613551802415664850299048819760296024374072725512223481749476449830554681620108360275670814511971344773746856132865181011265487336871295651935357865500927930254065943548533285339062211943945131651879451631831506296041996797884540024522220092895659497537371287575308070161249416228974418014488938243513554458327362269519499308608629877761087889023633994255491008825102580853009853216959010088859664308744164589420780316247967768341524594165364866002000286975181522189255861227615766961644772204899982704897205587207849028915863405899216930961487079345937513617231141838184444942502935614786744945644903508743558671113252746707974788250876892497865447413317140906856738085180943123942541929999086613228496108723999454738623987077067592623886971501754447262569519945565474623274106020590561756896106965348184097921800923352660984617473198657631679830322738950752666083594919635076897108337037391465314323463635329775935676017509981422817204267258259761989072188512061242531967218250478781527085301198383417593937048041797652225676405306991732844499536357222101772220661056242778817566045057799861404982909518213672124231290843678184937888117875846443323658342737461123965187925604063826239576312881600126881542435583493580416285841030348996311989997820455846657827028620901122213472438643798085236549240922897492334507936850184749713147153995406389736309193527815478248011590609781569967030691637628673867162912632962264371508789732412402796532742943585084812360468337544280507382993192280380844112455541263762359234478517629007360520499824421636476594415393918502337729667780280837461072936976435267191037324292104263823672419987134291698030905005815816808340770657942485177230681393252291663446133934604244659599556664891564141126342516233408861966437490965483040738995189861207715115914627726034876397559932376923566838154439683457727685304759305539094893605998994468980826078191806477593974449329829137833867249179157216948354795464137897351497166380947735003249037791513354329170874758968367536021697535263490986602047253628120356431837971405105388837076120928078262373839877352058988751338164740999559831107759774851840642609603246327139677069690904364959785973535837810714000037061810870079875975206273583383991417635506244067730923805397448420307927063090757735531577341851930245500778037140325908664802949599399920868369082469584140768591387734408965399296872584915791231573644424916593690199316783788515781590125308660486942001658137042459603212022725454833539981257006773311178978668550615067658960004422821527660135856435634299638446889062711515377395235004622594546901874946153420289811333589706105571628151155356780370676052316831574769077538093306623599033611990989769783845931688306598780421163602468606938405791509619832138892977907023931445446124368310783349746586482744527121971516504687623676502963138265870700369506799021507314204711677827948735279703280676721802314765014280403427030095182622480202103339676523525734497993772182536463818592699067388439046079503011295129414406345558232401658537988726225680527470211594315905539565492638593949043218207051348751666645926912730073254833974399052255291155059415387339453209901540491617514765334043095818211819619131982115989103589576064827772088408622783886571900555402864607936067252645169736762758088583378701925013275004343272439141681171133892698482260842433990161650476487114247206482176027155853812125100467415694375763561998563941083312275252207632877525521063790655645600608860114291961229649035854874551465101978961229772967972735188332215977791298722632155613999382223265783206755312873002567651447120465909671463610630169869778022230163761232365438619408522131486262285803717631618172846199433511257928383146354563848168344998987927981586253381135292124122338321982718528721484709890486435411578838248217187127316641323620768250644282122515374207108763811742656063243719168465029042347504974314868808514876536739466512783299535998694838803522479031206058786928650145080502976485521749669308948884721583334939858175192628911684704483164710047380743619436736680040782424159044150393960956773517884507824459119261050655778543086675366408974915828928963299190830830916553095440818173914071030076161466816021018727447344377569444004201499928186173950234781078905448483907394667587612599234153467581861315137405395886365371193228607825163860280105012960950486167191612434968819178773814886132435971230715556518482077259841736704088390896389393890902139051314136436837344177275136250214100555200593912545625111678245077437593369721124593741884512648219160004195449014826362054225674137777973555759841888603323892087321288157821448680547353248653369633055862845748023999207217650419762107724303912342351870716492741965383955517304180345879534849545707621105474162295247512917744533405667624845841410381173353854236220640326566647868637795611412071180960086830174587140878723803607605689495553176928239660660137763757472705197289350659222315310979150586829882702849460843380454115045325666686909251846294266296313797721234285561302423112266560251973869098269269585458319239548584870982125130091795116613787620598893302789723894590840829104057585537144022071179082504064587540042024362054366977444287822333410696245027552813724550177482656341627560205292313033466812124493525784100478674799451657446897950330195489271755426517541692731724130730530466226794542364054948374443108249525404053693192769255999315140619642627601460491242305464539777449374642231775841370624726762354084728348817278369887626751551498419828245725237501284836820061354056598506585039912341245575352204007651817416354257958465390475642934293292917422170339327755011772813218349411014677093637948430968019864866587522956245645937844028663067009201714933752789117113597890556129513237367051609220471830515249716563234850856096455880699744345788797579040618548339554904832762720209965806703273222895493077653989385661898561067758603563520449421442975276745777731757229110258502447584514650731519172558985740091319198100895476138279868950883012116129412430990914770036682818322377601610071264752209923929067176141024207733434418615645675354504073143000905557750902612616219786024870080435420462463034113892197983619957146535351598326368432102691601863205304740182623923217845428436398476371122527204155848479890327672575572956216499372069372790019672378620063022994748485896983228813806577132217936060621171577500802179700897843659236575108637070214100526792726176995185576453371178211561155647974905647117461658791397892253911651472255109704536424543473340849349099325773719600389131860052422925018638665012056025531623010330371923089809833162338391645427737223970204176997569876283275503856833553661520982110359601808261296518638632195341175926347833169672554647465206177105207130569709372487624976671888725848635403170469726752828422929255356059416982826281584649155465557701618824745069746958636866923155616273153622670781851021930219367854538123206007637313219764897693237133084541809750419551989131513257177214452258429255481012587386345063254503943708028973967424617125113059897824204358313383080671196156059039824497712609740383920384035805680235679220844193664613361626386865817366499085104580811004818732096880365129647421265492849984780813884548862492174764564639449784953699358851339802035213404584633491251575368760568922571661051009390183436793687455851798953250308800580535241070328476997085233463817216108602071254994498372163448076949788286770139550818829917032725361084635454518445100247200926239947626045946575301827191180050134355107200874230014411444602989400879229592726773425375466681896634353317144163393675031049575776677184362243091200894072827041186011807621438778274188362584996808617949018196390271605395854053303017376679304957776883694505174857324864164413684506383415844024050658106862874481002987507242096504563186883570264501034668834760379107340805241475005909260683264640074862704284458591925936547796712715427380579413988261575980137285935523200515562741117070580021519294708118053084741632296201998753003437558120967741806219665712961306378554321771615961243414233452559767460986242138325340955002378226645785913447717525123600712594188579626195760352068283792043458407158866243882676123193114268307475515381186103902458393920228531906172536213348068777507494881537936246313982349442820158613537874427950495083177276642329959332391756130728912816156306708780521183722452894658506599740456014855946356229019361618761964152624802062148344676188288173775345684120416896941416967649335312712516887806757408215332791819316756110268719355885652589114398575974508942412063113107661489209058014726528703909216800424518637468478153062240154706132243933535234402918366879608644637101038038953777581902923858270071207291351163447630833652263657611621142115045031616623226313413401807278972155618891565144604056076785698862591955062460521119808523081708912199331806542843193886982364136185398664489590648984798039994216198406876477329100050334996854581438794381012818999859988256394055465894201914391312175577923261665104528394682232819210268008387189536961389733437209756661017307294047369781878580901163179278088260630292615593870627992289549383604040210279774982312065797753511192220862350189801856328012668388030946361484033402128968764683961345013112960213132305409962202527005071915072696767941322219352138323769528857116201392899279777577659082270851931691538789455273560519618024506262667996510267146517789269027913991030420596436985623687753937884728079713075369896556962956688584067872677250090673404361545209341415651680388868175860363338336566288676829408833641735728039359382031257952001661239215698342281230219413299714154834361005569078928021059621446936221942754113672649428571193871290621319465785699878104793763504292933567551783442588442521306056304708945967911893682876292855081183490779889522385301213920476350171323694405063596115804892043601908758531453845092384511231262672105501402173373834505046387320362234945151454048274623927627772721764067809926054477083611791268357676372908937302758040711637059616713473723346089897562515325551215060768010705313579771693815508916312854389674842909763322169063845472870961137316283631756247806227169540891505342196177947491384707638332211017781304942750078618842384261798547858016139688970719817079941368066398814224134377228252598915027389745546004907113487438677623683538094851332164843739667265364491673263558570070451252078183682759086598133558970193537489299382835666831641847794735574726488778927176942202292699286062973391097443025138144093343218855667204158166197181419989483531231661002864255337942153809274785678384588969072830495913859261857818954898236241807985053743295411025606742407776067089143207707629007604166028241481184440074824661101170875672195294990248092381567758711630586665285270569768878570839804259617277519263880059517944003234795437026047310350170899513595194301537777561334237627594590016670292935001908449306160953150266158401706090812009451243991882557371115394672925174353724558764920642395364645847606967562397452973209696158086820970716196473353121106864164526360746011881761938716657165896443964600542400748338868863543546539096035474526661434476093814715162232235169559790609892803844974582266900386583598845136033749718584753563728271289485155556525607249540105065015643936579824260226015517735086481226498075852370333528560204915591845152407917788354271084553030120541135587104981545189836553716598580307122810080791971260156026071515738934837816181534035837020216171871552922453976092564067962826897560927571903373638262796521437960454417954618401513391289463667102572462406474986398914052487813713984329275319546723141799217021607016325866930165849377813122768787413374706054110424960592470912279006318273438051942882892236649659655237527413514004502851735617232466857873295471096805690532100575894351680608937396568518698693186965599399532259775424728263559537747000723458132915359758155239806094554314768058698047775477077939624512250189934136022712270376072881093503486809139529952920903653052768260541334230154260316496437357487390578064911012498591280987952954222605477846491805375469164179909281276241638256314456444272119172617820354086267627696517892156054289992560190469939647336490886455166477122410604542643091093061403460685794345140824218075880482866116053480902326562152044521912113218173067084115568744595376400630917153885155300784604054572645624574649028372328263579644228503394396543761779859997624345939450907492216000475022640464138338424634222520178744213081017049660110841621418087237649336589607059749048255419413906869523383247051892371894059725800913409917906064762976832142809786761924569919116492785720942495320643561061173061337151321132399960638227655868492644718210647261633545845083402621412237578793312989081019223732083761955610301593604673553419631525963395943298659886177820301016156246526581504012340995869706853409705763224265766637849472215158763302520150271046018560291345026910903416037688964831828534700097035469116111580370969793362523675119416707560929673580566732630636995736462138687945665238337024707392148620139285386677515272153022994185831595647684317330873685194677591338025022947974915790777413670358752525895126372742406150321472042645147744397779291125187933188733714744447410214386660168003118093194157426656280778921654547555041584445420680191724119652439056031089216244755613939447908881036492296373097510393092280583208077351826465982806057879269937110914227283397496322751443525598975535132555348833546823413838764579149149977649628051434780918803893618062546442607264825050886973853574385863327661482678196530449689515507413397990392748586570015739932507434110890161576535399996021121311883312622514928498291483950477419815178354719623061557464287984683407016292595264195421428388490007187173438941578216578267430231603210566528753233970529956451398339414024991289764565583037144310041332836024162637607723860693483712558748049351291510458757266911976343498255499725785715551699462211039519872792872050819379347827619324617031393711381658532772409378007152646353630297929198849130403443772523068697726969190103765770292892508629257896648890597503976582495904682784832253570193594412644933569320416636196346942961658680796686590790555919535854462413222153535502011136164159869536298041042655265397016440771435636960782880835495880684462132872847242611482584536961423609630841629341871991074676495074140696891824673765113701961503688201831042069390794460453940529958093191088639041051987791746852386999301273258049054499279134600179874768455531387295427793258768282731806989112854697114877092413289910720788621226071084706614747629285816426815251045373166095092174087963182974946590986562267077283037724071393977647277892283554765499051033766634038571563488901421302224476664963173485985500857118939836152139252019208178133448166946650174297175159563158783861386815961232574487318699376439428050613699520365332466208431493240453452445580740556923346871246754704282378337919818239476825956180476227371829833567849943549657402398576552410776655500482402923145109063178091617108369901494302551959190736030115403310215801777788872686310552956350774194976818936575570771616970947288757135870426080760136062301132284885115817624496537512745591515523881559970140799883431923088250030882566234069556328333558830119810118297855113197928440345292813405186959649287217457684747236844299087549596297612641431298048961181054442279273758896365592780386090803144975531244277565773068849858356497201071810822627445054438909163606999086288241385054669719324967918783327728665605488839672792093739102677473469902427317138845314381340850247877086902725112848072954767828233635728961424864830290632104779245183175614957713558573895771588988959111226728178620204882573833712393685742446751750545319698172145939527956681710723698280770289850761943463106634851135144558036097817584760585373757725704873853378633022727143166543029222616143824191548964552006344256220171889582578569831373636357450775177293470902577175710117685164686407632493248340460508049064862254158910072833501358472182430005064593762878880267741937381056566004418322082115336123916797477700633042339887857728684568584843331649714777286929976016493671533523033116316744190181623074035556440608307147774428328572497822662201083744426473792506450187158973468117176213077583078513352210665316861768737173648010195135765634791367838628484767108729281030526671166316471700261038266632539953026561517462137876988026839046913672793315741588155027452343990051958063853721786987038207301035205609944395033277711417306621644504604873912903532336788737598438023598450149083789324842500581935630056577244741779096766701694776026397327860710374917672601945695180298446722151881917081089185639332336553093644016944340123331751269972185512601968736212191268576884391818489136456489218202257905403438196947778662779601257774572590535508983194467306361123333699412641530638013341650538616702975434199711743327478893598373559700794972448446279084113875353320704360796961443318551613061473915857284328326504076658104420086742074086045389405276566345758237391012078056501987729678366244363167815678528535449869130195687967057749211601742828024903931368019032969886946277494877647578876301347660224181153352897049502877428196816045707092337584339248017155748643868401357569878476599828033130801255862750166862877972502545329574591999006429371001983081709355627507675582427681987609030574897513906424271524438797686065180315785309383590830326878640898990611835485402795581159340738179874959531588278681682481199128683584249684755222951211372417064564609719091005038133941720680200916251860143605570482819661941299741058073720713640801003189509313081116173672508365114320515936332218056352993928057840394713590181178721524796515645475806444251425384773533085382740215433198903622355735680686555400747546908325689690561074525945230463779862874312743743343265027982400673512999297781866288501246722587131811821131214430427314494297496456374637456258309064455230474204572239310125885435131462787824228946865011485996590785853824880377941713912546895813575777249435175688621176467795916794577067445709341787755912500700848526457619248170805677974354027226559338580977226004294246960722425688342082382719104909131977406034382063430260760525026411702636448147509733917744383047432491614278484860877386977242704639546508772544909936998287665967339976908815069048055363380899583777251767777565440121362777026850749019012656028161131544155723617278751882863366700579038618142808107687264000023464074545751764089863112961105714898580066017652462198589361656503442274732505072483398436233479504793493770192376165064505799075235120110297756682671646891584239528851526237195807786378973788698007982186343365962255441634591246988383850128715296898895220986869129737188872055817442493155199262529301945471027447896938924576651729783830855410233555784878488105672408001055926105098526645697073807205177023269339375912909635218177233588397932173874337456945879343330031994501241213466512572217291964787482210008366078111649321816308711521429041772506523034814278113521151883260861582337638470949742809466198218483617070755402921959840666559317512639852430884165401691156658888141113250198976674901746048728961151275829535763480107782545968073194448487089421311072032011875843656075066703356271428010216320545516795683512407117247621688512478718124467939647872404949954037543906610600876420468400430467901589300564278906577281550413657678258722262778206905838294042520999720594603510692897443150313104566449959145061846968499677020847973226403141940976280888246676173389314891059106800336949485263051742072876454409892108170779524043443412257392801850935725618928798717011993411184039887975205263777515994413198091591542940792439534814690477539524398856396867234081802768896523193379185571175555410673090713880384893109265366476166187168246212202349157454826632493199237337498012895860511475412167406386633049218579536085516699976779777400782401346509770770943560636956492661458957604365148375067772143345210452084735450069507267515323454849293249944978624767796341829980813049206265110403720003866767610030912216158663154573977544841019021069310017287401856880275561953427847961525764009792593745867832477213266951959988757269831708664279358170343756007711075444709447341893516383272966453223031307429561023582416648579098098573201173219660271702950921035633522720688453570554153295772704645341583484411156968579131776660986084944735534467376907548957251926063867115390077128246231172284689779113128775661093640360690448495504099055772731675157970971309823405756386120893126409225041823363843628574941186391888367243134699131721427240983906699682399193497569305338794010011580537918473860641126041002758724738122957713345352241503964742260667733089617912272773765793539084172271485798237576003689390483061769941473871217196329797134744463784141476849109791664021857575863039765123198973191010694728931738117913803056365628241782369228852610564500762535565090046208248693745926579161463254603985255705678780290906310414435026347370242422549781448219837190281097981896684770637876330110408939541954239382725078052289554548265179638848966638341169611587525646469658213423135843122332341286673046321326854041026767666172549967092886926993247520275720433548847651796404522855992485754769099144793915791562873131483673831166548002620744672649468865779164655369600341970823376168168742327793664129830881930955199867754884754205585645826500337480685503270863965903341932898984156469783076247798532158822665451165518949256270167869989941754270766280487193100086572477298317722645422122447199958654369556948209434409715036795975149649849349759245329289480238014322565359039843350189732504248908697241881081248216796382221109887895476700990182530573779146625840020484584602297705659948474408630396923994243749560453059735937961115147391043158424375065803597313059113232144142058561960634474603797473421115722282348137431803579930344159521801775319144383922424605398019813328292450936135591967220493231180952299617411440942247579340081367488299390240701198541288359179404618979537927714904651153058566784820087297034049188727725625832048706938837764126454248419809674000392530299452457215613136781882838024248181345454916205040398890507505953875985750803720297084386488953352373442784803084111398537558594275028940730603553610337417606444110864414923942255065893796409215047304951169432978244348188019910167335397821916714112758922119364638320631080026450193743477850946307399544839708364717983663279267818259178607213507222671042223454273668541832224270339938605388951986620011626996306724995409514124251791796944545044461189522653485657879051171336716941522119893154873932358152519326099759477170822729341638491611750751110858197367388227537819540996714572226295026573786103177582464581789216876239560304951817549999773222165837905091115359192383859115832094737554709931476091566659049624497312261699812138086869772529205685665288057910612155649894123854610587380940984511587641124611680780927249728846453724713365901714841106389580000814481928776227836841735952561704829119522242182453033644084566191205802181071632959417201520546253162503078425346254652490468175387554045939417394660983300015457901164781263721096556589739863805908011650013364771370498205475163737333895753089718752828883123052904432137983762883147070250163452383369969521625864650221168223804005935498868009662062958651981073981234220556956655122008156541573268889489278398385160473254170494781448404095005717768657344612933053882213499767649825270657345462403090604736449751869679534314383527381239411217410233263806340157294765182137236429209163950825771834054162568866773683261983349796385244144030388826462505781284364424928189064176024246033584357419770680376988795035095014821219944327902632739367326592237257849278379121129503636312485399143286672642689302212242342955180115148563921075676445994509096712870456532330574687683478430800167034133871373346710239368402228938621260921588072865535931913938367286135089566671920897188706473931191906408618787624820975784480554591662306417687051074459679328386196561591162742998285677343212744450858224821657160543559982237429043370774236250579056515165672853698164412529206872400553138520976164606655966194359155503066872483865380675780900360920053345804043519368102910387096125325459001511664535670913426596272317786456836050328720904728273877276121197835933353814032368598327100135864039389386258199131353958084367277101494385424015601277177996403303927469164002537584962310799206712946142987819560885389548906672537293177817565565313020542986906593689248293338457916909897259659171703930684400743363934820611728311128162056385873819047464891485771973523036579209899647383966638413660122750623257015364820696692951527802346672766180149732411002516845219537885856542027282878561901634942808984181182321196794635222144249485129914292764075744901871764230358736683763066849788064111464930718390963772993002882019914157165912379565883505739996782795021893852513631684661694747280674946862185595754078009282251223060269069442507584158634572053266179600443728487366641836538626712945038047434940051203144923717738807654522088232834646982088912304511663000343096961178877705789205202390148127415286082545693179719111468976659831421078610120594202058236162974024494548931043450908590530241431415049123143329330437108944095648533848674848767351095373426923535327826443743376834562031976490935734776831528661820444421568781847641999296110614614218957055678159589403021745594202628007637436586709865980268291272935613673760039962378975597772044335695662716676587538471602192567759452750870924809471650002208021179623077628977279525412438124066482623115566764112945185096614373947253955078518741675258682387889887421359175341075009215851014662990529327459557917781622556760223782030027376415827415450445636010080300255438566597625180255856446550265564814226977259480542242511134673989741028847123217552330619730406326885647990947404251467268175295184379179853745392285125771622861338061780024729313120328698352879882691097727773101159288499570002621145747519526936510911958967155609195432775983584078176681221623072462419738919167123045785411493206712109369852263284678897098792692115972092375488547004571215312224267245711981184159957475752306636518531112084671893955985974899662137094664176008986490587490120338475609265599432823506606772403978565163257954276020138413832873085391041624394835855579347634276451874904693150649677844275078599011436617231330972885562584897500989450296679077440695587397126153519103121439288793455564764081069553065460778157563957406349430217704016068013317724858252913901669770690106644767447510848201370973429442226855740543950931959660129279463477991697196519227681042856373162187244817675596075543595724200018070651347948998541101001532535327029192681387579689376155263167543778992854682095088150129181352645881288388636579509341582701062758118892635034406731639165206627525534164623559539365682915615695046288264001888654353087289179720378788305143761144556894064093052792193342025301410346864796063854797897517965437524527547729178646014709800696970981680409037595931051761164475963232998787088860269276558017358450449752606759114986430240693971589450840477495310239817495329469306459009288363634086619213005945180195941608489602981451592178236205326901877735647375320080504057966151953044204380721350325907672071831298987166858292690141676575857892975500937626549745412751999086687476522994792946940730005987046022616007015536675022028800423285866058378638185244401810418333084873757818432620281758613308874928738909132482856672205803046471428165588140234324192275912967694648633385031417554190042911674432056072329856658481531836034489135556570520547892456671247711871930732422004405765385275799044061582024975720581527176801079225073877608300210141290765459924787790930556706087347008373283374432013124358371932963349213027240054742796121173470592073661320751163695037701776025286073881303701195159880709751403325949053668829833164821465667095509379632222766478635158930424723598372266431906581577684699905557052999211973877917118320355535774995688002166117680646668869037982181175005301112180911768476291807459439164876336145368474518903412526927008933354295006887519219537231620178393251495596721158105941411004711308870137869938018939499860864061172648574680507010399550828812255850485532958342239348729645289940244173233177892798389523453504319140136522882178125081673659501784553018753263784667252456628451933489415586072909282887335629801516478752135022595126666724701736730087768429682763507325015158406625477497524443899986852022577499313088249512082784620239860854914828954227726280915966553892216797463039382759703095030846656444840113636494802312033678293915610466548110514737038232130449003103036834428105001918993030396148980273240859859267195575529629608355605220610826017785719132018455331493807483574863815519942186518556286847348689520650446764455934399117230852674746996695778997357008078281110810976099461816257649376269774250632109829228594515467407647327381016250174276937626786702842615191022133052551875090278867869656708653453047427950731062905190675299601273791148114948918893420735664169314268789967433207210696789649359184166778453498656670501532792545959356493822755607345638335550504000022742725900530820124312570364803558726870098981208315408854933288049970937828280430139871553418221127929248444545361359351711079818478387979060595772816496012948148374626458420758092947119731027786146887685446428544587423014275671387027907114017670092824861968338841326423259871438577990538222360507468134227090461511187533324348433344258604979685857007340209269053394014939749968588358514248735879012071480010113345705527210528859916285657602235677611709833884382824118022823604463659195721306756147512594723399922813941028267968332965205822419529112559484759297241364459742482163436881888009753680399441232242182720074847419275445337306497536173334670195469524503165053581935928812361630353449552864022929799866303497133143137572861287967672337495359704141398251270313932392211680007990455442882602814310367120425821976171176243213125156306421773908023203130679269243573968739905933568338255882013589578497389026373154827017702598094858736114648449286608945966870537264895136367524735821503454412473632573252318294228880564530120904080233103604967601957474001424301079224568549971708663466827688449825783012340436348615500107241836027061239986085647141921175411236129595198879263463920151431359510464783702405662633799254373329068419185508646779284218686714127146786103432898020728250990087398389367384973620606284177486690974985235506769272906910581228672361851932214640099743662255199439954011931906692192765548100819075087839070480893064429578835740580073174583663111533233332656163692401637004936166814791600278572679738975922009683430442043825763233272600256664441055314624649781063534645810849630902472826754825836223751858097755289166976102497815472607609888541606135081628312701237844489267119285259260246318981658865583275312537006949555741174450388812228802741858831334824910142107671192771088869326761496810826965723066347874137416752084015400793496395741768815102470693531437897768922758113307661267005801484772391008039437604925720908449045601671552283640484920290245924110188195154229445796422801211058183733770793847533822154945574294342437968601346901448128009256197113790990688442346037916713282257274020258003036006238558242453992494914169059555041205573272164563701621055069984803028261361360392100807062139002589492972701342294740621537268192747174927200093126350544636562769053941783132369597316861473785388380817422792710332173818313155418483326832865481847702660595153440587303686985017753073807297846666862075853011282357409821561017537597832862574769998389138581311993350239300890399952900956210105875804291304982131032625555350345043256651409997826006314303498634786169305953853972681398280880231373150514652638189931902570957176870093216249057611419216414377734173357570460909654829369890465668083655292900840761025531702481671247278896629886721578426402487911656098107520723267674287826209407590815879682659732609874192189297756875856063773535525206960751120705124869803049424379265012728568223476669259153526480064171433523433281207284964312515558390824494516507727209080176365565910189746445286960095021494856659289307149972447913582742178324687632585132709542348884496646064828573541636717394305961942625421510737934335575810154096333074139977089419236927887186475146527518474417489181215806244477853658336254456680107265168155498658813283375852560621669124477426994161714793838097299130733787145180081410860733180930281979606143775011962868452655994889486919344066387090750308769421033979231106136695732413282189496229315191416907084090530670879057717571901032614317501870784189625321910008350282356008112935866117049774770091043159303050544592274684039328531128149680145066605698886140969756793591582094974341594603485454586465443391325479677717930151625791045445862955062661889186224511114458696295575700026108989539046437977661533920003345560995831780826863036836817219770027704378038879103105649898314510769053048897289047128449596515532394967697530910470522304915027709936706910622223903046518310074166729208173760271481202984178965993933287877379249278065170075035238588652350585078753745553729855006682116466359443437945750541932492868831841665416187502908199460042918876484180244832345305752454649976756007037252150402418136831551112012242176570652520202845869830428621228037784713123875196568887016805044413034829637011421925250023504168936033357582920701068448866380286510965794575708255274951311758394230195842593741518174919584255104766665087233042802806547675703465997328729021445467241233731664569171649369920880408265032474804107084220957436202923195798181719355964943000036064177767340974283066062761811402550535297558935486337672620782395371833297095408018516655388884444667862746488708784222441688915151758866843607494181940515335018662300923105370287058842852549829667779224796708832545978490498612357000557074387332767414361731808533264517937971519136290043031832423434675686343183662184697229418709188361982372753675614057192574530679202268575817949288583468991956211972907216835604324555005383456817176526480301780644514693323468264639767883271597906503769337709671080885823891840032021064902544097064271224291468168481552939438510960476240566872088593172935627542127817368522536424916615022297414828106304935798431738181464451675319944185415047783749818573174733177869665080064434986565482598648654473767600122606293501557649213777523761245709913695066249767965840072887619915044449838433354464327014018364465742082528307200893349615693389713857314007422290596330472133337710485339920591122592055643770037147554511601612299918633995121351787000578699101442512482432560031638216398209278485954147022288177124372065810278319960528730053929629057142079083019204804838957975962652297882964035517007964087511843969714027663988741185979012591687767765611231994046658564808992235266419743993758015408981567437788065403556006864189840006673220218686265601725578002807227747651441369941952363840767806344178986995684900534688405411271640652757928973901527139996356428257789752145890647783521955511693807445671826615742817575424830936637081165492351058935479866672673252901559452729808474434132009166259610860593140674960606303741167205609582594906107109483989897554160416426397184533316630797652949421826921313547606830946210160626250214387985952536176163507822420103607728840010823293982682440025476512075972335679530466234610478249176851424726262001018946812653768957127854107253037673031427149928917903497316914216675512848938031268655792342106202526813705020108978866288679102160306989349387908890395112742290320958360969436244718483053185432880407578100634822565546351243655661602038205032719182289754976874190351340258301517492777464226979908087699956751915245178362196950220079010180344054138189212367375393515006955437237730060383983692947953712086051680088133326559355668649130116672979397576639329877427355126500834249198669878320838902230759368420763219001914622151344504381079133756253536641715098979272620083601921971850986533726435120594572888482040591522640617649095793970995382152627413127414236231639991551661098818944643187651892774921597769235431540973987189602000546318002321339593521101919056150908706796030958583668632502435582974503562955327583478011030879270824823192709206308872078673208840965741732916691442730831464088966045111409584933122312534285592673377019412591014514837952516154973296110579304473177898913455996366991786878167185660177852241394408813079770765102319752466264984674639648236496224555524382429975149732490668373700758174855573513172321201133671424786171052115031944477618998092268593914432951839381973489300313368047896269718078555675325187395036955449098578473546649136770675194911141162216481844305962261782912971671072970673629263782770945576360228948928508174193725692222746036773616732224972161777606741836869712673115221298986510336205859045302468025436525518650128612431373771165390873463200742712039118562396625752305122723945136935596478124530935325816977478066762799747508277095563808180467113010221305340205586904339706423069885893464305932912817450518368128913283713696648296481942748940683764719809256413258690613668996806577377009473509015357408604143461310598209524482903989277346402409800249505720411166224602808394772305985865141967068483391402047394595717417868538690770148309480349879467549565499182316249578019501926838781331529197714291369928730071881231953371648631457159924112579972119393521843851062842754917655126614048953990084011761303582824961292558671537461592862308353997197797142227863915598502234813871965851874683503134386322999830467322361480254389101918444548572074830527914077770071801458841122598831284023935689635209896877376202217491898015811821629047524965172388240147618988367720253811315849004183576570924741027528486863574319494932070373719124642378627673776257334496846052256888722556360486272449103082784954362241701154113073504033568906323961109730879944321113919878310929467238460733713570088458429297539896591166700233442165126167408264703663891594401179671474481619829842798129278774566459509630235919349372310260749486504061932085670117704191960825900387819827499942774943600692906081873232756662017477506505976819826831603439176077578844395636686364429773769525134420718034746491130014888830012464339048218424469462235771916488818647707472388127509309854750234922433456181466145206090362373214692611131119136890386791359055479760879219510410132724645798827216948759330353451342790395930186638576690102710063054685939491054556753470139411679522880541846049764194113797642813772988890541954273124330299605974850097672826011023359980819092873245875904205383438773071772800320274599586233836837899851195293771128737039932943038042369266875309985193435798938309582202243551937731317086996971791033645957721643095085540821715512506112057141170608474753529887683660867501549562978859883632583897681362447627866693806627243426736482693411485443897177224466856421444768768964340040239386884257861193072783081004528508838002439390380978635791925342496662999675353184172748769961326278539763473238190870534050685395979899118211618070630297275580923137942085852557951546922758812769391302814680258265731852583762017378682422059351324123929060943540769332940951194718476597112336575654157180329300878992845047017742938353060654750445917879195105547301038227904394552600936376751604810138567312355192567313443745661924950820630040108041798407241128713042538599539424040049130203461661347012445583003019644157193193408479531839149383104375888833286721439850373843082842271643670199638298123460277297209447302377138451710838100060288565552473320804214769632321620686641686067059993267205152412712364020666405310223867139681455482708010246928180565977086216935153232473340596822881771126128922851194408127472806925835762963615772063061811671752646198244341759930062062338832189775906413315727332481995359061269303349114321546753600973506635161677353873917497905728838436477040304983826976952079382088463980485737280371755036911983042969075458942739427210449032415161426819248966985163044258976628468994413572742633105273496382881507215392840235658337884369456873817020975007679533085722724205820193003283450589167828108115224101357576407293843403622699998002757329594850814497428999738612695511337506219137939151961676505694403219786225672857191125351986843808952452759839729628748928641861575833914095859152593587485652817897771521641990837440472114362920105657874718369732706373587256894549536208758528483580444317139044742191654940561046644536598695218934811999950208306923532429809496974954471270656021207892527202426492386898730723313191064204493087500107025936067840788239842980295800028513691984576582628958208622395423512963040645041002477219027140007024314885340392072627439033692823267595300069179191617623859858154518613041898258727503182733834146457694754738576137124432584750930176352243845766063046079930553426280048339786818568124155074518717403961471369363368355199571641723015727713301114156484235135380153989501862104750618010108797723553136953874696061528410611042873656723173581861197123599524982960329428659987553887235812581749954932132626254249436533044368248960688067041381546401341733654706475387302477820334956721056901355198826424535517799066497419333122873306985622082160993188112722583641494604359549793352229680107054180969946412435634456058625327152573889024871878193757302237949733391915275306568229761188426866337979307301001577613664137135017534471689235920158994043041778117416991950271964862850678986033936260200544950418594479037665815166312259954061054871463404006307102311948928538967500160155540226788645885974800092923624687729040247980848900872923799199121457234568438021632671083773141459670181601826935286851822197352851389626107760804687118913755064781194652925328433908015497033748038696108540489072986746998095520733046539478051115134784879948414620609348624941479089521088503141851584084608205103505272718142695743308574507015387014923302767777401516017959536037231644060097340714539558324739639835439324622046456212311735755479269973464095194872398398688566522444752890163434429937546973966849460662134573575080370973630205088285265524967304137802161566271770950147674046435646377634665955568683332746357000387182900395831158631176564086918575516076768837414528357825708488927301438655149817125626303921316373308460000848579625678199958757845424251145122887420175977579238530333536897358463718611944645472973654438512135295805375105641049304611325590941835957883495268281387214600618235058568977735483594217490064642077395802151180622988631318401393733029285618277161647668367105970627328007076159256783194830844721615260291780276374994999304677261287507494780739580468554583658575307765623302963550912573089590937528015629772112924052418504047299613592095559604873036790488630901268404258688819184415966603016245458283011318399441527651450758233593668796506545283375076118967781184312236564523764735031853891071844718119318081062888048928611789016035524779088191324300997466617245693014379016012095302688931289082192643987279469194097754182792443172172716196408994673782758894611816632490299420547038882101008044196510855301819314275953021917011280743199115548435714856352131649714654972586280412700766561636537296061877116680009989811060366337489957390067583521854709392493733159023030770005588865471147517377683646747590066908396482850551704781610091050202916680299237078617865612628292431565980730484869858327162414199117555756821220388213318917966192612398273768272757881852605012052078197813413230714374684986064664470449275131391950746103555602537509465077588821347070447130878674606848919500650939369158926313317091006501361709700349597089204376085832563479914971337747852008391153842299380490399912646956433744752252173726129593707711326556950456311382825271092539545131854072181950208694619267245821911160728580043575913773593185810878080866413197172286667732846535023814174817323956871035655180995042575880417434921427735919128322542350088756610968664603398904936490577031452692845168115253071267238113184920558944331244950886388167536907518206704390024533342670102769021043909445849497051069142769228715599078835875916393332851686236222526391144323791653507445163585850309026158767272858788329039408831371713370335584671940159217655236244597089551881126714286796543369704894503132662764982743542877813166055187701599336913563139741195378443172700541017284452219798215094527512024492506261735390929772839008522240750396492551665257370633361761675571900317757684733575897795836877257483275714011859938382623944474330469175183347539409118310810388555666744301539971609304209811764520109882048666250988352016963921320714807698791401176359458911051671403232140207216145797349303433611009231410671088301751500177344145015761924109801983568074046809318216280423108357991024545395412772444945607511854086466004686738402871700651628249507123762320846234881109776423080185046399999721743956742725573642147166183540118768783752336736925197752559233339862484314815600453619127791206488209095095056261924666713394372615780939284393209540088634131456113325730938046120733816498747788356755045621283045805961988612234268740208298218063291468818619347900204254895500712673988763283108459852140379474368234392322555881352883046052326255294139531813804540144894178436453851176996171259107529981950417249757850341723000601697480174524186084084438095016258984936424359280958788962527569768282052556488940241039802706105291334039430077997371473711616761705982053855046221574724704979471981623531077819955144940629274837359296387273349765496128823634178749082676208941451551804944126019350557732245624686537984671716146112512045861313223004844435694490745090681643895928433891895379622141561708117674251899119967919831350131670705498275700330886919151489473717308840180062205650103165149568777729575552717549978385678264378935717281840749233125162420747334418180475398175039643012837692075006067459136241303809000214036786741748835409310038749000869914215794713027621787716292548002225139351974868707036095639386532218311664335802325968383901924776888209555266715190898299475394526519841077776018226149855472976299931326746779298018301098164904759078354478281421432042397233496580085161829211267956857298392380642314620800226983769267461282535247525089363223671698294107004129789193893266954144021801072386897037371476922204920282958870353616516839978929611891733204415931183868456943889536746624243952662509940911068116976843057979237860009654013551022996698043433887935214815714190810160563078010269334224471099555428635715181356407264202142166828303273509396856079578135443514333685947145442393617888330836942165564882125319029548110486979355624694729635870741543583891310826314689993145292647971901520891390837363263026217368844304194566337595871358732534905562319151668619348951732374125902140142002135312779433722453863192276114402008285467798744748646540284259688396515039039569781174580308290885141818771972762380101563870616369166345165583687075528530475246144310862889499202162721757621884509644549357318473997601766955619821405129979532050373869634924036736129136010947173401176562620444319461478015670610552535424052712547501818339733673340722680533806212494384148591015677890382890200592166368924909182164961877594554568749545573700098542640763219572162584368609694278329597947720142173245639449543168670300442286381311032824949401367782025828108722243794917040978014854838281110050882391381772512575849545633868164381029952187206942633938123093869867659225120814094906417891366357987112125090358828776522196040074764427211351990224349294263589539538005799273067994570979578853498931267754661959358967494094089028102048999964872016419735614749883168198925752988377286825187839072147696920875186708349292587404703633797356579911913623796061952857065458084545419087325888605607251191911853547486504331677938233995885048297250991790107950589638677148008698253775994318571808714268467192353063750090669459218579257966763655615070260079527208105047362435612788894467468304586012014784218230315966699705801134067952520195812607640088540706927239241904560655002033409823027015140709402893509742035531042045546049956411602704830509423204853395550498509070215088686798861604136544347847336772696358008369287963869451518553703203964092815058518514032161125751877095252822486905200429119262208041837452961906799487451314396800189735058018500052941077056417922633106786108991187017094945276728330388093113055612707912394050217871563455958575503787821397150197191920198242989496482081692089521855012797636358267808531648554055537328610456025120101269820900756132729595369251034986435234943844241904924624832630258973000715367651828309543532302057880467415917311575635589125583008949283168305581483555070947772084614362262965567503414755252488904598924215472161778027283319224086254429118397555910135563243370433101646135526269255620334409243654712931215691361661126859470161387423583858135196485468223350629355339825946774444716025704749811787723469134672896618786713719656411717065565013415906221474934641911007744805404305780782048815698966394000376656477689578803984811101365661485920460172334424249704400542377209124769961880682762587573408494484728520277642719133001799393624370729144973516557987107811664560942482833508633129314751710013560599133845481447441033515423794410968788709353690365309569717502400491473559963903943557402953533945682406130716620775378556188289161113924399032446288232614816587447153865215398186104278803812236750725111281273588922556600225436442943141586360267214333114527546618636540968844781296497685677952339962056610948989620075070058388629976058335811734903340560247382951443877494354428146663765114046456984824004296227307919576771744064232309290820971411379665118710795586192713906948078022517504653620416217902682998668069961966340035028836309821383585033039058218319097192324439077305041423477477430262888323315678070738942021291150877958982601113474064966326057126446100275722994505171733260838733186822492787754480417017856480137274079317788185433015679300973270585447686788858923596833299239614669702620359213512211068698731430777575397672986229228125726623238988707927376867993625864860092398710302901408130506872395566812431128402610439789547819699101812241051175580718632825888595599048255646405611032479116265116566483371248558793440958675528183802577289368322391029383084188946418528287578187733935317113328397823659604864315623066245007408723230484134225123110264371752979185300562697696522415088391465271718208981188920402863704125929524363035570745506245996998837056666453302708714184175470888818134814119299643994595166274364903264883712594928825043393544452259228080505085830871807807675694927492920798608447701340548666981034685016754441286493185611757797756029011884980116872417916604572552091343617723713495566975794423689461630380480352941842269179859700500684006428679319286304109883247232579362386553438401681900979375399340506553420098033775072135928872136709570291406522540001378317590104644608067785901896942425592812348151274656956101312395719233655143735722137119988072203275230817206465008816965040606913157781410168342249694665829220972577768600157386722941485409150446100195094701445033305854682007468606851058434862492102987848672542140262538641279119480384187940190548485870396058798842176229462488944682526358359469931180593077900720867291939012886192790110407027363342745406279722575652108742921598865206017033191588473583579699718110413624771269549784408270881917005619670904417867311099348349088250253488019312004443506327088333341802115802682470749276007054606098860736649904262306799498580109897298103550231236853669519702854613932217508756942935207299947315576436998845609976290993033132723478825106983210630781521072037268794451712971888168104649933415731724878653929120142311428325246310924944357263103533588202112465919987189646193877679269997726417076975861330024781438650949608473043764670815335082696137791856471480961266322407325567943777541421182113434339713058278549951351511333390897528098480414355002926609885513025662222656392189068370107950470719122619974742402362347276474337104961890002777132647771003172393699526715593109457561531641994676176695537966823470664600265836434420782462628996315712816935257727347946234668513277378845945859800682625985541572540956286130889944227867320155949548186509397716995505819812687794706948734604313478912284187643742601548580178582756749931767841749717787262515624430905090520263203770733035421149180431071943172194594026263087445024084690691603772041669007317026084285626110048849480723098213375372648468294587090949879831012910304687535122809589419655314388332852188392116492932863719298116564119510645030727764205509825431053273194053532893664219898572422767835008981384666976064612557245791148176221793049082830428366006595620567012149661096851038188382396618036026818098185202534913660301871332535954393705056560166416290922803547926630418683980651667389963745359986870946945831580873166618372450548674119404608533706859699976609013787541325495626066931837944995911718883780686470508297799090557575758486505275448462797672342582147817394144185301272203075737807036828026182122145718772992055275048959099021105537258164947655000159330768757780221411896932006957511772846177408245856990022688273664435468988286738398531155424837336678720696720269037680143346430072008312777233895266089758548951361218522508289446334174952509353065975498734057089191915788616407572628665794511758759661483389644126707182547669643903381522397144195353815270385446911725959674900529695323331973245264986617681124040641465818636118219166872322715103059803394802697861616367012485395344970349837703975635179748544271281375255070082023416232544928123513034583068560048235938464521206172357630292824575271422888118855217435155990590994447572082709456796092069540876485757340627677604248495167565386415273478282732565981959493833539982925241110135366179475874081306247677996742628603175360199293257560993721388146188113758058665748434243532262523542219820112944185419018769346005336403129809555539342171699666836282794383405251408805270131230511697271626386734542921361088765148218984828944691157120940041020586876797385816569326124152138525459348787111446012491265464265394086758828519634946736171609736416740629782339048253903642682292020120101091942431348796838184502791503274917293137794001342383407742445343041099430475036308780030908572429691241438767646744812229728889005856192895790656445500623518671204321899624220391235277319887209377229945078836559429781430312351674271916826976140189517636368465371703980751275671747934869935082702896019448903035252106147718759924667170443386444199025582056913228323428143867559293124609853699018887007521588857871469195515362178101875556658943669634988759531519770377424048945711402984801638542557881516045610179308304370439305494146674152492463893272214865494653810888604045940732292089373345254855919627865035699892218708771734723706377273743263957033707299800303198514120795634130503863503744212079976754963720341876716886803127379435439780739919736003732247045106368150872638449836989591308398115667676978366325045594608822332860169716803026394463470509017744303136505593799450756499991947917759359378082912759319025106320019974286450654840879741569795478385526422438180391360844735486707127194677348926056805741992612812898117041165095994816339748563261564955035199293764735442866660865712478384825520776457352406522301321994130035364716811488990604889621623349872654873437712613171748535145461444138153310526607375843382416114678755364371890475303276740430381373328647955833689709433116470894369274568146960354407252152097880841738157342153461092672479860027991860461954243930737405795534180997877677823487056499618528608325468766542060089278982725288349268343536447175352770450807301233754649879559950799552380903193011585200335143937129160698876414158661608361783984657462590149902449800620395774794640356070720323963513198597724930392537347362536192816436813921939925144217089241152063425013461663114051383046301489874824422205969648124630075657633575833326358092694312354476454283147052061265704876245035133033645933234777727097009987054668625376118826028174421912483022223556222782593047538999711544648037121619395653551031879823607314940096540026730883152407454578088180357727267023454477351064103263072455348922953292080369670757915540674684448983742710051984963966673222747839927352576506468097231198330618098414399017103760175143962837587118213182788591443907853337864743690684400004911181208434748100706828042031769607855971191675690566380639367920950058669291583437433986904405095650886064818618802466863062112700337389769762768617899956133151775457744006363089823710024687446650192456137149031540770024632220571002001118227369957314808553933585087164006301074010939521559419750251531485206420847624251037782416416411556652935510361848214158302287818125830621712176352650435954181892472125654603200664385636127688849925184360437898382215041197304836502233667986387031283595647700892550666357862145663961100334980173715965139350164255503900142147575633568740367375549757053042545070327236138584199643117082794685416354687940572056579605729907891814886447094046383818906604182891004596505961157450282018486651149839092438120611658075623375683425409270294552491629686235208119058206666738202930966802290963577330415937892070149911482246167064753424863304181651139877365981674588330774714824544324510913870455924705846916007241069816217789059179142544023561868074978154640429718788518946011173731879851900062606953588406412133541594606081161282709408929413826747327498745967132182383850630304975071290631684918560090332894616605430138858817611383365987261162215257669040816566022629887845963754093686621779582979720384947294474809136341961135206314187828836378720605747988474193682062749625904783549913992652168745823499363231814731176243357485342422918169662797168251786786795802576214634335054075637722671957073685545635621046981267633170429880052722950417202095940338995455542736003856816840602648199903072564591641810575065906215803278226508425160579294293741188097688343625779612218781512117816028530715022446791510183226844600473390452949011908544144556289178870112240655870392035419117752637599809134684837106168753551000382391644690403589485664291175166056637946117141853387690314280079220243307010297871936594959527890847186826176594263016511276292490854820714821370083643211335294863980217158399233890184306218019567327037381344591096553805612654177499185442126917238243096731747106734914330416190406756779966568136841219500111145848224230490826493857099783124033011151859036212666585201748733500394722444747587200453452159861708163743123893117810140239905799174858140713124474457706823469607931876321467028830850829262234142985352882028460972971476645899340254007872572655863685558316858674361161394894541739970464172989139306889019830899457327859273472266339441808829111230658630876050231454643824288273948921994373594177891284595954504447049305424566122131277014381475441603104321377671707158578134850693805163160130846504704819760759603580908686047664357743870210119812538326577697420097463101970112267460289762968513568245209301261877437871023941210105677313393953989996434738944494092360962785821524657649727696655490740928122496962365333452944127004403968027812604845342988253065280879721265144812982777744052629043106837144741926237020990498000832140535407065479999982970696087327808737913773817829463258836160191148146869446398370483114248989079314887373598388405869120319230543467088769424138805137483524593000949646823125723917900945571608262270029842873485852774032265083199402226641608222091916038685801845361189159277999767297922090731283609495464112665924180317813675336787045242744806285955456624422076425220816837796346296322789072369963077857490684701998166397366461190080550171856540010058862646605187338820917177906198984371469615661577852047644925241033944304592262085019306846405888136640165540143226204624850036611408729879659774912245858874172053756142568420262361934938739036926630577287577715240609621940737768381677292681666872788739630760365701118305925089911531636640392537088815340589290967232167294824913981699967791630733694917058174074060397608754829267548866064488878990036719764856131593173722611546262878799221348178395810131666789000264684118416407370798785122527232446730211424794693283972719277309204764422523983344213396600675123054666265317356863585755243840391035947869109170576098610661516056689325552166389036190323254993394947367125586845270066721291039594560317285396522965364967627953019523681292911100705647591828581860675801978506344192296501989912789532602656148562462880011847618623010796559519203174427411050771273320773323315839099835533806871321119404854433780801758084903871505504094386333571268272451287352226858162581629879274524299586659888565322344437838604470071166705883075523816406419253152162936129647450331829513872764693519304853956340449924261319301027804037300749450933553491430556467179505471392095408996302849511910447430853900513403806532396092922619808420800557709144624904721238761659426028596524660370833471992468794793470007784755640790516764517529370902930507091889167449736447644928078242899006187964369187155941181170406087787726845116625152575828210514619621768102067476714071280549081459530976092921924830053111464879962457635737508779987605073689519790847010151046155693423822865520224432552380864820515809420936390905426519095885565444668248454254483044729896094304520170277147461353467293891374914822282012060558799461387424472610192882586030361390183747901637173923339017710782130550827011335506840099621327378957790003140214026779897317937941870583528492305056364583609414824151921694363796843520501665926269469849616728173802627874477331205159157684002299333457270886247156868767781731615367702297753227970531499597468445618909110370975955649951516688035176240902144984308775784438096980233252695244122446818317437422376047043404531975297528904687705725126326042147701507709974306418962164135627085814137491513107266933721637065184253088934889518720478689979713906587637868246449626558819225047514636570025807814661193771690025127973258822893899852432141278334787415781427353683957530982589119301791675893875542564050002044516742992331945300428465481999746550576116941687440046940742234053142140107855127163712717269434355862828810447090468244647795465244126444969122306192570292192591466831467261798591797765566026285255742688852916500488845101738840215861914187074867742441995248498268184857307656190020187734878148400285888681040883250749397621704662365713953871060791004642455509932366369900344802658475819609938087861777520563706567942837248469793522662692067699507972706091470382147133743523869897434342378800148453417805712681457801741008166514768775205102314208272729982947800942476741828593865361366147560532544985107992595159686336835389750783228802432449627729326017631654309437206467101673932007169104658141780483970271803095986226122440967281737374135559021120863165886292147397041773040361942300976404184311448301776427843090350822643509141816308482941286047742868655005452375536828359465270081642609587970683611047592383220206552699151950536458667167670089272322600660471220479358228376977898654721104960578447597676790658023636256055908455114950491320258178155114122588047048007733482793870006927724229160958884070778269892038948358612368171535189657595639407558883673116191438913127036000676941694117940702414876502638836401092908845037820956345197212200058154180899454020884884233455091452549461975881457510340859483591920469696749176262712407992810180156007775618991360234281391403273619761472646629292749835914347056187686648501122605456959053118215245476081020543341897620309601938234646277983489363020399175058484635844372742025337591648354342135961474288749286385279339015641575210893260018009578313569652943407789621742033993712404648637046784078314726617757830454478016614863898927191908617944589683857383541783328028384026111092713013552845309535708982628717097536448444068966544792107044438003389732608902201263204755518517136047329000888536352225111503898698391613568663642387317440038690504765317495764621023317261137580380414152896280152698294244703651600546871710285941154580094748013934704619155777908887332861592080804082291543589783547440965664218300844645693465674599198394897431597206638387456385456765973356536012530107318894655803201376970921500863112224119133272698658085954556328764864652596675410112499472530523745231885588389634110635982683092008323939754920585480587619453233246758177595987976175469091870152665622464872117031273188640861958029637563953860654567813900941468486329336654930495502117605762978429459313530248084871635156453849817157364221104413295317305075770846236129552472354251302509213171981319600916333069694019510496421469999402175708935919562152183708542255175147510476736246101578319964884484462086640719732531851594010349424028041408165883266806303441087002339140727995766441055260903352323494958703794000246471954076827609380594325870621080605230100894830970094048505987390023922775474594615717523667658799885681843084288842329391636600356494886216130750650799663388121206523799860475645741345937050540766984949776418040907360228218930117969541581020235397979440205202916569454562712854291101211323809066693283837138298522511463317926808545360147582327464201003719149735461050109938602814872508946097619610336215683258397632262547556242381311515126096432158274105996601752233026671753342727996546442973060619601668876017713107330078674313685719379399250880647088499478696484759986485594420362304012656804577692423881922385376605114199282025667949179457670704276654048783763026415807329693425048191723594395058620586126986506014424966521908045669111309333491725433417543923594704894061546519542300434430823213039509865830606853488769141038604319042850591759825231866298284506862962450573473663439635889412361137226210133182931065738356336055383193838448409725776151724782158045119467348981352083151521657436124864425604745166600755112122794546583746787307511397112235834719499062527817650336613903464268685414691281885214085474566642790012111367694054168004940961914993772169468602646295491948191769013765599325875026512898674410317969518594346568772629251232982596695363617240252161628179039882793131823272606104182557505395542719645391555113385772207688426278228031965750544582204384304906574495122989138019187152389306530642451834048149031190455048597619270177144685892214478584195957671253774266492495889840329756843839938764552412882511875474826946126880513463781617711741223020316757969653286502051607930990862130124347260820263699016450642449517642793711287628559296456733555876159786877252369881122656866013082556833103447671490883270534367829051455407045420853973664596628676917621122810523126847330592793006041956166457808740289191820304240749154465656054603030261185882566128903292540121209744379590612203765804780310546826654474555803606457924723031003084759306786974939071907425006430913899885525465063238290032463280783509285613258012506720490809618419344707373464775870380587120406062075134102047128574384985484332269358438187474638980383026608082587996211163234628980977325263901754053426544277731127854293352742253866029772669188154216013851105238011794675933964983123776757656210219515545891653784102454431246882896929279611805768649334684418346106429437382976258617971048782414053394173258283749496185290894015824612522226438003546702997799275479980472820394186308466398763187786467786294950181941634425562782514542244816127084055717229792966933162257765830696552000051450591265027778385036866958825978964190474837704519446593273040681505112982866585726719599569181330195475347079804040579162195567905150184586871124792549172635540797184206346735147509194948026859984380139595939080191782171073717309214772152792507529906271293633420523214873394153241177233393726257617856764552317429061945858462799306935283628650222118951277322765594468851487007602286415243294754064744638504252351327945224416665656546072378715631397357510850596046803936884580329682143088792724785383803420422535148057783757044058246022322980629792892082777324465565538260900589658762806635522396227653675885260144709732034277376133158769639737423507761469249901996017436215778670876339669438058665767677344480928362707439368000604928048416773082966442414894291031366771526312990945971380017767425676838260143166784066268654023177299587842118831048415560947198962091306292826861197132032796849436865999719185269140591929230644911933194725321128462759136676394653196025230235425932196157578968412319092873148744439151005176174442025545661521977845513802111685003856109440074774925985689360585680713726890059886878599885047246894602820266851169835188840678684566637643370676814400792985456131486090543630742682735968344702228759926417515816397087206633488722597481594635547378013854287246208848328703509705462123439465358895184847144038704897022534632118981673735683302498995168940292077110610793499005902886312051947233986498686788206489655318881474128936038513358990853227471456208182853709263942195952741878126751526995900076768328501677514100383768128259066098635877341951107805143130632627139980434333832476755064006641230000950488455842619815143013985858363817236080034003281075771342876863321536615527964874634069503842477010171018418505672373289023056081909508237499438851830756208333158922147474391740272703004717240452034931549263049423588896467893567104982226993314662896111566778457373916152773916825670997038602477697235108760968717034135762812906186203313866935094263135938389169907775172529319741759306201661615863726048517625658190235330523346701063728002919427554340908330093085760604957087192787241141110741162468185081839410607368658971129643322034868623113157747212277415869242751071164897864916434050331199971442435135189110393665580718746154853234259089269654320527669009798974778189691257831453029304049802773044851370449038674777234129524921067087128923240518281359370307745822591644170389539019999560940021530272303870677638240897087167589507852160562929107240901972958148514999096013812383505140162241008978903640538355763652906675227579570960055324942202317588087322478472773757689790032757558491461951450948190307999084175023647068457396544354561052559820866977272930303918524711053335370851840115801556981298292197730592715618718442374107936571609941076674139730314502190915075506119524756598379268079388060126558187499451378858904787172079430339273782529054748396186332878364288019490032565015206032513107743262507632952057923758759409669165777969877019728803021959827116209526521163264214079069291027149816185696397359657292226724918719378176382979193367354678259544851151597065713575274263212659692396550488969305317892296602541956344576017898930871322155224624532982769770845588602363819502518383980612481260597586794251937443830849500933118151174643430638213817426924968252231896824862548098126775777766960069156839242297059998945345166157402155288790093184058276607370232843370895329561003670085389785875630082368278734824276736059484866429668440005888977190822992126627905725251468579326398143305672016022485369039169563763168897796367450071183387494387579394950812848374466145746111370334269927464970471050754659319490662256456304465243097539141948973298441531769326174234220941670329471811610175858299317776724702007978711844638876422745206417389290260414070239821451207766640726285657371365297975354082878621644301776971531500073413153849832407634230419882152665576923042746491006353112860598878525764573575423999519273586784564012054677166207351539364292957621220262789832308488106765051599646293342324061656253125279311690467130945148973160240875572600662029526110833143311658238037045805882035399111355827492530834718544609932678073859595100340927622441996403071739707864660685715629837081458583742970357744752318997413090146894222312495861240958951572826307924290232962166179007767731867284168028708384761747229377251667955279067595216976741879750678719992046080690650075267496302101519713563896909895280614911117242149851791892767958894918094529064640899367312882641914604553947078190721405309448078790225851736971100871659151750864236055289895106639454809187101265476005935228240639651277908847917419347204735909329805628889703197135474947967781457612891448346861446588108587163316447289139482254055522418394874348280502821893729952720047893832582676216021289382761328279647651814695334646805905589558474934708014591482006277253209804915968317638746777894747597736555894133884737238235666081326559506547756211448593244864679415622441744971222157263542953355247430409164303775518153481030317787800259069150929132666889843401577406654289575290949034175633960780698699835932666506666645389612542842334511434242191507653908207604463738516475339726997910972649625583573179200271519792188719231729209942833964978589853743721191358444125095452348119386363062476307172857387751931513811661309217872016922670870911100582416157380560671043638317245893609246477579166034187190176017695419880790203867948713716826715276209247154135274938323431412210149359370110481324062823953893340258134093802306991017554024894763922086366450635923784148037713077960536148437932509541461594003592637830592489408912012452286560729030511326232332600298780913744936917554655041260468103155298813650725140058957182493464237820310977844103473596450623203845980086059826839544341301707668322250274339136317449979528870751285433405551024051701436184665471553378124680455702078180932456160528636441738766517913799329054849739794554984008698475276721246815966876635898084775070512418960249770868412238503873523893784359102884779067569245886853496679168485907015488472359792793570450220273446236978479196992713091545163821894666096263769248306816275601853333715308604942772368229324968968296838989025143167620990921076907149674982248768976373338387146668325801084082003812545089826039534202798262677491450153805071848100125631653433222755215025986861239478608889737501325817798521012121462205491193058431107233207207691906699569238705433589352641922249877254018734486836083095311413264490694070407850644660751929886001865034665100086711742955120920614756795964425684091329305998996071190294992132471191313784536212497948822402848264095446224588528489026079602169361133940959850899004409943011673232624740579081277179351062072215853723847744947127554694499970928984161826026452600663288613999717445724663583886917776407723978335822024372811668791287614028255336802937216341091418196553952387999220150648694295413429292100239963756876377745839422695534733276616226475874990805382179778654502461859977694663793296371779958651764479541637917147100212153595941430507934486491372954323290220544344973397735948851609938723005352451412371935048236048216029921826215692533587380297433296300912429296028638034754023519296111094531717624673048341284730119141223092782960740999062825104791732458524789518618616169413705876734769183722225928871790290589446826191889623129212210863876410029812454121882199556682320235776976983587692444426790958859966067246161952578871042343899215784117847063341474652492184902366773717720759600553957539311769120103344527171170246202691577483256626760582331558645381731295362475133597517683328286733076736439286591608032697470080475159463981657714137187367877997594453724490059957073726429284413904226240174188622873766048067654301510393398760705493197339609931306349620117781145997370143818939201238286628613926124893819499051000440858710994812299675301257259177234780889277537344578451194306355087793760366230311505562117275245001007150135847299915950544490226412927986676032263409633731528507395419811719860984250524478168034205350011548398175139949113885158260644428360571688734862424453651323392096849336245986266053772671008896859230938522595171377113222177330597905909053346697568338095110717608509285295546733704246738066265157647187864332520205735359348041972657448039197695381831745373705425924754340062655403230999927692473293248735707833429065086453688061613004884294931062692024721821564199205096307910470813176980266217057488599611176788391637507800205977506888486262049403226087814068964946870945725725896874142792158093388364187727881817373353566255394354034424616176312505685078361077692596771737596952951764517301944396155401441244316645041663498987915170500385720120905747394511365910211378635559211297492691008427066303128042864670551391869511079575788651939432495970506188428844364370055271867788819308712898484636315703998200193981467852319549188617627078059487545490090721860687269444212496212430022554973782008365906813610608849721464815529134861165852902357709838992448555077863354447490295502876375404554322646279017916531646580339000425182216695020239866107360351330279108137580055910159197678958270859183212057926836310828767998752241450676689165163742687823231975186244016577254672809347571782872255923166186556595362230113602444320498413322243337039649975188640097795338857626096173687370507166325149385380153844120024935092938162520041729660281065736242219193059580929325972710731156210605017646318544470296806493436088053626420312050449135750793907106614802318864007106471199927244405068188971969483641156473150931771997815294559028492842318366444753942423004873292975959166590795076991013887276867806295648134301071019679977041152176632049800323636315745285005350285066220053082144788635177116022678554766656812092451327251403579551799885736927515421261402332309215220589726525456073510451459945432697792347999746011446122639503416283198881508666107550669062335864766520636147785560994004098144037206499355307370503892143780453403280457642833013082773850432796348950412681922472793496547837585588508704426373897744738550994041197364529048101056799937554273010624183383977478458674749869906149941434963196802663201964811498263115531204229988747939893554944155546298095293424361699076530610540388885521287450829687114404093379783001144593935366201529444003386833886361941531755023275124476596481648824879078761284547062845391193565861543623656321952917391706351963993662936405485292473007711285462976734675495067569646758554635853908006370698050753150285752393826873397777973598624988181288345117930084646271740085278516059758966782556167115163928884119703408231572323850327684000715644636698323039594216008342150938449607019976205827015929724917474191406834933183535334053233460574503122427306700540036523723670219205301742466256036275201991468169684955423425323888706543447992374322658667437839539901763756227076596853653187013954652883927786453969713164598517741465313125741430113475380333904891408460758700166746334097063610586733670546873357357441075550224809207500981046989646471761148137197094091159554480253801118881678523185498961981424076146600526188948723240343980544954890020172669643746844646994473687989368911220579287900138604033608149942630389089850993943473923376479065775097328577039536514562643089311027141141045064576986112667912567577427854025707680080767930053913796032666318357525979721874071320501263341745285457218537620931161485059727403422147203843039250507696788274336972564627409948237421190769577315813279281988042079907768340434926126085204328946548206956743981386711938879489810608608994557396634528773520424315400186870030882253338345459813995569731071035161582357100788661914674814155291979977764715035211244595979375323027839858210471306094307704460949183143452112913620378977150380561071024071429250296508114774829823458480948008637885544025822114068802303559298871699258705520438009498988855010331037373891921952418976036038408708280721616381187612968724241377591604915570586224747021523339388085612089350996252085029740723692692707602613813967606411632708240541653092200805067758479788329600326517509350684727902213134687475123396997913595596561841802250913459754052365663076277701332147977824031765610446519214325189270109932219195160295399923638468438638826649459686580991697370654942431904289427953781546728352471342865571483221715544915237586101627445606660660168199896377148856189480664194010151883649586925281908202415703209473948884384424452525570964697849997194296342218996454625444308703327533256301189776444159878303131299961430752709346149786743895075188106313812146540961642150964270223317775405678429089935498035039980578116839311485930546715238846446595207727767565651796568856349207978460483411007461198240021703383615703009772167965054047805409842000306072904279913546492960634811545640168806787333453258190258574352882696297774541006383985649117646481136144941221791446476980039723643084106945455249187616559505943412090109723550811340902227853775048571316370457903307136940806115894857099047988160800620272961860754693989298230485103476250514371172931328973310136606623010409221238626231370525004526618650041328454810376476214814731890800991704832210269584871416844622743290378054290653094266935687866565056258615397848997401009325634614259756358537377915486073874775688271517481124524323582557822954187409003156224260043819749548498546411478832783334130470379931501977358964956238924957949396896522543675092857135188400472650826085189080381972244839049463256905113412049253212471713841974683283257558711385310011176347201834045951955472693991149103791464972702808030331735813102139918155890784264195617605619387118595876932916724767169846809758070966356726980749651153766899647903244288730411224279455305579787906070821173376224979384164015204404646822006752180602394910034249802014650617399544413640441647244174146758301427179989321709954530182944961043883939217530912712402844992053832668549511599481092480739389011685361998446545720620766578214582769428753201621441794108814138670379585003303554309417246717745910688185363572815288293751004658261484943196487418852608508443127200277595494737667165164972382796661185703779453127192722572074902971048179747418854695297015462451202568466717087265161155793476995316399110422433545615448562066755898476348482925477758958316911561668185942164975104107275834286065286876079318010572146465824052841987101802479774964619520870948600616781282646758956048216775926191707250785464013354136462437722046547755750958460621814052725348750928812738277203899139243996796560445603657907218955820300151959867047054287157870782508274729983648495457437992211927025295926483945409008003232935956110641241644510604462221696536950474847889109478104561374744222015481347305128708331719672559122896007699728447737540563336372528581548073090977172694317632453600337871129490713376792445264077931868876464513969876369487089130272496918668269064358505374955818591338564817095343068003437631913800322549324539828229201849881909375262058676678672540518446533909524675831907621826633116609623658093830906556615819234034498916688899811141796006451914784625888972849339232208403955287633218630364231927653969578815637560604339801576824812555785759507081695560489560546039696595003969984469319369373924852132911871907808021033212199411194385676748008948676909303545350022401677406869654776749425823153510500761496329616491061328713847808950266210396248613244316921550238464351269870493319836872931356496396081919749956850735220567377127682626179496774455109743054249480082496631776931616813209511415462469972900480941843596564455315511996535465531107993119331089231915955107728892979481288599183783170315437937219602448407010431944184387526368476425850015491492912211233268659562478045405125986085138932381420237058336540802114071930622137314209485101857431393118740258036337433506675911970035302907738368570554514873128210145516031406665763220048124638500221625998055839410364478432630893579462698581953701561453624032846377173705518809383291019596610466224204511769269447906866234394727332297758964132680124982794055518290509287551231879605218700625787422083876516181032741889460850487076083484641179134425142812809108252770923705536657357626804694928208846518030069071949872275301457593817203933503726419488144832422967457939433295871992063446620466299743259014149736169936026817063214221226338957622823216357249432118978377400237981760041763568600413431280275770772597485223541239536949922248027288328893103592168863387120567575291293933064686673548387097342279555699567077905479448958773061291932794955696362751685005569388793924796874030743712368395796330862605018974331532047616195229449113009533838971398615224376121158838942906730664882119238998031840678393342090894669313369978017841083365448290497677100293135382874044265597676267370670175494507284927673968128899733597762179598203636942262990349753722264438270645491040130782071963351976280592096829684401358795735616401317475624007487135005568846147103520729528731693916042532264018930692851504105315744133626984292538898838594554782748916120552908554749683071939883361370655170649518794133619606372452111486980235631389399587988737866343589486988327972259185021051433419935562125970528025348559469617168831293194781826416934451401765997244184167150576954658404750389580719995772701109020286981533867301895547698084985111882596218042030187481995196711022442447543914926932371985180743101594579198710409466523885830134655245310058952259618633751258440657275864053783259411806324106364072316569988758954964033389854368487553745644676115286342920487932701439106516634517419649263203752843792771078877479052881160624776100664292842221816888355195183996951916537772934832114857557608094012494294685664015506203139157278450074038294772084933866541042287939029383870610955302110622762012963810545196463989674257871935540041030770736585615176643789367620972862771263627402600596509776068118470149542162539269793497403968393819365884574328605306876153296506250897248697497814208109274606208725012987943082210144192642588247851711681039698535751234870084249465331712616234914642071956609286241201706021568376471892442717513938811905890710687616866061281835632721412417642106696836383575093625073962337026195481607324088029564416013086303999598802011077523801774627799196082424970779926688662215608585911845556519352838696597034482020419050645281634803512848268598723937418407405212999494008067206636765770351880968046864194951087618616280978152366786183079030775781188732587516516396935752633792831192865352932249495344807244770121881473914811581785819181543720773840833467088457334980123234004921218022248015611569648033466338154908071464808272822878223052964455739932626922073393186145823837274260986036259162259887199391776332589516145554070204196770216252810910443604340445044632969967501231358029620042003846250547465142205761493516839185493163339653152541118805989389968301789631731623554124429709496718261859044801219014411741292715348669911932395135216743780720466271570110653358803382835606260527083187019589859114610209892773644940937605263305598749224210243996590707271115836070663100030226772604632184213496409382982522672696126249223396683670226873321851615189041939880244116250166861538918357932704561881007769793648264467616213250750766488766777951450568796651053148367342272545695538391604455590987986288766923274853215920410043653020167020980956043848848917277357309062982828247397600336305663785396386965597234155863813293057658778054297252962385818577654525489369279396965512496848152813901608543945554450224158670400874319207788426268878804399821519774801053635003118928321710092009410468567961855213878435519454671267247294529098369329248196060986550747229435326897050977950367681947474284746627013627220085224175621749128302962078139314580069662088981391479263709498749849272101475910621957155496194760174504783554221339972340134211582785235898419447236317949888684488697840221531955507531654093766724027550086499345565319928132738785241899509391869492974386758800180808081012251287514115628519958815975250974430803732437501876929843969188069949395822302553691935805097959411758678937240339576583039744500506473484263125546907624877783498009272550473521640703369043078990454607021067088912393157239468139098537539058061511305908078249086236615690255852962991653526213748908498963362931929664623324870836363140009458178720770749186008518357324775491269917497416170129768823472543859298162543283068364314357475106744265636498778341815853612103519687611228202601963501882454712045138406601970506736574977942352716033409841226416923784851946404263703081664053304541792055428867705280353707951796630001719767210998783635909048856106229843496271483427708780888831312599400082823413381522064454566853132302364901577432779141021373293567692001223714350033461766017098197433927569114814579941653548820471030239633159501700122960064550380849961367581197862542696317457500111920230788020259266480756372747834264819286185736822807448075897761920978733827545967511588416605861179704319647902216224784355760520199525564637419522177066201571245758276934805029267260531447218716694526910579888403088151714695281453380495007172573419436952678525062139541796480201340770039676781766878052911870232621841532545024940527698316805960599898586435072612877529825448142434230245270852820871544501791234676022205500144919131800470779429136354155415237744884817582397288063153947900346777232464634501331869434144719995986097986997122719483078075315708946996650407711922097259748142754189496091917604575024027896312132720182794088851844753727468266040344151197435058078671095890111386189549052753749117511366636027591276082564375007924950512160586846213234773008939275930394366330115310193324400969862377967226537005788165466905054420241980183252717561608119431651892639359099256564748087143650009165362386362139640619724095837458165014567512738536388082631550450481279872915487056479441344582748025830940275932246416908805922882967963786548707141779383465461829573521588625615737162365186944803816316698382732661253877782876433894113603514393729425420025678491921433191342533827888535473045524832263230307343772527374733808044310380288449234261159792005058965479761494618396630112661665701207649340161369185129109307285932735484059972462060156827821231655457390631140769670176399464061950905836456690407726030474930672315508779190657307364663050154642930478077779504454356004360502979995484273090732337640123641824699653799260182304618992594234953071021377206668328586153494713150826223586768694673052881816179411141986724899685481846148776874506379680485245057218682911355469660578356083802031406119629082639559020709668160304649216098336558601075121277457799765598606531794964073735162044965568092839934121580737098340532744312785294697174752782092413126411465111086001011614136724940467686114484721427023642293619327635883842054984286857523764634646070881901549982821305519312957363088835570662089172286302434394168322472904938060544387194752874694521264729683508110076725106402119104550861430915224478010174305184027010620026204441972489899789843163442328829614133570981085882059042611622526651531190645532560572896217190928962038864731372761998965699432851835142905741524842238817399414125319618052349898651353184601037811881990271898879252012932343180585351837740796032242711578420219882022470142264678516553051114072800519785103002108916873618267524644357907369385284505833977631378857427502317120673515250616548122267614387717897305784079186241205861000919046518007126716450583091641013863382195876829085493505087631368899545280720049076868392863233790280137765143024143377645603675112860587987819535031117603520898970277717562588409853723357806781499997231012761311734781691184028850183871746655464921240177920367933015670813443128661857021558182153208165197474533808715291207566748489790326807984216305283826208728146566068209381986094240892773806710726133963526170894836053102612820054604991359398485592643367041771634178999019211778251623546902981075845486865353629547229863870868059637268350240232002590725776266719674702772949051250406347791916457532679887988430657825270662443144285397099699568201314895126110337288391284601404260649263115733812069245402352165717194079272932702236802393173130419769833864149540138169675100103901374873616958038540503954015847547873772611458354909727219965517497404783248998714872287300044765078847224603534425104981772863256786241559764764575382612661362250594744770728616865110358058329774481645500320021916616766059044835500462672057007973581996400180214989438619938941469455200192122510618095837048886601027656083388183220339950497579744545506755334888217970104743886353998574463174499981055237557566237882274865192513309108072442461145760701452166876926777786747503995573966677019459365474410574136209901715090110892693052225657807851274334840534887154746776711440248913721619759701677929221998802899631789087868706993006870991929921495323572142701314502295184903823308782098585910898852683957937689577439002416501219940601127052628490736817908437967186203098148998352920878264844920687159229519338352521287937097331358777112756367033441020627170908924549268275089627497164985323488005759181406036615943488917225554892975064052876714242313199980706045926178864148276321154226231106241227952011225815354324488328066627974784039279154071430255385715714675928005593814294899367135509823394228161146747387890837305800551162935710060730298909348605356687145528039134332555200108161132469404078581960919071713332305661124077710534677974584176367412071549189156151616669494477554111747742715643842217521025022978383512121446585910838089541933175000635827891042147247182021098387955781573935184197013886557415984859037724549654594455755396202850472128387407525521628883361019190735522958583435327576133454607211877714602943389599903030217887977301320356171008885293480719451788412921128292588589816230069182497622398339865491245993736513643610977383049671497206602074322260625738458851708538470932504723717322919530644143111177205756439104307104724750696419912480673260911229735398227878490644829014239801444286862940404142615822321603634065540297674604704963404260749783488743007876888068137324940375675031934382124318450934733735275789599095672224884464291852334931457816380043364006577752546748069783638004503942699328540386445521329663155960739645205510730000811582071869350924776690972879767297719431425345185970544401461266837519898170937331785047396645297231784551398470028022016143035806319771678762753178187665336696801692600495711255761436047205790761000200293144708807612532809052306615600993802809215833446850842445217751967243496374262707317885466044775080725717343942413757037243471571214974904741937320422477303079308494196486441149368181321278507809426571040973770480467189631623055062699382202149762264155835562290811490308061989836265705251751420960849203680211120753478556885427392611048492521338012213899225597545786072792200132432363737099179090652513997533999461935619707154173928385656911857052872938430976289359524721676246527951874573325186369329761413347615164097336549371592069107017074860190835784832375065995851458782177718600869014039690799194095379067333326642875915429638746720849959457669073687870508255587816364176159342847368827225470151782095734434176684041939815926872236587500023179648095236832282234128728599282351737231236689639600835576529768832684230814325904610902682803591438670035080162799800455635475637444218210743595905996205020344115513026440342247789844239351985533751307952368557035440415471609344731354096171008467947641767632528221644994711169046080865632684589538775664875700348875660991015407888239102250507188746478230259382827610932001118892715349262039318918022896538172541366501498670273756412970103522098298229798547437116797403071392401995383929434367968590608984143384335311762932114472685661811389322393470658362960856504956826585806169956910756709357868824556345366316794973493267248793109448516186662990101743258358550960144626441561900300622040069968922724645867330448747230666963265399426147245371098683873233659256192600445432661890662726188228866391464443050218870290201989429880777881538881089819975731033463554437262447518354439658126734343395894086712186268176497439041881680049234336612610965106710885389392249324028855791849146455413774614220007142153640365314586018038933480439887558097290000792247132599361473318737724429256299163485530400746265576592860537777602829091968184828349191018483419944985501589185442913171957492246991487456075597861146397934139894987365614863503430481937896261097698589444878915793690457773702205776794673587167152286180181028157690229293381166253048289137180027186337945975354185309902227382873632611954918872760713712228774184644967793647576326860473103600871069541815286957190344567479814396111476661890043567160192750096078188306325267095653347902486909525920554527320676811770761985928506066186072056680450160243930015042337906090478649765719359494259315794669331343149629713719009280464784791068981770328598534902770731480861689350402463006000279828464735533233866731013970842033259964292679405609704276549801806740650488754528076917285327337740814817279775157397259929197863128982332541540169844105387959939130730440484929469954845316365374841625603204123134315378309549688320203959350599770339042606909760146254191244993577660200552526423802934323781155497883792288689462890183944047454312860256195858884874167762090952187071340863643809065746012147470199833622301813826036046545920375085564269079584401319095511878219265748894329831161016948392172440997181148252438784351769281574110071266818672392342533619460316764699735121343089278464212141542956763443919999948883284877089450082524099895718969841872103309511113884583048649901667846902362807801108371872884465254587291346196702432875623313107586949341804720878735370247372527020152689331543121119189706683084266141824643870480355458826834708377130968970178816344484139431395099672908304883869645597494383497296582807037460647112725882053667650356101787687752550468008156481743468960194641748827632530974350201545559235713564359596644299225456366751884705410836611921866417673088389568406535367152537826649553055574541190237529988796629781840203910505013922811868695161934033242594771879831399403550738395980556700137450525392905302566050896263743197186294335424942562711797075357783195307866574369689552091054988041963802647078021840341498841167621484607684725813847988455569155256396659141217802622266108898657418255137402795857150545079483257974902954726342612475923937062977561249574030106026818981979629887169957383258310142176849966827838581235703448196361116011709842147369881686530268717406003262841456738905151174191004229714806826156301621584013111072316978810695530496515968361935140105065844728482470249828517865253482594120843307539720034175736907569816060719888834044748267591541728286945998688146926055488388663709510326252620310581875370644099369771713518089930851447950087389462027469344096216827631052868608545635190591468709976897453772256212111488053002477337771497673424908205393174669499029386403509642773947676748970088635356537292142147601683272768087829440303108546031713435562837481629924624425207896027630049729947902871126761710703566710542269618850225547117606192321482052594442671901709150047151013587611523494594293349720418249533541677577558650470140964242515359014890103393544025014986622853297846113917221134951736589809237501289383569075857807653855057258392737971552731798130723690273693861177167759064965141757818952194113400785753861079009949834851196451100241591098887681544459559172805449275845028220622389660900920751401276740636814265063164399166623178353433851973948092911068693057353083895656868976690488760672389197816163725248803170227470035982034819021980050495046965507248747273004692925730028899060983887229389170970200222075598670614149140666301406125848159217547649910687044032503718509885768873277970871068989583239384775837424573132518050311298591567887862078716971274111381398735876279596480818538802408584582229153574879942822949332056088584630903935727627599649913498242411007959502041043840113109069798630301326680259114333391276774766429930217922459204674224337594049748152439520036373558061369798991195830683472616216525683582485999747600505931967895906794961805726344148538413679983428914459291619114901795085244226156929823256061590030179315053066587360129116755480747764904269830300278333215989373857426476963421967462529788493593317226537747200910258482136836516692630535615875129805521024717416257253949395054320927611902519201142874253551544091606244408791502774982732388683981610108347081708176630150050294983737227641126999583416005442399553666258754947669354816990142508541516086844214914405580252186566525596316692825251757232717319800684239962671914200326779121712171164115423182741555735138960372460528075138751538260216620399000009438820329147500749530523106166232980314523047904962534169438120497464251229806065913839221038554390179223435796348634623526421148630654945002053117849927042722770059511445981672605956130633985222819941079523877035212462522073056683789369898343034987096891249334117870298780459226473557671700553189077583273061795193931029045514545114170815559538799754466823902216625422906236438686531648582520740395572456348474322151677753418754792543052234516812964303884305794045603760526870164665807694373622061981579728442739150867299751609925669506778102860056770435779887850116462709035008260044427373638208004665028327271743993677180232818666990131970696417275184372485784121796686309601938011209452986972175869607361050602367545556344886489685246632916455417488774889676129921754063169912922937220841463772404694446149922858296577767184342793537074744996493659401420484646937593866600570458061653744583126067199440960459703591694015576549217109033778292424122120683743036100670787071057101987517443152662224212539157320994780989790103307002677055453337222339464291532533168763755310869381901987816221745951879022034746826728724255321920149796988296085290355231359029846675310716289134004212299204589274348149487957611519027735846683601816387062793808383722645672062066063484511792027020544386505766135253538785002709703055016687146321591719676902087844068386148606012869669517293368875846596049950531392287631011932685218814651647126849115888427810140170861965461831003957599503271451049094501032875212583975571242434079541027649727601365528165772237831373273895790433989212706588378697060609308232700710092155696445623403507537875546204232209477125967815663727124122019083352584258175772390200768617430077277264105403003046378683742696888038951704954813503742277465078159487879462634293688100670671868049951274148044538942730049376300221490587452817202464290741994592529028710538059870052532655479601270363561933428779380584210822937458839885450433946495066332531287219322551026687627193477254399869990255108203070046175722736284601853494074023652638617390566498303870415613357322531616782864875737531271550664976936025677291177253292580597078677680615056656212515815307730439804384137181742980965227808195306900287396296935533275445774041782596818380487351844192026527700176976388917533154509710381821268866862743517946411684830012661756759378331485777102216534253880696962336603530493831245254973074779141434886122872714237373227176600296268021228411437522411947588134657604281272987023774203686634002497292874804356984960800120822710676012475520749263039255087833958688299383601101678021827365464186717461158906427951303372676621599993114907187051772909658867419454914838897888919100799759570999980331197528313898435593696463593737286301692947972587153556433648917362750731327577123403638216913963699373743670691977864610726653413983222199634669356764582048874963351993814355017610364886734534377466264467370173684067668244754386769550386313240115300239761025534494759967469101013712848786312866883226487635895407785868035317603904472710724913248078397906388391453987013928633210205428661145474508526074269769744509562585037891687268142105140712515506835063706756266686600092031313529995946930784156776901288565658677692770582366467026102122274243708838967973897442199773882075267801708797844160653625633337540246210507809527194825859386177197066287698336275972886471337537550318056573580528820105518332448856570537084629037493798345124197151076447659496862536728662367296299648500112778904175302635844930399192750579446132064974163961886062347411708822286775614392787972158347223707410717097768129669050603383148995442916425333520641881928915474767939160345834170059287185159492956720994281373288173875342328308282437307701320757989253859109692995745562959341599787273465223553573169567046032069666597340924067365685486100970475374814733432960599917136595594770908007791327809519409079465448501334018577734536779212278453843160759094163409147984907613418960483312049669937419222409231842062292305122387268759539377117639164860726514380738949598770360064101948161334909800782123375151472627250774836685648233983622073311186930442833740968227685423876459594917791294114995931009181539139686380540852111728484674196709070007103499630276043150283824188244380709967523504142789624004451450176971559610042098216109280100449790664722800529183521272130054680380881662264896535224964117396782158388492147874674083364266270648411258857993596916005610205108973122411993579808435462868154089035172350175025676528353652170528829341284546212120584799965968374899699892030493844519291606043305982518208054472706347206704045755923170037931577223113713557427662749337996368629063275933166282077182762232224026199250546697465647439266481057302877474646586799818333258705715032553310750380110535391051540928086996518156943406435294331252101242412960447537198129325787637800164397688723396532713182132688951469512413634885521942677516341284164841329188782839771780126236691062762858109898987148611922235486062125208572340408606153705106398079369336298073970571959946421056644794956718639440359439525036114307026242259802193221801329447268198253047539707650338598599230223003701931219629407965763858718723971777840685629729244290615761864406894706616091504912759275322107568758403689520604640700547572171381256228391622479939846030410870117435885498711323362079958479897078431715333270938672771161138090426456900280704185207271948535026224903985892704380634269954453711911600264218711793585017580392424834145175484576097920515614580165695169269791547974392276280555406264585483875184875496468989343627192894192250876475770772732359772747287748211914052847345593391420016296838010613545661105722114205136433717067064546980271731484105538204714854414990971700185863912685415030705562297055441154486543598896239989641357779510018898694617689860150977766484016374368930148168420721899788239900504123508273444502162824314108833816775925710479257684220592478991950719415048814134304219466743082644383260523105131519651704497049994713859661026010816433097419014656452935795838015359838245990225594984135054493507141680858980637420086502521580948544509482559979169428555395896495428812010458342816377898716289611048538929922702203479217606548185954283655248322183932581003376470919568688150128761192388125954390438789896050108152638285957015019342404811805700881967530809434474821674038036300122237384860513116166765389022654119174488125801738381022644941460510087473953868395989960242730061309994955596202712874800556638845230914576293592065622369612472156867694675918433595293599256316065518528147482240242501873721270191292563266342597978866094224117873992175736093893225004294569252317277552131840778752950416032051847497808119792031836079576570202635824078250554741181455881160822250792001919718669023383001897271560838955838287554971287517775545261921890045859028504024781369960129258385125126472523011848473370104172777257896248386086688518020665728195164386604100432228701856727753641819568983800224199225212967769058267027135839246429849979689155632242595797496507151202035023078814661958163090506684216949069135162946829164743168080553054310407417011152483667681169858563092517554298883145131359865531680160610190649886445424257608131589081848246166326448190638246462330729063045544724292564760409444484860955905734401093180616967645919947664378758458043079663482750650458559332925923231125344236324474614501403379193634679026304406099807216617809911109009580275267106115632134972745168975727593381302916335540143078867840304193821523876811331172841326045851063104857178499102585402960969239828832497849093303607281579195179198223736562028086812557091842211986375859907756123180856856569464723774637115572625457508859792925728851774122864988778688396180046858714512923570760130642094291014653848935900451548536242518953265275955845130586205934563589139198658123766904427119724724899610719317592364496346284489960718341487893628083908450965794035846191641613237072713259909279954941128774843056263417987803793772335569123703876246074726433175245720801864957017669101446104565613774392365190144420691415699129700612491215633654893244822568983693921568327885156272667313736041472893583341773240967520948523052302261104050688299523282200096287678739045451689183243632198248128427315246017733742324938307218989745046119033266653532474383741388195354724146549341859368923346445129535977935126641701505848891558950420572985765528492857386399049498055583580508158942722602329423264422937871196626126872616320969323304067454672597638543462129093590702395372643723995182390877637076234202016302362964014775597163227518574092188343492350347309034102073624402205036154905951651283187664267109495406815125583384645129761354313005630348803844073917546495241902124310086766213605068301750272044170843376302260498440650362147634691840444583823039605997025044139753784845880710418293880720634235288597961790662892755093496367506916693917649267668339671405335857241034655438299529540527022853161232814098956036594250620365945791671528218002573984870037413817768561233372301885251479592021460300848215164090375812421758905160221316993690277629634146946919011536773457559484850919173100405759641015086334059623248584561451302718133741275512860474044287678222544581660512784761227746226406701074257406759117806624490411903019317830440580934705787677874243281059647187958715192293146835721640677255764758147486560570183840840537646552574868486756617338046830462431795375230191748989440012746636660464917876659300827497971440725788779331701152975259810657454098820344793714190820423831611190685543764859800596859512563639470983441017889879907377331429416609526778510268725719443479497957650367793031215983792558566222739613075787023642213721861365204365456066207951295730599382012514651807326106351599711208058952090021158746817531106777410591919244867832693762961965238982509064395135849314657653278908939671264433256791443845776688331678026059437613350964535468707994297654912708605069162168365524508340999324365331001518916291342827586194860916007114067738995284653615573137282504553195960852284206345254229405442747810647152950327660903327376511051316236088148650140877373979267466974231656694129157615760327799182588839926717026588362700717356790740781523516731105153920540100737540824587344734508183816401971640382059280482135259056153594391265232569568273779920750500212395106798469821695409686845818119766073452333407580994601719983082684566056294280459356856757557878860385998521403736475135833940586234266162401303813805687177849553018172680069364775535232454798266444444507077326021525223375258546779816546147005049055243414660824618131510550764949549038936946858745379991005861158430423584921238174542721467263099886532959390674635015566859624040205811706323207055472821251542801331483426964919526510827518315618801538484530161611980495011369364801885936190732685645024158207900386635094059032676971680344544407264580680966659185418357774810847836578767375214322891110951602826783338583504821989083625809691269825049004603344807814305560182039993954726136585799959945031915442516783557013149958681169957197083599316025741165818983377658263201428510677297877498394643099766433104359903766157892752023819059192392167788020537506316319507083274461075169711128064357303938592793303673261514993749671921071358973080843079596649477013331583570029586706429292323418458528956704133512698246148269001098517327076511585176310715950010783339094267771699857491836945609967620247348732106372113916795361277797352449404305251197241997158128174828654581726878220947939028114287053520151693382547113329129789839052477882136648447256544948448333382848023444925861017799468762030034406950688618491937790613462518382101045222599096538537457915743263087632803534028538101982079279691586109300799781543400769039284383042249508744670813078221516448617455790466286890500668105379940985548955707859961609670755934307978269348751594341022627832488487630779324890187407680444032861256611595083536612772666435481512179208076769929016972137750491128474104900767718400598627215706527579366059196190479919512823271626322559375523104125848327684538718453679724852426508716779211884906936800866014849023634970518854556451774709606837577827219293735051033574217339004766858963285979366796611430759698577603386328919896923600039504397727273701063591489808498352343944817924528205788547529279948763062108772018631975481759688710248964469174281085335781677375430138563430193087128579212501714742201524817688332784055674604277450253015347208119655310692082652132208600052305426316346513031390790013373166881133623874555097261127195658762855425055215236015930682953638607034389795930389900048844903997620328336240818148309898889503761079638613935799852623701727615824875593271701177940410374700421578179753021241084077235223664358745577262337683976812707601545820738736827925936872637311421941566297088136909806114767842924225223425139355365145570331871185827735570313225916447278887851181777057643741973376791858287193068463108174579895511645257809967661831942505026088966652001715404576727900564018728320815286874789265374647446467142717076327291004825321535689351379190897101847978609055872387149882080758245726485538116185465438947837169863039638513455291898297241345620527474729197642860566205732038623442833466714451230761948906484314565315386137831887842680038894935999384853757003878354991302385937202301581714062098905449494016137011655132770320610337111102083859594854453829575569120914797997146699930245197590613058849436570834506359895113987447773702247282144775939780070641678049734281543945921367088233009214469126501154971003238975344077465015302674232630964951578480432712628664723323113071189727653724300697367300998819526674391474544822818253141181781135523456404896778685946165352021968587204913541224244213848304994064742510322968775824598583281822507631768892499553729342596808173737045571442776261768586456186176243156915764559538881843824856258046702334361793752557597498360908635177328057760704913602932949931506397996294856130820389087362193443715137551245221536768046866747468635839998906188824223337213898692446273084595483131633054315404111979024918762276634314286682047115495362624846025742650218222118978194658535649681251186507669179724105285624051473041151814462155097869314656916353473502491961709406056885329192936992575013688437308539473999595183881972161911016837958782986336342583692949651468607606012459071970377239666308337367867392632021652287827044081785461059437627319700395169071711198733663178169173888629267825916679708821153925528883578744490674255540034304845826599545292218635732368827784675994435396676815410737950618864357636604801744636219769184756881973969026120832680852390559669520103084918512518601926085889526389579738268557953863696652997818940540006035632961034248255446465037099661704796908052307202473963671741916493391539729004840310220322480598825517858202396161833584555116482561180813913748381129457377618104550736738518100757873856239014060057173845632504279963340063570249562313781337094703988005952522364229468039363291922122708048960992976297123590391885505795972850874140946129343501951929549390761660157838666103030070834897747503227749392979259063285134854047385035310028031917628547428333532341607125346887331016455537408065128347596109118829286826100479363004748523162264350894077889745759764356586203928320981028591188159358871481854357751705854571578007546698299711515752268508447341662522030515112735218921050281380212343641848300511814664130257898171826945574707382662072957539507295232395944023200357278478488560242211246136138487106487469309273896339956194213856033389563402583586525251546110481431379819125564312369291596009501455750182099468632558703543151988507783690513422443084963474050750298550094253297172151594167599309788335156591570861662989986934947777252066226718264457056215381791548336249972222680415289445006400732307141408078939082330564395325529680489087049093021565777761456801160926520380174123487790363476840829861911850128001359561413934047730302035719608255001347183430927004802562775607539966316364966625653109640143738254418697585687042472464396172194932146482435855220502653455944771017596221848730000928764548728175422882951047694214922289860428409634048330198689926793139027746576278709447043581558505488604662290082969573931300486436242463688543870024233727759500837574928323201590258644466449171733872159986351611626339028387840557391770066778098857190467262439439912069568967940689807190467678987475611736254749420611860187027732749101117400489562155401136492041348242862565315268525997264812781165931074396630297757517155795936213989790117673163386694272448123544809944700966578546125775156788443287157151777070947922322169942014738055781048121802546759840738115439070274116457062165197349200937187175318813249654593050608678899158452590441676030362082195171489721216494634624871741662934331132790340728514960603709132182983726903725406892730847490958453057296115069691218002369526654749717493253440554242702929281230548567599226068701533971910004016862459095285629927833446499167581890115920443407693415893064041625075464918466547770688041563205540515247345115933191918955616758955056102232611815475632116772104205308583874867648227653974259718202555458165357717477633753530801314769211409629581103153209824346969354451418400532041744817789509371529636227898068767974282289344899000477424907382394201232542695308324414208309096784482585013210198382756056223603889692732007017052012207829100511758269947512468751430817433109568387327752950052604606784651518444622410417939665257391345987782845674670619150993197670905838794321832498631693385719082451519513416883683343700011538354981510886081072050245734367685053361003982081470288491967942642535938678908566571732241628480456737275079152908545667323684078322465062891410502970589187154231808134140735383847527495588435282686631541494563234505501362811424796468183002395981425242646255499162243510058034624017807258642442351392218121131669771556144183762362645167022007162074431566644230901896209198890229770763961416656439320258997482698217444279350175752907570688623058196748183230315859163297612441640550433660315939074344505575006022703770873278050902494876441505257492128265547172850072178748784603020155613864232628775679438339329326069933031078830719328050164328199862408350365328430641436244691218309218051289746442883462724973007122923715651816848381985153452833613598590600352682999491712313489327694432914680076323778793940874954023875269429016165543831623699707128360195355994499322103107635954234725767485447760142920902359245650439104251834126339227982624496231199162038641577406206494822024573932903860048397503143019362907135486719993062308419509353414564480536415336939407115052385312455409511665083187956009662667053466953221665502489451057463711668863785239589399254156774666467435304368033325648676701220822760437021193076474608767689524651389769738987383681646065084811262926766519301984106429206722882244469480883775224379621954379202303209058544637406365661874331178200234104452340397017599333181001380569046058764142218405196376730052987799307531297612689826612527704678135648748436273525673645384866021926382043928362499731181547269161450122757778592840597766684634555551168824866135498362410149485771925164537160852224587270693644858414935240248847375195027110737702111007721587518936803552018319812307839474789270385679723146589114749517324631691238998194610219443469456627718361083943796095188674495003777834098134610374344678334056556264951395667772559744365807659418776997816549730143490309092237874894053075118370370373759812475701117473040951283274366946884149381725471877450328776333062697686481184647142310456260961262443476339936555201767335047717776325481548214939670366242175902644327745843999270085857802320372178868908494972706479381118188032985497268805865281537173652420366536079702684022598525491167354448952047292591513322047908612172521378342523428883203826343614871807578930623382790253880996651645956192484819133397200433105649830515698210594585384099139423544788226477841985453798633265317822941529649653206171216174178789733813677668074366613996141242711665795168246117901895696747554897661493149567226845562895537529678789069892392161448690838466705135569375075482356932861691448882762123465161715555926138089964945245504126322715261500751228287347972551053818804604384017087071830721829858785857743269298755488572549067745310225123462841144439751902385874178883646062796004558001409721004447515011855633344407088189728309429002390755692519449500936858844983105905454618993063945482377593220393738697408445707161842784370776570169105421220622648982949216806877850254765112175307802737761995150110525491591348762743599317781961313310065702015257338096114376586701289781298501078184025851263384778974318668780174722772769886336920617816731357827602514235012191205569371848100086560956940249838154192887802088481672798608024789635623812259202953335789853968179406326602998948518651591017265576656897841201183541745237201790815314279595849481302209079783362438108326175225788228301563027738343978242414561985024681134118054176580533458451205982176883343786229600181418150266276754846880256197525585909847839020863092051195399981127906363456964706584863774630270999355198357170654120714386602184660016738450885354997418497382157000362964733053962661645161046266033981138062584549621446495597188836587591967227388219039965032999088283300613700602014470520638073877491109453220784096836491276631696742015826039208513337495146380678403102096474736093517695105980766436211928695116770967605596369491622131903829008028044819937758489871276824817172090043677803897389088199464673572731907146876878300079470753795082463919042985104178580103499516803241728886949362017141557516632088915265085437612969611644357490402527811346699984315546897442160483435085878607181834992813484827936148603611299758878859027459650522721489251972850036365992227361076229530258867686985753833429968461312770065458111489210218011780413957040816189728805591289089980108863141533465553697790318995967671327685367350471954530899023863200830783436169253930763479915905885020190786824545772660415714644130934327927548499376534350760941002586857981766666787484891599027250533152717106527051772601554555899039353198132827608930523600229687254904779770421083279837450274485556109268350267191145962513119709503685168758651734839375381506725875307329384076268787072573040499160608930904496334928906359369859380643263492055031669987430149913343626092380383400856847397618237609150469622689548950086176587782459409761855030107849174548101108005547192090769285279607513607478995731901233107431710009836776541070795169849656680559249355464699013132796810026166255397984323781215403363486562263611884605814304369551704939748400033561705208216123825851219126931643775535769615951843444390345138872088301018725698073951452477916650442400412778865084643260568657124481143121383947403996463789300270675475909888994336480015082091929635468043253045668398326770981040806484384790736980481921483003006813054596291857676501829575350503887214786372409993033176230933941524372632595655761895648739364253365386789850929825342445001588723573365958051597781192833782792109842162072029941763271178423649091731141501561610142769508393877362261039324558831295358942827391113544666841231281371138081546172954700228520559735500721328112144208367299815652834665596133382489398840273860302836997363457333469147121536694818611192234455403951760286584652046427713597756548808185291960735456157160097770349563362270611389801478389278570025217452677084998978996904371341737173012366964448689723467781129956290840183880518688777000073585966315569684153070741907197543477009360801861481791229225410783969035483952260315988647203949993947172245072693858029391439930569866119979699369160803977695541291441071253255069772572877187373882073938858532852997404363434634036137369706318014681501289624554175245439323932068450233753429764894758406066591457633649224641112032375682742710199313302070746057124303168218645637961036305488568388968489636206791482509751308142449030411561195821538138699239898937225755342116650002608076674460427746354867578688946167374255549127656245888886466759094408944136984481938226930542962301698853443053043482246144597092818119212599600671001024562443230957653153558429707872143833179314019884719736787778571627528519427080415122433434515134061282862496022705319377395553054872981312433305220418493069396964435123877664931921874784990486709200149682737046884730884362056600303607845974866788242436812034606768602236159029629791775567380622822134419782103595086924568596300248416289282333840434840127978556477756818319190601763195676814180636085947609296339131578547045170821489894269623170077155989871353965331392349444230151418605247858382606162794206705446359987784945575186247612317084780298004159952827868135081375824585766665337674489361903909110703711319301705323625854246042810819943984783821605671945898695462152990707582322667201634849420386105344732283238479162051669166511963178975985302322398461835240217337547704082206564019070837922066223334753482591151603601109421179078443530407292960733284810514926134735394090457999228768637376296092674856019695817202893272093288476025402940567429004127310106808959809221624816141315933450477633865685917202343929912577654329817428092497741373041776770070271031572997305109899220401641268718061719244903975840597632849121204346334688288203246272810337621111125220828954227494095937173313263073767064138436332270565362216650267808898510904294609331618321297064271713214917392999108761232508868700288217855154405400867240027959682175475642900012432160438932520971704840447143171023331391145399124175774649093042220764394203046367724206649826046706563604549173789015722696654106472661571863829365165726175052349485564730694762579091862536789427294723473575814733371163886880053167545108669890806366091027071342064705719882796744450377463898481148544087051799567565113689724966232470191900530043818970794888929573372283369042297115159388809733476190216696651243413353756680259471066463435366652424592396483224220576484557196891695252522457792072332610624918343841013678147573343690838983124777571439404777275424446281067856477781238934700797321195854587730278825689172737979773216141894193286640524831009707667618232913110061161587976203765348150290799067302021913047717001154166804084969416717038405900463234702213291433311687769223425537726919035140460103536370037569840406861443716101855935069931835151647871149430529376442724152184300183427300000262146899247318266638035947802825982290439497629683081075788990887437527066568883172418843580136863991679692991932277489297784694126701834023305516001046141803025296166929921890377395462537287707149078345349444052813533095599013725852487865361472239718797929875094927003651755062133450067518458389947937045058208483746198179307288320670029601657995933162524649137797224333409181317901079639353438033355713106785817952140202564598502588894074327445355255048941493880300750356972879232925017534427141077985993820745051800434842199508824702148160434238099232537313490022300564907540053969960210214158357065258172529527286344373295317747845257554025722132952086889003996073078374478169355179085530484259400822588752273300589101675885911079150704580550926160330224078924230007400668411911792298168438767114077311642982428133527662581770914249174302672865103722090597737501932341047253854635481159777222590762791640800578003392754976231815726814133294190465744408891808961090494280434223413531861443195393649304864952887140223993547677749848429257106747359199998499074839853634547613603600964080581859732683564460884557661924814090434662693114128105543085427359269364794392246541007789939043777677320223442719761892656655362241159651115923040893081950320197923799927446121819544771382564465141467174116978464559708691895214239250397751085153361733746423847490381143325040548099273143784561531998871378346262165237108523870399615391109918667279027259607385994845983891413839183690105260988629934302385392279732760385253391625466758502882706796334151856454273578127794638024221175664529907113325698543341117720504812102684051834231670343803513860408800686868413430086626331536772711676064011736585552528427608294346915135712985524439328567086404633262492351831517404274644259478895131115817654838674844222773055065902443992638942377477708910095771219986700218712340440408412781671182631039101849117676245578396292265764067649247615608806419966991198562837263038010019598072511379304271923861997802864650698756600380129641760285306999105408036548491870437031879489816217201473517726375350502702550516703786779750556467200876627614004354186557182649230956907511576601956267474811497693288854210248965971937992209386369464684046496558969981996076149233082959935305130445661354486416511040562429344778207199740262659685325365293338024787023012724071303046934891004091847495717153496655362788543099428468600449726021618624992995240208213919913437200805344627604338169974700588989987678570712911773186709441781370370350606822109515042644346701553552131513025612693616128046720639160636303000798549571918880546863770265260116332626440208442595638277226299046604350850171575672248838027266115319762533686010442552346378057387870358680923606323899234932959332739867577474853880850201788745111682284640813071336221847549622378393358066498394284053055731024246681697208098445975063971745777705257193144260387139333814179817069799331303371053066493147626031850755160040208286794433564051665146872310693905218360352987595093646906746496361421907094438234915536814009938535604804606043477172244711191378370594213298666278163023602729935255092175556863595143644725986155091710155610026816584916711992267120325321722790624650843792761385655388427593002557421837382261549225678922622798889173272546144604797375235182006645422411651554709023488127374768863578870705909267479002889947153183210329897746873072459842556673248289630673796045845670294533922167212539623097860259892850882432742844442305582125348013299472016550475775427831868581101842070676784172697238318497570457573494232549476358641169467465238932193246094724834553950684816998476718611002550196701573989419440622717682094402509862130707072677571302132611609846080959424605611160072041291290927713106361815035558815321731265182542103087041398963666296049657277387189163387559918963984022272635325256714777085769625945716585573731485031309514571250955050322667168901450576240721002337229551275620965716171256995704943377981547643411442021814433910989154943929006052846286900749930085235000616175936585974809652603664141708677725836733637103620852974639222335716629462173987277597775821414743350463893622488857553531491544461832386298715680431018911508840287410233430021057920694902159204472329893333782655483883891158859866554672550512528732575649779455640515350619352098987838727316160842608124842274079114005586892209944592793291180363148134575693815380907399098735806402207995162347100663605604297006967762463151924946221164130936918446850231340964865239366350500571980646926257417233096463306813480894150929712979200252665077284059917165947768738139861892394780890266862043297634988512149676580206434622573150019651830234825138933548271315227424822400001527627485411993324231851182565876075524528011591641771670336382002104125878197264482826063391770967759931656730243025851994187120265495650533489870681807078649618651543856384021102636875264824186712148623969508210551271330262064185701804759431801862706930403891609083955179709294958786932100986190459802122242244029353117069909402046086767680763517702633492164063475148306364536778223805366912969754635634252932174596328549154499761715948882397982433334633842746990272645714720766065745545181169286319540184660192185058143881726471965585508281975378802019940921917414645696062675225018262765940776900921016648539614588954040684442294308321784273623848253410874147394500845989763418260951494904572236274322189875646233182574802611147664339169844199902818819371062621442901662624672879874727607168448037533439804685071627786000928906977708645004297571771418279876638685574062869308923745921182750001956426543555480591184326026458869990099604409612927416390152753132340938856789658907640684122938401161476609782719384075154104109357703565350076935995019315064141007957378764439188170979745888844246625167242182650699838858337742248808646357737632285042247272137781821545524624563534209314686476605749083744924606428752432927289829716722648537302158605137924355988308324295031332590781622791670816082543782440345010733814070042553272166544177788043717799489837653625424878894829598098835266766356546577051934554123839655932304265620873462929817957023878548637006180555076413177606382736700266489945816285579726149153127053342264762391102121621834010627830737515233175274886919770486482121737103571312732983971276606474711581355823484489889317325178197131290088681812793063666030399283561500041102190040319711951705609996466567511123872457874079094921056632753199381566438174511685159820897032426295051695906641342458133811365241178805320420077779754331742130721224170248235561638373744961806960734921384250280157537229383281984759397010958225605700985248946382388699836156765725871767638552281565216510234916849331671541078718597763264394797446416152321655485729934765491854014528111596357190142624246673402868253828608541568869485615981217920493067020793316429547605541826704969495757888815529311232300393106928543951897240317700335164375474550226983776806922526930270266126504168982692043327478770987967384148551738161304413409785901826910531786472078183069561537397332381803213944395859391706828811079144537537607722229987439161471159547607270078555784151993223157969068253779264230805854723448525970623797389766183339524478851631257996254535520714546129103816807642626508315237506821380920929388667745094752508536463938129572851314715896235075183337585032368638806488813177057801199651515302816888811303980412179740726363596238185429383237534330953117480810943398582382378388357124155352627679243587069479373393764553105631500384023518126952492108349939778895415683012689160945400060374868062613292624828338934165887713413233238636507151000347703928487576175080633666099423349118115048936669682810795284303005043451726250853707499219462231779259459675747794220837185622366506492030150007696667103073443237046523839177646935405276820494731215202340304596164867084256730629817346841981684093693220497130155745606899131885311645704612562225232261111114889806624290992076886662406244114146948845090328105397372777503522691940469351478359287865429875975983664850636851694647404140271632214764760626977909799568628900275553334925212809700393600076413640262441694263201061186034857685398207025940810450839483927619274427749294320613518161654409675994517033404117447482240918180352326906238210198308752124223732938159775053331687693818804894959894011740781473651108208163006141979473335322199779621956141325556020332380245735617620784445409522326911667381591630381103294739783985837570518591370615191104573711677369561133820436031252153499813910930226008781512929664179698101114345564312859404091103098490304605542341417082649338062905699687761478870481671452015242018861615116362852767133914610730449488228755196346963009721122423244952079805686684726495092003626728313286305028351404191171706180375104855265893291035186643249571599547353572593874406922243773450377159952073138252656232451742025141576970898766617154769101586318038499450516760090679489939437111451442176843453125456290689416400671875532194651872116229918260540958058595943353687795337969600092409531061641788380979023980559400177855051340481005937934268789613576790754138258926819708019331780104200444025061767156966282727754466378159663028147450805412685594133444929092564145108565719644354687995473901771846704328542217731469219579196088332365903091610337461137363048049824567353127634472305416046228339481203241058958627706622469345465468379559908510068341896677514660461629942839285461941599299423296162902094246166297954193323037513841586618080084963640874546160020258947349513144672907839222444610321481221969046199930726490832230029669264718287663799581621258792333457685865820080203750312881404257330591705855559394328827109686906193036884084810346071699304480533069186958741183203850620876772688847273584520795644636488737716263949603916009292446115434508405325822963374710246851948451077149845926458758681417472845913872755511869611114616937275084324975431335442816538103033864393008248405064838585516115757780356790548485307983355797086188290331709183688261692632809292139119223729490921223536493765830059357213225546350052296402662435628860866896188126408112224168021954832839340837448624560697591762006177313474924952198158384707803476476063711848325461397796116096478337841705245692688630737894292062786962999217681257604889338134683835354211804780721232076679684225260136047319281333544834145801255608303857920942119472480592718164883995963983010223980974874764335219977452508307904461972707746499137711771748743161036975232990899668544545632834979851909147315465378085170781728263031647848159053655675081475457342144270424932016509436887413789696695552161954479463239422261703960310900633088363129293404085670056841232771829956972720554092511412084409530158094034236407521833485600873006635228983924316521781867887255834734399438471740391426746494997010910105697455561062752262897981889563055306829229704638578119010404430099438822350740134608387480722235827174921063808355187448397536980435351372519177370839999643223800918722751676479093124616623929439418534637729966764224686842208016765805124263404550919715313318623245334806925465308481898697939526200388164928949793157667592132390790972955886584895518581580405284147466514180744783660365710400239819166369203753561187459871287363897788069697261973654858846628768777927055010192549021528212270090424116984685368554831678871795142832438133302262306435783083167092358516438052214068355974794007250012430990305986880775373426083778275172114453999138866563491133503764393821327104267190098105127137015754468003502731426959419508382475737646808670515394310419693837710450247467072085124236505570674604237211283596705135468050448778486996825203239197398392329516512888417366954779326784987359165600089450888337462341832959301622860335373675484589546447868472350245237930075599173775150184978911239215534518478921780108352765647016039665375982982849481769272713679921125196073181638765078839034171392463736495570117953843467250965804343826111052863433933951672590623999546242540214129448821544478396621105782299725114347205759177866936033618423225434869590160735950193597874022795000772438635679511479546367076173174594536869002692369472882548034420979089624100800895636872843350518918309232782588090321982820383111719362538830421794944866465557317616449326943289825840550671345281491248551644261920543248447445619916485890715628449577759611057514915793244353070664083946062222327396431738741455026384597991961703210384389391736439841293179349237256602433629202389283637016587025150573387113591837419415043092132515443325155348725246267502708098390457185378143660699018472371484741231201200870503597359756066326742838751098403544317712538618292269263543500886311057391776218813222911351432378638105986492620585896788697787935714258416382323735223222933568699967013825594334783989134690918677532759080312441069643778043738971463164531727534932552802783877422014222676992570731359963152315457667519079963315591570678376289078655756235106447547556396663544125432451810288560488959116604671497276900061002692602643987789802376126104159855932165206344110405496481522781543506896621158298082696822340632294813487544542903676173403300005233144442458474468986334228599764710399234638054553730815561430766398684476663119276010062706356263471496019235134504655797452765858698174983536979169378504037452348558750727610848919910422572949174273631352434349189954971373806794157222644576187442752168633884846652420531931004929492802036530022124200201235453059422003076248645175973459238674715678625678180961331245353930912965221061576979691499858641577265695584490532099070263132387610925428995272190232953314165558310575612394455928045777266440009275663797411342680796092627913206478924756834945583264271240054174480338578879733379206160834756569717776645737218075718976551122512615880112940647616469043604514234567710341572726077191645092522143787995225344080254178399917178633010199420954940706637752660811992928912982695728528342231057544074951468324828420826966580175865507403555210375210361571331016824514136614747136317590836153084381560916715797318743177619372526552013759566398198025210308134222803306234133247963560100920330040377504394919147261095066289428673192047277339039294954919307984344223932508414444873060285824026369995362117895042195269166364545880027557896459768106074982725326909477512717468337841262490796499718611892572889143566925189714513105631151728881155390132705203736555290865162700401346508152235934472369863945771409631565202139623888291654456498242806674203837017661290570257462316377895376702120463820741611066648519637602392771889613473903069892260938223269603365722192615122056343520436107765247994146126406452926768351705690321545149796719684273031954921781332546481290908223503937413556056811992956361108575045011866987388438124201945580967241439892314730604830414437643915598156860290296646987776529881370099765819506024909461733772402314209105163753018377906655005104303678054154753650519563485708538161674739168442694781982164218754681143935115473737316829657541826531078751825858809773114405006474765426249247031032339977621181844116041554865732566533978070422802202633477388834892159406531655260714262306466301799301863753060539166226517644610842277904108219471332201323220609739836741192036857263540888724093829027212326039785018645614580474352699145259475902810534686673253291122846996652967018901177996488816621490317253425565718724848451697442212403060281786380344976899285100755053845046027572776109386614034933300560499957175467932792406211653143758911686853610848413739571629217911393083363899319445286892915569049254119774147589170300642876352134092650938693942882186249424080026277027793573076952196794308351000833250495062440950974500800446140865173127989235734114286621983877546614086161908654540922437154009346026967702470902517568625966975485051693178523900834563611651500011058861165593145550323192068598271274106997785266724132687990820007231868683517021234420007125638483934571631237760940324248787929155198515408722297912358992913556002042974156807098782370288618637684495757245279138380229040094274009182943700723160359866545182056792769790220909399459703234032575074651511111606834670640300989615067190302467598553511970098628459994171338908921143552350585307960085761427683817497707502821082013925590745560882392412267695860175781411984123235836290933702910929937695657049556542669307467292334229575612547740458758262416616680089318420164575904241100016754750952810688615245326684078192816011509816591716690241893144405723370436931896856050138474594844254875708767809231116622985628319846728965909784688403191299125476941605518758191581391893643091785466811744107168768992540545841815361172557590090132869957511359336775656486144737594794581534146487766612025751590177791406621048955147025022265448692543751005629215578782510718073472218997161603033302648712476957557965789484616519135295597245725330931466408156728656753562904212467349292646349686633575290154127111929550780025495644783092671310757329370634678283887176686833966275357864459908115007933582889666402594745886819124657950084344320872291774248292457173366940988272664426272736334261825337668272838147443474159055328533240040724725869888730968115989474729985523852100940436840327850354074644884926769383256849135953598711181227194448940966686636130659200661191163427942355244795321016289313539679660055978062504908675742559952963230481534837200592805872807850030583861185551402074641047571567483074625231083158366995057176736514304850817624047129921314860402100333835574832478582659630349792104415756916297709770789633877795713044819300373130176210985031837935601616128070078904243414995704693134376585393087481184257339705059958322826221334185049646645183660343361981710031015863728270690641868292023570411288753415212392524864711028263828307063558466394343373779916842365218398758356645700660464476835886296672495151396305267930271429310076993126349913053460412724282821692270463313657604257627109973589329584593335214804114186754460440658025116201015600488167855253609384699094306183813515812448352955798927438432199211380887655376796323900169001501556987336433451650181485265601343400944254705910179572964124009661742174837988388146648836818795885343840708762951113908977061863975280682982077883852670131210108241149714346052433282724957953336500397963409868468284889488947063462682825791582643735243522573729420317623585377369022770601927335323779477920362476684909659810821816490045825241196369841171545253403850005887774454980110004851566085353200238778726767645176547329753698658612832467879901914605869124733244919797726130986628329417448844276795510243710347542714102085203171401064063668268863729014304137253310633210666009940826163123837641654153224793568564938215852349622692611246077762344885161235142965566014822810515159321775446378751053762097646828884240913622236158688474060265660922556959992837956190186998713870969995726402124056640535003199338593637762396069075158570181472314559802323439822914933254197018988450518152724246569376573918403289313378775139939757260316190214044487924944909894691380123951768796257389835404080558339544630892476381352351402365667105325124346481542020768129754343014366760344973280559656007526933216490765522590120702025723559782005038065918103813753552303940848786522905518522315430174082754112982377295567103524571140712550552718705644007121823571554057561015445565974775085253970186475571128012499264952497779524790918100550650383229236544262620742126358607894524158521693046588902833354749768438817410088243620495882551482623051485878393634501174473503564845027530829500137182617866579214237953070839860190503050799256759576972729870703700567976778505364428326487926883210608256932455095223672503021107105388361090237664279078149016865438828752521706928889322824984107916986718047431748933612330651841507492569271649810301646031566068049949404569122775182780383230918173242253267372232384900660113459541439315316832968659345387041198109698044676978500984628760983192763978498235867274903849425138384291821129925803693433951992842135775551431815234988714629156908683252540039597609157891538598436601158922364151469893118394092212433402984493564719507293551974195845889532506148652689862109722779513942507211624295697045337749604546469818968979914922743742896209769667047235591611307402354988141767018894952872993880888357326836187583799964816299730238260661210691398201359978260833195165386835617090967607852401662581828150407876351205311298606738241233284993056745111619140472925575945734974630741347844244440130077774547150171672327933753593186763985157134959636239630721357374092454637157112231089125203928710059566153277868944257752709831404878795649403476585692122664374481744905988127640789828990285021657346026779183424375491552915680648847805504609666099714745568894358773255631175176009128807759974380057728333966915780043050525885735616993616111314856018463707938023424379912763004105836977649519064079913061686189107830506782377303420460060212275612283100289693295745722264565416021521819194781556423159040515666679090355032267433715094590301619359833696234636239678703173177795891495584381739070661905420510016490329846055576440011239927009722153090316747039664692600590355675815873159600085912217484385487222569769789010417798428707828758126360271838744749039252174402757490184505777623773676544952389311161470852572765818315970245027387477830860913039868232158849698767591958480651656593047077436491934589367404580702826578126161562451771970840615377021048442735783941459516018554305268159127723229140366050238958551655112694865877241796973651017849110655918913975157559635703449843051498401596936365427853959035794475788559839932831325233664256457672021609167760750782860237835372717571531496673152504820364311501630056904354164279721119927248067284292502970172646077326473683191439644696130420923204362942028904994135003270250010317994835220081085680952492811983346086743942434688408767099651008924433457542712872075163147351342679824227182529745903242613219205946147658787901163929401559655382245022845970111791755139552151201437676263028969467838057802564437465075606414568052815796253067897637357710083836829266554538208834428528813514402819938625427923342747450824134243971292189625483491695206776287659784550814007663453402253468448527926284610561253230395338500822802783981779478511088828157059816093473162895374198225281482024329738603255840498792200952049011871618953224694413116559196699074918703091115754325315420125804019260524988022807396807280391223062682560400430787554526274469504929014856889290723741287335352069456050127801360041927556904243218853449266599706374380828440469393802866191172160577692411924010830014599769601763987170576514690642296256935324938384603319448462535501054146288295560394390589636839193346800444912708263482546576836714591626343362216873015347789761160170081613401436417263669634854931231344514900022839399652125296462513412383048577600584141970365980144666951181803336356093216932325066967342570878149469582725543058060375504890013588856481045488588248678011318231564139467797855237497301083486126974060374914648394393014555043566996091850117876392293342241124533920384411401962093968345179477499371582738099955289410586221203162924046130263325788718018641770443706531943782261326897555196360450564855845361608012751581883490999062436003961390449572976007525835700760384320083903055044345776711860129139130968767013017416975724497901708873940539639188125506076529245184078583757336182400842568187114745714624643567131008874441163069258615332932059939281944599197872213574176766492787116183635539076162240879577146504733525132748255167038465604778583355839109078296785947090296488970744068605080976989729398133177229939600700013208697475625496978539573597746617583081248655640730225076302354327722385455801110175326451506876184211865222938219516540875601800717674304796047866621778189322666761305461185943659907075448301964098370709474780308317387929327454342064067714770694453156481920190314584165315871928241511975669465783600142120853503922980476532874888610889047641376217092897764723820722613239700883655115528321084984875593285572696181393179941009949851748366397430140060691986696281820134598300064826089254257076864948862492440092616164633237012839671534800263908226236347824567978224891243724060760842119443662063416394284148629656178295641284431856396604245056860282081534390664814850108891579834111341552210825149305386802946445613934921343793224174126888712057203992357806493840966397557253550585446107373587140915044214755279121334951911844875539275909278205002447511867879587044950516317536044554846047866351807297766062217050958746556855347448480315189459012493184596254953604720846355790171713966599229562144628222446345653636182835803263348324954712173241788358418796800114899129073293426977548353897304168928625283344869188776412171140867099877533747656882488765766071864905943071350156387140697606288442416699731676331054857419239002191264012049642661089789595570013997570967345135659443893805958412820595463743827510070487581310124571551969118852904602443578769900420480762410371110822537682502082129557270081064199011356467048314170319982446347111599011315724165118833337747007294892834919436740410759009598205301765160799511642787698875870400930608394594887742328270468476083960671071402621161336041569740234098953391127289011586112163572856748235617974339062433697506951802843114764972602664453733868739275769551833866823022537972570825278055765175989782186454632518215797089172644482572539582646836262859461995550325606360857246458441083716717679637374431475614392001561577051384266181055797790612503333562378734399750523758817328665839545214259369238289602002252959702949398642616265237908297521069561430366106394999589407648372389499999330638086454690146837301402396095332417220482244024551245653003648533984641522391984703204774689261556823119617471696818157686050757270897665001698519887642369214093971191009227864350719894141276112559541303858431745437324628703913473783090437470043666814105882073650916452209421565272858772031789762088151179225758591462207462013409917617942321298772181701661016505007813498568495472709169982373208119460129222995518912889703037670053023276228430764843778394291640801319597317519227380926567283936843230735093433707427021844045477262857681360607124772062361574568631592593603730485667998141657721798948817952438279184978594768172542770123735809201347302504009634113841045879334413784054923856210679666973157270700039901620208281157384075752886562773337355322034902509898417220633851205592252967282255652743804710523915047101486128453076601789740909364782865898212900059303099367990027296441032196877602426307861441096725576008097507779742545027719715640920734122788257718049204075001937059065273172432426471372512436596108500513764673867913913910853966536943541365252891477779048547641807658134604808880228917074326553323085729587013067582756376620077820753662530486009711128966536853767559791870485380438194488805165561742966902854506083681210544796507290247697464818156314796058387094431058534310684262131032458460033988463215019205297157934322172591390649600173095126758684810163955710096034303951920704586072087309043165663621176605073145480614648087007091174552114705398976695781699643190500658421510581241927732542301250685194184073813025817630680692879452816693425458837839217624591416182065790218415870240205564148312783315968069215845219495550986406368756093195296823012652962662065576100541481295227625563491821380702309042112661809929582723059753145925324342964403745324970194814132814202758060648324188966226620173553045334481718403422242868275258816837145112745091616435198093047599994921325593904470862651812517233702673026365070882745028019964103862767279903383212039057722913919168358448858555214874214450404422469605317783341929976296754894916808624118414236754005844071179019548422580688154082986051068565348546513678879347365794296940440243250459922151560216453621104064778289628250804918879976914267228012279119787448701622981565293421496419807874324725709335933162489552307672435489489051919138953908335715344917044238731405740911150871731537390598250960074495395351109339076774142364454519538095726073449953074902237737096979469980695493020876581922041205653611929005525386028324368517239258294735524532884582131646057498169621682258674860080774700823904549658333985579194120045156993073714246069468277232355854861350599648582716359149447696020557863199983578043703895048430511348255279800777206920183927962643010915929844825174045732540311067584316354492780716161076983408091379034852706166851133487186761010331256183897884695147794959497430291414463816057349072948406248201017750566236302709459786478099276589175033156998662448625787664033992415006361949173493165323682546053125954842034111996754437957794769901160558714401050271115008273632154335335735071234457725039704534117053627264305207607415873609395391599784990217936722676667712706211916352961678346953194270050892391049900656506138052060145318571093286323737502266821526868863920390332305209789019759624609953651160180330053382959170638149902085724896716512255707601281328131032830554856379320275269097161664301110396304011577211110920939781423359496071121963943023358928878512180108193060646591198549205459470809485458573866273003462830522155263506104688232569071527721067184527048435226995025954616576116716480231426706983068905695641297200610374457549990426761726915593098097818088222499301657726612280331139263988619284766373584698230386068111761254415095591532371172187918981840327696417814185003230207701125969832073035355465208775739762735616027420889409255699701271230528315191730451928142603116949759589051878744975281712432564855157631428948355002912293846896034041184088879918660234910956708585240129140844466887134102718737080393871002083927420063313805790663492932196730472032208129829936667654754374522165008067553820647613722940499629608426401536991926160455750193936762400843184792716033198193861602388951444734500868108606138066949932630438752327524538589562868484093776973566489726662200130450685849943464729468037592976840026021922793730050804995297240051801490987982627063745559914822275773766155272861674908106259159856808858557835043233629105166669490689994811846427284298969447123140577897007153167535975629379613655214332846092194052609880485925470593415733675149390736312724274960585311696047992697835132829562764213899774938455659241168162009381573754687904375372738184202676190323403655646710846267621232316405962446970362874404625442077069142060954566581316975408336261368848718876465763068172549171599978906914703361266714407986739903330397071447952225606850464079335665846409588678991430360742761877949129845043898972548192501349538271702034121812881243161639797433424235567167399948587796562772124295181537412595157913938113075247686769004888805060834525370084633000941296746890815835257044501393953116844405569473068343541648992048736883907607894870078122090499874590322088475800547174176473898019236812902016857010186680403512426803882079955672942092682219478812367940398624913071542673341521072834843458506633002664978218802902926205531170660043291494518817042517702478940580183572947615541371949129079078034746901268036153434345981610433547252358987269864086598961298216285517711289440815792826756194310731978264743565508827493771393129148881760486444662568091207085123575256680910193984848808399065718996760028463900099320106543897789510422740865924553201130513080615337164927173884942061377336308875354558212472895674268735001924681470599438816660377892536938313788236588451114607249992939028034841994101323948741490864321206457677828319161624815117240271683710242278337811414906166945475545178050140231220697697907698995037446175659014125563100713426570366412845825285460554569034114634939921732991017512026963754122334813009745624257670490576234302072581583282164473955727305308484239287827273308512881206841375897819637749574069806617762822482364798643164872316673147472036957543468090700136961861659813137950527083880522180908830251783742542800422227727774347737688009050462493430238426110779741429825236204610647713072764875027143612791516925367284103188082361194585174376666669932196112491049177314078879759445116518193367065720849591298653295594633621908945141226584669091035325695398119133495205989522499511834258901994566455339139929366155631175880227807093259756212262987958980955653089979197190059608714552530331878715547926013288721467156371357519533456681890627404407493514307847522504905752246370643692186522071035417057313351606343003631370472905144751255147668650169559314843597921041430438960594415542985837292692703399849166168285714164624813095151975502831521522182667393731266049061112012313522917929341188443664899924066700252892302316482458430802881626289465671475374170891848078054766303575781020680792273656516271666671170092222384297240231368742891527581644207514084594944354590688335162165042013664556418567731272601406165178669723993329254211338405194149360890373074537253810574272008537941899486735360234829067884315760523086076400330846465417625261982226512934020454465044209738394833955573808536540185694858702240031876534649426986409945495630481547687031245108970846502145440277064834837117269954669243944988421415855485645861730306054020984123578085319808061068588848452168183159170021835080815078427914846602394814809248870853622064762946315313853976170742840852067774161030063832635556354744296401044490895812358050270922548332958830795146058549674511302800365594504814566641805205194995994694493156978930879568111555231564742206534246524514629537889511688672920349370503242173924738150841998802478210781122939642192611846448352277655303979826509179958142864410802010442297430325433880019752220365898167303649508652132230978974071258194260592790691525207601997132966964257558546810268699404786796580107097615071217989095947704836578036770890310175637656568922296344882847905667850671756206311033107554728473069500741793375655215087456279356428302058842883701659624551419363398987781696839844125074465169974504488011942733550717439938520809697016756714991580581493187327713205372409483290868942094064252767168953061012760317555174543966732734327090012038592526324642244453366642753356364120404738321159777688488700258535071932829714896616786680506107620625380283855198782982206861021874754506166748631538773855511388417477183710094044017038985733057508520540822759183892656526366150655358461967721278365610328257174291726575839664973095013382004733595736093024734164891663740265330822221123488360170909907177414116975923829322595926485186173527753532682263539053556810861486625889258557357905002673311196368848032494269259540588358773995581635777476555825724407320948773747993869808751814443266101201525757203681696054610355759850237143646865375896320974516579362940163070837508594688040688560752684450718987665493773381606793988292722536516494027591909361883596554400652723907908690970111440619728137719035488412656191469393605024347919120239280053750932346757661306071021867152602533026831619247035411318398333404349267908128725215300315369003389409066386211644617086233528805671657419290068340082267654441081481781196457972855938180915958481846753444322582945989396470665356810424294338157289077260760762454237531949945368493873590894436246233834453864430358893866158835918790550940507744350838687953221322239560884585761930211663486798559354652910580111485302670065133965304802807676174648202311080575089496467987462882807496414464330956568032391411328899269082431416073330894437862098668079687089099030760651646398038350674630419274288391631167728503322871744599914583091885509278946138202010326039991405151633937497621211899118120943509345452768172217885022915318852477624006287244404109231609450562692294600492176499280296455785862072086610817238215969038290308219497523405017475488306402092175387985578487405270517000676598911214741201325928334649507694058833887385989800497819514175025219150301387550438853210453353986242951778625352026693584001335504383862769652873135864965281528405683639298953879122443586384950700736386218515974214723137079214534969376962110670142607950156178348391822440190007820784114353990725792556435305384289961899443935843840418182659901342783674104941157726796933833319346118256141479373790220215075357040616890316541558274249361410099298382918876499996541674614451905105808817312141515170079873732879837749439804500288675005516723066563965533769009392829150281411170440640647426337805629266582714181482764999978610619922457184202305168814732589385809657795387604077323405009586094284308717909743627094990405781658607010855037897138137289013308366288647893051593697164704586910169254713738799624388231588175451397738357177039601942855618232489735329094191945773774111476617838640957738598027143564723348241485253184963279032247578004388368124763208031450970961072770632186092075230595708616970749170285864692078243521446581662256490799506763550501449989722892424057676581046062609651004204672732061204786452799512721238638663457686586288448283876434257292707788460903071917184804878845398817412504133694270386725367095808352073324853851739038435821691287287555769485762356236159749484919079301549683358046106241279820003976318320983699725099760170565677493445067363181857519834231739233523458634199526871796953329862372282230406714856511370644417541461790737640524158328671676266079225411131554498552770935708798888710574104198668765153688475126546341659106013877900864502365282275696434550541995771688120587253365672124672107355239753004402139868503509427325164574758676441098513983370512227328880567389390766081856348498092545561385218698651265572533875288852470753648566860284068029231898409518957746447368811264851645012304364911879760247161100492583278665897560234657958966996852179900865523879722261066864967142582267539347914963577533127243790883992833302511633505388747550882722976756054463139329837340967753413686516173232719776745252779039990399245067916764617408340092298374973562605665759802059977083417748866607478202639585828648221999240572739819381413453748827217410315937871235536439980096883461170954687196765519761471484612675683767178329738681672738387420638525734642634206091558555541665396531215982462743914043235297986758163578793582372367703871434440488741194333122787264280462576688095882289234509505143483616874777713558987682302606566104145449299850292638058665174698336617342203076903910127171949798475625801195251828453694673524989931045920366611698162843769919453686195076973507402653261190602545586259438142769156981719527413980977262860108338304607801301594218827319216145168638315868248382518848230818263400638502204968323363587721986800249147175274937300023179536803011636909750385753473023491321038404692356971505754899711451496854605935061625290850006077118115789098619409798778943035705633032518729504915260772153095486069525972681920252437905160062423851582896095760530768290175186265304970805350823863581989561957581703756748697052823529754171848849991405643080895894239210525659226334143352150739723002133340404313331352902884242512264606137400793126384796594808711447039453230619766697018019541320275799137445839883526459078679452063162725157762211319426785819055328296472341695984944209903121971168125920820332536712777850479744481111499151828384977040785810987952021823685263518674366200772626320696059945122523239071166371271408082372290602002767742674433142269829270598469530568888574377842958342780495199621732448399339528231162362406437522300184464171672322575056742874775598894971675469088414857622278057299225278053893970645770121696987896678033375821773107014279073279230270942587766384070641629772144292207612192141488265094567036295271088699474276498716678034818017161996827421196755424456713080452438928061900121721710403603372178713009856129692455735784479332226335560692711492457346775402264303623069314683060142478652003614467067137245305356435335515410282141024876118285041860226082612108932563319801145675742087203149649329770291196658227659043497031221196552466403496160150314001307235189174363681051289456600426210524033630751328934457258996377989232318620907494446213502934024653284577462525856391770379875932879498819572827022417760983784181210168195839133584084858672451085090640622335727554427867426889321083573834853304792192673839811219763539775979522282932269099348805743434574094803897069889461774199428556061942628046377726350095840740813658936137563098078871573429789508350106126537848899434011461098423881344143053180619188909019819658942547650439120988414714290180684956806432184309613833661021896628238393541178844633572943123765039939673643371271880261948091121619548783268598415812223668253070769480939409796238320652189192442115499461526064582014358995904433118359196387642722990286793899624418510307212720796153149640848069020206274443992093893611587130268323656697221810050293380469501503241032857754026706668652302613420324447979956452022990485930917516008441641792677745559843369044757527044368155414600442178876988283078153775001682296849664501226834181020931058011856193353517882385628506577178349335384979932925567267000144150056679813150663014105800058821612277567793088693698363251804057694195104960050306787020241102581050084944045236050873588577519801785427638972031576477381697687405284540928759958760540196784803837409665102228423580237338500416666891862113635484934127329073242587196349764457383317199436722168006459826582773957568102217485028411613619421298316577987698895884002912728636461950294687755647012015832015398506892285377269429586725645161768413730485049398647706232471311830619913255308887325040745734509346669068781030615048924961346108547228449741695505864312630629215021456878745013121900799121746821079238195614602199837330842733462673176416720354832798366323775310538071350479248909083753993078832482180817478820696906037053537752194862987701336375878835442204125555870234764727410375671492595038218225285516910454751226207379450522189627376479914851485486082090505195624027490574968689227613324128071165472806496637810359169041900739454343490972313053631034700583819339983253851251451021152965874858912063411079796178743101579343368216594642456302159298335455962259292720599170065422538593248721986395531767069096064101078117889109387656803845454973752285046349606408531201681660636950063287882705355694869031350340338141146858429486055736062770824229683866309091994780746084703022185930390052104117803805298124971042057867938203803173543855789831034945839698896222644162111167305424022321965166214484348717645739246555195682612604312294648338619177374248257357967208677056563893150327646034690155500420722501596537930533887799339601632645254000795972156897848227477081499036553882409184204432017647747203997435657792783371736667375123308110508519977966654028885859863034140138744719708718476154895244296392383075589533058781867633774454048242390405690422180890985879206278658504742244395412343937889499705612529345684237240824526464383970722360006583058575285965795530941903071130208804459953345150623648605704433682025207024484964203687326865506704342850500264410343705462148473441771873567702080155927644443228625657590280379420255647424398558309387412169833947431996436724616827212119855166451511700511150820483739847280704835301224507738371073938799702410160884306337535941488420877018392953798259610113164691583505754018275947116031078610327388934961749787538873999269000157233719198193676332374942410636369357511769393911439648316786700345955198895711545176644642103811203717603951917568810725752875198761761373381269121311274360608027678742950449329649400505131719704767583126613586824403421032498227021420043128891992606702532500933737121845560959463252398356588236493688625615601387729213103261613529068703300975040112463927276299422318761740465260961955994875567402467239662149103384666837432094762896137677822309984045365186245907599368838587523044746555450275688067041132718024906288870039752797281568511294038114267150626454681761445108891672561730137200303363557409401034750434529953903034737175213099273530656388361007230693403936605933543604136069983273412518440139365967558591620384695401725734173102194050310354811739513154122276306085810407873021426091787503019891377971644424054284426171989656401601450264522743440099075191986988312657789968715150208561781374139384690853385252472631941157185123722608675778908033149647954536468501975864875399326207393218923697441941220395630715085609860438811909450401092608382259203503941718531119111882162814029469875594542387198500171171209134692255206980541573185726646786330773014347920688666071592540645106657823572728945430382087132304807434381718780447617785330964004799083007329628331128015342497674191103229838733231300693088534015978385301164836214081236645109916813228859295271248299294555221164936339735900933422801235307933240282951093181624577364916352264064997742952413918884611094821053733074821878386649431291499962012892791996273729268480956732639718370286894372924148052590158926035159978475901982610005666021154059619338620072195167355862488839766246048724499673293206205682176687442519794750064357110358045287634441209959409527587491134772935254636700353918317727552582210698503694245853957973221860278924211820766905233493449334801056440910109219025255144514602581808966627023504304144111753528438524228944565597528981576510978807849266227349658597132827129199137886490361291953002223428502460454050789190038394483425201931043178818308000751232393639876346707783829099935726935415746068816676465805201563834572082165633425340541173849653854378481775727579378205464121594375765658375402624811395638100665194928332178462957685004060028466963506327723598449144010334036667567580007170443638844904242916547487633779779597300625538798775258903153869064874601737015045320507051770195792765812877642675191528674178195231114378150318343437409303280457627815502823470655839971612428374223699272035623556868047073502484845148624714975422287081356620803138196146520948314721122956382692309225243071642328537730624700739401095461925222386374411368450804736297158196179884137123643690174214476395891484210428216202467474794705546739159325991348497408999916749600006136655579648139687006236792250402893418292529459212330467734236133212976466832105909946834070914852279200489103866021017610151442874600534234200240265555028103288587468646987211945904962312460550069780860915371955778902747120014715387451266979946053520260399058987271272869967986255424467106495206901377765567878924168127370405481770553524215505263995130067180220311217426580262588326520432739253004110132352482371105327906936312174217978401893287483773888312966285145133435926043349576978387484937691326671946348439778785745330822872434151481681491860287261848490815339584340438563168627184378451981300814515930117615023656394083317353115659350094986256443285871959418578387575945178266345675386988340671263623496193801972154938842554576187874530755460397488713951196539981246240048609635711109362308095041200470084260559022722963977920592154360193680858177093713887176912097600846151338068225683385353948942505231978713002571193391710200846283528196513971902245670057885143038408062301700579742344939697016036462782791812886635705275137416753049949045954151777097207096042665851334188711641380045903296863196091584104506863056779539812678641747023045745300190257964162478216147775570418359034556844308284999114789531687683900201037538909874356640936748221956502942331348749705014878727072731123179554061053318717534176874026460903525930326878666774752762444395384330536596892643193343284688550543627499538982756577652427937128245862477555622060528654406761678678856012065296528934399236923950703205329941414667480791887631289132779258054773105837359763626376320332881879548264825202833498747392292193748329175010141244644182334761460510136724644779280742711860937139912148959502815267517768634647553379228484403713728599478480950190922290851204335629787141189459884768141586651544947498009064673112808655697764695478212844610960438525810113218506367025598160216499280191531740540337354879571281477193519411804955929537141710947650076419128899768237514745661100871593839246447309455256818402006784510500676301342283529841236388223702291944700868984840874127039410430806990674430631284829030528615147889942183124879254856647699479629036643106467119850727271215121576485500303348682937964714827051716693181011109272658684165399577631985218699817038514138568261131986368272275116466568309523244186725229023561455666833325709299836999357647867426511610219895786889755328726595445374393260136096753714012064245822880143545201415475575368848041832840211056593753088286420112536942364467617373781418718756421200042991031749765999646883409136247013713470017441098675139091105869639225123799374985007313375210159042609501245588586596476771273039903297917785357670315542682750896816411844449847807577384292038669939911753089432957467885281162067385072428347923479368171641949553935295845692999568629280559666660324476182561600152559511467531614949321624180128651672483104535006223071807267706309914055924543261798480019430343000969382700241856525119057960349471747317666578925802326959417966665643407015108281112713468799941685248485700509292870662390215684792070855900065227687863211437375861524770122976014630450794385057432592730603498398343583362982517924848433340397992029175287085488581562667267535325457154918707546575436759382080131178800524160242291613485932635147012271921164708837940705584178848783112301987989270982043798351737089715596916286400868390925580405136819197219605214928446989286929602489564996879410251826067416838099612866288022456621731934070862948385958293433858748171825967885135204207623750641783800382915183593880841461720577992453331791457506946960188349344585185879808384978971845515499346083388799812771855802779393889813744558297401227102304364680700095922722096694584932006158780581391449993421970853748946262226392253392870873910288445570891795454060084917453946953675483543818363237426491259678245407650484120824995698373173848667811579542625573185538781258352950392159308582963551251276304989142039564544461126130284811661936533734982043086821016980020861829324681498413097386500967417056633608348307137625343394471845210227356013422718759904148198552797505239162328661141716016233801692522450244076702010555223455118716103054764031515964735361842481281293665280413915500010838509741135477650585632576170652661117687761563626291271782340461198773619733062595051355073072502256660960644965560747180786942361259314589957470027147645297376447912003090692930778677582360852861347808525726295553053435477848153389138492381438970075607507890793284746169072311583509928394712336366336780711904337313305675441064575608755123252464144942449151148394253043205447460593493804087898064392941628841948831128814026968553269719702213863374121354851789926077944127001688988124617504006503141727326507344939489168589350601304868205139858407964105286619121010699448328639323156184666746859631578568274623469151293419017505025282451854633858943728720995572746918359045402252716574718043090082350718323901178114925000066560439173226245395172752575109668960057159373442378751023685387534154726138083775248777567906409214964735179336140255673755180835520529628546866142490880795495600705109668405927557607451763893628598336323261321354517770949114041444202758112526453045265712112253442081093569926756144918475187475587230154190049686490168132377642033679268031579488862235393565536505591219716731055076647592741990527525355642524316863113833570509928728863914823829259537665508602162383572242442986340044059325641691862648686443361289133284131891809923669225884158060261337565529455282359016296108291765270528252440906004821272050230309926216812830926631265895967599279967220470648688841936967851052204928051399555234806783690232482762589883215327578592465686972423259269664877457539815688979561023420447682535358913374972579051049217761914518779331893357055990475104926490015218156096532461568245933918378329828540640698256482138514251383745080791723780822229659763922584705737815602259010856037525670434853672667210527098892805468707636240643578030928109641755335530716883422328448062294344085572940155255236927297808789106612410993706672312967017377011932922620660703319845499395851399716169091876017983113165807146366534968098424188325440605081705862550309553431084431303356707397954791155025301349548406192439188860256752295223804766937205736375604531713440255768466793441534695163321574198829826316557777588028510045834143886813398273648485301798735908529376794384399127333311991051793473281428577247603597587595258783456791593459129317291687803791020476763430299082816812532845117879790954121859821914237232259306560120945141931229398887282835531590382472313301473052092922988874464564879455014981388729529793260880171609722804978883447991225730647173943822629448906201215499442164499282285451652509560952484804212316169624309753095786161112787246094953442302442176401116294532480947572782017442225309917630808315999774954291882940100218341204899611777112997372804184642222360132890430188961329685026752185185281100510392067209479641566399970292943991604771004241318148247721605565664864066592996683789942953686164978026019999801728088625534384011110249812694057567701466456359246484902672106234346368688170971140276283080050249576929340051187428550432245057772361474908204686210865837846224671573048794318334582238665829188458464506480905001915891299258160589574121776730162794449433130293329199149323799690825224192974842135654509574448399007141239697711802067990290441491495697337023959067784290722074551675185347990268519549487524964935193464600445551970441533971073251320174664638083151924121923263142263477880065904023527262621518307886647694573177228416548065723586489559258229233595454975404701967551421208601371339816947147706525511008051648654558375806759859257075807060344869496714195712883067658908844079286034800036244278896923927683611919462170333255074146199238571647431369045133708882421942954586127717014520133409360999035936613013991435181167393424687724678529787364371906798644582686127886301776353489589360642138723893131661848780952355682094503542970804447460777952513297268089197631525447408215939834153059266081505739546630954628733141937615645599388998543979772816528383520956352319342733673423732944927387288808754431925666168268619974555164293839386594073349784975634905601663308829928261742018801443068989038164184149280291691888560792336443052489729830776555940394170718307542836425492682467642923708691478820376188039139699125712206379520701545044300109879534828406860508939822332808205709096374086557381568112600314259465299584449112936724581808275457957236828275787093001174136381311573044489115260252503005622452096025404826834646964652650926951996863398460209327099190697792125042661513134868825970656985917045872768114655072347164104694162521925109607815431567613948006883667139167457124806611967677567518749511890521945442736627907940846447921080007789398300765460825116200465347179800579713416952193593993466649989940312960740321380248872266051224977105894858267892633630977835820026063889032378556823310623340071055724551942946153225903324136138919740289070986232931497440363187522951209486661176683089335891029255914147311144003376255979337757534776683261004709473478890969071982092446861847682519480018730918561665395490861673751524406256695235433367039477852550918847608237158549859496813328496934530306815210571116984117658995415940048121645716034273488783815713739334938927710324026803459452087318064674021559201321489552982603923281172203590881804136643094098944904921961177084332583245999646909845586254174912481632364429721622575151817835489839178097002312061406406779721446014163711361476159877968317463618711042690347242269596907414115468675301800680899261621387459710626095447908512769480120616920219241247174857105059879197775013403099462912591379150513902208166774060856670916217764880657626426337817131620351044144705608705506514590154251622626956263730941956454121431955086294556088444365806689198955543260958884088273428929963177627994622877607000104291051445180288093523569364821554945492313001197326942412071478987946117936878032837193375096280500337318645455835364470040519948983730360541476876856922278965237392431088040503448271894233945010532651812892603672431982575474697127030889372131096201985394024015280868602511745487075769037310731931759837971658369301271117492868715117328185613765143137927723632484202757570915410317326345447340166769044499840874172909847326618765477753337201741551980023860936137641506055580594068279510312110206389048057035577833259350405895293161672303751208671984101792785394308455155665581929158002960031250852096391425513301580109871770885882012094790288044273668135505956380786863725271555826606660037667374053223699889267324444659299290566047099918577608159889754077589032516399795050177639441127140309578800527662257169090879759083002842315686001187651482271528700526145004773778779694372352487529456775688574177310290459938199812214526535022386549011696462284160801968704287044203176823489651430838656570238695805677026076152550719505168287755844832310980332969767057413304332117849602219361076452533828359705355060955541158831060802323374982700964251723484218730429643922126301108198515243762793023486872625363765250392967431282200804845086252611009847552061409991214642756934189661927668053195767936990458789683242991757307989301335756642078308959060313654402925139307768188552458213127316078700041790278406558561789003998443018380615187700771948249328413898412858784732284952289524695309319436163756588821458203188870721101602410857607285280895514322568841875611953706266613265093503320527991862322652625865794697722274218740505372990013417486979893254364625971254705574365169015780257204122793798821830094182738791057926373760844377069518232269072886067945677485067778377013363754335156025359262603087703148119727780012587028483988802311007659719923955278348228202717858587154852742938942852824794071508609311432559902059441021413929814853976527436099704636822157392936077039119439462991591075581468116049000294513614157258495403220910241038786376895905813065398305541615225883286622683600527134263221474663522762099138144721402080596573431638488548550373860932637578993536276580251613521010301672343979852640743392973964555713007577319424125936306022889577631472879274461338454880569409605333522489792875687809897143815672918221609490313368967040853966633672086611938480554586008086381439445135599110442992644351993130918267593148507772191772487899621759079468500482958128807337369032990147661723421089884037079892916109591799159138917357631717288328043751528195255289161287000063517447900072001039799327381070615369855610565714454861622348881042778372471584272703650278901199369812580853758207933546450816010751839157418227074458366712134073747251148997149298302551042891350478113458877536756212409749194014701219672134327972969553274249136675557153687498518233675188528382454282550827595705563864076796247188420747580586345707197955589301476592209935996239000786218091543325854383126497587982514365035415324695149341805626105608846848160144826278775790991318742919104338589194707858051019780181327832082876067569187052487013991656591710699815657637867360902813864256702608353732024087791947367968084485345677551889355088903491761983167936681865680698324574398176328474211140017811769366264655026886056699504207903426199713185307192053935068860326011709487456822797636130290689065018497881651356559433184035830478540980957408232168380316543275612973936607550119151051597303055253315053700112805987005611965452085329080504434870343087120793383498801476726488546757614824008557237145412036356917063129476426444264834537310230629029335746943323160026754207937755577531930585001931023418669496754235560444236932313569793933509861499289435229202880940469067240794286547823446527849802428841203275999794487964594866901918176358844349487231179997627305635998194978738035879055574886869523306735779736736210692071676956358177545809008078886072021578113901536728810732765023902261873675733214299218565036474627147647240936586775035782618426586793998378902307044614589844821297253714970507238576195401139948095694136819466275417342954693303807963117526999470937133554653413739045131491588634430448088617911031699793678835884083287464440793799881074774541878048169579753763721375782261881405806936730254546329640616027473046189052826257090075349971101749923876575981619903614094811276404035204950380090131592772274722789474480434464294640411681161085112504544745418467085777177763173965968849466488275730976474803495334366203160077783782460239921026994086677539400979418307239885944860422843117609469758903827010144005007818943011580295845349491720170326858964776402945622634785984753975971303834178693589301219216023907324045234408008554555544831614331432036690240107644229725145223633354533831583617440307594697555242955252410819699335921491301598408407393665658653274160416237192521112439710531129950448773173608638557401041615414091928157345671240694898614654821899415448340016581484752188511878699564498006625412870660689008799691365029870963605921313675411180287689797243775928427969734162613574587895561284223147397302591020648995765692168208017553528728096281493118256839802835851128015250462884599505988269107355926194200762894406469774552570922195101679507920457902650267043518656621764164378331379539356407826096677466337017314906531658088239448974326231445894180913595915822988554964187089240827679965899754258974368407147626850303281600632561626289556143599836952952633192811429432502682116821045722237426212539951176551547953514148042667726974691617761603801089731592242180871402901990487952284345169679054776746174210212124087030818516593751635439332333246131194165308661577236317156442307158837992722252887053753239791175116085740329789149790684317173463538658253370125557137948242109099260761999412016923557043110114918755465826537759224889628307483568246039304096509129799858853153234460375380174413192046682845947267733923404192012349911846452312333036199278150162899513452598506288508002289534953804623241535913601034406789789698338814090486178094432892530505818232120395567987171621578880364988576990538471506107707970170838313317956232115196429705508715408979280328813127790427078280662477747384417031547831670777876494086371521077193638788173809927277477812353029122483238227641997616813822688557192160147520392164039028756657776618079215147583266506223241727687383195051730260811236021130703685062516854725630795588271289160871242795394604469003769696511341985208435149080832538881366859034405447084043681606529507947047145823050794589091712590808077961890779509857298792514615470267923544954244465199844955791477971145305407861898887385545723183992365841679725040032042064582022172847277115528034300331078535871641103237699071711040413238912266528657478185703123741141549018703650099907934871460153666827161268433745425799068369424984992464923765828332626857846070456327137065443970280087398290797381878659123126038043807299739635299765728454345674738492396006509402395714846278981654595624007128216332295001078520813061122133846000749090421043422125636693105328386501021861413656057796384845192084331320842735853782788550475374372844360115933907757682487554038520873830044007018254713507145190151174756414185765055966936281265833340359395990084516044854771283760911650419683051555644526009468166151684538668287826677762517661291808071817202554997569738848681547299575613811820031789905521716688014818656916727555797796646046766706492813100486704393231284900927166231770247289486579893536586579781154036985739815565098880714013550275438939245311565804446526558711089055670883877161622518132792326442377165039477253179859336810973516714464264979453281257157114754826028130586220575079878922072660556359786891611072669641842407035395740382976134589557030943094861780326662556478340040910890248767617828773642728809724237342328436797685372302925538350234599590645423751759933696705476133801469014189251271829999053469223478202270925762441895067190544348251743204771427865074563325697905363788868507557065344443981472501253201304865926648520904295718491796618789980921012280414596537958458147943132496761534070135017423858816658776557804941112214435935038621577321545443020797928865949336718741809474411757081011446564227230669102001420952556233949189180217439507964730513996418032360863209147268780822967227392583862524483731393851792135936017772262207204280140573422064514347390019909942326688829642434093223030827839494696339852974958745895435225878452752152441819425469052482064840104235141437999332135633726557099513986872725492539704677104918000358222262469685719890950548316085219345402038521208354133937551279306221030864567778427610305064010177074233723157466608018018826587709432109398134992255324674827916593176502472901482338165943010797913944555014045750657064939963774857355878066128001724737502105272757725049431399535191058767459215361696298517054606675242315193109697457073973571286147079529773421625474988584416871596477976005091282037089660926468165372859994375003937140795548413948029931941747134068449095527590244195660159345458880966637811732378725406873695140002207751334372200847508977487684892116456642036430928038811104798181434778412543498256039927808486826054323660023018181592274624102885250570400059059955895440190705044311828462930789675868782743138378787857714117249405326085464877533591882617471231661850820898979443972266838080293184944708998784265116795576972280331622033867897049166264732259235524129341111967891569132346375483136625056201417539672409808164066024896766149062897728569234573990971230092472649567299751402611631774616207979065185501162847520333883805479851180847078424305088155061079781513964442108694857926366596162745399722339446024602988272973562101810327751791844262082253155354192656833885276828902670798878510682549521801465398861011465397436965854150761163097722011687567518683774780229622943985796168683772339314796757077121247848204332513982324162169365589715055024700922677449173220010326111629798349017371071945297892930543923712395647073763425642210340541998214542858033415195351821682855657951558623641328003517271169666747388574948851005085069592711814397524153757602679369457644013450073112584805078772680149400219598423680232837447415828376713043970614639337337185586116448656519536658678741815698017224584318678249636577382205831564717304764938399364255062954994325134256478045182512020557388499456365553516032502558500228089477474735736473751600325581638282010482661710257291347939304086058267623370799046628731755492316023472286812765626946587533734209484299329290920730605011181956510441480860805789535286699503095077618077620655525934123814867292673858826324628984248527782644353859366775655486756991157663715737566571386473140541612466869648621018116405322812299000416239519909241218507568437852162385056984127593936565215912885321513526739279378097443386766681852640547524873061802169783066459569395499034932241404713722527670378602555242635516991249502447260192795778527389796367001423326590866700431518820531050212475508937350140614594227341430655627236950302607882702006427995504997631453017053906469317671198315826909128248019633792028857596488788791544293264516381007011940912835655264632243153892595566934893867579101913117673409830495966143322297512636424368329454840004233165365414037720585787112554914969278684316541714042781423692824891136571898371812809792728799004278504137460031567182232108673926907430466105066968864780241000991664940077927309469738641065939369724397674695856444640251962114257919253938906432471292690344142275019850769060380768100056735896795465684959392179259866368990541124224082887363258291648451049271773504587810725005136079306659328370704411875929889301430146239034706787246640112687610594345079245821290264972268953276378971762226524313245052725077458715794330407181471801616075390920854773243129873468479553160281301536328462553090753342808754718351279914281149827940039586422226445708248308671086827535782758840823893833140281188568124494038268521035399690226488870007234105700380300633927284874504209242167129742972088428619403034763245520082767430911421024830076437541012493835088222886719510924000527966903159474684208209883726041872912037487464948289156786309339280374172879180639107984576315262883166295563368373823404180728525167601107365905623474018997788844853523401698149822664963573798236710921601967316985158548536224540671828192367883878852141972959887704111826678361057067025618618511817007456018906034342293045471399618293836651159096595212967896475872306247874966867529559564604951072177034917490270841013791867865450060289245899860435678152775617684878941658075106045149000024335303348807569614325198673968417075054909877602736496208542595703825430064163789675295116947608743212791841693537276240219430773545396716606860880952215297980695894647312413741938063541822093379150924787318084295873590690049205399873076995712123108160082799276794473841855553871325823875748506250617314465948942908951072030539195681895232674415055863854713176357568473204616208651428917022474552643354198734910802671920773002815903655511860769635018648655458033007747277940415022307359634551610985832203904599840247372124624418972926201582947990072156012205104539630929981763873129835730013724578646389700585986425296291488204689109471789380450861503104490304251024867066354777969666242150124448817090456996380451751221137978894434759868908993240023189316120769197720681852027788985996204479257779052461773956136277921531938812698857613315389047729785306562611505023759958110785944775225484071056401266755199460911171279869937706448138959459442360964763434401859629634627422834239857650682866614125041029245524100430390364608925861988057712728808292517333955378163275665512384253487796794121434077862037917696921491414365527799825292700077481796582484530486589057653655254371884494660633920306200644327996384405586018766653602721623143719275502551321843988328072542929961729434087735383981245856611473292408847775881258815868842531567370615077877331958572689185328623557668735663058331688339118432166500964038526656625956467127864580654728203261857872705293641547984121205822670013153699642585422631189576866602714696154651342254209850098771026509171519904863066053938776468037559698208636360279829232185796275188089130990053819270447101261847414572375886938686764833193106409596730879438431410619286650523615712766504653426469346200426416831822359018156477525252281658891089661194585371205589083543131067376654055796062803959689367326375129424701380353511781500306088413234429381785867915901513932940831050685280021192890588507132453584732863562799903299828709991286864035098497297886386803607662331558929462481420179625147602860950380428845219039809440832008603269274698957208251097985253028655500330861867050189432668825781940853627698983023186198770927943521607616301692692033569823285953974573443271213884486110012829188254066301791040873690393407543302783274816674135357524691427590257341762682532997208340741793630451762009705044200286960125416283169484298230946563807559167673147870079458789678851920761482143106861827274368048752079047220933516512068248269779509508434348975410280891321005368625525823438236014100174921494355945304980670026315414148975220470906761359486816143760382257602838849422576962081800079983395558017873697568799085828745003288648294301550006985220000932270030427679571159011614365560986776344786689383014547728135850254051233275229472444183794778301804752138712722833691813561087884157064487705367554038128927314907576851856738226140244008644696352535266899962422843639487661178428375000926866460086360433347299949871468697872476869691782644334963262533419389500890840948201651970746855951352742170893986921193233869325791322244142738893448930520380329738486384226061985961156633470550108237293333739781762340837622471031458606831601481481654716694694080435088470448536546361489982378342499898251170590645571998561047254452952972460362861658007653491525061076318392653015128323270122723637713235800596902995416796190449579620935170162938765409096105834691491321893874302445291879562902265876902965809116443019909769193470452790637633592082126687967073534053195163329084135813693496049007265574754484583105405250708393544817978555910804163868695748842836561391053955846120789066297378313038103070013080564632227041708998639090726039275057508634012207475378905565720572632915294413672838959760908248178222189908767711114913873206412408165178444300666305432245602049089316358747305909588416695667316744896841998534177929022405536115150616267988613686752242077884475757809045657095970981690638471083812655035651475798359283307944381605593156132712792435555415521398837659872780482394977389509606937521004896169690275941456880943071652870894744405903382276551144127029438362965129722826109166178010217456394717447618990459157541415224788149830716708562390129089880661926626225949976613217448974322889127683693694374580760166629993667427998276053361306728873826062321343252433426487941843180620596537041797611471434660514013535963070763683946808983147432245880438522739544747284190926080980060784453650818525467526004770732401883900298535455647149445534929218263045896842054526088092285088934790402975233090390648940557390455024343225479286319477583133498956486225568103128213711315342377293962940141852634490168415126539582333242678466671275205445312707005757421551110881579469790327186477361790168832800810909980856251096477153177275362514304079808453741458679389587152794823341885708878952193146669886311683830918492439751843514341412897987832741939577973685710875558667479840789384786312735419468082798185529904838529093749926882341179147840397289946421045780071556071354887892402538030643519885217895207627160384774541518314098120180176669049898163820128159920954413568617752020930014820719365062355237886631802760917069824715408525765898320031484920642410327615500075480712325657123287196514064159664794137082275412472322711878552606120221378597584728012860828792646378527487598308490020231192596038442888377957373528038691728200026984213482004310471693926628556626186155063084082906545768438598647505984844958527725072228917479827652698490655883609897240732296949103678600547625064125180926106010016225497403327883932228225415760080964302759450669835612522845648686551478439623026130891252330038446364663054319824748990224250348473969014689130009015099239183166507202044107582484160751058605925544631555308869719815364728974867839688078082700592077985584484157310040016453937605320245451320931322895055985295199277835792451981393791675850824587022088960542938631371896619832767485395192810841033385459098096854493288646714368957916466372525849438846211365411974160326402856285467172212736884664596985693527650691529408851114808829571142917831664882989098708855417383697895397447831170921433327967266219722845546125710394694835996748781147765060579283620817547281697390690580524291786283508531682908808542793025950433940149596894182681417555854204300200760190581503128722213940154126468243806349396086314363249310154675032678158465627816841456747137750124485795272597337021717265995822911406717757324103821877965002524865546886413209062091774744367376572661102047307483500644540091929584610180146274986952635949170386613757841919878687743985714737179845465121763758459436656983849208472576997815562339635278268803100521328180518205600038024935253040076688053069762546858637780970438686901993095552019378096353185600439364785473534934948400374354109599649047155966277632533160182767675943253342432293778843456570034432487354931440963520615462944526417744512091275866369395547900397433255990685700223402170401156215030103883858514731470502933119160933222816574875381024459473741247952256963666158596558633113634664274777955683729219161717176813814057067268503895062952085033444392404170991310773110793198644919297842323024795652767978679988115136116611040849990539999292943707215703313904992720100970792981219487271631891138216995085966614278431351686583540672613142741170249855984282161705811378086502872888684993973072151119955367615869047247883501272466879626871564324295402606289006910967401703171106116125328594558131714030763429873513652206135831133789819900982635341751863261233928714032185440746103384606914008167051815971824023695276418723972852583674026539881082274076236373256267381668264624950518364619289878047721516283841114655146720676848854147824096801703465326192007886870102572808539273590511079563522361218020204734286266691139556942142504700589792465344970729759258525791520022901176714805539159310887017812796513823739365214329816959069393671766558058069844400107082129705551244840658420147641068459214323723995242047315845998553431879893616658218504330990640037887802613412408083289475465656636896306195792821963182560010043595917469458882527169710797686506807135437573544145468723842109689301185063344067792363542796384300952023946323554513391215895274506284591889403188147678017558274305332752207447138151808550278372200058486065359795380442388711616543884417717105520101341034232128329853612312725357391454771650883450278332095997592399781477345029905750788157223676496249646131746900515517870635704049218973916127843809362587440857342417721766767575479918586368295833945146128515283133400430051729916259931932553816469207528784329620928618495766555995782529185592338861021824424255059955355855941007055806192290982905278803194443820602609628303806506288743545764386569328250273257972849903486328640324852237660071203250070613915531655992620359119906878035748346105467596368451042863738610652108145772947782151466276940430127467083062456885132737957316764561218539830300938855360547685206675005063507249628769883548570021489263213368581717128667962613261776876042280925053417947403799966040832012400643340109634601665342611600039675970385500403596082175251375727269496191121666408429262199389963734423528192017183204437115518930402959615688816329157014753573216723822516672362715356397535258558712479584023184856296468947301458177860865239634856785386104754740174523328947014005230594644702010340720885492379738751547614539447642482976381898419705286243395636441593766813770388267419822580207600897521407767542282581673735808471347650922194597245236224031404399730660079442937359972816468792409169213494676974783077518134361391759841451563944576663072903534284861216289516913911611556933430984326718178679033913081421413089659364525816277527769970653661482529301872818581180006307301301906408734904037283366216835710651881960441033864340902695153381926441251993079939559061089399464014280045291118123872197270818246470170989989791325531144407750158103660124932833527026899688575376442025781025960109458404336261687818558017379341950578204603409339412008930805974115099083776074925541611624812443681606290965747098915271742581137089635233719934065886357138986200919491482893469711017042371633586009647503237160116990317135821035422146665771804912634002387547195943757091501512863058644472643873620848787702280982853936149346514624849171903449086834673904123085427726557585639350011988452655740229204560538685853042384733510790107489781018591319754112755828845203549069547595603081482628948069052960519652059406542965514799322488410508335335182959891666563942586237607704396151436247074500822491584230830691074337663152913873887263834718637696581715742983375410441891136336360083077518446079512610626969590332245906109580732771900907380343130816509174488003345146067775698944061779416855323282571027111244097976048969430439837975634933273769774424886417884558833440656111578749280446339682120667947991745154869383497456468105797378743265256826381002666021578202995575431774955497179226744135806600307061454727415928103029499855625490147217091662160266203905079886420256275400382195054083396472437921607102822583454235807662078911330095682404966130766033965500384213336059243933450646571375664177767352565305084478478863667283066267922685458989498879172208134134034506405977062303535491890253141359545008810973303797698397785446929477600935164048136964193803831197549987290385296202608372608379429529160057255896317634106056861737493614598562154700545269771132358001798706555342260724794305100058839758281835319192860020965197749758208891742823582441210814562854335996764872266747948582217725739692782705282266625875447563078745804136656669487777294477615708456861341259325756325750366356104675554482532920930618174232016490965471979551988821288259492212262194096745828709942941336990778805793605206319336240848321755813739026008480862328191879002403184450127608447461841728744007456402300864588030977093782135335450226995936010663129887415476596816170374890397419484172984599847021072177180424132508994802381084381018375993521607319556192511536661327887390181696128374960055858408635410505214624781657744124302369559417648432894753379696327756341031542058051643884161835673027708398712132523384674597014107792168664963651660333718143823904491007979460811226212078740352168671614839754092210784542880442118472659556823603089112593796371772547617139100161118438568236813863090636957161245944695503419591528480520492371563770986933012454763800627007566230690901051499505885930074685546423558424204299317998497820414951103284699469350505540958654440210904639221357922741853675545149852829446003709952274773690827009937379657718373913801726424401024207865020861774808367838807314224873604805120181974642156451130536996735136561762349894170716102258403543285124081560536673759325949538001513234598502469780428088946336314546704495054220498280943403364499987476769575371913828979986176459005696836430176609714420525058253604536265840750773029392151992920545825974768932488824882303250580282348773729384419021547853487714086785588083890763875533558513903739351887720066527479553191667961427719772390671087487774729289411588553409680822125153231499002950249899101890943609175921584136849685246451775560383286242213285272690481382693691284074748768004545052700752181155706347338397913934203276868983010565614732045354507245765319358928465887019704193280769529421621562441855925676467723557876779252221771047110266583965270675427892610296368713539397387815203157070401340394773017440054937389885241574925963198660927026361899742920255560290016879009252134605336287673836709728086006843871695533604178634725718300457572177230175634573671130059772807663564876452602567839170984813103974269998987576325273944509072551934196689940125995690083577932738718250184179978762583408130897450643090722243207684398748027482570911469275813839846292010345416649290511387516808052967464602883618395738275817813515008639482171585429497450559180067102806941282753501880681936152494272730610450993752818117916770333699924980312673439896317592593116513763752450805551982401659721230578764277591222931680908312211917300076239575028560717588656090945125365286069108767800102696416539508439475604983905688674077127683700728646058466964623692969721716677966035350856972316216934911244576960203406476493301708004266755715073493182570134093587587253280018563803346812692640622322137866093817247328301745178550854522523923432457324537327402931419354154976112812957081598163314463245644938837089769579586311243293523422467743171324762763908104767718982614186686875085657085651158350219420954993134742441545409360794290233218970039182240606016521046607243658042752645625940630159264397452240137999077881203334488507752635479165411245088650672948320528476333824607787308986638855546230306328486943632007755548727523950890495124797971807800551891452419772883801059088576448804761022136498811962434542357952925155777740389519472938155987423349066979408767514791495829011899469707156640706967611220316015347584702800700681524688508437542950822334926068518403181140047757324698732504934056838546724735172550076096751017247530305784222081152960974589221461167737957556350597330563626266850824957662022994172198904906679845302091439761240378517928205228011610757759370130933468132632853921491365990885018009103667221835108910006164280388024117677604167568979004847425181944661354101111837257489464789173344948390663604890616636919127179790277640974341760173145529807332816961823708229619418433655542701044956026290843414594612541713184483131244220562144318110365296141068208824160791794713537300120652168498809515679956296267452389098896742795129505250237692172541529425110425072154428187341398242326097027736740990217913945438349920680480282768082345268266351504697925025055292235739581048187416250745919334396607926737197594176558640714629927176947931274700073550959515380863659898303903796341259911055097134990218032415719425653849742706258917086657017115144782828911755222180925886697868709752423230575185281394787434091771951330587770373836857151892725304743087396434734627957880932762702459900845968995617815426027120665590296695339827434291903312545988661029477882267817954874557768230404683571807010424387085595653357502509734944625108907071193045098823325136582396195133277227368780825697790696995935599666788947060164670302013987562798252143081451002269075419522147632781222462089374661820390914425121963444850394058550791080245732669882857594535709967906080090606372909734582791976261369286724981652782577931132777987825706151425424252130974611649853369736545780241498060323094100411967736194347379073651592388811667208395310372679752879209573932306134849518472811262072926102397496688301512700326581356979440083184942971144299681067925056598391357871193896977305302467016460431338269188637482723402177581595364065055041879895485894322773651661439924930986982053041982380661749412244135425813350198631467197993423609318662217441322316419450716101659728921914863731051211610943599853238010474190554145656982110413147445901596183302002951158612801420118460274434587051280980831952586879405862544012428727248075347591565552198457408642713785251660863157950826744495380892180605183625539107979368791491368638994488777143139648032267248155480802444003348711619010539455115121276090119461228104368446312096666848052691391886374534212066137490137951151368632066363343268555205762836301204997860296801162478450324487115284775940952130067440025477461405801405110761778129672867841949590424326108706394709799819364847258405753896106046404205116478751317771560576604716026103200690099131178804844024671487501921100982584653613682091629836555870112458742104829132060922505535733257432913186062031590312208360308390852919391878488250121207505967156424323560670197579952286733565438683309125567001937649971251263794756074698135682559050199177613742797309306730957989404091694248793279229352147078601430904767528592775855741921122277626398268428699374816513086504511914490383275841003440010803788913681152421310929738958359825829022866914136903472526477584873701955187373083358014262683426513408991279902818202168583005494680695049145665098378179803247468806508421563223479140590349867483783478694143967004497815289820427747298264203786948981003857688674137568654997235943161282780157448130950752592868665044432214674657726416583795207963959712269119669069992333300397618856201777663082734541639902564402569019676713406369120412989444171303779439978511791204668645935088342188480205454773420002141070853844919559661893334732318285799358998068871602141943135211164074399456260876704742321722736881317204717557178955383789500743064443603919698984917065029950563808698713609633970732906330031329516506254771349273517524532008008789534915858143996659656722558496229881482516794376398727019477446000603856316276344161484904821670603182128025205703733210763021886447659485939328725048629944277072475142289346937585534773248480807177421340360537539710563407079512343256867075070317715698969556179868199506698741148779168211669926981865659087359846928060869106178903578710889265809873390591477295594053069978758227046717493791324417645089128649563056145515952061579758828312223336232176436435163632193033498780316278979901202373115258584201534481679974435117819406731138929533093959301639915091155356341381994068762092771391382329627187322185595447485420362642799210040776771879677970706192410175625727617712258533391628853644124462534111201882021015111177222266227892529489920469139360855260746429175528943403524451625554076959400965719835124045837699900361792659698851535557742580980426803856302668870073892899726177198018099452528571745478980184850719915725260199551226758869153580752513236106259070060711620704717236226312084798143880315138409735853327068063901375227129505914437223661984409571727636546370500279551643521611657193588300009322156478122032836001053496941232435087890297877143519554752218092500014117273473548730515830423503506447512254856197419857884120647019145032230642131564152428929754250458317206614297163375732124104331842341418558138113093981346418822406112945712966362144215444047907064863032709846473164926210743914986772188176589668674161492536284568819937387992074286168414035777905914439746077133377195891407963465275087902911340312785099670381810911776646168688460250736952344194127059232926847464804629266067691556140444805332165560686230683100392373669869139864526109434028008551108009816001832937481610928438346764863438103119497792388852736645524089577279758339340527694054651945097448364666464372563828841289209907594770323023644329368953220300227470411854989087200727305846873008280245154014691428894239678298955360171385701306887571740637843233820780274818498516294482445789199070230728524182926704943319989173989914459630646684460403008200909988153347701562370224584835657806442308047127860880961925868369670218448166437047191246968320873173882508753069279602923165519631836014991114194677689000116983884292371831128393118421969623818230219049759864954585616367168359613091538961309483516991198732168719844896851075273123500398556837705813095019018797379725437542439364530561250873404663676511788363696187198490492821900600149524664169066572563872990539070616535870817910987899969356923787244629466017064559656848457289244479256587678972643614233182915321531535710784377469115269448049433784686891132698770655973328218355979275566468525333180289151456536692712391438366842252074115343834044770456622400670883653729812244451009401697514984438479079707575225957670826715658193120189831771692105678398137265640223147101546659341292910934476856401792292626853523136142366825884710566319325731489585551305095054401625064289037049611201058736817703837325454428611332027305342125777464999842749478740650647762784427095178851957764282911039060310029620908778611993198456907527872565608392325322956574361925645855779062675168209137757868056016106059617128384212057477391844125388542420267471365831712675784142197964619756477632868404457548373276339773762127354441594301074448844750905907067279764564603448916143322816293842074427821782771720481084590636526774574222416307332213839170875621638946380930509349344640566539871132727907555314705933897130447687321254143008933419356497477158905409988356535567386241702921752264212249230868781034914926429798610613306866800196423460236928011038954265146747192869772605029284288761925875550260009852300629852249921478443064651211365394503879106885568983636489721750513433544642008691040205592356018795360142864088866547758585567572494506050833431342081177279078437833379341194685041679315534600644890858704762683507042312930827958740388353789710309912744899446710898520657341417430469836588436525837340394679241999362113377926526587788560179651969860288407635618527584568451166264064084843625492646169271253845965305505290607322847288923960543600748451326421940227255834883373795452978325790780623725716594162168401657077437503053697790724850276538295428587819816923198883229883815850950568481583601976954590813297165020771337790892655646635052714337779857777042482799536283652050150714961043100732443074091722447235200637820698863655517163062714935612799572420604896917704732869207866860852940777436050436166441576067497229797171369847327626704300385315530585727049822206164003496159888534669364010622440291881009750046327935778216150149905061179299209751145362022520033941106358287968744694419941961420970404769551167810599713956259335717870121612219805047771197355083382486475339104521625650359908030549452077913902599048415253602869724770074517372082782202220055496591528223811740601182759654602559588538692909364107278931631686520538366644915686359788505916511578363234062842849491972549077211034802684567928978179156046846671677310996682218564227191198401277028457782914452663624482364124400983707133946624922607957115932280020411817345817963461735049035746459955365458325058823989922631558665777157687152025778214628770576263837518740291642536025640833133172839823582188850774803533365275084595677242498629653967136802403870867427453830699625709097606395817870518614088622481362874531912964718564094742938173436550982741064812363279176214180210884485316046110583772716232030920158765481387334671041190068239251797646756681352293772113126694352763843863446100696533618698540159645405106627886117684895878584757032193598966119901382658586215555605121140088971308854753729391428226879833687906024820085201057515578449315368867282736165623624033207922449517686763012920935179173625500182621224929005726153018116387048101245768163345733068556657032226118241674674201101144294495581384450088924460437701039307149335003130055775584163090265899978332524757902805672394493176784383871885370477672064175060752356142431421633140372145405837094479883155937676172519866012420851221795920807583761940219843906361139173948096815729961998562969364047333045529693526167321466764676942654391501226717465270781370256813469073615184357860821865406395919236938544508773016255265650768625133420126181984798534610845650992654480586266441315305463972696094831546730071144816110734956368460923123088749945973764936090788345154307817547308065684430704050346007740651563144251391889507283142154629063765658516901198647679130399502971805483453483015213835562543329327120826285421717674798104669363706734296333425915887052651384286549701909640724757336539852356519963115166197678334790903250908651308734618482730206935137839596595542300795942031424734751808690091539861445867841210283094730949339079469909631778406637403594106785019909778595770973484663820490263197473833951722764448445503210018241339360988687708377298480086163741194332878407009142448087514971885471180107923814649311980392287448362434880298009779756294968214526810768810669360213194341785522315598651084867900208278592963920144966723280764313681278609466014695898267429576180822353459195842867169576235982137071468621719251499222168703772486765844741080874606377538372849225329058260373402699203424685057129247875090480962685991088798878104231884677213207933208196695240190394825380052123142682271927443774131651581891938337846296568238359267690163387488159670104505101208828475163794104774684418152353475771607546568084095782171234142630156874738607097807844376244463828039255864453603839680082004343336676964209158931313594852326562764702531108993833956848399803562757238208865838275344080337768321813114459296440310376759322205198178263800245859976861324703537827848689685099635204552203921981074972611585467966092832660817722734935007298365887144631607261462831197389665647408486204008320062687861348257961530110360030468651490970611474312541407382760578973767469016732254704738811898542602149758992616461083575070637424306039713989812534064168154948000604398568923849903677113944290946330399797994589713399125932794828973568094575112532210395104400180080335639624941444620944969713734542793051285806365807003925209490410880271394872965150770723990606581831081970475000587315260129041247473980479807973828872888376562664027120469650669220080491624667736097048239916327237597737065739893053912959363947738121031744094051864224918764846843221623849145162629933611594776328269226331323343478882051316451253882000254554398393641297259901000690260153036318976908011873986764609864431573923734227012716853038181820555211907131163703992820936920035233770110403622483717502693498812649663241969111618119794757655182548401399698437678720957832755298238417453426490394911775226036912233403654067381440017127788743729934658657108183391517834436877122106458811158921661069118289606710997506786437049674794992564623002617928973501336866164671400310603690011549380140025507934039366806666629958577327750753374333978903639602398472118607679685930657359388053739940095686720604496863244772251714188083724842626435779771060670889284934189042407471870785073243778803088664603278870997148111686519862130201847715517632323334509068261895628243360935429340597918303505009764370601911380715789188977227461194515309721441176755873633138813992082400167881807163984682559487625307072079445354875863274455329435821086643120768135043377404463899748087746698838772757702187890462558091041061379180676532394431721792735888361636287311918300818898380500360377636998236988566411182354183547597403486894964832062235547040412001181674661086422672644309487373310385956377090351871664204831842219583057342483438539699388146127791889952990784370459627745606180406773414868307682192359999314304504733816675814309531079016868513860358215955933187402730742994774737879275459993240122314941200746149239510450278226872450610817267511484722280053085321136903432497627235812018819855009603792103323225063377450773185696824972830655124955486917161527466617727530133554257592726793660476503023203773531979860726740217829095685885656173727470687825881728000024415061009444524684493065311988918970575682736400163641492876526393792954840062197807348476834918307106241411775023929725279131326047320049394746628717988281638507956526039527686073492969103124778770053746143148892296940316971947649599016875593775855815897353666242396788984125409506660321017951359974716092915304289311613037915739171404204374793583870341761589249347673350103269527502188855887031962360492829443133313903606646635279460263908238306850914205725029911512316046166488687706474026505319016053281696501752805852863656651435280494486821769215858263559899297683945837616305888813986939499823342789199072945295535643410390318022157403038472642414178166879792273548376166698019261347688898441190049894757932340918018876483403103010941073844542363685261644156345693811697318761594764124957672906355624680512199872378844103627187704310391664848349729374339384354636908222841134024832277226982817828715489666227606193298924343932705064929529968641346023677306980579335203203923901932080773210417696341256841139802245513214330631732467513896355043854162492618059260326171628451296874811535404739915705888044930401402558688473719875046991301083799074713132075843509832808528146918744178054339429360917505635563485853426892081997874280245399980726620478198470718686946120957409616384766979148266082470454354215275234426185752239026243642252472085617037188150638220049982117484321213842819102512477640376621284486556240899283225425985601754463940294744707719220751849865542475601623652429280527413221674491660290025631717874100673837026741190975506891582453007981494407148584694515755665338653176555889659226934509845438354324725385363316039255272186587409923157497397348922725994136180537420415809400321274235777989863237109719896371771924850812672971008377197758869181607219962740016205799918896990885445163564518070181770525957797215215220963161123739738727376415838351323966178615551788702972337853974679693112484951159756863661037999549104097426589047711695070560644486903443924467660893749016943085982235735048389171319190726134186469951051296965579831486170654537353185551123411242059507008316394220993686342462385633872676075025549396912828414750690873072347588298354162121477390496388023237579911586036790303843162185219268780173333726820734393668000276710104046529125069758688847779583258370591101798325159753465522358383682925862130116573388416994635849978154293730071983230856206715536418178993660121304858342419560558139081318625442717846429624056598894606970270345023147943606275604404324919503189523344216809317794999101232470273488381211399496181303924035473275529382778684716509879830524335336745060457289170638347708608709758896247084960896168375413891999116408501203026428044226487609638837611162144326103756569050571477353768480655654032917594432459280365259519538175092922162234417877640311145453482266157355891761056239880733616719398773917398957747419090155541383693311024473760504974721021899218890113465255969483827864500623893545286683785382664884375807741222357039307659137354424497197982018201306909886705003298904447318991938050010592131657080967925524229041509122916929702909716179568214875444929001023467831185408284281484331671050841551985277072870176323794000114961892262442271085401522342177664835923478840137846059946609279290482996719357735967689005222607535730319303439970419699612031921409181342805774307666553420322612943599445130568816503594407167083579924281104778329379173431158077373828200798002713565674667538541709441844765957659313357413740827770955119278692851252301189203837156816845470184388727660460556061753906067464847469480060879942468041500261395230864877744794852978553039603228288898690157957886171255083532242168093144067466257764859732987081096249131843464329410703176343433607209188493363417377536628889408912494387111127540679433421456720603629408920661189001892741433587567501475435833343643998481330017941298948387506586296803126369202429139382069910517777855129153131749591782096716235946900089573394686916656161919824612048459277217677352837612053371968757294834939472238422685382230770190376474331440696869136913345489607545640397792293119629792899504028522070592413398809978648099422065923403544312121415427127448925677301347573462017607844630218515023177709628843666807191345811202113120930466231011213382967505401095908345567292493565866601251483512304443187226770714528151932154615154207555741987455069398635148920487642881667546959402111734979357912405392765994118526802731018804414904419426593102684454071535701057713458164636580425183437934938381806106489274166530663765810463643886793128683042602465168007318664475977039284379298172192296605855949915816470054642889540983827942748167236702269392199861762004730330253432679634266099329326985276767525665352600766635461190147059922929236713318963931197223136032534688438997317474715920919941610872908576422467760081806996726188118542255220239947311948145989667616519827245604088845257128214245300081951176353538372466198996893232088588887921008008895373029665159549392115221010598850212820493230856129242585458998150132543637470563672268243317841119675958644090816373899558426822994965278116989012367950164006693290582446612736578796462253027541499145113309051733820368587765478389989371277607451155748668992330001764505957337542645629326487087641836463092501790225027981504534836217042127207151439905993742834050727960743511623743261496523231794016542253028834860728123178271278814464576728586036538789824944472280345612500538900062911282222608880527782272353656745944130976114162709033046019254872115296061626989609503116125954906369548967614380023892322091976509139906355299629929158943071339603345022307980660439717328436422099228272598268680555995465512532840051028585304987303345583547506989064855754064510597827340848575303935271539700527956602147100154011706131688494253726534997095421844411847979708308439210763427956387590342297958220270610534999023605533811888458638929698657027134626733345589504110378997970537472259579577102391601486085203259814411445882361094877989464216950022086111082691871377557875038148033379153070669408891629756051965595730569446366300051388276056347404024716169197931614017811719702824642834324832002072750923785426623598215780364602311909116388758644698101567877082934186570044194653817827777230349760139483626011715049140206942630936734532328306608021757993032925946157315152553081855927915202148397297022652429604485349815281573914180947022794192816909485707312102562729316685319259541617812834412941982521857699591374681308338574495462497621040659384104544939981876684899903984229625103936132263848934431573112545823020342689437761114270883277895938675934404959511021950185480692127008117859840810600948095963115520119162343622153910752295772902176460347274240766671600962763469801265945858212700459520928384122254963432602765539029811121842989827525617868721512017358011745215447501166939982569712526845456870378255284263558137730220014951057741488433400989390887337728269561069224229927327321543203808428457360381004196256704266289619494420496611568169414676192239568925443106959916174475186618291868741656255001300424968486872594289589992898659283595057204423163140163871086843024479683014731695636484708699311431677543199290967347431274252840242010190477281989812180586224419919685584939579002203609650935923416005226622555214218796368952747273670956806991280656273652033419649798640164516273528280047333108857015652108842635445251970011580146540409279645795764015466701947154283428189759906294386960544708989688656394094524159278281526494106827974786940621202687233074358971026227937909946196052466285826048882537434989312562676891878382001979245061167411149527632746858498674466147264076235740187466088504243446617167899874652338276562516999171561568549582808824680636832031943180172101164389192273903752725779578125970336828736927585465011475430708975834243243316570347886307073124050429929358958179613336346881004663291860941978966530846566485094009410578722199885025703576652743747491067087096788899237224198227249085015573106040462893573796258301371887187404175680181841958629734397350937825500954691345286877737230347862380485613081673915363001497021199740601178677316342949191256796322614197410290258775286292419970457329264398110746396533080636457583959074537501970506442021336041463029682099725218569213692810071715441312627888080198554824364898270427305509740077393294524041057362481040562781030876090400113013493511947054653242381046795772427567282506192167336278623905338409288505666609674888046865415477139496002991062132598388085132414352815235021418794442919880427287424915665691443921238998152134012835316427366978744386400323293337017520421770633242029471177853956333107212641438885764386885549544338313521378294641711490388467265239898557205394067876139039333671392818987010151107730430641363791960365844898837469266824230470375840180537181542768697293987963662148218125946567965230964967821780946257500623742942239767987730349401966565202212961262994285480973662657031425463957980007533268690959166348429375699218763005372530142129782080161445586886742782273564007250951930104820216804376110984862120555720959337275998588216884812310177650529160371469409983328297368715100190952783952651069671379730356516876283981787270835018582195148325170742034407643094790134019857621289932379042926271866324209215061358058904693052215754539393883913850158441844482258767610841600713687148282880380994678436509976352708831684969146664550994994591768748782966230341685808790823589879411416020447477961274514082471377568194221192914589406623719046111537886806441282079982183759111396024097686490394779004217835385246829020235535764731836301622971587294864580196817960549295996077595268847665799080568386405979916069570970328966607048375271260592159756764833420545341637638405725181796108382066703165341049860940470315496390054591571752780254870762254575577451079422575086148839640982855500278689484851384202533460557063365638222308323269529844624549985911884542487985726347201560758398082077272674643804249674096279724372705319390177145206743006051818149221554309657970914671282946389376891656503322259197186168492068845308259081800349188797501653377617758958189893211766213389604877951087945549804795686409745763781569996470680105598153875681449341547450244746668780179571580003185647577136684750209058629095958057367075092239952469171460129613197048567114569092486070591525143248436573601137169152565603385875573675253722916744097122795494522537304105290825837835945150124236306385219808194148690625109608727403178834724419899752514204536937027078451547232176980558323311437303169184787275809995241929354313072412983146579238315646082063800074096365997481608475689240143803637070121121203364515126448637510229325097806807844446621847751550268781593453811269196955607138526423310825608514913610010561027269758611959754082205995287955748693756916603354658419481830432770529498104059919820844463921428914115678824100048408637766703699208740811122756012534244728973433120927193749406500173310506914875142168822220038240351661138512540557284800362656746603573824708098903455552341313283932795022229708547994596450624072794542793042692349301634447462560083379524416153036007868313948512532270657536585845815080141048944604787520343415429206124037829594900469518515284206264914056628783061956170780123672958461764129075899393233953713938082975124596273221529647646177854625592706168176339681549997460631214459413713058935037477218901352772850894135345459615384288566446529951618469671534062874068982822210865138872926510325305877468214909141167085714762264563063657943350236907094946646461923216294274126278307446311972308687994287891287803283925292606905989269889523172843332770830836759783785369979791080961857286616337899812403255227201674519657638851297071179072939795996067793632927908030012463363065685860840165058036261885499797449770195442947292430000162378499103014443348069189061530044511996535313640759599189705186426699247515054827245200291411122215650740096220329739005860888103815587109676697771309963574627370946485371197241190969105264786047459453605068211644382917541275273827340992668711493745972387355914195914718985014537527194240457008365671569687078990284161104504729306008422699787701800002791632013383627820581098053485233523975654541266379933976372166923939145698506290536426250504280006951118746364623059046571322756797412739237484932442360546912632700977191670816008599949193994076365236091785445314830586497109712831502036749689357478501902821934096190310014544344147023223587370896333791011565244915277254743770216075508516193584300836024403735607186234212756920261753316560108828155550707201384640955323312741462571991515164002181041721459755125526319935620022224599788401372701112446433496561731879451733161767311908930445022257932847778905927715300473432401204882816420752549225525490354251611971992803244686525431627285851961616215188407996788882362401865477595165813601127302689500417008594263511431985892520047158708416340541855763923434840463520065942300687185753980655429179596307235780414905839781226602008134652170563779553926668354533776734446138967708264717074169466129259183895992710007297073374674993591814947255585482108724677647767809940754519547640360526341360578917709430823798720926074351697801255584329283890612084351157240598858651408017457849584791070323084752076698727034968711406426182982276337269818785457703125182481895021322689014108512198615726992498684933703504127165752979496190386621289185540815022831796528872680718062212485152394773959121499802226809838696382445859762942104832749979666001172306036483142717995883180003601154915689815980768404279302360388299251227352933067734909515537221578173360357057055087667640584906849308522214440222569749397089140567699969472598885834644641891161422107182201145701943484865706385412850398228084019297728788808761439658643754882537176732626838979719067222998448642683372615819013030490302229989368726359054548397591097756201604093815968866669224724343698303257301427516607696451987641704120848429190015671188180486342546454298783782422854018005379491535707055241692796877807081790287551593822416991541799161103950616412338575633312264422658245766343145716474482115955074295002888100741489952610755464208802163100054754731823748135501088305686915961908706219641359546865413117760637233683648339691890346876820656732062979764563566399557873470279360529469727606940710080469848485671326029135249339240514040395373359880477942718975079214556124389396780661946209977139449980378969717023501175228780297769340800294812978648859289850147863848462402988371556743673803909849538635465854166990271016181421166409467708920194215134423198508502311145276041608953107064915869680610895616115180110740053613940613517352725778433789558690971431484519561408463114265352267298866361359194451321028069709379473081510457199408638455506361522536121318685395872486042139169523227627866204467083209921566375235764578437540338328630690688954771467672154875902020594391084745330381548139649222286533821849888562746134991894632259623607314584037374965442331632883475061099831606630723451918598078865073519193998488251112512210593832604647577103941925370223484602444768173935319947997741007788684689340774015103530158473203211356088896207241896663116208878433513231123876928108542897142937075738680082229988226050804948690178941065626990585779506912323774210220583725214222980727305382003528220861913683266675570565870908255525866756912880271280228039434183652302600601555504150785613289074921559045063339819564435371219247718658685556448072424553859487333306605884079521227025034699584021732441210983032479881242101697814901493816067800948011860647604881645077997763784277435175163459419732878940628620516343756760877241423010976794629343762570651012330187691123453189571046308591385456018971870119509359862951051613590126671257657564470795417201525276864058641058279625313270588994721190653918621989035768611258435220771319900086992710023015245327937125692912998156082839023019763220564258213264385723977645488186275943048815712720162300095103563656744875303641286846169371599158911761049726148204241430216305477992831757876964947337976581848538217693872423944324068322693840131590101366675386396512454413404905490032793317582106126789859498723594691956247986313655354404127732955531322613815911606173906653713088752789534263424847774158963946813883332750390034742567372106996572505713784701378319558425345211367240675604411577312471329362226587703915125143371924022870197927692031246714258839014787314413022139563604347780949202120254723552046077758605458818330024710477411027833059536425700217756308530756708293907816659342722408699448202452482057574084468487692446917749063621879396545645514371289990800454161705227356171955334474733360086172281345083514684752847204540711052698249520209862652628822771333486808631168044322682101385168506170814834524379463114736497534740479423653409512149828199576955140504229582306850403799945905169094949792593099409769940725335023029171227207590189672486791418532090927194648781377180791677874719382333243197049000191014217746487667946645158478689815790862889317855507947522044893715762089152855915869915938510064668611198515315393326964976797312528742163748172924749460520270782250782969791422425288796262339662076113122721851824424911317811742797724806428686020918138957000143741825043108844732730568087425481487976877757527188925579196779156413462468515030023005930015601675352814441006322035199637750471897920858109326846465580021611211487370134885577140933831061326889339070515146297923530375600429727445966410727472509080646760839394032769983786392583210345751948374939830768089201019080134089508493911806367175949585786733798602990270794504368057841507185583660157362257943358243264235068309417160537067466730710980951501711834045821574354820219280430846972109721961127418666283383867863572498553015611710068180295912326849882152419658464046224034643758784633888915937744759977694663971948685876074434725197262049596672127639628573279966480291323110111896111657322950276458982882561159151227077650880212856410403450651149448776984272942795350933913695495272686518045174726483611950973918453143459835680745538176139533565686402257843163324870797692057913786061377880428640407610143769635429129159019747210110853278113959069019377683686471739310216304162504040745833676969982526511789168997261322382208556585861200147662391358397335485637301436861784738163694457388144524330926524870996491970111943714029049632498053637600022540603750731396128339010110321084363066271315922475983220305055974391046012919303487585423434211576111349844512674407331894402861458829279530995492516149483620700373523856924131703687151646083352134137047881290592655777597807727013413647767434615792763679052741047762175995096222453574703492812429091365799258257008027945789660979219048651656909384767349826796111017505424537598166269815042789804130944185704034248766859858553565913415172803780750641497989029911536148872249337888105705222598790201555085132026420745096071088923466147417916904648991208022556938130123083594099397964103377979722024310703167659784628912154986891391871493413133548174139279128768193602876963756807927168446579896222938889936003053262902301628773230823038799000764592273000260821814308854611924059646584371213990071788591709729250445274659316708364101667192410226225715355639170119196167631587798572942647261008758677585689894189184547765376729460896807229196737140548584413532372503974042634910823743074511854728382951072498253038844112594626042871269381619512158192066677226392553991096572538972534160325338796922186442583929640043152105092700595784199514617825695969384604621587760570471478767829371603216236715883340333436896862625867243677995714084256302752151228956148245923638805438301646690211859368601661156420297625222620846348291237283706809747115266460961123721665157406463207621030521565408940837402995917282579935374785047023175176033768645370130501877986723713363927085899763490692191397395507321198380430585407032826912281736024116025150221503594894538131448476871749664546973176294777084321816254835320268089507728586950864003144724454153843654048147861127753070356508434473189340228679374138479060877424590904206357090822867622721622422120237334344294410006876539098932850381714612300937839411472951848048501023491165419258063424315207586524349021642483427339446768058434546282395142556971792527638435232030491654418730528225144643985514488252060710619244846668270378667971682498422836362263364980490081508717603919209811741985006041006380157378932564707170447347960991152316920027515798170479752226953903507449975619212676033781234932932163750528090666189733144203129813251926865982682623392142328569794855099578415011405959287243176137565102422433900882161466718083013389587785094290689440876017497253792773953083269440182126610747263680431188011269422710585166890598358765957866319981729262786383809933048183355430071479827327975149089764196562407498602376476743715254388308164554595740586751972393347741536307982114257990983776209608128339819957333051257513442556397474414792488721137615721678165277679383611893761747234509702875223235491108187537900346946464620330776519091226427749845510418661723347764350385908645571404268993902927048921710119806728268769448857331197996163793235155459790181877003764181130066900147382581462744467090043440254142121696107463192484695881479189352833972587290064590636149152497636808766127479199755954791363724990999680382474690905045190351211632328737264053260829282362805526060327288889451797312526151104506339571780123918644395062309105958051737137510230040102854998528196000251520421437859464030952674954247822448429586631668258519108380645352313215570371695046312296811849335627407352568439404095061798301297146654855484696627164785252721593851911243624008409498432633767809231101589911636649459989802144361314646027229453316638610165621112861041496901503724290679344375904727592030160849990390706000735311317539659815274971022542069652601643300797156137805479390986016994902573003308353580868878034024932086658007073641806845723285375810876070062086300920187116390525007105225567923273430657732804549105962731187951797772698688308589914550851682115590316726137526050789227425328691439445830398585374301791952847609036098908677225488932302582897104392885199987443996881510016838043871426946127844311810944391900636533963842101220079138340380888607802831469446322941467215843835750123033820823806521825951183155657573535688905500976369247549295585102457276525044851679545881347181962429183485634080327703447898801229469159401627471660458154467092355732168857210668791916609109334373660231099468118739457551258477773781773167160622754446260960097627747726138028654748837651877542101855738709588603563241030675799770040842048661397530455863337470269591968276011214923618237335829421963981364733212249135900443840225524927013397702240428692559385109508011626831991999968112266069279156882140737071077910714792971084815637124634852431078210997244251512969606929921256508647312960554103718354114083931548914444241721690373348459880951693937302656912613852559062176566714067500197156296590045809075660228714849999196918654576083729976266342434409448036325937058322562620474879680170562152639881701826213448773074195684648631237293860103607736943532817850612410212025578128427387002579529271524778167574103330080627674355623348828402903900443780840515618873780866477911805630181381212536807666272831950934518547982066310143780178115396380252737700694222221516032818250049668361141166099654668043122673483469604690592062253342071625590090773223559501977065165033596008955380965111760091449177542061239587501058627087685378952771015995338290958504062449689802274590510427908468133638251155638605223680853561094702334347952107197794031627214209129442289978621072600843504120722279718111810807602113741728224044134400209526330669146486034764888602608140844457301312877847058605092092611606298530619101982001686360857126981349160497131277290226856700456451284380653848655867098523680702221648341249204730607803518302407431080727498539802700471891334466560418572830628512093079298125165166313155697280749609552183912692893660601899432796603813009415794965164838368133051542990384759146029238229890731898319186132503720687300166853765532475904177549752501624286802159767878286411174033435127150062855325654719029903457511433334100536857884704387655371609104569544315400630655957794590146370414730075598617922528187109975139335635587945274882361634703233553209777458214665075470466793998843072887275685798292125208847120081109157276873861161437579943737720052007283953862674241074147925919607086467449769835370862537067999511482807758566279567590077211472988068383707593223056553122435404192090450992678600617103074821072921139887337928447739402058731272463363955164907091736754718302709803793179914891646540853998865826746342667629528611678073237105876257323157916816160448814364829968778622368860630250630433104871003130782023296272941502960951795952423963581620542853909111445605683283895156708980473528057247106068114613772266161841797069201365914940500062358628847012499037744329310334829103217540130451082120440462914475676824772388651302062286101945317883347265583661137526732959233472350194617333366586399462000952277734452052225068071231378987104850093612727326424575606210931527262133628079652287600311746762471707387182447559082829586623100170530693296741977203078356831264239217916141881869464147399478013113050265211948758473625828342765280828860701784807563934225232366581530377085594603583689507134324785362503851403742507428800950791913379218163604872423215290974825384743069070252946338213898967207580849844691512558521637916564355562624386254978389755609148139690073386146189753861625508109513127077025022214116534156543314088043165104995444170207192620591137749994868553428462384655152476490720678328915779857791206907693084974864433399715494400412645741559904347252989951257259946376781593072519688226581076786780081700457347313750648877675901135511574875619362828574797674832799119948880758342766201875961434089822140349795955375223923119563161273412714164726410303954352385744719077023298683194096257010247445687285565826863685108603539342821773718065496181334109528685753392852610278961398796784500893713256645045702560424408216570706631945161891874056136875406658039000551021298217247240366664396027519088532132692215130797059100302434802139497417208018027407019349234649213561240801923056969383154179790879798785704991766746291333296583765448075396612588753910767779727934319161872117986972363951255426778243260111375507476317072718535642958922262505245640917673124094471585818313727238176216541964510286564165836665976516743412231144263610578051894542714616985760848745622134853334074438195012765340359979027675114356435516320216707476950456992026279391086238319272909048407593101579704045919123694023988176987823066491136204374052414650675794600646358750835739365237865488568952131671289957181447419438547458111289760814916747859872457765746799907129750872683894919707833006962568969992391240237603948115738127547714434417222420803617727023143340336716801891372395224700944079979535376104788000218774796723389954495978639522245741717704760202512277133312189264808504176908975349884031685863006265497197794063163505482117440746605564284254645109842526229766983433364680867433206472423360785087406252759147642073629642052950102098113511696490530437549929632717523163058743559007710190011848402054617344518255569086587150528990608984759178225766982511943118946047913384989240618686015573330625279151659855520439347128012519478242038639887294576262769400965203732739888726990494817858377135823373593166677999218999873252433134509376078992728952986623676019583217907084424380459360195556052557112334112979865575996735195654084388308807666148092107559731535397932692334292351959757603728943498375714713143958193591974660241690358292629392990364735217355613904380754015512334607753190949411999265338826813746872055032796776577261750182961983542578373984347561606875577834503223314191932377752675695438281503667138742382466014367779911075957949285161367480600863002851646228880863107503322597669302600407128286215309489179409417344055162125410362334023312540042921341007126171851220812488407157225103901970333857595523707951521904454275529270178451652961215560991273350491135789013977382050964672880884565765691274334235214670188852610985157976683727619957211418562965177779671399162007902576726606905429669913956840352625697908239444653677487247529407729420870181517134904229142015748237809015486165060289475358002331939242247002685773603736454857690955402639536127850381755246241451893518029685270422920583365736849718225842053133339733566122545152259062491630924078785938109506320840006043654799009831889588453011187371902547191618331454519273360286509828073206355246057177517563950112279569824142481980694000739239612852539307834586111189660096022682265406940236719470692580876199172323519428032527808868639030188658779134078524999084987300452086667178472040635100083240371679342451502537449510459282905091724630344581741972948501691536486732571546772576617256171479296836460376644072785254954578788929590554420401835794761745948477492007332990444982509876136064461499696408342156382980076785214803501899553472541694994255177099360916023288867851628194248302636455519635228838549909233447797314043225326564068424059622469959430363756662310460842931526909133446700335331371096209098916121090837437069647633791978039279881759691304824938634678992841596516946959744798606627258310218413950458634195398115975045459738038736813548732519334074931859494003070801143242944123950304368932631453056031015322449553155265272836588204840755633146583438843242211560648036580837795226450726756136274190828238095979839236057141736500760068748006805015314719251382493760398308057122222952964382275890279786158850315774886369262256683855939863175882658614446602239958950322808947137093363329555547598231258256429452616223765559316401696984424823221935868618476435746085075481308888664794135213009292162988742993016204921187046161317929355323163484024872580173682912981432855918091145987711990957360525669382013084235383513010033459659383380714362987759196137726058679968573244742955279467642935325445563665633893976404298303079151772016937064727124954180343924886158059994429528098364219806185621864627410921000491411575717842747265231826067219796277965125713607295033945071762510052454017253112108126544723509836283876323273558500542626207434287549452116421144145583504345425205214203534358424093863148043731634315548922838683303084629577887835085065863684493761624114735560762959057650726058255026589158372928993229937239849205524265348723673280188418367693652695762887289476039381966576284464084714896690312448551444972715577919473311156298288483055282342090523464285820912347425280537202562496637071187809261240110039565942473147000047813908703444718213189040095092130861653958652242673989538000169124694111353532661766643744125340147191157888706528807625126034809184192310211700747882380288939978288749130533578246796342038389551917556254156844289079505493130159084485618508289201491623804304086298116287658429248485697038834216433058480696800894080663629215505720287027542491065368875973498890926841746318938478072705667549992386915721034754239075108802152120430032454989814861375721274454615759672939276164684576230881310934619784019631776890582985715932815055533981999294623637145005970573957108522761861197329090936853529321011315000437205172210654520088043028935914086149657423121601749359567199138939003373774419942778886907495632706844217749957484127175133533616717815365313522585615370197749405503833637230107762281826220771339565940708859863377289620520545443568324051417098742056125473953761523871462463918410794649754722863138291121701551753426194000722638079859494624772759190968721595403673925885295614056913715281919427891927715612917629390558077157238663079837387475487155051331026730543989423859068191928668264806106034699174723429995017203023470290412782459132290730848306186908908437295194236525987126144699650824441701288812999532588435010312977263596741264211452542335721822404568356579130143260470004037150519140910695485498020132509215971646511740223403530021387870218817677961237540340326222484118673223190771652744336589857871969838413523141331786090148676478160239912940581663352098889163378750101793132760016783503927516919073839555245183367359899175617403614975370996724548749071204896552256064207747564230708276771041768075447747593486601035309287015346133173858095902062013372627959296622192448012682753848346296680314365805569559916960375707356456765477978515387862567161170470698225804451696954588962703914901970366879455062741298187469512411171859443143699338260742619513528356117777686945745819621851704431647133021901424477532821889270993359439361441672939863494245469780538710880443614131876837124484303189523915704474588067431124198344661385978245683369100956353356120949176970154685421210335855133536754648764818770418293316601982341535510276934520297518323300932551926171622310674475064014556685512864161210697128853900010340458045230245347844696619584014069737844668915649443131926875413439805458404941293982998910106329903983774431559918896810466694651906090189736730629062642543628707871001615050140871152138015601145849270175240297736561836105765169172996042082576603959489306410797744809479605381783306619496699377774496241273745745555330981601994863953891001789070802277957621347190639530711295819103362756941944231299308878992655447217328541893244797883369423352687617262696923646919902568751073457761794936533174920646735800144594075190176158756784391613347257462446774732770958504639629881082180735772394670342870673709728016273047145398715748413827969242606822961976684490358360329620653109094959128506577753455277562784843063870287412607751233816413406672979015739112603061203302569343171219227653731791365359691929145828849077326515074033133084124401220155442610273843097594901663652266012597296254956806549616220163712910828117297524089095963504812084309370502349357767986598970161407407745038748602326706425766690558893018198151295029697937043577652767579206014803541457341260712613974741636456993930716361563257095775494518029897246738696851389045354726715803696890973651505853481418500145642363083659457174928197071233263589045989625532336333443684144449090890588165733953418710563336564137712117625053505998243803604272914234474451822476931558319815695991216992347731809084607526686925193410607567765208880367792130137343797469075988521130984145387032782188668653591206934270835985734644859171579858635888815235941889952832928814689990750997175118003453337482395392845081682188469402631302229970649275510871600759057069426906912825430100862351369355966243072725164716939605222012044806380880647423399483503288331511576300689926947352661122587515077584284066098203064100224903057084199172681029897498799612643984450819981119430603477814063420369721298342790903124424324611239696763293082298679753408617111796821680274819291885632840979922275611974220768762921463964899201239743585431390956624190156770321618707178911004126472387476042063640533575693590470502195973543777002850024859833084026816858239849993451544901937443086452029001721999949219568338398814385701072813815167670367885250723825284744342436035152160614941223101780127593596141404192893446475095946321418380994861233573775477088010258031052692611649323545576190880021596766461705141856204699201247898325491083520502355963103658420458959672507126790886065885991873964365845465268679164471685608340891137905767939261868481355197341024564176322783675565989385078456837804607534258683130274364577426243204190871761250689556935762139469185923083066908232280831309755117203439231593146327472113356486712151517760479151664179243483342426604256884251177685620854002914799205823680921457685895675750667086855253042628144032800504597682918951594363068347911310525945106157771311770684669053855212123765667005816906187161119658162575553508169617716809340530742575293316560180238240715001694017605881033288424272447322870304501690391644114744284986893245540078433289343729331814736971763909424933384823476905980709012110304046036722594800105716983653597769041861065623211318734388538201385763865021137347119156283547996773545973765530355088187871530975981199212653448948005456755137966165630847186579429384113230734934786515650074886471385124913575149293966638401739028702604259222489447850304797608557227074602852635451517939592580016883295030274322664032647596001055530960741605441955011468582195060605358635707499438856258891145745650718932604609165632040876406897619010466461492153875368385300526395505201478637159527671757228689668696602170391587861502042905272736938780392787073973997270204139479639106035528145279106607074901761988801024013350623183475746921258360548411126177390333496744237952940014611708931834179523269506322757207399476097233400800425607380723020991609085443059003297210076839314318703792102107612369663609245691514967372107826154079446214836301120317277309646825172519214245238394294874423880844135935907746883433571150574729493802757588026092349896511288649360556140959061112783762532152005883705456323240188817390981630977408634008244599515540907429974798833196333462140082166715501716246067357436249591570329518059973421587573243964840987494084092602351093050232924644581071312390101694226011380867769542037267882989029643102044060574172575283768559737840251945048457675449988367453004280298934353800786611586599369623429115807841896711185915460281370376427869681305344859090673144622707941854266218028721262167393576128850166158950997726214170456571194574473493964458565137756003410408489489781877859574818612747212940548631112417768588926329594680743712428118742540244349770620251145723242629364495552721861963068988385195019784786124525985568929713379281235867512526343648985283558580195431212176076602131875582038437368153131867733118305345867367795898404058421620003973249484584147799738925820817679033377755266062386510222535526269959046944893897747861647179379070434501451261640803476468362694885438881651640703036517206390281486830674525583211356562197774656231694168310006365964696834767757806070288932229202802930768747661993436852589487844746670461254569664247104760445620186662977194845696921620161733657487382437466776413037432440548410490163063411526591661389006521358892302286787368147431589051445546282137385236954343471038253793507501341852250688073194498457039709646348008773996248001079934451329706838788866557876987482927268373004800794345289984365628644077109820652627883416552121906547233899484339038349381500749652313350421462736457953814571884965032639448424998104890502610072754233043310023948390366986063075299416639593912468207762348361649969115063211850757278229259364234717244908502614512910751461687597433664925157900408353854990090446513804261843022689313151384142111196076617596189470200501308151902110773261423193949207621802548420914211628928906530693382602264816371252693815144284631012418427566099699908576695029600362892765654579207506541050309680424204927327958599957584207346809824838613698659753901177591587454794146787220067805493135900249823359739558411754286825385243007504209715443157379820477085311844565177294306558784028871251832870288565716333456749564556382996268235328377978574696263718222673347584112460958702656020607426831269312527691485436165579416312588172719499954141953722613745908065833051178245289467671068681895295793866204594771605470911221734655628647713739364215745841891531339799930250085516565479749791471994478428771410045712219000568646847209410386243818279187022503941091744791851178399977270394060939118432523233644343672143914840137022888222442776018780655264373597081852772715307070111260826201836879643404849502644857696004564962776371481072296781536341308247060279176573574430187078060684417213565806296464352108195479925267232800102568588400496922331449851358805550220483441671774362819137323070485419161981709142477487719342825198193980595611276358511666790950191961976931784820800889582887809085762924214471882285666931765281821795641030934507003950368565790194816360967741903471682945250543201752270040123677611915130017020443177781874305434770179524796781538127099831960773849177990375514528289844229568999409214109492764480450199123802548934405261023963581210789482602951198758243172173706796357750697216565649319223636944241493750511717892282308458602596964445292532539107286185147804642118772507987554998168857076763697891046582363958023985507551940668912469130559443748947311634754102644499138551067962946769357655928456512453186399000939037827130073723574178094862983193629931366018169193661855524644436502914762119465746987450398708408732840421879103504212741581656305693864415580547905311146600861104168623946741592729679701949529932578818774710190564075529546911854942281038902396083496649233111221945447230387484535068548666897391789460793890816360364405934186315617424693576819537580193023978661065118487032827196346047422694325905508947958977587732357413250912212432704221860251445062912703093560710684728296969240335097805036967255593465977957376872292660025273307459217673084440197186346967034730115761807575683974314735201267838435984255261190486501781513334548575913642625574063969236057613260100724052677373605399349116726358999943182262225857199895311495098817241849571730384616652261067005987000232442829418353065144434643971336224387898369891815710829248200244645302412321458270017496943564294788938164428140800663699473414567828486488768178082584127389391154883157717642225270132932700384595178870935124444078833142600750562476737402982189484587289127264340035157095536962996286238854677765563016782460266785920637269799572941538026371830699019318769846398250228416833016633176820859901064701103800793347570785366448203937950863321148204276329627740832957259136978239565779440438245589189016971079038492262436242032804746150966890640041204927418153808053949505490567201855888184230283538441474137593916653886555160233130666522107522234401010683803601800858673681688494364836798910749773071243126934930686640992838519442865014518600876024743964263218064767159049479853873784173392134122236624837251455280541299304304977797490233657640439566594083742507419393186718126303832843553331263518598290540462942229523618633003550776659409967173649550719517920476323274406544614507078324015496278814362982939602055851794659817563867322832997364634447535449169856606555609046319608903460335308295922080703481422954869367136734985984340062573482188276467229084048564539918113642960040471681207615066127474567899285103497862112897580722030434189270609602770831063993210349560852737717640133444090165755646123896888277116162094965618407367521412954195830294665675493647682147476578914778499475500601423087293243285964694321626713752577717607405843995329088935781509419088002526023558427620957054204542043100851641227934365921586180483255630048543427249193209625991462768886466364004588175191078288477751757244612593231762462505518492599621863159760101799460320818593534461557974307468498646684866513197061153922250722589137379220400498608003606181152636159722366013370873282066379464099810869123242523209568931514206327349758475447196362485164027235018154936991678772423574200361573248106187082492523025436838452980446893079771703772732541487020530934684934930744263710579595433308295966763021713616173539863276508359100418678616987156135526193667250528856094860188473385222962511582133848620521442230585721151894098053788492360409521380064297677913469552590221757583228697446963443258371255894107485631628344973318212199121551422029978012215468327353625257388089057698083304445707538609971596776116480464866069892189066984937831594105780185808250818694833217745966509408197980697685438494538028029647689144850062998848930997297985757335876647605907342400003123571705025466367050002064414095354876172759353962661016549634777983589000778322944183647301867206145772904732206619619338221510198712421264191117893507949373747211908779922141852289347645348671163686665825718115185760904888858397456654553956283740211109063843037088324044485946709652049635237309009337592145528739409605122309388230586151197835594578052003140079714370678460260725755725711282301432761307047552415106243634529321091783033271391400177649225763406620663421233715078327325007003254334178237787977747467772451651111343132206864471458105340035873413384148308002198157734575258776065978845025610419347442322314070182532060194314171695650124396071308209510384070427479545971527679969362502107409767916937743743268337017210335471320861047401032788214281504458068625848591366278736688756580710032577541084185344361509936848957351042368289284203407709763067557309217779647383424498880100222544610949003582399746179856778851754252288715945384033452069963771995938435178290109477681474084085814089938684333180270825890913472896852272046634772890928835633595705386466331820996974001813691778274598327033099110234008544310169202572328798563761836981828377973726832235971223378273538613159046360798312228941237027153169628321559614101298703721530239656547546785642912931694904725140128360736011959818067725163696771390117909863198459312780831485776140725240401944954848755852569955202982508882835900128210567384973402616184646292117340690327721060402099610278836608397478573695455626870433862165449396897010927537929750964307211332734387876313502630827941354051536504779086207130390337735963359691361404366359347897887343478853412282872554068868342984964199844077001785762668969147778781165893619454704662571830358028891745181888132730793867889466229778760827909697083379181272309258089581649759865925779173046449574117729002596650177947108015342888815085558201991757715975302996535942566433039943330069274508409936340956438895145075780228139598793982562319036268807542413897949662579255513273898696153633458913826054367217950559492480526430026287019964884228001201222450655998188600403372549900508097650752384316842460531387527909289482966592712427488605893434629977030842040072534317723039803179274661718703237954757194653216490489364196861279447889042978072730860620133663144558207329627429664253403147403984836298765054823150697163599842387386782395050236128276930739541374635392044693675377921964589968576922169844967127053570852331936731154979138611844204088866232188980126969499775771869973291014502565693014646726560311692571415766962532334019025944544615320154627869274513698118268244751929880401981365624120460400238435829606436414183636720920191376705845357658572582396642046613315704382571445300004946365102814475579215831755962251415757841013712952818885243501726782148679322790944309916123274327355354360667790900460451459455453214063693174223853097085563692205179737118995173224979621727222391144180681912521708969788193814712810545174713865526488448956936042508349892276250010363340842615856586641479324986144599785455591305411257930941330725170263099558987161774383561110206069554949941900979312908834317701057676976238752417110957267199572360323240857191553950323706548814889583757734515606266979368209765884028944937837275598295577857503883133002733751396663939153988019369761560266090919824080327338337045680000664056004211602616353075730079070318517528076417955983255994031600647435276136463997604151653118915921831573576621160930625795997640491158200731991598868579644421345101272955701271436368419426776382759957204560090625287390357287472473677905557535313732696196319371591250590549817725963778452680904470206323361813127493323297301186021795089651642650568411068189514564949938894927307018150033260499393713037938560277847281416078752640244659499395803073102765113392534921195250383588899125698385987484411155704192512530224570143113620150600440667303894738278488793358089111293317632902326750643285451740036089348976278028768014689569360471704918041810962410444905403634362311031925999665729875389155950363575054988462363922034266412582211847979834754398628964964497675169212014938286014961441812213117835058592370547187780849865767232924686124488959689145543721488660628872670047622397524022375931191795236349663124079110336472873040606372539808882034043353446630242250643314522196251139780588602952949891783133654176383084403928549383073900286645718916232541218045632579515928236919042130250487840072033699050995423414246801275626264075665646891498162681765512784976619759643035076554849579250020973053892625690466047974828116400593183816707123337088905244349952783523938177098271079568240042693925467845002998922782485898988845827315139970944366860051899888728659033097239475490169158681010098193610672274966773560086067767096093751054430540617835894079980421745846235913058100977288343529265201396910073964886442761595387732345863743210185592759904295793050406652901647204908897637493289216307784242646743007035699860025311993507841626723836982624002351718793598360136515846432459231978428298158814859212039259228095573804001851202932435953447920374994004896723433721736606969513691173399344509512506420049468223867911912451859859324533086192277937142831425918254607375287591944076922040408810935645562744988654604472000667617998134461694364807191620200216523844519368306255654776171476603902200431804893898833749260557065553944563327702886130634429777770897663210452065103936598347698985669334326365222547820783093143136087984108025006415929126075961314844993782603669972491172450898066797879379377329006003259732950215604869500770862171588273100571653280626678343735671953952352711974093874707679932369270727265130462866203857773676188020279346457537316173893153906206440541434766243668397388118630600527005631714413671054802526639569024689950745300267009227236185113270225688461374158271590373294406363802815254589190184444031933752323985411621368979267378356676120163697132405385288070941742659454012011920997998547387239696567431878901285018703536073694674241330023925712867267235804776413438241823858088089637878431808872934500703446878424502112744842837531769312846752625665094969814452726830717470956484543778620316187257822006706213171934598721967498074244785681570415241367996571602076398161974073529170284995094662453380421941916745333417285204080281130944808516071471933952875392064568440709962184172626882726173104014248120558852825253636255727769728540300866082397213388225788424161129766256417150886958843110641845072489933989578902996047347096968925741372499786398418730503687204653889682504603190299996901562500673397538879662674043370822586981511764301209111539567812196445204082658403721804099511879182035143682142975336397105046452411597408570354076689080574287369886980686360286824434403049299432812159900607697404167801816994107496061314453367744710978129821243843853925192779138465453477677807990004516674652395587107647921406833932813813864208885775008250004874418701090062657398070581877839736112383551221972161049792672944290644183537268528527575793571766493477590047406284069444733536521872998072214220380197433900732987420443555991214266582623886926565933626627472616800385879331088600809009864856577544810272720365306815173643330394626571685328494407765091162106884146178197249550178426085264007648449714280344189412134649612653469102702873761345941246668579336270072493858533206474384311304549956835766714072159724181370301874966010615792424897546138785618926129317672901553124653889802631268181118352484621058750985619737109296033425638561893896105551954212571381999943927335224258254521656206754904684949335305273507288571178075888770750663070107437436848484570516361454759677862692836221240387605635441207518037209828362289721972489902168149089912128094396171139055163375618015040994427458466078908737215728001422783121060044362219041539088012317930940584650177140223873580545981655201639322110591922287364573058603950194320195414810552461599071182704968130379643895432525243902838874671533183794127341592379763039725785138053835695708386371108034731028826603354973994582103204827965806835160545905509771941982250956814133503911223694608368467571759139381770777377857566321578396311170690288995863606506786034318581298741399169452327237915536444566910211512058264166059521978279813501875220771513523956410666385752078687287303695427835109069839426017050895959977551770961504107152460603239818366996571965474125162840556042762571826560036683985587929803258279649447558306294442266328947555999268908649766191625802492562237687287126538660823989594161770074681216533488209240506292978836171108799317978806517361820262283136035983725939704654644623279976546380974384460830587043855958276814513960868404772250004379888629238921079043090187986354066521876121630767312983952319108622698406061212998199049128936903919501977509104731961992501416413225117434621778022548305332250542624139066547890290685686952664446781352413616153747303318703704687132591734491635920855750039105016069214249291799046774763770722434705148417711448763486810555447471270657024459008332764899105612403541876459786545103606378101375550246874056641679033732532581397149049218622676288195763395400755002562233964519271744202267570870467858327714866529458580564334351066279046295822795167157334342724745264768510692623331331235741746404904329187590467352933274791166712231315694235323169326699447705699954754436959512657589471576373549115313952708010283422556036816884133819158860000796498558660161764090154624695907827856345527216635836802773190003609502687091650023605171049833061931217138472946969602900796546885826261653183013123861696784490663954938470042504752856071196321221072527315607836163583960680484210660744212371870969851672321253912016128524771207798476963931344425456129512452424964549630321292755805776435745148595006576802555034173553358972746928126192937335132683726446804937645755322155311254092495093650462587415629127835861266324325419747760795425979643343860279645586212994225048492301075142076297543136042799127861265821201904539395466998910618234473944468863183501642673117462915136521469883878574974369841443585417726557598192693806720979897830324762120920823711678209155344724468963512900415095870318632786913661145782128419178583499946179969810302785745550941263692255720725779058442850944653298108386645374191883505465202202485327107944868243678709605593821063796315704457632259511838261605364802178939864995937802732986230168618621568360250655920528524818123444371296012660719281315263627544158522155068346277045862149476014354807493866358510432651379445659455227825786055216751543385881801180248576811105533226034379978355229163630530767254259812987589336795488865759314119988812946469421539700477915925808297811734200050741946818238712058388670134556075977071139008334946661774995393875141414432971176278307957933761186656417635761789864931404652942252848032988029010440784578462562810653213916419476694685752033538328303753867451787778927839205044254806937630185442073987417745053058609745013242321965378841111188732168907777529703819560476032383260171492429176452856029302239448025732992329126482133204712656391384625050877435667403688673410332834267669559285820083598372365574744568585335859847158259296992764124290972079309934341062238092405292158680461924351534225343271584474398550269055847236420748130382995139894825975063460353981477839763423470052993987334863920568859711004648968470188612161050181399785844669034382033773354562044216461303613825583549287474541182402464208217962778696510169422832707126565613967237033843709023536883810655886450750037101682546211095286783609011890026787004507744019019566774528152989980190003787091674854593697712438638811612949226477661946675288241602477547715384258696985746126842134077693621052906547333182967931875504682305422124841700940059868406717848819100265407395501987603753368110831706653568113975216247776727611016667496627086998598641812161639307248537739747873567979712152944814429593998355781758057890352191518494044043765253743505077453825678310337630631398849753468913866659435065293035656934731248970725443409026590920897770050056325607341618128581657891254043567755998057169706779826294730551414694749076914087294640014519379937844222716522532834491477053508781368713769484477271930049645963817419845448423854050754103252819250991393644064849549881340769272844796633949906317372454973568151927910673643286148437158311093650476820300556118204573102855282136128678692008596875971894182122039965364867800704752037946100599443030527362110394218658465732227385792635764688881851500236261850036581998901543587497108694104854207634451536523632114848310262273868932447646375330477508817422231941228490020692049108128944160436535621367850774025459876390272819266410685709587638732266046637069953034416893699302516891530200120673961863735769320405486776058054069215526343601428327284755608079849244892453262620222227550634785186707199436116187049802322926342438322181870616405969297468902508419241254852966694408096695209962512580468109429263980589476154562027362097839313473050437880822880372060904435419039330256394103669001451568194485290957396791140942703714663830337189285811814317972852719501764735108053141101361047313011105637528836157074545434963601638869215767445094940101962589091122551836747771935345423540267672350358981472165044920704533598118283195582546516170327174668891827003115579717577776198286597613400568652720186152255839550984174623907715613535765729704930630433146015215054955441831065070630131209862734654994030917411190318846740525063248233922930087791947248621078883594264902079105383459559430431046939523142717271204776744063077521654816224645062605811553873142267787814607492778820456558960394604265925065765308102314776765932182636572540925948665582771739890450432738197640940185833189805709552233576961891290594923070167874632885629485963829914175487462979304026736119667179225284597449012686159657349127119102446223658252497950833693995102298915686057263153342107971491319962023479435081882545615297256343269080469519241760096770892925636045490781952194680139354189584624659902696492150046934990172045083220903656581383120324829540050160726618440664604397035970391496815009884823582831913495552465954637145861305297408718512539450181094108081711046405736433122628735834567987905156573072122392608863760538122793576269302495813024465277104710712720261460749039499486238400403385102916295962214475315267600794348127389499078220616700381942938308559420186257179453030550412099380780705261083284972014056770045634467016316838230139494074034771260209535543286613692930329312410234612906924163961190078905293022725926748198234603123276709454237504470818127108624072603496794134304421897231384701339926257374389452741540030102073133130757585861985190659823222109030355080750803910222496039292676568077397664137565697478848115766133136028938735572080533944638238266228524102816522372396232348195742199055262990040554874047756922428957698409600422142425987310505525093080786324801527545973301568110086997568531371153971110569268631349382951146288741501934357562852705672190896757875213565169177664394762321335931651259640786074107148449350875321333014176228302450804446701919604253093354718016412865943037357736975145086359830816136612740251733732449227092445096990836564089354869258987131008494192005607281283028957852447799751096776708235202369346726569715049768975178684242780897718686719712447170915228045796672072313845187358730633545853661830396110305025458663527198801015250606766822376612208694861291231754528163015124433423657777943513049141460020750174164226323995179244457212222205020372982018140277390301364717539059070987419374599839190224731965991500372027131504106298889462408391521649848394205119140987792840262035683011831088800767351487036769635498175468703168255689240812847097538831400394081140814860507613110091224756496842412089787379197403673564191731581582417212780955442253345514587519653148600237799926589396524093194871801876690696457328380129750591080205328780880281501289802877443795312951285023578844140533328435494509764089390320321559851308332139681798925046549997404119673649592161326838178447159038919215764408219957562558295427116207593644352390414911496174989809685821178934091737047328668437221693808462130610619458959107138209980983364272113568684531273011172464933551697681716857688400828046160153945396438677196537222513753952852120425135939480021259913826197192775351911308967284364931285494976637029491364348015659368755324825541088294889423547123144607995022348573445686676583021635163235764644908312798667024968388441547356610032123453669670159744513519854154749367368900084535388751775471618486582388553594794585988032236930365091711249926240609785220747275117708370498938022965286369829873034072908303071573465712514696727726625349895545786963515151077802835662667966992945545784111129579300861706815739297318557726070276604459057642295697893734956274300021268926586294629132949085390138973523924028672186796379328917909714547272706371197440307370113350622448830175149277059518393022513563998550955128527891091702814837991799760789088129539253370964452160822941730393540894224152101447145962424714368910136062654631993291839805012904417910556392491262465584036026786286145158498658215258712496897736199222789162800577981905136809096309576245090476108749195031686746776419283970207976306061651972593398544300247762608182481375556539164871360671864107362556688226312476951876668001379450471899113457736436369231214224058434496826352174106354872601549823877842260667574432374771224406300585234019429299887014667657345982499677525481553499413027211252305440824280496875420214778574329552547146773503516943551792871018584823362843136119235403018078864165894513308714942836994104506938382926077078265425636176333515353800543468352576756468230204181165849481488101792368109884022371945056120541946771038247327468002276402975749087259921195995045996615546106375392256888333925334167535551142733146902678807643982595702788309774466259187340209219170653452563887065328891950128147390070211804586434451291717022760942880425960217844831987698891978330351494779223591446798037254886176725788369358875511869337721763248852935315298177607972955074303755920270293906729548236643085391794105868889326611381647820653487043094849261962806926423137269952343311018034883511774056972140269446245455133439454128539651635352706299330883703088954930108224746915461242646387932991305155804423403630406392837856823407341795938960692435780794608010653135785768079075254643930132579363535900644312480288662379511774749484110048025294018051266135194042034848571841017732019572262933750372096725761407624278073224180776929204850410406124396748917420878011959685292778400875876630687936509816346116185938378537601607582776387082253960459325166346897839169525763214444879452952541438319384410275600667804032622290644564886330503131836134789657606308556090916445283695248580282129162174570914841387530082161132680142978881306367540906552159162052109049776490221665436908643122843368474184754387014922435362749085098668398015889465692836561712696332709140628982998649178189019504355664572063308397938741525634286289405001547276757493546046221505330708515103787808217656515600913330796486871285883031787565241955192936759396267772937332553606639171504022986116617146209671100154119837458142367348880005249891542719437492029587502212480132508390822588480017530617648639815907165528668368883426056319056437454784171929684865099978834704739832719305124634796380893502372934309978147750247105306863060789776098012360468554504544688670494696803220518085408759463385797502352959902409899773208050013587785870277343856928779867631170391066618645884831499186733517143308215115646201379864955203060239541110811996094613886965195309339146350164794123177429193771863513828776046485763425697400807891647242811637377861114227148361868936257762600808334413026260021453053362103420628141307112041416900004164871972535212415700180604419746622417934208133306155778825707485315089290268327538532130622593888270427998541778788188449118750515688142937764174135769270431619814812105455908874410785935028676178183077153309006086308665874808284958742519099255428279187176606547849022701370139365014120672124671800724790572468461088768591389349246598747826655825861306518616615417790829859418685464077434989196790715855324336756939816415533621588114118196246020481199058508573083951038836407973541497235092503223550834898822126028603317479347733983340175852842156855913910771163413164146293290622512008662743071386360273098230536932289399643786033221386097850028718530825903213696390185250753646419107483626481602697336678415748538502616782426171872621956516021999850487299863239421036016365986275404001180974137408835699370745217592155928256029648050379545540247844128643147944574283739814829696245317619243039257527254640918765342107886065863678353505700164327821748363748555889031524589634971780930259720827446037838332618480772475489582645171710271953049763618886075894147317751203233894712594534470235025734168327298523587108783576825099620790200454272087023272435034467430268914299183284424147751404682728395044313219643985352562049191431172703259032393440931347852086693737750280955409093677357983945486772092724390108079138126092348316371100696617267088908003427205667893726999706900548227705547671700233265448543027796879070214265911109519831347978680076588482222365916613962042620064767639790457405736491960027759718716641954826092010126906324505275499075406002316561483270590102979374518754274772899143647133168735939237186196317051160756192376216811881834467033728371696469524068661796187919317959883883523936519611347816105599836695928804166544241035524364516918434414143193398532168566601949340410593955310008779690953254314724609149019270871576283357499063160455964929927413188050813947961597411756588384908486612910134823534979920951448808290486726895440154144661202074505302351471661288272701574793966985201116462634093322492068492492540822612222303454570975798288045976119266723631731228261321121719896313156847613215047721936209666303126548624668951530284005375905746951054011914557103002234410133626783050864775281861575500295600384468202380696906279153165292282483440745074490954446490716829597496548474791179510751531474099510010945828634403307406700767616874566754812631424318121290284997194212063694854675570296332282381137142345576352926740391505373520667672366762196538776931405242953840319742715194490044505866940172431250072085282771398402122911391722854018145943786937427997154372309985714259631004280705341345755314238489424444310469456588906485942517922659221060374931046692021225778173713457638636164551413028488007106260378626589311143438402115372245028399556654510339076446498307006808782714421591088577844637187361179716517006875954177240061420076290470259231147964161576809893572158327042103017208838222416113081715005996865742190737616319103326254322053983076347236305994819455485407993032017675087792804228414718323907097571956194614752823628728216901303887936117870572375429362922770923137356281860877656633872548038344339159467801127152788152717925882376971311771069099132225797992173917700279193953271682941570980031880046776896293246201904928441942198717233371760039500329314121120059587669336427857158853943346771414366441167853476345995312274993518441638329288016184039935893915333602214497026279236854982786130685128113855095238788126295142016903581282413970634721658025261121041176002882974255493529903194885808971639402879110688824136539792354235417568077507331383621252534315089707786280882096962358966776225001805843345208900226581415957469541404027435862757657102108390700842948621483548011053789956109980353396456303882232226041492902817731238441843019534694079527014635927713571527235473470230811312561214190318676881135824508381022570205619711012452596550442254157620813986318197239293648890888081287463013414917671399740097870871930137229401193082111106353310551299526509306389285391172256984359210140397423238363510651541555867496111041270468149367941222520582078042222728354917862771105490494067947763566961852437825738348371567239039994736134869774753999144525559437222495373428774372274640167398472569285163497879498522797674083014058270715131451121955368225613402297804381652463572656988844249069619657398391676914634139159570187709752582338790178574810787307725611381227254204985526731563972712067260722619552190136698582241062492696225831301383023867317896568167619425541879912993456014659122897546778218772079418758693270057360783950820969266077990874270892157805362649835885016946780359656854815475066963242575021092534987957840878315707341142134706103643637398095238300447752155963680993121879841350302038694072591622621015773194093182857511746998670272620995421251240883211248678425832716346304140135169528786155363073677362999022599268542798189217742721253616639991216611704299104070045784591550538917310645706629649312588772557212102888040873564806571906433975899474859955578760104928443762026743046113359279657426161443407664401650738997787787499851068564113302912398798149329367528768312919644245793071512069239188222921076616526213742418836278265564315887982245722112303725798240546480864097749334223782829479274378967377964872983742146125765937300181567687918969199040632821575508287473662758339581342755532003092457882374065049782038275593281097308553154632980770714830050520656083880877741172201870479272546687380182629249494812193202660345477380788865174983928449135732180093578483998580458078835151372664540584542034000474327286226231150065226394103238023044066531934932996155999977092433836727995855245911855364405974112645008682721921711465526935843640738245247286419376500256870647033589466599838062201618564759707285553606805834739402375567637260898100186525076374403331049154002290088248611687399951054450470995195812802440950684701432163703743715135312014662808716462977707029192195540659235232225034621326677420846345656584113321547509102661103288129178717925453330648648322136132359437838500493605415908203104054844914389354122709506020607719649463930074655596385853709456905236467442835873524449563107441188159759458779125493594994117929950190427976929079254492543526708264539658529247689288273433616712026311921250748402806887588340415053816889833211727910615783670141875368457075083952613284619737155934876755602865464790718598693114009813013176153978093571904737252236977181022900640517532910204200162479103899889674262948948458688891737955088199042814648404907012639404643369136266674668987401602864706432952630624153512602147595608210268211929643287769387570408893007918518397260977601145250788301686730524564228965547254756622848172493948770782694580582039762535438346379083062225609860935762374123316481564958085845090045638919369837708322515465722101959408061265341627346064095590591969038447258537752511426200934288001062925644924083506863180646543729085048268253173086186365582655339375275794904653945548119323165164615567376046281880035860551071655198385423741183799433102109491908021424758784168971690560209646406640376340964018302053321889805820817001260519384554924165772725667039837153589593791962114405153251989514132660229701973548965573694837645998402051802824968076448220299509598464855939615583797903839274393750143240880024659400249924198317857619210125687388049160747651433295676644627511507210347863205402037967049435393846473895205126892999275532118432342714845132701324492970627078736332889730560703458709485032301489453809269960252443671460041802828097014174586069247301703123132660713833801917508119588300057972850416007057267067158678308952019341160134092504367909832045089666590531361428576070886142811618017621875876355292114142059438349340284769229477655273732996050734075847459356432777258290305880168498814596896936832764914620501493787656740727491008751041368039413107272454377140473455891346975080280902835497019277199091791960613710141610727619913571028532371103561813247499352080358873834761889533935309121169555479904403671435717787883546738763945818288483380007176823135805577571511756742512346262066110667955117510562866360676405438406317986109594165639646671203544848803783982939505068181240309984501441889241861774608731799838230844088859924684302160847065728917779635438015885007890436528828515177646503921527091660490452867605771367870641255815634979313856335697933059619712502470705389793575133644181146298251507677462142624212261390809006296124338255042118157729987553272641586308930154753903003496769676987921398080803272712440436523396980461056555442479104284409051937081592485943718908874428564450039519535751652651352103828531409570715772792968334334803872465817226942922421793235806062207196521916116228766146896875342276516027801432896503418472170497360192629838532455926014421089608921730896626143750235538392528391843174261773440869550032440919254404803827352449748210720058757870813357969047517456596666509825796485641571882445184916493579644945677941626888962467165937490977511241227668045287309316523962984134991963356699166993093698529996957163812633049518978975934718658558039457476247411992611975689204899453376212226140516424089590164666492408478660561949911554886197883035869394490403224962353599089853947031665662213578042438431256456682558432857985513592406537682962371450776018270213862987078852446230366947121128095587209050221981218094029379797001285157695380329457772463585618743364451479355890013312798090338939975947919131838767095996185073205152460436495841806653376267699696929854391993500633585296663423529032682268096308704548677890409375315794238436247491864721342677178576335382820128686755979499132274557368337611262564842804589556273017590790258284784047939504646410716179357263766868150888635527793640836472688498500452720567245564160309097461021238069648248760658365798802797422700264619498872330240615730426734670904455464762810470204698142026443449833531974723421161011097640145725147631018383758479311929388730952272464741856051710385330216503216076829025105556468561999096508852083566128476508038352135279767117203665485405085422425023021375359504631459140205690729641255105731053383493905848078539243622537683442918868112641125729754636422390063268248272971070905502340945217354232723797496694815996152982890799379471136101684984882706135196902454231788790114391348540250812110596668436022573038317935336835185807605399324693158723916206565542752631030564705314606809133964000290278926438861302230945700770029154364860716132900034767708214220343059199626874711036282892789397823524695346704903197454757295821321285988912499254604376685339124101765050562325302729137736050644955661376103548021941036933059900808474249153970088264613747228866791215237737789732921319899492786926215558506616921622881190666834697130664643790418344773290986638983787620719933395219771502296774304452206790836706212229189498743536947847569261677629665106881857130479618416657546200996133366153554874294690470033279490947438005369488797179180213570574735438781118220483766810784695431696590545381709090297851558353134750210381001129880717971239455073346484680702406054268846424046560601516626299291317055649087188185653194032307213936762291933045437316685092717150435620194118775113441034903500165435432123135404780186984026618076756902760063117716334809076704301110422582623228458843800859368264825892523502618584642530908635441472599972522907699705914090881113340486059972252295984924984980661654366620109782626004040939808935837601024196057450632976517139354293497808643889415666403003919164079208845839620628743016140701724898688625132675260974042529742741276040135311646099090231463436719789270247981279827983029906275806410159050149098436936913446457886271666069418919296997214585301303987048071495394109779205424101008456100237211832264605220116733942101542183458986857079822827329650438807833697341783253580247601769914414966159846309376173495335388705597647926846485626269644391827901659797462694002438292747859667133113233591535760595044051180852671993917501899536771049561289634528507392124997130930621142964922943264143841128641902232959933880357427962670304770476422872313596804627270163924760304463417016725430314388030479428721046948346716725915576587617945343818782394144443053060040193622222126149190663310659202300363529882135257159565537794368353699555020298311624568666302508307480441907658235649936836060180807259305238453725145132078250335848804475292663366959979312453884698416892127755617191101566987349449839586491242149852652337784512556038038325950670765079187348184897348923706736064870997937023667440898713506250644303820708959010524779470180214218979316402611621060224219731996414407342643901557420523150148819574244678215217154697578449860883346651136756267872383885535108713521161311186050386881848194569679600032805419349769708423607494062232112818606860918532097084133249318243818397093099951171892939065544279666194935957004357699850719199034327965588262623142321293524271792074992348183089609446624209441825736770726539352522000917783375192114493289747930836809821228296572038461849058912807644725971395142821899178131047470158143129578406128543122697601747308021159224781787321956915170411611725082502352329476795126369463882216573911270636716155047151877485748143709663068179992278670363708256645832584549840127681233835938624346536878172781132343227795303097701537697182893120963097783349550241082529060195424736272160186742215839746847124459251351152425182576550468001684905494887647518975248580551287175001763240270575377691435553863050551004888391230459098056388115451037642503470795459340785620316020577147925436051115815859074671088443114983750901326904313604373447725031696963643781703508503047304219007800990724284166031622395304058070883625287114657180462473469210600553496257839178432029352201708108637365901068780022491436984516969882535743311345222483243326580272334741435080540274333938359563261699559838366475288411511237155858445037485171773647248422207981205628213875211354936040421154790776314466351933277887120491556035633244998723428260365562798486175823254162905433566312503348802112117611700065158587559583807234780480861604067021302521089346742131134727016673896924959073344584988078902023621645557656154589012345371051272128595057785470459160701396281607377101897060846494804806563179769229945920602299396253556352124770665942582884859356379931905495863352497942305169006198057791701412819445368551864461131007109269492204272057634225667777815361545560106569685964719784403337328079099670539176088431680925447946000887081962155295031256563023415423576997947119053639471266726979638439155585026146676500651604470119596946613036267174968391536583213169297649693484500535961074800295849105846559819190235233991328753546950309896900416426987152931728951902048755330946625742842546009293681534343164062002509408353428722760841061872445150858796265758507693411285678121141584925914744364482752734243716974758084611547770912592035977079596635655482487454250881253340300391159266098339368771461477199866153525858958103844125088947673088593518782909308712074055374527732767365481562641650069744743743497347473742656588851585676991193717895630133882406346180254425093342446018056995115647796625802780358111399085619961865276174179742772117768335996777578971987267438796560598184281888260456821143651868034569570484091362182828550025339330982167433695376859026459343500268021551179177261710459308694123800505225096785902944864315413429170319296839745820006485825141045281690673784779765541493815871309089106761143976208937304014432612454126470195006793824927910543704263882580684312781416645466245027965524710691615732237926524219154770554695392387250497179512533900506133355746328998327346729772738365229912652700610186222906394380263815038151865165701568299354650683437394438190454009279036277069989764665842279669124152038847369510988788197120332808954833250399526167209240742267018159974368152551856399902802636409780926487821034708466583712242481139602020104589999470853599816808728051025636230818067507874930849081990361234159478769478943792702899362658831367464886442355237949583557510209245859983044087590176313429243276261618163930797658098510219940300078083693459079715020423295135541044644215993137549098313545109958902922975076614104182639467328761424881739452629959031290079212393794569391867483124766116071411333580858059246855171148087759511022625343501917725092959929420517445590864825398822899006565991785829678401539466016117698008933520673274814601548602915100469749371455851264983040956929238766405628380989364548247921072863017272482859821333211547879303778373171586474793927431031494831514136545678033918188143305807963556285041350007307572542544460845140865973740449270626126696096290514572226926041885233092741679592117460206453860901496963848751902320997177028375349245710182407027048867683597427796347286246839149603946824093194879313926865189783628831033793376797771566971528088375393985271939408751561820710091329893582931896948602023715499877946510956300501730872751547401179073138270103272474417363778046793456083137716976913627086734599784520021349525921898567856205768095037254845269833013394657982113203319936434726779855731438151969612996379813245840633784094240589252022900239809994699404376903557635200115159817427802189723313401444297472174729390567349639647658891776631424547410212910920429229599654406337832314650624983844068017930544380598408166697530740310685520410636433499229228861734764959289404313327324072636896005969888635179593164430123585093947935181877828230526830686318045570992400820495803884960849039285654674769632677040090406658135791380551043958855806753957061214438553240179355116604907857879303957277215111186179341802498765704118606485827004514038305555485388277913892212756692307234353205588743056209340420869241150136957959289506260356348600179954519127023393036388808085309487977170653352125153607585796715095429350497533698191109266334439834964811475914902318133141427485232321441635456965136835171924482974862500870326552311847492725208570269556924196330015600233817068423595960696201909456188840000319316601228220062316438339347071273116456733323658410082274788129932157872785372904166664660790579989223756297033302177201345002266946929590971193580567614555444898234724747149715245981476389759163898660460390809121787967817213945625779658989678339709142157572859560853826178071979040087374734695562230541552863905539874457715807663639791405212630808089115600335198235697281920841794835998674468726366602653822738144116934673002546812463824009197263501799557423371136333031157221981613587025343509407485049952698993370696823676014737548475549123601902845628619883479412052200319132123869761889751037730151729286420256306529589015828849429075692450563346977757717772988021507056714659494994780028281332423316573301507860544602898856843407747321025700039175027655090421024783871921173731166475113118188073135870056659893734899376232633851555615860344666493498098948042082101244520936155845688416339558659949458718268093588634172444920193308327803756915410357467407292846593474099213396664099522815451820553081013368191497955364524672521864561501905477287431047938309544207446152377081878931834595033627438767952745536194425289988623290304417311621839464342963919072754637920382890730181643548019346695145137900808414430677208679190540657893956277892441594779260328618671443998115449961426341443344762517285677002797035657014806732698235340253822456507850626382511806102651283137033166187131563528302267054195574919421790379203916657918894001617797720320380383436410881310421418776226969300875201299462429526624040350074343110354286236069569754555245650035435386962058602967603670963445366346261502599224014626926737225986835775438040217156044292665414977179937312708833315390782760164767008529012155904623884325774692640569509135458034090392701285578535958546766273520684248912038024547687310463283142051265474816634970252149929172102621890281500326972116339711764699067635973913363542803527592931843854646254863276368782605337255489169001618763437767787273390836011484573877217855610347697925374381800347467025817989716377342688987440629433019790215211563679815585880475623593217134570519268583697125016034577145944073499037964270406964315812075224681539011616041864908087410759262954278401963222516639526116408890447598407042919732693148089565425209468715072953125044523490427193694409972196305535480142287483636795375529640658675523739919549537550741462032837984999092185200870345790272230937537484462208247360588285921509858918473580420071029190692806633731521715885134724496062483920982444074991960986819427338986997495020325176000695015993062701516864470056119871676521923719484711049688897047472718851791681362281789986136555022875844227884377420114679670148905284129434053444465257739605295996127264569223538515786291613084403075900489554297950326441119931256190706958337320829992113431946726076037104827114749946086210926558420328088824595397628748168706706055459779473252055260101993030176242698430291905963421523818414422629436399892520205376942615423308377327295314156331985454416940620270800061373954715512529437141884484522102004826394962828684191983734851524741734963983779319544069206358242190788611153883915985371535264924588154829175746171882559969086130627537873654984264627231825710740016852473746994663418369276150790562982897136963752864798237692936629544675237553494277760400169098136699141075043139731375135759718088655330716881900484257932473654033834796168229012672415187205371049256720011028499884683319096418106746835335453829989991624162866918084131048433945404825157316654390284407738815430776950491964347840302537829628991504773581178790764232385741290721218364961957893235689214922757704264842014224967556917018889805640018544183790947922554027504979255623201098199531051677941389312801536790534169241181964289940333891346014451372469419954645999679257662828108315082135388598643944664543277013257313805956491417362965042359003907677182868390990948356273702184831271036821360837508584501844732275455409262681926512800746196522733261083171574721376448807619006766400102212756840386063853613983636444423266791334936935448454351442832098632220999017651315240697883369838002954155909436030309418231456279523084557473408719298289435769761474332666058838321869651769435187702771014953913700485426384545948863306989145246057024964878980432238959706337853875612512280278295500820833441090551280579533165946558214395297266081031082096462285550367118237202115113052901459834551141184069173623230652651532119714267423676367464850603812779751276871300489298112838573539050607304822050236154935485459136282648498921907014002487927919704102056091569300392926602723688725846898387073360080294701983796719607556905053703559554601875359965718709842839098198448995501644527709966139025970663989651976842365185660474334732267078582571091903765072367605158647341761557122883275200085408180672832329300082216814810560191172594846549817705679785084892068521735321926953577755311534070622014517704067260736304313205407262609001604479831970938676140058063491197561140708691676278295224022619264687793276018014856043364540130275756682244065295854502117041953338257962002143985686281888633162840212437477356227812994198215463714337103728211606960167033184155895716789187161424249641615558652934787221045708744642713103734115329544577346229221543847009430231348964467819257728665830038681344124481952754793425701892227087653892280548337199076367550752763951475357974590054946676201339787711468928803649402164018466974859953563648880041010045703870168312405017802172776958128738226679358859743943228929692318434391402777600797317628575465765634748053578729376201165985866621783160406180999810520151456483416906342528899274731096870305070475515281951825576579341906802561807737760517923922837397799817448876235361032027089484199308092687186221776944566775588872669396137589849790101162705376155354841018393251758248519780605851195814063526300978452692660074265772349630443689397416869870561776695766565657742215589899619005191182819932905681563261324635135353894934162757363998490470262275645557610281605176467942570059261423035502786121236550195300656158541769058365873410857375631703614656890524006001321831921856242966116308406754672100089246901356954645077851857581300649167244335681410348185333528571177215106024974311336882246144371558150247264954140903297639932097138794325728031544761099181144452890432945816377943453218364683473232584298401529473707552284582381447364811413919718033916276151572217215868347939689340825721785930981559111405654567252237786824476947875759448103075976855285291215283595399009501034261798215553570732524495029621812330990163959767675401675647027245130470306273004040596116369186087530713892138742542845776178263191558569805196177914994232465289382870757036284651673849951631134527510095017296475163113222152894664613606481255639974597329484751599945614997793723439349101860557262697658364354715671657862419921385054937968307529940900919060162253562507365638348920166818353773299417471962936393857320197421108110294306960019810625191590791181417772651046767596720880043075646580813795192824218727800447345707388514419416747509109943574397698086915224585840021560296490538398571831987673814676922800155303334634570673133913372018786652410848796867167039837100314458718497535661319354068388996795432764436302862362726098865144688744822396088931118090706659965162648850739166183682103412085036070917312228280968728972810584974655593035972851046984503125657835416674501583888387905535016647670795288317880421401041400053240631579837680692805390508043972714857576643678482165931326080062953908038180418775639531720414197716946052458904344710857441173150359347822420159687555824147250583837051916628139563538500766391386088968474351036350163266773603195390591967583860947573126429867522163630842240421396564764066312827644412475839037333181684644848418682998060478115681954313920227549703933127651207541954203295967423065703946355582658497171910434662284508923059263744474415687406689140566363097204541934992085227498899808186827970410400114689548228564014783666932025133244068831581458584921609086644549430313762802174629265026443924997847580875625557158361934033681661289974820843417999052504043896778620680951001978248354298948432425175902954514199743186989993876700981302313112321614628589938362134578278765110580027700252862257798519562493920849802190382178009305541342615600949532244761358949639074530175979954989932243822791111354528067888259256902662179790386890347898281943007066189745119947229943299869138989718483742413861097954157303885045009625473924569172570572419469950268381034987445076260740592935094066481954075004203794483079617808776299466004876938909596576266788563152627155736112603661374475916925921945382305544374226959304246052643080789311019363120652723198936352298255690486142209020433518867266382521902691438013551326882044446989567118089947123143725330713933440365906142107599938941251586417238588122748849525772518122518304539067181232432937685822895024132117936131323315251368889237903822860093135117328080292549228661053370548740891197474677354978165856656198588636923496833211616278227515616787077369942011618560500607691124050627517626914614022054914051990319376137541901790843753378876881417937692569930119556802660935233016996136814276034997520546991803484380931638302104693666170025609713817142903616116011877782830097306778259200909678901907526657896632054844923710806858070602817051627779865131082738032961639804902733372606597023942131085225811265129938261912935259322667425996208048223690347945620853294285359477661579592396425859884735873414440853118542101658467172659725786664826321242343321848181541887153010725097990332389200371598666257259310356974178117950424796813381600241827067010486142657812236651827514441351157088903506897699692037858216935197407343394254922074516453765101821965031305309786840316283224649741394734225036956225871047061438604817604566830535858669281829254720192859900640649399784463491865146273144353356685355269730733216661056065252665382498649510674607612801978075620866562514106595710831850173974731421215668037712474808889813314065952286825498595646875088372562848625441464427526756743426943881103769612377668122315963335604779882324165447949854232279148894233603242072289899908527599101338845485641099292173780158649927659098991003613544049678335485825817043586636500805751754579451921895831721249162588620896403179182402409884653415082244937206528105480306734587953492922246996299945718783476237674264804039430440429673199109338456631007225661999135218682180180265874923835020897597383355011676660906155826576646257253996650901435883965179942712532005380943563181584808178969152212928771643666493673740499532217212531431234893038839096867028640167835326157632130628398315551492652896885819575585724069450941771256027793382434385696681620820939211706956191358428283899565101433710205037841449023931908284837086021539814442508060862972155952611724519462699438768394996752329863630195900572799155831192206586106665443934674394282654965843258840587890240355326204557655447011191640451663455764799665402424006271489916792512330059572169071380661096236385485522163829388790747458352800414687088960436430674711651629899429470511141206653827886987299155006009200367665184358662056987536794959402321912474532256674877054287159897424380137474536912814752830744699663410616587452518835315326660174668703980779149007676328677466034410461422557405553562625364731583432762883370758002660452936275444412473330510302204620305367264026706630361711587811717362405752087009183116061642940020536889499587767583188327647370796891910475474460900331311595342602742511242725831999738942240141847399968950688808874578191708841608707803369263118788538786336947663820651443368065423015940350724831050633949104313634920758991384563669176965237426292168729921798277521792932468386845506176812917087946012742481365804572787704693611615837271115325764335440089909017011433377853055638824677709523855926897174913696355203867915949360120349792216163974925419302400056208958476187027675076998677782778647854760083203756698701672676544406619725196513586239400957160942942316124219799533215529068537982687914070760615267624789227966598880989393827058484989823316862567253107184021943789132198057952785154822843488817789097213743415172827014124185979350613382452281207749184748155551593714909283839882144880256573442489556493538030324080024461443373599487837246546045101413445928659565061276540152928836477902540039778511887600353431422208177009134209343388518115052343294242785991619355055908141076656088175473522077912418146469464235462273977572038185008109519960812383050780227196355964556753795006966784302395879135739292495850043003575372861348285618789059479376629583307338559093242710784890706964320977623129959126640738864983102813982065644712283701153288703245772698369934965077432602501403366779184278772295490183748256181868209550837464866980231213562085963359785799449487845892274307079721900306927488325150175072305272180519828473717260906674665843883918764886121543187405905855090941483302629375589953563307095003056989169371644847945715964178594014809616561615322523892133293981968094297055453831517075567661026160615847161134221398395969509063605510267831942098197438636215080387464094862391978476037444692743353356092996670740653360347603715068793699729439668652581177617520100666812127134200723126698184475540394812992822911950974254586951381393744838486132186951438212771507308640532407650520913955718095505325941705171210723252306679860454602104437913512687743857799642853706797892822281460155474918269873187333675117886480487415475442700579203047743852576537005985194923973540890810529234921544573481897208270302004061489137831762138046809371875085865304754547385039146082770672420916594357659923595674860143029412844821632478076517844817317788574923150453777943900418444635877308707569563698685129831999314304587646418915220188956990208322510314046236854871625311124898763615345581996929558302939376835415550655980983300651676003615953376503842075767280656021497367754579440573617984550959620414521367035187934986085938268372885614604816195238973638875781937432194681341829426775366091995858869053198121749357328046471101884245859759714848902866217196467699134651550879422925514834713953904688790342442006460935631266200652393842931296136950438975655379991777979181032446300745139762991509836558948912409722432913561680707406127022835893812379655817603280434242195684370351343664411190243396755128868559410395517872508127829069015358383785932820495919386473728355103262056845097834338192791241881171714300339856826799464265022677190681967213919206108624698570223923636851998599416551046981836216973880918059539858314076518712851321584946115320186862312748290969485908870773083993768803403108254939212102749214958394684144525961238786347667753742154792414484664947838894017762805532924295130858924370049003555651011178102838794291613541812778861953960347138201703123223057290122280975039623111299053436014866972365768265337573583126124714763200680820196912000813998944010904069458870626197907664764613460192402879681707184210413653813286022183575910088830859412618571786655661840508995861308536697870595486609287711451251767467178014817417479300729731282032696163063192296810039506993404266804375943253124470373747421639344118012896558042093643815224996440664174035440372978376783063956338870090413035557846284397491986833577163009352606547950237257068955303104971356998123852542833266729178571569927636045165178294057829403768671520973226984971216939513145527720860020110621013134418166349035215454575562910646080893520605281843204167128076530955229313716952266452142412369192504536760674649007612996022247263393224114449171762834850566185463231754948339613497320381575716255162667157734774112695541839001813334589227832769134396316978416035771302906526596828855169109795254413194235194392585129068623625320804115356478414101173452481123592875949496199198671799723377799217147976908953343226038621801837640082349689344804621489198333722370573166435364124870077277211937249758703302240683146356744654259437140674639176163576525211537713881063787856346260886844221795281308386938293245712019672663293640326636899876650530240425115037576533212697287200540257581386275766985270485417722239431522809018792811221555298512832707512499148073963387146960767016663251338496400832025499618753106418198462043110372475228971146505716782235302983721755234757407476576616777529331001003386492021142378720909421743541664823316394122783278941251818526051426842613991899862072614801384235038682646808603247499630655204911511186466009017869653722421533853855927380511857200417750586828063372988300676606088170399936966384491332361819571212510665675823471888330932124751466832340791324659338285093994421969681163283279593016201708973615948456923123393677574075405327230581726900652106483079786246555471164785151761037863366821077672310647480950484216975243413557047381064972634645429169860563021178396649244179416691647122051025379198704481302409360333001081114099558369115892449394361488190651518286083010321708886511165208022662906629212112495432153547878678492908983705953052226778099356394978205341791028777707450493266743534233298759295947931345183530849887239627687125115094077024302484522406208154092796672526009936726683878857522886700234577903560861025951203619391438388942433533473096175287777268805562870383228104531269604139110460141058561568554501910820247285948694139367313001350533425860894769900011044600043048928017412566213444902395103493432571288757046862126712072605906840326388225355027255296219428304974270660161193155485232635198746806099779633175110733344452093340769674726801383519220077093963567291766413051029333935537209151920378197443753596113333249575055644645121713756406428484692044366915154255964930399549098602648063028859707593117069769842902454633411860003734889360513309802657410927740162072805644692636520230828576930702921166879521817539565078604816132387453602550092608196270480103541884461962633747176530909911950458244899621674502348916347818309227413095682678455270098002623102746570309585719385411553168070014885500166519831261744559331290808373835061907436860343777105649001982671248497393235352148165846663130532930594366078944070669854104788592952961645401832762184831647384675301816268027255472222932248515779715107394892591026478332056218232443543166060659167277844942592402675322341516898604641303274559587189765291328233218979151896283874525832631144918619993913536999795525620892767826213408716320690009003228171352145724119948445342283581808658122426902423432448370853684256775383490885772776528047482429195348376477169459666395049334707782214066684192610964276331738386453844785511214057813711548263597830624076383511331020971691387756211709635679658222469462451713880489755616578554550643204025078229976799402533863413809759667377351277661133050233392288895288948980023444442004825642986316052590132941426466722349185622862963806218846342040031936484831916469152808136136417328200049477533555557879400753264926808221299609062605489872563196613163163794126441834399942733290641907059912571236510849740956551271509401677826071397410513134322358514113102429220615885702595768825850840300099455050724056993399123324780734216486825020121234716190725511522845975226139093941830061708234073212747107147531716805868791656373709178491838402835340269167678630244346357693690567725073991444173308294533448188581282080063323137105013186581515517639557811317416620979146362447881557897614608071967430304899071840438787958737114354377170625737225950154015031454790038621425391454134528627392330705392657062289858949371695511491220228414094828329560761432381993313273801505751378762919036664329979296253831157404400496015835924814985097188879228412786349313720619849271746629551753137696289363879375791914583850390172798056096634464673191631070775582192217908232511014864130516304815101758452143396796211425835374261728753985993958136502616883849044547746155562472571739210462326526253822641861240659701030495105158738440315889011523180807964643796959187230533777859776429948367148522660838930834483101809590423199825492403612076761173552674707331711031460121157884889521309750248980740277543892771881727698106147766080922887394935729754373940041622380404741924212823950853972784855149227587706183011150764773783211688298819595128704937127956387940816271032947461382424822050361765557132248457660441847047072783458717251833753541293845778538296893876523020614400812331421557227140474737172194181997545007792508877083774871429309220347694260064992065193022686618545781675965916239246466758817575171414976248725239966000556991344593319309980473797433135178520897145308109281729717126029642034641720214272253768496675824532726857058683018787179465597287765042425142156879731242322886331419116569107705613515494936222994411598737276841457995968818518848310104975981633419468694383819475191444041444544097130509626186379313586722230116204407264285320254358952666701903393915206742370488217264408227541732811995536349108553524828971457643273123579045611410397315714925717851670028196822055090807536303544092817995895957406628113831115415268219074200931751328312412776323008223279693737377621690415772315920884416328156640152703090112595690066201051495666750836571584849599377564088347363139470300511673086196505397501102727455026625392642206394369247576681113690127260873058622182498266292343034421229938480971881263803815109647711728453836137702249340964336836425372995228837241326358739902332060904764460635070789706373083452149797473672782148683805043929597821369428076471420226079735362917256015674622087681274827249527124980976109268090795795653729509616236419802524274118202372643093193493240298567338825555122529015174597610569640312895076981189872005984146141614687381110292522395294914846905564480546954338061356125723153184825618760657415654397550650722006724699103160080084927017907908770238994710970869913959148619803885530225303759922893211301228545558425393909205696597187309784723104421187351077814070402581924452001100117352707772806103052681284763442915570773177860289080044268440049277189742537073126371545939873082810171112271654102350926762011564963476076326782783508718934328389503001355919185546938855482387326035072270899129419463774610127588702665249570041727859376898559354360627718690348462523449420198598501955382172961410949592901656524533521977522846775631353335025916502305589229582277431597533814684769745549075347529027358806224018094236470678248361649369463041553804176720488798029378105412234536996115324070406491060088713741721581231106861026326921111963460483519612506605897436587379200302700361457725487407101712737604161548593791074757136172050557729010989433356578353754403304615569579354007392142894978623018347255723505561069851612328337130759763631209194972675951654125378386319303420651112845493363184695416287090189194533131826042684041147357668638072758437312561672352147516838998908929331111805246134164119226797579321814753765219155668843906135602754066399592099328759780231714153670127879069472447959083926291880143212091121147981500717724408741838106957746545774789705551390870167023286589535097151278289185762762753141061434980240893284560718116228468936381094395674537968869497623655255621603249831933553903167079542133669469620180044889934067018689519275233252180739293604918521533714993226481875611063131017705724051693712941125574915078696555928259849735727350798754116443017960455963497417312599433833642232185932226584522242937965834186374128396437047598047120998652811450298670710195102960994146410690158225612227079718822683691054225268356967050978765569145860179086123297429903881143093760686609270320779441054516365849157775874297876675308477974513157970724195264706254810559307047666091185300541348290401138350270801225823858287598180552665357606324185292458091223573554051437336043082712804950806008410805918056950742169211219034528814040695142271805963436190787942816228546026558628141371973777539395517602138912813444170272264887625242783113837305862646294987583074090975035664320621130894288445012985677600956418965246322367165551310027246334577861363663869552589683554179838882260322897011343808607347157612184781926149210345477429659099514131865035988061448807540687341128472905824510528050236646261190819037180973335418500325917476224618332492963219352659200072803943202053711730818391231218461057641410679872932445953496337903517891858503638525771929768230190117673654059642833329945306783817914415398959172163984339269502185622940658496142253815288152137527323171313914886830837539843785392805026084623355488364357552114715300157614325188753745213073301127002141768553297290389760345307823966271092613674718811012710767133931946873117165453176734595489475304892871075517597826689284447268259174094642923391659410114344151132942024001267192896380718388072771428488646258698250345746234552974335913020601407587397348422645076499446673242691858355224840103108272410682613832851751193080555017496977523611562163156410128981834206495159088067556376647937080685329778448153098469016129846391583879357381337765465385968465052752599458958152503312487302355561835810082638341346509021594852310897676195325010067469939940988646637574054287957219031979313442209646249153224764835854623792726949540113129491279202672900020986731152016564074868680466602850521631613694136004136119592406020062195057944974034476349735813888651388379715210401722443547332840531005387255118182814833162427123328701710927481860209022508471229260332850141576111091868232761212593214030023932688245033123753451777203764746066177804407888685405731764884799930823531409557772817744344307434650023984908183424586633828750440675427371901088538057395371867728987176774138649028631690824317481684979230070201949868771902065434034537979961585476063377588814469509244493233827088670878445977834227632584748909545271177379965924350505617564447694411981875427167537314898542679875302554626768205933961388607910995285808408102465831111159703486636069254826527121408277020688285818683338387357947966966930023080019575047828786689341130612896618352063122504490199506762593412162869843613766539330375496593236833371095292540153525091323786383519564203017139599929632874291860674070148775386146616825219859073400215654133945209700722263329873238959263078079756790459383533100934192937646882388448890741243055195716454475401349878420209871557723437101020148733115057512021870620247956003197272833364257519904525127079063620844343119364311025678983849327164700014306289805215065944079869042425441711595779090537310087717184559363368832538843279180994087002335164826583341821808284973851126705494331868230488982613558105811491627017664277457856875940098098607074549324262404036294250816193919327420822416264092534015277822205168331009620771373474925676482130957748687876306082196005895233651904102598095265184950343804424123669232471742555980309149376523418052415053631982591271631666666636164515450486455826458876281493431267480658835979348962603309543556880164315323405087980651723991160639381120127203612821187454381736694845031129945373797246023119143560328555508236337426955182400242138598605446934742794135168017350764574064128234743578435464314839295760409261466561098084322747556418747994405485339996747357632903901587445248290739928393774902258242060215954930604194783745010312340327070450688869091720359072270989239924952296425637938840082570401038698024737505180482540218115166814798813938890118798548420637531652074709158482444099626659278926526689676634973006747484384293817461821545469421655134322267195123006549378781963740701288375872589783745004568158879150377815553201878338366156820091632326531297160092000603609692086339298268473087408913880095217732240907797256149844092264587397364950912516593638948337763474899985459608738872140299121895572935022451548833499093284388178263731276651103908472629389011514751153294784144346339909214881749710844497991191369578996974246947391399908757439488587981975557993919215247323131094473185058499922429804466714626586257581003899968858835573524254522398840353009472061152309661111810329563488787300177585701508543808389772880832025049953451315450769568256002076551129702091757233694321933247431693024952909174705288597327059577680184325901245107099128976644133160080909899386142627168617084374515498304034999264680340186491848828400784017631231120399585363990277551108457146733164231254090229059674237180189194893578343769727232247903806368989566959537959909860693044585887176362173356352694942330348679649879041207241531741514603974571458650494164456859386014625018948365803643114237620930460630186765463968983577292430967527899109905401193817984797835221949582338103987424039077954040848061238843108931836241947824393284143268703101177660573231070960240492069495299027257984085959688637946421233138777296041050397234452569335251135239838850816849685861985345390632672014821651255168947786937414262435242507769506917333922352464371313697012409547322024551296502313609717015295221456277756559578307435258890990440400273432370097340235474664161445737326579178315292931696326171641832284354038396612559235034870612280062106535422527355006705733795707137063337549733964559084684508915041112681443821696912622632266908071316548478340624510369090902437328824226670286329717460408514918689462955474572981963903084852379987105746643393347631763735102022556646205815777862864857708834306753466308820427826156263993600998920263163174551471914930487842332765473431447323596646792289799107589860733661273702539545459980292185996023521719437139765235452143544349221516990271984142735341504065570109241121926417163166905447180834229011843793484147039232866747086094353824144821629305317378164696777070617137862451786476283162013205188013853418682998709931950336739097921180446237241498269524357925289820666404189280037910144400211768465353961656369098915483939953589070567160227287717907721324829431393747597822037394558845075984156737677335723036883748351902595800905605730262608388361190969448437926731975105372401875014174634472574929644591537491673923803114400914201446597007279072477780735088022251279309546317088379908194497716831069762610344001621004139933038984838480605493181061863174866276147029667844510875234477313044630389957975748435311692391943229697044657420066936987955119033546051831849371113972586039672553045858597079428129564168644875080997440902857575471661192260306599731363985549236992991430199586490279953611221325724987621354201249643089617502862602666885135250111130569520798178264057846916936454577692002236041503807671749926775718449336923945348084078831793490135776290835737742998541257817534018304706729637670023073556823281048544465505961534608942839909302716299583795424198297514919438385224268828260272150747303475473264720476778992303692194059397197168603291910246904328448416034170799188224680567775571509724227908010710955583165885483423814769466948391415401478109496725556428582782863246238881734730185832050093144692117864548661014943762494393871391063501000265058610192086104404650509259193705622401687051075713072126265777354289378801238020517859721776133847713626590814414629646972998815776496526266960833760444042575051317725536267815549429142100018924121539674461125085070857483693530019105115078660689939155811745659462274201302074441794366987935499749231101348722369404883706670477412592076220814367544870329612157667889300971386257574358510528719286377832334829894284114907237787844573349763158413092910483717996646573808814297780528237145832170179985444074984828963144333489966651578465465166152140180870421604354472584525343632048864246804268881420783552161903204358897879149722217059143362899813526623228174046349838984350680444085559793636167326365080409607651529661557230674790414373415509660083209229235717586062985713905546113926064254721462998632983311501611398252282728402788239246660037789539219415143090746202353548933759410167420019371997372028898844420187725845321936418927441254593600455412413159435886511742206143990512663639789869387227956708992155417006102989973573517245582557252292567311687484170516637514445283086814686326766694050482503039722571719482710518483747344962328703766711565072702790329951070669561894631929939847879332655586213740493878224119913587205585605316711886179875853563285278267911462577375239317730866327170378088166027539004011121539200679265999149808473562927941026384484877364130022252022142122775199306075922549835732475109403681692511730983792421536976603364175185893717099405873355485911403218833599096226219636182842351069045921556969742852769736975297866740546443537508834643107822768603562180945950163448129887434135820926644531474107886013665407610191280380955032440630286337193705567770965858811362646592927008923967739973749223005338207006038843787649319275943287636381520558660715448175466354108921721432221774714481003230903106936796931360519885982672621769888053296479663407244499432613583110977272158091779740468373504139211814543646966910767322701298593903403492272382813705942499374761570382100957282543529083580442026742096772787191675014732792329063523686645769964937423002542563091386427458207049846522866161070735140276030652576453976567400912995808160664701643090853519393721411702417807531218188260049060133888114052628347432008013251975637164589020598178763847700741520847051302703535177621607604393124355688614226066058150701197144213516162808935510922221075039658467286003444761773820393721756325683542182945398242968848904092518531536123280708651856921499075485898519666670649580969735634536307800664743045794853619698763238849993516785431787933311402595166303806084504794414639096943423618535952707572121705774267691832652540396651810809146426578190684599543226239652351338537304754464955665163483755534067786795003903543442237767774788154347460053860084112821559775971186814997098149636554085849077058902038065417036296019143200848460054674544971625691639164366262539759006179410640760744656904432607034685262825723452442921225984792638459893721120321855945630389833381478764449277399490988569300253551669343013926547336859659099575986026819570607525049549471912820853052705534082791398686831211388022653190595059345191355315940271042294011196868506152709874435494870225258687299891989869451917456459940179008799520510017477776126815188790885834815796999544538327634602465164387487651943278097195120590465080236362335407887021427936505227603245692667525090667164912768488755520092207357892894316020067546294761224985972953811984735432869633404992812959523310932878816169390901855426775715382879425014121939629220169022169935716001834332751804284483227819351293414419361955391656987043173437318802364994723834222779957177627894892187347529623856988923315135681238757706080331728935299195109802316925241159832407281675939466734512567408211159780870022443872670873453616638258941862102795508050322508154830772227617839216257103845935501537447281595658001346908111580270684906529225939456510156279332600511569650297745952389908968789847178098866736500665178712469714156949341828468958385841126366306246981083538689069020054784043990505757326534640878509559357737381691875100852527861402095264425928521743578389695859337612495942947840272123570304449048677068702499266432821718504797161486241070752722936039872248983618640528578469288266234506989513169834237437954602613988615419740370997629969477186193532478992104069054832484870537306359139653297358291302440602188437628304814321558946819285799885535597940697736753158515401179598182696354306712303030287098791673348363275020423651737736050020366780804545450476055808969040272948449496835771328796518708344028250267041231712843437519935157798446668069665760230447072617520151980647179855645239098437236565403025053702495948718873243248559111685723019152710187635858635151254786252886979100163824086679134553178213320785705971485217425983562240794413486073653511267516176769177557216790354403174326121991036090304080353245063141635055473745861493945310070423537440873786520438669591829072300960760944927792804908961046587844731048536230907204864647852738348350916586714689809904827500199591213807150311320626620718513970816221272514468125222675367490173223745563983782979463237605388479277316567637691148524005702634685248629881597011139855577696980157113514317024039682968847006643802935940496230877440068218749523330603029815393866760076276448340696928723362114674183382346199010689731783098597400866510744136815238821696301781074856208427567009756479100372319875280212954538830290877855727224123158715095177416988448078354466547244244178159390175818609057391085416140060329142274694986617472151823782975492074398170558632333464532618177849688821905396713617757218846174322021954736109962088411172273515773992928104094188196689521816811104226103001330028154838280796621634078589553192594693393838028522331656853128729863858683267245088910333274940622316779327054781615095266236608967320221944841640643458284576834345635622878244819950907485537923720376562597871924058878418846143010860178599664187555794711356345534918542703914526505616547246318060224152694201298276368112688962331560217024633230025284207237095071705310412995548817102316905910119165214653045604875984899460628518256761074035455070872991882106996997814024046443653693203622609503998217962701974692159474037776101310433731513606491393197845880228589233522445477177715827150195510323172135700365300573290257584009271356727544202190811969986945091557872988562191955381231558047129381252237672807239271467823105536303314471406865386811614443742590980936028916434890357309109668133774067903037720163902202694750911118299747867040052785265372084074253176537345772503283425071384308882858033839937288560213567733885682618808332854891333236653039612701224896216568015410485325453422271591417931491166593583095038455969666259229530668991426899841207097949328020963624285042426180718376962766427597192651778711886971186855598518396043944554811052590074965929046083971439180227645493031141261161331958484189213145048542801390922179669034538137528039262052102246317488336590865302179959129995536020016767316460776848450121497355149963827502017274944670873170223673603093367372618882413810359269627723000323291376099252043141916387344836067682664771099610685652039278211316610662478169015149387149765534077399160617210344091853326457271239478762723990827398289010555316073215032428593047464449128792714395252448969667913436484820158316818720304035904930057207165856844389472925104308862696104437577902102715500440414066614251980431147377972622939251571119191781017550316741923790784048100160810281007856401734168569501204441486716204333453362832994816287737488620443076622889674895209675044880019191465892660211137211683057922005109786669176667772217494979739444735818439008831561737685574510619080278040015364366053334683318683351518747626725966656896727966099435961883868256547655547553997137162940985657607515031209927638151645129126925769360046639648507621473883697605969316787040436628139588008117312423608532935890044488221471853633366117275825876584385453509804014059534775769764935483819923292009065945116986656651551598744402277069022066166634523402791243235197584413708773147286898553682624988804470472629024058935915007850428463523257827557781205650780985356056663691422995123274148007566785698727657026760508253559799331338456687294808335866196061557477797086043049133043887449766150149903694707982599487416880550919176568357828613764280474016525425566944092080146804483505540537368081157074421259102649271153929425773015964237995912577088030716552853924746488336835830171292788475266881644743332177260451996052444218419421299880181241370327842027979596100025930219766504933986752201334700261459820958114504895522145286488581337343038990562200876832065311551818421705764585701324806761232726498012035438748766843877294039197823875407334571106227869545860188867396013008457411074847193976054055461370355111903635539445432924245945817749858982793035223406573855126346766539783838898257740092598203230721667503763307036085695576964705928182631204951428871928276323113020083282945361475370879424724524096238627358608416029570501133670184073529259262022548457206690633342936661745306600663463389108692565888595334673713165031201857596822336808125676394127268889224517729698883067597578320987148385709339039331727169695928551479183663121636721878108168276161506761150851931246903671244993423473049412630834697284942481783305306878007066832775101397828927985976094928753245902752182101000587033910169753370767844675344254828285259037717619043265845332510238278632492976845836316498136337570323372839469036843277058183326405694202718581478438318510073947337628252002667646615176621276649914655971836923977597904906633122498088398839504834532376297930985357532903355597351896836738600156122737143016801406171923189758421691405433208362605860284660477989022515664468483259031239732758374105053399526386011510698777061161188144632250023974697564424798792354798235907129176861737361799465599723177218493670960868425616191710020750312378633401751592391143953253395878274089438280474359998254224944105961859279866984004032957809906172885965608232690962999867957372200672270686849987929354968017761068187113839841337179085273090062245409929829375985000925859789726877848716730409920853777267908867194748110164231998856966958403474672091664530167396118992146072045589902089022576579636827707323489369861449932092040897592789439505137445332701894717242190973712065054886833831024306272216191807067685701734524977091602327302651384825433561624272906230836213903733337894965834162833807589895368807834078382387081379685422485271025751894654656682871660099287621452572000491423328635143638022704987139007008063214875472617476736161102467418160381761019105982739891277881635727710233273475458591951203277191902843648345377850595498837941562584560707331424992805552411295601412275142376535139435994922921694698811071265187801620413683984445676250834149876563382676359548711467498405741659555350033685191158860602930512274704596658022612494613248867680449760088926008272975860192467587547735312864754710975755304123290915605080573263415040885695995283033259204282996163140485513215959110522806988403793185806595285698612781150274004250119442835545109357409059819364657788075142338603926838591383226143046347959484802959801830155919497908428388695919977725128104733284849731388258625045837288257504046153021091463051313536703052990861055290780737087586843933429054790701889687917674253777552737789020924447243578824368333153264772372285111349391639207910266868269375541562360258127842243148329950552666439865037698322846000436070510259006983895920285953399023851163176103113773271001377067545306229107411043964086729509669554013168567134123415391674934964966969403284658956712148254508781211566313210820763552438204228010066957797814762040732580491890559442383812998480261813243367652435053072542501409248463696415448603376093196959385869750215475899113839370909544171742571083549952756922586408207887179503397721991449145041420321829632362847396679787311518504402828958420320563398353032076879012097753543964004315790379127209845239940992220588987888907803980070347497884328900085095270460126786257436413073568998065244575722926482551137000197111941754312361811509956196458117426359434995844143248168143311337569300592979443793204116473035181682698436689982211900105414790221677499689158001482295791696027432944213359413684758321868211094778768993885176372697301646526704288310686502852279392323957283594004379528863173321968839625643460932424988116953492390147165451113234605780546284762020221627909639483438153359862466393529609992437467743367637826902085182506491151667675509415503140433635163380907771152164329084955083157228000620037985389750625596093266953004760676648902157255398479785506052501177851578013136274898505741546301412282158895736698703238285391155481382931902635755706641197085917073146634625913280137143426254345058090965017204511029236336246408299865217376508917977343595551106047405847519403749653501085417943172267001538862094075597384442996509148300105926014067718884941695275340996792103767426361524584906545391940721380786699188366069622387324851132287035507535125536741582066144926556665863982503724459895227599820404636805455896600626500153631345120235083715973530192258085747531595244152590835754335923778318953726361946380056478448786743936435216560080423198683559904958530746364299035337473195423470050793503040486325897974973453496218819390871696149274813855531114499641200318123402690347954611914297806383268304456810658240221098702818181015005366457335769984657328203279449405824303221792247885835235000291250021009036158973863599188418594281719196261270407824538990012779590061874889486297053459671129896019069141812814314649381959951587587545063407194211981102139888561497325942899845290335195046646063246846638195835794009883912870187435432182526336997706904437995670868713163930552403362627127930316224986525651505442962278710709586995212877563705122791584483055964450516011944782363566267016023275995518835745203941322282968795487865947425997618815081147079864181525902026262819430265961387689241082073216270150602013008468926959794735819272775063171324867207665137788286026093595145891551115495780861988068326043244018543848611012162537678008268867786045982471351404417520091211636598032180525564051324208476367631314713538194912033547496151943882214652229483742664423835282415704524719219903448980161279571069269590912840961858777248993822354996582575791909348811929795493901082508584241186679749211911578240897447773544420142866444851264290173258606928574431213162713223703080159574041069542155680821401391806755922282283961091504074223633156362606666913355236333974670684316936909285238839389257980647341715775262317049552736988628855451398799165378644051721906175278920967750762532650296407957484879862945071461644207552571229014627061467577845456642918724797531086639907978587532236422385948091912137389886120306809484120662435137630212370485236949052957962698023043489162424576313908369691081640606900057377348120202210800858068292041701814354108409742251562565228219937547118809918574942388458077994328593304294672125064114660025560042014860507521964276723992012928232693674821026220796047687840439383845137948100600613363736039445271257493553909399510059774327574795416853078817658509033256929222985827321239965066440226812642155634570545100578100079321182597064130047864733003688059417827748876241903647340567984234254251848949375765775790495533795055877727187484157904402947698175662953213517683630109903853848139895625682831706441119001103025515790673224142771319446636192517021495059270737618393600082772471881105813683588598718913787027828130219084473646556678565897164782858140521449957354767062015824613769822015634498040225024760158778510549329459742036805373310256738765346952830382064126914773052219037038692990696593738826499093299603490919875128135721739956447660165539836533528921772593878643138920000569919262782341823307111364974370266741863363543458447032885768844468903907544879332334228050266519628214615159189980134819559538563085343913427685698581899601185091022497940271492176331478158168453258993391405006516376516480284909897838684179878585427573612268359782098082432348619523587207934302619327826271047598701505013562281721751974201385535159921197251373919843973834328753966298039793111125465834093321152283853493975769635805722424400846544818648096227370002690243626293826321837219238219560382391024599503362145076052237167323644109390948764869088932235259541004868588812148942038630039689986934189422972423755226709390563914858825272971885689929968108383110401483202230322948033334459938373158335087211762893124366007358418682112333681745378546214702200046921259856654293838500010551657992499192047791140612747563602133549529017935547423619675158318116903475578421738455882838979287783710434265040554104802571744281837019467570461688187575220560382667155430719246980091180216647605281251740743688464708810285603230182907769661328081170111127532720531733115205082167852149663789113485630384585813206822363742167517725417026053282405608615471269836802619204404601838852764687831694772799910801596815989908078384140194343234229733427661190600937382874431179648118257438540677261132497671228072131320438586190701488824267186633588499766334035737392173661632404585390183848172335517845549776982423565250803968614346139188985978601818015545191086597453930829119457441725835932846548714211134507639081792629859759946883811767142764383794213884735228265081460293380873539195483178573948199450630138081544710756988154352956840542350041804331821990585904859495181872604418631787400975456138946480625602273755363271695018574684446858422476513549822381289326377456105042884138933425544130134794765717128377881500518153137029230595320775671510517815087853527240797395512718263799922297024630676716168694907115770810542551525340255906245895796568117779733261651989977467622599140215212539094994199035159045275095560091013642521581254057619748825084494527213550310414589255510612093432079318181146940841756218514808410372247279474358425449463921387321433890046668709369839701789307151318635422615818766817011263137862036503992377773099313824191021520802766908355711949283927487354640785534912926314669398076950382399301689689238966928486012586743525576019873606800579167565421535267386968875618628249166863929769319581017205600012453616622011485877910649111999181993247711919729971313919231470058554924165716572610108489613406690245738065999310777187955304970641890728963458418549225373790285294385131025392421832735143707665368417343609091934073589570740238975198158817454575016480032350789397219294167678723669536193315560386280280928843600036655030030993717240224839926518467665118804101158175243051086653131379488783744267108872291591582575665702522015444924236381466956034871736997668644440062021767538268824404256564914648106339672103324440471765668726837254638388259754539534379431855727022050460192309153691820301727176945571694458883035058164421246829722148207322216200747609006679887815993347611932855572212569956179563034222035671666571102722354444498890686193228512636871180797072623199020824093526025440691765763641327648769369712313349955751085901668088575421153964176988886573267653354163044097243510154958062733256343148211893815694730583483599678866977966483109614145972483801703358281697464742902955438688893998835324883871916585158094035498318570845465817996479474346517957617347221565187440357145379549406228774806738240198250264029937403710992092483559899999027964570063305409552341739566644434865132913931898997374879582714391413085742603725980041360481340883518769366659904838943725092395189958659743616188775715491013452080104895580102237395736830551730498662871191223610252640310759647827174231903799182551519730308782685257886332401933019545132611935961520259092246285521995882821025408213123511896822582082610671074722583510394138673214673611816340281068804236171025274555753452575031277748716528996610288089892129969101223271940417923081051671291708417632186556211254016720169012906850626799509143517261413597159590525809015993967872400732489804948029128824339257332377811327085068712586408445179191120691244163865966120651564538542446714265024125112947885898372459499306014572438700405422700284544126890642533092104413797518630366974448069612320812961744093820961738262350358447570303292998449652900962831476154462438781990228746138933794529823853282409157560912057576968161562727078656941029589703726920363285489731945801202922331596673807476294006150908321021398976091291925533855457406574818592635548653045184442766222975656172062266108612207118881503829861376093831813419183815997270009084216241091351993967644444369820107756280023018093008028365136490688612416285145021174476253951413434663214685581420067388057385553421400279138155274322076623958846362112229156534716209792845348989798820535390516806401586262511979876148455834734364996509500930623280701138534543907780746406008245451284647593011296039168440946220961897529781425998709520609621480994038036468345360087378812397625862657741301559516571867796694263295823512931744232697290686826100704719856443031284906562797038163868378608080884493852216768618927293655437126481725935592001045922425517113162499013709589219091389101182275686095332525607100396713351962631156971854023379273547944093732603561658398298849557463632990156386446812538619217047713031628803855326382944775398003678876779593205627272109086666276954844678436518936620646326106300542530000420147931470845691532354100479392480389937584390559795585086946031913777221518580044367804855231416185266697481079769241169777065372221652473199664591322877970987560391368689554410449264027136254402004872719393277974567382299508637691933135504529903815890338164936500099804203140103664073406390367584114792562297712430795523592288369162281619187202455366838570992453190373777209311042310384650746895931614098789589047332682131082224809933611162598144744187659711996745801624250857136497571354854282755785595263511747465634513137538193903615268670729408504897146608941613081975600394641898026551696011471134037512442843717389640011616532753578324841077571794516665643802236684500037976391722539864901637701678253976847379853678081386613899966693324327313176988021305194627994938496592197685420956560545027892328489309445570176924991749703512801478004320110417968753444068593976786390756579129828736947741841972756934041682860164297707708693298224236484214239766072323992149086961382348195585930777143314415089070449201887177283526662641708760356380572603403231894932289625617334930087774852930888473697865637589849717710149948942588541176587375887521712355512834203230598186225707164092549620973580519685458264770345452475905493162508461549743871714163204761627011497634098233512952830300522728143908598227551164360134611176438783603194534074374906954935681692891472911876485159375095147773367461194793863181878066425829820380321240973111134043498160698025713711329247995630706410723965630872389361657985967166806198978331308270705758031311565464931294754258303064109520110272106760904650881021012547384568116503467661250653595522247914078876202746103025834922548742556390426027390460564709548463359753394430002838557302765758230742566895080126829034044642446200287757205908530340374739881166029653546745675505067591547437201394117910407292662439343216813591406829284531694083386615573819153466844933473196330075301693598849410974101376492582411309202261236902619367071236774509222559889514285236049435863785517008874514125229414495232532912179904136077530082170094749425774661308728359117177017365141249927995169545880109185031854440455800375978063040920093686585838160369363164017472815216327253864683010255187263418732662479161827792618834677428903096779610804246593681357819971892746916772563034021994909706692426179764539593400887762623772029298445376987985190344695070656882616477000025957802175039333596627080443059695429148457824536107098045892206155415893880708228516608488055099335798579390784653438056517915268831775960692379943712110181518893545653319225458972580419273233370389833779594713906226934115670252811614828393617498992428408985346472156742060209345045541476190447830262907754776034106146297574433601749943903434705555003296576716320932137353932483246996324070116905039451874030304662430118475497454662865845348478022098382541428835608615178407657237325957666521231423365142403734968505543677320883153339779694096479084152903765448052828766985414800238375766074692739218615116422088793484289797297609350383370466552427166355751304047836879843310303227915535078517773869179895431269009941836020882877095967493023980310102304889382774392073845581674407641052590456634618151088661918772479311327898394285079337143177542554095460030849637928266296567499210262615574148739505427416250058528021895317223176414389690213886974323878977724842992416456501272546880615417536716168743646200086078143967143956610699865917603478974774707452669406166198549217171082520222661544648346134751909065357334943870539541770173427821522724707200231884481731135424973618475920729736130205279163852719991473417509883801829745991551671334986726908290567640187458842665947730017385860891210721393038991487492284804070257678335409908037572428784252037903461961321249768892876691141882207580830524485175751876118962907916139193682265969252376194141072220143891037500179990966712214843110423898494245321958297105398078541685943627182071788629253512389763876069576931573034033680332554433251736444131249580990954486432676579785377706257084422711100450504310978196045160291418641318466975508804636688082281588654105616882825263469593689533895206012333866075919603454995928619871273409746606169739600283317797061299539213999602231531075788451520267283128205446508285975613723611316367276919079428371853910473656036710778720595021887180726538587591582398451581961384027673474069292411830746220013523475639918538383510071341297500095810139025997975699915753040957064385618429634289553257342681166072265824449563478565983762813818207874752160599010331689157098643369512948865777964588232558248843868689679585662627545069533420127221489651842320285916036791688847392273521294400321175346847672518218293569755618189442069182781672400017619767858691600172949445600443129376267403984162412097516236706336169118612606360175789677324145353437780748850866578670232503649381379019691981290975725137110442228683546744856895215674726950871313725340532139939177776965269031592901072578120278100843932445364095336742181153322799699179122187116586986603340045521475252003098966746058864424164953338317333960535259280101879311403010371448061980249470474980096289550804986561819146581239978965290327753784837900684261486731924734105433585839199543765404567975412863612309404221787525342916555224952461275784830212342295138441207638738765291871969838615497599551038675277536058394957879359358434249741624774244793620870840768597337235541661358603111104243223017940973795255753204954028669763334038497300935992039875916968091530410359753466501229071918069971699707953636002906654061481719602468401011726895156870661475956546675384903241236100143136485065170814249921657530495709340426671993645563269430150218180883402007186423642232611193110138562878036901449105395874938621890946549267007388798441115950667716175972863058859824921470155836897452707775392573002982839259590209914070281494395073931756761424580747793438128063727479208812791696728592423792702813886138506013505302357774565928504277893347234254497752880578261968975946334887089547538382942639395740060554629326520633488505867471037403181611576458518082862942338111889818176505645353927713259638746781597825736465982908686240812305833627818076563862125674441075126067983570814634189075551895090477816539229377259645829003809217022942835850704416944737486456340853391335455662386428747249492225488963274053763899058300714995299351985358737377707608876887248359377101929018129207042984090263537960148356460331261841522483323314555914301842517372740668614797024706889634477482584840569859397654816941771964412367529653959455892831994444112068979273871303039650975955002341671372171873938313406549467080908918898869038410950154530407264694011064987967584239796199012311690570600840614040302162820258212291959592739582273910111440738807404284717585849858041504663025673063840169934995512858296386464083088596705863985406457886888975906083567267817009714186236252639054179830992483268356494914850600543598851944622430720430484602929011184608201788549886107587011777107352080565247240746658862031630706005368603939379474736060849956387433351024205222709982607690924070303049530533698396395546286549652884685857765377393942830517718438832165615791900365931763683052259792420459521931975466838423124605577779773083188405471145511492436378137073536195417831573607834218525738290045520682227075053187243286255769296980219666665351206285564328906344806520156263207816885581419719100498124585748885880947345552216945092156684711463628975030854607487250140144352138811463824520327644785161082402605343541944216911396538813204744577831566383335639212422245797520567679753397261910277043835067349825185358237838332203967027969177402387558236574679846942012439772607604371329266377548865442220839223096593712567829114793622045342784890053014258159116431967668759601156502576010957624597002500743730557038270346611619144441922328351064826530535395867471774900960997467137482864011029307910302298509175999881812465461437726018175931644965759794736939197283513961005716579946668478366016040509646907383408269205381134767936532413208936583356969499246645721850985493191831878834997354693071377661106143236462879011634171333149417983076608730223520893578772766592567726934903292399604666904729147118863330610872178092966505816223708377712271150453076730250039662353121443407656482247121823095993181161794773860182013006254167565539166333803648220419366868708547405026900694133322206445146685753531491199140783840529554967940175331696952665172828883527881697069205441648087927299021777150246024603895726300360427060617623409721309108242638195839821435022921735891284766781493843077948859993081092685328799021189910462139064033006185020095429043778476886897233761038377964772778458698522018931316580193240984557712569716438431130991714653759498114206159167482367112078190656581248070224184047683811733492512601869570487205207433453118929240914897581940496807747415987542908087940135052924775767475119985935390317792489481041497845514058620150015519204080680687842626482472010570502845044947093873118999575349209827570516673721355783379727792526954407047415592624796921797058168354444662864056277128416798274449583495034725942892369179611675019271792219319254082792682216068376661293981328414873360350732940866891634914183165618116023113714903763734029297646065382914324201249401311019781460054877284102740456732411715124110312451766432069066582994870311176299484871766102187370994450087684084045696538428370028601561295730474621880973831792760783661042934670917921670350742928199986894424091164530602748428129315407063521198889214478505137149796547084848781969718488099956692800548967598081438723204166650653816096462391507377949890425754733354786369788347370337347338559690360867452031574381935255376837982176952261592542493654699163202762378604568916371204263950416180364168336219727102835865205416578600255204766611563205655175970222091528686307541761852096828503292731348905582260728435455519466259507036758300439830522108668078870880625810616985792912108361014970969853169367683632456735365090125599363944149258366954777495317431409467599885535016609812009176252134376119700043557972755904505972556309944082711350406190886026472403483622290591879226239017526677627410732713587041519581986636434638632321684219908685304569528180800375935598643188170340918500596350849711299185499554257761663535072530342598744765876526166362916662322039046475202757547612602216208698844343880557367578689330812981803706522505633488637195895770119955651648689555496478099117152407081179268517629131559748295493722354522266881734587452912359000036173557193576748713739220193226122667837572081641210074659978459560824373510724911449916046448713361287553511501880140940168512434294815845042064425315694538046810073848038197773503028755195702223969305869012165011544722794382582232158055081953058022198779452700612035464808120977124465505063146043611693796509393731993569673302100297527607630283347724739517398793843209456115993647976693236605775506657708783994448299920049820908712963895252681695567820262020302527156412987275850702664537559768885642965511823703911534831494661165585776419053713056966120401423246846081281220469206146615429402146003069418687123309475502750327425524223853755734486894430969078194955526429510431313980629842025142645285133498515194209913603344933001831980819550707289693236134908570693125780963379143013760255802583266966759424829309223034744204338050933294395268764229908439184898798076353876910725454234699301560422499891109468788818518286374749765863587690773574201086859436491783071534797905218415943337461808621153586257951550140803610813155244069203900150161422647344796036064200627116517158229667336765407679235271870311487053848860295189007727529011748517684261614731910594573827996421896627748001586402534406137783645059680495840509283416653992886692528049366180844101634875905911762882453180710014548972046976267989078945718511502932462490485538906235649880596176165088528425144314110803206923648110121621387967764871302760166160667175659969841932387491854388899319702198006756420158118844154487115361231072100059988490728053933118472973621291488412243174938180297385455471533952488598264837590935831241069171335012400585632134955575216063185127652152654890840105996350114556302447121399649511401267882008725728347876937694356906945093700296992622362516174137751373811657965832636586222737824462842428744290779541100653962812839860490425176234001120423199795806133050319791359145025622116893088847587146062532082476369433738840467464588862545359768677836415570882354220977958058625433099077089185322865911510586698349799284748923371210151121598170325410485077769137473757792608382266932313483033707828025828600924042078061438904732365500148334202922170297795428845046451157161578305033030734900959751788844830825401629503212986325777488136408208555249409541394087721136038259593247442137421893624946435187776418937310969040225730713824819284703508799014436810443626661047863026077433979601733238900819147192685875053538563834084177042505583120771281197836487612022381250307433663695033834428971585957703591721194291850329639293663840516677197278978345709705134823410031348169325006455632321926795388319495758218193406964220095588987543720517282120908806277795924235525921651224469552358591830938036234117575756210017471594755314857187089882287578976002190473905385072635239331947784466304659567766994358517231555935437190350122208696678363334372488653594869289029953503556294888259293189854127450721143374887817630886053752183099556184751763818639747706467337793444164461714635781876380387393322988831721391143120338800859658948337163455211919745057290050335460762377041047561917053515720303776277372384720917609557345878882772123014174595178689198018545724363045996232373721638144487008497927225052502141809451549263435740197777610766890294106816439395033436597539673584819515504720035796341334872316850892916223016063109721113528868040739980883610970548666112219182868458763129928021393616098575114461923466511559963479684467098846579262590171248264344602339641958356260515857950313307558802324815104154248450444165504051929931763667382754807894875284870738172590445155519017637711178813840819899712124109904211259652160206771663339175887493989793499427796514318573411487069384452998915987062939959945213182624250643234456959790691139275796962378815247490993274988946940332838816522974448570112236437359196296127160581481492824980059969540047333701646802487883746029084233262049414247465318546702108538890272588380998008111382873304475775968866953258474496016966447833447426818230172103575321697570593753873853763625965994402992632078367609879101338069316818373379344688196934473020225848506366887255905711332299102055973757958326159706609154166632374540613680974526479609947238023937068485345635821877400483513949514488897250036122097179098708565545402651480008483524461824076614749673593855611331711607359392064250820238760786013705097420854709767333735457924789191096840848012180426042330330127164079074010581775748473022464618025943943448650064446863275418450351959949910174547514028504438300185884884383625164840271710175212471674140044334595011072947055053349938044215245551053412041486253118735178279677223004401654222648864069493025314866007966187338193655684708338825247611811262970255490841899086517410017794247810250731083570234409358095166278065648380333827198634650051228112255750811047457803529276691884399324557929309015652572098220243994802359082737556212875396310637505664128493788725676977226617434929269062721224802407801776223506638420622621758595890835819991111697928457411534165645888265483349836638100174942546416974261538477938644803202876704704935218936851537458078233467207772969775655645897014797221770499656259699146209214099483459217706760016049987500715708873388750101769051051722987426119809219982130178099302878031107647194096507468157891157519320268768700593335744923782759496196074045774481229660143359739516587420648339459634848259024195844347359630126565337536688059930708672261661528298559731851194543930698037936387343505003271740885559250155885959754104342972405622635059926918847728073434099191428934123670890765994656563548558120826201916675063054077127245852933929881427847665789366677143245162926221027371562583214380887819410348907954233399543892656587009624184510559852617343875804926529031505534263146311054534817591081919401417044599650574022869845305762328015442800966394786747965256160250346644755964465633486889845572820276032391378452936502782771998335258654796367419102532634774065673110901929334259541765327615428210118405212886195711074530487583403789931391347380795145807141733450472784982059999791078068537667296355826575780619257084791354373013074742051851298918637872456282619948103289226440984586882051630185089755568075116509572456249879480848140463111636969106262286648932517674036488709432051016087515840603887372059328967821398499817167028613979656582915822346052603161046835898851818294958211791321774746311685734234329807890062020830022701733774088316751711152455328521422855122459572386065265909538680777091973418533091379164716416988774895119434702461229360197299029520793923637726958369081627250354258095055291539842097670993295919453879007784695364940763914127935530952793799991057476819641916069157555622475537916523091951864456944389240307565151391263433389248440339231211446809431093413220925040924047676187288089360786382570896744504673012725214187914652874047511021572832310578690287353858920146740671535369939611955633509553387421376942753295460193483448773142115212601947410039234366841029776433120189377731505837029543547276585327997198268576993676322207036925866824033984098374830183370213619773835705098020814269062188994818136958098919389248322498944140728533372755314658679891844363462320131428603551626749594374495676838108358138835962476271298568966717542454470007848638909148154777524659686883788456816607451186341750516156448748124808797781756523635835230503877840684729127667657206895897379001715311133615173777956803111781283075458857336780980461362356516791467827169583347393304845871574473161781184432274332977236823557394747144940137181033618508499161591706428169027506551589035428054200244661437412738696224524696963572048605005696458546999319066324501966613734315152668692824249323740762668680127894392016086032608033611971043500746393238889892830269330415992605924838095721252060874395515460890238316929253194635209297591799234283938229097517528617184790368615088006866444769666105291752514553843547292862519918505023482684657690389748515629573080643144335548463737956854918877302812637410164662155741799024047490147927309230091795866455144052855562606106578036708672837908830917701647948824054467839175139496134431448036913162609199930829282589326463613540638634332135660723571827649067222074274767740509941771671274060369472432647732915464598078844993745707593573236141231459113614138990180312720959813856688627032878136256770090175068355220630703280124492954349063243143171291524380801265061060356000295227387944345343131845984291554068013509623367156755138163488903768319205464298415388627105977401613302666981023778887135368041530459579256915153022632004694266367571719956101163176481244173796113655415221168126505529255778531301872068467940686764836022784389677519528681332641462818529346877520624183938639702856865963736910861900507457124741025407059791403736920998531138042553350992804139790547858151436993411465295123216848356026171013193524411267584884082416693424058575577122010694464958082208192743785731605157159065951419098870530260279475516177263930223668037323693732182985574557340984328730436952048150026769655793304944980017685371577743135487651092200416540030351754613305690184553539786865484151410241217816458303218715244131717876077815808464368849470286287634516438760489373713768151381565660017097728136225599731571707050827811702980780958501593283988646028702416422209425055669698552958634524142157385220399884535885442548117285884107850659137713949444917562802273437571267044333004793066665886094506630547023049250963675940557273765678147187408663587611106015842267691198900017158678791075618395781395194272237296734604289073874631372319700009860112637979623610667009980544639327965217315764530562130257140738535867444209451545309463343546364151751798455935452422370903920496884548895496648488514260405521708248380822193054420605649375827292783149460295029781113673753726350658269926624567516288582257490459377972709520806661345993064354592832967891211183834279896291598788545523502001277487945059522795885830873468528693640849115801822830689876209476041125217420304512135300010763504421961480178933825620032655309781331068603569172807071543884332703870344168749534216225962660093326358896788549609731937488256782258664568118372195734508328425733990839168235764019095320282900055359957302433102738747541475690154276682312693652105889833629656049575192656114488178243997328463234772669107703057847439795664201982784210118442730248645508196145912441239081640844125425591495048651846965484137656748406173247080140242563452430542860730517050404174220590503259273681490391079010829171822612984438012074483818454330176563101845296687641602941758796644436149740514501064921311896508165987332357135017803679338129145090832981045252332366006310603570243953020074967147834368624207541325638984110542346880318926938278609915451585241060649286862814231302973964693389724243881414243845075345239061818099777743547779452320089828064110837236724960463303718897642645943737226730707084489539654465868060584142563689057381999719747032702474749718855202742829313407646546090272315605300297467645668213091051522699893016766739439209230672644792143416295141525661602284877350623010437405069059577695239067379024771083207942422200341420929903932402509262391645279884544298416393003446363378484087633769541273825327723607662387275935260471163329290839033892021391118133028186295189194662175131781585493109862105007473920418017680460704207250114329710397040951415822497138960176796813931074300442416133601266057995427455298229833709052305163822449669302029168916405607407512445935469888470894379027161567461833572938449401034197442594759545398589859249478410180090715502764190419812804727505873529488675556822859307887319816141060120836759903904363032133290592971654880766759747104083610573295370525743108037536708268736226730707751476352993605766559238197275271462996215132541139202969720720417371317126793625206448519222018856191705749245917037996408792004601295415663935514591604349526256616948652637939202852486697879013138733082163045474600234772098005175291756558927981973281299500112299123083722738033587080217858211580446922535635122791025918166150206238980397109545967854822472162444979046856609892405799184615517891640954030135961336499569539075737604986340536642257264024242990191744015513342760457248339276702904169194665689126189213946960020500486582087561518888774737545171683329210918852930345570312200150343400035806118927702649509173071342572662650376641107522527580951954950485140529666947784566806100539390370011157678845639294788821470651407825849785130012177393995529338306905597796002513913501214733431961425216311800870229768760164184016885223351957924374750969560085984625533249298643464759169798639205419176913124601796317229545495269489162634979422817437790330502173140693318296792553423407359524096819230489197776046815470608169466361421961072244235568612142850035660038059054502024178143163398412378470683833413125791810960744516465367349637785994263624362502930543287351075441868881724678609346601394172298405022508596072248098829717011811414954551742448417378886956282741370310428788503880653973267950569667351740996321967861779473946790177951178922311708622595163682090834643931192989698421450822542731126265460775037134259873777453088210397177396870045245943835345071869369837925537561847101497895848740852117276419475038241392823379110321168646507863628897850126043169444824230072354970395363745869415437650586919396394661258777427775030986210794633130076539451709948282503908868345590258954603409206424917183621404920607656827455174686949719518990610416266983765868871346091251060265924632730049010301333059412917066468147630729432889949401871983732201448574983990106195575711116044109024262699860879835801378237673840467212540607432575036350061929908899253191567518975502758389494161883855075118860394939794302688448209860274883746098863586174402231017898214152857494370818434476227758686637573224561145002046589915954841765160764214323666858209057151566100544831654290294168905775574357331314841465332753557381448164748886367810081664857554172438696337192842348856461401923941215848035024003434604253436116484298977614784525981395091392020824868806603656684855224887359147505241346493014962300902668039081291800537029335783083160296419191119204166574935092233647262252122191640809830363026932567891105273849092789096588044412496598960931134752373452146214160330751830295473758656170324880742367148219853942719199125812000263236735648011304740557076263325248729675181128196017614115951442206825829501925604419303579780296871575496448696113643519071649098844551816010228469859131867939026770891460391966202241107275204655420922159450699574619863333110391479522608889681624405833852420267256602213957448482792672089869630515274927162608834692128556142100388687777314554463654627767902127166386205450805018095943161163522271468087516782104470501305699640764975391087144259139044900130300193074391814215813990382289402322422133942964885547497409284448922156387369521180499879282206783157970547876354768190092864058971404890406856723337912325519385676371507691026133816846741494256670427079300562112262660400169741330397201820343729680882916757017758663443164549480164359079942572283380931629389378085077512342424730530291715912003204907245124011558859976871381191150205567347678667009180419384528852663622513528767456924472742050114495385262259364781342750518501350276747608486409152294921973417148268295749424649600733267297944728588078668583365955543021186094051573967408031365185217615641279859685899734828115287430394816483719061457407005145311866511347575503479833154497681736910488399099859017637888527150550042187933280404095802566100348786327356667755802987414535532681600941803754201266593758270609510921734290136940924831443172329315673141390431154776508254854259373296773048310967481240163542611540477034318759192801780649067918244769627189129018388753361495716936157857318418217097703911104550463018666964972428654117524700533542224042100169354447572183487898078506270442098374963883679909059692773875656952226595997763513516595170394672595548515899645575100126926713442045225221944283164582618799388169673837727687660083758955538378036226415521548427597188206851498041019944593165569878711853476589088723148900455928608007544851499230737338091845537415513119886962877150686446579367296310665230590962505415395965816035914307407417325544900368723453972401037374272286402712029460282623813349014645175406127811956525709337077154698953167836594113655601845060324721645541412790369285734092643381690447151832447697332761585143761826201374374028009203542326407120381139692924673212724197900192243345789710524333813785221254288469165231307155130493249707639005890734797072305486871915960663358909881080754466357595017409598041559992681393268602285365593222236215237085292654342988590629968846847585933177026815445008477322278532271815045320292382740984073859111640335821240621266424674276323889485992201920250258178794456789351281733844960570589995522229256415334166987756966260899261594312398604287441457370563767141192171408256969081357748612153809573647131033771359240146998661779379696269483894740025361906677297452066835994925259039833083299420510159456757801748719537300287972178906096240677538000957554535304833713376954009925920401470459413552877839630558746560481038679302052839090958724974696548760770551298776423716880741088580051324672195087749232997745288915680306113351883572709204029392426522390764246004661324098864349355923876488375141915674452039335515740423893177884162672279127701947506758301022301217191421932979079369874607744229470475168972777760255934683009103462117778453702622560768345850197986634321553229150165144103391838804250666956731813118126838603169391067344322882342843365407332772047361868648237209337264134690299382225635899900367935521538640139776554924468265635289876795389308539679845475925018090032882905002655296436870526656482079201683267818213021830233500463416002188403380929684919235642676632679244281676462462268405302218265428155604975935864309258467839077447240290205405009917704200267252310323797521795344911780787078079353612171400234272148516225715134167091440920634121015536873778797014593649269018527773656336689998796007972225642921688499295150578570037903572743965022791186997747814640935497083658584243620407381247953111123315804926400766084317117821579495031892002347021806727188419832480905472301557805063670222039054431166345384813055685353447465227017496952407044213493484809701566089406820290823722080644238822913960577631195819522831174848595924007525552466204699784558651163639138837977318926517119419978931240646089110026021431903362657343482132260081176868588147657977279202429679521275609560321547656169713332441652231075067364450667771778822344095033651652479443946979507529702194460464532831096754055402727016908014310465925160175561252067275004075341645411135154344967979692888400359646993708126845558918633433064886154407062260842231588840359153388596856358932947825798447782516763755291264003663548298963263425197113141455252852161044967455962700988733660460429231980593173612295971895383535944537140488763661766101885056192323257424712287760269359413338395655809183361185921454589069865557627746889443048854544619019123421683212712819108165303521333399898173797962907615477771475099815050204295231822954205353968805596641020317755515776408889989100802403265704961968785224785413251912197310172254820997531281106793344611156355289467097874101149099307328914587026969767652581676696798637924173840741955083815710778826851975346078467465236856505565029823598153911822901697276396792405690589842209388632162933542512814826697500202591697306461036381579442639331348360726397291704383071232674678445271015663391445781696102903780978772934255304645803500020471246029893178274370964305183776069970166117570442954995608950064263606828662977224431569887454856144473209832257263004135589452837603953578971637301070654787387888723328993444601401178984229611545538528533353808166115336936309390724991525698660142086305007223624171833747366919057481837878575790742619521835196503389418189811452316553576268673401828996110795264734905042045342612417310678443882794577699206247912216252101601561448156300445870798280261720464067649323585770961875594360267354487805282656500081324344819865164192053557831816818981548732242570519512486124732381602583232765344105545608882427067638266995231727971204914758207683730152259437975569166569138897720352158526422186844880143703802502043169285024167315374360606363317857763078037329519379181085799221210547570456709633211150520742669358022588179558061788937172524030931391207906813707035427631237307817212216473323556613303109891567333256809019270492081607387744030384814614215784629979083775312777904902412376373720561657753756727016107049051176667651642147674182164680370774039778560064044340918395308410489812676349620248974173070829449518203523207971363838545079322074419049768333243624354933113048851091514880795488941251908193890668114686985126813709099602745399365867026988331446143540654177028835119593819972562178153564204409631346544915881851349086628477406654700372345781646338425078139447091745871592536206066716090535271383474100603284463159251901460614151606520855718356374954177885135544410331510368458134772739453945451436766803535461624759414072616639957186064604071475274991681300846151529911380345103704277564190658201074549573864384471723026692575399207260514495030647647708687381310551646089128465662723710545044913328195419082604781003839771245693418623457238561151992326786859622823948950376793829216018353033733480252026450635288202949585153371561633653072572077262187516418824221644967618235621797429276583487909529407501129428582498091555435378246773787744004940719526350720403102969730654191645761128769462038961543191464260775224751407108577552408785807640163744453087837288140183166866786885700195342958217358910806773422767569675627150681575138305500058211882696601096947504247487934522023107179315205799330957568202104752208264741843650219556617132406082540463849002909636101145024424061372995780765274013933294320804766525164007436849761231262710952678125558755909589970800506444138443749643749851896532586475742325819452495758706978854978055454312483659575673770699596542580515254234026765783078448500066475347419105362630518867739762323925382673832863376259037898721314317521306108913024981069862230226893072404699149010869215373853157053749122569095062560593476439273531008066145595786303720266283996072900633380751072893361747986708438689679331893746962508598317808171724100412420005542932845008534328240536799930170265166682985081177669047857140248352568455844155464422846655912261201485614669056680281213984970383607051416664034671093210675898722842954673525118381051382971384580102847621926510855859922667973992768756539455500329534086495951512527678894186957686011606679756263342694129998833718565118682350272974990076615503577534868066530499205847554962559300826529402513682606684467505934591959180982237521046900164050883786546106206495768739937703194135827234606241767423263614559376893524170470303560679399385478794512918709642058834413063837771417750076065699707203622474661101651079654429406518231192938730438345501610757408467787108669978503333701921806944092533353023433823600206378517214648114939540371321463326232918256320268943993613101934713397665044187445909901188011494641011148518177948892127515186307142099196296264502854851973743018123308880483980671659002160334167726427094953305687493071213606949389208145896165506363522543549382921057452954928345074206070851696509657670110278613653950984438686538067523465025233270011099631154030677099145864964559408918108310715293408598622390833856256677824086271841761789338377662598386596461223757348332945605608605208003785859169252584279493235055449934906858639444268069814271433339989615441784030634524936369393732436573847939314596234055899921009642594501359760418836523983111041339749044827126562918514338036705646596558989093831460389872759975821399221879069113274748780131467666956985144389635493426233761726228818532513997195524290015780989177062576739499940188470434897725707931573740299949644552781299962295625573835690347100913516737068594443176227980101585252619989453374238567495917560289028656422095461813572252218922617535352580454713566736845623648189164030845961454677648053081519175503957173605666927854408489273687933945386378548575958469689507352136072832687783944580098270389325635477442372072057534370239029438213378454285851113612821672486236382222619657032659807547587662881671634972829557611142240857039886975773229723409582801186632348133537413675280788210471683552032968814238308430991095044255702364401069907559441855866285461728452020804865270496756415201218206584938852270839441955826645056257496777898298915094307445430374360988361075853690046664682527909149978263870026972197797578570760126469064392569091442913779574822345678584495030328083454074921431932922609049227745632836793829343500738152459151941046253782487718719109602731471621661491232986261465913338805322317189168968820656707844199581099287352880580832926698529741258323250645967456149407796853445881767595078180510205227716987915640643466962647566046212035128613136963870821177796903321204680031297372929194205812054108103237732881692167653872952320520820148573901789679250872832813614908666558767477241885920484568204224849551929923778321860894326508235260596977304930851188000336458378151301524822022001861931811671581677471531634043183895347123544154291408975612218961376060348286643675507870486453298897967839389608846801518526161244329271136095413786971308353614518884323246502595587186099138480585667512613419177379920253876729048493993624920123703136239211996823241531832717891566355729646883730180388101120735742235912631090220758105595325110941101813814825571711700494702151058470569225179265018687526550955608364309333378693553181643316584391686901142206768569457837810875401306153190849538034512035966739149386162490025591124247600310632552312152287924976940223262501401826804772873205553318642760220842796720237288203879013082051721526627094622108963533212213011240407571405567991215456061376547764829651419779924388751776251283947368255404062907782135672188041941502456205659077970181541116685232498413967905299156844774464256311599374837447204875305770451474212477905667252469714710002696317274408967857755591328048373149088425547458090924999500373170317882095739013982901479544417255378520485636502529941397780130090721375098251611857362431117453687565936579916364903758612375429355940461185518144168274806794190700443064061042246995307170374021368823325221855290172073241452472256703687480580413018112917130194022469046252373008090420623585580534717637341719993711824681341111149155349691451417466645980950928290916581163903794624490413500886054093285114914565433573082618929093443461550404177817918290885334781341817329716940267115532714662082854421755460392457712377832672878723683870828037716116458374050500909418932247506744855990233530118901983833726755441986337267530048995757316387173844640094070222350234629380657490934804301230028530834964875994837043451270371915134604584722937809136623780775358176345071151812785257424148301025895257080928251742154543233985954899547208672925569859126458686268204097132898427981947615144928988983496251681977053410531274740967427485035918527536435295115441772851562282230560481298926383555665011073976695045612453088850654323976893105682954259459081885083410806864056840532117317051864686413026718691019819002166633646147733453086220818528447732140139359952897700257553785057782248364920543111470604681040448762080404347123767288279637019423570754095903771765130265291422238209866723317881850601796592009416664108649132979312979179493754042669992992329971103259114041742359222446876162984407567971974653763562731903257820437155402182087035154072426874078691806864917070442699596153462196813606137368282899109147330129408452735382266817835797452355095491437232680807444652722662500649387877559074583570893809252141410677784479337143551629823280282458389574734709613963967805972721053801519309838783242248588977180891310302552760814223807074672511652909350601281771585457068285092800674664276694623889199736268096518344714527264759420169420045647795671860065165022223556930645674787960257459262074233447499766355930750660935750472668935701313218738678560922962483478102705650362018815085970811406897629737846960947328173938182215613868770900496617490472322200149575419351627672385001173682048300748608942095727442124335665048711583002739447492708650285826017496324771662447961052922308421255099551847226265465352862674699875174919564276884669117630334423956209747776705863132415261903125445423387111026511423375071137102783581794141517922744052377551259540018489343118094906316164720294391232268655893795656877814829894605854154064758025170255617744558721884356144671220336517528052597432059814701336334465803683920753598196872690877619332057001666989891303437410416555154940688565221343228240752006028054335999866767068559924220863722195486070076501335381192480421571628304893852862814977842173743383724297207837315587220256656767543365034597753592103363171113311760324735339577531232592737573142677227608985948871537155967420815944070969571849461417252414947345001787976819985758480565271547371884732846147732762577218727605447320268364928753209365838181928526177003164383971567979519717668116999132386124697765120990705359019852779395771564600961030127526263591945648571663584009995687671919200041129860791403544737602799886143952817549997113877470819186942893175276352764211382069558086203260639297468549211382209741020014882784109451524448808128809138339243547230817276374197043769987288752966200857170563613159850979275947810338936560096111622861640597719485354192494213377823735372492948325773014989759060630111385019673155494767405964043136016484384606061513304252727922985319618589554439594915883490099316510767926456041410634939078050051354154498024250430504820155495074980338716551584552153231057719217382464393080605555856306142546040792101152012487675673029292970771320352555938309272415796347162408029651134485580899299025266131642788882002807529955733296202013520542133615273777101414558265585099344947793542124974436876768016794348329888958912793348516468526270412257518375571638366822103303050239552267505417020215864801288618566774887181586678185308580760736790026190824345073063985530568843410378712986350740528283473893023933393361112878286704769860223984569427035502282038929755753215643652215728587861439425367779945474801600114508469345364187241183508143285001036672261736395468674878321899853954036195373567935039344194381804018900506419752413921303934924979096277258727162677284168832235057028385244901594771947209015608233457578269245910412773416260024509909406846147443536852032998117684241313831629134981377935378184667448662122341510863672037001370387776535252434155133855659219891466440018116453019550005596950140952622798635724953799182381207585762623258460965604196843118458343970131814534048037424077228009044666228214271744250414081917083494567318924172607596862156959014281046523323398674867749037548975496049468574139216931221399149972037281203780236064851492877930280247905722210378922733121049040734788532208273207708628802625693860115378458204614238912256464119815496546551198774151949441836510595689152152327369749873967084381103481123051684342070258644609087557050052039847349697638296161485109313771835580777427103243099896388840793487606103950190399247848949106734497546201146450394195241158235225315937801117602393522783846635093765976265774359316467981767747926414913402468651739641717461028820437322610253463955397723541671226962827056873621928021509868428909509252094067429281714611177517107756446282914968591468637077303149744813684985606775137317149639281332938791759702215369608465255137415010930799099658603445922268941900271607398937550455584497018992841191848741509877203646528470920465848637376272275073573695483802415419119619813699712825700937543297728197275470941736639167808369990194915036400189820464588072661115892228173451322456751549910195366374637016123703333691588599361318992457166317294665671486467659669657509052000647108011652004593366941043437484852435731663995277705454549781527099059796321530958206261129143080593126419751129921461050194074065724250982241573026627358453422850610569251804948167855038079136111824246927938314099683469508948229252429057140496369370444976119956686970943084148537021500890189782722667413161533672755724365507064970608654138826553472617667708658486902511950960282150448583221246677752680170414314855258814651775483042813340939760645323350040393569959029268216701169191320899133357820712657669755123017233523066241981161213550978855557360617808043695132473592452407092647238277900656677123733624719136937056258688877636125156622766523399018392740586163954685829204897055720970899261925626317220035485821529189893796740846052697614895083794274904364773555823786798797985193099549294438406109619574045486699541613208194685559425185200843607695601879107397447819632619892055296071762982136539154195754524939916243248696673615040680618735115560201651905670802093095843016441057218068562434685609048666399293730427276921951722592993006379498873794959119916711838810299298766273602401694123335793291723457994180436179249634265245785643501653353547193322910930879739875621373654629773309631997372010168665873788052217712163811472760748250647255032760093769965470719479160056923899504475213878789991542660194485141654606180231447229719809080905591471871829135049000073611370592048982357796381559632308568881935345367414543202985514601025579071899273123246803089672806844324609605663133705710453267803710985308996932214053444965503813910334024515777585661273544388159508467634509472705408776116183218614744936503794975558301205072608151229492308097192309171058791269229806522565536366038645988759263474903938045971040722425523458192556813078612403760822053744022173228377385173060915685919966948794230918299912390823553730050164911533455709564307614179410148224111601062124706920286025675087405681499896240568580677268777020168970097834310173328573979533143962186887580937011363195364010747289270445871643285200633498208257768300852759819828738535244884807293070964861722824005105493161809330967533666737616918011605356748468540762212790576017294748283497036159109534959589214909234557222782456215335049409249955439974354922337489738064525479421345019493941225026815269881192857032526773494028702745048216393669582286950231445175080219602722322835862788342818656552444250790761916819018307759762782290556066341716786169510273393153701879996005033822059660625782239674981683845896214057180272628231287236453535934739886870758255412632746971149353748156970784468672701408550579851701898441359919145019480366576435516083655797803842108079324036601971865817484131768624261083754823760797378171821120103794329395661510545296407567254827242702885087419227224775502710921240963814838271711007719266011351007472121163898803037240506126258097215249188392847203449444990795169624233122566212976103838385127718436211388213724381304478845240254328986708245736164832453607932173720095444674033703551482782784641092261549310936909146394443717559261778317999019781659695217026721342373103365724992046055517298313862097507166584934419137030471192759366712118140780642325233600969793965105133227457248202483821351029172103393005377809427001820550057018494626448467786373963395236575453127976325487928164336960360851887184930295410651438677308486932379475116883965501664032940605161537090532015281173070817206726412761810042379134905088083999007759979074948904270221197797626103052917438213850385329130342013571350033645130980587147962993471629742836393031660118567213700505764530007287803716558014598598104861739420319852570710063627373250603347737306616898096504520541645722367025655469681633534682259496993745719758240987126736103711942005398412483865524868825565220689335211571119621846837240366449931789804867262562826476033387013283938411561235783192363740861108502093281786008799742919690844217244405102248519866695898549129724684844499535784510323388403229169335824056436174579343317000541408765490313289562009495312227069772345865715682204506489699693698078325596153392017557973104542907188469628341115999853301778788004876489798890549268767756664783700954537038657537925530323341394915477890352268609997597257635169279630731223608483274386278159947322724058812034285796178558181350432951731076948684380199481871202844987499306232493373671012762611550737293802793035527483788046558055286105343936033919958442949052702472325899098089450185871838424362885276534773089804829491695093401853751787937335165213978677555252349916472406524271996815865830335126661969045003208603463226551277308464139168440167480192411404680831082510571611737740922216793819023869210184442778661967359718584787722714165807024110373661420079495634525421614059284603414356524553330294871457313661892616006075392457424836213817798392203163197157977623350941485385129129351148950208051897825365801974279016227802029394638545644473289833707987077860252466909480525686489829361598485822949010844245760406995849054806387858161870985907190623386804845477090457631171224310941195894022251622696903811222325871869677333904105295260748251897581838977351537581368123264194744578985077265691103011170393264704434915925134533546251506304719002538312181769827688498176438551756595028152588856529193010889278500582098200016459987410628114319555154032024900395647138806583727611026576950367526819283255054564913262428776529648343810915925591906279456625951882891473406529464383661778642102166899081524576311488925881171016657928413136069010448440470703256561445897673260185978476038276098667435084159231114515266880497404518731178160335315273997097601404742299645139845998686674092293702780182445101455119924069519239018938789210940750747317582494413548091336149974311570087450571683976397803115534218311620586604500577396637796758919454492397430595800019762444266932664088066164107836754788900393365458150054992383386856114383824893299107621269688468655546016684094884026396193221113822532555491212048494743075052777594141745932134871908672467668605852212091023494450924501390408172372361879435795659608176962140500903639739381644827263654150874375800560723987717121997474375895675189284846685821930759619828911532610905870875766542547476764748796201571867603451202215575781305775760501920409037264023344698228107008231955473838019218135225991607098793194142539948591314772513289729842375839444407933388972821771813941106771471694869699267711912254406620670600917340756966830063367724811478761225048549948738622040898704630831521119804774022312284864545365872862074321549683366699089180297560903682801812499220110657115673938998197789074067735381702578486104383600203581137982063249152450392669061891378871060153007864013642296592407998943675353953900855535247085205773281370700454070677117513308492887579212737662257801756308951321067219838718798072117691439959749373794363482363546961158926753884506923583915261679768730135279955509564949899030155097339632204102836799860576103790016767130340490049823294564128220530126093390381747690764966145566319146153599336912474668303068371245155487507137435804360479587294605792487886680302059645283849893281264489856454579434505742088027232233818035335982126224068503991845851765360373977554996259880477283098631841840606033813292654644048517544065908791857018693979909791862697978971870334903904202071939109765619416791238419554344491805830433298073853134967479222310965423616575887492396775371787340613601812157596814670146864463731456012195636958313312064476880720871744692728481287243591672199924602919900817279851736018830235252322658395410084218749869901361346863650190144381649570723703898420623662305336023466002419229321768776064603105467565334017541915831225193484977052628715484484827369964796722627253501648882003991478536591292132483814113975219385377548615153096253142861663440029660532785939991988663649779156653894456188759365321370357069203738264261232777103672580689382869974704992208359537440319265448544436362782805812573166438954929417999710115984904610107514956214082599400937909114105071632318345823207260339983695011153358239106333154401304265105075417866071373000267874893923204805518979042012953088994678813331749128187995846601654780408667908293539173763390331521629857134536551875335768914629731856752981755231748673630854260959486617922719811307577560182835396296663195171450418910678716253302462178707281873306266283128535991805953475709712684772423249464774869832667193028931792469292550754583007810232115249504630650715895631455981939205108433366639495394525343747697685285010119701579957905320581215001881647532689129322194511499161368110650690246112092492058532077389878718251726480330711692880502953223403876807629584533788309799481991194212671086037956036512116150131100754564032488238784290764960347697420622902310615555956575511397634863785400384944576468646265264288152822166755345476431863261928182226629045077821102178068119373269182687783028031274652848122684757558777446441499366488514623948362157841013815931683931404279017637562480640289199597507463256537943656921906679931176055528394123243889052742561880677768158433399813689143530940224843211559846223422564087840419963739799783438840734793695477882570236092811594150083488842846319755912416315324588522344251155332257137490968540045709135954912532034348141990715687957385368264777451122893024538498929364179983581257580173679739278425029109469622548217727219712913054742242669410821390683377672533769334294011431703028964429349699399489467180354238917102807852893465792731738573055405820807915165935234645228421217399572922257189581559768630127165342594275732445410235109229196810433752373297451476455374600960004121645584946466879722762102594716503808730144827194960817174984476406746408072658998140745371934583065870750593614401175600582358926901122312320928180115747040089991458023144890710222600664258720814997338290131725735205759492416260230326106455289484929775723832341457998681831262700115444565364028843855758673192426608924168216866519657113842095354716205935397860795123207571082258755836449010536210818007462858621017368269720073865221479222082038485098501181035512010922627783958122810533544003453398432356020578913168311048481434412215794780180300948828188793795780783775312150031005923691193691992245801556764186183960907145197325830788160446745286432565161817033539595636217699391975351197776938928279326952818413705166139622503026487295342860018086920641305222420806827119992220433390026216664917949154030466872367503721368599068299682621242645308101206055619936833469789891605320881723841532782286536281413964445360413852846821757847196396960480585009808652512885604326944350990347516144576043665623870677505617673404466504303741379776062355977443725507292209480017908439105779946884910120262346672732489952862713497067370216324673077185561264809646798418401190335550264428470484471086701194803065503035096325714566061204324178897315978102608428134669750172612825763971951313801142417084218762359325392200484928094863157989819965999093169852972052229938307100893071031699759336594274390177931254351202167342494999902301374257838751089223354807931539616850341861101062845750549969528128012153318176235809102259746568958280258564588270568058476225066884121819845224265771337333351547747421360966941793121254893434078442802243734783298844444362011892278458875211292553756786001783953490999590015514772032259336554758118819614368205342740089010792922601101399685090876092385333340895901771034902556538679558651287856221731689677350590829106894823785928586383910078642254185019319551769346865796971595034540860506393203038543600125046784333428252336815890770050678501041257051811385272647805805874126947633970929872758909313456903139995942418785541999958863431116913421556316319458626013662802272508333518448554921989586602177175887308957331620202162488428963205142970923627192014669229095707667957339568389351247448438539073589919188855899177554186423983798224429562300983521736957807938551631796910040187121254646850628181785526748784109920649933059496182921128098500706150260123796549191248488513223072541703472545837618707167321050312313665143272755133463972367661457039177712973537006020466770383736685827974666525899355245703555603393114854858876703862675179717413932488440233703680552604948861497035388372325868509893266434203842042902904603074807728870511660475726063276621303580890166534444108161539062132784203715101343523178992154909069090909818232360891100242992843828137585333852454551815906259875120079625703782724579295460799457472575377037968809641038537533434111836266562941819451344169373171353433926922314091197555267981488660481291955649550884749612143194085452798484431315694914946075545882380420121940302863928751958139491425280613890776755871689680925452223337672700519547731212825737844078293291232374789610858004509041667486467750664769487939394467781633187180649123380710431871411949906996789437065899511385172134262651686587576145959795211712224507167161417893997361860479210926936816481498606806833593135841453382658371740330125980953285988391518118246016771431403674936777352404975703895535195525666377258012863094983816278238191363847815521759284756139728246729073357147495878395104842368768826909759855916643898188521979828655509872489379449751203207597066544296480693921334598639124058779318026180444459650379851898509203866259665389482699294448524231496369719422865486040410237755951595671462091504610004088009741472292035822502839958400953828354302625180624135814654480559391480891735074185850218733175561798906066466101832309943906034259750905333278656876515844321366552695647851089460239539570684401113741650192164355695251408209920261611068992004257899647005705737686060990021719162633835675881181364976872820215377264933590646642153777898679091815563989083117852522018621129435173950202753625370824269550757772798402585267553496579141439356605803416484766369568839696197198270529313283254795632000767505530694607758050526457121436028675286998273612050700394370630841487808410666859065431190819011170149656084237233061270718230741277476515070640957203595423230610978310095547819811227461465707547693310600221775524273944379284540218914008622697619966523815023952074702435164862466809023599105342900812443229456820351195200429132514578401490386929420121202549649176853422686775543088643215670293490297839747680223217664431156766631705025772097179986413548764228074272193691025497331616398717201943624473363593069794558723171880722681777062518053887470191258247841042963774796388693254001897371203597051063253665393040274200519451473614719807515475153656443255216347188154620271449891905680654376203853304236913326318896054232466237263524261145188889356342384624255367699502056444101032511994517651264963792914781645454866347864357717370099840791706225588009135221705859667014489237909924289074590017907637732990835602825799294910198939097145030285718136155112274911055524349748266970609302987921582255968156201147389675975435541569769810623153200502553995160957835089347268729789249869484608905503827465145120242943047006127162957270679520857655381930798143546237482615556797790163830587962798066704862792700200895226326669911138507269796500766238004332764389842200070114911328727382997068496537841655418325411710198624866046818686151657485173157677950849352946903763861322149487410215933656736498562100066268190569182571845318052212393638044983370161631414380234473548617505672882429615215921837563540767421268898149206381567235755736757839858837315258939028347571889832949803080969111486424859458852512107253298481150751093619809670809028043036837770964088811882176370912326732923504666088960668444510868599517001438906379412881038874460169431914969767108315765318185186479782612531454718243135034884087488825108370216739735669179765287252518294435014632477448729152918050371509756094068324493228987411980003587172647353389163242164304211863911772161260300267537892079912397156667236783185465945549772169739489178700385715111836080288954423114657927074726403348607347727351995564208246312020909424263098465461272263316439240249201588907805975393840520916783511900489879473497552460846072122465151791303896202138893106653384598419043258158199932314352594585551890679000289049066841424905425949325505222587432573466898007395358444056746182535159026498779186320259852763967752089403316477098618905392767505336838997690231938044772136095359068496353271405303054718285803078461325022716476128095841929757191689741111381855405338721206970936807488456498833449098743365594310232308390499671256474087217863146995038613733845030770623434118792841526182768747114074465877795457386536980529496413387158200836986886327201861740198611459217125725864438373515437594365646468533127128975892957513214364046142116160348181747540946293742107838101704518386784099553780512619825835325029254361323816349702057866588418070883292887484549286080890034150642070180934856285333423673516818610962055317768503464890483559352423722408677765945232415629634478337685456048963568981386256791450569537733027925100016163039593216620603711607776465453890142807945695257198758584262517633068331032384109861393263531499507004371771996900706023979480077807522183484589460868432420606073119186503342991965027298231631501098081921168650323576369212507265660097418094608453071871403696347583048304943489577275159216106822595686650802335525600851856747422811297755625849262929387812722596722906112936340046664975014512881973159052472417855604650013078775227582577368561546246712868466579386094125638635251537430192399985674462708418962803691249062774648848527609881135542755697230770195061552534766331288139662515037106707191569602553729652990323228268735121922121671256040199412186429118791983662015029407292314723126343300265254524481205865998280001020394107488249561263807547817033445178740517634011434223429220206246054678945264761823726933232564992682684125931839327483172749352462627109010179700455497848999324373643564413051599635482598995558610531925338927023450318685818783017111433687214231118362372825749593957514085261069143097639664502653992520740597925979812752998804451342285705020254509780402374027048274147474972275885681237055030765790219037718627071244099060944261677400688750734065660898176537470414871901511544824480750340087562276266017076193841934690666417743562956151349525943160350568403954383207180778050928210371623983574991061646483671174725194085104706701189470618257773505108674645446943867755631240873582820915824591565054340341732180253838394529347200366556827660328408635034924479767802019577947471782418799504046119091314740653411894180066415849310616587621133085757845554242393647057733057609158449420079151334971699968632957620628609705357230122762908707221186276754847615737918763025517954726342178777590161964814691069177476490963179438639785872493176096039794174856820502907398561513027001409154094395922279325211066820676179837890497911633157391428890538743751987880296110097923767788103838088502756995492064484181014298308273736067772415298400513938056949707543492522634587870021399163847020218689334099373473445981876221116381984992063545474083576625325568988850224273571016386464504091348032772592556508514671596829392272580920432177520531940519362263137121247930629115050195699506885825596254041679904586094856174706041668124860222993014797183627322426382796303471290879869335406722258495367456514485446731189028992046244673480200279231441236106034636170944217403465874814862006936480355756016897002795315391761412992088657407791881548786021035095918534530909206511930831166802468970167553275800553160394639433566664669993937943185059664329994737156526101402747991989369215737898543917397454718732061697671502281587604174992796646192284289779397740340740478507676307170657214347703744203590085685111223122272929933993994491294856115330118426310603483289462294799450528736089930252138398148907020670193454231225589930038860796707390304382121462593069063376580153160941972806085198485076001390877287036063690369692911832616424832297497761762540971930481176122416419387970170018757807270535703578265934566638385019500509280049200989071421177442992384081568074495820148590935639146359527061517945313122727258640287044420692200904679182669391031243630673265344818942281880747648261793052528345444597777331719510349732248661462581376542927706944091415894476296327444895010652043461792267604921986201786170890599625258289904224930622633034957342921821094470939604369407770214337229444949831392571307246486992117086670452097363937038195933752509386334123666336872889859847053905585884039949817110848098436911270747839082175061423756825944146056558716191319922853413677941645373748001312241273757277878547670478597335482290438704751342638103216098867974833551202487411315009290419856778960331615053502671641300628251594461682759160879625014699294453657776867583789543657825462110510934542441566423455741341439039185649114004183777836906914783024757507888096760906743495363173765799981816324769598812278253268074472487395180694926771136719753381246460237346404898711554949452587858366336391635366260605054756673921791078141250007585450901494175159138634742074220114607770051250448501552447074745585320066123516977091257348335990411049208381831342808154954838152386186730750417129014352522056643585663421172659837901077057245593021307787945652904027870062702817491464485966692756852467649258328667196599127921827809176257395478767316154152176461694633306320592442956268429701640339185172182920068396048353561148759775280589222908288488095430331967634306929019522696686736683840170791993775201801115152127788001404579662506199021071698366892205644332253708656994945935989575458728817452166876655166048135162947854553306089352848271305921105470636417321175826966699086146045023190180184019233563262086817688987783742870935467344481021068186291875819944764745358239765450845649393922151359030889759069022587091995423796310104766202054861305026124773146359291434592235143688853859240536820663617744579483153370359562123440754791752401109910500974551818664670035928718468421264533854215285629964490117454309904100009114876707663909219794498192861559798522622754492528352206196604681016812029491243239480642666312028694153041451526312341319162573745687979147521649903935225684087891216087144107837497293241238364579606020811715846278284871615564379696853820874391555389234578136336347229771970388900357036153502892399869483949145653336802665857416849710610993178072129478007215509415370002155343823121389197269029873669543404785182224698090195269211609869331569209467701987308097805746416833648899509759929683107096562544207337580491279836338289188905407840334097853765589290514768069352425488615169150774927724827727554550065242655643606703320428968913783323828783225404039834535252173970674358707484269837259913986077134314420516715234943943825764835218561557270562145191787665040615721727196237965414887340407434097990775235360649814997888219012461600410123647252725739552122867183392510610300436596986961250349468242187543032155920518780210407338930262397278690348018565239620504647221843775745715971085628695648523648804147848042363530246192973635643493549702518120859242569971366844289725629775658196426305094102849789108606609733333541439166199520885566132930223302826825790447734384661670926019429318649384256422485514769671710080843883799138670388809490663178955212443865305998502561189131211027823640370689887656787109395548145561692448333007378487154524556155615663599709542962053316557690736360998656463067954842888031363066811288194016150985624981409972824159095746775213800376989392907408458066295131305843388186251391402175763923475427972658495178442224796050519218824678828265021296812400270736545308140090561929643133087514385457445774546993466847657497692378136003776771945854501703755946339745349130871049960003730336117495080944719690484402931951576587625627671342729699627722531068770845487610129505832931013280478217407588678454283805306485147658909395300187793441468341282454130880245629542581198124576147146118695659478479589198709867893563175263184400176238944704851068996205553468698022058745915590339436670593647545221881886386014557995656710313001096477544537587728173419230413960804259330545555214487127487320455446889549443324388028967020355221742271766046003377977377381469916477555389054699320220152647772009634577586917183595318513535577657139104902267075426423157373763182971841109400535246630093375423023957559414130036567280458008656807518710043857332795354834942349911339011056036131991455726356000975706793337900586029497250735475484152081920094510898356844546217880042479221571382494361924613912190614277936753591165763639098328287880551016317718377324012398608093104033805384990321568774413014715888123400962700346173668815789198782096628226229131705636410489321793963187192249282411755657386370271438426031929587417415936845207860856813112714904570288622682858327592506043944001051600352975598625919546612141396418367939047509679414241472243146274222893426583083285592709155872694836758531915676478593128678924704190992652523466399862830318611531750894511926821753741663228462123201797423728794122835120994651814714974745404108423636580964054857948088463377558582405836597013349120141122917774385403685187916014926863212665873721636831272126006512409915550225401374254454815870942249928015197061907051561865395071354814075210548537591859917993236112720733067333133749919847254928691544897027865023606485821919510973376644515513949625185390324751490112527558085923719646320338086753942024085512727648163628538100948549092814270824097728727319763832274613195975001707668466189739508418644557481347414685480402644647076478125464292295658253539954750844258139722111755488606734366394589771557017629716637816013326031358286401398300347739155045164457072366931709129529311399683039339694085936907270910237322317735672303420731597352439347278816467992629162283095880110198082288262957506033657350229537091053775855881163027440612238582368705167026569320803345244068171113304496046362177074071827750207813058770774916935835172922316588170571992974024961970464977835097892817126693077720097528851118818676801429642868678002763308127585640020966369188174897850527694915687364534387370547487713153405934305860982282274793280335985962843703169603737153257436081843342473872262807883182338981845349515836062084362904911828384571184804223588800377632433725727785738582498839901537413876807088214331582264393882240363654941365637984084863570364213875470530011217792622201123357610175189432491402122281179474999771931764901006731247853457482025045028439966992238131776188381591223705494023244431699009874213059975470600594602527835107529387229780956069120303910044968769337190325975557459533402495027628509756003680927925906557922834734726598591200948270072802107264365648704918639224142741962277851260674046506697201421722502606306891664019228078172871087299680176555821892202423383388902754254720494769478549506721083014687023043279319092413188254618107518202601095844177336753742657227009785035439972275646008572786944395699714945588336874564778453213456573957076066740213421375443809540888119797321488889144494068271445262604618800467482506917276935513405527595293747576417578644549895987585736318691553563653134533556137364191469953304799262758776136812195186936365600514990384872847762928253671361328479320233281303552791486904164035706263094385701429855684217584083697575299576140060207707126638301300790750365376391792891018194744147020657811209671404906318514793018789063692366769808944311903097362272622911973993509777458379522151919429109761846879664688525096546143021793319286719876421891621491569917885900229670712591054816942785460685961153997036957222442319548872905960232547738375434155959493800377043096943527959377568786919958879692668992085297766267775058316492412834912175393978315004275675866308434670659804567539728739714445036815966818555658326070759163791764465054754052731445072320820543756972317779468671711268379622361253606249460746668492322901390698853348685757119470826292129603589281590432352637148459190055705357730002595344952676821890824656039609889907942000059114674027738464503863084931912777645327275638956851074722212631541393497299295939434454109786988875128814249480633340817401167989213958395819700816853468651596820516478446184258570108072957981087723944701948243826679226432620895327006463150019859183390584097596168344364798701123400062284314514898470103947172457430283166139658666398380232851850371583747521823954058578190160076131653568862768631535317267513657065738933021409172812848127152155936775864130596352271628876047851147930392114193564102039606646575361094521928327754425065277482722644775056752352329593244606306792575329840179946041240424140486422797855420107288453410480874158935530555731303734307321363258535608167335677977508197904638367645228427965561960252877293424046340055165076553329502019550738792931930473960907144407755902206565794679632071318261037416638810021784604054477396857389770560523514280019072156527316989811163674780528141515186240345823398183467571826299352452881593703375962187291439065497862909130215944024492088830837439865404432014067540956767148713481246183351653901273541817102753914213804532935444538678898889185699203829575318324303055698495899777783288164967605416003268713923506328058458040022478503150130396358476725814356914735888994052053987865144445033973276314325964783936655208113742050788014266993842558245978173550169078128744244683420523395325092866043864864435783879046649439973046165857979006260894000203965251596624628988589866276306740619706218767101413032541028961127079603277781780315165422018250253186929717619863498431215862202684028625805961577759080663434602046872424664953500184931131689118393847118779375107728667068341628894869027335456821379109778661143348909239293211823163380281147489130375662917401044356596023839467005078882659173106925971960652596631833184740636160777290524473920410491594206361716368745645960463806573824416437191843037703161474800154785870731913559657952672733105938107076648513441827462141845162390125409578743593567243535947665927671623817468758423358421301260731979400112090393200897109674320877377220510919287441502700736007159572927685457870030366690211145413690475821999019745027670527187682888533021555503093005451375235154082310676952124761105678274250877035697534004994526950179378951652564852661301656127227031663419034220561820855175407928491767973898345043770995990762301633829296346554546332939149041828590114917034597102474609242812088471604079353037974260510767542857076659685057479560483565467084771072794784322644852931657996489520822441332162330741261930191891195136663175512611991304757910983122320717660671268940121269407398811117599656914352976071413850240306768314497487380620319665058544117734199976151561436623637894279207300241438601375392113185593548007040729432547419801152337571994074840811287183241855212112419556126326223818737873171502477705227124031090996383904398808132912975551607119251616248564726817807163116675403437979322607911413338848922589616065990605347551746071808845313014363020990411478369165566413595101782404869721971657389158978248998980272738193221722367380298683168801404598966244139460985156035611354520558986011171405482717364588618169329445303355005117909756219167394571829779484063757368575617984153964253774183715139669970154188075895870565344617966951653014904108422229968436569482434724931255019606091040761184902584599761798324772620640112996466949044807308940657930708947288268553297123193983554115133223861013825413887716837744009038233820920299777670974549215231041639596504381655619022462135210287283431065334611812597314971938907571748070007288975157737108156132486149956711102629533360505841497349427122015981642728617044809192589407217027960343622073201819035369757456673715090856390650870347977877400633479451983770795655006266027013259151457575064828305283002873757524371603930841875416353024982482088336263354166482631322172816447138830148295049064894354017229882216949675179533085584244392134416526654769051293084025902839901138890613292114219339608389388832586744719771785546581548530123640727951508183650024593403981067455746286294544934132962063715142087996221210850817882306991811030153170019457119514235560555779759165285809550284534617913976183309387446645485456101032606193409544728965850974709131771676540992369440468853121029968717003566262757448160864585869618954435389740712860509849528318027190580742265019534908833873878994215463976401220253695331514732384285421949859445377518158401231926079915223811036257460341695908645036836650179997347669487818662418235445908997693793954633521427924301268620868474290697799837262183714768202340900463857122086060939477815496258960388605810214236983825697142452722097653197751812521756382711529609294379506298829001791487526069182417747741076992434894920149930843279970438878170590659666452732494066216875055389093078188179167937401262777485992212858770861462829248865087818067697721720400624430250521926801593473041224726502144480359076446298654966172857248579827508710018453202084925861950195129487357732950457492445324776500137223484895779666134349956840614216682769007044512556395682388430420400390820517676675883693429062658498987379483438261412951112711860305607430497083622694020234524466721821702327676539966849351097990608338413083918992114701633317500220449518572849781050846751082881479809980265609304966795098844002724983254748062784058491011064188766947461917545250066832753850554760457160518581781296927787417230042877658539373041166644324918904458341999089026467120100088142238036143176504782571039781556225579202960754125806030485068860503547398908567588735921457342779276507556110670161820736548965356061382199568625049111775154953694138915986810486359030733002480124479325212956839090895504211608378395558131124443944927696433827764500863915369281403298679303041701016365959060783818537001149465721110252922430096083095043594021870034363019188728701710619023552979790755259923311209266114619006243852898142035141178342624651496254762639008793341672651141328081172529912150570961847028477788805646582216499062707681088586569490719124028308686339564620981333212621119617701239138889246156716320537747631375289109002597516508360161101034660811891441030679167742777373090593435077191971718505038730921648150463869536120444218142295890836031945293435478398169262966945091274856295910664884995868854717058960704445883207709097499958904522153869125495176249904283673842127600733951663074165333578840694197387114770126221731797290105966578964926580392770663629277809249125117157659381096468326944763274571260798001357328354387769899034371541104078189424809579514464047948532063075950074261266420264612621320857402810681566485318801403364696644324160856907116427588324030989171508964070840152707506120643946856847104291446538405073362793182343818250051566114013111838771179861035290241999178746990459312039793099092609400165214683671700166003787106243743609759167619931158030751486258218630152648097405374426090646205729063153306588605123630998849003392343526595171458529447699904925291202003101814259456397054947164493935034315192854539660047997127474368022758010649096202302686595984151288003591552998571966959642860552337037973128669856450551159056522210593680826468828080165659045807533205701774563086342337531319033742147001729915682832632290649479959429238817023395980136973997834281943954294937220232200438729883515412804279842873555904229813896541895014856937700191947816063454099685962987038213888442054254867763664628664532648852061496669171712674866876630513740397071731845450342602885809830870401557315679866718757993345540064663265914066474894025686693015954933012382191086295232843177051459646534931554866692568787978163924821323532213821475271188994576256211952114045990474112419685777045695915686396094353228443934814884856478985336292156014683725736820295875059531218073104266353201141295433301017147998742679653325550262235665627545665584997616187853070290088443914891628079571637473101731656470860247521406924554176717817945270806928833929697776193956066597358167642153723334984368472201107106310005448710637007037810852510477767457133464164596888006065755185617833823253417989342589696053723576962908085143339005902089817913869945880268095130715293761820549791237292571201122904035957903655724084569695793983128529032027036857877553716058905705082353718786472868315041358826086837315896943414040100819413669263663517454134464491966290650653630330194027487793039816724360904507474215458175550132737851399724832513514919088062732338172003498959621166618451452646774048294870687430285926410330124332045212719562450599819231697672560356177865076165658529283456551967372934104660794601388147006938778729602800963760590844344558460426901612493954536384194418907566262972482461489801105256288772165443045001251782726871240261145162810330474590121849758199058128072651069309190351452845931297387676165496564360468081088279316232734455782374926919936508712002097935314758080010411844586828493914558766558102195869902062740360996622961327287429838366278109046804664573384620088382983516276318273203562564088987061027067620574311570655824397224350709743738139605363233356949879950741270582903576816506032314212800325874762032408370074866726952911302920745418177853193102461706550075455234113864341240465890476143512332103149731100521516635100227866968306371500988135776678426930541122365433186174941617769348681302222552164306761963041434877457111857729737711872207443157998092591794127918342341900738295394149115835926933424556608675244230936699054115113020623501073657120602977077042190325102007509943710540083210380670624468068455234557093811867049442572576846095387743081854374302217504034435347167162313759098604870861612713700428498222795507275779043709311898010608969218378699721330228794434257134292795770531854791425307100787197261303500285848911475613359368751214145733233854387681877166011268579290067058794850503677613991948866261352314785314018831670113092581071545163589737996362855734274795135523306837184377072256023687628069249117036823467155727061428022205850045210261252159321097870055504710134990920123155148738015190664296778014230551112843915197898042534564791731001072806351575006226115484392135557242448021967282403700658247804854914227110911274990645885876107316366997940057932128799580797808029754192081510138539498857676795847223811944425553558898033204872151142764974678238033791716314975202957421607472466693921144935455744638331594912610014885671490326669348768933672599641331179555036666769770551082373443901951593047055795738810270021378043598043445794439484172326943046205008772550271981196187757242467097030387270116607780094298170189821947656123717177989445476769221248042857864522637123369804049021710231180899328525777895971726412768028716980955457685597871719563970085511139792679903569056268043499428063828340028425412212575418806384647679889992235144052939625426570433693079537133193371015389336734144744827731772817603511092949667691459994367656651004251920923422054250930311784645621173595189337349922572482799107574368646745922361237695039925438063383604316797694300638467965908423983840323058856919171469177494405681758338446857977529743633276464027442463009640206773722218606840446369697273705296528736097104149462315637335954043371610015441355475388121684030247733966576668737187569026252350901620852583822360708618686988049355246539592772439153777787675695659288406646875492502091289069270623514311122065985886084161086990134759838539704768960066290996996189656147974334987996415784466339774890517608221543567840781422182557180850053837426201075313401325701184045971934601829621195459427927238372098970722894723939139955612951735155930505542456049754922426530313967106986670605834087300896970899363273672950887963821214071851009957687551852081370406934474696903451579939024233256968201298852513293549489852273809353088643102677566465104048305897190687257015633347039370853409943733194261774022598835077953641670035296605154720625727597794144658014221697926539272109875230350297191912860093955722995530418825931092792517761121495831168499826884768901465267674558438849386311504177018832734967746701935604661213267399007102840174664439970279915380591412387329285554956536305247013670117531928857873839621361534990402258577016689512718220272817943596901812214336804443977956500607125237281885435485422203957272511356625810705200573662386221254901231312016117862150691928052758828308766396149253867968611990501272438329252260520244752687030172137276051298307374119843709540659166594680886781316237185249008859929989704249785114209963353415626406120551972192063236445934081265633143307244303107083894879654140726877916706023245078686871380344354258512732387595848013030399981039075346931234099917951670076475809312112632823837675232843971913463362657599419835586885558386669971820361650810684454592683454576356304257376562945900861493238329448585815349688055748052490096083819646179376604041124676641339850438791686088026351814284306520142397350427625008664519018744528638708793281109178592921745273944058009178909193589843721165068623258019758382899066923941158473809967929941574746597216162628442041080169874350972327442884025403258059526619383332947997829718930611035294299997120561648107411007605713777208546765046635951661469471465819750898356627589798805616503441355845073282540527072193203727375286530187545616914896047532224628866864400874346173222262067923681599624470691322904613518343656776798445607804239882502535561984055680084539369912989525401413877177236732984532709030099653860756617068623771914060955015711793358190822883932944934929588878984930513076445780339340355851574635041610741424282822850875005463185117831962334846701882011033192561108818560909960357475879396561633043838071152062917380016388077405156313357826367931088592582973534962475819797901132806120002171435757609768531647315802991368419079248203479947678879151411247028197942946102157668559109847149795798413359067677874896673763546484558490020741274066912814476463492740802109682463185589844046977615103453425993419690555894543722315084033315037335489361463547105463396440078249445414801257568106093163538291347552188091300384789821591384163673997474428554249665711555376141928031016143796218334345319155384900603463740714929781721611213939466511761623870508202307457842797057505046484279894828496657199677145375990800818514854895425453098543049775129491288924846846825498364779667866732329991754558498705510211202750965238625739913975970596327723161189307809028460059021545842677920532183388475087961672449604036655198223643453778050892256962727712214432775277719092757122203196872023869151064607340040833529397755093076196685857018802177355178411075619856781829744192067342451100092667650912649538221859116006112870064218352645886437664574968803586401110709891227009138750851624020322263965550530148446299386991827650654639276094187617001570116959109396062657319451490580610012437390219116329596983574642970498585973792383824833386603835113851784120352878470909167305889823432160298399944916531866791982966865543155653938354690169970483575398402771729262923961896345006981664233316471315022855743794100033295772983063902407816074469065630683618612702178890607198883595744935495242253894851681969764279979919360913948559312625228980195015169137941811935606145215546154505690040041548934289371194239581254371036262304350429024885163513474288047885275531046059648871780020342539429576929470727376470904032923939066151570201145954946539886960836329789860471771809928099899036796270822301840931342544756872655976396053314821992321902187055071420718984993593695097343134815428113843126690543033830139481897379837147690122662515965895863609284426857826898888901055806162722423331134754316123047250434985959522102895607222862154093852250743586956200131884804922019455658534297840699425771186758113127233518910659751595604853653567668382821124882767427418696843372615029572191858131659704355926877074566081493171163796429632737626112090487594585022500641851172167511910925318781681400874007630010898809907951640336226732277078146058649599968586050635765635985839334340916249150235014660517165814985817338858705671844777486563618144571471027502552535708088584016376019828636814833724826655834168997046457101771966570263359516621462700680929023520048731388226165714905639505538092537608794382605551747688975249523100741715414573182077750049738467720097672632658526783889327525666933482165987846902306547781048326309380538806233813522363219271132961380856918994115350681897773786230069208597858032625468417780794060507386161234633230786049561483454704174153222663152888704636268531610307257923746730253473520883862975265410019895021649559925725695610792401765521863411546048920655477654283662424429220558883176291030923650915792294806848560824278734417713572210268685593467636649681207557424196260317428183454023883572990790943121251083278090076976379025914927619697678056257793261917043988272592830126132949176564529780835028757505874757558625012686738647772577682263501449286818985689166450635970066139702309347753353278877534858262504116036223553682819072612021664099391817219449593888046568531287659557037137388759171300992046182885387711801337551706719911271354816521692899343417564520765955643965517616576903409055381726928321616647698505805899811989361662553785190114574776070365919740580031388723652164015804732596512248812493571026582503287016085953458691163317431524046697246744737868049906795142098273521996333309265218700616155752500665722503502164122510653263019076995861405745624944576973480756964936248819289182751028571504139246399963260606752879806276648831382408803711141118447322508824642282928155653710046497510027151317613033223209162639043636068739040128016429592668199265382075882927771397069177825284170851807616462215966450603123185511752459504010944409394017459132400542373420511958594113378217369640590191869553023726857139311991723206189502143597689266479846137787980149163404946424399911496927765610341871217197050098674686605085343358512814876380433462848085015520521701469667907220592800274578505633480115304054107259391354796635261778522141344267514148761343421057288341691568923305616165164407057926111176381367971282617975716006648037447216562562392821879409560542436700537942007420861574061219738919793752031283050196939713261597081029797770042020290333703850636948084643632864460756086373758793429865281917306594870508858196947818003746669326535803307509215651048127189773901462070289002347302278995664638137358788920016269363793509410849731334160921287763100229050748444320051545366332928191892189268725341258692846248910714325960150982352770947501677584921075149763624485202639639657610610060819842972244295346474713673093596299932687066918677257548828502292228717479260999039570263052000019050356198286908369234277874442950863287230849577662741269172428757110085655194865967073585318034253384748402944401725743749230236685090948959683210919655471094822029601768607355605194444008988598237587146257018488563834531380146662128953959909075162368873439190010772819368249943723267470567442151210197633322697964575955896648152339220729149927834616516193065837336508284620027496400008059115384371474271699109700737670207719387818928537819526254255604894657391904139010936146198491804099032280570834687979589664868032097001714164117916651228013458770954976439340389769438974172888915549941637512327553852867864048388022032935882911726409416756355650677511258603564718615742638080872975319727082139829596385285889676449113145770493791227163806482731205185667460361736615574815874251077461629903050283686587416328767530356385908879794070442100986636927212166007833514814554898343828683650080855107848168689071709241832094111365766745463050474472657457871270812828334527086562493941781614821673549554953916462623709376998311889461267432402108442046763203513091073628335831124342842117296619914992853972296682645710012982624621075868240022169987574143605364270718583168143978101154217376478881718833246200861675496764984835768392823983120531906166836121536467068732359747504599809514648139984332824723651554061040183981934101184223232729280913824581186091429871063021644379617603615744905221752596652931770865005050096254011512128659216468635411813889821618066960393127812210398288389802001410528552089473900934243450673312790581364026743213127571184600709668906235330773858809800059632760524159958483259525313507087596756170495235699678205491929212396586047772744718632585108090405165080745641251557442906657632490173507543206496016387280754649918211515205943046743453456633897208387426388096223335256599743715880055953133786935964472462134784906884267768180671211170584984039002995261309923287800907513000689773687203035060695422629328713236561558449045407262348645445191435532319449781663729591025938169552587817399764705374820290642091304061359586068946554537048310460479309405383274536570729476023823729399096695965893892012786898800552109917852450334880811562053896450569745802468966332903868785745635686123551659995023763931553306036898721797493221379296851566927808561915262232227151410861911901674924781521043965867279642367204864138321846833287643268078910212696650027441893188988585555889232683689230086690684262921005196794164468668473286356097433896942343543962758002340175586803906556834684485914300983721909831323016793362788178131629582305023955163145149079303490059747796003873018029751139314984621489275324019240254849942050658278836672472447157323759398249480050278299669887016427631864534570301959141536490077640090912948035699736292118575067524729408428444257086024876154335899272252414743701012167304366393229255579318462870467801272913479804093575395576606872384696263930950479368489821754598177816189453198252069727239268485225859059192945958754630780183840627277690422470313541597521353248386771919279843746501415034632030200332785089423036526291693491670049910686880988303789068604752028065953823461419226708941451743563434697408537446010314326425241473808729914816414437693028652576317400971456956450952032521644360164867300489299192151692095871685578396199393648006765541982185259078915199647796731750534357886949544022117394716223853891354441929238263786874210939660552446535379521895122512439213286524134081218669993279442164121727481274155904130802585413424244053424945252080054664943007679863272275281255644320807464862198659896916950749089665817369397658621169447147995826832136537084256164356775627830570721177873915526377352089477827753849349990169952038076648332930540432182955157301212562946936938182652577681760591175866273630930474654981329420607380732035175888618113588841522095764521991618391723578573030717022896402271721831518691627051087520274286386734925410913778238355091330745517312452917514790051382633142408109824515431176651136588489718701747978239631118726878930617404520002106766615093194092561089229698643215660917503664048624152150007574044507561559601920094326545669397228629965091834490284625397080762088644173277430335016141700685813522789362014484875115268440297382719439335168615222767795807960439159402201049997600205362478096429077116771175396620117634525297124831054818878788385428355771539175405135488229343956068181500100545693031151812622965740598636611996167364549580992118073245516468563200944776376682679008546836279280536937643353475348667335524808679914387911683769635974758945769251051305893204163613469093928285398721008024055649826780987077949117230898600705775700291491803807928091657331228971418018627925408815700778609052820279201182908381111910601383583072643075135139358393305454372119333849034561623775036477094728417275795773370418503040695859170713845788388320063865487044274408548683543736352302914974290971582995530846367699930274813238185355555462952516071666614020628098367940296138212613453218141784236284170700369328440883755567672019844751607506444595833747140906700930182728616563911009659537834023475846618128313216789497160382395384828781052056108552084634163103826848609909243422447344105889277775571037937539062242794817495576263125719426959601626312260093392733472126838960699010235258688230467449442677525600751844018805746689527384847829724356050884928832845389290629280115239942486739383443784587531827921789589764405221713462515723169339939851012916975455620392733530073075418172961350827474202965055976916610515034722131546108289718734214203254408217151159287081218672595940630006573549117844503581656516712827672905775169676631398306382263421977559290337116079400804012465445791954318946734044512200505739237193615264305805210394279930728378260574147217362504414037858039513447986667207622941154151046246288239551824801998885713208956783941049134439477100480365276922377435948535603902396241060760335629456985339168427173015538788545862171377276137566256136285987015833655169471649701353576985093843522461304577285779902462798152812969966534381430575602599495165769528719822077318325514896441391939035144030053552539707317470433307750436939537545895895975256234229960123340000355116934026738353693877181211797397508704921170437806811844444470714902349844811802047849785218643623154713808524981597895842455881851881483993992584519585477636124310629827761277170651024779474754507498355359808418892893733491070961898107411083293481952398491563358879989508094197529155737322279750140835323118883893445055601640980979607309223363817958123792584419974782162603708880538545590104396642703867337438952538173712165848272037450571887175354493709113406114862657529273085237308568925699973262888683127914808886626368624911070564478428899911263201014291993820800699574724646504899012488334169442313993717200887672351972007323989670500763135179316113955271333279661106388328084163347486529801842345235842757324981807804050711503431151260558464380421187540744289055729222549167592073867168115366363448616880778509555129421053667565821098617104659849018026678235169275229946150083848926397304064647140300714665446887743615367131413951623930334717352177229626034433034904471784433745707277741823707357355788008170024531457556361824774737312501228323868797352188466531760893429818426518375176615783263307486340390345369273103066245719779737069851756361476817477489056215405108015507792647660209783804683054356640861065721839941208007003774720636122214685405784831884252454449034319951205224700773038327007593913837421395298979791399284370622459057062153716908588388061892438912987091193862858094869154850419603953248322611887504260283196018572921843147162859464849106984977414029341799571691867178826864451624187327388123864091911576876826361582466394204026446970941209965121958060106508109285516461085693436271173163413318605170386655115337712939163156240821232286514378732525458793685163303204131187464953140883119428933178347898491169543984995980558514048023155745074724213249874390142937711596564696049261262858417497573514604595543730981515430049197479988930546535881591845741869929211917849751560243198413001688177898386641710134434543282982678296732761337144761848143434240579259108413390076494688702280335055793283424839898833815686355443207133877715476086526023986768351705006308349277081086265424455674839444941086119743241138221915405460768741841664375666937978684693209915620931791895020835125203070528373710798648977990921583329480850073709007752268550426969351255594942907177839380007827604973534173245887273820608495267808795546842838039503495281904721005380171207053947100649387425749319352382679857197848121317410583232666842361017953939354321672675929081553568083629037017537674298734275798400310755253290317637621726740283013733983236266604489825808695487235997774039974092059708689343239749506410315992789447039114626219361231883963746872597594415834138094511830987614430476854939416417296624515658855072713980728507070596351845537359355605764717665454710197608084139275361921025853181308203417782522199428081542435900663064055136823335486102931475565759284669324527194896818198698600134637889117116303606789001083931499694565571930600399576934547335858373278895063051289826496138851810958592561742206029095427874913358347195510091106393733811025838386985772727747603311299423714601231627459470587735617328603037620751044429443984315747342590815891907572949426041750858158219631507578208272989682955379228056856365861106770282298721349876087479575319307237290750272403091643795543193563567085078535051343256771156864323219402681397475929135069358166519782332984416518624765906471312010171823014903523384931187058437142054679493483076824726282412517213244212248723844389163613226495851631586468401084952899391070354043151868670177862667936914078210870892823117780813139088253854993627956388080991616017454782546278432402423565890001715332093618120067513540792757309117431276927552367034960245074195810289764479663490319845454761442830725766591392743065809945805002029210704413192899947804231485974645976535729849660549823855471661779531052852415542231435960463982724845454447441627893764571503449171465121067654964539008116650266078046011938501471194035790382352753083308382508112639299561944572455363972388912173030433179341690470723095375161769965374375716309380951037714800345303253494345095646255351887658175129146322470100234934666630616265739113082999555568357607459204749586150332476262830142175636121100681381694343525752201989938445730925099844923192783170952261757717517273890002250463657166107801169875752993913591231106509197908768414004095399368167139412994436188668782584872998189512679276068628869504501417488545954255806155239652794709941902228957657209140130262637642298184090053893864047660263850906259039177268836816105362063864717410929345370181171087930843081156903001883293846432040558315589146938038682170957383693032465790281322666864016714853221889223643113653575362455533785735009787784067856591549986139879437695937142717506569393090935529069428690383602109520597005629796744111380960271484541739818128451835445594475448486227176901150964606069838844712459051580367529003021926299701388546578494391231348194671577515345408684478053406574797956984938500863689827554888221595287199051856633515895676038376272154911353827344433350708649695091739228038239550635160416504031155723098973680769486542437172664856972000288678021436433498444969464367628989232107813129985860643496867940914237758144092271271295094966616956360527630732293366511885352057874296146659768390341593939338779291941571568591968655054149214485352968826225921841123292211822467999781618244741343119246082656779124625545535963919019235185421094617256592720239747549687849101227648320827803371396412433698833626496993928319419770736154332395010193955477298983047677967394705989463711575663123858428357431912838188770777969863616206832409507530886815218452899848936195508038139809985199558738276857526046577712325340554592631417811554839596360882436550210728718092755407033464844773149797804705282683826362309608365727857489543410074837536167675721678523563397693362504837464330886311857614653227646442744589546865547243974273994556083561606825494044871660215919304846994971947785647444268993286930326458439603883576771770763237877096298721225918034749265632537036986463055713095386340748872102205558767220236018329172041852638976555145003469488437206072185968693814785058918128514309212626468621158842210273669214379995251649684243527030204847843976805060316846818770357873836647284328741302123521134936703192424950671930994162444381052857005437013692375174768950962202777653427248241729086335920527513988954038101566181930826190704458904188372464371337206033835666699406837343432086761683091281940118753141224432370237920204148221135319063009131522841080473551900913858686405889464469661182953924515759701753096472727074307747289396537062212035146576835538043657756902280623802983080636857656282807584397965116756538125326118721083311801276669843829475512875340863752214889842768102300196560402600215625895792481215847817831718140412913971751606506074031401873622450600064826158290766059411633501099502763166551253463575732020923272339337935046503378349089101257780288318510065543530899429206591876026980783294079267202677311335391927113220744323140720909710565452135052953054324833019970266437385248849587343705797714760310450883124260229977416297277323983030978116197017534240938491255672820162308083237307061073685432238045231512772210524329508693724272931079829117134928474691697598062284183572036457936954071670795565735644610122992358434181801338068572035299082650395803009102038956609487196066277771811135415466553068717650412135423006784537430619623309481946934331382579497880300276109886197061277913084665085159104415998020827988563862921796372896947880152316151289168266453016629237508629782695701981687127804890276702930306055159599229090905973250418775308209988527080208065611773537293175822511258148260799253834218637209096669080255873004933983747674706526755693725364051079469461214431565795442776841089300866125144768349361155221403229399260835945539443615814711261607626178286402372645277814256470860613893968701477242089123344771208557048711130517877035732861727957784058324960976948358203280078159342847101714730565335842982365101319764665920367513618611420148090766974779223263594609438350863094458369336630774564192169561653348379064609916969686837780229404313097245118663577148983027652502379597244977631508668954967387977144259026250513290096170787218904190622377611614728454468290518937231788256692135770541759606436596298778832311001665567225101698600448180385960848791382880543714119355236326727291432549287729603388920445445877627467182384546468316387563450267642626564065856861716520843735685049682867405915386605806754198842263523818792914146522191366583903011102430785530846562171661331529666284581753444236865393964230457371508455634723553228515234145606338947735594300612030566447941890437282852916990713331847497046611377940479959491421615350434599040792303706178008920521654043647248555709113974593007567970745886829562349810709696401002386109652138425491354497853487849938776299021460946025421409974626185561242315588338456551895911341586386740811288066415946867839014185073502832891346084635968360325843887837974042474599442722696494968848512128725234567768678247328422614909126603781985268703912308040096512306156632651558538770024988059077121972689486509497058570086238403421001070868992261376838711510695832096753610828654622991764765346724002220520321310618918893843677328214799180720033083473092583830349970212494631939175736825833162826830465724499775094272176940632509550974352199253039705465551787257706346279154433848670621157466532327684219269609065744746884132591480623769020616496606399268489175170229267264124158246787456358674572256761482991993024555604424083866881165450294889064557972096597170027796611993497534064984888884333509757020479822874225108810282845602793602929588606889260694544312360443842626033396802568151978487470953213252256468701120881566204686735539427239878035912416246654965118050156101717429039120632604160466463538528368972439599244568585625147030351786107544490507539149300287958565493411305125981123863866808818130035235232513194207199667270963423571422064374234841408562622749979111787788094830649101556525618524385565045780132300027313097010581652713742234661608237228567567316947290871164663476427593615118094699374706581115325737651918405588300582356766054440385560285823495970600668370560646593942002598930278123865201463574139470761263831751562609346772392136111082493029759813051110112259460056361520555102773495364121496022813159212027530631285978316069557806146908193789175158516103215108793489088395872151656635738203030510179204172585038045442198359494539791071943299384196639420238500076403006458179099327716897954692424810464650339775021407864701694972393965395778684640001643072578050334821299570982149830713925085862658978955364172249687576485079968968003465145292934206751990136115101040293934729737685146360604667499743896453667346679995582752852499620638666690231389292953973465659075693977123635163636874468768533129796892480148939808854135895264496119201911228913653658395399301028026480937605875119571586417572452881478572923158931315158064173663397016326786970526702533735040010977130220809526393445272384077544451252557431526448233127495260688715110107057623352843984861360208317578165108589855440152116892238656062590680542468072439881136757616886929469926024766683899246702949994712311297980504030518757854956695200187372736632448400023173526052686180262842819665034992868075764574877727214903625380044671048676644702201082692132937328875126264883352050111953886935884814774726739497661049046594231901960643046353532086887798790739287385798392285080407311132556483998017336916510644085724059781617269651871223957165464881834857339265373468581511443602941655203122387617090035686875322516445076367781920135499830911272114418079104423813725391046405241319726650656280734916876003487573422706681063187637949695134432028400930813922680229680674993728929981451941419996440432088938715835623808176130628250550024585621936396472784752520993463247317348790983271501956435442192434167734334940657686581530231793522406098418971521840397991526801485809473685143588691702698405772365397031147788214163945698446945883091613675947013775334730013694552213270105659647808640087111099377798219796389479363769011269960451368053474706251932465937361164748751557180785314394113221781932089432144147886184581948073921153678342923282012068960495428211343376059501059889001321749551460847566065834808790225444888863852166262259006596100335172962684530096258871277551614246257604394698366627357872701565039133196041634495008615272825168058904577080694855524037960356916860924087957975305006905847084241928904558406847100601663985971768634913290442145177813937934098503385192599896173230761061684367250072570249154633626456236950539714559805814232461781565787225274173355386976929765289597946445405913023577074317034845669372217482633099009522153602794692537716751876909475613735962085364811889703207028204291869069102942200189064302907021034525506333485863545652451587409958302813661107825128202449747450564395176871810463582212050056638754649572180277399616915700108577786538267318851528326876129009956974149015467207280964657370771398160805639419973165045412959677903603588613197771500337401548805475021536984421315348951329556386649442636871494137038172391123213884001303684648333779046747196149938427105081900727378113854221975749276733834189517344158727474070545839919024990040601125447267242311749743307794075823242615082049776148011806282739325951214258227615777361360228896578354512931011943339602096720489992303333867265340174227872514790840859009589953324007215476470454696290136821247069031574688294660615427730832445077293437228514505002977236706723609181368605831807907852627564491026576324774889272061132594751163243046472761087985448013849741692588363270779051597831813485206592097299500732949139765956485427300487058060379605004474622580003756997067622407556500461499342696936602603076720163044286975475408980875360430937088706826029168062948961845904340615478921967505453677021658717019651940842059622602680077232493524731624001416363623820375081873595510010781829397926831878752682378323844097481440102894180202325524514872826651555267668409009966290282911041887683129120876184392242381317980867974759184339242749415419289806634155284926016408119126944365522234413794347909109016075706027449980936311633626739329561653755811771518599325152477028569310196174122716978971731184836621756239762987101665765018555177090818077071793328816266227988026702962068874056882812464683642569492584135871162124759053948488309178478490443269457262497361414239710359323375888125950909626088690296753767881883980265778979037092026847570039776282063268596611925007587987828557372946544779886842106218906087288535654749274878945984377555941858135336383767840468866180311416609344786249402616227562890405962306825097138667530093995717906962968635226826019210589153033147490600976050362245725812926721545157798085262817123544233978356260189459179088407163977808251321261214704244611755565501606679047151785702916755529272794644961726311867277822080764473637458237859300751983048764133430435565985086363305392230630194060099343706149262181544975614611550672143181476275676171422608395790062973386053434374743101819361688478918534563527124243554413815909026605008810929641012601016226835260438602800001658406944281049770733007448982495521268256725649806486958130022502460584599980686539024057081377600217260416899728260805259168071054200234050360579206994287102076936702462625715425816703009254098527797954855374362324202710552617621226830497890606469086503428137923849594190681195718285205359307788566706668888633904992479151271948531652711283464430361535801124585076205545109769312251816974798466853047922633422911923263976720543297099772798615804848420684059678536034204380857685666755018510313592285389239559796773557517563590741056809300449772339808236267999113213291092764395422688126974000460890419286661485127873115403864818704507362794536364290064997105899821976056423330075856630230749162604965491317165463780300667300485318677649941528403439106278723293245161521004341770482728856268674742684307707520190564926638220990704771347917943280257718941672544951682497760652204197109441262988284214332819919685876011423753270079605906578307214076441146387562469091071977962629182237595375827767549408893400763460639323671346205994092711873921427097866913487525708041830554101624029565950224812080839717044292852325475069024197690879236028095896839320637602524398840523395164401314467112116272609833578334852749073513233455708894692185541982452283998039396354224005786318571621510855372823428290151407696323501223850327830863693168402741084242268147178047441940344894095889917021577794622993112534019824084922719475682098852598889481674239888377440358625033757755073104405812506916120889938115402928781460519999399992369853760853217290095177602205219601998967225823339250410143261368183456052255274221642281916588915850621522803586914187675639153664465577780618368377467688365938711078163089964432343052193986871543531527537698035411397841713578863429917827093249400779544722203048000369996928059934907665174717052913826486096950626986577900818775501489365949328392828397936046986329957641899515946589462594657839321589560413399028008533126643087752779009253403891459424197146574215190435810516184510622116981137320525220344881888011399001910865705384639676606529119228216178517116019274413302675280063894572027152923903224210428361162901104315459404846694836204610061358595493332095228267848327562750119137522706872305997573049917381785662334613131311244554422395714057052812051793867260597088457893921404288534614449682084359424922688936466980043298171350924026167037339603156162943725523481880023886886553436008589575416300331247119980073486210047295567446486404348113480251417227845034842450827438586755306434377850024352898532758065822867132050139497315045536556764080678423167136001945107181047543901372478650985036580138874133244633238106999309532693237886847055564362151259766365307369576175244105189956786051190766360293115023130666953478400458962258421973181525472747579230832460750649782212257691420512667053922731312531089428689888135293873939404256387521493410671167192301874034477282246280405410437970690616781173934852718115744252114030917159154025975497569039221063484686870570665119970174162741001593701638707537723474359761396371157530904713170204771403858306848804409939702381338306012087360028997372685560189447813073447544656242550278319185003577719376543078721647182001287878404893920762244550904894710217425652846414663691333580859962130387673789964229275905567779953753786206308496567603167924465089100425891378215348733750443109063017646744462907344483068068874511000309570123006596147545678232396681260894783395129979619382879995547302373991697163833071007688411814673351718881427447682923388691222913916612541206748246620418050340105636351150319990730756991660482801528809130966909463525501630787888528826320524750593200507952369363492010791938064318764684610947064551962694132040308557807393466062445476097713913275274345510264544011674954664511398788864779346848921956123636003927972234448404808286736010717034987941805330072799308383653104226666343771326197452258585773326753805006622625533441651247153574160513225416054704098998163406930611109437612248213037082308524484319665299226151368036173901018938520456635143328600022366016670532234057232300462615082931239098734778533077999255688619440914400933987531379644615811508053648893070878668552402473411421058914775813156302372532115992516601630986230296250394407428629469641967389910442017890613972419775675779154082228979337810019616143815173729204373381254902844649646154565260276636390854128725434978213132200237562088494270918339530588477408561332860977577232739632100578588725021276087612911932694214411022158926026658127043933196432641958436754280651296388366313790572524830056547712186035046796230713544669002753821008176054914880247485312436332086757474939169531272007316450515416575307833747621642606049998363356002125804192866630470239545750641588136222461593476660397488549677996764105476323483314654407124461261525145874811881842427169286993697665705791459702969062023520795919616752474773796532098996715300749907064740317680125326939865806422198619300996070197688070101395531908012523343424666352239429983150764336680086457632986648035623153939056845143683207403849435710878677514160703472229675300087642923195347812261263865988881800316315928070408765464307619266287307785895101197959020218697823775943910965385240938885628608180502368145975123360279172256447614291120751728728455680589343011105110683015439904892435258453720285944625654586397733872964435560212640573265649929466299298611827478359653797283806474732275902798747911851167966029607305880288631665723455999340826561980284726987597648661930370471120647589540811314274061927667137048306326606700593991921091417856053803290916320785439299205314664186242909235907917312856197390786744276135561747579128122186266492417796176356162566813925227580507248533788901255470323325670883247624525321132696342345405988429467001221078664097855195383967109435967777949655215277475038602686870170125569136036485050173733807942321789682299895853099959735323615337588690657956892602458134927264335752295914916055695351060933694480094901255198929766931128753105000642088339080406798353311913169733935895649694569114425442035260624524578561707283264949686523455205713577768882387246803192289137878305913970286806751619492915031607427530751854175098288784044192275759029705532661505757390004624859947413057270206371285354297914775125927919427612502982934595366060703031591090665806441218568765984182281432855644525093281064433314283324406441775359591424656941649275864357599327280660968364424056531344113717865391184051967011797514709939387505087825479342490849854432062846726537311509581440593538719342063062311766126307887519808799681434842772520939783707142693422113210942225133312086259553625696394569007852237967554768946789161996947290915794835087137755326720076152810918502771571196424072436054388162208201287990400676892705594081740266280468943357463783390608583012221356630895953335373047388348020696696675704290423475676295658113294142090835536264786136079078179222362069433466552585352916184403171075217009787820918996352122029453047275507528912863965972642666938002902015364817466810108953984383925797399494771011394408559648955471123772972802017036325168853425181956665271678111868499975075564768274814560479049488476866014941264669487671294283121762193737313795913366300615884595851500340544648269438992821899180020511468735597230823679097532246901556087059692593399128664470697631489706191041991525867240795405863831378333520457603179459442565211048116535076858484402893041058520325246623303804030552519491728044138703263404872451011469684970263876349069651171199801379214976604617537038605917559415906726662105457522043048464785384860509069671419414821162263327937114366605493664322399894888741627207163136330223458478727358614291092815521807238915139755751492745217970701315054481328110277801921637339426714720932642739551031229228647385225961822525980427398622692539926612701890996170411681131452569084898542863604124278553145148497663453808605933885350154568638809629082674071295974256439180539263835749985415108735467104402820938220941019122288579388733331673270520332425578949853486967051521820822385948841769876626455280004510205025634729005884560376599540619487058374251928652196456430046684284451761814212557200174315320386686418435494706256114631592832087392255688671872856818599256178008098086465140435461316740642130576209568397942547802545651645506340197520467433693152797370989977433821227184487090960133443945930764435718549288864012014753325325685603868350281826246993056208123846741668603731450570605044404987170223963114749422311294767167749318472393461417077182152218421154512152516933293388111202201706474868678911296902077613185527992284584416783858121590957454780576943435875866449146886498292597485243065539681316451438148722849533754045072816791921387620534651279042436115936791206893802624218770018553879916157739590726653396675868569879484733308332524259539459118576936998227931891857296061119211888667731068992313590196250519241535860623604766523998140401284016807993243448648789228494816498382727498947210309715925200051138913002015685076130216075745980177703874956472234107433575330478712094512271152140591067731809892605870477249619632691040529322562003112036492689966560430073711325202369667600171423922932084195159521245516712116890494218482629241122483476962214518054467968428585606450670867296824235252098393741991361516190389984829192550271749282675991817129275649946879105997040619254076762720680775418073272146223436780033702211263103162720198396728744377827724978006386672977064221861919680644321650219532503357929550639654728438605619898794501873817027504804723180948804485721918164158744354257052815344195232034027528077895920769495285826058190617106724257048400833701932788490811244734320625081383649607671726154823920304688543479675393598312444976252679266633368246771114734584201451562861886888294049183123307485296127220690973964072279306482009847794769146247538583999687357839463508269448871316309392725006234467514635718728860365805736864785327257668389771542669132637746013817110954863454728902477290112757078144284639931005238767587550434768550233094725753005529471000413349102794402772146273591190638767686721387859526148164965362797936238100545194819931745785504226411076093113379619513751820771268246590044177044420860771788023387055569955005227071465834212274416562340545335567317798891952540778054388585531182192436373228595081904524285905688995589911692755379349323385395751075555155092898334026017733718435335905437960520540967107849247059675312220159996615502390993629817983749883493001357012838918804918882793244453608241856893651853193655073991667061188617038486738774337657020083547402774689130210568606206295096235421912689455313457341985459384052319805047722431168872268622430143311465412149088194254077535045681454934226924911536393674113481182777057226264956251369382560290818279257645321759445843441886930829179126606663969532680265683785334108441987474480784015496126092871148066479837955499442647376173260038027182805227106888971598566701371746382578969070291340605359958066022484871529251440888432932106793905275426363499072349427516722587315093764341937514092151905303937690064752469172685771935583847296856680934787888203218520608135140388347498664322794097302901111529823641041333566390164171890063433321806981363504421540424320497850483917575793034784041520850697339614654098254340108683483759107635927757700113752831454152750814975273646182283892472683245487393865813158633759342443288242670489882969394708804806535165578219512738884549459690773839975401413805882995325097905997630101891104451869335534250795075645020875037632887334075641693578943323153567161565123154690404348816275094338559918473219803577315431143142509803054789930318802542533035227496947533854260458218898344585976784615098926035722598654094414505389620763419135604427167835965720116541200457609905380155507376196863382477548888219115675925126683097901763632099999007634340190981246877947317788412869824005565486186731240806454940600627432378450415334603935051065563198086155914381297941118402006306876984611733694696515789473886410567799018698450482185462267385506961218911417191806863592519713580029314642098104402320654630776850032271335306350511166178007749018162886436550831312453405900259024242016055025299223794386716370449189275026155074072961439810142467813064486698181732473397794638123078717199302660010750100464476224649033559646302257439796372325311643015858831496731372412591161160263606717354104227941895846304344507728671637276920733154823926823304265285670328169163484056341408219794725528123297055010115492306561855405282009254785851747593055174188022410616825237005192067580127377292354331331450364046946687023267357851250868058415300940201194911081815894602370361634237167179058269155133772524233762793663779397344213566434875770887361358533068190127646543921364757943791480357048762025725204424782651644068918378279859791313414886144718320471948741766793724505160544808041000815395726982620457368472262617698810257705746212848131264864246570445706004365031193894564015118489703265534703961982625682013101632136777638437484308980389321848661512291435182731214313104644874033454711433106091026066154870040504898035637253040042826485408167544456914110492473626785796924450899475307251102624315338038629676048462214642743703347263311413925131966981731619277804552775025966911468018104362963651274092796572832372680846783341588629062839448136762184463312284572479232237287198860908475646430039904356102259887996935538785098835569219060422653159508963356491905310673174029569767783753130967038067974319006585402734472739430598271537850671193413351725427999364049377791942928402361843731298441837282551802297505527062892234422999281026948050631952536347660720974881955680743873048885975532608802838402988969534039273237423800070959483008160145111358495342038529174157307203225855492294729575622475365569075759423890868029786608608192208020410885385996210779696650093895174310360874715128893676329685982677968769589873638159067457461689840316164563867608095716949408834318629081086915159554730207875910774950016374489605889335219645291828666906176327089496972194867175930140934176966975214891262084041839028806097859592282140159103608097593553695378327528447038519943517760441255841987267713304826420178527331473285373853985910311720951112301465001208900685592289074548368343797329544946316612029852594352257223416598143974760117041403759837878734252998489363737574447482419260458186039965370396418014936653545915327377785455970502230387478730397540363384972480444974587570770735773777392498903033130696084765459328475385992337616662444039427340598990319060834202907181408315101988947959809880429010448974793490391309316702392005782647473339853941339721836813549398292310730098269610791586391118450964503061580100134014481339543134744678750029735481135200350563477947615888716433531879923005012597634977985747521609555046757685882533890812789652132194829822746921890797989844442841662114701282071943114488955362913664987177826158564612652270719920864298089152159112160644870026161056992350585046450561164870434772428230338213487967110923533277692301930598943886404171370650139580133076884151645580535435519883844402574612030962860258101801774729069261429672840695577900691329646126251988422880459603312485164255003197930709816732130761274280766363161218118275440430386378715943568757067335958514234360447659713457271315742368235883267188464004546086825393375987077105348162899754791667016303674886886173406345788599638368698516740426744286811554441757225519771338080011810555989143295624754805918764397763599891496429824963476066331199717589892367347737951725260047414081203561160226072164926423356588333797215171558067823125450322442073179742078507938406575630256384467095366939502981148206793364221942465339700003450905611720991321900925499138758649273008879430215283973112426257971567653092451642667665567316661622951489548169165655979114734813713421861621960839729226237171545029823019445254434847333357350867527109946466880486198568769953911878420370858464617201576625909488741597592003714348455927180032133138584681791927249156776281031049666783221806340182080588789541947277179129016968833333169237890739417791834543543021804497062585839333928653446467111297462677985613487289367615379298991534131631966893473568634058934743715428650544373822247592993194712784199677534647642509457426297339356943362583954572032542998226630576659621609996891940557384832855097703180833581453831252415622066401944344619852569519920006847092673349869541211384917630808736097582369266135999063935278126134814552300365399679491861982681514037706946125936105020890548253050842140702516714295479840301208001957278783030428921227356577960059719591223257356622823345378358114024229282660132844133070020949906013987813077534389477600350308090679575535530320889838673011690720534790161651311253328087859237927828314792198824738741232942230289303580595386160217350095822419960309629993241717209127319826370181032377336183621051504966458182579316931570475213300895298978028859758794359152382383988287654527733269438061284525267566298334305931195012020602929664378754793619779579206370044730129362774296032618380939155218486972188783268519300128384721048150475615940149055524038169916842167276989127517880295938937855804712564392766436372154721868325594164049508440832466539154814821824136931334506542588522932712339247348079105487067771018238787680283895174815640577121310235177507462891919491266834242422687008859814068756728236723546957873499297427654372724350855573999524399660327111156008422729165593570398722693655783952100806715716313129049729014484301643527771431821475865128251268053372803258849562165663046553067958204568993149612320249118627852331048970070393656932412460866310224330465687269955755799100106315840681551623253772509829580534826249732085282448887270072720550297478312278601438922099152720901246857558601318906620748737354583892571026907580837666742984173108632603418341282429101267675139542754194035516857055992080629425216872195519933772428184944387353636318076577044278347652481582295673433332413247006343032780419198054388112703182975434206159173625128698349528431395059550041369252496894507242523316251507898808228651319865597090296051756986763032522019715267836526709155165596656639196751186807238390975716262157499373058134438455449465594748574089020274966260661494059135381646335020989599239205539360288161507795379121534283441161725265979412151004787083027544071614446976160833426838568221395461774129840584931008907749758086646954453441725317328713449281639388420377600944936544486689120035468642771835571638273911006209048488599481706182025047699821068488853231586941691599343712316805695088035329233029954534405761300812257415682638149611354173923487745535623281139253962218880807697276301287098344550280231100587593316448226728658753158030416143128206469560327198648492883744893842777095748018313701072624093302069739477141290945887916097310117186275852782388526544800102771937325075872724045696777818856809745773503255891693719762945700985229149442850061871934529759357304627578402149517942840642165498375799611322989322157437622865029557952831821269439722612100891700062396425971960789607533036364815584461014979426071461079705918757454821709176503413281206214502228159342230139197908325028773800535852967691667507346976228665132320799696239981595119173143670799623645024832917439974611301632474092771210386908564920570315743250440054310319255662664492642158149495009563801402292703997853770054285504682727453061637975590170282959748821789205276254038411147547914028629098140062723783826927206077773877867232459590844953923132460231816202216400375667731231405521309594538126984596444531228593278609267018304317173227562145161559269520567779545680983909241696033782196967637634541044844851826532345145397184401790154485074962131269260745173258349612774330200487091586794330832452156809826195494065395113117128076117870550045092137324110267568071160345853240409626072451795977643352371391567067065590144174353059761891133196944033962437076717129928437557811306995908744862783242326720099550660138231239238326914178412605741173164429375100651577565371894590273703334741988655180413886053801159215888628086126680336175235763424573826608880880828446707030027555460680175735828174001363651795510703590218302259120312617032134813053818851648173922070584442895851136335035857808368422389080665844232380642860589733498525384444871227776889784158668938364409610123052913345008138595477714219127521187213497041640021453652081382429780741814035671693404851324825866061882323455217402479647384721537717576762050427794292126521771360486198904275227094836245598647817593047647424130416466317758730677968054722058493228467474915003606061060741018827270736537473906498056293312877642961088785887609664768003660740065946724319575226274587930360685244498052507367112069553099588766704295519816911860777457160415220332950930949234291682313600364188222285802254892520246230627626695472512278809791706837637023201227601832334653699565852966917658787103792847768066395926327101765644503795945422470996093332957779098286575052994030529143988847086861360657296016935011144353791262665168497045487252021962000860170319820210394744412362861694063041748519359172908202056837067197668576798168970405973043595771433658673208869631928931837123466593460604402628663355357630013275804323904367851037168633270359647257054888649328695352170288762835914650481291396421077953103081271609350805485239658699399056589571677319971057691879350096964580542750117490742975754628402854417130210808043930672252532445664080792128294599660925800625446977318248022915856788981955915218780979303689727483633961881636319701674041396937823321900735238647815139208090702935000625090992441974630643453696208064645222998464446404428898292736611738963689019596459386402941109578645817953448562698689028443248430691504667894894346597031741877313834304162433732018402911192414082363716707132799197052174451163947390987362264626816258805402065959849189686572255428852066204521023143475873772168630474945976964733558586841834903310128450595298955836835138985386772422317339388703780115098880387095886134174768679490014557613840118497032714843277528082844310733950358111278852850282786637879335327281288484224988086778371151249663530995976032282974234273345681714928634579181369944226247732087895515307598746928889558453135047579981952223405459897510977585864827674256785875053459298134537203812662779991008881986090743279501387003279400039715402125767515778196654470087471497572454414867541013293932134990897709208559471972245611778937032129790095431743047997303059096797476016569373519154917175283320349466785285498855996112854607627209397413698339518833734511161308672357434492958082661320654235065356689895745100381400814256107835065628304373853149142521686028083296889509831411652492947518173686060165484707483869228358777824494727822556947780926967933813200849242358109303480970118298669402235675906375274924846453326307572966437521478097026466329280758755462891283190249133739846702225085000712352034124110926091477371960985306975546911213939003455485425004541903592257418775068879133542893502128198969453552809475248407616271580297861318659684424921348500490935168096361025057251939776801500483278730238201825272315092107617000875489417794466392440041419055356768245154139051082528278363549011187080266175047327712124785534455329311383435932996070303480905193934273956204614550262084445492979183965897053982833631343291489657373570818873360034882141235391874581564354431805004560624990313588023329804834690496100294311051721811230103309189666642193586574390994559398238180254276070294059326858380037449177058434851649412246327762842290770540477300623902594080140118188669152761463307199290232836003862614359533561324012048955052492424336979101335853148215397413498847418489195577575846983382567999604567268665224952842950284625713534885593306480320482993689665868590160115186738484293990055721678211338721355040936398345814158756238884688493119541115160758983306377485904212739847905186799211514424295681424140010013424648366490391606450952761493363461196694306556212265579071225834634912270233219986612047040426353953487048684650005099103494310066996922207010222748817869287900118243166461562148744020842225783233153199010072495303104031330072988179125964032188977080455345837364788904295780504015246032181140424493200324840187452202245076514652880118974724165741382179814523996358325825352717115950920696574206689856552056609248498008025021026659290166888574497528471998955484290364680624984007552511973957862958252046080421130244142861769107373103955838742106743314647641457689250837540745723159415161925075747018438111706609325076485689777020303366766766498888171755790546464016465148384502433985249917515968366845343547246798685286696334491098276091208439713235502907795028608355375740959128331919275191980514945584041227486932091860768776080217048989496759301493565922082289482467859964791817436955358149767644473823032660739433187574914559022014148060782720934571211519255873203989622116662112898847043154931369242772768366345345600574560558724244761411032239485397258320257799494802311519401274101578946177457185304035189767603859916153929162499115581961398885608589329900987834115717332701655147354454295023038127027787398570248320659867145125707188575615460468890133196650435698862710688653789642778404050801436612511831274992984803568474352146953647719454920839649038651903125139814213864521424394589730906253334704509250647558670206124492129206103722759492105339223116905491149393636513927835802634846957845802405379376328393151758149512227856723823095692747054353588431882228465014459685628456527551358962814346577973805249985030425670599138520203926306258864293637593851430643655898482439705416758401738537315483898817956870473366308769216832063083958103345647586481606374312496363498465203098236677063308473887793142442744593512415646098788258317148193795271347909312869328757387327511862844661466887233991232206813634167531519013740837327756770690458774902123056774743384032159383485898225918295573626891696501054456881676645172885999519713427278184874548082374350785714606293266904884716366256288806815689404059898654003226717598023461678121282299377471486308010046731038258148536337288253222413750521260348728488618887021326307473052718733095347467734546679583380754759430923338018324659371033285159682970706340746769479257050999971257092390471810923354527375322602007235413355708234413504757626288389152035683662265958303039647095479932131427142030957504781442935624631288054501625440649784963118220448478175707171872094026129398113738042666683131518575021968050506406283099061353323670885810955862114536238111090247369500840896464809028545289375319081094001615734183250548925795905302322327082849501355038892259220517199023514292948037743607847454376094165582781341497933099307936664098572812595670882135086731412926272003543398134537568573012891410789495519780864095389338088235868589412394650336581825936148032038913245361726720380973962902636068659445589024088127530586205522664469322765903177654665621108241504789035516975513788203378101733446376584195276854646710024857474502620385063799144729976762198259881562852105576485747545829048219301762925747549386777368094727127546250302076235098919959611008468854654288219205618901080668224699377963987464052290082490500764887197097070269268902918721906361357009423728021623918038329026118205429545421406781547343202363996153020942231249542438531215897492324252331291353863114853309270166762000371699937443065955253793303370845038226321703832526240873724281084320503786636319493156407443358995043934675463630727196640721941477652527267495412845066953880711769738633288160379858652599202965113744736651072525415055992688994960543635055674824925931420822522559823094330998100403241908452258348088801391161704108484721733735061116942705803650331567994838396337094342245771511746804900844198327009506536898416326592704054019218651061691852078269619039647663608332123630409991748327901642346772198387494050383451105293132121320087163137444842345582778331546806620105669175822331259704405854990028891422024752849221805935008599767547197851905736577147965225126698327256436399528488783779341957012418028289135838222870004375817219375104971921121319274064447381661081049011167995364126921987637265451399615755456102652702053086658221192608681716297711888468977341943093926064834637435767210544857150439512682747965890868971475436501356975227928706018030297150089152372981572918087033392257182383704452450675488393207983773674416687801024611101884510454753831744083320554847511424794444893276986283191891438187478066678076186662113694378114372138416302237404712677137500802778077746043732120586521408285440669724637380411765925807396112263699953242451181482288908502842178590658209626730444818134281579900342962569034371077506853003483839780516892826967912642786423630084193640203929998507879835460324945507473540364969902546325004616300124643413219632993514413462932785790282849841533809439937862793807127149699445798134294580299471122169300377496844527085740149564460190492544217581698249945025510545803046051590814757752890106382584093387808710710251735288139543960088600951963544211226217608728097112243670324009061889335096493069382336135111960734117322620350832299651102733755039125398552722260270709000469888423882140647271496372269247560864183245762979667727900116708372856328211378475611180223890563168931765274317936563021624204026432990331330422147370581236368859288031313704811245041886220341097236880979250513402632077754638854855714428932380128579550562140933953858801735845011412001706874194926593990270491097734012029897427793096165693354895996552808109315982402916323891757131887368063065417106151794269843909128938588052055126244312136093923063841088883087296710497114501904969835983881164807541165903274373012773976291739328150206129381010937166010377749172555301271312625325226284846140210259432933659308596313542786529107123993844737370793665256766446877801002729856946518643970016815992747918220792677420392565283610912880256684985004051849300040091018700544971905103353543256498676439279697285561958576527639714419029038511729000610093877083236246150457745547806613264140827801235393206789099027376267629329785852880711628269955149303693569953953943866292762811960794631144623957016736320338400398505383473946870631001070846805633334212849748502573990754388885799164101324167259120450385613394815684478721555726365503102860429367505958338457356661834801987884372725717928949314737957550073493104733235389843020827249608291383821628359729826922649084131544265760111890084733014282763219153205934740265147857360551675428692638253091973625508108091627260496193255957389123894866035940373222257726050286514142523319517044147925626039068956104696135351906318490885701232682088501787945140830161576548508835614804322333657227318200969026338936009394251097791888396670312700014362684139969056829533422897508808559438994418530871937869698606371372188579104723978316053086893356294599020315981339761082260457550532958402887547766108189718454584726919989393728832275420057889786762883387020471686296343939983495649302807777058321756657085076193827306729968419576469180058802495342863196454597640055642782962583967901811422485155681252730167319177588730338428913860050317030768739559976016883289124138050596792693032170681950791801545194764170522235509966908937981962746075766198669952015064344799248394629318928337645086914922899367307262027384313447639364297063414760178665714080999879667314810876867813172106407760981800185182302514701631724806700583448427626310308635905723924488936891597128722214604684935270370380340745114573486722735134885434961338905910321153938327383334598656051999718062468074254792070975292136490911206825388600526048169517184669498727843694357274207605801657760006716905087061490904085023284644103464106234954468495109842560166606502740081935773958363491266816318213165916764488190995606881445253201487169515998998973675291887495137466537599001537398212753281106439214504983134325349790471013032394872872407833966950383282892611013347654733185010216228708900977753936759520675295266576305179540851786116720671297178508661766803042386302461168054220737527061767799292854458953027074391101035273024892720543483776641004450219826159315162068505784760462650095173634242949503697577022781497397137245476625876109964943399174536263144825665063234713387458292410094294190694324377754179437780647642535008041224294502860181088238127503429686288681834832628824715915212121172811716500086469559506387457498286853623879251499056709468896011240444492252702161522625225403442674917284902798075059410963951618499226306816212449788435945333677237891179971053776773170789006803917259621325385475769571432398776098509918692255106487446475977555453874667465538220267760062241650063111661240814998833957780574471487788108315109295108997974221000144754543011451238105018160252233534209409788570070941703649809647989726075358428574172779996520794773392765918622606957300135953060464150708002850840736239571098249931682985165867654695274130772142853812436494929971323201766966708508379857216183436318490880370580735748951250878944266351769138994308618092997976525673165097607219307734717470950054991483278302098855999599557050848778609300817074999755925069618614806256783874483527783678288233738121720981777232126307835424590319431760137120724151210450672709502570224852452910427930206282121917438766241428792544655971478230440272377379014459355835942401731559223308291437056873179442135728074557783736050943036008136678916439400023532784832071280459701597484357952144730645485357443012471412406897983791903921636824935193443500672187104875335925833516182088943979241509072321647446930548822690025449528179094227563689312828517461681586544047738329409936036691402842390832183363612045803059864161925902561992394296417220040400853341849175193843842075341195522709150776790198674416048551871174674018249685966024644362548521044740096630755236480766947823120087041723844836531145780037698103991773939328062779347367801487569042274782232843603635379223399434913862488359377994601204461621502022724168024507288690049370309419278913641627961723055980406010448718421235392753003997554562161968647292559610917304949134011147260646861200637154362577512331586515082518096435933270148872314402581117916023329825083811008265736915419483216600917055875704461272116844007036047514221130174715665217774278377898793754020711866036089856469304533970701095753427938585693757026704358661825836201808167744946799580031352997871586224870227859482887801938020177732248864110085285787759826215286370472920673624404337021393244802691673389890971767087130430270655929912604623253590793789823448349326223579574147684793642237048130860986084553914054180293153504286493161349774330322109735455728223914990577786316859797367054877339644528302569902884137157423717798699565762133649788857413813705910425403971045187193107950189579803536971427022293818884717178258806825136347697784808417675386173014488680370058095978128260779319025059784493812321711243544331898394688389886473179246940778122297082319549690425051753483499912129587921093790274586081049212894912032753600036410043148081371112981507442382876155446362742096185371060168077256602393850262727592417878054633854176514537424792579683046861279805269388366530357511007684949331718923028122120542727595295868058130942679333265382803292808471075041159617443683283173511809389164142636328884145994329702531368850735800073453118165532687498070586852947980963318004400347027443651789531974797470778565000699271602361995495627284702071635446871680757269918459814959259088475067772199691265204347619644371515880187692091346241904047248989321432769691171422572414185100919681545133158992192575120259193570244154667277309527559940109930907559582652252435181428723716713555321744463652044166619123128617589084251798724481068108623111990150212653352566695851182090756407864963931435510479428068326372648607961302056613801641645591463513019177366464250218927610453720146986271210684366612156552303985953722511594694922403144790475471462436812465118370143868975253035017719009037696218965132085294031525115919753086381576986843731083460021455289360148457693288992801729299502147484762419199524261962403660534791606537865720714605693231970283203443970739177783507618614351406982993677819582014259152088223342623128735939010738516888283068102574405170507300612874249780966508221546892012997016227750101839451504661544059295029268292693882466474548383757705844322323681966012148091157170384250619522099786229492666056785719678270876367413375735410418308842730020712812214246911141788433974485894548255222855286937510354531609999902341342073707089793067173655602485510478149025321656908003361654320321655411684496359480328245129670240167997582388803178755988727192239486544073405452602751659675115159598943576258096089208875698691470292558256128319587253104354153109462108005167260963154701878108088254689779821504005278515197775031499593688911709280678890079813816684086200898844835725142353701563207918969469933136073151996674178363620567285752143960327745772289082989295196377545106579693027231878393782477813104056999762133674788852237589846953042521470521743098014290000066136166721463048325497078038398765263825114128596477957970127455154887668439897384225707875858291675285312746959420786821757969415265997740413463707865838738259724569549896275872700232074835013570920872365340153821856462535383675954802794129013462596026633131728744594422825851262770673681676386072356593276166883038031970694477668200319475963711632241054630664507887874982579789147041651459284321186345476300120814955675890127553849357645168259042856934113225400653724820969411189731140977358488252567841609929101066499121649228623867514711066309232338142048501190313875553939145113708562165078089181058697429338960411706849355670626354203989161895065519204543426603856133332556853762970003480687210972310197394892721589837866575270661869886475241546982475948029416232409663497602706298359906897269362852955775309480490830180049531366328714338869267802517031207611767259398000860894341073762039568306077663960322929640063325339309645449576705608597943052356050297574089540951832772342582575729152995234581663844109612008929804059974171865283564210676049473584205092798865295255811734753514948067321014656500397721969479807614366826556890686522357146211930260887162014034549816729602309658906114530600355776979701903991683137691677474751961972355507956241161161280385744895908700131249825729759378826710928754950323834881551184862026536174059231919337947976098654238293856826060304910608705501871958771906806337911644476122329291072850943988151134041361081651426804411024224175946408875261283442767522093344790905579705670032862664300662119709907734917842525643187561396102072293976446056508434724524018095118225309829812277538030867065861164884671300985536062675709017191561927394383968946253920150455238026611586792834268604840017030480437562805717199425659635280463942842124051756496393925544676395416128351187392240445375763893090515032576895859346751820865263919542948135766847620616274787196541991581655173911561102228263174433548109102430438233741983875803850901176749578205992048126560836043212583134346616607916817344974979041758051050734961603643648302027511267532566324878408064794131376721555461579973285042983106156192066981894093485716962362876773800503977989239030813169978940112894355217801465213718702950158550963221955132009217485597129703029815133398878966551914061266014847685994470563716510118329336194746790089470312920521898926360531878158671884503500222636471265645288806975156998973673080799057881099408853099956785031704902136670553677005267234942990264609669571822695058557052001147431791403618218203771277050365886328022071080396744942100411651268608893602793373141791469873966017626085789228150909137251837401094311755514230690612802755981223228067597633085537210917635109757148419951305426376277949527544713061631734210232421030161580235138088539589827709083521207102285429760193294840134912526776906017085060188254833490096096276237426409720284080622487267448712098411940513378951177765866084729049323414614075842104275391298733795528567884619865331077489269858896138843862044330332626006260214221584189449748428279400745910071610193301740616907022046883732172737734885462755379256790538690172557826736327649855377770638123235736222160400921972521132513173892332747087987422246792615220450567385513629814080368853893764630072059215783083897163141514915128307764915870174836841238821921689003797410620844761918599511157934009535916136566762486142180336838462088359069407904995658435212251962906023580050743229568915054913925666638702181209133509980232010025072494577647530099251749412562968052960504030923926194729872276037732712962211222107166229393933610933215112880630931812320901371902479049866027720642278563676738968389864291562538533282023994094092183332025834465174427858426315032709892759824942751009598047638041587981798898577372963599771834989154291332722193222688262424714924654553754325769872840747626487337583660577579242047144733145159004956664752393435417932355946072109475544578522983211038441648605819752113736303905324224570882811383334588773989680292912208860059756647062977245938484714586606918111740357061530213362314771082459406104049545990922249886545128584476840124927545000972621827194705829360487970763811255763747962764272028553624734578404351587115871789912740405926250364471343714851103915337287140290187207814787121994401762288119876342651163460587756369661360375712870321193088783544623004297322587988511338766126555709004531102396744546789935895039397879838921947726226755927055658242463243485175136554680154274639740231152626153766654964556397831521832251664080009712723413216392912990456927679769970666065973295344639379534891738864973180416074017382923935721731960207602604374830075627124873317531210970365474662868529948744321032474557159453594604766744746130745685845297195027853281452615130482468877349990300911801188228071243058568478777571048004603010029021466154082513695556646864411608336554626533377474625376737203891935293104842275758630233838970384820947918562819974518429312751827846419765416796155844231272112023372337694032988427488212214604803659737669449574608810452452332546187701474505637120488114711559321503572815793492007732814287405515293177554093874457862828875209439224037791735699814523916525549973915876384197653698090736273501071090411757961783641018557807683461669450916341920099736954049693067821073784398197287714484477498380456269131875395800077263659950163609019482068106426128553809486744820206529173762978602238006537474819542792952242102008443857427928855590968389297772329665848200706393962506019793677116952938394511715239045737759402120627850637369459117297366778574638253942092121968137090294548019341238533536787233018636622614927717671458806547123506118012780829545479274205957753543317492671220624735861667758267941462487117207087529735518598442844211684650793270702153647004720118243335969041406227868784104203936159502293870383487307346170394785451830245791775479692264751962882700740655121493386838303389083908944167028107224171254417656991502622747016556618626309690235909143557704387620770062671537651076532597574267557757615993584919750574191872640960779764904720538985568619406549452264747868304165539998409276801622452059244991925715345563565976759798730211599232376829131619304830015940312086437407432942638244643540861792569808577078552794626986229994429545387930537258619094048030331384683051367802659564205559853933058528124835027844504173736715848827906692678085016909164057318738268178652787067667112000489608027535145023149868325097668569250476269645408479304061714437027728322294544961293973223430862776719161633186681719552408384158630786689427674498391975395569869443001601148998722856731450205689043341041933879266055538382677263438263758804706036627199290399611713853443938402861127160189896815319138845505344555238325505473528139861583072292649302912029072942521733157691112887994173725031013712061971742423367028558158921430940996867276048177894416654829246440194645169810573254400892299727057227533057289267987716818758055998984775456896076704383822437360051114174165905720310753191796397757459861798180236528044004386624028478441183150147884780391608116406461811735612168827465153088677885811194428206195525327334636182108860524015408932005627741314791772553123551496694278589574645856297708655712330257497145146848219239158173913571041571706501990399693008037311737022693033550999885148009046608693977578559284300790827152655655100967740563916535822536534691608299153135232906811344130195768492523005962564661338914883299967430771254106035188993470311626073151860647279853191479557202491101348274031356794065697412469883044490246380003965625304611924883914497160354176176573045003815787397956624564340111701463365643317334750924229294338160648434638981840952543926469041589263581460334823639752889312900332263219486908547701878096940740930964237975058603479120306981521892057219426252221577108294019441928438318779881218862421351897307014171389713576056687065754119671902800344886573361485568165944541625814259844673548447809824319427745228358009028208304833905693673616839343499748501793516458948430800293981692428991238131936470540218508702780267211228961046375627110987456082183309437346081056242805952718775771626760330411981658102870188228953482514585954772828649012911778948313664648620057542653663788211897584028789707522914389595428514690004064835307651742751225011859782779149597035719622036305541518030073261338614273665916859888644087332047781569189603310400674948393406984432269645091094308774764058051408620534220583970113848831535780344094941391314470788617365234130336689016744324549262771976153044973766367458918512366768883942029025557662189632152655651855796589203242783689612838196387520234708219843453465466854439952468251352061588962942429676024978971958979340768802843006632942966260868929415703283267823567690230248436365584565046452312091550788130395246593058810414420752898299687762348155434520151238526662486332623837313676016603548907205034225423958981747557762963754123092884310386445188604903817643999953516739360211282075420724075314750375431029281890586202587001777490780425626501795080189757715960365250176496667586721634580414485244958324906305195094613371381631502658065557261089515798662674246936023578175842790198222623577927141483400004312916185996242633821905812921770948231724095494531741162113257771734474613170825237066914875010510814624287017177750529543497630852604496306916249266180901508996995340815093986848012875288145694275346473834550380783535872061031678485234996139234635175104658721261029652200557572382926697859510852266298514677570074183320877603188524774716097550270506825344803253511551474503463535301389526638405109395456444216010875953026996089984876356852237889976336631149312810501670928730267551285883820206159908490492821082495832657312461242939487405968018282337343414718685237824672340797988534304732251319451395362992899041420190697827801486081715656056742983682660516224208074144496849140054974313003787571533765282669537520865927094818516120949353714564925318923127069475361421393501289605159008366763899053412650420087404417840740707004761308402433983039043058495463922061925349052419480804110193234075746593566311014927327621715927905359752880748318627914629204938529965807009854004224098407034765655796903213243686991590694805497975458687096023674778359416850505408050417562555808387890299312671958543734681725888545828685054574637480676568477194415349381068336427095967389565912391637421417896736758383880836472625171298216377360338424259688678436900859746085425140152301229600989713529254343773539609299136606817546513228492719768812076087624565970865398082768604750743767881968733845950691152665221346680633991759486974688617479625003789909574093773858338799901932481333745984210591944228778158407614449094536567786504596642430393071949957812452919438839626116273058814694415261281680690828300163955057359565049779629542375880107389655911754911047850080729423931364038770160931321924295990414248555284505110391389934259708188193540205502616144004397818147595186537232812716032302211002848179765234769880030386180109144565384459341925064082729778049608316595165251546560431780759370798892382648998120504604853167933214279604649738311986576209885150445735221431030338771062325568438122026107328466729062817780378671673574472133048069649763819027736965266098424948680535831992847625407630452023616520030547231051178431355893665100155178865361765072546228227734598881380013864936375377765621525361325642130840191507662871933138115392225651458554687230128400743004369248359565921920662249099023049856144908484804989362821173472842831815140727205778599671857115838802465809863645839068071507163503130689831753490381985758649526976652058518302373132705387278580386515558680717355580716319821575746994618067799542350229095779142899053180874677599484429745591037069352824076327258137983194383419144768441688195475539014836645327025428448728788665409838974077249470258772317636283256355647569960670785960440431328238573023618750492396359089297915924560724984419872763376688999583647304827798299563632303611446333580364873509120543541915766725129202892523890209148774100403699847449095362125507250767632862290972988516569036276926302941969706526148473996613652814660006029864147676353669144852162028826928909025126563660094176838972041726393701513026062290727522066080368939125934720709664865298048088012938552554756417874064196187390902076203935514625772151428983350741127371113146835692537071182740342408155654447999534367058955454911998369059130371181501926259667133549237422433742798506400170104088646187169820992199576733079005937317467195808859249697933846455485161064991236480067901648401334540475783816660251389504928256198384185318541662695995862943765909593653658422983854573546053330584248906855722432606240165519718513570814514359482995636431254000000629405196034051528311203604449558653467691166172007355266593305429462462128746591730744216505776981543056546090999337016069305189835936052890722400291246468793560488099017440333808041618604336859084018879214364262465425917950887695566244700304039463891204137474242730449987411667060379173123654226562476541328950401067553127524529134425157855433204281279597438745414313439076600289581465178899812729445995537250016262934574944863832805272427819073637251380741515507470756116330698860929779456614595751729033578074752732764174689257612490730668537484852365084854414587490471089254436365585659295822119669311757029583454431181771880483817240873907254582675339557171727151634129516474571385765800439631131977189723960421387149663489345454856248678636914524719267156056397810268830227432760344517911916492198502915828452439760602525958310471622964760485708285965141763306352403627402624001912371920761386573641477004513447210438502099712114658761014773319621204347697328999509223190784748134390869157667229644746420870887979360988011910160165543341967058474485728607072702690876261250818579979272582641420144938995330830776411986733143167184639854562132842999409689982636250850518742700964443612416654481622910546025920915775559072863406188376028242275876221194240150477464393939862031364562159004369637114123351811561183976467627365144448986654940472984086577809309417705870971283813350812493365446390378506912220257021505260768944418350763638031055189581518853236929537769062945019413752937074776048783109904945703718479562575440025264891035059022569303347138991656675160679112315955169857782608293276267905399819075424351291252491768025983862972529872026402253752723133765958999083427967861383487622283967687272075001226618765347159005727786011660042864970982126848213920120453510959453528626848755695850404631257158071676429866684279368144581063327110156859742136685996184752461966473290120393730578955494903023940084911587644188029358028113433550450892048421874282608150564676694205349665918035925872500522870794844824037434584732586539537531427991010253759607630622091174430941135384863141610804537552809447541913507688780233490071671846140338149465864623053423337215971979466316070994990362708492897483417286317408553696712615805611144802923437289454480915718800310917508221932346443177577063604779053971661619218066039325230338091400714525058239426073977600542712845714165181937559249607458496742776982680619985030520649176185732009483526202279529658578539931233925593739570889545305155578884796835482742456181239095083781395460318522651009146273288023563968475577452401626822661129003197249871053739827623835741462820327334465829007826905505941712012449436040832166817031510608651543224795098965803764213250296031831340795043481468470948709826433804466795472705628556627553703942083287431909512741227715605396216140072693134484354144660936622740848922317104546998245491007396517852569242275049548927829277459342028096502138778859823854806510218127290747674938450437848644694723169073444781890283493006545053033205763444703932555564573125786640898392409943367502934178929017184059860343584500985989280568731074121505336473176588657026028469867391795236143619580884420564948725858737782875044885412472783791890248715706316683456271226011150175825059480946048613972705246450615767132811428164713852816345798122499048138572851586111204295031683189646238200200384400197049468639777842579723761993990983671267569992354570127902018199540108050102080487149488366962759578350340600895905295294717487118269844749084985152135539209416126598194505112833880309460848941071105324231467812954933596248097398904549827247183466597154854185016783178252181590200957395169253919826351689239367547305079881767017914937223464758570551819764785546689285046163281465966937510344186274318256353158187171945122602402771865344500884609674199453005064283506960861428033946439216165242697800261327171742091955227517904265627890327103102523425793684024857575803690671663516889393625566381621682929841906579413202584839195800982501399564788546715107299809891032823244069989924992212107325478297507134484411494449586875962158769803046683003992375085270985794643192874533845411199479045765954395643692992454369889591041715675682838976736349502245332382356410012168927684059480322709503134811458336613495686784825826763482680673183782186313234885452206350716704226641734943462623415582463516291054187925226636599951218710632158737099872307734492044617080856914877282269203866401720680103612445309034073987165482759501643448729464347424882636878563940339107705009265985381931957261777192531407861415673278071828712566115523837580064612160412213685655620239702532804818653257078837050902234455941487064293187049699903117726337243961901140386011996857191672252979199868672832876976538824421827805199832166480900082929230554011191982797458872584367321947935155867150504816174795155312987406953294905230272697542929470733835994997920875928019697444506714819501623717527270995797027723859502403339467294138297535688659538983489956897652803689065578901177303665003848122638026837873746264324287586353726788509012531175000560579034357993096813385059901792833620842162561504294934551436861891871357989137801444960744763617312528411458167865848934365526719786962194472824043269762997913084100887990586960807024721346667369977797687135562291323627619064796377992362408100638853010155018182166875092688020690370921682839570943631185030647353214601462788405012909474025421473670140421656327732062561747720803349219394696042545959701458833774941220088837404045064557921136348166416355360550510951012708540823336123381053009223872859419984383498643533194543514459637799066992976186429559229470477230147872338700074921168443633740065150301004052069246330414882117267344572283966842189814095805930861309492862901646673587350110615546242481151915050712962102091503362077977690918347120586446346036339321000986045509856068429853079554494582960552308094958938368559732820026179218663711692559409511858086798846553696246795635571359743484000805277388510979673767278161642199075351079882670304007708733393571254851553605598713739458309835641593649537455719183962730536266438761785348279054025202923442177400963482929886470895291904248415407744356949372590537627035312980295813786730640933058081068601645518702638983572235796206615127956703335648170006562654108418445999848632945301315325558343335530327703368213969088472038537997714726090138209288914811602516427738310723375478419055096626968773508084425841050222167835646358881188227933005433685721245604922284943049344895373641763852590404715138854554081293427115702998732749347140909977119118816997390070607401025150242997784302345467550269998920108861611143267909824785714373763702678591137488097709620973160005288634534905642936225200645309425466206881094242962425242545321096899737309747534896302520688668326887273307935871338125636756150738847243679479977479125758849896383813303843215079444303031634822385702764202409670047935670260776175840014204055772848426821318125512181621031621297793548392187507120437006281093810187099661909842073531135145969404611771760028008716386018536673779298219723493632915513783024447550063087435214231533337580847903588994423851392543765386200814939450683234244960413260686911705528352756991724845882178640349134473379750187712557258381283792664427640654798789018565235883024550045990178869405185992232556177887982166406265351670766415943526250573455673071226981133416079981197463302508696112892569922959447575623021758575263540699533011824182172323956852143376310888739105861875977214037322042832186440065873886585957833239445667468477693911187670835277231269811788104954523422630525253702233450455537724831854978340100535231885936882131409941802738288075219217731075832778503854030213493738071561176864518131091293262790329071687509765699905443228359956313866613105599739357149645996161380250057943032887024769750568876756300105420482318108599662376164320468173743115168839164614019417929164479285602138005458645413106639943565080506356878246588115529870639871620700230996023022860992313951521526209765440150684195304362464752478827088276324284559313131436355341088807363170492862599935389638156578201395398527822044056077476583711239081594921568536910107105321341266643483030836102314367581419428015302315698629447905761147157592521880026153453657929484491328728399885840681322736467760627615254735633545399453176801633813066460996881337714850099599896465033504183304686500561656085332823656986384532237572668037953172558154778417266408315800896700406098434852359527941843074476600675733526038196505571634878278306957560222569784967960335143492520666985902801331921452435927417050822988592380791297147306600435770955740036038365142495253201549964458207941207266816447077633537378201034845713188142489689658845327356119435385106512639061181314024211247000428955412796627145600434770479536239446682435067595760578561294331797240467691613728066383641053454279502986236009633487800741893095726628799440338429735782533225755864835591206574310306884498096922983297721450107361230422089675635002479224850799539075549515302244222587319642638577958927760362385641879042414691167342735370799392366353643071521824466844929597924727368124602108623694750692299994291728130477282431077426108970518102257579081976836055112756066481327658601193677111630455303182709171543544834895424133089629531843755406934465770380874256034417620372892341319046816606328826167349595718877470321278179614752585167656529254146680923590014143801644796437258784270114394498667082558323464053828809897632796669233208520299960586964947790432692962289418814720686145471554200237247291574535099455236962802161334530177095630652530707104740335397343961271860649221664453460499449093338014767501082901528395577309553120011429651100060170278724082638482954774185465311219041280371715506727509207124070721534727379120952620031481126099306648553326046126200245232631619762399815715311220181417447051935646444156542330894674688840008644212210501593000179663066604805898672338016894869355957820683444458073287562883556012470049790521298490724542630020644625117157319305465869694466469881549751694684962312122907036971372941084205708487994898633978721508646151693134493051545178650453485822228869603513849121608871876934259109326792122067718141600922465136388467310452468264953055856833832609564417356073067829442656492583059326032450924514069724677514134830043991967979614594585281500731234917807462071683587573151952757606499567916038997503234590436199913733946697067008183645520411136373667351694836051819881929676170836052057420422000136693403242837185385929417555568258599744860170477384828651980687835256590619847319465115665484246147941221808512987019935331489490442865656055314926706766248503038668764108740618286835999809468933456015263242629316895280166046045221342998995443419488090915195148786159370644881503047196846111999181282885937802924088380401609954792254213870102623585575801165154249692431706116734574092823722578223741056452755469020275062515325303766443946390669754772990599388938378811273459327601893473529778939870624133993134853056386723533380160360226750196453917911072309115643207614767556594924114965890041586094905903973873551920937566872138498603717380347055321331848723599126562880192259372611667832437882742119622084310323182277873012352859442134841882220003568849479849528341305408545939759409133040546258291283233748916249000434743997569147668162755677042871922939396534507999809042019443250675802330287201636171634145793410673899322004851180554840589196992663557831350231793723186445901156813411066638493961700582058689509688742427113413009757522325514026559123534300239361358771259881760659776872215655383306808024984578250571534536453409305127874304839869499911976345541215152827222573747284553155989328800508328217490249851069625471332069316841959674923026627274240480964414099902043699095793714393412814295970217557192674756490234267269162712536994725019611160685288352687576814086596104550094842171606636902270779581561655449610768427834825510883574372130650792182664864345948909859114541601386673981816921430765521880879805751133621224923384502481258148087809628298896694585123348187199548364348080825505169518552733973073659018880047641202239556103120886898256244933259093384590750223194483642472341911959621237259310667596679180223610419571854515450636884736753716437000890042849892503503301628572743945396606351940741572083515134755510883762764806740028693012176781357051131360314200873280425733342467638245893887027580933480926867599679393216409712282600525818380389534290561463762911807327794486977243324869376755451879173301939058276285032022486147126692337040825383192130584391757390734136123269120542019729714590569470883785815487794396276083987933858753824397576311953819847013760484428832159964275836224516955205889854073073319273447258189174232584815192281355722453587924808389361137035585146176452667251908392787923996361100213362117198207914818442324975695633028511875517498100339959042848227920412544896040844260361745001258049003594943478048517236168579493693086319415849177515955789728144584794819574693358846714028599091908480157952134832924483086123457644966776198754141722489758612135648942951065133953783998193053007760257828165611998968282331298252512738907068808596244549889810364175755339092421057325571473277807566757422329292144670167738193187499293944052346282420514934219058428590417144650978222879330937225539652500763788801827584308913927014402088645567876332146901991882245733543576907105616117599623584821142063055858385950880652922083349002757753521412144807622313809003771687994208339171617863851817660153474394418621909701477477055292071301247057172703793346000724947046632764874058975656701585852385883960774255238228353417417352183319295521099635715249034458750309243904193942120264048749484530263962266846478161220124841554643461917036113221729828914382008388561639831015883886841828322548546657426755716617917800190527570171482132396975912260112285787358598812667949987868903653146038705229344706352646091334369002527136749494495478265752285568825325403010410238360167030171889209090724602858114370961255508411369919102388143145307021303467873780969610530329484828212311080263570616264245446303712594714435869034964994209889296788127936120612589880061354504503344333646336450891896895675288040651203542467200781309812346151711371766906808809916350289052529867062314864663518094143319730581181150589190835063886914125187253831105515906366240065082787439963481470369169331078829979619635590162541452574940739431266257261167131769280937191914819900440838021079296308301466678836008522992676100851665677917868163425434662655865741234167762290305340665266590363740397968935304064831859215175372643867673891474081918773113847139315399307222159058783275845699741639050298703555066859224821095360122134020663226092645336610306667088996429870678867599110215573114071953212536345646420466768245240098868307176296729366055877202964974013036486207885805157282999143366060054982491578823644120494227654174436013943317237168463185116602773249091090253659179647933956661332663603569529140624831982069224381895635942931448190986756138173679390905647913453216335790366303130633055528428958924791255407243862837250619292545961139956303636875312011900658097361564146269037449497736508419906636040484801236538380175010165736423168962529677875957084089702829945932756211969785436443009619529966262147510400159852946468520333101899699453976113572274259246606542638572378760806544123499857660168523236749716150815760470094231208149472888635648957450522195315327705141857757394463175361692188236310251452366815663677370790408117155379133120797215279892605749783059004510932033744538218814915345242725003149001371394754808610749200035348389551218610146029821663984031897257628357138832126937634396469662754497744128695748146801397885189788940427313021857456944345349451631552533670796458307404647922305110221667307519913248406861960645901967580205370249981415887598507454152395904313514952800364105816619341151900904518221207808909738495171879876991511739548710977177450354990114781476455107010716705878060167228920451678563740830983499157647764015860149454911667143567867850812927437518487854663804993969287269584141696095273197957375915304510878505520355688069191195015659721081989880704694652743573416944988174008819247614284410117333575924194047453913504499122148834775578500966035017486936092476819341998281321042164383989221356955444385667378083404731868769087105730491132755353633472271814879639094690883069032156525821436794784407008475362115914694622707759130321173141211296012174928194937511870206726217667276891010903169548728541873472423557648438204242273597517768723287382782946127774351466848411948041524789247692389982073110233342577950983180869768229613209887423795033001676502154104803310577580772215524932846464934377239490070910508182334986697903195013213302788280902124743222150377398331639827256978454213937085357232482590100238657700683865237090520840473901316094605258549570724128815783043676232683730171208397672333706575414258443997004398155828528336798305014375808898326169853875271922384142648713955996605463841426961747838560069824449512316070643694195174156998961707608851669198649425177855208700968150879116328486872550272295025871650202273388450777742822081887291517701297869156143490574275999170317377588180605629281327307720534371509551829725159442022051612084216421050926358383109335469681671102792388403299310815576998722039725594421891980498334073238085031324642273049432839944104088535477428405591289131208804511979935589165058590593041156594573380311935686337574018250327425677078659619012282125326399688058560231960599392588100272039707818002934041760106668781334208051830464427601452186696067903206078958117607192602997552690717091020095377659102338922264790343963138684870875017796718678293522004843398375782380726690759802083381533770517302017902890862192403894249796436791144019101592619029530643036703901928445566266975267223294890336422614436410403353950569816717444263358963912653883531481052645335965816369657382279760498557081738125638857577502047055770366444450636586049565162980537709763858445862971415816726716527044180621414684546125495207545970225297074037091840121083166767260335431537161730548227408256302554773147247149779831282334678614665752198639676921290671871009811826684954259496362049366563063062179306376413806436554502454064755557116999195675752802596843800980356440380081488633213886693858974811278268923929313803171826735571247565909925227713322648219946328941570715290715882084947479588085764454236545059228316909771986967750360100705529608068269367778941518485646664538163853840365485696655435915727202337469306290504948450529362963071601544795850780151693314385772840906757874403769238922120568985545763062033959017981903516257063430251926853359153718584324759754927980427562930386293490740376522348593696989659125746846359610807280683381560706227836345717456922880480901225400695170317785525851471642567359356329438691265151038922937310640382006521384219512719294935924368880939235250610187618577000582089143593748782185144310317786801346842314546495517082160067615611615649267985225811006524724434992053940412978060407426098789929112049888229723816511985331698305986986287464836785685359420450303903941846469922484409036643396433563739506616197183320724044776689089755577719218105621276775692865000518821683746836735358856607183111791489806493222081145936593599972617717151140885841241587583668810241952075416643439680380787126665404110415957104768329459225261682128980700884525149408500774905301042937893693612332217716928167623052203821617338335933730692887228610363690305590822932352841250485914433668345164005936942764077907556809224022231439288015386201535901042532616579161803048572606006079087934868635978195867771077491599225519865046619344184061289496607360387271846454485371323927720847133832881628878248282714322095340271256561363212209748899092717442442338872288566340879110532597812028596323975211572726103476661891206390005094930021902786616601347171829381567107197130937722675984361017145913288422817376050852265077287382462109658016750518805143969558606216305351472133782443165870777540757288334200513581989273101970054280914702236829821199933773263388085891341181332766023266668355277913738088365794240034719808075735653294856047532941895738080954043128046170089757329189519260917292229351023807098657637931024198890175249401504663157291933675898857059420303758184711567856326388590333650484227821176318068331904888692093592175148095909120019763412273707963098503404618052250391062293876526928770555160865465889348567412335299349125216748601051712650702888306729363105248857127454319529445715879935821912947979750634377502758296898460113982507425805293735531832432054511733796542990562456821763820063475344781274967107778328378527455097038090755496870040124770058823862311103223081033241368191639282158017604801183731958586308162192188167056159935646316557136273632646673403936193149788218010043148203853708974014233640637997031105630522116689276034053810398956437883503732909941653877758941026205189412559970309644110765899973442520552845964349602358381549661409870401009659600909182544352694792963651271660146378251011448128091421381681846773145408734336993406195431072897741650218671234101197341877482177745245753966277598823318365690800420325240469486088056713545378631986934742634432428929927511502097875449479120514562893644933847694825043195284658145746990393144671731842002292037921398530192370800392747115206803527341001220172709992893976290535765810806785886080813408082590725428095150819462224882920887045612354630568113370831193702913302585016558819671343213192237450491092023551625019012215184511617297445988512119186774869123084918110237141887058016663613210773344028888756765771916590357456182383137797901748071198262179152760004224894831583861066855036286509761546198646623446860450680282604545506613963934066049849744022014621491495674609459268737489524422480943577102453757799774614519477596846708544106666032765555975802814458986396718840279374692047681713461776463870378539290414805283173942150964483884816499653517152904529341044349011055258540976950466728066191338044210028264048303358270435480163593594457178296911498692083307829697874687885883115538285652841951912576778174104605158952247775091258015802888610727186069865994948296248438292585351939724620755988811666762622595045068309817438150077509881942675272941899949152980686876797860741275685687841446892996191123457823639385984272745753334258197274435615712242021084010130759534533659540146610378621703507697826681428597123123451299122628151722616077017355077710431420214483452237028763655708438169674498349067843267356046744852048945668594225656634746251190686158734650801163632054154308964488199149227963138501483567172006331535438847668115294984743904009517484080957821868641254813810774840523900616186345310811449243034554607054576473823410547784413274564060184725339682831052678570252569097655696670234323498530190492806174135031205944306385152851162916488707664179402020450494688545096790905976885085541278917088145170538071434151167794774190789874302151515564451146474274155717440467615376215848126027291687007074634657707453362240167279667998605656722009074864732228268605585837930246458813994121069197999983777606414228880150556002872714278869943345255203169149713029660632897603769689774913247701561142001060550175812036184991843680965668754800530850158492161318907770451098484430290950505690907083492810590393597516937500568997864302754434563750289663567493962683283488540050484415333191700210211143398567485534465313274578740590273485843952804306814394886029960129040689796284210909314288489931083025328009929689784580580766981054565216774058719884477078545110920220513455451066164240598300981979590045080260309722410830423188169542323799325462628563870272516061567420557577459826277820181440603358617324912207579128829103015474064633819828144311952982414111889100672226563168181623502042591516915892295734003570070051580171466643344311719360601808786789054460675448368884970675555587973871590191700858516048558514706200391931379907442691899970446891477886807825781994340288707241365179200402196796229693930829250235620218320580528547355829845304534921684951635685441210314120479902318651327341599201318205611156583256908993669751561362403335360887011913387182636649223039914061567244158142076994740963013167570451574963425177799691923341026774085136198458380298288910736529020325070183032045342979276365038030228298689578695394083233476171476205559063098685935416227685387394415532368065914614052762503579355247399796558421300411809554445247466121166133501793620851367588220285496157335748531701669094567155019993865297772320022825828510711993258462983101818195306106497854338176126132807428832505646786509228357916618133396563407503902948781927854946528582192170335606809093421273324704919047803731710417554100507155981847017547971855177296299440058203237023954884738175227340434265220281451148872290124790905589018335202520043558328618747291318043311587110364153877278071259866102134414723126274286462101494165230460578389142477586678592635340487642536122776062120636049775104178255166444342659723004549463644778249670303201672947138491473119161834489570220939234338771130320577372206736797790531964638518246018882222328137880341515726595766341669829667992138160940484704591215098471360076372456719250805026461034177077594130302452315041459160651998685627942180979457638231906198663253101193075039112839709842401380333685382517319560888092596588253906260406642856851521444700756733997820006615994998715549294246003180269955842558197840138808530476788821262690318479111304036916133316352535028280842391892133370424654741848720092093388398637376432268873498316288462918519990975092270644474362103035609514666175182848687790957339915218953312414654209585766653791831961913706855906834000492596015942060882572213190085800140111175860430364626051965266784701323852143073091876335415839810546726300054047160393287293222082456544660594627021911453647707127231141119221404112515439129861363839645102102964721936569375488255779349627049877416999932587062218205964553803183248590294660602115087363080866028518031988348210803266284727152819328572697924756113278257777012426445351404848050553796865473464703140771286396515155480391611974031246229443138771509722019547806298461364396252012737541706996848187339470497933194143650430039952062627687338014948475203589494160008023438286228647468029554229262342628363455876223060935758561643696784309260340801521278872621330501360058149210961344891917006059183161318868958860716358256629675483131604620610562912998534677722880311240087104705870649342468064135444671411431233263390322187677941823090752023184675148825566702402882283165896644875888948028591918822254285540777476068146238486433012228131172297421232537532107698980891129145262709281252930576970350210949034531535851381217921986471098593128380561105543063262477084075670327323101074464780873257521324123180569827585754488731370923642598721673294795329216591961185026901732966966404631978971801156536445168815215161052668361182701388874677908572625230425944525533425643209179914042676283977733407800812875300750784629734623480213666303498236755296009748760263502644923264348557379518944366243296026127739312798248811879764766688106466987896480130448715130172543160706344327897469967061687546503601863404217936535489709948190743107380720802251350050496777704165185180711633534468874597855484475917914702141769894123059916013610525847322023994992950855753102373144839382186552896481061174835248033119662798941034946711184314337902862973559343430292837366065792180230285740126366197842230815711836608592306824741993455263104033298439187043027716798859032380834043488934390765246069344428650706045747511943975747295432167612982033899100825771474549599411821223632625335546737641252839604956222735454627571667780808173509365002060031740901186493984025423682477559359642078095904105308748469716815755473319424899705216318886252560194192758641320337412414007471468145015844205796276094178151447298102693580618817925320619385897592286738829005232944499980274088499938020043521898885508903684476198100951091823988817347960513137751287703375457891448113147568989194279869524764110674280500126389871660345912651438093546777525757434530192859182840738391864339495164706704850742315596665592447518606341545719775098420388156873547030275297236761391987325782058620119415491846076832325149472429682490368276344895309020200746515915477554575634868251999628928018869585115891353527307427834372242987149686314160176003308876156080081794092942328610083114640318167687927174478528185815826163195112427342870573252983484523162144720993218557209183010720920027415242312197352831835839666910671584910241276675127102925829100304708778568602361386137634800402882877021280353922422062601174551388307747558785759490197089268525209512937775535709952417513363031378834786454601495231524131752259586837189616561579305031196791620803880997354875234347103240740930211224106113128570457281593646032617550451460640148533215872849042181637756235722078010122598325032319169249052282630852626907638228561476393460691551134060338722233334479000850763957353327908533102847866029685583036156738129028729528773195897950754129571132912491909073775270201982430736828084266765430314804899338006006145882207800460113609442802157693033670799120001859961800091297483363293687382997717701036927429914821799397025308494515799362305189388755074363409176151063921327174247106718788596479418121433237517774870433713907546710600963045634974229600797524816383436766131701430735069378104113450182842126156118313671178648160132817517779292427220980505952606590707809444195401376312467742392469455708849590380020325943687670171555766630261243246574190430572313565564723306389184648876536176808201895966137638872058415909745304034233238777131490260106823951087459755781158491242945584015251132526383441091394756683641422817013432273527797550423023528173691489940034059054528759130128054607603915623110028813892038805163637008572242704796110362525960876174386568745477298246826797743401680895786839086624505115665368501740577809491514940091131479650100750602838118471051310465594653783187934900915907138936931026036952343188057516769187309612794791362960870443171456749957766276407085049797124583861106804687158634841557824345757184813492206375155597937509365768885578940999902703261496758187365332074346262818040350944018762911571013691055900990052500404227679654445543097240002942171664358929410574176372364589949324882232053671201922204485992245983784863327134178743205358858542302454189799490393150131910009019743790630301727605380496241789738580615792664869534315038778165514605667275940421016079522465931676668646761696350293912403108162645787471896005887244305362830478721817759853101509322795483260372401048439398560821126382655164868883418045822684134980675805016849099037589912811016096314680257569924816702204614879222587911921269754062612094732403312229170166936034606637047391434093881198789819384678778750575399552611702403481720300159535755864002797112058242280519343948010204134942592031728216256452949277232950207442922646511401614895352712788845562190302884826334619199406104331634250938289144981529555837746185877229846535173365431367547507505854934902406744207844659296990580368906099655764321557202269411429432549400231600988631156622258024679840632785444730034721563894943979583413560705678335035747469499336224238526589151962114114266856313420547114406373795099358493248189991676022162412768986649135783562840598830780210711418705219665193139330068642493517413269104375786931591711132671248922856917592735970460410490941559029121785791891179303842033796832147664747719416840185584700728299835313150439779058745914678860169949521038130516030118008350728315204867105605645076987363080488966507290930294563550725264499991545944619220927165076136003276526636642018067505841701330791726715443705079288504320214866792490530099696156852305705085164885474764409523291775811946352880576751152286883517669673551616280467135771164268370964144571987938326212937962660284991654791378618790493347902453310814866232960768978859790038393816865244416411323054061057379176875105738620056882377754931773122770329964267416729457944058715864609659620437081122235022283975416263861045556053357163613800001129179295389128603021125518734350099042020176563431018942437511553142611197650749371370715682765489793695418350813196752240428574419541438091912834521517397768398648397895626742833078814788852757317315340383515806516522290877119755651869173628325442659198589598072947541985989095727430699301301821689964966086135172522210623519969795236112210702308811061154715887028235657294143477769565029876623250196287374290415522643574781701238409454217384556454152442298633500531130878078752414809350188824458336912966464777270339469066137383147453382724857813630739376058778606147487935692612940540465604656391037933975269894723189742891277158486394292515146233170380155851283291387564455943789977560558017751908972958195144943711587500332574783221782584838676081480181788135633973150720875139204794439516913353888290072058354771725018401243394520921738746158188245273374974444744376723423075337173273910491369041083735622671737339467224949844810413026767204824526870668015127871514304376087973202791501834305579073862360113594208045096565712947565699919705770884311204027235320004174159709890572750885135864003836312064001909898312273315804854795756224692940169394148932530000642694551696206172214987200818252428450453351427073458806177759349879645057322209563537573080489429691564766759024795386429783189208496552410550308720938920009069242628143101173124567176316090218575327211445761444417281401570551673188949113259673505075562791342593841549700699967167259924160788614221492816932010028011205369742707447383178495606901080335251712616634025065267114948930426066755473729545002759975037751556731847318871127743458959697341223534171271197080301310807568868130637725900703932288601226402331474025319973211594466940853708032539697183669576308262950534483609787964072587843301177899598949127619661854598112483433383327191224903711552836487349930044090819738720641152050035504625974351454794653229318432553845830988369776770817959936401159606419727666007182725608077231615024734618541180177335710519094912984406661781059124637655591607603853723084572689381328686455913970313113640380239868942510576960869710150557331114109717597386076486781569914192810749119708318414927345824458851214523519476211994676842810392999905061813831103820832542712854056825224156340006723456285412522264806754732668570224263540725162590717771519594050508883429671236510296268525006145337660125090206496822493333285778739146041307346610595972536506978778382877929986890449369377334122039450381165146450216433316020575833840845093683937077794850728938375186347008576122110414785001402908931698055059291931846745895291940913937574566297804438541423910991056902036583648359582023204856233194498156424957780863556773255784933510638471324776889424186722855989104735083077630744622443347133834206737054489953615144933526037005124609543029051354011643519996187862992200306349933923383697865427799767987944659837677030258297002667344375359154079787012733459475990328311727228616173726365021896948315007361082929433301189543303010938369899306706515521419845571170703357405186103962911262297070600997161953747370342205209520653759940029351366788461385196220402809923721922079683508447696235923163361456458874733635968607735378796233090066520909728563786102152186170114769284647875482573901927403001388514497834873814049395872528220517999276458397419563418871325856838426606441031118390276879886462391788229565909592404307089752780331268900872252427644888736763948733746522119284620686464608752377597778252896574196114993263506188589080771394322220538694813159718450971531079740859141506531195368349371449931999263334935178644039646199333700111554074468008477471596881139564173348453792439064051789206387176391506266814564036938967142553043220480731983342344067860604580456863350580017494045256953837523736185925136860957395220471515240405216616620006966194839324023984855195619227772173402999659981416719792123916763882682112458288585321281827464816827407781555549399648013412118086059235759376985366811186138675798570152416520172938180192111524258802654266630924248020220108488070720393831454004897521092861593679167874840019549129353036171326656546616997063899567952056730409633866652818247625150858283390821135841719840474513845694619124990983314031623616235986922948330051533395024342010662996673240340921900071200775610341063285980628521001097127196923938963665710741457597409549897515204339226747370742696822115044052941675932720208234549495675192630309884076080843579028482258336818696904161331054030538417302362503357231024504087382741123257277395221386498860292979418297322647563643328044836180619030765574894316506480332011483307792727088513545710507000718353217823649641154594731030513434283601870800070139731911454192448538630091283214091176989630495607217845333211048878558323113414064351634274798515876176220632649526453027900535757637173506433600273843142910605881444192719211069273429838974137096627613116403692838127271271091245549833008307428495584706577513423382205722600177798888709527315055518594764125451274237120800304141613433043090580931068536312318483224871597331112502755430686853685219233281789285197971679463399584655201342713723324055163211031233263734628471746709926235005333062270747071940434656868417009280503714855418921275256307448822085343712360631803008422308976250146841232204527094119477243737080785082859305962130135077738064602819346922044148005567390310662556387784896595429716914705523045315504850545111695835859133697850037809472464436271078006124639884390813486936533237512940143539181253104280954519493348451470388043640022940518059745455505714858325659659565998108526713620964070691434609527839304459934468394576714026804520687488461583581070939279475733070160425187147203213533281974818037786612349941001577251327596746651594004892080405857795724775083126544191813070577945914380943224602623901620082387585163929093869170618925489036257802273650339254694035584570749132076303231817996946947298029701389996433883122725756079137147346581558610783170020607650545543643006334209788281623636763279440083643967375553782799031559718650659406905549803245590905919637763085265361563807396887967132866667157312058590616190214796242912496249596964989492545589476406842214215029157215558654767147996964312933543314986088465230009887103402283891300295592658335460913196980742698987437197805875864547907802962394907205785556958619927776657751654604938627423696202086401317065827655557921496895449245422921343361934987663826707779040518541169461491069572539542696242265900616058658142790741602052815021476529315286467954356166786884931287019568766274149606809087734944346243861848138529597799868124792014571763511191605856235879867263320452978661097080618833863518527576887487976944867410614010082274292938520380325389183145062284051340359677651609013331945228482171416431068660875204123433815202186922159970878117943308736110313952230019582174805497718229008094381222654849671776551567845097430938277303472441212347951813136687527475359452693616169352826834049514790969260319593544544489792539442179688193653824667218697811132258626290587741060334449958046387085160372441395457896527019543698907874563499699718572501903620847970557245260951931202895602764491325611984218140555213499396383305853100343709266950970847694654222434084281338638760667512461006307320877494629243251709470137601576814987366450416459713561017247095076428087020094187053309172198737578979072550324070274286759271172445650351435417636041858940798191413259369653755226842283273075154749395247315411541189223300762949506887684057210721587073609945546619157757272927100491668266967130335649454682019526352542841262762107257110298434826865908767362493640561328086445650163196007811813950651744021041890733733835178958429492083187610136303996435853807846132723293495742801529707051092259503200506942406697123146743929760438314674262327418618061513494372735092588650659670747183880117412941531394164222412612558852710409287724319503812988067930831771734688052709382510888987315081459695696809786704408119585600207484662090313855730640684979620770619394899701785566040807574556153624975103510070069982809628688667719989543133190757492917604653949117745442201907996442435360668840049289891440423901650544705109542383857271336257311584238162909907867367824492267090780120433944746118289336514229343834343573687170685617104478741104371385963331139065487646456237912489674928437690809522500475276077805644200946580270363265892126507224637557340217816530060205589573753220984600071105403898221228046637159429918059991643510998720115905056248298247376367772023344666967991628582769487182089665673682440885434901804353180753950636453457250336918869258234510259654646928699166934414975094840506257872171675297279167997088504131687848591760284318890156755155661988843307493939076500305060340413999795408154863205154079055443457615214525621368917572452278816326827474027638167041425726542368385611374753396102679533928030885865351035810555722339790971183693129344455480787307304825863018087251015277678356708260669753764864601295460733175925288472017561704716652356977609918440067249180306143148310692406772700799466913672706845533539994288778132380629309650423064822403278919068319881536705812243321380334143311555550927655776892138616319156214111255312421706098508328132166395333105750113641083070799920460472246017552512660336343422205888426209262269333153849569411566011666349522497828510851402544956524811451852254633613067933512985065417255932868371290370299536364856310429417460008950323493127802023464326912699214150677244886566236281773412397849077215606523318127885770382683690116743586296313338511094207156393776890581062775631104289777769201490146826481296924132675067091287704541892867360966513857975859261443117604954367563627218526339768069165800800206025888656271142150175096607269702378505168757833480713749793729006219413131383104276863495193722081117565215420941920323613257398040042180169123636824495016516687562723861239390255767074606185755909640341579080750417225773539208370456481240995732416128343049960282658437706845917074203063658214251413581733656362561190614624102790555454871733639715592657523902548810416165477862320389057811081673570283514344442295268139806575850905788645086153945887306944884274309399493767585144416693788574240236182790973166381460714015463725940505268651031581125516297777519262519016995405668769212718642366390957314861478348254431485800705377702907111738331033506582640420847150786128077638591841454617217059311551889081865130323504693562577876387475146477812833843559429015621548465764521853152754200688572520069004884947735889690828360619559865811153534002811699651345127370665453973081080708653055606771708764923024196140151355209214402680772988140224414008292063785275860851556061436440752772739926905289037949856896057049323289382663297534926913964710939055830755725052265622865913845985462447919895129996581778167023793491353727734542006981910559546663339631313248203259493963271704565293753527779150303841387467089744724284149802212461494386529309250422124251137497724286459693209951458818568037588072966006535481960619330329327537884623544763595426219578436465098674166700202142687028351150914098554519110777433661429572893982450040140521365534584064793681146128756563356942425192243024027734045247416293453072541455834310100660101148825840865633410484261761080439685567675436835875611093072784164837583170749438850107880096222313079294779800641965694814569170791834039815717288601143762017477508410698702943858586593370087870554441817988983426871920266886788112419034799247168190621231358647329263984922159288914895512413213099647797545525577007708285185113731190105838347002574876328937405340898436407113249657227702927344483958773781525472344340188915026615937011821615012388241936744563247544055551970303738487298869462173902213568683788697575061779013725076843270047182713338670406210481830086326841399527342441282527782113962742400081066984761086409723857800989086856072027457796284989071871189130868263485588127726309442281593172586125652653875633356282622406218819036267533108590668559515947714709124310890650970813858847361203279043493938874583280807113429695996253831194313146259426278708708467206956028810067465913021413798976035085270281924651201750282292687059252491886736608771561565632092788396537172065984485342613117996288965376570795162442539973705717185775894035743151052710583005461191832671916297618891217283256434526925325394152018756415653018008492789158367430002607884299932349300743570067679727052640426294392902165393117278674900394349757671966943613506501598753161596357118139593320276558877101823623931762805699789569836172915015003561900960137592283154723063857544096524561854983767879736773819123106649664093792303390364457948114441529793346277480598705063980643019688936715270183043810574396499939275321539239323480833384211981344208917900213298234433251369855423545461578382680927418257419956009347756495377798622908343621288575648937919829772505465781734076998482367992425892167760725135737862128362868181753306323265477886309465138469189186651342078099221239397834232699664203671153896215470383609925967649441514316434628976866250560712750144432729877957490464038071167497811022504512933793681609199319156613711899681599659322853544102744226908279908595728597477813372226036103888430177786649375339835981165889614290109011552657486571181087666903560424396549632675632681577978936274310966297587515391431823000363131533275689917091933030892602270274195307426838095875458706682245127146098061165084528536487732471472422210202951829593540594919957627236711431078178575628871890714244499223281924006403769593401256703159880040893516126489211840795896684483759196942925293692382366623913218532217643657838250474745090273094677386803285045577493480289213148122093022648875614347104192543733628163608013524469124616491650216649349615590746459979719454881777428761924662112388330383974995721335302352738421685325547230609810687556969360897313260231510832942562212410888660765761556827755342715194857567971175910930043880762376634610597294191282265044374239457935033926031930916528377664391578066695614064577920029689233620485582937111892647428925327903996566330820224049196013968618033515153090613019750553942159981822338280562983914365923146352440634327417031471884767771456122505264400668562468442001587684961629481174057260193510405725421829336982563255214744499250754358798898432475286209134959515316805534994428650489635528591880972954215164337583425738177829383821349789648121492815618902256635735229128138543114285622606438979223706743203418187042831902000797725247032479290327580709095931958955789662250264059460870168499801912017047999433867966745666916797226678047929967067768840817057680029515194246705448271641429530020271972105504033505513565108228605921002038456159582788140908242211653388413539630756192917429257567517132523113777640863151089209160125843270700425344705111607918047097642918841271391837524451152043821093643789614359309700104595571308037016991287436250880751108535951400323535310489200361841372108367709880866804566305913475629325535394296484049707015863334078534352286824831546197470579582400878231943602551010523362982641700288126498710236299085269844063542365253370919441610291954499469634294720464090754749449389409597304376510351865969980386613024800772851232583710944196486417611251986002919112960341926052967923237459274126013267024179546234772605942294383764549502288909110312557338235889793873566928874971883343072205852762618681299515801981043006399853896184541681011376830608689749078948737070236810263755616127351881871951171794743450967039902772590564210690076715754230355848434144765187864180409545557396101558258876631197052839571269811573270325760885053316909310255076178792513588024363323702188163772291342243098982003510874705389719355900636617656123832750020023240374803510142713904495371633478231708805475401587823568894104795115587359870291089540511156284688434354690431631852951196305774427817821914203486726774217771062812730853990975397885023508755190676952784943783343860562289796803369842207158502300907080226647847088413034477759258542716523416108330689184030955497898332763415856039406068714938142332178024055832828561273775848377773064819272560717568257432266209741479070963679957673625356147869308109985939125528316358274107942624861950852671123685372711991173812656150166639149308678618545675313147047360149136000672041990924759447944171237601377046029715144450334040845429968215733449104267008836375660671557610241744560566673238348926830361886178859437839154697265992018362936293540815768886992051986239429966719409403725247929845832759587704001765571122252274583537894074658110223555402640192330562916167270656206479233945813496779315214455385364805011106871706975458632488376705541643176516890749207164327358407686384147598726207053046493457877089956990441238557519069672534179914637825120247874789299062105473748149673138995236269945034156230387643388812164980937973652368180311527536418454561575039528212412455792262083088257365244758652671665894113516479459374779320472512628999115297004089237430969707143467483736252913606322030217056251441581130537744251253542114358899487218066542225192516314995759629576405131625886229904217379194437627335194099738906108217405766168280142618972850175568861654186068710421212349951745315049273970291843069743154033471352412300320464794353352987876797468706056275362339536838746219292129160610529717426964079530204362970256859786607937643229688659728377668191014901832095306760838980220463495624358152603120117218781051480698096208232677046855180510237328701709960452985241015345148662215968319673865389515970197348126954245854245071356721517060057787961314016844794361080894911997650808721457080264651666975706897811611957428857690839015529549308417004885281025451615834949137517393846466233137863755233471547723056892397771448016936291462662038437235237563290750580310234515069940737287554763708944340746586864589026420050964130935236192568781507220261753523630175997950530177285318464531053365247504919298386951410917350659744389623868745428836643926591651095341264973224369675414117453307479820293149246011411239013890863233912354247781066896131211247614664804844120681680019085457757529838883285065194800808668826183369140712087352719427818739916398390275758141606151369331448152292454382571345158865241540751928190194170206619191261995139836686638577174707989687749044315723151952036164864116853002566402809708307459347757146180989901626441540705466984681828385328241592420848665487007684692055874941451117502471433379788457467793296127647228251042990162100498989702698218343056220214043040415234737903101049508902286054225967850804005919155405898392195987217628417418842991102894734380010471828042895425701877198592209935581783927339758757857807113711680966801009389628912262748659432535448709065705068619465413073367789315033424490836371987699039108312385751991308317066586774878332318684019598430965677342358629201869634923894957250956796128428617795910772816406848124218237215022555772776025818748792792903259453869892163497672433936494354773259498530558951979962530547742834732750632489280715141580022518759659121039654574852495305226797831825897845213673042365281288713518739690733446264413861525838997057891604889642207407985557515779745969308408535118557061177301971096856680581863223302829551135839892934719020300183590301823294205029300551070720191362019077844389783435789147594872804474880040376777265759237501370824635120136366511222904366569213118935116864791372989724267144769386407446518145443703616792037442007736696538329327773685687198799966278752461381038256480423779984860648641119504517528046698335635157809816381920495938740104105831781801143664176778151590812414384167625109882524845756003718295458383124861179251270158505694584443624412177364306926216093195346155649994273501912186494208548953029790023614046864323533001402259858996340960007130951085033067919432364979433273241193586546562701768947254872017569360064619616125212486954651539365635054379667790683570485916304075266834664954263391781427014032815207356921232602899248026339183841894159493073988115469430662203926596314246139233602617494794491862406044148287345677847122053688259777806212567497083645876054976945435328693350388487849448333335441867739916119972868893071669150283157729300316668571809441997131202106445271240446942196448408110195902180840296619666989472171694886098383559654974618884456603522130235879881113109567683745270125270990170783121212315308643841376950344523125758576497088844730690882987079040160593439446623711079301232835217267045300576550829342253669375000940904197685585027100289689850630594696511387577883878489004916525757339765414210205746580275112837279352091012720605913181112813739055741129303315467106365126895877815852067468814521670368151895126865514486101005735452114204196986077068896293034982972826062631820426401334850901219744770862962501979794485963709709506512607727174716009558185749331746881968594545525532972302630004367206086165051392208439233086020653422520327562894155476129213289338667956583865262187621748423693339436975394288639785349718175001928529472687730835769914618979341684241849820514191267360124174569984047758431446553990240190735296133120108519324303782960156310325146998752865487657612304085752049122689440918633372543267315417280198085306961863101016032282601861585739317605747808954646928278708064515952393835316605927816536666957045871919091254394779367640413749273976767404054183604080312639185693172428981815858680859734847539857608539354604083813613778395944532842626400461949394122252700200715634469778535208099761347245716165108531914438592489018913427475423883762580300250162868784632045519932770070643222013287829980685150962381447372684685966329617722806313383714217532454486391733451874583533308753899611068156771950929523534223292932733929897675632922046113095044827124058003935461807311228023037344296117577044470705275967347072057884840403804939586459968359345152725190148340263849584682714416501954984829306571005748828659742519738948993939543505156315363405663035365875003414842424593217639775883072099348352081612524052634217772893807037085114396509855965679364282683530356804524282233248124714448029969491976947913063634439985421327355586137886501933494443300208090826556825618546845849472241277064650966737373422069371433240894069336889449239473955066751560111091784418824539571685225590396324020729660134927189033279998285343872235178137385878225776289371211253273727353793553774441421342369240371182067468989465718473459117249870996826899202177740523037579724883268116722245583261430387311771352374239601628306751140921491270298742247483261860444371264020542406976736802980859434452892361413898929804996456012916715914328200340871255793278260390325835145486013558092821782280568937657614723901182705229646320591823718491400892622238760203151373452791582356143317853892614128540397867210964375288804360240326071187599649802349674084870985029940892673967982289085461304573977464969029375947584341391304681654729617731699709929631439251425746287983089536721136445353111598583699881348820445188327231671856688594635657907449617187298769551788349876789234978159111448064656162711572119258200691668395127304443915884280409461312872894622606920684072707425316478333533675780494972023183261249281567473187809433991675759569871722370143196733354184599990750060877132965821334017761850251930159124332949448530282922234676148171836431105537423407007511720675570337788728218598641891943963122594690032812351931165749059104053020306953901660256358034120111147585164921564513728327720402061041004058356945910368875656069346632887753019070839754560409231788437764355888572142484364700649468659374172125796248574279871221891800010791513203001235114419267802444505771649587229961261180409433984308606145702365291612109384028743933393348629117862280153551615012196031254415953601362373483518144552487361008209713166090001948522723765413403903823896000093714244206430417924110201293423772878778891349097006589948408298306719038506651103461683844507503231676969556908321308726939950419033565877238290375622178344591221854468120441698417065734058960225586083802436776419935661798380265828711605368676038173749714139344526872622391403338054995761676971661276204489222047688574393560012256347642272504476967620471193816133560348190615350241526458075005012249323790986940028844586246099566288598790357802992596269838151105267652359839066749753662588307888612597128523961357673215155348227945751491075968965163288974196944321130300519689031816865923135451919963581939190107297925385772464672872800449491280908805446676516536657240481915419257798930438720063968742847625834303621469660577667727932549252242846872829137294377885075845462285606018513072078365879606983292520759725807985205663817268767915066600709227547592128678004831098802319559959314745395918667952741632067229577050235295949833583962299086998166137200356663993273752424202971905972669286954702642097597173093265629933072243636425030799096105506574434236621836389888761339887394481945678659609104233909356375403891505545309830412675763792435925950366755417221645093542911357637322675108786863429542420925730272418269387739151185377139918329615175573761011963025771923009772894281960882901088645184304830242567319509829056947563067097028739563036629483516805081348951860656807904370265179274384329799276959919643092946110437919070567993917967742428120159236264685547096358215343546442266324012546299929351738108106303132079147127659567366649349718687911898843064947275324426342747863661789843965015015260528912045698588656606036175029230128519911228261314520924325682388400753417085783249888764961888589505380621180466953332181316262204077598768379759120227701211383628711117545391855525539682779974723966887816198832600697573833358316755200610285566689578583472045986401048705843392239560977650502817092429222040055428639850972154838627205354525727268803626877276450502912934193370776704648957609945573783379904576694446019238838734135746178878027865531556210649868165472964568375698315658249694179938231291100912180010094895153442373145193382735144606521487826155885483348347352997732277420025503561243819997395002717606211021797260499971543379278785033457544811696015120069448385038041960342541014662884091838670974259988119425081529506385823248815160384829892247040794960469808632533776093503220954411916949005899662703940823745124790666465648909112932696207696451140725193905097472210186330419409556528891150059885745981886699189819971447475603119837275646478745945647854684774858501469391343992880228397599872109882730841895693793736269198516139934412970797039632796687659327671711648816877434482846584234513374684677758221412749561914142815138646636957104968227955648473358228133182021294870125262740088222455397058861243143709536680575417586649481359019650002689737147941411316872073539426015117351882002197396872679654264927955858721017125114155318308333820461101238374859673243645795521427841775674653590902672305517041617025160955721416140026698879075073298812825629349002065989087618320794044050927128002423122397431893736024313655240257339496823789192140450785057833743288098207630408444332164392528886060497834229139200092382274174030723057111337635941742911674859723664243918104344937220940383286336009175182463550708304504093746687358831022314446692477689570147164117570966526760078518726154317096930691192528833476643510284702085581198558358881943909840291965421727996111266752465780030565041461799531965857056499547663781014829377367555034375975358438143067990534194608620808585403866634425017830966163966915079259753660065083440088573372981524628802763330984657586037683565319255484985528233759960202527291129007151622248187480035379685750836346932241817407335429063863744034699469257957041865520450770598590454624522467770969202487245031162145239059583134562060539956161049569373964840355502871527690720009685971999104360620166114192200878561834572497867997705589271769980042163344752256281153585408982700091191119054351385857856821252966364672098253467710087179015505444563870554114787920710685312013550152489006166691151848045858037262947610286593743170077730765340893937575475332720971318939077317322150620117762617988512035411674036850854820819108441390144494514134685463493671543617485760273681811572093960396907800056037327407519523158909232310400956329860821035601391714927547523606685853569935553500382226765380313399692917428503863355368379449446868866664547883192946468794738794640598037774615297342591253741011925071900482096232200153525622813123733452804390180698455438132032380076484541934469007786062038382273036546630063151621171862227462860759756299147871750384535177042794872976662761884079481844992763785855789561277768144452555119800518859932760418027990588498630985033568659271321481470061541102751387444952188353480844220161275511797983752134446724068933452274326532437122282507350035820304276522348238471981847058876974641922050353296298815025407417475788074441327665139855404091509687339304678911678282486988869707710059260444870078218669034001553344185334781777363859728834987815012862259557810857991625845910012761485883235710239194013172361157946421117099601367959634715764916057756228908315167507974228727020350486283581022189096765411915295672493649705404073767159660389127256369880887530279669956310204613714033776063206112759953946856366917550876714585287289401993427759415564499845294607743352648471421983498282990140474698660167540267830103875126464846566601317194756131217499632927728062279909970554376744408471580644429530049675677687053135747710340698578339973268150188766545307102410816931911886211739554312532540523456238698802145675062538853002637299376082547864643029091908739303851262437463530624533847125827072030424732370041069735696131052723139795913397382064430958020354353311258195803770261701705188543836114908795524864078251588701528012038809005464219916179383609389321988475913832251496816822526160573673128862062017683732986649371520851455419389149639798108805821681064894724955966788247438389766189520962817712588414659561498376481671935358787018458292358661946754698105393688372127968600930386535174101353865743739546955224918312501434023826709530937738562653083300888914029458961016933826631083380457630733324461138870347259235636138628477865105780439633355084121213911757908841051374166323309204814970043575451164598038073423859207057357545025158185782372154658709354509285152120877600180216011046306603310943784135816826348055796998220301395745682538133200806986453258076909764160199557342358302251265407181887686713854145904104455327620575031604856059834416199786038446447893076541997964988811618999730252260154621484236806979310426126343207044647476695310026004031486999131215875133982073525523384554191861308823812944164443247728339438464316622689400983423912219051217796469140831676751158756172439590759221120631230464584891500730735277331166609223015575915452057028455778228846858250943670307871129004406914956805997867825215990328885329235962156695537302179284623555339624434733967447045138880020409155632327030229302956907541775238814444562420995577664944067908705832426463934697928445023642663048663813401969460494648041825468477305594193522270353997943878003622672591860542604103695766044433073573781813277832374100339709623674501064989215018171050828100982862019272138548870026625496383567779416913461637019589964987192305206864589515285974906489971061460782288797752629774241269908277388966068311217572552492213025770194116294298154848453847997185324641556308523185187248666546145988916372433811287514924759460999963591898935832453333100263405349374732286708343550365767336950158964876756513729131249735076472732326107279468012159874879890897690560757867683310159089343650309836175501001067546793385738945929844086506265725200771878101599170330814079462601162194236594882844384012975072097013117754547862691318474543610223313053805204518556155259240340975259653359235990832582686695117020166141866209438206766665863095065323218018175985485525241495211588934356366394546929251256026582833175986457564449581806117489850195500913295675460963878375013372566586491440275604507054610687345309610974461254747604411752222518096974130919040403771596929694165660614923104575756153331000252082105511159186745920325948383077835634308078483694114837151463960879825435095221137863048732340561749857243483411086708280322553784049232462555955776942568483938463238837647037067405541391036850430077115244580228821883987170844563341932382010448993545172748647785405032681788810447726388646764381305912022751713994662850447789883834707920064076831799004826949904800022426160100438727360392736060577368502255027208669013582858633217026291060277438178371253687493319361888225682416413311590884197488227450145502531012563846010889958122487532313953756664749588348754042634252238707352048801308849048355345844821386630346807954040569893689044737357008292236007035618023082251051161887785547416931992757658655111801580869375190210218637968219794195289761404697306582832423429350898793392375657310316794888885672168963459947105440805698652976332669027164644238915552686053958480841134582771477209419147050684836910086505210789839549851609765853415091551753975376152708356593386334763673858328628181227432647384378847250371207865490914311367677471646280498562702971853136345590956480933776976661629805380002035871709097163586273129447831106393604860551767547760421467729179016584998262740612234509239226855817382680503781332033313927837510807547748484036758932209206004148310921150063869321723041261896008754964926683631241065546763669941417457359897810879560120656779439020672572719815498828887634675419621110472395122149732368516947305057339712126187439178511747545735541800433009071064151660703677111255271704363187947353836504639379734788280282406994803074436367624548498411207086283671483674540806892280419737966690727895182307608891999307948757934047704597038252651813726813692502579204741421056685119565128942075007673894660206527103445176251548862869524957340407505584175542280701456116516968025788856531748099528931389019465204854387640828822597450924861607272194922712432056474445769556656443887823063476017732825905322476724355944815290663277449420440707966796096175063158880747033866893305825173984697739597599349034952224442182669986897691164963482351182633031357689500498352710517283933086793878272521495917715729432826056824718406872806787652792628202676497382689381209214473490820513043293155088901899113449982179051012871678135556054181493867201245242585723337970458731562955695627885452985480757577254715485988285072569574372901485023136078674100112567513838877365817211338629826285129066911187059177302959278262189560536955736944227086543382739717220132013554213503633024688286930738191907656929096426997298090983472153369591717403791725725960884355920268158062572863762803598760245651159709921379751399521676962289826930463637320298672008764661028358479989257165682533320853277647177108127167988477900687575894092649215551499135666794673883519505850831033806577002273033699444273518358082384654862049449833526691406457811977044050785961951351738298170083162941865219918811331086892153613624455287834820696443988805012409317688030865887154787637347918556889210720935076888809651756382540441021027053694665742266138271329312544813239714283196211908199496923672211953319189353379401872824321249677668316894489564212450677823394056993938830479335326554069330728046571423921966361983638400067499965923358776743308475933284878919251986311748968116491638822866309774108338163200983400435707428789455899432798619395855149226734452903264426770268563099067021429962363805969570956182028937162050355087585884864551727458636344760974730392318582408262170856165181777580001830632685800476516944117830069146973347054813955224855715764693596898116489669219133704801475804858567727265842962570557287964459206354029861542498321845142721857353307848450192314832326629401857110643570759652223205740228600076471532069743508598420102315065832371550087311568183351074340440627192685715726458417486553819212734382630481383391756308045274353995040957209554964306235955620207667189672096223560079742712280691238558406524877718585622785807359524489513308862774436712449758043246939435344311086622524784493993773467153782924503539765817399469422905891750384517849802709659557185538804400334709499111038382453834656507964357397978933456180813798666999568844677028112390175369596703054257735223677781380805403069634603521099353175211503779504943470771157869370612547647031795456131206275801910950800175633643904054409013406346386589993531549840331504178918132352045438968312126105934756214397981693724727051841946316183909219645434688998297699484323451503237428060601520779164242030989590300136325521005850893140021854382035867433907900931755779551261255588033770463977480017365780981657573573429823013237961092794056176843774119687758748538671315675058903371604314805202090899564755188496211573154877358718270316746208866845795278830677512957642986172722119949646421084017174612944092801110785573294342411280508486037055216160839466441999600974687581930013898180137435617025155150310406575603113585665870417106052893921327771387487150470452481887291311550611464672955130605298874931163351483380507125952074230759169860786603328647995030906752439523736295258459690776986670439875232221608741891156640356881792904851424391252300281752641219507052320040527958453695438257708919667278644402488927626396296927805452220905251124008944812173597657940655179443928946029318229477087155119574509342162151338968885051552781663569370726998658771805924071490963450233196790155747917097093929494287784584957809547219857633665324096328684453263510599496392942009580770724272806126658597094413167065019359474679950384883098477518508311305970260757269928781475396928738167219136230332357321583044061015055509180553826589569611706422286239594958709028754949329454894925111685762437515683497556133061422927002956538440653142523962281510889689271063378965672612186634870781115720155305305601907520459858256224862231898705120863019158254932332459253715919506537705853125532336801716725721258104767363868865151411198759380182424107308380946157861990803966681437656087401333853777621293684570845552291358255802819389532486481839718451122851590357642989147499649328739721354050003981379432039797074743896891730173169615092049594766296834644027413037343445247917587318466759909889169143407599409586380346381138358832018197496396419931416222855492378010971760789942884501538061144812831163288014864844517028115540279848609526036227760255799931308173616420626016185124689344202050399696171916664613363601685194346426503473158139885857630498160641515659093120038925776936352796671709857960142959437336056271114642301145397828642922343022258111751511231869942251774906333455619421764479970994266645248682664910075343309287826709931813318714063813641294735665496888204881655561154031651971576486935862175299392653891744682575183469381223697642888035598101611177227704305279870425257944838831254907014139824581090438826815836311252368252516914201920252858656723408211420914153120527099373727270051338669502294014597942378021023315250182949096694060323367868974854876808251555896566560613971168307352452686070501367122424416702986130882019628924072644133889777904713087176886823880218823906538053889932252088754956170171547751798953017453885880563222682941868404343236607531586782622323442992379514023187907721620951386545933097015323200017310722427579365254938243991043699981064484187777018165501174714140766896265038434601461116913893722002962364529258115139788106943197727255384039673999725215871130573511715630599300091872929106685842477966772592655260092735055805811844451757435190861377190504092963717753764604294888356568628378082723828989697136619888926011384050091048046053146751794076816706187646286762640306620166585513661620541586933101635378958692552483101414776961194318489239328353129353442666651063577991525109010736008923379038363336906481678529398989442813342647308736351808416540785900643736739225605770050660791200251364046619384821570645332027066735110234262746796164585414854923809824133269419283072506865734692106317219351391323566283458704419652773546992518518121863766626358468992558271182839501276393903416843275027888864140804719608877027641895249173603921698464530977912713915738253365069238518070430332609426249456440858365332103043840500447538760980739946554900712109113642378321518757357620429376383010041995367138608754748439605484853585637981081612177169874949776219316335545982185561820042028510839195673538187134129862746174858871106870937883320881912193062491012947310418754802586941335418187734842587970488180434921076244381527819118421957236956174134221073622509878318203480948714127297735674666500042158212884560505792509521806006881265089269410006349485732574743594780247408975252192855584726580798453699150469073433849120966568247220365101747604867407321620565759287684880141795744516969035695049342369087929621654086582320460212540318384667856703824002169729428659089574131329601421710685596445246454408857634506677032415864217386079096519103239825160213658670019167899561953443310185262541701577948107825687848981268306484584088305822781946808548402154589475608806720950699042706112921529408122963717178557520079229042799083840784215216516876304271044154102326559248806367616838369859499621144298461980430757389871226680179875789923317005207624656899851420903679255822909306079061508000324606190080439583007764685763227616476235079653047654085919927593447474677051226188219639565256341607752740680801147896618909111269094962653643920458601474335123304867642512801567970470436044698889666345923220274846280072501816123429013791986883683053242403302411358927946092456677730043908067455274092827728853960433136811998872409291023410158516534436786251029393367640178686655480551498620275811996952784262533972769944483959605844652536376012451885898070175458181269056974601224213808254755059978423348791974385955824359325883556459979669809454163516480100263457911442162777979842333011154403088408825036629917555082294245125905103418223044331877623400179313537211791011424390211902715683069798821004992980402386876012413203296086131800426322556823225944719879889933194385690950856376412779259403535082050427991041447176691021195541767760743336324917391290165689177761490449093218427225365825876853757839820943202953441596313041091267416187284513879596547990725316455974741562691381218326772273396829118740502204260753171186364191598141555016361589222996090233076945366918276412701174443848319103837794387803829917344368775442097827359372209146158883822124605860828622223150504600105388687980244882268920522358303908444457732238927770730778719705016703488432649216503178037340741166460022898588215342936919265883861890311211643065653823588438420938239372655831450006004578236986140514308065591094128751423546939531982282040370098079476052579783359563149472646504295660072933199078700323270798439033352592382793171131357399896063541367401062552849569713058838417973523221776417927027027016127970364078586270417861676630987613697648017195502155114089992326919346764226369443053994571662310403364651326518021566302055259211256493873090710433770713858980702352765566348879356971254231602189855600989947309369201400745205761502099697559742562391504432084699280777707162471080325493859806084200060533877057137592925000645717300030991729145910992200283794896672963122864126951387897083445542648129213406910882694718161532153007873614809550533802345961876455854670538179746795009432050665749778323425559456274316118558303994816940550100000562940111560684558419349525211706911515261888087779605237581121181843743729946886336352743011331532519819029563985286541164654686864488200869456374742618930464135056803456715590999455017850577360620655295450833823533730355028436717619669067195082842754835542556639873111132423622476044670830969809444860590772486442115366436604434058685452043428823875163236000568815179057762978393241797427837099922137814061431872195893826372902540521840438872282366150510866322762057218921562697775404947333264139297782112529460366206086611913813390005482753044156236504625523320625059996899110108795536586302914123699260997521265620252459497908788875426240374470569380487525710521263874714124715275538419903791940726637390144349687786591398998998847245965345208575449375279413796310732533209822876436804615474758763099439450535266031885542985560014104260785430176426299012212426393329107952512154412737860499884838938039569733717644264172008812561345201014707907114441873277746279315315244689600478909559443073071164188618475791944240044378768904241843973682310549226478240315408049157201927588045536952884706114146688044955871881617239115698991316999122905047575452676471264706124603673602208786143325677672120352192603956672819563008316199988621717315347880882838957326226133058811310875291331123264978222468509115321355036889394830991589819043139885951366424722248045452793373902591922153929646109933640933558539230223237281403918718094680395429641003527227217769400381592187510628751168282218508189319687889674590711951476941302830000000897289256922219897815720986626027102486389299612276974824675538688695652681903641715923451844878972219743100593259658421579117056541026120398562421696635028214124299125154748068480039749458827609023565056136425791832938438094732233651278907377146386072386940425506842575133371090597619672007823353478186537866901366892131485540288985159749579603404467417072466083359750042310111846721114047519033543858310599214952139564040623599020264216152217229138580342853142907949125991449271188688094724281080068592384296129920183591598512863207707586885936890756265070696111050530377704097775756996224451740677766888211901892068830448453973586292995939318472030935545864871388873941666968762346506393514454047600083907248511200649318507146699705599182788020174277747171791842908727593727896335388208640624478105512467803094353895270287998239869485779628819135338660691514168934458893743805414886664480714433978980652650316994802161618100252826018468227041621673669512578140694195871115239033573477242189986905204349904149584740913238466306196161127968900208835793271140323692432578283201169998857774257165270700871462620005096472129511414985389955052903017318718745957251234002517028206312266239477702359994448233406065039119349709069484969486370799787044504809404775757619604757173011034443410284014653288744316254377027014106225141193370542401825588840461088575482485899211240726186746044622048151484534346745679287695486498371318894706283776988250198142400205492184147428023938813558610362005013287146149330253948613100001522270630411655945160195096866295924924135443611959352176852732544115803973449034705499684621288467135142251858367009999425671235323740638309002553711557959856774965440541635615342336994350765346594096846182728714313935591738127334204199066374310576549833654468683567988545519075886130353348477895608942127673427622774796803666192416118325239371539816751719631585258890734530278951211374599908791451779014912704221499130720815030026222238762972393218952278749039712867345314288727832081627546607271994469827641086910751532132914224531022625997650755024457416322260986341424738264300695830289443857443520800040062864461961038031713204315211722738652881316301012998583132757774947518772814750592522408441027744917441727161347424385394644669840247151456859445836356652810482096148728813057137327231445406901467032006700824545859872903288731766967515953885040321361322114361293794011887292291733947162178834879147996214981296539664946524045848421442322769076140173652226624360308009327883316784089245981982197684262461630144511803961897812873650174173113813987739531566098700599944470958658798181879279772544668980016569547270103053632153686104626089239153256152533083105067317618832638969651903215251657983925356638984598465663958986622611710242766016944195593934170453127496704547253366477737909027071805730286501973132361629460473524527731355382726571129379218916939072351780895571529914086608770526028154539566736512958519337817210419402224151977704698471281081636073132362703537033492343969567110153360260299154003291293817445173843133695338632781322262138519006983829900267831645677249531205252163608182815396205390629358615437689805039140918899567534725674094438895382768043783086153592937791398760325862342767373161764941095197273652594972320628284194738640529400708588367719738905720996137208048888988977998992474408402567056953377992688190838131848990287998779697021135919456197722472869914205286722241321204329774315205088958743190291921061951408483735733359226458956243102032796309161803358621723611685204535779051201744023424698500158995394379894498495411195179822810299581827853312063235678383034610654140103924084707466597153243311546826631733442402839648956004942521450206179203305703550243042388848580607700220795116683511093764454261943787933395489712268937856465506764601434878987938908750347302636320333020207445208925142227949415815999504201397459250558514713194612015040633238389840559407370964933023858571089925558342374606864859648440077790670664192881644902308837828930540151050221181963816010952162545132140211338123518214186329362151412059437056586118959010509741439135543272590041372736519099091364740735514150392696889076416015921820213547123450030621235727787838345386398062785786976276024606025446781101341393353657401502788081965592104938582348154963927958152418951216523034056796825358553865585124175243413524740859829602422039284667904773908114210996635606215879069675644088714132372991107464682138868810374508087894107703289728622231928277857683980650852416121767870837591333472493731154571588596265780771147823127808706541408693985195545447493088072977202171884551810572317063976008034193103513754243071274659123623505091371280623264088821299568924027985810951649729020923264821392148074840990867063595138985668056829752950001608332494996097021067627485898643768436603802126381651031597895100856700132803992479019561066083775150301316700014054155805103331025254768599650440487018267102195609995132997847645455351348298298955610420874817217043512344496555551936985101159500311280612039125540219174185649369079277198492496667514286930357835559136105998466882930551468400369025386029695419104116581131707385006751204744926590109884362830154781239533983206024691687468375678677616804483363266999790794753594258699266262937278885189356160561965132909390968651848995758733548796425063284610340317186492163043006738053838743458625484653559589448590804382054713961741752373955106793690071556135637306911851274956428432793473096550124057797364214161800120422807295155459859036666225655895805609146750912749641339762543549749342069150925240132474032672334354666175856988463720206474747350263755775891489749980663386364205851757393640719106621349580466964605494451383162387287322873401658387305783160848005401516778468567577606686532289696047179597043295520729450045142947925817326221616820751579947675416801513724667285232285151916261568212110414979052778274536744699533240782257815919484468912662618859419917513503290218722673910813008515445110699754566254719596745087106193115788548374974705382053226194164623059063746231687794456373590706298811571071627739567968971156492676726672748407677596419916644537940981104351507816490689471940596736915806511148279834456036807625248944871867258056966127531260280274855784470404179175546375303924909305489894065438057753953499467808374774407516241297819439452359486821520506681445912197667903721977703025812809873664664467816284267118648230444823520235063630010604500271752365065755849381766573786432996991022457573647851471724040105057034441098121025940462545575698237838493735203880332058983460212689628193142209432726009846601663874960700117754092204158238327025157493532730318685945468954492741502429159581838383999278540052234562693722424128166937627424630520001983330090914127644102333598801163133995070367047391853673960169178243367547545693744172867206800814379802013566189686592702686714781447877229670599941189316868002974389310353635460316134335894389372943686822131650528089420022451033368739192814725022155768840710619168006768697439931849311970608801513308987272358929553953946205709679883237944566706342234830953727707723215936776504080746623521251363971900183423951059224829512534869573413132059320128238850674494959319055488787172141549505826895405294454821817905873423320099061551872739769763924417942597233378026949561203017829057685431615821884114176367410548662176061306434209565973363929460064009182667739457512393620788627726768762280434476723704258632327185202571149189216906458453437019858587793926325832698023394914407951972726783121737113730601913228828991792989842746370231281292590967449562612516702160911901606579282720919071731377865430045609605517887216080855916827511134346872687657511662452582965648496149750211909226315146182083761840341102647588706908173837691735957316914370272591206465417172467197900920963602189696394169104138370120204945423090267859369081223153268863499388249732995021360283071985448056417692737599596480396691296709774778934511381041104775938502070537445618435269453517102886669064954897788851657860052852513289528554731320852821483819051699128879336802264469063297292574398893676845958475233571983149556208233157457644021345017395909091047498805927201965826239976874731906774745912126079415167390980141381687732119317598825310307001321822067467379763372709382730702907305462240412211637023111116357976668448021184013834779474178391040601177346659167343009670075071525730797155564449044824225116514760713640965314448029225593220318807297944386605662691186969047829231774323986152558072979219367319626845029013155092719295149116679504121092917614285457330052476045285194309723918678943576587338606773390418615082612096818157498857559666471330146819153078004886137029503469088639155083255355023632794599086453795716377628905876031718654550855955672598203751384577479117692285698262118673944604255282790837489692625091277190320576831039050592850402542767626049451965998011304327699515339587600477299450938889628916491338875709962353508999041640072984315487321870396749930003974171800200709463908024483933572837660837390422595863099635462609861857979162365395655104871257314153290141175353520725925440915569656789241339446295502288940291836879421012422139327807452809109922769187296720513943976680969081844581448924677924817816490661579579526057450351639337005201612883917458324747909422482432915290252273074119043492491996876974582745233728501926539228200924497411796699200606079108474185581607191700095622500787963093840160032389397857415598948359001328800499999414198614823807625612939247968071972805870437183365166268797958526525622406084944306052175742479298911166704947363308816855515733251589102367838077665654490664845739355541349117811110308991173766800018961083357777285074124112521906934876723526620479704242045797848389986234353755083371645332806428921277334619502673276477193154141265414998124224101249409896618490686534641628141760238775096205019501604112154936549589920177459717292085453868306996678594358790749805233930443547157770747255071071552929814349297090426934781224145107374110924362857584596702197144384656046539714769832266506195775272864069926737707734938758944054837961563061258390230284381722360984482525797354623608158505913503550137650582849280299629526678914754558568504121965519857454493548285819975904537486153610824032569970550012391036675894320578779002241904599672909113267696784590539620943185061594106339632082120078960023687953890513082971075111988980217628482930508678229694149473386210639491212374702119268552905327458465355075809389730539467999850249445689714419930983100528963156392386101531805411766390606389608232096783635693686347381761648123739808026563615886455197420878292747497828086500401990144346603012852202012272559916935819633833832269999782698420272812130685393774748477589543807667304180960358085889150838191399385722496188163994129394086118286616431268594411069485271204925043967298260838035946755839959565648364796065844317052654542725378724416811132253769976586831874821829700498149485978786045055091203186882163279322193921174542617037205442765622007164394523642305704040157823869302051142585706940178609070311255539795967731753825555033442186353806121895768742825131610528657345619670792060956562744783706568252714356289762373451945269848025120389586915442216060503731243891537535876417805046845066137142326215205018378027995757512010386929056285939099219869217666133529776679060391924263898166239349347794881394015179975963164136544118618265890825134010466379092492975646426277613891422707247051097595360426199006702846929078371697606025207898583407755071306203055799469162305147884627365073060008229596784129302776236233940888753284207748253131221339994116674188957329425660727884146761419254769193817695531547015947467560943914888674301743548841735545268167928040885611475390255598156164535894193523686254320768144648293642667689965021143387682704736993794208885525906498883419838057988643802187865346316680170664537709653852037551921290851086528475420829629372753629223674415720404561734621164751797787487503668437692472113899901700644152599809323463619676324689855295663144102825326559160510697660831284971503116817347509817806740628156397187583260127422674221980810799576686317463422273001261869062628223259737892040678560940090233006479001931219741964949769305869217246698390993382888823744263906102929815447198915202191569681129815314262410887250233235520369582224275170894166642060169258728485478223735118049564128085657077280513632229633066946992037805921579735407278134825538771394769725439737908568423615890132808968954685718411218470935957543328062251476729062866354133693317995679240079005654480119661896329043754228217533722766080396579103551126382472841925492524572245670406026887170323366488821864677466807533503257283064502208461385128576547890278788784103900442338788869943950954370478478431532533188564986882818901605282262371269998392507061754481204504865476831646740397426070587363102278013190445777774849384036514914890344322122635415097903392044278737198809814181479154094393151669238373990418013306858788822821473728348019147271775765684268126104135855964888234513484503836175803664529415575286880038114411607348009335635323657999440272172852422687865756891791255233032689449722395359083828447536292255994814843622031480849169006196725410566520926302690254298209197771311621654041854731902345669703990875489330991815225983852892592023509058072791315195821603591567322092391180268887414650416522101702638107420266954200305717860927484768910894086454167822417060050649968862090469878182465702839977064416961956368627071104059241141674934791797778723332396225696755544556813513846960857738233253726567763002899955867568312405994087864192526910070275720881515547053182216557556312569720180963476982504783409596410684967667862270014859255638539160968106888659167448496827061420839846399310519775992024574390712869702753592520005264099077482791020392297243961599763707356040564364872005795788233693672521491940196786039604095242780527985314004221039670525134279861209260875686709318927816475390625675418141637416965924164896925952853420677004719308973044787501176627648105666217102598037424516510709284055884097840528471565554852423697776255425791248281467979370266207720377327751414347542732089141900185516799423077403326392401573315445790996518244321136603493004170875660119698465941704394376310895834363173154453169164422173866578945965388030453687088806295007948261946834117571025868043488908340389067729140693437117142666247423560106422002752103722376261760876375543674961049492123170860686440151656347389991022227107224207295721487562807333759882318766875414056627127284493759661093731500705735319149080761951779102539936075495942009468462055667849465734141601757350890287439396556021435371855283971314236943133429816048727398439032992177110835370076314047624071141942640648901460650194361891256215949031188142524283564171387519007192799289709057821717852793557673016133336844216920616943632102028669941662937951535406754912262479998148832376352341676873066532924836018350988457873973189674389986886225703049467163452712403148184641997120757384606619103992032102641758522159953642711405754251918388610670053242323342731083745448682450469583526511893249411255695879139519832312392156992767494147641235883385289168259816698738301885122318418838107566912571986278837313492089452330040389383467620938623740432422158133361757269016030830338770933070566643712811222838034626471099060650223185818074205646591917366651333075727560948415974615557499538727316030688538749997647596654497862622559616395069959929092038827632163538340737949161312035664613603481686894582923723540763134054869000736126201064826985512176393023995407129525438951939875759396598431462512658652363331436615989204414385298342006472806510731408475401224462345203250507870290042321305367627022174237751372961940022852953749464934864354919662265420511488388663837089028552433378805963018899918780705828449727910909521269995069592663890873851008134248857024365680631617894144821119045709522716094251714749863698296062407615207019898505605029204534642158642750101137496132301211485178870456594363155673618631054184279613856829002502203865507168675159985819247616388720064050444116027273305455867754352682113006582059318964058986907289168630121048329014538644989039556716407949438845650667461069854007272858303759227865019218699867959948694295427036078529244720387433643958966430799228864356099737099766198639865103477877982465047644647383344390372033923295242917619524536561024570853751167355727090967438127128336337781164770088368713001100287365994705778960573976554555950032298374512843417776230387024556925168068178942276828726801770123545460161277967188966101337516307640797662699190681240488922224562740632728296791097104710801842671619819261557632910236209702735233544129926024368238773175728333017532354795916568428544765183386424675019040982324057276537695974431245421609371076187334790832818475105329364443237889059464975308764970968840265200234436327245474915328795524286966300823733789455441726625508224897903223070721626165064727825664231907327649671380056141351190460368844958757139147746843084203133561396625307274794791645103235764826511917502587683168504048541231994164695002596679743964574823727803744617744176665403741164701089881550938910802149122781645409406111607292591419332515078514369915999266761936391368910504422299048888835987667527181453726987905863901708904040204973942185461049799811193503046477942870143851362652597298455150748173386403467093147989774040142797923754983926852358314529031079088778843100636039061683370952370690485998095516143507011852855598996365641590373981915521130591348993650296305709488275032491065048385888080994982277909907020611905443778631297906473574898928794053104615111064273217687049175148132728055657815914367780720031342446662240106078405488207971960263072444069421964862656849826324786021746158434038881032231599676083999162948710726894272839623029863711562704109987611165320524392905295602634927363657978698697987099101868159660088615405602707374685706122377117442432813782408337621476841334017655125713811103611861091648849607682413440752235753896340688917808005610893612582906649309637535971010666423044428547040219164653001462846672585456265136588963146953371664828984565076053886941066498756608330971023862658538213801272602078587250274965863117448534599712709996257836851980077913101748467277873029783042810568865348024815056501511468455362833635384249892949183911160462958219618155916487004558854883405364316926494596303309317640937543135145701633506149383232580970445120559060331652363784068468569804275660318044374730624629963943575309236014163789475074127971051846403303076643440711053978537776706725407580494944709929801260611727569174458116999640705493457726717441895648522984402747812880894209371061497213373280255685390869972114534624634775083264620224913402810746246223842358413907728468618424576653108447789792869759384221062329526121703842971494760622294140458016699388324100113763897206202971451429767799571232244446732217441482786464872352408751686435026315443114310914862569290544933597114304655004657004542393870454981069943376268358602924096796205058247134299001131803804096731544790416058839578139690854021276657859719218516997427277425145686789750524908758067414120951085662001409648942698004391884825380986647028657213431981030849892578688472147093410373189661951325168626127491051306451733499443042850109809627983643902164627308748826183366330181434759539885228084576383910675805640772575367884268880204889732784793495859912141325926047108544652371972263111099090856884719028613339881702236788045616395651288003420572495885066549416303979414232955238836650025495386620450054595228459653429560556808708369933089637056124606737292248779856895712595295430104908774702352996944154565674075378858682787711180522418660271082563118715269733053167671917126569219255070280144879857916556527911120814899957856266392312369797700404298696322522810642432978956765649713419864769278992541876248793682154847490712780806181111733568761553701748821452709722354574755038397420871333536738027322268479242826661067482914836130905612913259169431585798009703381110989946948551635499521228877904919912391696152236060948529652375477041141528729143405390352579094547049700046546507297342507963246437501394917548599113817704183547478177731260082501203056186549612887821391407282128287461851922822138584485040040216633585265834227987746439278511975612858021198296532660177367264453620785410009781697955670689583292009185909095999353486148373388203602258764446513274122602646327672312753510933620665073034640293970025655080782216687292490457116364938327675400983307868544409954755088778897338582384459422454876297745469206281536711306723998844410856172560402947984326401135755921034231664592146479055325924132048650972750592112469347051128671643722879054530151803960626246167023265720545950396771536233802073879496248735307418800908443066039449220786429285233416261386376949555816966044724857995082710698199880297828555139368821910064091545435020305692339591995854506524890646572132890879919738923662442321581001658075313676481595315118226176533755953447485392715982240610842484496173176716642812270995846248203915515843187911041731353145573171411731722032865245625588044670862611718015538740438895591620728041592141502602635378276361988093637420350178736764597230674282967135915484324127668628558483872294467921488584371633126061481368807202937341854086500281797846726958520072107781063681653482788482196712348291787536115038968144935012477744497880038023294555308259654754941036864556813730317689649942181272015140124207664259486874791396408178586676488879845269078514022802495485216196359172013909460426225010455299558755276324977059945137077973116191694509364618807425771413712100480697178927264308752423924223560742658034775448247683798696161486826658050793776685998476822079854994082348133482992388544232119749341216245862605175924063715587581123010735347060322935583624095493636059315616485435087574555831187187704015889741806239818216678477334967949202003180027840528752875463126110874522174856930531084220801282263373493050383849379922193703990454900582157481663223886144774458121818977685420943538622197846026867255994086783415216804509817032083281602678259024119681931699474805225240887211817923224259385689554403632604941839827028467861278719421330718821906793667839110600740337067300092596472851509388119404282426854200888173725250936631551048409964755868082586472460427396765237340276934049009927932752273969351087921179822177658867945217514048073521790163379856683124692299992420006720887749274805834715446619913167111948213190061521484415931324150932760458915588938951367580286373619983428968205954930963009436426066370413007205263112327105799217546279950907580238949402973083184771502025097880321061545148341605225630756814786585661272349872092802639778989966669926548705985779812721929602623464887924126537217855396993335938833348117042561041635626304599808295589749576624202545258994484365509582329859281923180469191956823216877450824201533928442714874682711406591096367585138605388312930528408868907286495682247028036514162557785276249350304341503730809519973026732920025670704829465228648652559025279902725413664410391935532645027270265705736229811118555489241761750728114918632267210901754157267659614444986116136400019828489185533031557149605233324470069477073715857614234740315982065841609450803667978956421304572287080876267326267970592773690718180389204243802552501067130373061513363125734190179989241624477071624599845082007655382198122616269605441366045867406284916708372187054850565065049561509170521661520855192453681630812939588315278354971025233618280054679851241266564166103675132678091679525874645214321729495168913982670657479136908673492794288068486010809745457275304359484108943573382935702411686790830214599084665762620796756455947815785815584564435238259440628445553901792828014730755465821531084993736586464499766537313737616439120852938117433176739210914459984018630841865282274899530560581691215944457440384947777482961741550529805242637125980738104881590011798883552456244528400148253990886582314575535684203357137736120419484850994783311807738706892617534316144860766177573379381103973545271259627034449380848955949827901786901733357504205719144224795498509587555863228450899302988735180355057305971629071458138796233455638332245262599851279244631921679790716574021212688699958900444031237333338981068295700867710379274205783587064063860592842112359266754186825890059356355632984797133106381407746055110896135308762902601169605639944014037647760925169341496323170784881056554055957910226498881502828642199267921362785684971528741760281658404905794664950699736357051412982218423044751734634867821294925070842084874689126902488912665748698404569623082730444550797314765790334617720980004278879712880070334618257155692674965129872218293264023326510718551248835181997882050393225504769984143301501886354627833232321333560334119564919889749444919315556834166461744598505502687546719594540936063457669992443436041347629472379758141059388528771853332773947962752805663477799918302323695046143001983615454747721128602151436974104181141242053470172095953440546157566896730966942780831468377652808358478343366815223039538662345785201239860990600944660252059602300764235736698019135345886426418838838366585589415719072355032500587373839472139398784680696453151684651654655411602129479189225770842754032500643385955135116416055325034121286734815458334789294214914046554362458094593468668031733992168901888101270814157427073495552506678820075730125857482150168512958593644701027565001856724747805098137341736100598509857194891203781081704316259783184836696348403937099020893197767178377679709188620609257760666373961491487283327100668453898846204422035544792529189927278685705344754581922316652929923935993491439579608241913265066886420257544166387083125104110587353130397621521567225879432374705241706293287762444419220830844091769825443339101054788992712704178905448463868093588250740572627959137966375976248296436998127736850907387346308417339397340140222234371383047634643806524865761977233101448438911924402291594286629703820627103748457454982345076350581354451721265924255221474458336625446659567093848528348841914318749497385738720432870873938100662876222153842704328018367313111459689002047555669898875480194896187182429234890918743704050132852722574744374301545861582559570363746788622404637157217374898476953521131923538672471566237059671394322338635224272478259872029492002122699071833181164954588688081720369721707191683116465245770762758832179193502050474599380253880224671230145711295543879104351519811003720494852931825563196187572600314564618662235200364871659847148524446018233561268900766469055843952488227058878190524760159391313062593605526135433267093599628586546590360479355501871043317730869223933795613666470930922241206974053210324842498862370672479937214862789041831460139034207012905072834472912261435068320165583727680339424223205279486698196626587792381527780283863276737226215677698635460883071309685478620373857173074757128752107963571059549782982894128472245689855006790570644820409732137836277057164221345625937780437960700565538887217749946050000875552054923977881678191795185670617748810254472624279559469004268255946873770732259191142474004324990353426170384031494434590125465755114644178684969133073022971278156313669893671287800406274781958361904293539836088011329852669337087703635264293953176374706022128566619882337650380304604468130592891761366339497956138730965268028542936121343626494966613466851693682384089462613461278253598503169344108535306592776836329507874573406905061701093549275746784007921645890056695187407130173030638028724423717617746552485207924098151622073386460551045304789700941819711320559323944911609296277105247728795051764269770831634629674762212975308096266174245077683506196089492464958552196494468061109989310301609025461504215584094209599753041491730685822318209403946643868527412590455023279721793688724098952988954475043330642889518873773914020319349888596798991358716716429447541956307063858817232839037788028556090854815365583743769798872882452431484100074766521616379049609042158165571566121978264161895161563971264136170300584775297744216341531765448469296798017125824318459572617891545870248814906082814243841626942228902737720160746975274439203546735407446211691876566110577360159221768623036950443527636320615372918839688520211959078089327147150439869147842478655270255881877219377637426152437627972287941180927846501997313625054008574245542410720777869620494380778466250968780013156220890343655303993192594373765543632279772391091499619852257974723076449112376605872979917683536311580583107679129318477982817595440312623493101506564087922286195734499799761632782506022713952624803691263252605417808275633268612436061289372015191430290325256794723114776029161853076484111813779154252406569210330806571454211137349934856401824009998134851545171186874945465982235661897800469573964644971401045238195372202334100318057717696386461596326785986296016585201025267438267365193529099276266899002532760516808516111844027844277122835083108539084908892022626715400096280945856623206882463603294371546751066591657945336086117170305891729543331093642063085863264346504169833011947960282894677384226557925330347835170560266517502752647034615769774055870058943953220932057949736719433408600261267117946387188755648174681446469528031956352242260790865581177634389935835748813728905334820158439814865788520949545262291966079107575908784213036677375055033204399549033056684513110836709310014749271157074130223494880735661981257685857106150869970189305849751580655218419001630270360810417278247367756488094692524445285705159266778577940176449508821603562116564868686327018783022241874299897138570435936785744482646545541071355563723061658117026268800117261713998391706885785401919084253589869930654468770615912920271641608605608983342673001752465907302905233462842992514945151126730061967130209728009907933022728624721659817939076593675457870055382979197963676060129199349721114536797453454470221766721681039151893015893235561011437816932944189521119989393240347253805830926625956024433452326070060553157589863990726299996303564827896038619149809763172218960453772147962769603582051224949191769010645361626879055107529385052075208379371031237900709616233460391546083386811561389916003681605963299696190659158591376826733840895392378048705330512528216772420941484779266989411547895983465172187378392660924147941190540568748763649819967130190660900060056492605191607319722910324535133987826770457707741551634724225076154801606711056933128332098715106556225185872840165287954077946319753466470462976745444152120243170334680274567636761799115904105373274271644382792731794083546432642162441851532317724148386627246810420830110375444096323193344575376587733934910247934034955896913806121266598920923819262150047386550909204329669370514238109869272471265060605398625383683845323247917833739338487450139193651925916455534914924037358605218995777155794467527309520601424774204080827636460528407347227667365554582935626535422634511288818168765325996237805118714624934109550693070909749447976838499739230823598360608854424870854894446732153848499956667107297925005312032324681091283584832036173507832480917746726049755518144323991025160116306613115207085003592486879754666747426733539018847517220599945901967139746878122339186198442127366578490433180863481494281241640345161534044469554768367056468374016963009831463344727778894270317471238762069984570390358229831151337171606707750918509995606582445857746218129819566139371024958724539900136575619437719578974544119916402012243522259000840052509132111889151456546153728287159171257742572951703030264213214607917480081453657532798438608766869790389526097318471685047233378770453042942985306779413282143958859824268098786955635200093544468180867292200369966859409529864525712912425831025029059283917631523121330840653810779457105908876726321507866308812623209112428065119883036264567244946659429522927909017101135074678294033159245304654774894371706377498413511026021694197028544986012979426733051326036450272364099528719035549850417686406683635853565239073412666200046343703786332400906293128035557188441770340741373093781056797697721143047906808588189824421436304325768330095149452671428887750438823290248845231551040804439957425857181200658874924268368592578027427265052535699477047111180671452040189231310734786507684823075960378252074100737325997051478781110167136573560305818161194211334306148849914525915638882583075366821342200841837956730707082997585754808216578095515573426892118928812840076929083650288340813513302896597268744257048206919097462158874962693951019507513696966146928411941540112078230676458173037996942121691194412196662830762540413775751643912514765704827941669214016455099095012947088416482050944729779045259471041207672728876398669005952009861459621430683645489862008757148737857883985349972528054049149428171546870444292396645078648120819680436391302332596101284384216190440412388508585936520832015229191574845996279130810498536109886115332505425074590521268929730070133710000016807968091185069176544229619580612379461551669522920063991998407368560520722145360290074706640982153556797517951209771359164671662266690899228149571670270346237616885091638411509770673389288517533682878726616743531644692838715448255201544162138532830213157901045795751196490337546442672401723729090937255556212924099249692726251975395524598561316025985192518433701371068393085666920968800632519629431638122492830617987850185930001256729151829777365599491267665422407721718813752997727752890776276544091123381048546114026654936902769459723312407697128958168546067727805034435844953455297844396054839525075635699682761012329101217878030448366196288972284011377233426991440644857807556970108728238054024804891152862641527813753095791357633948899056898073188930235112747983471873739727473156626653159984088194608418466975599602255370703494946857984864864509927536869911701996364007740069866317052683101637724224140077726712318239956570195057043698392148777941135111057887220411087959041656744525938423983286590178984434999998249703236799659344426453006486033672503052470347750624352221527049238504799334950438402238266196629931906413608832577780111922691300120269270072437119472858799697618530828648251856890893136086733713396054365405206831183997209874365738055653940719929476637075481857602530832940390099330220621401861083182721082550071912470936550594298191296107183749329430381101040764770119513193434395326527961950115907819846223674119977414189789759186364875587590212520236827173774098624696456592702270767226405214837432439001865039369615324332120899455650853509910125489603763742713932715492484629790071467523354006259808687808785711256879250094554411049014573053121942531031604459174174936410182061789845888643246418170951248888521856716263200945049550512802844937270720377830495826494003326693637777703791024910710717990788143412270304134417873624210939411668433040223527162136452418648726919539763569091542779409623379425667857450953508677718464782597939774103740140274398674012107686658082541993680490174740725898646051930840887832886829491100288241821929518447086075363156431124732629377787735574431327275868482834059359149637841556041881285047675367351928929476499241226082347873011483706620332738983049673758521656085311213317602174544878944654724008202843938769862972249553304426645219625751944650310003935704069847869600916526931450816873740735097228227416450406513195997578105917546292239724378532837027784426237769399213476653554697558433826438712220528107456902154379698131017652398569544439963091585209999847069584848464948795414438793247420528728858511419196420593727722570204184012671124070248407413695559656246513349987236622218729574790167446308322235800864808322612799294285595290974029034501824148044100365579138003087788790719066172902067424391502611644123832932449571314156907188769342140013493041293905115885366745668692830300321160106402697417735567456302870082342813151247226663296540016141877362932741842782138145294927130740113959593490043389149204441255836175288877492315936332148676565005884547503095007237801540319161144096467904208217200047766330625676433739172102036052748956518480276696808923994237675822595471005163499487702344010316246942550676538669006369531387818585897185751458482717472407713085995056962375464446586997084697670253156382833873653463908104678722525883503333774875274809112882775634917913248161287130219282426857066871395749613849103904682951727356021712034386643535455800512272579096043517520049968575349437514923943034066629102893135229963544421963365348310129594898395213143502225311701869228786571946181008545477092918028713196966836642972007050138807665721692237121346674483413084205156893374868934069342341944045525702370843693068359685628946619466027231210716433636034677321140649114460220518015282714002784734604770016406469388575013624281006716611268326882126954939672164947522840906204476182004804193997325114892468291770728804328325033840850118658321133061552102006958913793972788050974351637451085361179352420635160951314183110556830188748124702678703217606897142201841466462177399292845088887470483111975182574812745079599998928870908048413691614648018901912366079112881206947807890300129257499414974311707326712044464625757804118546057219778411938286167963911932715346801855151370382335581829372243873077655704290562788277199480941952324033937073651034259803391101999747704288557513319214524054148873634580170771171520942669952680852893182365906839883813813146262770974630068795586326719116430696713996711857090078549677499472960429752161625294021645746779112069788578166004724034293055921264989931224927181322636066100495378500551482381483726590999772792252223417719864380248745053188009864192332380155732474112711627697299272098712511928066696712428872721640367659134952592666010060726803373881952757472315026470170919047297007487833276123189407325772971780695222134564323346766290238771128273275568757004507045755524413865785381411646464065104729277427132081470432663701139307278992223059322665035922700565687910604953672782776723695807448557570333219111332021880919656031164680368330004778962895447928280172015648154314389175626607653992000791360765165622963115190421315679652406942755221016022924537494895503042130373205094989426991758317786406408818820661966909756647021177019551590145612751248129342162172176694557054679997620104936830518688956767349835849910771213319068044337434492329501950831778597787517255882884888435135247880032908436266654945226979596851414865496425711167226239112712990253242176020002474182774795812744724068899818435937432833433025219495387050113987778378154037420570216840963639792043314302604562314104212776327050597283496404679056335769955813328408829086572919907037008847655520126616649358907199243454955855927596375417857496464441728968268010490403551645168549967995444778428585850542353376341212736692674023439892132831416181861356220397949154803415780299094729560762584736999556377193874454614166386606224219374958101199170617634242951051747425974451639953197904575394345811139538285250928782368536613293271274228011673674441304847068238730360081453127263234588159015041603489103697279395538332099140933139127831521326649437435922797408333327983200610804108961333332048730968351223068605211703135007554538904785093341862469292270161339685155083870424244871121121144386048483005831445901299046959926777301908397688214468217554421649163490642153221672014056722029656810150528268361276513610948068059857559733223975228741599041476584988999924960641835068851521138299754810749211296080975705094572051332631591853219240311502529858999848572131545309932639177115734812938439203016856310928926044039396305935983692582518362004335830515603372019354530818981150617931714764891801944228625203097914981874919139651339817429714916704068811699501000258594459822517840608869605846883001576993182290383246581236553939797706700346676546237487905115074199526727632654689781472683546964845122173380587369916222837955445020211834873561103070972757412790972800079751312201857692574779816114719359127134598200519326896336164556024069188483055747774462222936484878288439850206376288776736173101920109930655388448788873778792166619961441305914535712979606080805347688791661044285647434537824378674688197547769084339937933482982211534968254703545883085050145749190788663392699223400548701764759937674525365939241466502127302589916977250993387404809340870632553517447682069403485032897677621984141403843770871596060615453863621663436442724593830320260011788368104648872263585781497433676065856279493836876947869225315196236019279000793324317255279667534333080680213021981662256499902202368874299595576012135033690348407457567054349649819193849977951900487238864776570028702554767391619185406060695594893447793299835432473765349834893270409592885364295275732173397686597392621586078821616250591716142565279674322970837566008428995723919401330505732420981931483170585273939114609299517201183196749785911636249121903683824894203356949299183407234895110515541210652965015415541266737076708652120060379618866620598255805846434305876096848238440986781186509074576034439536179015567961140345577571796213412483828517425003144493965018805892718967865048458926520810238342372461847591874727083836984370463038569918055847201532859854580245104738505989665851669421379539561267832900578300932821422110863444725448680871673126910932828807613920739135470559830854546620911596388116144008765245702162665407798948480684691272995564844917955927455520984379941278088758885165768826355869113019539504365490792985050415965660274866243776795559544049835699326870952821376953510062290160793536305029184583827730977512471253954672383245125137230420086523378027839728405047056183455096537747533495597558706530235750066512105346045211154417677371509653567959138518566290437638506108857801562519259904317011750138795447829966301075170745443987100482296187703981809289326871193236798656289426508528715296316808161920113497912622448036214801421768014949652580023882173014155597272996922494583079650755741231062090211523018169654255346850687553304393613693032547653027911143597513728734387062219217231948693524004261035214456139304565559767972748705357843023685291677951325397061290189653533697597079933086439775967190377172556737634705902261651108380253814531975349053580257446474955565833146207814872934506196055575374846970419951000344621809774687609423257947571774432564966238524896982700922820625577795538086338102866474024768366521358940024594032029199132675394871168689206801535615049103511455137736471849526553415815307777482500668052700696727926075816494989386023994791388144448750738044855559525950480488231215544556955636134584296464692894371007433449334344677349188162720663317733544965586993002621443556792976634281433128202896685003986475218540367570781544396518564808184540704160136304060285978258928820405829706265179825042408947366826254178567092594183080923848654470306233345874447673720287067012932346608942697089487851759901167490893120567429656787549841002270256619729252765599736744841176959667554621002374712346988546126716161725453871826450173202174093052479293138262473636171272924232309626899949960487626961012825527378848832235755426489770446359854371713281592790103336979957372080766999378424711550247864481610687230027009592899532844194767006152317340763331735685921170910007479473530611425347187094564225950920913162692450452929853020107333392785385261274303023806991771578430846681302510740911303647224954183531532854855275938319177987002490295467697309946138682518929675563820911911398013582735966178536465297440649292532353263617397722978443148200407291646323982415055082731163133924036567685470420208198711348867528797564251236364839319494466611980720208483008193566425363239694337512630183271604322281960934301406600271248783532200841313205210119061913377643180575383367787881803554931336525312792715562764839965010898955544055791933673675054726924348811907269645914167903999661820713861952177477376391489355686882918192344319966264720670131761247850424610957963878619275827222144063366420654613478972620335173037858856174451809795213923900161313861820710509250022366994492487434694780190883521904573396803025305693485847741180817867472258101555760064209399447449272359957222488107122510627035362915665300447116475934608213696539143081045129378362994415557956630372642481517426969580244511022368172102368892285275942896690110853151588865311982547611400312935229105216492262846712357717130600439523359297721709640127805376022482302520334040404018733993545581609001635531933509000220138070968156982901867555705810247242859367823926387140175596637504643693691996104022023601350967707150025919336872456832791689478189816054655615774448679294452652137216385225074678909081142326060084291293265809111311377102684378777919003870517026685820398991744861383818894071610063541324953814928873753592434145829649156852454278559966630771942954716982273306082342355867729660207787030705275601196219870511663547602329940861178636194647282448592076154743581526984750027863752155923646907424529768730450280140181347013251658426111462844915574983842001915851236859855615342016355832879539858864952485988905716341054017114060823269807381912326605501894174633216750662665680149184217843377249457592288692264407697344325010569043174787614887642731179909384257540403845807703175260936072020044262436818426536711011164271376567647348282149982627323991086763037994733085680382682989540461397082810283562724843295395148142204937375742122953562412340437323436885094612705633950698279153690202462797857532912173126635860824624728607242354343224800353343580700697472108736154065173729873420765292714152226800474369022022972137842877002504912576597695975071398412909901190206212776672685304878515286443191930152703632833808641325267275300958482825825744822490715472834217612925888782000229158003881098826497371395771952421911410791359936779732405228668153615806848560005776560107729105770911584433240847500152398848917052874912311756563632287651852028561766019363688808210575104349924273895002675517673624866719123257314681668332409406687124256502158722485395950068856998677450263887630067414176737591689864682976460302745796553837684067452682544900286546232595443642639460585519442974675785688595970884285662217884137219121584528076196292608192367999111735111039735805459981989302912867992879274945264145524884419605207469253551530182835087348179375446136881723832344171483903302286230694379086192909149079195729837536580468559985520250767668214481601972562383815153199197320945119505887100394237285506145045188950639271685455715668782251707086695755875293865503319291769179261451847677007528044882456641985171498210400671284555454692105318885624138533662635508557353056007154059899808074877179028256014987002355912929820602160664335825037186240510154868495504410302564194508201829464038403748046345297993348593967516911592562246372130632444668872020249809961939585842443374464533979418319103505717312429717596332671255078305481020413136229721518347907401913073180031021510849348684142639978423968083202574187826979142974574046924131521474321946112235935446707641490072729502405217831078303789985595083386182625666798823297702306408118282569431326433460811370312498381232446612700238622180956808948838069351717564149137170407875219022893602329952683428994784355624161748519435758780994165331855446212790558456423768639848137580037685137266102907611143683132598204134280649300065941517279653601803955096727397442520411931356847622889236985971306122239684431373105220330050659749371288563622285021389322216667670018234873347116796214792501743473654858798911712999483262247987309214951742339553347544845595792101432481832087693969488792379493421777598981395467468625472283040161985365126361169112275539967430562299915070453067237322895704601537839123473512117138850449896745130275258057424611052680366567752184328106386983723459538078486613671258515390663625407213106961812518847508897629186342427425571877904461417356544108248881284528210090291364314080896464475808363831143858933757449614263817112072023964625517805557240599882840319564149448785764117061862809911855766592192999815665252833257722301267021925832629171957898035963770912491108846185022272885176112573207542709213732556428413410311915642537007328300387459062286301200465482515698547890078925462057282322370559638216626138919090273504325558575375456501183505559230466081906661151007705309885499258486758524645016398286566116302258358822871574965179756738120699680900518605013571975202516540158503054804311622180566866211921434642256386407216943044547868786357380534212636823417923545132735696303149416379867071628317839421930452589369836559751802183586972530875956731649879301279697511023542644937075280383739049448806785755530392739292774940290042921427943604876948021837798347312663348383753510698936340449303025649103026142574013732937850880411565632361200274474729817679082673450332879089714263871953893600801372981494437474898393529607337829897409120252181961565218266741962726894218613473261241322160843486473838285922086888246824616913592556789156181120897003740160781668725725907607907287501884663235456016190525936887450070966815171746015385201317912567125372486322488350090708425673362442443773880674769314589210012737902749817419861812943184215882748138768412896783005712128274885954694334428354565907945708254259043239902583293103652872014907082637827533272960600955453760416317553717748424703864045762219201717833936869731351770982777551491780556362888739651297803318663896921857346965618449442701594651714956372344742692992350796613324100094409809248909492665062054138008366094178996993709441455873026636783499551575929845534830724120790454956328372704544302906674226456116519362225150105952955411258453574142149409887987600687052564536861281798261544434229286904658778884088704127719946668606257589854037669918856833965386361895077418774718290536827480887574226828534451950677591926804583636756136640000607538060953568555003335551395918348525153293678247209825579380971650146416390166328832565556468568374735797862918226758663789767885183969734333660817968441754573939076533549980307614332235186130751731739866011260303190230953295343006670812194190020884903246740647639323441950284237214095599208224856107045720579342320810649948574916691857144013492846226445557134952426929215810078700834347026286175432664035829865849774075065231728082482268862045590231318539748970606300147479932879081967904049317681814071700901503331361550715665334701819744090345454490287347374796499273177217287377720153365438807182834309323429594577761776423575250966036020635374338531727997482599407212837796157340038689810191529300521448854184531412256006781033034933261329706139579715726064419526122019972046905670673424194055193695893441983843632122868019524350842440145182745566751109267274085498427696534045206683719131054044023151267851836673992874131133617253480173948444951082977410193779148508715635580602342764648772515600518947837815012080661554322096643816761468191625642574247236894856875783184351772316706018439580037740597503399171595612147540024577271072834182316363881178399992756513827630279976262817710326872379378241304348163212007000461801169631865439990618696991919495066251479212421721972146711292133722887008926768529378078721043732667948079513097074708029223232429596323497027221773572665035510917292095888528415906051478210709222424279239342210893295309620021048073608571190516202473624647956458604591753839509326179093142388764360528750405721368291684501842889397554510574815847849980309367421872377543570082158484231128164847113806113119606815298813279694662727332319705429011446628636594178549844357203537728205848135317338183760968821571138560906513533079305378499153400942505627220294743902372107614780911343847803156498450293200936646526798578913460267183742449754024391249380891567036091979218046067470212699391133917613195658144152358351461531636692066838588074833295583262070801365338644571106862388153081536301537904431500380101419084278325422377238117364898427997490349897520590794732495456365667216967644590297158969256397013734845241574630901336312300890458731379741019589096072487184838645664327444541627142830732252435893891319025641356203362531150382329887977977613030835372476216849345259153376268639999278786151541189192244976301103181740468428136714929763087710213264908793716324892194035274473875228892949567896431258428504327570337410751364938771750396285751303092634161889124688768850406939050938347413574225162685014243235204776859278721550568710555927547397665267833343945535438858290929901786171994009014565688608438973704301470851335185353944301961059502716305786060956948410275836330031532024116341525171799052164217557789210734215611793837536666367539434107317924232343906148162520240859908016201464901086787603321848356858226109749511123844486138399684116769067124820938375082407047609421994554793988931013322376750764690858208447802396503569137376189387414985232669508502829027742155767838699923207529663674427451154354633817492502555362486118842943532034008368811598296579683994324946184417566003858955212690901477510903546228212693165789874786812097136075822167791183238983179609802560359841372026191118697121643174280328106689132605205702816816717510178187114425071451732920649959887691826908628247871474670822678429600207317547643123170152911941068960712390026377217197206669867531679688418661487088265271654929117594672098269778771863621980921484522121970149436070423669256156583759508391832834746923929773871394188722899045669073643863292555775613410129676310722589210531619145257842780743469600656281432181987743934341126518469211854559949871739143392639697783803078206594252315243016584760431966682051713503265692524294772044853601110327454536514638290822532196575213394283886867687199319629738551349474701371373805523004334922407155859233463070348621367980143223070826276261390424611312227422821578869966623645947282200736611395949131696006969088805003057701508351650270781162216186626713189441906971743817622186542537783447125377149825217727235894531286556448566495569485017510928622670318344909965690825941568673005290763764685874876479011290762916564828263165409405882179088441239098603063116083794862277401397943885509008705004989181311505753904944625150203703647627741093287716735907862986313027604038104139722521963373692044909142282845447834118776936598854630008433870020945964580305852847176671374853237309013948619677426091300827635224070231561801138412413125052338890691720518227918478554164214386149384751351864789910112513344056337762791302378766219485033106104688734122957314194858020364595288724727238076202434059886796677368257735813834019109997435011589277443687035975156763741031776937512470110752329420977180343707624220130594416001674110921686922926750178203032811301147601697140018252123084182216253717244970396597097027812958355597513935663704875629383963570434318442001579467839736985246348255756930453522933595537237064394200189499913283182534605637522128292612128384811334318787607947428878357575627215430329072463359217163171150210578321212140320531541976435641360673427199402638047341649508419600332599133729587022501258813641551941293906139202086480052789476801008969286649297018492974859866829989477957120677972509555434977202179271914247574726946434760004211393482772534142354749653635845757494092030750128439086380434612328036528833115224992499230091441855929270664253348493134036602664813437358752112692358236459772941259413834318045035738534059166145913377301185873193556306243440345802034160510058316823678745464215783712062308937552325776451960042103517619911287199614530204864836043113026642005229715332391988597426479398076385163587456337159061517908189923665738824603815041800324783041907385645456984368684154461918358958151790463854913805597366551344514395457868003392732677621477498992259911437315525970561204589914390851180306443526441379192765154412774572243043111076050282446220839974290612450412313532666413336438407984209093270389849539301512185598425209499534065264661799363855764976549893266686841455883262755269190782068787040195904384757581617592269058023326840212315672309416677188521396611742628577320384274327319401558539619633577559769793482316970962320508798026661544180401311281951437508288106022668514195230082833128087491433189497700104217636700554888631253171683023342290488559206309135776235674248636003622818933528025280255069718075227553073784006129116538514905935688502951470655449344098443741402743442146672476053445475383617930752137844131658526191935484170519325754557490575698993868530963482746860618225916877812422114237259019244619428074198467094473582431468001800223183215608250930860046923180638528792574168295360889327223461864660760997735271393610944761657464562504720345202974319990403966376401990680425248627455125610632191701627570563373707596828327052226496843338505898249601431538432293874231722508626745247370218080917406200383094633423287504259572909778262270719423731324036765177537803859986809670309669950035488656761777010153403931353232276895131686295367916776980860974748653097869997598652879346731150969099810829053843193448066910781610312434177184951892979571407788606914520745528700868354577578445766493036027986212338970842063058847582558671599593859925484112808655101828789117007643133764841443106296206150244872493722664077060162963455560163605078250219579185886216321006737593425643027625275265052758716931886492868837559165658188403695822229656417107810845015310827886875088421821893747706506752544337983504441566739522604601579498063305181946650299107745254461101293655307035449591236070124757532241268367788461953189536011072063844720274901942989952285283008461671759827359388377404356177231138413654400734895453659204262413413788705158627743354849558835033139938944265680597219074675507800395206142915455386672256009101813198797108543835111277251309566789090937014982249496730231650739032775839451543881946980578320894321014156517586551580073112595906696860330799626461039564910346679846335439650323759814468331332970648951884927267811683072229518009657715333007781663687414787407035029861140249407825069758398048139595374014068774323141488045704126062754388872343744635646008202559475937473240251104680256096027112397068434294284570548100942708196775794907410808351871027415987368454624404875108038492357936890469381358275245580407103610124306535366460292907587445019576573434425164523782452388288946108155347448838675172400404313276728400527147864611511147391785061391863096223294604201839304930025750927615716231139619883526253120889919453272915280008146163249834722832261667350893738356063152770058157531474469190406944659048902366983768763884469745215343363510447210414833145653943787859971810025498516766691706874641055755833188454111416807201883154600173324001696109420347788932315204534678320779094766139739312100136026489510302055594033790182142691948906269050230318844724297018186874740637287536231827317420626671477850595985933192135221392363665720274640009202633349301882839631226368576444838530117575618860737115674325687760483001725753681219363929658126333152236500867904187940221216848961869694136305758634465918515914726900075524470059720040307484652803307672205933747407707766846048630166738142902850474621305257149269579226971917053044197007874867700446729421907294986686691373209077674016579017828344572338633589148676736356237561352471528163653046281859143543240148093678024166406396149374028554039949623044393852190309929162660516143284776036768943077819697293587014805586422281975808627900796897218176648705107899950046323251231470958697216318947438551865357687388326216787839438723336213019512301758603969948036096411898501827821630204897429852745186438928579575904778834589510112376124126164647922484606774216668501190719938805063969554027866741845559566815052920734954093701577442960325357408740765179271997588610864581423582040631860829317986314203323841464642107000850222631094276157915825674042392327072968765360196306697868219150735242506069684643064999097953292003015815963746576057237665758016136893048499992499950075264971536104309877720586257230008507347806076286255670750685866936214545539051175402115082349032695690389942302806340836103659276728648047223021557857062004722808902831194662431585381973876363993821756281198360971371085066918707532812341812163265979846685773732271594062722362682740403958582944653560230446101703076513194885835587840977347826164560109565633244300182822403564215881500024235112676006063799717132733819602725682614216483661816977298191567189707068466870546461307105746372693760446387699364928605826015800485307548515663130267405596553297311939215221516897911441382833190103297279352864115600184279082155036860527652837819681788318464817881915921551930985640071964898537425247428600187160344405200488648281778695695527561380051149257591366082185300711518194196040149659801128599172151458676377270391919727771747591051420081687102678090173898931738522729408369463473225019034528096509753244151968341377391123159552773177872368056556649925544786523562099548641364953044089459093448246151737869336466782802230893374771380092122548014643941436852056398066826295527593743294930620457473978570452080986537136385966320842440789027573053312163901073976954010397735416209618558964757879733761006937950136399829895036135551215741522232831845218288526837902736444763276838526613195359412764855458001468718642403893736900114379793429462254616925876349980135562855116664056368770870372261820414134250231767594034451185029183016359839339821366250108176290188144275596355308421716191986105103719118214885169379261945491830284581431085454887222323317604004551902984589924754866120361455617864197985558376239336162014663875794914538519323098194448927562224666081315556331315728157362290286646638410737030026946725339681858552171866931839242558927310293193574046595354822552604291528194234331914277861342160511441338193660651371150503995803121933820186725161983759183511234228478883909601553303457102412178615076575036067645093330529363795363400176350721000314482048365813968373782896232614793572932953007974895523706459366088324653958942431966307316525263990518958000723712468611991246059202665994931660486156380184130222476047566005534435090424144784681944893961144056659938652173676546914076451842221271471506127869132107064777395536561879678640896079118188550757284331225893498160582217249081638710047627604828156933733165737246083946309679407861982170365940067977715554636839580012888210540145683624282153358701827168940459474204309317370021067056685514124919109293137062551310014744679595662959736717212300859882554830879589127246394639122938620926358107545045479327760810627150756429628512609655746346177725995497677845061746321844982170925563456258162480491975480388029950072786114486674407641787185584376644189522274911311915240618183871973604429576799057763939195325959017048163098977033071328008073707082931328837840467861034372487559740806824904628915164442672022108005002212438872703355928013729370510057948268493155144397562549356313014593068131080098259557652866105624121504962136437238332855237012426009825163891231646292506784407143379701076509447955074564116272672479535557662771548014983598559641979928362878651858417804656017156929716841548475181327638436014883789419925394725969337564513999636150766413648423295379645601886651527032726128671751890664559707949757877414511941579230152448918781187848710215667122287959066332946247795730612077624542967614186079433879219727887460073831053326381083461213642431528144641492154716630379396776539635427588909820247708874873447330585886307648602993721612350773608009533765231170319760362118058056172660446908288201538702833730773525596524492203908563657738400979119701082514859086546592574768800897904389731520325972005942925151404577114415846136695468625366538846203396520233308078343417123698075956695704416116268861097699483737906205434642903627301059180000189051400219342832964824611414676962985078221066424852443678300516514210334791904044825447689440396551233568059956318973347241514698883890067812893857819646226891362602951186995448092928338336985420214432703909125709229949257212365264741270017808064013428013373358830476221334565036712313080047337885190522343128021901648454468931209513005768004621970829680276570295675359697664558090568098411374996384954576878734164958762092350665543380578368656081558813282584168956076020356381050695535970305255950959178208484746868588290398071875938257219570543416578242802540936683596866923210633494632082561294776283248241471037786129312677514819703506782400444017165911499596076078083513811792678424695928589849435958388576301669572416877572465966329710764002266245124250594279337979900424286518386317197946965476972118221046756359555074378374319351510993956897273314130109717079873256173902762041032013826933965672085361341413840442221154211348833654407337811120070052612349442875769595895246236693882381649694963824630463556697293241869361365536895460885130189398003084423974788199314450225294364538038143844310514470415519529212377982731065175134438618932128350428218164690713184686075579044765593947970932525287190559998326224799234583442582252524059481385727890040413630728596028798849003816938152113606249021692196631944289673882407178647907237910986580337476102784996399498905758575266144080521421996534879424107471930840785375171695476563162411905154715291900974019179779693582303550793797199171972919335785450154061595015149440840388622168789188271184905817135865303101285945213219359171216552779166815069287180805045464644281558263605428547751197344311261733916779662853948079741042414170699893732276617205384782162117922992283368047595925394746668475983320614317338455777816494574625841916958059803308884621579709734322940762557243193332274098455311966094349538901690143640213702037989663182265624628728759346808206671713771705669075290020571929369767131341260787906578924962098759673402144420278323402568488505676412747389663926716136911974276122696868167127664046660527179187863346902191161452483697897053509077571061711006845599406507755385774578340464918878407954181757538792588794712170149801676589143110922205758383233007978064310225424149811882027358018226262016960486847749076547204029764714390963837348592544061232529424978581161490754149340352148965424935003653297633113727079759047995411926144672690051520456734766945296989493412976262287728577478545364573544916117580809432652268340106477594808953422189897517727512292985016816100190946944400883868502490591262706512373941919931650037701915734448288879577173485004261920183671944649892967586779691937512572286937376724924651530649179743473024763647846321052404580722731676212199275532877528604496966177762064477099642891286778617843556351869865937631141697885876954842861425697519004311405551625897380633551776622870684592945698210879537631021461989932075636272978768341295812138813303369501183241352675151935613492885612629473801751316151443352841406629416026471284138819990583821414400320841748957394140215550389782440955342506130162716332722412390903917071314244445280876643214230952159632694354435816060996040963915450604096459880516747584905580224800280687392130475653683886413868813981739026043821524863878895409084586184663313398516285278438280793821756292265575130217021316329952254606935232675720474120222109201216407769447012993161128223547013906983006774614990773403629567540712162193824127544792586353900011615987824218406710838058853850807211375211202376119797621944559433511181584555045510216397443705754190349096390613235571685769789910861028462112327726280733917072567159561703811988836138002057183531706139931619844365607995765171145623700011153717073070962421004551640278342978461481910474138094366904331168945569222719355908581987746696129959386347158790995552422068045908309807265561121485793518199037885765717412929970069583873895028523459762536830920432004185906375506345932836265927059974506548742123448977661606386422058151366502310840838406595845810956469653384750655340286223921088391692593579186277850308261653359596538974327614812499990304680649530555531683365845767373110618609326731689257211814580919277635974962947394230158168126543917464928766767708265507983082064806797365445848312502179106022941030343113167900021660036178458293681135889373868650439332785043464070661370071975043667081428616300192282769832796119789385583436512551569405861130085662461842008471777955457258709505154413751844699445266344228113853377353227024685249095917692002926634868776166391735287439810263322772706453596153964256944559498394079363694923268498791221470930943785396154719813243982934199454808786695847304792000135384198963021681554201956501456589874012309935545975532415341796805460601755747055160860796274073077748515556314374112744760865046387904132194978458575387969747731578298774058267002908796567009498948511491074060352552376715908531102761498641335208107340109490693465336637448352102797548855923668925773635081331218709814942078875800672333856197776108292984211172251427964558134264281708750248674041147964452157685029856914031917597030126791684163545629820601533854403259172961559125782062160576573927624964755967035271687458208904600026785469478305566129497687106590849903104492298291802525878339678794753414157168749589536149603007685389342598950690350853846852857779569271924384948312476956118154788715571507875089275036537673523530354701412947866869621110578693264865894397561008414885185448059704598930768667194375978237646600651687346691908087070063289881182456555526124403726780260555667233282852226698960772369222522693320380750101239637590801263418839090482704098486042798039044650411374776285603789098205300611676446214588012637210853314415015501548538233615584073810041144716334482474810543101756362327033266721800838345003438700610303582467550538779976082491773558814140720933017607057418122633701376745265632599417858609559305733069670302357195214844285674048467840607789641311151398196834303015588689532314472849966430179524491177418612074614433158749289091050172917119044084625746960605796181147471340520274143033087909847758535462762629275640327622142212877375679117877644048661249263126237313156980707201659540079462932999525359581490653106335989121213209096242444653671802768221162534872495629812357831577277732207034393801515251496889142172990564948635533264567311833979427488078371486854749409554161155397878700134987224100954382818865058547642794412990608034622665014544577877003590410573711448347119813039535459356313896484324997307554718774137208814326158225737078031787721431514790782404683517118514215416280249232826990627773135885634638067282173265830071704214529320384048122326843773908477476440262044543391261020712503957946833429019242626008414939976899914070039576882582306653826361303259095241308261990825883747446038291298786015037030577869378704968558003390640933283039444828592003193092030182076502362216293014671822253421238555552655737259374225139807549047737794596661937155269996846219161408234494071617197285537153022739019176149931019432011056433553887030652889764542874479883201004229359815007918516083218008880630764924467132121428320746784586089458630439227052674819020062701208050767794485879814482230602159263809710261899208970714594805843972022852998199836793048247749831766204298580283055128222427300453300203770556634436562815717212627669567742579147274077476359344373977719523617842993500791105229833048159205063150023650204021976968228163240049921949358933169371120574749901691297440060970171711102474139480313128634590648085160884406408928450994159087573058977304907505193180173098812344428351414242980140256631217819943242027332972734401233682838636138230229898874263375943925373195957586269994280154182321322502590694701820025590753897640667194137768780976825307337353195330116499583290005378188968076036108782854733678363640166285071924404969020077013083114955988496363725147926347811390766216802136449821920574982847839280220659662532563835581704552097027592846900262204969027757846682374915186594699619916948608969029344690903774867351242048974138133156853566603181151078664323194553850025311300273506460402622567734493132395255845542244240310611920879943870374756856982370159178777432165229051832942545661161473582178262920459921431010152428094468025359856606141993013463860451928921042649269804112941125020296605348270563736503486615844517015864796826226545909423326281868885610212378676077072364952380606048218672229603536316690608024213313333531620142943623797666229885402326637513583176081133719054519721127666167081260231442083699536463816688140300664709014752016975378700773995416705136377040751971716122596713931577791042848089359009030650661881942214415529850029565326912987285469981837087910939466199103013722439655727704265887419161835735348369854481851891367554686819969290444825481408948497293806620647582070217641187939977418044217438373605937994014641501967544544801452346201537652904362297300156528553860451083297454611259756500266617505079625013853461424448073855160921656383802001643102817790672790715064143079753034140676551614891562699506758081953905088266198403118284663657453907024460850941676738429672200597499653384320836592408049471399028427489427049977611450201023364804643193879177879201687400446481537506701718812154962622427407872947389982048309629909279747324103656810532500153648131449937859539623722219641941275677148300346448703038602524520373089933267144591021124308086173307442842079624967141279188883863615197649036348536481437809326965730185891374250142052975713032374163843969190114652429219368136068080384784420851844666019940287128381635340023973481313725045379425604114678991685173793718848317986931366454868841337362332977060122655348016199244494775296153971438929474467649629037548960723373029840597736491319541061888232849590245003701995218715831426140158455261084149948273111913144407844370259787217817992720492622318551880194176649180747097189280207815578587164385343928996135975835960643779114875435904033832741753532673135007696625594065174307184759230469397921398430259167447958095958323103280771993335323120088764630799302592963584965818789385781648230865883203474648624861779726805446215724075179068797644413823694944634814801201794473735872184028293435041555395706276471301678587102828007247251642972632628092037187426317393465019814994129501385942887990116533582019103162961713104247712833007135122928639731442080060923746365809996494397520324674591289105523691678784413635577458579955025416672295575718475112820704562994062271319170251938571773918487143164242148638230041759613969579555983677171056619337838458822795195756963223706965744409888007623246898047477001368677097261182671472964403472312989168922013727711998226728908102077301724898024615645453464163949315289034352138066949969741853012408912791528039332461782096432448529257750555235915881248588268286572012030062063908481073520394966587523486942323498191451780556899650570620890009709939194511130160855025577437126304310946293214635470704797039282463415337087212541585679485851940303687716148864275830489366717113890071025123366496300505592549408562165676227852959160840457261057771808886247690645550800156651190187903488583998511824375961144655919953694856180176302628136279027273872382219783620638816885121946370777707036213431371805455961193074917733835814029223973252960272761849974791174005734736274811154252726019393064106521036725582759542563975244813462584886287231940279128962612018347085214081907132700590831702321311659202725180047749650512279842206149131091129263669475163955799327386608736763102787880313756842009873858194737396846605324496994306725486091216108333204198601497707637980459436689442364002022233579570768768550405201624852617820827467279713428191561070127243057461257623270189349286661955332799088438101072589316889936866103266363530078324370044841970325579350513595756107557734286011253437780104881544611499819207855049006375216186290778252701218434141879957880187863475112350559206154508622738075072913261101417236938439699428094711701358441082544183895780194366659581254664920561935777647248568597054153724322214026376112079366782128982453881178798267960293883068239419964367558928506746367460246635445450459296019001995790790901684113376418394300853101217122571135183328322123556792401877022127836481564198154144998077860105133620802000461250853487630045458734443301367855247131765059484149794230208385992214073894374758456273578460495474369588670297374246112907693576416862661223846116528403165153812406990188198347453946479335196821826870761642621449640682959765273185771748748438065448608778421658685558612120547614243360379872175977302212106311823570855892375549918844978221459370733474425526221831219702956453476376933084518949580307613770276760817949309525397846869355979519835057550668857185456872751853356261672218149680454678813240405660365575662035553497303692512533035442559826217694655616589360163977629618826980491530504510030737226222165325944115685029676178895832284659329393522531408328683322764407876688829269143006169930976585095767363558085303767793487192208229837820822848424567655088071102178039395993199637047616808433759648941304456435027044685497025103418641743302031747450767264618766827017156028385524976021673334148525016749357051182989127697371426814143786244730952307622948881513476158840151241038649362009628630795955798845232085014574688407146625128554375169233928359267446956042077888053933556031987553098689443699295574514343826080592102581105877879664261980182167876532084310355859234898834729679791176776639396266247559134131403578897989345720729989000904502480101807785083998273717225130609210816933870897901029859467477684763499149314518849201859623057545254555566192973993595566180034997896183917264842454774666563416383048648426778039414623368539201689854985845252849255820668765259697145864546992599551808990821850870634767627445499699003707865349216776350058152145516718403752655429860194502700877932908070910555585318809329361846518703169077630426876883597338067542821138703096935617878975665884818551466456339664259008896126689513018004204543148292066649495397995990205596215501868620709472096358389353859530006919489703540141507149355308389360969471319012734481910659954023983947798831963573201375474985115275175653315435363271981652896185869463271429807821055308272107227082432384595140692781305814947531536965703321833454792840635038968501264629703738881278651967420988397752332520271848657360664637805208257444062502978007107711664044358529517975088223552574781816818920321585570316985308761752683938976977310813450248695037821197524029897468602069538754010451510524285361827135485545852206283157511320409852525604579830250285360568858377965549252313223741800161867369693810858586560431492181167835475217774764433248744532374514572869208642400018179649947741535533577334339579324212660661996035311975297547952650900749072522122054192020712728892863350949415065215812859491638407167882596911262843010478808730227846700241687705593664183425614434269362445157857749028082738488089345629393856781500954023737151154267709549907752839846148365698806049669345711935202394289533518711712399040021274155764977207381227466336638545784312266653721335920591014556290782115190170332266453477070799187433201106358890794352306693720466668030337323241553458115230759660809258438675950696241804567406718724723978307916227868344151708232829630915686349270697061314386461901786334738820230773133723000391602692013458631075122162699455410980526952687342177589603459159458005403029936394206577172575823574115781588429096090020602396551561866828896697070764554204424064356219553290292796971456807854339025568704440206452463133430107546064932402443318789875030045012162260168420725895608535276473068885734684264724864589207572106715965533061907984500604523183248352561661344637327903217709370349428328037808016827536687370314086900020845736831019546780869698014870087943181082197390684965479755442444548549669852239281017737352821223711728772197925533109607139519595718254789520795402376957002519845428925431323529192438574987907111088325371801694125616091844395407924301676053309902501832183636223345623125655690372128646693056998037250164416938117812299995922930058974013799878458950152642221557724005168356467215222728700508127838371206267550432855199727003684532464835302368714099892641926385537826548940680057875064781960012927347714920928634985065800797288577658391920594296081467726525906492378779807892298891450185781513586117211747261160523940569332977574937523240816496125152350651745961498495550690784250352523818297213511762397474468075012454338721520411697901599842981735171243516861234323592870757706613866870924255695141197594359294068343991746226460237327345180733757858718657414703687106854228511848353865013362890166768408290471339028324615582923525048613316686436512357711411483904550100715490294036206359840782247803019998855473030936198716057014979761069953482391154935753858817248813754800505520362419134025288453790860699504462917734328558312150415416305955590921680959188192195122664555368044074598309349926256404072316784353185167202018023295292011477474798970505637725815616169054681935379793292085906579354920476144566969936757009531926354067090628017430688158588529418984432726900825196819447577527321575751724864344568015571094171603351362151858097283566760523505252456542331280629895687953843851116444725385527488548352591177678288105114750441502639100066900331243487552545608883975191382132216400315853906926894926147103176242475666122697322771168991787251234240186678878514051107067497366700860149993254961931917525487038216143297400073160281393977438164535468869070061648040890388928894896399971208130470772225058716660490067356144866471672637425043880942515195963885334366177429315382203283551019867374112855322164061640810906613493055106545325289580868171862262791394622479127294142361978293813465616770484979711017925906007679686453231554167311380873330083665525485621103633384986813199026946189612293939941833172410395312424054322968308463144489172457027456467753403071321824207208592655930872755677504552889799060374888114114070481082186092283301076607463165162360604144504906325811583336683662459245299722212348106742235179010250349054902149678982735673818052893336631519402086332968201680136067634366386700456455416994816544082741790077372524316997051104847476941225292081659259902653961322909833428671252232074821439202124578325103907080804412195120335843853795062734022385756891829444082404022062517326264242975523714971653483280079290105192876407162317249868198077057100799528268400004057013373993715841086125406804872362129965588863476664800317424025526215684883250692217846548121866110509453826370826636737270836182376159461097293277216134971136667066222824167145732276712992996177420217465021508576343465664401035541685004225053219580458994980003119751377219243015532503732760588108868225463362263336342987324477664986109539620408329972959336910382587073194511590870557087067844603282359357265566372527898831722734262297736406170618930344568391559654004106740688700644889583765525988955032532748996321254091667232998798356687224017029978691922571244486077432203581034876861172949000837526396711520526808780059657944872550888408795456421864610411527252862027204291147296793324649468693409159473766753815854837545405879053601304212305696705789210856550090575673989067603292944088446171799026962797397438707701329076415582745125967276639162691994621280883168065303059727139488109549682714252252237077005424016220579034639161671477380151202527422087973671198182229439693817343738805526365863957245184880207086795395538294287956203164353028709575601615701857249123680663832972444183743252655298307753175663457679161946944846507188555835039026155875920209148209196085888136502519257521768947466103052655539825261797690315033841368010905512684107019567038786063998435098426352416465253200635869421940678745363823343627062276715022175703865718914668552350411322781608861398898523460588362356207874988984615863831175996682972982253306024067633246528792090791162454361206775336706174227166349427361368255628699029387327671988175718012420970350000692624833910639124106932761098190123115969211507874151561282505881040294602124454761047465319187681220011852024792082240311821202967717171547604250570175307689690430873166347997237810470281338889770075523610387061297900360340243133330917559466800510700019821501891479557841146079703347958874708738249782441977458155552456457875738562949077843492259374072897825781908887438665052810632235042447096167420250306298844794317729000176118673789710541413862860636611451063881011483437550398148213951351788701751277537129599066066414008308988614625068475813947937292319677235391404270694846833088055594337552803152121288172647722510048123469874395524820626478697141812224769168185228545058600175897557244362797513046407081880445240974515542272282067426614953871832950615662586812267096601296300126559163419605033742520952509391421231506609300846136196148849809844397850066172149583349464895210516712982963932616504493102259047906900683101360503113299268580783759732169137991823924956360895380063470685184965166952713042212359508299433149557515538327268230729046049989149222374624366544167071505969607765777343932584243343172053984985787062517546366533846644099524528614792558988664251852870342263443983541449896430327952237980781919495984105531844780812735936761902003150904112902469611404932710233853912165961276934508286699552908686552128923431910874042485203311755513317461939422748955434016318413731071667067122074012215243054175900672367642983899086997826631785079952389305719196359935350391821205713626455495666067158717315293376307061855011862145559891286386018421013827659108067706486937563666562813414283819522173067430238777897620237286056763770256552282296145169440721925912997237594238969226759832507225048284524800341596086100267616025952049864904085071199217264560894006759719485764455916096680088642900775506001535867427236985518339739224559651948540543797897107691346691209951050776492763508691120643089143299455245721281792483880530677583355723853474879762481314539233852388504323703271937010680811302532943993371391955086548625990355816444103281852541799817919757765930241408485495431362742915628347721855887155589095438824815328175187565334955811894333876138795428363830621681251001406745505854334845350259597271044320214263212615635255846018830972367061751905765845364625864593423340529103442588501244111507565777082492280382891163073228920000550882231205234926327775557181973196235614114102584917555531280336714323352921992079368382393048540733946324635196204630701233745117782298095278708285923091073590021730652242534737280125302477017525692484793208398475023299851495124788161384274560765657758571424160714968346816988458082499780090638690217405758347005204750652909897860856548258314687472415695121481377466364880175533878105779907015769031025870999261470824285699647597931965210340419081323979963934608405731865163605711469047378179476749398893875647287185473136709323327076374999086651073336772714182839466148227738368024964005777923782011231429808365226319753673216402763397909950744110317580582589194752394967138352037906388268374812982573865384203327528907416177311633596592525424982781033582743184108435200120499030385530083654913173950272729435290630908557161210038414423393896420662163106604138396109233415517444040663387312989351855550304547360223766932354910595396595849674261151196573439462937001704531392165007976738214263383644133076862577262207229060845817670648140226926725880133490198658415620352048582641547330897812695042655191158458794146213122111179384834551588240806039346488235521487730473539206068753628452215809651902074999046232351094855976417635351028364924061113997013171894621049565995230211577446242718569212144199054137670829904586615809069114152326792479297198959003326819325380976178069754497056603543709052790969722157322648129025357029606185120294484995324298343183479347092709200786137099377972542831687298857580563511990095855883184811651988482551709795681668877196265361888240981069885031647881692659452529315720224570179953411283148285392144204922604724473997158488876276185740300283892328985555301197846474627470717674092791005226257197991340393598768319766622436951133153809661142245827945930284581092886319026260185579302919839886322028187994220460900041860647038954998024548129453021246793386217582396742523268543354843210014161791943617545226686701217577165260762525164618188554401396019637712919066614347051747189864218282008985448955158085891372686052123362054995222507253308255548849266234183005841615970793709875168155022716769453869471876075731657963223198027629879670233148110804917029114095717241347485324494634605705566980651823940698935239227572685135254537395909041423461756516384837320731862017061422358743059490647618563155719049518723427986481934026643177182378891369686141840512019968958526237172914549015115031895185100494645281966054876084831624506491015504013816776784098726585873941124049111373783041576746956736338826762112728771373814192597500799193905029447237696873505272444565529329186615674955056200167665536508052930450289335474770581983769905881810885789260505833956922852201932193969814845144957763150636154415970925258976441567759025316905471181440866292918635498891066285209950103457703466578510258888779817603889065526594436792655630948682551593236081014207877375182876698019450922282008101804928506087771155827864868193392689850120694946825680290325771727466713613780071711917581288463238635127995726369350388297538004591589484223703552898785225380958412528845189504403338238932886248472065311601173453269893350139228428757405691260297713015554981062633231501537792391479725312461051690287175308056738317296527805960568161640240123607048973121820583118737226011652474747997823053878393612882963008640763592812230647104636010089094875509137794122737775851205447511173680384874596835945301817399999883658602825163281077532868935047450290290451816396334704729216419853513309923125918871826602851551065095770818807996051784646057341402030120543873176228808757584824365229500628686469961577808603504746375970249952798754294247866441615536782101958422550818020761761244681352216167550177178826660433328376257425275586998826423352500613243961726922716140102276232967324944332662796752079455355847491088570542684968292587513625145063391230582989371313608989538651452951212970540561910427656483511618076139095844650015518860414649621066204270109447485005226707285719514924028610023383167511710483365147752535943471853497665416475454147128287811011458084302993400076985359575257450423251036997335696974879291725336407902476672733086956981865223928838552140295257138706777097447066706092998280596236892222176109863190418118896427904008376668104313098682368575291845015778613665614073076130969280816255522545107047012029812077389325796760778053183860710769404743600931043868340043642495936115038218627142994880846594826449217800241855275751011535030384214611007141944056439424689166931268716447372517705752897001487381602606925888206958185599792561215841992108127974942558550959946933995206361729198844643068919718725211334176157614018439048477556681997866550074699583859272040061759257521583135024420892023840514649725440700033807845028085379374345946833386681249012910749180858886624947430111395312176284761301403542033154260569189018971961399156904990537687090867120736768481180070568566158394664521570558261013751250620419795789462364767413813164240263293480580596037121237141860895623234512285321110126218894646719117482063793679342566195649913226203680030474641684443037438751788283192583767476259790932021548864959701873248348237218874976337168297465061555207965990267366677970036088611964158060746427285759922062980570255690843617749360058273873669923654985027259725362039360674342550626348161691561602515900040709635599610986683491106583748586992613235640327562284597007723716946077517441989691478748676547934123025306873474714421494135009195310012411539178454566205308356944596481093986044781333413049700670901242629944808432061077938652154311460313737929379110783273352166263593817257032362158892488893955981150383656174940529908499034411468511782713387285814426469926758913978193133895162167065730596560884392688303293138048919238650026057926371589619315982424343759239627765147387602773698244768937524413135644081236339655410253412385600584144656148114810418219062459169874759397959595511030938896674682664441274893170572961172659706263210501240158082598640733963577874912367351592574551000526626279651773157876772957795869523855877766872248637815150445060091670483387436840423469899097850597122552971812853260368378847658450120319731926177649836098380541638395265792673089331295381948949010139152631736481304895133744452418590113065118733303274357363284930542856231116792362766316280983087920903153256167686457300500568529585821489115517686189011985395921373376160093879868753951383476999502015258093764626479367055718716542498382339505122414967805904261441705435929706452824798635587343431874967523948572734882878540261272467566399167712695309547330871961771198311265910280877491245210142323705617900534231354653193010851725793804657206421605938741495682913561175315469803534943624760434004321903242094938529704302836448735566478113996171503276337082053409941319886318601383104988240390124276941552160771527751046298819166990525748940325677787834088914512136711590636098086900146332829240270609163442806304305929615509435868748776435588400216319552221276671842584802066288729349026220125738434990709500244741008715050551637496619974190932705962408022233436628283428347304156246838953767474168499018423370564522470332143100565656377712424099701549581419847879019066757961593391371110017993801037004692025130165307172753606745891229221508488058925469927455886982629431194230658724222950243701839514433231844653477338795028258393607221190908175847434260031471132394401825907019998832762849712478286010382094063530727673979177367125645293907881973439428611067939533645897877856849046865214724010143172835849203345969073516158278580789812251293786596602101217428323512717945204879297633079277294330117163212679151329917133533611681996680332899922760512315548762054032832281935520414050458247868260671563723155102129583022446221975719554200278683339775302256826607128915200648621769286662982186240342189845938082374004692261909461626776321491798074984489303409783605024286577402926624439375033214468355574974922179434649190034061991147207381445843172109384035268765588262941005861015080699743855439646465264863613545888979323405615264566669072691545619591401311011724072811490298578172721681735984523134978641409150703087309010366157766273728086701835264165022111868124129555519231679916711435214965307182767150413456382755928423531607939937947118710327430404329658830882906554499526218585250048985737543956961105631233120027283027218171976178149005807814439571262625472960164074473246273479845603318871295772920281692053636534208849488048804906467018375789799008414019960231542438125773701737359110938099718907308081643469931204734361423799856818404015293250301951449676993776719173165279750200562091462432664481045572035496821285882256920432901485009130534633664874200182131186466187981280514073106228521378775281287106978795475903404397185971539565177894445593348734603025233629096033180227721276112692654190905785410236925631870714498270282128138911851993414444961874338234155907037172198630111982619750802818478759003083270000552039647471980040616194791499755782517225714913280838962895038685610632245468610753925588256244929514034289458669087109144307885109180118794973557198893081580143337053985714388145052424560040548965356284470044021585570214252718430353397033596089808197496611342546026980010881201284217907508647979831610936641020710327499145768900035126474464848395369014476526547054223619866203289593849716816819091801893588744789551326605894081059030472481524630055966768256547259260072575476203662572645232380574783564290338491982940520553209525419701839416358472262406744617896243175250317806270728370472862521021152682126644796583743129945059035061579253320358191084793781293257779784336095904590094128274598419977125722220006786817044058865528033702408278133134510210227472294994249841127459160315283443598341301188883524615466709385906794017889910688471314475893737242201410112095838894477189138157108668883315876056137957784814501721278178013443416799043450577191361177787861985492849042209673990602400210798342477615752532644031683638833558151352360864139630532074931856518061157627204620924315541038809252100905362024631008079901838025733149676508586307495279161694112437987025935302352138613700076742471658781918490101205772279237480164714257664919865132659010744157759917879200832109070712633883495624545414897512416258133744889390935848726513349743343301589214427744219624388886217078180908483452327679978216989563853577457479474635968284554102368187017275603716627858681240409015181602116127791289516184204006515748203485102623877899220281373317625744805766735569432668221823037718151669645291571213193723604655567298710943400916047700039900052887462809611067013732367646133470424730543900003259046060927934010486388528436971535311222731021580783414826326489992931323694977596479107078832070957708800972092114669917309675718298335966199061905616794196454702338129877401848383085432791075582483476454242105747091600433076527801515549549688074228734761155101128304834650954404300955103993994335482201521962381334407196658123507413142218060070421962236416146958245526394547222109805201297149246173412122151718389719902850711293184699267642183927030236738008335755963352005938695378981763703863360046523426090344123544654153296793876359367381399282345776130217707756657857204523177192272610638023556118142917004578873911526827478021784286517179875701652089098926842557505242683260881877849093052184417108332446530010491611847881785657074422467339371590531311400388494620242494160206492568479244093504519648616975477087803653931311835579076613486065361863100992400610124446339187952405347520854699216933877453244968510797687783006739459673523591795799078043208646593921713938953762102374469920567924880880675071370580744109102397982205731072698695238123498920162867997337398483446638478069715020068901499534620661343190503677419412726925499957348802454592587092482001063887573463687167396713550386161175918262935033618387822838918899399617733129598441765069271081696754309716652464812504532918011980733887404330659690557663856408149543869450217780310712100448927275554861230119000669782064207467320179143133183357659197690499168173891332960135135373700684917037941024110722663060893215497949931887525712965746822979362229878597257609539546182433377079336503153613962076502415572812021112674763719995158448405455706324051156036729953314762654639301050681180252320722002976339889693493554305643964476425025889669066524452639273112897877221475822266304178590647888718809853353739799445161340351271161306503918552177367138458824977745471227462624928831965035298401075871514895154386794132707049292231051481152630186593827952928437213241297561318165788518663212144744711323461002707563015610222301607212928648806847891962064725870902026075524330708146956279338967407754892933087704801706008533101142062875565423709433361516693444842686786600606098872944753576056391080387523188536674114822305576848964269586925058201541894844779952240624982838113202195934513393291276648026345591400667768702233193494534141445760695590434357858973621053037240620155019386924541909436613745808911107790396469334340995447118756900360331789222975788489638571970271897751774493914153298981423587914698827856778042511847348698381628090038905305391892332134360819345538327986048586634224133612590772988297687675064106715023827336099884785814042987866355033609904708342195633378366559383042732298236376114339058509871366870088698485981638711725089005794678659125895485546233475054835813821041940081847010560871718995008720112081183144919113414235356918747835029901397758363788922987905132873240093552571956856875159653975179252480155121228866490204407445663656589311881823482717908930647391873258078452445806459087134871317859065799297272589001523641798485135200488024205565963338184065163480647538331855001177833046820513067763285111403002561113227486234321892943896654606433494036932482757912673435653117659887425102926019003685601929912916910096246203243482597653988293137131913977441776261385432221854659762076376407145894851659974799285948530938505478034336336130603619084704513569649679508616833272948920718261561162377638141226773722905831677819641134831187814276939926037564667605186465515092621561713583973676080695998663742880069679221717150098495674684081505355077798057205063010598730564828084853992288860971923391009519999269552599911427581259822151616999608765656135403456784177176996769241263235105020371481716951239083507585030857402227053765144268683082536870670560380412591570452370516618012626649181471699915024525854892149043811944506949635820619543825972799832155081524010754180964170288027698918330654190037833709779075113103014489790060511613918551605134994157019886219284910621555907615225611486177390108116272710933220032858116437493265467139217814340269951401629214815542041633651092641912392039540685949367126652007140423627548469665239133641977025467703669165646248285044188581551991029774287385762768341068720462894927618062583938267690017126306339615477470056483667598597827286252703984381863125239607262509827299304551527970677210619105302298621490602709277727812726362901238554898379258308244868005576607627749921341585166917980049783955603413254437503770574836980887759922093938361241369182267801914902630642208436678260339179868201547651918068753040459822474840972994425683876247555371845438154229339609376037249617802232754568165886780719311146244741928338869959099741732404533291089358884558777245384021985426291716083454744581584013634933740292126742537551344830055808360777969086612604002651791155497571181810231970332278072714246019545094077354812367282542870213364041867822740502738845227442058568860268247530774913619360954545041471914750990571281248506448810984038011174317677302984432374555444338077406555012137026845777751458679397550484689295438004868038319784158451292167278793801158227959548356510013513851751850421374174967424351494832344157205173812802939781783130697275046821348121390463190138395508761363605066757344618557757474612490929346215317208294267048457929503358372634434974587269185988986032707048772812209520905348808897240619793385645675214173129535223328182514399859410077030469561641912912264813623462148765919529979019330698258373131265901360769504543313509951164619125921546281381136474782410697209039600315901035214930847299978961382164817874961336195043411020384100415832331751359607259573291324412564660144180362663586898660343720752485476841718969149845471777702992754093944862099377807334780939367065803907294502630940796558152886883576604109647717187655578506438691163949169787016560419787852567094054950774934606705272339193499090518665341440847928460957016234858597889196332938946747832443855615623922886798956875386872820437301690271790584471082436723724087554555092614465930032614297522006751405723575431410191220631903310623793871095105436443624240464087322342093719395511322398365719347571447764966995179530088543833032100929565732165467373764498451468396207191219540988915878680136184822731394692336173872353871988557748769539392350820993364677706694522072126840181762555330428766666880661860001069582605298158099424367890512363960866185153707400133461419899541577577497175576162947778796051038710336774706434987687322063644623757922092195156850444451825083404446616774709883865022016588903170528370611061948823845109881061718423011200459091211573474996946541200572466145875937978782557037044204362806473808298968705911753654054024849892774117826339281230739306551882366177941596926380581199998286154842504148312003333465302291715500416963445851162350488124076498456735607314252200275355826156166626502750025908546874155506681785206248598050537542018886149027798716144432175041342975122510845444258261387873510944827332080281884712683783804067177248000412954552524331360982776912630411414877658757090032186084355801628044286490836575941196715992110797336293470315407904835529776715191783835365187783856733806483840156672846940724244257871630375630817101352365635882803391103760443728823439356776397381055474249394089436387601546992623564596628508127247062856356075308459715876731360992726730058103197278439189965857772267179341368283895065470761552136971581546878089205455206383258117609889981784438622227969044086414352280681165559375064205269167240594955385757949822473775323654339411423247193391265908748378861890094580860230794142144173191384786467905181378878147820955563696556926436296479051535692947477144777824338854840644112055515616670934066988191325136130179570179896149443543877734291741798768501386972283872406379322255289577532026274020518306591083322436591711069219864877609325815580575151993828573442201276820300752351621458256823772818830859807796122597631516190878918392809667723331965059708104057698461742552509884555712941277377551878629449438678753846864065003128858517525103737220428882446269899561108982882504850107719274316405299059956506942813289960444116666194091955952167898870845564126425407904825426845799169119950421443692938759817306937783452946727960362102053152473078428762485681313061907521229653899039452245172287741356328872335890027961981324223847340264304449459447355689831280249816322492440916379477049205763722030600677394053769945705613131757775469984493502238151645325233751810104258394608215638336527878773303247924499704717896783625052920589576211036166457445393461456097822266463444505940582747677949021652411660090499697479183217081317240529622639550351379344619419317254053942515224023319563819148148768983602266009191974895273522509074076912192998560599925747189167812861443940197990730368931980390753264985035298055256358286136387700688148316349389811761955297920881620138022559236522780369804813784719532676098240351340454642540519744850027529622447451113028975876389217139090158176588090516625762635860020124097634243436081088796232491875048054211557998902751213608006356461228608349457576795530109002513969824856351017587452849741535330543727541772361316700361147318522860373739440701018745200872592453853479260595362596153492938707256657608660320013774366267735855062114497359572162546457512999884470252726557312938864174547482894519549447665338772091686132348888510179602035762871912327536045041553754399606576631458964576867207389213032619929428438458768487058693712399893814526752587150387853786540303942876728245046295426141133027093739417050712120918848022803580159320236473309109099718624494446436661171768673121989317341630378172496360417753032335114742036789619121287878018917672047113740927763432537361173028614178643399086591748674119823861714088037110257786673792646036626652347564916479644684292569579819537901319244965509709652917673700875944620179511562693145062509337947057524243423858714600347093660506014544277725210571532143283351399324256919383614357948281378105148284878074385373217645716728097189843292163374808986413183869746893678449630384108385493099211415541416010679871135459635682666557196075829256061265281882387095417527713923697314942875659824681380810613185471168087632196792157683317281878204590165612959872182262132651645429432139020221939312458917257178978740466837212876713314157930979957056725047938307419188384851313778783869333539720651076212859571191891946894684074828014186655485229090171621718790787131621262810257800085089515107222326433163476917860950122638044565610447670682527777175332075184279910357055337241786003835561255756540519341390569824604223737979061083093478301471397468820025397067028768443010928552325351716929864513048441034026090704228095334012222047145374892571384189657816413302850632640174318367397267944045458537283440090510108551853809376148604298051780271922322792100649471781886818553692219917998595078644759994452094438850129542506285848136889631515169545183404219623566370252032234568701196557874376612624092735874789785032134531432815903698365239219532172846228713275709393039474729703008081266674630005173038246274000382338819162940670963002885579186822231635894200838838523490751289912342389935890127564650026936446355192471621155200238187196908656585308366735666310038917424816913756803475973180795744399226284748649067426516492651248261324284186184490521902529281443344964298124890522175831120128834942378061658650997900979946330413232021105566383903979476141396844849901646652705803200699209157573716820318167149674500112120494552956716386763285372012892977475950015245593171525239794653262540520796212869353906553497099354136892689569191462254224973945100541309411981490694763176042465511495134166214295011028950459021960018787150616719514818339767175502580293029081604940764870409466012767062015691110309319846614498333006024191487512904839972984992844810876456668483392655684966311889372912027483598758221238840333442143602583906449488385585582888092696721155061931844980402048048596342429255998380266957333470646072109149336398915025378810259750199349402835301677389303511590143389918880457056186245317312929783638476292177750254730566192315978791571825444646320514666578529655214528916613834467845548901871131362687097678850994096374547354723544121124325536517741520284529631641170454284038462610613389891396404434333948574610716832886182218352892717674309419652805752827146414899685325146520802339927035850116860513584777069326051595755093671233194954466211760104516057331119772603266175915495799508300422752810947855110798837270910805396096208656734023290079529444441288315527488903864994109701085022292943021989914420994710036969793736204842255854640578458259165125891547893331390787139408398344338231823304453457109640144552577664813178725675972862264684938684809261479752253878808579599278510131816981176266611033674402196428896392928523927252886196532271556956274453807133517935925713995008855683425461386765886263514235308488216768028713213585959099841850442110473885567238156108763922474715436244597920238204165299926314399057096517541295727063426571147929374512952707001479665840570610427251180475384378192061665614915287061656459360007593872258310421445847534704119620005230805960199653215148827888881441902993136223864494346843638903269449076059025070622723096234635544608841381909407094618153072153473182003232162254782008303121067481342120228287258845678110979809247883844269000947525079682000267618401091813007646579905827672816916691255582375659238421668920944721414220070694887909063746968735717521155178062308895599931496918792703122697367142232918946883203108291867210981186514746926723693921512472723327541314457459909046283873768954865834245219904000928007400921061590735489459450829302663877849859815233693345534990683420437483310172975681369666213091156226998437126417615718548172648839446205227131203580076165602359227799980208329975736508070169217176290560796044507957216663946980835679933530442262732613544565594981088836011140875102399975701739001943123186589398190046479028764310371919282106557640127377243072765101722013474300459284925609552015266177444309318954274656146918181720759514995878095324668463698805835281706783552566888930936157638526259279014662721962996507721481484960006870807688115070630224285245712744401415043718967812565048209551403875476230416814285708287964421790501127407652592062184208793498414267835281291891021650779936634389859391319383784004670192226007373748114441095226179797022261932580120614577324212849610380043997880255054217183398140567770948178731273947296248805359592748374694544985081966422220709216328831328813219372003158612422879179139262843980040193872445416848626419982000556304761538768140636655009561325702181938217282508018517642155066165486034667469116668094108496433996865292945826021646776220650679058831658940336705578784537739162237639221331167549913362328162757811976643296466625494079301415720884946124688303133553516158902044753209465257330465875419372331419785124885278541327497438036125370737351134625108015187736709557937233013268468916123239022002673889523698693032240704732436030728262955055298841479443672413489129872170472793184694958571505315566649598834799205794209793251524190273255355989562665718351008512225492112202964103759677573471198943710076072724251797573884768423930770303879844973877090955014846518132783009992216964609105166553303692501866341940106363316564076456171804734533159719568903653317539804426561518348781584433536366994848527614774012492489492738963144275503115443909547352936473535387301850759954817852232155569204766859775764775868276258912420861607405021628074892018550379766085367138667746707471005828592589019037664174986140266172987153470447813539366453216651176933087047487829302043587207769589035566088152062888669605680250719215370267880000709092703415075795856959744449261895712854507948712769948704860156415867315609614568992137667261520713384309417479864911917099421574008857307384950023824329196458219292259716822187996751810449353010498246137457767756769702853071906078705825257873176069105256388280549328607990149496236479885757103620518506526878499247907900027786815012781845085451208180107999769059423942169321212332479717392214190382659245922827419192451407019462527384819897621040206627474006307285449638956074624726618271869671088890623861346390270388401564626940087672892498434523210152373945586882922743246432855009358347622217832910025421661486675703693611328317198967782758752069743883260415560767201788983342804665525815678433163078327903047860846959261038303907977476005277230839542292300423260215859789955706631475961619331377115464415026348842845967735445868518650940392205907991659767074819026057877331424464475358527766618246924882110219388730599934863219382417239910495397528858366100734022949726685850146771232284681862385031969665516549155424454926863188883236912193790558051908866719815532082653408121171799309550218415516231819127446662184813756678825008206506187090189628007301949739853293934390019061933185057201687262524497132464133045562908122943065118921279296721594744615879410773689325552986190235209198551342608042592844233218689841639789092578066671268990165568735014084937515997180253697783270402283016913530958907848847260789314130840309032512277101824238189313575909644751903372101738121751370098484284750867197441680792757368980071974840679736585326406128279856564946083816470610589669010820046531148230498892707915125829804961846664407369854348375819378783016867412541375107262013374002855449331462397388006775200137846469289353739242650325721968058657885435080076070434255315797040468480686316241280164234510735826684476460412055922517385874971301659578118976537966267978643658441078796080615270986098680708997852122748601159276983184244389317694113896630210966148728624571788187706335293184213014358816126341221519329126864895441882919930148736057003320250734771656724725007792025884765999184900790759339855719724874891293861705523190551561695178236445455726757508693342877163497996571941775544021292609985656804946024363323320339589140588448185928247657359975478705395323263708077624039437000976666736661427136706966819608518858361577384319953629437302227356795503781959437409100356347949563778664360127874035130296904218602573741213051746858677698986490970750936529170989272244575233909979015408573338870493002716821400263867007931488014662055339120878596458454269961712001188974204565300056062602463316408285511104125483276737138899653048576912597299080233945020598800050099315269575508322773751804489119732156345106571573349880548148059684278999956115434897234370085749848071976078994398382135117484722149686573675037631361897512528776477345810240921016599597034970841543911181796041043559798239776558705888260565556247854883214746650593310644552659570476890617903543764752688943077275547492433017740742725114863032849586909613596851954107194319274464788185422007865480807646505018395581404174335156980713078164582395018260473150892863337514048451684278267409144509362645715010821842384581109713943869832066035871729214252776934174229206456848417045626255355062039686966427092893999095510580008536018124115084713989535686747012137041582080889321296699962329963677138630022317386063766013429300600153590810576671374377104047719644670739606757470283370382293542087700925763893255084941560383140939876339478891734933059582862605086831403855252306910602160019119582054077556491630328369206468171993376178870864313713029400835780404678352442710072491085510020195601809329758896561963590463221487912260996902192742435789099659300826111222365591715358398461192497430691647556118343153345117719317956991468099065511806501959098657395162936726050312524027158943533860829277842341816274813375064732338862125839657491221579709416866963409112762650001220737871040622856939169110907171837439000850609677825407685767923398118784275781963062150092273652647972164652208315600946671384839529168365712472859679194289253844778844997298977372857958478194000666487300339522373525095840703218552288637621523463813143709665696020836127142218131120885479552281651347665024462803087277142418751374596178386814431919868188025610064627841976982966614552469309187718865386378792681735700858582055944516428199631271306332164529290673967015075903346119745865420238758297196379401995244496616388514345086001206223941330302503109868659580969234432093890209084618220047382635769137811294666492365819680122015211124697029188245672733180827165365796452400180144564376324778961135964189073121228188483459473942176911879677332715367019631204858082834585392329819064390941686250239359861938580089752942841180664837975552083048621291434772309186915384920453699414649953057879659023057618233191988031476862999749554792354130866121289863440885323642836694495721640932453291661600170143213824636347705349737920588004236849660519083775824998791356186685242982581649092622962996396106150770436267893949886444054647971021359934521095653781640668666388949529180625220977914109681363587766996939267900102011076799043811536710677715367554119412160757258295384899085664624175241328041562289023917289275802390554336141376260590756124355546245092961063748607231097088553935215913978510253189620786424492188649888453460798743777205381344203860687429881061380047151482730473096979257778128315949269120058005416203980447592989229436219628180607158215160842018062649476135117190593241930185608840972818447805804394054554446088713095365762119513635099012167262089388904724871326707561345214252804469566053915726401527562104925316629095373365699439393266599720254257362875093233865499454292058335349098513981426021968597266326363450811500855039552799730251448412200434527487458210001650920913450285286576122917199324612463116631126102665760829255855413997189256418766151571887798426258918966668322104528550161486657135065542333379071224481679612588779428574961739265375781962629000679330394957593138603490444753297807923518633431374482014086363385629142872703420133168691073055308305314901423588306798916558852833851039912919641587989969035220554615044690279553618807243981188439248213811213555438285815571999473487272283521347312583006041818009535673652861376233200549148204901956989592811482780243055428489780575113383592787447743618932662635865824163796826387904115144183118951550681917010257483563267575787088732448001080728193527482890151404677953914158675025745250803292832388742561651548711323230249481923000267628936369169909931180666065308714854147508863816180071741530047144364083028638230223543394829920148391351515024423448836561039209447062665624041916936238611854062914712311727114420056661266159263807880106080144481210562553784890086559761517754233502591330031480547537411758584117350715832104124632377090367522356304448975412410906474771013300801705142500867345511712726980701850592352079779548427878885692412522037440577061135698832192448153306915198762047850929299836341045620501711822769394898444701226358573868258338673337619766641067212287503292470595173006641872357167909824827134255507653257330889299840276586036060693937818677072959910167128079044657634979565374133059800540355145176614895234121559433870776194459227284654836562991873728267197468217287890036567700601407054886176586728004193027715343380256805674723226998866925396443699441654447815357924789166612053502704441850912289868904386108391775428613637935202211180191468399314169258482270895851091232570636793711053205374686955169079260686081247674175003614951849685420426753581965615654305905751629139784296405941078656218328456442296424683291397739846479538300159357528917734458203591970391131983174843376363441299586803981266710033280400116029788548639712230868944629972787944547574697841911549840196872603600107551507628152100034546942260586244301160134282814697854308751480471913268906954318757070049100544741778335610927392589248685942507255815087278704123968112626134299898104502742754830186884530906388449471356744481443618857293378277169451793347573367876215072881816640581020541510161014003816626714691714335538372807775982092705437873748961290376697316903119295231151402508425074418260397279418376585521895474794880724109333680169222761595750524734859998716328766922305501260045853293118753288696787209640658280806449215498875642669109155240318542001682333766550556518498256059710921563228619495075225805821984774178520241888510881956379016072840960661662052995886538589067960021283612993205758066380520457727941507321222491051460498842260193303970824777145943387237829061074936908416045864906203424730020548392151242764674700550952706450015879128884245262005264367118179170564581883630095393769873766555076523185268956461290435009797337685252296412220613458898345765750434462048352908283118000036646922630012417172767591458596360987406955660928436999348801029789541228348207032940052897595256896221846025365688403441066650211824428266979541423518571691804172473134853259400656083926461657775069216402968297558242525668395456476699706182474295895197926679653591341650358875920470508498245557866644229142240393050415145896681514757960864610741518211434619008924715674169740606679559246646940044125806752221480643066540281119295938969804621635244565914598050430896701951264516261398523654634810848452930515763030359443817609660876496455386782597468117909305531488801500675379376247351191747549423942989761368958369262545322152698685343895330184344300767536743259218267651821375745369169970245917057985846234135029193846519775231055951409548738608353922854132625340612846985188147693887893219809245312408307312592443247233532876985216546113105421696934064301889148551263835640022158647612383388886708327860289133457848094739190435193898575429404437300537935335896471002765733352588363458966350332934208968266394053970427739657837223922794205506841887295485067200789595635544874119482500147005533267985149830624700240512756538984624363880728401437802630056088300507619030039864556920835646077109311040134234476445741412880144050146203692483821532409695138023990867243775893797549622910490252747935762254254991857040886585797018006338486022673712750472804464851053298234216288407079670048519078910044001962794386131692687333048480586007450435143425992975059482044361298375988907500886628764739244618185028725379747645845520957401042968389244300901536106181116474420729458987369204631379060948574711387312183690494887638569999118191807572405790744901067080875033107089513752989101743882379788776880813304666193030651072651422142890010213520356875431440536589965836417961123396125349191441254039168284260276224445843644635517142147714219973745639863505082511137599408552785819234988942824160560849178187621761458159825751507977893995775807840636698403423888150466574572698197366818898780787017384579304633159231296413610320160525370977030109893673359685811373519034079076110938927129761187041386361206801685602871966841226283469141275074772557816189973361637620992205495389127173471102866843785911890277399827218051101940061728945992990240230036708439457726374728384627296454101102566508069071020340356776808228323092887280381984663826572021721139588422356647195919166863369394235938322674128293039919789459658883287680532671568423105523434469959555741890412561228656115342527560123544035382081034934068640155540785371113934420789405240975296022533923674939219706930965075691322883175820706256062959423855559702669398697006599974565490733161273859345453004937517721852827530790193886073276949225795055157394867434424268835760054918165360052602700235175870647425309806087019811402624952552470358573917145940854305235498330939365363252410107230830106491540479924069585049024095544420676676672550589448849826256706675821450273086428727117528945193959356009482251389870324910985431297051125585152170575317927625646120128024967296598595497419951470833320610395643787862948505113293664074660287807978178090058056010872443491567892941604714119567904888493394996131887063622037362892255751249619603573607657050491189699229267798176733898425635919340867146861351195776805508878191923318507435134193436493750368072996611914806732880628491546550732927428965237607329957433744839481601749166488176737321642010373384174327198106589664835026994977676002688445333225984331346224997656465987917275755326868332242751815045836094236506069151618961324350895017566190680819918543417872530300533331689809435470065434720841252032846029631396200438369204810353608369381331614026996413850078367990515476249024757827891191298047671870212790590049963327770472605247328803168175625352196635690350434656409277776867644302928373201547118343215633461221223147253442448595196335384825822867074429951488674512865791234088815750009417341661035186928845914058784248501156693199034676672441449369301817469230394333716051596533857991615791905319842195249893724200379979490184426701167750849914483901109505109228203797732826007965629610950757189327349526042002373744877414700464666005536087962800237151496891354736067010043600252735067655681611914321751200576281843686059012765861253933933922820068317449724936561287909688911151113795405846646748823847151703236496874510320053503313544459845778614556599303937213421417861209490687848584423072684804351781959448803902120487421434823829891690142283179226194101442168055781749101749235569070846533792229484688214846079435820775170701636319955339866337862562871503436257399848628736219112710040997572031896002744665917982490246988388344465025374468708442353239437144609532977565564792226363826691565491327187216750095095855783499934268846563747492542218130459077282277657174640735533576417456046209945529805026210556783498533221630793751120942355413825937473119756818048921550363045373256337980223416823978644956017313072544452951241022728482276056508351804319585967482196659277857433563904120969929070685262455962315114908931226346792624413486476512262257398407801320057940693329387647155291262532908091346985120606541830145643888019832785046541930605702570203747699136689894289525392741754466497614563825460532765070851830439095916820208226475067188645754478119842253060208653910587299813357542050198909531702574545530696517945196668282551975974027431496676702824066160089415511006750481083824002762520412633116763822994500033825189250122480818897600155059669176461307342504333109753461299189685375377376842324176040256945210675258259314154790894142529015349798427362517596933772979433371679304327801204183038538622757879276998145151129540158258222980167595281948344953293558420476799854798096353320126675710272623149284146631374609950731115444187395192820251723256243211946568026195002040724528853074527398868666570434981483531050652481990612710928722665296423314095764016432831102359209684926687912632040768774475955035314752250243439423130709557718347649687296577924444534454702702350591640315725703601398023870041016283907022847271311690865988372247677270957625511831243181180268185910491438592221851605855281668247663596035541284677854036505680653348206602563726960243455113188778301498325839724952765543532100789947591581109643806859075735454283685578986137665215565715618057179559981802031842202705867002215901860308541271957276417689397986874955541092719626223925047169065973497880369585169735049641162452612902265917932173587273439139132920046257264617574255628320986870022380890497027693067994732941777167317815753910321036506234347701551714261695116068249691079089582367620804468696277584239817687644019147674690932727571457965713611923351341347451873176033637368722386164602147548128540710524200374244244124516423284671057251258329062453053152365250035311839429677914506233249561039385402103409983370020787424793020829337110613510439107993289612302817317492339930902035850990786766919877266553536187702100893347855930586494404301259733600182088600667804165454321312229788464371264332707467472280961874404967037902308098524298207186936546211061478950374964642595647836606549669925992410967124269707473125995653061577891449305262841441202105286753106271684861664532165923988551017303027634466125994052756537611980688241568963608422544826458658883879877564427462014739579407619701041321760388007764218108013315281103368982899651573582681044102214713293487333264897013821230740714303725815837015812767262704353659228703266324567197428191919535457609740828324400781756104048360663033965129535822117906129973709668351483464342473099779899434939704822625912411135323984578832319657187226509406366272632546825017041700606101009934401264435012544922742987335551772966149248564866171588564144439948129407532608135828494795583977955781942541972693400975749422006277750506240777928952296799070567968152261609891352056784182767672990797676684243682957744669907306560621394632175057482778535410502910374742434333574796021181924524838998308980293088870512912025416353790986720703327506800772537714034440792175732595496699944892862359724304576501175516355311305927892343312194444678287862290314808477922938628504560978208141230013507170220584180451740136273689006656245412317043151605153973519243384528616283196025945919794889027661076331821703720039025964117642941123605748971264019550243123753772464539603837606921274752548068423943734135744916292421063187258421383450600457310423858653966665745998398142514207992444510114356787789281228331848037384024792845037825724467826022669636582380049370266936272361785443834370357312176326147616666969503662388736939252497327387048003431103750309861157638074469948569085413133835226375264192020827229383958160629176822358635001137628680186028904939754725393368828331294973678947990231944795233110626437396240534018377463375647024787489318703540204884272681263728684487508944888606353787215341523941092795025166247664203993219872679478739725513670217551246111194403822337504169384120146567683749634601592541987681587733975212276454511941226012619151226422697651378434841524025497734387823475422256842394421452193214125827248000406059305571234900283262427949424192970941797881710633631951352391249430300879427763784173654926509597579174446020316438321191162725013789973372667419778206604700053179410562876829763719203658052797413512857547163761885305731037395758001758949510491896285430013118612619114441115740810124485185774074456494789919368756489885019446558865966884773928619088839131944864776772701258308077584425782831148880320233368395915165171967537621660090368948450874010053723052152838823578888305969778373617234213380907455846374216537089638617115033185046913375189516026649616496894394502398256449327588321474361508454134358606008514946638342445093711854943211393113182432484661164318664884013096705775795095443178113582481879770213009561551099916059764362680609487790151558180348538675870648088230403023297493973009626714715722615481042151987661956688027472050360724016731066598656880933114934363753112154916728627996854255685758570169155086657715086433126248103530438938276011724770433160490160666210994019447505958954736290014693439129651055587885535081944369856387171611267186770431202115289323939988228431868151870728819611162328603138355032707778242264910771108088820690197963281277178078677581507018643325392859342385591733114583411493720589065413582141492175699355736195137281200977481948675739959962517535692742134193997092210630007966857641774150507718818579608491773590923220782777000216825692313996696381342694316406911849322684496212423152111044336192387999953127018137893349666789171200671694301119575691384454528099728335263476661211264968597203610093497528023849262705597899966992349296060087314276597366573266144297759709359044931459115329918946316477305955857550074036662054337943175722974824524445738531633946288908735264206428254172783081995287368624112687693730865430483072070584024295948866284988449841891347760331523972555552115226000261872984692407337046246211073113554038101422048957505160232608329566926133646792253519302305153008847414691133684127042927818642407693890348807318811267068815342782338800202837973241189798951289263780371071769400268573002167160028341108291655273900857792411225911330291982459447917617067229404230801937449136104916246991950779798227251004646421703997488232621716239102439174644382488964777735924919908063181119513167555748592062707704213427824676496277585610873386223809888685405706786764446417634763943105757334623028226088863035908083638634407712410743802732022481376145515966379756349357887023440160836801502855187124536794295055135729259578506147920868121211636984630462872173297807468547377261580576496165051914381665036195586980566209948021647948096296960090705522191694731419598349641317078903860989887824201268522259225133993399766077548496732018159042430222526675398322179737755324481324825452293869057167208738356913786566687857880825618720128039808622202673656238339174743568818482232994789160094769337385122457911567214964828481134700125439757960129697575831859411934477339888125861969728571522193388267913651422567699153626429663982509227848443414743278132164837198983586191937065674580590451719544531424088096369821662129518745125096780019007569725117743048820684990737129495892671346162997543547011490359618112411773421492759661544800698643651596342142750563286870516899531260900796120670181488916771168092975568654050783603702115696425638264375015183539503915295728391663461082574736991856973206631507592500843974905484904637431263376469091123733419146322521221903985814580090061907322852404175087720030181627073497242288176173841869341552768917169771255357078999346694239220021876998937468002623237453797867970484694185031772013525936709860374650283297815217222671026473506678334765778711389146919744802613410750150529039219570395680178655664267830678340940554791300130377899239156505513912325249955194824753832491676970213724158024058320231758311144459898278199414175146798617670421211012045786568142445043826200007654215003838508412531998566866188354381824495521671666429319285279788139602114431026191048693752932974082439575478320966128215049015240155645710532616449015221073496467175028640193055538198649618313350158253217563182861483717911260217016553086559176134600946413774594442254370519980523794136382699134479226835261761009795483346571700117614008369588257008120152358585994564158388753088348224990421522165984019118329807512405744271822481096347361999427933578531521479891482890012932350551722137071649142519362246434547002265211911216529133488125978914705582497421766721913265941881641884580937083013234629310631100061129009767004459390870130802333500134707153190024737024794567548578740345077650720287240755632912160940763719967721162637268989599678248221010748012806289673382022209824550323441979458666750382770485475711892189490680544426725481811037389870410733149284212471676247004684797052517132957452683363488814971178119556144381382859960528371624372689222861773721804825208616573425421416091848985690278660217884673984630399655733498680046753338492309988881206199558308126808867657977961995562701897864057316588542062668781544320115696988512502938118908960343922949635739620353127445726458231841716274496941941012367121422268065585645141380057900045119861433273849772953705549711636188666239687707846730606543643851379492347925427579802537029555818593644182275060162836466354995271185813595201531214988421467690826476463812555762701916003159050023326399580427542972471116613930968264612228329908338694518333151236522831861357919270744570805126043622754377682766186273355962396286383086981575279760604983353489632572253388504933108004532471382368489738179495840154324038675615480176950031557921512070327180188086977825934476133779945635784083497281584689749501433703777814481987392784193565633562869939478338800588771444668861568507346175091042615875551630887697536531151643232399283885230325543366510539857943809699289235787931836327222623465467414041259087465662318879165250202000433565919665903464425926672110248239874050067909907289396903011178187014471855892980510443729784047585393028371180429960419538659553275414941534031834086835124340342083605364197236710965056740296334298210535632804637142675841711137910184651965535699416951900395170667104131893823274790576590226909533039034620159248105044120803080411924042714621862032017349987425472218792427432884408963203657937298568919222554758735731120714500136389389756738785217623922347146864214519014173458543510316554015788297260904543314306445953197937613557218274471249034943252269729453342250831192790688326537865263693937620140667355102260562587850684345874245772696294100322918409460474644428109658469334670729249298696211899426661093795104535110456523853555614963256992272892490525341098979453377844325783280246444371626437539426705457046909864382212521378083800864581283961343938773071570165605898972149548965437008106186767571531017542148851352591490188884109079492357933863260351222181248522917748584200794138314615337046803749344382784078325014302990537194900818361863709636030191585622070491994844695258245737442564234721460110075794686458351218939150686405758312663644510430905366413486321296944815432701105390087350159255142710757168491257803416636504366509231078177171062362943568042380711335846533132147503899443234285381172238328121061097042663523107945916687232313682829381306344268046496025369961694617044102011590769354581968293449172730224424405601233197728141497288019799655548003158135210551071607488695955024166565799297871594541746582034807860714895016337637532404618375351896816359390772977204830099463633680169432898809567608890416407099635501692891820410693361907165422316807793341490990099190522652453251516089263115420577801962784827774452003912872223050653656909758662608632687455770934175832775256786271994763043726003821700527418104463740646663014770017628369674718879054871103141031073565831644531096541055430054368957331005659333823345960264608984008270991387482452158781422366455747956342342532984532654955399803516790798620292989335023136321157747650683199031851041241607471421142036801099866771181387882224563050228470928460435053380363557254692184868801879008597190359076759603558299888901495191061256417505144536450169449913392674991813650165307979717860342082128545755075830341175042079372074558918311567735484696939286174265503945938359804699586076664914940705255951883113232116141792818690739809506635614301212941208550412649703322725374730491326510913092614699743169301435494526022998996661955370328736195206061531807728568710964860394606233813792229162989565545165439211345683962429042987782660486753244474706742453233826136225505652068763708945376104994902087067207156231637019990929430314478146010884511141931128898171610756865899096835578638781460277643532767708254178687377714487853843608337419947748685211012939829955682217797238023419160272880250319643181624386704046851234474368236756535879038456888907767469258656449870406615150109411318068154966375979565855119404868485069666932312273946948025350899909332305454880085494334278520923018136724777277869136902681029037495183180859748244655283482237725886599076186010714154648810268606869641646500784033117441278881293992072212541492374790825838609772539569118246021367651083468969014067986420152387528854947151213402976596137357735895435537055069883236242104792363266604362252527980220591134712576553690921105136319090008071712666272276491328682227641632894570350182588728428705882545000311193884926798573805327784660359629354401830271160895060223815317994224189435977263158361946522376278201590706046099449837630931830175942695021463101919965611575280869456047705883414935519940938697768257556226521595811722486630091765067932744081644820593305954071392362256406937874106920673814389552537112557122803990052720522502016409555238636446474335050505099755651522371759897459208535307268369371716799652856691888204702567658817661420001400694774027222293476725896310287420890122184952278730308092011744095055484058028944956185885713533847440990027996693137500111136503630654529867641784011934731251660380290389708934185567687787010185823038989131010354190873322836243252984513922228925217449180799044778795168483224991156705739318528473492180943176339488518954829310298970742781175926583601526902610158486890387058174621534529806225039181013632542774986429412009110094504261728666743018021443366788139380092725376518843992734369353301675680771827101993661371427134207665866929289109678475134577108266360329287254053346717081786155358702183665643391174860044224492852076786721231918757054378234534155056822554553716143134355359811771501534924776296290107196715483427655570608974906036700393887391745697996608971778519528899418174235379490441334869188353263572723396746155771344579504400051535280812074175537257425020869735967276439027109690304528202316872944461411342201739336081281905505366637364867272645552901889976320931487176535427078204088551289660202884991153120810403915185453115759047052826153695025759314174061915158974857566215896774843753269444811064874034215279444166770444298213985025867558057116336608699538330181086534176480676535382526551146201798375416752399518385127265822997768051881642351400947568806587811062733295596544393386336752162036170335260989488864207574357198005567308228672570744112337913177483778687815249948126994196993167088430831935995571936959216151338605269074607533830798176482227196622740654528543266789674073037643644621078791193669196707303491388953198544689496883323490556905401213643721178977640684301503446151483931529152476382089941225590344392915383331730681837795620328447070759821931004368706166807040769480173501882835205892493614042948090375719124168676774441185687683572656959014465576678818680619639318155151969554020298385906975493801030038887085312437081338307119453857695859609652388811143797545453028292881078565861078579396785369291876046152132228036178290287742512807193645987068552546646484850988117473185732822293998136154345773828300385566815052121759635643105769350077908112142332465472005550506962983998985310653386322618304595762861608712531139550388325364554462689747873662997549912168244893094754602613653252274708069004153004547097066419735503468330393022684425798969935276410020882956965104168910809049264035245396710112631478972119690345125294683484153897016615238404662650175626265040023397553047182448425102881586118077295684144339556350857975492405150777125173968268566168984529039717920981695744620004528331496293117830246784137818032023499970467013732323820271348730206693589991265161285349032715737048261548188042580545827577823123966719744965536361797273129443579263804337854566687829993351772837061850785484819624482056342679864633834309899797797772273888423831324428878814797780438347258922778614007169758745180765927650769057452655613498748869030971815151805954661375532202587260513794711903412411270278673465219472493581854110300786552326429474529107112209681953621327471612524196731185313796400687767354940124213631868185152317837884348257802278620582372603631624142698167267928625807000064662897063518744094355562395430168622584263712444695828205468004924251550107823298388933569640514854863821487984690886788022251638159747392205073037585591890024274075858557552758593086286374944968190620092513078964908241476529111633286973236519792075396868195920518933841081387470575249042170162023025273812165725305833195976199560224462631695544215369673279569622851055916311311943350576583022256732685322142492432968208650300702056719189539072536074230333189719334963478078033077030409777958600647959629110243215542862767041228089005835266289352959078309270643652563456320177990142918351653041815878418169867632247598592066131735676551764424206222086945268892158593301565832808362055826363145530907783916337424572250656451179315963350617369542306272040523342217308566945383190555201632878181735301821770991706109823295897443459309336365211960824103678841769418524882811104005165697666744388379524339980206271938854186317770953651016864466405523151967597497038987045780528769639211988326250220782987232469741689962145657644748426689664938764993034681270699301983025205965819461512018397263507070811119413776646231983457539583089720046183445794155828855172536934556336121729830378044211595797485847214724733364980788350069493523998601377276807290429502251052132835521916312498969864354581735751682720030887956563744254095180056970537801103510829977812611505853080580554319421687228803221938141542810720539357999990386205021147625182774977208326045194727982709545158124881619953718976253234218465431714932487722185311107573109155220054376586295542687675068055739129577100634512696662641336426519343408593883804180573289879059748830296974131746669894082922164406744403475952621168640638116983268438304043208234272644043197119854650476807535579262942167508086574127119895935469538578702488102503046914228290690377554700152551434165607995345016700186525935276204238849208589118703743183023154244099138827510486384414999187986991524147138746519669431164810085891738784389181757037769850233474608906450012440662893045980896446304361422184900997310914563878972774020438605372135474671159219026788696872955930326227278300554613800250192702857976111689619371478116145251665732431825450658240495127475005868623912499672302543380663442933846785442438384044949392600306171493769255577133857075612780076638435059461631515672634305565225960128558124832882532496431768198417621090834536862793730761467237857401571845087215176900972341720593754445582421778903550670739712704209172264362542724155416604094898771501164262100482297388539028602527493962006931568373719685047281503192857451079108516311836295611398966253312806416201056832636950720758524409978492494632949127337430249403461731131025924113342504171437712632635879553538659158350544574465486546347338736921400858094572683737359730805721475100749712795786550080572087724553319196579612353732194170416187281175397100075904648422874580132643031192673682453754024435796176960573699004029658881681146031183337434141312697885968917424417521470386469464139197304556858359153717831852685525464940141266547684743884573205746880127565603392947264801351488293280713785257678537139565461636987499333792065097064178560046161639860781052763646293950266549333773787958084275271543967376236584098482828837498284120375864483386214642058456937904977942565793025200491386184689960280947442485646408962630738324900401856287545925156382656633103790643783101682833143386769436339634457800444974005397297840626794501821867997982518258926378856141113137375954081608317941993652898073974501468199039658132753609223506445853056597914347338988485631168407648288275091627677483605133019311808365592666550364050522651911976561824978860317604707904006438027648115255909633589642840249800721266925659973363579231296232536336758017736980850641341937525404925423723018047718987461107883817259626053764829655736555811910066048545055194342354022815498269912824313932240562169237342720309298230993375407971739347379412228896506554399360698795237061851499678218122717282414406939714777926756540017398963649548378406140099804198473837091324780437451819940239631597066119638427077783523972405811226485195488691839020449633653425428517868709855729794489768844468742764689399337639682119805030186639999046731862863862005779496658656985129732509304160193928037649564101088473118032970422996552638208215460107005865636755383030174111289845705602422882082216375623935908874344902369518062666615389500534536464361310065673561808919656274836557570996835884147892304244152440680017951554177051577670603557232976464198790235974270717298183352894738740695664537077152696139484204605305193572769115931505755470965711885151878011958514933785425064914786303633527879616087598811068078100923606755528945115516739739374204821075060664121285628890176948523873491930622507166346889262953822428416700590743423061138513512464052071604094231024240852850974963699291256741131288052601755007905721927622751072997975088069561721954805838972304268103501724835073377217135950155264347032556294267013718155712025352072362941630430742869248195899901324303183867793411861483234264260491820773995920930492790131754538697458292673672553495511551905487763777908833757730587865215402782406080295317039592309595506121727713851492490616859389630054659730705037705420658104958521815982969018274127700914618495072729548524400948190068670041162246850959655020052501960100775362240708102999484607376490192019963762623461162247719705971047205728902766008049778057207774243468923709429170592196229344464650171838034235765218022312527732946533962461042376430496968698982779042946030052258781680714219618142714064783202693668399899102871122385546883408939214806980443875339847254036932143588503897104970045030783787104287170022337929339813998801443728656144831080649069951785193583260692033227862517034346025075696332619364879769810907144672345704505748817949195265262011007005118843145364325146002847367035501980744687305928724455135333335648872466994724447076368255627424253363695207041240901181007950894760208980815384179830238986779491240520013299472180004383836796811980769446648796074195889388594515851243837015160631660849249457376614804593411079857880479362421315460555773157279614824266146604889294530777677784721382471163857841888007644145780487733271843451385009881800504613809543314973446062313599452158209641353231155856508056571828213298141694171458760158080987403634316492491716259483895308840627029658875868678833882997671540270339030754443709613721498811197439201756274396076792790887188365448417137703341453399200412670561315584147683232628470755376954520083625507431244295297139374126270408918076728506753155976660432923848026759657795828560790510140850916394540803779324472471040634741438291779226373237894547541101025587778193918699836653526877031267475453792176856999256859585252623562452547540778275504342394481138195483133107553701619856410957781216152657506074636971810301368306127030103376077262530238035128386307650225902273561393332756966139905799388833684499252025056344591549703975617427513844696386148141002497088185041429315976718946147376354710487542332020349088165155312221345139731180849566637059981466030043818513749794323328833915992961308388888399407919539992792154397003190772023048176551324207570204755771426645320749631489430884512508714453127211510451013265957096633031017074676809129530909946638654019067424786285936140714336054710456944212069516105010933648252752541433202480603772895228855143061605967189829169229352504300320977257057073468787270805757935834109972477675015214935873267695959184130686116957312101627612746405585476152680172745305906433523843732072848200526163337367824277290277226808244026180244892916074822319303835807877805118613194477019811435110524746401123150754581915739471860604505831533108306154145312124137128646500032958190761115206244710017104108278335583021955485501697997197942154405153710887750114475558033539382255514578340757996934483110745431690468455509777912491228378772110783702158595093726555642702432182695160940165923500141671582747953133170620543076693396483333919169691023693607949342952312649933150577184694111391676993675203643354000470877120064912190512370824805520432507535920621546004184044882085724737870687988935702348943954777236922281769042508020013460052752056161190424184397909523389320051389169886328712711125533057286519628847287279338422056042911240462033915896605722438507985470162598056856185979756534343167014129404873191914191986453523812971958816867846920065004558397471059705776867954332351933363403689349446926563498975413867804356681578101527612644323231906650304954310226346993981630052006324824929478086316424584153399362486195091057206773767596344303141750898975056796738839047528598777160320625568958669601499363076801867776452913028680848650935640943087646844415868495613647136839933959092732716552104545585556787243644131144778135861798733617257617697692524797676508868088496455064301089333112656289874766838575951536289638135295241870132061242627163506418808503916048571288024138024700134793790267414427487691861411070954497737262517749732804659873699911611512971994322126495956967042639140506252231512122179036222542767941205998431740130140037956495936933382931658865440358154169561014481774251446565127512387169712644351311877879535731803342982954537129969952492956666606993300692265553751353600893407204223511755818928429034406286177827152018670063841443915194668797349160937178317242734359388490471236230248027094854498813665496326881255781035579453296281993132918693937285046868796924379832712616885719565740420137323102830142584044287249504926005765043184129918928510254814525908023389914931862117478241721792687576571033867807896617448646261378968024638151715804078916792914462625140869368642271287075967578370011101519882463536834094184890626132488052142677475718834736512092436095462967305956325039807187181823912896745354146778429442255902872814189139270932806610690503133400265777581346072064205617451908224793872410384599596630990166530124839801609441094512216181841134389954607411489313183628239259010557804639725690391953937651142335107309659854640204431061497620534009713276543390046071114672574787697802126780783189105705592457849918443093507642040521166949126073984524518038062486641749234523999025641045068308179401265699790270322892262244026946200802082469336505697731365212104519943284614192703001976991142289056004339203501319547811668831252466746229492005108005980684790086192872636903573058376276838481151169420885204907419657708070221317097189254729860583047609631025102785275291027884141943292652563159667493290932657339974304374933857478831835458628567240307186116176316053201024598930419123118404651370793668015079671856295380261376167468506702918324500202867307437061857603628979859929383296010830367057010960334344154983842319306833996627270749301345677689787879332306150926954537455644359510915653263553070382698667666837730486994024784431532827674426290864606483466549130090664103250885087963174856697419901587170411969778731258082306742163659909170749750639176068108855525751693350758448034306016928574608469974062172031184950945080633620247836981535356561200591086530870890540109447062608829521263020999133710659202832975471655470002994906313033244893602704567574678188623604147142226249357829893992461974310351327701547063900308729174494695865746385411970159718529222892255679187458941746731655312903198412355307960943515162384868438157606884714296653676399393132007045906555334312457185697648206230848041752009583636503191279027058102293705762486699995067636621292369657354115659888389851661614166337760394883207622376268526997783853551119922715071452388769288971646745627057450393872136804506076819862780005059697120613501714403723066899962341079260187778299328458901078691361285963549826969132475229222125253839990955223048876507519143746646316884944069022991903903583177176350879427110301514833919115041082698013571824268259103888888153201125726965733046022724554586052149028294258906323677445733266432045633726737336109661057538432882742559916048663305727196176980609788534048239710542388433343399082444626062421001694350259096432789439158994528757864595004469856941076694907454108829738467546394167776466311564269720119879392206464308440185334456133253861042324987467945946140397571926350383702484184253432946034692934663462540326074742688393966743298457429837816530922233644112155709462857299886906046386100276456154718788840619878105598425888573439985945541115857369699262401788179794052537712997814624820822013237294974937409454336854777418490997617936565779405229349611789919026004062006052864582324413900526495644237089212481237462123318709636267776068177678853029244830564522955737435297980668736182179763330539493141533935164071231503953820483421072980872310127733581123334368490464554642623693675075958047379801850800605419826876524534846554831950190360035886024144435778333468635344134317955431062125740121986658559527194119852116354562601523953202351960958408307950210826893532914519505357807253279146006558704116692749820117709864188925938771583327687178747338136730011421976838225793529442656987534636262388732315913043763785684634184399021849806175086752344151771965548165179315220647692640878358753901795364437965317114209960798439216608198142903483405696290094477884852614311283491445449840787580537275127426294645772244647012893107239870635181712728065910552314838641908657326697027198179248006457930638960200400078024549030909844572870065356738596905640524092153271768145588834460869193121702579894900802627073494996599725029432803159712587781033598656820134762852987612560022051837422887830939887277723837763443839576023820768932745670415377202141885342907225617774959217114691292465695999569796100002360472619879123617969482983688817169791571961956945008270949692812218137952324643922075580251422747077152989578300175655140958351045430112138643175326241575192114614689490973145671875662919474166530130561885336200750235042438517574518411717161731885352409905984077361677862823900021388596153782216316060854204369222083880319041668378889346478450703245647494899781954972873255627658423857159015203416703057690192441237718947874311898077398934466328520327443609269428592647000763626405459140215412930819139160934436772880476643594980329707669465527379029756623958168876830261586818237395997053352454548565611913932634657078796950384999058217693086751080900023098123185100019281786625486204009099774392163419643601769256147588934537382471661606474393207378099228139056913886578437737298506441125639588759471305442836425026671402402337712929110597656880389210549844293677987049727445209936695945683048653961098703930458011733861772553158021405600384926234464926469126699829744081607308303993759839980438256920685449595893129962285461453609520020004889627030463390572234462976129556367899856480335894665808336322484051429810258585735837576398948385850545395046168922631913320965808985249257217758462113377496112103376783735993078386464990730929195244300387206876233255844583126869862519684111712563077466767538448467929388887502282415809969365813384771120849225071308594113938429996433798147733040772111142163344162056577633579625511959390807498839137950152879225572583010944762852084955008492343595397122337519976348655754603845568720309171062906353486565327678309459184886068590348033509668968658051285558312462577545502354797846328446250617116599034731845678700181771025004462348137582539978736250602892511497712232978198645783346881687400019356163941635260619501147913351417109154611966094903862395692701327009983828516643502301169077471275539759152889980152659278692781165593677743780614901232920348911494599205141939178983286710096662407012245055222869485205002839232179581523014118349090712586379565427909077639657421116129496505332051164042800792915657851945054894573774193076783542377860354836930301397731504091423012214154948541683427017276178105334794129913847653449150023951192935961075579733493193372333621954223161298475868560264302201515293942969952318815501718601881982198289491815283076716187132314562105273588093396152763428497271240724428967480396426123790456044884231529656720918485506431115277300826307065433138721932796330630604658773715341002040111432596329515851466374942820405100224791967729635857485994302041315978444220922237979400341730563895630034375911539508507728728975359372727197528106730385291843279091638194090027873453613871282074494764761730247577259717777722181103646071236050403388750027442418255414770820030161104645683404342953396179969792720527566867770924486468635812711734378516866061534512448145261266603175649664051027012674425769189270559619104518386313631401107132875567121623441542863849813317396776567918979621026588073249224921911517545200215281223423241102547030468379995352750541257359926815656461960787546912525921561670813271994766150659793818334204988880179368370684804333109169712624322209679601282075447228206413161290676738275884231630964577069807555178657124257615034441949242791132814204872495258330818043918802376036467032237243442506560258393860092595308428045255701886124359812545275773449585985025212336431912659365082122475819783648924383001852033593353061339865021294199650573228512290671690607981055646310540360248236774801107685697652202085296278139192853154693202375988118517474035229802121715146961799107260480871457334884554761289624674520601969146338212569851196392923147308699155340338271899659057597044096956644578731777503914364278148905867551856758958957707862106905160700043076398599892826229102577292544801980993275557262411010690167078542278975322577417617132686448925134505508174715652319504887408479121567870301687164025349494716167667342782033724841898229067655957575447950227111033601255834683382235595916078312599609792946289297384488198817152621558686162403707665149180449104647050581117726701338234672305297107203771051836125988067964261178831054945652965547160466025911209714804073955839252684369043118189120548273781753080736554199256745582432247707089517075597129605313809986873405599302553025511341320899732039727526187553239525574459967589401941567138476259921227413825446740687585028974980073337005262372678022994472407079977274723012981563158958731641711395246665321321718489827530960765285562088497627939787447237539388811828006047819595959723335331298396553049036209565925234149197149916391150281682536149954083885700283177073115517204769979565435622816753960558693742798485793616950677787950477064195412542912174867700902716757384150290756629018978705494649589435839333063141739083613933831818032605794963357666837073630040105807304842960283892763391381434603289713958205292786711476732177993661946125474894474943191077284441050419032899341567756470212225214642317317826912189560738592068081931458569499731662309237399398864894130544471463877041301452337610572311900080920847183087346637091096876836789942706529162486489248168734477360339706652523441456950560358806922916594128265322409770539272012091280213253881881332173417813621258440985959324968501870334845303847829742558508411970765963957675527423465165879752888270502281646113117104235273429679597577143535249375659519367956556463499073413371927590102066697527285328049353399345382213524154769715216967521749069099886764590527674438747092713878774521520453608113082168722173239912889878907235326516201735965738843024531617374719256474239007219163245233124599646535924899770038353220441356598068923517578511004436092766452617376693305482199545011070852408848486630103700230448973567166020022135371104146868595273741637843214157056611073805258174032917343603584621865368714248359853372434526812222574370379779922062626272248820469986651122089634772277095433130118009426500471203085244419775289852530812659989300798735736690656508494444445534489223340155412337262148711447428983363114422420225716719698059237850812099763535712064823872340185280386001321145526943613636060327921610460343287283664168435597917402083806404980136213229940141674801214374461666681652304468199420982548511223335935642839193029282353927175757371290760310873829438454583603739795070092768662762788557370665190543964792012002932161968208655682618231140115526915557618317879167864296761392917453459535843642206298852436696076473387456738366219838391547226533195832117605826774660192439996385550701674233713765269915032492506247029027152076958814160028203887982460574741403462053615404218523719256107460746044829687485183953161605183121074050849333295927503904304585194914642971804063204767154922000629857334510521004148959619923896407303036335775361451137633408086004777460942477998358471826585643528832710652527003588050172410552486419078611034457180496295269563065648988079828951872130714225361521368075865992018203796402720716650289402508728812484899431865620557753515812404820213329244983427497637206863748328057529020069053455386018290742793399284283637288154852013547886192256869680284861946744461297420393788210486305165834693609700623916821966495743185114606560593471072472715081491268884832790817492506225581673759750686337442303523417354474584517306004063549909836971004872524398821396280887533300721826606901730453202081552101769045942461296098272075878812677406901452726015993872430422623135493106643961120126764934721247206668062291323319137222884846544696897116167170816521795820459106269422497341408389424893095104716638986705633630937634367503759393608760083530867585288039875689814379038881787253936045988538727653958273916375044656696828922071700462712713122480648984086311784264978263534369076747459705220112027721505637066752919748229474450566602115468363297452515551636361057102469126871357475108757821515467278803931239893328950647280329759211533345570508753723082735826439875732423942801827452533631472761818375822982465212005175569748570633566279535984098431148262427575152370643174660458221754722949917663358346567116739874913361214988052373891526050798344817105583754236262783538336962649866506863120273041494022354142619228126534926885399684104750347016239530312435698226899291732025006856040262998944335452656623526506294981648914658172826064708656742590379949889596954322489573203711736414172440633081314191138346862774946547713441045147027045599739794295480738219431675731684639261624251855541396705270141118995784012167732895838475873240854895933368649724740526733437616771227627418423364660345144714039533013727109146049271298886809908206173845905786831956658963952745955664264446101670251212573385969006741360674794808096429371532461178304462463299510568279683018821920751495169093781756514176727799028047174950292088406641038642000055141407535949225239901907863959818136359699123821422947769054372469624600731532724865643979127341361191626153000788000389777918043418395551235738838018520056801337670095292571792120174700939656059015277734147213488244892762520987168762411617843738848790438299380420380990404594192305726357574336047245578061257798793097400100791834062903108748946017947855656622359853240353709006034534340255715304184932281252322747634380694651962697992235936778587725562194464993789494275211828770764591412590337511163570805040357793835116198530655308763014724098840915289628425565183137414660783106434675212474052183470339764476497479986167230180408489828018582230509044058421803192559691574374165186474656566850087881135362030890334388849518539523221727025877589605479806620639452992080537848034116970081041221517676071151517045143445100352635023332372956993007764437193363263776798500895771416744947094223384157720648089944692027356174227105515915133163859931833112495646594848224138725114696099095722585484722206034455715229727578530292860105952273423651366452670294097354090093176681115199965605442328381804228598778736078301227424082338177362646470194041242147687406120253323441948150529665711718978908826350720921579531742942766862721649190605456459526802719057482532562658591594412410863267296427656633022382212656073174820045511778604167217889693547499247984996662614630370162343265595517682543816610890340723562229346440874393001024889569075885283738565714867912579028272030180827632597247322830219144417306670502911926960735295632597023455457069157249887447492643320341548722914252786561397057197836305136131248355783156713164663410168511984175665526000596811615986280467044724753248360713868814898872631469706128204258215814203809086829165290686547265065121767350544162018321691197286069144152917018013530233721659172664382331306667840474953097171182387819936112596425433086556508664306726574767900538374870353546537272863954237681000178737541513573505264768090144741007485208944752051661887781787081929565546309858002884985525826834069563756557839319459285754391648239326335899826246270938029385983085487975662543341973280453755044948960123586960633654000584499377907984180686645941060902704195392477236966930728775917474917241353177181210493323406985368333796460363509154229459957746130686724176120402243305687715723500054208999155365474670017993973165760724074598073776335620505689806338593234378358836036592778894786271456962235245724777641668366486479427244161012326083709863849333868079057488235179129502997778069418443739900631327820536622428873732930696098435577892341843312549560073464900377769662275736904070249751519643471446575103226803338122170680004145902156688526875619582952098519507360849338502881990176791826595673179901268273576638722993762311203961529696768645156203054199602796425115485367097967289986115689068631226553395099596378423179024779549846411083519458731628295587095907451286731007571064856910058547359251696581788895812884781663189445161329623834358814679805622111738870602550169721964713723332056653286098042677231340520476580601299759594195548938290429566634932524089535268646510042135218535015535827241959793527021001721961290200364788499265770076231700006948247918048652758608087626988276331549239197605582196023758243153206092926027679621950190481691748685246790798507148150125743299117568424972686033426636764212183516833220565087748055679176345455041199425059234102328140880637908285186053732056352106945451376675996222889964434762760532799178266171357144220970506210757371272229355146927794569556781073155515985946878222065881135092091787887567407205254066529829239754000245689015579878896404050456479727078765072226351697703298988654954469921179571802802351375245417180185158449704245339917581131298748575080173837942065781946821602978272308245855610179821715115277809357252994660178909064642081351087959981958450173942612002864417727651248078944638489509035364286160972531307772176583424143905573276302920015040137534331986735049089755068622671384031001118595135000222474776580441481093411696861791940090649527238388772049491583671864011270059850168458865281777796712124160770105939547380662035663874721232493817656569613507412093993853294814455827710431425630497909478866164453133260616942503664034776349374361064234818423692607389963610045075321882229258640816678201918394737916557815167859118959943839080764272498420919930985425602364634974657897878392380162606811575263076112406024201246405604861819001098775276495262563060556213178186287178833029455106256498661037095322629467206967793548740855874399771044550018964536726989694674698987726761330068438494713377434013644106102620378694187834879874485223877228581777354897955251303225856418285145213922383409883286755023697551212766300382610403818551684481939494174101782286107566076639776551042280606824889161619325767702098004827488733440906466938546628562831609409891938885992751922222442480660495578494431272522194592932064517867374828103574214304954590661683033998886024120214261595383552474301253652828705671464251029993766537413622189775603908436803332125124754034006654399576243794442852452251414700996691583935787039350543760172875432909215420120769226188827375361573381749893207262864071679657883683943707553578418775415740435299689548644207826489210594508113032097803452438870100343609080318600429181668018048042700948571518342619396121255388196094741843282963469666963996476842650992267383975070706883168142146629839014413624457875266323222626755015882668681478889379916456867066883673501101767425162574028746185157467140350247054738482491151036691027490410642619078170798849085417790554741348293901742992328805461693595757266952095710460018032008168876286906361792856188150656889686764887623496307439712994287564297448133782802286405900076433226833950742618938189990206023267545054323427623832587476179131887285444579934229240271504342872885413760904860418288941347689804577129600523447024435684838156146678257245122537523948839901808077590157767341906065659398874580183278402230554916753556839279530086568014872834838750792870117380195110879411967246318648110895865155155996399291344901003641610585482855123672476652328596817790989082818009255268565765315676014947777001059198923355106760994227087506840404038178693528837267249546130636535656727304158773048091846278441733500697063604941443078058214119829772576069957884585665942067393219360772646821844456711212447389806700851818017633530917244149390429324363479504598776953949533440637720246144784065690023933351912910307090885090792690429291098611104393137005462265963924487508828291440393378515062711143875195916711766077954670058798423923595958571022957598174591280069952391144513634712271134352216854848363874337196672239236082943360629919284139407263486950299479944869344203773735983338548352425630033637583634338332789020127028901060215364887175717759520011112469487153378327705529303250636261575543825146524963678420766556338739212109194531194790030474816333639969685412213591237530058660318335283939549318608724959495409951744508923580603875435689080995909891872008640656413028317222533300713758068469057555788637788620156697908546845921020726198607799205321488223042187458371526019906955778084359090790988039191626137956986448807223318671069348286401880874687104434351456130732701808865967573007761532372739414484434897268806301005748487912527438841871516058481857215143674032844018551167877426324763739028365130311107696471602709595320618808896180144402868177403760657872117190896716508100746743779762973367342526619387924061313473931829784436512019373565616619427093557143909850198256282807546089228270851803959910359250318193642407458878649270275392020789037660633917262234355576700122551219655173144424127742318058484964934389368283155620605166832609622869327718663630025260182121857419075432029685155914116040512249586502619047174259416748139005809442759159849674280862925524502152296858809041778065254116934891858439461674876256425170375650547824916858504688342768832266497509607121040359765739059398488194100696535822599972106425308488871261293385274864779855105446144186391217289442521853780462385558535231205906641145139894221222242399334646959631386147386807664169203001963404508019343590535059693191860552949758847302074878361997473225016654900074535046194377581702359981017296462956385741476042504890435971261948286612955433455647310415282773343321143976175720072124180773218557424736479371751421862652435035521506911296014839842714697569993401738450037164321624143787095201687596213541977707694254060380086780921584030465182365468729409705915156791324140909873461939380321848191128216419003855660409368725170143732289870884305141918267364560937777578043407730673081297153009008830228043990242678679760849312701613705906051091906466038514920658834170278413462337313558124769322381032710791586351907690121385535032253975647813078217212914899059886223568958918899854869573450319458287512094819218453759461999796314960535882488604526361902978241009875474329449489854825841393964602725183182604617772064551307826840361438105337102471025107846094769131184636096083686789759895827585381321677772500640282875033327116825048410337573932209240689820702727701769936945530580654979640261334926347972808938590250403534085123446297964294189334016995234458675643196718559797181688215937790600854576857464995765189883526220490512058884337436235756043054250300497451805676988628270748961767729328159584493575381652100742884659608319365330274656589813848000070911199386437647274143109171261926398228982137698402879341911679742691375404040920282841014225792808413589542243917844111556604555911720608103620748002843574188301404123772188625042191888723491315724738884793021093015399363255750456148828305583259100492022528448836505776481516331823014537648642426604083628801753864976271311151643224699550466883954450315654316643732030753239213315082076178319991969422560270178109946428042206845219323805662708479762874346201785099566558379496596106502008217576048669965196470500078645028028321194744895016839880454066752006485670288356132699838026587513071580074468898156989587844890011812909988083608502630334228904759105494685726658704791622996280780255391247745948238057294611722660682156573465379879131819553265501922171714646256466891343818020165495666292151149551027566768652266935575944421993273453032310872468891516541652187191922929933854302814153117617456083792960227707795655354259698210151618696272593049811734630041852519607695454493190266984615360614314144187074196608835100061483815609951620077650936994053010916827151526824657964073663534607123627729906647566925128236416266691967699454266808969414798012474620277569293915645172400737065459092428657479434074066795186042085020922068587932930898226434415914763966380367078406248155297960438610184319546235169273059417136922519579375637667696928481128067421268209240244077211926291027350085162171412541550098262099221991181586674466680003496162987641903618533023023192937810649153647662871529874371419175652937419937130504178282270144407556695281718723756590143121292999651977212032268168084678668369743906323057951003077634243690778261446574507654795647806978667555155960541297036012329468132917160543266980070673166628189346438131602221608881533588393550409113035648069017664771627423378078015701603672174222772124600885496202532160090697281674928316147992822064074998132429861283191370633476113953527068314530115094892080665871495178599172601629144398298892746122539911304649279781580474984563660735632237990925702470025424238670373305792729906077105391503795884468806751626323523550658068474687352668154083378240250775169568574612292533017429567206624578993479935297549253842810497221409090144247816353590207557954495007661521894975293850579572502494900733788155056497609141404315404057638858387152348274527608631403092438175478095921824170065498362893757114384719416767680674720973178030011512542526479313558838857730943601314113761710064061908010930376181599888738910088307965867845017618714917428040987465368744250435599676205791105538593047847123234714194569664586441607693683508950618304172082974397739677931094643560891948960308658163409308074344075036414887772797948069182822827713558061694491740485903769548321403251359383101661010546017013565310331329473314394053018290221710273423275687975727391947701943989295800984127514355301708489948053096313352819149471849697310211813430147023484988392628617416415684822686178921111107189633418406213529870258068233447751722522836451498741379822263751559086751046116804686877576851447549739620138396304616366015391202038028309685866476317939302146326541095960930974699205504825541439864977635849880237790297418731409211549247819982369371168869443276762294007217634912258114481615044124745775160193160549239471783621327384829510411868741416367572443326995207344208348854064653334014412143330408572972879385148090799267604044366431072366044819785917599300205312482804413040398849708183640963388443551658392598699420849820197263969827612185219761824696367657828137744351342573131362886591962679224314101696074877800535935612314074691141837912642299778454719744981847202100313228590496827333472446965657137858720525733729234666665695087674738883423177031429250832734030784011084492602655389429648161501290956537006092394282734009433108067552292318806991635412516663790047914428043410321954482440434845802087362398748990741715064314157121363805074265441414175007387067290844810096418870019892714844210981367369340560444751833160041095401673601724559441900532055927641925720638377769462925507321248804252455232512134570638512089075386438468056261855237561912810755582150189829305279126860601143307948079455395544878467383872000104569346185908371466572419520033479065383739700443159307840014059725456629049206959964808515855978984424852040624891108431827648874288364645114345812578303636440782690231684500796035633216434194442369640964787047769476675212688346754489190033965554922017435392606538289516566188588473253944895244881758226058491082222366672631084259570949101678467198114235946108476714168812304805195210654356554480298742723738244745817893043392928512973193829244200215349891909188856006346643581129380241673975266451588301565708964997840758063241815981121727223426984898223258576124552719323287981707138450469595792611988078545822316765672342578150692640573203234632232980957745299864343593752606811062122217462092995237454772810517448517139089494152187114474079708716971639965263602443280431851146081609039918272619507799859844964370594251830148154350525709528011992665338565289717757964730731983633011914567872524555825676449214451913866844629963203461079923908083239167869390116829913515779549847929405363444896638383679789291147678927258438629322191243536639012612008959266757979953430022792611949026568385009801401990870217549855502754805380826380125756044153103246981370099178254939573407155135630556370557365290282307785710462787776909870051768087395184541843670964935725389672642324862534444827269908935566597982236511861839952251053246891976887311728697516067073949073919166182392628019958929072445885158465831301401344907058698169252841206406370889631362617387229422508406457998019485539406270223638855541841300877763305469688963643021003295385072182220095236439417239273645887257351703469804475778764827676983855828134773781489916676836678665600809573854996761850567426957420755796171888876477634863317741670021195722316487711672653877579981933809423265699008500814850736998071156446621668218300452896759238170421166799771167765224951625191292330581312735231339242332894967813638602048570446396342801876494355537330012229721972225586392652374602356023404439797793750398648597510612607014016491909393192684043048614157411029199015856880704868119580091552295571109351854665259888025726757820906079850332105133431911200492589395995633776631875810438389276642648189444103381029192251648428103261250149849738513193517978880468998459481218445770088253546938472021307144996559044217225023115464979737693374270023696141063776664997314887484934060953875503476013180257576239101585347543887087063992155570880309860267172650461815663749490735462270384677063427260628100975816643570845583939674426624508936183464902779117286661991608585587671245414470510567203328202561489333328331241123107403452206579479119519524574544872464798680531764364618888078131532303685123843749862000918461303957025485490309219634576136279838073902447700004716220187076310749081144831841144964784094297042866266625253058805717130090415842898839901946376128318687131708187762048296996553583572128292897077311023211370926125867134208596185353277045845103041262813906332453947923978029205010957380893865800034487277435180514101020516048976328821985737730044770060822774488744623745504329589407642268300336278995472080126720515256954125632852892621360359045140055479975124001372283159568359451830323261258121165365380125826634415657251250438660603097131898226767218176906429135501355206363825200844391092688339053185983575351589752262823238530646437930450751869946211028009951280382555024401192823408698929041180802025405865554733591012121995977347224660670198205871786560319605888792351103682213420329185806037803860593866125524191895829346317134982972560435862208101886257768561584578551839127291920006394976692423788967434499918068155745017039150223924498964758380167237767696516828307396740841227266827410437081565350087330610707827786359162147319350279065799276297021387533294538647325212270515104371685497602157556755030547792756168797665103197826075867463282829153181566441624836330589104193893001896699614545138445959925295335133026274597880280578169840102336898251737709813735702476298277101479259209715388503872222909967498312150656215789859227539375598203246069867669200508075577194961675201987994802642871026534346136778888903344295081858046146301121119836614067379077285805880791111292232810660451655798605169492746267214605918377708294757141224639703995697147443602404528522615736623469574750555429480061622902267083389234751550105263249438791172987067585990168062258750875628936931263165386268181621001893165114017703598619678276458631828916575517815961613188574256380900252357781949002600638036063193635654903573375555639852579208774292882109214757243886135676362168904329661349667852153638215841140420685807766999063822612971295169206922247647397525410972430049422212156393695419985034181885712845755849611049495287841700052234673201246603310150532856070582841519114720193890060583356428886403196635134988525441592480285066832630145574123589527815863674818795095818768706629158466373013894091131137853394934701893786125931996919396410040049691547006618674230411709384742459820679358959570825674190219651680480645933258201579408315934965447667334668882646480128599701199051023996484082487776689587070463355315250199128289457289306275422083035620670789060414892116022033947783764795801504921430656307752300569815311056139787142714573463663375724853983809338253667017720570668988016366826652254973430460266601029578957447752903008327350581619518912988817054582328414768719017027504780122030374334451230371975601554455862879936601079673517736352573654563007248730919277293406798317635548362433367304659287121186431568782764648815385930347884151895741662305885749501390372236392423302903728007861502884111670918422579350066698659342098419887271437415216648698926512763974212623711901687134350220851334279229790582164518455939295916321907915768083226261846220765933161811266421574849577652236230019534522096015541181132948299819642315752687726743699339699711991559793025755533556110738903350060900629917669647395038855505513031309424225302743195804462115390364879292718991438035589899014590668771073679116561862182080103213932728984890193384989484199335179292881426799757061824921565658861098663253412346472723410925424611620029630922918653199313963849402217119812635562870166402305589448350017267717204270511500240125377621834991658612542167168395702234937370469013210245160758064475099066845151274992946592944302901159946755529186195995138457379530746804732313502890915911525561045632933309875378731301194264647906210612849597800491061993070183955829425521752378680000821266638065754774838247059452315777722210931667524394549953673969064375184589968549462743877647692368576957262616778277132931472447677777528659766546681031370270682705791352371373658912418668795687823287845838317490035371628646220514385949605705392851655523522740255688988387640782981400766359193124091241147666869963131688493606398670693112585220372340659259683836057010743158589166467107285130729246815584278229139418384676477262351027793003033627231891540393698259334925558833713327114114478064417439181388805709745748785017469554161267918850095270573085533052137275996394222680702812127731003977581511792221872402730562940021424525590734259954746131059551505679748068852127672295614746931369059914337414052720515016827972022703007031284863406930069194233176082009157850472312249692624370506976364232993138818880912856436187459265852388924114927572264017984023711443317085842020271278509932594615632443632980324157805156788549683826649685078110141364456796469736776460438735187091390350121830175630670466481073271797965719668518063080822944995717947150085247594517557650702689340982516328222519661425527482546203201781089412263506681139064122059642801173518513871721124819252015097898855307143559859782755892229489225656762632659338363120594326235654662167383437915726537828448115636798738167142445375539284273542287840396411434251966806046345298846537837940347334715723302367562863478211790844633751900742738015051028199050726179157217410239364713032062914995514916556097223123179071613643007483530857488215645377179027247576766403116269772430020011539323780495637343965378082164440846086433331345393033365805266215875679727584404514298991994763569214925914628976915587553001513966420105329427057688047767439783236400493369533234269573665724029112234317536800362407643393236400763988993081545665963664490682843857734937896930349848682323309438660491753815931680511717131079362571525648622702851832177637155554708816902472551110138556093169928439941101958082008924678062681509916479896670344826144435112149524587676235064962153629560311894291396893994236307623386611654868290193890109470678618832531660290619581221794543150441793916613870235018378166815002069520555064731828710844939974908097373729528967126296349717626360392247706452197105862503065875493668832209539454287296380801724740627653441614648872885195451061352235704869803249997521556644119943651243607952108227176784161294429332075945341936897335904199203051216262042057994734733780612958774278669583985941233526919642436440073418774274167618052737672940748342196617265622248711039420699938449911587115413886472007305762646359392113733392422588230105869364850318209776486515577614372405057014998185895510608789643791311423003251902168868257665102658641436259553184195988339335354848993120262178276840486292255406904788959585379068908708135474846268301750881628676897181552825009045176927984278944963972110918864409699002296432286036987707453255037180154867171687399860802606043792200881871549961455513285335342054530603755818811462609007052573061670176651587580654994675244642382234074178741489182791157340039918215535718108699666277789049390701210525004669696229641349017090112574900838892407406320868606670412125849940174947553016482839751615250048824693152288587303438052747366450860158604540538246939400806320454878162020744205824476845497938980258048552088193649429165479512672061314546290614044683171602815139254120709290693603332952098976436378829676185944754436743412995580295793899572786791114688408512316541657319901884701317837338223580824609358441917826610569780902075965453239134789987526146839394721761820355523948978979125306726405756970391454434202435018068302923008633759987447433466818511009457001301016623761091120150986922761567805356992785674224804132952472130497188999720092820409001382885515458650212899808048438242577794404534908493345618733677935263973045818208570669543130829901033683841667181651199868046513834209376886934903130967168346745642433131078529217112687480214722729671405962903074510411204023471157778114657802751134830983256823345660683676130577975239463948217021819182797625631456596330106908136670670484177907589574062990444592338845554533130855644007611825094548381537328937013327345653807276293621309084312602898717299012383110051321420167156092832374268177738666065127940884678738592996788840358626943562464616833836909316223599265447430787033130482177760364145038297413503712000478555138399805542324736928977364528739209779483289664321297186261865760001109263874347044431964332443260369775111511520755189815992332454364219316796285727241408843688150462858210462137776922979979294048171905973182313876940676423886172034395162617158601401084801318376474072098365533492037193376822699254425976891747033557839972471091154581097910869411404073958189719835929032064201864800208458162356854553569799893521231223610384088471196438597104400536576304855288953833145472325992738413981145799171617806925130956754323426958420431087141199340815252895472241053869418659991335481673787144280975183414956257453342968202512440678988475898620415225113565254101630935085806637776992749963102272811196458490268778110831129692350082490038297663956748577357726794929562621003969912077699217645769531746382265723459889638295150038661371057226406992220970018914398158887266062133194623619302112087576399485340750541232456838938197772399882865613624632694571302570577026933351761259891961363691380287578365001912919372163831434256967630164515581344656507563368095243874413432737471377314265012676483245266817430435307419244333101208028064969453902415870148634828612733878710178879844523904510814521717012268150628323634462536526415073710403025192670658921145184675373974706470321907219548985675567832778760623144002969778536309274983926421593193765666717103001137929121215472394244589564296542705682053464008365178545783738029854643925519982776336158055528053542657396869893367468039639520864981991952522826760802170209548841047566960306711256865881349544698280087405447133441938478631477666394324156487849878300683861561311076617456902148529108786481853990281787763702354465623746352087691180462076819708030290238081444487252568839288739972658630101504445395302962247256033713783761631734621519980082931838685632518733429792077301266326833109367733456363435225609394570201128844970672848465326158752140017685585774443415184367594084675855329093117317905490709422959557482527141692179540537399654080887030135026300980799688237747923547391391895715246982148995690886169127195121472159255311018391575630926050166053955539192061385567846138270445289609041524260938268792458722309253092780237999913528343958991973574070292562690709325159833475160968864954727692578871644882690456509362080172989634227739477894805009893194257794928056851428211612677344253387055463205615032854530792910637787530513148314723895681921415275465235280248699517562833380076319914632904825883274887402195229409217033874421899953104854935070597349242277253365350829635351847705182306215269517274190136339619447500468358164010002928924144476257662274015175002258263295512086053607915222357958668467765022584307319935553126348269994145366974731298642856803907223938818282658094199805309102188295833826503140453599540255536403908490758791280414408972352359071497131512369249102247395644076574928630562947856904751178315588683359252846712749517036942076625392595909507533477942774095024983472124198741578348045041026626036476452437274768256409352366963689916987655929799318464733429732677593245351046332798134891909100619040631147171399687874352331631899074921492450079238558112041947997468120203421874695470087065699160248506414984912058724413658868040126047187593608962311414542495650238522679823098734316438299820294855734512885386180367640575493580174194663167600586428345512958448931126734924380256600948254473520498088024700308465752582191676416364922444036445888561008116136455046014519256180782242645100670161616693851458269313144265700124159027175065675496837303140953668424431493376764227808037371398127574016774061168328941527911781495971159557307505551466169969948117583178436393143577545313336046528120456072080639181416022024877723358593579065289376441696626785506501158820548000006668487692180043430830464151895628439522800056167693250772132947451734630144684792936343453467060085643670962239532780331589597400550999792837316009439653071487532663569040921509249936706854992678238582371060371110199359950841775301087359042865693116291412132479177790655947760196684470206510425357059573877008282485632575262873591125534986858486945011435699867430370631179906403167731470472284968875808153514659427131877138671078521095720194091282166217213511843948227429149774194177431180976428480068393774606030167984958019521468507507486746690731120354757553063463318782019437064298307163642692667901022373784797694430079575302998919656588749936423530181102304099265514820768938770136804290773773630963034859102213353449941285068807881194930435559396224043662404294889047354138624588822948132267171827397224958476765772999552713652230089680127066854317716462000428055384562886132123957972320325776552859869717539930966401157661692708689662582271322233885334537166899655359955433555566838076254228427369335529297235382527774622271010080241923786282890156224298468452090654375443712773123584064498448864478209755773411858541879885590793779678681863321761396540896787101615669502542629980857407345444210253788374671120509204329295385683018927005363253745587703174454350024228177779363658526001521420269428091806452205933135479679041609818643575726391668204107296627199630118923442872623790913111334182767719781889315834336547698150953098237147887962472788199053751475237361496890050724290840408335264051326305104237224480192441011695731056975832632058674292798756879618711900642969403862162241185124325315596154430408902495869446996281120701313071072215620500599474008760256896092814010002903754531216918955341067174567173863889983197260141208285847909140849924173856207461840992105797666772389424190482990936290189781886413756173114386705710141119712002222350957742421852322197785004322413855155726138108190848384684173965157629247039329762640846539331883196525434976862392956381050269955707855378087141722317530208707613663224992263705482335920939964001767654892092697607987192988631839771723001544441328921096193429876473347848927367115652302250746087458458819250050616714445804464002018612793578421634656448852081954037718278912534197467914796886985780883628135022555923520963036073142076041744173558958467365574254103124852787563523048712444439996525433565848954493010928562899885523760287674582051512539857054782168551370912604755149538221032251752797586662003709543409341243621594165886150377990239995537573434738706467867311018782347440312345183645252017480220133923588639990087885645514496122748467610844865328455609770144140347788994653605663399238589518940181616696747015370574291406529153521342370304653140784406963851242291408632727560475910808480619478459662112715433132689312500659216991916153789601441882896208786876815895800002443154428452611059945425204920804917672328164139425927227336152097082097254349104679666546941680852296485092820274096983334034639195300761709857936870357187655919034357594446687573752749956525933828566057560649159956383573669026676320684601099579785874092496487723119232608189428257515762492464068226247340314061203761619896405810550077705123676073402929438252584628384908117312286963353013687345293913009220051319909555440245156226897210971084999879989270509988178045476562388933322424742330270437567085722604492127648387899871399128787160484292749122470261507167078816116141233356978762915844399130655124952194646189929174004194815518342632935450619454950088321712956578272390207750068923600575997132107035475278835587960963177908718331603710120369812848357270616249249396581996672972462260994308519894011550233309074732252925565623184303230975787281741059807955250522117287211546895373608777271646744654816677517605164763031756356395326442524709438082445132591461696928778876696119769334383577480715459229225134759766210232673151523448570905443004497227021513922852484364150682189270953104704914178226082049058623552698636836573526810471148709696421555337591775480840618335388824819361168520143155257562330955412259512492134612965839170362184886988504563994887478780007033805172207746595540564468743928514707077794629807634516784069246275379775354393782470970948421838283767878318516666899349795054382454168384942956524627266491981002383556330412803780698701662117333923030639129940457489166154165237602752657496220538993034471820436829569366665227506967432755371646630267350917651731343531415338031935364324394327418932087857959954176918491246456599534888339755450076006321624291059798386820387478139504030151636415846544892730611615325662134123793025683958855757720479594496889746793420018733982374806751976852791785968585662688648615782091070352873354476663089185608100979266144878224138865834743920251888110745255665953843570337589204478783667074901478506949595420667387172739875130783370739169583347138309741382970005103171454266516765442258418028865477836376624477987070532443389316761943123941038433573770139106410716315217749711226214594353810504583839401564389525626808567519760461892870555040822652442143960423442086596027055688550132825404065765088036377327538001725175384313486766587660243345002193468307822856577414766794554156230288824889075299869431772001318287989140228251173636456065064140631024445275578980110621351285977621236513315248365170945809827798041973917250516276847289511882233496712003720586838311992677543079768833899347909895690628337475250709015501892268719428135171547838942014672250300540553415347938194597313821793244568448006962754208580433693821293397275132573326320876865178303743302994362915483447475155236533516846900445033828738233974162632327964094720435961179650484373443489443938517147030705686778026605814765967868883662295612529946439545576053575954744594105102425318290050507166035594239912031611439027553376162327354715267956427974246017667956949556091079924262715211457956204914637607580293311776082985305131797862703597902273595921555495527166392330903278462090346752996743849799693691331527253938462405298227052232818513905390124616313312507137185874545801620741426302658651701796745525358586668781340378759394238878263706643364945028103346852402126130202871786560969688850606493092271273924860526409063898150549324373633519988865214746805546002778249412513036005461268163712527991497392619703361302804121586182096687774360326163340078431338507637996064504036202277192777765322635221260784002656618799803828675480729958398230328988227915511162027702057034769158519074555247539761927451581463205499859554891672037832454386262329096893501976795877579273252467248018421587767096312634971467513940654175504220474822584154393496380610412101142146886200578553257307198521170500459014208782340833965474734279207139175202300646928195600431718605194891444643097471256487070117835656681496196490194520869111502210074221629198081366913738672240301909567198632325851202026354114560856317229023667502262237897988136224718136345738417472772722174431757734191441763257259415329652687899548112170210231038028463379948927375134125249169677218732583309253516077552562955519421859475242861170330235633818790124798768652503866033166359651714386355099726170661339936029679201634964242816958333904188702070782187778759455714417469837807945388661452081657380646379162368352430607954122429096198879436599598972982401942221483410314724565694804779852783049570315945598131254613761875999316462446739562063529094521129811337535929155087975348023596120407432010709069678351898955262440034515303711832670722766899378073905907297587566391088234326951788614090780437556108090635268725754834824645041353135249906147832329670583639923099671268194924576403245735214469469606048175964027446996696224518536584472480301669395024743020619542689900916341579309778794398309175447059138598299322049122843096897120831870077738731605387376624137679154800394926900358513642666467336344125554452198903038673332637161008309916148775310877783480397950323168835722758387292355588290025713331514944489386512938096319948219544903652852161616477611205984797870930436221330174240963346461729814953057690757995828350220081112888211700437806481863786568311829261963261535904649311941872974333241829205959707703512982898263535117265679323004062406965277360960534579887886712044900552023478099835578449962719921117525347813893491530825728361023026182322333532948837293727490431377856480855458731167029333216324559825200765222955677343987802588328262416411366423143935034606813288422931984484673935173228400451444535924607545792243837265456607694779890131579540861435970335069771064737162307811987817865114958658076839060367968770182411279738538879452883600561943508181603351794649778822281784114475396209438510603554395150928150242895009380945749890933328917349749632896878821476361921238151154833578298807786245029665771276407036227567509490043919559914874260265824882835840977854123684442871777574690514420682926604833673577792475180149719612195238706877008057961813422564930559844574565999988662450482323418465287198580152348102326173618291451374896355513426415170425150681660135981712662236750833485941230606055758211163854580569215725020427503912205700655467429795227334920664130405755771704154642472932401705314054973010155889471531121508569579802787941549993967179724271471060875152646374363355002476552048894962177618349680201063972968692004642512350858177945742075460467381118838660553276996112436299929165734274722277446763758076184767679222213009652330689458033734315868498264880291939373502020257438567774207082701340291538266422938602534273340469450407875746102843354187068656857325106261748945323473796900096071800507124339098068999851830977777077074459935300596636925746808139114797760080568637884951698536282415500233064195543436456623922111696459283341564055495483984632483862142380548089057192073478642112072760645813177448233760993559308469430450507872509282159548787359860217422251563458239498416168376866240682170243154805566581594402711565207711394162160593884033560878580396940783794475741586206926907787581226424146034637584991499055530975488654415893715545600382034231192386301945501775655019638389148353471330630844017290335555871377906419411424545822520144359017584875081314778940102810273229592146567829875990425654956905376736618104387852459776484855020818734040225879968973723571353139981777226608733051181271959938350545547285657922909567744076490426131688299185377867035612563905284148346246378651579778284385675964345803544290518697391329575414855554159184259542765527724911551266736426148309664840276446881803566922978155685341286822534742899674836340155323621095385086777588420474695944206449199608018654116410539866736919624781792821403467406704217688165165036226753130389279256236363375207398396417614048662155839943715020897305231160683381447084605503550141096174036961092886942940622914952417470485948677911562721755285986620585656628659334818531833937367206679188134148140964559312417644612855958875539059519364890404203572890719656701663252883844894758897858991650750213836438587103549087529812326603745385475261763724980651729736277373245296544567988333455335147447869921476373300627820335065235262554074802586631006205444677441766420460401829868045810249396750487466832860607688502071319366301473768231318947643142410627527529532750777578678822630092366057533167116020526405924595526021519968221984371608050206021869535979573817107179234345644499757006345895576142165164353740527435495903777001232370072060171137581249144047292217148931990876759185156644884317855747077334013996052445245002454131875104794377657721995107185312069404538790085374922836844442361017139930519059510379534717437833904809735633402414021322579640048224520085335104082049653697391752620841588451106919197462601664763030217758383609580940490327192749528580611956404925681530002518242910931261491260278701218611760285758043982431012092030410943843813680577873492669171425146980611343821158873051108370652195496997778116238289560177860791940360278431439299491083072839704059111023301098543653105976157293741887597429221552837330611023780443694875854261243496452935137307178616687777494047373980879479865774819560329073787611348477213515130804611608746733986971934331506390964152509820532987875639777765356609234875898329297657398069597088547914129906703124866159319430318863534101957789809785365603387699001496694739256904344759836768855027830500060748155501677659496678073624814497028672390086560675647829891474006473121670616848927433782121108692456699169377946857881285134122184414482805288883115658439690200619052554782596666050963164300840423879588480822153555749294148100033431024895149048161510955344954641243577785504541992522605907092456791675444159322677848958071599519649987569039161121880898267546310008546875710952471808700947363658934754107181208009781930706041443194234765101016793171174615169490556479557759019336398352290624288420165332002225317559755674422034757170674427780977936611344774655727126039280885048838629897020319793407609779061499686832552170287749825135899479209953345883535962658420320006122672433936058678133712010240832733193163389144183597774927817804149453418868189294689865554016778853575541813021129488555518738539294853558595823086765876060798327308509231370072812893709362704074665460981288553758220935220715238875561296475575574988177765676171116055282582914924108555326061118539707121635966567766862691266198311024256250205834023393636747264186888178229652116841995152857256204916874941165092288551188342315422486334647942066819321916360230798350443386734616273495667015435260118403383730625411717405067863874547613621198903011024485327832751271169148792961242285556938273706102050396713195025152496893198104264435485414553820594478766546218344522147426818451371691089366583783176627066046060276008487898664046113091617690889836448081432176685352232581639050246992114475623430851657812194123174883361166637304969513752063411705755148899621613615640767583624157631075853735338522207286807719785959632817616253461982191422877413710395632065666250603449637585166128185052406268252587103084232026145134819935877220659952886403704522995837304807369628613997984611126651861644913348261534859079465562171871192613032665921357129416733814762278280763336351748399113106734377449029919613412209271546716930216061597717936709474588009720366751218335167975784863922762171893117281979424463174770174243927778909038578223707050846056559072989722747428022759743661154702463433702224877244286911510801386410219318934270717629164502970462768215373309951619172786720084990321998611899596217466299784555182355191235376047264735167668497500449560182154393278227568384580073727720625291216012864881457211996287787410988652457900914578849970702078334470181200173888326917960331949618159477029239608098189887709715533620636153634485538966577707266274029836338548229910807513064988297800144852879970710249054957601740142661295955050181104806108802539895986234078997390470483612814849473160561965348994950712610992431666201989354011366950343290006392370068550560041759098685535539209880165506367473895747236706068392246105202451450527055023016326226289721139418825582459820734152352896761875994675107026564977310069536086706931993238098305932095087969338294331432662177244610519319914396349684064346379108793542635462248154650881495195514533189909714856628370605616728337464455163410271713089570685330943631234510396616456894195788047745362943582970527828209792049515506232387344184347635459507524503627692501199171956901737177307427206059738800316124552961060164616299310347416260074459559200506153586320757946678624795721436880140093572722297058742655168884572074899897362953866035785811501894349526525442428763193726814835656060765253725401544490647110133600149708342534278548162153908235570878827579996335362152312743924379032747919964093169536654305176063632390920917536353697350969380737705441416303085636649593196630505107189117109788671211131318363857181717760101304290503322911232061545048422277359741501679998502359642633938800797067302133197224454998068698184249541840375457727853053416666740498831338130347393221604667705124087785565338626125416804797110747542141103565879641130075941256898242594010989398912070754829819000235700046714868315738289385543884665318751648366697442601474399090794931599636540535784320007264802245834924063580467601994281871612661597677712970377332139944216238822364293108298048841169839831405407017833677183834317536774871534169093341706065963555605040103343507566204391489433289386011688891693345641528921996490830846590422975489347671079443237344815083550135263990079030026076118191687609970642742675154288345733308263452789388830255955636813857395446762660362263755215818594507069681764291283297612576780992222546183363406662290573000615584804509149164604737031131824854012308759809952172365725851547367329724502183166983550328653919597998991374759566484483433860286631430355473928233712751698525996183288630525732681480397458476850994483054689157545054301110810925056299715675126855150990488709702285419756649860357767635211198159187202425736145063170530714518893126109688597022136395399660729137686194533017625666482728089631410242675668120871193220429151716957770948816274388211309190557393504112367137949441113008199214817248016174707644023537626090112272268523578706865428573665796793488394429130186996251269254001598971445438854100213733221250902704769346055938102778757615937515974916527081569531400041066479987804848846164360421156073165661217188650478986269432828245541233025345155476032602676896608296427383062876398771406829912949283581884013861559562240116913458314164751249952937721549851644425732131403335165022740209629060784081980011615108046272952048992801976083424313903860667373067842242069005925527317670332090469481330876566790629238553163522031162539208920330649062857483217814650916658834492068558962880461053993332578680774809601557610154359831907747793945749155593882179839534582597592015019926943333528153613342240640356918771157731935243720783595305426073392112531447773557421437466402383195259210870751126735068721859245615348663786935639682504978778964856042769369648969879663379306497838234625955035269027992088775650613075081794690599383140958517530066259027453725271815646871864448991312754373057834536386316523338376236798068522822045101581752800508309065968475653358318554065549147672772089713484884512258966864327205364554368727437233971389625138884423221023460196690362718017096275082045165653917295808623801771919958119389817284550932789757546888245909820680634748334520437932777581867240505777300750869646893432373160521589520581856222650672034515313428836216357631218568775643861015304018869057452020386514479029112524769303829851240244852280707729903597816316030611000650226580599034960584413368962417057409444934017285677290562874248943855691583645991292898425881880214096869928717156108027329684194626915720315599970290232661749000195527346538045808914309216571078809160159921315293326969854189393443446720361009398677129289218664014488839354678040062269540212908452781893425349826774269828026448116770410066150488927540774894168968354910589008049191393405897520665724845744960020589335202034256405934420638826997517059119893957122638073780811019266696814541868052112923790468387141047078799472572416582249329505219877335510061460003226788472860502627964655132231849215138820805027404114987825488559681822305606711079564023412513449862155638221803903740104607062437936734769813591819410913000248430796807240919689735775165896119483518799487867535464472136702575188335938003323864341745699755740167933663258915798032692811238863801534293209771374433338295922698263481218394756943626015778042059957540582006144990233611532823071879527086688716260395076821906552778129628478893217798642792344275850072004427124634855730364127697156791577290838352907402361500841120274230657037148377195918516479947601571994216978624394405410124063852524345252772354355858557021773998371229848483807170091902995545203923923051102955159305138773464907707846672272477356961909073318333370170574105361069723979757123418069085241073143042169917842941451440887403529130526766686893549117666237862015377093419175971739619079806951318821642764659908932639816353426034509073606762022437685343887844129258810510216333172424752685161289320929439858091044886099402101470087904829753555326336767910304249731691488267931467225690425877009939543412559436839025446956567187835961309789865145877048832336980823343464518076980425124767189090636763355403254667039359302719046990577491383426049107877334076907062815881807673993575882128486289409226536409487619097119128921302873939342705705511997172268193962869770347571376266573416938907163264853155069012847312561190502425154296567784326434557187858162801573691218949069725042252748472401938950023703910750629998042098770492810725009857391229712485209579937652551376433474748853184674488597249049603706593274326341595922894877846519885959766531467068809661689346351109928090437342887856892500575470623560937788223708691457664611291252744900094853694653269417382821794255072395445058352942792918610837240943260706144934090157309638378644049050269918787133746549433777230658514446546894623185844531114766908570012132550763520354049536915540053995506203734166251957852450789587969351704557129045713817286582904493861865105145114700357073111818959487923731003711354445995910287374647603556480413502594770479249259124847276212297379657981688925454362078527791497352910668520521113490620638137264903470130181772028046921790547784392029206934584426570517030187801095324429411694299955615346344378039487161705373819857173349607792017007830201642153688711413622702531902620979130711629217306918474653976625735956217021570439547895632430372792521606990078191173904182613354309666347934462372382534787653255985784447976045841086136572096692458287028207181331991892068192313585564129818809805342395380009835780281924381096824388932289457234624544784203670899167618658558538483304962015320898047416272150077326149350344545579573284481786474405829893723514450158472105158390619083124550912464664951795006602016005862680228139152417407635995630763885002460483513764003172671203307112432307510457895151510154087002461187965065713169896089905443450738458974720261396836147491081524286531985266886215404000047074168976285642997499879187479723611065860673382530981853387942976839420367613734410370922970596354875585194879547405519991008251401829265143718461435989266594661824181261511959735385255688277161160422595993725677776504956772072976882957667548811386942683859242562952466462370603083564527135447987369943224537770279212128884806567742228808741804774472437227566001374628532861726179410363284303677925921939906485316074267335722010781804576438372838147843122688355289587893001868955087490366249390214675304168941761778718598430522415414478851625032498880238895746820530624969504107165277585098480005602367953628589551321868004046869135487368148925023068233226083772987128962277219891330732146694298632084129038239579027739834666434117110155838147744659506079032947458032901808542850807931146178635931049099478831474852951129971265674261873806722156205539177758677120499860420234537089300163365243733691781429680150721934720302218688762263577344240861590872342866341831469691181844658287920436502143168450016591239949955764326124479156233273934441052485949714371215372331174633744439017225533195661798894851991258785569364251647197164217931328505946344827920362855187445811591708689949030897379604949676194324425805956451902499776573465515871046516872755173446468370253371918912782651932717821636827365308510128773941813047094914854153405935788667717255790507380691092563831603206825004649737613762305569599423282288592841094969027455865007664814311440649124310101444773545617285061979252523826314215140896130281163490187849458877348038565834754699771450655364436308058050740622322852847536145087729408396741942166736709853389799003075942533186194331309001653096892730000058912189417563008958198254787528529989584536464241885215699987245131809314609845943280977502449300853892153544104652375260044427999253812206685170645199006940337039229836392166000906869882725551440805472792896677881982796289228784907146456753885875368078655592913904169870895542038877266267623275521629252316092659827304936090227077427226542674964041560800720843602596818335714499969231123412347098024602128144111770205612238506344912910542436313057055411156060065792483901082651372273977227162401822807903312286589976270794630965666399650177620432506298604425965352542250245739937807740318304485706588005414050779934479910656777553652170096058252519140020837394273310256028783086796618454465937410316680773752611206616427095175635157287899336835948680654029562149654738125257032410690056163749058694322546847727538905457325656484137709860928117463872636989878334620471961707903288127764675942697253473948448786170408388703542134584176478365728859129050933607825363713603694220544601615845566375102566839164707541431256626199948446907619195724286919045823397824860165783211566968005034682991367585133326920609095763121151661770177155000348868545283677540393640492875903248372387390070438825794269129872094959662480287573636472411589014335135917855427664040358739826620257558911897602891070488202973740900261209870518882652008185744009161183141647295528487531861012833096069330220062290681042028393906994632154670846766996941719150479967023337210892531417664248928186143300073048172495693665050884777447111600980800800643975144947958754765527347812091055892357184197480600155252171209830422707972808079133209878758435461100891529692994112048714331550286853839539724579627939264882102855717157991933613528535749803692442849846370263182207242247867342670764170329752168758902486519895236165915679792274913057255085601369842180942248149023282596486393322841669471917622168152753885451640288849815285555156170721207501663148101437971705600750974217317366072267851830952311308688108937320451468042474322089681598916690116358150177140989791634737975767472367733458753596264623603216776153846852043254114210340574415501934805726364444635795991396419118559653142360156394099080266301456766081132360170828165811188724613587090289731042995678043850056050572571152338602862418495584336913119657897121738538423317019527614881254476039410684742180028290622720809147980934115784773561663824335352790153740973794077218233450963636599573730973711345492961264599850132491171185189457996262670074949013153406333395110102207470468785360491371669064505971406839855510696178859585434268062149179729637269689582449290876112484670216159743170454041705374572458328552223482061923571648066004107351411335309371362719268772782441383659054913877499034545317201325763653776966836712971730698962533298446216458442112154699721120245660271926871491064633111573370390284601929388097263400258503228985166262762335687403986245152348076317628116732113476247552437857322139040463381475057884003765273587343487051065254890226091572201754647566535783130176579553198516708012042067812538883718316563682200257558837820113687916712922863545777356792615102648418557929999365813404555996011414357480660975822724578895135529277124202926476324143373471823039738639561856240602172052563341271488074524325822615902528493259719659429087926483357482416722133436444997479800863453842194032298162277277035243114319411292847193283591653738246904151593034478120358723897670630899198891814171117513840344652616078137785051402315684204335632276026174224563837146228572274137314552621341485724436926615333723049354545252357573687979483801293260565538514025355718499934372135279181973586741239587509196402010133942657485714535153796509247173933341509208546777208370922170560758131782860737123899858434951661999823718482977805049192172194293418616816855619154469717680730193500507707953478187241019582942093277059150368041888513022050651395925020903159495493481456013991208804967341436480271873731591293614856741696167328443082020058323825437715305455983347834167590919559284077346154048588043348037235705483122007006227888421257578365933128414973102770693194244734152658291875188568200496961012217075244693934970831485573162434732084409521332748686727945830878975937415272645653252604349592444223246763808329744183659617674971974936994370127660622684359222407330917871823491481256420176922468361662497985588539406758534546447720742266216125805496333431585822795525126471358267026942599219602731649310472821258815163317992369724958137952686201128649806644241048927301901098392599866964980530653340424122283739988737984885491355147616037056119385201176296645533528391712990887168719699615471394437515685147296190663093644438072158698350617051268404831930138309062075816396248255169403878807602469592303999173302651722898040202917865048494647881796636505724996616881411101615566672382954159157495361329628265124615618046081257005054654909531660734877562724895334523921370562577093892746621442168694291852091281741845178106844986404071215413670801169331525038789825553405719788216960870705521909598286551793812980337174439790021922702600106988262690178781014666438794139731628013921624775321266291534505845897684540119160406157153342008153247187442359627395954764598012438023676591292832194416930561566514702258816883792228000314743395233809865954126595385802137324708952462194369331127404590984118198357086341590545534486528404616704674087007530792985094285030355289265174111642792473414193648183408916051580541336875805452614341636213068418018011770788658619520742301112385537499251789079314160753468590259195190855441943022935358356080412136846838959920981879314614829832864322285688388454151054402687376774404615762130262126484655474807177030706530335380597158198790155116745471830340497141042056226581558209550889639936228632737817189242365759819279474314767855903792733346672298138631616191112170158465367852390250818875980898322907303977224588152826452246435714901820765618515688218171571013139646117812103748304950596811425626518553046424803878818182069097475725803824236561931851762835853807622058635437797006691636747705541024849826670818876895572837476728809801589386471792358558298805141097698059450633530295645333400726372719898813670747555809980293322024393838889183406835539972960736489527156084980493320002974786253785259178097250787212460595832726575652011035903362545996186419669691735931893798386305251777962391902944443501534554538605519643442521998159535315394710418242466417644177823625356497536334962549555665170456144368256508625270790671497246824345075051780844419272476359510745360957515916361161692585350399652347186508011752848760556012108175313891555992973225206141676807636116849024279454170126257219023706875599524228605821331901890546821738707004812634855439578710109769753856044769050995403138644738431839313026844903243890474428550130774881608238816313612115163860684400492687704645160127019355547471511291807437123004518898183788890718194031735857639475724185454553007385558408037200454831347805812449358292090630094666422857618362619376570032504241883710067235045624270876209153680011588079350849582914450815500752911161807113163687289754523115688286751614202555011352769094333004114185595806768822884951003988773696493010263839527468644247827905825264166670740388653917561364172286321522907668313324611594255798711082961771250918240609666179861751160329130217287161301435711973130400695158032084970172285255488395963632823593768856079572565061129821425671641055923941554721193309249921660822903028575901174364570642836160515205701605791464518834586371337394378350757497772254849442827850496565820634376053774123079072676691417755044761692397607470557172391412002423357383484203062843889851967206150995069641030744774640962131190971992342776497532340776114453171938783600174197628632718103603334030275968055243054419807918511269824987181248994698087558142403358398663348128771621625771348721461506112562993376735902222387231412312119058610072210688968484408309135223487750819178409183910431118725641939299481230121535570305892602752086093532878533945318341289222580899143460402953857487228023419275495366425591087790483305596114199817575443035658560461198227451985277617890722189687791308359300574839648140578940967830507095124651945186830135023366995159436683252840373720420836921564818966042213281889099344155472296721693275966518005936481301428182049253197188616823104259263541606589673882041232838507409433547984124829418656999319482692829195865097381464171731724693938372610624010898522340578330405611899102529006676684023797467472853842369931179639142806552051809558207910493622589452480868827688219381996585545115663943011071659237956095276874529051604525441137764056915720443610403955871133940455944830756938478548583899167375562380385426370620375734202145415439285904065425220384058444137286066418608686578119745654189235504326420750865695682280842828928933374036203774970979395679365730067517005300466599609271917292024409377666506545711456384590120860801739883860255998423326397029166985973731655860413527041413679989241695627182925497046358257850489683570471330921567288843744867760444336595707192181214498384450508435896428684566728701598183159157060440717261773115039286555061483734901139857700965850792796139013173678092625110323984792084807760827720205030939055214178793448067921088144276788121251680405715530767790595989359621429033408225091743736058536595845183582063965150585876584384418373005466188233067639582172587949128281866601438519239230517506287234623318438811885564839722661159267283294667007202889659486771349152449340936230072361586616456550956389825563522062190620990196950844529747650977834686656915359381037045665066096717048268620056832851053171774433883792230934086651578231210830240830523310934804629204473681033947798307710150945818476586220074895397931372240400986885463978716805705560799958687843866602496193010522190880609629019074846047094609802367288375523269292128027724728214080156084178939806601697580653827667508044489315972015386159603307251482595545383959804681380878635151425745467613897458681361068635671704159068739963191573786960367578108114152683101471099282893423175913686208692650673974161052950053065983027569014957597571144782233547652033803604158184281517949083135008698227507277617200033803304521707561859829535724372138150199657412842660163438448766094111936258933111674341227705115858742269009811337576146508062148967630669071233306051499173228044111838565097946169224433995532824329472319613351897620775321878118432032347084592915101242401719597525636162555720402832311931427690089449443282962851958639897570885547699833013558692784587558560321203989389494605870249549071537867271543877064648326416657231467238177699903313032585066484977204101403270450218188822390166373739115820066560713683798819467226287185764122637624053513043752807930461476086734718093861861111025455577844978125857754241979442624594528857205612804697377840717483603431341690490426258509678671079153190591356745006971504214441012193461455591869009403000556782484159419713302405645731000387907638336589496565524051242853139868193783521356690741778328290162430916572826595907755969186639713285391173499502147987626774865921077855443697971124331514274127798812138253385193398019757849486750293851202837125697483154738652406313707904106324207973314729065221230763242825650143188658909980471501043750371909218626822496566448626969877095500316833134253627914575971141530167541149945019447215131011789822228031060789954952652006159178998144640707116115810340711951863041219278814611900313692946160333214157339329203581852543204138200361249803855308528565178186980619403952333551782388929220047980290884132907646364696046616384068839139069307658175070012560519964710912273777346241028808903120927465273877072901939353950176649538189567047791518064022635952936502701515341335993129513408883143208580083311500165657662201501973996440136900259857683875872431526607191137171752841753769532855801852143993134398723849661193198453046948745647337059088712880951023859332136136162202654027427567659448040296959427445713461518686925864899963261648114252278825105879775660080720339706799943817574468157293995738808790470133270556065434262839011362920229189956845100166453901959872690865029466279818546513308265364197947341706486869995704646700899035942717608231558674741202415125345309015468214936786715409695751228129536843203837537394485991410630637478294543014620849776565745174866025702581228179723164529437734349702400412609924680773866659573342330627029034598801358361902306558348052030584575355093472838838853741176228702430570415947536753749366381542390415626026395124380276067933670713727225880173742779304690043554056709049723202673505695407808706302115085845892750937936503133583455025114016181278896129304255372963774914949382878896249787500776532616099297247502071679001635855832811445938081528711517841938059173400648572667348704006373884707316885588123140553423024657239080041780478943205062265930995757398087726889649514912387136146225468577505282412443965527076333104553086936794357689694130261060631504560144780673610940153029798042002353838771664887325517185730547819971280740447354907552235837852527127182866785388156456489529437797051340978617289879132538497319967172325970877693330797742038746748132542685921502151949662667721700599217775111420789385515409053403727861618818635506233795490551486858342404839406340034763836711818948086707570204380389483403518799749345391513427879318532177019537647631211799514705788614506710547315322045094175463916280512968395914455596088422340655672220406170023019349553884494901710768644711249085005101934873845691824364832712605488070251575792815631558164322135417058269074874927961269007212701633288183441648583211405297528851079978037063465407230901394166167052091360683451290463904387981267323434029518666871213601005409985793513637588546915711673639739517551992498003230431001150417069942531072179582416236181810724214769085951323617196021390182687193533112008693376326248123488000893511152179968326423679406373054879815012989567426037809766015139000071933420813222476247184201336221930766864953887355781864573676555447263873928897144989897220754245028052052759415523379011909404062462079260817481885814062565957519529899612832756429956715981436055743608954239743304959728729068465537859413292359258808730874178074216004850120927143780404585787879607843132630238497717172044670880389822017671737391577507674552923257234956777223867669345200517754512020291495939482297391586515086499515921240585160584406098385838483473535737897193297509394155907983491935215832554550039463889098750891580296441909124618708858739990670277557610999399917459217554594299384004005947778334212031894965275041042857699786520775122331957248364820067069964235514961611802911084411656761663825438961086277382144138184964508096035148389774539546752029680459288147771171618734452387569933622668617461114035739729650449203904647928196784050681358295276962101916758454514105702359570141217161035183537556214790919802573718857217004271486966644720684134637405196356900884636409926966190684598421423274074604145843407226241635007846320235365835586126731612863419085184554058391068164519054179117430928005969627799339726893556966714192249735622462556135158464683584990341830237871368835022712933378670464396469405703037403740251205841051176972654890598787322400359874163459990240686710995776547529087425210276063489925336906898173675478992335975085853884186766923844711055569894921820704180506566029636702367831610228824155143063786775051001169850215665236603775903458774619776145967306254651049949556306627620569444265262236577143780234454903599728815292619461389644486778548590200148672569447565098117381172411548937293747191286866834831952815359521522105238044249395089341878057068735330505109573000114409754987760601015329060189929045008912963759202374062316751653376517185072287058243129044109990044629938899342401681462599225231141500405755628025643511872942850369856252676439088396257994240588241603065602550300563585229711474758005006944745824023191814262268752460801853297411613552835258546794576087936653196470961089883174465289053173191945674033234576914272466331294093388243704168376086405754811425460848335971089557312201887856723446335578236871133438623444700370026130003561207235668737713440617560929619182751373326973730145802693720085760415482961004643875295012458863201628551660930274485101099647490878510841277551478998882148317689040440670237793102079040613666974475194896445904534634446393926835997530090759309655277963728075517458605334701436031948710992044711080985361190371830386602614370182345011165187102803553474040341334089484068823666206957636992293107196074705316624406577371250343599989602626083574123299239161326944969788211767974561923675718825359847994298779261677987220664845310899991114997241481317299994971466019687942632911993924082714117461087623957343125295624924100793107554772339104745762173352726562998231494413076567787317811545685268527099702595860751838529412258813565477276539645716593263739670241252436369684506714124297263903057218816977060018185263209494178314088597921613747310259843714059779923232525692413372072632687285168366552346504286001836221106188431985411519019028592547226500585211691379307485511961561317730551363006453190988091490128585402528882167249413481382216069556018842827580368342754598389788774339482276704419903406896736336464622844496791415662084412625475785350129785859607605814226676586147161661085767308847103517231655935106878913892562048402615807504276026147616125379522091312453280696047704144800209089057616626630691711493744964003526449905214901920749621618548268438657299885279283798475408044613865815319304462273271929160726094480573808130055944705949207653928120002453893771794451397045999417179690701154690737045104704524308788735333845213416816006986601147235023787188326945862370261673678009642489003306158156643072216148015846844046896443717581046336385941627550054840779114856977293288036392980137847129326540066542409761889885739670389690857980186882944342851366688530198900856241158654077465285942390122670181695259744332171922749295497856646128412174936741043648938375690585152675282108087023976346350312507037903778310480490046786665505060349182787338497837396491202299502344880432395431767575928011775604666015385457555330866550528035469344241366548903605740847770019968098936752211364615561266866159535690418158979149448545161324244893276870927761333754534986837256826926254752794026129656257916617736907029507058182145242944240178928775163682649544930678352838580108866758433399690715606862121620912434543766714319841028351281722069176853994603773710954554960814400971386604192683823549018927464428704387942364983483902503860812227672968608777377238883049614971425338282926608629067510960039209875970004869153341225651319214189206572162373543490940068852321668439599315753928509396643869352087394723378826504748545902041117312918353322703422133899898142731582837312039762942983392483207197373306250591130416133198041160915192804125494564431960230686078460496337336646551591259473088074176451477341734296458345833987894716227052068106754298714727582577645003197531135658700253172096003882537185741904898546988645671485700269103755534761739425005737211271719197251846669679150087060728886788373849537255954493095809487320020848164311653135944505295130636893966137507005779647906318591940122529418103850022499832737823854726275934143675925805511393698237220468734696247067658585080843729050366940096331250895058761828917127586646033559862543462851103709455406035726044477093123613434476363316404424304522267491508292888546323172224792523357086351926302384647602571399811305223019805109524408085246219096070788377450980297849269395100588380289234324745279954807260967103929519500319646205102252729124349091606723506293425177572281448063600105362595187724216288899432602501448459956637184745322074337246104916091319497337454371535239619494281022768813683337147999675344234171432868491941502897267901888518227839708531372876349851543768236290574918082403489176708035243480765997676444196748233331656418813413001116355618047294612867085000606547293440139120711300940878390012952796595380497053013165678845615917031158848003867521266634833520993332887895801873629637250986687181579014609228762969859699493510923924650518930628036435597377905612733090120858078049091528265981066325289193849767064941796760132158064955023791179975661482183026795818744741522514368631514645564785831466323995592547795261917260054795406209431704121913774827535677120393203951110781481644331588905250463959506897493046538804523386003974980809870218417632981107553453632878376197566219077208046709284504721441006034924034265412369709121682029853920702830525783193339934228944529448443703333100344461801741680741962367010018195439191268698989737105987096470447509105611564637300641558224867979548390959426693592207018003066263505520685335589458331001191071737312140979663743972738332101734706170149573303534003460916814137841147511310290305614426286559885107702882536080861765087989167840355432561838880400315515215251420042104331309551668196313308998285220318905259695863077202473071305293941391800022744924924819768024920318148882060189103835992933889165940332311843316564533128790255314477731261583511219514126363582119941742094348497096472271321284560610726562459551563854565404303556584296106069785402785944126316487395796862618238034513888990462119403866438711575089708697332357785176263130852311915053474171836920608521562658481897133759522347044483839158923395531576215173001612290745676853504389296015492419232751663427799306942693543808085995818870349572497735867237331752845098975233620952462287210366243637634101417187878466682398848862120927732530486422436133108895542537140094527614689163420210018928417873862474388705010059729043111850873538423513022792728224124869649332800492925403044176470449506700536001413176731274502556788416755146005019177962872542079427687265236064120023202325913790489909720897809889497357682623697979598022667262592821307086589263270497245498179511392382375676902607403299705561756821459254204216275624241796525804543975358471297564517877247131224901212225611981171988812017215019816965277930470214843309406160132908281772589041324221524948438187465379499440234568025265275557293076466019734639223668345041586572722414482497149519295641569378565933168217620879425207657308732896554108532534116413143307414338178731975082847994180307536313078781552946484605413568219037709328013367528194542871702743573865956626000516238976392047817702647115748585736866197386109500053313986903073713196931365994553619945626954079322676734388794664791549845762161085443864662917215966082520425064536374305461425015120444556851993871610315464868497612938602116687445232622288522176889533096643568417206842851793989831622855636052228622657907000125309628024540463485787539208066025411649026304621920585749176581016443067212322877227503277861436086565444477773992881636450549703060153299088085364615714325390852474772354863344688534780379690849315069866493785397357700127971064849719334975941922923697607458782238073814765364898773604630782363836709247642377982734733412298746578324019411866911689692460273645895547499326284020959219762777591699929511961108528080634322618947990252765236140890362970851681932305194949118866699867301850079654665661484373086224666024163574684883894815878063524281592381519637972294169379504158780963403054721733469360264012031509859514701393289288002378800772762132395128078734900996285337496887222789097520025162779826202418564848446946662079815374824288171708277753867091841203118948470745922959156669903370572947701063193319122015893615728023341683072909411230712997363960420103334803003829811483734131507331655283059155671163195854436595473123237149334665828772758504297967376298587143568989292638148120969620625651311648112727530248193420736252667102769654970813573348310260413836764488348566861567548137749804435858202205055946355353961397882029857939554705311176926909342701127249818263943463391081017349037871285663344897884112520924053715477490383759125474735079283308770314232813806593221005325412823217703113022323449107189147392111690741266756178390964905987035629529256691725766468317737402971646911803729693849241144802366481310892982394674766871120147764239433242143859455038787138476594627721491542955935638301082838167310437636820988983562585168184218474034384564268565927737906198889923717336261346264053099442452934230173086511336769122525376347408606556404476095546858602409014394963248468197167077795215722760658043687025756295172688703971228935292666417298603567226995941436995199524580082612703869135432725169942200313558577952562348686081768010472008771328367255207573697290414704085826326708915423119907404840385081911785558931972733622792047197828834484871217181988120860874126684872461379281376182569330091671063771655303124116649916778257419879905294053351880702030594815122868665668330784937057696835825749824197007571561903636900055035934286530834543978373751045719871398569264028397430300487949021998957949121407591273536098028034583850888531812848226212643343693044834078346111731679885790704122562264237246850958712402213578828221709362095947883536633118314236992592899434286521295950079854975933284064406069834595596303775974250247623613261311272392986105606890408060124646758663073573799098736901402075649571781243817828202214485485117651286084437897683054973516378027414142651165297708605197523369101104711638479194969790275983173885096807377443061384165802587563188069869449089967243786646188344452396950145939508016642281291439598994087997888150802814320876490495273416401317706347718496036348727372998384866428174393088658283793287121807678107864147626637091936036217736759832172751440981019308831248994168534600620705864297194673254855831523885544821210342440720436624993543437112781953486473608231441535235797547943747064909237822463709109012450782860116293753757442300611214941409562189580978644077995880695674850754708586173390682626619453119101795990852179904329141343938526083814149888898776207818947392556360742982164685332903540172510779903863728854476390478054696021311658488133066056867219021041818355199429009809000562744011942762937822304368402352929053971921920081314553688262230091516366421801708235392013488001620707841435043266518650373334966401476137874318824605330855379576314351695265337224595058511148946402544429043887330471193635462878646940872964601730973628619537151741634144807993849113158992191128343452595877955581717307264317971615629669341604026317815721495372169090526754186012865922026219712443813324898301121788202563463606423169145582224912007535434486387169045268707210488625458609229069071291381190472982016823419275009249696580906837720102004514337552225671211468248933787565113797273461496033563903110159774048014834568631860378334548624904874710720001262916113497346342938077324018845952585405834950961779996993468053777932787977917073829530967417992973282167600208716032558897597512416243126576476272223414593672322015394220583656161246828707146214579311684239028045184224147604485871921857565190611906886227119536186597227418286152126701996735602006378329537058044138015443097367378107734480582945758175674038495649759248146204213033971618450526451540991918456508967519752744976592283158697925573339826231788037052739962533926891472411425822776808657830383959252142510507107536851428643840376176628582490356984083606219391702530900172862015760347901201979227222152397389986426606889972669135044873846860070202466969669035695744569256679569530979489569006063859135386713938341296811712269472123860790353883518677260630355385554246601351150034925285241761786359752609963289255980277250614830774252320434887199656954663897589533046618119452216051125536559266614071928138239682770485712427869903952201978912967129987724500355208869250776570668895760794162691138839770315885760237943632403589015992852658966074308038507112357622405930384189267195472179494874006187312012549106865539611318275010728909854694900109069164164152029915400411819529614113541110419643902725411996376773295593718780545266156419213788870472575753651656701079984451303820216137391023578716677382694063101745665076825308701472276734072503831905961876299951352114685271116203167065503240170128912383231406184624489485079011697744798554511811966749288144209824271283196530021394616700810712690620762105119093588949371037690709701265511391045152768859412794094688138286032882569103067289428906039645155769791551372687107094686860161318549121354921265543640720523911202702317466858393671251609276774076829938700701279814125210035841267306106962859662976740608980335634576988399597389099584686892937897143203377802204446894449784128474544953898272864625671793032380710853529530544850817618899447597679703007317390725492087196561579247087510151718838096619525542765225704582557070833170960132656065103744596876370254518207653199762462911935688652785390248984479308966101670834458140201995965432889797689509357274511588391991601270511862550416783382908723165613442711348202686276930848880552709080671762162449874932752177784370098903847569780607320402368417288442281892860841377891256859330465236423262603333650824598126717615694947185762835282462775032008222822873948036198895964052380832436181196996179635810974680570475419804172880137586484740267671192439960338418974609833412505954210189352507556151033449418119820238728373412141109506139904786490601333733589262555335071774549502064387269261036345021800716517902740868589914904207137598522950236915150469204068753661019784826185234904419009226297316923710634853628200092974970233921172814658130162279592877951748097177817022915297128347834617027286656562115122389302267844209791147832820669568353801991434203596016808729436979295033135833562269524658329291837953995996990826410970139970226726297871084895113184420922037590290966075782875897241010949228974089828506303125498596391544862770224320675640824170032641452443828300438446947010458338191404157452358254141552382061717378076267732917555205579230131104978263048248669266156104173329080187494032609385175175844398260951731105417983293685017850095407150092831504656165962990801090898829151075575376176834441543503568116907397438614085701649857198880300389486845442070078362925074838517556059551132526740979135348197032549784369558657795056938494041773651193156451810530595970819309412245051533425413721800631675329589453954675639630587817004159259587562747617569199432229355542341667094658172124833692095677514311007730849807866427738164921645883206414868023448638901587150398362851032864351650892321785928279712078256114114226084997241394458033032328607157780394113564791311768874595481654031795552984098214792727456447578217149427766999095663843905710810605163456359116158276536645866234731709189979275429496297054745083762569942690677843442324235418464304449733195956491438437295804279873319962491984032152684997725470063053858659869610385158794633822126395056078399977859670308557861154221209212676658419404293522068015311635493481251835752241537917013536115097851009094991488558705637184458017550100840100436505464103684603100812848428345093136771470205663468163431816961395104722283875192399844927326704140937470108441833108892130739559373191831386347970499263606854577757297712153029026929831998198751265019558807159421193162889093939418481446049183624648816943168195290680675669803613841625742495561562530854340910930324068807682251569617016752237251984530246398229719009353513015475025250777257054211129217690494292714590175253520287202755538094669748801174660403050988480569564869097917393556648308952976051222141849559944309883293314300160025231004917254714826215212937873426284192170885652563284798836679981998359378951053723752694412346202518991027146869770867623152049549057214249481744219075610814630693142489947235178000238735988311507497040441227275398239321055043383713329419759188192086092953959574068362673884209182232844110417243989363352030402503082337949342495120816309536636714703438817580645654199969461208732629244859172875507635264547516034724779076082975080585055200622298322310126082253089114064465172797614193593814153559161795197159667120236375105575518398531566388787089290976291254103994226189842720460410103281101250022661946494620541475569581703227391332575099751171342873497795092081463747396328569575485088316368188370470896023509960887610427142754554757301541819456977160255475497421147226423584233093467057525335434654846590032403683624168684570202506625131014810883668580298494178328429679709908134796177436923627279310404813087826217853148849412263775873838345426072547556920160416922808111865538167239547004610369563925102653281254388871754173129988927981794777513627494847325361770716393444017105202947562477003981273219010942671384254903599720949105856029031624895658080550079136758404909836512585748503431335673523071390534364355491011022594974818072022878465486602701658487428237507562694823715533984540693309826799397736040996301234389095982927963412918132549310272743813554161678668837046273359819790341985446796017358505598184072106329823174369361933928779560812920376931784409811922015442276606296075088180781232459271058705023251285998014294500269793819914717191666822728708523984664734744460606180141564771427367916382893819650786884536345193072525509598061930956970450128801393672226683047003928334229046221198648941701875842601579848610604680731643967033986669122841548997349622815560938680034187777271670293090083360731751307858710760651503075856101322019227229521062424956351399241669312061971983410182058914682478754437443980732899312625973084960622105664572653677353557042656142782259393298420636717564942661375042073105590289837015090947222765277958190255530516420021957655379938797792168440689626435427570304071075122390954842665732589720504076009671050025174227022959519642974633950152386566207724801658492562414580758008297896816960598251959551632612904252102945747380071266580977845466664355099843811893721164670045841800735428745946789401194926449034525992432909867468047236050061748357595090958930432154059330608202298908680688549193284599533036208465086414602733030577322982238666688859692164374202740672804424316406261290655675065076297846387534843153417686384396152590441733422138715864517909571184323929333008909529427066698858041429065687781818153418533661505928158383751576273774176232821898641730237074873000506232799803159406353037507107554575515420646096975752158390393475764502547475539737608103368872864499047618647002019206200403860350617387052043290032101412783322639117306089006171841834120980540935003464789936395906852395459589952294200696810033081278451794509059674426216684084331824854139695415526218392926278785361822356090578845565160703307600366612389176963672501056293513802545520252109053255929041404633526309880213354352783041296341896240451045856999055997415897846424939041064031789710987907296588758343052146261961502382263071374663187307700665777008078347334624681409082282719964995733999224136716930868116949656566339781447396826852584085135808758090602089895831312376634824395488983606972899744844302834181503043605341029489733602814011588597982247816763659597813668509728788158300327588674935562688691350190199646991110648386971303902484415225789879400024510730920600178219535030800075120948671277757173298488828998399703903810447490110724870752346493702390999556553045010424876200509691545915200486833532528345524826632740867591635425928199801015344210889902318292805441120280197357735650374404758523893209450985140152279100328796949638145848794183989437402432405027530020052443680114830841100948059051924584917833060621217897999397795303750987720586770689423167569846058367302755355765314361638421153782113989616075984643129844321955251239088444411767051176048487627229696083318336553451472876969477577997802833098222435041604615593946105029068493264779942827044838639140322347023579914110148123746745609962132373647262398394152169696684520257467902835368740565640199414299808135105602069741263345200561321605567171541582344983559934533729898423231169199161955300149239727152897013742652622428351665359218955012967228701424182517003727004777202974203573595991237226699350151560287792920639728162034886480593698808078477513899471230914713324746863939538083298358501559448378337200145454609041995372035658806752371134083217805170674896601331829601890066245246394188174298791738370742593312992499876096249066528952949664148297531143055030600846614166871723356316747415496666572150279988557463234039322325497122732155669276341709124164603104651880138000441336401765616966560563261013025663628065778383939394969697774718182440058614433966231097699613734846523903287151137001008635905807238555343747444911821619233744027464073404176719017508532682009997866622160513832073622027395381816246454287617035904293196133538433946042200103430658165000050465080561893715369462576175108051414077341298644235699266767640561296935000852703299601271513859843003274696455565777036674496763182195439815049381359325730843100874003762208392509678693785377708952480429565214179710197453607579042394616277324860901200481536089181150645193916760068540509437738368001318346687469715302133745991047622813917258615225555395787760156819091374106332425714967289393827648334958465834572005341523188214066938186349011896709194456916514216623456807236928856530805372528319136955676550594144552614090370122294657233922032637624586301284977684575279142201762999724734661591289797840816602398923366310870786247685305299361905419677618216720094844404509178503708319274525584085063762461436398084647623505749218309142597751120836651979811974890590726612552568145522528722396171273615423198563525475727635331761805733059708191469878830204404973981588980210510783147221950919288842914078887909696186915950076534404711586080474349161046296155674976619412378119817479632546892990423151997548556719804913262833053102741665420668889676860258765649822243993572925004148925775236473877653625157467177289761076214545359899426697458504998251938459294819201380794104507190943241447288697181292083228256371187621660367280057857396710772620911926648179351807952834602737692817523596144607482511204587496176515495027067457498349234595984443054206106567796073703017493820739131929030869366215119466360920021998492949958017976217166265369945496407146326898685948312861419162147090866784832097014261824172446216321547572944477597766029325457470329068848346999008253274202115175078038110156278365268457138489154627346139643373800999606553956850190306814795290819555318074323613434476554046011124097961951483311159124000632900614584406772531653073081644300230128344520818848977783888114063450928975534639768431479572832032699777601652870060264569117879130750709160050644908468825650597041086168846144290567445150203905490206771263279055020959838101448583419229910896495533897974200113793675775342680603161667686944944132819943579107645133374350266808048312969562099866144371569024733776538215888491933181029494384124308635404521850317500644091787971706215344958355168355075863472628789373350010310198398990415093785745938102793908745570734846522203426747949220851139243169349733109367229387320693589509183372121211469572206559059131408536318342335764572788629688156647737835735772061027440767436509967826912071188825173580211701348974121689663043153832477418440184251878044459400117789661070821666530565098548115579020936456421716545965113143530537954382677695647669307567208399708392727567224667491449708388065698697298862561536229377991136115669049236414875198737892503364013093498049991553446738095474664690796163962994366372026520137689573785735876030267055735988717118889441338050916294003716670816865760644982236660412576291108621893582113319921054206627110523618197825863913979628660808473661470084209056952750338877870591541247937046517396658571977202139327583792539017737879400877816053533169218873144060663377536968777404682724528031163973980567126627242824930577200195674352031787416087244236788605127019684090117973243721104010142582853288090601045721459001738826955175640907799531878185881209874433342263735919013299179815047902924374978042281972640045148572000150954430159751518038926159284122252213170993286902704927481405436379568926061811121340525056475525663522823787265365839328344736884830703419274196437267745160397942344537884041386336319011645344295718138648119842102622746144535614946851482903097162524418660333183728770945605762355866470226162516685679525270357677958656363166161106938939503811117309050030474988379715002752273772283004746633041157546705251489888417598576586281373614132813048704834079505422862232424406410495907599703077813930585960710332944742946712957346428297024278971775168397028123263321428476226865238297549258987609429163858191396047149257220042951156119182838609582375641028599859118001909730813925121980543854051755375353463080916040696855896765601069113934473734344401247873153402917558094637443448591964809060264040612211192526640659526055540773080339331461359819971297846381457707430698079192468152879847719898592884110574028245784216564084090328701131232802366757648100070745444383128425377899617688204733516863209996464444119216276641706485757701149900579520276485349066079429977295414373316434084140211436700958249851913877777594941786371694312656189020149585126235611054772700961265536373263452716129681883726151486921637863766441821554260691545092907871297153819908508321794732755969253757138524457564127136210657345458954946393517691853853067791283037207221456145198575954653596671071208353763616025039746928741424654565239528086503463266153995839239357606565691163130102436555406369132298298461790441591398237227719479956845982990353044902483234837850030157810887397563855666006035829891301470828589172404241371231762060893182526524244039399867933786829847120616055762634614317345289420208374503600566038640880941068520538180988600467994653781868521375290413977489799421216720698159048541661937734668554111396786933198540100329115064740569973371505388442027069418518401130991159873838611652998348026671674439710781192573954270272896735564941600429211456404402124886706248502255221833510253989209829447911889079686558361806444264468478471570569799373415923377328335378911055137179498374453595935713692403556570560406976130220491016217875103243995437882936414441489872263566950324684064664284713536102005247956462545867939763964161088987111212500408173104220995258174012603447445786454444059896260121055564256204758399573085861381831220494233080558387234934668438785888638730775342604049445079298966753704439488385700119140545445210257050718557426257660656191126366499549615485284811253095212044624766753901560815006324625393787281600188492398210119112648477645545492596169936441774859547101673611159616975794283031985638954136643601977000328334138198404878206484471494281450052230983788492738860053819959351023181152187218181235427629529861416888272406784508015833271050867231704189672999761485520949988232505407690086418438991019209314367429903816101503155139629050057764754531192606318304322785878624897102685342886737427793955052821128090628103989910876099926555971096412868661081535042373264989901726635488371671235131401641840239093186837377220791276263986204454373814242547950183725157446882841201645564897176448113271829605752118154384011851617009559044193870704070916921899129728970372346693894758278743852135908791704922958917550043289228526455190828884721306457784041622580063661541435775866962194163196245909314688914047770434435738253515966344906943198538859273324928299130084011733295439394689195396759782740093581331911093290503456520998944794058492644333200755193507799364943355136224642663115829474961012296617010669896703134042488653033633599668816865518058269075866249773452423530197239894426380162227841536624029433011453631906828563179752475914582389946696541279056019672943830398804427615615669552874915267921184036705753816534770074372766061966664802147669693570752230314022150384452545410640553283848904673866547066454967970510945439504659015516233190747427912880618160597898846216620519915393730963713043924988402958471955317822203295770264540159086414589597862466226582696926844963222352526093130996102251502386842436380835141312557946416490082686404463945156153306488897915302483098672898532261137056600749056683592335472319121792469768651627656853334591887081911284807513067831559225812321689062167699630733935384172894311479319077447316252397593413068431600598447421049740939897990283348959168852803450339995095299318997719284166001775723357850887368652556883730602195557021099949011154197586398144771724082063881783439287245620698975288221535527172276845788813308446694010962300786151993014056306758587936807338694902722427485402067685459360058784029854976956740070911206845391330368165520342487504947995955527982756259724560227547005904559794844532024714966744895864288123677480707458623075306204697651869761783536947602309323731453855895108960289226027023463170598289032445524246216442756901643975432069410150737318774441617282280555165696427680943978372114495199627078968833159131227226680851581403437570204067640217391086533336371913855295109168865031623401374261086575420627352104995325706576390143749662996860389252992807417203470298948491986199789279942066367396228901827331280593794823428870417728403076587832662253729853823348050411268751273144784174142726158426926640495980148986014433602600402707056880972040214132112178041516764143970502119948246371183926539559598091677289794794645775698587991343044400695218306666594155059920899906375698728709958045843866245851154682037433697829617034852363757906903231329982084721363848625280193801230193501507387198305522178576112089747152724029772035124491436843955955186086983126163210843773187440765260768538512849884517165953688905242905728365372818819360783260448826826439176274582624831837615678305622016864807787280938949884326101588871060664882442340399495855388916424119447116475584746394099643186731579009761553679093593888817069701011126335445371896850376551196759128256051042840076887290424405968995377857777059616226765195695133994594573317316167576058160223093042829661444507950908706079673636756389683199027855154262850757189146081667071569719402565144584781603731007011576323828602467770057824309748133143147987206303579311091404323707843017684841169455923746208061662942455926968346264652794160412976321537125336928831487633464626555636343342230248336021853991330231762049241423480106474318577603409377323851507167382226855415735627720585487588511428863300527978125797488437993954782077294785458281014437129856658976188632682316423237976383233667297003870998938995673597067240821735675237604934267699462748189972991879392567669347352227699666512683295159040255329175656905050102288351638541437913103192251456265973633309307630305185804679939958716465136079917584704621869440437056055097238091969529627292454564231670997177624053929824263637655736645717763996610741576019982515406856165930810494343382273366313690331441245522437329543721628810942552876743535536103673788293774997436903523387036677060625459010931644628141330837648205534728490690147920100105270304198271132772474539989575353488469020638779294645647959301070776823029134026979563657022562189514663158240643217781165930814964604035916974499890277223373444325866942418816874188493791362487592741525492441801886189556814053322693353303094951908763043638303690876393086969340076597415966453432963906512563116478861999014065773644727541665698791652180512729205300733892212694547659826068583761230570869759381631004849680054219012063437595262392822720972163211800641779030746580359492300931629751722827233448161577270732913111760503867463017050896074322113136768149166261683801242501784611463001181927754569368950001796130835450898219632438253689156835841178589787530744483086512914878961607422144724355467701254644489936395956613534528070194960803222804292235472463851596168743731942394326016629222336347735173506044754217644791300762314268515048320821087831250483644373246732493199697408025218819416850160200339032945822040077216654916098060852923486731251956614512038991574382527581916939890294247003364443250346858663116060438769960701345873891394694061509582596890529425858923373149979870778755617347023466181400324213501101953747517783316372528625684826038734036066729486734244949514786599156280294018471893070199610298030286166511519403670401122626733157134175276508963142715561311488011684506847073752259641086036784110166295383648367027798171284516076485829597772989588877303618109035348911231417081731053581618521432529574240414866857623255753997368127624833127260061064297960838888625737217372695305479111220497288651065793432419452728388114047692888510861996971209225817182607530903889069829457306511608476330645578331339366311327367378121828197384824113812816241170969553805213145800607114644526638129743128213957954009200460747836161717964799834810428390487278778087602628822644525418623100626013251366357375130336675936442625035254987531212602908409548745434895714724230975978600322374430672658075973658912550830421734027657089263387331261950616910331068401839807612410804050174929047881945576782141099112308516305417642149367068456504576995282247645836808786319041943837637216354108215852085677463009406841420104155279402934169800311700521743919254866259952944213686487918218530832939583463643368318083163152480836436265406702549014290186578131182962495476329010166090177497750349327431522749280206515095135599353507367027113692227916951413500974937049439862657388174206093905816263805798567881227957218250630247982120310755961587466017246522703573238233400282730550945934500340357284932179959702593667597829892401338124102904124351069640118043059412239266773077670300462937826434023404734025354249175577315660998009689899430248356378138224312627315152397301118951047854238125010673252915203930623705755992180215852434400416888436183655333258316383056944958140499907647505282210006513931173440349712840095029624053065321852740804609486846912219632027435618140494106409312512580158953806985208244532335688040410316024847368324623526104307282798055176203511169714622091011834619732979887829961875753052414478585065751211314560580174290683363964665762434413951805168037701715873999024834714451767784457914702401247878567368273454188713664853678238054940106154864270230999015004179227899938179474218859066638832014991828643852453201987489633142009551318123345941133080933042534877575893069543224326140032294205043828773097849645770908615259477561115615384634496729359030796238449035062585652537992606057049003838864941433351650082881624615239200440109146564337795457231586955833923328215135005864760567288298821016822825682283215344902916625040242565890351208094348850610315369083192336464749995570100642830397930119561053703461050576691179799365258978838097604361722124000497448664011379250680294923117126636338603383942891482289232254740310404002767311124926518610742557686871994235089147774761757610542980145877648977532535270264342708792303654413380081532006531125675325268683697826081878902644664666136580998788370492570004899037118785840962385915720525219814175823634451654001451259247995492954183345495967601595579656495780340225274138587129669589963385926333672663869964737216293013305997854231144875062603587183324405049076960168861478510608800777009921041148147223380802969096790412945676559219753955872433040303583523819025435013058596413508502097127427717741541161671848890009042784706977438605478025091753897111715868960085276608962790356215055177013225935803825404513349679221627392760789205635718618650423264609318342590710226221825447993759704774221371946571279501407116750921988539653839437779707077120705188316813300289958668262608443980489413712584509818655716205120104862603018285140098546118825404785514171637642258723121907194412204759682585100262314118825931468668790565431213295414555387455347800382797714131797820914580507387532712571348145041952145015796536006916418322390588887508471747053998119870961883119292147501973287077741370531786309004778006861903452305878555562321940706932495532390733306429101249396329824222187264713026816961285228810031418045990131948652683477692626595321541184827044970985399142986316908394592080829208862026377127164682683633365237896994298688830712251890494378603138821167032097063504849792550328643255735475020873748909803810015254897673511264042471543679629097738119209589220908965757782387995358580922031633534650722822007748881574038504925129896800976214933159499863602196436252321607559453296103870628309887043865482081229556121113960524085704873788558657090497916277395798648930708693780029669994926237645622001068142313762361386503830033870282142829547114744192134964551651883211412942798135202908312276048259129016010984133476070900311888384248677547778714499962356445836736114439446634430060535926014052661506220476984231701379182799907432819947230827728372595845959643313474141373035258008453590097949699042322192091258321246973524616200913645821087893190569303051338020577059442010542522167526238980296382629599074651617657453404938096746857433610328844913087283888789434414768918395476759067743890306812996649647991017972444364103070633085117279147414340204579046292318173195785353934839074585612242717150760492621481502246966877774645922899848858756951282229300017508095841227187105054826080884542538491082099365223048107725735072630961084812612081210571378520360513501017973831301602058689118535546237656795446093340019969295670149881282946424465959926882271019650866670575887195470030709738251525600696752403588442941334223092152212152736169160712154064518226888079113639776952800523828085450922177952168806146741880402464154064021479318267340949277036247682739579560131282003447730713985117429878329031609016821514138444635118070950922753558887191419428161758287548984804898061452952557799883463255783209988056793984015662272794908318937025031951226611240232326840746683545713939761663252812921178914860916749118266017764566813391264833889249163870805386699135769831360944176852317257743308324275980758127094223973617087430103675149836437967193955511841912463785602486305052350920426406637122694843570165450805051505058821867480544879083338126091530072234036893458018880310472385258687814809587324384548749334439811491009913002950402690424164258964843472547618000094952807182212494066863582535563445928585316843167192988686017150292274618241579065215213193388688809135304918929792952083700079651668297116634580209433211035375115470533664911638744274493931207341421694539507259736903628356029753724694567520621899859712560148850387364377988372858693182265240763739897348054395150273803259369751148249909900259263276953083911243045997998742284698835049312968857762352211551563012797965107674892026357924795541572284395774938006475945682582936593905160405116149340086413655015978615265224858711565202070890125834793830217092984797755036388305470078344585772795038334300161997451444018673022969153908211174890654689296742111409304206211654322152693011028105699024280255548435005093302358601848350090459430869412638616611753999002208968824966708525459963331597137704493047058772269979461182741490849030636169309128837773132793331476440091368102038922553819384707618241937465321781417255332266287850890614730840095485168473578842195900760062634816463668867655746404080009356314690088358117566475621268569123765913788151160038304613696172957889560529322029604552151753893492564671138614659081321328639707218393367351822037018057570988258515911811526513535250024057281267953662289221434934261304439009120626614706881643917395837613927197395069992232651519551184363627781598676847496327056463419176099240773664082510660194730382006707220692044836586218520161423156096868630715871737144407793793151026384650792564662919825901883745447009296513820887410136308136718078270593228984069388938410255060353351144900912761741872672990911190509853180972441835772429707772454795700283343887769936579408518117500586698633552671951191827090581798502428407968769391067329944917620036001721945169510728091512974082832234822791473679062183690437237406354507957093411269967193658772779963821885423776583371121338553088408830739497862987436870131684960561276900762124040030127702648534717071159268318052671505106988489770426820790513239791504453132886999447562823988927655843712368559587482623820643768566283413169806389882414812507002800470514168049210006641525491054718486421984921926028545956192936254342250910453852615492252089340038231081546469750173063397128994559637920461981231478309500193397123135104334608537885820739330279406982647619835473510898853103951928495338283968674899427497677168729442499748221780100821226789894423850504136519500934982534139724036013399811504355548923467876104324141176598828387176995543996745422407943826828175104917958128775090488890418177773043188316910502626685066735723044316691905148436902328910078896285952593690720985973782268462906263261551459546531202548387099326720727209028597227546298459717822955369364344721202234926333627366930012787182470337554137583296572667742916431154886821715772036648231608175708270144431578411014695981553343024340454716471593035308698287113026643574708521727362915093131729635583567899371034033853966431474820535555657408536642849094264475102887688114724185962104952256021330601016127668209972427939685396649313781660368133895365735910987154223356847144024921499091143335881474537354635223667913268838473126810044255737239392071142031447440631553071181126689448072956766209014827069805770403793255602125339618450596966212772782691055640706287818847857537202467795426615776578132456666139216105361653771332003570426159294119705270334929635608361556215178185584588641741634635759731729129986722179831273013683525836581008413418516062053831510421582822701812342578999599085669110440186798378617989790515454148618365058790941974128266106275174685396264987949523930487859264174348508065147876301542175552629104984240856024612504940196826460149284532363604507195049941103696768229861956822782872470571496071204915705876669268003883202129432559155867212169698082686930671660512222009677725887020940293022854290430186767497696144249550066945024695472783988177267231424902501501799134330983123386716750979656672858270826874071914184711319904754692800202377999433829463049868414600045722189797563741457127674903740239756029303036191211888880543044185543409451544525946537346348651651768953493915864901462346713595862328254253026746103760128656266793090815670683946810245374132820848547444333672447897293185032837856151304428550096935545364501819604382016199337992076325599146229938487039093487020298584749386318282172764554588688670408109404364286330074413005722323285975478905063933746742559241479268829988631638290666432966746684402061838406471017598562198233428691013288591600444397903626378126850500856010521324510251940056418730708607936326615498816810264604588936829301141197629517126742846930171958814598369286622678908043498596855287959895698787450347573836991776415039311387841108716526009753813501338410918891147652576331341414514702412888820618125678544324937427621794851429429907023219327940400901680262311384734313394154640744595852354990725310249784316462173654654756642376918639769916733164050332224684305415985290498629412074414695868701158415623992769674767618513476405070742268290736116198321554081129312214164473175797340532464846085346861832579367086831537598836075111994744179725615542025492091785466649214154000101369395701916086146404778198036401354260154264066257278841718658623885929614061796866746111823923529219630967941343787990101575036408238111197279749092280117776465513090498036628112799007361031550571828610579499606201124857706593846953092751848212543887888991675377709691517484794495365103246122797488380003581852981733862855484742080584908148280252628655642214363888249159232850557881399847038461324206491048133844232721054273009302665022946269874168493606035064161239878487932161622109893281293596664888983598851292631755296014105902871019887803687259435224120577602799605400080166618523676490876860814913954484687395401184303829437416579877342298183906931398596933448867777638372462465374399743746714280116694138104048741874483853840443489995954396314761378107562884550604973008044544179695504767121432652505661711982829262843026958466201529551644524467154637320114588933525644861738606689124898335312072132291135973444340338067617656658567260987478825855214831034396166795402041791086445743488904065760849426322377698177804409918585731669499999421328904528283644210302050594842631834536747194505669708690955466405627134009295606792494632702959879488410192115072325227218960520029751463054409316107853881219895906582001630585319076331869142853012822534869362547411782754320276267117411055978839777201950734901715222445785756560363946034705858281146960598147878443651032641813028548519628114045390183225674054540058697637586196009683363341793926143072461713883770498811346865807151406305122860053111530493183604321108018072511782067537261303188775436537701458766097494388147725940946293679120776742177783187389301983757086124498071541578247327891219592457480004115481204779242602840344063102517412775220324455294423275883267681077693549271470897029197005286468133760949743959417453509451719538287555399892579212349763243761908026597988570049385443895291424764757639624694130832326370569154235243605495424909840036995785897457951297144192150101895289705739125138571031923705148735520784605716466034997644550401594942658763096295765896722537709474754866342864568115428361110563336383398412040604425735700254520841250695526490688114349108663700401483410311110176463653271068508861338451921784749607685268327522933360746168343007559453824402070622664903093106764570446976062979220645158245348326389477349984865016271947647156003133922570458442745565912411509202449835936188443169436904071987349688355652461024556158026037104927629907967288280221405020248254751028200779308956193824908365481931010763860091205879183647475883164626588506876811576017990735093547677907355989501203104488793575283773679244113809443524861280347724315462112101818584899371523426166219739990750467135286786112170705522514505441564501444325338658475899595430649596075832322000753614721753998408301886882289251562217146869138977176556298685673964105360073255799487087482824363912447091572564948911166192364076617124542770903869260573610396289423246004115783269700210714490076311832704698370845998186854585142338136211390474692678232960231952194737763786963873971938157234297846219331525841853798748681632172787641513486541108611919683247640163093761225958282427535500387667711303380643875272553694917346407144191741226881314905382721354378086923888131539188223229618019935585413808395306539746953593675413322643194124122966120864777904267275620713076671033054586035415091691709364417690528052403789850657285312740276448547665755764702232387204206109719073582501924243933412597873938855816515693481039657501189035090763219030276932327167521873772857143468025119517887157536928246967826565478397343088652069086010848701738855091426878328628438336602457351078357267645843569563831449693908466359601501931712428822652587150162695687026374871802632306944411847282477719013223308054805913248634137149914834607388818575451085997817870505006300911497273835984796633790722481512198221342840488267264766734792632712726162528818933380123347478072327262060990820228412650270036874934449304861547950876921590282825932229268360480089270552056835610991163644388841528612474153713162860068348019339278371819434568372264098413633559221554571924414551132430305058696206257448340927387364715982002393201113358326449304602974205039693252426097587851138080560444270605520882686474982514017525151767732331823879027334417495642059481893252895393909974451313107226748029870465520267693762938207568580142047595942392822257987927805014513711354495716342940731765481980447642302609979709862930214301024246173934306865301326352573991377493393363604810229311432333622773536832468703589702753901385593195520891683806591229528630819762447713870273570679867518796977288580698201666984865894695700533837224043989896362274268818694822137301072491384508407159175302019550393406136987528658804447048323745189873222403305772089220493215305855199237870024325810470923274353985449875788487264273339732855924221418604839121715417029578769078335013337799649065158712138063362746318512718575273016391286433131974543975153621621191809731495134495415919282856044007649489334808204487501689700370093260284090258160882870120667729204589724129975729322614584692075401780121809901398467810019624120197474134804899235738528311574034855831501645121957333327150638331432965440861543036398687532133862823392933380781192025754116981317412241229980204159434768220887171742609034623393742673615034161019836732109870247681981605478090831517305424644116699920848903889273675524906257934391965074188033671873483979413297759682421849778603329841161913919114314906533568939512827190816718840673040651217403260796713940950625050044654809836345509031913387337175475624203425994277595185790807826497363939119774509680463583222246890668966376727393443723123634376085106095114664141859525314771784743580089113564163531379052236687958314767702527712255289286470386932192880175886678855066330122209055329618117825457984347499339555741066522751170626325199477243842935607487933339315448424046848703484158471549094676180290759346789484521969516194102961753366110393002071452306175639606169141689101375010001327246068021701740211441188973584678452104432933754962754762155236431324160607634026622691381979230266272522227465002774408607710302881895200359264085527441627490945780714745688597178398762279667359805132291441753874586671370770027381330231086347030346446985623600752180425753887014811964456010994423476529402843796866505717781783881907632787487148706875530561627527513790791762448021276574367941254089391696925097786000438388264807627271584550579563027667419569370712909234747953043600843366401807797463219285769970210450743695168516468076559037583480036349283400185798693747684371735582268796165542381346091347176571831173977538010384796589067399027422103093388732331912069858411652956949443027231631304440492473644613849128864570743852797211574595645671173638959202528720886293738796364698217685660855873872889232935919293107475599542815661254148584092294666122120436781452870017223631721142552164244691440040408219910015965555695763876617416738956088273572286668341622331243061400045735922515730714843815716150886436313481803521422936987895935232797903744362055252535674797115154724944190841013448319530075246318969332016157590710909163073145270601114380942867699171870288911094368503607148852991737413617089279487565780133384993334615060164560274567211758134701800763191458327070698981675856462326016491722306149247187520033040189473118666530238324269930930028070015611020943554216974735169005976824834641573216145766168110258199946657446606136366535705231238260770995425647624561098041514196027021349088282015290529074678311562930477885380825022288800637329231591229777582537719278650284118817816327761040133167258049471106239412762322721275735192461897898578177512113402462660762383884470504466175210078148221996572639778858691564106095805246790241324762534784307429194151437587997140492275935758520980387236018484138608578094112795379863997416052802313418138737404123448142597890409910836792587163051869115934474337829878089035085716142365230730598667092914999486475889667046996062181254572643474634785396703983937436624305609211008329785717053528535342268012489130681819402395922054005198013211625549931186802064172124769353012270864158074763742087089017757764978583023074805626923016207959358336499423253736082997233778368759557145543635225775409814920794069639698968684172998273140693928710190144082830373770200283391601664003743997615485680521789054709573692637500415076197422279141734366057240098712523906732147095375702527851793957826530887347305864564177057972022791524724133581907109970835918932801847362285778589922841600754293861882750855881326616748667761040493900066966694415103204680517429203734680587620068330534010360511402512880329357607815249504558333797068203472760261813059087178827494557189700004803350287767592626503530357811617025710053894809203599933962223129079555190422976180627200715309136646198710121697379125413499129132663635850798748696158702874171781550658215583461940088701052586937766421735144397574464960861950034434726536001321182865937188478670407729427748833593487846408595097781167334855092694312403098982206616799054064251450660225285253945620026875258457587154442105724235122417773373008230701546591554610316471892119248144808079750905888978324436438098938116189175951352804680197396079771250851656696053101338294125305775611500121401159516036737829887453356909518211019104786518726203266485573739273306987340515069956639905015823580607543997112325638828232748793271491278735174447352907212603220990613773995590395712337420122067499868501211656825283194858954392388133606320173165688538893615550241535185013507735939940576300387757125699382885444831102222269248072227162291282241173580523922707982495065940385118770129751942606453256227298278907345404748012203630693946539512722298683494294932762122811662330999260723633549468233941168263966266064855678000602263574826167157789975648783108498984176738853325498770697022346338957097065635874671735575444905708784900157359910128119774287888733045502299679804929951023972422001668242691763846201263325130744802059143117847745302277394275068462190194293209763747155697686853410905206634799167668158608721173733613138649573146813874267163581389330093271601281774063337350173824000584677290145625364042082654399352889603048527373242495563023005783921537842188275243953591465954890645446118877629448084781470979837089373191443279198910977793353767350055266375605486594149331207336208071401268134537170430259166845228571028200074523669733771744006590235031207865446971811197283730248621390812985783403294417849222945153785558479126666829631162387998540205425965312034878491795784298684562625280484763761713416019324374801651274555765108784926799821000229961890308257152493497073015733523682300646591086055136380621391019733336790236872150513994726657529387167702261838784962798789664361290918277637511442641286455914325253261259024180564190941139459420348111659815458557879025089953404499071338960092603657604425498539987813174274024193025162839015259484078751227033226732362417970137469544324157077461888992549395723145313420456813239150524989494069971934753703298434137206373823531636104048763297054574792201775683083518364476098865379269904985267680010795468874678818186736574456383695477583080490817597798694059533548954320213969163159246010228678319048356496844714362537738507413396899909000305550897938437404909971763350497745345227239070265523748276765798484305004890507371178609757251986023767308162907885249854984597728135014779672827644089256053168647153228306859376398919920208770578310008383745348344939169434706478582727872260718028146602387293059788393073761768396809057811861130286193590076883547488099678919521555215328502522405290881190635578058667782257864055733384065228709779226986030872476514777938341741795636180410163955217378967634370709015969652380711687453520418103163689483103449327835116505706878937223339434500146428649829463166883908283125102230283453791443444511670631786584882038885466312966697604214843670021165294431011094403972302183489493953905211657149404632644949272525069819655591505735599702500418957728321023098815151487142932495534443637642823766249484324765657995945696193717720203158777276741305300606684547934872529915194631607595575625730207543352646044060286448353054572168402044974458814480513505044890902598590345515291770638786503990559927672154497452943854974363835211518969778834287905467460113893093589329795917249441342638572035807716348381887481029531992052969527998403858990977555407872937329174208820689942704374277202570619691823121949455166656215828891403605125854199130032739161229536297370649790347226394769423837353635501485400462444057786986936515542843476549971427300380422694280811252944640272125581396244267789502718354071923044243655264015783183391975425999491307956638942187496539262125516983976526550520693273822691220659369134712439777247874013450040102988779797345712931001813450539305400097296142266430487288436370801678435698548156608580477246388664165741932153730987448002455123374951816630951190338860227561895209708558276767626693793824874108816297640085976853441059201692068444557167151303577769458018358652897886429748344021722401702333135136348019699136804984989331777882615363638463796448635083167571671730892975132090186422098390398744142676926558795403420907613353584679988791866485580468048013466240258142899105657357383977489527073401533272142392621230179874044621057794706490369926437082000768076929341244644651862890945172741325363078816458185387282811620226985057532893704312195268711806752564435732081742931930729790561598348456515727507791862512383121754755375194061795388834411814935575521534169188959619709385783730555384916256332302688304495480699288567981915182799550002516717893506442364377550648949440204150259320199536206183468197496351241352988604547086907993082565448897415809883886315346906606592434434619695494959630825135915275150349138175644784942013398346352973699491577019898190281653595837305330435224976680649483552659992762534725600370530795725141331012933437532082112637281177217323775072026793507697126260154188657351044758459238319881284216529142901680198243296017224788514687836612201757424445958454148635056826926324862846808131170802204382153786432758402917861213686493799755580837741674658413830427692158739372090859343492207931291193338592116102400425169526528901926319278842888637624043195333129990716916953564385052438979810814299455115995994547882588707810481476452899982890484682195535158387006776101301611536462123460079864175056989424198028819576098696820460622574266716006240259479557932083175130373196725469471602097431706584688430237395710531956698069759004303407099532044148151877376176127751635759773229768821434456902763016292442604723274517260319275764106025864144774479084270848218924948303054510165101901115801391730246840901377680761832500578118942887878477183682241888426619090292480453596828085198267660355475951749463813924902579538850011915349932820376267943373140286666063773811974220601955122453138914226522378704609402965290231382496533363505849903682683588144099767099822091473193798692113165193507345811908330623331502618012962669310072330665037952976950230553745956161235316989268761111291562360636706606793571366611484913328333104558803211213803992112310692818605734058178872899406109360811562993038155159621252753610678605614013839828408193590891100839041530526436090309497809506646474245486208095183004984451036305837637426191235490799116305423188837368983558957111418532549788685475968045798016507361418983398696209426565657065566295096912717655652462145276473125122743423038320849780837234073695061926634257207068137206177473157696855985647912164555680272054323468635870038825989325082950600776024627087914316480507684936455984933203942716355981425769788921518666486522253318048347266068119713922178881069699900795664689865028875500810661866916086265010909044877282090197203634328886224221173050962566079986759303530660665688001289529274044559367125360947288612473338467448603153205083523587432865629288791787252278445321753913347618164236194407942483093600723245092370429412176543544282863287882078556183969730252731073784412743312793752520447069782918280577843763369222725813633270716089246021982236870373927662353849623778172750605884758557710816273612653898306836578972371156029842651349848624997458365840955801364830889903565684766481612133483081659513198088262449462579825388001482889330316219984499992012662330567668469054256347232887015298003301598215498607613805395791946120566491889567785517726251443157594389105902389605322879397567677041267152026562627983304872563978481601511411860707871438861599400245495461775914751373550874003876863211226479407929264568395542963182191909440238498794556457414784886576180782010159027775491572961206468552161535274926893326194592584070011406883040224702937665034575203413928940899262983111518566593827192532642108681973347546467277416263966982874671471965620767949234854181339306249451884628930524657878288149636730948530016154625927736613460184128693713295555143222130183251703268847386113842963500057921203009238465223762561072797906395988205535062441803953358430707830111643695118215032836559706283944928875302728959696340155823740685116895485459290886596601873278177915098420316051110648774158702332557620645900088921327804833144487776582473109025009026646360854074416174805403978984973521809846552846469413168804604330267343029586602703945085977659232950621214029851434268459089291947045290670242747361573233960055593836751279400540236306180221838860559643061313719670935729534342623436509076895979779106396029887435288157114991038188104879108452376372041013411044309118916680866581615688903757071466355971695479458529489520680308495366509406739096267358473785746941599759032624171835058643031150417225709101895159862507228875940475580989997219808932124169999608152108460256349934233672287186611701423525200526137229160043705031561932167960821744111589491996727973193741123195146107765245244540569669845337234255319031819395507453583724088792999969957174522722806738476090793351319583193150362738047566253473433182815901324589218005277151617516469139561953627825637307352740294739655221010477437470625968281363330941668096417246474674830893005340714571476720346277704063681404406286484953505551489147428570456816765088190181540479088033555123537029049502834165316891876602987921899226784215691231192157249370423624064645954060539865937332743720576279404856887635569618897002161144628011207216790093667099531408967883456293013674212258782636973143501960059496074490615990818223471415667858049387654642167057717127231735412644066187967923814851807483930561591334616123113145319664985983428804602787715226471336781846171250293302278119808272400912719706914031208043869139390032738569886404235061787935996033650620724448549234147981271223456841927640273437972430146826074797572189424120942398069574581652353940927170634202621535179129701676161991093765332021872321452302405358785731864041307413299787308579411416714199335548625102804217461716108685680385860292735398373113326237336175965162511130558412312537266228910563881757502769467295886522658737700782420312476990523992030556079879268940099395099013179099542661493621415921312938001623642084683044439763539843782329741374603018452452591579200984872037369021200818377286825993583028680863254494107104308120501901347770163639525725132978592493635263918170512637238529716027533376236948696265792384299856686982554512665792886636401672952605467262291712301618423968498628486710021591673404676812742967569321319219861420036145314029050172940044769098281008637517684927775377798772840882516223491355147778313770347820245475440739098034656167672979883327523252538329126721535189871926015991049093489444452383645271723796520705396294243889567551858471858861575888763960266366101129506065079936167735162884878655138979323167132137779362403503696557821613930980967393015389911880452575492362557877869993690488508397678422719018220875435970788607960818262528311702871443281671366761727677949894123624653758443066092744021433809906774760051571110601509038627422440553231758909059749174043574937778046023758568334062126473784569849682242162814153640144974561916008958167494526742314073941167670774807717825815127396039241853714651242068663970353408616970055409852433730806062778456612461352452858477441089253224477548616499982416289327480321650721389384950830381831878155907425967735149541509377424012236021639479392822370111122370288561214980462780303703759584875820037714915062270643348396895997993431969910415549222708605707623884985834475793317806186131571819046864622476022829806805314773101639974793054323724595541462644674451227400106091579740154316210399008141776521992009056365406902658258553135123677632032811819863302334397125012290122710650957583422724574810929784502914503988528102771570854527565228413498683729640554550889170755084303860630432344247554688501565065422735676915970792095043517593281413413832897905449675069328994771784450239661049805302335722167335882289092785094526707855402783664845713728524266810310104991359644114317219999292715475478919851630032017073702376649851542734523606302268161182615755435512813740818263169080542609543146032325092880438398838346596304470365555821813437201062517367045415926830205587676605981505240977453373334484062138654055859462165193478151591402742908955502558769559874098065781735047367684955248435609900607850704504909901726844917953676393659490633970630789577343727396343830238632112332270824513733046743201537935242158699014651182666166492967244992998766100983551627850824377132381923579441185729757679026373552202787399278667281765392058847039380711400932948975573161470355639421011098999474012193355907647035262213272589229039920703050264383959971308440849386296845890947241084191022157731696970836175240525842742804771988747260815888054692182669933275018907292393976210745971631040073686186858690674637178606672121902844474188704755866577363342788486819351795241076046179991713517739363778602655228945891151572024455609938017292613522988338765094612591029861060435262177711869071919986901753105077408566863120820565334694659468642317305027123513825630296244650430671836133148934002943276916605846446367168151747326869959237777804894978298459128181686446674920780147202946881677169882062330979296515413901354077349274439348024113824353647606488653550022630247845409120882700846031031216380734799157170686930402319074791402744861482183357675287801993556266804521959358407884266554659173647793941251607995778923678047460599042032363337963522224159799279212377261235640420868076469307190519808533865744248976559418895058494574013536539967263766377655337746112770514933356320110984263381425352649956721125613792462671652123600112704475663239679973989605433474735269271024110199436413481629918119909434941348570223645383021024740238906894671170534934316445549418784367579310375281267758430652273728001260077139338452239363007231274800341816150942936844017394467979753792290396410597718662128170701810765450614018763838614031844575161576453230703541354901177390312103885041054482689171093689652563604563212431850955555708312432525990352724591618421542459480446490139597379544810644944420286824369383194039434356216237537335210616608498517766356082331446022639787460666030363114337834694333729828124493806369078678249227150231945578949385113798812410794437290160806415024439705012224481378122987223108823876854086976518906041843204970150750842928218313818743839966804638092288655902746125196814392677863696262955459810925194555465067639389279119125304552242921695826663155558076771035315010712325168419836973358107703561670196936900209236601179073826038303870110200864692648144849976509547867219235599025053765798527448230515921895309335163982442119629177467676205809206051232269626271273680177170328486843683158689258384900099764936505289900177069362013921911142199927659855603523797531047816399304017926262878662737222743057567097321744497100816907750496020547361345384378051973830488344671770299917062206203052937229664875481370106681720710614801460157285998813939750910923378415586006989994618181492544166170459622902047862564997791793979085979681272848422553022762646349883926693987330373849888937638611820681245664152868648958626727452481946018019236761802372487469897974108512694750880479284696577557524198348498091640576367882160322057746261009408916552428028891042822112056867621916532059318255594244056097161002029149920045327696665378766848328681196034089201737016207352606434557108358210989525755306152464206241235399417077896516526936447281914122774864539570875043867930702037331132489507623343199104840308989586629319884143170364923303008100141593704122658385309924755205029138228612026429445529665022733030128588247677282237647101055204272513030008830537302516068424113479124221495902231245504058440124037173327238282431243668517644752959088092195108189370904879681807011266487103727588467275372126992232299958130201728761900541695935536672584064090215373927569520529515331927425084460813100161084661671446638571030857546070024234345746670095988905200462401686838936773508206839090344882883928702540958160183786474069187425363804106948628472163168811685131382341542187133921654010255152107590707612120247000858604944614420604781401184519589251564357345619004976692369134209509243739166651912429266622187075885351165414190776527658834774329847755059282454670411541068610793125390077072893925989285799835383697357406563813889333186277334174963080320095486764916941553271417026014767798494354069590344845014360491218711629433445833695014004098524604670005694695739410629633867401328839867554021272691629519506671464655231681341151288991958813303481658681299353788889605852146768044109781121713862655820967811264007829435767114958727892453965304250215969159189147119041531828439427489720029231426347224510429871783956023111349082407337031413940213495901961644704344395097006356316645649243271287781980004110315201204852644159343182521945492632269831643347427986958361312682762064677591175360638098407495530930465154801293378921256659189889286709481218737701268474025485212410155845965437632219770982971548669792902210891725337848712363161425391180390983961064558078169953222101568107081400481628846721846208798801144550923706215893133730403140157057426742459824354730964445932376210400091103725035790669982703993307433402861742584403146691576836382735616443522495370475497917490355510314000632182832539403846650887735077103245100352076007577085519640396379341750857545773999789868172967326544629779340683335647639268144057462939149257093722936977169325900860917845775124194529765918584277514093487764223304986463314675145893824192084301414989238292867796229051568801832076759940160701119393043447308946652210018094010430158277678669623737174328279608766672853975572764322751168528727685793327222361858649089371474874258689431404361982209356505395316026805420925654025095944830918465719798698073696927560786651852296185848588801423423154383937302453286064098159904144125316958714649327498937094916621693753275031036981732343220231015275043618268537387323453207889945124210357832382441584333905043009477219259798635010107858419229254313828237808470907854700557015181763504574077972591633351069896568303515796257881442532372435346408149500258646117063592393151890257975761653678977715114353705037777101796091737974066371024486537763384090046194639451494938878675837619424159106187669231850569914527817038726588504922853410704751200328364250222888349035475010553779347815352577200694961080693792388091431861169915305397539283030703620402960233478242088361316570001488541296528435610983151233506463572309527708079930252245810353143611720657446516475005270748068183017833722789957131756245556834278034581776754907088487438406385295417864889535296009526321341152329391489003281827063789744631278522910407966707954685616730443756678200255260119650906163783330124021368127803148334105677212395068859908065129773773728398089390085806210727427850743496692766046813184370938353041710819563244665721702279487336933238543585841427320435193384893284128446030998530816435783372253832661816082572155544283206089695138760583025340759250446961169313587873970119078349355959704082076202501937469436383198900143731536484065292267510531501994581298032019635289198000034856440093483933772790061279895628406568387879509243037813711973859547999450275304832513301681428250331189787456357097726497299584893920419663651878011501307086599902219451523274499078049450823805742585135405109937799589186259540661783532488243129067850099763731560940357366251750832823796123691704154549759060529373477589078895252908803128130174597894739004327499901371841504664615170366304963793125276422525142027819707587241181971566248520301667732335358342302715817952937534200368710556100174062357071839921358117112423229870954327762978587643896010956639665914787984067553993809133257200114355176442866495053164822667998759982231809930696348440347856701394961073411300919381323829376695527751523652741190130789132986385384173450156986144462306127139289648404642549304207651106320133642972112112843900972377791745275757107775763625387064044075778258147886590790916738929477767640580839336555856184150666432472658337868867535793407786726562697758358262780624781065656637873722745891963087854063823540100389932118706797683178228427153922318491169126557364882511629932692582426385444005959975869603565796824397384305074423192430215955253084457090922942919249226575197767066433088072130039699945325396750149256251143203274276448126026987769203061383568747677014650007641193914911697001133180149080720859172535907479924947713604852528217964315798950361529108929805583441213050003422754886933034757969897750451243261220817127917810145366299656245953523373142325240703254755946207396053046280482250402442120201078843848422452698508542915587021383957259838676699859595870077565806549745035732167282485768159306270350815957586508153011402359983286836816178751516654891868226884994427134785284807614102857808469045154686637395062907252698819637168047485328511058668526845773658229756316857175559163494718490111737840722385584148190178598702505073514216535055085135597483231511331583810059909780016900638348359460980327491883686431335739035764074849960864916578462139698195630922585589709340871284807769420262937870442981351596150839277245937750025777941854336440619725207692436232206280555066633792702873615189874411889732857263098792679428921952237076719632886743929082729628166437604746782393846848877498525182045856161815504857714234851298316621779317185391156636657402306964871457810200354892182359224336365444437875211097630276410950117436589438095959469115020695062392560690545374175810838616796913191402307168605349114964132592989523915611844895459846902715613681974194259384384206986654217510191460439905105738111871386398403396929029043525840126961370820697908309567007747881576449529595194993954661955009854602820717098232341490194590453417784743074337013873531684458487792728048897029934797331680440074591776982447193729153591887704721569080467328496433918657056414044901003362060352093551997504438605721743715799051216262675775243932182239473455275804476043318428000114011704357890869224881839684958708616058308715368490203367668804342657379007257667017174619415810792980359457381072340538656067788985580845937194199513272228655216439242801634962137547968647309885370036769551065236557972079642550730969290279983087075125113604140987016734170884763605876700993914204819180378598669645462624065295192202262675264098758930430386244529833432223895527256650784462748735495813111861721064530760490238112366343744532125201114515944301148057548981576456855861653637452594561026388762960467518072478074425367603216757426275891181624255218841978807015344835570691160244818386516687430605154123832520825174049619071496172995628149555321555261040491697219801974929722650446402753705538759357867205587775451600756670751600114820716046366261671993842408857773009276674089469440557398653256383379703213239573697281539065759233892202628969953380746981162021596958632776087346266814941682267328123894402029580144328638079292980554796635374901290639984291277682257313576436454549969209625400423051841367294242069353103239999989098694367472781250938141904122513817329982332436412813042762276379044619249232656487722102315438060538991838103521525099119508467559637967317093980775032599790317211612807679378456819571677643928257323650222058802059249935309966118828247956420207317780400794062402264597411024296165199401481302400752137802888097062213838149582278969443848158812319670024325836677619856898436853961320202699920580351391726543373731236359984939112071052547765833664314157204730975453067357584513722971095611093042655381381806984568926983742810273690722686999279965227853588057460845818641388686323871250381473490097951387662638202816356323346301505335613345466589905469569459918743224064459765443585227939776963964898095643042123258442973656255166589757496581842741539187377345218933583585673915116357607325139941708103840056285391511061374534425053448441541080511606412095963973525540180740398126203257408327492718235219582605499263818644027400932987377243646019875272818928564920532900927919963227843076358087704992314057397223976414234523299768058388987688043942764020045185545416171429747748953453451104373013069438006318949438439223637994544070368953637506226520334048395296138190442802237641105398436055684129695443205650221677896800439270030455643674455135625552519262986631420176257043161355610459396908031547650597031287126354847120048122682400338495892880592772586946981281342199969580773475600504379867433494323804101181211135067630227376496771749488015541114314699360592414404431181168176420391254494653117926827307168421433171138959138290360280148740376210134136926045641435201618647845752967258790569249356160508824219973712630916144155180742744988311567540437711411003110341520369990152026655586110435878679683251380526388726395612085448740109079031249009481324784422186801033068057988371335280846452482835978033402870044997477073895065741450570881820450283193183761697919149404318599447806635501911524052020682670225001928686055876528343747653460996414175795969401159204417070499451987529300093003199430037629156160152635742783999041803589313247907868106841358579843232049618424125843628425414433356341835693749941571546520340895799190141600384319437463988252642669884680156010950898571821330783909217819462573616305444968118488432068316388202992930958439044197354456520337299669230056518359784614363764396090734852414098643533743751878510930824484523228197006683947676663138484273569551257510155095550834230855524114987746644141518998723365687262597778778439469528509743886353786004633190079038882110260854405167745570504788667251592281487089010323854963354284577103949156125741891290823737030050608439254974410781895863972911513034111317107918863319375583635146592832771918313100704362302041848830760119920461471470971281543193176852831138176227151757829275560327045515171833377282706120745355604893523577476116023484016736607133611954509527688864803616487416367250942807757045607131095433798535668126690336381634648105564222815866388481395021528442171594913775381260063980848179835736974287561771477681636374429757844241227514549108975183118633080151838883847012551464229855531828498623833069087554499424686752885249458803625636556300173573298196942731028330824433544454324804799805382192311868587124460078258534634220141683293441516212821745723177936355696106965045083379448655773039960344357742720119630976193069438186040806471997576321262901628306182500570968015126453664644004639708360292550372796281678663043870604311944591190972554398566088146301963398406466525596825600558723702478278541072372997774733670011865529219050326433470894821218420545412499923043192473486776028958821440601132077895661067906978142961357448026661461816258149964057793529411708343263584930932248899567816561706224268268100235167446921020251548646785988592958238140781044924439901025714040115871801021622163931002527211999541084268581628662030466582694977830966435396055882497628809184273496936229551643670087392761766755315085225863609867422788185018281651799279659496702489234976144942824566381160208331828573307718671531364820969405354221143339571129736338063806987625809584579573691339829252448256352499665733845547139659249001792037417724140509650898589093355320461860327840616813290859893429030896462621128730594145438252290312023520401312217267170799250419145823273830087545695400256353858457944586977751288821281953497823139704275257624361657172228733778009677181678846407346133262537478696011629374453949407863044102291146819058485176969381997731139378431935857311346593317060177258794200605067039631991849627148691162680409187474137010086595476013297980268431905899955092190481305020063414268432359041310892605247036643340095588941459276299918516550563078222881971827795574903912156801746835982213737405599586532073579419496152716931842728889549730663705632783438256119911796035239662566540615363813402149391617477916486137975794343270106269920662999274973354796534182495749678406005360231959981133451137847231740279034644423050184957793926030993086617807768684620945461703592534263734443023114556872700730225732378226394064579336239910588729779322874251353291083361640309296339863941566125948804509386824014835808423500007220960008904150797801478800118734298699395838325011539265113661154614425450219280804670049744469543111747649285949151603432017457717174295227853543177698293614164812030115291026496066799329481425240032539650853370683260720847827764405923643225210478811198664617750137873156164866627497483407401760818733396736775686852244351546837807619560978268997047713118772369979513855764963971474510856173918927943938680250797130677069811080772574954253470870770654585711141527939195590259067337048122973867260109582597953778732232352330527074221420846661551180937115351412434348533404959486953362618269446826078851230875903281244947302556328970595082986979941010862076581726721618286325829385288314379447014971061499053172683356034869062938663224645836016304204749804121313632841312344859008408015901742364633696324438232463303034974150783445809600178622015821018767482882367958278406650790986006312202650093238806349090850617053167489945456029834836105276098485476803560196420842639201519175867968856747732329380545900935758397546157621650163053130946204574768999551103734349784277027972105004822455602122395893468132942159363517499657289567467599969751083361541649766097373066375615705793871345891740432123576595191691328045771047371433265904857308788250556347369517622442997057373353023216092435686233486652360910988355297304442785249305909011870677575478494898379886487617594360750422415367883193815151135268497478428306552652190567165718497682895054095441138216988225942086469172778560475047257372255610130407319812832289974699605489060532195293617655753691690241914285392105712374688400989339050619125259402851839060955936030351617180297354833667309158109799815869918303230401135608645934896694158434325690381193644071612205617820655979999420911747300416616788975764755811426758294160713495069655670344168775560034359505410377986994678283097892445526926215671572452109473211690774274222061514248500411067843989240221399333298324977659945464112201698505936142558287932279230651144447381869059209226562320605491770089171256291835992709652641602120355887554338776457890501182548921786377385655092277058642151657639712959406440040607829088457539293863121999559835771786369092737845246596647434892923461114212290251902640423548940901529892090954503976200125452761698474779382607990032396409811824470813984631121645481435689564537654064729158457289093684732581423887600789765024516936466536634364934885318624669894130447435838133405116549587938117101501400954394343789898234872898645903253103341837475663142372421753171122835968851026871195573022515786538036236506068479781023450490303996639009388526053496171894873378332010326872379252789825510574550019470834703038918755924152306993685384033492388330528369115210572602846877785274081683741913696747293233572008380173474441569501259836721305371384132742814397698466565568437457592687125099650952037984223349329417248131407529776898142852656005262958199400323204928213748506699818516577940314417746849560928021845155529536762462881462880693340140821796200335639657902315928918768860398412981416468096186082958770286787246243754539837722925186766132386663120154235538794679860553542734605196395820915170224823500974106993683595084408859658251058315495297125025572906503415273296086903076152765017686334758657561993922103021181607004503840216157478389734785837702694766720889241118203981806923654344258865280141609617899858539025485166788653652382817639708642208006538381589744492868752150589712461537822219543447913332156103697373286294066402044457225985531258939677191046415838316333228185327591346120808991789732894667046461292202137299407843791768203227180526754877344824351708892405137818183750899214247899966385094110924708969397229729595069547753077539479754886688249888327383789366163428650991972235651636466534166615674401073500621854664079151565195624785128886721207375651681363770990745619783062194755122209791459228433134220868466001429291466296767129891119387550182915513815153775537199505816897298496571299870908685302017872309877366672489424487089126161885816870523079551585995130922458558350508274382579386916773769644997430763356992696692275877857177164414669217257261464814996732772014185018649897861650191881299344970463180138049158939538771968982367788144885214999947135502373950976931332666431131113228931219161889426025805661697158848981897227000496361496602901515286552592716165246442118587342342561435713551499048271149657636406134309263130181537717228307401179793637279769539127680844718070061181451221763621979941072950280604777337826696584934003403067251393320991847272708166579196799308123741054868908262961602540140629659500255004576003951062133984625862760101894646924207635140875845263410887788338923426713503814780349998187968041773978035651111638862532042147266424756657323625845942705778208858286209470664605939887397865123365672213924551512570167226606925378363877181991444736385857628113195822109605037365025623943639193026873604799432677884053893125659634363030788626039766642141310322572631885178043416779426320133240650951181714993838432064289408651834184820653884642071009700952662004106990099265542038960540587206625666771075992842249928105429358554206244414868709355927216441435300581048702966037951794993058837293354190654025351814551185968091271471463196607941568485778921121578717884059489270258334214967486247281078341913065343952562457063630618755380272826762531448182690717779901011144859662017085990129525502611700864055392549336105171644163914415594823488598059572380214328209966810501363777132593340736935065177708380927187593081810883820354492442081071676559423069350063165449738941827653963368146231846028665034247483699533129729162595024082863142282195850948742185304178457110279640017969057680533561661907255348978653455308062147473279646659733269281517402295619456578624358091421265825146383268020365812989374601664015047971909449434648066493866234161090545021661435362198664575031471868791084381569792236252146970133594690370040238211474711785191718738376917038552779643832564746529222956071986167010112004574939888790292561152459761187829442290867003547205514460607037941798666796494362307398280948658631958580342570984864137342338060648095121620433046547539246002307552052069841930854612919974613162726793094243243688427167508011762757953529670192835218605882524467751673192892392347511766479993577159678590330635859579977827812669331131440370477941786911779689949222522821108277120426330605702793298767814686948503730090149925740835336683718257944934155827972552086973048772699649274935758033723303646551314270881786383499706429733489576393582038637666607911753288863163789577213682685474094564729089987522633728266651702175987819309558722596196243163857184797617050696918858708077440239048898453899378648290542614018299033269327662819395419076666860807603883704703208831412965921218835100045940109783092666415273071072531973605658965531320052893239919218538173554528760272872047607476774831411843795454136066010008181751079608204397368451904565997684653518814984588931668008912109163583201357433902474793497447300164174494630812670525442407888523958452218464159086515375509710293688606315090174389222339974574667833312329843649033021462845044370902851571123403316710461025794499094376382881594785262996837814778202415613333455860972657554160463812913858623396067262831772250067831237172825464861578371751951596894659908742319216200641867841015487687777153714943662285776599056556224907321055231770226154508441258911652899245038712414918066390632823428357114667520442169813685012357476553610904041470999579038169713760866021609229198313500782690250970739894975882830412824711855696193717343265389684476391983249885117411987135308381602089641457332736021308703985945643957936237645849844921618814658178316698184150714767130159795489874674421178664014742079110786211737900795180855795826660409996839851560777300036343186125838321350355618035339577882490513633039270366161914271866703529710417852260049247735169820863217630433094491041589422501076691348544405297222488139662789318931433503585700360178518632063541778461851558626244519137335172182190780275319284810543793448399767290172054142389987440245466091226170044546924580971119812015149221785215599150787826179346567980509624847103269821251246028881562398216306786993900198305720036347763485819217592279619322621935497474161812692617726738334762724047851469543612596007512333985387439706428408722161732577493223328299963845166967120843370307611200062396194940345028423756930902947122710501876766707800373064477658655928608792098393663591816060920459596361289809743746564288956489524298836425752819706129995804662462132187454190455310479107361465282066301322529166431025357634841443572610457228363481548151122391639206685527817414732497841886610737527810333923740778350122831588508181577275772867327235063163568283645437229921537777076669154180269367472886736079591141472525186690508732366855561608540539793547979744962173579234048083552445480941184880047200017587528707868706833274007990249013100169720640683672971931623361264365962069345771971238651552102479843570259779825158306699858083844873342178580249981079319938761428506714509779616684717497285618481933698977475152734228353374105599010907254992487717580734081905509238679326491658994835991922174726072044511198626442596697297786342289186872460881891986732080186359618404871371223123313047218264000022763728116995487859651080252952652642741707843449017580817333787388834669947105950685548281561251386934571278960356936654897711955291436330117810857152917094776248052846200543240124157252143126582784607398263736342931803586726023562706251017610052636809763450789697161626578563753567415324888666496374608082521897217348583636314188615382403690554788468944112000276674262536231204525941840305338749254746851854749117340542007389066940767926162569002759735000056801781104520628417596492124832983755518758835382632666512991088326334870045637421494250878112832365776370371144335167679413541756391113507833496425177874021988215402132413089426076313623888632412043540919428189827978804480136167673453240645916560674167273198034021728558733032368904415196275566886242312359607365146361007329489069706846691960354878812801295820168127287125309153602575140704901830171951152926988354583952149742935422912018629218512210107276922909330554625860476892920409103641704253092599105813302904412039480392998147176950002280994132394488700992644195187602938828256073252042287073101428728726178543649673495499664544710734120894772849641111659057580395105472564526444329560478476817545306678773241941412410048239425268127735201277260842515890472161263579387406022224774387543402622972977933001634247654497876077575694108502487495563563674080658797359939235833348595598321341287903407292757828264327384773624340014834483603166036458009281666449870327652625553272324023177439298432631977589654120927684904262022116366988910931845893571531383441591316716158679888873386171109240770404917336045492149462253859071362763199689438669402491311761583513806995490974389422302155272004725299601368825275891904371791249221234243168151693929322363678501853832776607129986013939462247339858333828375751345845513867693646923939672709529116925689772794725419072446538678906947363308371450440773957455811273750415749865101786982457317107093408633624792014612869394131770285928753360404392489028614889476284566724341784816101495986785724960221166503837841088713175988281508198050106714641826173364595387786402281596622191482003287053460783218960258586692181385496350314336074977639415229752937981773032133028100976396627827038532728971646853693013831817631816801051687672642844569391125185232010326491844555461106251941113396723096339336191527019104362563510696505517495621204377506272694927221600324878828553406195331280338926449762433104597626086967163908214734220642729739247608603976663442941576920446060230274149395464877251956689304592309248342655180343910429163506113554179702365834473208457774638195614565935792350402586297553487379286396058078035650322771194436837172114110820106140971986652675819432039138639888128123171921084764204050297578551465876314547861038485197265478290382128962570871988943957031204986820705984337341786347024611607799855670989739671007425108010899643979657896865544550832699309642702886353102853727083875037426152839955808366310435588532796212019723743327326157131972965700633135606289639733252961783306897305989300733787398275020837783618178300801032746437556487762346051294830737825904234356011437957239148447570977937969718710774562552198149271007831742714822352989743438693694500531321237968916681103713769305688677957947421711253346936323245720011904174412451368047600262545056869959579387297328310647913254115529608787045107969310035073130053569871211364166564450005386999071404685780555179111809298230940811759858143040674259008991711732724923971846590392063568655922925049334938691691477918719756678727294618409666871401943381403442343561167108254309265074834428180628793359911799888236680844078045794527480358894628721661368038071019445790008070832171513857458761067576223678130729053019122394985324689107734277189682745026061756591377563985035412475762280972357707044123218289777065479975811947869796032808701716355709186151784943097882853186010770339692148093556509689785900400307344002740683740345716166795913098290120564621707889632141562778568721938570744633844267332666937789257713525018295587856011973154940325843112476218522057520047038996722142735321791687339323604211153765900390929743604759027415737838650047860672561449878524720452665234808075322515638279723279512117688938817381100033864574678645748738702098327348809978132509357571749313037218017740541629970548745665014794297661914142319326662139161056844566641156595089779629962663359750330367590992332036010199945093979803421144672228086866295430178703581000303208429660826609010893957346078341905364387723040004716130177095634491430466359874296079491417702478201698023836078313428471132832578316519349689576221708947552701952104011646473065938157713907071442884139952636531975315101787012113511591152012205385449279303296694071910032886131065699980056501196646051322310437319254266023796053875618269889250701416613326714982561836063541730776537891945612256689033277062004421614904993794504869437039534740714617621355856353177890862543897967405809716212463739789157880825449621703677108538798956982609292457182044771217548574899811089421494736022567059245522514857505786059070404378894669102491864706761901159588530386617473021017006172395982637023906238213380160184607958074504592702815971763983528165858493845153526317106882424720738062329182047506876256049822595356875778128796152547096141773801747722792205483641584451249290878059146845224803223053010481795692778088289501403549640428180892822013148800547675843648983214120448401312870910960125899249263376287957001512311918024578936692239584516480681702031217524500082016390264283442612851258286691614079837621885611383949880037363869796617026009049681802431638915738942368068652995512258977873820654934786286027370859522644646381752349315152160039230798001430922082896698892820020560613564988516002567019660827548918144881519266637077516972152876325391862841029654039902877206060870240610180014026270180403531352417984050757806342376057571893771886817992266909668108355259325562046868911539264045187464160203034501468557085133246795730936087689930612017184876577606187895151928092222906303249509634679911468894770742864786437854343848720235835475736961530458589904108895087711363467689719318804237455497201871877714981671041847213881570826387660250653486018686858619633714767228141651742588527836413140045662631307453315362881181073655367503914299764593845751934408587988147695115880302869801089259626997069255731115222862188372817753419316666280721216934538285879594395564861201029089154277096544561235788773948553276005415317637840872398596315766422724007587216177898830373344101897146490834076721425994939738318735759705118872639206808626959020300062086904440858493484660602916824230123387058110498312507579936279951915848303626097060886965027283530656458312391536866720706844094313073371827656189586900423860805790717905266293990960906961951377695582616505586249482010470166449908731131153164161914849728228391724269859846019977493503051844113647731062020968498012459603658249702259534320001249972935820285309052387262191588618077368124594146873457972979251756387378123446407217546533582789944040432647349737858258448571495359207200427765310326394694120030163654764957451357413075050847262197797103613781534613725990868990638439333323785219087424847752725494159588711346973824562022729326007346377392594028833861565416364161865723197971052734619050336334174654766092353387758489284400222502642574036322493184547250163908650736644702316959682834425726566698783466004923548616930283687242117628286738468338855597974789562325408626995164035599886224073605230061198179437011436441697652647718762431504418165807549342734520588969240075732163832118327344255627871735824646893416332090256560215256259726291659381722699841387215745288119430401031184114105182768279409011723025724963429552742037676970061765578985453384903684075589777096568334632546527485038986641652263588015270487125677785215512770290279322077538809143693446189689384712125820982697397855731768522825950126730964229279419871473365905630238649919637107426829643746824913199273964426283561677846941630602357765362449130444364034870735581314648675764296500976480388712974259138233045560096402135718429944906206294267384518060671011888437823644887963833072115498571254069958127294854858640253089969948598510364732944176816393032359085454752229137934611291399686526590180530161233887849628036448767702101220850846170069127597872423706467655922058328633406207378666445653261203653105384202298090428160288096852397436672460876859703137218780064033943668959652810096842575149905946525292977798297705846842272193971079045446673409407572400777877593088249576831826673855774816103294709387535996737338930926121281660580377991383911525908852814847643340980131489494905104786685811174961829857914184412830448271479550581916755423620422631105847306374813964897643152573362271378274598661850406780951881863606039119806164696762727308480177259055334760491381245011822810661686955438166011549459441426544964317954842817789704205220685397204593540319277865286661521677172003067735881023213994836084168177239918742993914807492997561480107795378369741121818980535983034395352582259866286977747353566756050910914868782008340978324932151584353196688788679571673565348748957855071671673925509723380892453545168416347983202299430993631995942251166152511928826634914346748679221735491820187981289193695250284489310593098544177914012831500765828474622755328944634911559232381272372878727903282178709437634140880273738746762754868164315715947466331723500377104020033912244113436703337275215425059468916819606816617184477321710024314572380252884910850261424299648464076090351445231183394752181287108767132223547924688456811153704398530371466722250380128620762356733658288611739817287733680648626709743656121381370431490283584747973704941582330690139450398102530648436454765015516213806833131241620250688685979357196909974221324758264900734612540148166227301450210870476359574649104964325447600830817102358205368345989393988526050138702302591060313518227948998883801462878342320542891951945572186903450033442622788049159163094704652108759802136020834747175011107099311503608614738982172906408534216835652249057330349861425677141555656174374275366206562381944528782400120317370791664460794338961865412724070710025571298158081110866621798074895586159904637094255054794269037348694816690802959844993422047339244019367586054233049936645259278493088724545790514055363623829425417399039239607255615745187788248674419769602291493318429441044463006416013539990075366638928757295410255218135759133344438816217802243342498489694336798832332844571348779901989272879906200714421018927142110756085685673790601082211672295257631366961239322438626684776971414768879555523122103999729591604467465710889931952199349050316762084263973309880610051638894357409431937224166531143089188489847620593521098507121940372520911636288265950089679960657133466303476481821042391157878541595332697869265319154225750952556457997302228582491234791742985527238660064560387515237891825083626990022179936691046364522488053367573350951657516423808016200354951095755789120029738886838463142988065600627751110338108117504345990847626310707939942680519626415867689372912227071188386076716369277666014515516081603650961425607095901694288736782815780009760640479526658536185534934375233697100828253817844008388688001191432952006636769861389698813964987131538170577598938397150564377185665175451673388287624263661184438713114194255274413553038518893722673631459167712692848216471169505576444047676397083757056718726615949496820054670232960803642973825353277542616978695871965130920837566092689958371632605021094009253023142312820950788943295180867360136952536038667800899195210568430218094262933578765310466999448496555207758866034640069032649421481299957084139337211067834433447579763865993579255399587019805335669197976701071485940565316180614183051227644982949617581756786194007488746179358031550870567603532108869584913048855078097358292426016851165164958612552042428989254020100879893740439835837492500955094218393720171437167349794495386810100938961247052757067864240390685678561251166753295459294215998858189634547802594347885623290702424173236970849584635105504704379467301148822888069543256312221639579284784937171302062775319594104672968625196636137683568001236524149043738976760950275797896336146892226532294923944422755705097152199336129568718378460319583863661943151016100336877134197650675577442828767708276388527647074309421931382798553864852530246512185948142145438295156724772409300331551707516619900810785048260121534223300479197377973272729577069622365912583690225139064580719760128489228251634271229039786865989754107947767914306725063276502691457922562337539060537397522762549591585938834812605992820993550652025654250614535208173060053910189655282741025365230203046021842335704493955317052568192701756031938293234442848080662542792168612878464758072338234337641004119560044692134409874527771961359624403951681339906178216572535060602529482853725087087865553459368192822789960362674400321239702486739559694654667732859032730154688186197157131753572783986348972075998933798846087278765998115813048718350222583346785980446817948452387197407547484900737084249691932448832599260516832215035361496597541852923838937823021196639738667862682942906713159163365936366164051614005472710359362276161470945888069463330206732002147493421146380856065336384382892492630081246773287872014734239700988675674274893571588975033307347899815958281442352558660344027830252630365604669746523996170745419420990249394119014642162008952123313136427439143533638659159974924727170986067928658114940149252324466240793629451371381941336306966645523292928682050762394374140116156468867802466087351632364308279331667203200127524689965512258131891234020482167171028455660105329075619423983840759070249628696829684365304962339534455855001266271507607745406029342523999545160323434461438040661526011802198570852316168336680608168750727846266590572966092687569987344817933010968291024840104220034078039968882795779074767083366238063976312355129158877637220822251394391065206590215795938225928332077438423573473957771284522922442223449118821137192531682584329715477476416389573216346737695869526871988351336723867250573278971133083860173442463946656143785505871548865757742728619021006961085813198030095489920335160735059553612392024213992351926556147244949654186215562511109322183657757247089794277347668562303217340463514540288278095386348462773704745757377124973128051301632835232418448894649756299551817976428784326711579864692101946430475169971602905385946342064320734700791327242704227043407118592173800062747211136737287965060837253872367995691045829897378872713907759196018018795643608396518284708369860518474750414794540365321889967427173798601423731125718475825697951033391055360243374639359716684801478745571291106778051329706463882107335815080638275783628602407010333539373788606611927262240158939682087182209451203235022677504957716188934543254264179215548904430972184498631097031403042014748206576924711423758927458996217175739987679474683356182408072702033715180817207758782850337305614367978226142774683536642290501996814214230981842630225893719568292654541883736056869972082200072488578304804786403650046004793259961790285482823510337750803937310617515195758576150385795945794383194603571023991934396624822313238675825675830793938780202918069769087285434531993647051240610253395406288829847206681449576419497744164014580725126779672207907891443951479019911998653340019086901891157237797714550844452801525064552667956117087320370337927027697030162635012159611635945640666401610625865150947319312403391087754726727878324885793113658393285652900713297398610670170307383012691886449337832917785982823746307827222285492375272733812642382986915912947383519803901608271713540234339011815362680569438463173106148360373926407107719061870350504468126105304409563011152765796089647690233573830318868941638846495576828520041542493197848361247693525001404267282347528960884020927150077999977966579366709721787763784400933874530117718581447527126412509848040064942751706803721906951511252212221596966105446949821201552849272838892273660748101776649658652998756882126907722168045680924509222515735243356382294928218373342507546977588925589337444779588613226781014365297977239496606169806227811929271211631680647416015728534671494402544160530994992257000914759199481036773980531632262693631162960837649562813902058602805240882006628202908816921038753828868636360439439789496223277197039903710556997789100346116876526338212675822832999637777694271465394967601366939465320249545160002849563154551544547138299131699325135385326560704907653028055151459779942569053714169424931690629326464342406361043261834996789728466459272334439267636117576229264975520255281915676878137735201508294133962868894260243491673234581061603183308659405872217393146018739842142388959241999850199891678773934697611149843193189398026917543884880312955815217730689061076225551927180655907937941585070409996645127296264605494675594410807649828475878643322775270582963594675416029216589790383293684765756224745416144963998537804503120638408720788777098246659704361590872289462044738869304431437493442750221776209502966267621769067826963521500117049342684563575761949988286569267935627959836469421796327583735717580851826816765145557230675875329806609507667953037372382608412543362549468970079375786051658454017913160568807124148541042234222400773497098208081038567047026152628624967431878863802665701657312806991599188230562594404508062211664398101618116979600368389901827973359729004198470195916830461533381616723453309622362594972705307422737976252407854787763585990107572777502678452108893945819523732566962004693481764786689264427116775617094855419375911021359933548800281703751432149331493999497418159815028496521612868523155934675142648470982672555962340987310838713678026914162557273033795295674307972805708846707422839175614799361191656356487764377593410926473690903661664899995642057063747695668188608557680619021566809535230443869518744141929563357568675891623435866200257381475380154269800256002749076948950258715594017580659894506176657580689965628856492921328690813632518356458696901054105617311873412133108184814967906310572482962803043746941831841582353237854363417788627684419679540597899236988759661649170783261101559386125061550633436573523017385572403554872644380347793163646690264047964431255825247581145136161074501892849096863319277301016773093530998892847849326135868748637511220546388466856988938724385412433341251677384552692064502915987849374953546595122627338533390023039974660361645735491465427798189674811665144397347810500463849290033336062716286380887743808699902188022468750133414554121664807196455443664877233525991979613033319943417153204788428774940997657330441617654904461042710502736907797533955374748550253180352804551322372130729355745967342776288116492363748831567865213968583148536082412842357600667117338468883027034215652772406914109214446909622271209568997739361300899541318961610109409976138510560077100992323962109647498598605802458794514537856138468465931304492857913678180400617956872172635146140663446390368385650512099645889638684587673091851782996786292666704765495190860993649988441035455639769495056799975402131759666262032696642292810994953666434005181336746117344310151271561327360522089905121691025688808377086823819969797076033763970097375472365607261498830733073181702426448033370104982314620660853992326455320267073974551083079614815032386725623378103741032875892952049782870156237755996762784219185813163031640250399773563679828271806473338046056101267390148856314101472960929956805910963914537251647983315292277505476439842418048334072907456688793239662564267295651592367891344963248815654558049357898485317420819462778413154640492151181336822332831923632005013814302665877494984460921606515972227832570507712344235196162183767978434370939933731693565038079709089953195487154338252148378647012571248005408371238506757497026801440126078040238927244061873420175905167338339770203392290991670003220353965270875915149336012644812326853560875746023403127186341310963161510736212585515774576721534145087439738200233581053981403297399532052478051664089297848017025839818927006200783236150317773808082938411428763790601208422477078990491955421396871381769545653482290702411325997773313948276200453311355150179275853748866147565807776109455515452723555791270675571088431036618145482677924274174698588461282031223190089575909064464260463937070404475719196798344540717552278170717916942269244314196297146041450952852256612962995654812076304637595827203032681148793474976486965871297331584426556359404206953605643981174091432039553134421721635352718693983972711157072002114564624694408264566990662925140271515007515753849868835556271540669074868259238575264853738705719267834990732457185467685008378888091421535059527760983428108433245780234975061850595082098811119228534252846333195347166956511314276832572049244975019697663636163280366738703113203707186138419183927973436030739173634965663498993285280521885187576094188727006123370933982063030444222474422845514827375140299633949070017652354958662640524022124255789405840907642897019549466843469161430246981385423482618802574110326229426585268428381938850764108390136224396085563795702352262538525958832131955183492174012936711402190251880252272650443694942832611516763167618445232719353363948981664093030410816793202584881453385249308506004275119950977737292374072857117161681823912860449139002719810470322381149279384153163678837385548391122341252517102051026921252479576490982774291465551767953332850952389607522242938032915181978222865049368421009430307217415757415725162615441300977284365285748770192906708410069318120076726479508527620837694895792728474980948363269659223530660725531374148512187383384940096335651341394273448403950925301207115646011142470607683112491665172579711400932073715430819413392282762825425350481531065902232098318771645274503034821141390110703980914029700928452059509803894677054921840119491289266231931487824242862881651419943534031781662903360106051062554275684124789307408907736516461181100902656872931816997193853575470326400843470381185241346559926520202516220851522745837976100835989488540337260125323254180104127490025498042047022568021307614739248845935320347571070423825633383110406267289682324565916711955419186381743662551831524329029773378526667617040172387569442283847904337398015886590972099595210124058094411971608870050125138363988403395460699050319898970571730193506084135233532131674989386056417395972460112427545805216759141808794584077097481415028342645685102537342253354284356941364128336786582140944587816308788581785074694354091050870076097968954591215716863057926617864631649630226798817910851380568618710926333252754411949181968555425572295805933619250537890800259792019818771337484718708727882468027325261399034911020172381989363635958338996938140526105078686194450152345683141000139020243486464014607037979426252747096994805362025818531752599429518978641909840789136795889853174481121816982656661161360922790481938286127094626992087843742498509588073625387852572552946455683344666983941290145516016237655651315292533372278534289078641232981235595662353226529089013027776828372691232397340966419661187119038998454536402730078870142810222561281523922035672663664633308094461076140012836177832245117213735685680137101559863764087313190722799271920177341250265899769927043785586787550365076928949800732845761004469037133577294162148114237690197150900268512395205210667754902733605428369099634439153925192626782596536278714694112623770373228381406753118146870708518579152846090835765119403421250255132966682342209108479348629267929741375143354904886035855060282128296580940223945846796284009833404440512062980638296113774800960109558806748470469627692155907981429935152391388491050639735856130989577777077732147850123022369924529414520091342492382614122957925942152364263247666654340330066900509412648776924152065419692932698799042185168348262830589056604360813219837131818358820501944177044730320253225646043979871476376456426057616207608817657454873500921914496848101244411207436094305653379786002233219105332672417504031032536173853437959362625039513002044990767693160028946805225878629884816257087330339657398323888653902780944499403721951507754660276765573151696313895240154514837556989589427137298840448023839418344780599966129478844511549476699366006870968549329807616889718678786846480326986393254526659667428411662603153805969388679724528910619466935852778072238244709005307157015726877818001427312191088645582553374431969248898052068943202950555694736832353777254918064852334218528053596792178774817084035555384721266636640039350581197567369616231933680657815591490575376485857541374150879405853773520892648014184324842257165298565701054945904948629589139740345818825586873864076580480375949746811389767372289816295513933074485063120881386672559002072687170774770543225266591817388168499808793175909455271542913768062357069254245213434032818051784980014634975186837335447049171547506925227053208731855668103274319317719701227139977663687051980741417685997741618613262302985184693853139759139882166241349453142755391315222082748076535418297381051192303865326446851589951277146382005978685779097021552586301518577461761397463789775759707128749326587620359856224123348619445067691614700774066083492418608967313296909150863296853703952684218392670122211619933311494828135855628280634744939370954883815943101528679502143548825905542039961456374269517472504611101600986551583701134902997740213395700349707573049335734392185829952747190639692238525036264914983984835451668989428515379441993044646983225754009132957212964607895301959523387771154877185594222497686239454723331268958619215859947882762555479494211623103510558171680810714981623399059191913686224137008721594716259692259287243246656616046958299082968975726935997770675890387995939532522142793708642316357340582118662830008699024186607256210034032417754562282283841978669995023245248027760243138684480596271741410353339248992282502138520460830933965245254070683638767033958336635964609409924428236166238863753524667785919259867293521822772813877884911513847466605589983489707028651774376719720858917947392544319239559486009860148044919090124377373921355816202014014898607239595939884045316929115145238964664586663625911508006230534189207764229609782766907476463051313514124727268385641686551128788040710728643045279019079175847301631096710046226769356213412954265081239579288205914510388463901583671744144745780441589508331266303908596235386985522724305451200024530494604148016233651986422037275955816474238316903632242223923667797531574598373581908219452259854649740428803790423320350714189370353483874113578772719264698590254769627142241465789001863335230907909293393895197577969166565038060076347911203492857754168337305297450961229748577458302543877354505633553277577226023901504665828676581587825444004301452554484676083727424393864131298246410346881673761419342851226781698607617518942043415034739956566072256197830944156345255583715000853718132441053735857083433258807814966876038570018404884887158859646505291737976696562209149380228207007402833589541301698225593478959953707540426077164192765856478556449152373335031565402366665876406462089353462052731719328724743788374813099401180403677609250258482879606299028609044073809859723532526939192235240340282599140278688017568718698241272150506992366158415983328936866207768206230525249625587829783437118254474261346576947498834580065751419006322349926971101836751921630139459555970379578971712046983800427888917259947849239892238194107618978605123177512991806122245850068199645661828291491337661125729304464405536122235146961528873216917170285396775504358928895879477856302256828695412786493384451266532198367915168821629138746585852585034719910536780607283846614499353709937036506559117389865129566770830399804725032033538725059204587587808317942593970655372740068604414556165717582980184000502111658034991981361576247964913848335560726672977856735365614133471314813310242035331373900370638802496253164686314814476068511450602642353180769446761622408744272460621264084825881626850871215558470707435324550428709058365957553252481117450767385955414303119012402203351491276622410179994665195308505020827849346754438026927456674318468406411592353729804315729597828218772393618153851884681043889417586990369710940791113706855779866813674194129682094749515340048552837932936256651253098470523120009817676851287471400704847082370178720204028260441571010578442635518933018820975101821357396409261068227877242675295869736096954908296674064812521404353752470429216989702837007982418485477289101174867602853175738050388004314447198609798637958745042775183939294285138840279910847593393957926342848163424617954023250234820320566146301717683927110140342108571442114002968326927896604104027481168853976379636473779990202833026608830065340925721546102963877297504239277749328452900531392819604098770610182674286038065058481720362216639899460333422731177118050457380108343514901731875594701456475765342565627648275232474465885468751544302129547687369491404396791916018225368636033340929628322689325474773875622926425113630825040779102174013639173473065790957002497417495728364434338028652981529701730343756313237031673707027564294444998186691045598393533540119691745284265633202097624832965039845776162786758426839742461471562348874716920125891243279657725531533978717956003714117495489940291235227509097206267636287945446837803133387860435673513019080490559584179834381454559804705645481649595352617515234450776197451806933487796434362845868151932718937702620228239343137526040555083315003406405069646256361144183267679129771344078029260266812779483006740196635551322822234326591798914371245534939005219428317728668896750027643542935880320732059323589020352518444785824882850924664966576019619011118734884104853216411261412877689215255207714140819983355855831596485916189969005403134576081283163987703986245317302610881677917095544524344656768772961572240030625289102374692572724075575680694099757218858208798381762741452698973924923526560364243111202738347645723434806560242776408127420114431009084909185337081007004173308442440368738646888840513459127747178889348039742438111551972057278271691594800395831683251787010820387346573958529151830225385156021933824980087155722990188567179319094932637718370084326895044639994532219824528128562653054307029659419176051253682715213924005795993690124697985089069991957242835478875522819004580084360930780827247476824554283701791645850904140197789626495784911931645903399334777858101792701893668444373454054300727577912328201580837010321698454463738898600531477252131818120381748103769465959246963453292872963594213870967751663961100704075048945705481581604439981727553250801147160675760167955226708620811892996494340728560081106143793745713467630335999428284786568176073351206743689809182493062359702124412440012626622827222712000456363400235077719698032633668757111585019554575502143713668616980229624345985910637516609645759617954741066140099406580963205014316256062603501546779172860025952699515562080475845510959415138370118241384203547692989925055391760489779371698240561661901267706941915936141088374938740081926152284630766330369909004128093598109165209285267705121086409608819287527903561090499594439553463017434067522472955051899235210073077579175784509327846124097804280468348272404007947598500295299369733557548951581501102382696424779564530261071087723717708137385809125322879743014156542656277499152684378316890669360393142311508285054774830113702907063307495740469999977325011873011836601606540368429884259876222381277860295583386385817953807491968163794941469614256248914822344765841079983189325831513863237839087144064151073585623836508778416299133074611183668638875334581807613675918467959164450371622523692287018748669306101693572744990164516328437841314058286955128635232244426464619241569139865320822558743101031605407096448258661730242690322093173633932888167146557333961313814857199854371694681783209930907077182248903282011592027598908932183957503836615140518039270665429933652115893794082004128351196676397830986682968725393482071370915003462405607849170663537430935094305983267543203501704673352839286534927352398735499610032462459900802007593147917472722515230387693624167150902403939514706793561242568282312312619939949613939809270937008821531929499837085826268683906475125557710355149487387940850111704998148555328965939514051673756401259913192035114503751872707481727254267425083737381915658320208469864578383165592675018210947829333997026780169534801858329823657423319591797833513556850870701125771935389383527953465939463522553482504329151743978566157064316241117024634859629660764845163792459432291878817016106022386759017789006616145429612660807686923710071270239721406955709986405263123158407448791158479402440760731892299284799616187249833687048416757287554734262027731923347986682408286915387700072902722461136503380886586441890546418426169406797030139572752040087689746286685187932364218413350996051044599749949743776955158583595071430084182528627877558270456232614041887850283855418168918554046514304656787442731341587968141563557156510053244235587234948822643221005017733807978182534566316760844686460519233891021349615645100177366820394507161111079921456821505911441367636156709224515953247983281545408531669666288925719305053191901003659560378773966794593985376752951125575917655175435159496334220202700661424021522416596177753044086350789479804356112491910848128739998852156031112550611551448333380644930414610185845105469967548844953093215673207038518085332776937400107199874873539663842101654602785801171316463372882911866450232990784784263421030133367046564353986792734136938094962543904065198068039974577626363824257326610013332585698531172276947445371875912170362257873287370540921729936563170599107495174108606710170342622105622865414105644573001318150268576962832202501119281462963714006755434802859176404295818070640644648292072182093673351676642510147775688875952503670912349541354461615637607989419528075399724709315330848776736488302985995670126438848503271583322940372405549661477039922851537115711518198944398913989389308233559363046942552629021798314037249087099667595635992880114124381564318886246989254277844026155839957056892019663045269979822560371803267842687245527039972428334886903930002920266926928526802988184900769633731792381754283699635446886956735358387527707796388032527060331398719656427358217267170926703467595496358561083568054726558750149257692534152737889790592824781379080139390054618819276358096785319287349892365739437583234669981542148184468582083785256278614884061765703037090049588674765179248205730925310048262839455469697417363864523863296137847076434153729858342562845267864872352498349932837851295595902628410783068803263888168709474204666157035472338872571603180602441878592296019986067018892383738187201787709767241159880105814854468385600271723765259226319922558085967488361814042634244106319787163676731080600996510285424713675153704343652403894287470347634310795615827713567485161567943091997519076934291010394003159557334186908360699902587654366951239301308693478498158785118050085201697270792705602328021878718903130266374002416524176097156500828226911023008836761901699807401776362347952593374885116472273477881374224736859034007368917944719063008957145833122138374499416030160281858728643609289377233950509179017902727889068440929596206654718770939469632742288880864936878990904697131134476543336793329110177755674582039667249841598596347398261100409518537544738478957393102055753722151690029204026815312167193327267777593607449240057604758292872630340465324349506949439689794314928905989846522401596083912755967089774576355211405031699928372107062171164313719359376142239412343814415983896121946677564559065447387610005990940760297651266948469398451647309964787760936555068901744260209226388267216307274703579888555264001728767633638862482486382048294462374296194568300407057102956794483965982515727097040739451421343511455252321315599674149928185207349367499636683493917768228141308738662643558944913194980505957666741751430374697372862077776749446030348915716102132936646146573991359893245787641319208196810503215374024010323736931684986535600012714173591112262272710612318975522343529546578567700111400995872375706952545131790675525454127480676378590943737809913959242233218200506071503941239722451627439846118446546078295570528117446181702616233729430072425625678631597816949584432997286034519175721456615316728969447299959489107477243392290580051967698410121075559322106968056428738263108003634485420978289761804414006278637317522439971762378659119540138049712203300928060800376511285257960766459150159669724080113400416622507156792465199669054708476911475970857519084841564849106857894275069752363903365691418154545800322839632989657591901653356498513298340580022366674316422129908449697090585855619253000819904330398569675051656958909094119541934451335638237006281811360283418186078838324227589311624016459117152167979845716361364248281455268336739903719780118493529115814596687513093470604955955940159012905113167035784789466702931404374064131306180393666530727031930182391969986329099349390895821966980459821939031534825353851452771901438222171011348876620901620968292625770772104026216922888355417170620080975723589907697443253805564792425518443897391417526077651358308010841092565035695387970735622477408053085193058161572570493169335560541937501844635774334962863612911458478035663351511954477993736217296387434890057594380784946874973626783737405260529197334848185769211680120350262240143497563319832170685038384767138908432088474253454220946831796582976093158599745093302490895809654784580098649585548404111412228474395012690067390587289899913934019562735747741660823987768648279806722121842912434412918725145522434233448267279164668356775410559781677939395898313970881206822536322710469203133726239079992951772631840368582010570929251548457759076467100035031531611768484803647966751083552378138479994967165111732978374098631464153602828366856738435821134047481660428588005821049174793627861550964798740719203496045712091106870886569220032543316687857332559381452732668813025431674090640895611301519856940433009934581554471109026031374654118798993944570153233909552095964192714753901275167686764958148249771775176539669259015661139295144672358139670880160282968159300530007190699730531156077640008426405192522596512059159053389397790291096061898277741382620601386668204630359334320409322196845058495715389404165026779082647056511907850203293165226496867344195833187248684644568877088868914280252036208778850953869959326533147944064331103211774005874702999572250587935708796757404638092614630239217196048945180852185988321626094355511827297754359715405247705426239127085316269847552636457939062253002325153236046704793828765503603842542283174639760571707691512657728239182521783089851959963658053989715642208363102511922843443647241899933783298169893983161464605109662938962789207559436074048473637571705406260394544021915626456165428802738351060939804559711321242627586061771004919617883738697399050965365516218254630252165079655472096563046571189497114903580984374856465577079762342423242302626410768027965568347986032639738903386191061611505187692102936210309597750166107540147714531293060792319178503500934767642646851075514111597910979015589694897585028833428751044357248190839507692119930580357342148785845715944884942527050366296164229895038021122513670089454554526854678593869544163989539624180441663013033940600109848625987252161914910356132851043714661670867442773988504428853695470862100561568142771742297080084515805503339481495217156345851340794500663750319106858187846412615348115533367142517735085761944850892908943616460016675711501222613789612226961595747797735513976370175703855816619751605278347836884311261324969191953837140400918568608926509133070205339814469400332665943362857913940869909744098993861169456196195935712299344992728031321928352176045618827621423482132956126652185617811092856713223419211058225795400565653257832956057925481953323558206526335476859050216461432410090242870904470935400965031096229534687017048667692011217380793105904279886330325947953442184641748279831712740794626692192287808021824990236597262659887482035310565137563709152451862420957241342171655311125619419562413193143536203681486313740216276820377952776528774781856613720453036465825190692888825785449700542801812215771161869317287554572140458576888649045226728589363201642463261552533714677576656659712857559133127585568309196225329339864471144725261416804344591405613656612170186503873968755393109848554315370705185214785915853948182910215772250321221084459899172821359435194723851371141248905688085732790311918495637151702254218952342239943967423270566065715139100358757810306441461387184521909851872582183843230776393663832631739555919897217972840812789791132541693007720449505981715790293667059293321470416689681286306716690172670253088335313291191170138553770307355310520236341491887993209444889897514809334230914450144546969385642052598938706227238981154789722364728275767583519709643507569118540176788843975621364248822390449926200058119921548694854464046754002978977036662290310420578463951124111581713432199570521775422960004584794718030477005873468123252816796438347822806418777824097906790400788589013665908981874895410348560692871547502237845806523620086047696523839139711281108534448537488423809155241189341842600291002566325446660034901906391998955097236787555603940203764246883096099174686562146376541366402289525995002834203050225023853746178186441965843304258398115104093550102991476187840975255717466054435687948404409580821207945960403913568906915393532867409199742547195216130646029154183082150518621980328656132697725515195790964913831458422395849419685599307688566926737560344515947413052304385026683972633533191881034638737316582906068646451163293088609071527244546065259938313724883171911491654853732357911254864907197119087386835698318397704787005364516926817661537328649052252904014489875503147810084889193685741014224607687098266308898724854662357249540736952806447777396921642986876104836682579073332246644161948369561876363553362742351999574476847242448485276014834293068996342250431120117769672306232517171440654686419028688016112012449675060363844234277634673349700406026060839436885099397015435378606423072543549398176164368739953716027712710055580118457814608513924605447383410296951611416814870149799277614375669734574996689437999876821742461691534136212936611656021596803503694303293059564877500811016900546315012113652595647134499142884113193342421719188517999803386593749230473020063667900426198625761090172222340950406139103044771168738393379832664448881363171467989514906816196285994137929512279579778241961497366991519581277591662497032921346890050200195277800598875458002453463896332975319551801738765804336718961245098984113637407217730953796620764206586822095728239871078894400813205160527564329155554195008206830837752315979639239320581820930061938891222168279928041819537272796854601047419249688329349851659383534561157707535443671919413318669258571205454531241152860696291051504258753015947083408580637572709574391018786313757803410907944106291840631645500938100581384922312326945589423128242943648290132276892170190179716151738193865632764875251004011458146174242044152590296351380038032885291182413894044341083649884220714871739188089486187943256053408334816692605138568652258374764525924564961495316670833973671037172024539080624025204100405924658491632826023290435813151142606372249972467567389647146587093235375678313811853424894090982088746436834329155333411838383240748030838615580277790557914949529757104967622944818593151230639780320409045187811922873745681540324102219926143499965404951398933906292526292275938089784545107272671121521359728236539882045736121976365686574392746582559702327870704246765479950763089383190456846096205831960288813668705617379166481292260329769565885984672089820401138103244039666623784694445765105956432117347872924814915499703982407884159621987158385501249241596237589870048736362959629940847623115643950968409825926771484184911008607739463407929383435023783665035680115718730633499440108176921664025673985981761657129734709926022380902106919977853098741381450794075108182683437936539535563678077694721700272890306129924383684192320303692957155828029694669877983454895161416068218370118106999789752263931390674367874090115247861834565020943764247493602840597653264680229741975179482382132414416853888261347457149512099732109116256064712436107843663158950304887653385081380284565621476775985466900910091104725627517608827101695265155369455048473134599716805553720454333941144367456953525867154090741044008119383740236411907895715419743847563067585344896692288317477036337726521132583459345529894707524481120132734660128879044834895597898604211462347281125180641581999994120528302427001096103093186333593839216745181946581008603256887223250498921640281361563157403090721469899870552646789615712629609262155272432583914260007754452837472600464861532713156680866775434479329047348628534484852089304880083523390784479836239508400660885694168088651834838495607802443997628129455827408157895816618800185662592591868843029041255996818733798855911404974060051584429604640395306836328427655871573301397340968286480942577967566179658766230864048058569948724749556039023526096830253842257835460205781326835547314489805456671608087772312222732726477161972853515971790973086577154131261104743399291803196393022844647976707467915382971283677398215118160273766528624906220738840999155373944482869913670023762894857804620805157763095863152454707518169923581302845717636380292492182183078410597284521958685712623944639702449754314673271838258766367806875455787395996002333549393693601902098046989047953157476677190895273013490666678895522653656099219886455946630448883616004018577870649062112116308772824989833872198518169852027724817670854373297953437719618279703907556171490085794428196550171182876149204400268273620148043976250410580100166912489238170951230082053397869799221849361418728889799886161337922759161517746299622918382927620625329156036131782919620671724659301370479272738990583247645792246628639437063764241030243489192714815777994062051898386115669751382999413361857327203739690853766362232433461907871029369647398586315543829453644579996573828468294639242883291949568230020189525612700877914630135737881951426300873887338637469684065612006930785935832912469266000635130745757124665659172827896469253755824988638712837167480719682420649084791814948020961781609411953219684987018299413195184686611594550665705775630300218166280519159800415773718094722103327424565694071903676709836482111062410722588141828282267001538137334997379017539381540942388052231798500708862903696280127715204426335834267359125173135385032987679064287272969048357179265876584696830942949071744596834211639436180168271741482639525852360108275889561947301271698928924432218022917860990122535346886520080902883887572412743399333277368591931211702841265738172166229002419072157826179183063386001350847102588264695622119362742596769720442166214724707618434374699487616752357004465892188285797999703140792186553644186969036511340596689967832561909435534566992387827714786686142211634113095041579278566606045935827690907855834094936084547035774308750938755266074972781848055940540802009229643239867718543328232597095600846097484858622076069816850293617256079441808923806505672298676920481455037110374141094727170762429470791903215983750759444254312268294444378318938923127327415816822117748496274626933925450977872362459624903760469574001526136077253282369010750397374872209941700449856245486896030310018667500191550913500991859771410545474321527531422156752086675105995300943788014503257088664018240797517637995672192147523148160806793242225247972990463884679661286105179723681843777998477887127234714860681937626496088247345358485319172640442805962607478366171066753313867857424147902489519746791258221498877116381743391617992497293092428084861273677187475347536384632160704039835739212761927373258009580502007253313885691202847279550702606140986013590094608631169289031485317250673244862295105903745970195931125720221771931695286700128053001530854413571197005420715696778076512238087018952100656588545844237714547725948021634670562202424627065998621914604259029385348261855288987080500429510525296517876076634812978921427143857851273709983654366898394619557085259949049879968645586644773722740983911358865308809838814212746836506816363674223165262863686595324365229653500626771013726600946318899902556785936787264795973205461166017297602955652567054112752519091566029957468203662562349071716800910725305192091391257592969104282084637086500230474448007359374620346079993878851506135204557358703475243224858489819025240586098887782770491161365037703277550937468223857702312328217258690756704706919565339350855628782383798329106437086898674280172950342088795023779138817146215776407555618592216788093428347907228842853343687950034443485794986113834752027577027479283038932908704747902906926173088765553613136917193879010351688394488274784322736325845127965535636137097417791953318767648152795461741159625654845883381983448704241730747105697402776629431071153194632427592161212482565033484526217215610841897092531354233956245793428163362222361818496292700120983418559072817806446271232790692821352178904573606260580551962106242303893641490273095709800749832413005033731285200061308334917395726679576450869511366001563556955290184951236605162236244835085008029294208586343043142856801534632192827476149108736224868609774983385707291920597589019981802475935647198461353768306177751169002042768100317455121650704079184507247901626599777824538922841492989891127272941763652003342996837977232305246920798139663241913774188474440982827684353684423839272167302579186767104948901843543697789901102370605174599977640305525809848549805418625795443554845923166704355541882008595113193150325364258997535177861817202945002623438511654338685558848567665960216571878645834744298081033449584240428615977723075295707941730255914364250113575666919800774567942348164673097234191212159914650019939354620910572108475723754512995799497311792890881634442575950505061747330349607507927184477913395886736211343937919812101721180527026829049415304187696931600357008662297111029836373285396488595737873136427828075528657599948376711937978169751004283010059521241805317043838028798192988945324266145334981956236369662547317471632940160674887703744279895798441830328493655907831187455834017940250717145004664439061555318258164163463824090189454816456881494832437016025244480257290154375228482176613649093735616477517136450888657937322875954369745937564721375211251091969184512698292308293661336700209458681206086303581747656795841177987345797217132567596382355026112943997231690181962484637818897945478982137628228980374146350893121964522716057131737861843195406295267157716625685853689384863750027937758975849950024212640236138589499576534647473517203197273117261495171993240544279590748758585878773374284747017277461739937891458857289581795529439673236227771830526722104159460215615354614485995161806003532536016616368953970520378044846098701407379406640140638074456428390529609783144957471041763554432932921719496336973670685521240285676865613647530811288403442935365591653145508113160909660145487609849404562332317171039287500743775358372256603006809371562799180150800351924884850130354556557095530242267171404975561949286859681399455941792210455884391223352936804785567636732707234998589345707588406412438580472038935736989065027700421896740981169260475756288827796784345034792902217797089863668851780655988759709392186635390963405038799271777332628831417372299668862268630153547076661670923942002242465006852858848333510261414423708975933254292912449383499440093616789880453128368048143976280720578860231388028450643730755094810748798990677870544652200423749950611159833683199837192787444548994503470510094726292773874790011947916383561662074604626981895723826831181822414878298947325118911215065878256900746989963864230700467352266143990452444820454356737925669358521283427332820854030852814971627790652750423742148702079857034271811800324801603235443781343009226821751735202631606608099768799117787975899154266938205466672042562683467644139298809061488837579991925395219946077365225147014694247708389464484613545616821486732555085702484740819913806346965355719785913161272312004123698658208419799185398981943305489605615800577418858397352935743230725946269903968494703069219348400082104158255275208765339464818012014453986830699097711203150415660511791755760362597035421175363641834823508447180699216402374569636569933011571416009546439743968080005365996253735964727278129589000992322980716844603757862077485743148916270433730202242665265803967987391268472120099770253997884783253647530366236322479042155669377832957889160643092599465156482427868509683354336347090721369464958393591261052736510392325367717757441020828065109697859772297199090257613740103230889097185158811736578766862399827232870082892122870770169276062499586589861439843598596495919056071058133855054071045827207468038603120318767707583057203725597895353251181250952723445432824918814529943667797000162952547343077178650596156307898925433325770593067542706269496838232232970965494283954139416269940771791567532558436508779680363738879973339365817790521899237978662060190284691115157745487307534616936459842224418553016023439276042779455160672314486155124839381181904500569072905206092764781997692689848918510686081198982453427052347214664976926294475607236490041258911871889129838156340819522931386816916150971361425200493528649909094340795911186163069462734400653892813973653496863428288385794807177683959046043029202912088733850593178420993894183079900552486740832699274928380886755673119923431016791645764422653814938309360380831161254155362331138639073192602082731080139958981012038129058152426621830328862787290792513687143840345275724431002424091898100858601068753267229679631599030578250944232659592945481858128593110596462022793316285956740665355589935040183511751446078375477609103183632435388170818401820459391697903687120191002856973725769971848655626779764872509907839761324910483074384862330142007658192568963708126366510461216201726078581640931006599412860819784836343197190002293779312474460526737391955787674340296086685684262273345728099936572259783257271104794554837806434220511526747500363072626904713052625316649275834755200759019969529132612146260804547070595506673134542596407411713019808956226908853250202848212556510232735272812810114006907106274308164552199560847721180718739008475478029869503092904621627266507676449426041649413832680636921260034954901427843898749579204930526133903707325776451195512318466876365217795034870008287689789429592413644519434193854992388198370880215584634662638555910810353231460229177124814525446127414079019366689019405679534447566791680175582860534057751395832926484173077003063427405908366703836209014683513118917844143826131090749537622460527882121664479079862076261108226552678496995605344779420088494599862657280783144265279322128279667682561326275739738875332655835019362267362375653598238323180930680989776723406493677272480717699354877066753119916128238762585437212225198584900623411211869984643052525108985372258260338126376636932678063392740303581249554058036195225240229987233199982956118918929595023638607887753426718159891460942494763715374670892291334062626618787655183337003976803647571956500165357988720958439682469840299646457646591656645080266080138534052370122568645582376440617641744796609253461364167090761314435437895773953151062464046030916132640112908692850203880333664486392799717483212972062749311878161268369930238320206109278884317573911869325248311090311353386321616050180885370637863411372003611354087328398643506183388782993584064014234007683190956503084337449987332089147440268802882639112700049144414855682268941065889366909592475476505461068832010540690681649778229081911078552864300185594572259861649961763808690907629684310625713785050074507035985291955103087306363414099182084294702843146916009674524736789549508488954281532007211962806724488723199241730821231087869147624069760502644634299162978842319196713243027257124711736338690313105408706555233169343244801028054198070044734106850468681901386712888411024257722404875694263249406983968314139398930331085426557897331716757413913761590818682616052436785700554932393079782996947760793218838620823465948258244748786467643746425946011471098181165061168356384347157489670334075621027775663174131782735595486919368843478666477670411040357069735070789312535013553825380883397573590985321479270892348207950090941389707466651269173218403684985256085526012842294251670714189797403128371166624684111328106900677793603904829938543049151574312177379420862919801092310926304778760875252286898523089481792426735572291405763576862859328199916510291465489685302237103790517329171613163935836033915457431630049912572086078562087457559388571948849484233756855358969434589566487346011376938054475389461801665367907868829154718372862231707293218888665000051450298376488154508088132555088014552024366738865838953713543040484905644895081452850526770925709686180119624972482002206450809980824189697342407652401689156949010903992401623963944476531177292573214770606264176959799257021225892326456777451223055052861116432285730790188229027336451799147531124588223327067107741790606503045019796645900310576984002983962412924516970474483942938561803037359863566601775028241236600347893730586409339994254690942000141849139794022130978796990482312934636712318137129165022998760232004585732829200561585180367077392702037201232537720550378559213981337879771482722862706212972295756059844742315278588630797447304629437045339289451696443856470990216567949643201010315237821129377012983182139946448995874742428976747583892923690500612351349792813409573534430905591748287493825290362678214839771452233917872129755878091163644299582837845850058426076778093490757955400280952898471587904567377196821095725342540326684172460072549588081131607340892373665376388678188405747245853507121375763615048367569403395236618837380214938020851418163407399147701008347453630764017664671158995703993716812342153501754583715389990042892661691955168163337330838375542621531681735562348146838046800709726751395103328972181400439466661388484658840463382734553988745167162316382500924220945269778856888528498221194025871305544846931064742657108816393022267401425297296977022829572988995324718756885132332917146814613314012892610454357567230307638175681365385409717427266646249928257949841999434652600885181487481726740577936297169352320474591912564742624156552923691178125791601364478314741811660319549074303240466227769725219221298443670215496459051616157447228068053927069080611925727744149141129744819321099683351370444052283127358401526314297967893015242261766927221522555546846938057750619923271832718526688851201103730123613895996780237393648644743332999446111488641963005388089802683408368229383852524583792285381395886829479528839806823783644941770387705571428033902908659874947276087104477770479756658445371876985030012671551404326312645755891754288050749518534384650391112487375481753401632896118081668560975418263117009881893234691509110740156780641078051301278033044243967069989423394451521042178784272901031701677426589802001917663849860473662894837630887843332700860575722422228753376769795362198527014247191068016198528071006894169709200392662523018057102778705535623291395790676246492401109749273240103242293157502971871118773567162103811793802004574721748111948743712715562136137653259353966560358596159433334958939848580014187988201749475860899742923323207107086726780754191606111364551066879746943398445747145704043921068304297543132591953558863377499504176674674345104562519045557370846241423989586923887941032152349752623498029507012029681078091525121970473847890130440319572590749676071828710576023482528098278260110937771046019526772334753658580705846486929636494923171341645576615296744293324020151879663539868105735822904545772428445707122663504646030734307644757910873222993259336088588079480578381779489035996667947838669177137010900293071306271657404780116244953241569139846368549619914980827941541267172842855257546954680000998035248498462975576133385936148714073155213405208305852951660630947531187738120792040743691027089222690805591651035787903813912082566187044376715323093713360608696867361228045056080046845540732032856196822889721569737764257036735735486463659648665198064054913734745430772265849461935595804837540642996307177033378252922533833390155178421986138895469717919147979020785661638451783097411590596176131366552211693332038243986265588742987819603328386396434483694201462159782530447994608474289493382711547288952715318165417719300925283029311368649832776206283048517489224908490681626533109087475746021159771132853893884181108110013262833103894422881531060471412917810933872117277292573195391056240217843402795548582391635595281949033773083056297576096026952660985614053009587208195579218903734226654573062202499213773449505358910220354338207357069790848424709309212518359294703936740259879103707096256121230600873971936269106408243634581951020665177374799731521195780820508577603929609344229720799302202424660877141477857891435548010800512892523727425688969012533052784756873375377129656672712552181935311837699901101985331675531553538153927865107536644583035102463341695269575799811295619673347805229913449217952875544718513704591186888579500542145604606603413011619571882752073269805390470171006536849303326775751338623632227442691003930805235870451393155262631748539075495689806560803303886029811721510562975530743770408517232821262861185675068286458254363063565158213342048364452382010940125886496869474549287885079455045446953261857929558222741679142932027013673800337727599578790961343459731010433257434536165934158471247064681399411763514401757762012215960897720419307545923878017852493951060336926307540328314332433727580190809808697473159337379829982041469293389431641384956405666229484007142994137955521471087833517422530055656901962613129455417653148037590360893172609421096306766404006073954651837244588289594740003601931025484274875204698747760245491730662447014326009636587572986541115296156751974926556938390046347449959168083151902128313707665332809157393755711191620797002969820459178025200305399511240555730222065429213619605324769041840470449842781120296665147639223688387089217970713930166641377355324970261306754333148799354976334753801384212413241434470424875936303794364556843967809943073499828429902619316361633230527922003936522173215606515659197466497712180481851738603916511134217054013535549288987771784857761273473453354341935349662607506642313449245075913373798866878585824725942950123935426170139405664800728925463107359599005866689835756427826402008824306403530652853837548440104186243833024953156566173469098031581866971960497172729195791428812494353081497298399859076159127830859882376378399772842603853134596971615670904110272201792408988242932741212896267651917906310153848751598529797151262582458688898468221538142565697978064116580194592045646802762778612382382504452957268998430564831969852897939680169897071752186135811145881124518341046781634673990932348108211472038963047402217068469468510841120198770332069811375439014360903105428298766835855276664385510973301790567441681052620358670019366866736709744200687369324110659579024538236413728014948644039232003303747773900374610934369475934276644014238148109601284442138389903949531846053082838297061592377331193550744667395372309508819697219022438318457200660103839778973442665841583067283735718531911303909651991803758370550194573846372331430783363767784291247351450530075116439696751011582544846173018233904279294831838875339127603910786049241888275338662274060292259944683754272212346623157237905566955403736398332896938157008312020532940579570562452594270096887838863472699389604539139916502603559975074205510930227555883016350262855295222064048694755828669098959494153234190996294659088895267539459539896727276223162758916310597537503809177915225450628347365146351093409718072813723687126886624147798104288619579899259296798435773895247734931656037987867182372443758368760265353437115802233218919024551042013460271937778518917108398783891192856335627905769566293827185524663974772047027854942237732781500906150799426800783206938025651674946155465910901545325938195564603120080881390097351171371311880084753414813655215257879662387840242314356599538357869282294597476107282865674108485362060870104922298690822320945832464001116150887362684392094555813670106840351274271856049527889659965118366617877260385906950259024866703667936084088515634023672055052208318737684901597082113591838339915822279883215059101099259452650109559271470319789602428805171984212902317030373024729974152919925277760157731227944466261136563441567428199819692484393753175412201852173577508001389576380690801788717285290283817226925312093053739203773994982592781581020449021057985860309340227142211564365065109999454398622278397488932475922353499738991071861545459901164895386728763782688638818126491893154092053869522747134629114701678089132221477188669942696732181848840516450391940527948072780563042947517351275821563320784247558569145323759319933207424249331429242559276827850818288156031280783026533826858658268214454310334977841919268464083783271253101091342725426562570556780793528964260669899195842385909521054098124171053867698705956174287683927563215125797686808888138954607585687399864864189324031453630488901112741597974384246082234183180897377272120775626030485882936323464100093399567287622669969096857284125658489680197599144520644935906992995693038422077428779273998607797439985146579216944616927770421233774842653822124753733982597358879019757667663740709418803567116214934143416850007098059893006100485122203520927115022309668443897506116166238925678729598489606815784807500661554853067573625377846193075283403172742132036121325495272332911864467103373646262176172204585836293620763037992979682893751286884739849216062147163513955896581858972329033229580015011702112748660125507842664342702853417499842676027371905605917833228873182970171892473015606251453303603574978703123948610305277137444645019844875153741325479655556706771517969559681494060906118396186304172133668628489230399002017665104984469793681689194463226447680171007855871909355269787583861827454544364554105177516388530894861395645146999842646683360788317771736391352878036602061371039063127983387501096613676534930357022695955533105873169294912859243628511919573101387545862987509916255317055886673156180327880627629890512929393426287898117524026518582835697477089525247048537584809168615864609796284156848907448596201707295435396196063969702205988927443170790796985415795251575171181096031752559552373230428263290224921752164529245818197178140744453629163559133611122472923986020724155735460978849581420850989401306064510046854615751381118852793281074204205200300178397673783867165861588131098321162391655021227995792744646980089666614809302288685358671697333069762922530786976489508808423901529026552312799877378931424299576617488958333677496868158549153210178146762273574017447451649883325092339797313579107708027119134885665375925684648062611038356385853455446550906431250598494991795623997228036740145096120575069530466720928383172983535114137725799175434151049641701035977875151734473686362154187980273656772320404418016310915414342833457332917504295540023865259779579758432717678424862634101940263940956257875295232967220902792783817464062408225782533141943059442386095872053078294787651458942555352579585699744240147822779319636466634770097214763237490895775759269569425556572487998143713575022969266503558927479816592144544853771225209697686541538699398413451733592117946517877470685659617627779607040401831481824154765185153660092121219547538306452876433037781408198487254889611492724295000783643085274926412936268524639917073474459664147731552695069564975842232285149499290911807668206046776791402437843460594733197614035698676187061584837356523252082972466056527482895886788785802228457170621477276279934584949231876038714821572670180919983443611170712038499417124308888556210200958251113949485080632359596767418996815979427090634785297956763428973096269294891011135384151356469603768572318321997741904390366419684106211639949722674448977253574225960255592831711918124149111789745674383713580316191699816383791290504208034146519028320737395454330452941740345096172587148417163369517394450272912963179851868848914030493307480831212037910865957280047999778571910460130787994887709479969619877908074196826002213163379740773091563763164648100090262052624702707616239862965795601809391213410473857773368031662259343778463856351025124477501537499820373826620499235005627312809511457095961950968085612925747757736905284760243402593810474510037395127639902764074992625159618124492116784345484565900606587163683057923081733245135276436736929712789658234072273212351145430309275727620764066799278270868149952342995039788933712356604409012188383126777403085547527311071277348470493037606132075525299105318287083064013959955078158437408408182621428058541008066879602731751269636387167890599211889693550950699281212784706830466077294450481455098533088964711162509234007587842191163526735999955416717997938420838991564645896793798196606648088119195974129009349476778503188215384088188735609525803690857158669533298902345150399558267915400360916924943900129345089982996435722474012494443949545893968284919506465588041640282967921999032615721628630068191197918143573151089827481818653110441123934821368910965368801785612684001266200695203902390017378833101799951254711325241781748190813622332030095857069582216349091753053602189309179621118863634751423485710760791287977478244030655374796016279971414418684878405230618401327890956879636016571366532869313078407785198659920051115037449737489640193327302965858161680709218655962714133535284349511593465620714149370458743698346322560947293710710186891252208125109188963807000528495319918308124347073250488984084623437501235696357472397859765879982056555723607238024582076207506368644056600848976158885722620951640958951599086567904693514416531601963237837764054043394597252443288534548686459979571146930229013695194518879559635710693791845692669907913863450934253846430491989758274692669398843532357479639681412578907169464612320010257528395911807345117080406252476358721322367303868403783901037981083305390729456487552307163225568554894311588217665608730836141225328568143458516603549667291125427152876543275906224657551075676786022896958989057324680386577041415448249954397498087759404976059967036737431324916688794414852774715053571354611998194017616307982249871937595866507311845465981139075976525272364150050135258243083255878828483210410306315154544860347028061934044624751426874361337306963238768588966738041099617472320018092318487709036776809685918054017883186226892115528325915378168177118891253058052136920814622658373124024409800070245304298315854596072868621397199126779608922204236630388782550786419994567130297201335635754116844042320963825441016692073466793750854175813076972091044943702051710830475887961139584267866411727526849638608655527580648444231339720796502717549521623806988823567274711675238349096418970273323867047872231697815893952941061032428328748913441336467695185993292879237524672634414865891181163557252060751090282444099576752803399021262248764059671050810244450513804190607790157583116893076866259878505247889752043977817436633038880852512992135205778028746537728272207087072501553401931487896264074988141512234241474737314234995083023144999757754104115182101141429954998576191114046603605902613002427662164738496905180764809277806604061987462136001138154153287154576292772509329442991123169128209738477029363669337325486325944885469385569608834538143468826320980436509353117275464278223598270462274144567154876495594884430645427265044319370557414464664622568928009780107795865471400531846881770982804670813373326342787622510278003859192596706185027468811368676320459949469149134419854752361496063393255047147288954833328955469625258909779806176323946381305610322563379137535920620242809735660066759206274709276405260745815594409117312462971096475666630720950669677310480179053874178391018290643019796474508127372231410060423031125962279456951516154912656330490730681329742225542959310915336146134612484995508363915276513379188069415866721272306829646877943800131394242684181669471792817599272286971295793860388381879556213191450720187765049146243849215386079451303740725073264510012422894998830691826431583366936046459280985960514832096791927486914493438749647020650871148174238891661703188901216638917737404223649635763211627508637571114157032178541887082181086517600797988266029252059770242343232296166774598153797877168945789699069882973954769192810122933058178170315451973840675286730412962158383610531460546597875215248752707640369267691467830660026469595428562279770425444580492648896957100295049182430283851551242593409936810716564252418092007783035996316087531974764044018420538121999761917281239082811162070775992617617856424125190816815752118999068194267886444015696026689914518683597274071833355230907800345604453794313784268845951130948649105764913420668170605391907494038960196428331936548713961499842576812277771636425699338296852273667296930698478609227572889658544317942187976181069801816455398348862794300831025913571223459351058246546515672804936383730821448884024193833860169235132525330774357546279523141085581247937485928982613904361451274475705708889896599296573400133895586275121826620541416611121026473093316769724451508480734694790673600979136795696404891527565808123629957085482399137287294977653286077237819146533663244010940343477237918158876587339548229593216341235173408955407597989772126897061626454024591627567489635131736479407089121802246802368063764539629388748962105399095072750378920508135176225580383334180285736954558308659594620864250037952469075597869933813481542835797626293567461464484025531720549257538942427756006771786817616102668792791607512890325389544051912538561674509761433388135866824323745217348334145816353568766264392657051019071121511219730985212675526300482270114274105563852740730557314125747705491560989287088830648513819777431749014012301129916665786810196072862645959258525806881468336496447571526459725996829223152455093461776176761078088702607168841218520847655426653211974917907027141844670430363279546832485151738340081932995976474302043720100771180623968730697717181003678657266749856565172680442670924809556888066550648349959111085723568623774146723523959998176432600809361320484060138080910359393913901569585233407965856042987557716786799927170934844907368499638330352185062058254207290990546439233796526871986840607953062112912851184568772701444761764479870946538200038789084964129231852231309959344392647718547508604904070988827831381709618032563071877275249852273378771110703156967779584609951547043535498849762998974198932211372892362919333717627849496481566938247449992559430478687531222951040214724237103312332684154857198849104145031958057690199848100854486003995154387903026910259329018441225980323383777084742043788004635117046961556386430994105671607298310694291283581498728396374738750846187591234034643301893750616981540922797682140216886887036503008671628618919715294022639511073500497538205934514660719218674290659850341316009483795555240109443475829590729450261431235776909456894826886167992068981230991983992311903027192345372064312047862919322740063118310961264817755101440291799737747696563477924696967842889977484438654968040249102265264949341004590509027609565327831426013914966930623640603866881527194006541838436370501223050810956921584662979032025074088625336807375918845952352510618420838492344931996718836494512634470788032726562537044428983465267535846857736537022765221229327120560993516518776789065036804610880930999720276457839909292293091765712907137829939545659633616905681995470869912511761437560324277421640244254239416871434146543158430711239465900730124656324339913676228058862492842040783484734994100196655299045995529656534323614288589890905531921762105502414096488294917167386719888018625663311412044020983950658053106214190433897326216642571986615770866444756494776068180445710336058432634486649555954088999223211994005985888115493441249506627002939032510760489923290295791580369572711046078965380465789263255880936641209864793227983027642954162708255168116018036232287517885591382178790918982098302137795737179647330171404601427655915621898263755500627502789188748320099381809720865412808782780231990466150214733862313028882256408472981963105512685140919354771806816910696234362520660358140049208339659026436807387199554003632104946544711372155800535698552810350564416260460662141916368631083353636651998229873430846685750356430497385773243724243540092896027373661040118643614902437827853289464044480496027679894740573412648875567602731167733640056155658216447919380936422612813434447252920000989793191884063594777628299229520626615232620808283023671761918735436551069697746959419257226447626174515022748082645504954869770907653006279462967429442529385666269621436319889000915709611304980577132851142363551466539154009243495121614732731878305711992056682843288020786000767518416739882767410009022559515039502780835323438959295752697891857458564019130251253081336480887823189443927181664222470440308105505034133272517726373264986374890811985647186920157214908845811767812553301167791966987893704909802348858339787738984022258523010079118943013416068385505481755310718389997525496062589630638332474914657983117840851180042344971194753954612907992067575244419889637102762365158021458367379133248851568824139464322820516902135603317163428790521096042805067003717626914067138560265669412993058343560376931672347278090999756877372950478132531911244478310238118555715462465247848077105342477912242949307324581007232658084753753144804108451051826371778027723782823896602886542453506954786161181166436641510670235110894660853167376070627508742474618754800961495961938809985423949148202818986040525233359746731152691261695986275630331283323263294846892968878515761534509709968910356983708391418974622752750680613519939302226420429245355499432044704802536080345107690952652637065596068190133122405187820617141593080582013997520510296442337267365813734041363426542043598301003572138003153569909412233924199164734680121501739728804237571412864565633957420293852046264427891658140849300430283822303991092519771600273773211899428303676556394160396411954961602525608072756801673727604915765266815769373380036981108066638505340582395495789210531149799282853057340758747127999548709098066774092093647516950716496068459855678285579972969308852789589858481663976181058257518648599081198002973266095558361415278362697883087508558171753770083871965667678559279826828105413865241080645099949508116509209268383177116767089081037233381548383969041482133720379956042802519278842677475037123530443505787404195159709081224253367658077501224765103431790727655629528454825434479634044501103818513320203255704751988077542365564335982952760525865110035847580205624483545653992528492451893691835433500311395801884452947732809273558245954416350288263906882035306910511735673645624147625021187932770588355174143490762157391578253006490363218121506533652180947570822038407086809432557397226902122778911379358820354943277591511863164745087879481106885439952757249065314186478605681100248335892178483928954046796366438987288015734726836860400882126536086259086244978260690018018625971001307542829633974931576219936437357060718601418211568582713911218504723458698683747211411204768710187919905290797959819867882315191047412022318211499717030107407493544141182562584060517892860423451930495506081519030171036873881585206053583477068619069535031007731203662561854229482876826500888753573860536866993669649453384892359778466915520475058356390911200392580496872359664462584312736331805503949654073495829521976229650751660334108030067349575908947265220508956698044886235414281876035346747471375107594373544846735725865492542257509460806308000248086054190265314780844855063101206230077283562619509005183207804127102794654031622629364570078750298234448651379588500323460665589324338095223638640439578206205771181380187397835447056816863426237698271832198759400116716044266914700910478957044377364516721368930801693067279520325943585673070997128834482493878038897137168349727341493720833120996101088900837726746495330984490042360517187737041049161227381547654099561417242133376872498326460275619642343793291115683958619141669135112216339985147093547171250339151816703762840961346482248480535978124239456871819031757079277573112692084095837930942244572270187415864327037703661706431489252815190381427399446392425223668900004157471234217012862570329424716601550610551334884845403988012877766984166078943364080259434069923704447256981479634614865063044239616500689141845437600337449295212255682929271566689006703348323756495088309613442830567979464317813279382136155173875868061265217477401562016700361010218890663203465630979989608377462525748855802245354102436540934130518140286241310371961795493380973152823838810442806070764013959078054021499269338477502810129879493174361603400900651067549517770991794216426706336307261972674807637924609049219125128906360501360503617277640857970845437661284918779376749786590902582921673718164900354262669343629522446462712401888882722607572801822820875515472128735762016890711395817903860784175261788239404213246545214912039898057114610562619518426225200233623283456870705048606580744183743346302158713169245514444217693437718207380448476682408758570008550990181084271643270728990500661908603247784872622593110954787298513448896765698002903199681059535764186842733148541227375004501424944688892864179950504765528722936178250837277419857964608990578698387716576785401342115469991059759761183894356893438134069481570794148509435655118303512610179947641254872188773326505468595475390455868296556110704116698806183063909832500231381013590332480297011645992432130732234575869424902273751326011667898737101796329732176926270321348091732146388997107817651329288242602115160965724183857990312550788441983588740200641531835860919294011302924643258337053003887456578658052230643652160022502617343417431226512916879459988595893747355528585458814941439533742222700768305510034609500134815635712640893037568314128800021547119955523031810588795509650373009894335634337019826906570097888422525544789610870647907931618366277321404277249665116100978767164613559527576710639950041105979776496328756722162773437772927423819618444775731600060812271605599330366665581330417425769914021743491665040321998301247015141155242615612061985017027648538437125507944492957194981578609145833644361434841294795815399322430811570288528466923849340900390909458969070553815206282503042601074498000175270022921137416466208963443620072771192607699256782512047603953284875431331066459453908676118983885884744713065373534901010313243988723115699874287175007023234287363488965324476315622509828677993990959661721519225452482936048950565305684788733185742721490945060250233171689931429729870403021377825008481064571313011828361767987531434002194584839714462557752274174477625494418654029740360559926214783207632470979121101726966211735037454006544602281389434997104753197871217056088162941442941042983554541383741188016341897986498753645886774365147632230908078372692395012633179043253221169272301936077340150313034475005520324043254577926244334142414365089080546693217550725121590491291257687863124652478118847040076918734961928975344917088269485397264885490370339823675329542620618255061900330025646309959074934770109462794964628640130342278657250840513560270433580912875504728507315096805957254645140032429095034867402011711731249408371246994104489142482774638630280492810396024332108863375607483018541073913018541721360748275962173793119904658954356386615265724951545950737017960443952669554241633664370379876626581050625020645050583178837727227751162703813996498594228268859145643670046509985719479109757608967671475555384277525129148167993429027108910583583690124199861834894486933385869562129543988882703488849770258634969892909566230424437457152876937644102961821309903581982627197698664837601630365985748018078488502190215857360845907154810085580564819133790313279713251728388032585399250072686955635917737618429990993730806433358085970108398822149720532865058321269154013522199266365560927257715985132346978756002598550206638243981913763843325173022904965602714486908756654754095802474675487527580434949569463851764456084437178037508831411169322654675471691433462373613210567478031253635595646390181884594821314877398434244474694469943781602724801991012933022208304341436593899629030073073050147207684956861145896727067880790539752880555978703150920182358116854493992378632996566390670748946045333597361192446133126865304129171108112967719581287542834398660513003131787373059262190927213140112642965926726895465338137937818015795873956732825768917014488293931644842482176787071020920808988576658114862630466459254441223387436032240214243074280325480460263126901588192669780882284272523180754605279671466448806409236652809905104966831655284917875140815393588723230467284863828654970310397716235122053011479357344373164190487423082654822008360279836510947652449281873042802475648300302780898134083921258319916823690333033286642728615462608414512506210001856205136735754761505338636645265790101622953263082780183927595155130971970386509211024032708451765563179906450219521258229101039883323204094906021046513976972358375309182597557280255143161441417687240670392943229683151143928226994193708220128326783692160661099518563402936812360886945231421891835744617978566110851077641643670043803062965461992002430296944585316931871417970003547564674147804905156326335246311660856018288158795385513027542566997855094895741038560875663911593102232273283396242375044662292199983876528917137555823085366824814057136922607444622859021358221088926695725987880244316600178479375873642198339287985938870031020131323131804210848259176206371190016186181380586007063199047152990064429623859307370920883280152449993302377897467471517001490570034843374239319737099209946083698497479112074889315776772272786957718464159152663574380148259657883058582312599830801850409943525595703795611063229304052887566092841526687400738182727338029863751237077658587990845125492883615383030493047545469486327109138111476226370399801638185799609523849289112945644007779549218867904564209523157809330349811363350265244763773817830052460114461841254103073375748396751219628449679713988837400709794406449349180821882739542670066341628227093023397897369455168257300666688301599407052119923201037177910942172244468181422804739315994363822504476189798740853835366296200572464289883795866112700297173075412329589330312578326211116247294945883880389285330546061082504578509785175011680684419334405937304327201643107860764621172842015086153765821993818667802683598546141834470227675853532779980628594904527765931909266057627206954809244491977416612078891923675687869684391219042228416645778663423237690464715057700367707584938177784054279832278256915153617751268433147155510016367727450634733506596739095520483812393644521043516924511648701291812174382544125531027938404416903195620970650830859168137998382329588644918435253401768673336879160097532217657058505273286977942437348860296239824252253195256766992003886632526437384766430734290261991659935675512916133876290903397250547178594868121698946207793016056879667484223193395958758375129114440305076407938359534390633288470680056867562846824533685473860019041300771117664599311539229784682006810141626417101696702156507069936741163753388210352851790338568646966738526640347489807579599008257428054663027590645723191403034334914615107549763721444470493903116243897512036463481577950214802340704350645875827054116326342692955407423499267658603983165662021344552113674821950384239419870531695786760144229140856628806516486834529708370576840460867417500402578873551161787281455972233097147671181901603864347928675231632541879694828319280603387429169453171585349081017458599498712360166890884473137194069006107711410931306503562912135783486629839562228682345136407758495009491723808288370126125459076278779093947884783130654528434195886511720019217660092650447433331782471892272053239907989548014207297452844955363552720341039626428954255350052808374438761497760347330713196943682411500861426974218057723208950992718716778573283739868250217722711733526565712301486473753671781599108108754233488312181095987053876093804565887558048043208011410931364843167649512771614916750253929129919006944985808849013444267465972078790823906643893362216577613340951971659242721705115258550693741634572312177416139081902028876848481105324184370180160512316642890564440701653892889058890201439537317035159307537834784837542914260393167392285064290606730022351178313761138516277411649437582320733606359740816933461029932646223827717848914529039638345547086284254286977751009269400066581678111118777571388139241208305008845790987145066953302899287709406313482015209403682585132218833384038205328382909804100344160928061009273518467474093307653677208628527691377233159331056109099943803273258210268636748333148043880194305178326731670663843961370101819056699845308306544574976352831467868135351210044032792686730206583883816965397918307964316207977587882724003039047332868756359621487632850540640208404366310729622836350651168254850939386388943548527275416139466503938511305141607536066580914567209798831495442616946728012223734139444321665306971754182607879929985965757966665300811946856867999867707010476056824345982375403019163907401234967644849336273221326287077620369216910818529031796171630524136912787852127609680977630247559920834999980719857484019386593933146972766586013386848391364788161092333100948550064352736098219361286969449896350217747967322308185851479103946672350411468482281839081263529106666170165930795718232656276344268106055160441988244029128223636046078505646409261023347259630743061735286745287502530565726536799122767948512246497250796123477163728608073294419459415099596217360620047263378210997278251664174863828099047896351302586151717857750273496971559552782312648653087853038497136822298018883915563585390234687227216152620413828220738247626544751950943010084282821654178560091772068011482065685490406896933973328237078651316161926560076163211873280628309141386406697034704761535016652925634736516041758867506620105696532331303243964277175210631252714668858179005879830633994429476815712031354048850457522387730253809739745711549319658941547620239304718649083664705056570513791500208915351793913348474378858332402512722445382347831778199570896613638936621158493876329688207648812714187845999200975774299972123601437096062496775729779469306116819291179940926900195960593388157480026531274184728331861149681173687148435763354466018875284188833388129117684494603924549872187090790268958103198435788752613813177203230721423498362701540801054508329831366180861708777230161239083065414206571954227543977480598428455123203108597769107066947899426642468066467582644349548200178323993845829128113477250665862932786422670122945614895353535115485448487819521728258442822244225999884270578944655587114246600847218136792362595658190797369171558194227171357135281285337400104507707491635258838627181542716360391676172630824284661230224441780288193155626633084630443062439357093096014351465667136180138264062869718241767367188069601534726929636168164532330570371909777681530756004356028567375369694011740432518605192025359228427080415662638176261766171999148661399103742923349991302456562610866619153888630280290965027825493139362502660072815308494145792757080016283447394118851958079548324003156357408634978095020556464362105582973912216758045010391100660856067214303217412643173334816521016645018554218747755955590715542455902406492670011908899902581084635057486077747994313487557756161195166530331314169018894789997858415208697834113946006088013158557636797306468992644454409956622679070768986375817462816209311759019420711442252156088805327617048294293688415724876575244793463143884775553785708359261803315392921009468720415928331723152319461051978888944802650003009276667526030531134190290288170591245780178496834234907825469212667065142901569128679970128455840097245292123160072541097348374850009042125451633792353387398009321656854597077313269695283809646820421678502788178270929492128589118248937349226196901301795171437249379749559605218235835361291366968423535100393408587207832471936479419325551557407440264196493254682783440675831926533079386834385130981185970746904172716222151739575254336547627500411444126694922962684882375528391013608700390020428778955656725866629542296457944478002694427363078806592275484931221354070187300383903983277954513163565179602949081147165958147139655403245676418815390213908037350108105668164388130408666954269995454269021598410688653981868172387013714162331410401638365803274045562304071652932568287500082608629819796456659020414403746065200647881704724897395617222110387124886544207703493820990935213858813252954160509786718745622348273504658014974292827772412533987387425194693494940121667835577273263475481060535549091562922131901990171431502321277776490950846741428911427164582308414483683263131205876702585410894015986102367282296881962814093738626483044036463043893146618656561359929722721579290462440440075483793115968561297265733944224929389506204465172401782983997771682341372731588630877091601501123228363594223952349060029222068133743812933326744057974633857774085533627293721211700763529094710468127185292849071280728343206998241470012089399663579918772868769010734250543011442692767905900362254610894403991243897521605802979388331060250883447665409889683904362817023730359583355427902538629390770484832043173937875666272684410483446565006776178029340526931153024642242091917272902681188923258763585194997846951493834088323939653167050318964305693134070971751687038185465931796343989435643376521074556511061640885201305751434154336517820015557909061643529235176594000470236068469852582074070424966742665544994292310969783729806178150930405718210790220787343358931838994444387500024035382550798650772614413675379329408764120519007954310021425303321215086286244543476203193165717219926024352784041945612140783469953628071884846768197134461184713149642333596091722295229622367126541137354548530019874197989988928974113534174726934342090745570419275986172808005201860875628256113060869740745044726141194776967740321436892987941884689440168105380669823762088491495376647636809343976022826524066632190904138636017896061077314683501165885420570251121093080660924885233895164736033972432626418331961973434367487810609310949108551979438851377161238882727184417355427064879935209714150290409436787438756647732815504598082308891890739080398995683566534732387157943015622258667591803651769189148463203910294372885009396565839218705937316111225186080055061509401861707692237612151040858418398274631557509488132764963773086450931405828466088969353043247802542436296613638662514442910431942208531691142242372907964187387933427054960958279287512810453938212825276749450819035436064167367449369454843708126155849252284033485032535536877850510932297759617118699513217999241630792286431445955452028025970713938451504466489573851106546720600373805849481364822988330300309567729205114605520641307908793700562386527030832157934543732729067512706937974219892612228802754646956695512506989729319321679226640828318214328307750066535954570217947859071208442251821775780596887933119480792872800425818129956641185926374567505647140792583611057855938566739697449088752059398147517617300585498984036646548400763341969718874130559092697108079087121932154723578372397946523233598204383540522998913942343947250489072987605180781919167388772430303516938576111447970198151072661498721358059546541601708745393505320267971131319303886061992135377071580161062321162956284663282888504220393994477132273302303388597575881579722029182981661892876515458315923209279782134065432258584754316595127388818893673981930017372410621763844153818787872716780164683180927029359434234566877470648201806641310165568111529064191533178144619413009046776794421528110449853794473486175059108834895166280643916669334412082927335794841503687093909615572093629093861955510753066168011564405729076386705979108802784181851256826208278952033467167954335135249885206388752649348959379024401833086397713213675888941668880593182768196113697055397352435645799483174662996015243642266281367403387093667246687436357060535425739831000926480234734455012069576813754585967792147785662881168666354285553551944001471731765102271774794596889220994684147901534624625794608105091078855734320740531752175903275379613004367794378007541371335812691885767795699255887956999675502508554068580565717552909284003552595304040667585156181285644407665061370695710081602786657637221962752600060955605455608036777762710693185952266935839900673667989877398205947333448964683978802412252853603909138648834165115439180341224464903728073297756034628725905464681522746612298684443613200352628855121499576516119736538738450484855515595890639473888810494695704162294018236844292678304387406715335578513959778973272298834282620492332173061319409170147941892983256995866043056834085403379427655366519131826857524417850566620086510575467495007213926672646470752298158808214700334931263116419006775440325108216170266148387849333060386870579840991770795438577367705779199184994656373013573604108477015760375317828302004821724271584788965698373136627286119964742293551395256797931660545148828911798490141480634401841380901253118201286680357752734280361362783107826897221422984465384602366413044787977474795463678506733431101629975749220743996604079010258609434774622510548054737883932171904182893119984198551448127214547384466992503436131872540101378722483784306212645927697772568116611234917855694823518778918786121625505228889480325536072231508078913329573951128061137438638455839588241056855727297552905926253558986722193736077100816975510544863070383176142661804136053243174386449897411804283976224517725607685169165709927532592089240410634452628212202358559802378549103439695801458019521699215958712127165238050589025792154812373491721753750814049055682323606459289356436287693965569467815601543391491883114084151625772364983633404778570396817707163009176021864392127601228973433203021829919958593011603086802821014906629146976415576878142272364564429843093707688562401447296019876334296286405790460058129426200460553100784898979498884983394470698286891685191857764786349581585898159886311384884527617250876772837247154850723865914498425781806915086070815552181606488479457179812157065142435540347122601850124306449352061693596103022954896302104562991798494649935299475620515561633078444990455880929334733493720550847613553502262590256266618436746086879897627498904436256019763418810582791775566088300707792132574894207425448789906421524259140861553563001640752695735759652753069839013893772367732966724856254324159885024002695431908506683511421767037208692612927726702613662897119202951957674948189039225380568239004706107816233056933436924260768273435963574840970589828679215200534139760979205578073058278511225436771710904206234013043646527714832715479330310421068805825061359050607520566912305222570502414618024768618765127967523432468951370172382075168215475195894696099028775933111916042781982596623020348364428852461420716293558985016692294405496008699066224121470561493090287756656925897437259083700522948383231802884067842454824901214990786264594669658045010586149051085634398971961908307539895739307706700487606298116587134692035200665266213070533137840116355006127190341951975399198710277147782097959654242719850222346870259807044445320615206882628545143836334833633017447514713431815587353840721198977155517335355394653005106289822263383205415863257019963584795301467897335957462807547141872230562192399805695749636990608533057348636966414300420732423257874906374050699989040987314306860377455183024725242765405561968519716134498919814949205177991909588035081043171980427044235219547540060975633057799413444353684834003859806563488144478094959114728653432878121708449903592230212044202756302036050961816899275885939650079410171679837557979495943965410282488032436216055082789278857756915953286553288875207925513335093818603734738737526783430461626293104682490335139967407218615410417714429724644964589821496593587078447266969151058640604930338248428204578587712509734638176234560135165420514358689515666047945333128094079131165312575401975628544289682065359828097469065271719027077290122445703097606894285824996976599877471631697683822810048513244794731207626122217765612864187276330830688150024656709690757114555294490985172991834672118969190238336955581591000560637393935843790461560545193656262648733341609939571518580529965378020426531584739463153496349837368439790722456467877842084770501695253022777731269169056485085632874685388627798391552556214529402290735761248519971662308811997267956256120570319820568508033613600888271724417577993305689291612362673487161430709659866067237558621010141031518348504390268712361636353847157222724819195152926560090519853955489105605717814450018387261947742846894113950277610446026907959113151070160454994346946780080155320496760132700052607818921561676595254116763652455935427589605075087911028959180898528030145622790150841709321344052325976935231878221417874431733389560653915229143709032128766759419760827451426761938457067667286459988933021038441597579108315789325656153996893770169644333016502471446527116373504535618602802821519362354127656623353683867970140382978638464853229298014563038443289722898119650403620631305042439879922436518159737713177414452332550598923114742935881718054835743750690769959075804339735985831120767783811056982943728527648936409103463591515959043037165485658947455407991837661098402430192381992603857943309018698008524804166945352373874635660944249531367816314175089432995463879778324426349660373764101271558376819156420564938264005824639833806854065379722752002062719523532923351560955196402019733835219836356840469316307822052271851625540841524774787739626673187777853700286848655696173939120387513050258829049204934385732246512627296372125894496770366500285617129125906256007165085453074735432827280170803532851325873761433598189133549364877324200078246940336667332654175305224566705980682831456872840259541808639337125796826734029166639746128718505663162623347546153812138090491865861689659923865520677651788241828108437072771689423630927227889920561028135634754619683116256382673499164522541204034546354813393547311251480456090515000417599533245941128586088742516065755491603851730773586570114978132318245304597924631564937740269138636796727038841287447901071891858913981557944738453470330377766455826675196405298919672229252104512770698203109734706910364177138751747512572392635352774158345779347222381555035295967404178316995142500713361715804207483347013825379245324612048748490839029899186505302655307045939255502250127281325939648401966089990526049890829314376168924115802774811662073594530007408839138279309355136358577603153003869835611228863993550555117546809001203016154402822772928451132636790570598668139792959524029345742126044092705571123482604672453041621772866826091343492402498876741450597705140396608980437554547218880565446263593662223699700647686159106237125956193344667162526730615310527429775237294902873286643155380140822247162227199564999316535068518254391335642435103724039015845232916403603969522270403053414364733817899187360888224602651681501824579290675903798411689439202926545740114792943875031159915300584082891562043275900340830718273491565284800998190292783444109302367517383376226929904123939191345542002932290768893313946491748695638123716449577774044657694170083977837500725381735478077544852578827339270034048553564414261616823312862408253825047367594031215957738768963221439118177570309402780186870193720171663186835546552301811701531945231438876356094312166235773469733482752616613817913105789298299438661372361390665923425962980648731520575732244539455553791463192721464647860012609757346754725551992348599055597355808041741897264788798861781168357924111508670182428599009260662215745969304913642840745903361292651583484121609193357433360082920848250813510601153881102193995590804454445763684410233067264141329774548129963890633839640560907383380126328556947740015304228646754104402113450763833265922984164842175736313720316591486498645933590373620016313925220426503592641458121966599370113065902410648358413703965897668970018781473414570298160094634289639774813243654249816093110946169544708316120895219357090585818942259570743236583740724309931033267848013270491356838575574807911516593718593190712288515121267091523309670515396386904941256879134563297966116865430350530018473319518476619308139306690361391201646125794799180419381191958395623789977673011930805108646042642884231390869445917230664407466811171220206377387408882421566021727236823883477427886836890907720264528454310425334878315772554738602901712884116801125586739149689651015956004883233747708148982955328279328694307751968923037815540062816468271306057162133234518933406726960518318365899365949789839115409106556145147248111635618974126515352373027359837849884604443644579023647534406721496984185838841746838478232325951523077289126184677814659130034723437435316454333129547018720709841283759126061642597969469104213735981286940431225540116350789965262940416207468829499385769046674467644957515729629030110298291357990684648520057421146389658067683204091303882345171487402134781469779804954046914528837128986092038408616130486455564533951788904154308680014830382716600628355822394969217614035466081487750844306847682029299242600926882457825204357957101705199346785596318771545729029093381647315368937454511984051825109052120465211449094214413730877928853438816684227833061476238131222293772374704909619967317937251005599270706191501691880038372337327334393791656162303020737931002272886676908472582147836871921315893484120110721939848009223378374278917295775337498898434077824892834226917943399411575696786519419843648288084787994851053318665175862928782209156508204574578410382772992295045284075661678228809180202244543983561317961308065446496156600282778806011258453242690829263580367178059500165715432401121705127685326800461945884993214337875058671069313691374800859959617120202151630719168947442782248074886998045936909312461797414010817345936646903760464998858656670406369810203867387352030313105125667518922362845320611836077009805717314352368488920247857476197635635123523066271202554116502860089869361174531577049728773297474667195617008371543684808583834548479321781773282973216002279243074599841818591046995387304877169774620290851462771604575865682744945527342148403998248915534281066739847183974379180212018133007748081124721994362082588932056754135058472530706670813327841600507068680801996587882976188694817859919005429621897844928686871230054927410704491731485572590075951810509720644296256825870504615573588491034460793035825636955094438536220785978211809541920353317125242031477495974480135073998561851975619973710794133907140442384105163204805092310689183219845120951958005139932432068983405186074121711198331400311279422012397984582741139815727644690533116671602907983965399795805969052768580299278372790909353383361882251922321043337984185068137556437847092377350927183201183279169065786378186716079335361505728260344452576183821308937183541386823312148055403685979797244497157226637158266881024332366923514088121167900960889083523776006026763956363877812265310437948227116746830568468462416441237303992733606819838062615144798554825753128554851477346269476329420697424309544403602581677379488636688758585934437676225142355446495040775143115349027586729995979541243916511547900965164419013592323817536749622724397484628931612304880403899728254738886652771444986879489349576107698601336191012355709304732855103942409884795375222719279339852241234905538848520873228925176220669402318287496375015301432489623985410798138184984040104001492480997712404034400609757602837630340565166820867995893319661730812392996297548799713403973340307676312087178587693674632276518357075360490907666301601298277970402731724312231979233662939390904591507103099131622077534924139764834793872699674919420077210790997580504836607493953594781991978353248441608642368302964354809900853850506972118443458083348660902221453277328872041346304242815179211753788340118564452149642278506024624955595228094513862047148800472345795122948882343344340004065680000655735843970552340906261280864661091367630239234044277595317381488562789375554818693165998088433532693629316060704151641905982432384806946731757392284988348356951926284047774984061646022341812117452477642936196368528916203423922363689793085428784189873918866806710503578368047995665660292032081794253360428565590549907318312975073765638470508718279632975946116866847955871684664572151104385030944479586448865895242778240249062318790819063448361018555828544534077889995137899575085734547353177488947183025232383877480166431194996350781899567673969553456111303680585490095446158785814294703606553322144971102860089118098730944301150608976911564349885323504426274410255719493689920788011486608649010460483590567778094080319113369635346230139999390688894373637861814387447154354309101290705802442787849432058039336160934274805721121927923856247712819184261325983163249581703087349594504435530149674933620869639137754381473535991774253597514992764980330165001324634700333144802959858473836610030240843650545163290849093220288738686108283154723349397629981434313704512687894545951382964023847040948695803193654008125847851123056437635856861668930521690581768539957963248916599848574175874095220281765130477443829805443630799897013380346069761880168320880239766727450497768368854345223383176036061282091817533333413695715129173225014813244983604927815125295161970404522455784540924310856150344669232977744078416543100346139589224530319736334083669665518650344373788080209840630079336227680995090830505087654622061621230943372388489737408009268607625508995603498028589257004058251011311933105970231642051267393406029865524130879682039030436078990047788933845420173097539803361865055654281545775957531949249482936006022468973435719972193786371091186807163836946265858821775120792731007642001123434669215656849467625885054513839459453883968842675568453466394807208488718340066577102779478991542841622479461832326582707512345692735157526980511606668274787467110911144485597446042852112500013698210901895026267169782731753055501774384717809631340681609261650365256576450711704285082614009669019646750689948208763163113483815296578394538919907876573454576795282536689768649401552509153055394643649563240430000309298614307371770922854949019915594100316146293673448234652308950266816479383296528232099185783471637324353142575669737681338526145548134723938163969976632084413431181382639510081243832265774105823274964593721367050871866438934359090790908044053870207128358384415933500280186509131597138211447748102088856508159756213203795477785750498029757506462373282440130009624092383637494962079588292713104949864571236506978513891221240400736331688442823531881133429622388383634235703871070849629089725796232197583433208203100980172850611619234866522898718714954381138485917996511076208354336968576207344790073704184134584752150677953186213365080981491308772320495644935759588564770249065984835465510596952977402523071657087084135445349089730059864770739226819405212673137794765950125869398388417793213875804217675283025927246186002945875953501940018728232573594149310186251065532861582490171465713426281512713622384219705922977853557237059817872334411501229023967978065217278164496333933430230074451119933778820329129099262351563137782131817339417626270079261339214294912206727282477392267731394508625801364052453544574086628140491177760587092004914734974299326768746610125757979151052715232790647704075346085692530094874547621330435054887378967552436266347831653290750335147645250093945099502974533902061625680309847181018113790827666451351097654707009108685957784060417727478059733972094036157107222240577533076907548642333406572860561245067403768636139751669956074071120350180866611724296471351085556368778043475854842358716127095675116983286806202431131838344833246183633763007740041694695869798976493149580449959192052703645904707959479392255232944612795235295689540758160610021596075102355724252280899285066645719027332742985383216013916862794867139561685152776195930334349815884937184207858212859665139030018203552879137302697794279940770600349060365466924136152663576505603220321957090255877452898966965713302119323517802094146711528765637087757187543597968223129358518476680273206302390007705621456219684609131934844758544528142558146835404581280653238693153940329376099891230791584112239159029121986640651110294817066718115844281664901980224079294120508608562685455728936050160531697283360079383520351749652974706667188902005964516694001817784556036880896248146684292523321884512687557787787847690574164391143734396006308376460984904145948605493555837878492419502714130996092972092161133998468789685182350581925879839944900488329082305672585237495707762357397751641269944055475688003092671056356238172226407062732960909109045822151499990644810093572740371999133676391779439860896061111370704090744060540224810301637495624730707342716866191362126749934269260195830271247244566365891098679159203899609783505902572354133255590195622963561134915631904685342042431991725454871479466672196819561462275043498259905755166564232141364633551421498892847164284002301516113814046222091287751058413122160058892308558432651982668891329773643797289897606361641440934217283360006559613456281793446959105068104973010354726184928789903776364192205192045196630259367723033143605634237761973246856371881587216602487971804710466938051670851855185759489710356356175832320161595935948212462178548909063362736022994003623038477608817371087739697243040333985882113742734453166995780161610256795717108978057726182861567937771183583533855290715735994351148559461386940157130578464977017560602162569554904351016939812103437235375172923546679673257510505693848457530642909054412271610715162270689990697006539880998359440852097646588081837186037930311886202805088589569613184007278250208345363252835006962876342728823631207607706066789059107962316669016257640438024981904270366064483342403605484471395730911162023770303941172058595547988476074452178136478875721511152361461152248489123977250013450021176529583455608258291962362293879952124775019441365829053698815644355210542174566581971560923701159356697437560111853595403371735940082384119924455270608166887464759984748172642921184342794606430673085641781920830909311455701360726338340927456967936738548534624512895909717009918019293732504932937577499109938855271246896343456899365344290331252010741153944731843199665044882766367203873814588790614222116195170463782552731610335968326827029258260081076690321654143827652516190950454819034070734843304994640801062929067229689025801448398845562525827030147816639081375729696277606976039026622257261256837532371792039009113227037688474552441432926074092608869470739518493271311888823229834954204206992389187094992386626266528261305224634973681329039535621565624147986763933720950651412377998468658020535419245901235600357811834513909150238372108973018723365563488477168287886533875171653339565641777873570202304665085190873551065535607021726640311300196944493746026207035758471851762907177674225645362279083022922874894133860147926345845054722045333702328652882146501274432315162256621429710170979215000122622368437454685161958032100769489508238500948972466744223509125766310843319868102551508154251140676101389732502079648032426745016304576180154760403539046607099687644452923068224311846221454087778387313778913109433823284516432518804274455355871262227763298654782738700765101114110891993949078945107260218050007616490170127835899655624316229810668452023526789609800966143058339332213552048427814627248259290141790975422357256827794716145369073178675968634430914058295923247396659398957733936189630412307433391379740544517740319383142881266029916138142071728224163339713729314698610736007557035790276806066637436314119892334634122348156374745156537533917471750904303356769891372881674233819517890916068034823645357287917546793407184981237136485584249053960501497900688417178879303555594644331039786641044419096155036166066273753708513277031169999631509220095770095747174951611997718866298673816094094880011801873968332956693830243260623508873958673910135526083660237775440037139730151019173671220359665996309588155312950507703147639483405102859483219010709360683977617098643945145090205856906216438445728647069078504307530938009216222201282955665154742933810602207188524788447451052897532171217368131053274308132997760926043937431059470774106740098315485864000906998550099057753800207752847875771043252055537497688966800467002996169434792908904029775638262706479902142281863643175024356024141978292504920829507488997639553464390591935495578764246657539968334934992889772626228920967035891011753955748171960971978481895789837984063771045691654804154068808877437390695234892036639287189131934624184583380423062988278652409469147814736064458426464426606507443384593095497409128372096782050527220927644635778475083610885669317900643658209265049522507557789010189900860586855063892426834884177099669597181342001945738438375336834019559782370437309489423414713927482608004533134615709382688603016649145527881858289298511667733407744001898239918261709256251547820532759012285984696306442733880355180348111907612225798947880232090580467000855085407539444237339444147475524881157068806961370011152999520911390595312067952760971493773537110698904115167096290342397120710441720915784541265756320945605323253208005384502944242196200503171974984540517915526436655143946445302355949386368162372981218097282261731306762933006481976608766921336046268385221036194600449624552634151554403036476302494537496240395713112110213488683728864165537076975095244195026759328514226291764428965630351823310498310026238629404456118196480038998435546831982907125561956885794630002460638689584890666722903843846830103705171039017387535979316411942038020645483838601969236115030649226102785060474671550378246997367434259440576394183525537686962377047024114207076365494488462893647394233318392488238624374030347688536036883810508194068293009370390470460072939487537465739757299755270952755340074317332281076496367933437759714561286931677721731450270864812412735759852602678158725933339445156235153302514522209044513295726774160741658555399109898235311264008408278885738222603931794196687144288647932795135312790419517528529847876939858900116504368530063062242453322884164846319829837722857920630545874381146248825284657553309476920487961420107022264031418234672785865001672944989950766974195626392000488894833729050959260618245962342382052497397700330383445268848695921491987709569379447179650588907356201542755687361129198080036489709188817249921297909207892505899455897855850934788595886751718083075527660340300336763988696503404488304986670331507618243145365486729934083099906359983028869169280136483915480275128747591373224901887132609423040643366410860827199440788124953841450802369809624776986054907599745831402155262170016035073610660931239420818079294686737172413035230184330795183076935828390010225231191685996614654217369674561706046135385398046385844382795006222211639939879248973132645314563071148098086322370377250897710555582381839172731149979173644861539741042159156024745907570125808759176796797961910611494656390490842287401103124748449474124767740050344045441644991345227275033702528675764274082049019975400306572899349336886853074955269999432289733907812469825720000679333273238943633502875068412086724099559849513030369752627525095617094413524002890839028429273626138735873688695668643191094890047729883152616528227049614898060713285319934273063189227043194369837079310651597086252447346790901302896073727596273093176658250464109392411681429817471298592576271727420877909608946471156042657641847917113562376826192235161921909809075115810187152833116387180618600449528777750758391766083833369806000313541001501869163041184524851031699171664911764381213753295131382216541434735629897887164626716415265116685525676624779362408475368064121437730637130398487442794776029045758411977061083166936515936134992460731165712418740554175030663671306654260731360992297545678260537923825637235783821907207213616414083875848857266405517898990322424975942145210926129451209554267974542247491384987451356727396482171965082918508526046643762523784553717236762568136814856464329565648167678117705357320521425111997430931102440205880991036742330656580902499261454667993078504138014588350685403178976168947598746427209229255451614874916313971345916167392498440387888136546321492132500346592802303104613360137145218400111086650606467934267490069809161871637823311727022419167627462471497762350959689523389397403216405105727188547333897721085873254871595573383526648166572400175346532136072231953445574959915240445875629520277387424252123166826829559646795880533201813500502066101552636675203799602896125441064385447948233009881007528278200942027647387334382096660341156288407665054646204997032647688942021575599996863187572934777011982650503826962966152887514293521170023865645491239352570109604225972032821640373470983790693701080334326419351657157446556985969608356298949918175199217137480600175105214425992106165584344577011998852033043449732490065960454597556166182875482867282432055616002679924578835481685624389229017379729637861644240205800112232227115101450177836756822451314821912539743517644341967599361182991054704696815869542935079305194848022150854387156699819888235415539434943511060694288108793922934743220700935701741889617430599692712601245945147136254086473126866286648147281348955791038390369348143312998295944236948517000157100323258253180270398992535389373433986424051743326763979414868129661399624602542972360913018991784634021772353418770378175067189281820883235182742808746384260923977509158736191168466425702238584403209383338415028879960448504860251286656856404073193972507854285335246408002865252967972885476818678812142477769869811785148970879284619870659943839821708478798663760461928538665926339009037711623044662639017337622759016996845228808891962102134383456477630147272642152242965637199621884024685073155624883048948099075610131529384782359931537334262123004096071481984088625377038901454390054019571084471761152921809674165379185918496511874610446871635967166035870440369462075609504547486242843477203426843171229574524268461478723714603217193941567227993165762216182031333561311897289446732563895042051406741388143379343005561210561648061428964532005448640660836608621122219684201875711257642097918287831460658788759202056862484078146887376783149664968973534444924041549783049378167926438421445988989624038835064011599007468564701996785275834026719794927943922613843747769363673074442847222916413397576024119122918581505365583766855983185815966489877463071924876178010486958462632022533444910804579188426019212903841081823308162089594783348213732443548555260606411385629079184357802991511136800441693311991943366779793518591959954026403762769128981856745046733241561977526265166470410130870410659308800279421384345191414409379942235844414994762179259824167221473560858987038469032059955180267199691553934703342817053843212201239113243670046303562701639760513238414805636010467808201539656497432786543940679083842706167971033074056390205516041379920078235191943331520312923572697915850395761170109787719767461473240516728537671964048978251340769083286089987954761183646540107632277614435072914714235917314207278577808714486788085991410440970475857737565173146571733666929644861142172767764651061917306438628075774178484086868287164174456165595326400702900754783219800771771000832205005817258503084467093415763420481254942717056094154358273660166190332164329924978284242348178185198031277351632429660621469420367207187983565062924837373310310849363569938210215539033953354665879432558504455077625696768922592916270498140480374176094936353547371813727224399950310950020632786271127152796687244015255996276184327691950992493983402910933305502282607669249750233730686001931470858766472828033026560931579552981335579031990589213599594394814909041068406471660599536783427037988662419756660505199862556831819513609147789658313539953179323850642444006176841761720088085332935586953874574168804584525572049295559984382129714630373030832434052958199811387087507529746875530886937696172332768626650489548778837295128362277199869423613158647901157586087177613900450551473555300731853235631038230724482230404294350400961482370189212160596002900696559586486209854972441674567515491540763125764050854275603997168195811568838591937612311693591852156442624822778070409944321360370947492258334413315085187518156061515798623770144351806453112868629557305931264482983251245975231338652504998196981436626476834078864785749111084653974242907685320700616400659263717567836608940401277712738964705344694705984980930756108791231566420040969240102155627282596364411412445262468328791619193434594715223562029672529251450201807133252103961511233998423911097915117607899113990619047313565781756228388028446339996931078735509624318473672835266864536864270331960965971686965474539637225926924213518202772995651668987093907363097433718417192781316416536390772715797944535406153654516098136958520515463644425404196093346133547708839119309129069882787968383085448841482196191511526021402219024141821693103115285435966764234034756750186824730100299714070608024055536480815592704907895161123857495191114595803564574375891018330016703922551547621899680247948190414329315080952948771792796681847086488517727818204458260189802131198779898000511232929399941623795981557087811670320358237224373926905208511630176367127434769534190564747404751516139411766717465314870713112155529784800850737853318008762707520530730483497897725707993107325169295528659588192786342605122385493129137679521039113396163250584536844770141976216205287085630076285420918979027735166461471189971652553472174703239853553776010007192341444402459180456236299968076059580040811582088391071422461367949631180483429538325502617813070339787878962703181721519211371043388112261365613869450395240836578447115352233134837621572973454256421823340783012837132271981903305054742615150181068848456482953813078828899754316117195713667337665028196880945158045495597447375517467523410798085254383195693414904362629087250832705177666272913006827572904321064501573104052112697755409531085601877985624129918090478084863439618971089483105956494051689062885428991446235215654564382283660982748081368984739286455653594841378945751368510966010321539187718436246447036762999170038633444211336976324871434868068301931627992351195218289860336188919021186722337147412586145922587289742258345915007876619345286850453270110524468766831824656138499386939070705393132216135299602880337658656741882324353032544181025753579868046665994351732288373425005835226513516664343493155306929530628199939399962928688465002065715872840097203272950351079297376487408293181531150925312801235030349580327554697843197037762397431426579329159931053820014330500019592554134305708932556277805100455765681382960051287328284290856962062593992647198742025176691998267501615850692621421762555241787376179743384443336094132780998538544055592661816325927505599925341627078730484017635656039717629236370851133523527391167923971674643286014746587020207298894229532411075776750021498639412113220615133507615475439160798765639964598833727781274430449002043177613222483057428643700341361934658952642822198559524821761873624913063049145138492478868857848450511052470937116554248197150308945593902056126556206435651009054619373189281762268370302898510443648863587265839139913501280176165534269400756067064263433230353829794194720266172854652335850732467588878786000421706744923447376794782633753200931073686305184164286157830239323765430324043659051740678821757099376203290685440638001110193811322833410366138903803396304124514124017566800324046010859497521188133780106983536485364415560731940915235378822235467968939476664440727510851690907576220916816763422517787424232392954984916509905871158920444806977211845204066670002630962657656471279305419951259422559937654850673556533140410295408207820191115238898699684593790978192187091203294287218484100040419898633327522758337475106468474669889622582244106447432730936941833173996114730389000276449813430908763102181912555830584843348522809447089362952188635303744330782243639512828794341101284575502801379825405818670539715136407469914829355279567839759057404324968777012760696488455590982881688253765341366060326266960414566687008327243041968284764068938954367531116501146879440584883456731631185154487788893284375019824865989726456072989423954976056423408537579341069472130746053470003262715265968460730127795042982268076155163095677385211384443237751202838145104557587097910558450357449938225655213864266388144549336837696895121711054526056417576546669412077066829227542585435555451166590095819919303882711983714145610099167154874321138908077838200126269960522689908873167004680731728127428576089505207606276130974607048550629400525793210191905133244608923907455650879832909442536168120056625832168812492158006663903697124740548424162244737562981828937229462949703882163542649365747776757864752796035943105005308021274730227888927973105992772918308407765668648567523545368025134123540117850829671982823908362223673673516023488380583548627272926118116730024681629263319026662373580899955036752989239652883110577058513785937408172579492543234917351029155948246036539121407705332345408192450666873122702551051257652799770510281806872527563919097815113841674620919998699934181643442233743500130021162837166110440051947225525546979372360908038520316611843851083484134640771505875577360304130331778588730038308678473420949467368222191828589779163261695349486614598447190756611506482919856381330403613278934307966686663681921443254900189018359852691002814767207378916909752332180476790088191681409146859169612598669561927117554567326667984120998987930036311906158760074201864164309558398683237960501145923026445103076052112766492622469949827162654090248073170107366639694582414197137012334382712567716101092607400297421790578476756085785941736292439581983081289138346717987303014427782478018067352228961352355757493123455192203519365861561316526634224184389829741618489280809449470015512390445891445294485012695048579621229304692662084470518745113427168717316418981295590978415207621399526342041906169674014637461540978114006716831530788854759576890254036289658388197588942314433688287177114253532407773636043681644771911025555646802451584492126395971306311390652631489179019977831970690115182422634762669236476317900871564827107851561624342576228228287948969125489534742282128634495084633208317552128369260396743648617265969939654938639203078105944933568110408573114615822591309079088804880891600116718745006791601152739218269234731138390726820431757465916671242290475273889551977166559085267436565399718093606441087329972360464595536850333759883383455469886531620992716024664407094749428996292218929327004543583948304719228764768173349765607577167452575706380847074973014325290323092277094600820178628315654382209035242808179407691004052417904087381914009439968122064638692536119255867911756876168725317069454520678868322805191510813624119666662591524477731188704431187814455356501461860628176298892791877861200593190933284419382709188012391428235882417027534869981230290042169122990356432424321678897450783606431883698599055391803243434945485931841067525326225402080977475976402840120802697128710159403471138492330100719227389319795955294445976640929057515536760265181200302510808336597267983570067761979968855585622188228456736363096928412644955615487765506066423258699645834545000893620809544459567154331629995024030773250684110216397482672457160573516855005679537840094141231323164402925810744281592670928704782892891545385496387611494519488115971620150577894192889817134220193739189178258626407515454305178588656288085963743586612190111206153184542654573071016204374065386887882578094891625994599027950205880234725075226922368409678938905469500697577670446983266933319259651812605296525254389065708974332025129269242132688795358913800433878558452543708024022131976765609776562006951516323203325757442619156585777694949149606041682663355769609814881217793238224408245194313597211252291368921502061101235181772031277896123521275324379273923141334739269825474426611605283675779506644504409194512091854952375778964588879056903887200784774539854244296803043698923655021653705196454407393371614469333012300955097827158467629220093100627174410356972081516196508357063010292199415215431064972227932975188806395904587201408596025665094008366904564266027482637938646813285331798618443997849175674074997054136162227497622647082836096653141097063377539648140139847234633594457112588104973610644031288617914544020849071951247994795492952691778804323888675754861049748581170725356277403916722635826262063759697436111738631344021928450872955708989032780496838429770327621394679809459219559323688945300313307666590594371446351553263724446293179863638955338499120759782650867649253545928802761163110661134285652663471290853923305043439678151366285625054405360201457303867301196146488698157588059200760521036499285003407090561955487676308732055470986388102750002615426295666756804104544115131762426203566920131357203592347929605187694583644422237594495825578183835134264000683686575361951614753773821216056772334654740344349324383274587778466916128848819247961147791895535481759221300338335053630043972079651025261317654120089723475492123556574658419138574789932588388264311709570022768687641479899532949527563208336081575319024463177123934866136003639378821477707743989002026882868080738412817665067791395136914012304773884994610852062897713882961022080216425685265697009321402306670786104805150995309254156779738698820984421558067404219295617934308610607833227427206327531664866035461266138474511773627899510848989155725587198266270328430672710146673063431226327472744868848268795270759014985467254368321410997717462359724311371941107684230216536741910283690748075253708261245949811510994107350406103667576364419799618120875225242038975464415574909356179558802144963054323798619536801876580667391891459516642200251785597928227637456413653606797379132389846810046706296931000173160445482365112442150785830742345307012406964715676276938969563446255603216577861468824683782301961438602827956404879554421433099304672476413178408565667761196233510332410643909732138981001751649858808148945077469564634818690165782880240570646066829082272693927237823849334680970668193225797327289875642273763859378594473514572701807798904546138556284119994093955336810037224839382209905874087765668566903358328137094140231230249049497683855882592556635097097989919318970794922655479470295838081842112837095582789610392970220735266405607183338162963730714312896873267079610111221252777049930191665041308261020165379746133118216606679151572253126405976684684052381932164362117915876688695331648623078447588351506485218006134831132951299108472881866936868139377602896863848370697824700668271396068646404887380536436019162603144240180187768239793781983832796262026825856147564761122655259731102692555011527383824581807201386060145085470771645576523374127379249407388212334921226953543889003904891035596374953182250310816228485077460958831033122918947410308298249734205395321409138785837153991974616728130657922834412873277190356495133505881624327180782097343198080367256699795252732026178975136657716469419793021079249616657541779878516100377010440574675829317599016993702956674364083392863850174058618212484932806895205197072871443556072558829541997185069931566550250724471859842705954071594986551620280021888394716209686133810305974127307822004922218120843666410144078065485207613858156926160952371641944590082974976180620386485507368491346158955359746677852003390938394692102194094625051698544717078355762755975680324842640895548042603585206061622441875479090648275941516444077690480191899989484429715274640488017916505664869670390560203594775016891273968405201991932624972501567989337408337401890330084476418653802004826564431186569166980185996064546592272975579670127906861387035276733093822883877119332260385579734307440071513382175150927359552852001521241772114532382868928005704080767357056131261201320376246851216237788227146141168244752899503539888295471742097888629904615722498121987588196985721699626595076028078746508887911471758162937829926952488197621620113779961348269515720231535181114621767833709601356626573823968580700430413603434340111689885665429051424612042211108500252779585629684964551181427792026122879483372342508926163248456979051663125373544649021782640517817214002428366125648668899026807704278472640158550910105361039421922576609979950107007062738124783677230920404918636400371646296452056744619277810019410443589262842814787947433011198478342421222103813672607190645941202971490532611130725364135780959533646040894867348952943820665352948167857943139419308722215717641343093397326456361609646954889359578431550921985588152455803015678142788753753084906956531329277073405188001476268281254043711237888075065407891370843262462640926713069646485269408740934722573955888054314701876111821809528933159736169587301067093973529437643461965806930442627372769582773286966322349199840052081770734951454186235485594702951247956862945800674042019615093121228512102259937278029781880336347996348141760859659805773809176603159296497254901171383261011417654874721378677633651322252600789204100415549864079000032764906495420558920087685149809230406850462132339844035035826022487681055914425796572324552931853923096368959722272426130340725895316234943403536856089966913587511879789108473948695234893918297452392875929485902875598387925514519035537696005096930704831822470731951947954034923631740757965303466373185901592614287125035294448055268826302528671953055833009994306700951253578287202791003349468851166273552521001645574480659170178943404540109390180591471092400972174310385298705911256971292590200773711699844183303501279160822251051855302420881549057794757805248050077592626797682622971187662561136373367675890770813792377059707946787584056776955724091878817798798315306392741125330817042951653828325956535948587571458532523205463118061896325133631804343313516855861332058718681311246486578888248859223255626298407570709355404517965730560831444059816036160385558530871715184414596008179409524632055845952806726732309310782844110044990394329184886726096512728540159526748838150931237239371758855827012309277248105368141647491861405684458582407487883840080255255913255104147639270137782070430448263668356322622848180105286828924852095582733461864340775732368295050352323255226713884058734531098716749522634342235849882382668359228486962072997346186723296714196821970843095167633249414643263634780180765301783852518749113495563265031221414336691181119321026349660412205381809292320986789202959836236251954584573203512621494150845045162659672456172771248286405557007942246660363974154904780156602053043324526515271934416176142054907808322505590022789752980053330381864399696639667052734921168456697589184908235856943022357877971593156993369411360539859542174389884073414910613430873544750861225789477342098595357857672777477930845184422374678943323145051558188700101544817118999041488876996679463356530035762555533547236798740098447027520011177800988503750525697368539091013030182304616398220877865771524458701727216000119459399071311554763517608965075232173603931604753271112228857949403495669883339215858225499808056175175054315612178665489948471084412398962881621259551715460927617036646076756670775011050739698063213333869878807760928645036146344024553724486070304475290607561563504825770449044031942900221248053776672999896924111741826956916665438653784897171397742383794310819899434178298591817050592751992694890936511697683278355752935152091902732420102489961576216812614319350104835671641909484834416295857313400568191394073138476313093986107342114439504560079476883443511562933079999377500524555715855124405266177360647677134270140784913751076438273064994049165366891468000605945353437403713653202546058441369937512609570028737897380896059305387891410311587483065049254783046994769057662504605888116293739829330701718258371966238797733429987982915677567644255572192186888329553677939139116643948191817879492361919570064812896060482378135002106375095001156680504932350937027265783336594884965122571982858281138844386871220056901199505521789595283109027309690426916872947253331849387960427793805639249865044574117363463952187950294334039663519350226530524327854266648901371983357364953698935150739030621636457311892630342004754430500746122294126838693193774246605360245403094863884577073927900542071539580545479777366663570693886853914472295157700573065261455545319124993285795552179741385356020379153431560786277237759544837920189029170144466906745578747577755468129307361792328219153413307634919369381391919297610802512046220663207499273306496700468963252239717347899066949764078664662172516979301623621459409423456819979819949902288789806474253968994584821488980524320320660531785841009577254775959848725501522881389625064130343021922216203277236673744610519650465951087517975762309009030284926343680899598739825729058643472726072797660225813668141515086344002298668660722873918038530020826023364864562803378608622696855123934176739403513207093456390626199412837885312679728895037089513080062109397392706777812411044927647090182120070708442175627982962920359421109705512097956831291423787280624083941270809425174047774749127544864254506376905887623560579803700143002094015067766314173775834117604131434342676509809649762502949231992134862381391885091236260071877366123228008891827482954276434877660510638903537999688927575065793864316051039174752609563439894492839694532530749593774540778252120608273814948397281544783803461071038042278839627871272983687658960495986979937757166289108730429805512432536794558523916460884047306278545750035857036489291573883293154460104559386908556859278016817288777425024943264608828363629718799179419817979108874111850080035188751167131474550787426109411823162348554872688680805115889418519242330442432257589603877545572471021573737512461662220230625295071286298917018835019279068634503775172349398633383962309492441302000350066602982790945131395589370587383690642116010902803806503049686092653620301040350894166595048746239212549866316035111863352895672015312383642395181470307167596451671795900187584802208908212984799346014467395375089469863271348329982845028172093849921659485436300635389358276780717991559026346633791284750641192731599820239184993077141315635735024307776085094836138583350507146452380645610589451316319661505359619301895657235524925270606446938814607377720282801081095317347124041538452928571917545037710943541333973999516640632711705683289694767156914280523464803710004649664893582321498359558603260569060472318618977480647370701624201542645858960613861298831483827918065186022649240530023659146954430461602417218295808026850090311635287076535102060517543056747076576731064536081270935478577916635614490743668082187837092685461126114173153489972600156032060779247908041167088246389879405571459035132925519282248896464412275396955414475377901498781861770273226845604872375635296422283987639859934571427092537211065392843223181188501675333613573376807690618350591045113874078945431445990949653200297710188003580745387677007530207209939710033302641053039984217570504803732559169390596063721205235537295993906300662031792375009109156354256768667993849924509232259907802315770928631909024698488917083023545627250117054429600897445740393823007143412923522284374724890946603354379691351454422182057950589914101925643971510675061345286605584519453686725962519229350725818496247285996550397369838620527503450112389958430104331251439950275171902137174245230756747552759616538162640044809837796109060167135422450698558505576494214085235560065192203631494405540654396708723999843407209721030462869469138593432333152509423232789163741590736854131067508350306993780460786573209630871297816922193082565148815040762637473218660623541131347136241807281106397693440962244809330506797784589466882893881550603242597049431327889855765576669867465797114715065510544128053682551232531773862662476085068333542821901475840395425231488766209298319188056288058288714584355039164274756059955798846224687953856613937682592510787227513928049415978052401409309209303309077380136925875716026658468718959172660531070133296824923118404715415505593361803372747548547848339979044423973012657888949751965619163820790511184219354793177472985467710200667515719825407112021344419904351188972607554993798706064829141187655264598943384630803355400381119594757133382674482319590584619638482250210332980961296832824122039441760817492266778159207565358346620879386104777884899159656796042465267348442816220132606090392995308192646695854624907972633374215819992162497519723983792697505189579822244597455640640184713397583862726670369210114741680011930288608858199538711987311553338460370420592512063301825849026210195734444072958837709894393017945900422011027717062475594989497651865416153284925935087771625117669804353327154767823424718238815585259965438450941085090717022242687103609649713379151822917239506468814105669466973097109200069176527138982229215457520629484595215220984959940597416981215807521125635088703942354949822732160710711272334535267642067584649494134828806621887788992675758809249760257293563770831980422417636406296401491705203967481779956204385033852733677500228645841007207434763578507365853167637959797373605557652818436659157840605159251371495725345371041106486216455548165438822186533406125157949351243009928924930006571148196302735981235527414604894549424654844587585766095159741757653065431759912086622410787124940168884237070467554301395391174332865645390899784987303829715750353795353239442787750189461009428879812079090126122100276540305314666353600763772290489387445361682693501364322253178210424510799788412560757482224836285118571142950126901547858011918294767877221883116876624310090408430617411408760594691466937032042384750875377269512620856916006282240955828359622859623666160219016137613759345267123032856631340078916758404635237720307452836456106170619707690101663482189792423233982236043877824210617505034017199886296538830993115644033420640309762956943515054745944683439449730872808192743250854127882789201747403987964773914842094056471992917650595379975599892924276679087828475950569388799086481234986419252012923044207110950064228024300984925376851136434943676940235496062742372340279039566658624438454331318141159934581596946463378487539951218217948919070028608584403011461977571372722547661421637941965922152873386667052543956066698881319827977163124981355814923603923928662818154784979676399249617938761516886242097670195169009667583095413263984581630009781535625502311256555413902507435935526007255407041890809806499954589783250093157404110345116795998920211806195626467673836030020090675129616615970513022964725784487680030336374456056874609863207345793354870398140439182691500391962836547486762908615962861092495211060985893871488647470826757376369362593561378057009327516017902660041587031260019927852829972496344767340938368665607455527373741791659079590169288484947043441123507136304921194787991704988269693776340992268699711992969496943114085068878868319535175194611405377465018661704392588030004276971838717844346847833146692026770398422175249441699509863221607264215139422399896003131258597198308748870081207629072198888371086422651828392654645520804285738231046420812887601659928944017829661554514961218992966589475464461383570301849256071717719312841297985448362632874166790196621334547584435623770547502762422515151931305812954076044915401286467039568619872219735251492117363109024023677198744450296257756341508727272195089121597081807893633694494500944119030655541903950122390679704643596163975024695844522381602537640624159669786248479915018680226222183265741993708639651282063512584607870955972194096563720870099383242820444347192990548898283228223293021328010153700648103616622241917880675891296978099106137706341344574957539035009166130098118421502249098836415045042031137912140277271112010594787849263864895487202443646815337379333859439219603294147131410085465581286635543872224595622418263182866381034805880931461103702817505539596454814625463099053840293841985141131835291303179622176614513708799424449999422399145873462498254091573920408205038258915361917144664190703465925991659087729681311251029700536744676350803122652195075244061427849966516485671158652779938533814493557383684660210321117727930010874480648557340426735207443375831527410847839609372853728801728225005789684172962465378532378227032674946278599038049031712627701751578615930346552555972845644559081825856176979852883561037301074591557750425914786409438359523667600596299236526319029909417032491799914562639752555090734870503079465102823061852596742464367297982070513068397671105689455467437530220612264519600433663563830027727986358393712059236618914172298289906148780864093608700485760106219105461117716653889742710237373327989740622932614271890170940014905555629151636935953162165772796368605934234957605157128851378875029679955669136083713153876598259434993970265750478679057730737547347398928825252428226404826132353236045565943692027636303512175251252831315819794049977623358472503296365222480406282720561942766424082330141105785015547645177278110713449812840642582521206924133020064446647563324268728728571650671346416457443817850018896108024051899514230915883128487085300267062747989960826634848643974418044160788510220374680092161341470707050844715794553140674776784802437034355649311916483375966985773928428083488108015067307376951645035806066328763262190257669728178207882293416855023592258574567234841673780056908518363088661715932297409546142214871326328121650912320944838270700121211174789746918340524524309784644682666392411745091845938605608249585739512239781582973858606686268655442755353285558158891646228611651611597424678472839099922475581838209838418922463131916183930067851082725932377916293754198846725398901537205690007372966717365702331056900412713134465317336685511922222656051826096843022822826775134689886012479451312147796976622816379170795092021180831129554705230764883603132443019794042149473405023316240479376284234866443320395595215333375105539500954359201147235604834545122584967790050270393222573535509175110511902944857922322669961644539796183844599176080421413872149257532752841119269517815398306391219746336837185809328592735301801054986818730583517744186142039693978041717665560939144609970924528591208814886105282798640401914781753104265581836178246368166668062894560492161252290461229276121197264124690378771571012607488812883340234135875209247848327019549321967187404503751827175810520378523728488250809614214887176046468498657995434419813935977842324095763985243183097288361071266221886381957383710453813814504181070326189945194296982141258196857646991815517268395606888130950311875612244487040231690719103860710157382501268861208846834680515276010733311392128152165068644588681752749501637037563052940578049954969372565260334886359727887492458511423910024757389880070155511295012467163671758694032496465808526088071810489438334603424363224045185209515258412003671980464313285629237858212104195604567476150319143552682491158256055128265265568409051965822955241552228354434702903392789189250459910336321813436316806909380676905723991381479279177475915079413297222067169227672972816563681023700236504741883758347904390033217729813874099906298696667523926889901453174629877979344109795553540482388514643349060322497751394445019275812727336384172302162490438041909060413888031049794643081083268289691284038841494724823607949595091276626142709079429541232215514411072973516187957822776829667205391117072873002406855348443738192398704111433090963219871014074950367257715454770112012187597668349108639282813467266986496363483526811627650329369999519013748033034056496061648498678282241688208541872460524939111723101733938947871395393881350664770543922272868297945334253063886484836717350412508929267576014925500927534920409480846797511324951226899605991623358841516698832223113474338353945846885587154767664155777202419478565671923773865413091445601820779064346047732233492143481867351921564674704734465598952240673434188783082921347542168266257879793252247014531688374415594903142235757297649449246296530729276673714399969641307874967501576947066936208221575697335567468595197109948899407518489949959450031304641313777160449265712138732408882720045570590065397799549179460194238693881635859779896941255183188278183653180532156131159070732810118984632266210652464652336895624057857191878586263338054773032011482461475285130416883151023406257168582895339379133189110759237786939222414874724015858056540481640537194543776482705214887850017282773818213371324647522321893490476593227295206696360373352011364303754940620477628228312174092118934562661381790245492216325485519131168553841506816623276854908417010461422062533677785547459881460991129943407850132871981903407507335000875913178452831936649429292233564704379738882147166168427311631257303993511976525138931865248160988745684710307055383351296714591907807033562842357981439295460397881640127508804688691317532875798324758855396222209871602751294557446105320115219523329635656275837161550305999592305275324751505132310296659250190241911421486375512772911774935507282628552172346671256169433493102953332170323776352936972343369771396573496892320874478566810937123300026405562435232136346115544348452141902247125968056962933142690552648704663205977017978514130840899049726124393801743619309491230644350126591890296292266148514412765378841865366505956436895148684362443879665586163455525574554572910516416186956497105541650486339574755353483314382420280429106212766609738605824363172607793418265431448455524015374541993591213282592996136748752243905649859126443790999928599135875350478460755778803570570947490179189089369050131256183355161938954994713090950386631261719495482207770468322895215364228684961489831261020697259903135144000116259556318872621363553835503279924516492648693314745125625579848496798289486067039698525225992527371838337607655229275075586857027159851112105728944995931001147449354421407736026474468761853311362535996287164991851457186375291759488637199939246174115801326297824015346730721491462925545593639154679521829637464532685898269652432276096630221457006935305430147279292728350139218244113295466889355763590516020850191604870717859448789323082792046936817253642444184348435132879950978553819065725854367995440539671783566682853333177707076332603475219446207150949270009031165572325681431281409627177207617700207193658958396525963684061059808734408822793604630267002161944073734756983352840987218330421136056867916142484396799545071507638193606821411695375030500661287238922129278075172232517899232721196188941179484549388769941440597179518261124215011441582152541417437136816635065823455030863077559661326218476540425638129316596639290913981127492604228871431442903240485118478982244755022372003975412896678812641128517708333023622219637590753833136760871114098245247063008228341696136647896027031297109515630999342635241282136547764720153171726246154690856222017270924520586245953223479226785640977802442200289777417045753143416795502347133099419083640086865161015274027683874639790240811704427842090485826684167064510490131578909715662682835574247742404353587060516583794766178476996914667890646171814650427064785890459527335065896010191227442531408082328208200898216904860726257230436403084046536897468800986958298497246463612955176615181576993393272430257319639418507846917580372248309781165701706865673506869862207719146901752341730169652310217472794714978950555267745004112249782933551623832652221162540102753396016414195905522818962483613820107475744839278674583713349809811403217669866701378630248763498528808317443388348926864352492163418800967689080649971987499416336441420704863022207189189648604900826857879238217179852188273447612147906167201860202282303121532438100704228266952157305714220454688173735390723044502110770016233101843786493364130298028707947980485928857233331443208076508118821258993887837795785282749437766693934935262425884475127716051278366377985443085410500796029066532174207326672431184093309013303214524382021466849538305096412474034365195313501505986069462135713175448630303650331147136920969932792486825871803625064704269989633584296715650665341949574397847966741636280563643222007499531963317345952752452607500335297921480792905582921040879081972873714100210250326745514949621076256844393728371142239352624719257646170782943201691952480185142601241882871549869305709559683627941755264281087667743253318371396102965589789874009655772364931189715703496550144182870695651239754391989453344936371295172420445076575355201275462430455476086466979310265436292587669162174085143633123066564607784955934448879602251613219788965968872910549056518042281219557552641708290847750887745397327089545912723803099215105001026976884022248729088020134647500826209648716813786909280499124485296967235054388698875900252378608723093149074058553261009650557261317551205572418344624182193626462552541271523831334549958090690152839662517327857957548367503051422269622084956050685139884508737626332938065784201640432315596638415632509925597828214469350258841162533064105201444079003422436172214060461442184433465443828337612200906045398857472506066964607281664095024139686714773234559920892867981633334645413541647776458127348044871725335329641951380698321292309361805568874509997687250568117439230583800046191635728267070212459443368990701950071389543574160643421482769293490862267024025845291330187635945508466601496137905677914388112714133775446152519271148327980296700670718785516229014271546369350284109297422906698915179514777157462713051168465972183832151019039217219437110353927303022218649273332674525447355973625659350719246340874671072279680048554556589065796040677155009239325661006680768788346730830711116950740695018706031999183918186380913368984541697566366829782373214826530548916261824432269903687961025263559993609384725772018627890416080078110895878964996494560587053044759546456469739017382375896537368502778359069087506331395542254900947960369742939286174246047783515438078378266356489226935605048965280222178472619842031709895338855187970134389781378862546688539020009855525744739003006002283707665751375300307647893764565560635159691443764843449525695930330594378867061278014955022422801025726404190302441110504765537006784464911950400359826046427805502747608522564063229778515723457697391243838791068944406239589988929692162608390403776044817884972984116051707055700601295479078941025633856390916748819297632237156792789315767407096372737810079786295703199322756261098176910597798250621970794845238897772675580828141512209090944579377390278637193523838598776160444253214151085486207667390877499832684459589594992392308447240498163583772185293147407757478846580956892614012858015323023671473825350692828365189484609404017478445144854837686053691714803432949178422319757390413651530322889535589278339217725736944695631974574729772461507221480921498382791353054435444662217653733148895884700949866821758310963338781703409567769740363007780767685375323486743442167593218396517520678026005174190697171327212465479212733258578806167925267723948643524178297518333103473144526781821190338497549925671086711801431296638371171712004456088572514114714520166671657044114682374554582355834591971609898367173462039948695314569437620051390389715182060637608511628479209767501666246021133767940009487406416908394405901801097037864902371739675548238680455266278769914932475392751707582235355599061067623986850357829809720838912217398176051972854582307580245915381633666859249921347705044992206710586628900072774181292440729605497969991894100125817716509116728164585744785716263356594558087840170126123361596204322723070417253874976643118785473099656531389389355181668149583756780782579798833070674903580913131978902053520581712399590908477190042345016972286243151235917868777035918858362160713594468525448330718206601561562814413338910495391485155146132783240492849573264299864814913948051859087814624067005872309374198038207980992365660233075853246777536475209259365079734249926332353910768544432226530065014585935299423215076703253352751327615504476916072279467679371781576557525252635650490300073481174779371172500976353877299404897814138649378218876697317314980852863326112468973088444328230186102313891731044632501873099098435520351560878169095443176466142330975633766831485420770406117814056099091417939849596241649857305845436426159393458981446142832064333999943997825190776160908162473244967454609013185804455495629075313852349930734145499956268549851466872077432590451921797773886424783226714914397843671955496562532726102502203686676262688814233584074933436826496455573478467072631074693466194502003234897046812216661303987820608140984389152231276219413231019689123241770878958405526751455373452025951613305748168533088478789811699860146834801743741837141960877525325252928296942819092059749498181330035686075508152265579031682208024430062314286441510188916206839063376647819015392680424458993573443644918900428157147616640502634874055105414191399135318747040741970829231792117326052686742079167158114760624523677950090018488077508212283495174825175595004495470929722317999630742238545854394216538605168686048045350236960036482322543144913918231969696220947991125535234069649051099075481238237969015309549922941457012360592666903104157917671141529098854129550994390764894386669912299857205615792061876506918353711507495701950744550820431488285682085435024657415206468030272725895033505530288830146996249088897746945355635534274175833682210793353684226149204505693223409049089123778540086082701292813626838952952783477995606168966982715964208163430857951047578067201571547635661686980092203065055231297691549835695838456951046103312153738407844650326011929075775380609358084454771580284586322661053809493628294071620402038230873872765705227571849089700617808217446346517181911596607951918312706428712637542610584420855017268821391146751957332289137610017239499585047095445776539900873972706337700140869472175947026257012253190701099446824527710103247739400233907971994193909253904248882011752666271500607999811773906434218889059526723048027509062754366146055174617378886272024060803980486080514110836426529643757350802418267051811224747534081589662944938174715833342334157960762719490611158096626547941637545892224361174935639251329544337947812007475494862988486111029091936383924464228194361105692848359026638503915330904114405534555451367781446956160867750499370748125977693752681558568278946855031570813144671890009687385238756785656892447382542560246555848563211548520605811166085521480167769558407769248949126029697118851583959946485958553472879926021810384120332110256969203565228580002568454807985027835762280771602485141204106009503276719570731400813077265592305484466063852082763855374351025433259422364721673383078267485726411481153023363542633797320260276370184147209177685340255147622884838532375041299175045180018527609241261128097590987438874423034055083243807723761386927967921775846656709560986959267305242167782799073079736664177541396120116984742496394905209397061076315019671904121049317490884358457953087120337940657933114730025165479281633987769619825810936921068473475531325257906215874957668777066311940622455352167602089562276342410871298330142419436936359444814751906665921862012615553705956778282534913195312965809744240574494586636204781614812514571388048615511498029882835327953748939455885739431099501965128489519437471632681015192406901320475671013737128982908378104663606163228272051169102472020326804384898976251061944206065744417433055340535719172274837304894328381913099817970487761876742554948032802930424992214775218759587802056777855818870796141091018211227735981575561738068959362973426692464942223566330265053977756822866878054524033912563152523726737806976416367547515351125365683549376074163021390707640914141495730277619700215360081435350484302892730734352992887139349986408616485548280192577994648065962048457180528274302712960065890093061270371721462359701024486778426718061271175052283619756113064600258775343804421484513581686700493652545765600599834421769220543986947308755652916578336204760046190326768310817794552612659537021618070587928641094357222096008440089066172194239431223428451317683120503805882495326746378958069701280961483050942628415968889566993822991619547471893918945576664433664947332554380151525233273436662430892796763818817675436551558908520128606268321534356034524220516412724432621170903230316874954614119335697183988812340530076450480511972496096173288215149993210489085397917562812044280206153165874756782802661615454485934312375525481459592567417011289817426322849277825120462288402986862171988994760513062551580459040303234331711982902489169317428547887482432741053435667946993378999461676773664081444801152489140012355292327497489132287243693563277559934978332596923447028189937097339609534456437195795700184197995225818620525376891878362916332171955871075813725471801774080767552399541897519904751996142721276347896954228201508872200451964218069260253399779245888474078556746674030115415831742987844152495561313143005536680803209388441336469591183062649206453581613484363344114748636978826276603918872343577670436294628388470201037677204298603786943451758705986713953466400232883137208047112242264664702242306162771784902024597439950898258381089474689952860427969263978978006021229972705355883695764348053201728268716527609021728706448060757576044960062435003390732268704487871443182807292819968488491750007695505442981468663349606127976292658315259923307901225591921745911486425187657921533965884218282141954924755240111523367459682978862436212377917923799235667229271662259082887053353061818174808732633601534942753297117562037819110625948112764905400775306942347320897178210881951804493568265074369547649905118755964044310523234341927266387598065245681666861482609034370317049274109267480139672195081775460733091798111381334768744417395190082224741376475285097084402273002032725415624278890434312032284545505359181988207195307226688035375506474903420840439498255594647673985570642198672109269029807792160893893276699697018494780432380502166292638529616490609099397220873237750243934554805751228233359112367308081222640247600844234042764540480015065382513199978221614148316849022408654457463473863040371253537757622377087863519745481233489738325598451583889862926705564345994124563338046742261561155166834892807270569540362247768011096244446701455809550986320913249011445751897134612738960363982178998817548378117403250209518735689084920165527510126596390443813517980622040125518794724862503651283683666269001557233174451126134996434728139074096684460499355840892935045810734279956831894561134045629548730103124681564868185078035546560046155572465227629579060746294401987499298409969249308017619661785097859994792521934126634229744427969251756554872582517664244915864266895175888506073407080005001532974138575754728304381850247138885916317299794125540176503210824462306682616268377697215169838785338452402200723294246330905275519946897097160051277212317841955305324484615218766516097075509323327598930844205246925680195833638988582435333791965689672363463482410313929460865569003941734416929524384221250963441770606139078951244256259942257878048445206016585854964130186983350034598775615687251810062154735177387030337820688881697135469995106468606237236063936985463590931778343234970178607498995015450011054559966570293773409243099837668365012095516733664596745026979298965593847448878345109311959435015232865115225456839550157280677662107310821462013387093203332250676136150945137158625670694909580576224949739542782857432503604113222855889215781634154831122891080026254130573521443718122482487374428601596608499012082292147999612855586451248593304351866919314973754185360255102896427166515393970148897342269115175938047471213904989482224019360544720262738143668697714253351528495705651851033727757069733727959643404296109127642799782548697044966745480733499223304364492287574889129421935999612742156875439306800500158824528449323263440194681438280187770098034122692774410187729751571758604037739900500480489697267509811295260382309152834012036076285009816277890762727126705823733954689600525296484794580585639311332149762484932386814811791304659438122927900827215094403272707852136573767384156689883863605779084264443390969437107332101193973770551756011958993531218369587761133087924077786046300409181822391154823458218981126680385902750576701538526989639388964937309757021510680476990107531587294007451318780182439589932506251727576283910122233477013847655786139226692220482123048454304095122691433258007247148843791180177124161289139086436788998986777840623570482555030081783389469787668186054376751951140025000487498713087308932407530861360366624170179812479041997275351027393538912905394669173903268336661857319579923450923471767118032826770980960753627596151326145005532224992607165838558177503234049490905230795541066171001285976029671680898066981994822097096340796999443930994843864675757181184850843046783715490921017711464944945738670270984515985932368623110760390419372075574197673383875308810591667185051986315933612925624963812679446204694623167644458473481402362748632670839884587594366177937264212295091559886518475248185830040158758142074742316785463472522473188274765305480400836338329506209963703674928054426211933012399618660636545157566263572347112643175472226168253898637880808847133762608014230018418776372183132958377788319303597450861723351242745920352449474029738502026118504028901979526236993791785605536185928032351117170075473712176130165010265688846964912465591184746933033665492795530381686002999792513451899939878142866963246740167509826582954466212024930840291558443733279719864870381113965235116249626641625203463519009523647362551708088774681661593159000364514410666279778783385756392205527121946568062359605796441811831848928532782343156590722667698973255694568597979809617608603312826919496199706778585110609971790802757908514142006489384919837854954223041135153173835683075945908272533569019937557678417870250160863859100507439161820243907826353093078523200985470040735143113894931895995786508551487664479330904869942069454697172455047848351316178211661091850945761852679867508168015339802555513476141450723844640515201555491597908859551235201882909251395146963836808866775516167461959151860587075065059538698420272649336612973942529946360332792288733014974901429353043644681158476252993584834470370783566016667681104725038817596130032353467742721285105240380829364685958875382243651172135958204317591315198130581509726474351170710382841628990848582051917694162005674270352921722795179089945331942492360288323504010014793585256170356530281928800193566873080371479787973294748222468391811470264442271249425042812258528807332514169073966196044913071720858189808087552591539835717148593133085912422494742173068692872224829692097744628283817832149600755148923887318194566475304533809326367025559500371897659938664615445949488450189334721580639428755982347964295730915576068469847302261183614855052928705055814336229039117810067390585844391273487549453761681181736118662972850227812421404723142600594727313273236765465599956096847675260868328570985644118349921533827529514460392548565730129643028224319307861521355166184022544748259089225580222908833987739333943478952239672243353375223795860575575117824270641244969964340518449548834564234403987704280736231669876848029902832014586687581859175711197568875603022914075776138054211320034820918208426265904532974002164737681655436710243593699067261168916752386360984742032480250481146374899364838764372389427396896409370356704137082480438164541897602780513452020435373063402431610649173089615565576700173316496594728066587154382197503180366905950035028696595092371596064875205356402225035641530154733659598801247791288565084011481474780152784697142778060276838287055208111305275710706129213642640223649856794522004265779524124601457692761287367886987984123276690468104461597526511409104192527299948481890977711064545407892304392219332173389999643957085397372589156316207366886238930510947686834217351861097744682147441397694665680523831137049886625103596474840431662064840666087793580780779688710610853646934191838082161700407360285113270748103258571946487990499885708195927841173032505618579710629883933389371149317560062586424310234442972687808825274471270538861204010498715371789080392885673818350418657476611774016606477644251525375661506472254751833712959517880527334637979988759658138114886512302730949399768615218169414981931442646814264096574717927488566012388534048766182864366320747591468092749447899412390463046595551093788408431549222472681262770191021370038224957931338781471383113836351710204267922207747178200787323612518774941290360198128300910222649782013728916187344135662751656220510420352884033158500529430412152222799060511547827058548034083899777970261260132355416266464391613498269033352396859471839061444681727346100946594984539447779661023818513821881971738183410216048283176714563530060140861167690680977821182590069854828277858507206022535410799689485442469799612559365922256662786313448652999550724798933022074467746579712637159517201859078703749872325978587594145857253724256368893542026671957709763096239266004547172020309493401483386578513514776543021687958727333296306566399028287920130537366682565529076281728888557728459239437002460941545593553348429010956289491515527345404539333277273849118800253070602191715471620293110997040827653263817330692545098161921765569244713237537131537947929359732489708659687864905340193973114757515137371482844090436791219453481824709238101356964186593625176743992731230057301648411151164029490561219796472698954160695311365908812984875511670854623339955758307308637079723900720986157540687719366827518637810519174504856234986030718269042088464403091878609646234790958110117902118534014827533813085296341399151635791138198531392101711258279043235670814959895661719983930654534642443619139809867180536808551255253418405746418045388301725000821616862872884935903861267158850577692498585688906432417488920512120315219635757970184633322678470936425765269209925901523137351386923942784962939566382728004979471851548278857879443608879623339537863443589489233879913418610052942135516401981287763689689980245062444749780943301805811586888933376765707070692754190460608616824388821205206728774051324151813279849474261312028134418625024800951822957996488342786862929092015983521892235104869288360756297503199595990884613422425480376462896099043406682189506342965849960451013872688232070202974900563813449220047951712553662053024145553285225965586320135129203365833625968226717101503420542802514539427831673924533547911688592975799184653761277626965508309850845709927093515922186638271268012447801983233024966678369596159151148200504595665275772048770725798306856893810021013106594143556018930522227563215074724516462832266826602215200052639097463010771268804259836882157065241577702939789452306632290176736666137219398799971591887733453605844442632642841238869131005000030986466769282997735314930740120054932579274319880831354427166707186568449142750068167768631699744982165868256253659339388849276393962226541658414695378316603032363823226457236458436702610231014031131320293458150295622087281334056258010160209216898934731412120107682856869668155409080739340861786845190488090099013995847639420892172795606459064607666182561938733719246080567743815904357614646796645259175733690337418971677446375935591194610112129451215808568035390231211858694905696277316698887563767017072918539854835384869793641642917399169185734133308206008362882010547957731437418087934407259621364089980136734371649579321785208474015599164195466234657605591844475670100019828321965134455316372337996432062963813237075963562402482844038772439208983200534829719561392725676229652924047877858709173616053387696230931487143059707261445031240749049803694526001051925643617658051812940219812153664277979987481276675595781852928122437900003105745937530540011670568561313320620812889553052217122204995448173810954078111229368103757014473873356093863383845793503565878616547425655699611628801481831941725908255934326116036178039041733721881641182711540014458322813068693008597090791085446535122396651285388252444520530813248148547851190981780105106749869482761364614339394300716204109249636253375863212883199750594540013210535670981378499249078790652355112047223916811123720275690658916938363281885407728030996633113198967737506580119452141993114610801486552851264436698629220349660288738633332119843406647749602556393802120977847320152883288363332643941849781004956151140495253333205677608992794479718976941300648681029934727203260624271222508580064324194916279138303864850570840516094032097595391313478904758748305683550892630364083376648459716367499457951511408146000601416898476743415596334537589556621039596960893644662698424121859166181003544461374832559345833976143657842671181556029931425154962982892151167796552887208510851237247079600147371587624570831753589744783006165285350189493404361902541512779404280572642774609527813454663110318076549037514441786935016960276932824975103132391594507043141941435915320745998377964724234143101838045799934944693662721004889741502678487394969710192094820201430599483119453848725471542505650109282288582794347501303973142593150309698174637368310929988680486173528477101187930174675858047873350890986672532130912225052098792409887098148088759991070314843124547415605032505902579819380474454036716252205328110442346882355256172412525197781239831570657343194375188969432225395705147195714414686895856764181360118112233075816374730353920124411484432899388214338275549152842425193829830475036848653389701891111250081576451938180322309030299621741288529203398771185749166105742308278090196612801974684847556900574124560680869922660766311252578056131652198985852139010789583343476787048175155553889228827982684178938799098925738018804916207057059157086311748587617175460107175088885790780321331708100890903373472197874277516166955751990217946145653794239667695159961842882264234691677011250504502169824290128802239414289318214768176136889834364964545486668017617665733072616060368063062537506508494372574446994708746517190815193272281413670999643707070806826628535768093476695659652632809240153573891098958957082706060620322282861847054026597830572465616610896594957211706386285879528429499367921296206945656866924619547709845168849700144327341725884328322597752659879312934582379010305735671688151847855293279957657190725325097361556011495552699147847004353074603326216221097608760957932759605082535094253667516793252475604163425290951276436840485568344786801228252960960935047432316520127372014066696647598434834195679968187480551397778147304340516001070470887435655521842370550806996793814888778470288779975774559632720629130813961454737514320327656239161402646979555533876991964230008152736235903047793276857601377226539533783146859319966184277557533403548196124527278984342147506484964544379798533164182380406680461543734175930333406374810046013358040654136878694469480391854064782539941088449072202788885110917878483920891215398286912486973500142649093680619564183724332865508239779074393634560122661221347870306645140478125857203355530013362102083197028436723022832510877403969041606906535781616428383433854942889789901041124499564473076905768070923878643559463842375411358984128875489726961753926736172681360793875687464457289250796275865727727501871725549285015301013246388029568582744909921006070083197083855914609441433915238825440534274076512288439772647852700613213522292115085898080414358508486555376300259721896956947078466354140576069684716558369191668993033274854729803119297991631511815491821748192506159497945236038414864456504791805373842312091428386929541972337457035587666654406136005786401771426782886975231423125666817829817251061099988204419273978552572434432213893688866134693112536471058454270034797187233881705322916003951205949346036478734845385966129246159950869329101069922279276685911890991536855660578852415523598909388206267910774872721608485054235855440897372610245700360452004326278229969128262307534081308473311277377729682328177278887972733653070146358106190827035566673033510443631787863918760392735764366886724872391543146169391047338527077980548596770693748496539453885855737160628528646800403905998081805558195059185029285785496726341842270895948641803196941771504490400726995448417660416845328516611940307949458352368217427308940775414497506245254135692856633880729558664498406411658421704699269648404980487154811849316861805428037663793541663364498508244535604103341137817316973274232967341407400720465423815663264922722389968077374439775584859168257202266073315179947930398878249488274930540065142487519201204491997248660126059192324741942203041220466867094638991244111468314459362482196921265994377615723054422339523825026825145795023854599679040881690117246240274116944013605202662415866777731918008991017214490741753948981943426100006785386080511504289797299345234179914128416544106062493545198253750087886640094383699662870172730563859295834477592245540829858323307802724648876898709494458206169687413788727657663824041970025947113664455317991897741533916708173308900253353576128025384249021521179971155766247406364533508854133439547885748399687132958282333387208684589344054561625020589514725683408526916092690194976920127942734541073542144695770459116078401063161294594584746568506226996924797961783941269877286978883989537631522517999699733012592069900237900797035574223949940515159795354949166189332402552584061397952881165619828355239712476215050566640692494909787822796288246538077090570419026614449524979243251053700428740209235324935048013364899782821611347186187133192662494113342955202988486869533429162028006404886681500960413207438625072854841286454670839983577933988063431546403675277830866283166528112583838751446441972943288907632944907555349572827513914135537763318926952295825518350334365729429214857524102911275626362622681689792416406902225643355352725620672162186119598172084052824762962552664063382429329060895570334858654808312398868893649169271300736680818979297215515816866298363993419058641458798617455432260179307360505496402631187665455213361225199294951719281175992992998855782496246382240825991151861851821580441938414479045001371922998991522437852598406187215842350602730897348844064069379984751340492233258112198882174989326840780926814315568916633619620076541285705246114791622677462212267456724143358653547500829016014931987124963714122788075215381986886639613100313483687861579314292471144855241203290307546380913818899557437580933813138946692428907896079163320175979728781030511797893162920656680644104875920676259747968223783024631542618078775620645460707920399815135133859777865699238218363048020048117458487688621082622995645506368586007619912774926754361075186321642423893632355059177834622939724783021998448715709026858207745346957769346489891844689726361747646724646444216067364190536035767818617066968097073211003874248714031061549481007587871636263443881752736780905166848484519000196508374366131684694119053452453483147137534853801147678358315914505460695356323006129351824889126639971349980704054572590900622268157353611917416592043156169603426972082086504499574454243578833723176833728193228768591420033752094739411447936124863910871728246495567938786205157520240155954395209298325827584438565745755352754342294231021009559997590222258651810961626687544395694411087176678335090113557199024566824728011543092562056109419437821011687745897039693847544272397012333451163012019251610258076120007215710553835962126012463999886815473681025893270154169497951184000906677917285446819345272241302888603511287247960903861113941285893370409635471817839665825310616682697653380887384777214905026560210888058493890315838376490100785587141300618613062976727699034955867920264234033037321927773034110765469507854121424250008203773375251874914319999808652774908236794797377328566954160301671572093848167529293248620844137280694201147660168606555212545294224912335764904281311387980621800189865600798056233179197083787592797437674915618782854293682685485302172193605165159125156432875824275850303771594151477759798591489975898548342077182029036175118795899099669422201432354633118182381023604019550890863008569049908848810727079342300090366625415428256465463923300220043185566180734806127725516792577183479479053426877202294138587912918445119204893431637145379841206087871168237152630238002039040147879104016103118493448263569686902678066349112884052241351618132565290159316879438200605545684377772283323697824207208154772140287032073505360229464536369157923662148024006205884509882014931501891121120058173983158537849133227054529792735642235810673866146481841512316766180003905172411028660892499733894265852943741196703695485793662370311051280278013470269905858902624451852752057195946848113617325863919132096745712407455738980796754715262972743990338673960821036874110617177037186956722348748484299734831013410162902251072247202834885464396654041490762014852673633052423909950190826754694126679332687435175176835987973848564576343050986841523005796913800723711531719294753982196445998912146100489667307454311682538372192733413048430667502769350291424849667373745531592768638077668625763599215019685391808953502792547522246647098466421570871834491096104907804746014284008562605319301944025652811773339603471391526229690155035477926005790095289792538871390646502767068157414868425721939537750772158113078501172793715223992238611767853923250229909468574982861179829671376669363269322707243045483695802808645381547720739205913898782608104712997843739447049358743336468178642619762007452470107434030256976238186439666028523099240548640346812140183565085511427935084743800327118298837197180431616367204825336019293884267489878501014446851646145575390690750738913707103690587374780603528119271868319839367017237995804433504701347503353767901145521568585369644830700017116630293234886453264209652671880433972608383704677845080822027745509309199399524867393002947506926297184467356976904815410951284408432712840346061597654391868987269212950755869775915145944001559584610880427543324656531591593465676846532077314543483244731440937327095426475366236007951762906016152879332078946546805419973488036197820768976985282780755727710462124215166110393182044484748908082422421261961801899171672256005206227304911159099792127884745063587149535466254755946490520033482115702109399135941790943324877238490173150942625728061391777022844539339847387486925367928666495340353190213565062085486140542374380083995753802714417381561724747386098599764242985429675201998353275231169063519479716300195706983593975542741655387708221429105120217670870375129538002635782713354254197861270684480992217208033912497419639517870669582108443442484670015670583655278933036635505409296421130816668028218332885811806809141544957655537823620598959500180316989830520201932905404659505366263080159278540839386404132554642771018974138386971463117082471788857252483149972200038903921449876880083115719762748631072662992958087185420780068845222305537414604886568460700141048306367714429313918249586475203600527733760149067770841942472177393303256005554314651870816311861015064987027209954068295332581567762936996645267637492664226825703184995112131320413144534353790607531195596302371621897280463562589455440475656226841961255893393417791349661867402691437913137013964706181598616688362500488509234149908839190362068812817415705275520271838823509523962737135336961665799737127885258336196511292605118459591828577541630777665791320777163919601010672174791293666702611015716565698672281149008631578390547048465552178716332390739891721117028748508009082599345902428951794234972361955379640657932074185719797122309801972527862339764825265193653352294484033692117740471374291857697960010963616246745004360814253825532780559746776213343863095728249536368742797349282519330712240007348731469040894049225131291733264536921298303145236715891779603899998264961121095405819630294349052912612289037183058119925540040645963805286637163683982890666451001239807884208029996286712589526777501617668359289570268048630689635592325301883897418404681580948357732085320670925260675311089456091108027539310042175168651469464884978149985173959904262730371454671865267427843451134846906319902777385273063606794590503233775017798677114463217272562609582273051166350693363538837432130487319150006848768237845662440288560286834125465236917981014879851751513382834756565484756938737472342802379099295700201958420623605994685536818770277934111473799140198744800715669408435535225205839575014581352786641133388338792165172430643041003950595849079948383962937558105756031654477093519827447329344070569194193465679489180153201161782951827490231718941473878542652784559308585845676533724315015402232206991633564167177466482202601015911592808677945359925847662380816156606268316881833922388228395472809389209957408618062514458457071895643854082022296751354256615513581030967995571811055622282390566742989068333281096076085438278302409904205282692391551785172034208159271891478688607033147898844362353231720068708993735970617595960005111997443883605003970714286580434756660002469976666718156864809200276576655481839126579195395523270674288338391423109716970484751575565661827403683170301667301069911971042487325972203064255460495236041366049868763949261126793039790791568900570785338082783206902800415774575262932261942165462907462450857242221494429270497427918142120429023142866598953287064104683282440922111633692203004504396043660375841578032718140577722871393529867860961964990786062711434087433305884685316740458578417463118105219034014723643450930387948809702320396659596493190897001635272504393278899252158660535056651186303537165081048651288698494727864687259351396901450869499017220675590408774216907724313464735515200021474777840848032846651225218965253150438282257133288940934081813295800187346471122775544014280961995180908835441696749710764629482444951572365511054843817697204951211924795284907145743907752320732298007525570575587439621341706932524729475496603688726929828229351440333868279451750348935914941994712833760083292612518821288441221415747872293590531474059441398123396067691032151868381405534374756002000113162277538150955362944367869524503722026215613369323806739801743395029622387649277344003325131549172147528260195379721095720056586426031313489657656942487714594720807812624500243710086299604370881866942757029153370125245439054249062149202149233063587392524059503568432894055849347493960804017506296842922754341937451558790968512638516397751973089852691579022575332571056204506723913034079658728658690961772593899913802465210081446254377837722651058266066726527479444555428456962934668460505240874320848697518341422726804667017034440971168952690236571420809898098097981996888092661154159463409898439901744161266553912086295809497520143436213760831053121272251906619659580741574733999839309127370225543830027659835487964142827568368946535877951781586450546122718645150311363681482312840707872256873547248192498788708609412180000487725092770445695344278473211522990997054907766693378972809897574531929204933592049760580177573373386367910076142142878846591166913377846951967232756404655468887406265225260210918798003616559240499921694869473106916959659016415631683299828599245506507898429120301120629279944637721571399703750948928955498602861586115324602237454666096372261132676015121335277705777050977340019040757338461036255820612249318508553207545528666718895760946034694108574075960534761924808440463079784534330402080954828240300943526761130234241089384838074891120299353915431893181160510416816186850326566267399059552781929240795174328000407271405628931501986226162078692871905726463049369303259972455918517679100666226446635770155442677501719627482056143262505035832904752809827357101519372091354614909075478688935493330705511318806503615094314093777174228844203611194833844359868885752337444121931858019310715887212977464649607392383638518275379960889369526170056297883192070316429550520591612069183765670236104009947898413968362276545256478919452175550766369021721618517179964727563157699544157785269258585821837944544229948984168713954011630335339482371080287527352199002595975152121786905932203468810417790381183752080567402171221493779953639523113404222444455543513315835068408695896339673736047099003468262048757751029206110905082519289665016174109813223966646533453748688166386057769559615738144238141617517237196460695661310348585166918664633835930794465291824857739869865385392118727627928119108152025990806593444240837197494356081678801238923591001351030199953325440346633546147773446511897595994902450635654439334242459965915906480430461424125657085075573591270133394039095011376067390089898889402555053603881405012635216189872718159803077171186110703245864433840443912959504746985069581085479581148409486081517276698087184578259947720975048406610085714730906858398939063175485381850941647401131931662125069146962553651353731089174240297069597191815041680039800685879692580469684709611825404980124173394286271689112817275165668792718407444708777713878380825510242249774200693818877853008395280456941084861153629368481942411006149177278096789379856064415360126463654567520648781992027825641981055519969618582733799024177595784953575245879604919209937218253386836385129268063558219312718844261952285151359580819066732445124365388930686204502130239817417470740616402106208168107591527857830253902697023992848898583761563389538175636779847607086567571390221277107447273916690674644091019595092779629758993976312477419140867895989776371471159361799968711099125608044455603434624075363540888121939700731288837023270055383756826873576130784767818785019929608755893971867162294313062823334005283705406199925839071133513774473667102830872752146194136627006979437781479359178189498905227608514132218860428810797442866024404598430806978475486007980828731822076670575643062918407696231714740880963254684745132984487305045026509239701287559993952801091520495868912559014554111446734747982487766547487894633466873697850637830058555504375110180492440501566064070762805187248116171190844301994222497645433153751596446816751421980631286654732912953744538113609816614898769584648349423621609637427158918784446564729636744690815438994772527161113545744924013731666427311304513050533211929878751454936125968859387494423182963732349973071301870165566523224840747163342373794459714715248934339214090020425991833162105578819377861606165973500550280471298071291728738625016161922993728162424685130892539094796515086626356247800898496982370812164266963395578871790665710479073047960445798257208521542162560271012437421723481421577297109018666292019149953288221587419760416191007444742669858216493561692649372301586046874941745776085547440828110931570940919782073559134562180923137221290680964097994536764388375381888782936891164195785334942101713449247467902583341438984498934309978888103887866376484301944315071726851069780469625060506561959539197295520330906830658203039064268280623041422195826867008542485571490066476126718634477319549655513146269801331474499746549900353379698685717592039531509343368984936102511385215183279377254878716394223280341363315218610608809720483024153682819468822899684064872275369514403255819889292058279687403782577681991996741368073492542920283075984890929537165134744344020897072369990937259854858157380938349793423487857076143971240023476569812546655179662588917087158996072653735488559153816052290725736228883883750115689084397796608308842211384556563910505520950754489677905605980202516025101227988627336608386293223223671557165307172623377839368982773437658475562224476573585390984888273976320092553562256195494029276075692460309475256285026473757458781068189246021636551291589948166395808748636449024647982341701660355755989750602332187357134842233224598127542951572722403579345545601216962584093906553887916596983726937363163378480326754302341269898410813707729277915543269736739447452526946227864357459182560909093851575983172719013566479759510624605588613017705020962725839301951433982334746457830407971699569074192251715540694729734292308927723545378692334473355628348376027103270536425152650108341319673182870036099918060922745820630385550178311378926777683002355086276976475724104541864631390210732641357070352336354372230961849520232493422510096017581504533532317579498541243861387714209042442994833247162303300383600323395944599888702950717475559860555487550885130163553407846976090769311763475392416632414596498302766919145703728825723916885542780226045582738115336767752009964004743826244349080032766332596989768957887558281931066025451289843238552198310760040866236080723591903068436823032168083146319307604129282459122037057491706106048720092860801998822709480444039734834541290930678730078323846155382589382421167564036853703740098144402817875702040292337799699464563411294117988595471368990632654856732271429873932703729134819309859703319560888839447501968102644463747427096263109313455991458970353891387308480806058804915109146478464042744900682861690450112648585538901981603414807966265106422058918398529839726095189250653700471297019395327125954015131141159943058910017487241352442902523595432207944384577916881177823519979524548003241159540213809708799942452752232788212631652406821939009500871928982897440186159003029146840617210669686450867368693138178221894855412973417038820320088299418993640164742468535577266882982813984948415511427159626527841746994546184559845271776236591068945747768780907296135747678484344256835080323840857281184669013549734703048544198098298410559572115653335954828718282236306777550068451671828387294293557657958453616905393736777093527739473419061028009080590022800370859192520773865716920215697662476372887979650532408892563819771005773986313345617031165484763769618477660368816324266402926995575485330719972021897424204596181195468779654030441868428548854627112427184736585456176288034585498539624351647992089600884120728564326913239933858848185143219419921017156648781505876673914703311506768353073915534757521749307418693035158366184840863410919153542673665769121586567111731886626214520144234421811812923983364526265444511784732649663418659436913221630447646187471521185602202485614282926985489876172931000823326723490083918160570743012860264597192614660896874661717275801110478274795424016300901333489879240031832885354490489514423445100026870765734223280477502519091065832975903976480030938235934524908717473920731927421566304883377282349153560082626185189277814944742192661152640017797722700518120929106937590354128282034387404055338470088748944970249577616335205472636512284759508860754507820672127576221185068080273354291685462674696347237679991422441099151009458901978982559233590646579433390778296782115041250302253193798913052926139727686134135055732484612377664817725865596842622225364906516651114776627132881574782651773532952127336643489432469271648945967371804307489516798888697966972002059960993087527425960416292946449281729428168214793954910148082427360409941753423695750559132641504864356355684279658795134673499603118769200020742214549260302311559659452909433363246505563254248530549579420811213811638615267331188017310922376704954532200850024406271443880051545621993586649245303116388154824699782500464974489325630772313330805536184941622849619254134710902471696160452931151454857897403404742563527820869173312819217540600622833029207308847958067231340944569456037298172121992617130910982385929551423264771404077889404780832816366472494087281715729802610027694495183884468531543255391802427301690917796919004621068961733199942400583885409388805743066980605716469169466019151630212123945547421766607765158417280064023978672541150519783234885354885164470254191085360581718453923601558755394982240546985938398251764483419842544766732140012093025556825392499240401778363497172468515699364396840461009039141082012300166747122286881414922853692968529949860545608372118717232415593932334539400613362604774215689835785719420874220608140029376855531833223225087512855372510303602768989541146172036575603108528093652695799866838148057045565225150322641636862447423757503635670583835186929477042125778569268937608521777219230487627317647235620007144641795507542676443250483045375942573603583038420769907391117711343599589557538566594874690893911117944900881709694369685655989794816311811949129938543025330850332324283246624602859684668383651753205325128168613493352354168698097602187268935685479502485662323305167269398554131168704080569160292109150123850003198098305701557338218407114516549818168138886038720590089071897684262961074939747614431166662220598623247621913056716499462353995560708157709220718832389380518766910748026952599117365039042029974172568835151982837320897058187438873180505205358228861758771663746106850510361538645230901829662160267552860240249429606680215303048245439076255064607766208440048966505908264121440411967780764978641244381194520622512464614759095385075419753030363678040031117923299807241377717992903841777665186567736556153386249235250714358142966545112380454638399558781071204347504263869644528519176420013399167899419332802475938929015851199247775772504865367094433443734685053865716538549516456148887275165136125809701513137827578856437348956183829913935281304447181363077624750416089485008047686927115723452190133773829139132691017903528928932495138204560751787450952592985689371992668127595041615103206612839261612592559771617344720182801012809327321034289234524142694568946612200188734809732312228104145714828839620470185817803465751438455444939282181729350673889210533096474518119052906347475883577158301285091189947521345363688909695654623690769635148544693355238566488146844590009024155618152173118108881517844117679081209752811869601074702500147149295758424003346371216616158527460630144540737442001202088198441673102807818151415339858198118632979532141559689487374057370771109716357951446718137460752435592690835729338146157506705515501920813978332406776223984938107201825249970438550495872347230316800148876725577779446181053258769213005734060728862558567221401463733985093213164763652469562770364704877038034060475969509685810037518698707705284298087552856199813250893595969788401086146822919886483451760088249327995635746571042987787405398284925021723863604783629513383460545610203838391183145512738989886470769088616839790409306131692219405552143047626086119270812505044454472040996166976415522103608927686663616216598283450948750637991198705267640399908466148854108870386146656858198771077502947103282844579130663352880797159499532925433538567575445114769190080444439227328272218953612891445115509876565108379155349635754495795464949964667026345330978647617031073777174427333851372200726610457857843424727226167368822936353975629781841341914326230154603837704497186423509998250276500872037949083270853912171688187844188103152667733664893889390438937354877851545841830113355193693230339125891715787962328116125314164257212274186856401781664104476303322345261339897544378216982456773012924462485814559503992373501225178275300183088579422123723639534626070808460857776758577624702018736718349061086502687325108229505932971814124770796427413972832464165100376779395246765766169931513436213288738807667069654962791410215329575052192061282085036186143188249940552646702155147069083241488088673207562344654482012974322739511071644365516991889790235047962993192199074998116671523958337799169753409839248393649380962359645620097614697437989444323732091393525381544848736523317833273550779010819720413707386895769783769781704505716166658223324903656548159113125384068696311810455715089361162229070562965560697294780991489020684766612459024497145123992038196379611218082689921221702413074811415468974927297051722271265472211398393663842721402362160721152758384099754768839750288125313577867616485121726509130687599229777439472156759060850039814685034036175843382122069874441893830984774750281958623372685017241381941250400847831379582131788747873726743641988112809919144405777583374890717180205686695037576389489898006469170431531128427888938546631319418169804242047965408013737509898447806822165265835768658525498389139537217613347867692287924852231406777928566647857227799786614390034734020183201532615899202242585644865130240739824990690827825038022335477109267133517908636046338561592780488463886378632945144705864731818375975728924522057275260223028234182733599171290199653381067131377600241065415696373187535416810147175531792462378805391102890550513606511678947763355639522772951374643837521460299090105283657433438156359878706990021402615462016205306978403221464503745841638471321428803814450922927098943265506887975912533356935980299785247398059671149701028695299917133472491983587510021373245427026126811626389272168118929691439648350599477016198764054054091278961130667573936267661589908780951332272645268908187004850396450652981049651800268295144531604484662625506795017971471757379696033286308574943643877395772855684454927628069529849150828466096236212638477006026584988726419136760393970791233536383444711160535776823341611651351972984814915541185229889688771675037260328567084910636700918839422003750947815424750412384339882786647468029973994487302638467499046389120778173104861542780968971854452169225664626016571557362121998722760554724044523984589756728902931016851272912473581576469691462554054591648428193122815829403980135968974698804765608333913811774333662447319690456296370885826353718533393481249233969843932403302033482821676965642539307753309926389953002875054628598579483572689384917495594623416697259676029880021035154600980202351996806731286811370514302400241601458765131955702788445006791639453200239663172691297944574026830075709909058898116244299389171949620809911678271177684721151117802359002023164370193261298859242467298187633466774217643169748942178220562179660969839887087168565190103955047498895639033587746156379074322151878029625195011282483854108541085575347385565852735138028080010644573508509318721593414869370712177848985499616702659819389917372270187685637157950917429393746483194372942837220248904256742392937014560391579574720983773978847664538737804826450923613203536761840389373993394889359585169416580049085347811367280298118552177553959199161816875459218711780899313706920148556106326668088770411833134731699403932918643928780982799956702754845426500570105002079422013854467156179199276888996018816944189827795581470722607478715389249324101173502516514358267147813043607873857043020383058200208636797604686345312782166379077060816904557375286694422575720308148731389773798236592108107092102954186397246663257122169678095186353193408405572154966887670043921113242579926704710379048610027667439932021017076599491335933603995837063403968871133344583487655154631764686312657015479180761721935439348854176034542758508140981050605652006007345168218659875028792938858625846710083353754297426371374500713045039203259287583303309073393116609093723875797376610059132391780884302046189087656300641404171177077550736289380387265986284616941850844416959444639184290712113904441134876872673522975905806948033917511096290506055268502263472510076135549872494689381982825435075100787121814685536864432068650934354283034010300756070282772149231523321654553538710988932861263041250288318127638009309743843192318308582452392585051382384594844281992091195025505859017805289171252613347306125947579825408462987188553213169956412323091773295048011193239955041527684882062859360765401042665412976676476226117562313335803287498853087165889941483663933411067750692495342817706482871851961867027522469788469927069304579596306062843215375042364335567006344089350285701322233426924820861818513674222871009265144583847747031320001926760175443497607209600928440899846802491716988277512139748094503955528539206395817674645194436415784770312407478923069923251199003481635166650985825702886206177603602680593594077801009650331339263920269271071711833577014572816154824601390973128699117743929289861903074326706774323963125977719311294266072507025179500416374912548225556529625449802037801567235480963967015564831617730009976135274371190255076152022216316548799450361243324054355989336810338143957184530392030633068922563985662068856434986070251969473896664783495695024983404416045044625752137035942254679078048195756031388797952344454308169623496961293839788972289677371879204896299445704119094988153446035416596540373819134944964041117219062249555392093811155721311617057608876681367082277469892249360442949595680077618437592579657280844484692100455089738596600441338598568402338234241406096372417354578483451885429633164381269611642416422555889690738973088757346270192279474526624190865470978162524510546167562550845986223103480118881017030032437507789309662337011106639759954927950826982173377882977443664380792420717215965711140793582920418332158584382825459976901258158915157435660187195298712330452886641695969904655476670700387246708588462283999355665919668829934635915726825801351030462253959372351867552850982737994963555494939309906396495877812349253143833202323129244291521315575986568722177306162566499506407554562850673202155079165818665604111272329692249101694780897824389185135143843616302910615118563355651712190735335883581867834715728873921133632064319626851354552928685433491242883412575349217567315375431302156533750239047835810470585818675152689531478277714366229641429209654450305124309261035500058178319241095944440948885742009027262253398434507099625125013353118490548226209777985875045513076120459500905854668857990556737390011087799925007346616261425543726534668146945767124225452588730394511576819994611398201349527142159858327397210701459471841100733670912754934697042814422089990477400056589084675915620561759631704122453754202110792257409052975243992815031954334627001989600043486246810612364239648930777632303581538440359766938579585582590302933015526172586841853728886769855672157373530922695388856409865848019024502979562258466543344512778635151143686422472532875966668477448795746045842999142865752490210526804042112877676644210082451055517301680327765439570347145885223189314533634488592937842448915607273204681788817394885657786775527627154553540438550186176877696781421264852022651398061610018248990981371312724987439277517607508153133470877687193833050758894088052032545447256435382179093147447149857077714009257617573685115540209430582458294117747166234121456594461147621990208249405706334742479471833129366794480567798716934651088180919092807685828166375296234041806780847236598541520498980065615743631977987918921255631558786314552668813468456824119614524473350279634287445630279373690784664308116237310400415083010128062235901828618910039204640898947017820138223689232316827567024596678730426165407090524475935240959630354676476363926060019071595833118614270735474815520288200737085952415857705400554159136724996618782468917464782122675194712518826484206442962298070047906561990640737778815794854930262968608452763372665023587390640793115600491502220313963811868310128731236790147905817462566887361652700736983260920485007559260289183986680578711585108800914571989501332183979243458297314449929508399307443407690835216894570965308346592981186749815692808462687531333891219556520075661391470618210463804553700251209556577266558124860190161956497706236288646773479173337682356741497563711819399163263045593961413124264064059085861659089926977291822754334529552440421263695934859684280361625996603230773913212441598616814176969922461254473890574375989412973276676475757767026358589303348909077694566016759082506763704669537381716187805570383866160613256765825411118663228992347637395189167889192497582820905703212165600571933737610258287578154499908101035210832135328205045920592010413786631234688978221212099176800489077743698240071158163931502641765959489576815104819038223434824784274219892721869643690542086289552352695749153547641616714507888104293495409142666421191265734235403565204422071718392466734516253293123990026770934651323950946541801759758588410783788981469332243473378958999920824165826755368948164695544185687854880058864894914846079991589561417044914991492685859207866268238534131633066854792988811531842143030395095605603051381485952157283080521592563000294104495465984546951903791595301050442333447200251831930912299892361697521591308079342820987905749111089422189004302245135801952873092398740129154334129008795175987716457067343550452024124177346770750276788104858135095501490532938415687741175355358381310676104181064833395576313762892227817556451696502991621394596007780208013036818908921175056242965763868449409223801684544786566150198665791674249718693283598680558959599701644872118988873718866538793869259449354645947734667481066077401964007917108079029573551530372862384421479187197503005756566088687104291871946528307890205244701278173720565478421929220344705364983177329087837061198286736581847071658549088032325060973248889569407023148784067987207821624622164206391605651874583293247659664137110987052660763916988074366851191250923723109510928450467673797028214889659992231573043334100002486139587445984986858279055604680796908219027623635270061901877741939753854007451431241101925095987087044646972939271427799395503613653105775321703882696588904060364732735640600276180721368430432938776992637130703756170547559587466202921223029699733684178168149351678225897450808089521139151592694188557237033100243090324374589904442108658715093695771454314989992927893666696220773751907356599766773862155207316811693594139962920168327961047734239699991942697280945509916956240364222908851735308839409587276731022752142182917742604286480707729370342121559582542626824284355054195467909663544960381814555982296120299441339818092423734000022774224141359268763167733527434704326330701541196472526908766051728439144362443642506612807497463118094056636844954835825676177171770139294927678784762907909382537525470553039922626043504094064331973002626843606480400473277975032982492047393624505678763295049904519857652478244980978434770874283093893897810116405536024951738554707514805550481407532891369121801761737930285518069422702114073846608835089218142656087865989600144449477550864936406007012601053563076054971859651578169921335503717723049886060962805127948458428366963338919964600398800754050042241608104511873029371654636915856212595919757344396651691256027376685312145666102495466884806456997242489370700716405435822586999388411596711215772379738888939292788868694254879430856939170903734952704494690157326448029136701209267257071021356041928264840230594364274206920151733970734900780347958984457654434479389626606317273527032662491249600030558292651971022686505761748094596377617374966595511270744478762960474755378065630778844336866096896754580707953660957222077681982107324616764723832149602848129566281381597734090204310357468475411234252308209694924841272330863475098217634097389497250590011144225688576205801140647941700807052690281421989865241869250198774858603937718270475142748296521667762868669226057234572877843689356907810829769509104611327745390453910478415227942606150708324874117355266172969276099438375048769338987863606039667440228963416994172915520526768895593954620377205373477499299004867415286285279474015849865747286437594967228913710527181153707007869774762763180584185444193780301773623386094790796241160801451291040110343141420694067567762991824044631478999093674630881006728081707646332368178738189401792275250534654718793129433221776224901788379951621073060539242507773026174462939785630479403086984999446670676741708680256919854853283022456173305158614175535110066774366990676487239967316254990925560401836216266595282376347274220519020785605214940924089964711771087085121715563256002051470517922743554560053821020024332554559100411543492421369220228372643129336728196184537326569277098749105259220906607472911344946870339860920078559342879742594567994164348443014914692523768101106349865335421214539595892258672967187308285166405893567356219912567025132782634320110637518204322968951982382796252499272987833552402186464873682030674265696621378920738492173846542995972395282707591079138150849699590616172216085880845427093161773375100464918888883910211197188546345387350464849375721076190835824129319065385034507140467094132758742510952011522887209572258903598782661768439313259872374490427730067617393652284724439431352724541013332940708883303087641410396590962183264856614613417962846777053774508894495354187526749770433585813487413668095253932363985290603956346051850379987683371335443621643262000751521770214848024962449131282238379143075966824933968015622661514762768848582267472007770130003246771125879502772357384229218843621284932680525338658880510258942107489753985928827511204825290022109471471028291297163932325678680391139134861732628065841376761601959615566225623987321185240954529661044072907796596006362644403154333206434821494100947125090291536947289642862426654154812572399691992370653351073362147991501237850233931160734506666162002647688005444529874960785385082630683128826516249702011103944607819289331713163331852919590464688653831307478831686640197714388918532169893302326859177128619552268199882016665148760254799512541254345491490450788752812818771411873605388145603429817935117496696664598463713118974758533111329222121685818328983414971494571564912429052716367938237296045502278129513542885263582574974849780809738884308564131710794105153712902960898556769404145559411661642389621480061025654539788587590505626894819133449788514345544042587026392573295568322946680489708172434071207338088131062281256825355763493987743340328570193503936215972304611944656980756239168812552686644087272322970259883590336416609623763198003342835359197991266450172893604674676563125326593154740791659642964516878339068749938586545922523127790136623197079180315564665402781232711525506974078307628647060324039828821142417647819316420183458214132601175968554677296212225761630533328962993226281500812507839920590262255018054538181167692139522230275761233341248290869598175088494467308788991083406445614787418895721540666434228061220280498080477256863157419616703797248884548470502714025053512436034547351708361488037214443060272315528350444611987401389621305628975380178730172318829530276207177601226520288453720352549125772146248246053071734472071066420422631440792143856334091547656238241035790338330463504137984753909066960596182879363853365053820654214213363919684686999542569642604388409302087731089047792617204642763424070389386658968215515184042535669317583048685401019838588946361953692893499320787073450932016808181052743446429222252360646029721823478034313858108341189084455709393475767757971697015522702976411331175706430380324654235779264240114173636695415202613848768467949531806792888892584344103305203098388328317643916809426724958488399648815763154642329711414367087723393986176405234957479222212087599836614434313419252200211770586020196263381966191444878653457319980961742038138982809723100061456557563330866900360446449835020620604043214916406282687654699112739339890039960151996947525584385974224350218017007001423763297586931305193799840266065908604525242096494067742496101914019615931596910536154990331947077743959251399799025159500474591390137986315321555112189357780124799820009948203921987627824099573584914882378787527281793875268795616349257331438872845747739602258141782570964362427039988471986054645254950944078334913514149262000805163004161635567167539605733401441099935322152714928735862312302788858925746448880690438580813325457696383301192872867306861255657495439539050488041517506881821681026014945677648563055847389996054222215890444880649309693556328019392482698177630343267843159024608693657944968730824788232804050256454742317028720234928306623806929317803100833807389796051286441012237851299461324012870563880374955595292756240904026254801143311510891121596714239426833392418447928057220165679362536308662082887126401894033093707666054588984150087342004546630952760310371891018806166958522934015526745921561468687783646085748547801381040521501593626408755295437849784069174771924195575618720848191420732276518997646218512510303801142702979083341987580229134220477697388436611623917217463171823177363957678382076172662010426313022185501542779326047961461795937542221563969304530960203617897426348754520574659675184876412751263556057837349689404004354368061431721914174595477958411401492787697516076270899627836345137384093365010406867867039405775874563929124041542484032852628807968108199302239128373282011430460715558572264977411313844573843056886356709663222188756324440679137554164568851095096324084717948173174898246916342293455446184222789209679206153386811963094274925384874886436296818751728088675961141089371063150625165193940649846703209366029808283748682144630065063018278784512712144399903851402589362785807418502828449814865874390083136534475621724803054390020484603419896796516629630628170642733822875120056841109659379110869009435264509918794303127621680834708516923007346654753764362292462552712486217462678276476194403844041978570807593207191672946210044882266425462452483340021242573328875119872692930335629689640197620707382667020599583560130983826817059041567403902200188151722921821251200343737338554069542525896775040351724609517290585070381597188113489044678067567015460208471797833476876032105911365222381850623705336617636340923969400399014260065340417937208280409722033475472616678844970915473261583372363478802359609708573660645840426835868210314792362115004760412255003835255117839846417913859066358967778722945568076397602697696492015874020880984706023910471670948160395716300156992573902372808915063404776514874960658798751686644058617853532158724086360197890573424648935045926775674615541480909117576707598924405719616839464876780961989347701678452242480355994524555022185461893579089863184514031835217346220048444457674793759335430949480564661188455549971904550354970660012098930988417329131677098119996073903560253752269182849652861773478970748807366637260370466177214610125537840056925746303360238696158888025177559437756307864162547599731957844825383567773067028989073237096226639641782383420255134981180920825947835585461936659688463629542796722303361474247634892333541370075657813643369424516279354479967652907849289061914431558686058241809824460915645515546127845255897551230351312500851657030024118941682102169443531972659760211484854087033065311255123014263508865881505388600555170844066815931134027616331647235079916413047824787764958616070147604962643820339956545916487217638963764086201726649912050920537907220546405492865870952071507993493822839421741311557508784663418731708390493851502002547478764211213695265763282184629525779336318597813865346590532568179751560385154568345408359766922180846135089604655408238228196968658206084689878883074714164561191693306519679219541754556349151626103934427404426684842572386586500698656262477973445556593431128109990676326387685107158827809997916549713723695439803094807877332738059358241962167193757624337573939556195025827795598950283786333689865549530926563345464963069036470366870471508546899225092089260673504361362136696370896611644449282616756109047983993628566512352164834893483729330531492643790467757966908563686781913605942047326615407353629073346940852049511837078693136397767058957706594790573515200227772131409593087934983118966083717161305891658489664177261348014873017257496339717815773995449382552360049303317098005874897724559699987659132802477775563186985384080553664690091763412078348932374516834934274075837231239317308022445620572694143434851574775068426447748873719425968982073747936036657190383059022602185533544100497346817396350800422356765109759576670223924023818232402798705876842201153176447213795540072767034512342470064619238489721532401016451954202873783980101536745433217506084835749223481599686166156116286990403643252823606370990604847075504803226680352825551655898966624371459369795256335434187572388325347345528118552638733219558589214883428692481029283326806531224407934559400849516063143999092641903616177942094003684505349237862294164398488897767439040562775911861687664051885976537362952958666998294020078726365932977803646190527680159719927382621851035093693870402915957600886550392680337432656728090989470344320423203004094019118975735870792124199634278303419989667859068551951738369130009127119825403097750416457658928310073143245032661774411910230890411768336442569219138347450973049262143952458724829917744797414895924106604084330159304768882665634101280997177666090993149218506743073558075716971042317189599328195885341074714373828949489712220321835271596327473839150916736855516654228630209528996345832741996380017692957041656980135462696523963117310495957059528749679007614590398399691779835391645565299996216543055523758022591544269100394875038019629337858443481775751552587972705658573511237312474912383437424082605967005333330148274455189323855273206897514975059284308139155181023560805277302590715616924114853181098231393542086222060530385237596704228691935139463917622872362946034722575493342279308980653334177523694638906726192972859981299604142036176146036257597895385191449857915849008371522266653812341381109445437105437142969506397916606028908551248965217502612107277861196575607351787357789128894763934904395711744508486566356162031100560120021660388834449270573172220653550582478307865716260380073500766943916190912391431691998995222628465029664143287448602552129723317844011595511495141245944021581230142931874205607272863742495651285052086053326832472256102701062986238786124974513940288905116802504814152803602285405381984121947566195186481607795105235809140826610452852266960651476523371913884099216666223984424330852504946429188616256856558350494012152745635724429880076274279938804154642874786520925442128029963388745708359970442803146783025618844903725034199932303236389763761452170266203590346608843758365291623104317039298759712572992909043769711189592203425760483804118376015729412617796270084560259377484719051950411872033860588641483856878994051072475056273431419605810949264188526177202266790242902796254350353285951878856189676161364981701364976270779491737185542204920492809543453644223799574688935389218351852067710685511003902150776135963630674844653134471084397576088980767812109244536176295059253619375331555632861250364813858099462515548344005441547630421498303757638816390075589627951193867675658741682670378616528961890896533992732496324256465268493620514026333578442227500447184329311639426580143187621079955062264514805734356332608822992334950344402767807551379919055062790785087505548631264617709423307113874200944068574789319478570958696737334404649515235027676416971841295849197079882998483838975047087634058819243656219875586299902213510475666459396527703951175915156853248612098808138659447343073470767236413688143415223714513872271823651947222123623458211744323395876056634828825645244447752135236446976985185435412432922800245671435855782443243507327617017332679492137927829161701112583545317641646700217675603532145710609686068642507575049870941173684480212097539895996491770017692155080826298859210858040125407099844263918345453132867494707632477872542693314746009798733232394248493413847740856665384803589381230032150312712049600308271508551083969012165984294756056901251494870463428072568008510792740605699751106289762790439168593234125272915312263694845143189862574310298724229127439779737141263234942423927167275095875512573883548162925242952568999283425166357840290603487302497300257461876817720986916095901473868993712230688841579243170256209201952915044888418554316257718141370786814785955168861179941932457005208137183518849043846499138532716739638475964594823199117304611571175966840123232825192182471674907250458027716960624618950025889160307145640822605199353067204827559549686261386481056627129184835605354034341950522244220823087547026762657757709903758178313996103005821433789296615034533569902941931198490813623863523075242251786561364485172983356137867607384887777953486631772474047223444338843335654380795434054795009509892143130690416008952720996648467452116540970403831951558401801782280404470792321474646900374805197943148114225683090091506203787148334431269544524572455411072026139945970138067615091481405415398155345666007531503910920923260923658077696326398742500058627183578405098398371788315590837453218635136516035811251519503379141364024077598204989008747537462921922422328820270495336179443412992104799065009995417281617857569099394447620602673682266236182560482574813738741701637310886688134038876357082810265436018144533504802134844852574070593601353306100784338248146562435502626951122155558645159325273574022301836233825287175690068993690320747150022682242326948018667387716827674628957056906102819219389449800073541751104791376296568766560787364593636305580006076840211539802977273610071336420712053164550610794051473786459755823809946673639962913970707961515233450148044007155238223422308417765260423387425046549890151911284228824644672877818583510454142102447455678561440707171100182839527995634115231815686095696158266244928552871604407814174382935286063899030456521651947186667747341678528695474787393933626230796365294786088816470475767214316950648715103227062657959548005689854412297031523875382099425441882748276227925636183975442271574389019404087033389868140366832216663366895109127172171438622066437216518844429637453718897028838187975110523654426145273422512193802848356014522303801859367336619680987295558776624137906784641733629464077085113412444125012263680697341744014948173940584994051153673806346282134426803226547789033349642275798107430088103138390486264447639510486506424723305792593952479157944166485918616021626396252513070252619495272694064749194349981617836970891982230251303068776551058732900153416975420431116927198059262336928821317803416671935086038561010201016062648101266847051390310834939667335044399151382108911834752578287382870218325413563553801513963961936862821812197902698376281472788498715191250452548068653797272268114466135263010556969880560164956497003015689228628188209635755145743060092212497361462220424955289655420563325758384558486948483966633582426719705300605816043915967158393035642351782975437856986194748699119755664526753865739144175630726533468459961562217493967347733224367187127310174437574002918451450030124309740852615315364730003740521028225734137483163108580021205006307634732012197388309419624342750144379816742786552762330189495984743089282104281224824356344695112380706265471701626474656984980286633299279791567511642644150421179981679374796105298518768810376378472103055060217527876635374781877020921658913363125972709545567337093490066387125498468500188357609653061021760697274428855238910234558767103528080108860948295432309974405742753977471794194088819520357835288980481472271490266035251214478339685408769478798781907940355198237025573656412588739475216903075810589450875308967784582649695796925150837267475092173038682064683143323294346139098915510565970531081015748866501905303907100656455038268016312782008374492235569559581888755212991164294521365144852750728939631394079565433925811892731836576500940426065391133060701365013649659507231984831354314033929395735328121920856768388463720103908143852867770454118592699046103155412215141987058350690348323992515313831089183937162268677921384667325959769092647654348384904538434481719594424889907383712445341890181334613096093805092261204411932867469768382787219421528306548683465974133435600259474409505710891840077571881421900359766624412732867567300976689891596725842860329973554348252310450675923062392474040651859970445202568044733321676646772285133668181223386244134707672801873827104449836046742155119650718591189349790481165683684846267834121785191494079470915623044974772166066127268369944792647069409633182494152492820246652467645096696046151431864963674015736197823741612642871424201188068150608198943686391318251961872348213347155706497138666158469898812727005452317165583028433416845407822950700682320737888709713676058191119634705411223105788521515224787653115039869270659531942206685600036103551787939086683326228943328813790898000533738247863354858560959337343103446290275289088440474922775697894430034354190122085420746912401853315215878577919005127912720522188457158145176556008141998210046602923250172178241113623870806470696772899565589390509885002661353168602344032382439248452267616076585060253695565012741396878065442168553695652350015701074627482024512312152989104032311732651752080356265112062635277868803466813257192844198847244630438794489862044110299057428367720909838349458453342754689575919139351130158524171108073469930447565804619054173853980697450401389355416515165996605632060912423381803784002940129085065073996576711739372994140018384236272041841643013778975624967339591951386661702750629335510334580838592520320901882391860448560283701088928297182005565163672322452264919735584811646479301150810306389331242259593623187634000124921517311424659698115695617631498311405084159185243511207537882662856409159873866461521288381126938422917246279885074231049773234175228164231747118756406298677950679505630435339379874933561858945656785599178720672666701668144861914634355873251308876664795655130691024640438858119370802816733070631120996972042483160402082535680590110025762802186152211708010807971020404790407577942618918809669859026029700679984459782654663634820303603686129977990839402152557096957351397755716057227356814529125645760420615835784769631958996562980249607460184561534976920210927533817914242932835763456522255145902982467882227991585423032349580097991655734237881239972694608324630535570429878755914356224462838656217283854276156172179693265721595124997316073488444964662564184891005582405603158683613516942091482592324657934866029861234060820511503543475719199921910228290489944327343707452230307144726497626448407314252380073785603730959167402872192858188740347720883560274674571044896174426766634235005669634535475577769244807596608424632755096867141503214118438648445827510572980871425753386722268292084152005586734270248280607815610149450869774837162157849110083816518357281742947759017622745384014279974098203496242206748180469383661586947251414812221467297864983734314656091934971131043168423034168299522797685047016530565005991285197371744069755046655428876458391326957620213100544034137595601216137552175313283862311311995633167676626945093448573205752899070559021870914783807873966497729978932990817460443884298306617073316729413211685467568099152588842759836109746243660305379474172269043089202653932342833917528982058748810608687103295293365659640564498475893968506119851773817826513866201915572552494060966058965982576978198587618386406357075936919336695011034272235838123644166530362125591337593500405525264405029252512089217475183790594031197001958061968948493165636090625052986919017910080404198211766797735539222105107700979018164422989090217988027327629654019443322078089846341956266159770305612362140897489685504047601749231802542976850529333575961813536964618973268833860924180377462424419541369421113602581742957645086963251943818709477992158194938695506143046186033242945323943038632324738617387583632731346655922543124973492607660576849945554702762323994044847189325800803737533526586576670023513908896575869451185207682264823415808723063737914128877407289164264382347806264352617777813056604321018664546083858345715153861572082261398779119756973406306451359969719156326603873237902103434652281108365282597163122202074632363382018428409266775236103300830008071857735100573675972281726290669027707281246321962907744432951257073681842258160056362788902989131146948067288406073715603657918940494269592962174776195251628702721188269829252224817313497028687777580835745824594691978306030533471104017685708514877616820534726847777744312559783378115389260758259592027326209644083630536008789094673795129789011955235204096841366929872604373986428269279273026807133558602702533607850586654218626141903824659503801905790520033458349635599335481708485754911668376488836249642983658428806561080505270229827020990398602891243096380188523289959870874022457143336198531759489280822685736333259855156866099728857674605864753395602993457199441195110791149001687644092923322602599826607391432881221263197119981178932194842275597698308378612992613970197480317079628343958691513773615145936203629642027739311387186949499268724921724907266412248447753259988131053628870627774641796229721682450896781012012614920356543938984442539374467419567300852526484141307258725934658980149473808171470715267515414455583808833476482347407862272654661541257044850623926219762731204315459581071738790102990384534246709914762254374757667037078271435218829906071737061804038449144894405510085596539271110566454141111621881038803487823539413139657542694466836670602289218520052102182467486769392208810361960001793021919427006517987760037209939776034827846795717628195763864975937642365286085042837694445060931361306492357749171096570600633415514375794918543372822563499333825237014823986014215820812247771858494978422183420483306502559547328497362487012156855188577851042615883485726688762368156398365132194196293335379284445392419199757277998278682123748093576207189524102337050581891832181723396009875981200702246880042203689635454746031559455148137427660358620823854666875159946749306849773738604480350561142372939592411407267156578483169641013464361411026986394171519818955342735177170856320855691913106362273577702891918504725482712603604705346666470779463971972748568927118136384936233340286545493505323431970244936711463865176799531269699889772813397246795995317119051720285396276985997470094698144630598788039299293633132799713586729156062957210004687977228277906679954128049253272216335519795684428536102751017558828393598204274688090067754572625277940500831477670407307326645377847308735864404621350876881205464916562714388899156213577881497135269376509198231285409237355838925816179116648412413587710505764708080938549354541255835616149147506956584136318808553802793530322038862899513097725460631047335056282723026566169862017058100097716724131265851046492006990426492153174422098993869205435966240566330711975721489804121958159953315769696583174847187200521450858788980255514893545895030778082652826831710741977296366203928019874824109937110253384284777869433679158283490237456299867756839616114260481477005798786959296588324668068312513255598407117797352889693144588645503957544235519691925830505979948643009342639587472966323774433931925037047217069229385964021489534257412885079694233307924721755400617574486876329809052558360431484498359786294141232020835023553690760052702220908408858712783949800353164252247771405612344805030519924875555331318737075402093708855508051392256331196395774305425111954108592555881343591648939732490736251419826394316867620812000360751732996825653634364871864135655380270596950128450198644430790957524212938965776579480017770562502565928543587271949174427252966169978875824340412872672554133949516178159805344902233427206384897407399380398493839456474363579667249879299811855482701498804664673851021446769922086437676188364185830477210923825651579234869503562872482986862787099089097659032661468973653796006910468498125023324777650050699549868073683723091041269961473721298157698172347799207475166932270642606828610239477683608746165368577837895893070398879660449244307855548067467642827699221712124190380866855254418413289549423679318295066897636020765022040875647549114387601660160471251280073531158606957018120895836715410158682050735102962979332517723181122178180411529491134480425522880949020459234068476901167636861344693152026761010308157468901251648711441473386752135307882655266419468173843761946678960347442870163809967889322473476731823045235366721068847954427982159902397344546062053511248879911586135956775061834921447994760578726500559850385131360122030515673699076241471843710628013648028421286551116605431153960704465801344545102714764594354245052366654450024293785159362350433249852724352554699959059508821153919071246600704686627820729890485105004726004388350212175452161381142804064318572340099978011758480430092480347671229022213349446376952229478561640105693455454555064251096762934500365121218756864652241489094762190791172479822620934639062893400747394313339091049623549051923612335584141958869203560996262579695436335380058093621700175577425607997702770403965604907517376325678090151000094235996772294255990759194215652711643266551623372107743578713460896966675567886966195672781791978853022557827932955034543316526451870125006272336184949875775196002342029746651288980860025277876304250698310524633452303082063924408994137186332244544362995427249123187890498688562294449981673355970536839008375517486466186481509692390012956757906634721854426748196962882847807214199765311327307503198036067353589092685184440142588285432924607861386557168699469924712029313476763532107301555054353882094781031055473349345951890457891060500555777986459081070427917489631490643541462815775157328597456599139508785308329597240264652670395757697394593896916313585133003570374741338535923280666433388317936951437337521972589973571860698084569161913381887711524633791310922409860004199245364690197869742202412595842997206003350043370212781133128825053681402350515169609584242597409595024194027086677187062702070700636706796954902596794774318043609247993417572531491630130620321555542788011117631105367625605873133690226749909274906665704178208333569929951791472483368064151114147176612314146729931839129124365457056762828127911943965429697538611203415485291843612522731273617170822697842623977249483949981431494641945781788870898065978934266221285850028519525012996807902208198783893351205508150612439731693795068419589090317130851087437546233427599622755821783088892008102134499669771883036681201748748732205470348929929322389098331716916327138811530281115050683991207385516870120193883727790833701309329043598769450820636973470277277063889123148659170838249521744120983520278833470046107301211046230746180932791415589532840037957130367197345941050591319069677154972051380160339674571550529088779045881214488406960619148616623620046768992213575756474719049328937014242441842694036050601614828633020744737989343730134706188454666638386599911303411895228631615358626485555916876892102328060573606993765315211715746330288271105579919611193438923761899063668379514398869320580324774150571533433680953786237117663523838053494332732227033162024486466941952931808468490578009063406931155760824292125554585154210390833741042107727186306522652980777259538107886308219791868571144908853964809022751791873216950130868023824825052080995592193458443008718781342301625249177038289088069595846804871744083912265051429670193110136963094246749936057726914683969682952758661757709432865770580624148077082570962476034260207658006823172452521470188304918171860580591359974381858555628488730916966234888491481672807464894333410941397142554560221425500389639798990446965245708399515073463541897205227219628951426134531329966598723811420841038138397858235677095568285031454887225761704586782707808702956788390207639981673779382704716490140600447497537779211122602033339284616047790054513509569839787837957978393068315357978496358877043890969725491405103081238981659741875157979291826262901167019739176334905984651209446194633856128171210162099310904919099635105436640969699009402404173010161942904638159953025056551819256192613269792804931060381084806194825088458598191680731428659741378358435759699678196706288100190761412683848001549534990878719350026480476035461103473005787237999391913616641944105477567777370689935407319646640392728417836185713570495117821684849345818106521022202876326961877499637422922126520742114036123890390164552809484795581013947176544982111548030600628449137676334164482751914883924829982338271932943973454154511864826818400904694329235874675502548140028039048398214835814596616882786405618556881738336979462201046710440329502545492625491855138370489195252811816775822319335185886148449158441124723798455141727202826654868476217806817211409359537542611490478541334513879244824135603685297149473398844154302083901758397078266557346171679483842601392711828431242219272368208278138735897950000056285987245604836562724599804087601316583578956820980693413466258469060793535490546767320305709280377620698679232895194133794664913630124884049359855380405174773146725317668562762575773912991034109537328281287545366263099971955459473461518849586774326401777215591727214447726226083786466589381919186881148341402201873953047521359882416554035709275300809803775610141571033850891716518354901905880938251379302384742586267513831204508155781099919828327972916366282567250094201078727039608454573759349918750044578033214450152674656096780583313908841111057378448664932943323119337760840838155009886000146487857232602198762117310609587613086611186368234233073670538298792026122707620028001562525064749130734543465953985502158509849966694879693116142953566057202848607790493947757510045124895183209698721622818810862197090133614068004901992953593638702164313627764002992660505512038850535632537819930484059265675975319020147463141900215780754852109800283531267351540409016619404144613253289595348300287759564714959171411157278846268843988192605137367855251677411132410242546436421197621230103591404715888367041105072111750968444944253972476337253371806290524911047123902623141249688555834020143552454250426694774119688794467452737300255299394013995534456268393997508004045922300001018284056592709370759123942109032977713950855364905748439095479995764830885381082655324783507329142152966197066061843293367910716059265446468645915065533562403028329436103368418270038429401509585791705625149545336808854048604058850517075812831691810699382544824804755642458669841839766601845202194272135729697085650727844551584925462597184377112186880691981936421520530257666559645292561565942356552817229585074977553223828845527799425266448305691847037286876012782692907284714856245915465408935464558729779422616088915580348177719605445038613737525066709308914712138704029529820557238199040176136257595326603530344935239545222645201291927187667727337710805509131856002838702719506346687783597026079820079139647145466089096556216095122207717503216022720294170641248259732912158506689373308608339341188666545673309647255925572349542732824706749642521592320318753221992625213016283171184706905731408991062727118969263641272433033628737745278403858364176021970194425256826800845846147672152548416038486232889905259014877990473597701319894472278999168262380504694938570286147470485081904836727936160800641686556289571416693639121104480003669573497008641668643492998840004143590763062461916388718256673559463054650034336647768519281051014885042437020580013887208228985563943473933344971068195795963491966128036751903333257278040637862261137547566328140906508545541459732287114650841661763673026363882603711235740245479521583933963307899226254904648097761415186962525389904897252093082923684149633174541337244714544629489819683367145820463285104853492816089876892092176174457198847993708428224710877099172129145318471328020639358239372894539702655212039129714949695511916966998592115057515564091601011592922835100308203095835092981827233999421614560159472583602740076851949336155285889857124335582739839591168946508401087189673717481865819250442850769316420478264843246261212781813693772994953045380626390984445128169203336119512225768458113063992711284456657987645245717752479461699746750123541500970838755804201071967656321288220974646661623162853194798902062980071496140163880916552035433597878139016458450068364261513696468929863337584414880159651389639171630365728098489454123437990888411735565168901232451192082426398179838987079090859854019090844946934212277604075117703422224156073366780142113010175161916961094881274410756326365901273347482978005450563081260387324501543364162993523347803310041503676318389172380162934721884887895495790098882991196915439011698535413724012209262482925012757525381251333184579123333531249887510141876142110698836956627045634902572605149944767408858928239473226207156708009672057352312790493595660445420993643824064812615215484982575449824266017951992138228558931366629531754426914158843068550829118077010228309108233654542881871385111211705481535663359137091133718344793630723688377531614257613311063154501035774097863272886934776278049375821004888187376913710235027545010107935611902194443107128473304173125098731716220403840981062568172917087575449608641288633160140018002398040496792232394684844262040426136789826914705743884512218920195160994487597477800471011026758969173185128907614628782417402297257732034036115174808387189351684540374023139268718753019686734578504386294660984729675421687226958656423887131968216822482964277109618800998801710397556936206753686140532646511643449667419947252767642593809587998445334473184943295208537211430811179248777344109250537461031515036871961601806210065926583976492920619881093613065468554917444912200458292959170726653761081345522212336674933645350702742336827593344394271170361695609453795415733634376565599326871190421278697700105191779530889838742102678569886508969248964862233644077958175012166436300651999341821713348478470600128730202654405745169099236406683556297670650988014951045274006165624887683452907053276548137665468812051045079917123228026992370075238532396771328224541807260920397591190083439199019554222324475765673333731384381235805842384067539906036409641612472522657052912760217671508404848392427356440964262646243718466525124585758291230307921215334372283226471972916446895511508648572566471120849540761151183487692989979245701188335440530408951860059939828416805985154187305040065679142475734683582770115225524749113753793083521529288129279185809534335732841642732471842028926839691753390139479210706158578884444678396301874481878173117348080383826078565932152704407450058510026068424423892530171126144903750851970104095745648826103131616384454636756048083094968437581426905173582440617359449710726607140476728007737228329012889893038944036842449149027983739510662091319560596615723624164647588770527311615786311993004279263092536147611301266681488294412389044799037037378725659356002959053634073043988726635267312657274236626536162040772625178613050244710629676824484269912367179348919477200410086126067642807130499916843785616839333363631990517538924125332119363145309576319279387765425099010074704366768852887775798712062674166918875658915288055424918334558638189912013150658160129649278375627425041267175251742943105452895642004140924825675519257337486147494692992885223410333180376206425179099226471510948628112930652385185175215415464153933667648667676837325074388561346375041177561593468980939342269052510235830311892093012542879398871881314546278203526311450622727097196978438379872358947035688070609689135983613222155076029850582782894126086747212212652791864691337074123643599651147892454082827405960615578221330884089574160763679488426834943968400119635565363853077557834947551953245143192069822538840340283731198096414547530702578339473708844222109775110059619811561030667413136697339235632104272566610114457788362722802598067224839753087328726093791016215086981975094549547922445973401558466262635453548086496130644507279719836813728527132229962517340773038755684904972816916044682445328490257492007203014915579565135395020777141572210973650328213759588917894680733260490164844048840257830251889296293040099142488172669655451668419416493984260025967885814920667580127297905876057734298925267573002421712531765025619689372002219197443000940361561408090229594333623112892413253790352922122432273038934225699076568813701014887053712352089288893011904194890137663703334898094920167076110181562337958650047886980115596359025308022739821161989141773312545521996946031814875927372388922650028417103168309432616011286485780403088736289042213523720490046033807935006132994543895942592927400257251158016162592014881487729450688193661914393450565734461666763060386837188643689003200586033717919402739567848207685267169547737321290435272363445598240380086770849781563031951043849308085005385115101655501210606383641522175647812518152422608959566477954869572318248819314498664433354277226975691561857793633742191682925263278591632093522397522133116331302018466984022923322960781604067275574969485429816200320256572019541884965571433361167236396343856875386740221280676977401626563689807465408124268620160101299179758540592630125113892799976020835736383326555331940765405327552291057476403304901430891439529417445725459683508883840386661028531266647227639885624112852219600860241890616253429896453147823256119748644494602160789270702114531901122517581963783920369392707977277703674594833813067720161750273349335745641583681154637768925223269942344239638229867629208040195603436941093127451123373010151332998728557536387366696670816245889837544203053131342260522710890827722941430373298862294797954106180732182761804111126691929122770469949630097407468718716699962166719548403673493080643133417742334424901261131389269540040908527226665583767275034612003447344679268977919539154187802983616905305502452144506934914061865256099533107799663741122166673168868894862129441156604614799598382822709423253811652886379348792729297763488190182693641590058255022442848920938990012306138335846001151983045566516883963272095537784785051867498938154007633076632597608410904460521384572935348516303025074712969578383311074131337394552057657498550517376191339140379330386158201512072946860630576195173377141441427084605761286406794780035907216013838268296408169132451392346269273701825521501727213755714676215372439185858115461201572091192957973336049919707812082256775692994824972147497609283247573391327249653116778475801528657828853175147519339685376576639541659519706926393467349575685756948506768169453053799940306313867324317973516269966318841943107930537814670571247529420753862064348045723767343764663121155642983966627021398538342884496586292659957652912546828067032323006120228426095472414704097802508794511759082647178278046010532837616625426001949718065638874520468056798302182656916581296627151988026200737255119754275113363542083911515669861640742893189379445504140386165920153397154239537392657143591715247124249226256027013908586397271226410112676341573512803995609992749603424161663367920449471189474726837061825121235106174665571911669755805426043835303093911614251589702295760170297461606706108156535090621844186141528874622033252490193797575904316244954137018707991878909337821486096193609911411407445916793734181753490861519972319662697923380953811002555993472798561037517857818474438182118456346955398953908998076318366151415247080294416568979736316869341589972994326355581238533914092928084060469515781924631975453322661627382055803170819136329228532135794461927557499886352616205041660617631370642121969868120842804019742823565319947709882101841477603541632341055765918323423623923334380696149371044093888439572451793305682222950870424512281392278696644918010833507860167171307493077241995071215398478144121479024765366274419105326259840086892979336420634166999158693528529445753445004194692460539285891920109727754633541395680834299028616604698119105483686636287346935781455299554534708877468473530676834088947929986269642317120990285629654448623441645555025258650646262533203579245067029706664201173662576422854790789627114925844019641222652062701142050077525691824691189554960838495142270651567852367173881064793003866647512574073286671102737301995159733194376528229197804945810359720016041131921868291895213116766175029472376685817354675481717878295266940372618505688667020423390763794984415406066830892449402749979346240730488679795070150913374603947507045962332490198939706881870435859176980425408101950601571337606221219366358107057496922031284272255776139198792869131663185197803724189258619749876601518371729785511097582300852437688903111492619823065538158976389976522224099555309086889970996343235843074387201336996471897791409849196444536128981870162058961409701011812560138996042177031487670219328031558154485635432974046261222178460360131099964322262778713064206199623583474506503919165742508185822227228859588701857964866073804673235386450327780334214061141427671515660110483726036187849415401470057683057067009979104552736442644126112428581118403961568072655496295258989313519075621032753054088704693315495839157064283806871831240260182286328401034300126604773794848356384259002639789810936522676161641126706040317665607709105323720047932740314852864801133181121424438789335298808372263218843401319283640588657943286822110334553692982583663534266318645475247649561560018750163463653625941724677787771936973027110219934994464059611575177235952314393120856583518683643255236220880776930375540021831782927606878454016428248995271768654564783230007182961978405324279102622711533763671339994797869940514072693701611165841409934690615155987965410087967823277436141539106069717113687270942908422743306957572350456152467543704417605252571466746274469961721816199382196504666938615250718398554838306929685979636561047907108895619013078183685335503464868282145066710084505713237478320138601650897468353404828307031362160124951301880954242136864514118931358561962571690493135586520205772658130224397727121760660996064003638636552326355166976387423528598066975332382004608727626643795848083482464962111481480021392435340969532461880325830560415089246556918167539867587585405096354372870533233492374578202095734018402048851508675803354870554753759063781694116942799318167861960899496855930928480883984321854199181962648156835955542610454736867703214034909808987789185876495509624003820562133612257797723264195071058053320199784158882019326168743755326972739907173910947345675075367966358480072771904434655619153307042439421356803350122777820823050463215433167810498922451491416121340937194950999400708498121032749548278686602227429171447286413446526337470902958472469157530843756176279351973084225296149960979402814041537272142014602256648450903882146489776917268616495313183912682390573929091483764181791468562755564849767096156850935697286037248075525076839467380379488619026468571071730657619554310824020237452987390581570628772871963175352191291759214328441456184231723381955925078433147464131258578185891503161085508782081878806907523567888605618592985873207320253625515714198760999484314153480031417598200976663041798716734445194671481023115826763814084230424521284369066780834928093002839662892284105394643083964046412632491192650091639227930907525584401427970841644585304979019380586615725938133154828171894391983542094538312515563592888375471382091846849356984221787840306117568449427114389383852453944962373119053444848858757494160700977028527880991487005510529982120350156725299726856993834848762700128184170608759350410927734128161047610289084927615034017393582655402285629861123026660763812928779602609605395569488943753620603451518378923274638512897418228073969369864703584116649393843097213096060871256450714445257415893186667864299921222610643254514322507514542620177293493344069054215769205139623738433682715003025487319722953592917713353317910955411714589231224181227753431832589678370221154078668942162213524851471791144545010631787352957397727735689786422509839529435826408627441031772856898116502078625861960311786721093999484408944297699396158402963370605373806017945627947081647242908320163581455299921352625903236567795024681321695050749669753040936565450211520953789375845299469978978101629913456429277834713069301294445681943745842034044391242608032357569362561849140697308773360098473599689805249916068820816125336212005875527085049730661518454701456598510052053434417818556710645774766071897657580215706977020593842490098444704005631919051196050820672564045543046692034894920953676869978248039279160523512811333376821308538454637085458166754711632702602265884798442913978123024766992686156824691542855498344503422421130314460084914450873051784803584454991490042870780222245686046514012158579422502962292884859305255860414484109630439863230250528562626623433520519235086510456664877757488700050247155474776651524998216597458048397686693843666135819392095176043280660461729042528814144878453254786563383194855656184706648847247207012903353644663860286549057610985661202797580056025974481206132547576170714523665633763219566937907946053871287104075812803880112336900622700243318759818889545967745051052215890442516606635296958011547830147921900920282170314725949042851263934975923762489836168445347027766430527433377316135564768236427306629773630548290505720465943394216453423623996699311621949086060029185850015422219853178581855798583518945317754552020153712345233165445236504757526207433636199399996147063113633094517638368840224983311238712665766628029837580922147683492537284447712013847333907775737352040909440797799465957562620359390677724199142337862609327936930138155446415244011361669379714950443569515817937979136556478326287040752516448243028166642223189890304193586505315173003022197434614320985842671812064079454478246211759344949276366568830265076233532255438826941614274050749262152399272417918105212558200627803863057425291977721215538621413846760793640396869438294447204931568532927430956330413994050690429490718188711890522926164468457662811671082271332018370991415403991455864239508633573930890794318773908688466727389055807245936975781991582517082758535798821697211355204058450339383902836703132338634795355721857391007135800159795311243983761106308706567759706980645010877845290634130894008614387745556828509889035882921064801376911167497744285315193975754042275051976049568959318821519619215881751927685777548122686181413009210848444793152303983389027295341669428612430535988596394782716012233233075809650578792577186933546896390153986124604014769149303317629541519509653969165507588896470540181248812508620372616501219800040501593972935801740302688649939779904431458890857196989415660126226585253616982165680592416618943488288526199449470968283043352740101031462539096586147940831919715533226218120341675698738139335030903182950627400749112071723083009153352863578206737325962112676971613704978463542877665654061225301657458425780399415744973036182789849188347103825826820870059762846025287202423421192714146366435723173834261938099251572535675211188406439783056575732364010972464879227531528565158171036005625820431571639565999995208116108415617680674691684235129154239811647177605904002525023657073470289660977697787563059847146108084021261343224415071347750787021919063549732661601663033725327815472061577720772658568040446157952559601118993185830935201532338033464072584960472376386165216838076740468428851908687005323593012646154258898714223260702565565270008366353456552897630978872726424980286613372006139409799941902435245960610236359115302501392521314997286937871588207049327975343798895514454177372586983610766291506983217494294880325869639513147074832792747201786974374635014307896416050624572842664322936099796813774732510210290206221385841347926294784961154355767366004436664697016674944921786748938349950868869489027724927002985671122886200241114966107218773158644979410759776264489109793808678080726470084655096520926282034929145120520536516788839175488598146268261525631259670725951107590415501815870243350830565612133967303945079120918199145041789449563629196410090779545871564491912254890525141005017124549473750902422424090120555621143541571218732618820771850526210687517495817468350625493105735067486899722414140153393714457017573745469396008493636497504186978677316212180199826372710459182176461640380396857546098531391008916504862070559988539065935974600149249011453862907444027795729310989676307873402855760082251760872214514126865043053952377319307930098756357300072825861192933876011838152072731019066676958535330353783286389671544221235511646730811116405465768898745233953325489050786420099532770915483252439685341062584324847050240843723112810662409056643525860344360665060726244158817487813478274320732866240841292163766329566006597868150017539640180859697783439218571649910923388867853696904322639523398832044526504476907502883302020380720525831587734357707726305724923511414227323827619285359328531417564480084427400227674823327926186220355697323561196597457110937876371841554622726554876996642976556602944402871037528439962335173644581165753396483366316333632377300197494001469642483522763344203896424171287147646676000697408371961349864108425355938863452757739844356585096586454056386227143632131344382160850611194471540191111502197407803622362308209178986855020864751965870303057997495749438915266552025388902114525256490378225867275760391710185726184051068766222257231099785485007295209774185712690911396307516956774437181870242121611471830297286375303037239674081913406894396664436063854691186456152664002798327037914401173833437404358303310997135062637049427189920347763506569861283647252067837363655452019895306541704620132918280193674468555248648498820133952958961023781049273823044167886892611715014833639401578592112995946529888188695185181294689994539513901443393934453150381091050159480662386353538100605178874151444770352556846750424767163442021812670980409693141882150581226404131419283258374471167011779630377238590802444562530066243587400569234488344744685724455102708300849980130914922936836489375019797554909179977349556628023044218461338819928259258893580633031065397042861451229214491906223121408383792276253697978408092925393060401419407850340842360413026976427131265559067943785403351195147652850182503651217034654398249063679041849859158818438371436577470833088033630776502776328256652975232512356042150443196733153842295243735120242796232466859168592389355498376057484747195008290360579621075673292981727161882133182317843100486615467509683737446502734098597488781380117485735446330579032881329057766703456537205143075159339752267516703626149537570810730796793646792675378380610940399512499295094929675903224832194350042922802778168202682692879068096959827960285682982433784779657388711144662729496328343666271022873581872493864610101922785541170052815825711285270998804895082052571282597987024273410282163100785442367563303949624349809390313368872033816612360449986753939883342540711838605286285605921480036560461564408907966730381446642536770724639196976964601741729192256259907840232572357716231301115410569693054709771593111940471727814234413767574112683146229663021479319413096620488386872458678442208844239091295331589557246898326005934472428301950071085097802092485648521002039837169112171200064117936977619103159677268131754831474362487326074008205816524860041793833023213200480784895847343808736799147326058662692492672687531326764549919217719000826357943015208184153952226011344369893674021515899369600784412807025929947630849133526170656031872360155710774962880891101860837157601125350181080312526724955161317363053291391370511794870261507322992153363661937119644737238680348708986292563267622325956988859895269881668903491199529007044762327204859306634101430587601571497235856855526258851405666659053106984586225564934237565372926281831567563782642122944400001204787003115385250754053829901357860697379097710445553851653110575224296203388476343148182241945469047424417099057757662377673408089108355239954770901176851457789038498045450625025838143445869677110419926505059363571184253362617545144630968400309221512020169286549257330855664062441159025461032196576479212858532014682864770826917349955030220899366262852610867801459582752652267287738776650739957944340076101089956203574042564871600164084329267923275215668117756769699276769769958169643838576839282672708336800681200687705115355753376767963914132093849471924267043414760520101559460757542949788176711111058366641216599765647556079556492960108240639878881594284863740360944094125494750780198945378152321972724977334759370695130387725046911857931590871323315798559634303328492144798623050118126366648242051003430887199596134934707596262763357100841480714673777976442099677227380236350829995166301098800274812028146416026866193484376463893082717106281153703555285065148173150754741389624927565536095495409825112028607151361660647519757304457987121491253911112588240999761335768641133826778562447216476093801448192402099006262391497125446064409228387512533397416643388889855455747243253831120799209665234784708946676859296096448696426059884439182412607663967166404315764164406071688710147218694586455941621390413045919673833486475562930328559557218821574717152974376968996650133382285639826795143591378862950381780562879248604501107393138733921230735720774931499608764935266331547893363172495080370917884003581297260027870741843543256744721085485348137387877139939331717320836033887193914095538945986903626999218022267107965685925894527721719415150659687315439632865549176702587607684894821945839265539548568118882045978424269759250164793183680386548421200949091124690078464892447190360376709793689494850933681930765528759616022369702235144601054049573210056734573036841174283233512884601982507338607599578111983907987338061464851191167382352518303801305820657417686629817562099690063729964552899167637696283229758235456302857966474010715828467392001246432823715982534084486606854133993231734917448301267581441520453439422503409030810815471077881232270971469897933661095049677327883637422596753232841338487547265726924767338763100021897769023215887806375941220126032686467418891463294952493414989852204470301500489088497949457806088103056914090655217098910943423731311031633938493903576658264964545238650466930957716833819214752301296674671877965318137320629007733540267750896621851620089639638573818879236935635430343422957885243264487116476926041599206400465712128665721626662471174601384597028328291331092401087908521110756380851526984044155850664961825360201338675015434517027044241855189136291248845696165356679837792955529627047758142062900426768871735407320386695839637281568102123177550619884436365170884085000575078558857033879059233184428562962382739420908087174888424044257121362168880904822167314791340709191877665770131970783347820739823349877511382824499632349976709480297711842551796982896731621390593779069055701574539932140133857307113948161306400596134402594071610893275838782446431188424082712776800345072491860246619269056817253696693117800795643731708837361199667795322230954132061306411011830444512144998883002909935901917325224951628783442424254488272816398543159080810856021830108215771757753162631257925897079465319667636953922744786860501152248435741832609046338172302834864968117901348051976629885659821196061184859277076886559347793001833920639691421495741096870068108736809003547569596708809087941448371824170700262893932714704664458014204146627965464383118137939151005331014660377731319250543224622683661069318159632497737406097334578637855555595377776723743053750387460981131900778922785340377968207238296814986132417813524194559427990367224385469662766507155515063906671549222396927394478031493746686819101278307527018478037287993837438874833839218763235054756232251390728907542880547070331137846559531976183278235356491530766796268952209945769911610046717776532322367553743257279942891824379095164762559569334763037093399193077095863558929303845892894768427232586840746868765305302468123531641115729819651552224651812746505630768716990843138372458870448088919396253818301705452940704064223578605251849032235928295006231441652893075126217647085130389996354585419386747825090893750398924078399131292228061943705214822270512882174984356920266651741365580529011568760144031467281190942101019156718877470681269850976323297238463074341548881809254316756436531496128035311182905701410233850640216228713356105635021771510100060550008083482382488956831174138575043158734259302580321398011417614683351398415194190610267536264987727496664356097812676279598101268646358503721109708150728274960418709933851490974303265069261768362992398954041151829452871252226206314170160252817340819782361887261423369070710582394079717678641748704937467115091770454378780337138359002096190752533086569650451351889004448881426519751637815143526157473710368165394576384314508930692212682388084675746336418088254909939573610588244255965329875715155913395026760855903465717751265928754453404994457946966520460971423107939662866012722014849231951888430234985171854415844327289738526596565090796253524686956390174925115908277110791354454379623463822114350933141711710097097510191669923662112690506724885300541204936666605757850204815633372845132714005857036891416824046453305107709848454397344988852153628490600162293076041621932957661153634925214997406167107978207789705607785007525214760587943204449182199761193579828883090320256845429491428141833689785728927103749120694242009085601416638010660722209214182148490168970141608753031871428343581042633344561848554451597243254190306895522064026005337501032102983358098731204597208314748340904558377175675574660702660544332798485937911453727918783147164178631299732204023610141456887562563174702481303672491113096309212288377498183844929910667171328463033285180449795383695047299978943415802080788626311624284936014610366822088866893721821403640540751435508491218123765824212449052201931824677063482884577551658084967838673573345351958215663434719821990074435829965976109125950386692887991799521416190295452084575174332270571794393031576925209262569706652227553994514180958482276850785342576944072744239923478957133225008969023469007936316958286812027011867808313712515528686416631836833976694095820594589768880548520634248319515651343033763785307196153322997793858680914582624597031262002068615690124118823250381494446332837031122901788863065027260560841610611429850878901294570536885622819720104595718603078868543176383707062096492143729578210588605363671378290355254923762979318627712264053937904237193587443854735497403572604946364595152071449596590528840367688943335595390555682686235395552458702203360261196235590014151259777914084123849073378380539190863585937613651399677001520421559409610977632711294784319846818073931290220995546920599299225101686776133926846902413143586844379653090507362049293614881790867205293397123627476230017881309951598303857556013213457767432394124302900710456447419689156308335312666879465884463693038692727851331085372058572311589525055618201846532437463776254132116432102259011240324271143677415810306240004834732526089011525160887260458840717706684301525788722998311549633729633716352942006823159958722940157036340523469002424020968979325104344203572719517516220224631595456252506416923271040598867543230938584734078553278746885116508691946388192546262903735872967634762920603277738404602983000107406986033083427286987662017611371397647357852869111580882163506738308264741553813531946130576024220889135707262248195353689843591514042753543330931838500302075844331278629613507409421342060913359021815982031401499420080802434912911133889925995741103355105610629590369161284909993515105506634286711948229747866680846296928068804052380517525685733227017362002631462181363166798925017374767950260555905795105158910421299047720141176849993779170010777527047351010883048692639335650239581891424756365949237277923112168668549862438695433648346577475179966672977138059726215214793429217760428725308505851326142389041528094751635415531975178359046257881737203773993211649459349040548208420025174394643308794531596562644217555270216474552496116891474809173647510587299894635989918902321676578619543895322429236591230350768897701760503833464385097127196390974693194858510555255229371963040389848137498061603559725216089267215232298001613733910466593608971892827309802307812885639799829714704404136866419402490109442540430226159608979157024961659006534424657374783335663260399070150164315675452769758278620398735329760416229737993928674984470676520551388979691801772575238467757218440841259519726991999370580324146743604709549206196540753233825758865542685674728343540404612703695069683433069400809714286112719667844408791169453072333285016978865279804959070037511137315956501052127628751427654151665907578147734364872145374422789625862719978832954167939971302806064630799032304992365532424582714709098789457450051616202298381519628973342461024319746763140055930643537271443521012980689912190671227740390713051451488192037267507739076876076690957236901950619518789634057226897069515166146713262199096354266322156875385955109233632403617335207022712921950215372128130154397246452983070038363501367235700147943055724040896630031036432756521815847974572725120376118910158709469607910117153486239472779398041770873638551141530924695916683475338481111875443062586895511333240112827092216814179252381811122970278553399530938866432190711247295222978974487861393500575049436813740430252650849403780962273734066982058405929121269940932584633106678414029372649709532351872127135895592190880405535734654510793305403780257530880941664769787950157323218791870191968886646727932652956809352279494883662480245028078777385969407473720279058261647432690994261279139553119566721208753785262607980723639627975287280050763811205433421313108010353667517655268253570766561920061598471876759567405317077866845254788817293183759023312424035745539178959718524778280421023222148368402366490722061314137335421017240715639210880304345302963402818289796167806044847017181492686980967701534887987681050044346040499359162151720821735670203051088131114461441785903224231041605303023118601945752151404089488740251314240309378511754821446344701906880954151555425732372892680437088282427546328367298292362126164332831080824888232318610164431688404231639656169181542153612216731097251929560251296551788619232013172111186178575161711233176798581765465787181295085923777527762473873013257262834584318185202299510281739663102556142467939468769081819322885815256307710372035325715361562029028890822011456390647392396916848564054105114572380975725964807073371775237206942490169433312313777996586259589277351651429155069374102916071460527082383135216641149759743034235087844926586848783472340526239456867813788125691256034191339938027439896371227317993274818561516456038690274326253370121937952800786468475001174219273957595419184509647185452260431946117404033493896062600245653625298893807388923600413744051749086991992929155199087865221448462844322436494374565592934317695342182187270705973983274866818133250318222098036272628334053071759047321294034726997931069975053141600156784695081057849599719022577448598331908150037783057124039630947757291886464763833132028410382856162074227580838804458477624272810435951503429793781215202128858135900812891984726395713180413432168844623853271362110905440587805510640971369768243223751855477390366265945162364618304674097743955734180421836178161039956380128372955639084277639557584054479451784823414014553091024769542991110321928407516474274849651220134798207784462864368886976068906752783336807785157666666516427231401275945724350717732659246346103353657201807983468466007178278043418087642372819886499832265863954776141849393782151907258246924185331474324698586098830779282095001037629343147739210038345535807567781024551754331597208453848722027651112649251926621833396262840045785154328316134361414953075537279012804149451712119552613965751378950642791785461893172462681355472189830800410327705451054976850558320949922808960035465918175868456619928912539098816021591344543721962481086848745222444846083996048972006493251620162754964913017502459638226686947721180575239896223375112592798529058528571392328397942347515344383444673419824752799239569415719736001823446106469183182475064941944216898030968178636691346245814916981286669033273316142100047660456915939873525536166681067180431261852395606632752301204678971751487239041956656168059032316413679709285556499746801149846645913413916250122895071899709985133902566283029001934852025889491842365341803120943274795480384248608072894073964979301595412824981719983339287100753399964564230527832035662107687391195984323789099991605632599298214390625189820391220895108804574513180737204675005561885089403096676194063134914008818650569062264880006139960672292276296043718325624874350315794919160371125266902418879770346912620933949548265842935786651344039073372485507695538489447165378135067866131724387783925023244151482792807924222987907725999811554458012599858637774002511444106402276278068445910857610373299872868109105795843107329506070568186892977998150286040195716937934930400469196797300446122909976754675313044565116554325541332380625502297923097016282873136849445194169320239142426137096252523617993339249268884252184706677400479084177555937088980133902055617701910544459883777833309297505008127053722780189703388969294210525058352628480287366991907536474256269440714332124356594143926668807643624453857079192168680847682070784144245828380715332597688788640431243970859119503676031250835693986716367008979237253982174590531016172087949097907114932499110428519816908877382544279466029813659347280393048961671339406849337078659316398188827799774062071018675525104764038453469978379926465210141896803267078192840539076996122619215305630435155438568776487770483902274489078070767239540627118073786142021148233542703911074111680431620356588481202678363065626247267564941058235223189825616054550772206039827306224576501215070807118130482186176258459569829960071268036769484745987002121961812601252658144233458033431634489865272646085990975798830865639397641342486471018950152025580371052750195653036577477655151795626008558033781364627318872451574891271781632977074464673836197501627017057927467282419026922963363312312027023094581592305322214244052503753056191709484620775303533572703790209455863515602882454739224859518254804984539254208479566764322721197701184898150725454090378499102254809449099259871047486115658585058949372457200279772326458911539451720706658755319438189835753586512724078185968595369148462351586331309839309128070186058845180583112863494052899605231146606499650093022096967232629143755714457430943861299408894589108813500322280787780612515211816894948931187284586603467974584752123028725632366054412625735574588941364417003552532506238547097232772087954220719615027236286880805322293416891551018612976567005948883746212983645859185432280543827797590337441670306151528707766066662941076854043454302324946662156110021761603454906324194562766850553626773636562366893552831042801789906936476085659039235843208359920449554870119593846765551219128067201770293049536202374918630266253081269668503897384782351373496448429950268640340446233178098708155187401067248149276054035250071441998043619901936897205177105689111592975504831600564976325620667422055280259365198212760321898935229356045424965763586461874976894426934833134702431879340400821903577767238480788720631933164098966594912326367276405355509404372634550776804578814981747309143501715058681695304982182549972280086738182939099292896158438999728823389151766615392712163010913212773950799258958291170674604865869390660115238839133253494209558861342869638793161282531574426916675836554737657035175978069401840868050886515804816697965476566738025526575033264452666593528569580610057267898822347473326143438026546179525556961895776443369128482627870904614850346033013388250990051005198799752848374369755053984606599638981175274873458464178928440204048638871719930196813725307544435529213263775976672902554995987654418981757640452056368757508507101312891293875228340410360043261143421411466776982709152265280207177404997765332714080993229188916412669470855609415333799870810325730442115482570640789252617524805093326211283075480169854171416078060149443727779917458745849766656264345245318530214626574501744948069448731950858946402721040148420102008176026692820461530424012305810960851245398869248575493830853710229931194339903044701132595570530608861697977336442796875240135693601200990993139861226948147338373341215313955247918101530992954724173364762525670096867413943168188318793876242487740610653733357326560580873179214210015203824297374904280724659630803527946388879046706427640108982430094800748232506202975019959974113506825539435827455658945452506284190913418261618304465472931432881053898207665225487565703189084201012747122229021914676632749836475655499301036424139666763600861710887567759792599997106547405752484169600798292312303884569091988822606320198796894985040513302069194028905279955685623352268441294832580715547576024299222040564801645966952390023430355867064091754814992221212020707545478157507348846244183859496993029268963967174208625404173840578283262839415535637578972345341513766699747069646465992507289246749719282069817413519481309919978516157089174778002635884724725615968400217371953355261298555178374918713439675213881575698272997443636166640227891004919947018345592346695280942489916909825531829218321869716752790909651908030973878984625869157802216125075978572358592319269928408862995918789520936974432891249726418940291722133372009849617965993847618670816895949725578504776765434517220491282162443804896980293856084288381481689854772660802527109656335594826042343962962644040567159709364857884092844837762194761693539581192467660977143729188002918923553816034751396209808411454367126849957473934775436129175206187340779772180116438310336514258931420374787252260854100781252296178516638630444585229330795703061306217494509091323196806079115693042302753647926045341296928377606703643717123923661949792045179259298039095759386865822815779301911586292763089876120044721744534780903271848335543209762748496931903560028619009759159349039684048145904924939488166533381531436095602585706305850267158541615071942063218554172071985118477616593989782773778877687154050327183042183694319852558736433566993834328156931385485599100980566191002490363198543268718282815077657282932888471133272207856276348193120002713570310812942643724252749231426565225471782342404196964781519871900140196029643017200965752680398069358388886633923533458178706001341623368411057201764726151633344188501474674166696908033849385160220088124611783054178627651221897723094537259680247024223614296540760813710469493508935525983829367446616051288148708964213613622752406849893772971686552781964425228469350323733020412206253161024467845209477919288045909718332790059240823370573052302925771698835901007346613543544811855698431918777963101419589725259937038381243761505086248487865591178211501418866521869125418823205593094025603628699392281806496373156823388376490494585707756881284091291021243199105713873173859129122276100233127910361419068064621884539231678533627300431985697378337684957505470712348801198265771390999392318950438937855482226686002369875774906650151187824472618044988117790625232902532013306759278471859431864614553408241607186947803835902650704633888371472982324384715027128312504662934296647822980887611334722980029185499157090336667572473397853647025765874012223786531663284437907752492164198037113515936975001873261081695646296180078259505105941831563053934473421584768046524210662464491920542377686779974301818324566488721573450890645149533774462026839472463387559576643960208815432580374983186371474186111072192771066496017256093720332118097427771330164512837572783967966837934745978588019313138867475799753776247328179670646362904614161162274715059060923672649181085778884750808263112970031729653705868534838669683204608122354294950088917125912479877446098711714471888066133403284568467705160851077817758273186280917791293457259208537255411220997837327582032292496033151309660061953268873738281208039610170361110514908722271790258071595641553270720070372475251845445901486193457021858796334617598975105734814133226564143617155352663234942665082402997569354894700162896478610747827122686372677893097062053387464968674662851407112054014507314341233806654225547919037631629559823013403962808139026371906157942123794609502121551232664428308974760474628512952569869311877529090709710593921595379301678912177464595735511298608871101764402485992122846006254384041125087091635990346594910332151735439679910166856373159965279288211242656757206329993295625897086336289072261731069320506844434082419643036871120999594058116524317595252458922274176964384659003914436234664795427489368162195521102915714932320704967727458125162501598956937563916200117301231767244701041748597637535010401466229020132550360932226020926917181606680130229756353745523368432640418383240730386619960581206831535403432568023797305746317306177512577131350544522329146247798173579318831943612849820279263764966413859659953160161228192807322605900543631661904888824889823217970037198031511677706101212386301990332046664469994628354910835343111274919418048339032949993144270019706894476928187209733278382813056266045874083051002560928979624868135143762433173824517943707785726464545059371348984848542832734168096171520972544875646236915443844347380135182521086566936785811327716558926801375430176861516736884126142244848292257852714683092790955384354961387413554680555964024896728451105194036315941588031473061622422651528141175842603121867932965356576218594750939690662563760104188018049721903573792476861366089324000535201349614771686376995990174963174181088768708439898773240185366365143809576264219254596229469067158092956463064362978788450516622664070676449029442052594214936342087256787247965297182031790028999756803826865250154133704008360839223471680417762230779622280065780635176710316978913678521822595123134451024075435195384560598658970889403887532311227983321416847223833175969520098946140491360959246441136101798914330046981408952816897795860160064988448961384127503418632585450761656697719909846179683661854100501024985958592873072285439291760718720353080808903736286747600036832983548886985542248773319937304382680396381485361472455024255971062732749201651766227189188289596230917944266035177873044394724378499204137202304143041969015115040400191397395851242789571924467657583167988888110725753554662015250294629618676626201424234319625238869944476223716935245239352991071857542254435235740634448777848900826489972757548547024447293515009290537740058726211024349240918980826350179947476068452279742595048735348623527055510701866401549702334027341153840143206819945492539738935361752067452300634667218337681910037746798776685007650459237601269419957761293480412717757067046095730216431405472986104204723853674771005792986851838331117776069366409635822314646856062774978750437523960816097932685258609906417590304157608085366440666936037402721254099345861676755268386584695716847102749968765075413768081026881658472479614007405982250836343568890145299860024866288799076098224925321882861049185164514751079191722978864493029860940924696917980656190696386094237695892047246827953706234775382811300868655925758466089000720040391453136470434591439754478830858778921185336475529247440630869234387852561237739431191896339978818498806669847371667872475958247891508537567139301812112228162621469095033701315527458398039642350611294126528597553136664083282921807782951485064775030981867829017704243470966128004147508039801576976655420379800086000968442941976464853272081397044736367496401587771207788815758197516084900077739744123984496822543523030826812297098527160402513619002245269201796749476105321759766904418999889007078286242551327355981331075886705213351511161948355831590963447082791050303191255133858616560182823888506649057982126595705927678722023159012078769169714957510302075373680123816761489072531073990007099059509047730646332736073780862902074851235898858281294209098026576822976821088105885499799860153980033996813846219438764226474289461192338067159915038524312973634215204871208948106694563497457579907871559782415110749529578009488753407484969882892809385541572564682596941758330634736320968695515408933041725121003108836753005761532154970298427139799022281436751344561625667591713825176780090827634547495912054460455355466903618983624358406106043188367735319203093402213702326116921054061164078302314713113662989409340570747442220214164934109005880051186099404897255706616294487967021688418026597878589690413767913849596887202230731535008763952982017845020799851326382831795721454517560196055264090733724885468843520566380560812335209760447553169352732192482677447741608454103054188579188003143203936222324897175784172321385641284627406589994580538452326075898009936464131517512518021041214864765593942554936936494877926161390396617165111804522783480806841990338102620423974124236753506076432031614236351449340383312147337504067435764601262135630570893183114320697459730241157411862783848540418864838265151238073052162671092315571801073819944849372005744951859162448122122960544819486878977584955525602885816659012187457579066836651644490016085246203815346586621833608953720223466483495308872476110378274030125142169468197832232112163616184410598786793062717708095417800723916146819870924173370601768192305484823601683826013782113875689778604997003774336086368885708009974249365233716063968311619714789643328997702581572192197667440367059602841457782866118969791785906876717519823136931564654935364864152002671875783382969167757307944933202109737686704736903738198899037510764096579898085454665302141159722931528903844743204483707611597236213819150128992835139491033470420483762186247744849182801158063152816428921758400983540645131413031684695713286590477775332612771568128933797596980802465675337286517326398854238312290675489664664223827802139767870447254270130812647756238809403737545189789512374828674443042986198197367058797184866296646081374201246392154808016099661539692225345862556531690202469090978014844917316258694041229138765314424792321821072104400493851155109278414527522355771711066121464706016157688271664956651201170149636782966109524145723726272523656042925492771401058782655794098467409530176273081957278396658926618338597714071988126795576837537214223779205773463057272567115316148851027247716185161170352724265444150860102738393834011300420090153294867677781036597737649136161639061808165922644794126308178965043578867821913301569765711643867150543367310681377789557309921650372839112068201276920808430077676042368949052699664767669556918315886878099115830508651003604204227813456222549445158814686254320909555643729007249154042933253204365746195521813927462167349527244274707710896097410423929458758429477830364189881394767575460074054866556261766202700335416087511388948185161484947420226922061387178309508392471040645853782918663660007701356081028261259876061984034028177480534026050824380806320358388539302223064451709303793889041993203100740366445394947520552833446948424492795937641956446623064383207472085694211718625547762591805048303966406568607714031458500592264515303333791609284804428622552385161820931360679884490100794417882453632980374816316548861968993225515610975838712749776605503389971427285016459872761416300357485412157052496202928203336650423319544443595478345812917696815836174183061809879830052254116978718644975527385679211174757130319385388638257466520124013645866362785122243685142729677643384543657947125607500209549800974433103300747125275634913409792210063785414583998352986517749755561191990194121923237620519145472525910465987964862356647400910205427048140640806788468027559990323294847198425791594888638724453806303553654819665726317915590611652858142561811191002520162535530845759067579109927785787823957461989140666117454985149956499895340537822952990481428161544737793867884948345959099687740015372942945895604147564957701273454427853601661281219043849541768593193268164535527013834711329315533654837396852207124095567610950480000219141251680416726823943412594602222243606264150408635732330050566978648091496151799838173294891161284865256552096345337982153734755007490443176249043079607395224532075254771273117712120617499133356341647286111963726782345086146669586189121812447515836659513722292614023487905372168375074015108204244695417046847234419730822545452419746069799013706732192854695086247388571338459518977729643749044156918434095282110150237350262876667225265622787552745961471041633264840675227964256008814742091960873100367965769691894390648334382067740644004725908653204442155683798068907874619850989107636164934560113124703415628047227809709190378627448635230170013789335824661832957501756140330752324186932537086945786539953815979235540418960954300929113653016815374445083381695141584195032119087377896152325974385577217471429510098768822973144463911491482432788280063399617146403917513308562018390842516934282010026679731115971888025743157725046015491443133406130837453419824566788104362148887337209326158254267397010325313448613721641197210601494693218000146700176494073422968144734381683651358088968367032282442342350897636028757962289149181384891856930446400199083171074445304078210288356980263332254073769227014080824369171277155592970150095419840087887786317433134344689563141886763540479331675803511007482459787972871232501998460282568213071733324805652909705170162571653310817876912020982758554811909192238830323244649243700448531990075595385773340506592213018834518321296981802840472874113986863807612280530431426990422635853468064067645030747386758885096981877573869031294716647587127017262731348791051678407842018614972209399281853842386966651767141643413900940854467128895089044386099004797916521438722740232152956735453122789166913763071366615308075149787801227254393178992496083901843770127339821681333407206710877963270736176578157524696609568883267552623221957172123067782496015115245286181674355634951164015723363219611827410505084202277496701332949552934926194203455022139689958271354521085859650599824026530193976624666069535531209789701657937217173320300545275170942846823024754696239460333456536305061766514905830524898080943109214302717252540791530371645843254774446193323666178584256414553176722815709193614903815172960948643222838376396302063358304234397077076542915173425752107544541120074620901644785460064081170896655868785296414271073189660800208739495347749821150958494667117705112632820652432216709533095062778336901346889329621208714160874176430567641558389276116374746512555500372259617729878637280193452222710293613190890058983983067603023215209370963811250579701983270838618545215752884683613749983600775526904668679507258267146626496571856071861481736211603101506995988583447881512037931457902431910292853606257388235255209305166945141918675618470517954729189656361536023783090867094412416517284967980014934677835847175101576159266237785178670484450901703492198241946225428200573858301641432038554934353832738390347006950792100543790353819700037555927550235094743027761626068429755034395508505891378775149309288040375749138257977308997898807050739296286287362656404200352373122054148458808844281078026148508359125890152587403108414190026358839852302170948962203807756704665402221233597211069345529300722555948821805162722200929665694816086591072957758121509230116698227650450916404056805924248675392129548059352110367846411828847573517469763779526762691144092540417273018664622844273864593195743210378240587335423560800648442898851354778382468355609824574748434065932863698678819424829397159738466027556681668633618025301151469150126851519002066034840562424908426428532888884274217782254137442698330927160773949162206912117627823026828493183348543801607765052878449814934913134335074947620236877702679655577368798693495020217602878341151430158097116548313933320161974281885892950224488721024633712289327638462450848407782746666036119286339066823976895552379640819756251171762390052990790418283104537418372411741327587582158030285350056180138730383745255790718241404975050894371160220974954221478484465448943329100656711853379051302855558950395944821780657879707369039828770322276397714876314546082318367795676752941834606865230998303550247770266960923018094345930264373764418290456945221521936422856785486765774584010190708183188029305165765642780949238757410348677170361600719649437039096117285610128157158313060574568555822449707347068382769051429735766982076645009231335026523173729373430018334954809078469341773526313938132600656542084715368504402975304401918184540678994388281838197434007682892572513846575724671217634770838620590136998831999946336309762734331684404210478427881400948122711917748432576525837823815561482494196593577863185925053902139154630667864714154692407220098503626080973991283895137445600596852050774898929484526294485845694327281893446802464969740137499481149894682975755861948711134535847002011230958212323351392466379462224803673290349633039943869252536032554850275564379080170164516756089661541812184470840830204426254351460758793891295189597332368867568300844907947625977003375050818107441689751403094951995113607037812807886494100989476380922375681738067261823266254765733962692563766429584581594582343683481660815789865192072012295654127426186034663216090691689598190418652259321885916521907832961414260422458983513724942931155390196653945914544726720518463387865974108880051164286863834195843432291250313987547766968114316740432883439598611753286005720476672491051179849830993802586462980157873210615382078549212232710850707376231348049553284882045518903281484127483463572250956040664147625636775964631536639241910131512489525784273864880671911557438159277627490971324581352255929133719587952461728375872164907677717492560631064061582164605271602628648561298736029699497723298325359767422517107631916234092502044175182225490965301389689365733789165748622094259710731425687345749454607605813154048002449922051735010537848050466582810867065490742817862055715155918899822171225974978206593556176332088784473145501546674853081984524143881408576739710198826251217004094578513084120019445284987976347419964749610426481548366678568974418212706915628839729518857255720831219390981750490085226678062693935732098182402912490717170143436553749874458507771384496493303980649244353743146238891204729860205392947297878899655115478910158162551543405317834207356026640000715556498853722717047450836169965164298538890727280179419150503988356220009297836928141637185244170723493930866964413479389825352598573297570462027704689713099991736172754078771288535445739261610261127136629713872552724938313433354730127934912635086409759676155837565277625646828040996720193404963678031393833213994762496765417210912935655728787040804547468609288557272833718698386708362957912943588748291500558954965769051458036557421453163992852427922779143290295403136737930300557179370175853537196893696989738300300531347711618676649168506027061554888498876212882907095656282896584954152042966921661870245332012523598830456916270339236419914846728490486982140823648030192980573505053611993595228471921378561184954021949268193136540541907317138727786905949426693983046282708404776148709714004770889247138032109822005822718662517435608276720970696789683084696713430096490725371081219920350104536576314165099793278543163417570766874751347897159891567386582899504626644469683911603847119109319780645856680959934133055124613005803401524581413123150423214171746689529770681263105693932116864636033233621705661651476939181163005541765026365498984955154187123879146678011202237046799884970018243284098540272954263680102196789674928106377380090316016036638281197926002457187544354409870859768237444808831462646929419750409820989734726910298777579537200487398584626095447670876799952287307985357600318584326137768184042411953964113959905788251218373939085423341165962992032775226952822296998493284345354296552666561783422968219069532533490806193943840309908492290833992290195321195288042982420763128563119047407695268163854029748927927714055843591110793927262881042680389231674847318015786769218841001275935664178542458859301427569840979154075495614334741246000897127756055537689317866316773658255052801044612075096613992178462497325329379024821537938619966434952557258790284632943432793212221490774021004216593837618730397595242585608004433745828122255553208895113698776256454618055880207407925522089132924988126592363233221836402169687846032123275161939032721667589739791469012372921671233283974041130466378800890301450315027291619912574587124022921885138606003742329428786825384374933838091945335716851928611541297147009724382844661901276645989720191276592923542421191435451709191434186036711215583841318921919513509158541343823092417069584572697213656034175547066209100039865008819447656762508963473200783873587297613990461456687335606276262891893443257870082546955917640382227522955870163502751916093290384456550869809497730448479672496518269278533729326423897771728753292029289413897386294305269734462138699732085715373222501910903364611046191933232659990982854955399079985948888513023683651137671720737143390028240568359544398857617782257812584363583346406875382886620579272427537443120500134245821243704974628699103272782450011942609691440671377050922820528358539622813193867908751842213659932106587232555124973558626365738262771699387948912402747859882736773575636886162685568823615548822441436898088874766058330922469664189343480163408832348748021762131438599622595137839928336224428875884309830158713353682998710235524767541131859920233291331660058916437603432053222764024849520680672356107145772429951739273563222534796325152049301550210289554320476860127292142968876284018946510121029125658017260541365947230118740464664131919365691612123196334890114143825962584173789888854067161125158063575085284490210322039494150660225301469167577530088804510454667345696286659108248221605282632808712387558961067935015232263187529473801179231565458774018758381265141404134110550492513709697646930449108139204694646050573302342278310186001145681923945230893719719518163603811990027577774877625034877961309863652105659495785041474903671933613447438665658648072473213988877488518968723470731322923305597245122090504986006359226878805701540401114108262079442476261218055709119821000732011682281631206776465074879250250822706922726294509650419785620284578289985052462465442231757275988091332207965051419873807689151628585557408194906151823091830325406448311257838059558934471481561642545023582863267690395966930728296501911337097091552371326322767500278697587870273473378345778583649920594752473288079996816789553557415945643436881355346671210406338333431227820346954064930259302904748867308308192252978105710591516992337308275668910631955783799451338495024878868271743160658868265034306732097619591437076653447035341043538927100985858628554290805007319880131222940482699336713491801687384067148274233101198741902316226162429763316478565491362127420355558888272770174717830540965336265054177029626663654062954418582580261466607572018034218520730485467472708283620941501220607182931071169810095195094588422787477861893327045863324709554271960153898045525898692446545380846759893150890211313271798968610100538406694323864392789292205300117603282863348289611880176276436073185625107042726990710213050695904396949728123042617395069522965175071338188724919479451203957157784830709576438724572695388572139004857305667265033768288871810564518923203401188070618458848969147163797646216790555273081812869912947133171718546270605054096755522894299619330511232449883333821142948493209248971231905540425766155549256556648589027231830563441409560559883442188857856806504650372628446533000944938617065022098949655553047585358514446685561087821870886881603870843702331418937116124302400358567331920146355495295511074693189010227443289695142430449921150858514841102201339167284564297810667527586124515447310677997280267227849504109986820000722717823344971501490809407985875964354540117039369383862629839940482929034877270781900672668603886717803673967137544440566173667012839176144575975684450507628559605102077226474249261219022722407434287338199598211910784617263074911870821769569415037959092206845997005025146720726036496867775360361789028176682365045281763785251170093516641239689359076529244825685581187936008049355910685367683431586477792535781633453322871985900566454844607550892422467620518806273648269103236482420641542712807919330939763750432310271145023775954920170084346548614785955261514940010193434379080881219370321649350518215401817316441441311839742533093632151497235137926335570092678611705103965718252307176568745751326844793552254290549714482448600946687488011922224442474070437175054859712573175683364209952144915693242579096438441258323992276160507165741990357453405629823324469751391432738059149203730011540128163904092131030456330883579220994841718998636933571579856538276585921157987777610161683951244544363326752728398258215124647282574625025367762263983096034620780896067825211716483024257149295154658249499017302726442357684106831466360286596769838225574041744826326535575208363156971890441141023400716729191389893050309358767266304292637953417240320620425612447900695250753838812617642570277895704637079745855047160927754750435505505481241501492600710940395010256825317854006563465143689115119463828590344345026799520256338698891749770847423501049031674231328476639627601285295794645758335877396308265256496138437544924703743213157143304079546796161042892431015089158938153991962212523320411017936358815333886172073438972556816557493510359812015474135769920828849767392112054992877197888782568809822663209693355374574274919322893412174163543595275048740513724219551166973019744581304066109633231505534528846818111132392773832089189076880048691752992667160069890058770560166359754578260694274822734138731601622800679418743273476161133988999985601256312620280873501620124780285937419597444507105093026470647507084893450621673945654069449661215477958027158154739142004322903311841210482427113026951374253558696129655520580589993076913510744592065434578757482096783292205045878777370583685082782269906363937580549272944558757513907181758828440824425626180654918654893915843667554541202957277085826922970376230910947078108982007041994990596704750284421593525177371729958116327182577984630276399034122314697503524663403546815957905709640612312210163856223755805335363288470982161823845940925025473950445992798442789703523865166126806038073109091398237346975170787873818658799299695927269157877320135288958160206124649516499725577706994618194924686277869471332952229084959161992186601908630571973958433536780433823308989294312995138063320715244008319691549486960226757410231196602095872272608563665642800339395095942912172141657328253946085001782683020027353630236502010752335972654228495741988392558441011906824921405110789286433463911875273259638459646692875909167148601336693611713281812349862995879952572195699375358466733810396424354614897461481263311168200914645261559561443393734559439453213614892613258892801651397078967748406457794490241524010335007096516362079142876937515635863501688556161846231132477161013337481022064741738642341628019596086816997297230719649821043078933955716374442422056896149703396149468733840189830517488639428221080435748324824949064969981409183591788033197532853097861092554304480228253098794256282129324872588196583413389921946268484455746908238050187503323723852376240295620685344032417646507197938842915761128746500360054481521017740718502647924921302268890934323041790739162793187755471555395005662055894139104105342051688919024735785489228718709530108191779462008353760281706223440859682603144462906196120825350607381840349522584589332200112712848463963650007931111986743364402848227752065051154328752331245066221735147194785213560156331859494253301558300126252667292066274844627773986139019322373354770790209170832269538554074566449672833882721312708883039628868522075502521764782581777741015476812085716399734851619063380156894076448184237752963747822271828933126967663475271360230825362141713775770424796443876198249868140743357604208989709131773336165957571624093949974416872258152706643094079153334801539790218541737329164013426275474651109599988274489734770296343155558704545991203058978682463296970624315408087543941418054714214092525417180360022201283691501589619534446614605094573231264559847423858023660851726480476694387154584506730664528303265196792771311038677019965313719980997585599362159938041423992167530084639013752069276593532327237948778060574461074030558947977050217137164933016064618011631595077042766346214856032616683090847587543777135704575631785888614936746223438548982290993179978330454924049452507430338136352885085202460434774795872100909837305695723478702244315011846398020501374206961735617279873285180025249620829055955697398576696784355461229121969033933522848761528540423294975605562750594868573493844919557234849334257370477935553222823992580410383081915316483687510135635020681994933160223458082984678504723787054477009433273721747589820469957529144742907865787473047319559497577547325802054578501571062720027627192451659819720200890261619341851427789037311928776028579269526488389072309715884953869309035151855976958019272011131688965795013165818519989999579165398537212760456686565831871331054221690027942072430593624916692579389853333943303428071567026816200028505193463120144798119276236912486430936968952338372789878949666781938901254214442676550331378440645140334968071326454428667137112009702201500795487181345146040202153457083901322872211606557337592483916876253527724279386685935908034941871056584975336501370354658519552043387601851010899287296819094110887292528896438418341247361228527137508279047906548211195711976252613929936806435729367103092770080328902771097733299572858257326195939694603512586691672483184782726964255691149139927455720624987604873091468932763229271788474100049375633464961390193930541419165218682612558571008385505934145003288917338690337243183494060030489890815441863379039764087698514568054949457175570002019043244405059883350452552557660594788128038392982634457091547588110988745314895537014022166973776185738614385656467491349568706478409634298491834696251384599990215858382221909927309719650726015865154324373955124428918169180017413695347349553941613416893707512531331841158311965178934960695394157299719181793165648629821270770238614983245346261283795549322253381777477308910502505008808508730361696136322875995841445141248453947253070272804191301920765639275797920253355148394980701634029654314523203475069498356016289387926602244787520467761790653390512066810020692547301348211640765582843146522563321644553019951887919394536191522982839777785610926964304645505258507908266544727791354527992751587625177945088280911770310086638694899082706241120239787187156673920669376972006717066024987744262350958026808051814289624994160211232599900190205601479974772561872417552748569516520632248873654030909569193663788664761992613968205764815336138425690350162162159874632111199784195384183691590699337624962717780380071818122689771560167374704976495783234361835582014869671896607286741015828117268970168267020218388334371402466437126388773183141004336054337712760834730330493343550601658590141727060090033037653483911583655315704916379724729748787830342358491884390357544058441542581712622694376410852814677458988174065650526304683983998533257273069759756901637188402234467352477823838217384893030116960201159253459651767325874468155856585271843536644360533844450448576786581595434945645253454045527085175474303593050415447853928803480250926602998761315147721395215190615257306176324011374119153826210809464745479111694226422351171877761562542485403536094071896330498278357069160775907444098263505103421979399355090914077709287170555778492730463527193229427802898964811508139383366094002519014683748279293194391011017871837878936618893120840898608397460008297611494730452296137453405685904958871686478835624245327897209546733890368163318434906966065111711479776423036672058521145935862940927423333401184613992595639533846072157254382349315475150262893215760972375689236755541859246304556960103903471059704752884439338738471830372090182915891490662093490152545104905518972734777545178418561261584219890942662200446589809129745584875949610651982774879169661358513883033826668520546839112790014877792435304283665457080644416419373606135938974136028089703226232672215235668463138310638667128982743028441911639045924403243620102737869540403625695759291969413640542129591538984224231083660441594909267570215581683200813889234978821272299549454717683284065918536438721824241239637626822439886833505892474826058737291726478748719537601046058751629165914609751372578715787650619093072895397551567620379713773619944710609932917298697371070959372648396848040236619701054429069350480842581264441213071329205340168504663636082589270843222687005313354661333089622072056370402329737965286199888003323757667085449997463732741426559849047321088794226652280899815342733159047431469010904389672292744032815850295995695823130431869485213861884982859973979795568109983789350327201698110899834215703887582574790634765185914188306747287542770442510859111233039434382774457835872113189730150580693144955778316003505815667601367967737407682918559444800087472901220662118323873499496648629460333711833720106867113067772436597433555876679392470671046860881054589077371930428394854589403337041270847289220711974382298254765822500508959252092258905265050423353184323907000470247173950227708271954808357584970579626826020595473419725418660541721309557906723435906040076735154209011279784882149553127909922258183477582841183213621132099687648888687894864375343488743574296468147288932919577543337358337261735218511472750445988300053373650335707055550829335611299194819993298267827641116285207367676096713921564544395046724776160827834326313092806596455570294241947525910374144122416860776630759192488075605356370748049396082062567040692991606535998263030079859084366120259537181041172132138013418679075425233174331260951587357657481955949886285528159673872802533912704948705699858239941759307882089213232970955248635666945812199360429206362564061100322258823516836355642974600234273844416122606023274625774561233900440450335289199822936812858402118774520580465230507649891813780952922849285367151282613597596083262441071747868981459108690131025084005483632408695789062579822456094948826985863788104058957998017362288572977410947574352975535747485103377766337478035430066160892757234119881505267703767300326231834608123075834861065036031001029791211898691175441972406216089865927975482544015525771561441465345389947844036233893911619510948127822601777013915140004469187061288778584618934381236213250982134926680478809321558481074278532307688982160266516173149479726825185690980821721330218844855360438857056712202155712349314114635705305025283310412106048504766866723693182123550457507954937150375241961030100137915790174384748646414349283099639381057221098140461094217419816796750421576430483579608053841129543297363429186772713835420170630083146079470786120202713937158445784824069815471442505411536186088662141346148152798449976251348661176578376614757105712242706816413625882421218339646024261930192278464074267545508883743046935235116728601688327730098789315137756420300163624705470563320038747382965317430219116009308666909531418001066560873384406400865317994251180160800818393033355639604485808043551091028773766591881063829765086605621420950903164364389942304752303385126230651532168837326452523824854737599284056767103346715234081449566289052898676675416474007286925166258015458474290902186936001072950907951995322488692052166766692600557292365574233842350694289440785133228802269481868308955348504779631828733755945703808688963848472356973293782680756145079888352182223274098391830502343236600120316361739407893514264493637687899540877289824821760779673010967660517545885861730682047077666532129740976129393096711241310195908360538076158030310316740659668476510041581139858812549039774908963766711001249337359123438762384959745504008689497546630764454203338784646975656835227222777360404920254714538212471723834356297167978178607459931419415273984504481797657986727062140942099708031823216205182937787188406827967016167117881711687156102022140471335201280938019554587266943116115326849533868494837652990189166369813987943605465567203324066347665288343821530835295927648461180963420357098597364694490732363499790957970263862084400021789458992034049573620528705909251920840405639315311820695435136096473071656121482955983403606750619832926218178831642337316509923370389148213222421863206122198702308996698755547078344671925159863950357984575010307189141571517694510143805192522178636706775866922920533648630147593682580130118392354983570802321514547771988061480035813956355942304529572230334002228154840165125114117470489041061569304813000618848427855911338242685355237233461834889331789956386513176679516835800292437765893065806177579666380029553612001819224627954046021101189269823052030816680837815705897974867652421013702277027762971119398339536903078839383995960200794939373534386777539903723055070751101097577908363382132941544481321071067660088815590399430478237986954401860999354293894059457223281081170880198617663962359719501107832652216236448918322838967515763694167690811127546167800507808311501632343145911705368439339359377780002775258049402869828931175067476831690536482242487990470157594018039740399299337825685836890197212537754040180019275079675711257582047327544271961400508853431509636411966185520714276700907100939589733903492093847656172713977704529879517396233818967197259066312470414694015895655997466662389300685206185734658884366090211384006131776429652068148121167337708309653887208020042952762910567233819249928281173972588939222429618062192508715908706668595728679514463979100419121376392081483937326801496936509234627156170476842353332383952463740490553197975439331827166293548585655880532382206086099219945524332060872552385716322723487130628245773309450743928419381204580942548005808524392651919611977224443160988967252576958942719146667681666351308821359501722188620684093142144604036993550774139983679029479293188652048771925344734032395133327393326198663231872598341435646261968870146729388363389225219947347658182189659497626773782154025089463732887573375238807155258655992218561846245406481822848152321784142932129435872504642524758689096820459491812319720464871134584571498647795284027498175870309568859415888139954115786413634816278538912380660630823558253196717671814411226246019029682910927414634535334792850522537869112009929438184515688256074548622622129765151839436238647277890716951080151236614059224887821805784768599318675380149349607704143100667275312312390849441248227973113926908494137280810011901773853104086173869361943736330291909365745430435642799475862411255179265969601337861036773584334534580291872489026628382135260557121058399327826688718510574276192404000271131167737908090554084008659893075048696427114684754272804061398582430606657047746067211962031970333973276918162285108337181581727623797652906515552734888223519634637598287275041877165632315468705242139079228691560860492848786399551236525713117957521118750417858058632525674575852929850526096386146154595750596830063962843394257518293712604981055556288873224779805802117115786667931015477842840831173358390318100960099671787364409967160299327731591534545877271766777582256642820567728324839809923518383225701353754728771222879746527908763224965615971554613245624735268708138254922938190152126534429509604176501195484277670718807321076155239306431276491865395657423640993481358642267425057658846426109773133280460067703642569509184909905000428182043481960191576913654587526391144513651951275281685372239269909579067613867935033013072352563276103831224993716268132891013535541259927757408347376227928057959244721478940429790668219887558937786357971416872378118699616965146624262975654517268783387752780641055062149296549836956005172908233112149660944630974220990822274777713514052083137002961167130415277713415354931101033997846016693657898253364740535658919891296809456028635681796470172295913426120390526686204665013326167499370413291059423671928836391544328448907384587290028268033691831665191140326624961521835648049227255809921165817370344158172461329308249979004674315355818129165331218584448099677127331404895946293142063751135149514330986122670187774413848756655024731676977157224481347861401244316698917397006937536405540098864674248518627758390638448648834194129628877953260917463037158043115807923025814983359683287388090261893639379759534783533281320279364783989992877266158981620051140168512208352625074059160673707132776484878546254873951113268160828974706803724913338360035099631412436383240414103060286723615139616223717082467286601900097497299580470904754664995927935904334684577905653043168927333519574617602349112522804818628285467916611134337466723996230479494731938165717749763677878140744818208112927995967913302797000385517330740028131832964180157087429266783635984069727709390875789903278789713816388379973343788447784079814486504882762187932683058498053913991668960763301012116157167861011352776822581652086458784535859892566637753067806293548965962485700433355867693086681284211704160785622913129251545885492647171981806795129570938862216195301279297315809419562856362332171814859418721602263765783765748679235859320640139673325730693079906052796486134260003655442356559021608902673230927749045365862317178005786583025437933363023752375307396700616671157628939872501835094827778617993740128244469918482804676280006736309761456507373715240258097640544082954676968041057898266853819631467760270456275443050043485013943272859411288573187672916319465526767164765054218265192105370165127867440720736351747538211391116656672749228684636430525277256115512891518231099495294151272086092494717025153749072716071861698544845823649338435888120665205354282819919786066848195689812335043979584068230989789111185401071360354762739896499783483258919778343064451152853980459002170942836693525981784543586702261837986403736558916376608667195801137014269367087950516557858244536281878861179214866815318007033089951277225462040379388017487034964236519103281284995501506238030893171311439569379866560278418453341043231532152544555904069620890254005853255071940268070820435563714522113091171118125182134263334700083499431436731757248448082165257054580074084321801303545052880074175210780604644416057316043877013926234445122471152704729440248429463503873941579464031100410903338907000751347374732844151051639319353528455403138344128124706532578941932622150752552469006843883457000783604562625361252057504735278263508990997346541081153978993882005147458843478596091384337547847419867944456533841086333329443383281371557678737090631758272062825813598923541246607501067967062236838709552988747382043167204502311917527297597670321172064699946378030308456910964721287603348198561011374472303024178375263795821089191226429976904517630037775546195455445419978590424010971110321453711276907932606714854356052314409263022599130901931912534777819034265177590684805376622580724996686986703172490556664726729296253023486656194647447448834142087236277285422979307729543425639384654864534968590400486853804457345586181395482203675928866114973093339105769580890541511206302015650721786560049802039486238431145334427465171080927517077076248844437119116744616694451872184107960587464684085892147990564336635308564555123348839401455357714603206347812790822963724229897514256696754420529881001410963899519316620220723352080246803568612038501264702563396525241763585853672241697856143367261884884648578071147248921125421495532306738171637122758033213957123430892560781816420420608412508998251605322255133472874188919469277362910492551040511085600638488016047752515581078141428483192960579969321534404311696083070916742297616730803301735006542960082127360360041404467422289703503352328470274792505108493188336767422017036046032385142127829344557664846001093847574919302668256623546601194575322227434935573862341715916146820117905387780371358708895383101629515644143525221130514074855707312283247670453261138345153265582156261989789785118198063499322364986048413321898410256574495146214802905731231142193454959742924121036446594235071803094933136348700058137172614111010161021129866830778198083898466664002493258779842891462753561626560054774387740964570003393205734944870222186633095132509078624625347200165619619793647871884605181108450963345953077588075292646831043048050863224114165218204351420589552344190050269053569543432162686889361305899755894740331307371419384296790809372922843605379751752414390466313075616363450229424528354891136593640045473245026193062625221814399055356310045145610196952837250731445989750749285942843964721998719590436853252309053967700860612859956316523287786996093568339748735908347106272109063033133628546440677040881502992328511209736288237430746322171641603808006880733442496048286996675383305901934254068424036955952064824832079335083295055473386053856338082524044344163535407362385923472860247028317129520702634625475637045887430201617474826028259189195958745167955688251237320629619825071130230263029467274503581407948968281851175087620581463065308513241636104146923948589414584844830111911320519362358886421305947612217547616975802650992492570061949200137397008029131143929496571633512050893966764795111086307081552048249608213277158058551311587876609104702763693812130892099121982645572917622348707804026093867757249157579564186920843375372204387487617474421329538590784367887689786415164081224551596954056102174259296974761267555372906690150924366855213039188596627797565820503345074980747819651463658175573888919922299349708467782311193611844895808155890696886750481245025011354641658619585347051987944297539628161554153695846714076787255168858250486788882922544245407702204013471664904277149942721874253054576514348597062719270283310971951007379161928185222775801257615831591316563061994136806524418466910799701105818408833797539533459233605265201122640668038402610685353493813434809109490667674431152162257154660350454413214983214009919730847442587661167974659891754255434950716860832767217385367413492955933951753322001779855875304431012460999620778456426821925936000224415189961461163368919459952245265172364313675054908444564039924325795860035637375260571154795334563068107194515952725651698480048938978419447746020553259636752400306551120547495121593340706709565220532043179045488934805427743323389843815724624561764053979376029099304767379040557420510973451847274721515360787518224772238140429365258721754191919286096959600590616908176459503269750856845350458472483569157174821625244679101058228614660545921173553060781800259999115340484389603623778220735250588838270025071665358744927511288476263941931381198910437885864993673180803447456125166322960108087099060782611366664404558493197820704799980631292232078772911792860299991150055060891302715001949305212913462242379120376113618674770678982952940656820577314070847930571299831775513512016633174661422235095373324739026944061827328287301855973260325410537564969326279807425010997017017916221075648847543403064969322079053499145217106322533852805297640274609426204913234268663338912797398263108063230877998034867637379918067478737413808631544634347736435195057895106025477841816205443334017446686204487887180454319280184888764963705321433390823878991235098794475056944175447218101273297071924739354809018301382303430612648457216810068347405652972482239272643124599212129845063023500787217828428228097810585219890512190309937325776235827370755300895777992766435407797561987042503788688641727907564991914478054473872670782069183569163141092006766089282529897479423658786608706444770405259009007468327062623139558668701692716314812073446589745138497500347383450098631998897836734820038628742393905446053250194052035323470830942409032299756642033339544675116175892699802962608421067151532421127883694445297468277599749189102877440400230655222023033336384353690757660335790278498709403240962597796288513583807487728842481468821778622571105984963472474831968064616554602004041803260804627289949922264394219946228278125194751051634404957063098061224533126370331014556177674708569722206510546475610742732632281688697838908612824387659482449778732748863738776287243468492223219104977679193033711647478474306282950944211313947033548674646287533504834765746804000672184643081193707015919818256511784904809612365730439491171356059759642732392039794926631662416390800997402621454984257897303125047593095739652319609726573251828636174066757988134280838999421332006488965407767171589721456452144279315387591196515542239691028335435414428306443690831215265145373297646707389060921098309162424448627464686275563883975571565540863621300536321993672178044197635581821816411865705112760170236264759117893507256203658986447025413752043935679144042616685083348977885525593787448505298497991454068175198793689259432775085256033367234625618807939596724363045620660262772047998709508167083150256757166261712510437653641569536635226913597781298857741899452528101076330191156251612349960008423505340004108182606910580443812114112442296312604826183468152832548029503620815122440811270632249612211535521101459947809560112233575437545623455320090938760002245143168211488578509184086306280858218332090836442359272084806100689928105471321373578005754596433670349419875241427329657750114542686311020766514405427316351119405605649461395741304516514576736816414204326564500928608363295888893021061270614296863909522026550532402738080129810784999340786147054533036885840718755745678395643290022024210065403156934098510762099227592982512927701864041969420041086851337396712977214369232231687210395729883861159984375605093918249106649939390019239701739715182774059411901683632832937675095630727485169366060377723246964993074643478666689116045415976621327783295840135701465502447571730818393524220333243708363250698352291450556053904868342401917634888528061723511187711296521555392460891327573672614934674719193536629970265474365027491798783056822670018335980956444078188161769138747861441435789274895272594002600640846735826209215459506539864836052754325181135318753807324776919393302466711705854639672189063864228388854644358688505245972687387595492812509862214713629723521363443109569216255093580644781866628878092349464547087903844034156127750418420989310232268058357834334746756198069272153240495672618030543445321710143396928459173943190991104565631081510305173618776904261878381366802898673321982169073276220665458958060055380504108219843521027674323104235504540090703225106730765193414212144283836380859885729241696457561869908487114857074246104021604041898781408680554334897949235610793583274707818687106451471470456593800426714659071719348785649303606967934724923348533225280951093538612127375045442486592482004741157344713533134943547706460539539205482791916950853181151635500028496877693774124258388915763417707594218651938353093694442260583281117647416667477208690453495160061406910512073984971153525421721615517708745405774983246502256288644017453046318858514444089420888093343637902452850077390243747614137377947895088397567747782312097684837125103355453314894611894311882739283986479186798973551792085749822266983368670586199392342541143028697771994166771782377035186206577312205831826003381070352836858372923598779998770397994946671067385981855415999248178657876539780774761545651070823426538673852398440590936860275499305627648866019127343843118608340037522509764924138224865560057597364231071107614453471065315646768224703458431836355161310197241666850927308494229381321084708424336911810100672914001018002561212427815234256795425878504175042096876028001002990459832927675038944338523562391246690576766242413936541380358203526307642793656676860399717212738590709969414159032772651726699089312824268517187518530417202563812499512818504632278671831526563177865952523523527624473660624375075657110395402466523476056011078096941365286698228462858546727838400113736570937423208259499637270937999048180749271814205862849220073060377306492972016983416447655300209045104368046940533737258374401327685150718406188135513134588520778008872644935885485097620356333021943138207938151776746093116130088396993977201798914263746097289327730010588557647991924619090686828799539946717169318725238405945123855181346186088483883083501012643640779774383899327905996089846551348303000057549613826483973357143067885206789712790856727049935930968710100605587790838156865790115253579749816366285783384448737981845261838026181259218930417943000364638986533815720532573871308301478302954832106966840424164112601694411576727459784683941964182811256117217186517320812222318065134190730713263400471260694074008023031674664410144498398095917035541408604266856407354921013122362381425400252039931439059912119088144626127529013569015061499690364960959576771790902544082962401374079148368110532236385010952051444621538240637316827639322241609411410172492128737095703699572042135900618977338504149887666962240444255945660891604467954759938377547200965059543094754859496447881866688559945243667260946449558904946847341184005419609092635483910926681668123447126579629598277860985302858317748071714590732677070360781946170246763227380806772666262506335330319661091633446626846173133008590733979216722382361018523833961368699654205337182173861358056880660556884966324927355239135598839690885422575649466811323253509630540407722374398881934513560449476449968600692326553737557288855934852378535734986272001655456074680777218513131389405118606901290654349897051449401261833972193535696797337599097982569274592577271647248837012647792763922120586109263429953640619383839705514139700037944253021302657622131180004319982772902198845077509922679556752945415911877058990805251179874251735865249914566735733745759519586755728944439420851093955761748801277430090729172208555486793702591341193419138694787291660013700986388573408582943740337592822051382610400093679465487822976523744983008599795907590497427523365507143450270271672881514320869007365676577044264137264485344217643769384739446553461789285816844711327186184566623170563771836685481394762520474856578629941174087580153860930624040302670680286430339035302901137409331624335395266435742204985725278263955010570979981880599651076906869283123776043029520358457217668879012459150779501136072890055808379358521316643941273880647266153593460494248064884081783035825594177939828694841788229538278902179859308689488636272736893593937711005499455474347340971814396196343545603709353835850833012298044666666086800455540829533586400564816758857079981074155930871289813399133611696882235190989379139122176668911682714396830420407096890601853488547169087627830456224939710898207851114907159588679759009086662578923127554466781657959305945614280762469575880721117164034957583254290923583054535811128556217567568598985342192488288439072254903988513310665609395946293218274781207420415339421270128531340667030975254218349076706566404612023570910875106038659722068642954312893810824392457925969836929809599746418709529497311247479446670652436549757816601939819696208621608468066041673139034759664644481638211655508535169214060394311123344223138251149747338454934005682890241961979222918195559549616155969557934683994854066543532664372609207706050786644245871631729063587657422383670038081862631485847421175620245874688174897380397209359412273593015774149796982379958331957758729699311019190637396652784721411007464426130743891553705056351206298906156842441623380038709771398087952237931693016668054527472442730162871688252969129571302287877872009518997626097685828576481033785808642671840803080824434751875627433120622193074951479081954656401960077242779059986930953547312325731138005236903479642482804384472784822774132179322255040759209379099658347918000928929365644126328392881721334775216827060864228070338338732793154209940706292808480394400582126652119665615716719108274862612720824887262608417982693354516407303899398635243590633794295296299453654248604637133090735219107247985478924748573567652806109838395478947149557073940304615904308937411869403730826048982645120761952654904318125589829049095541992496704856569399838361940068312466012546770150799312905267740760942226947206309158492861117807145595109490993838087292620091719192811800845193069396673304818906172677108716696699003657929207227996802366499227344929721659225687309709233824609864898074563475636564150949638128623079176492235256982162969425225951971882269822134194611197583245597744877413714395093922213294205342353921143529481758558683610087614168053303192791248640145760530031300569466381267833457332555320525464392271583955131248891094130188826241768077872119232493109687243249998609933062049935243241290242762745518482560569580178864037563765909425864338402816974819420169970771245721025500698994174274637942892480980876346178423768509308619995825590715425456103336505289780198018514080370367646978077604950016264674710575908962740390313519372737381124652788988982198981385476811633573635097151752007978057046735034001127053309938097403184228228696384703129194200661581541606704704186246514639044926767047836501100449975405843111549326608509830914255793408276517610338463292994341962706123616097326260334959523534060264262703453072188466971680234420861532378808953379382440053222923173049626378940955915459574413983662333301343031533508722511583306692864227911301529256163285091962855150128846920712935769450746564439825342419454281828309859302260494302526743617418711011594931300855163376039220802196590932187488266074671903172292375615005087670363018441881641909185139571858737340914470129672490226121952981379745109011775473057941399847486552425780812519080964882355859138952944498216441816646865582660534425487373066720190648166996244654436405950943371568942344601682513308673825925300241249520166677092931102435815395442069814477372608142960750252325799922036408904532906183338933948528727100201150309195554975258224569101454478616457718678263219888055672491902657380624444195398845660813246503051093357260481549004453147622167132316696641670621466073898624407744660560133059141903609215771681581411608367800973979537263699105397537290358283516264494391952820823596026243916596723001835185100565947845777434974071143011511760501281016348576069252181212997784445918627072020923905437179272717941534756548047733987308992401426332254699321605273877588805676850433763367770454169386658026666383490543585569004428229120913406687101766401172358523796044865907343101525023651683536548575910601453251870300348294274030694405320027188995311787038720959547616278282900724750074000608324855643803663819883494785819488714484757696832606264846369396857302081927163016185037667415745525048865003420138664800091667735177829172305560927031846691099232739724932700811248599561274686628128088239862180482281580543292325918311126853308118390704288421479453068664321501624097335465583810461278918360497690119203979354439859145814062184410060798160055213516497790252413339092112165975672960637457730211306597487877725618589578632073880717789232636533604572938110088504650492648273358409088643609472075677103097057597752339555378274351205086921027513397821752063530642684506943574452998895134241263356406853737288299985659373878083893558593969134128278578937088789861545250809319064496950988632087811525343738848156567370653224111622948005132290321194128650303208821001543977751672386571384225458609269536408644893349136188829540251757595689052077179043056563170123129876819850039890236514704722805811972126516826631673024031588353473624224547194216692244789392566589890096032167139984373794753550999153805579174633440295670143852283389925680687715818944093853302707899070062687065724360553173418593438160674291899189312758889886421575486102213053080470767058812382017422677650625331775765848214727276277323055896896236964621845780238823198673419222324505660413706541410365110946200098638530468698240802515873964620308176230169415144132758955781896009282362576378270383731872152213882966956962518394221820434759711388825140333151886771177227367726103382149024479636088285570840516991897902612001206541968275198536455491111186146824960606138909187074515210434189526657871872895999640192525746160655859304377335774458684854717614500867275230758609761782243542452853918774623682026329159178503235013654382385505216182528354502353086796848053143424133242190108500733842814112788677228816313639653126042931547605558807592648895085636405698394744162507187510468918813611844803596027081572606434237050944558575541392173146825703909295793372871863739997700540945312108188300434801729286490727565264192322321909843422868130567991924872524243644121228080215960776759625569407476984219086777794594175331087890330924186312919699911659964965554329057940131403473831081026002898387454326372712983376333451758320599776864797120049539217761375695274739430726692938872583308507889687440811314315266551354631206238393150258741800317749896016391878125380969451502313676549327737409192966395896458635475170801877803533029821749572160161605830816872421647387105865977311538568534624447488028311534425991351857060496257659814020748873393718019757251009476224679473357725281162883510585099601299404778547965878583903569121507523272449817506838446280031730021702624732669732221375278423442089087879397020754102722136521662391053582328810031951064250385474998418298469231461022883724556443529138933569958750969678462635785377262550078988345206228742466307918473958864673026795735575243387863085727185349678315601641993264667360937291843479586173852001840126048832047063415421607315139411926902674918485928552287127969639080593052131304301213380187255486941686341783802833511350425345783689291092890443329079743160925069719448930980681861035276054839691690410588802325299212198232520547117973017281719227405396845871428983246370650996109188282186449672984063998556065377427707436721569410771962350143155840120450468352457405124104600374812039893637950064241296673898893586020434972120395397222616492163929570018716628864030530296762182351242184492885456318858902883613396277525981364414934197021515583347082452318377575505190098538198330702972517910319466230647478990528463658850938428688466333088503988967623967988944102049410530085860209259911854764786022872646437527108821209660507715990497745725264379125821582443385977362584350567196197482536768239178250921124393430964160820817048722911065698976800778684289808355636338082392877374590275052302256199707796913456250133505520610142109562240299267360554157525263871954646719991310713305638987321982345303042287719670762133768637594377024152713921965028164342053888090115365852032859210951576840701351534410346590070597365043713283863898842171380950130040970634632577335494921455556788153793206087812681064903221828016870345950439721249782891625936004426870392855251253860003952094332610482241020644610347462900366100547484469185991272310812445526954457346296690508673737929375940438590356204703338917891686462701453425133064032205663392428804807968184167825687568990212694149607369391991069512580429769993300132853093760490743007363123052555861083479856120793708714118831607368558795756964680092264459642227726108477483840885504656953968410219539996451143469334917902102193152077752585938816001275545029850348108753955067997438744715829200512400525271828206472552290914222431170534889342708424895344383804805383543746264987437032931496647418361674886799665909254138213159910499999150334062051988801185763878598418970949829502791541867367196481405581584144590690199052486527040500615985553878782064431111964072819807764354670655415078592789307769358795770734024033927839373220470658777862790089871471454089394424556380155325645288429970168404645212125923269007797356363249346376259224347877957130467785118050119940491931622246070043714092352314050944147202593418981476955959596583335924907612364280481184268719089854348698137385697820368985487374542016774662839501258353338844021977680967166500666036297872961469269735093206007204315972002152288875299838188657923446477174403273978832447415125699277721678067779462873337695405261093213572573917997762796975628523294392667330275442867894824707090317842680846011976248985860179731903690612434586541637849539602054523635459663953177035114326396737064871924251547312722102459754085350738834596500555744242262865725914246355908181428899118928235417085178645257394253634634869357300068016143933404097199382745222366603297152350112482933168736249244352092154188299984103741337925864216051726508971855879584165859953043311937410984075156985104235984340530034885385051882467737400003096753111303529155573009685185950899695527919807635821767776987958793685507504221367790424258484190162425069933481309823146555380452426974508490928132974065525721121218894175411943101417927231553914926247068426687493952587512151944852539925910771445833005240351165145224225714524048629291395509476600226947218764646393089479736911701008979489878544602427624958194614434696213325478292725770617841650179326957538727100701747328076213810681102644463768298292967418695273900147604606997634706174200467209963685943762341678027813245631249847303892485274295332903252237917973694278647529360672212023014504380421248202392980743964577200811258178988190689600376784683429549484428403838694204383503462116167868982504515632413133779472833774243152366834037550738380392211028032203485835790958779631225652770879071864330747238661150317809645664036451572582367493635781895403298494260319756581989917454536588069051442325385421551992940598578010150887185571986761341489734214016758502901457169025402954336524598445466097444503169257677585230610834569724158063954059762382064231041940648365424939323755939304984452662165028990812435280273545819142195933276823243416294816940864442273395400116353219556704515498132802847522722439577582582428133593004706335573637394057284651804729331250914749321774794761541561904944437420000596143719975168230696643064348576741143246270621824136155251322961486920608097599870928614562152195568732566066379483658215772952523382978453135435405797948697433048311125468054994850494517166486902560405386667282327828156884361383195168035628390694773259003209540659265358108097342206883871256542362295355815131448757788459902738953437927478818300932529362257648254654448007231191124672842087875839433183778788545384334967162018160196958274225704342115977864913036481429968090269194804963675702936615827044981512186546942214375718402659250219065540659409063125203935102240076567703818565398407124181097261851205544032426196223561875681447898736029621821461704491669226105834111900472589284274616256894825208904509818399672029863260971269038602756517870105999271849431713863138270155805016431116696438080921648665319806736157581387309645312752453060846496655988943262225303053425407374418355416944907407202843468589195399552577682381400888937557756324863939922896280609738998913209303910488179330570214456231437493498555727816880925068169236974258817814009049105946649249891139011415824473252042858958186895220515897014334231629090225521328588129556347768345118162768584350093509964056764577605048198235902836982992426157124156443856955424226809754601159009691113803627803142199823999420796519526157946133731302172288930660014400618441794373708672324507816083824143440418668156071130264641652424840192615051802583213852197586472235750207975744170407260242989564533762751047078882126015063605610552203484272844873621736800839818707027481938018581227276180664539737984195865367059836850739231259511374362908839968657132233761097135063555042955103835649823241080394760440882943150374872128682012558552869740870153660985194009779694636508643402039890721800842457227512415704483556892643440955613996276610805244017019235575807812872250713620484408312236875947025842222719126235306375930965726666160553265618810585148899426545159655450826858076201156387619416195722318449640510596992790441878890408416542507044489434176611597876956030488924935149253936545665704230633871502480181199932656533284215453010989927261961880136550563726194132689489612277411740220852697959174579540350410239893696281477208538798953179028429994704723273658578705546309013195066291041762709749490881329916178876972529535757232733821321867878587880016717887212748914603100666384279304828985709392622392368152189625400714889138143985333023313324949476502739006055919908972579889575698103026413973407794340828431991888386204324691756938766191548149170464103081719498759912008810940369438421163390128795889150725900932018524941974177969932695148303545998820819343513119966695408409338019188020936374611531783145236712688556482526548819977517839139852073246026911092398662817859707522305925725442474072305483449954641807391297744536684906993120260384243642176537006302164534171316372761993859632193133773098264123325055040810952711649470191444404852646381027445104668863849408852530846436385345830467878655659477602226608752038226212918066759707026924086697244652094466061231855537490866143781415859836893899279450316760425068156677122289161214748344433571081129067071647222918725264027593622251319515893796176873262191440641223683952481319932283106727799833110991429313744730398191023649607420950032576136326894686020127711260881762001760525726606242425964099491596856687676894958338882975761152776494085403942056809367280176473271770420648274145892002325069809202141628013783877287075237689619730583184671769255970296223982048888307226527240155999892570674893552701504784428029685877115879647664177989529689004851310826865122614460889663213283893699022451125368850099505814934134977389402754422588562712927146101408754625712340149247057283631617456957573776138249947241341893148769288599860456639759286876885402038984158952430100937601425632891466805203568930037820402129714545121239544422984366516342985288182192080395157239208845952163248757910066231664667106920813133936732080333351855486146074826320362139561111313377036895354614644647867230724122035918229290286135293724869040111951904158261170273319890320030035610048413250221150087042238320091156995001449441232095042852867931847337334853876045721587295845833605101587263505408861539516579301525478578148682020216574112928218093665012361281312906708960760039807307376237267884473492727932088017266056773905307147831763631355516561646675440748144247464063923680054518675328886782224734801389520846928012870280929342132148238359966742874729951095463713735733108648234677983883785047501135819978472357522515623310812640028686998902027894593144813966398428895577602647190100529053043750827638584097430752883739978665764476832277689820053224623200427078447696921361907189596294557904210661402513158930669823336351707837226238538981899244310447858028604943281638358647386638935542073073480375890447145319135794688482401737061218792756780045936464297214547187082819109723149953406701961930147087543550511946095024175668712677629848389313297559813747596214036667038715561432264025810325125292153340239504270258755253231971643389417350466047087868037484467496590938062400626984314988156162390807320268217017276965153009001281686823230795918657874167289536500681834749454501759081434894054973571230762752003890197457548287550405731721950453083600340842350447955722262208713298065643688081531037240592538166293624586614098655074694398864375072093143025954400711489415453385414997928689589296736094432749571383383400156585710249462800426565506140752535873779507948123275412905010204507215871502687907414352116565662573672843158115007791414083202839285924183310775773836719639016719464033995274728781690532123325116337065431841569014438522915806595490917574594056956573353522137218842429237243166599939210142044909670452243623194699308407425051304478741258800401633428359564054750027468326071030896618042812102540436685720225842489666594063834810261086561924442363538394265170761038555688974995393488060206340093255838142593676418899023857462898108344731238396604203085233044153847293987929912670890925816131219070533407967198247323738385766432005834051293382147637230461513465877482867423071685313094219549652179791193695359951854649683232246713955728703838264278384760002343553528306943193852501947903181231928636663732128339231010072962670368768661202542493446578776172913935190988196718469859868312025174807486721707960877353060022090001721426294983645490087247394717139926672444794822697379223524560896079922461005595985033564478098889824910963298471458172345121758322764505291924810317884108867324990976494329593473663936964702627734677422637118526300877731417484337578454937027722463524949771417872798019235968510108887809478848669282101614024618381755195492414502774768754143947135509147801441871288224719252520464299284213180312038482038883177251188785257583912992446697310960499965886206201080600841285784853219780016183902371404954530690930775277221329289351745063856858851046080533637327263545088185263311849530720001727941863227487581771232863111034530177128800560808993586921480342698249010478512104757047530827233234110827815681092752476713782354174341633584233679702583182421287091232743160152534280812600739268527607396044835378771596954718803987540513791619059359117785009070962930366199405387886620257749520086083167455331090775965440918390510409705704528635152425818402815019004652343520032999746990238358522648554043044334700187308746904001400661537026768529319033731905203844918384082005692425619785025040408909215014193212673041742760995247314445897051532811966809708270387100752600284398594373075626885112447835243046871083579804584542843338416321415933218112237687079034760608842540911337026513668810264192026855305193201165152471731637832408013172612226496079441486537183422635444271844905998583593760451677476873211454589658074080660878918807223282864355186201756986104124669261271445666961061782247554076116462094883487155934290549809693820937534052516773853742996870214257482697598244909590844324445508258962455782891970972333687991204419777679392053011674890278830820028759801566055713943733260793873637674363075113758238435337745170679638400765031261987471012856957487327479172165067509500582484849564516124643795932230512863408196052888705954574003403948537990112689088882612909088707422728338810203104369432843033288391462754063560273290028745638045422722061880695828605347134469367821270028755505630976524278286929292406631245618666114303657429863606119486666131390137316761746029588062785894892197733437295345943388950600281484982572400025957348834026469171131366727494135917018916963203350998694830475893778723054741196362859581396390582800397174037197793779296698783213972631674160911116112991682292300648084861862240990895931388345705258115977628218824964914596121561275841843495261146996575191991086764195520960348105381390842102448155646783744222528047976787879247566356770958558645475781025820004815893770419122033996439615343452275600803300661728034713789086065836229388449954695892789573862607784592428617114668719296902348443130679800243648904235529441078616837749414635171192453309535091662651717928423431688550104196976072028662768712127271844765960534959958755327164503652770014153690094647641770810260985671892328728124843572953602035208381656203277285995274086299313710958212226485814312547760537129111503777319332628557409961212631230643586578020881066711895840322527237814844293601822712490318119240892067386781997260346027204951515504138146990436455123666975915215170199169973970850110959769649725807792021736637331195347676723354648407846885903491362114138005814002728392746952543167174751361430420318072204416902120112198098189287731435690858738398142278089354125451085292183572991944846913200393600911524649710639457706374446800037069577152496518459050739287914075385764310860043219992362620968255491422240438830899334591992955618736144943678721735742622586937188777934663678055207813783132698233308022288037980526511587338188701325300308447495807974073557683739929336388884824494133783307047579626841666046374447399421657328920697099562101152278041088041897228096823101856437605105309803531564035811922135692691708473759918719760089449086144590347438303390284280017384964334939231062837092047513835916984895568587276017452069896296814616566980880031532613634052823012225666445274650785234600957934358157672612260723199583783342758231575339561367979475141231438280403400982443869529777705575312261408978491846250639758012667755235447159157871937947603178703971755668322110458549141888942014769142076464675994930796568204895111213754478011195474503558177860735443935710874036172445773548640388269417506801199302607312467601903283536683917393103896035056406567919388457963013610974797488876333285172800513767366061132732786332177634846652008121043249532126841517840235994267116151916721932014963311690438193684084917762992702602664279966422935765488642687764288403719010086797127183580248718081131947915082263390011623566634429846389596173190049681471661926182490470717188115638201846928234366082796395304617621674017343421411319949385056475364736541695649062371757271321495088944379053936707652317165169924751899942242203674806326123188031685365522185314669611976132039890917826953926387468431906045787607454098220914768302471444580240836602782332216250493346393023561426654512468303129745364288394901191810882417078975580420999511227888383154821395611944220069186513130408117485570883632580657210443369547182085110878922168769269191501614441569426044170180244418605674662598890437474487863316810593855015124284922183441266460755407251891237505155500424146278579152673914287114129622657495494689395681847344714597747216828251012985715665764737710058839439017167114163524765336928581197631810855844331696650039503517381137219391905153659505065772809442400552444950329310474849444028625586705814467441215973464305907930130605230820772284192784296480730959462982280931836877674458745642128841205241940147588787289981274690004757302209492625774433133503221506631410676330277688557907788944299673099955575469656146817130005002577375524017041641119448883206097808923465029309030238180089619485199451030529603536621864059000759333655952162088991626939604147563972618583527614986339989259822020423863619160555422061282999678597612596512688878283717116964543551910626440704426887270197862831031175049532843747010333024312499274692849676991584750509653050786616991474961353272130966241471482103284533232717320935322018854560660132386638184385134597273929902398628569146864737110108175866710322734282745226110701874832254961886724925637290102980786944393569288564091414416680534560504244669947007478989294222188835563278819790673589571142941220199384321283446749859415108168701599699372941717244472234562248981451931279171025403365611230996509136067637413987054632809766895755938676678642983927760045088268867539539515766298778380675932677779240022073875087823180945027415055787893367416854703046294759106735490485096888508422273464612108007954069660395726081811208139261205929237722120962802078709732253855534277980131618424476534913863545248266727102894109922259763429616196329305719977765585752794169835038825971799777884673486895010500219613004490576952648491025140106748301011495331090458012813387340411431856298887805326858477506410900126384512350298396578488128372934759390260188450829734036497774626456632331651229613382642097217170275341635694902245482239741517986447685996947870097147372618392433990510401564618137830312775848237566354891268886433853095200367051934219577951156238506622538020990014759633061821190506442212477084489528718649004057286436424760280564479033632371737993785696257735275592574524663877674694886973564473999933932402583560381504433457713118463057985402301234571069157310590509117516761674869065417363341627102819592440697082584463339378221022534690344164288308786992175734531110463115771868390888164289924619975818678264530218360588317437102303215101246584248740675085160704566503847298728264249881893168157030541478989718142450630703466788993475027284773772808492061518771931012659169688354936924962584774247262440807967731838140005523648648861860908186079498324463975097643942591351737269062360544687666794837135864508968604587712034614588237161431118176412963780320866394309089311451734836051009834363053877613352459791138807418966995507157605577412695551822140118320302108839259205979949392422518023717624057768404623891306131684839851649649691512568585611475172659226100281200614423497888276660966136571998613831302423435178626446376423393638125351707394777505733581176523900903903198789449241312065111783207776622145603851666865920632727757280533844873162977955534277853506202651472578618364969376869888376616224222632437050933178999308260720899303428470210037732900795103678180100069949957310868888937161131859186277976213279322282681430544746305819749195552688453639365179643406653950434240147506195222536525714191139576309139197185031400567483492185541384018302167275445831440065220495288922044712463414581757608758207690670385325921623366656650544942101857356368485001666971871571096827841396176342696712705738429250104544339796289311541928888634979429755330021731180539192161502835568685894053007192364169757326698139207634697037537681166737662245014314995144707049518186693917129077576940752623409479984238043001176413017024083920316409328949322895390248077657731023096906394494522333794701013132930103010094270128064188491513806972989950905212623024178524709365533254542410915846624150618053487964283663166054734919777779363836652886531810176649351667781817813445756283261824187530567180306581662818092518028201423008355068986648612599020483500510011141335935275977682396554739700830875487013650287179971347821111114850014677297946383803910479710884589745859073268861899666226186943087804935526838939324396154454740895487074261821311413751053006148872453217907144943392747415192609929453978059004501983331325977326422854995543443885580380832219018422194110627945201800874889093417399330222128832543073415285561297939926008985997861633876415518126344948275137645156799631054327824480982611475973015058973037765712919178475407690537767844611638258582683845582395195573754140609759841344939871610011252143090529209839009131895112461554753398870804370765547505057974206251830843938366110038072306310789257996745038254448908992023425577602445788318406387488263350224012290088281048144131302620603502762789494666206381947409123344088318477675812087604228062856677520896816807149161396950881569516711355989558029885066397951856174039707305345050146574164085775416487193761547361904365705712824655063191425450517496339080378664903674126001008847620508781499085909637779486911875604571419226331122813957895879410960021021382109626685107270539797259099708965003026081671206814783523860810886356555885063583507892716532341603347048826036295110145512180757613068036456488345407884013687616227142378886690753743239911813827078393215413783041055110094275388169062297222442973081959133162288371417375508471290754176248771591778971898262243540096759958721884164391602346351433357868418649305950205546478763478297817777107454430601546981849998913626806250334648575493423760226219011139839426590936681156927161849802673144361941807470470488719988815529798831081951879629165647046265433034412805198531735650085019406251061801917442833621122879487520251435958189610643381287641630133135738813446682577425961397969329486121926738097260530460201958124416055224166125499998957547456820744964326214259361398266361816865057383659126608322670775779666950889122925849888554081670300174151940385933635783730080433014055209127195196955819453259753360815303947717062893091344455272033973141413129957483985783631926990828447044932353589124702613767259394009543370994368254453372866811289784011952211117075977450674131562824389634250777910916201703647623595627233115697032777820561897098189620023641896763638134139340616368969583936599782674819752472448757546376646109353642513977835126122607362503208856731063546484575778239321237004516030366061978668766320514806438527498500507226972556743035665755117541647363994345544703497634929156538403017025631155693228073082041454251663332209242016911189053164547767107803125407639169046356170502826905310602401693167260854493512325496621198297268708230581509308230567292867112721315151531189875036479500930179002541620030485613837591124529408875583277562066810093376312659452619423390500338196171119660301704320140973273461746719403415186148888820220223081833933924223817239607686147051841519455870212509345930012220078534750789391953962600370276028007163765108010557172244911296624197558011643206918630316268494019367052129924089579688583654905766199423179189558176036610159378397268181926819685460942053756904209550867400560549709890428948676910221465310023974475719711004878430747969591093251174634056375826901661914515697578488968336412096940996474134569832590948976615705270451744509297801900172014974902988413267863832805915330685685764768591946986213010480610089516521939459419801279776361815009244310013987022006805955382941078416695549599239227181622670297263683642037457836259867614911433657478143660598829931631212382666993500911973708826831569035029100936063791510086279293798428374885204783869685382789253267334602314082311817724494412919654567581025461101300422958694513517580067382678224980031004724799409164091768337956893382220172472721490412439875512579509248250770033818035782453831407076019613392220743787736104351470452383676099925296267004442635666665855668294151421345265718434834125991167516432838209050568246603988018057375298159049268253300347916170586001031587699130178777064075567494401968761949680665439969905517356662035002946424399310425151851107446879500750946188165492605641967333437406528087858726812333854532339646958390524064467605867072959107956351218208440069390964695112377452720291879794628294189905654012476706467360709613125565204323069438816408548523719079490633580108529839188406000124147508347258043568329932555782780424844862718130160831526195969587388584074617543119419587384618713889242161874092895470996134990436253402823420394659454125434219231814523949480955576912056354542601527917199804317584322475401049318734971862766038557414957976723152203960541211559821962672657710928504625864778437267178598871632963114996783590382410456955580733777636659361344095389283724065200725418784962858129979984796308787665296843178331659010846874025929612188586762825140343667160165186042070722072370161265775302455942259488579103836860086700986075164857609825024661418775068291738505981951220628310357644792204468832437299400681790918688061011763754518052459357146677986192716177658369260080410198890334116309409831315359389266447854193709127699641101992709798012956840763847655865713901995191557309486238057703679299156994792830405091967330505380292644051058194919438992909857650679256251014846214662016298291589250992062181532300009913019707139052621292778108835470373725747935822301776782668874705086957079700159147596288235116465648487142703457999213824508528564458977307663239510522365892119616720442418270443962067014202010194680637170562895790472829003821032953402195695192412553462332509352664413330681085922402027006349473131513881563286662280927848097599292877390524780521580519063997653494704183696435924503159468270046477533052207387798495819514173552489809782437107618077420052298367901358276714649873896405115818025306837159586608945404219160186731880726982097131616955073857471535169949544549967773058571006198015306449478168458836462237190814698467501704245854270594993684517913052114244685023363424237456699598820777179373602543169081437518273376242939427028538000899705508373568782948937843841337031558364750588983642514222601077464674333487369267130986964142037477647534336333613892774382926910944322230451744191048356761135088137800668519829583050895560447345027234483597795965458202284340256583970512477267979932185585516961564477065867708589850399269377552835007393526947189677216940822781503624776509738608415175651156504776343833789365605075589541452064788944387704725336108894092463067998362843106472908271029395781891320292254368363155164266217862908439670179221568757385954473039700139619278616493415203472079146283096030247938444380369759839710495757778567887124498413165249801385271300938477127276416660876562124025012763012469107727216441067790843018492248188845408058136166157926500568252940215992493221889411459353146379570765938636008885101751954605651324427315981564748508820003495645347997741843044852483407034453966103828244145707732873629938564440868104318702048945473203609037562429235805853281453431673025762830620704332522020244449655322256045006687827188883819558692562552124240679934921011351951955353448569978254392373331278004965866294292916249039443876676369543749137644507997002119536569878334579540492856145640261253811750887833928115085057223258228703958002318906469664323885296474053249220698814903119691685789535567796117456513966190449890643461201477715187579252616074650242024009173480644507151482013500210405232661468963673904862915061643754528858388748367201084138917526409065501361313964652572824779627539342875414444846457510500403714782496787170167121917298280741344326892409486184893599015064276851033682720381541972312686461584142875517724200776589634175108842507202176212370810564901983160610614758649190432374600165981373952321927679506592537654285821576885436158371180549207525764987076049340184009414525450744358768512459840294413977434924187855694008129909680119573863159469709453985005482278925699890974661919575306533258049952066770699713044582992289121742492944381218280881470692287475240792801557635101323790939339036723658572222309167566074676800779938020705120891346956287121636705007350246578076999005583868085035952450496547869782543162772544026500487720157001450394967315382549441093819512742619441215936856298036939042204568548527086415732406711427254117837390377249689731559543847570485038781948091033362377218272899224232973510437225768732603439758700480562243014102972544607234412285244332704595364790645175992020797830413195853821622356331065444115195234455580001434233501717469517859533411078584349196526933869842118468032750316853157786788628369112915944752397259948217556261590998604657011242344026154016670287855539450509299551292001687608676271017574207544568546906793691327897543176532269683579429281371727513647767178677308631434940337507881415274920315731133740030497103720957135621317436442823822652299748402447993221648351612107845057138456748902682294053933056525244894659460704500722980117031878979560603178080341270933210271152264528122754135779078689357201954397075180808722141839427349423922135206120197444758731779538661958842486702968642565275757653196488007751963876079213207719777943781836634475266136218737238811378515868574807550273477351128024497617900776408810847550972745430781696677413884797760035679769845531351080518679070454085036654787663693807865881077906403793866592861887130482516489918615512540361627373635278609074305419282204752289506355890946946610067920862813708991845914731779964195181987796577099497099785425279259228479067604152883997090014967573468294223362169884772641927122002413219035031810712009822829531731751998483426436376539536864998477385715579280317559041721581896265471058840781583267453268159243626836659232083089314187285775240285437041139614613689299123359657086638692309092413805113719133514048517386741728300987003684999691581298387503567085723221697705830240506263983703832268817686696507684756709104767749223417114008186246272640780499873455617166358011697269135511481077234450350589656293505790573282549730466021976546149327667910170368934377579731125178982136154138075683432015746510796036846925727163618639997418989874468771550012964438596005064889428378265863755977348624118526557907512090770700041677496692240536498077871731821997364871261005729501351406509149460442313406646887772350998174640033899321794037962865481304314747718085631524005151598480777647830667045953978588380624150456019053422448767136480159187894206967266417755473670651755986397152034259743511420763662443826966628644854821353897454710985510075174035335990944487422093550036260491377417312461545760019097830289764341360894435363327552505691802189811793580212308196949742597106877901949452092878156099834972580287246952683121321501554734133714802026639503699292899903407544776823694711741431709780759736815676446687092899859347371847207220425115850942025904268634774211620476599673775799876858054196880504017352043705968971040632198144454315956667365300910615547999330744459823047539013250020282545687725216633392695976595665528188778437039911624805398903204139658970050713437889672096026963439411318949888051624152714550768487693283472553242495176749141620890053805976713702387344378924776093057961419510633821705038262506998139840882041307900534165734802650394462829883953071088626974649723357113510981306564550945264994411974083343095437831234952339885799326775589856699457268559208298799541494839860998031008800377781482278605206184042953075443705525770079205983052216016434828830014107947839080675195953822970167882140034938707484462887363177772252837025186005971634725390914021307659165942374814763760089345944402456122489144877176770070973355936174689616942219999060267954151806558885447573923317211762007433119672008353792960129916954947735488066950275316165657059101581140452514676066656059978578476607395463186642457444020172436273383649857678315668828090011600164204837599772813267006970043785160843872238973975300891237777701206799547620200058714995574503789310024049002424269419793681659323829934967955045218561261481241047506258930423067843618505167400351065720718196143017265869262573296014345827729134954089846187616177238083827985774860736536871246999628691108110237710817665400431570653509811185626671401142954572275207860011217726975640443435306500263937991650253428990995178017763049055929830326811303372182243957436433383417109836966996957959906655101655439433474944766195238249738903801638559181192109003758451098216367320193398114063239320924519426551387513827570022706334595368277714526097555756293017349585196855763523401681465192960616335239080632453102826439218823603498097027889808118026279829007632844951761131092879715514624586866377297261729177734101971461352743182582404217722196863948523110112759200679118444189149523563626317437932726157860199393811821404137108905573033451849729132551685248494395825087888443958800326173995713812984697138005271514587360337712516109979604408657420396166199562425442798274960416278273319917608445347540442033251897857262257090330156248780865401235271553684800113955600117512350082793846761009166861343064878707809403472308215531744338972809707509281081093001016693780668824197602873057286692404160942145191539240501861391595528845705394130197591178522458005420543900534316457165763814193845474355783308121071758614220356958289624482428277195912307843116869752318426699689528590262212161363844231880578407652932512852308216404609362805036403185336124100926136758751118213545883549882292360746951608539708456747846606190709220584915203849322806529965094687810517285309219301811140465415833294751293927642896954988744874375800427852133181133210040476577906425843913205286395902165959698817817360032368204123591087520610283331561085473733371037465479687660609059719172510970265055411284139967051866346322696965268362114714489167843772262917186703330389217688056506898273084326317792803129087945310362718174860318826422701332420632282395259647725071780701604855459554998434341833166163410927909230781313434611550525502507817152114547678649767762658392113919425056297297697855267284709079171196473483873822322273085575742793550173466045354439811783327009558511702350408766774583257191383721532980656658319110113559671673706237314068217714719661755853538818712763164431112037679118272211584104603631840918867217365895904655760037479361792417842299710274708337927303343723451724411713376837017272114978919127526670219877592852915463721057877228719909463964669182691615894003106247333371557056957204973769404742981080512100538233446924376830490033543116963779327020811207741804723285752300184153298479741262400842995962843914380335742129198636347806383134452580677984125259560361162966795206879924229835309325388897712827528547242660834316154241750907477196723598295899719423656359216281151792848184341020503972787672423178721560374748730601099160290979217393205849392630516170081994630929487281633742791476214725465013992252210265279254548203055326529224715628492438799069231020020578256303553729270523052419341986317950122850298560344954036902946981411426789361191392185859980467102864614985181801882424020099873625530104861398970658032932618961696810337134726320234905123971815494668496892135164223060700065579484423768116030335339156966460843611868303608571398540924157133358451816756733058631068362453309130360272288717871639330444183674537701507482218091359594726931604635162384021967168427154213896207519301661700411746497303702354010698379534310011998179587062285194582169193583677365045505108898143655666072733091199758263672062782089196235125387874790006406022677468708909476183710365240405351166834816541298506169001995383579222858968897011647370200662775950531035280132429384736477552109965456244230881377775547386554883426780910110457204537265197789766396273977059026694582225209072020779634606485005740815231648671486914555643379203208639381584266085830345742741620720774958652706175107147739312988816011362914286157293930125470903350186473656076131002962437911594500668555191617690624477948518482694478931106205663524086590916792124536747833006109092577056546659280148419866667445220558117321674930219971426550156267941923667482057383148102020742477225648094900713170256246039424365492671275052524623974470538125348774417455643664468971985584679221763379814497996510161723146547945039911236882694969698844277810037862349653533884458035421881486978814142390414676496387114748307385507631417583480135234999945840616948864946742907398004083875282513950781109193826393382314708243506176537846003595456174099226128055884315229465858689564844655455049429654805845562390046584833667490265594493149450184917610139861065440834079127297346097713202167246318868954828904791251990461588328415988676733675499477149622051230186676181739239639828656519357254428775428165454202034940092985696008752016095695194682845249915325779986894436075182021963587508152450528508079444862416884811666828573768792638874527562442112502478769350961503687095420391656970373571045280994911023719778662902553199349745236237886382312504421117641194759450060926419719363475881371175929228092535683470781468631327016916932340494124594855139367751434418587566227876945032535182076401107732934855477026382998622852253844194592821438316825921340829908281782541986594836403908924780944432845661696800510195338043882268410632188483187379026797096970529015442580542943573037830977042858878042862521395340469837168833617029532911143809612520215390697320213253430446974150913418989711619120653575368660628979853564124361824853500648625075108642711034944325324656314365561858810672751616469569261084188648585719701201220732579751618149430096574141941618141981618619503484118074553253720039769990327067769323056489627551962692792959855511418623799543384064668773425624693942617294264535418616324232772098052514682357132327581688181841499453432753175964368025977404842816883676518690967498537623719688170338184362152542045286389680881200774679871176994607154031217154575485878206362816617894705458008968513584265515688434755351187293410034669575924533960142959228162548231289348892386740718631732909883930416561544916155568245936061763360442825955015801650129064926099583844407185460823911821837547933609675139198380498155612284171198508183349093442670670871716992948409893851172153501383620545527659791016062401315270479308615771355158194244908407891460603659339470096688035220577425945288600357058773721141986162092843048553085976771886671693066124366725232475046649731195184593325850437762053265268599806008037994976645653937157505587659523508043817529593389389751759079184740690999288399875438952434972394701394280655875664631218356765556067400290398465160268933478732798674079063579584685870417954477118848476331431260749057654248396145503194846866808802016652645519238597986064564057984209098993863160416359879137784269196261885127547652408966377793613514250382106541340431114346765240980821263833026686742594476056606948303244370382308806463100167624106953830409539976704126123983715347133725250694096178300256919079693773492711693023173022624647276279035751873665367259936503623761651974020757508970297789381142931636579060355419005158913791787918651651239632902255986630883189838002675181671870116608208284367885124661830808604002198277352253738118501142113084215814774723758281475872196198076621380396313003738296271519932869787721154203946894663623783510740953248825722228163327903700019393029477137401187955457333221200524611758771648707550952661204587903979144670013653343985428895598621849883648516606945562661288006358437623742214938348461380814871205978025515480631780095545931287721925327375344357476877861272523323580752348091218878309504827920153502837296714081181780640196018711141936170818662022137805739260501864233477490255592084557205375506357913806284256163929948391485066885804034697344063370891538185505211249040745502071957407072768920055030079261407986930794616315897495394392387844134874155174248166066600171175438063419253391460889507716135675898487344877656274253402094294410649276215281118915351349132667732537857602668890694086074503404937443615131435772340022642714571837596731693073270376931436456685339023625540843255731001320743758235275934040513454457170497274012838917612107402933998553324115555442520554084038518935792131784318521168600460732257633532726856926085945156977729124714733714272848497507620407044068341861698747122332237863441066785096007138512016255993019010256941906968985936627527890061662057640779081455080951915826738567751852407895934903572728767077183429234099699003120688804635173809320907266942832921610535580173997823312050960089786335370915227493165842692786208012023473655010873111995231625942746490316806511057428693890672950707209604525883251282471764207478203512134796509894225541727939175610977559094083647468845079774221805346281950114921801289911136696656603562890802865212888727995291957092570787103040359292887284314915796428413010952290887509968407154939378188249422954786324985528257610695397242589156522590376698941377536553839176831706805646121115206423488281120619046833249996760273166021840147388545310908179253598522377235609112289354994378263187008257972446232525659945341819022241962525072491827453311050855279900258704933624776245845330272830164759471208853268532121098178157719547532228274188009876399455124687501814206842951052419759838820815939600233463474405899995543351402054146859571570614838178858699600850352686772937731176782880586942198432307314806107027775317996496816379328123392013224010252201200188992758025828168098655017836202822928300540719858141416691628073452182373932381963520261788227808742802158882173489467678142602402887373790451369773319220670523097971085826462469814959380533152758861007366380477116115579167279317929301030924466620026967602074230194608692997620849304287088131561598037745052742884164792019107690402588015006569418827531689485523709870084223976634112689672582748006611704860662315152782021128595592549331834691630229217998747944038212642651822128006340537506131375478116385954672217984093077954831293479879938218490448564113030479921484236625516291909268900512340564583524320325731946368925759037517381961880401804590597122773605197347590682067803798832342238357456788986072563222488075617705353805206868601506716097105095347835538429244375650861095043017947528717428247409141866106135868231075595278687674158664422857370724480350920828651569425137556071730573643235943032199964259815446832607087855385844898365828847463840635496334393335157524329567784440880441006560906304248204114825252772970188321846326474122276708169149643867089936065500680287985269192148223450871466247891393333094501400825591166512834859515030273607776665858118509001903011929994083057736166628554584066121296918253749253051528985244335078012289868119369986522504359027223937335938428889812608201108299469580373212017360721299676067252984535972029321751231858516036279486115100835122531492182445299802261161729826503744842811271335766376853923270466903208319682148171170137343259407956611363362675225696690708880812413427398987595548746989656922965357850266709888861131567427313285670877663336729925835846259692732875893858206075605548042641498853780397700233773782632514841270585208501888487211450292062838154833963443994742421256866568476124128793727268437804839958331705930160620829782011167535605287532515947392708965543243977079721768022030747642700118600045362889370837920763197124277307716409153944473931630080121764148658077199187268955481248544601068765187986670652137257189417799421571567230911298426713436150223048296042607028557490488079058883680577536066833600527351083672744461586784449600122689348844357102562896736887705159389744215099333458867714852459398183525714246768276335095792531702459166438180148233546834458961539826988294461795950549399601669967418466437172295986930156541746197826939823784101778600245839230455383616045986034024169703337648037473374525261703095173648331495810338820773598892117665911299555804731194837275424053262184679140035466134075824353806770323959287595327166955373418783699058762049923611810041050580071136868552691250400056293104747221578797861021025979583182524623590625342287428146802393721247875802701023745789864826230103859243883939513335456799909687611054618143566874003889244866923180230612104273033174556419260117178581350684860667952983330873158643221977841441853974849057882652046878166236919726752314700475870508520894689849085482125390466777257460644087148881872296601320140245728762789804613803928265827693217550970597413514240171727495364258674865398532512796101348643074526218345704659442036961973982812740428257729488819811679138661255801975653904703713188706013648840592749015611295025875473107182326255160068863165319973493981273239823152483123702375586118123043665928489299429273095978224656827082096467883916023828822617848600263586374278168711843363202392326086676522254516316936021188239640539663961730799639487041123904636069243222628350267391196375397263127809055636442775107960532911000590505879386573009682792840280937834977724788201303102697288369988022794381262463670913049221077509528478596658808635679777011726602573448909690769026453664927553494422549382159925183594007105856556371160003688031661623512617861989380889739977826105961550782503603630468448417636824522118227903478765061469205029182229169173064639349259341472676982307044369224347664430209212849142860751860420152208372438729480426713900207481376957251907816280005319970900507080846570346254275116639866702231098952435205310458440031160411121975019982911392942735959736057436210120033425173645509473818488859274841826531075472211558633363072814539055758988850102059969197162268050492824100263829311809904329681202373496693250168355319067777300769703286343733807991627539118545268325357354977291955536521880578216118299523072568535096444396960360617845734842606786396776517702771425817192329815587068209280904871398051580776373111831294151540363783340368585939015986217019932252838108745527982728103513641737844975671644033300229901431724923133339784437071493164168741560350923165585894257462693536920006166374599462655842316586073455011536486812959218793199356183067646753268972393161260590523186970392139627257031707877036126584351938247996396995996528402458266193591979093051676800020549040952208476968870774281481101370511033786537175092476834579937208566338406259128056081767639648714139189725123732846704318104253648439032589927830542643793451698235566942896434969590066686281903176920971884675007610322150247781014508701414820668417047576372146159092708723772135466826539583441662614690277163290363771110785959745615146185162172380621811422537145340507269597032951690332783916547732160058168829700198641304328730747806733058426491024573421662422497417973844598011254108956961042841084847219318230598287774075907388827822479451506661173220142497633877859073074746475566059144267003967892865666773737271325583126645919654659695841566279261570936752594150559498124063655739782517967920771194645369641703329596124885167477849964384854910295479136783350410873124442149251757851384463303438641415969940471852065982030164754299389717258098179877079253601991400413926782356508256834248277368101800331362389288609939112372002108264780921274279872801895693093291638662496418826649344690930821973388414003504121167078745445527486372106518679422949026500178801231438887721065634322888534948596767002545444526873114364742697884324109650909667672327267062370841299982064950895237754603349095238777376822847198941120008500253553396897524220486162916980197605828597490828703318025225006434895455412690954424463932491755081470292994361937637179145234768838681087105063857136918037824800319987806493476769178229288141322142673904609612831923816209171397840428349137695986351326822276389464133134463371067517959179408382242552865135206588536048897536949060800636845559315658253327943322486604642261505978872295611309789817060156842589831989079489325515125690854336924305842298042949996075271519590748820519349923381090725275713883598314054419367353758464368022113399452123632581718552563812358061265099984499222157757841219893456114890086961201090497746392505951687985794887715948004227073726145895809838268337897808626369758585513323646094991999326600123247576342860506583401991763874101826377751414621474084752970980924909026560585350119759033441903908454975748525671547474508080689717024979897305827642958689192714403390663824072241630559742403940896780212702134769207218828847444040536609468228999284193371193168951602166241380866322968435730663108056345255475322239682632337623189499640737803261255799366350064757987310380416275922673607730546798651900511838029157625793344596029834585628709398027113646838394594508514772315713097142451106721055412024468131844093084096206806434817302875916345386497107591516514201344654235802093444551060053158760851587023239063014858711376809126280645886909530785229732505492480897725328662822870405958296367612426020272350009871219476190077112902459457666113287954853867385260436261524882274412847269020741488215991776658939195873650650331907191440169226343016835816418080673947473818021561915591013433997345267519751625106479852534795828438959819529449586068290825362157846773987718317957342055735229643098901867905439921306652613052016493955618556637314519151398763710298587201652688063278413238445235562240475678899027352337172623259084851739292493028333704845406590346526642808182794278609357100213984809615098181143115405257422576609559684260955883583696334940837003741209945262912881948005318958759179621708551345252937234715433458907288002735113741445801943550700264501073735241478794861843188201640662818170237505327631433479304956865579066072989542576308728077390863350816926767179906919922912551478194129379183687806596944635155177576911773682582606406428442065042230327494277603810559795970330791490697337266308599439880163011249400751356765867218463745713474481095627012735381873827917990595829192921478202588227597363413056878122069968688122386796109277673447140190341006934055417198284823043405421336878902766601866238143097321575932133471679730002342684646097773493460366071675119350081494881659929402512547905072024786704001910500742861451858386923626552680568834753726642124749853496069419774435629119243198083084079481750274835002454575294026932495104203183520206610352022476244552044722661064468264874486488028705336957971872906379946354369390470464110054193458438861421563515302925135750182977778469911977118267771111496927801998615239712896683326074994367814570063966635877974890045911489681509048641508116258031375528083651000162009234655055980906295734808535202896636020259313208122180290021150290811398452030460691774719271399186729205622381394919918573544757686044808393157692740316606974117694212059926494529901351306789572006000353457835308673903802197149765341580866180480532022813668171765979394958130077721993341928483939504937146347374668102579080113931918763570575060591007269425760257109457526247440617102036278275590493437759132620444014327571441905168529850348293564835114305682929227312266138025707618128907462791324084053072613886874326359961083094782006557335707108753526278190977617338591522969607825241690559473500583185843409840410708627411396518276135090682817663569849210536596171807500107848314118086587562938806768429047196185837051965968834917366381565849273414602623748826391145633728328874941635535208355692796587858364692999910691392176366888954471677137286974877117591705752752929969106735127550314340934623332310253648472916248323574840309443940041679035090217744653183833651877522418645202893681241375091044761189050611522636316646051310707061078143038237189524175396348681897090623363793077735312346764523293854807023874745378756196223104417364320270916259516605922671829487534061053595091296681713033646759422850870461613886207169326666220945501691013583410561777695464136050975037732346549430323850534062203043917836123232366665637882842186840366361112783683016587455327946434284688153961425457274511716358460088656095069405134326248119366607704308912409756467247288297481772177297636850090311433874967013500907961702410775995104326267167461787562208969929002917884948422577005820499808882366453793763372309067834074579875659674989973184024098045347925052905597073222093917293489130285242491171342067001309953227696560040192059510893525113468538459138062074282245222768942139939040626595938873711822405395823215733539004013232893830211130301994840091860081918856417292033128965732407131003536364798940078860805088727420461921150678439108008922798420265434669458505357726856893421141188011227563424050822859268979723178703418014228773937733365737667621865354851864491851575140188518144781736047850197194117880555665824161314714442863116937327370923877531715055941841134591033186324981921271178671396246826993373399760674375634447429066337094665987772779901484870211999892263745735420038155741043769101833078800115071021337733400641399262986835611197435786634078463780620482400945426277576544173224868336179051152799893605450635477516260179248468777053645967046811341036639499088360045836696622730246182208999791043734851498654965907829972126719134022133925488584542431161462299912100431397451788150926557108569053081738450019570944025463598402734590210393957668547867310840752969736563846948309512533103549850871120738519128665089944435761370657752278963011986627552039703042062810062320944547064013519628745614832602506886218417047626031727213446607494898110287517411158065852912836861221608575625140450566151682625201146151574056856517700866041555976705935042313530041792300948080994861016650680014035517964972107658127029792865451985998010810747674031309370163898263113719390242874398543001618106021055004044730519036983812487034092740185292587101421395720873794119865849144935605874085257697560908125536271617356770462468632663800694285432231790971487449573234540139385567372320125009740287973856099657449636830929006373411619489682677428092693447066033911649138193956433430908349042513410534581603340216073296155501399074123808112311607847194051060649865290176728968388349008205624320716702060075238721919200588608380624728857557063065268642704844199172587883873434478081116867928115315054743837589643705304774112940014500723253285675887232298244995568557928927218243192346436545787145167942065712860408680763175768661553142137977084501649646988501883528622201713857594836105838037956606957593452134579252061760453777465583449153387384598914651372214679686438488121021082743965928182723529047283309566557901581204192813410096114769492150487147859321967538392714787991959838245370489724007491616235711148948066147594639823111109191279150905830308916848535264112155972437561966000555965093180679604910068179516629563028603426013125603845167958731629615424321303722950313553131009095726177780583765305042319135870133393062980916897633343556935122119395944620242617720827112905804207771929130773738490588961550410525068320351737485427213837986087872707770713249931601036605546711402048128978851579507606634842402994768430446592235811438619300228410591388410667790612674478305048051086078585314852391901130993701702812669159874901962000911923862407680572845452724315825371865884397296814566271392236636721965863052384226992225957805145660344040636026238728226114457373150849200223924156349370129383495958060354472078744494792248087345708830826925292272533144709717141565964828374934718184043005966398042088586467754722828213658536623945713056801898707163953429760851538246747942344393969584427421448364498905003398266743884036506123226250413454430623649016854817796210628071181914849695330126178425000490573777107057632309444529828660281490133187402166885674825145996428597769397602429945131319309664605744837895327797671028234215365058368706667459009813264139038175064469008431106300289091914967284288123246901768409930104245702905778226865412521710954789586662748389736731110879631528853240057314598341556701861288355322562952216102199721589850373127437158632351366842618717658428219226049948913024344560925205807921462985106141861645876544515049866074364874909839659113954500757273885794112552817682445856083179186711157435347477263681392216691128683161104968044774442873098076955960781010186912154303880007677027810771272670009260371349845547986611472860486693204893774207767040216110750320039412905003014630553178444098785799205295066270510917798505460231528931967274406542521466705223229388373551538846410700668284688432399126378640818238645489154454168198725393342824113222388798923211381132562838289631625279706396717663622228240889946584419965677984602348342038819242802055161947698015810296237677357715589350241955862007342959648771736042649216667297372573589078274669642579932066563778662846794604783523516727508940530520521463227174128418077961783287283362433575718879909763530435468207554020136072564454009299795647443060269431668329539840700733656712368707183577500049565874996824555523702668204472853558759120595604615130337217154694755582325967171899765235981944982179453084965352930134476327667105542356155616567778121834979106624718790702649190250527312604105380355063553301780807240690034492189733704661654897714495055624204880954620695045735454121805257614190811006948234613711769388825542142876528168012215431493136733478626321108641225968094414016110674976831554237096805537554343860489871529990079774689804322833824415539977791709270465861930226398677961744827786758405725613919669480711492204504993752519668883537269649217495738704020774932790553041843315330604358307680736033953121467103206252157362385617943691409706970748574688795411792392997740222367432028110645892456959739293357081517019358232306614206212524277584530655668500644431775581155754201326264443100091882166610233011955030690751928819993805196745501843571269232689911617791584383911137326969689495424273892584847231807768705204537641913909843631593745702330820860501216784305470827854372370944599439023551194088112660644825735048327918792835391459143964936880681618777469660188617555914747950556951272436920338108522491674607732446859729159930727352305314332586615671241778641797128761655560219972115700345806439970730593554896951111607823650945286341141332496616925318429240977124759941602539843459627346853733123778997631817306068594062410324983136197292304092712571621779566216878989753469289183371732664616833317039515308337631394570495546546275871835227338647179122868784879941142372626143925511679233388406294172825367772502515761314650358704698165064609481159179594490666169004357817244364073260502663211020688629720136401159521869146086053151565357370824586232787119915144715408627605557097809277547623703325061866716536443322644323691638186899080745951854564181988870284288270593956733110173095454049278053549097787884782682559343437588276562038012493592814292853766155281366813786357544214848003028974138100616194493192600151149503211162636009917973173739485105525687891430402017318996537528984822547725332085905995265582241665202132139197770358027656341840392446551340141102847836716646794678490246453133857777168954134596406639240157061046801057436391648003499684493182778208708604014561669720563356578511494568984814081787827283003402028216671839998907074116411548317696004723060493275418049195801945645206583249079843321300402140784322735807976406931824504130947322462693371841962754049522807810592358263275448364969745039414236665478436733206919971478229473144794771122353561416990630981993278331354133012715463726244449460118533523337075043381338756545443549339456605960546478306035122956948215499575331772979156015025601420663105712149641074406994539849777835239415133611537907916006659532300273910541987818240093867193874638778623719118670262664962610964958492108500762993797781569518940950034447694783740278559456663874536502141725770343876630138767133808995488205690032852065288932861970605499506378382697511646630868561673968083727481469337356889518324445513338737949715826940282832015259343800354790157443098302442965435976091964866247522804312778214379442042388904081742105943898621982020113140403476998109635268101954597600517287364658291417733095900362091223397146937233247118919626630186850802901147412916361276142123718726767220983912298703096790492457199729531114258608603316533878034563488593941115585550877055294866613160516287052819682672016256937932334503368660737949167417316737012068919255316506522667757576214996165370967686469018068874169846386763784303887511557384496369312510253731503427282397924689757865697136786774874636254971297582585030702570853610214559653319242116695531600149007433573466029920338689533546413260636183817297282560716553981233094082122862459194480303027724849522822461857625357206807418018804434028967302319791109040792176206740909060129364401022272180384741180565289950061990063949939007599410618174958009421589989006734325875361703087757012303676745925989788501608628769425399833166571956319640048671729148835343275633765165991690711889010725700847762885089398963108168408913520786213379887503838786156830030973989236648389653299828547286389489624282875340954436076113709282159319440191240759878033181364994638348946744203013124824630913591918895450936958706322703655251530330836092563210476323682941014476054512274688234863320651195744084670248171144252779961556699684089929799531989941436061995743888950208704907105301058468842178499477644583678302954236027651113156956296398728199287560256529489021225183021322609386385175611647678246063144799804844157577904340808277825714688305585103194803800810740439301714040486086056707645134814335341835085931665316897796780751387793957586764420592045503988135534883830981558731192212997514643780228483074532374380437335559561410271032094371408033502358214917017512839830958885166287157425489589844778988546554269220223604195389234901586031341320122367790058686193019888172939583632004092503470876822068976794575627047486962125143410814179351785653307544320060611484588982678319500104214917843738560489218122047507530962302399128961230757846324053922835066254791815198184176573201929756621567846854585166341893170935608845678444239335855449071177010405102207940202791948195066330833568525335231047938548497945762848730398548924636616203857926434151212661433533414886313758384849869819956588183071956694893926279732450374235439681955255377119571854673443804981245386388186793242458035104675595894853301631287422752275555406506971197694436948805995949456396836458467399122403443563123477448963671011259764551526487717018208012240356178339199601205872334595691869643617054877860340312586990611601341516085777879979761970177187736164750089444770927610509429667587373318033407247557053185609087347566330113430191940543427158309819774172608340520673052232444940149868114524551507593218809101809537896259364704300200638655119945536720319494101001380885647295365395219489406128654552669451141541412122397066826776898206311602758430842140256297710513786949030485129987150349377343487338996919135806349693427760029204706133688371413734904125474176403894651189504939502404039465306625475573413278188305913775831092606173941483094609380164371586785679863631515508331084688438555999718708099819903117072711553787627283092005663908457988641585687460321306100104670879235168197289519933564151643518507854100581833114722786011796454740092180664058681722879348245556649306121638423093496347126681657467685017509487943324966450949364242779327096666656607745288992583633429164319798235679634789413580022441020416012873666908564375646903461570501465108624748429343655338748525181741087643345027638755715737465360461141537424861678538147372095458725138772928764538922025426238922370391699884346394135212400384000789356867824396338113054276235535161289411183262423254750760421707592273214241288739927915992061694018513646514422535010907537628295813670365191260484192061414327306364674413706900180269486257925921197327106358883703436643220018028099027046477325573477108298143180007080726347536684641258441754367588567015658661952413497939624406663747792891281186577558643826578680706819288208270889067105632491486309842575457326250232492930290790189851144135652447187299888569577425627374236250851473791062280921327187100354799318063884095666570459027142350562173706518877274875451451479606207069510845504463816638089690488414970986815930634094299424933210177449336447361730858987568920540399637108325052587795544601325268429320962799095834315979687016216063979125658189689059659121850299076221487824130310708291655514053166654532458643217724114838186797521535858264350520471255766990092528940887934926452019882152109958566745153404366358701325615364209324253661629340337132306481572957584559676888151248634044612243476246710801684421471939100507648179737335014804121302578852863554369948445307627514014188439943056382278183580928234211101323945787485537060427085330854768266884087334756231085710945631561218362611991864457185298856831356954562128987420475348523441570811751426175052876532090054777595058013495702764006872332903012625311297448957886728764851423787972170627391792980193198464998559644107359793312142697012673039184161269935333076436778571951403386402578964586126750611504644156808702739226804533996170186847498071402694670895696638282172402142863258717470419423991304632752733513120938857840194452022099403101050035175002726051513000593602706593957157120970821269745917432228286820550503982484402923488823479504236963072108640091933319731112919856676666478813029401009331742842516664506914680492529317395654595719701870885343219104569583103856041034591242492924576135019896987232757486428951348755468518292071699323905935566001071742361445448149463222261943865025613837197929766489435101462101188370020960114515020614531025410383727974105953263087220073256494988426884750487115780625838901410441211374079279216760041304172429724486102339269423956122147664635141956654003171650794872479232909064799078802303824230852327276838303204246840615681687543377860985995390941589784790630357050713321724077602307294592888128752974021453240478240740688582122015905967265491840570859834987893091700450051873651799107296744127513050599556026025155751796212247153630232813888772025331810874396387542299987987279128985317849890429248217007440493101772736980122766220479453008178588935888255898999504031094113632212718894321644325379023786067672940949966652658101928184738190187784381807504905772731849919802055661774549478892211008142045419487953715692200908503319684387278716309431023255798365633655709321658834567583330663667686945550079336172564979574470524640704884465341896411639497658868564570109287780746139485839945368645684921757872253376885869948744693886225318296653065264565474541075332666199464475256499080399503580342890099171983058050356574015770544111118538473193252105591880538143740441439200848370381250189955714427811480665563787655128255857342679142520532184128707075416622987783958193352167229471905195115223958024075078253601629605356234650833559167107352090339517971434448188325740851706105305701795490249639402286929241162179927445732290009449801839183993725096268258331422942076991324489534164001714457132382875073759786119124418035910960996107169280371417725799656785262507848672094266953102022529815807119851029324056386278955759915309588089892437553699521083844881481454235609315985824042315153073645530392449687434764315444448038577513661802604969953423079336568060372260528603910222382387274853128467272051976575163255241326985767998208834220437845412447492761004558155000571635463924598711729711361152310064102249009642286042390972620547185687480406911593867897158373390851840470495603456980268178745185756618138283683088599990681263563531753659147398025077206392548832722743981106269040761103785059952724358014071468212347278223181345948919405165410851594232133780173360728561184339884650114683438490185050055776692108613728443326514834310945738654963658645285752924972424515468392702074939561128057391445223105763943426030964284634366952183909805258158501180118615377456816894030563706112124260767473928248892204974759686553941829867016808816083330477944886684914718553191069651391050035427631869818518271830792146389804618965503506546492892407403069313717849395724408736530525276811026643263619885479335358160971155002877176166188891864994952249259552802064033788204985144173028493675123204543780274583072481744174600635642921626155061349241370961696506328377169213216649362403089294682265766769983193925377638734329780181662747746107293158898792295372896922458509500481450760410519439769846110745495835483592184059212590957217389775570644581121887851618492393269084952002720779820485070591858694566903328394521393700318553256360156155321796417340697629913216849600095407074005104512668213332658842200489650413554075621669577889581567537491279633195909795207917238133896159798619735773127573055056945930173269095951731208832728459609550400330826118354768437652427644337731617009430565248841599244538416156954484680208036368877901453352196721219393138418637910623975241989867910061507116693999105709471398787071112312723902900149030313936151839187932398164839699290502142020952855796519857704933993905839256466409537698668144559044932165679522749397432739055273102725494297235496917505645343598948847356384037527516516742794467675206247760805881055905705533094627774470498724434967308440583797023025322212443086382959301434413990705360410092527985409518984269490710737064164064137763180184297274568558508170482854677929241673503416391452012372333157967146340689333735087465117585208191801003830809769613666879035987383665009312683575027263444667212367312331918390778547840819664837878376336322453045498912241425784502071444532741924885364417087945866294152777819420026748677531031138997715169044419964073448941607629869962671672696653100800803850978936724517994588733423721067291872789677701022948526262168050261537807377552816764294393669523778746564237930714473437208828869226448560233060864448130299034483049239648514452770094714715219832022051400175054334858856015818255737789971770671406732217975889908786043309996376786642979802630146964187710851016510915292041264880117161599492896615315446253243290330059614501443457128300940293954108488908825661464072535284517783628502586644585018799562932254596374781119534563036600652076217536611747463226606133473680560116552238183467012213699640505805439372876617808291460813434331684920835953531137017768462257381845411553490009354892378421953054943966666806323279746349976603441479794933487442047587679039747133679351415952184989855602857472495790324280703095642703111963303587016546545145342717865186724792964427163419846618985846025136941311918288382839705074388176134727203090297675945648480104013290753351455089024294832784866534194124173578643342073444247263560765228031820969734177489298963147164133362452840607318988927811126115683312452924593650852995081632672448185941754398016173579669477664652490658165712196469737713275644624420079621617214938915960983690744608349125623647000250242903904117580882541412232386899303665502543977897213438768344149504130187885561261173819184613319496578584770625338808740174657192991539587697963486301944654586862101530401641027102471131635479615842113914886228689808158651467975370599752247553056042565245640447533624653328836902182606297288762190245379240046611105704977780015445275143139628653564160725644261040914957740703285218682255078829542410893216757811604944242942380726520676616369579937050197103482190531669856967909273673814740960383296368511552656186176576540568465090129497810976288712309203546389526814201210740871409439767073912778609519379205847053701467796943179683068676197899782740692467712302887839817659638147183903972522749733630760451787728093487503705479088565189530291778732012948670923082472251049531684008783613637643944155745986334155098039141329934892185648411152915883302437011097127958590873608975983887618244494480222315129289471458219643259636508885948327167996047266117827510412462436013851521783455381292391753111691170004801424500257082881981057301285935232915322879710732974394358021283533402534489078242601908321528128994102659004375694959768333137713217905255869723223750784104526351036159920786767271312786472660409122241542779378296005072327364078682732638904195735756494287273789278335414621956812395340216794332551351239443187685144369935941077598573600258925125407179040986025853021111005157381450705486553585783775849541765274909889248354274073801131466716728827218040695226175535693540363281419482050996468751393459420458234369238832916525309744225159849010781355908451224361858928190438373128525117806043836093938234445061269934356146102413072256280632412617335967532301159576819309001057876424931314426458746567632855725151960280940311806632096150159716723393034279165625477270083447547033428297163879174128269891781714206920900860328622227294246764357110015974483545458696226038336229265851877160453746463781586548840404096891799027888997820365680801509424568111958932095207940821978434593613440905459444874529466761043141494320566468081034696656698066803737762182341863058846692193279844929010003518316815210142106428107438737361875309932251446088038809613123913058133790742913809591718772597181282415324460285108608931855368861423134527831985893874539098760790569761604846520774155603508740565297472620817203611186895552239599081122162260201285138912665736418192733265307316226095708975636511952342910212058132123057325596806262723431430934789614549406403307064256826181729115336546686063670373789884378159387578956302474177233810926388031340606934718563862693310547971666474854688224715550887973678488517162930577573441119403669779302042783903537918419776106518049712978783332295840373605927041155617895710222202733367486608703400258320613475444131784924274464555304776219098880050725025861967932906143100879198275016343649107245338514397483602970289729591759793475722874354477925265571334010187680321305453472174427409802944860070200514973332227239559888539169572925256910222272837086821839925873390436402972847688221171535671289383542231565286842850813692397292683945465777846225328322881273837223341113548274253583160606338613586154684507661106859391882005993050038162819780037838595976884492819361115754260536084915623917810636405887443686297739449787387884259767000285836252216888265427179695222523916335674659996918885701535791678016493061163400905200920271073653452537999606639621423296759760759779504875344129662669292702657915898380609630357065547089572379816424606767694002815023139133556889888842191823950243428453509458648149351993122611829556814323355387726294289536209678669035431284806243960081876563513223153632354797980584735451327969923478385847934076029214127886574883737761445014185264618040221356144718324437297517016728853176792628397421112528555624313455417788444613884237068168362848030301319139189722426450013002040285509370916985140153561693088260434982734320233703776419372167432931269479800045961602936963424266814067174745104904648449486148013335478889311495118661503972502339448555525769122248892125075277882798747315466541473098416218268592700658083700915315760649725377712248749902918366488547321782305176951290662528542144497588767042811899061173335217891393828186273185742341113358295644217630927856619142789063518966941533834908691956222409864574533600702054144278564005207276676933343353597397282045865076111327195294634428176568955009498758784050788423491773950128339712688294758212250515043552270180394024464199171076970688547587345155186940276758672035196038138607520129453052874464287493922470925080699994639706022459359012118129792161061015263962441409439574803248340210607309767621398111086668368829668687623776254756698273660807056202072881626650201108067579249039110373352148007121599908265042956086688898530296095175810311357789457390148305145092974167294220387306352112641727830495027340639286193004948482609228159268898354787503914477765176192730126559686216932135640493228357900519904347408897273382264837150074594494403373350135932796894720259618994920893103785567363721602748164646949786576381916327414925166525819370199793836980708291036316159656418108350493130172861441297122441707571211546485361346060327104143429063554355469791483472828034941100970532467880073485321901608500710537238821933332929320544783353090929678696065915704608400715608390212867271791343154832456971144330475413087377831301599555732605011463543828830481838769552147361071348799036600914437657823234289977252124843279666041010890226650675963223695716185869781696377509099720402054641439842655591348947355367075172707304857959844791042240234107577976233409850047926576601852284356244914145741583352846555109260170122655775415005787990366880908913648871532181353417919491887101454237078063194517203420643536965990486438362829034850378613953306017797281566744194548283190537283281494532599630787012713976056026861402632740184196556979920345811097975113845430606753173167283305782545785642787043943654394409370336365158022430486209273268967103868992680737612852122992233619777240678817742552274874276899023568724850913171850539925119482592964037316651375761272624556540519371140464293121461944163420140863098729130808669133321601005342772443781089611074399512871647925190546181382903621283340140949601767252878367095265240587717636034873760729247083239597274379410494694596692371279180670083462299197989912497932698093110823244889998320405904454144026910454916758138920562969102047571605358170226149053370058831100792819559154665421740879337144816974107003362558244268601396244129990382264854495653883872765257429127461219622561782622513947672392644980196652569582189007746418443360029882063365843562897294817178368048767509337485881912520921615281287393784452811724944243555040569482185616341212377190069917304154548371358313645458691822405271192012684588439359153266361420689773014777598362541888816253660860095799591406571098826699450538888139413581904484219811721180444548878541712801262888038486823029375962927618917072835434335455388219697120983489404866819812503017709385473152168397301782006468667247545345947073233967253024572278371783395262337489289508482273437096810005850216326907213559269449535190968389005991456298575981375282537340015384515405225027306688447637368689920379519281973712990569584281922578991345437437648738160667603277864405389996653768176027366839111382513067253193078548600427582499036138606401354365760137120027074442854405084554776708387292308168932537688609660779375015104980207841103688345829169447286357470874803766341006210070218715239828615607386664522915046108645245296639637635804100301724251458227895694611298004283422582126278837489218557421878730328536357859926622384574077867670436624113395910489140130761698421765569775296436781139936763277437387047470651636324605030701298708988678288045029098872035345517248319661874159144253052936915667894010569250557299448008782653711143140686976696240319988054666803689261370665634400008693245934699875237005991865479744371152454987589091633840131816850262170064467964275645867807359382736632873419222316722646025980984508887775884448666655142101153141731178235347324938596442289634468991614569198949682349615235646457599524229410478469306379391021122808289412337025255778722851338448728664605193317924338714308682489492993323283710353387912061134412884965389644071465762942169962946587165268984350222034437778518446009068665780406949402812247630903531033021287416797014788296151627192733473392958411773882547668140142484144102839965962537468010341791892615948134896587416657890172903591443889375775700037408079455076502123513136102150730198528678726061009328113578670757929947128212467519002690485516722079209442552738267899577992795482644531319256959857554433926373731997938733925333807274197093365003130644675686944006742152508307626292009365684762964833583689061690820242842015952441495136621194887869825064722730482513793285112551095367124879877902487554339753689026337076774470049238314231773793868299456371484125133201158206561561006959400185419823899840953637344343449763072650741141067333449813540530278830707040223983664945323726173655276514466337204307942884604053399310815062471982040217236127541439608415956974766549896385494709455712215158210179677412689202795023316321042695969407169487107934645847393667317829724742583725657498284187032142180865951918720964228886302771370335568638876388006292924108168461149585700192248269372979415528974860972000410344906546843136998475767652753941336108055681637654422794722445210308325874551295790813826514191246918229842685752541126284827321068174534916802576148210420255102399987003380276638796662200409709733915802322051264172006686140466394728447486176201811426389458134323904068049203303159027210397875861184108414068393339819228404539420091813381339992794990498609424330730405251260281300647984022152015451812603735701380306267692572948940118415741446874655093231722411141293941005793992760056294844036408136266120061415445608345403480547140362314417619421661637088155264931922891390080162336592554571045002862711213850962186683700791151823822928601463828834180504723186644191865761764885779204702434010389428979950274926241911597486958623612124380820039745857876982088885458135769970068347479041685810721072268816719650527460426665273596743343662310587924628221875180283911374423952036624329157211011062682133252250054940267443625345586701257842651821843286871809994971049733650483113484061206756844925931017759948774467806686737608074769077318144164578345339794033923100433270050779498247537849351647848117144485939908536833337087804601539869875668182725548171772754683896758240774096528448294587113157470827523212246690474035346254887858480570581698551228174986559708109374349972129407084232420785087623481555704049638568804110832676084409924643962173204891029774227593837613645145783732147711135948308595575158860309416629439847541985383919188555058039782927760821855974147200797615513524092047897173183319177505229377808789615350255869102070846793742266695648217385484489986273904749420192731549149561121869939394409798744416572480669419863308860578224791447335656609775121854263690291630006623374850814182259492688040876405138516116098912539455141173960780177295140914916181698211469604438422589487882524570998923083165052174067548794897512848803433015963082096981943359369635541206775866188781719768939316821280905005551691032615783984481673174515493859922752545634951307968780477337902615235921657987476830388439862679127829407114391598333813101983686408970614199721490329073755934983015905387807897528754927307504261947568079075616947031139336079098576471203936301431149667271520483829077388532222985093493540212576653863842217783747111657392598738886466789916912604608814905110367066683797184183483338282449997026938408643555781957336584355071265866199847557685685858183613831746012500700761419800932404451309358118412539440270373309941636901206146274203982924383609233163201971645761538430768651158680526527311614297507839752688073304761414651335978334470714534121611940226026806210703882892703354633313659841486153189661865941543599362029243298534857569219302320553179199266538925177026921075783840004876758542536732247221723893039847470080795539853519565754078144274720581043254776934249139059886734036399584544054630293071655502073693153933782239620716419636779081541531660190662822716172111660754018799887154510664573519228701957219588972905114286329832614336023703361714101341254944024384329627551773741250804676448045983711033358850570291335843700339991505281348168708289296781631400469257195467911316080275752503622876553014956901408481659007452260641437869236955504102165721551180659135514128491575811041665559395427305009367471291014010578998262740773292352707287937394958264634518052937643052940571795454057310170347132510927206152017046586468672288058187987714671274687795389597002889766160932560714473509506263623142010512767964257569297673335915441787593946332044334429332022050332205555211536039912061772569440606431349634030510090728833595108781814666110688233702518791038881318761770601019611496714729844980338381404083763580348379658861668834599445047642936755901672424643276180542934795877420434544458373955871955734436721451612178753968493723342781951126666764870187601044266069877092874043880295154058196884171671836291745965201683830123394418003307586610046395082274079640194250912482368162668894395439804371160184474251139865186263190132532256728533749493587962804106917709181509964509146401694824419001459246305377269836634796393120023260095490990716127653547669845900150621275551562750996629609953907452689159538954121261310730667734086112029576767490066490403415397326032991258220133723031357776835508775716598473093623937770186241105056362580531442634927109216501515859562557532705369057307785863831800833604447172823557487227180160955218787385726534906942424879826361958487659831315748679241358735911366202068596124382521448508284403336581468100768728380775826587208431990133844070511334213122763134112490271696027959167175889301833171748845097527407509391882162502470447740737338149484837463924968726399139455058116788939259194143210424222664166662010154522531361083650761947573562016024644302374254750332771266956991841495681032514621039572538477738925995857842812855965874495407642512241416835741939144416165378093723543860314369552362305836337104138265531096973350714208510724698112743702365400999063743615801443977711344649292013293543765211014460526678298310938117860797865530312354334489513260637036893378538717409649715175236015506738683850457127452323656938694751928232123869840512361852823585179795320170620111288545173274967806795320787685526671215842444456908942067231357394451717608720277819379013839049070274918532061035294323357480379246023009110307000479394595146875497802564524324131581142975948288024972260911127257513467227947234852563209264144219856012515623811349459495885504540315157826993154509545596146775910658682385138798688493605598393095345680160693327744920284843896655373099485916848099161493111448913319731092982509617842491275375503933662861366622708844675754967697464120271289898580897057158756929989884366624367189751735776580326626435821246209763539366717338867076638410543683655555939500830156608493872680521273803924721136731477286198752884507890363039070175782562913048948954655822256493111961288781958756816275752234999974370224163599607541201786767965653361525723708870260636559715428677762764099354524606875517836776277929399047042325243032955802936130073939739557733178793423914903999393724794163758105632008436322269051445664618465897991519288220733361606273053272497054960801963114259958473220229742107875008544013401415581548319989431634010379666828032857335571510158244814550235282827869398021474781931956107210177750976501597783315947790291802421817929114189376727989223286881007706869037970388749485851146696760959451282492796641984354223462791646738039343218256331796964317616287771286022983833877295180191615254272848430693874593831105178009323723323976845252756726040415219510164137921673421635809558369334364352550174115938746388172259039291276913155847931882535412845358352873205626481040573713169004688150351939918968678889697302811709751397510717110415666749303425500866320627640398308114705662798796627098628214807225532780122109565702517799701595986131128183988737281142083457235630135293223005588240227604656902616285031983650613789527593951630793120429858098413355575672144016704210129513290487070448576033812505442128629856118534556784164584510018333212035556491763587111115187195454838674226254790461085193874915135663764973479172286022479172840329962355211425856691163033791619850051771714358389204089616198804787886451064279955071506248455380189802534753227288175573726903194530463202863772484791973496257513529014294186094581996945030857949775230932560906295277934649905039153149150147305036354124403522688737289513352848331243999628401572089984475538467699800290905392739692561197940559606471131631256596354568339910722913061811139748508860777277569559468099174023637775548662399489047953183969184068649426365082084891144447372808946241338949849591026933855792443032934637919456833605734220769955240134940330806006056853822146834174896137339519443707511240534597282770058799449647050134331745286187369828324554472294404069085378996294866491884939560816148862683924813353006979814873264534453236601113919293634449498307068612559733127429244960303753813509132713672859529912744575281854350806308076354125016294433477208250612634909313487940367628231035293791531939433572093849717606057465427175709876586693725490877621338156885298118527222791683225144600201819177006949766769747983056717669156772554282642186046565926354132905542270648538601093837094825149884537608007662517313053215389739540284029724187986781200225561697873243009514375316227006411331418230796668117740517931421128599997134810729317513635431157590020673611363544607554668587732797371567939462050935728461647579419110352883906862967680601367559828058837387464502662567507407430204463258819772056475681696115657503213695273355509347913772782027893895336471940620677269119602759411304593210564676521031179189092533189489763581440577858506524733179283463133557258037546431684712242249828739575305163800985176169825260493923488627169845409665441304733042498785280387251296936295165033587152053516486641430934005689489106245183815454329614954222792956747428427528578900997529685238087483897481350188643199205989595734916605280206382213261632696433611048735882895368817080652946488881890025483006522870972096215156807469073838089774688265854032686696907830801535017071610264769993079126895758657951563909960510778278949087755174358736476801591757524130615053327788853873700467347487311881690761316966625698339637670113107585399794082682690517518003773764310306770926967415351029194693187262105152977128280737123464992264488227195151155458747321598016938594308602003610286839315519570523379478765417976009572998117125414345329790857290387208763136701219653628992580454438196910533894410183664311721462043549890679250832770549304470751730068551944230552662187040049078257510569998290657036457040065852199444283131931002814103105538779559213540346655071538567621945994399958708867197247172760302275492128937344885684846627554481129647652984683087306994690759446496142780208951008588583692853025713427940284236273670349366460711945530581044753511441222946670678922669467604194015916526304979451303619883422044157987951438428710909330760651008868031654656535919901475289033396398276831220650886289137677588868515142848270239179420805641292679562880392542924491481477488606793667877788919932508953057020114641295166027658937560910900498779681170651750184684312428827156982884607532287230054745040160611700513823106500536949197543261558808468418155633573800847601784553558514649315672007732073185279581546090546637675123977886112232290106169237000462092312745820531889394843493330936617432063506041141986305167262471118468582952691042841213811139890534968091821230186561564421392785515597487205343404430750121077891873942870450005448589121987259842331799328081936770042001125600808683603407776867306185459371771405495751478121914752867373836577849342212400702079406722299294888180371856867057287475436532713017902376486117405220708759852546594851691451484872142377383244649610857627459926529914390969073644436240775729849157383195114448335901195755887017837142083056282513608375444949777681618376030603914302286975506193725200435180691648774213827642269265117911824795233374955337585068373074293117572528650839059329511470479072255496436009231955839603835973638106279432280231052222891916357242638522103584747121715086488111636627362049734349817431100284250511464000432280389604079329870661294613626131999616325234313597802732004017793727784142007161223548197616346546287183738683455701421991035760164353928634053099748971538150863817550999390408343945847994070985058784229787490376572555030364903352203753681804571706019650800351511220093812063365290559851498789507180171700563839640759034351458030725118178963308143278412801238724047327015096241225506025390947634613368177783269427232237123075362388538906698991136304122682687240838577908461520620717256644228997924471794232095790631679481625215990320082916192536753612569122209296200828265023330534226766209326926050593737216480263954754477054951543007145167391161512157531924666214113350300881116445102519171582396252232686698148079494533296029237501559132564002254080293907682935658377953872785145272811806974466368239719406205916772302226686363026359367094193476086524609494569584770122733961121509639928569309287041868643598359264884706728755497258556256367815762416176046459923925309326283933882110200850843192909621963404394167254863133221977993037986146386292887388350394819724242335530336749203347929559393134765837206060797234506742518380641216174880694429048975199390997475593421323332394940353996863922287933652802770257489674602557220836643375096086072288571623403631838277750908430952568914075944534599730437466295579620335715831587861009651480063424081942419614859048727381471718238451201735750185779133855611179614967167698421381775927753559492790870945317417361087650017424161871236375795300469371500752529360170092573801491191080094469718420258555099479234149395289701709918326921582618887901159970002972139340347461398329949061939390054299112405531811610112580772749705175109472189642335230884312448542838861314524674742222284459831585847040243853926332453578385784083528313208274145228201787960045330826766911375259262603305974123148759233705539101444996413229575166431218468803020049071366052819642467024521627720840911794682980237443521217917604085796986494983968516793532622896036719700200651990790340706909350986157665182127027280492918848994037694522421309064412473347331209639101904196665043612451675765602850158733081667994236982356557938109435409716844512165895875904775515213976965568848980939593502819475105436495493969180255218057622365112656163608133917788789397063765751986644216950591502300671861590072659667328959687444125181193057846834661791080695750543300555700433604884098661270248641590978254452104151890145423239786636892495632474965298443702827445743972301370127844911208374508942428467917284561313868917033763363473990081462782401746009941564729904814128999759604054424662999023896682903633907321942807598802480427305929981729018533506982344708906575615446903219993493573097308859407740619997931188721803848118238226823473760911269915840666667553281946979329423418923619123032183999839564054172246116355985879348978732022336892388648067101296801222088668310416696719584514903979262315655705096133479714832413592011073961173569966426196719344016375521211891802357775610606640981637931210478532017648508199647134911467065372341316358623569480877432797471514782817410858000651936388416234857533538232192908581258115417076540201477483123136925287639816665334910166470919226412699420327372274105097666632868938845305694848961554916616172379376583503502642981429491957314735617044031527782959038219463756376339944345660694731953799910795699137359913970395145315677732379805340357394532021478880612607321679132049367550750049092940724826673266760569708828646181282339831077243477914604381314035163769443093066975058756118519569775939349610230034596546162198463092231026252278282810054276976333899708889246107080917036899856367423870072704081830889710280084858094104890376156665201197167193087272564054632037737775159878415290201941555000083313166821735322840212127917741256452763482235176093708554176036833368308687517687327925259700704006196011120963860721270740367455274095252934181880667979625655045491507745305511885098385137793103460000451535281244841898284104801180794876495981301998132750958482628735918271146774212724637653580258227458873706797847841192422624141853454426275889073187736338534564853628824224026133448899340883772215254206122641567445177209345541810219095798340634344842957498897679870379003254468957462049179452371102105238365543338357159094546395836629648741104238587479099385858723619795445783361465802749324328697555952967018919418192760979177564733417660346152666013673009840453784843429039497420642361240852709008707058275091717683694014092129854008929297476600332118916060861605551928903335660179445173150542848078053967983016388679323566200017797045202366110726003554397972568936465108565270822539643153749268006926582228150196319960048144930062923146490809773222391029034914523896444146636802683560472468658797184153471403311481248068140425144813771275340482504265300104570805986825274655704412236597004429477546512372411942522350061601587346124905040283571836673161370128382443773476914698642043677323721452978882663246569285006381565028177980715109251125257211567098295669677293837983758579190987952465372344332102275840614570060488463387422774769152741772839891357754753271723147389149779544258301013028840393010388637910602221089521267208502949253019650262489885684762472101585145973792508385904799330933000677970774122923863204363198541023998084434192164343965543304922397728096484398908221294189421957844076634916936464665911721838306974160770486761349803106382936243288492980991593896397571035178066050016061823296395378990853503758691495973435324022954288009970389954216114604316014205144441809336378121242030466260609495343563215802674873329829814773203440908434633083270550542591914095603570721175628035775149847498177510358950906346216420240426923521827345226605845385635798079177944032746518149445308787766833429500408824370247689832473987984059630149586617012684567814256943754718360275376771659631051626222708914393988379783158612217037599316036518445763952255772761650901806601300108963021375504594431717894071075669562994184082867876158796539537195112736444924966831073187468108446475014675762076855104291057248700398502044680914942427425743676424257422661395431857871442160723229446299591080231080673353580324280131448290341497004415520657025599195398630269571486208524944497027574008518407286593183690428401484416890734224266982888396505444303662818877080200841945994355161757128447009699594188074146577926261348072633471401673828625893052038080690583768932858774820331614184216638841626840215263806312041003140459232460991805434969209164512612549135233473711001245038315534480187967810895808903802977124361713869356514500195558322920396558113099231554216306723413216406129486275652391141394367059170392409941406640791532494739662467350831044097890223010556470002108803327862146938613034159122553913234231912414988198074620829548032616280255717384237150043380671169225005827238415611735924999813448856890021626381489884678205245069065388488169724408883791317813601344780168303436771395105402071641329722623638486112936753119430954525038598636204037323109049976081812203395360314863003944730480290011650424486761111952512705954300883876447693017771381792510541290544291921334238623560030536219132438129363910517253690217919109279090059958818101638852319906940701271653864800736275378227013290879876747758829270009205111190225825539477363134143516392571159084182707304388302764683380244106042500097658917445252707634926065647044126953466581956694118455057132328229849281872720354513194533960121288449420563881889776719439194109631632419550182793401290539821435290132605715926756715857317255989338986716776985096649720960637191720109673208737999016541984728942117632253128719630598634746843008601023634144554639761181253929124915044981886025652890971361337331135836325764941748422266294079181555889466116345070668312634064096848661757454640763881197212951041642299035171456532797071270969125559414223069962620110822160471501015681250599731168967712362610468834194019803838319337466517766373521758761266997994530496848884208793125498018991739304622636634600387523293970203654187541955747136787798074240034067513921684376658388853877257914807025409973321884139546045595305910454111833230519637766986642504927542646421138882072445681527791834688892165076370380517165650822526968541006655976068734692283603333109680790412598374151033174705532908357163440326272121465357135757612858210128243387615438407429772534581557077689844586671438997670111293015115599273261338367958949475356210929068986711468747441378046353700637778153574912969622032985872566493303397173491081205218531829639124785179625425359177169458605667649330307230171587581904302372790108663651775922039124376342947269891938016841106460146102616807565847299012212557526420904194113669287090392547663984520364140489900405340714195307517143047522603607823776317642956743257357167942024589509932220243199283423002530788043006550367449212498879669482390926671604195101484199401936110652418079982150651781685908816893375642352927917004450091767135435915113707242148714497249343797994018213509987660781065264201095445019346389225247869747737447541538282273046682218127418793933911412473429280583474580063508259536117075474551766516581292449935227699902354509222718558171397937336615260619493292825503703693420433498231850530527081522619949588865900198102308433817031464494551768384342627735080762982416567651480268948516469368546552623598924633285198222250330780211644132817729711880403830390581171011533762508252984957277278227905531679476269398268037945941127422522002656824592314954704269488586948179028920420820187620332962644383118673995563528347768827381878715384383584997123994405703611527224818460921315694717340412918738188459012636906297069530860740476436660148815785565961621752174711847932714548881388051004328570203745322357536511351959927631132367636118027035565033215474306457905958316874597904805593453374051980318476871897084464627002826726081975143537082739746549470986856085345570837713451442504780282421362605099126042124063711712474868138439727980147626933053417385170650238948006603422426876673050776207945672456620350543370959559376849264326563564467049050316981065983439620474864315051051124091441047184121804126467420169299080244975412806819268207721570591615321988923778877859910185411651421169752457478023139643845074190328164307145677942349450189291276169540130216152272183859517243784017988332335668476695619088779250467835870804822745101129326778065560009110959760141572516706851857050044979504542057512988264862486647914421524187548094542337463616224944732984167014894983164806005174543660612826704759697535297804243106715218971598709770905854955606238722105916387309220202122450741467931863240194528214938902615370826720267975721434739375755217717431429806905112072258233341629785751504157318213855028704810551345781775459921703115322139652871859114797743856900470713194780236476664194600653621709077947306153909357137348351834647968481746374107702782783755069741051235028129785262521839298567532547116108323785028150678711200834061090301588659336285932363317139766995251186780003942186798484943080801481860791253504068784925626908969045570994051909464204928330837310255850685998136317337198586765220732408628884502915148517138015725310928500955825960543770486153180770395035180306813248194494547154100040111528114860677066647496169537880671862594322772389975778697837164409597338149830512545750230548388708286164177043240417696761083692606335846505686537549004001824813045571359990195154684961239702911754855426978573156430475859945125350833271341066283572755669758930264282534256996837839928197835837883602707323204238537057544142871488395118703032552429925282426013507701039282889137751381682842265800669560951092699992236237680367798361020759521238506573408939286097113808988302638964313857321171505882670604191334044738074717957070318426097009903721215238846140736032973322064558292470574429292286643880333660129720344890982438244743409563025954062605859674008235977070547386378432460409795977390256658383724648376570631994298554100158870793790804395468474610617958735331668344293200507510042787288583733955836274900338775398449626119309035250427198642651856176253316064355525894402737640841470616877240691547669860721306057497837762554513110197044568278700567447991473063044259109340067951263190033745305607944269195135796837176940368549419512780201645474525257694784454964814230039720049091131782742843190167772578844430936867146997172275302102540388325548651983633257756092377991129064899575558716962187350103789981822441369565375854218972755965192459969543087837228767762085843926765271865947798669804442482142631515815991841280948293649767992289371263122097633762928962424240069965796350935476831902851496667927277948400335775342262952924131553165512934057030651183465703846148325127390886286411014228435707050106781455796142450080365705421749652755266338208941600117353014078327193706904614268897266620910973875878980093332489782487191083705167269797383124138408304464796682587908164883283683086245993800033467120400620618851773357584895556052268224499804671493388194586389159277608905812343149101583161130641924943794881169098831256813062877481186104146707007556351918687199650497235273084143604240002505156088209625187318378242764546337876087097704643887097884731345633833756465983208411429433592045219371985876176194244380530610261985234159561267298431543784845530633605720226389426210265082285095044409395267079785419691045276221853645893369809739159156242733044848933046329883546557813845701569156414520170670539361383420654282564930877225682636965740000535051893972762914747034260013318936654461246223651174130651662024258914749871077877898511828687312977327503516078206245345868857563907313887914482736583498693895282208062211677191082939532274739382950928140669297407598277881027756642863438890362071704223117165742386859383669831352446494418678296608169725143722174838811708648823246038576300317784456312438765447470683736062855613880932930170523064823577228249813513024458448113057710786438883272790433472900087249305966927005502561878330508560063586916586381837787905791003952871809390222188928022054488884166692330289874188519603193542890194561106412551286198233506764480274431776440180914105032569347467738606678703247222605566832520565195356653009480358681973453896904974777681862472459670589369644164459537111859363956210477596025959117656457351326098154274352463556322951986279474847892756607123936477441310205687060333594164367964469610046017461392584156704071570129219001977104000946440700096021356694025732357526678373304508711938916924687638538547449707776341290157699356335022465822045652361916413753856749378840415863842683602217665894152643370725446710124771054218319323267667813510774749358240044031911598394123509138540002990042207876587416661137761294783591728742649635205603503385948371277093012781734239953246958870394699259683237815361353063730951910716731107511767965981183108456749236177292445595959788970376125997243250997511063286958182050756099375894007423929963233521421027648921131549639627156518673158508866625293998013176078477612244179351588175694019535747122252391256902260569671275951213569575647967800101150395604203848826025489874652656278797100922893533811707235740797010290396848550981172676918603319570331845956308387062011155688077900967339882862691974456721413056191346014080374164052057891182152552495288461127368311995401261141115259367269050447002833399483941397145473332467079780016652170904852194959768538876530646813355540120135080757942749010678928113938454671998994939036780049544600187127168220587811055968985591338612455820289505524795052459175346857125749892525957606269287623327294660771782587998931757982131059501018497300870810053176531179045181204280824815515007656367355305075340877273603061938249046075771064685252253920519145723101048452995673776040439451930574159765645479016401710992769500726017648087221276343850172960313781806733304996530946074687486750813764920580715864739967199996725599984806982289882544593329263100188684213540597209770722052715313367885925605732321803091401372208844897831911129215976263602756985206745191056008212560544263712879718011773543053499759598376285261302859884477204584978548148997811043889592413289500220136611791655312631173054789722526001071048340558598034128784333759642860663272847602618350117770733918506269963540913367462028829074635126154902002452289123581705577495793767590303646334115524594969570216660219230626974369717274036127707934911491793515378691162674630505898856463814541549162239379613005566130897805043518435975251308092089490684167552439333991485927621698919817284416375154936086944375380036529537567400068974041795165263080337348438958374262956220660505113479041374177752113180064000563023783411032388313195238007117845325379815364018804277970320605331381216036037457669580961180648712918379834309886622197889361558981443357945255646661214286689709573389787855179905866984844090778996154190967708811222735632642265541011068931354734624469427139803985351678872939261006807864992049272292492681871178082714094486928944885171135710404661617130207168568800999827297084258312204614083020622701086303352985573011504655282166421183960173257420210993889989341398468535900181902240239086891880244655546254116324600223234781124443559805133212834030522164342242525208304010533735749527315892725435975271427005963224306787364593361957260320746998729522333709733194197658941836294875737519588964446021380124573675746148422803622539111697161810582949058123061311205771454430702930989936971098533601293028804508150761277098120545128726999479226790280949611143411905282890919999567516727811065748693246262115612147144237747751334625939206756132096698710507850577494577578289526155427219581326671741556163625626273744399979457417434307058135335794915076898188877526369647756585350419241795011908737945829915573626962238645456905063768422093478991038448011659692367047254270691294634567158364370694927548960703000001826137475968125708092717937845776873847249760397224950406426671929536847939897196811475951498253293053646988602522031114726189486302403396503455020890856904122211446258507087310236005373914606850660767508872781684477473322297443759489826459598504150618834399359125675514847575896094048851228454724154636791640421081488146148594020969261619624492054818128228171790749906899885055775703511655699270835903777384036978243272543421907016283249147276941657837526173175714788430801293659031874005099864932905958133296847566002176273079576773059827732238003922979602506780837882184523102652776520867222090641043093512967058887361010575958132235804961557158453857824682614101699499066826291833576241735379438840358355965016098736767136872405821365801086508765457859863956024764085421766222505467802883948386315399944228218843814339595718619931393116007220222948540496400153893585383545315373411748035496479701502909169751270274276016047955471768419075397190112750396643816327918920340841899091897040521985510904119152139896021535578653388600674906063860380843668741658878972678350242469991900736166906904295630618563763568762485700437096011129394672419642959058231339466678082206208686224194168591183262176605943769724643619231598928850883434937521315812526950832652312480202338408216257731309787969028760920222434978822906498723291977326629120793068844085857040366571236381594851022335659692306706167519713127710230850896977643044850318513004989819738918464724865234459827160032120188211456047589647480651716049953572391512943557941715264717795435717952228032058453717190051823181636570169149335667008436260731245468423407307494117656684495650858115184262698996809974434034143905583246890936591479710871401324238210886866943998844534488706143992715524524038382638159035080415018827188402793131150049534311521777801603688670981936353562266630324500623439070674142974100551542799579510946378042052186422977096472557343182106520375874910751669060569462748714493753921599518936886052473624344225181944433959569675412108866740401215858778823058964301059654747435849308218261685566469798354252431224877452900970983026203451792638534450979632445845201007332776673385834200772243493548372816216748171012547641130826387377371762228254447006180369124319055141131973249300624375141521353287070057086772411616709920601166367859435229884970912035622537124725362513830726101860798607125367576354266443545368781487742386027181071314024219731187218281275009471144473756513242072812154222516392820655728848570420243131628918045393226465826880117829139417665699092438535584205997999694757456144056296097794308297529434829534983076813083544184000778714412613791642151039412976303258819727043348744296450295644646641900904519075732998083101649146012503621459966507650209043829498619842576277942829386683234160726190702604999502650393783218433924568690979240555318010758641654068954074441321775748146598292232355805436906372966952210781132819677808187704894418735952093667203887360947246211328952053253092669299749124239750865345844878851250561445938078336011365265464248451729928985195083855161821621456513315360947787192580144895586327939733327896869608830393209307274404748633799400930621986740393557753765207122434524323504981463199918624852957792869254713704973144941267769780013465568798964750904018634553234772735826961862360959921519411764698799510720961539267765661785339747527196900350677721921202295670593910114993676323805693979305804026582420644949608500207202577402175040168029404873277180002399348941882947306689918981123622107241383832494975724346337587910915420374428950810918596005388542559498637563283099286220282781836344879566685696747612797804533550664854524524744033271314074586147246166885100061826323114557095485671964812679331655989987912664982641424551693521497081369327192314227541611292673761556335100502676351377559277434018124888883838670768058411602786871661177569308912520106442207941294367986177835891534402864226811843512086074303281351101245227819776075767813336371239740171120216908382496819503334693430971537918336234814729528541672627572108634504890382526776347847213682747123317853590286208313321844456464432086528461142070310188089179692984575980082327485289607302009327121651549222101145180367459485005266428798675482510855142851159322679357588140889991054869542576596430395400376964007686356589601383782998821241006416627766321468610678752233342921374303771025800293538899878329615791391743332889763659468459965122124500652460033049846837591774267187899116018381202148190797644964348985963063310154077144045353416356690399112413178580040443173282931540268603776984940588819910179949848992922005159414982939521481577151375127977001299586852319383110124004135779119673307907681998915672328156866740260296815786048367538845945667447636359261593112589140562707350778271960825856801166883519537910512423722776679206820772385841933460478782061617406934009380755433684556419936592473150471600208348190738100855875990624984148646280887831670623336976884625419502872054649565309631680004952329456469661160423195498527743664963134482948111193686217884803082726909651507526569175292260128560108485098910184552942427238724089544290539033113067028418775423110991613674261678901718732436332822950502639211451925037250980717298700269409865247717910137837175791461544806892088072701380836684160780056556150293031048297383398814921377189430791508805553210443766404254928122276884884458960399203095320800037907153564249476006015643606314977481532685805042854351848163465873299002771302529285384478645453821904179123227084568078516293121335124527115181937050201776405994408895178027298045566168934525089754548139136495423643332996503055557536416553303297851092708174824391297732402350975879459961202021154818693342673033677148501570544343194365245996745746254286252424962352310127191305697297280776992670204301855060235414426190067991379881699724189237647101565527783405272197433767065859272098493145312609861443053518284160154197315339527682539499743916262671771208232310553806953254887330509132993027323827845781505062992135307731533124584137582350197374442050159799153958517840167121859375478048104013579477610172868398473598056534900379193529881281431871914855142269684868929527177214329203597290063295932200157325706157940859736169820216477581233029881015356535589362623802184249113969448298919433495147372809299349974039256338421727895584013736326660068214703918674091743313606421618235408809782163973201991122540005668366186417852023311829496897797518892956722127164741776570661594746756084691265545360999233204962172905403076919076550512810851031219742029278680035068761225548719167428295960967359704447031783389634234949548783299852341060220681230004070797594401321299817830143670273521850225471113155829622314949470975449732786281831645778298930400964589716142694081065051263422343125154054183361136900208558012584910818760071918515850947884000970966566809001724237822389034260376133738862845467882871485210383202368491426189683239877670132332933792490386476481667565729930773082936815620379955702161237160598202143234124159630801261383566444949487939175867127376335453133591334032430571155559972432447942554483741527496765675564197589567350224683097336637921702640896098127151214609005907138882332964302119088498530427920250785217406976309990032413963029670928684078179326291749939331658014769904673825231564025368430521901874679723826562641993828486991348324907552191896434903956634919526276679988536767700214042002086755181646979604970155246778859241129928005581104404684150666454155580973895195605156064841874212586862898470673438049057857247419799536352459478912633546891578666626347131063344646930796406189608570261012999369819141902349238456509029465143047327848158569143337001304639265437066885354618422821648161855155648293280428701930472720308020319870925202129837868000167734163426848161794978679651971699448784415202222874999692297476094355681165308929870060062649005537904707238246930937406016523545225484466811895933055603499550944310625260382453797115738230284853412945400231571068268612700582114508501270513285417053619753626164124108669973452665792701020704246477722471875289947155316043689989917479571379910619058389285821455338086236953184532183944647223965806190003366192112675334646926670094309143657716314211539533229790814817139632491921902932241234489234711595033571517624682275722157344354948311037731941770860235229057103590255971139216820037688545544721225044870718136578781970459978718528557755928149929907640477519273635604450405778833943239169181079649453048489279047089395473211610415331674172658675517782021940665327580463219850060584311978247652230939483205840135666809706957855130030240296233538761683303746766601399475681702579444651131559535734724721613655803411540108719480676563645615002220076265466461249480281492018520845387107241857239427711970656731646044331196960029350207404231385434967756322799605227384055775259608691446223785766298667014918692876692798138348596531248533852064331247600036748635407852850769036836273927490245822842987813478863072141673107948471502599116723298847752363879263939814696587951900623081466869258715783989797016669264899914134827838833746553657227658423351928647364450673090873333076723941757505793464095941375776114097913598673878602081503904403509433079128933288957181893007652983900870789520075479436372086420092592026043479068509428632682410640680745796959518243873949869602235211874129470788170812374581296050768563526862452798194726786805648028133304119821331331221691208014775183126657625616315922782275988827184367149889930848070890185300603926012250706047567383547132403917252995933936836726337631681779397517575138031278971469867948466363195122341555825887768913425023143517647450272546712456832974106953470613760149577340421724058690640468382145729100987932787944641290784046476215288639187389517048012216655229482778045088851149676766283928140034257258653751060030325959150042706347261662693993870266075381707565521928412377995842289906282394912198310289636220674423050252016569109224853196372709381038346641095106058164340296061276794938151065711929203827276155171194151099528334216459956664816702853388409973398482095441189441031972364311619513436092064024975888376253613480667253397647142557308285662233893348800086306286538040959961930633858362792343139813097343033345804717838849703369072495426664337831984175295831415819572353906474239909935486599353677958195675534798459002814858136273123477866920980471403811079640115940892574757079849647114232797266850750005361854021406900397942763449682078780584681231258264726459365195499967831461812306857482980936470689597313806686611408042564241554494294413264121276506830483973808878255094227610649412785161298071892240345940323756141475873010280179452560707168944968310054867619698280775784808114766364558052609960318419330676997063452507648852212664552173169011775448343041511374404912446486950680663809045118611489977938005035712731985365269815609620276218431367946612516286850418675262142989557756517905742374353991127270239234536556048068200505995326207929146664637199751539979223976986446256254027458108189043554257078619428581303348687553446688151254103903502219303018327333335235470471005123579874013074284618007642614846579552528500570206339369685363891315135086326098467030191261858969102762527893824651692251786353061879108255037897796620363256261330697571301605976867912202974252552064647098622002451964377030436231016047515327730976911629803054755130037890743470317028775631442081715757468515075774408569112411705585537915270531995936090823305135229656164514357418009795574962269107864669109385374899621242214381509505639975962207797382292116611556165397944382146942172392330384196008653916703918700620628618354578709137708732203267071730887155363507137096368572334621854034647882140575753977763158576904412601290113364545041553603381112338926497728810855202956431336755671699671310774761860554398372615716540887801937868480370634354901804100385409653140976973106306917135114091525528198173413715091296532704806376980600925466227499100081841749495166721338364983057748925835690909436084984703678338297952143248755023297758312834206591415837817795398897358402901309448081733198575350538828063525389278996336108692394506081542641059467743469113198855461640826104352733467336337353447353314011313507669790847344539689401548937012124590599911976902556131530056920729722594375552985502846436941107941613734300860664139084194316304826865361437092719469948015468495105834164420121205287860934117811429089140350719208668783610009596473145992678250828891222291219545243428837418074747639487640926062453624335184566057377972464860256557882423247271889107711814349836442003946656083887451234071297758467774870482759270032771670060095463888287325107593109761277298547806114962151160269073091347491656410877740612875769467514593986145244983733806771632351473474935755876805814103323777907153941102930381533745515392272784328422344132635653243840760213170248044300398959466413898686983656664659521450061782986809307071043375197300630443171987077599326026337205621455893886092761333366356210282381528723621994769268303116158031146255482363460548307266217521649723601501785758122935728444542428494741175118171988202179215263935636000382004408355726995063890141880804686359626391655634600180960980307466940167384447323623932090569356789912597790655596628137225237185036947522344015351362881848951204430419805003013874439829193140348815961072394464781641333219301391072692296228278171660151978609660730662443521847257189002153353608076400188979322698063399574078670060853052745555155147001928049953365065853782914321345035444709755503988584892062179797160547299122711848143437190373061624440070425402830207596631256530234551065098958762720152418554221029976994628656584432489119181869803680026787488742997892694291325730241154634059227259617573663542816459475514838993797757979863778556887118129505596115061827526077827267121808273937714092710525471086437763445012232016808207857293805432650350080233709372011323882628613717595662269927914164014853922391148114996765620069118604783814580723262997793533171360984142654475171715230353141005420801164045002987692831315259079563121933633603960468703641104443954635462152291065756657843486821535140551835625834239954492805419754926225939483221232751752561839749993729518769309624724630125450068194164173029961606080969873227010789836889996030813137421482698137854518507046126924588088684586782856050999908719675997576186635102294848667665805432396658976962410001488358118376264185365686922056523860973923640673309118312083348605944440317262449094400340443993292243117466798800056076515810327494404520756750288256005966988198034294966056564193674914731416196201993094325442437931403690334376721148331527231128127436203005337643779124266199640872681826612523364643998716214529416414170545211796936831186108419214016114630202628403688718500952910117974459405573458004965045001040714715982277238906243033406065873349209430277964658013627706487720249774334558798850430529219077877224278796370515579489765142269135432570826699287438977566256460128674905270634376780614536461007801308262853769477850732518675134038306968205767658109772451845363507184251129145081732625873590868313645110005007574135246589837567007076455867910702941215059307119936682048708194682347387263237597546838172804175808674101125522200430334463492121415263879257894499105520873015000885636530177503632179029333040701570470360738606421337890080950740374754147235408165969787898663316798801004379423308927933923783354597968838983955821204670730264277863487736436565060109864274859324437111773305304326445888945855372415271302586142943881600413092402370288826121662774181681819257004106434006751373179355055101266200630334593563851198380006801815359841606752780793796765922537898241664382648959239904346933278457723754554255049407550697868921183833601035858805550963321136440676276073363509513503206032263962315026179855746613182566983576407981068078120697611825554168122169750358512367953116633898012380872769387327051844810177493948065822807340428703485481769565034242360190854896375518768044019624371034813841079905820595942214284190237425098274856961327841790402546519098966034625625452047326895183904191531261447471558304841674396465729152882119334621725439659456041014287400568780505414954894695132697397397030354590135868389990129407637004777900917398901177798900749343142525580021732803671926409337591780430814340874888528133127669256565375905009435601409211512796329609546757343842205139913284775154883832940140916853932397055137009176415557992928276875628081008291666196901352857250082354487792512880636117844256504266888585845588834977262190404668378551114404143516322643187899476731635937627842013678440599506533065553496910850159239204466762248121830898015212724398098613709805091145250751740419713114074536831497482228296414204536751081845942705019618187425293138606563945417203854969320796517029631279477643857238459594923006066391121424018675756219559362319819789518250059880053943143206892330779825771901215824711766752485633265627224687992717296177006291319198718155869705355179675900825386076337657608189594175737984632191843022294232689034812534419110103112612781799027880288669365880809396772583067329224749859586433528028641259160285573974167431541452547007911666767252691593679673291757009746353439554758328887980966547122792169949181731055592341200507395395390694442219694420178988979256659222209840074705930815950283313578539668842935547956745787208940863588722213133368320584019485854732474035078000678715323443426622631532258589124649368664191418045491553666769233187991095221818015891738217122806218660937579745443783335573469123870279390582003745789113212976270061514815166409816568960484671132163051506805836478517754608759432482815280338669873105403261993949165184706717040130505282433224081094965752041540653972433529700151235746833247065809391972812075696325733483910979302989415185279848720394267410138651268086597617705236027545816716820895234190933950043752619523047970762119031920948661890875975402471844658069439752652353522830369875435852872963781089820911041772163950435304252638944287252388271640139177300363726382970915130500357943620068156903797139859014312079277808429513634287817266577281239777029148289406717782819260040699156303942760540525964959523786040501051399759028653097376467195400241552794951868951201361716010596784084766280978812222145284498890701323745528131254054305585211749205314624102013768996166089735373721923856272325379074852143095231534538550829227464841796822496755051338745835501709062429937867439967620683505813126970895340085753976864341184622530198035610633337551061851912272155164445235747926894215917980601910923629205545032108199830714731764530296946794633942847721892784577376923128209669137986152342282707792732206569900004133078227536541573339288855858472192439346782624761820274332378591016892762592228520534982070274264639339128135861168312025938231583574376018976365478259438811933689683920128933929650589215055403852026096179646450553446607744968236083453710589485213549678532654868097034772086384928872091364489011353794285031901784274931659984370017411818712068370965298956111715626674654189627578936361309384240689447281461556628363585759606037765004966586106833564333251641038562283452412691943140634660110781097333314424260156655836890083627483537487743413940157636269537208009248879954939638916284633563081634285424943310219019571093169681153286498143237487232157349061165294025362557091658699705189880089004537444104295645712792595989593477816422297852950019117407781235946334918599479362422600066913372848347228058384986282975543112080021605050693080692875342867581320208952964710491776165416723406646489456528072044345390040218988887631411652858708325905480274816485637179207003479408480343522238378373855627392811216702352433577235360706135278956913256338305137859281747084579476919372167271767804730588444646428426037600194088421074710497032622308016765381008261238590334661118885406755037098904962161787265860473533292498354003687414074874001344851915077101113858165122921186233619089152262994569528104693567093721525917041426710433620703058494307680021562287393113968094844116008959490709470133256624809155059539153016348462989323175282179112097485155581025249006300766571840615531220411101181589529554641428038903813146035779734067142565344729917741112117012709162778690294790379933942328505188573221849196478701163849611836076834544014990865811133821769609790218189574698058378375174293551819600654757759914791686900556008833876099029280798785440917720299598798352306596894725680740906172168674185558611715774920702735403648149098976958289372742485457819321356677494890136040414841886461980374419984640330513665002317648985615923642337010965542421777556855079097032071057498761908953593140686763658172090539967800514592144821242940617923430586428160660984608741208336218419843996690704150422624014264906658537461303022857718696074267472668905315253829781270572905810380148586209109525295423541490316278368807842678835754088247788270062557961922437683962987557784850634210684770358145473470142960565250191620163323723599405208278074336855472925833160626698342934259088185200218485395730005544866773427176436554658232625749504285932915978291597226120018741832197090097281405136418451512360588656306101620074513328470086035200739215962014648076180719929820659642960818200034370083085915391064746279846653944443569385297589812505441382853865485119447036589300745717574091847591357646971649196540106399811058689566529584375836435263707002015919589098284008535645213512150753598659112689674939355159222941978191969355944782765157238908450305699342735434449764980275960418985700659325740773269693892857600035165049533805577355880736615404653256016876087863228700916837661310648661739092229593292925247339159854583839912696561382180372688936689043404600916945234410099276063743398796388634860119796427363889700620114143821095988217149620808893987166328173305134597535051268137593827839023169864749785776407963194990131011401290242430053258453868705308716377829677375056448026022214756856321026637599472594231197025872702719713905700371457634586351034081542197587641868480350911780408551544108936047717960229755452166002263726388794556232014047098971500615747971697454539793413162437973553978867454562559731198621848902786564797175075206879713847288207673736896063940325728784774070002645107654035705066278583327319811887310193707688309787642232197329281183930449048291070651713748623278607983308086922698335458274992054063788910630987075017210547477338331200272640465045391487280466498239906412505918589872199177379103468000466975749973458554442839413994483847558300367666487494216544524252446057124122196390104008033428476716227690765768057332094392401675335086122921101837362137549905044412382401392877635323700858619051661508014542223098487084523712149357489891490105294091681855818901877473657233145619712892638511820208404771404291861075054282208523196819635971876048682013358765369536024646524851035098886326718269414673478540648777015803404467826866459580827116679529922215725899594903081632475422117693198806289617346585888064702989691725619852011368394212546318866140779279762269734927941706312530559214339060770618397099261762986272279896438877357552808553728744429280665731326705937031820563812194102482986275785684454255323500367668113501289742959348325981080866400157364680714079209329975399867118682861063852636832349131186967647087311614507252450546870411897310748699329610900705298097854947303785007797981102822583450704528688351429886681036233299365864494958523293565676034385689842920962245084014404063797148811711596158951793206200453210491713047878836351574554586940338562945830190094717482972536823654451725782550170829589324721123941654255552254506560954810308041724354007136308500288201583134596244398710705759847260911905122043105741837991840131462753661178903691152965870678290600419359673218637687070344776579217889802719111008303101845248983686038672072271067442850906470659929865274991237921602043777674661059910494842097658579790055892369497655386248552184005608106768717565642915439893665202449421311753819679096887377960339900106567074795464354654865779376277102559705244568574149245244301261952426756860054316165098747942339709936205189014747524897892494541436010982563790325786047762190354880607447391405759354767732031844160522597582955861726901089447125473561753150549273276121185916689278388845144892444556147162309018285111872501890234858737076968807288541812804466883874359875028571789688450137822226296830690287005208937031930444870601904751405557682357929156056441323844033082573066015694995480761942444738216087467843035229146237062846946012591165629326684477314056285319865503982642930706240361733882143676115601702601928264638172011775202724964310408938631647638522576900695062644563199968409407306093859451966915534067041326552152592725678562782947438473243792958899671816982090232571801098506281131951345776610540806716641292447859912836854698375808241558143211034906123084713559434058816418787588667676812654667028582377411307514628767553674688648820446809590915355349101996678998559196999322078070706697660787453576562846166374644640904750072207496088881172239944247109894935114354034885320911994784580652683885601279829127996934346954211277172218911821627287932142713162647475275502770571529867840149604591692691444863277372217079825053667051098505253961698193632422460162166863311298637357191175365035438587756793729156638587193609989282891631632348309710191364393892160787225859751578340351530319092409685408135400625610641069744840679851149895585825492129923263047863532751293030542334942844828215968277164325932652717458131449888708344970798040193472191364489764816988953629142002670974974151383781981543380886163259296586179255016237634382534918040409138343630118116981281374735287513278963269213197559575965795841944039103459501442167033557978083365412894512566377168524897446674304582715397071615746683143411526252491490990259516225369850043999522891230202341019929333873326829513907999746496958279076530125713639871472056640243901162813418501852226165510595583994772505292645483250717034028349554109580370628290429040291587414551178912123812623960086062779517339096545148653796191733825090771805411514142580028904480873248048600886359709886844973987095921485835353852557179637822867968644560856279163823672335774893512383972133753178261187691754157662976876120814610229709274234153911638821552771379222792420078404171273857113383467922521908380382455282342888195896791056921714453809126903858250942396364224833097208591973802937225644562853966441090853008552002544397891219080338701064269188386980538363066839801818383733533718733070605925912454845160097634069758739084159012491965238934282388328552130212412993833355921938636293434065597666654976672487456195265866801038181447414894789878622432361312315875185988794951075972196695051057606408711869497050271300833079044817156130528915954407136237265062072062202930517413820770623612402714707947665204729102063224902089479632433988041160046257414797166008680929716316690756128016620618704482480658589888905613829358160882350496666567044597186730965070757373543670587714908398873826536481633981611897346303133714275721789932367728070084399232842491261198408918609460898359905883532233597479799042593210422799351841217884069165092181916083022989629238292553105204576351755267391558161729333813110499317813882050333595746202058441223693860492648998040012249180095664944090410407647013155590874456527308610584805758306748729759063594782039013151700112079737436746044937500126975482415177788153253820574375951348418373816977920945955650163656886835598990160154182640066457222144231085505881903082247149830329315073674512485101870573018160725303283292242864941301883268551878861495811786364072407523181721312135022880659917827618103906322372735193077823029173132831171056499869595718441014481855391075554263492405437251591032400026595389154996138769200231668923466191712961355956425580752987787381387454342318506296634831345376246513903720774162026793563479488921484216748001415589961537585287310671537979764289435885739763239503405697470384561178068692171205990792172867803100018631058769140895491486427627386608688118597718524659266292834514325352100430909820482896718832900481090936754630982975025686747931233179981071864215674560052799370629113792363398798487622489339019767412605591742656978106338686228127129879984135874999245388024597835931525976717646507688340929452136951534202313405203548626196031021896505539223124644166524510574235947918278794055315016386045303556416421645339314820952113616089228601452596545411129604752775112636320342887643917591602337272113748882326417751937416092232100225596489802448454744240803740886684927859985901844814420520510743219034542962254702786092368475667781934288573145916564789696976021262869238636798784230908296281863815161753886828180679570304297054391392611038666204022074415356350585720234277028604280875317537760382437232278726966946413468218160003546736398585105950333360832586105653086140402933220398506294203685163639645733048274308004492166903125275814107240637831933512912296296471699161435133109023641893535955148056703769000877089341422273721698981056666226942614160378290610511295958455151616604547407044134257260152267257031467575584660385030022491206511908772184269720654698917906838594014607247601544297490153497993898436735875409995920843878620773817178577124842998703371160337124043632143749020955993158619158708789806614625759041271136637705540246332825245701926792980719114434941226762128649124458937430122934336754790509106099838283402714600884873380574674248311627315327294502477970256603707844810673919781841420222268844246165485977117856806031058566113968388020508771203035142360995108122909097919587380303751856283216879603037481192337428881503718511371711089774253435583753295800750965283871183819877828631526732874760094473233414779596786799421236747159518040594911151932543999861029184670014871709966249463524727811381559373697818920602261121496773147319463801474441192329848275160271023123461278507868764464531738070207324872785485259369488443684217249474324408828049917205986155601761246898066195314684740090452124905645845607843490477612659270706012709391703027419367766124007284877571074277623018330081371728253753989837899645228333571655789219728931427010706038061261471413401524765565112593545180779934047100390174525433025459583582921123232851525638584500711406090900260220680606162702274782333603889694081923160479105895658885890497097147350810537240961168777404930333075957328696272799462160390668524524886697757786087223689313622481223088431205763984262839281966618039297035985661543302326449634389688828345397407975840283775824045515856031811437811865832173993518501306291219470244173436260821323385256291632105774042307373672747675591009655997627718466066640975167778439401237663034046026124445574773574311140161201435418052983213300998243728967944701134909372021520680747232059885653746109112153466418089131873617796364645928587067961930482747744121409124719356312748343337681104253595249454956928652418627963763455811055346087713436319664661223653808015993445857139270432224673554279981895619722451749805924824218719192616425512652334608633957656463101180376322616118365656987342170184408895382897285910106813665472678932525308139557673970798981988190809595136297604083324858766147062721614031259793048252710069773917706996730530264672228727212486986924229078487991969022872031585081360696761302336150467114870599228065964766997605850971740214114991831853820655928631267903873679230264770442454429813443249924926681008159109985708696834660638514233894369094246452820720283595620210907704825864216220810972342741860988515336639112553609473814990157897311534677418219613705797833932823540831592141158220051995247486133517843821156153921967203548064907392038537876739934700086895474935137671078116764994026443533016680196706295331581508968004887394599023522252778280006605360444436408574876330656391254723222251971069165313146390108910670139242147987026110545977285705402877479939225823119185049274525213732926217832808118199663515112013409053813979875980579776798759163821028625571302244357226874200978941717772190253023625686143925093185346885983569348217881142313145364925190174667213200316055660812776947643723742190597689136215004492945994788356100400194880853458509045048491141205244638980472940020656633897939189705218140537620091901239370848737763252180378208663581253987468259891195713962199052551801906150542831301422966669313136480296225939989188239385615688658954658445422579592060563491336362870314087839630417456868955265542584712787204119632757023933715892280762528078864774911586973778807407773572861134529357343820084076872048476664025688471828048385330317586221561024129225652459141843534655721375973617176366026081868864064896307696265264572589879530365208322399484824746798837613870956666209008905933063884986247205844109109708053755745654797001429683843562066544949977494144810152652282276274271848671436254759123917287850202761082418660194932959057104007916141497996496347004158807908449368468025076813209910993295020880743166242307473222011304567020263459753543367903611923949981249756920172002214583425638682324190606582396912353502026149313062771298880037816697286199692479034251852404629444398167390736972352788899967476895747522893520430922396903647043185114083266382122451238717483264508255769522854797595913954238417226705259379941423697089303927462067587864109625710012688330147283291498767021615276765467737522155984985340763673567327368497134572470687900086916411944225327387629529251018151257457903257059145670679754863133968816405257761821223410833164332697747459080029286484394003391378944783145140605024938848696668994005107147505230050639014209655435446181527876453533744184945091537471198865430230567683823076294069409964708276881889483148461147202969414154398000429034443528639810508577441862302261559349885506622362601405350514001856061959216333975114660800472425416278823564171296285253259902908035745997049567808830977876306931433302628862074111958998128364855534026976213332499217809840340851233055597944451449586053457243283124369877469096361668260743142148653902214242729266443151774731789940680904932246660303557083856921474461065662460336188169858995071257664584976459266952110005790339790245904081089178957778535774381834412916686812224486890409390361915428152665543459234964869582028314748079135308617848740988998651423830704120210885838264650326547683030313184622258837003343129917188481212248942248548689919360014913203713118964407538222512637300613497482774236042781592209790839125432289871605336390563397521369289549081775287780164843586234612070340010353816327753062053823128526257490223808203790469229311078902055606485683167937462913665160524727322979549406244697806400272987844564195110593426729401834395767168008455060668407852971378173750357667604651494996597306723565215322424710248033842513623887769788702195673236311160114810522670736315650622891049227751514144812612966543603314367747631944481460278278185356903241550817734059142794540806289345801926124020790212610233233250308939244568062815259844907127787316112138161786036055896329912921112953194249344043000852533097542068975678245600758662947654870698672697724474943864163115151114032914902562641465529267502910942220559374408596743139608249909191003319232607714095928669637868733499668647274130242933846352389996240861034909088525837199906544753746503399421634133660922402160783001726401830082790915214932815921914580720804558043047147667300275974369004230583526062309963235455554957593620211047082489106235311457512824839533451819812572885185298165021866774731099612063765558786217445729123918631075514512625885454676836927249818110530638826989818746844106731004701803608786454077996796285328766821206962593292536597155109227543025769705413848358100102982370970088301770336918684795104276945772773010201726495085018158674275252717365797662313142009242151760852163451710459958212829439076119041940981756822640897137804037469912777462234234304983887974805955016177469870004491972927947279877764719908947533183029845127213085604067894931819021457546806495805781093608595690862050047003878776183058024206369824388625291978748980009152089563231329826031801511682079894315857581954999200298880546283335712647339776503419591860424854193660393691419047623907797516713427583953405949712196610458045926225627693134376023632035189560781305075027936223931866344330000098568532334931286186543251453544331255243988514164148827925320781549912563027237854691138217056063473163674517072916354698262429857061920106307102602160123541373231999257019031578886073367205986071824741875606470926201570848130149227398035024847034412013382806860457259554168428446136993915328574071869408318420886578242918346879021819330888301161223115863990939568843655309237470942822347464668229345566076932089109107769795813991033752672129319723613859770445077923292257375057850031994195331903307548776656309299619133017476758992632638317631917158819771340906653128348608794786961120998293627222466031965182406620805012169943838848838905185503375102302508013393702060663858196379588289200733991297390479366368261504093620271044740874030998416736703025144464415314955504768214848129411656878943272164369879188526329515210407582935504209248724993682949295373566837971102375866957439310088712861259398726685778893772970158287172051069846797043260447007428364675631828106586838007649284016390312819655686216914064830304481936264188759984375497415539857624860235754625879410582215013428630301893813855828028256468535551498202791367194430025206833934094292176097846032431192083041407051543691532402184919029159994745641318514916614044214610442225858600939266749595552342947715006346542906771506007380873297402025575569749546125140353240257507068388808261572145575106036976523789332209452185052026222585956889267121019397257003213709811548223381362652874401156254877793568134182146065766407538164786883003193071637714557655817371823665594793230793948202943293569317753769999043126133360544267989179525015824694598488168267233966614031745918699580246199227198671226829941062831205748029425539561514824755805575809228294651676438289360399262414851443127599817329054994721917135927971192232289378655121056022773921190591770166246375877857338547276022232335379040471815520068334555563745500192811084885956493110624837684769793282510525389538080152320617249035259699774093399082220423978194867144254763871260980761704603478725298582657232466283107749452374906972429111321939776627003831189434957449388844830507764915021342287182703094308596292388169852280420876712487301873735608082941581662508772865452943598003711261119319092039114893658339528778961544080128154483264286517348249899805318642086649098078385857892487052390623992602343822349817785176459135449577705311460476662115776097676014021500148694484937800052348681595793975598719343312757779115343821593304223893297295882865969513990500400736433195513307221333507024252954466713451414132495047681314127780871445509029442383075821655917306897523150732537160661317052454250197157685029516170666475553293976433929517908879188712643690080200429463067394140075079611840150904561595500683119202265765439211465094141898104493271449423294679441743224978937088462680787600286373110837116336254825060808494048140684621386187739273842526365189456918434644047363388268438114975150928857774492460899860197274514651327611615421715418576263709469337752113829084271255918449055254845395805245682268115901409386529057705386346008630436958502442517876519648782664142031943808518370232476097193728581455843004670922188464020487413028333240875882332306508512703119273662207027942442844987043342204961952784051496200216908854349817509565883406863515056901880165283213342134678550543360071109170774920143852960922918902635950385026789465441069294600826955695255583789029039182193697140359158890859675105458864008151643709742808115482509031570348238708305719745097525433829469568784410241648033154063314269793948598862320202886817155123350372975018567299931998499264150906086274345331974650636047988152078620678581535763382906509204205178822855863354618920749875147760534727658786700975818957179039820457062179482812573399882526408317686570245488710563992149852376776697244124731655212741305436917597942708038090970716107150467951186279413236114064514602197680882451786565976418988483285535685094863327208805446921237723062886057495298758057279784075852640876781805199426605497205420266876762651323841915001588702428228816163538208946207042449234442051361350782484480908147397609006091736147395137098828162796463384248853705600360221405442829208226330725074113797732018967658528661062110015064239966771071024715643224441455404445121497170273414787703861823798334539311570077913897887605209567955794834931517255204824352744204350815115725784421188931451097946363924126396814056798408396898089158760469827043602655890224182737181423996478213073769398964438758702736197034889658712807706436363651044321782338994242782397914802928478091680994920973941924912552345162719088673333972483587662814633780402876412747100611231049518077276159869177799232673977585401314514869643140768224771660045849960622983644417752360271130667224893864854319713594351523011974294103454572856881283348084796914528780470385532994683343781344979894505516670031012457460818256036175012386896682045502607655022227683579863476903834045565324127463202212932171932983811131053707666219373726701188429898984141260831846785186406069868041438350424489849239140856065066112576523593451377354484124503566963851285993630743831167343533170888324357102107782836531942756299300861896274179550734603194712623153963687299292412687878838348843121371502010663289265800615490443211962665927303668130140289797407499847065667717743241561468109543246801957184087897969428201817520380463436413251825491510736072530708956581638371700319757590691412695318942609498617176406937640826045641465472741672329078984246464568940308962455747718190186866322821631573683698137824470830983509220069174929418149058448755778391603066607182984694891923308947236883060899708770452017622335301310209556588158746095716422092234876257715692636455739175118659685405968931787209060434346659223289394187032669259685801117264434077137681378777335887505167086436049767878510622351763040654712409719277420911319382270217368532989497851211293609833900828947415607345046196627185970360060689781569731104968583292197513643908027250464805099797751426940588587890849894405570074880521591234850456582755112454701475820316828069418161444673852975625557854542794591960344466662638226645626511167072865369911045527670527046336896503625782905296551740917080111075615157546804058286650105590642139792882657270828218323654414858134508430009279828386048193976876999657161082719849538691346692229387935058394930890872608269911251933768732972310824596620088321182605122746166699849124362887198122829996779940370072974662034686550215320092861536870457306204433124875917227948992669791497421196251385288996088900706485164780855708264969104261862967628462150815966347078746796118310165762237311594219876252916474835822805689169159652047561654814740161692033232916987558449534048161333597879621322983830820854496615260828175890778932808140238607333052375452477643786246089577021988408058117257366758984495500915527051266404571047461641321049956704886072548647052841067773343018019640136421397867475742891829603490246959310922752722134606259526403669829099532853369583674205961327344296663569270074694454876566416584148216381152004791715771330642842619438577104104696951081783871291980562359320449403805416469795020959949763229546869061133175990528913657236984151494971498091200615712340045816584736408428965054019801113545992094762255945398505012868197121033764938129756477486870699895452817989769179736315385895601716938426016603481243928293322064070965112319405980132903975467945146037709732142586752552257202236565369916974251551123114969377825582821543343611305938594597589552879985989549365633731414459632798313088058011721103867763571605773983728631362624318111133073374982858244704972380318705096710440300157432681448716286182542122240263769206651536608786158332029266204502726468108503962442054370519173539069553149116462992254700436488841973607436141728672168978097987055949694716231861110759280291747709093593320665209402648993553131681515473570350955114388991966349570920711553713913140454526144171722255597295461432413970756011650833763482382848590036488838406584986888385615020581129581624945128756675358508315659919781831600772198376218093829327450097036731455092496450388839407908702674136331881189018999327610890763373810831981744763007365474506251587459157508599168456470801825623582286967093300578789764089655471987366121393321253040565596915984668138933292830502867404977351781186340328050289062463172002326183490384722346819371167388940670634385384469524163950298247040932657184332161975354011921125983312086022383183886699326560791181542093559272380339570677772959361001152193496493027251211914788840170373022886867981983406928016887267117378938289891487381763093367789425306712978798014895765886601306621191795716337914583984797422257402264371198344627841395636400888097853963217972981790770273051453640865947268323954907679958718451540485663376085961875843138395155555031591032661263755605929732399789971197307621253906068043218315436333550165325004534869892989710779747294070848335695118942352797178506717950552277484194293609530663541223836109484142219960775354945302263912799640820598459486623270362320237504698325657015503904858724780910306489726941860345720674537845344919744119680079476516552684528393319765778581100770042996516053888819155722719336901410794873463197387472262380851125463312421263374425346849450909792468917461975151254900144463787293706161054678546320594797197681439524634913653194468730621404491848969876303512833033310960297539248902009921417947657623119802683201564427655751177380508553297561666040391563613862226382846600239895349089226379588508691875311376223578291461728140262675554890989175202857662370474522229338837541034766649644868976938944388290280416745846005248506271933579052338919435416384938334674475217664379208184184424343115340993146530375167329751718308419070326339395652463277049449954623514652024497808659095385618215051481273736909162513065468991915263489189904225632563509293404959163981564175842255442178172586561538826919646937929224973970783107229389288989142846518766553881388289328231275463416195125851457315695133718233736266021388465860655719473406036198630730731272293300553705349849609424345038107848378986901497003320374403868548229347759410343594467081219343548802702716298262468326371266911636905935674216241316993072900751612735519312712276007819823173409420409145951799661338923256728322669244849837722882961493408095398133468385052469067802406614759963342399112715064622865303318600994579472564251802700134294494949886391186672638465479802086704140093969523092209989478906132835552295362000597413185882086676030137477964088284176792687409248044065853479383102535237525337580795342427146853451133534362969344649407278100843438257223397149380106027368903262899920515569188657821677685846098350535473777618997249615239510118397332332807168980529900450158650811658623882184151988315107988461131015880945908778403234713806850468167621749412179329777791378997100534854946370989327772598660415789944190957627482113377243541955112711767176231495313785852508398576205189142846912124706702556083915187067600275427423472282431123543733759338065704075102965114534224828351200877929914701478765434094323611712277178847869862211970738743995696226092852937061072985306202943119178480009199832020736556395693733506570734346948511992582858238639872207174329785953705635303180197641876236488683810644383508221160650603748323818623428132539782234495952674827544727182762268856335335319948267897867440816491826962020372601951728245111327568520760866791584720419371540134007632086754037241739428940422838930525560282031683803912679693356450480981388151900402947997380757159636465370123080216883037842718568524538757278921989364976220829539974315641528557812983858786947239545757998093845888074620644597662546637440077893385065883794428015071712617494396081203089658294415677501173843442128310617793352604158614045091971636594288147669742215091318617647508468273799163956959539474711855615782546134580998977070563248916912383892683747720982454121620239260989821206868975990550022862120972504607456973234658903846771297326196229243032100427148667983301976462220164032335896669384598825078721442975980913370902378236388053021037273582007923326758859703561939826052743036454779526719083413255667929510244196265111277408184542400173409409338850759520154934364223569995089388896710339042265571549806321245792959076851731966741436626484238958049992940293185641785391824789860866037585240774279475086670154150997919396969678856020565165933102712894834496339597255011351981920074299314921640224494230110079247834310057244398080291063354234601085196366297221151276172952072618492243638445817184337587666912421056427451537797751701695209237762440206019068895247014948653566944522432716063168607059279047875576915610953379054029758636273130225219921930017087004693189163250422867056869464633994954466459208143952054332629210845556306050282810461150837544727397704253267821233943056916491977776977943475845370950920123228781081733764516660243784006353808957969711136989168312029230868330622613254527991015803427712200076472353761850435648457802905725984961320647786878552477552769810829946618640771737553103374516988800398873069144445971778102867257190189511029231474965017195369703675796984997563300683368708486009076829358466854271866686866403848699004689395830873348048595085092867531105675888073076849375131155861843899226502139575846760439547825644216923254389022222745730479988676599180792683299917955693552139145497649930818069805501509963409075500685590095170338530591133904315213068855793161039343314752785797295403843302419837133381917928091974842885109110688917804671445318198132492584270773028206570047433145413814358640605161845923493097038159221732805089738994113530302540014913180052107572746680697595203011825652730798118761195554437008339905284607374141930579191621489749109278819310196443508807527182050857495176475379177025837374024576795956120396682840165618830058954391271049011039665961884273787933598313434335509184513327893096053475064615636742241065034972658111633494767005129614276814652358627798447416717822060671511008115188401297241241099846931828472959058208020596200888148354241962030348432319414842254261110260923409695108246303238161197305243723145728825352116396176390337805219340141042993315369153156087752033947890161772023589469908865098408894098830606139847044183086893456494301506298677399445699606745130915047324009774246767636222578387625358464227752505484132343127660653788525770094011511280474347709308410563197527382004261043674112554623427548272061104047325076727064019275433321318931530071896641705587128680113855001336886991963048049429915684634966421563554630039266785557500056930606755226583164271783391053246081689629740476341476397150671208407201494995761493781317309120620747096518686113512059408544211801927013204075200764667738424203044544002725915520177502236213594281753863292772653430148505077127344170732526663609248415123933262684923827070309710151843613474690084288846329080468299281499458715940612218240949794062181448729177872991490501729407382221321463621876970633056302780536726885027787050389409989696593864485898939208059951288354122787186634400573049274958718698686988293688383263997577029094231012620471275849886927699513958620304334696399292709775121446719884934217275631618820747663416138246098121962082294554211265511783537658070198301791109536453042542770658875603194863641065538185254648859559418508312114311467299165785344217926162453894908586507393734480454344389763293826055251668801619736685946373727059632223886492965569631872195625790649493042263014425166444911018881733418743958734384155998989006383593852026924604222268269624212981245189153356933228906886872869686309115502435397992892164740609487467215313553630134121789186876878232065554428572857648808792597894650360884653668922200428884182850054453758241848307636732372569999662610329628355656501943651513132128887048001100581821590621069992752904847856336629602432176857022182258035163456080024627874579371392593157481193546758073701636315768317872934383592186171351705744288355657004221242121175487405565434151005262988435446986927706124706801455541938395139167675433329832766580199537898004238312313625746836403918690068008073842631573056182162237747203913726422255333617228393612771932968327690866256666574618419857188677141459098358904668827680118814892422862006476546816168681234802971421106678413932432872454079891605741509748369624382963786386014180751293547896795350862236763307785792135291112847966329403409699499323885387421902826699094996925789850314809366119075243430387109949850362273854705758331106974759074610365271050218485267234343581298433183752170015118500374957953539249301347541809677129270992679649855774298816516344354300210843798307427748764980851514770253328511527718034578542336161228747087650758925185181759763449070015287181980166997324031148969080880770158058139110801688475684071540432785087106316984406735692889329483835378006411788980716681145347794074198973580650688140578550964036843128806470573989056942325783949838538117785123269132316133030198814282086096594262258776903330293186128153122774756189781270136184537902349744954681169447779197026644179447669116072238919785539382602583941068964408312482610484143754537918878984901717581005307773799190600094447265555332662062554898344564184105959147066023828824503758069204946514012735643058678125971890538454159810410687820129829234369129615037130932992105651070804439237104550183387744213400806382030013229547175894565679096674887536992677250190926291883096598535841654526195799889854745226875112318979654354929998011113982260708901398978667235058523826510665343991826505770501236982086471982939411613245845578395668553094428472958101553653383678862110411913359951910405539443893147233427686587292325414580267633666508831730839905965199561193397937959163415639656943645506755891990864334271708408588105938977119128303741486040650340401936500933610430153593154241146522634109979420837314765386233066415496285586029164320393213479541989192455515086361318243248180614982264354433565274874491483959486985540138725012563273270112203696283158046965568586486530426978915243283552713699940594872804679243936074706923306925664738716896222275413466218543686944738138188048264110828424358658106992089077884128234185488129489732808606100987406835058413926977421147524409932023642073615416029707081496563089550345219128192988416635016653510349930648473409040272862577922844533457732351269442428922719566420055930685007103330350595773776844760526464146908902350433616642339018038695981710221137458138347508120581213832921250963559614170482297390026956149605813659010694866597900323893158929856822747071915622473647215739248884263471815472136636332320885523615334101156297485554848302800163728226715629780454762026979669019897567534415125182672127298104313267082666125718946632390087430303883328954232419926384168231523997776274174306448716291793394137498333303694553417549564071390351930389446003334052431543266582879086042682564176153893881652021332796844431479760519353126474077291422089704585505082582998759243393518203685912423073215747305301446380676437318435199385040526024574110529162446927216885321351602168479484055600525351897391644764707121832644497884862673052986282665262274011580193929815972925196836818816527627452886132960352285569599577572129781115473417293433942697068506061833747898997520737330925592433471036681461853727215307460025219676066544683971958297166657894136817276953393219123104164246994285203198700911333789296630740158762897248613425478695945631983576588944697754262950202455959965579892081185133136457003022238442173481129727803659457836975642583048838892837151549844225254974556248656766653211815368830174711898017770091038446369035389201194360225393010007825043768544801935704539398916073537214414259759465537365252292266565795969407363950476860814738844856446129170851924710003839719563119998221314097644359028655079929284824441244005873432880096238986429186537474523333528770852691858464197864090142206115494629982645496325900956861188850909966199679853441429761402102904209203171126544278167082550609891010964530667576562841439549219206257983765744054885342042180586170104090003629510353363178035377626032809409405766511279170391272737021805117860742249750163986597735919702136807470563081259944839134269364869027909853773483349452370441649158317036079781254661222547809489350484270740741835681730736049102796124938039201212138332448995809182403855086253891680589117486775609061868678320648383947595932208765899204437224434288777415291256168456735970876531319241049747042059975060721952440652635306764566887957980799322656376001013883103295301668104811878833562954768914935635953081379170494695908708785282318528853841347885914687811597347830858016104483799666971629208870253098757878674022323009671821831052390155336115930909248481399281491446477928018932241893357986367930986213494793619806027529685899161875156773704148718452528156976472041465050153252679734726112180192104421724832264379380547896846158733495559277506905873535277060736478424619534188496972162489867467899912309974547756409320290475923124200828071243471249906532904565381982809873043902427460640915149721228388252925068335768016752922313837369421011831909777809385095611083389158943036668947379712649267246763488922213515144280509971887061941202239367722148192075144076293737752350960946669637529749675158176512063042184498575525897388248732325254229356831267052736904568357140870881721203235731292490381047765569220211970845987634579854089123418235673582043845445891315763335411351270462451956567490825311128666041529911157227967183391428682795731461493356752366983198933275324982969632640964885868286376233212341577322497603671578890166494385117446219634634756189159851037468647893840602515692711548099538795904744654883067759778689457213481802919038456468176664994538720432688811696249830509461834076544845766078850397446939975648103484873169755599561355554839755855646156916131777231160408336708839773767280634410747189542489776561475735356389305054256356038971376683456820721293550715562133662518210135429226978565101341438602687237118147492991516900243662491248840814698973857109000127395968192633860081199619686236093685737085468939207205769328372697323985797496668209775434685041230225690675480276203309341352385073933949018597270392181703311655853261318814665956793062920069286804898060044022126794827013302454162892824446022991620433786626919208513067445313811999539714382549359773653268653432923094988750359199444092523299699041259351902713580887997517149415389058654678211199852294209337089850507028752381672562155016102157796943189651643812418304403977631066556323561888659776438601192293219748766281787478838190369774039162536974778729931250747934329464426006961149327091452240973783348031342151251607452733343353967645529387836411450128464096438412932793876276571711729192315805498392051586485337423431537682143404027589105058797873024226440317942419072165096675486005154870992060849919761855736463706022604249177897946361770752078594317774701532431397007031050267960423413407534549748844081451692683206784045371208273731150703996719962797622832708872639112472433753296506891860482377993607439304052658927309112597422764368423151550646588142708197628244615645000405222282115392518417817725692147895008977147480598570824201658376089787447943130564208995506365287825071667125785826922729291970085996025795922245074522897698773769598990329162200883963582229202934737338108072174997412775384487199539319910149105648592216097437616981826050728526417103757085562027518667885257419630206955391641651957874573359135614516543913269768992099239994135897569617786566538586994957003299059869141446903755280554602162446559568653709721866807926982559338649723579749352159693791330191046039729829701426585511135616754357456301260530804817811583092094907852971730258585292133882499242759465341774694224985401916923403753653180454105853618615798079576466405381251757086357157389720125705843170926404419316522336434957536416964212229017800727819526324914730146261227700842610203587192936501007773468609602932963551629127993864317544346450537922405200820611604109254541508107971618001732946550187011956801683817138843348585048622174089967979386556149122055098221408327504814390333510843275737899833496113771773234715374311647005947312095122240052071144644182169383178672965770371256293031860714021507504682494777158041931315036995073591399333560140738613401289819074961315298076391656203041671575787075050921370243768312647440012019826501423019031565132735016740615161615912383825799395441248865186724991949151183333492974472618161770753633352687248348439654792999162010445771153823660042734356352373603619391852931673157240557604737444103109163108053375715306641389977570497801558918455776520927714580974536890073175876781153429837374759535120255419479385735882657536192373567524183777877764382677094566336779108318890605664454659678105897492313047183506834335831133489672910822024071929615023667734492518445069375582613360620086432284930488962801416470592768496501244221062465185306381537529583591456077627897475569839769931040715014799485214555131022903222701583276446865293047132574319088643371834727812628985664989588190765481701806644726145345724175670163427715918638503071922938035696304276027207149172539610384194251038615219502513473706900860125903940364281497851651507393943644971093341707884455630669043991306776840892502046852296142951617752477309266609621025854494115752671775977847761740980749849196873601044160663350270055489743524577009240482942279064752701935818157801474230992417025506870605357071457589092941432092149079934419911776689641431097238701135234126254763069907640374465928989553573857479028067606301237156511262190608387395875384913852757523340783004946203045866828190599457365643147523571113212318793471678574553632048448627624736074943476435075675568177379868574832752904787928121948930961871413314757049640274257191507381451981457466234479538020173340444545230277546708066669097460643368986299789235378995276464097831758921638179760283134089891600478022941382147264428492381934201908943516425592060734280863098619200237536533862380695528391122821495549112645378672239562636790613043794035618018997686360302363057497661212158794127483776376879962304780280315609298824027435647525689030935140437757446604983605714515203651673699995197348194410658072304328552385706678073160497849453959861813258149845846571886503954213900608286434284412655389113033768099245957064712970129822268146398161037309096067336270952981258065303970331789166544875360211046983210123945198556117734596802146119227313358806079548230639501099757168499450080510260461120909049699328784252877180158110874285439680938499449498673068902916868248605443097942539963479499497780735288122188757650609542354566310500927872405395339391254426158641479465830219157542689127564885761356870785394564109980727807131121314896082359510892687088603109550262149324123787114156324582498634290354365267436429024109244650729619120622815072480944557240866174459881849855910599004654712983892028927190801877380228494573661968236574184951918515636318996742903590596359873177064135512775144012535740111031714821773921492462323747381610527696995593954269373968470683722238144294168830259162493072070514889989369469172930742540188151043808791021141969532169370378623336391229306725284060403731615422202497405855269798303205717839530661664697192474986348642685644520167034755750338361292167814863614326925917103632491340601101420988751402270645576675305461626332096261394206701642004898486116215523652655305638068727980741626688705529119233254673264555854055430876174870420956067163234696381635692962773170801205059953652622348249769385940161450244267658917777115193870104573211411077366214078012042562213637469339102115202991704260256950210515222068463875573172544909671430097219806248907256494970920684569998086964531306685436191175421866438068421513972977966569164468547147781504935237665657841559910726135824292110229835596423921692312696537372654082267947860288807744587960916562189035830838965792014872733863954391631446232820412674078172976918572779304101293048348500151740867720692438348963423058048153259008415545136447561597139562775790130863511437314427831477879187228085954639906862485554264325385268148559651115717436681050745526812255765158666268558898492398417068366962815875134455557676938190490919660031723273992584005476765916837648400694815148138853452731285078815730450945683468888881371152276373236033574851635495397747763117660905157107389104617206001348864698277991983943776464633101966020087984721251288170815200018045696561207469271877072763559686574944730138553266533912366890972969569430010259236698933472670411930767710954422137249426248265514660738085810255770290502252617489649936823510356620822742548647494444350782166596007972509629676798066156041905809506248442722027997772204415669285071048975290903069414861806631905583071768476644431169086649996894545204066751873071563917044835379621497923539513006998768856731962055742989179935872830381063383398527649367853343932044615658890295286262522065096482486498555611708722732174505044740971558369170823541782625810027553899263555543332053124258654596252959967842288393752960929245053124475756390961984524035382177490194888678417639012599346817849125417602137122874448212708356419959413898604302886536294207048125785722823346654321106909906764244647302730561280031313341984746252267254810426963354386893843158799512127864125362182839926105242569706212781736736366175236851683204775209735073252638336686309874296300990090679205661398584012614764303663960337027158818894834781237093761766908625348174978931577518092586492120327564854244108423871027081082443930892208556975192846396397026734369017274115845501226260814674841040326094096248606635280111997601815743245140795554841284777175778356211863655977210168887996646609226663791717723644074706746317058150064034207871825304758312619621397822208034221773423708043866317409624061889949893609285266985668980669892393444420716205060923150769566461525945437393319842538056883606870022114404387910342706897882044596690602428362026876297795760192681694976371338630788532198593768147265582163532370576436924894999939085612313972566740535131266156381918722129188932643286767691451193531274160684924574630271932782390132382362190515232114331280618197429034146341975062019712614789883910484650074169558464504249046544872380889970036236693297243326244795680698425749530200942402505730688949325657046471555262083817774776617770994829022407161840814583613430160635417612382322286134206510706423612745579614615224141484470617322623609965818553384182798682056904951452879870325104463042571104737463171860957009188789396027851259207727037619945309470812979722833288460871447475439482248066084196143655015861748876358322411659944017161322848024755587813940859064321196891292341031073106109551952206264239596330748006353465075448831349327375503763956271448192857060157456395496436171113689670913534904883047899839452924450768325732259848567170082030984889878523632080506141251652722743363363772459155125012680373665776179288392284164611293553414071669569307838300264300961375538609898901964478067452417538124291269654087271615495519540971053686375364571636306786331972108172958790079881022132175723289132721512634717794215283829785157119104438724978376497096490559131818200515532357150648807071900749605971548512816715125968799960257521515906533808513566674709294714711360226379795323294618727412911503578661607658160718516996873752134637999785360274071425611882233409042641531824127197609440109462817363738560579951387773551564892048412576775950101481880673313805577748599708891787593928200747165849630447015818398451716315796243888599789602641123760973435268734423849794418787288928863167599797701367774057360674323047522244242230971121472808429353718910681203262694886945269436110160650192003793614924209047550815376296804779930061199168377644144141791160402965365310550175916295632929108984587112430734535002572195566874168611339637487801736081876018010387319397419842188352770140740424167768993902295519844715515414607466350529488038740503742925604015706057721783282706328044228093052783901693877284331607494822975751621518223013934319599814059082308294103228235152301723923461979939702069907778033644019280233097309768459081461164308476894303316385268464597890554919129244024952745918039551011949794365413108717815909633245040312301280513126019110366727223863881934913702122056979820501807339061459490724244363681933739283042187643582150512391118095884834804447411295499465013885496201502029252169840354222724951086682831152717386486377368699066903335933636717511555759903970712352415740155865606411174884686834671758977698784653249173422939507888139957653730725667987181892205333638673088885058466715435193064295156692348723468945078419687258506680409401511868679618617887600565453756333601489786475431521689016777673136645886845493523080299292396147980749215091741436411778546526521346617919635828445826150695976419705490251656086725579480094004598735077913927169935018785155663883987193834732842471354805573250242442925099629709589353364657364514403412844290246218413449539490278734768221929108009808352394627740035617752948197801890679191409326848493042548510350524322538937255913664768467868567892593598139828940764256493678476346973366371795642565163312708390095377293800150837586472869072120593208784182280524762918219449727042854299817165665222574647101843475678289304489895782920099983890785740981664119861405784937609796667629394339585027947212270470904721054399016961774994086256770532423795779305133370889841617808159345281257468823671611418395386510065286980210022296358906487987132794739492339008397426187245708217102441053071690488930322969421593857829315531413432110373160007951985187918633343559492583470011594102247898465479999553282352215093221614304048564805856176632382171786380121114976400237637211458445699552931486780505059237709934660498438979645816144295378167586395330381895755220646079768148698595879746417759581932393171371619307204331914237061876963202705245646896484772712638707526155068972527602172492215323418254613945870087055736147981777761622335855399414293426346246991542319064857689873796814810086157449353665612895782941873391393279741829526620453553228233083441828193411897939849054466440727283425425164178307641303264008597397538604695204997575306118253455106660760821969996872231241546501376816235562188079451456998177994431611252434422580014039726905686027318243774959556500092733475180764013649059652285467599014390325057097352457618784865386969459243957586807071726272983891029276802198186775021975101960308753163896221069255288574757452677153372182789445352740934345586279791848721637642569407771126540798814220650391534921208850998315609533435656571915987622379932364444781563700157678683957909779701903501089498540175748739688720458715569873856621103091070154571702742805854706540301880288795806175366459531098154094675102048975980870931255098073069162364512584776831041289161050624695545206415569986934198034748109124158949248554498684546178730613455816497950558333921731847642106858825393953020300722910883909890641865876630736008522207709485527326089902032154686293959495693137984759046984768412124637446338367249514351794687289479860115822543946311885381605689688033748047276052102841273423042745120200161961599469370173004666572050382004120163838445928473312667522991338260361449851635657602241939550734694345356201035894834797564506766643555535606426191238807633068287511678802109557300421860797369437240841699908814290260211358418082017639979504734106252308629769446048801369499199889223293065602291351042127506056459689170484280362442824546141187170247568733428902984206896422668489185987954954588806395870945358928111021445802768598520001193098094062893720340486444491224580852039939978339193285937664490055853851045115723095282835115890223037417455798284004400077897775621854802988847626506095379283203001736210809428221172930659098093635104961527956982842661787158218442751871984126020496538281867031128697030740741580441790957631998892588293139508477111062724206727152886593997985632562611764071832592649283762992388375472500040924967166749758741475841300669831687043339039630104235351119286872478063594990131271944890098369181789488574822967239897667054194480204425930948022166188579409864012659049093011293992035480897508636255533255532969083445777541921097840353916565308930598705853572286677291415595616514517725371384057646033042034217236596874340921664737858650799783290194592419570417489128111219306558265462862948538620756594383957068103777033461013360821979265060030497268023515272471130111959708254184354070625660741909509062664270564554121959602640883021595412545346246140806182845557695679008434223773343249702347881309454392771842347056197104229619350981869795697852910980663907538922451799916276166085557405793433741594797937716354410346245758531793139279240096270126128957432605987622509683104344547877291597400313813754890107831547983637372997061895212843720655668605780219223035498798977362127569256501032171987479952645418409067942753357709654275207435420411888169935489046465627686020240426371427609838061896436369356620041730699709730584753292963115860953247175936934085949714612205220127302758201942336969005311222035178401179939160690769488026198733488740126377427438147525705679331056654645341402154301836241358092120800506199544797735929694337166768278360953908557347813000816220760116769994660931566084754516995759001506388444680545189737462645133850359093067599141331948055817689053347914903079424454786953187198246910071030133288720555487561852893932482434744502295216245014671739502404601518204275965129399561886213623117539457458707575506865102850476635800351365126387836209041378405931630817443076213000185328472272869709256831928447556605388055527821896197993453783303733287060340036687445865837269861976301699191497729310681358186540000429748044835404455223611641179219604959549071072323409084683109625574125310359053024131483126937554668709976765343156247361572160862870489514151424109901796053666133270083743117602127830889792547390539200772548498625551175362994040727888390118690559833151816461759345985194654109250458660850572427483268258320853793060078763279464621458879824257731704684173465218479838580775857048460571194711560582409124433783392227331748843282145549791182287295390665502055859011996258670765227157934403086283210789336799595317719287313592795991105626635001821703832159290942273038125172156858420642085136354268918871545712313081985117207400082189822190461133507354453057826909948685542363024230472477919656672158268665557805972024235532796829581104048513226183197786660058830478594584126809757666556264609245665620965451423208413090475088971020343477944313828965537463896686451468501730778555343272900562998916974516650750372928749042508698634778180028672114389751482145573218553191397246711210153080979385236362278220386669754368534186381531963408160077622012524748232560162995711441446957186054255011955325689728541434858827787268447291869722446858354107395867219061712014057205816651663760614032461111291149769730080563822294904061635012237493981032950641879481413911234799394083939837039329639833139808268414122880108343196409244573992928211258345832432346534542508710354889473627795824809334301988923040099690532990646706667552500927249025690517628046912732067416060269224790595953798867081118070322077600736962426241325352287345308176547008061347326472863692272541020875561726683615913373296167692815558315881216267979656957400738689434079275351437152704645221174788060975480339484927955610271750355928716916231869244566676366536456863533064916259782369393767697650516928514157956297902080550811705393877536349225466681542555632194896072717967739930668793378587830075528367861308373692632082033787454882985668441178057885895411824196174419866343862099699334335194990850960355877828415165610170781776058228136747846452165337575393407734819424689555327463752125395763664773382810285749204233977601211392397614615755614512063583715785654961063655528116369527326677964977456763693784108690164187609653101245165787582193083510274404935323385448049779213787205410955880124575759166354138448014013472879278292126494325251941224954071654506778204014651783788521154995939307835473817961114060946853648780512279580997765630688153943075165351782449260288600020220211623308877630212992817604004556192678807643014446175478696717846947014370793652220491758611163300531708240052540263534090122361466580130674188229441417858090596813045080017015602626186241428217046895019596925113267585215452981030626505062424373842177799135641671792884419736145185275565079886952677985737060837789735457470640227232369089979684848675227650663772583159364053022264974143834291185867384301956543692142546392534164957265043174874931134144361368967620998638289556230391796232657224892497491974398751881362092307121844417423580942637933879050749309019573531874758637050307271690306050219400245113093186432773544004289112001800543365712323211040080969449381097549352586309363983039885600895098483840830145847402196267682849077425928738674724782886030515534260817436135956463640995446602169172848828641678907446644418818403889087640793717911229031875403856627399581189160777407826283448984680710905035176021005615247364852305065407844155808465897920344528747087966752790679646819472785795496632543132042456295518777401335012504412583725877366239891476962014125630409671708812102423870638670749534129129149986891536739204207313847501673936241615870694945220411017022492234245030524021763300500457347313877093247826595697389989533804561268624762583484411762153802070931065668841685499594457105599687850934992303363051824930576684312633366020721736328827030624994726589672539185093046563685519401817757746431641523744243326482657451384999505685664202342443840988661987232689262028660237877970145412370063279578567651116227182469462442856870793137640341614447294545557567576791924809395250156947862176358046005354083081150073599848497199836992367985907110016572734419349244779231362067653249123672231663715985424931556371107450202311261529699353991600094509549613632322198681912092443360281446578136758450120517780055021111782632546427643899745913327061616052948517904625338626572455232112398402149083502291534453840516873334036200819964525639159385806159882449707065083064256414987989577861784557980805806591225771095949342876202923817145094350436390018749463209309322551559324024583810010472528683409142344027250059358018940062803152767307187915776337758637724665610491422717678904572222764449138921939750746431903229697623087113004168385017371204573102370158019689665375373961057658670507564511602753257925263583524721692808747642459433134760560684662562720041147418995442054902446999970942557713781220176945496543519409494225136482731463089400140075933416211952027195941239478684522823220090670373017032159841788417359610206575273683613345057657730561735792354145228375750334897427561340566641597043320759217325597696968208163128215348499168923343761301378642254193594483951902633191504653119985424489733855899160832377117682309023308708573970709387097524275616217476017340679121291702081498174372146524177154445300233474085775010430506244035282214309403591402029239501916624329501767539415640223452442038838521025840383496704018594496924865905228375408827234410254089255308953474839452693128177481730057316017345122227848036959676844515047922738037458136648571099335661056979929878448892273019251234892413020305814497764362952024939174398120438501399445870676445073525258505817591071200603170623385348736311492702801200380070693816409977308622199617914872619942485235641196639304319543273709778909018961676673541177150559266167642914559147844868078040244888577486413404384246406258470782398484415921464041615594316727182702413012031176851829532663069240967403205218310573071971245029136904405601963700938042163188972645755729877799830297156592203719542030607873883535744822389408287145304455200057007529342084198122600743912157189282799049914626140847611615251668263501675316355359535384997226295801766065995902571600357521440786115981767226366011661443134833637281957063567343895602360385696384307915120261544656813290886701295535140122317751130080979677875363603316313689678159061635139947892195499665619975109965059379600645549063390490636194309147420998320552696749095397975049351410952883293901405829890666208644392397944706383826146787968949359137191818252581660706901424473942840555446217131073367084091141394233925102141644357644882387916040341978484076285867690677539197743280633623247952128460016135294809820887562918916745278925425031438759805048745934181749216196749929926102311505158280578919488702838330242564205139948307786931213172172638347007340437136953701895374729011813375739925590214134272985585520541057813031410504653890098384288996077869486593883801041459058345533602621030161706408507603700308539775917146585551125669172616139424058827788496388732148095716544008218970350106581026253356818250517732502362093765731560635350140790449433619431358294863231163935331795285487721689596185976537314494732840107837756031781692036575967276694874264438519907415371694739458030782020507428836883398339768963736102737643067871120607178414665972329555590196018434857078595098640325687928915914931492545981105896500087954229652061814429768143009533025539725531861827885684320323507085565367281396058716395254469669120493769069628522837119783255784703803897578051003626601934297362786610851712764290689968951146351477835924327073198249024179064053219587996245353283331173756654473591935618782232333792557080559112618338234590968432251424642920013303431670970145991423616685157414709541661099863231119803948901470150073401538669189924801821988855077813615729271059479528708495613290786830595616924349118504775927978614403942843517241950734420270217838445610815921664351053594966012772383516354201486272210523014043751601732473074108295118134156457339226816018946446153543287721894528307868919964111444543350781886665918495546143993028564842931951767226634999012290454815100436607656578579859342061828372150897860826964627627446424474659485877842082680630321905437404753091081519801691889861163074934921589853431448976198900090007273075308573907280061422333665237508869769527671800634932609845762935467551141120508006462954247018345667977624003473494793895444416974891208486933210857496533566977547416173203259580258263098924631463803696364045803742207022218925898975466507112864808079961489343657962206002929991386206226448215398457991990152696014681388157682941012410347320876806001822524245381088947632964099224561411075059815741106566351786088392477364103183822675276200348833528063995801841820493464482316336085867140995335040114718237250909828851676625863269587941503107939282927293664075498328546221295627556929043462135644487938792607830701272891215006447902066570530594308748566583992737824560228707152140669599177641908975350591145201360716530573287395469354802711253213254055201319717149339344035781167759577004884043944651017185217945744582119017845515526997724047944902786274554397372216592723863217202937038126393195105901296075992439460742613015332636301435957777179166997596557977232554529472307607168329400092761755418699335451947797737457621271551823672527470645829288395073882845526438133380823708696817140343584103039355689658881732988697978437801046458288722839460172810690867426905634993891680323031263132743976216152641739777832218599135776421748705768591865433398406874798319880649178176430308306357240485169147199768317802702939786706144972318082473825753721120746075969734468153576764801732285673997541309931106528605721527952174167585115303189790956503156208110913461751451607540117100581771808348170806193539180297390419434980063895774831062143017448597380567893277802716120441799671037007727295415812172014885672228315987956331146284156614657586599782192698954356398271381246567934893737431656638978987185121865839707247867675698111592468354320711251043897995969277815621481565672690556798806324219474459222302143109340827591507179558145033677176447086372203127336283490559275991446795092660595949479803193153875902083746208190614926638988080030162102865011688511665865221135515667273511778391632015657574360601764132153528414582913816768604270089019983497880893869366476045934086612434472251233664745629517571798034888220305406271967126013795978010143047903769319484203484007063503737902183602131936182810226044997676605441977140782858731111390578524156230140190829715491279850913727753979683164254738618649177764016811233347579434341343052223642212311182738160605611566681833184514399205790174720477584815507213465813251111972102822619392411514588105656661963244714116195554315259619958693618435941422331064154182563458578494024823408092178775648354963687798315882807013527394598426239571595889659241711304054237118454793145900001808759181263907676904606042506813626734405100895147456016726258366179526004881497572888444459092084853072806549571235171890248167570497471662986044774448836369406385957381353798800366652875201539591089846274082604175704059530838623445429457132564210739397469606843660756008399476008450797649345827817430124813436531567055953397841934522817419225891713273096430092649757504190249869977222046710370141477535834195795288997675739683602157701632034748550136447134465757267421422722766468827672696450427950954928343242634898108514626865102893344057847604432893923158584562616879958368976113860755086239059838249731085443929441587080121682387107529306284897898742899482791389093232349026633976725325229886684494061151110894669160269887729585080490540349487003314967700331863090150476039857640729554100259610697005631426770144150071831490955052568215641868436830108811480955119413933010619297699109808241591032025102471906955646029418660432404841749104127864180542742681013875804352757789588959279383743850782703216826684751838901724940850567991548236312631954397860183962302739226974194593053922447991804628987198142924595449231858958996596187883338254623010124037153065293611035426464908039117018441426851414488862969345741958952270829695534633847964018600515378874743249937273818036231778062935406093000488709855623036674100876325369170646005438985396136760500797465805601699425343902140356669495143211949461621679689940702574391573495551863334037360270087066474793202266415941749180791959672456802198666492792447994476057006871356737526267634376382042034849791590821517145741945792614351580238132745851519196942122908710639066890349778167177254279729791966507363276175294070821569403621587849284303424869413898248636894240440540682747796714860388934891314981616338480525598603671451645983579891153843739992228839308847595315033840475060836382999234773160060647972960751258838791274621183467138843173573580226414953972129480410230678359799290001592819297896970397360095805588197553433672220236723465770299250825624016349026876403112528856097056536858186271576063708412262571347508314104533204454338825404234796115963733140259463734851207308477081631677786527622350034768980988626249815128536934617795148425630522132200376825767195316313583396611837624943888981124727094606811772027032434332894126620703583991379803561974982304991678297439870999478707342207273681441773627884884067788334375963077757174724440566058138449152545484763599323899442881723636712198340515850514169394430645116296414524033221178439877647240333296961706858582053250586280535523324444706601029052991390682959345950983584895599972276222475459430645188800311069642204084924080434936207021895677249445406815655565028110931503680822568632711528203054660406135610467848153995810094735068167531710343306470805517978159564438985122563313096696341335974185412504170541950096845169689524422070846506021909319063382377459007133208792703122409149384381097908757577731821597923157587062783367554306573347468266267482622973987310474756949447406391870963531711321825434929936688453698801204703093798178180988991628280917266977712765452000859219546482601825759736220313799695014854324083386295666833766655416516372642462046139450778874477063183963332736653251549936777616694451836140791133985402762753601604561875355253323054887762097354345606620047553797437607155797031054697009003119306629234245475228434004030364424848147213380020193107939691646285570104077140914616721831552211896568700483554896505333160327009996580081464546461111900045120116291359582905154444826655704885287424063308017604952413734700431649826923349616054925547639127878735737792366139538229481116923092853212669143141041546221634233841650410705887767524997811290369589904186485789749916703128398548444363661263869930277824413646552136040644315305431881434948991274380749816878017563300849854420973409872021359193278335209019089022642863369424151041462890304856192176289704100102503790610289148877099589729889961555566068592498591719417513236231111808218711379492934862810466961886032536319546380176930086031812630333506570550222640810329898628740463473578152881309084811541936641601624540457627773036864593302125290681671181121220808576770206847176797167630053426053522108703596446848986900058881234610199901617986764606908323193132910415057836606605897375204509571341582164608735900566539105385989539700248367361915986583941793449588558163537315803550004809322029798311639622373646044390120887600445739950902828299587263363352115216050036187514622674765080606796645732533516332834254683038918885207501532106878561880999310082055492821386487280804139679366050933588177607158487832570132465405033622353047933993094694932382343832544813629411219323818796349761420231288652060570446215688606074235189654123602684829471934685965232135102317421840913201584182680240469572230212647049207782871158075882311135154492814339993765272648295213682340100660915480328687228289627399557744695534303105440833169287621673979889759294452781810015566402954762191921364570143173851494565225703255023426672904457324746165956478710248379572709663533207262632965710256728691610207608703447122061609843844423608209273478621120604675887411246763132827909128557064039875145315531312316052780411541910684512532387781557927549963427636858713474945339987042371286562203306294638024083890482347663558989112019872705592946817292780727618543450648106143308536460029822752369057635361731454572165132288252278618550406503479861168552026775509005856171918709338636895116093458543019979023778318433146918047384687883344094367575037632956773321560065254647312719833562498962803866780885616206890684043053917188501283242504473146398680957180613306919968164063314363629505716977494917456251680492685011377214918265653930510030982085481267074975285032954083705413040817821547769715532817427865767018961030855275718781960279445751981678197037903305649936426298863236298635257052877074136794792021672515063695769669728546417521393616508799938530383145043637771117476886631524157507680728711835465352169963204187828420521342156749874193091880294175538643707162321089908266547714805502791640579835544308327920671854898471888871277191635933967389500191239775831214816159262176514504164876375057438652777836996214712738210460938311036262321661112834092398674046021159373398234445089207098862804868635677945956956967425790334624904035751705931272577100081626596228544475152531587191464687043578152863556182724472524234349447774332099436724692910833360818190066608068246033369974438775641781344402649854127979905985364307319504307058147652191444985670477408704710119485342832669693208710367404969793061698326360586483835150037561578615753582566336408609962275115392099702996609743453694266128789516399748014159240490014289805109945823569651988471016033383903485634862705202052273341724716869398873915842706057062806635563850623537080796306033453679996882603646885569954983622626561441942658299053861763139403885779336271187046851650816827126315702464102612230904976210077431003278355229989540592092631984436542868836406716478004935333435176176088318474898680733697429387760316357868247157361869700740967971568321387977162758448298852530907341470662156214020863021668045757814981594324459378902099145824684184681354587707037128807789213217432647760294309913352423681922671891637519980111886636334277050201953976505780469631386214897626297966038008933392787022826706100028553543617569031522216256157926693032631389371841156447214539181926759657240203467678426278249828424862654778793987047915910850669041001187528221239871815305225708809975051622136381443855607240345911533978834370932372024580443437162401343023596075583379540768666393701985193260513995172902633173263781842753591138925810658533073942974423316992780119184123577437433678991688337526578270382914860293541215908478231083815796083889492689617531373040793434950955589988104784003801281320631077190283991862924141992187263455936691832171922406282566982521480993176879858807055221646946602411487272493878059609881713568276587841908809656524124413746853634243917206621770426403521177331584717782826688844780158806582743383177426995060386298701560690286345963113606913430550606106496314191338569841110486504060888175128907717821297879750596230052542933093323145429577675537830558777621979744423017425775976297163848247999537582718791688316252952010238962007935449690812475720655478231754811286084197081862502442388473556602361535400484377663731503973869124865300523906987264004021935372538734808777401053939348009755787206913043381923303888839487792223750042325969827899094955771318075461074302538946827459031781774795975539497122332234040553026086763817055722974191300784620287777246167071824233623722354447016360982316229705824404904539300756920489751380032438209585134851374771462302637928318067260590017730005014653394965668073737363986898182750904215384408869165300847729781017748201922424884225524237950606452280914073767883624716830199502437624813094154198103368912766376877115929300452122947959594713689264096883629031792115009986074931749823294530308491829645064156333337695181567781565488550249256017700458930048276272935505198309081933904366502325189322849443733707071102171135852529127727803791634358072489895410829458790856443110872551008539005988636161470674298754274822518935719988110572770375349455944390189327469824440223552440157483505071095067394162725224676215698015295905903249673482154754930578579319505523035269851975460698344400222313158077173931866868553504193241020578949741075185542080513651881997728991621308734545821140708086581057962148459311192921693397044279934656274448159076175742723535382954975976048379321836041324395148882677768202490813890095934641245235590782871833240046019832599895401909164705253788005907329050229844370993283167456898992496907594294764979009618022081025987626013843131395284016793436037993190676906575162795437826603658098607145831974378787031551864737620400272776449224863129363952221196243376911900378079285635870879756883190579283431640494362685867623380612644842419452567631647874945900180469121051194156809701686055789278350268209043961328758473372068857008700188288347636351759529189891685493047601640965097593577903326306264101859630031450529551010109105681413820332797646085007926498057671420711525723208995233412009134761741154812404705246821101498661326054533971686395319519680489667706608423663911096294247894793375336656034694018921305904613588456404719243365898605308393037699058417112370306322552710615272806401485372190250833747078603663627785872730043016276598100712273864701021737805065093276189244740784383963162458322059077588658527716582020785520022481590751853125572298666514524252497729504059498220736566581453317186107362862003214270988692842934623478774868127246532610233383981867984172691208320217535915390076651200764004223606316774273355567951972249910808858960642541341908097676249399646935631524235358591077771725466129495471113010372888757795564132972334187999535819893110310506526913166621859975041912985644952123826352637600902859749872075383637456447079275493920018461337347813951928354085881688162478831793338608815546130404028805499831988708567339126556413409207927834794349363543431721522434757113977737413604222658692648163885214391539929688649516822382405708498543697175371178000763533745616507197692410723071565714035186168500961771277960983458835462161378828398946287751325460551476029045954816732226319146839002671128197995528767390204532519602026766074617031263267763415295819492478475166780461028520915049331941219907955965551014418410438530284064734229383645489233027267425340556960052512600358220982892667383462389117905444325429287117203589748807136124745732268927030067408923101988152844562287962485231478720102673790914076413368993252700117847998647855197906910785582988656472589541146016347908632929872001586436309970721217207933825915122640172604843244493729117032644092946569390785586886434052481876143087396485210303247722746384597653998076839218099498489880936320416840560742944985959492384103568941444559444714007215674601561215234267063102940740876460296459337735668602039778243771526045246836352738054442954262784996666064994461022397491450441014217538277575819605651031184744872400797036815094231899236861506835163178463255268126859571718762472246166237390088727299685240650809096034911674356748880254978620743239283466009473690361552378449556430934153858572430293596839815510647609056862603282323657761879671744723825635585339216184187237472130526347730872345331720722070014753325820842312824499492453264256645173663492023940060750511350703299902469205718634239787730098186070974899260704378445962246459377477637671410026670390425536544287099037866971499630417200532283607663452499503103813963862598674866748679698764200672116634914320781305784196063232427518923284765911546497991776479548185233391375358869003133595738208858219847340978910342433922560535007468665177524728414106414291452317401995272950403103730625922840514745649641643356356603993410696591218168674372156395983904147234740335741915947652585424700032374229445028016093546079249351994425995041638732329370751152975046025881565548544010007422844933698794351509400297071070507016527692494556418614413383526230427601368657958723817865492354870581868980052688039369904935912259080621220363344319523874109977247945903701615373958656655367563737447165776846761050007347329565514970506083438832567367157167706727083308504087216754146101644666740712285555917412014418576870588171765205132392992334241956225011591904479327553390531357970542794539613045831670205988648665659170107345237293595778564920070508953842901340520452462732481689545377247069465593645680967793168547948750236741337125230798733317711228817583978809182896896517861101335036683333995697388795029533745226265682952475467306584020099051829069123388102891509671967200363921877670765792409890662680942343902991161931602559486387003755650948388207962425604899295464934441690848405765380995456441746201182037189111455558551034036291616660299578567408783716974311332088190291610553090910253320545560663086083520064003309421592082591852540895615079463912843974227789490280339591528128940667592471954630655493002911348866236885045518151869959640399429486210729542815617761691200685850882541594404886360990912034320428899248809648957145500614006077287627546672022918717753857544187336947424370894744146520491002455944332100871483988150939853982654140607717257769616759777359201978589783607979308260523766257930111654806984282573328444817244503202266832180292024027562328429180689122856467959521295957339009364056108823306169364153203006524177947020362980354000183711747461583034262079350142709466678218928001914086720252572472685080786139036469606932060767175109887069619203144669812237159129094145550999685207290727947742740544322817559086984980476026987322627949159586718167502559103501214988089100786453223982833389841982549279390648867914150478105868781644280326287242268610654070625845617933496518168571099648408971292050150943532279894524361929984840114210671684192339419967455488734017905296307883944422804093245524851916648590426020089183562143989612518012919793424919967813411633886566368809836945722022326281037087615151213220673968168273146247977046884754591020047773227122221885978847155944886908506328074421985604371120394228979099628969353718292081848769408786410872869478117366852616187863279736617218866683791433815575124704760968362120241289091625484945655845439483704458647619171940137446323787018236567164005656552334910879181088479700879209884196150097920497949477515080036705639274051626162353975908545605594121298038125731754965639071922970266223856154098885036641149410102937528957282019131299592752594013165718500550213858849542515270758717133337368294641240494509533903533984445973860106945560706938302178696887041479331799773426067572167474276981931514103852019480389885135388694880334691604789952115472378448498410881747068744897876883921957923133261165298802665884463754104692873726084284698293868693828102103813325832442572918947509463618526430453345646099941641461420811480284026698414568604330118085155210567520802606959925532849686137888820779266661177085757874036584434118665816285112820697858393539195510904016773489104248544646670254938074989399949935980054163298051986175462972524894063031537013379140785200586161868367099618543923747134608520356319655398919320772604695820825091615010214649023655209292991773585583666689597613204404539924380975368857070325989884775330658843672379894150265878476126155674009711675079496276639049208386859272628690898426171587424343391150968649124817932017565782379051130773203121065859694080457924305886603907060192113594265751868655161116021144768081925971552199708844046663335320913905267157274322632950728414196521390013431148508250483008279267726328565514246407076050430519173026337083417280276754581132116806714847964453174119491326469119579831007231168383225242760119127861891897824379766377484987605289503138735751065694672780841318429672518209184325415863753251982216036268454484445998300915477544584028703876704027380128775814878796429693993974794445545467715082646729116586095465461217193387850329505480883027277603525996746406046785327156567749608383004245247800466442258014267204615077650747187224955242415463865705698874632366151103472514587188050497937689413314467125403599687916491556139874211138609797189396652274804321546356172775038689119342531912531542270565705535476456201394727770506267003036233382332171506381398887475938087365197913218592395517135659501826342387384081139477688866421633978416182924438402574652651236615624620330607296081721787842353970044771337211592146937042818236162274357573524152521102407247184519384715261165163260391681834486123506273377908100448198815825344484271177900257964224660978932258810055698752498661185478932731149057480663150622430223153911217161318943459423248811707602757726529575621421053090996060712151136249212448559242778107294796872713337907102043912600163295240574959021638780066772773703400452753161064121464211110958548802908303060980041488680831339981852636495710374035979683906245340567766977354701080268488442918015565922198463391345968183660655568954628953299060989101454206095546268578371156616233493769905507086713034131466494837434342613149976461423814574248355457237204007270801530945572190411306629662823095676665556733374498964318468966017795375729573061488842418598732152126074232581676173440313928364748815896902545905429866966933773024811548971656498743366438118395130366792445432245334105769643550310929624866781482698327119811044020679801461461810661163498284801416497030971737857028930017234555156440391115347543532761691667114392196430555312970507873777185376704126377956482400176115864986142900919724226483078245729696566630094710318726097279177903085613589414420375234988138793412985309902690435916650905570757243725173567827124264154052915812916684989915622042415372535871697930819840987400636942592502070148347748345672442141248387846699207774254793867594087449539620995776820052691997823485894992320990271298808462307846859090859279209777769188593176435429046668213029894643340651681723014778687382266290360607822158032762425134518181919021129373568289641252050221844861628156754043398141108128614696913300241547855592826350907862194949212686787652804780381043888389787540770909524960982840401503836586367300952742668793834918959621027693557202559750263977620430792859238257183151897889921366690433118647927180102398340999820217863654792026490448972229574745329008078823732968881976536717267335516918958513804283246558683548770131405918940860232526636098169012200829060891496874207818708875063553747268926454829501944540423376356924126066816894771737366987209987618324542171516765056065163114574018399660509147077571356978892439731867686986991581775005044221397157616221322909380646748337780468059320252409394287151769754962888134015445250064013385613954923952499153679416083306346490244081268299200028831681862354126090308530447026128150400801938820947383880743919410366174729041268573962161772385762873088639187238082893069873146509522148111733484580756402124537118217324782712631234158035046464002359259576525176670014198712270736469291792275952808174783098975740992104345554351703163682392854558580207614110718496739055931591247621940955423338832096785542470831178705785649310591863170035608187411129761998657033913793038498004368260275948024458000918211639616781943815385127283013876748214368026169694342094007745573841695567484666886047710732814574671051453236207951776489676744146756548262402145208724714345931863814610129323370544023824650141251088287740538000117641427341542433844557484861137992445890992546525838265211466319017662333568414866388616007563640496421475299813581863477351867962935778098659394968694304552239086080995499691916114767657858280789195164743310936349828895799703963985165154016184654476371719429179735533769033344372281519231268363786287418564479788555944349631894082259504754931205880744815726189257258305325510535130390551619247442474970055148099616871575174868482033718946511161931471145370203037306912863651353286711634694036182763690486238197310949385824123185964897198668730855079802882782244744767729381925625164379429987741408538873146051848711321430172332813370914253148407956523491730358164872417904236736145716832006209587868267928755116041162249144770989339119639356932698940852549474944022793680409798447355946769113167332811839371399182329535965204090693495722995690850010830789285999184393555319790442249976965808884912798876446575958269736844312400930021932183364395110401244724461494262876889267167317424710143793796373356104837346058794188558035951076339169261731839205409189317566427819080694982349828792343900690987969255962656626518671400062027986170493973576273885556532900166032905188307011172081300816690284795341108819598236364873862489938576025377180954868946543697515757824795109658829929605049094651627370741971878413213176298744848997890524547510567194436243182578384813322408149908115998965346528251210417192354551227836711197644505660748961908340083040546723512225104385158715121440396498758345496391519023310702049097242116591049916257578884020913720447364796989736879787485818288400439600193181490325706113388666267623714501105044030754590432024846148658352531424646098446854980414725341321751362677384476470443588609114743614687547694737007874570806967313241666523768536613171035924505745291304180355267309931895172297367667111123257803196568024459607781166630920071807111941654924414079388078503797211095797719018323951414653156663824599528533337575371838321415698530064095723729189792386521320993408892700877448515791396892439006834687198697841779409537518591314315644570761499443813057601150881617375828628479500936706104224571661997265074470782199309580944166983961865713348814248544895152772487358815348111247700267863981463309731534409039568175910367879429231883188373422691590039743899531584716478325099346391038891951681910968399912073924860120891563375124487374515819317524168364135581724783741643565217884244262816519853504264558027853057392880403216509954323787385370416528284439113307380728939072102538203511641617912718650503045456561864334695068318002144720032481529507969063328787663593002284326280842248996822658727325930686492973083014355083950280141307450015869182077259975007313161978049512859649488399805700925601054205380354057669681859588213990852601440916406996493931022190802669356787315542650034944795719672330565978767703190597337058696926204367114607952325154148807959409884798947693711050339149681150526351716628838965140186863560465990461212892881916311113225489698769665863467484962467233753045344839639977384025213276664334609288387833913519894162489716700754887915188656854481370625094237256013098506772251933695184269650167801024859671560485977946737174172908829409402474178789945498681059313049625878763827862869551278810801194913416219494558364104504133813846795314563435185108974392729217605685617536579282453718618648074327395124310336390102609709354338234773767563004342132016967802537412974654177064593045729759669386579566719381619382253278233268777437370026375254588541071743857458679684826318216796304759392506065119893115784717567761508113217715333678012460373272459760742338484149689977731895953168969576677414631468349905034662498076924756010479278451510298126605272383361402336959400453998213346038271373519397043776289602735368572230083296969005083137606708623230594148703271628842536884522554068127978411278721538699369396082955183626041241110515164906028314257387028146929440861969331439322998490996948005930720846763629618508194013131653172796702629023253345079657346361843637555172440624409382817009330683955349020540642908078230672549182986397476169891069929314344565137234990785587256110952592167253581119802298068800189078321960353102606791908002439893793794374193697595097510478997938807924725507106514521620555397587006156067956580434082468204878295476826543544235573389975486616931771458607723898942468583761789372845966459455452017355355040410637844310681056704941693435629682316251526531722957853203891207360933070315105065215830952009397024288630213798106468363414508370247389055453530892317015918897524006085824424312120030249702406291083231758007495582232625600510311963865261972033198187794384978963768761704909166476924232466896225081700519282240056357050085379389346235438255859682971706611177043861031957223267423551574034796911338745083184443485670772824901227363019517174892003523627974493766502169944726729327374846326054479296548497467328644515577048220984515364724116066338919819081823789900779624218197072346423842417792593814613499507230981497746998472230243526744279740470121730632421700048548693335479615335843761184886568505229666072887833728517921120068380896857486836587616059550184329019032317550934910461110972348939621443708219331313077121033433296973526678483913888359827998820942770395649144498033101985205206242458071414177822007505090744836288131984711505026512529979059901391738935305407943523839221461449774536123096411561747050041752033860002048854243977384517957382324711059412899956090932375405645698532715113041051480576144943908982968707701462536184213829102888947797447345703151256545682774019841715351486075137273567489934782012454114539500667361811011686091138348423409806819280424938935365075924300220348898566070696873462860574525050415036154056490430964868910661205191596842403756914632840708997048107758185037428364350363344893266064391081387521581439198180646384261221412613103651564038531541884439059446497925803203077824196528664743926895329740726042344677962408912650308559403404699964432927406761131822395881532037443985472796455293080532957164124222640573827397635451896763593736869903011838928619145157071497149275141133613012986030234041359768805993615476001259138598006394149490034177045275292844627165431886165332061130747435817474448677885354825694083973369712909558606126635797605039447479113023877569913848662796245456137074300530351354042496485844532884360914215252286871392669892724756716314140928675914535044897535527602496853919342898873259698823894629158708255103503640466176857950265743120734214393053274059227932290130047743771927465182784905773583657135997919594030344074792947633537703715443666140914587816538582604649672671835245921715501026294414991725428982515293521234546632076588997430853926833651969340292766355190721102727890339605988870497672706570806744660564518797523809549345077986230802516826976265915747670423959013205211701673693077006189554033712962364981114441795362292774765496780063096859696292418873226945380988265463649164702474809967622989101238214619934493274384218385526182819381058538852467910377721787096323728849557067329946180831322174864883715572868162215539262184886165285441166867453467541757012703605035646615252240360218512473286802981534697360623920064171296859717465956003714029378535123754743931867582654246780467681687319049133075106897813280324256953058283283408255015389085628249947885638129798297728445424855345121487847008014145077799871233052565760272560372347287238064152000327794571900061466445259683491179692792582049345000313525181882883616581931840311717044997531518665754377703598698424090430524260743750089011169921031897441440751880458077051641273021979549698172870634071997113646699732898512940459298603704839041926736346084070589212502560119186470086836372288253657556999803764293169973514986479963651936677900919105265125767555677557990033293516709768059332485000738922382096748902248387700275137152175372281458615822474979525227235068669657711333797025119631546283974274002707475206400599798511035635808098939961262678410620176954141051562031968421821096163289428294826109473147184372323361327099133371571509498152121290310847500954942103954883400548971245133990982504359405028134044390538099788543136425204967551526156664790141169573463905329510917483831586467429894939413079114777475215013857382712768155767041370835910911015447455980223490956191451878880158434145707137416418752282606036512540919095803212745724351574717053342972129681870869266642352912353881128270589573587032101851589582682767694929864061398144841095845807311452149548877983547870019313511959121471560683508852351476330177406506879150100005989176021093222936536850907754604226773580051974954536963957148030234291698715546520325711706411959763940109333147150264985316688863951695311898460756758280265638648590321602887524878747536515296574239692095182839546502828356909652378951001569079754294099024491562743837025623644714869237728071834785198145149039433591315621215134572776368028092062716723246012149284405219117851696328360898763234309236251023913883521108178805655905155181467361967522366391777057969737694602339683344874771024672121843768163662070683293669325879849468511999197652320940013659174211251825358392274928627887146927219346093870107162144277140790637612196308035689140160029749850460498247908932171618809812719542084234291346667124848985921827021922157726519093876802855263228788243667000091810481299497135338201941536190264199883551590639364635933760788235497753798590454416765092909914223978073815498277215325175091698265893614022669532679558734346978845917357025075881109618211666094076404774712114127657931907240660942097976371737579843122495056934035375454735013450963373853637757488183195620902421712084955096601316124745777116841605409116838825276585416448971904577576970878892543528392074374680408055218973547172181886662555811731612973004066510289093265940620129490904395226727070971321213877160382822569003295907792462145089852258700071726291103989820454442125575874570245238998305703131859096494230081364724582492364657204420694372140034006922340779098602704237882350520774908330549271877155732469632911126934494954367285529413649061621130286528982642635757418372680311574283377700478057585682674431214532433327123100799492531740868992995254130346277864950374895570349868911453998184431266489987363310574220351171775179507537587126497612725120245155825177057087552116025784793643183728876609047900247140062416729581312456497788297334081656428959749478435509053552284632524264960445658174550181035375602814186996931474403019688593658156457303744304075155335171890933145117603748468825094193226242152514465268939627632559270910147621946255670420276844325683459574210182476493746009333705238904332185515695804258322947913594777762114983504839826024219076849801613273782177168944552792507808839331011253987955763966461975207948504427104059932052210511201963810328260609007737028448847946567903722173230127101189382546508566944298041013649423052025968317318589431363048819130646321665842289242953839380087494422160529221653763392351320380771649297596792744067963150580566668823745852190968816341656941325330364423678668908012738434354732813379781298100640513046039192638997471525109287518662772176757267702878271202472375522027770627414753674851868307901875328523314891925590589777451011000788434481815615636470684299390958250312757527666217067155398433001133538163696853168106253629728027178338969613993292921840042027224032055671591839455571121931289199396251674148849481632576529740630071381341888212562468278750268888635731940390569282316330216428198883855755455053284275128289313682781798572766359406203041030018137705845013918776889460170480018772070494309066973374715908182930766813990772333530208293728133180335145769964107689222987919171890113561832014700113717426586277716948620130672796895309663881656850318928770873871417225472012728358382368044187770697260991281173334618895211286689475329850826984885061320379545481737815276887418900257699766300737695621891995979237571470299093511150232665251387246284398433764758898383996690104921836853348107964993200918699713383547808865186027809193362936436846524333265816975340010586968799530524194397366413112822590966524730020886460475403504202572069866138625557898272823636584478024861151506740282033695418952730289792365578437960983263961089657155554991577095532117350373180790589071644789961042680829013129686406140453766817793330992606858855681613743994079881071055074179390252544364118733069232883428676508806501259465869579131517240044353539372097420852205799895713770477741274432093000131609982332068378029851016257364022781511338397794768391422910074178438676863159215362558737598147452088764802366962226145714666403489374798305384758884537990823762550903968627447925475080262709426283761336049268683064844225208007952790900575053882926986245063025070159145931138697307108031545570294446898902954946658648641529363840172008047971088036131266842093975799107455970452314655179608914815745790508431558236859135715264704283376522631619630620769172633927889588132024580861440797925827499917285775721844451121055157624419170003626600682105128647465361002677766146714556508578002607436117116768913319180263358324093763169180959486258340035513490196593748710326773965929600317741061389441019560792954644312684065441098933087448967940152995224200108301937957170473102298298521064610438556906844816374715792566112671660887227408420576245074223979083949740712589799971133723949400235893168689294322525795545498440865815585360237380406217119051662665557944439750570595284816930935811745816864351030831618776835276998159820413784297963435632626879928406275611089456222361319525637856899166530754525788554630294213829400003908742128740202183570200621252716684026106157813833650250892009887094892751398506549343488725237871723112219632476043619884107501066102653958636375200031869660718152454761474926028321024037141863724338297219314554884124211438577932668143445240335481033939070387106810597611550927608583557768244383677643352387190002967880030788095757029008019673622750499813244797544187892428346109894176937068947341123493715445628175135095437013634937502065141807561145203744743365438075983926220698415131151288193009323855130435514470172339480587991987277550354720601671669390590821833482666388691886860652373887043850347369062158735036819057799098924603095913004814732395444697567845262345198028521654017607952497268165606024434489244510799944219221010903501876033340177281605227500842155971946763920584141583836946342293896587148172899911287265390151916971540212652788936826152298555601891300297855349397680626972891660700104985843789089586958176795674097243581683211028747470146664037247604049255206028074299212322660785867596467821481539614692471940000198865806141772448383916189657318175494554461494314026067117822919859042663666375091030702529926508397760214844622862292869699225359811201377734037997137822990747900201799746554398673395069244922037173034682497227679086608256806612923499248891151629397935057353916651845805206642566211764549503957618198554211080682767290255868943634674935853029275484958855182134833416705456168068796080711636109934742795538047509537261942487223566482596559669041643556374962373981752715103591349176883994107840786233158316519423635450296386690521197333175267971433582341895721440575843122733626315956178900950607324578765697463383346627048857495066332443143817335725040748498095913004189628024719216855655797619434751421728408422158932186554720723457696894109259490161644352042842856432795733601366936381479075835786313328893714217592473410249904028028119684457364204480875845220419499612002977645254976967091833939086629567109996835213256477177552459220288918467035626028555282972224601574431342255988193391339797131447824829468405354611741364759274875547148911207679165264925864646968961306948371295286429613045796165864833106689955561198052230990918567256918222176572783101109332689585793613872114023206919245753143863787787670376671959826758583091084440366708911274892970747403208682859023255135716902030124253655016033897202987841677344911553431937783262616976384102809362707969672048774833185759869947481265957364881658052797745454974223248254999148272805955995712775162538720711725174335320128112765882990633914080799632162459322271148732014342683101414215966243325753986865274234010625356124258242383340234069714771870285754659566027963425157528130446998705979456583338895518787862607640034312973739985713266823295867621779349726389150408850835677075663888818724735560269572272718362809238803469037826969889101016377831018388045978675933865876440286310956977447099352620477841287877638440741281715970034634256509073747242768486823346954334685837786858927581696124879840490788197033899680962494749750968736944390870567950961015583882030336215851615646151547334048035277969529935705483399506604296012784764382670960344731258745888125096898281100625633429614133339367113993543966634870304721049817405186938399020572165196973864977537700981659978073163611219144922284876061135117501106353928838481394719601938376034973848580075856007136806238805012876244987458456666509501246969050693900802325481200371428348455408171521333744653761365483926222460154796105534055724542592381017936907454709794586021455161570547394112479779391542958227456817938119031905273474148055802081955067313970088166208839565707465461074531343753019706420805209927001575657074746615963686144864116136942042069904532983071980317055657576400055079531439419009589754173173607320630832140525804909007114675349579158885135627286712582726738134478818481306696230378270478082663182536778242668497053751420227627533531530987329363346338491374502340030775797358160974686159109706483889028217752411725347923527284350307408183566349247721754148189696031274999741196487305795709162490879442871345483390892527558735180094887365127272286554383678133745817193846863658310065088518742735495056317808263616531365563039653642469835096504728473445957017979602546933380399209836924536473227465288196396994639994491171868138797039589474103105692561302778203636780761809379582827990458968522297184235751053347432014333698484909304800554074844340760592940047485511556092217449494893660584005199672111415740438854530635898935594835203668474327993819151023692979290500864179252754778215519620654304579505593991811230484441327411174980270059244127430651820482056875669993170631593922080821788181554524365034197854134723498518894846281640621373600908784369111475590138274355694570629591709532478063131215427944456776747380487714116238903268043980301731637774073101275802958397950075233416162908205721594057016013107596220087995019640962916767987239082773705497742237488074253862954778050651617241685533333241031195489437835428030217555392104783210534485319368731920277991063603221638345954999036989977860813529255729167291037048476672149081592491576885523333414087123884962442265697139162663541491850020329578609639061202073559431189526748323373378185815001621210712204789014584870759701307306217533683163369397453190110251479197685218456152830246500157615549298942938389170868076836374464495343001485404774066786985782578985060638270165021766358855966758984309949390753759648614070728170195483065384267731670166125578646978502487516651856391529049850119586938858272782548279466402224883828706568395352288073776812903651193547130027447697570864279677589063598913344651785951387805511906915685372585956068825163764981282062090226480050819578989750289425256394086373387279346345643846507571698645426592162819264679614786043674980422346825596698942441162559286634080557716035427291020053141032495623374869878222095323430036293677596474776503903010247917149776145792049432940049611329364645694636503766069067892994605560661966676433906717928497947014455222213755481887991433506970543952340287074577310224856143928983843034859168857717488186553030312113062543813137756471792737890344770993997122396647044548132114851150672976092807797410406595002960271917092999965295336767913414462803565326049526016595599293800014909761091696258316093259356317127360034925079551390986913262703099998289768488932194226078618859044654566731887571460877574489090756082366732592522785122125101114658043974960078618850173358945675753550511691738634398316709212074769196962835421169784258892884863429734350766593728740836178169316997096241254408146754286720416805902875088317542572876181261417591287266819219293239485245670248529333292655770964132665314424601518754422636322218820814300636448147546560943052538828630520678892033393194343608626688647986846749107420859549412417250895820116530940713992873922341369471256958762670323492406182159333936952181494198691825070229675760172086559677122285897407061069905758535267394495114128299646344571469302500957443427465058804692962830559193149637942860229494542664753658145536111858586516187533964388888555357942319324170891430931249589469427016872704027577267806312118110021211699026517127278953166476563382606503713035727445224017864264851086277062735846868233664330701895976276767914478979657029431147434789735969050575973794137301535106451302750129982239046421205970448396733485652360041475943550320183259964502684004425163490950205707812651823813941771604825988274020298471859106576407030385467235270472319134421195814901683053779312936186099439440895029194659949313959758962605997653241200590234293496784678814604932021659327242116526529680725982343327987659244611135407487423906392833546556082134093448328241241771039214645570943907077729556964147865883485588098712056714046675060687055294579627746073859409947432083025695834305566431980292341623448418543172262910947571472897399114647974986013692937917808235464641778100323790292846543354936349463410142506681130691292600816894152057934013340427662966965759854948955531118634486399735750534771472072547202916198775777976007815007828971482365552111729846484204180345576621431580838442136433126912528004404604592729985244993861976455761741045659274979350564071300835390237148689558616129916165627540123967442946492461369743654192743298463735193796268660075551952779106687625501939925461377339180880072418885464400537359994086633095327462480700728871734143279203164291457691807660547577825916677277072853001695678486909735213132643844296736081716534999039408992309314722873034239280328803254822348494562044598409510786438030358044765341193653892311885567140821177354817138532473469889955275047309131614157210874168171926728081559511146027376617842927940866649881947057509577991404755627502053627871901444786009140666278310765159164175676398792317934385483524351639737314355365724643126289388340401228172002875719867862629923445451219848621904122388921652795048091442062473522957695141378236691296750090156835175305953469957494723846567753772028242530036806978966414557836101356252030872788513146694286204144222835333006300027315720364825212283132804974260193251550966241931924216585345522286290440788797951533062318849331167530004348616435248038040416972152446481618341002130111137473867327580229728882503123457454581042901171416984169229419536328662090457112003050851673554697701800786063709153049118560849594098891753017229158832981600563452285821231114726365179937845712372964530090975867586626094897377768684612336911086142919980453399484134920345360398392266221298313143247340224859266432815612314139681122206195426793713333110541073194814412301300413050231175699749532856493535318291003655256746113243648167198945967627371199516621042504231707094130961418204830490332434653596669659497110454068433703813257163871113996779743125806595133064931720262506995907538417032181043320805119211421541936532360477226390398268058444445866257566528774565674834819640331557996729148221117264276658399673754199365211232515083758239649308551832204178251427257607904114901534683261857531334038386644469613509616376743576261246076126749546098769255478400019005455633367193344364090706910183808313652277942913424162686209298507376366542651101222914115479448349676419624252614542986996853778251635923176879260449819507082923440928731292617666284137892710774540833048665764134115215623324829291422803506918083639243708547053436566048427323123417119328370192428420098716684358073901762248875750313460581133941624346895199784130276945155775629559761381529505665379986513374679980053047424021304007018393478057312196377949056861470803934274927126803214978826415647592824903049604574295291537633086538982922111908572484746496279309241375510498559288905681554272240562478477891254975659357021922256735628294894489301566152840390005175240191964756027215429728637570023271533455939381452589447561964407541409178790294441080961063626203299840786775152057915994197814391124282408365992157898737475615170448535865737780753926945744818218040907699025053104080112140206604309169213068850638144335223632765382992705366368110764393050191665833768457259335867309117255228479820246680748693142136245894273560851047846284567119945038627800305134753465701843890663043035220005247769447076311875442511316954058758529897868722022017530596248476726811188171733980338696293352565889233865050083168700389498749169650875337623231979980743580965900350098949753297404234616313203985820451361446831286615981568737571934323401567157757703433691197224290810572091063077594115862866792154150498357370573447517373445360760578807578332512223713155572438116916107674953390695836070035113059538641903571873296287323729797942269159323703703043024895799011338728217240115138297583883339084740464546974705331437293790321562557641082741292477270837132915075142983672578410244339900143449632769621056744312897005082116238337030628569397734413057004542072028850436283790011551059719308381797232781086010207653595229615894978891766442667879922812646033983339359402653066280079171853871955564811287830241786713052368796261872376599496774654644419884719485299499532674839109172099400188534507226704663746685037882773881618779575463522495453903148199942787314472140686153104881071791339114312145460139798708669875058975376357642587313482107983985134922350311777437906397138844244565812338568383845434291721140429876198711478909760636768820853823054909995305379576425775234814708595354044688489034105754255512559736624071071327365576793695990927780096336472683271886327682729693725275880324219862296571583453604459713689703307474247776401945445999052784407704245432660031317154908145844883567615318481098208286155233808156813497446399414522448920437984790448773886052096298549696294549561892535428117756402483447748191965544330523433691567981008888274467919740042260218797435009486331785266413145478707321707338046944493472211497024385817360647178087396551274129152904756019343357828873968030617805238060046958209442595500062940497157074129728831915543555012163147079557987945854342770200749184667045171879894383759599580664728533386892016109312018066068770243751165784592398762645074559747318223018816621576558743354306396843619100167835017084078105508000689125126209100398887873054676503842366307110769811353325712294363272011238158081913127594767769420860734375080966718789756303486833406272384769007958114939347538216516292389373545601291183432455889267775732247783482915404524382978404114286360185741930756865209875481246214333018081250308984276502448695228985638436441526461450766746511828581311609915765418715774984906570093084665925170001705064171240774176458581749262360248426376914203392503915704253567336586481602176287746614224941054341347566003174856532583090247912438563318078347203313175159990639930005906072946236993539734308004501254254867032942370596635914688145482886272440761064433849518263937827455513268993643364635843882708061518606617886237016697526583342661907169122013203168542953704506875035955226763491573217893514555702072120205506097044421102143590493600337972966025061893084601300270736069141321151153414952529953423580972004599863933683682282454850317934050368638897370639977010052177888680369518332904809110709425054284232384753449077427045022712536348809692539428726169565385897129699073330883932846068507950280652692045357274544768157286720270803749229387006005646373724208469739267254322163884046289080725652989857169844033483411330385641768677680461436666457151720407773361588539676835298478793515882413885848385987780512925085999636344013544510594827668068641643377945592784365984420408859419960685254599280033943238682744369502047695470888429125418243529259962159571283779684527245710825573066834929293809689187812464528698530922722673867023341545522396066814363765954211478670952801931011222426615794685743568537603810979826191837912399934915226071241338683043712058217387248508473157884961681713833992426154158588452401206921493772448403788116584974136395621845669900217180136705504459328590424225783514534184654505145884460499502348489084347236654392998087580218089182382258520843917436075915460867903392160470692839537077832572843792040848292684621523893463983283004578128986696879563202636628001409555611547500430730954288746965253232035254371832575821906443228856511303023698231556850110957887931776309393439165826811868095985650850734425820380631959866140803106109648441255000144370918843042619054388581192345479094907323976956282533361793662705253209195213575286619440804046228247612553291523088691692102743277116638915287563102364142822155788223211222770395029727428409800061347221376685515098480150714236442586927856867706110912323998194103713224184411790930927005864869899820833938002368161377482030624583336084258643297773680378995606778106157236608933911847911845681736587524802572866882376497152412122421123461522701742901460927282711761074743086614899979011868229272039277771358822663256074572849107802313658937888043736564113742227756233551751535043205386210934358557285591888297890037790311785779594282291870288304631706096485653526736892617943424149609239711585848676739963763259407112045128858622549046937106293229702272457580610702875020082911447673334924386020053422051984254414890287036042982475368281977687088978667534093183285246148505629865375071447332432863759470438846958981322401310468591717870611224882999874012273366094693943416586897464896861723728544901788336609855324417759426385425968504746020045104216172317964649917011525835308733596777115951275669565181358756928768671589132150816420394940819359004836719463887538108096490343788492064231854722109517696157586487898643395262545391630753926795217284924668855491310409643420955231380292227131130533700629594450185263970041822998009685728569765233499986842455452641305469608748079922106293105184015160941091632975101157711284883051583554450110895491013157645841980915057972810906368606093134368362413908265263647731994377214286604336983996879139017958047742796696861100872157930517587596348357598756614799672981777596252444337491194210944689146965698546912535847196471290591215246189032585093521294438394418534171383316473389926657878674797704255650948333601717797735918574982392145452071475961632699275588011898917570109920299430535610777922697875471880852533479892965935901226264448927973344096184842269741404946941342674936241903273129129005664124413834535886942669498679754077327054697925141196134295010291466527233921005063437073321373899478575109715678617384652345619086893252820870487641519432029094497539161479691950762135156376754410134057596101681731590133271753376337087563889153764225834565515857460603899625559299810483906958831732527846053292830064946391197104733680439875664180116786207047529634310406958909672174882229198383484373145957505717908569745758513239729525468468471292348146764176699146890983677116354857078703461614106767082062064582743007438920244982675764183341100020211184704957269596900243199338477429034520483956311163671768572967749738614592783776510787168359131697421675993935867121685905920270916421028206227301033460218961358102708478277186438829023428367119180315348449803473216669130872036390894290369086429634662762972987571102998732242970632841219122210893475907246146679198254189932106376564035032341661928260115995899087701594318551585771758864662773470323428613026110338888239532568504648876337726724778995699438490659980551261462561152764038696979464427643926443138193955944302638251219581947438199948315390083259075275773106457483305637071262030969700055424631680254389705897738673583022044528410822607943903759825100285384265870899074815892539572909628502369967727949449479541747032718603109927935419487888032057582330699009951980830497521105503002321865490020744768363774154354585860734218967401100504739419242135838889587580698612454894450154699958408653238692771526931688261832013891061068985337770816353259584664439737597680015690760829647686862371989968126906450569743300089470582965682710507509697508864227856709967545185859411317237362116573909668988764425187225459298301357605785456657285502430261897259404227038164921123742935040244656765998712234453578443052219543295430133895335221199178628373060668242170690986251840030246087272729207054699744572975472000827411229310754490558747554282247615869146934068965222458149376327742019929076195765211791967156636419120973891961155810638745588241127258836042600470448796208482366441069626047250443249816118045859274859889697682330380100902985204756692551561681024052255909005872724949660304462059947682251830157595134746348856394927769659405107777681343812305066881119270041566303586002136920030801553009637931685298204674251991477078599802644358649638494919289136385263083670846869019630812314740471829751888848360332306644529097733099637931027997840478837425782386046092841643981904311072086560554575672012097628813155900892262426550371780051771598222265787769996238250946197658542445152091162904387517434900460327125315919826933110618185766008138841475545562804667425302965101342435054999480177915549517764245247749926751919498781987858389799515821032336073147848792284838701380119883010851821227796582911666518813655768163530176498189205403276430904530226021468859511830175558311262000522392903147619278478720035183836037998043867090482376621556495393302247230964203731777978638758301367762993755208610904565122117903473802209627611440536593385050361579901533988636444668239446439779325216859175278886513476542470860069243929033611565037563255022232014735198421009392969821210651271849949953666654648893839390662446443874167178815131638622097103010419992461271588658874873097136972982790672388501215703958044861130278239948708773332736273820882464190642786413097631677276566447693293867043593537083189158906729145284837586366979079158472650276280597259084973216123443268872224037840580259476875865816728834500358537380244151558854460532474620104414473542339572266666980675439096624941454987279572447457306674215115721470240507693121235008404248020706089539816841841294084481249442651600671033969590902846944999375944579454672777080659622166229451946205281423046961101431669290189442134458740105678242754433251318778875354748037391331080617913784822045232316417608149199612959508712688025340148322409514685612804295179610070395899944900817922830411424824398680485694045987115299261308005419367286977834337650494555595379127474346340995199990858875165114944503949649007630080540487547680014415028276533390730506452282717108857190431680743004521835881213904627504760726343626331083456365013328305982833262632141106346179685277668162489759213578149403163723250691319802092679954789513542664201069360549350292455997663064410627864311700313583141540570815796983697245372402781407698551256513588056564483329720822245524124216974142921948839158679318670222670456443280482224346065399591081568563064280464958222962701921566861545315232804986864355258648603186730729040653507181123743471907859246973872621286457025021148842092664877710129489439661390414894834111729348403628414303780208097241487037283743266318175461776310331341427890777598280264830634435772567244069057036030172702469507316125045042884773252294776378106367281267365927820904807401196007664082734366802876574350777243419950269149604603712295175237827688343864133485988584593317567877012131258369771337179317508968043554405585649319701115712685310641583847988916473255893586798020188772635855834194275474198929022868088254700053813107701442400626512507321855901336380195776899534574260580716009526108630973914392936528927195033953479862077536468033271424564201278969878384215074980683607316991303815343954843048489689499343989864711960521254506836119434803266775869493470401434279397687068584936468256608267384571935033080867969893176120203620153439173377974538413736817377745674832889851502891203703940262346255803373965146750517422657518944404202339269003520382945600695230366602432927073084433419366197154704462793226707511203483706570888207852378720625285815348872166848273648706355218866073867249852988077458028399453110915331664840158567183045499236113131894775840657512308621429561504619849359864407777399544483043402261355992779464618072412144616207117807466043286940941703491145209546281877529805292811098030912432978537786977043607853145484724522681719777452889717214247072222220265174445942903150662645900856273370074674007937100262319876072049487082695828868004509921358675206829387141700116627142205644975057993737159375537023752563343740345708957955743663300730894310359465850311146238474744305132640574676223294085614681377780789424256689232935272872475888831183365487553549296785217919431167957634398218015999288904591596177802100835985776132700564248711073856364049309188779500574199142036760356478831852424593074077897936800747171383475532769340925728589061482941426829916817137725890940682200820431892443418854827923819525676381162895595607418046197459276680047554201073075286180604338534991815899791652146109953588402351236426085256435838720292613419733098975656427925694469139243948655223083052542488865162716900220650731155837928809215000450702009794167549977151050459484136298421209580770381132227407918957251634225778841039276097756433035738687683259827885932079220673872927789315740585019181351145823943030950305998999460261835523537683273719351709792603472889579954011840861173246564642042732460325999276765922776814002468114250766091069011706062726155464758684238867365342782275471418705871866981435501885739553816083795988387545667233138974541297176246613590736553586591350358316666635261287552033588829601362463237099778357074991073712769510643821242619278997057976593269450782636754896384935673784666857372824905822509446544097327999229927006409105658130991218829717956711026939763711130664083206510661658487579942534120088317105628749854684854691808998098000710108615262293510528274902377918893697662391226650965049000510991033862161185793487563780172062008938850713006401754424900792136388625948459632337639678167553424590845756693887401362580482018152930118789155678506601101075806558703094822299753570216693090419896833526931320529559591191084466033314018511699842437952581159853862974178535650030083980782368481325846888068765254139327461550788318272980981169085738279342073792585839251479004267146481130324308577731710817214022730924983073226182607203171620301245806758164184370893320065283186553196917525446568269913053587690229363781900040219459676818640173201835288109551047417655396186830859951515269293965816479520922071590271748094148130367350152528092314408971350985546390626726571631442952117800513063736868955423292012405684113888650736787946847782569820898002618994672236221709458716839962364801468922290866996212659799441378747782091570055791145841723743442459631789814683533489973805039722032273719018905274947431243071915964929493229718022010373062418056253657299607964668953761598737933743955468919925526046885285104343406250693321156907686473978747914388718561181632523982518626822727763979669188591431320326172092882155087960509265503799523539366822818872350708020802186154522014918580465856456524003916547162498579756706213217334539829667381793077073762297551252687910776998522404851479192971374373115282615527638660492692220625946000301209383976180878107667121642239005797736165972126850467678661432022707569675120743137343821855506936657445470338694978496281483214883073434206160454439387636789745094075776945762024984018182224622194322466670277844748577651360925493276098001534919968595166499318607324846769348046744228212564357606720876616299479259673500066902048552320460504906313489540497429506410971144610392112512201918841037576967748919011846314306941221129413451829437422259250545461532051807268457498172041037642486768689121146992411596899426835832450912280319698450644075791314626786535383008413032435366268315036557479658753320796607054539512908540034438842358628834476294285092275584696498184173379414465291371020264966653129454097371735954628606136697887839211794806852331748287138353171779255733628040410478828756869048760395933646242528126593664640885400267033780028665666355113931180063044346944567297845655603127871891884899594346676800249376912952998188903945970345838561620795524858642343360302729895496827110055161808771117868713603780540541254457785663959254723436603098113850684819501941669036772783046732404007464794949800070568748806006874646209365807900315728319756375664096808219322318805688245593608558424094863577368007053179611092697686115215068955946329312528387911289261298644579720304889302985659782721380213273316335869006725173991126567993658069036279885533765647644404782947904805265260369249523168379017315633312820469884505863298568248512940041157692927456970806352561059816306818990013394661233676483539105295700990647579081854065130166860572866511593116400619509981157937305301768016249113694365665382077593883542860635969970720931026254097372017634189815165982337990426487407585670842141290922991857828153299766069488064859244854248242861992228241773861220647701222030021376039932429088351294233599151432107359350641697757836045325308782991875690687221089248773994564108724934788967365116554511730906804417739923932841028898797496807128566105270547528459090815839015611630364226530695408484107095404119703491668492710446410841900477536831464732606611503466597586678835134919650307610072334489846632381979615265184978332920484407707165955723334144140852173372282128033446435758844171135949767551888533625317348748647897094717423030524650972389131276892762502117466794832767053637035704340751381004357046198633647829800175766300213180324540869583895238487598385827397466114397286063434381033991038326337807797533105623058146595227317391117621159558657681829621861876359937462701097165437707295396708379428152775525670604060427484956288593757952269003291550508912186943454969260863135027227505817917870790648444117132726922563452482852127604501776757219029339093514398198836975254031246157963030894232714421261226156518477230595483853316516165689618424001987242178170514014427463583241608023777136843708097096028241794328209639955190610634048896981625824493558242809284338973853343952690224695199701074798008807886207056386289965634753500042111677351726135976966515289909463404697716396829378402605231998008245362555859350043496948856840172586400647000712806629055327162149561351880463993878433075616108465478988376926519285669541745002127884908206345609936315758912554170564496117029238651077873142028913598257739114962715902878655570369949216180992085540738248511977138627804429651159557153871203597372110114601395668982893675001262480161424671273987216158808300470021673767619529286699162385978821973091966496890986032920600536565578830074130372542312907334662218236217876549405555147213846395489708651055936560808144957979100521113101640431295804892924245805317152228058117362686490184375702343578005420912134839154457307666136073370925270266947023371742970994862276183748834986742745213467390777969938969024353839880094583086479744856874821096383573822091420857196077597812459017044426095065460672841369468595447554684607925753456238011549322365665294963656308818183536629595260677579677368169005519859419118190282295016005946077114726907762856361441779093792002422805682833939835517334092523972422907956497093679185124674681216877070187543982217212916803247324064979551656830608735356028346443891559612355516544059049193840705092716878011863338044404201680567935620868601901554658653872553041432804294564400904835431908842298932714982609675196794474752266375470697542646621199258980576998365620046279065699499441820030279298482673603083441511314496814694347182486648660774230593850245163573071067161120412749039950022774881638835753573512761157467698027556084897408170185111482761052162362974305818440471249397585135023273034691751891336816698283775009851795651746847798512125016126797761638922186776540076089658271395990451067523503500472542038323298296088738145114133901589045342930965342522654771699799886261092486205981965631125707963403666076013433004213518686519615813678481772220188332024046409793447840438242072443287212948760601860129574796281250324210084869139392591504697686830283646674260455022005296449904175565994732463919597838521108232248947550375068512451613236970475937646206023474325756615229209716653399011733318972277788929714431461479039467295861126691871220611318219081400553912756252047275872659993229012783609903342066847849581122547896099027757179716106086554636896873914415633941919922550058588125325991756495417048976487218117624587722774915042355991083246847572401752253741191467507984593254364651669353612766854646822191394870079272380012693121192283594836129988095826202852691920066768842258134973024176348796984511827699055652065983271973908116101403680564188317239927019670808747324911380350471158949434623285160583875009126332965808214760532323959373640348672843924335076417907483747593503483091806000431337946088978260457636068044764486454790008112525486415807564929764252279764851700582127793780861626312160985158261694731206743563562112176125996416634651325590062290266872839794780119747473990897890030216556152900916681236728213679849888086525621166651258557533849599539506955935002826063575152242012922045536368410953289411159252893855261776919058098655528863153180117755452301944834786145376694638265396152349609069466106396585157635043570079547131028716043116034440431337844267526223577601490353110136010395807104412348185972822399325365604192544367928437505108901826376087037214400138114144077363921358621875986538224262295194463846100770247453113486948654393329233984381351037014532804436002309689525734649959278026046605324843148679567813570699573428801443881391649290521437871172509307083738047100300146600637687039131150233941593936193959581226932220905366754455026202633911948472334196832061460906537478692025370622095636961424113472877870633722086680485517592374055078976278600220878556887255615486086812652532369382254836871804093649151781244999798767276901922380900792360144051486304974801598430521484625543766423402350048272928935003215748371554685765707622833164246203882713715838864289988670808243762587226013859591086074643830347058995438311812699438750871193507698148864172016074127534193232385668420906337523198618428017896161813686396556957440420559696085306819454205485877148156515357479766837207929868051002844419218924940308353507913825316640512357898966769551068773159981241837493529487068839746154796710122885818149918793849158512281084838967913665468779425115823287191882812249494684621937022655509175185088723503303712393311641524612599035430611778728863379624383789018070248956824346934641853646781112459405444321442049125971780853384937974421062438853764724467177177210712444457042193705149745330553373325720746681214722719317812417618057446189030601984056003587878282239176369620892991056216418630898159597661568567755210431244783051505892935490326352583810055308266704324169126390301202727556882558143820755222740770779157977624493381286637507777333411385938717471614173023338025167770602049849968940908865202487975981024664113304306411649994811379655129938838900716612523783579543330236866174605823304998663197420378707836464157510340068863529073064683978519690690007061699328487855825076087931160502926342389322583924380321902248139767365691847088627756937386918896089599091395638093760292050967006311476996528343580381562042941373994437829843984061581559535740322689134150745854339506627703303902417816053452451150501666484778497495826611395747733696236793303361478725745671057995929550287841468862524039357426709064212920278682859949204336522407396744993282366352143227685851427964973613337743814063803939612468531386904668729947292175226531951379534294509084236174828947444024746173099747303179207079155111818310933469242566566162685228220733207786855525619541469172160759603604365612305730390785277015161286529853182781621033000030408661992188988293412678420882698989820581405811877677594062810145090718554853303554385710929776696242759845996016571170376521552440174404112695687760221640511819922901711397674548594511682760008523791427171241920512156822903218689302880036691997910029628385578076369884773451835949568994179728285516317889241261773805851872952179870838908810651587918383489558601947276396443273519307420913797417364038928146387861428933714535291238136451477662687808512973713817482126834907381215420176487953507561111339089467659560233390030776505141693335770988856884591611881615362481546005274209449271521741542659207650487386162342379982986840384760878199246371046927956185024275362886155896826798037961926655578914268348419553221205931686458813756938992095018759278446315732610739438510647337332123694704026428095153358267542921187659410256031904017115596352513848743781895077096561991549404574845590988655382113021999737862104588491310767709017447114772514147084924792680338680017542636841811257533697200040776799132815719310915048909332339291170976697490791994097807321008759859935938586412899520936831296650595895374845081033578295125232513696680739838886502972412594452452072236863718821929896911371947277128830034869223287219427703490043635553811382916503246190259576822020776724687566337193460684330995852822621222183481333714125650697532472559637580649490926819386951353834573357917311648078917406440151035865018866784466213635571864206773755734910199461815997463772995256381884216612543973810041024138629785002348541565137159024562088835494783009274566151261666726164157898180540462277978694855538560851462163905999620400168491253106766630324180784842730672665376443458307020580590570005377248964382074572493534855947396253962686410314114848867370786298713960036438917646952661728719706071238994269459482889403708135186924115298746547545251185255695603624979071910812645020460174588344131349783419200349818391477532598940809325930715568244759642600454954400492118436319035472196713253413088088340121961836260014679966821157640464926231062401789689159223173878592420322984474136391116298338443203781716488174308312651655890612988383372574868307813797874360139819063413245248994428020707060615761664344817129419137795426799227804919176940433991072895423683010200657814935001823265242405086826197887304955706862999328287399412622424346508037933382690061582013921390152176827021202208239108319596410689266733271450684539445932183431220148287608888159200727733600086927733234315174890877145702748620785891493972460405081409865435315607776741462243620453797243684364303197230655538282847438476016056418694968215001676632627371646437221151404597609045485407209187044780907768448719927403167778842813654257724099382999608896807111434071583393154737563774221675776791598254275198925375783937309256565927769273475043081395394872456142641552522372270164714635301645275252736503172343284871088543245606265124043876509322700355628792435741628930322336766230282035963763419177677331339077267832479416773849899760295323320643751979574133841345614476565749967917247137528495245688098958194950594320588497140595200257453431444084391546555149657521821113541266556252442841913098301218835931219875739091804032220274565825081414558982166595797411670383658808027536311099951492480491547801625122817015504793277193869674814113026743749251889457993894707514946014450999388114178129274618372148150151493913732289945954292983305071510936758674586283105449872889620121723507388413017731581179030612612007869783034141407696090094782007591052271907029702114459886440328616388000811203267238752215253953598106186981327978800996169758270785727183299285434248994161217065528969509922022284224499987318715066955281270512774811286730810453977702434914713454124157686005329406638914800183676159849258243810520284366154700984323769103007593551387507600303487382619699162315194676407283362711372561203827806718933091807840742793118895363951452006532493453124859246812601769829673853991874720080863464744236536574661868487342965378272068664837518901059978368333191559513974318230830758611233487914464772454586449471246346131151145721492249603768623658379326793404809299753012625505693294135020586216647934047398349839097153791833751737661903437624608980916455212889522687660490165828133308486336979460499664093397058504825779046652778947611752830529044273093448354588612500508094343718198736818156078355055901761956662241630788484334406658117580391912354622226299259292908355037679087759698101046183667701519811885882745780510149896680594490399096221094282430925666519574991397220757017175928212606122743878004338060118974145964939031489937638843426203977262141549175029912343105632709998536445671890870104992059724210174715043023343104964665200009380030109796468803378615185733433167981974189263811732284385200949628360398236848754083222923812735555298179130574821306912769825870136591549758819478366055505082317479895748857323751104459560764952541978042865864322082284446619640991780549253473967248875437348105422564992064588098046116618089824783469651034831607054953725661079704399681156167811403997267084730647757730922997504188894516758720303657904891854201937025903801088263440405610202411217533572511091125202139419753228565958687209491234205214154342150772428453992617411492703201322199735617051333780700512097590988422142424623795497716827439123715715922753934741834668586156277319643401816403911486521059429988527498565847496962832817696368521434732862386000982499586961934011599897359890984439998781163474304008218636234586917947131258582089071369432811991951285953388090514279580182169900738841517556909870395633432537190002858531743059302718517831451794025912882281223986473575832174513718878440306002844019205921308551132055893211929284772479201616141474677811731351101752482651240690675959419062918486338981573760126031463547185221950721399946663924464665369961900031902044331867514220809442728852670729669630878333320977664185640453948137767125783760991748384877626903226603925774472294649553825908095909952459472260854671859493045059361364134667127599725274475645514624481791463605902680504358079694494232192201431166206804239152653792733335276262409928610402233040716778057876593483305767564693543699121170156165503799745216381145211578048876399626316388715330473028874271098238343019596994322868058710700014481133933752334714830700444512683163873259002553246575243424564570285923364104754785743214485353633457457578696011098685672460023088614651113788470011897314895024260303717164767338049880164158026367724517239724537645528137424592585256666125997086763337294470427141866443673556874384290456132291329147566644748326858001312639502487618174120019373272318654914822452226470146097915639001295017753125846735485190383800475418869096641022522861049400342820158736499917318412649725492210555332443520315181898327348666891068155439119363438469015592467341971216396647465397025491701710839312722090669106870132468978856275456057966939555977819967742704571080569179609828888303420244927116187322658925583733409298157340483662288257012427537438614638442923384045684185204887851539476361849603811061215835332194249678744724042430106351592497955079179513937996829533199736843097367968530303822503926272012288484182491473900773218129887505833312997749262586345473701465012895619915279697636780443129713125278804262369362137162938535768273577007736266890096646108437265895586090965937767472087231669982245346595602769638053461728273669333685016795186489294004359042740561612979838665782081236169089543121236401733897533047488037582498605166546522210608610011527921382640898771742450693611862185261315820449506371411158675146474449627015803727774151855070997274850525086586274314726644650317688852283095868872190179589951438842859561025233375546196389806709356253096680302440507250478697170296059619202121255847989373374664492552541059272405520639619228231270689244781910081507508438476320419002478579810225053449376577080809367266876478280720617895748692891311148113694834594223398441325770154236359085527869045122274262144746773234105465105634164112997759354150417070276922505618912704162304496400182655196135748540987432934307658099848275960793148054613033464583810711769321948830452048586700218187116693978364215905357543571939702575856952073183890854913792186168449280416503405202753965942644588056424491128316681791138793443375568513327850952734106259784414341868171539239615379408818597981868616637723544308543863663041408145366520401378532517031314011333448313221039546349258938298093075116615352236089877931326338863066794565536060027482727816975172376848795227237564056173035338831907397944556682549715207441048707089768501769523147362143919883496458261361434434795834267630498873664342933775153718088331692785617281334343230714814070244576967180855131014788253901446407834573753630537288714745945301275508911235403442535572661857818174022528052040521346980352704205943561096808300550100565036650971977880068769187069835784709300052280264600298638028385289724137056951174894246171215706184543479403689928622657944394009056835554714490224167148839749862348732080839123863635309120570710974606792587640620172616464468125234195719434428031389797032546151128132212779975180482603226150118027769490130147229145430966026904563305744451304057878083230119075095061229470849656218883919155805234900139603894083207384228105934662841185926064338595559066945187173486311254021675117277080852269239494334524134133256439534952849455540306047908098249216636536156786184933836900311821431521793169198562993173885782857969762352292091601195571326124272599363165090977532505360458716771113892682295911827765473266454258643508596443730511959641234575210745306045122611340589001182288354270206362979515987270336157098006751830764717843877285924487220897855501223165484156353561610748941329165913476773253832031743245089000895904608097971555076081033757681761941701738698512064124803620680972525993468707594248600687122265350555984167136657781979764367285117371033051061697273831449901346278975066273225054746326435562616744649395198082382274565725344670603419277539798379919878992594808358997500269657855569148991770429388821749324781779304112411787544930783064818714817822705828047270241589219886998152586989869054382626680247264136715608882891739726760968566918634118517301518019541758694704854842779382879838370846980535115383251533112764943482583456223412971578725472397051566103170843996830585033058124131603294885668516524456420153604007850935148498798761749204487274120509932418650552666483959268309831681326057778943071470561233441329062477735207159318583982173958079930636713323163367155945835507503517954512598022708076312211424324623472969462453987471692574080192829318475013886857273944853810689416472444900224050240229202585228342871753319608711984825644990867408661146686899462415362985930764911027577125966748513292216901761469880227686956115775080195859966837255444692901979554061600764387829908560803809561089863383946699555821444768922607037807262878072542654624386187359697251983908032645413867077446781185833923421335097316171117724691152338567964355381852327214827218976681069044419142137289743020746094848070365505380555935594683259871755015383617778886569353808344575552847247331893502843491576511560408341049304562212006305483578050394613632998639806020181607363177425959501298719320596791054315986423812519605784482689645296473322032596714784902156930855056712614238241203598709755859874144586590273712992117009276345126142312233098544469431340498428070595909977560500509908202890762926878576087315499808426431718486057768750726898205485309896225208964219794732309768301515628695115346080953178629071426491684157808176987217155534738748698265974538823414236848526956376443658651875638963120881040090271469826545017959366904926234543397156895186054120020267818371701811066942350063316081753654405299073146642644246737688158434065463531105182143774446803464203236510724660288498967798832348141303638141944805196500151545467136325762060092804912624751005640953590042758682450046330891148079312400730555979257442906832051120030474742801814557988983569217245423672552362884277037256747878339858224114462830582289695367689866382858586850401347069425753498066607496391330544468794842754867587194166932526537382263033069124614224707053748690171239198163753153166416588880445020346547928709656615955862800985075762432070617867230142116637529184834369891121916420461164183442161753805516109829061985785626865257631054419491070494502088796787610692620934921564757478417181471047462263066518133766760890193481171741779788051786078044536713201923232206804455193843719855526362553467246821853476565591077983698974843451495701639181259616348243033165310402432086905940539536320137040880947666548038289118971605555247927675562202820106388881154029442303760254431283922194789359488256544436581772631095630495270442393071883955022241099959958267699921530026732575442721385584100349144158550474546634748180235587275264445595988682313098180655427411247196939747148117981768869330301506117107083240821794868753289661095370484061975371304595457161028709589674853454690980432927578488092059556045553352379701368227758260574574040066428607062727603510284173680529572804379578300700835240717481674060262700626947728809020832583366498209352799423654125194440056073175192273973358702072112072296178205721552026913201369791027926078077491771192568869995455093904104789413874360890321747191497302149290201478457431843168175870771379254898042705529358537425988482947598363166261029569277082390479007141167583240316785895501644187445697462723075386374495333924078277068681261164147653460313772706347595406990509999165133292773639107852422676511296458686040377613825831950968179619057394021841370247823792566821822780732052854757896902344062507528480315866208625042249897129412529507602692692175314898642842672957875372355293434143830166583885689576548867586104667988919121417687507736724930514169416181477829158404086472470620875931131421367973605620079766663241985759810795366847675290384671401376267764314883216978526034471376745175300025563311562865661477966894170599381201950867423645513029993576536130557269362978136970813993653086088253906837429079643983523115014356667488504128013322575898135161255885377938266861638567118633314921482639942938610615741907044944826375388656614740891507304281816565936859107257162861859853263522344305226797486863467030347972048841930016927517044864788142227895829035948938624035967273580550012894296759388661317855996594808537995706025585462145750933383607208040940854691442790176244251717841053677854577743740533679346652833691160180873975085233611456344212487402144031997392570546966026116878193890746038249134215044332682771169083574235087453627833144784405856456432715538000084395925585908223474159932098859846923051805346665544511003846460979657578430420235381984214996187267454709974545245844543474580253226112157081748760758121314712560335727007088136511750962479656622241015006254228281114030089277517617398848976658263752889195975048213695204006928051239176616797359509590833817004180820807040617544101247622677596448451074346272555501355342949493034211210114068517661020039005494174616906615590002582169777071711366170696472248491581489361023762962699391018498481727765192564874878700719580676697473358420249233821887763808854402537048164452285813155534461121098248229840426604836850248876744562013858959156404819206300298280166163512870081288185478389494556736626854827819299220075815014517936127514739081217913117176308555463328438477718823138433553879676927665995879833411695011137587718424631435559356325944217986909596128756767998023241536101912532706743495071786481032536434424600729324151171646112915024104627050301072887732888036307570364632002554369856297042756324286199716921265067991310656941725805060171171470099040897224465588854189048817403480591557425549073005278492435386739548752623834000790088121330804492965502402051166856351866801168025548781242713973027995466355343806943008983114526304514355401800896047710548812586517476428229128808585439777089776999578894671159565529409595276767264409980451202433440266083585405651790626385009000880516171082942595441502511818527399959105530854641810991997382699064471716944254214419092632437183202448902608953594063995004164531886982688288392243772609455165585042489998040436632165165922917038636185956207980788614045740436792692188332104804062235147576208797014523127014427055730089617826960149991417607333495930415056339209727838829099769480104295517945061370697037270502457181658754095313588070679883826666998967345758195076426411917274667504995604547481192948214037914677978113871076026506826397214880843441035771584865108869044568811064536927944088648060925040101980112641345612821417032273757928422009916570315229159607950182647419814648958071475058209685148103281402822856321424316429616899496782052352775588196774497831706902109629181644921426693838134476361440078525100274436385123241811377457995336255620554500684147718814900107400558168333913110011392163041617729237034773460398222798495743184244830093277051549950803287954568589644886506324298096051449910219838917794193455715134273918883046848641298325027892927095774257283987513581375915131955939268457375222763780297971158157853151580310823444965276147964787521599021675689102510574151811132741041514984086569759093842984187001069005599579686221136238560768503312172691755665066822125910533734888727944604851471897228487273003436851023047479715499830985801654981951745968970212258982464422635783851286167878530701540961436123630974629651492199896467439284460334068221588935894015305717511113295403890753310348392870905369088180156705066677865916601086868081076255381484828186257696298554951339746784026143397694480510123421353743873866915148561941133336848862040996982254397709057234909235169896742491470175622952568107860720507735971763001462149252152401786670853055272083535331206443562766229980298720852209120184837622598217995626131609448369331069301386038683011533831581642957397999897323436274816167816607756017765329910166897259255493296628784008758885973635096244699536657449406290668562646146742913055414201823511681243685646542947974586260720107793380413097376007496322814995157632843643387505403366292558060577438333784547708905596314118132559611794619136173379183478386436292937437672309077263679984333658453555304486868123282555990465473926654664647144287819616470008577141740147308368335740652471898410999040610727841927827157654866344047039296784001153553896139677254903104665283003027832041795000950884827682658186337968599514314638095649890443015060683485977036708335854940727306890097074732338952814071592552614450612295748645597430488828519619100901996514907891390299860475636026419846088817221609762462108409112904768856858441529195627503343531019303200525494837998588412854235885546729658207609010538649355431066066515727916852332354376488448130054496363572047187061780204523636659569578324977959792363709270817838548489149306004360920336011332585207596660085507945620576997301457470632182464994992888501490240932571503583396896326643990069990500690969563824843076515734805610762788556140264707534277258939325000200476448213881884546611848149402798461821631368823873901282059811272864891818587972526631839577248496603481841467229554929412888031824915757019903671235141293798616167358722382309588032982187176143939290464446767835433118146437474365722323181321927171634655626231444514800137342382348977987002679650519274698979638686944570964678463271427128842665473896280831490079068049570743845444718664275828292192918088291061821076031637771946463960264610024036059818757212408773140552709264647544116721654409704070709507862932468542541736890236598511700080798220301545918965645654263167571907603192197691421414815160924221579514371966867560499936124548551521384217995456098875224162764604482345348048211987564885694778495691746562370525968798835263546332540133752185607533689490535733086636008073863147167815395055812780323207214794076387278310165348357265488087803393296767783924059039838781483209856389823643048691232944298292134882512145023610691879505940663364579732031041051849071623161329301550077301403060490875301989866257328107696176138583874481245316602862128873544032583962693093896214271765075280225555901417937645007280049412158537862353151930704242725826821810082606396347336897246413704002445927777933299442760296240979294425306462401668928332066870315116022239477188623249912641336448972422210029977787576266708408184026549140313950568818875170618080406664799928406027027831332465701486247426555935307173569025378613775725003983959058663064027389080533992493900641105302466405812035249625423155082021234249454385019736762259134235471763013857249431923790644217436635460449206615081362782933861703430041087894761757713810755668801559151995454342141708902044044426073803388185105971392056248960741925367062519005092513950335205976774044379386434279814658329946301729435548959640699612286889108797583076000403477991809662764631196614485321227776219292557506674465941945423803528776573590209421114962148361641990214475225143458556521208467187976775271018131419530679292297422540586497697126547369379498106826332090915161788554490355271939725724388221924739236215218124644236779620654799853755935421660555063984770277260905636794275554012208303272418368193139671495460375156756723476133933763618523290648676753988450723412155074863196569276880097223924162187474211007789062916574766503866907390931087262477436357085034443311776170619008698353129220539489626522219449324448490717835212742702785552156318959655634692227213089911454401849425372533287020819188001557009741538954652326036253528425313469880106018647656524418414986096561894764461350386174479529798722494253279584607506368576875864388898490201497092920389476085960028384200417857839341787943369214613843800017151415043860246777097027089908391955746822069536890526923202703027922964094949413082888729830825844542305552734277587758966792428245407570979719965822419097046582147759552924913499286087552943681660931171219129812282494702843688337528004250767778139995384035352160311246081792096286211658140506328317143285434732312012635948281182198128414908124173477111873421413191959313119921793313963304825124306962386552907421527971167175144471484175834336646134713796296762849804100310782263228581619611692456742193118661005592520264903537182492307229651740483395704579118227373666707412017073008970379270001838908984643550433002606813284553989251013523772722149914252069990863689643880612569690544757253549580695481518283629318866941809884212352692403438835098028632043101585475444572746222213544655922886853107293621803397485979109144454009369200407639682419332875320741666576218319804332666429403919541910301257690447137614844990334211174434478472529766859346334220037523127018258445429115770998301637779026491305129653768973775257752317807628236328792542651198768195904471069871931310044167635433960999499326846408101954768799409192367131336610751704994623248338207939331031275572982343253949421365240863517961220156652351844098706249085580395649378184447903277415815890100597485010489325266730866452101626022706374505312232507060833359026110339854432784661531906534392973698083077034502906882147324530633658805497925299461431622833232325667181760550266380726190198138085878930665972200833949885215449879285666546920147410664053728839879006346645601996042705145053743220882618947637570151225663699792765173772829862749438265689109763941236264894728777996419634572574046480875653860162755954357694108644799787094472138434257809811134750049490467465348760251811018804838082146977147005006000323705144617409514963615391154955704686204128502200477979505130203951766465707909020347260573601437534186429897055455363081844116509081000659761361041645989509407357353553757067801853016134598931649402059225950162185233578783716015191321227755789193287075738642109086858929606506281403159342561805103958388731042751474039962883971650932784587691985826300379065389503506494788270638969820300651566422964929262834839256623552566850651371923280348703438787114958782979977609878813920455891253013731517021661678354208747156073978041914044625123433723392085401802282151020589783056450226489541054046998975845313743853715539441118109036153758840535865746089703650538894716414133243347833735076910306327356570454706690395070707741315603113292421440438560931603440820704875930437890449131150052488027937159719126613448464226174434576949860626739254387561269826589613490280109428623713542357389262682398516854219886242689361414542201945274823362469699043203408494517999316030671414876326303984537352334992518500694838766247238387686562427376342244447653744542021338648528487875919948651597176874365596178250185160423352399761385382507700797902640775989371954424740392448695577532882658645214662315761952020670432220502941978663683173409313642440876640455777693338816261808920604562621145997935057943156435075657592406915111425355494439141091501945700092331216678639261881613795365172954852750634820139226492526174245825848411531140832366716337263250571713733418778042623660726630004240146194648665335838380970557628462734488388859931797701581502011086458383897891382373995974464093395579641802756310692147048510308073640621354236589053804587399898280447255289839920602078339659074187640282359288041400728908909992667660607602765292974606528738540803697806899224279455630795477139031469193289065672655257367387972142712470435314880886140278918864223440615680686537813044122212478664882869977194729566874398331456622922843448475253141910119454424291320714293947380726154292813087769876878358331931371933578966835376820093878361964219798006490036709912124422077004888018863772968587461843644363262246116959299800636839244138988415663700833524516443606220702678068383581097805114264754048557478840986229365615923958202688067692625380328740149071456172443458328613851739853084751940377341959094522140179011188606997267431924007694802973385251541750132893390155075601875664777734808190655257047457756327808929866632473104747875372263187099359950486275871022707487017506183488269265806017106997329614431269205787519057462849711440903978898261650256025090001424682114161268258666346002983199571461474963470825556688413658203811880693363154799144354177618853032105846638636379082584906492703780276784293870803308727724364785419841309887632043818729875237882202754328787712099086676537210007411240866048124227677271092494282235844024635128317345840627640630539619159939281925876080987462944088237574582444379933777596536280102477210121497760285405179730045559512347420978470651543034887732110932626675100395715021695307851257351261479117394258920247573452213586289177147656700610723124658731463252548521271001113066816743560447620325349276235810440211078148122253354315590048405031943476434078115052910498273126220095535528836419121819117081728584392326510000752698746731229159776379977268984161533152722259884461903733644190249400910652392571660945344689045562451771143492177848247730892719718902493362761795231059202290011534031445124449596877037055284140796737779039280402538636972163076580906796451286902190866520853933750652223107558321424558511568847962383252717883936757491914043709257801941417050150067161510569826154920892658376549242270336902048692640418622861994986780367038785321380241085290013210004683439635504370140414082828355906080166540055594666121951643210792901516324765032307316101382175803008799560140134240787008737188761940616241341595472383530055016046231130843121179818839835359491806058745391404160589407256596491460252772852777830517545955159909861969108728788984808429662448669306879741403801869414150839766087504261597076544362402827415125556842745824532090247910636069626660729373307019854247263674694016438679996685459579212530411229264578262459062024326766539614983782407144154216400584440124316002158921007664808955073838425058487122887588494966344829497837037143002146748493256020686660145722401586275529576708571722900485699810587613743332655016353994713521602977967505153113384968258796225685142920271425031017717873791226743645064942266062298013482080983413957845941200280314779401664147146969510030103360607063160861259549544957210803966756509062648852145792869524329145076115617693446162858088217187260219313226038533998697820306959863538158046875944380690895221812197843002980422410450051171892967918241153851861711989603824077768044927802013412933426333856802185953787336677317908712067528767437944091936166036650858169406419670098800946392906263931954986707229598606712159138495805398596376019453084391286870967012074629999151951632509183528279913923581720493604414561191992633539793073305157875125524521916899529289241906889111832925888515996793698029052523112252466786807423581347893380022714704818876942043791885411702840220384902293770931363998005691778712712567389563486523270250939777627218290599040531866923610116840553802891519638168717890148014684944820315083634355296309184091067398361922686461792136737718529776853523374643439172151325845800702929112147784982419322952677354099315547811833866621136250828631867169347725735372991813108571960880251889652946954311954421610417764781352870048702668119078140360084927974752742289579061966387379552175316634083122265067431162523274359581612886591740595669344754207716217274188856277322190024033091153883233703733670819026830251996286765141675381260109245953175155647545803111065726537037700097316018190644041403304755059274581634276235295420338463897883385893433613981472345154068653156390930227207902055297168629711067442836840885868745565978155836069193362289431204807743945930818533333011979111084760406606420556782669617381397205405506080343479589000733422002773633160289448439515844172291408190755960727319873743808667407273715468278174614214389360313922064313090602012811758844677274828268634672233701246246462489065044063279779870746999139869355881432003744889773728608976270492676693230025241605020578370744521810288352709533361345168075648293013846537579413534388637762239910599773829733852206823243652640375362053231051546142042214664799678627608143549645288032474008299373634919263243702900995021911349601763152836034756618048342420245324241477238615695167308021916561980829186721039405476929592597365215328750110188460735488774608085938761001982749162730675187501058753123976730389612061903001469793053668379369614158399588738342212428026702754124037476554591438205087040177385385395896862475568477329073559763997864497322173465557047354156165403306488359834805952270124995993909400529957013603854795481968029576369997886223584013074280285594871751687082695754484020710677176343745372054575074797423500997913006236428265043241257100873562936304173088902399385538184761482021341069711029496396114878910135645036068282315711875883572698456604806271633634703797171710094291637801715732554198728100262877249347226387527564109162059917810024721846397123890886879430636667413017397391865601971583666302781492885958348212755737904395675901312164262560261456724732618989240535006801717460749362125746545515680167754493446837437188500233095431900630784592354176047034871251943326305638126423302027116308205641940958766787514260207765637342332231259715201561577389354021256351937670381834369444640696948039627029468282342971719758705116443132559921075937323119742175739422157887182379284822929395879205813101748778753059768172522647805480594310932069232291509244928507781843484439215456058665184148984844880487585761802761018972401673761102394782134235240122107344574454505691327146153311719178022649820166096111735321897246313576837805720749875495649778817579657720380872734756901446311348380810943345654384454619760007150634810038814199153651179819089078129984283346975605143736491671755771486488812928774095176335187719210240188499211072620204371697270402673434283821120471050138976621253837662405738114438887667768807296512094605649294449331718140341175515404501466842171027273250055639754611020644555931605674592551086207766784658517482500034872629540918532002763151574846923632803161163499795221102875897389874689602930665947397979564490150444749987710606041586450217411197628902010511979937292330845789885941883594808776207481787652792594493012997657730794573291301540474314595642648122471438049671632867076328411440882924432257492848831614121911015984365770675341796835270658562476520221622035242093306679102684968358660402975863658454275581560798103540172626342831037480194155674359416454761338238728748729863826819474582743151799955673999166548989683845030589575010461826290795757169335162685346680391616076346085911497069083791302304150561392882481464370496211223828243798639493477701647664844532925323245724686521633621850666369764705806671369870334748409659739733760982500201764938719273639595690206476113234678649152435791791948626801334716109436846461707516598135350484874278311190953570713661518396683664552308848848479564935007837116748280592585521024738687473529751896211317613848599652254906583175821158745491157299431161269364826816700170961518663925784153925479887383956416869348144957149156860859621990956046724384830577952558256276918709208648567116089959693363165183045190739223002424681505032436675299431088835258103617616608913303067050826364142247793890522367605948477954767978736623917874292054530092735210563013214393906045948283048620793100552329031663462199994131021448166324930794212983559668610035476088220584351999710749901146413142826774888270938781542180200008887012040790151774062810711678072500560937045289118204465214854576715692312083389933245679450509762405078352244364979614490424689907408520969047303570498104804315777009958021673056165938029186067009523724694267153883483377972557120671315783936536630221603921947611647273157186935557369198848267957005097968105513005365120275411614298136226249822371874137457890064173055982031759413331856305318961218699344391488280631777905191691293133268100664199457963316011537353030791181899787519494701797423941723551463186903260326242760450973841155263339481541067547491126425989217540452694853777100036934052429122675019893205306074111711188285436579643061578749208223697376245339739072771663754518163288340754538093046101218886927291512186185524389500194631733828385816800724865178457021426547607075550155642505315467072797898439795443626316631146737571590734566709883162212332143336573745197786025766423517172627068355268228242626356810608219884505126188441361436246627204666338550180453365119480202323498156212630431623230932180419098444941763901311211395943413899687636894167372824156787493273082063443649301233080144862034838610897789377682580240256897884932742942758753365344053521103804059429888074008865918469149570617521990711258651639272229572215345880297450005218918255294999852041772801846370607898547001797898666721572965108574480314281049989812073420155689693085766249126136572826782102882147969925502092002746262971619314069584317307259199632084662436345713425681640914906235685292806580009390829299154939029165409504615274906611530651672832213728229708674857308354521412216448530588471258263020613894020646949434858933286221520202554878114620549372464255948587649071705514319228268223286968189992715545639835850799238770148644772474366288268408432075442973626430923587003266087328460454590377566236692100177057419447005525053070219917127352116361970730424309016885647324198537187899894611251122542810143897706270412198860160233530579981587110634809061088859130796749659822187564110682754824476053059282994606366092584129178042097338149853972492583805200171477435527459884079471099375219395337415588782721329176068321241474303950132089572063965723238421962910923401940475279904534913936370310957326084425027812116757847814999899693398789416274705648590929613685393884267146179076276487840285227495948954040783385027707967927364147672543766822138319938183549801916155917165970811979486874993228997065020231170227668954456079375924981954250042552187567395214264314138422393321821677636313117719402641942783881057237141324812799042013809048372150611666339789564582056845808031267066229734159452679239958617453870963400857810722059048920581087038870914959240820819544238580105326638683718572695263702322070804960657273084397457672296978406020599458264959920385575800293187244819208383824029805724720689783549514327804207901946726182966891290410398331814478667679930590665946271653327337637560059632897906913480425830482189261893003870490724331253584497553238929087276883025684061760728231961183325793731395374813330248953463093346400850485691005034182988412342967053732496749370376970185987153869766300859962873969470418946251977606170341895654631974782217717198726152962419398163772624340224562936843218282232611015804563027609411093912988016614199090612371279300540273709632302546062815864548438623826909560476640339979088722541552350933816821964137517648833613407356638155572600751821224131348713180015787917422531707881107732680459212868166869829714490466640814250205473931339440940362560385110605376215905464660688218115874568473006004220566064877999697321710997330040522056956361302727445964689292564410010522290892489169047696597639458855019936155088358521970260759008167602125944311173287311439095026135269978065366396166507349807342260382126287989598214321410164253391171095790437622972496573591418457125745114740942126674662813143619211896632173397291154287442212477102528612468849829360513704305125329635408870508130548585486113484705327106914050252593359170291011611711623228543134091206319856529371733026180534037193854095507106348992009018042816910533077694640458256269812838176346782100509802804798575317258688404252079751030466197047063092491755469094574480777548473583507621474680598715021210605408634294880155528422387169414770028579105857639730142433457467010425236015637087959368040395376119544739762907350877752483788445124162939827367001162331727329562144782429714625912717175235836382486061004284694517034817479517543355534972016462634337492171250748703460908247959407677682040641812160015981499407919413927774507638748017522393008285500253788229224499461111272460446691372173625836241288625615696628354042252312730224134079889750371866763636998974737799809451117877162569337063569603502971818524834863140494168918876897092322089816997376806417795352654832309898572028110543347525289883938763510912011804942171769788027607427304317773984390194835892945781125381171520265292417957302212621734044656038845695720693602855089528646323833105404657348067899156817154969095569847995582831225894601115286343767631251924212287046787999037083795559623334530507273139336994735089960728680478793071267280992916199981223490513667225499702372374824855991620613998990984894732004710830689183609765000218122488816320045905050438744372272328705555524737231442252219333688365755542403492090831169068929989318725374997006938742937404489447499000808781316206085347968973456128401600791321025554498948641690766470799956334909160267608973735074886867001985433321713310129417819385473607330759763914769978973014723851518864497522392180876676017740948965690882293203562754066036159534048450656416044653320359538277811423842235847430910261625010898607440777371614642402652202863676776846562098298079317102642741644892105025764820901336436817646728632736173153379239469324116279999992304605911436827716050059310309024487693734964379282428142626118452474412163819951699104152794024021100093888845528941410112649293885023687728896264130686044775780361919165912488157458323035869439961961703415527912031757040844963727814736773836811638168441515449647588925710919203082969968600231280251268089241604057388089251429812099349561412662508508468902828212757482614267425460593569578355012454242851482211616706316232886742740370069846353831227325377151514886243026250668043393635759305438535051261741568418136716802159365057606269628235791479740490916715566552298014609763002435819986393620810009854207241471024283536092818134591855422327286276749370266314563321118397949358167730443335804545777055435253010221373436740281286082147688064017851294487647205691832546205530771275971446066491654089527099415250735892447167361493286095805962383371349974807066641486793574625547248135418345632126866698429545453407260794504952272123911284288954979455320076020196795122991880840992698641204949352282265993683448770869202809225424535141354371183061049476326034412867919664187511439624933233220699095690583666835492618908563095887902450611852704982378634208586277411996758200231070554574164983008275219081162485110049538996701708829580963880882494952062156144390555490171708562579269531687661907122833510362093408818348813364486232233397261338921830672986707785661174220642129799355351111219350384042822074520670144247390335960415245878062279983455385387347767759953186401945672703295043256760873229334873515233704549863666235702026847338944845777890593485655532087332157336965237907541636775070384625975448023635478489297915137836437480855394821978778346789617189321854450055177303134247113907482920332890686867879307878180378981525424957872644117567070029681278047172860170673315728331098648297886468678433650279573405239888242564076662977432083027152512429769741618271612528856122989720639061265141454739088021543237076678873892111150294688948448961881318132675006265397946664849260298208388606238116137187967254479653110751758041118467899899009989031999764683114927952660985783548416637508289514148462713932048485087839812584280575616845086423620730482273811674545150546493627484621727979640689108967896880544668404088332094922338069801469450815385490466685058537272432321919620997318791879077138645014476181606560325543759111252158036235026999946855912445129136781073011831056161257424731825733693908082962400861899553399675609850949344258647995442429321488886224812540079401976406925881165782393878734229425015234228464502553484734149323050352332476829968117035841236960107817742032515198296500035830372488016213294958444611524817229380996617928759004491044085192432425089079118408814076840124693163853627527278041837311293372871270476687322922268957423262606417019737196900225184663190977131161816886399445971808588079432939569669526580307147208871791099584735558696893550714443867161658404749915218911369504426121335313424949037568056710419394554294280512485339923834157268199013963348017696549631347448003609717004634313221474973007402010088703657978305783389040562826649208994459065729025845382474327434128216451192150875693994281159147274492653147518118670448873542920598881144249942829699569830753795392183613669003635377904881369658878376202243993256600844527257202989757372842274529196845554142878833549304759735186099088734792653624883590755363142885842453216624329496274741045502277075098140221505405434957738556705785418558436454141909913448995788440719663322846091089397254383125060252538144234606694395533990710425987952700225092268501361249224560093215056666096965693185305330778744840942088671306923262999372856174665243138646436607844481174178885694221859468141250371728323725436098018243301995192321583945558267599719376934529137235054978833434801800581816183965519204271710392439595648186792904877050218894695561866949277705430704937139300095300269738305241803136366061546250708515316350475403289750123745094822674868162422643574187961873395637988838993811753989194120973375163082223283854553650398307305089793940963086311829415619935969816897526872750362803719443847822404348807947517264322905926054985849049066207187519774445471825623622823085685766214034846483335939779443959745078275519075866756546255700245599481399619851109284478960391697459737485345749668208729415607669667833863565666062337090526056061333606912948045165305947633333505214336721396311527222034400728025519831236279239701918313072120553230804230321728186022251273960097924801234450896985879059480544176815433974955665733755520778748833846338418867160211358636452953262531041819820560824000823721813247397979277950155583770057748479597911151583291071814979147203410122647256357558164363689992707571574972703520627647070328781760031718002968751924735204105065174726530871016116120693067337626140887492904706161047474838170566494608935515077273768955659792315583606003418494437181168057168209991589776332053653250986825127606945139211119553651766891436078600952320470517200521349455564830860493998823375643947260815303330074056136260365352855571513307777043474851210942572701109182714296753603088321209411726013420875222116820174160096396359755435625461388059770568551684971260236529318139016809953220475361721138487528250355126728071948616553790060043769347115498088001650386393765922327376292767057873008863155641921537695914657440368001791796563125279762249058724238139940501266797548340335437743665569143226606908262804557564213834477198461020508565535910426297491817943657786535299629843676221615003716335566502236641408970133941564019815894807047662784401901512764069207000777861588473666618603464255409296851584739998946576307214757429257733253885618717630904227433633369463925651630192044153038827220858571137157575186630253334805460902114888491363555816017840918570153539158325710832259574635417970373827608847721204988832622327656214662409511962055842716666117186340844887641237170508617247781395778028957399637713233290518006509377234163888978288393559367658962672681890319367587003771579809093937531970785248003537489473831674426983207150755336449238820172849807618076576625452740544098572399083783003246839074702968934616715393208410363069133398107920061744950402420000577889869472450271865633882233203076207285525958283252904971344848635019144893219107517199221509471301182296870247669198990783625492716724426976167004712658848521744977943968783492917501987337145899535887205742573608002724768087032376655921725952102373480024698137944210995978618545282118527528679996449889196470747484120972489966678366014639060787545391492387614909531619891675582256974902839480534085573850168072251354768926529229468537400862810696806905425650235640766479516725890085844029766860087182395422531316822712775246029529247648579840655621526682194778036485863586077462876381545538884164462359859044960995698745748658611439092355178339219947975501318095220164909821202601415701084129336419173796186717992793003496931679391779076195678479776973258361581772988772768160165611002605214778630017408237629756694587983672696810061027660863874501374640791735398346455971714192926208208240390950635063405500198501481364726818000738388602527763893096866338855808498333570880350614557845876769343947824837430124813142109014691263151431827951571420963779189412990883689329322522155205514235566521582424319381975315972606693754284468680909266087187257029455046608014761513448186472858154434999259398607254653075464746970933222628079946824521112587222970861954713881098375931590003044848710285987077615320990645607300568858232516533427955911963134988544504112911312573191370962582819195709575343055509783963741519730783243727649892300301712526977133110919310258667923129284913140018879912077816093502961688271396992226496013354290204161017250833226269367655653024354974103394821615096714084033983741965353500542144602790733334293197471367101757895664270071771094297566903592008552303692927256289202082356507603332030169001254579349624845629097942024522721346192324935688451472361910215486528985956366060538563131703869697070737236700069035408723146346085472665086668411343064854394188992592189315904249524931910786099873486154361823868008817686465818154448845949817940585213583849752307595850285406836893112154456927770061636353994848348976422922629171021523130398655015849830775962565234954871756942882909841328017611850880498096842306264623677527464815552575292383665268331908426060932994665192094572909459196169975941829161542105857955600276408355481174604495195194218526288133323179537799735256586256977369972919429469918915749383216462126293655754109152611914061316337971324194850157513333837256113829979220956558606019367524555776342018810431814384265344853583926357142545980338704509584628094992641736500311216627206970408725738651021816917611113198237516782821822298162672096690655632332000976765862882708966973186885301328727333762268063478695672267546464946196862049132015705646237088620921231707978445560082698695608454052191293786354078478545558717661863424141694583553556772095347607457553863176084165605888930781005394462376156925304308834124127447661996266518701650205905352757436772238318417393062705151391084177942400808824934816302709592945996612113817771481037148564192194640138171165621688662120209642852646412493275998566007327530167105520172879009169978267067616364835047664506487502162897035771189413100795868888261162642384710772776590911380562701011447928176601373295478996648861230985393824363480482444430628905453686869219757046454706074233237366446393739514945973050187056745891109964957916075737688195913770521136983274754758312180742486467413823480647645595798015341027981416165874760793769982038303892298156270391329478017882634416947341406365958106297108833468410642277933554110768742199009834510797964245865561229889627101489075473535485341248192304360432978090304220829873941238359025377149304731581963671019612358568286826287257187280558530568477537456787812585935274690734806522813831198529201661182438186324909361439691844646926016001607434460074071927798218029541529065471321139197045890996285255896384439364223582831936562268202048325123464729504342260621335630601432501131661608518810491306523995534652439356587456908327151854891828173419313933991729633358306770094425068880180428950956515373131482183340933519138551546895167536641976008755358843911512626887512459081643753262767934976448500787774119972631291272676405124183591881492919574606611582934862759218137830709052913900002900222356740585956122503896381205489906343387665859332276080950432775328592350556137655041593066258531945175657995889197563803814245096600292366441502400427974812644418141706442371228499843094531955562702835046496434392805065953709288581874233910466106786155564006153356417314346191692772087956680122085095737863183300136093925423758410389924591970790405623100633055827274431613903961574770683444647897230978420801672086152233964875860201714366008958625259027734648989703088314775554781578807107852688129517011618635066333568717520143328480156742014793007241076916976727622010795882487179320442336986214551562651206698341182530529612839338473093324275710224133093241635382127953031350974576202960648901824797742964351162054512117851507456579126736065724187827553153498111528638781795202323907595077918817490470055777651767092064259455576235926265423406049069675461804405195027638236978151510466007547589078668666010348004327039664932792248130573899577405641019676514042327380800094038817072900093491099436536207271639508968897506292818938621951189919330123878739997544380806641658453407874479749989679664188222366228386649485610657441664981371779339635528876040721718244856939941487633032542640067955101867531318834788774188230796226817559153009172554136637677776052536161441013111427312076378442349090665094729883511661976559727973275973848885971275077885511132226466340489629475028603147620565775958047955302461689563054620482055530531669887192481211836695191226904753074515352968920115805760716382458408715978674778088436161911881853050214453806579873236793402977603962666030210112368647024740487225786705843436789903446611191025088131485368079806468841787755865739581650641696114944693162977983286659721810148860966826361917166113249843486463578709020405834302648844080057031397504735507722534253678615471293902216953734441747718763765513061186151846495977925139148054281360416907369576267577989110542321392092367461387205768545253942921690719393158080815309323613282647044822659203299321458319355864472933781791427915671103212002756772312617757672979324946043888431255556192455775539837576908103564803562705500227781032684706924888604362685512937194691201315217288841102218806318251319607840712612747895370385370061372225032568061688127188327766351408189158242512937560406180739518540607679116937207317714071807452855110061407305177656055002143847032890381291486700513264538017411052198646065022959679211381911886938291805847999378018888615894558406647194895044666488584905291669129164685690674565333619203601832525446082354232335616891080012011465908260156220279805381500441504733160393965558903781190569837562417451787275340627507571115073200152549330225687254194446670668073514209546118034553620453625780159983241675685107624377205865098812747273126557002078123716768916332731411782473790909528549639586512827330213778051115011824546093970577859616470918506836547974087744739246261199113696966670431958399615919405143575484411188560106029031268448227217623594492670157925334279434374149008712958433985448610013558137842199606709514072544569871149829115768109745141187558032518111258529030177988843344795111533168594275661994775438522423229449290067196261353893702020256213428312778626950875757095409035560955063947392342932763957594016075681921936827550025568406892883956753160819376725950663091736633326401743584274339492682507347474514489642629292073131909964193842299773049637939781338352369777713294488566832003903379258236074461977284714899612929287796237520711933111510686152007712906252554336660538560816116920986185495124784134765538154953385035977107556194883550708015372545388141454081750201207424050091937413647164425819659259495295452775223000118686114873218344097598049517912730339634825543349110373644027377122357566878845098722370534318945322256884173960156322912495704922991643375448671350229620038568848217836928444146963501496843832832560313726107953658020992222204565886155100176932622602070992896697592929186979285918355703667473310625318625553092148558266466042025251480008836374685991968293272682828838030673855743382437043968833456899646339123773792041998217718245728179077919666965111383826267315886228215296617046359561442606964135155793353543341097151100413123904319153582905611682223600098110957102825423226646822867123824921576244921692357168583113727899283383420535246708379993982230942627128624314985935693800518789318399621441966419082520309528892567824539342104861291000622026859790002318168329213990808014501346258403397623002922986356300052805643160796307569207671294392037328783947740322269942445955340540753040113373636544105825400160558765479331723759368598514533460732258034177935142796659020549838441375304797312353704180879323695652053085988385253849704230594769547069912195894214458213637415981945998205980457641064836547781360529137273412531038553407978817029191533537631369606600166216337262747714541389870766229958845449703946453484615635134602915457949842843768969111109189563267596343351527760084300914954801316038082214588100012444317264009906815957562671351708884385356614155212167144840946846700876832459806455257977676130271071755449105653755472225247524342558022720220725025448547540500207900541914266088323150788001262142953111105087182406814738222310828055315540626584805929573332268520189495715001429163244484905917382722639102848591471640199595887849614562433825005388934289181570428116350351446760892986719977726879359276822365208176196697359709532358498607919015429176557978191316713728344460167447927873283924046262577708885510459088832217335891525470110686374862355596001640266847786566645036798054832790375217816174835552212858479030637532386356656662689809232956740021153644351076851369733353269013152532959803822214482937814940740347679642964522586269030481569338733521738934276050737689259079508746330002167180248123283547892526665755110100558364732280439376546285156322468916237984087696825427922314967241688198566649588553141299918325923843665919587037565588881486940605105966768378275126149492791192329345242848102043211642124179320131199702504906112859348668489489724635815940682984554432826617341651083108156181443579823219753204678919879617143204803359783991066569460214826789086173734586368172337667214717369798508060060831942185557919376575876256500697320003856615093688716948266012154946054811334238852873617961829433142512525436951973399873481307026507951537719735641739222028828083709650300058993554479211528007744097057143793528448143161623125929889376594858246971131805003846412252198682639159133193494595132994602596474728248432938576641641162488210694226232087987967790217654486319216947966615109937126667887871100047531646448058984821585634072066007875420093393290006273850284253535849072788163869448297635975774856555373015030495158930108084713267791660968329903293775649203004614597602263186026080717081035342344581432171623172494839529379019238027641776391754916538251679060098023139754325194892286998136326376293485391921437874304352350851274861731673876333078926633640628917383018167326030638448789552861838055369496973933864109574698637751226276159560853432908024920855456584243533280630290785811253197435272941648428511582323252353139118255859758252141204492939912275910105607810007562762679499136702834259680711229736046022050603203544292692224707486346528998675925644239427394456308968216469677784664778762461504345875222725598162079464755035390191940061764769761107776124452156880399439159179957475671020832235473520071006247562047159852288572904050012688345696784014588523546369347678754316205651430017055084480189030487896844634663718529208487881778547397506755697083316781098538446488096028095197376235489422321696609785826797100894629514611507635752160518235120092789085912473370830369220142190149876192103808080139465789359951215548290707788647877127607702858022747111801490067437929453416572497054711870063975709255440670298874711565602469813950854980288083095547833755453241544463613535952756711059700083225768963727234068241375404820039625023129832041766101576872330379874998532275796138029044506573160506129792470257518485982320490834124447077875204964887843830957875803495949705501608609140232828083881754169407018990522505264174330213747515473457658625362793767560900686107830947170615388435806308656058946990989426018563161652510591283466091613973052859298646136271652528517536158043162925716853459382770116336926521902806221774939580570446281909318887755430062854634331124071452193021794300851729045592913630613031921689077323982103295018399426595052476157585723361335616410338466513145231615771023777565947363241320304587847989842860291027977383509351222275847979885896748473422497674904325680952774365118503160622088203344608625157753030557391875109106473960279784132933283060249008534061166960265064484273371515639426597072897764125495337820949159782498240229068145992230533829357286743516460262871189348042300777026050618746350087386346474226212057987793508779847117158012503302819700829588182073309455798395037742510271019076034780659387838438922493722725770321455774995896520537589095328731889054632084555584305210304431233128115067765382286029910916675074104340035107246213502253331391534583246722407850060366546642938235525414689837528063873402434441629258802080075354964425080179363452375006058750926969678658666975778052413394967584159301422407426250004497348348299754482689697385295235792652368088723730970065103134581442701786991198756325460386051768018381573357631675060672923897260934752309294085147454520488282528901842781141158961574367940442527981250647062692031448573780193723660243025237390910016930710324107733333675285222939341589912315946211514345075155872158215585154819905848073676985844859598957239979351603430106905854564283099151125053108961051634005029920749328698000037284204533970820931123450695248953255171321094533598896028569836140448007299757303678306570268087720334127556896818751854384909931505858636795158590622040535445456509837581711981624090191193531285043568834549186186024678431658138990320352138162610612424444219129257403415213563802256404310037967430672144212804923484213140895830697322297073908619974246730994466610090801672313877082486551938603929562530487664430283351194708895354502990546473347319883798275149779909733033385972634024400547588283544100741040311101114686697575010064914357885108332831444696265384816439838100388041607592466697927161385829609110236653689794176458639657517997944427767871703273107093878903197563894594464597142136037090125559786456576738059883081480881425520372294791528770239338609833840969915973855738797052518340399741192689081438488649309813524632029776912517378532223995985472840515336126335701475176691599628524065189230551197593069861658510427490961130344841746460306920871095929740500698991945654152331998244836699084570377454956843103449679908883853626743302145518035390788206147240181818542060188320828736887056791287797278416678521916290835188284875916440234079165412904870551204201295939904443029484306783371770892843509944010801810032628243379433650883183521584431277266877594024636331263889951807755770986960346720477248377963059266562988231972617404353423873401471074358405646115797626828228252630296915865981630252591623324146416883497611850251591744531497931103039426425264381548161196927030633602847067917507903620296768464814596846644480914879616974995810618198662653993878312685163537601472731881119411391046653905853403118730899944000683316844300382717020395538231040572853691837945797649989334762652066357310164754909644708125403286745005422010543252916600005094557820877150892182315169183740739434397467165426462044500656583656086567922344234481979961449554351058588812128732887832652783187294270243615017263335263217425770536430757035462963899554530027899075241736505901622225406604116534992840257671044747434115618973550804691596451130718670351311268469122828564549599178841845667216135673002855600460672575483279982203665015145285142248763434067286798522123580719200371506268622687122615794717308456270497197805994658402148588656218769227737913334604058895759388661547337218803513254826520249738423979040942215306140479803150068213845279863138654329650879987789957600187893533746914131380693000447983771570436145608299637969671783233630212144180083337810649742907605795105130186442478301394065011878008902986323424043383321646446349159060311020727093540796380229567191649827479758220485289159808760145474294550209298242881036484778565741758254931484314952154515201400108158625604165333404158001022201783608933906421043260991180359630763076847688830153159967954875967962079560832051391471959613735571239128458742813503518765397752065507413238894292128112874545809674076897644658932469525701203677516838063142916662813161939080425653979988816056301614757145483155395762653863776813807749407035043442533269047448461099773948010074852406825513651413846964003249923413575365674090058318958052394067293082553976602626455347204062592434131765922907203870824512756560710271680133888720551668632944320682966555762753856193168464474299056340450459517641403129799522259869665648085224907103584880842277969628375385444613711927857902647003383280163104888197711330442780708318062320240686521120023068747734154958425372606967675603667171110376879233690697974494160046032573609160022615016913144151983171237707211328664136409423780624906115996896364316990791383757480112846370395946692716436208483167287318949512921994931469450945151994958036372411164739875701710009466717557478411592594321508784992396151884115711669132034359592434434447316659426635205005506796557614081466103371180034564548417824259113434097730405956159614460112560320875368321829349340033698640946994273688118103507593266173704974398221382039061951693594381912840157723332171002870621455237450277586345945256265962382201149625687416422932452626017412815163755466338041149954315238927386021114984852012015694207624204999557816232123131294200736012571231579475494797983714851017315455202803114251733707531722550206525821593540848986544960374618197123436933558320220732811458158674660995911331063876159985920109126578834351484527119588704678426668199095335437923068476108780036927628739605522292983605177313854602548945669486314194559672124609345511069637030298304923653857312065043084201385161013087647083831664234192652714349858105223706244084630150936046679981048452553486082131078704050077935578153596698044813716181560332947546512220296465674714509284343137716745075924987319455171437467261194166647456039569397208604406030355815322599150527022031973386083065153312013270512587710311545590042051997087400541030047337832863103785833792597724350066173730350539691684401237770238056570082419809471933577850914449623412399989088478849472900614065051341277218143969067168558457669871664809817430645992094892519577881231395039141311173973621639988068918602893728041598102939392692016626046268876955234036118896866313959344292698251809986226845600443243178035104186078792715745933351088589780696934157588968244382093471551513476645644994021099510813879508235725118808505163922110367019365801537970988189683923295414785373669198270612383553397344190390137223633871949213482107790756489886796632794494894362360067579097019051804608614217626594763379616101938695543346453525372117461875295766805579999249188070930095733529107220000259787645326532209510680310039746564727107177796574257011420982570135424108580700820184966054347016770140819832155915538007459492380433762463678976026964682828617768994434519219210705904246377507462665257166636874829755754357611590962919935646092808615226566800412359988235195660511101452256934050122037645731064820076570357079522451683784339798871384219033044064446674912582305395342822902715615286442207074029869321373651180124928994645205238476069341516716072833634038490778762784638688620743181462465377463848522308984302223589611514608754079789132566108463631069892679294785255071758845223958004389130854790265283332626046832293953437094849148547073477328247000027073880383542327184294911502388104586138605982343679085218372792632952022123442441898381479345991141095634866632805178179292274509668423148218347857269546698175175035736015795265488909945779375352095565352551576661303945846454754260791165574277499602698696165388526493552420340456312620131482360515295254429081723054811938602392429041733190632674014291103075486939094642404089070922821207856779914696831311406300623795192068035791792115080401759836866105321047012708775442955571502167989638965976101019813424333478910846804097037185113627920657332233830896250646713571026964633913748259884609713094391959338068150297037450799005803147512307779697744616005078597505376264566040355581919272228666530240999916907296699924305655755359587721882382506684395047190563975264035903233101646540878845384361196341798408445628526146678032852992935305264554853145273842799302654976223086086315044530478065812557415148063744159158470779396390669361706147230416782822441765512470746636878251258496345400679261061461852697637033758303214965371181712063267785915271915263341188460601275522361114832516059837357545085522729305670187285754993630552692830260672935891813218022323618946138596578930382163080784867729232297017965063353288635543766745389637191503978799830474341202284797398051717132426678979950024544018280605548440569518436044576183727329251592797139097048065743167156995336322178697115152030041908074822950406684102010984865125440503122609950432284639321168233596062648853902449768873257949805899718947780395726623989345615520962734129273142004745731556920511818206681880634978548228037346165460776912373911976500227024030807425541312442078239385350869341569115915450983322703080254079862700177979106559144572489467333974447476214288705027825121200487002566416833812535596540184990218909201769967424174358583828549348274834030758734310611059269901347018274499729559252164488797164898954200321493439442444049256430807719106758790974301265179771777018555275313181596657928461478043719610620991837667254562098360859263497571343540730374397130420058948526704399556380268275225103714344998384451698237289951344938712996427373323310840864993078886788235355478563129949269098967364105818223171604782650188830669777316477330716880106795041213699519704380222730574131698404255450982015872367408290498202752524934872793359822758693478553515886994986555213171670014142850285615860420275334809560018085305772027017413360240594626538141183037630299827022058273792311127292712580328425816465977772758266679075898751014959051722960989400877718459049415834450583046236753104203219044485053453294568088803430895941083945264906063150623415704668195519952558674923412398268756545713706825196335453268186782843508158572209994438980657267129593116316732502998467605116807006328018504752586632080282516759166203188528996802123384719467938230369240904402092088393974909820552909971720008451806183305991586485572851616167564061360078989897299256400155785837835083817089870865735753452082478535372743850985296223032098838279131224570796325289086363079854683565757948759736363107971405204665508509072893109967167345834561022678271980352821961803540148930895706553683283471735690821288561076069132906416629292625111140696004885264205466271021842372299579764069850335056508728431390878288373617260706609122323699710650395681743103641695114153982406314152461200083972428766134908984509599528037064832621824028026868366331418029289152751812775966907594891152846349132375856488056794089475432268344296360086156071905512961829581641158594983216304248767014825007121453862942169585460474236292505607743294690751120491103730955113142172445557900491437552232771980849103841681985616517106882382079214929789518671772757340722414354181015335725344461900525208729190867848146384047518438741037428955579881650371713527319379355745520502901132003079769365887421609276272958662126303119326000083368285918279063630668160809847958334212260824920882800187195931184619800552693742833677922634749243992738310613758218219648535303676246041688770382110987772130649977134147382456726950349814742346784343255000354736228308181390645456352789499394013551445714022831596063380465323638414181850026814834484368940718267019183898805308015095605605918582629562062187219750631634053267624948867405843383840486626020295072351192190388787044504474512493733052785408089739679424431717888176717628509119650732898237864561787994824406686996577317338304705277559384583903477739525081670522974357461012603300759781211825439557846948971398140366897215755437713650258173841709655898731658957217425601442359534860170164449260817943348011015268946843433991486278141978919353839706303619532635780657485182367187765413715310549434284581001199506705093642563615965331108418714741901238308335295068256488184959469961910535477018601691877229305306407006351592236839237973797368367561538278609165269667483692752530849421169803578548508729651478639852428190447049887134877773031591014328433797051264380635753130954991396632447658827636525428837449816647587152021974078105656776327182427687033270350616704840941390636159715806209749400306760251859997152212719243948129086980447490977816369125599651609750427264580476620171178980789734370431087149959211559907065235482948927737127856563763678784968613863085617206708902097670082461442625324087940228204889014372960334124680129845443710522859374641493097234941773040474275279924609401091725084665620393044449102600705999491538659790597891051607239372021216975968170271864823813862844277130166831172553128773802949052176773685004641025741240954779640743629682233776119241920148602958210535379016270138671509858784120495189398739777683895866602319006718946932022231244993517913768126961552903216221473440018787274027386129518769503154591405483395072327049403298548160422476237590732299990069507074044788210412711124430191872145155659012208295237202418991240343053043155438829071748205927664451048468613423383684826619091369701821107257365809974672627649828276186599186311357867835839647688278825374830559266911817821217426989055765876390885087151317825068581647450030250628441290154980703705535104851859379224879096528359724942020442014934819229200538265802697679365030152562810415542757501608040627923233018689668134809993892208999117918564139382290869030903925384305334708358827313220826059603306589882012129089092110954107914991276810848115304093588514683361621593954470915605413543170254053661738300532369379422604039652738807768414496618731655366296702490303496238134342753811796790742919459875298584515708321960108945717174269421688741055987168138258997324405068548038331366207225607435714076332332030459119832760942030376167624999716171119128196311533501752166257167539902548490890262036691035337589826467290798394047425578239484375805128989972376402843715602544051653749039986519654909821277652617276624690788956021867553839349771930635846092597375650727168265473971542778932432358924418569287748987610135347599945425432513360396434295290775763627194955516005185772872716312736140290244850693291641336632050105508639668596768015204163349971396508973851730344894219488113089901360105188375170095673675715935355429958557639902765392524428807187015516933573452667787137910503777877052670805609095417640951974917123285032575524437871487860047760107220562027713443945830108851923248150564576585094570118309740021153209887380194701470561951592102753124762776056958760250668848777754842202214039932717364582406426928431451658866411737088582067541866272404775354480350999591874780100785544982779512497997416803798421196886367203564769119267685332655160006474782684595833838436056644750398339297793302734756221453965275317601811886354858137286259598852697623978237498140224314201785947314755468751227774170957563327770205695832884752674980977876447926145671039030034014440704963105204646703325162336712277406238655847662786102136204575287673693765590619610533298981141433750040321767492394052729073576677972765469628933771867912909522600141807046434300406467272525609373065209866714738368126564274196966317656578137834309346012715781214573382429716139976956670610696494549944414728312007966956615940769826456937751961476325095513643868632954070253036192046932667830538141290459658133428340728107641322534377194431431507757989592330224668802856048962808917232579900048082759546231849032086803379880892948318335404701925418818085877227938488804458901324661610293298969551638302854040240203293284059968488370074439212257309910338987504235337208881401329710475356362868945307166724584844210149262507389078114630204570378919482498623149670733632550392621626064342864078531957844907562083091233082937506295280696164492610206587326462800214613682042199661882691200861868578631074919783046201536153226469197688303365965421068729206124840765549478656870596104700853008937968832428796969198634531410990560470441708914770093798435568462879054920494434629329543590187037582657274018338115256187715385592732675896446933615604457152663898952177469161582925738330908249392915522629486585477998728931181520085790741977671988767465115826517085519032905163618828390346641742713849293332139977488221703555160058108079176551766704565196985177729042942217036024697247070065472384414268581124856067962741924440289689138242200339285329201958020272816510458387733495635510967902715059557527352502538850414859009144190300661637531401884032090635087148893135627231791000017911394714477156329604037276954256498634829480567690608552676770878881634180991778130647684520802366602357692224556156451650011324897551342871375446790658168086500721845481031709555815864331146476647105999746090441588471810335949314895510104467407802335246825378000796894574084997248939446582166943864039177080026604511561516476199548201192244518101887434343028067238822151720867489355707308573913753415360994544487183587654393283997602468675665945047790377875986702987323631554414856300013332309768701932692026857357858037603147664529354900479090187089154456528553379199646033986145748594534794943539669220783186553848603927744714962260740238218210566074033792823000718982536060237640135139527496572984962231747949588798749059206694141671079360811225657690856098285261378290070455006192294548911931293940008149244067211755203332219327162185317809548725516433528817198832766044167552080819674188473377088070384090252809670233154771950997535484184644423783806775268231707444809727821217715821589506092152638516280728666670790950364505999423738436061858482804280805447328953179450001933503679858836128963602503056513047693200562299679212688630263512412460114747216237150807085014943746671676601108933770965104795088671903288919200270701324845069226434519248686145590340028797141669578401043968937749287584331257206034857546934820520825496451436284004638453510378972439329632877493733952909824419182538873253101016511690117728601394202992921527973214768559681830562773548934169026707487862959891315304602132546628054115385337007458026909146488335264091084753178785335279726158061846474016052068025342168039619512612635561415406210582630141182517896206896381865134772505250213001402401512040755053007917763352323743397955505475199800814615277300772006017167950100947893337995716245729930524252859995910261633534232519517047189661420658714334254669690205857865199309369903196082675558876092225339510328519273345208398511985469563354651428642694198626292867326383203263445832216239659210718786332066650791930040806732263509986506003775960895359182732613167148653447767897533467494549395294280090191067670169008821522619073324492373030030622989340449099222144050671732679020061176418238271153008427935138070265820254024143374397754038614686439459247718102649327028337773382277206296169463746112422616715823695002845021066120436238229869331495104890597076475155801386229312359024110648600918457647857874157326857110347268558584900246545666504561901264148535043722187777175235082376443786734588495757961888492036427480710364921508051935437628331220437668992790919282657850337308719604954938962088270817082924689114461546982871645996499819000899167210444309317372356838156403267981906733873957458129704940622483878038425302788911188226614999487017085202798193316590588976347960306220264398541787922419285254127902580481294825389528029726766324832971694035470396297400910680939826468292460303121468764647787748584098455993738034201156687854467928934017487766327151957398254381215273777034130290566146094089747788227384782252852268598925463897593073843144125240791146419765733228097917776411846996733150616891425691621970615451102803394062908396642983582557851300187493305309796312699116482879829488656408403044664093910396412943929779535436596171384523669884305331812847201102142723759383663689868216268723263452014352883299850415162452503076875093506398789774724810717148533741122190313873343276654807070634017602345459892666666949272911542000176015879512660344484779726813971754904431751420384312907852556047207168821234738421102968771576168354593468347250647660896068529296824154724617993548819541601416464029486209608176271255134303457507568693951308051156363738827598235669350869597763843941863180983835319037595252698302627864427532413260734031848154830921278733728675294476514408626266053038998856823402148097689001021811417880705895614157322037868143313472694464256841430646185455031126139825708367434347401824447232860735307812629434973989140871430407702698767898138162193471519969270450790063127013077329646490796238364274888395884889782024545174195496359329020022164305237806187363915522533751790498249111067679758675622250165246557844832800320337865311709275252708539623958927206542035711572477606885310693466424155124670760271983023596461871233029300605316793251122443454777102583337144448798905489253713056536201318916334320739979696299932438383335768312492866638383875619260278830709543252167794962524225039020443192636543534994766435086056152923454267462101367185500061154012513417391402907959675234609283277169809241637561416381631987526622093444496478863567800773307663611858281157940489545155999199092206017286172332224927639059690363522661981500966486521535795369499187587579167079368759586642798083618654386362046157536572199580753249917936367963118197797144780630358257613953669122327834643880505028078001867209877527400369689173401426463677022114458276205302736196937360411949344160991114396199962051818322089445269688519720028207721895670221992495365874087004116954671657805299478100390642194858530913591364888344658793053894708724974825396797366231501461358077373800192561960917655967770224043807439981809460260305894418988200047281970206602686550079555097612760722297836826118685645649562210040203279186100457741549230857727902819824428386044997498486002782787219921341319350380754297140927120384011412362652326326408096130296928609630457468886552690713413334373802873894013324749113105168553862235948380506869145420447500290278194058057323116496637143814047378850865815525762174795812043552037582321144937376386891313140792355522095215621537362422403030575603326530062704351340628724920144794607588998865903073361939397199153700471133140561027508528346390395870561556114506699542613772564213631876172889336710233253589140271121254646807722679161034889698778293337475179201204908539717657852282227075491735436130944325137311186027172421764494064506471465226858369474812136383267468424760625328183124698053849976441554780913005500542453678203006391424772684457625052174002643984801507180741710024135607924263741078058028140916443901200382773778816790205852376149298820729329407805956420851146275415547621605137253657496128305166049479715487143293198452156350650971664503712369433429992041471910805141794720182516155531755664960583291418533260191020576760551188340821361667904322206447829210262410772144545398482514340987289407450642206310031181373891761377729773848660141444983300363281454034438005408409351376824239357101394770423762813469231659571873971434200328288739460104850812670604362342722747463100027698257796581542215424865666285715760719741712089138632017054522687770014400179556278326141292808197612925384880636290942037269430427405211081149722268789263149060204225929155141676256855938889962888317171328375882625227254432504552096933536084117505761219152102937417644077760066080592534895059545292229972891140186221779937451774111551372910132827132738933476973043281119823715563030387521431238103734213240600565406000711400051332314757823161763749347514217055661916849564467624016615952011766270900234345530086017559210734885478625363269106632728356875956505624340902475555612961851512031549523027745252313829046348971538126121721918552211910310156461027470095277395886312594616977918305374218611767391111693516575833565783042334499213380153611793108809552018412737441118015163703455610608216702626604168948034014236798121442047430820637478957268877506139125263081637323627897759637067368234701167428121366764472809323155925978060291316877469593011312970113509248487984208809895105378590388286509086094866007983804167091416694949027116492821777267812570992775824717281971549382763822209292837549210445213285884445524659550835776597242298684842904293073882285223991358837992956843707648985783121780326434145280997616591812037528078475297873111368464625703521592119496607119593678607580645840789630288610909038392110574597651416890626822426528498418157450857978301466986053641724274635839123775518462032324915884883005113452722591939400285379304274943880221012393472321813993581917329837870256072169106768804685321153194402673505727989759008482173883204139840096384150404150566008774302481364951905947536041004912691497762145669664077584818759826940386904685316913242790761276271556405232396854954285994122940515249116497028652900038408536146008024540821867887763334365090573228900006326127782529679911466737730435687576136511587738812748696746738544834116590620927770532022070586679896812126011085982327248237383316422228995424003304016417676292869244718053208089851393006129594480382414313837971249608403655510314958423921097932255386780283379694532484383821937372087739816575089758123598120756811647205493058559371478871795842535723149544932365327485501881189752468351731922402785830232253839392093542288424537181122658094876586734082520148867978929127287172798233988946548556030917104466073917438904380848579413077915874776388056041647565479421225826751371774960721288554382771893682657127898375023575422292141553814927863881125791332476299272419538269532104547888847218856721910610269843833243848290943017316521982027528303114058939733073262124981289164663064000259755091536170744260198275310465311369072343734521677692402331400734573454795837586353928872053800445919406011953524193909332845055817150856918895383676375376265879246094228164817446029613350473731807864460940223975176283503616146321484152500901380953926049899349378008574566097482038911869710933116103169451359906794701768332556518935932922504177772311669253568882289509861166958371207603110535264359338100606389972087528922911649756533049915720733895647618803003340403429044829964430880104563321590478810865984821478400124013759541773387903860743165273793165320120257703475840936724281877352489938218320111779632288264414702267076020513428904269158337362424417964690169259766015572204631799953090748966704411235711520939844070999770040722149897227620820996889020939520488135738538337156860086501567345952146454247251155640714244253065906111946222617072753431767604359559235458715219203448734288428912085138007405003646732443141765793151779774398639617846722637355491838968047484160986893169385160457363296006896104193188087711430161184371187142275195715085993266115259362803643289997954729894014759558573075239376852781750209319723717587629760029461699541387749614780475871471169008902183806931512210679437598975658309673703846637348714357942928140159614987245114375632322023561535580416525424690332743344912494300164632538241856838681322750375428198061572922295259385758958712079061601505913728869166277832395758531439770435518311356586405741218319336128052197904174317371268517732072419869178634023528169462506060489969958860557801662032835052954083825721049103322642017255761475987699068102261229869606232656150758956566595021042071896558833224413000523075118151410629562196589976854793240951755985620492541672083114479087570808713847278860283738290749648372000004985018305659288709483825753647344101966209714845338346161988310291854929286722751048628694009730273513637020871699302887956934315205968503291243750431902900007550511025850894293646960527941483392022586360935466818074536001843808478336359179595791181101767554644092156635504524865621145310103554045716646733158111484767187631446567510759811974731712055606374146819893030188218315337862662593948597077821261651013549793652913911431615895692482153922689747615991423260839653066325993874646394802938391013510497269455515712446670687497096596677989097199925648968170049697805147776909955174061337051585079985387091733442883222763260314381606448493953001626802062788058329061978721278292046589488683948715262956650936228812682580925603961646799567785867526807101606221721493149371613429247037875405306032831740478612612159307166722057718542833181094893749791846331955805877708763153720748250546202982491361221967904524583370709764051114075379853420230711825257634237348154007401179791180542326690663148317091302455799359629404061366391975468863931879695459513728588749143531392681244197875741228169646322759955130728807032846026914084542531518507728626527602807650385039002687333896013736019991060271629164854100039430547793498896502825042320723100613710893365416018784905514884251341676986270166504594798893569571422496678748409855758297156332270200875996004715626282413746423642312316926373546498058272236127205034690992322598553716346531776482863527166163230265632647038828585827638863076952857858132259481431209203734873503469810001423520134383712471456553986636353513808193480080758361647864929124902237672919071439154781494004563228962142134509597545643178669942522246674572039408686584859131142880012950586901354334357866837553465949340569812651424919598830619323226438299327427888327576585721221983396179030584333892582671155240685386752949415344958578844354971568115963891655785489077542239161335748437905936681692511757088319918335119927388102163721890477234206012142215954587808829659613494748683110267955696829121244055276626588425788436812628350505922392529505148719238776756066343536284263811054478198756391095828145872340544193539921448264200970344796740201570335848177095120157169726735313925627340653755984423412348384542188516035700730960751590302722731745588136044241285288835104711830652910468182789676944964781933020875542500060148540186595185186253050776652342326317680135116378958400287621061818095715534381220509783668771329907973074997746196977850888415582620533060072950656683140216836360017556723253097922782600383276417807047180144094088538741579941376948671387939457505071879253618626664380701477492955225476772937687191794516696565094089867193689620236044953562467961469815487902831120088261123658339319650264507308266291701236673594147741267375944144894741269560935481571889541273565310697878138269769193539328196985685242251649652148738299441505047611345226983973334655218372096114726540817826289633499280191547148228504807446088898896429958685822007753805835037495703164155022268460983899121548223007374531773497253686237367938892304196762251334431950096455642436897809760935489659922334391139201664463792843164180174196423357674307650870567315126701080012198801553401424735195769172041498999431660984536508489483645266223219186470433398769971716774708241310714162679879137621227417853050795374902372855861260235824919076376866131893566045969797858568084529181360562644398404288328416378258871024400547078212733944441261524881578098599481384053192609769084005728833665146181917839234803295210529438288894869152497145160348366673563074333624276178150593545613987509693461218156685619929839053999126421667529115631369995330169284637302575231022448972081439836820581242039403991159620580228980956792447290249492525022329387693697728776367723541164133557560411391879161591114790203547581251009267338595788047070937481127829479081160639867652594223582321546366969496388000174254375587826760682275751596041317877222911173641039236738353036717976330561459497938610086222430527846130132720585830913597297022123679321647368798890565133177473003488377593767177864215163429727049622493376238432251396466662237099892312393465607476433973334341463450053887550707421377872402081193480432959585690152369609411917077285863404193074865668503690270975110903616852697034980577747030210262847568358854746498357890950187911919641340294000402397770529769391519877262528043384104324771710156157946899882964094868540800609961306450805323787534047342993688169737605917649215356257747411857176044651369226255081879347997676120820134399522663203149640336280182900167283636481771417092725229528363249926326116426323151456879826758269426545597869710683957122385825156161303899867159320837267292463591699440823037974845443241649067645568124933379334610109720417325218333545053272816113049324544023743061279017493378623186333297814138724859697978298575315394405061958204056140828851703016237762401040433842705517620822436845450636012747143911105282462631515599191119770293800536073685218291768335488154806761809462952840061218398060139856695851251581300580837411121275512507505208332501221089499195528339016785645183703441874078643252692581236241336703645684698084659794153573889031507950205200296646140052042303210916483549196852932085555133550669451930714353231673480917938035679523817995660937890482577739941259166962329781536004866751332750900826965250121696449131904506898728724019330144825914467038638901970997388522904063471207406714518314757485750974714716313250315432386831743290128745637668463881165691585738385247296808102661493830408969578571099888841065188849876868703705780508533947201797709500142649549759630541271767847249050146578811994495185408205140018768983009684886833145730580299171822196739165871265792953018601879388710197988084818341024101138809517152648329234236611246298761832929473019726188779075376852139862301021361941205254466783742779260300943985439979386046822819534798577950860444328832025289967949189174920134399842766052646971234995463881917487438328533886717250254693185022734259057366895496550309244827283853099699737921123432590446511267584559192929429201569436526921529555352389582726476688233705875128246389389362289521816586091216842273101688008649983954897345518803632050642267402100098899121678874749146560424562114483239968866006651123351642594678480044247394803382285376042279995626937014360229953614184957944282177130961725660693128805737817061115389149173214921936662567302308602084131402357184545155812781871944684280471615421709543907816927388585193306131190174484464915622751900661780198047945605801360398586487051806197721670323689531980405110846807208885952695323125812825359565637652670218890274687393085218695096456807357481956077091070107966149888339771487241567526669547252861021202349577913480608416899901783447469250237821252846830286312402806122103193156409035444533558137196252088293319426427144839913285778968721924843257934617068838429146965956883026085372119595188106773778723952722830410983019218674929860616184368184220106253338682626234189108876872925975499510304775746583533565610358160162835558015785295128979796898002423878365143342220757215703402837840122796376722233042613299774241729277146973002069709654338031366515894455165880665069876482869516356513969840160271865607933322875737462166943213869449435755163122355817173921167947214756269921219080877790876903160983145943438255756319833633466836157432705153593690668176586485232035812940576743175322913834472313607081592838499731677713434407356193594980917954515289239353605316835910105843746068954939005311672223577540222324743000703544756994281688904206831915040771295732811053811775274178605331463324837217038292376808451002543042936636416719381104569239274608680221377672051928597948911951490665772787695167478965393619615842956906461067956280404710676523058390216770658641330334728690178073883203963869984197276131741631046976961964836697178121694519517449729822963934580784570011181342729352804565509103530386317829582799458051333077087145654162477072074796103163700306914213177409305640542183773038273502794798208526941464132998902365770319436084129400248304327766589512843754311534549688061642325605524329065063543218279435854252453178856771449420579995007733873757601573666887887339282182067955121681656889632564558520863024708247358174384521255183571770177416177223639279690644490395936077184040846266631612180646772594700717781306046839066455131033664308372759821399655175409968604303698178077962383091429128541949428591708613223477912837691895463642651170578877848367206198476077308766547119928504737410245325222459852411714934489299566507834419647373737411487273914647379996681589326651927982954965174541516949322697282705517223075042723467523516799048685613938746943915134454432642635952514855767342727697367003442651626810820965122791114453588810640860474543895650836329960811371483294220641999231182855344677717752006178079451249003419018068335117516357315157219398197438322020320692682925602385972359717461385551053740511604412984817556806963394936666489232176645808195585820252168547210830747196794991381925255088180930428103458661878558226145822584361741059102206426860654293262281077668579080592157883176012705362392624016340833326018915001203214562027879837713267889346675752531185972827712068529543259137890851516285557920790672827998885744006704767493140141427241553589844659138973394799210646500186449671404617115472504634657333906622147610052039986879943350896344487788904589986097310010640836836282035041787814891748047592884958478476186753325488982654810530627432877547809911872910262370558463240867088117193683194334394733641233339283148375570770768668272740183407433951845667996744504444756696551948350976053353616037764114461229289968093019394076750841615530451520314505346932540292342903277631366128069123754188459583147022258166171965650716711461282282101630747700137268371319156180710871664063826151415913639941605089669960781998296808954308892122915311348794562375327177270240004131414892326849904629226659873920171627401625507573241943012923798758080271960988755293967277767935895535891661507105736882396393775161333694373998343686353200270336454002567644175561703697999156557391572062758175774487263726557224821796205434468097630445793098489124996683809308008043042950501200206356444724742508667710087912106856284811977324398345364712663235915576312996387622268026969847151364536130592973647582855601034713774250374529986852093657643704671398452563293944896449776447450349965717998393016719528023452566659820140077921634224165997471217787357874951124031322332001813014806374524576437389846899751008481703535261382397155212773684978867867633042056803294556330722239749859021128978698982052134010117239784936536844739765566715125979105056673680556662583096094283275141059487034325523848409690883906692464122593016693150945059046050441498424373905531895929415908440422119056117716804508987116016439496985743105735781818437304852369780381816914051510205286986014363977130518864781136950528221823694605492452345925656612715882349272320459494894379698128245466190491173211551495564238390057045468699880356991150459553819393375975867256227612053952008500712859737645330541642104538425222832458041932217205226616538646662062742136148550564752515986098343956659930397128296100460153961814563347648153657270734278408906328096601194830714801942770676793921195017094128777380175729192692224871740033565284180820737292379225647628311188880534268298905647159944540453800856432063159759254827999478958489495131283018951377652210128262188845061845058779122673519809360956776589514300398731662614351548457896902422288857060445076115391900385648194203886955170328919214221570072809409077207124097729829017043656230681361020801055912320004184280606855027931192534293342304846406267576264813033811235935635443580196287482248234319450740503934375169030858646863415321183640649176063430136689982032150568453600997113719099733764502037250539644059514298878545001829255923972781903999944510143746864615068116446974897355968927615775793643807860944436600684639149351312099509771589590841919804071111551261916891041091486184614761004280321274278426808228429084556959438837963337188845952970371293855204252143565994138600261204139301052609304239974447916084249881482823102411098052230318097695691765770133611045783752673793339379451429262409950732489540924615497736717429689536191202077754538082369220561421528872951221351922894680744579524546157577492716854708182927186119312572812381177422427297991093943610266477191931656232801018939245263363922117447448864895097698931371952251296995469805925534396500275059338372352167814937110584248832476381248250420716863180581608446410828402281585376757892002455877004555586800897526699865390623945452190305406905110874621056564039217132291384401596957521382379590012797540392605403692482544376731070490893774098678102294599213097688404601577059417964580823785185359476824143607571809304500359781731830450974115492834750322739979056337996651093178674758515679329219898621268554977054415328475019217584626899025725313028015730486024759948290108376785537143450208395635570059395140804755803830285052816667459259506822981449444777851782149256540518034392943034420264872675304676167727475295696185339494646222908049789824344015487217578353825531630887572861179544720036991089556959785947236684736502184521312609545537342007167145921559385406322669090117868311289641224891905806799597114308424559157570681375339244269964650078637307514582191794293181923127583617804298168457948695445418706008064112339882628656330997928510599202280819830551975545821373393390674080869201849330311388351523263363201454811495819323991702156136915368711185843792891108297883468095125862088952992927735867821868686360583264906063211438130301029053856026676692612681622997976057828909502265078218202507558011075667516549159861923426752542759126560456105462413407543712976566885546604705339138389925078529160583297335365970156473295693899085883855333793027603463397158027340409193334321101093968369533035630910992101932360626129544066584992149015419565602529357374123896131630889524064750758835457685091638006095406602752783686029263064831526863572138691654275855910506934319529773700767096784680507445260242223405353398466851178068450859248281026777928477434935887956273416737621662839686866657263812369996295594110423585079251651477671823852498155650896861954799105766937075140956495021205387697766291239365535130935927351028104777774521933871703336227278607560099772940482197594281684553545395235781844609735600550607298438609540922424255227096265471056004435222430572609171328446583231510897376017775788717612835370792394821451754354336642908179101546671829416522906544396968680201861763066755497018067160742733112500645017594049974660175871740698400471453391821943128168059349873877713750046272495767879435213502554006805285004994509652611883955654309386326503201839032105007701624612263642613533214102802390787985571275254673034978963214872043290978040216475968518202242408588436338692114087292283044873578830736444063750948759548255308662958235612029672813063167169380116171522800007975212854485567593389782302494793668741092124520962357721195393773958099708313955264976520079004327412729120132313763406154116297945357214800761700422371749914734896732091978202612556982039883487212891664012285127627620268062627042656836705227571554947253179852540608864360442580214433708863911291353289215845442934127362684519667312143509860645787198839848628105527138608250438613384050038401521814302280792377398423233107460147131350747062115733706561718793767433349863827675430224877695235654905796909205469700158316518318507366067528992365680580147465095636836720093689487279370295642056635888486804982448002640668205404330946704266030762006010567890644389170097478880129459142826295892095516038762099043871644191093461001162203434177547713916575851066119590444552768353107404316030206038478622276802767148782677762153817372023752043906488428687277481473299278672750559340055312576702074485546959430186197519447132535910010055094864507879181770461328083543585696560515064352134274064599474117701055089875853983099429199575100753110150289599889145109218483847360039688464149353669862030555406036116032545185793140744710740562010318868157724400136959302331282303494190446095240312918378044022782620834467379869683695598361652204380193141831168997966054197815855670364059319750743905371796602472149203877441592877659865989219475463613238236987135564408284042620243659295688690486571444850271169839707033461422277617037288710717133510422068807555828427823671443225380041957532710880804475171165965275489737341240035182524228610762208551891937439112744957381526661162058249294612222581034026047174373708643191700595771254616953538282662819981129630127780460445827737451507467014426776192781130181729739788687403886512995207752267585739040660539337414460375431423934892423874952841589666834363318279789926585448410332764653453966205956089966356561246494312424403545993315735312120446708375478384923175571274673553854601292578246846499249956350344709615741001106239822861210337282281508148506094089778423571823067729707421549426462586611718846277209763248935285021691523931773865725381917479246352868576841257132276314028603494101938893828854813427884541228813109856619779526272679564549392843536677552420715279135523067357192124715702273118556195035699643810855259395557229981286507870294295799654993793370560053473311277011213109673029030982363432151183093000992739098368792770028582323814237407050930088373087793915290203366354778938682611628526483853944604712507883290481196306195854567463306058710868520441455369506485966223150038452267766752712057602455847105188661167853821767374257180420965627595451125902817298970717165175383086952192446293685518238071733242015651718384236270558484912335051490641690144678045123664051826891307297787322624579510145653534481603126820357204531457685900696140554103521402465696843058259537843475911348122188618713926027321670631955034177823302494630567355309035335138384737640037725909278669642888713856465405048150317268973839093214020561861317483689648826725525473451315826871272655374387394380122944749994739447209816761293550353276659761487360827076228798027921921279911226673464753339600584515448239906183721121039495694271055352846229577123294090875588092665865118698345791344493762223231080247666686319197494519995552876143514938389004847164130400697662510758112788118137149126412075968080123354476325227642451248676562622945261781715466121987944164402419452893581768911374301587259630297764780782104896784892600869765760675993266004039517908005190984778692120163472008056045785649967441276955475757832149268277133312435391720708411107602238631211102663638518055310136564136080544296269202762079256968441979879302681668173222066734316974546570567719847134083352813090091527244889082520892939362987956390857045850476471020761305488392744191671987061791709559458938831885972498325031068168964296270284301068097279750788334513389305222986365521427696886941342746914508888430813643004119206890738567565843570210432344731488154632655952797254580815280508934582414260297139262531967707726111533488950484621392142517932646694138803709997215248901830348252469092835067311764358924612165478550122849287173275849625397620204324665418216949103803856304125187724816598326240521749005353630692971378603572166289316733891343838552749134816694857239981852885571616519628844800680575860168314728728644144646500231662974464294183656484247562436567768317098884761207240253635279261654247041345495161982904104525039441576161413150760392115436965742422914778431065123270126308004055505128340164316485963875433361760886722371165101166079477218244051633693541757932489834235042934042223769456897398894147964882069669193057409349771188528636228186481197705254395496308526639343896641185979685933604937785317875695386652418644267530248445358222786429014077027219248275943790854194533965601295231076975585450981214750876682393350172657618344939036466332436342945867798173458465889970138624504729904346367769084671802610569770372721578872695678013272328005421274729492701167477801775636810561744768582695351544625926966197308350622355002023442278660989214694037004813154414986869548563228783849560524110169096104560095587802080214137329413857100310553407727423904387236865567209800527326926429958208368675969009733585840018761820270811257472409775623179252883678793904679082019997606742233982273253176719732955505506033681691344920405817764193991900114732408793575942575932911917039368730418875449777194146417245100802624859466512374074327462857741205376589424117033757310689556634227847415158456180927141521124059271193125783340447432330211665810516893834388642981581832249600335344580921329431934000624646414174978857047457588785642001278700628056315459859027407588791845759975341030682316034585813978416044842450930421395538689872644462045236070766402887421004662060120844216991064342320311070540117004539722332348819658883125184542433841521203925618408998867295522495221871215773267327579782881462630631433058726389139814604256979441410103696248092479173118958973053642416313371420315826355038584145216881819642802161837105340275579489702582338546183847399441500077862952742238840172899522414703145848142988108519474315647463257838520065172407546933599728372618709206134502435542835143238947248199297260469467318828694241933502339638810185903340084023857971103898099718758010640297046345092004567751346371900874247618129700509178645927424364686360069427335173938964476819485909491559080522634326022376556520490987600248305145714238780212179197621563851495766466783061983772663767081154434128442167730503216482483385774785426580259837895394042693948557317555098892999359725158887285873388992213063890057863438979706989449061363126697109855443301368562833921170772143897739818003411132772931953356778469132972044357875728652414266339572607070731941288523600872231330929713403150324918770356297799394489928448137315656954625371468005210633152721526422268980945275402640414617346940441044525673716242074884571975562257407269568118517953498365440937493134377448757618525686908880819812217581130800165847138369338359773631741787196956990698144622259391070050367129782477323992566705014615624106774330716639767413705913938337684709262531474490640844587574837614033214727405324725129451923033313750160298223415788014234368021624399676614107920107572436015991033867100082442152768297131483841559538259115006106647811478701707001373026834845264165373779838472219303547121873000021531563764530268469620457674500132935098690593629102769022451956766850606058116976205586097496310008191400745242820525062288281068349177716323504054623566812197038971467289181647784424988555046402699288966506342360082274662431475628675330912679251948021519210797777149696897592220023018727983097408925166264432039738842671979626555109015328454384332194276905076556204533251237790436859695034813484155709170692832972429609827918950527229721517989306006327842922296070229285593365574038954033048870902914469161212898115730582055336919678285330775966003184810203026171840383340009418829009286712184518370800704313033177833432173875960083087202274813196983933270743018140084856134829224159846003971010334131733459886104268053988217402762103190502765872295006157204994427517497646381966761914036654536882024268168534660378998165810360964446072237363928289898896200081485218034471014400643629882529152093866118068638342122499393221662779923280478189042655167813761584633919118633614731823149509143834934628823462332425070262019094084457084427978799905637389661522716044719109894663448232660266921444464942745773757457035341199043936899999189823103839641760266576784625904461080008096796895433919035919180308054833539184100249789918138484481049167050297033295861190220574881664853023405933867029850241123453288307974530872774222799653766240272183857198366860663770236826486382742857480827321279826166481114192566099991280136444454870589593995004534302962658485833838959771778301593152060580236724789275180871941054651419354149800751211447423272204201801658032664522506687326576823348135535764503195343150336776261875965269258702431112780913183991302579693474012727040331182370013482342529718976701320003774499217467999369985342693054916601031660602165202850633018178360018975788545055412020242874160216881987244142792066164980497251642564795239025860259399767739064795374152196516049582854764723557731193839798476450193068049594421845232174307620801156380009890759184156557130632379100287060612786210886192701754233213071155628659484823502660166901874443374293955415482486994260231750240303891598964951492267247623070991661404886329453153766240730629790767588108875996754170729436191760187684903545488525237111502486441862065257649466246726004380278962974782125220328604056421148844566404909430321041371933900670018955614145422004411992525223166136158671203140569824944493151442444328518327890330261542406447750105895248944510814287939099540635209817539432843824258981347775336281952180264389991153297334941592600336853652612480979288187593013318555717314419101541052521876474507385339297953999189342363362861293998249847876732498742910743715554712546780606408538403931520640369099054563292319567841397897242327776543198661699616007066971782138895396747003647460063561526693184499948744305884199516933590074718920999797325845199828890216702317963326069120280766136493141560634819334375651220016452135732740837320182641781720751407354497088890844195262903846865820841080062251681002699416259723638510530602795942905617321919912483029585785548482904159230257614205482012024554031446476538930228892926510610909209359346607118639969203550537901934250196509046914943614790324441996799805761202399125798873215994649193360528404881385088502274436985827909851886976499737974750457218129521156136592519350896235715070680418789235172799071493272127808771146290601447594916261597080006651762230009681367391774997924000505155787099209285924862565947823602620911371811875300573894283015648133947581526999657572838716889286733389006084296847788216676141406275245710785646868806255035623949406389775083290944567341347532203038687291306106104412165040370651900880762159934859946726770318361315509814210107471154338501273280392109374823669425903785425839749287408737712250728536236354324031076499254527709631979745896532249751932847811958134587240795905910447618845963821691299755553227173006745145991196684132193317691053109687996636746244812870611589168897977910454782663275151745604725796418702929680048725693946325572969569478979427627957253702895539299454329332480642821157384323046925776968798507760931337075774342529238171034172606148532435552280816312386380062894308198068857009947581453018165198859851040573134056116911568437364011625056421205374995464853226565240948515223111142761474324475738724726389194618501117525168141623873716856992111171862317778731939490168419424250441551556752677692130030235699504644439323766322585789877529647574621290702108541691535637772116026625976901034035947263467302869258232160305012551518273752060496084198206801063557064541800563429747168688631985647700877302930815988087710220856128319566551657746793798802749017376327600246411089770720267346732499365720809981860929607613812577736536809771252947588985806006210578667495227053365881518830711484516231498596256490790797345112796337296742126526412899815187562038842255935028890835795496813891408397853624723146099426142474786198079396046647557472938981676717550099679348941315498764399112444798877208743913571742575606687885337531234717881451831014225796995633814755095852325471897888619498369518581865076250462483274325756212776096242748627581842212000531046755788291550089381874271122111627610749066489949412092457866563358504606185932262462013573798278801524087401098995756514439348205953618493700995199547542370159755419932035040982244399073355478713887803650187610965882882821416939111756593902491631656498913282248370831388079791203610577869468856651473437483340169088248291531479077965296236045123096722720803135564225268148534759206143026926113086451777924036648267443351892158086783760533643352131861368289426997005850704015213424448604538742069258270096653592796828649400868149805170737807183833004034405601901580302791632376014599497508043470840230325119750818650743541468846388765193090091637724150778575802151138398751341595641243082560674416293573712822757581497746966250376746566318807008549303513714650482658131883282510992071058747134145323737543254959208615378931329810784904255202803857964993518255322543760519986360308684993815505468776837680151745928255605500927031579841960168121211955647429398561516738190365710087911521062835318362304017706476843127690310387937588817077572145158928795765425653704505523380275070672346044590207291534490931468672648107232703750660945319697293592143725865023547195184934632200022213588475299165676443477528831795854712712610083487044399102123379274826707143789039219119039752985345315682898732913962111857201001270942334579200778795772397913716191097515782535138912459306499364381716142168367909949102642197329184017526061357362112335418644041733851011721792150817978621573586948386133435193261101073781568780523905235765484630426754894074918583226667757786863133862944694188033176146661361915860532284819721463312268034925544217884618567522502012867069542710103676233779495960400270263534881352050563755808923587420598292488502793735607300516717028199557641763948649482776907356176827836421836606252745618353119406262797999500044595823336562399931497348247495357295314907406086470578075608049178557329159874701706593125836485803426177002979184596852307372864203872714707899667471872351414857991463701568859034372214854882661088562892610985873401642152357274307648695471701100272883490418920304621497657434110781611344922707963666134550328339685091308546125630324220776103336588856746565193178565179403486331343733181477944368004204233229906908874242121566841647807856379836536982969920142459693806366324691006676692562001731182445481011720055232667810268429310068479716194003827979015981856161621260929045762419505153390185168294875725862856934553891670338248345271237519474849853700288361401348837369658690174335236712241617129532333318947141203115103946620414392509091475327395875713044305115991467434872452023902670791354294806955467578920547194570418504864208005069126671637199126733870022036904990484431753204028566761014846103916291886393872633671965005295406474603282882733374656672909269026125285733947850893664554214760492228443998535807772961862741249538026272432297467529717161327945076125167029089449811261424258269284961132161858545631013785684527325959879150075274150618020877406055894206192899610823709710200382927721461950466943304546890840835792739908135802910065248399040482242663635894589364485280224144137109307696863240748222419841833239326757513277506956749119618565752028992291593482427796990226983330328675062935398015322610889325806712175198066438934645451336142716583426625028996556080719816539197419099266038701447056332966086012305267051671953508475907806215716166938168632249214052661532640117935803365600938378508465010964980875991717127212328562453756803628950860035328169590917588894616875490872978240798065154032163892410008771563732399936478017884400442509946949061061767811439018405520343655462168070148774736438355121752711178953850148484895356252709816171538398569855588900297628409714943075791912939705892696203839020664131025192578974573843261567531869162135836360923918344625854367514616084849720984064586639106517238073006336574901112904525831442693709985795075034953425113114861624802808795098931925213648714793786967963566310860809593089091839006592490229753731462488362653378180412082466412978855411331377010678107474253427645728824801393856606629212017737307370380877206251796686274171311324674656474064746767441306303390060886487254065157120703788590759979966804792228015128578408785390367603129167500268503476718902080467597840034381599489486304301977995164667535691072986448771106660498556428085628451680772132525333894307148316403835744549944944754175969860668689517153813549904703529844756645459879617226737968059543795069543134988756249105432426386685623341657203226085911526921232929480831770627645744132510730964869655926621219989498071371248067275523671211533099451912710564971537540267445260496395056903312797406285338250197984335429598695702401806912772437046836566576678274729946776906207154747176800473667064200785811013421216179517239690547333938607024255916452758648771663573165283566197928743650989257967030790602821793361274091864812705978786121550226510136768686116861468712535701242786332378241581290944961905757252809435003328698702917246786828243325226115557719662886609235969495454824521425244978111546154340764798557385183028997635440930201393101927946671664351460302236599541359038592366054485611475358931363187135070693518215402874231306987984308944077399064086960621199266147418528524034257432772759871864686275942829015898985770625316128669976909347233237297808796415972632319375426006701089975513150078081640738370542339033945916327376406487233803403113562216333937244992656896843995525465232368799732637201102683790925017062932439106564113984752626832830909332136019918850089492120150979782866359962920182674738253362535353926432893227150812713635121100880170318691564360940833096617049554541201086402992682022161639919191350746013753608349732577654418707244276408097878323273429675140776344526636088217908339031390242061864900355850185545131378123637470085841395954700489381271233541069366945637104579402867421376839723919064647849379916931917700296282582640843099963852109017995265821648469890451530716488244994914846482418196018912598117465634581219276308334825122232138130275335341616197234026553742655851057825612525496856018670149218167910435151067823487038638578093432379420512011313372718993003969033898433011801260869426738754480349331258628520089903260587349295243023160010714310335170428320707291286854919777618693282248248373791099784831584676678770130099587913321294346210853075771308835125768102393543601907051443949282624060670717019399814914089096106080636541119089579901290318003843378323707336319909411050862564419036111579294323870677041259449222971204345633833314754011755810295989427558462817943329510962176825436116458442398831014596673330801546857901732414841910442041510769359879011518288205694380870787781188225419953567104727519709173099550469186277006051295662817796060844835297519543244820655392884292211405965932403992488845807624292066062871099731063745737927728389490818964980272384307689857149610163509693464022971663488436380968599060690119787936924094319096063581343449273389291197751143757351996657371961916948126419412267278872477657347262799771063714371557583487975406582925726885372475530845696092244395893910858629803697797350251135641210032148648733538214210032404254635654523350951736431574064925954288112739766386423425971037193702226962339795479219316894424433153140424680346240062812029895548932209747541952896693653541011624412566285275670935207678382642205310460300786943323398279879049364926957649380796647113490347902128277937629645091221852758643226315652760668310650348025996821270561591025480803364317236504485860619258736210088968187506630441535241537761938458463463920106498858503088893791846277761156319075038435549336572714473556580756809120418368857542721175852903128395387146103298158760010213622883711181724996555510043109619988906637263047330696084972224387322553608278337363127143687420703988512960381026307404566963965131271743657684859959993297916994167809411985427358165377458475036686468410888748566991414450027189773208989719365188268322277164534520854834091879528442373858621455223009334325348113565294274045183992128073640912316287617712747290520516456663583071742521443854245064801450923503456005155914705668016539756857719626712102766791738291686806750213321751606876756955897918108719356571626966185453536610828488809199935573521730413106043961280820763864191171879530298424623589354815297708499721666226489783671259359941331404287031129287050213399027038754641323915074109707052861987245407071367797117480860856584093452306348164471629735819461174075513060573614373031309991999654858477565920106811933965905066293180183656528927234462092526585346813741379073784610449579373818417853196920300004916758012696878015073174116978911864943722519204224747774055763138571060876802798879005919526951068733190354656717979182091477726364893898715089757434622021770138537933678018058372999564392923459681250265674409155081558446118225205529790912000158065227149197202042272224616814290006357403662039764231499661243923155472128899073344617918882030599846689778445408486358848126956505940950060606579230878126103073046241692830808105307237792623132229320266431603679873949206863722882556279901002644628701314692094595625230517939817861770388242134876753470503950110725107967008125936861750361250825537266244100181497421757371944165062418800517243096920445782823964357731993401683338680378853970412413056019163483304871131921230345802482445425630437137546593724170772752377872534218016163337741799747633702707269138333654559159611840160151554098781110174843512015798130566223785221579212791009056156029960780681157476741616487310854820060739375695380854434460280741845405083952897624154144659486524249991772822316039495789818511805929652862844186801841636162247735082110381924877328379697108433150569434348736903024167838051402766214300471977963781652056638808044482844210212438221844409451698853205179987110828245688767660972020286756147764894401976441662961503641985300397235217435728515457135598407474708559463142473563025692015934000287225889610657365750727365142379045635075369841033553854824504453417865459193567967111307587038769987840581336272115391544496195001447820844827559350696233876595526801875338755188274310497392953262771369053341198857471294176686637763459566276186750838777425266825833951124320188189982454228644172379854905040790841891749157773961646593357010006026789289014292884896202366306707039531624738892920787729390057389750994503261117317531073804849071185998083359270967138991605461637842074763603662430221627242138259396259657363793677636956893502486331300348169032766707429013202071941382507334782446155388354588047709527123485211978479085636038687293772653625438530103853357106355360820950532344823073462740593782437471851630511501637960775073946157621027911072456931683727293710246113921778739338887431894867616848839382657817395695801276143385677708188111072019920092533126260379435950136859647886444804757349452231147292810672265827450847889278484266773838132524089616219896300387477311479479556875478611536986038429759471380548125968163995613359946675224269684004051220762346045068145927731389287083527044548003807879647579741782906591921387997686833199859422104850100528919748749325744256973776620121289018919484212376229452812805300494615382859663622544130848823622415474809815115578708241696203929110624389186405176538420533928970815796147098210893606849179371656571208198357197064302321288943659801062551455410467289234076548835397638012166148280776156707522985739866866835902035319781702862121848923736900619884514837696477910210486191848386855247875561105765633469303634101565906871072718219673402299548051103521726315561587801258588537872502772883514949217838320001357272388777342407257535682307394217020265882047807406473010024265648659237241370070132853153689945338631319164782068084131795750032271693607420971177849791034821462625378941896644462180135930387398432999390019467433807200053664744316335499981197017837480131452704196908747564094474056101002824832909781353474925399149034151356429681293473079328368655432360258294138574709334461487082362336071125174440753756662146116910537394432792573473559498856619403382257513380564344891018847445666065903357263456048023183057686969049824902522966657138856446247322678932190161996607243035514688082648878872669332671051975841179965481008616537204309104047950473223891436619375535541916660275670177578704070239468782625652412678685951264480248409701252550131918521563016192354896049497381903660550191126461302382078997161076234021856663565646417862519061696199641085770210293969467489381497615276545667988169326447116427348230117411152663386646241709169789169457609438647896258931229062398010864069873598924536868619632318896968105534965097915454398051584898434275846930587522530642946053177578177449357473140062879334415183115625344937386844209192198432979729682497904812643719751868170974405653787660234448848919304108058349206496137916499413991584000467192405553054661980450736569386148485203269394539925171554925614973851156648076554388536948134665284922686743383043878925195811642826885729265232605262502644960131537734663922229428364918135982463073845878705415561871173170196803861233917487006132924651403979365860555582121703076599003006712079586693115747973107287937510709391889138901075028537721742421744367608730488001280317060983681445129969086373570399406416843136419518747886566288221971935627230104737131366712565009683375495438428547685467397746673529126924858518157528363036702067908587452599007530215454672566171887721358383481540151358535228875837584831704987152936887770883778619231174160285028106094034916113379225322245711100115668318852913810318893724611890277601612201514444645166607443716598835819278855017661468463401232643012475027201053749286913405803314143590538613450403210199061125872769324036752920177493956410146434872601485380038267997915274792635345445263525906031431746762661694180736541748446935678889956788263941082268135662095079030592844260945093815580156525105764428613323444524465287646756538648484562898838609806161431921100421527308463218247625290056175614496919459875721657802258590982600260684930750994024701729508350915146504769285898836087194819491391822842922194596810728241021675454842510940871673741972464657513808735665524605753979379256126031681503250208869798496086954902423447898012208369088015041811750527853375723507532559505574385646148919256456528577957054265365677848675169762171088435306739508448864832103198120467788276850791356428816543451614486027736916727370354374704428413149222162667064653959550802387038157359023588656022311634524515542172095712230187893917772915211788674338549563732401059356162927501726497590674388114165379110343215655686833173573683389618239804666985302267897485712383833175869989122244617639604246926396570887292257959224632083292056823397423251621338424881654216841092422974293720379048297650322200692211823648355171807895738015845380586543415800188351309547656069685895263194377419702691457631256132234963477793627537354531983554496308500906741959400015370840054064589895712404335381609646158055620937560718088183455286890431669237162245347555822076167120280507795030717935004638357923785614564033777616701089997826278481978823624658599572443435117145504705699422250091931351428143228349908249058188039421881728108927309993535107956317072473228985528170901214463348873624915632547741009603664880497069166941851295502373766603563821589963962176064163554225364130733761502289714600801611835047038029233770219854730705042213402107378612127398684152079332227714092286013369981628411586941963737202207992995507675377129569859604100725059261560629055707223424838137169246759556944456834404069456131643266856073273794961288853923670002732904904514184790121947525421722028688212947379764414121030893145471383417766773531521386664515279684710558791802160791916835783213356752177980778935270847977534819835372944123625562791981423744135871827201453349468281119424003316062881897566446839804158227038616015075111133055165331832080188212928791602643539040595940891068203254743595047129442390720825372384867090283303394261265298196910844052669330537958118897135014071329022809477248181549571589930700357519464764876609734214997408069461446565379873635952758032763449168329236307313279399532254511481883050010076341737446120365641782430845642018023432687396685589933195336167860489174109596715972460048245897469566026950960752513029021631822414875840193166473947732886734411845055119716749454775477698656641140361704321655528644480271741071424942526521721753882666878862264167798130911511917964243914926229514826019646812074553188194359060812310454870839403784808993239053652128197302102542089662191486628781642121167719527615187037190932662781506571291878564488432193726831707428546363263588284007142390198298153683184540243539151807596290200352471087998308252165474244258758536789222636526029756533619096061809337198685636352827523426770541783166124399632875624146586115921719156311000680980153523631153009227220274467254334401876650103574239902757389477056879577855093318131621942341622330728388506159635301155783396369630087455666451046835951960694126907042717469051342071045923110049445781205786362959885064585576365889055850828284222494054733802473812116046391887926857620811519144675547819147282101355574925763594878139372155807190077214921565560829379814841988223130998074329139466057167407830146337236613527392576277465613253536992878051405613152781275373812761457004296757249798083722805137496576936783557977596672240803620901463158692444357506541327963833866651779164768236791052059119886034898465530303986275123877852505826515137203275338605917581109314823021531771822121671072785241429643275970540456220371346936754609052631568668781717695957034511210255657312250383479953533613193387235412446037746569783143700762212673738633291553405267376224479035980053646463248055476854948629523820197741982014833087272589381493336284714554506123285364071313496019151520238595241667022842922890609281347450085774734290118069088733126859693940259247596474479007619273234016116531506162389245935267017495552219359145348158981059221717738644865626946604754598054502433733142936221183764405427603504739748799729398265338090809629889215497905395185891575921163021515863916304632350169202619409500964069808797287753782548540248948509450185928967237823193506118496763693874145717527930233610028048410074393038316535432365078309378888227942370232353416670503206669080122807528875198719336806267251173026284221260122343328692681034293355651090908579261621513270816434798314195382195661474337505270844690517745607069082166739379562746790664394579551621828724211423145499970847555867491102908380435957432102698393682031097198383403881753680617201833104584150926778040539742596294080889743210205624359898422819032013102631160307555927358567586773376904699847515746546113525798701020814297788228019106869178855908447610973020096443698877465568734171541287638614182596398685342726364579258985441131277982379327174494667404047332011820640925339414699439273451687825798420905621776786785490462262883498348003545253303626718105739514512356391477275958485542262885141964450342416079041887515825153209036848394779451199895944656270080077220336941804136697111334752734433160024345080655362745297548203323719565981821667315038560239774111818825959386990297588455240207810005886512451017462954731303134585930052369972356596665284308045116246827157694363557119702362097122498025903700890111167323729773246828146228426489325879653016541476949426791821595035945493877653639225355274465672887374147876066415501234082801148125778034870493045987797453442551421111735684835597368140615937350251729123113587338226713067956770653018766362985956810570293709737584158676604207510320141464508399240821832545602955113541235548111182598685978629673024517641576248278350048311752829098052630192041244738376433924710500882474021680793738786237896843631066662115338280044163106352920521376392810954496998263211838131089758588788679413063254841324462178312191360843619025531458619419107235704679298708774194027340045728800366687369848908193850682459446627109674856493566307976943659199498835860597514772181265219512247294300319956992709270432064331717813610560454043207184375302173999535284873287841322321068477769962959506199332191898047042158455205171646564261319890348659378166602720048928022596974265595530505284402116014169349338863021468748885511973192040683789752021000466131597141365332738334658546699797884689030836840580393168640323104425599244838842462501275395984978161189798474910867839178261155365610724224618966455299370139531697571769130674157194186531934687103231565185878972894267721609577410839472393525520568473199703674401955742997644466396841193493368198189974764320415411604728068558133249985069724437078869381023320317867476010822683775384197062508156274701286555622453530253147754209931527366160591139027313472053713628084491479471929298026869344441641306637336127187866696877388833804335878439763093685164741231485307080153301441918701026958577829310989251088397935505515327789525853153290253326125605526747031593053161586509432184027230682713837492548132103269371953280079843184920650696374788305343801272527868423587779894388779167288336530198970177974032759951086538639014898404420415247985921626970761594947130181768041104567464779583383298812980933799755706297517545251901714256461804261040291461555985611221935499638673300410883151237299874850555115237280947916293985452986366681806659999876505314966946878352889000617920602274102026014768323127547892664867190751246593547227253011733153998773653304173991028616560064472206580512815213654159854917406131215664398229897304575282176714728010566522442411600311150403135117571082150530961727940776050223753523285023139033426050130281033204788037983185713171340281128989112342201095407746403976264263463955207750315792033023787711980799257129930903438483437529657723237032894056880558252473912349240620347171106875760309653059447886277169354814719176971222373303750209961589243609747608393015005356247063750796994426157322352695756891110422711241623223202638387953039824559160283411352425634936164906282577349544112020059267797901924510634054337983148364986618462939654334519962831039269597485843053010626203023334047075043114138893149003030081735852657348383118449607491902874830523704414229985740778830773806148157389884059693074663894091547529046848669366389959303304354994344915840447132184713063134541635377880029733118716721013008944875626647611586586884473308118198628737153106955493803140333025781160686974909384891097630424914915736436731578964737142029939664341761140834156933103997337951811976263334030076274456297009656990385439115431827568580410917344295065669681101788415020176172600913968568578716122185748005926284606861773662243289338740396984264376976363079353791148329021139078491883582757887340124266966627290086155310498463695696900534020481594239462554486043409119504528336622661668830457305081775187107197246172175605381172782787424009356550993769505265699867831922170254694831781283711217513763888460821954159920114794839405963393448523799509583623641412387270529913982774041618428000544445622381794318677977570531371453031296445442587271148089157902494568038534574960814201528844398127915381680114320864046866378210665444728356277256117061068646118458571272433009597273700177530193513798995392658965479006487786365174646411196849766584947152271109052513946362345441774655081322344016472533622160358211419939156397460547704755142082308230814087688761345375241178165748613968841677304009473066150307141368930070878212664148780116387913944155480166144832038809582449572148992895018183189242309128526437200730369567812055983251576779690230106315607130364842293379926200339559615249496916281475701377876776405684640929749079712523185788336904962007725190511162487236427699518214985797501855296240045299018182529123571078868130038204761126610038590138178325452173607495599928621108222242788035960417771039870265987369542341696903173541379905555015767842126266837244147674255973644266254689177235714839688301823621879285729473208347603297719846480250242672379951057158057149728130218391306580589603537374468677813189381856584089940564714247123342791739685173744127357049262868195555150796655100158712521659637899344009551910859232764922992849627071371042572989662668348631105896525912412597090876481712962660266213024996352344893092011828036351950206108463234993155260506597686364092673797960909951953773730805051003123085009513390817810186148491808298584465963367896932973140438374363872819669651054455493224459482822131971008018447459252106313234865696262053553147674032959485869456317771527958766565248662980415271545366803408033737168303622691655553971058993100667620605687549752240303723805715375215511712995797046349325933288247814607910076720131792028462444337978175905597926058974035393117065594474392916487111611686605450977604611924650562395312191473884185752686584723328999398883895053762652015759781721038562113236835299126167676873723367193184638165568876773893309822022525259215545995334616516792087598118554339352775957579130792754444608013293709705991575404896427559857273328698637286167696596733653603484520515126275384161267038485905432225238129059072375231798360164363752721682146245382547919936814395900998488115076199796490471206687182315969280148528478570371304271611695314833815064166915809820151855857159176119435820681355344304424743758099590750267948853917105961546642922035239073020138154186092884649304443424096579870125383986332479302519734704572110267353715085198236967757438305809956875734749130423276661481352002496100475572008739130905701212226694450709133014632065037098478099087939452326479988148263191149011139862834063239525690014904675533993411528763765992341570867373158058532902169942426831761497884463468152073757586191967300889131596968878579853099557448645652032873492998033559666721149918173802237840810283144855514585669066387645104340559082612043712841338962310831770566162190191472537372453459972221708128111548500645093811903526861753035206276184297972383637006248864850974694015175551402713440586957344889874647444370709782885508769985679398855085802282227659456469944046603203688139488425918730031817170025774069086129485734389238775341886969492757910337862047202190607174444150045009445081478293440896839922663004531661019211973953512707102603403058201280478682450081397757136529262518267192820719490669862564755189266331341246595987857727440381892884815987703228204591881386887873325341524726640553110921941776742425287724289963293105961782703861565245257462572662429953124312437769520391752652971936209786702046952798940724135762366527154115081633359038080545782823158533896372089319608507989143710292930591055843557504145189514137239222610007212404837670963200054307533048134087638417871810290712423977502426862600416032080246802172037443506394330625423147563480209811665076058489624707385956003465884990544342457115339195742268620969680998887272609915181383181492625701301203412166718587903961627662114692890599331812716185743300137647933046937531040058876066558982251792515453703615966759139787622753194281731154429307956896024132529373536528249594847221095770962228133367874907978165005329010427897384196010580178938833972426647855990773982504628416940387853845252129132718799447337399854019468901884757267386872715599410527833242524114653254552501575068049302696599307015920849604263137837506241578974934629490758043343902997442752800815703453228651131705393095825621030166385273680175617604270934530109495601240101529868550940487917961252411327163863283979756213184965302274666931441969116978264946431075718201453656618019609272068291501966773944846813270227711130223367821710008835985456312987584067103175112109250248807315823644999468061792932519118995121782225907229970334277581022314127040837237327214219402435653235594221354898505710385686134061488091602829760469644225276736413678962025472705025518684118711686222017545359885662617030214893821948804506263828026037353871514945462158848362308986858977514191367907527692630106103072832863180963003060409013834205226880630955654227064423560043136716835131451280334089052941069782549047157598599463936469839595631079448939640367826989666817754051884511908614010215385405932027454727222608560818986981415296177003059248494130038461603860974644822600550651486393839306687530771659277178757391693934248861997678275759635864185326109321555988020922473220556421917150800343915333943210508969561359575155045610640260759594921326840178460840864331897796852580372601241084661273774145956850934543491333417512788688398518513949212013072987736391654351685754152127056280822473513267392932733466674916637825635310381954484614409820502468605611541621227426399805880072315955022174215726607589289623853453504763472734116380180261990538224450990961175391915789538911281621975136522057237584478500439883267637873745888210804646580211422576398656167514920679333372150972845015020827892422963646830586509366397537078766700659738399613577326398820926710780024269757117142824377300741948025008954769049151174964187298468805202360590311532691121781448157038988376541243694399145715177855209364957346284044017294738311408099580963523089420947991349871902413674534752976100947930361188846249426293897910976626073613674179519887762859523670339161048783640160834614196445722017856363441197613585558998681578365716035863092010809757233411440017993489315917905819059941444813031721937058080958488287580053850241022057971213868580581877280839434598134752139125037183474969956611508941863580744624540169077067935788673017551012040306385037593447152362867619089539278509717993805745417805345259948800068477907688172205946676103607127474657544400690613144874903332673099663697100830531273686842352047927450733662010846940157220617509789720478342662618410641962195052147518934849321899576368181445224845974245843361924670298554187742059182734589444140118740486215514883957960793461198471335603942940364577346342957092978756942543490017275889940125423206191379909427467122282577582395994926183860151243393166345346156269531688425183245338956094362310734439995546313361535794791857124686480131582138300013971819671564859486195257603949800146174194356925396830376177327472831090816802075100324700115279345436391207575501099608776873760190728007466881925809137867024181996195823446022582895565543419638427006554885907524917807113889325924478717389786262524374458957599065876110884185911798576318114594711278700721176988084804675872997252622129139567596711401755966875878241424940876218886079954517595540016384642161365298272815343010014548233453240301612891351427459807148465940037618304799203130098432628734153832913672838332881815824220068475219672302383562782395255660138325265537194073730361147520611923461493970145861295275221177920999876483993040267120150547925631315270687863928747620882766996172207121698800432942045484103327629954729572729473187120995116038442027528889145455168707274101768588254206241971193715062299711966454995513577316499087022034878869538982743559209835268025049895710124665048128443066151698316781031720322934175420571420161274776926162727923381564712800852586346528392033181492673564297552932085238680272883891007616419687813949791360338041427306594675109049979506772051721908994677109932166505411461723560412537613204434528906567719563273662566046862053600408948260482042109902758804788462610766218194181550920512564105237223492100423685718523067810115865863770683474697243087709125763558411064656958024068375478455531717997077664680236984163094919736299826301686002403854532738847579003987208287297049364947197467144793357579150950573549916721793602235000716746806464554828192071529794257955781462049977623631445215310119220604018547356334089831780271570023307590678839363198431868443269342648301705560830371203099767665336079930061972685513502095940711737088407972444430307193943107643547613053123260763534574659346234930959457817538648416747276524142254331521806274629549181464748416032613345799599047071874072278654194321750241811724248315194184175999296690798635128314219215266988265881762736461224383545476723008832844344140427787902812790008930050299599396510766526234977966939718384993679443582067083745988813895997203993092558579930016168925910905872724884658910041105091073272564894767404456027440880921049438447822271513697326080826744238011861940057226886036915344216861812438764983564932371138089288202736084868515653073169515067847144678590359144497605280356368603688944596371669927728395280198810792178530170664724214392745863377540546254199709620783773644429238909886601196880262957244952423456817125739117604142851212105473792971956575032616649753067378413854887580374448439645892671028165346898910842753743192498775661766589144945943309067516232814709365931699333199539477121476186612704859426164714630386077873167105741499430551271212591960425582074029164900750084891133158435853452924181997388099204728171478126578063232687642119852106522007127695020509175562536702999142806003499961036433966113652078109777543665503145980934398205483913833694716437625826886196827269411061209876795681823148762487851262840291299005812332123735937609050199990645287455470499617240975666699071360567597454165355012378928442795941828201790252403610295242493689713238642368013832898352352618886510475680714655509130978534136833322013083616506812543256446371462956907497183194101961712345667678015591921521631479786475611728009075882056494794311306856403623808793967562282749815500236140240470803656402796408669878897822972150996515821335924381017022572381981304103838595155492026761045642844780184939301463833811294300671063182387218512330822483532090109215446747202134024054343387186716588856811219881727937358148679197431447990820159104704176117152618018308037181025505484617446465606180133939790102950571252351986307413953472228233972356911911951300407689006454431448608417036585841721341634997613838525857930020236972682118844919859397050771683202657418526218020068570609231494262686055084903463188989315062563114686383745336008429875415142956774045563394542687915713212799128833186150002858541703013314995380538180433869344187113340263188774399336022317394224152511725349166352011935249185665568654409312189658189619779006660034701576773753704550710924090918790992148657728641581837087283283337873980215916618019843699484783659432192096807898900435525475704404527882988816283765421891133148173996835775761991856780604875398694822651833970815580312332511544647992667952226760814318745639817916010790471927708948233277062659800446941743900368170521370171501655073421553304888749567461860062254630217837223491379638468358949242928444193687120455686673883079903127749083074368024282964917068238470749023671723813302278388845791677068891646952832517661036121648527833112267911934639883907447067008590292339937650054425775999860018368323563604641769348410958984801191017141335831264872597414207776282254370295536232184552005709732130533217318539953213655477508303385570079057163716395285246152688165346378124202106064751844696327179403095486021003537182300258267096991228303912310899060595039606105731219513328086514608417227638497647669408399474050160348465947191473237604369188013187604607661152946444072149199224119862741834929584137063991163737814244558662332180016691308437120443748925748198626215924441745810135512154040923303787155713604990980385743744432481731728241340714479053577048838277726279018793335714729673299160323313490794515991786525382792541963957397347328146591586818614741099727676119590866986758184383645624157469751358162172508846358374697535386987925204470339322697709763965050314556136202982128200340714276642038997164042309694903532869877830332515786613366237913885095029256062197046188551160077301270848197584694765771348406034132272766738091169254336232055849106265293873536043781780213990995904247193490268357449247832162552595399925907399685698411374243107378606855510715833221812519806175483726201335267188519907808256890459137269921336939383668228089875890018394908410363561216646600880493553435958248882722408489976743007482289290194345848204492213725132533147218415228046994116069207931911655153664504737544267446709692304233358034867907820798166971524940541713726794857827172356731797104319069825487246269515180078898241454427230385700248788464682504883835294963812346866908046659770180022737193524272095108638815863254583110306955885605955054016030079123151233840351652366352249567308903340552076035263905506038969786575842976782318514295260985724032339115632170946114627610464876821827543990795117985707831285859328600959637491872869909018935383375168187373884365977711792759675734254585763326801563429782058986718419949610924793603218113478327374949984254509059532915992304651724737274847483967284210160088655415306775874913203081466909705153517272023188964246543373732781116947958204522259895623505197510266144951130779396319807726383479341006639280518481965588447783964478011625937149773898161873786756799663583592597598950346749608692691563978599546114056209103776786176968758348659902697069946516173444788363393761487635820226137153167633098488710184911214000629005068480754013911625522327876537048630087579953737979837078063510376297765119255868560885821429566645765966514148565259015679697831190327827710059283921193800493015572889441802250832419767667428027307138218086273585725871711181897978509673451562745901487469639515687791694626635293119328346772923838531984663703323547919283590528006412291887220778397833300998783832401623694392196297631605394637059893240183249220521046790398105182667413151942291852370136298858934665464719125468517647650344693148508934551832430781850153375175359876738825732462998470913909798073594142219010599117470136615185465655944780351992297278162348477766394584819380860944816015832913357236224937708159944294180049716434252798318643599627801140002304484101301472713265290636033473180609620927580392975264685877163824142354073364753721403601279165699139064764463644973413822738560748409947710325705490872076379116459006896384848379912287450631058909158377496939574342508875637845447584255201973659178466268700083432541573622296443207550391495789598781765450886550658814744867370340348132533648515196364178454637318379966346530376364062423330908576751434433912653604262961270709019813529726353248754529512956364318515088239489979916449521423941218302112927055272011203961556400167778865025599965026798473867928007897144945939140879106401471284445215003919050196039062649983633807125947837752958136453596751420276360157984217966261165925918042132543032966541830462745630482682919569195650310068501144949859673817074692458952225822060372376794903795750634063615706344760153443388642820618790995105675175251308639187067649776211905981106310668632303276917437358059834440553152677196730359282308412413176612347173250786118801190173741745852979080357162528697121707406609960446573385853983194655552487170947313253096233557926608417441716552285726344038826957297071924190109698309061588509813676796026179110607482552917421159446819848538582280762601865551166120263061159851085718045218082830170798274743310845865138715636665187254935925586116554852710888316971164200899590443431175512813912021385449427467662703499875494450746428548012851490855116478654552894436901792918772902126413634517141422857012377661231824933125443270113394873897917412801244407025888858611024811360181587956084405903699542188758460765948591946384355990919913138459327381730117133406927056388322784368317287114909691130568488261396314859497097405972884922490312385667883410665154058275558988491068519130022830296486093300866768509511663398390026807308864161719707775301557576750797689654983647621816772172710439544033283725670103955768117786379847560714912413160803249518098368065386806216352810254705037287753417273295535408132228959746173977774882541892328276127673314930979238536629099992491828776851936485511719207519714393516878330741357298525683184451727669665642135331491724835946852804125299503850431256353672705294244080139226882588741554597748304895738767057390288995280875293823188154932093896140300150228084412548939098422258923716019692127806478252670280056159563696441729334031821701277806075385612154712134818762945685220981064236556444286724798191335035309080624952285675862602266879177467310625577420131023045328240351657033271984179041253131268878323464294153599957673325451211672707771924205793739848055912087770215105810359625174910082194478926277180460460364693175097027466115077041628716708965522407914442147268410745398747779069198960264289944357542726931973560477267642329939610672296081093856282868966320523723451593098826602224184735571347022578282867173702619783616524594588300186356580525975497630894946460329267417057304756187578664440070480615240088882018922470897974187435046978303703501875326042276459423673474998818967076952747038383773241994392071235961238781906463781107577041966296810249096024950179372841797575256894360865595315377131339884076747284995649332495547105547026141577840336760024690286915326803638510237247613736594688433196701037374629705965240436833500015165163252181925327379625131767900241355925014602422237486896021605791877679669261346995310592235927343691145820386996540526532171398014714365581369716014832385150945201564665115730778986776610923770540191113864245726824574550656035268208927849175797951183679968908049113468407496826357871075320064169174473826605888959340677606624632265273387163171969920810060916378842943362799750644225454737325215007882775386429302852921597895489530918553828016136129513762483635091837484695599223833783959980823184943320733549439707886152624709692546472101385350021207769122762358220893699606704038889542763412134077493857555095583410793859653124414211804326552542921222689031210331489723691696284655061260328905435663851236928650984038078026258033735126584300427491692566259270053041507387205048454911744991894385067619310455062043902534573615598804550448945957263971775368575729271005315948955740283432768806198605442923681867594141137925424165797305885614727614107747918955336660137026274729279423639361342165241442501271144105907814180355285345104264806308950972924408343252649502613389711818072272377307044127387454008085828549533597909549851744281665371628961130635641094384192533255117887363163647037673627806461415753240870302109003164534332798018599260194483146107485470305516877013327692244415194278258753746634794535857122481495789861297032698668303764695597484283525199907520146598597276388355743595261132863033968976372259971981359141650061456909147189363597257352959388721315462195010298653151840098921611931260648930424875643590587777392113634213623021478728870924600376996687864013026494917879248475261204897396836523775561278732467118884197879564223811559214001152156721778601971193112174460660471484325217528597107014075795672296212552719011340899641904566979982192213249370516808929538027199197908574501337263897138156105566666004419637575494827479694892927337799257749123475599655797572746519561804659281394910873253890766062069609379776983097491097506663384459447374689186962326054336631723561647711554636778200325835684394482757690435221851007348164259178294439772451396016085122359229331708837145946281828388511626337974343363438795604711054126673160198323800617443634422587800049852079141529383738283693272475820335803471160852595442022502668318509564052418109535201474368042590846414634746118300322185062336967313679115248892384688370392757803071544007952659884948226838752374311774876172008364096789517411599019842325026867163574107622086397144210653381161415103938655348686796770823744383649687087090560621074488090153141747465759509079225762940062317024345298572834368132497986605810183389095580054184913683110074745051275573966349715290790225481924623613304907201983897681936894896337378171364991445472910250253941479752451642853977202044751892096835419279324264539917519777235456473455627699663629524642463041324193341054895089838309146846548901437092222460919978514032245933225434080824038878524021577895011454587534631597660706028656975742128263347351290976278194026797294264352127313383800771459660313003182381114372936893204501609695087807429855330389328130564287468910642894512333046093120844847960096772947011729574863937240305060623994767007520843666709284765356126969956686990219615339009031136922332777397230970792683455070998694883725958675339304774218411316960281743664581969083984570455548873517355830340427925818377796926115762581161774575528925217145194560804741193344369524208598896538836449228981655216051123537879568306149057203950990482686155448696335664832254753952406513285087224287512871936622756151153101381266030582354976873729499291233534285933731257286079626343228380327155679488499608132384300351059309642148999207429465059930482570688056989680934210147380324132406125483849388078031544986570076798233164997670487108752250280374952882590735620505855897571238485104014381998844844906248872582178544689626041575431626772989348415074867116745489398567161577434537445648304575373430461657340752989155186106962328412576804680167899084139727106610374421411204542381409194309084095618065380601062214165598732149353070832492842504353806055607168117808172759034242081594463320283639053689404495949878525512039480694388961727634088937195288052934582178133514334309267531246764266399613362721164145722496304649996473634525692852883272081662363185279078985709189465398301960644193700930382667317704172006095256267276903889300477046711982632863428448432018895870181592438075050628971495017614430993093982774012125315986416021567629935953315190004389831564277995690526249209709544259100238015009292458244933652396265157080111858948074524363187460217407548704677126122668045340072038099922901858541839242901700186229755704803011479692801707521931738110069186382902286367218426156080397132285055910704151691976574459056470391864951166118338755189386631508417302579022288931617066588159788816382625763777322049953908558189694350283663019464106102834260673679859816848877717978197968739910885652892363336675393381150721339857861417403266048402501201975646956160094651483520663294756149082495762106538061772647077300434508224186808127802775056309993289754505663351742901007493895912650762373366517292277887677604007601111016742048575941963446785921533118885422555061211981363527809116140227373710444032625843442643320693823189812274048550587158450683414698468922462770818399198383741483774225747512636315420474044753855469968230496278375314719505848029583010772059209979444646485285889548685035583101005019253720840906456801497977032573709556714019727523157715395825251756742295956092145305870784419492127883111652996262215908330075218526825154001931983899802746462407915092869607528164639800292686082382601888983778707589655720212868274344398284072968199341994378378501530924864714037763476466611729953958044456466848857083168884708564014095070234841370088796102127525328095594647943704272222692173816356336522869999898413338317424980714281896988597605476094538735625325226570887705612484416299686632453077287986878431319410782637814327585128976291678116978545094885418267430715492360460418408452406967683975827307365634768209493053648822709329401946525066626447281482938966360840712233024596176098257477008959720817683998422738769991968505693495353832279948632850681830226631589426449483171962403707137437299900819189410656682745425173758346612758892854003821085295225937031117416585985480166677086686466963120994892570905169080280290459279523789478902921488427988614996742460571762728339877747510254316900682755147903505793042219585008482481831613603393037756546326412502101891901315203341037971677784260643264007512016352447842382277303002913639870495299745527094234851906605590650214197203401052876472793163560784407831408730105146347575485204219035991596709361411940855727238820708522360212911368652903997891676442687492117689290141102572036744313431434423534968221665728241467791222813917448633629247972758880614170571078665165446452637176465654293840643375601385021530382950308120956502782423055014257873756441176491867447679283492711018989095870183720747247321394114650710906078719516104312478688919347021968491011312247107908974644548018363052718697352067298850380167982584841854074239605081938726995018171177796463254664156660947657958017300441536045615470448794094707761382240912446302340080221175304259526102041026862216145717103141869488044319360926875224814571999574837469328602517929745358524640212104111865785104602972279788716442822567538303496470382483056883531504281571728369126793530448424971905293457276318828242824234611458966216074171030120054100101561577340798299625940406291642867702061060623335403960326885530753281692807354996488191341604825363358155886879271222212084176917949317941083872874421225871354935028252241303408799720954388105675695147094041351046094845282088391350765986363953052938286250868690426003642610666630611949257239969292346727427849821363818178743702797096394863686593284762421709835664699047041806348649345415710002603318476031005596012388292505399493505498467755163317018510922727341659425588752555185939764989586401943640528799547073306663135182227336900615879136029062183189303588615149683585306007283605886470745260529606455245709993510413933496664920016135939136497935949066894204477705573343738345682343877418189934159581161906110253517114989196123831803773004122905497640651325173775258318971277828014497601100313217167849666002275084972794829808024533832848833640233018151917144846023621073471741845460539918233730219279325454070086903432079474173709626369150454553870771850067321269433441248296765347210293362018885247240068414632905525368781129734401441348432921140234214540296921445030443411876089477547239877810813135418543714858987243337882938027764034966391529728168517696681985472237366367107966535522109690863476616112704539086672583426074812909932198626411638044187198408373304282630580260477552736943826986212604790587032356043242152664026958009655501748910316059623371456963979509996941821557449056761857223815179545261418105336064545070743795038284330682481889976501404285518941781987349232349683849859640879455379067693977691318952908672035723595268075406053042170299882455400995934526392216502281041142308768119165098186607535452050454364822682609162255527335660930401205921116826831832577132199681155411657728188847814378331547754187849093533602024937969533997195274461057404160052386374368522518238879587249509224303301894372259740432351329875082366719630744202361720565035664795206113186439148008394695161555957630899779580791195926047102654468894669439026466907268436292902441489767868085500046689966534977539664478284424225918799312329294693657261789883422907331963520019377972032550505273621190499401054373469961741770626687657726819098548753164516178775819460630596539963225356114913721122939081912559013556294890709282539991117651144317934698553130694060231788812061132601352841822297475158717071806935335014179757576255319485606165130105870556336962165067913644374458356359049799104509847736451818050741467321209027292568552307343208941485990736870261444634531930318838902461723071200380539325834557438530948697746071486279460992969689796996129373297189504670607852456732405372277031166938436653506227562064907496134196281294269049965827264790237153332827894522008448837307838142161912722409771310357354300612694443704017750208776339771562584655233890359219249618595773154147270309123043350090294515476358980128338071277920226913758332312097865605280820194308316022778072648951588338720195445635878361304413239571934658907819305581550627111515009974453028195520971051925308088104132189576558478576685888084035181553090583364669697689552549729627141431246428363781468463386582993076818540490990210415061336597618928047247585684640349563782133921441296672098630787283201812686418524494846969519781647810875395762332516618987302886767171552662144941796932395569138292949861928056493807557723296759349342412177076005997790290956177196874543786058408935217263032693769715884088661321223256044523150241825261119298889004915493097959999370213834912878299272382956561597820623248057364431032961689502426874404033248453343303994625836194699384369134404818388023112580725293064879392602953433882642743865237898298953812737913041092012964554680189902756233779758353824927274552619400417179570352177117473187722497707217824321627875421620934064141495109972432801821192753155312309193083780672292782315697473654816733990408554628530050215868529662407559200569257158654274950588479227293022804078286991925238056967509023936008324245870254850174326755279141307275666331079122411310634718799321282440201245551029629189896325599506688227107913728200812373752518592483504840442975489037838696922392526070266418565592013409201546106054343767600768167867981447453939996919042039291433867791506166845461645237133248265864908909437107069446215838797945403126928897370808854220368469881794766786379663117902276909764547072429318108613561879919072814375407547288706613337604066042826870176907486397754745913671207969945119672606254117445467993533608071436429376484175133877299201095577323202980404522138574020525427226068922465326966747054012718217757583349003818029477383010857485823417579603869050679451873073147071140893589111755116037291959789112561195975341564160263397155212220031341386475821034844421807912475520515158368949279126742873420565678192670666550722980006044958160913019866772913607128625717954123080486724971527832199486045133724252445517227131931520473587618849208892551103078476690334535954208306905119413046917021248688217058969281751996888300112438920241322026622031795735106155477597078267281495177280597452706819359952954239511429027625351370559120756915985724538424312540490977464477848054953891272963575612026586778109812185269251073679976752429986644157181702164303145639586394054469907982093829823931165557147253937279850085724114265341328768820827063466584133356229013332419967180517656213373572197541381190317042836764871892679401900891522615285909237829547841240206744594976403151339484267576658870215755001801379681889418353764769288539214562250126288984538326895652839722388445301470397640930548545824930450775996308416686098326988959600320226323021510544608570733881750935925111090673070405655520012281241616779320697642079744499482637485998725532528049800348287397627316358588961816758805612515829826416704144918573938251225806261600651855449656133589546372959633941287222133878163792446704837948794769504938925879593549207696620307418276456203960349207728933247795109563320710064774694695629934401057173849357669148079137499553787106570650772853619564785025038141542626646559718703095338313779930640178790923026430429056199942074099835444940686764474376322027921553722033125957389093381305253920778827267980971927956110016059233485805423469086198148226536691535462135238288521347145849179867414956130440663296145641844608904561242842862973014348830753133741055881840740294224256768902221750414357352336897288735176708388555282400580950492691233367525779964349651617702676460389837263671718881293276236400605026323434367852781427223637356324096764879097884523654845861844135035187148192367241271528854480530949477834345260768527727797735702368798784483413277472073666520294014879691656911207501516856682725748831005004821202611037615429608909729275764119671591768809991649106695035080615382692835292598063432199253346926068837009490548424446778046393109350644903057210153901343887655616042056561482367916953992212001432218724067179166454645463290450210143587860620137337774217353300493965069935034132336176908651057144426197289153331986886189759947988556019646029547908028034814751258459428096776867455387863323183299078145439236660829668519583806583007324808213019114054783079799173486464147674295530703324322807222388147033050101289459781670294044796189614106250037759046079584682649867202917070304337878921696392023745285900540270831779355229973440055310052067185955467430537584543513010792253593380198697625014580431058550047414434540581451799138272828357619512700024899959527683117427471609125591045557198311257665157046393530874453991347875760154710699317167759008617639427022608955712207070854421949886380383143566977310504668159682170204860662224153325881771962675995461733356933986645555687411574825308589953900851558316175971070551628569544556322344578640484731681796193373406248608455074360417031908161044786685916935618785434023764830891526657473970524920862533776945571619739235009644228229422032192223632269390924136019148988307951025887528614238683189210772159271009056027237865880340584311088687194158012027489890459268983645243142249975462420766523447995893409058788168801304443123168506344092830498534436693823015498048239081706569950023453436053432641920323213661031880207123471479281217248328951628905109206210721606126100304036097792552418604182898172756914970700620491718340308006741156515462460587509987936120027774228298609573296114481528568570122816321216537496362221875653360272688807070908777877455847879941606306540208169006077131762471844984450610375631825329647848543998052892627277507585520829239979780006962294164987152672090939382369167193472486716733905776480817067491436095538414968947955264927549949349098494679903147195072105278750488244771050443048124735600472498285439383293470847649457869382792910569834519015614966336418808402145937474877560485559342311197074652658293917506080780519842293404134762120495986969014317412387899418755242764124955761712275654646013681515232419102397851372375355116437274007982835439493698206610396831779630829892061049416996099381370124365564754163528867366209910355415051104298432517826009421625624723514059126974626697352377095408289750483171470057279370531265906375912688134751184268968990564057699353809235282523799994312875594441123207316178215112754855222819064067579144918387860831092213659777506582156682524506886905911632153209879422149124745740890947549635486935114791817724283946727998080102781709413321139484361709847430962630370797617455027273206262394746695237709261707831670827549005364415449321213064753791454721238596727411694620461235847655395717355067827640101664640399749697580274518987264833316512349598934259028312657986896877601863039344302469108580061963784263495638183857818753551142127585592367328568518350857893866017292721390343101068014288406658966876687999078459747718123006195038714804717574929544279609188762724378195945488799305264867540234795862525150428522431063502032285886412224029525801904608542740382103670068766255572299476256021062726312600656227342040827546879962950187800423557491166832853003374977742286131008557651931963264726933973985044008035154697332980626739472671179552489887600673536794708267253814559854464655865130221927592094053136684628090337637029444945228791503401764004788412696101983937613798240596091127571616651847877927205172197984256581529824974394977644233901108063642508761244165716592985938254931725007109065769612345441298028669566209909391394715022582029932775042800038632244875502029846675538938846655428922920328361828823260813173259683432041690992674041572801582950508197883491948184447026113465390874386297061303938513446331518091642265971417165371323976004498704313610317786370254468980606439508659167072781459241736431089608428026672700830842184800554946487022317981450869627002832757034128419581740574657819958862365428131997101285827005540707482539964268216620215082546513289697358088529376035378669102408317838270484431624559548915131903703139287065004026525385691766095425743464033731944315194424065503601693330925324846278432802567018033285686845289060880110472013976591746297493463364785945805700203939661027074768624470311571166344524546062210465843858732760117325290152503813616481275705786545198473639830970057467298965783058404643836177008224806323414056302081168956945694277176350243467213752981117290102797541998587049623545794179510996811885421824573768198667904875072981497611438616388706556960368713901590726886959655300321366175652736316092173765550880480789211553314471954054254078982327467934658966031930848126793109155188419855614969839385061370092333143909753042434800609094556228963027761358362867568484135060911907890436577848782593645349357332677595039675935843048432900726508536728205155408850620065259078512780238558362887673262277814177772406423262084556355263548790853281414205793977575204754637249631083437010195764900933846370939297758605375593912275195339956031891611536920807861032207817032348311508680549642078254013948600329449533526273910060241865852415891355366674148674507677087247276303267473508278912055660854899215728688735224762303241428172731698372927752089428570205111804356098564320623442976021459753635548835765602231161419580324562495364984780280188602052930894331853698845495598757807238112379121067924402695820600285545289668516862515162173681765942586360352810896063567028440158754732237766343378966438630785162052303814952451449203883864283585871420391253011246080874792565099473196676004198200783497178735651874777222248274385735021750123946258237742088221796579283764144629707271503356186232704093511669644944175890341297563662550433848350101541917587653042808657946015603608977474972584476710988260375856800579508759273645708744706304914063480508424624643069630893706183199063913870654321302518091312463684723745392691642868086098543299691144932796641021505371035704206449221818770773774157984253251915784345797450781832564082137702344867820454068316136561200488078467153785108143698308823160237556228438372346348384707865172434078022169610969321508824844055563572455421527893119115133452050416693851004328917359019423202404219119521467177122643970488757222259551720192250831180748994487793710018741380779870344875025729544520560622346961530953791036742166960781171408279673922018322297610230776947376063093439834273840878961126950279130444243459876970828487192671096873481740606701090209135482639263638856123208379527537193733574947458872678225306932028465880161926005382007363456644621649367028972680823195520284983067332320319169627729727730353209775798384092328687929104327054468417442998134804407091468161872671902267633414909044891645175406781944928424811283718702500910136432215253956582043523160385495563484445772152566432234876422318740285124240442749309122752551080430173293600930043858618197428620091077048015816927774361031445830733652624111154668393963104410559396105560091235905099459590290772009248352961731877689132125500424653348026666905511708440590074152262154601073413709703741632057454376112113792230120910484544284021799603030272751931661873103589980425037042869925370776928227152374305117969564903812908353401916971929989348443245103045936256373996530195654685179034048566106886666611787902208072958981498841560073005239052680037143593495522370792721594034176853680242536041235522953720632106655545366702461719456284408567105064799897557025146327917030283846581579350886397491242511941137189294915017121738139477328188415651138494378175080279927266008429919200237904788662500613457994113869849916048977670219563119588493000658285443392944564554248069627298545306072097856248429231046488887466568034184433827995794860470521472385906088111233143081315363055190219324914578749052437136098604458041466595464724212436961417257257645540332511718385187641962287094956210191404318524086059419152167482230663321373030672956199566745347569733321475251335615119571997789458409258152467747525118843134912056015279661405285196415362229210313188476904882485043920589453249945719248437785813656289494859640429036538727681219133720907457421830821184008960458853632840612771152373452082056264307261833061775994994596211362093580935224657628801063689038599133288835446542941023027341747052434391828674192406413287308372510992131653367023361316764545556700469342810053238308137711723192378801836784818528346597160626064394790191800575908377737853365444324872110208866351260727665731521540618515435348855410508789720487064937376853423890389167864474567428393182778147727043752842615680158036198106683250872115473866883997174707696965339435199173931728258640790740710100606745878979203260366575563873966301236252323644155952435119721663580630711610675344662067951322012396536535057886282636238737127816331967292365253061755272247192136874494407763629140901747171406636476932530641247901213547971123138560307256513057569915195699414919385073796722777925649467384329851635319315537991012426069898628649649961959221164947337478967980598950351210187836114639489053019594926771053461544289004065105510954868306144629542638545191248748815454361481371468387650137257516077277338098524145166447640916727319844091226339758490444426789185471798041618757781221887120143802257812980744008472350984915017393863442602173172586596410299037543723185946766306951313965174242425004694981955086718624590966679626828211579810401246258545078464093407381127029830898724122112165552893397497706619988624714675537667165869323016076958986711168868922530403015040807718974368810065880117341728041503489944758208031468972386465215821642295813649310429082711409181435401909698268613343966015532794700771669275065273864365006851721062272409376173297079547745455273285172929468079666220652704608074401171086768188664710222606862928788495605785945498785082458044120418902033469287781325821579368395556247818385586721773410214304380407108144996740632193860300341234864397630533869255317477515188474257435426644028624504253526672195315846932937381055593925255310435699159448043681013839767448518108383029645973042893944382391593662133216714250620042546641998837755539128013960007110571018874747888129808920651089250786292585837885215625459761246673571179102211983450660238307586583433534692056499921435743807638415487503760720783951216792678524295207147867353109674007600743500016514841250921503730999890897063996111341829769929534222566847848243530341772351636607187826855791323707847746996844743693538748748062078283654726429193758287867904312243185379335039578181842642628413680454376268223693252762733087544765024343128909344804017626006868325208149721804036846302595927210594493577863574804881281846780285240911047304477506443154328799644703235303457263185620300475032874803092431530127649607605317762291875611337875016648629791603677159346175843205705134889618247465749419924691249867803385787591749571441319615184667599726727036278605480073553238278241478193975453408705470020211042263879487168116008468930061809709585071546617990481310673344720109478298305673032628372543599729868609023135240133802268043906902024091771584535761205401806726485339912208766328638762360140745061815203397912204404521702301541192175940042880312468335388729439986434643649790493496243073169875081411951739777472324048366803675298899202982851686239817467463993713707937147599987325374396758354172922136442392529129239684322915378397189564658237421687836027846543651903868198450181543906563197621217271217070035247122393585600026927230995463682061540512777631127403320799775949266808670522744372187498762830873705608697686945843293077610327729960736323694592535602618293219005054416502518465900442268337554264588058888920858393803479534431167048148396124684448674104535250053998370485622709913322890864352675141082815671585548539959525336306923214784513486646818816380253332496491512714483346076309533163209874220236005255526885373844391999638255701211129472901900234420074879738765338860203776927360414485087759315983521686827003881925288978025405610728842275689337926762168052041396313175940341214811767980652282334506049934002766085198728461575465525763818783632347404672822877357897254650099001547724273321710433005843577989610524629841317958896810972989824778700872427663497923663811110241451611476490262944465103403495204157444322694506980391479717716352061038412856611752863656717271087612343022802288126062277224995810318905176000404065727029728333347229905800117636446667017729217068821404713550455828791942783335132898495137808745492948332163092528233912232809509733702407133747583321885779807949414288001822505490734846976138737106326007904207739651030005702028343452528155098593599387570683685720268642087954905673798642338448311184646964552114248524451325638213125206177185801156003068142050946705186754559195496829342723732863186440606599681696659944980715802505521004861684235950494115166955086086443313655993283860544908026710372164988279483079129310556272457160803385016640388461248451392666875690763225075040781565422885123898515622442364212037706052690755807141409750916199935904957189777237120777471887585900645667386522307970127604700049371860736422321488324933143589393352575710807733703880829165108039814110072921233437968203295707465885909780013073555111224499131416608982656884378996422770996327538143391482943258691720513432893565843037180399750627388680327478953914899467071532437986818822458444576808260199438866991594281374114609669215984987971216052898421536492497431448804774930419813929978841993809216773631693831375776367148610256118971043606151738284793298947854893396019636874036969893061160611661039109796137925828617484378287040111717993220537581768427593549360070705359467726662432467179913414946866545856564101526573456422681299153818288178880010482238653076501868246433861383458338261810158208031696884628404176661043417233456323677208708763834710543538536892053835910132853302733214546467460678409584548102084991034514532747389970004990086447375778475207148541634366093709246940398614522268000880842795443922873181265962786866298949037276494637430414504215277378955242236889774554410194723795398321268201409387777571263274060851273587762761088348799837005717227198417630633767519286647285146729527487574102091372862994285746459728484356980132476314541366864637829889772372555209156352966005519259986716347332499609311503875633225429474484499395597243023528943474168119344739008102664274692390516339380217648168021766841383664055361116404133791990245699107019464953343881983480596694999257180689573335042372996421869434945379057417514506001220673900372200483844529489756629243402421145116572169196532233748249232954947670738916090084238963132822871433059748352339941356253394640041711246816123831306681897337174073058487492785954704776658477854135386555057610366723114083151186937317274447571596486073520526462982307458046472444518065531291563134664115164409263348172692390725741299621230654066845786598593557706773911581959286259647343901600337971095811916684826471986159658521108983138787219961864283179261296032537682351348363021471364266498615206970172864626695413977270300348626567081083392978148013200384478207129425834316672483235640623986492270134939181305110520797851405177378563479212057530872917251555217479010018709355450725979696659491359767699965981570683345421865174012083429259258519705156808994965741593362456723962455260283546925385231496770400012287397495431043940003442071874010851170739636356444193297393759583047113140880171435617086150710691750638995402590160325712756828219891979923808753059150964532993796118458358876810936801202449526523726277689823980391191219161275639596364496057430201675414269394195421937503190113711999488776613450077593141438964704447708263660259754052212052872751992771877952287663893351500789663513236740633089051148965845005229181252688235398860646811559865991448612664216535195064855099039170305027911314274674024370954933388522127814152146597146657907044604913323005111762892301500976666685161510046752402146129606248507774997982250977875074691912065309566852987568089183772920744875313972596760175432711452239342647473642048006467918717312627890109212967280600561813624029776384155674964339605450467553128765311831610329713156710724743402293856963433674034650384113564184491706435702586084932468784191856035362845795498669234463168462699544282964966890751521215101697275502999786148941367207597625595968627406804736777069025871089074439395471106836179921424502810224854198290911625765045691916971625115386385594182370477016502964351915356375355999001955132943300016833908033640503266655407563904841441201142574244290465927597626187347616700143665853363488081594758961215081440834956511463437829755503119756399003056146008719270813184671107633135296058358762835332601589654124578160034511224699467372990429657855645219374212692775621006058574782330522052701983291216455944551592013999066101932038058351433404100098489806745549885780247119884407308632971157927459961311136109638518821734626922284230777351246345047391865763068144660651821624867603588624591474017781154713368387652641028893791406911359426163437414911560812682985840300821691943892481222446665073888976039376037100974309356549021316846608483024561400672878964589193176479302172426352234945354952422626870555275405623817423031424876973133316590428471188123613297842688865206910251352095448980060816213260974687433962255342464980911499621894407965743499135260393449594885044267994231229527650612728696258626613390133424108023876505315522594440325203564508314594741841909479798264603043709004583057050186431831626447036257126779030373768776708372841525605290697668300935925788940905431837822058941102183685635007517845637649474118855649102709284759662056330627255482306723647970761810702337471110993308926140026939239046153153521757314736489107823162442803138360238856618789954878841434823876084958964668221828160303896611285516944035382774195749108287310573571671728396881807600675202523674272906245984515843688488362910070535001415648724824275147830214872137740180749749118075349069503579109338126814972847620161444064218653787239329887871271057555132368410382064506136998167944111076911062586405824369547021524393883930041856692569075201203409056828270125907092709153330922453016865262077967254919667367802302853787973484931582672832137916614444383352805116883921352435392765547976839935984630159280618712216622868082157663042203645026586235796645493492282772898882814255049402477764188502314649925500896857747757711669126281242489728676857954469703248625511846762335660769645419049705877334241692225450385407848507142966589056490833333777167937951573298249329972635209307528575198020864483572995770882945957970132262226547561583236945700824029900096194510118615357395247781521186167587988913506540441131181980995173776012328754646134563520832933170563205730078402662029580126747831092628343632035441090510227358453538498146229081206832697158508270631902934735212339137841163601553578288709410975568563776704469442640654774242124452413891893972674846835998166422428943976623518560282609095943967370802549081062554539306084847973347360250953857735043978778485602071581850752989950326400025787086897100151217290246395733411507280500887595378804928257800618381382516480771128424124980885073240332850642134160882847718669891529951267319036278563862925645244729051896112847073959192007812997102686798103601649869852716561566794155133476514971960066002896437365121415194487250967969430759194063703442985193456860889383006253699127550589796161469076012625849882051220374334751329982060279373005634253544195938715139676123518480619501426086023472313064314658408774852835913377273438636157290719066858633335347296827272465529644071855316486551784983687588791156647262299482720267877887062380084356854348469680442023720549264866677061592778559399663005018213403704793815749578593716965423630761152963040503428898145211848147529340939711925655416375373278869333944789176046945732442045289734555129321837994170286530489360461928979882834927916532948061580342915914458355054218345040252280299274651523066057226814853738916443994756892107955633680906354277301390229059576898244221812072184290437925699210528849145669234455353303696118801431743011741409736592541980333783905726921877998289493278776809635594395287826936991690752752610139128121890339230873501112137073398892655392997030952654867807651684550291132508436042070810796004387198613287837521443446538626300583481341710373779991805348645189565437628570040276945455356405727533336126632821399373949184429628691406353372916049010773155818599006683029918683483819990837739888394639538779243670696908234532336274912615869786509313295196140796713355945472605056001255046408406295939004360698668363331803935039197199276022200691888243053042147832143846036888524013905911051135594331999238058149512983262871357936310549112635312217494593501303160721005730457580149601769627146419492526687870823069594097525226227579871550748808281040222926097664913064848084559754807171104338947979691541798315251952772765201647784727015114708699080842159361361639752604346332766701384977871802747698303060454269698254665721166982336432903723599575353752789197688093648013847834850094851471856123607621801522709469723189147223840509321571701728351772943778522536051597690838729788273981803910027302858141835164392972337015032008350990333722621726284883103239917486170616436552584996157375212792285245799478317924798513213525994295078150331141756817514660355045300971637794222542653595934693544917913341851013697459537675798725938363203912105410085235306317061547755285642460662958910964630096208000763188042526201774657518157764552992929743443147588844953034262256861075049173627866922250099018944127351790904719561408010087548867316848757914964475301624251848713581675237353330250621590830515721414112864785268596229756694961624925498101735076192785708866955281541059828303330324621710845497605944711738919316002869109652159315638755791792345914463422269189571044745546649414263152032630932741029269659639556232115884364252964624121291655434200646808333911403971459084178375849184570681963785801461113318812200478010067649205539764771989023101843742752139651802711637631597360334123359957976894534203312439613602723645749720784896985635975615639809588796769990736235342779971257183544916263850068181378270523430313030196224184495899436355167922467506142335038986498251263425199328151658452992781470975737392305829862871728734318162371030478577412106108247146428721416222281951876545924312672175576151841595466242930745800557862617524507564437616814280791626358831957567336793618973960438387778157965746240651187585915589874738418748603258135169763093907043204246456817504017434831922866115097529017217254995943974728539003999579553238870118101136928727478290164782714067285682950795732765739122026961561903583943218763398633929297375683405865271909421123495290080219157103717029817629575830755785396716524805509799586044201659091281709386529741030231058411314262774084312296603766321724740352715034380155408687901315909665402626493682988037707609230526129975425605824166645337311540331803508056662128995161155436855998290752661208264643746680074012934271679114010022691034059825815183659246508624016610707546474071207337743474089148079097499965963669044602850095388473548513944463390636226676827514320472054665427662189001422220338241561588767299868843698770619468051772179443531202145145081807246936068514275738304292249401796557033538881444407572687451802912732531747791908321842463774414119272777742928085147194375156967436565427072838860072390122606244334714735649658073366213967681459400263949703339318563602598309136994046177056414417460662591763701055980887010545198268323422919655283874637396402066833529979330833851378714927167350118491537427837928338030892468938530705048872864660913867002045604955908762818833041667202385396423157548980756299793868259876981661426655023062946146760368928411832301085513552921203615978336539292232067684185995118758603242943759215784456710788675850655756635095196087414092561069946376740734738180122949306278153673640303117557466180000337451432969223081632574030823291978388473611869607684702962670957293227985584679477329837413470820439320683393117378638434575244404555453217746959852143243109111185428751285939681163410468165990247948604373908853717281151473632909658708080594595874769112216613606778311304899054935497419104782694415641698795269271700402551174197874961287863169490519142362302304835759947591695289826027439613568171070192622767068008886859344621376069791705087066849778220436391259761522637078744671529014681619617160277329954822322678896686321988783911553470257608777379843299843973623590457058391490591421873539504618810164692307465069169001019299205510381976552609561156821605276568704995126925374097369423591423500532361822678114770185370845437475041161084693223262606590854938770981933324700816426193707813643594057565107154295198240318327183965252544196017435671069738077285698498563541843260533728542544667122349835822553610463707503309096184502972626188034700004600830303245711088806676885879376935971772221091057527402272537760405719202033759287926149313041353286956498021893780197441898080696374517996062653803653866654061636846391667146993684718043838101505042379242941384262686708423628796059304878267817067491658976861672782171169450251044836332726680245994972523944858492262990379829671066149243873162474399884149023994833812676490900104849800515084211403021465842665441937389846244913822899669676322212896939048888787890458910200974887367877655759734166836044815408362774248014091699815517308222474764275249981984315903099299872537737719401366946403840018848113197506949556863043242943432898675913450006290158126952725341358565049032989324560997628545968194527277655273438708325257973693299622353181451723842281554430686126250768647533356649514655165985946211901130723362108549629556257279240168008649766055174578938616663800939029720634727975997842476694917150713317288583896781039561389955512352173337715748471178505174145729659684080624981144731354775050873634247137813533934403144624349504443905106630468535185198785702851244409989595645364790886855196772044727677801794205164706056892913700179501065151478217342789224438535791993403232151061088396400057010568577214174401477870804479999010157671991275144834925548186247998111464642671214849844838491655646650577022680410679885614837247239565428581060230353573041248983524668258383990366717863764261852049131423497091538203979344869282196691898469943921339472626763295656196363521938159358191294016744930525722640437138768835318792343773451767664553679336028932220792375566110424648895000421695001500192778571140514169986368970790206500438422363465694231015567064381651878327594959459504397840045046725256462109006118329389539721645735130853933658162293923311638227534659248574592035410481859070548205508767013550952213598699629278258656885989270632207076158355409755975591418735910143134939124765212602208956476960162846910623374753831915642547899070794027296953410954770127278636319412249531411985249081053079690538571111311271251861233236781631686065887294075129682159777730706005862070978468422013377274446427785329990786971848811406998778753662801630568996534521501451446957237744531538213550436150180650320548613054181086977535453414773273227706671642453716757624940457262323242304719341801423006217957086117193926700257162883390336889799841773978579145466625574512029627092334332991200358162296934336613463813306431050694967219616065157327272799337765644850473978018011971087419549225173799368876431903168503247276766703633193322614547069734724639070252003834355287286909751058163357632110570233722827317589289856825461468037238025465509761446820000088800998142022856918676147077305820229432657063534003691191099732581645978470564977382882316262321596125751885689094620635423546808032504485913544114546142019995120078631866299741431198172104655354684032185734057495558040938308874605044030962262033832075387374688366936968469332699940244103973333046026601162284464754742818903604328029112778320465276869530418057093283414032764345709833670834952108572722290817260663247502308486054388204774412512398781515109472889084864921561271530508523025098670949110278238900171096674646475521043438946037336081356463539863508938832868385916464921561973108444568503622342706215382241842725848419341844688523265195235978073122865349134609904804078518820568902835358523115206041986651013252057857114591133342443528176400736330684737891341643951849007498083252750607068432406205870101639094389976254516870930839282150872146763030086368725997047383531142200732027913753934190539780618346700836184330205248657352454245923817378150796588823442509341728886240671714146522250386861867258400579361914607665538089279849012068261553398632707454881513954740668361934270235644816336081348851138085097386184305706356141354901894695124111759435249896466057609574716962488381918079291482732898245389149334029018067633796035423863760959191391404778000428654228061930204912953666712755218084684523933711590875888439829850133896011146650295336938920570992785221316288445906634569890846766152264624757730027692665312387581448400597336582487082612338772855669025048983021597742626504845917955726602266916853428036832127349189055477144295025093360066620340387836643557542542478450118397206723910947650603700963354613460723432612324716899652019641388032892254172852617109542652601787032272834430150202734196426054612682211413026498672476460922073066238776187149024115783464240128060393581882991079183723306587184404790472310767671320267342008429248771453729285293727954497970013404557021263559552299813569454314949682478359622829227975398753580884627759183599397448777396644798793760891473783759222085687613948438879140322477471951661036643934708575992374341187171513141273512559925367733032905204990114753625226968888540845024546278610047871958653439855606292787051482787653969077898563997016342099637062079966563837010110098766863592087500784066343146764416978027466117795180238807578291432186602867271393615621130350974886303941556643766336354845736364765751640071897214311590762778900100223925876723095202162769255952235391760603310987163218142856712828108669230739013566672758961701371426830444530731843286318920787788090570342384394634874007669772440308911201982497299930971144422910402521245767168141283698908478203108466616289900358024566492784882732522572283716876412282023680105732920162789071854572897984223311954900650343281846473114484714071270895812574621692554498998646068994923077394306555543415466235820508487406624746959373175574298220580287025104126429532055528108016288541412739362071531586128414869746322579673043736192868454469414686333064559942404815345394936534340434361449168011342353162507360237551205738161513059422620725037317320633978938461361242195605843963096020622832351631534767541796079789919542777926469602085410075423793923177820875079471302333169278437215382895306647386182312362783315278033088582837863126727426350775142033277346570359630105618462968906177956471058683415866184682085098319019749412801616563214439612568482095089744361183113613096216210390010852488128971615546300080640037987606490424972964142906442871152964608659542228609311614733164558208552658520618211403707937850710040547130560436147707275690726106969062483236336676756516910716762493847855064515684626708273745746926565119477404148733103154960215630839873317117423769258305734337516963799181802132446645777942941255510525586095457864216826942842087062230124003952995719273442103603821290494641522425667047051181424383325888493961486700380794644910397339026298456216328137586147686553813377685024308977445350533890687457683476655082826606554624417459840834930866024285898100624357019995934662136803736675579539602397455065033037650040438362273400227318557183466026025818173555341506650650864455100037223997577610547874015917712869706159690239662297158106817562868979653833837447464346957557520377516796709567234932302852641846011485492451099675129871393956955809011044637552037043595250303117883496484500853378708617007070649891121049066304477053750938866170373141951354931108196850078607507395387103647492565851614212385680008100345305138823091172685959737367855287932559619265250665586383574243663294647223349813061608334398787613454022167515658848930121467739664684885263070422465150645058710934814724011759754400815991066526617162565035731190990809604289368972846497329777232993262061502308708427584607522103761235738866881418838293390222662485733637455904649164052400704072878415474848649259398904835635442190808565215816061735775408411998378118398654045377989554979530496842037500358514366371802947739017330009538631410154234917820941242306181155457226698053445459019444423584330355710688077231329783959869818974136854549738591370043934662624716393462984905760365910413763699533818309220694928441674838348679759276928551463093203454494162007518701592492228241776304658506454343989001986765392886910879141912620494937383608249836589826892348942304917666798806587327689899354725783649246167326059430752026736588929132375206292943871781129174192625857802887435548276111180844400404277234196944257003621157776849558976028443519701470655989404059258977284831977770086102274701842088282318879424369091311407165609829266698145201598332583562942898502180837074989930334275095695446411574032982012924609579345611000567453440957756851007857042149147054195017376063663430733694753659942494755194426923246580724945508580741572941581176784466982193039002330477899448663680498487356051637363657692833643566809278612325306304298758862510788371741545976323489319355650988422344428893985854484080376208298392749013239679927433741112294062299537004477433352655537333554971346878592934474574582018609440399774749487373313064097154415618979731228403594761476011884075371536047746858766816977540136834092227433642398224480552257655925808421523204799686336493538504370246818986302103659999142901251404849309744678438280206296948919972350505264862348397702941714221616168919362331530234336027831209152365149172614532975393242377029214738500738688497506128959768470920763760933760658592170704879487695836891979013223439460709296497396419745842509352000998324328340500459590529300910898983307885190818021912387482153319732828319043654730890782383354387972235837225519549867436141687504665047296722724963794927150765506252050435472324515474170108860384295873690226900967467750892511745274659367172420237412235625237576061222835221959978517088114666835240637294602188613473662269045101026980079947569986032152356363514896560967977602329378183135015122716718034287170505916967503801628749797934751433700943069326795166562722557820322680319031330842189881384982796676389786343661498584534586096698694177886542104266835010464389687595241719618610870422302803827160252227498012544907930026203897768705710219823766973991873285341627913895678604888692247742551425474008962779142935889329776261446976474685316515570174206695241502663858172228062240719790672099164729222257024764849293055964948963794893808231920103497897378832060374142952236781210354450020708268436281114288310824242622942990319983004133729495470298091573643746331190681250103797599952348797663132049429221824334368555100102724776690319791017211491219672744068798872760896803214968121984702066794024305589019625539652612382207180695048458853147688572672456394315157742576029717887578575784783791569679492639003412862468609708052975953714309208205085051853327084694343364797113728399231230370474633193772655277256752791006587550884840945323865839774947319181594932466331054426461360423576923448463814845263422065432737597614397907373471621234991486833878138816294359099425410419800573721080008196425155237028470507350009707180275449312729813751479260078876008691384923420689695784259093003142558010223429107112856159467723748919578867074628073306022427752223482002299099453819035530544855767026524640935606440692727770774401268463113323077037578450397313154612132077998402489508181190176526624347050908758419165018858852763565585249939633495700253864935520018807702213889902166663329279040359428521979113953961258589491955475719851389255167686343076549352524644922486048489743868135378877933816129508989578961092914058191050597221964026329169465339460592997977247431040199716028052646264393227944548408095486529329028211251077738008996405674582295117163028339109651696915081392480201347446531182052832298917624551273999137488273100986688706091160691719247388032830259007529044517379952166315190248030894648983400038909017419778511470331896098712020634816992816816782859610510732282467209017344886284380885667960212084385002445456197591194672007563761819472470010504636360398388051467333916897741075673375207537657371620093136090707508003226895249234696642740418727996577736866384841794477423104239494334232156536416361357749914816043111956527108427242161454821111675671955622150195561081311451924752362235042928257146995410295605084645457086668544519321073627741320223967934952159501646832355318653430169823003508641050187744626000772942625612430484461178686810799939877828355012626072624796285290394554026708783886576985687678810122157079340020291785493453924314963410050641657674779135183324620398063697775050323083288987559378996587895916179794637628864418467799827037287713425400832092110588082519650314712340444849823337434201578984009259482033176621915811065824023412671891768184060217002762354705777137517971689445253279859133025880099157125402255775962286725822636921638705919478355703102393844072353820601675875100245265672432754141256813511942445036193894652205393773118957811561553875658156024329115291589076026690034243426374738131233308246875601035022491394088329610693600639413531001919263271001828142503950460707564015728827478043206191784342987163280467934938044136439741386947984797803561609986317263080392492768907059088604757239982230284001190377749823613623863350472298402608268899878975516572152196481543386995415655233574420804506735255165150633452992962697964016152724215446778306369443859428303626599905935037910833688476705017395784790429481037204687752152068304835590748514943445483819791767264260769760221447766843038366776066851717134940233822857206225478594052559604639769240797125508861364945988333695723183430894027468673555410953698484694880026285837412790005863707648759496873742411888218669851382754848107430419721525989804335056786749116528887072850131172187306965189388807083016230068223042398521838765031815811362654434882432463431610407191845813345421328687782841109911725497089670779626911153577984065498568741727427930532135607880276094379396397981477178870092601684956446790514992219113987401207816126927705720303893536877643391951112878204585960582436380223869564445772789579879849301661471583901637510010767336403902676887749734127430968188973914341842169506963947097018186876834491616001273790038058336616545839051841847914392753647753883065585388404291030214845482381836070578192111045711605505289740094645696056425314077303967684484271841798141949193675842671789105405755903012610534705981838245731616673647375992743830053260943013415598071520391737474178639605459022510811562317451039628706993296698137968671334749064700454512505228190538621330593101201194113240401510937580929717800656852173626793092842378083650098520758416973893296018279579274916538675038655152817755381672414656542268390377158260209018136205704662298680632992738843910941599764168896805794820309559705336128501932012845277593610950758602865235486409248990347455167183001728562824249141887959234095816246805471873623873936006614692225677311453615496162171451784239605589582091329341326777632318321962360942770087057740506116400400283151701847594000040078353320076950386339047161494115733010604534542244183891155556251426016372442933780205777374433911691206390076960636224184749127911265463662499699925688502898518390796877749294124442188531986200978620122741139617929687637878740936140145135331392543961079631715092498597868093625286411347841726993428932495693815703809352406918650990014553558622539023536246980042431929935540052563635359385675729148978811947518351346646142187282993177633604790591636951097658363153190211526062039678114005845862888088815126759041274207984674591250602490827918122235986228593165536280348586071912513372566112171155005398065370790314055251568268568876938497584652969243956868622843005729110937037093519875514140434753704427083993634348818279514049459344354059200338986457820139207378475788669965218425399521046904994061119672391269101088453382368840409286456767993382267477814754268456963205971800146549046944547927801100735049369248906826400082569586894314326458428367687815231146900021739629211923369642984323649121340147964918017223758597025788178983585050284038281983880451660347697221587365263039089802676337560420569122934570508926380329392329142249813770082738969341507098774257626367155826641745779496074375575855901591601214010185804011820965508360342127631785482005042077358377579387369093825284283788597703751496863540231590011326330076319651091259512193131825099102918203648181747841750890882027502746915425456844039090604470346845859348236354612310504224585858963285876806617466646124116716083780116853781969171774675330683713215778892186287372699032287995156058734260158771340687177593746929327375027244913759704113328962253526190456041201756804537213058229450787142069326661991778736749519714013918653781558461041375375396222394202573902363895854211233330119955709816604419667046323337422864448682427410878180092059727376889169441067763560441250761739172355684929246252507484685867881177962470611260975901524858914348374669880477781367970311411426703618790590853827098952936355351964807087320862391529123906914230176965240334330080895348835833082418513862666326188897179342284871381118772089043208773753374457697726876913653897898813123686821180395400768155220038415685394418982190481621045370986380772024038499567051033146674704475539094237870129476917876846534841997114975277206161727577259122957710648954696518925149141876964164470569807532125658269542251620650709511182969221953963218012349876171640486861003621085533511133198311650262997127862930715463606361330042985973652561093131815567165760182766793073702800054366663045883056284508958119185423234697225339451465351933510555604445697443528230620897821209999050100584944530217036719062101746855858782758643355921480350146262188082382129980909375441469531206589547040382037935447937745064474974874682614377850511372235909695198914470547679105431253043826050475699818422052211298697480754282692344934516098141586477331604167257500357320894600073647996287255064531337876629018284462224340860426141482300691961538665418030932330209374262773410739682607552077899785108472353742847202660275323771642357311179260611170213347759698654676266528929106506052022382138651994761646648778181263538982251102636739085618769066421472076123082887000197721289677063769344858720902756133329860698312567372269543379148751234207581420644132799648672504232474904494347151753481984327912948733703478590066981943353934458779280573829344523834711016563140370164249597249818402030017171778330832246062847101446735872463916955202576039301810807141548508550897857269088447516021615379272771717150230638101151348350069377516086804669861099111232484856748693304967026635118351042641202002703313130023975641998218973017982137191911216184718664506132978460940987193704603340196206394682526627359649943852286592470543385275342205366380600783211722534304175104608667460024827230119772615163092354212455063934295944412355925620740176097194612076030989140580671763413619367169832283959580060973445758896277017032138333328090804956308479618481408938720606662449823918605570274710821349449638602068772180223633058895560877122245371426965658668769608392279524248640120601309008292490456651834664481986423671207564544679538164223751978375689913741913803804687367324426466734866537136413095805051571609672593899245309391512109635681701462485964949556417183130956900171316104374631715003991025225754203981494879986480526719931320714327564107308573718419689573096657824945521148906323558754441313201705536208847505287212796119656135102829139127810500572327692801587919368697473871868065042566325972336692878311782127085965851054016190340881138524373539273793237864501062155085548741465909232917947258953208346476481149334894731769055675666287957251761184691860605328701386188422898850566746388185278636974572515298618541357855923865464568963519276319581640893840951503450399157008528904957249690296357737420374015870667467360517070498185049690637864803160424547915037172132701196450030488297273860053957266231115776592329617857864059919698227062477318927869746486626494716666840132215765129488786567526183786423382320182432103436750361273714619592319682061989582548422263589895838741836599294720493304921976031916187266883194168824098784141899892622742082522130091065176685949901457071590898387680018255735917669897761241140807251995915166168842929083405024550104120973239418261104630994009113551883194427854646591046062494398256676151145553805656262820254138543262092799988621741132498358032418886220125103803807257173986238428811023577948459484880729093127461926174634085612575214927354795203843375056691950628468391160318451631218502282822607506673198172469229086703345734996327968989660364942747552634863083650657005851075370427190703161316817892971833212058279172957298888503722453000204853051195717025160104864496867085215748349203422914424708313856130900324116046276333192991332910026574463514744358099292584377807811110957692567040270891170361362560349064763010652362596045837519710493822220984120791289090780490716072033691316216228123454403697159395378111196543230713548153987526687215022872707803707698081597256870044665695199847077237309446143332050251124014818195621835369794918537291283129229069156881443651054556597735360306265406473097536072354050634920957507245560368746896391096853850231032552305055922525141223248095080246358263034049385358313369696617752342888389362948490036472766122572698505546124293090493171503605394603299502956674694121994761673292978014724543299119991555586695123624289999700422050209250734772835367500136705795419471203266420097788738212851034055019893988539425332774986160552203600325480019315994050211397209460886515941958085630430822799255816705651233958878766466265872310308681242635950710087310153976063186894749487586282026501117153820095676831190200355070114262977220639002655701384782002779188941462000709188481976957986892637215121108778217249214362084963124974985218656133154781627274749347765469435658566478451456178763103680860191014912228641315291722687857138944417278044955701319647531858676255486952614087978389362395298501784951364932321218525941733236989366276799764625330813561051989840284505967158294589706048945664621129483340680675145479960597829357395953237648897025265072219672521430061112844551907781928301192480020756773225822627392655932342068060456117937575080753013388660211688493555520606810665963914125969476834876137006387660481012953953815753405956207700820871256756856094144652731894344965855344400009053611848339440491033434668183563763009818182474958891145273245337278384596223506685962103487542014058681602350202474281615422580252259808624087240802667606940196702010813305587637659549682080353074638411302571662091976808116296684511979159906463903606276627348133976961778085366928421300705671663971228013020150135025769364047973998247599749266816355727331219292597022415976147000704802575278252143595055132481022525444888827752214441253197359456019560399172528706264738210289715209596464945916246189657340533173831534011298382494841054578860618083026799020119913100222586975968564846356382551338893098645580651783753433562622177766783190732502348424572856598987290881421471530167180863765872386758427020247096760223068254256262287325770605761425353333097494366743741471826728710979592923717584857321515754116423820077400608837754000511489386312800905095664689868929108417251256750065829580978716553439424732312807150916119372525745535301153771484501322175658769253341616075247962052054038946606930222343110492326732828891296594529892469760315346820596629676470092918344839394302983010140918164923131101228959422560771565452115958480144725940660207483026859663477869792390810699044488417880730101339517000329668007363923709322762934599862782359324210968180608017018253879629862536346906776954339387518047383772917039722984689543072569607584576979487144715348965475026751366225665698185185416556523106246806633986397844520841356342394573119798493937458158664672446320243031233324021387962826158685354702013737582539556774429602098467621404108383952580171443771155018090759619661649292085012738264640881103317104660044762612619049347913790847692353314193641239111229206720880472169747346006051291687966521710914074448311711886509319587333588652412616179602520899014423647137568960695266158858225428348784345862857553278069429614678087342940125618240262618615377918774083031533881641856785011909054391424294670954254964945822777478245274271738776070912547395858476054805737727290717550760044202250635095983604798188683592660754028663726178940132240559720224356325778210857606409326299481792670647736180038033900484096825316114276122023495672186583600912154263215392772654691275562835725094991278732931307824731983214704180640227805794873020192138321524962896346823577316384976189573672708183918170985216172665698091212317648942840030550054644543910769562782489942609806873096953316568228239231608234395120134992328975421734385462236063312989822135078404053373620089546006557041667644401305062734821290994449247820031456452335476791956046392371965514942903599369520203645789610395620626127364986113523429436679502274856644692000291829361931970668113785852751784954687274270702669200375088061206335267071292946631030202599098011984264044179033599733990929827741438747019589262916475447683865673143174239375734013773567438653323332617353155776744783909073460652048745845300597244614224406553795931525912769416117737769827936022931987989019416196231053649403073350148046483006210584965411828951049636544598458660008082071317325297961537213216655782983963372067735161219750147575029456017177876841359953967189388081510319396239635985364663934442904595032586713761209341732682377397896505834201246371029663226101428918929565197207104015069888873512255893081427844026310589827109966935027395613885252222717184608453714149643009274140912071508679308226139624704088007414181733165920974465247375840695246426157020968935149572030319117018135868452085900576942162142960494556945323762917830047211318008189961457360630751491322889364323439494307204471392854704105225875949402834985606665677317297323626814870072391174602782853320837306756673381911340818817578739890711085653533493864157034578264117831245495675527647180145724429687529431789292978927873521038077317440842817189725441111709257428035160955518688838837247445194887405362858163718368098722047700638262766934156160264165374717684408589886783219561760249043022166529803138553600228961097046665453681352891774246174369378527329213307632055765898374264942756055684341689617160909040440950988364790572721602393039000401736023541913113521118407080668909658604470234358242222407045681532777132843028171301394429570818401326799459740014323879464547874436745191785711772997699489328727221100705869822442009062715822249735250780763495239720195125493209200013519126650081365135876937144062186055320182691213809412204551393844358353638946881910500133649896179098874702648836773805613356194266162401311419968895037794638459228756035562055661328521229964542742684810007041656983772448980384988382088912031759713290460224362522576646426193141399812725015294617457891773657127691768609864696107941176498139704521130029036496890676192898524171278129551451465479306291924619748563115410368859132795585431189441704750172094812602321779303853808662338011777357589679436293636060727789805665774182509712145979738696356155766238546853304649717741484068968205998965021910805638170282511074319131898386972229690131472581380176215617582662676552815191853667560862579072106431648488268116234639313667135867183814233802213488036145402509795815459327791638461720589630377498558475262350378150882532657085807482903638101975497887133797815695525888360569161642197137317398539841780340306491855110153415942555055183415218133779657881156788855693862099670644738580598048407499953032437827401926472155915876521085784169497295162927305206974778896972583301433323173030921504170320085553735621745392434438867607282919929784833806733931236873763857283033264023623806085771543712884737842170950761173848657716292677917643693024652015040599806797892882858699307806369810051964581119088256489172078475929646849424131647062006676611610649138738469181875296038806053865791157870208575335535771015048636925788639257670763322804362953280125257090717744906553258702760826146312496718997013743684608341750409145457211265614334335368134802887562652360042669412340545027577607808654444481861476214737217846309634008854438072855190098947657990376858524127509948541497144388343682592806560832319014814102844679597479358959835228733783898859237124837133698574936162734968888311056128587283800580224524119263787397839152863191336760698962738249326834969016949962638264497064848132816153438396930722022149053050876870963412567319959012684267240423962834671693926521474313564062278204572939260318244736736808293197007948734375484512108826422175396771930387968378629981349348705618772090851447488025839802230868897493033445392365274601025868814953570472780126734874311539584325391658961493113538417677612943353885879527602216720136159478555996022844643429939542752657938708641264926879121821867092813136831751306530672961814314946675945789910169389346297633437003619986166644757203575502127614823014108631038974151062664216195811239809214740175782220077617042973608298336126201113476576235082309836987367181507588778994115732759610008503538712816365042903647723262922051934441736185712505855543389820400233339720705549690592322533860401820242038497122766866347989816434607752703384871181138619393474223768524823717190442953493790528143746569237143048903074503803147121586229019394693805634061431444566612651983435032432105804069168063886500183985409860802144644431116404935659156798216701469999825795084514925374148014695683857082743063002826580303304960939394453961540810886657652427185295683689689369028781159749074964068749955510594917233523770583607841045438945882493622056503438328036671271773829037870507041580301369099873013017613586381506056793267643414407546534130964152431735938755473965706618176152913975849885609404708989057158599757636176378155499725918375790991920411195655206630053745060743640327099590976324422258492164997853654286985831131607530094900063030424548949898807126347951361994576595189433297917885712816731965709924745239063861961356685774680136205832131808935843650847023028473939626860196349053728450380205539943287360313777941817979262575028256467041484751406036016793797204158161299873918950496748062715584882985987089353483431379805147486591052839318329548541770210795052377134989698137425728909836424946070375836795102831152369031598969566574706220170508172479411704475036199538887320482514023207190061150934551953996940715615632958399654908005940242947259008602669613969542602796827236036587333337390857909088297907556798803190485318446772633857101459342339695962210824220736608997420321554999594328035374917484977765543500412272716293763583132356395182739573637232151012892559752924850901037119184731295217586453935014309746168879138093053060744083710261198206079229053957968981816341854283361954387934707075939863225271301737443737544026121830220830637154705227002301816527323520883196942048257665085503012823512341161714357866580883300077485595563493840569337947099562522834372572919892965829501709356063881272173875682304219710493442095409286445860364253245956027749144243511620587016929533044717049346872728838724316980315314432052070459314992218183557539125185330038765499690697338146192416713798320565022954808597593738649068927993019791166257643622846810574055737377716204416853358917179558233909654883314540886626172175648258114852152333848455478887086022734650729057990554664168614869427674161952867533640363327555070928013472461976581365952513987440884146692866371409889125527220199614182787818802807833068404464184670783631200233129051450269883912101983321883369307035236978387162067149738696993977985283443389012845966538943546510754975941077755599818011114262405772049873214423744395388413196838924943237319355668184135070041107343203579511507120777427234605234013391673874574889562241348890926185067752364685409245599427433405423110953234651133328885482124388423280842597184201181830801260699445933852238676438820911119560123048856811506890252267132837047782537764343474935017506796032365968838530314830081549900449007084995914258436632771631921695370835128030616245198278635018529435188234791341416368150729456725856281095678561852203099422587286747330495339680298409666905617639116208781022188269163523953228875716888833859864933526914323410179568538367129154409266583956537577004109403503400005844480570548479653680098273709288779574795445729344229076323335432713053532111204491323739882726152492039115920083809292276195255529075270934904566649514369405282048901656425559459908091775018611867714088980779609169158593694673525317921038218079452382598669401324737766050573911210197216084442419265712711770666644640972059071511950621870638915201556874584663037886361669315690091172665246915484376901623389382336223885522437996870848870989185451567802174001344109873097423316699344347413728246678457678725377339570280280636484817802640494053586187568903323002528832155698244158558129904694813091651819338162025452555556640560484066714027128805434329909449642528935951854848815460220328363325443588633943934437624223468832080040302438011035073818308807630478067861306640190892123160124719248219078533325814060368164480770921930297937571520262982945329263956595201841251261601745574337883723509295335446643476858147605962816417399843879712851473463982540110812456112633315369554406497441861008454226039466560178896876946300441190648729973764265420172825020353590513912387856478886558151194503744611064745518714907456392890371225264288138937942767454368210760278029623665951038269358433319536065027866104452810004816528779733132103010497965520054919535300674322260379653999026605604363979927103501237478647174810776831458122513176733010680064192423085102601727675591396198989194613838619487842529693353708379576162202346805349205298813663214626677217453579645197335137318457664964650114051836828299007595378225451127072231764517097451712795637616501356276084377200611515406071354042515070049913891054940682492496348774086720283479813738997647326834340506493070534236266156803203244086144210558144880566975734335754471209313785100381459888539135931739225023053125145302028109517268150451810943655536571698636674627052313095386614968622075583532449121871303774093658933511466928221088620961170596763549483750966866058384896464279494990327567828557072932769361706304620173880722194594366320207460122869865786829370635097000841006474256311208719252522704415691292729960319808597383233476624259889270868992773055310005552313220972341519128324348533049836528374448032019407755263826819896602489730592621955141735127812208981662235601472735243420870153349070875768301784868609090620979810996758534764082092995170316876078437790972862699494512958922219979525047406020552461181102759146337191379599590866936985720668499556729489178530705756964063246511712551897868895462418784518365940520789774698249032610051774638767908410417094555652030943342214968891422964160423849161036263249725497985163167000105721715743560334961638332495727606209789795589584824406634159329329865333094078759018142381776225059341720232065870454250815929229545269035022031667170462738521992522984274066175836308252639982207092641360982426957704246842625817286726736063514686099142029303591855251307731742361375758113370906889616457957654119324311948981692682795611255221002841557728731302394896178834153846406333457523840118413837758528106375968656366622714882696816717696291601280675186360197372836410698333361901067855199100138261046612378546352689511210472071179153054593812686027392328828515683237276039584876885792467663361217424749942574798680481008102222612288953812400659634378937079666699583221736101006402241466761647367084171145626212719369840843726866259490034892088228983701234622984497500128966706613914352497704574271089131019525431012476909322858492259563466410675398535765255642211672718043571351398292845925905557108075101285810369261858571569940276018072163778133831774412557470028455906878507624070569204678767080404766744648349125648395302077564453204548141974470691949007966435203149699706919172631565843506863683715419776258881416351633787880605881747824242874310057763050786894455984762961572772786183703737132318032892922976671951558152244790229770781782425685473904702778078629206147821316415746736077854023402945917918822837846068422140512267843302481898917245577269095411898873422390023476259733183890526525191279222210534421943087111733227445850216637230995014892352182699541195197044281257419183972520156426223559359861512192525301823091868923626916428001318778012240962939683841409322320377913862905538540536473960103499488848918267683174072596192938564226931293175682305576863130514732344427464185402122188179406532902457751184460068419247939664339140469357428831892647332840498646069489825045397538447852504104202781234762154939897134289739402479599164575485167583586838373309018148231626901809980457826665068964187217750208796512275665048403369392087402656212441235651987150600846837964204076752911964990621992415994483030851578344645179004846961688953679120990257976483500767864788040415175711671548127889702096367303511133009503440522386299398290043804080175080581814836187634459690940118572834868026114695223132893230999162267798888013530974931387605230685285210861961966971599071660485302522829148108272259918110285316661241206831830679596256268374739899835617159610438400011518673925197400858902358541312630723030159089698282379990055520653638571319357183986316450390872327920398815512100028314914957767971961591819558988940090667920089520679829980097094545878855211843106033354545827809442264334656230634714211272808839778059394632660039092401708102937759099549781239291806664303231963424016112021248280604631812331398571457442145458999716484947816433484468937197582716738041595400457087289406954047463570399865542222480906644461455350678727661145012393152633750612785344667365371934151745791939266438670702518377560913934665889944614305494008321671023668551339122875950267126390398238734038402347047854666050697245923204187185931580091739613543389491503738232205840651136534348297454645478665957625105672245629043514520455159592170383929758657672355583933295357300461178961075325321103624623542938143224808091420161667911495214968430737798837057073565172165587102585868717893947865474845783718142537965878714433407849569142723409627109345077810522406858863350843365946197213096849498924160784164081634047894418842327690906511283711736136819623921809831321731034059946645480217904768245660144658043017747830953594490316932658939745001818502153180265542811889246329907799245199175706569854395172075564040120231445299895166248562150355437186653459139273104133483378988510542337429402354491106921799923827301458060081090148959510784114015930805950432419599050181393449510073046798526410991500221212351607025383249474970458395900585154427769917627270415612307488703478388743564795843787788682262763249273477643312789075116160388153828649607370329108608946364580330276746483287101610143970729563960351735976570086389653560014372538884380829954399793813608140559157516145929560882845940508139695536088804670115076294129949355703539827833166738884067730662794894839629086412150943225139501028571926857126266994433841201084418267296306452434011867013704144244753884067950893157719152838051296090103555556298931082454197215168670864578979339309008970490767571744580093407208531104890137335064465839811630251525192993897181389428847661270720389592984020396926564753076936122740713805345862412020612967758210474181561270808977001857215795227223783979396315576380257625138098536414021466215107028686131575988602084378266603858400619084741782546771242592066669312917094838358359341523498104946297562791198215148164383533426329637626276641351330091814279466614097620935277191250928257530576106294501897888013072707391893191386339802080269379791798437607825478079121379306494813749614655153382250513433403250178247314139384803678070143348524971920140614210921196105052413953000819915959488627414981256504448516458466375275979301116717711953960791251543309832296097036541276628124773272134915259360856566667293388325026897174293789905073929091660544601305818228391666531589424706925531524911875661817875764165280423914636774763316396561533103927738174732479646401816396254075433757986667509405284441655773508596562893125268773638877773381471207392798819889483205214488327597323092025848897199532214653174256268122665253456532593052794209043857411170754476192751553942069472724973405453762288901599961088085102519820278717000975872116250172996564027837143936734959463067066711656719844842044501144039251993611976895017843518614662483365256151338217583756485572806762332112499141805582223977057368916912957047944849578350834370438117309469669377326028569033967844350577426868869786684575870701254498998317098066508081907441251102183949567738888174018367683649036553453008488222124918827214698057088422291035530089456701072451536971915347881806590173560227964613230566579495049821880739965241316629720346314652584258797984020904638362081696669078225433571726631640476017579286707126020061668196948745040792486060062349235374481721202576712037293181765449865458625452839014916284675361940764366865119706179234892481690757870395563564739172406771340344772658385435458513685632766672673069706848264232178339756596866380614090210819167248346545938884428000101765387926844411877749852001693898488259690563444943317212193050862158991367515044498357312536846670280947042683162739772154031790815821469610146052945851604284566501184682787940084217924748371937370523071927117622335734115548691910521179411189588498393611607898700013920228046852615198898177041661936425756728255436244520398759118786752499708993099087891037969843675632844015754202631833662090218614017647889563915051889995901984630781162049989780117817105581858026210969907994494869887877818940280076856538336778413814371889021716389371843264539044204225053369118521272988591220700598326697314894332392029689839483201331030462325589679702244241602181313728624342159137757466896783740467059383138159201835398491240872442362096823176485691759550039335751036305615258931692765106075984507021911362150211152214126138874299673941270577586260949215186352522390058478553566639471924738016663493453117613985556287191085077001664458896676604330959890133849297850017361574343722092020979812112413195073836725690810829543568450749806682702610668801782248543796960663196386646137736231233266267919952336202155897925848924942832945857267705094432471950879983576078112502765454651186162160965983481394961200640689192780650427327737515041868137386251550023879027922408426178478037441872398151806705753966905548770388568302258721709829886564276871246034985118255156998610094829726045994782202472609129199897131443140147281236351512046811451215908961359406043220303141027053437882396853617694870238518706428581384999863476060004192059980032595597571878954590814223338814822529384036877145458752270275752971801468838954326145696805876841294784868159605901436579863087599245032786003408938941299967444166379168678725678604180721875388124087879445292101069907395675935506381898133232385272345034719236848875688762237097952685125525070052976634852699976368362617561413539266394465045269491659547832700205078734681189055222069916509325604117721700716765996187699288377182970131973730822452339395539865211233482344956195535550531488766611470093606243299020854385245607635254861916605103281730579517120614833869564992059203243286103775397709637198453066862917142423509586199379359549047307081418604296683696830253229394887940022305355903751974970930355856796560387236941231103733924378401664031869375856283809400170102518707151657726437062775875564639824618424414904303136790236096991298245075173816074094624396921028704082230271940671291076504020636884760891664810018965153246635448000563822120101797075894089420667059618739218640049687343586083818278311945512925683829055929552763724049927885465488825241384057373249343840147723639660637296699352335609570169329933682356774144327873392742258232104342671595591946957099997477399003040504820049765037534549728287798753663210113625795088996629769023673011198377075192395891019116121374511649251489691992837697793720671374290621410616893694862007541401431648781220631696674683039320351452726893673245157697826193649470287234081157008912804435703445791504990682708152284240593568792002737577884082224992683514372614597368140889810975135312158917249131662928597828732229589059385812732467541557846874783027419292163938129507790232418844698152103213399174961331631428795161184733244607570973717440584762528302054276974608698787459515956440460819464670699008325782265213948250339049657364983416586432409947437333061999680953521469421566235305076728465120566269497143840453357787613268742819480538944149464750544797556395662605493466466102280952066499572926109567797156198889549745663178581504062875257082814243961077864843955530528687540795796024266952386388281832629004802012241523572349496194055932802249862369203289299802881827405542195400338719365429157717155250582777914722914992556993374917516398401658622699935925165130166315315551216120060575466502330257337969289106166065410427143131815925307683213388099400889426713436811202794777228915779827633165903688658603902376424677880742903966489026817286899684988920106883301496524199368300982259513412986610377426669879456684300449206773809525633802236958595737935472732765482512827707561418286291538216866480807272067348969185255668635549938528798742427890099247705099043413662443456002519415598172707701494864039240277165142386327893204967589154805684066527130160778899689190450672001198089152619487078993555082369341784921751793612708011618248754888313551665354114942390734616633475318787732351349585699453613117188335825530047436264852277752794805297550813579791168407574357049670512968260045292765886517879780096898398135107993229314892700426920739416705795536079175970793792655982930210957112684308776465547199259062010216379918984262684018893237494145223448083241579606507035079906227557060659934453212914841255100054330068314214725871508749138513845514881252687301635931803983103387512717735862563120375738884022286844913416441649884755360970069543630896775231535754573623959904908593902921357219978612065734784182667881092605965235955641773207426052461536829519478563414782105849769366802349573550954636198917604130929014380511771782062292672610406913695855523821764810766725517198322565648208864352991632220420859463008578542261249981937166607061428107191929642464806716892182147786221789417081022126426917654244301814225927000361370909254629300702303523247406886715002121716660161431934918789297008888164626717200739767896996074433612334122939557187017028250201357895759471951619114966073185972098186251196363817970124210250110175877156364682083320381747112276437382701199932419822501079706319737759575021351932542397407367069017893138755625191214726601130687915335693275108459162209794467666178105994993928963942329139124878241569161845186746265248033692119891790483448028253415505269919071701862268220976774882202074750960700841011562785093676151432684604475526501302606283748502004998248634818613303899718717918674183913917868534724962447952943428814736915674864368357674323810433604468928685994445923889756926103537680693622582714108213201077941331147809793921392561987207642065406351163523131606184326685844815728879696573703955961927892685409586278883804179893444678226902815031892974300577565356368592309333541230971365287746363779616722280967331575410340930010103701780106929699016859462961967062246163824853444381757404227285365891872276234214087319788350911492058803901995997475956607404013408914121610532013886300987970716307705994055800423421246558465484121610811533868091257962359269080090525721955244509313418410263898531358808055829760382678508221665261278092644588592317771563357819180732139824255928799951076072637646714957865525753034040115412462223524793717268579192789315144650730159694257612979093902425579643370773937851472351266619851763875220197829696940225306826338249286593173455985210061515836451423153422444482326514433524809325639931105814087235015448256710682237847097732100229566629429957228990673095389568293282664767459386458909731890430530044133387750037457517021370437842011602405892535571509865072003465822950515178351506441780577900381686213956320162462813373903612268377234988966179041807365486975768699686163102212399358406876130826312595494853247569282904039864972670525904630251011696658279103422538381125431029780758224319029183304003536604728118828421656192253221118778817798709754225779734085061721986802434884124177558566170147982424782580394188415344648389942830320695720203901482597479914736238468309188802487875776012914645229676358832752624333456954021851417761285600864457533724500283978348394649374760824664225911917146212082921426714653974041154026612056008417113545298935649112662894102485666026681030101528973231684877909592639066765974757211097258215374366787486288061576006637757453011922429681373788616152508792610935029069615352709456909526553934101713054183282709592368823973574384545462535597711463717867100879447012415531156671698331460258779655887262967717929356110258479623462304791253477024703070436926831010260595656018214575157699536347274691896792736409341399721696553388232840234070333671167608394899112632492784254124043895163155239511862615944175396170975899359861522313524137033945250034867594465429057270734171986754813137268045201275802223743452596731875052277542257245683170238173582618422610396886627287843800206353583659430704387021252433549119511024696355984872640916073067631038120828950568036542046280205458486446276004275496530291860120594403192818442425856112026038502403775180095293409759225909953610433603426703467021592416431569669717263999443701705358787004476254100216156312432272995570348573702830589979386123591589005572360046090033003739801490959202036972822724511146658173254891481988070767000501280431811241219262808801075217847387678480009322414761324074388302054857191561400871897897302584307134032355281482558932844420549576775283386188744951629663244688204471787020257892326103373148702658445941456235567011719410610758115458670906800340459164380032586700967427538081038416558523799116894021275093225400382733400128569462933105387163439589630347385895475705872629958807829374265357458698177902441634805848062226998918438597388661665919618397271236885230165172963184945797927922197584293623438991634710790702100355736261505401165147531190692383504832174298105072925545139064632604148697171031222332059015540505907548613712777674873974410343302270067726164790905599581438507744140606832616092736011816618421941381380232992342123117655409143994001299873965702575990656650490980101355646135513082213802107550929806628188499902366970219430364341095762851772135879740126514937081516559083467077785608322475694169002031639720048867334857039356082465470012141368972411358690280726945344983727618127493009663954108902719029354645029658246279453335401433263909681757708231448653001382341963747341345869557068536578820223557149233924001550282267843664035611819672293411349748035005534602120847134792825484057109138414725315300281289239685760537129616511447117954045065506798179703024976552849529571629720340797893354135463616261707820369251837958135208478818093223743651671356746318533426341022044652087810209146420157353492900083508900631666393016154248212230820757286647717975870322301795486528049818579003620516822601955009080809317344969003144214798341703612046362391570238215931201955772893339239782194509494187301516484358258750366716478634224093786050582626823415725628532951034942308241498451613849979447894629434500330678752648434153770986126152192493822869947121683554490308980163039289002971342334580972879279347300735576092016352560496512944621618518506226426410188867140686423755112467574152161161100148192052156274656430097443958065551093661025895584956488413583707585643790934686450210162555433774366169386963733975651577377591673689774969815430006709312089251647349649378089431673079267859989579625134043149810842382651032655963072644579088332432062455003787565241258716680690797273517032686080535201841193574088218620869701018230034622040746196673539215654635898812274395114740554703922479465973762394480269920452850932233718898145195673915607160553668420951003297121543214150691276009337916965983354424357653420818673438913516944388374094065844113173123383380534143147278467536194449599145150664699721131402018306327393729405499580237885554421734221853101228868612870080456966809098951771022150385247663946894799716004589288219507242220008838604189131382782394701807858234935888961414152655883716059575066637225428926230358581508082834078195144836656393406483414417175399834784861466839694790606302537594827778800317218792280993331208874192409725039008304398929774527923936596647526804620649433015947194839401078574951947189320234176522885218564982219972529876330692498315554968619920425096638917641627533760803739588350356746876443046387549167995537893622257512178799407451145874285258383901426749562480803821361123765449387232773570444635291920884590825194498804154806904986911397944788127973670421449221329997680554676949551434750474633334308031696620643685377852254273947498275794118411716431486856525813992854639377244204825851540059176346255254499735345433508832012095878640613521912053142032787680029493868211776674132503740667111271024061439606136792771209289160162474858562471179515445751579192482449967034929284926008947871042397005443936213054349673841420317570716301405365702341011752302972004579194295967335536231215111994496917068010943184665242256958623053334777995979563258844671414158995730211370160746090648228099347110412741048216591549691924198835307413230816196936362667416068416932280757755852681798494764272559905841322475827371651287597713151517218706367023798027821472967949939717830417815994888695388757262521356675062039500938293571038866828002710125079624607769141040918371757665338396728161799126797374584890506315074370659047899926276625826088540430051666291954932684206734175607546011794391948575102579970647322790073268754196155868318499140407720869695336406795594432227544092533259924676597649458408462726060689441432648902048594787045247331023501243946910434908042365734139976937786183562349154286059742293890579381921617044356208315472475549742418835528821653028878366306468406398533719925388585077437035935014125538238974719162990355877666747232534418810105352137770138649396967033953036647251542354323119480344962621971511048706862126767646818703279967212738740166834051231104589558515769696384244873269537013480025266714683713641971958387072159935028196338741244429752362711800419229709516064058731766250850632351220271792406711944221289938837862472165655586806372356934923132808386380801529827065016057148297356936852010887160841679778094628441637124622274084626108014020364945293423848851623224240642166275374453375897062224454720430897574937967669765270220584114555819843850657481353286631120323882465136499952012049823238159781553408129315383987213117711978031610497749673169151450542769435079480049128105256003115399135339286059960083588799149713591639250901744675574542906615184231634376126007150785606599324809744223286420512831082473465706542969504793844164194805235853095202361956445157465824716746841749159318766647274888447093957206134336455779450857602970335549567505416046185103021990501854409445688564350541398688515719769816654207804955598478788939643378004495942722253638442052318911505390898275904248979679505726956683007889796290490857061752498645251228065563628857848705085298391571389994438802540806490808294571930912761898888851587207024551909315660113551702953120528327903459232565473879566200155873670828811310710635260026146319061410696284388765578858583883150883382217771400012392457903828523960658293902619521196223640556344168975052263917376131535213044610648159427531850012639851159851206885390151375242157135784522429103912326956264110797562683571373030694536229363486700569918892293867724807790545270310562057806936627222550579625648329765830703487675600847563607974162512075722462950277309692690687699658645814745685253885443441765980053014713020297347579184310620424082797765589356628134880255119126848902448742188493613745551317511504107079306911914239446479954989298964356300278472419302060638390310435290806846825006692052361425067275379659856969959371950265626885909455094286327743210325951119113279114362541008369132704001449597764340523171188546540582866405953214513401877345911740297826783335366250841767802719667178001456160338567193841754204540950337608315008591488973722791359225655816812720527392858455049520836088525313083494981531636074944653975021476086006393454681010996961088181606600690474407274579207408148821557796915588880979546402979418951644536357271289719982011924525233596366796707834651322046006834892550932598733929480522208025950710949874176827541844066919054460182548687961877571885533524315882461650542040172115837620316635462190889037582906876787421270804088546021804631419593719972300829046403424638061580020419065438521058771355522198371706320539786526759013848668670427535471032529324086903919721218808180577021411003660549960417281155746388648089021749488480046741843519416162513023109306357484377138394289053791398216228297742388102432909826263864422681744511343281509300352709473974830789165826383880996285826347890152016365429887393872976051968061482813913151664880511983024792296221038080479882018815961595622371247558766139017295370642865132194780562631983437002317350355434388087153965081925088187241243218953587876233063911554101272076566969855337986307603615342719616101556934183007256778819398247719327131352742409148004946851255045655743738736105312548151861482647920936260747331014264417199356944491546726551923865797493532949153754776966386062042764127317583375439487826991076888986726394968471782936052230583197297180029149478780174532729504619110966507500010745923166305318587292781765319840335771678794870697822898804042279959813559266918716177993886114665240386134194074038206991460900161972557701388243283540370190840980455654742173273871424599824998129240016881793953023873530667685936524396874372752750181632421398866442418041207027591780117622333603317470396565848706898903074809376294320267047109086792581049496206482768086494193712291792542961993873508637410219996595031629138302856006399001299778020787613469066702875745629322162667637444795822272531854848871886603391164084173543875494560373881623418458644906731072970229659898018749448172455084765594896452852331586466691855595736644448867304897294620699730664496110065948572052395992010749834980644779135549436836417168453127520284743617031084911726846760522817012201131263652660715296333889440620349830912072755713255284908422586024999770853768066813138485951734977694416846408232871451743585868068283566066718872694521544318916471321931632765678907931694296368863956277343999419898305274775621309545584335225966008329481357256632845754647558347465154325743219779163823700810949155886187717273347814832424127095018868714893338749019352141324883035974621778541047291421952805094865801312933985460636205952363373716073315425087197387829912440367091553026538942379129355104918221379108661576609993516524634758758805779403625415030177720999674724177420568360176069248744639595481961287906127620082740559440542388743782477797370337424393759963139204162572355036184837632945202442184187572926017554860620911838868268599371693047372881685205277315506538915158224397558517259072749268647953301606034474880554084543700247469348666735445385055578460180502385168294561603674192836175832939817289454713862249640745130802297974201613272753160383747922765818225954706675672273276443466309760280199253056109723921580899538991131203569082054239860132744643456747904372001143482054333406013988536369259510993917559577589707185746125828913959677240244101516240016941222897260697017195882906219840578656870318084723795807710280743511688807003584506574085941568407222106201880767310862628799933706145262541967572813200588742986624367803137770310340806305612143106221089342246658303336451996760028863328493008048487018390568821429165958928468923310993992509099204307685665401545170708854541510421981761995505770202857432266283834370715379034907650418761150079358420039158522260183461398933277342914739397927761173636651996761514492653717398526773569431909004237134300244532802671450662966115979053688951858082318979760282838136537531285165316102222873169722986402865098891099077570980871624707419381822983096825103943991186016037385792281770450165080276656244621828474120800735739804729655950142578075768411621088927365619378542476811984118197698078458173185963500212267006904938324157741689688592184029049381380398260629332844147671144040577829940623302037267691600755038011223139897222042897440677056789864548091305168397156701838605254607681486093712038500572219871918589984981475847061017433815612616991351827400534447774303042076735234030454711347731942504717923391940618632375249453156960221237827612876555631155178531937788854812944851453037570891013012796423470114028203802320948942808188833889140727681233535319041031591383863443661202891965950319825436285067132067649345281644990540721574942032015651421353393096149552880202006294502938608270585334587568000707070224549877501538930776381205865575234026257535181589998821171714591697696722492063078115374606076956090582010500649647601134435675820765449279752373196596235481832223663359196190563567787057630860099502468841789760451803589748627657678125020199438794405410174107213561641594975069038170721877881135751908341345863084101091606964289859050500711899516608108191518522381152936224103598052500647282619820371219585377209044679023063827243182635903647063470171829890394940220969251496728628181653160790767995160512648736680553021449049576519664795243143308437205198899052864468536976136055039334582700129199223744338263205202162442022165350684853075722093749749049304254207725411315884691896751700489157230908570413322092549822625060445717303444204684096483217206396627904887090803587662906265779039165681325274005709818802710449110320275832628859912956979882195712785297864091497965834584661591631419930693356865746346868932270921299645542466290236575728872819659256556495136559930117418729406991886965454844841834894750810555990164917336283899164058202159349728185423433980402566150654587196546787234943729930723749421627200480841308877844876524602620774037195055900241952680465693410279789032258937971977339195804141196261095973939089808934609498081329790834476801798714910665214803908772266709476973589604322828531526616417712905539748092343645966010299163943344070203550547758094967585820289831747594528627285807680795860580436236665310207133974498729690290265180300810293349012327268566236476942503285868871660521173279950164895023510236686895121068422374589574016197295046153194502018470021240352878134796399164953959278821774462065827273020702428681685110813792794782308649826126082143922340172979912636501902699878796947479588709412918235029296217181386208266292521513938598503760380718909486834618041006384527007370283524914730688969395324228304462134692654655524101474268577700777426331628200948320529195167126413328121701379196584211402283975860692236794265382227078122529174428256800711512197996278479839744340293003019899931017077370054794265466755389549768267738060026040577545514597095178386986003087504028947502713287118701522598024377739218766630235489053675977782299260517398340491445059384123393517394834075949673315366388907404028421736605903872298684676240695325019653913116824155029085876120384022289188346446005825856751643511210963919403914435442239644839939790782708098759675943987153329114352133117096801908776723030622029191724883646993625006817394967628176281600783703947135201747549498821635807185427914298442933535638525979502642582406036686589242931003414365077214466859423912091497124193772245310372718571744989491361280690811047209249503591498173878834184421634676900861332428101863965983928828684274416256459684790283042230807749508583145660632583544657744825680931579424749350463925082194473437523520189522197284643306103148748178858679848542982342451096937879239110054660802421184983323526180614569434548583618594006967566026724632288015730700240417753708726880574720804047648559930165510129896491918685690500159647771938749914284802175982716440830873936929400743708955808192911825662394723639167371242814662592417039978682954382210023925004107992363150701186886073342029932939882102284156044933204836688599689033761591321064737474557884847660702260768231058434025814586784256537454313653034637909077337890668611701195810997825423741213485048348258129190164830899060075749894946050121096285471041844533325202143508488659768965987070817188357132111263969023090690567467674090105309624771239786391890889395198189700274628834895748510759891155643643024159271862425321903093729522748857167537634793812438550701299862428516721796315104647881875713540223055740288905733109173580384053772934792593385649023251811330019221245379520230974000425914325959653203973894355589658904089171059898766556069525861974705902671520107462652896553765829693274370437066742974377021741144071740311217952881864004632548753907195455771420201025573806114933735362039768072911264564931999280032568130721132501387060094516122477680566678521205008486908838514904021035244168392810659049131470356837876871270501604084961564453937228502992636629364264155365593261348487052854029594222040375870350793434660985120344944272160290432675316240781836594963859766063705846650687446762977177908485382791812993865949196645118527386483301344619236789298895650274751196996368066863386021034246470146632672374572069994468762285224495194686781173570869956736630569736830488156294086436644066906021486173339500269114986246777934415431296135345770139882356002692138882576767708608812118968601932041953713196456191454704288581455354042929297083869261345005477396661512462705171134931601026946125728900034700696895892608587923726738311197868586676433002380315657329328966218179853174655302920559624492955627405777292813536167379429340873477989605323379767159216319350808620453243693305558113756366227992796894000511743176024057869732166942571556873938706288049745391563193080163824818287477549192801429770484598826358525396304286643306564803908529822452730985275924172322378224544455665162647458429199684667965992916875063193616395222843526380245230389097825509502798317867550244750596567154258454036620252892834417306740041529704228376376174102957135670809452914804259428333767281899659954189405452672820838433737714298815532847963823228537692417353327788823516035480465381129087472335990201129998112272364140885536229928604746747193129529641510205256094795429590791652769530646290817550388582234243427405608452464041026085982929472813881898234113881121760678655964089610680393911717809614907086339819945466807434594534441718440572087982218914210968303315534950187196498218945315052218207217941724953256389516832907123014660818284400864127545201726689940300266397736827207006894604333006741852875062277270346465857411176144296972762611398221747354031022509576491594930091476759264701225785572618429764953889909165501122073931473315419085603201141967672350205839288441678431420818084063732202157220670194133740502480604861860459641287828041590242204575921969600365432324597375873550179621750687741322538558731667388967043100412794287727286920654694343967959303522596691079261872501513481402711616521637534981229441083431294557715214923349100121053603507857023957301283873334263703955029295165644227877906748138127863566342789709206254258308649024264755673089635173464461036215893338653976784275781869543466208505713381105212861510471950318166372294995324595124825117772712524795868373385581292538581426396403447550884873048335403953218384971777001551797336965458330657259208721108073009760201633213049425107185169755625445411971394594430860331261866242732351949177467612917515106400593556847161466618494014648763010146958956862780381770168649954190793778938367780130278935199771728504386591592824475656260007265960012683032541101953839632116566426380951011638692363573888302963067267595089418640051392234371161659351850817828715314194104391466268936190056697273112881008298819306154161113176527170116322450298394594339522162494481573549454589523521872091994113712211933761233968270431953883602175433678187106903415193694821408448615676751577927708780448770963976201712148870762314739849075462857714451009025446327213918992000535995578190441322330287585027769688692328826233428642741352791398020313359521178580600852762878118814169691236367396183659709293008383730318463641065950900176345214857297338051829335347914645342313522183488026980434885238689873561032076376628629920642407238388820583491056389934276220367255547647575361427105793804218331067273550047085396369128281276351794318402711833303566113811074467629503071080422074070703858638614329477128050636689503805271364519138592253485369976476524422118609926607985512531928020914613155553385766828487785504588775408628585071998198160513031598449098610365914884550345215443359788887228698631700340965416707870429529743827797490619685501144873475761432236337140762121263691420473380392479850026354620715218432660182005930507605728552540984430347933897148071853877670853856760691430391613458149843123264034997645771862379459093376583072755462513891916545291878802491523705224072397475791663357013383321838703858286833078984799156149955593793128193178320379513213734514338532321876580386676014016295527343215533711116271325057556900659959259888996000517613459898705699832528141792465089781743549963357977934477885624060271590320271329370672874595690579024494768808111302590979170956401252698534793391611331246755504888708085109386993369227464464602402469853797922717661560199123056994333465505322898399474538069513630261234647833558642847988728121370277707537619497986611539723966793638192526252205491118737632764706624499217358440138155209953661275901595156959047779662833095490019914488910333061115089794159216059453423462316080847067147992562656194560543395355331791607294541258077346978121665313824801374997748419613405715543541173949948332284690489434911991719011358411586964982105172992976223643527284141433215799698153281853356525750680320424467065979875601780036824643245121012495323431348779133967859430531819483778746463576266946339826322793809852902513567260329067307850743987244760428365019301089535028014570119791383172627623328071414594111707507990784005178492218016255784346864245722151662557529449084237427694909702210405171328320678740834513401657409379002946445728060378908964048943555500313670228106146902776796451084386097955602184679119735501031610237727879920862494440457496081158663392627450422672452804239964044359850779806155418230064375574710332337293695180678457997753308650904619059577275702976983842740567849185166113285729552447894410237716706017837580098752847198914880113051267401138419259389218968790794474696289096937494438043210222741614017140041541284450216419876946024687387635542086033161469216618716008874299528167095024825725017637661611622642065916459890749717934619199164019926274262095759205969719052469549382385340631287874013324211440711220082688116642741975396922985407127039409022976911544985623759451886661127249393910827160152789220733293657650452577285574053318589426580951988012344930365416068181784891275230793577557428990970036640137170535536226173791637077624903996825529787189542601652870616672062065971860719787309601413561261101206095162348598165819300369035375607490807541550521773118545011674299218173510366335532535679532317986583392464280683963788498589131569569506512490007352149759794411104285792819056741129772981219374799353978874084406261481534880904126950664149310430786177901219413696748190153200991982281242131828933174666495269155414745082207546244386718073661032034354245568449110546965132886548176530410047721674826267665431361138211680587095419841781548384712250025468716356723226132829478395207173777786259475172149828524654854604770174726731195909751761555687541353659826655522371172073518001981698730711940022406989973038149223437039123952008972420094758585400237220324487507685251157596306427897473231631376554729435899986206979183995149793020878765546093896965982421539364800381476394542293498796433824259501332897833518642137985415350305355646322044877746019945524115595464200732377351096201000952014388924473550248365424815653543745229850996883508907485172062776990142453085903114860023824160166977937063951023787042204782003036407812425484163866002785037749812069939416315774797340583675712045868491156554128713597745813256920628146600643715680735276676738623093786907887335630977078731241160599500149062295147080051926263133021585531833481794036233883773544431321916040579530825288393811991037146321803576091645028101079406370792128752805072393019074188735520002882588013627172912678778046082735280779966933705675744512440880348042440410144560676340914467248997036578024435542939946009169733524580737335950675626417622530135866884013397341961332005968935459770948823445393185682961607977071172231674516117621128554665437218694461580245849607850053116909417967627650034681675139368193210411626724210504210416000859318999027976132206109970650550387187782786290776070427943523040725159486039749284576393895265372837543504420866673810763887803033721758076169920071440790264111414633394918970168408787661684562411762813281310516041532706031476950177970780402263291033577823192797467971665404298509386498060104860214555332955233688750632341407480784893202023672783329066132045876768846181972187643589175284872729185759881683104596495673207431317587437681912893228326234714991139272597680076636702298837870318450591154157942060969971739147363788118380800144018844945039613130851270076775824290655569515202212869831431607492775961485514046561666660077399456593840257183347205674408244692378176950266314617245231888495417375960079335723910213165145989831758878820638890934114423985128485809064687493985704763731100529750048181958110450673573819874368017441142487125143231228019740094949929518532699040206698131926956274068544911365584830364963763494556263724104250521262463919559461870173286204662274636235283410675944885219606160733369903759289594754159924703625893775346301397120960357818405319548160400243730972072800804910190103199249424002311235227127126203578525466273332547816394199704600456202078795856256135730951243598856953597529725774293946448192080663090816211761243851705434874184267678891576655996023409973502421849099356893102099851707748663913408773731323941886319623538593330486406108591127404500584672183783480845450800623786930876318684149118732559233913605049260114826087608054903619967693226047590216678624609148332516064687640113572934608156024059433035066334813728733575182112063785151056614575603824564374644130067616790372223184239857306676448874679088515113839642730758177287554892566870583441109590325175236760987018788732853223589970050192902107432471228828669804903979038491805107553245520658183442319099025266660918909701063376383382099789305511056649921316792389744329887456701089939063191151962917905796700289878551498521234962293351774540142847225148083686629781586435788973954406352001707939551714420933251686154758699863950745280064400520440403894142151533372463484520490459544069583869784981565217651124528944055847303863692308459111357438390434943043659752259526374919508076354130899876132364241653210128506464465357695094878768164768015783451600640475451670615749436998387960481512464944398335238224149899077722528405414750578089829243718182884928752130254077232274300766350182011479599687733909444142201166570802157223333013628913684619782040851668839156472183648848658674122975893971835116888750790119820811976910422533796444227927351059110892663745096561114355223754363912986934785403948036875624469738309297770565930705266294574731520618008969710728303657402879628467925952004275247598812353674340725006294655444752456194702767641168237980336454691253101770890241981572344761537085945188762947768709007696291352071333693554211603901506644880005683425125123531721191857638296196562301632127586467266816999860486346829315069606254997230358110021292978827396499673443225772909477858093429590414730348263363617684899179699982144105583865610713750769255794763550506388874340236871199963488241770813690760601874069131902621266741966071057047278364013368397102059289107110893958195509066022717601892259752409624822762148955754080648083923695865942321956196313277568231627668430350170994639800196767788240721461272231247894905780345542415326431969429452254164621821479005345990373326381017767985708170918114888404115988550945666806780013432822485934070988815066768969386869111849970467936713978511761028432619976782579290110579258006737698325716105917815837556061666493588813443805421805497374126312566655023606168639906797209276961769348683816734035423163530114072288956424521619029977275268467979822402661904606160006381393733589887953239648852315752816269986403386686819952015339882326176157831577008040353950864390058406516944996358419783376846867360302121128608498197161654199632996929124681257495184361494713498144207838532042370191646352683661708674785704615170449294397815035771919640712494242896677389818588359476094566329923189734640928487446928922587718093173264341331701045201220589097210089874895557737849942318320534108787122589266465600023393239637209240165344745145479760475284878700663690322760056774119313603502348594380037923964354510804275414093651881517912700579347070351664118190614555700215236795989064567532218919335790684378864862759421674744089560923014177037257608656627187723663611785389644368854144236347496818763878454484590295445042698096972562148434793877273442319577393338690350083059614768821759096627704055020355384214766239677671818001584681994175763568492618788471361442038650635945868416939240018648265704534712597908286282437210359117581822588325844288002102839215727351657679141385676829166740100419602007114198749248855354754197789041353518827097872291652892148876643761570784891114490243365076932139821717493377007360929029979420682458803452478216597740999583211622387820727589158963163883107848343307928293030573488041567235948594609996113054688316045775327546541682421919699786677780663899493735848030749575665162917235862742793510229601241724825626111500108886679767189478211064799879906874439391368997363959120947730376328655586192681939645076591612193772123456157618683330049140432679751825539517235728154733571074716942783086814599093624697887636266245753944896086547842385696676322117037977747034503420182090506471877006635110253744433694305717248307888707887145930049473468985799030371008151965425703983920496014263869612522120858668045576849124805264611483187624570480304573831177761131316716742830292437003326348764849834661085013840242181249533610180971560984345198149510491431343500550807588264711074261423955945344921578015938619901535150872281548751795490709659970737668378735934407004220015563994779836627567709580053982490551128717442495449763892229955033589109000810183387389193815044952957418170324991402696660155593556410106568508458715603196696387248228251271514908543111637761062516842471148782820535862700186179788821618866925758897870774668669158106910141692023743423584759460397003444342364635855868726374124167032280090193021750726068697166897370100269859645667784545264808631057590634409931977964876524028692245185320554489297050714848953949095942129807517863355486626606567467156918078492912999959091739573019996618560957763576419245161379118563650472289793113829732171547373604061308181240109349875024060798501074250107838213447908635828307993003552455983849524278323986130846382453236237081924784016261697289204279805594950050482630873229523420705448734518073312038811131128098717145344253257842168911470278353728129339578658219717520792236104720463801525108034309829895705978946117670590193033694202637189547868651023114876466334304506469662412373364369411352903673472803818230087382383685369481348094043326170928099040385709146854829032871871706835922992622961951438828010312217606857868669310536687958039757326343883424313963331073302165613843360883107652966673844646800513926671640055611533434897994119326572058375764209856000709187825020665611703016982655741067881342808944878670089120119013605733710495632469929037919504720182295546004831891826365981477978788023464789460241407100747442911086441980880084327254288749338598112730532652464047757921393646674793057651336309205789431807885254708221047743751925522598458750954934884742079743984613461067134022867139241345629433846756997636105016877034436672188980125103722517926514411164702698027405287662501483878236992475656970828020873389808877728077791278000916534734797110339504133413596573229928434330714778050737680851209725965642242590674909923001217839141220334929860836128958958078109925662515419497490980117880449082358128378995110588545073741810621584302014946910655452618300544554354035856790642815030878390946969603080981515108256279563154902101418549690725003732243035181379442891134982166350845927213508654072993782564836405245520829419667211327009267184453633349773898775691600194394727411375616820126958277333796913359505159528352391609474028048572997104885564418957190112465945109440468869730101890826004301861258191100604836263621381350444504107846771033193517496874114060172365737152751563982137802201740399312859253210022229525257045286119875771779172209729186878775091279981889116782209172024792126534308459548338623405777405309822499293773829815907688040970612610970462305462403041180678688586209581327830362422780244930849080888877894613940292166407914825655625888799549994405156726872990476566069219925436201528846933090540171115567983163565987347979057809851817413911607980627679553239361705414337509562891040920157843303866668635533476028135356140084344769980606442370747248330636504521375235065239424493849763801823539370741165588439042457330571167962719224754539865595667554744331410748919228752131675015144628843954707461795097542124255750203461571178623593409914848902258446355045969458205613317491955066684264763882202585788908440586123178957626452177658199099848347774364153180989692831594337933263714925009723126030101370538740662591895455903727819834850906130669959968857499044811504319719003465638949891806385999150316931813489237923488737777280090778830649150324360384060170940765862829953729663245240414473261158555383811433404441186828024507061357732431419821963887342851394097485910825857984373889132461387099117596985032045277217413053415749895744359455613792429364063672820023244964807692963422980239593214372102305847348877030942785301586661063101338583759419080375281486622453031659457976774137319667557765555877244190788887339088455279979605007517535745590572600681778472767583451850369162502455368929024013187195408426167952709607368517327701393968568732271364230107829740346891992854019662498693748676103198109662242913267273613504110801695399607872739015921925941840576383052286568498655562064640551142481848402651242279936086974500705468524274389334465050388911801013531023900762878683884420718104552289622185585470382321991195387223071519492113073521217692187684238970744349255221278031508547404029200891681683961900041870476713637754087158873123109985108866291097974127475443062621778164383190983082283753215263180740540140224421651139324777225092238384856734329396622891639016690981762600944344085224036205978856125072019642465691963301090138073974516550051801490905203800503433240557048929854022301674169121542831636047474968995820209799775948053552598315984272460401430464274154555169303757261216158396294204527715905168659477192317000564913999940791924013513991701844517638814143245038617996568555654062481996924291122992992740041492135625154153807067872888303253148220273508296083596060840082774729438060200564056292759826139045059489347509925933830538894023244175870841938226043491510029797396249024291985918677903735510376577600024601668176244001031687923133146568002381553216795350277102155079690793097661377961897069791706429272841134417774039141029254184902735101453306771422012138187257331055836358998174931412509157482000768997509894823058696576744629798803117309692336294080465134637062614406078341029167560466180580966269565833220972500964251402890211585418865158607351257223877221003039435090684361702985888880475341048972133243435519209827401845224819805433686066955077050519160799097490398726982380010697011621929200677861760172862709169953462276358853367744777293601298225607953107636904359145649685662590278973949514676297765896199173482803140175090728284873877875769588258036694686349316398740883569018984673127893763455269799080590955037593411462803086918939778548418265705593150404400726173835005324724848615605006644416112310968149119167770774955690997333189110463398455172684658230009038925779855384335512907268701866555931248448103218919289980977610159098277535066234064836103848578579119792566247705908968418620723531995116199621711716864417270961297640210519811681332630372704662155709424389976844511001987372982070163642935937204359357220768897965942360635399863502803150888987389841849726182787397665813438454865537741423739939172598329848492115369763902592959592653845803708369330801351469271448284598426211319685338514938390400189703254790873059408577493593168235439697581748875587570109546117949959595037722719635447466471014696807669663910868235061219172144664728849199648838532895777208828237106659805685970427718917480747751122767848346774509997841070556607951251674664333605250191272920915393858613748445565893483831232578077233340569196557963604555253081323436144938242201689967342439475765422658980200998014473041155391252893278695063943316215402666316762359759197565695409296407257766928917063605570954601605837580780522934422550529475368770165081674510862299248477385250486455512035902009543840626520012631579915212506262379460337611308727037680510982186951473482864198134547103383682639208443741326203560940501614237909320151373690057427972449466594129484522586226361082389966324298993559709993172236768743673620850407478952899724165144172980767665540081868880181939340956589423504482730880895711557242827286945350065897336269422877700435209307443197665184459344046773336007567643878634411290880523650734191458131639347352133252475373691961469505083572489660662072003789713484025284123791722439884993052679143309480143178529039559615091563259610987616325179183192738331202238070956617083785245595690912947139307049179234831604366736009267443705191469400213306846339077566824758496717857921304256156936742330550888650899332566945693262224258024854847987691292256413114510099132912070055798079898181454125923272192016617256005781322369817098247746655035549677802253820502385626032146654421281732382256328201244095578641007283619987508986765907537762849822630610893734373370289221345317340820043967405551575280964053200888317534684465677228277060484825359836161336019475151299514542930971272033725981316923017721206903327765011396076039068918619164305364579392831964808943689882930973538047574611645581913940431580486733844941906680542297283733635720666550835347331687802737435605366609080065230567736190706616055836391798200945563980379444424552836699691031789582304819170903237137460609919215291390488469411761113491336204825564110110394510498152822727773394117384991389311548427825457311925889090749892481371901493867301890017596285142404575591354981559225584458028053217442709478004908283180168303578585198717184134427487189054901773181206278530381835042948472407660253090659878240035322757816356173376116725146504678567000598921484115069185071475367231476787626856335935787901635059576356798052079835875697938268101183078645091216147890364040469982499379390015352442765478657303471495137350139825102717347349145181211508605049199475446971423234454125883356824492213686907955440125446636137731131268993607797159482164161881811882612804752721528515411391472064080526881001200628851689205247533932645115841054093777182555999298249532274091816726352773134887455194292069910754539465500130883368037685692300459637786301329536236559929035066188085312354932887592431188024487946065364909223878666085701242661504203170593582167655449512256799198186381717915097954840030608077945955117583892448209030601409010076022493995448047931687470176632484520744340992828431458987973816144974442978725042194241483926482415193708992836093995742441790534601541452246253718025469574905106030279998603240060704807070754005360678805967736805914526132437130811570353223942456910888614368289013424274932894614515876037518899438454113768754329641717846594310307535685102991961278901463007079812069150097268197506028904357968793838627165842043378589770211935711416509955043103816217741252321120345677028486892553647383133758807617153819128207409542592587143211363984775579097257007363344949784711017464865349072086075211411881500857634509352960092777847295920276697316953884294252361360223539965773280050375213775914076909016076968586097482730787482231719356070245134484391205451732735608029661283873102079873835519634235048544137067028030381380378557356275808090483164288386174676555723166066427452367193777651524242557654845890137507762812257630231940774042048703393866370264872605238320970034509457039430234349571387043332026777711683472504582129910500863870861328704138745746500674549117693098104661424531799801567580935848803709774392769215798544488364746276323033796642707330477717072948128388545122975945808455170743817469563240413815962759681889966589020900036565448099841526820604781511567226748269275994678336173007371502852793632439774114159560784292208088028441188746108609036886131310999593448412961268171731347192591077133080962216821361708255770480768536335255088399916371582619880370522429278818432546924599063300555953421853815661516323579135893651629925280734054631337117904970653786903977825204239882992494062995635998897790784762532790731957263130720717462338196443697485663044926357639055651430701404541086883953896026000695548666466994423698752253559363269971662053154559880710480036454109302455158957447609038446420840123414755808602452827541114598653842552702487036166239893289342697012729476739771344831653790290669222350912464880639436763209609098026869843836051691844776141813973115862308532430155047928778906679156404890997443491420008392119072918305454649081477504373490798196966994485268464118592268585041973393326400624353941991147762791037631277011845119344388334021745452868121976536756246472149641164949439335664192617638032313072048928882961876125055368776902177472752134234712699165317368124595204716008267048734054818898976624730099680821073598316892504529924995275835101522206576748983598424641757796758054369024048186318739743802978048411793209196779196585988771692843916654160919888943658379418254809322721268366442021578797620555806265167487904936560248843032107873335416539131034718854011189959834497172040604216655170344145426708243746218325482598943118536893248890908153782604352012657829978548777544134771349157222062652705036072882049743667614827479767652477709927099120577040063234455259463390382561354294087196935236249976524867003529637505756327741907483176386113062727064119706628641598103064765379096378604055604840360147041132596989478634054479588881112294106110168027428246733347530649429250589722997449375843151793862551525565237312158946730895985691816703910515643283343182947525754632991922701285537573744799120992188333517260791586687307565183830754268379188434528751775814544928951391551104009830628208544675111019255881169387527223917016151489953294765923870605029984649775095294800786212030429319314467883310045502220172541506584709411976087791651635217571652950697949519840114220466107457295276141148222966735474065963390321425808857748713723329690691070890759473551418894802366910185302202081823351114056114380713601643837582141717096242218096517279015239423936887428720423686181059775299201109676149897979761465772176692153023077442711744011017293018039770373726326339235006714522628998981689565928696321913548168674899916509885619239293817545739723791720952867992552094022518837220620371986480850510445166880452698771309795861107076798887767126002714990816400664628713976411624120505597053366807583154766592127179114851521023683819018923860740611883633194626389934468262987545734044499081501069670147795640335348725414056958382028947221036724421886558618420639866136598362715812002136301482614744529630991318020346237033192027100400825545175429138149831057969902895602011859694031876934918792141841922552657595440341814356848026127567498532897898582083709595222126423620995942664533886729446919400650524806535566080107590396810548022707803020186412408656265309612127985446134073669878889289389743327411048333944042326458443967940144935018297368331815010872177464119649059230023369041329118163201085207528980218858410633544532666719072589402916129881783673108573191364783035921066303045016767654682671723785092045967573606177467887689468224897843373038082183186349082719408616976787184154042169482234641694802974131760526052421672355153172108667398868994049748761318051471675128936582647515327240301458462209301538965899786232421238022700712412525433064935078863824546948029021494740387164521679315656136131804717424578620197966238101661199169554113125088712215368410758764029545031201800397659460312013353269965602683102379385128420279808485681504666507262692549067531418333275926791990083683530266042323703716352559834685422748417466490858753633080940432236346627687475344336894373452377398037030942004549030487492773359979827098936205779513972351612261561186321382626040258352255495292509563322184387808306713269183912942190282526412365908028011496886521051917103032711606613100067428133127258512056376864745392032944355948517047611688068737675314288258947981463722353812206103163996127896045867439723011392755117988928110267409845942044772428432205466756496853855278629060242619665497666903224927251270992069097828996295079236510105943084395351998683104843154202885597222019395057807123934855660919455014264918119698797294552336578169169466797530069098425376187896021648238089721635784773529856961724714361353182876305836636574228822308073833994185391455737135522800566033997464564737355018119261539396564727991863180745513978480692724444647745790876188837392352332616126838601366384967356999606539409242390566715483580816985869910528131101033915579664455804764261961515904204772689465519149513004926899623479640524503413715347624918670528309659899696758839435188001160899272491961474934063508524423221758861888249466752390058684145749187555751824181272085905930663435179098244682432624223584993325074439219355823750099875046584091851442331180977366160356012212677607915585832596228021641479453997558769242162776986944395400783447732923270573752354432054589850624398296215387600639599411670701520193676961893204484949788263142214167276489575677289440948999933187341793514372103473905937086540755972504308930953836791220838953758448562934472994212092337538750207056539815744852251911829794727449263486974634199864736455122906138909092200171046458222272266042922395608968147727663959119387349122396782396520281012430024696766152681021829451832665593439535600562813628543276106982022027163007169898611469293864229906998166332500044398524303242671658305409381316268015011872816160167279406453172998417725587810646482797843877370424649631774464740948729014369651389263084333342427677327483436021210919737540298217992689219112307413928045885485692045326525246257284337115472924242948094800676483213288275837273076856188627519688563677673489452543311121948163651824196538444061248665112325541172733141230782921734429047627941378471224897892013335136202463809656270207045145956583894823179540054742549360058389133505049971643134421019785941998472592850791267846373702892259430752704216268220329206781886384206335800616090603506567360964403952697612984910670064299837446482562988900469867238502967800611270012233785062995477286850188676670070697306408803579835018579609749189600797942674032230987713219278467202352422275462171538180801905182126144364860409785331377092414292121667691835075404892442253872755498078643147008734538294644162019802385690893478876724719006010705206140688599932423012845522006083107847133998766656086734106286904551919053863780890828496981065552034089662742965936976864160554353658194149528557357217046804880492729284152833648475595865460057166757970772213101315340034725483010873584617278293200042371123502734165084504258699655439238340016104714504323845528071463047199760504480422722267601915203765373141380235141526261685646121390496044255115842640506608027777004261469836977908930111514132558417110449313688534361089609928747141088433327329318358738727384103726870552829641389126145664729824693946183074800471014087732494193712502102723885758465431214543291391617431988182490449645371920095686820002193633850224166369557339111397843041764761289643877628013089939147223096880483080662235641128035028092690975316614449880203460532818060657734034675125391046804413513867238407187818931852761867424983305155629935396668216917319191584695979914239256889069780936132973401278262926798747035886277382898434310063095020442075279594261256779983598240475880506199004402332161126683563261581423190251262667794545002841014024721771838732714911835996498634966856122625446518031916478757775319571090183244419034834530389705362445202444435811462472344165165500529303594909481051509561432052303352820143307028634277628519562561795806298072958667719707751142097700925029889381168480231981522206365655578479233448787706300798977641861128883795479065661621878955321416671137101052112334279253009792756197149651302120455098939268626067253300773996941895414982601916894722421127076625847721408983282365071120920714663299654393454700165283488688841579123607567900912823857734226930928872661829051023738017598450408594964163729276604073699508076918933777094124487432203802848705069965369455866772602871707560190764535131659491126732614286424630760775497859029084697914923725629040571982742895799974683199106044139576963059291389554548724203601912773333179421570504926729638408496508285538908025479796221016332446413162168948563635797616874600177889373899660955875333827380899180252873643266599420551996411757156538414112127986052641163295359620261046437192684009569877655004003265091350750337526681736519997290642571728557667411926046528890522911898339120591341771810563383564492960585912904207979563813806320100184453082334968979223034551983814989590730450471481073518947550363261786508567819686381953562400854203106337011958391213980594963608098298628941596108183216533189706457804911306094477936762727566581215835530035780751226631265717061314718694342351493672685040718277361913694083386331716531824336159916238820359236529240941628930426745954497947769233613800927541259287394344172523140225002083403022484370643012824332908966156236737136423874929872066660151921341709208231501739423362559975416058929835540261606966176612605898707938781169586540848298077679319868966290837334623720407715915167171593162719408819512279213296938298307913555784764712416291348571910177175555151368073978193335334632917548607707954393379170003145773219324607436884399372155927141638461033730919866489123882162510445247052696296481518277142429257113165734282933073079704873407473392588502457457243971840131927088842923250623582424725702276440565706142224014963637612873245156528437509483947378023303620012022396717710378507595984674094405943655000943884096575004227647753687576941855028010071207856841585443824581157682889122584563130554592525412478948482340222946161995982184251348863931580665289442589801968165326859377744673630424734652295105593445728418075201127948049026408378764328205454413712598568792678840369953704145477565294349571551728424403948128467720388931892092343129098102735662370492401244928885746449271291374575032232864389965189480437398869357947315875098055228674110343928213882564843753862690583570869917245065840974446283882053688730566110459429336390894416193328300982313725015501587906211338892287352262370154791263913937080335558371657874755365258988942566151863223361548008021901983900427983403928721793527278195186421090492291887571696826138428763821715745517359909263846244949840750372451846622459272054697020056157473128871737302755610295564293366229044070375965114549428117171552229283169353592396561519351466263819363085345860039922215387239976121648489275832497929527918224413011392414387880146634841892430837367953273582631651989917108650509219669710308590252669191087069702958784358062259418155118539042271964062236059688876273243262628180226641760792162975163497468861839471945765834153466639661549184589370205762433056547585558142493311022826143498180563007830707925432400382898018895313983903643487210463099890523606573048967154208939012023915228752124855106720226162291522244578210430801552245464844208312710060885168692598793824514955145232967359387153348192689919144072101416488698991654029724388649573945195004022452193538082826920491483096820697375074588290398420701144670381707271809696562634308563761491356097067331121046353858104727284960326157529541867533209465893780785456077275381377423795097606201644629236952686649909734481963227117390630151825838179016381419714854443581435320831243701280186877132881725636231590157678299697725519831164206803758243725372409240246715023077128008685820319138177956554405039998700267993156887843608494116646420161041063953255189207111491102389703589810223013758474081518250779664689469600903233589442056592023120248750432834066404629933213967197034875108237929403308368897161331736888778560938782358221332579888354145617891747792528259814591139089696212598150699937780314290070624366554812420498535063180336956825183979189608835262474354400123956602520941407470759598394929428659252630043200526378668840347538082741674519845727425986354301024404908393410902181887047964599001211160201737079110966332923013135731302977418416358683103378528094889988947120270091828577833217908877611616914509275643664080062977436652434056367267830803818076312162283315895659606256913980246967301342869397189914776206203365068682373446519770687296726414519029941521972233577937601847443552415954778259386171101973063499677235170511450064708222187120586132584114041342150560548858052344767743667070523826548902628667770072886786065557345369559789208058801427775460668819334306900959819216044133539165032581312231837304121461708027813194200394847474228088490550165523429687579588085879856566998289871871298703007362618134380669226376937113317046076292692509430015364701906676739796800380435633137456059024388241205699664115817318378729485431124601286069099545725042652195016606872544328355118229255909623425112217331114155581449481584840938664979957874400069179819705656922136612448785418703940284903443104952153621261326095110631237982299815152345040385560474093138666211497009302306099717044856449726831851432065167476124967542733418754870029417904252667443707525711554982636152760651822029314869877602802352674301917017441383842986786314491061932683264146260906806110270036354039357698663243674459448836473734677147701228799465557040262790992286993411140606562728540288699918053689185773315631883600012256681084276389680878584333605356306458562285092979556412872546521808335540003606406183700249885634194247166138312721832296397107641376547553921122040666604574123326055568907201905158740548654365907683142300705370242425030459310501922318226316416378264194229917550788602428602770033535542589164613073921428023379215731402764498238258976695602812321448436369155692071380993945996671101215439920508341459631250574549922122251141044022489875451427264702406490331547883633607758437065515521173716510979453440784559817001049952214156413498727886623832380455795253234915980615499950716192346862106856867174552202930150441728538671878813181954774612021956412994780679489719656574182165768187278340956076068408448300826454282646249495429929332961123578801507331166619926453247185191107887101702217489911156428736391665249859128148858804531665790462095897092298983662283197328493384692569372421867536502730147065407742550692089933853040529300540842650946666303103883718744427981756623844155170347934929481347929623864782403650172921578497857184473981546109026431514560979369933292664088044975429449723982160681432507402356548467583030261274647424398499283021352743970453357477417254257575842476542302901358554181561374566464637758194639470263063012952526481278218662450388626081917073904241906459177062126969816875831179143369541779537531744235756100756599519077599992372609869072398360378963984470106335285986980722443308230998646262823189214305711910387925012082822153193678132207641293737677851227306623486504069938614036499019983203051753089709271828752679810711319337959121338930744275882422775583818807404391985389871383101563453128215326625618657842483628804102802791642721100351558166416347968017085064245006723208216555132639587945417002118792204160566409131289979149147579558592892728937496731066709979969391889243165997747805865418183559011120236543265563503208317977496142699874767225219518004465146346127866773450815835013070887066358599200354465905394771125250862309027609885513942648266864335694546477949582365869321912759919482639312426682696676040318163361971741401263551536363306432762688149580023797258423789557483788217316257514837061834350036174176321175198682150850407499842273465919896261145991381284002455894996397104594103371903950525636775582260048298556621443231344511565183497778795556024305777887543463327605444874460081852108518227698623307912582142535353189505920813812199361458723127997328951434885513172823017762263550388627340840698279073557867994986741887694992012130831857396717134183987292371390079783284488866363730637330206855626177556448490283713429339577456367227254673058457361616080190018174373768645592888366054621963366470026148513136642918696796996799407637165830421358282024416387957739132117679112251811712844857793776006596907123462879335424481060505531918050458056093071691325250601406666247165608949672882922265065533702158353721831320133454253850975160675067191868123224032011887580394931367437817392871847672391801788432246595399025876088535215839080036928916930330753747750760709552893018111240637030613782974409962516343415295718556847749448224060617396007620648249453734854367875895602912525813614770077333767275495880029682007904117450083067747637435580468268840660325471949375639912020356637837942962671715545895097102414439184921498068104261181144440914583328490645092870541152076927937117970772769325429913957611098915136097994042396870489672073045384065257696474552816288622595452492850371514330567935794593765444967465431835640165378265409705161922632803409837577554386584746981630248800693931643376112465245460429561100284922178357380307180717732812049305220640395014163382149696322203501817591161093976112905693830094191137629763720087624431752581498662882661254167310555167107611033104838903500426442242827370096393645862814693537353479027292308056821271225316751770499411976650160530495756693277785858695497697632269051937036853411778886475771689301100633820031540144774931040736701050488989622219358891613256637070322212562258924111930861272985025811692115384492568281236905747747505607095570293756874567163541375230087641129063553356955098590604037259765296960644331917547046587180278451034107193425437025184562872915871845505572629952618266549363671537228107457847858061210650322881235337515382119064904248411916364831753459213729747026451690173804343777656275594091572770162791891884847565553012807383753344952974449219755928839096367148175445942409454852659579143292886799114104267434621634009243897182980394715360722046900707146447773025034926974341736900893684836480818783305695042304217948673488378592146603343752815160855047050699812267968757679349401162208921171554711765205344374640312569895978279536511716285733117612097520041049577572586059548190260974234359799915150678923795308716177976235258180498565014113215361207862449818216592365229989706890888602584261146071959273326071737691384536302703532201517220479765989577445599989085423063033612436754771388618675400157739426981421550691556906895235318173862862491494351767604114939765887549517882407789682757351898101286880101452317855159552908207220814553933861453385661892390300446283103639929205362330425770572898961538988391929444757344006120518677486483877378416748144056732327522105614961991183022713854006314154640782074348771989006675367504594494198031073404647224184989329896434030637462224469389448994125995462003432210078954397310392077949059620467762087146899602654857112006735019051337468199661043122747741096977604403683775070923871892659300823429135570215723369478427574577714727100553839820779469153508535963493923015710610839891068728904065642914902935551810351542213984318634465482800048096441760772509361787625273880203373355983480978430666511021724124745677045039991774550172111811389515471494859554006088479954171357000650556987930901791394472999238621650711063146007723519187763210813016023218444843490819248819658500629249712289568555893950460468031603724903291347839201594591812225229382120953416073125014779766304862825936118207112291421948018666450964446734754466020369835105876839862973884474245969645546402028916313492510361846303246534509458062776173825847498885665439429235200647276269386888542486476536576695942100637902086469831277040954791010777418006142249626652236034832898569521236506098751633313679064844089467628177513957394751111926465252987756445218700647174033008438214191894354284868247359208044902817725180657641746740717336141034186571163929418108394113633159404861817614593834148520792261193610873151280278371737434712320324323537264286721461553588780269312704781486605975671454390476285994626832521193725976053144546853826332510084985970302668625915077829229482173092812492846266671651127060898080226366304049028901379392573687945292809232501738484970306714179399752588699462871197546130935076203942930132356784294668389758474316798009359486266808291812445460182929533046201572830565942537817536131084449069451354668159999705080343396560080397487346036587824905204021971600838433891834613416480231534152039380843949811041919228306074306841303274033229732600691389010356360847726389783631263885250688967946653843357405297762959267427264476863338384582145824105355756548801062905394444818160593330590539929296507093692467352817596696804885712449213724220650861999481662242980529249451649059472734980745983017813889675981625331791171383862688320214867642090893020171215941290304062692961712055336708945710313884483130674949550396810961702520536519609715339497193975339143600116217722262560233015199079774721308128621270328480040389088443228510743769317916923764677009581637003367155919819427236042322118851685371819944757664576361749844771902956268608562311478452889543856873438033532163215458819030679440141221188817662456712659635591454975373626048317923641590464695000397298167729103488916174114044108275287355343069833788144543163372527652358702963131280508787934581946371240843012013920268981336777781200151315680618860548086513288735594732853768523455038820308266590324581015919008673322529814406524557580270215401434249380323442046734803452090710838546741118276294490246174840128170415426172598543556887837404985673224547364467408938685067345563032461563382580199169504902666896007717166013300599203972400943034357864077612041118694217032492789998399451828508688480972819923137549946962520431545550413224550956224272159766098104375654115914125660401364325798676540312229427290414699901815345301894744487054195752361846907158324446706265430020333038922083738950772114581073234468776059979171097036733849241313200576904169169718554607745098859560399794562695749534464316238222701067275988884184435934574991869448673879440855266124793191122952654453122721647935049730740762442575819730402255792776585137649298372579894938271840601117042759973423752303982962316220647723502961575596329721373557922138052029890740984148440470009240595222664468181932511256426455063978937098269270472223159317398129610005858786974971335918687678330619629146077738982210087321855334352501629950598660589853178817699786003163142230933738621654368980490916097525232240073275098913938322433562573769842801323845782746082994377089909015694789474062374673658300552316069580029144354569155644199204312943752542479917836841731369158950070413134523236729921588968976048926846476552159935776136538475142686393295733198319469483121243461765614043172770686981687041594097989082386679390663360202531030495284824064370526192635228426934208224858871912937162289339592133005638882055309274174790994644088138564919193971911488643569015767395624399675241535897186331330868172141147578100996052012125837023384922094475754261824678879929603253331941434182687338617718860624678176597237919764360444272183661613804072785277510262100520365388815250020801963962350569430724706660129496289948487503946366617771119497356508984055445887757100607351996348136872613878941289993458183302848960145871498993870569727961523042151819171297352920283774257388774856278022619758005798060183479968017999627112490913504917645190197927106040058038051809402580073412702003905656992148421168995340804166210555751036338642712847249704468085319710548407821852874777653797979929556691308411117143473815283028397260361265349606691820532184209431471686482734785729114347575624180273393172170859359992211883267927873657043312508831157590934736455038984893092853515466986447025241231974720679209945541620715185163433048454001288602675627301472854753579418857600859938391529803147551887450180449134753308395914524551707915861308215610479991376694107780432402278621470128015232049447268915219972433466388205508734323341921179297826713697804800452818396122090610956758492644717595730173237293257751877356868575712637182488984912600447353035216402284797061163710321828567467736333168180594989251461317234205202971960983798907031786018397589096685885501810122409461272445048579262325785487896427071897933580068573209313340788147230815105099529939166193989105994124808153396075936356214266954040585374623583606732356538556739572043190388024504714633021468155456077096700083072823897411689555539411454120501470851153996931474337547133868771925226182039280167476642137321559170028570840965870698918118761621648567334146113343660953828151344581152180483073331030311443536179305603065928780957142744399143626653113745634100051832968646115342605162332164054776216116227226796853070210396020669975416723928732612658002781781700811782252726022153654700489112764032819548646546245797110229418703982906492312707736077609329367793488643852493673964373215086603018172190124534300384961809246698654008504035223320317272259132439283528236298640120322286677072074653279609848263010679223693649802531434728461434425354879053385328536441081646613774055980178851108182077211824851161633323269663100809640076462624590036280571082597847614061586543992587067344669410868156159676032665351896787725741642483903994681080082778407382673756308608426942266514668951388935500754921898370147974049491468156227744099324646783219449234887122097220192517644158611740905076656232378488275471042235272983593279209450273185237674369063860476972284215073204283650487533573042756509016475528498776822106024650349602528648534622632702692891510955757028169857917078596828114213556177168535458030282052684813152232076240731635629883200546115424110647942090707290844330156004478240274284489943276885852635491663947323384076138239204031200215040673889940564251247588691509163942901841077832514124801454144298090682068000748660278674258923583194574462563293899798992817174721529375161771803388021919412971977425187819684345949373565706382865723568918726044670862570833343352123339038935459440856242849005613083293738446753662219045942110680086422682200185865268118116992599498922568005254149857837725866987447986013840966416423291606685289126707706257727770525309762654979320323586962461911105418808478865225082295960182340981116509059659832574843458742295130568280003994966101059648605197900732813151907518708173874438689251300018446453344503545538470948424759152563649100829623681848576957771140824022937469904552888809919240767205436806765508961291160358513367982725096484232467903257084119413515002423979097922379829979438399227286357584624170204113620337950299429798729798443230072816725987941270036517900566945491479656862962771896787969773249003210879733608891565439049932668612796236462307465612550967233535553653847312141114223323024011810072303664796084969536829693151776018409792477885503981868241763639797128786889314718565892996379939284872776313053106707882321565465943290069534017575148229470883996844371366505068807639519084449048508822440609270611019101482078860565384686784230640477620646229357954211370061729617101163722226236041125493859993143917280585985662652301620469770361714278944815482838436207333151340009864855983855451021092946032437472917762125963409597615637857526736537741149701593477694262237568322015514648010202544682787649225097508983342413294290944127035935711609587960105098519588050390140751981237175458292172658414108202572464794482046671316218143784346840357464356619494610679660005492156652967219251574299728366766132278730953159605796985018534768711245055899130943579979424142699575578950576312035898464905151646291921461855954406347008789751062772047033505403868553866227887209493981307764335839442928912852765939926222265977704373115851894329706328666134371186680703737313458664636705704727497828241670605621330497453915338913396899303286736162473230686762009634872331283841257690970601529729732040136607777129697303546879725958048253417343789969427223165065659140335559768033792611723934550347694665572678222942591467069185291196857939168377679365292918115869927513426496334288815219441054101915805291672404734083292948262457274280333367782983381852688548289673625859905643833639352538874726232130401529208371707324528315946158106353466581882981051310166689631260916452502930378060772729189968295080847618291686988202944026153240053820324518808744154640762421584220042444838833837417444174826271990952962659050140203505850809201728181410841944231496011452382725835107940791756632263482572295731733608248517926244512232870564924183195152928222930377045456688131492661675594493206824524546502121483016464331190038260476462111595663128806606742780191388424426708974326506900784932549356217486015637168124432911029795529602845050276901524927071503617607305783602974495222722380525046887880270242928254768482484735118771565360872432597187734280987551926723233920644246689378178941449603176517641785685272654224079254195679970636684227054700467183408318176764623057962852810803696586716489666613235206207007778312967216559279553618481111647746219764259327000339607259282926991832238261746849272401496557280008989466084108895149256763332341172678366480658712466925660556818853451385101034268843336418955575042256538111184787145527124779639577343946805833959571098564365493437385852090773380534623132036701621526118386887558480400722138230402737622558884546643666919904927804771001945475141857240096453884870716805014214998940719444595068978117654876090114048708862712168982482333990960678368386459837750213784294956927748739083282203949234463306369415120904968023567993062140359993773684180321603970013058540736913608644686420932627789810794506760596278289367172676420015051153818265824186961336313830290390437180369707789397248505875586308036762837495002800799920677917597657584637702481815647247353963328497200528382140328570650176943216253876926715376138733353826149927723563054178528520217905321936941770663913286948736846065150655415884965942500628542787508527991191281773797958911162238474788429106134674096626819797878188183081755795983143458978324366128713937067212878841725449142419281684641984733482560087724784253292115616373429221662723611059375152014432675989654150296929410550178949396104913517185359806802803906691311032460497497383664112581233265741210055004517461266570104673849597926742923803053229946758279117228686439871718476880657413038271176535928596308576524809182742414513436227140665393535940458638746797736767670461573757900034616128242793891334493933401525036193362519377780316434365851548542728758466942017366766378341108965752007381342971396767152737724526325615474169937792721321710647407004146290111669839324718995150422280541706148312625762547933305638652611272519719763629732450351224513223311285608069760840661010614748394141508680980502433993351864017931482504563449128348679568986354457542258248203438268161843061511262319846463945304690660351684815085977609882799455301817575528250785954038745229378931106336303753343234396953078029568109449915239435334735036320581985408027352758675738378477669339109527545162267692972340986823688901496461626370988322859435122341398379963035872923225926248117897499084033623921784178764556279295082940427188332171428825746745642906890153401382136985584606494372162711603128839988350824664899015270932219427742107073959575740172640164225679170775363823871071996780273046093643454911727994662733044200832313778312766463223482193860670874506871355785288446787493171512317694793745565023673563361559675127707171980965716601757879984558690632786843758955360225078704591451742542369234282083032550869046266902976398497628805880768909210249700368240757208031054737333547985634111185305177316373843167289708935586033539719276681127033612282733433824669324833881125330782192794402757410540089868059244996885034047392471773412838389984592344000362708709033442589136936735060580366401135870569082665055143574831603459653618633971875174087318642111130947016136651292844682260075150313748878595464310817287128635880020767787410567490616752891423653865207426762977748523809937083548935273733166298522456215841865191144490692298815943356088472968897314016492479374927914424986316832768508682914974321021470795475538288479949062806517119022617436655270089953748835411984968841199954533787284550755682800953434053039174567312963787175156883029108493402155319480037560733804610224287446626454947813778899281046984871373540372121708151852695507294404612966790087200215236815810762239802424249315041120832646534269567356822697093383430255075279687474812122843139305359446331347646471014519677700160561033839372219698602222827570509323697631680811739275446277801070870162982248668257111381322122094936875450586325237218296906025702234495793984016767270860571549091255855474734747569942027654449656806723698031424023561489068800926187790231056590487479047935588998143573460743584380332336383631019599491238445462775348327811480491284020129324024428749653031557229205659240301632095893985351352304038283182064845618243224675991936494163655332072527413885441292499287169638086033378697491307962695285704507432001534588394397061378717086751286087973619363905995426839643492226924435526607879897533684123109366176333978690136740864296600631192799960534656667425899246823201208306693542214887536546682684149330278348661868621034626416279904573539114593787589280937070402317546796133113698179405302744777419102243812616890567845660553393030812925702812190652500007665835191395995349158528017466313139243927658785302601048211250552522741154850911712762730259441851602742351516336421639892750364255835434948185963796997980980769176640166755758839238881609879412177784417739359015270572788887515288283348866205340444936291339381549408929233731493199010195469604461600025730277342955188875901256230206192599031966196052548728700170052112205852467561483286111555730982237695647466980795690528505607981419862520032475405929828867026525566205553231064964919993245966254796276296179266294023678818728409089148713126836319378077164935087747302648406750714137917156593110888712840695311376306156065241000648311872468869199096341519480782674162767328809296791731349189055744387008941128329626439890047683878236058004995854170431915244405144778066736464389061677074203002425335261430312367028449403360506471796645259690917843248771917101937934242476475340679215453684425785685211545915705198276887429554942896533050853081437858729643371301871709661876913196371710492986253020666359630187808182730638567081488779010225815755837630723649306942650521105284399856958359695761214362777960669461872037694300258428144124839923860783749838220815050742763598553004848233691375032679320149619642485867381320699990255381345848087829143136669296991672403321779613214800609517034824757831312711483190614331002364266777943246803871712453012375039328463340152580771633532018992592383364553338774483644983940227240673178405308695339118106667560078231476545911335103401071992427493303941367335937180715888045348049742502061209479237646563500292461093469281327132969112030311036189040302313167184318684827314086338136005845701727790063329205734974296622738394570167805547127839659809485851497944319590631581908102378324896353528437054110297394930030966976417515636572286103643761758193953906107159023339326444706332312632862755267592716268499386960797312489169644341177763547237885860097580344467939395753873930029106569509357556920784387806613005000605101049578243844093845600127738687391411571214663520925206261924621497067002500320334383934106525667281059077061568576283546180784786750077653344740679997634056717471307604112839242461325931454879028830984529802616341719518349590254243376232105294532319352138344600860592643805551776858213067746715115142852552070172107506145050393465985047148635585907261150047566194600164682142050265669966276014600813827098725419916962206580941329399175927756825505291032107070204431672851410173175646555667847874740804996532593776842740773981364067865183399062057959695746871961446393772480302975211505755775059179660443439458929777841672465447964428399099279985702584375193910477307997996984000350764128173430381752236578497803124069563757633755816667683551812313417148137924077033995010045478614409405439386605121385727548346784791955691239314869275352364082014452219255556285338671851308103823091700006361679415933367318603458619416111033114304323561081308548631012388321645984660614483973131390975776504454067384355183086809019100821864238795530183921013272931494375468617077473780912946348861345600981009324317668368011919951603248520980169110270604966026777426085532420501197360689077357122793601473577453068282580664646378662601837182757931178573527933143540989032891717065352385141983159145655335206696979070674667375744472463003387764876696403869737102114461163672617037072327423916907772453126638359834039896062385901553535856054073437510196102854215191989318665124032110018914786307208174449441852067440635848909003406970572460390728366041476618463603322681105839482640111829975639062302403456230420132459198430408804687440385609566079231530622716047456775318207208324230231657946961364923142110207690109111687385465680928883367928411692198471033670269020666786355704305566782589469289611605118014259704674585456016412243863523708042931276287480416484554986277739778853847901968156818121347605429177616420799214694844673868783349762309802512140852078067700764788273265427886242256149999425660766997230907091138191648483060526442535801603649948925154871786673866142930792887764694985994461335815446585152548742977542687782821227498412542120289202832613058898451942718822396858395485488601923658876930492039608509633328241834019663030801955886554363818360910062500310414587233388651131647188062359108498481047871700819718811413180045935677492659969113047892612036139404256684330147172483155114492696203344533094975436874794719664338787460824495823560127172607884306833129506887012346941058246844159774726649847960326712665368171327083313621033573412741970672161858919244057691258469777680924785252383322711704778283933905369173638926129247571538474192008420692234172589493984426990579502130768642673653199933899757191819675364999597595261581888417204396199777359850756060216137510570822279226406105716622055605212962623706806612888475391829872281258344081439621892798227628734258942046845683657537145760630871918125766424406291743909842176390537928868249553046657476516376725683382789865402253183149881213925958950364190724952564635526471708355163216182543490625686886639458402449012159827102778511007536326993296611794841605510745930824637436378309704142328867209141560171503663361772938655367364318779962181521309060948823845566292428223597183220344609443649496660424894889215355595364543322471610863804212121062065384421864368900037974044283386098498781940668932209774416227620921498356163267414662018960865300898047481172201653136129377410095031953646402868094797518660699858176212561353540353709571802655839061926498577679736159279729951427704024682251322138194371980489583448446758296111735764522922033756369705098107917616518390196678439054718701799274300072750191070598938683534000173589916005276439035878028564961278908974186035852574552319027656321176629798892872416291286339883366440674702350496676872360858914516291726995158927634291886938962715127096396578604145364393711469330139230252169280680213223260748458186229141085957163362208023785570384959206259385477971962813054837519079900346484628530504123792165177360024787555089612481571749644493150888913438490911678177729114842947912777466451939913601372258601477187774348939537168833014511710026591895435196390160031084987767491017746319932084171789060854076211564760922317110389624836589900582854694344758407306751356678747582246971067298025343614745943233744164407412998428825827205638248480561599937871561089460399966634751900040299607701467072453504828068739959933779312229003539659865586137297862169631881998983339351935653363549438125091649109404726762381765888028701245279793960611354444614625920320051057558225713682713909326869593561147865129218833363733536638997017139235927254792304139649155005759545111823717784103555244319104383477376011634463257312398821287237056764926364781949736707370255488855416285879530335119311115497046000382162494620322834000163742432026374041762427972054329012011648309978262203943505888406908350370765587883751786917676305609404071413977529661216257832494626748017385046231274759540208125999182013236992490049396271534982796153253051342739611666659265200370470552132690357305522059531744003089210183113770197232324599391696938066939984334372148739883729639152550908425387972829325603449347350801413304641502853395786747574008469839122684434554174735898317173140335282025610820750063068372218111196256387700793463987638967485959905009284586609172266779671974860960954851388133376090415999885202531316673231416417692624136234605174433800082297350880079797968802719245453698940518186843126733098340081574535423954396844359906930989371935024297935087616063113915767833283565234194994277844825847047227767366133736167576375173415732306738215173813253794262843106520895865179462150424790208867365427764545096997350517340968587557208952796702041714173846381971067229565338148998009710675442962840243844265929740586055135212974517081340518369968591332768676058944748966204736540710920332350071818949862571744630549977738388451448219241418478104094265943309498536707199480729457037505540656693772992196438355797632935035133838864156000719584854620812657309101675796932462154290558647224117416163196019631303794364503896613979883553748133441949990913788659776099670494262415474073887982844435775592282124116069453134382937570867410699138702393409456988103462280878794437794906973082234325569551736501100444681736054343872513917239291060109194793950918267663177502010756256256413247807317314940369574238788527572251950289550297391963128866447882923205994029914986615817616566948017196125227162264444255524451871544985385596988712760554514311053577345153305766670064878217148379229375972720802657255481894321537966533898009923609767185181084010312998071651032420388764169337080571343809141455859313426386164519260396386072451597971374203806048123218551668788593120798520754960082192471024592069888230270826711120228742807047738715982565078326331127424900212047180594613404024395279836364661598983460218270509282999050564110143666106342215813886702528984636286921838164793750674083054733031284832627730523553299422758611093284855693323810063721710794895508400409527104873411093206963630980402302927341471402921739512228714345751357119444535418427890403845996131776023905532815945259706779668733845416815656648903153400546415165456932850068393102881484152898269860863233686997632025153481057855299635492770424169977943580000517372419462500101288433372220713581086333086407378994912753758737503011925721852954047258464503810509437352443132879088989957455786010927269222288836923214000428399899024515461166071035069410602795098239626062255295894739516201948179388455833078617407064470748052992633151211350609985831953874375800160713085538093600835872938086847221810982731975410547430174989749384837889416298879277661259329794672121532733966782696973488332403556403220813004510725685518137717781257980704449555471348476288054224998912867494941974036295290515426206902223425361831328356537754882069338325654184111181519068714980525404067251858870470828285990108968255417714831233931903848755839483039466303568854044850092794738935626634153620068661106040161832710025235258425175671436621783354316031091738607199674732304484477241680142757060409676873012248770704419675389212733453326484800827773495598037647855930141236901106661842010070848964966455935953745612149716844520798259609618853415520994918161167631277384319494181847581986456665934712872091293211416212591521525201872634302785653210457412357609543286880101722427919927935594047430286683709098336099219571374618572687075301907185406743310431709699038975788528514342192979884778613868157971299759757146079607104137487464421769628965221856849329223241122180056633199089359522844242826801229305921516195491026595360596085639867883232544852151792451817139581467611118011390088540393479423559476697915586682699821083335810061069407036399204395902067087289394093146409714781306317895391673928129606028866738564703114786722658734940862117775991053503698700783956574946012608680724399591679243894428386622594708639076958021180546080966418129295832055216446484843752300480572250345138353696167258130505018409176833619455178161053941340442423674181180679406871980877377147533200756810144154390059372895512057451761373657837129570461405154180256219957422862479651644823474379931980052211222678809448641832965055762860932419816184206089278913455815991769658797969859113715593566680182907491305020445783433948422773330961627973283780109880088938188093304555193404463391220711504627874611814969764787389190999558352343115866644472722355574352791398143443295926381203234741627400859421311715578010200045973851109123102552940105022958383492784687208280213991546634966285984907630858534483160935801670834483179836064090127910547867085526972186749917571951664098382481323497487180185106318487912745848129873288635026490104560386558184577792866692701763130972151167723449358049298143485214832326323877883763430685864169684358093947060493278414539282437483831778989309815488230399097290730943394353890835348810420085012801306457110863557444963116763489301457246567429051177645909120248606319832613627714528765035897316072304364502244240349672110132823718922939411981318786511205854567771808182995826599672958576043270683210457476425226988380376233843471699074119485333199779899596687567823099343403279057025569044941410481208320575271401818344175599089070659712157089368824960813409010723938562555394507977805669802519068241612309824252057758290843399680589995215035493945604431242952696040341396381832870682574193098204866289705948738005466812283876322860425323178274686287020195941613776838074515802237034393803955398127544488131064625717365641286589806562428191239288428213600286691088678785675904535667772717650674015899786465924307823028500580973888963515783386027374550066237241696750164269588220081430969358266502849509270890468893948160424043740616380804732414924573003185116221412929404337489200407679847147865593521022033785670743346832451845842170093992540941569934644598302551671873552252316583324304783662913965153649287791807204524760615303213050129654229755086305493161512554058510745348202629006567219022183344736552563962597236857793933706674441518236278542525862282283392868664125557278821773791610642089418376069940200045892904811815817451659203677835511744556891180078742140587028893392785722469815564107738680426821592623137346132873825198367107886454000301734074153720955694422259201589523187826002964951105695266238977337346966103689201379093870361678726905678008343788953689617562676039575305128864973761259306553588507695273872073477409680701144252584688606913769086754023003495215459061533867205882259597150272417729413877374246453095421521938938052690328700527503450778660001137019914483189229345063952693693288294831930994557403766407289939391459311333046080185784086251546340770168267207449312496923315787748605590010192493705343833412167549863296035648186277046540903618944174542760696802840549099695544659141315435689947694275901506315371827890197274006302160008510014837536405678303041310660030201265046380824677343190674803211571121352542203695029340282441571302905108965790705225921827399257361525297690891345575250882017838961611491299116295255359718931053261946589242012450161324868299874669614187202400080973030308516221552386809213453453570900612766896267085007348897083301349799739097163448594717583001914137436976649230658539333621328938761132532259366327884465724685486859827514809303060103843287167550524133088082791484828191749282270427557561203467373424871767100435457337736761102888616838617909628884657751006894928238164608893068693679876916750466327080273857503547979988678117678482134109539634229986830662820494622942894789193530419637973409956879540860883694402350234952845924369891218237997046658832111494713707931600880840582995204770256877406797547728344645923300420787533327615567158054976036115500214726841262025323385554389990975659138136880477176348480270977597474188130797982196455346312931718786799681320440590510826671343463036575414794053224217496530384948320397323008866596916095961145400785550478714075980704730035961578541041599675696699901614412335684124778570738911551580286137302483935042452022756128994513704409754665843621084112722799484085203451488997814529937927520243951958322014228488793213507908462357290867502018738958108109173089927052367576330989356714741998977299513799559030755129967956485163833636005624373429722247639377867280266953255902532323307268932510937589349893958207803391680992044381679849243592517889945695944448403992898259728173172970712662890617350164026521477248784663456021746773558121279841377424613955295539285510389418186195611674027864095200527805809655369486603855431283311218333034887534226940353545144661184896603148843015647647394009025411663669119258467860399764173311099530225800012487906322625336273927139388722642818710004821912573328627668568829967598917613939481862811716238268585129036131778426211345037546774316403441730239389290792885829776150213535342101684658759382975956420840577366740540523837956652353821856176192967331185802279738932023738249629562691169940241202601282517786301938445282497557791525289342604128900768533429857643286070301824464003733435660583403490085077794167900471243230892774278540383160110047622783353505680200908936826502073852503546702537352559878848193534280491002248052855600372027578995901761820535052391694315211864636709350334040118913174137377802114977302238244390169453125267157261257011747526887134592839089214232343917736892471064938627145254742980191111458166180823325334095421079893328351839602796532245915567866523325247547460204398421500112595005307031747274448550780754296408529110055777666331798205709839048134468983214708196855371722943482461101273300441368030208267430193034089495805811133847360027757885683013341320259237682192973557810324322218555494272309759320479541936651350785683441376862905504226483731047418127937909477664589573932257609502702681374434859298855908028289156584048959899710718291539524686965568753734816933938409047421398383303347322544555476247651778436086172874866170916459063657674443612253430418839699393827091540015700716395528170620189805852112304732377106016438699150825925084233359691101556988232194149935882518815276049618052781235084555465581661253827636088832231785718239408402857138256018436386997765174340305858359856913545503929503112648096992232885042073650280186273513727339363996204535505292505537869562303409685611831213253974984100443259360603544540145428293466767914397125813275928267708093983420945752626448983899212796277856950285020821581173673412231413440022970944257033563311720255907316045943464923357575008169078744666347778332109555616198243747445029274399388549168465970616388984650269276373715143481604233527302871811507470532665036079459877485016328074165217333970282228961732140975718553782900952327119280851789145716278529731603527401317665880147168278686649340776752313593050165038121065940381493237365179995776388486010362313095056289514764211250539329363247330162013518550262640525687001158376150613433040769541911275441474488834409211517034943868180440743284081710805142194139410803347385821458553814575708112448963012548454879599389673184953705348224725764610762321838158525770142621082935956167400659627384530156733435398632344221324182517805201113162767794858052387347343380832525011155628223328318271708944446414228072535779376154097240350008600680994068265171714714058559644271152098295029059987865870421856012067560972476608028493642141790088445108037960814606103828532232557602234494275916066544562321701855701263349460533075115044801027951068062866772274576409826287551928991944027412455145838125824718726756162893685641382923011114860218749416555836413615299686993792673202852705920554682201568445289452560199444214785304003108187190211137699750157879739196305782276390310391263897238458992967310489373537859656424117077769136816749245708948301460506831250508168163349670207078276707575589436208247368714926783486544968084016793123209306342800703493817214330220248070746867122124699895244368736758586000248757964977729383545199943244620316650706535357428456537381250261152765728578417918756250613998374631818189786137466440190794405514051858143282864869154622791091110296356406501676616563287416000309312360739212496995846508013947204815005625739272059595220890628878407862686623768847701647242447391291675402685022473071828428531434221482114872897155438204213273530234486585931929618024192107453821543790959832985556862853326289833442481917121733228010517752002334662286499177822265397611900040233941911014190906940491857467478004622656844343917515477224569552905491954314966528415514168968263838217033423443890009931660285575765571350301150521522323877308613243618277956320963727465730370342958441977207621805907253659767874137619659241575160419977879852380281419916999085032526356200025630023005806392643225627893135985658435927503628761496477392415579582748945227476457056463975884120159187784031982423794977798047248224482219533620115389207520988221313934905612295629837136489416828025226668296094709735735907900679362966544681442267732802846742371093053510109776122406958241326303474443946397099256028520256104535175564585572636532399894908691330538032705418548497938994328397750418583359307681145431945163724649059914537204854587482075014287419116768859807709856419513600462437488135720818422028317653483444097985616367453567160565395773842979967320595232136203439886611343417079225947811956930311223248687973609531815674081300557927321467912097591696815012817033392296829702677997469525034241765061057356616479210094662282331167332103585435576696559652606214729158781519535850215697994610424871475205794509787391389593263869844623213582677314192049606628529240175824487025415042060588374130700500155484406493797683189553023152847033299063051489264952928042447741858999968128598675881784096088325701735526158294657448579529829641133136925714148682652396264925777533370484232725282821916598255541228103769926859407227491617619177892236434222513163607121458986205171105596528358695439972398902683284605457011250214374516148807653918791228469710863689958564273881299049491195896309493060361884099829829654020261201982498266895324484306147841661573736713462044923574768235110140667923571669567662594208618351551235510417036889108216414196257781358633909172891414145448835717450969115124919162336049106937862233519663603353508490984419506526773704713487380363052192682442880066381173915612665815683563233803242591868929870160516299248395392621699057253836712540203739217562092941815925196935537608142963728316696735206978290957145355228423977502234738277047505544658710994236606895911860764242587400120576646723138421512954391519155696443703526561544423377703883330432397691116084602623651604416276222483603841151800524189092573398608195287957546043575521735056024204504797182878815087248011609683089177343265349358721063055886511387174489099304346181430904374060289679465979687504127814802343845792294856265968813530165612519773562788050812449307682900696913529838925390337217265056852424113526252706145397771960656463655433186022445036712001463005363288125847169318477708532944504581971389576064681819012754634322500940354159560252427265762576994773184473140545266266375050204825492343690335148238822708684049021967906138415058607312011593130547351278785455177979660307603268751176424858759420551192485935644119215027447627633856595768138609199868893880240454712314579530516537521144633076848157657492548004992734775852513967845451215065398002440369598747816556541667085411687045696354341711263393290564173873514262356838233376454148058702452491500831686570563597111694502887545405806848736821128405546783098430969812419165601732788634565447376610511837322705826233379346761448796533639715173201734934855014497515312179042466046666270271366482533442266699769217450373069631924814089762595564518938647137413126657482713953063393729006661712803320108100395533401703763242149020541453057762235431613456255265470378185658144181132270315498134505490249232187518676573679023551269756006817701129530243363524442129926558323933242381665321358948627376990204379800963378530660623940400908373229988430401896745293192818500061340338139946658172313962194108396997394025073074337938836448165813530048722757455595046659175963615041394202186691353887805322531104083817573928441310976894254624138033970016034109792349447722190822396202806505968804016186738031216077898724356519531762622280431702095097456654530827787944405392503780618654218199263197863778857215381709755580487860170548447862138168321002698912862711339639519186837480573975273016871566206877800931192839755886032467754647137480080618031521833226509767333795172979217402103367696456922764625776825094862136793607344945639261448999024255500992631717126739075458004528470875640821908347431398083421822687622762907046768461879365249332298800932118993616827414223667837967405079770719704029707939316849482297020053370639031432838310541890913573142089130753875650103466765141882505265337666544679934899405266017216935233739646786702661751459250147502662219674294674231080209325904585931445898838583690448546763893021045629323783688719775287012016328937497577415658940038734323362973606806602095917388401174576770867226620782700648283065833903196052853554125979909487562896266059639914070574209609633937365608231384183911019708943928398683088285520093184753112683185206086082843488350626659018615971179222787753440660561193900116197937338291183586916923376208023979156513916356987993642748845942801763028927878831036718941852100648764281101327058626144284618796463368213552191123311671972620162805363959036405566900832488084642941588120498758255259500208179192794390082134132133200635817864728525604374583439445107297851904214557381227192473713463089673602959138199546575656175284728612244365333739556666979881087651589078254838688824238248669030180510658987018987573011957324372904423705260035079017545806765120463261825587743838193361973133681150786005375620160888192761321738931067745587233342404374492525441784606765726231556763336378621862829622604785283138050805510447269939685016898438292874403270434623926341089258585801757215935474037538683169059178737680200554739896502090966265026820842444913178012705285308308376476300527288719386700594303063005775698946166965839217890937721039505022207236728204208016857973556143239029309428330613430434541028002786238446361502307451408591137287741850671104884876648342723366839342191996120909117619443013098797640928050948287575878594832191371417139551952394180701777748687586126133788243743378323741233064284858588132813914540329878153423531397514134545026334334615181855733062612238688503146051466297529290364356829659339177500789323580519077402773195893477870596690666379067712058710067273802432620425819314683631657688675560554074664134761982302621437590181557977302851810698565664481494478330611777099135394142209852409920287783328128159587402099913069327234542842738366640849838424354128902280618483695781655217136359911263516693034175672773671041875002027503789435226355157136964836565417786182240554107322041767421830369645549554368645872867186964550243931014285648813161035165471811900338329858237307891216837669432324502160307249498097994188287082522026986225411374306675498568111168665767206398127548685782082295792675430105072108951086487255255856685558195709283522288876268508110841577141836330613205404469137202422664078078842668436029123574224720540226731208600705195776411847009121777635989678289178223355044499950175219175644426480578964214359140358035263222500937412652321212283009901530897587321724670638145386861335606008508289680735879136625709283755677747994132173457845244073809621489750821115201484622086783586311684967214269535001752314576548489892925449792329964064239331506067189497629302041532007959050748788068404965347018467689017593915658716740031934599242925895463422533098203212397226651858554514384057635362943023565010621244918200140538670090854745454616067791925908813754852747866075711805886305294230708663762697498944597553063581163191956746379942794847288986553337896524560726061900868595585206386092982040583569790882683885708252573940465069688182890006143565486013559989358963097849458258458824760530881616390336847344105793221773312606383943697093153248330358153026955967982307494939573063214197364086513290460764746164547651677722202202747174491523749304907519515117746086470276701947480093734175119115884893922044070895595707454470983141254522196680015134505821867078247579081888261461234773262368536793088316668162543593110990119893252907045132151816770957051008252210338705938814598977137942855259077536196464481796910550877726658458612502061197157441971633785890467998625827331999310893195866195016620937798029307951062943213355336916936950595568004849071950344993568659605865405034344323051212778914458140283227087374712836768963858261357255787892373536683787061469395626015731933681709566767891281340723126876713629045365668466923963896180805275054394431599492634863038727606400595761955341263339677330833865540190059239715075738827925568418168055397543125287733209775263140659615230875849788784723491280409741614214089221722463624813810147974812372139689466770568333350660138209998222144372833825778051445485335284249327433170782998599772387395009642043392883333912862057970117343994434969257652754673821256708504180536563236462054925465254949724977371594120502732478118312321166500812396908062379241000674064643137117247389909906776296945530433409228079554101745163958808753002788994577508706336184416670020264245231330931463615751366128176225589748107232104257458522521913841956505639400466719979973462079607974625579408595964359698677583482820170199273912174369180471321243729933022597785673369225056350510050149379460751914825388121355639654857549978008183354885478637412502059406467359644509805383979887648307228565074423680435413752679030106556530776104385332557953501461765542943027348286571093651451582201460501876391010458943633935140290941207988167265883116574398333644168168481175310964375239994121898336688175542182965062563778770420925449334836877772828078064205115379059888693571583989064396959844672846804580357975858076858828849898510257378747298324455508704670545321856363393032966565251725924036893865541339310067521889563805114118606715305355286490367533638123883260163261417646628837962589786752988786816086554440465147815653170439200035230219773060166360537892365133972678345121640055351514694312868380751011995884442890137654384044778060704519039799790417595606455896186812824002396898231224410111129738328648453449084599953588453510085509584244021682311478913749421766701167256205188160064049427302448145608652345381229249196100782570970434264131266521898506941644890134024029494726008725763604016029991025759929962892767291264027771033703998862517551245156103830675750274844939277335358305082487493529870615577942572916809453204274151685934106431294835312605744021935330327778853709445356933609225377277210166039564102544143015281096587285543711183234638677567056912669966312890857950003175308817519591082152492336545671365071538632390493359163424717273802119741386274547329752132956481997452407589595332096309216055980384394330182522900578616006347371857962324331616560635485111951138313672967029000308077951785912574659576478596067165668183772936951737352897855958722201798949826568432871515774519388940781557028205478323441530739475636034227146756010735661547384420156741571531056893727119607220066500843750823976375494808371435500367182233377035553028477349989247637623883659161179964254110415390297350776576092217140013544112077958925842761010471624911696500768530934583323900015477026438414609503069694308905989169858082045920952882156383938855901020419851193320957250958797899572751052762993888951459667688906852970702433760351558474894046449236623689468998096903324110781507021457079950613442839961180366831038414854460341927520865157377071209527545280493732422176046551970858809553504928668490727950705157686292802724544230214442505256263944193148225152847796342342311463148872467753559817614377783832774879862412248294120429747173999603978673799052838611416935019743124461009149816737723357352723428081183555960301195329981187887555804832003741014715531300474992760629401726502380947400998518101010637061630132708982758033159809153563404113993972647176324813778555411782179830967143626383884360190912195678508532217117187786741542074365532359712508109895086026214180247623662492593047515022540665806879667622433334094136678191153567284450608354657575130149467496587285212539353725089022680723056674984560337910807900194915549569465415305649382601015834562370587724147556247131896728937450323491678024328190287779197333096556813297881733914709287389310077152999215789960122476603580189936833698494548320042899921044638916668760799756088659081596626667587911015457059219045764242512332651637232666005735938294283767361265257164286272284688041849241470725364171956738919982601182087450027316092105968245304826718134932328120190953713958695491904930088099910917748662051072056621750431301385192500126962315824518395138983021605540370913867052878537113221751386834741382694268685102681257272838127360943158848838520101405885139704380645875216476730148643027735762290613796109696497807722974448465603245900778214084854732565039379099833944827818167320717196077480643169127878771637958079375357067061877436498628530746780393707618903634045687284262097085115650054959981658899682672839456559935156147110425115715363961211626452567653296628093328877380679356118967230822030383799106170849090172477187943247239866928213602972107709190569047151079991557852725986413802463033604893878627345065196379624505766520145381403594025298868490617205411323885965622890111248445414287897255096604462370630866112730738921019712911986538635911651067964144285128511083088936187500848677735013758968483125178230605151992463498609769730900768993739727005024699408140813360966805830080020951691754434598754715502061256846529122117958933750390770970296179248204342911607677252577807051638178008165986112222433771696719238160002425020705696955496995401131568271184580020453709846134890338602827598263881494331072943806931621421333914938543841257983563628950106415303519241954488099338429608044042416321044255591708034732849984801925695131021338250909964405913409368798545814473501651849976722099606861979143979494946764970951237317850724393404633267539189333205437691278222271567897743481200409213865818452596642770330573587888859302939976341378794271478752095305384540080814238323545768938210873663744097856460487351392699774896033792227901149517922445837354925508555238047412817352561659760739041315917419584929122519549225325961901363910979847981571728246995771188841643627657730320880036697665354083315640319655378392698829618606079398105062905903609711121687962462391926064539927961622262900711117307643190672496816915463839618770318405012415239163800396654354826514309020471399535829786742037425700965038596541083605076152996441337776045078912828240871840008888499918051080687473588269798008631304150476388460391667890960614743164518404224660990252088031497470745280044682401926886689522874696425585669519333917937405536678853711122558425905301155972185311495831750689798801101516953673586339296566483469687443232068296124585282240015760102059498670316600341418248771292503259678671693133942417074024206577431846103426705269094961863887865946408466807005576175534932096954402154176182786761363147609696551359832982950785294400792405559881056869299674761054127079176097982016661027445218354163813121831101309084065121474046045325831956519919993687817285271376142912893674322722975267297107690462578072200923766251398355608047069532484819573960870558303362389786919752811682871569382519774567205967180813428044138128957489749492860912222932193581449113895686382644381434942325038167080702439876241343201089933064069021443857596421244065707684550775727962257447719907173765784455643267083960782231729834700102893989255647518058106037298562852474047073642967868502263036362853376787269824486429434548372742755709359329959756719360529101729538404828731880300406087496221911269011360737037925692697126155759616791615765288746166531446273664299540604828077712714203032108513184197238305594089347651331724673565551346981061113538284818226972861560022582013091486779326608694646597123138878785483345684304620519296543390466832789182011343566364810124451992303183286361208357258484974385773464279937610179795971755004549777911125719644702308910410477181477050005488937778327891962297887554221032275658305677807026487519622313479901520027066574444425218617353663773563064433709202062131193817847156284531360953034990771810515509040807620753834535853246368473017767783521799228560491363871028179838848856353624489762422594289338955199235942163473539990919946833985352822731701717622577429640231743199442104662401427631759894699659076251585831442158413306881115190634968860363363690586025922889180000287905791332810901193645116493786504513788956445701208439256619462103232250492995891605329964886174320156284854764944584359961477882752393242897793377739835418508437629233795048001136109582541788468290328717158074013095623590200401926546631351840102481604931098129516382474774083359800683885763286807457333396828948761446103780080228941942936174378188985159827517523026787285280839198742066891176986586808337091698334687329787205820543674439668218601974441583008692495844896700138546676674520688881871009046831902276493494039974172963989502736535576752915881050214730795478613420966444948866811480635308024873698118963159752808542816916201435978281512869451802798693768544823721892817502277486116070898912654421561276819753105478616423671956813640944177655138737588537625171052912835546201942816219843005184158660738391569769987090643688529346137742653205912499487159240523473383664648878177412964246937067072831903197475623881306147242007372688230037633601557516265187833800013456614843762558871954874849600175515792545357591866966959022500026059821482345177854191967555903920560365636160179811079231405076099562095678169449475284364400178447012075195549145997326517284429502436038194160753346498488807913653664412441520798844543020037147939303642008467797892280067643446035282662078276185127880663708351310878823713554753731898406103275408115824439660286310084251413633206156037860873024205741854087401268090489520562801684322210585545992040141202740409312791423736478516034568520400904240686398173779799289124950484540299608057874320881983674227850704569421214616038677780407100802027538739297676937430713283212033815347390321060325347028871648763516804749743489150133499185833977194209863244386050939635755967894457309318006171354190680806212615193618077727499830237429343255367616001210102098244752127486629533458404345230482773470297197131531510209301708904281382791262175381712466688243826868296438077186406295529278693799922835149332787837901017070585372894072812173850512865988351067823120247575886851569739471169475980708586258034449436606051898213635367959712622470625292497711188478209732190467902653511579311372904894455037024232863496375575156013618810176042812568551511494864730812351875843114164850353149525389985892009184897265723583881660082512219976366790487923893808520787410084601108375257598212748683812538744399089089980307105511762195905169078320936560725794029615826749934657655755983416856541472876580475651650045858052143443051743956968610291063904223285617673783828879978547788691770764246631986054223028913985928863566779039873922420069703281955104562763623995224394410358236590115789437744257933514219362943733115575217496411901303645432016861809210749447789330284372400834808458829904305010218027540627835666808566618960251981090411333568700327535505122565748151473691304555228539060158660614566422243915927751355506168182637186962914468792828934225605237263948396955880728519956065980619224829103551855306791053211562617794240557833310219080219666453784331451181392503902503108718368025357611284294927153054345317566913634693532134867417885205475649953302841406349868846099062384351042313081458201893470103184087311661485547975671244210287151370050370152958445874601876384286868734127681113243455960953736513660229884906756328620715970400155154810356372895528215471182487169410123760025989252907850457030635994579034084255164229677665281252525090538202757029619898975262302728156926110143085478542711088439062251434120436589733872355904401871487826792315463898340950225693551886009464493143179051295969623725219392924348336778032673241668428400095480013774957840151946236397587026238806107436219939963832562544973857440822075620627984959243512492073584857371622662131819337533842507318021942587743254934079766216525108637217605942535569574015733913219132368432577105764933347541023900952547897747435263100171822151252418211941036621206361639090406648841201010636630435970178042563553419970865864479821412018681170269273883747539815887684542941283638771890075641386895978362054228188476620099364843592484449388498949086960322969855226208512074133433017550282195900241320483033066717593530437582487536024424766646936318770460316872444905168777189445538788201028870415879815227379132895259970619880697005947340672276633324009672729221179314329469389542854787059432034849659138395042125231978314749240787322429181226044141744135074872180504183370957682427804063783056835713298206708240400357535180837796994425674506667900567331372306679345002999477996030655798954034623255423961146941485767102705596533677085842526434930854602472758768686743049590374885492714495003246740637468430394763195736707907432311567262669248631300118336687296774361607452182299218460297974154797341211935238160233108543625453662568220112114770102567894836990563068148055991721485171166157562187914949389870375446600877217658115212582352556100732233252135097450313034949042759165066331514366106234695049062769048797100056551593488081814744027775043174288094083194727684014558955399239798931988692101875815217607626782825245951291773019694555105050388869002552608753428078534058587881753824926948106457998725392088615932191184582002597038652718662988884132004157289343995429807936443845900550772031622624463941207948252528441115622259857511470522908510047942884011477008606543335550977831960687400177676436041660216410039865355247869203360671459962269402088978615762510538591584923776750144356696549339389495772078649662742518393935919686170431096834182894481687980784602219118010070517882661335828226826901657100729067860181600316813190782889251875702943376101672940602378811246122241909918734975938775722159948213346301358817938962061629027347182033775312423361434305140610475091839558244237579549825449705445900986763460415140134232663823695465560467388469019819779742049906072218321286330236122948667352923289213455287369966600608609762507071640522218130966592839435270151636619987188854982882873924056820141938529736686265716676777854877032517356252365269422856024574849171615382608445103262722669470414528115332608218073087096707171628151497734206909570070712524467142012064379814838996259072492501206429841361548179726072644234160710587081575732638533753065023197825204361387789504091644082317942996696351697278580629495263018745605640337092136809368275484697313791941265608645261514933028369766444577409623644437737978713845200291769455423468733381523769610815822019472690043750671564598709105809321016408981038907418355174339704683059448159338386611723434860660044725670639981389511688307012386503842904964596968929817554469689391485716652815315011328275223496634640250798654513871642460291298141264054317453585988513098030964013593239507569547682435915087087752378010661565934942034206120871853453718262318474836783609718772832541309076787838532588325281586381334820683818159136474810335330183180526353240610846086989775846103316999080481571161113114836820482167672252828880083520979344483662982747320899724236756349417494603240425131855871350260109310308285798890246917073664708673553362965042022065234112832026603472995421936965825231896008594230901520961618322779085720782142590717969208339029284171278077903046422895235512132462838854231408559602102748840191304431390211073650423248514228455152327748151238849176492495289424352042279943059208592363930236551511451620338981544169686964716310952945116587636476862044370285188240658460415146449577995411150818571261742274524265433030599614037723436583203031810592092121163262274626063603607363064325649360951614927632158824790713719219351249811504219878651744674681469229609832215273493228415258147825275926834858462887546973772687458168590130379496299702390327233060626228714264413281718021553812940726646228664458953662621808265261948396213252534706749881346810685855280810577234238738687816843451760644948251115165016561813140338036217458077403947602391673085915135936124984878217447338256528436078254546127225953076374154695890481700063970088965649672012080113950757099164238812899092590248324141591965719474642936988071780226096972942231264901083339154016694089499352334558502321310481830050303818021829029065749533939324539602667392392777724589252629859627755305960664425719658133603496948071523011414871673388425881923619407933115488820841467855126598491810637280355979606162823904102348953886559895838742726901679844574409448325581955185159650803975460306162003556418477632029779596763806735214852310203776353692024225783563057149723979730492657912228085385476869702789305351154430437696973619493246911086010879078553572740419600265818545233557121451199866048303982768620175933199047416565882517660399410365585081219517640828070011448065884317740756735155684781912007689978690955286100241358351040151021547984703878854617817529730757239775444985497095437968692749406292083993478203545266499408771369832040851597655428285327536685937481150107705295531280077487141374046128524096763680265751335434185272363900670166321538273185002475830104139533236323939625201497815834575401725001992724921896415024613887538995198227172302626483481203605548277696594930133297514882306565681198234870331412918340726354930526898113022679182767322235241665885912910331496369417437335207462635822830102140550426105844422303841826702568694715665701715142316587913209668976211394920252028869394894043526679508671783389020508078405564502662601493535165235829412948619147903202922462845670132207217727648406366799862212910988233422760554504709962430588064239177982782393288915819534861744224178325565229533319115650869076185875159680120604927850857209324238956684072652797975894890148034285825918146319993052460562785816572653414424860981143455701505637043960547905041716894418576106081617201677638990096776334670758735570681776680805973938446246217175640877787052091903752920229577031125223264397610760230679336557435550445554215142508713355082633379132407828371530478674015164823863750205446755095637133408263014684546633782647328224703774181076453756185415214997745476246004601649616177911993124914234367191348227614734073186106124834499828843741887903715665289071676488654174065384565374707920159040189831623431422741163073064901648626171540029873242525239979681478254335547418104930451087581023670598680668580855342772857640642632692692130135169414936629341908060758127936064199783234609397952745566439391872046919457146111902675356214269910440915593159151533305909102150131413333005627919197292017422596797638006148779569130378388574120577827409453040471511547992973608569245780182650366965308261221611420621677925203603922538245479283450177050767180332217355844449442395360840450846177538086897410198501404868954087533762992997114944007972094330653486521923405774122554537114612393729416215436430882294499182743211666559590534713360949481935811562366668403994176683232269249571183607999335301330685251393287845528249747539584665878032579807210117705299417609612082328743187326044591070675010430735362831018167731187928085971082969355317088742652558944142834244562890928534635343198087191076917198432052375260281040348048166319421983606200838548865370960878027140554585002790273168766251145428139693932902259338162045269789325934250089970724782174110757672346029111114221415402124218843965461427317375068399879259687831553094281853710943827833707141413783994837339635696382057332746562004167798384840656121529902160686008172463022013372370453013695682884847371548678654693214406272364093012524219152549572091448872501634138764081253893625485990926406403467175677157124680857255663071665109711740134996943736682323395740243236626418771788151686625824891345013316812053070183478840934587723748885967577855301950025724133695175742119575778477542147310044314514438395135470726263419331725089363829478320625755439023058836834068355360062434573920436325731313435817026138299026261449832549895475566400792273059187565669495885559721463996190850740917865239326554907882449802740257726018444200507463059104294575729199674359303692202045766365148930830246873689463102725654924184737869333774829192666056711520085153202572854158917653993025988457167994450080339250811414870881011974101409449489028797859693192911130875323665896309988170535036857064620795342973744958734658228802591169443095732890086027550364381973949703453185183140553643571433839917309914380573594361928248970038481796650758848718770994600245686654036058811698444563817759633646175343642893679611757820886406733334493815761549201996685993385025818819942306229768455611060114669112007576120618362087068444656701101704435665121712113195353891933324209643882778774068281632424067051498171850631747641606811114167545374867534348810003043865009172639866406621928220812712228822177432031064114793331902927213352881559575669054604827457915362077816226105637912014542117958330365267285274616639904501506490483414079989775752061672519473657177071952200814063587157315488286953531154417139829939401935685536873338142948427786453487520039546226983925185664660309279387883081408006079428197698942230100198247305074886801199940425233994950217790277556980419212992591127683963599925481286962855351184103462630500352389770834170648350538589016784970313419819735708032479825711535750826593389592103206233309840535734589190982912911867844595673391968835928963208895590268359043046883635669287569286161184507529881371848340770863090635216031160055802596802071074883164879636228359004039464188748650030701713794717636242735097536913724141098135051978599930281334511279876328558070958410678050541151602757263113363055198803532914385197078373864736509185821724042992348728605568218149411420691860471910251796672397266119432862318024791626651883480225527974664280423167088084123634210302920482763614933477611212012654830298000430299253426623172270567787064804152226315272379186929667200621498322333774722357968540796491216691088817578181403069926128570684412962844338724746184760975493578755618790005777820861606935442789171744627331193036316035714210410220552443251129825810732533724100458959368923019760686037434428929259774100563847631268086184000096549948300247563672028285426049163950808654296071849429883975656058748154355330904201771241751562186090876084434329089694545661577191392997922585875853348213929565053902719042393392333338122279662493489904890709300859153590429047334700185753874062557338039752665690748703385455914308485647269936415512885811946286500061399593490280642482208531776366806929421075815609161232360801736753678448110698879367506283141961188403516429101215106162883814938180878446189504484753987403265150966711129094181469325769745191682728318329226409190187075157857935816291707137747567666756599527564116983398156651572311263346954828260294630505874375689091697914419989907320174706036246644324218339627927623432739625192166344726177687563216102451284546112519614043340614775854392270748184886395809768422631812182512714733151666832638059161444369832502808910162042827100735200168436171025973140974688979001073063841659212769570597113227764149492731134495345427167858676671018745021814730744113188599973763956723793624087011841809819673218041334484189373927146715003917655372350356165630342951858367987826543497373950879472240915570954719900556909290231846246120514647172795767183282542455269531889286609145997883981385175963495591408881342828962649251794373337435545433546445754706345317401142084716350714240883776079981811632467400588621630958440580032014524951576300243643697991349633894889735945563066282379701759434580041846695386683587355846501637568359980003830250510971646416311559547980280044492745897830913706402031144696421243867818469306115972220524402061798519666532516201851550441977335621593853332332163581981442329334047975496043634606721340889375919291099079016908390831407197787553097096529978026920462499470689285368395242314129161237781709447075658292639544664750202228359334894773190663113855581876120142611501750769464815941997535700179903745743305552405476809050589618648818543961197352074504664387219562101693149751208454721342127218292683126837370202906069587493857916849939192391373411462760670282450067354190447796258938974315422941996824356230723507315696005135180826313556890612574245086132535033420565623399949631703466434579564038006103741410582186201919424509292211852685785013635288136648741641941959044040288577632148372171904615827631826458288236341952701403570144002838757754082095014065174256147986912245001624700607631850188523556929791634158011631289997161131081138612046374816111667982689620628711970372593190675992998180104858835215949212925273710903614576857322745595520477210249584911926860163462249502974229111472274170210797080805415653647116529210003695536259417540925288585262953787234638464154232896464087299932219717915477062098054342584565045334741827334284312766184508166100712789521047080665133812071251577877871481814914149113362150561441384007710610303193377855386800271068193082801843947266482417868297733348698724470903180345590491154627230571495218507380509878454193803068474046214706445449008249990927374425725129640768892568035554142116591707318129486927259590124515026495280046699390257978511561957682544899835009346246746614124621648961547142354268300253424560992251470039807028315112838838047967392001998788193301546095331208486390859291085329540345605134197125943232811540413368217406738920534540881934074338354216769605398605540820704099311856719691708292952083355114966180077607428948940580128768906238839242220408070781678940340315980383050747605561679204071179643506902988478585508144603769522321580334477551439776360297935988886490562756992144673184423606774710823176624188007402968490463207567758888383021467976571833624805298461083657164233536303575771908189223476775761659314354590933320606297446200585312613673095622284896981532773476604638167132131122654879578975319154713384527414411494024413533781980744961076542152993696754742866732626033733351253574061594723899026015056244923713397400718192125645843675845179479737672286110237511495812742220960570991013366209309335578225236509675170350074802890110617449938807455137834515888849712881068999303666931158931100988604079196376295534519725275897061287420485884978395743133821319614280342141621731808516872577879839434764239622529429707654978234562230857241928091902540209395683345901862029195413265879485923243757140408189222635116243107219072804220823712479300861444981478814378637432186793613150741583946993673036590917566537109216239414873072311956908187072589419143206128867516281289431046888704674747106938151640633883023305572672628292942066629975775058964171142637296607854438852299583696629515228560925112000104228015982370854491357630205821928581561126378178264292866304930343781376211426952811910167726082522735409469749392486115485572824480352171401864423717932372551518462092297117858159626670220789308564716764843264769211125404657182815575074977358006484476688815870878617018528027468045326196984423651725761758131727737715976632551797386533777292732583124860069529466946677374078896393648725179110405710417803234350061227393119576087488072439437720217338919789475988912819971216267534605347738754459290211283102573987150269661613734569554806170574352165282908369178994717958918760396974570980017602842715727008435366333907966331525522878228479503958973912995887593429260412328611932149486801705727682473218117598961177810249074940024488085446376617889460494678519458627302991655841114169563473215685827917279400539151509313251859599240390592821840882786710158570831184689538578692033075166597789955780939425951562317759469434207173274987019612456054725033983546080162044271126604237469659109535322100175439552404593456519218181970908350474952592316849849785996501611495412957420881201994420568079490010847878681950818164223349847867086759525911478138284355404307901131150917068880963615526521407682257310252894772346190446624843565963196515213809539647076319932455315744742065000046478499262609803855590392820186590342205217108627427471478343237467443256159302848533360210246728324416216702887852346167955748523657210306585239904698511935195167134525212971147687371362775856668210503406511431338482698948284579897533436191074441340432480349932445356931464442388379551542778857488836236231205716977192733648013875485846968562022553886191613089886315944216806317574523653138712969423551709858691394050709564998474209363462304909080663403566669650825102677546715051319636726217243588426287609117485035659314130349421062029250694864657109625306538178914095819097675003225887800517749302846045248788301363000026814795448536555235036845566799982141568541018831842787887303411291572251242929436786117285720332571059648143242921334891500207673949809764856986265150019554753201524408008463793706089440935552909418728080115134931807089371202442500661535000635253795204082597305735056835255176065480534691468443713381962732695449961863282091293820679315759580726834281238627594913118971030579244531488155709144367891286429639546846508115167911416673576454631507043050102735334056541448529109088640848709641221881024422317064854046143302766331585564045652954139823703687342703694648706466520770576845024264954476179134706730137827422712362026031874176123636150992331571855539968136662177090250460966654086034166095255615187669009719142897496359296632015259918593956971375473073802938520012521151520620798817472185916943938366600004602040834615387126795925928471799819014406616217416764905599978569920044748375323523654000832838241304618649216574987443261697535524943108834902749778921346351940851391294025344187655728086692050527703848656897752007277097519832034148201123264535267408307208606708167922979224715877685212001081636443085544415253255417686384676159384918959662367411110102113911579530017781917918703828759871413143098316571539234829867896481422861680997321742181515868746045718645665844994572393996503367290137007990492549807336607969242910406112127590598831008834587117331941000055905789322965547279917237900323673557031638891514318408634292597448043772658934221162679011080364492818746928924980530756813450607652458099741241468561592384288270864911556196106205560886440110904151310153648863555705862784848207607242884757838859523477012703793992882735007164746974058890094215942323001517157330486351676151440074447026000520576174330827426491504873623397552167226858595943000462270031977572828060811386822970759716251308887702205808977921814619675946580486792491195639054904507904572502997707608967242266787442724040789484553052096889065017277959997760287561832750738690479246567793537502859873856590395564496324217172571568407479372930901208321636324519330239115423190905290158688566940730838733980286718263889856546492551881694252005293891776076126643237549890902744805803798751110999092111625872879008706913761877321288542812299262269762757631551615750737090018723615479075337503396715579438039939232025012505293687053614356858877343774807184527410375154626006042929942873621129409541666330812768237375481884281047940151476139450997107702384411082278164438891026050370455115060631564390293302890847877289282678762568946898407471852116666876388963149305111907009889255917636159480285982885075733173456528261176961339372361090770561576637851498599428303759921543937022625223589968895253220719861552301496970905120288827824319521439513543860562415843121339126151419237791546649463280929922637419176217805250374953382776479791491897266400125490217663904062733380564872744830716728832378868745161691387397219648566477737037278032736010933351255102061465129873012962520665887562783004756212940119122172206516077427156550817169381556110887762092045740962501743812046217533179033128777798164718032570530251255310269577542462658931601895750627257535729925920101404218708119782079822381212267692270422063540204548576124511536201806692739562198843144924115713271178078438424256989210992822691257223216292156636881972387354850846596624124102463550743779036517996799877349450242294948688717557893328761500495455298365771764723095926395552346453917796621913747687381709151088069521711602657747342353329066675154763983720926939579774069427285657682415590027395718802855999104233792227367893385423414324874389319755881639803565971058773607709400605861489845741609392269003140963531541551044191086426505026888952510315297264736265070528498121859164863169781253974878647940502889047544396683522149055434705811451281530449104278935310654628071428887418510065062079985953217801695968410074961855381814228012900658616861584642231436642831933582732490277746046088182324248447872193790091171513839288221198047886552615218111697269431538301348265753954064411138896551529620977648403062153375199837204194745579208116640108786912902290268803116696143166475749510923409769330668645520750854062876445253885641483233005871864112484466410386460435268193971857947872160478564136312994002766392857965992462173562483923378287237813507621421187551189533634400741794704981013909974151596315091173570619709095611747728384277146295285186547754507619583812269448068196028642832296022762990087946672486236404635690442105110606261812148929283000391800647148583782743894400603938652591176448357643718519589769666937807624592788156009005517594963212485831617525790821095182489391823592071815418553881856157816373821053055717040736178513905479939087620687302709327487194929610453486510316449342328074450523651022441526390138275841480899946242117498597818519720365814328237634320005209129813315400053632112317384657719212014320499241580461241315166525635376743028560824719620656501397903174885953351470057938890312794585882043566007250767380627771277756637803841418501985538062326069047337832390711443000452174073700905698318296954652800217567348417606484624799118486451948001443547452367282284128526028099288575049610392833790984346219079804162628568695669564499531326433163940449506019770955821449080004691291430874914493393599843959026614940649618052429252634010223768020814995992584697200884268737354331409771897425431203984377932700513860689679965206010005110844538969065466707032233035391977670402570985188524827210334065816469008051217862338613571610232339729389001899566160663095510906777691175805274710866564850130820813813009305898079216672879050183557671087479013576793710459787314848190925856362892832872587250080231610353068152723274482506556071365231546517029043372383890943619485901855918008804326269365716673384931048525932778677815417169998395769330480546452215084484507925531539878298464711016604312559267896351399610537601532290809484151359262990051447609451357182651107740596198499349155764673362714453653214091114736316543239239747414065541024837731029957989257131977975482266094821946778879491885026262192806908832518867736052268965597143150056313207738582910141656169631524081492468584863832671012381537325525471600974066059441709583270548429736259932816849824541179527090639670954659530409068368374873231618912528222844786945179876830309487283614252945572462884686502143927035231056213358428271912781761546852165926194609595573051794008461418924431659498443838047883000375622164659397442350537151000955285772013145446863192406299170588789095418556256732403168849834769536265843290915388218850655628537904826995762780266314926156432315974511104147157145590828974240986309283420100193692836827416618288308929870744381135724252679723532139401614531565366160515502905051171336253594602602463197697695421583430424356142803647455747583300137025200340303502045026413886389191931715540485304707067179409218023155347831433164998974414931152053090181790077114894369050839529049758524643921222763274649029303874206343129795534598135133243430000183836023004596392877130328432603944345457982936099885503144791693744371112727403291305006621537198921115033193953366725626534426583262082059941299673613041601661245066620903244110115002218573147908666252620558224859274522124205238116671889193803123525275325593294228597353530936266814177167584146462155414107672094505448657481093349038168275736739847048692703637034715396149725976127801804482076867045708880697328696527101221281089869536608460055944717543190905676498239265129311286924232531663594944749838951480835623223976692590348898219966689523524990304307275117567543720380970600470470316835370940676220986130747119538323768817944895755847704605404085685886022066792896689501458982591080778588355065360056688859645051732620424046067269663580515582292380339406218605220100273308920158378260889875119974398644440553360078403332749314768068216263417194354346158999443610797215354675205216496684348583312797766648864814235987604222484793841111006722832645628312930408406238652258053436751451374203304530765152032130255176207519192076141133775125572946894025129756054417576335234019493174122855936593283295241493719574734949640399764210678699410184578312096100636022754399460329519624961462697659635304267166252884785883121336193057598549914015216245512465071363040829811067028184374452442377096372986659109677624000492833255630370547017100666270673269970177104955749864513511582893725953073170300102991454326095366002922705399584450984465688463669278771981401790311646677839957310655013449722915283794997886064573345252831048861957599339196935665880488951644968802903544252264780196451305974165653276115026121372046252183113187313464503339722333815077231706904631613950353964551436208930980835270878590222252809158100767688457545400011612600712675524547520887475342120809742034550544259046558723955089144794689044055618657317284551639132769105884769065122267668253193039820002510605857538721413612737509892381698328319000547505179269617003575762268952730489442530656409815176768984063428954141536232608429027255976054322125050188811265484374569634084048320304627580815385013339753037604720501682380308491712367531042684402644682000140905652761667760152746176918798407771028853829188605497576334127897848458755964185734238504145987305688414021387111782533032682662926094563784632972233598538861672104030736497370348852074708947643063594872239601848480995518438257181716466993311807363383070330012268568708452341694932705742744298747291297229425807675082199685210392336897183375433237894004166570847216246906831453658883355473502442474726595471277051583896382661165239055281396245789206176334504862528175157684597721133144786247994612251717851945104014421250008181534450866614113227158780899163060397353097288987927648695571083745621857303300968669431459175092221137290612133723753240564532382254748199029460447293295822427682083828374122699637459452203842881365975467456584000805348463583899179542763761481628971849124905002487249893278397963885920520091494829687400556006794631539896111060817145888591607808942028261375857847542966253466305358903504526500017780690872443907920909373966440859391431426474153786100382589512462673473499751387444702282563527257783769356522822121606905585406314999159334324649351567444446771168866809996338861812855930355315077490224675382532379152944091026122220909952917346636313381551092786339514905071135012693510070320446474362490473733448754104507935667882455350925544210670116566539169423991515223277422740260691440048775389294132181360008875272774016813582976592787694399562628368205819690667209409523463476008745034718572126031174871073146388096762046852956052873952832303509974428152520609924769194886402641713203034259258710252012740941737085393802071362217785947208762181090975432722179036064203060215325070749013283469499666628073641542233587472390940595073901285406235614512596823093230732392269961139793487964582163477772031979616346556654280330348356808788300992444790598359946080863431903007585985041864084168543259543453909633887115839174808847983539876494014574398229550942729591178924481044935967199904985440009498363702575278725914941607879297265014795204223925122130450880343839986694599906127999819421348963797925129329300657545449847235671766117069918987516483540758615036294868917394151471953672069054872534185890250664627252518168467858925596214325837322360638136065604437272243985685506065694778466974240212547883079540785947194609474528428853845694926982240576970308184164230338192164164073041730816134790659693872880268915404995970414288833877604110104272544586639974238047498847960074070245295106453635088774095938209008834326457581536443789247778355313180065662651035348054267971770972935297608683052260938265866424038955925090429292924557200114231678701197555270592940370269625580181847578331998745832845759665887127726660794521169317568231785171882668483671658979957002301863844823194328010116481478316916873815323824208748629732736306621756360639521706186290171679440950804264719017048444944616521888223592022064650753042275738855238841008573096331729419681321902359642382725997936894038598407351765992990831239654266432502429976028027281971364200125050223336772653705778712723426554454687664306300151595432592498507770291914172678692262091999879045807706906087708709169976054756005908645321892262265974601958505503252284850425927407398002450053289742766360427031243241420076122901234920730113013503271140540041599335393529127050156863121036175607813995320909004591861662256544223408964289912896452880157192815566662377190609371204878586470287383806959201274775540777496344385478969040477243558918589707257261847507926098107193641994056473403873751194673820684074307689141244180975650696473501853404596055456706133105965990015073931605248444152140782802367873581211732862331326990510795270154004949438406246347855364865390931966830582170528169215820332468361064971922522514229895260874555433509893989979047333103556744565384745004039517363939991124881508033026658621710893498307764375928867351350846990159115424559339866732534279153850862838725898335121455337090920811547041427134686251272434355119276704505345340461882824998596843918545640768647578605732656984328515366707859477197481521754970168525884277437302774238854085023237382974589293316363102794070733958064376850193107732275442632712287460265082716886312728341777410976299011924697261467960863783501139560330013667148369520380485822135950773145272147711876178568189756566234990658749721747326354345185530288828824553825921416132389120094409477342825167853408456318617738157223513335833631072833065472425376476242547446074566658261692899651554132938638452197389227047819948033266943064393741579023523638029113723739687971077099948162890018415752098554890511223072115918773185699431231010675720841752361698241130762085652146962777292152739542561418833587396740720151868515181020767747121614057296753856063405806876429707917343427415982825886822055766183970758114149325884735328782943388730614745423773583956828933204088269775171042553173027597157255661676166856595579147610530229863630521969115705640456925152759585439871122214604234775289834073889230902575157446912848180463075891685337079556618920659957442833740502523426812144803079823020084007895595941867438339353485274617205825405307628708127558025197917669594966608864469231781897522781735940957676178762744116973646755820944775058493359847033558114428252507542569907258224638835161189277414151511866338410993484608589841784627599033999202589399031060418711574260273838132443535696479209851544202929758107267301735990539774404708038816826939421715444915211244032542830219153469423077075285415020363954453065788653949147720512347341845278066670028986755658868346407205778833839680885884031720018923701399869159883598720186385660052582328715558031009576055362006518832167332323025911548217344138412091752572175615487038850498112417643536137862006551581000306236329561215458623733178640313767183979573926569959973152352128550240880285399055943411240721018666725369274906699057307766999521081693391714922491084066928116797893805671441270740259292705509983747959629369682275408088219109871943863670211419701816845809699814182486495342902664785250918957922574186109681091578430631146255942198862765834935610044018811485389869279765833201453206092932286630322738618261009793195264773310456056290081584718432919739663043662826999316337050194302986674753099197671208414763203464565228226969190942011969148042816025129400265464867640435206682305762031797269719469117886685472719445867215011559974777983153631937719089084158223709942100471107918764858024337760502163835451158322997724518618752509153046350941120721172417033652225671201753680752535830969500957258518492822571539601768366061783516288916493218930934010540456724992907709723585968741448868010429069106694332196197452791507346288810427679189229962637375798237334623108156818144845048229638833192865571347220208287840310073542319825819649586353491681171901624278655585586369013633662205683716720629920006910527205522080484511023600697094681297290226514683252604911711371704372069452375964470812296783368356418552366765076875049375441447776506295166046394058452343191441568814781011820608288818992799452740529323701921926325310093661899241300715949234693297258180186390294266684333063398104343100337935735461362554299625197878190055780185952959836167784600623681961952232923933027385271179941919099510265643295400538170083753758059598967566387518307842523000460257483133952044848381767496711548000579284939762404776151021072537067306424139001042726349222003754664347457797315850903600606879782856670573993783821788682735277543067500326726585559374817212382259456274776615132200364635429969832763527234970258484265540999107694752303871172127047675108962500218723833543755369975732790162421696371127058453553569815683683240052374041193180660637434931458897210594030489211328739504288760996719389878150189991880523226499397739144554109866086613611770316304578843393227408025174518601305048361770210824650519537958327916440611683787048475708940758431989810323340621386553947051740806654706950222748922954449445392100229384002355629374621027111042940642115070424538541700459235592701209805511928111939008319835791050629637743433601457004698958994366815830685592348805701544769881982240902731223397294192793929218339589888507844004364823707456703322556177631706797742161071777089548926608938891336350633395942493512462976577631520875139253435973466992676521714508729252785513238819386402246431106653728298889692315195257590533807214570606083179675264340673244616594838645687970345264191491383858561516007861719576335553802513263810112191356604138491653867202314321198238715248874733171165976219605632076908857335376746175195732057421164739929930420044621513784247908416466515152277329613125359427726284164270824913329498210984886632316683158955247513410829124501312116022789011758027315913890671088567004076647501404810380192438675979061758951545248689511074670291292839948886591067637773465207749111688951813869030564087330738183941048598206580160433997778339120471883494623297739502332277973035464263789849491185152863141019911387135617766246923680652390615551332695433909660935080335086090286902103806965535041687284145808540727358956762764531892925576383681520049160187538026099871244825539474399439991933683733849131366814064274972321288289558595470423913959731626750654917074533975832257992928995382359933170829727100180238260644857285498052822694938981826417602359499808735615968848062938181198079754029969150922305987464354889363375807857290050563332217854501822990971015937741157201046192976403575865932560732233570995682727355854187853372165496273024862050052670264916340885880191685769296024007233238990653786784218925857875680857315637429711360330500050831319271662710112116161790298970386562134006557935300903581345202097102728854090177589257154625772070265291074590178696384274750859136984148604966453520545112794212957301284116764181676702597689341086991820333300946762657119952596254119786618295863709127170259413806217756675498318700887196152513891364565219322436287928453950928942867025072253106837407106457723919018212841227267711426215422444361849977562524652723426262698950251815672454716670535975090326638118628954479083764841670733696039063961134799557970699730277673100031747128473842020313334149233472375721243471730234142587566901916790449513652770450507659021010775524764176099232548837698040354770492301485475373336033161648169112437526944435658312278095132851871619940717746867555915402565095802575472721391653680843376282027310535426081982373856340878642135996109729516000668669407177762770005741900510853950968193142949332424735156670033951304737345042111414769347472946069855122219868258925236945404376369645059263465784502522019555844162140961289007554067719792287020330565726978520042690715533271193828522109322904584119876021340458453093089434523096371221086837664450093417289401086581198342057804919935650126116450894920784849384842836831888069939719459203961239673246765717664744138309286174965492489221502092348185784559306362926699616247491358158469378858453375668499387928340340919562835768213967420397283712296129543348540899031069273849374263404021784996005916604713812459863424868693828365963948368331808992448240164183357358066124154886259715565769389655124265985252341459427801960426706687062299366771796366276742283161952852005446175053572358001143384522183121532487114537652530300732132773715688101161796913671705718517832011834499004354756466814236623529029078733174601846955638515718522927805583164720836338317101482986824938143858659542940972886092496165620550511552958612497462597391129382307002613862996112744375183963451336294535236862816786509713531010264449202840271604638912523529018869556646132818065117493716784443935718790122736593489828881119524772315789772569788697093431515674615847355764384622700115017329358427088001710000384262172094277715385953028908965029144614980859970097783049908420011277831792894338480071678866568947163660516159565641615114871324214541614129381217306677144668609245260782572528809665251696822822792956923164481663266832981681267959238425716109716294333328192437903134555020021811551110298987498102521971962265878882358819067029652711350214949151788108504514848855097100213615589613503819824540019848817300001473862586309558779858961630676498320603769600578364422723230700952128606806590271604524742565552814525143306559353637830034422833503233223738630318084949721814425977168912851281362283471140441474795250054376587416118353204928451309755051399225934502657325138588285373268372827497052821909177356550365395402258380476567629775069496257630796178976331947569317591150732504548863414518497910088786325237089649714820497249429111869202287962078409474910192213058990370594528318337598383652324499221739640853007445173122234902927110299871869089034591789470256404580028073937540548335809251907601183866964540843644599409625190132054478639211259083116541265060039393070552316911799243362234653627685241947048796767687133846412879162895257175766645854166683361369446209178792703147251681021534375710588034228044079136318591840972983981128099952365553705782481168678322470392951291859758667346214844619418379094928497543361860621016299180238031594177258179502549496028414342206104039855036924955144532018499969743933685237372596135867744659186426324879695092890973751656565219056243582770258459268826168480475021466773921500279108134375852149048065347830877035783993069848683134998996165017327411721922521501411995745452828816291321767397692281590129294642167774690467235864153669000511709878257725212901267499160127041835523832937743193881802861649212497619734020839437636561937916884107728374582494754683989447007658404816243796342421503903724921251251896973925094037557928372972202708187580165471212140696781236444811630143264061374736888895050780246203965063343730958144097646910981638251330589349646328753386486103729371843820260635797441616585761948732596584421781414639225067584995747349007315662985896893139028142639824163831614205867878875593486188613365032859343125977949493718094454646794060545234550530667132894637102287071147497037193425865380080591612892693740559494714021018285245539665925830351657094506067154804989996162468747208895474792721530838146686926387021717589423086450493252852764904594529976488680892680911470755375379390335170089966269075783612294044618215624795766582429415543160240227056752638816526925362761547201420600967617685176792527393172820696011604345992398937463732306361078643686113109338006170638116708763592351895026118239952156014987722115869012254077026064205461903939226860065943253203085562285532011847321677553395828784602607934505691654532764839732815244317119255839903631439386612516765492976294299154172864712550088708841205670790392827269389278644512583148384065738755098269776151714698301580460293426319256616664765713580027796039605115718325168225758439084434073015494041246541485732876165444413737947039898897091068216222434115322005489995214030443079464701203640324319959225065907112770821180837926180014432726746612831480077883566219559956190065675646648463867810298991386810202772014089746248609299198218646563949682833415115291994770882019228587154875687017497581264493754513031157008950225518510562682866483126790496276023061451573945451619518963427982639682680569623545541381204307880115479524411482944410369920566541870129842997579954356840120486985930139767513850911875332836916355786586970944280600422318949316183380170573651612037069324288878280990246016313762151480089097554869127985450342709160169223838841834975955579000609241295456263250779502095162851925049674810709587660669707418217706687918120897346182917705222134769099069602836045284139657955114117468020733434694040501870790854838893561332497294006480359945023597595582216860920185410209854789207809902091677208306383518484067482122293205171356242372947317179163889492677258401913143346537134616674137569106245233593181014274610913104595896764801163553159232699363950246345513735112152212489993678812826353205328190975436990848934926188019843772519497211107055846573533961540696079166566045819657973772665985942722073685470405423317490127023375509626281992632283267631930138039325741651282045351380207879619758199081835552731072115142487954223861776860750152752403572537003217507474814466805609948896867222633445141804626637622240064066273403956675466101683360267751290516030021684741213304601432070184618111494544716519910736314528435522260548343369420289040983949094176835046006068111139549193166122775851119797099461955523569224815659585703917514935686680368251717084617759372332518915765496459892126068336060166339747458148171014842587868141971537267434542260657708659832577424440592404830857361331946518999090976415701711915523337317000888146617750237795729370525425838881475367933636570969949416624570751904027303018204333256463497341734903895560381258653576787103581347134662355591466944591967774046178598386225101638659884630812659954568962641401233380842092191782740232510881864335857216728946726036596213119909880777508198028762377923182859976568901956300241423198895458979018473003924051271361078796400714128343100469175055283378328214303311570500792972195756892721436216415802459348401286992384324917228484938478013464768861438348152986726992284204461168571685882521441427641898921926493371395483979310287339417395342144231601978137166372177719963033024154845098312181216704216129224619241580192554386374309741488075479453834864152068403081874673842658798353565754503050206395813752775404527843935132249440617308751726656869832795271099639748909082423051391478320287340283408994442969509507856982981382948335667580667984503967274553222809435408278086788015488889352038610944953752058013262424259249200631994303665400362083513850910256417028256919764228054826108803003147807573433174912035646151643034143531117013792220247676865000699995715427655596029268117303080503142374506258586971842660230350260681571063429257320040878491151996861396626046160494560848839601637733760062645167083219896955122007660084853531370822288136852789481986831347294938392142355375417082317565501791210472987023999735886825017830854148660883091030107547552726761100821103190764222013045493358600710133336979104333562435691937818484926277547911117244622366817863269693203935978893202689907036319753663707944853866349067063823888704751651488738424979415942741129505054239611735094814366173678278091695870024243803913228679378670488125764720428398046711947193753016689075101434171863062823155229733989728906947031458833842841226301146762861013167190102816613451629837464468798182379261216564746148142373529977353972492386185645636526558962652541377906849586483487371595689497522226707926651390548386392701537216858796883225425967340780713158546680430888281500272561999244405586133720520716186841156311315774007423220265673051655690055900205014341859639256968361815622817607453983858008411611954570237202606054129116728406161524448864823118759045231269364350715744397974257373536523527770014004315159223333867629016915847159313962527592523090449493791291000385019154710025692499623383078424665826216350304668619295550871464676562171241456562397847081233188780284565909031845859708093637626421990342929632952948287586997450861141450179839906057099972002560184020172192239586159091360341445319589692217284847987195138836025807004108233469909149026336420159721741367752674725171403568802552259166744980721373500324865109450097734370169808243163868105477218857499605101401596390874500779408724165304859539126315374008246535438759441960890917840954246296294604933464519902985095943076335560563310428112229556291473258070429493462234497489386304501200035146169488058367735363168902261770426215367994669394049330472788217115672394709617864956253665748592526507457078822221857589798748712784763958661989093935755698707872626842887940550219752332956368392578617875503780899502932299007798777953958824398375736095019796075522576777161600304302785069044644455553617180205799378034069119733966157835011256811344210594421810977089085806960337443368538975885346176407956828587753073350515577972555813336242486043935374070337438646839326816778355467740678349197436098028020497369168418306764401990554166566711609862926015581190496884894540254404094790567066797028065107857988708135411354850538781158183444435436287976805077243566167132733942031307657104435830124392003723889985573964601312024958298006260236699274070974532136053335134078363089336525008562765342040310216117803700803594458686994099171309850338237444978924768605125876093453963293797604332434326958123412518041791279755756432077330227182977433146261472837080318017968696606227751506713248141030261661191050321990739992904642858092343664152798759825486201397354188428294162243793152138379545555944687759301346510184067536467499424985635798730905350954800344161013055247930161487743848798733558488668947359305769271774022229709991495425452284691674544154943607022173519578951484317023116242140132436569267994733279697242730455507648169308856703763164663450383848363684945802286865182596599377412409656380928178565211565745243701571824420458876688442691024522055960665159885242678837970608568103892545991563389046570381583809848923311855171318907398909153966688869074538594108970127619448449371218153684701410407991574849413001789798229037631243560385241968298586274017839055647471851607057342406045877032177563907077656126210644414956661358925342688168965573430333390220237030878354870322372400191330726734094855501444547668838450124766814857373610253616470251061892301500030755503456069486901542719696650845229819726949471188590325037248874797964565384286828067589044630849438563806570955992817383727565083252885104978234481852671416492988108315299517863317657443273970147976693517868732631512929555609334697550111842345659689375203015251036666539278941562351389047661838486012425915041539406909194449273408157523192864366348543001402608838469327630413049793199451756087606550363018952787722237665906348377370657341649843669315293256641646146375988028544740500460767973016859742290256328808736857052561000064474373881874483961678383947897666910671154965914750069902534034795308015677221366606580252529350310413398242101337831274525021666038052426937297332784727018993279732772222942768158285872280989878864014590715465061737529678637268845797707170947038198000891480541999776075840558056363997922575594089100444857868360961703300470062157276333602680559626975479426391495793674538515928608444770860417765493962097001854446872943084873730512855459609789858660259845328106055834150980250612518342605817870639422586306720511878871480799150435327435135758270307170536653160632496925545185307198129212646847475753172218517945404047111564278158828949997665540086374843626042040438379107461775895341915085737261233373020428122689380740996163881493399021379391491654651752002829889970523822128410034771678826934641888052758340183968718339049038670892482692367959840090166086372097302608522345801400952080376969590579241942125106720451137249864397474490363099305023448356735597866638206799957528057254073515531168814761291834884877293594877479189753795864723866290107737765295482125390041018174030915097187699298083923443137002096816296116588506861846950841325233212020425187704718298723853593925887991552677082637823552038689423544838383965671447457141276731877431585422831850970741836133067727785659675440496992422922028418812940969094313755405511967584341620911819058909016479068624524860794585245972098314303315144706011638752129761116718964437118208118700878551481467496392376387580185205619824582096029987816664713114077860915256219162776166304278604817852243668954604338561990328611764519619981212453788514247079862397004196713985251177949757010122263364053297425473256133925727569553628048767271537687239755119837624934596006554568563994796541180364387081257702897648494904551432869214175646614710378198460864050808018136841715950554093395649612396221191402205219978377951371397024496839156601550178540388359126593755615362748124116049960002221562195363729608451418273348838517095574886630842770960442488743034952388842500860215193283435185082440671546646442596667439146629062699571258105763149330618642581449098328286282560184156199033919389275921464758908498334523363232448368199803954080959000394530729993091205441768875994873982270857522650834023808542328859555792323472976521182628781815784040166635040050445302649283239628323038923667333422217029020840684020058485521010042638045405772149138003520505827491923566715210648071526440442508166243703286661367180680333791559005771403260327241471000186445301321045999308993992642521429898103712752077988537660001056521309158770580081095898040052235961371867184333358495660042974418526877977090288842653023006423008437722492981339613979262966505129117677399176436966609549853476707583695767417901017694306711394880017391920595907676014968326656447494349686997829606754719627869116316004666597819504597743943441665113089986870271564925685807319140713546832737381353876368477399591417540791182397129564396177490565416606759421657623984561872780638753052777466846470910437743327385723327834504904607372757039556078610122345360581251933831324039836255470512466768370763989016818932602084046209835786661725526813085148454118119183939452554255035351519987602844307278179347507475614235684288088547016159423142362875963489258080713879458510503182948199132462634569126290349407282854457500177088732706536868856309619926756003272642648113712776443275982889459501921926095189652859199580531927013313015943121917322435306488735023035423319616599695781949606474652815670649082325080798940256234433420180789523370361322970279537145959189465507685159758240089742847098166910049187998145918262802689147343630193389903774308063535541518416255793291515773322278454740364779404159902288925656423451267065649387299482266043812017686857638887311737295591502819024808609632118441738693330233930273706038360334543030300159105870094700869707709138994706849991437697878432065407713875390139483986715695020559271923258609914187676281695259253916017216443746700474126649986417606298185548135289665683164538583446167370473503570687831967498494472852154189355843445070567915358720262810263544566889544615999585625608244418720838692030145347187101059595672821662387852812692712228430866716990491011939077853329259915547412822221794648989688359741112186024283919501748572638741289634444678528163421722430599052903820960977494026476032371434619047151818803189841191691643654425224089639720278913355058367257987130875084061086321827364395641043903636387651501572370804758636146574010534615138958330157302455984768309671842364350076049760147587719447801829076130994819549293148703613047149701455642180271491273296352800781836400800838956356170157869289655923187165885977844691124593674303681545342170810180744184256802484757282593835539976446514962981045541433388737702314791640059691374217355563718706967116599592578722216857794004095122804980153607921432579481963082436760641365663497208160462241132975045603644155662405720373273339546189884470212197128640312163286154879492476404589853900210851572647794898042697432214217013291228130453980173792863285967851550614329568466583561495019371061285306619467591652638232824900207850176683283861397987881518476308495807870689064186023840476353644558579423920230368693779330440978280545477799034833229740068364565117535902174936100906230293729423048337198556635004438317219974973236547598198765640352621896354874664913685398125415950298135459337048207002373281638749695669702486232071148875155074327646451410506194982668250437639988753411702139635486438113564865037428032330173068270081432931205575197613977823274765917761999328690563853614291196348438434561718907257801889658348518992359484848877837039840079707672751737559706442191112245555166712618862767061056031748483081653651286758877597529902834489320831627498474108148845292747299768655711807459019776796105751899091717173273535840686674810531025633776322274574824030909791428165998783665772638113793291219487121407843157023335348816792755809567196399901873281302512982652363763617453094464466639374057181374674063185145663793005513454301868344859337073579116737704876640211306055817787545987383778166907076999107792467203102936214349168328853360861880953656649628241790495633832558540784672993907676520924006790629021709607749722536014472519728995828883824030076127706599145070586536510940879271700165205651025955363168304019328228858714769644690424510549546066109968849609075817286400906904615246632974426406066419703292858077821627518523075496016007857511902829591346299958339555309164686351103944734788732912683046291416076826598275668558748919701408879506430555645848433779542932386635330502534194422937900806594947882833386651153708594684208421088836551806862604078077568728880593401635845632201174199014397175138291267097125882949802335296386150775057043817537027035763114948712884273263766113484832574678265351670958327938381079454107561386734636472396541329071913248944335276701982191578639135633651847669808335866527832044209338526319479188277952652164486590104127183661764573858863754787970686678963517037255967614296209843806846977872228365002937015165476995417615434043940188598429574378487557570084800534807976608731420528596483682504571364101814201375164081690576906177146791109770257377558720653145342994085863152380738721880056820060568055055808935684020077241342829263691068791562328742256605181620658736636065179633116926173647042472817972760652428486112955375527433314390946080606548047696420845111689061873157313989939601978717264769451821668439699114261492721203568466249649714149595931362722594465511687088753364567010356024393370223592829908813871224708655637479591241176860436321044293143173494469698185463834106972804219400553788446254706335423502755018081159822775464557891983877889742339644822052801425732413717872016058415278315872007067817684177776743262709415996873006893238352120388940459071581490557610848788026953224879793198362762273995978231974654202348180415719122469857234565381730973322096362159506214924425248697120763883714565670844955554445582056891553926246967320283075463534676608521579049649427125333513212293046810693648868072260625934785483121507014878583428547478099108849148282727197935043509497516004662793722998590256619098835361192370685754939084658851735480968824769967640253616517595471921580144051558300363522956787733142023087476305515885240544121781242095765885757415370140161036529188750680343954279554376640361213133451969097953531591609625715463032105892622142256679857298282732396714076485943923508178704595324918618204800826611893230310043497828552955633631797752418410506417792252065048531775442647609859485440474780246700564067992650705105129390542158939886511849011762579242668652584072506600532799646826141116117932536102564233828877534264547596667090685072734811978736474970878843852504747744477289293277909915134818456924455457627944006452128409227066097794930377395001954278066879387121685814202054418394224302838602147126140159723579898879839634455651820263760746240595846917561353073505746329920174678986157572715486102027613569032439648784949088195690684997799504538449537493314008047013260182924544303801547867908328385013824978463245691613959879989703995185776322703605208495341398364122424363748854216176130879426396619275919485215618269943196499873405139197537882947992677198161588470722327285718762735497395768504620290581980742600426494819593932970480841459953869254986931356551246311887253017302757166575853593361735337195627957754572691786095443656586874350415471913248105126044381149895914455585418718151983323801836684146417496794998903971974556101653827761161130000180172769319767739467239206156487017675305997990971312084771218985733571674688512233289169198825801408909423876576763882387432843515151362063274094246931445187507931538133898137725501654088277762814824650943712416965974793806836291299226152504999843686220980794834152777007921089730931702817444694366362414840339560306198039953396372654684327152735397494722165721277302685178927333536040117223362205669676643194266615376659495323896413432797994214561012928113800940096616036172490928663707070235226271443629366575893749321041977459192481901073677540922166636617473977887717429344324989421249822472330858794103047074954709268905289396878866195837344520545494854718792678827998160261630600763165620490543129655546529694645328327071979793098819302370135908428931675632885470207369608109258768607494507574398361863618798226821725154463570574558196285661284327150999797309919145217358083762046984433889014553594709911485045547503961067808240480433082222540922302142958396335082176363300775121615715218704582040364104971288163443343035350087536635809707614725124238105604760338393643673911867500700691831937962792472949681765481966103249861310135863495838634873129852722370752087130446444566208654194598633751579821252122196223361545357302349862377472878334779664463520053758726883250491376632021973511058174789693939934545278256568939947742562600730849829414321133051152819459896426810600183458279993716512097270756768909040903653203334314717638137807555523941116381025797559979816834995404721753105437705917389862994439036060959603865808179598389720847629427574151254799591656501485028374740226878166637443554591969462727397714905365652664264785148949893381495106595400467890526426240748776779980100659168260725204520351701572386232716640309002400929536118087781365659390144145003323966404670740181196422061853233550114757162667013759890031377881634286700146193536525199706967169157640431548689124047184334377392178215527215438815651270301167136102190370889566064000784144400114737504649453933389053316560854571740388242606245302504702394494717291195319679450858999911133800063442812398240820668643894644136216995265823613516028138618486790823244688203105266170246816936046943824915144178332333458390198728047204427031862013289608819878775070605673344281639026873001623171949631265037691032093290106059391874997369755979201743875615797722329352896912042464968776966728306540902551928421055053030213869899977672470727790460502563870614005368929520835022259265152893731380758424213320362871938687961727052630781327445092885997454871818787786882473715999603026238745106040552196096566164774397823057720906142644951872347922550676926801513249877121947799825564759439334227213616732585336473940771343573818060224113995266294292208722180983101753304343574912068625766526928211388316493994984528573373083068768199873572962175353935326675654515679970376955035472087445557026334053161463873754114595819794828841739085434452242351355336077783306058567643323175031946324621401281235478635206838380677914485810681191530109255423010590366082935198673386692039844061577943833017562055738398027705665773547994377767246425442317441066220042718859724716598567895096515923590417758100243626819727772888154232217004613056276061020749447288179806346207084735400874524677175924742477968231439857035015231347854508098720388304519543645758148263120429484559735046316899065018843158670582458911427569148847859603660414522766555308186773950383368512924999439292554268418359701932441080895216155759976510780078459037585594488193981108544944930140908190537611484126051098172211553744335621553485734400355996818795705612487310508664024466103533978919816045220500914579255415731457785319175660954934909089159692998176725393537264076584548284846024631470488317748801257465326213144141819214911117481232775376150144182068309810756780561100531901099477648194759987372586859859014505215291455974167038359206063976871416452973459376501707001273687021217944946558941294494667602119163424989425751173680312376276040509550709977416006343766078135213816199602763873671762095136402787153273097252074931675700419330756065623714132493612735657211295538685163142589473072202826177198941697095079184328006039285681343124132740052152126799929534557968173646025230210462827046834835493487538701190671646830273357994652743820433544981552361460470037650391111087061378713082338844141882130633511533969755308072902774403365459499154371676867003522923454068499764668610656939923813975629088807410402726945445412871697774001357598647109311798957511829184923614216158008725528922521047773783098352953046524200676255238153217013626172727788857188661110096402839480994324674901471283233058976856194373942242633031389193427736340055279703274343057280808886378413969946218165230241164038574739963916474984298900483315362632466554159527514560863977878150419971373622224377626678785063913687270899598066001475262176640919671303801413150023445205193830662610886430343040046760074188376032717141309491910370915569594949183302406986540458952121950084934361584346968429145653845757437602527024741756114213811264839309652475525859951037350958050970615681297339694788684524653067051464541905951484829697078155587972198839488729207838681573303472098273547465911872201156516551164961429234822497480349017360713040763769675546438240524686618871514031229691274985234331418827862167096729955568510190220599496257300573718857812713370875292145524727676234596174503905213864917342453335974553079612964807491700674230594476487645871663524545241763043264866465542422680148703639437387878108158739396185382824915353582000545708218267853711986265391314676640265024900641225642309180954935144852512338053234452007588690605090014420376133394412648957337232134428726962454674192885720105989709835036951566549414647210596338212361640788662387389865866701385344706148989267151412659777552544912651671706734038235093300925642459025531953015274912783700664195436999504892267453309172864709553884269246347002010928170473850576297373079628073971963284649064881707270313091647324956476126309589196706561070351929556579096522528268329386461718155524945430060496930804676179826022996589006972024290446963990044133665681214464468607585156074088762704612355331543519336812381575358116926606422436177259455240767052810971047967336612009384920433802223406339332332932498283195375886552671280126046647287758100436052803849214365256365075389180964497221293143542612310923500495517738722818796954213499494066930054372104641420541606314530231662637213891015076315514924703754484664720467120461107371036931206015546962823009802438284507343450039640881572717915764817434493228336310607128019601905549431158795974998070347740260442240806086311274431287036484711931004176711409172030609548676156702185798699584684019757863489118350867202436178126344643075906355650109398652335569095375603798033342573065629724045507761123664163493356059763924701842473418998023743511111826500176479864600299979890514267330904058223689610761964600966628874464064409692415243809301322318134199222621412823729914748922130164205007631644803528906669490136644440883175767444172513751284115585133855552789755751964085214897026300420901016201737670321227977317807085067334507901308935133487731314241798954391027648612571506812601487317185776987252541710847878942881317101771988464721393834617425600893722175643284624352825100689096574674724078881895991164924482715243177291208805627525145096446424022354405990117573384333322134987980212189945007825024121322747290560389339920019161998212959073970416735325811711055469703770696297287250995040677096551780520678213389101419250229923069750370595078514025430253679209609399711341517961726722557789808258128051765673922829117102219281308726263372071254501209392870101248652104455819464959440271668498531822290542821083586852828239922735402419646596634131896251422591881409420463940163566452042234315216644534069782594338389366720418794498592638508048268910711181452191480698843570993052234688935124013198792269909150109147533157645074001771642441265517339460326742793215522809336805868876847332208835354846376724979174561104063592726540137764600799608527035260578564116163223450245353072534189179675528857775318109880874024491581053827073830664986598069772955908698499211179966271710169049752585924253096901656400541556612351369566023060139195330602594152418591111020832870817443597076445700205272880847851615775436376985819190011599493318685992070886477409731071193525046894293286432836882372858559052705746286244415494088180272944642651340750734104700885751415008452084543794129951001875499049084039253409223796557567390742993437030930746294723375731637032920570587057683602786273015010851466117934204940291643421304258582005628294079738177025564978820828118075081602686986689699270526741818176340619992967656675606827555707336290511092757191872390186651669540911871887948492122799391925570893863399292391215813350381006309354621360040121665830880604184172815996103033305906721182033011974006017752154943926422848968099009281480806900867385638843274056648240505174765167157961169022166363465444860948854635049330309364854310593165710856442722320311132260186399461822869961080605892634474817571876987545770933793073740643765519936540548101229489683699140590271174849383776640379146139485434848489782578555415131436882055551217022407810380031617019591829231524820007046987300717514812459667267966084186412568414404699438045304811199657214918322669405486806695185382379629466964492666027044235656784069381349543684203258558556303699923513159790731789519870904167739706788922180584423265287355237294578169420581111473511253212913498728309689739805329553837777310686658299113956261277926803950130450351923831757786260459842789934231435002307268248493766579247323564727509650599118601066261732716087761440374703472318865269860761002116487177446297771333880568526940563204777469333670367974223401499515841466994024479148324253168634467560575837803377327968743427609715187857541865347372201507239646619610029481504732901211696055370925952788389937047114904009244633885376345224008835483917859623156115627144686708705356935912315996669078576687127050329561912089985459525845377645162392688906906650417749148558437804942845115382288244232004094886062131030457798414318163425360431218303460120945914549970453010723368468731375385908390213084567932677562767453866314470656556521550152300092519404054131607385942636900958896387872010238033850062778533892553480142008158759258044039600966305033869120789210029376652922595701265793331794342865426846686583661836393556180082854899042558482231905684604679233779744546917412654400942844468879041138244535467732631288482245206767076235938998444659452200639493024477080865614530315036522290919861523398646814025342549362534319494641172569280164287847488413252076710617070473268847645843709230123901794550604590184517596292627553216598533439760327996731218005161823897710197206007146758531709312160491267916376865479343880039457004213989997782901825338794240864212649919967686938637336434486084366079335072822160463089181957167507665708776741052751353165564851344778877929032039405380288051228960749415771072609576533919357976679116899403414160576942667358677618474798941850449993969992860865549290292241065645015130732821428976194720753211597757363334989274993990337677575640126657224066182310948952367463613083414969990052968154108660139613120232953695810001779984847011423172561251650480770674174400416813242941985446594062207171508065986409707766471244111437148638505934816005811850152412899626397346120734651295746868095890217188722998271807929149425077230350322497645561893897710923445521726295749589888649984082344120040634643822592753767152003348993823019772317173470677545746153536580815965669110319425522765104891901573763367242384145181782649694793367336617117287718233083638851865838490075481292282122706938025985611304107548345196680892994970958390257254799219870052621635078362668655516410151629345999128299645147310902760174275014717876711787376913469091833307849486634441033197393016511010773733006744310834374748745698286117779494007913054806618672345607320454868542824054037073740855927035941893470250643447965866118240354015515372182573685140900620420506224955383174108429447651646907999316116315648097506655653687987965316231206303665147932353226578415700242173543570435213304780254123680600453266580621300625982767350259813539597777335152260370656691384673435018206520829919454542464115150134734853399644627394798403985755237965343792763347161879480242703005661700021886721639847951479161870881284473469963346363951604761602490934975158079124021109184406493054029120125854697313327144352410209207384265961127813221418422339820205818124165453379015379563169510303389814095945979130511728017656734688262085710713023671197902562999103672437865915175208231397733899899624629145607673561391994096936249039405267870437775685139637404238526992288719414201848225374111480625147948005703933300647345207408115043277744408725861178361804766440072075912485278768124080264074972724696119803163036535010589860970865081465001717883820986294185660053344932507257617688798128846496113482181654121541409939313744644707352564801072044964889339542774014707879250567602330523702818939801104321609617813347300285445321937180627822268632211086328159673477652902246930156702988298708159255301460837045216650550416577721439876532414167690538081016991973090114445453377066088583878136019306740251284820533397142802273744713750283980065895530207826077726720775458220422050682659141925532111997893351070237811974585530157777263234532103389541823063755665271484639451523467830477000228841227348571943117018748471416966637426035668684263582798433986638348869776848908034175620004484090479243697540654690306445654872864622035281342482055515712819884066627733820968951384123540040876016098500909513819708849456168243156100011272315191793696705248301909408894220190776812827850257208045419879277983190652092528335367485099438534912971377865719810550694760881806684499796134364224240433741387833960911924546940380055955475572622212751066682898297494318908939777842945960431878069006242443114506084847808247296810919242091545607915231303375240696547079068927915235186504300359927723660890240348487126753512461409885053235011735363269202636651249618550109893814083237740164212265916492217031803300259027904087559851537746999032704484381530266499770987526511057117104098372449737821176995046803384673524488504760070663928546562454290348668854325259014604254111713607868126392512421307872458497301804823565696801876188852571548192368118222839276864386104506876171187375164367063676638878667015751806567700271558139393170913490983359945266725622624692206785995552782499661339118864271964099228705144140878743217389277208242487959809719888107533969119759449914986086589871437964266916411230801909205502952849357533109665162455184878799764896283996371643258906005436068123042055010394919415472656059649738608583337884939381700239494139344728717555312942971174493536772738467518711204333010008621398558428443668087131197354501114019200904769325815031155123332560175834507014424926322509304232436706743994555935961304199106336893567912503268631088257281747671989141053560059297654485907475710508521270512050468622104179417144247233724575615645049123985376074520810493651158887177111092141233503311395334268761484656942163502965311021143503975074170212722191729640973407212607206787350638584253146064504448264036612219353347756394922323814805187273859541546255316043633501540418043579785098043432670501030343702729840938586386970961449264511796581165388425835382468751085056127400868585510992031390392808921886285726739677235824721266921863166995417883185284444230177123505992048694915140459879966049852961877707625057945374408232860721325338880074515308054828006479682822132528502406682837722892023336277839817910808629389031374725187120548128089290701370235225697087186528549245497906862772517279975749720030746540450771212661098517595783638305561715161649654946426126207750279636722246032692978346304176800127257842084251404693343637007058099916075681786407678280453377819136324448367372145340942705484374855390905055143427118250286088048708226182501872105603250368510408097279960922245237004032909963753498359680310305069951700588311702933089275606364348623793988246328978222918458356910604244068952560199875633337272314329387127405337258229585587616933781710021712448520012279663052085293611344552678863248178173301087606367252977752773541888992059328499122286354383937209264769718421263614701887813767338869641279259283550399122394279283911843695835045487417377806373759503137268734022869293427034495595106406500520374898222626651167240016977707772914035060991457233294553093905890665865580088090674170534003176280984790838024013876848921146709207258063978509930998060859640620119513434175805770395168634377849021861615768231589509834560073894404279245720697077612166635481517406697829372434267585032229860176695224496671276392368547312671993605261004013451919554302869518379391128817544764611810569190219702110522001672061675461182966452552547399929032092140288893936490709995720769801114499796814882527096113025297062002164862576365332846960907890337759036253813227711765105543441728139555291146400730604401308259668711801346904174722522191204741024755443804352041010673235702479885266453873217953223266638544903376846686177026849839908119032491019105579764783673646595350477895870818040553389545546700246123671434246074070658309242055549727392415213252568896392423402882110567537429518268276957595187073858967978129791295790609798699143958294254145687720533017553624905099874252653075432382588720985270707349904778282147588264985010934021337771797559250722556165495632882572669989469219625605392445649395396669031928505717695876657784820313847206603438276200127002100665024067805584444153810558651245348206966615988659396692219857619498205200917312684099890767005894980512266617238980599638703124954678806893122570971130709780082675637223772751415213023855060178936580251369991734818797294377971329581149595855812833300625180170521942185241040915759659232261155912764932335819997357861669570301032431547887453417667178595426827060651767878661523727395777453621184420953995563294468509190008164217977386881955804327720235329962335664380084138160902047458839386051697484294077169185130688947947642971401972647365435728816918876504555588569926201642224874517661968341584957632287677356738693704797298846715204074514902213234780967114702309466097940541933810227250596794885990384874392738266596158253991974092809388899622148193617296526109558862133129384315179476527886912563929832380993013089592423589518703065833870625767854169440028542165623248023698669028050724593874108982503816970399115267638608320386052066645563620741362686045979854596499259225949075375508341548933068676530188547695089607343325439241831077649494098352961131456366372855104873787474302912308082185502155806033861404964330984850630276929290090115392102940951874312643438974706712419477872531752332216604829487579252586165618394351546344350924568621899520286555667252929998796034942374718582580038214912814451555626274577317800587404454776184755208532243107514566133029436897129273324347406715511510823335071506639199773619651984660889248715093829921713891110415584797514751877717253090929096407181870199729241442258678549587961911346802962652178105150500461781782290540741257760231117225057032561953729002231309698288380073593663041811280625639294487034892798314379229838898805131822470887836176350048213459730681100192327928548855360692490800066394751786705383994167068524893836775813903586274658885519615279336078849765944254421131305820161684360330973672258576966553123948038528396027657110680714785912044393317606649658984590754820133898396668558085057145361970364418825016786649012252525844131281580132583731463370679775354463200125680163776278849232630388453990093802610733845154880529889912674554377796821594110916783475394173685457528559426570632409019507552654454041846354832929840903834432159153516615958499881451350860734670272569515869252590902948643661558080454881919817559351795910795565884076679635264837575628935598440881984722096973924234990173215504422308462813906349034603710763169488133947996118254444046029481367055136196957172725820551144998593915966120970193462670504297233505710577168605349188346149943258290898285165225826715206823017680608453945071211702564248339390577184315033480568185632270755510012969200025767163651110481404198108069087617115777193022292536701767126167405687243402500878253947034267371774794901381446208935354123336736504969425188255643749899654582941349205285129888875343574982094082362143921012130851166561307943487454306887060341185406564984947464790253568131533826319056073399110810226385589302444937424158014858852241492259571675667367313665489583969675035035098635798044202165782404568927021378734122098383403214555243097621966029182966385241346342654070795020632730634953274824499855534339284168864787086285952869319277840509673069020503458504772441471471278010774919939186092763427726432907399101457488624389776412611260054338496531654998177234778111753569984307129476431065076753725931933114175352579929714235013456242101736957308092352521240665289768960097451723931067696994425388951552694521790717594503779960130909682060892656200465333385369542976172402340287738567813623687911768738338095447100583508805345403869750291985231810666149257980893833800883450051861446396455291841563133440473670244080585769042475757379000993086094393126263044682513430011334309423142823359608456640416455819621277977736964545129644366671609490531311816082083291912453313331720497916562651855561800894533393809873600168254835660789677240893914872471647672670937025719544482576429441597476547251820730291366313487473782995837498996095633341165395250614640546013278528900376800959716615060932089672564821553430069218794770524376106549352436114460018127305282799902716930151957027416829777144673072629080534704628449643660961550793432400805495126620273424146921365780085747224877193479950991664056151722328601187913577834517132433869578553756207135581165672855399977408697994450389718929862865324415128910603650782909642702480067449806406747991805968623607293472942796523662561524195465553472893948680404130534229391630375152445596421604118233378424884280105617694991197621977394288306282156881996123457512923591293500717663450085104319145977817307777089407607213953702190355187483032743566460105812953167723904211803195318653292636883814867466786591687369453048416611870118481472690539163264823225942246054798908122763149037738878857660672501085058074917414432798817247064165654408771705302469682530746576862832879437401226807034837133190639371935286127774486647471023987169211548244826344524534309731135977274835335805082539232756020151524337390119294938205397860248369249725709796387607738701950767197553311370530252503889967806148662054016293068179856230103815213797250439219214848430723050034273900309840710960506712122294816475751526656869350864880486825311948144586217480209318685494038478592748056534182282198787166737910630076274002386530499397765195304419260908562417729774802774467924475335342812971012269807808733795947285782404683083269762162993212108502444146220491106822569760674728999250256815033834879665542365886714036394810531909236486627192041492492883383020945336013095239792340306331472968587322260199044571491639598373622357449560589307939861535211991301419814388627323545692804718577862794776549058943958662262629233536161429825637646802837784686581639819575235516669687434318158474845716041791855757518836831531866122733678137405967098089526830516721919396454368087847295047271292089276446255090207426299589820876401629975496222046197364519875841770929108948242835088541512138489627136092173754631744948106599844939882598303441128237899917991704441576722016292851084974419061573426395222932037207173724815538089663784985687525881597436975319915075416590779326595037001061640333910968352716289623340441313836439771097327776872372165322233337369589024295752011453721195501973061964917119836100839299358066046377154369005691814867787585262216908351575695532832797229676383973332565347073675951641499426640581162541871410917276180475712078719536693336153114037671259078466900731830328376189145964866979497054331894753743604358969766425403831970722293451837235144171513966098752785388113104180698487210351154949763551122259582507315671961814606065694548148098210072821358636195402364536036707844322295269668497764961869554137296662973413055505809962580623146094497731365030046911352542646758462963006165639127745143364190999179182278162463550856250351850981102420033000312380825528089178228253180452439560421806090322259993178269724211813587272848503131102268051695900386580501955516858613485678258182089521691521673721788424268907959445747374765767084535831129445894724626066084257381101930693182731389099266541553315014608217965307614238878745168389480482183004807213134059737475319527663185974914766258272796733245477616117046115146067516247493154210060108109355951774176493686694486210544036553093541329068366568872924566514942993610661837735201312860160893216067130359124524648412121370343927253966343389361867260695148001410915642052819589932022488312633637738419656224759756246929238164220658745859914337512699679817876114470438502365832178338520338314583184520472777307876856704958918829779266166576668739941248910167641676300180726083275178634975759107585245686360998969158691236873010730293936650542515287944108556859466570247509793576358500688478751398061440343698761885000309386270433232044383204777620299845750754771735447677681452495119483262736567334591593153597189869601821456458896765297866561002259271246584106163579592973998094330091021592634912815843915704745789060386021131767548451747552014240320109768413220814857890552964752962137572528564311546010566112367893536551880165650726837140465795889038983177423789445044879153794838507163045723294068025036031532108395427341208628904971503987643832134184964754150433732250596895476438091992616432946646949779124996558140917184695675822624840983744925048704371937648078235767753131727133484924958264792549729078593394022078853656367074830969176387739639114279957492194526342248589699847571623281470157004287572352640147541792802012710399142481597029795289561338044732008478919660770008659809518006644034398104881266130921423547973114273490576673289686789564742195489082683296336365029358379068634077880261906432801793156986056737251217705074621007944192691320851957519710480406090432474401626083091894987844331912482301943952057905823914089726887381431806482817909880836643151388562720174036510070676816072674902818457256366804193917111609563384114415841999862851499296889434071793743883970286817129496890493483098429474775830330664825029558791386539919770792852959940339911740858782416507920567109779811385194060673827004592370504385670607114292491683768743241870833384035455112076201084640782820106081239729616481674557338599305415927832290976252514426432471466950007936431257429759015987147437526970938944758233132756417093173135254473510362108244314151982603686622880291187524035194617103673048684944262063023144593322630923239011231189160384826681620964905534509096084033359453161989406774434772502008993455903939016555368245531504792171937819657393429388401730918959470907413235134310727974696677284389158040149501477867105952948369735344191817956049195750297668795328192789643349462649369733319553758637001505924493361810541248609697508434410402873574681454957584523548968289981008611331896697567090974268076822602448580151138648153415461634241050123102553172401500688967546731020835837570587943355923980628743199361603862225093492433513093790404572691314199291333657239505385316782857758924529835330814016641009401202542858946931867578970247314608500838644342411812840436248580366781619636669469892279105184192808626466418783208325029461569289379959916475180304261088542444177159398446606397894432869477428975538378582861509404534161645926167723788496725188299794583817916268737191598909850192313690933271102986203366811162191740719372885440256503213787209054089692345697056059726402458869884044834046372811642376957558206214590658732537139152403988363260575967079202720495041319499342059490127146642987711584065716377253643646334546062576397253361700084385663488129662424621798066251132038396015896935923419698680965778400503245659618640196671555947789267034504245437996896873523285669792508587035686968659061458177989506505307090929483223308091951498428160052743967131792189897429095664737844487923933796372964566709750684145736774724546365668453551114326721566287077410040188120565806890693934100322305607621782742594256890692707518625288722294562690105186740677576847809823455334380890051612617599657823496215550527707374533174289177871519646205993321745985059664736768248458701844012090322532845321694262574067021274187323375412730874610680761911024618004965230954306605696437134538292218429174680563279318658303008535769756306676000634550892524684596498687498562961763373661562857270138250579767475724032456550903554049823409786797781927465161849981491460445968696535927620088128687116557384745456277503300296327792887046196152843082269031951049332747351911867736052168671401918624075753117043443239135491848803151655587243809255373710941863150268935155647510983727156734183254098708983746547011820945193337591250720019024314666677861288820825033043325174518972794489239428936013290261238193359857426814275376645852712823226418816521646287717871687892666904552510271437207989433087647510124286248210921698145299283988285851872406766253666570185572288377933084175911147162751304889789099677702745641978370564082119090979194461498025218777989159971051004626938972203008458661988848512056701955415339245920389731349562297948784386198835206597773619587105966337383740334491625848789010531274537020676114096696522810900189625561386986548442676864598057527263556193788704270150673366892318082517961118833310760704102763049030954395736092342167096457997162560356942020145219709137905767415052565646163739716393132042197873719671720783425557374473500173478886595404878218473681227496008313795920644746404378973938083616958016376110085029049293829221350805403816569063094945703736936610244566631094739404003611773521171702253202146231893177044159669253278880498193446393951382522672246405936413950552830960802069401870443243386959097574213267339537098190707929351206023763111892794549331938557448888531865051478293625667785828202098870566144433005332163881591326405783741714077815922454927524958606738222192439678091986713884416037823862031329366940631247412192323669988201984612382310575606063053201769438887338982368799395789573836249746766001532247327608663425399064484319468516799954525597208734971126816045440322476642603969340998231979382641456599966126597774562711181416647112528195045417363190554931732345039056016591481618589963538045149836947387614242786785256468821515476360289996359572674491376465174732436498632223113546983363612459220135005234362048532381969002557727717842205976677609266272181621707917382510608173750886895691559249545881941772471775061930882027694674237795639325913863587358948352042918021146991532279785444038264231574481634455191157739711289266675781456897063640635067975793545107694879327169184951496622540178278781016763988046364964994519049419100071955846005228064851770752195340535750557930315316475376837403006584602006264048397369354384467980032111807135239725428991355297802149766432098443826143517612750846614901323644557574579932674541453551381492461782502113799450069608788495308398472595076792421945961418235909521705733036619625202670602597910594351018572154623697372423061357671309315988755693501047324684003807305726401317206465468620467538933048597888177433954971289173754329471458082561448934716043682538629545212139468403330967152455662015226230695368743918923691842614764446662457734633498289223943688361398067243971789598442512060335089101561704613267942608517439781348198088818722698976699550376238248760616769855340983563233550036497341164503173399366505041816330311731581304096682179635128245699743521313944812087647081837833380553964011407372361628434542173767074555961270558412785876391846712727786309997637416361916911272442720261900456601203678153117518495190934908656019798560266779907150765922890043250102316650573416215005245121195835728053009777984747014662187001351828747635901388163535459905682921360928479718785381954067031505187568940258003806849012948228002436656625050815564069948971314030061481948090709186579331072948601319056609055897176567209288772638551597229898544045920663800590200058883652187551040535915550789018251175721781948881993199750960600531068694069069919872578284895812934055007706456241201350438941739400620084233441186473826862453117466583567356858571318255195874772202027177809399478388042285187063975897323363838710166844919593434425378282817513341401688467445374053659762703633833167938201791297472690786235163949797277294605454455492409009485371849301897945497901581404845870590433360566108219586071627792425794665243309903767100837680465728645836021917877254844590853513221879747985544889376070023986016613277942175770953785473495954548314290699911488910014959030350447125294110172336879022332614362293359512626207472525216454992191018820421397274440638881968480985978315634223864140618227994670743199930576832475807097724458639504490579430886495100741188833446955841572467432038210621056335675657093700945397578331259370518471995427428350228986233515853387964605984680881094286173019647776696988635233383156064183078771488934961172814148879363884587819767634094973880695421295928417993496604110879374961644097072124943752012341416277317523445082290577903089084014861808810621341403112226537466950061049434082922399561893890533056688393175932178461814456016834481592709398691428847779424642844132001213537192448300018611727697000068314703986275243852285490830665255219582716334233634735692367131744641514877583913807215708674225966697242013544988884694309962923989395464613031692149336634523008977106325152855571016016269541535944202155804172769820785082013233171141718682788258488455067228896900414558067770543960505490248765922456065176846356542421907556249466978657019502696887621258203596553462620468569771011215186288900028387475320963991958446869943174970887436798448562931070761549692052336500347064915667647530610459062414666137050567674948410492259478016121005487550123077146014784275653160238915359779102685935147919001659470279711808512019077119589024212377275938996970924340454187753300041369432533716859031420245314200464014852807671538296452804169410340778177611148978510541935218619685784732437893029159164694424430585804917016592648542314108244403610619994814500752035539550253003350852869084003011423457661977522791580099774987768487301419419943123818963053967994799104176747414055857116498106975581051286359479295429159818837403127949868316266861444539858114595877460602267707418097943881694249004679358845690617098166460461075093866031873631449074045433084523283812741394253233850734671071646800241064768284009378217985554953183660074518661462497884279975523372665681056138380644787944971259727182096798753463966025633487134957383195752140165620161570940201823068439232723836361093279664694110809814339062557472439484838738208527408182882974018286878293072200938421869099573393916298367522617640291631936341546248019465093129208635224668506678783556868472400473728021338637393637761251673204630734210778304110094256107590462081506157436775771679451964966961952922015393723634886086405952551190437955400587466127508528609361247910668717060228332731197274603404097623526578497570118267154927184634821614991888220050978218106100967728473836086093108711220198154695831424714368413429097966852771723798149973058208531253642493637537120709169120760623067765071512349500541778469585270798079685065042050683717999467732670637873992811962531959528425268059105130077651116602867327679042252677046488813061342458243888171829805268675556813949657946771383408250842454518588127974116640085943923329939426432785802941274681660470150566398492376646407574207949078499149033151888910735932778662616895271565642901842484647447009933951609544604772585982357830127969328160867035833946709117251934795232329639083050597391613570550128530176962818601899787198600955923676381422497711777497195371459987875392687204873808780281657920574106631967220783245855228716282532344087153814272067931478284739600789754660447241352798186346996449597488501176883030601386111835279642507759123962414126964232605980705680573937338035045262808706729035496267646643883331835061342973468470296423368450050098291253791976721298498002216672507225348610585316700483835242963576097357608721907515074706384230450783670750696506573501678130743574100379000692546577739054011021054579855075129350270488000420059653579005448964188656757388818643006369984814690251967135645360580059974365447236077249822898937372428868948965805528372618855871343597847642511618204951301075980655105826679916532017910767284058580713381225111171393879741810639042295681508989135055632889947421006768356182656629124499159101612928207416304162537381681658445916068727637202392701612744518675784126894678073573219637116169487136438808611755027998411085703201444830111925846081752856363400651825446986150594186288142656574258622648314263075065915834435824048190158767513320603534235626799562318444729133130499454399446462882832179991020892664519615282258013100750006743335137932299815816392508033291266335171111403131642283376858200440491003104465789366737286635467049027049076902387133168933051051974332787435829681063049565475173284355948294597594314436170476505836483633973259068378462839967185440356746595772591741155423485372626730037992668896495707692753365530658537731188780217021761576027985293031483798570682825888423618605134596742267439288802813598466886237772600520564552649874398360462285298851873345554096471810769889362057515123162529306786459836114309472576848871600733526112829755726369925492243898580456161334448508485276808381078734521114099374457429410097503970024129745363643881486140562560470765234167255988451474597213291953785761991236067211052671519310725553998304944379256066335159370735022323406705772344966646030998120939296591093116952594629591715275014075597187609856716237473575232900841777603540626910749034423307502554018342131150221704533517656243454497694669237133091566941164076505079666523282212532926350720669966087844256197899538299049600725960449267558712302584024146116682480945005625051177250325998327101626415324582444631154743665428450042185220807535363662268995648574450356505556366029956958679419158557659343787011544250641287295515819457835074412104944790439399013011469469062875483743431472309517870734349384646576179381903894464065133176945676521206646754482300092697795615180731139925489604345479778432693795511069659539704049679380486087932325697725616451344024567263098031376901790166543702805199642985891651196853226765380008151281524273016561882374630764388693744462091288372595531982951735358314100896994879081858831278397587743151262740610105444512374948639159494452242460457007140569701744872732048821336973498478560639928461232194834529215274067646593403328389679567008071185274449959920650271479141761520119253826810451490613809396404128812028964180352925431900934461345262657276504421500434147118235067703488809289827903005702285090647097532736748652248259310465180797680824141062148944940042756322963134478963645037009748960568379818985101047900123352910018777522532810057102302282336708404947523838604685921499580808837545552783459040110880418948628141199985496066979760232776529827977296314068879122184363480464305983519158751997488886739501852131824004079828799267549178244492734049965913149134930536013232663093323169068431981572451993256395491893721560385164068775099940741707797550828560292005753853047030387252079877159647363365460587685807329292032714626152176689066925886829991311417465274877878271435826882207434953545994488808882566299141113410166094507547732039832747510127928477998619798197062244506414840565213510732880468117528904299165503141605243596009237369071833448577621254269401114176170572255883495287282398016752625412688366729873385179589073815022311235886325085561405816677619612788214831149287526271797680263354072549135261606812748117098334569738107396308882047511801810349525775431921411314558600127436420373722429526953028886317404272856978214694876011504005471582010053353515283956438752809526677337746336782128024888363379977084882468236478760150719150989260086426530993064560374247020741977630262532111196184636054364215932155974904090772874044108035413825112048471771617767155451269919518992498507313710665029487703248902554736066248764743465924483727534512995423795287852112588221956174685868961666520431004431889476993066231098049457761471624882028325190804251968425650726962758664462105715373437459424893104086970524145025939271656862927358587730685126421776567346360122802794979793306187552299198218971647998409985433720443693941068742104971369232460256125741491033824611492602845063773068839769462503067313126165863309561589777543585724705496617581560450543927401356005572788778738010983255711955079688508997207745432085247981992607471213387018750846627148934795171067684237370477117671418284206074606293981024224869687378847385269723130663898415517597292806243975768409749047249790587893887532955068423260052253564811970137398990195631409185042768217652606204766288707397430207207518157567986153780105149921439838317679629548883215217183240552853090378126887487811117750548107501762060309933617803700935061264151481368277269567837894659126148821330934951712058783948510285852659283572456986816491589040026432378546793149362913664591864845762826756367895501082869863232105636694597285298280121013950200493752310927780999831532428109488425797743442934307586652116306775644664144331780348616163526784959219142403176429571771042410380707098592274694751382417126374448159888423075580490186001585412949127835827032004222653749930236791810993786072516702421981968841125361642270193186280678963820120466241022909076957138160146335958077638121934090455569662170549347489970173025262115618939179428666450657291046570098208896068063463578893022022167695143788891740087132246095986216523416455698603071910030324513253026608662695236771960833068280322577897632015435221118818209005518866603152199659985528366600977595105578657619443085191020459158192813093968632728048537861929506268567450605574263917326846817497689537973521731075694436534467458682249611489866952565708197110633360041955227647698321732396771704392532971955978311000918805458380336873825609795771918685623092308676138715786790673670361903143089878151351528200410417407971671275211654707014632231530277344754287897363972821990138175654923535477947830437949979700852878446229531193849942621013976665131413664214450009216788895059461897570074786911068275285173643190987435362028345192075121309855384777356217595517849522621437809080390903158327008831311234137673779529842507645635092301238547302808588906050360450663930684366903283332394622211765176691294416676325691592918207264339442938473609389409129182633181249409215630909385317389499472244228641281415426688896747537788750747124207950242054728456902418593619335647587585425079441233970805438546605963766363921402959229356289921635633456776803591248099130840355624762314012522796383865608238170985576127802697057649974484694615577804710568549877949507037337373971609405798444086417572829875650325301183597815574937237878168734176885008094723239618944590341763254946756244866207492338144329361987558078069854560983050832532826224260063655834569686325460462462679079633513050234236278160555497758580896625890573544013523121373490217128979380614663552705618127799653383848518863522241168030450704769628552267915818409517682840367608819813187681226036732730059225025525947512721706527894446159710934395543340941206979092267692021963416100823580322787005487801382270101517187209538823222085938968976288462646568567162887678519571543564141037000810549135461023677706705380507094728869264904370410749268447937873475173286611173660751100697511370873751484039348220334756257556593970005973152289752954535141143558804722679958402635711904550513704312059105018371739064551596969565306118740270831068661300247128516793228456131358896853884532321374695515478383397659378038125227074136180146023342184187343379868087712207837418081538325308428688005789849651979814224991474010839205472778415009770812965782848576168433145853319265517157806374767418504370545810116145449100068317007561015974903953117684912008101825646451460377424360900234179291013624300460137125487865680896712407247251653747699552031523098583530232854233175710957058731843834867471520620385028535508865730290326618922009234404861842767721948901411854914275805483282753987824660322167120546905473519182245856091628282585084024840668516509162057811110442096708855219075033352524491064263591454721914919115254247486269802787445099165305197724726400275071232606062835703323525845770100483469713747852583151414286713114633928475371966163864084818234810891790357728586615766126565450075011330643285439157148969948160293538469716296781626806011188701518554452785447631759396722871625123004031059389562110695670835456332567912031245357710952325741133729691114925349078255083201136106396156348953126366842575000224802289084770952345368408500047096089062341774329843734757511776292882286011712003108739655780588773499162969660857536241150135458114332787927937354758631063566028558251185425056439505545495679762359158103548498935453355426499275243048881825500211610898191033685475583822506619712531981646285269631117055530800617096937324398686168769700936075619994161632396578061772730781544768356761574262918434092375424989041795862576577685237468432096355516617588771792791809772524526037281650668804558429182284597481772657165769193332648718033615601083023148663071891804358295297271466641755126184640533675860303321434585795780190510082769148720536013514141921913956567972540127535874135063725425587601684611890663607728737697502838141503169794859565835739815658642060620510367067966336288476374190905896906279736487656104442923740810335667186131059314942284456929417144792870969022339303998441812533164214483768533286609046701131332140194668856832637324605765025435479110547163013710047909981011574783963335036692703607684403056011950059557559638100015926092520084485059409032058180409634566217844478753168343513892101349045597603291126657845571741054117824356745665830740927292313417936455433814669364861343398552702464030655089987408354267485262735203618505834929492331755127243051850896577857153122917000721495779493535191663857769943735134078789137430319904331335174744767343661521614016300991348217940862365844178389532255028719271322561456722897378697084194142249537273252100118849387000346963647139680810366849915905350499875824053815031446203912126463290290532340127357578790277546866033803647978595358003868027041539895680145723865208456261815835962899218388611684997014624819453258342108034816341650802325066354049418400947789705112891031433261881428100853192826116033792569225291532190169132158201051223726850425667207567014312031027499803551793567116570509963425415868117872592042226606222884056592275231224406287834197783164616848277852716807567291016417996156042323454473668550194897674966267240716715876212677512071884020934648563121342175272067200060060289302902977596276486202940936789241019612574753632906811279922982329494342119644632126127128203536014201374953200108228272812088146976835825256004839632435888255679645751612938076727167139092158175660060167389542580434520066997745491994955573519273550186817083234981324259176122238445235723471902190437917681417611300544664927109197232774193728589150672116867683228586375657458698756823677973260403440937303433550068219821502566905813327560994243566939873412846698124608456482885526255762384636195520835014985141484757960217149368177927872305369109816168162864711170769935592701002886227671260897903057076218564440695269269393584052011051255454917029994661680802413565117502336535573574336001084185519963473741451657357141587701578801799835127919844663273279277339132132964319610610088953405746073690989457833684138200611578222783670685094263596437717392943469807634834898689897506979630678559619004077042757962642553839619355346934679007588838354436761744244367831258871956094475678046599016265530867107248108130687819170532262852784259338044423520019564395671792366749904864345152664502992880502867507125235664549545268047890637483617041223908193227380397028855464661052694706285034907355957618948765817529108371582710468426495730532094377370940570752244626213755444558381978260678414430444012464689125671524834063814681527236144668632002420352341040475996935358968758517322095560397596674852927180327020121859395305131595921477222883879603436772059945540738438669399998106956615673709586758387190553644284866363395329434529029690593149701518410314463766309719123605200503372031461770820000582353210117464521712774382329756324817968834088824840113132740139534316026027564361693901400855442313678621726326596990618422041028011032998343787866753621123727018919138371730192887836928440014040709438206714616595385171224664677288183628656415723425146700400530189295256618022826240973099720304519511271116830097157225295608986103827136290543013067205146417509017566723608960256341781785084559732159853124298553682883063750734622774658483113426480490181705339875280578243383389062982364562578824261408504369027113803536730705364030303456433383413329660759343574641406877969925296687747003013425790997212774915922213967258454564630985197702172023778244495283319978599507850701414243934926527390491295125570862527384793020369099711270065929797601143816325985452542104899889599577919145257824068724463856825231226745988650314314764929994581105726705330707638243265619284232397066924604133382820242817146341376141244989259285887981246293547786835075534199692711674947537777230958886437641629730959423070837515004295142964908213721352190736727601681809075675827721337258793775263575346673595486350190430291343729490136561142707290298722427777437972158845052398435463725250411691109211199717624565687326590392972684448908073563689888687312847395813968694458092826165697771261500043613546065328716796655671241912830477026412095463077331248789734218629689058406615906911494238756590757484178107823702078616053480462330616331043391752497269475997862536649911330316850602786695524516414459993433142106609503337578360119271297210586120441096574797211933083935977200783479484622029217346191119444393338369120068794838125468551693010561965641755482165626607669373969157060737642420441274997702346465901542635320861397531067264439567544313491968352237025626708372224016128923683304863383484259530408703562937152814178259393275953396536294400950722042395669659489766188027306229753154523402495336333622116541459994138106882082992079231696082448850925349026022864606373546322284174478563985949185617330509290938342865906170733611441572283442884057603889349959924413370611666348559623900384295567119719745492647648895604624325621246809082949439403064275563975271469138342635668994940301992527901769969634662628774088813122115079875990256841787668078069975550582048045570689716717044136471097183138657709680545690586081794421183722602634517018892738701764481727379838922990331213900432740862219679772487236147752716232726760948006435447894045588487078475342461680516261082069606611978606439835212429203402912254111792028934399442355469748672375505675084935825024013193273929559077585065222677584850522015509952078951064929951874375946240442282232710820769458580566972723507124975077673891847156073503241663519305117435572080173526109801858081750004210972481408739956284710869939382862929691011860024242863163083068214998978290356661434158912234012588257815904563825630792158899729988588204139958098251307126606695876458738248395674250648747568713224779846495370727933770644085741549246647425497042083654592675230257128394094768247516865277758140636597075387144461409582234769340425676883914741293356653069906139888717016629418444145804587917716579297317079216594665604873378968222214784953825969999708598106406211477845776164980836594924242613268156095830068868917872914557184924163557139127387149715530348210841954466363858176340399647119454814739423650144663886528701754923620889025147730682485578851448569407261268787596234683094965117578407997151434521458167742871080684930877990399246082147549743406061847511209532302316379858895743610791613383341175823446224444252950428318732398752704447701639397434963595825365978335621322332986765709083542589812595752660525742349110659948283071227310477653451370585431502788965843238932942443592707718186146343851715308782464835302427404418058177400344037055068938854375945569533594775251459467067514946966858093731302070308360378448799354525374503371222337246986480307447887855096791235555334624119668409093128964605001970872600447914753718907585581535915306042700684086100894418222693208082915044473335723187754386796662277330465588793460151898734593827780002369705257143933169517679005593561430290881314470385567565395333412032548385104107224501651756425775813749194421680632302969397348015449841549203584177686668116789062006516163234740413694272127678810500831699614527119922377538258826145353381093174055526248960991752903734764572784051362347222026205163965025426901222289615271342699735387664003940853907197147983693530264215279844644708462215459387750269287997766224065406167868995765403975561228923073118550940951273726383797332842244671670893614049576930363591360547187632256839991177062757423492331227376811805826300951021156793942655381461465474516076367242882597731459247016321796260951470982742966753701820609468101451551206278063176860755962088161131262543914725945419877504207420711768608223320919498583296171479495364722179711687563806104577589637332750283310168066777358941485450454491361779992167262482758605093804088732819468796893581358780294376059165450157719166363021433187316872352763753154325591699360663385842797525546240775378556752102820165119009619177591141293492698284490673196776583780696365572154643503881852046746831301626591733228849397932235267317708770699210614375258309231241864257814514951847334828090794116182111959840389341429629929197999039016752296029928086932752160262960961192830131960248362577754463700548358909061425723020367808201971507329869827023377272192267739618900147469224134566798655555140249331899586443690165398358949151555930972547489387860557809222529893259909516425662572783207426217361835385379922093569150427717649483920960374687002923769514531708717172085039563052847578608978226171747043380530614066962951910302596107745873043146424084732827755202342121164701508838990750141975857905816262706875307595578089970130040014382292409980315338391481032603153148861432620602318818820717812534906055282568386729459340265388624697883308042891360082642468683271297825568391233397777924223027226024655428263080735867066655977802170256687276823084486338793097320315581767274036948731144399841702532803590540136589558467694936004426792179628940795671555108617749767199519007771183270959759251468159931035520824723957551254810730200765717580102049865569677228256042485588407061814899122441257961735146221137714603232899273298568460633755300935227221529720357765732848960275600789316883341629289644671884024793450007570978003930744967967592089166146015728276698630550399139323071334965337038691925868803256816212047240205927112178386246088161100692642253095232490043811739606615051475818983301700543382657834426464255463086769908393908326086165386689476882703788899041595804219905533137057441383547013031948458599606200744452006190444401326890135392651350907637859974161358675631028388983089239259882047791541761601702583143841472313701359147056915129334844409026114506548993859602174556393740909880134452320689811511502714400653316765988773519186861831636625012336511909658704116551461984340196353063504928485642981725363667402518226422241462482405504524155468349736304663004013818018255543754336513600488301276524246665070076582219145080500075846631911237352178402876941850534129518153711179961374731964881274866134319656623417505487629570756952502776358394926085614170714581874357936547588187180276607283201103895976655416338987585354361010199965505706967583229286007281274257486070222417934052025604043004054197906232868384722246300662114447353041675717016912094704859200403154542585505034124258448811804374472867967762226295344634259542105784048131995234964021178828702138686518697248266644934876830952967473997690527630768181832696017390964111095421245145170726170442859938470602729344502449501138531459606303076969201339346273123055313925549552875744744841890187752713741315377914375290892672193072382276649080439498351020911499168564898377786695619186884044479016629377710168553123854369211852418029698078288883274126695186543389650571246087250857606328651889033026519761042645226009499964788775970983039880754609515847080082055594013503788003258659582450019766040865108120746355582139880915783461292483201234983183065766003516253917822627952326854831631153216212864280931113690249121457852947807048153428469529438331236175884860695271479606999977973199744641256335845482131751821910883697124138433953375255647088214159207018258480939474170923016153522466333838964481471724510852978152912813729888979727806116253113678180670387515961725889767054043728353165130269071324405762714108299533433309367917333348464325207046573267689842367501860046768076723798633037709314906760870055952889237482109177095918382287637158096046792686373066518542498123311838505078934473586089043105498041763309093547960450461038209214525559430703271648156790892841622692073048059328505561476164179552975144476326061763752944841792833829853299590474023880056754002616516171462867977710146490499299494615951051048252325066861772363080927465972603078996705920193967763560950076637555631261864693586169519476170580894422997308142393550373246481944193558278064000869509547964945057776972521258262577256150188192799510063171914697889947366512704194171397004272095914293583524610384825007333092603530919306909924332659772876116107255263706493263646103507970849292218072714439387003562639637409491843777500768910786539500555220600386779798695160382621771172897253553053153618412445618960186248788955983579349443006690861595077738250177994074998506160060124642895257859589020332452613101433839033434541418678791720161376267011691239207147320998155798567540429473729635949266618930496114202783639899428823529627812573465634283170195591298959101223758297810707558398872666737196509060916681969323255399748134458720728383849808452929876634421661982720007345499727762974234903280077575083242170406603166603016974789901710490504275061565258047545485510665614502701568322980142209328777143036711436343012182362807371921195712924426450117479598916592876322935997097422720003177504956527396169312054277652393785691756071992831415054254336130462832426838252497447643263619154319615500152258115286728568679608720640500359977570997338494281091153788305118259819816098652627681446414846926074403064923260537168632791918954654185739259424369130403171735249225384292743604723093942711756815426229887756733870852607408704666819726567401072691867768591389292285019332346581838078062256161743725192658096417765816151176570389698955663487273915022662026082110770807071269412994412934671147734597342918014678965062487053083900586610849915619411632699989181555936887618841771983465662271411650786468409226329422870344475955822596656726913284219325445800797058633524791572855464064155347427132470232625662746836817575825675685468268893051025833598648333433382124416747203502921009079398856377153449424444039741876807962746938160101073098115576308135011668043430102532576917238251387464032703157396941037399872188991921192062546499789514727325306529081394714854914147169588535661808887500899653144407272240257975406120178827224717637618665341414366815200918892859759959486039495529988656208219559477363079953060234799670043737198010156134775868826746570884109751932728994245381369779710868063665384667701774519077717426029199687608657368545876131999051093424222558207238577275614389659021724152117599077781457554870512757277475107237623616899238160973954675448707145129111652619489460283413401011325258181933525759545204180068805340969454167902984795262384233256741697372941391404291872706168885181739098074612416693971430346412933129295769700016354294265528305618991743938077744719818809384630531717755947352049032994045505325628280826586724430814291720211601922348160921010411945776967080916030190882163689584757641789396603493972550328503887219554494007663696768957998571190361823894987777482344530758308230897826818570037245712253543322492902118579438362846956665471172503376821380597148030814316993663904512050767134353174391061164237365125830117054064016027606714943626302933857737551007815736560964608071839927941008727028595018341338252768088006159866880647604031520292827056904471221773591338915908803194482401695007387879877466257338554913882244849712198797824834620908893151619683513342171914280946939714021306894481222534074910691672596836214996575817955260147506757166390649867444914905988512343584910103894546982075376574352940367903376463599131229684935259814018210998991595698422123911115205721448502452757238151149738575977525847702765088132920013014525778766788919533701223034273882560722810104408833203262862399791854130201560899956015986822246909169901152148072818848756612885593373286823686427055197073244261294129255261003131033464352071345313513528501125451216137263826521263960988435434943238966754320556646252806390748629100533698787237143568737197793235347015252789451342462521922282815019935212347712485032717967018573614824466859411394388889512388527582071499125272818214736444590812699338102999519096789688060195240481119297361875220014041221285383494413394183988509120909183973198003679307769390634108111252922793674955880028548761589358736091305888295616998859657543256184307560926500248224045711263069282090452931292391842924929115486318352076331617500459382407093092991513359396890664812903627121629653740261405124102402961722806733028118836666350041841863352480516932873290696741736342581299761574501929964753295718509170365803335609406081367814999265448124293372440445258498997344202110366742934878508251563989027033907049313480514591189872839846762594261478070239268957141961630655720123775676627638079879335549748520846726347889302673585943901792598643465904783115628786718221754569323749609476439531729273546528016010702788825692296442534255972082592549756654850414558614368598512790688345867702594737008139103254253378168369343931799280802246945875390448918015998507810434514339087495653519017402548337443364422351578947336368338558520322791499276646863655369375744267509090152472401948126410792177257782613894399528756296894966328340429477390643042456526100259847865949844696392887955240195864918970211841912637458095523908307211984865658485125393173037950922278583335312428346720551755955910103386819469143349698122769199376100656905342201865607373812567497816803115085490360068141754899827952308471125651459854429818331299136850894995521865937679652193954458068273665251447133369222879897939579241269812635230803752389310586217803056689610801247155913971644398744419944433646176805203942250967703571068176374163106924363926350462895996233551750813257954618646654488688665498477758075767850224800292809404066192503039006450308913253544730581408375888573283590702616003224101245148695039524771142571386029500893606200069175596257549655162380367659423299789588554616060347525326076929954496569921978139474124570853491645410463900853639537189074409264260437214196728808284853199009440463788821905509987031792620925695506551362830434684243467310772536326706063892977715660607029845499807488680759946881638344975570866693532461026525307588355826599872041229567778943024658716137149938263550127787467337418830753629516200151512141679002093911546037946137492888738008534414842484176117666706970839235332906773237727043124894860464868470532020482448666399589293327583566155941057321784996753583370975817364787488249735521337330257964254924297070602598692761070390004490433341108265993289306588917516803847395555455579323739786151726389348673664954688771835496817687619265136114094294999565555092773457358782581735262974634892795864578769031799803841283028404600270242086811964632720920421505163494570730138022341666694946301851996449403592492002672984523708988125448018277012300990556696251940471487534339995235459513805484098456561999955125750661923915996268606593374959768048080446219788614721669889925730416630389473472232756082050102023148462881027245775587238374187154827769251012521678379120963007734461274389678215990588592993419070226606842531264629821067353846154103841726337672553931000400180252718786339643091685517828644105117669271575654866596992248593032776518571015233339975196755839649080982529554333271807046599314697827204137219242817866546817806244831773953506293665088130582233564395255985286890206784934045069595905410414819939061580215158305455471793926398914961743407829998562019705578474542390037601945734383048725933122075583929519142507565157894066705710508533493337237081634061234794252492250046641807663332289172254894411222556962264832948351591591276418046466505544902547012651059078172217049641469860488870971658079379394179675691952561202877097815930301859336140162810085995339139573814413476534962186731945013540997655820046376423369294822825765547076437035087196643576082587632122951504822968708586683088264547408108388037826691871704903423696416517069207386135530565021783713370841748369002254287090652154463650047940901405472837127822725704596140058816509345167118702797774539399537713148262084054984695380047847108749601946930675494370271559078878038721548411211882859437646695898067406211553529239561238005700758402490153815705216310877081002523473530765568541161551644346061523604564380152549500472853529009077564120409298624992141595298977477664973408504679372553570455392930535413529311262176700092401006979264452722862362065692621587724074684504696207876787860858136882806682067049196629946156236760900030600130511414102758143979041569572589370984607929735525797605403471387657211596412101678152558276439478043664724580062005635812511110323831571935835446667456479013250294143318544894616054664991135112152897375777913315069563127914208420106899661146399519051378834529624158489633957163911819301706593472277580259127078409458268772455288075295638500609019644932826688952715657818683987370791122369734831333733808526561866122649127786338146474940146821886123379534829037942558718084188524462783367004145874926991523145281477040508463158364251155819866698153186333222443573106271345890226806001917184215164220776730611873899303105365669479883173118560218810293575694645340779119640950606769904861250046549704959493615604691102036576445153936461309364040294190161257613893458612679215153773693987753475194782307933804318594778072885669239053605459760826741810054315898965290420982401183811167237636455978304977673879540283533528813669497120774584544421863729956980810460109779489224664266848668233504962146846741736188037652577396867903538128719918368274953899340335309302514277521504443239780337334391773129447859878672569296953372390815076499908033936657470296337370788811156528995049091362006591321379540728073896389824438311841589842822437102911984858844912176993479968567748915736324231264474046532914402298984682056805423808606269703358488634751112141663379844321342798368098171519137885906608094699001788636384994875540192570726222441668627936164398413718011432495827142098115081736227201990203914233363329247999426080976759714078394523718234859590602588874343832754656197190738107296338891248019854404732827544425096362584451763893488481378808392004322348931724115864131541747042006448997560895545048787263989186496757558531111476135653646775351661318772689413090861866045494066736393911272801155082461566943346397122104595576355641176609447950671450550277315468881497402987196020616066753456709468471497613631641435861586173431014118859633075953392358658053980086908689377933261309607304217345368631407402082848877173780941266006109212667838306473388331219234968382883715621498522710401697434980090315500706439702726428810149476101058841026132946273826085890973023150799134003180470455128671328076718088361407292888341169951161029846763922805892934463823240965197167467109535267938723185608993910368194820093414568204913242774528013625071422831838336101263846777622063620936343857755706024729468720090308460814700578594209741636670781331826346593031873807299377383760169842309285072233146421022344130014279659478466138316145752924340862739528290240231146104742709473008698802731839952525106184823892517250711872797327445955337820604174382908222918546360229307777010650100147325754841721240604300687213363214363080967102609329337378101214128337132847146527727532243227435405244290008117784581661054581987185688775536735364343863490024255410909210159934098941075414478356046637382486972578339543878113916397381671844841294908131846007936741711206899687063532940568277993184331293649269388267666736726386352241730185840672731047029100869997728086507026728772154571486207016790711494986658705570641504423957767153757063097143361046653026892550433561862838793238769649243910195781446159580145941767349073769817631471421301081845567470303026317952260145629668867760824178781960425552647500472273528400614978165865860410676288014216566552997619143583682588430970999887853646099595567261198942834737928833874809199150217581127916092776881420104443195863778403661251660261607833007817179866672461342314492157867963182765259940441164009865109965424546736197338802416149776178400909956988551411499763535930750301972254190107756374672245084374514105415417517731558036501437936362831631558610501098274765043241289114046179899261784188055811445937927061801163450218997558872481826586315141498314145268028692528181191383220822333798310180808754511582861593937009029774002563731861913918997007336866007568435404029851144404431222617116537397177719624596627501861984444524650433548539969565758437018325316769092856197659258727740683723532548756142029674982579399909623951853323015050782011167855459233786810299041965074531908709026721599801539496242094432920100912071804306799787885447634400455528026864053088691893676261776810326327553332749689362772168002354486698503375925637712551404412142943179280783056039013871374632630148638998583602068722851429985534762815174936856083762311885788607433441167506218658225901031368788501801875617568546104962800867167893104969222524646148549936321624551702495424733443864106139044417591927174390339709872625269568838317060037179751284627580809355205895390738326553072014002860350327305706531054797552990429998138036188609957081381574342941857450159268793790931168598555926903554275780429906126439927933663709491827777356054160852123053204410686802411329453840263054595451015583830833571233074244475312396032159257098299973587246335129234547359458094724122023985975333658070480184165657388176461710556997735996729856912274055137284342904716130109388489527602132218215158272056273566216448508692337372905924075231871295933739887718804916712289162355616315496135912365149754185426099890832869647514496317641548713293106771116282166379061225167202235472194492936562616526508642088026232745292475430092450412334935869095982026447706193686864322006235447430919525197442964913006939878663120701648547909707104650718688892008955388376705964210421333199981361005990286524625950458633653551277411938178700407573689216530906929486334937467630689541017412027917072474374323895672734990752118313134448968082453276050574678807319904270405616605843334928257865271990537395503347168262137052457978517021590453348485952814324433937220258336329241695782839287280932832681403792227544760269793057104973560861782647488092526473658204349330583377031394886467557473498181704618444551198218957907560192435528495256961764689965975946177594242708088068515617710590625756566645379301557608145655291175467287678124455739076867777328051369892912390517090544106941307749193208369320289863865051284753511368138991736682168418370755439833630212221998372258892484577007892499077511028138188536800009629208947489305550311689713708249323706043948342740232307440188878945689405811707156836497778122270931422149831168724691459069549696223439687424185068364945828094447227188373488349272207072537456188124070114490403515234552872833408243428797270714060293569486848923285141565508740196306992476168591136014542555648196906284553970302957488654285262731614157804359190850163133440035839543774114872276129804405303757716438609051788238295087054073859370090509639510787461192989924036814484516535263831046706043482147689541093012760827841401308797972942672787657209204044608894747041073679474734084110609599898355476233513496049812893473228698469032241560714680254884778345743237848849355281790513400873729547236494592293209752409961107846290890310363479117630867723741241053453670350840255034828028349201942147079291300169750030472354434249045900144385851585656212265845371033655368885261491917065527079974893319863713568187173389894100404058193045515654356748530597077030952057610776267630668232316117591174260457595887261827396078225824910651572328216339461423659753425437429732868964870247679674841223965142582172589513951898252569047410501579243089876209134700439769980389106274430132919716186088955971948499916410819549933730058591726247022772831964537626837017634494826024714157763396680118776371358334826936828929040093551301937493500507815464439741931006508693865880695475778241001799008398824131492474142587596673952826995243971899223010075608256388391694976511227381464217763847563775869780924074409479999130174073049774003370992071007059059293589829038713278700496387157642580433079179255775157399939061224775954774319969591206695998859496451573364300649297481011776846305639720649972728511931751600219230399093869509757875084507401340816142943377598839283504180821863403372773572602337450829301747544385931544543688335559347400960889349823384630276599742815302280342112581540451417808769552928217398970277635462030061493484314593335095463892159819684412788892685340606566803387144165973123721700843126456708733497288193285373149865963453988388406981253670424743661262349946080243430877044557685961937344791392419492895157933841117194226327505429102906992566481529387589869480919896298039349931433387958353999954697237551428869241457699870650278780325329744512151151604709220837294045329246989362671676889231990015679005429976082935352873176541251199405037959236331747858769663815926523787865035192345849100316998812570628604712992391920595855308702231774922000149031417763156409536316194810441152840738960519500082301758079089282790063175433334729475138858255039536166390563915595228783963353006893484328746102517887485737966209325967581477543187785992207142548003557012541091948146634671280904176089213869012196612763614563371989602966999005427468439958983654442107856697448571412464925364493491911715597218589094606557253988059847026017428279574862398800533392044383592511220876116779764739700623386279265910678832952239397028998820690231772532898272430250343719524867443993911393912948566629454786116278100743450542009368889621346562214768224494848146677986596752829433977316646457405749313916413662291566767592784518782122707849654639680649406695668382845302037633541548039090412167706652825204928042216487821459270979075817856539552276356573902271687507459345990611666931055062681055597681400252903620282713965610281612735278166567779282528522063859547487379554514229890547682117116850904489542616952729659530770620738070098666871438591568050688800598894252679536527955786637760794381350099703479677789072636113850304762723774098108676593410347579053618211787509999526613777208542851337910541455335586883438799110207428192500567743778463142931566752254287816228856437537435714352829491704517164667086965361715914117580585973066048939536557280783918084758747736782359601867530416980720563083617220532092003639770985265468312490777418416658721370733623736226889974397373070604380700972652222095641117647573993103641703718152342695309938408566302839550650145270378730832554618036041841514331945205279231542670777883716118303226476191684758872197984392140263195696518971144904665676944990877912418349590403471953948464329827589059612758333555211202272925075410251168441918919735841738881317697987569012536610402330429348986967592805121717094154018569653863822460049572761852660023915328520763410672483277814751156474066769948075679706868995277460541718984294707000866705090188405323514396069044103011106925417130862050497000955434155967306093022194566305164377585108591364421609996750159119542914941896424207434539134080993186527204315345740498062875164390837631238505723400998010826469317086486336777810671648557883695116620645425478668653829210756605433139470396613088780352591232075285163226260141639244765051123871119260434079533687358164432115925329625144759703173661156085462428937900784788491668689272218201735605121075215329465888127759135929601593997657214030300232164187230970132182969848390026667662734916170896234883392234302918541085603370231277387490681901987354331008052283477360586061387469389840143805609634406740221305276369502331821636487936143288615423393464187100677404177983869138226144094795972850211765426160283630334502158029621452699555372864471761780270569538998982837095384795617414372838520860977745249960963107434219268786946636202092339824495950567782075828612098345248555244614165581846780700847676446781760442913793732731874562769559580026126541074645416936721416157151166899437387633113585346027644657064204423357594218561896146975254727898284456516176220913518929445197359716259194352251546372006348483803747883956552143694560429948881357450832415681212732309084861935013723517318995116534985527248111229385648010831375920653851217026584062238698338655624192037834238784636952048604353996978084618431144028350876135463733156176936106328630058888102399020354910136030582629327841584852650635993464318226314338191460539495319996678764001194385474304717056168313770323823138226307219949169913382484741762276973326161128021641849409225851354497518832200138511662438990201072930493905324826993929973576469840376052022489591065125956861361473780726508638179889115919594632863507975448085982795079883371435795588950430325408145279846058714470615631738113145259320379887127110216591268567743132057358247314647203378037893801170511503201251623156139205328920539429302800319077921305827649515608479964404596555238502343976212116158556855474920499781425713295526333110659302887367369986935764998596584023221765361064701032672513856343899085639469346999828455082566085638875695154411561281681674996854863242500216132452595055212867844473517464123011608798893144533118566275845964713478818061303849141207455831204359141694040043150008147422316945819418670310472675371442274409406916680427688812771745405832157295620460520851688653457925606601893214916888844818051244786721890977467735694716147365225333361353080841151511393634475918839104457736774353348676674035375619445120182828053846679114664496464692506259287750353671218847510424382639031262851175680525365182497884208366909763101041554305442949855238114961083142621721304895542365502319483721649954717375723304331652603093965225118941476139897455416411948061772775775910067028567342351086967478518109522042475908454059898387236651641257340714718910435094630662597094986583845308373908996044620683103434135459747970538740859592282082909454829424985905473168698933543871909224457022461817331207125440749190222515954721754475681373108425072161607894918490442978660115618218500379740633770777831469769044057382586588278782996905366931886346557770485380603613671546518923278723164096891594450969588943522162107073900449558024636476714375906212403193445027080632713375377061191147400126345898357524195296971745980293278302901527193983785834727302921296382641238553574121583699470917615825432382460722193546185474138332935644919073952784203840722742546308250667061990681709926839356631828976448662663870788860559412686200259171317828819239948677670130721894754209053168615964885179506956714611851017969867154406296728568954657006853595543211342158392678148983181870372199481601083151722836355890372272607335240952660978019216581415260152488831382158622893106344054796907154547234464571969937054880308941881028398592159506625544608099470674997429739691796348747514044349828327792435643046122960921547414420269239718745436291185048980361108884460622279511901002077435553901753904095084455945380431006095991754933179184278616050364195812500072557715604860943057796300323387201382526588649688738128093476686509598890815992724896982234237019735871389893261592494992221397042672379602622934413419559466268219340789040267060740840023504615250924767356019710847872404520201032789769005202842383723732586344313444060780371335941033174926688036392815280909534544101713681529419250421528225416318605067351430262454348131416187297848691632121254458330500178897567502271413233390095203540453816336936848528010021262353964670931539141701953001011837754419180945650135542681122853108814367829472307739624967680293890907928421446208808257409374443690291916437610378539847551482620319821357217145264617345525560467356478022069081869700204081838259475911109245523790984292387752802694479766110071758346890328442526226323207026928443390464593489019332394143021850650988462377224603208659811147003465093570690841267772395734705871761267476088527411713885928065681399232884661943897424490759083542922426722722157301131809863355815202776527521855632348760308377159377699545766835704409594168493397635751159824448580647392228848222904752470687483104115518601052392593075767831268216596340129891278822741099518361537886207285321306283106544983173766331586919132120459512056972131861847671612645664018017373347663437081860043727317468245441865509190331504048106268919549509850133062706740431273725761035668518442513381513393355110279167960350988020068341515737546619491606453196212346121446197311871374363510231821885109325120575849943296112144939797034460171672207305900381084685745060716571271869743548053796602410505839102315360028825234158951674026711632086306478457363580336514689864003216700651501754064024618796317960869533187908302902070764452796893911262536518650785121619853860754883710762165732925806984073221460468239225431527469778765965886517796846235380431362950647604956667188762101482253200720541782526701857875157151553637402586986854329633174460926028493580683359329779897245251998317900939440402981667723420456182540401458668936251303933065084352799343873187254943682530697927458626068712748148559371162668102231960867961940778995835025607613372180420072115139224494242345200562584743423896621342442255126576588033576081647212931106109750702151166091444027866674795495090630254215859152354432609673128313872907620450845679962857502562835995310148093586050538881521117519132335004412857457218973940214469323837829094635612745188240342413004027525365426390307502530595461771546283536403468997841349845908825420305227573503647014313237757009328677156782433794208705004719615273158911615988621034961659536514964512362779332005077132004581161139671726553577774056064547679259922006922694802331900742515503796432725495806834584422113680260234992740808178476527698196121971762909839928121338304160396064163585524877517949464880925904596069056915305994639193550448213191763122324795220262938944715984139519444594302522906848381353601029502548899188747472989703603571026373695936860440730678513604086006909933130591150529823308019526320280032176496817385183352673724770309391785776507975956437758249695291778383552693144899387368363121491219287760420826828525077285859380953130311801330855059409781022870555433698726934872522074109392095375241348970759102245504784077398379409750096917636536301380262735301803673361539089089453434158957089720755603925728436070963749086142388681025596886479105889709152798110806591944676263733981880827362479739275549834450231005262483708556704556077075056218097469661147631003740192127558008099279899824062748307919713422640684712362091200627838981477684568753828235923029034820647341791916436921603986117437435935231910368370533736359796632044562293796832351209422467887568119848266833778782399255776785355617112568208635051275973700921830694884750900180644187956538885731849129188505640957657636990889187317563373243247622257607761280974877581236345740440667649203630053246281907336239032871868424064332375189379441846858065445557762248868105766523936974181558896159171053073520135166883524935455140879234760922374402385070672175840493981653792970259990803311083870945862657763591760956584679727784175371713896236311076079232358671757817208290759858302816285805252981005419560259141589797767907138828770592205076217317048881851967518523649978594360282831995798258516994649578048201457604321698238088420018338326584682350055177295040386703276650232516284344742295065154418308029381820980316871430770313065170260829664023555620121606813337288753265241264195680025032297505710237389092869944589203905529742883616747175654308569972190006713473211153410223247523082681261186895489961994804696643761823517417821093533447420307987383001678714841030138855010484502186466711545113412942411396222159798479492082628577166856031161478832105324826014695571294191934890417311196474035275001609123827680964177012210072423937923244636915229767672996344459573093026413077296406511617850625048240867152173353027677299886551535448463603824035508818490425993664361104544415017485462388526390907808675672142530620581211944004181950846906873278279257023726331944858775217303512809550464924024507393635278404125820702228598315485390756771686813671063151864941820678441087619574693303667649728616049988928795500884865470283073845690414130112336565810921949491108561602722765547734813935808276935818005542329673545013738834662903110765215895596768660436700357997074502076544093823753463994911827085841084374582807138482788702778046371239740356078438408506356964814596219147880129093599549361618256840501022612959937569619884800165959702903203181730762535682790536275724438609842308628519352958536519035757094396225146386948597277297269960213738636535090034994059166869516200321444385237732533956110321648813406260953151973310619545769098381151808937659373250259895142006115433844424661699022994661935325510155432631882808842980369925292051356499880004245620245609169557935234758031763416564654951910210480858590115470154721851534774165177652650569715930067277177399662618104697295516133232710480868664575654617555961305126993311504038061152008409626131676920543613757254275685577542629898652029327346501691631236815233689079393954682380871575313650648667821795191319687568011152509822350895410626893070555889632744819946575480506834819283435234712176755964129325919513071258137699878193758401114327836088171316172680574086409333694446983546182624935912526921525737936698126136883490624657536960793891039848681616639827654214010675885232848974676278090104087774747062182316304816811469437607893765034610546457977409788671328183072873283372878688640539174431698225760571571809835143564399740320097612633137927896932576342167701754540020527188740649112910485171468104275385156696850689559826176493919064889919346732483067428029315308286841057773646966779689707848698025073144360805208198174835113560616180171245997884372260657545759738318587632795246068795540747513149429292227101915915233248509307606076677632594431844430857421217471577291001445686969140940573913111379563719659049210108566570092238504888680548091108361181175025034977236762756450649666395212924270615043294876316870598828483358262743441752227842602861889657132313036891551856919462323700256627988502021117850882305146020809242982599308801897570332891029644979101384588956826271867885042108708066142994430268610974085464681443583799339688018043314488699374622497251501077526460436736538226266395185473671097099908446611248650535789000105505670980953541432517493573795304889944710392921278544945048681643290483653902000993734391987649444523347996435952036314276920242539920730734025626176124882518954797679404428467925164513346047642703883524114768177842706465420922188564548267500111276221614413578173011262472258702249351571885606746070607517991107522752864221365094979736844648174145800803819485062539608405653283898439619524938339885337467620695294831319725597069432637733986145369514178297353054772925750823906673301329990696721190597492347732055997922184346401050423123726681363071625726120836831945537355815851560474235664190070311007295902902653786155841355555938199666149885221181515733364249410093978117544382710373471274996909897629134821905333132523667416277733618634678004266571806502097800201143516804390555247240862282257680719187990094603887856496189304396607245353739896751643153447115441363071910706049222213245679631868280836713869858709049765734187180419788438683152741273857920814951340670459730150392819798140241964745053544390874736421243138299118233012498807732969972990844966765531056042379073749178018890993270475886929339449898904531687553839167439068955525947494901931016906758246609401493345243891415335801751956186215026508408572110225305292631395051969928838587107348073459488193880461132182432636072743997687386105785172377978715347167833277192566928433567156134160484535087254349297385679412142650619778198608620798046749504419168278830686085361330728100475899271803144504381130865013658647377643983193773991763779965784586627712846183826861378239221044997857427223859409591613815253453562387012079986926872231059054022501255116983843391463706329066222460664400653292081873097292578997454635870992613477241350133598818877920446790563837378233526150213960163555739719962426303634204023919246230171208024786706366765414255482264068644108906807005707983038552292160090190227179544393377612735390029475411867315559865202832686684872232044325762282360739155213146513969559349781358158865763334693612504022904492344259274470272642823194725426370284618243557800956193202448791422732476605593878962846418688550358243380007811689041387291368831021993228968758114947614378975476456670209339522984960377229309827765895344960090264606777713534589662655838726320044843888862454672177837772393983689161346550728652496221145062506087203671111085018706764912509473459380468805209174472371790267580024954269168097802977459479975239115079820969347004268847741823365831412656313362803466469126520925833847804037599479367078844299391975203296741609712498298391746012690215756558889257917606990844011225203964469079940789443367513733452023251836212349541298767651824062948044608369224594744536117553247683678139199527380344734822188637873657528820954473907981552688109224721426382525048734000112187348586250918718367245973369201019605376400692901645205409565763544769051560653974033018179873688397050833108343505654367936152222867041166277314310816270888475028763863327328345469400201573027932293708390467965182425763494872642964398272156260105917272037596117252097595296068269973548055101360317842680125634827884429946639288391878195955101228155918697900411771768857783242722313516972230270635298448688012587467477259591777643686385659936450675895092675474413132571780149708532235131614844561930094859131000985216954840498599837965519014943341581036548757187843866210374028091607151775862102321401211343180111240035959077757445383692841074810290944455222293561849131947652693782088854096479256067957943199999749582696946145962775736118333304022974746995294507579817683971949837463162711177285041105958519365644010558846246698528257764832617332925883608650775044834200081034479866932225899639928910629617382860243321652000089692752102169273376819238919143419305832557404211878374901061867151630357460310462789644427962021168726257141974947049637864003964030840056655146635128222590196533538125330341041417043028114892275662091017372297551306716771297628033105775093570347472334379749813137769855655625135145679112289295222408752178384193825378464902079280892175609903744932245900431389888145481448804672800984898641577224783646466347621180847009579617176479632300904198228575540086897901850656438508936747547453893267922749242849614785193269316599816345654268178020162579208103838843765403576827127910669241538413397480431653232481570030528966666251363507885836112207991569905818367792847143458126201508478977317617401068233602232317010431373130419868320884502738215659145921736169581518242501876389534119750834760568547960559711492379739909446192992720976939580055528608678487945687906986417176820172789504970406236790089264568875335562060494683384224334503547935595278743287542883790203060663348978374874916297220162179842524390682397501563493736092502283599614434755100353738539991784454023163948837942306269473969368421456332317520995345601039301747315136114454492876570520471485745819490549372817883609016235388037914671744639039784188428339956518860396733743358125799074118863900322570503567257658298685975558226379045200538284895920821915334461237389648105054064115522804328864752927585435878661556807347265671147311552428515821998917699649027628680627611975966578132315471618560867066004992732702335176215197620084551432268514874915098443965217436575951613950427383777513869734128881481116145145101768175077046890296246561443791759539554366933571137937345982042105535964658385561934543281671444455690478974053227198868636061482122959847838522064615640716697949071142630359492756161548360200455961167338914458359646608176541329518364365891805054268236292178383857570028741195760006035710325773576451575133537743206654546329020500726458618470996826289593713716431146727362030596979654109590973180162152367036832650662425098116009625694684226019273730247849489892250633259060119175987452801376826282706892193390793052496418430353932152685408592020341655376154773374705211076437614801470906585885181565922260881172118748172178974776704426159839897876249935323554040851861998807289654689036599773098434798560705843810423193840550768406938203975664312911551559728448401790901512034356480943441990038508907161869402694498735990662701161531746625924869794596525300631587890525110338861974356320650311641603678542270144510223895274186354319209844383109688328139857228192335575189812541946790500932215346086541858797347460013644583461595035112022047889542262361664584028127502080536609803294254605481133683019733681844667740785593598703362829494062481206151061287498704968799963946155695041160161664045085561920644259855417975037842104809238960134639869264171638716693354561515248849541621882290812895160519764120970862086278401300593888934691936567186948077337196388361042067623411379969690611297682843145468040824895158922290756401691073575211692733847691910074020158773444383968745769640247134791994651633591904042016786041552937878699494142910150590282007620980838837444570292878902031807756158812680077144308456872316009200830347700784778361626751706872775409906486676190694183914188434877313806780175891388565882232113390796430053804290503164601501634207328965674297964428993160651804341442999323116190115191418149992093948230666524632664044592116794775142709424462751138031116984599786959883540381314520323218005354203060306473342866407868998972238235930934628426509470463574446891839708731937086807849087854902215427425568590581136470951578186942341466760337300190453755460547779048411556179709712316561567016806569680614224601448368340410997513175654686481615502975143665750277791700228090283692189127623742387983683374662852015674918765287265614428729752089469559504675946093695515907638788020420994809375985511743948127604817718919772667565971001839773241987754892531179848878201159737057965213814596438511839055348527586533840985940609416342606846643552747361862709435084630275411022476926833587239974011326311516898228372659600905587745966415814084854875747785493313744018203596862107151978229449175480272007116573904969457178027738138733543647747317769036330182471841529329999487889041990901243111134423650132716479984749326795816602508461692892373632840252563611250532007183792288382708874404004411622821718942888952075750407545948614295850154457306889229664906544019982627915002117998677818918595220230138459897011230091705912385689314553392733625507985957677441494758654486678039606511097073715876499953503522467471132501648876610672798554426800882889958524676391554860712249960645476200138991354270977311065639085175770771208421265814055368904521274662020402487443691989117942712725932573576028945116934275161552585990066930786203877120186679273012902606933216522370310193597290384671491775821987617700192353549751295813082162223464600856045266877409880076083882481843532713710640548790448154360474748348560021882903096126554407165646891215354382161041402344197939251725707323076472782599964046265771914811996374187752437550506680006712936874758368733357019229412184914619431633928568869570593471895254780642304922530324604109897204499431229648341027608719391757111308808841654132875548159413470529339628964722042980375003482083481110526351695797062455776982422549247247069814138614419393023104095773581908033517892593947219752483075853038747172720204699556043796582264760423778867563046912867192359859314921846758021286874188238617047788250593339900902593610806907964820210931893424719536929912063038079880204244358944026869525730253904381820818837693309098320591571745572036837472429661563842950101040891280830214311909610255356070582752845477900163864664358501361158410458970968634464317148260989644662602324443142606208849257038725997868508714158427037637501068938243056818514052601279495004685058425661288741628208196460241619428492671542652045740174730904017190122645408236930856260723258691155173524600462113948751770140843100467261650379187328558071062144978401227823085861889647445825569474251984915812570740678197363289412982103679124097206203517378030020666073960289252662052094123407092258316131847820467627543109455420956265192868752342603221959499899571774414675727255674466105312066276213495930250055853754533701495052727365340481660573341896788009574271720299284656638893465242748035719661239373641077097167258473571583282131282216527990146768253254668407064381291665618216429264336200802892977852254942209174640889956769577915007002733755184585595156292488438430543782138047819049423299831850868775735608485965969858614046313545736456869305082250955679395715246471241708360341319136378084829602593363846093442001307677444174071232921187709762641199993071864210642493395588391964432793545150530187894653197640554207705758016350435678645148350439769190578465053727435954074095623100795914673420863189471434563909898193951047653483460028810927895810533999063252437691327620779763935256053787034290754518216749836366332313969025843239053065033378380370553398607926113803665461975742423359406497973054623441327245315992091827834763267047570739703914397601079527613505094353853979669507530398972370516098365210924921602087445437143075911134554580507610117889713760628524448308184920392042525452676767544188534716895722115651132814320487928478165293939447337505495370440941417542445963621097604479577286178572341199604294326939170293334268222263526069309461088376543011837788208042849866140121387711900817652817540334844707445231475046107351614886561226325405682989437259151291075544429860610860714535048921326566242411940834747468410575128939679015595445147386261776101775084056375025382099752168936327975698508163690821564718103080724070682609512712392796394675398020029552475776579431861302429060436137368450962825119561876889729093900528228131023492094833295053806991901032294400434854969797817395037973718076138517347221289156579772866380032240214261318422444934286549779943262126325659720193499978047321802728558001384139795680123853659480517317673424612334334205263062737759384443830389741960093765670977505371456089049369493710160008121905010081907395754777587082037139541542774273722933141918679260900257193939110485713286199257714899554333915777541469539573516782660672558658997143978918434918245910362762766649564202959154251716780591152667733501097638352725073372137043572685238376590951860771133570842823238831799818850968451775638351276135613883587881796687031541009936124557866049698757169165037193603153534988357311527292193438543955110145219770884567435768984801930237916323500768632436835792529972505103675871022138459976255794482983555043917920339138664098920689995512989097563526026066837593743089038042545007702493024188906030156959548904859140947692669709946249856681384305195689589625624854113325219660835242584509416071925187443702927642843667720661585517879505125576770245146988768854119024309274816990927117254864336766633329011869278388307574514840283877973585768245481158657878930533224218516352022661969589938499878211910690364027889026495514672409809023585739712936528309588463533841266303394414278857872419226280950397554941215223247957358372909712438324265764214591196690541649551494043751906506557012114907996278665216577102161269972412095450763932239775910273711781389153528307606269091649544167757000897282585248014868473380252495156540458259733558231739280243522053116966295797905063320212682348246175255689151482027937402317254753606167608099690053964063418009167383234457699835564046525430292218976226202378813038436859932653353870176887866347127425102132613272734342273719490193404519094410881238527845807023138665421824955350575634964332862543074165741945590485650452761860833499123422299681764287669540613585042516826926814946658613562298569005032005942916124338680230119823414751897976447017785625264539682998346875549158697825256452129932918842493131642618358423529257417286417726697093682688687897601835307138480687165453259572596887042906536634136201580634173394383813054548242095931284086295391786794846624794662348094313134981245661803710879238694639744910023441924802269937328941390234969255350819831103271770952498628395120105325726960313320370938389469596367306668856184747178278660302555265132549440353905636707008427120357445965547616861803350896643722977620363800143750374399070839970804242691059117419948806387507382900888830359361227659687188409113454655982657906860803868683142991324497418470980542903096670013538101428686931170700777675986944373876422497820488415141151916299093872708359032769951479636993908788457664747653130043093376994750302747004374944026302898683454063366182168593542722786220266541620197477818404163871230322602505074617302333935541432734628262298952256856392488772203857299859767607812787068362024378145053610833295116801128904786653231902108535113629648709217869363771586896879189629597312357104091007872980711910827951042073647599153918129566897806154194233253362023186274677558943800464970186504145038333894955968055214569717277220190801737036245110979465559908351749115233162082009997388770688483360222692647367481917846954894617937191120072599332125034725458302951266333340298607715123831579261460058539555778670605810078194462322041285857976332679034124397128640911656368044393210842642183360065036994832618371158195792784004555851977970439317883212668740960697835085738681404691663748991174171259443972308002100366908759290006076864995581954686280373579680193479050578421667511274189451551578073896773784165855936972909421524195705987195659256861610428062437664713147428814538828379139850776920930661767588283611754995193109441797320874631170017660256775319154560175281215847743375058043080184929466687392937065905707191022979267307973284620974903825482066407147056679115588772082463174746948183670226421892265536395951257028237166859405205111850430955978921960203173060452137256181121813153637837411018638837676208099297952803803060249900136252187908247299446368870234557596821958586321881049240357636749012307114002056250093843488705505815863297698837032167132450634882194796872264077528349983297053328316285353597468375972525753563944605927284107933156199514645439466543811757404032222708677777995036980525215979822926735534169868832661960141391370134767991699883842649874057494643314698231176498674582651437312090825512019631791501005392581873067351223647944756710501492909531084618544284305410624238694814298200441467272905082015457603922386743989360003199758685188149371943218870985803312805185522761387645572538884407434991820486584359677043012725210347561842494270719977709957295522056822552027536463464328065481662974885601640362149332764115313573139242026168524016679828376712302072708927082257845794065289653130900579011840153067340081480629270486163476679038627367431824143174742326993270252780408951642527357530209708205716537228750436860706669491760646263588986546874705910720798489794790642959978343270460225853194807521557007126514230559154971590233478741047441988592186848289261029757778637203065132626972208125757710019732216403644455192925549510337585710117477421355446570866181618973668893254214793871934832813641136848999703479750110888028689058429482481038732079052142077033007952104455905512483862099911175854641062765890409009016751374586953410024074182247192330020776474331786695152533096358224106659182063132225135629745836086521609841737952988676498040686864893414807683380551909541621090422799071016833729065632537272729214687838981643515957822947556779767428801104862611863235969730226040458486421301223578594009745803614561914038432816084905844789942867999900332829493663246366686506675665603945863095858269957480575750712495877912428826879480019563726791667014712954453065040280317283478551243899282651666980133565177996741155783619118357338531613361203906959693025152782782141472125122160405499206098275933690078467594292352377981745052935648996033612021291899117199101252760735556649355830314798276075512788714851706286030330011534565958300089703559022349096814557516105130253828812992678562145465151651237993842843539300733858838799715984495260454441603609925187309610358981013208480530081200030816891984307365025148532946730005704142815127497474271136693354329830474223007905108145737891747776885742334238842730902680458167664063390256125087203290549632121141643276097963567383497690634256866128961825443723250962471415283826181510664150465804338037326647888809301635270781445483747551356681370542497045309124901920435760446289153256938000926639907685409443051991567287371434521696411642462811543353238146724374525371486369456207319620563784922755803219479456104613620220468926153872930921173228694380724578252807728985185901547949343355974402451894975136263525900029378431989286165631461211371522553886017478098373694712300216932680146045697954977838012492819560646596587502725548142236637708755822766575806012480621211460083646861869673809160899532704950336298327306020371942123009039219804073584171198396526167938575681082860602007832103279292723026573824738470945496123074139229875861159695191804464853001656243390012260323619868554690770094292141244157759370882807947913244623629466097831696912068368972134931893761348890721947353814595149436435813694488528452727347516797383083952287610019855257914065385112816789711286564957979728583418141505983524554608160895946294403776119335128739943579156386044805801789456098736724541944793142822062195443019390899848867626742692908579633987386779568905109574536036914657972624768656652680281577476026771884369396507405625172192460454742593413797281677384917578925234599679399126014701274965794762994369915195582713476679854822476843701576740935992808308770957916387111848504344742424160942092929445400615158532184110705319847438958280414657062511456098885853225100044392943437890494569512785237987092556492554517695219874304653214294573045373826582547188099151361652335135490067839610314653655585432012278204108125392477591102040588461679277279422370241810686583777099298887817845234790598092099692309074264967787225201025392257956651337745783801627198929001598813794733339014100068394744192901781348983525145439733637324319253046742267842705671534751995494274717944734878268003838018208494889247788208271047339408643516223139170098368400816772764169586142700112462026610785410026345781540255586975936015096296851519735342109321454124301625913959163124695349667711654643451041505900754374524766500974398066020874389149365069687864199002651021248279308151807178458996176994310628943660618815947119747352716162194561420358198940366387028617748430583400260728350840801882211495871733292260870012622986279866726873109462698366665063555163300968220096614265139103819653987287049467534919342299178661222727584883852512087604443944213277438786380529967849733603183822316222431628757689379050375264115211740918074342748694022556258239552347392332752765211047482483180207212538045506284026473304091912857035104123983939945430175741621014139974439870907831408088199494109558740367618157977064650885799371747990984937035775347329156314185699730607755955170829218399596013698114471661868579823732713962922581408951242800100301654930287301084225024084903181094368755513322269522765413172501777404965713434575331272516478880323472135008581774114112081536864919854144410153534349209069493706645018536863810905935811921796936718350265597416408770426549672408523322437779419658774290544726300855477780969680506227599920970089315178599168347894988161685198940195053549579670942447007973586418166006572895449677837664155511171183515921834414911818211113277819477879734435164163596761852732373859975816800362803633135398410209067678748915721660763144200079178522297313971795211986272913359528056346713218928362932285811634325056111851103658605499640339737884820178596756711580476057414331293626680833822390381227685184807924155833479438372627425843236672932727282756996896410978027918081662704410094162717182303485229083669609560720215921491854133061605916205435213218839928503977936784395155610540408750570752318476969188941251432203804744045910272445095040288966235493286147804140108383102035965488449990110763532090854412883808895588871163974682833056786800491671163424841277946241213305936239215114865757859673350530165342641971848195287967968368687595255499594290270607993474155975552281479334426523719322280188965221945810969118673976710061301934232158876843130406180991604926011239422339813555364770903975248776398085819068295531937614007259392061634347434213335200297641839781744618238316675127310739094627179752759103892799250558224048180485162523835301403601842422946440841092785688753780874718735458442244077111285677711476586965076798586464940587599340404208261592330655207764130176878365209882720270665713632572010079405317368345014601695875744927407635667975798229960099188714025847840448789285099221296184261465421172866940368349354157853621961887896101035977946268153126633055243570443450607090840249304717275400462130905862016196701767360535647677362713833923023128911039871716593661320046898820867999019550283764783058893804843402829731991285193569147807920817355052581321320196949237251212328203134770137006637749730899144278493532901964836124752130288502152099651107260035924335123028802186375026482298681259628562340405348482560466420859365879451716098851608304734842772143003321989258530756286826529732270163772755808978861962135686869153279639231409661843115426037377908440173751054277500726936194657764523576551567181208712022319464897252525179535099472211387661045172314698773326270639952123634856417083456128246559778743252103636652940295704378830084333114688454656636291985292740721016247559189960055971775202460261857666476109913825037417146754446896362238879350057670020316204568418311092822102525180751765970749232089997959723315776363917040179440728132169572417030462888483669360329025527228733102677839399258677275595256202102688586026106982023996016763978075817951359269064770674177320050482360055062112371668253690043700529857766205249927209418494991945843244084372036459206056919528595991511166203693094298108480978535098561045028253806336188257308337744806545435476966056998323810411801982416199066205798638713137407781890922937136703110263267399573758770265893558744422268811406148875369323819015985563952799168979565964599608982398151624280717231910246677182138053882427754122766675691182143634224661563732188615736625315247749155502086895170948900622704578523943000061695013188368132981017462233883775182569291019373071785234352653294610425976151404406063930623194484773973884001609902390332251796401385057578705082683110623141327034166851116904023620913251002575808428179589441599907337545166426497368354961132908408206400822009238598508468206610296512383992530711382810021644688778218390301729111788845657558156122079204890551457399499798959852354705303674708087591387057538448409874370625051889327751547787077904282067828865138891408324794062723212715014827196098242571164759959427376093425686413851505955564286907811433755515009515960520032498485845359493602562724400656379236643984936566872394445943941263074393740071374730540570523700178914671869405710163609110477842759634820306939514993278985868349328796295575694909594603539685359845103740045368395882031307749211387202137439641682629090158192739539430978563136389845126632897460310437241076062183074285882075181386334835259567444983787513635867019504948666535039483159230107413460161291660558374410942922150127286382422832555365691434949216298077701299301791026339217751843642525236022761097921320471473953647282005486803483702494834116651190732906592335436538691449702948216091802650811277157885780824705846800439951861624771646990140995949786427776396378354991348761222926056954486189397005191785199051400550264393083112324589412998494293359551750391562284119539059671410649089549892444445245490047110858326701057009396865458918086278006560369963762786198590244151897472976113769186704697114603403952910216457969288510968682547614351713262545115951811307942830715285161642594358000303612857724070550359228862936077583242017156803064044713706888744008367403388469876932097133305826338505437719485569489004658086323035206087510942331573101956631816244546580163879278735628532931795253132718409035540347860624806072604016725933637866879795360105427849647979666513843655532253936389797729746958425841844610504208151466882070672084634069285679807904332284463972518731603464405685999924326351158401740676480594056154431396506433246463587790307006988417527316740204949275465728916870033916946000357125997869547408509167982048665787051361896334034268896209890864583296181128495662207973914057307247738070465691408247145297013764966237541124213761425346465568181763663257958668857509379212416617543903576202645713239845838040759390030431750543736043952470474250830975271459899552183609056340930220121940100106378970775633813288876543406595422640280363906641340098668528898318708779181194108037579301655579295180728478585412383016166543519727129082210995573086174417465766299537335550795599171102136226197741187307146901881342890695766623239697414168770657602570000954818807572727470383071460804344090208963409261531219202914007229458349971718051942536869465477462923161910253066946860594679300148326856449308491173673069895729365874535756092677323449722757544936906581186589794142574396107318961885841254305001362758381445353219634535449209956655994429671546843685892856506444472910878818932466807011440681690476944337822865198304423465127983134516603794710706708993644880506144768980750724108425888896740176748213603786373544028976874050798645268120157617429048732095412118370277099353717520610351079933817740083158865340023533628120488474106566402953353760078226551010362274049095855509464733257963022029254687978534447259938169087605998839339753655171026319399624364631396618118931216634190335746911703323740778274479921392647271631144761380945720225131739156163810029294745293527605635825740675095444314829672390715186191225883244400075555258290678583381195873042067004549911704382591755531816399123505789952863558367633278639042398717683090002704755639791737787114650608923276914537754536512938874954837332448288126841562936490455011952248554754321769215940954786727657527064578416369645078762079547488086601884794532274074012875126967120123854938332867372764417771470521820154137843906526167528311107178214023069345146103175256219148421566456079229376668130566940359944537828956428566682206865496784038324010047193070506032943078029901683436858281834946535428907395459469390435922088696329482017740599071436396488928029208053257408341399210126733679363001462871895131526690790402946987698437022423582719661169264493295458929342565482944365599085316787252799907286034647900184845804818870099161431156125516594012292612253590701568545420146868020812589305246444759575009749707813438422011707785499149945263064406569681092430352781705940183808930687458674033795977162483952296349315776091319375213474536426304331664572410274290012229032516781216567500692392415599292055625912137345925167285670073857271358974477850112930058935041967049730354210574955701357961754648992482171114794626975978058285517355935485323130002434328004624744753498694137902530017290651956980068887670661532137416372644086248726101873756212912420328877872887310892020240077251845090701967358071474658424188073404512401012257998782616749124032263468869562185286341454276692347852285177091949803483467423858439950125984226825083666410168355207648644099927693343495145404899584091804082091205718894350311901259653198382385322449751784938436259933968361305599045767073637920696693062164722365093562476617316144652700759055418190639907261461235848197146456221215087695006820089994577080425059882325822747571386670711960181572422823140539691530145731911954567713877981137301785337481718926373978533500568844074520505210309030950048646772212461957933669643628137263648709540675912944638328664536272812801861597654596994313582376703421145841226154564002719432665517761325320827626035304806315757847162561709047522571372920595651566242490027494657704374356773759151536055725021377087645486450109979558151864193914633342479401650143850025086064975052489922816881364287169404360192318930245280059550435793131784097775467316826745031172880052216895511598574693655451342740323902289062048478223550584365794473908947101445977697544929694074316403241283610332466788381369922241101619374236204784457967649741721474111954315300139210817465304203589659484393525448013186989141861100609871575268995028614724859464783520454848225102289056037681159930676440260034073686857984459603154903739656239707516583896410376800555480325063150015714220471384579353270218525914636091891371635895981537741953085507328187607414036562008689955551385439070466599824180455756919681951363919664356049272268987239455995936960291310655675219098546723809467223422593612745949269375071121155516925827494121852668559116666523356171062688051064500795999403103107363794204675888818762696794294878306820633168542441923864592718187773967680498497633524196917535341973221332505124419054469724777932110783620199099029032571011842132091086557034380053810961039351712069259486540151425642840334749703244100820095224493680037559978290783732159804547989690698848243962559408922667378252068102755842623438370271374764894180332249494141024803590783503269071630270396754320026374093900669760143210323685163534663253137645067008395513672684422548554806882131551274552249998925511057422795951234430600881192329101304250007817334727474715811815547135636426554767336323505836627224625988421050278462224895643907707429283292538670606541454823027403628973655771052828586435684711091291337075465788461767816925937070288447024123847433919327518421950919601338132203495798159840871152579954400358272890035600267735895947552052971170813873641908454705217831049140776921689985002036266983778452137677818288566802279039377366847182567611485537223945419673322393658865336660240819564149024877880627910910110540947424024193167726206129396830840454879549765265840717235918373701929971181735465511602899861181674206088868207606444196477206791206943905569330970420621622285508101007834256315057393925760407312109924169514058366807555014231655447802937429734742568814447579866285496459467973858295440379495883380779052142290471330915685168790887821184692584738630513662722786380187021276695038076607911819689927519730364123698972172455465307301736893142647429698312978471953587674050460896522381065256825672606333726278150099861023742415315176888244359078573318506509439316783506693657985325548915385604682713304406541676409450274623226464560356450057649304560302080613318908153985532025212289177751506347238569806045821306583377642993523149004211570785749795018894569353155806437584191558735499202875127496298116740668910214938007630174091951495037497820911853074819387700884832765248973956414089287717466786171122658524107867664133175655713859560906419431440708932270496903614836644649793077525721031960778520571735514289621581068426357176955030969819198856177514935619984741660841870570819148986261316247744240189975473528745878429769567143469535325645988860511300735180604321829149738528969472913527432900359616445810927107097599168697088289791199344094809266738487511194814782372109668508242420538638517282745004237650102160367185561219072143822446277541082446459036676537383204914443599124667998613124840311385255589200286390641305147168451625549102788312923640588478223035444992994277899524594664656234050293865451377857246233739296214329208889839174445939681813054350363143613387462791310917172294802229096627680354387133340865128155382758641203525835873003932536299520498197738454654493299165943117326557215841902998571117691941727624989058227634247185518002025961341997421306728377997026484186385564876181269010439494188605550099456147716060789944818234207109345413113887040403928019329361534786809806280319322994066818388971142743425256257759617196323077583202729289675252215018316000758990608269221937832304891112377398999980155021141352943289513232013051155391421723352354805207980039174338998636410016475654445252639453393615675592053342012482509714935798348380800174656925301644736715948384429308703564324786159052452566850364321022259573390208277882148064221101886601363058326614937142771487539210901462869195998980615536465144453819539877286054637841964539582475417503494817191025711908967428338347729064409479191253321685741046765845617191887482877516551646625951664002076888773802019770057932902566820071622237525607657841028011587340826816039538538363752537205573687662437338294392891759257710085556045214501285552826811525424479408852922599537300323362709458174992868580991363530777248040280907053333777958294147261996350517705244018827547528397899879961066437727060114458633450711639643416892960259212293938783700882154627039852441140550792650280654580246176598769813534707808759170351707648439479002397658020160469130068551104808472265521914753344226965230152087425404587546683960244018791872616759324928648865808656775528875060848903316302306668735262079083637897699532048653964292652115078445704950079452305667083883819907668212690165480983022653897096778657382142484126636476618324696313967032203576942603074340281383716520421169669098824689647786672291776828848159292069442169311947534579780108982627263738790393200693174852024770768802148840881033799045707320248481304246641807321642825026142917693282079300223619749193357833164040863070823169026939677392271906872394863393642450733422440433123219795627758298116287943781942383749753520478746670135675716809694839891017934985929636101663100263654947715133238175497792138562562273888069291096594669084422255739184237498123130208431532095230938824387963058298084041860365155127145004910660173833751727878825170077205726983032159091725829618711619635604489123207543949775349521812190997574116319214890634796756264911909606250442362626606377803347503780548273163572757290506494983566996004767774181735394627662406246174652847906357034851334067686623668060103698561465339879690470180519068007451844823739540737368456334363074189295900725062477014643926788490298919093095295470255950953681749547195209569535370368856729076259889209253716699698744949361026356883129727346649217269488788126673195954676767411016040802298244557792971573997177531135285136829438211644016901252416457472365452952093292255093147360748768460935421122444964151283173574334159951337837079957834726461228958785103641545014890701690009848986623504514292910288104583339077700637671236381669107929778211717990883386936189409896774508129841064308174686491426652747538700047368859048905190803010096716011282308169194123167314240387839379321696496527742441778699965709979347383639649669008906998380745519822331543666508889295655118359926468840270537132005459982137326458864782206340055441943635581892744643201707714684716487328454105633964934824381743772804756861721862896518005766291363484314661871485278687231522116257528591320268133632542495369722492635457060008057101785965071928841905934284174135989797691684044138275705088282952571666351013563174955487679459404783563213760459880207950983659964173326191810350230956275605141602486596388353743790587317260589135553055614612644754311319262920192410900692536064539596212627256384748557216261797323240802222311719723816159252713354810506699165126898439841337129783838178493646947276778600309506989799978372625463295642251002096592638216314755267525621486646442302128611388006758086986371929502278663317812192640231114286206199358093907218304422634701652666662543326401297187166738941123566910670321589057401903887135071582032264911846473707770769399896948611714135958357406154203055196961640891409504495375008341496160218294172152474428597728834099233018989087784008399852675086585467587962034188984240347298756696276319882537690979789879273776233857235673856384295377262443743842168792742153223241787020662132628957248985520276996880205128090461350143255134565987883501653971586740354463567456509563756346250159026990395150349283343680245148265135195662618083443389129918109222891386090496114981202648533958193381685421319578925213187540685261667291739297164853812792145603768422098490889263310044805052623629806445095186034040684892024434878472885215407468219366167398046057055505042489021473741835034724520497443960401539681700315784528941658935674903090251081165110301271376349393562104261986229261045196281791772408613030079034511370076355193702068904952295433929085033701230964637169598312291597774801901791458284514431751282558045429690326277953816198030800091991386970662976951817086999530036522934793069507826723226523398294127849948181787157951621592610844051499387930791254031899927489289224466074626896858843105351166627286944552106353762746916616038936330253104326850655727175077363849625058954564990835327895182681195809985520564116727416276085708454765340930124772738593346663003785083937019516389329913869965550173102028899685036522837977993815091257310406313746761117587672724252637058821600348452745932909850633491942505986905773280796214413231397796154446494792399028485343270737634931153150229355451952182146202508338423320341801188952750265921171215982478714669487552090752040075776155737885401141282620568696357908075341384059097046981883212296291912184856344010753561249527563055764344804806560464508827973761841105798438575040824823517506192889543694972752193339369384669986260001639946015812021565678719496873360902183163462741770313586786056430203540729680075057738567677419883139873501547265790820796043258039022927576722864154477111113101185396185655952365649055187987455299764484712295495651292342818429055450570184864513421647136728759449318690450576596749130690827920074169112409787397858666530457933170282608584926930137778166786062093462767677120873437785282266979260684709047305637772432911780507486611105497952155659174934667818319618856813965256960391477817407665281180102650551472574266635531912894621702136377807136095766139748898564346838145071242103996184354355088412442027495305178837777249404462923073222846715696510100225123221152200758501562829986981062290718661136192451795380041498613905803246298991099128202298620426617125638759507125741103608164584008110645927299672972169047573559159228157755916817991154748642632496976348078980273039375941703303788781007906887689364789063804071443882431338252832666151429502047578573580758924077468601240797053180472517957666313842467336007443195419456292414232381598635290467748748563963387077557988655174345618860884500480183566091690789140529031800944910186693989698720808980539456398052452098598818050546875519871306081502885731645961961440619848263912708495643823676752664812204148510172571372739735148162039821599684307702853816354382913833056462939394689070256297620242413626859906201822748646176571400311323227990056506174919218851915588929629712489109586131695656265090003686267692115519800033796690729793403387099606273613798860932945758405268637747595373667233024198301396171185847704105797640638505602542387462415647379206095576629028452299841321406681850786706081022188326529526138826726939774144179836692230654288865715261129888103057402443489465209121876583133945947616907496552882826149946495295413319083645446805513019468495795430193711094149124763233409530708428859713316464207482360713716623332772192717210929450330807039806530620975539797533355351965079452819559483401757924385940699083132124794612864975002463926994753584566687129462503053433744494520613002386304756214760880571919902273187591408426442085795952144744745866115210894599417711300964609703412533673300163128734009605771791692324334650087382830180819647858554787955521714216740329786419640818863496483452000301981615121012323734499466971207817231043645048712510436828170507176539357637623919580446050430252462995131028257457564007383296536505832935208434834748827304702824290849607160832104620353772434585451660319157348886302049735584991024140908320765173828484918171109302623228360160677104854492060023585806007966528246874416883200246032673926597380959613712258991554875617514094698906125658303594812573094576130246409947002437438638736856833941185651997686753960366506747253871634235473219879721686398300192116979381987435502391162231434013275749532892471344233314893252894705010727986437424866109973153314883779443134441905675960464466363515605318345489273086945697803500408870168572059951495689638386755151073116375599358886121675802851981319638801426090540612380615001815107728907587504989227184310005588655694604784146940731436306158012715866765012481229539799436342447266719934525727491137358445542123147490615180635052159711102097420150896313366882259770957850191567336881214778878631078099514033852044483400410681101319844362232381664374106266443361595067280571819428087725982636738807798987255515612125276588220961310723560621500361303201938486448426797840281857371924894305691711907308118881998571861232692588502415693859898105900553254029400316210949877746256749020893693924672972361185123612108033617203801960574548046208454827414391156983023580224508429100169158063909711523844529642420125610278923185340131163040656560955541273556143592191543166712033721877839574250633155695195968348570504171332646295118764464953685756562055211196030011758605169835302120677541354511388311465626537039009636218516913815628862225417143889669168548789075901217780753247729577260647283952070841329794354935544218973520811665744121540026906878480178917294163390485139439197669399632653266395453501888545620559500178790306069249313836998601322626723026332353493838734623756877325639937808391209808417645642575740575060051566144123554388632510537788877437233934701510041526150980303812933397248369653625564865236082554730333369094363042441641218100567280190355346917989403286498126626478327663660066652323695126126977107779728947362773715586501867422511406202616918888514604186826427846776185982993789720806857139651963987719405201148817956704223067390281908713656617079080731214426641898737648998777624141763353954910211830522119817991495126313998024541308130539631866379304430351615340135936868826241735645077277060291728536824922510349546565807141495965822076249675398658295117137245480791227947747462831361756768320951678806865724501486641641521162121326408728186272416887878598553816004094289686294921785779232581694867630797446343632190372661274293832738798204485719615355276878176248378620163626269465431770772035952001893457960805541284942068767538846349534292843404866798111994420399077928790875145159886898886605795834766167390441306800341042404584405521233842577552851344367531114324949275998112376534233173603908662492240761715049359130582210209862609802032277708085519510250830287978087192684120750201171015659202379898055372533273613045123226196246692991450316903373127299013491608388418330101314911468555685611663644175664911267123251824449935582414296224536844371098623009172816461191241265520248974108208751722428130313321618063157061024671817357583459274777113060696349215680972748892314913190413608331298789572300748195190409330719723259194011969122790744848206129458408574721219370399726492390589595709679827546894315420327414415240765277990003012114206042841931811920631654967122263663758031485075361476809022754146862001305796006951503183835186011633415693017878166936904303646259617565490344465488161905845729945080237357379409741487527270744512165974306966054765168210011138143431068046006004526759480699733825731200044903587242699569066828878203170757921904934003528365664821964395280734560391457962670994978788799635727075094752649134312825251840968567609204789483349223678830547755314582291570590670252099183662113655084318604203345307728544185934283734950375465233273428971152603020287356384845807944389758931245762144038920963670066297663239376581773649067941983972218536060370405912185459635648709242473740327051778150742642124505066593785779138153427876903120248809737606373168503734353141913489477940080781413205588186810649556430580615734140482326046906246252618643804735946334828254653367611379354746432598525257535979594745495840005873977888305993190701255414713117715527909292004725785878156053861714738894192371285384050580933721432483128346890078594354228356886615682783823097063602178733709518215671330640911380263388902250174543996580601411622323823598148766949654290650595948173302002406690367922928430044942236311577778109448147082563552860611258140234766968285171183470229584464649214262202395610159934393837239456042020952032695339728910740811288699133582643018519853512004668714063073021417487038510673187094398846668848273191749842354702516654894089398561121475907892081476243555702107169061883897038535826078931490632144476290337703469397235620717257061105720579516155883432938852866436481415139866533572397016451015140306053124624030496713410581573489041909034962275554038057175062346814280520592937552308613892674961350925586474030402225970080942531687441609882756596577974060087499966559283052713670794288029701419116466340732323610916551411299735604564639933308864051079113954025691033879113654729036998518373286258450633594638297908277950561499039983059158343370229704749550231437821970774792669973356186711603586847489328092223600590006095360096395656950991193879386330796328890446249313883737715848718644502590189886617543456131106663362879735747760658544625465431674031484498317433548624332803751026134132112124297902134881564623755579140463875154466023626882216808049568675007934945082435770139923331445722135929569207356180553629355330476278920655266711080764867613349846489608826304838557650779636202993783943305431853516479559708477924734270268864409233143736923405943683219371004635791601255018631169611346713567203512898332393174517403172006860224275706024296859608381694005836214998439969847479761935626132946775147812383248226502070642825090970477541212333271640834142889818637869532553117194641486889510857950588814807406012867001422176159225248715583317854610360362673251270425724092171058813869131409474618961899126981969998549142543966969914064604843610774897249557548118688675290225305986981936683637487125473834650083319386345606962446041584070407878743846408378349630681891233233040679020132091899802810349719218260759818902823391542158816144520332284302778994418103555936706084213919284803049051299626627659896269818138561289865350974788891256271387267691173277726251840798849036153949604041239491493516411413365082007064295168386975510603210603725813253120699651872261956415263050842322532297545308108635465883700318428336989094200646929109408584668024847902624137263819124770886416664251111981985793936732815524760972732881922346473944715632259889157789876943806873544459095316426430098219884111859190533769044964652319352985674884935232555501246523239845243394535549023606006944689965539266384168641481044664279153328487327860592541594538233830782996068609137207713148565369808947469311218133753995000506737805830013509463988926559438348003720063273330780150718775578510343535119216869952777594210325775496569961607500579691618078406525174849628369701467796010612199429279865409507321637279187689281603571509720316252648808815100844230585210765174505075188476532685043217381739581727999533097036720310297167306787102517936197806263457772602049707992773720668966653011552011219887865150291336544987460633253366710208103997493689352778020352419518309512477981663456680688889001639154794364703232553378085075244342125151802496872577490733243425224591987001100363989784528845683498040150753945790199957262135186331882018691871585613538089000198001886138963899282044006208812937827174652078602643764366726438348823798009919408921008656558659429408607693212406507729413184451172371647696426598179553869456566851685705278960433605591998562130424573878876104275947499232007658434192623407596580757157301184005985111194751452570906989294128933864456072607293248520275994638471000022392955460255219844783285925313502196168392826494243582380639028924765066909297459549421847746720310076174553636996393591334544706104580472978608059047960738884460603138409042463862138295917672724934547898072281464547831152216488472505963051913685164025832374791022669212220543395640017577779460992450258534487016193935133988370195447357873023311843113995757790526294633321002584987240576277623570632595076416185866454132996389654286693312321977686584347883588659845058406894211647509317741058333732842635166817253930596288749109273587609165954795072660067728834690713129616660748754829515666091114459715149630087176521276121455542940348530079110169007488531933383943618884784175028896031745877415117819850272615410434171143105921022712528298845438262579293803848188859390248127875228199081614706857904360940689092107472207534082378011290632673918097804401062863351874586012343505876295034023843780303671290928233413679238272515966074103896056302838382232512313791231171784997116313637283808900700140157725331473197752293519336073907461663015082547602966768326429820370925803837701540099343994561772706663553026856512770220586722987149657219262238608970958929947392079879443622151283182123881154376078118630654590039852205911955732019000775082417555734291713897848727964641029765559290891668524600273190651309062802601955420528671429476351026784686525727335141553267961935849019768179681830035074461653841575732369993524649437840928688069199816258308657419336606129082857201927601818951328113085937191802233145219051654576036516592898684282889651653496429802515364155717574301571370829524678175173446030285196320327580777124548533377008191445610844960525829334784819415100348487765058962012646178069320819141835528135224970773361101041138988821522541038410773665658166408989486686464048097242805484333865527226469152783872913224192334668438148151419093323947615058482735052416619258448456624170315786152316608339169618260193923743529194324028443685106933811166441478684199656528974813528419259756456405522699251381918878281267187264352697719764877116759781623262281212616623494336058806421510093318337680859309666403553645852642813315706972286108576064191541227420328163436283820022067328173868092040761225623929127808507084572377091919141235915951553429605246332473179178331985263720446832569981377973896945879456013903972181764989407555585301081022219334575540430550297477912354310808777333494180244174229090112421821426452101128689803501255188156124988913155835063960387814787511057921050110337598503360818954831385627850588565172322535980510001520304589586393883613736168041730213995958204310748939621526737501016152950577307045260264422710554657788018302118026076187298447394374464920505735501791463019834716729589586628612868934193458664418083692589697537994691756540632650583889471976952135209062934953794985912363192305379629119096046466994276418147195736354903699333759195119114150299361351312413642228794551223473228035904152804956830470265251068088330006406171222194010151683751925210958210822487581001208632005429110432129867078169784153954895411456907387232958348977825555300881655923558906634563080657168394087104684939320388046392175018085813193225721292074722910281549129865095408059532334816046242962084354169760596265716229325920901574911448971164150340510694360226283973894917797911650820224340421174526638839842055882733510724771341892080321161404422769088539417757353291525218842999068738220511341773059577027368631436653717825817581357144108549710544628794065817257191687882433538642821790016108053966064296699784861401282389532504464777407545099246498166168446130428249255616304089910764381208776589317160482443319954866381418083186972950611965119604753391360905529229208474705885468322744573559474626641005303835368229663006148637969918577641380758823681582782424601390757533083891922434973272371215266812840502020247360810575218667601688527057009318845223264930596099593795563371854302102891959173161829639891811893103710347552220692049416041297593238843556233174081278556027222406685142529065655442283281919368997425351011173885920435651377593358073771089053040285268418362070383150802265348312314844674342577279832261332150072468823641188733675218904051169931404776524178008789194970609958391285400888085268629517572167408992210856808731044126582918659547990330509623223080793752935312966812886605182879605669093939821216621558110114022626823592937634983655226860641680690996043493144460875054589059266900378555938867509328573853045647670131554242079013211610030344474835046366563229434182944510624778476125316575134507366861419682979375270930271004698905083389363206016717516943280129538054865260174321069601895169148559468346662701564818919443288712646344978307243635290181905517742942490630601954175241686170494769559685869799470546226428846628805961260060508025552561550332440871224556125752100882783701145466182425221803737846581412144823196358229844663090151955385814561509309199770074346189599395822060674610704001198495558589628864697167045176895168958730355039125430518471970665346693710386270651150919652204313165568214062118964656120777630709627076510556244346769717678957861550811357798650040094491348508662624081935850448462765353275835672143876283823899934174979855831915914992654620769565010567184558218774093743357305297565046095941659132409412666976122487049577141538974668023991758379971693395403311023160871689990774448284582956122106255045145293396777284975191462511292670618590818581466350236393818027717652558279685669205933752901644656222038011223591880317876684184844506298460739691466837695440537301011978201913796393200828563977186670909389679119128292553530293882644820676871903602052485444642830745322580768818350644117905013326823164742386261429827404589572511103086720979019874954722767684985521696187072746447453986871073412568151180916523437136881161829958442029769726591638224888944115247194495769006903949313126458967169104290417390161866978878931269758939027520921552739719316778982359803488426032926074346633265378004508101351331760631358975324545013009954620433194187407142927694607743854413655577470722501582844024029372481272286136282317064552584644699686323200438657458602880336411229906731724720311238216634348419237903766326510850140402355215648786415939054542942573526446053221320726061742585968301555436292359690937475213240371617375497330339782121929002255753604722487606347027188389498788685752580937316552213772788668085045491060721282090701769053227344407386901362720202152120737228603441796962227263247525812565434365404924603571783984983084995983287128135383495533766920398767542198564807222273452702968912663747915268737944302095222901568939755378162785835359383750292717109989920939064790194428054551360564513483176923913102403996467275922319487366536318616516574038101019942208748486777269709419449436634435740690694890551078644915357090450486936339278771555542227036322331509854895677007725665595707509546117796643773647515989161922546221451643141002615219729867396700638246783325482229267335773860814543942928149911036636871242270354082085841514726342773997483088565583307782648296721549348910838283466023990667863464405415584186634964598650439848235759096030414302442229265826039496815888242735690942348407593117072628557014811741355171239288766888869158714908656511861140806266615230774694790305006013992785261563233349638981737596161294710474797100399177962451065840905947333910252155175344934031558686141852484475753415786967818843933294064852889277421988615323692434007100994717064307390754812919644141235825890248544145014267165129272441374707591605136735694065076377044087959689125273156897246248116765909424217085682704742100842634155786938519889017520724511091274903576974765886353248090917888438628348196806822109971146959414913123373813645149260449471466132029250126925894480518232774977660288263160949437688996587314506228681681218454515508141676013618886261926549877316020879803739803684074119728479120129664746771162848965213080796260836511864358102658313832888583249129021584455999690176764475534220129956044422482145765106916371848078499088484906171075045352898824478959910946084593357403942317666755238657210304574015412412035695063193479942755050701712808790062346099204644332284336648571827109664511703619475866381498642435486356083040765772501147161312113657927084361870991938045500191774975485443550087549073264455765265843223174868825984185307036458923809908882841590651933603539769244315239292152346265400985368018238699112080106799947654840639936067028059356005701036004702258171114409346043700142299943875978353034827494246011417276908147493057499579779053661372338498299868183982831625675017455104328677455320672119738930475601251922834452496780758781625876812275697852459373131637025294879146939938913711587694769305715737382251324930016284818348599699505906280152751685514639848480210457566111269558417812606337463634602401755148294037040034868670015672462034688345697307428252941678769969967925303340830447680263831139855926243824245635893162913959138694925446835496836920852655438165851814445986543510170737337685195752994920679785270933993741450647815325325573350045358080802441692646248987252699494784161444015196963722563112351645990029884477133232227091598184107495055333833448445670297372031410595699882495536240127517773205762585791854002969336759563757069007689640378026763740307683826092642501641833078068413555130254794607440753620654349926861805378714742931377125691673446325113041941654386532059643588535554324104561005754676992294004567064483407741929575929204287896935256362202715212378634125493098446643474390933715558938094415637258088583999744969681858153629139161620428393019694603050375069426010158519666646758502747175687024440764342041858252661643819279622649620731100441080792999880165695615016088697433354748963203414801537691183501033213099051834346118484189792911615715892527812965027138895751872941538478802909707432877735011816344094964584958180008662599916232184393891266362811423731674110552653785958203903892809413282166520213621160044067427613679230476091123050539700088980109140012401380519367910062723194156218495378993124277076729803301433772494006976712343275319352702541083589111081840884662572558500708839871842164676122356069293419723662435275715687088918962048504639728495603739909285407554510787269290861564482280674439673156039256983829617716064371617656356770922611522795294659186085169841645073547607457761139304696375982174163009395382913913014051121106899320563958664029558137162941873810479219031235849728801752447630632009458276854667560856447115842018842919132502708804503742011623227782392713347015653075643257007469356810198019105502723883108733516614449316545001847812699888471394876566627656478429535949241954757752274616883898913611745499480413544118833122556265958781096753497881299529803516603944117920164757269478809694470221216107593042700003971232086076889188844037830895195967767378374296954805969907226149393006603232479024196687012339313791575923552929344398834235582172775835183642873136642305843933957180586198310392882285410847178751277302237266819753819634569999848074759529102740378470721648062957050935523314684321143779997785123266679526214917225438866174497067076286309777132503241794142017532146637444112396254169941005026453656139990733624495091727278924480673153748800122105078689770402926456319575419837439693323421336467996530610016400556159249792104056785986374964118335962347171391728253338845881123215985019870292327678524492270560481606904021428733124656770548824479805085533558071459425785389380063641980701452926246264347663018873312516336813021438394946916564342002479066412395980213878918792341516639713492237201308334439583582729561531591133329449301295587340203966514844859655169587995552943587668945460172201524514195059521603271157745628717204460974774615166191447992277630414165695823391397620040449628461572067209829428054136802152964481637451985112099822252142693568044304052422823758936153546031397929575714833482698917083326773288899159396781636280080872733921808826252647886753971448773737557708849509560127184082808009223705168518265231128842207155083052090717843725400173343323704727853704151394240205010863170032104138635733421619601504343336218550608645204941752497891782539921287162762267215168550760819020694847337796434353907131052822834096096757638288694577288621300039435071943444538901179983967640135759769005109926908327113293371333847507337467353420210925561767716518516877369384599106460744990281246205623575908950938996002801810835346720410194005902659954451208683505275245313584964678117954304349218648181485245539326515721811493268138706220435052236193951409651202870130638845435169257126539949680227843718052194886984313255449764678034274431785049772566474745569872913216355422018935068348727895945990711621877772845739640972740623106285215899507610112847981008501559847319007548414137665921904818980524595839806802049020351305870363062353577098105730126715360907800315059644566874882980739054900625814527567041205390811986324630667112272525889770610619824614886792772117679756801243163305776537163776404328765060139377782832966920149646558411197834439089486537220398362933928895314673841481340497510152579812639256200760191972594299070849627092679774891041894145723756929940670613351943836024439932545948166356441968495281304188053299239560874220603866491767074878760310200793877879622689288870520890726554846158653304500788099866516970426708026857568869617193731603144071493462528471734149134583912303041217080312862273077627671793312016074395867066271334650781411345777784884463386729955418770527258447714248855552226817456445364381963002685587692189763265257942228691194626322158226209373479875586624003426448187562690957698667177893350484874474434546707553784967897712080453272791034240591971677348692542366531393190038674047775296911348332702688317008226061692396286422379394594232989212839631890179813424205054504097919750949706364797163236117173242326511597577547829146970983624761052912243747877166183685472533137968125820959026772334564591528931858820568751849710998423036981891230852052531134310397446075626643972747948256886888093727592869784555426351574805463600927692116515371172255191270700353430230665951986168631983880754848623592609219654144993978980059403710641345335033703927122793550110480852624315667837199014339214302568356289163766193139557817522287084087288182906507722722453544771619752105910532866009807110182177199023959777521415635386563364734730567963234677372429098458412822644848852378012396535870429105961091631240071752887690357868109983749476011458203481945483032002042302452834126279010945150568937677375721975384043856254196453537026032021650776893286702177540043504140431635910012279491773704281423970086201453675578440463369945314595664070017755581923602736470415490548332718379126144940168081944317349675602122661922012408754041158387980862947687529495481943325223152207771924225388456516485507433953929797837761873704713074732025057191091996967657616261850752801407661627962820109047146793192285988662363734420036939423125990421142938651354082277187420455671036688979202081059961017333231288491824799971299101339513826881686601452386408536051643239472934655236974429768091723957252636343949274960412818013911380395342869090953683384017622333218152775771394035718944335639925111942437568436264650832546260664753929204834475481302275083856645871865450270183276753588836082013332619154929331192745733053865040310699497668158826142222463999351584882416371446964103994386548311958600042041281306428263281463546002903592817950616147459562391635196777244458757530759334980477951806363155105022192937401304346237545032841595592796681500098022888471675511087632442013848631565786979164083544465770534747688836543155942171557371232102203652630598107833103784464419177441920252011090793255811248186418065218927061687330925086593106252951995305664217962072760915558117018429037901760836394453830929526498354911775974046529310247719241198513630916765385405529258516564368413527321798781741051799119280694818527673158180238800598284604304221488318726131394387156053220726629590768545632155940859924924917059551010444041973484260763686238244442366199056466116500403273053132620168439943539933756485711116699860358477297538482076662234235595235162144117405662397465569542216819604923724842832409684257695824047179610788092999015415526151033466310951489903217215027759770681697737289050408394813394005319744775615738327875801583133505538784646110873242648182294128470636023788824507108660513092943180000910496681483713640651077722274505349284739072119122571271122829193346464922343513321660368999467811600806352091021085039678610931532127217125199859246236920791026136391946454689101770244946874396972379140757066707195104994366540599273915258494834042348190557253772580681894356921481429153588208908510053152580722642988480119987412731906699353970459149810381104075042852171922193646498809592551224394090247127154285168637829222529028298028719695463390625252181020128942996695085757289763640592586421450040462838623481198412486471523913954408171966138557582545314086826294488738654573283070934600636346955594275473519563495476531220131618898891384433992196636203654814363821509071475901390925864402512642719226185480156233079360397732514246562521422855162062363574905888846168750830540296350620425386596178923373665517887081603940922959834873786757849239313804484278036248596052148516729066037936377405040160826104085228239942522083844367759589253132746818134625641654860555963968327320057679339586416420233152327038155675258827396841139775366230162739282405618365544863144926963655846695485192894084304775921193670096963174692749195870314395604682757975124922410849486957274247842312090112033246083429715297308521136599822292523151432952143522334070982369394607809272626496354613113609226841279040100883234270202591347928091677950298497066813998104131145904386830253422665951789192672763859957883015200481527186212916703386662023138689774011705144731005860301345689688137850039649356088672982972569892978994760487242448287476014524400644860704265753361180614313222519502715293120986255593571963863750710600889397705962743713923864554191365783776112094766268361491789727022757420121952489186376256005648834310973643615943295891864761065216824010982706418200197241462395015773755288910123678806840649926566317573563477140334934730666530596394203174737407450678685489121434253912547142684180801586244069015308610744219108043590337162157896892898514495959289936171658177437688184711096278422340664836440115149395847139432134664197492230752045566541744302040376880754444609862931382871238905796082558285334338168414180758353932516639430812887728698649017145348333547517416692989186712659503066106300421191542410285278302227274379505708299309225284794947647597776097054690310429400752665744963734767977830732681427490837814462338434739342611931399073161386564699675846082792660809887798993754170085745435189453535647393380137929444094819520001085886908689093427155909635356324753395008034709505474448611073086209579502660775153400685876962538234965759014980564726218482859089113819953645731372210029594487524753894155835312661454352232275061797973821161951373541427209611740025966951891004180813170983808265459926987508122401093047166722755582830901700064464843514205272669288406185267647291590620282535405919119908967456891358517317368756476781128670131877827039465155707662633127716473941780962541417218389678480960745013907185647816472706304485873390753054521918068862707105390634756504960789845222132168314915666706394153305679951219286961814033321643108624953472603899141899834497489978587049296788454489011787832829664754401428777439870362918195104132345284517548425848328413077570143363603766880728553720152474873269449104037981885460056412495308314908490162309027149768844227733439655091019273291816003333514088587159084744312776946401797108089752449136226301437222389758821521155311965852846727697562934183836814925673031695049654150374738065917593417358170136144341015431681994677067368065837541078243702784826082318937170669137347678931761573735404279200907549266646839683584293211978435929554571769205099447881573519198636045660366347279102064294534131036830431542208283133572654786922208646837508103940298307195003706732045525590691502746212754851135403403388346193219655837547420857553842770896609181395171252440853101954187649798453761873673521269869392704614571166800001302058050526417827606358836373846033764633809916913227411942197213146979928271168007536161507005441897352104684832337926337232341240260951354187551676055199016277333702012987589129368842877039716140978702302292361280921702364358019974189367749978879184804102345140952755869015591165160451538082579862482625663194359137648257549043041880704236406720099086709474988756611701563571612467387830722972919281978137175220183552250084900968384513103494037388865462437801813530743158439906883615467796910294100127695968343288363744518963140444111234437266370249292642329571422253177428197767080496547258317810747666763093034224843889282884178904364403089512089985196644611043044421471821028023205158522313471520855711444127206325499135744466521668265832224204106368306096607132310514453972230113762663454566820219223466708752891530700089836257207832080994944163879548253187982262147819969103384808725585308051099731843345839758531483841899949861472779180088621309220195546617513220320508355372637734634409700864713261724905034164873267312562106081731565715880966124704665626198253460174607928104705670082207084019690978408642188557691764060167240744910953916302953251641145634663527571348620665497954354514486957761096966645644401405611663966231649708516073484380870901193324992769302736575030839584588302570219097927067182238128039935737931856543244773233614683756796423577766947161225537381435311795920711331706814880203822317025106652951884886188742230348565705500285443403276427422897036474437394981576145231779217696461306702801387999746472974177189189429348717572471729095098516081432144103148973354449830276744434150496156947078781535504626946982146797521696905405723079624813207383676855813039198723560775320223829394496295737209476484511453450789399304079416427480519488904757349311213158933979201108208171452336020359806372980127592254748170345360547354195419979513206060165155392165707559614560109870402652786265675168861791509807501298516834933729348576556126218596525954665171219359778517153497998394386650656465151634418349983757067775393089957026590007304806165162366714596977546407228594731205994398986164682988406079281303297705883579095299823664654282990137510665598481474691084944860699283254848809123548554570949675680356370544055886711755215414826355345104201869027282060761967334490086059663262556868312065347704883746000213043425332788125122983069050778367275929029450096600143061867709179752269390981087622494798716300196181602305940242526224105378937861334566516178213075933192292257655843041586476307826144118305389420787523221345710896426973853143560199611817318851832196018621961974016708069468505898081291182059280401343338753806310435006952350295658486764651037875692290323597301614735793141272146047910453081110976949093075394351395297199439918802059063485793991891332850758644542402150982983918150305223217657910659642839898077389074817030122227289058052777312204321269537697480860126358018068932476454460258982531095681218049352702483273820720774047715867282211017542666466499571953523762888904927374959148593481524692102303288686359849089638180905709379518494036914464004757100995607720838496600016213793289962459081879137017584036096274078341647511021646835808479995526276061501949873075882636531610691203083768832843185702944042060220758382923103125963471881522745688787221798653081378817655840038307345552872897519092632579018841111179841044220285910399919770443630230381264434972148674838946695160567185864207738368975451745421162436408859257820020268839223909193747797991760660042296840377667574314475756809785520453036312898898136841747731549958924889148071268920184440337274039227911609860982713155939424132003172900401622452237925951498947363001257641411264825283285340083855208120983416206144074744192599084280309454329105781554077522711627964850197275043186220864380031424588570126880163853041196233071737158933913824891941878274254799795248481560676486267226413785902418038649559241631180464097159519647506942537648945371995177342523849387393838945164684709767349620192985295154650943619188835135034566689920995976527477104575406266236942367990755618340070542606305174652520812983304164878370793133456185916960832263971609795583864323025237857989823587516475255766596711539721703905432552377814402233280077953939154342599827435516080919676283219520899061076014967455629423845044087328663193487760417011242070283007499096159365031644306201801304253937426600497159378804439021349815958111346048450664538648591430731892948655156337353610425396525452275866418777170510433649668765492566296350739726255568778027233285227579252506453915740196215908004814038022732411746748046647591337091279640741273122436246388777061838325065933528353680435599186033467214861172740526391924144881441225383604617834305625826250559795996143390667661093074422175342362025683201337003513350201630871563123532959751161545858946765780447737642391543372741253215919832465988072031887069955555246401565975023463091627660618816934242624820387858879405528277058562063980363951121283048297912904105080030880178996883040116001205391173845869624454397801171668187100420149255859180662376905457793974638420508400994288191647421812458045472965005243489915695920850666890974125894604557393984753215524226424852082767336871770961676676495433186733344102172029209777296761694416670143273081021923445575160026033333530793089658010008017105423883202255852806691828492611712973784192668171741117346089156733531154329867166177006255540815293797784933813046323933015356755683068069817950419051826747043644811528941571570662137707722833632268397423342833106825598474340961676542068753856964821484589836633307079348757247147723716088953104484927046617612114638051903952028694553347763110980542359164502104687074238074218913067991603297847630419028959818727899537247365063768742011504790336882068036476866875169357880308450850993046584897414682053884959933661441444150326687822216178793938054214181819033586798095068190538141042640593664414095043757810535523054862072684336673081551742924674867697595846278920937403849104189304441840067095053206817673346658635504665803804737483000903227050908432755569490892607036771593224403489678782602912583578143619046998587254628123215157260456841445770932699082190484168977626962500094418481375512317452080532623325466539777410389994423330793904027484904157500710427333971355686217927479823327228533965797715917919028412744768864917271405115607256120831626999547158376368328340543284367921207225618039537394262980130546852949215480923559041702762868330076579948816746962880251765996195364791076289143820286412989074144693037934608135483817181892960476892372612927699275065642498244745521393934799451343810537743874444512281258968345648478685181943870124223404606540716047040425957026204644219870658776163303005452381272543786859274423994070487574480887863876142149852213335367628404335267572583205879697744829488654105984887065108482898847852462133881430697323934774954711178150527772936375269936205809088826661635641849271635008333790426106595235362181472591847387730785629458799590459454021347932371721102013923130222325045191573523639032787632316095071324277546260477037324812266804494790804808418393387552761310366934741284473721630546590167817475805624578860747358150343399532629126656043085171016108134029546438236169443487002286130028646960864361905789266257524449633800512036298371563346899936412838784108392257603178483450261652440264486276555620334606651760420572018252825373117898054456815158318783783029618628641151043033788410572845091923874225919415211153576067061396790115956161366795165198262439046709146227593408338671111446760595012510009308003850233634782026250631888332967619032488592733734278045647312888421009080718309314886815882805262605121136027492180412377634274632277900747121689108292717040181453419211715225394177080212657324658498126201089457945381771725563614558623878710017138186537217472438200328162111863528016989759936328569885906799640804837902045356466842770939509320707665737272734872122689105980124061008289040317280183894372793555657649796441986362679679546500125477890270590842220989238304567279521530893588561177403678552848524238193483003149854602722517157243683610559036456360945101258300351391060464837634573762070263528887317354088629653725641613307677971941881975795879966851897082629682574584488257915732971946447540190028502369783475160681924627549120128626305072637274921181145987598257255669518218923723997027524054069744114400840208640432024100973145053704953377982699634588749065247191592453758979709905078634768041100487716884205642608454172226721708828773434987041538150525268997379470711042230147669655485174323716515743168807580205291271394839487619052521788292915442099160205549488232372315752879916269713227858590576539073973003901872042536413621822739773364487526242541401485211736545460148027951738085564058110252270908610996365726491589339632486853957076153750724634333187152542656672381096395777778584634956298909353650580901380158065537776407882878211239210613303419872540518084861575091841459974753470167023900355594693500641735463254652276500503071636420014568031262858239330742855198780275211555599480053075497761022160718619175162051765691969421527937257349572512655666644562485674711508550104197978812249945594136932916198994351521641666623144337281623881926952069007642103302166544155884356239554744809637684469023316971090508593346469143178673888095400795384290497816209323853812675550558965588184261368888918961899775973664314361297600959184413056714847528714845789125194917996846416480468135916720672870766443724540529126071038064085089240289246736263699933346480583384800293232190763422892836108905099156000465745414239695118994149574554523583392088428281357533080805777927272921541691988816649393505583769758565402640124716299451940762059991720796084151077097143080053630351751585873313093095482267265011673743478166145985495333310059832244722387086581072127315708811058346621826821148839058487594245044952943633684755653135625560034025714109062852706167427049843575279110014982404951400217441932340068228904869588054811005713688212269121440954416139740011428609391530834019205453690696499064811025331799669350408453139209625615485679304501371815885508337891407196894144460698746158435176955505892783334695693942500286314740069362863385894235223037709124677011396827973368716502664024240380464499990812162472169138126856615373589135801635437970799204638647922361238083539795356568553475847092611147105604203866243877059950634240150881113550829466832272677541052641580778101009548918515370875696603794226539160842927074342879632057429602270959933553725563781910434447263510063066304805306792157583165216080138410490855134642158554274176693231340121493913306995304380483950033597046625768989904869778947985273143921413224098307003868031857852552584491447867519719296065823842822443338630607631896886239207344469609816722414719779192945429709879210073995571500457551599680408042131895272480432848481849671700929633557325162072796380071030968361250961349201442760508910668215824190589837568704079983868159942422580003163856252869745100933980969805749627643085473220659617896104606701477294370668359605743841513214241756534465648891536661745167203513759173201938467511957554825762108746951375093177313971709570659390424924905853346026424471770210572340431047426275741314272116297988693854596534230484096830162653800086669646956323346928383392273020477476626515446935824922775322405150060324266023753610952130171067714238148786029764061164352777472958727090084020968187712429072113821514043452151081061676348223052808108929006121909415553044984635365169708130623508791727442200902099898715111554772034901039366578222770604877431423225984993021986543973521912631096232719665220133423309728740926693312576475532621469077703889966474007026780291566988120426199428723410367313818257873321359128197691965221961721687549879352527378600329138749416364560415256947036321926816964209743083095185946587147090483745465828364439954811877657517414205410447852619676643712431763818297855201250980332828002594748879142467334228239840396575374050986789029828814538809537101405135000603172667795246425720336065005472673521030530298244861585405384299958427076835964581928672911821678156017689047593954280481895736217960557103153949851545301362125995620430736372648097536498349899243253211321482559655616985804595224594251601228014451440778143244732884634448019642826366683243343111583242732523334231337415193271977154428159026504042437761591498045978633001878735445142373777677634239414069749525612751040204765412862032095479347481762604496355340115838673505132635485281500471332667786791806100017314733663861518476725462596486047097940303436538034838182518189848192387364223819908646601294476054363478588039789072465959095831170554352190675571056781755544272118011594330117933749413894948680157694922821173534989349449887751579712787515806703667363944535825983897794897417698639243692042553558435677076097035543361597215000287707576185274068823574060420504451055588463339986333961051816668781212323842777153552410479525446410411869826497681506027929343999818430405742206429763952858094012746934253964659473290066518867042983927432592954543411871600142657900544242405444408026318086501913999266029017791953570623476763893436032871715939255430914861059535874113843603301465412357363276487134946661354139463589730717502849376526323038694600487974493225992201005885309260823463256603454259179759538544441840110962717357849181494071340074928674759749370760841312356065240067165219638442334595892075082934380752760600318167288314326357494128370199953583430866930668586306245966327020963883757993953126116240358454961448117809891642087838272436930072867769632724787623334445157815261634485578275483053616876690821052270649540549918288109147006492366282888162908260571065089698990765749385572061570232576174757830441140195847947036079433701649166723861106570193045023335713491114529826979680165574627295368187274301049575972506741629082984175514640657634547025870860576236782779415217780119645635935481324715381128024827676971381955756661159068110326321317042073431652311814315878752009333295481055257380630096835601184749061019718753672125249162918596391179181651184994602908313252700075331407112930612938859577304319771825600617370581761512868346489314549370982054687995223481968564132612695194735343414016091576480251899526032888647617637261345505370009446824058854538343031183812455033693246121925382449019214429746991842209503277282979479910726944190156210900459014839742722919875748503937018175996907283702979701159067847093485564608150734766898499979503277381210673386272079820644116234294114103831010380690214348009881752926274281915201040662313990175202192249529786166961784098371735723662279922554529853864493368038665266918517504959907473268137395956985039970234689462920673689495218116037960585317096294702950014004752617591715332154041825112544160744617358934042343338652601568952013588350099558902554035291350370366237459707566702996551916167696971279506563029439826065544547309530649386319035185506063722134326796693296180019706675694233713445282665987499455624758111831869221626752875636727133055945763694068414855808104016047915296924341106803504566503671743894116336462175877621060925966554084962541750776623664145479495161619412977668223254608277999991521933087480003502636710799523443509164442589678567583912390383147189665345539659774856592153824244354646250719577152168538372516869623460411340517901238753463291140477178270621091272525261687643911717143052047946106350538290377810825878356645959537210326218215760972217810222271816435770764029800653591620149528370310032193170823233056063336810412331329815295113351595231098552490302080291678181588022624915407987558649444610714950285056980473107010960175314852140587821838166944170051288714303061185397480147480571306915866529203019039446543447935461563398995481990046960655038781851924119510923795236226613026525692044715883693345831654261849054196530173558477592472564598670514156403398841171587381338885709380474236242607112533193648396864186130817895250400762710489104007694317407367417055373680245215511350524741241408988326539887942901377857780556278625920192991218777278328545340054690803089057845725886940548045826476810722083214092932124655047249039090183261553468917612304652103817048614597168239507628498756023282700876225421380984077306798468618699390769995460367193587697372370854089838840266893518298031891898336779925996663774096100479203484602813729023744454226364946847859330909992433612346285722481155837676649103941103698597416861326999636635420413459737451129858169999367296803891742077696097422308421844490015230670184574258570925893810601343035173343251405735574000399684667403660879764351742038524434508168875887248706228000060429688218896510111719731832380050351988766137715153969789062334361159281472903615033255907389984587988178621238332489176832154092783928361249223243943684296302889591343476062137939950094786614802482668457953512975704659464387303944361052316508678205014081523115885076195459397815211699922324364363342875146513070440908085918733226361839960113433206965642845019872131995148399226003869501456161801084749363065956969390793274091966869046256551565212307491309239172039693709680573529826427483973024138012225219338453205248887193119661530187114792094053543845702682873116974548891086705471987735579209404191150050007882258061636142585657614949190247678379113892276451600128780334460294779185842897636938550010626079674574650384457094147105233161722012663168590842982315495354982970695835769658445394710460940171994204174334858613167809660990549768790123572308157923965510486531786898692121396364125105683336012392772607016177728280390283697761824186434802886701535717926984157901767205721455197498526056607520229001022838923293766246400254416229142846478153510570668915821526431029622895162685924249828827151459141568395947625906688496416883652769305142209349355711419789117302106710409882103524981772883214863336007265281490569543938280331825475570833165813701164200620585156172946793920079773912246684786007862368464045586156691844686134255552227891451519576894069899611023203889087240282306782167256495003823735092258464444765561807709381843983695108452888840154265850205987232520478298362309723388665012148251290813522366904932477787927297656289950443798748889142414129256652337511891240555731999854022496552182848381578623835335655956903429202831618640072885775216566252849606916486589994817158137607029913636356637253086070860787301072535429799425573542582468898605018797793761758452434225145626162770268150138037213721703358891038070073876848510067324156197187811732547814147308220413328410526992830213801505120190630550230937432418428892436149470949582787255336407531022652409058845908275113370843154830200696305504905872073665551444264613794524262092954624439925832760095007459878667611590129006766421078660221248123967985887198108889308418362794520233192414009874967583210313919615001801441221761288278712842420743049229023199713369577756538558448611693101994289324872559340185676591230436267467234785434175970750398290068249993598617978232987801252229248517478114592076533902560304632516225709327255769029274011371615521966907867193418494565932321436922343015173745810457115537252373977958762657619634598325211173910414457891430889091424381655374820778625557752295388809763599981094491222765133554879704437724757760105396258861932159695257752869555832340961156795369262393796484524686603187374755702943961830147958361562605808717391027488133523184277950687889075832567752738007583210698871788197367949483475508203901675470623378942172702512666435422212578863043769109396360102819796944522578377062896199133196940333687786399278717287924626242539413016502627327513163225067659365778242851484862912044898896819231628781243644356204186629854390213267113595550005686671055496603892631477723019434408867213278554315448803765192609609118181470390466733998873040760558917069777414589279563406908087996089609036509237810746466872624065481502910373439097209473523243589864551114082786141673186677419201398520929639852770130629366806550789444017885001915896933827825229325316488493069958793811367384483202559768909958424269573434655269399232039244604294907030142383325120793706327031876861125920157325721074583800763859612783128121998746826425257625154640907172682627635581897854712605298576803874306477804172598614607359824069886968662737786538818590466130097522920722550741010367981144135068645526613238112498134802990566409917882030963112253325648162606055812094882332615311772823359474281258690056157357467270722803738643775099874702211689128718505729877447455435612890839689612396212218948496068984764250312790197655397486620762174014495676768952832817215244171572259264091741747954174381020147358208849047186617987184878456154550467192566306882450081333260491989010586986811888320558522351286482356338133853817276965916528333931016382016638555942738942150152254501829772540444106435381910294946065548526598144658867856823304008167949664103199118030313369004751897415903149508962889176502322659186570739192289972848373700660471996500135465135149628529692467217488337419212747362581379038458114993598660817145479498309063155109758394406107607099887203791447386991453277911267971408522730969822831369754703945202333248469983947314537150308368367616042376011165409971518591947930314571285316050622363082894821504541706393922031515639085895752820078078266272218224924558712769917663267265080725523271595153815044272685900035963069777570827866190925937699964392362091144658578964388331518700952307292819496989051403391831195092427261406941227850033003006694227830031788383354477576860672885329445601856243094180103877971755678558026908752897669120752437689772092915248292355152914876929111822846791879004236080513085958392863279616677278768288271191268429394998065104585433522114798687132662031774041802376151109723003338752532587175647625218883588799207726660067042225661907073087589177201407299590934697302877287333906112430457850728377972064305900100531958144731661714867036009494754831700205243040683954433275329182044715811719079120952914538561543581662664945079250089396538310578118759964916749394275500983225650680079475674818304585222888358635274453172983061286882396292482358940348662377066754791621323132218089131476550032236686998047101897271737608351278221145228447667908749946986516274719987061538079982810746890786343271425953263673228555506073525503481961210986956917336757704678996218013625039192583467612361838561341398329299472526564353329616622287198897886393440746933891953386747477466495416739219477695878595902408353984071147987256810101178808382773033897343303116499203438307501715621133569271956650492061349402794745329914014905350084166769995772544072212246836976032640242069515989857325251639760108846896146063886463707084809534822810675950939432070166154424375928534612520791077875030400296986557437366416942969168185571268073746820024314946256483269872398744691134979928812805804628754548751655018777487293261262902000381558481131017166813078257365918593985171935412919475909775145853640691498853456787080035618758443697227098048498880716166370698886202046821324530145049192846482354061684206609692774196664070102925263755050369077502839032933855540613897291506379893667563400465566861998809850895386098032533481345316767571792382620333321382239289200548292101334539553978320903118622221761306641792744981471867065302066191025169286895972366660297772764240321357695920673714265048204489853897437380136819413690477169621384170246520882870487407877611720452880257335795047732023076912127364814229919644122209906483961276758819243042871535841598128037702888515359495741599326916192343742893933491208672784948957193605967127789310872161639971108507783379175031384215777089709604967144029949956882607377481106454117130274597353130994643095901019564979952121854137274625125682108831158425002491490456535169393809831039385051104434983515361169263176396812024913015236206604199469183809721779944719655541342844145229386142856229601920947483811083081012651104559526575563366329264634608925869878088249711787668779093291042760845485642439762319813931725765179510341538305280593436019122900317461156628739615572196831167183160401362224892009185547959546953555077003971273900336794490156961049775718439616378493397660250434728224272517254595717829094580263840932191270791896377884045228529504889761786353546270154719129029044962967132817104142529342315788799347353570567854579184649125246937850559559516511679983821490409163852009099867500618125551117404226098121871159689798049044610017103109358081932195632080148625039805891059995063658905982309717909632473057715328892749009139585380882433255657069829528311576495615714236604840058765261678795477672106952870505059071115077900856400951145104658169184136680321851134836181280525946715932206661089811573278000423158640430033479884141556552424227660328824231683012561078891619031972386657745798701796926345799341376339727809165438428712710830386206957454857755191096090201888259320569024059990016988297515975357390539691990333339645711799389913343118526518778559353914245672851580585432515880589279745722631287670803347019667447298070930305165313560082086611648061904300545989835135566330339984684219876871068485626321076701347832766303997808944222989170418152801328214248955409324732449672138242942086304356936180147810308623198825677172142104378889361187813667403661590681122498915098443799607917514629536022199478229266955620716216612684001738514121433042498449987523637618465339478593092487689936045904755020992063992905453288541731930167359383802821765682973291405936236311564741896688658659022077506833021954256265776795549264683567762327669861176453519006727548895406178925523406564022443972676558635718011640485012715138040500590258414429469287070477518274363297498560158156158196699149041117197746483310121228841294325427198495767851028622347454672585933916697785565770368844297095970842964314450979567063838558141679188261909263087074107152622663258686117280508467160945234597533444663033864188853106507701080013267551501586516074064905340936399871322002199412101810592269284961023991267996101607024200452885152487446197321599100702350293553505353602703382062472495255772364087631450895826133940235283632035726502951148494644814741140261240533619144748462392742887666162911458182395365777242292665593193629496349973561532725347191974794037794577090126821321519180713950702799053362188365727297101825012900258427630524215540307304963541988609814551767556552801008651917863646770991581207422391566477344478362646719180568254055274490145675513140119202822872598026137681328153744725332526363783465691864130636924007506237359480753818898895941462256143929110861812351895705027733726078400179601395416611199407057093947600596938195446949541212349093824118122024012072448318415779356691347487222769991530454063168594868858432609849071114731444303944863855256385723035182808631119439437763644476743839130006737039070573440626761724615474841326522450876181716287732037516868758316810036502837974673907883028851317226430828841235786033739309165133513376139150616485999888868133630332427950749006289307205259339967164882723353074812959606444741236867703333953760434161407047027201984013385302413096222612591368707813111314315337984977213908854582992360352237162601609652669797725505258100201915888003864854228968340422702133734303612574695637360931201364429141432913138158263193366602822381738807265673237082375102771581017667386665684714901642036720922824122998585662269682434461954975578832622758713429153821890670841307404923542156456604769126889286788868122030441629114884411038234479045394276615164579476165365107513126419763585527249840164195074683209422332557659451497027757809876251511748010070032622859973692779929423991132731748369791340870926328208779390430991821082748608678062541193392655972705788481831025555239817581571782181432163338015373406112830517298567569445072362833221813099890087295517074418383603614575033975061586935851946932545992860546265791169253351869198416926304655845963195343751803516519279523174569660670200797430537266814196126174497594925351188495907985372535008982489803693261754937161784072422145088107854542883570230549797067807905914420266234231420048390904914650742262938934223875812215407583369641878925137012232494325227660669597731652091601077794381300480938693100747053712397238550783372451580402466647787872356373517796281658288161139289926611328680091456326019340214720458882038948581816991102693355153232556473846362671021285788714364934087727156953054815377264371406029802489114311897546607896504093232207201387892053053187510734922726887811639769403687420555094258151559537770703161373145004086446201817439063417163365603326519741885192337823446204822488052729740210473582913611405549215508831747166707039898395202294868145587767884405515370672864792427997524929358209864282072182438252243389824425034555090867399196272388098720468518723913787930117545702876917933875141700697804507529401211286150020320222343764066728116417547352055076003568375812278665910615637565705076574670577628047591876016582618861963970440083619852271773698857705758893467957900954347547952133532397378173527866115518233463689176549557298037286366015055578432765335848865171259143605340474987950922773150928924129522923498277968862443223132714538440301106537952362978090654248531487380736692431354632439573300194501136945595969523399763115215174533696754363245278288550102126844715930474132312368845375094682348892242621403267053766680229027842070260694443291556347150964440781844456256340986271159520214984117866180489169684388700720274382580045136659159577446129494891163368162405132144064178040095660273351921809344314811436913960722721071499291085344666486693325269531835794208680267647896480483885869318131924485706149713940340871091902097498318293474262504206235139918949406560024951274280863974894988881591642368973802779956073926376533487848012770071047083358282209973611664530989962675137581838161868312838363251663630949350491327117387078268442599021462587584529001445553981097049262379182355338153213247161316300199257665396577252425345621947809457397918707299502404768601171378640199010963366802342595464326474848436058973895084497313409944608075144923668857318278921306363763786153618546712068542922040527532216403940425709364094011788044316716919376382015460655482931499964094493348469139238108714980418780244381926121095709345759733898565557399986735021448721054894081619939463449665010271360216776958016269250284450392254156554609077289230641498551248713881731911812225298684430433138086115021855105060320164902478731630629512511699996935559898044448582533118331739942913295261092225289401206290085233091012396256087085235000657919398553982777812364671455317005438949163670911896318705210868085193151263502153611793533351537855265623786684131673747743353075732136712611161599100863635027497295951624718709645438582069260964914568154879070754538113335035536363530418470490255992822649426104472349622263574592961047539922796360129489701081415267577710052383929453580788588875944630625531900591404602821828386110915068298366188257302248872862002356122202499445234016655137537042312972012850831605783149287103973445555548208483039714451486485718110816064709494343355592342934590342533598350603773213098528054584807321892338171190698102578013904988596190824049384767088207027914245432730445150006590567488465309836232961811912433219726167910642091846016519285091302091972932293539332996974501596785387835335762887822777399276596004601091267797155279274975244061462071861009882962850827059987231863513781002379685722370365167758654435852866544703360123337598026853587669932324870352350303773148004304174676326917690198087698735134577481289619804762287613693452783537255161323532987829863720107987276657582646800207676925132927294826801384499449306564097264978186703381215839879513361427416632398401903389891810222590071874215077338551251717248934437731029930644708955939650658692809868350812941248942185783097619123393562088459069284395573258157877843604874151468751733074048588763925220048072353077785012927257265526880898776580767201955288406321299625543034577101668986257910021590323396919952404065094165553324368364310059728911866910385665851224253321785374850925668890170362010539907570862639797826469155963984102827110715014966360271361130433419477170378616018640987248627829443209147724882417446425367092284517657996699091567522702110652103123235017249952783005570450300188262520052618003390131491420295971801901723237270695906167421493153289366084705470312408508626409030400200941605680554388903902296365146955858607264318375831406568324615270228253441718633838780832611846746427431227796967371415661210411881916705815554484110620203605650925944428796485067626061994168276635625031214533666946543053064190346618513078509279114803057383675298188881083893956470638858631206335828486777553214653512595905900530588952004769580781755225524963487709043038604339092574794329971987588612183044858594413304401187357815606702792240813404499436137639073759574628053702497309915819653534366550308051254533334878802835995440818066185731696922244048793471106381119969368117402635972597801538274013562728589537721179602956705376642723790067477252520218375525451612024759706064933244016992554987057512446388388644785417446370590223991054991307395525677493424115193821736311103046586692458966295979762681928845543276251656657840002973208884781286409033162198465472388266000781085776778489573635940399279443732528731200136396201339864580929529107343853705193809810868806588918651870707180061823853534380120308119509690422271118602358961809570964231280288285695902095191876989868757218488206544996740002944105049658141545664575791813476403375345534200164649913675691273194197523462023648640301013173303543929872969780279340815353923829826231234143828851412804326611473754181959066566609856320649535797561782806585234175274150866109279974092864184426213653174484723824911596428372336371388303586426708896203354613488555124869217760430576193149543997424603753610065254362093570079800513147597401457353240303799459434226290076511220469793119561748875868397348540301557650036971357700461973281861761733255402459250599859378634470980828860291980795106299733121253757868495433219030068095430867227640015617924765062693244224407608566365043459563647998265091607884512681790342364657653676059775773650782560280835152388487274132700364717437866381298760914663654011661269097195019328736064235713978523182475271882474029131561046792394910693536535775599545901131749182110137726959165572485960026536444572865329448197446045565752586776677430080309660302643238055481174348453053856520602193942681167769902261505420025890413919438052084000580160147769710606035588901288757862922691637540344527145873367406236689060635252179258211627181450287842190923062480440482886243383641703342621205861050065093675074329929373368154019218562176199324227942380677916542384788295735420975726957665331261194446551544528917004817887057063492582609565668583239086584960585627484219604997468527267958428290874478832073200246044947598770172788511663777540576501527478308721001425349788043885351102755560372315958948375064918087244020751963918041508657814950368805982390639157059127331945356816191380441191701611604575686656776619224409688533460538098464803871126143520561286591494183281276386247900055564846152161631172606517110111054614819922672869775883785955937492959941437136738631716689715515127545099763935627791965005152413306491196898104960560206487613074801164427314726567513626188428024819483434664054468604384356835694451361029952007279789749294335530852983167319967329117349683514566704131140545413339756861304243779119298826687293194121468995687228747625972528875067062491499295987920923203995497860175994289660491464514364713973846616701943024964117727954638667345056519676974351949813715932581446486054242842166241823545896353767662520931402695853030803135456966958001910713703278530453587857174485550892828467856546985850629528738246967677235426497226438692196343825850878547161029662529455908628306139426625031271317175288728572947293359982220367140868659894070034372845765018271047534464313751758922181754325333489403813738957296124091137833499962867394689406474511005636468286929998760614010574233133046491526857977112746739040114984786878130641909781594051644086940373284436962120622100108639284160792047541784971244245139363294040182015523188047938689143191944936268913828472504400025708954540247438580099566356085541641523636469511424478778246855628922274603610591926736351894686140572636474475904263383724133213514027001066764272964607041590816646540585005379385757783024597049247073985154785339640169699301962841790073111786588175422803304073447465494953945888753043182561004009743825375609931356665801742732877689511193814313509615889613291655546142259214290213260479350364000217619495075955907950109720927178306866960407663656222364735080807179461488682497109853469646311237772179044290139976407865039646524847682851616617343456998354033811566624452310285059308736013352246982116846299888247731952818898090457820220527837047087468914202324632244964076867213486336840639821569785771213198475935532987265445661014685657899925151972742533747274597471607219289983885109432079017181321733293721753424029588527831506626802978966746680838048127684848707844964839230435217840630598879816476482393983054751093759646641405529480343010484372556697645095472135222076028740489567915440385742638474827629718197662915073963069858063453677059981678140898237924996748121507390804853239209269048498046619724368153046621852693961405566306723456807373542046260858932467957586511750999810394909461784183190258006734824503050537277754700732990289442886891741921835097324220684290321701902806999929803209060754580700079249940479364705350124590036297223214036227743491560371975216688600168491892910442161209976406447944489373559762886480698151872842443135172096893252452289882426221726219282994439731665265639396428407052575887430056591217441735569592716137248970501869127932673259587748078129629640469965099778373118054315597655005365911376428222864439664115259187163673310225884262207234570365678021337000077109363321863772479074681479958599956527163040785193397538873024757325317752866789729384222109330754412014934807937043316707818621097147831892079607503903543944430017704549498963475585307707284093543848149015776653388834948377434244891780574773156158198232298292923119018853015455124347772166092985464678323125053487785211179753514004403046072857633192890375824620686666652889195632651762880113440430962671942195448146479510114006589827156863442217730487874572209832138087434587327919031263423125792851593492500283190266420436479116942039554203494779528862710151230415855472018283276679420304651378087660973896987930422660194626569337852648157120155218096780180305032908510494606199034926228161715182686546680382887175753022526132452629187308065815969086674546794502466896651372940624028055972839625305804303287935283177722262491018332620209501363929615540184767205058215463759297243189831612530674980360594821159438902645829491003751396816062616807408125834436521728480877850726910156882216909099406383768006495584919904298146831701910492017975521759684341861454195491495644952661719071515543599145659909728961937772509578225009103595647478960532880735320108630540898231565972481112428886985468875983218488557889644654064036358617997384679514352905306424304884768725770997744488286664804361525492079844374790076062164400508772016927726445940062727920466517355728135417334893511909512944483145079210028721719691093388132435141193585982912762892550465007391489542741122755731121087875829580878416381188619837704371129140531053640321528076911464671621842837791501573692056633911797901953027050962093374025023357766682343991634436950388541433487773612109862059289194444063885057082558130240522482128938298879788717456223409674533182704101651284803528377390964998895677516989536142210666444347155045289559752378755340820174775517304932574954937740533992385733336760312627078382165666129382655791186269729374725439032969714110477341691378038088056743919081125373190933252633676541817174396014027093310369174018334638465580790668679685356927340612360900142202048885663576201921588246757607328922823101131341128245560989252692289865066213927352158111465577687619362487573587657984041842035948048148479089077952778870068951823053870600678744831407209578570037350048829171920696937381072397127718379894391467867099956396155035820593983047401968505118242766937774143761030830797383876275821618799842033160290777957782211356572568391951381563398619510906629818794321047194033646680493169108814086198372896091833054479987337742387509095864906798487862326169217227799246556527861033842338915996127483509212519460070019725649805087680911639020189880591486790841575649734901180242603596323768697976987971152145682956070088885492685982985283913814114939105225036480480366098634442311694629794720338944360746324277789710283768339966017421718688634407512309114206524805917780122701277350519575638604692578599178218191111404315818136134101361008281836149568193493057107717150542325354800788522599639347185992994710066641960789667751965097960362178622793050892561562655079858812448515907039740264652050866391699267022221859506636006132010336354990834533557037428198415236370479374546727417135462912996818476165197159699051114176678813623377697710945924926517976062331962443590249520281844592514798619913866242760630698663452417192491922660535348465454622344566846973578432429800899598521768448528073398309250700443247238815399777884528153689779922972862518694855766086716523539309810559028321375087639966858017852507513157318951184502022539191851085457554911700970774751407584941856953197493752221085514116756703997066602364642425236627905804793812807104587623786485266389325050562677361481595007460681427311215719401180492130446350958876977879171230048349954374698941095961716776296139487029646021029768599431870974365183796320845368515491601686461825887055079235869346285218352578789677945630054611815261644094713004471745503718680069242959473997755103076930421629828567011929630301988344248223579269264024539467275466920084117078298528491677572702879678425857498298369350550216824407487696792551314754621963426826904853981482754917567357803260422522904702846754746896218890061688210276225875289056159354093491441037898332408012866541859012740764909394634803825019479356838053849205881424477009341889783894031785936650214345655128152585785951598974898582956536888449022945621132629225942153280529258601686360352777891142113319928910632554482105160057031227285024706212472092057908083550842061172184260025455544780511519983136893678043678076454015205729483137960823145041086675330816044915501394124270207219520007470673914984296457869621095934468311417249317292307108216897960906986468102365615945349649230664111697720225348182230094934153119750896622224752671837025625550776905041660312253596955781263094641897244577985524985932361069301851425807028035141647267178652990935588934197565503398623269630776683144731062456918256404607519644772710242603503598010176278095122940024496595012373586089731106924248371174616499288232654455854768475758218900980318558019514286666206577481985586265939185567789919429761847828868459701107631250095493938065022732623767149064399886098209010928982363809493598490057743328791968911134685843174033725365914240251868082198667247956469320052128782432818658275758498232630515297856744282529818243464739999685128581007197071267511217800366721090240279487425914417625171607282560292754918006148729573289253290497404309558324157697477355887494491869583586473886224879848449346733825707767659481417441450358212307112027076004630468287674447322530562331476402161319046265514971567724075121842401562216261356880640666229265085234195128640439486028796488584720695286953792371677540841692644041431975493115037118661689333675144433693052436440445500718526547932553810759020997612014584642021837940873943029265945315529952278181205383556759068271171401158924576514628240138081548161120732759839907653798717296892447759000482466150178170778785788201041602447771528110335261142063813051406694204502137417091565847132404381590815986428742804726427102486381169558659239879469848804925488506001269729982492121586858683735925338738685129267816665264513499937750932907731896863582089436978072038291837743815762514362292565060284283965731817263835634646776470868540726269941174143922678403150548031318865024398080298057038755861097075953904922253352721656395391496419937186651283619611276074351606225240922417197489871262896772121296495932711643483811136309435583003172505777446275375555864394648553116217359134253827237640455140439205536702728335930962375176416580605085949000030960976384222731897923064804949410510052547441363442712476116209824641784828360687258054323930700236143400495106473750570837288593370232706349776554054635197637031244877892718138297144873580321570350495486191269664707267052622474330059942736247299959923136902372350655036770833035911827267404423046924258298027165686945979676192274541959352510071179459216386757033951431129901200640004629608655139199321210046901208285860697051237578499945938939676148065071083043051919422469659826837714220294680806934891481618184462248655991126653542475881401322946251188035504209989443200788886106515955514176265212233326000768490859938369873160804070411466569636400138488604214470177985583918122281992889330979920334880538499485225358909355851376216977934467933147424371627150934786763946404205142285075036590299882633804589972654675577069909531338551523419927320695873683686827219522597962278083717014294796387045156602590825087833190931554302002561806013237750536519640840808623091610692530784932403152205009926407690721694206215755381083470549341959705333677193164920429632930617446543132636480303710393806416234483566211527759817429445505159929872229919665826372904124658282879302236351980401473822766134419303047873429127038423352735682852139760782952774295156545425163947882806300198801920744708956783150827829803076314398163491817958317361249017665572115556406503648225503027342269380820661025585445698212749887910546157279226938813028775527476606506078484935892647124563392702057087202656771732398445583239190360191221393856511597521791559093453966033183968316054689185803257753494903213478562284875813895232318585314183934740965911857847452702399595477157317410120970107734645172208889940916706481288170951562447932652794304744515455893340558974231647436943525348191663996011863123213244062153227893099052668715866851014065521634118064690759479127368074399542248794040983813256677024227390717303526066633131241468385192792154887967357113798510246741848779402267687167783384922278884835717402843134034217691341483953453767432537355016795943428757236983805404768324182044427263224832422051273104264695119567240289043951861172718290318147589102303934018967826336939518955712192081902488726829639295601591148477491150572204957276739467957305010196436899243671430855386748955564884197061953527397744850320338161905398322265971270777539366324821320793037546726900273259648635709215147774562724294310104682642262308681191545582958384667326505128023918190527762220570353359983049505530757604835263529511588037422962230831111596274168879098748657335210111149704720212226937425887697636946092443271658950695974231990939823612300555354055942052150473193451420369021765839539833665583752404273277963811068950221801597329327088010052960149346216543807270167433106158319164668207143386717325946261633833074602939427380685965161152414503005530979480213814510824998602735111961904580661377966227421655332715416408752589244606345306445201665984896584904668192083926365016868687270463281431845349279928926582315648083716589384452094202741488033075300771252304050850796641607497437998345256419547791919202102888146204883305278916277833466737883423418893601112726526340526068887086185237413756826998252207598060523262417947944847847412060831028710640566683359765849290161004820703751623787059589756062633262069943731939735797494911056061998759840338864804652451052834452830442338250212067631973379556707798174204410940229798254082272087123386166596577617735903062691367287234143570985206220820454523822184104218455731455552145598597280772012168161241735952564890414985882595099230422836704672805945887193141909127697937946393289996455337811744088116560112598324777268989867365707418864094976281018803762383535593216484150865750363079889983665230830361537242281909676146030458318331411901408482911326386218436536131984982986561334478200093195183693356052759681205063587718735165016599035670414395451650114360218942536585038665819011087641012929934615171870233474403202432119108636214486442620562936216132487611658433518166398570358972860892385443476677427488250785811354611989955766954454290382288250185334793816496887708816647032707995320966459852383610229340187634098107393572904993434382954758848483523175794206450832526007877020569328375490840054397574196712666620960514845901451803750801632066311262824762316698279801190070055464115414821548854331142690496007260572571659650169758110567947461209336807414711060975827115547676789771311330568546888449272819541320695262738705560346053591243042488153861975665793871929362480065867006744211998302189133117122167668898424837762510830220875635960019689426213201413647338023606160681182163003329416287114269029591685709963049580231007648615167046588649230833727040931600218847310806262572675804467603532174291067831777166193579383051611045746794973048305559580443502763740771885535622130775644220732356186883769166728153134437843590418456395061889643385802544447184061972270214520193981467218259345695570174699750151401581930549984150809519313828943540425239010719555203604736211674938018241366416915590447580137954961492082733539623873523464607321514063132592698495650555839790193983869669372750503385238079011260046302605939819318833458289288249927094477534255300352900251780615534687348655347061331531469213007082947442757847647732082493031974470802903886744034633299758138292755674092498691159746398797662201742182507261914116924409436815745319581746663933680881628398916243150769492900130610766533901710748383911228893279084567926358676060653581832367786057513213013432040680609017207368938423230634985986686579993424277442266105780351996875539391735242127555525061839512535880517096696542635970612587911788171591457348580958863901337544615549189954992677696031077912992068865836079855792335103982607164164485543367558886429210306700404964249045388741993468040038609353186424583242176880057409281516714985957396408600168711567769859784551624539951350774544774550919428914696285309106274613296881758227067388296077211498445731421700780442977228320453526468654477278775769277177537160558985863534266460570339548175032032614175676824406781666446680036022895406067482794955962710293631831242334949199499816102847747771264116887545919249592092629487306327679582774796192639885536173563254759832383690612893221737160768170368333603513939125296083786509979684151013118613464899014759210750612569020180532610095567325754509473500612112768679622379237186411784277279922083685274440288620703580090270890612481242312502268301101805827833895219449317356378085504836854434962452416964324212817776271318234306592443236496754750123786358259630978703575885616540794436585365966046231928211128529279255602669146712861060741968583077570941529092301619325048307496367258252328131146972635803687281993951857399941228510891590424508646891014621434296526606064742894929246950051491278672157276722158894065759278827936519862336715677204745863859019343295399266462003534450510185443317751659204891218322477662930321189139726582692008700207840274251924339532498042025616524609361643180932897507682697974835433406086028508548349977219836103158476881683381583979233621263246014792578957821459502376309190352241245600884614117139620450912938873574549380048454152253492010076516082745047816944910210350088270071061073911185592055235661515494691961828380725525657338410587782635671328467780548024108800551187067774693949000903666601908472035769520285903264226844076292651378363835521083217148412759298024977879978868046198203828205797293242136153799104037346555134047815484686646692246187370202820024961924755717040477368008627307557905441459465580208969437618868072734056463325957297417690271657863974875078097648271200595107980982866669292739184349472756639116705657076743953984427015083432670514212936004802501432189787833899911254474996496976654538390915649218307435493520048436442238389648277359517353744623728611847009409829953581243825034332805433463922755711230578499947627203802096737812994317133523104125104854485637489094736131873249935160490224429251410319601702484540168106146430940165112447661272060249041165935488533631720053384855522568395072326908424307634793317962941090529894312418990161297536440595357266602396360744578154117636785218782908402689584437066937675785232815921974162216306063254012334597515328210539809554495958353471008584207452636109172098735353226309347910684450309889130932076159492924989065102277082873384891859059230943779967159934530974903548667608313060371020109902737217904534623534972096990105307998749873435548930834697406517663597140201441696368531252835670167253054800561318099111177216364759418546869549501113691980760675288490788666683076283253012453812209968226768270119634748013199114810177863599552960911471734256059196726564833533038630086390400850724388073128255087595386523003659685047436525406672579986998465179310741431535046255997892914551348692176953762909462687956100508374675797799953111740952601434127077512505900359887544632647475217947081213409471796929928970615253196764328625763489259867504423659551330433608918474619430341139461578197531346927720575609712583390176918553760719600175985733110567818447655996259561325551855386601332999703580063067914605670561857539863713756367262511993721122122914457260016085067196537053239367782011607876304794740537414770130715081160026730152415439342435971443603939322555755391816500775644733213415522603622883500043669689475079926548573704787920422796858572609441164769469597920495876163875703105258472289828835869517240755384863218580290379226827988535938430460821093582915960992892733364601851584517095139200359013484284327428385689632873367212533926453788610955308767284863236115222198670377829719248905129066935227900948001396297289214319925220564464201607622781243461918032636003560221016759106240269948241600531926704442984786036149281219384682995718110097057919143500669486279858709892294137253314800372334110828622921680897617570926297897016777276000780012230328295841307204381189423158851695153220972540954125017966651149285659400729823869837693404741946848983195738332156909459335166864312556017853573391870744165259703120053305116851909336162246034889592164247616639537891321873441744374819305893060225697198631928546300785250590166857823203287649668540544335322282837074937197152947087616251180928288957453979589141990783589536802294485661972465189664083675317232532899059137277881452672812009139633873341273148443430847477895801359496177685083953972479426364912654809486667605999957810581686765376466530139725895756995328794834901811881106602970934460564551314783746556165690155378095438937097446951368464017630359743035183660706410108082248263348674187607678097051728112260747343857010566130626010359841398362017947709888268928622851480950022864655035240821023872824760048177262210960868627383237638481256605844108674907634389238700179888017311291729726143820103220994178272412486943726056034531911161625559348459672539764556510342846909063465317148376632102920725179842651653318639369907926989339252458857427812319861168040185942229539519860472049168906387907677045837319434558912283586183628842221496593817337395680449401550443123807348200212348963844825068431476847985207654557940523417323186721510507019699797311800089177859384876008095460091272177851140648211311074173730654643945159840811866403926885079357019349744258189411397506676418811779527464116001462531611829158957205816440265826824178612810631969163405980513339762837796858545785727454613174781630757866442543864280866905176782621413037881083524009615403431020541938499664518590446283268642324908540580411004070486438577426782710434483838281335687761152062492516193494193903515264593260101374443521068953071860332831780506192372551896901162781233105702943544629633684463774798811366297859746577578673631720883763189912236135959941039310666050768018795881400782422049882986807885262579434061637258082380781995667649630684173101119519274058863369855609890815776221396360944794368211498807055270696338627227630930572187247098716048023897619024874599791487046883633450069123299334732801142972472668688576705061736583692298052541872411950518653978745534092687663587921287706013054570633185057246274679713001426589880716830738630321197220356290401688352052822115230370651867893603502553113592319401803006410094656270797038590442472447503479466412791102504248076238102036299549975982015614684713185278538072065796765083147607783282645844663021056381796321639997679597883870568313513799638981320838378598611821984738983713391171978026042080259436469427235981131603223382262624804453871230743951318311628664443819176708709893293817224002269521642310345755642835506799592875887303249548095153680192818374193056300088255119387904469296794246421584061402978969377031805056624976776591051385322145090958903257063601719832842787290782488092357190984749128125955327132174577455836688633065427587965954558158207968312719875690157848172593867736303038983003895970576432159923745718363391360435364298126048796229780298625194099824274915669232231103365088391290518633603711187779656926097089091837018691348373732658105425449709885737618656925664662950912132128862422081025292895833991691700396362020759811383829500264450387389288133892230816186462075182474299478261392118604451675930885154868790082342216009634049533417338285803871125419251419798250698106030766458342228745405880101322830705715781136464317703190676185065133731694938162920433091675716777796393129518801598281230189100152426142799739247207584777667595303756948876867049844340575043281073923069813346650309864180187492761580090456803909199975310313177412097018095244740054982060668779720182220200931998600551489380275260394125268627057380525649750925964282861977183790766984341470171888276640083514779744447279123203699911367930969617591921634215960947460653757688625333395063702297864892153373583756695307833219209192596117142132121762034541835129368384506772269456366952270111059825302020239165647335414680614325973198909715174089462832715148389554077948319170876862228799440030699106471993206960912155635493901716272803817766927195037804859665803046977409751404350006463748288037716439100930967962698851366260415796797401293782972280530805391105812055713841085651805670727198430456839303429075234631100455837437061112475144851107072820863195905139100249683784117091443967926876644860801487929726353349099670521135762150593830448156523703712320006746140691768300349579831364280681721863297280929435762367739523607875902735617093902274581764949657936278604744145627465480530276275324712968524816304688111390050769612358596284567541975013231922675250984173259257632622114065299124559361762587004091959341699140460756573594247829474711823483591565458973252361873691381684036147015595726314077569443463775299163793604899961120215559155374329660814206852483016181391063489885257931641394713789856619897364768564842718720004309207723175312382707363998199370968673966081985506821493611197721286073994913176219816125048893379811204864491297375186964466001908229230808691414053025051617798785975477844470893327927691916728366944725930252068673497302485449246217319431812955590968656368125964613284036427442217887774553832016453645921605968412891366072479222471391406190253426801440956509694984442850429888547472750615116351992804528178957456734721277362545076405548809862698912722356578283751546760141983044730145616065067359746673036031683808416237823727135778234522906278843659971682417912349932852138261151407169393623623555995240750687098639125701496450778250048089679988713823326426583671373918769710893125988420451873128299148063896538480615788241443578789774125965182784152324359003027617781547895037125380162197629437486483926726781229037604016625488270124813610224440345295507595088574626373818071038861027783250315426552602537143160122398181986223908765127165275652154726319212378945137299216595962276121447363439676822618318531785998367709352123109969937041112924740121135806251430274324221238308546101477469411948401704651093500653318909783654951434979704810977850771738755149889829434951955307178158526571028967158776701346023008339244168947505035600112529558753763630563459472716783719550006026398309003219436734452041782540650431758085739490733980104660047132860814486147857744105431773710549817276461199546431248056010928102348308692980501207101432849328233703240958836795301927108714871168951444751480863540361453848060636207251723832632306301849346173767484311591040182483150524334332462484713885937119198609575371243452133797016470644805617459707329343199734917863037555493588324612982080665381924542736892969843010988172165003234857782244697232096077463961365864583957391368490274013656196468339558146888253638408281358215373830276716632759191839166360800265960659550281238353015591701455335512398552493394910249337000302497033881823624945424815113935202047101268612643707061343961915234512184638143175960987660202903449636097765581590997983907294544730389468509942929543587390189808829090850188585986506314547769636360688236476047940362063645972035984260654442928018136902376463706919525705731986490475802771344494724713272720301777434507132485601082736521306139082052798283705377979337552107912511394401415054031409640752367969431555377582714620647077697493985891814023424817833403537941338237563733801131977366181940781588382850515316196058972382725834365789195113771612079482070118293305107794987877003417238559390036734855719667427281456549537645161282726321593975825017842317115572145994784096089649716474516127103314159726248956829534201269603471684771763810147181811729017061993032059859350171432236696685270329447875819189437900832281760205236422600477190870953133520346277470363658861444642534041737557161663380434383422937458839521772743875163994067712929510780830702995253245007426793317776041491230426889107776570194221949973144276211070563092554375868846708807412441478187977553790172176473088134089020655266908165595817309568304954582755778626816227346585578426134789762379998064884449493204821758199067197914842756570612523018171095129866174099786477327822420127817338111888756209655338892912278634731352775251330119274145743392182648723449472519923803360730610460610541887346238204158462786996268255813976934968294333646725247121639891226842676218512536849114611055240466961659304391488312832974311891674289675633133224439649049921785554427974247677103152435489570949474719729774142521240539051611027393511359556935061044776014805145210287914348092749703353173713278918675442422501852790784341718423351166173012056056138944134553331934485468204538263788719360953933917636917269016252309792062422800261434841376609888159429801089727909814166893627987699686972460094425601338830291511705540533317520002609455488467030751939065881808752691331873030526932332444142673324504013562832331773751349308692608496213430109947833178924303573439186595332951906352906518403599718276809360561629267009096128490624623880184824975258483719695181038895375827644161941219239023723853933396347544032065542252105947397462617843524004185744430018165691918058448602762971617808819862466271830180940745908232143457745257280276560775598646561757829764560033849757053521440494004349484397493155896195529062611494114013441252812222441937390760510016546062165650776238274506062384454360717922173845129407666868386278214661328660172565417440789835013647366371862641231092022188615938060599615262635124688881247101199955760643053910716605516830816655214138258990444123552790559487834691738162193651756846559603351905863984740231744551589890348462189175606936363906300612766393636018657571508533153312184371624971086764450396627557001785644436942557303079677170260681616118421860927504361750280393419257845641206073456523464990248024868562013355090258359019607587041540751332752697466963530769958929744401177190512601255193590925963130312995131820228011882758003905993758933098299015285440422597986617523090212617591690981797256774496751908355984075878209035221288883608063981431120817465235174099030406735931701845045321597591344336309960021855143378244143734407845230158321946852974703838300226200639079539671690252503663542291898277929699823386235361996839086979283176077539571075956201667323215227482362640627473452667745311742411383269878352651214254997289598927925078635742310629134415416808171633266516646036101003362760190721300231476351448173868609776638283287348856586484601284696891583680729549934283072739741970252699795447541509540284652058526246091526102553656022871805468384799360789975948498586113865100074971488582601616093606783644366039709688989130656407735366046912937404049318010034696589076526035276984473174877175610765923058957312729340877045446322392409048680884172512749471985845901181150074283652812321757365749420499921678632851956075826397550799817262816638508954211659786229657443164818571186680761805365548678077383152224258554598757177555008836162373702249247515217833054335420793708379811258757330509728166929975982724047742298537731531262511709228960090963888821110446181016597737871516783091944135183875517193032819410019988193419659087649064743615959175302168816381389349386207436697020496406417536253235688345539828550017986892619151264318936165138649142566040243453587711938306580379590567013642391736116718100428348241609425593502592344973413615769809539057368410134208515497949636074705568204653549108510626595446020030529472263787731186723201303706785010705710773888477751882034159028716504532343955467476900108186600513746863913140569620930602851950751934642774478112797493734712634725037618243623526055080973122565731729995980203735035904145619122806587577944679749046085136553367853913788391039998395586452024146186111531918867400097753292495598347781432125219776866851014182862264169160422098633120743007549419929421072851281468107815115234867817202728368237771302070027234477806834151997533279542219474321962225294462493764305345896878790679600242976749394902346858734972500591370187150602706892261591533055914559072661455662207074152979139353745316339217964858828443887478501526015992305897258038298025365186011336903664785106144731097214700651514512379394434528950156930739159406948961256904327664335284581745487080693672795809514957127506377506397748800279596060644476715779699327462671110165573236209219633875089851569020997676782476827647275600057526334185649548650254908839931407138101794553054828728207408824791165803209342943759517303615439295745633955233157290071170797183450558261749691598555421319303350406675078290629022276698435428410092309702565869933998208636823051526577658527996753982746918654989828445746585583746250194653650881318987686977817461238196405310504714689180408311008742308823617953881813471292114745623683984905478422107095099938814358750615967579479932380814004906318262480423267960145834816802908744619174840257130509517889726463212835122120463493280915523305690803196294975869267800038904414455517907278003311721501859800943328090015441752471554120700909307090215265322221673562830250564412103278999627320275123745258969301209344011960304106439838930399666636359887416356950706324603636127406913220893082533755329556363829069439517468552612144598351582754297720670811897161201281811246710225221268762968353726646931909358621377085291440043806458716806153568015299526580381742030751349754878117619503673509439103414154856455723617210291470453332705392050965621557853599883433800571974435526321698023810477842302757968712657433974495998359237752611437963354331923435131280354978223738486775846412523990786142703131065720111332066657715429452138918820235224320096682840733975925495301797592209375205748048120286083074822981009884668398394536581582154429858514014309293335265979164934946007136066600814843382983452172815888800438193770024122889237364273789204743148259722478183971723881326601263043525455124028042048060313995834192810727407077498335383147269219081686858480146459697176423839804600733074345690274950281482353988061717570980518457836909023405940459589443208586377586295781251067466993505817590069435587999667548024695616455397540861649502563716573167914159946010378359166934056027432241218507609639335329169809781482978134077032680389680474990787646687495518820764725212868321968495380201933126065637546708310810611847912031315108827144906885501046861782253582717108768007910102499436723449564833143694591782025258048090044231215270789068413192876118742116442424745233034304391505410544578027866767243340153750416255171816857095946268506957820523655679918219099662361217512025813602873048784788137243552981043596968009687309005402739248792093331919319423514981024272472079052017776622117009007629585472134256594008860112643172104072748807431681774067913137380030358609773206529537141834806750452313092155634188404876600188733473050671122056487058701663887665541312998355388882898573919677762088158726159651130717346925404012620178076382203067345391478990291585147299656206561797471519723905638888996246037168249762364045498318526188077979227686013309679296422571064573808752062866816105588432088858997546377793971045310671997710311118015490597793426036941880775280494916474057944748884604654663176522186454558907963321322705316548692700049322141257689824885206640415498475508272015982555147576041525006527533861306090747213321894579912212643942787700837337248796139207248513968784074431893446328770979926804402687796390043594416759783576710262146638044949341656878550030201819262150986631659459424363608691223824901050459054637965124358226218863027962697523625962540975143027971545190698112038458311681472248382709267101299244023413927876735616079695736308270398985669984231519171466722781298547100164920335024079052047126592191837896560724080122709579239176312436240341380832405262212654470795672512476055357382599272767405077327238622600279427940233773028833405224364964032091552235771409315819927950252319052218305493659359047393089825160256967121749756307751520240485083563483924798110443289351186142032155589647172596220804555091941615261268528920169207878666012689640085483301666381399169793449048205343425660061519860691387500508597530323059371453226340868210377126040463981511243853787238271157849157312510205371396896147212248415207869280978608327214225684331181676285315643029558458671206642181039558902797737645377428963532288253228501657433747431748657609524997246350587641097139488548188553278437293663543280406469097697226620215231850484694889627740330905896214988863359680732173752767984901991797309565155700911062045515390479277818173355079854922429604286300933254265920891318294479671615833614967077818296025120024645089416951377907381948300544640861582963734073040792247903336964862328954198542334585896488909974145638022819879199671556289142131199431955385293325275734232909854108075139613373907151581007136993497744618140259993599817178730910671354105297669937372071476487672225655164683940092542401888866074388891856942864928205855674148370823067741998293438167012096851044490057847727482631684330488760084803158188794617913368285772097969543245947394702714332772536885551325537896325789318344039906009056588175079065405491449337709917646462806187777320240949551814590596269936996515271479141871766153711529929241210537606621553761369847186171848049381567584813330830457662743398730599760971250082100699001321492184389711800935010699014602773693066637776162509694852973119860736282187307672065594386842583267686445170645028392507649143891763022446872882959084091992967134749159103889385261257195637847314275051581707561210879865144606169189764638243545631009709472987149277407536538908538185479086691161116186978041639250785031013862382916748071219707694176575192440063682123259779413684054591606769465525973735796956456693009683193583087841901734516676526981611677673120556759932717033469691712652037269952519301970429289641182470214505205258105270899386486731899020877676175732616687402115626565932168101779872647499253715028431956001292335111794698144194803784206745914929162684516600186935531334215234054606855059748711495543119015927633972248810340548506803570861470135643961434077584574932867584529366631778471083648469154554457718746549918180462959131067308728120211512399285929821894103300204276846189072483836695756037373104777393556590244150059222832030266950036756438139310345675886235248896207461588133333638120660347320460008367591750306637256650837956400402881553698688294709121564205971022378929135552996863648929175652884680164117672972297803065330220022090676408165222822077451648758366253252708979699543524257264249796201175844569261540855796082108786661556939886757113957378321773809284987597472989057173139701677211901729860334751635060225837079204990461101911022949017623321544917731219312024415705208529822584535229230463323324640968856881769371408216231829831341243916165738657297121163371810503319247300212269351293996863216732178264497218602265755021498135484532645573623146389537557478862945420388313324915576046086208208197385220089344310154462311381217186625113211276987173409621937022268334118502962862538032674352659544425503188539693740908160470513673940569214448239385419611362145049656004063416769023721170979676323175887005822871295202257514109961805091679379053454969263978519007093683138339468882668280437531011533081645273277419989477954532813520960651509971122262292086541697463063103023137901509948765333373068040619088520034712575759246860336100291763763462279501967146464580341509101971733155274042438335238843245710594484365258276273499590203020524772740675464671547984155548284557663509645075823136380464785782009599230733598524854084498314432409290624822670335117058689997706809715072571109968204542686177977417071493365187915823025817335277276564870377213890250187669063567673812584470160338255428129336867643535858335242555149917809761896967308087313048913862033171550974474421344492665922480202011467954316363112244174835292524237200564574709122595213552481697861766705154661253046661392894836430809433375711380894252799419349369489158669095989139481279564027788521394716498703976423442029956337229133130913589423253565920992502877687470886449068982673699581336409285794817482104767996998337835275211967290079664572451110432988139952110266609292179446719451386750000235171444886733437788371259662892226218041867340247880973404424209791787932420492903865307897679937011521829104747957010935132287205282585925482985677274130786475467758917296244677078172182509397565339171876319122217247230688816090967627615033756531461800799998650471594882032539668384762019462807685608363142117923074006369353751948261132624134170461752215468606284183299429399613150799639394998318231072020013428138086001179540698331528406046568610497036739419735612424286573761532186071264828749367404526434699931433288530793641283832514550877167707558233816180621491907943880112552020981530293172983079071046326216485371609069533412226627669430514021343746934758502257327260767838525069193059452490554048261864625116019056657146562047758782687234765111357647210225687816016689334714485536262811774600447235913093013975193895510315375569974992353447262345471159425348634582065590309749511166621080389938267284122813526867759514248503985035806068425280114739091716828425412515957215551525783038416042360819547899015669083092151192424167196986116812459215652123818139443008299901216928313284147396459478024746037793435938453276504191488025938523689129658342912189775245308851775421895975609446695785174083272537517037834984594806112582590590338708509290450974592105026348538362014420340489922676663045644787523919326310234605495601574259545654693161872947939670923856700134144973597482629699538861545018360063490746189550150822040408848158082860436235192047939507421391356928724715398527448849865870886791458588190277498721345128571576393255466143013199299482681917634340413248312952444446403093214212627488853480982305341392414889745405940842269995188070390734363216537156126951224457045108330729727940259237943014244943315680607709106375053413095807456242069584222134894139388389322515671516581896545419288384562482813107801734468354499664409483654746700483431300982280152243097848009672592135086689072496278774843189756249154808044282120489065421285233088376270370557702175591417767855347100244840178133601963418898780964954175253999104438076139550852367787976767561248825948844528210013642921328126865716033432872637831682480955482446879373410286383498667115842057890860484107398452302908375845738416660853194467656152303527579135757128456876835415098705482139569182389321771995791610043449776393230348371074963768186866447028520715381860220494950482270506518346504008968484922134715898993851731098068698155656236100892103022598046945811345976500129004000510442360729628766009628772284100894903324905375310677280047740156092237498813228738486500640444837331556975663690381260589278242578791201915289429332783041121680514319535585641655442979267036318348554852818403325053474295059315734456399594072364851508895489150257436985146931071139270040157419179025225927038553838690111512543834688495225647629018787355908883567161946803789246241997479883543047324041243146519442451577994075027942707571054875645174251877479609283898704152494913243846531822585032533065250011623560889284517913730324316735849209534122387326940959257337868586306535371875763225992063183196713570323890492013946067328727006281107618913133161035630840922593252228533521513220251867391339074991679827821907923225336130348063174122973301334901104404928944476808592397006380137603882062593287164510416851006778841506664672779033272682316640798012767706854631479620121381264746017894125741760743771007869479081146153358333931744790871273149200810409872723411301009200807290875947482487732969237070450955362659565733890578776902634932894287300641439936292791767774050349515375207315197300749973495459520211692116698612057976350222707377754641314738652183057061363876000545029076688543237435949487425049335657837512098716198066406478071441127047030874140379755454264472994705843251425596081537709678587594500466262235191650770041128732648522263176183572397367067063362638761806143542965580572888258214824541238041331286673201319392246254138687870247033812052976063322098382302768154474502220797498657428324865203380970306474939288851005253462666955186996062289521250363399180086556955451510485916332974019910309983807246916077099103202007304977557087074553686854385713435855795277370233146836396407423104405411199197768519161009339590204693656319073063211544242742732563126759255935311574867507270706348453592049161851879792791100074240926305639916088611769654021648777285232231952129572837550083723651914535364614628211480572491670124740345821014562978640381181679356778766349072411124882915604652044162563486079692946364602224283706083168745877135307653568895016403527382663587159381930172036264202742816500835292331406169542153771410289221898425396575341393924044633002609969139676234257627982821840798301913728854274410087629525131915597634596813041202704387338103503419241978320137499539067435211699285598503674389748799459800865975486119722038869594954430008604987480205553810810245112334619207162482799971915295490219460135751732460411394308703901570315921821209189231167121170142594833783292666353223157411149487268998835287071593094543893142392206640170789043949055633791618044771568712181766057208836507037388986599286130535375535425494436726626650356013698673083498417871788301840922544275864169115135846086503385737384759944033306124268455266268578798123380723457948320313762975354176936499364195416490370645636374396675306745745295691203907556266886553929565671099507235288102783590122755221571321703824546399026366645179900305144643257231735225819639298251406541131327197123369420718149689996241483317278633492424130323022868969217927027782983645779009214036566209756376006104778473875529029311866916021717158353323285763782199594573171976291753355438076697802577476774717336869315696516042162397773875792429250413595235551014584863279483185495768654306851898613739594810483307366071658533652548878218646506881530552480423259862390584706242178569742678430497570068602310855952497621069215459669503741885649864340265467368029564239029059660715035622018831939441101877403184776460300428111511921729769995383050118881341431572447525502689035671174488029244474540187305089810871125205983088744022252588491510575476051247321677539741014710037119228902272974128524892151807700504979391738651835107190378254043783049414812337553693552926516575741829010423307760048899710979174316943272733581934792766389281024260080485099302170295947993362174083411267180242684561936170154525739775480569285243878828880486277300711430139514331773852841257834576186223620812374536208361894287060769457229395479590604214066675855472597514278874439950007932033217224379483407741732078595550617160506656217324711253316245473798014996612346478422959643969184911270609776872180169901860050453780937202466155878713559810290450752095273841363189041485453910286185900707053211041810845195328816103407229041669021144273778069335903740526261138623722576330171385269390139066806609076124573483683293099670435624880164222707694592649288112443037121191322351690531065220567354278991820945254718895967666126127926904063769808814279260600711953357834928499848437518498150133130711366209369089998885578399150307870801307639267083361561457587094028235842820001670308537420965297486661637521077296834968789119948657063070417214197626240935640316438287592987925983881699248610972476452586772357120957210067288872288809389482286743508433049335655697534350659182635403156941968771690209051335690192233719564173236255250348243582406647537703634559527945362665961873858130351482847776214885391617446794339985780436728332590916140629983612290054092223555915338241964933270742979353878885826071276492284461434518999012927673823699405616012514243496081762355866684505721040022209626733877082417695806473322244451322194216944373957966417955211164129947809842676104161845622232060682184405274807196513641768691968736111134461651562990106797509618529987263531802871711581202858393042174107537791179753106573554403726531583506907631956676661066792891953728331436701565358246105581210032742499976594983687391460014910361027850141775225001358425409008370112466716763583740786719928131066448046645660412761527110626692232606972181441194628513865761371953881951052171582322696595667558138669074964053640331707413642737613519244393268774587409561933356777507144133587239535965848407602937585061447101591047678452860622175095442689636040330084781168193907535967109359072128121251936092842958501507081608849194120638938033943429852924094474726972036268512508131454281503979087671238932369839135378863198097769601956003621925924770279846344470045917207161812336331139536544655960315010319813800178134473432211120784148131176164560223806887835510425109417917089906198658079032191285760637689811636848488023652866134701332773529763498549681964989717053738414277362894116145730419911465804776918157180315158188780708168664875633096306774360967723849802126741076845554702244836607486857447947525296353231741916246998552771801633881173667709038439740008543968107449669891839177785742070120723015935108517687848008009105535196758066799878792284502832433238361071794049506588187768488839124732896470934562389331480910669382091552358865820063309122605262179249716617084151836629563910697724812276833445514047887446673865522203132866375304452750597254587023978571488847590910890394548734351855761495587097011360063642099816818708815437992897223614183467878362126365799485361454381892587629647723582157267931075545011395700228160654372506462037058902575768790447521864759395975195042740049933337365326447241965680972925321726327735616822650263357569503724478244457615797045122194600681631469899353774171397234332503721625569848997321444530176137320385548604355629348988589615263935774204531880022322750021026633961622142530677222997235373828453237745780261805248730968917573470196838718098817029819759891929328415364944622421644888268731417348495181232356272692406776649184096577079308446417355896693666989011058913138561864905596972318479178231856154784008788918753291602641918186839075222472877426399588405526289765303226732880664088915605309098585873996586215893409285164136328457359602617926743241110794583820686623517560450574222924389608612713546550271175361040208460402406521743755521980910878723050336301512369382765865320835938149975514459817708067993796481153690365321349095026264571337447611352598448089255700706804240165161872728364576815773520752804430272281688845053742553157298986748217778836322849296237943604903363547847867617080007772091919259083403002516777121227518050920856273410771137646553400792097695799788367320347723598411447992298886874466319599253148099016068708393188441854200500105449538553513607630166964872168481831404216644389868737838231847031645543563357943789341829746553906894657175702251639424854002008966006155132345875953083117162627365372779958276121055591295731504378868838950834285447244045761069806206708037180871208677475192530553201391950346516795031429560533718276866505294102259650143474510952845811852854789212788735113070912827721904330693244471702088205319618679685039755408490556913180994179045545552943287764197697321739396527346006044613569318439216870641380123703768506200532879670349491410666625867854316297149906342476007963633416157583675299255463798154582282366004543861500707132956664164430837712077156051520728350658127606673668965474879246201777842958010590840552592373035712218601095236514084213403163717112812686102390888735159642715040618091017934245894459138620104817917885225539921445955553175858264365681958883625302895879344956655660915292316266382170748429466532564436301211002597893108544020197915121471873695238798034942566217492116580056141763655880728751649249357595596497720577310046739900202361646456891069012576296057356225075944791192376959024394515779772808589301212088410258316819011023012237666412090898543125646357487815658956900488619048677887535420445039953352597816599120908080225645750659711491873706263476626138246387865907042513450516372557202041044938673488555903792870352473459618516798618384687501448985957382723096582856092956106522321557315729241974000535485389151345726948155780988677806517084883097872977696220140972906324308278384122192755835935765561360075305693008180308520072729208708144912654815554942023614555841459595056702441050692212508643771933866678456562662902321413508035142757572259310935759702944310525946182261539449953280303603503465550112510717677507470647825099578569693332551881636035770506421536678192380899182041330308722860887087890309497942797546483748161053088638807197971645889937934515187894328097147950991111896146712186882622701674835962471967643356595732711869318140025486043684397368671129816628749288320379792359361599303588538170819446242673773998596689369197832060460625948602809606849182419846044661418659322674373208349379941892976832329093648956251996540903929956219523914053315817861483780071353782581779155197640796911208798449961424524123819951169200081757335429693112275494785065993903292705336077698568495704196633623401410343518581565997452805523150330861870042462412859105202155514048535691148954263453967951658670631755672128676533989072443586821460561782186471103040377737172963763885797033140403591472500349164265950740840232960688005144155927303682028740581367496711159338581372232965348243632893704548252385163116279184700895063232489605399717632856003304464843493960927921085004427460538148516184774967874247573533832343682470575735075489984043022887327768727347333798079709117520076738492860543356208649715769296986383626461699304238942646577293322267419701593054767161877510798721286471698271817722688597674676935069181682472290619376904091529845784129435931583653691686061268239039694773176325076668597227395379829926762403533925610945918983206454248436103527559895887124516375376274087960188707852936805396360027333287809820342237830627211112465054516204950115973060548999565833473102290255047111049254672655040432978546314716627685945874828624718813577929458135769408034650671195688123684316624888545163309959647784609451616042045879893069575187854615219210648757915749697632610981653450136360955708336281483957647668768635632527847180808245756199918220031214880973068091645324173584104445683975942197756328676069567876000589565265691086571682186384644590146300441195403344558341534498223969162021502925458140321522919908869393784596206598359885175556223884251165233451078774728921628955039434633751991094280881949384328042016209088857914808111572169325678976086047459580114134085787632403160852831491922585397255078438100976902861641073589400283260564770025874411310923237905488085935469974070840304978547500556693152178985390459143253564273290886559459834802895146095667656705486643387717190484817084934000057620590554059444649798681208588890174243588695710643975438200847608273362650742829307926153362294740189749126921621823144937304980841896762944952704806976440870221757734364883971730635679135206263295600209495885642481500697082976742918359962702788160177818330737809918685891862380466721254957560029759817803128791768032460489555867906073310059256355923733910333650755625189931955934561526247141472466586247385844910027553727276030869339736740544834781695386513814910672710613183011798412358563536812017041399277563387367566377716079180701464495095396663100034424378689439408943289402521186778567389730645811353580833301730569757078931662446779049172859432572065499239448535281174258307995398341623662575063214419117590420337544890286089006592227181706034067417016272469528204870527476342095095561539984850254529110885308865969012810378645108563245386062522906678020495923485205842082678685091430783144214338995871063268881557613202459936571949630081350764655022665950414086150688683204798490141837495948800963018325547044061675979911192240491999180545255346510355317089393626000910622379613486274677748329485847629962307272033678977522004900351317484787230798928167962906792554177026988470856790813591524178760074055910463105594403040074709323574773196316637943411701671109882799679987850453658151137492058974902667820128839670105292344177878786336679163838381475487342956156710268085264329088208247519534144024563149515542021313074866863641116646711017785309598692899111385118512938734210603469874804374218612262952680410467117500693118974102420088369590315806626078510673264294091372674728714737369374926068844316898561300334586247880540553287979247746562781809803959171905108422499566120016929528391799251075700644060184429025419013074679856354413602140266367464742116476795295500512949452827208925427712229945412478981807103387471987063736604043205863384195484540355528008684571075225812730772124014782332081624322806370201179297614075514013638084468095893954139683737340366003687200602159549011700914573284247452949829662281443325993562210094121095996688645916210867461526112716836316419700227342705887046065535994824347292284458589723957502996046522679786089531269475720508508683433435642916268437996984565345820336860368400554128954738581517579586133693081999026853726494257236459052696942661177818401253228906924674640602251922287662006967767215058742306554537395904841225830207036301601395789103492241222439067173501166156479279510710164475792976020015774610539077770215613151516828058090501978133237792421124317379353716000498692560319123831791883964859691562331018742868367017179595244561516719612261390835002048486943005615608412363940846213325444465592276714234802133354239597869128428453633947369920606824585878707426104230996827015936985391214910961035987635227854947268372325840043493868983252501762958941583417210061248272344308810488122938891325571116345882346756421605862037152104141502092187327232936373359948034371942865685600498856109294773913193390978909083515123746306289399909176869548559989699318445107325964411356061454628876512509954573840342450736348653397954405147280285615099253110801453952319624976591363915771237125702799482351251152817823951311390794304664224054197219210539743051187341682902115888750798021023494180341568432864564914319080674324550157617654566896376025374383253876030451844356034425707710604796733183377844118476321589039366174902375015512246213189437447353747972943001784216913063020876777999212002606359113938277146231195830127613983147303104358060166918788917340090268862755043256559695686512162067511196426455748116741839979190438207760906845555827891416525475988792981658486577802170413486580412492196358541237859188393458238663893299834486471329558144319270562644438995549482523266186864545404495036989181993017458727838925085200501215806996569191714221643399125295222826483129076038593913712831277059667037041663500734439210904969624847177153243339462746950844675537517407909512567401853139141639222558315326023497589344227959571455652687367577969166118729559004817691860941397695046546182147414745451365665779441743774797239261438752866268647994260032567428635648880568835558193194016964506930322810151567466417849566107738209851607711261361004704462319168387716965759335886529171060541517380571466029657748181706749381735734166088180154933533267670649128621277368670633524764556641169309731785197902138283346494639427655842627373011251465439022052353541933287626840370302685680704795941465694701159681221495328124831967086474887516176056067961857515788913687810913226530225060391221212094688918015043601438149055193243890265437476091036988159089250490788673430968756973833880076289138339318876229294678474858679041326666090506665537944990386817751934259019050219276403040633350482628112500012212313057290326750498796292617009026392744060989367089296290122066586700314110325086487423313132796915621390947279160983980519459569949996530073646123407727231310115927223349677635592353729791911875596523787011693422562012114008901536837702314585207328734497870720446040884593821195228441848467565666295772835031309922920310197387099112925383336811463430652865952848965444143377466190203009733739690368538048423071419766839899990409762095449244728471864031205664256818429088109145950873254433636512920455714890275268605710054740213029123151044709829241559957077453536639992133761507717382025725070554139646468519014402825116538760448164495355598501966370388871704486001774789976299665814399310836247433467680900537331853524288106317752384682017438142492648226015005697474436488878640421297344717804744843257653809017983860024519015587015367858090955507598890210112224636400744329688217518605809475817816769460930385760178737099656210990393879592828752534539456508055481870004471305330373363993546383162205162326576016208396902748741845245068964300937223129201866333133907743905043453310970050085116338027628263451918316697469905176277018040680179163261689628319492591510314184935950624687367104214272238410136798361348595049558585198658859133618507356231388023148255202635058171886103284778156346353709306836491427610853407051362934839175468280867663166683629353965599275200961088452541936630123493354674946489654346238084749080975572337191748023022926037341072440419091480834571573124098670478234249200645886046841879369752905106933529199941762080986594182348766891165884914805575118158663197679874086813871530274935692946951942543975617059020364452071755079223350975224128148819018952891793567892603724267333357941018696433057735521646769487792651079084801660180934370301717427445989368173594967511600907998171056752324819414451411645731363135658294500887917163402192229315158065467340939610419675401300999183400352060008672546756993739819342871664814685811498766693711215111835747711215899629070456876049427133614534323877501485782619444583111379838384234330882300098086934524886375506642506256720888792263628020063284945307707148802218563324912163606079195678844300476501773141359729755357086351903770195599778878186641996640549965421172910072633230054582356117387982031791828229306019267144758464425611251703394216426407166487144114139760047839256510702026702564110463888663204079604060591716869041416257645463099506340654497351654844687666537809197937415587082520845628907195961558326280458019865445044920024019402288313092197769950783512064817246096533560765746839112900826800228156826298741021649602894570718996837069948536989703213261217344432059467421451182067222479859891615533516344117167675726503520908347704400190861267031789847520411259353084384440418612346846058483228569371244466725737431425714522777966815490001397198486408851322768195413602657882927936003308863195044936667055331093640105527368848510768827070749056382325997634379020885623821442920063736006128190631950902899637933037438741114968512700413184823366410013508711192000519469768019873341765270093434584254980308508325648369095624005201990513566715441647025849058351271790352966549412777287127035126947466532861687299460782947384382710232060602550238340685056233447344824256881644467166473334204722414653384874137948426710829556626491804396771651477197006415809923215071437100051237563654019552000375451240482024445236868273171971308769642732460900657604875032036972809247461364064222434517747391850098625498775881801228880003936382065221242332291070054000404447542166267177104854680466989912728385343564951182945358232860037110964352927535563069045527502362941430796041298282128483478329763352701257358441419657494088678417149780941674918833516764128270502041574369616456015937117357454397371468399356736029637714471981228531332778235092244142791380581156555147398584266728703350301760816096904158221809354604324539219966656799766716447426173155513275485861712875884697858791164461679188781636791799185771145785779336038048587634409058356157523399570801309273936467067149403992856236593557633014214838906907843412764189066518980040968829858647375570695450613519777076522914622190314903503623681861000951196666313388632401007526556618316557374349988721022771804855788740843722623410216171223972598135440869267573076020940772583365444242412636881529362525814412454904499364358288862075606466957989531175141614590562469016019637498026472221587987568650411304753839528937140417376331195395695587011707540359881496631690253280805850467519699523360982891397125388040545177542209408343728351088618009457271238824624715567929719471505479449602769085308718777976456088923464793214263248945464959638149626307714893405499872969044344195499771272623745437787133665852231112050078033918790940470203161318309250512348370423555737258330076072970692228919680256323531906775820619868678656747071319165340553990217499166194597188329009509833805549073598695624400454281624918026851336235117753570688791567373208078347108125019597522853753917870320952382196127993095524183663045178079122463887079769810916272533470415714559974369406378257511990066654171880760231166882837649484531790638219211468732213957610738076202271897554741484244782504455970284167231242414067337609796141343678891205264361260756078250669893551880231069054173744680029443505877397820321640883766357260877871252833921800576941534219469154360847259954817388666657722049228126259099607873506906282084016369746210709963665854418784539180985282286243882017629575942165487261936232050291523165012500556888119517264099740113929613756686071857410431873990078635695618406861960814502507476759609320452907357148306048481707783805086202267851760097252700380063407495301265549921504114142733067990307248335610212114673810414028365515910903653232758485630158787462390022597652682100013862620942151613767006595615674699675599746662525927663717121286462959942065032226489717158823417596832619076672612485220532390601759921600291360131213207307602885822279891941937303306443324929775537133058073028699841895418121911214712362206618461208435865938055251767516058734775014995252280697140139436211389532392721078244500974704203204797613182672073898263335775400397618239727932285770784122038478008487655431833959423850612466847806408048505524298866809497387235745175035740858825266927341822210918439521115586136205670382148075636606956087956174101074799076658153352642966781750664878572907125533541841777893790643287880905785472848409239077841693541403160828618925295413972670874029485756811234973486202548166378674193603054057464267218944872800802633053237366088345114848282365304119647731281982827860812085476220161995209261279311000083512544241501427773597748461159631732962702559281852623817171519191471422016002374255769574596684575436666598035186803214894040124794949709287699018295264354689638917273609525177216998358222207013853626359005875821303664108360617805428647706879540401242782769749627233792252613593392437649737626710630776793814583618587008870936349747832467216617020884212653709341658144120056875841073759349226391222105720338778697999235130193899728580231789115578356209799895362891478000443740159279691853305132173750031626613049793673819740330345207426272982239133756576671382648927744311002022519096573383598333945742162906291644469374000418400236094709863736326318973950839892493957257999363670373895036703545732066512929123979541195793660984237835713242528554582554306725632518084940986071491914133768805092706768895856996002736457354821275129946473427660321621739940363473444272756446520700775270302159299761587019991939992615015495358431049918907580627660054045764922649569236450363331630171895580473163046647260338435643697619056673134962912448437758650780805480952145787067877584926271256312035124062904157765514506605060929441354619319873408965026817507879226944514857792352256340042328472994037760792452890743363295524462155840436110601223688753389367150026006059724286689777266864528651017385628686844631925629780157652061203480415760035992106017714676125402443277433720968110696255912727271860699527406666892505004789165726898957522360094496013245874992192464908317206019588899318763618011752317454425249640106790358597223374795922817689615377829599836993273815538001205685206304390149443262704234105745615037828324165269558371035242577544574242202546514389700888346011352114839588413832808780737512019018265800392530348606518269639467143333341914042817657963755788114077178251524684917541550842922353706674741203807469300034828361631655315016896908688798381406961636436034091138240746247164593514192032909005284619232070412749128231443035053540629949443222008160330411368888558718751334038713434212068995182852405302358208291593176247804609561281326823563286348895612787068483693203175724886561910729521181345654290253579826098191586855499520803055586420253909819759970459320269335581973219811573216690531336580782411368820285687339594243278684998156532702378242625488948789544620956810408050281411001416369115205435785652355600114374537211750879459118584893213226373868910730012995384708780902510625565225419080627258990631096398047446865959919455325176160619831066045988409640084361970447875723289233409506477831374583246748579499914266676138863663756064918280660189903896557712935048439775577444993791645952603226959983257869117340728393332457621439579671118531829689086540604214316391788436922218275134730612648620825407352876031290247950292093091938999524995140413796614554834504885145813269197209816293928479771577278473752268863052379060632548793700991535358012245374965351189923370339657735360684378627971085274385251696213851488662209464422277279216235781289893404062742941329864539089998026477979224591619835355942455178598841982254903933307574082876970048142292640937659152707529207452053045890215541544371074494871980754146029061658239560219853426941752911576137379289578084798468481950053569312989926536310618984893652402308710335711285027643779372046945128536670709411898830885577572934779092577146542796583635415798786908679073045753309083029371574863166585294243653144419657961178546577538243192919472777842163260727415914870748436365165814467957965893895569391411376663118434951517393312672773046501363388345111314951887678600093480737995258876448717486622938335431497087050144586127045011990969864964666584504156158469224543931798651994695994136814963124465904373716710414062367823521616982699356883372145484470123371049008028735269699880583882877972243445691924149127901937866465670185659236123872588226063632944003139894366167989514290316228251201163860185064410924080815700782547604976355623535595736355844115402569316140084347511123856956075054530831621147508145527403133685864188643511056640245202409455052072747796339648669838432436829285242635253538964549193699738880077138230353243064162325623129586385371202763449885774631859863826756041066848488742215402626386570250836327783727027324879238332474024580014637664495764173239047959069875814530708580483178305500766755687146818241274500367714676512174397263457078560600699756364590361633415187210443318777156969753257554852196957324022582677962874130489428377271708205004451339868808917906496730542997603725440173364877982602112744334235171341113716989107541836605557301528035750858520081455033421165199436685619121897367270818197115673306702686163138353447789019114959295598884715661040784316038885723968878745874559860124593472830634725655126214966645968955380155939500684554372618683279661108763522908600523171183442217430970972863238086791168116816872689812421352318878144700506118655386338306932824473212099169453833284570508504094610883164520804354860231476364973883948676223031494739663332504846084696913202800365401242705820912198295825969668401561051997317679844998449945595756964419304963532292406541182337450022396246813774949202494620003000441945789461774909586881638574213955113004077805952216617504561957917375919054099757505131949387480190556686558130679522786255062146793269660724172037780422304384746359781213314121249866544977586408890080857641796396453978734245765363766432887448003114762365733635952106973607410192280256321701468690789881254816112696183216361262648436833106627122899801098029245172891200798019983953694973241086889472025977305143856411362885945366293461809993937453667597110262222848716466197834135335663901141876890096219842994233580425939373317454175126262020781516219543802971810871096952817414965030732143776645826470116215898525421640625725390198795672327268536297064969750487850986223432479760917643552870116761467256200498687248051527146599032550421213805956978053203789387563903386858760646621341727430514275992598789039872493762776794796523224079908754856545825780015754753970552466889435466743578365242898912146290443404677051884780842069634141828860038020620337724816249203818961191660442666940576983725298530160125355571134151749857402240226828795644528300204128445958736535003504913087165794637890109087685027520095441773725168409054556409853903596033887224842287050579744753696087143507466221681289241285256969479138671587395829332866540708635522150821197555892782320230981451846098413806845380933158114973679016677548854103652216055845106521740675129489191991194276838429472314643444916796258058110879913997949768420925708660537038301695015061102037493547151075831333140847638819023978453813967289605727696226961209817389949803206258374294829659922773475702694861030230140318203790635451039781631643728163271900062775621946578004293852921812823345297242838360080707829480067667566364588284014190081439821231108913144475666636833485141928418329654565634390720408258739248125588330466709403535510790976293739268415418705255769210250759555221177705583879402318321635577121597555128463232314292901487126981901473030205098828489359199551686264386892193727312123487140985047463406210269854711962145994515624937560832172585827592476236585658887788881382803220969126088403387631317387694967468651402317554567087404449260204148453542897121642593807644909568342788085471481327189812499573001046168908579739999853446219338217805413575536815089435528455376593582315294381714630146416432524596704607651376466563170653465407341562700453349607063120712957638775230431629027196354168519700626758734430270185929719378501764413955809628754550706702627692743387686301489213163311320326179876664891174821857772573100274107431413668395719206361158696295878159306326879089255863721546277095349488083293806590641256267951870164761115183827181344601921002747650182749906542126693977470845496736847532593865160530113148924904992354773908046583855232431705444038777918560199192678001503403653654153957490228155447869197308278714728461510920592806964546960487983534717239208831836861140544641505440830707560883980782238551623192518871522038752297633047709346668820941148047529748445549560363743164646396009235368397858786150095131384748287663721303975883992481518806578260396278866146356489567121488575347209645779820773232423761010226811116992966622884042246180063015585601673565744487325156982938152014055872291868092985226575286062560314895519608826493705214373273939375000329970669855568363652580225282068213087358205694525477819581073127734680438298110629550919949085830529312158826284775269751459019763959213025447446621160200301758581955649594790853176268034443397958541694728118572086143814971388794418115388249056303215011400742247030639140148633862673077420307901353131416292149354313328323586211768172686977747364643836442313997603098830553778752340900630699551526038744850768935279523660204462922968501070785870272103796892927840946063197552800722677548128347052989049915296282175317747335919006261623140620877024506007501976137358629158029827776639324481732002760259595448831315793929602638932214092726913822477356251577728754989607798915940602171077900373153005646732518474462692504229944822174985483368312141203291543231858469582370927715173180589987665959585349779955562358810753574789680788982924250511854775669586942224770106373113421172621060768777226569031618666351195473441390348026413891237365026137733312056438350628008426486531324527647746680295323320739748552540764400924686978401693425009330772629281458620927078499149758210431958404230413335171392083822487499502206373670368081147983314712390737054929547307377130092638386715113901490833548506794365751851788414648366134244345953563076715232314181609613624856445181043272879192404657026144995376506321914322533173316529075146886460904647957059624240679069770040415699079802025300071496343005344437109746049248579276806341637967067127113032321620810404332451092825011531882155378921347149462605059820747450864084662622566501946810322751221027602649142070574510286289689810892754127111472307121195106239705812262677362834916621032747880528660447082795387700517766870712887496567644066239764621327085511935338644728997410603926363052607381103079348411196282970198430572032831331291369958013463568126731411913734803527488145873445850674536339938711835734406344251312318113155735722528421148418751420727945282962158784659133992761968849034600473643735705766780146881898357350652090207052795525758458703025936956437906692648297987184110113648445445930650018233980618223223721970296265483630247392322591882020751640765355439401665442329032429831353781934883275367567004194798958831064714279038273097876212388622239433468466715393913268754663168811951367162188605257407513491279018513047273673015505281683212398205481228899131909489703473397328529836874262666301577339083179084728891420562351582269376539135908788692767095332952194309337252797010162562164619590053585128430459246793690038197274742002986557379247263187880432654127649192063902352651448726900349061640850336850987916387378148695304550947001557987554529557462279563617521575258759960390198705005913076930776706068327573117207239936730988708985715558621463372855654885914848556674949654268055118558819308134676225191190433905979980271990335137506851543505163444472633183712980826898778011217357162490776791870092792091258564242276046967367871870343844488378327749784275070913244189584263037497976273400876683187955690931675460901002919062956770790682026887060372155014827638653992354946509800521403058678042994110353039303939610218539463846087035216652041148786285438516136551140684882504484951023184768751296807592843980006516978298553464898511354890586235553123162694181654907970561090050982808009793915844505029756137499616925190336349284332902127543367100123975452269622091323913625539044067990940399145839325897335074540053119865779648539960734600608939625508451175524476549302096294795059062265890409936930162955481331276467562544168578935052379463801678358380206558496946798709515406629738779352360225244318325534276947463504800563238637268719639623572074495961138082186473131867541198973780308517307555031812213106659302075881859662189520086160887350720561395826440162904897030443278840410890375942728696132446916878651973828422798234825802249396413991660040558437475427785700124005300952713467195150509543121991403157954976930059484169693401192641704358858033683853743998910965997404470750184500157308149230800066376313791323451625370036950737378350567820357858962291697447612024277989568144854750924496246990702010953045572922899886013884105700724016320714337138038406689440918767520364149532172449201668331245891372214942405092811758446972586121002742453950082434411988974967339615696887420923312508140936690982790164164549327222258675427078541110349121976708804270520789735889711717497301505437792588567453546950590025315231499793758116059319391192298501461103269600851675690607171806088245857672757618915652505187556891503979009026580854506140496978118493106154224725433862198297255714284265760768549582507638503537884535031640170970695538244530834778345635991433942697430896420359826462209705213532946229418853700291508934963439797340601605372241999545394149378144002851230322203804000628277024230540620305440223738068707735653136739087082771146907096426875168713695278180857348932215332992659768500333228301513169979521457225049780836023554050898328649243573245328744230082574418400464617115508039359732702741974157429318910172998931191013595794212796690117635245882758011767147720490757898047058877095436043566707692508437166250730633931079668642819851426272762637900435131881920537737379339165304861486043359762971846407536992139042588874064916219281068333311006118323648810013195888360864164935685515108229511103431797876559018696175960958633077024851030825955095770385610249192020487282370360633483170040337083435912549176048425842528837958594232980184966023162437060533575362398014143337587917484644413283982007896139172135560242737746778149017205409437781104240184666425017459983901505343559781843680253973906038190620747175085767485761179540479797471979651678249602679464533637494526404561552373087296644856361064282918183963549550942574095010440281698924606017838905673650922066326137769258676567763754698041800295841429048570583649482908620879960271679418367384594635995035937081787780723252325664619713165659623177092467485064745841317938285443139556706838467784890576759185953770829984842633889233586178228604357346004660465449000278745521421691005221145853112583232488716723602215372087282178697972463282046038238658872285827077599003696701332620327707291735951099961880243345992173483383987212577486338701620735351646517706346963176720915417059353781356340315502994191285340397285434790473735454306042482488676232463218556140196579169018064496217208242244143491492346809885050586606687602466240389597067206830994308836195340623138144599078235415271136068138453034556221024418522293162132746838365244754828912049066352039735031283723482159329825791114832775174964591409272968351161869878387321443720460256932775558707516159868143286244603337278598312235770004947194232456001396290400358507223672967634788150447749410667507327041268803102133420269870439686927381191336642328253049150965251632594660950786928593022853619627870596533485925702813861699138707335975138305978067876107099251329252593579270446398223991542103972462265107495649201421855804799490712092051284872321639981351970516168875633054465775699034098646210500186294356399882971410461732973078785102101222540262901341467378044302230805623646987351671856338448596291484018309312139241609924549439193385603599935917583548349911305347901630698208304799554941049155449688293568102355709683139280715075223469050858775680215031575622845683224620357655893999740464141051921100789226726825968082835288900590868337096676887901091911673339185927252619092766211617931648311013044445844003287763651981460433360251663039076709838488019006903643105573086255425467229555414368620310355010700989563813452367183179377896656178926376009324117318647509520510890747342858864464574635761204226446576118322928928220669794680237308817144296789494524172144774228241961687273035061652864432712184910298851361385080432333582401860788970911785568035252860429638203377503648706032865559300908632681777485745604113710133853387993796841921943960139781183245846790603230625690890880349229036041930519957138470988844339180088130509974467015935348933075430504923137960372687012642988811829450302778355688022112106140022092311918137839179700998218242606996442112345257805328813113955912969861277491274282202154528519076580037789734126993161723171797082888515397345194151054888366962906220851201889201458193415489039252814746663102344560370312278908099497215910979969798413794310943220563031257901655304637297830622849219382047881567968375137161941619310662597903385523568536865523875743922844486894389753383689917986848163125130013480041634371809556133007916792237984916515617331037980265397409596135267058102003508180527172062532053550959930508504210372633289130830657036822012396297845945098040109657899400740407756875174806485452518811517595401267045232139915337278679018931888845194807950176756986205767100432783665689801497691190707610155096385453977083509450813978916637185834995102364751121903436490777962244248184422538644657638912925382370677245466952706163264006741446087802153320692903513850141336113912257419801292090797839224330957993893308985178129734752158211292079883304102787911556425508976928869932286531138906186139890746690080189961656729254590316987635667835012975014195736858827758352180074391147717482772506875262446417501677368908398297892621875942380486714861986457174786551023086229527843015130361459029162976076289179862617101024341297936141711119502309261751746127685151345006566804017490512973795303450685507199212631539347202717746197102315558616501072949829202019357775147593927244920335813175915311300907411370362495325744222097166036175231293658050015259174859307567402608102509036711878911351401825882458350670387409927357323226869411140734660609566640136635933048320086557564884518575588186764094696120891853966786410009479096458928951946714197471474173584121470480518635335498158417242563627082145135701265576919057234188109422740752985732711314730198782272370060376026836064415849324460347048106189825593143353257586792762116904273873578660943868703174707392746128077031461813455502997077454729022594734397927806865689085239368999810976130105099692253620581703498268892811346334553698072010138830257935290787482685526941446111791175840654075537905117166047921391046227148748185564342986392640108263566294245759110822623006504651620638994555749132400454841482750617755415105292313844311151196149702527609089322218518498394988762766200533977895124104664932813357022092219786389165412501093003167459856473056159385696702010170986746508068460630297727489392362390265775595708560826792021665422812275959388699496631381348752076783035055167443475995056717812742059883379707282868891696701724870054012395023840518409238542969892858783918722112125940971387195753877627756034846584797876867902633502775637912352655926586601216825041550569986321341259308284317192945564888993911867535703623785582508079629948324577859018539612668396353241691990444121841817063802452725884783974703431725151751626216392763178670194982015515887198176836480801809511694246869315260919339213417214058334096476311808549830275346708306518482302510882112650539487195156384625117684502212708901482520560853767301306284514732274630363207210416594213582386822540655216158308882388840982815022811594005000285237609682238484665946575438245416767173539389257677269631171277443423764455527254243640650399236146413173171269409013336418634451142239659491699295176485884103849439143282756237071225525990637281947510497400720952795208987679867508200536354953259427150359807380330062574873817099377782608953605319475679344282183712615124263164779290983998743496035627987029898134790171995332733260913902184187133530751102793054206318282610785771532167127680896389946937781211576251167586040744863528798945659736830351585909684293727715037996611566740643746128321580063102426600855077127379625758301614858784020610371053264823900489893871183653508122768555696436666329869212092983579153388527872295121116294830311701219686445582602385322533692745007542645679244478641332267065222748487942198642543871581439780304810072409798547047022845018778634235664077993457425205955812220658516738816688502127886040655131222094206275344858413842876684192363574587016350116596507782255140286090463078951175807984042492284641136489898494928973127051054052740659293832341031247461796594732506166266562801209726123518886780268225352606032090913235676391527122250133576070375102028017632018579951938292453168273920982279892396087830802100525562898115618758752978422745796887211781789075022929441053858158108295427065237305943221639574931220671695710315955050795557786985363280106965918595590541980812400662151190218486307711819208227651370129224607067284981724962415959857712487311605059137734271392626452206596414847108184072586332455426664566215138856283689566490624378460778039529036850245604831411913857498728046224376634488749217209887345878982457906044316874066578638640929387978033584747632418239519961142418837932314412163702621585891394076127431328932165615838198181052724250145063266121703056618243721773911112341804035283578476719636584253274429797415217683716891826017200345469791185620170811386048941652623356279263491066475779105944800590610786450698983402228605751980854168959743181000932153185507773832786219884179880216073144671459284500263283293390651555933768409760778667102824816455413430109569193540570131544679124760168767971234955198405004362782255844040145129942413528461667330887346893896552115749897597632694378134177173940289455159633177677567625312557059616224437767807841933891623766982146757329974779935784634016991733642217790679695904582811331713600460856700052893669136997043156431270855103292206666081734000835634001761226281057529884583205118056753616840287896872171327420126012146012252732836001639354493885592663087166090349039033011873111348949373093418332036656598348628297899622578799025494280418341274569967588425321276599376418466471690522038444650628928206764407994247614229857170186058274823839689714248561078837152551182859295609750811292555046963746798203230788464553694127586444430460803780114135757188249692599249004804742770682451543280853273088791097192527580949130749808136722943298432136223950005965262595776426115624644204487753744552764641084967263245385507296397837669052958501741172401492806225233422580921760272250706689262804066204686193115926604783909560504356318902142753014906190640807625157856580541766086586232560206046486221325814750416545070657147118927272007968509818813215280250891896942215962989818155040122462708643587751044327199467505265173577476078587994577971565823904541501323170464163923496229684239180199691700481400388704412062845847269247390190429088847821187377813718877323152217709280326399352142081032277973607164639525589550269458563691498072772445055673531899018745723783030652494598839386910425003325095093017823014600811472876192667954963020661971838173123691844425311022076845730118617522005655227849071686040218174045679864176400324381667497743271825309716831938705051811227567995219223207564030713288677407139764564885381211479012470811379922381392257572122188229823908837862993842605483237920812428718460530202022203887329910753072487673745133507209728554743143633513502938161302844298954719322108030752179398706071347844706918319610722936258553905429422667217574231879120337701424409437254386334278068161511311925671339115601257548131312066794868893102684953187034556782585822305244197362770342500790200698540516137883201145543645504863721113988345310486550771086032781423966682170534874620725498217224689847174597646429101408106501972865973243720631867794080992661750163075819828856727348495575891444244871898625807492331385723329212851341601585358765776931367028040479518202764973296407054135987457440369387913125192864576087702522059924601754380308341756904912209031354723702343742980647859894085054700724019582965689287341913388421182537997221955851291802756679796437519448453375220292322227167247513168902327777089086831846191070277083662453042134753272402613432196982696520824606135231904241076240597183481450259340170951923060730887435358288776814732567825440151869191996586874721000784674836756828988753318729113539832200012576260581344831905883026974248362056000074607533709601407175920037330520183265557344984142009862255187362497690891718649367058678580732822672687808780332876144786445708746034876688022570420216319520492480595502363934595583504499632128079286141179196751393925485431063230631496849530287779602894239543679069991942432785264839094278685133393478828872052780782826644523437627503274038935881625490257758420140282054756150211166026542570746383167677420900962430283158948669111439903396343372060087826764179543470418481549183559044012072348293993803151264240070835500716159587184341319058666363807593301104465413006427376230408469761357348644253832007797479899174077736903374103589366359337113505506749847966543088451656151389947715563869719300240187746242939951633339620765332635716987343158335961559469977001414797548729538746076357084770178545666721336598808511597905712553121148460864050591398267187005084729512937632016768382732431280320946835411688081176983570994912600213637419919869566111951359029146456624315645565011506385406275210961532941960115604658104926226357470399347887684803810754424769409225340554858758854909225783020972311859171629704596695079699351204972620027114802188638598325708198060988738202850519018348001488865260025914207682097973314320357328183605089031459731401211169680407630636835273685351538442648156471316288227271453368621818370980129832895126331319635036454120996686715825098039074894064736871579107247874778639844155406153922265402326651185233506565895066277639275002745230451201234093964430371025068510090720637275062800113237978733408493886809290462351537425424593517518613075799131657293945759222026366451519379517445655221169002174949797614756061619567636020905679790482978098786242753991400282699745946037629761480652201030808382340650102279232956219372653025857435258195224085370762633439846883856072845745945781038278419292495127410754020622184308693821387966707464380543733332934143808787912268488131488030465790634948537375383226973843879052351695050754331673105691641021909608325641803005519686803262762798987370067426365066865306006924185989292718513825566037009921126047674032574667911758965475741407042073291425654663973736394449703207483839098283696777499449217285641426718956004217526253577722298982300766922534932874284345843207040013826718457511750878034989156443502241944809415810903412491698007323071140506981835251398664018660932652945197962066212627481264331586208201662812177199820582484442125806982923798372489520839627232440078724563164140215561197978749905660006172980301384910179350301679403844535492411841640415265932808037560820535410402563623240253842907834735584637663066011852382794467230858263354218830863861203791320902251041973972667126288940721062052406649890100600265362428604487798626408582604248097782909253601031535032789850135161937252150814678787856551301008558462139726972136522329965011105206088505960535987720902754778405342716180816344943943623225727480606558079759484324501229993391491017564902311851090434604744115222458954767421022698877434136813668162146312518583110981272389185742855178203650424835958000497609351686775776435555707556771417580077638426665421383765377432876101443346920935717529117720894791286119483193748610256980899589159281272364188496168568565990332516269805289734366299957656240545657465516078271167667092381846859512568582861276126350955661441856288891953126540058146225059531745450301993217152185077980319028172142214362196375721734187511969147350198192425142099356973251624434619042987938790198286270566633439218527292105434932348217074409379334540208046213852696361962101087816422786587486625831459234731641459369417753764867835285645313797463737521462211929700480938899080040588130312816487025272648542173635969317984583828514331758500369603602243294264086490244224926998533783191702467767767770074571767433537977843870371091057923751859374794023847467209237357351792826069648114548280720499910399156785488795315620924095336811971642362142968513601016261695990443643143048560822535684856428199070724645385386775597929446234520911736282901742030646798378351790789533730977405083058675604013129774093356342269025106270749903955657841954242816868431194700664801206155959095829573198860561428625795555780886883915339855734743274914961847282533188049163949680029187561619825616740338007656501014650898300346652186905420653124968916532115949487316073083217945329150726149646570076375020034128712193883184705819276730050171435004100526975035159204572078417364234391858363810354460520940697151543319157490890032068084781483818012164345312455491955960647944534066373473697341297280031600844333038051389062794656832276613823879198655887522127872909971211360412673347690621587368917422886217903305430039600263644327632664280738072283170899366882707240066917974905425923791239467506101809574115681101093208875653636253722978166107672273292986112365343228867038084796489776934713363361527474427544845647804523844540299303268983300666590147556361727112699671834571952950799929182588121670995503283724476148007892582824165751064290627042501918654393240457270232242041982598882242606059206737590919945114066627365796965954817421518518898239905252028222599578234889731620453478471405542423235015158722460133626487379937485046970735433897546036612030062182417267052468545276987330088319386365727029065014780925356719851395289930185024615607647192234920788185322792014743225701201669396246142612592579021541949757488098754649749415967897021914777557404058437730837826318466721867939635654864457319023847075306722656095396443602895420494791732707223445752493878768688539242008827253442688994131101286413841617451167043242003403459077341742242471939197913482437912502543275384852245970059253728910978990162956039227894555057809088732914069623035290869446143511746223227553635633857524677588797410829997857304732957168211066850979625646967667825325916177440964629817966877535657958570676875419659938703591096442007879233717871691255996397436998779055338006004048577165499077340431850429260826237784962225599274544891506853563411631554551593408183456781922866082421545943242067913996424966498346329537589912193414258686764691500254648891814868165392864072676257342874079920154088540661148887863109458311562498856678775462014809825808547232997001051341251421039035311619283769593482277501041945775990998621902874319027521138098980588499848509184845893878360826010316810924653239202507205062094644667357736302310919390098299495767089747428138572642813128012955144864519414147295917997156456438887479507855855333329050501882653835638399768043035250757918375219673729160966584546546616634995210578390327588758715012191791212098391344196939096154465702863966995500536299584368606915300878514239404650439343650338995644888528339447779790645445267207833702861373326379721433227950186808407053969698030759567163722695971707476722873735220995640999762346708421468351471165748136000444295332233141936032309843950368106624308820466574850007138789384291956308045458427427881314966790623561401862293874161415960361730097132376677074185546141298242947422909883023125704945923421497456323648527676914871178332789830410734934131955516610930513972875309328959720822173047704243053030661817599813882287322641816109935084727286307869084620737343800406651870949614808623923012662395342362023631093269336656948961910239931015849956957054797449171358418150505029319025310004111509669103561243227454192934079600182663087253089644145801818786467755645097020017561544010646658920444449931058305338392326818066388692979890863359401655455478500053849569549245036808742327835033829306831090323074260551017019505573470480817709125377283317125295871655319576180687529974357467575734735406509353371555990031175543849224972340284363440278984120731859306347680315329091635673686527629143854784577716911855772720081139371700023613437770069251817651668750968353154626473523503990433483859897801497111209697157297121363124685501524915819745638077283592944815237160734034600722399767281247155786652031066303070485996021898233617137380044162334034635020555664416902019303367755687607181320459191837773105212416774637080430063627501635427378313762251032122551728179864988476816410776135564815279510512522826606854492000115437330660394292185769462607898128708604545931462056219911749761396898935584727037005150362537096653188414014820325316253480352610436839756033669460514343956757103720802529652822338201669671843916628586980257066572196156497260031681248984049663133768461820462145718870122453700317508332209905487899036388172744398045565358666314334105948768185588061454529654238373176973387804730768921656545223864511003111816388231673951008234919120852004806644295616138110469464118126538274983410413067672687887644860174095931973242871121690096223071648050056927869304668855235364764327397275257067489432382364299982921434723745386084102452432604237586700383330115605605730511735246266618279631824704368548545523094124203163076415666216554958146798264057878557881539461499743702587713807786219929025610345039930879746217587036918648621832670816399928835564741764128069730011680771781907275325882413510552612426081539517003017387582374924928845958413609211000340954241838347774380651610294268770071358297347333947401327518621356000600627407866130223982694584870990818569352921966192529032943647497895771856031178279863651262809529862926717529656636759424168884336392851125622137861682117054946719973899332630656908681464316199763627079489637389313555470170211667937004576282801368844067898924306248577571644153016203205860563282586028933854514988947542344134739936177268984548365497776078988359699960695237863768045286383939470801432448428260609573410787820758526030553428776630534004650538908038734364241602510497940902228530855556219027184556121479601064569489056141504993102088418848854346926870988195718876775108845876543601923856305667811114725925523858086639357797452804661248361206115409184725956784538656682168830986473589128338519407532847335970568538779055184118963537481252853906510719387951868383393118852413599164482192282230718886087895278276900469648347370791375326773116776105147385945775825030705039661798770750731205698712399200456613721475420279176902499865490901974911745366234588726756907004404928037216579879594075190045000454047101754536249949145537827668994564149849328749754968777873593020261373198729374644140660512760207231320074335203567675399497140612842814378397937415383193464918447308714258444461049754213902228411990060557665804968653963567002895168440113721145641388446526077622030408453295538938635860539684166209359402969057013687211915664301800331225049142755673476335243283600191909847264156415419397724487525630235941332282384048976910609069187311679049447757607935805429219769138394496399658517240816693248511828395183616019183241289286801844186667807745080106695941372721169901761989968489133602065410786409655603611048444882129789811391595027388243915199105468394103038781147757320942355732295909731166034377395897260274423247911777328779607096101169824503621996256418324189759066496783022539898258502227480266248079277804982121519667112229308308242072737220974989585460265074048366454320171979168098930690764791877436973501539762477737881329336880289628618673543283425613427790674452944123494235183532002855642732202431980272603872789152178807036007414035346849441570247128412813694491801321391216518820639634538889881526588362608577687010725870391364252125687400207585672942528835239636508078378947409147402002632081132685075812820440693213880261677353777270934914331804436110465297385181321456123873039067118195494765646067180370995058943916447544906640669079969108359271179382739782464325847341694600173475738465364224732677332651873347463001497451123864102908433251804759213957737666610802615543586816744326616998827795390746164859852299974828446013444993996243877460096905997149851079685517314961083086259331149218336986240533866809485994275873290982635947569367897888083459243062042868132175896117810843644694206173723286769697129054380653894360830830960341579097907308625088417606470222423358194883812206045510652703559104254769713491881882505876918501828593159029470149686707936806874643604913328758762106567901744002591552289210928232160752488280504015112456714641267863472003512292025750218319149395131904002879454936921274161912982514078484331139670087148246983723083692864785883783229538909763051895165856061035265376085934197120237046658117894843630268196079570581509377754241203589651153523978096540022422295308062368182058069192229802666813940121098971585927168694736795058934179408236473924530087153785383478498032872418019101238284254885204774725982604893606264155896032060336991718931941074712527832966897340041420361123437766673622565580819169817262870016061484159014406082940608141842647522481221171909655796931193856566479076837775767277623069006586511844860611122909071041896016267062136509636420621144738889333293084724670495145604720411485490367551381381382147210320070861589343044008514658771608832192581796427798810494491409372438518403130414058239723686232352181307857202052867270010707727791769929735179885067904555943217847031070402485734289756668915071306139256666306913678887565004492088183006641204192611305846701319981630541712610050941610121917372450526253989838872488959205216136230357521020987028006472987013771000186479132169922735433551707279661622583538926010152702136114172752638124940280568569337382776979116368707910961781536116514104739380989764902759352710900391133284574291248551844663421069864525137088363446316290242697407607642536427558021334011593978884700203675670634502362178966185428947901735348133415399112826004000527878766886964676594639415001308266889911025762070262251973745350391993062684546380194374859578400156304367089110907422512307929594968121750714696693803753015823860043876573739334228894777911627827243413326637527981573754277600755588592031069423711402044521424726066881915348175129814868179648519067142304052912908692771486491905741606169820506038584360842202575750564070929213220430591047559939391103832790615887813098590705178235298886349178287418654526108969271948262168967725853279577001609161847890038011476045782272679262596210670840007807690705904399790365138066134273226972990619260135027617302515301094828660459343875124986624107480396031645078701108149713967864820365466853212997221150631754669912765018949945550799319842958792144740374085551390827311506059522813111897649729753912589739374342337435994097544706127672518846635799440482576889022324721245495845590249609061521835571286496475812560139209843897464057960364495035265751355751078475574336364023937113714436631324661256640091111048409348066557149756444904914543263641679684356020823307198132066739445306107014970415477977666116294688279587470369347919830271758537412197685340126727258849374702812766794171459127953741640674285668936095670040701347363418537324417201850059447909335737429951514751646824621981819669429581439587646960431892121860772795296080775137131775035702780009157720739466085091100565140915311442723285790576095799319463798517104525020634934934280642254118449050442205389858547226227503976947905876983971840757807408872491460615431604522114701458494885678149567878267245998062522426393409970231122675256063819321272391314108453679190785347583403013236177242702826056560296117813685167543794296607660934318475869018221403005265575470834058111917688914908613958664971553623721351134884447589649279954023574366943523183748966724052014941030256289001106450196472613587776563682147723867663311649311483353766466436294935623393924924850684330175753224075292095476739248148712326296285027874585228395571198797679321861612384693607215318599233604086704293685641424785582244331931553155702259149354978238495700313386515867664363951208774786877691542941045542112604940546264171007325631218074155667849860411675561498092449381959657357474750489110514625685183695946859802526689031633701349393577896668487266739666666024437624119569152408609190204147374709462577384030659582399016322125246551661672936187953097336342581804399369634308463349956096094002023982098772345361914124555902423386888557245208262652296035433983125988811663019415904826371376954686851020632359205296947216589265226482414812490329179869059683289745143943269175229018115557105797502680435153128193430314370978274269770786027268087813476831862230570301481740561670222065629477970636101066849806934385748205019073407652240840399734850793761377660634316971555635322387949668162685751601640230923627871250710025878286528864799075484187415835329078405473310005180016557441319608789062950274087239318519786579823534243339004911010875762697180773435721091298410253501436083547198057083367530923747180701023053922660136402048115164579083144014220190979516575634271922280334007685647811511945983244434086328810815488170443971882555542704185351677739996738607974659032625532391838785530797432477888833425952964359221713266126744466867862883249948465676133839521313728374881537028437957985281997963693900388048796074709021272986337275479611702993735616863043800543514486791734974606342897876649839834339003077988140835333375768973443278925371786910926032469093906839654080676677250608227557123911507613420065749976287142610613591700136479382654972134701094204171667635448743700300996460073869142991240382526511378235689513381720083535336895135003637465829520785299967969019344821878083895872328712447211220033920112570267650271674319787891501499607350938120205963438034562076891433337570191513716049081690037807143830630244146048039500062569173422511527079905252284157636659996462058175796794795250992663417659583416930531379668107459297891941117006028703968684527055507997218668115946557822493884147324642177065936943912797095624695515291812562622536876379148520211091047597232206105430558610562833703681109793242687172991196663697088199475809625139299602671809231115941646114826919338821979723546119138574453643315697288694166487575579770791833187018270515603935464736568849055519545811493276867277414106012430212392150102252035973472013882956544370133893476333592580652923884730550232094521656817108146719006580006858872349866605992664421158220567980917077780697171341587987435025382434465467416523071660956032189746139222648055268119983182586984819554243176371840085867579439902247765666414051253682530681703447811781926720843642743998880013392342575674813535425897870880907107410652772066400245884721606593781457031563896386502539212553146112189602274820455858412524533905505040431828020203074827163383238937062409582664804755713628203619588142339848381783844009730446719277704320455281375401015806836680469536177742884600163508633408360961481049219974015139112011573303564320552374546933485709424719505942582264163779956698844929033647544228615462194421033222638240767991385095307410870519710737466165310471319111725854603952133794852017583788942184981276711227758014058735504242197666897987241742468059757719613694849336124965123832754233130212101767783447102395576521110263920195031500365311483163982923519357977709418226630868385837845726720870894337529179166664353864585708984246284746836342249380067442066592708889133116043977704130666428289974242973731054429124810355527687035063866009408960824849115304758643038980909328334614246108065347213787771783646988941639529299923577543758647664266043532441764380377432839793262765315059869400824505771799839460876510856126984888200093050979646111883631070973915773065625995937560534236352181430758444915712269021049980520833772407994010015029149142036879184534337513556624950786503237093552906499268064355943972200324637013649321030350745278774654444963062890219745001031672123181085313699678617577827905070351656292861470925396871940850245937645995703842642370227720212798784441913864933552647486752607654010419580930625824721465913686291926188514661192068582949763325796174739383361529789223293907627977364325687506291935831982787058438303267820458520378090306994187807151018019493971320880494449052054605293247537326708626352032922930160051049581478494746328598025296575525769458369610615389834692347171580866572199233886229471649442800210936759292148991935449598879514676433421554216076883042522625466955852295956445392816000851811356534456136835369914233112317453263129419429719498461124983641154499573337439093523123910021902243324672106173699370981002122459987497100473122908418216604271293474290126462252940533195673401325054562505003546801710673909602200573940320723933021080332591868404292410690313887259583989604061464656914099441987342235804878606009409328267775241391503951781633184533267016889421488395107863813665701824712033978382281855004292233056291600187727418073004517834980142415767342558271028325006265254884021684431327373303800739805832967250693510660624387757324688519869169850537505633577958954220953591789527880295690071889094477631148581924514688512308117436890331313332447601318564255354455296441348412004792049709402225584725485909934098844662299239340503320713069449988274237828504255336261319778084040182043010591055623529116113102853374791581404926869398184129562293043112359314238750469644748869848344953949316740512688411008430677573548902056935359300878445753974022442011862642469084480999766524698298907938981208672127397683814701806819638699566290941045823745369591171205282619317217145762113136711378010093598673922532240973422097724515536466635861738801784881817972505691245487600025232001682017562883357832182662678164405088352442841206993717078862971962839498580487133917222321109179208045179801282920385988175541506811686176942926561024596824801730401991931670822921024245250369107700574888710800708113840612291876584538138735644088436900334886012444025639217943357401763488813266088236666919639499025154202660424010843723065738786519710301597548048696299024812161067213657002250915556207349339517445532844334585182749947346595542571764402540279232064171797996389485526437117764523045926372328496021340813083668603272074619187077755433748244734221758884580446366625085568406487171029905918497946537225943094152708728438047670312855776054402437065355002248086850791234690464663727811255054844474340867514620501984307928163610231079805902065119775174065164895358598039733042273830486679172152800531700488909382691360940571857189955140183675872813867973366524322818812595529355786708442970237614259147336374635496966498196954392126166005791942222640072722821762628263353186693566430210828119125569706224139439923518794668739042876298665654574563619859414057762792356152497295199477569146750223397746719565392067980669669297544719228918766983728817488131895470650927644424098898006670351715846856915875723301380883848942807584354315592838262896059645361741491235047642036147046814009881688555457331447278884257985795064666928592199578990985539485596018028015414352330324900402380195751750949681684353391305363277856887241908243597422239020904974611914130667942019170879801521216590351844476041906823220435523352155247271981373133503259011069631150756373549912811084735090345664339927269050576716787715575387556386151832831137680708490741186909930288094630563579523339389288825769380741344307869070116068365621085732492652144741957872326094272989727238589950703811414988699331655634193277154969507930428530770782025049589190751794789986812457592615428103789178457362554180567490648047117018303206057034474002237941431944685214190825698023751936297210804864174422883779089717791588874319534122359185294419955522469626421578581787875502016399593120569863525073017486200862379473378423050614106750700499814331037175992312491280567830835692502252158529256133328377030072453495849573799374036841464655293364836192531911850737360797479239286220606526810246404594917568509879779776805712952522968469845820570377477901384595906068427219542944127622141699804399701153521503565598896901638254567267225560989828413590224981927920264582054255304911584414783377027443504571360398924112684268455485929567428620500346338577287899505301988284594788758258150654823619279724650989426231451669297036362342243949377868772323380171750514310118067924059222060518874558948926789527624588981288782888039258953300393505401649859599741039957966088962920667993037239521113158460123768171876361911564167963241201070591870533916879772712429089746733767430675884829899346651527953228243980724418453894750538195522871476711284247779415409066339171484781916598947459341613800298425332765733836133750207364367433554230241388436275323474797662332307776315213040504486910729027975172261989076761019555007308971541196683232560788279015719137084365208223224229701545785152560539486000702875166079240445507311527968318433921904284099903125646384899931427808599434055484149712823723048151859216183824255411631961971549469662400123582154804796374321648724716589642043828669964433765048576953361299995029147330437913721841869452953258095916854009546042108945327799235984394098725743944337674805084309586395705389433566093198742387372161233501092399516671874733854449238719211223674980146903499572163370625190652747491513559165850819214742996395324239458261150811041381948797770914947884969953814353914661378099059792154727711574803458301606234363642961309905425152318306943279064262745740536159562315024090249123823207307627026897800378497248798866541380642521571930756012660974266277118770663951356745362456672458720321396522355023276093014107570612283465269173523758660186305384966349922848078884271275846235434649101158249208233075947610439025755708135104040133008740618843113455303635021491965254581745432047752588723410403724690273225920687021730959248251979586506013911990644804788869948250330266092027471818152884299079324406523491533686197181392138975420751744566033842430471756988345241851465087943202070506472557343755630751072499631642128308057313692880974968455839381907053780570049184882587253777674181861240772204496456824776978736540542894627508940208386181784333515727853483018268613641765783052591623590291846919923572518758936795956255232065462272672985263489539087605631705646279179704228016494535556080263496706118125040622142620351488342437551258591777492298526923148513217210096840968162037256940011498458709385477769121624868404763285877732392622945660062832383475913010093642474292357060264333788498224937114332847670872503905807882209391195998835051297359944336758984726764068101856907136109666667378593210926385297018591276155210792032726667222438015237795268657376379479103173398276665029799850601306196783892021151350598479796098578237973900051903371326239405908327534750709282488308140785602819820760122324825845059569640800354385881564736186136945807000197989295354084019489785629507490590337174729199174211154664807433821316482517046382690759256999053955369741939597809984126608564088804887893410383277165294166116115559187361741960990987633259865866572975276761531453057420490464517019844527604391962514019378800213460752232860239995778322036640903724898354493892677266072029021749639319467324419949110709292252650528397863704059386280368313628635732611710940178784625202520487527092425493426327740289559499586818455752379075457583549159923343813553520648455482542912955608576863712183448950945384081745513857985977239764625848655149096699152095661477548497605276041724366083672674185542868521541496027325178284399742682152897162477353176293793773407115603613137468312861360679203389608228409839080809641035737164060060296589163700340918349541615778994863011477663768269118948427198956339684123674394010088836475225255626600425573956707213283159556161766125154790704735575588251072075788557019417899150264496564546041600843277308722427349964239542255677364354213634972823186665898811393178121881064288202087621817385454470758685446374336775294649246891050485388912215875394010689191971162872843244172201562494036191728494020402611419793329254630763509843350726000679371113939148281800775834990684894240574181172175077643819085616393462507649397846318823947852834731483506191724091275921300573561081637712831535354519170660816962949018044524215856471107229370729856690425967060941992716414767965143907618380510534073421340778358621301353665101972113885596369052996138645349083661347437465238858094601263204175735816907021018909745517057723964722926075054434859935380384685923491768604372534323689844698177686378214155980268433595885687427011375554148861681665177646217153673531119082584017685242476026325066071970745231343363064052373209211272141456955780956386624980350784460215606488558952923739842137421800635899414449352414214850588324834987850577728302437511630367296151180361417421233789976299831477299968264271924103106009560597248058400886754854647241444039701747444781247730295685336257171791633849640058938675849827601242475731202851828127115043235809220929046739004091302471439174040663069211867995805736163265742149578245555434463202476863825591043008013849159295852231735114761124250610671619993147011138362760878201665082354033290135719348794487470713405817376437683993230121016620992581964208654635347150387151020818644019052747468219003346385931990068407636503555309041425086278499586785245012616012265914202553654022754602991123739169541288932000389615429293168441673609153587622921391116965891570788352549104872392174466656537857611668288684077751463802660370764476845592844591254674488244220889816787304499471681178444543785378770798697431886734613592205892980483763520125982745978899205150552631538526985532418941750535045670270486853891030872181467607625678817684642177480945625696351237596058174820331966121757635046520994428967783032244305601702117074204941020981680264043856576453669469588091640147016905877185114115305568490430010682386402585565716022371197655533232811017538055823030609570360313942550658723384505489380197627318033597663987492782163585166737000259801565639627897749652550189576922302769500254989354674322310304354168958773355909112314838164993748862953286121681302309312280511707209400839504943069070019781959491824134499503758143125196531522412405390327572616260464137517760529542189796364068334911436473535720030803192306884583635064288755862689988577165388950164350425983157404336566461811835153273898144717000881015030615480382334415350501057601113254690281151628060992846048644950988133894167500509320681326681276156556313282799338706016718360137623668150930188112404522179007402459067718914327718228944385470293697475122311073182693418624942409431211158145676682760063931996674963827696018239646490693708443025825311043093541771761105309812931473798175486573480300980629401354992824957926946175879348473078927194986607597060217250276463622472671683332473914249740900688234201389332002791956175301937048256173729214715952641136681502383371764256317930443923022121908603503867861893457022316288909904429233711727823969231265039904140337972310449688235561364478282364374067849810134078731202469117830851529475074236423402700343761307349372362198964522208662305100090221402501926998521690814324062626000556244665575434521649489625110204099276806281388486841695593471765733350301549576077125082506168397634716162961617292339770285222478808896765972163191403206953769464711897603319198359575410573868197171237873158513411980283090808737195504523105417369335317321036537884816556760124403735747849544607687002193599015994179910879494419782753210947146796040822870145558949782732087603509059229371845340464266923512143535548206699271149610741871957492148919482441989752186280727162607272994333702639204689576531330253669185114230427035727782692068297045665894461863501492083585305060687817790559158689101664971024980746792523992780237287084463241351051903666302039717509466334839464385843522326479625962343143929876240120511663006111974963808927060472099701639311239653551113112720062857497602689707069213851518444888368435843915998896589465445398942811962933642596198337361876503129693435305572238824356122948495752060203871390318298027553017406316575661227445443642441021043836514421941974698617857296928648281989257698867511773300265500838506136634416109946674361892784799508555504385190116190194292081205329604129357760748179564672662535339918755578086288021862440177382234919368373905072275110189727905479181743926891915813198816334559945242594875727064138361362264706980253630787524535355350816054490824516585202930137469148171774247379148595648740546078856922167043828045219390021382850530632581916646625703534019700489884221875818149196335660055325940789854590997048653711082581686394446092216834175516165243978553658822892182648894417250145079361100811825087044088597780104899280755143474379346569626389203907047113342341090336420324695408335374992746021900735024697942877218673484170833675522127885079024361740046685080309984654435151779807217282153774028229263277270148303799012234860639217530740922903277257404065294683375819413411309431664135165140701270412496684062614046928926275092550802110918059384821771239797874134987282923862868694203409525252183145093364346796479476951932931178605349106743590565493055511999729430767381843377137298333814028257230632586529869674625533249852555677680253742553344853752848083136366314125132451946035970312809825896448046420125399457174766200358925362334401678750597267240002859676252144746410653607897915641242532859954336852689391528602197421482392654814381013919097392392678136870921006963774378099314713758307057792742470896723846400939558063768506766479199483835788472615816500119930369973009170498114006442269309801383036578692747303109983044759829050589292749452648681317401794526059400421870487613497060110096042551103469962477608376756104795642312818630087095786085647338636434311376496847028796831251238320061191954864473048919313586614539488455910352938670854346256794560620677607101760698655214747464735853833731138398654460910140852009221890796040994268782817421177755710323942353140119661513421364477336966309483670073221579797970548174077945257453499767737632845918302162897639624015345431498952033273622039683313848318529874941149095914448576116234780577057555346479683633900132849737877949768650978217221745319392535085787777663716449625474946856804026794733709491715313200737951756625993221437940283056924073968524072648561868169392570949141757598658190962094855626802480310642765982459066829903091898242450661165388773385542561664028333697025576268869403731862672960319717951320271825570988945704314665352433523781153439761968056472107355960455094981368323341423795398164611634314359390574414475175453981773941520187735107254059714497287576485126776998314894486550607124663830931209248851440458223582382347145848829284767579279040060121107875265260973729814815261979772579495475324602300762631170488030354218086475582078757321984590287946767625890997574531397707425435901123707807427459907741790604587795836904991299937589220459684358180590268697828334222643967243458240839426134977427254727221635421108301344193629510685953945576825571277406171980925720734173114761464052816339187200291000560704240503255083682467007813311957339222150351679174744624048043998277765063700163086886836191662474614304444918133587601258089856629644381909988926391535646719638698921659089957390683559237350052583208927242938399048740628228251104208260955233180794971430372480195441074498122804310011652960011428238209780104954859702905697160417637613600745991025981384257438084886680953269501606918010243966452687165517729875974035885320983911381075599185671243126238963286693028381494967521076947903483614714636980465002478459548521036808366212797025448327664539715911763986668172429339958651666838068827223187494207268666298476812294437862550780863218690879152652999546285663753480179307443262467634324531478047406042547534649885984234915168170155464636689924018868362289532314456611516810219054555829933683783549339054274498939904625290139861432702098974251685056406277577259326956410508412222503684178065875251279160947299302206184335317884999458225355178970932440656741959661710160986414058219952629500150367614452807022986796490731476130612654784113131001167566735692245725771026766675380465710824419537701965403233059445435225589215084323704355119800458352982780376738912690000891911972133354890909427094631181850361846641379689249606689895703152992478558550704035717286971801057419080377465624186803614247179950528166003063637090711302273631086809672093052217031528473473146841277227962338565725139102720905200948227438921310796921695053298238187422827450860418554345799193102863552104423616767980191798118704071906305658041661097340837172946077227661552044474257964059420442170220273736457309539980856302107767866993113195489301525288610899107392573588430389299984296725908754398112932102125337874760386217636446629707371769266430616950899663226381912465727141950769218727754014748268888851902193666387834763525024010269039616225860727799480327338156769529363533325450531358365114933081036369954255028721801122016369429112717978598015839141392588371659029711919838621538470703310568498475827966093710370518016838963345599240359684443033134518796014199305322712823959780654697194871478736392205560736316218709074271933819297379335273043305175705148087425978258680235186181636549379028227756679181676641582993428671653820771119593314705353365959112852550460309121853519875991508437115098570483875736235613349570455726766816207080974289218829579207958456743113567352761682316853463545603908721503414298834801421723193600257282912406174937207229446482757790650069690983923000866152599887606132843695156871672735143786730655790875663563082136646308223091325486989627281595193036745292276437397857090220260149804736690102777773637042691642539212062923449435916334095664848953400657334142337924397541978513147577485787005270519377471722834563913695913176344224656813400499484400893772004526282676889324531806551743145900119951354097404349244351711340340692768862922066024104430077436214103877664699565671245025009891465997479130995471884413574928761256019556777924863573006739657300085579629345453561207264373034002806844415130021147299692013476366862836856956109977463713010997114023844070996555714650668567972767592177039646032700394848792628654259804195199010194300826340372335477555686804670132594831355303852789578304813781945249544164220353418962141705256921884903981504333601264080895303528563274221264199985445966405333109450050853342325605165753962045478844645195177660339173505302686368479815072442883477393136190094407456681761443913933441211738216583287985002656148135596967321941576018832464776336449312234184917837258353653861546485063264248944360030724816810521970712078434029183844022801154255331934748696226737781784120351693826132241623113013678263234865953882343304783954590075575019122484454565483628784351577015039254092803150171896817057447358494458523314373347883559205076435906208512401581193461698974874779782962947477473006699573952552200906969844739327555155021959774161059639269476880921731669882807907018539658013021155648116014474684577628778558055475679790796615120062161645382180277668179414183788592283418735764323827285723939213912821452915331825966527270382249158657217805874664212412228420726731914265847251682127338505138276084900014837378328131387725415493158392860775894496488804176490527247003584357941670697254876371601012438723082802872144929304628378625489147165205880671189264173112372950116467144423320868027141753983968003530153257454659629843424104968769619286820324699997113487309358259795932622705170420520907745123931365333842452817568144115164661512531027180575917395315414915932065155940342773172103851152995281003904187613660236694929128320706342637285133417305985623608341148994480326919568307507375629105963146281496471827801713787806015336869268935907661887627460541334520885077268134882023699165842314547926532739298721818798644327141132950131866579104113612087862668507382626576964149537857934737580622268040961828176930535314142947373111296071215565288290492437291239184898043193620504010725832965974238791626982531619727781684496010251747900635212578794831703155420345913875839632901397777357771382376064173910006760927127334057261224078820060555051621773750873451652406889838856493145412395561110718133942701580631838123479279698230340638670154455480599952731859221819161598386901352360403607927369990073282381727693357169700261897268510333880267106467537715672660362718218078864125133198631322647359611524247425795408675268222038039248544857951462479251136101195254381998879327767018510030764690796416665456143717724384382364326755900065400388062455019355363892173548738323655456608301704022692255858032368538635678996653232288626311935957928567577917197157638686639312443285163173961531538550345051404015600685545168128743701453543173714812769914204167675363749789176203405166368093175981552850079780362705680737342256472861775509259145275415699917904027843367631215622521257029281027180796296463347672597326550931164019119743096336806467218972138020648498848846937988405777890058313237869046673521452766781755106907068074925196202978603248444365558821002585620592131029372377218132364079442680957304460179272198564253255170203339410079093140189461606589855515489455939529081599309220877043792647482685369134806768580690621816592544004744798511508693578504007802077602491652614073652920430725963882372645588751031514203355746301355141944440635432350208134087890332344791255483132158779883777523159423361485777187523807686703943332751924784581619807725055488633129693185683980955982796132869386206310952566074295853790778319801525337936249638231079615893582964053883638109467920649757070154399960735692172443749446854846998972571800226136077440503415434894818516718956909568955187746215433867922273250668723682365226044206874401983783725412098339957627968718778056795189761599519576288833081727982047881720304320376828234266397881649176800543901000307629095826550623659230124885559528631639338854607484241932360958211724176940791160806576803819582842683399553096721391454965547143297133489423345224694684273161395908161583179069621315022204647465086944349048148200503624139520081171360132506291009338139229243551053275385857242437110874233190482840942220314750681109443772642991737437714212178093893875450289182363227992229752133969192189959759137964409849400458066570320421997504734116329474787380754550941598449039435555291310241652435894085788585922925451404516896597829440571766807745690796506532143166858580826602360743264896760601173781456953993323527020093390024992013257268646855106843865644554872019884298353043115370982466515428794986958899343753126470489875885410052401677877410310868445448425343643272841970405669198536677275116630268508314102591508836348694620385749500143368555765895349360866041241893460408623493761387895147101498497532350713121709509268160014962563265106532497388451882925331525242999896247508507918057087662593809144332248844206295013249028784227965771407910631637351365993047863221462004802284950290987403625051425199464873307059159554050077368487464269498124585497848621182138822680720886971920895540633210776495282165682108120775061444880329882681787225295777405228945773915455028889182858615550432245026628144268878533908349675001492658266809169860459901337613241682229818169413965312284705705922823164702661115433545135638115297159287713238079740756264861984590017037019435063578654599924556391609650008586230247340632523210976985784675802899082127207210639712741737933551142340516103202292252291146142339945603709369041331650174145958737082656170136677170175073501701537335653459295836262319016559408033513686206367876440484918821511686753867452537997068139917992038241567938156888069305350438742726865571955369274135900501689314575679128044145741025711467756358148536231013900719528267615149752511679050359129130721720220182270998368616394227563327784693035628169919580503580483865010360168494773170590000531399865481945248176505694572843543784422090133253462382557162209602017063063103737676487888136073539291956539790780409251358434625209824596424321927023754333683331317584699327615146016104869075189556894356462602920421545061572241489542376298295272602310241469021154433992030657810741643245261471386260585403458677132837856521340637755850004487793248559722634284110220558253300157204441736124092064017801377385989646202583173059695608022990218345280587724586786436873612620494241501851317603280207287477326136117175936576069832642192718439980556715302402053588765663264254002412433192498937908519920870603667929967454699710490738656550178583732683820058771813659067441862467608513808018443693962723285554371842528810690854268275001941055197420808656191368395394062861675833770235631354570396122316321754246707232447750566583961773855955335524504740437306526992049476821715425045402570221879041935914684116518544829346024040912135706965922483485930021723636257994545504393878877022975285874235358839210520716981463148036868275623968541076206960024786032951509911795890779259014493263760321034729562347974399568804313316756007992586153906653320265038452814459384692465819752212892929625667547820329570285424892391873277160640307719788397719803431430152780988346473227721234617752273415021048962868040228294722127945278741983080003006315384623228772173867590339551237204092948825337318550958809278217249047788138973441327132392615758197607492246773596057604266878251812579736313050298158005592349292394742321117743571403849564450054772421998054733361477018103587248578800157160951531657073034030818504209518896780081648402784516436672554234845422132360460701359188138485589240625795785731971777877489841676210695142983820201176272625832495348307763631197914722374840386824358305485556612238107084659322997113972414886846737231640082982503335024123536922534893230418010010740754631369755405764011569066993904254340173460685930486790237292168001991480274437814352289091867463336907907413364402630400511494501157520360864282576259331155650068110055651103100967070782561315674085753329136708474683324552627695930228712344247875314700708601060379674279665091180216689293109769580039652737363513851004333103321916684509916405137628888009454424962764023952643345375647379930314504204086618779320092157142658288552757194035870077303851680534288798844880797457674341991938222606382504033962021173820495585052815517481679843164555059177823552336883191060302298346640739381262133700896146519162659176983646169477956248228616716738729728681717077572815659385372590026628688769438079034493267914556723592057028200254597225680847176515020754768841228674113265431459015083526942762981273851215657367563227982034718751413803842718251727270181610213024525869888486187537705098624889386176660545424380415673576651781730569214308780428355698599742638800772569910367480664516523658378618082199646859334177755699340206088294111796271162261359995250448987370320131333018787778235107412286098169601143937875337831490136101305691430549986133855284202458773881240153616107907136565919324531483180763594961411710276783100850342971334219657675124612470037095732661547514789689535723554780587835234784103246958191362338724732724083778467834010794303758354613236842262963124369778677715598113852771551346863180574618722448499417248739133747046559667883144123878538690999347786494591413092459278361751315364718395335795731108793321250695401386711012632258760403206225299495542982192944926103693294146656844192682577234696593316244488250153725681679099561520033317265723672377403974587719216410116000167819676218502646564389348556214259596561675343187669415896547507503627947843337099419018317483127904058320068625968412182027728178888446143736794119509723142744449576747531958100538170511836843413145518858963444797196840220310874234399736583180607160798295681491589154988408833631065961698126649191200878948463074253702577075140223911447620303697033048309071254012578252758774329988179877953233921355626743701487180068631382396193590124304769024381217986728286268579069446812860344137234117764431761533278091304750404383748096373331495853035193643687213582722278982761961059309824298339829158530240956157799492489113789444741203413817071240182306303031080532283075822452519814914511988241222606571252132561051717017296348770632893857761191411348095971442983617245613115950503043396033503228148943721517983651487303926333639125977841472303605517260238372083682256821068218527231687779971162289057559747991275158827214327311072129609225799737389935901072129274838585979251882581240271443612505045899884234454472577589662109195378523144036579452914563427604775405232819942905398003328560816899448951319646832827741188197716296702415577805881320147168628973455809310081767646390383910644931696063413782099960700701572283382894840818195568254602165491003043520513405834140524280361316016627641161232982636570452571109795865195701608119505576487449986961605530843936050600932758865719980690481954037598896436528047989940911108093456318036543283058839693935788429441856671028165224427663507954067899835249093348087214494962181484379195850534896440693511485245510949292862326032681451122007927229263321520554284168064924199699206828014777886015037573962439247090696600700329761898057635056987627444406944041746168264322665886537081336286177369127878528188261624822619376809551892530957424450409977134636705767289969542191955053072200478529242894847805760208453611260994345505153880375272363291551375610228829161369791728092117657454940687747830679632344836064372293223639032610265931866241904765276519315223706025515237256302565582037338110599577969397126402319716597113193742398508086046352238885035890988578723156244384316858801109705474428714987090787021173272432277369348207249356304486938625816466238432961148275240999965640507424502059591838406079350252731192245795481943576325152514449382239710370418084996639025736445667796122290744239367054655981948680762673708908969293369225751806435599597494653962766879713526324036877044458607241003154325531288734263425164004324292525021391766289834398560802056749452347568805711230345132002475459677713357265977564230028878003343385288172833036197775610674186184109809971886476768041053533175900562584281680631362768667771454769294330633373766371878148711463537647072730202772245536710019036329550804685608606508334891621473927168247703340060253169865702463540899004856000695914300974769822032081981039075412433176469489014181612070673988777370728749266407362385696719476144255960312515593939581386917469242843730625050759970596688304547825795448692161995121869732663564415175074650219538530493468110939426262794774273050965103119777465159609977977689537018974307445929859839439771473700189975578535372497564290833694121324106799503827471940700801840302693181507076251419637839597730067247073691064250569770458138058157748655038239988236404861675341345562229398646539599861536714817023051052047974329638957160273882888866427435035337708627684664092746024274344086689215586459606700241709520936817937253476822465500065408586670352147920537265406780637932037568535961760656354616563633074607045550481681690713117843778527099896359980818883178691459132605612086298143422677339374223128352287969579951419330439886293109521911874524916944585375154036453583702043516090874900278554016658309895622287447248836411996946029166933709869327493790713955826353964155542507105961149983184126783016387620927940988674061808119618337534979558955116485380291181797577815976519802308540319115007405237549207526924052401355367760860469250348916806568191992772322435877867736737170491919476392025234750264042504036500581498263588929027526647742624030344218894232160137463674881281883178130016021505439128238361969666996837495798678460301276020856279264285788864023390693980498129254182067322431932329654558394288710099164425854269234713364022113387534741203126054552857238423551404401112153606417368017790624724857731877216178406648812083891283875511105390846053169974571645184933010533563389939818526887318776847508421311698767092972589347328857178656470505386533792472785609023332865247200389477932178202357112470701644965606120533001931526685420919330454040797209317261751320823882187725334151063515206126052955406266170820013759198819546829468014746898115480393890170440152793125147579336338298233392478999108772916056903620318848293703434490871310412350811845798514390889496383267522030169605676695164042801837545320924048048850028562051311537088388416510593983565797923927028639977057242715876654874901646118883257355727950646423785028506122590611081315270460865719609983911823961631290828992700198496591784527555418123762200546196437002085832297692062342599350234039589726004253212969551741827462687667972227800190678171641796780463082176261957242960179922588079053712088685637608514229767100099706656112118907077737174098662828068097468139903750694350264893197864136128665049642665562530018227611171557040690317609296203975257984313570526625630488742189325486446582076506864533832222539400460530892418508977039323209856902992770299667142330799045871389639397119999398377255290712824840179075124884376226906172445274303300117428088424159280231442177834076407062537288731144040998697998549311281636284405315455288093771813756584716224900258264762295762140747558080203146819278847869124295720259523785933414057665110222857243932505526535299920912764400755525256373388775985135649041372059243288422084566174353974309736189575058386425213088255547424745268387704245366237518044536787237840698750157931016171009303875469786763564940946122954845440941710888879326321651399502783823513306802841888386385723242638919363173660338253163396623313502101859408379940921542502855520084142672804434066351807953233454012039298991029598809979236186533902537736962281126515821347086211674724687776133976360867728546998178820838653702104980853485000162075773624262445502237203670457563576347097941704526837318577740616387808698249325586566190893108538773633613396695787219569198779654696191542963134591206438958848894968195119209225791020889080940483853947896583924973153943963840219364305310743068190402678192641812308948959661334417031897787765647667419490426348882288398703639095567942901646062135452362873718567765915152179440809818724024855505134854014853639201059082937525180138335655240310042866954482830677381003571909047413765012205246418473078645753067266484723855222369333858817749757447172536125747356228064592354296254746201112113472174726843473916054258811993136115635922487440793529088640825871028991104086249448560732356179213802911730862128168506216720941341532552987566113224118506744565629951996998776283572499249937669660291075861232659006749465590946692537801014011774389591100586430934744827043315355573268059128313910654667995786432626996265975962209584849996429439573243889963733482355222635867562704740114687378314432790797075143970291760526032219517179855042496294198184097038926088975167182968456130963497577749141392770849038323021648123023317020365193828190235914458286703186132900079184071524458507919434044490506349302049169869896201337761817266219235662592662645365932029299489497189733341012791965585171379023521949286271275301037021711276069011460992327273673718155896027745756050435970351239771913088979711069153008758477164808390201620285339807589247086839439329694115753985152292130684595955056541790038137693860451809898024108453043536477908410307054422921020831340215641825055888903857150181718966448457530328794346038419812197362094536178282273774392517838065931447283729213300649514199586644147539014411333527773073719126516127827791757644623352357078510212786185059726365158275754347900392347386795117912871468187486979656241350669381757520177490171367337123374207828259508187555386791891756349335959317124497898169331028829957884594590022678651030957247943121050912657557635437727488703324512278611232839513685136944793623679021487252680088504044243996357653602656471830226401984147823710479256163266979473917831667050767950405251279391759052608466227187121695751774046004363803109614743009623863171567928742656945816685643999359451034084382014415163419000457814087092199095863745356004990791550808148106322867465119855453256016807303876418051351273104221185799138745087673547192980155199607394077586090657402083330290947561727510897520675035637128420985385534020341793379145918084927542565381671814614561485642914375583426881262648318542158521544954673686405478607426083868896447856687778334008902121476131912789228475303602578415568961279580898224695175589505536560853102271086409139649627134811957776725601665136355910630560032064052174394700189098036684709062404803862497169272286487963023721995958520430071138219372631821034949909967913730415816231856546247802655527946906469837421740199556424204387424554933515812888046024649933918923075482846628961307900173267579423842762376398674683428562241457786738888498298459440818567723909347186467432089726451710009034114999733284706425342506235970686270975791581497387848965910408104389911743542488826776106165938167102748074461432577724288773614719217428810309281931138887457463742379203581731852915725839602582808020000450097740314462887183487481524581880910840433354657165800747721773600008058132927994967529231111113428858836748424886135632813376805128905117109292521494046220192485671544853004462806256229015598161856410054015368652588378942974641092317563440381864986402650862310773102984987298829417510040218044473169941108759889610723578234170322729247688922838182421880316857395448132842078516020779408928951676861716356519851497850806565572779548267619253777236829434143584123723710033814918605422247357101801893257562453340226471362039985101329426912103981891850092061178705663198913005636824966297774261614309919532796112466857389833497184912392133160725019828017012635714084923417500744285437347952947246980507240344981596635055679733367928949907316833442854739664191796406330421649296463208470065117480489397885138698664758645393447910778024845847235952872584755333672413095998133283127084856115586691472753530722794626724100198885143119535391611454878004819548968027295762450763172332203823006867788112176779989271350856193355086754656615773566879433346385890694633399104987654629996185714061336781227663179253976317719924849199620413920055219709751154680539277791413535586939592158298448369240999121524222828956891245882652076843339582560619526149169659263296218710589869895681954052894258979060621007502073411767906868348232369943435324461039760275810474976507442176356035678022493504913978675451285201925719705404322190430939947618544427562337334854797945259376618240706246158563658649527623923055439112215748866999457137698148340353042155871812716650640740865578897620301496670314465382905278311924040777680600691491770464537500842078134672153332316470823275268225792643753680578843159698325831079966124138319198613049925960624801932661131245300944009898668475118565376920988962672304468487216904752918783736912215844241899643156102183348542227852366971169431676465822011176084758944347277050312214922598621429732167457242712155365350658177484338186980572522660643804579212084765783310634067312567093802400643964721524122227190467410119116666997778929654781270152267562864170873069019514684931266687008267320892830244847699048438908412688797078230075686732434247887570359848164182681269716551961193384180026166989966617884842184921439932789173665060126876261343739449946147297923439845472718315862849935376012280288351113898663867222976432973189452509093052859914240260743202813250916218368407854114661234598420214355273105299706463233387069861070329678310529163345300474898246740771557080210899328696498192648714609779520582438673183579339928418350615704556019788895537845709907848311965056388378395697250026409591373897818354440482402001564660665300879281750766797734494644977915139763567839654070801071595024622293699405472514229571775454322400656118466786995882452431960884722541958515007408503487606154131560959430174167571087069062733495650783075100410195916395171000140277247812514961741609396962793863630635126904510291518816601307622120418369584421314838912577177132081588580727808177412451060240473373664266788230626135341230114494036917829844134918837334041143782323849300230621803274282788902004615821211270678461901047309724992861191621642478019406492284223937276641869157360585162798223677956483354168571963372567598973743930604979367358337353949700616011365726835195554309671682799537648657825841159741573157067273506147696984264922588909595367963942797133936204380758572050599566501152371648381955357384579261340361010073166151600665599245750766458975589347307551512740028478638032188849993717214199832220619490668419123712406166791316777818548050724876577579704625765040019849397169947960862040096304982733236937961811185379079123537234197126802411122741880454725619973340511358592677771433023507462881309244097756323417790221861024500522915726749889179716607827330011798693040540830583059477652271977841032284833589645140636575167244399055213613886201863296504536672301229374242202690089492925797428327561823679032369279096091410605146462315199530540014443506622874639078895792043059662032128935958255280786306223904289588811612708798750507218422642231343407742783905537133117674108981407318295911490470607008044894570261885512844877936568244859511360339129132976612404290427767554271062409892053779455138279237741986857826724858436891718713447601162436550562798824727587788048276374761430381056098813158608106776384683570407987141579343948206706049612178693992345086330311286243863851430143619516770232974976421920104452123473959971237156564515631724442754388701878693748521437267203254293091716343790499712355577981379991543510135867165725893157129431590076660291462503162689750199225362491494021239876108618794657326543685083697660296983052671365798341034511216621674411646807492624679825699738809674722132084939997003732299261385709239176218206133409991435023762511985806396657591583982077892886436171936161648583749151971042044784178952841630454582787487228647990620073494792884467904539925201535786316850905793275228357335771490501721288896734844086745766986879665966840486317661719355351289500097512518826857126255644460118386968896897494855038897180259796685806893683813790876515103741165436066638423590070118087405281272218220041490463779009105694843069012091336989545511714637150610899461694578746709759187845417559851345099831160942286977952631813486983430444859871079563159003988701935503164457865458321971451941222998290864045764301931541014968155325534075209375472670272024184479633991639051837888454063103229283283356623132043149795106237163281944840947713133957352210943080810078963469389719395841649892217073354815689253331104602163125056819267403909752154146810292833805390108508927130824536272122734794662320390885879611241664520760822042584468309619214948569400638699379344424200191236845304203151797281077034479732580137015379941566454482407610624971231700912684497062018118560571414022138115759881207265042976475043797516308165681983118659282196829228172493714649941819762602411214541290008525392478220298364567652745717831916962235419119319525524852083944113666072216134837510712096048236735143989193209792765680949134269023141621445545341080893629756439672137344202052815497323089739698254395997216718869626665102185876592681859580922716876380274412133737052054580094072135545965304942909350436184067145924712224802998290311615146065461144250752748650619107226137410060618439359214581935404713501775542104046969202166683891491805533048912690134357637528502582820550280402809834796112470846272509629369599323196763474641901281830017981862876159031475359812321833665500613653159277322330606883277392520724995756370016230700483673087828710937718690915383823986946974795703586797827127821685605576145744918056556989602256566211364594717305183546077128050031141866280013605689775295615191607746999338156890999077926627785637077476638611778027023765517971313461927469076538246618812868115222392904656970323147504615309667698528401226461815942289876368318444894925373373788929613707750003275496095432620626729121905533892236021826625002677414254473733171725158810366902744026164100948389373009517286069851192841595202526539927083027189302922047191935075400014103808045467143027346819946462297696023836772293628262890250765474348655515896177480470519800813218937780160970337082143619117573672210819529044027616728500887050816872597635319106813193700965979001156371333402867310255430358319045834171451784202879029745900832776303598419197666668234271755469357641943476886689332571561325826471961621548990367532300817216686216830548823911940002440049704912787428638434017641912480907517102733284964667597535471565414446303740646703666638083531186786045482735734854860632010518249210370505509663502602300940593547952962475919381182351715354674806778503175640172640932466606739877231657842062991514710910420464180881048353043679972037848457588573921358989574977980579015001329476914644688997852255026607795590798352257832995972212392716588529308366127325542571776225911629456581232297288933349628974742959308213520008061567594078342826140818672519444071002254974278885853306417011844575408783882324646710604949078672966084224813439836011668672314121146812613417880801956010072784768507573123674832950227388307673711449820091875775893456506031333605530875781381123165033440777417780940528223412911264007256411613156169584094895873938159220082102954330595286303426797621685236981500041400502805735000498454291032326629607050967517844173048922130300131014366845319188565865976317313458420646526919713337763170116429478621699109392308306595319773978495429421104075273455533966710480595728141480837922550199873866700482536767671639120918769255633881085077287862072342572979806407532916754336870982184203931320433085731773398911994229537736081106676647178006208114746712615143429492205588109151727018687470895359989235309450998885344340158018459204903284382404355907185893876899929665480161082837786339785901210812689672404029365871695404993919506816360122875477906222254013067067859871659134364051302031074212468532563390183011887644361983723774720058221981082774956993643973733259083151636462728815126178482248934617217757354024259031849594503900745627797252190187154562136180961532992635388397700155780043186438318303884098149053112779862867734460093602916410216854204352692874592937568603188028919293746293051969644767612193311232773517918561433030162799628555167977882970055059719217825970341242843001320186888803460650524088482119981214258363390633013981264516559349990890845965786289630242694018728851012650621398189484129620573896554492239003510920863129203981096626187790596853949239206922490759092279120298955471738846323733980477429084233432414520419980449329698448960019234225324648007700011747770489026197415409199021799594070033928099256564592491326228169182207338224445633268798727107964316618623300019996112208308628545782517080916996326992809164419776686035077755167198084344742135977280146876312544125227340827666735072149971003677818060157606220546360685904611765183230294831769031938941237077973730533351704142691432505940183940576180915926366445967634323713755430730152666721037210772938179858441278480303569586337325788818150196647096347059288654644989740909905955466246298442083886204805484364322422870332122304715853866861308807789613799145089999236056741002695095234330684871788687363457162379542433027871773676965821309295199319644319649411854096872944902654377691597516086035214586633762910541811031245878330831871619437600687827869633751875304558913432681582398649639119347987676576107173989139238988392082019669472694031422576054326980861575577806567646855334260881559619394079880519031468422137650486371763165027792692280523645218607515578824934693274568469430789727114504061871167567795909105152215854475870015030978665930255232136674391627498618624584807684759207981498384913790068908884593500000365382511650976721026511253025815843620142183459935669928064970768082622327787410988877377280561387296444657766133236333565262672489378419953014533029033484363143211138906924298693545350873792057215351402841879025822335619531326150557601266123877438259425167881352001398616627681798453063077949398421750742314848766904568490042876161919334005830222238767499108091020445607556400400100616564761684945270930121428561726669264713327804663621780863663477916215025679193342857369067641051592401244638930599522187024408885395886974688943260197903683950071228707955768958269693560444293290437663017590624919870772986224005367646429991954095045292816149292818846426030632186805381230231844413500847436572099420620865356768675232563655695817412416021297181529023230333121519254277728600276629538605115402779874966175491630352834244292834620652901277835168006251229222621705125045159175117851200552029971536558505501806108516764718342487200818674563029117165693092080620304494873651096923107322949169423087290390094101353163126512962032689516846380879450507978916179734525113488638742366966628475920164692924789497895473309511884262908831133440095665108950956695474920597081644004130462748677387790197892308434458201567368695440278374160825685255505787323141575008935187748417639173041857780581936662103684430138443933552482104237234926019992665246545585314341324236594472684389695631877052496650446503002131423113929187087731898726023313168754902678082171690513383138991372422884323978204409153891024239606439207390353534047607037809879305621808072091037719480530195776400841490168429088923535994247736396356895930998636547013784757329167466542035072293011008724552723437169195179005856786908672497550769293549560227949690383575160177870340727421610419869364523312979096355178526893492137001882142803058576621462672142301633705617178419806063714930252433901190981143457344645880462184188330974602420792429592679165252520565537510825595467416235269207210628970042339444550798728870125028523653941060655987573769610759343151661508565995500690017150703857414114208155084816607840062486358535498629481599308620405015657055300389880445066585196616880359178808329068747225738375394849350863652028808164961392119775570333615548382477106617075758586590007276921702811772704263211808267338123222788588001120391532957052697574360140710540537757275447441022705047813576404007122255261192120274378054462148880334293500228859364764480258328738487595762891486523011999743040006115654744490384488648889736407288615123951718798019088820496860740991470337580461803723970090968823699598719706614625072369292766154891155338121600183852581292524228846532966605950727449829985258257628403077810578750133462557383341933448390056697693997509134153095324069641646591298616712255121489494159381517696239208174949756638001801826152344860715425500128219130554330537981664549208952987627308955981649006920161371868241086719878836295091388183112561395310168750681949347447622174118478243077889706365860904553900905634275110398511422306249194434288115179033824474389578859436900863584133491694371358895315194342100477096152642116804975862850085172924526034771697222690662859904285800417598044864475027637118085006956605119643819041339958456529796600542817972942109412469073355263637289699940031002867425284207678778888341058258509637208263079095633268585302373449884722802254201480671368542156847124374709548408265794396699817243739051113621988744279082998458500038073775881488365492991437224281249990028811850956857335358500477148733076827403735500299252544733690676026682157308508354231180045044558395825232828722409917282553441743842498774083201164989317088447700559785419698301274638129385057174022344878835200682572542949698750261752432508584016031577438073664866694154808748580718584045097174361178174746404292824003160474352196616187343505495595193226602053501022033704038901765800811109388311986723065777810966137752279413982024081013445958631569382022742226623891717735641154867782752085962329230428394322788040460812939051841875567627537804367669202613016159349028470037735886008486174687192842253558048104723306853286527040575242618115085064185517410698898280905000546377047151555125643956936079119065522543854462522057583080838387570870967235337830539719454569222631401369765594213457520007260875806194954679273122707567842501403868896998316378256684493507670177102644139162419508707523851702670182655995221475110070393350017109514375446631526900842918719320694196982673455767844114775040072922446129043466848008251561808452904193392834878613637811723955301415895646454888217753940341071461205748526821304638613699850210416811891911647589640291285468702148465085510433896046292514364452014928017340344386125209967278660739577771013547244798094722943070284815909547076571348151557100237106107306856201712859472736205677552954821017659629450569076797728603396243679475703562423822631655079752119305104338536229140247973051958498090091385749405362737871955273314460177888771095159660950914269528817030989519162191493180195070244247137989779234653006901776373778910112217098954231876952988054695747455958519205864837382608587189065531512298480737997795975512014130300881017206152778459047392618686673421413387827646162863620072635420415121272983983603620666386972308238693802291128870783665621335318326442209347724191176212985577101999209159730705670429711491064764119677672877578598653926902886817449403536866335287745242910354392325378593076077574702150186912761987513759449522326948651569450829581129841458456302422753531417156002690333103653432080478509317504447598887012480643990941460477245951437576985366519272868524042203917319313128024884310509668452939960941819693684144905813109008263785302592901853181866606250450832260139314965017997541146108128325033895135583184943730016327055743312128425311063828929497834000544626060590289609439209039264931104202243912616369861694080710381824108867326255842084398433362405868896343714151340816704180568385151816448245823472404584115278336713009973285571800408008700442973068496703392375687822131024251464408844452952070886469686385988901734777940267075585188909239738760067831985916085389368749285473183586775496217264801673071530491858854914340144882708021752571340302729195608043814147011373272615938264437506314415698023760306480186715738315429839316058623450870849151936416435797044518717989032906830169782992319252584813281761726867497610766891777984801418466737292678275771539771238334361351189351500195877668675525322309715166643371306252792702612215221510725105615010753106032500283656532611998395607748107940071000410252285424350538925255395370943678517873834194199353397112600340724541470404915209318254469317163841636823831712545985961092992818037173078954479331502460170412693848441866196463542350125464920527279190591206443814358369288561389199065199399906449046232981361233567463801593140963566903753066399337309316855529673808059820380209637106395542233489312489805089043890209251269480925602400853615996846069175266626872716362392112057936207653637401950088372776836920650436746442018496399414212292351785072680308407091806816063759601360164733369614025315243522827685275457375313860564980869231264400215139646599955607192239772048079413023484361891716751239063227552832157167300415844223922782836618455068317937951025049594863078550976934121560624490944656940118070373921556178767360521424907443282729122083885501765854313064345204357542600450906995752344216292641380774831589960215666987784463422489396690892098896710611402404249426288507812283042544178463739161332468957407464680802854963626979771255334929584682164084000918928371699911893341047152292133329688086010021111017022838121048972585522864100332220969709611273625344364833000086864608232786335932229717203234423728979667885485871735192464462699512190772441722758009918483314570178996232262209184942583385632194448579137714274580162595967057123016504228751946130266862633144788390689564465152189740051833713133339028818334552368817897988500021571113189684632613507617439099283702110775283163951446436549580153481468564436486222698368064627487921458768501487424307076554318648482381331993889435379876864950791353294599488520747624194882383563904553662467798413533229151747348695290583942073653107166148468501584415334256012891098906766291880077290570809456194513298111214155590609669535603439223093095130377244674712085903263351195317615013688040672304951077783229969415583568209458599220369036062664147704614830322881920384770307577442070621469884487832897190032381693060288261963596350682294812434376069589252501529972728239831789750829459419676558187896076402454028329686780060596538101308931918694357116596845868160103344031840070912566263374716803142186531259317456811832095509686298918632691186428232076631335402323663260514302483781261740911997922939734861454291521741534463211029527556769890593148613911349791682308446565668839106511715794132554992937614363322585694132221790696111907209487727233257340189007868572625747157147176062202385212056900419107015754757323238059774169454573836151009947246042052620788523736378507782195461793021238169475734757609379201536481628952598197893669610152596496003672235125724283414281148823625231134649540997321824163729649693252526561733214750625571284169246684688063494298258803077680028057119565343259271669794949290371881313366445919625222600186354134308536672694941154486498616343934912237033416997971256991160151491600518397273105426393007869078909870895233869864414212547486792568491567555410203067858045965510766194833593169471647825290057982776921506778366013060902654334864776220475021424544084479235812984092878912794735610435343183980376519828854972919480322784224365240666774207137770921189125484834620552663651404684232915648764470365103997217449766797240709192437070849605965998142132045343659911969309907792987096405334666485946401350762242915061587783604733239833891018773595795996056989830343574273799617572605511487419476570200782179616635855574059666433921169097671188643713250051191144987443520800943834259564252867494769046411434611684369709735163920102087498975004232033085140917990854002588261316042486866629924638545482536944735623938269466090944270910329350496553391176759111313906124386386706751545871811093907934084764353053917819813881014842097089353580521989818522353550702262562136578726174431239061308788789458858309884655677009541022641886323410969459271459964198970696646041464369216693199194726779337922566866721333268160430503418176618077531805204456552855012165718841720100249632291340200070206305897903790221065611512654996707669690496368768959435010422404382367793726670903959388653817061445401049802396161708561139415460335558483657456357200511892385218792450200754008976086819643347545358587499018521521383948595093280634985857415726560600999483248117189487089818918429242064595860670369243724162274231816679423018649630321636723497135600475885062180728943404617529107734859853638203570340742750485755336227422397031593049854012468592338810841279560254988313739672368300091863274674458199817877120880632100751883167364062658295515855683108486203777103103288064291179046500913031394277953113344218742585955757436421118123050345371702283699318717055459769882736841628053247746272601630052364150383920582349404346945577215210649578584219647917918009978952493124860280355655113679795635444916313490099602770081604413499478276222268024306613008857335742917032980623051684868008480264439769319619166008758735189634143476325990859860437358188620226583194588276510937205241000228561713075385565415184085389484478219093582158902554578184545607964946063341142129497226199431485412449005332924089621891505119010122582907791124207614964093422189065281913443518673257763502447832408801954942864915115407686036775010623933004758387820538948489681469158433247093788503712233251724058925668022330705232406418496673018421207418165910660564060086420051477885177771965184056398494026679922713556591272730208581794602663295417628587160277695720329958636248510677077183069164530781405513582433555840500665966386774080636937419836659157508069851267810869803148897198034179447946671796097884421417818883068717139003766727151306960897614962609467192894618376732423012833125307479917506364503843092382229772077751838566370688151134911434698788107510247695726803918102355717086533163823875557387492296455121714955936506783819973714935148579927397843550221708778954681004603365047180085674318837600165673534805317006943085107671860112874532309055281320045695447122743922745695990077522500573159942699076596848176907218061237828733697100912371228505328751723404658962918255307910008187344310437652415322279477640344897532396522588792739023112640531092934774145403108131219538180897779357011112481316379542040115263555988964412187807117947501683210167968649433238746194206687106450639969971985847115820977120058715302770910599801588399123681307302463992673222689369247653859129190835191221388557498075623472804682865746369166250513665668820282544700683557025116834969691905890264253413364588545034825148538970896776739292783590310556499185303818058325917122865142954475673940069371182828168706688954536731250093482583928525597033416646995623887518259073555922247632184891223666849956478119435244837538675525201173123691394640334134973870214196282639551717762140327729864005046151749730047897280868981619906115653624841589831916070151593203420391734849461665500768562696725188247079703885376896854182084687273176012558496638138296144361988876147087512949843298639968945571377704708141031351123642063687597268362069539476237483792915830811936463922716265117418957183388904009872851097434398409501383746902134750295315709916621972238733890438146056657793721660056572449704283192512688047665116033840813139093140184106464306877855156893461654932021274617062481095034167757911852337368431166100016971231332311630087430793765503298260430879561722285293380886853604112362643746658016510787496258526586974436711454363744473627382496125862034967670392302142722418264550262121278463923839080486185608817599836971114397998209486919952334340591938648510805662194556865109345687881964070777202327702459553992643436533985838832188980853622857012117950051191511574361115942498108099760412736943712542617299840564790067702314401782673145169121405147467568601454462032425132736528288746358000095086810490957255787392843705781286610987883213168828432777006713112204146955969169235602686356284704595788750861559118665668459591966258878778962740612592383235662919893139717351211570544792211300983554013223509807910825511780443587375490875706880908727110107245956067453619409417666767925168353898839062111239473234575465000232212787333243255358254771707517666554798185369330689967620684950772540512885727637654801950157746032110263909811850467209881273900652927714764753182821263599392599469680368869921660305014893197020005578115487929547834195641003664599632544750942150733003684845251992297343852778921180050140956830526260550371837752223524237012810915234484920744045148262117092527040398158995097508439397396277439990651609794962242793616472806133033194086238292727050186434268002539415520364755460392128931389395279536210448615681155514939345101740500810275838804621698779808074191826401436047207199157569749540019543774281641640269310152006899437520774601349619604510556141060129448980352676744424147194844354326974614198044398958952172120166017681003803011285853686343062019974747674601459978113857989210403741166826818969980886623102136599325635982284207171569640172336811826320446558073558346969900251511382761176648587916472933889090709093619130221626179875232121394526011908336678753078202885834236798647563152351317780234025018826653986645024737577119428023296355706979332931902336710834531729088630138780837800751206010202702447494372511303592628578485967731125147942887035437578020851516734065807638426476333502791930328917835497204655118943267904234760346252132245855331723291836284527680184464178806316090899333341353394267581542058817149340083230890950860861022958176167400423131168617642885938914257036157351816091201081835562306654694572874207265231549501832249581659824320511330307327636845826782027093046028826479411945781935528662185616448368359088548441775531394808513796934561560518377777811553567525199895351089357526069356534537744294749044459626034177405144373209881825935594631142808404789358514994291532477012490261845138801832213701201754881582151495162162301441830100719880263671705903091791596614641409626784072406934396815662866774999990725605720673740736719603168396505877098603939175472701202959614560486850385634566999281005848840496138282226207198969836196394898079598753653187444625693023358830304125106413148870725225044713724612454659179621182254168234599053182205335811151398451628483732655327681185076103603828742851045465598288894543045279850898724188525522179361115270748220952866154545226615395632451694691703072269043458427765640362818061751905675168854165974728896873769746854218399072202626883058054149228739707527626327894368628902398943580087259910509998103213906125104317145085000063047788976901890151330780645051780501677341938177153924575898616837305997665886434140202840944002037700461338417531430482039182016044179646214193453603723845163906741575680268151228815370008017159416422603342794212040626913448269808961935036024272257170693296542645978383979750938744413285375447248452518555972060083163539504917783915494787716201797113368220160658552361177907776389981277357150399234413470615605583320586031611742489219251208567347835296676358824949252897649001007503068928392453417780305134700236024216203088283597701245955835101994616407229931504099997505918893013598905445876575255977028172593595077392249601065005310812533064945533167830246966440784607218800541765184940094466182514917955180486646487967136671834873252015000531033962655426995504016500217829823131927207757982390478637014562384678482314463662841041658084419701214960401455596068518834251232523989319995323278086178944526455408505113564705564415083247975426388849881744632157713994188063971237069485949261791970676037974335545300445295719699139335950113167284619343361431022243380917106460937987537485903567936210544907456022790167839975140820623675763545078258845735576873435391040999307211977720991750958686961804045524357033611717658645061401012696202796595138717951485406524365028132290396351608826907047021756526549718465694511236810379323980493797558156076580141897147834584889427923639648304747084424108231100689953087800635072746063102951283176412412116426919519214087780800194501952126475340503423387213258568939466269557809873952893040808475663673292779974396899367658157868782885381393354944174393185753194734438446712141300390272210422707607877133945365634132886645020477192572580070986124590143190649490999689944743451353260311648054561260260441525302789362124179725218665219162864470926255588091965421244381449871010948615370280418194139489520962030971654360642450085872273389826038919670674191978047415829288167844796925698422946324812847506571434024063100942013355334313269307128801802632968016539999843945638081609176076824297004124066984634188313807441345338173807643215160905828236175423012952723130468333576951715670481620590281197449974844823287468259618811063271461391129991183950865365237530781031072303144536305807197530222501544570477612930767581556238241922373450480632361434883687953578111908644497020891239653885608704666397078789686419482459955232319387398291255059780089058285350841061235221058691421733406065905721337352124054938615316075454523667680996564956001471323296251241904238028515863996381064278229036010033678810408877067211924064825386333251623332204537354417948770182165618549813056516746899626255355889590179680523233737676644186411155014959102874769593068467365162069578122773610219619625022976977043149370586361488219426490939573695723711010358750292196970865425211668175485500648805326870181437032261481135151141026633222990160199003101969523357760476786798957075268440523246533804305866951904260200028882364587420175924434781124280153387693347390314877191919913276771164946291556054170781584580476920868559181180698445898082577526284147806064981037669308791820673859190927803813210241644868054675520192338427176530492030332355885982142207837948885834567719538791035481298183769805423715902010583473690152440451527431717085192112680067481500768495772257117201872313230534364670415940908575961326079365291289525423653747769110219647671069704226793248797360044171188406197351710731304919127990686965700512168364553490845743124533528691016099290506883822737982120553021846574318432801704331293610034703244039626797630310430612230788494114765062160805994165675970307232379006878726178745446333384810405109435442479155197845361522680571382525899915590584981072282710494467946079681948450357367107186314519857152953798745576135191988715841474979172141115161548585242494945322976240011922402735524938162220863150115115798225235486816225236155105308969045607502598013689018989316226107282251806234345156639594717977699421038744862659404737790521025915334916947430942398655402903707695718494431607706806368705191481502204001765306580632218945069195092323151845418450180370704934681292118979584725315481220947618948973524057004276927913596076252822318114172030518115096121835062069110716763937406783868901231740787415720597639077982278477710909020899233439431000008293575878092887050158943227561316901326538892156905106000391017068467742378888806565237996279349467129331595575797714876837192204965573874577339421447760245752238085989532657585230865109222788538040801177157704974382492888263174815238152793440689164660300775292984985391112766240610260763318902107748517620863908050024806416274913843737575848959933619009269221714532610797020380554226530961713668816284898387594820229672736624937441992753005262005068510254780984923532787563079503485753163103610406243374587637868059015843933575643026178277997934620823161446846082671446754570884712400258667804413427860234547238435159426643846361062886968550655689952110065414689659115795061022480167713137015342915766084765445166967044576362810663545655912558290320349177126373066369537194498706023846956835540550289794417164210681566919585207838937356500065092312764028742836934003530583804228315420902709520338112421990741006549088557183782857599007088481903560121602867875468219851030896366929668167817966241039086359676002898285413424397644656542728329540337730992629932646016392978341741380455062751458845552556289549977682991681487007603202600528750789709080578146534564885179471677084219444295220514591529665780348850042657789531927709560570095435381516050123701545793582811508956952130861248100319233424128092985158325660617646583979146065571533935563006237605956672362882477817169064408099076732140763986863408018915502953469207823757454692873274964503162839712611151391203508273786581469139807481737466476526373792748112393489799425846963931207341616013410910163258938748279315897039700667347309818443170121091708789504546193002009505605874301342014189127136919594344333471414881498230949217812654142634381279346751164976644463542257108733894685504399950798527717880703507489744022317700117781756794980254857790463099563109719096508366462508558940903877718053138107098262802787337695021416146181509898117825009283404451208645705950522260059050163346218571881805909928406639314152668347712737087278079841945240371741841191470739486392636253939385274344901421729462545294575257859546601988584824228083171423926374250779704495781273887799619662514541912244947360503610382010996473438492075810428178051290054131289822169855556584798900611215600810115526015169843927153807489237103907868830098223687870910532941467023618728323793278549605890444784534950455138125130548121324400783196428523085298094713937079170662814172911409505548528032040697238578480686602391563907661966396925330272172667447461468311508331605807247340455599302699731113171470569051560139961536373392327665596421572761414942171252057022577732427124403016096112127828392158591768742542081135261882824733132429022341525650118558525193244256659531628283742127090280476420397729794389673180967778535680847581399842698680299595754806464426214927140146938025912844906071822163663210059254516768401450832104429749947703537604138606575153860390983559226197890251471965161526130671596908544356118399563763403978625315972677302594303676834171401366673680109796553448113007453568433486758278433853513943281361734297218257886120094468553510665582252501189847299696553141869216248574092861254034031429827322608895326232950367372188551777852723104807523307494596331258942764908392995904652702236810619409217914725078517730465381805374684572992391119124908169343869344897537350338751929705834220107681866357392626695938621929666675992934222436241156751075286256141944700696092070184287364492984570682914985492482082044532270531488886289984712511590054938331365387174235211206754790263563343339671322335435672895139521130317717679219787957388770412402001752148673683189935535243006193533126621870421292244387948013091533716612832726932037374325856544584879717557393035847668965968712528959198530521351006729530319614042888096402910852103897119326653819527157688080815052077107485126162603404724968195005477615918941734691506980634535218641279742586521575873026335653362027758482540860519356727255772210406668224908892100256121785609951789808111491795748089385292474657576551739435135732992924386527499684772587520505394255910607814813902720510207115487938940763294234363938913148517451335242045007099868287940489791105276541057288503766663170901863276171215906950539326451841461115793809902390491334811843286532284271939221845100903098161478993473235376348755914869272069428288428613429275524145202293305749530134032722299628409942091552376319330065399475785753844596005689247182017806060224348962098729402052355994447465345831658669350343362360505911635666829019566711373517480755450802271635575502870076958884311589312678320121132250213146966366755700975257844443774950825680965034114679943260897843841570432531430761777987613195001085711181866853163105934707587968367652448818877121714303311826211717479588302931409202151644983481878881955215255930353709963730823880269459992313192611964016996617946078073100448725771621713944285214242178900418993066474722327485859369623673339584222772016223774987135359745269998908868838297600171982902809206451700351446107575897515502355404559061194257567530218437386156752994152620677691677328668769414103682218202664569597381039846649505946254837651327933318550061366420420425976944269965911247171876155434973884484296934323775657693333137123395360321585972865963740536781766033846979895521028951504492177926714813222825721280689469307938855646308466480627539300834436879947344449646850694354383035223130649289550128209073145261926654141917829137448338166700347511004701044970720851325531832218523722318160081904850689121813376793058266774874925954919957407326927567068246268344936535818322363153020817782133204749169069130564149275490262924717678987453895197645580836246217139006941962175278247061684098658031034012702395759078399183730294417698443333120603863681162311928635964567541999331947111368169067534141158395362437674379765061819446328998228876350456292614172794884789427031215719460756289353686452862937687794466291430619728359935073095507892814304773597286840988882422543732894868728182537564026400204002213489007679727608837513942094810874348398884784312946220344652230519993922461210919667134334213037924596853888009993278112895002071082644547674332678606591160133647329501379654571616987798851417902691403867353915071643655391102984609821035979865500718349744614710858178282069620395586147341821850857426624618271833290958070180808541787625296457133686473170344753996075338935152052985023496792255977948684175235073102613704366330760702386706297468964219809646463629065949111985363229694060197891034278791694051138765501376003802746639242176025170321744805731790945909863393744060393476757052617993719208391028367004741125274498918970994009694373384799384300144354305643405395958931193919547380268569453915387745407012830967895602934768647677821474090115392406192347307976028127356508239356706149311168593839344932730532230166723129765346925066537893801075135253803674929228550775089102340272786223145429394870035066513750916224485015102843102899508379036088570128491322312156412225000400074822327445575369365495252412221304735983014159756751489504582752167388984084511057910215129216563322653190001726876038264119233371508424987666952742884787019710118320228637973146212133886903297061021015423305790045224874380033633196782198044821083763385417261301841501532187015431461837154233499011481957137023476930023413489214883580391625538997822367544023275787004486099641760843080761876597972841229610394043110716122502084439163516741391896053800325697446242639587436256442216921246495155360413187108725917722689668272692302655923391551566252858568751238831930116135155828537690568492329815010448143680310089029914651143623927281316438743534986108763704619566856990386771765098508209857929023142671384241858368404318188759519138477954273876266042943222057211495525755814056014249078036370198516849036052319046890305498513294735909932386550065391063335175863386797429201000747860713831742435254805960636232523387082289054121780999044769172389041600943458267366083100221104708406149926255123539204360389223622242539027483981701579289942009189118513733273571529109121778908318581965328740776617853157143795619611909415508883226984388406411062630402502152077923727478939188686671021105561117279784967560219330293553035134602281814883533386688040910674000438347467301788187108020323685310589939602538126942375366144154306100022768142024718613401404719851714762366366919225137480020521924430883033997694056177358654603681496177337817232507544467818480632233391533837210927963914092352049157409342370742485002758313891365091352522043271297281304465728778669696854322579905320706780417578813297846996295754194236322876353228092259619241085327795323164064932376162205889070976189320892831452565372377491880834757209138601842779616577200124733200382345230001485392481359724248753509456966882447219217690702441680639570607594555436290406206085677537031961983710565313505545935971554533475958177030155636300998655846579237767508056257010053517209606877807399690395007768095301088272053377429110378611643001632142109016691236289784786208190773367481682759332266379422962083425138842639277869497439514489000379987432718454866906301355321518600375652083438107618063448482371814271850382373198468841554553110185702079939911017166439473384003984361122505456539870679702341355821620279812292382815739329635722835016562096851482023457239559831399197278522989636202492432162160207821850053865790700967242368391351354326638765691934556767189784099213012330240862775481037104452940468872591276685691344249387614561586640437011921986742118012158580615088664451872496232145971317622954153652037580539296370421132596928369668081555381043450443923418753960859232910133471724003343371726103363446072536780930113650687472684056537134577799659886165834618949712624252528638044456847692049345466273537824287318141330534180020257784797660531704955414477720031165856030869661527133557201619417355054633343641138952851667547627805378408800486176197207181285269310467843737252062325046577935613471198422162658915394319440505602789409121718422120513132267964322190410816725343858859949958121615701615911561198625307437171792016109984596506941402460255853232531687954714301954670998084591175370454763215838418887953392795324944241123767420771004597755133048229405897791784224748108144827979833693186822850616697172482768927403432253959866784999441523050836637030216476252857421614239594000735247620000530571204434011500738047181922315719937179257069864093198672627494723016648061835006499721554832582822514780331712883577585777088579379479412940265276061598583517919792716504350653136933354011439712001051840675608180019201266757263661539976099405936244829751752562254056722046364429613602957462032240042939575142995435449986963700656918076558527407758598954261293654258016901069631385697805935115115529669462700704514412425756557033359586994339932273788487457988343724289094559750159331056058425800621401133002677663109543391717841602233590688112812692201460349930955690789874292253238251418507689377985086476186940737163086577068407877147316427858485716665899017485715790055080741451075407203041012183086691316533984697925763001537866851604997577954240416765511205936088868052200114739423599841914388128830042480565917589834229387383347052114025032507357870868553978221278915379517962795782006014961773723018039262253339511823698469937696731834200562738899715948173373666993641159535101778608167869543398510156746685675830605769099283409422073790084850404526301490867163098270953917014685745560825575333139996204902319165451405569504008278352533012799562012033361160367855622904217278664284732438201389639313990935928495467768052515098402718004605252228588112252309381593206892516530568060087053187704872198733645377426767506738570261361644809098091469068724284721812638122853272105050044395835658001969944197809562903732449668616722560521840408578476879261282475169945159086534822384583938771303401715974684834289877135318412588296602495312476301713035164699301774329473077269030046432794123410795916786943086556016145823894005711237374119807944489402193043910845812362190917604889080208561489547699599002350192916892934291615985320579745546707103442965657430270990963423874124854924789675097300592837918499394388324899964464658865913601923811239752028292303222312569587697879610969503849513441932316845871572681041153937233289750640542742728595212722549206811857006252017856727524344623301660577706238806358891704296750948042044733997768086571554173048178716929205669772296779604681307792095759074992245745248301986273614178421418881971092290382423987425459424821160973740883360667734251121084926250987553271893399461347099321310607735710970345290261496892263282536519916643348783834747255946939429721542636846511964317893988321766178486113709938228763965584331376422432287022218519331288331974259802755376271812415401733802239177036828404086355721375494591711724825198780252011879393056445202784008655979917396282772086739927171941151091301610867994144794940306225303377359334968948904420099797449032621145938843855780857360072757215592936475672441943624791891819505393627880858169993224361291006832809740139485071350772778309695699914886000023267760773429120471986961764358877605117013679763023269558361539368857151234881984195404830139348518470890340313038139668907861949300265757788892057706225972868216531638063349491022023212779844545347932579761314096491319664484622676410279123614457140618954250966717039419190111115125875681964704708216470712568182490961776898484219505698753103624293696287345989351952781292925694766979085359154307026422819811234615953659987398009112223203058747640413953696353415427713796114940806713119850898099168983016548317094494393046460935164846369380498347722876024953348367139284146093960030512218643281528773913100727986383194573222142955648905675427101507717636183724077448524655891907114772885437310090128817889303295341990212724700236942935188914944333746169380516890420213479459541266559088487614516016359035727145165572215614926769350381321648636496123553348477951706738346998128543812379796832157086373323371855793082446864777412710472799694237447408749986159391919169488300972528792589148610512286496436379723933700631132321070363428698059142481541914626005265786071522705694850292046043664502917884510828527605122287806283970574192286342590944405824800609305612555677639925475502877273534945732967282934265972283420688141360735151555911629512646042114523005678272806468044762831843922214842689607930203194145663427987165435800546726867135924358534205787230330138950836576468548677092464292524916171959664569499845088350891945318303402002207924610100080741423838887087742398755226078974137978852825614472395972214643048308840772607534423839208117626551284238263747379503767543668332592157066258782153734850814069993587563033683237178506185911031490717308327726020008227566571105813724487675222205472627848211167779510958747053669316893532072266479546870560645583287598900616844804780917641104993621484169209972373517518567820758524283184361643968488207326206784028487175618331356457398960614362889101406186161780847824978558895493587514766025770206651473293477558120471427093054237966778472463983042446125741428773351031852286263736077210973578700059620862201110534807594024414532858526773874157362995528234648057155706713803818205216688131529245697005793460482620610018834265167052982397125146698877492664261726318453741739407396241483108537085520252577131841763342103138827887042657793590582374217722483647810569885557149800863760447741442193412314620639545633387451332902911952986288485805090415316964734157974256717827985900775452212588975977159508387288351451681812000686676087387368341808826104580608619042482182667923827516355752070288894361787144633309436451153730375886598399702765725920449269197683443852952497737249703222199994857859232171568045418421506419969444064068954730488396000839385430787433640883566140083749163386003368651504506197479457430686289184279003361993218646656210923488820352959539181414649615063410348769033576189548968942803661535204678406844519631157810631948478780453656853982006481497514441611132099293418347727868308984457895849035482544089966566910477294173276442896046356734362003392680706643608867095543609898097545323314580523736636211050822189416809236782825102301191985971576618571299473917184886820925236795317919087378120121881803147925996661806774347350868202154988623989227092173375922924308325257514435994686787515704767193187671913624252464166578580436972256700234494391583266393855815114236655155460070688065506209664541276989781650145764288930550768947734439462509435580426159668514886058477599044603557825650041501857729142131277126305991212277767224702784529956160330886135609973622763251098965107500727926398333054991352748256061105876919489403797042094810620456141175210413626740296026576673631978680682895634515514073964679126393819784517853201073480045109682898428895878469770730692024490489495709588989426725795046804596996166164830725973930053837846053827719084294153563082369811716848766367925197821420436176505199626843583595074574067498827264230001681570109651256424632478731859217506738572067428431748150920417629673618879408324230162467007903153564126818848177656232066480377761231429556783987651234157449909635162050983019606916373637218393838224504430413257615382119882224503371573065530775452016406341221269786730126314284005071634723408990131270124326312991625874383285769177242140156474604205101052066456800146316954485479688450530808127472405306693242435222322840905503022099621879217334463578721326489614943217355981861594768081673737057939027156151196552227924923685696291642466837765577546010446465503060868165199870314072358326052487704100087806899080761001400796520176912727481201816642344145404499972107681764620109322838674864930467751331662926122212448220527394941905327914550259641999736708165009673491608437341809815162282159595506436651704842704062260312970002304974847587742879960336455742514603656660190006546439121264293561659333465825989175895502353770706332799579435123552954654126590470201837193211550565875902380259621113807115602582425749790798203333275073048101351661736074179990070878841216650762013237212677248218950971343461159438629203923981009888705220599066384491441269358068754232139248864826861917892738948850477379006224570359687140628946220572890579730129772622026891950384934949705244748611411893811618628101076052789638069060830426930362703451231031779607289337238115307712117293808793844104657432289103154772026558571422574589781962980868555208968771811205863535478557467524148411203621547694778890498925225442747878913326144040054025956710088753647366419145972020278729319100640052362462457603088185700689588938184601935222133872733540758903737597211445227558424783759606306359172703466162682477319023739846053623020735544396195011793040651945543950933566272683044714253014234677679906775528825850351866836365032466997016309262290145398545037088449981648741457804598458548054464186317349068458374473852071154808874527610274428151828439818024718421022613658708828587674897556796078494421630696630396933874088856416837079937650483609334035586579133551104134118053856363546456833688752017702343844030228921264641960141234630385253760111115834060831383854975803514137003228299136823602744857385922594793976288325401580321912320285944996092343164495198197128021042847743783746610781841934866704482676336685189823129470340431687446836013832362456408288724344622932317060114572680247624468751307540292037045118353646758626893074434033205759645797507180241161414340857878153827259523241248467791924340569218171439773004172870513492622394657716038365380409124590812297695214927576959781251948447225075793297078712652540284205561494433052158921831715901749171515575429518865245029741432786345207089145129648223576586155463155647892727125718942191590275554449978947972233942694184220406980142944240352866796327569333982866804259895795223810504512124637461248531553076152580744699302582578753388955988218301358240596837286332558314876575833998973298290221066866058991888024727292683736940104794070640259204861959584307763104149133822733482020487546561098048009024280366234927965462352948937347402133274995194853447846926893209074780547570229918030150564463178751209524820958410910117162546241536522171670769621771082685110270304321053392298700245271358139355293689664937186890081897590522737896133575792009035987644366352080833226470203986479477214401375807848862056074802057899788971379133687448609670439947728341082498229077681038367268572830209321103762169583317190263068117631640869806198724557674555047654766340717427900874683601029307961867211976232624346635244815379149727541693615735250973985123398841045681366691622066391521222923402628841758808436749970924326385820567380905981968458405163900321597507760609299087093786123928996660063757971195643974275878320560325026877734884772759166373247385057668067170032100309444111334561933826006604248235364611597172434552590743818768618077717062522211290042595826787111773094833018225150989612980007295183099386490687394416896950837330282538290982951292370202318937396643369862593588826338898369010113197100155661792675716007697649409496237860039347991298991507476403235891796389178982368974186896587209801608127853079881312457087415091025581986947432063300987417200450024516371040038568241111577043941243878773402013595685543008465103652785952724847462130567649830418043668612125700662923470866154500626734842907136421600897853880512212131844746617300733347361479591245095358097009273991629588467619265843638229312329267074119439223627460147262562550817368973346742343010407792123809717258546593868690967626841958898273203694964892874825041921701882737258873188184445509724017716968896306331025785552004184874851659520720623302629529161240119339669984894604004880021814382228239696644358194438237965833257414613822389819789664139748514515533374994582279529021211158169426642373911357247491287411805315202050407902492202094415819645559484172603693345259440167914660604946117816460620808013912598428412282398676667762514324619772061471162902591324139153015384070941391989843949075190154433309907138497795790972175773130990957252519145217740573760086021651877996926759556895926645299908487839292004435136870732030857135101411457408086731823618905062907306304221084389490223437681919730443260726104853005760400745375552710568262453792591432473489443099236507323245315899094658976368530956717629643023587543884845608758191503613000515898466704705609576631828329316821592668675490781820196204383722864193695117344524944941141607709575144951143142128056665826738041408809862112294244327141965329974907664315803737689942925366427501798367724556586892786503429799887187116893760416619219144537088861045392835623958838080924322576130959648356771448594036850557076881480452088086311550351567553690546940975664230863404416686469003752191243241858385067205696946673275432248797267083869864195537781239352330528506277390507744608373622387391264053428094781558878582935885357009969260608914348674138300107905501984512601571226125548822420166922945679448012161807010826556563075152122955714222322829352954923269402951834161028097894142049269613129242417597490093170868445478994774610123889620292639854883481522293781402191402050767287616503204058491884183830599900189387745248522259367670098326200080946516366757747793520721209803980805150438468066239816527649318896436195339349083823791072447484817937645854089897898648665862262197065675662386063543558808355604973606526826910215776936469788278646586673328408229025445996807974647192998470202092948421677100577954228830564260448242810770345700142157239480493531191436567059889031817872869761469808237923304919473877888677628609473528578786364466199032548479038783707312747384777462458392965512156736750246055592135358994466650119047459671543995989416598345759103613363893393632130954919599677878031580254585363018621772435167288364830578077429177612457128407084913900801217640592157692529939569138614418235612973150390695482869891695394109517026154659936398097799706864182876304192199477802902372763218835395660032832628320890829371702394309256856562907572859930321591468697691927240802933065500409184702347034116198946290896376460839496398891901442670749772646972170743173783070790827637020009361909025362263103113813652482882231109202426974745590702827630568119971200721148372886383152051860294351666130246604270654712947072658994644666066577767268023396616610987113039036040220372966422410893273504189597118010047366574615678763009428372508593159460245914727418698137959474559908884735739310016253297713205045218256380870843933213887945887682767515910899308766088841876208706951535176942341696738131559046091695115011337583146547315976772423808763383085033612767034777553158081383509633113765066964293471553523122140211448706203533764126714850915439526925990262760059386293936037357443109767553341432373236803091555665170532181008302536260290331982294389624767100520423029476304161492571769754092615207754382437094304821278848999737527687340284776388709353701906437171634761235640123074937508054396778110249122484821497922008243951634891965283407153750053503746198696317943187726947326505676550032910226967653506876919033182528903415169351500079370897807723870195373987860189832610739012035026471320427245800041282584517469106098917629726951431385120797833407430711196544077663388303636718175481277065655119285899199798602294378914858679330762116001879474831890267993738063651860967540710254415179544226839217491712804961171339506130247297216161359731721923387896495505038527403610408164121826806581933790538361303685453322318996912012839538209634948072692738431041898787182165352003476494789371219242802786128076017612792495910102434116315885565679962210969926617278253419779272719963283092356829144390933760520655256329952770580991154524783672437971766849388664881903741455345440000022241328972142412774267600259113887572081229383614282808544035867881608760032852730064888983863276305600126798065968130042128635559856840089006282726486146683134704332570918295317174672932109335858275396793334583523513433545650119864455180765858578536900666401462756988530070580956279425520508985401123549393732363086222809761727380823069560225887902184283302156192344343530090325118415538878147053545102652383284878759308976698072404089569754812246786365082652926087130176509398907693261673594356994388860001372183804166581366391071480350018334282201823289577955339858766761516998043468043964465012742790504052480713530737788152288295879095115758085810414259582542029441517532382933843670045363177534752993280459609678116727451145312067160577242628527420584174555645506311303247265385898070290164374688453172597325454785610515212989703502830086773940248956290825813981837262713920527319220955456845017801661981846184637319073442118439481607413168036780479923453499503238168575379340454405195041347128009825893057931428984409604614693703087574977831118545803000378261467871449177372698273049999875080329156585753955562413983607703751876872067220034756090884503971293457901637244511586574389181453052212692702412748720207941785378789050826927492272010154301699953957650351854095844700945927497339610022890690629882416678090588745971802030613992968877513274428205676577767098009793060956880242843700320319935259056311007751500251166057032760578764671577612305464864456349315987829357313838990576907932609906517635472088382852471990200082048606136235349210198595180042755220610093276256203974350398327950153462636175372359921484968493535387351918135712215858543278056722571442282336250109699501858748251827626643090956561508448206332364685062994277526969761041122759807468875833907517999227952982035058771996356534970873098979699663636707940267897327361878022120815368777469204830045201819778176002463001417377870252463433416991244969678096286811423504833238637531439406338489379851614313365922735559850271272963905252333791156001347707136745924891810150539188657177075336492094932662053014027815995567329884661391462497094341242664979933135384253583329765208477239926384411304706751051014061977859737997456723615498021977600090178793633043037857792313659678951082962141292961258856729525385808105823507854212135697456501604809054854871986233426506603739368123068852065932609138179043968351745932454589937999672958420443939901294699483604824218359825248150659313758215399739087766384395970217741431639228145182236280237890791506866401153425749114353976296003376970637806787465633149045822126695022094193423137516091899466864770565056384782503607894370095193320256966118028656761622871355083463445192513319575762193267699938904263190614801353928670768464217056656879484786812229249114550428812738340164283000934301969144967832402596759871264832690411824607286719495753543058685482971594622077269237192063778891892461016215679946805382176653155041090163854648209288234243753908196390925000478020504256474257789205097613310417240593042116105718477092061394009952395637210503329337758803693491173406085440140796024270452156230107761896856198863625583716738950896533397871023565191808498503060278427811675935411462204590995627467033098910907263907812942146369946884147382943979927064256923651035455052958388703055500624175230649572694656574873223339928910768555321407883994422774559823183031030978679544409482587272462569325917211471293276554636775922209529814229294873889019457632437463080565799233129036921432420116487323062532048433301858967063646065800507078670554997555645342596153732880328350428548975154715545811981741242688759631033399855508663592716316561329563707578401493871021388918583942569558975290562294123531066424231286063718827152982190966669008853121535341646324370453570440475498607584799553014494600102443970116046920312653765044227018953119537127585784759584092953221149534125664922972644876977434839628124678353547978259311211648907150683359295176358335833518680247329946807388159527070068969325137195427955094976962403363226337745361949120279782330670767366007830009714134826734100368360552785238103352423738751969051762540780592396851796180020079365071171221059597544089528508447734649600914127952192749331407849352570594632298710760595344125056359642992334538752660375348167795563546143241605510378159058157281822483884053014816830351599152305638521375792208652676512761134375969602056671770623368561664402791845422628353994956082300509711654384655615302245037945606812436945930270025779985430717360413473310207144507018896913218446731112270140717580298764957773899774477061078028295695711855782166836632313041587650290106161747680904022027513209950012088461065636846862216061709871164592884443206865817538208648963394247529820695456723003754231706267496212623638492009786341960233215899655335108782682332223064609083741531905730035227146476817195307539713812907969807567771233384558785607603132961341840156723922207556436581509075725238495212748941073797807046406028429427896901369586981817008742639362265927130179683693410540558371794252571889531197007498274641053310133679805248596706935426580412750138335943741068617032820411109860938931232012593059482920195723330798819119631547687019768149324167071492398804439642527798918734786284497691138329075254387979654141160968522579354089737290831576469696663238174134796878658612234128410226149742074242527772729283634556636612547341098536222012282877159751559836378867403232227746915556563806056407203241376001561887886006281569136905242626224499037171135033418679104166098961717443820857702270883453722159193662682236002060152049841693546863847530494805709372272355579764425713911366276840786147429348067299356959375986967681309674949825129288057504860628210726033344275303927672542207257466079314815516830751445487508625580309616842879020516075116792601428709425530908926143658899586405772505343150315584604341183926317715774279314946017850080116197557327654419389374026772250589525479560047203416751193269630853199144588813425027160540729492585799394369061474035459393932878479543536365447145749317141216811456473647782097310800344494273308953270990613791950703680614831137821890458856024013235552841083974000537145285045800267173197982314677211348580529993323700905480723947648184112704487867241162371613389171971207931722455602946792235525342983888044298513830377018806015196067577099422178933805286550999348705680848193800615693010258338268770532101235138367876660927895220382262647736966989536323419921137528505568005564892928082004910374069796739815386508745096327517430162597396350216444949094307100828376636651369147760995058472276912972132427612958259728657923055535332987294882826383672595155608056243712831421631092550152513567910812364093924542304049930493773256989853812716741344072148011922128005181396866431491925176485400150340077732135440489570358910359355646102901839789772315983705670788365240387769132530130081605059438979875332901112446013641352886340469430067288568570037356992868105577754333807595357128207464655441206484976235930158599752958413573965265135646401340511492855214876614940290511935484258740025270824783490407994228561705762965901737764424906899497146844915784561312297792674689689097993253733586300506368810496091387541662503835993832658192223272018932861843019135049484085191562323851314806341211296139397781640485754833352309251966689025023212323116310326670651566876542453052242116684249718987095983512641891856169550152362019962389434358183219784114026962774978023841358319638782148249766630514964219812808582478639601240451931291481604479988519146427918648661282671589059545915131011169989668618645068359689390617489868355975029027608869810618320314058251163675750784686106431189198281791732907045970753702605713927361942629057765227413627555077872836679971596772400837574364664439969869244379196509196587673909565017184047549383140999278745839173107545972629117591197941626300445772272439054305241727416897624036536086069811602029533673896210827789878844913414406513251795995270055245453459473371897468107240726168588515210597716536761105149230431671732925013829601072072820415341543614297452172008352008972349334574568169367700383614856204313887104566898933846994156305147883348025631428886319969191325800517159829728710128785148465279428898135233340252231826334237199228209281124783852553010823338810446407190871251619176201227544336340433862684740188495140375067259399584376528431131387187995121376192769991055009682988421810500930093808752274300186428129051784011312827058977649043815535592173289807797494696537226942293515751639169762393059540788027335841318510609641687449183332536415229806597533289670859399983233838694351171426238354514635947877760704236352952003693487833731901193213193839160744538592707676994226113573721462499789238431107263115386755292767850659790282953689706189046703481094955069042596256309297313626797235626186620834977403438471304227857523335965793268854514614968081544312099542255223433440963183521475013819033756651287305183086845521540214657301248627440410662783193527020644004153757490240651330045331843256940010918486042235987116003740766848103636238430237961677055234427812064589465386328006320184011702747162064843363693293429321791274138947589277402709453963614136797425095565764928492895112745033982460656631886490550203579094735492653139967532416359804712161259150316971529448038365196005770050111917379275934696349152416543349071547253969612076121432245801446835618528856512877308014863242244441813304994889713282073460609833295821791421332934127267968368213274012146390348126563866920967140351178828413789477466090778797625976419875268566345958812621738834087628049869013218302278874159183722432949882697604126814418788973402366902569139731587273082187198645307830882677427721463484707215678663358234802943242979506236077217129387756128134215936307268900913386014917708280436598165298120768583738676749944828272457148622623977622604413999554969619739627402177012671986424133438839662128620591562092381006924972806832563522446080246583380759653688721845250633264806471532804276436809046839257959872325357236850692681230014408870651109330001325571584678034681602187766775742898436966960194975279385415981563802282773429636189160167952739055154677745669682270674878681849447730632965606247869536467403320819127888772348067601444624330819436206383783788549489050037031814142801290582024826088165552034033277900242052974939316893280343452690841558516632894694681129890612881917197425252527155179204279812987519621042494907569802521317620427846707910492775562550921290215722614879087869151477791566344557925174123340684642552396335536661079434289383149197076925617107210138986634679864091936877089998878392002395424169423250725583971773759367294435921476325448136815470796626935776991179663148266575036319397867255250744920322937749170705851531321033210744508532995109272903906596063147488220853625538361918450813185508306328803664338682311757384418380922232680669340630118184497497443869856867923661264477686778587034757933234528904530757334196380274016925846975456606861089703213417766526818443301957922913664611543443430703258292964268782669993061978177455400378422229226634387534185263533706436513589238259446698974671645783523925045817678615988175422629831223508097395650603975329159645608339245881922939731040055763753130240659606471018957004716239247010321178703055950510754839381517687750545654901453317673123642165793717583977861737505340735893190136679005389880673439195093164601682726193752049303721238533003966120569887222753247072860399874601046417007845141759084234598452841571194560364586713603767010857843874752501784448103451715237231093490779483203147731283371796986124292004872429344762101091253580233543125438983975772311442646654978556026785798387754551980017440588332796039347709338893391929766885496509467986880709621037721717319769499700994094695222077278697462127193381678611582080926689983267167884996535267481063236328935926471644809519567990669697248439607909514513924233646721708278268871747800677491583142603566130668807683011317833756660718503479224476181476415634161976393585271172115884877600390747257417415339675617423601792675698039119256835554186577317936802943337627861894438917338474946551878223139499314157424538786723923665302191634148079058713073898591332000646650900347041898818640824193984585543056724353537637522763273974906080057897154703322706662613899595754379471375777414181060911887982963845461689753203889706310241989092236984226699283011775946956585659254209925403718229324792607549007718814267960684896954582103294348391917923508681308866024890359126024291478194741533539640886027481232883066889202195568965936274638527147323539491260319625919984254150932093372161516244279131178265402483278994425524574073390075803868375341546416492845875805739890645412816263001105477682272910151199560763707604056926791741744187182755191198953840927305641180654845367569261862946896825470575542092785239657223047633209248741876690615097230825338466956173498045989013386841014708404565330744267821675916973605226959566353418814143424577179754026747731261865096681492995953605128402802103369713734510763052478243041473892934749091224997659475572880290001141746688519730790895680432250797907361885188414793386000446755638125285346579749299684393075744733651041366120231678866035983072131437846002930862292493540827737159124434432099647788265805648055421646838547073213912168737420299801175803897504988696683668978721226275814674313799388283752725906399513286284763299276323311093970316055748529970265531901670670041593493668792248620651952327697387266092260350376450733183493734293692095213895463061572131116041356886840665006537667672742614830987262430275236619547673384467488254622685913660453253648313264331177003835718390698783737905295726325384337111199313122000609204356678652994477267730010273765153533626699266592533167966583397242869884013528211371966971725693579548999409796261561336490110625754546691866904510116944056429630516335351508316671116683535316849268833301884554916941524538281128969529465595010689589013264062881285785033715769806814037848410036362302101802156745245820789156337364826257371917830034391398690530292586451772415257198128595644616396627757001091910516585948308636648279798969838636475417058446994096140781601398368183001559010666562768114078920429391991665881361828636390611508547720057790265562924786218114101046518346092845294045921557264845396526094324904229334219509152370457634697468633967799161453438851683797463372375001944048436480807161559767730876120506322299191038769474812827386377518268341278698015110850911102045046103529674983733766075850420140866412726548930947288456348440932369782425716559710974267717545921941305314105770779693630264159511510673635303074921504820584648363426500622501253869432903845794393623324365732736170795371748683476660277852555197963955347845277359605436323992742915575789708438000829124462724963129923396254121811084339905473582700352747529695442796373918030567226068743799394837565689254872059833662989237293803676153843636847553625122639188720744985634107292797145323430932969661812774240429459831822632104146270167400624599224286757183239137889126950081956981097204822986657375876472145652697265187661341111154786860286752301259296978335017580049706808643811668530634567431967165416581896045780382662464564645474855501088307642269997380962130782685212185517484007681952487767923895447500622585636793407699337442375590325127844381160009236374774021872608887626568311379765163086858989126839868696423647516948558573472840839026405728097381488535820711336260841025130191776909016101961466645762273336072732465790370243882998020270960265512055756292419864385399332217616623112558407888512225952937332737111071594014661606115454251888328257457206321411285015668564065633312192807871617160784788648783415689030260506320581509794511331444701618151613261433127133497545141208293655429122075403191248226297801695310797856360638631299081632405569261482135875294301098775792802022914932102595279279542649166300485759983353544506614102349514179641081471432494148819632819112433796198444439209221087323615834943833707384594517975499623461358599747855760937819192811515913762297507731424894154529994352535073596390210531612326900426597646132260917697594394299811688347172094500073375330754257101682216602388653205232187519960534312046086974114170480950638172736997730272475887028171460673017923086175558422747244384823606910693611127464141811876335055024312155768276467086395860379165811768797637601179283643166635278724553536178240967976113016502752843307491599027956523032585821126490436314329959260929426139015996260353102195941100392470256675780755713857440457130704512535928911693688840232641287453461697198587115473553906543635151219158138450699840844498784360959978293165093189556672033087961797061646877822563493556067102986145289628723373372243273953896171271262937175183314235856286545017482430228983187076854163383884724937916019433111187607926238910829825692500214063321980359313790468866849137595223660044525231999141385170317855178891561411275942487577546140473201659159968817055689927737548186670167870380340375700528664512727698490787179900393872990641535865294556914081225949795875979117695542726770732492632977629961374433720889303781494813346353171946150563825103994711597254786315731464035961967715238392215581833509236954510084004935162654350096164044749150134837836738351593136778410189608439014730684046109502120464473054485697444861890016562285988430293679155346808600188662020823168293658550491886116888153297196209878871505404637570513100800232488091816552552051790462016455541334943023601910581950039307366404017329971684204586682970388504153389833016778087976757930047803359968857581205796669456924850672471985664413041910721389149634772133064761369692294230584262695874036691645749572020611990350170862846964933422515523566452462416306855041017059100501600610273100596434432769662227835961096991204958676169381416797603402439296953163832892427449451373929505446113500176588180929218887163669230623489395421458909402357520456291619090792231972044278861520147511379751298474475814892726423055595855831766280681282133789728199873639304221053662464683628251556895305775229430064478126427484622386029836526539505926293577305990890412622918296310127221664819787906188526442854836293195314337641274897829936169066007541407456155491696108632295617570642055372411599974177887104712911183259790248916914452847203153798909710692103409916487915389688773725889098619183516940044888688753195081685716479032249371970289664717929956910444294030521988080980079991182761130061793926316788610684519237729130593368320066944130706948517682336463946686500854599388571929651363320518476539374216972032310055721010627579488001968466234031396950929954987103783705277967999729476161086096693117146828500117338313082861791697000497880611662281344234058290749592678124876687656143570776483220863179136534348263873828740676244780138213471339471852143658945013140364392625918334820001335368929772646584253073361553059525866914191988643324357657038225845968070864158109833658667038519804803277052424310293598404819138303019653670311120570786489855898846860193592283825850603616909298625582591178324208343049847352591679414049613173774774860117397226047892029479495818688077371117049211923885656212252551382384909569557562732266823999757863522327931823971159296260669804380748156229158796641752781835584606143847267890154554187219566837837986136186878308303901163880393409880718378149140312340772647252560586673315891529340994860058992177108381212055498390634650090591456393432200379763224604163937601523737200004680820979093443408214900522882706935677326471067278356187399343525562423589037849794843980829633187087018151693269453980021564942014644642739364543902514312505591270507244276694494700763680071724335847473587216792709219768421919309486954960880575684463068695464577192034819198922013255415183893539589539597586478904319725328268516300848621682432478144389870950500354513543274876175325322916563063615868549720769801335914888641522077067307430384871519544878395966900538815459466815408397581439825231032294190460066377690898028121454441235877453899919945004956837297108605990669729366676708330511434362019546606759256421350128593717694044162556857580262222307768732436653280458008106413231318261308340814761397054373275320809767796803461348688245001362189649218065478178853436712136554286598408849568356386734155677105125061078257826205705411469966306140894571487807293906646277787587321362342646122257401623995094696044979783724415507620657505549171979942379090260173703950283320718114246414709449604453386480935853896401827046512064635323861451442431819095725386716942007427428849575334758657865151514774687110861703254353093165117066513085533445750065779167795787610426027539364834866616882420916884293855658053997366982233468708642508297446847092580261209687406269490582264554749296756443733839831453149555106464235452681055650859283277294232280391377647444335873808425039483536494080132062291870662274113508800034696584544442717961841633100647926848001301599426303839376669301628125017619464141062129787820861412408797487072125865620036400858802761281547190375961024353854728245650970734339131829279039258756332357144093563927287206725136027630188450902946301267270962549855574190477272053649375636335029409161264314699375967804687681096823036548066703916584905481872702271785934227532760621120033518886170568081746615057442989144240716340621213399051996410606268133178797529240600877024312578860498319890575047640170061073903314725711716341882716917621343048988623166729607012138517664044039050308593291140355367966629977566240095890993943323177046042121719706081712473273849125753071660805540491053757264494297510896932824891566710963809617686722079129729010230363666785602095389934047374637483807251153830381125399614334771041863311907892323345368323436063290190180631406020816019917354711277404911051755384459565453708178228102959580459043871642638161141842855041544561609376277878620729832925330275029151115989648438686562463978825992217193999587786545514289868991474392717657431403272041217469916811890014290118352295938820600756855653716398033264333934784005774454215941760977592226762590710496042013108550966186521753586568296822253282094114386819664629822957539513674642580282970303980677842286780938243735305641123114510142196058546949951970044558834083036061781112669734353100428519735742270252484754641565089565655969377886438277967508440681799259534750881343765013397274417117352312454964029290522806206624388243767231466839097227349397401945976442281948663129404769927281043468934173095280373283985800847905383001286845859927594924970381990174935817390879489363463103732561364795957802927989173844858597193038540700981326840582385336251040881907796507029110447122741156651460775124573750847121206239659755354302803934809995912968833206781060557918291482310186012487198334438885233460470736716101295499460233939451017329855581799479980471567546481690307152016338117307063780685953486351727262736393060095757493620430376691056562895278013694932433939005157188035633721641614000719231585327766160604603389261305748710185351003548383265433792749089860025073955103452129467272694984167868770266477965378604043544746947142294957287974098315537447275853522636341208105415530745389299170862811370821065108957328342645221685602423704765665904153019012923128343414299780041749166854761434657869240962607928508618254784088192721345459458780014315535673000247883256872623886441573253521976619767245728364660558946057524492751981315405708123699926163633421275210443949631703679720453033049122416188226610983718997615322962658307366043893507910926191503381110119696126245416350918155404531246290844418670661303267658497329328283594433262181403007766645008141335684349688395627676307939987635920025045249803395742854747983579236139338846244127467317138567113552925077738828026656160174465621170102798473814131991401582891060315726525765149895292791730533249581955473835424077130628768953498756870934922211372384535572105625135113284678271793456084455928855868100502388519489881767941549361889110204690912672214253342537308216996137719174729730675122851852125308707035625607632322473302457593898977691197004121596599823554991370612283175787425149960760441725814327478331202264542275509273280899231175823075268741920684882862660629380102484146574026826380824161984039646212081406975075007611250933095666400317314396817243446711570088111308709286050631401917206138033827572371296313434983145953950811912996702854440236720223245770522691319562061311228109362929718660557768753366665726397243544713047162345147816788111731747462262211519405188061094403210253532577414202016021925328108599797715066536973127020071455968628803609977203750712786603123707369156957011461741256982214877792025750111754671455902848970188206891095637887054355662530667986321225096884970812221605159918420424246613760786295545936245207378524655892970357341782148918186404669568741548967008635552976792132711964599837279438889436560146432032756784706395425548753342504032400565654949043295811004263281532670856733194993772488490418853141859295426896741454752421619637599392038126442640770827796460532107153433004490979858614467658207289372069246487431807150767992971544405828135488052462250939933893790546046813911577297270819376510027374881224737902241331968954996526629126868838018492038674248762858586584247535545463121134312566512094146976228475192614609830142036090674881787986455685206823886259897898644026742035821284784831437073933995954553614034781002992492308473241801550765552950074594750762613380995779640462101925885280346485512900193357970412556744069179423205162049205435567973602909413003836295098648839108728861710639246002710538986121529413685928017629898187020127058099986567855292588034795996163323462145933018431287244814470207462550818301532956334193007730151645056034016508331655185329041978018547954405390219748333925738823023841990786028625341141028320544780771560236564486883346684185027752890285651967879347560634421162654219437719599231531498806597277511515946301736463215995268112879387324551867843752793261504512100894271669328186561671119714077223423123822318280811685931895394674668300850420630252896446484791454726152313570752459682350516030739039608990244062201314074750984452018185583010449362746208690287128155655438040805648585117176821704652845189004849047000824695719229267669269536156455976363155411122001533559567656323456178875984981633679695553933289826393942181045206390563270875743707406922077290773213174409782265582125521341586839161842412253144544747909282616777804175707641334409213235264739650260440384813812156944451990740260465851082622333195300416438814371572516549995667352789948259066667404717594715983854923530961695045528342939130235034843434973180636017573346242097304526824435832139045847201734489612671374223573194618780067163018380002899395316290008672144986762710910190625859094771275074627757826661959429104300065518785424662287590697681734359285680559095361440023380297091737567404907666010923302635156223113858962610903880912829454643895575849258836852895790609302634658216122574365274256824515739023729157140357433790299037461472686708203072795285141452269465319604580930935076397451964514954949527218811072796176463474121211867683534278057296764469770074161121237417954591376567598974931610424307654923212811691622037713649968154413122382357009349268997826908293041010357033257769501849885085488161188911508547618264505189891698750158055942254441529604018001371471876842298056619225401498148597510298611754081229319826211347566245591973627305243907269091062704966555181813488137324147041400662554428487017040567180941295815063080516633287400084063568899258001289606321714160253602934431574342568658704725509446150710338794589572704279977194535363810679735591191302059047423303089080562002180089411839822890480626410586509084152160383641748674383615232497430090785897333912335910284495433728305241737031146175356164271748373505377768887731082647050251981687859352646647872872201439208946851202421206429392828921943999867885039341056532267230445071090534340216849502105820692698974012414369434364102107094120259048779838907335944276423712929063852846827314852222037466768083990875939874534897118645331648853580176104490278401908233290370783000381267826437895714268897354473148965333262851085520165202292975623827238093199367813635712142535462068265639959671857001789650145985044904907282400549637525455925100917399409004159889248607525548696893602574740144221009246658992760057523060021597383929256554026735110051392061602097154942188208816366296472427284203953869458043182192372219145281104215066534696122370379234699274400015910852909857134797100695471441985902211898150556173836924010214749784197185002951191829693460982322779056044358987475387713046173054709086019170254356309759712616700860846419037869028845063483979493886339827503523232593431806494497337052208972211451172290433823386306711094744310077828733158928702675013373306956293163800143838835040357471964414274954287827394793639721721321483165586418254938198381658050785842640595413337007840239697169818020932099462964849624294310407548859078355485756708447019384306566447238665727762702070961984653376313132424676297356806445723775830174085143530219924900273452140091294144646049931689609297237472755710693508435020524216564166642750270190332349256396445988362088320667726007380634811198683950391133738002189587602178018661745992004095726569318469628879484354480414799274401913488410920153738742667703325574767482093620063689426231151818848985159396347636862965241732850668172633181677754663406341264657023089327640228207685166823274629396456393072813564805694209192441476062450446237814410018989032183282135611000764937842607047476141968474203848296025077264524322936258022028402729541373821152025881958736129304347473751529876008830628319619733079903156535453320352871400517838446550544140735557033462791606755351375299897881743036583756507971494229276823507951706689955436184819108330604758397141744367551393126186968176913131122425329176374182099661235062359466047377311735814095329641858543874102371619746016213756115855662052683111936699620997980797927136743358582553407129197064538420225617536399589685958235761494167705266310994085259090242441762259566485642135128683760281482570908036572560413136084596825490691543296082073642840864681463401924010784596081424662242799326917746276875369912158006182214519197407717272858078637881797356339742179811713258104581289875520614639987182138023289316605660490297461206123524995099998933550259382052536251464125995044230350822115611511865807698449024042236533696304410644024157841135528892014905900078362994330493807057259610399715942376650110585896809959644410048677431890248784458825529431008751536215741316447602119490602251978830092400638257987246421038510598946824880175328341786423224504939629313567023954031183192663352344960441559861622667457256314035688912863728273671734076180810272789677463749154701512216419197892139026261572561284211200619130419578128206909800679458574097312222350304696541685217807391314830168319214162272418595324215994803946237867359798286528583467902833218232335031175696867265704031095052703315957640687903835785003055208266181606485995541976521584814878237875120251711756819116705657060137900551066586536430180798455427990449436268422674297419157550256214593272093215410372863309859867482652685069569466402620965613312096077828341074244930261776979637792059499255287968791780160383864732707113510758610426970554719484405848471987282245508329832303559261531259616607527855570780869387359247316017260155873766952049724011028322389788164801634211525319873662337620923324963739570171408344948941394645411034050289878362199956461718663333552374774415008507392487462684641260762233768667087694704513492506987338377552641153206320819230092006717523200584007240676064787609794041192801615350501817105541016806529284986151184617509184046253043367213295295172020001787870999008794045380182439825887942662044290211794349626781768072140645356085943099244152720630574517303757144565638675341910302018511276020832025694699428426135878500661614508082594620706416336697140113537980060583389879844773557514220587629224139691466344281536866537479091616270817149962966904446828555904508277844901580326312007475871118878758324338813756279169915090085742479335212487240424386473254742391347164086849668118365134232206599583900780947902076851616186308036617602754814282525045695574813648014233804830244730774481415437176470541751800907534289067218778584798192905645501490654766812881905916277635189323941483645190924296936625987890223667089259652616949424676286081962475237939349136060961897830158097526274155241453266289859178150123905704947234390936505064104682907349631882966620490045131429578926619913695462057748547097135287126569591057962620531485234445655343152626410471835627926231630683123115752721437309484433777213866118982428851225519851924890818273411033083439965012637551891167454719927006023422682484635171104785131460060482717428476810524919066676459046138807624031592793453559991698198286452472359559914923482112492468223832452666789825367290872638098258732688272059891982282894964723444821104499601690776062430623242249364653275511214708299252702823019756793947835884466473309308834081689988430830528862938619117729921302408651466890214633912859966846994859584826100573758863909539118562533989378870212637191780653855656898553166098920860974176272285828258028974800237349207579668675893157678658002266369901904421920792034885920687975265699236528289662166058848300880000060705276396369462164371079803195465169637357303616623922604075971849209410501783182329649718245794036746180391166796884578517242555981380079385222729008776584953153302503212870547867609674930519284371552922675006488292710357290092277769783614593391255846931967035023741846603224184883716229257832845839181991715099470952094945527931892451939833172524374736619990500457127333518797928893028530515050352913227582078245998154762995021256260610683590671355838720739755178046024928533420353785919650798358758655437758753199064850509290014477582396337720781467674617810208079027001087823286762580658142879953517041848473378825105078298639127114107569559923450773174921483510031901763003837915243652182691740056909257337504996859269232103880790443152691762141672050204350787863028503898555991736089397304286929242435479888310939352512318576811332692406279999842162305477816494927900525687065418715737415365566632021186812520581832316861815192058211870576045859637751364712245669134299393741643718390820361638073669102725007919699073684453812292182003975218777339652080888187776957922231252928579491446743688925468472196060561130252541519344052413130904273039052031919791238988640363430858759234580503465026706965849674882368553848101613915763111473846838925396997506148593909625213923036908200037305726485658877914134389319221006145666490104696594229976456149107712726770236761076554306254020555025460847699395174536468076033434083804484740808859426679779312147326155813448505139946982796088999918163074866855025443873422773015848988742408898923162155263135123441898608228596006523378565818714574737499303746070799246165802374628595910924739510487900885767203693244796722849602543245487744541801577464122294337507101241641551414363743232875927359152501497425708360795255669197344096101786828148138960681135105876779588860135120329095227589119463448838908441105153202158561997422320562311812382120553095753869254886854909662210258494382030511586368298804426237469364099109894346263439873841210848330577433589049822919543143876807058114923373616978567066040570048670623658109118980665371327594676282744940035032229259424012600894635611327173897626576391420519336120149907997498822248004946526285395306142734211234944203311584551114561213678480884515606542856670923242417203562976339693660878208356884477467675242343059397024473371525720643594803419735997596303316824476721206271641023632253716146773878423999424252639805270973933870508804536555944019015868470389027052869788538188628501621986292725934826603882008632390103389019651245117840300235646641240564633036951013210551558441572996275325032332674238614958274287759038585530075308640290277545558627006224157670432079788292430541691881390185113137824859137078199603504881717807875617404020470654073655703485924846852397624189312857505730465003372400062437417283255873702513685998110683945390831320636878970823842819405989001217941837658146211581727486430893413446549544929999956602244870450264708051493261259388309703010409830668483711488324075973554772738978207497693324931604068172101491814036020169982780218605237319409946062593091574971999689289650134517485680840183544715211328569293946156910074918048483008462809621150027705694025112386956790724150229203298065546269309699973014289366519806660772382816754203542393429701927310212761131693148118272549558001144638493594940771296653557319339778958721698369890724492421750176359257626397475889541795388231161809073894063184904726076278284191186934645043090727023197020209870739551499695086988180254939994780274140085381070259826686589175126146341359750655747023901279184284262567390714318249271034484484745204492662421499390112537446343253324221467777914795070875671197192530011476743293475171692386808458851388648122090014855524534145611096603367338126474268302884998839209603545461570861853868523204123969068322111971946318971621856137421381343999611607326321178593700697861337220676256552044581931595156697921887046285028159641777989595625456712311412595854360598454509761620999900817033858980624792788867897425107980858202142394514276250979947963450725398598787594250231128127859848128222258629855902020136315122064090711311276808697133916058651807751561153963639352089921147190737619979451792311549195315879618952328239445545913169542558542107630856539064209521712487243706968849597664825399728412836334582802843224047945972112703201279258990466435942367070700321531667948259986956135220012761568230423825855622482737516388030464394924216260794047251316000488066583749438936991464648012091522517880632104949735499252811280275612208756096057720246960061935509493703063890235386633372993670711203168076252779306085490346993081879206653901638164527326600676226842185848697461550812443866153051826141860786462692925168582483881123226118555988623164038263154039873705834584229483962346844024379100277891164996251549279616033565573554859542650980893692029888260052029435617562546251078694056356743477882065984182680144722100406393850406641079341442347311108086554385478556674662179757790199984693771740022277447172039953948624543410936008130543916340934038020296427292239283254138794854644569798442008704017787328488215846872931311782630234672281691503275394711133167941434847417802387831715818843502348473450825703321732817342623421899299598727575390195889247499863576905002073631750902791276048785114430376257183473139770455321446596638288181339562673819169530735419667530912492609396689077562186234949824042821631724893419091154564574279944252148080307957560392905033269842105276280404472275183788442438584136338467565307710175768372686590978593481209765317021529705518838918754661659531589124632308541271775880978162533795169446444028946703125873222621288358630066394106187592772016867992208661957088634886498771986860251840025400611211211616542814768988382352319397076557796868008035134023501238872958442468753114510822628748323802250413782567496725274879012096131754734676795688614556553309937963279714606982443386529331157823335860359923111417625545121305273767131166412374353366148608982718313414603030604991390768629281661478482773543982277725699900025651747491558503466939307506855149366478449479471710540284610504511402228889407662229664782929693353092984926133580947486297636527466950913984453063307102794656505063435920786459116571470059287171200441183856490981830161068213627097101396211479566901954764543910483241022571871316379610004582986282101448542110803311267897844806651257282423604288513731904474342088358552451224377884660907272010960361256421267192910424614615770803655736567406772512725214362008064543171710831499986089544556051827240197852279357186795711323752866211510128181024840536513519465925590858868727522266605233531040414662473111971936677645119668196628300864164383054633730463590032271433770047395983160961545154892916999848334543249573896525486996136973286484645403004607207874621228914571841468361502788304045178265252853167050539349218069074254752319554412815836847686385584133802704246996963915951013299686024285958839994987310984375998262571305287268555938878491177045714230570801714885225449653178250211024348679540239757869799898838219843465797585011042329062054574165794406178187028841558360228795274597604672831074956271618722758721168870718570384492669849684651079463024598016341737081270032731981755517392150776677869888024699173272120216814162431046976718017943130591901034190089057028745337113032792031535518825688239286541366745577828506401706845625418381502145341902407796528311500428949536382383834008608464035137717550328635276538442888833639947119807355918359118372942959645372391249884914598268994033284159747851804713747137505132519000518375701109868703896940776893576228970233713377230988476664626016763194389928869969356931650558454312406527027379593865078288045756791073696394665398152281263644854277821935719196129533515905785563791576674082577875226390303324105679478488024977610157522969000528333823055878237264712187258489052572338896664933599269819155403752276002447858523585188386015166369819151642282519109193670399777694441185295968653262580989597403288259007324750655145713095777722299041272928313834430987554914480897506328073207653223739780475099061974315582534674083309702893284620969129243175051779915326324362716965822851514822592107738286676368492156281727214243470218885328172388367889358672149396660592492092355439938289928256220188063846214988278665716813613994644316516247606760396244112582772116458106791312281525517980198921564994775595512539937775230432886956370928138880479601233800577546462894249790155613481800444281647475069652546756833369192444213036874738918243973990804261270011623216039317293485235781073565760015034231967140936657646874721166542079738839992317076548036873193416831311604751390056758351962332705849387771653618065088716694326031358241618126237856471127095177634864329758868812061021776252871954859779533512595636621938202464822375602760921333432415597550754145779760987153814126434096912294530260918528167736689164349727238081514581823779003988265434689809906373316559385009941971809210863349304990201377041772096751223295948583038924332112943817099008653064193756868371293240186527470510973227537095708738377781159937692584624121358233386162986285008506486746566222936356037782357682875640450435062984630927477302556581257584419835630036477611881264841280843540482307106895795096998197818366095197527926293753279158843854633292495192590685051510840982407269577544233320211064341118273133307012944636504862327291996507842385937457853969702896191379052419504935193938992203165759476636924020811507376155951741631694074430662023356460745966920146738379982007494554600807993723990122991906569489479824909942961383675963447824658109406013685404611771534897641468057430691519325170401136151858421571889911232631539925787480004583670349950891363014849689775221940486864181381715518166083608540155958942925957657923232526341984112813279232407504260191103676630401887557479560089320372692844744766562011602053749815921630144150086365577410328364377922649767426534499445796704418057662748926436461683301686081010712419609485220401643074803767155102872007047072064200797088641326883354833388842017697360124158870545139250139364469521871139532954216361405241734276365274705062237839982965404964773722494734090501123650017727614339125650620309381093393634396986613119392463500916219860857131392293562820728478146405045058240400241007070749488964150800028903037086270513596453523208224313467840374908214048745932030962069215279956712706415511327141499254924781250630648529710559722624693471404669747878222690695575883401105170480734678027281684880850273596874198002409529590444679463218433233739358712283061073206074553917615167619939316170953091808790321350576609935507065468243714383425436733510911052438648326225694537071315752567663110091825138199743367645894178109641772882938092613510536930395872575184251307702269763112615393011873419254247907170416814695602750549838635599414074393877528963699541661945061378075914922060196907305010210532776998098343612285891254985012212908840046296249233658522939810584095433711500240209321077352316495062651419094661932309727091923228378983650343973399184940734922838958945780718922971722107543343204360635490219361150956533475381742883050822448742783161020899151217557470624543823672807454357753450862506338329672174683554303531344437582147070037655995253611163537462544732993443839556011575959800010326447359012165818634230890460452077462117118649893886660265003258996595561764636097503592094089816662948008473730857618446595325751905276767763116912416097344542340741619770179398959189290965464458849532666370475736159970179928208544269835024901764211941157534207715320778328730475497032361897455187982401799459387810426415575768056015040800075837192643289828055555333275758430589953130260146896077490849465091819458055531161954572670567515977949882819988885243998592825632979713070849034460600639013121931179123138024411134382286367931761602461900191319802880661581235662583705097592109547148622131675608638180126658143647593931261877812473975985580451528712134025788287074378183051911862133837586584555008220478867374150133397126200442752957095203458715035560771924677751882371024581259129144416088901930768301270921344723392519153901560334650579101962258137848667693104269196593339710539453639538968203759779553067127137907196858667484160702101376251452280703402483043479784228770961716422555143045591709413507365286446828671431213078435113721536371020983197031047475818715905997735301836092304865078439377833879304529841152258691513342325663260183656926974501761049702795890856590324068817171189399840892572183537970322194635922742109107576924275251970236441809337063064697433453412612067810450885607648338803943714671072050648111648375449042113732227027527168870039434476478535600413026639278732193590439572330944548906674706635289415686425182707795785513959389633615871795619335554933691517386269966577287892966062383346553429606070178189669798702984941159944603378454504176873175901964000437245011102804009865798814633835114092668235871926100908207509788418465449905494673300841171678097845291445338794263639240285492941004596350763021309096628999160203916273130211675679409099462468835025180197869884515999999004860031401417735886353429721793199903193165362409247859091757283761359503483717728524494172676283712803110599258026380168893853044957936866916578444311142514193193872030956941590856140170832365105679944523038966684685569066775924127811586430597757394794471312559376180999618058980170892455182313321286345299535090547900033391719120247101234681572289196255919607798112337399150225956860861774447530609686490092775705278859160056715471970084383987062655532280143933500097782355504524061613791833511154791880825601094926085632592415427746997433696382473395835403150140100583179827324828694698558189241806159745103241709260756231685660245287022934482833510791660736785363668701052728951635434469762691836016178484558067648120348751342757252858026275533102959356485503392316018192162521252296365503876363563785078801537182248068124692175485018383487970380752461018231565000785164416483901165755695251879721683546493731350559895500593990877059980554676095345161242658384380503573406298361802600285202657371468124457399324557440060977675830770053378130255872211758624984594115817520840607443419126108049278656155648550448615374924033243930576171557316282700883620510289038962245708848364279409061355388840076953912162222061879798875779578368054301164820381722521915624377694365276911191388875466658860292569609762023064411347486115310573015358177773585398599164878781721991331723883185286612596886638404193944807417216511635068754771238057671911497697584460151246864597236900769237397747117831377625988512069905671183536591823445178116391711636273978454929168609101183024036283630806827941499337343765426156592691072378607861783342858636962714204581273170775214758247212123359291434793391755626453374470113011531222167499025175603784689314129434884083431892400728600898174713548941246995728794193848751038817467737033161088431169064851527317924545717643797162956684553184425761204094455941650717185779012949728590039358653963699326869223045910506231953484348718161746964247928770185581601170286529568182464475792036115532113149453901108167691624990286937332615197933151644356942435946109270217285123124190400110150608800906161236564861881586048524435769899479327809154290393735284758846278643637753407967877689531236670192995993907536957020437921133961870333492430284445513767842344152089210026234094907684756155770237913956596843943988682740106241291103100581826925508607363896710833776187928971273543215386636968609029129744192761094023429192750953863363384059411530754100726480603285086885127593082292666559964701946785406587994602565420125330822497181050606131470598658388318681913248477538039436678435333859041124131279942997033136133152096543661179213643260654308894683376682569944377220144711625342631062754861586927479082583406418852320837994562308022718453373204660414270729239261321228693579306884736650409300091312379311342247549420532451756780581715655685887236581367839669022806949370599262392780178026765010747908386560135694421825041986554104590350441317153284341184531344385560839734629320005045204546517436769185054256372704783010133846954382836473556617817203661229588458960616792207663609849434886927290979359741017680891973004246007824629139813992269256292360254406587459960483545479678048657954207983379452189100713840710839442425584180491417049117774711373538534412000442493526774659118364944699858143574734385183056443562911046447082186265473672736299178204863044269492896025516277203107650068809795248569242767232138009688090175731318284033877187714561977362095103691319795077563955130887760340462114721037022981335704570091250412907768845749363007729880238133371365930731781776008270120723700036220124586646467376726005807682078685943533785395274890676653377222116928250482100656590581164034282963356254906172148027973090840693485492754935912178507490977330665081145029864174843372713806165273078053980130301974903729327620075185278455231852764615158587648534168833780741134294995743206029877279648900192734731890831921326632219274715127701495663043816939474190659303537976216865461201935272925293849485545316025858242165614057566638954873129845995274314181628395598492849409850459067616778644597681466420002247074042860706399752387297762064885597225680944189656792970566514751769511661980010479442941693579338714804485342939820841616278196907452784259245174798914059551378189293730393588898660518701265435291733191993421463470947740358966467217910666242801381683100187683667909490089200381166529300852301592476912159114028701234600394428213861292885067097412202778068047529558324009681548074579790157335242553249542973791324412775426124493512484901788217532479088597810576316770378285313300851839360347084512900089660268615188692372517636820408504954385516447828511140536427792812115749313648395230708432443570262023214567742137587817071443547456434634012476941656848995954391573789064445917895776769098289536001339421112903014300193788212927304865649099438596769815552168562425941269588130458073397700987102058210281900777613376068480797099597463397613194364213636571323754285327342869185578623984565460614243279325653598583915821714072897727867399352109245159882995106119368315796725762778555674672383227776771372914474028285072888123307687499397912412094546471703305135022556954232564320315744091637352169367773382999439299137526772416510509238371630526008862534809247055048115187602463560929983732894668946517714277707257407617628053802800416309432961951133854718671828860832806018088614305550644927706951824358898522336779835139316898527144376710427172865929063909996147779929951335473681943592276017511696943302437930752799311991356399510412190817189238224464718079425003092371468244561807365009035812415274435179386375125251016104926368949577728354441962805151450935682711159126637488433323072278875887612699762623371338937090136588959653473981407386785983299502957979408141005306557160460083972170166410461794235211885644138300613076986112202514619344609138095692746382628598135464286538142826601045084742077963536423392632755608168624793227264540463306809612966038299790818802876315998292523315439176435731966974902841367927978745517237450156454211085666628693392497158487702880198920690919423284351041276775818857558375475316341177507217944465783972077396756226915358314668897764797705703590172347083737323186285632704472865284808344028420778589553130232136642491782577378824604632136808140843409129585615679818958136152507062071468857785443833135407254265501560612468662207020533439066202310393597085321370184225800874117404943815573568213226267137776788342572850477839217001415708698137400813509262306538340282531909742586905094922289212714018744497886785547522212355073335827248531363384682627482741768864686204379174826019722461120775393040479608282205122203432382413349079434697483695685729807036154629749852316749818932121476896771003990886294596901115462920575637513592762178992248005896689562692114405307326182137710771712621323933266585137916140752422350601138356650752290350545960201670101913546517896059096600366741367162032969974330942533175553696621630855427479201354530351182633099418683947867597004899628944476430101640480829126064758813169930231242438291840308826591462561547012356624922456554537563759771003111243164501797020362951557634159172562722183006442588905733248668629169532738728825589187130933133222125059456189708206550939918207912794880516540291107000230389740440486654344260311868632985897072291618583573339782388999774378689764586709920285320328914844331890779425914650335043128451398849395533135289011031978104712281467950248684805937231445295687963610812533748505009822454608853825124420847572116062465604119224767456444319568563456703561817112660110509631297106145214018047011281223945988559270528960254348044879827600657991121729540506101809844123446566701606881077213429505491470525332381081492875367506705766483685272680548555714855325997975594324641195187661763736207750509020988341608795662214232951836713416548323303800018232318819511250767246264828453482592903612648834538911103313850613209851074261491605287309026800533343210302478908789885992030515105297670581908881857396283594618928221262999826109458582812249785001659813399771839988537626355548181097835371473673275146542265890695451571441863123363910965538157321208832219305788029809185650414057179606858893262517920364029148542380539487365035856528227430933649749211775571134630766157051708680451399712393853362338164675918127371572319855329589489175174783034824952138334269703039289603408027348145794144248588731724778260873904660508038745098591808372295414149713976576055769486821310679372692546821245555628233352781685658865424298320413353620354816730637396316936411166712233991915545403227535029713844654285638725612778571259181958304370048729881715363038299898775089616253628681571400704273662154325738633187894597621669224146424299116506053826383134407522025806221544672430983075599796540393268028065694599902410865299887261785918252187299016474747416441391483845830929465292575270551365747294564992616447491751119824820797526357311304056786867377311808344973543713961779439819349393373070927679088011475231068641179590799662179577482513305377701042806530773950793998891129376922039724715775036969755397336556032556424142516985260333170930887983480795097538507663398884037033418761412686192795230869330588540989114506581669867850695600270973791097443920308554042297391474070496199426719419324957249621564334870913789643556122301152597347761165956429820304574871375239952599789903594236382797598071756655412457912823290935977116792176880689518097432702700767370411738610291991463415202415440898539193450876903627224841234455219503618389577703453486242771553053099225233869493110918404065272522644634206909694736630803738925329894811129900604753820647455340723822202145834648643711461334126006434526361148532468483148192125692737912071451858160155235890926094097031779705160190269175431586412306509939648441495936094913621056223320283145140294022638304913081781180165072731734239309889850426567453838508118404292039911014049686070480657644887877389982032468328466499405358098972561219564738668800318990829756936277365708771509231646063527282851972254488759207844463541674202803584018619578318936639655246235830328673036784749804689359499463042792557662528066645929856009454984096196934408163584939760361700871058992232752868459158379234035750801880158920495965846152332978634367058113745158935955435918033860306901485012029489673416664451457212157169143655390206859702876386917264323327904281388220331883876105647938999600528624283978472790163085312056628976512920720446848627235120276356019011694287855439632980656445100805468761401865385374018066098713770611296898338537746946117544479370240129326539132745993092662638712547609416985101850808438035139936650585258201853366034109219194452253959674229595206476225614941536333697153046926682511105961103751287775835028708035075599899324679877507072656829165963407435313898411075976246105671124188249503996900652429403851790221609397131956008240311838651740001232052970082701504222208400686972778852286583954966412892975959850550055577319140028124581573793098204915096115063403723484436267465835498688019078542652263379125817505714106127196404654254866335454590929111686636967795095976639662515888323850841569659324974373879754317295822477081684408721409530048371645360895408305215601571613463413021743014505356238032278097639995097904906805014623892416747060230022817209502284406441355982282397791855799615248110031246032063674169384234623134579964147727933248818655279612198003313230104386585615970377790277055579116506108310162097741156948170927993316517587406299226586758857177851802297374619233309596906323229679078218767180094178347797304081649206008537505872072574354795066131749582833286962232059328225307586642853551803480926699141812396488622020169216179129489705401272730224797047418788708562425807178792778665036802260541374509763049111424697769473769696705247288612572911056237435140578099983234517344894930611130400293012309096282122797775570152233152362628743647026852136676129175206517464114283136937430301110851190144816237642193562730963540828110812547918412185442025686351747563639508600024838785750593311415684021407249785105132685867042188912617602686072399594272456494866059520520231719738646323754566468794125442431853951176714100544723028751893241324114875851446560872549976359004073102836597168480298398585759780627907786838392305467853190143791951058831599938425256316193618695297732405335349044179278920033782560960402726311662505237168079805055287427036712062226792724872801933778149627862563734571145326832077501099312041097179473668626800606777600586045682913293893671469663620363206470492603237846846316653243558901115115499850108384815976004836641735606357702149259670737646032606284458632688287536624513290941132548470393385061070299223628718744231080357590729358089036879307122969030644831574679626512581854806837156951672338630169333026200426653129531067278656337000376428960422358097792462483604700259983529327266516397280217712353071115134229278419292087940441470667295412623662698115353889328904412402270479169991056376798642941298834749343319258299181658948228900503591548300966696289491837230321766424758564184007025153041031902769094476832045856098751468184644917720795391804361161709218170310646493066099579808107730272195840405308660588271110544054699464436238093986831203306695921530675767893838449250366500809730054059326872816234036601411374379176612525276460449530017591991907468562547604348092698825080656810014475353940603526568686438595543876133361140588330158735598599992245922499920245793307198124451709985549338906547430914571119106660127581224467397774441878175152179781365381607081918395018306249235398850895768470525869980393509305396215260312009334431977305542878361970643959741878505502082849106718897217351537151617427953297055196183853925757330448096676211264300183532729037536624699429967184919586471944090355644380849182573673724980226501034986836273531976632567937039088167841849936604570064562952488799270705614368980961384930216138483312162825972135901429445168007506952408745236059384299552792769389432750352725969683185763405109349598640792139229073588481946721736155476360827239773865696464633798367100948171330461894434945395939822070770657358242669987184944995096581186217694892508912906051858680491965596799214577015173744880317435756140876792609886743967289796176339056230679668613202743355329179981016960023594532442931518333318666988360678628759377834223400645102619509864243236385906179977434645492344143021030540397517429297631351061731286717508014357440018160558094459501195894282232170854723093743475348889666269962845513189104939279305132221593464448396221197882003434975832580358554618211461896257477652814207815132476685851973965562426826616448192133725249316653740626538319221500507114516902718522931786968178844690780256443330781538533587878247420508094176193659299702106051356563982629473947779585167599422231136528696255106401286750821069887161648735460384613936821841982190847602174008175660173368269495318389100037173934276252306445234233290577507524171694821347399965873682550027556872474487208617998378538835546246988755834086024469452342422037925765104358098061423580271763648599934236308299412698178933558119656702988031277053344366523819289129899921104083230240184282714523136033490901221023722301060234270351497105681691075667928449133922801718749689565596000806825987803089095102891931486647155708229964880182484793012050928693981787024924102919135488640249091830487247656355478555921546434473254736050625088300952203625837018171496666827714249866076584760401383117948686272976576976253640802663759489341593588211694220645826412774416759982836398934435634024451928594375753787041920899430258001742807380136234932380856164218076567664115512616276572338228428327202116834472158158520064420137031072689241649752178333286896269981789129568795290781307649271267037715783675659540876430081938658745168731034221775943586540977331242610169251366451441639321504129383699056551856096369695398486942478866731455631514719746091451631093425574836954242964241659977554906944136332018235507167797825335667839221723283988812550288704482759974399412907111752722765491753025017799585146005150187428167798975196577595665492248716073832507606437941737907273032164846113628766617659361641757546644907552079322420432294516443320201069775209906832509877483747037241878423930758775961332950481052656920479917906808722005994313551627286869389218683429968471247683710407106778430100120197108793823417440709298430481269157653136308873316930773451238858239035923069041285795056075655493219388228198204591668336890525229652565318199934800686468676559257859818096813556483020293215936342642142372286396870362226337556699443629342296177496612906550669929423373921800579855325139385256043026427619743147974742695858294436263624688387254467320085587030388856178546530438168634047775643170668571994486478235369040335684819113921639041482962445426511966653101541098394912663891597694293099849239170744818188363494517800897238932345616758131788037774867840773245777943179129794529495598951127357069627129471278612058108299912835514533520593790818355940744324397753303041334295790372621949251570264310237527656715547676120801957399390997962840106106180409951433243207348542459883598075528753540727198747822902267815179961043079875294021132733626744281012905344637122064794210825589267702356965579436488593108729761333837958441717745105510412816818133900090914128649843160546411708748807727876018850880960461384477364168873510362307507169377428405803500506624904100089198147030158232445696575042447272652718132277693633985512390935623067374011789225375813384260097920388378393895018843514666690874061737840072995578222688513454512457951667143658132961143644545628916449754655780582799302493915070601911268948043967469931665713644929768340127475832513844551403079149319207352545675302900055221502542012361008248036533743914727201984355678933719099528680666836170458093279766570236100980583483669970764503642088689340422028546249894777048888027686240244092989472624589562577223167799238705902119702429960036811467533327096686689938039699199308706879274475218147154386169443546797460982437769853556997936693742015895202639872279472913964722646668497478014238218175830376211759953183151256505190096544088751470720847811519236979957910961297486545868313209237955703489802618900170449001552545627944861736992725505697531113874451494331017866673539269851024808347875281934151402914595514335144500894921744966144913906748717313327358625061953083147718444900191848115575452725051439757532725710044811048258605215334600497517728152564267677433814742928080155183612800981169351731799453058359675468105934343876649811004151992438927210076639734704801336150609613030406165297057257190946502865434686525529947058632498077614414798669882952407087998593541683460252428771076184848635663292260935427483198008683280653706690219592514073113931356229493688741177925394859860955469350671111710725438280478271648419030772311990347469910846983070668112345023568662397369690334605855126341188775786198660147475536998995699689956728609400444248728710008527586099015647437247217689696849481127541368570500336690934693415625135028529766207704844027257223806435314663387758289030458858721951313565293842189118139144670075085799043522603953800064276324128722733477538729239670447136692950611073977577980922057785036426317712254972202553158220409894775959629288314357688532740084924357870552166250808739810814558241967768726828907629847541784121317964051187978724355437557933374783633246808538465218331435147189950903465662731455135033165404032432196417239770475703953538430199191405947406822817559624573779862474307228924388269410932445119827694799719507485446828118029415626156756498570620203857207430941571762037704632102968881678438773653764920989568769726483979840802608789269781538787342897357885521508378627974170552281104145349869510643136409136534340206196964681788169312064492629975002310234349084481394098986297066727375079977498792446036920392103874559965825775644142832249911244180800896837737470964350160649300146177779782246181992880784178642711578194894324641908619007123231104223356765508189994691819711492814171762864053965464727554930115499796296349582436263869561561335677455770221927367711541180829194500394191306334380773126458072618610609656680611446522995519385430407065164292256849123570522997862552525947945304669770501729114446444684373810675298030153925180850233408777918930155753123259894341727143695544518169205222886119494616077154107628510184480649678279666927219124788047550700918212027465077858615139482293065571421365764845640427704053450699308476203460063549658855710058231317461280416660518441613244245138949348656619929267358085333263620474343313905087783498657514892396382623743937217344343023319793830949962563070156982039405192027666447648418132056870000986644905714268294476268360589584223630780572555194538038869170990919613423791877707677466853919934762364206914507075846254527912090685856138028254966976756770331058276851551412608427737475821993717299449995599783773149463946687081568393158365567068215494247278476605562878537959420282410097309006366578783405682460746865308836181241577195424810408319337076789497214199618340223414052169812301775706529501994859698877101841696463241551071060461742583526216894955857729781249322551979737808205583426885000685143922762978484498684945758253555222840977129036090328134190491432498924093736437693014146928248067271171042085012538852336088941562840964694624070653112641652398928120165815627186612226209845756720732561504669130583410921491972142028394915041522685695935520213082501157986208109938712560287051368931722214132604961975399923150033888816923822149828478398845919210634881695305365575529097939201734112028310158241174465837788913994149328389729541912916248205680775261059466015561447465506232268788130011769138095671173303747251725162005176933656114495505013518478692116663015884370159266133641858568548137341757007202163749314480033275283683859028618728359638419048270102421832291508120745097916398023579994680262905056362139325093810962718381371890270188949770597683344253879808640921445304646727950646604051185623475656681618566724314020610012482208613687762932607100227563820114665412873886158678440418719041129809107762045972764287133409636028944142564605588950455878175530173191397257948538993864307505321864386730878202944382135837614046879934454255994467726725308378129823052938268911792962410761245589662865567031434997071536871590838422949176969595220186048637187599961953939376321765338039676748432767542683084669667579690309378436695460191488528604345340755500787951436804831880867978626408263982678888514795859403595428291609809792785139059847786401894358942761023405874893964635533875706187770620535796891290014747215193864567424791273431860871372815753419951036349995803476950532947536955313269403562947821750186155676251463012738806140590596286932264305415794242521642566622123500338112909162373188713529268358746825860381271868346067426103520873714828706173868826355666583227308535375767437115063755909688871901450029116925816381358467020367589422141579822599064960266716856504937630565036341426124127943096002931925560650172960670857756233688955432318593286230806110796856657496666518453227112668007240339202469148201547588595292959196761665600302898715763144959214383107015790448321062440732612329816663856246559133648940459487152558748961113656424562160733323621821401649681575552347927655965818934486034530849010891846868688386166713104394335226286761893690471638568693643549615820173753581575008472279715931675330677252022886193186719532536515300255847610810168626263692220712970195711508808929761355082810009283069181612552844991722247754094193783107767317570957627748191827985376342884276864067527257583682483805575601696961078172543139253660072186220898923238579322773310493391170980509422076928831076330522913717525759047900909268449111198392991814938341304262888194870757237561390766802276755260282967918795260649108940261842080915132404241428509147250248590286940153302140313219365217748436074030540908125725229097532236236901087499714004569959687085219314815295548930383682584289356629516775847428544714648859568396510406861312330074486525400138291205058111348872463058417818042584460719235452114034072369774065652637053773155509237213916553072074845351356226207089923011993723088369918311840663804471269377838458609515401546035817618798585208269508625909167248971456949715436346715402541934599668501910911562283728222889876684910905133413836963773304455932001288422713166315360085234941249837610763001819140250870671381247774502198209602920092362307349129578775174243298099365963276521315144702461257866035527213575005756613047006873568051092522408902030796488217297975507633381697990289908944452227611635570354119540144633417997593250041060628007621869122376371493578255268656914973943884543725161315926857925130777717364032989559425499585148965017037032784948189475834378494622549894099062562235033318525908005687423405624976035371916589305312159349695697198398055130428406765802338794369466491538823736910797267919186661689601452571623648664795488298202903885182922053303176251907971363408805296456272665233088754202502433817456784030005224473627585641523086583697113871974972496184522139378908220975349728917485858673112909390827429870061792599564537144544421370704530531080730659347193402086017194047650438157294680513511587585780408011759824683689737342852295377713463435356442230566364591739828243293974422393017367568095559399425084909457697198398954895484899398380903495273730721333780175858944831711162382462268960082993726895663635786270084885366964803736282405399036709101062912574939613052953673033317018247065489244396543692955869765949936186894193682715157914905907134034975950673028995841330247603157571452467947538381298541760284782916360848829922078334493555899361517235348342470170216706796616581906464305706714999114271659203965296045820124156006023915961882962663510881364433104817092195170910145954444916913083531341140277104925411964817067597646439831675496839038118343927713064652773302773215405112414383328604535853699899337766540491938029171586660248158026781443616794333584376616509585915074041691851988095716780006065339659402969327608985326223378714614693458915666994112960272049449281975011222937762464500458096116717816030261203626638478742438462070222617616568810403350429855410975164710232374554068414926917224447698100121452418021774016650509170046055755754769017978646102865480759808977138857323308709408729793788944834027454954076970686996242721692405176157348558944357351467377900763318779778979142564929839617871840085128324194070311208669081205153912749999786300705924249998028384444228397111744152406603467925997170722229540354952479441523533492605507115282692974973603230597192467561415685619566947319533391836111267680421539585132727457253092737168646125435142784640592156524860088745396788877752617757755242158882672042453676663421150451602731317299314020251459454254040761843964181823672094379911818092349645748748473654874013126743999723046716648009649856589609765717021433385673320329809583508848597928388801797213440581927210621532064830780005678686076429708119951195724208893022550409984993978566444121311481803184140949744600135176256580477097480428444062587443180188270390784125962679518760996498293785929945491607260813957048999501327137720057406531596191561997771277542543424449404354461197692165695790167871187826999682734209340583438795128691538344157177944112265915856591933257180498634722416518299349508606470953794860615451532913001125137292326089912259368630648559579924890738990601256334244322956091356927962922816322845420500808860116124328934310611303521270254746949547845143937097450400715689682573154358963284802430214481061167232675692195802499091987260633631623279512683113452717264945228237571960063496920606771526985422330558623499056361193557187456554588443077569834617585884399185248167968102835287534973212059276533091335574997790289550070395627959852286154082261421678374703147848301268690995449694041375618990562084125441518794831029265633516371706269267152435466044351770779443658794710085690266895046475805757513380198875431206766558863499428075570876335091942266960475371441506115246811844731528250801200256064659608658673500541441141701824596309998298024177181899159834402161115830444812135012449478367851763744558077454388397918394779366335170196541688189716317323346559452871960197496325131001680862807358574764317501910374789986435759247956091309364367375652844294860738356209589357174684568336755051154379552114294664802823162614781676099994892456377753789925164755297199291240075151278050833478055349349563290700014355540513638234995605052964493540286743305504983550311383240715048844280185911076373934598195366501555497860479096063578435391214185704487230677347549193833630182259841334104829928092796049366847514524415753936814586704184490542404560376862338452277594599753144971506835292827971178470538045611006250097497012966503922886700272808624736499406119716314662240334596373451712334521042043718828730117267113592651183307730988162994930263194015796618679483058783528920505090026004560796570155497758558624014327694803092427633836108770438594568495283984953759633920773321030246271489366167685343707897991827558813388243839262561813228854956282046825517350256655822682171768475488878354106038300882928661715131178704004230045425866043397114564275723539382656481041983428092603139599547698070396708320271056627157621003259891214255718090341981259551154069134754759372862559898070525761607923364122187356232333814281103583960577728551349205422408627563051628056422341746631064177610396297919980100086419706296765100441465949337660076851602033232991913291175779309013494014857188468808940243203191628027229867791680833992890555563092390924269218997979317413796437373251046244156075330057463096055377860935570497486695064470342884150783883018685099190011403492653315045901362743370963217847903706036669213600405957084294831091402349259338693179154546668982360645284900550850508504907596018522765491395460962839699035189984363684316882748489880480173027910184868655979103101736224718379845255539243956267189418796536304679721050726688619103472290142800864384070180423749355328963681275162797952508379365802163095218556763808598044757001622092796980624122042517643346177744340217459001128564972523946301932122051529546219516148537527570206841170568641069510602835429592184827177020886697185909851384191939437905372016827576248383331580590994324349773082121243584382892253339037599690728319323339139766429256674214067427528714951128358664735477352424740058477089488560215612674125178700819805548206551812891901283971089439465331611477998046560329390847292192642615311745898234112669881861869249308777316588082823224727809888259154727042391564604564864240127534873120764748193406896308014731639183972102514808580097876783462471004352651573469875872169254977174339183452098882256944538246974575350649376968593460732992046896590209727135839618415157177951829871291917478494230822860101606662494976549077137193593278200047117708926533620618797625449092446662393056269447823919842271720922395780928532631839973768438000163873206064511758809821457392418409534776565221500017320564743216245964731176124300426651068284691743132356475541685944391385695985063933600243977301767913993039060936147599931082471222738351139311981866977866314704132653684494310689345862570223148718094704620780726989599674701963102599745051080495159174703478964818952189507281489393660813663049849950693681690606979380848103706199828814376225345591096919937650896924532305574176662868225391972734377826530340548247734659518463609762072424908338047767181071728676705510542272983737134435277044418535432453401078378618191144540440302190903114680776679959950585143136105233263500168579645633510105766465697027171332845662122820378896859904612323431390404151130317639834124518078426446751839649028498564317393473474133754748501619581992727497292918387071358079202388042088837809304079203858447833382934520513104147452539479019504918888981079452234347590622544180993451294057865881364262831750665826772798788974532600800250297229976536718619030615671199480436048276817487813685723626826778923082212079174195942674377984760131274298635951703650658314979918018079058438293483329527479983426136264622926369957407204755339192580826121552064139778280980085440858039896257092213337128119994563134060979455169525839340233631644015301023058087940715579543915146379711820629056817647948455465275396552606741714018618728453232417436868172993376404864928982732933271123219194211860128822257324868201450357977423448118608742250111691883803266228249698567176324725987006371506905550336086654867874928244824603248963560426755794338788874186715280124288490151608464337892987483147686389934000071013834530430652701809382881136290086775172321440665233077121049339485599806277445963446175546458975956162365859815832537541152247376254371531766678550164192745357366654388393833177502800253071480709756576180818160249838715820519164997321288323672055824619596419155952942983594317323447322368336222888699583589487979488065616072823617533880362134747135385521139028467510249219320083393588451017119708510468007940093277362818802100844153750109530239967552884872614907709360580513111059989536008220574269499693584823898620390247344075864221371864106504875875584811293287108925942927272306304676711217190220523285526914260349907909939224823299122667602469902540439490848292134157928959660230693210402756954680059324838931703377156963020116299184766498247739362133222736610248284682751657807292527069241478076150519648344161900349290405948881184995344170101427735659978373415865762290410502162706311756675520055865714029371912612410501363440024866958455951737332729472800756592874807702049455997497179726106564050946954005364891901335733116412691553421659645238568641809226902297398977922723397703334883274419459000733039910611938921038515204874065433177214354809423194577237706451505318780108598381992841920751836080779674350783678319549049329622607729243898487392970359085267306741743922906813352563527277098758869571382045454682209499951644517711917920861259127284612562151592168798198630033853972984641237218074771503569118827376202623476914387262195382878348611454617260681313190836692870455494155244738954827266799136418944045110384412581503986750923797404349329052515623546438035523401402034080590506154692607432092717231182330516607805401808716471334518057947012715016691520837730102566101931967914683156466006870338515653533246646519086826901933804890603098005538971958121821549323032152750925318300039207763238877540790572688474346866802231534472998022927387813836767911525235235282788550553667400857249675972843430032375046644388537623954221498581677658838862469005852049893640822920143108088568888268581198395391876045672453012839940519317480523832068474486003081963211643839458135113865008799390200445149622550694418843550772709021260811299153060669860528094648958969690184357063779690058353388319673537611681368319460016142207264180007984893549119643577654486317506771699701234489945964639932713916969769984484211076360735335334694911009680113581938880098584022524146312057578608960755626923129128540688643146470998100295786585989573444125969336919953532115572940336225160782527273091251455923235281873593565630886687603434620912643650997149652841060906107072009965514474089236929021685610501142853765366116743997766260097946873529454838209672325299545269611238380029730512416526263417016056349153654965389435296863554354938960966840342864851767005108239490367147686827504353185383832346000099842062029132836940804031650935308686398283870957228600678973739188375195341166404784608550893194613697266979425490971738848543611702080902027861703246843855048222832797212514515073611004587704616670783262488616472489311281078730535787241543788437737495035906817653372033918089376681979077738515505837306746121345040745855841312294615880361102554993189455195092698785044814007164890786881778868643921640660768649183681743374398341277533507416275420786951608586201954099910970046634405830608160001883929486859583255311430138669181154096720361112038623163427605580818825124560540919317073089275277524152597283670492855556088695496250487918000488104123015616419915865094636050274935743868548572111559459547495940251544975883731533621191312526776685367839445561893337517517187106997029468206859342513868099336339836492244001601804177592388195583874998725122369086237956942682261429560713630145537685556291817892856367928677397831911222332554736392666105651585189429248267756463537093131256334029701212617812137650877660556591878588851049117901732607308532809995217842034149227779627079944227989729918096571560776452409152021566806415864109888664619560422966521733666046763042807391281159800484161819722600971072056478518264699458140876284220203344311332930173904540967094953027734015554470163831645364555774420881523218432912038779622212457552269877331409448147957476679591165178883759676193255422376998101553202857823334575381504946490549467138630290695700116573800072377195199770490737128191835374814192084109422325558225250398770706050124064054231189133450089051016405442251709646270640900875191341953253925244374251192396285738788486215868863531843135684895842067198799182447295739825844828549900795323833528421078635064206329170846252438179417576478923255135121781482042405556181956891760492732334995240068918684114419079571728844309934852279197063937738774437915568132496292395126074775617345325339870460375320046091831936863746766108687010225282381160286538194170534672510799032099269429244490678446750354227249948733144649791578293850616566887571215197185047582432565334781583581839801845017824222964203589909501117436341939910302523675646435932944350759701257297909644994492326137444318592790952513866645896019433745342823497176337503032001530557357868486489821503776664342235262023228541361563821806046739894643864478776471959802397600366015497151497613719210493297247516120037113946818457290544659508025059726122747163093130158398005801748122894038085998122540162977608426848376642930807173518084087895359195580956094380516308939788005170666809419702628570767339788119660819992634195293413064846143924132440650829390191302075084060112439687608646262031648183139890568806039039750912647310401623524683929340164146330494517013148345022653620813506714404463361994301034844986779835825122727124813425339160594246616293949104165659960597850496640826298692133386947523243888582096959335716821834621913004121976317908144787383110934663020340855571275471070437356563070486415893725184474776579597869324180481446391771690361624249259970286762845734864077368376124837885677718714091109611535793090248269839916581350261508486829129156219488564641019937011907846679219574785963670728685122809623828187677528556244770595384424761014288107424871680655569263838741974669940015002838474796574824346493639663304139758277493787900014884410676999399703660651536512994220549357243307763906099437022111088578410901390620758865241031418308527590976400928967391960354896505976338413676156998298662057212409557657746263188519895260933814414967221318678317088944026025877690807608142891135958024084134001098511084304275369237120851772523602401085395412789291741683264673146413682910470349628926597175192859530263019063471750541365537624016867721651775901058209684174302598433379989479700688520646188583813214791857775915072131160710514075043880431819155819656024548234759666265373832597744586382956197116094147750965471335656768724287711265761342723966449094219268326943352693452687217276498873238263424683421119471755167148228327084987926081514944989860793466241106158676570823004089385523569446294205112698906371535022287400922810630443422121065963527849221644084538240352022156076240336389281647852812961444343825865098439015865063564427203824824748779268419838690133796892100938263105887685010539172680271555342922558113529644543364182350585729186036471617024808128027780612705455789317814771202306414099562282616680483666697468589422657947390487949167370917745546980939284271123567188387473867105601284817443985702509780848181931025826468801262683141378678513519077394614294740963041766348557254782442681273100497798644618827440690458819056472778573927575605069844902767634474907806250616013526117264206145486139782046843665801405915750720106438774180548581775576178189378070945124152387338096433209701502981812131921280540562438836154763436458355361974671603267155378688904369921902996494541739578027007703546004212256001465147620629846742556996677745554710286546192750373991786943056857570830438530016618696580888993304662932705719337365638972207869665874520808153391723938560758758464820651280397031722578995041778496364628087005395754866049407554425448033976362920560387060853682813673774469505878703541362397455153816391313873861004143779289544170852088993260594663528321587650149750366357475862954592070966640728619319395613810908314688981618413318495630749508698498473794635718088710068887421256091503313034332590491780636544444671760375731010015704630299034766306763376976645097446286694134322250315173988639794718291824173689626312925776470731508224145404830914051104650470513342272149958362449173791254070992720760296771091439871013067481680359908074081430937469440491956344844795145337022527180289498999213100732878364599272398602558000960621001251211265492601072652769719821113257984954795432678850338439588768197484923569465966479438944318711611290127858398849714910338524881238948967492568149829346427354621173818982814953978090398686961779654193881230478855963029992086612462376165030133252978782901797492796260698938525698162527141154184806340397533303283280015108866947605567862148954177326088074151565437081665759441926630829108312518148265384451825173841600722838361225808927252948226722863949959925827904995420550273854848152991709615702870494550094935266824011459831883355423412925876889338845608288503707752147427741398690134006538554577428171622562307642727282765596262888021492669265413360385573228479279998278041568783270387821138216751876308183648268449894706317973467318404628469542345492977255909576408625181355687877131271753133142471229027947207272092865488840992972936778515067754954479679104470818168432895815051261324649571657924117562095917571490108721464707857628070125667633037398490573700858057937052613314826225961839596111680674058003323706723338633841231501570542699848701340510505818989159718399600839638511540706011825998696436076552500371276679421081781983067788988493121104621154173748790892057272705117154302542519432301282262354207917335480322010663069153700204404919437974963172408795612508089203383363473941973551055919939646414693085571612063938399869480238553530772596677314175611792440271277809641206648284375159927104422832026156256609067641635166049538060765602502462044679207112441518124468827749536941763151874517167251136548470955154668801309715512787253608126471242174798512866940641178492680953725683113886764920472020056621107415187914653114704502624649996441040670488719040051739682463423214823741226261036929132615994842909573113024193215759902463735277445331574622698894892932303273070818930099479147206405189729174399041938566629183133238378697573844739599810781818222955371734056430613906603825890110606567866838914772102953211457192714893059573858145614284656001220148397971373040432161818802256311975756117775893879721745812019663097958349383342534930903876707776067071776521328354784038698472926306431609792369986238124559893119401069167501225269495640676903812195784511535221564268977440079082027953252517404143302341998727440327910380948849546003785578587986755054728699919303732879602508817156023285652308876094759403380212108041745555733459783749443942292492703548195040472462926356838682809286271068973199243565999754607591520941639829319895405784929656760196819754070687570922184185893616273008229901736130827341087457575159260443050308472632944108517223610263440622415853611033125493743715783733223805652049775204289341152790679655944333232517317071102290727926746555026824629925413703822039133169876516767190620712946084298216745018353695251231452221945297331860808830482548672903541706343747371398070367103499861936448617159769828247034419150066430753057289237464511394778370935316368918411435781720873609974203247801548462696804928864273356976785169478716639468825023633641082942692040829974133011189606405357235163550927093689208606831612784929451241112457090524424831410482673896238224158317027403913729106614203870897207639095879984414844104493345033883343060473176775549826838897682516156680146801271222097991382410976662437177854659721175308665289396624288430501285037156112115439903189781939118660934932794757042087745769001703863630648244018822525963260214588686558941431859848116016847291616006625774550794139918117182915605835647299969250597308905738225376840901823431437714680440623539157165031657421041008257805178140191331012393277941603109796081720547917270023833811551911622825541757185937269651819612603876386660517864861369052548578685727888065852953627055915381227529743580766963181936474288562003190993544813648848391922990949327936675190349530159618457272574775549874389086317821423510368995605741828327864310460650899835141471624640921398227658794974429379969729799328408262312301857990061862494307440872378984269669748344093410178493216917352774627241249944319708890351470842292080684793415452315572362838636659141531814011047820195261626552884270155986914217706113235613812770082674563528163091206952408790216951948170473987174724323823629433142727264805525990804687312441691528181728881853491154838396943249841727350628974985155363833392329811558611021376249163169235047217144140455456585238478877800524864436476114405824614843620879875936614920933387114961829014401528570550766301550920253376690620111753506665802852422399835107653538622784493958168296271739312693031903204018126762804481713560029445569081680823839158236709785551272631731663612474557089934010453204623897599278665925393329819790592275995313101411143123288371459043533991131219971066439876826238119803029749453793982013832823328746313023234827683383082214207589236263514147711180336258849588658258956069524182607098539282216180606618383368268164347410560689507207256877386004502328173419645963884008424986701949991417449347377927128326693916288139637792016273842053602379274943986479067346822469361134155454453731403567906129150650881370962532932971782748229625099723740295951159811167923084036921549885354176910943126059544093169066147065071683117849118066509950145813741228630048025098657266600627063888712725309171154233233484926864202943988159324904306388044321440808140559427363626516107298328483978788566139877542766662935117222835682821410188723479379360537283266066949886902160874698330254665261761421019716485165395080827402557899413345067570319456009938216828643578323819739403689158934703774562208792009882601565307017799136921925929084787929881839711480181121840451159091897380191243733106317553198496310506895461940229886158172149927529929648688228980380051630206484396348778329043901790099506146231139075214663749224831930598932610481586484851492477041418474339945158489313997943547365617184804904609254784989181660798952770222565042721574132432273494368774703616896433352078276787248818241512159204094046425226856893941047855709238409230081484483372006727439201025309073912664007458058618680079390147583990067178236858317153915854467046599932957525153329217024882384777811588462881784818289215994470298223747516723394830746466896851958128978767776075127634459781757661255109295897718679309743626458668159823477962088228440319105459308097423373105187759484419362281681205289621091917591933994254741037202840758378885911424481973123147802757388537056747135723994296853167058282091767709012379395310419822661205740372045620698028765300155261114219457785690924171919647582883166725266358131611465890126004630829052546691434550270538815462610986517577598220018183182300889649107479596275572876475052540027618870538418162081788647250806053499625084170214319528434188596196991030361733396022902831651684242692809585394832971940657253696212737906098706370890064450379840989357858773862486942981651566071482442499963567244843490973458334051592369542964518118285841804554660008595834717544397856159258774590755137466686480433678786419241990778522385769594750089021909672875649253915499646363116949122970789021379016130283646541715653595867803965247097442000930530319161645106170187075999996689889313739511437960876917685165751277416353614139997950636403881765693238460746955900194350022128113398305546034548798780568271855847742150590610870598037133034837855648535936172454138875115896052944262808713238196365981414853046636115234661146847534617813389028775089078487499592469731576028537044491735830366111072161010301417722221804222682328529923183832006769085815703331520321156356318021421069245598873544480115854576392177613314956676683158076957616916043817624833545354744333723345938390763768939819551795411233462908932633783634451372555490911749078344422870284301144533999311209763190552291401451278692431967631023838311962483838345982789123856984361022885773302938049816856440989210278128487053031033831049633346736838022601273843648449493458638130882802182096251705558016778050394729546482454494446109361524708781069040449280125144582787306403384589289809484656097688402596917610626236357533106722264096185709219925182402083606871010675421071832247548689691818958552429433457013288719162518051424776628442119815689092774441560524311378604431831434208268953612675540365190767238106847639386285875958812888329166049785423059908998064745081455307537483663911091946023323936762052265460186827276460053712962917535099052509994445861087631001028506813755392257733168079969133589889479842146588969029955822921093598736417843796231520997026578266481182978494525158010628194600673260569350278817794761808592836394513483865620441630332966916751893693886837777403582404336800696042499748588559486054482112523440973519208210379212882599857745791230548823932068500832561829502696277373049879674232923408564324586856612369633449470508211755266135545717279805857670317584371077690452389259192123122993460449532606957504277121357546635631104198494444967556644919015820967287559179400229651162026817548986314857324983324859020314556324108456831366556629524840640405601991590985420552180965163335706006980056141031489234581839394690012956559375737529538619807979418919508696832271404390422788472802415032539880778386051006772835912172752769256067203514330419985603832323532801213005352279667031698195928369296348176202974223826336296158117199456264688255692788867636400389140569542688570998267644138448628375550571333495311871361575009741889042254255367775086807149390526549930306655984421882182806083696740762811860596931781695206450823816279100550318336399964687275407968604359273930408914245781267591271667133552341757374050907500864935842166504589094094846301343153596183298508873757358572837114164963334815522193529532063683210175666258769923322567750914306594513282992464672295696890151232800609760987276518589042738352606258008314548436766769611097185929243490673902414656608665474533672149424768535757092351219450984555328062962339080496404753030797508183584214038879795546215809282888879123283691923022140273050215086568569246876053038166253065820976329170565271947521334511060671686255981092876238645706332776321675960863972163206507164242496195972411840353581908952526123945831801645511709636913159375915757711889362669165016603552879091909507014405117594264416733841265023334308740715515280904582027099825621463348294476959583172290070172087524311022888521040279718605006343929701290519160479508018782694228980516347610454566019819600882911187857881223870448648386379232217888777223983213410322443605574266896791216359818620920523884701340663287995968117769946704103106579595942956412635793817961468186205712274942369182191784750367649570248023805504339004486602976950156979409900816412520792942451804270904478936103472411953437297526911809366573483476898039434240575869527082855292924270167984362771540499096929945054021185366244369817078023817235741228011380478694907205724124980823236655247903016002448066541005909481049923550088205579989217002922923877120074825249635991446072219579925814119497639364714534226084680939896841378078064323725424349478256365138023559070150839697966028877438958611696480730956807875357172625538311565137096409730877202627708331284737053926949062499399819141656247230425272056841342972374481720230500956022055609189872706228174046944796304878145145102777773363439418298083249162844180087314713366052172208147689778822764812439168438765723045880491842346277253949547183589484097803097498398947168915697619428433603442995321374799861552751118144206723364666058147497634901820078744518767805041833014602711300118838609343178316546554620811062065398891551157983863935574278866751575601185915943681938969452983320469441456956212294710254356545076592696657109267432946084488750915698164330186335869048540206969196413434274707281607074150972440133133773563527017520713154535707278612214438520524410460560123679582972535560581132269664426729723472060652927592505245071170140786415925323405497024721662330638917758036748293378871692964969394792519652479506394511567429734142838771811374976565156250126061804011566418900039108289159239762621652002258469507025512570603490147512029159546143144240921152774006236715645823759400635992097646221802960926209182202810611318177095876147916168829691845258424694591047129341225902793357240031140823375428036347853200483069289111563925782638264772434797956469595254797941479471667367474726459999605528611044423136897959265779837362287926483618097073780897419582065327804822438755006369760026094264548903956786154519830118679138879130537965667663821271556377198575824291597445915085907838653037475302574337481821547765627932043843245590491292564759197618087396978284341004104216327598211487555054033399151365426522369854199724605193564701385570275987884637639316968627257894457003629864991244214738015651750351924682211290368717361711167713038764607379625558375419574452456395456241315413750002442195810102466236353900397844469862256776018116078233695847339549023871591637723899338593706600745193537857733158115916774527878668823772107724560221681997445996057362530647451223540193879686140086842950537489933761380106667426573828568820078523794422738004214360376761404787411736352744873369206500246080711592457359450675743027159874838290731126971207577591458577968473282559247543455136233721405784640851664309289249118108322458008370049341744851537566990393393029198056341502988837350991061630639854206222094905798770303876071557105241758044871964796563270374968416661305471086859036900637931373333498993004093274592012170107867164128762938248479022063948858923816027875134460796079563375690848519768761659560792443659740996965095394253702852966739974842204712074071591621917406090002112198989621248532777318897142038087469910579275039532458266596785559654630084844490685856243208875053159098137174136084949795217492833091110301257983013311954786890735695895188111333918425908632316482343092562587496291646643631060765241832845730193544848326535299719605334110792516658279041469721966575211004738455842880282907266466915721168270321806967456981986976312578712141026508801149840313507243078211425328873628558286025742132800887486911878444714393215898398095533894402191438865140992193421300779192229465047842943868695165567130927665431016324939134496810397550344397169682197718594082825658849474888126772261117666920291599259249228859916760037606972803684735377215499133333189526868016892912846644471295378315671157739511379991983518192564320133844151869366003062551334956035691276495374118998010242983707484094814734209257495711315484562036807592832839736104123090250077115712052040869970551003052472015041312495728590519274852970999675211879901581339440532239415843373349316444627233785732311443326642759865269972190288546407200452928462821613720415232896005844004520169401371926189191025666210034661354193258597613739208630235562668511260810178343920427135897735307281514302489970459949772043751035022945255346233671346930837469335077512421205542272774514956834828798653935974621029713704991138965204633041507307749688766291059414085733167797854016462645916156049397749139331680800604006705407775860436963013001443909578116055946134984973458808703943174050395590483141568964920467780523953021468156147631445849148818199199745369742675797013025528933180069982273400763115380934219978399738754228708712952147502340967527993118197588344847420451174894888580091973297364685567230697476834382621333462686679062732449584314749347284104299676793633600960357261018921313437317024522359921603471458518570550988752140250249508065412696629442219963258998453397382498298724224285415811180507858068075266873592414521045027004072744879969844640463182275149932205893965871987374142338016692064094918120018039106082224743554374872855227541805370129891743766273028132490740967801047565858906684722742430924562824185917553010507535511603476321698137217007119061388863509984135207468173472974882932478755470042630225326020821311245525879572814955019380064495032414734426842263758280579562986127579630449188259097907886336339520116150687508857917855296628456534858270943859077753706416136588064223797540084099116272196244418150929155845070593215731815636488252126706122965642931696622184678881188964013870440798540436836644786788892283202333945903102043199984315149166942145896496912054681710799547393950822852552661881430268827036641977226714463530525054634307018308550619861365685100547949123433336888327633294623637101423353771745584951089505025681513874070953184526214418557693994495426694190454386840894170472275249245868356374582829158994256318936964750859645018767682115656526444577624375707825336008455207673885381748535707860278450446537462278007315826098374785307018368423901713952859430619719759580034685542534968281494915348015415897337402795204057124347883645307771560737763840816176416710674691861596974896883669468837158253989610803343692845886043335996097325491468168916487908762549096306257015945421153771549970112137611581394324433014237463718827725833528912144693658119167460620517292151487492129033504161335302525587076499346998210418464955111744901767425724215714687805628320835044051248502966445560543156895724850316084107037712460564868424433617361876290272401462370871085461907980528651965864580926806626214408739539501028158234850374376603951735175391284417981730966269113314962282748035610104956254137171847173371937432027243780369297411263275815002163778599128281506674464111296583190888575094539771512845614436140450541177027792194433935671599673848974285307876179567189453415443182992903145041552257468432281721719538087297648554883399838067909920216797318405863332884258923103553877886393658679404163380513571726669593451562154916935681909303440680778355432082624438658086695107244310408462410061273959460267469324243206529842195690299084867061362127036049990760235978188388346053158189419598383281611371196474732140893331794254131531117732875077566185429256150871622176128927007884030963869474416683235876704928177550738893519458666460409606992655282134933891786265264433585065199375607393849161527222193606812654101792639953524579941797920057757117471820466820749371213061921246850362783198920662918422607591577793265772415157092553234772573322618516517294326595283996116570929180453481673577040620219857194117812548603151814216158306035241122927065415739961488997749668485012929061666554233208089089485674093857320724966551792618134926218893345398393894542596244764824921083101773803965563213826390801066272421006422258347380514685980545916095984145762132433988596807263538170790576863998181276596434051001334968039314588014704835822315200795961860050065263443131670584374353836575634800570859647092627410142650867879826338952901301636586078637331007015473884887415111593992822363373182139468090454038062325115309587456916707940619242319392412588408264282936807458314259855411873306785069506886979344593801575909764381836948818941580885474907915900754375805509824026231752922889439566938987004241514057150432605508440287837599324073211645662036129696455725290939362683368659879416955245703197832084331315166867722989756319515313470078964404144524080405983167725106712905166636047402426122919648319750581523992875823071829024818725936915551101906753325627413385153801177363402654498962194531743462497298198950475275430939441607274477295550136492119098010728927483502236597720614876404239432411334508292173406878181260457513005806151569867429105103311577335611079404955372027965103754871662144072269761687270022452237414080740366292151022583540779646969373555218662319529688775517991731210876084338787970785425140399306298677896438288979118836296778268143575462934066281979501477463331838297022503106231188712903722973156227943413451922102968262324917029645970369854064554910788833880573751980215707163479221002425559901511221640123867708923698088741027557110461427769394664479571136202694156908655163055301204746690417375024504476945445203898796391961629450272635333540258140075613966219311755874842842121793449628239736292830078581647896145626425612474348673604438282536293482119153697017129961000309521242027559878649087640155920701321056680468866582887012095394063686400082348035163872045874374058593828111538545143056211992702416561903072269483538841797357418669143302756523659649055762480615416437185665747456365882269703731423507399753537567304080267774467553835700083973819362453167414941009381124657014904076247110142182563845611205809070941171243810077383743879420231099207527720071070099793572666471617162882196310994869549411360263435912535635134858931123251684871728012834219650033529824328395202188673714322059302735647992784729395842732906559815650805129039420218726604345538422603273311711849659411777352272080524968088156504199091439837327521443804875507756246039293751012098783040374601902461110222687052083595001064776548160126360966249053775473875861365025502286707977124063678400824462529633464932038931331880364470738299912330546334154375585164556829465470406565512553023487984466123181300514074983632579127157776252150670360021875897868977778117854930415866301292886771257585909889500063996966538078487495402598392798375289014973297492133641596591446519491051264061104107419666952811276041361222593744035312257821024208418884125182452108672229702213456734727478015902847443059145811130318159267490416116104297819079872657421274430933823412996078469474244111718096050156565515747384378091932362580133497680248728177191320531779464070068023431107171335608987106527304098670036917157664332009617872163817192745217902564080159489699289757891578387544817520538284241992365058552890339803754762910674963695361680794104718537989956635738198224163707824963328388023399251347195667711910178301234654038743301990491366359400483040814515969136691756462763898972486216733847041384303360020831311809601638728743382748324501641269743687997668111375631893922359313473398148962568119404102331533746083694376787770059631797764432481423719814876501787922413261118826386000490291280364360358018720066775692462286160142072798731021107346945779307539846815261073356412904611523313855398233261705266436761412477577662164831360181497497434435099821542855152373922512063357962448768257689541328855441946976114985731416864754710237646679888595602195415801480511093486947310190948552514086080884395283320024509677820340298706245453665355069959724025039797183807115038311206693430006477499386917031556831737429205527927751495945667913145216313977047640381018055543293637554601191419964178895970892623563129825003406680414088964329405452870209045537075634607274464951054196816451970435950748626307628399349375298233968178951361099065980987566129526036740435722050998041260841889300968954588416711561395819533213035089908269904481208178210276011604490770474285956807184728296191997304523759985892007233983358149024500758535687654804467145292547862912543675115215313264661401073715349930623366351948350001463443997147010363276726833423658095755207835991123089544915846828753005016237995311742024844436855013728928391127049701862338134708180941929697534976759925221845588519341750003806035073915677645002254104131384633156135103463363981553840892233475890993466391202160535991925986508771061664384564745068727876618420982800780697783028019321924697212496371260056955053867427622398530511049825806051394160989656822702628245447896105479619168112010433436785976529861314351754716223089118331289761126970299015313131486130813189292417053436700609361526847976690966149637437203331135551670644532956997626082097344939712879904932454892385232261824592518798849029217634740788494127291557416031659327760796313436472931258541787946409513249746209132581740066788283739584895743452694671029613189609934951546088016231514754183502165822793999593748950189229388646800765211096584638447506983491319986306930924497685229496931458581338687536097095217786475660140918235777505135013092189493545675531303433166703999291461268332167919850303840399052783838073751962187860762995904884557654423378645610926556634413619091991413479884762611673781377700624507995144402858679693412522868389273794236231736637909231770888781076272684546927593166914001067804033054382203433254652047734577280898535836257068076772824365018788238321793959383041451684770957835600943524004767940429130405001417312636213989815339743718772560027019492775048599308073069749420933685057941335697660137194677501433523399267524452654922571784799370189653517979444346604140434238812838847502710175804616071802030948372108090169164378195044173287121664121996525918845952094442095074764079051181088906056503083948767797119416882230645970904193691096383451969136680881815835995713752053333460793537308593531380968624037184327777344454200077120822652391616221073580057825335787381211696531651580683604909282482487839065203007305506353156474633453001678222614683145902429120022326302164801422746646003027307372678174569262900959143149393925956387309716880774429953857456039908631623687399246880840858406543227235957266715513389934594484299457807216528405642687979596714877982119882919380340141252043609355048764633068878885562805083410089113399312832034233804254714054156906537413645393114910858444835688984575946869826449546725391256233558819066016377489572512366849150188603906416919066951698966805672534625337417024574276518381358713757525533374307841758547303278615740784331734715820518755706108193899265404622514263505565384407286355511069803151848108946528716378586454658557227225247543338407122931930190356942684270130984212934775099639454957747847045585705061968596851210112330737284062046542577938691625837267940620200468850609226696584969438373581296439556240468481058233282501694930139409452358744271290910205346902966301692347112638239574318210221987298673377178452227707101283053221043051570237261735570788517224382133581265740577770141417154215589230469964535669574528891936265170829055819813402752530178552469746029670698308215447803475398104509728689385536251793440287508128709437064775851275208270631588642744500944446111533009276138880436142526237485332448273919094932951066599952741858407229972264568960665243009332438769993946694439954532389749157276859702601665056735363145541747348471592320395567785772483025720717583473904944221439530923769274123967818126876384399548830583743085609029354915563508661372564574445596359006248593951004570841722659576756422400948564885437776786859117371798057550756327787631253940165459035879996007815937817075275391482281449117556537482942152065001297308653122077391565918594252390122261489649457418741993047813340094849191515373379213326701333072738389083087914545927929364705958397207881805705089310237120279521850436605244090946319661852453504324274926926024771073763357467461506026446407367034563020486122522118922591522400754491939716001516332550648759155968366877940411881236199457217362278396531380937597549622492954790328346496663305540175412561456102017258519144847742530235137263433404264522827824718371773850880046142879917418821443162829354923604385859264262732432817251724618748232501748338697925815158493855743824164200719385530813290440189281452466250513851530337935484112352348725913775132250598965815948880933047616204658106915665327710164969882435967807785977836554215102322614142077372757855712293799035460755002524917881675751385359690120224392446867989786750576729656568849379864168839521381567749470164514295375324365556697023888470391136532707470836000882793268147682515481462629603969034494202234733380480741839843049489706674162322695321231170221875079288031498212453101109258670586862064950025283136639691105829545409279700899031389410734099248631039317719571536257265103585680165643497511639117858193372068424140447936785219600513885234566540986343423485487768466494548483458246416055475548922526780282802674679144407753916879256070978295548048292683820957324770603298368770316689999159259752594415862160326046004272971852342643929894982512385208797468926595078967977620042469521238592097248129746929967581857949749179766668520490799051560423750675721126853046979219499834230385887020356481597490577450402143914428519115829931209920087674911986836858215080810572089714414151773597623663310180943765208015258529680256172416039716494897084519859531225663536375298865712881191067899211091634588648602678827178453073072506684533530367714133017696801391736996292003140104039428905090178318559851177782836138814239551125473969685849358391038007386587648442861054504577474319208186356224616437870093072886864242643253027014199267492582613716663295890815770880181352086513132416632250121355646860273780182925530035935933190237101766899494323607631851391802201634349218796115102060394321939249870531954523053025539311449415925015720800008305644291131809509771964004044408624762440073374282028654892420363760627966225980889182645662143053570409890545600371932807159619419218315214326045609414069232302375202617091905077533579660884766506352533706779565734651618139534615234651809653638428797370105880507807457994512106488815920973101314320206963069891887319834718779225964407266533684523691132308644091763823816087369393116118945476687926838899595821111485522269427596971749258617381964973123551861651526432211037654352412833698973679066467809639644667694349487669768218786585712092928020499815572919847700821294214485105666451824361996607981798519514928203941120806982198434091379087855038267426009616629790820050508376968124700547665692133096023478414428656883695835547872660955054234779528405997444085419040487081764572597790521307990316049016958173317091967662332483437945227498798076537689780747906796557200728879529479128655480701337135543036628974347378445795420811603392597477025025203049231624000569297988177304642549964740329373807801927250951094998067047567797434055588472084486386217518717343485586039653544871433198643553068568783021688554394268839957408386247874140972628550085512520470771977624495443726295739698932339676003465398550045062338145270793402385769851507548274731582211581004102949659681345904270274046548270435362983387910339328579104860614489497413603652006399071347015725206699550958853938957931839361885587967890554157964762122039500013577419729585946245184390691920892414303856054196062471178229887753887979595616036135433198333921452734250471148564210558069209404005370387817963204419918201117579423666852039560770577997849015847977129875920516596369864317217066217562009668467041722690519383610113338611517772272706069030199113368471287015094545585109162106538981041759771593858714119577986813015186937060807153389242162533174078596906797311985604304242374569549458986347369221972231800616557292417159442685046836568766706692616662854911598059503764498553699063415035070218747730738598529380682834096053408074610676639972255343035212315799598875152980838408396271865950669967067613032399438591196190409486347021681593510910919966110864940730415132595267637182149740183778881540446547079844907275856210787634452447999447228420343472603809485640446291575022104326955992171546570702867084524019722393459613523449862512049483108060926617007995532613619002480279738915249358386318043915958386623950605354212248992648832892862436528843247537772370130648204841358206387778824602318123384703552224594896978796231157234794398927131775877987931081597247162244680103857490942815210626482311043358341907951183488151304455735354111798593328452389079183846371370488269193938796308979661502702090804841436043566369422192841252735925296201294513841464292968004663324910703708831306413552941882571211073059333669896765580264261560600728983168876446967494855945212013651323203778247791553550665490003573685187181108938405440334864141651480853252492935527017993448798985400228452839138960889409119019117265941261341703881308010686952931142691627474292381519487854289116034897893491482080356885233420232988692129964209842740334704162171454062624938538467761913622316440704740747531051503592032370502443702238013017766322920268231537036363137109780762330632376199364437956143053448896279274617929466527620812747710012984783011740787002731716880828959442047122478141355948771578269880171460611395885163217724914447494663314067241580446623602805759420470665238206985570479319089829332609605421353938716163210853234724379806892466481820480992368618370725271888011344098972210091423557482402118478607775373157552037127737931221088245140349872108946516225735366208513848115274993298753220193469684992122999260413668086701833700471455138288015064318095350745828865446435520025732304805754748838167120180666412856616527929867863795419839655837475005553190905896421081047102118459948717384814581095120737249765397378714565799237274967369392050705096847638244443615870582309999438750305919733380503727118696498310461014911756777357035853538637952097801479356788441047720363890091798337893959260715577295196972758533255886361175218454267504762067462078500048243455251935129189597168791085129283699340932585852898459288398721336475386106204610911846959327010850143977096031692686181895704783388986831274825301448236497262655653797223839477281280773933743375773784766124053143057166774097857483428774349001318247803682106295900994075493121921129264495636127084276290371011381671782280952566247223108226018897237917570252346760959920870808050678425061096005728805648938146349883623015457763457064246844130356935294322196666486956581575893148043776643775540818949692265898555686639643679146200850917700950343256950795313232920515562764991643602476511879845768660780650139799402607849649024611344675781513483381458384359830380560125138898558468796320495366475140599148441299378157543998967492178640143699360459568044812682436608245582577899119788187328258922948663362945151742930113559749195493126259895700741037061176218580330857498047634188349981789814707829162375847923453904497115784602142776304258510183240858136056741110029129612408182721650130329181096210504733616259574254056158068405015173971350650511016797801043638973999208131825907583928508505929299355047826947631335613718241661980458999418045562536547259073630059249908010787964545568364574552163064145272762836834844012298369521575172046346095677902959646670802924062774742768145425279587825483011311829286428307753963469124283400118560945362825586723618993092880303535215199035133462268629908340812186381701274702819290484485249412459470774124134650378823850214687656058293505977028539014077336113243972477334089912855316099557343361349998423926049562999833296602795224896379621991567510495890683810027741550157870540031433547244576024179997573167567626743285376514565279451652494221831788806992236546171645552060614193070028082206024156520230017816616069641072336898662542049039800454994266662661548159190589246112374109489482689175837684585350818286436964977057866908206151982958068878855571662621318500794007573982384124169895561783586083083807565224685841879962082120833236371568498096962821359156711163628703030115581296820318186577980050618716938246248934543746875692070930714734981095365651087838795606679323800180366785615673223598912550235416053509162648752972915688252647693329683549924446637849428570225506743959612042879200497815799037805830843084662733244993363438840618251884882447324527524804530705086500921557326745292880670844093122776907147271170658487640784111420162629556751516167058997255991230545367344808673658265276327038386221602676686649863780829236103665424406518539023807716422489509123921666625856722194992908497590185710600245826840792767244206658444808778467258331169562224844320658772399104132611929513406059192120558668099365994535431595421295331204333562076207203252401694346918717733129444047286837890685163607602416066009460578385515444730786021220705347352962269042641336262592939669561351933516692162948192414385447298419472208746010077968626231444738066371549794870751772397645175431110779383443138217616491301280673836864555252181405184983186699360661015698504470993012190947680315905184251313718399223886791062275140354740377521809130490819593404360966846079948202564027956229963126189940158268249072078001545160033861630305670427736262057123252350074233850049546651059517831139634870061497722364095850016493350015704844675653273815171586465737518686213208312542902953093208958407166769225085843318558436859229437040693874745078360799483149015893246413172755394933783768741605293076581992402412471056916714965911818793956608924374460526303324604213233707735480608346224643929045005868305511164102165738344589919326831137801427337753709868296725647742274400241595847093253397438824474489995496039922860624244528955979035048190954096942956439789596347347331592978752667953599633272334388125983351201130197114914391844795816385983023640023114412050484218882277176078580693536425714499307464101304211325706793452015033687815058859924752899767209363559187848930346184343092701948734097131542178201879649148697513076239729669375845238942019102082900875269456369790732234182589438086030508464536764277496265280993793477158560439765723413147329618452125107449624870678183651543632404220374147266089318557083676741391056756437122654846276796482932384040913903743491088695243170247451460312611625991131875794500530949816322943902062746920459666718688603052627125061988543526452559212070469991463768354273298767523940942759386022458736246287731897735900488989907234171566416734191430320041055883942638241540719459535610038697966931356877631644917174335918064750065941468121861701774247349492363386293080959983314489940751881014780553415010558202359505915325396442487022941335940456961151874521663555409949813245899347440122857159820205339982920632156754356931981714185656615793785713495623695730768234248524340448845392162547397175957567387037517728591047018283240686587262885439567478964023367983639336252340253715785080921114717280395521757626557022304205057224087889383883531759459320295946763792348929286487467414851339489058472022002145638114562664680639456949996860727337195898962421825662767062041981008400135933380443893855196647040495956877445647051805775035699664832337673155790195761898646517858389278648905791041478203847783488661633919134585890037891171483483293800141016855000766303544499687165128274274897382098464899417143963244675331963518276824357913914441306444121197036164836939276179986094406288026395989621232179717184957696429468738674610677650830065246619374520196966851756336281243359617419641841207946318280163130469909554000931788759811648985379108187767289427176479881185726828498124879194706821010543368430524077988054283813051793592138385079574485797122949023714370284684210874090111969874469774388290746712536127540328145411276542855336202232894953134712373489955976739164653269816461028044680401817363730400584143120073128697464860811001112934731390193012044724010132907696695160182097125072271461416036875672284216386167658507076588061689364981540371961004620963002774987376543856059393711015692291348155440847080781709046569497396269126201003910383737964700242968158258371655716946929031330454484020855531426408443673781151973834773349103550439440484907458165611897968231851533081753426868098739571537506973461069193952243438646769712220106950845673435578448256412259391630349325057874466398099022380435210505734244838975483444181996209646343400972169085273493189649103244973463806163416290340538083595603376668942853656597807751280497054285068075478784710396700081923740748446961717227307603460212141840471673724148207122437006497854381799830430101996364577709223924450434128947642109363676815789529833959609484608534972035152904910371224070406374792873444729017247915464117114941645819039847425023619731524333278989080305996650896308999047499987699467849962188272884522117793894253266765228467053460353116078667012600691359538223409546217609555339483780523208497531319375764233414004598031994582236814336735529880103057744821855595606190567866565593524043331355471233128605040606107233903790815072086255807998968257975390543480753400113794708327989909151170286931321078457203396698641611649065962527239251895549709225046575958952627103490294850734908010278230348816105928907215195492276513245113994251656819029318278829412992606286159168876664025596543521560262179980440248028784124510727062589714694083190099457499818009582849470490630083535804123103250452039852236987498594758765909177609895274697541521343323491095563061041241778325875969828424696674429487865864974348764013446329516449052583167708159624169935377400481846361827319373121592122590332367386671228909676068648389931405781763047600607073167817109051248326753079991595203747401256158210475619773854761094077965308009801110103890798463464455650456856535512421513933695255206305085877836527985675210284969183333409276235408861521937862186843169798600407368161819814054730312990091806842292283462130295940745866829945583848477316522030296124871796253023169909837213891981558611762846965730980473244825418953809973971140872098404237889047958746550736333295593922528046454350506678798596185537997769118844038480311637193579420478285855320709366433278051110058282862296144324947243543802420801263498497314041591015573204115167527226160014226069644373785720853425964488436912269522403324483204791720743916806792798878360770316919319935202162708671179625715487292637909880721090542780246734593792692344484098018511371986832396400910619982024393847914224544280734505983047908926028356821970705130929685942731984893428273733868901399659192271307151114508464273265498340389225369407520526932651956224856534045460462671326677351726339234730191588973214888652099076930805409746302961166074688160754896219291776373171968242075050202497536494837900716339553145033877883128214203294366317439968517832953777925411772506285967698262930029018235230444177087838369779821736613994848737282831593467491968300451381313019738445962155867143392264698265401999965629430104198258184486797033313341841216833853261016662389867478896264979071293567744243577154562105142965807010266583645330984678900136456649127680034692552128097276174295069611312987645028657917914359179830603009789400611195062177316261165563988861798140693312951764841500984442062561152585062521731015667152720829220456375089110793396924281636990127136856469296739443346021793457200941416453048126703880676849598368070061303405448476338646486176374728169647739495332817234461069175249304136376262058758184702325281896737180111703381968841322835393139847437059764729714314404615218547770291382156156364108722952533814385671520692475969240709846166229384405168774209125073092544668434928220904575471878519059020117427815498183728161026967022369835328274606287613321808592982517204820898063051254889458809553934411909743944123682972283783888260153020106509513634113924553250904467813246238697376491455797183479208288434828082780628757562993201341610200533710239962236243465797656292371383373767479137085886085919689679385586647630387901144928982474344202588442894269776463338448545931236777648929428588939704876761637391136736274098105750316522460663082966904158370452592063888658974211097941946737764598789374126715448092561804768223906297500104088334986124312748467548930463352887116538582437204403237186822143166365440525563728346094147974718368876119236622190175931841040655249372523528403138106275634257833965713662155225038108717613823597143738003739638691903033052829005827595529539254584320935341550335748079329779414907252588201907616308215859077721219076465006095399139580826354125390810231222889575738502488243698320156930334078552398992178539370388304239467364450433011560656069871327467095066663843459896473954525404152899690811505375490492780336907676177852675091250743524963560981221681038933233103954494180479883420722039727224006823547590236138745817763568327456893641040689388693890414424451980613527577108689171145226313936910747296899718658400327862387802448472746840041055230248391416491171859482815822747196031774511131713119161020561122495108086045590861779413409523792522804605561910936334588834801718106443557434960175307713008986773809250738727679527087696887848665941990135928904257462565348959949088735561580968493124140704239639678856009969177627823003363384022052619093721319975583544440878582188368935496320902196460087678800357297894641445488185958479559517642877489961018706021245940318781694764527925812604401276958477213646462984803658506543451274354551673273257461497847015959794160099349696860056847011724896552354950541657141773809603000045615784277578307166739972157747851988550681285567806427251944603702834328612361772433329228689061452167755129750833559081427192081886414890345455757240837360455805458958321362910233958427483172877656960552572953790464262903771567695465769959353096382716628834265688511514183952714076048661761828345071410210579790480345655843943053829115316064690024753908103109478971285574619656513399982921573906559283787594686861085867466675903768999545946671890199690740909271829594270108967505813534088390343961925552593290820661929526026931470282670152621016735881988773435351135711210670447380164599362930560285032753637673770528246282009440628103402954500177142344069333904844555595763433620721259088901030277051942063609892350031374779743181595266616441897631149961314716506290994134080140551918615210840927110547137089206339586719210990352965720647428216273780447681097895089443196788441247372837680847326618813366729179232151364434775150709651009487584673605298576596268541942095510422886855974893154010058589347692741138525057265443218773355450377396242218417607028573440831397170140209035549209117636792114103044129168459489524102871475907571502675990916633392569212424935304835921423701047462109616012156146392164940003416032555516917610823758734428391455896092298358814067518261996171439731615170221698957143657827958384443410125701392698702017053241598238592635867811732793081349781486764263056427306196618800871900770501329823412075953912321531487898966582736935755560992298510142279476748643539696408315484039812900484125551226294689048396692597503568783475899805275590870127818930227653771294902576296947653806089328228667242663329735221791583258656401287024126763555294712061692234465077401606992022360595840650799054416317493196683070450172525878910770227995256222834990369818687788612157832791026180924981295335273418083941848557987548588392703208393921952091267530489604879666839683802517262470946468684232151154320404337294553865660860091968627018988934951997310510819063808810679865658686086457574376970805865372956938788089294245210396696801645766297999274338239179093602232566364327023374514074103365819521571665328854959607093510592934809460762824283160502289815804461464489198751213679402058431064562391799538484887152370097171478333266147769989737983741677974908148717774658126464657561843302565517804240778408537903406742649207634189370290390217048761173990414171163622796858880215655869378657450567674181352680747560290610376504656085568850741234706478404978652983635525539421451709429421481398015981795308750679841838543173555679703580663169075313244758150666364473749795683162919023100085025180700699888532458286676222047284735139358679591567759250177605124271630701600584759364954708556762979674839545951661550768738181428703688633826532341568999702387912895499440492028373074659255597979645040269935669795050273373744056912968310065871015168801434874704321750217133199649752593048623613616370149779492452606753099098979134787837559087884800530283744551939962135173558669799920495721098629503581432159485299355976586003213016235510612727689426662472309523762589647616176415406590690931894821066742804431840032306593934815793413741682821325324805526718542540936214490628313263584764460746918562076992516994077714796247230749982615121302381446638191849395528270394569996825456192602330561353951641955745289774676690393030835648678354662102748520563340452792505186360513949282064632013569365607197917012148859705206402100692564193257564071263841034885823549589091212832791041461083638688519276160825065491283848123799822387626055683478474582217354651546256452287812955198861230181364859008957966303409182640127959167518413689869706400231713279780653377511548887424693523246306000498400514298591785255386784413627127186219673472306209863835969306638712512405104816167068479469197219426533968699337578415437564497486097557110777667101123970700658285177618752400520006122783921095158053856118984685277483965988256505887543725685899720702255128231143396811044621857704921209543396901618496742237379273138623386571688188558337364027821758641508346066370249482440452330696312389783385080957646969615096750074430646181569183331765938841859980550246109351264095017006252017145724664740223813808691096775224079338214219707549050376930740446500243392896335366368396630454877534366275312884428313692742868473288844312362160562326629207235908281802171522264900823282135878870792604082779862252568638542020232148620026211296323805309664080662663152093806949352879136857756523795293815916392227303733260452684311644304373162705425230104032822021827161835687782371795129725087805346883315676444277447074958350928509627966348047904420529977595811688264268854765830548836440163456901255565009426484837025160536413060697540228395136179638338115223719675724006871727593754512288054763290564884377668613079748538924562877266993060747419489754708793654437292537979404035801877658269298731751956295805505616836714429874344588229240532653626823691499050075571037105066295420278202852765813026732997549858276322445742304548116131603093120181922815517812455217336700577940543417340653660866245909132876440748092495804740015903475966776147709539580420358897800419849665744976615762605370627468344128184387962185082458501417721585216266113460125029929181431955503051520330817180289808223106384924250034840749658765605952652722337342476833601397412793434719287681789408618369230422826286842557982282031250194137662758476161724607523967912327478103329472822410137955472408229912062267932237640030406109953230859664952998857636475962477171868317371123675202988798841333788398310842483063876274770501375577195917201113597629923436027029562972335968931236753388813392900028416539719495145390414428493252358199012947697724226732365675973247311413070879612666514029643528560101642585899354967750646200329511443222393126185712196876702940067395672102471156693538635561405841328500642688000066343246889942740403009054262818980211186734788429432718531438867610182613386310565138659893973446498177605244012553863830667559070218943509134383583929030629939146836601650243078640773801145333746532456494808579616401337522711460237709462766585781382809179591449684078889672926573273193856143779948938829256827824874722243875849983896360971281882515676146853869291590822234822429666069708184948307803135100463012633844866868418423615158927611850254589504485164955716344051149711629045128251259093233007596952554390972715772265995926137333915225863389953678329844469590843378210338875347388802734872629893728456030663753389075606763264160969318707813557834121038761857704356486560253723442481609719110304547857869887959377344330321349354013829462772614391074486642372620448071180562289687076617358110379212165682275314069413385082157087373343123973331283784499118286871155672116724716242339794838454724331045412244989085676137679643609303617287215128097245811485735801612308906082152565474503425305486246566038211061894695347160925004579931226615285354241991634687300926037240567239383309037357492513137608902576622775319469332867152705196117073151317345695881364958291263733314172575561750328079774909379779128886475355575005742475487643179321657559844588450361244208100823578903580670176316586034305317443552178051223852498940958254987763849886246470138826269558690974771236056296588910898143699510488100267664156461470770255563407414370157221329822094263267897221626837952052131788681591683439079152506435084587204688947328421573786228048407307660139378499127914571751259279153140473155123289634934425256523477435800345182922406611981620662761788005357208935952137324679532230087506240562583941612714483692513487600676241453590502282617333345058241586928779955001130992443125280184962830030368356894125882990793604400943799916411881590853250056112131227217222393200643758574106830710385954265290291274863436959439222733063394327788976414313953239136740474501496192869594794727642196064901558584327003617062377883512688920574817403787672613977131004436166509070262601354618399149154931412202649182585896892378125961352159157237406863016733087558860327916210337564568082504984613633969558148140328137714288995914307452901957813575103096394401241031941257590390274209307850546392922381802331901247684998605723442710449847134943395572404173585582128005682923552065023693167649025237005632213131861264899134890175952203032303250583061726615416176400811003992712050322295101122221131931072738413504258943624692046833254806613747060493155064277022772906503108794175752932388482223189725807220261041129043681927652977232677909205080716697576409006125022715480581670616298163862259365535114378961181999230048134274733059611217095163757684845582185436736059625600439132146339328644780595116708243040051568383648495712349105591620332193777896367806836186505811130793748795718792228615466755169274131914785784461191107706023653168445845114908752574550000768375919396468944056453542474498381827293116126151192211178316357899204481686376902809939601437723184685747854287761604569645110476350355183368161729768258126952876321348539341622792718699911295841136657948121709830622413644140271147229497397371408197097452494628565623764644331996942739877385338314495559567458952826619635100504886724047539353541020607245757213810206965903341954721379535153552520843961824229850546096583989294483741716391576154528696422271449819024915574609038905531513636492256820986770347664065824587520466020230707571373721695111259024617245490739583887485424583704441883623842832401036769990546372219401217896005988660667214407858930819036246805565511577238627430359117824596952379464511728634659404401239142426373001323285284878906943593241359231382916857507978195849047633266194030455419514435458558350106847350568299256050719029998298290547123893438010648059716378963673012768429850905475445572998903194291441623914864954361980200782824622293914729318377996785127687534530617391587808083981216698641024216558942232591921317869336678778510992010957914576585312037320218678154221878135466925054382597321976473547905247418588127030619489700582558023524266799704319188149656493590617373340856310282718779821996581493046336703191720389968315288476888280066301438097519511104530222180791590248313520820648802952639123033699409376240054904825538499354449155979269255021185461688215157850627733390570102527066089252022366078793944972498365531713500293587549416497785374573183305490219847565791765951432132734227438653580472416001471668197693994056366026977323066874679282848462285668106307890299924620129200898719651105153261183466729889611668043768678910590428255138939082684939710476216693225142044618290241252978152433944572170327007449562984973838115853258915208835655011896804600832557509454275519080379292721627615428390662102891071757013697052042517787011829646327773860534124792796759255527890610524285260224306207601538051564436578560023633057034524876691609516505343488927432007210352624474283486905032945813757656765092624187489621305917390190808640070789447525188722401694114934223578386529017375561197246772843501114492020268879610011525366196991904782583413831924308543074617106666847973997058277016318927646425940362702723065981164873187618127903180025430219698372318369220737445529214708620804839640603928778451494032684678536237296002423790368996304692521672111164625005423046299655869186238846408199302529954589393775387072072511936341059739822029849289484873994533235751396530825630129934904466715489999120610578505851194773640832621176981550797963406591285948179542092011114757379795854571606481417771328265574878056932896556488362885347467465975263268789764552243544999213274576615828777269191273355491930694749976151121997723560880130095656098505910017750602584548278857280018322708916366762372604186282325445631037981003104698562113349984222500350203919192032550605548716212249598724590380984595085510361342350469469934266963061894694786895412175597846761166459669712662367914461470458896821648249221062147478837740255261676819483561168022786929798990731662849451836301692463686390759064239750463288720150025276538692668765686309958074986713068150617852377742739614767396104043164351744161649861584420102017872011292646864722655411440146169318507725969986970326293600874673966877521764675071063366900591739715849970586222462110732318389927953218582233484844654102935200521466318871639451490914786720058513693304103302908968233071113936077442033330591055342879291435012966040760279891386283052356829772405343074903590862097347986058397092696385853533592217939196640463534769806208320458711264543772529392949747836100209040220875873085322792053396848709269132615995492503606151817278794341362929312625180894594824566534604838606986814059631387371290981017127980164333043693737327336479632849032999679576707573595227217687796800886530073555657586745797609412416741851120294971923192371231656231703082199345829954338602059882316269885107169236244795986498134096812199089294109950929192412746857273939891804406300456797424087743977973683017992940072624749125118256712203752209605139659588641802077021816417212144017402712674879256313091572499711330367968034290347845479922446859646134335900120002572865513608890232680295269635908280593053327224639204308745279764530942117062294878816933401928899072297330787000109371299527689167839300215815184216869237487435701995196840359985864160940658481647320356586515489823650141833625144393637289827776455210148172742319137935111854332992772066642552076600602669188628052286471393771198396313953950439115175635564920621902193384271828223753903586592311760018249453523030176067525723462578310343867514942661590823459009632172818357728743173392755320858874246195654534853575916376883266360101679941059270396128715778084733149850624366638189280118632927783296445289941940310160220345352088573699309036807254105193936480745405612621811719934898529909609350160307366987375786501494217825386871415588640132462557194895570681055354310840132319562966854027706288656266364247324421049396236653387192003132581877991071298339632250662396547516274063588571726832360192896704287709962175063269523107499663305643868296262592608585184720683731175488696983939897534608451018116937096939594431119307159044616525240796362072797064818653175705250139250004803339569453382076322192831969239489100744822671728155930132463485200778153255899490160552740307440750381109417464784865456437391927357898887643057666056428281025223849942570799601727395216869325886560597576525574138055123425214465661119271168505375882107309087190484492019999071663878774704190456953281886393996839250875119277742393305587303270940100329971878483278826575786304615897432219673151809330835369271199636274135195617387458596842302926958198707868252419249420640887544576838722846667492191586230746185972744360529577471362572984767526397296477765824045274824067300642340199707868967104916020623035878160509591217892128943816653650816212074675148772265905668323734952426589895645879173666008208012187127548811117117537601659420432836841015512032993650483861250109313147899010275811999867151789174785177072601224295183007654419486869379083378624202814485946250490338967869233332962648435168078135462908064367905036516728493513779837783603524370243383581506938576547388338712842777839540795220810130329572310578470945132602089800600946705916809880295343948953701281198916064560201334213607874818146041669071070828308977508046292541067647345814376289105183285551067940707274889600879473259719715374470000215556954530752255827153310714647272233387995684849105763036692640354117729699426891896487295054108444410950756700019417263079510790361775080055978993873927081479137007377524170302591666211305949986147670490030866856916326134609037913361599467845929575023430746628560272297888081783921565207468773804863763258817691644762792238876292254557103682087446238252096791638940426262640734666981974878407615563882778783517277307719333860262967676467361299695245436378169395497154957384519267409591424503011409734452423874972182786920525018090048807268103200934144647438406842311774766056760357857617861419392203886342001455774955554352247310696854305858483238261211813768537717741062108710586556591845663300695710800461002589179713307996551635933547334374437680363947374454479673889988067389687430144278319722470655097833281666998537771412684266582128457197218700260940331163668653739127023971395524221625430960891207591430586322144764282706717416769788660418304057927932666917804731828025177882788174721113249707960158785419173363069819208408369825180423860279642492990592390014350572717971969949110847400726329145465259956744292779464258827736457423212399153601560444749065199776462437080979498411489094233990673074628294674261994580661858672316941164303928921231906151483998465503379362660230390068345616432545473564767541632288305751447010271179047626754216819396813560744194535361834163652705103287949970169701223605151023554247201494745853382488952519474839648287151247550825493991569846523486152990483020859901661505737806284107684695952383093699023170993643166226782889317040375404831731615562981835595613950344937953278972605898377686021832868102630191293602269299030059521970663666960830385647530770089824828150747710654423439985633126344416532663942870243078051029553137402701186525359596963408373770557235387183729695432175514943791474579218999081271929543822553870929155686786241776390904815650519201807498283674609449502048311285240104028951503344530175190133440707589790923675641747612310902621521945685743332636062578471600226692397437218652798119172668363067371284822181645277147386389941743571097097069277336383778516371990306145116624940310359075116140139054670325911343950981794834290217863473670164832438570405128245572989985768250279386964091039006556887061470227160610677310588701764927863035168423413822663815478023209670888353381805565133285465636213447700394332577136489577458518612305816125333350385245807109728809332780201548042168206393440216512063073262031632501488258640088838081902225235078299577897096358101207125364581447221474297447126723545838433354242047120516177482640771268091684161463066292448488720524893076897996068828257007243022758303710524092219904711343838703473182320741158753928002337558229992089534314447422094348387429708345826142575415211880473383191361769253760729440352726200304351601744301631128513363683658121933905436563409105613610256775541415183498117585595465954079873923023090497965021055541105049812034779881233549701396515041009954599786661064982546509564702224145048219301170259409880976207101253011016598026604648180077230513440635386545777394521343278556786944584747873075411398509559061118910136367946529654078372944938604532521906865176000311972429696987063692264134553079458445709717284779216472181666906050832246068538750010512916741309408695175743828604018355666054266673558681793015932634026418005958331537320457391406569708647955619800809302349144358145142903082216094899720459230060457411737343651277707671476186590070892146609352965274472988329629468153920980238749130752372454473990915864945743799920241378254227259961447824933099057059622910828088233097425376288065607189735710967822729421564481913205225221679514184156209496503812308236345451453704662190727356169334294086196239699843932765077046274361872995955181307160368321837084778169547447598080188263360427136839169293116704510164371434575809889955000426762662099156122483424815842986421155058657333759945104382688514559772035508234961272836105292762537881393695630944739727413779074831807727525600385781607425723137574285145924314105942529952027352304466585296723296511507765144754639569110251473286102121513141813583533169842486947229929661230435686068071736752731056105562727574189325513550200836843412933846900358400385900038107528824451314448678285441741093184011449965740583022553668697417110123003819956993022331002583537282637997991454432015326326589679195608156570607660852553493033805183418954967413371704170517831909025317740870372473564467106572998122640024691667730984956665218753595656068581376938597782353540241497724143858170835358595936555090735817748809304191934587218753099707107705409287442435862832496972286756219467526044932554713817408274987614958618042177395296627154850920510180567832486773307351158204280176786342262440221283953703612723013023351687486790909505321437681828194248075804967678322596220585042003467536906415125307599704755451425430593933272176524011644213362819802621051451816016448633980925605653962964577843307291185158216114363742079190596819141454433366862524392862887872429478785091952805781559934976912808715016674580158648481277756512560846009669448116264983354520080708531446007916460824041778639713769489053648465926020450656958396561420377266306837535776273958148123459505100208212685978441759060630938251137115802776612389239038862630072461898560983316576996635773197528863966681642455164323942010061156956631289875224218763586954803513903943863841277461502577046827606894195943013332475516988766810803624377179621117911726297521051821755316976086048683617330301724817332808703008546969678797520989051987461789645505517670074662909720962401282697104746344137850886712242393278565235540580456948971220398773291495561909030262411933242630051208672013042334489346584929688082062343737941105395691263753729406665433781378303699563320200888321504383184588036545337569760719789878980351259316696099463624479784622257726750978962202988900464326354733599744839415088559314126156502913506915363963975193079045422541264398696018327589452381124978827319490910398136080597310069952218102885408444029566651338384210666014651514418970397808385675939396260040261072137178963609859833121919000639291886678743931265582269817046532156842278975238380793472365251644134151636199468714481791742429155058607513088851922036197716280241137759450722551227252515430795026057488498782328419998459842702657786068354061291516326696435318422340976809689972384821262963765813208845276638950371416000027128336252812844246755135243288273315957415349429541639699708793761548316160892518555946801228808809382551165951061526232548878303139048560202675392995907267994277470512192809710892932081607587825163503613069348897847962230021436295800836050519977941106291959556706897843637266994585460487593686471822939560934120062758846235771173809067372948884859525865463701332220939231252230852151762000425722837617134703626365642869245039285059851605198868229330762986443069740653075778962290113262262149028497818334866447592832076777053788690718159733135567648884213502209378111335514505236204773484162333957232013764856594186656688886523955928688478434531831198007212540539743685181425429688452226572398905049441318468584884139131182390145282970748473527459505130101820768419794308449277247664459119953316403375753484371601122026144953924634420130928070660748005384907135419327773612911310128447104919621168449571706454425641013582805552870547300060819369887511990131279587597178163180899194270552578738996919641843618294038609906811395236233609450584900545818923867538776656661689653395039390415504525477149708071947165256959548278878956964570612042016550780360358196642179595526543131747550540147583446386022520712336175546493532438418892930416229334855620128478854676612773699287384762274809757020468255627686008607745094567273978792506699053945600333903505918604081260848470689330885102404079544680672828635238857536394597166672072447047768318323717789415133819681251894997440086418407546270821413155151001085922301637482960375098209326545823994008811787921754370075357541354996376434086760083603427816984467849839434154852243465411794827423283228123033381760612239932887727896599297464903890596921246962675537716284564184913962018081551202464976771700007653457371844372241589778125171362424259932538503849921324515374625981434863582321523320877837141221391139010134042249059226078324825681178128318693637130007464320559720660305806918055867306580451373384631501533630180466652310579632517744275154848094485584227584887467788145413752533320237085758002087586930784233183218698901004015359707934780910691538506888168715335244659335578516646202536293711520130324749457070595266615265553283008486649647370993169901075009659858387171941337133583934423948447271307601520799369421308403271397889677365050140238765078038776669766153264179136925393257441043479911728414752872872930680378747124921663157629260148316923071935480635028986707189892271389486222553047099375328774059697543544496123544221654755970171621732171331436330855878033327179520699445277959266792182341500382387246540743151514016078344734157502215973410063344536506703680985885487286669258385895473875971459122873383203032467474457311495199566623930025911414983559536458713703424972793743218324023178910897628346977680085323707445095689017848653862620844361351999084505915858065070616859099962148547837160476473554181510214949712917011376428183512679823341433105807777405465204704713130679955273386610246167489574436483617981477625481323328516581725244080821216743577573125991963382294695573312866623738914550552112767096448297633198861346415105281387111184350187796888997247254465161340156283335949715267293814525422774618129031150736082278436261506089832561817568466559708809663097823896670562043959943441736336432609637880258350036990576679522166030036004176158297778326926655832183189434364647701844930899038741916827275428884820954033502783370906764915408746599566740099114417194175719820349908504565526854068892049143134446368500135306902697856104625706530194503726769661744204035755096405500058924785250118943234759092304070283404593557569914517433608915396080117180419163831691602570162431451328261719339078274862715646590285107021521800930498395008486291669525267991129357740701100506807063768238763095393147349558724182049859047212874690808317322567818296784221309143091715154678750272322710601618722439087457213228172201897196468760193303593366332383749061503938431319553873010864966944571409225496527057679520462141880549331213978744410492315040895039923516512989084537863526949225680124697599866786612676628025006070072857742705597901614749617853887143392099189795488593586608287404161664869319478283516945206203224344708175839948109288058326907927882817362701655036850322470698176004461216747287069014654123334604023531274365296678260928619460354302568276318101735658533135044116573542125787611318493288557847866121058736453216040420831440274834309191900693244012612395244082512266277316109218794144911282544540679834596576789922425027741013023431632927257818114680621522581375842369322174097906657911923932893423168142509108754283645445882973671540305047572164540088026090534215204189111412769648515121486283561044944352846791602628051748298047068481668722742093700509688682354124009209734093284643555204362110691646518623311498640461956340170235580281342696434950509635120596871270097740445363020816920057582276811331111430227669292653755832174004452877067956854437645111543026116620295265718296324674381441702272454984645326233528907403277246109860774458611284996195148457022890783782698318331589084412473992520491599785188518070425075831517708664826392505752384854869881716666792634492335333790421105621877040496727704334274653241376918285743091922772167595829077818990263954390285370508373160482424390081927956609177606655963340569060167743676188444020942006550401695896250325961599599193782302572646199295483963899092465616986542017930248425253372759050138032816989738893254214656893943383587017554693783164620346466222669930598461911779410904897077873045646304414366575203328345638547108984517502821853636846824315948294981141137880179905383857681924937370361679053427746295066122145676613508777690298940546903745968223464237342627068904054566732051123866913461714928767910401250516314367609566502960790130849028901476037728465533676750538193469859285860150360099738871350590703329448114298039058385421031197056659025275577542759326065582038196789562379851359151485028169540136649898150529944879132624325241229118547712959248384602118409789293481854729654214350004241442484991895714753060485530604216700992402100832781832280147450582668321532896170082406306425998879169091229621514508352524490822946316470131256838697607068223859046662588949684415348816493935254824471424548522928386068284754837450852948759054328063965615297263592084349991876664510075331626265225893686180993365167280723161501009142265462873997755343479820734001817564982221020695378190271779252663849749031373437880890212479152905076669078401642068659798076123705008527680188070998177812777114559779943791121918746104453233841548300888884599608447225394188841008789620434369263570309299985833557395554304684551033083635035091285601940383472843084330289986302564587822810953450558068470128474385188812351160796982264725478905375299643922577504253807211076580791456012867159288341767490551199066369082131371568520410454357496313817177760245697209091527073816239848869715765795232218088844100746421960514486939981670636468880797102387409685471761154953321803289280814058998982503916870319990937015043037150537907144034634540199177023821514805085005534853108061285974416333667315713176250563692644211594236930471545996485514603935364607659512841381655241781588876236919706781357521864573789584809480081427083591829312776140612586319075713878899850645941423279571537873805238933809965477369480220658324674631303515089142943255417178113032790976657717895890354591997199437701961417035727356033111088065875654475688907215124319945676476212052943115809628477193423647364086233369985802140314258265959310355725348211512305675820025389734702166479434503905699251015785748612849315732831210161986866242403168328047165673038579194931034537369105466082133402239100812189990441862659162751527025718110356504987664209260451377322492415333990914789972524232557524840780302168125646238803611885741229814808110663119149056035727013508771580256142608445952370938921993009918912878053976127335889226701458523498094108378449696869842940958989139420738913402494866956575591124717779869708658230308671416437822220170363281985052248185264907397686316626085968241967984074390174630954830878603743764945699322728544761913112700337100691237205128957878012504661106520295571778298251050787725485717806797078655292842848945274119829594728092242099919983626677541359008458242430944048861830649034090909076228080301678703498098217076334039457919791521034300548928692929192734933571241123773698407391615122730886048522957659177131750149282438795958151152791352458767179340012140191028647122294589536261406210438574677421874242583863015270325406890350862436472295324944992304493405276644907188381672885702716061935191066303748187317459170414268334560334783244143704317040758667077082762870396067624973559030979224249229287672264946818565687301995811603862622668920223788116919060521758954852009072404377423748966667104914179924159935574641197884833430867855662003449073904858911902515336158074137339069949017665688269063873004218590536096178580333479426106178139653584241032685450855714180559926796779279785644262788995646467558755379923287274946955491617557659806262530103364983241905488177644574151685228978789553879616241130468002934293173160133383243833576790831084276936929850672437017449368381608261359101512955805986693340319589090912898731601871103209436339709727195552992918716180389616900519437049549400209657005966472383414618289392304551939099650084000225245075996799685077334022788438564170863129998548534095648209606774633422071328644423592180978135285881772934615838446634925289512592133768522374645504416798357509351299433979373147048651154323451906065479173144994564454580751486261599697906213010927555742511284102613077467274493512171790464508147307589619217702350978238375249895768398565858163291879493624450384813703965965489918538982537365902794594073177953007752424437106133568661106640422963252289973583493819072421164281976328967784115332698840173963979454187315200298074237390055661832943665743014879291194416858791111480604053138872432809083759736483143822167335844848860269779513762763976749756140879580513188976321489194715328379590163090403396589959370084217484170361763865886803191422712716894512858588812877366998998416810733269250282960602451178331524234149352804773400372133013659362427419449911126317920668579725995103563443073727848002293144555302442751604249959050892738489541579187220368418783922123125260528567522364638276335415945010440619266873345428538257268528557823017028062029808353447002414249832432984112190704472976541396276275523673545895093647998848111432586527939830537012472334608109591029176737840210790506011547783904054748031599905833618533754906341321537735409524699397730321036519192900459452415116949247858756093724819891159814609828726865184657815441998937589141607156044212773966735884262838525897841487295580574106171580002767562484643785971519999803809290739699694386301047260944568878314211887308850729378102109427150014344561693715486336480881211603168036483000740503421454419086596008498566976997177651106124164081020675090716460951935126758519710392826667112010554543685234117771935542451391399535859284891807231709976040262185968409984126205066985534068114794131767097818802678792206873147831278162272867655326570161025751071195956661444029012712446441481262383893696647719983775105013459944706887719669269191525331106733276439197265356771147897766194967058001911363096986032340805647660489541515732314660560206941409346572010471374826556675364786706974519484587697885627852994258126339523097102178358717552133275735254743231716322053708410161529441063937001151283354121951692974801526939145698399372123638622811643419594798023239969419658826397395064945060119802305719171184563545902010233188426015623466612778044244580133058626988950622625438475916241134641324542612492010837311955161673852463407821088998626975628933716985261688430195095402271919835160606453648661983342484704470802168472447288039790243098969681176969722915786339500615759772799558314396731282325960166776766763177309821863370755721042015834001688881187984871667771232862985778771326849915212840734660912606749235946361665007738094770127079674197139185787398948296201561210756772833733361747824092500557898698997056678028735917929071896065248100205294748132399379446032305941132446087793751804267311513826031079656709940944340902383456940658180015121784523310181553107860350708375395346584035496161412952504099006229506910288506783097452648071446546173419345924741033654129055442276533049370497267134767877377504951717248086297888840104270384721637538031045409652679391463642421415836959888985961680106723551132875295399904337269970479706968861604328084271134008499975186131796529660065343580677366612889207390152832041548893359366809966768732894517886195441759501523262858012924323302950801494722205741946145779526608442511230675266617295716859863250071465951161352664190752460027080159160197526166342858632675341645472960248683706147289500694818726290605726745480798146538346376988986080911872244016802150602817259319196117799180384616263558808248129638451128207870997697390616581216901284981465155561998143610506358282629711168795380389228593207386789551876242556694701367691679077685416481587897334993168704247176705815178449483497325958949583905883288028102120875251082296752870677746156119161770325820441975816390424320971648592549132010648247209493168327461807013551233338460811963974609314088944452887008716516305183708496434405854855961740465325904562231270809731913217394322594757598612386353410398446829621192666156443958955494076900676487219228898206147457553545845783941954797230572562548224440508446057235938015415078503728791518436843462321174119430546374041382144628795473501935983420106044869771551381687809422822900381535059948900418967651171111975691734184661728740132941565038418364192508283937163622622185634100591026607761519543394359140505103863026606352440916294043178239135351341923040542948103561778782971952195652746736537142454744407018789361769903905150293879529228947349332909880632223152227702250984884042005575325410957894767651170508281035373728388873234916002598179365171467393559957248299861118552846395508988265199057724742180664375590937218941773795072095801569394936093019647167595938893407695882233061290886065712545831805347467059840352763871017946380026573992812515218753860089825252922424651481167857024126405795000565349042484761643948665963820378548095088042692448048520250251168719674018757787095928265522560554143228813222404630345673763785194826191954622834986296546864666366876167118059436508325765223367076798621151797596521808492803717043705992832771190622868710243113674500464852886344825672121801104242575827886763954316070882668592302770430115565211217591699146294690800036830620013741145896774347852281344522896608378339074074024518690294410509298717491668018713691537056791522454107413213851038593456886001182931381818694152067165162300801232753659094364138819625022931012714266431045088678429424440829777075545394404844347396504298814597182577068200769439529792739820660356628213351837173554572493553204566756348786395936361696602992442486805841143239087427177064137127081900615863424568844780516119322632742864828364561580547739379012664820394297455856941490255389378127121862639011767210995585210340199600356485758792268986057114957828444641042605101517813476491625930623094583025648482615509421565243788609309304457692648824679954309402095063696388876307400993286038801570731411127780403588067841060847048147271807690396844331067020214079211627294429623935396552699605171713112935429361672630497547764120941397692456695866944612813448416156427751667043021794421577126497644014052374884016622632224572273780158629186242989762820834887092857006739030125030746389615333557232686602070711295834220529146143440168778020015950664475601819046953043421192053079481424271903756868460209826861310185493666745783172909496737037092318234488270676622491862633234073301549649118797172298765238604574114630849307297504307433428467780769956812902704248578348922974825891255118302735624064397889528833918004804823492167956172204872215525309571437823213768485201348437831685774969624607889982148559827204516922170606914480970406519477077320664497043285072649891697906671113089937801766075445481066946485970323684230057236000794080284042767800001453562773525130581140000806472443588452959833885168532983016401058858035074321763136936354818750540921450379879341707636594320242311784337202394133559082359431993318362307655433338735255814139108791505041663276183449348484497762571606405298160864267016080356246699254234610554621834214740284291149501588777220191997988682717078349151083184853858591088140258043717228851196535859205571155742436986897670747435119047210431421930927366445492888160480806372439536457656833088838583617931019693296437466579390259846250219778987573540760259437220475217948961027603429628794974631859031501541247664498667008692168376652687712533507838110645093729866365313048210238443664027868536262167858249672300274103354771286559839822682545038421123983526813719052723243134731028721691625742951593157889825900342614604266022527026507196156558695433457229086940781399045420875848563834513200832068848821274451801632541717430747233517683314156063343823932933467572138158106360233034040448832317991474486340699123040539634062978521453311518619597574558993560851852795266676641441906163177857408859580068770616729220030054080125065615453709487456010359318535747300821545169158822664286066543662552468925474818335721570488381462147639064821720929186963051738415442364142013727870354043999101373518762656569955592599432408532917103317686944540800424443894514762773137891171844288621684629874993045296813217644811053879670237263094121030436967549063138935309759609855618078531477860356194639343566930685960862214394512417014448243859966855689777320008071571331411797942835839405768943470395721905452711404860198420104721857570840349226245816637357154662608083982219688585017688571437732347700493459811412878325444042347714813070610833519661309603037896209156231238204322240975230351737982698037249265059456419139644287873216737600750894346779442710074018492471301907756429853614852624138141282439476824174503449040554067592711323431523597910772505798299904254367422656410912587344904915040717946753295215698802362653407231366952939525803691371501871317013673078508585675538474774815350699680361791306566728488505794694717285710434561313575422725982890316723869042731400806970255159343058572650691032070353546772994904262256490871052380619796367092840413034625144148502617638419453185391497543332391156447122956140935416981262192072320238673323400819171329336148387890453582553462284334682827033573615134446589273704680923271180834708206144157181768942831561903958965277175959667296363686212941083816806297354097123043872855785051381071153528386703438853083784868655068762063806133424803555908020771044973593730413032257488244779313503066354035078047764374381539403863802704837609826333066900841050847448144399202567572501010979776738381092779775833223425316994135028144702863768157234157616895978793826620885967328551028458573424515703630290857240385091613731770540883895080715629100994152516200615027665980354720635825655410040712795757470147976603224616155722901216313729236653340171944447267522052237308988961898382509732340386768636028847481666645227698783192447917608412995740139823605797159753249906206631928588878084703292018127918424032152408907177748131398890720117699502343909150076606953366821614367327820506636215790183683222706515880539824695518456213259361486304858074428790464450939839037475396244435095553948341807853537582873842251125216888008832551455542211183026278305440996621429133425297240701768023300432041105194477489199050213630059534270708136955238124760294450700626557639312078145793877878866647924758392685632609582426785943402516029090048291860830630682777127656806943236680075529882469698921632315798992064944156575424776574794280648476027639577757596566669930436621968431718722464735845960952619704770474988536669227053518397813907187164302805751698832914344354351156744630275851751709387341808413037347433943154406521012692840479034494049196659101187944836116868480916396203404189402872501026323369607156027248955158416006824339835605329692184018273911699703272013295606760779116147702115803461965823035031998403812420326383268554544329436647330789820399146134614337651847922181817410653947136101759385117809940552857899044068737836077111407734453544041529885193433578739657849631321292503816515192209982685097223772049951575898191992660864614982638323188151304687150190457570980974815912884148618814333683516246219661863703766763048224348121797954996735627549485686047282051484775527406580286599725208683205190135102752861115069583937843690387702347053131019567601345380265847504045644494264633017775427083973280290463282566737647243785509040044185474319931339446869381449570289995023458770735102524297110268920127533103517626518645390393703901011161647033049375373817988286997735476312574107870461797549436124729523216121187392330531410637582019737573426177745352418216110277528794458224001157350030056063464401644630060420741861139558026247556663496675964304134884157284872245980127352948072175023743896123573105707597758877869794853986350849611669645221652304413630668526036609994803351744699263675559637802370847682695291965676104419809902279822051287377419911391999306025834684053366800017657702161266014273334723581495619411215147274357740323135479158399636406277208605886366543816992952779895747754751690531090650719046413007072968899987646737291798069992835682386459359239857414492447595547312001417885425483975644228274396352813637854348786347591316407618412949478075278125563385515136162398012656432264322269379285581917387369430953639475984873123809452785438614923401046347978817593349154279555339926551403458063490218543014114496797976055422851230286188998168920741445046785869852187556097097007128647552822396817936350049121713766060712228977241604592465745056824997866030149441987869451988626580599954696863377061783870680169273511069291426283714684456372684990703983902548245940442510670101956855023922919123472950028251211075294367088734254193784954962721583817953993193154591844970251523724487448359293252459300591949714607643675653582608102679163665917021967847316777801120643847038650680978252528715762916099748572374574609049804375258944131627815671863484988194458513519457155913681880291421640097495552996355467965199071923602676143051924611207699161195452746324071092920590496246752168971808900384176967837964688546018047214547826894096587207254782348421395584859721211525713662736517163441138521419632969968046712861284749911426677429102390178634844043638223680039570332586378151671498883713222339520905084735427295175668647762829067155706486159328445953326847380350830665355057410232664661266925534420859951467344282430468341617130220566038656233498464819101766274025636869043142020053074936782209864499308622087036816132732989303665378638889263319126145522669047731995568000115249253557815712473860305381134307210497722598683200505756409797939268765923117738724884650961061727856718540198792434662338754741444550076126665444047613730797859849176363758750024719251157053331825320448543802898440361502045299587826855980917141845687807100178365051563023865765937406557682469550737235264985533506987313480540460850065315305456987756072225528293102330764863010700343107145810636985874763822005342102530865439110271081710006807698761783645089711565346006365257221200830773726215251969938074566845161243940150230067631360480043439146560439769443370502076008188790127538726077925575632701785094440488645390539319641876646349961041827510883545763844852700176171036559900140672641462757735066916671783258752574435840813751428904561955468590237270339296853185576566959532958403928245370202194590173173166202998315820685633889268774745151598484498837195577473453323451562134497751095604142810572483573728614201148016640646816028644342617494039684270722621212138576145140437050290797606843377716946775195883558291531720260087002423345858847787457667881348967249374255812077859419646235813835623761141690812362129890463224262843304425563537072637915765613983507627351374226448148641989017393591206947154279385823077095017660574434069011934775904348341462620625921929133605347252337195926759745618445475281293754732526554503361424573272866851897413157598046605501556019215798712027136412316434259295834428203785601545549882859091080276536319348304222768776146957278251689601906146395403487777828420186312729942654989706654445226527463493728449319796694433079029252472505723690396190711877289199774890020674793357541133228214627579207512438124070019107255655162311282606298749748487708551951518306041590130282856729387560575874958491748040694442020960217648114401610000872493188206431134731148203120496921004890425654856484109377052531133414414754446915369247998943675380633190587348881949186140828023809427106998269429024284189227652161145864760074531981075044944773339609453776321873455089956105225331887170352572099098397242377399847719388589531953582244213910427620294930097736645923521731664706071397586313600774737178746629474187150022509916074120203247312485236712779386640704650935507394701891567338580931200873843013108932641435804205160794637443520805935031174588107932989890935393713966829952031161377777271842328921170820167709065896773010706019903999638307870998361759185562307773763812622488134852422095088057696512470809435377292878379193128063918393793542521663919655963121787016248118975250397991757037613187775816068414472280765221258833995006570937240202593336398089072379240865218387398749159022799316242336912975525663696289202668399807864979940993166438068429614802768526896539959701675446207877063975628640471146809561817258412832330295434804467209538042851867546398174876958190547957019055116820923421587718735451474126123876427875078987840316221992286336219342449741751050235568201299726260027369820861844800772152700469706532479023411980356264330359273736997038572903072487988661414813409407390563432707843663541215930560032365654737706796480862985258539712011841064222424269297833578800537793623523511254901729980641992490481130739947339111274259793046216348472121189832589215696657309581648192814410948120517366975357901904290792733354723667503680103942440898046249847469171126039360820088426977642027972326698823318367596714968023458175767472822619427295091841962772472513927619476811100828988182042021862777407039337171592690874828868098075998281725173183509679790379978366310465682086224340203473609417176881915051438187844899652206467251947573756338549165524828473878950674576634526729777714738424930211424669962409996662440720799452262453937211067747540542887603180569207176815403748948492632450544355182687088573412637944096806083419452254010622467954507138524588713286545054328868593428346825303139956840834700988740776517815237393122311963694181045168585975438436752136094359492579384393579223778054045198569503205620807460832103654203202517737701767784327498793202162527784863176542991902227589573874619925945356778058147666590631243020116543601736578338658066407421342913944695934283845489597580778860923762570259400844967047378368128253721064306714774636906373484328606311130589138228976850535513449470744252005118507690589019156348338352247279242668689013551647618946952498230303206603636411322373533601021326132968203668339060878506873618780128256874229057853459673400895560080661978431632512456511239415893919223495240184139165290757979822671561914830767082225747165148814272240301032296092492797185875414745976550477996589956353663501267366541174832087349286176010904684913626929444691087864004778802338782266804461248559317436409680602814433942188916852640575933962564201737129423880159317903986220083967528582159393803914923465565076583388746128871353163289216139679818171520537610240212998814487863084469098988227786637292983820281500756764411760190305829642204526606539037001094806191514692185021145023009799555234096215084490960353758599289527807141743381121414725569954402353162522332988069073210377193021395001508868541480144736419159168614574176282539505906725626617705745325756135241060077938509969487902950572778457869926061288097780239212940408744610316479392106133124123717004549492934557853542480123092881657592846584334066348377956750490785617042767227018544224097315022801703370522345696837621968284607445344060092278481291457977955537438069696687948134237303151256009248932728237387280757234694532164648800948515569641500669485058122943131040285039072137693869829075738856332322217333413515846013480993065164835921508837241816869892244625343747928587876287622956424662179395803866462814178775784477898309013335185927054582882380249384088593163910438942759532011373773750517890420979795627188903764309797294795794563829186388270465286180964275778568480781000751746978618311688935697618280354410451592170792750671658024533433913162228894661384151465477758781150507723205392451244161085442937599461812182591669932932181895740444358871780522956524551202087605305416745073164985670379496669262894650290829974824619493361627579134608468166803950990257583227344782306486265528909603065238535608938334767845652639859067603439210749267811855709874927138130019973183469676593339567790626287652870283105308164918780299791682889520588554529115089125680985613232389354710034522307286357323067297992333607155643654369745965927579266413487436321232715168921980574658118643836056424409231615051437676348609735270083551944254662632848168976160092666766204402318855948466930068152830559214892646890586179481316408218341174516136480234402587066000020102955149631244307236753540997957301482407028148936119494252341580271396843453034480309596351963459212670196731864406220615293179321126147580864939153015467196184156347247627577397631074079986052206151620804537909270156565243982247296634989759105536829928570912945453349937337282313163186702076849930037826637012451581199338384973281187254621302002000595802667226047262365468337698261125018558911413858582352999858409205832673018520256349691010416201918427976009021379911608978399155404387615647008552438403336732578240464578461348723170924473914301896394256708167322683952170181337106268844972909185665859866067392578456187501390110963587102464449663926717171813467094066718516617646338941885524149191778124289266436928453201392689640229375046637926082754120070171623317035866907922491629262414765685158577648426585135442253934239535795164620818025245304878430148604327547697465761995644924677759010478849386452933517961699487192925211082276714706846809653976457611092205065981523696103027507751686794419301273583226425631625711843583942166217571260705173462757020170594116899762431940206827982093394221093322698631656918743966417727457069718541139547153776791901867159575340038652080269204750156224904716160808203379616399763606884254650074856003895606223584857061187108795234567246514692795702476877690610152194692951680838676188123605219435519238373566764631099153650360695529836497927251138757322966809343131918189904414820602909115623834772715337427711762071302305736038123129727815428968763098855941091286010377008645604241393447807950671257690515517709238771492405295818579253643393788235640172347474591303001204407399696464171890384389818277704205185111337687165400141587908446227615791592166841990390176935457852838577334091945105131858758224414041651318195747016934029482171573802386789851430156682321612611005566638442055978701412994370636702132811648914594791024928592805290295317239747214525471277004765951969551322225177072696833988079360725203771631731615057349049984017732636692651025917599659226982731687643382532340795338685857662233693337430681780630688834782903912375879968648140569133690732348968265336674643549996406700142110770530412209027866789808823846221598749808883232165480754764627441574563499694821200414505385520744569748730789293262953588225160619039641261477012306657137220469721954213433594717252500425352263044943499881401151919814676557148831861430720537886387725144031206413584013486828325625633926579492821198530484355255029916161677304798468311259694494745111963309600278840964332111375416009609242770639712488819143529510310002727752535104945701068522114953858278216766801972812769318525230891923166264633023514951758455372620953900276458348821968468470397079898632483667284946336625351814196485540737343368483118345358691552494341476677020671518053498392593430150319779392807057299848820369326292431102980622464466425605384630886655636566902820903565102015934074409968084954364522126699749297101106565947594157361717047518011169612911655998213234828438499719335147054620691839008402300919043753264238754680466728647492241343013195899194630555139876801271420674619253066733092915269240352025111972640822770329799360496301318790510628133923387864421017064337093060334879298576702000429817224146626561067051535356239641730531484084344598055767964996595441342949853233327246574314547597866222797471786808516398785362452390335714138506430963128404452599652315479392572290477322265191958053129450118330057910952084376395460426723915115524887047005552744736394366215739279969916167011099719371784701217334591935671322140327952685136400494312041020190356691247754127169888397394357579737190009569628687931920329262397335195112712523762285496206128840013056070485532263843147940138773065808546029398358966801954024146425196925413040131462036771122372106867082763624759356209842230944366173499404564651874087728466063696043842620879680809964823355828976177593484340714892031652433186705634581107568158342888473788496425084531026692331915175802268501506113327431937709176501700775838491600653465979042100016161193519271575910769122802198136803707270449893491156304436372343289078516490591046213320351115326853554137982244866571753163386743090780217978179594615638587337048963567608994843058468164460408039261864956924928919527236367291904723113054545860257078825532676717869286005512189840814716079695391164655627337621224427611052392484945964636500869996300167867320786557827725100038757408306743959573822502143100002081275637179349923709658653813768155760460155898277043258871946462036961165301832617888396243335886464226478399055346489926684287654762652585214237137162267503928314091313986323371514590700359671829738867298822995675840573135189777787281335428917731405249114067389166591317821321766689102816149870747668876180769364327181761287159704211557113228545628170444355743092182430412859203159095102149948083668603221189230352448036117346461432461580173040124661482069923308048800019343655923958772488175227655655925101822875918879591482454074982898404330898196911295893926117224113645545328056180071168059810067862451113337859212387557857856975295860055578422271104334138780654331244445157683214212947294981891659013983659665009852384139716173812881761086373621915536608359139300401841459797525360243698151396897698160624606386231033736982434288035295623804787340749497803587912986074066180456999377586290500093234701547890495801948644728559730073929890377526058772969845351695257958641895919716854218200696314017922427663652031797851617670597978080988819474656669842029235035103841507945234711305835623827731012647130844485475545719501520871967409138716810695326914467074040610863909011258842767312185614787678977761300482157170357479298322067004947459144517296599088909436295410316598233729214122054635087073048485770470200205516014702862918436486899559606397056856516991703614264611873342778465502109476805944835517084196386500280316785126571870624599078441029099619521254861380850046298746667027956338121859748910878335899583473341012289931332163378647919641564151620120827041344585842173979878108543476603110704446973245185162826911494042756162698240805235807592233745482581825324072722019831146976879258858668596918616504803391747165691146469790532664192347166130720537199330992424684447551226670760765446952171037101951777672055063364589726147721455188449102924554893152880971083081121376134235090925554992526822832274318424374692188518913103723286791835943444861378783484132742083700031072074727545735915466702056533217052457326145533526721825513845425242471001329175563114834199268412532748436078172008320571976909709124376849357517779400855337195599813956121599076440319636410949874785416223991888160124089098845709595763443072084804900140306535574398321337610916847114201788886016137354385129516248318034563192910221774065006129822510389531733464502529770224160475059527042283565768021625471304343409458968199825706275443116488575926481789765468389544835899939675859110638585222851791177653409261365257535849288422796955683758169066289283001853679009587851070739025573350796939385063332645422184319656025833692773087216717475824727379895347476559493578554649364201354274683441800490475010740272770093867238316098563082083680718401596606471992757176955057114777164031861764425077775127285531334756479548878287605090877812605664608496468793651520528714136015944011886483505018726713490871111805602378385945384896324837137618147079514178105010887057118336578853266188193953859535985241601224520546800951681608095705911308932143675220430901724616708907556652937777691612319828153259353911893208146143739222651920152989127622113654822694663257850021995388530627402628051271716322879450550798829950444523141123515822055482279635583703209105054793135505137487881443485343097152461540656362717185208733896434900294949032048073129669099110139171657126789853063734767960055818309805935976878575638105537531299372361512157707005250965198065731857502382707498960118568953595121506532742837077175231894799712763004731974595774487194094285809428225924405219258718042781170750262421825838724991423518439448158756926750366922075636072891141560839739657632985896265928720873579294046042063235440379245849687903054666490912905962904146476078055634368589964211167013160101730555428917834579071714548882819546957728205908901994346435041325846110211363223814524562822030825060517311679083381525186844560214827729995632095448900341153866625186431428286877924903893031355501829065954971598460405810776100590278148820382933421743370736177937587900756663751972370978219239010640213519861842424511746185227117215791723701395451487890324941999119424203621204696254864767191917009113644389556948607782893111566754869297567803862635341794821128373273174881140091587835185084641357486980843660746743951192526720849205799148570543474421701896798285783428137380296313339076704597626092281151622127611583543579626956275180647608128347094309261531713656286858661703972334600710105346354717643809677012317864714891488008276716325811315643219840774298674181158379634665920918495332892553630813541976406648741569476580144767359814304864813081755834707012998425211237047344861183521120139971038836845776940397383712556977022152821169903905026785658066429477131043666591706928488096324313966189665164555968429330779540463804265993927414176464656280298941490793056986877712529953986873520542281438029741890592019263950930555339430018104979531417240743314778724135049345450306459046038970719339708214662541187101358044067680085550974219608974363011516772483746249430435387957456695165803472318505158459338935237223653675822763468183164026778093779739750897400169924662673685597035974442227646088679844761302367310352013778852330638246657337874711739197225706252905660668158456391699579037764940150218788089229129704924226557732529841129485301331053740602286452106839954996643635355089333100777523319749182161026967190916885891819054607395124697602890787019495125050245430888148195281147791282362148283898910920582097082992366434210040807624065431463897187459327294844765417553204398141943386583799811604400043342770362284049115036430542823551457853187071797474142697151346432647941007192393978799851667910951307201222328684495946167052827538067347894259544706555060412182916232471933713655904372845694808012797380161709410860282179422007802786754656970054868670341248608396900946963537607153249955640205116929917915115425423289406463135417319867549096731423225423310825309380950513352748919421874630134826843928758103563952923334434267746498460549053969255839008742744764737863338601511256180992592127981376442313399041306590454624067203388238793038443102982457453236602691762609662233551670773270955458015639637743419374170151501179383896445101666097995387241972353680611746232717009470548048216281887305047846107830702919040399262581652148531365677803220059408566485045826991365682441236491559428032906879666276915802320008996061653173797690230204632292790700718152382987785890267736516696666982916030030550839266980729076528641540306059473457650756277814591534723001681361092878664411354932627538638024471938326246904011989960129834237904060931303664608223308163958952739623593007443568547576086847785052521593741704220184093564215716064064707553930902800059789161729310692810067734604216633916278459373715055532125564000731506583741467350321041880194806563950567824719328270183914566028960361008761205933607879075177671231384421336877424696699066914502485436057093089712604725243413271106228271383223874959784611776962143780073721146230114639509938114602627071003846822859160152924726337096170767719776543302157346612440374755415094295762677474545075679716360276272470461399533202905285475659244433358019599517622210242683724307590052658144180631399580155683873389951186765079678895792345321007711045113037346694917057073241163460252214688299970750918182429240711676638420708713815740094559634607361984996059829638702798301262082759300992284853586011870683512123219039111373938720959876900586760630985497038177748470066964559303737580435651712664851683277549997704632731992550337152491011172706828232862477799756301101801322163545021268961375959714387575264552614566775771883861930631699122676386446334427949375857221384043448394562963467964206249015750663996682510245914829931726698469398423701798400900137895359460973176488808112807360630550468047938398889563515413867353005133402135177633065947592581928936117170532857845132274349892081666328535098539150929553742082256367709819674922680123197915598224685788041424888860181634635872931459615115145864372737175986859961661449954306868442928947263833478223223411068759904482569266103755573933775232640022071034055041163070961295588083978188912395760044217053571169266205764827241942795719509463708918233925518659481513059281841067753335760837213070573832847687142895109491599775689535681827283572572339012506819568144253408282136956863243687789289813227883821300573891194870004632167685702028672040193191899233667374569951428719512403676428653594600434313736987433311897037141006643396932760548191686657645497565763248758438713872226478506840980940700857361373484693666945739954710480949232774206843624542336640269681632786825720954826539638741599114214393687524190249247546522718970253117169526965443407211216573148190221148161576909223294006864948462701040944342334084229647963685745123914508534266149986740845458453070042340294806071712746315503065435216775498247179907052361929515166899555515927570853243735060585896448797005747580020751487041718781544227527765360584621108941967899990847293343136612958051625162922106817374841196597093698028380836217182647000943898928280316348819074863999025861495630987802629481278393129987972459829321739997920884971920960487396593480676623009373424143745958749057567436967331492756062295706425840529892439589546378188308917894289743283583775520587489742518251772266998625544107084951626363726005615372131017739290752067624397970195833436857923932444669998043372718617472617554831187640409249574479975423006940809570848290362362550064240887130540044717595772325668874190898024063476682856345145848216017109955379150625620838633699820083960829593602106949134529913867279475041544210427464988114512287287068715797324521656282186812503186926258309976990364435975231898045298828953417108684402003152987496803821690939982857215821066047585368200834532206713938558913194114703246571533445762529061050261084946862435788996972526018470126992086398122905998291942449272569599408516342461925119119004114511506225511001858838746904972438863610876815694557255379822557704776038942263338825212822249239773226671113273809131981439632352361877406563372429418299437344421694979866067164273850870736359290111329770743108110642924898495475924380407570693964251511185578919594791081019178032245234504822520203250641747376938415880361272701142873864022265958651219090860769169646340949381298277858062040604508454035419554942887023408445562964574774241734112403438004325450276737316275106508655131044724461830367315011866987857395559078171802528221029622976865989285265769836970613898953261899563487156166993611454421296567568190026717905400350604726484495474442866383820225229373381839003588130762834895328339740766967431462955637639325524254005747953852867791004789601393398731623349067809538299589047982344910201224493599916329232786722647674567545900877085481882409935868023073936829274881771273978193622398165378885071938999608562646372494271863600573046946607787327876195060742392134003784038187318246919231711455734293957541858197618348016127702557365267717086504327865143588316772480527514370513296050749697457845695346243829567903631002856828220811678922442437898164351321653897329285522520878510341101635509876012721408750998471222777483079090667963472464850545835329142570932742059967724600230379765997272361552118793525497947645942992737447847087255493714762551894608295908561568770259702298963905229726486035132374826932713983946137159663805105445698868912385717292405199112336763979020314541233027246856404728835520333117118061636075268206204401680619011893144830864326614566829306110265547384559947001882075560368983804759822581899798614088736543741676472788090907201053101967498048241490016646312178699826047945197859077790142485736408830949139284815233253004213120891761003702749456276553088544045629445066109791092053333683237047329429879108332268923419851281202844499551953781687967426600578126667052001064597370356366115990268388892621749276976455629169156212501621238506784600071841473510647157870785489228487806926675451569528758730529184088150533393055479500143723414704297963591452534010159289242182868959603386860120276310565992996233220113266007885295367907146712657364105537545210015041523094351708269251786769180121367771385650222043301732117882093856436059692663746553942325279827435105907525103276551526828898619906595744061682443166953891664449672261350473473724783119345855039161708054808641767495481250641907264361941557848071755898126099390180209569655536275461808096413355044062136874412292177861706615986910899639297291340610912936226875545503246610665590078218645186592060773458291155155238638862317982247558543863429533139711412889430710172198718225184739292555697810677350787913318781354269093328057889454082362453233407976127074787218003493212812152843673700457681769186379254419967655102936383735731073032188909953575784078817908244533444716618973339561479754247093185916915824692320458286205972948563975142178854444772604378442381419454611804350526842985442767493617967999377609827291240997329200581231783298747228223116433326252298617245998307348910177333936960868107772577175789736775442079774575151982586445031713343272470115675675802580771032882287528029156826327984870261581461804878216909818464163721896083813692489102297597258107214020254328476843513412954053926224548795172562067867377343778110862158212084021912486323717377248095230336884297484267148553995598378462859896731871071409591615573662517599803082810512499424000475783185117442873708761769580013348167054349997005329142651374212923376544267530934294205568883476699584556921541690097751332889813970442131491521669417980379561954247831647518985783520297977181765510502514837399703993641336988707332746063745339213993539125552272713732566353367983742380765380329690931428042475225409714611326054501813003364179056017665266274061520629230500426275463345078587154582064420146688519112304782880785447423277815044978901215364280273810333102300299076405232209199630118900136240503633743859860199636469395484922988415661829398702803122407019921088887276223467284365299292314501833320976743347401470081705873725730592579459032094119550609521661902365803618518974834649596817138901630674935184055557839766392010889510810111934134922524280062618442175121631225796556100079453319572140738603728742178434387102890391013874161403764204293809434233145110009888656256043140321817505479124299264164827386530765103513921565032148766189839948140218107488408723055963436630406206534235437067539482627817435859933757082024858844365612368226971675031066597652940004194054490569867325836630377985004751544757616547952231882212003509289691508135368843822885536404154364284140653736177827454850639161222846852902673519900046737782519295735679726809987961882494036639784364663773856898628771509441123621043247327658141959765805486791941687246543930189168726782432767672573752779048407063081427446555659500606674410864921302550300306744730411973116584407991342624912575395915314619708558967817037412847981175800042125616104110358975755545969323836475371053065090924782861028015856202433973018797945146223194908896577044040636652800020613910905832015627389660101281684403228456065417171825984936071036490959525258483874510153061935034872148986071147138557848573821580831828151767522798662388639321115335551139028039637635320331889319053068312506892789785043865948897726997122062822965014098383812696008168490479576918225274418534908378383126858196312619316010271711707781902591479732408926022183772892633893074794965037768134483534436660378717117789136748900641771399789732724118312079448307361942932056217225060197489214280465752440207460582335184015689885414345013697374657878982491582727717643186247747734396243564071667519619679969884924891978566182206975765763985156871519435003402023150169981737753887469455297986859798066894983605495155531878130658527849155442277427074375498449353918465886843272899094505800615450267816772221282440173676612307470561770426721473087543372312691340461932377140700793026379870083096738522469759745350838397389111802729573085426355513553900475559958751373646969288133594822155819494320498571586948558413683882426583534350684023725762403379919473800293746702031711627167172672458030993085643098574272503539591752016244198847082855608490113576991474035692203610913955103284855929204978029091290677423806519400821056778412294799525716980759679276982231003927540967670557207254777587004433730417466570840609106625961368704042398904257059455902754043931881420940697405680647811387174010586698936657196594359946739875337425971182434969852881973985940159445394528340600560385474249341778199043579999640503019699207761117623298863765392566820182940966906217618298738332188532745501691120341566328986601016096036599103300611785838787130216086433190275290042116906477261907645872109272833709296010526014894149938252707097233115244719277037807343769840329865343484232708067816676405815664156494325597449922288530792575669075813015419057501791359590790450860367851610361928467964244973609747941812361897185867786266964644012704261057778972507979073028159948725765143535875673579404388809147335832213499789539424421857235689215199911532995880039287509502013948033242958218763186311082189158084450005847285866855822849132062789845334282718663107983308630150538789513279977114083681789203019258823435845832223036811699091969606605630738665679720926417549461750971169456819986146528948655121499113895421653677789393901579296019678301413995569133985638617463877898524351318497683210143450493995222763500882138478524147822443498824272636615979583766970723223430774491662644342795344572114303043044648999397621217269879590282050761642471244406141859682265339392271871012766204876742139435872881220748396541893960813049444609852223698244200807172271900689929392956963323781175952642030326476264265280476159881163377805132428694859625454580812651954228530215894835781479804084731085864945574773982629392330643305362221981693645323306639560864808557140066276160737070437392136589135656183627238366482511214439283886253393600305742647293405062646182339711243007776348527438854875784013139917789947806397772383627220368918911204115663152242251832470268018331809552159101947743371003163675113207863416059699590303271890299082540841563019909908443027103132156992918098631150865393196137067220228970191599512359282149444697893068009395036391093726605928400247158806100021901025141439203879498306881398216087420673683524361699322608459159633678446806440059205792790281313135494005946217092225174450795901053178085512120884390224859031901339614745662941613153003904896793631785090668280944584730793153121662303841384119884287165021935467744103823626523424497174753570044458005904927114114678097175010449174706982049781385123790270720433896879307271530505691238784977700467656463362561443215971835386030628359481179329319673212380453238964873679314168661713758362062935559624418161129246318753966880675799163278636953815306045856503693945173022064211597712448276861325316118049639176207331130099379749047482986827377146628872986027201695118805628863667365136776712560446711686125810174978649688669900794230735101495743709631959730175869658834433602762223487537369232591347934803087723223900362333448198756790457606039761225058141087503415694571213125914788141241339543294038567634921650487587421475376701596784095944628780369584674420242183219945425729084993073887640374700769683760604000796718575466506329816838966513317066224131487049345511197256294564568410963974310511695922205304339617240922458661821454996339597438776555916794642677078194372481871953002307961784392020276762272708279019023997395310638237493912416726668707306504909585569305332638136633903673399574733801045497252086272366608637026878775930230020999899918204326084559858432636927184209506355354143085722050982053280993740344574785897724600083037243851583075013747550620547766666498939196567018337202775363647089890773337720222492130911959115372200508782473087184971536859495100873099131118468545445862504819696078334851924718137703699097894318610729428432997798800911088345599137626108318499719906914695485561268564732365790558544750583363605239141292586077346401218350519260738723859562970583186295631308448431114288844822428745965862844546635288544955934881218670246553650017618652790598633078509252456883033907812841951172227365766909107120865762538594398741907839840068313045674749333970734929166094172759594031379788609697713512297081092008761060110543515777076033658464470641960108824663247960490710110749165618161438326221249257121475435578609244803934122197532721842240891143412777116286307782465450360089184423311162179689561241612767784365840419107030488289766922357624853422597161539143878105531449209797060282844286030532559684313433864386708047595593589936346555870037317253517471772207793316857300420317922977980552976511476809306947994903440218133462282575087760344038611458249925393737340122680119346210112342736453467196747812093416037405374736485686510480186534604140408532205577973435106400641481145193672191835614684726607865369950011325526174362848738492604375634299754296068158849374671370186333602746370138966777563325515217118641377674709543691420337862612275597735667309011124972909598368378063816215434793354135432684314521174040499988725292760224162243366134649147937228145229560398578297845889054893021706568507077146269305043587027716441281953359052229138371723271407547276354908601858685012025637427936767592920553754176851337059097534378109558841300242284282363570705912501104381687123324668318156209966445680240755618546762569325621533838078453532930165880411703926303655387459130098361741883126134237913012275221894716981824700832570113845484388716636672404495337507062649428388468064049803774330458627007279690606826496407434349634453283223942518294141015691376431470605104020184483412071373270856898353809636079924745806435651745781567122101390940296240008517401524794656787739619472297566242540404789058334982430882098871993793795622512741831598504770913944524659709050955935311259411676883709383863562332618592997550191481929873392343812432590633264832568244017318266256088782836000227420729007752795575664709756469487398843555141860232914770417875641538143715379852804362537049756662359888519667672456564297012903823502523823283464150779762649707547116468083538806634241726948761039916395519367507919600622767095690677993952972583128316352047497205865848043156725356722991981487925512948012360951095800255620396177899711973306816625231891777915976983921294945375485367753004549283465288178498223684933679099873358246291851240947944673900033496381490401912458441615564881533921923788195728492940481269430859052322747297513962040087400666705738123984590362504843771619680020092570017116394785794190187755287462108639178377710645798341529178917822904897102515640297311052744197762478720954096059365558140738727412985187179871179129081525119599499467343247242522039417437170700144089586411008716877044205952543197926409659216791724741618593554141431073835219882830785288568522405420492618438714537100862739988164984902601597121092895935888011180739768946869739603648531087279025689709298636058052123046239568107884596369595100738518175209745603003542586864098857578187443568622867410538042522899612810139843013182822232069583228551618732261161980186240882686939396173819940863828443213296641691120948520334304543412796042617563094621903070311521146586516434196905970088346242749435668875700299852087332220058546941854381182536352974465793818742293745098359367426640809410810973294754377507378172396258601734897530735864100539673032500313763431861779786943202731380571555413005348441305436901918207524482942079268372859587652220814353262486638248334524271716279481281258715833455124036767826998590492233640034830047780507492010194736063304872439948519450644700567833019734893280771045331949117439302641690551543687933861418338716262720886893245116997887972479430627567262531556295506559179107641668880201889100304185709973175672395187174368294708439828023801729991060934560769536323538929156096061015014755548608638761019096018391290303266344048349337680683703478014133542400299784023477325820181260577149010924060516323175828864937880475725999011787520252167566976511856763972931640424047880624811269260186884645117950044579982742367104996656912789294373706458188376523246245039190384865462284943489295074600029448385678305282627067854481882615569914411379476817054109813740589202051389728980299934435301046152121523486107638015893196792942637199760136461771810210417369437359488231314106186820395252194503480972087850237299953155850915104338114513558700940482323960280205893984509552319882464718336007162967240124023938599558753964921202670529378920232459245317052437983272354210001950368542908134793039532844109249613141204723984745953425515582546133754221527133048408899602005752138442944443126938931819987442433179751925594655311450422406717121539660442118613124140478960898239461891966875913496886967293208481165397480968431766522651899379092237746212234001024134172061548039160523425259950609632341471456720696236931421323902795283633075146185432125228565485709334286463357537111713355174186262323817423537735248630275743831282109401879736669293827026938637625584631481408188302003847273385680981161630272806268522830389173486449761075224929591695756403732684409344957988844532686018143684078973272450886206080828749325530337698974059700135485095539057828225646199421007009863928991049653773601093327250246429542629228113304115507177607040569639524348436547399576902452040866140157470779715033557441769298972549100779472296059592937436874073077539625101431693857776997781611493742931938466529106765877964199985955461219830779637287901019203029011236518858214433941754015132731745275853046295843743510021649453794067211766072252150893628940232026930297425699555490702025595087612084974331851251572079092150378465489633977648357249617993507192775715619031912714901749935117574752286566954195987961865666075465496124167667155669809738016341070742365603990100290638215976581985120186761418597357808935077192135009842133269180525269143383409491606682049808294821290243967072969957961489791281770752773623482416560523409481987149433735176370556044555818028524856140822367818431500744328090513019418174585903189393582173936206441418980512137315195740082104409380394145825545149754676701433170407673429783615908748814254609083747070028685987703408503392615511807344418724208978810559237877853620581849011002306704006609877557990293516988950907594551705736228877255354779007062642661083769127502464995844205133612099952780673060369557982430655088029240578603416422477133786671398081228688230094794077100279683418715918990818472850081612063843636333162394460605624463923537558354447949834070148358936789364373434447167850127699886376833341773547829889054991326132178858187388006214273471282082785421304248396356379684934923183947092888798317019870016694809247024130985455255201157644008928393765407956678766156692260142450752110081944831904098012425450619197094031876411578871429667201513108024240272784362541352030065352519483550279967357356025278293008283392842738646674840115296355394675667373907343579470151240528087058102757539440255241584837943463319795201978848756320239367944517080640334427561815657575757799169901057750263194044583904796091892616919033200380295651577265103984742440081138647902599964756983046173527416329890508063678373079244273964301090204258666850541171407222551426307381379016814195339048508787464815386413883975926389976285663526619678861420168719706212375476603933279848287490365928913075226769645672733996761386505206757945577361796761815068461580120265782851037039664468516550123003779170336685188406319586568928266252172460220102385429094953098023655548546453107326603671289088726005760876801730859951660976350742419287946623084947869017733238134497420457133249926801036854795839427510419492090830709642067151237730743524143084857592167257909831452192649102174900090183619333943536789949505865958178322331167145715838300825460011828362211754398590809014071203446552753145221184413614472268761191092552341848537655933628466961453289342978219723465522311778302649806243738358579369590407853410084235491079321051446356354081425171203063551574735173270322567106434577720398056145338083930486741116360417195052426573867205926030110420660644891756991862295886477408234022943328977504452728794602565390701142887030063584461438791012687531414767090779425944464722687699301715567876871368496792104507626506826235687676752260716457432191968790588235990690600788132945156985894820499158113770791844013123765903010443554615034594848154167486032606117144283664952467011499801752059713860642825574285360671441530976337997361340153433361979959386271678881164328800441922351230354550911437970810781661083244953095890976060283432477904869321364594967823161256961961458849802046559221203243317437712494732748045814030004999820386918924997123366591137365339784109826225269449209573940269277550269567337271862315358577215261797966707881993934768482265494717318493952831576362570994215714253779481236119910505521689326643052490728950680574565326037786647034776692223065902853170369528229587199087285704675200198037065506482061243875994990792922686175011236894406544954644910872089049873576839386694055868497951602968057166849028853471576451853346774344133406789187569438344218811295102899060098736718907239487912087988462828904245766150499696909339730613856589163787467058447635844063010153769565302702186754486254806655414749308648129537814723072614918765842232896561269283269389356214813665481897678072677288174163523115316540237172889785827659927107698797283067674740034714584483169366725810503443015930798360462176899525092161101940121416703030997982785840640668715230054048793374728339546064789759255390539120380992828637658375268640809384531269801418567031565368681017545468723965966317439454278725593215637284972769411346445262779288612713846327257109176521034817536916778518937592706481830350485539778566619452422413315217535647948995344713121884561404854093437457196650351603479525875949032605435859583529547257346216765953209787115820521901909370141006875683011138508047368984386444038040784666349832789886093247947814547557504945949708442539532748506482811149219083874014866491627347145954050544678815597144823761703675824775358554586963912540773959439401781086206612969788394037249891205947365327078002145258441509299115962285783983724344083050324561384118024316645880516006453771191551962510450057617717944763082485476094323967219275495800578133742597221288367917985479591854850539320706023765662307835641236675543256476407410565851541552007160448743574269831289002221242285590462439517301882100432136309166323293125304910921302120832136893162518188539428336694220581616065138008296343859266522284675197928838389726208129000645052451120014132674215804425136754098540127959115644888289609023805840987859417779482975240233082469292829020907693606097714313387319456128739601201641802821474274027678285037972427600533865326862678849622869748536965755961758952489346607825461925601881210803216512943708246848580801025361673350760331686867598286295699663652866894462787350171293436145297057243470444293251402803288570300426499273088155507994078416895694411031614514930637890402050031902351311046729772247469920357875620966136474177103053313635450978641943012550944038361046359695251183793946115966225114994714245211779248484976527648623742650043328641069234656248255661833502975245577742657400453510063440430775521897448677225572664589384351708685303059718537155317001331159023388487765495006893189146596638847850553970594114780429485292994044111414212157136456554292752981224187596653120521447448777091989073104662469493746648317997181884098488923404371235557629036447072660695887487793482172397488554419805695293285480582063863584202496466172802168750715717909048908076662971932328234624112017734859810502942642364356246273082731784961419842911848511298634371259351538437943987815849190225938793168501561062680016792673608046387649369020234191822546913269510843312541041730276042198479643091457823891883133511687335813682067724390620127810139325090610047970648090878888906414670050593735869754698996864045091052942762570873153167214746446117861399840404111690502431094909604805965862124941934021804999724904980040167023483158230564665352638716844382216216159246414852605292297272848593057470783764543874067259687047510058811862886814658092371942869748690020938736267544709798823819946081219431894671437013192667495604993142356049675172445414782944033475653918535247724026808060512186238527132249950226568203393403531233428863647471459480454831369280039649880897881953561308440833850733721875222561028976938890979393441213349201291749631891338957449589942860220485107313869367150310872358718136337121367343351033720495583646645464758064990638126728588846401166010896191341789714662559301327944586578079444183271443880398110197180211662201417134106348514092799359043566300286521789670681953157075987767049637176581936548023878806592281853156714251665328070795094317181378670396642633064529353166405000152055606709962495029759894960719867324060958365452067117552812188987601708518355771782263412754641460300271849792665321058098010558402242502979244785386897314602758001217750090598501597542809656406388543866329492000380157281471829358538649253499002569149967111320681745473898945934704121633847688724850675659954289530171522464778219411675532884733944290377675503446129180483444148540925787716215300090922414613547381083875257910845958210851886287711315478453268386933579990495988811055317093531368207155200961953340355175316268397802490780647246164768882828611905402428175738311989556004198682533484208835157660797309749289594989956945948406685691736762173159774136125025058764439649336394647016726520364460207162531341135917582512201102358895525254019993714865856588152432213760686447477628066107858002383651420813234479555821385045430282415727197624993508701770805600077465700090222166635894428118579115689383853603263781746396449548559960169850663744021154262140634340165987055294799070318684164218271579536209311091072478493605467471455255721852880634937002270713280807281888210264038537975803671915609232697772258987995503401364796218692774784053588917328101731410323107039853165120522975631890137477578314166942222291348218977797610431170176415925013053848541425161880575885479632513582072772138516464412169120568929970549546446567670563863811967912418246684893013927835234326872451033272454821905591950672555912803107387200188607092194580466226818007076000319733611120818570127429102648536323799746748440489207181777428158478769734574096034324810347381407215494833769574479816619716544665791784311452195627348272899991782437541854779951200826881199702996131749363043189852630821460809965080457948422985444230346815402049967066031784628526487394559547103940095496851120409687551447590115061076361805009737461332083422471718680127010191271534258311848587339300280149309908011168569032576353947515573541829122204062987450417432562432966134292034021621561636719607243182277889542090134364573483629481247640215822330268425714794591469385121932987970853305792720304500957727778953363359605177030645916090011805061817751050153200248662107733919831892123890439905632171209076976113151625879226789547546842466352202478141211715032904212004378364311377737611658663854912029678780815685421292583837451784530194803393419076113719823423541988101083737285214133650914623932749994178527596134237421596403900118143524953767764590534015698591542254917801043733159987902701041478375006294999656474036274379924311797133302356867128442476485603718501017414746740940120829106456737942453899275744765827209074372286729537495681335118398640140968160310035491887913103050579327357250298169307202206914820765256625747384908021432954430663065197254387606458577056171609872250831848920964564757090946945264358623348709318217271753673333259045862506730098400234023457852891686969331829768646441391258557257269413843754738756791399762267637555559733849075649301727862580872698576212019431231840730655822669953173191107229861891502643647540036214222363336152794980062885405181670910385577514720723211615031542587564183724368830277102867946027291782467037132333101939479314734009019874092331763827218698738868781792892718657824853031893141238783020090037081153053773040080913775327334688815594672913204079978189328611710771295631717461761360241406339253270578731471268564315425347021281505522142382786510728087979539506419969196487328199329500954397659687596247637133920346698821573290088187564359855471108251571553754034380403765913379789297891019006699071860752554927261398114599727478304272745018708139239542882859308369581507944003404205909104193397235566203346633108956868629798728582440905346883662953918711229132817257364124831699210706298145406586434929009394346770477871139155618736429506256180272335032788364346188099397797400288891320644136163492397537905587884045827693807231301273545044479521954921358029777659534692942815992455763215331554301346157526445550738297310719395574894850773023946643092996543086186175355858302744147395697624475250918787142472435543768940774535519883737485118688849764887181151328180911366518681735874591695288002531058156871046456288073265218750804089211251941287646289181198743672864485442390563202973705879469871419745489272219485534886032113293798796891375034082439283596351314201109255503020135594252054638142555111696965400181488456317827335018476300320588850693069962861914240815554812343474808529428450672949292102079776079682329206596704244295862136907897655108558536715716228757355808919448264147901986938202406945944980813949742639968348149897255862602679406021168876366100467534707066780997805559201014675375287830488255362423432073367200745287208195762688972976656469864836933931285360737157961136344109406490040692553810848429698862357293868927267603950209652864888907323927873146383171512480330542053627998948861980807021586480751698949396138553450337450178513241038436388925412496188013038343994991189409355023679224171885039258364907667802875454714713263885219464012777249697238736788885408993011689433715044972902458082198312172306821251401584520084874420852548331681280540343594151713205391711857769745214058288379366190217516124356463844061066335525522661315659268705359908997001282102452470991740129781488439820653336338274486255624352905298569139860853396805938368465301044321916821193598876644864683418914042560128811329370536184726573675082059675767405718271157576110695538161029036467274438432797526490283977818397287856975378537644045780625115274865366667831840574638090923304356432710217096551613871625471360397418879683329429252216656517612712681833382622221003356401813516197300642082460496583523405384943498086704160830794923914683381474708395032173921204396973851991761302155420495244453805952651764510413577689100403936687455340880802407943405381293442081553837509738880409326458015130828033770621995818594119632044503487331732034675160133388752925764715808075039094177986332042613374667926302025500857853798526358515019113482429759603767409522049851564783142729649074479192687466427957536156649742501339254292959434004114114636386458979851946705570325172621922395604080531583293251996337076005723443256926824222297328767669346298841558147271132977069058483280170093707092501165188484865886257577932071636480940363554056880452217868217262751972128097912105646974564419883057973217617077489440567338712631687276836302531410055056917852700439526692293667109101455527621961032004006584015235383452804979871914442911216550130140159534899546635025477065679674905571823335916368486437359583225162063621744102530161753161223217029637046594589829892426812321413917407975913349277343066634852905521177631573533030428639266599583806485927965601040068622929639748519653677775556257201232766015014746575521894767903558616388240815386228658579074816534204172205814549847636519822509174165190457789729046230320349869906097345963493958492585833876313862485667059013794569429059818320262188446923023754055317432902052792724020711560069892523027453642345640722571798065229591798380174252007845717230976724386504149302870026993410335239531898048169796832575421992246833092971459538306491549136882339517120070707190429696559134609221259251874725246847776169038832220424645920966628420390284080119891842867580872855333987040275256934298968802322812088918356169266150468501140179589168703194177833582307570236612537285993908582350750780131120585668914803114480190066467529013374658069137379674820721936662695635130115979599125643501049517150569946690727668495843731326797106635815027559243010538271463966685453755509545151340928575438368847194473207794366869455237689459693743817671303980256095830295288345672949881777821839168284021011588015779088484508004975100381568320879639916128973137692677172759796191231412592471841385417207841749657474889395186900704540844741541802421263038080920672912750739573720125893802121302034531787471852577370006754867598387931233450001884110157824251259848542821679727219828391799507095545853180949541895428713599883450547081287378616086187230554905490175916150860173247831054407276780071776084708187285900588393037253578542824585781222221035307629446897234721167297910664836370892272107807804678513795838318968681897854818860501605396146579735779835497472663557349833330256833336738115450418318571421653468986607203731501112077362875230042904313391422318874992965556400214017468003558850307848978449133839584760560729309568914906328073814484451484620787026689939191647904321853581802731888166803715685380844513994171627939151134371160825972817782679314449155324340434440992296884107806928897430808343734576371382649392885278954334366883846892241772042449674192123806470364158301645649142225716723897078961252657351221649523154031700225445357659257692740259586447984620308808080517757751704810809064733671542773716966062422132885737019508893043301889172885899238769600409957675725668928584557576654262004335166462208257894701305807408014080328701838512359403896527530066928972617586674025205846449718982608178479506543451838893812156604211904656877338134944027089362457032611882059772887961489209463042367470617052801374699253385334314544023738755894678596978644716165899490067876200908468986150472768215235237219666320982472621613697819589376847294406717447014360584249772820705762545377722783588626829584039400418001083774461547522290803031050654717564992668659370897497818619090785904408025797716956396336082649866162932935858833355594060270314355166478835069757211084431158806917380083705633949601307571871453892117928761062517770942546836159493907301957222783759283838802373306224264676646414774729578511099962629992069304955641817395326294882209837987344323677222301814989158814660451212601191300428476099218269885488515462017118986319938823624150614310643214935693339189629354652435841781654433768513706812946757476794280325268071808809438623672377368988444291068281163904070553139967695675900847360063801074892113346290593951937595460944629509690400680309337297713657756090952461661896862326940165135381519915406522378366584396606394450485702830448166511000447803469920232893591367491604523817033231828906894800043696099279421780519512041687470222938833219803939109834509039545092501557800906272293379492193392137654377967106562042616799916381121385468627147408555776809786034613208159152497964084726151949298289039649300044421494173459337112143982939733880674983247927724396952528040934545467598044290384893226013154338206620715292958598939839592427951192739403932373344799004624179195825009164342375697322481741837925794117636746860446519572216456104931207055276043205385075916255735709128258235285178501295479860980492968743657447343788576317485167910030249374517295841640247062424499781075528149826600086523676361271319739926044260757629782391205657050871136290235400537551541286438745514182901009670064778491354896734569345121254616644386836413485281128406115567543473778053119868656869177858593464790122080257473294421428704734088856577132040597707156483407209782535424347201721420994523447734204874719338537388333786643302063488381088438496591294826057753913007420848620885469272526414045401215493739539591282295638113323742857265457205534575734726898206351119624143067688083467428011295033971708420342715776107227267149312169404478041146741128235803649334868950493257150409936018944385106766443040617096206087130908642338313714377429681407538966843478925005987243960667856046575789572901462534635777022803781457462156299750042788974846472105827538373987530507227005446815520554499435905837745792341616992590636633407500514366631750682484166943612939365591122932561258732005857125694134659886978601530339594343723097442988224875387754300401925696532978000660330658437019532128649195285403754045798194624488192850881348515555010755697258930991470118527938168819379979231511321354157778530261962325609028692264591813850771237282408020050246620969833439663066186393427009010885987719131187807024043737733071826688184831985387868445950872254111358911040510632467997144792293701469098043464844832407051672273530403008105267839420142002244858831683911603820105126178112457222498432334266100769786291453750040846534800508254597428006920947413673065551792906502839126442677274563058651077297372013709534835636837858952755538306779320524273053122268676279777862616700797691041354041950222926620338004620375389209184120514441413131059498638345213226725708603749474414117383790661034856896802580708255486736081021243792728506168304065089066620658060022055635146212111319799165687600676826516797476524935369323996999221490360301180536656143992378711913913386625845946538299139803092622429082998873255243657179090516283481208676708465161589238860166233852954056387882208534193498229658878115103195674128747224580681975806597850472523203257245530534291798242715564422897484258161990397658418395394900652311624060128157712118383573320558876720263911840063238229569154877793733126711473814503815251215385427556723710745785931121059381198725902478528732046160567204190204819944294462365214428138876951719792912640391531157372117116265999539980442654515429114513869652608925854038070798464308216694689903685219315940667821388816844598437089900480449573958589913456778912396167877928861868491592999534915513933071056084985759552168285882947730819736393066754279100953929693720961736836493239063193822696010867605910052790804153889515144651959420647242376323064836248927171092376760254837414916441787967697462547447428368212984292394546902446299046592432880007013698273073692400246037316995380328476821143988962989042495936923564864918168195202215482684792410560402186450124473896000786478360651138165842196154715644702832737580413209185813171706201699305447738439417029618523609351676694393950602173236056945566016405973176330101319574164870968875077964284637449707477518494106834543340120430718532176261943092439433729241090211437747573938733701503509027402162387326679236090888995327262326018323586316056900934125557639448305112104017141326101507802012378703001645098448840201122162219266209944008917002127127536187227141837703572631447850840973522353437780274755927559240002470997333424212481906999122128827121252308802013803048002259097392000565849573336611803816420247161186554330790941158226573250425642705289684148931552084709543486772153606820813128850824735003318029935397316838723635881022325559628692300929539675761243459264027293767428392377591966409163026107130418483028423858412663988266959363628102935309432655802496091085274358436083816566183882171888145603791069117818472324880873329498354802828707899204927067446931102048712763026355819765087529235587534654811784496135994182060091276115407154401350538171342962607195186138843894851265269455623855465478000809230229072198802670042403695470318993241151331008709345288447488006032121278935546560538290972665257275024624593782575809913932627663639365631600215790285496856439403405051708460332194245835676944321582923368697567467444020490952042086321141424767372209498274783429143453647781147302924561473252568225012613911081270045048215392141803621518177823522507535877250945559822584846612748014994030588243997905095381628262426002156470944410379790457442649562976515309656145089839064307370555984741577326778479537127877729034764146405968613114089626480352967003553837364808949938096055305259829543528590835121398119025964494571189748461579694882903803409531501914818176890476429662141637278470959190574523720933905027619168246327290990211384793998151978855072106977625075604750554101916609353320433096990617685797141804633182629647437615104293666882671579947224804537635549822429572857070485913128778197028740311927662051220920043661816157193175970038553257917559829512623268986085075836342546725403004917869798488356718186543702663386886835788402893621146605093567756093224651170833490642203076123825084217855703993357732923057557616541242387455670803224727500520384325129183762845865439283109407358630581529934842412234518649469394985779411546940390970577631731497428413222932269661600865305715833762516292754357690739148919278434396782257788013534160080921213199820308930382209893409700805831085911951121538739398861706129508427926828348233310560078674321285248048768398855926847306970488852678019742258930852496266779240400470866115524158333343104709199546553186471817579939862910911005493706216418085365951174151021961536725541038750767476468423368200984813499638641751653769340221125054433693021228316096799407921820370522005254102568108103389143372475603503043824181727953353895937103619683756254269768741781834139184522983648565694483048693376415387693735454357889499610949333743862987487897573987991645035109828463461991001981588603255890773653580551628891323296293259991503595839884359780247658294202765839381776999012147002448949890380254665636155017757401463404097242060413392695968995873534427873547759533203968455566753748014996971737220073818764649321913794365810698528377677333422065994247981032237709475984407706021341192438351029475466571880813758090829511184415570952619464473049407404455752283808283647752517658292971413715665137234766243256954207699892164914154605583297545957880408304892342082637265083908277469821181783346793760776428165338381306740802499367856183298656923107801029076303225674214717825779565081384206678940357028823611030204882028938008682656222977886554540499851970601658198631987068244372826715528031857438988390710730098849688799401036274907236287405185404972545304923290059807673570313012089700644568594049426050453891203793311884937797945189982662154967336055233332290463796362807890945653434897757433659633270124818525977815256056532574788616992040225339259680605432887536230683782523374121730902629260213272500336815955479668111541371385044493599302722595927436212321652146483196059630934903219244160661340731255103168179180820827991007880966670626102964808046749791492884702856049686429327506526627377583540257282050240133950741352001483091045955878996993841702107520460695433609230492130113430619713373785842320369955493187608411871087722072055213610212221851683344204667519582952806725682838079839607799547927424054910158953561499646834187157469286337186519689468979275333164695110809316849545081161646966461013522969735225270673289460268756322947590823681699413039868289483629122315963732927005559399845233408963058355370957680348682454497406843797844050338495739750713007982199837923984165224315774731816605262321969538136472994386733908252963161572179165280207841669001247577915510024156553238564600788937368693996677576310521230678971221253971608658099453267722060099145878980327405112601042213158411946289325448097597546147783276980254515480111497182994853850348468655755327629923607718126782308048771748588788088561039767960005902003977806186392922931718430419902404115466276081953957851156456058370340472271903927174837346298954173279755798958671659570759119190254301130636198603523127438814162499356871465631701429899924323091071248552812079861544969597354095370544490333992292459724749114025109405162069432365099775792546118526123801756728754717841864180971676525168926011744832376345948524887617558733531570153342808413205509867174127894362096929190015057593415249377796960689581940821982828679121602399877004994236070250596389112923119616603638297875434226499033285559875100689363249136953643623606115296185705441399401608602136272946432498270789729612132007109708460438045285059629960958966467391308489267795030214110283579580958850777413015310618427081303447515830795033171189967695831832943785408801383605856041125480837964828328809120416840808970879797568261480996799506102872063251743576290513881508180782214560314161984912301227397077359253178089757167272653578640564483699816002993596608763542795167428334361210534627695837717712523372672042193977690916642288504781625420335022840583065362503337877627197740157570106008065055629442734943043190224572118607786278240927898660794397593207302583555655967019550827218789718855390870316381714496235783885843882255422333235275423907662669647629233092568938707401871546037242200993946070583139389651320700371749781921718810626090938884511680798685172347118417537266706554601502747527428511966164701255822354285407529869271027640483374411924669787518282394194948686500846905557709399307306568590392714776615048070460250866031675446200274128614693366458747761903986515700155162236227832904054349536648867680413638186941319465741987724271938156951570826618056990904874716637590667158958366073946472131814704597575097825449102159080870757210145511773991017675586388951650300643251243121903322033090977811223696899308274764090665630794209049902714658049758286729031059795947308574788003542404818194817762965929264536405259721207110789999635048749430026320437399014462770609653524973778682205127271113033015314225598865249715596937251265718304634763125034995685484857459433473695656233296045459537802220008991602258242668191888527417657192902971984019696834925099659365040580147394033330964554497610818394616320952876958830247432673481454318250536037849548870475884657236599178959755371513637888359078020206506238716799586687145768058688147408614077249869268400902959637873710738929624801243784615237296232567449051558785370065287668480185206569380873710139035843691619395367231982280293498539502303594504674923749229962075719813285487454106413685745627538589959769968019072445727227011331623020153497291850051494803639413674287323663302388396840707943262420673316038027145689137914462621303900686792889362521875461857866141330799675110462301711189968557381741237667331104454632610237502153347444263643127326815120264912124817382792365594199686635741280420757896394432914190310556159436054510205795258780511629840221748106126120377675260043299978125963987235912465965425999962132615401067038291384097530603899085113591566332376809101870337803726584722511752855476488612054344823976138376610158629127012306010480130031477037320016552999271127890090680660714718568847120225035297764594050290789382416405447917000568030291115001736525149428508447530570490753229668034749268371692120053375852412303921201065895229504561342154315317598800758226583043426345390445780221076835459642282859463721670956077201372635250795229115940850248763236959713706313685076934936498585992490115074746932742901031373533468844646087300272119954336160046085231314717027609423014157040661068910739822173114503260847658470926040628849840172085917568386072458139878915499256788047364681769240808382477631442235769956554553041994423903095934684703587793060433027487968973307693420836942851741109699703281068283037270948638011191975561011919609457713000790609786207232954817508130050303422061901157773235402041866240154291717160065336541601805425300652260144284593999342448497142617608299398343531128559931873672095635099354572990836704179532286638265582628096065654844111168899117103015239454378489105524977322924873651203063768822747975461078194011615497597700078629059687011864268120989305243943816745914307153857574456358822517922563263289223539195798318988259406810515214338789125710389045247314944844236526759323123506580215042558681920479860361151494459651183685818637580764616948528792516945122186461967103093423948416249619975889263776167888817080583511787375138563014764299459109285948087243882628787731117481025979638093309862014068554467041931920630044745035214859016925496517105976720252454457513611570545482006598655809262825297711109856543774566708800222844895610675951137355483537806001744921811403142961294238839562890271737918462450476218205729459775632589036152044180132741733761675333103298674689160231954665058855363252417622533093771170508615351182290102891386322628822402169151447794712455021915658519970292476181228805989349599869774378758535362958522692082259685980593844127055604100451406923862774220653771588455950950439412109485736275989532707467641053816590238132881530572113930722267684417702986433292769528424487822265846507805968178574442840566433190828960070087283481647601097477900269705602474774856213238244677855462577461149521851039112539596581132836482166596624898168576320250509803960607953635363402162129672352917975314331385410783924748147300587162127139384868184089305462467255334031734709347377427563983021321022821182692588082450891105173618200879183765030439499596580741506951908259109843124213542831170002952296698113501235266175089624961458265611773980230922889111079468373472668401635942470038682011976576670583533584351872587546645014305967401713363976616468944424962851273903090966809101692597438254683934194995794457990782862930048431358446281749061830216763228652636034935872236425632187526888128536464816289104926959987022309760514892454852678506617587017269500911077769067205226421184083253916564898019161058343991938801398600395665921073129189963967784956673341701219880915667453773444658224236046022695470665112040726264514136032072676914116344689494187259182034388457816102005960355496519513358164570839468264635593902710725856723106662368656284881667557811735813467940850279048536262397896203660532610647164830575171036214489188836234080990437911541572531803870979144188172113512637770434367514642844518103300668707113819212398715921774626773077611978512704130695644323805086406741716861099191156426787368394651694423153533668512242686135211872057243725147534378703689173265182674045652474922371870262053574338411924120109710450384269985082057944631912296000767458854831842217104494145714281417300157245714961372307908808447233988536174967469687821326712663849753078518786427395006261060849184440771359983991693353062916471474426820601036153874625843418367670508706782019527204920515602346362590696441679616105704359488863660281575264375106049151739736355155232243652072181683700235787606421939931676546612680904360388014608360669073710587630367889593614269251470954683295564775532528212196587246207706943373543999231742249507866120495807504860085415082753822288942279139938747311305844478855649451412152684516028748451432929714350775662522352718878538763940470784831581694198234889713327944778510439065594055335706162194852237755477891727154836792037766269557280173527364980291830411866594179529011296983721931817040247430119584383063159936741060816002518014546702970432837120671122370528926125860204172857623590064974475531206464661667860812529616104361545007769537611196635502802004598512260649338039824831513232250722067573199896386003121095832018022691425096120760090070850318041057352569893971146596496419314539816356413185270101246164413359005297866583963437062222759606233921475579316852961722805846504567008239871180967728590084310112597245289339182259819724738018430521236559759490225170843166634780992689885489095668207711436070522511025534269711957415475135239638526334330184392191492933462488007529310995180257403348473018410759920521860749442723666788806331603948155772833682118093541481473172605914372934388734417288851433827777462851682644814514475673320815104257837827152403612933691951981716242609056417284742963290521245357328544069704409761434670091308052572026820578462615045514024478049990041419357057621645811688595729190343829778636364435404741272197093656633513878748724211679076826538683574210080535058243241047987614493809120365099596474743642453596066367091722922097209160141794947527143853181340515922843187044960765105979554715382607759491242811510292277591003348643100043090751106383752896573601995484789379218957206138327588122608149527107880707972668257513550430408903480352582425429797296829854158091728862285031568538160811609528727614335402601868640833547697776028681793950950266134620298892203271839688521460472800268340022805863902580157710440600815739524938295591449758111296386598399755042755534853555505062784078770857350896084605481131849064978738491284858276985466949455842912877902220041120241073222150792500916486568976612407315984500603629522517158875838647600546072320015837680931471273912873206854375559663391224026787736768601069902301879351523914622171498900336888541250430489944292465561847941414847818018149163534892057092491369220053390117668824150706880116124624813889660615966740135846629893075508991787812033085762048045451747743873359165161122511253784094201355168885991826435180847291964364292069451150722951189606856201831755947895580334674126067237605157005258019477931697249109469327135625872131013509097123706357354629186198267784089210165817115809743371376192572244775566258519726383528049526266904676523060598038219175547958634584749002188328930135912376107915810914215953686896055046358735482944094296659702414194616053487075919969343402107197078183843532787624486875220158157362174872547893876788790295677105960426336969920783970757941893731758757443215631898405315943828283382289459398352042031453147027539474537404242526518289701696502433794606307573606235460397649770810121133392568767093228309122070593223120529858331587071887893896846953644375605216341703285366902512430043271143261526568346656708448183229091245566740869241683905929074286685134448174037080525447640479762395670590685435288635136390189559433421899626288005535336024833428324607550434513369653531081621216423336598440632953400954439843328443765301069234785734997538401925379788864978508327602315985231303805440324233473958639549508057415926143259155102634711471344897265256515148338093225492839564233050027857557544673007782704538210039481080117897010555710826514407766069227673278825712374560754620526866592844245572843388052843120057615951671267373498646593288625918558622013889973123518549722230394013960846045167393614427321261777384355436510880299007970589692326898845355963758351104083593282486939058498575777333912212496394254774253250004581356834298092428709339329085061036069178688565332747014498722004857935756062782430029313646955938118930596822371913824909557385538695176755912286365014939534992387778377438987929543093487349772011005791653221878266024878554415736469180011775719404763583750688472675029674013877221190984943957581681516925828261298945621416457802594924187105034388471748639106057883031064433433339808870098170271722030889474905721876155183632305968871382199319415594260747778259960020618678242251999965739199335013201306081109851895161191171664442550943138766661064755807901785915111501377785453426315126346087025744298385298775787230032102556892990032920323415722202934022982655486950850297777275614187417003636481847503712442432865089206486476843914827828863703154426395458165290191532289610749024805281738495041423737614324369490695064852927675206861610923083466228443477621159300593861423747552685456391230513875038112142818414102319402194732198146653581250296666829821574800779814151092719542623072647093620789716004781343790905793254589389444210649639613151571677587573563969226413647922153406735155967408853195713613327923285605555007031155051666214432893846754900647451685159554054378342447867196463978656081563568567909622988082272263342915409655406389870196480540631472700643742415898933742202138268895946851048046259144792855377804308849134113561541186044327521856849556687175257952737880628872138720434679335446827170383105950529063466827906534480170437327804572865597804041137647291807265551341365430817641264649034892510250960212605497901425407962810149270508939116425143103474077449780976656451549239022504971816479192723672811066761784370812654383737880594590189153082083372451169181449820627040308369870597178276846895493759433828061860094058600740488879635652292559562412175407385167282537677859518099713239647902184634113331632176804705725730456668214163877407019414273421508973234702441032778257726488996476326331089892404341548523311304895309669935049106428770620622551895561254546908104120058721003760446000705744213634981483722215437957661424356802129429150530102191298055871306554298523407246938941657456862963747231980948587118814148102765187401090503247403021290470592440494005090852466869550287462855284665713537032828880053440338629760677677733378259965666034478500114838267298113064846465076101683570990747032011818454169347367574443398682699927529027324007095046786220377233616009067206192011502359407177976871246034180939081986724205636806682529396573089693207184003423773097544020024596541605192964595156375824978548795883471207856104284269495257335422867762911988242147232035826812323820865781649146270574179385467279652259196189877184876275128385926213204535063171990976843493671613647103309989592074645138262907666756682656536391763345999466198928380014989085864217206259103548765529787395256005662987379726716484509821349123044185551217548072439787229416208038594415314934985768030015888860808156858392450922629509979914475514770921577188769411831769269652672192061057327261097055185265120998300651945936350327294017943081527356481212446598746951483276670128951281388445257065026834601300562841116449879933613961824000413617873575650218605067885099311593218096654351570028388416409067265733372082057611661986084562885692682361978556977880215919356510262377653263548767813698623416523488058376203986661737283339530467515187507365412743131907598030745457718538898441396029099735260915251189343012074987367142637626238018389310361544462133371213971746195021870405749064812528785059587107615046073379524185488653042901412300875271764215389166997549842496832832160887895034196280760286386055313968964733680789740371420625371550581419330583971430299487058645493444632883201436305036459571359203912048124159008995471905827584925879182718767296226782972448367565976371856255534509835279807957199702163177462954992893744450093073629448243096626430636985747469327742039484024844686171733903586963585897181732993443093246104366280885377426405195901721018422061165316037974747982968413878173563320033621656940161279878762339770048219174833601180797077261815915511124700706257133659937926775661136321302565929669728197586983733796045561320798625181390504919140305879561354968718752169297829106603111974228642993014917684073100695037863157753293348254120093379144339186654180501581114629749763327797918251039130883539491696194324331114870270257977384947477069219921727428769846544115610079992454322087003159290565917390617401888111543118924765533652813675453081879428696441031016378493869788897265593207652716699483792621796630456495334017694501772012418430342044881813008335896218131768370119005292134880241356643075164825201127860280920324220453188580523563092469085453363575005057213958856572311896994442346297162743333032329668072965755242316891641985104232110627039439936213556059641403171159534493649979433057000285149353224652319339573318788108990239559994887093451015008858608227145854887595640597596725567624749248907373101362260009878750919049121353858176625038477511733728698283754269521542104930913134323000696969336077199395827623423813960766834669646668374526374633587567018864394931175818124342422405373462666450621057918263032652381864698406303487488979317206021159268756183494618661043571054256420090229579960749078866353445704410771736881719129988417257229730377051445954688617101579069710140824566735792820507846113027722019900184457316819386937962452375918748760584641509023825617386854591815165438341085503874444006647271578180493884690526478788519930491981000180067315553433436964866146832588757715110089032783886958899528169032731867212737144589514724750684730128167864414449987424611484052493930895129457790061813013204251233595147381462560246487998381390194661539438478146274380732421411833593159494687390518360642471467685014206186849845160002773529170224506577702056370234371969325843778585806139342814132190324460787723669120186426041576554403919958504432753328182394172740146620418534648528352797089746729373769001361495871246698155857843971517976491674048599103872689326269007367705379912722860510747203009087343432568156094072481591015621174953589497979853643076290779440685531460902249949895261069520270058324342941879540699084298000537607748891029878709458394850488432304630205975182573668004270983982911331141566806943085270417294591191222035013066470167016028664487797227005332036474598629227966079386628264467054110004986421735129879970920382603937346875540101532242464698287696500846885974572573698350812659823666710417418763509814539739541103610104143568938735583760568515521705518195827981126882549705080671372789987668110944769765111969210256647569010606808148030845513135564238034286340359944989202583436495252757134520028679356820751430763908698952291164641154390039491314429005582599466226140235772170846098687575321584066817384146255756374656626959083806819830724683221439823976886190767171843697181162589866862650763869549848708395476818844132205784769167719000938202559967266435798754887102513473542891710598179237335502632275069779302841031254984949352588293870703441033374602244843314395770128735226837342916529742154601675530083190336770045731804736824017456923660404027551599466480782882819731385910948238893567923118154824256905334388262698209228735833522251792648128581261312253611745761714566039714257893386956983393226019200479893481495155568747021616064917332842549576972769079158406859253087000035226646156102625501653884974170091989903552409548152280606181615435767256063688236671244898501604738933995552977608176449987220605923655242868655899759983515809022494764590028061903295270361118607267855972126786500634177965510576829456525070482966680012501704996414426306275530330806566914339498363312878667788434384512897658480246892490558126227398194655918720365034493768198008960727106668482569114031918324315769962404355050660969649197345585471416949387026252836534768756595573958628900946990434300285110487437166336931272944320848504596806010358308843746318346062699202040844874996971539436910116824467514084484251187081287587538902903285995881160135473793007454330959687291712707399531072520292217210239307863757166514497034638160780145751995091642699374004553331424267415329492187493622733218516754443554962339301616484365287889480518231134817612789047166643173438120441749213308788752121837275351987784365774110720475545358246693969321243482653969788051820574317699332720818130861567779231075872395569437984950524892383904476775970930899503074373043790098154654840895807748764085283316287659527196646974698202464797082102025254115068368416122481655862005442198926307744776896375284652393116424328073424894367323922291154252475601228267092976499725941134248590453379997148804565318566457774888900293273292390793837502075973928724554601305836802769380693677518815630712507122268878933669601210092111740527205270210619787839142894278859422329727513781330888040909101108761943859976914462874914427332523927535712413758072625612377199694820118732079299611876693648122637779445279992684096357032677698487168202460308833256299052054255081156275306173616983781860640712365731648468983118459864260222445134054558721403037413691729918366455018358467948421747051786264094244327527073519334948076765143734295582713037539108357651362329413972353077624261572663341862312714056031966390946521326979983003360099030907287097622443882867081261272284044532789874399933294201893747165816926350304352088645206660105701076236642206530724026199490882180779416977363758273703593035597348280939685216180031354091016088322280593435050804245497797906419211094022380223764936465616178066033312488951696882121880043920788124369523097634377154205344621318437851345171008121434793310655465591573673004309952572369255570979954166450408045049992795495188821551649880492861592719349896118578987884258914329384573763719240367687532661505889602465668453062318851976364124791013762384611192270053327194458037089317901494097444183064667269074389608126750575673947514851316325263626378678058247918239472395037513938569768217795140179592933995815333857899054032468538543552828919390152719505373561371614205470721586867720389936261482130910405079940800748076513253821059404650356924155785218177251941291142742150908951871931458831042538580817457782112957857565740867851380170293933821763013064049406315294057176411846106771145591521034860923220016637429122667943704038744081790498008385576160796650096163667096485928895564639797332262545516389569539926097163721887139732011662740944380376503904244958601258028002065712335373248757263863717601921908608151156836228209401278800937839880839704709636416881700888602483323229080934241719235287290660684172751857130808022167409270572605004230260836721951965681411397797288978955106705927509703025852396502032306264103302495076616374825648905919463618754297044927008503353595591160030157117823981134071429515061091370113592224554713547635718726757131576988834387669446565788803398190194687677807463716153988692154292327755712415078812294020493311573272204701206662431433153909902927646462043561785912451823015366610732123112844071416782181292597881820525957188019361478716241633304692975285458606717303916135022006676978754957997392469438530329360414249135184771097102532070638020927646015504612843431553088373462663815094300373959523457220185009485900343970793431921949827820096611423272894213928265647101755336539029975308920189198151563964659208683817986171068176833653293724003406229772938185328552095423154671042906609383735135463260146854303975507778648287179675969513584538441945128812568613729406629450502034808882913436046462077122562847348841161598777416006387052681418352243040854395308414601557888808739871901947829574084151453538544555818584046782145911051754772666959776889880307006729543426825488020239121221760323700957380791082081814100324644968558227488588391277400299368662503639895361511009989068762043334384952087303015107942256251689131092909585504997856035744850613260784315508656894722786484835400292271579357346085618618832656159484093542764285646291193775628287809640893026371135292750393840385896434327087870278432676287891905288461267826135999996784336777715153398913877409423286376378317631520068419841572029317823607749621175371438606349508356730964458580642701784039330880510344473679844945616258828844629136760452051318888250715901041861226540368566390915260454314700461035664445282547558082964014295381654260682192799851723529284967915250518311509152361268574821870750277702888605692520463319913673781511949635174095294122585054987923625721661493468395357421251512293226134446922603598023061367274754989397658007386240042741230437446669490113897360639091472359751591445847442287355737978558213698243293520081475823585418746619029687772405450980738376901588266739591969334995798245412006083231987500477060906172011484801266897983808646565738485274091475190208221794097701669064236294295639154585034933874962268865450044560724644069918772656245188320931588239673767031618821472269953885768238486040993580917203033607963318060945263089180192000809160367233514718469752122153516638332075871951032184015562525725340100639509979000774828433774251163761248147217633588789146157256151240887293854263163892926955950377581730670751027021139367157426391561728321695702990143342792737157012822646351183761666090122220674474666041604302830657937432913124677610658135693548391611094708545613948533582659182567576511024269285780808677774373043123789797410192886068349566141913370571112462413171045632922494989624736345905937199451912839087900303979523424475262450191650973227066366398224823521248019815402820100030015435080987548052842523632551615447815119283767175810662720087872843154978511267246635262686243376656021343611285052036855271053342248068602963815454589588211412763816183875271158173419080155578366552407244091846397874515393944232869834782499979062549853689950350174025702252366405986981335615048180471749814855773169294258998869680204639757247970965201952941944494535857117767819000179746771560037648554295900409087338421874018613241535166833862057540877532894909696362856523945641172672894099711296021494961684676338577109768005057654675079579678897620629832199779281839516129136275285732282258293406057566748868501987436539303610515737119207066184968094915699712050082209542052786378095932156765919226242168203080583780458029170040626216884141047403417016030399348203146927595189720469702509143797600756276839366914037366305341254028066782410474503584999914259753644313134725693582728552137478289730704322214952486082456436751392325405338549797579516691167003881755330004021970946459448597788188233268768497033472377510662708233548344499812824293944873963595794325260904730651928331327800850252779841059311428290108425336604448659682385079694699706099893977274910278631266162711653895079691592290475949505650803000543333478377628486345744744870110911690337698259820503386308918361533520456661548960068823571180263231889187798762655409757088619048166702216205053450234453451123627113303557737956485865603353528791891435259891981140032859767305796384247175781719321423012199535332405446649581241347143933998573621779850974782533777412844830010992326067407826449724528430447635263124999201560879126495721947732068826186967648493837850337337633875202246330803606083525123549119574174642013051436146860066049249732093295561193571462282175331844079927862120663822741940620605127032791576395821258506051171582307005592514131726941022792387825194062443995753649817120807885679090233331546834894202649694587513945785642836941590447551471727411875354565179088231991152791487244221923984657659504262892543007640592631091459204071967833504843638032187073830591579911663127476074195941979454435090864839265635875782128670036964210648820394343531987481452935541799648478912310274822380753616795712151301362104539723219486694984347425728699477317836275851349663283602696400758120430117190456035787322843441957249062430709553853133376180592273211077287532970140836608398910148070546364853659509493242978569605494287815066446787377781251612994570690330536861374976914829482070907431740189826449027271131937206274403036769039924221332924778106776378752851461166459823438292835323188025628478820421944233797473651333555914554249077073564101337245532387375082325037145969512821141901766077617528433522126048224368155054554630428229107495542306334034584267677880804431430022487333773812173818337168883497213650281157716042799786130771862615558662704145532650609460069413397521938321230676974030316938244443230293510146850072888678056857627353594336884379116543030783075359483041995752141542668925585494836848978675885486558952580603794108474111305224197365369894808677726646059877752794802405114561165802971909248125057342031071502424276292741986693580520109416517513358456844926904852574768619903108727851702138717828703948730705923787961247145503528972534092589456624776658841471253327783199564934702114364631532357594584696155579011444517527957493144185639525714756044523186129116340139872628982499542448442995463250810176129947461107179660147203226716595711286984356279357462235945386289741550234876073150439544878404964744439734918588330928310747888222280691430276359850302377149601990682235055108171222986603793620185299590620631825816720869830540666199322911518737830382077872533413559909634598842587261121387894779861624514180591075806506735773860320212722409605929601794896817572335947429853667747760416834818225811989407295737312650473394941351742130562031892912873782910708735078121065829068568234572964854867669545413358794659396369848240515248385385322551233598801296599055804693125973689011473566513857526934149363107419664888255246037466511578150248938359155018655614574422983767009472506346388883643005925369933750192705387113965626524572296389301389656256321614762538673647369685391669142583087937365061461505490529908149736058108317546766736729794910548278883883038409812872375798929116443123316290411912593267480562848342711721237882094388638246231077741252592350970954053153897416677260218368351159518782283730042917413658478857701438107964557455454305667622781606223634497527662074603065038375660870072708753460256840293062777295737240291655697794092561949328907077725314553650820118442078960895780759654639051568733092379216796714513793678071682486719246934993314537709834548988028648187796997094173444823395736281633095085497809331011426150583765102224906451135826106070384212763079396363800771548486826619416910678394480219278361094521163267318369563125295964778033012576965151213928516879023453756239174204950893407579577025737704278263333070171569359480932490916602237381587996402043067641130902694256251869164034104969061181901531778061498941645847680330747774375503857029760914694258797562828399585200578660274175248509022380170065452003349507219993268485260728974635730692677110581740313273735990489289690483931541970730337248299455132760060506827546670453351248267899838765938261729711573293808353619423133431659196119919212267070617885533752375628181525859410113720633342745777293845913515274870508027206228190705976325390832495361353139614190254463166862640348765859855725931632403503458924161178778759224519347676588986890989230292041914528164064783332863491987255268805335600717488765552076451016787067691351432790727175993115076430207034697343991898234130396345123060037015880019376666289511244263145790092450167477695329200689908237330424684463913266502746099398504387761649604061170057906718072725661192020943888381118261022671574335194298884262388817632340339838335304379277439464073442555597332584590895811269089830534297566924386595482360735900746661093069316719431686047080028169638445021198140687694808873301470969345784918063035818096957916331734154702832157826258153101795906404616898174050272372000763913571163626657906115758262434579370126634863740972987191526499213595027175145597885351819084840955388603684277999827646897236355223551373844131965237477890155690906001251677708046929324381923331508130953449881874390452195911569739246555789954238102858374246446423341392351833587684336255724836456816443283355967709506524826664435888433014971366414886077815386206480992094909458170635609812577212560650259017810109900136864933813018790943370583835465025424932750225621782630477859247860557255159281219545979086840410062036846733799532287275927590379221319924358179600957040186998288525905513846285488910306231155955689432993703109108653448959120078678408479869404017358457237928565210622071699395600502352610462256821569303011714689515445858040399412433834647653025564250665265654405667738480387522038046635795666196271763772944349386669466443602483944838503016442647936100133587907344430490979369889645020297791416595462993652294500792345187256170214509731497782176094561331379375601272403177889488966126008903307329454335585214502032388425099128979562974078688424081997054190307879072657114037418058925576072807353246683938803225525696001109676698841267727367822001803513698669875069098806641643643544027882640219177059375246872196128522231631168252641819518235332873020560107343530873558158613328718961200590272949816974313286134529539143164417117925160959599849559555148648065548693529043869244764112185645610912107811561635582074909103525716272476857945597910523120588457833395649930242589037933967269955030217329006120332461653930791969674265569917398949422232872883697560763719509919897763826628477824826344670405000318834902660420512004415365591569992736118183921751321543597315362242412714719327507477638088499271917547735242987059910746229545438732377580864889847269653784072336475472353653277862844921877918832705345222969691017464655647040036157685289270787804649043289184150158507504408097378551559821329405336869093544336284402797316817263827696596626157668318038595718251220834289629535621646788449876868614666299053916702449197788549189815062469066920398965252245931041363852670043830083901595291448751173006362410606723020815402794364575484867858979474341486876499889872433606786772395117099727975400159862341524791836290231557367596653609526736324629953185307684366314653719751288399503598504552521080631327570327870602702817604831704321381191239219442961151884153945741070125779917216146448146787866990450640400433403586746600664994761538666498235222748531268704543055867659249704655981012125534256006710935287588885473154199352863881196624840200929352616011807589144062542817111429285338142425199982645202124580414066306736552168290272499230746568558997054507675350388274301686692288602725662708852150649033773825983339704030884142855494938570813526528919355367222334312270664895312248391452382654848758033113047634069718253846368920168947515047802635257001570474045514495511229390748193230865051350471668040997442562278277268046817067669395405944334868758279292039289636254277965391586009390822743797221294063590192776310573439042071855784658639059489095802682216796966347196354552325611854887415336557770651429439328914043373736335192818422876792571791398603841811841490838077243970097917928966250959907204008674642101711894581114357982479712734653527445466870726270860829545962179772585743213768822562110176287302228774787657999929245835511979131905789937500411844058810806550497839343939072623906429179110387081981584762861722643084640960744371874167088060912799579422320979312935450185061205519661829032138695113101285664907140594008998857798817598421438325694567998484673409575162892054240049654722519849641994304793898431700647247386524380880157280809498941024177996821152071109836605362299586999761050029343963281683252201553307029902571042370740245794703635709845547041067523991892940992670520707594562367228328579536744473576418237411273045180337382981342740370200982320772409693851216540097431027381964652643501743963984728959906987836830587333756307626008421494517565280358940917736729253290824885870009829929488984084552488614265054107476281977404983539055318077815238497145557767856139687821904574312157930545388358359170780546919625997794300055407431684674248508863089294640012479831745342637800114207320886573420032795123293600061816639641080755079914854110159886946327886182327606575032326916760773170665590118113029691299362313921391063685237811321640097880294807388007638908887804119532975746683161396514098721065756519749631131311239008100753626513581982372775042967268153471340883820063531060492351677260997285439280621722162656220102763175468872143121453836114390315922802091193473528122475991108610537480125168290527206327934622176412041418997854540141405306747253303066243630581872988647636635523374747149827364530319748296586476342409187208179405226811539055643917628193195147031481349668001755645219802363937635041335993873539438134296648364257235204011191486652613729818127903240387452540720398963261658346617154234534981165739171324061053663377400585990134589795308996888125161919620813375261592237441212625884897739993846746567968470489694216299174057164701662239267107078391739334114141217848976554480824220321474188106965644504623759648864529393396901649770272064181925114195920005049343799834789880735298487700117146724684571651804131957221239106897340399888701560625120232496753668244567306848144572036847195043451026984013579776622290531210698227472994771458605129019257788788782688579681922575787284813075511701010314493339601609622180084289432912724424782560217844470890568512722543115649239986561880587915180043312544904528805623261690376783618909038349467105869237627788412955019246609628151674631596618941436022508498256122891844471332909201040256324070719698533443527760731401817535928613367909037832930827487313284400711349161323097302032967212122653045383296095737641356337193523870281021368420146334727690795926328169399730068954239060448704337120678635816758913656735330004252470359692721319326267528249121018252581383920622257202810094210516671266020998886595177704611215173502915025648662418720782454788681392223979282359818540857886308836937583841382957278021761130945986218643210693746459451457084106170475595640828419874970273438984813042677677720736905085731993970954579903079542490369891157370139990618120479246819210928830159088453311234481542909863720409235137638208577753836659838700074687216974896869391084953331305107612688274258593803669007077077270096224852358711473175522547120843383855609114025750390386586201057235547690991979783863564504092493633826838947530199839160912441323941855767109837240771677187308223097101745548885588874597295380117121416180209454759459190181273236049123771736197520136245074784038100071473127809778608245564496672993738773555800698106457663327440294015852467029036748302695548213163034409955474247631133260716071321544728312939882153325861270297192342617845664729482383147483637766594892162363821941820281697803760149796929401280857438234914365590735918912319283340446397907894519316016878292198608383555036852157149012000868841252387684558171555575922674552300357891507217749399811408427630233614431744397793062031890878249292492450740602252810682394187223488560946949881022791897304033632258107009048982543758483596064847184719819928419953821292785367305091478879470868896846873793510388082393710636385027410226176351877494654336506302675799410009551306708199901989550655193856850201822669742938255449152350807379155426457368551541716082394547520070962954764507554009913953729685968757380563223084335469616017975475337843210325278834316518890125458782160325708721314651253232336212561375244635640744660423673321696663273686650508337855247627015546069290140619411326407663166280327880920347216067982961546804887789691623719095509416113746324791062752967327589849607717468281676460638709324939886652225867775618789759823421050135901293168020238556477510050165320995337809476055816952372656704627692225145205039793832698232379397340905037930591537958058451115278580566746709185702308134915027368712841863054580725162514920129477130769279953518686815160952972070635835826585663391147552991056396237608219694702842111389368512997397970977604827281644551812593854998988369145158353266133099277153991517853219142349276977360351455091856930737040798362824614321856102353635434744737156240368080948167526154932690157914114713544098201012961231151052055784102432778361342004514714359518792979216878132403990609156087026200211998296244772531777118502797980416480794185796932287919065715402587536822312058796398703334678634936367183012777757451762317251031373349043522322377391247597044748435712641693610765541531983458334417799916748446447697922376886791089078804557969817802630656039285474543745719462901090161869790329315176163889725782444736848831282979295591796962622328364442287818922573275265605997469560448262562554728702604510901124955360640044382615731290373082253801510912569609657510543820239164480992508864051257594067154696096282314418783155327495167152053012369265358936118498937406631758924287550351613758745559413936058507111453758946246719230998894922590524689032532449965952009383816930808058381493174073736140885409923073019849847294710583619374885745554079720619350944332024716318766499319785128998825071836936928725212450464798709826825541581961199850554659014129833300311489426596199180638478727130257489001927982591230014693231737934599103271335443941836185861464436521446693163309514400235823735992142845572596839387527376132218970336691111537604084581210567190613994529243371549608031315821603785869522872530954999039512852283887364109412167879026812798579590513301077146308475939887010911639790626821799056821549106453431620928477175025878656240551745200802031249317226504286903364004511397152101934243497613163820997076135007406202468582470918369370514438459051884496887355574993927715609629893916698627034690093002971241973667831638950280519368928715038767956108364015779774941400193005903432516378972456673820434355665426622203543526437183700713988698221888029321354954266689257461175018761689965334425960292360999544320394606184204251272671703393960249641206598057066206805284433469065088175171103151679170892936307569363334743657306432601546918044929120137759097595501169516054898956130759609172084952376254287097723492476105276648468002917257094182938026287651679253537777025382859989143472313281924880289237347067348015063924652669529832086688915910782461065698847370641422414321041780089883930866540983052368421536033550108898896286134863357005425933723415515470848939565143116676294815551891055740543231172418746291799368355702123106158223714067054473612474155156868123233728188275240200141944848733859782259048664773918414195136778517490713592878062344529543240076248180653086734116678806491896759948026790042547923375512618641729434743138871171083004265036522515236705720004819128495407594475571689827304409124717018809616362636975022828390346040585819612337660118493551729608529034245897604432451552148845210768035065465958706966964394879135637562761595390010873956928356939117879284147536042889842417969901366892690487301316393764025916665504825739819002041870582924604098531820549906845332402933148725138234103293931728836686524689670838699935174774754464826898621503682506424899464509476661933491151873415694128168150040989282781318486078185113805167317621031325815572221488788350194563895895399750455942532864155015975445566762757040781472195597052190960177592459718613474360766072405024591538319694876708242500717190713446473005692307478438330450488752682229100701595806206636247907133714425727533355278694629536722693617751223061305474202501048360458710882549054382696596234737958612152990997467667561123558185115516478929680877662388316020796454066173789098702545522781339996948559797365398856415585656827719816454080368502703992353946966499097846699639391066116232378557554805255690893444406841842152804183179316749470524967320723098690061981442686013521701257530968661331799016264285259770126131213355905765214133655020720161537866234381266229119542015021865162205751645569082202319633759933408962186373995203805089905870257335551178902130497340498303072808950840983255533806952745074179378534285297136844135983463209729134058603356565847173455691769114494426223083746885398859479864493970367160129851160530622040520490734222919667702502445326410637440621541445626373335494473044105325740966197871267835675118476143747924651701619672491370256080975851895046835080938732187996440238741707082861510427396667231544262287370749659803654143891130876327178206111182209593271470836246294228401122075612480628155365403876418347446202061030439645801113716975032747957593136093195035813762373951643907046798678639616658040560337723995009644920717665879075072776510832436536416515589450828899156174642958835906107785366200972546561528352713830180934882474971498594726978682343749005022599764975160269796840338446227475721835112134183845244565976984088183509433237124274294591237559577378334481626585956771401037477871947484262958992833744913059724577541689959236200368382756279932704898084148157396705295614722464264592323702775839039075443967369632428075820910783656206517334924186376988531930256972713309663305086730725809299121403165610357341849561928482376003782874605192014886395531153194966666378034276472826905220400194785682134015706585228497473479898016932769928691263530368408160581259138037358926360902388047298247959272733665553013543100695375941249357158633564671569923757489028132562795332878867961237773440445472041547932120868190915257374054436825129008724322993482972674682503951531368160578983555410227643204869498284261463170392143170573647473346495685116973725946787001275580528418254738965016982288252919300028503636880545744142167036983939023749958060289629330056154441523179216554115437648978072548989693629593981796364676046379753885744704674812078186108668599926202855698711966770132827175917146605983803375496517802450313718332079415759263211061398452433693796440971646997979477784635559655768403648537831455709160815174751760735207099308887035074927869615690407432382193045101542935750698716488516227233005809678551686290872623195222309912971437196807074928653879255038203745048930529269925619079094415704127253549115900040815948765672028278405932202394245346404319410607355609248687702410280402620849646873576183535974884225131943404806102972003704139174098189449089596758406157192174804837642085792443145794692667324586196908841253562568006747751556597156788347275725692425246004040111393912646761821537782897841760753430195211588113869751106387507161976068019520243363024873657627912713208724698222131728632897485646221185632674738487712733450379055054660821447083901262471920070584056891434001869693003828083385700492662230915457327457961951158303594975466344405114758138046171946626325650449665820665516616414561096470122081888362164506894744153589023095673193740351143560628652083042919332725444370118408931170741876938405080991200373417416638084159841213863923966202054150387846459162780161120561456021839547929552133539601710269952043039590420949046997832668926067489119403671359349482239604707763237361707937379064175705137796741651128181253857505215542919048681787575807473288915488432165362112994057816323382024532116045353681887711541040545262118497821134900424432375654271732068158288719713529960566606028806738492782017140841976782514393596204098679709372970001350030589869558053168584242784344751889646466374892841036144050674695517859293982236533998177281078728362449561280618442447997635152082507890396397845887134853239068083863853033801514509363308332206449130049250738684510387423996449007614279908169717254065508301149939107926966598255967043771093062969026940421903901864989849964674484094776903829137616337347604889088618116420524185566629022085610333883918904161153629246355895885285610499675847948276494590220652900420923403154230886925618062943269744176634188697151509129214183931166219922292493457805355409996699720344488006193732645578989751144633836853594697406211747780041440573974200859874484080221808502281866917592861631254549791151484418934782633827812601855991875533196796054502954807975289883771457704519335745085563238990486608182075683212543521839392053022562502189946274996381397410598663630596894343815439415880685112068006659203000044285306642537548312495660549988527251662749383122930322326555226779173564411798169922454438804380965776329253389220788631838766651818379633531830226340509787512190151995727096961762265267881748408000360420879050263893480322387419645537551918941705241971090804873547206997998791932952122309115208032805255547176430847143512500806222468969442009614253509434954525881529979242623396641655325420829861528489874372843072464601318118481510081127309220623556329444780701012820228133963223164601838370763985972709094054175782637728590947040952308540661612674317396689129288742753833585299639851961508827337452830380056046251229537763877742341489990695878773564571885708373253316711690507896286688982833708575777684699960238020299340026819015064228116382827145128902049866860054332336680039284419266827600299683354888607287838956935914278387134483869248770296249473397376144125330283175933988420288798453263231234332014300725386292983078386931078724918302447713075630637700258740935317111630996026585481806822181438787977194610844997016614035723236066869115361760162082196894651705388449361956312708047265464806098089862231690152460105808559764612247236492931411344115998410508035574360257101841457255432061928846948130497764683371916204595251656657658409461005153940490050408615250458637253139748375344997882407374946863389638370712866945964759140058444261379896407677500529036040503392401350850027624940258269341056181077033907343044617968352820725884406568282123323848716339039709698578576590304986826073152191045384817795184260322488702097662888531942721070964016015811333084237564137939488379450967486789359390207825875149162432715924023088056358423989033462817308188207770428425357646882025180451040362508514729286205567868338567076005095078710691911322450993292211591969546311133986636979588782240614731869909990474365028597608470354935685031679116552374288471563189221832535204813927758388906129834248271686495641555211301791581578952001392607559672686714573025488326458436530049879051381843307045149989796865165568435672445801157467887158735540487223227784347017989136544235843358625772245280039122376462212535365239044025452689616433496258572005693319465542750771720954069183386567877002254128754577196314387270654098186507607684927979291496133838502806275148240058889000144908875041191206132675698544266741941180590622504567386127738116599730600821326637833015958211936120054605385402035309342956912360739584532217343047573922685546805809059065621652953156709198855216553330678120434135257505482721443250060351979798946176654519959386292085144031509546934750074681391265572942655557697926327664267024389638102415037465054581067733930226520530709556525290737254889712655133146314561250629316006404352344583763866353249452219440831001097599543055404118645161388040746071968296834991760132808007955813793382494148898430737172184504453250013308874210452252020360186883156911489055520815668597481949294951665839252121213690259864717812765441080760753747405601726899463621519385407769252361901113036613177366018696341276804730200987338026851234709161910320630469661104528697488906952601694761235329555733616404473400657640518575265065837147811077776789470942417976750330502678108044516760493207960783591875798742638452753664792791609451865356577697189255833231971434790943023003709181657336960852146973099010163587027780600291079109741636183971477627082687613463681858684888846179557937486176859000983073522404808738103507008619834627649130438560145403437571540684093849567080670282227247678349709856202809905897183647291936669852782128700848912698971087677701448896205908999046558653297532102274226245531434678251501170519618756075244740194005161341880330937955836453766672273530287133002244830374171469045842471589663475703981805602663918558521990204686154647470076429688796371396038974864878340459834795142520253068594980106434361073289911105884925417707116327461539162666639379384051150601634687660425636703082406589271228253521601477293742730730964111679331869630223757333469878429075925696722833620501951592968966454313768319052748361782751580645681899400158181507083125162544048447800943775364837389792835330580718876166604908719958920859828819404906602597122643675772464103020014975735146980150105231397481234947835324313454527583996001550580499191405751437336670711676583385401534125175651219501360230313744917669498863002973233617821534978795838281867176295933706793092918864726907400576981916064383899918960688553073046774344573343827630452584139641214913384109894643876210852597281627015382982446220030201147748504465436908936720148499472297103632616416425282307124007750925246154114723414986378070324399856739240418573614109976956409144302185607188432934939796207017913908340637192808411182071359376490602651177598446993609478104165243268445466659118640946776152130118278408996639645394331056348526231744283653249737576259967882500694456840495912543905049740506614363775141472606404530533158867264179253218442804937197331461532037519761270779467203645562054539691090014697833742316904413823397446676929574248506716144947037353100403423271513128999399880076769513254292355207660164363688661214252857132831511551962911356932936801124360160678253171586752351288098331250251458220784676908495649253057144316050374035612761943660748759243110179392206529732920952874948037562036220479045294961535968895387196815211931976305060118569900495013890146977861471813080262677806982908718601725162241274347280647835188917134651262707371136080833929413166736081464806900523423212886144553258809232944925182357718818571579399162009496036998157079817006989031646369125165531183337730673615163661673015686983611760677008018881598937483719541690146499126169564411956483550933111410908747717550233263589231109007433374559650205587798292154883748004980149715313476317588957124082982141143281370869423755594374117110334289460773100780973936884910806380568764463932657531738151543239419916613265623251120274158721072334676060330270422285726393854727196281063888458745442644623008455875122635612726305938777027528744418353292731645100078947900460717121720710041143632398989667680417965052341950295294318220692371997399017645169666165939057031713119665947294571625568186229364613763145510200933883410022397512232646253590509691222063893218306508594589214539058984538512655387578071587522455838438510585193457958493682853420680418817485527637832211922558724329174344924594009042607569729210945042273765590754307988734276008110225712413463327876601927645992096930236991637983420183822858118805052383664934404959405371875351732850970103911829587925208161640891366302639524038860714391168705963433492580485721407697937077101397470987505522303203736263237368820995807137775973845848526681305988328071663663724498754309988843382288919863355828121763401020860544530011089452329956657433433516008978834047401739562249326524123309611363796325204800792523077909514305736079132537956786370414407999843219755062112259785400520629315522327915581312126103546257695044594463941484664741205588219097461081527010986288238678438523316617123487707529333272129177286180134518438446690962196443131619646253259163321504302235836014131246093647789597273221149930373511140967188454060495764860200243228349611743814622768093578617728506630704564628393102166491778135738716823127952586097962185680096963935999358890595783723054923868201264238159398339795325591400729314439166362469534714558011318118345126336516964535264015701758274053625696668766653322716565530153340583275894425913756316331672441297087433168455421926002651519053481251657955317484060602674102195822618163711630843018875261768401783123911503054739066981539079295744117123480164698970135241747664388608634606955479457675556112257100535081077408493870371999610390189904251619123774870374957914417138033788668111054352905798262190905464120649568334549374704015521400724698587472816454860542974763480175449797333095847131154783321922947090686179953313709719863252090358911507890504109751201409367125971884774534745243818446068612554366222592891153657465399744062543318566211472153314341584515814900442493500881033334940394008008615429656333888716643791700535682344397430071619323330254490909590270283790028527390521171019596468337982274493602457027968925595836092634395920489891506394170297760174317756787593046345887347722210516486308432722879652241126210698927413328316197334305907851110601997409439897309870781539348668409576213933744023718164082771839410658621977975469616104566234773293776425104653325453156930222856328098059720489978493137252784087820543999375534236863625131133449309580512979566705922437207393234545315506242030622904051997294113625598432574831383739968204826359629859494147003305658054331898687917988971396437589838591561635269562077116209442403794343529577251392116719951858593476799854554628345892825618538928224596223729839914701485984134077071206953417403532703705819755544497091537149256763474017918330412605492936699175834552307841717107203701803929726099744050480883688178128630045615406430470859242815571552436543202568371901934615440295984946473388944251760870979041526014639245962094345289440975394675284895056060482294436543981389056355269320594136597674290408843057109829346978492820659345396740251113651288962809105734521773007894986031633431804617512037730215372998223834927227420184346667399202512517481492862557095434006730978114764488669898370874587840311652538240690064221807845827103009947403499563068707349415158382325740877776504598076348432151130035142098055055506937357625082566093504385042235197493529115851952586955254061605002730977175937949116076188719454258708377468484633863806011561027224968306423364722250337066485207611307667020793294663446941757925888326205550435849865292769562533985366390872773773439476291271599359369357140536073347562726944913778210626293351236848828504483842173308559116059776366239673002364650178755801252796252624341506533274126538090939831826936092992418881764943255369487406141393365309145909481751674436039268596585861900652959160811576855538479621239797619834711820911599133118063477249482118413339307940721301229238899524219087535204306214669376948880415281031578223514749767385463317598638009063411776759547524357686949263209027625085655118711156317247045796085026884922321414481450942541998120018521863420831475231156390697765317442655544102785997169754813651800901893392231944433870531670518125490696822221828382964878650751754158587234751067120222670352436992604320329779440873377941972071097994708611884312593239799729188573103246891909000046666458855502014548229807629509624111995165130581727477791495536430443070193104409480329434249941821355002790352409969907202939063212345972092668804250365372207948977247135543481030741234833138569718643029564514351521682004591574579017307364645460418800012997872489839883549120814864803795876665052838395849070409801828897660265591746027506271505601184068411322759345653841174527574472524161621581143794689750964194430613126993642004921789660096319174222018030008715626045116480403875357898326931344444022798280522962971686504827289626271011901515484692601297567987060723121648434444171410059131793616326527893027113902550264676674161712485495970941830654633819746791752740641724903368695059841229471681202281320635263805078052489450736735513865610665170808634211628510202385486549211449635858100341716160346856558944819681097070275226470523672576213593138721636312585982828431008826948762392370813750961758941277651493278761954546238221351665366800890297155325837909218950170513642144808311591334286086043084939849020984781938416196659729929603856450363518589987637913281033029437998369024971839866004567301320246525177733427292636334397519303387586706375294051750621479787007321551720014298494823492863513588478136347731731785983117484758984105976102839991129531606661324149853899107791901832803491737796617408234660139596403603223897606153046782479924176177847187489854376363230692857858965903702589922448385457929265786243906387560647358935755041298895798055853268258863377587727991448595663445692827826501677061584012243958096213299922284368078507224644353192269809446879267091733580977625619157286519357825066383706821467444260303288442063477467030432004699489742531450993099790755579983843084899112047789717857043562983266710664319275223037074934390134203436634753025709036459805355946263671702651397166333934215785257829298282772263300698540911794495088948153329817222116495575180194497909699887613747221691877890099790935367020865964770181470870929546269326906180631366515987090492886384821073015569123337412382210637330211295285451756016706146875994900744520400699640885179067516132417259965768275020150561636964256976903257494407516822594942274410430585070125598798469279857617662194749638337604705160410007652668579299209368638689794447613418998560564375981765733439587580570462739267156979153299159582022822226682921758258410011985755293478547954815611208770138321453806680907621204526098487863501022091572386917654949458628712041563651562652271803714031667608743095863881600519700861552200381407491617568074103184309311150487818578944961867032692835919039923974612409370120260406473782626061548361656767122095023893035107511278863868202820641216651700459882318857111558872059444224900858879666596485072804308556730498813594331160315610851682883262992287602342008294017191528374330076058923211073893065333269658463603787719952224877753354462776481416267546977422113156990008232377631303327070633853834870223718016586060763548891944116113148444459236061178333797973086910403968978367305329530639655402355793575505873864557203596080538206041974882608828349446373174268379544021474291177503009058143592797942932605985817779133132131089493234928712872846782715421620223029729752582326262053642941877183383495759417766762565360254611830386924119607166641396362037660754636286229187317043148391154297874259219577720547521672785020953120718879495498967452874915727119649650306354487084353554191855849223895332210950392948812019403785240298357482604825717363132126122273208370867240058746102925205731086230059292500054997168645669091388332768061964620046786940338246078228312099654797140646691781495945377360429644528887310249211042401475122840120815501588881504868531281428992005744253196791715767290564878192216921226207710979994044822041715279521266348109321999096988273832501723638700321940394214562760217485766652556206434996127381203606004669677642115889505042715389196673438095331082291123910299704798035325852365116046655135195398641372582114678103007563101852025034594205947982912543918370785004500512624943108434769186258612067195856589621154566230003633972032280496937744715292678390138100453482293527957759066041356954820487679668912498453707939130724622665092188420140429080301203859833346782760457063412949413179826922026222155449022502683383182142730266624705307350768427357593659597118186325244582442275684664859874020099345470397435832732774854510640240880508987427982544970784752823246546702677863476893198236004366255375529786425693359785573455308296905321729244895642817441311500216087708842553486517056374294508513419680309885503637252984492954063607796189698639611651990904822582751657036788814658157315854182725808360681993728018038348220615183939795497864388033569736161322544903807373205936550572302404410681759905518371439075911501677219862465015868758262761712017505363673791748962113502516841920804094031288057460769804361334695827792131980931086135760761861103414210899194445193411847796692909652002785909845450081790029982765176106716759790502214644405470051848066921195796821258001719335574536062509168220279234884008027292703096329844427856326831575327041673617860162963062656210696543191410385236151584124308362779719316285657492580677281942723194687611889657576290860721945120878128125983120960042513619581910337194438221743666079538657160347010593384105157026047672475440009558869537823758999988447371403726099866226110232000641167703934676399052824035062230064188641450582923780199245152153203663185848876325460829740787967919703338626270232659213110675911257752072735780045994754703577874994562182728358177608983546262456394474558926432507254704150458683348000667933737447477741488191675472468283793723414769837149509463752122216549982030658397205050708726037016746022127142273895316028749657187964805185047118168105082168405296573058174327565512189727424092382698650783938778895284893832716277367392603015821277743719727625621827553682702119733710349756878546336291129502610542712621262119303102537568764683007755117161765333197511678154102429403488760878235151207063678528992943667250067791036340421724330326617427434580612922037611744321587738140647762791351556712019617820551120930759557391014108561396152277675583533316628284598350437395660221705974093185481081398252163042913970327889581508208230541195177895302794808937006012275293970419180017800337876989390009510698675244905332045722681506557775891058399480137317591343253161343418519956567811918063277139988198777727609127060777337204562449427401207840203362627336300556645309696921020557028925136262875590026216521781271986640077309882252685450421049348929040220983313789888855272495603022578725180303776920814981359537569420079642038696737523599972492737396497710958587042862458942113077116449406874689147269543278931809683491638783950950018127052465686362202448670035898141404153509443948106882709328138156628581690347241354087637023650177033762055011624744329358639190259922945754862858253781340122427886602871023031419220971394687888362047992572431149876249250748850367678622287692878849486315587777102711810115013648855530739915307690960842562070922202737712425905700810775165458425111710324629705897219068432774594086716129633364275000066726170748662466763307705584737488902323428184120902285293807694257734011618738890067494423437892761220199716576353090417109622010592832231237225670747586566411774936114930668596270093986710905889805492806296288412514365350067818384839788479748327402261770190184323538298092096329978566901677440653145552808278579939288600204225775021158484608251231955651452066091373431328763146728424645952458057985911432326323632291709404903595156343886713615329825151344817039012852065670043528978930397683117062523220816611910802492235193016153266694400493841507394818433700376765221943916416612387752512739899386512385142332228747954722706964514065660390170918805510517618397824438844296974086977719879479351199998248923177522383495484668839324295587557755007121983792056728044881487297539761788945095536523558949260409166668659717076401505268602601389599920717869024506452932086641276280137457739550995840796659275554228561394662349596237146756318308730875914239037193330880517849490433520271628222262728316931125036117366628030280971004565393604963728444410387756954893500521665514467629579342369220058524581855508564740404121240054638537688174790749500188305892825292484272621172880783881029914584883120686392421686596149790383754160659516002092625286553602085390701016648349025223976064234675152498716068932486547460969321897279609623846650935869023098883768143534139700554304785282724793433326476331630184595247043470080275645249117016444730541711907707953098462099887276260313436808278624357186725986787971317214428894612336256327191429493237897120363629139672245733978744811287653860687109204305769330478892398124029773009986238643222811720438354068737485620037352777323318461065908466567219693445232122992137455054726783565436979751613064575462196280832723257819853818358903266685940291776631767040976185474300833014940013442163910487446557768936459732485314627702941240164695096265878900546091391834316687133653757952040617578345974387413497836467955682955446319780995011190736060080628456775209851559119358489792929452973279987923277704652220595211464258846221678180896697999155150681319502355166355686344937113202389252595274229438433640370580198824507455946496647097769541284384116507858938765154934332467602577174298766830609473318006410958536994703862260612406981781233424034565316304343469796091225024749419149531861345363804158970017659947718457405532005677136320698195750358594370970029127974294577743590238046715026470792688983986356101757719005359527077352504636115873849703051908230915719453955978124864984233203432739271781441699394514632390470035858487545867680980560377660246538307207792772676686320027838275734175150343944809098232762822279396982972277891354810487357605846691732263512992215551779707071868240563150082904678072532387752079476807580998761826095655639146322215392999594182096108971881260130834686246899345947105030961271024574203680867175756097243743014067866299825705994879476185534004368487390086064151157921211106462834645560272939405298512549112933462505484014119080884074767788696349662412628949660820127520810625842097366398750950843410118490802782167564497309693972073804242087020135931316906777686719510113879233310939988052113903559097696084797262455730342043707692165703657476204473578439554448548306671115558346271765562449784653509934694073647868914097442633723252198044623642734772075554567157705942589528016229435276272141401092637589224451330907742944672496633405733125863636681686772777706541550580284379276355893079465471861273168976374630073106344898506245442940312150147071129057511570158136209996499252061386943230610025596685751375471925316421582638396525109489058468434031681083811033953180700386139287254951590205156646220423243101343373637049157349013678977597853911975794685144056062193018568086090789321941150198698398646002612489664807386386995283879865648460330846278478162438429355414223983803726332324969752202113098325846645340387575991188839727939015602815876763243356863372825387518438231345530448834544769893362611158866881596529206659613970871687222537354976261509001839040120828295038578992751695346927607480274970465904716138814221555275086121010499008369514999745869087484243531739998888790473565746933363269195117422704044084333736400531861425373317704418894155410685919555790450306796895457041646655347510795758902924259153308954026149029825160324968638266874757305426951177356661684983209375997353634670106877760041025021820254326128396928645583815324837191411911902555874301552055705225341654838400738981711951024678838460163610082155815139247679031027738385318285851253301689633287136307840265849594530449093277974736822939355451556612888903900794709137487906618716893500639911330207336052162039964934969240476437843040426904530973128606999593816419361857383845926908360113256635256029717554961386128391050996841277696583813372520339304912324588295751712561007899172476342561007752842080495388583070093468494423110724173043371240665262007675596130968170543434073295749257905704255936973324252130797464271272894345675574729609321403965298653843915291223741171102207984436940912284712842699304431494543191384873985522578062395585454933181051421498470701700298109534806403764554467130348232690457408303191733107718479494939538841881610638518496522393118377511009636014586698416582156398173585585518596764654192832023018739757401945409748942172055287174993676481779681936850964592634724469249050003373599324071169586859691179694909157085319119414112797437994693772127811360212714419320685498703172374127071747767829672756421344719295865998567521187495311656322198728302654797144367201816935360211568010946205187412615020928771845871200554225158187949002140716526341694322594685301716340183501702853990526888172988516950036859644910190864178133201334100068758090714272258815277691552943742843700046296739464866981985433167101236594053619395322937926325834086444937247633289830150767174414906604466064364766113375499331349017823291121059670577056263928074315467692313389156148741323048525451977316737303302848117017440194160234319845444044559573640237575141617476427344646163343424007844350251492580794165130815371384947696701232473271855492229705722016841116224725553228235430698302894674738270210176287114520040157321889229937340357221752217725237630781119333750766280024087028951858996524116056075622941987230084028825877094241437501788906771370723280314194554051374101373951345964456630278980932949261247636600464235948597993309211538204286474143238186530418803915784830794146715820267895545157837820872503357099917558849277832499415297177537220607572732566199533210899616742401420390819522499572020713050563372719507392851511502593652250784775906180113563935982999873612106461890874605514333440731950630208442688404754899468886048280775523617738843349294761022859877241132177212723514321974170720218242508815068582392992274490061319977550940431273089096846292898546875912221298646380027314193815295168114530462305313544534418029083196396470648053908655380732644549726823729313960653133224935274086188364092924900971790871119321074023420359334563973179251713584709626553390341261159715105390838924064093613726332619451828157447197221608148076171396573058583754020606781859246870168662593388601741771695921576627226135923221372900082021944658956680056503910251426172455125401934453547443269806353255185169387606296479183257957530880110302955383530118893340497396906099531288530218137741878151555967108629332482510433842205590170389071132926888448686688110223410925862876833854576744054492793066148839028358757746603186716012961327859530428944372153361489023803388882306231029236126306765883240973596118638751738889197953643025803877475599266134108141685549058439470701391437266136810526761569019603987922091294171557600714193033902721652923126049721478438449179805047352383750067539938959702027903339644067142409402823898730544004173433876132254356501008660571504894587181892627054088131944965996159438714375479860591235587678122029486584257522641096267567688906308213349459625167399962346786426209374732165581732078537337639649145047007133281754436119030516708833862619026108857093782108057607538405543534181547636691387861423600444302552956066406263959949899677067246719724641814706404937310830480204305857184451983020840497980143514798572924513850618517398674000092804236028568570321295772852353038316484095615559637309174110266997029515882067770222501276029380635785071934704140391318256808596407414793555067841247610545490198601887903381393023130107122299587879095640410929696812099771408291223971845835780513250880438663106996884993493628074119804857800154972228789013541517429960569140553070823097901037986188040078441031137569018097998635989657510952526059166475902250700309196985783650238879207969140803126426397814131089441102873031193972098426569207580427427823140904453320203707544640525914230061266848880058239778085197381101620041708520228269826758950062638902148026599145711282074704456718645027586464811486194997595565975656202838060722567993028919033019702866825363218864342902654126053825732712068772268352447723054180921422441664234024276382866692886108795410055668467325973809922291704370818276722462747783563841162616381720430955413867086811500497638443370334705196468238763518671572172758378797072572910543139423265724633472604991225999343721061198579485041970577901634292014180090137959810858596631392085415355331310228958675577609453318342150116935702141193853519990216301214162183233671518847509206446578798558033414748982162800696077942468705138273239408356184828845691964725195991560862364760841652777021999982254789620489818220974575017075876791779102353120318230604521110046717974459765908016044222610497251391139727313985260322162008220508905008050800008187224903168314029683577860968286723940114163137568219714136185169128506119413699095696440180550201224670311585607397817608007776579808439481205286909290423501499849439493028527307840593830518726096052701586155603756411438125855299703233982950647286228770415196705924411333550742443057656080109114704045499334636910224052542122925427046984325817348096241301975523909342267135372120407311810680526352964174970232987966102978853354413152752102060967777120763794009557424119818924116809770299022846073845287774426327137928878515997599586486984353189610469088263494638083525940094646669957859069299330149675031342794240442241104856750988885279285676383521825605339396194209404101561305219624867800815362519898026406977832942614823051477976748919636211298608117330657373429269907046792536936360598572905559150088544007640574025569623335697052451156677277406484297511672892869503183278304132171017422512672524677201387399437643471489078410353189828192059684514362971806778358749527210780473527509681432857211243312008465594780562194665139076237588933305394250704023634737764461089685640814781496879673988604220559188642987385919461626634262933717566590343842754273645495112924656438017636138219468431382706065665911086759317119680584462365781752939374255099291486792449383780333974447339115524119599414999160907632838263106574940851242008701290761623463414594177736051061187634899614470136253998317380175433568165860691732953073346392702532061978560986383958713695251414976294430727343463633275361659301838702439393812308810723441416174128897320672912897291195375106348536625406133932330625485190552159863810672804409542128201217306153116499380530774715409358008899365153388531240260821656377855831683008698152160110378651368947101844661821702265159915612915722165862305795557764091111962915246047740180995520805243227373153601527347033453336600178010270751173887363696563727958032483930690662167227506278700890905207249633760249811996242136024540377285828881399677219994395648821829152730437868595681235115370867124881799480550992702425971905450665887767114771036480926130228250382408521861615798187881146777423304486237702667505136906087844608835275805298509631176545049145261918613137869982791320413787076336832297332151103913589212026674283578068850811493728151931950738701722108360341823247539758503202316676575758118751543036780182299509964959151984474499724946404344901496385423002632729541009576669266122571104905559109238996302260325900699938139709083657855262089207066825745189405063196824246155170157126006628127900027478024983724996945546761819481094517339215125469057543958625065289318842706731953481703267520181581692663726709328392713583140745229351417330896651769512634139540818392908742353766607612577265676518902405100837701891532515808423562455947877890207868662307664671588189945808877568980219262495816040621695204141165155004209884130862957743245357141487079460976699780734480286817361975364426504282435568953194502339244968901233318968926151191147627121919315209687983065321634822601717046262676162291173000105648096973905334248156495733002085595194864783107111627939306332762924266353471058949382348833810995038258823250945772449202022255286722085656214653994826419251547990546113773507883329830528966659441872490752258187253816604607287020196331313223129222030049002485997819410412837413248178497083593540933438385597138785835612822234523470582215205989914954199900217694313858761995888705226918696784203498467073686132966883174220185930406324202482098933407642220334089047504614435361213814487325876149700160922487170819989180863053932593350615470371555305611687737546472935913550780590516712992304861423433986297772804114442718805128960941797014330070518810093414288128490084415754134188046005994661845743994708712864410140441870591476405226804168892674739541972347564324556715549130622277179311255910614793415160221062555237694696051104567575752257606628129629982250845285170217602134828116970679083310450141643130232559236160531794735463532571335040570098382013604496388002248802142725516266629382612254752575093735346667672049790382702293009683725925417177390570444745802911110245194601302777517009653862708458683962711630810007309306553158557440530927501481303715411364402433286101859994910388104916894764077055178394283557562376753498593188814854950874064208601101348504234566593837166061430585189441734298737232650268588226372568820634222436970238657113066712959891218938544904212123192773966559396703993941907054447322841386197675931124081251913091182816649324513828288030336117193812056784917597341774395334982058295484214426999466830629294562977902321431904783889742600471489109070863587196412533178255650809703709033874521193945430334712424139175339134871684442949925814467721536846072901500294429194833729963893396945453633710308212551122318930505148624747420683834159348917976045910259569198026878705134599697501087581923996354527440060047617638051687206850612835119291066226018051081675757651151921876551090154380258065781655100227211419024234470079810719402921022086132516371037931926939589007467006396867977145500259653166166714377589318975562018320637759881932844498630036903065339631604183572615321263271918409302123384916725722964885892260526142970660300560386284337124088502082652045406267780573065452663076637023829235979006397605693998850221746158226857967114342890273149186139296471435278233325194793478235853580074173268254209785372712698247099012467540393030032470690667366962684322594812303700386326729947894172879203293585068679406152829646189409266948502808214609450069706066643496460633229937896977411442521096593371373398371292709336427429621604412895863093232967946686891637318268271864053417331035211714942325914558273381592187281708843306547812472648564870738643680590691760427706517875167893054675549855941627922623658865492117248168374210321401790652670547232924894838496378460907072519101673978039676278809976153228443707057425094254443612783977794200637886754258184542336824033117760166259494314981204020992079515510300101382407546485291485067431609278543918595555659510972844746706132126095525051724445108980872602524165438742761314666727324018660240939295553531961391620223309523860943189728422388668322667370371574991785700111827619960905611926904172088714508019640920918741666908234926085247931257386779540281568105585787291535230654473444620406694578191541059642901542424192941661004025639855054511037015291847043672826770500372681995039369450998653985831428587082735166282877499143828058117934007148289816919313584276509875434327701087816694018654500547022195280134579848664187777576963515970374005309351087229453133225408633332201012766782345064798640594565698802537553692934225764764715783269703006261536760435593234515597665116494536873985485608272391521088550486242667581869822752536729283073975991315080638739412676255190100868722112328749139475044331028599148746979950797062959017998577896264043714356519992496300985671445054484044355623429311147443661274987001428120129151145796028077734522368029697280461109294911210630435645461386824508434673617157608139326428962210143338275968456697556305834263406525023017352082236012836652887644199755054567754204438094938948365491210724816515102387969937583263971488002526413234857236352636004937117018719557467888503065843409188843710153040641008723918183576196982331882554628781240680334346235105236727742778753768453388388271398346546486719615604371400871198827008603810249820100916884212175850251479881546993313141782949837578409238849918396717818590351719776843200597953844816926477779324135903170981100205521064644961363237963033640477087970757152356152496362585904420764603633152132045835501644720677659839229500525007033805776187659904390593612333842068731703280776603807962852529660791007495692852287704839860310317352607566442814660127448567231320364366802411193680919377939986237941642951488115874098017788733025961699353938917329959454943036504759746556839425149003615508551802177975169265258271480986959188937624155914673441295978673733672736781195317019836160701974226276023676995026566721582265063222970351443428173710309954199835498518538717509808655532941070793850684694149833255675594640710566259802509122210653901847290544818753499140680746327402386338383541693542487610884718855843589175941415238619025666830619962105976966224528553138493221165907188109231180985526023702692776253729758682229588925050523135080980247030087345147766944750255130981193535576753356897814822990834601782745180708549626602607198358834578135490696107391529287975122196887126672578387213509774447008893647749214924049234595941467209434520615886064754901107518039821988548251390264216711420016815935390467555809036333993512227112519784534999845372822471590265910304219298586258886523991853599683766905221664786943934369440997959698476905332965508571066043023067145383063455181752063532198808364507750512244489772073096708631411066751701232890505199007357455555404881147275901772353735407957985657219216404632811335651115513076230549375624560256324086619342609310810234802126744636523632627228849195816380316338319531920646492910109957766188717727577346268904832404655348624652696479979277424183453803676444510358131865111742143385658059421020264111891323333193769642899242963545388896142665957938884825034907849949143695937044689822462408228659460472340308686976079349191135044327623674316369377821873137486388350649466549874265388874230729842441364168433973660398468456905023546871897209813427347500630899213300037432841514827829158047295820445057555272465212168392612546227049084697755677878681824435724195988128108150632924039776923424861399546706517383594577129025388614311404206632429218391575533824494319519338692177115660545163593689559747207503001033601819488516707271834813786017364838851616696892521339408943605756487846384199103423553905682718624624495344106141072020727068089421178938186249538497800991515714595094344376346959900345502848318703761921319648471765284372470366738587100553674784002837771357762609466440155092535622632607280104789804011936769515408033248638073214692142001075672349926614675671232903214011647870365950893826511522658764667467364654960870727385346795259468339204522353620880810550382559874796096147083095547147936747701793839277582028821127091215715347081115410885339615783263254840050696689710981696303031011584336476689872867463360724762559504861949359653982302731335834527013222839203987935201193320545769881408610883287880863463235112566277575270949291527522763316942731812073794609335628379769624818919300432104491894644964472860635028603199596175535155487443069516297554018454230881543379761987649305650600895322018674653686364545727273513907797629040601561753184516499801807847933559169524706811546997668823392169831266596005282929664295549486585196119396825169879098670356406545771976676587932876879272369041117152320523767880758122944094522035709566028345437043918606440692077754864129922339745219914536727775477041515614597085655097781135824208751439988189391777369896758080305832647843168577896275865987956291817830087205095679397922310418102721333549175380117953547555163937972229139864237452865443393030992128572059705669999899905598709510687879293036390672635486779840852610724476697520468646922237125849629336491947918784793705477879774586630652263730694191990060290496393913829551450956935688386952408939862617456721362694081758938795831208345279997701467748920533763594917426056798518104766458627801815496438275509476988270666042799803791883226557848041180598662696679637875636740886884436252444553633068859479253067921182168061282595540459518812397762785864666034285247318871112263751720206117735059150865932432308801504567972198701457977473538481194598159498053659789134803934451190684069846663422784168760386431267056824713291258931935215660663434712107234397267168380242577779193702435966763011422076844414644793406669723822614126588656020480725365163309112063993148367109868228607124606706030577526745812684608098506385121747949016011410494384655319184934791549035100161443555180337457884859001461383277655032226781371110305808985636603682724417038914367386829624327020681526879104551849251185408443235416062106335450329468085220057801120523048770182482022668659050860754945843067779381367937480462911194786538598748658415078820797875280914673726275726720853220747618491821821988936249597156260374849978757294667632229651279843677161787373118178396511201621941365786174166779456130322817527867806410040691653198936048686585141512894422690609116646970739783164495097711587209514017811749301634224664196815050773627748771743598458388184538472856893293581315802434719253418696654574801585130126879269306708040098241792790061540179145219498063462764656408757576477090861041963288972813350433749253659977459776655904704563747772157163621203054602019803701102227227042670199159710751321204942569708152578469505929522647941095972508827109236804493654263809141210510289763203238199607142049736835647510433305214931018240165759806630193814611561546267090974054041286028230977866650416136575640758398668257799406239286777235091263137077839048688259156956189757387863282163084282032660959575222378038334133722044644330225545527560433611086935013006290888983186122529362980699255386814255921550117596179134344616268174321104724937830920222362590818745337406432445418935777585332673013106208684473899593997427232505375760156256533332357098043416692835691736562295456694217927802659226307521716268498389205874971256980645333017591338518823216646710671189440547801146693089977648097356636614881356872254856078110777273950604819008771451030742732626516015085442857778202708956833515037930162407459373418422208435861720962005916881653237148028099431289617518053703415598175971758512988465524059137020342838564051368410076263105838184527420353938695711488778762019739029674367629047805360820320965389806607006083074176420780352247136882378289284535384355121767463778557685573484614480257496939581411302149902102392351670945383233542486086970052862323715414699632139876150862323611350983847526282826632432861920136970668729650035929367972692417666815303306728403453603038850858926924065668304602415413109518842211902283601541069111946804075215565580925928539901280708041024217606745840352901271159901768510432724101272234796194179480606578699942303314833737785321215047796020849006383661838236094398449360554064532408020894933689533736132517685475766801675125168887091782601561146912996662743704537667726287797280065314938942049005912963940267117320667575712100106842981286015111270652971974825974849697036205782900059728919260797760250725011282343917721738420463334983484854099152028304402205806218878350505355460788385266635229152466141792008030104046215224769000218116089513428698509295335906339297298285906613906338716701622542684379477402918919208730148811796291152487164706203132169472800526903915032143359950033870273915532112311307261540922544664474226478320812128358337805827416550772573326053721769003130295878362972667020589205033468912257101203098062170164402163735373010649075119900706490848453431180356957226636377425169028776935601728744130855935989673666613109547792079974297705795387726784077343892986549555770867529842515116264123382991420470271122025012454575655859361212466491298210792246654044033739177695458428421019794399338179696468507583111421542670168659089353988634417090009957000292039819962955229067029364412773585113782626233314865733334587911207973028645946006653585912716458739331442172877240935049835857893154093097162848286977952985346015591495252840685260836303081771418229832320761078917954617958463429735966127143451652227120354975933270952843660853596191315437191576565551995290176626036751348733703170510749813319424465608474089957131792004788221231963023093625090658796269738106165500978889427139413015161159598059368377919548256079197858740161787556187416888349351866680667630284589378675839486756263455210696715747616832275963039730223819289896334877735919940081536403440395995517963903302992204010581596122643880186903083108272541939213917007166552493847269249516522028238371041850209935676823491191003423699565904027802641553655749198486882177952582416939874141850582616163333611467194451789775848182394442749460799341805498594078154516697482750563226891178906626787990746243703820195578604373250680456652086843174331533356735671594970227550966709540176682259216211982287075982051496228849385888713166256686479660035221287661942044205879164104185367188561886957572444392667541894669221072015904916478893596329916601357108192832229734255000743502577793248824298239334127448180750932167694744083519669402008320606993269011883775172317189998252427075930821676498211497333461444128796057242156772779408569851079172464065255197782942260087873502100885311926976730397876306219936090534201615898373539167157684652978012196909877945629552013992468399299149399497196953343430015898460099579599437563451551008245679903079913273671399273895126945843268839733606007504458142485299231127654000632138792673731009368228533913577823336254484761060240955470829576334121217916456517392770293466706973597879881833637385773513715970046144541747445836848399545007927438723194048676271331083450568678125307144874680740573735490698206749634647465582269102052613078346241160595333265610562397975880011513568441812070041760071487807724464553488736859274777905818346763974129908028154118880219661642011497728833434568153136910369232128779008610648605730303240720757498344216607288729725046011912647943750576713626631787035994888114839950603216471248348576744373564914014932492094218780914982071464267425194761282818867736360502309859874388965344986967525990371850475333288222023093627031048727130039403700156869015514151014609768652122405860828685961530165049483469600482216363091252987969107132615562430656379509702568988117348080211369234281618434081291325529286735677537282361467153202985122794287919690452767781844366472155488539918676758852800033928391520878100901626359177277981950329232927909042136163816946177007992065773730432962812509329614990658777769180109108261454707169100121487390123028819520429259313006772436779150483966339854354694727584633227922526042007865447398789984067576555638571489191749155531090763249762342540869291850022418515427184735266258948226118664240972498352834200422062200911921248878134397483303066902549466194415205330128118908458741425710478201687257558781592440623743791777718955093607632905646068177721456179178436059032587711126723685658393581085040908698414202009871175894120051975322847499526852708961014860165525724721651084319987468496186287988972945747940258076229733888318321814921591168562136158632504338747129358392197098571171746875460234161332324596712295856777121714661828947170030643178939282841479560926453881052461207721340739001564220404286551135126152202252776414788718935752548897705974101379954301646074014866690997164742137609555838812163430523751942657495078973464604755530402190225016862302542059299083532930384138041392766893473729494182333485060654601923549384629993874235728126279433820869053986878163216910559731608208272629226258679723680705242710367532037192775992998780416882768758755883084496996042686709288819844800877524161281591842394168274750027555187642433544646292415848831114305638811369579726191539501840574373002611457546043265722736621888899745353350415706543235124012197177207368884619544710269334020699293875028592171095600671473610562922615046954973104643171151240784104712905955056038690504262717204744506591822473329929186349582649094493144836642434483676827546842409872329502004930120274894568298108930524917375291352718480934909827870504609038594905057369345911322071485876077026549464036078408694739732011694906804312781391693254442227481230648602948395709152118665788940036752791518153221070691224557594514514492874863818054244316198939775808482707079783175952598891865166845597908119176412761891514413176932603852878752536858151398919943621056763594104645817920874492911426082516477483746616591334257354843555497893821798647957973031589891190814214638763642956116679487298921267250941330847839343884691342886932534289535214554987438078568128764905217242870048448109913795327417239022381703013201599071449940808650448994852939614483516333614153965225998098212967662766482905312874166633007511323765550369423837288145175440120843438879686863287562566780461232258717103513826859981441962046793786540958923709791866883342080342519801482400625059027329607262210025682182387798026142330689298416508643903419774836911828819480826114918125489060067611570822588213424714196716557103584737406522079024752828940488924946105074818940975840841270169718245707850456729948254951933721846620764367605331132209499782892029194047798125715724030963563786441122238461340374017164160343062889329890399097736368228843501395515103104873037273984772543220624471429506934265109003828961236533880113757824319927081667475004232657469245999307614905085054999666275476464083698255028051255846790633562283687772025524807322458564421267130285179832382915473716967764451175679415320006220234299260862607986711587126793633559120972633967476068652126496580414449664624972590954679605537643622368693456009234672166856153788413101649634461351626933811739240572140256567297550319536700688762664460813860501388455999182270782003724385978790367145795389429999088071945404333830996752628423614193000832356138007168016839213884158960970039430368039668391162131314871275407188182523695743227529012313036818803394707114346583579406897021796564913438403101025677883502648118356803717946830373439543271631015457019843625102193099205616096021411064320471484874629040763746913536393442661697278544480687950338544742012816745020311569918056085835117608649432553887213086305420066015315272580962415568599263863614940007188809948236634300598753321080496696054321025373998057123433974194658331557546286216700844488427483285189806589384917475446639037569943833184337403251134201340288836610797780719510443764927618046652015542248746649014160124529897583305071471273949470335928417604689653432625487126838257577057669328359727279964841186660449352848945252356943702430805315660860783073096872244390866985601031178632964192868914006267924398890898401145773580620416341598266068959353303305415430161684158365425952621507898190637591129653796025736308116081738252333300807129875127037388324567487272601784603632443879314138694030224079932958031319137787607792872997497215513244653524026302764674511601934874707365065957816865690555455698214413697475154547949126534805582259347561389410684469857923682803435143743545957642009203959017434793740552355667416873625734841963029062547583524459379267485039996845021224546417761300685348518350720249075773972839990606305519203162846602299738895156437784645023745051170212315929476346182361973913098207154944411004440035378793731343636034879773102604488146080116203628146832907956366395575099000896691443292539834923726624655440497323063671150525267640679429150900818642271841120887162026252659543291668614847892126339446860937342454594912748933179325209413647258378134904951851603834902309871573408691629598674495129583203369383533072802496397280434203596838514012807031396303104233910209028144027197659028465627753226449905016526201640758299303342329326191133757417477081509748097351649840356375865677388751462277362939064510644700345777682978595244913543913770533266242040383189187945851333570358926912289495372732286277860045709330880875915611642041870822770184110472395611182891422588486086568626570251825107074158369604591220103912213013834040934579984225721927857486211081496791576439422953516967302120053911067594615841860914137651433713779343754746963231957298395708906707088942307541339513760728694441867305017294337005522176314570616750142165985521437032245329061784640060578102736744708307275240160556912728237314493958174285952589246514142078904950801181992287160078860451431408958637674872391400073699059025682085989782748249451362005163072126078065926557717446694020141419108714331679591317986728065964225222308002417241574846529944199613647308984475949685649127454515225252886516650674733321265856554512314053057023331164714947179507002580288024027284537664497101662960889979259066813909532725453783820505993152549043373077060416890062284303917861094130506371647317876320524958317737174019270244603066965859761576670281109524572939669363682621633873322038627027548177935182979083901164215350866878894813945627068977692182666177251755350781196403063823543688889078348768893670089335853217314830121697775608748275750498101511247708076839495986207291234416273936531130487345018906117241686329960067811464114262121559721252993362717230325029438325202054013701432753393848887126963649018125211078802026267563828617094861951976039776331682832602050011855091587971098632593541972669097075085070940874072829550935259224692705475805781457515849254608502247938610031972978283098286877812599222768333500856204658596525460279342712535302457251932383498877508458393148713635258023630817677079614969720200723152908446939564939383503661631584354875682186629479114919039335470014372381061681888321352191871243577438265282413877405852445698620967772183988299695745044220692406041036940748472095508427403543269177343707459879929540690786616193647227093348868767141563052307742681442309116985542290787413944851616542548475297992600756158507403405781761280442110918760634628243697861632686650209553742378579616359104283824032251396842451853546338441516132048626947033564782974233130716084271411199186974649782434098974873447105813939387433269960431545836205240747562770674881162646628320471842147143342239201998976644056350576684209148018031430947981237873052966763874238907377745820100210550858214858946380039843778479154579908403694928930269576399922490001387417824308109236252135416073003906119587593375375777506887108332454384545476593804974726029478940687495282724257908783501873690727686009145319493747542327058739713946041613270687201470344535585076815273083740037518645578823540913919260202894783874709856755324011683246353022556080928750746171649849862075828636165155608611338143462236225909111642071421597855692995888832654132616444035115400778997582344425401532885694397760919535598533944175941543756530095704245171579184644777859612635087614182625884513649720590978867600327755328881284036436534547131821273796670132230761719509259461114685297794417654199966398400866712588159472512090663465884366704906170175728313068718863721483789488252188280347430092751322396688656278348882056835706757169535741765299469162399477853065846134840318295862147131758110194392573516702992061815077397783305666738914386928321979164684782726804607066899897117241603735301613243551903056162036182444464841677706154440369901251916322280798809660762424597242440235824922871616260001914573965450690803446049322567393783089051029032345372747601191040292745159020520890094439897196259056308645262481331731194952591997426539706221726061831162051944976442355886668086613300887281925769198184121352068450018085967319120753560104964543908941452684851977729094432684029885065593545263888992390052786329818957343175271839908189761354768499192977288937990342158936022781775782199625561067881151987453438459436417196691909276432067793195433762398772984657731518569780757901000339356006409029607026830818454752972870679360974909244187534137409414134665040651501037403527505724029691165816689456397991562969966729555037545779150809866022631948313071339446196799189963659696085149513895598951435741630518903990345049606359459869074599175801036634986161796855702638738177527030703420136720466214873662546004415105717683857826447391179055486542070849978839003668845531269017152199794598939184283925904650140848799641841109931504275901968873936519606113422332924634114374101115491214258940424830828076946648721909463188147893797828276477124548124089866936867567781064742303162242309765953179060520411199600675181290759226934173646199163972787577121798507759795024957342345462320305085189360057138301857292921652406528139647558838638835760043336236857894092610925395201214909375017600524263255343443350363989517493652909384698188894504552217988805127848726973711265995809274777103371544146113623448284537119593264611873229481815037112576580690647196079872334825194651353248692636121047690478572012321418986586049174729833874971759838396229074511140197619765461282890947653723066850489347520580256064063239995643932475875622825583320082018293603050172042624874835459036015008137038186273233133345333039518355329511426156912622907230935356873322976844008471122771911008239048709809359985589191830153343753453973173070849402873130543630211725164442894480283233709774184593629829732367003533788578045701891956417126495031778939292735318923971047492449526846191674464784011698019039170651472621239881712606966153031049909046002143218290194699203872048564356666063549591287560285975831134618809677926132083936583150149732831832934555129548351613333570977257519356222699617159611778575191533644556055077575890638172089888483289747343559040866759392985642594265801823000073870536969034338775186987346610963059263738865009622818109018487108727809536484267508849868740469973431420566379230273048057096569483505186147452384351922533738286542178423796545448331373936565095187083352538055315043776137632933658149617509226204825070257689673563397538145040098376846720565039920115867325882801415555823209565723814055140351207320567693341146822533305260286521947201417885342601770336765604202147527603011292821636242549195416396614144080749428450478098934397358335504109952402256126677308119920492796869676365790844087209631569257807682784151162857219492733530983667726150346450650308862948275968394724714703185778601205041586069215497872820647220029517432839093039569230838819682711614590256599954640593070317971046002165152376976116887318496212519601282272984199375595035111713302716561948050072764765600456504734632298267881498280929973939091509791470185148251418154133891224856836817496355710735493670799364242125636796363959452597049333977140219666805595003420178461865184625170768598821492199408742778517266667970393413403287485485976204926934763553971871626342743783492532113084611811242861506089864373611334296822966019320920326450282679046027813518533305268367546030069594385460782498682698482642641750863634369768529758119556867040497370802320787924983977364459602192285080247080370721607579835338771006565112455382573271459005415055039582914650884885395170246055357708811010360855037543636123661551574645481749459784176300647616703143858827071363821708544783499461319054563719449338734390395900526698113739265862079065768740576616376642920474122808877223692002948075494506891289343845091491780884610965193568398332907545327160816836890408938392401179635446876755923344158892459200005367861236149536244379412112676954209467650925284674258984606386733769084743784690505221411245784679081878053557069557800559621847996620922476977982957006045532073683751199765962187972960214027275053313093387464921985622822466599973632845507718774624918912092762276499694666230832026688367663643815525447777368821293901757123022626812406823586410416777439707179932718894124744366701760960404067240506151257484951338918150093800241916809293354900099095999678316141738434681914418079680695223350647016781091617854560647340072408100074392911376370615241291094457894740118105779128369516143972232919348070666193890967501973761578474510327499555930169405519683798448276015142539803758522212397730417461545370544231871640791142135179699121978098604479161214173900244808025946116351241756264205815595249500017067074008678058101944211129501615425310706335348648539858602589974962809970121384576476518542355675003575433431821584196147268787438491872325517602077094048961424439014256352875513415942770232899057679835898194741139283260692361568455180865976477517430291353489074113898549691141339927512283362244259728970213125897353537310803518295963587402519460997740461024737562304992187137260798838405948350823555994642413836581547377622247020872979752030690068125355216094134975234655200595385226656144538061405221274923389239715565004854232836187646901351280763055117308133810310192537387523488278024606940336196639173436799808484259191267911947837255513354655761041894571993832582124222719178277405613681216903193489563937127597275242659724839983446367786946772969882801420162538839351576869528853938071415281534489332025132195239641724761217641167240755952864441421426254519943757396158873281296134601605459150546909265758911741650116227365807799926474218381865029347220216750478678972461886220125946203913102885508868504907705930396363066532491211333460594429106849422604364350739948222792279936499831275360573211775852563090145074761790313633276100783448327763583011297899052465937279322288443882442285930010454767010215368075820305112482065819576572350213375596817539621206607482708907251063421790329699189710271386996443733455717650215799450532809853121158147964374110536168874861641974874025519643151157241578821141119062704088616963998942481291128342392235434019274321194662125395202925046419990065700913372593511355098192973958832573518491032940298797159787579795211038023376058779408425982852223470226916765975518378454154830462573204549009429763734290838545652741125025801759819676361410059960344128327198454345240377186155374283512946152383692266355932734385397853706248199458542653263895833270983608320647737091108455800642998259368555752833600083611753189080154267979435858847409364404549801236602648712346234803918706833627752240374023769869994041845702150773300728076280339685793019453591944297416614613324718950861337935104496744674388149265270003082377414883030213030500450838468923989072050408634784485505094798694870490929881257572357652303086319841618233551321840702521779792178886109541444106715037591024699457295862132050852191580233081219558437530223620013161713215706081583391393884577897843966504947135731651168529650965841627293528983265329261436798926027240555890180442759068478149736386592196792585207399006813863754524377827859832823064290972155176727118596164440383445640368675313526916701776551816623755693608212880008249387597044485266647944482717577074077423978587314226318517508416197877719832207588184906707901929052698823675187115696620856198525833056992569350047645847455534215312655970536672437720940885543586615203095863518686562738728475400864791932506673664423631837333315959484549791447380937666325025106791231391399664986288277813331779570658371275679670910340873482496262626716463982092044779293350159525907343487477009006106569573017919248164952180225641341480109264591147229743054756318125055370456304539766033799176651305433862226110935850265159135189193739951007248792282240575106662820048571268816989591285241109681611789692315363520088605158687726374176377895843384905694949379993839187937491201670498658533519733780245574208628305466316996215805941269218931589150490535618346535185014507802356202655226505326611359088667077633712138622212671335622028922991009380918478537414845720025558226412097053398045041135084444477146166409012065781117804635602844132870747051097056439539358072506643420549031421775927988012517689313387091521297035220844972831751740771208289164916894087596948368018275654414915879766856327759286092942426114150107155643058897258895318148043714648474730964737992954236786665663215882118725219159643701598602518924120271077429666372076676918070857951641336632549555581754146199326943001056154314344485152226964090170252695307440963468125492172337034024235751576595275458062172549335934582361440825185128784510377181993499204083316062579904087980913934627724627500102147418461030708453895034988870512032414246924279132241934868113194584666785429278806677964609071952024542921455296250470615263167915908156924417165967648304289763354975500896346757567055407907710936940920692966195685569068225673037835730738818923187558806828753012469423880711239164591828849810219498630162725620481910086496844640292389126282495472877498318042593343789474101978873627072117245288407362599880579295501435179426201250076547861946812972898212510759082352687114395423593819881260230930311022508781890214809361442788536710911315049744673763531136541424329579717886646877318905554583379180141783988980213028636239653050318684793596060746563518531593471613733212456282153222002351240165389579076077050761482426264280471849832601575797642544927698361477158376828142323046418365096731148084798981640031214212492156869840682712938783497043444868760251511928561980048854728817211352228754312387199936975661809687449121767727880335974096907609205534527842515657115147255115685750873139075166624578807397220666110833661951964960583027398726751515991391607055162624321647811497575721922576697372804191684844515206630069933401019514995833999765822510192924746610413897069957992057620312483395899674972831233172672160230876651136079193012085197359374942164646824899314706367171233722680087693020911346880446853182198989011986139566267909679285480918543713523222385513878552895571419760323189279605420078781578147624398214490217386503765495293603317460304235172124470289779917935980295511783913038827080479582019543219897290062101842062327568601517979950555430143554676512564551860202318237585894197185181376323001354070041302160553410361860333687055053502078559671848433744987369177074996966143233519036562819107213661993425930756461154705171260466500469932431633962669745723627083960080510394809449181633201860430332903299716841084101697341597181674555137428694789294694140423739760387571284647380921260876695199719150536261075319884308584908535465023887215277855198283832777559586391724561113461757584951196256769113939610972163474976352455701803226593151576336831404739804728670799253543768918144764501616992291753381652673323016367448020319772593481922198718604765456505636515828429099471490816137613111746769767563415986114044980542680326951915008138791068802031256951160399985258754530914821304522525646191066586830994357436646353398686240670325883800135742557067766693740240040621621174891080060446620092239763699601077534283091343202743581016976223278600151694847794694088320482740770062097116503083134031587540433166068847114092095177423616236156619959047941923919014587034585598195466918264570920888820280247553815666932488733951472048368391041442395078129537730174741904613232901193428710124322838638998012902712024035503909991108620172817089747981715049996528597055259599384998880246106020233680468845994272384070557735532413049315308535083494126481320916071026066228958135620138288082484845792508061108403631230175442110082647964418551520123522698490221537400459065841001762102259894087629362763851200436681742878328423083691371410256468120943948627458905691836027252861248374636778779423835103759129991611082221910256936667086511943302681108734280091543554076330303224113312364864077960277943867078394355082691781730750328928626581196057153146402412902222279721172843842599593828003474905686804990996837159691172731324575895401563590114046240567646976511419349101227263007920508026010163825854705827616431231593086551019811311449384651137369631889859905547899007459579430465522675013944163165381478020689122879672931470057720996954709389981488505312124367229175993441387758970202562817349083387750415515290553647727682600330867642689920946519613733790026789290969457831397985769104344200172217003972100999173085697080873122327128000698097430699916177588660546154838824849195220291989824596046443638658912494718019771709316700592478568215842056137147589544846474302790230274909223264871796864516938077878787502654986083362836550891220428288204585658563352848277573703808709931620002580057944023829341927718993345696499543134501686498849513656632650219401462009675796151820663507409633132246363710251327971178038768141653596010208400993014899136685639254932965811967409072069911750569056619398599796254057641592300394189212602572085593219411737931938313059541896800776492399942851687072799798510915054533054882766877887379043657147680624288382876599286811448752547825232214804583032132229738389811173370418602843521431591332101109845420847565442296940776042083894826480380173183036314255739073149398773258146972035527603154534758704082873331898606593201223053011329242097650606424499426057224158090197317206603138503661492874573214697376077322803717666809167879606561007912312368915366831536224239415602428160981497986610056977400161755569158321383255910743134329086714023584914471977014521211647834721525856707826757525531090420306336371515926497546031815477377493942780488636064691682199579509212096663883078897652118000954273815951026170288235157608894312246603797250550080296739700001853007699791553609566943573286830352026542505334064796352178263064418836694004109134945909942761705072016143560669261936123403013903241196453778915662795847521663083219405426664564242663066233080868889243728478031154548995806939184316211065079397154438194021116127127682914137927424034806708750912782069350301699917944946313842552619114075123553066278088658415540306549283330703171829929354048145662410420582029428233485630071393498695597013997383123187041785288022205730950143786728990168890432741884607095058468301310913356159671323508462715543528980182787764681699519317351003713194320569591037233117289849806919570619877918116900279228638751077105692222453595648581156167849072678614449518233208387912118188835277406650393460256920729310240689815203887981381372610044058423109972470290624430203074100123094930233810021133833429500430647177314899360378822900863505072629525214638604605689723251615185685380029800559998199412719921849715187801586907818873268158212751925161227448783626280607362694771303699309487207075559573445732348713538509409274112896252987244556542013309112054341426719735808177621580722478500086677104666804118411940515252356196287016398374904348768186752396620272911486203323328179140676351936923649653888234280228867505145821318659744206681995651381560219018716727136928156583134147580838978065711459294837790467801719509445233427687489029134336524209598708919350917642241868291084362775706558903528389639767242246907748711932113889594718508699564651853377189078940960072612653770469649813865469095194138362349854604794401916429659179904717433810795321100164990460923672795357035835715490092445331216132811227224506360583637800194422310410139568530487212057461941242190979044784814105695750573062713392325455036409318306234191285084630755844561046008452468803005214266315298602269020358974520289274584066513069977917875310615609517249780910591934432997001183326141660497732051141190424306270551393687920942104710355980479778240315573063427692534848341481795329824886283053824401936477960178893537625346840487290603485957975832768722772064098788461929911291563307626406364136705921101776769188171850068519096177164143999194027412932537238736008763533847925069280977220377717974013285210994004500954718828722007471930646515353897756309254702294344720203435834783818619806109682839875133168642208540478069100688031273722223418170540245507977017097975411889881271667673925445424560605734893157666448134818949569071324909721399474978686484139192460602196111625836896804424128843171537105163054252147571012975705790123455015761070262999293269450616774466477063144789207193196350035916883583368972517008058675498024224662239625749912904040586504464740444160129113778229268349988717918300786043997448360460830275794789434255159474273498425010508685319833420851909999899484995677922389079880515024800539676379516400605509978408646816889602461479777177227378023451392797931204046342969025394626486565433702638949341159330498908885308922882645615772073412645893341382417943885884298355538535962046214115415725033643140961049771514935149851965060764221607797140463239854606005728498683219815407658446832468750012551079361918914570722217688915222869553584740652025496697964878049239286637203173224433002589642691751901352653995605978653697935605660337025036107133313901220419485989214671033025121548524474653182604972097778086029835429830203935169451513649361180572731314138721241011420300014722421695922359210849090825719818184621359826937436197531379356115083457128136958050619230369476371285898632127410078035801133921369779751214128865834098192555813814402202519426593366504826066368289546609411365521011237310607859338532734379123018908517387926983598375357481705148730371296781779500780836411937476608006760302777824934115764329607605286033413884982124827416484116834784993074762478332310643071995604141497512658345661475241283651031711411261233519175262341515746634353824351306779426377636433512846440689049178562973293633661777263581340666833921892345025107705891431953966139304619437929136198592179089094413127983759921192372052106082536793063708962096103202732046106704274044684391444981632351569388109828356429261163304265592727540035764188108786832958872478929597950322745669448281836747120574687205763564082532298808750839506973905471419675440094942176107448432494748844787144609063966757208058154806923699305455909763086530879672742687828498905018233646821056581857008171274498763274048031409811841682114295074885954450582340445709103344946849766454604854003785598385484462840872990800287823371830779734391291526599787345735887218846487803806140549450698212084218498562739489323258892220956622645865553180376474606931269586949762938257927072896601589532611373811097246093405814989241464900706660198247473450767839340109463326918554448577898486261231429575953572719084519119803370186344360266980692278417725928836238705564873189887832778884990053681942468059379574971305903239200718331371751740844577444715360787026829217115003796595865775561665027601750594300822882306306819910147907435200821451074281916242568210856098438695268199390696234284968557205537983843740770131984047122863753398516526978849418424365617210209940509850621569346932581657648326712121376291874054257662421815649779742760719464438341632914264950318629460395844049932055951081425561366934313928735802355867818354143787401817722671093413680551053297259674879489419065355049711443731845753808749172520558316293142205938976171469871939193827158821577721411164790152929824974779070330872242681792448897541134116993623966794674252163110060833197190350068883946204761082239907621230602592121908212787101908216571738072013829052041090430715289490485735909417894836080914260699544543353077026809065687187742475132051354728447838272020925694652857144788676975276751893526363110156961099670682065254471216062626468285037410698219777528069163873839985337599822842524961285087343068014827059529127230966114089996992924851147083264390046204291511280727818989645162461761532473409685962618564159654916016898135192419644620162842304442274168330878632622417618728610587508003539187447280235666051421634757718895887479693544651136264375196016435741716929044388915097175460615047671112103459886533208178396076100699159171762521658800224174134177660461194999233036745414830610534706392192778057768616095229987470912590942876587570774582750495490801650411994174958285230768370381373035090838563386738347092923542739865879719258011978413628819312355785225960900645732472508374253700173852572566992041327336146291411214542253360966661813913327938530664586973985078966227082351787947626046703488564512571552389118909744529448767822191466616452971055731081400688817174318838840158040511647707866287277454043775832189522673158734885749204424379897807008582753142807846613229753548330461497254637501986124631909035574052756012576163772770055700634871355643222677700456563482972923980939162143371314620925316641208306168080378821014823710570810524227973118699327973931710894895817970903860250931499173040699348530820723319227763937594848075820160555751896074666978195821496429353793828287997699894303921931769885610637050205120490901601896526414253133858503354615365129844614114301489275229959403375075050236587122706134817046828525374540530884059028722403633035475095711033044135146657578670798205650030205620807971102623219855955441523010538158225160857190509594233556928701285275278642839994064616734200466594998213169429434646014115413133095120329018527793107337092137973176831087498355995534724986979211632794554078721466091943226427580250300342339231482419600684297180015159069604122096209611649473935641296872108958042535668099498623416978172013027248383388555498968552662038468722739808247742116174636528885573965948826948602811732042101681452293973738925524299714132731621908791335217708464454900988828995927834862127835972714701747969405527202494907290089844229628962478694344169758169439115542797972406916450672081005935142146095772025088872476355036427750201174130038004876627254356567010101086554160490592257425357265227544897183714553504205399998168433151378015436967151627945620777244570221496021254769513573262810636705602856777519361001077547015368470495373048871173352053690671699742874524930919315713937529566154042963538994301318574171730557280671262149031708539522724877045582635856952021612972299372456098800289912103140506470743626680842352807541758621361728764335708387644920180478477200811760493252473350383953994559110069508322524793696383314103066808643009575766774336524525636815901540708142291745433168164478736895654518532131254688265900495612221386573432882751831780659975850072029830159577356881250945056058225054570272795281856583132639934811974831696985000088479451177146998145332979072066940079690154299971026617192153028238035566919082641595625686384476175208002275351660003207285228810122539791629549785154460889371419305305398317246119031492736541138644204724133427219164778177320741060099475082335660733477100010986856638384701003953240289591422140114351306820463484412420374189018438830375346371764777859250754293799894176358847278726128961668099821703306164083415946540105713954923644675227885453068333356047577359409647014118342706047884269540380925827257312670526467226791175406391726817098525263875436428631062471501534735495158597271526126495160040190558047731416535246413508744520694065932568953685819815933996419256077475608651584604820879492822731019949166955783512486185692115890079950077586093945346472107735312708720331357877668423262797181265192054853795914551584168039426689713404544395496922841072414307186535241775198621438728044185735297681601577325921516431242648568679369995401239465767182894402298136958600038006409868350591079891090916182013708420220194299376494243882452797272249606719876330058848463892023389310853647510787790641642674651846272414565644013370100689552833981552231014132517533175863255669797997276976486425208062469640662068817716860135812378619649439538089462073108353802865257164532877785678939861971177640792141487664148989302718475682745791589139913599151735528051150551403147981111505086191265896352479946860920596067406127759966575922821439161420077951231540207096733181661705752961620101706628786548406454457443306338799997731315901476687166771516869116025604236635368296402253559666220879222765775298065673032365333299768927673257783022675077518757661034616847110451935499900800499290758147503780290091832014644658458869618957368351538095239784413287564110344765896508309228239725350792909092245765960487540630063475743955347196150583310754071804969326991339370057135983536487887627366084654180259021377780430460488052372645902685283844571276985233873637277590893136013912036506165690663105448538422435394687540170361677776812182960850581365887649321521566889905876725888351030713196143732827475364855188946438169346431192652835583366950764909271891919246806385896541392288818743188263987417325149810494874379796025055946013857211404040537746720179006979205338437402674405268321554041502533054605591835190866154571779984407131574029690396387116032999370522082300653728828919081383107756828078968128657564478983952600806182374406667758375621873787599029113218968895475330095280442564181413749606002771471046430707752698598479972709548156707471504712512018044161503313133161042972574851885238050022222764924789595528018640329993551735535657831730941435384809840647264272729414736221317037523039267162265821228132394247083237460893725947798598565519042290263513889521891006625266999940159091774641230888461485907042180930358108024223270967694145669474934987831746589347435396457081949413205172254984865258432265390230787774170682397585313798196165382318177434284509869664689178255968769389179649637743346466326012130193162326488422212623115444040561262540760607704396747439229924407338670900834654357791663019388141994865412078736293846739361587391635378169146835364318973497859575563646254632323228839755796927130891396386900884232996605013580364975803111162297648093805516690021941809237641471837652961570767678981880544673992511541515602903043119052460992351744357481432771772372697843086760341472338503537571215698597532506033923434407227715949504679928623119876907118944337173509801268760308025010275455374063080403128732022604414906563377520237167667031501675066905444546415738929842171748469326428143272973302197317459388903017349639685078773467893316005236378654717488243859059635680580234060161276629529012335734724750553617014411870397920046351017540952366033109679659392629910669972123700877541262437243344746927757072308689729644749119687535765594111264833288688528803601244317442443370327499586457954501310119573038174277541603936822116103017014212358987468470582987746705595828305160437035538174727308259053488222677938666724903355061601448217965093084104431010988978812128546878135648592364777568337677370718734217615691608567308579018257847582748497908084163711879073630931207315996761104119916260665136836187488473274239605644033329202318941407868196865585186760602105253412750524896670429406516869582359307415373473554612794570080590018409462523298420778295150107314139360726483606301327167782475705454567415492342431264807451172508359297093283306266531750268331700053346810086931875097209038774834785340859089434021225533680526024639011802037255300848940702768958915800315391578189669132377404474501858378627082696727510821284329550710874960995466652012609057781817497087021469913773685251092030083962107532024074977191374830757956791917266541249042497498363004018198200028993958119365544916736168889547228081600833404801957378406887746028469256409349373509985249854092488106773784220106538647218837230213363637252375139066541378663771234214722812372547668225390403841812047451178608701312791061558130030978384211735089499615010423171056656614851732798680169967355261316708992502218992328876310237160873337737780081067878205548058880187659613641088418637849159915290672151251127302982345157061237391123764842557700497356237320095144352877544311672392168363991721227817915852406831135615578944704830494721190431189794440358860470081745863497645888685062064637975626395454347548827624668003293213345520031279323909407600314744342084318375115566516857602298140039656802099439986518315114476027803295478076664518575057949334554401155432291056587574550484079029160910741291753708502209973357517855064213687131020983447752317628707823861555943749631878854549971420269495128174247727655488922747472263842943393392794635541773864661380318431987480092814712950534957946364399228097110603421085198505188789076530768134711702677391352143540849866457927970350473833181515358159494437522120046774538923032944624883022737422554836097198685341318132566094786428899688773422916253320877515201548957576006164545344921454746148836997028739552460057943940522832959628578309104248519509319529122782675060300771357613701271817308010551195667925083167177134116080273157167224217794081184360502751228638487876280766098770978863061016244177558969298763433386161989874197155389053290138323501524547768630963908074220395701348208072144344576404560015619230585842497873256014520709549623106475454188996484341710744386482017880189548712204672365779331030248219218804009584655107689266476776974010190165488640990816171459311556460678989525252071817894227643977295647578953978468125186836341979667477808531818442485644179176522889378306427427483105572626059710441129882303794081606776897143156599484894608944633144105544243442853031648088127579471534275592586607417407059218768900961871137481515770608538290050398331378645922715353508893199846663610498185619035109110820058505786828973433025323155143070528372665801786331077768085845997548386402953565080441608437565637992850506054431351038730344193558868980216560136130366613609803164314584537000756885604110346968814080458711294612522184917848518196588469731684832479756993936991216345564934669151776513128243510768267712898147913411770500921639435194231694419035832889083715294079976781955514220678306052919354015687447914434301889751742489628108319708947213755072324827662925683166010283426189621415117047694359775492119133215243512896556766613043960052199192813761684136746873451705701897595408768494189744407174020944414441301733275987164024740044565988039185968884196735840834740635950681039656237971760441986914942912196946169361570523293804824395422221364139624383011016281957680579914958518303529356971612636393622823109045147523705100900929270906751105105756538044320090427118990297622750570016564227462065790171711833101531965072215290934368011571019078199363728638666641715499662684033398171319701266585440873647314792305413875692065046368543476358307842252899223316502911861143342675464564113916319875459204813022967053693335635542272055798212694866394670974124451235162448346245551522562805545531757809384705038504244810293296116835991177029332030204109147493100116420957563738127080124472554282560740871081539594932853171291144242947308155941641060989319779512670046679197829979396256663709340686351442261135389019239439159778563880216410992194574890330477566554411050657809087118313354955285810649539566029073861950962028477963343970384211344645048613809844218970948607510891820023427932693000301562445224542188027462769343651791996908516196841972127373259154751696649836693955038728274848386025176204649200983502506308020669616981694301408885910087144285934892087411261906622873785721723457825987979852571648891150701791397128143644495303426588500918528431769116905432455808270167096600060072863756258235271910290820853778743851401299910950130039122851802338605417109074627889353154282573543835691211410365425597029186356274707318840920432141011459423555328605358542138866964130628787187558195186557879861741720489652488870337043773230246805662426351179536695280912463793093985011183514479871540678690965804367369849099663496692194216562504922431051223248800883607228948904882571202402926566393794119977805259805045423280817954954570290655351335785524991692925154842446199092363922641121684307636079016572115070510958625544644944799626412565255420101948145353989033697395973199510661089015383183668707127065566257679050638100622783342277668998017401431233799791047185313975650629379809649017496075161849413460763150703332492736871767336073614158685310115516738299791800790748347558210185684579532774421090228048049621870960691448564475959421963384673057696632929440750049460401130884011007320328436307031005990015171242364539159438462316359085656890269238862763827314464002305524233609833223552170940312473501168431122455860195311342191515407535907078196660035200397060435001333724172739438014468994127944312743858818810697004167355268395302227420908338271303795621123892625894481017283686483225856918038297521981200855412884194065740613688417479330289420472970497284356327546355431886571739256852228878794030417715866099635311675879011390137837535678676080765451402169266993160603414955968693353571857358916271478292157094299220868105402574131325930405657590824999409732492377445755438080473889896825653780391105308410785031426099738418100787782370256674449242901415043828747046730505000979225550443205265198294170514248162955843823608229113238114975409124863509191773352386581269200666725947389112225446720498229664879189994057896207034351464473257551806960075667259237111304487991649793115475926605828119043399815949211116479078174067035388935368829894808980313659710944736720680503652614709333298614346781236720544753342573481723424264326614101184806659521840913299634208832335915949003711077674925513800933482485170724318036703471279750132219979857144808469526825290075315673270020395882221311939874460745912288258607259192202480904615441626694267658920901213544130901767611238741993974549080935435403701066297889409686763900456724763889288110075459306097342039351767934503252202834459682482289243003476407405278660168164793915760705492875459924984065580619804217598827447293309150041682321320272776793778962925720244221284739501664558883891607065441552078498310326110801459683231325741288100393673677027232967213057664852744967208618719308323926973290850382983125059162059530979958964137986515178649733001337007442498655666401142585791092889306047396019726482146943767043638088745048366959572750646376282538099911384977789365721265406329287973818894675193638654549332418614969809505445344961912248605118086806403057632866191993080164748218223959167729739941980035647723264366456378324213760898370789815272622064238866233175531363523639219125979269875859784392597143692770630317940987520776325520286459624084844159491455311886579372860471591123145187518393461206372244496957986030188208766954332904550879001279405629136037122958513705389796599251070821227611984576395523004734474245587003831352751465910125901452099785711389117763348084944164234289431902018894437272831622074235501736282171269883849049290492485922732488836111253718985689445197590509247583983318154057560987469924535198662045956673881643809245405900465575260150805535718131976871299599040887317330132400238382210240690901483275096057708137219988495597373812184320923372535313670279927195235177314023223893856585590371475850083851177667457267833316069994130619588630099810830434798667974829617306499889022517876639535051686258112067790018088796607110816559974346141839762957192900085524587805700086728321415704008517348634460022652305628541291890249129697644258734252765588836215645366220775043245533833353067784646591129851632795389193343834446622233210022987591502113928146327657056433891844835626457870079664876886713923194097201134882726275307318079445931394510692226663868737987315054167519845106744914654647394916316791916307958404002489720119147967254228383546045764561967238762602140463977843318994923350485066039803415741364470904727956289033314779452855835707907494949728436088770480229118538796700921344470046992504962244602559863398299365950266264799011071309767127009468054299630635175280657391521815834486734155370895750584434705339838629501331176764723619943837970275813937272829598539889164723409381201608882402566124455893195786893221948499487970318856855763513744595467634690051404628413339329684174508781031610218549382619285154711774379357660784964678735703536926578588374763799793474663876992528616853134416844809703827212730467468083498543087987891883292106443848764387997405185630702415193064430030251435308616209362135223020312686630356153292864683504568170369679376073483686839984953915284525889475292349809778387423184301092379824103365435155179013369111717094780015091926121726400066130131473165590658305740472680877011859519410918925780358715214896180050410464899526329418524967561420184682188138447105394724081825214170187698829047857699670088222611916024516068454604448810039012434373962997015935809935475619733468636770455644258029387497727597349334733108641896870748092204729018830034853773237283442566666116549536282511130606217949965407417067415201381350119333686509335483547077727550683816108090055721668950729396000345752287057293018861678823726053882067201187597956465329731966929221105301193329784424159131959678919534061502608019693229481479138896588363309731806368219083494262502165167133225169485987730539841404809571925042513436773165873432411833922484221807982917128616699834265031429956393434045848082101171075194804408578373732295685543928920644140902593652085662689950625509255539724337814696373609759345654494064972664590377189624743165945199996522138210476821820797712063279873060610062874034414922213204055910913157905420192033230491334223938020993958465403663580880344992156545541304166442551561011608884468887703655277669478322788736862585781219831148277701750341321616589627224853496632681405327480899793724665303705671699958442167464539680516068911449900080883145518367205715419319000963200143207250532281995996643467191250270467753265152839111040234895513431170689607842047352832293752750827600896548199812750143042697400423954655472205184055227013876807972315485515741065980056344267479099261348313231442621011794721006273746042863284533685663443889379044904515028344601558748103549380183633261349652614138079806915947156128798708633309177513917954500124772238763195554065450022013753240490908402241458594754283718276445528468489050609285952645600260779326234987930429794645655832014376374409997470751964335249551186614272947670164858699016596492499502897368194286241539334356919134047060082998430930033848916220364776323948326089641295023679923046585574957727078962067137515885272931466428466674582635763680839400333648153000518832492604897761863900451550055278331676595664104939321137726953762309090641656747425263842775624074793264665766614857668916440551276125639834977893320783503712926719380043202768688269578157785044612629494317099295338361705351889613814916692316304849696901094245473048210273368758625328971621285084151587483135128512591476389970286349638790676824181586807722799283972996963541261687461792914211214556595625413878530004204408757788342574373839609784045605628305057302480201189764594361119517135867808111518822131871120072917392891194175468456671392797140794814085149908587277730239839039372016456707563320204868038791901586384584773780255250275727226221477678497492888837235214095107240007631709819520964889694348117738998040495530783766669037073474491026250832562741484970476152524982548604847435681612615330049174359344550950508260624439261957007589986484887701465755014781946325860391424884390876604813140669913199088749290540862392542413857187570977070779413434229601688938700656818379741397971574913596786484385710952970378345709387691799446286466203395369491252727547737542883386138691813100723551884355003000729223524521030528491674725353220739912206556931041025382349986128412892284832526784441420262708016661551922469497581373714385301673000265492238195128847375307107058148028590398118591727776915171726120159567488585241841186949248899427197701758735908183581501847486010193735285164593866765534684134258936548708293933372832600056583653323901536619788753944371899618672040245548748027934416034071922433952630807028569842893052541329919592369182519830312657521928014287230116346275076997976451082463273034037592787660121566084224444477735743430509580600139247566711712740539371875319129104181471353890504755359614377607511626444462709989111667347891683027117828191082320232899130673030910323661428413787220979511620587373400680657239701089159694438311574216861773290378705689664748364619648748674890368166864059573549702223701846677783648529736511759010721634316122510697553353203855186815927496398101444405057434392424244213729843168686529156750794726722623092826081656362600317702565671451076469973865864080935484912598453865403350944246099670468216663943024147032130241237350231587128203115009661146653513318169740860203887834709069330052785365815320315279628251473509849016135577648743312774804774909140226440625402190995184075076122876016325419217972290196099577859743013100791262252311350482692099518951187716791796140778437220778356024593122724253687214104991216272993438027988742090181935931070906583078072217006675556982992858317498940473853212105175242812644223109097739619487696179417125623849586804126716891253029824010007316893497887444332245376862284104850339808672678362456026458053773435138565503725403124359735459216923414168964532530338340656859325461252440575705120796374750095900112610947386122255356266112497945377695594697937989738795262931576787499165933895920773348012005456123677336876707914535397503460752858827927052369822580536403248048707097129476354629255978487124230905727165618148666453333038681919777179278822459476448360977341835942377065024133117565449647765356311513757974805534677229531120430489114500806591082926941436279036807617438046344996487614749967627574384449171479245242102593024601847517884592258775487646502174801518196103373898856824728752874626349107242793496502303596553111177228524316458889379470956440589331676560091321856315668870886870931179058491161892876404986682128927224148316540015760452648269383188251745427651971817306910503616680780046870907080232106414140309733742181966330058255461441316598140009983623489398637720960206235556978813885931554461882150536810974787998815647003279935996931056124382203941604006247155470422743590076143982595247641990287616177684983000684290885826673517926402651962866443009626692227759786006583985546001515678317516424974375761912882837349164219316255829221131393439531290290176508376104417404188513675509153500817851260209162213878782991765452640144310295242002750011494672899111568325241613872173355845311678362687736596968925135842437489807235696972644726854199226420280221122522880535997929941825876333364774731362655704121041014618293904904479481467786073578442735490989617920950234735994300319386257074802635585961853270832898491485993172591619018379180095463474330225507596461629919019235462962062086216053722374406809514050842560730985126133340063396252733274849606091632382473208034589629844119742180391460027463845273123968896611994211961900198568421602250483156852189972332890562545324168384406630603320366820021544745685436664997260323810466980383341559938442189538322191891050543826795483275045057992857687757059449259729324257804323906960234071582587041218350465861345127408490684258430611641660992014112689778782745327686378262325308021409887158780369765219932262351646255342415824468304452491086051331062385085769108929476403937462365775104176054267836520351554744267302883132320346999076664255208040971520275570457093463058926447336391209609539344727289317756959412619865431818401770135668454512236945650512748048498476083134606517351859944458790026722581146066304939128612993550417295268811667011710995238028590793230921020674788925511025416599187414984039392577197785431823730501484613906803270943456381962904280217786364569989097921395380045969138304505004860747369588481704638433580321779136357007498562403312966588226809691246551309023871500040625658352897721683736278766602758157627234849834589344840577183585630915421335675591540588164513611568534987934842348866341024391599920288734912197475210658258806013606137583935231634038159717468748637090328254083108428816828858205764842056026342283804675129113914206645279757856229572868034789091744949285261917239464395642297226786949598264601853990127788339234788492814886099742367973018680358647339954150998069369969436282866858681390455178577169754186225198022716641528373370837804797142396196605385649031807095049331414220296196920782085173102887963051601973024726175869350337045719023440498051557708032495376706233732217629075394126105891538425888191374916374762176856049301168887389710645673866728152759511002235116489292861120857885605148910399248047494601968501993966581738168975634021309320495314206042861185203123549634529778205628932105445436830352896468586507977230339116713611337572942701847938739011671511465968324312344028975689937228839723651646775328937385203311840589997248557274567872282785864128548917308543561795754990716196256910522694891408600667559909067103311133920256883793403281076231604029215112254025622398599062391876711068028794158163617055750416859795693319250146024724671350055854136458035209195961062854490598863305694718555909165959114074254233788128399194890010750772617542879499164504458993851631429957973758436475363930858542006107415886733685138994077153981057568144224763460687296839123293148836193517166354328208560930401743504593514258836124126539434298137795352092556881587467773658310309178735601784957010699692128025171511070359181704514296847438247490570620228932280154868111540253989866022691498467695595486749595927894217155979923525242513635218775649768305113176131468990423522105321141042631275470078450744782572824575733831264271620793119245411456467080471798441872922229109239180986380127571268900806933462958543849013230608704835567204637759875546313358222531018109525708586672560157186577797067224324228937731505950463918579460388723273417462594776877061035051492568409557588977367260121275419458368168614310253715171157076192456160393195357922771614119494225728170242449416910562930390183180755434263794456465761453881262243595212457642376014230825480495907184388922520362606390858551991280116636599562992147332390234533807556695199377857539400517644370984651638238642680156604880417033637524431319580577922274021672205784455959694111504982317801626133550188362934042485146672251099975170217668389476388775396272003880342333527869661469339670797214345220259097441824346986211140659910261299564678258153570988468022821787503864680609098795820977096845920229782427307744729026512203294608793464322962004936765551306128014430881117629759046380772615329385025178623145664882002742859073780803904942515497658282760399570347712986697925214753728812493055217835841044568916114549822045424523416974889125178827081946656249090802981832354769515037642448573593064526895823623637442392833036677569774151020062249537161860334095122507008099908930085967263467385017080532070605269774151030806914349695964071822658306907079599441308839378146063504054201233027758920586766886790314327335290315043091366139140492132443303968125338422248201694418812056829742650692554847615610951789819181352866934119582751420582144879999659701108380944303351138324256080715778871391668179430472600326698958428478766524299526332797600261407904945692721638260508458121568006924277759876428200160509084736727273844215842641624223818563523149682090176745482861557062997056902871781815290172739443902178394063348095859764443762773292806737952316611915821144500154731629017526231511601757193390555109651422839308598379504096723699615093945820900927878554618405999425463488839251437386755389962201284065909086282605409648956877384274234587626568764879460873538542027398121827479482786430088863756308641696805558715416062719410374994886091088251913084547893246555866437618352566303302260918530824901370620807835061140100539533075876973628159306815159085449792374592899763991699466993049776365628569626608186954417633232100132055754274470979111916048795307143714404092917798709905921628292709663403268559801546314763445066473782526617529819637715677546002268848651391650620517913579335703465575983339484479258489178560717928887812073190980777441153597134637856654733799851342561256208343249206550840363810103293557437601152420248949654118245568283201417876324327536237403161809736452518648903834405033433603341469463277519971330309348060832497426896651968890263551862492195265592623276998629319907446253124717555953720876152548549893552669516153594141303713500933698144086513559974907360283177548345668573386250922555307814420440625201159404658812690020296986041799971966874528811821508703374258589773894711145629666479524646489469055959673850581556442237868309089894057000494365472638224017411692453766362698572288611057998326597065846408255504436496912823243641421618662691615456058564306714762638206728614628175333587749724323169172533484537471756711785851348981309605244362876566580879186575001447310317370670218895724301228167578687441091318469115747914191874016308624765172491462731070152344376580553707916768571406603062348419749663360399596133932300501480606431816936768354613593481669562663594554312459694438080962165785563851909580857534806556538324942783490741228240212440374094398335364987532881431731825254308622932783082395701515439133777743078103067459631014985935804182979183216397260787478191747600200600495102965015549850234890919980999184751565331082723547764630014668562160666370591280413491283642569775669840646696081554787453926981376217436108584905488364199623275462358166458425165171736780863501706237537057532230079791632195308542998124112133739991117650631842585752363463160381530478590518166784012422162855954626366123569966850305502467177502948211596118208624700050096363194560983024660981969150172402319973502392943699407388948222403208853239533445769781099425784891158878363769703221016427201027343882423223624999306742173914486387818694056917179950536091511741843511896517534588051584624397806727168707683027799633108359868591635037676405033754085971968811370117535133543310161396464337175555203322598768377252184649516379467653383649503674107046429266106005524838152329975666992132998069705273084024809396557963612583804957019327715020636902426884515470536551659176528290668653548507635064170703819444088531614363323772121350458963924099476059915207652324013070466709700028448764694319423301223141153117222735804239723669737104285390335375500070994813362535697839842942765478078602745605408192370837750283103193195433451952421243442505982553817441171862760577382389334338595861896802889254868882944175675083437918878525229329516204235517487970144311924824219699771135273695776703340928730942967068679243032036180229425536628988799585921765379639813015875544143414704828785898292627324716434899592260017209140731530272483908844195035834220391484951312460903375793716748900429980889912152441164880734293909235421785258605018764462214933665911887444031855815312987433456372755476810176131491214597231799022765478395789121847369044260882887873710927281670502798030520421247610742914372963549287903744828913013238787463616920447184718635837452938053269443602740200717190019354768182267183528336198308215928584606507821144793014285161628453674549304754998412021131115036820904744714207415661185355156080778676858529293561611343656800916418813601888453075022047357291898546039732187399550428880535204614879214868344266530240884829922821032984045360164268741829400189625920894999713149474508519810074012291022514100501956069841632494573586028675505854428472951087278149509600932378035808700055022753597165038354392571042118322037405990774950105326117924871179417924430509626878585423103019161518739575833967110706831591412355409705187586558476675681675475893281860828033372061928868201564975086643511736367247133856577775676782573956578797123248255960853604983807467679312234337673824580063605428147318008244709328239085634951919836533060776917301104333467875620908124120590449148084622019070562674700648829536360646125066737724159781655842588054844862399628394686980789685694118263774016661688906380957737875102319375043324719826448819564140696694051028950963220238117476333010102120918223789292854602928674577724774761816194642634277306786125781681369698434505156592252300021448349545209125548505938129123916241887495684761671610830320487222825015142794631641754167012433986846999213721310017772143205278252737677758920061172536321595921754580483911921546287644287082462005852985969089750317146120207400654791058192072111326556267344889073562816397023248094711285181393282140246754771101328021679267853890423131629608868107686545635883133649206870513215724553654356815637295222718393918991363808808082583720897540609250518850633182497532210950999361139892482683242276835082840407932047560432576298383974605313601109343123311218741803373335321763479614243832140122470398381448824497859246090990823349892334705780611961430346761756470660583054336504058952048290078742512825762818554075541280781893994242493881208855829577457656650264431928299753586733203707435919794227002547274549799098666449581485668402721829203784937768654822461413903739578841553716796480672554645531923874081174167538710818599813782437325985646463965297398761135753144969816385974945497647637684195304990360786049638993053595367846839085397524695275731688033597674068184924792583950359285927226203892356256649304264368083592487682820633763401126269045559338408925190238729664019781221076379955247369187507083526556393117742019372896241170565146876955839670946661662964616749231900687662651445731517581278780649525707295266855491762742568764247313652785461680730856943854523776318853839193551930413818583362173836667661885927700632705127288167658884125114036341088407699215991504348766832434935097913502569684675635822164045407591974901223223097493542380885879777700160814074574144109471514134315069238293044779727291619805048427722933499384538509795798237583404194746112375184775442634989098207462304739957650483627569142970539064332105317631458265877864481052767567616532631578547413591560600489718752291437250816983298019334974846811695895714538551690774856032479936069632489255508917135092624390948204090965401023731197805831501301381718559689500447556562150141601631863535978579843013664061014074431288540195132624680490419367773826183090977623740445617035021605283882510051544864744340153062909131660943142349670442934071810414160734128072333111622802485343459532663157897066573762562623865401105200770107047583148052746596071252722629136129480739931830582740051246413823188514780047337549744181333243314654247252468158895367829435446643472914614771695529984254199779487654693712305562549893371166525656620117816524984095826829257259779420896124057020643771098697308517327785438425707298502430448386784630012941833786499787267607116819279288605544005012742234851923043981564932509143700165925798178481765735337160222756459186947265437133774857385993542285567510396592090526753594058655376259778620566331799347450341001200514434643646881696494549156414058758971749502318119834268380997527965442751906334020847710412859303758213738383487442680317800286777307030414665096177956766367368866567378966300001691441177390420884888751925388223158610017213123434120898474521998778195833775852719421264443493845981267061307452901544674095161473603233893781146372043365932650731528998643027237604607501463938760055032599885736068279497145630325499710486407081800996314763734286521891400661494755377423284215191152463838221997220810107097430673906713464182611139100418674743683195332556033293338710745883169439330190552530832554482551552790786218178373550108459676963128917880134047947874941249562656163685913018633945259448287412991319091074725248000879698881955557468740010383770648902803081319142529195357655710121131990112692846056210459315598499105020775087315652177137518650958613023275316319419856161450404953770378902176368218928833109394538570032574149500673305793617931162201219385652105271201085071352010051367430965081023219297543801068841268083262491199572054679708968193114490458729615522824194093333621136203460438139285659114226539439431919852606881376995319642043703696479320483333784800911840444301839312435804868209455488104521334987587729624185143067851099359693648139153371295247962740461996546187740068106392393136606014727838815696023283294685232129391744196449768018172440314122316039896467109194132951081663522746386071380085865893747635163875311885995827345341244128574560336835900076141451537224398483696532851488409838651908372313350132704275871228570535954541083587956472565029397351109893913508017900174201186989503431923026869094707805447916908554249385504988219035672783548676086290757554947780647189009469019209282347188084310398156021047523636842718645834654639803672406741546350646653385322310576582976789868985745032140269950161809403151226097815200454145084075965877370439696385852167902498988343783166918605100534566510726288764120354928212707181698341477173616687678759329756331315287385968149212015042012274873283660010052744458034110649896377221570897824880913904276691378215307102131238990709790046614922498327109931848618868783053270326832330026190854780637522800524751882971871356553588316676390730943854512381057642886595733390785325270058148371572342700326223070608237198235854848965465325431118406744214325533249027731199188370631770782912181276476673234387074196392202245753053897933960392679202966461366631222635745805819858176956601779137725966752739945554021859004255508138308663991815686449184311368517051231075500750203790410674768593235822227806880041326631702201236958317699001318368627390665291063572586339830524458451503151292105143057755538415467155494671938174119996396101937592784956751571285792300098207060453569787375248585589991639307097375477649884977568657687861159737687756053127013446789749473799659956637473220900875286557943895320494270250354191836294205528615387439070392191736698197594872410409792152245878093998171065573210624310690504948435846449780505673391653807088931553069375395318469325693569483965439160012229660358644288833863095179682859696299834583854443726523867005950094227990398338087372052760504820871542982081543232942726075733020066356094182621896401117692617603495601815259861811036813491355528824199166222252525241458052989163414949793448745199178944709666896173071333792303039514933458623575716249683334330617389982934784869650872974525808812285196863036031977873201057709686677153262676912652767062615180669857340889020179707748401919597757182132553695712190466795993826416223190927407854736383415253160610939409773112815634879840588696225615742205725270462054549765813070793234929303401548162721329096494509342551865379796247568130908868179955230988534441076230820157672981103843012719732403503931968936765602040042230889481862911530004527709457069619843633595488897751027501318048137472388678795379264576768828707696787133229583691613031471987301216874650111777412726839790410099187370384148695233421685444003263288419627576485717949191873584309135753981289726932513790349745447837330334716346209232743439085817528278984411290840620639983686128364344160637358251110558661498095400630454485977369811319375939615686730110066712711171444258097277361019025286055742782796104266615710604062861266970315523011088722039486906895267024088593641247461589639009027430052910036183236869362569262848317617273676003743898071221730636924939783841088842652055205545684679049336050834704298128933856819616405456823113122029150385406634882252411533450020041096070236280653455523215770251405855677430874043171311088668746539839551179249937068598363190430528339964463699828233700156162040049225034091600301958974663930504315512726235386445125302618928065588831594190557354311253048479153659932451088967604846741898888872529042176223992060963102258817374208787761847987547489015953589677132836002077327983611765691527379309838682527635032688226493174055695179594872599574360832604275261744697330551674365662606458028873220266996926878800232595592329436363986208832935623238934878810239210408170656795977658278475361788338977294755834754811819427347498838615519617093594941925941908229714871483191235760048364754896083472413862336923214915805051632717592147834760074281929460632061205702561297127350484455875760409062199117518860205179169784603351662073481728988667319364845953461818747383667078847600203174350156928155831775305573356333124330898876431791396290461372375182576350445491087831076527251608001926842649486190919732130340460252264184440733789927719869782877949055218027968455131465875184161363744689364683751272580209179979890906688077683596900330549978722565525535188976001357816456660657158512305701683829649696251323063669751969841350189989131065387841293561459791894786228625016793675483551962065887598589017081676893414760840193723284469777199166404385319802983288076115563850313203911472096785904918197178224247363132100582800153678416951681214383186938523749010694606260266270253420001419333469094414026627073454421969236305421045101719089650713832478833541805212931727222604452896077764859697778695770126195403030015477421911583285122219868940794034992828106040297020777416787201646679124178625278032666941990614690754129723456304526331129793698185951496651184983085048760154350799777660190363191561839004442544650919681180244350512971713959828252126489984221178875969414313861064793373834943481649826194993797106589310044903937994217051300520709050784448572565988941076040517338964385455570606426787181508356763808519010241903866955990432422740401350562509481131612461549317565500923760847686793290439363497409576157642042154718157876309977524897073023874007771220475200230401448750621860840981731755095964008003667416427375399398522170249097199770992567502776389219129649787513473699657343699352222844734745458688636914081676284166760688343620032726101724686317612284426099674425701281685867287613095116281544487659172752340140693825284610103086292255394648019549829419448156749275606680771671858426377573960822005301616059304820130020127634256047927920825743124091884499754370300244920094737919481772208196718338357422240209044141556307898951728554981613336590080572973790122471480996024274497559439049601605304456900900780065986190218783237634996322205329462477614352377557930900895850841975071150377833274465053661863783140936639210617690231852051447371587508780829806467403034270577561400009732057752297078127606500258138071357469471036824565971623131065444795001240347404748428719247905635112586650489189473613932168145842912367410762572459853266682681041885272573356776817051236098203680435788174356212377568344488435957143302343057913662332386191878285533017227751147223445068010383541645520350089794223090837062434386190774618973920763231125586760415285432128271537330330130627686874057536504531733705269184047552842251769882214705663472024724595397089691571418138824771961391469438423023128096566202494738823720373775340781355054870989076832512800533859465338371342769675189152824762050593138629550531491197070775404447921579110791646668004203233004592080305864893787530010483437345617787724600162368411545872543363594443620797473415014457683476802500461817085942547475580568941515442094691820757387863325010085105510474028471975433614033730407505536521124352680621206190921285799496854375514762576023076732822803469547789423977325577282714934518579591538362634862535571304729996491738877176375842393930041902628905722649905437463066229512595499212940736095268223994596962395513723385812950046475203877574394796416168955311155018654062949592114304680664133509420355050120718892764972371968006069853615859309149883278563185486873202878931793599076533626814641696768315580829147730262373407571502134439017393414101878072131324140751949108006276751586616022110510367530750966730056555777297750848943772758760993252023741894961289013370754829904595156080345087927569610847948339215656857580349062324662728349165752915803449635943131938240916048711606156253269681677782157145071624464024405493797551945598058916289556628695494796292904667833163625880371422588813140272148721820375278138467079503646633196019285442189821609032820349345265801900066496542333619455040720778865193070406145818243421891280229734697095012621694835400451835686347053458531745719140304705146205516336732717689726710955866985275231986528644806831520945650873403242434647193475661886127969096409684656307330415590251200070187732426555290022091874720908068878802763253874777888592697391038718101885266232306993512471771363314771534119409761743232236382206304170374847349466286995789760950803827863652545531780209516266809382850465053723193559286195043516169358491505876158848484665498836522462122183373406739510189215825252003202580690022521616974475125535873370774352041050645806299083936966553287643624594246592442203766823954914922787283859368540519394673696944836886785800225631634960361540911193209970923395665509744804093626204570180780852735406826581293550151927496170790394676395260203609805299228890749715668063697873667136792532067652242973124581247106822818290104444190509655515266084412236104499561320182190485477294712039701726876385315840565608575695492096220359901007782384120489068775700201517308709096183748438448193908858586633964435086305939306352200445403727207908320925385072176747075743413123215511510372852658217133158978540592220697970065607384551204564939195069129609106509416854549966231795479525241063182426715108285044261372671849080622950649840234119839628976501715840895118532374782429294943045373074427947142248137902418561638028005415187427682005420120251524705639320699070076433641220659260735547915587733384739278252491528022925305613278191573319254685458493207293350151215288277396876635989952627925036007163148823818620686383939282681377726276079421013382068319873420808224340591136063739319809606596730900853131941944927741319389890418573022622591551318536512684506450293122499344705009364464132720495614236206134974045614727014739533883124156977721028435104923915014559061070089404882104133239003888595051580007524872195409949963895243394696981835659342152906339477665384340600247808111772808221213445952861109400447638357608268080546486818188494875169614601420723651058937341769049930496287313279507862636797326089285549110374939200743960086087794037610840903566912333322937394494471762146891552188110864463225379839195764667267705182688219519597779506640364861882103044075409967673439036007094418183252093409533266939018656706865765373476454587245059414125711251446948268304557413175392722979328083258555085021227170136811322182322024772592141574718999902003521474113957281053910855553484959966254797565645448945357553215470653453425513944664610599182293024563779969179869590230942734856562017804481752117169180074303380668453093977971198958030398214894008415086139996381351408635752533038894175236224681367990433166919498320697820142477822811292290678298289933820265559248967528474906762484788382932338045725034052757426949133220751321703176584069260567390202869045999368902735626972004997829651085871689872079661754176211871144382897036803993269521748333382768823644892148264736651549057973631973922692650269168403603706867712587131444486814617842021359898680384854211760020368174702831406148819424418582971635722374595560634073958389255672182148086034409084526697656656831888291988639643583911922463096974343056711256749552187227252647801178090893568308222552627751108246696064281764810344372453422577535778258123148169480694836962638429406809403705517433339756173983499377829630025308290277410067265552931475555527863655226935708659020482221278724298718833111507230850517807639765857459353958340131721944045659529318098163104807283329600193979151851835980852400874224747378520249270260684571035953883776593427688611184501380202695271283052047921367223182303747235847623345220548880937582793764307735844446273415806196768606742794022014657608347585233035952915037907693894903162610153986262952072127086458503748210495412702363614820731361775742911038235940119916081299676169217911929392797359941949088620722186122687241030690057856398799060776794189895373552053348768142998772840844455081152133961947949967989370233995464371365066770111504250315203083554281645102740433298875970040148542891570525775980048902591580749964084568373830259647039742107102644782318812435940335921664478322776510432011333408718587517360610292298672494254264358617851343149182475248830515542195244534250854854787606294367996206662201795060676810686953415410416458760581894059894114547304294282189103009299592576004808917251119049069739096035194650856282687197034915521769588775218473813175095922626536076987384783866319411669802193680995395559316674622378193174146471705566938134892625232905022899770731575673247455081337516034141748090114018683969999923338126877428538414674152504010350371135384178295455854208238320123433530939508377873169289895494464971156299838584527268233576287989788067962490207105698668484126398897328794522599585789418735085726008449361819273066646979513474765083783754207220825878366523832775145944701163182345072880973003470455744962149069469044056097437483987904791647589817562199139966273856584589661140924235364628153327359302742675623651387564464951903000707468017796134897146771873601776954016411856777100449752160245294562523563348317306956425619035901274989731067268417248627861201260070290867044601608730072421578622129610459832465957304539531583847128028402025964049871578575902969211062890179091779745808256365966541643971473154995919528412864352285950202396019701580992490497345482747735055227254978337705740282213177806925735760636284742467326734122856051927064856620484371378094807872727548984022981201593061810402678458271469749226822850928205211860015243892651447503630894459190676205209281966535930718787033603832435154264662754257738942858561827726414735982274438935299947144121424060867571579152424488379903070245854055956978677272264469479297808735810102328334191946644505611807935552117916734957953805836559495592303051102665989038466575497911190939692874771187332924669917414709581373721566556349125900957340062062817316399996028399815438010687045466190280130964056456660647815413962004483553517456455863832836597537836190988842598368427296095764999839203586057434279590610224597278196072560297815038278377193781237613629950337703193680418252914396470804542456929377111868565316290454448043442301196067338589874095682112659703752646681620732923858563085687728324287609068087390758800322610695071602190581252652550443068848313332054639458409518609521764454859420816410787038074649549548545544493674557477757101807821507865018014044010509336411668656212531051293282502821782948431974509903251879467455222990081620444140106209222544122650396484039843126724020459817050597159168321293387252013410242073662388621649564736941905742263538483310226113822673918392778388002401907029916144408538018782991158839590808995702470994949524915323030978485149484405300546536954263878795635234607051261597271805934446633177400675894808496993777605345592624121204745221167925007238072878265090423268197276738866120182005494075938102042053164980780866993775365002681846136553548340700093308188896036775794222375484334848818232838352822850524357960624729697298544703179050100403679605690642760806007074763240301501603844599913330226685554541657106065488635185056186501203076675350899722950518964889480042903113724701123437005009699538440973916874000768534542133400477156244174164392480860026643663452382471016311272171473423636856489388160940459468480125318110843478538389232030186539690464605986002703442080492035049682310253682560937986755326590384458419130564884934949607919594333759946651889074386407126082481117971612775309857451079529369533672041568183344955400900153816520440335954193942659449606463121771984504804232866318710692775430630998475497242194545652179715991190921792659536581560509522875193957793791757841325477337427587820457003360441233080926623226355593599741357106985114190519752102431757579184812261413746554373721683772075637764055614307405174934712696719665983268012966010683690332153801941812255628954824143632741593289678737519191515753124414185041270775987611254767910317564004225087127732187078908663201384895125563720354106968010687528232756577550144079217947941058123569579417579915549343382617516915134992687166730581672698611819257476241518593770541807991806879044739234248597227041268255997543306716538446241234386862715858752977155184909717749960126521565077085713726302146951743725026687751541444572262329750645931554478460608473091107975919643410554368973646846603752346133222991918381883182141491548402585671435464317700867355132391790103359270475014785736035950763234548024015331513957918609998331570699311688516570770618198548171743292099305796247251881774195061743845347522586867154397768358636687102927587076998297873551181819659951903004610811354214010150567072652126184308742301188789858576426308620925267606874924296190560640261419105093348598211531188322146278944755242856310665744941816832459751271066147977606164667333510940970382160214108997138982559627999907163180862899432293488145849428153766503744526292008787957591473767228431025903597677191704930256852150082290954455630487443359124031454509458879227137495340591288549382729027885884537893336274019008763966249459008285078710499880914385307048873015797095502826725131068927388913832584889302982079353101724804314824708280445903139431244860134761585123698644855822548807286819420929764321441072652286931995939533745346708464878837666568543908793574375939126593458172789107429106548714619629494482409911834571862674618248091177912821980535929848750187860436679200144741951782244802122612750850961417090543213631354507484306030502670171065219337643235088444593538645185997349230147332671294102548902263635844006780820391901969561342744447995621235937790104125540014826887375394492367534049787999378610286996699023676786110176401163719299602000165316456809414185344127726241997417870163343017631923301318415785447751402226915541994243445586340696489988047179079064584093791849699191547818058859143732383971665401498974163651470525236285725631429870589990387419722754106854466505696711838328901016144438026213178216071893804158134497935232608846265625172207488467425965961579743983258595029134812724154164396021692005100215489395134077875451662929275960005257519077732684433145935009741981092709665561895855929078693072107374604528997472879591562642455729843876005796083542588632312638974958864430543370555941060143354071037606497625734196766237084835467201864242616070721238890816861088594555965200534183403262268233354161911059496204757381101369819891512715950077962124777675971499186471531010764259025038723708528595786978793939739867076397213839338775522544987142531085307959525557093029835702875466173317348343719645633465682812324074916095643302193827309684215412319657135496593073693799654323252415347607953311030579777165350116792611412799268450591166189430969268251328378341537171412481158926287825143793212999327918008181311648576007443061958201655339222374437760358838264922399370680852476153661152201779923598361183686470039715440816180915767296133358223732184798609885879886406860053504440830932408818529856390814235857387870738727311706793649507213668224215494685679178091785304626081456424868565854625984495902351685016372761070307312793814097615994316184442467027665322597475509538550460014904699036170749401600600298305837992006967789590389515989054003401784877020834776563632799544376340770060730384511766259360936761155197442946365917689473503593495547322054965517663777640474147961924892952909792544268111056652297794349389210876117749915462868508563039501313168256880463566006911180544540017285943149872685119844546920200749815713122085695552830976699009252126146062111579003814969675847699840664274015883032860255000492181633584777201041855903374488645131885401034870014879804013186788649223594455172468420890066549180328511548658543390154612548078702297022534559190054509777948828911163898271407428176283109429803902152335937377390211637798161442101716748521297316496583650175230956761470191072521277283434998340613480022361376901507466126672622618880846747531934469516565383246000110941025869725153441495707714994884634992345987206103212828688893689706841027109388545507424053682456435617177550384373979264634796553726179805439085806944144445273459984335200808217904393047834618098656748005350176777321561382508208987349210785878189717000022749317033852206464366985885884033579675893118359380944159622733364611909721986843087509607681136904743293111364087306903858294104505268597506680684775120611510847066155521594461308891346385581096464863681308087394167006968809680452115016346987555337993968950297928651219856178161182980720995522032985720377159301820656429121512568358678841450994042994304166744772258358826163577468169080735102027441422033627066734751779085860331769380644501455326783005837454634146340754241315278904692410771070458010194669346869720687263085253727998660942609968609020082543402842897829834559108247766910609912058761298595537073676236526663834230245820090992216138419794386186444148726356027727487692136218540722564800282016393972326239215190640163958705130499381537127600997864849246396766214878502643394711492133840211328061598719323490797981636579853331204252448762470914909997071882311351622437873898427128504053005635437669370445329038490939778884792771754153508021255146332417545274838736947194758784864168694641542951918175200169187377136090934660717505360778090739095676959589695686578697921575670981733575039926019411224086110103103381920447873999595572288406707693106952066445431364728546330044091044111369886686536474759388062962521338208125547720180050495176043147042641579043225332845011399961649819520929425970551587523861671200757953163376567735261191571124716207692181165753683505444502554740156350221842650354713754267342809678152671247731373975857209597372710895610242530886129439258777103101210150394967946797343023030469755250999896319314039300906615477056510412796634788401418147407796041887918109210242477745574698792663058194135613346292037908227956678187423028051967743501195868569648668299050648633020262936146351178304615754575222507212440209729172307706528260442553057122802724831483011567666153886588999913639809472271520422640561873387438525992210611776382341773606492683568435154297931541398447713699612061976722356601267360052678750778310488740599218722380558701268681728729185302651292661112987947962113206772210513461292490931986912321849923211757674493807060961890543872964233314581153753927014500680640914288219696015054202688726673364116441950043099372467416092565840384040662041267828857508500588357207940880271545778787954493779754080010364487848447652615439005430561554050727539318125551867672234794278234789286713811809576277247576429834483730404376062729620099610625735444188375180811194757524995918930962805432619536803254707117983991393957263569775335606655718921324019512112201956667887819785741681611083513403969449932609202676499702712198232086348399771333384967996772087730943930293637757173057543706532657574615374419743864755056247307793747708503893515307352247933658190260366881060512493648036856810247376855585912770019744486714472520889151756916285494681093626091513069911997121145374659486984627666590621398449854394458504056374889654126308818366088203878356480026700461254304355945653446540122072091554541365718038129912336402277654863450159170597789482524526128315429106957015530076335440590363238570995809483725818605408212003796328836969801963816576747072663060666565409999264066940508883501723463548611703828720863923089612183756614171309619021299326954685873891707372076927897351665235839509746170373643752095209681618104377943977609398932177593475474803927399338119603432423603214333359052147882337476479126040726524358956812690812725861309485012526277369121394915097970597419577252186955803380207632844106151752427114270492977653527833565464528685875822462701976937764791584229053473722306434918611447653618870639638582743156429401116768481371987826511445396026689930964785488896318541596389067777376115733773969531457762414232089658200727874807344268058509845289095847365690347977997602262243499563606520781740444705998515323078496399193294334882499401272402656803284243387837542205600080150113610122628966925345114106781596014814698526469334551400196593948085017943131974640942092881153421458420611118405007358610382574611907137987422820037029712964147002830493269279600981521450403691719184749566243445442666907278026347678966609035325523805854477149160197475144906162172521547356117370571127378179022645055460484940412019072927557584639764132053712507699703441803002909829180345344546115889669638737906217731375618174119782055296938129121077058374524483165047950432574225751070775533720639001331872988776495664719251172095956024023637305865114781606429508699830588686084848362384863617982276978504966215971159548507870084016033737510568553327337702152863866729356478941827880856338107466039808848586716503046931388812995682660637558344749613331539886693812625698072413891021963466250803794157421964379455799398284027320310401438841655937643270779998249736172362265893971702386638175398650547149660014766963055950435210583222172267032201585108448332684009777527891959276703071035767793603394076031928682170785926425977421597427435011729339786057549541698636515863130437096537789963254942149083505100691587670736553155325804000988975914675868109858053711295306448930321859430000834996947040502170092419645078668024012491137447743781255839951602721385461398539377955372452279623714057404865201893710854623961065722372989691897306003248173385548497287503430029695206353965651875333437855415499438440146649540549027005518150988850826789243668141531311585719827772144224002492970967991888537067992593871761811108428556239279161561356245348572108977424389763929099682809413741728775413411969921969680552188898037332817710292710942466326342356630714520253347337688254947093224296049720040864097851142496054770127183576166761972385505139978038691933495357516857530620405210817360461376117234525494635898230833368651219702332071854335557952189641381498490696439093840012297375586309625103712928983509290922468549995396533853264031398779852385963972990609582422751860954175369296244355024100608478339033455402949389350578032030507104335368751819908193640802316263553856046664672476314392934385687706686960555083998300669485631645022660083596439821173470516257591987519549658352811378337282854094073771342192751869089003737052041504723011076526916005287942787192976846179139864416116765666302586408674656934715699782744738417401351090463433368380180116051027054998149194226065371664902713823005793908283728289871075728520925842669893215246571289811139009421349013237415783316411407402946257133699810370243213480697667156531636142015722879581684917187071283757893434664984418663033089714234044005970710631237546326272423537655055027892218829832753767149344652206877977051745662201980712251338413200827637964730651148659564714573163438225886367737324928269024596643294996945550357626734949190366715581063579700886071338664546242852955111561490499216099707147403072082481271572223553133625324129600067109814401815676678735402601243212798040482763160155664189836727752336065109479392547416077750579275710281133028355902979884577568831676977032013526609891296769593760119992115031158763052362937527939168863143803017956416245649261964960318036827965927790972257252519943729989961132661804042452781766346530600733160433744225276398482040193234284947242157735512827226238503558095686467505902968688293258018672888605992467318414074042842705143127176531219263174672041284987220756039147511354190981586020593383735621243216843088491065939063615714259980130182340874483570394047606135618486062373067804981998024253126810239008295705510622776795634814447372807012540986398204608080203274016537584023494401118952670956495724471247406475211864672631430232875349344268715243354281900221662539624946059213208641628154075780155818822101014544058726352342267542670736251863444749855756201679479396510830786683727416900546086627198187572821332269265089175239023270892887436121710334373553045608857560176062559951874065149889569987712798672498383277156167618446860439850856879403745532666304311708420761285675561888548760342227317321265920896977043766837963437282958141639474579586838782544491035616215802591994311314481767236481858224711558977616805345494472246910305963085011803830306211090163408274041457253150845255793345263494210441924069349266721047628696794947268333947575282037988461221205704088550972281404308545270204648701381696610439405775510963108836381018999527917851016914674598470673472774679559112842534890490672667817450494118090754156057242830510864108771397789106428740447480429363646944302006348544287465045809299589162588966058315746533826967957625156538262204854686976010022495784570305888157527543109896519437489947779937541463225025961422504798762811936948141063473226489040838389660021287276928389038200095700875962368937400995017341845114639954827379803776300830532457127219673879798861245230876199320614421299207111338176171132389281594472667884411575910928742371668546801465291279576193141074252352093175560832972759941179750709731593034967701484245399630167449590947851725786754410066775493554887309128556924295071217159543238662035206998452255157016258905015429138083745481531619339354559751952108604347543684583460341062746318393352361510431651674833535872531751045020943699053779077235762733742773312536009535567358587608061395773767793043655320191510544546623593947812172958739991745233794956764912800027986250572177731499990375373520556256516877550710848457834348017956847352679392338682413363030548553665871838917340827992375045974066103917458713320476064934081741307669277539557395054680396340808601659213679904556938859671125509343240325768442164934817281733274292777713332602731899032899399640972640564958455816168317489594840279088004135169810589015941725756713568114818715253965782107129540093028194449115392327419582836574390481767519739781711487281147809667226168672358971907464265724179404068437092033222474275787875457280401463940471442067281681174368531562805638853521643963437889944296212189799946719439440216997470217897131564065785154724744174923372359487776841164639075052486205627852569532348515548831432931562176758825354453883814966992046785051126605349477135304753618363776870958919279512260960547757530724878118788452830858356666221492622998386444028062675269169863423784270663226349129063361695370925244708999932915456092283111590121129548413901879936377217612818744976691494537953049201395510331367020832515798629471399597078716228035852476786039399352336054957659257142064017357286000949176773525894576242560528549822005536869792290702957770736123596407625114178394924421332466067745447865126135504135081052385877838306733439842621104689749315520042373721594497690804296418834859169620658771982263480942411501898986943372912796723186693719522777708098759764115089943263414078975041281197566716947169700684426198272944905618175796098407888694867092115212509221836124476942124406702284948583645990958001246606303731809123969184260952426569878406430105962139394096504224313063508502664724219417776665979292098292182789536283575650257319703665514456342978887302013559964954500547197769162386041172442520305349777872295809455361366956272556531906423791700749247482404876194981204563233854287544086420713898382131683220651466315118200249428734610080524161092173451557689857583777918805990018346454902626171601993249366007434862722449179095424894368068598140641204346881401034800051131770118518886080361363752446563556195710170134112393001416772699901946863676433694062388918740432693774122241398089416760888769142191742877829681268678698465446722759639889607491661879578458317878585106400129511658006144972706634909026350564586094431193416394240346237322773948153386151235402026790227072345660459992754493094896505199730206426106063976354211060255723470835758192646703256128494106835430850817329031253171125112880724196586286164337388148972357465847368157584543721468557534960113514642857192851546783767764450861593423559913124716331636015736179181645653517460810152847597403092589546927416594451073418154128523518449141115928627473680512069057182873225412279731319400449466026912016512209164771608642664751993141293846449432450659877211297807277527665817992708699876412646014842568535879407686376662081270016661077090430732747126041699918893430956639742443310060448783172297488578858213503900118820068000263155289904316386305031220246856253778757199430824871238262800016192645694297915775477328967136961297710460224518100127239763486294484063799179286091077216076133683645250387639322818089058086844506158606870231510451260270262308261963386003213563974542241686366734509267108960511943427001046242805345080088748389941541842235338188675593883126267433788788524546761709638868469152332872021674769063037597578667573524297914367020358963395776382147695743835231922290092255128950930705848059012139286812709383119458340759152432532622861243882229614954064747613435306363741607807286236703552873815359107076483961960227960533708175792877601908808249150395705850895618314702304713941793390497257091296348739393728035738760628160210569875414962126914136013032322518789013485469207477229426487096349756283426548744807607994112576563224526078684911547179742420365158190505865967464924089523236276363734549566585718276362385610441594101586113984374797029661098645576746705747512488691570678008655434454315873994984912954816982276805412795884796793577378175263713444794731302110896241601299372656532294552593762259893856549043139930243924462575515016668774560174906621340464604021063243785403256483132390961375857605891675644658942374569845012195504035741552415904399490494319542446837978847083388313216301211265040755795782122616350829760920004666725409062324768318413566941011844715379224232884053036258903894933518327140438726431853934696676327854088270765106535702488471862243910262604395965832018909422989581056519642915349751764153593775782933540470515698080547077724893834666484057700900625300111993414833924234940490094881923319738262682036205085365545699566388293226155332443934785732470748543710667090005177014378432619137936552070191534950762390072839600863862846238450020435955032863301059829739337646459982727875560671956297394637924548454773673815075060407521184035932220200309203453206684028822317872335474812901533312541569569430006300405003513262208201953769846268803721918579912952960995412940668588308861611238271847228716601201537857346325860714927877683410132559531460956309882069067587266518387218783718695454974572524780307765450048207640374536985879953071711026854818605728817850999412806237550869017178719787706726080022341042683310842833008751777038340799693430612684096144096223230073266941447946967673495696943287175429857586946901459165414799466455383659694180983681437489585179187227047922893900495701724307905498585917724391608840868947509161202566871306486039403656052088048797248901404535477718268311538907889801671409325666170551227845947515040984082658914806030628180086155361720890513988055645250952336494223530051641256293915376191469570909839495224581766056879128651147696291920770814797913988438411719364182575713069825573717835895240712915152349558726718410096401372193404125439214365112100223748219481267584903286197465633575870876326021414575183879349160494782700120120557960140696008679102449521812953092950385317645067141811398056066678891826303080598248322028869831985749188086658943609564431093957682337291536120151245594613443009768466014976603615967642616304289327613030310904293478768672651711538752745806520650915849823716513289923153322458584682300695494252867587072297900529852996049826268146078373401573933037263704196525043402450386646258258237179383351260803251497368269853776065882347623625335120267232638375835460103271863969663744592977293878133372026339931192915870449902891451323122810644778594333904490414423513474237326346287052499414522459759925309916124000174751446039400893983936510799358159051099897931826455074473286844374047667871499971710110810844758402998598501332522741161403370664276516914734878604505236514343786268158920643161284434581408004981310647154382618682208682957891658223277115063427538229218524082751834205984712117443948934536523084925510202202701533088291603215926692850228061596208278050505987494500706363045979714910863978799563133791020727587945140124420185997716593501347507276813412992339909232639781134433874422790965489672005486084781650767578027242005886576633617978169429232327714210001611623335066973544821578434643921592155830460245006585374188483750967585394039392681779733096094612067534959721906379243046524662731921111490836818687308598853435968460352174508123662338523400141626478979561672401896136462164146638875851340795920470655827473246505337371693126827690362758255313703640170188530126428138712769491274962441257476140922664064864362495117866835935536758871973219893432320442321822017340774639608217055401621473900328290933233536911525990090153948331311493837402581485371717088206041262739179017676116835098977719126975474728452603433002671591510017277260003102144900121358759228217603938499722217871564511877056091457008375475957541620187977936333362101398445752512485786507720170242711809404846220797402115399197838472951644042155699391377328416606010354722866006206040238116480922404744935799275928737378998363160953977779616541314584910055317975809510314667943225096313198231047145888111624272123614001521185598688505252590006955322625096464197130048292618598875089807294210819777640601833080081679809828745881931224758923584287480644895273362903303756100247264301650784214424392548125653698197414127969018512464103005637841551184669384386502959458747674742243788270702092157280193183635976360043609698404613077359540770178183529841993351911226176770337435533514647311872837227279950740136571731976868148566410160641400918848740031554017921104662671199714215172619529640106713919857545180569071259721950737539789673243747780029971696537037459272885102428460722769663662571041583507887777307202284302137143566538368355658704376597994100850138571846822545889476791316574442668634316074328224938914178852154074534234900211803076292965293047237966649943397389327968002285093013723941934685648052859636164023544026193952425539929238935296364287628543422401697067975643759381379480896757122627499259402029859618437621912346585265968408261416254992664889959687214123996805391017723868652282046715251282886269728910862477086023986197242115964659481501226954210286864341514152103040269140373343298262071606406883055252731168378141497060024150128922128487902018426714944579163477999783261491573013133707480421265583058672747667437861761436187997230280371091339416906144226540607227946861510661201221219148130757827078397827143773839784744176045488207540242119833067611433956997642572837212323042301141694652196782704304316896451052908524059900537481799873332331453810167738441997207160317068751222961304342655002416112185409854200703818499391306665791630719343908323014136576932417626537385483242308090107028911074003975307129371276737910303690401371305400638141907041098678502637464884275312549615928089174478647919105466930720908518475427700164234488189143688277558514132396439782947270575272493185284682595069754643443820400356351049454983784914274919718472163899155489267602222430795195581456870023141740525930171716803371706932845235461277299286635528644483814857019001271469595633442199643640350700211836452093916722858511928250310016055216267497715038005176651739833489763798161022677449347367695572721991305798581158008690903168525739966425977680517321321258154175336237080892006964624532848637580497938997879150707236992125227989736531587470754147165825876131163222253760878824927072616633494773592183190213137597140850960586699320718390841275332252664057696850179406907484881729916385208554072751567071136923024141575220519894685222640308785947468582095070818789362274704721987032092651136175880896218242681079046125142881148513797280298234178414466327952784685863207809514071711203973170305439394477360062395714442254297690039662920291012818144417739717241511500663787781822130234215027517426868339838907707205306495777832998913137000894533928353717824968371695893888976862015046970916405746203396965706793490666584725244318000988822585197860464263210345878573070370104738882114744387982238785028541495758617590828292988390330213918989082817053958199036024892848937163607020735744508239076930187000189087111284077648414958182561234769688899047066447364981900981770116631261975583266877378178391580375336978305794103897323498476371187246653846805035051740706182218457877647477683414271936162793555161626333109695643465134688769587509019973559339070772989618999284878549874817025976414450771515391890548311989627060423198117631526155614882173895830960254830568757069510446105166491919277687604255664195056540643534868925533168384921178174132346457374469792584878069327513792929011214355963952751413962477773587112876926996217499731409289096542042834875105881899489212884191706641190850105918775059285290820850518159324955453210661855267275263093246585194318156987487576892643804748231829034944697209858479124191135096280899342794473302340494831673106457708010165799617012285363679659009956241708210227202890009091839844192267187689190591925938819165544066197474048658439801658446289864755848575666502029678355968082287211466086559774446386645069427416939669666825475876053472380107961469894516299806018375704674911080723646606534703380636613678407219564302706592716125327294604804594744741982007916489032993882314467532116615577308929032528418198535735364767168608379709347055327846804132672232318614237527288743927675908014666738423780767044402946843338977170695810406552496504767375026622878876399350406189881100181411636941643776772709468680510907614613413922291648771371747033287290571625740747266050295377688218120638359949972415305754592659856571776396275766712079955243895261180419848458353849120293060776966413893207802838967335335474874367398098133303564674425547002830841181479560190214901808952158863004790188353690459829923182522819856162006509715869820922250716145585220249941584700625499327232094973559116719829232482268280202337678160620048905496158378611761127049408707559529160388030846543928599351336258118940780221430860002553652916981220314227698935113015689867408190088465853796649961302182867957102360412414393176145742472178922338576248227469907967277246830996042766251199442113409857165097117460138028039031633454391973896799595546979977317260256847210216914978283462261231577487998606323409161219574538260624525792777930528269439883587747826564897481686872339802203914917855904385802785845548575304873478751596103399053615688421137855982606576558862397564112637813269330484066395184948275538031906909401339578813751862720821721560156628202077929135712135875596157290362357008520056860234925848103185375056716159451584396785189419387411303040160519845515867715557151686598358862565380263451519950608576167631394410520439648919950944383483639545426477119131045762181803644157698893328848871584632726267710152088729272715980072667710379378211940035693032615044188653336181175695458585156474499930178594821179043332515690309438644062317293563216103544142724180358339926218782552061927305677385214496176232842401372309812609291099043065771772294965146967129870264761664775793907754286465389525016742561560644660790808036029854167909014197473913981560300784611879670383862845379966001270568686238387388317501763838056444503819197823743023301352945208488842989887739318331313037064974786111669637210013448173215416658740477361324203203320739433461286072622207446245331984612601283232326938581161836980758146230597634385653061672330200442061793849613352991007430364289231898142035939603217651514667079215195273643960704105292988096473438479565828528923770873039314033480212734231508080491147352907612433018461960737662656966445348903677109182756422912944444099046498766943831153113414086047021166548735414338397920422357558816759498124968484555489909950647265602348704559192571488662864891720149149325579981019180191738517926606755945647456452153087163337518997635414913050053856777163527132628631660979947978995386883982457044069554703065626415011693902695054100404753675972772255387058267234096978539713505387992397075222929880850271626482037584159007275501791325328015596329700736513810293730100546596080497420270113797891263075288648359403911310122780980359381482866655758523744718067998017060411964103536025290826528361644716746349668297499464662363096342592992205259281978050243815633218402449464443461119393261833076211326337851074439439163066350772885267387822070421496399042359577248290538779441128936872688525839739505421713929214497578371091379279374911721294986080602218613482876900879748230910650771903417391844299346100092487885300957214988072017565646408852207117604776313948915049510170328401488730217071411472577810913722798025200289410940247312904315619649749683521947057228952984537998749046058934296624129809700979100622635849989421612311919327696042692992915989237643069550524818843956095066529685301994271748378268110580498635387405258004570360617333108103128207837120760655732789646612131946676317721796515376807767702590828384986536324408340981569758929477626576886306940446062856080220069307106646075366163415968968562265027261977986173184026559688129972997375967336227081004151703061343175755714908228008463375575111947643159351125834802022768811654103601916350510905063212592430732361619875758373833366508598915089691795383431666845443825105866975925432403382198554832141343221224387340859868556273043098642693965965274052114859708795874838081028964596749538418879840570469039678534062697234744557617509578483438721061840392197867910909872610700546057251666572382008823933783442578837385587766199372019819605401881612519916861138812222914576415323323082314655225620959632529116140918387596500795102769964509336314819438949626558181912661786119994018488027825218246627994194827790105901872964781184595790053533556236630278680933356474893560756888526768293933871961665052174513097494519003581367857560314927503258685414046667964113311270234956094085549396341031782436911571961577258693902663733733880090555025435624281964697717749371123388390379980464058638163998170673291625467372794412659395325780877844712816742374495603493795585268036162879558695773625774529679788748579692421256886672783418722793504016677218556235951798311137053296745769363394270382321736975473023371706099756615739421162302072488178783400359146932784806184510478572515579747482190456027598974716975188366487571225108231814959740155640026154033300755112728105463673720037265429099599166457232769233062287101432032052183983968209228233112101730549965220467790905601673823165649470751986990101993366415275641177083714448938136937258283783867487877658391221742867685991525520759139802307199386024189198915384621442761228289924447820732142044707805337059651995769470053697067221269271212802695309088431224831992222225314448221730668347463910859682690227429035244459381144499724634910675028967366021203792419994967126041379195232120523579732277149298993741053892362025839523233825700651990497695674656881694787691463309846634711980911259217954934409399570654023718857127422070415567608266864972597261057137211551707546899527345825926207015143322116081257275478958942044212764991760383663910713792172254326611073371503102733063596295584918586837156882262624120776311610669110852476062510587337536647395854278090389526386335646093968807126735950549266620728579210145813763602378650947136134697710930193644270354475610166788812010823979204873984469103692822232487449432129066276908044054198863094861622793435254301625072546117829702586631907145916859495913126824051058431818752042931929767507909584702904019943570227112297416697491128701831118775536107029561269028687407103824014365238154945464269903283076427173977590968944520060159775313546488714760133295575543721905856673612963674292036413759320671760269978013182046368767430763361142006173465650912918111413104059078977786523465845604721969998807419355339696365791677698766363051585078590780414876655600829629568078271108478308943522898205745706188618716928183458790353069209451143075492239694310229341776919656747644682665508976629534325919947684235944964979528467881218431665380313688471868015845682975131538189417942747545892696605597857237404756847636060437795000827679771996287233819243207758221345378427206873004693376215617478913450509980497868790295115417920518049251918719850312994683008712079428572360331749458865054895235105498931594368196754660893602671812176648328451185873918135376764103888951264180030104629573745232053694468213505105621590732096388318835158933865697979711483278485479914367267713083861403168703683454232013993313004305803359986349098957820451995111047725092317841296028987597247755289008182115813926994620634869578989659648087004163668125871267487134505925233985609764314838498338078636835464245959511852796990955868777211426903585216547668823052540784307446240597744591934217084843733400565929406235019191232043913998677090207149437167970159161553536092877651869870647145572494836406606952650239030582292031272461065830974662114789714659282361070322005997039831175106310462989463194530846681631423733780079800067347014994105712713436612802543174240248432441795332884499647595340039188273997866611198152290963882136042829788642770703271480582820030965629467293770353836881906178208948915138916211632968729050544300852842066752937967950554932135615738166561734662627303918960876821366877545803559228301317419327509701492353324112603076438863173880841449609137809020144003640486709081579222822401290213480616302967129856403759031899922288739632362926492152940237989085804899614278611614732197232251931429773620273558047032883191995140071342106233431294085356597033052022581284991786894522665739141222677983170003027551701668882523329228933718372911526573646552971049174838079873035541289337184948506089024940473512592173929893771921143331700726510055638707614579841655385362728923381958218555286657562494050013582508344131523137732628845475586236358300946281643659024407085286294767283039017707470456762281054490195520079901431741741611644494686005422306863616277647461528674941177085483861410976470250766594515226626795543678078763623507804119315028740154305607217051790913729696289997785931072892135040689895837241895040563224134822289541320055294960471313829266450005253095538753161223107886326813972955872155804162563840492867695153291815400631928111251094231894811514025971905036987168381399036449787122222237682001269795433439187739781897273890226727585129750415306137394975824699368318309137695833039134559764839999373317746169033592010697302239506545371883718233036873851102567169678849200819674131507606954985396681329089773110979365278439648239794479801545124682975101554769968460358670695243282604766596330269183114412659394420320495901552137910273316370023057491618971182351691198041058877658460544312880923843257433794420662027502434352487889406619973374641413336752871846558145536878547792672729538993146685909452691920783845978848686333730071075345546971777899488588946521939945115371057893499521093879355560502728712017080945075244035459834599795288106508617962185489488924610963137333946443348011407882938392353999083759709630123593849041444399821109911345284267348135464881720247680968976487295713889672392797458852241474880969599707821098107813272855987630355043735832335483161148300895799205139936450774747554322729307262877990315451915463019123821844095923827918592708495155420873302864259712900540775970639789377314297276091934569925481920641540764893758821486160600107249789312639112629580310489897691614149122353308923231726253756449707023058823431948597077214832774967705014174950470261301870772898092421102183834302028927952256722513917941203985479841416332390648862466856619026809382684319204148878151349356455171290973474631703648738321862497779848492860498677218000567530364701347419316633841370037801426797926553176175344565487208182637980163183605963071639901822598980018380026455484687804227789725024463727416365645494608694485945855081520426819024835545334444436124535485680940392996173212068005661139549972549086185484132031389860570433124343298579210452991973270219432446842378231512676585451171216378371597920730161341710322701620282959580806105441140561558105434373012079592973156058430149782742394956215528026149193486897909655504991343299601359177258566504825042964722051438572829908910209766220790642735180835317977509015121583750912929113359103255795733306125143511630584813419527396715245468197523495684158011895699435179376284824418284497932442874656610679215950331670963485386575135964832050719502082931658263749441953329835661513513165587608046739269020002565583706275632464694148777424813576109867931385272742521510198963128355976471923852706229757159634893056435401977281664202279951532763035878966118862995488769718548712816495943173545914809506675987535905878795480757515731621626410309981938511748327383767844183916450582674763667403518221229381224089880907912286406475246066069518090619868450779634009641001799458631865473754764783975299791781623720819106097237415112411353109495621643465897229325297025663063589449073124587816480795648634396883739792782841212626446664316180636371158797926786796336887514289750115673671721681693831356149700804766672789569326970661399069576047095189951314306975399229020618223487314289066511025758922785329108380571301825761455159874801963044935847426760700267291441224143128997338028869837216115014631522405499431430505708498760123399181848056713799457346283750717528880841212550057353056893879647747556358173037854996166812148135510969390915760448768991602262741683246781633711254278293392419674016812713934566326403959809685212705218550819703510088050605777468482921420623792858543848119138432239700590466428832332739860734748307507991176196109930545726490003501286429996256165874479805533085944929942771738967819764995698663465897829272471977944327528598149137580209870195508315502853417053223048137036378201668459854169389558932744043764609484491364273769639537443833671450883053393264033651353742911189044007566295721536821885507329408587987258003926992813498785758182503159270165782787627160971320532640709326919590759431786794501555520562784230922244554240459285181167533794055503615015529821591005054611126465995034543646403420454674835287642516969034739322886786227242425941795777335350615781097630919859672858992475728072197135929500688025666926777188785217658519844560483802417007850483354039855486865211120546639504669975336771311279151064270037321304780559755925565715631732848912862116648848557649898308805467015279310165744899273512029800857084037014749257974197197092533645463919732757976911410708490913447816508164119662598210487745457682552300801735072804420635848979530859688705656058295907797942486562914287632923953481145799945678934513967539646080028186214509540974022418503960689834502577427619033160344573043528771085574058229327429225036808270713482250322711336293004191668575927819449651797224331073308546762140754038643798256625063774694865394655033374271300949020399891548035956311531151912853180480870036985508984842377175648247712696140750147964189756888074094507355636080517660572240746947421127018250550888158404395355133556133170791307004758767845684528782824256545469247772565374091623305186450317794413283213394604986226116637957526344008996082161201473913920223371383430157096667778323170144260566777156760837315481824367351026149772653709584009781412802732146288507438389106740293085526360802228224743188314167836843789811425503164728088824890008121305939437622250691569694102567929770716670044211430444154488029630379665118061023814711770427374196600991710752231705440460523154478390170197463226025378160794273768622648729278991675100557497236548190150886951234713662712929942317515390364575764195201267969707225748563588196311524388510950934623170431035191561705705946477177352258570260567570638317739261966508846109237646874190663984869772457253979089238283732288464187454298770394680329280796605738665817966818384049224344394412597955663544541065455957223193568698183014869937132997749877974297774816236893530313105990631885788970369968696235294673185643562773468750627075313397046683953504066787573976271063559282001777788102246029956888668028419869673359758444505964114428804855968533087863173328406204824900129805238020973122367315093422250495377789035319275663732068528974544208932291010639509424400405457365277650484078512624533817365550950219430451046901261102869460595380010080561914240521794589305747179702829205395783782573375709526843210740758974831557680886158713230376998026585585549753771366593806998560966759030971148505009958590064608574052073976216761019090843173697248247152376448919677791997058866727713378449522949864548592974594160917505346448184969213241130997690258435387428607926570288415624211036174422441811294502628338772597411881816972530076442039570655570411155640828977803553051923316374495378829478354290747372105040707878441467648533224970683633584290937417431281946443439084374208715280589800456105829857673964610749003067242748565728481592847905028090110491634096717937677027576659595395527771452860325292851656856801640157844369294745530674841118854030362605664050064179154512116414776440538627506778890903696298837408816095384711824564420761763125269596192701622891244566807065186329542817235836226788340347093153045317298377407064758094066616530854506340458826805112280890622753422323142448826808573196988617093315331796236921773116450033185942926645791712048539057396127298797267421083430593137853205048141961947804448836123120580740777475060657568823518356546106106416080153531509459382622768669249209222414111620504479021028654127244899008658361544839868118526011479037435462363309931287078422559848918227138355593157974164689163467020674622173839440461370090348743752133330377105307404234977945011983186419732333423003293963346923796411432620733564202955131038768871212074599794716130145939739019029572961581604272019069261243129425479273438737533883804195649178796900970303083202000573203500878057641890376246453675835747986509010613619802430214667568998585799817428794600505325923167421539791651215356430346770835418607989863810659181488300936442181903462857646555504349579453369894089032033429653076351594683609812973460938952702677592046690030808352530003731921177528013087501267079615282322646460563058903653222124034131102229011106976303374308674390298907301260796589933460242058177611189633972938217073987028127644455163761918580315451136438412809688428425747145828829284444342408233683510472514854278217499627088428278071149250378568985625763762589484508636545515782546714927981978576898010384727869557137137667113465881988540860792448956493180986767998121702647096818257650257894478077554033543185335251776978441325880344086963912070147991618754111732144312052530377000091187325487353724761754540023960201076787076306257516736160061960386195188288072047525860137626645201456270512305262756702009324725418382331273637543151534806135260020507913494654519491866372934756847762352153355753058242812189350424416442841058841559896302417974659885430490709093958816186839906757942327057177739305708203467094827805958982297875989598269672524554195976494287024884513455923020547083252453458648503231542558906567210621611939808222394087861258059111565681071057079727945086179193239211700142786886146854497609619134972158259587128957094127532169886073517081530404989020634472685814052591123955092455175282900800265729230257362743341555641104913153415926344271697488546485591804091858868919427015165250094718862402068868317474983906184712877521147925395402640190939267474579183898382469214573308081940269561630466298583900036218473598869163615088101860880528146591709150757278870721244974364374977793165659992710200501839928052227949655847298945866653699126102950676144428654864550141548603105558723353798291352536158558688015753045918314929393122824382054129859879380594058963597894001727202777647036087341208441724228503913665968653669089333710831999943171567299542089967469805815549887775923519314454295377712591348976794213298185131071864076290948693027256076352134444444482112494360086653353975945732223262135843089998188463440599378631244063617449608328274326866748709271270421426092411736672636716157050336421834425915318354109129927123023903804644614149650695330694976943193953161973784507119093531532865103873643779151581481340929023164693246705953636972031332892863552255717688971655733888722266215312789275082903842382824954651112447674114163350315669026378416356165534879281035343564867458886000249249894222169524346151707029769266876302759875445103255158244014641297486562458813219233228538383085805653765860527911483904833024539593359784921134485448477402474114877057859951131382969173111749374378707186601525009058345596387786430666353284476103113916388739563311331170363399523914558958287049932635488310784417704276396602801823045293432637003984720918672926245412522525784590159370178112974476238007664283081199565916918126108815679711706086867015703238544048406029003747260137393402507098954728513988367895281572077883740544699852914887198608678297836632972980602122170779790698825074306567830917500062507984680541087829414076510161766720856990027747617579897282496590408513051912513710124422614939994595519665754591599228083424957526507226399938204323422289576768820923890035668086695491842714136817391438865269703993938293609503479532855227214511248317000764997177670238795547242261168212849383631363189812812514422274022172591147315191948192638295527635301398504711235995226731308886851367199593451532853601250023415257898863561004372692296390401647853679652125716071151239851225013274968331349289669628289664038107427922347964066230590050667414158340844079668507068691654874673161823589768087590706704822555998107834389425902100869175464215544516551055798886600475445622307994064134092693074869613165872682716526893919203679202042260419768847364837456226427297397028083463092504550126915728325189138101118391052538880774314427557884951774326532332996322482769963840538280732349508259971330951723684820190080064072542431400970168312498206372104020566816340012731987967583510013471875488796689982632296877060865737397287937322302487809388576940042351122197386928053906942691435669337232546840156278094856745453278778569631436189992680746105420828847233133328190721420789497980865820266413617587029149595370861702556895860374961846243055514036450420581794139535045441194895296974427208379058580533202197259443480528290070460907579913655941471365423236464395933884974480983544677626443434794360193619703632663319872019824946469289335505272097002301975761112012994381058789694669875642244877355429096624842307824304777608178535784150140870728188563583359881285112524905901894935020081278889971202185489660534429113564313469453312874134567981430878676981467905210522487903182364042321333070745549795070924053531275254890058012566002328035089296595596620216513100796482265150703722391026811540774844037028077898991468277778587706737636996691741381377330245242144724503152825620563700180704732629871076073795115070919177583036921137025173843969811857714360225783506514690658253797439121779949457278828875556875910475818313381682877401091071810546203493648809261392256323777104385081425964777995131437436420028870286085178579563781527958478092549377512210891990913035305860386978467228440451876215463705169348499606240557593452538097109789413777802687622947295570637863327402472579692207960656158417503564345782704207139926665566227557005524868817487950751189070172683424519052039988137811281056995857194138932061337602176124353312733112281754745897281502968880553912362272567392391199731007957340925380398233161335079540516591428214029848349790037052450313541947492822663019852530478581175209935187872596148021779076958146763465780925010592286895914271326285833268626170733048063848971349392712124870555090725935196717756928722136566641479075319404839611207191438335636935429324568291902407322399013643423018719332062370000773142102386267428525774527868012043501303811804566605085654304172763463505930471203455192897498582368583944329815270484217579002028360769555328191068176451215110853825297443010211161331666288979931139936758651379594978998466542179859011413638644517858695195893884794131829617555129648687165998651253918843926921014156363825312104012956378365763647214737195910587063285402475091687861175113016186435106034251464410684146347069281060829324448677524012800686620509234215121086713169909071574362840336709732780943767873483115340169085375491479687184231496763002885663141140188992185426209064172403261542865195782174384579055607174583717510361628220285487509296012317184104852973137683410826299052379193856998075494456810651631595009847749769884595038090896438422009293379328346254340059719012059108518310490182207897065524717317912386922256909923073416157721527564540368913380567910711543666187077372980097006691469611988200392104896059329078614861109276007923455723966476356877619057463833622025220732925146885664853542847746923008228883424171479472579927379257355893825234073883861942230345761267947949006023943857995079595405883329276934455786487045076552978609708074324779036318384598042135003312540790718706091562574384782145465731337445368342036328702481627526920004928569483790274906973045130737354113796396724965949440895748414537031720798758718492317847249954713069721042803152920797304304415776974129471974712645766074487977823907191879808321042228125950259103831975577267753300878276946114992615168149568219924302637596797831410026802526805148360851559484098049371264337831975146777732458355508265609058016034550126659535607712276209768745621568286890846176869971358898732477604412969604306901221013791669863199884396823609439554502823092172400888523043215276856582010181437697359711014058358040452403528026773103647506690472923758837658140416633214595344302481704834760531569778983410834098039851379642748604126443963592098498827817943352023953397890076099208357354268261851339966306276853942927749744923446854682765050042112937427244687217537973456720504144900539109225822662821620421146191578632459492993973954158648651546445885570795281735005728383975995415643837763861887006585520257135616180733914397500454674542630076325791506467933213219627397782386952146139375203722630742908292622509748141231449751897150085538977031388487893423525306066433847175755126512106153215610548803335113016937152839090286446646650589245260490483315167454333259058673029265349872503926443454287441770058623453852194481263380096861416037824719417781474356872426305371471708909279744843575848244417020285183289134122835496567587229595947603887001037933839899222531828472499453004359533764903835038938106243253286062345568072777481374791985483698122638980823816799739091165385661861113153758678477905899993595634281153735353198995738626498276914077907796539295710010180886707296323621105159981191759242879035095342030488846824540268123989896349281297247979814212799654923377753043342548043989894085468339409658112827376291593266199506326085823679142297246140084472600764770752064460567547210219033065195209587907174104806221735143413128259913475476757653231915593241322142002628628787928894202049443502112902528159845703053385729616303942662043433375813054361521369048969968511423065732323124061625998987190870672592957827955745793810497251400544343618578251247465363304579683268485544639291419167079916155578094341883108736468859911468885497200662651351975674029628408601175706031284670905774186939291065520894382421334744721583985630993329871425681333085519095795362117634468807210680398950837312346504861202290237846396914489475233736348882212988271081117964051814210726629782174716920019538780952453774919168097827023575700760162542473875643484682727422551004267437796267636589946513797147042673417771260022807521513251291305687897977661630283772659645440496720438025821215428059356813884002969752636276601785708838477981173613625774831809958086232432112829381026392561830473838371655462071040296859818954698188251136212531935569053986169679758357035254950028638576770669913183867270004399558037206972204259237463677579133193257818316111485206530893848730105511585645436992610820657325671385152304024132450575802905865353176952239654344490909644246737802879776815655681831972627259052401650710761617396507461128506020873169750039195914492248578868612560894165013880571832949871829600935960400779015522720464129205262213420157423034377946482024284236438682895826397664299158543431304009828250728146458516939796125994837403644008462555838104999658968629072832343133743882868906249052618526816494267877126403169093210957729252032847647135343849213316231084282561705227877569745691608511547137778725230264282957859153746852777243296915929075184769749018948859541311500964084037803470997602340737983183334661758054780104875391870446948609660296290899765425061742576066676698329978293918181169402498610308313657606141581110928176639779586638157842959881981515214498456563959173533977536920587632850333194543457515268423483592476450891066701631485997630171254276797222888826421871282415328180582022047805228004118597125750659550410934875713247354246608209934118214769734439494399074880128974101964721491663094573852097957584575577013710347567582617249688963384907833090842650181973837053521658612067125197346199861049008859078310099435085620750018751640136635500872826540301790592114232815159810690816223584109914791754795009766917718460075911827557777412687633544552238923759034602008489347490391643322464171482364477013531924983178170959016088005239098550101859752047581511482520984215091774590598857391325460922834500687414853204878264169989800805061178763082837388381883670843125074474028821259692162462572385258354012022107677758209177590805849916252669310841494863329374108753869900063398282034183967632409749388825719759587422357899202635198283541453451585595648590673605169254704043174666236360261168642222624026672369989251160467815913506953468614252637888817005040124100699749545174668550675281419310202677252504733021040558892311963530995921371429401992822518540841484479750366497213691497067275441848284975038997118067787287902781906623231748589250653515562981990688738950218100405642413502512183482995240611678919907636352032058044612633478173570724666893039869948960603172194227422472115263965561603039780711468624288421476293033850622740210312899131750442504776861402907824418415857468428906575768474835513551148214379088827365029603735764885597607330111992117708894788527281722420626996084699441018553722622478425838892077893728941122097847831573230207020105396996929847321198053196914615592567099392652870363179421230497800337899684073517239163626125692593019274976537546634030156513079313886622500688322593661342620979855027770860935286064874568451892444479679685217420681995249106420064597502424582086216337475784316070092578389838562010378971813370854438095283750521806587790340971562946458559899430870702827659946225026112513377218691292777976426494745579979821532926205100217563069477263857977942279812489590827986310719243951816130889793264912234575804888381356959210327241816539862800643859675719521776754949769920874491305199540588060085752772545252471336366488662497673082547203818337042095814520744481597598244939788497719918459936785518144961637929902876545676264778660124817853830283953548374239850860801961292741156625712978275703959532397103702496366778360091625633028176388523525391686940108410047083478416612168070546187949400722490772828942255365384698447493908990900813831848639246704890794552407408849524943472715660099462636271491500966051855729405616479955728574154689091763292512629332348884039143082128615157095663195738406447757131193565471086049389174746945745259676771312213364194420192012715380661816591673316872086732004225717824748482379328345962173680661005974125143559515080395790485471981697070542733839800652610149195265249792758638324921044748231930122219889531376070738685499660754187387622937588330954959155180824914652769218282974121795798463813045002293895543854069827165080880237852241000359159008834766275854814245500084334788285525141738988120341715873425222992104199982027914684854442855508406430374969646211173812459834782859511415044267643966422957282710856176541953168674745358411042703673677419818337689284135058601006596159311268623892800394935710785747791593128731307526595208625705054805556522443396159604655573939520745222358439987686690520654441121226494917292726665482074047399830731952340855120955893469854373470609423411318657455051752768870764733385343986018166717980891920887085851100134877295589402257453228598378687382423648033993859446850574752586263875393942037684090636813624189998779512339376177434401297609047350644124293890765867445551348710928525242627064023682100941575371563062787657200876523692961712347660144148908859564679501705749488259893888610601503166276823582213463508843335028163621962919826133393170116728366345158875589130034195031830986336614555835764620400746944263585883050437620724066433080801876375156786282887902557855136564236886126288965564500077848282235487828816566169151688421684691746879963622508923106733507528016411553330319802266231389119540981910833609603344130093648957171338464617951198956793498547650660136038647064118989627809137030000868534247779201075289442539348796968916738443333116708606751219399784141604555109985404375095848585443897492049498639671193390600369271465217038125335386182153485950308416667217540236423297882139264496447295482310470208934398244692968651235139417203845113091481046174946196168239330919373612730195640166587222398599525220402713797159933840768451872620193691153990280828832557140409639779860296275247928522401245898007442860500377782104662591450732624544900201960195599471110541461883062373533349054525425058884049992308844636110181127556600728008579943639591121954370194282002236599677195735050294467174374332248666993587816986310524342866619028495641119435788610220190168677777785666978875882215593901831820566172713153948668766075323174600079772017123031023488642679258681020895841136426761475839361367089565362715618358415958864794008055651636448198411349975912587194543377343474783295767494024420877338846072449016272746465860488436200791643196043301292431716323407372019827472780481950753656196681425315520600028004903198831204863400247880746916219202250752442593465409836701211206223971171382350093473987402874566147261433885051419720390439143022382070723905954990226146198992100613585016032940409867314608815814267496997357041843554944080480432628562612122090342804676609422213158876167258569280630053898102507035974230687563767902864658200045178771687894038748210741390521646993860972709050250328385490813371489441893420232800014092608497366503170840661468533330696865691752242650531188769194521306175232236349429984249376459086485740773834253898374232792396165162963101666088754543020643817808563808973512512453327967342138616119917191040594487714388295556890702668892897194859789796992774568747625281357992752955961052880568980393792884720319045516679767176641506783257344745847614253467415418998716809871402349149054053087249757965124187145041380637124323970589490952540241606753280917205538870361772893145046274365662684703515340731854222260034624160716126870601746563134478378617992907994181555910494939831897710124337069989128742758234662216889612119938491768885970783338292753026560404749544059400469616943641034675842252114694811279932232962164646458727982640005644774093278320427096721186783482670645654656048120393564691440478198738171848331198389596475790038671357783990320846294522583257212331694922163129774948312385396576794975887167285118738267821315450677135936277242421179725303838624358265582656917639522621141577747768126600550825975326295088140976511610099133851426830544066007645666144477273433478913792890809047107720396900682829962267500594505217381375081934871734583763654266215774042819608513231937289626659027831609363420584986861315276049218471470808628028044412259992787393879396573002195104792259933241673127299497462677843722275484286220556858376191556906618801796221644431645655939324173452207922686482943776057656652925153362382354072302621444669521635842291151319726311113487656570138664212528963709512248295023995940811068646169295644136890430625828146252800096012304827144226998984176333693699439548985237529075918206103711978068970478682853386723985453132068059758225317439386460225815003963124124227972242793343205822987582693940399173148630059422369187252145503541994692236952502963095116404081138128486075283913178161569130647281812647791836418509621791846138790900617481795334142522395421982030668001302784418891890344568682931356655712761235237360223252147085416579020468752185693577668072665403411808506904056902130566248252139202281954785431814179343618233878907373826663179188787052993410539036642822669872462783244182813448921177045514834368290433734493238602559463311562280180273253887375802691149839461022309205349940026720311645057160868516479904191562626953965581856476074364502398294237289308900114010124347909352051988402297632452810119261926605631082647598385031765460789952345902301815213754569716797913346495782683642027602781514426838014564402985300521779868531281756852487202726519984208452431973442352143020501085793254947941259522618434963566683132344480328290649529478237455811466573736885441079581656729120970725324652821323174368148961230200327326277446942174374166450806433400243547905585181734946450578020262014051625046626686250959036467031495642702969113954715129911912804427681971731241491045021381344696764627393388115175152857332063250958840591714570393461377184090477379846410768840220960711870821936221141486286256350540660702782581773596924700240324577945407156255439208250988979814433669188380698185037260812324164843749066268888767153237394713363394394188817229049426996027711502121797998743965731009338480091024512215423829598037698443847825106551551459622411874392064981834637648774778026234617836759284178611471707008550535554828823243879501189389007313935063618357597936580334790872522156779653059363984688193389706897014605943884157845464356181090846547153048114050471030938816881456424309064219480520280081239412133376891015309860369876209924871436942901396796317642159653722533116610755229802358342563232724444358775359335981802439311275656215001625577158904145166255044660708661851700993856252453812917899848419558278793261936356715356849085294427307664660869924363449499705025097770797675188407872418285376376324479121946774374147388376616727500573781610615535728008643538707092207996014014407520359436242769828698604404496695279044239450725989753436501291287158669692201930447650611689920900200592092323853659223789400204541131313862715995584745729914605599371234946288919514871733045109344376916441866938662887998448868716972212345497634187960113289103835433832552714194402128600306357043916298507508377830785325460825755494330136937514032687032560680418204321988996541068699906157003612913699149715111870321591660940001540906859420522627326621927410885076972020575799511561573265379280720750031946045380194337454591508513651994902606148999818549253003159942630966692414314144721670375766308651637458612678335649884343860117858312068905875124643526982163761289000217426293389046246605511304481614527270359085933741451540622620965848359133165062073524002967963987087394218706287931657525443952149853505293723576195610952767179469015103762396766363774805083119087854342632999859906627614275299070481933365350283586040979202119168038122409161117760496675300198063941892943476472856688840718720921702720265613355393542418279178609189693003484175627464569181006789956807962878712861276808794972461349940099560384787716084032976416650854312015023820382233659410000683046510450382710444867930174704848970209866947758456932572262507076471107723464609942439055251923053156366922551105700942477339731576243098161160582224735874221173412569265653105540526386429858599427711800390180537547259191646706129517697233776409424709701622597368512718155044413690527652349317083150220371402119296354298584495322023680229587221890330174269107029436799815157418110704116600967119904443325934889690102269650652632093142746255916169238900993798743146007447200707987463890700042884022541205595388037847952700196467967152663147620852332005548193391795383412848836791368402597592519960695418718694571774690746457298561701937734671176938045135031335200463367365118064199991280253034050606957695919099315917407524610365033411353360429009348805470829163218453343870673044064206401567156417036539818745197302799624695150408696056743681294065781960199169404877915757214337866699211447134826082641210271282683291297940790400564798288360959334976916668062347648344482648462951993466753369535637840300822122510169235996626881190129400520966366065276202094829070236295345344096239394283230392683388801586042215613706094104936761712790390230773927451896644875944669455326492037225156394204548371818153668535171922876819140165286999100644947915971624166853197758830178384796839128026859408036086246400090026292172147505023898836393446109836849094788471086534407744936136286258612714588240113922895336232684574583237193484623545644249771557448112929632010369308875374960674752791800233991389564893030949928523921874649756092918354893224478826268637787894120093878759625067008747021714113406397159129648706785835114151333582698264112914198063246768884483785036055287516105313111824500275208066877015027817233600612748092560031409086936142322360832911627604277923466636772162169428555158856723385704782498477787823255182252125395514490822913078649921679935896013179243395125407772296592734346807743909136056014065238163164306979281711964089273860223862858191029514552192059380017409414311628173441576495565410640766307057384064216634801258219963269666622831505682797977197415582112635930998552613190572249375998886934405677507438704515584712671688165302122762442771542767304377320119660895308085709255727818970746153560606564691941550861005925184840319578405719060472136974465550282700414124581034276499024847277957083667416164508768341260551683210125864667583404545040277275015348439075460696802345531575358333459674055058839792315032870652628897410854634550567284008449240685023980437563290580027338660814136048237160083741869417925289305608797198982598826852575983183025345711419166389689582456782688865028757404086939555413291221816725029339592418559045122948036404030715243252613690379543525406072583793948101732065798769518276990600392542223522800849091229411870508425712440918673222390107382163262498879148042994394092086979188086181671034476430039997658207812054751789161846861048775268507954600559121305878571175464175545356043055855587891429825948804451235235404824914241937864891605055869118967091176699917002053278339568666911783703577119915699242265854804643429396203914867169493485785013905893825565059810339586567339089479576861025420074145987747071032716242623899447926521187505618885008809636981029649616791196881532955992093990558213768197157303852258546061452795431590899020717089086458205745938370078689640636416982095013813764753102174181038693513124483127964117065757413976525421842513097653791441294651380013881586853137719371468323995647706311058413684636138993261014220235852963404619536562099429467335120735588905881981860823714742873625373861355087109204174224625063341625644320783914459480484443954372210879111688956668396173133516576371071582112170570626099675848934249904311015409865001577468711698779007204660816517306196470459501684168483189598469626715230323844553632017551280978325765031600069793112417550466156488816307832369798792440761122074582935371097577227939558578358277413882449485440622193927744269379884454841314438308879687945212628413415406510864412621704489635355016123289711934807373514430778611198926192416161068879697014831975253146738048280948358974475408587898159206494791340444718799537073562644977527134008913147406853361664546731375618581649036827117074561852238123643698732330648400063274951593015643013155244081079772472364402575666475248004469766394961702536513244165275296553352912172131336448483102944289138854226547776271305900749787582110713736056650651907910495094321602683101509276455704801721144238970439542180857671649966395546971866613635639799083497758336261797738609485825057688690197493992660744990664027828395809150419254685669874555522942573321128946615616644942837307570514077634653998001688632371406653174621718286244961694337040690394652882329922789225286391776836434525996933960341633374499074370878514251746632285781276708826324568535801822786552566422139847294954970999622665536927548434506599168295988160485828456441672311891337161968365628802406302904295692862797443845403006622408336531287509157943163083090178662593333712205486320670975537951910430989533282480129421955610386490418218123706694209655267142626489223470377315111256460661420134704671995529153551812554416806931575997890786832700291169235616779813977139231747967299259139254622006987378443960432637093704829938241361958199249139390194191274196331435279253339689468522609836306280250918390850001453175219893098742471707236319232272578863843001161786726587290190670410624063901390217840902395281692574848361058171095161918045839297810332327619833851659028203480777674631025441364643061366273981821956550200832215664039562213176566949629553240597562834688245946689270478080205304659346086861802031257628742555676909075647567628076468186463448777815063557649273049760845496599739268022650808209706057714229729606707367033052624519787415542672525188563261609273258755752492943217200282155222561342982526790247689973852864324197324416528486213846513974250049999325885170932549252035420939058860674134825235317435602756217179594910555783534434467065267680002681381948206488309231635060738456722504312638224211971455096675686181923804462938887826917265686674483446427984957298806150869708639197462086179678643932344011597966383138010500274148130937616255662043692821596178874750422675999239205333845596526536054929138985875752305609037733939783861806728463767511317668430674084701675359779746766846833489844695278937447387990246665436687688502525559066287484989027461313872243750217147896092935652947158834790246806667092215355460171185849892220773452634709357648203264941130513859540770466408426751402852970882354377795101429864996340737622679352232301578958510979447003623258046422277358835480855213662605404705244093956455963789383572523110748208611004189750774007940574795657272142295118772027904041235369490973995041525297789824849563026351603525550675899697994587155418769815257172775445483141154059012750115926188714861327409520220151541736377285647624444851956608386420246298932298855079747843912825018291420045052429849011597855541913741607533446131290760858318362254262826791947666266475316146941622357656754103601329090862032875408645349569900105606384828046279358093026444786746482722441092881238732375476228051448913386097016975379400449034850763112614015371037093927379386715843818665507932292256907154217615667503255179102369781657394935692430975089093093017402700336695324330321763399860574267962712183691782269079048491231007637183967252942673977198718086340693466556153695638310199788980940657711432522146374489687746238623126382010071157339507647012024788398098163600087397365105572558005349804717380263608216579291288709055965975491610270259264892490884987071701179383201096228986069235854975924504233366206776657892673353888615375617697060655686583574880102986668516387255572866148148100061273480078295858848519179320910094138210449447252070454868455269959949225939496115086674724624493724390539121093852369285771797282780591250189631658027234270312128787398071170834565454922124193715925489802856372504043493359341521278008102020032978698639336786127505711241146483671185537358201457861436384329414491537970571397337004088241093947110470769616950489770460634348669774898007300917677534096763402625529836769427829230723947840786244971655309719371570873352904681251290008947921492338278886850634614729446578619701809880100515276280027985986821576745198506866418673555426084092634748462264437170920227761041401911509980402899229125675732904542511885048542583761214384588294126344304132744826778277894563029876664516760166500460869550058589634484912276950096506887129774777432861597389244675223440165979537089207602633548086593745415899346697731500672171133318446101177379709960162484313070250786156572284940184005295608980222560895053452643984227487144879179483625110506090567076457212487324557835232330022703048851144356991680046660395452444934670290007135547166143684738724408924946968021807241754599248041315212218973877480871906179547544298651331719827834527722626786363122110464046328998458869037269604589998975120002882710170998873679399804084728882095832307133893485119932176735617838206342734398316690063291865303420480239162064251324195525000930315197617546899995156164602326064276693632383443252647571841021320569324282231191369617315028378991280395882319288434707539465948504770413330867111679939936396077210162015860918322703653677718439578597521316666415751256356858390527468113252309655534289012414145404516656136430605501691187459597004000419889519906479059309806091868323563386070653900188549798939556938180451833376756366464185908221115374387867616977665769395713130530523502243819196241556230790269706765579861641498022410608395621183464448692721365149340522650408493182084293296291154331326447794573917221518414734246967311646522043025991822645550608044066103202049089819350233356101750945413970797992537715564615731613965907964944725863511321768071207222281880478211920885256441828035183008303616026939850368948109987525051508844005503395184097544872585577888548918069560551598867214973574847670408677795776614251770625779720884410396526501725592733715029028806110634832987855983894899957133773404313397943706973714572067442748473692745963911867081550588534497265600749737191354060137428534540061422783476502850753635731282783048091580471724169509237928372653713376059374841152838493068946017284878836896178941085135619472583635018988875032020368796155798956079058102646990853308917714957623151634962323965579488366709937583085565192510492495935481257947112457156833252350079076945156615664169631269253802645196969186839882250252977271694817420638444118728802148165604722469717715212881386277774430548687113100564460295098946480196347534249922491811401649051021703911195269882564478747116543130969750503398706785020778598185654592618961251289472182827621662107756811435436953402784154538778663268847331003401532677099752361923246847268689689459757590855013795134405310611138696028441970820241005335641416451046224795226761559905860326766883436611208523829965121627985660863633503760355945870384879738739171897147504053175949436667761120337645513161746484806283607656042572773381528442863189909334873923514567842805698180249908391688108305536839705737261190058878704848181707587732971062823298607331608800171701213891055348875157625604934619372827047784829200940335121680150989421145315309177345224744518045905474203329569477103923918002768476693959862945658564464471036293448743213946087098639782405787081175912675464842099813265163696715105524857536616901169171049537608895128841346608089623218284796854157685716094957590769012383429489111187482357214798732569960303101413532379780578155974896023951874305913531203003524403841389010291535144581876720160593088405088471911433092483348332969121220960816338717299771914332501956391053309183694406871343538318275892704587634053963383479780424253882942336133342672824763672780707554423111230848130025199905406966903209880994971269684561190354522052112021199653161077169870532708494666591273720568934755103693586726883739575487637104317737610345846183061956873818401527951364477703983985767276968689633311865019622456306743090771277569491701244993183455250161714066498939356386375128026307809127019421984930272531325761373426684391085693129497385831671416762777262531014002692985813267252494187361363549698418639699780646369440218533769208555546588507180975316523744150658042355465275367025374634046384340482548492679950820446010969059508576005300517076817537985060282297669678419520921803081863310273284417496159989124311236180783511952759486411173012225458281118837979162370918344270843524134846430911521712007439848725317014297808378105868707429636277870031426127027775924879238349926989274087467196220741428286366136596776836595694018994280703189355992846026211473135576915894712409866423917548396612237613242667791676311848812468712763642136913724858697261907387943217612737285824432936585198726737192610663362428995822381729981583621655367054600562111403668592375992526597815845366773851899754525476610871849498080595614276562755707817997401771021254228747775703624693814828623080143867444464030115887918937982753559511928710603636156424781194232571670801858371412840137088765255571092273662152589178425544949862185062395198115303700881779630492612513824139440375385138224158151134501418233651049986662453309440477951667261753879853888785273971758064211265271074411823750794835103994044956111510970309653615593751271315526182824188012518317629426762098105831430984879379704286913137794528734143428440378849478714100862889829295529996175187504024692506058317081343842641460113576562249134933695544190326470268614553269260132260923489797698535038098119311120297431463612870994341541667922341888564218725398701342881874576131690774231372625410709661117492266881923755831752965576378729678470934971065999399672912954108806656360073292614650247985044656681674455288680225453374388727731227087412787123112037310450249525429270224390256602258517122480636224904879065100855227707581102068057119136929179318406300728389836252813494791847705304471712925814654906197087953549448076153551688915708599950167428545278977138272384265774781082111170499294925214451536125260239847876053643123968062191144497241006993900994953195731711779323858752453458034696404473709705234029941006319674375702633188809363487527808963580823342307485743238067912817202605276467822703979901226481542766142040097440006496324701915381236833513647012442867883460127185373355796288768439101901042159338820723743874311519413479345840507517505516088297819397458194747533781264610120474649888222423349029623905439590371802177755253127683691219287415837365043651511816648231931722448117119933133020574831833330907978814576511569498079442232208511403635314751196942193423390268807300516231520258554092956246535306897886428144128757108939761888272246612704342162865909461607856960318742441293692787016060521885087383976352571478079143202899891186407630096079320770703817504028176326330999088260107126790295685244122618210828795123845639517111919530952866267608504932033712119616559284450451674358548888442342267168957506970400865322622673240391597917856674027407167843408273591827422873907456578998283027983132885126422963731874655607407838130004065934453869240191378312957171848251390581453335475194144900722912532402643391189935576377983939303176938550940665631349017256860720402304195477955424984529440018800140121834237666195680367436546801279997715999699817256902453261302982940087306046641591502658824638838623673063029021678776873702596432430858843884816447326469123411162732080081225413136573748492908476166585399408179983607778995134480164607542302410172464066864240377118435362146411176822114436741318998063042733989682609835227850255605310378366009052034984509203007740510745149730653060972905518136702422312285383111979625244783071769582000203352951520667205269832886434338483397566343367805602417713426470664058170270043288328705266149853883966124882885689006099590948521027968548778060275247662150601022297102172861357138587424870016663768253324320937093488841855134713759643889987210994878572246215971811983213990691084600342448377700284966185476600201035931652781539241915985118162597904608264334975774038921900967782891238575042553560256869074247535143540828452236515978633011151354801209218342284441928396740344318179786047114430418556425695269528905902737550047863823998903691371124706142318736843717690686859270241658956583991238297094302329841191081477702257715783895957918681144417293995181095009290902313927076533927369434008466962290963853482243576957870736258534708654088197626195426082121328964117308324384904704391663046265147823137312877693019284452464651088293955908268642792843100687381175749982390205753701476007102346993682309999697839662787548042298642596486517086394343965111242874968006282178029004399143135261094223418965711362250859102569561683395543404840521626070667874546660723299651857146092547430605891858684295116293242082976713871038341624465843156855905588677851032135030830244118817107260208674026580993176388907922294927538348719169949374491514633851704723597394105582275031992012638011104000068649360116612624696417321878787908955483884676773904054882803884390152034921752246141237086389126981969203856058196215503220568941947393378166469587650550107325508531134212240140526401355878678190878162207631591497981228873258055275373814427793403019526792668524609761820133908525483607200777989234236748221564648307608501077750990497851170715597798218863771553301113767386422857145695419930756202421424645873253083500573296520553490829411604821345840203654314523218425731998128135512878066783613156704408004234694537685602296587382535424453292723132684459598902694448520235314643962482964787668131970333719106502379555494298764186374250358802388896518324239010995943221572027397389367197834566182060401949645866073920075278858561114146028403220975490425913431116219353130778221998429978779812695882652184652659736466105294654970927791878730313424782969433895342943684562053389792967414031398751600578267546275793033381485092362283215606641421423574358129278322808056696206637820694899583883178920546494065448263232829221765514479807422300080169338949941384452122969155449092812834533542911969136022901925032912199960152409640644027886162094549074222214985159217583174733829737894817416415260564639458636280776184616133558235812032145129437189091685497709259362239123208222876234193868393678927189265712493986025427799847229117733172109797812768112956401952925987571665771425954885779783524709121595346622019725576518356546293521854852669325452281549449990246316389624136997483888676754451891309357268611284152743376220456403272110889451104191304823953210653899524947302697077318137933359178549350151288857935850597651547262615702343987004986478619905071243945961876014732745303633072377770035832666688508551119216820960440992579764118677502802017605288022955329151871512301306599378588320026738880235781338585024918065740162438459420902573046981930042691457404671602157958809456110777040691410496523821399146646937060313607470000826395981455031614892109909809378416537627690560212636197663446752895946582944069816429360079509928559090206018591357726897875480831455752708403265786135892184254768696666769007086644049718105606374714989582252615207663857649622420222209368679445426706491434985214284995980789389369178811802574728877994874870512310045240583159026795062007106730823190831758776636457298562387234346733767044024665574652454195417869252666229221098686462372849251367792892179634898534782315413307951434664678950026572477285429116938418700165899651899636594653155859128509754853962044323602870327295681430547723240781599524879797728972017522832017077267823025870959542522441640353775942185303579095623470019693478910622201418738094231804409015657689615577235711058287598086942664581056613220371412861197854372232891307902792554064277902107798612130518442472734574414107848674651095325803191138994323779071520757769532822545647945569026715941318047290139935851561692027969269043713900750059898730702696023277362893556434980228430860283850484573486033136415611557514349774563743608560454657974899493405388905871511315783095580293277449051008225507541201794801597497336445506473890602920000416584864815096069893189318758710337816908560016760550121442256908264036535334867308384811670887722852888045310393175977545576521674411147490576559068997610327048356295756489444977545005569913903049670523315508038032615825314171266881838948375470065973065963220773242202630192236745020523393529351748521475429421409855252147939203499880215476451572910997989375684061162397822079479101867995712028774686923451267305274507795108800269434994272781686078963637424544320002000268114090661845075078935949658527507355139261357989102535915689901980632874763460658345194628885015220691793148236952336047281791469804870259721207202227373401032665920375433939365326063833822922345464809493554288541757127678609808389478423226341631644994914823448017120852579357428359168668803843043469917591065975201372598661607106666130430715236061807051684012922778800521554361924814956690098653121843802641653281119364934973995093176613686464138469951811813732653833821115624936426196313720125433220437704376830207575998250131622431531313802125403774138193398474760482866444938364629145449731249276834534657862233160454991049591254504912365072193922519228108160445090811757945884894625702116120277063381674511477471630706610437122189996538732507707178872629129878386724460566767319674715620766018345685994567267781671388746017465542196320518784181730647662475249088837186880374138550048903181937671073364756236873242585271573365763523425424024004204908970100046770818541381653899369669943888805121361462326189846987209738010464507524332428564731995200899285909690337654940331168832837766919768753088760736155718953710468219706888390993695977924102409837368174031171719424384794075145735171854173473346989596545907708727748817416842218169656857797843393729134406554729155503608751500829229832729790328347603450847779210721147272439675182372153594263220256928100139747678100003938317449709507243390538750068831414193086774050070176542162024426233960608032174392617011877975388257140784335326020284558424769680946655667786661774360188534203722050480093582250497794541118182819218125777051996091983548393063273406923936522474588559163863067701681036908398298582000495897534371639677961917800018663813166058543986589196682665365903488842847851627682959446698449189192672925136895325550194357869709128391653935014595019341960813027952970395732863931829258031871667325313177238925660148395789909222836665296918529766806419599443233437784081815654761820513925390296595379850923772534025513236906338372997883978911815638911129494760039540352852640053282015905103805165359703741350046839278090294033242799204484011910499053983636718362273197118161089293916250739186444359313886179530165380182299128819811367869012378712427691447683761155894167829129200798613081320312290313042773682893321750228746033606294368629317475252442221602643851940174529522910683246762872042177337414818474459889343702997790611798602059694924107779395322774862083858185141056952530814522166048030364425476863763385296852232690307056786907902292168667432330755109867213404398467922347605981323149411830293837677984099402177786620863560280413767251244202276473276127595335475781388960413628977117995466052560722476499186036408713439010714548153105009914253621308844254212601316025499332731393535508682897126008008073620052845394581837608142163933237129163080339191212626740714655231157307097015273659242337011058133988426216240700430673334272236520190053026937608987450726428666846765683661667135640937775431806990060733553727076381991030940962769377235860900719266704907253583050462799784158602770930513151484341741553783169243258083757065911504759224519218426954394795941839356748021893310863987070708882538710376268104011476826654242836892269790689986595729453714254931450090855973052526548732955375686482746712341755138425264531696056317109753668192348784792520407239611039509522447784256034455979481903549781866721851998935483754099503974762628310295327536283824571040224241793971614363143012596224589157614171307690323478015085807470984099247530568675393874615635139161331972895436668330295490875279963504619773743798027139882902093132086806266216083408679686478685515263779254918954953849788874328427019945909634717082415571073283235532939237634034147636586983542921536720071419565671580139158034929332269519766497203498458158086191946061892800492013194982161150507701031923388132538118231079794162542566028406129111354806335488480785575372476689406613933632117527102491142337003554572221850927855983779126826132203019938732529158843308436603929259423969459696783814374338635657254517064186462224791210398606588187430709983768452843304695644481963626368456461387065077344013752538917645320482930802139948568605727317415599579465059546242931960283847822259479773649140453873388530257768255127179996456321207995076408841162740587791087496208799047111300748620594195109262033512998027147217202250569591554519320127400510100018457939783595996341388668692807233038846253665402955643876064375719103837285934774463961027929852434232346511106722925161198328468767463820130588076787021804535959709648895229180997973611754805827074866765033704698929761157535050780722270800881289863849028375584017295912052270879056245078401646476718192068238434756480865191102688534643053785490744848078273831463183683205284561120971934214817120244141694180643325985559659449758445555885266869276004703388615408292373487085631117186989645281654016053315803506897985327710563066658866827173719017590130863653610479962096143182381730085742725932562534514455163909970470795410326752952246093481796344637241076557757791571567873503696837010662153147484144188258052201547122519025113210180197034596632666217102923344786686230444062187268628087916911339778773256476111740332875635609699759169821864519991264692018282916273475458546410894681116448691116973883946663746253609988583725182681691720640128380173006328002408334128596655478470883255284451334928402149023795719113706890220775861526637696833445592580705187933059426922384836302397897096460454276044725662297877640326141538659252200793096730273420649420175372715790190711781937821162681770423225128615896825683843280489204332718014845042816642466031880054285336165377907503448541410844940878042419981227813215104728906745120529524636420123820893908828474418932079433182691592813267690176843497338675406884148227891764661883040401312700948003950342726508554568953807366700513612777601124159531413025375314473618267146120735666342160281515592641650007954937213329655090149315197737438229511644231981370749928368566362518945027952829124152177251993713772311398048340976404449361532082420094245052153530778094710425288076492101850061701987794502234810473587084260639243322218633004201890185245229222846169714392123020420291461995629852072528430161750806139192606022050407771293901429608359735259688488567737059341676855813418319048221726651976024594734905085336040146395070872161276193162486357994805608619679843588179409137090930303147183055372811069157173020711312219547330259321676887740599447468107244645119513336197577112399172087828094194499119841486963916281424325718284613326960953363786080483049898373111939860943376919870608002627825920078169408915643230891803435105280585672878238822498877442981842595224433090102932972059499997458548960334181885346627302454079631114491338861947552635627131290533938587293566522357706035743362225075651972854253529618062634094290950602933700103391937719020143229220713709066009660071372432855131904879633978354305239144332906741247368123617290791531975578604493744598761695832706602135403328572156912300920902755495340208773286406297209658732066914236720260737561079668415037028753796421729835348453811646106353556608191225497432866687487051280284698427081750468801087540916539001448238408774799684066952954858231578101187469693428212599062004136599660258908370863203464328864802238441090674080151282121441655171002283916707925399276026783031875937815930696482812970065975512445499209089839849644720104975523025028842352523324197296923322167588406917471460182218126009142618278041954032915004497226183970717879524043774215106867998227646191845693155253738347776971501950091650663813643866912064448616084055830453566061853957317378401227552255428391881292377990236484088961778436573246940494935985472926561819157279269466398783008542926527097684789782063954204801898617095317524730863257660632532714695193482166212129204814025657703362783580307401930486371660095700732098315100897829934005017707404227112569569474975637625815056691525533966418431536131402421706425069254973348789770438959701105933104079355366664040480129783531979088682811602724737296596073090536884475875496317002727988461813745766507839700728891007211599001151111396965326165696094769161654012414012560589925978536171397745716065814374603240624873061670639097722720983348341734092492689863876452629712157514176999724590045853908174974474382717842913278957991171146792045839315832903024019265554073705296058614164018170417168000341074160417568708338118152178275021858514076141125321428285175976621069994529810308983074843680815678998143806161153200629178949682332720478315360451711055138949540203833641471337252463927938136754394178192742656303741048554937927239364264981351263488052327188652590867623471141532393124348311812970646647763500177281334155024261361291737247047969813838985251417525510863338498929227564700853736686310650154006480973393788143689123301967117953598333434192600597287173291365396424888949604835949480747249812682710289797573461214238987552408005125084293853062211550760073215758975750141608539403381128630680588689381718073206658630038914047425754023272942601488032613324118665657158433051967133178393801525307339946894937842977828286806319144899568070401112780579205118585426393699460942364018403072488586079084164180014744433896978769652369660416408708859912126661520406777976638504417994827392552592348528146816521098901688975905124601595305135359046425652384654419830274878472850495256362269139326487623058289837259366713737923041504948660187796729603272206614092497420634802664420703445470432452914529644950772001074685534243059702833504099365873195367023842040823706178648181593872968464950017473386172460172551065595042838223992060012827383358134710686982337506406081189518396030541858373874517525046652222127680876837196332761680950508822108878632013353383177162333981401816768233285358853728580302758407027063686450486160877501467596859243453239220622077283845682995600611772256206945301534974214299719313821358196141628293238223203979229683441871418683336898035400182369424021245782931648866872501687604823715630965721533262437833369815080919422052520611322420106997121046547863245052160830420933731120115618557296903504663504632349609278594999484596251483351815140278451044227760648862705530662218493603527686602153923056580122249094113112569694543599099177366034035144198884705909637018995032973001346420925066677322787422931072194204581737866494912623223260884990557145676820961006645156654932009522392888228394356393712829241312914639842843275116251044145426640662520190497495514014157017954018007583492403912473149708215601211565104367821216208772519297335028930703302283556917112208817757920591815563752365136319121119036486465310818166769915688719927495982739082950332254647613678113060387071287706372464654787985026933396623632104680982516182292640496184626705412387232400593425947941681938247957503173456255708327748027664968745295196328965446111052589114404005194834985747656011714357384479050592824739600035163671900729797013086946343825991780514007595257393207592695737645004769111202651667196044890637044136056367376868634302967146287779067049799188550001312963910316894974901026058788243820341891334808064923228262827238190349001195435102927174053909749076347926111589424658737868241560621725644825784653900377925390435122462590673333925744415601873161506950753301314462930056636994178953683815913808689647122806589020207293026243211058007188577685191013251500452682004882519385993747189011315237068802627076586886735382450963839080537345584507290913286553117133712903548228986079765066885829441465821178586264015149692553696455640371035397827558691159217143552839751971135611864759779249840503431065040226599007864249170482170472775135116113255952641789545038159356033104412633545482883233675210734241060546685717668339319523860904066745350540355893346727685474079053402800559720442324498679422456012334993607860394941023954982525912355192795419749874052127214186139417091800451082763340793003859489730852850700406869097500973221633318625152976240471321181362835811835127612736739728086782596793418644363130097583577215851667257997219071842118928217356427848830008015274860089140964427785474289176766309327089474962952722209388857260350913090316758598025795492482078816614900116841304280768352105516500565417911225315909879658712648597189868972725341296084308919859084051202279472972762745058030403592757269795768115273815592269327922677710067714608904738698778282824683125484059974364057799464102176011861660147479185080983965393524747148160917954662721558340302209940881920910067141659103970203317553479021082193060240279600087802724779985031614217324919672246425950744415977603738965619493157122087562129019525554163090687684009975864437108901415344822039011939971019470563160393814665559445153795948800251411985356632867692009649931541027854475817717091555800723618829896576461097000906279511402521338288834556811359755354936979996759497629986099638569509356661922104671593519315773679749868433296834102804914334091985482354872664258922529822278329742655604080665823522628408223120982016851560920284560227675662441480276916381466124984214475005334235440760798809923631272337938596748354719806279856445434965880639096834941664393734341831862907800199621535879935610960575467813211286834895154450648039225771272984884942546099043015894589086316529909082160813086050150352255977085416058978983636920739026690974839619875210345499378266740356926740982874094912724472955812781316475689180905831841996702280592541308180190514577332291152672575806664829794836008584936456047845779678255420068061470751837191902485417955124325638352029153165313422542989303748393259019479163572057766968994313395843494861809554458754283896544755171106336883418085377960893461917289032553664621874071672738656473832947393461376355581572408417896103717495355875680523246019438951248062161175541428487716726138035891829985277299781302747035460985095213944764886043669900822083853099750681816649024835318473907970278074889874973006712701008494144143139855266474315387388654688258058714336663292146071790440471359636184587719183866895337245108271949598957338770902405773519717839503053991463569180585264590229744074685322189939481338305855906675676898708407337771743078469142413957209520920360832054203531346441836971001356714370241357874815220538904198764873750643551697817904392953461803444053408834511417895859452751150474348582387479957676622788374869780842933631742236300105992624876438502197424054243805205960529694927937398011159354645893153231541168203998977222770035285270853047239558213377466751789816275917945001646023805053519606562942784019300741165210635720567884836044707871692443313019144972554241997235055551293594784400930126562831347128099939154226349433677337948541011204203760310008490810206426550724500850428240097276096308921169705785272786761834459646688324170541746434852398468975059425752372106937846630492073393253013688537712491440974126262385168658502487206955496533425958012644823829374997509669609779831187546750695903765602916912727932858043170559834647089587727428639487918393260870823163742367527992765479998875531915326720159347945939898455471396772320129894189868585024240670850638887890635577179203535645147529470411534990312605699302327981885996678328680256727975805533116200597900819624647070073131184140255363297569473921892294508484870692607849470243987503460677137441572935894415805352944061833967264200869265902632942566117532187804363266442187787260484501282146056430782464026281291790032348338079111790878702453614651463851232643924601064783600006662172247384093908144668517914325814544636644329017989372089630628924521348195115619868065694422105999859893859555951118742734206143773005687895070418867639973461549738557418633651152536736560624015585833414425773464420808533055239346152714785205923439542922502993038969378086944209892449996378704602337029320488917799781278064588370448551111906050591008223685582817814894463973056661698647364115149921800614721590696515895293038586026622098646471969002506539938872233935627731702156524467126039199518109236293067001565535716391195871874833937950487636991721649593238189496230264626836490326544115765017650388967307013643183212553135422275857539279041442801006363444650215063116276865419240344416499602335950997177235625907862614529636005867954805760481827097137132597946439265453446562580232740729326654302276011831330397595994298492351785541650531096337058125844538304559649978613231357795809818573374623387094327104041823726327447732214385284926750181677808979149880350978730774646752388923361336074187323298427280358466392712456374001756017840000181040083313415614446713421696795993162094446826582308822727989219760743813164914063364170738604828751081257416124422281762384058957623568705403460810183773971778389267880026077075588394193336820835788740830069047505733686389600279507570214926101575970234990504927839315633754396438904398780801850263883668527165958095375910497300563529257181083608494398520738173599122222290438001825328001753243597383844323643636504566993951955629409461932868576351165919782261364397311325069577952420523246188508880087668255251822414104617183438234525568757433900196086235568578287347015706544120924418457379454451885643632569131574205016559540031174101898658044556452457471116160239096861270392311941219989412040409991811385110064958814125675615094258308040679270510970434758029177260048563806251675629848649684392095407821972576713293398140081001465833375145189946707356350038709434933266213426098325016359140173229281386163699552865756788696286604724464007452908855866850753849350274919224559520680972229611487170973063664738218611321323225526733082526243937551218769557669017034021427605460962985692081930981207280179629733410191440293322906667486930396746342694041557072084969313774101646665915233200586450939911768501132340939255630885533981928920319686024215196538349936650859056718264484628691283946052266306179172602270104847763016239097678730327040468525092586703850565589767173434335274960259416504789165898430949823543118777122647927937222035471204079054222425625811068068805247351897823736749790642701671516344357195873665124467620474683364090615310068274339699174484342743815093553436590584396985524561013661554893236177661183219321037068689014121636776286036246220193280058364158259898496813119114916224032107866793664334040320644337463751853742804727917443492826333797729203435882479037341375301638603123505371509165680950472145086722833653152390826111795692833290404427482519030563458309519330514907187481078940937796978992684373584621989310813078322985422806978233064591194805393529021844457521253580429670478373579180885625334967813042778991553632897159797447101980804166360901547213330407168424030367315271618560780020022448501754851641627222893301100602672910006062417586184191750987895856118474737995758092472290128595495649097480692156427833776473603955601353921159585410169734501361576459518541917187473544535132750754004931206069250407657116348938245192538909543135353217009715810857720982020365327876097286022271329468602105799307298503433332609631456725704366281750436247258805013611267935332395298111682262392811290661739222718303815047447803068963863964927246228203923687217595667979934675909413930240328816014084223980172214352369141114640237531326357624306854010572376054253340422213902574612276646932970843617606060484319992773344341152586802513068573990227288968010936043393356017257873766297340392552167680431247314503659079740065497498277986726697542409288977274637362955486960714033017026318809917623657538783627245710173317282458463079309806586690705702657201043414847774575672428020146262671110165798920896381586445218840700805298230332089691048293885106519493164551141392875629540969294028893485484892701480104057208656122978638103699365826220084500559158826592162352502931686323248899177345364057390204636672392979973389733504972577720181215560968859395025089737276631418830893572409891058636818085996678924668558545755029275490262262401511070623178828992102428340294232006834857324547568132017909045097035420076083234134707975685804508991932155744907845962459264921508293645824004298107703367244720779690519855415582096309091648053343497833821816349745266865003074334756956287709247175311145341355389798794451827270469222510773709112480176234241276249103587528954075390341993383266128397549940252953249932657903722418536159686672842005146736627421174522870848748380501480511652650057153954900738434095430780506223589235379725353197397678752469600432725383438124701927992562088616604304343116396723132406029402210267971322508274847386684555845712077860548472244829715893311280034513327580352639371516335999670831574347739030701413856085864306147096241065705282312615486709160726876820312234097809095441371354363476250527782477856441328144652873566587355912074473669299212416157937429170272601532804478620294423042762081258170437812561998746261525984912464027991751149338721459640730554549979061310571160893092477118474994567647057657772899134711654956045619086943341874131433114565332395770982885127276869419785479968753028133232304357133407311695724029706483565452646697380131992953107147749128903436391580390486330198633537962052136719382780268740896216385988219857940824978188609077758319812608378225812882580935863823288029414325853692857583578001043248907167607373348390501121011688005752344445166817941331365780619210741512681704005333352225613426488812791240611604421976066296263667213834882716788721384854746615382576893851975802888341692551185269663100228961646175281479546642920051676068553479864943951687005037698502833092500204431110509410460468151528999254173070387486622691653604632142466840241314524169918245346371454219901453272822721245559215393074447185848715364200714780366003545579317176194344960128877471207829842970287586131958742511907074130893493536181121121551212634294780348537973946006392473972560190463647771690315829222678158874328544459261979534749360264986039710229237195828348536264033880423125732638577840905913304517357110466833289079063676523662154176201971393920261119358470080654769222822496245943571694998135225545124699585156191859951635089391842886001078998484842160639510724624919649682318269624402924937653461385713865908593688510289566456141548888509307938381169245053098138779194087412371222838163774477989087467013185448873187369651444687995302154603461519736168466615903134502433961577217574267666910145305417705712357672584497970338986074188699019263655343498043246152166000182986255619618719445702961831053368806077013790155518920938659679122447050933455193529208372441157424451896646687725789812888241238849364517105492183231314431239587898162427162642035268042482217550082625489625221032666630902978964590500971055450203032246787384781965592567358369648020079783015490317761830548289658044311428613351871474101540067437285719029979614019220756647969691400616279309437648878351149702737706169405080217664213380532824685344453804102113253717304927165521756661529517358791117835195940397186290283542928797369969083742481595722774577701506595201825517528004485792166613780196305216513329732541131146592775975908202405677840112977873062948094703364917442175412640270264507703371062900361357589118282004910866956215866284576378361658341449307474616861861093613988277778894802067015465357716055898363623836576416590445622108075214893953836801164931004568684324090338320362788951584414898168264909819659255423332735072742039569821105904330622849645386744528888331764633108629243340666118304096394796842697300650410222022445640718745880727295041712964868797781425146718754468331424928283874552935583776950329751450934822686697984760402025848757871763274456689150840506405828507724601680919439199265790227953207724908068052332442069679418999917345288243213628323197232911827525666965393261756388281663814957518717527211794345322161237905473470661665933158182410131833736783975984416351058858790188632426236280520606774683643072857249879230034408757708949496675454470288734456000981854220601372554002456508450264075161534928934846169475024917106871721078511137953726014631768255875052599732842366978343895398350072485869717937914437559936167193038384465527896189301610775963169099421643098451753086880909806297179308663583705350070082630962186768240274972423351791602658431022592601289043559130433469169159940494303219316496365081306910438614600082615194202810232006839451095808110864239709978265017747559098285711833921668516632412487533455238279464404943968071752267469151535966910799699491825346170644699118964569819162893486841964253875283604278323866913090801028052541632953501741673191864087862729592741452288036503556938464503658992049473345026245832326519050391640235481570571512903568068740420258167426885604347389178286033821879397660005336909226698733935948931724965956240188301033757674876268605521294032541528386953691853414540114208950177690722882730232968086570526480743435991922210466775917268092594949991050708672359281666079068480057872518386469636399093606557149090853430878457278506176392353220764313613374272512410613081308334919739235439427206196978226591224403259320266006444168396715360225490864903358510036849098460214752603139004593160759423252560738072039690311352709449485313817858436976321195512143237330734721150271144117075780986604564621374425810328384912193073888451144102513957590138003967050523433543626321281204411876418437084971429793519906170908367380005205213021811480890379709048506942406482951139292883059773458903791775223850221454754493587935999700833016127782951263091925208266032550410435036474188550621088901892118245594771012402792235673352116430363103735028661349324792066269130498181125468030595050417120539232059962812816709108880674966356043525047722941727372843815026046182830724054090714323167016175199180247688612898741011308108648873468352000934705847524039758181677454529741217971321173938824202961969194006133141689280301151758923588873365097404021548906951417808530040378702133553115259479329388149574848605414853229176733547837569442894274680628918205245553340423874162426092158312521482663813846486565740870898760013252805179587282292814626427043628689684634387940946600830477868906637437745466578928972516666183497836669537371560916135265382899335347860408762856666857268649427636962310438761136710765113256665214043889130684778238044272830486351812602926265814993993326013497723838091518110447705644183822689446521716440068453066489447733589705668481673765178151402800690835223433066595307087963352302639282248302814714119405461333813007482649296840443119718071194102838634345379603454994247487395391077385523415456490884391805607863916002005792917270823616875724027307206739141391117572094680270080215374305139504791526615130164007809474536552404183148921249459532386642400731152194300612023241647813124901202601432153318692151572440894766328864843184693788448499861324871197373492431964080600883548629402487346933259540914536156941250991599826412019963881764300231811989936975334540098121724230648010543411903957366442166023873382314210938902237660888409902148638582187990992559123007762507385615321422518555360694840635690796408750147573556468934064205829105911172996465871144577396631111972675491655011624248955974471409770639175698470966246869348623795881056773758937136521581400472935871425653800096297305338942879816474640671375495474748283645975902807756966676354623771384687796991405833290856072458827184258283179286766076808358571499681703816591287054064360730613046484781121628238196248546638127790059643146145540338739990231938657876214979887182201064637616672741304483326247326242824783685881919741890257546343928555914067120855354411505273304629004278355766061706463520044451802090624956883748134031402344908487645792494730544021246697452437449318936672945688052398979451643307026989296963179052134923327391646157168944288231861268221951350570433562428987241489685147158539354557346121821718471283539722768864011165596619162920343162316599252880435623432734811196026899874693917483232417678615822110665673737876576000424303050049414838407631733327718536995766653746842356928915560580710660642926341062671940550982246360296345205448576408125613944891200737325615901811412094168518311063071986301198007145954628431226385797945260817328004228957205867653188452841786635791030576261238968664310504535879896419558742343463372344363944392026426469614233748441644816301746808538395171688182228538764091411777981409101084307364465158734155887481379269847302116793689331946254037237425470479801834370804375042469558625352939705788062253770279482748695763838512770398480802913822985209216599583938243499396427807452979023145599232005643149137886656298486670009329417901539849448583358520031219258964577286811791845942595701689723263157581368890099907352029873166117455925422703267826314996934744777090361934161939455783122341869305533177303914720463139967273313238183999411271796141637617503021358578921148402315684293379941119288413771758699658548995095736180292988027565724863936604150256785251943850530081609344826755019698632465596759557601648355822895288962187033231596450535103539466204919087230685175231642362013217642587419783171389088463551046856061788383912525260578075292943089633302896242623869057179202625156820800676504831083507815747863968469490446630840111675191901905405650517116329355154232066771262410739266395584480268038446858959234504277045402932192106277134126123689649523950133646435528005394058351827518883898001617539688984332228651730022820773985175933827619577045743180864000865197366974978331695913181379347170542454435851772418223402849232736851177874698351475182664593502030418928454659114645989675986805618369769885005590387024834357236956694705290052432526935337033398048519773194039786497354558154025554189218599262579751870365874594094817561725807159490157463671111407764448541184851118307919861225208071258298646378931230683669552954673690300817051790540183381132685390801725857220580261031156652445796995610938067492521657428696696949580443057474012279805056424238547040344907522208782912968449440738074233914238326086504884037782388928543034568747987901076821622043136567832672413808986615089503749616942115809539138821173749581389864289400871861863946836047560060695757191852002385866597759759195049690709941164602494648752506711728434293741241700946864221826732548172670386529283162233205873273777843730087883335368031500178121591189297459244067474714858760123970909158194789979833939479866890963960829779945293801098588426648239091384031841901213020878223699773782104501488806813503715230951552176271659951791706851334664218511467438291826023665274555957266794846012371722912403831162965964166068685547235460739572412344722377776666760680871442434031573243143399200300194591364246626040474923758309024934622545382907001917246427601905835832543689099623770097596587273255577957078501168236887079498887828598665026950441004056761553640108104540232754542144650033459836258445192899333006892266968211053293890923661013325278318640811700318683549887171602627748860482587559472998417712879478098819011345125283512775355575050366980086740395691845068936733919240457552410670999082089671579066812732745329054088156692722483937651699160887496980493683346946848764081864450335453763743259023377623783306209354345477340757359868891951056970828501178285465562060791880137672778081089878523863581702815554452621946931109123488261892920987011361848413454092435981277473919528699855590632637952125633945416132708337576149350676274372554515439558933611263028299171671346713137172103112108012878627475135828282802434191072948203472444237801640290846290546102084175315262601484078029333689033657437970030472121962448051712213498977751394734663626267900946833366884949481755424660450549660165687425189820507055158609759572424479793628912694406597188385770177952516448137391361976996503033004656257406565085629052646505573854584937862240147892082999769998744603292075971910972622755951635390641801955355987685001357091174853696660714034100874647768824744700352806599404805967899175673037746657808847002542916005152784398054949306127182366345134861180713304278423351234009988431111096081616968662526119309894349692156835307406845521132706056275301007179220744019540528165037093669353856130706682658917412027963335318052668274104832353870641348313708225563831423503512490777261085747259264138811555134508904918676549474829330758937177790592834518674594760089213867595855154365903336611638029328177971142895443265072553859852962464993818664472363240185585153290090320861484719451859352176013375602671806297082968355434757056507665746829189694814370082270004571572519371081016285015280328719528523919273185989298697853927158227107918915156499092427000842468588515033672424470327534719494943095364705914415139935354080487307502181896330804283049056221115104307683396929243794721801743018601577145172176069416826156754757545691958252207225792292794531991926896233740198366567291083872456915077642860273492776499730866437193314691959106650903760600829721743876191703841333812414470416084272804324806827668514212355526365707972120146014978282535206041976410460903720399366906830331578609204865631673027476436682475072213223379508950054247266527329531685634701990985988414003953264515966427820370182114457865876992584333139511829621090483494546533053909593833978692631976777736350690621321384184820588197544160719526748001385566971967155407885191542870350311907551759263028998684443356564078697733434848054473184601272789499644508580573148163491008027664512987925393962576930331587365769759230955730969381885386120665722137155508190575638996946976062833990860880333956524415216835958770123025996004549863012773397196103686701790509048521789248407281834929070833073153209965197715246844006033723885816463125807615092034529398814580406345452131759777547608399318007861504167608182928575371989389241896438433595557869199863638761926545705854581617924983786270531406787534891842856814462284630316282050472925278673427697976801716746554183807221682178038111415630905752335589243835794220816218040054782928853358784477391974427174645371547781584455087015439222740408865490719413827620958606970048194471190974786417464473258301536661471462170179782750754555522380186231361446826507073582528320292741267579253908324400983597103368692141479331269559440220856332208986796472116883048196005590377379337438649691821404986601495815503861381526810884182758935073771142066931968044505820808583329020695125510517862961181357933488803763969237606543287430533951478863027512544037695048715112890458721054776234182553619652840184663746570506766880391738177414217684522983671116820817570138612892863375503355352363076400414245781249231748568853353277345365282982896429398891114103319463067638340466365604187916071595237673377787773749319838314498998848332183788269054918378757915741207894753266364687637153265762727755126462071447101421164868529374939944187836464043216219942982441223573842817571097542147819496154793089746431097344538677806356165624164920524083959609067862581460608689037710756626613279334393415407942943659250590070269327295595030940768760741677789886413341519017539806236255293563063358795319332724764132864009316115075218349944360540519343365827893365457916662955384795051089874613159384203000859358380240295689946684222608229060710707140334801107530324594657351831009701060281997077931007449032360951991879502615209892121108804406942110807523815947138338866992517651074460221973867142789260376878415990818994588483976566073321948003336891933377022374175666556376610654792115964262636819213818257537631807725975654194484798974731737816679867350733395459203042589726367591247484408453796370519666721277114174401560037483939868498419083474449896304373294433363223957931348748278269431355665065353935122319162213458960180706615160418845179319098386484013144121855336743019921833915415085284085007666754401757693181216139353607355745588872771936936669914511886877862429590289264058484631553462132704171227992424470988267658091062361742400251140771116563271925473644264902425415025923330807111868517467436373121198385923184546756747526886018591565059458689681345112511160569164532818777521942940443139159895831209820488809056791164263697005239060593604010195588039017406096418586577320596813950615068736986662539157704653264908696427306997839424615126710785091943598847734765024433216518514914810835274886599773663572611237962849459653703307659459380805101319221000617330797410798233548851667585384014468747964136806596713992963511930680774595094125720412096713906777382915194961830486611545887615440077034020796264785792918756687101074123926646798164543349404247284955775750795152615199685568251101688491641638208161146351500778931990043628590827520071865741134127526183123867228814342143153863605067339172539868280448458983471279234611935894157144467971884860494251617293090347635463507660993851992100599721503894718162730677753679302478285028280599347063060196895645998519062360951351023674523816063938119274343809786664364759020676069320024026735238928416393976495841923599720365680281953578207829719124708633619690141030651210375799250517979225709848816512914329671085095512460532390041016756038258676730807866979817918064920974109830296582912734266119305648272956664578167495286665059619566101642430356691171332970617058342113888703195965018344584410565161833998695959164633153791792545494013338422048364492237224846735157664724232390387001137894428017664611843662689467339164198692944229822102575123245342692444059986394447387227084892858842148569335421606277965084949261638092412976416882367143309920551268784894654236188155747529731686175788500863926408311461324244907722351347929800103296546540173271352116309274882210244869083303558043800480432931909016891116932559666207727138220889891457628533215943170160617827310141015902169679318341270252464488119958316833682747179110694193447977555926108392563224380436626797456284765534415789576317518841813083116407935999402359862135756289449382955194233996382963648126059709786848307659944302854460726909843035112146317309422893415412034977826094877395858952671690470150695847062789796687388544256643058388897901467366677425042002231319983666959860700832278061411350136640188401868725106856954696599124283517846115936370873844910356394154506021957086607075793658033682315010592050310294474408313060259459825851837434500001531688206306978702552686152304859485521675393684023688987877793077569570100218935006474520866825196572009476319376505865357136788294393935872145133419015126739905503934499585194351053860813067559228240662023568826249389633990041031114702024714565523516349536437808236644275294784916046388605104450520463530647080680940531371100348566575423999307377498046451137326313166631501728621059592303730132702565065912177075645129328344467446234732504307415821199493142936597163829550544003751814534399430866932595130612809458971636369902374071613838100796374153854665474193807150629710076514328691366431392414086269715656735325851723245292019106129475669876264801008390479590759413155169227199599905775418910439109618072677218135453833942104514837143733344100990004392614567412143317942670522966423570803489855167757211555782093025248998637189617231926789173161352937123410775606945124425412035725227791283629847964190929318594902075101365562683212568799654404207484062310871283533811498373539540505825378511724226337172441420911609584301258197737740795703837540503732159550236460128008205366538863617948529282177960269693112024378692902883016425213452835091268115419640571420843578603360918392884618684415215447078388257091353594240749955873054442260288469158032548524817941370029848111875316374487228729518043235923464172558367043403313367199845348199926840867127046169296730229084032296102404367369991825226361592447415884529880571482545701130715996122776060018928380117066878475889735198993633049859074459242928658077035867180668043666333602721966823972926326674419426515146662098821992640918258745871132851140408911355148876665545447175620989545729624650052695451438864520734175872060210401758599930737864579132552472480605733080794470546950529343369682460008185108983908847273789965892873588404798038375569691369931093801091996171275611686086200507897332209360655791344065367698854838081971791355328791171291634256527651688671922837442750341271591543192130562560821506737394361635955823505217333033486869207198500716786767025402267057764980291412991580099563492527350891735945933142667461696892279951137948947976031711001211406911385613896909015934504523296548650484986045931325654910643339989222778440794932025442501917682679134923284836877628828671447327014568197394005681765656004749069017312714208262873646891624873826910235686077005070094594776605567923848182254931017081916452255668128151113636643226687627521626427140997715608987537708155402681560788551284043056932490896327404875435892568009373858814369079814982627623981690630726819651232040993774852114125037656753199712611807988054456159931657062972819722554068716445394498598058174617907169083738198404774429605913034985552054947071471920217101195948451178513813550996032844383971111064564928305246590360547133381666168908698509687236625372945119453605781485465307215267751474098207356948015594757984101263676009173828599511212305217756125642130960800026739407724930137092667213840928183915673650837606929468428818386432990349119510230600439247074266622750713677527203141696631867842533839411041135013608646269193856374023539629953917214749530039733735212784473510352082477784423416427368672437656687589394169086787734566683831892611621290048611243872432473277350273894133558549562105151383815712201964230703080745935155704839177632231764402964247330524597503471795654044980264375530650690540851274615139963926056554119670114906796644501051857008895815070309943930527232951117282549130098604869869227903412767954102842651652992174921129003565925587078052275028233693377710551285608040133409784577552702130597594542308754681725822296721964383727474587911386260377715690255881794586055693026470765018153367804579309455320152359012595159852280724486748531956422884473232662514679473029354745873610428687608936789901788646682676833295462241360158139168782005767689973900444053151230328423347824703619211986405649619456223196813619787080167158724407200458659604754170549964659128682019618828237096931203997001491211574780219497886009976251342534561269812209707465268592685606283273536341557524962513238424104294456227759220514406004832957303873739627419075206315733159405603402802904013017417748723002221507175948047818712779519671169534952327943157304324575835830879582531665622244791563849166167409357974117998332019700305446581088652938872800806691853753918982389215761157202363596331256526156795658350881713826075015665109111704776808053721787594500975464629282907397167825721733031467741491958355202365106946052615603254526168882299968916990535559620242501733029789045088031461039036092968503245244477395079444852197174217800543991527056969312117748952185060055753341506646359959663751996320748121145063727613548966531862759040714950921375195188436346186937631545994721176676008150928282436713748741534837044689215556786804636652593811519335407398717206441445035273303191032731366105729474718280008834612620608353682604219571632687188113493176655678058680516425216219860741696064206886157378622539519853173833305662929063293209433467110355193790382444420854173444139115520059323975266843220386468387037919450454378803797823695381305136766819226637151613391256560665539721432818222559256701848429343183581129464165030735970679640686333803973431940456162170627300342597638586787953368313034892201157055477844786633900277252046948843808030852026424268447572240602396508131272625873258318501795190947607254123546500360184455149582893396462986424345670183917657059396516870318923821702938600424158708031657824066762053623285946669787846396698870773529473841937809981227258804445331679987018947363734986584249083348499832744002806454731547230641628102866997783688108881975381582344927718175492165646847407376424311120946365823263063613788923191527907802687360703372702367974823795339953486159758442132598238819948044529743012973193067314617448903914159620692670366101478655933560704703226991791444875159891339180872167440301803517139164248530123251258227353979265750900070457829180189387307226521406159415877173787333260970231736121796216014888451196334608446433288649409840403967944573015600551011734358929494165806831871123209778836438845713868008040807661446125916144067502932026314407956720921501630969679460198096295260795029777546706791812915027902940914481503171063185306571114204812983648117737725360732985642275034138407678056228148294427053016605247839449808252485690323054743752733141738072880367163518555474138944368697950084542509015725804395423300633013361268429335337542120932058917653763505659647221955028832907954798596937447728585305288151123135922622642720124293970746798217885754787940124533066075167556062899688306419502294310523787999764628640829324907865965454142388977409106157007991192374690017875586764057025049053277014350291158091880585757346807314831661811042585120476112905760180284367607237591254691993054030110607203746838385254234501686533909749773761051305696058447188015954297177715774289306286789884881407444860475033526085537422364725335791331688778960865606106377133942213187345202941713083152041476655944975245202919377277732455683620859859127129069467558917304320258789346565961540236334091281673644566080428574249662005921922624954223043295162271259285363294615636142323538100431808745518509854070238945233121967756186874829092494022545485056318107970514890939746735582521069469512746739145340843654683144793094165699283699905794742538195128209227946719309047874225428205464065984315991091726110896452033169856553360296518731277097397619121046836402443064898502045125274586377455642269347745179307315724830834475023458811989158296840864021867322919497907413795067826798965879462596413460008746285273566239448787699564474459085971825463161000466196127499505123126682163996503890983733235833462314289068693889898100766727350459218045613496281691234691963588094951274801640989915772219320703559006021058977696071672004421690807218526019725148821439469478600772932102210895090827469276897849701581777549921241039911440716496218326972262412253725297137043513856361274562414598361483652040624622507450311617549614649328367929110730648367142310091814647105463893500386474540762729754801868667030282350272844209840454998966372023127487199067068342909099902861597109909032085746412319365731313015128494500133614008034785884930809427794168497048388683371531713234832283675274489312410852488302074364326949845551848835261868758701693601787907650487266096850205776110498548615413787461061372310215423489285451811712513794851822069788335796908392836011305338024527788116516625171796940544367596043264529466275374609460180462458726789434737433623053931446842937277727572163689885987476510999585265299074696032005470077245512129380354279803561015104558402536311285193345582630094014489719750426555399449469495946596097995857644951539740168500745063877378359644418566021128631319300705549862600960761655882709431493477534726646547111616384717227503270341895907354735422776067842464804269387321881948645202149660239253100046268204818403184274023400613392032779165757527373043904738641065132600286633800178616318177075646273113909307959240506730497107774391879962760229135146983352258246154271773640172587956428465059382651943129716465814855422180159613111716048303814028785507453847227515685080439358978280946177987878801838112814894283131575470609465346380883389866525845521286427035677191358701223011822223868832464815910075136560623031261728643220345398734892541976632537043192277884374662737072922368078360475438358757110007149540020429379859452410636859601873026157958683455014776642841380681347254604350417532073927899101843678038513402420506743679102946995876684877539834771000928755649800146316812386772908040818503541666600009559438745907629371831460268613227777284588041643933492528658176610604227869531975433250676620146048371493454435498504384335201702130052352374053645335228347585479219614215274796351506734992229040448977640294447621647701689847205790623022062650165772691076844319025928716454760690986571138241826383704718233605067678559421305240277608983028173390356358003986740040115015008820271348387338638503925552381951689251352867328699493273159163415714159063534353689996049914681678151575798222444346586308303900700655582377181419959410756282728340805329155131291577898236428526900988398438609182227062811171745002229748910714770162790828872850479708386265006476493559471816307678453925892751801104139785537102505827721804492937194875762396842293725617421062390911635325322095134360867888164656808597954489945066288649863995682495204339221299421052632738869293022582232353271069076289795219641211958493522736093526977772136895898694996045487743735387080338472465391540089713990509829244366614566554058652290242927052482157013132787312091764653776255584412430864845436316396044468034639220401068373705734530169464754915076400628225534716482374284213460333832728464777322617792258532643811604360423972595172537872889519034230174596218149411729440973569277049373526846923086089677556856104611060177898448402643534641541596013359196895521953696556137592457527491017392323455893282357070707957652046800742288456277824169194208403585418927030169168066041490260069867256351462529703891603752835913418573131680487999421510106783998962738252308123185941142142543580895378446758264394744682361652200555527422797055645166007733353774051743193368651695461927264495131066540576368208765040639983286002120418145815062816458889484587737323870889511198149340634076427236766880015440823102939499713611421247800655450467219337644324204497700653959754028191105970845956240813657680763679152257254472224387785141320490368575991811136617345048274509686803494052703212944490312387536794190486863888408200411870349205857656241891641576631712863412285873287308797338407798931239015192468648748143689395773100409922459309260497454143606316284639103840906806376468095375337070774333738317926228771364219899889957569927356871301290615122754320692683513119438459737008890786947561975848664651215686897069346382981306517901990668748752810506084315619926263428147374367194119583777888503477817969674617027304722978508166843174877789122097622742941975278910307909672600776099712928927525397070231587618871966941863590282637234129166044182948697705625239311403932686610051123924146171171145806266911130886019691805859649063510780343270446382909432173512612229829732115255597629263266028449639780084329962507884616134359370226110958438316746134541400315326367684941041921887512029008568471114215118449785007503732516932356506614577209029526986765249841820847880553600808491903834657627115680393558691554801557424686479473147680965347271759635821283367411605408469272297394226231628851626149275389693185547841050562133328638004438898913606890093164385146399839668698052956218900411876794837331894964128943059594990230218074859616268134056232525070358459774278685076370841708567445275802358194291810515691588925562521337050709473042111364587884632151981821625500896043956349759667863105169888899568409191767150412922461260195387207153279708720518741350127985065399812733232266879919591059660488538319605514206533166269596516928024394089887956417005883242372861538555861337492329518945115840786454578181950587820712151481401910331378169178161859445338988503039534129495376773633404555680291559179170710002269662089784302772238268160754988258545005276506890363499881505957262950681488820673717089189064501245030815802391156111725369606042494332631767281942383829427981416756210069548914388619708484595795231844102651768221228086663377584221139456979441643869530406875154851354875661862625367213578619242243198883155608314349691128405248011064446087178993104788448843982759475970545006000240168038418981606472631006819218826690643589396956121686847968364511729615032904287179926288722138586273968673376075459474076811836665398333339110007481479758562089755167562462935935626512539495855417230672512817913105325963232008119875534822181138432041284570116497655121340733813244375517301319942706859533591011262216789987745308617457338109254537655855686091671019868130980757430509316001850563362736751657859739660192710229652452195766113824259428470738383178027846980990141220124733395189936844767609174008232424026259744872910295065099023179459468454183606138611427225766991132164222955085175018901485350858189073742183297423667013266235042643747183891082564785465032437064658002879694139573662798670346164836414403737495613194224832958667533857970566192719644541790999069814645167429465904814157238531193315541874110957805483461996652978626804472439281445278266655159794421551787706492925580338511187850563312937827632296786337933891214836702363656275390713019848349056766122916809460635163833304820268999738728308382191942406131890348970544592535980763034873056489540741556901833517257784176870065736309375956471368802408808890686626836293108674240466524841462277684926820588157865056514902731190467642327943785023400181763544525096139642856765925088960171271499534172622707425735969656768912110593007042405023713941474860854602826752402131424895756269687237123488464681163019765048377311170792228757252099798281639019134556971220505461754779213841992823803889643343408135588784076347749071746212740054069753616131108362123937494955093639873596937847752053759080311675470215144474286696683290515405100556662461797910321451685218340445428555591968322233319500903024043221732213101900845133343093889811827096913843510552585372494652468048243240395361042469923800171049228663869633292107702355043854635475377733508926877130955096725414332285946143750341970163177534592444233289504142514638377895851701796120787766262239269519670639162523005482947824799894211320301851635930351265620333006395904990316247326552332937501186592206113859408786442928534248498880208757647670358191189620909156947891590476885646459345114571809361591214765211250403518039248832174706560063071066127694756083865398098940414152953534575458676120210107203924611282585498796170473336960264202360308021138691193584314604086520202011172838180386516894702634629395681109498500315177371369903328182314578407350945720375201860320667986733912355833803806851871819635817394203333122782166084031499369779890945749623170914872973609532204330685967578131900347556883383519877798452834129776924267639033854951888103798580486820907465142860015170261906768102782638168683544928617234022856043514621725871217819153255030291002147307768125483303171055652558090726843328203497419398601303911218142022349944443894295697348134564038531874637808295388093735263776227130488839999787573192349623436444361233394110499736044482601135458089230443643391304082234604208161034824888539737817568952980020268951010777240458545193961257553765586857005843086832889028162697809324190072787421543112178228064033632203489996965049241866521307674252911645485167787975762808275261269169611352590288149017288473527496619141897591841625033521573392697254391534083353155600551755560200394879797494741726577594645187822555787600798003334597913572569119589159753770081076816599991517916370434454352512824327193822390241254736022939275328971668295836112615594232846797159661854007568402359201005291377338632818155935672541936949401382168208942056614698257659676278411549207351046244154284836631154902720076770693932451440741736557217470053272067776190980390041258597603673150446332696071455934603108754628943936589900745979344163039113614483049823165210069199167865205184129445232343143985832463102101090687720088802543423554344983664046589183042021491904287098623817782742925001962860342505397410401180199441745012839365677953506929995899053943107128093465871664126187310683474018093970564919729375118341151997505173695084388958588766438311530269821202748417190419940235914090837670266242602172842167742843091363372380727714068672527273898249830955413578231707090580317962848441280853991357608701687895894780870982914762978915705674289303963357882127603336858548843870755128330226305870120056854091958741054968216920467348524796299443392906746083710373114230505858631737241146714384783324999398144860522140825822307429802133593054561403297366397113236388386191095005675055374757719663230493721473774193788507802612416811746565633481687070644689090078477485835361523896155240450161924269865401505110097014578742627913409810594171306377515783148667423188410560109589180981586789877920872068357228385003159725623376577725660459389509953276258652014043538886615114898991984929100633247005325695845478750093217303809937524355536645438875972719065833999005256981767018470688024997381909205412092895280886741438906926629871415347364919887331237664241986575328296185119702180530178804307823670804292799406574104753701617785137640240095647946715557830975502555303936854260482043791901640694512155332503784435226018566421166550441140177066518185351560061613016857167126754061662969181777496054628155743863327969146139342093197111889045578509044177711743576151972837837699676165633345869425089031600441585144766127980733315869698393622058642611081604252438278552115837342956359328411284408538877636627827065609208304612150524393657412433129659002273879529764549909677710943664372813863054779394981009516917747116315345123143070317030577611391693146155003952265156763105006679917009890449291670465920869005900076491807124087481858753742040829818394274494591837771329246707702765634092132323681425138091618904302159566570517138279422813762635859882762460915558143303116239544662989445973341024395904308760716897719658716814755526278893906335621649500287444868354626345289928531844262057910412929689102981671495436786172699163771824633096201365377998357364257885196622730864821163417369262435109807942057754612302795360499039219455502807976761207563469870268399423785008302347167926599299209279637627830367854407546381359078718815353719465823068444457752156529718900622837796333526943173028063471935461770500989200512553342643644511420045723979401428907175583983770050600388938059324811213127678102714312548506276541922654345008038919522352765195209181102160396823575268436752192573378842522272458207356895630569976610336345678709456394870289132821686826795304688152741778788941707706672722759720283792835422014310377997354895060619459616301511483040422022081492500051247321159391170088848731204751561167599109167909660290993012226381193505850307744364816600899941006392417826026650147814173426817031572156416233994108637839451561874696183020268985769504080713950766718793230997022086373780566172986091967419658513947367524863227151344063412481342626029820267300561177984750125408315418140570650582744800723022906777899158376632375465759655973654425161664729171953196140480379288024034742301247754648201278306045315472067064537972275751290196807163359824285590197037614593688183440785573411442542750807354373596142250488641569501380779566328355975881069477246876809544695644673485454031273218133684016648415070433458622618070385223620946806435206841619437598542918477329797545338248207874139972585647540339241920500001557458410995461805237114554887348509258502221454363171929138655863142961358873634876493765674399655923730734578340606025765484101849596313162764279995330498606380522913977026577471463532232104844969804859189522520656759091382228418604068241118446983099078718321918450481590686915014813698355562990684185399064183179361955281183274896990533507821159300408099053815032163379102358834388655050027509404687960925664761521208871526780867236479128589775499407517097097792974253947461901002486128000934830292707186672298471009446663145944936037869533227570797553991110363479083300013841727311800278272913338592408874785845466451619653498579096460725106588072803039505991499878868414040769672842277894362731446724975978969957470519543186552744268909756720393219082631775122176194953079303777835997924876771005207558596110292052810540162698502275803266106814225954442710013006439029965989242658688072603602791692937332202000355221916315436453278075248249526142189933646846395972515181658259148766368313215040635324339879218044137105251338682650265313499156976306853033270574048260624948521063380011356869953538889634777281636251464849867773053995638841391358190631298748340644016615354818359063294745596919394958274314093888676345304572113190020425143990568085386827920625435327527260558763329886198383482988217566562245897474066859780813674037367990560294319784513551697655894062454679310401557298795391106391000795241660301475273229780430239760496159373237992867800527348991045257558724112524472387855668013467679113088625636407005020491358780577037471627560823937978889994333655399264838886630574025597754997320138534607253168369113456104162960074507039695530577273185667890410035564865073099872615289466074847729727900707441369640333310771432327797935737647543482332191960292359433710304417689094843894003944529587356748229311163245052322141854055857740707901683016088020550657685758598452649155185166993203759980882036295864975315850205308694906601556273113015144666538634129426632458053873176298610686875099892420544128034653115110034952409432309349308087792160120658823760355838357844714402506222859166589991365030433929687664888068401106601052670024268761988675143432503811170157559081666838779243178243489739304534381594495621846557051500479508704063057108282611090976793673353342037418914832373493685233851207213398872433262164696848861806577468498041561743889780785330860331987921275630647750624826945181247727841346010696467892843991557391032247273315508059534568660733652487133529289996113413606575938914225041676525456444188910338636963985502977467739521144804425067997424235276800005679378042776183619643211803616915711131854956238303041075796743940329122842427082214308354560179078630751550541306263127424566105410380735276615453075022009096827640601015040483762625019979548652108177423485730600754559188824849566056473774492751442473825664629182973233204598510870298883051214031239892057251126036306499516234434019075450426270590063194437134166478431738634701037151800633963470766957447688829401698099049024274610512053555739056166250295314155158474291869371497859446273181058397447273828938079671198203024959646411316083842883534123123352669509225905999985131623913514085407738434284481676471368137906083903566175874004071479059296138851787919301381872588581186742772912544801453294707411620113978565287184709679818227127503920586578501581639170650538196692682079167931431783194763569025489652105230513383003976437397920681842332021716940811327895713784304464196924355510991664163557266423390087717705078690730709233449910896443864248937643914821686946149489530713261610899939843985688373749471048277370853292700863684264893981748611007872749402675806561556437697531712233462393827275283076636276559133270481204043017604567418901904812323741512566200439769991949761440377110216759867186320706449839136846134653873136004239388164215898164872236669250004222817808649858218798577618197340446906676087512806772801734239032575049313805953016386583216463800952747439557725099481286301990297607064154082638838774463956862307194258050712738885095901015307104828607530899791172560867468090941501515571880005918079527509837304354957718052683112637380467961761810636032062306183629117200521502849381770286293236862277225613670358614188242319932055787153589913175179055825686210643674692016187821825223367621521156772845502597677479517850748941299104359206177504423648572360899777590814550766910731570484107955297789581420689089556999133849145377727407020443150982319264859005836594680361900139113001906518778689498774124412046905563007636104598828262614280291012833176272206771722729282126372697302192291337965805722966239951295083349645408793732407161621542666792681257093715239145006218597839535400742860282607751789144285178314893437027046107634999705946378492299120523586160811900559268502578976900149862400827909696913837339952015398068262179412848693172820323898122882292946913171001886760294432471923462918550243215272140455702123799818175352294658709051843036771307922933463787483546465340262403077482758612720781180189737248175721006477319133369349942829820918284343589950843755693724769636280140081920466069733362165537619544874248416612591009338164526173916200701153513577439563100508782761024944825159336401558384127532354845680518852590239361701403059333411327594142147326906785369706238812088150670775197640928479109688438712819428560807979306968427945189009789677862426851438467099142221735726889702009424388069776411387302807121973148661341689549578101713444210877955498787305313272452794248253374889521455475721274880074462632567118924903332091779257002942310552337892065413218367182098624980873793554318157691550951065765966669035078068056998222602117867807878528317057731497844820558111233707159839807208008702215931004926410950420899061584806541648261462607184353700505778139403583313845986826886382847235543209105124951633323083918547160613714424444823106994221297053349131013191084006168301935425901970470289768099320139522277251614242486637595135828265404054932383496983926249950640811468030848028155360090417576510922879712803903281921256609049626832968931233869814755864210879231276708013473640037012608553830419451033688752995788974910076234084734161293290926082454099004976940204332402504279947304806145606055961582262333662697104656354913932418210052034887078323582717514053487365262548641374600933928890400369361596121899333525542739546012441284038892648959466474057941021968814639482200946696392191656201616377400598610213146756504132820023119675448075934615254454966666318448982200981314415189700052169622104098111676638691700693549624778917621298027829379295082033389889858172472167004150481952439668367444402336649286378521734504217420669279405146771391914560186998564368382096064655312654194184869501535891897078209615228010976514974056593839632574747853745315635605164636808452263815034156184641226171563425388466347319414084451762158289437398147510002561168457824491305548776352707110592335387885341276154282888318135917018264806113329166263894886911249708374426728095276591777202572810240511637205059754801737701044784107640222172964127752879136109768956876136808890528672422107492390978836966976895368529591572140001882603516503023036849941261907648243265574315774154402303795756206146604041205865941479817141923931134977889796130004232294747072657738359833781242435434802085743520861806854750969690382843872564182667148260640069288978735299979052289189296147135295282152792830915047001982283233229518814451822508955811042770293188861464071715105856530858998786727849644735523405074955856626417413013266153468002000905644228770872067643591476095047163449229859206942910175548030804148004212658482881697674045750243093354106988460617689383380144032818373549793637416569775519503507992895850516248264337643432698567343230591337237556802733179167652936302461886475860471109813139958450879439865065318204855239986495932371411954343601330752233864600540494054225877077482157068124768515389291362563973808366636755150447100460918765456590487567649079561289754850378521872398795975728910255688601898668490499241843867900537869604387524483621552147883772869946990934393519216322408067118023279170574093233880007352298902412104509778208107343118241359368561273301261507669923644099689283361287745631461549292293255451415515251196914636566596314955713900733539907718359339742650953037182123565435987742474566845057889835666593034182854260930335277396757967901591019475008676341512341507932149058651740023158821204333530315989941632063333858969813550972830745458373497030276622989070845698015990597753398459060074227708264228372673810520283190960329182182570171339119485767508567159368904143948070345319189212576165525370661436068663582475302234999929221986926467418900652230104029397653073334611485759461581131060738581408162841522344543188102995450218761814925483100248993092141267569721095853104085116310572026842345133150838810726358329760519415773356875901677557898636013257763666898119063780456746985875615573609290256480143914603256039063483741128799397732230519987170853914105594515444785713392732694487153366639737365612843696576588263746606963932358070953667261473451770278813484355603218215458272455388790799972712406061764448543956958019491295406762281670189268299864885654455677272930454632034477949445016004422464176172011791055575375130373626559713880505345482570989262300496609766038506497691563175063910059405601044748621329840467114944986805417216705126745963015823286896163246028726503293085108225214558356509649853573142164945557689039729358595144836478595266602917092721467737841212837997119299954918466734707236111604225221981737963102441149705582452170048147867067525043510361831362653808397245082947051205267541183321080417324450206707491011882667693626631887391843736352217772070820843414876449565027509506075277846800628038715919177940249521458909932184553772500262059845618401497485280024606390206633185957649946937244206805756598089238503326416208535773592819347621398683689373951637702512214438673312890233148824870111914945740941147923221538203596489335285435768130503746585999611299430773170480406548115040844694573276883448975351651042054680648246558853020263133547875665028692807479196906692499711411354291959697280447141228680427554107052550940283738982713330745736686938937568626281997296164030988639032231226288677220219640813702092307727134877594941688945507565131311689870599629969786260644853043918816483823253662959998519215262215710452451048867678841974024482072657783753436684408123844072436327499431235626012661689040145552127670069158263301310795778685059962887740227441063752399979989918453469861628885455409654648715132172029184174958792051803605529442841354483631153812019581999119347645970956506601090310109687505025568997960653482090711898181049349899989300287299747414387086880287163535937135459359137406359206390030176654560227329423070652484480150255970136244080969570951794890577479562037712193731797426887451992173291997721797014099243770501469282983140156919799628260125928492176686139010618041852042578293099597689209587235340506846741212297080307075210079765755502155170580703214688019777242024560512261150205267110159958622564177410073591721631080045351665282158290357850628548970738658665052885645452051785479239435755688615722957987701910390038055129703247724623226034349457480731142790028685063513435454710495265834057246075048841905102825906004166050821167244030484178493561469779290608501695192157671089711588117288900522011873543186967675811933677830728227940568580170037651476378752859751773669109307184965783974754811901632068394782100254392097584234813226803050033976948351164350619648471321143934069845783158888711068506657484770401909773026948513950751552721392324294689511242750137775244074968643925450829261240381918392453195232236942262518105178824682704644000411112937393312442987333467976322751192890793875381345215074022718630369994436147975405445438290604606343834289610353211943669654727310300355750204601734030018396704634374889825387804470098099175004310282104848258269896059091147855970520471333282659450142814088989193907030161337790297078316649982571476754744696151606055988377617614146308599390638533957002790248437089789323505380593200896715053713208558747130421637523916316925779486882760714495232587809396317176584335449754305525362132441549604291703001471251574661496214350578083632434463497305427467150697058594209413789895528749101039471161904614956315897080125792416382430496045766545961981008071176503590357874486072557256213452367493544628221054333200402924722770154679616645401969222077221506285510680632490855736755023245289698834424306533257965704025354179581853240979998941617003623030245650003964359853432955795725817166431714301350694141500287017239093210067559490844502153400024261503442696167169667653668275319930144059173572622620355163901950210101775282720937229832151829833608468224200179786348625807523579278557378040520245465415191558048516161782688253443663155459099743845488332982832887948886434823660636355242153929340635686238262027513696845741966141451151246144390965558912613231554817193381660782880177339289834432683128871915280331182649247725199480018814400935710583672018398812047949204230614835880026943986591434056022543240206511594245146085812375982627538020013537737250412421991264284897769357030487269800835197832109623798297342437561377278208900775906246556390624785740315835388115593794063149011320608259964883528104852966460282097996534432381469219924760722453698167254588986358707092974152795760405671184886396520753781674945705036557784392127859860387445619112358854216454071577424859525374444467549914832034681159298194109392340021010379247492789202438539848497964783750322270325332259902676106070830967545390085299404788311753587137028552458638648017945752488183482508069127463607696915452571361634932734691058556535057942784799940283785017700961739822669222458352472888924215756526074884159267049455329273555383950891692062420946321485296775095610200928505924773703651961181208451837675741450682828431629944197313945141673744601725958762593686427871453073259863754639867729673501026526704644352852776552354970313720331564675751517305347612010847301624588664091851391466064886110876056849855570399573159903791143965269460565407755206994564898451415993618503692103115445803778061303232388239318520898203084959502760649408932169269410384664945898602722018872339033815892197257570588379477381312985096224239317791250210321865607299679022429299624431753711286271566315637552820761104407167613983392605450093411294644892648224899478487569338973348111800734351837298622481522583102332149996065868536471004929502884977000611366130295944205120324123358608006175871651821498195114605455140131667654680282135531378020287054579890064984873206700955102723285440118751081000823222779128032315051023690335672980580696161446469686204312723334150423897729926681177984121028782974738468651514686975631450223305537783653116965438522487616143560365706264715279548578674267598572400527853128274695251942658211849919300773095534972831743390661713202357585067029901857997165474361678176042722554363166227459847765804328776279772592219900562995330283383860416983627233476254812500967747483052451528103268851758631697035293934268451395007703693795222071577410430099677157435800647160836603555473885976816077394833579262847627057120625925384735039203552485494503155437078754007675792676728224539222058715224990067999919711370085294502084476653972722198027643318481093317367169737747227451107368131826062074817356418254407066683286336796938647439887484745365513616190093945479348245558364802645435302796303026977668894426620710933315460713469181666443885365415634195611745379569562266825381408203090456246889758884814066464231820504971925906390856335303899063473267853977913730973810001284252811947500359593537086419455417026223813101578333645300511634560258706719693108261341070018086959618095008157512646542680384087522781060143886016490891130898921334898055085612682587473982972384159558918017473108709374939072153296636236514561152098128583349540555629892453666216231672978254214315587355147493685066772016947370543545408147212642044864224523468738138792137450088287192605719199680380299129297822709756277038974443314264966106266785859620298009765641514616834472179125502577076463495549440038264271552314255558796266627943739897870081432054906665690504700080676503764077368391547142584637118287035951603060295795557733979602431283028659537214337919778320934110871709280985494896451637040468113128389050507237156829291018640031035413218275729315319162308753857376807513456261940994596488824785561169266270956991791809545537963671030383189269314042979952173283179656842488276970058950971057932753458253200165354040120258306373708987873148132093301621820814048047035538138993850319226792547850884278858516637929614919452663722252791889099155796178725699850091230583575295005677250148018598655457449275197852210578031649006272643376740464157681521455057547150537804209878777290177450885506106812047382279745531384764682505074354160802435144792986497094973786969449670996639271050100789391457584706603746047406214720502740143821541508108346324639179520976111744398900037673124730720462090619023952688642994663036358057573826979407951656888486377535189690203148008491211011131501458980395680019841981460585907175300848237475734235630989057322963058029345863300797081828178204359118626311457946993543993785515742212463400003755537650482077936068013611659688972524568509248239407878632681726905615953910956393626711930591499764373874504724549046180692098635300443545166325650252464086706958979125861991081653805688454414644945578764581844443140277203144671246136643534365633347335942523325558684004221653859631184227230131154783826032940317128232126867664562081836192427537883370328689464087958828581343812478085161720077285794490458132173303845810995580288451921707795893848387155388606986509629173170589488191107431287056663270396755356532883248379443243926305186816552944989884628777326604426645173021359092764943956313209245351125646233606284442288979460498535325602612859130037388731912573121307541463026350763569841791616079501986924308900784742085536528647947987337113281584977217623440590751152042689972598420008086856048053880696784244335582285510381038008245302265800403494673980514974913718094054957101354343347642867329322755247212456654574494081766490687887988115716898543893765728604982284562239837226752766034139167445837971808531998829588391055344745854759065853212355683023039445259687664589645249356086307813926597886877052956358884350581121128062329316654272876831411194572192113391457616701803465580281965967973581167243987399198972570967451380258530434848792862985061933314019126503259182670559346489521290885479711035807671093464681639889814420791288800506947963446726391405366828508522205157211554950372563039309575444367433955248386462737847720690157229608993390552046150905623674055105253268714186002189503931773663149375813777282045377889429182199357266082902446644437613983818799407051448664439196835541031977667716847696998451349801888249127315280138770604267382728762685972938923704578330319404540815107474620075192704711197208340371120999526592894603527906051375888937409671377776941632883098136014927419373537121912860574634434414060853870216558101129263702593737395818767904567431656072265273232062050664702322377207064632377890785307677434599768678767272066241591974188501352856497448999897855908870871681664440590157577256237158980175407269532965029127777238952278027334908118514296780436925093059361008563615161736958021078957601607149455065981589677442784193564526819244596742422117455296249237969272002226284281030505397070234508270633905197977868547614909690002991904487310278608979084888278798272807173437872254614970431859236350107449753901625328985142964526655765172958513726525448539253548147645973837703143536793570875107590508899162761503712663857250568222256137247545472685362901137743956663472295153419986792372719131386492409888168327923938990214701994161391938679365474203963964329231603809966888805362782218061069401994762625533236120116777189328095718660151411404008576765000652905709588962013910224809817753534456224127162178092860399754481745182277606121008299966356344380581434892479859985316971353541665768943865684014430262203599635545762939234843136902074872973919951316449657312786113844947393942577857529757888402152526839567840909557445955501872873041122319930201847776032891944759364008523862168719642396548808103713501581610398709525703567033961614692298070592763700153398817147124925373809683835721360131316610073910366990320381886132418777131183127780863660282192683145955198574051875256970794817567555593834116880795745128557335275739694347854167362877096883587951530092358515224318651984851474036603368175693487692039429079348091282679267008804544168776479979857934599627872513968403219314877940568636516664424311817969248542107200763722151206993776043163055359989918888410289271714448639591934362031142497114621249791983281930812422949837270398375524506647827727900249113194574032488889565064745457733705374182934182086714981521267922715931894946624167490262947838640950521553737910741582242932859857006890878859222499473489213306471141174184100050250933469766500985639517546113391351821572156647042313239055289858032733585574818240067639693563468043704155980833157342351154758988120230652741053613019054709803493021014170704543680141685558773255372625636579044200775502598611046350357743458435768545945496267075693577807368376559381908541841312101236284455998245392118347953963780540448103429750381530545861557304570733957846772872059374874358711872831165157431841328338349305904531911213660960447254390458973301814193845872587834195513761371082287457785428830860876429608223330245030815012864932097134815836125761017470866868523865390797123224883893340692352842997278485852445661539851719952667629946364525602076229244058250858347400925890270622094576721709504723700596698627854771918400950389563918155702165791975541471680019870296134373320921894522405755437192020243376079558511196132095800310341063273368809837536701486276808121161993819753059779895609756562650043000177505720391832237686021337954624815962050072276855460309573789659673789920822561832340558020460400011691050705409650482058468484467252795107344657005179813784011404909067493528906501704692987246200904394053199461485791564074771205804116581199135740783426534665451937973293278926526946510879159520488370774997708013514178337187822597738259141272290314274911978917274045456540073661619204154449307212195329301876386967500390981524325153928141747860692198535807645656685549283224701819257620011314625810364551561620925189282129643561671552955090420609686860696834436946163890079976492226823590945427941710293700322591204809906377490105719089905478374652163913371818971926147194575340115078745876911249368423949163996627785376711505651326640965862577653581584949941569048301506578016922317721401928175730148858451143243277002148941925778795349612519054257828385620377264916248212937966542572576767498554510758010898130448469171934627095896011851446153919460192722812358474950614329033847220098627011875844767269368977701297725448168283254113843895298416554814732409079259341521028244011286421980545354092236480922807393538887323962746317376826536830634471019253154171707994350742457003367358696010087108562112642029136439101367717487855559870786361758399767277645128087001493749142096703410243916817922066206636542262268315587725763043777522332347897120969630562228047581618339640997771756380703916074534697008394567613847956322862206603350001275438496981505161462193170848261475868549061849163858248217410543184358852301464555315405266716700916213439792568430112647242519261029797813536370656758100088475916605019648018811301714261358203669449628226341704165115418671751189988565662619566951388462586179510193763147331790191436209456873854387135643363887755235051305728473642317151181850059673527463100114796547844071511593002785685371204953827990192505382084520041872322632803496967599457786735783382589809288183480240498204364988501333801677176342420800447914773300401451641113514881034298108642114690149711577271995769380252426960274381557224273350913151815125565235649138888689240954982876585761810519652188839591348380913472031726416841314809777672176162338737774630957287932690461482576252216502741779903283907289741160526026447716180688378510947010341088381317553220309552702349090340410866440352491412497543893170085404601399034832607280390588950415603240170202019573965793601225929118809432627416853346988827206502605206309044558697821622245006641798573984815349077434219065383199478697121808227733511110463153168440906696318980875438219042822427279105856492603272925527507083960379998938551129551778217704149817673035235083062730910651428999750887519325667249650967041306830079304568143528461724520670338396791167564950181034198725762597754430763146950937485299588867704096374111843167936709078854036898449062974846892184248214757871021517237129795098269664749726001926071676967580938478500414025451971599853228725948811461013852621208815077518583888089336016281304058884295457128368275902823049464632063896054365164752852937938427976412996342731033252336849728778532032320825182576601614233957953464557191699551177643670041481586803849984554461152852401325312387508311424378069686888514475331435585208630073535536438214370631891471890177947770783078398672085234374805543974178376378211997436327954878153897392602827245075926433257164128993670682388151253692731212979486924428805159042110473220776998647847597479044567539997234498940277003596234585919286751721705692461965357753779641248894490841631340082810342623284076374805351498594266819715843732319280270131915677706585022147053653687840264626695298295616406499009279526582994720626594955427490381581266049424983167731928496355550745749859723124839444282644495730255125968104615346799443628904773866320101527072028491945289816370418038963654189508839939831621058737316747099209016122254645552319523882917465662719920655815578244844442019722403804499041357086238178753061731444195932830721148963587058736290953250664411418213186593916926620466851056168597002264789730224822558725796912109560002951872143243064949033957887236039369698141656587275942934777684450939976136215553382109742867274643466098324438867848838281934563104186818629035281479568197540361462219071739462089371882790164717332497662949923873431759036387435177535414692777737229080242346355085952293631074413765034100342562753159837201932440022955426801650410155171552003257524571625830751323397603053566721106870354518168299029724905035177923755664152410352688264197795008164441789866757944702064017344663553285843191370445275806347390011735023779284043281588831610733288303277604695862976979623001522502148228951246860796710337242598840230824020565706496318414437101868385855631909572195071176165873951803879427794946805573073307862590015976761009224354933137996188754022656328485785444205091420298871935011386589156929786733138662822071693073582313287654999190651832270198918866559045156006096540709275055525369886165979202716606406266967947811445039180845200433322534279605275174666838455124700133309832738122090914575027371366291773537819260214210439217824405108337162943167562723323145023110480171318467194437984473776131935757453921608010097136518413425353950831515379191433187349176550015317711686459530115486693192648408523328717844046806004700329059956692923664960331288365000722851422611530591029447121071201430751070906160306826778252701610172393567510061265499535615083117687396098316535633166642075680942633746820780440767632921329610890576702138522830524479899954348640646102828067891458063146471800157556923363600416236989144935387447815928780002435241549346235104783483167851812320049302104249259419477262089181716680854738155640047844544168833718559970816857492141677340098643922786613730248271815098882667327972881596769783874110395241861887919578840159350200623047240822933124935755523447431104254450768175116520269842942809328314692740559477639329926571115343496090722873298712745797337619973146132715640638130985259484514031906116114240954033110909097998004959418943799851575558278363423745076621834803588580042689770892912922774108908252672799513478355377486241871425309313385525673132173870424182443193229566095237682519711854234886432209445775097559667850496419310694236406993492913116582200597265926137901380675359042398307961240899407905042444689628473860464760185263675880424285161936261258641977588867944774841479433395821875477001820947081016335147098430327878825869865421261391892649487436569372296389657338009358972008842259194034942179553842849928461125353386883748940091273815011071321807604264569237796895159113807860882180599931765491839166165784844473625112030746183935520454261844612638417280454057313778742371330008893787019228227571441074102118463737345244205102033277410175466444154198618273513505408764207952126793230366307171993187715149383991796867994528464537016848241070197059573834270448368910687000493041618471293585159447159984191607030310238804293029844725121736131355557669818969068403277526237990351226283751476501313758344578915694680926273387937530003617076687489743122529318358279838461280969859833646440179680857664268463055343192319819218770962330606117220836032052895337098803662600598938671959358813145577479010413204264253183620718635543398641455076257174948144974931723450873699802190773968294071653239139544116062216973491474793585961742776472302639906781869432840090737161741595728505104452599630125782570025008447730611590463924846622038493293324325946619713597517641095769940505018381860493085238228159898690580449425151591577876409576025550742851456152066495008575645052269829207977936869010409502834427636753945955315012249977497213704151819098284869121457908056307285199898949917459896513987699397064950553445240749956355151959895014905736572663138514296593278139961807303217450365696172627871306970097381068205053297581544598982205320776000966440120180198336575390277832934051740059647912900665007485720673036866961564244750769915054737729807701603583457884760856211056625026866451509032173366944413298482137897659553473684312658348008299150560636932496536387900844230925940775785547437143236757268246725641651125407630724604811388374755569104528425827870834118472536579298361082354863708159823501159448803721801289059790218077891862487231412118223616001785944777925155105844435212259523917639945995901211208228396024808343275050141495998645867017505209094617137888234124104302260766197139659774907134196531110746323186428453335559662125042033823728102680881630301830130832504310783762309363265503966670148903852229297034243920605369439986548119097945687060997704636795128807104997314982729633186667702294036716045014626389537258566948722074987949168794104500404894375548219405655802224268656332278044476276918112487245905746026167341551778483982423667491205884460352360775233285201526679805768775449275143662117688957453885690088921900062122979220425844727509604831314665779285008939994830469492056388756866297124744681485485720021516851615938382176607050445664170899593387614884383114919047812746911503944635979069254031203804189965723327191233796881148897175753062416554848505583269239094209840848901459908486828537875811563277405060873640140566042904119499872291496383527158241675552709507123732115316838871119431199644604447680541611344731457430887466400161643268791564323515080308974646187905787025116372125766586664548285326927603331576121573044497466801262406817171656931352306290426502288226629991175217047840713295941926256987072885030275743861186961095002684777629964899956401893439620459046792688798155427815289808334280344559078697305080016116365678867147571862126449311754892050868298241389992781307152266415761931041824674351184027191946192005824997697447205622721804143088305915277382839356533884959073087852677872011751356595007931650805826960561371675845909046616512211351866337315868592476168908805585269652818176394902240479019832924136768310257377374250241083987992583682475937970939973811953074175247116324582491847944523167917871621890091378210619126785716352662261994959256226411883650138921982330611475640581621546365153904188318566842566811317938342540694759491107348865370811784091016628850147822457132660627061611281042918830183695920668158943768496338583494074404637665249586031242489618430040016048092458785799011798224623151861538100240696399854438508767540921890797619776475323635392940696886697856172790315801718975043609733143053390837318255470917316549100116150007413966847604228915757663957131811094691390335237495410191494255821396729506868901176633831653942110201186265135544741505002113638439362883032458432447602161075549377357476682616510698455378210168777057179665822065244331988816538350007700782365905111053017028402963418440116109444895809327220765084393675364064212869820607092551463519127996735709248535287286616132188262066971414706085102978941181410443131274467112413444991895593163434023527152100514460803868736200746685948451744453244272275315053727716306684890361946001737320983922843251336729100934306905787324814557919129528735825516566359065629651316003955634450612284596151769633598834858773544005864430632637782037756725966213369089577576377559416333056570126778832684961701532909910999164576705549236212958369976120243527421521891345611099294368274886087101385235900295613833390478774625631561198054246644526472053724927471084669916727402792476011832383337120789167826067420633688541754430030331065742772207637817270488092887308943627657140125931154927666110011174157248401738797610325989242837426306946025046567483017544668902716516768304097489348358697492655136481197129523613867769097265730410720581761010226442268408709435064580309363410059228521598833573941908147550936532587915195794103281471793360647024969761508864689198629880364650857181490060219898369682220142792757471223741057826857320506230542725824970795794446910458784689301936115842357704295085144627719348553532972405516654297177591776702853354533392101696168746398147248236638340254510815551654370356005005247643310614939540652281871909648908509160303653560757900627527934819793595496603546194339480924527147890194722098072670033209878333633243036843320971733369235481835044611860568892260188270087972124700229649107612438603406966245861219379320695510890585212106818061380767611694436960125249603748677888655396141684196974464429231771038849335365140331938201254653755165869065305547971710067743294773931207181727953236353156012794357640811375676426121690201031595608606624908561588134826423136004295072528471961296266189772548239006478146229187077196341067067713468209731211954030291464597907639315273032956226304153286926158661858176459016949605307904991072133822057304395297607534153404080429510031523703750315481164688942763225323843861829634532882431776996186797128772075038223989219982852255091743468119656233194369064215612806757814240945071010154304400421954945840857244248411855415035976684131752309291249615657911375607693693640458932693809492188668754239910178613205855353144864086853857929063583563592365752321391571521569027674778451312239242048753648020083480527698506367577756493832741103067377201087059077270077188884349972527854275949358608585804944562637978419150121708956110180572263441846580329608960220787401910644144907716913740097006282103606315155832845037591264424634474909979297120874659929462343796437484447027703404093263570385177665153845722149478641288517049436363450141632831354720707232363217071432575149318183643845195911367200016242430444168233378866449762786672729196624590865796373777512672862778995762364345537312465276260127571452561072285008821319694461973047450385308401404099492923777940692849260445731228285727957351531584689920049539702289909570590257395746534160750204733211999024841841853363582676856867349307742780909553761823556438048886259581747920512885324557103553815064870106889431529906670243354580610502042454461374598680518616072508236061949543695662120973650627924737747594792174266889454674126031201460142821489610303110927981695841699252770433333052378999863559563211675333723806183477922373348569157038733039809091023732782474031049930280036844735882146354384445034137902767661902533930553865780565088626724816596076012526803212042920768682669345012445778435621114325686356851638818869551680885097121341145416511381689327766282763093129675830335130528155800391383934906301095638613016995596594786134307432484882692760782219618251357672896116768200368319062064644290955228526289142128316137718254791388047990607319499584226032867249733141415789771210228604097612587489580875401247537005985298518352649018965928277905760314715040119567929993927240741056233731795573023594150745770956089258480953852007003098599298474776468088356934420376128709500554194163424141921700096509186658654957666298251033339862310425471267272837643620281529320657126700282324737567980945178034914128979146861088938766872677794692062720389420501174764507762622679691321797796624683733939096576281208137570337724474131426581569018794480681128615059300742478654867642037979710504401932599470319249464799950891231005783890525184457079182448767107447899688541921650338915160569542470799061675776534990309042240736765962825177142844643093316087054072208331488247157099531975289160246482230486173538555143062260555629733171376050595281111261158779683108840549111059014225895944490678784904665056660537757761017815936191046573560457013864957746525369347848683074088341606514166869718731301458495254278406009263231285909527321784808192940892081229230248414452732405120222484708910979489460841751703013465732813480379896097599322793989923905290891869419811806748582509929256967498145749411217635776948822089585873811255229028635747045370509415058294417822566239944154660832628139461465877998739483449183918901827935939193644665593975125222795122586557893324101731157336068680432756763715393490902485860781992842985836138381340610073933684201462154862697673885329581678567270862015309901403091408591649329625676515656042832865510741163671566528654655547582321027617012535882273369413058126946829185247571146344625039138870663915344356527917121312905187943115316477197586777408866569152765866164098090139650357470242544166709572928117552149492135418939866901124534010754071177775516179350414971451252920925255263299911353235288211231935561055580040799918386157504738977719118823581157020426469958501418579247201114554070591062378972549941763112285405421756112857285783176442746067268631602367063375143629784978958254419231552233993241673074632560478146435970014848895913749743598949928418357478083559875189766143745163054242971981325417436207340968453955392219030417729785630406650478435222379440087177623438969322633550163787653140393761481231183146242619418931834083607904888653585722892636044762918341639143737199008436812045045013978395811191462360994409313514183990346149701316860089257919422858328284184318126772448827769438095820761192738648586733977169033129823147658139311603103661486780338472571856825443789105803302986139128297427544341091706112566887424816670656625956780825350502364778756683208258569107056714009827503484962991584385354731744468508785491056528374788764522119988343692026461024469151785102105268114696353204721550757967397937068467239862887777964378341639484398421905945879998746350707517200537193022350786386184485546164776448831223731564689192799642472944918786492994672038400446882758815017928436242047697274865755760831621718495654801238290639838704953004152229753448813803551877601021603918097865649573042553190640144040862149008775977788412003284308424903903154499834205258664047845440497239962385667903555710071360259765764345739399163734090606556979657573081222137181521796368127988105308487528603241583373125964792146596475808833130231163473375068191265757136517850241524130864780519871056445113910928748489798093030855799478418023583719814650166337939662301559823726656700547813550286406548526269113418576488164217085717582829738001799588271667446106628189212264866346767929612342260428329300417935678223118153272484767888730983302283268393645366335630073807726562899773549463606395478462143997973534405663853716166146130705759979553464976559686218836367925540360284800982256939569769325469764718056598337587709900451001195660244570408579874144268102922694852024156081040337923589790429960702292294035802339464015477040196305418312536082355590284289362380515498949040718471508931441640611451277673905088254772888154517942818087016432708946580631181043600608338841702403611739123163886047473937979098488041057272041828858911155475289757330563296519007924448196115889985123847038545851213351689091699064118514394790882676041312832015932917394073335226892520496317605296465020210258652342384876230534935527343271788719694145269587907075551050290722067512108292007335623026993338525166911833565583716316234751060962918362142770252731510522419054445493601834962833300451539349122455764129552204947368403687638904251548041092386684610479301008730573316342823896568527709881285684892559600659451858181896875689633287911637585126839501666878089820057401459238773288179471208534514598019406469786378493723761494000563695019837444887911979897200147531943568917683041015623862231799882069548773373939208600136023204325474547437535183130762419310146777143666429758107047815396174591864914236222947970761127639159622869736682135106476039216144596151977333267117689881893759731612004919765486638105514414643363147487383265126765714914579544002456999841702113282589849305150442086981048991998943852589116078269270921978741216990061593290045890418797021088817147886071711039771117241433372860568505378557845739687727735258267867304966204531654418362590696380143025074983357231088425755026938356139349648091112135683109559851180755638998350732253303674097945559600804116577651356503641249277093057553407715068925035706997710643031100355368696508889441956507121385079725611367246959259225471956032178155514872844473737530203759427472986843732650318344548413309775543678595365767346912280597290151183963873950723176927182102759019849493675113817303369094756728555136820125698902323035565579490133491019080827613846764507945135553742901729567492991341719642904031585742816080615375850797845087646318622108298480427363932079189630613128667103353243412765164103547430790035606882146974315417413133068266308273832624763338206215947076094690441249565217972248947702402601839157374344788545890240986178417254588553973317779534821941344740864431750249105570194425897184489735095940269285873774164429047008559797279816858978202663278576464712828695242257191878597238066645398736892082237856200249486094359315753197480971668863781455930842925504851557698381873307800707363349584193102743094405390076137526763366810025139978795358185540558180781196971800714351050231762642874204967395111558203453864346729581073707336264708042227281330455127826642673400672208432819626877933690010803954577355131617314993092415354271563754104263042771906645636683868508153405785720613244568305596029017868135596453944224889423953991502015929634571475877385547481159487427163690919720271138361084016271122398864925651713084062642601327910487350115048253431299898920055405954563766333198781055786113714709401347346724112263216048847134838052439705340232472802927979406187196583588112853803664318455300215936676749994032254932468185067822021921962804454441504658806817516484136015071520896980964909591815103534324441076709590626355804218462218580537243679333997713437290924243950103094523960503783927383178066683136049509700599303133635516781476026205422956887976664238603983828980608414072065739377107341390537126855636967732785326325898895457716089587346071641788030321236674008782754859230024110733124251478285322045962961878351344578351346112281557592463633624577477244765040870851207481700474592930432457226293436105697978694289788881238126630288844615075628258932162786222958923764962885129054602560472865683914411905696503293068896472456239121075674846126112730781515071027487634628297633945108302056135854109974512934827913503686817774654407028243535855095650061819747487269185449238309282742396406775383048671625689665978129865235969854301215007430384530170838200279090297776392872380605566807802584278262057301171370754725002888466258118366288295467794683011382791319383589743544691039025512159523516614698582154295143720639347869731978162362928848097899683733829168489439826577552734708155098675736944598319751699356885882505408231789613848936276552042059362827041154225063215972284806057004936231964405481741065579615685551502967581336632063156910901590295270551538611896325706428106807122919140213947497337006057337657138359187159359508969076608871371374306411023321659683938561467095364984954696384003694161746789153964630238668167112681330232612325124429395494347195041869662172721206631314372697266068784179344338839763661710636111803532738865619939777337308317791147602634488108689374556578433994021281410094239364410375795333980404789093710712097576397006827197447461172846540990737239723700627464215090776559369370848365782924825815485704573864264508833824839184994346393319550681729666897044758212681590874525418287440969783542066338071988684011507543730504418001941637803819095099472157750963499508540184366153288823616554956798341919919069338850894115773354583609809434152638450029787926548686884919584992582782819438220140617295506921699317518573091785236491729274207586296277375027435390856785123255721686612754133147070231275961558611598360593846013587090080224926269002659062415121360899560608272435621004222253885643941130257331312526220751536919397962167087122048363641349519907055256062236095494399734751455439196692838604861132065178348716583141649930572081604947579432551326013998882250074192906777795152076271705981295854788057997399313093374246466466070738647800319378496151806433399599614358553862671982738729207789188035038813586688883996578067047762924513093201270954132542911858045362323707322705804632056873587171589926896674006129106946279815870335509552761477471655760898576206160740021306749046888763779964030550983195892985352941405503500563372898177746495057611285588091421987006142939836413200130159306685173993436106361667485695419932568086122476804409413899368402055083412086472820535860807978195590593725686164061761504754890584722211051799356173598747690324429695303729328997093647862047747837501559318437298565807407243119170037859232536171899673101267456433878540276891828369160885861936585751329858524559565549994157166127744081237614296331491191636906985583254099047208988825771925481974121853303233050579767322915146683139302970755137435086827760520861700964681242951878758735448306872680990906593734123154538422099594893349925752436217055397667653909448684080539281714416453250079436621742742756489286473170443262445359290920602451203214999549467515987540370812468018204500526456139432120884444385544981803010341237410582096229763047175488340349871492883043935760952357651306941605357886706477900671354725437945789195997317538836141019732574169376960714626633928094577369229899820364690097260520792731276808145284147847281220336970518418424922517684687843734041885980037770364892646973825288472272441323831834452383764358121592772825528788943667951154963871481301713372908913162650472479139341738317099726245677969921911986492669248995410075699964699096033096687957362877151189095977317092003055435385086511042993145212748880520296289497777403936408689931649745439283018271858112497102283882744278023863159888603586462497999844365317197518154850828192391124068308782887024197772661869665909105725565682573375304003253425113356935392780889852416942143723158109512920765521480657455106043529058656353905504022514558558471580900615471318692786567142946469598123167772463534483083271672484351546848579945446973748737125557733735929896129057210875428834977677575612296917366945949612560315698524311212344044494485978098809661896402428293197624929938417824506418141828930962586723570091040601112938488257275351204223621033506656513379398206806023877579855168423984996740605993177988164668360950217917628113085304017226402971348658527248435353285022239379229987332245299899599386851260561638232548413500290692873736517439954128643037981461530775178554712156207146234919577106021434575964192834279313656346890404781275899276568445090337035891362060950396785995302865036888017680146376519294500510409888174306416884790586995059506597154471625530748656038078968572119447174001493617101509943015176436245914080882435692423506371213303872810965258672977080176662847755093705575735695533920941643242690583560748766012244616123009316544824386783108531987512785321017412651610405077123323065722894950284241008055710454763711751447061046740296393902787368285322682200177928594877624221591401084418333121111259685095109517736158758142569210292341603043630036612381523806081178176114739608083232799630135079730375882373656730342582030392394384533583215315573987290876952394209080560649519355041729325924609253434294187478460288946258630758042188985603327362184141106594711011626270557702749122177379244545800111721336920401646963800298143373719095167561650648112088934603097054145091640081826295521907550650457518057054808993802572266375038134001683246653332912975877958338587919576372242493747363799324223061091870440494154045179811866722260376286085524422388413474926015860725984266270099841704134774671980850709290476341078516149153190827020761685195576686524711854255274802399709639410965814827783552970176628779939230067533685448369489655139936602328829857879045584855891236525555354151568113059683981280979980307052503180410736615377653005730231437584338495110645760596115953030533297056077878258491816566860743868938531339005154147095153508821782042939491740921314895538544422938051913425331440034642983458278043911167768519441301257418321741230696440338550388636200232524465393777676584557552762771880451541301986374703247769525408036404028361883587637262642175256224490553938917688668367248187066539492843204961236997227849469992808238368143409469201656192214930733291263234802860342958584892150389590987871535377928757589919311833409413212569576997629603907845324098092120593845499259096807078516674707301567980967042824856083972314795898245822360908152705318518426800516586444436540428848048496211151926285639737671461060862601119727827934917208734749007249139700537025093845681488994575994290329231067917716604714611578742487402996501443251141651099889364074451088409732179911543413556243810818386459191745282966493992497802551222046662748831534525288257191553115888877933762890288147783292608113946330926428275687999825143148969104108695268771436032969581082522078677488864386777056720487568102190781276532301530634841861597214205445416789910676786774512971397379089588785845047891411430337841558105228163533860149027681797945691764038231187844517387225288326334172999768740217423052063869375527729333251507366259813755772093266216450471874419853721711906048864500850786533107049840459980099906208017691823653575917679315856155814685409906493375948214659813454127362868660977170872122889872185466236335578138403378338850426157700923963290260155194799800202820720776887486412024127339908462254537036209235022912614580563644226826576228682251187470103896327389709291091432817187512079250685776015820354405724082579862009043109443388490446177870627575394200526591766209396579063207832981977947275810693346342688551406687870248853490099873661637972388466211579539590262151344071456306872316032022570221930613382310188404011468844791499453449507293061888206401635486932923458652427427231664341412035559765634380206607952931064505638551172742673378924756945451079700174874190050815611078776896670346367938834361078904320012449564638555277050490438740532556155923258067612096700288547396250710009569420797131735382368921630629992145900218433381638638711645429692124874907559850009579666213975048005825549238668071333355813330460008729027442758843586681747829895497696144235278577067410467361280896393115137233093470189493461696078965489527033474173218787707689532295666923052140391852430433146176868879488502947300180056617705435628719900800998554304304721866728778463125911559825762099945040291036829730972672340524818167200480014691227720122880562193801688670230360610211703053109610555973521299645985876511009063154201643025322367058338284034283036589030964493371161512150837616421763038994349133971895698509213431669542166942046728498752963412422049132056190199180819229164452645174680737543684414586978742051862023676750969530087526969794084941509377319894806295404430010177093419481098026017641792425140486864228990425562464964807874859071237620589173003158814742406461692485307933096588045072661625585065694393869524540396468289656678755012050481707595558894893743561916113655505002485526145472794455317315056805145960224870191812874677100450583867873813060459434500211568700124018522016166016518521033227634400216117774238893485282391499736714890688646734834392911403585896640760578682790798927482068439687924028068020804863560787032983912777007799606809049515537694067971984555184438871793082742339458949108330330376450399963393886583676152835260176378607676263109175326208028199467020505282977933811837211647104841224575492882148151151477963151715745367288486156548925161967052711541283159437832583697349111948171365665375563659175347570384802442064396338729170168395895110344374296135979731643991927914220844790389484370990653829710772476090296660582461669925139199376652459397768044742112455822923414486108870025082165161949482005367873467495259527280617558368424342604579052119994243309836291431543324099433739310068157655703360867653793367802014937348138319504492828286620709402100869930764692021105286370228541809543800398808515133847683508071587406848398834636315898841925518749701869399634917512365238614929067761302753040679598693523481853001930515823942831175259260511870046234927879997953855290041634092392423705150100901896066535625218447097033682827518187337993877690168666721803751220888930462813375162577714051899048530010657610759363488868758895934778555930684777407823667399838499354402102922010389025702604456796936855789281980308460155015747237826655061796153666574080592711141988840675506365459461584922718334309162507430550210335055972827385157484733468779916119265838124612231328572042084781198092703007269209654793290260724489355327150382673815593357555964675904044895258602342601187061606425487796691841332803446626820221838902787416392444597737057918039353445126831646710727370026926524447614241066838035004104091798007880706839408714549016953944948856628815442844843798247938371436486087531649797737440465112017646257893262243238867674314480346190497102265408084156339455869486270049592028981901154913415160630212353378899872779126385916959743571133975229525121605726453599295402076898073403768670355223989249892245900961112216983361834477654263052008869642773788627790882010507478669986875976297723204770870339286460465698477849105104999567744391639151937421822435038377103983312384100425214659967115995618531405733773936853522428967875218315629341919620208037903109177088843089183621436369642151653842287886976295000677409850428800811334568175574497139252401598653376048407104092510531524890024290056561328359045409755544309620366369678629699130536186783355831280524932207275290250187402738934173352710531741943919359821427623872282849533541840157580097421915627702361210796473910310762955594767923928667116665914917078133936726709141141504764759997877441618515471207175032314418963256349478523631350145316420911185392357423422898689579007595803436481442560942099755073148079588427464865790928153624490909711911228833706005045589326768242413078247662390748505755414185853746814413723925877980182359626588033807295141770727692863003974946641437511720115913158225423967909183457208549963179385826645745284518150954967208913493673055150690846826420767081569150974743248002769098007267836139272189472170511283013135771689395137536864564561362445978486150280789548617948848501093841472348309909535245637539923367698877166152147560262999645851824525695862590597205659060124126898515575252447054787227207317971468351058843498702903697647890546198137007374776962686813680694307345628501862318134370920173170013826145246020460404107779642885546170235203724427645189778201683709130314299405128729157844353640648033232889975557745435960828822015507141270311454966871710992838292011745375795042065209522808781005197324550797379176868205030409061575377883734019268288738980548726144485572648042549443602124582436752962908097283038680465017046772329998955432640937095359787326202558337408193337005291806566560631045234842642279830322641821241826286728723002118814832709293075443624375762116968130713955598621277731956026201124042985747697369877135352094033018936526572800962611156948586152254701440454606144501535866335075972008243929195449252024574844502098701107980320546069417730305464710809869167534139456779357265808830112467392201026674602745302914760397480035433948449548052688759624686598519995529007884989407632600143408344984093698794428588801773544148459468554767426858327685568649419541065919052954228892701989502603599563886213811692005577132576960153217163260443667771431681461841626681808425386955303066979487916433524679801194914158467321590031369068213837407240597039683788887333854188364400335117408985523831843340946513589740690946210549151454771590144572862783262060814485166384064495612608847982873064838180738515744926260183083018780716823494894603850472235778060197267471450164791526728947296407320560735627956212083502407973577998022302374577608744137512854654399181663743048964841203252134586683096892328726398573208348367938184748900390872171028883996699582863363646971220459140061952680198860885647428195910888982299340627746727956444798891862938340898305827576679167145864500208655720282108161050593178046550592995019440301701990058494852760437591781393873369725903589956367197329505209074048375556114721582004101994014238648598503673443728044738088860644070730372930906796845201253429243476114981397952086746636954521683606656875734517285714110359599569966373530402782570277151826316623250380694455311102617071594648103111551728126118356770956377897517921089641476893118395394989415629920303079069915460219067499751858092172166717699810962706057736809121048885381147914311237079631447783411092442987117645923024909139378215697862930007342944850667098662300090207699470086943004314986410523923131986723958069964068940078511478950721017264743246877277887088787676649298653954485254416846677113600061047554882008713564795243106894645874179026332085574127313195104057309105595165015398588767108470761220790728466510900860080750182962610995901192192557416207400435585485483099792008152995044492942799013765279793294866907054548885661468737090203135367509795093835025885177351082526964577574167742508100770976113082908945953181836313793744276030537131067736416332921633754526503141846658784298932903975398596172569973256468018230163050893967782829642344628878025977269410106859060378730065816170501847838654241243550792057320969727815733256797382835120996523415882480442902984150442735543566015518778781384619170021092313662065440797399069933708983460583641580815979094633766512271862468381206249498289810971648483656952721878485924684490628330483758181497204177759825813267199017917850765584508966725828468350622929480691510277831358772643670880792685219367944941623509012844104801781248367765287156436528011071871901686558818381279392390565972082235086989709231605390606077077485786563700968758411555872907320790421335565380925760743056735517137680772079304474951440767113551192704231218851065542105785184316978361189814080273073463147207903069494815135032355648591908404324864667511998823850814563368872189437590855356761259088744281623523643825371457840521320242372817326621812577435689061339670172668399300411224395061946762731604374760589471948817722203817988463797398699738303868378658080884123200696667356941340731748567011983699338997947869684789760832734933394602595268585095641802554664054889061462000387059893470027919783826777965638708429666307431204340364558351089062438107502402840122101068781976625124664177598193050728191245303837803414112429201732322951955754073681672202719303913773383835220895895527900378660240749422097292068553358068139144299954714904142564390447764831280514108241840484909556849821409229265543521247125455468305125972217939625031680453225429323406793365470300795982295260557402857813344705742440032091186582940905073566479082794424711993519766633769539959610759546478735175454059027359336919140316850290047517451351275343757408305608513405068265797030174444331837955193794858093498729740767148776111688111636281381270855885393905837504867047132079864121388349516208498161831405761586550401492159020617716689253683321448166829291990423163410290418923689272666797833821430023786649753465301249378815578083691268932908829782943514360955555221912685840566781581489815020612531043390967994799854590678910653494325417519757062423665250916936310293340884643581581870343717594332668367862018034738121449655523659554406981396817718557490873310416392900201789226964608354015182339079354560694885448048576511814026331640613198986760494051431743737953227969357751382741867685885294914984918564048235375591775550145914998822397396776927193796912834687128297774888048301167033928448137672252604903039729342450094401840450754108712469310105976197682252998966644384741244210541079205907651713821234659494594925620659906218494681858408786355356921943175986996830733420532288917625318681093526606268925867399948427407036613702022227034817365222143732089443395969072152090896658524672875183819269384756110864414378324314244482772200432818912586664454821600390383453038169053513039418519089015198904654494431349054181931778001405615817934566638296327811578668637883946754118687253383115870546851770181755291399753734677009303238701764608524401971904084162508200016370090748336415286734005436567050506674411866704812823616221499111265619240344347551720314329099115420503113715489081775396588719100336809568212137554148764256924743740930923150828348620103547136493298129742271901680432897784768781922531162270768079836450749326652182070879066631090393475211254601413557350509027813724555236806336486546033425128887968367571592138791437274985165862509778101066359486395631180507999938270845104270467385532194470413369576317506892094900962371911803686659932507239385129259204474783241332792251271723281040584448477993536726273619081407680072809598332878440404616115215004281060187546292798298661455855952804299640009179725551235528680313169921597763365214662698027482223892819304000684767034705840650711246773493371914444276651014066487714561898220700123774361540677481823911356204969967978095073464962839451332282613349794591794030174578088496617394782194150447461315472645659121786888876897775511955675022694616132093470605584962463351394455678487152512180788754806155409505643877113689702171494316276621861528489203020434972708186975307356226862448487681330940725117223276142282171495070727021574694355132435133896755879724222623780604422680535542291813592020456377643085725129714267775084518754901310041609082998157637083638651844136256773152696439818284995551243698362714606582295693131150472862107967069887970058965157874010069366867098037529617913557384841913673921522902977565784326235645299486133957019776165341129928964705203714836533554771524448373910417077612532386271600750725093470126701959755380059446458604773220275017140511426679115835124347227500886577296344926746400385643581658544875584606784030043700545795864212662382284562390973043401209108637552248512424381219871753476885222736490460323376764896651554759620915909072158546300398997938459451518277641995872518629977100612774344228974389788042693868189341323963468512232348738954775738615018187876144572795435926058775665192782843910353688907656767842026964846395158863791935350161023207506261685558698470736219439714738238319133311130998918987026571103295649740848149969051223065284937204427170588426654368832025208594869412797615798720346850822182565229588942428548786115310728454965335040242604984520763705264709437027246593281435766493173235342835813937906083810713720245624923215439084070441937021374856891583024628807813644845735376567079343764139328268269863011376928457716212890794735980729083151115064263646291988502194484432605646758787617491318649002514316288875588885076697753421190351361086091689022373205999870289997268448502461240505767348393012584453128679429775286852975534966018570525181575308405813562182093857238271595820591727487949381734851974045042419656920538996376396326468901419389631157705593012666353790147381120610091324647680474847670495056240078250576035164320684572663615540803758952085381275126575796796967458167920930168073606754446943237384108283926389447774301360620955109229928211690617739027626424463796257814252740510768224026048627378469287067029699910189217697469902858272081249474527309544490593717613114608130420596746439552491778212244766168165133828972311752244084584347530973147708410625676312632741238015216308306716024144037545285471600581266063066680879304040421560470737473314541349617780646549544560829516357535706255999136895198717004708011259700739496378219878607137239829954649307121538129056083579135688381573967667665107912934405295893562283871312549391506382068317424386950674976984796495619449756641653036538349093689570972376168533223723393588840824608116373819808424366652200798591622328519547220907846382742918756473615451353382218549821572045659446315967804296987014861204208656041082609252768724281141547739045304678565019071500857076118059168463204437967231028576026634253056805203094242905864058054438664198319538576594174835895618673690943633928126629158751277278462612695643699434798640309694267257318465145093208034281021542000276734038024979912083552221993661277104357574018229034962206330112060356973365881206213890082320956985782532861016971699952896725290181253160423681049520328040303053660180610521029389572762480849292031582109648325248596926765591773902742651923923197274646701564569810606661415542918991253853753470489321622231566171626316405871883030325883147195984249282831357652034501972324003125909505899916500706071789074101168993608715469435330322960220936687436611949769596126415816522583891937053517129864370973095898303688064394278510379596396181771585176995135888424455790245031584798883347918902557665133820657953855831768836890044601294472497635262708423532472642630293360472515050945475622000190934956792029495927471175904657154645090758025429669786341362237004617439413628305737232640681236097868828483219745267015104798014274952700147083172786330399680610173251381494536715573912788070201328123083909325259316760387117505292222236413924230315875580302453938080194298443075051475039402538322130779406441700687713232938106541125275255854555757698404008644390163326951575085530461825790195915102225200012283635840968384885628154186892954145694890566801523509689610821103843070607611855789879552599011828058679928855291534651012326226694257693764130387737602937543151657955744433362662385021080342451815200400162784516583712204257670594554039923096726393841344365743270181814664515435434560547611107778125466255368312363888929123867803702795263964801797169130187881962015566761580131116302337307649116476996451511797526279406671042540996105275677251995993556995464219366666735653043351428459288265514282647139369231456934364065888864755231635469111449861485807241700575409218318232479300386418952137198468565264800185237413063428464578956350573367105200018512640621973167957138313694238739026945713343536660221425007905324355197809600458137672928662848021247230192759833248270765452850717715124251698697285113774655019048901000910994159449497668165314735896956279445622476622720306515578695028058676121421398689994189059315723291549550205973983095181075123632203583037950247218494902286261915419604555985014764065679697073764095407264629053228583267212002766928933180635855994054980577195665093625023286803704436981436457983075122164791836255071902372181981310093829103633759969053589637593510145765683441018854055992379600333480765209898982726499022077590456522233203939315086970355900833245235441181567097989849255502936331343792952699336825101030611228601433001450558136369184306851048083421816590248720190392689712551628229347006920623304940150425371292491153749014274354351249144197118274265376345945451074307174172571775149750484995983324226083775338120022296132691339321596071864518313927440723924715037262868269703440294788444985696722552279908817048261029271432621211284265871978120717064106051459297962414904567988612768694743873577440811008657373718653580425037621030331503552495122681666949016365002906435914921773055375580548665422038600206759869578407634535223778759336514848294843300607277649831070793002157798560792785772593688080513771834972276808679974990780821672680649649915930027534000054539281803262200702945209231958378310093045996027450086484356443655807025110737953933266479353268190934445830204456978265160984546580517872860167107597510518097461774504095018510888596147445929478523292854784524636229873279598053313249120507625894223753192571472554632816458563583322518560862514874315669479847287258177701416046195890078271607048569543705581427458964864777725513258110520662991802273758994142197947414947220562182787057800971414797456732436754910393608410725185575277814137718747525247276856094320386361938261382868239826070524547183117195312891378286054692153927941830487637519714474850551669685142504328250613169059598571261308905403493364887902362724059676938203535077800342385977325010308905391075298777340485561282226750967320792899846994900675446201899715472628968654222356333482821047609391920177414142640995506518395580325482676331280698764137917192741140413207250631440669798668956212472087427621890443801694930995817720512753778483235702437389327607311183092265892294905201984041525082915570468666561440884724010930409193678280017604103951463664335335059828141741966825064120507168811796342109101144558649145980306968357797979114094925260417075212608817046849681198218392237105084330146624666520081544235671441685892661432753417240411980596069321896007794568182556941253632496228793054896782247900605308552451844936168463998320592902313449703736376961205932732603389578772171216797089921129279634902082223538274672026714817559327216108607242120534960428064927310792407833939637564099700684395300546997724073578342465890244061420877700158712019822145109808971446843867989656263485734936301559006030963813205717294717131033759249571987977453884855828742240192320820751395420247660777385730171002926079603910226409817777095993446042937832094253212877945319613406171384682702141462571740160651181977823455278000808801044552393409208887076070276066759518046808522474122334655029012658366372314493677109624803408889013238115899146759054898985830383439773406368160591053648952189591825950392039155189536688374471541868058150849151593930525946147248406153196727857096004860177663661572676205142378280300306875187563070176065531668202937871787882565485399090852508705466559442540736898484524075925175602979114430263752588729244871109929663516341558877249438441803251011058807579943322674480239607069144002583490227599780536703326473485030153190058648794524797459684683991605213273500561642166652364316919999954246279421185991846113649446408913310695579426343628297169453615710921940637982770664741896886894177173351339053293238424416046369141590527660767852828646613732943312194583327949121802969086339304295880490256630399226683617027342591399724051224491712868612117193755464775623002891097566359919504656922973934191047150524453124817212224481534430264234454358951033731492362437577770116672901487790762453296475117399515904670634751035891808396080803668401618068492991364750103698916338567866983512523027970098617479365900136961208216909873050085468709235040703471820797888245574300860755233002967783033463543689031990154032365362412674260172335625909555280860267467134706065264857856935018126890836741008298163655497253146743900235968084895404648521057085386523985142792875911054566433299246147833605718017425832077452843637004203581450438042155911446109436110028912046617444606432175539660133439302339996922126560146998319673165651940575882042556091051857964087887771421593942408864560949056847200955205563104105302051324539800460928436093191734066556951722937855336174288327134814146659712210877622635296241556405831077088679937962542519857325937359238564152751412061477156171865802951583238094295587019391123008639461264388628512343371195825049006875636054467274686998469090167526758629139215564636484041924818691919223814974492544220484875053564568473771660304305447782280997247360111055089850672684844682269688207922240317198800558094919324463616099864219610988455156344684074513168672265061385059181985658453962940128974663716126339078287369852893668727958977989662302325499301202746506714326047560411070626832521124721360439194259212850506428615885041643399441186111590328160088156738651601145411302480362155592577611688118367906279236421058420962661350210696592162229056780928497474705916073283016551670795567287885238030694240223384060105254995482487268329197271063816443636983509556006923878724901008765137204891086623966334916455179866987567890095896433670304883300770426692933587932003321684032402783354420438769038168433253306024864518401727217582528858946572981727247494028520765168566340184660025103740942603621007253040484713844771475004089478635928812655629171446860031934991159467354339166540528241676153789432461428195993580217951365581513453922137796570779265218413909197052453705165056761545532032279178013619722198702749595172749289713378776672796808754714786443578381631320679696363068327872690364449144193063326234530067333493221653616452721565166402507867276736121148878779456122210635630583790694020062638564357727583529874634954063168397783803661335511846749181185805459773591519226165434206462853245954593867672840953776772343382439457978443806908113743746142342507682376230657073408579099169022209790617750222936976034270474540339487767518836023727544694044195677467681745820038695246340266636243716352989540321501492183517424130219990342451400611132836121077989906700427952333060166313320920541468809498136902885139930480668173514631863877555039104662863531840090762361020022038322108703317861051616675456427778351889293792344739755419491370612887470714834575806474224713641043973703641350172145680021076001105784748630996613643805431629206226129158480772636839700041407063972986283572245087351838932045316657239737915492781690642772155852243734476221682007324056641047743101726588944710334161433541879230601797958426968877322456471575467309989880710681577058248712084960401723740889772218072421283058272973330146306336732350073498069215721971075762090051084256529002994544431307242104541063864995143059278208295698247785197491282609694189454516117060750165913606682565156228212002327564656112148738735854334698884011311941322750638179216981967033338254771353522232245513747216715315531011942139237425960876559549246806587935729799110464637248971582570293356396533501729107192753392538185377019047229943101335114220415666457248431579753113924920831687854770326513841989210532684193335179003860201448165425376350157396102550683763411912517726883120175470578017318905002212530041880189828615177598631602553677114854417627691724163621571169385257064070866949367504380995975566168431322732000771688153500680758424657896867367771461945145895840910838529116608930469509590670069850018226808806738732195719309413986509857380392275237698683401529336053844593951703257275887664506168558489901476459201581218185382808213693467626043018188496886759036806353914519727189178034072575335400847135286695505704458342226176994262488464372555268654979677672887397524188485471110894315640429771969057763699533783422412082947238330516287008712453753147121734873709418569402140679329894662137336823450232591566180250641769187791067029048639164840423994928204699058204972188343183415682187512865051418375018460143947675064347290591209898661097744732101312300978705274987831014403319406759533639421851411581756643392278043959906693061687037077776938772867394457175020066509196897033645917021747679150270958139790372017766672921206290679346939118976135627006476520833675320563525441698139983969323037289578060260658301896863528057906832329704572640954315266493576653963713323543152896478844783823805085665864263188277979892363923959883906012860798864583768893131671837284058065273160365117568983975145164289258364385195631338589323559963922764692303017105334479953181234485894018127243859006944670680839939088145557331135388740790245581627996229455670461805661005368977147225451961835565501091123449335555972329949997303717946751671081998643721754889279379162125361232365500265820733433808095795549249120315495057687873225898456542989570903822823826451661480797768145412194193839086512621230676767921283566136976861550554807947152529657399969660224257496242704487031067829496056399361024716146471943241555202519833573744405048119344670703380647541011407942425770386848251565665997882050984002144993049007536175141465725666231282360397543359502025414754218194527688167104178229568684171297720035652644641745275604546393551764344280951076737012986444944054695712124449934592755491732524687761508303560595282084846747526378640651239053077333163339808789003136177589817626596949248110026055280490637709604238593802841248289758108639916170898772590232106526758074704644165738089025163279998237686377707235202473202107489872880041657981081158473744291204725125068600308048626723085461353714936251199478944781399638919790054345611811227256328235646485823768292366547744549736407313816035477988724273947189345888404505030765274307258844648101401890043960222690753585619030858608853638658041664741397742265598823323823295483431814891014075153908846852784904024851524718406620667161626849581287217407472617476538418495834810861315988161251506841027814250688986657027051510875809340638123366865698056200558903038634468931060864280619689977223960605575213843527545926710858311880127481344835666681229397056366781256383936581353477334913204683305056013323029852202211873182398970573016221805078498867068997410618116908777586547884486989757485588381431865829935453473254396717056877908483109264998682004928659694119227483892024893016029383229297775602410439907864216226224618584541364598067012932046774035871542350166816822187355428381214188675798170532164599223685012475324620874784450124572674426027785078174043917585898012121726939780903897003553498922366424970406412062478322817827210415955945727508495451700935359607318583611665808416340354598385040496727208632597198031611696828111425352786245410119293649984897159895399405809685050363451997269826372244349044097074652691251146737984683942802197125749818619976051559830531100823250145382724839842448361123033306685470877313677456979245977701340370831185501807237806641967546442707554507627422705808061062246210408451093910948666657555513286521501583924658541364591915740928604095953052277974919257152670822324239875173018098209592850269204493951065018140903154494662554971615838212528176920966707774865432051929228380100774306682500232228600472520051083061396177045067058733872606512232604852012227953029484307763508249013024891089007078738033948245774878048135874622461789523191667038281860296954765840549252149031486834458677718442814162869998416723256597649995131258473347751672414877424445442990928966898455290911500079622054859001099397450640721664703527847155634768706593082418394056250111137997310230404895316797151932443573244454862990503520568240287983782662426667709873364919002828187222564432915401688329304273542219164614633349839058991199608783785999145359638005202743635889275892832016206463435176336354271205494222685497358230725148982973641485517534631817717978510703738467291606176642344137559703033076667422652536875174180529890764913266687111100036589384531585626552481077341327782134087774075628856339455993584039846644764286954332960713283735241311892867175629611504744345181313196545464233637425349031764123970076532802969436747993824741039744824562000149450335026308892406579743201818124815286564532198875998822573043089809177159050215877831263883795467713982913569969238694732364861645667408098637713397353142054661358874693398804317576929252368055931421018799168073174654551665670745849231952741432509343002648277713201406521988198463264371352407108089100709011757722267278506306898321364721057681943936493068342735028256212703801849923293917711192869534114740991972232972314619469780045139605127619909239747043837222277917014474633820096394876557639039971275346060828922483102365667712479559292117711621126353846357039704796735651189875652608246697843016945857328632313742301516709742354554657020322083667012858687074247392827604864023941488283556714991288162267738409454250530334404396856116619600809287238348654593740947801663208366085657233577605596517189216131199737029355019954254842011206023217886001787226893328005137023889654292323027704416517439132484596317514798759277706173011238842391145962435612980623762987700118725822050348157588077971212626063518702406755904117128754289758452767904544707448008562471295040368113694319611137397356806521817883350532619498074251198924333367276804714779582821495895817204343778135791025047825358345458966557827977831809351476561968843770899145106886766930976639497178520921421378978994520194790029092720368140893413704803158453019473294221370861168528884854375411241083139156096507750282869620385201314974995375198664466103630011799256626578954275385913215918901353757279360711849626416592507965458652125263284514292615329657148169242014059448666203287582709849191692549464559425919046163143535478950154517841560835167392215009824825652109633182447933679086872814360470465271135567670491423984755406038888275220427570895355379347532347218295939844942383333778426832077756399391043596212553468654044620390525504916904468027869955809334324725767625132577836424128185849459025072998714032510849713846315229768632311601598992328735122288407745078879615514119693764627958441431023850274932500362022333979181080948321830661218710070141329631310626281691069827720992432934298666634928415543579785016432805111555052446931059198232365214775929825442029548366590209534611419970238630922521307842063798816683455411660695105433042257422987263719577023710061812229912501392183870647555564539802880678666000608035703341314599657680536031567768644455060515499501811515050195892014693328212787646384911736382678361745623346705110295341525612672411909617204204661832908665082930224579979028283195132762431878573470546925351176470063777498189252976920818644020339420496640910519091991168444663683032665532249909800009939897538237277655315716913177756291204103268426663549880761712265039841953259002494161509828792248304766961309866197598505108897849381105218157353048346585518138620032550112910454681080861442412350639166905058509794041590169045289539216575327682818368494543705724626990966646546605603163519679516127557319939395379831982380795466799033818526534252828929164686940393665131553585101215126791236822642251760376496755910622816716193772107863681486096403008299189482496370256693483641984532619064061417310242429053997583270577822235025383722746494154826462772335129283069683052122217489830128545186731162714219589845038648469841373389274606207787586829186561450646076754838716262902774055187766144282108213227963833679167904492947244291041465355436378664105068545956999068712853603168819917300238128859089230285076487800991783270936025880580140066827918218955961118124147276788527562742211217243526668125823399075744635894461611434267204010915515662013391227721035626267947389096971518466130715079750868981314900360737449023689230983309477350153816711982001834261742777006661513995584345516954046929608581672575076311968209180634697561277434140315276481451617753296183422758911568682068796386834346756630175825650218418872443909379074080507381063305504916337559821209505422677825095780560197347536608073339948183841820147596701380774121134905825344106193415592687178880716429792829569528859895520480137019803202594037472322818758038054782422349392411938869835597752797658769446259231087354993755700286760799782996892907528290834451056621592365539132457176223024231152274677657359107515141780296233152664666315715170122693935882800470192541699783976893510693039856193820152255613916944615820884084523103293621768895320144072053090101819415476543713727685918641212730918763459263430670714583643884428810042130985641356475068321730335434954602305377147014797707407667575219904547112409848198133843551931363701030908951931747714958326324444861863097759952775158873719447366112942232005329993396148521332880561415231557091089407163596434714273021513322096872439619419876928650625852868220077551994768056919710104688112829913839087820491841744109493566685057660362665111474807572957833509926441380859374357932767204657282656526158351472497424546065600668114689770362418550129005500064249752615939556662737891221493847956511760485449491997624690066719365143365605916861730355071296156657136875202406289435726330441918206882197054697758411928764380108287064999337383564315727581789656610179656399650584637458996327573615832778019605893564393868264169483681707942811186431312198513927396452818736666717127573183521157097345428321317438731805548607379895482044066952526054916128269515538636129948853013420806578856823338997075428669950600755150026464036621861346830649129441616701937997248427191385508142233219056651841782700307735543437350052703346519106633840353446595441226133950698357760451018120006386312589648594406157018497597970156670610348963355532152054264807367855685787590748952009320224840120522716571439314223700142615089352060595423983369274860893651372026133711136591913750251610332713439761658829107554503536871315678355061245834742624215093859726740455467020462379590505136845165063605337765947694331156150509511576827006496535557542708537821027514973028082855656533936200994138006293060351842138963059293031043014954538518066172813283290772313865718397520810745373152660211272637084854770021747475241005029119274677613394741505233071110512651793947885138413667993178878456265139272227203806698419043458834443792229178273124710439984098380130769532552303212708354092678794791296843565579854412896921299787764301986800760341214320649818402074641839653551771355794767286449302055925826807011953553071503931268613991272212862989780681334149137416588741628578975890729011187998869621420005247807122191911745929840378210205455790312410499435801143451566775245459984242351558567797200489350707900562151131468516028859412402692627933190913563755029182245050184381484443328246660256356481796351556036915316922133074622968244215638368586231066436208078484794963662114898816182858766122004512043901828623349480679597610630392619502298516253901199557296010962064207713258882919202539876035853536337620390576161696395959068127472137694610143906194855260061286268777423643559397850833503143602916273845579269940973121394282719500896143263316671342779826484809838130920359848885351281137667280258147475826996741908345692278373216876673678597787581260408827127917688825004070164473687852751410409527873771268089609722239699197726874950883900872013111244763336227486193602279788146408668596735722712809103864606311466122909844981288390758910722667282548872741736998090020942671205155763072699497491232539529194755135550145045816825078104874440659584403647995303739169483404292150194109402040748115740640231363131680644667549534512895010908480125530525234400718351476869564320805988333082963174702448015222706238940284032990792189404403709703707382409357868819564688429113055445444286012933087204590191554745086025040365767983321501080010625797585904573597843317578469140008560452889519805624808703767342888294252635126383026698609308427780447790988057039901583335670738684081987714878630969343101311801447187841021577502719966836584565428633597747807334755068653013387329545795098780253757515763215754249416208853485022886636209966588324083854439188706340350275107646881247998524196701326016344996862939008128351614765843521082361468922911569463284798161554756072196058248990768017260317616450112603743839552972390583387693583028845692829440076684650409104575769276330749173744064501168714171836643612083243919133468782922514970426194154546327285681732500726734915661788545415050312006991701304911546045927001595846210052529819678514738224844862623800887146555604219533482591796266045441113289654083511720604813200925378701090782406227959197833151849067845339425964632962119813604727006583951525033725183567523857947994744046884873852071274777682172895765174470055518606581474975537378344381544047241864722370382460528471945651867125934070489556920385460404067903217671110157706642800190282322622953304100792256836674301033570848525110207336653641827924748726138870774355858369928624300299382747023905099752401192163744597210218499312410127428889643925589680276068854411027525958748781510331497957555405943078113910414883609874474975425840439499842309515126885727858680325504033358745368384512786369536816291211576775532060482694943400388578381346134827758946836647261277296345138302272139758505579237856133928422812393140529710140313417050900702214522731924081306957828698463403798586461948669343635133101632237887132863660952825504002750152842473139155090345163884041978868099386785692836646013485257552256560872079385360723981517536145838011180739433821192611623952714514018154133462233768490368960145850515481237888775114925477535671028926747802160161595412326520344203723458807381862818190302213230683542311007283940936383416585425785971614205366397250120316471762523128485705957855560584366718776833947377610740285846109997711726604858243855781175928807599985059574795480983640396181121467147570437828814900358832282005796458466336969902733210638386666212714388446776163292489413471632671767496453608870757272502204352148365465378727336377908437027014582362391678441522985996309725770618236453049554741295460719078460083899891650983207487023438846707507129144131259918942460038428757065299068090604822091528988921189587623232619728397187317595564515666562048019162121739408392187918618153623202768223454486492158540380340013017245726686000817234828181475145343671352470543502651756666968771081822667245723934870644924729835341230350005870041398713009048590126881495495304305455172468906307890281969427911785696021557720320496977129335705715295474647304355979187121819309479290985929397548882321139543721865192602042175737851361801966902789452953324491039214905127974184007192071214448557261271350767742235254836848454967794713247544483765599651392483147383509148390143298473812685109782573653593221404821249440518791799557931024015807144383805658360167303179095264719418780014341502582585306083152608804730868209915420281268914635321930023185571422080729255833994888353772133975300553745851998513557757919886229630895064189535724955132242730240680669004878927890556855632907843776631431176583983336459928860169944680570456381610541476872242411198899540087091275324385493551040188252482359626787002610360774551677065665322686743524392991079892891278924322097295268171166952143745264692991587138280737795356288415562655146870374184070227559799116055469105925664170234917123590200156736797995753434719340974839265227100661914048654907733035285319288135536186768982184686824211708486365101981279224019615562865937291689941782208730293747556193418120524579144333706553631411917445426923541932006693529582955486584582187352159037535348262238774353679868710262124582529097642258922972395858501849019702749056552059556960763370533975396413610927411729305367613087422553428981176137776644779811384619766281426576616515966975854013454693876960857642578236192339537597247727085834677301758546011993154860705189806464101548855368131610294216322741378653207368118010259786787755093385399931376933477899381856415431444245032793643280648831957300635560691038849967539463261919807566919694137389858571807374579664411154866221091905889320480442321584461967436481531685639156170509666436362729912187929075879353489081134130312857207716764581623855785173081204021803026461000808543158842107190885020205889386661829761631453908547813729129789487553892005697150104724310467855502131152962607622173097370411787990168307955387029765098336179044908856661527609313929476569469958328741035071684738295470299646714347937504565970419205828434695505699894274819652413984645231018479654250512852257010059312199906521282607909391961383937881173450168476618331663425718948922338839238897825068676170787235011161651255908589704279784020313962711083255119687562673708657349643755281732871566613503620284672318772356475579443135651020034344850741542526494191308123441122798785477654463302500198697789808283914746595766138409102990267788361725810562943651341033009984403950121361852239509899470617819119565974380283666636814760531883451996194166458616104709138450252855158437207118336772368450448920554246778438852892494799906452865648593399002541349743305010137676817331659408888398640271922626792320057868095482689665585945163841728039739029167960255811504344646481051833888034292397440487554681411928235136662623596726389371795413226258437134241965115206607737767278571534522548303577628206004276045205081283380248772805188305507942858129969714815894416155183303924117731901667723381539705528596096913991272247922489677823178974173416724597406407674305916250259522010653191653607898776454490810064017455150247408323436976558219048362736746436968206034681899456365300794238412985307996872971816701791469358282311916469680658377038067786587273986805531014354906459227564906640889739590895748125144619176325263481167197425223646919652927287769235983241719197305208360717770084994095247621972834867635877943627273042965715278928196442616871324346506112779156053011976949129649412315813485540552937593308169336674841921641878783866247063081856955785071597322049719404248978016736940921121483543513501349545427457608007178035607937391746889227046103984211054746994617267832399311204753181008524409919326799560516898437590240281780535333675489898573872020485758729335361609553090196753770288708289713793205659618398994178079185311480233306119186553200620644282229507908427724942051179748083402921665282719104614494420540020383114150985680582375716981116900912981159235590427438197325405053374550934346249350884730841670809700057358229253298060089726089166952514985827704778699639973777788421160241759891963969702988248039013974648306674664486072488059423968156229608705941871592271570656718434344474343807034108994916723244675240067331724655954211145627668572879123169184854719774205838744828929766613337285948647311346564307548223164788892326380714128266784992864123408589792583762421736293274248279566992352418270910526257140476187071611713540255397779765859390225879758622036998163145349303838058018309388566166276922016980454683653677909574080641631956465969143014120987544587486001230022327334995859056019261005362566749660432517486010866253125027652193790467023560834614889135100326324451766578193080277964908745179148465551235886054758747487942483905504281815498440664187295368730108608179953222996388557528166381500637901132463013109128001819944600429330317614880514704192616561832256994234550956738056309595134699588939131724248973730820098985908591823511577120780575848611391342211486773253051016104698931873444046869225135652050700099143231554286712777295194958852502640143939083735944269949094525549524596090232086127965218561422928223103752792211673790810674720068665407969552974612370139445980929109582777346069674757914788433595462214639065122309834843253146933782635953198004036780197245148493739433525479577275901768969322999696428039060622263326189748437054823162937283942995158522401312536413988764212328044442747098436709331570903225715130286160781851547153132532373305737705404441453351784711240317472991402168296939729541930225283975258036866809107021204014892870645667026546372117495300720026963480508076610020040704116758959398469284693941360906659328679424971389417228895483495547896135995518791630280698293943791680646291261328246328375837806015644086208628436058700128051479790016763230849527606577486294002385754370805658705264272265535136747528507963333207662366904868450133973800014242148044442635665451594803109156232455008911668806355316459906284015699291204187744764844822492046013508815782446154549462663465822329716501487412958750793665802640768958307770438169334602682277050419298104937128299047042727757571961572184590459801400560520160195269527376272342370272712061089296554818087610428197055626007699080147131189977194708336156066210138131706149103532592574689080593017686493461072956256126480860529905340002836125450166317063256314360414961236471955737006242334648795093160983019647608491231168279262965483469097590499566356303135023934081426587183543804601436811264309400306538785294257370407627188374324195735377215741668536976321388316765463749938365563728741454352111329376083317464497101632868525200044185408206257244003490804489021647297670932938695848221986798546208901035573213912163708858620450748894924882786894551442564814777500875635434621085608427200014529714070288308062031885704336337522262796462533018794647952043661460645139239619218462458163551141668163458885345732742218109552371898472620033755838859285393493545111139111783678362785501273097930890390867123615850845815688920011859390068233352323502980591236227292094785950676747000467101396860219304638587102940018398579616523045055228379345404870006188787529129002563402844276416023546334590779848412895321910556566255837366654505150727928200805548232239589994105784326639528984284405253293210282026283579725746218657975117497293179774367233892306723957349833919674885086308419534462951329747711137610735778959229456127029523980038249668314529020037382369043824715989559656143009452252376733119741181165121875733399852843348475249528780270321993907569385680817969914822205971847163311536699534306109294733144298866966701634552282716441410478918203122684828963127877789065876622530586804588994402303278718483263276881229618397185536733685264640230568200724696230440477648541577178212981321292785999587739939105308970449864373754913647923343890135603174692200149897000069635134539030231127916242860288834545503549988365323480926042323483957698510003077871696892634745035993938615102770691145538906378276522262398086042554481134150693420456211213634196451447807538610259392601168938054783870474077054139385683850615569250776013866709073154491829857049108588393527445783985143948446331987302697792803438785969234308617450812236037193749682622646018545389895344962003175527873355647996477061240867266877747160148161456930099738514431243353496110577328320603105534573295441998665050841177911984951546752155304129787265577362782189241602834370013454901894192900280656697965784129324954935121494860013070436140359883861494889953208248096476919222764702598319541728135810596855780006439911587189953204713529407267633506007528156687111203957021102341293754876348413853542975869002210449714505227847594754654614213632238491221601991460091640169009285791090845906785252916352379918827515166311463502068625886674291242912963873782646655878595722102481923355503749946723892185258913938995838568031935106688158575295128679988269326694366151698764747843592087450540069839040977603975779462017368904427865022591218452886481050946320484498087675553251496267072683934619725316873423813404442476411537484737032735606350363354096856246187352866235126092965262805551264913130040327547253149740528272826496037887621139150840068623611179428429181125758294363343709865517427814143235372393692872020350088635813643232626536673450529585369406669253093866497130108793259086933422280470330040691924036808266697900310492315188023222760270897717151362073981100928079443524162252589993312655293344005101655778938958100627171396920425631564499408123061937478715557845078122590696482330854836774224620177626310384403169315650413955154576652375647526917053938701929262473293138218876493231579534027882343906732095653841138142555390747941095989971649767426561992382337825211790793320273526492593809538880017180619273890379923328862139593079346318061041900605930018710499665567766020847366738713078056398876219650191546409540369700001861792691482598065123857401092331956820947106568768659387129878924704409170709869234786347798279449056645264055779300220236926703560179230647613586299443129525068543103228980432578474821055690993891302221408167764234912545558762167808520293264022418286871798921104707125857640579014073668856237366113693084438331808486190296247741246468692798801478211331478648176151799332443348622675266596418440581334657483347656280006789274178999616965924739761487547742661187447463011527383582083111370616416429148884560253636637398788176777456313994806434096832266416866497002133479739706008181497478992003066305636239273101121442169369164665643885025031373300456718947882385719026546160304322271703957295455595922695700664590562350991884251274548059238131338448735032220015040958022613039378592804989283306823051051354447502521464271423821221180479135893537908441344200441460720733256591800050466032681269734948100965517181411588786696619622371132040513847932168088149676012950933939492402239868848291846061087891125984002953145379447653572386449981725345708410571119292708060505880842932621039195400232930696370703967480729102084832695491767230682793414866561564755647072278320659363161451276701448326016436020688898329562914782206455516049739410362376709768795764371043188479509914863466708224091363447959519088221544019434619098825819882488519502413728465312405418198117430781729530994666733461125141575414323337836027918400427717755869940804693401338469134600841601016937923633899658688938680596629176714647175400088287318309188950822616446432161795638739872899456409042880967366214231974549354995325386022191506228927216759747598529059703423718624527332626423385122796453739617548119536446633911097851109570030455076036942420959303083991911586912575969133324700715113068231658781083759256958205058639805692294814901901959717134356193487735051710446607116595860698443163309275558155425057850461778048400791063112630829560289165948913967591736432014325150507229357323178450794692410312821828815561161753227904417891918980561003159735552556085338852077517554425429557214708863558886375792350249559312499652040695841755082960080433847057744266030767558354480841304884027556914209950514773050729154144187603693106003057299872524671759002566213062724818155378901266382679894933339996936985801602542909810896352882788215771234160071765486630934067734705609980034209711023586700441945726343870756116299535387531038505022506123264563090329450693012102529816207823540585044534962716524929846670905798675459304091171090724409653195320062417563166170701292052185264112439132867281068736076031464276641873357296291566199346224636691828579292972190074603408948438874030981790514701910882119447100450997881798619175092416413461469127379138035701384646882658658346046485084275471791499678597125398544213513110503119458116028632505445825698737257487269477473522767136129637053507607197114192003057623550799072674969690028850690563160955065236094428917607524199387313795358027777000365271506455540316536472393037426286711494132700978862936192659609353905806588687177924181875712848944126223575273698329370556483016217675856476618845982009865584013027058854148082255889773375219059205990775658619128164954733324969699566164232103629558357272593616547132440098311590638871882526512680890303344906491174874885733182311544100485368890272477567278553637496108115276148917853493368872022947000491485560820283518822029004406417959767620571442766654160042435447809700821804816116762386244790580158622454241949416955862966107213779502864904521167454390039586217965695531145651123932910259099692541706533166575598520897782118324795087467267369298853928031128093752614471343486346272065081535944650458006790405823670445646603504245021603967442519836209306174840103787145851254490300215144868919095901676156769945396274515664567710851998893553635642031205061171318145575600202833538532563175863628028589706553210097381842431221861415410097115008120283815581286219663182143729255019842358475928086052310791164037285647319259972696242228172802535822918764442122555978686533174845165611085074311835397418293428670111022146723664365696297219455861601914102155913390638273674062470270010359051897785807282065307310327807066574355275519294596079970977442425252695999251490623928925060385539971852237909967375829494039624958475177241700238881545124502602834389756769302173220601732409232476409000691967426310374728244344406601138556350572374938880575552133260565658025024261607140929447366043811731833987056495372338834045128130364490933377564721073134410349785065074146419674921781319805077031532053809115569105997684882357006324615848328339884606285453762395600043575915365211312723854719698143710164853453376720918702212574586546690694793287879146021638555902490951114338367870540530877555708955768365232615339536103240072178501194402156266307026019749805653733963157652272433019717819818183144966793913546236370841010932258929205868198272743849556357076994434351749410840783964845957858304661449336495268708343999949286199135907096894507536870346112162035548011315463118902245421928615861203797343507748951879101988674657228134236063040588193272568506798214617392047470014603916597261645833796206198140706064146361731039046770301624646462626441603483243725245994810205726113653635835294001071909901824071414785863663700260773955368207837888840330139201833525934139799578643877675851043512590237524702479948412508611726190508670251011039577247383364618712403217006636553332183106048164235360803864102579493475684219354761187545110449530627225540540121379073016858012127692066107780571613875929034962042170048111214358302260583942753224652288918579575336486878764913151465706349328009164703712777522258457689660800541391997328919930725612860472835148943744018239558677517617336496166584476504427538936608566772992352761456941792373515200886238704653940180199322867529102024017089728779294912875738496726195363542266306823581153960940197051289841005166888167800365973118425753611747008486431098971777809991296953827753276567890786471573464112694605779986471664928907305007874425026683807518094335411225839454474802361982334734188536623258617454142914594947319992080661674691252579344397894320296060777467843982631127583566182783638202815434511171612384592073389467038046545135832610643835219536944480461035387208773356432105264245935187073940085174647921981951997249243922677201060998689012745084442647681891506180372882507970271154756878081063536401018733014662869242084845026115131323987611506765953151174065709627772093878262101352479009914019735194668772259169465773429451268424839675667840571968866647745711773072200481471143835013273896891579807307508716126844439643894285570993072706995294674856724041338970045493858592639272195675808446305340477655434975798041882347013792609260552742207004764831577615788268537626476635854420509706854129346703269635410576429683426601171825373692355740857651685084161246849741956875799200768084726635773190553586757186489549870351020672461640991450525142576178579888934653007881862157075594147699615313634796004137745358172214008590389492789275210141465542493385340174730610620849452576416259295602337177724101233426306545329203900205423827245748836990511941867052028464858640219740602659115693159621852846612955454650924761098631721812113499666645587494650134916033224423983405767869487074852916768339482441641054593592587143203454688105103318443941335059068510711227775196777440160422078342264656256418396168210551787969665837441949040733098576886512119991761175895958223270301455526730072157951213477570489143523397004074099174446682620166601204121072844019353444181556678358817169300209639504100206116684707461937916108850630924776795125312239517996620597903873531813390277781187303278864737956487398722214798114774115088616507410635314324011703125885715328132290329669074173767794480448836486928403014844667951688207339648938749718784151308744659533428107864552473367036053451144296792838808293407606173823644521189133540006099921204548199766632935912694539496713284398348462151926994604595381776958925058674471785065303332912857380372973546198449087753395488349916818499988976358739824382012622264427456565628175340537281691801516219384819314071321263617552654730342766763507992643776954381852553811718523346789302149982193253708989005781197857938416889142926891016485016008098408246068357135200677823233906962239075307152268922789831370842892076115685459405591123032535903969288570475780912985714076746563528181623112778116469270657999930218642409507748654637711773402924603862981480703333376360531346424995490360891435673295727334881778316570881057292339669800142067781807366337396922635858704094397099860575098753564740171348427688819082127188704390502346138957520327967326079776020535199447064049634344421199784714008659483307737897263505116516597040685740594281240074971895802351430125085531801258143064089258674937174890134433017712165971419268378357651171139708756718696938540796724359435976952641738955371001667504132244623309736884171984714664284349558658486790885932164526325608967959530762638010823437028830523235684108004984607888571310788409100834262838211417329260191054448970621944492802488533129035305040488515021347947129203847147511946340605195721126213346455481324395538859752731241422012208347849540015205515157757241501843926872430664328613617217008829486210673706849653699972178082551770239113347649757709358062820598240616568241294039313253505883989884256875128745628962558574749180655181751838440249087025451050293638726643810673101760347659300158579039718745645324687112061552952852657126422851203801279769994105017402098808884807112123521151434343621216616873139145934242889124863668144401259301522045142342964443986691035456513984756951951843424923336044580546629502858955045569847145742234538285743152985529782470005708882551839798114800533087577364852763532842549641361303506686011402405805326663424333994804416594696170798892579453487073774254777106982032848121577392284902584806403362493692441565169536140630907451625305239798514165912313566974023251317748205890490068235279742366711857814975289177498743446005663071221720931769865233615699933714759447725577771248538030024775905059341332760088273227964295600785831338701187411175780195265471284036246794532061288166478868193653903312355600574737715826150596638186316064068598916011673874286305359350171328492746521925146125861636452732955389224565197982249991060787618333773417724308561075590327977991776818020311331485817991543789213820532386350472223704514066077314913593171372302654231837480780636453446105836118829627186572863827328254719703661483457544188046182053763731761709076912385921293391515291413410653471040995756558661076985205550561061149897995879029283617608138765446025708058447676497942891754090829833159310525099433297481956743226570283931712590962899219258490476595275503284838235906074883671386320643587349975239941551518610779610996583005245750543934947308648356820139274167064078394465225250193635168667101758528274586985655011779737362649891515812635846912796474479590091553629674752408458076511965271495932949328606819723112095790604992308246641113214628200399758240713299201087300017924868853106744428113451845145746534933248847950076180945625084091173678028533695383631762337450569356091932536835914891054737999139719200134932687315931317508189863735978301758828447661267076395582365392839174031703077020852098564200912020840824745081614399621579614185349031725835734389146139077554068169519594427918071405958824881529529581623076587423460785319135463352945889341799258254409511935954546189825218439433828365837124051262249376925866921082624361067866605504147786041017565989940759398141624058007196090457460415814983303831063656465564354140710026807453032051429271824188406682963661933726846872956797319863728098304169634477707087644825480011614203628754932408233899503813557183507055824479824889668539255083853900466670725380004598486096549079460188094413707636458936685441074991222939197456309843130772334245350484298480367380432122921095924255625227969994290710745715150614997823798289740954040363337743632749334915977187155367067743802131651357360827639907609664351698466025509390249492047152592762379864875340169688653238814394637581136466725663166736500651624027406126100669947605732159562333315430282192987392864846852191041913496418600368751506030692379228309837753181267574950527210495852116971748850323507626689333212677255471924265482637032439322474178219483624736737844995753949684713917895706638836885491236980144356045834713824514553705170399049015192057979043354716667485798929030187731044012715363398651291703510272956301002893927930606096991254007612331979546881735388754500124575984940036979856582098079774749437837113002245645747829266383658805677542079195881371723919158626395459086219128475444971920725193319813483451803767657794591923611668429765726973067552860763758082681074075471624965156644947185851474178452849103361475035560546488249350967828752098170916592407118894344133753429229621659314266482618464209916542812965210503268403428231851940542064184637011579209803003844171500609054378062531167880648809388337098721814514609593922846651590034414704086527556678685519810963903120310030860331417342102650616422851611397450453218128957972819876923125710270210564769949192601447465926595525068783110273547530730842974448485618883320283569309802075786609888062433033229819720773285289701859183183662638375452345275830968401898617535736051789021075246011112462155306795610234433066065986308988952827418619311498579040899560034334220816514274241794181012603351873376507852244525657877133091818481409711402177195337138052417670150063030984937224942227439786065931426699118445188285953837650403823406514763169684367877027592683406864194598692647102232889258653560060365967754443018508797100058481935068211770252685323663090533029188024388130543966916193559458161093768460083966057489068936079265328005316998790374069666163965591216935633358712589078379939031745538502514687994923886307732040561330409142531285328735665012591074888979744239619510927792591612488402771724651302805250503815930858851353183689632062183685109610010441303759360000617684488795464921668659078733753783274546306066714600213676795423417719161435118494683867589647847051883978225728542851711464074407057618466840518345805531536938114831771912021020661638473096867555844367071132799759413686453808941730324434569008812861384250745915022729839688591690774007121208013876269149061007463129368012589326042097253530463312275954044721627680880598727382133087784600920856819174245713406568107123865529256557276771894864947901196928730705928116894150324251930829928408841337700557205683318306631382327174075527449983709376076899137446269707404057096661794474534666107026808018784757908756129450602979481047301817183060418386762961584085251377240129402709204078522298340631619417432765615351374595091399611094884675760023473409561926531029747817473986273595258366067835518252865565805170276428790176387976009252437889802914629822300114146208407755658559717430013991194124932680505226779990045224063502226499604316103731881759425335245375211744732938637587721236466252616327353697676164284061144478468074010457916795571773529286699399750535394210062551752689628490009438383214325480699384382534583767190164933891064221304598970451743623706569109532523043263064235239265281539539858954700499673027159942496234541241131140425667900043601360116726702858690103405221406849121521837288630914130094397724518418612904121847259460319103252919093896106738164216240245305034202380232018286514383857455465230279652456788306679195245194572669590952658269271941076002195948125924826412698674694273286500842144660593671483262459595210534357529236746799670212908704239290585316424736396799006710172319789188954207384595349640053505447170302390868893759933571373883852548570303175702092042828769095318311358202846607024105966356893838558150324465623662658160404181793799319043289888608044224141243646470584188082021703336150972417780467629126022612053775765250104669059350351366256968639809916992045356046655601748982624327441645911084589532061809922699367821632430173357674243042126612778140989135788478931065017864426553514192475999005181610893067911636634436304010195451557815039395726754405847016767938901786445163012216160014623071658847977342012727564000064672373967922950541384580441907273997929033161764747385950521534295122977098602355127085466751510851082758283841034568273703630944766280376202462720414032481160789509094968809443906189071450594492196090130672289052955586965516759432591558812636808059423074767096996567798353073063942845930223561297039631254063280812324684338267055374372728437803747750471679002977557670658584565647853373977042467194783310166302033734289814560932008206582897749758745464188547466884300499415760584486785033602710309781815752645194374349117839280144278977756595396373752148331048591299978711385542651438218560351235954104977094611679922698851240941121097805353555060098771275751243571503373367360150814383939485751666879710586128279020550197479271013074841650527963835119667549112357343688158079832895542291461254123713009093148913321653518421957886762764424577396558590722943715469293597790135084006102904972145623256694411507843262632870446522981060784258274911054277431724524536779219762702410634535342321364419803556543939393992981162752311746092979518960907022309657898012888541630634253262660534933298111449192243870467479257085362305799286874781417574421249702734027212440992278143854209208702807087380901771717558465795812793601239403233239376231760262099360069681402861880947379822890985519543776034001575397065355150045178537592827780253839300713833071423096040190920914881904017706105285994536389515914052841911953345621313144789061966500171159508445361035456634773590338058134676858262233923937222377224616667015841429267002254730644145969431984784759907438403232768145320945188790992538965968054656215554188364345662193744715610987564576230797525793089600361092112546962273095180392384922357025976792238338541533385220465197861348147359544228901404276379583708629561527604005141852564477023571547598052046763879101403382731840419864486264265549967098717129365189165079898160038372317063132824389952116470533639002566757602733731466434145610066670662662486172497182340680097022476153192916469081344180492252993052089469048233872183504705946854790184413592918237030034660877369690503793473629741367990978477038480173949793068266541697312602813114256882437041333780123404316524362977198623271418795576667936640438833280038570855846119913093718213677712923094893301202768835726964288948631187838793147175970355101169773451830631494317525527487825393151709071057804298969171769509725312851965847281592750167902257352035256942711945230732943793916274737115037797000523388067831882977743466116913662116647135839364154524847409342343795179496973385113447747159531265889632309070324222224943883701607743445118390720389624695015238911813742142071104834286302528870734453973676149880977525433493696838416962627229376259851228808725417359440595631278868429019804931836404802837046795612885755973934707041672699502481151073768914555106363566534551576997929567435205864938027817863342120912529902439916600132606900208611166243912922857048706561426294525196617721230997940845509153874258703137842429395905085667090061294808119033114591303903074659590080309488432717968790278263377329183921731150046770655851158350120021214382214140361313114269669306001813480988983321765186237681058414338713388861406609004883015940413578167800290871776735653723557042677606116855555243181386111737511979193469890650442099517211437033142457301292051447123755855184368672237248000389148581494069435153681188674694629525278564811086598037907659319648134887543458158174747214096153426138990949010078735912016514459630697076126339897483641082274714318515098703250111057548192607068906080976396339806744503799940634584379319622234349696242526617458612033535070227047924422614924464028074234286265145830939171381819773294904341726614567454982284263151840906529907692690327406309070877822037647592193290656818302154874170019239661320097882012076946215553844321374221678850283628906015366888053995941384350078292703678645473007182814664224227025223731951669245624488076316700079161524185638415234942332331567835342650953395290323493099297352628559338715505980933694903189742709495709704020188686241894104454523708487413505884503079657039805838326025294190756384492749772419939514575534188590935076983487658896535571346881827241099722977537583040443617688033148372879059078834747441451861642866957551700787798824777097850982161195167367732821262168669981571313231639700287859792730324486119441707507678573042369325413675278617383903165758882631564462920130346751031550969104792832589464872215640458847540290411946768997285237911176895066225461861541180613036015414910543822570761833445191616445076238485700094859643740284051043249959537019710266201137377001555234391387438671010470747308115307384986336555248921234908470641609119014983525801501272797496345376010155840241345505461442833838496860738404947622210767162741669759448334683623389400411175379634438178035539181703764791834029350163050366170145671799977564778293184029801386254031959192936674822435088248868458545470719512394192338370676072921172978771213275303443642762161775683124987264839014788810019014315166383388331588915646142524527749688635584155688182115010136486987304607533634735392150426343160477977836922835665449744570254595067148409400437509431920935004997919331636250544709996254342673773598680421018247451707777538353811972221903313488639858662063676989634175729689333172527790530531747509159884759905504803950420428950254428599099779573252580620867708122166581108662431564838359530197242452350043459986196154696388786269816792107067219091443526508276413271448555715324693361024164174092564997963347408618416511119817669865022456595311822688912179266229161095527911752626146151635707937524121343789747273063081182011170191120209913692224070434596949334107836280513120178829151436459185643362748419729905562327279225907359568559841743840053573569715507883236813320662821133718403068030797162918127691180723483631083443160727887628741099165087403800857249467193976514864418343448407253220240763317078259184228945954474706625460435509295654206086063221107510699482468094114120965959869842416025314629915379565349798745925296124934892140827450022350072555263116260129874939803693868322886681349086626901952850894327394518518517779262826373633212038366235700868542111902592370816753199220175254757433533109077996064170789249320500474781258008455666636155842626217028240593761867611171638206919784876783451040970188857448167000848164283655066271057008604371918612238113503887479707101519659414098922220571062518954629556702080235608867615479932918367089183179137887698408530651283641933905765627998612479547182531363208275507625774023779041936089013190130611814043234394636308398256478796622388775525498978817297131969462526468753808034406674409963235462198197845589621289983020022980036868209803171222719850170403820649934042677618562376431729431572077190954015291458591140005103123604597372635891612654970356390819920869568022583278534461101261576505400958863333145033321659201674873055332741312594188815558836068101516134119244783197464062589697665905478225704943587161319189795444163905577277767024573556797319117166085577473678595868177915475285113943838051868834571563586470001978696866665146070535859446559124173992441685055526348071909617847929030545691111746345089383504752328809988727051846948103788339502675797863204573478661302730184177560428015330039092380430570934318988285646320996675255121993006914565104183388099901201312499362610615670996704868969938287277885032255670953785795364119062336611239939486155424157435931258640615417927987969455981194043811966004289107880973536593672763028523321998898064685797850538873546753327226708926276575097889999139605085008473006262387234338413136256208766252831288509462189357499441535878089062343797211405685679817402045546099911567847417337155585735613640970409726260512692503500662195382896614546413055994115884292775339330161102003045161278375532195411171958624525137788626427416807912941876886511236066796914418061537092044692030272343881669155050073127552054805309014110680554437274032184433136194246648773519673621442657302934008479096621133499320669886010011167618043846963898915257030609572454120265520544787887289548688981274336768180478566356015340929338519009370190091772735687993652240944689767414163462569838825271491785620671787108716733092319420157904698432143161716923532175497474366358981440009159982670232570797904949321964090230892850361695338157304961138279588259307726067310686948066499994959557077246879994535702005568729148456267976268171768304033822826931794368954039067814405268428904281954049624805569765856256211348288924277464116472776108018475882824498797275690534902970279625690143722920131446596516671143911010955978628193290194486327748328427100588808995157325936905725513103386759758666878828168113006378668458550625720531929999352897302336820852890251581858610458037406483503891719041933404222711210054733950665018951338253331916527126555045417724984182876595275521680850226883588729695386483312389791135753953852359005965451482590718583965370049757436509971582204100858192467661978701259869877773828672922813380161089180286854405875077624290542524861111245191574717612642850813634222438642986058255589984877252005843973402168903837252352577869032758548464903112704623582204743532798234592702451420832514221269777685408083264287589714451669267013712978513197146589291604036387805500728412653106944010448261016642464582557151272959887854259263247114664749567358920592307196494100882485544352690523411384093909029217671587597521781963816416246338300783538005927257742522174319167800431608230021731069803465379991208339476487224172390402242946592714556638469151680520505417123471520969767116869202359034623032096544405816693353656526906747448689383788529028413892431320622768135786879692790375828829975197508424403831548461518082758088295827862213931963245498093346931557172399549463761665622129074330955152039319575244336746399297409728736655139637216899694874043708359784593031103960332203161560308575714826393463280133439223896736377207553516500563826711705446406378035106706625173540920634703369796657522503612901037416079145438400203738063712872216192636548919829467028746377984608403161439612818492696022835254573026622009007673716658259291883307807124704374013333891216239588948503396403006532882185879530504470349960379172297554761262112556815858278410772038490057626800811547562044865580261732112877819404404511718123611192191032055070886996131081538354644433485032871779193762264645394134454114840231296051045111637878728951384853706535518074356756528989161443489977699042612207514361896657813669826057794567860398869754130341892285812264840005137834791439549840228464034777553982814211028846851738616511365401868816671437876359167105529230376972563358847621350330210553478728582816822041633039122492930581276293879012439971203715117198038569238455715771772424199926835124958686017185957947864397129962958909347691948929212001807942224881046784783916672556542510847664591329599605730267636133751553429610333529753187385100355066946584786641767964488105924353904426850148786094548302862259679460998272079765187774758978814280566538901600657806861689116077673732061547616914768060838575385212155912778687562292155255403506883552906292673484015393699807670725134438754776564189008457804884547138009289825760432076000370967908289389476993550680010897988872597502840918057046071532762527396193488122871685967354007498621773706101229765894645759884209407104528961662177497277174356818670780133666643198493860175820435147784366065765496019385948318295403044169785718610197307736109073704609691404462640349580792254349448886502234914359226608371741106477802913129228334361969784893445232197490395597156370519025423527698137338783767264828117603825664916788421425543944397989226006717150272965246568824530672270416462537888902026694077440193188374604195616010090534737244753099188362585965802065690440408398915904723835211804647335114196966308491584386512136820215069268726371498569657463082163243624028477407431530198813287886637809443055633274465090850458312083362897606864538544886951451635712737892166461334504753998801202856033343083188181451161047398314042805713769025663753054805802044570182817676393722162871874379409606917041939780711918495585525342757945663673621054771628452620641548309227270913424731178404013707674874388133679292916370333820205950073052277840854616080777207762510897131075733098023626652316953730019821460166031245833666644992914217106408723543046091444813146366963744931775842414338114588161213331299157411823121662188256540617433822997215604220336069576128700035645655856157299525559082353254458671021483672163629173934690550740576226758439927985048650472254187501255266830887280649089614918521294668167425644125213397183309981991339901715758133762579254063433811905840443338151335865114238057358753174336704956361784896192352091744327539484571384933311338251402016617947825782121833021173036755600442346344168113438850814100339933887950588800190787283501840880436110840341908935429448382946832174479155857955236116556813275086970445617413110085109642731408762332393902894940582715061885867452322579325475569292694857951890149280915463647590563218216491585899309225941282846820089902534128730689652785044968682152492156053788273855392357991370384849468406901502670182293465778233427102928951368959778902388510906425193834665028022029843897497300191946844499617859120211616855205552239810521149582139589122116366738074395085363568716004562390174919742405928935236416557217639075353150740137290085479234092785632401922538597409403784974083065467982826224046210565697857830653473179105892997926778510124355864000270316247435977973017926371948520339228739304212390246336014979900014708030875642390783869291991548509789629218612265173562227585796092485952436783076570599705134663937191435023558146455855850454026316840880905361424208856819408389522792368171352571555736652455433445873965753370136432810687247527940422454268759952204438947394707425949130102473907705697141163818169327048389914154429842153023072192413416514678659445614108659200551017633823668702688365856962828227735417749758396298943155443786156262089219381708220626065902516932101539458646362927365141071394173263412996296328009177688573377674586282039078866616211622172569533097443519768959377545713684072694732619011920787939490705924145479590802554998157739315106282576881217349164655503700935088233095692144031660789956270517006168532122837465689969103571032543403957925113185147487799114797089082094331084972646176006894647949067934824352501998749952767009738422034375392343222029980775543097900824532980976444733892498528854689979709288226743852452249123996141760938943298763881612982869486217210170953621413075979430018522617175476113946471925879515111149528127711183566248983935287897984370712385157841649207004074783781118784288171769355206444929881608692444195628975842059263869471306182526599969227459323893639358118559015738947555872767201897184176547343642855546348966694780444377965428279021852009725818024241790034013240786988911790303055776644400927322801980550813727935485256854703900138928049572337425373772732948302068302084201806520381861215525703152596322739097396213017626081876440165043887565592846439436665496594034835818156291461955064729150110707742703792858962619993302144765528620759714635596391609474641535913831451855197393135895200927555851424350869547875914701701673485702305594954264680604458940174851675105492839981263645682036535272451221776649669234792698518475454168223026593209226549506333688743833616075057807187950364170360930233023860513461372377463672758942911389708450368187227650650626148834357520511388915926566013443823640659126168623561997786631352617435130073165258482204476761808877655471425739823903852858479619281773345037448793906864871793449054584970434388269556250510657611374396393804065244984867475295979890727485967608027421817012418920804996333069588931770275791769326814720603529845679899828605461482633696542616191214700971340070387490782963381963034203576851849900695303665911607699462214193290103006487741812222698722033721683071983374448465076083239081807486829129738691957432501059495997533801984577599263499703823416760840479068035789514973873428016748012767927132044091136661039775270632718466083307008132162398126793581490277191730873975016088727083188293619024286274450969503789575962045801484016391937479105783139086697370641971615286883525346077370226752074275126182288113714786094086525178553840009701494169219422295267589694927429015470384301466639922484507446244563270155304065069087715794429523156532067439326812893243875744932874278117903656660261929426144789713330647066198512558689059555897694119468591711277191010260863295942836753858608231712532046423653472766252786297607945835509731993953175087616161344455999723456950391890991632257927800830587029248408890479599626016674403793448489944007649447517237451705850484205737778469550027168694279745393875269458781369278859397738904163273854192550801091078483424006805985802334560195971281521438832637764972024775007669130931658245301474142113647374661295351351472071660929665121551660263863568873966553455018218534292816483443145773077136524487213500352634232414156638038356700106712610686511210843544228378211811550115482627818572531975889877774811348895780448600289968476050531420706897601030179519953632712248404702683469749916543662625960908007918263175189412035789516737912932641152834137154515917602102020097370561407305947115196048024316974006055218104631834617297037481858553364719456072617599102425940350959018877123755906690635180833687633159622655370332339702392180379972855507706469902309471939128642995463813330168123217062908012103363048046994699321393265413328013278790134918320364857933894513519697430534438616998170895787842059163759642304002708429814080228950921620289633799856218483356128235296210850636621810481606202693047379397240270405841967080184224579014379491034486384478106348545986937365437323140244580404375819986750761862949167480616207626993959623905030678202000564089263802792545003286041680239389048590722539812103015191244636135878582962514267879244373056036795559966950817931296687369728664284850237908708395435861583009469325772735358558084484544331039732641495401964677435270347547024583573594012465915582692967128607254554294910485332797902281396975201209976628079289492819898426970567546808500492622827288085694443681333179460818113291293148514476923730473160039056209637248869120360840156464320330351232023032849963300431367305929133589921555818343366478062222478189773064980351238431312574023982315803885914712128223670945731187485784907523694649505878495879412057818024006896489001268825667419917526240012739539452527731765545807757415539586529389285666963513004866063854885918363599655981057040744222625230459689495521946139020861428128579576267799247873394271702185105656268952221610156903500581696595534465257674093698725493805484251765888144093018905544936045880567913055608290150889129133093345743293868746482295775605968986881836516569390034409509002627495643300259891568849017926929658698226855511975644027940201865427223750060648752855217258244999111026862979872582552699886708134204668946126220034683818751710952658634399101705641707093073763358010423624138072267807097267384712222504413091307938997506657928507091186059943689436902014104435292707811527986424749644463469072344051202930602136104217487616866910240969943886786601144442910055687870875337820972513592462840361827651408621526562128423050676634660465205167785357540489596386588815540004005426483466533754706211692076642268839933761300129991355675239321926688805066774266660773310262849049516936373462270140941649604336996870690704218168196681160097425876215593977339364516722365696421578949050359476757228004896625952108486279916035183381645242734122319436881708522080084361380290966583636079233654783222862667319127854153247122202243787477389884736967196354608477813438244395163588497809513712776964723019260700232744063600624162275112324042822536938240413847408373865749694274077737548866817795450984783020616065953547665667652036178702247745573838610849707006922184103079413478262710388204154874506047664305420685931865551326033024976728087278949766429243597982303781991841585177750094678483686288826991811026921249146811611381544543048156675098283792772816463405877275656041837960279407913651033043455712896543975881704797702997668206303235921938220276344723072404811104311765193528927504671744339882575837918642946640806044685791675125714937989982341974766804361400463165702415319385853429078963119089491524387083742022500594088189853567684949595382859677081441196154628829027325876061921201511384674742967079591044655232299890983603253081747974756029424893882180762961016401017068905517445033128241067742200339384614924398773348442512496781032606800615418796162835968644212428541942815504350764064594744456753945624553474567952040828974270100525605509319610390191349147130141687541989568529977565117931065186085971069662903762056925760045257369406304436984926529067675057567963808335190506794360817065979195438077803949660525882165779021434991714677280840895030233929756619874573801459127299331700352082362987122286814328490493879268505536263963263277169428634624229559440898269438490561378322854272991544345659247608436659303462738413883117818935663143926423518575982713679611320008566615058908207242232293462838160003711553140790720138575280760039069732880454267363999436488804975421631524332048347558693662641034809157419663234758355869309254160710603227174925409997417890131567669492826610283267650823797012566373426455117654596407688732011172836308392991969708746484214362298659030670930062737249675307605160960295992094153783669016276571268365219808599501779708322653117319768110802373078739271901647037809151171715123118502371503988555368546498475804073005061791480154367370932248809072495879866668725943291773278340716425304033201425031403078873170563192215134027346916894025988302783442295701852437105939947794569249577675975144929741085607924936140695196334084297037777924284395942130257708815080563507663732550894827555849228771147695109959600556137104498038776044704122913495958979063704690556349869375846142283925057361995852601446905207092480196418299522438650084930895219953705615740766044091193146679962908365815936309474269176335052743332579960961094527616623047305055918570908583772395250048445421328487898669075540307455128543146881902275768505755013017736074812883674056927110981052201909734730654276586876965267310592809591701774886760311742035301069893771050880647804634835972240121641616739678728961731076641162892094464360372561214163456026045931337040802325197881685592939743095993542950106078497752119421257121113622366757048566421014144314193085728910426080122783534211178416469045593500084984089143273114793318177918344943475737348015435062888826428430198484096175992265704859288212759806637828318429751639283099338425762185905793835054271421988617442155002708746062092660980913274013846635210462730513095277788829517160168765263754600460646666285121588212377178170165810293046943072893315637016102354816901896100467287642141717481146727061568588238234396949863691438327239833850069834179324210656167176197447383118965805224228701847551813434528801907548168527132769059130115916027493370259212284579472905811364147769973575077382247065404498656317762499894395675258522757170803413583873708621400076876167170928774329131801170408277244450553584935922100992870191872368872542474357262667048703364666200460582769354827054812452227715150266710225888809584243887748670741066716370576258173152388498241673067100008790162602131936717468457254232662292253014151254134003166088163566860142137882107280642651247892027985932083579369125444515162701940925740636412883555315437565555508473193302818404026370033717482569253136570490855604507553934245817818395890708847563485178475830265762075034295672277738515196841444108414462538192627682153030628216240806985994368765452705608153111188266680454881738173019108814225399834644360892322791104033302603412712289612824515955946187484480366350159158107998938134487624491519295376766004427395059688121083415066265208125192591353549532723004668664538410629409328182997164248934060877282290074934042498162653939688700963173954316483741057238213780570287131224761420720661832749867398012906038478855447373867485289297579758745309122803430906464053189422082981181993649327476740329437713067831406013426982791790524284916297306519166548321066357673047108984598749550395679518901033493679031775612421254585322825536616005592028706072981038674327118650870980368166166485055209621534699367738985961383006752539827889245313025063987218502629057066175935399510491850760448233577526287926789985735977836476650724697181694335488892699930938129145051780024142473665479851138137865549753074963218477702265310509613732671229212201973723182658531495279003943845856252964285221273065597195340592599588626141348258659402239858123551300586305332262545963333276432448486857627952414225774239422257919950598354073076331684271048723441463844267734631064998650915432266136205444195080540554771153087296620363751640943759189914079511101189894575749042998144863157005073633667393806712536444375556023255890753616342403765836461083351528971121842200110096365397818879086129345349322391415372232562257438354052249508795760284962739533875566950582467262949808975707442618307162224204764005099727618405845957075494945771488114952766498667660983264723423200418400199685191109274050469233671818822858856908195347213842373752887403591130194929619206615291158585314182770893098969631103608535781688283877435190983819406934911147622690335378036155639926426450056580836242222583080412593229722983186398346748342653706436900828306056982452386281754022566297461886653305507879451224700302497071842164143190630089957743399543340148125912024758018898715434930724810072693743018341449225134789630680120238591614670948512769381023723638252812053340614069815747451260154620803830525737363633881958444939051071081568243747524442102866780665697971040796264515342220907385776824641138553838888669425378483512927037053822450402624772604257037996082760794776420067434859240638300682854340056880502527024167403041698130343772162894605185276261850273958421802019708596268018337422966521673393721597229463508981125387618718718711860786742292384095132824574146682588499120844753975874089422422989015707673625019131447525642479213218584460359146834317218872948254873789736770097761335894023150624608143799016949374868721283402358501400031270336947629406857772638956514939878191963739094453305858880409376585535803435943321617969452773889701027657817120703663411948796653657159030057977652058603398523249194806634914722437448049117075840883143043509296434982133786294763167653421515969410898725301383056291923038795077189485087454504005628949373786973523276585436616022605720875338017618438463085714245521082591215793604652102559496866921422883785538246718369024229845216566876908696063297918037639237309021002948542574298978762984644053752032169781270576983021420308558817055212896446923488274292802993801135849912884883854610611331433749239452076839745158105618746517561991292455881193620401018674791264095449866782554384218928497071469009052538455792618549304510452600782608464902470800358790543494753719791385674823035981188551223648270791987998975242252532709299647411953820730500515155754411172737604755652863628829323505697645498933205665437509797899025162273018123022918720330913419709042403849058710390323882330865458936001279064803147259650369944290389994277469507327479462977521430689033114222021838991307390356072225275415757684229062083771769870123867671402654543221887675847105417293453305268583786596515427878439455094953556640803942627417579250462902956188898625960830968076402490924924172879446304970892644058380880736322554290665981967021200640102393241757098086389554882927239408347599731219928820485656426469882385894754501607800091624532549546961245717524639024284111814099692169365632472870172649006319266730137557901185021974305989965413028504102719913617107838745384280972413952699817138572375892566081549073078826293031095997087125169150124373351052464079792329177351002227192265423433546778249517960830324396466586725997498515996640192070472359910182151672331106843642393181773320533235093187220880007888493043203504028803290142645605051447993432004526142739807610960748627266482960541491469779558361084249488447784491660307981761041912173760127721138788613724705335153758866773481625266330899159338793321469860989358531724801949923383463233672050627678413376971625451613566383103849325600258906910179074199021086364581231993687333289009364730425232282996249438855196494565765652872128759447830017422118265547748330431383648238738604492318232197953373110904958964565976755741287359340329338880567033875431540422368742920937945909620562934048190991226979867959891493233190274305046673882864588651974033052656582467430575522008875163907086749895302225878821025711154463525771814153878236062793742765606148063739074428424843803373649248196767015379243406660872968683893267192140811494125693556229894584009826343809519433257397436536861626052498992763462821162019592716247626481637876258678929967233979845791877906996566098037026639884233722900186370593113079118331399835990916687033181467963905617123213761728267857832656928853651433429410129129216286213548425112652974750208671318412500779636889216374938091313702254597151502732825019274319139015459168217577742739533075102247455976760218540948262616518533010247682555487761131603587230668347922661863392183230388208151184798453180099599066744885287326612588741850012693170281554959754030938921136461000524072927382675541683826141358105973236251101339664236148858977826497234212575381731501114082031297314104811370809564996728076390843846964934483990923205709492698479637222051133428081989035426228709499933377753270449050139694659047330556148289226430842246519789562265291939931421724026589553568962051201429377823125670148390230371682401396499491292379625580693082299831812492320618439199874405548596091126376456399883732152449217590556127929046457222184569814539792352022250962042502181825808976888816020367782478518281127869949778050254750864858131236305032902221520785341113859226191946794778446136157177485132509732432106235850983826138229851233637514544220816370587075161068344877832375527743721970978961631625708142800046100495664233019771565112247710860875358619435571537741181114982609945044480763618180673896212485975743270017684593051935041787649235737870212972645310220118691744555020639899581119588363707147020529910348058376199901262867314884586771687761053252869256456541524224557052685960165524421386467415500024715815517943087346782471654319710499210983215920105615925140200578802071168595947716274008311495318253932279737542809275564938910062158473471734923939172985376474846142794547775781426646534098469460255893058509683045123719263219758239906857615709190813875383327462694348509980982193349965256413019920332835008839227241445506771307001649875290847200452655491929831440897709615539146851080796206873317489054754527886011722045853437278249267477884453738732423862647602561313377453570103665122704804373151489986937303573529081279129780538192767248696777339016455246534363964565090733839878528597425797781454210549662486356363062530789472229610913806367616620714295955189798179563950468743349715121819960428418201971010048212995127042791761364663702580818281684271575674174249986836324571871987920716230998290981772563208031119563901186166207112804964863906797427084364410227721243278691976427609786289074680231919433481294444482498014757629559885104357519275287933460920036648547757106892122120633102615722181945854683794157750071374592059264456233430356226480002714403518547220332806395365375314195751441775004562328453729936606248284519473792006259362891910205200430517721855882199603758928591189169064003760965126347037915383799550601393432841931969573285398748769512679604135954302117855578356578765902917678978577044398585308317473804031605359552302005252214596536362370345034194232251724829427746869933606372530897335109312468181048479484182881432726812748194988478442335514718524179851457877781160874656169387070459723584844572856387268011678739172780812549527437642353674388145877225926448587108621042859730051213519436435385357500958501361726540998348004995443324828202309960176058775291036430855935542287547672104294417182935264345842656178226987404710061350235464340844770723823165475243052031929414253023403863586110985157412308520600222313012754639480349262231094502072831530726991405072599546708508461187399207023054599846873624717613466065961082584956504122444433387995513473453061271377296457800286490996651994444015397157499213945566569445510310380189774374606579091559378016958401484441445678152789325465584653208539311605839745246524155707503484075539831946871734207330106714131449351864165118370121947770202383739744405805754463267653755748916757092514850612020361312411197634982914464160750445287306581202684175995209421704591187027735433890327042178996642096360990513237906319562779539378858157732796150064190905371757425704320252576810150357617695210127903403655526969558543455723140227711858028960067711484674518964633359108237144295805271848267624905085319979200190935362654093418912819615141528641003523866566212774743261193761784579231369286289844710901850904551873542427858355324104105274180843384776012760416829818765136557223324070181133552751859090778902990793301853664824528651024645017948245752071353439169970546492705737268609168015837729684773990242804112563495703756333807804727170043873087719321206645106125808480561254775956494508518871372662540625057017735376414273363177894496152755755173928522926843237444911995278598426098994917240113089027205504952929697069227629142935763941027463117433688300221799541848481338494368016829660837131016916400701147591805370583835164212763150793872539000980440124375857472540245832344608952409828847419142953620236565427312662184276544135885395206542361300373138546311804750062589711340556804344324350568339227843119003442737372602557649904206712528705585427290319053482568949568300215452639315030783192173998489507433561926546829756104542633627481485406297230705316877172348856077423764477781009692838046125102778069902650345213575445085417028891683261549510083590122694476249503759213573285719405055481805585249779359117120758626747664844769005762419239564738080135145631890096929497133928349440026919469863567530238514796959751565990543167348019843424251267863104688736300789588832333135968542224938870542235162536231365674086408426246419177670532798795643926983737211258203476263219052254779738564975175392286523321807371261616252787003497009256931286262256466338108576487133960237138268005401447590993602818676747331558676175685646740257872758664263170799145713059347246814698819054657745251096651223934344177260440473170953485391219717707277204925227531380653830867403122308599338007934593719785289278582290505197382932142203997468020096288881540613943487184726382166169424426849749319814572259352478691827663023742608942964948359000027746855467747082579324732800723370341601074098559489205899720788507507408631310121365596635114802217292725049901330054898085444997536835756325188152664703428847669815383655888554858122476537719005388582453703553935426318372500937653551637088138851922333692668057216389197280944939660894286994867445144603655605524869544820193959411301291498433291689044489384738029177285824788237163621558573895386679509788144132973011834778481468632073314863467457281110030526140221759216907406022722296055151080750128169221215014650110548805811889283051043210307144339779946936233593871287631834261025719491331480034051498725365642058419765134640918583056808920005239638727457111943526574094743606346671860532350109562806734488786499241463862904788835621937384916511877445014482522350147563599360193015953866804194556428357349877647495079310346095684365910995891401401441122730270655106565109099924058521462233565657771808141605143120662074012533136781298512176515747514826328479007262005820500874112501082885534134610269022484803276793725106522426931152724548479191070790107799327538231808926559366529684063336610870963788105292559118485103113697233078764441466286772794887792640621336688770087719106826690077926077047963802301565451126312820416511339907012524143226235827495498275498570729495267372445727498692797561554733703881650746910129136784450748607092134345034388754906595374441491756661505892428423926085507145527299665030898605706834212603047480150513882996048189234120284903240623623893569258873869378801803736283341110332723282411061989680193597951266056278946507619167859736978343238586525373246707928937674945200806596543235174075304715571993553675679036362298292576558111698342892192775544667119440391118278786791110324977783537893824804562049952566525502538882479324787325971406904845846996612735247681127204552034299199479215616030929016388770349792561294946847092147896907059938475839101204554735740204196054402382806452162869056604353451756838287419450684451475443649646352510958199852579218401278065646953970915292797644972321744193336440109692527928031457492750085542507913618061195083034160066209239481126724925067655861693065323977128528006211938223810588431243265151638301405135245494826770611092220437281212883629086497233606767702737098771365072563095614483068850278685494746436513948213645336797573265071111454381741618130921826559496698613023705836452768263267896254645946544679307470183336986950056541273615510937916165480633036698065122778459014831299719375593522142282608460892967990389986862628676064458974549611144286077174514418156399069135479161607625236410052692538432871011579454015239324864161723300318340870918414205443892889540831399331144889543533694336210412607318618367266200216488625910901230708557677662454368008316565810921283810899289213728401042077963870397687937196370974124141109588396880421071371792702159866996533947594911446617519629148679044536359592337785922929545179953647666899075919513547696006005663527855681991609534082879700273805798676791702949306328263682591468893355044433221656934992090882560811110894759081594883076922102857768583361469029709267942035725502967149169983823446855806476421037258526909883980046773647435178709366037027900528195930243826130255593690829430718723981010417977730178509462953041919952529573861540987613056439368831195614996374379403844505469003411340298861782547226837716838490849023085085665956766293864862224539314006312229701079978659390223447425494153745188781696150482311548579593930787128478397947360486870858992116133434772888230061738436240295631660340008419685717498529599267762191834642663086083240675109444335129162106408140404062350221881089202043039979877902780908349681612813835723463908792237824683946272904549606760482779739208814981767737810203397941578443819989277680032900267663547561558976271332054956003075598297553160045057910660314281831027555917796594831775436221610693121972510844829177721143341202649570732384692470456914526312857306745552958809463887716533018891856200816124028287164940724616745509708111796556754443007543415124919481499209456245986078566212417881932426162238175917759906272842428672670305301978731198738266544495903574106295135586664540111961570085553877761607781473067052498113571111630190311835546786644574232689536621393080460283531892014436854227362052151429130968660079562516463374653459882043213584484420382769490958021453592218521764843201917788374164781011780724156171533199195858206680858280853511130998340336578344710816352185409691183643337940237434307723702410026263794114772905690168726847114993942862762764459649352545969126663764154567595161772047196775008911797069264177331217882306791421521347687144130810760114942302873863225658056485480421991081330493580598985069130987041658069462839850386893704213467925545861443611760566419739249358507022794198994971564191317894546444898557248586466997267241278907340399139347465828492165725449214061750258338055312348017720933414821850935445026394850468080797666640007053297480184457920542360043117658422638381051939557634334620565089564736866878668538471635314185694055258322015536249025561485833547037353236397764936746336928963264392921999314973395015654366186660548825792112693280834776106672382129700475709706390918678456542191271746565430227351946914177514115804721094687145136863565418717771265386784793740380253019689316247846768991730963560552125416056485203590524996069293845044961287535430045430895099161966628050550038743844636823584766263704544990462482220745646995099564536070999650682721513532643897795212426129068310373670246726848987959351600813056195844382229748241451594415072340264911697072021018652473157895800034203759307615759054770241063853640684778041370473684712209033561407798526396973167586539421807504804643168176156081782208328656401916902980992987728621320491061203672165026700754653703108867035480263064830695234019828430979191249094053085379185862200445248626977481114098286016059488038936308776034214749217954574097905588604598505910535712394319418374249827778820191242480488598355998667812873695084784199353450884877235766483255272277608398868530498400684691371166205161183835526073411149925831386232084848353096148911750698244536040506274394646063638486951702781032262712184387041638552306676895879293125525030601495555137148774864720213491822411239701073021939296453991909373055905052378323362925014528068624657818541673269546168369542014699535178032281737260346933998619177856624134875554287530538975275457148863091861605477377593227183679043637511878589408085239640473514479387418064037584068980496134584159881105216095674340718469588217873518241904118281224016590707587076193127237868625781485444175272125620195225811184873882678075882062843819851687614247033271690453746059204015565962559969725798905016191716431479801610669463621425628492890819293964646516552012719908801969566668848577192430222198233449771823202195308425760578771518479471783416345631224505611733975855960552701770387035555821077025151981398634886511637066037202556993141675611197956648970806339018971337860427699832232576952176444312345411427853371200565772439290659706928633601364679843830636821821617620614193595683102160648248789575842683562310855135020420677284931466171723036559270745220150435691443020854666845339070600925792164505064609268648734259743971312862586383086362695716062388330194566810240183237871964989234313093718964416013661092295891386764787472254227885245285982953782253092036564382595692955401777685051886755817619755496523664333042507019757632545127392083875519454593518736533542322783600567451507274732037504888057193627384376589928574487146063376848369587281603606666470190352651821347274246119158145895382585665627908021238994616906232389569670780179605796238038614359858823542140423099325822843099483451575801469640670101139489518859439328183965347696447859699314877598525180483211497200289332739962425941777321110689887160835637143968930539980899405182937689429875221571213318861987456001839710211350003182016918351485512614919064368836642552957374981719737196441826889330510946395945972072887841842056824763017516507529425653355718732352640903915736250065174229137309562253099172768561327255579376416316339709303828703486949541986045588373034100535685665994064205844598895716020780123790417658813527754131275380111533990440250902054968556144899874971820140290885666809263024009855316710874070515206311250740610542623707994724523277527435880262340324951841243326761002438746950799076333861208069922236216399267515886718964706606478886484719894177241863300561081597336908196767603510202947171613819616174476926262866214099892071653863490329825167445551726704822206604300400815596709349593330566119501168324799215379214440039758090147783668926427690384701216952971246695604719668836900281984057683126022140024973957155675550845479274473321807235071485732903707237361275834784906357700339033775308694760083502888596733375799487223334018768578671319234782695797951015610691304895764371195793793674367580441946415378728471211462105027270169726559654864525272321197134509204036204927155681887666481060037371672122220198573034164032865965932961358311249728436863398569512875330649633663279149537536763663321350017067561485249702383475276845295902262999992333449740277583060128594016178967964363658297111680680608975332755832666565088684434249679002913826730437512789980022256521975508895197245137377108517443691290922544633745320932260788414403143359996036610208575963268403278326441307705843396394227655237834715329773790209313483636135533152067101767749098141390441164414250064364207834279670775677692362587676244390480794193817303665325612279544124468906522276233207661988534265584491244207335962649533427701037681265303064711446653591560765012650083315222240267942249482648106750289283547338886714645438101456489398988398300039790115368535421634972341010110019998715412771359110598549540246979582123503246222584257387532188259861788421660160454222510167858872111603026607647822519568349328212305300668836327785480245083177494256237278144890572687468473837138884169277817159900617535487995399351570637212653599162619425433919422152556248909718064993884009962751135999191948104213117734462108538221948360133110950175832850824740568463784005446086739378275847501956038293328719500342325612125987828737412927051241454907158474363574423511561385780646308728516608465755516883634491311920390403172160240928952481187464833746232155235562096760605791605046768703839240173825806246842621584107948000762945018687094818313400511453952144391801324940839731222311437039350835110574782593389886502828957074649208384867610889824674392700829541416133194492127488626111438203379328127350542470645507121562813472043500996215587224620299926477427963353618855985236813169214768908833633359721572156008616356756500503091708703125372218780192973630203312061854260460081025015916595320248502119850059546240171317976601937319510834871365379064798727503158796885044638286251250257111990732962995827319147774159213666296466642611019274518059680879208566893795562957144885551293547259868877221618006263077959073506103137808838565359073573845238975641708229774965839007154681484229624008157843616093001732717739767061155386952427459046479277760526975094854502123689054711867594424022758057999617645337652626751745139927276065903523596266832415546166445438697087510582085357786476565903512319205156023290128564307709435674362006980796220510718973064725031851140696130813352762944361293528029924618759668358401824673996266408891912955291710372928753120461088820266937781775274788715359137209972687482033724744124126677725924877609030876827900148830284494985352519646705230776884405420607698598250903230553591844246974111608278097741209240993556403658237314327639335969718176286139364258088400471403573051374687078159610060794193388008361952480843660755739220490088558073767183493109134001483308815360077030391369848339337969772080109118030393060390281659837044174594848686012113993255110105156005613853452604760819636029864413707005298861254243648320228444565819954034565034493878749780204895477445355653860471568468659039104312075527378505277979770983422161823114239666287533415828036620930870283780638618237795764796361490090192129187828704028208028180464669854100551958363347236453950954803969628532434292906599961856839190057433495671855398084944251149647597837518491856220201265003715795138461393977869895644461353266672642821861450296410301821201662961150276902288338233181059199152046294116927923854190864532861258163168200441538645979301776441629127461181624658177268329851591803368984427127237975698415296099675698748900844552301428730094874724166225864159833953075703346845249568197944351543152839993815529643433463232798159736355678619313144629265834976731369975619537177841032087994505569959104129350471317957756308779824815346702208224900458906927780519555072571589494930342104381928859068985915798984739522085761832026460661518222635321207791525116382902117255612025745846656792077530784856474127785563377844685306924183589767774890202104037525259865050299722041745644279883271047673162759817206326788354078225072374417239550756155886097813666076557551004865593178589102618138417559504496658296594715873395078710423424507192665831330991110213734608216727769702860338166294296805791665277041322619165268240734153918177481806474940941443046871300251787523902074373383278168375222655022424973174453467609640648937186532185472275990545090168050079363843846560657614944347330473572807520852414747787146438896802364995950879279456826867007883509897464882976965093079858178465716706888805958087708626141774514931405968756373797747321525249706013485971185195411704725601947557536202205424848362616852831916254750172740515784832376362172973302443561365736793249853388778276590129315140540503957753419840240261305519510185639951566999922643447542394410906015448314032319556330714914051245322283774848643591320976367625264183104647458177294864633744638058440684595728319483706293257166885800868976389210293349548610069393883808310043348692263428657099303451711218853329470548345912193117260933620866397454742758916587342356463020439173065219277048086066234396804792540355157511270908221887502883308262378769170323376722387236197762840277508549078632388104323638278748882039721524431367103117212738485982947806697521994390072297230100160800514910237754123009395649588925090708944644146768185210293057517464129131251914998408421722730475002862806200986111724183191474555013986150843620642029926996753265560059392035838143940189972775649951270260659551665326547974004273235199765020956381368755693489178604009831969393997712318141227907050220047805745940065767104619537552333613294546182833486021260350971636091257533415924737719156533767775027273883713639511959049672587299467590722548009750544381769937385255297891100657766943747791091495680518614836472664868352397792808499395770804917814502872445365172206132037123478868397600143507844852282072826264448447187678778077474327817029865266184220579108959112298825691891918936226218013301323585616152540183770154972066764289874171121335159306360665367446180722288014014806473084715368244681222239195172285612882172686808762637136620392054290262868361385395143215637275439499040097169614847524959909901059590868480664829718934230357031641586212892642760819718785945721566751764553236937799834377590778316297669757985203919297832421334961032164688036112862948001586614906696519971947636326942417738292667721518907190685065239762962348121839828650412743194232308946800791637398282752249049060402031983406885181098027958316674339217796596981290686228282935981391365681918224635184781129695976422669984395921313346697980514622685443520183711667115800816107016926731827118335149242648074536523670143878509101232360005236099604948683055053698881331039195452850155236360820768707246420594512675921397996754608092420162550628198765998917559836604059985369176216346511856519466234308651141561686734983673006084104508663410768306681094299498970765942085811966353278198071603138290014563940240432244164142174605478218858794149364517637066994434290490350695950776198330656663802215067956387106352049956619432358958239782497511749412920630473757283852680094722171502126398562362396927626277388822374758194747352437394077525849208060967510458093305617254232133310139575149453193445982649296049959690621908441588339742937926582211352571475469432464895614117342461504731216614038309520248034961151642596864134595381514077540152831403872199541524806452309801057365488542849524425044542668926709012408457192479058597839181300898266864882901921359517053408273994117838757667360071235020369803238737716035161300240178085007019725839263612562398321031206306115281067907089022563162981399603266935121511252784255052573165018358952900820203418154794719736813583955473259566935306580617913578566665456081711451720871783170349359089385846015691031884325551726936028022756752655780544764299953103227197378550885878208396164038561930570653345792933684461600687876288019874448319706790878924948378522979804462797255808848628963206205589537626773047505197629935147422038645121539646732667287376130824721286091179626347755053618687833350311987961202677926887181636273518191830374045372083068609070829097472823891549497006898691551950255937739324348661908386383295474986950199899685779855542029158323289774466008622252632681739603735519694234528421784787945277169504364846814293152669345111200481899413046922887258432412824832942482618225689163732995382021281376535620968965018556097739626851363861856984784928422246209495684334282454151836509371914540554760887008813621154588577355361439695038193367679139617181730453454482399529732341630988927485454554809132430368785366179121915940591979937074220232184639689001750951060277908719111374356318847172977957055755938933189594346478568327942635978831906384193718918516534046950574723724562581605504111544330175708706647392441801679283129046144378444572657707217572420771758862718831951181476752663236890742176259661521504985087595115185463042791582382986350879628408647153313783053969358147753416197931501642664311429360237668317599140135964081469712358012619870721659876404434252145139935057462098327763750192605547990728412071968030257564128766021686099893866299741403738501428387222748079404878940084143077136832271849722559723052158473818825544810397931913263344395458052280860698896634298522560194748494771496531506523387107176804729707254880899121723236930016199144395940146658793647106701283882588901977030746768739969598877857195336132411731848252460436048450415143585957769617688393495082818519903919406390541923956814651653590646640436082952743412758900598964704477287334607307520573290062889103627194223243590724106059505525430425143258089357637643164776379297300307857089164766975701493349045608847466159127590054519347349950611371801556229480775197408589267908713400573397540125473176793476155026344186547394035601206191488349421503996867574837841531511004613858602448567840988880012067523146603479293309933502056944384266152876513874642031157340086879830057852803062911124772090602022717683186783517459095441791037555005568093331070836632855311596738292595131903398370590008754414234213643503322100337321800005572499121777501524733297038802845787378978184483792977186982053663207991449650111152946580832257550103675430151417923162238147017223310458743560886642460939071610200638910079017481713104266430304122982968396086245592939940764546836798609623053864533631486532510281774432959585367288299377304837659443628846911434053456226216922776771522025070067986243733796045075647424325311537722658902624826831761520119094355095446010214984125932381011691774422349147484194372118646588482017514167491890128668242939998029231269295359161355140950147418844084006098397152573653529477359006668183058866877859576961372678493812882666113843767696453189000229071717346134355645597624456795842241612732787603313813690191803187188725115924607784156329796789366770844195166197770896873291555118957639917110598613953285611039461144073760613818483673279072913586867214409690089739004208625897807160592693636795354036507416310079711941640040854400201766721846613219516724443437318446983156664588368790773072758163864513358916573050045576270436508396350034511533393345478657240888534782360577179426170025893912995375700611898522873862517172052523601926572073549472399333574901952777723859522639530479752324370592529778634620194151840565099450334874792303812869730770125214082625693657976457336576111614543978433936176900662991777077987231218623051017569490825512002554267171494548151036948469706462216935803017574968444891320385380541978106573433275072190720099312063681975847112562182050018290766578905023529160891359881255809787145179046444046195562968296242302300236239273929608915151934758711940290601472390534687836233362300365353623229567606010869289148237806612235922671055906003319476098088789853485761320748432206187833860899448563582211506080296075238630073840703695142211110095666633266129563816198127387745044175887314802163805354671133820981359001725836935787372775603305721280808524561772696611754405660728116636641622261933238864866553971885543911493115986217418678802661850702294341053360727732791266391321655869272411553507643429475824922225079643075851637019304840482742589039407705252556183298793707268585647103677914415997335535564656234344338404809375321086514081227742690172045536128338729603631610852675898821158435543193612419275311639382689761329742016422586940896439297665818993841829638506955637955745895433817424644525228321316332832382399233680565785985240257330882844052284008120362585555126589238167059352113453742239601963839735412419525134145326310523999203732907128050937671517066904852657445687739335280829844236599320615691723923023655008222141400802000067932239156683155688000006873188883232728647306115805164723919974636992403019769595685954213235322304979252186062729617228659766017244277655516791369543913836179838266265689636621850928208064068306293389928286079048602339879979644041836717450427335658317228121553093525728574064593249922382813498578870390863742368867705542996950079846198974989817012315005754594360917846940685216967763986872782771234349965763410351305572212869686714861576630016011560436720427321161653905974422494240359819348957331822347643887288255910353474254231090842861438343449046613077732832892849256678914990874314570857485637045835679885607804932390248699669186409841583267403503731164069954885078415538747025659553983411886235576704582867097103029697669693618859948684818251300013552979114396692693853171655963072551575298744046274732467985065932913591113817507654349835002516561534826123290619784706157028560348253899163041977526271255829559226592759772405835306888477725106850500005914909162254802925732631095806291735089869664038479357475619441362867842113942213794431514701475968633220380429022521310983102467680348084794881497028460204471886669085401398613440629698102856612372359963923716647540906234916755634357139622330068897925909833052068784405140063473111261105414339655437061956553041754734431712804510340026220446204994781760499147262754249910598401446342773087887586267938035456241831457169016700061330180559378564189861634572984024133031120804699582642884134110267177537227996827799069147047776213529492103744049865150548195144784784565451423220563764274638813404405791688273770608486912552061892012544455649774565621176512115887485044172836189077165811275525857912712165812823753347443972006646255549396784985610005078718546419290133954983669442980066348874724412804285120833408175355778075603451310703224972629227478037871272640177563030824827143715889296929203721402440774587390432384667722236528312050480859005747647567012489790122867920253621642882546626339834119867241867685543316702490850198753508252574755428204004106018783577772198509249680032388242149235634866841417236111010067499152333105624011141830335644484535335419196830124252019696633778089556035933766004268787738741589570648111507954322329284002849689481793132430248116368198983179558551493406796606634736560625835624413846215503890841892319272607296033182583167428327904359522422875483214066801086650168765881235328894532615635328082942192149162396650284522610916568852731357652544302806379144687779160654636208224683781640254514478788851486250673722605082278457480414526194246335755918992664295026465205234325121579780037831332909782417952360867456712699925586583214231213600013305522644028398961352749466478336903497422070945454927893263417708265464325270624546819005736307362885031149712194620933579627401890898849714671354179067526305806767909484541722370285228282006592331425714769760891569296730641064048571626928728733936446102469584403544231630383790288667665513565089246764108709256188472395609328264273008059590280826334174940275669001893346844911721446192932668894581961604860482194118736723124720145017005315446043385329144721140728959584896167590537666588813321204385278827426380127954772354757498450346822239935699718410314912661786526792709987331714851614664997442133139728109427906868953965379353499176428389226739981981362174066589375499548850970725425126737573623378390334523003628554847813598008397167237662105897393746070244320066288884302570679205693392249762072594341222651834223148271271784954422302922232274611856474786776895182040139602106484644965952087830673849081069071118381530306340024676412691416314085551418008945321565960459593461937132272040548672364326806543577900044123511785509741162500224982038559517375582765310043981270857493778337899709699393868822938541613472798446968731397833680758942533516295268633149537647676835090879458518043534420022896066457564042369528345113242761091986370954398238574494137139527665099782781527115500807807445579674027936951441535012241392024551543660745422451139224604846855797200149924545726655800556272650138388503612004654061201460863063809953918735872332891399835622276143403145157639732568889128817018223480638223630015983678225862230954412020199604192156867245187015512269677263684240682110273373032237377710665354533687655917996827291728798486420155559839212595492434201542183707059614487211005736209333403806124038465798632371008918591629255195743246893090727015885238840950212112478470965430489315127709522790120186992952365796054166560314564937643873480497080248719201422694224056868012777625132986049746466170563951439279657555185134856850358689545185084574189680723585450105046705043297437064966481461508551215280093478846320765129319758268855714559542254412142855077423293572939128636127545149753628757395603430724478701689569456517068631062663160539295686114919246349332474279857459993698427147325393376431069646832040216326659951465794463668669329856423000679869091174082090503016107657316232120159829844046583250834775762840553549227780868383424862965845246726364365279287466601423597643924593321997882770578869108872548363962789689577830107027323171867151717380166685753556554869091984451377203863200982328437102773084907125859638541400805630190557125060717583638282546410096092904993426568563313513155155013964812375871886757184375686391421252345737523717209706768384953264535108024524766206320238652464631601596379247535144298326502704903763162340773312091066708182436476568175498941807717254880226234619694998960982779771693863334154685950805620293573316274973342135607067829321162462567117258859880641471487648211153995379036625202346617559449828153980277379838993827953172709394133920153048227838866560122340415589803823900465012994350876326590357996128502966705128670179470117249716478392567566392748534286107702914173421491600313048220378116743676193369603491164256221183976739370647972588728613534308114717052050616074215294813694378962928235126792444049626709547316644092261059299976468581808521193515428968015158401495820691453474746039915782568108465778506919586028892169785212311780710028915556875757852770382341812714423533757693342385151321611994480506654566618946532055189574786277732695391674839103693538799007525123173524264263941971956080040281506146399991141146187482195698197212008199709960768381878960118378959508859624334552399675108639478542763402980023351282014666982153611506771616324964433395379747456190972291773332644527881580192130077546808370998390094790613460927092353728192783037669587332472847188449192402705896757470690959724279465274076134463669769804356930886467415763455795045590879906694679570418078096755235804167298092591682964227368704201238372698476890106110441498907237587347158014054311147560545995251260750799689440787827354682158004011206810685884507259141951993940872801674839366976578065883968815522860173881406230528276747802602822605032095572223443898848374224740017531775955389625173657291414644438791069073299760696692687547176333357939459991113687882659935798029105965691767394414921854132556214560479658180010199563588382585327496714941946415689695139485482596765772163026848138765545214806340805450927856721256897505528718286258545504161053114560459704876858397313785874913104273259027973988712064642775013919742928379967564366679570278501175321298688723007765621920873486003219029957214130362769925375876894950379947892142407706754127853034073319199862516927781459678812129539794678491797044176190499047752632493607427288436066346208566464319871204606324847910612292555617849848496069310057522535083421494307292258073177766338608285015345226912430585944751389674069909564654392974712691405550708889995548626366666065629274625000824748063333352179643822228394029146898147595314436595068729401934626276088771589438383394544634001810391427368502278349779985828570931019970080435430671924595852323786944356305900328829050258440534476459935887761794634075041345460680766274594638443170060393272385516267284302097063021035575636268345657576036288755673515316952668505439059010228970112473101810080058893671616806601764783522872298627750952379417121553756428905932756034566096239517245435911211718779471521979720465386664848025897052471989461442368163883690912908431567409783531119717746681147711816373129238747006184138787066617657805136241668597180485343435279415756166490531028719058202054890704244465848071899836697461595382002869099813007603386460106745372833872177146651001680843049999817600321670235685315838686562185928146506204906842908469059325525371684610937951535544446327034947104190662061387136013334503509911830882444408573220257209520021285256268628509543815852271585147001111076136492165560370750536563504173907092237269216634190720559069391628596945416685088255006193804239229531808532631125229674728411488475835089929429503335523346956699251302248138547816669075650544886130158201852088092856701982849575222355110411474427576460925685998101175210347776291920102863070985583334620637142590675760699773238643961319299323502707762369922971891639017034290570190189538450954931270337389458941634190186130997042135933207962973661599733456784355640264457014624923872113734172292473046647999175293860977738411090770853865069554285140019220414190209799260567724583711794918935260282893625761643825401212366184681889961299961980755582719717227568317409090712677871307269754534945146502005901188535523597865353755143283658080970665461440724495342755532940912480251962383384347439983286217216879897050635873817013817193199791535065669227001240180045159147229255120140932554921449199664753326567066768756125877334823789806101669000819782262992615331502561593962092480015408246810474200102470781150790559650812533704302348801138096062837804678012931401626121414336758737129387715902479146928214711283159344392091092830698048606917092722732633637039316606671213576709086879784686419271998046496557152616007751472942149292150590469927557182478713572035512959157337918132957894948976063124106712205255024552652804174943623611374740715476803329751049536458792442041432394851444497484083921659549727492469203229084905376086837278829284806236190571174952826832250252043212354915862234080150712290710634323750080648960776037568653799069735960673885531016553718646897530049917538234698514307755262150964264661153360538986930884980826165246626908687835153369793550308087398636340674350674669550729744239981635634891685468352316827686536431851982576825445443831532232933819549959801603597580087245788568285470503761678346599506941498198681541042604188764276996348243039220490739980345267250428669834030056571262276643840503837755416813477302376212423396108688986725929936608220053366680913970106607963739424741074463984773247500348660715363131326945416554164506826311237786411119697767256987757117683920551856658717918740613397673111338719746094961545933531025983028357985190375852231589228380623235107858927182811226991022937686667664001191645274028962675317586321571181895808397604589828208250962877670497226470842392867741056204095839869713548838650755949396913890802874175778385578914706812650304677277533430471543288580418448578149567620248803646118243296382893888383624516260153249167911269192746235387180974852024051296617535985745201649063010672463964616208409262067321371127865844045745675677406878657492839897642385786037387204015803136647177535409027875405908242735207557824924950516573568409568503526989019946751400795249262525767008885240594934889823882468744709693610860795341484898222220343046455446554401077441946879543079792160661064787103517713208785558076357055335474817989170352084835547555458425860000778478706603997458756780954346605030322863717393876412003779486996567954325894450727208345530291494024537499305311725571659497629160078278290881487880896153797534609998032869952858593518582718597649476711867362541942156726647134358725187252694168069437534769284454507903143286176738428143162839940479317909787729360294244797951435397566708075633955170247276702597711809765460325167419312792849333290703940896278891338116385177091181163800963298778052036950115724745617532399826013555874056205923455954267152385590890759754619225611129391916625247445163987278812947401939271556727747992964580743002347743019074205504845395781441960213835358659502135069961647595840113922840242895541276439446305006244662192271920387607234404417205599150525891003005030228332636111641510250119666970655343899709456068198523622740400173218571739754141835323487630522527310426179711982726016102755414659250873510283964426050022507234792925679141317441687558220193151941430063184494143205002696105141006306073173235157474567345599462510711580474378413584383724930506804231290385265755216852408574965622774620806911356559851462273940604909442113619542756662465398642908516578912797245942808356862762924981474360576389475184254684372000307526701504029649801120227997383489949592557352244461043953160837203302830095488667377555631421263829491988840147437155646654036793493600511433022077082611993731179754128785485250965167874384896143281352795216406007486991847657703030272078672197859779332677766580029619788670646827873657246323527488346578390619936930440240973682142135414385100743380347546924333980260881070879916379766331752474409449829386958473753173837170538895177883079028904147386884045604102178797529367419308491001450537969737004690026401103590460958502508938309579447637271995071571510147871844360448875168492664960882918508028686211908275074491875051083928840418538167814667859991910851991309969489197340919730601135164232508184636052101822209771349515999545585788165223982417856965753401895464108724489538279017077926217238653196577424453454430701661118844493720711938813662707905304588966466802172521582715928655239122551721064418851957724434156743943555610463756041197856993406212202536498267949981500507912589071757072192590134642328906563898189188726923462910396015613250532599119672427562607610810866601591133625525378781614333030205624532176637197184892192425568484101980685855652066012676127425935223978804653994407131031917062233550938993520512471392092912575549388215886500907066377962830738533489506807303276801013197839345661539520712743559589382925082196528029235558243566291922261470715341294379908468253561735545463289694687964697244690397155052390257576293778045902796623940627069663513530109324400122900472955128745241671580619252568801366450946013828408618767747167033592919544425945713909857666196282982161787807637568182057274582269163417958687032448577341139904160412182354069396036322987259057097967677943789986145937156969121791663941317341394129310152842034146463902487513136307961500013388424224981005379903125115437036895355676693076731646260960237044683025994428504282251449518352991185285404473157377455799602133556361537140426163132413282187626786863127580627021822676601963321637412207915724933579719983128335349632505553370031232451468758862327080162649443391816914615285111545538346602325382182553820504964158409680594212025729369549319826540089645746342365719186338265878195882857260368254832091455409123335026897272193536678873305642796596046561242007362519239595570692611329413851668866251849407287640168515696635175279240816401940504313134681828501039561923503090364733952957346561078759165686121800773436688950013173946302162880664436100103572120278707183327022126608452169086151643564557117546142460130009268991133315234589670736051026585511023456150076378709024753345532638651291599203139570883770325764583580888701097617238743192638664931176304500231884642253631366697526452486115486968853531403120892160401072476937729486023117353345995926580029061903473553756215825620081775545715103839177932760871456026879958415425489118522300401734145875628650815353373177557502285789592768380039271203098169590797588552442720744151932428831892623112762321285742554555460894281727064563553193055951545706427866101363750732785835149972230767491547906574216658966050820302425760945139229981144402616627982911036576473811356217155388753465185960379687107051345063724808202037328173865035846603960026257129587184007556969005073976766630313756531636482447717094520999040792896331862484132666335918618682942503206591008761899368028445752243367819032384473387036020716116552403685200962995141899558997480327199160633851517196111325745721281157617689332523257214364988407867373696029835458069441707185175357616017371809999476518603661098984829073961265132021064381029624416112005786087869196621964951716502478481257405824087868673458376197621065582524268723664978761940195032400728504956905913874385283542065524229040229838267277987740299177143075788192046169499073290943166168470534265659065649506539000647518252632336651719669090333626480035287001108694299563417363671109132918049315599174103308876125336359614887258878568381158964117134663766769794278918049095175340622606189757253505107898421486736267130610434579477060819574123096744834604189442213836087863835798669470648875552272190475857205080441863483131840407603644753645100934643667230524110821718325992779310369229501487776333504939001772002514188455466615372915970464882307912634247614235645372311349906143498071136662239181064693746592553523037651030418014885887815330996411947714823943840811865545991202417338636031960707199645819322770841079263205219114448469655656070349197392805732167812490893665286120327098920836574462270380701089397773893757522831026630792659787876704004163932264585314841370169145722884296710253223221957079066884023477868686172953177962852787620037784911584612368527968075719017293096524625275458232352122017095699232237346133359333740841589822979728842653591711245424395793146082639825924352673468907710761380882602068921365496701649606274647565385960381430068674908403176997164188519577287623008793413797837285264154756624771566785443739385610354841001281337905550249146802167696171891883037168027153236761785038250931456377634041273019184802966719233538690415107765338220524597974088051897710018708480286442655338433109971792479613729065162545912868751662740637531609577648448240257987841442066224270770518310590327237903599774748843642301330375439854160559937485370772873749267001507578379217421528606548294370814650639129355237739203767962648456566752854517858224263188388992708216659342528522976631270179365558873001597838775817624333887989469560065485172611677360819203757963965555826736928276874880401150010645535367148317765842630438474830623618243444056301489326381158447405662929581878448052927291365075752543916436976615902477603472993991258198345911641137197094035161113533431083647133912621033948110226793233470084621296295155966238595574975201704454732238803946079759515346268457650551682722006048806746154299585138791813099231239004513603555172869386090495247048517166492193664336745124052462814379764558254676852984221651659829364506174306716931353297133345177980427038755240412436092586816254562653479888746343365401103348908458084146132258043532320575258197895336797220302600505379818625691869379673766164966224485359132439537209928456469616908165314896255905499198393039601500161899538469012551055015441366207306816188312788433589101841984177825754771634062633108779774988314203880146009736096429039500581606522118967042358833811553715369487770906588631827640786516490744552756544497969498824882501455778984582473463582940526854263879158682420055896799449810535400007122792083316852588881800788536219067893999883117509638506857358222079286288382619791141298702049479881361878908225589978982976240634222056094562544733337676581079197473696409644423677408174048615465161986914182384384023561428978302699689105150460968780919835947722514383899461149370055652281120096144977174456906415605772910746569421738209645399938707657697797022341884443332648866843026876052853238403398160407864707349945753715951893437989195277574427619701062200441642510009735216266427317060613691956434976506461720843991223280515088661070132191945396976057210452317772436255792657295968069394078511269836565043376713248327869764006697764925265512037162812418599240153538011123498328284146661483058498346303567887650557603312551329779406977681764906177774338516586185559445191405607449719468025936633830545267188556903684268625193525545731437081114517321184859818083520882843888242570844678505531137380555302874352582815153924048414509325184369488778438848693478759350149528031342235739644357244559748490961105563103393444022713089074490551557254084084212115604513115936188417726412547081689247254622281780247579429433076139423497662002015261055183221563987333469956113758772521075688479433385692413284336903738539605062117885024543520880812058492052627161503871186164876369747108689310199525531631531892259511298233000372350764487162754923854260043808825598102040901905453385254443810647836295889120200725777323170645800117107664676595198183781830007879973556372349479112168537995575189658237430615529347665485159514945368356960708498120422401023337492038870520428310376640828956574289543370716587682537907172031638111176136704837474063730916503604909823056598466453540787928393981836221576405455091408295653845304809859868475888921147754468160409792747766345206721279511833942230856780982586994319104674561707878795784594821311138039664872887893090826001724299400130944426817641110524263206488666593946095903161565052100528776559519489854044564842647390564511773176486638430437537153008551877234694339595386241947737923860417997210468854169401063344112505370857545589094465562644392579979456738292216350969455743799570667165226460801939378505890991729768726527323603195475065808051827470123294795004175416583386833498273405959223213269459550718236131934640641472744121845821027772919840468356263688406246913815128787115846398197713663683729787653644532358308571348312639194531167586536334667089198130516800758517900877389474701359344070165515432904831721953233142247115985327194868790227285086509364601100204455102664917338264447034768110467094917600415808330312477148031575615138561261377397009446865164885385730457653474978615990022237537658700863929484053553228549598158088540888482034536706523375791476218837562343927994258013089423753537534685448628063134340769364467196038069032483060180565105891711655067541104767568112889807085390155382175855089256325486561906827863425244492720413142541920972801481286837685065227612301774185852637281512748703500366718768325580306563904178009504094010043179726739266212066267093260455794405607469739420055222557641790478308171469551475931120358071825036238104808730974024998786761682554190601769236510717795913821617319618960514521770298086525616195544307802977997374551847227609376409463792759068254358437356895574599165555174171177620963515322195822141513129647493512606669835219996133631790451292126380457853721504902221366931883071447612249752681664210706143176565250244302275891350405893935480613758290086979922724668751409472852686404883359965490408793384828155162653858793790858122977972163743471512414981589779213529050939717474735129582168088757631986637558437507682310681610207294487060915687920448302065040662266041912473503292037718539602189432170356214406509155341789468677776992081964046935835658821388026080384949115917365709783370531719832318867237956115287581974002516223465293716647101666998976212812433313199234774706210114769247043641666951216900101980673384034535156045834175864429306273446916099172466972897844947713529186561198975798104299675268319404402513689092726499115854953516242020778263207476304539737835487459077117411473824986314780341388008297012507860531460791360082156133262080165158954680609002812515404812749978926625411154503093048650330393660911307046243533835365389594130696852307388077544387324629859875195659598887195083591885499082019660221719476897878912268488304947045074534203812537728588242306271471861429374751138808729154125252284899677618274226103270307107120533991657411579476711496195424375775088903485787944457401869704308710283201280118887006034242343057971489633549160840836894992975868520498430017624877569807233494382804873252023141454182070424865794459896549518590532071611179194927639013938734889540395800555376617456189381799552470774861982685494813032471543246390828654466954819861799500462380743998611856592775886578702088241965418058347634519131090710073344157889403177938585258771619733751955188559930371314917830675260387014912850982752104040750256533921391546927897223514888002136276981713941984180660464913056018876620075440661907725001769154440397019990425131594086054421872207131625331020192596843584748300298102957963133660114400119544177056718837297639335844015508383817120946348799998549286026916556103236226723586560479679303709469861070477343830343875244268463955198914029289135940841884645071962102372044780656000461097404065682197033997536522831485913554060570821582233029342625443019688546707520284828993379520171665579554496485286650184740072298670228464164120293701632659744759095468930707242888217005720214788707598944010787505497779342076060708001607943282084815569934029353825944256128214747546566488939548842336582737811392736775539489187832491356276746043719931048206905846979311638634710441231403317867872324462084560364859985043172924736586425438017748562296696636186789608559323114364318597191590973710235565428640856072558831550497177319467459603672055599923484070800906552043535575692419566843210139203802986368123043900386345251610639899983622956091948471708312815435580553386410681986373196332659996426658348325079178033164341175774731160799601130252145264374111182586012273877087400502412680380448107906759756921745898025028014981081510936017940055032143343316711309019781851286032756023450740869967592093685526303038521933349645049008079392717381603323169919030249868756061406692573111002556956563950401052527637267755701657641273384196309190598214406573111011181383841312611002944243262866969866676309954519297291263935897535603541191826433988621512605651261243860370977945556606448483093677657863899217562737032947530625398274753860657909470455388553186542784172232461416827765679817147532746425049107257712755786197610780238520086405956549575277417354987672741630317762104407486234411367731169902501940130080663892200280270376709292332344609361327274548722377876464633853423145628733344589421379958695295740734284741943068633927239612976957050320924287698775958127689660237820591749522527840615874932645492347643266110821771557094277686637263986084697098755986742769549058367903521997486228428245550145527555145964688966037152300656987604532044958382125639736351771298495442760866670321985586779620942937629480509005758425477997437479654705487792685278725464780670580153054779643704885480640015370727800777175863084692582610229919736197273926836932335293461535154511801052754170004102333037972565246321612414312741971990406000422248911836069545905120915105001684864292954340869832453532727529819785309261104871410304537960821790801687908902583905086849722236057569079539167835083469322757740508824698360546660207091470284066028443678314584792405887439064456451267240974787013188377678523015133704711970591145785560416329373442577571506694826316381208408749150227071329745199043323819939161453226915609940934403807025907336651949364400707945102515990604305770995364752615060913684212458351728938029534530801334652111438488292434800592087440400812778757386448282431687121442938094370827428259869344875517236803960800104259398368782277171191961364937166713842226542213950833396166024442528394866528684888427543250050496333680640109546371652365867119829944037132514889895326243864944276405760246970848819422950776133663512439571246202614492920138537004501299845842084148272476935018636241422413698990839363766686335141144235810699291720922218816054107403661721994871319573400631735750381342970208424668095628890653567248367700382113061015357877404028233552423928262301345160555560964073516401908702329656767752148033747939208324124055246622365101140208740124736157043945427794243983914746801202829130288587148584769277875158355617256617051648393826404240486589293383567062270718600342443295528050505157695599752328528317229838379111363773326851018488106320931425030212218002894482101448489448143435148353769661082258068188325312161202539286481896564632835070370060586945491062511171870918661568300489729627748858684154629925829572199835761555204272185501213384359775601590495020667358467390834350428492401005162185436904701897360164805440006968904207915039588921192315347028092852862934217360346626171554471440464646833995782879000027055835674075945565032816683869487479131424536997967596432200438013412300813060174872621567703768004579104028341743831832083310035295722424624728680720928598349151643476310837816174221492087060456753956761842544196550297853150501436002320276526224407460174518306505060090583431109566893411468428526309784986444859004458755753234092772520713535194959018696941362578759057782121334659321768551699933542018117547356037882122291505105510996238108133026814332773590362259759317253323861293546940481143042566694752229941886741180225063601724494153023699585054465761429868145065895483862842368976947807233217949380815988143711422735554414555353459852868268205229021878150940995306189977133880196460561508240066237800799729123701323734739795487101696010229120914390982266374719679058432442106219238639998355192257704818712330578151399597055931444537760053858091111956266028860281306384166344031003370792692309802585939853727266948021213915008624249699423465315776325517134341760141112354589902436899553925686381590142744642152459246058810963974974566091443977378097044135550820226080250849651927144736205500763388958557019870283399186050118287902656190227709078911028558537453449923620070259027330278221400172183150891504041938805210118979425302845973809763553602889857387535099431966964836143073225137211551147413190239595409382813916510792951751174141473039987222943496180697216450240471729554182779622532968864377119556398428199400282015381608519841178808082289196941628884220777722229261985782058668672355453250472811223319709769069117836688889438653306954006805452834325095840022847469772630320588315013926507934763161300168394032023171469800968320664764676268180528417388227414834605767694037146305205621785914091306586946772917008635256271497831029793774694996021423855382872328617244272733548991045526617158089094234294213976688621569696036540951813298532403802751309245854536252988051993669391206029153731104989877394110009002646945098717314709587436312470312824566125168358953693800881662520161269608764658025743718059765467376042778026778801208950434944077977716552778142668969485024074560887528258093383216840535580407042136574100890460060850063067375619261321565141263697630986465303945309850632828388824940243086626399849865772777439709280034866098633424453204141072150762579556570716329586825280553638254309897705390491414825418122601460484888032948583517457444160754002067003629784509492909126457555901052488082088257418093623806879810145903956943952717506126101496700189095230418754758127538798092603057602817525223564809439619197723253595847191043422425735338646964087394796051637990287353648385628390745382475935504604972895539016796737681159688237445020602766465321608295852213140439582293096511464286134350012428739059423461725784190634293167382863885075155474881167282575954735789781535058001428344085985995840059486932137314364356789481408419576214453694059735408121596066838132907342876036359218994306223182852866197754215758869916548176913179656835285938380937520842368793903446613991331825118627641436804976953728177514658731400246129154700453183923226715098449579293346068865854641877518750317663792118599303191100157019373018407500790687819314923933893026731247539801965271963470070308528890995058036871469459026498728740566887217450898136760763095176851832509593338877391087021949658118087973521271488783958808217067706641258237577277124443974770985956340062645200469733027939461647032031933397868990180254243252929904531722740678549349219269943787994195236882355523691942678035842648621264846985314822338141225810240294567910663061945637374598710107975977578890655185927113688412564026718392445364391670616677664603925136495459916469176425863636168444800286997078536111795388758527328595214538694049137739036883750361018892119086314941846286086248569743780430895801267236514557771080583550090336058689533963839479007818396932737683447995498441348056218715235129031623509153607643183748514885515442123303381183813931437641455953399353479353098163154508607787998443159868735571115328514708068501713596599802802792025190705414608933154971543952012066549725658425641238843576573264022322955968916915961023454456614201148602962444758847147652275293694511337747259416678745453878337367418862111094882413971114337561185889809119590205986850479701035107412214401835825336238444952161294259269078354299242681765803015419470558187785385624992535027912069807058339684681501472939936580843665302876918036552546152925786845373388907959669888926889896250062590401942028882330138961440509588577584904783244882805826644591047228814019858144710428376779852192710567743170957384283561378674080939226254974174463265267449970994025255487171336865698470118546515430629960506038221069248406082847356815446068876637631998184132023403556713653971996854665582838754857091870282261526182562236251773820877767567798487955715007523552717236072732269176878828992984208277617781781427240408582108556220117147265252596639604176773286953182423673294344000300938407998345187510999830308977963724322908015382147952267531459546779738005790482770362093798274937654601581605495051800069931622863539719034685436561892020010703598045105196843197948298260748860006332433011436268168998006650536311612721640600091733865745825123418079678884930635287145263270204564466388608153552666680851508687171905555105034217824856017197727568359123129740565836210947640075922090834686592232012892179002932263842352073832639133163865440037066418787176447632421383057436407483877156805218099681282140858865645344158510236718309251909079953267886912813513308513433137459593128411599250120766972290436497578623111998672102136073836900354030212104071586734638226909464923927036096415212480024202779195723094164819669244353958770689636369036370852583848746193450768154872945130557287232487594566208161423460042118338606239789738539069253737827578018928381755635178326358153595773409419644680507498984860285133213533043195854810071172492711536102627739997494634219572738242580324222415232412055632514293255327629344954475351717494055151458772256804667174452859490711926661115204828069857376946015843706148131039125532069211346918966078179891415591100855147863244186332256234047995493866945985170840470518195455841968224055208414088928448887550154694619583917986873745371132639164292034544421687544503264654872476965236506251601404340835667502607910914065217616994951140007522775089466861337154035490089678451583218363024111787429382222209824324199185478795056139040025680652114424531753921044234741534994021961654202002148393180754914183370302109673122043553892240961322606500232842674547828683694364366046998373306679907505943298352825310610981120038760579004806818977215997301372524023963035668043637968416733381432115634159000436320798225086382893607565612200146861290574702747461091248822621460364414491104992617545394814670508044127904601772879393051743273480500662356743874339210986603552367252554977737398301554825590697296674544997640170701770828985441093418656416643118898797540166478873908256429190711125714340628546491854796518948894320900590293795534365445341131412381106851937281384815785608651359357843513190699397690553102716423830719647071313228591207814900237205479642341157985525638782434847390928415587535187023172606322067754174647580025185461180736668214823781674864442672857711255935325005560233766205307006769452060236545112190319512227529145731048390339778538283634397581507650892595835737031163856284669336715657344244128923353675726512180216462857163944658685686725438441346485273329215015397271472824063711727996247283410659233817751193409160930599398529440807376542187622330284525404032669127155429702372286103157797582014146075769348550083906715589512495364709563889725984618197314228105034919416738353341679757561393177051003501965088716197313693615479701501356331820151923747583593937422633384560831966042492086927559556117348679738009162274432565356456655748668866161022542456955746214173433890776913470177957854245146611284851644435104312314311253729210028465713233295748098685641196448604251123490689327077157511765776009943872469763692073705094687299814998542753448902586902001126915784608758786323851603625180174787357506730257346769974324801391998470220404937274650312023235346336975577209152992113288482645166013359362352698417828937236183700647355822077966921784304911102199404342830104160574920428979521199850028836307852815124290978443631831781298053240131072788195121719126368389923698449613639811699028782101457044928895982454059198441958639616772616128692183885520547661507280530835935318470862491192316075611654016949937852238060746222206837508964182773319215253577310799666969639067318636620699898176007246663990962369109979004768995401727260929469354074151289708269389226538322401297780784044139725516814307308304405586449518095000883890261520746796548741489306195850201343309438040625637475625872034756664385112751774746097623248304041195563377897450562769624344638149643655571599519528940356486259927186951861925225170387356331635538947473778508394433141223888250710037000938435090101479359313224707569606728591330959309335663693515125414019870869849034263412919924800368297566755101148204532282499930712201895631079584887959306129050693275638955712197687833789925398876334333730048016722180683611424419053651683985156207985010382063011155025660876309144752050886030469756404732254274528470665528823990927478755709082093670820766982649171838430500284065799191148165744552253985229365179112096526487859480083154926659281608192992762206374507648606738257745548701080002776387020057345365503959193913633134747904890173123351399876904871916482096819611622969592254204790631875890858037037472501743052982434244569812187348814680254317867875189742924727981503242492366949733240514138187340503137408528533435183340990414117499645188477467001913898405672144151917423810945435562442924191836309995966882507174718754706986497322184674491549026244150334846026414273970709386345366476235579156380200958912214313912715227175203663701020050096682939286719696639501738463545435822460492445988085012037509526007458014293109724855217048830398976687413208962974188874107634967758364936427418554743665730206545396432148841531801446798046601309310990117633381905518532707874724690906315535264662065240434344613249798322072613200245942370783754259282372705179142479081020083986661729728132038653502877737430356973798588835796141828081137911451349859751989626087695535464190117783071943136051712331357816980812681972055544802313947765233323791822430419260709062727346110442162385455947831319320811325332464097289289800473826360090445310411708639592295179839538435710176205516987044168248128064765896206957359886106991047284760959370515602141389210348267416852261195538811087452038936310320085958345354330558095467533012853338362370280132804023301156891245197526770414925377776894059627142077784161257249436863414911143463762167851983294331158464385696613469703015811990220229942475772026395706636744209282119886266077302589564077264980678537493755756555411573183210522683706448877496438249365744298026341742333565887250897145373551553622064775877237178091948084516938645909889970490719856362100016305835567449274808920204645337558683516519491560197983970336250358748192447517893810350925053361517345940438364586449376714294787057160656027152844712373256491456245730649760184263922858059521487806331423823523465577685201980363758413321716899934804015445258276094240425072186752072377011596566512243383445825973185720965008832591107734504015985293382161898522063249700042423669753511354057469654708563012614910949595059986209814196093044143142785822498414790902387048091196474524185190034699713653787137947383723785855126743776389804790844392482256801157054654140564866643905873374602305497895150227439598005932030041947432242191845622503790335136916168627019073639617372994353758368600627575404005635982242185208818601282282195734444721031911994663101769992929946562732170755598514335309942869725303051996370245683907574349540937283235550900251304258657902453907715607492398425514767702702846207401566577851354406204881909093220425736748371701804835575302362784266956511940740762941427909895718426335275731676432530898353054683085387667575498038895686378565756956247545424999314763863727125092440501493496528516814938137175035709329668311236095822182424988641573218998908253169412786826595730465769571768332785534600193887603768170926421607590373958969654055387070247495610917055113174763088180840298761494523299906825412269324620586460383267383879182057750203098205892794763120032431069906324178174060140222878417650999277016941300084221860307666170748757131322064131056410441982493013312679931153161823772211163033259364018448145847841370897535758464635768465139283347818888667994847431290830127239210297608523579350362375051518300016505220171443275884504816681299993141082860657072788895694479991219971514081793723160722515837609805387854340149347607044911883765858620655750526185624019274098665587750011458217836694603435994319331415919095789557051871238301267604021615611041979278395600697068043446859237842580858950080155185227591730337862379146525610427628862911487887589760965225105363252675131735411156004763093920049880968961961354507801156510155837410878176961839138564397011375863374036423210949628867395282901532405332448968568087059400255044545090369694148296208473693216823976690397919460421111563790776425307497151937592208700355963289563718837320667497279567181451918027576888321486542859010526622393692514428770887294585094810503627330827393282559869994831614704503575016312690872687424693008638081502559127847697752625742263229103820219392361796403489789529439724809952299322040938225056653627826447434792374059542475669416023276560197534530938043311976111731614148092893978495963129722165866786918581322993158487040854005950420510647975901581798078168616357738327007779037410578433892717337275442378627238337505781299386648501511996247819801915189789272235145958672855044180114460816198514841220555821417467135361860159833041575214808373529650867591133146322725379423600685670834167962956794204222426176899823054672743757942983970165108935513319276651507910819422488458739251924232179190172814658227037962103560982308360482219953203108408008708770213728832083918944442540915892148717979778428283853715159455614385726618374461842153974942702468179490544106177354839995243568623174117208762199566568243464813336532223228761406784315040347516042644110285169934710619549124416838898038600709128598749003792431074520263989168799967965716977007034682577619931654028866796196669289608735948339275658617516947735685423170793146851917043507948937803188476803139573320713026223036369273649816310907708058491308476903094256905799553841145507202493654005411773610398249613285722584079649715312255837495107103662236554314636047753359569462037438637508640619433441937612752179835114836143810268272311169199841268957505119058355225201627156007602254253822264377020648972594180967183802410574532982006569971892183424745420317126275564065121956125575176348171322639672298749422380945345066692210043572648049062393001582001426355952457048398928198881863651340749090540173225858879010311222061515868476215740034008739388670664616022156006731806323020609701062599080127544523389540847506918796087726033124819029581453602728238475994611174281812563240253716557188163707403728854323960269677652866474892065635826770738737584906520596468412902795737900277462885686146885873151628736521941658971441564907127184887454311402152455637882790403913816253790824495487902025095330246928242094925290986022236376665109496730674530720987117087703285583316340152287809759957815887540400466243164816538966112091238284832667707469357963580945331789746138329574959735906965241432674943616887638743223503214726049601284272074346769943342881094154951247718479100037666545821981058232931976331850481874668351104186527446829264726522107332613718639590487438473589073303775597903986144761192969855361268420704908244859607817436288071250481206407842529870911796316351195778281950232902809885661245514292453120354341607368881970058780096613124777315037107707360508937728162052498973801424888884812433141878222099626257036187713118770590216415402113986402646373420216864356925540236080499349186631182334537046779408071263541001960737262227678793441574005716384525600843425436668936318227918953382212224056852561873945486238376911522581626292589774933369127544632086245938970896387962269746910174631189769404492501745276504084221978273718221142218087178022253906293956329987393379829632698210881113384707937089748634411712319725166771765845662647003586486980799246911482431664073179025211619712693831455365578454227433881746252683001144517342243960752808126348542504514253403707729696273286981692972265688929817861108122657607459933223947582029736116376626685460212867367911142485001934193126350629901669894147366960642708654167106183553831616099259847031139016170068382009968889751430732084209687511900472069735276788664845836656463725544267313840537403678228294256312383388755038201011275627403119670846755788148563980240741029709668876230639865155143318753262108998920683651353945843224551756911969326736481350924259767401588160698836729820640610283053449889734960353534467617462589297779650014444876754063249044591149615248083150319103909367670769536660439854833802034486713592034168299732054204536383712300063467738149227888121111434324831916929120884754172180870631867689906014757337193147198506435486572418910302593129419599858700912836235717573679134266231701141010811307865633973028002764725268775707204567825184096555114950762556084051376239913740670567814790708953033008877305093202047543218596291634601365261989341279313721899085192154647643457648619669709298624443407973564947434621870937430272768653913781416834802714294998010899328277567074588917484065507340352431174921162223067446350145058009956964654497955515801052455775785068641386522503239351291888341834209371331592287858349790650621416444978164724805676384571868570010976971958260249511230997907843249539015971358850304538504631150483683058269796433788275040365321581515896844858661617724952627252309630917515109902988771712230201826028704169996091031593285326517970535662945462650291749270332322876098277360896117802321802160798089999749454296587254620764141408436608589032812163575051614778669687116698371437556301616995090003520376877992633929243594711678541288578485129882924925775789873049587840162368603036819769318486956688898553635008111940688505453849094422483567716057964254670282965446034014850719251259510744539124548878692199102572286495963458321225798666120253568875266658683625814233474594793397155697858700171425520121540765459177621379592171174649663584761941535327996698070355090354148868370951881367641580223076948712298597544781370729432567983183365905508105192676895456523052435393273606241233476563362705998758006168440701228844943209108052534429448523909901881942086335856860055941588219933931997365731759001196932588986900755454577485419135250179706092931680937580422746855254791599477697668359892016124734082886806854390224965671046462064688862991820806126241435583923586706359473815718986036163363461813470688890027953759309440351965796932803314694200483338633109747659843424929290042136186506050625298066696455143149491970187621221297455858047030929424842158954955098596871804592394842362118631510449773625145131370113593857895764589703703077153352396884921034776315725260885282873671983815138814339013969619344710287287850449617088448470045957326406672809581657119560940722084543605971689013392444247568097572086951757123014447907933020438758024428530312950334645483509337579633609922766306150566208309133818342479686688299554267208749953605019125199395066630400519604361796191080738269976828668617637279869871528298977617009368124494434030680390101264313360508657730420718162496688957666377934017233799945124934285579904851311997553743283609431418073404291227217487013265156706363464642284926642564482577471292016217652375369770440841029837899720812724270064000315961074733718397635739455600286629330158349216337782453505072453191268109944984791702435676611524554778869552949550798814926366345946765484773046933934744034967114134162669772269834508948990393463027007373564788356140547745513378790713353037332009129779696865685576049260258952122080673244710204495430747483330081465283748745719620978990129030770529960384248112184010067515165277803421119147168004519295460634611631215495210943040400332978771440603406015113743950821123966345768653737685183336372888274383044822779779261424514354904346716730174064635693334614770674657283211803924898866188951324187126623368167805121731390976864822600855025855832736001528184078698340402510009922877155621864515398496918627416402790502436572734618349601420063684629875162323357074315532850513842252811853012391109225724740231885627620352265424263666529223633034768735244145651110611162887731328016936836319391215937992432656307669504086429531408506568923696495561221261479715608004506475161282040342559914547008284108531109745578196418860740017665177057130152382621343148036308931803630406809651956959444942802862000696623040206693910785266961722867079363673030988062510962533908448279613846855525728974130881763987225850866626538731276327706130008073549267335916901093744107922086176369484697253931717946504772327141754345641414021182257355112450671486146391219241754811230685142797178499361152416840587666543262176220177547911101296997957307811158239041059277622665342455399196853533128100657662098346247776676470159599670664160864586525968739673229014483908144739903735654544356386310734381988179680962546285967359082925368567373325757707052335382208197462188545155666338792982721387758278877649937128126767219538950059279666864556508924536070940177312281109501214212814477614605515747137277136473465528154277692354819413992835627908084561024997663569729804978736709092258064464183733791450468229986336064165800071679436642243995224482262899130340664922439748415983276995935473238027121193418366215370861397865870263995384353248032672691592251570511816002591336641569177696594646537952475541584773041604708344789886537662157315512001030426433502617974923053665153817620152190270370214120653127182470473021346648472437235402472069617003405626995740864473477476447667882170618980845862099818588480580498695361449732136230458394132556835247035535822363858743902808379661736752630601365754279232880456548496306987748356523885908809822068212698954444663810996262812128992508518236420090639722313669154653489051585028050536354065920223790921166486689312558652199198078812684611805511115885911799112678395979665085726461634081843743268413973967560468671021123816223665136791980269666419449552826008593484443051416213157948640258331334180352841433013655294134247332690499918081046691328939222644766458451746520911787242560396268537009404006177369324839046260695767942711358879969213307436277782880132761230448155692442703647463546350358471980919277822827404961826714761205354318660755335742039315529902679104923991776554943692786650104003738201161675228763364001761135569925873055118510656615863780196386680689183403669521971390133019077626290731607725130538648459416193057716256794248264301071471425257110244866662581175345758245943485203247529512201827212523929269191998348763565982364884912283173737569127736485635658497747837025758195746229822924517420213286239250473676859602280638987257989671486649566654686783740519027223543165537578229343972660967205014290148115237353783213687985844375223618334811669061984077340015290914803785315610222155223766445060015950413739803345890425140006146831589488636361826955747526481945032015766439317027831627246228636793266697166683263325124828182310475822218953161055725249667347087623581276214265936449333439362631399769782099942229483746097500385456992839554824832534206909711896705635072980545848234215975401163799244527071144470857660284267614420121366389173252476746027649323786900203695046201821272215357217830677279548383458971636535848158486019435806281793146290131778144325407512435135992820764998746270468888800044298208028521497239792795437343189322080074310957014392155358014597503346586994768921432141691847744327954818170119424635879457200556901597639995239896585327381705571599619902060325709304548292598775892821115355834826402890979194023808912180885579080667714237100793056260962316133685560305654437441299609766639841490659145616393174871026809131051215720495502372645082715151834880254310478876225279246598709774365411516067519769262850627331080561604888033767597529435009808351386961659113740535879194544224709580532065983602592667283404469460813692779378797840028536471817443686838560121693236238997539831108788315495480520507139131461607824185275346498763554779359483435931648571822215361732420098023671759842615146356273403338271689792623696694283424900723791740540691801536458707354390683434659774234260983799846814160510165273781661147917203195435811583487681009444733657016498945783040116461002329517006041252220218144934708235000463698198611566994102923974118662492473939968403526122702872490460006572617297872130597340827650081548298445966366165046442888303012819212578965242422078458121091885648099379196227166133936445612314721874229561869264202071697724220391055572134005861112667021518304136712204018296601854724963745976345821981767069398293519465150369171839703582221734775340847306826019716708276409630459013269858593200201578551837482385655988807949889073317845704528372006374033151875009898074191264774145456120596785830951696948840562157197944357082244916500657981573584185482093899028057097456351779727046484258761769636726420588405699092051948321532573760803370543674602204548845724587675982511331621864818115639802412936733404346735767412341207062766430970892383920004466949436180527696447465441186415541020213708507910010340814581896889365016005418424377325675362452488848001590728700169035807291990315232137030756632424610653068884460667310339073390493903421950757921080957703246292878429685262481352817733381891659538053683246225831429439816167820513269466772903230300122341226045268727337816248206583662433124847928162171204155966994505945210564474440573869075018238554065049253994118869700637042492933876724884310404299793016016204510642170463194772435899717882283245773359822582778962359945308838737617592654001259438680343915112937108498268768838719189496584708038102380665194664385308935640485721691346748518722071390452578945532179380122967326530362043433052376490870728591639131018931672587239990040651498668144854009678423168039556592997540070914298814523126305232511528492224796991133872575777525326460980268885637361220565231593418605607641019488328822558146553863797158695817980616355886767379845022276830805585720868092134462951781511942375207736807527944643942538639395602931963008839291740211002359918000329400470200874858585036636272117134123007653750673430292143269655984542667403411559205106413950303625041920680106737863663626012892143375081256528386227337275610518064958087497322856756171405479214852561973998098014906794944016318897737185632475584379244122918214563286354711319630433702177761405379826308570312268410691602466419810604948176946985358838528968111442837398012142665516274083196241767464945845135765159577825670196749542234610457925931660994934423586006569532744526707052538969689362366684333007640809049331142620917892004952852328051513610947500705172990222549232138915405406221146102746928000810950688561089304127089019126815494391417632339014826023359301286636438773616275675333993753058222492207707683685038940136192356440107375395367766208164547887816683831935317679389743468442532808483016737505129207531074327295976816854944470142766192881596900628967506082780019561853195969580701572869487883351090475792591383975070734081839137200973031064625452244941323865381433951195876286221480458427777905990565230658432036088672446240086009529783115560190469439814052812713150559443051672641907512811227245519184873284912689558621696669614271234267279704654408992418348058005729347640810612825371463840623178984447313461315215931216382290367841005823936400717197884934679441325198274001207749650432726035920747638133102877740770088986710218712487171092902779357866426402369178581624064113937708273708413166524441655667023625432361945490876435510439805046505845694212130574981229945720949188728179476896478508999134230505111699361000062270277759913991961977498566160882494022358018874889141187622137986235784599274522757192959508862966723533850378272611042696910095634840141721105379702884920879066044491642657364051429648699840700627591062813555358075124459058447921189474003223077045210394404889038810256544024468151536303239688141635379123845063334591092284381176531455958569529593130287635847518966294851590179497550155623801014688194460824611810023295648538620660765517546476083711486424921768277823830408112492240054000090754268467645486963809630922119018752724653731294041796359400484242932337987910794022513177281569262345405548269678902804508075215578009650408176102206476682602444823330719712553376344276515668376104747012855401444497241784415911228332200146036935890605942924312767606013886654988291329838967427790914490774552825334994994234156926911945390792466784440119847676295846394939431071607617915123185856498053075152708912358919112365681118374065419151129073488808428397750949838709378353998251561326094862225580524572946516115056538416175052827450508051879458374047476685449309301910204160125802775239740776142215349235290108188171306382703026542289243848957332679525152561102756303075544935410639685512803232744797900624060576321234907494105658002649683478556425892838331296676408886230624051252724062948923143720692383366184660435634758691119793834377703389304821151096426534175523310897068191270822902475582991936330308336272591229980437183889560287790013458528020906309258240101235285841332063845922158709656481831218579112944297053233113270813326661620687289580458624492183217718462048165071553352589421587100521583166428969352737179655046815139081731352114005526210285537191233166211746647779761983539607544495964173601592834277960021688300341812329796370800964710280122259307248328057238900229175098266244682567927045870030630794964209423863568316015423710245654189738115866959017900080114495896734096938966734641036334279681595705215789786474496892332217327246650619484281860087740457960731655296739474431554019127277978727440889335684299773352688037970366937910770024972668001986309871186746095875831469161775271813210467736511520259089173764222101433268876932780609898284843752712286833231113600376832368489283689856440327318924804655347300859211952251449007309323601905810677054996512010359923939649704873384359921048466483427398069600436922258763559572580643802300123456942521980700688691858226560109174804331723638940155794724912802194861785657083606549868724093815916109170595310418361628999079827614749188823988214377043909968255536554654508030585400304115469463391474974664304231184779083801056152125106833050716179060745589653906484665426758286898160750217038548673550860709640880131064995641849948826244395788135378364658279942749675304330404018973435057749070319504420292371018136584094159896539351728497596473871030812101541419175894965821891702789376648634334267227249302068784704671453886397380091908969890257059181157033313279249474523168645676876871131639787332686622786811267178089948319427034619762754996534236298997419958835967465926552524372555433152127464920706873602978663797909698527924732869836130304967792411025488877213671090082251583886508767756648039031366416927756299890989548076342427241468416711031376209713637509554452690374491701569273460946607968872027940200609290614517524806188380955738443663934228022342064489039402425183412134502401394108563156835301242496499645420470921631406000831383086338956883360818697616958515420184432328170261623419810309150668295447506191756901209432392737112636313981466088686162878390196096636336788338000960283419706968497698980451819490812460103656738603364307805987510306079058223836626226465705680173822357374385575735772862793920963469210733884334609851731936566701354704239832919884214374382952182021292840326364703102107145706515017243296586353345818311166774081869729687005120582515002952886497323087757904261142943610504612430107419993190869749263688561096978672282479939796646037585776159707634311715411691127277812711641918956548851766981074932835828708872630837155984993506446267248883171567209690602687737431613335119219041082720926407440440347051213221245820267007364795320483288106698264833690524789344269522973953771312829856153975526738361473968830318966347541318898872774780103521465680708359780447329951859065857583572370044046448797805460377523860508413004034848106986984034104308696861790519111817000664123482601923943983835701459555735528482784166801740558160224599016231151332027187287193243581337874028670334328542573969641734869589007364388253586816242094869443524196065818132910530621771885100293335345328966248742087161124557261173511488050122650164590295411601119787177509133311959864630596400653203329592466664594394487610698776702268646769559646967074780973822472074565935304279734313303460094257893100132510923869964400904953564365569745814441822188682374611215974691950103949433607197265322405997228666138423651193542788280539131966514854332932782994550980491513738776096066023477525029237649625696632636224859648332876230703627288956161223703176465169459655589568593123847383419951863779189914014812526820129612579909667221116969917136473675751437360639632343472608974675914386064387082864212940123377977667600893373742358337731933324219518907802037769271695181474454954026294499644740417212161400456000350661571798758179964598044314308407542580188047272621702425092891287650695558406125108908227752293136107153454906727898882377078894956673692531258761277776574624719004020995639383518378559090686838220262978148750075096232808426171402181902990411976400347003051329561131718291736451712747299003677228358915497410051312152959641675025034458495889442923154456105448363831226384088369266611879479331916539920556559826319839410402479495925716778662528174993519677483487242937948081234203160431121931296397340928331610277751469447323922733715656658276993976131077465940948284542758789542704191265574274550451165306555604736855652407512683066174846225433307005226482139956885000489261884827581870954423962506891043520760071808552855087123348975719889009573444906071778437321295697931171281126752336081464194123729018771077199494460506259305473847256503312802776674156105737058001126580611749944429514570888997709362378711446262239187861503463991928030911171153989685352170991514565485407905673273874887158380442110633247570592984580260366415846273877871300338334539337857953863349079748082193369791035870025552628497126104066034818714052868211372659875775545572651172277322751532909174276491695884167483395942627874919457711962836882221318364294831455132262134308382194605653390928347580204809636045228673744959683038053395328564619805878102450803145906369952319593816984808874706681689982148775782157344098053703179429952592695721161690246252728132027736551330915736636892070264356051034563730262921086718661202192636567897448778110553664423717887691000082322845045595455305333645728416375653516942255648352175051624259966987412648175934674580101957882818650432538669546985059734606324137122903361186473423565776643840782898186092262384555954657328098053186490121326852111773099176627228232895067954369267192298950230978096823630863391639845015889855073257304494205341812778360719507511248355444482998503822298031035737775889377929537332248276619492483487516507948729753455992365875697026055907293134147868443728099235274398633094814506214929525742165860992969890919981328278870852870546648398901962507184406400620121193922264341226358805621882591086116872919027708323774000907601074801606484676122597015272700207468787240039156020628668221898324047144330392352435544127633213311199682084421550591802252685310030461679948203722260701371033026744242646909851301398997099100085373931279501614472606128445124395535215464230598103381315331280757320443914864902127009887485845289618080498286079181685845455726476493112976897516465469727391405761184153313305750147727383958138756555909005631456358975258329715031433305120399933991366225773934050591120936707854519821284213608439595373112128390513078128801120498915881688144223927583618479709680968751668426351326986086785819952654187267051242456747289903005657452973125298094691140982346921801791778486058415695277715181528111649431766774014675954959521564561504854434889665944007960716696564489000903218997314450754863846991106929709658697232615096724998671969046773560832062720553622434382546602859003559968835522823290738491020982513752807557687203272031930728724840132251632382418262489065857128565050886021499932089890619856598168563131174891570016662671517801419025249371514124063106573493287091882007090716192709596766317163948020757580111197561107295737990271798030157133241833868538492002275547719242830826029278761432521448494231886158476311778464351853381755433720094635050581668921649003622455329123666956514710038676080788286264236390524218179870296055649284849410367116529901242520757233938663239052398378612971217404793502869890856744361416788226632999215810692121436345124439312343746648334048698328672662659505010952415583831129983230797231275884277866468525395497341544835091131984095665800123807733944328198458074808215300731164663756871381366949870285811406996952906712940649536804201686149304200806015712635304895927720401760126530980089596280552419343352175002778147220694203820413156452851783890170583197259318254490519109594271833716356461938808720165263185346275405109992336857257977951716981527105372414918780018212479351095387784172670652640967612581303690597178087907517290682695229246837726807919789299947204535475489144277546644765762702909868954006412105267198155752919670606559358058822526556119872485303379777402172754588403094458301818804834423224282080419747296832801094195865850619467608090997296885005821975949008019098865370834716087418464836882924875009660489307808097633700259843608161249521668165191925059037228613739511805129404041439778628977650453244912575554473184906728357383571200112319694359915985231461349187191314510003932103504952320256428853544697241751849667664643704683300816293782469298014871558487388881358630075466036136279953300128222642931320223342132949801642060761042324943246168084028304613215230866703527576406904734854531640863704581713309270120721204015724880499610390970819703005105439592833290652268836284595561690456213469087317906768584352072852022805737670785881486467856126203323138371412786407958132217631011325287313870369556051513245543840615985655904551138151690749159721557839763561653863674289879985241756977568075621166755108308940118469079079566720107386753791146928115132311860208223833694359388138299362322369801820208166630269677431103021713622068655744277962963871358760261620115804001964414011666114669551940735320979412247657056156778615378874227734618656663497119760274961549387190475516311238164950189260097810716044828619190989478981051086229763339436920903868007945733330837266236435595095483692145586720436608498260471792521536747091032784218314931367251019183415175315577898628798644517781094602455587688161908916637098005149671336787523518690234586848895238657800499723275388403014049782498271883677003839365835848829067034540600681950450511467470328368565274010877236259467013630339453300882346022423103127195297721652530980861651628374545822424374613141539405206651306181368889618460072177028045742600742547411749581814464258501477976349557172955401275771897056788709063385572673291037640231993211968459944649632167190150526119084478478829499775384512934549233327918921819611928400628087086829355665977880026071679551814775188038725085121205178528304238123107562365143662194965732989780829539168356245335170796843069895787588825902048647488209026699684698781994062329721785921912449409967240402486025994182754312246112813501984051417411908294149544678879340976432281344247868567890545174822863598603294336163317213668846412097711692223163786755671961431432557830763633144619135482132370925720588822150708233798166242899916665701250483669673894510790065222500569805198331322542197808323459915175229059967191892736615927609490777977200772770837961321606542170665881970025902922779113980104265542701228364123314078900791234125236193423550270789013178658853404368093284627691429154431462634204548831670444918964881625258609496588000855387687186986967025687613100624821771023134672254650745295353196126386925597613509974606267928321824509266501278433873505416394950633275570181148877930562685625796398322467699846841363747545287668273231587415978419562806068848513899121531082075649840055921915498929826005034338476444238093238025619196641885511596645309267799791096866398284338851140707933213682508081977087632837053823136216208742804560349894662973217302613175546915208823110541430571496639447455667417471504846653576815394858989500757516407683033487974077231859827136989333616969163194062780641283399266068406687366565691560447581703347185715163122750478533002862264240990106331857817663377752491257631722743137479249242291323990937185410251386740079118319709741259332979312436912736571393727325823004013472273283774157014273831021495664212939910621706177042177660108769471054232956709178598865533541942252130881955913413658525937738153913291351730581628587502629114354150553786498829721868490790906849790268379254078334092174054849775592220003452435756643884968157776045218643057758965638364997144018473988405176931220162497891985071651807552914372232796626143855030189572705157835906276815871769395575528072908844067321294523697854634671439870411447618925811788813907367730405769595187699505574320857186457523747882877718816347838584432348025655188262638259617306098203947019677625708655488244586153746859093525928399991045031701907778427681172997012642836905228074391653048594914091983911114085930852650743161359783034442473046377425444247669498857400718394057722791186597929368335174037937280520323095646358839135279279657956386575893130588694158321558518500222972428566431021756720205073855107496287185313842645556171669546888955325081511146109879082695974456393795892134513693831786876597341185144374828171971023790459808952102414494254481316100445748441398622031956152194556808222326655808308506865421972692987076778246168312188456511548912627021605072931353247953828622999048638331171741070674057405742687544814376065506521042596445403299566579944397388654116037463027993084234235712255533120446633570340877191024762845493597775420575001875367256115059786169546026380257949409667089988143188762263982573222216908649402283540884789447400353915645906965519017069178787207521300702765023944493679919963452350191726843377529817349087311987046395817784721097080290375757307053464928719305337214886752827815702689699307232208590475704999529470737335852030467111175013509193820977099544916380349415889686052145415532948882467790108188622916780420524558069803857493572715700768552931585190859052419600197210802864711789018324220587961176640239732812795963602697672333108941082074566738097111953347913821173883895217070741753824692463949514305614529266716507699390666278768219245615003412389887122008737152077899413661087243365526154131700722795838552381783664058502846870736847216829343276078116564919163967748857846209939245330216068155490639274310029915852854208828841072983242441957351931818414068300648070440678523096785288391888187555706391207518262195940139592599684380373664458463083220522072000961448289536919717151373858482794220842296503669947145412603961121585799054650570318142467607482608889584365660253939874324313446099043813476595671466252550351164506678910388260493492710585049642435971579677836788142288770745706743702676761245567740342564241149595703039617151518833642659332660628789338183474383698022039515213312908276566458606048229402582041082694373772831929656396039718088984442117615614468681660876671801879835135533439636832060875002486898879821991709557442508071088901327316531760377174183337116098820262711959363463015372220735295769579984081842569558995837045039367126855004005615319294759212411505153405928303516302587587519897875299232881579515916044793032466006065243036669488813524523279826931013286095249451270245385383264707160858468349736807952429955273337530135640790878198655738270689580555532068311094557940149748616418890628901921458561001718151705179947918442469782208643477143954267852550419600396340849380010576619985705222875625962772227699224613310256029476323588941591024089080717668759481206582972500865541650974667860147438132581625665626361318085672763980120808353910692201563711480806307848978194115179429993699968818259200319501642747253562248673885942467188860844936063929533799944202589553409442912594848153819954171098990471864083845718374090817554590373241114286041953251090701159980972820142713923893207157830254094581961449665441717624897349392744658782155510059937727130506260670300971054518364614455082725263050680816730047740174215808383787495554742637048455068096667719188184150735043999876575381843428467592628089460896416555981441316818118785244944679831202774973410446390671738542039977910335342279545729554116522064023992364259836536070575290183354777171123475341747610587462238225450727897457833219953542990383202272434413782166057032532694628601600401534850863841197926869868397958761310696847893264284245538315697588102262653241002888109469247105385356340867759212104625241704700538005497913159530789018844601065394741032862840356933780647451059634776757249008687645224333888218064512284393058058702896945577990651321538539595295129198234436646215036507718341361118938632665521900042967247805481138106723910664382116013938335753631138244172160849051733056288690036969623012680984410052486652936798127722441024104075983801480629601385586867552493212090973258389973884072185624977548200044108351184572702292949601744429348101999444114579176536599638969322151081535112399121125656822323227405579126455603659294219605236879483122389773680468702329071622489576727665993512942216403724981133352646382947626692515584860072240069292302747109576279949688445143710535103636130781800284263516783622955434051732494677433795867111196462641291188717676622233736661294708282539570597767186002123401926230435496246642847093626010217661718544652130998767314280094520126340111465732260429213299849858650565581836077652797272399246828933976087344898103765701122595407218015158528754462167223491998193669786299694232399912590625631422000374670453806989178157806473802362215706576058626912541291878749473550766747091519854386479062837383880597158322790624316604108214676898221186563739249353498976524932283391079471031911203979074864005993869059277765893877170562107712951000746929076664717792403317072196475185868924051644095153956224065585265643998160515831713156330563382335775474728349257294437993380783454076428492737656181809761293237971609007811728581155355628751182027440666452001686049177291533587840233236668596553568439207445285479487095124404706443291857102533861809501994317024457797434956749484432343146785773337808743395450965994870663360923338058413808014448577987159300994114333858770694154000958865401459805394061751788353245415580336747888769316341239075404224288148795915810812917184249082148155515623695317268775353383584615854602468234708034511828753914859660139748419698034223189745355497331645880104570204909848074477236754521060475647332170540844254238583875562205589226436642629457571362679026193437870585801194696889757878798730709379226327483876081978375671444088122104934473527811623635501790871079301175430029587363215252288765705413834606699802858197591543559145815099511743045694794726311334501164625862646355922645563096986362190813760649430103504873703073456289279599330988502156737941873609448577517694352890752695597452383070182043850617826484342272651096290214604711543039031156042080904494768349859942058619528570951933706208712397342126941698067707709018149967285192310557911653794257172405682319131629328587221594517912279897937675950705635612991490938965502351334682023408392767264286762006136255165837384559971596590641464772534588527302774779028820095991734230725210141417748217183524665737985834423444638254459933802723343018735148830612909168135109634695976709929090554521397873368260133099809121842641900533776342560944543548390563593412127789942599535522030869865252043924510048913111330235607532204791174094002745534269632369555200820559492458755975845963586324243712329499855172514166547724204642827846025531834401983500569404001662705689040414089875727606254967282237832938835597834067979296537174248598233381363199863493520942499828381474140222381976135808229992872419442981060691683988342534521845359786493953327932568456034554177917462857474446724472752647149083251207188684079920293148221215022060716346881050069092293717786323825741943166035416505126949852982092733861382604302516864399686648617342225710142010901789473217791625806118630632429233159746087684129589250839608511005765579850655996764318854991973168152459986936895219580885010178967443277633164572614459684917931616066327230248062190345195596991878310225807090290581256412333693145974477878909386246380580151706180090761394672549793139250967007104754964026214427692122819817995950488831747849058645158446701420546580782165360314299313408638366728853656366328754160045171267727169889991811776467610205224313960471038352520566222499472162740709879101141471587116935452844862615935873813105757655179243929265627488563357228795792238153256182586329376850625031486283364069736691287178616042823372092453421358185183922853694408296208327060332078081458803057952010528270637495289978520691593298746499823939371248267152109481639517369483621744716599406753438884981721834824110243321600514159996767436596004399216283600363635672393321908169668143574219237152443637664296014478833290708644313580912954253647295384841391745450665313716751229747984038513464921784959189770024550260777390413819707999285234258817142162182114589728831082296929998448991825394671287790815915529270811917062797790630222395187809456174504660671748717769473443929052496379399307709006981687538768750831655570903212053178838353042144861701354704229414426924279838269928386151089873538395903848479173319695768175024868023204018435796823025512768551948937993126354331644035878964191614210755646004104872563077011731426547807268453475075378927547944226242859741275534143779824363545469566541507450144665079684487242235690843282160628320135380351172088197076537127919518275524242465903078265784279888581843488987588045851162857464932081645681903075453054680422069118960395196169327065438322770962104569123721053646035771415442997647158241983322784626765267737110432233451870248666831490657561612964122332814655444403311971757422399296581678975256231956193318700844119038514185882509354201705202897442591246469024073968767627242643507361940803125063485642107395912024270274451490113351443005822064491774342833664054385217244188396672053395545716951380523660458915608002374363865185964335150094647755257299764373140824636363034384805297124749607452543712112053810006619676477975244052373444539421345271794401327147376925093257299106734426996376520546681301792208828119624488534016235055847206129562182939227351310910854086963342605199682882578330991760947245059856358654427359203705676608394638916990345272395650244093780324493148239812822663038220326201708182819723255048140609275286288162709647660480393104861751223728399136472382368985484214541357502560153007398260066478397110505124056427446443761013014433422729598099370203935734242231636383923744688392915138777444408410506473625445593708868588581809826778501132327261639171091605023145516831825269724327770792202820015480879051063599862978452196900625897796340910259368007686288837510172081454056897538305786746862461539994345577902171183376312459134647012836086423959308887792767964207494525626414535164113983508287748438219416208242711951112232145950719815754523716632175891220650471892112400937891653727621575959519268162706789111742965278238255131319874202887289791464160149695009864387773429604375141055959403578874287191872380916256722677932921862535361801332276315304185986518667085702715218042577521316251306160287146559737238265946311013984098928654944571443571605591214838551543583144419434443695778663053023486114560312351434637322505785982667685103275121468128255150062645286399687452042561666081286869433127835456669320034255269611708078689065917034311094263767904014918668450179617871614828345153624839503701594164852716409593997672912186658843189961346901723889575838704831842202636292187060382368608220846601506045514100315093639643519093659788771733125165451688807256544202057669478543528331669160089720435526032812381608007267169868074027494707525367291325326062489615917294380203944989654719023933496419046637916531723465347734740161942335530669707068534044262219612262953508984891242502096078885981937053419516149169812738174492892197494658013244015346979955407380747116711135127940635504534424230063928670458453115180867899196842607194172195051749116414188568890480116605377203519967279959764493312935633530096133244104252301884284381091190777086782279328713173943967175404000937151926955904890248002825704360162795220375785056355793973564756079878386082748923154446707426215864498932311271585783539478302769037381509400894661640237649847750527541011523151097668130481485910750402012477699844747852918680657311370503847731352958327784941602856683108763900145868274945944913011433838304364160498416322096560091687793850389905755052362808771593279258449579859682651355193265247903189515034047262373042434853495732360296935738531232010638952664102364736484202557031574570174912545995778087026436219342607092467610327496283859377679007783227251436591167779791326087790956041204921636613564243782825516962280254137983776912984246505888072174289730899442436281781775975315728574761662172321447263336051994906630130684117936108995495348274020042881804846764231869191478014995655953820495516478095894843078393440459954035693406844637849519437678514532824582844979282597790363282236727888956760119163175984854940998761637345818904197803148975269098387432485852643370792730233671771936153161433052099353292472417822756892620535365517627674803839927507518632100791419612328507937385335352630078267073339284962238840363980987797925453110727661480638754836517004293762865395301658704278904524818972285040003701455907127257300238713211511930193053656590944826576915273215358196236200924628928870198240706103475354449140555135899439987536882534391308537957197943208617835088511072601018771532228368252641175797083488694057646961467474164869077581659265617004227925832079089966534510493254218228923957647952989228643389371090986299605353219773326412927749251318886249769942509900341622506612245532395277892616226018749059456503954138731335139450705650767095107954915910075462899224951420208872338013591333193372302432383059872971254213795862190314606964138004322290756715316775239174722111347898048593308621153157704270055825009282514609403727207252284266050357515782376847334066788395351232130331056837820849016489509740835012975065225385197343355235506815150555048884264241663427877667625951137617952372140293995890143249200999081297232674024784477389186338706370646667255098555472873682174145680470188664666423553401491908391949406210946732744935699330937160443418495080056950502540281048184132180668392460603315749397680019864203285795950735356042922720005614072047680233569220528139228094021811450295473885059407518171622234922850305781702521552961960805392486496174461291018396324834828450204837929675768352781369311086914441312110947914507006143465745892362365434407740972332611421353612024362269615021283359250964381078620628183530697802788798201943723568802160470788675395446513055894679413568624107620316122856804844367670591451347929155890311171713888972074023402731117154716801680390099882133344275893341436584750330715601767656032188705579806490739948204417873395592143325331415776843670367702807939104464507212831612947960800254049165845435649420911817180802390367825330186640565910440254694425001569097213419242321751224861210354123885195293596418735811729515901735524879481343091130242185550059229882822489869711422087414979215339377444080786810761039620372380955530249431943298190777835074933713872490625634635933582899624188223139606423887366902355391752231200044268441800420590643152909324794507263365599948174221427100181554839564613308063002969409842080703240655758943675763032615837570754889970570060164611436133157559575943311562566775553227960472950924242534733930270418437192837085901891723837104768449579551904365776696597513089530219452405812607747996519682793955790085424744541831626606648360842233033389193599106308486865198274833131597915360674118694798495442234354973606670621196440603213018771551027766099816604597819191876541257061242335741421439803438236893186898732986857713146704714202872806334347136476921308943927914017629386936867639326662367850321644935129612552271668963072044861783658676239351726325971689004882410638228627351753453892654093566309311663631260882512143245886663917270958989672805557057401807340510473745944392313237795577777145563338627752442003574207322573352082824941431715800029156207441579866909591045901399144144383536937972326209684188765884253487494638301104942129988913627283379772598968252534439759258397013812007988472007428958934495749385560069345390825851097723262182523902986666991075997474318059441908578410139981316890997767402160516150243797708132841366800677722632309330399726170267280053286946141838060986982672855874010788295515547659497438574341689971180570383519354293660075771138286954217911856883050652460158001710077894892195689754915431205669995587499615616797838660723599059227729482163813471269092965533134358707227070704238543840750114519825403791517812263713936113749780162061565891417104167616850709304735003902773124210795744323217281566639557131701131763778358037659422525640059022581231898453190072848434580356034827291394457463652646984263393013683327807219513438716787253672472683829518778681353682505000762148315785758610789688380455321298367633706924639727881458561240433013747194931449030135229422873033913636729430942031763285629392582935186249629695768923090654004462267239757828984191168940199506144742266279058806504166387243119118982305978648881865807422887206273080157332011267818718325836066085178330906936421753768309224043910670425423073323208865368508027948611166087669629159014867223226541919708600117244661767087244000257298523286782945598588997598112788225451992187025709158093343708576720028148667454567017830028268528543601909838920618481161299014737797820483581730181996540488620104251758985525816934700345239111058719177740267422810919027316544497311492954659785213360902311224542313908271135493531825846203139921893724824111385435096659703156922909717858107701995896896998637297104226710209848650214021867688479415895997849531915115945442647892938813422206242640901074264749981721715882158850511147434958740636689751481928550997321076130468956889894292544945858227378087661476796066270123191518306546645359418054451093906222461436791826656640735459994881437248258993389504520480569176562398372381330333993240906687352783666101057589776013850699967910334742018860480964844501353234810886728062810712799059112809740137624877104297277438742351608570491807114773129197521397392795144165846125474064841973320895980951910933540113489281003704410578529443795897138080911465860956971889141164770184438109632427058278828322010088290076375178635827435393737807614152029748429096498074506608861063869566558740265513640788800389270509045380789419645777626596215745672207933175643493465853285240039750784828417603268429791446753943425455554289217801871205188243330446586071459094108808136995937838804427062020158251481720615072652869566333907278170215412784040185777285176943348709719783253614318605617116491418899289365780124245127832621562145426160159267055979295890521877744275564559083020834295291449952039412459037362596924974820437508521810180240039305305481473670750024573258776358356449795510307535159032269922015870379170914260651080730798168197895685376859540254296204261602985399122954123264257975175186262304138677010821232496431715402618628063277024608143617995324536392680350281256028100324583475512238000711469758613629663147982155551228121971367188328508542069721133663007272008169022292413186875082300685793579074146926877032845229539525216520633723519774263449346730258983437816066159338982777204439815536997809221951569591571380938297304026552357363115444884172312792025610723486839368571933475289827716475997219950344383931685974698824066798358907885507691083869343351521212696602287380915095159631782733901269410686375481343624103541919465630293160844172960717993030736091160962475045697443237642019789326209298700955256998317827225967624242513661933043900222146264865180811094503748039601939320737254494962593773420681770872943448325362200278421877373024589744165650902981134593279792468272046203389265291428949914043452739040438882677787512561088228788839266127086808473730939514659288551777791199802690626423481354105199610152763749364831943474825611011528074118186421454007610534397253459035648122725753050804999334950155756191486094158167276831984013735805197654281933674769483056597230209891605989584427475853123700435438816032899677781735860171163788662388786769399615390659106144883651509466107395707667291815149943817366460570113384196024996121520483388928979916102574196345007567850701873045699843263702990237440294409532465602698684041600968332642503451324903860157455180516430936267877675316794566000910589055693851277572559083575172449441940001696937688769365610825144435194372457246415737663481793043356235235791542417629674671092144683783577952868924400119802562177713982612218605166477018555963773919805465837636553017807537690508138204018069586897018919523296639716160599397266764902081216580998894798939358622946659294133790035416981838730843764120569627826586529415176599313991267771298675454814372057294297514989048693059940963710180054929025773808055584239259350320584924675666232857734624332232616650068004387101525545547849905664147332451042441435935522209665610924090581367471497198550832610227689929742313912042005103056120744955135928545882983805674296581087473150061408451677054073969003021752111224649725742101147893872245199186852902013705707678353728561551520777201980994600239514444900796256383975188420973021483937636927688529139988733673891246150493554835101937283575721709014489621442002485679852113618453342882935742756236529331416580841758740079474270284101370951807891510851548360596831673948154803578662566960161787085879300469982550945865664223090647480858990390994126823481158633278156748859570067288535769077416696522218203998344613431871077718492562788578086064662090824584002423432421659902324358803742893131042241572223346229021569552683095291039249844827764016620873483887022636631893867925975859918588788015662627958442008453955424753630443068065713848491733425796015144768406338424115925400222453006120338625971130535155549173724966443746560122553762287045970251033744118465014718621202292766865206376562992015989395358737347868543304871597048066671251752360131567301019265922308403641692764447463309335075304067554238180650409466989364298624322924387038088457278059701312290683786473030435067736622392538977348743265615749347538143491856195397313017443609011661498200250921775258280113268461662308693409932339367638615600020108137296992641377168080983411151466112205129593987395823506025930035637028343063991995933637765328734072891024788065198404933087806300120451091551733498766177354112948561442386002706974818077933740946451430167487710032124586786931373334888419334534551708399875522193698437877386709790715176932402212378037715406743826219320602421899030912341324783729081204655577089571689136111823749845674532396521082338738842427797762474520044414484346305485847648491460374849802358041598959883477306071189632477015283859685528135790242479781003115033608637973309373216899949986766812147187953621009544278243700439074134120052143404374070554905706120658960986878104958795503694368575367083328161089487501545129051811930041615953921315989371503437987309851423414333483977821539732664370624496031548714737885880702742958526810869913157009796733336102661359465652113921400923112602241645846382084857059277494636161896655337845328458070689217130036558578429177199643309270774712782510348175691496718182267221134108720515942351424307742506380447061771080662402489778874416510599421534397447617596553372937441263852677321862333038060332597989414211055016431400870073621252525524819202069443964598757625707112814899180279670751168151832058729194036352733227050387225585894408741037337832427514878205778079702058674449517959650950989165389444720867492449815424887109807934195134194540438934974850988676583027441037379131588639007871729212104955231641091716692143582537327694999272230914915695501840169444020139527041732896660536387384823156545476748862869719304687115195008353944475686009227679935126618787225486168415534165417311283530882397174804503007296620005714391627928923516703170846058349355269176517824993855499706141551342282815015528818952803253265545644796159987210173639517047475630667619122765919343847172462174714609023894496264873529508955529052833491687715746185213999791490564320858904547360666390273438724583823673211720361482295789760518727537774581305609670155498245507977623470961471690140617890467821863609586379127136412742212635869249359293987251910141723701591865009766900935592020985242815185618812973629620810499450529244983568610373374142990977682618684810449936730618719423211269490541649138394876501595792292462776025845655493622167718468514017496075764700795364123627289588056448842667144495312848713911745748237498490691232154496619101563983075990431320745412275465039334440533776078279121532908885123906244086106046784604443178182337266731888934072636750474685108620701981229288116069964285377630589331430340145487351883779527018656866685228413872500357318803253085236707662560152964223815653224102162723662156224050598790642668021900080841673313771358574278838914665683632881711763532095175686831004770177373286019745045553526904426170685183873925463988829080483043425227283842463674022489331179370508732076874024152604719449950428916918109704057266614386347417237810856651580155201118434679208996953747554766925482243913061679347053410570711606265237969677168692298384146139328667256320767975238603191416651589665173376235704017815147660698789387212651568088314134252574432281645481868470194598929437969553636454093453716788517565267245019171176881949002886562619480624662455997338667045060427067804041579416079529161249554153655698012765340788442788350701535466025447037149865891181364365520844624740061045088430756326653632978714955917073328844812196081391326291516534572780181562838710898443315715874860791658365971542481201010196938993291710647162132855422053203985821826090642027889226889379619010838148000340083123848591286515600764827380521071217086332694441271725949634559097730219273535184343322098507037032757748494570416622190968163731344180262143838170321684213760309752468522531994744433878087335652096235550541222370719335058403795096519318870671585766773124901597730168102201500366298951318068724945031260476463448284940765201200945754311049089307189873472262832507934848508660000612222153317669153550908496519777665568355934260627325769710923187892690851211004247180102644025349358718178486033164429065728049720012216791129457269750756321599148770464365851888890855691743711022178550407601678605641411217074760384265266272622588642137304632100095458188234669562452270649362594690983384984663155981449878891295586345559363719394883622445895231145576206396250962143206369482239433425080727190063456508500310919814210963339694659893140137900831054178625547015611388501497227729565875536889274801883149336803967274584817288184662145925689760035312614032902948012645491005358934933574603005368910494950953477543344238935915048792616373678130572982551272065947774675358763492382103102141973374645008504924801299686028376563247088499886852113099279016326732345969688284390310247791417929766444453247767694866258318566172350729708970384105324711679868924595614608834100739595964519405683687972619533533293235190720104692841942064581900751675729011200577676233451266919247211054296139542319178851155271710694019504346058016788322378999176302005675805361559247149848292814463735955310116847749462940780208945556260191806629925875187828473216509166928272441815914720006071259828526594480825695673045545061147538849460397425562978389246931537823594090758663912692589863307422094953631197641373957059646317641811650663750427729846877657960440811667437982927022381349686438747973386405682304719367053813483186663271033779894457338727448192533050003858584887440398339728966217347771357704829783100613770997327341353691060797261971969239432428349452508285001350544188068835348439151005333111287646023820577256636579090190356790723493178712626980162154086419721316813994113073080100554307921576899758451047732915794282244483091869134214983397037855997284578939327215635450826085328627303002289093355784631939814396876999614856466013315280378344864847528148052160276403662639362575269516423825725761008608355910631863823698437500197710964826121405297965137087996973056787795446487220204353833886195349833114227019576700593869251761316811689882369906779792651162186675791030410581733542235437164105285324831864981822447336115929201953456001659142468339069633655097149601829338192196247792546783674066438080717356887398915287649469802708709863563513689781647128537825339408246745999892759623769459464323561577243382792262000254163845146336375052100628052251526342123905031267545584877457185495889154407892995070230982751844148291709416669653666488828184993595586085153148627435634335183634054023500601482236391850041484474012041894209824190076585168559937314706962274165956975066573062921717112054677450175958176258600473574498586712865029364124489692543048527642104114671072528560503150722356739608986450875044740018684783670501791528803432179216528008759820954569864543205238240347590554761575455030190749942538000423870817164328839580814835505241828638623333681153479262735169271241889589418524810364928201043840228871943669948639899618630655003147770895484536410932034535588543415170843326015056414201542096274216811315167031086863018402881692463957291550880249406952670034974162399697959418423371448856508655399188173184840263952653057079928520737846064868083398838846818807141919901833256383969469263348265926989041000323339121455376676378350432382248022923867697782983276389547965177748499303890090791737778204402357488753073870039172357872491895750581049360254666098676556387605694271965051036063589214495014737865359509720749435277749060667743523514787640851874267739387652002940405297765993053938002580929192662822971471093180584494729771013665194004695076960675319677840429592136873578879484720693289007100033712722897723908858899104236267398467583695313997499019466321492297315307253210020499597325777944086070951005603552567316109681996085312666384316288114300882186333697031304361263941361194374777501051160462939545628511338640721279217585069989030900106468296933343995290173045471163740206620626699713669042392492094828734887097678036731730422087946097370645438428002019750057755873384372880540958199696446840353532332329275713204918779882660441600707118727835938299103122547865240640347658591357896188512862901698925754064924007372444221517991523365442724929516806674899896027532428869788616263822074039431762888845003486471770969923324938962759845165857782636155700694069334712790695985572699013255584204768449053389330195954901499399406033212024934488334351842517686358618895377185785205507279171911784111289473963817626257325909359976913134942861865877326466968732357385452937224965979463443685944871458604228132876124400986918319166178642293336317447345935603248688756163071773585516567182829561653650152139426933609689605302993982356544093971499878953670471949435614234547726322770010330256437650686403829293738192083225015660835797909994818748920243504589964007186187685614039979342009462768448368304930183238864123084379538146361653978798815091463652036528875183489543711185543434939752058834002906590153035994578412856135367880342603556602424962978394044993939712706307795301241921798444421536076105262465813839478064645166693530359439840799082655247772931807884783078956778502934257936621190074094389596130430195044915549666996198769910826681887106042971106623923580597775052349991088056355960790685903953704171583662256880511452767862139492589556580430749004943809637400324011489024262813215953140484397200339434238050918471230124045555226530449299968407820017323024875931531661165874129830393884708122104397466366769219763431455724347362461433588050168266780484851521111557035487762112698609623498581861016625607582043869787339192178012096916694014904925982623499599163289091143416452220291996425465061243588429918423737419376925909672838438325117243495495174907122893133688975361362939698415834922878214750615632466217919810827010438527872379034459998039904930270775981147116606749122440909763486024182818086912686393542778299690056237407303856893664067510903970509737898541936051814121612531674584175847090598202155520525312062962845383531005389978336681933454284685020379573840595418367827037779429536032545345530043343277393668552523275066608677368711139905756321377126606084539916639040433588171297595781326069507250495990217163186996323083415190711575039187398344305672386036503225379355616187437850681343516140223087716746608815402802058299061002880971616346798411672015093001244124014207582085256810334921804431717238213369374520960876062203271013724778833000509653909498104450867276246832437323859411145435236532414417997462951869994890463971909331310807001409525518841510964494106776006318968331954404957570607509938308841843943314529070806473750940401847897919672382564558806456383754934910071953035751741776990879100371448468531695676808198890265919144703044734867155263523370259593295436055046191230802122094292755201111760655820908577564782805763936217615737610082324722742105976534675543393053584876387486041367278025677314886211395026480985748856082200571369517253565764239824236025004420005302501532864067991413892502443097622590809291121078016297410231985014631389311172245958889054119743707212527731407220281673008455322923720012144477570196769805443295134096135645142669026419583889430199484948502171990071757235245091925472078303611505501040926719078347289046061555762871638535477135362028948427607119009356714205761893870340887151541210890317848458740867622232654540284388274863270270825005633916180191381104213317449665438477683867489509371106536290127317262681921193718891353437713801190879135041964035520868511578175441762590029771486336489966257549534807761919240420639046013600003181165282559098391153792859976438817367768763292078709402826816171782541409911129468134955802516263185273317673823894763069927509810652259460571009202364551441563010002792823381642530147316232949042736080433508422405278139159725587705309687585669509051896756001738040954723623923632599386864435893837078166088771486718543548589401855036389241871992693393162048164851701447561918114951264038547255011374442456498582096402649711544447492552394525271064423800509751022855389201865972902135299683756832379078958867125762259330291894511687382884762946451734357146166368837392456073091336735456619660599963973497180569468398696555297228134791192212526884511851010464615278500471456182671373301741130248843587905961863624564786279216289086371679093931908551990097775714217057836555999332074865449881124770350375198319232128428708548000754287201660971838893951622857712854555650010593582143035747023365312547111507906278349033170492058306353763427913470445883354341978764500129640486229269185478056964266346088441779322943202837414424882101714963866044103186800951160722332689208023832136816521815041360279793029367317691883621403030878929937186387003945206262620272961392769878634489626041684675747773298259560426705307368557195308449597961311665670319153611810498683853307828564912806900685457453483903069565326583676281594318044698820102576560349629847582721394960543695188992893183139056322269321269980500676586164547979138885698721145639170220391689770771424581360848928446825360437510275354262730874766282989228244170492177291516178768179057921907237001844493059334129616806424065255454030980405557655228148911613332905415866112028872388120380001343001889909123366750249281302833225748063985741967042353647066350847970601170141965948105509124645160216402632655366140636263433912189965077942922370053385266410778732436104441144147450849736497795390355314276236829606290629740427597443587778955023164706950867330987525363777243379567330765967543183393164804060225747760598952128714156629907698480004898385466153258795561129515726723744601029785500012425505832905144491458768673794311423358780091318478098854301846788943585704379368361326750958986485452198929524708383223985705681985167824802425780561576230218920753501357635474725797782448421637579310799874711013386266918884129014451722039852605436354369333152465071348317817033556371972237365495249788366705872661628077670719004350632403698011905193019843410792440034482163673082241427196878220064648734890730191783001826272699614461211178210636389512440674002802821280160136994549373000085111279998786362701455738188972798988781838784099746140708872147934666056375422886432813385544026829173545386001164381362855361450322500456869008032462940673027621455534923353419161880206241944423167287021734746689000816590776722903080643778286269046511584063269022046060107800688453622066076630943965077307114053588531339898326960183939008064735625513362635239281550614950089114775601132373114559299434946298372619521868841240534536539212425753882533915781902211401748968357301997144725723674689543591805482449313589558026813314933201563457696337660920419129839397536464693190383010105099904049640740529570914341253833884652796883975364545893826426830717463045222043173034547996549342536553142209151500698561156730321668352748748471909520139063485531701137546719114025352821900188613834326809300528987668232923912345357744610492668396354746189519862822714876006401636663684178826642155062773973464185114351339152433201328270723259955028105216904183579283871868814878330303062250784313107401990209619767171758728931190759322133981118282460489949827093549995924076238116864300817048627435768921301390055326713855975348897615668201632903308549804699210884518497743254393477148469740321227252521543750914387558840527442523918239128000071486784645761792074997063764854839125917838539625073537644598531038901596605870653314836651763362852336146052947014983183111183783087515141670192412097022757777704785413649868502790581262123055561713573169815591292378289737077574318547001686657229034457649934147598382997387332137133583520223785054241121902124148767642694019773345745750101709680296327730557165474064559029290374086732953328617086715402060036859259997019835854461664017478572004827416445880115785891811284901192126756207141128057818114732745151406419364679142826793384621409119402525821769038426468881219265702207565461113577267701328854854008185428635641545372865398529410714918494779263970255554410642553879473751949205044749301989067204146754690644179290569492140552823115803395204937802760632609111622339604559715879358273007917054963240748834203779375025418783293082699108007485894198798162817658061733190278714348370890906169595711237207948675496494817865042535597080379684198826328147141804229244573543385840070875529092997130109410599067237028923790112504634399120000836867016011892389782304925907220901639115379083652420237499515395010269185321305457952910363757091208653657445107064821507282972687459927756411459632924014031607860592785943899205716950812782362570173169243414386076594263256989871071188910420205276615757496689301195597557463807248710280926805155979123932293054688047641949229648162799761419839757826003261234690353612385246436090777012274530678938849438685756931064038071086260298973219887395319454036662768910368020675187615138341370474155620518402628144907800591539652836149274730118686682509525427481090468040223033627269436538712083998403938529571149040859960719309358950187544789611017395554539677196651967848666803480187188061754134556069154978058239365577037776045067302459243386714902970511343336933445573496170864377176479734140996634919660145219808624747368441945295678373704875891015803097788240341729170095594134554488301436533013167738813672556277220975506069346060971153309127303406629499212794631579131483193874379402308714821114604163886009937092179985994707937221600925057713599888510015856560097513570178753337569467523408416671540554423886243467740727759332502396653773662225292490338383789428186457501052278423084198403610388583853421347291201374135179347892389963879326247794039276287499457655883601871453282778818272701149076090507304831828311012734122826798530856166345864853732292331861767065982242141787815967959025968396279713729926633390191082620332350609987313955027506826350301268442183790023188596709765569939359813001405561333496073686124380263702004978600972258748575854959897889069469474505629404121164883032555366799051673628744771884819182474827761403932754512195502325487374163915419214294063819943490964841192220122834341682776676328559695079335895460860219395821322640547628988755003031282387758726486124349012486827025993912333139020464548987826567751507398563283821354154804692888116059906228025531622648136196978723656331896438771951646594928651477324541914877983581426605675267784548170466763061412795673432474914108275499675780581611233065599023428938003082850994219012772619975441409461505210646070349627213977989555770540446160696629482440801867204256029831445728512062854411632732359010803782567904054707072192466509611284469533656584770220174121566092588183187119284764015230489148038766529197790480194793171513346326306162152062592943116948390700745530746521394769259227822960981987616921989251722989974554306274362107845485789635029405058922098461529486918560602689320995686032982485700769944985858894616687473097484770581494878250621527924731945945930277434526249707155583741787957023175303971213206622395352381593531203982188154176805305356926689101562192243229204522336026193953315477067405794830991177618040505396066095930379337244239879466556685611307510304486297602519215247246265468310469047398156977983019487638510133942295896929174304401213175160775283503232013020849131551080565378998058763708795760967826069530650264257027047754670573516685975534644066719608865656960774258046071448094224497846221849533977180283382674504716910969890889095045659195346826851728005633793666010645727489223244633202819474314250839021593289856823227445146604928080139319076819207741505147377571570819807067300336135067506632812761046723043297527296543309347468893684602675220286694268375755167470871717009676043313786808473260821432337154345001978020217910720073691650962467411675513769368631976997338451668652035459263967780398755173079357051071277034363501961744811077000416847216935981186250653181946944372651216599672697338342610196116349595703022429750492354325986326424409841563048310006815625144861436465202269672868217009219376203895205404112930015853725498445268776691269120767997858972452298491020583248425822299798380614443954678236814582742206451380420824767239603043965335286533703299446911303613078849962276603921388901049895367280700117581505976946349821557109413763098726918149614756579577895271543459323269995671229137960248668779749786181634707433814485570580033567358944268890730758125630848665750320820764960362372407233003198287648008768231914018502311130721595406989936928875914177427191839063228998335237021598650026853176182132017195697961739417978080206474200447051527679052857351745185177179731173712035216667774563390423912833837071771948103568820198324852617153453520312615364168770797288755479593919382666482098937270932337344874846111062171436726084743833103721552878594781696893159114973503642992634288997503095969955359520225277052807985029439169685658395214034812222218894593348461622569568116628862999131110160559648793170560846086824506339236525670605501671648988797076921833330378751894444618072194665709048189658043160804743160947359952678312042176718888298005521068280209589428241635055393605462984673828784041513148277100442160133643149589075088398020468324260779000576678275828632879890310754544340755124028226199700100389514537626649719371101519066632483125637013098491315633672330012612230933669420606803446255824565015760798005485999163736577363689501212602997289197663381028493976929888690614581849188486207291619132878785398493787950811575209581443761497768437465505951554654166074565473301676459857251048709302425885876085170101912895270948027839602398028349043845756899927727022294627777559041330605784471558647989368992584759192893633984820887736452752543037551195347347589912265531776322096371553709575334413205171454284982099132492680529072136627050400749303318223541680517293467774850292819193482852208039649871467153878941149281885058079305052206430235488561878898706499279742007900578470300735222210452094603578328900696938267308177281936872982120774102292917631195989443363497722104177731019018911658874176819055417449961154857342464738710142921849084716513023092825550673115401700360614019104419994223756598710782809387442768551964059638164288319829167832522906781944002954833658854910333886538481002353273429815343047771964260412679266169140445922323869825088359315047115849360603045386461074306471888314677681423322178893160144583292134351637020866476187690815908571007828399783694904607245333076165032706109721042005874834001713867490068937888769063544165747388800651678754162266382861103482751583442167130037146761599971997320165986039915202641348636006336487862629972570002259979071928464324169130387296249787522504836003416272805712133802418818946759137885202946028051073109650867176556865759368715388604414075603118412015223070504248898010315732381175462515805800745852925803182103657357738162961026175062894447028433252590820446332981664032908425472144600049910248395100527280462083423483934693339377136186844897352846647600067809285744573182198416633743302063880302154831117352178201871105614090882612499506786616280034754036387613036217825086357168373582457158021473040901423691743039550418938265234788439853135307145336346479841262208867437394767156360519367423197807713380354244095961165747953703242781928285728542188851438643642154767966611173956849091719384572342446827516483592876617122691296859858507433605456336186632611969640268006549643457129803576550353228049222219261616481949454414919312390282038109427360427956037937656254431024440980928329033351088238471580595900322304386580070437043326876512614578240300790573092350166082507343414658711506424246590808425509186621197348136152071480259977984828929813085277843803032640463681489437268949670076347907377361133275934947908830571091935176719962132410009118770756278240275621864587275918963845948036914488246404493762681387450160162779601860981046689773853726124912621224839007832600248711543179513154542460351571141180958827282484628465577451732671887569584368979264984827547966860105491291356293009510050748757473807009793551946173425879345232807374994373416233243356271246127186081249380597214118506681385380696570364357762747000004729212402567342051903033227480120211814290765367055485558066701839761564652740080032433050668475246198731443918112906706467168061824029544985144641887150447604469614486614630329871384090618603847999370787884857125140044651213221889536885324623151231730929252472042195262473581118155635703506011137340948634316905697512176740213170024535842915506110142559233071778333729094589711762181199340253841416840278255577809738529442527974636198889826573498864108462208942462131075494206888524412751033439786875381838554528888260230985363801486129451954316618091805518942574005895228819707225717868987176959094242201580444942490582747410988765496357554334801409085044129159569297807593882974290550696705204758191985012242593529486545907055741919794133717086302656237236675475973216731967036771893743017476108910853489119666266172506462659643143475437379686804777615205479023615711005036368482917126274231089493024416661979058091039922420194926283128741721517099091313096618338204532450012085178272694243577808348823607162558327817990486945492309335874154331639393514615740025057067780403942980703386340308409487087755679958229379060430235187481367123451212033270607809585095222053535937169935757977438990687189643307471755736798839444577177682866853627595424984811347725001669950734259442350909815168757928014177204046935755821658559088598496823859769878046456308507104984187521705264605663802178231674346825113062773600685861969466526334160768108571075612829819018037071661029384859693561011021685411216207309220288456298078604738645225953071221255147482503405765291111306422932217825261245515883228508189216905168393287157798007584360423718832322851766953903445658550125289202067562828274512676176278731268573696348113850053522424267459194873576171780860820966467502108945493352290947799688449675323391662049829006453665075405391153544705273645877631288330540779560109450754460576661857943140518732549998961504613159183591622021935733414072786640884902256434789371199628196099793785088487885978811589829137839390294311058592567176233139322263350821889461267895455574214675193723524276814483091036020621939559988780125295848047450511993637572546011480029733007791707358984161113832480013508306070611000712392348798262089751066524980414043083008537979024785053634793565751892118586097671892728389271294316667863976628383645360350149906094164257689539893027141171172583749550327548398482868201863941804736603471729227813554660368607451402606142011697050314600914579713585616195406722661228036587542068789770804571461617667208802782113170951479688295136190007912486338183685194685655369992184309157717227935347738063281798223661385636619821882628089266762873239956766596420261218464656895226330258070252804284984505629388412679537923918240890902318730322624906533257723423074261553688177035940804491338921215046605736045435367980663550629164400956291966778365175737284615782128185806831258584678882251133692668792114151055600846609027388199918406442889141299440265556404844186122488111366189623835447187712319454731586262100361312153706853521108406456696541039622021377330598772324145942816757961241350368476218222751824003976347896720442807963255892582640699445225981026073383876923241651641791634003088919344981768999729652191030008499248048864301463958920959278539983090275617594666033714688511812284169174627129043338271375625845601902519370667934489742601816958619694304016998034660477027458612747691240408379338648164382141466455323753841486245725673377305653505189133868720972272773119725103103314034402344091919313299110153671363026660509301124687040244734003023875599918697872107237830718352166015467387328856596673381042788043623486895895747455595326742245661461727303723059443864522006514148083779334469016633063551258848662056933616089661736682416082615441085155581747018036244399045125891796216586076857437350415098809967160751930615625357388664169103223265809032989884653422232573857233228969621314365511259825641373787129511742036555758358786660065165652832665637452822395598042171079135378469580970707386044515874215472758837480251329692556740754639280661278998337121544157348672612521777514595603208539175878131726516964784172293331298476517480932579083177689319111321454639716317876997628886957982439897605891119537388463274125494444062446411828710925107733994717545374361015722837680672994344780210706222441416551839551738525068607789461440780378616421917996307505990852380675737613284158275093679358165381818914245896848864726547781192967019815805963255943652838556244863295230087886738524805437999867984289263886188434205711427575759855273896714800083925123101703281649586736451590937777306949861497798031664181467065199946508308557942454686643488874483915867572383730838767930884716018940590995443211413792091388955585397962281214126515601205036787227402729766312217681549673910710017765298822776517388938320589850432824807659660565144566020530044102428112019579066344779362038728437697464161885275657848754700276645018332076640778504151148291176484547119553476651992479716683470609607322423084986384245921072941742524039225585575087367869483316622555450483569112727681983107733594879725103364356567769543790238710735528758611832115104220491579372579029893035529419518093674700516258961541531081515858118513907922721614043724116675630894887311440682714119192579213660716110451495762132336510775762963755036689601383175352256421745050850706468765086353465806591080721774406052882901616938583219558291520793765782204422298706727205484997275708216896742796031772309310163624437266568696672656964285742259834279157082467125753654783050231598498416132080782729656477469069513471237462687552985196249003885163245068925445641327110087725373806109757453096396130941116195587312541714419444462993345472431999718537433461701167817919773086862628831259415119322414250287011326063437773941429028940441731802316859533959525152827907451996798688515644976100802480907533489489268997589986874283279658617642406155061991112789051534811019417983290454476996862199979722005515484481023567254890403582384009878046574011265162873111152661064361628882572529951077742150028126686919156641592625979072332812735559681796948712610704407566434691848023338356802371538251487967352480871223117419029880506955104191318466830944899502125493942363502871387022852444808198307452055316026398723525979093636519856800043446396288226794176597141198660097318197169202363582606419490723061484865637826767054834083735229262177475683101358040585374800618255481513484561339102956487905125585410836899924705845303099235511072470455304357517292698464177794800020770321516339904262313204472195470646126151492771357491478857163962051435114075773813227401820951610558630147429173690993339567760966913659504532524315624230149945901286647340826489045982078959123538093259419985170942284615825891616984726463029363988408296475669816271233725061033450920308735418924655050092837406103316021677468857505871666652544071167760942442163215807161757064201504735016140744180579623420825714888499032934986576992145683857355873718752094373060360206298919431846899644832501325741523211510822159079854406151344334405853149382179773113190034318491270030035556953531305228550421556502453663465970928270321592850803418417668171050741598651657659131632225172082300181580786803793506355785307785489396126442006862294711896080960426033359776815630614572068616554002892172561711109956363286163068592333884922792191040707417751667895340291121348506256062354412478027176515895117971610624456692645811307034771044539710365927124148614708542236557955913249568470723676710130692344124506846603392555783025725207114371659981046213595546488478967295132347727571047320347330253512433786100729070480012290896682490351975835505279113518676322927490103280377723365557803077982151465446574073595717076469379458480340045437609887284084225890764865079151658964943443713415932992904140936474675129611673844779480155027479371942894173895361499850776329287890286876514485032382200152881811869402684443386062231448312650208648934435020524657503398745495363384693629543139950150678851713593273548334536235778363990787460586234930326899809044476014600889184901898455841403887404797196561450450935016031061177258875409696059906058997843017237029379167782563249121817075096795872995507556546979968404047840191413090803433559686772105431943327050246301774782414142920666116633077343589444524163308772460393195883130591789991856814502752046829699862703849190097937680927922546709341722411690965909384391315233740317607067123688587273500076270802016183662280978298359442493710293608434101364910929614744714438963147150314778216071705527334938484000856189086484138077136943528797784038000189135933940469624431829228118535356437672952123747244200760102846034861541268354250436297947570331571696619263433906341916057527883853934793503354394610799816529377224686209452001375982820405894468509948901234624217457741029316157442521841241726532684075828565526736401935969182437239303659443616174452517821508002310543866133957485235018918574809821182829511370559534444135498527840401826450484907371696633731173215058132615408732239218603850398428541990547406483368244588749687474097429923448193333451911904512541604575638093640122102629535720476824597521550089031033409636771143195223506011367855433448366952707987754656443426523250998555916669338729928532154632247533332062062795228087938644769817537595017540587920500457098270903116398507258715694240049813161733131818873567367273682657079607066819859661847636262154523665147366905023205453292474137476852382244841711824903672790192501041990253591905285364137833463599402011053649792640663553076339203517763813505555758093882783048091567217706865792469580288337176699003125883796222628891284548459397131834656482663164574216923144018406627907653693912730688613653385329790190725712631609367355168615897329545764666340276591514061206160221043993535546970415140082269223738471538721098298759864376141651332584864992557269901670815016123754214563328119718626006773453607269612124029063158337755549616146747719211070179666703526246137851542637647657007435002821705902604834475690372317769349618006812454408158458360979708175992180025929200973096626203993221779148666076964526361241449310242449268120421488798051203649265232390085870773297163309967106222576596267579839332082394232357953323991245986640826923742705505966914883443128061443479022574957018486775876163500038922912283649751173174991637496333505739756416800241451299509416897064519048912284856690929586100283622438585134663662907415369092876360746574205390240964018189549005228208877334664283240488821846777804087695817440243094041988407097093941088607802105067492418818452577756058503449131442631714411551995312859997721303780661161412666353050918003588668658834394646603646337090543167517016597392946810998775268496034581521311158384109052580933214159492950060535800894324035848415981095904784859529067958698701716521409216881203143282539314434644531277794915602231715392765146799991309528521265085745243874257877267609054285359291806914679626258296268153920379122008747239908263070315305422304851158946633441595077632739577727632132554293220751835014034009687863956718732502842887248984943084512732733861091245605379228192689723015546962375028854251600929170941827642452954414431105765633981128254296871412631677178090277841006235382128306446966121734778934817427069422882094241541804433126388228040148624235262583093999102556410250818512278752658793301524036405239036210144572938085186380341016972393849358074631940921816444161951883405869181789164203213362787007016303313592393791604177693855234864124628784137367852395032623720450375557577820723136335075168162825021002734097131890139913974550091936802509137056698469024804782694810064964675603434750219403112219000640962386011977296113108837391219624247896351415422097585795946111447738073015036022273905320378063818713424412379545461122719370822395088411481967059139265311368053547320576300243860337497982813314317535232291789951489554127143833494060316589504385515572432825884454452338068781643704000135214113613407301615905845115601477928015575014584493177410762590962320604217221607464616308852033536207182004024306196443005585568467699567261959333714560870977375549177523084730968023950470931481874056011400971083598158296097696937755312153432785775891299721670469320336189536337055979049449689971772183026443566748810984753563961498310169437263208262571238921603955248988300895581663601674070859296947787296708243172494096630960039750716364501587000588097886790977102325606265072035654822926733616883731156820230774593837589037064783375892023345244940800479732668402653023677606132594356574061402484151365008514375101020326711985775807278747386150781258038853885331609418177098156216248487021009126197509316608773611109944214462290504895092314245931413546968898472033066514908765670824968724527060101991662586373222235659363430199185201094664104177677527904165201131792319675303975301304295757062567991010843565353225248886310752167687308650644225410851407911700383543411424949965206111706181607443716470704740764556951639454613230676170336875147843372110123411175224480405772187134113019711978000277166452890489758006181348247392249648651967854464281291290617323305429178482842657528659867544051475385351751403381847881879222985231760781224004230060639292286298639223176103320322422525576464793999530440308850057133998473695023054058699006881803869873635048461947697154936980764476314934353454627373324767666441053033315870298923190879439216721761567337261317081730592736358302156188370538039332678747369832465465265648854514123897723227667940322817148478813239781133453701244314771519922249789769285991788645619439723144036693208328169856347785769249717437221297410027414013641200928664715475967720640155686381319805509090279968285074262365822030721667714389366799640569810544291664187635661867638803538549477592004328021856257693418434272834317517247086109438702733576220617002910299265835987673766207334348226244527877870817718148452293120525063931684613923669132252945848124505341177709399651821112054279341577448253526837525650640905699232110541698297117197921563275811328551121909757950847502268283850669470362412847366352247625698253519297950537861005542087355440434733996122429464786700219186255790423811733776252575099379802708025018609058697799356544483620985591776854618364110732809445974975591759882188190578583712891497848660939559454464934422983426129142460179128167824568613966663002161180445742070837313539539275938849828039245927888152511431762067682237648838180255966119538807406094835735911741008086137331230947099364060993798210729795265749757321625326331039674482293500902685405990793619908775134032420577390005397801634941555577048285825950040713400908586977214721948713113648068368291876945768780775300684540427889487021622817795549303178564768402222309620839008464091837497611957746058751543629549778282213259923923500220584956370622071279794854010706899693921197133531131278506799650572572559004974018930097198715752704521468889176769217241549261576074263622408885299404883229187391311756081729109837050262704204896968469488550663830134689291832511481650788136064728611276327523646801602787328832678377429866394240537607508775843078821182277274659668360794301572902720167663976190052188097941711294881830547679755648172846215089143563887395404549152108970682423375302368996035721144947757249765090462681123429084300893680966738462679131610311723316703609708231204782462534147735730545041237281327015166019630070847432752353155506034398561743553020207350138419617104930531472662934735125850736343975796660382553709187682673847689106882498785928300227757973573444901556720514798478334399921654970667437791881158943376910047868024410179063266178101791152991210979111424314100436815787160057958484718792226784359836106199583949965489084223901061989137038544510796041039703776309815326231410129978346005847777243551921393349283095559859049887351974572656731384901234674525784270943954221928810322726152879322436411670801787855885585587321483767814419706495975956366805386005192870168104889848369382247478738946930393295398423714520753307612506016685702462848541508795083138126266920995273987544703927803254500630653089057395404529261881371422372108608354674042008319597826043075799302288047938007692479747005229907519502796884678940787680895673250114274769077535950745952312877858323226302285370746798225034189390982883037724756891364335690517431287967755743783513920050307576081405512694734966747393326972785517410502383893914267928677068889653606876845095826107385765255088701181739593409744480653951449152266071035813544999528391511026006725945547415358049316382868817598672458985051898329819301700654912403781819675320250485796053483568127949707025095796651277835470919093987271817939478245993199853090415758627086094261057659537025629725337910691836288759836770291703954443086537317726787567774510364351747733734243139152891075985153356913420048640071794005639343654208656764110857186115501962515306613261149055829894499872330486645412104960035146234683750567566380782787796697861633689274867144469001916197920539250372781188719480613980984461030385949035632322745491355891224731060626488536547879607030878249257517892738448658528867901908592063455255373143757916433686149901723385205995826711944254388252528488185215095061473861904615389105133175904938646730966625160849852567585786318338883252046726317058473639857885179228730171208646160289897348345946303688954911731445279443913746872814934959832625033500524903762758042794038913457385434257770932803748619468311157064665412593802665911575947705828732038276872775151790536758236617607491086241413503997916953862339928754026276055156736905079728089041709447198683866096550513292704956260575233033968283624969514701491841305763278447740144561490783783046528072145943311609282718004152943692673111596884310456605298099022871271162347749026910130359909821104272679817106811249046458442570133122126202317400527400764979883343440695895149626708073193903046482581934853415405254045721399687576917526197716965942595459430997505965489841506130250215846760620459654127388088794073205311481900471478257339429720214331223230053106145502358160586574378907412171387538281476392265657654146207111774965541303913654401126885246518976544722020383121100816528000579982999095470608324524176940595667657759274769282523336671219967044828604788647816165604917580862505437890178867973753451345738159141426904797929110193652194002992959832399448505143835075109684321100037005976115339748580565095415836886100992175957310700574392207975365057745378484953101887841899199628210026428749983008783686635024131395497124950764800992005529041847663436087090103957192951755229586002693624752763206700460043202006220604656693868330859269978859575141265687093540779079179435968042022684119850844904596047567361182427202151899989482405918565300178875599079541078254404689318400770066626275939188600734928035321502502005346606730750131812475067896428895685960087402065210847167240986691620066769645610217096067818450010798185648560585633730986702884820628979362948072006189085710073658944615840872522238745593939010623253568149891717516817797391277203490285990648289501986164079359867648707309896468858020137168837726604333928607170607949494972596930249469681919765933819133359802186016405589050544823416949560148313426673720803190571190615132354514587200283007113354402355805878004481117282268150856147160145353816543499166328120452128787628109537610428142850665191589109192798870135642559402731144403015614235758951990210677162365378508765567632252175536158932425163526921573779881634198495619219975844465715612146600270252270485449021211741350367944094977128721337382466033930810162354986713218783469726738243654978298987678392207595560091338492535468046197954990417597891510708326965108541967638090897090130316775785787482207301864176442149748197863160631802110537484880375074625356414876099498384713362150091532542609689559274121047846796944769643345474830907272583846045475226060466054035498797154193344653112369734305499468091985692604774870926993484135194266114011760297229689016772489612482578500104347958165118083428022755575282473839968153265303976612160857026635695418272705303927722043371191865843491042513896225743315370626195350335538817576859805938105490639789212519732066524469578545227083935251338436907866723439373351830139221828085037907244523649532043711314390025741109742525430917306847538367629344193089883136435748613116349750573695637027184011795107994807639565469991865414925107563108397331435090230387355250152549295311210753757570278453007601187538463900309118147501333667848491249154540178267806650153565487164757345452196308932153103407852403626624671611188969994726676077850086768399986659746842650477273200296344333733248937007060628244954198535718387074749654396911023776372900988650408177247333501333309450843495481405935379534615820477016526296180769119476597887408522539803918256402742090426313586910772955179249427254082431745618115934769787954444310064768235048089602186550166075986819949228040229733311722415393282185861267264820198590384863327425287566469220957111468752826177403868434108650616474054423331854658076982951398658212398506559153381895238245023379066414044918860091196692254705394098409768839790739921074730742783206804777605126494025679592645195974103033070487680438717076943032282790464758458263438620243143769277929612840725055847192899982956351100224050835074779390098126367562306256010822357418520526052037170245768193261985468239351466963451920456903477431422789085338873449699524654772204044591919627866536146025062126215321506614271316382707074779579596451187572112667051207901429371278446524793214075393853564899980475691498654262261740865722131288596232242812328094720268187808862932007122787639588070658690766277996191422831590589394355389523706978446105611006269266489485380093633232745946945212188013619464629429388052416573817749971514725437293096180709468360605392896750149149797877043902837778025495648032304388243955048213030275687445916946283429697073893419407742577003826462656383674978335663550024916105967678378766688916577175644361142396649449103757833930227475257533804708424756128488295895209381548456041003442477048195515775466922477846120992726484171251045659874522296938563393383549121121960220563101088749942079638747322635796964437100836201658445965082062174710023214018269215322337451323262257841005837181037852147615486384403469254156221866303873994802397636574955250532981782195093921822934226463435692137428976453125353703823312323277365934882346812124879438563622671364609429777355522783138297101979360500940466267206019933405487205984523524102045100172927490603056025293930166561153780559469822616640463897704482412819820938082312440449992668342470802075401785401177949189448201550144402939098697839407909650652950022047387157567007692949362340200841125499884568060025122938647971695590893546862037314199796212421846680660158033990271118215420202070067359193128319193856769952947896759277550501767980633146205664847924232161088226847047491581455126669619945742218320949029435048620864718852288476387403540610969980669963085207410744381611625108600084581928441471486249301368197704101525677579173601574484811442745237401056718302688686830737797723055235426867543400696854324630835121538381788745238493236281363289980259492415674638540689757956564336219300280310764861064584551648178356435227861157519143660117163841239905279007282621071988797068054429734201558442826801844910836983969642459322584853238757002566949589676129111548648273694735267981826943326820979073784159673921455298364733072934106874673346222943043020315079746903144302895512406305481452861887058565374744872036570028205679059144896376358768579855372660201297164725338027693225003382012803116936874377864721502458100628163159313453888236976742572170328238345688714306763940213990545102621123430705721244054610204146531457363804606157888337122943881136465113627032369780017987889750811476815480284511646083302083215178030958888744261646600508093330556161294684736582250654253996993146166566843770554944453502804675856838645887091290076323103690762137494597035661754234793848431910665081198927960488927405158699223108690811783525664893129150061136479670444709327828954268834556091423320834100399069281260221652789562528580252536746137074487184108325391039647691993542193459336148975307622338798515813360893478769395955502310427583158196077557190863990779853988666431679327754213931625093300585144492245152698028690646005997214013342103874670297751954838929572002245381836562036800930813731371734876300632024108160870300357778698618264738300266115269481080264473790103781396013059259049237097893054363388965485175755988024592510987724538223020090542785436341962974633755393823988908601848306815642039691834271775093115080643526655660892495067083541026749016444073170525267001851713954494935268067195954571802453683704903124035363665748679772862134507627012843848375728009814645903356922912078088108591741932953888743303496332199272600508420287220555954999477970560328227272309621202115596805309063299432920604593000282175069111629703379588772640037439105154831657726924642270702209525053329424179994659874566774057165297944947804673083314532365283635587803868079694557107202462197063200807306790711266469720419819577021297528121970124854329888823975318416736640534766510487218466015105866910647650835712690401182780588730417122600719153626529096991362683392583830093505553027458505319742909116275695902782180307690611408457037420809465010587668260547433428263841657547404208921152971177956491718347377354006048080141383562347644491720939074338904805353848263186281442794787885032897322178456372934584874452699406044915773657295751966768001178066912331351815563725696446777684502297956892878690550808228819610101004057306906317703260166445029055945500572579541937776509842512626282783132399297452952049292945236069420229601771743050739887382003584536370710674546964627055896367505213180982065135253492032552393545812226363269126107313527698720239046887344412207581290517757106506314007332431077774171364853615399810897810916891145848242661393302265848444391937957390906713822967887109237539984663043087186153228684895452329406311784349280305015566633783777893158370670160421700625312911139883557445791687952350081972547438724846766858789177019562067163794086854750766735867570883797592264991116788997725167188868524457266260350010981025592463638371237072438257124305065818805829056870997174390187893959279568282591968852866606624571625352233983222049436605506246515571966035374553003974977891583362298097637935347837712921250597878104602697751896082100368409796685567958488210452482922027901048983549298068223068467550608349827793912180643048652594826481362346280717373806616467552760805325852111231312447865872225656961760699361142190660149492501569312300834249537984973017189407582795192220655448258009412781061099993251194611645872662510598190877336905862704716036791629756073275079042007746066349316631699260760540879774857203825889053940714215006729621101462869848560305993318967121358157500043093721130360413323060103596785805537765330147826426238264292167042457274891086603346481443090783718269889979054114756910355678357312302328637077281751357248449685999482182652858231101446588831420122270332606838698540687514447026289517777278042061644521839800539260804185843393202110700981314501772361304545680588697933036399258417045311658037431726278594970214112486960630885376489363339681510620291042804180939294966556613998596961223747597705681609015091982175552822241901579257831043332686116410352356904530574845447828552030291448577753460737975318951412978882860072853182306474796494336710617841218447832916464723557580161730355230080748583127873686821417425037601555093678080778482573353822191442488941023068010350016000054202522286198243632592963585991818590542834503061135180974325681046851896447053278091582674915748167742502624213411896030304041381788823357926311394560078404746378749421470727622426352634697264808573159099509280079918367226290041033295636896668567425858246682952260922754814933961167642218562776554380300696446634856939673044681823757840153458580250359894292179752155651506552363359475572807979606931955208946874683398393234390059696010838181982782878124486961555548069343471245084085415683566153979480306915445604604536861548543355197221798250249909610164719248387726818267877845453301478135063548422294537572240146794663907023502558683522806853540559312705005486790566656194495534788273058909288267927124453329643660880563252392737271382307390961827211869796629434610378079394147457317816901264656857036303880499554895192851790879684963059902606507626032768132891537676635072432042653524031439014481890800283038436213659070142037161643787400178109332776833388474250852845045967503911879711398512525298725566049183224085311032225974715690978023769564691452364395280682943205828875977650188689975270868721079929288223784850894245967589416822805067147827544527385412369039288432998760385868639502987391258668435950271183834794434128833816254922042909678104873166886635599445487951721177025808624427382471383367451872251531309120902768121083370793072478574556677867260081205559972910171135268220876558718072328569933653123295567512667223193528622892946385706589798885165125519793084934039513507112952977895378235070127146601777404535925758869042448278519138953025602854503999873006377061691928260540430351253180698870391834615231425957552984619209383596380766408719822975945738788782968992329281355132102636111212980298428814273179548131193592465755989792855170987827653688013118339540705896513071206104040407050116977135553529602322449210745387058563213969644855485932088642447387595162243235280031461953640717528696846332574352123482820995848974199362733140230200494624226459785971328484646759869396672326192118805615671857620728932888256964136570696251309487904066637091331999725226943972240043259505673227003440970986827021590559506375469275199010116726831037975850137971568427938757166133282691862143589969108258054850320318055798872452001983392826898864008367472897261574143982396533733317935532995627016108493175754416970163532677715325784835194867404731816086966277440783705448145153775004506858341166600160698595505970174163998198071222210198837337581715216103319111761853053814186574676339764591638969994720645427104706173238459160017515619189525424156611096693139288448933307188206217305147294280477042197139463046691924754351028170528751275979047684189228304343501019791207162157303885462071964198804512237970108333038713648583016178174008650517582675200929707303787228196863273113695822703513797353231992994847376095364967947380129942647425412370699394723356586274226115372462153835316663259816770651301618956502712236066494709930232780222284950210818598266907350586005378679447638524523911103925197518499356488511541327680459895201687480283957776539187971322841411971982552431854470532614097955799465236874970101554420843303273713183513376014262891806781285184358188492719011836432739845894031476962572281252177526142843272122350008845362188929051096803436805315748710352394169241645894883450665772303306652920201443598273725491810708432600553812205205396242600544071047320391359091607145755999796370731036234537718732600042834990628245239768248343736310680545330540266331027513992313036658240757073251873725170711323604550034423522807838722715224888165866972782922060262247046155623345283129886094653319781138355475788381708152310175655756151963649309971963749813853189299155459680690971046428698476102261111940419065508012240937934135295551803337835068866595336559934556310043440717770082167868389183997080549580385125773634522219144133792039874229805358646196547653654001367906182127008020605788389691145501946747553877245955207577156937302393938480687876721162031836024779954599485224835185194875467483737351811731714145084343894396578405336208686474177931355249348548177785161320010027897982167790293346045833842979704999147759588066322103179606948968016960003605193619532737653102691360524025244457772390565914612408585715360885308102539913740985683461865738622618501221851270695012416002836460179411681223442149436266647756758772978603449019689433745008076358887295617584897022613095195025535283302472844312882474262830301897008239423142413628338512777448125416903647539054757703024682769460567339650593711832637247990045421723547030237300139907885799055489058157254844963801035784088368687179788002437915832613364788074993908041926475681450139480012283165586156175181347841931827467840814765687959243295862227457795301974631327245892194453091460283137450705566825291468773380719115112588533395348607228392759314913265353877556011514567923733590663985407426929730341559343363479484217916732910605158858241338853462438015187197922427625782888463011100474465084460632304530625863470553123812002978490104820288486608700265746769735029733976823783477847633941902871049151487747476606431255583293388802171291506028082690514416137829788827065128792980082786826131698281492871916829126465590573709216169144046928380316800326920141363520331664890704747832456160949171125482900325056529292948596510232893331510503477244816250048518169531088482307563581917769406406680833871365059458790723951021983592597153239691337749213752369782557654540938110475563564309141336932265630516516445772257145225707622112242557100668234020057926404803960688688992617960548938914055593600483744266162595494714724364459364185660385542849137577863614838589705809729376894374472197513836040922810163503556909767523983406501717341529116041964995746581977337587830579660861003815398833735249283316505283861669528501993420765617287943369073620866491587554153902847336633913224081756410699034952978023962253556991395768256206505889842157449467461192582422046135471859500561776971048849071960250617270599234282303118366269853044102799350429754455719688591794189478942774307985359476910670307261836279604339820908433610581530930069167334788300774002721960643951898591365652365247962986612187642931250996337058116584236487101776991030288858035488056011091840217621137069525351507816201167619058226042256792037418654034498512411064432518855480748778573788354054437512528923695527557750913654095005685697156716910870250148796087593274553805392773734191156146491260646447554653606421084580151089757550741687784800743935640058226085773485217305425793899028994980821526298808830570140283892563432505039070403844765294341073438809654847983628420938743287520322019608338436718941153203731361439346397127218875089908752245894805260998217039301796885920791273608206199275543259838286905913412658430266798462373617560888408218320218517928146954090039575202778291418803957565363595562063383996798232273800633095155087389399392385617640106898613409392298248099277383761005996854219165367035935197668598813609153971139707637052007299505844207663893967620059380718353897560576231496735582256421217480687736746999116672286895003866635058315493567740698988950584066522199449545976004503282089200399578305489126185144684120603009222596562059042836150379206133994977344974948288577108077872329018244937609142428428350522101382372737493252120819199191261123610258018898566594824549856874592583682702929049367441013697225910354964172779840445770176331503119579166414299603743701153749151951827160178930080696324127526223570969407096808211634307903809470338733731779209535741388833581457605267173947433890399008573861683379441869580000534677721305147968901760019810518516765708738291963735747651495961767007381850826835088972905963277471325580012554778223346750183272171508065906114870034824060967118065757391814973839210704712151518898714909387664462204100851202166817977634836877648190560537212742820624947872983463025741188171555406661944240806792723841635034912910497339658815116394175309477115318782467966567415392061476560120789986730116191452632453674048775495640260461624143454727014081717967801814356272700647618996002005857303926142853641253353312198172686683526954859011597370528548399702562369433577233682601749081478286620531469168488767346876336028392465040812603850985269365507946124705059181094379498637072182341829270031590765525951273565677892276188897389069766913169585545752867290551053437155002088940349314705709187252294257758363106371736147941499552846679647669769390739492836773031643447168595897908585131319518331185086622758082974482410794883253710423159990158509358609992622415104006704836237374836158478163814460839763130022565404827321769314946973308088901090419825168802182169663243957947035783013352204976389859240986771733737648307025673942753444607760441000107805175652640948346962328937956448362679081191426123561258760982047855321958854318656579055180857124500816092984269723517493008829390184690203628244897685135297436637612431084414305188432252936736289007862741568444147910749495145346849343924527219534793678899116562460135261911516458129451835196705938690776863109673843720811501218188320348726684234344712441252927830208534812096270978300486788825031217190257291528538379057920122795153583899739198681345374762637530671529483860248138346918855166736579855243044737565042920032254186810164254473557258636194991153667331712538403193990656276394998382263005972180355060013569139709433422894800907163341485794001693980675925349975967642981262453822485840241968379179558553561734054330792594286886737083286800861812954132207387139058181366069624129940219530100466419758401669124454762658202693302967405462362394683414893014592636691781865675867074710563545085215115506065947815801261901174552912323704502292984612109904348245464112243617359310098175243588537032216361263756072325587752133295489138004907274822499816685038088885029440651222218303639696202877307608921813392844476574328231136868951870172937685877470148688218455723098939923807099829853059971577936919752790101691546831078288384482411218938604015420496186698066365459335239603622578144259994861361540383005974550279771948388823459676456398752361740551734883240168264521052997874712675303170911025645289368235925509251981940356577012568211369598093832980697142584467644517291271356996983329451766724256115267681320562859323370505864113581563105408655036424380955669271471688203073504190568562638274092850385598606412445950333785576545041826037715474343379403431456276826556682023502843194450301373691664251680469828708508555514234146492858552471954306955193846970179417552917638632434082391766896962385089396731501767568275772602479333166386486144270387816755825662506594498323621421404180332814565392754369096509832806653934019184142258997382534470862563204929269879529732989114167658508448127203484582796307030060553339073695241472591606825451563656769063122111345214439366529845407880983896646708671966326170157528980094322098436119243147017740322038245768670556799940939752294992819015840518536261229361952609524933033723999541483171227827305141756851843930665772607269753170766672712430501515272027521788691637715059142108204598440202207051306509989531005999816814280742268647723792494046053796968288496085845980407610295136496006246759015822754717552392355771360865864783351630744911002973343272333175423092020154991350458435900953634972567770003455744132742826181019551424966695632739722187790341453642542689046559368324304744173178950195223398738621051395654526376792665839483157939253824265674994579703734031323309087861191020314577686734085539601009580945668614524208092915624048051658820285644421758443592758976603281023829277347775383532382613597612955099107193314177092742534494159840633090352122514444701643980345423356489107766400489526891215418352944934382356691090560414959239702911091723487133826791631405731277646629885195722325621227573270277325312172477572049805244931717974845391103866745128801887800833177916377232067034896362969261280347994881550362354967710795527514494638374461861728223565588344562462153630513139063164418389590477383734911331415160340606039685930870764353726486811310985051019681480933544176515944367147226773852885182755048329550184905336188316540814213416685667258453290516749757724165476459349579259020243121328011485098601913575868309888427133505815439892874308020047742307122263204301544978154331070513779155299282638764177025352497714015351783653437338483983167692869913921551239204934348175772865613906119688963693421793768333893375446403943738536062457855463302941468072846766091317990458250997863264629615123690303213385964518310765647130640524573201697080333692101551744789291417673847342807812737248591872095840491376054373310662106852289895420697658434602140960362027906174883618576674730808757306539828656819644526835525242844571392020157015640444234186071179843991625646244324622770151076617101642735995225003698130247883095212028748709958135468549781087775097894482046924779754711217761748125383829884474810264455644280000241817663497802415113042547602567787793588021774168050443937337724959441791237625427173873480686249997209727589264333079184068319615207064351292658103205607438853174304790332955389885899185820010581790884125393874454199411323385849908520484043894117779217733976257308769780016749141225803517770828840040885528327358804731180031378133093476491727886102359904295142527161835019093064469015508209448043756564454478363116778325000387491641685826897652834994722688176824710491726609194147125098290673460397512472051432669533805416773061955152290259600081348398523071167833937114668842604366049886527173203844462584888415743024910373343883450797093748779332053314721057181401203474447066045897788254776344618950838813957671984444563421013699163189684223956237577194691240843927332068972818836775259261663620851018072191071440441169417021236419613142997022677752507955361597046131742934107710771057173252529713929134515957475922853330706419837149682302067931434475448672512858663035844925336467299613314502781393222266731197804313922412379754823409518358689434921112657100135556519271301550058736858270504079523185489989663411838069378476021700624060816482539876076286596725893168531319813843576943501966309615855630180781624197563484821568505231486106592228179334190935095127832208745862535692971603052410986512800776856999400910532483760010067061708148598688265238763804385743018217397759749057845346288524697448779541732598264836366428030173776769565466058348691158333398756446833297322769119539185518322556804611365585632528108559153793950378225384317108491244994848836655433948714155241760898481100739076641594891749268574862273641009397052201820901598791856587252199202835544027502273782030528747651957070783728269779416178217175360165712693109449929917312980096471484415158230961666427650955776052591565227508876736141192426380348533325416490471988527516876467252682706631763334888452896159105095650694542079068875526842819587867472780051657940833545143014450909168217933165855165355065328336849698672106492607830211542897073870971557860597396734467941472721242275521469596921415804591745653196681737328398461003407301470252778774148612843241892094279695431820806126628754071428557999857313508858246301809072087611500515654592923016522199401393797379596126155938887962820211981210887358284070855665688433380776595383998959608518782393104295167037085849866206999560022123905217368269703272688481378632535660257036708234735334966811209366229783757387747573869583789802289820093516302871913801155757820583924745713499913502887984015937228042695186205295125401965321922638589027343012325914162469198193353877568781395122032571433898355435551222293186541915021294062182365248900331097239400040001289301167820166424772068606553262032673220739939194212102366600327015469301251212077182040306361101608970955815000046267339808657520091573105462640877085055705036674211903193807253988718259299228475200568220542615890774260670863110735107463750865704908027475906803802074582594902518789315701093107699055364920233149007309659087441786407570103375279759970026544455189218051137063209793976559640625331573379174877390915255264480308533256393773754318182716108095501559769331656115244212674130909934087035829253540989194174086619916613697589749419949351473761134625527847563853871762114581919555800782023505025128255181967370506624668261604123090071266038400464250740528326136808044495301071851738200896052007760410904145565922786726910166081342874791941797330120639008069529440004552860729304736992450230782205165436526387810713006671837329740154186500972736532864405541397531830463415229177797539392309322009199201819815715687065824428984325748354792077068771855014066888152347349562421045350230085744620698752916457906644436698180360586466396089118765167927689742938072758687711886840800310120669803643028301817593593852700543885394100260878652502543830216081678789134197858094182806601537035873194976511885183300515053530446916403640049026034317747617266319761724317787361912841916940535145244563273099225880312947359638181198278814745011350270136161281767721971516720805661387347876678015902165986043792539340212880178413531947405844028007993884434708910673353404942505078820910511998676905580985276209313218070908408438332388678113004101565365623340217490440685342768329133238267539413559792251532159794892701071124889318842441443840574503399648385521011333167621400827746472458995660621390611982375483189829016003834132419105860802260057234522051162276455190885551781216051524978449786957020276848266262601454331890566663329925941790430552666343848748115188353817096295062390471302515633868048502174620435206466646042724618536909745780552408412660552393479519441767764901551137105100678593860935948154707178390900816490651919209081602562511403072997649328411309485729140916803887669679614522301396711572517413691581998583081866255790448826120828956105814568294356982602493530440342195225078957362548844585984057147454451823023856207771743883962374558011000520224738423190500969593930377599076993942500852858373179454779962838667111903850863151536427088054695533840753754853394960562818756979354007328854890097917957672427212802047154324820116415890338646096940004015462727783538260297580411787259599174985600707131676589180046538352988457075147800358900018187921711434375112263606011466651521035737210926276493464139127479597000403086147943390881823962181021688742197964457530133051136404857312957099833898712451099489189707072022552892828322185133195142406823505248057182514883129153278358050058994896440947387011333729925955240977601521677682293967752844072242065707079399390945097044025101664311218439628467828202653989987193735361493322925888586893184723594353571170863561345872979953010247955347260717344129401731049810035786311243596080492973868940076052183346433400803994365312163209838822455151850108610971447082590647079706103242813463046290339499758616966130336082098064208267066389082842891510628680911178693835924159061190932472781788939970302873352363659324564515939636114519592782039279135848183393183050257600135209204536245789948057680649407306346343298924586240149390359530352521237833801267175687238191202864670671500552939660687951196527671431112251939453809077297229861423253975775248880478951459616300911595612597548652083588962244026126521297424615773346514641430688513189066695310202001038155268114622344258968209316475530225766649021606978716586043246329742107324210593841880660382314662931591491287072017000108645097105551143050670404794567374553963794212711037405477652245957683632249861316567108773456250492610203296602587983270299086585865496525748566692893746094873265548261739651827070888567209969288437382554238346355190455956137933373022634359639763547306075022660613029451529137049785539589548285919448899856535799743257158000789968597203098558352261597298648212791255498450137067977963569066804697813303878387874163006421842906952193089538793196321124553442094252026425381836564129963226003886170810610226681078946128579343390742773864504100764704513963766782459052680850758754861649307124950507088228332563048325372071973928879711240691087133215444953398455866639974744616026040880135084537175339006952129843156857255701198632274297143787914190966270743505678407871909458643271849362006559461565921567229676515904864253557795648052706138320873697551095277181672860828641159377490015638914403203194002717105714042755714592137825756960140967946209128207578099030512703090965719725211302068715385157015794977732276490165760134416596153799323929481668656718574573983278810001488260451771706642149613148859066235516076459472329208026526274763522667625807902636325339860886915729467216816615104901875510575483183572705401395450196048249630578189610271570969059357560608738428259849397931023917692889795214884349330807464076805680194494051475250059826227713548966912841767387688574000430990281662847615883722804163860780345588734242710806321718237140588210692381073112197842701476810042944561952132521933337747936174054778374785012177409585198770396636915491623316561156619803890176723759544497450283179476069755205119961778955246180299117444023224795941846089285968615686935696327334583937003348897190236197795394779285269083026207434226422073425396673000843529515424271847045813836501030851222680927226544706206908592767891243654540215811776552652582906207141340217420577117302071531577961267315040203178448216222965455433964384387442987916274946348559751478468077681183267992005672292733400368604530126503668426429688355501575433084213901884520627488562594408244751921440836751057858844770688642767617194130729803768973726211716866130386391038006911218990966372767158279872487426740489664545544039474635837289495479604744744209584857056799792360281801116964223055108475992563696342145983453243668617548288960549068560650875859985431782823994414348052503036471806015380804887424058620125358764927301574114699423212046110065265624289431323379732075311321818416775970161395165540713159427478982645459658263750015495336232077865537340648509267676126459980094142986195064785157607458103926695474760648307447643774096714487721415377230540233681138037945479683777014979040032395361616212444834321361497105171140229758207340960957074943027443194238193712638782867028768651899735858427621749636807465342191725427985450688773517799832177627903180530105064168543075743012836430679267168468990610979412615903475923438517516185606043462338692700424830780929038071847359328511177013628090008612792267692935167719333054717448369619980023491879917617137421653267679805464211957432013471222786373753009387667028869986496185103727597812943233775827665867228865466684989380473550009367947450910725903657156380063073270845381214160571598623565185650675343704789895096496329890678581057232783207613005835048003734165834445738328072067641934179244212555310562019794302243234260551289223782172738023027932660027660165720985084987438212786187943325973386074565837851535158970468396658872428073628568314318424651159374908328820295671446182510291839003007740127910621077011807829072133050168378044498345866026283744761861419198478899247790897193796505292176583790491662671073507513878524752524916855497675230339706195555172470164140379605301758746928445159434915707911123320194226884783033521616544237891388335649559149635774575090519702196836193871965104294765154446648465860320058536828751518229521510362932408498888970772662652155763068217299639313393149209217677586193952459425006604303929812492665305996204060491800705224355716844954862664398937663815735910388275533558301263405312170785656461993877224619947719356993790289576618548509381078794915939244229656063674668591541576496798498011538032923183082985823806512783577434570645598260079083890271580375539177218385782229814612546068080159678280377662954313927725134987089575506668158405372547538666202359585690271128710673762884827521949261564975329459381553029752489471688136113820029758317416134930334329843518922117428313713840456273482788605243478365953841253525339046803263354016785965483161538504430232976120472023658993740380395018060063092857178948811278528082201258621135848742772367916667582038133884880031118864827348056143234094945196769032951958934577396231606973371209945818391612540444220331133045940550275065483285209822876699676135199800433336817683565133575415820622634390518953158012060185763077749510417671193996400067525337485805734145403035436119060304150353885106097412541182570874282399129138564311226850891566231172523202968012152632573210764635153229960204829104812875614964901165769330765968928527779259010041197028437891457394131523365067089573226630159568180017430240340192319917324385835278321180736596930323396660182193662543990065561924642874469808639391182773106310477398427883301374177063456925854794461349202165478008156664201970036697297134906223433711434699382965120104499853259868922066306757103439399551227285002996314051817162507639029531462032592645035809464815979687150013760368321471621859281398986741043474715106249913524325983785706323256326313124861468410445173462916578937854438823101061663686913738334747869549690812755175761360958277720153419539524769896488872842887868388493455134482001403997930000224297444512043538016901461393389747357631933680832306519457684731581613923871366988106676371149636763394038235185846781161408225761460821582395225152257530364525283741443379197094785478785548906412830778039514431602404006170297117867462032138504005111365990185156871754850077501064264095230311752261226544718634854504965177457017667887765081448110135647446512723177038272769721550969010729754724369234352551153839785694062923684844028737888571749606756235210499352944594700055034813038437761364732756110889535321176706803382209592590330178356255887606239490169814229994430789079483759504846778950991638520983316135246661331468786946468871478269814407584203030285506933533398503701622854586367290743666014160622460395169355957042074510180379732738748818795509278740493983309693334787000401005117288160807328134546104102001683740924029600960079825804277626091314337291242758457923352560265307115046938156167707953420289242534610736375006910548040568750092890638059210513536903206210264139255841741579293732165632561434874957903173776105915520891117756426188749401917564832745718268180462960371695630557919762326387778149785787602266521276173064060158666848220357940489831151460570046059063590659373312662935284630629687539992714888262438337275759483597072130382508768451096682820864026326739420975166960864539027756550840377735175441319140372622731485553983069500343234619720378726613731523079996561307807206716025647615860154538467355347906003067990229625878886560326284676761083642950156257470533431024750351927456889658380172368429016571408977689847043861284073205513436270039673839760474811434546345226967748738432301952833796276094990034608084181360594133774873258428299667284575054119398394095610200711737024488376474484010739338103877472730339978892565777040670795976037416806924499751344200756458260999347459712738652784910908613597149581400471700639480238324577345362931584482538104259820916663341871970908397194951419253363909111193794044964251812671511929323227882978981495454843086616273847736582514345483640398842614493142021016542520633039101104026203769029232406631405170848890400870976821003540107476069858381850166597073205919947878617654590151056098270342164611619093067591590290722718094489196741489964955097313794538540166594148227843991489956859614202174334559978366923625086585094599645349083258528420359917049547220258786233105806246197822014306807811647692277997612538152506424944949869675388595107123361646982252330617160001105851775815854185320164452249407937830619900827820295778856622666863163678971981961101538455811755107890827020326201576033001651423902130145325932366333154657359749803965399264900806917243063579129906563069405214845534559368896204916707112430852636026310872386421310861115899317444939134535105757011371287499822282240164484896232553945803483780197150794582561661867938272316504743256440491044926544031461471076755432678903243589502279044497011018084241007502278567528573472024163197755018351371263200827901894658671511761418978205165766442977601412033958298171751885808153504256363832236179724349322693450295046590340503606654613581059970274443276959307138758981486825206885109508603885290811441535014125690905692008561706361216793545764346559856259568193345527810074232054104337883903662522915536941508674485890993066053610984755669880827498991169506289695563142361618647646669614077449346443137437773560438893844058942007458503997442428136873950228862953395362956402725874203862901713227614430570867089249671298003354803434614338646788618577005722155015140043855692778253213103563886023940021495058692486778465700365712255704521308022507018892650954867559814286178375294193220390699965346410423081130151227597582601526600622798399696374249407760020859531733745373168416718119865512810107150448687294711470710169419103122549555443359269906432722060337314627345193820717308735607866014594539830649735937791126871451314563207745166528131245107220638264743945676526076839638436847784490564136268458099725077434590840127604910746078703210922776512139170392259817054008632448267527880043232614558125957698731317359729498723537097307542691621900943927616622943868748309420177372402611026485868011435856232602081383256885763560613868801335146636200848036949147353403546955274333100485838663212771689357074581371855878946497199991252526629116042040857565091021411036123775911980033538552917641416242590568042999408674652738746691991898994423800698109377989664832098085603088037604917493513625155942572614104433833602838894229282352537802908879412275272678376565928040159575187824282109129820458567680141920218877252669629536123506637211506255557831892258147639193612204957833199643180122745935786490006390737298292366608072364709829331556500711388080999539587410284968932081125449723351841925804451303909593170906683888763440163520077909654147777533012480306487235055022791049533081378644499042988405893773633368696039174674344384821005166125178614244014843300481621761292541453223763260448422474763517323401669627088428472038668402460789699051379939871300970474000995275232609972818418923981496761121648721976623964384891422688806529237210791503976648938139677890127620206947568899713784998512478164519862126868101792016267938483918924635775342566488100646723940012208695673814232963239403703827509294015264017137359074698273739406109133256533463728003438834276219803445693513571445969747102439255674725333864819307679010972884091546780046798999155639628438017952697599827379972545614223220747551736452737957583429145492907167175505280970499227310464423568567821658132249674964631847623339065475941024823270322514536682406447806869088716775733389864554151931671115927444606230797298472585471124258431261004013449236955177724048146320099226566667169624536854515996536011224614191607287723236881296673209991752862976560897262481826127919962583164079074617601835906353639891260041508158743172569801378668036154750400833265781332463136183215957094674018605613987320946400900682402529553734629589395125912553842795610908129159464615209905132454309815291510010922344319748355607860520248348768817914456718093001227983992596915923749653596747876885062260675668664333846616536877987222184114281973605917541700000530267227820650920750759539120989930362805660956355155605128085497120328512144588094236435123123390755690300409018609081323821236135351919701104940297675295269873578688105122215457242267074651113724315265997869371921606828631171978781637383498740423232793820710858593198910939762975772025335497772768608420178565957406114186106429186720181227825469687421058443610076709794731409583040479820581696279958072580139345690414083808708222585153092160888657690943510562740421778888207708775152435066712074913097140275819925419227503749407870389281874028224311312198216061834295798277619628235018064337892109898296116304423430249406606410305956299908484955110140129237426744030902331793616950544576040595325516379726659718935075631357891471317978656440928747349123879186133944320633451136078628133179046056504671030801820899810375428708990815759337820451959777959011958442963232391661256040856504434253754568621007417667411042274249735907554954430245983373682598823383017046471281212564063960298598902930919758825132062085436643043580351871496638202969585661164297829031756218277701204184304246926847588819783754157635565308627994574868754381975483668719232290084046717055408137003153751817383282466134173826755012210403542465018603622646894917828400249389949437830335526774743424397693856427704701489237018220732485145352262537204456661864483338733438788136714111948824698156146204597514784323411809785326309054914083091955991101521967779049668174083483941532909947642038468911367424743005101093640590020230095386616958951154793440162440615529747891560813948671780157311875888508240598056991675666737407150932438937574245079978465113369336416197028258150006119700266953472778527588123692242851767405477909988624726549905611770508417407862284687208488515152033121245736258917493871609265285396942841984609625748470237072105434638353424999547362039934912513453317011506664480360365802238509397001374149721355290991358088010099060597946267501427239982078992374555728677060767599908249051575429208094873618275293375630276699433348421451597558684070980300913927242536350943983477913247153505893694140079591275814373603527463422236690831030384273706963161904430982629556355672663897225719700851664132788273718706477016932064383618896469707896511429988943978287163199129058419381409898414155367075640452951962286707347207687737356651823726106283778249135151562756684586913592704460728557080849660987925318160324758766938282773118640717313046907344072926950963633834716754678191768237702456018965161853284135493354142988443908386448964093208300839123693595911677806726756418848598019898467678906181439173242927774172771265441789761361032078249938739054268719941066270590526153938999296535206215152999676054196045654673859106100441666020984722450060051555641172314147060648587634217042696066490999015209995898065692189278301709010006817955035654340887099449766779336850314876076817735683834641553022017593485714820809135813769847287427928151925956479111183616525009473933278414460527574351964374002491192551075910444409343923525796718931298667292941995703079609405406416857532421879962239317301058420959546788058427610203995978803010002229874697274838132031508336971639659677470737015625777026065717457298657933227725148193923832173762904367277889000019050828130696086290168212982636647275682957511781652755209111466624826449229232482987316714983259699541310726348852382628655791064559037618352491120423760257757076973779550613694464045395147449429023459917164856106717063169613605021268355908801088437159727774227705437763378818649416255774831897161245536621005601561088176328091984232614950265838121204770122958803174312817982923287569084635521010288460285583465599324112343883418104979849303612545883709714312706222202065096386716807504868381570318396143597208506575547389012589313458190991663270896818999300267728554002691895601137180081376917135035460038256357587108022747764161376695909186865042228155375765504744539048700461865005868269449800562294770815886151188155204987279986114400498328627795206725806216476691667661834430242632367959677391229892071128588798773321932325687027464202956578937512694370256543460717552941476746288170760052050720524751178564809490879883662165458318135195851219413479934063281778491056860873978751782893237624648586052023135775396379209225803377438289061728050002191162086501699772956969692757003277321205644879725499249849186399951909086201906541755823382298331280476239770978292332283785037387889120641956686424363435805565326071975312176119958803272391378203816855975218128159967765019519266367015033405557846059667128484036365833627728919358183036890043618382295741484166269505264288776695154706918895637773960059185248533578029332838943002808109536276440355864179006021883111328538585473341638787548222363603065523805122439357076219108151575770410944641401756158958330438028006929613598888459096311960295647193342615869307847549700906430816971385009025541714263844396701710531824624795394667779336549489631519900668056686569743659838708306446946016086064130816194638018825827396018904174777597307763815355862063002393240706840377125064022220856147634945835445894391478806859612498259806215000290463857248530931334895541474025446785050051225356987820624968397627306635155467437472847166128258915750329832165013079236110338228560892854158308268453004331892350512624042663710178781074451748313739435905912904554292217323814596732791028474054502495728778906637634611572497389202731417377664231701625423755191716061659379497566396322263373686764677072084931565248666886696240664758116560095675072210724364116142103818757071056677945915990374841986902347113716009383944964715487624371873540269127129546655227669565118237679022180260123421969630879719466240214724098677736191945750291345427335994967767106240190817358265060235456114158224391582252204538267023671653679452012670149372177200925147660574694396323826238724544784633895948751262484162587274051296944874616063014708079832697371062554811595789123362061775604573255082659499492248926197994326671701097162033564138560349111291281858001051422823662309075569444782487937524075817902238406093198177015285325806890725320520559280842748690744035912581019551617737790937883550844354283411308518985426680768151386877046170378140667587857743298892218530130271098636881763689462371150426053320129359571102728648627625291426793696522585234471727730787678409676766586815911178076226078422275294507862122040885014905838976355508121793753956133026666206467482987730296562603689787219558680987872329042055051432132873833198000559767469039251132817925783632320028183723605354347365705236339995606342896602017754692903199071943194869823441789684759526188530483369702586696784761644705327195982826582893956026151307197294071695476595128394179456420958521172175575509745935344592840643349795964928742869465652878403591136520785511666863204810482451989392215457441965697169280147186904351335264395160494644328911488706892132471926903610695654291856243015214076767709848916610249163712436671551166167661072308689726546692599024560505879648198394523056073473012650133817679861484116581288235635703829856577352417416056958732861591737700946238898124189270721831316090894629729765113437570598248015216402658771291526062945081577616687478168276217787157345911802288242477684335648150039062906417129452401280412942284551877614837599148670017268451623183833801684508404645702144252963878530675114705680905719556968751701385286068434381040360680908386132500639307872179569562781599502241594028273788835781856485900878625408612179519748152029458679647298749680224800070100529958922706472406551535654281348956084591556332335130759000916987033509415012102329307379423472885290779159593165378637575315574340223642847562496197744310889902783569016605206981432098380025201894418278707005389852663667555901010982958617031444672408772001103277774910956012637684216434787383811999794391606010894904003895877138799501085500518017222740550955342247142334651713887085148281605984165148919579121020605281923942176766871538753703680406441656880963765359404733227404321642660443944194164397034592134880965604756206819362668248111037680605239353814760820362507475172616936978233367393004284747358428552792325023636745761558890173688738660228577107166404247934965957301424008985343965644645868388700811200619079000278676697918455530130568894960080235722744275172502518371297520111793677605199610543380260170516072214237269630344888045352422726066236692729065862480829412279072626768550628533476354465296400959527369567308875290382844222883734959001664922992720019894618696713019019453665509338352187102935338195658294899172784330624761290637976541388598349074159580175633978104733165028980181688382593296732612663680724053268840025147442636514629151151193455554047184309496171427024433247947559840112134008810028328278121697586003954970080511374268369404667602496500967766028005873941922063556964422563974379940932051178728027942418003012709715903753372632874816086622942396214604225362435844532619530032443128367778066383635005211225519762343032774236927629083084246937587388867495877601709266264818331290856388444905314579237998473769589077786894116769321758409653859002458251473936605106846639801731153249992280313510155805707303395084546216853217096504018505999075718857203865191660445215563817109506983963727391365203893096561890565786840801843449668761832291964377078700427177693929698923856975011400338493076183255614774074643610705720371119005833709465594011516632794645846161461883804944844272857508980205378535295651627611775162117985909342805443874994545701643503708786559810692566994475608347000497295576207094530439823174423361275790857433118395412233856477574376335971107213709787651339798576558919670952222192432923934326486628546877542142798530657950426483653243152290770465415151334976660572295428027269919004959828267252155680292871286735549865468370844990318655874855685710034855649794699214016445634029068080814526227383404365369703021698127657965221658151103130663825115983638850046080983102441891347591839911439806702198937748140591733744771656764709001889126153890622545045573954829898326623488224663876101240955702710831583901758541632448791868111433173161337523086224420606455582627169310127436841732535284315608392408250686353283931913557677218160922309745225652006885554560770508838344081060593396783487995011760380983520864118874030313993878785168072720230963149102576406449855308678845743924123472245980026158445492157959945170269893759092866463608536232428005603530863968303905099417609853772566436061271470345754683953235754193351719121230117150729998751499066147444667856081339062609830581532497194301195283150626023610966534885894663910431298778196441731488168993548828620196186660833489410155474043523914377352719171516625070931674427121898276907979852001706804533568571942441211396629003529379637668582944814546198405384924726769573170325825525298802804000647187815651234414926399557173711298510258587075505933679541131669901290732481061062899454878128149202730464810399953129385338084811569262263767776793846581961122688845188423124500355192833112023107974086405692179553605825973738214175440180995807825070149489095473875023290487570263039323735261079270368511784637983801514213077341698731349454858363725254820631523711951373921521905652450331645941513903003347946108543799385788458013436792200832532015097624807030834396242079215179336912367937501996545170820734938419081128649815831391818224166032650411448600541252299677748531903710957319549728256187839395594237765667950669364333278327469533034131734336539156663179684667724814433975008472371502899673405497455484136357554761861043152483672045822002855898655828826638431625513636766792137275287066016647550101801095448094930671575412661129758261531200835532066154961714986418665983300414657200859232501655756608986574472395071826554150008512087921210786664602873909162466957206588903653072299214475598789907308026797609830129361477222971234076504234618196170570376264496119262903115889445240961115957139025205416440929474930740304701532145958443411373148331276800122582116209166588704060908372021396923537996387028366578950893335620124093927352850189034404386903211418282645061311199218366394645172690098743256437819188865093363951581232458316030774150608872669225065521941930208460150831084660430923138224121291207715798885020917301394110637715286319230202641798355854807340894697659962493423097995174963579014743194942726461180050947926219598563455114111981124377065970857765412596965627749301633797270209143394538384943059975664334621022862601992384139825981697063522506409842669651938333357487205347360988395338576021578030785934259322582649452377879962530527260407360022491338904905048668769479996354101014628453060446564489586122063275964154167963608412821557200704291565293548114472214218349929157487882652896259753260010338217138193791863613016493863474795418599138253445865348074204636079123340459067801659221610944031225893115201313415704318175764600006218456733677686692412468515622656762675937969507322252210823062220972615531247206505562589295076008227805838076514315268199986977238659766172297607849526081505382164532109961802868420164128415407663828750453255106408076425271207009237149685826865070412531142078204489739734454224733223043818846997433962459670018029992621259739449521382960758451685323078156645413004362493092718603603242071138918481554092577305454497951468183579706374321742946005717661852741686099209471605043685910277568114337551979503431731082901656095905675817600650856410193005240456216501607078562037147843434183896586452165537097000487895844202006767096094873030832169690912989477051289850702206421843272345505571302768565932223642822045913854579124393776003512402642267935811693575717854557732629285456769123861367557341445515168570180595455868452675013198043208659110363818637773941338636694912313401655878105604281717687303119626821555530263461206427539173767847774894980825232322661802576665480727786936281984699487232034398366724825233609875728543433345035159266070759935723773882208085634199704049715453038879392187422747933146941632168046338465806443331905164110977069081672800822784749028653027019351531058639133903932602712168758869303034483307558477527455963461819258959219626146157505685520406549593482451710229754095144003546075294729155264558370413242957080818101148966090847659064324247857961483065545583958313872832575301446988488528798334782474325914568475291242386978848196959033304545460810647412808348343700103577550822795654022967031663583776505555085759449036175912654153742541352391053496654014706100691692397455105220357681215335521180646835219516835839871867420502289695887253095984480158150961976441390026213950824137907148725126970756570192703954931253645197096900312696128707765175159282035730638385673491493491257804900530010161248607343982812194346632199370733539411464790956678785916678183633420396233967467716585559825999547643232254349626048687641633331932623764055169018481395553702432887598639125834582647727011129602424834637737059869539921537911849482574977504103519962136113178726074055859839034270129451297179651742250932391756684672028626871921623426072253880823704235440404750345963400571376669154300320796724444864823311544389996885853367412081235843168638774800738543632775698054198960167754549378267452636109746750124046989822165499962740942335845063827696526956715687236529762026381254753106172855701463774134939606887797367795975871950551798813744239579031678549481606800102915527243379324014765947904848032053705776767532842060704467604801385733548562168504737099865864892394849478328171555137099028533290088562323665000795643559986332620960354682968798013294451685715157955522984354465612583178616181693136905783323841622735991007471066870027839866682852123748665543667104533155418439824372836312142096103686711915701604690275398471432893926317963269477373573480967897198335101379680880599916554554576156105824555724956853372653098287431349375254274566469538216742152612294728320205300030253059871619243091963731359501387233328989311759144037257612976213542964665181818566291429531611827751988950667794154221278555640368190977920628841617690802860420466051077150428681581177867736899254744873502908036729181049992966840450196909615206894167120353976199385653901676174245328814846903694793835766568420076116565270293277980381297664678957964051691285097820066146382156080569626850116961319068908783035399580989642768206908651655533259344520083952805310171573079063141161211522201838562287933441951215947099437790558423819592442016864360081614302174249042139183329448982935900299353980020976479615616295245537916990465447618196059662485501456223991479875585986112017928234381837405400800365978633178699291687576484905132237643481634860275003339253490132710330682347397758518836181980440598553167169894462559072704350243075609879219087495059022705141141864927950731461387200779675974060021910577182429585279636249596613062047495726293967648322449179671516116200189046468217537584336669359884786958961283291931201066990028846968898504099998454715619361986346829763900746311271753690841424302873678034174076512428430925412709315676062769380426051957637199380118289764176972721179462467725921217466983624023312413851534104975331607813471944108007882853582247382755255683986317995860069447177049051227851252874750239361084670392459319950702645499002465983252562968591828269144621734923465719759216924188757255863052785434109696946901417867764233608409271096273651330102151101587152803918626273649467172659384911658836083614752358836500948065710134163243889527433501143040630983238759790176725641513610604007097374356765729996048865105219634948905414544275472262031563993762074193152197681089280556194991142944864100877462617195524336305988788111805583674051080106487139727926818818858236562840043697256611314006833893383211981088298691625137242617405362616122784453127379370192757283646862324933467017512385355044362993301561122691006921509903858069632286025897972967599820964245257632006092920223153950582048449304251992153445636680673094510710003501895718093622382381009939880359154490568475641520767248884855995031724546154506831083769371453478978602536915449293699463226584345930608832611303852528257245850830993623212650435893947456877140272930683770800334079523959156103612087565575665019636904110232137847463329058179229761915889161879851673518111721009720703274857395032395436127680981242626296762760913956849435989880184343970235763447690182924749844783172448066235938395878782190157505039414007733136829273024233631974338785179783671052150225539933281107492412853652057282655898693831561997570192510633595825850925697214929661473081210266262400718142103120732506649148022747922531848549600753790960730001159080902911514265480559088790452162429629985141588103016258767531327719269706206522644906751049012570251485739397076875209028543620654636946384237732959898315814114828253191739750295383819397496842569599936246531926799735698148354974531181985654985805304562199434648892476138475514971931105672187363723989826249839586342073934052270273829581341980839806919561870971542560782651921326176799009200058986217809614179737892510322340093365663458604520270886704887565024659120371473472547469881837623854900738999687040330018588127143690590582130209536268979012985675055077385948340820150862630038479659290717882188922434176040046246383333578778471226706225162177090608554986977931283711768507587496461214237702457851500752453159425473310999498431810844980450165087003961206069188003804199326091264303726589204470775067005108847807563813585394349589488625261589946027640036535923398775237599956336896416103057256670454590098694095871273947829556919405541266082366130213545415370514668882403895885461727000961059226178767669119138765938145132227855164475843485024139087176223903228446557526019794461659265570049489349414486492476516462446202369105493373677822402497969738860826244418792209299836368044410868472002608888192509479645505988352902895923524406586268472568321902142909640154807850115538708036449764649998293008026634913439923267023563745712683317876430098896010668087042202615007239929535116350815696463814409278882071046234261009855790564873125887406047167368281066327172974750673361832594055695906687233192926189609212041855273187271496759972115902740953555303004686354772567659536140821511920448017972535835299614743015342737659224707403648380551262608718739970612330207641306420391978469633118756236135544866156588729067013269494531441474979462775317303159618096201926249788099251038682990868239950918316407872179646032209076844194729557587916545283040582109733225229502665820043478863358008378200900186156007184019596553253521740058260749051349503737767518814781894695128021079028279145661268864409355013321358889348798300441752502389705403084374659625537672011620552969642475039219494135996497796236773936162382080949252236868154362785157709479446658683678636975495110759727133471156722242151106710364397659559832653101469801744758864422728503062981693084621111134879534238383686010012790572546248785602322634889623911567542054385719031764020569157850930769989736671684500783508742171803019940937815150748811553618002912584708847469348326356606670507841032471872813969136245265861616188407305072955464381476274057288751160852801106974202154561355793191203778962813030848188212726823845320199954909719790956238706160338801883167046775816798943687325818427901850001364164976030605659143256371982609745581689199521329717177870979927509996283694904530932668678846226863906911037725150944669387930205604884024391937397557062624536592427057537592635120739766198167897602147391821120901397883321707696103043252027957298830569118130553030780981816020043971519851671353163850692490491801554894338267692562592151782118455494907287715520901118332709088944375797102772142524395431061338857465075040236497421261194257866576045062910033151365801323851204735555741311839284537380589871114499144352321794964774771262151147666063674709072216162387361298460271163435189057990272701646909557745525952992466188081292274967291122754438858267662493704572838489827204774397076747577654624863587025671743727639648155647584168003497983875831361030378960357738953464008871682972167392866421216895180539370350081866499959326987469195282866602506539547990287180848984405747486866434932828795511437954238903356453945802389175752990163376464813840786467358357846672734844217822039003410971930170647095713625709301347305871835360894601674844926765979471498907634263512630614659323895628293410977696486856765606882208967634067989102472276380392288205408377711275146201947696042560926421955357781959314398510983306121894233682339756921580134465793596420254464854940479232422124106868643132181314251538652610028889668979448954008166789950976045937126219336490922482470630541007014057883813427862792439645886895638941925000654330600226425535039519202938722876318227777560565723706105835061847434799970889186269629396914037528726252212401915029157927089031989814659384894269407916800403849481133700625997897098627097316390317686259673853040141781384360074392927309550699410565811345180131216673309421571715484289274184245486320374463046318059443177511985060151032495931577377926006794649189989188380709808209234879084324826272472279101411353094590101168347578203461907682520318740636835440854444012569515351931671571869684002728717237625763625827196872649384611850927720403383995476530163596098013455803776843400043934024302054430408582689165281537716542638493581108095653734405280347426366288994205746801932897290543937955810735492876957359203190285775504959412007150611079947081721294043757150987958475287378053343389881565115632389966156750151167034131478770304820992716011466533378551234404536711421989632367664124116807675579985381505501286780036037033899962993314173494464530735349422245846551931996860575358937312898197860882992994437988133039348418314526978805263290687964809991788424255839544046247180139035205254242131786778825242526192058197876412553828073934075345198450792772774878846932791947673465884487011096794780025245726524570518974337965345468050767256349152833521733492507133356231670772186128066437306154827947602853986165767763359127800053587969031106023078148140039617201467944383855754121764166178143222492232981548804969086940645001846986812362105806092777082691372760308392280335811904889055886495571401465761090788336223218359709323927293701226398546832042956626651248952073863874367072916940214333347051486546170184563346951406064761553418323259413676840644588430314707081266637815912274033305755151177945223427378351372812967317334121403364941081636749402105719246691509422044309490243933120575246441560577965332186579940471235646051686444460244315323138782219855494643725687512647841372214228017153899986914688891637595200721792754168062851178447159474249168016291008731914987030104263343132922064755638317127920781349765434607508941496958769744318179828742071054907198342918382847880197517497922773763188754524178909886227096854868056578393806046607983038688060194257942571395122685487192264389692819643969727253353907305470631088412889107916465587657812330342404251863054590134592281532867628610068552932873240006650883801757480896559031830446000857456912865045705376293426230773024134238545222687745181349143949107818670429908956210100060482370379101144528477392192663393451111803804680490304705409380193499112825843307870530109952459465241170345039355505106127145571418816796942077127193297671532406567562021142169588656730989758529017828810354292339077902420001362355779837676237523885135704202473441441019933646539365798840345732788896120699289455238435198006845930686523946232826557867760959160291568402053843306924090433068154310439861813129802451055004301941191988308053290260551718281676042909030511857718594595861543723077063725438947175168770680836620295775356934225637138561619225094996529274570484659498534649044912265314529995839546046085220292648041219277471126882867666452666009476067281055949753243975200741636973925847653674155649030716417491133381127603878988882163413950549201216728065667735898529053733444483309591120648871367007589931798687191645941846587968446265000471187204421070709651629322603828891249028733915848152507529816747405882001825216037820598330239893236900178637805896773957215252482573054693871492627999491285684440751156860852470491465551857609307990535741307376676581308797539161730555224392587929506555573842729112366164249805849877674374613741338806546104623444822273226131061916124783873472044528074822690133346219289733316260324726856343484619936985160355327396941337360441750236072856632020757278829406532561745538535682622272272840983252035617562523878888277834509815808604860363696485760630239149614195075174304512769541896302860990381172093935755589932984708247724159583604731725577792731220422867568337588115541686245244328692996947014453200511005736601345379261657575617049209728755132035646853751277844304098269383633949049683543444681046731694732877765268599349003372289488189726249111880283188485637949351706358217536530946906686070522410575523589158900767887411760557445485772630893579095351137183714098828843973815960573980067790010915605017417299020639085247267389260434306769811596868522266027218234434868618800905476453637544913350598597915640599334669511163097871951414937431055277990600299047585436307902472010551013190340208538262510295904191584926671912294047694338299139787155709075197295906010035051011921404298126258512454421210177577023047818305317751516186027883310770225541118599494389276004129619807912987166588812293381274917596963480132440834220481798310195813820910408477390399499356443234790215499991289224315311995747581922048062363131180597656758526408836385373592515650141553652735528838754820134221680609857565901892679522704106143802978121714396101671773948235434714993009589261420276329279466864105178429484670731157950572815983982063810248184305331789770027069019623470723780648892651997595631002175727567018685973280615890492114141407020586103907696603803991389283585946037877210765479616638665484479482474948985438187390578744382140281754319867964071860273525117296621770373019042222482397807864352958320060237350678023386565370540317776212637390844063141166896528946470385812903411184124522172133586192738409102273184679676462734957496230484754636626942161665376038603425807500451909005604999382445942611283668883602458533763225734272012867800955455554006625784152162421767601826674860146800051371156690752002683563078569301750057521725350234454793190558063781595559740794240507920681419542202073742086783787535257502252288198565583787837101988099937466505478637580408133936555557066652040395996542976800199133108225191080293664929960832981773093805964434489289110095404332387865972754041345840859144413242737683623548043418924814068691924080057433254173480905838346128787567017580973182678267612229581742741837285993089327907988565456206081743854144228406813306579216893216867792528539340652551261763983226177949931527593912349733798626928687941661884211322732182679707529764504843454106147533877076017244197563937361121072889273638381898128427389177965665437714545886208790948165072760617860286739307692271184756947425619688896388116637062918209744732495907506178177794763682045238626689176825753975496927553510908412037419372199735405600101453161307012255719187588236803788799508519326259099149091927696801816058227429716532333300456957988857214134133363237335590812600292962935851791604233805814899311959310368136242382549828927773377799704374188628556309434946643458250756020879577630447896536061073033715548183915309702872623283781159123220411955835114149887819877336844403733689034043284740569675431923571230301412586762755063356233403660135662755896184072919584506798920526416318236855310026158825164601708418348964150151078562012524715472389422192126182047963892424524925784981581294876759510714556064012703481283679214500624760309161763436160637849350792248521269383713693483628677611068926796165831859117560724108404185259938310923502900413911690024011280928116795899739931507403417399161655226172177124967017674642416644835830760449166715284324333112171226810113786379601855354611155129363649388523148823681303792035629793304503669533752780700177944239810248191680729245916117800649814935469279699322792779569172825302991148957163317171104627579533939535702579447385158741916396260135608461576435508787912988747169889948609512438831823977474280817800906141833961973595644005102686990057799114436630446965590249024792395806774476025659960276817875959573402487407870561666939359983446227271598663409881893987813496013305749151679825230264408769526736971608737233067309405379019599270841419831240966254086368093362855437651778804201161244975312071570695701208909145907458361312861523672442632069318093405068369660434779360581022133561797380601296484982546403589181940578646604587903460301697714668973853149480515356575273027908295587068994478409252422482235935616550928842600755765957424746732023507434902759553079744346458245683333088834665049153303547971991678029710643778561005027258514290102786506307141514957452952068923336207070581363600575128267475064521301806869228466996999530855258662585922188699995324632808450945214295710601870401506348781762176338613683085557537665557837950270748170172956745542952886163887577561182566608669747066423664549857811612228128491015734393031582304324219271732147384228703605696078139038030781980366987971105555781517510603018446238134233888909557422879274838997460201921020912419075986616853949848586006110224238968471645558472378868748878148996554559347277140272256589920898005366990129246979473006121428090382374104514777061190388976907874329254801839781449796171959956344733089657828174242203027756363043539748737292261214491368096636450293544371119851404363260868382966826401197849119113371314855478321881372564336979537109986722339242922991996864751847860814278865821064445044557001967573221725446873685563831908586350570749201405685117495580209381055827120228335326626566835681847087054494681838477377506279949227964053043302073126522103420083263453891363213291469456001061438193826820952456515511175010348355882331064180662473056840908874826650069329498389298934075207849399475642025202060202837167839865685562729062005437293180078812886154241999842618529198118614079277450423878396611423821859281867865696351031010352221379934616305353331654069219066636946692702986476353034689607172524600089806066234700900800786714022580414534630674003244961129446826739295606049153509302843649332964506291917414741957424090354200913701247033822528093587483683281700950862184128964698018518479417359157229835778699117428799463068595672156428795785107964728890751636633076741488535099346779332964832140209302342686020622580152147284097659071263575932326819162754047337109819227215016055032745205546193730256124610700915435392439692053124203809819962219050225186263830542790843709167527365875548960521119081129204959344179198895761929096923513370955079558246347072736544764151255023598680670783119370664594619730198580920142985073390972439119486457110918421824004442699690974983580058748732329166757552994241593908322875121511173405977903668184408331024952943735152811389322355243798469892676436108235326635666673552020804920091067602714998175767030813590337716453198269845242078654038859978476959282784649122867271609400796823750922766895623022597228441225370572834012324931689848705250708708861176395497608258414382953441376096595211529196911226648004052232616927209084710323182258352834528080244736007640304398329925012396010069517123269366139647754143076420105631702224625765598349102917455336844669160299082677736498917563247717886762501927268436031095095909740356746460032884372288579115507491899822622252666101521029533226082560123412079531128896164100035231108762667158516612236452974174692907100999046689747922313351709983852133120124741904828809504651028383090964559246356881985295854194565497860650079275395561413083805877484269593804411921458822024259139794291584433644532545575265456319099114636472557019888148238053880588671188306976902247121043717117282676126881590488903914207743020916336593001125680850852535503293819048082378794843676141611911278939516329304323143257464759754748378631383287897259642927516829337903493683720223861153485970968383080774485568599191969520439985345848420611893910641607560259780644146882772821872375557065304889360226229213312197409367923705886730709515772079358951387141359722644516342047983417954025538917414849147113226929094908700228246412867506514934543910158955107734588051116896680123077345476789860469382305291663537399426746701562861457226448573761302910226558485933881167896102336288401098197812193191389079886439038186388412594451072238553021154069195037962611179539612160510143058187123322420673688694186850099601579577320114570751564863120966064886254631025803309149487169519540509850994754192054197021410445473364412662750674835861592262597232495532071673205978356416406171911836618460806191277972750302792362208987853774826972886233622555957381644629574910707092888629170521514195542961596183366858127778082275047290394471807991468892712631306276706000187902691361029642955577454156107735053950217802108810770359152395076684116063819177802059687014079327779348353662642462951655590165503246498032068370090451097315857298994175654115657728437270098196616299194797819205236904474841374451517543880729489417093152129711909433710005390897646918026660799951990354226766256470211463420391264752862299844247542228787547514901175373201428741431792592709213172797801080703109156223998698944086887588124448345904737540860234428921733515270358713111785192149339897971917359729783697380270306465390983368350925456592865707307896892109380957548777017033019299634536842150967335396377054735576223877383925147870279642361091538852684217746870479295288864672477558182179442940382236524763396481059096824837218216663342244221458891616456249505320063075923197111826456979641651447591733386827661973099936961721101172101820171362721316618665702590491194652253223954517711847656339888166917168909639670872750070569690907376206089493295605948516518125976463687893612099911580826561892521741230544930272476692683695573961105456147811792175324646452923813697151213110477905549413331159574231285840617030622656752130221626964452833042163603242839282813708767396840466747400674140609152220259249417585171202403663140960047368754913271079498477347504012657581020401523618544332707307968609700246274311705769662841596706162069956320092511885295805686115227353299835916529511664727583469064715637074830477762173740579612578437135810078398656157272523544429233322126996171250930275382364317239278037823629863844068976286132221913555623614550811061438441117103064457281496257143967174070128417060050220916578758733370915632818567526336308239930901336591625323129497811397233873224878297621967022637417516075261938648775091978245203156551645425789361339598761252793835194749555896416480428905033543122744661956634625123951897519981890422952550862449621018770928196016965812048210101417165696340803764941575732903545777581247408736124883664712619921245532202402156578396573874439118732747248275477700740269381125198350274603934470344009321362504128669519366389624560049222576223194174406145772829296647953676844553006454486989631654815545368672414090253687173521631638919367894490300076299623926757246328808223073715288550293117082376663647593047286514395211978025544183616269949827025491393438832096803072085524416800061643743919331114217481514869504322385350140012787381271871005635579861097827068930646632073574494275156942352720014526793792441161599626219301776837636245147620406290394080157893041670102271887742808546241314529681311762013505555555267958863124177760732318763609343871610549157468460010819947946014794655407492803552818148444951936786757464759492810438369330168086786923761236167885637736616518504760701213986118867720953722273843249017567542347837683512727047290394090258604617184922952124927624721894500981834328135754125021198978482596437755269029702417237940430124440406002201700226147667063797391766352564938035201288421248012735393098307898415875753624609731800705899687531992262505884587847188558967530469944334053324628033083352605073219410693951266408979032094872098303273547205364141028039260465376754034126978194918928194529269129598500722506382234622216711671727376770259945928247863625067549797292840751046812053350980922781509060812540483644844528503683179577523253143207412000846286860137588918884266311249845318907124562881721180318193820532352371918226529820814869254856401989900213115804694931086630913422789114496178202799130135609339129713038131066915644018235623102228511599710740053129480374660432518253161007672087136124747576046538404381342379922215117641479295940009839093587780936186780187519450915048693842871824645379773716333900310752982470162012585795680852331538610534938463733219713420955052532577050090669676693651133499695874227795714570002973524962335350517857450923768592577217706060616895929311410162482244209874206353892174375391499376930287764991520619753075272577635774968158028453486053390674654440639964930060731400868466782079612105916854092579885047453427334906579362927601550567371722186263985896470016144598777020837054346408002217179090669333062750927226655822225512504268060957661998315180563974138441557324585452244599538780172711133699960179881393422411760967586062637892029015907729193888866428741419957225452924477087752267188972505308661074055122304148366064705171657842485114256232098384392547116234256272485336927318269512552803621351439884462145315952224907667888605193528982694340223870800105931532391035527631285500659771212997714890079965625075416146729457661690476984370627172655671877679085628459415963555306406269469416527710738561058002651296846193831877225357900058208340052472365598132461412110891851336136772543891880387125239875633732156500880516340599552135727769725295425166447647697440006437785704762525689767868785698260649397304694003633822445091775136960497334408799375144549813950662608826939968785342015103337991993642430974059797017426373592422101685300677033227989061875901188157157708896154241254232403919981309883453768442870266542424963902791148900979987666510002429288491382406325524704620865049361758524109697124730889038846662802890605334543772787488978002878642760120025809176969334810909662341117926075226640084588862700808667163339839670938817477397147958452661393851925198600779388075461845306319275208044954460187340806278034227315678921037147672241351125142801829363450875146776718082296278497395920604620638376215645038968991812203582833511307202433186509346410111992213042805661749409367014098796885834279627632763194259510725509130837345231262388577982992149752505702048915972780636286749375642292504860840681512676155396808766278760426124475194969912059720545432125777347521935848469878383939839860931323240980367264756414942434420996729522204854680130358588886554128609556586215468145659367704217830118023341662042840938273389369539057399269025535611241874475048190711281176103881057637152032215994601864981581147599002519344198329714056596831701869812028904179644495499312066880714958608191731933714759092558552592149878015075818221424032883496286924253288400055387758745018708813752185981392408454665651591285284412415248957092107299010232333241607869702917855687638420149717793754320469467695973502771457596286669559881028608806375176245919659366758372578319487663698957810076800127427148751401814679064245401307364756368685583970217312167231655903024545391698083726728428342885548985997644687613892764816190918820046314408758592927999657277405128303226806018483033396829999124788402445114180359998939034480800202665460837991473875482974685922835613746540295466174116039483124689657424059924025505853915497984811465516578929020317768767285464881285788713188933785349791926321282797798320973975594055363146102181952723622817773949420065985745546404253979945831999858739810648809462066887987105357459189973329106933316392743939724365620370357537534888140438815338095030423080477267094825143608497065845063102787817837426857899929383987415712095026180518498694138460412977397641620926347579011438521374265643905503885779536375100905160957348557952711813066568142291287720295629959983389499999236618589921401485955869410156976906521688362889913507346598306367572337129639236833576415406263752461100656157144339375775242531576917314747206657444799288862221368603282359491710583079337736403781041257969258308246517658603014033207380401667148425582966178823771374755809138785444947207304667572576597227999150737475083892519982749411681540128142813144820220747813634534654397611757717276069785909817054637000949715805416022940082848124905466612129973726156102126176943904090013023063843868784199768271023650443012396746796689174209271783065534544762320129166143564544697112051938207779610350321393466255080070382839560922459523744886561056227993977803907447464486170909451279501819974140561709477205388663489812838658163825883890019041408760022962988580495048019799928909838918918378133972309837999794051113119110390621647888739078122386352266576874609667580654636968614214742000338997466298496329513350930442416535560437696854099954404355741505186710846734375483792403494036758311105962233422111444255648329220375993651583707100851371190984585308803753839291189594943847503096084436436310352205207840840813602234248215970906784592001087840182680123635903738112913033889128332212141762411251282299918433720842471646735773315478951380694903527012998325133767207443663508939230627851740070942166630244886121076640117031040023589890264649403109380248164032971385209623462588230006699161203820125008701076754931733609555169423243928133814963630631851892319973803076397235319283920164282108213784291568568878622870216495551422041263736115226958320599087058899535221240757043653183006353933729780335116117026952591698120467748753145377333279354910967192860120506508570453537469363134596816159253385133678834911219004628203376052847251041517777245362782284941417055119532098050382845322215234466253800329496441947683599238008669782813368102940721366228379232336119251843106542976459843657970517243254749583258075472594769573806811194549101747957893807739108813059021911702307613603755399941038635319317793397010768228531543279139718741054687526948493810600811949132217100285857175183190509548802024664606243384618226403880725102982699811938000948675904691429916651725566663825993547923794906043983765791882015789998237586783799849806880384297717302737422463461410827730944264864021125063775712559631710942556279582468583635393466611265949342485780669727257027226032271193030402706682164082074736304487344715358930684607395286819583213402592195724977461237723786360148798921796048535737593423209045692198190522140470169867185177622069318950772871760940605753980509101090096827238801739854667015656631774943796691836468478396408897718079796129893038439002550153245224873854330473128739357075007460505631233640863077669563919065667460228668306675706151876541291498187211817240602969163945352439437922198911343226874792494374780495756002972401910269691216948932688449490668740203897056733865770225704593370796941638454354780499596497830082231386835607422088461640651817078406802875108903593742845668038338204817251206253071054787002342093837449934943328637477650296628768975914157322905312422390483824916384755676180226367466553243105622751427219817296913697865503186407376942579233267422688231821604987880478101057526132473145247319870567503614920952180867788277056326000682490354002516163939601035405085514045866388057853146322468741869156199482870169831186615865007664740130010637073670206877432888363627596441225944328191725125402627320607189665236864227080716437759665264789715232637995904904014814089112820844902470780150756418201377250892618530653133991002500931420126831367340071194797186063903750021942987967888212054466994762938236553645372420000579544118054722484663414656223136922486153968339940489394816705960617970502598134007124154669789128197202515417541073372502335751500878373804058546556731860095799558272420256614558189648501727098080709303899379091615164214511903983249987823574738583301619904294737173622592127379921219329539885726888275406187424587490344699225537938237385327078968347711213360450573474347404035619123660549707610242250993622789615800881883133632124503049269839366255050078892528895873751186424292019714383541310749315214542212800213102884954605245189068283109643398327306466649354694933083014946777584996908710760757691417953522268194034927850245404969469670510306548395905078991006296176625226455458399186264368214388997389865244714300467915139102562724398147810811624536797630549957317350522633890003753539054239020223553221806263477562053712998212551676391451892600160934968545175634900480708299497163525531650648855686818957510269956794676232873352460735079296574732407380656499675305176874335560199205488183654206923494937766391249138677377941218864984669903190629300800348797727033630467398483340521400870959268779617556174440779424895795960182355166249211579963292284914880070050908633314440848378225552392862335196226055671031326690900115557281365318543267790694939012122091538485704865934823616028925507130732112228223600028333576969391406891895860273625148427356204241581400024758264103891855522645999448360717492694757285488859605861581861864478725945169333261726088792622536988258563702221651183597934566096402494064142294756079912959125356152461158358504882739393670949589740323992127549110177917341535343890476101768389104762085815059020113267049723674294084043503637953284464974815407097008689600921546039999848413285859770067387867314014369485523381040301669692909024362516642216791778887862785853122131723119960841542262242134204775870845762565322303057631633942298907061347828090512523631649994385411942242954555827503306515824842119443796475988837996504306482167810516172179344549230709005062934290948802062038817826532685897486460144606174417214064089531281073430810568639042104246125874363397244621202708733605403159566107295475495012013209492903383197642958666580134821285433761971376393494978446603030614403874960489028002883358054899664042899444254347131195401675257300950839751013276658337414498166044826793196506589452322760763953244013527452427172713708354060193345088005058380356519293582292613317200301006870879418359034712075348449192779135630553464474010549654780804863159457164502819945174387630081690791141375984120729629895793991744809278020984527564420866997792437970221407091255606710995388738708215859149475154885031720662211186720694196956847837709838139049319027318244286420289498956498525746705838143249385403614972045508924130841750119133534044853157984617670304278805623196871713030205712424145348888362650470677452749350763288245021510952379981791354363563521169003598278462070231955356275679689019028941131434568664202748771994624933699179615486069920054021154043506013512559942208239963310391486486034282350791141619290507078068230503863513724004884925805309983351209403504911136246273235088776811786744143455171628296618255312988326783995883149725221391855465910668906785152176718186686136157725385333889772844036835668848006289896470202838469149089772534086904896993560417670833567826766133827385508088614174634398651725008243334330459589691995106125923551454565996982877645906835722731871875717069526984174266494152006189653633345143935203574502269986593108217548839446787754121709229033431907665694607548037484486408275323537287749133181720806248667707055202710427243904867527123172880700438419812612958754192329759519498069706683849905195972288484496804658254041542613549077919508192021725961895317993352688082162004544434513016744766198855800647748253666082403284650901105801552523484165786806664859288556318980051171719916411374789265120910783158380417701161011755065233597163732336494821396183866066968005465244911990039293344411801114680123713826053832561816438666635822100603922862016134327175287125885003588425158067432939675162749252022082782882006567253224437541639930206068606312160750926444448594843595544939189964053829184453112189053759174340890731650124371919905801699354911657303299286338906856027668860357881317134676040131776061012147349809001566162354071005542660694641536596330260499170910846474710091531646436402633676926013362682151692107103527810449334852990178091252695340222121876220842450930788915765461441198805360087727849114295899822951288181418204060768264914707875237024831085273158702948880166009610354909660160380636405488619802516711232381158266307550875188242650454805731886628107334197104219337031966894832071609108286736634462816626129436876884561439631519612323459549040305546173886708066859673420440950019068571988050249575848474405336467764335114980722252697584445525372643367840872648599668886529776457625265693272964826105585656252168370591906000092656496580714433337099094723612571652722539095149320793430168653775344001469216383427258832354607533946346734180544099319300132152495532672331656361958562212691466332872238255489136668258049878529450639109808803057874681292830488803495532580535409350990127429055203154676218416087643363358891825897035476984096236278622305818137582272408420600266638862838490778159986867342877218646661598508612295024313056148662092793900006886101426075538825159374273843995378769696863306984801701931575593467222081875493240605645797049294039918240990621909396910027531881714177945129908791164899231249232945912506670431560730702447585902440074791171972148706992523465580181968126826549089476530291982674080227568146756756516295677021036068022150764333092348231364912417116230014873227418021375619176234846735253851756956125756694328811343383788616224007992972932514216501018192312812681818450078702831675871755598733614300998959372949604912723644560682144809863051866365290104079059233527926091476010297609569430501302940883575713356805766863261300080298193386584040324647762985174788547554550021274419384988390413491700118547181891200696295872013955752767852660605611069751914567016916236193927170979891495222192999636873281070385212609368946640036695677508884943837194868841686262544305734480829788116383250252681098272522724557275673502940504714051348795171692511155675952209323669253317212272252515067993537688547590924395912140562433273529784659234601456301672543327148639564985367169977411746008934288255747816557383019276662743869123951553241802520446219573096921118890711111730858957535851166344051316329128440253692542170135957391638591919290369013234543438799518613570252534576287069127433437393793855365115953366301523441043733379881899956403843601843542847526231887509848708181990615148082328927994865053344573221716364825645062317628344325345272344688914584634875046666561248649558533216630044161762795837852983246870055593320431588931328146159243652658814731578155716530393138223595602316799524194042830458262351759892471624958641482898594236331812976087524287700610742837704897668087132629989324372392683087852085018145108314113711325164433631786986636710473936288966857309793993195559492591069591957408376039500181955621114190260568586225997261420801916761850598144351443022866044604483761023315071583403966058660640411023178950531953858615077217788459979844486906446092718059748990974967483278697163251442556375329393042117382080711027628020951725676883957601209738480538659439061944281949745338820689133001361104851455333215387233410619074025593608368579561580291237512586030033440789483913820831179744475551301584220753891233564615257706400973739174570839431319760196996181631953431532063547390564947697651401177743753755646924406217756276902737922589155139702483446833411743484313998998134695714029098107817375213863041025590760159715146427571508906237865960099589626937520870026397219397785658673700142745475221118218755384565234588543597212245838034319610711191751004385902087617494639322751204720528504347789087063428922867734004427069864403815855484832196513047886963899118987419077795385969224828489191035185637862148023565714900043669174703193818368501653094031443331346203482434962953035883676149376708226694044521354934951843928631425701033029088323931642302240819798179051022599948219433574977927340654198052875722883722621005320392187980254725975004719389124970144314900907790539319377516728990782022890907898449964322472227826394898418327497701109032807848442632303399596810327660945554692500665108324847425499391819352302310411565600822844321137306666488323851283033878949069097793848101709441211632801132804291744715071163428454721185286249235236555868667781193387637668103180012703934023823421272249336759438931416039948387985301088199456153402065408320907901644391755030741554408885892241146193922298666061667909172812384460515516170693749494623120852291766916211673741833447402718225307307981219729914563229738156269406286334956782420998760659686484584525929699851357132208286125625370192420474667550880736444040946064760262483970865230727865099521063541181363248086203678389541552517385668713934324621821780469555410652023835679076141474956882207474775280269683399541076782267429673412469319267544717410752347533067806492488575441412223728048220857596645212514728492694507488239463488267532615182752808067849895138074090348778082519353252643992546839648591866123692488021559976151654057743842799597358049560009322005507670953906139936257095407099491209988578146432777987522231766853179845541375417169956804917929277554813791108051176286799239055968062777643478167997258912037283736396463502315495720437702531312224278386247225557908942585783737985828098162631925942336352544523086101216831784885192126559216186688126683038615572801898673093928082995928389335995787552657917077982579752550382730394507001103669863513734424800550726897492514141530037466353483986730664238948061784642212903879723027550063790676562259694831961205445452332297170893927392672083923315962348471324895933839671521934593355900350869606782647473663004760538381363044185597874205955472331748599536958520850191746191082830009946669076369249002016732269640525897325374508018026375659401278517406705933032553721211054372829677948339697976008114086985824647494762174476667052346952124820590929058521690441023169259892164446601066276693190591265130167411306907337765359848824080618462766460097856976305144799227797647468005667705981146100939185283297108697999260503317028526532829440045840604006062512267454704114886718016715340568435064272934937397815345261493656760957974406067634165672155966442496081790646279445250372252634583687468913661554584719814608378549246312846842067647495573386224714435282071743426595020443273062284588054854639437424082217290784178292918357950544000724965782170739448500135649567691138643470747413027668808108338365257450866813972202440193755976096928274015975738426402349068008124283026617187040365609616839692236705209796507837555335851923302403085025849000523884275729226544929907309838874581438616648165473717900831839920689331388237982257286126772418605906399779770264082494454731979805106628903959542412352567073790004446980019018690830970360543481475260802887847790064913079710988291434262247345320914533052192588996464107038057182099115404532516380676748220296470254393778587643838741280268092805962375414732130201592181384821779738247856524395523929748908325140370126808492803128042539198953314445380856541543739405610864046271883255370555296713141378935494821552476013669496412972045952133020377855090388126008567434410729030339821962439619961605618239473790717713118570229411157662856054706656580910279670166635110909201977206483022991235990969731026478361116373922252236814592865841433677508890673298772974784426196001795050579972078823967221881403483733829861649221542947387155241524472007205733783692634482299589193915691184709689327760470061058705847109733558482039647041526919937995807250476258612382710693128129844180666484232527535513882172779759101818189564224334377996307920691312957147731554217230482090292617898865332453601687404353551227554534340047522684086302197135273119235057842795647882991039634182468288215604642556490023622376223464940596854354853653318032545135566336098016476886765061893220556284397637028853785298799846606405646473276785450325538990888615105639363580233175800139684387790066958289881708162360455140947647174632694129568782414410221488508831849367561307796914499495178488594674812966442322537318920282851072530153728605508266231716531268398823320449178789332701875753870844586173199643490435862928419132462802884847980949530243650824761478607372720849407613393419305561626261999539464435740184833063164694698088274191086132685260265112418038285212912893023317334527099841467342947783504788723093287165490056725573118523564584691364111582817538154909085855843388790062799912231344194506184541120507052382052561142440884691380501014715805449217278766524254713006932650537568397315537069613127083077330015407894642145856723121791542864785882090316381321108832070231867149606950091440256015398566639531191484588534246714426910931479253935342893335682773224346388441426803390851860909799707568525818740108257072183522979155647727680822229799093517383793904837067771472888246684785164748889913265457174736832364953728923753534003733487116964993558544697090010911984971038170203566557221931186367744371819236700249179380768325383867280468882270465105415150959734063866879486767233858530386562097224954878764821991043042845596863141515812177272619457995776983159702232214972426295446066481825467287263290888108311607035231666954097618126644292576952313740593019201399588234513938705921827255887818386938403540893665519705496793206977214656620038019574195473986837113151527440286065583867749311541487805656054506524564023692048668835468684756357376922058838980593952681279568208222481321719994000654683664893294279123104013790597205491178648430129013324628136997257362642024065961304234520363507556221787500738835595823528138342084988073676108109253372929160811509838517659197751845920823718709816304719902150443815986692343989110441249411915311230040179671418439213131437409708189833012453086194312697538664540827414190507600117949612965953511591526200979225667089018877653766486088032466983655693704216891213562023928543993578562835007802505665372884237913679420859780710417526653805358012016301574512476618463021798730881157832378158581860422069331257565841165563811944312774468900686927592203627011237398152087404076059314383817299339377436225661618880420667927291308441394145484195289277862494523920007326582149706676026360897827790022284866643769260966916908603917741050400785872769360974320294262471941982858161540601812103399674087346320804315774088558373268967022458303016837154035234483398348328897327922353199192401428309843918666711247519984539990450534733240569340565533768336972607373542742191515264791190479299509356086322264629175318335199477633377127939512615208163273099886465041943811463029291916114034073919468473385283018133162665334226814061501566976586931324056412805311432893196955976136977874125594039583374383820984901943751973564493184443507465333817694580295448793309180430874861243903112023953340141336377830358129566262243665375789905591261995682111657377552532659068599746324727538241990815459092106652406581868157498862712856047597265769871999742027407377252540297777734776920593403435426474349935540373191049302229250190819025439017276387386364298113326882352888656279136650984419583764462786171976811237075072107752062222991156724914068678908885503399334676243101452698427219388390574730393290910086699192452917656978846488183197905786313153676583131741099193275946825784785633874627287030410604486160085294714568463047396659933438567083884757631844085250454443681827627726568998912078251760956112803111447273957538181111222010061200023240635403167067688756040523203706942101853144742900758535016790567439722627902227965463834883717382024822856199870761008562524525808538961370009555743611651037454545833498427366474727352276101758572953660699021993894744674191914003187463950366233363521737672760171766731343922060404956544459963011691872306313591867958898557431758543626457468752019667364667779832032981847845523602149927215564198198484605259653838564197066870676790249175276626550883856291711592228701286758871952177689916442026014941978322060744417334971310627039467442310648613331297283699519788068530222438339033437125594479328986871175058209386265663476571271219813682670506365158766888843930884790204453307633872021013333828034788164354158829581234889857274007496317527154974906421714507541798991890474821390301758694538791333861221641312559294056124810260011394127350380668656023852207092118783277057648306676279457832158953964579207125009187841795199846423082038826165697420353700102100606268514132220088626621463463003544925285424676183669698622873507164717602028054306001488003726887230398037296375726876566180729780199942244936445088616132889024966302965187441720315071827397096697855506501267096538535635212887598533731134848414976621098032511066345706947456703421914006535437409665930758154821081803681778036237157293049698090921213232473450424364040375962066002827015561687865644629750239419508066117279117320637354837959779534372838369717997849759076582232642274446503942401450758514389539767412908628414229676803588266751534133525407543892680007020805581423693271538207025125980966107477917614297225239518419516949185635954754289784577975149677616959627703439316979805942576001330756978990357740167351039133158605811795480649684467824858931612450170136375525604290411965846473407930053777735291085717691464296955624686866731735568050505281709866304412441526721193727842341741655950803404540781770381809398516098982968506427618792369646165827152118998713819403408254080152751315897003425510262550305810281362372173748558074038165261028487711884348332048049479346876160358404104610016064424783727176384363484950908092465221799974936782707682469937800537823694958512058476797361575561129072589820809080944150422928211764735293437631550646669269629026861011142287403406756639103525467963711023020384841563639780870105770182883453889883559624978886834688696613611247356914865434451146113881210296269663398337895421435082337255694992216494777560478747875361774036539556227243230227028949656453957006604746354165301175262695091819735742401364713262602260859766790613651170447350033014228369610085527663333915163066454942081303251918513520754234238193918854412494850886690481605929200895774499846459944902716988880675363464172028080022329425763361835304452394836432161946685544103764624069676241828155671082864868834904062709891797849701574715654737356492109276898035032034806009228854466921916984063477217703484836491684649704385353316436038554673640780623996722148324041594696858345779404288917268542362242367911886874824635593423911114778532027124928836863814216788437807929676143529213682905568847767573138127910793968732904543385852561652466988948004754829806112107890870469307981651067716401340930542126780598133616703686019646018584777264023311697452271688549787159111314352017080505021052309055010692808564500119258918024514708774780008212964329538446768266789357116972868850416150236394529593635357829019761498194964493336590563362480587115193782685254797156152425648473378715856608561866865662369389469131438721873215065418258369385619862011726082047522651310305492917811744116522010625638025198021196152660426578997343439791803628111994068100462550256013638910556352444659223747355393671860686121763654877309472823853797827048632619998949199340504208199124345108400940878463675520338209901414627849136333224925618223351220951189321109569692688721881594268089112545399301322863778519451040813922817444588726470052418204556141954744163688253260111504182727157578071763864966934128191874337112539296867815162492611778860009193395982924384926095261096568372044535803794893176582134815474110757653743351929191793760302720513344218925107243813306469895949296235741869757904042212551131254130508335766861020267139805487471675217009904361755604234254592307754793455180729099972939714603822659987880740281329561093217141004907965367493215293807982037854295063215794675291194579969696010276331086110298034373247889433020561741766553932484857917008206622912700170199443261008880685092390535943370615865614479318601544071734276082115198581006382069907978962139845510987550117120870773727009419451486064391865795071397248886720253318759059450282113419619393697359838607521923366502063077051119747534767552622958760112175134616985591004503935428138658319628434628910349621211415968227072981876591182068253819911656446937992817936794736991581380498606118824621206456622330045703962168349204934014004854086402041821592081739800427182274142078289107783497183435024177766512861076407055566468946709463784855968790366149331351585738803533174974469508928903775911207989814279095107480683517386655017265316939152365419867452847224223894450919795413872926817811147656484840518600383663035117640140355350902711684613982457140183192570399052896296594624701459815725582606505613492521549383740070699441785121199632202658222496052767654572356517188822768071362442162942378055485056005769097165285725212143690419511867296069263673252236711357391380543786820811695059841916760521475972679622377581949476816221197193629697049207167472376058068853551949499615639207123055419633186072224141461210759571124979774406196973045392911775052128504319205999991104711596965495820362041801160387992797728836666023330706155864013762899168883273738407432997402154411764927248717145204625815662903878963527913701035466581638947176213491540338471258360283665816828614108209798799035436187788148519130413614473330636901449122121287045327972372494246396077018632111127500615728705396856315373280017324900007076910834990132190635182990195772182767827272015051368340008754326089744905591501955758213068419413002851456226143612871634593818962974508436637841178165825067159437255216749394739778403726543520991858949929084658737060778568985300249202001497586125579280039400780084698457237421128519670493467153915430633181864064620833442016972021310925066171853019929966418236855573423504692251184913210785574649231726071889965099212359506633491006528402625474709805783022005354238284099223344395720849558644664636107997086159771369032919385066521968442446938508452852259488884526404221527462026571497319978894899497837418208920415410743249550096277388529023973079911015085784081643978977523795346146624019538720897100729219993443963509200963709327144156746665062654201540986971078878712906036642910545688937322917022738968089490448198532900891302019345454872818027166527172696091201860334207366692195313870503186558571428775261003554574243012002706319448428733896739661931466446945719350914718483768793740275304585941591841533706833046624029922121881494419657391540651715618236491636017973179886578849114375460533994154724724109694938887601223345164237415857579517487065501685313894076479091327583236077907782822231752650168003253459624588206595185619052347721614815754377521394622980532494097052159358699208680879286324693468360152017200321354077863807760787786280903327226279721753677609155248130000212346933145049393742889887011092000010959781643396943217775599484273839525083484594629928825447153844442162859855961437896910076387764493412769589711972463834529255915286528093122391756672096193162433255391527434147608550301082744667992434836893358994806664925046149963178340914601574606815491483008081417288550963211303976306874678987206187222763365211536506551830091311054966465736118113898207474285346844790098292391531381922496427669775965063843917680520891773883331985575349128827028713632573697756616682315979369501293364764211953271384555367384537576249062701579507643752675876074565007566394643982168176644038758080876355898681501545458244899743917188495324487562805554998635258547409333384898408129969655130300700446675022064867599625977095409809340112893981451980278990010857784520418098608391563277138548425205429546217739621825944746136001795020634683886657278436453423388326450762865190860855675022239530002746623319063375423753784287528057734961407453359962934724075714895243870418142483168963228743224487470185125722389825312940614527469462305314870679588868557962172379788430964363241447204565301524980088244889363952550993973316895377550996976649039520249194385755132362176244025766411783054654797049817844149789140473587632525133995604607110558424731604591036870086065826350992755822640230695451098559703440228995851303786301288192861719204917330505265292503572304990528822049259790232765506384356428647556128813626923752525939163848647992985093421459896740843900894736591280864126713176755938415177648742206153636181912181695762146676008268426610758650463293017065894041609355332604541123846424492932201768929394072585516728278294388803062931861562433738343157828219336085543969912762524801409807764862821057408265382193213670467889826237550278258044088956662454218829902325764577750717462094634506272398122167676983494203485375487021951119813338105550027532962677973646368666522931318157277115329610632296493418234786592890464879932472574305307453164266939982440004275827025723516825268913529990909434493497921337283455109392962967689342515761288309640070774354886697736396244004760082607836851570024430418282020684133596885352292481453358937568209646862285910621746648906740270705458782426692629492594206624344333680799477591312814795477362469553935793288163763195501321085725310851268576984877835930044119799225971720788440625361089018584159388807117378515274272821174946589802941380198376550110913261083738335530913210798753332875567780053580232615592159749261478691693867743666914528095920722328922013324887571630117786365812361728239817785625474496524844761271787836681869226110380662977089232503542006067849851246988782116684982216975734549995603184961827504289309214466495958578086321173899762850587961006912118856297167801427538398372709722313213566824854723057799911549513393058366825743164939443352322956069860157730488757145327863124242669411987444063814700963986844612784707787756474357699207087416708064592036814232327171064974292930851428226088627917074822812276147792207911442341093488290412613085330251409438964840327897105295259481382912947602323971376411217956128718068733981859340448155870272668022477753464570221753590284167266007853704461238538640375890367731544307101233351905029628258598772881706142797257430362284341993485892819138110073531017757115191515680830988867404200047736186035530751838125624860371645435511782400483043088152700644795070892468286886511663960414868592377721921263744104593296077210868263051940015721459510496970813462134393942910562130215758546529567586780638533953588610777214849013342041765027033155010827816158440159630271878922077189363842746726639491589197602651170874721672856429607758512795335171504818152866001818255812087127782793798671555358898840515345960001202911938944084203955757184554994722652384829589228450705604960923627596046841396170116673500273030377089200095257960793682783734643530745770804022842596406484254199296846973222597278028708740698102087030975012790761215002358591026162494612704519081720208162536039130518973978568566894252316617471418279804885984160663576715783048195260082444436604343740895835369232217304782480504699581266865791506676640317459776932983152031475987939036831732687225912663463162295113934192148809401736340245066767278025970369135517436173449962131228184559134983426627303406545450291371025574660153773299151867581301174056805917594325370886548361557955458349462094007836636669908631016417355004349047409332712107581063685956337765238089705998226346344562273124823874858981511120325519090302734371928313943000275746508973989542478906283104995163640893255296582380632942774841373318609151303285643396527264143707346973624838570625855470164841487520768635533497502786591785182269955688462646334555811019831885841754273429945091990443921285188025684273692902776947081687987149952192709893641308780030261252604700752264409388226858689771746800169504065219689954762406303070578720438418577891911356840188725705347398250806660254063389592324798739824217291421003376062844157453656959230347127059363303332589769007098097614633074654210366807642967773646130504419479388895809191686719275112269751933344937660521810424581576936125094933584383758137347245539680218242472569978798235416195923775598436401764344285192737264034329483447444603120509071683145873315398493098659046551799569250881673828762321687382100188396250428068349764367930667534194365271545079748388150970340454072205904177513581879156751994057062230110676509969183856918094188926731675873009009805836213881271725220924456081762256388684996470838391124121462903303113277160889621683010372831827560306626985949437644440461467279301498825939528595771844689543016409192300799322516289947934080024443000301744488733309066248935391844430795847055727213794453118767231598787187250822460434787335130604754761365309541305974970985186431807054365624431575602096479423543502626967491655814816023764928490981228178842639487451913048484986372794282980825614393607194649829065402971519933132248009110066891842649648802253224765007546315120731979213918880356264336275594979386920928037711042644341826610910808230923998218734699210033113554199365646006820453173088345871069184338624530229800897250781281094714662344051320967503692639278296052709339110772686059192889848775640567482824985536544002307514427449164482757283577854592142214278206655714274763388720038044035123380002184228306813689359326122154164385657108626871483425347312214247789328953060388754972029076551446530892361794564459171214644188827333399853798148878966491515873959860416121333141092688248167010201455279698890008841003836351894332988058050791818341447120961036791228588113360214984379744005869927959191429901582027400544972174444368735122800474241742867471609883576906403296177733554240304895314789242188605892602647735189149414306832940203977418406019334741278127408311450966335950642824109807010386566724358151113418213002105061400677208900515144098941497624951213621952786689931813820647848778491319752766943715393670052281525264032049463326993326330984147600322530181576308444512018316385791434346582164687070882396398607864865380325415444994053624339177301314350252133223374514886282605831602344188026622404660879892838656280775255211863504030600645025060312928182638142473698053217137748364150461438258759499411396255472493273126081684096697084289949066552078868184813072987883732057362551386807812524555071675621686434814211742351917004624051560065318465984824208675221890460197231713227690512833994247051748985721354798842687117943072062571163095123543858997479888983909937981007319065839150018774070337749284345122872694313936033649547765391707717531589900398890082062325154838099391984858275384097677302814561294708721825546180467803802061960069973254862968151276614508337556735360230440600867958194229036488954288541182942647508523359558200054687255880098918769147182694105624178094875858388302907798118040123360702407753164340158270266735836247292623591231423157634678434777593764913743135177176549443929740864035097677939893489869465181859139324351999023361442924758140916882216070579466243999995028471695664710781277278485112570617810606753873554437077676107109453891644244631512016198901797818440495139533956004871823974359048727557483627684813970210212295312292766259260689146082444132783382265643760950121295032783533073178202058909123749442207663828408337632465450876286543930296342267228402258594511457060175245257878119432431113061303682653973268728478272837416419462187200438331688637314958406649096670631001031475129885008157270483001766080912619324719134355086614215783939240223766283444479130075569695462623821509673272533589882825114396110291184387602345700047277763078144677722792018216536017875526821225822228419916720366227914678789915991262806192989971093828044323802766307325288146788217794964356320835469598200141050928105574560534903238996126426869919128659604551821762956631914959634940883613659982048970099810606775671041141465776653668708630176084239772207046015934074813314403811755010461251102744960806880003509296418903530548619636317170268209452865905659371980679062889601803908765204485260566924763219823187119159969548976730803979286133286402305652527690003464422702034122866430218711167931337107698542849468179697685027082314318158745216546884100814355608932787165471211105239100536420548431321565303139400475381289125444767924795379959486717646463430504130732600577546780933046383873002970567762232801132887317432562731873588887704130764843825930846232434196823346995920168414143004936745999489975018717864357151351871192244452011719841733096883813562000499785492714678648682101415433556691949607084254879934933289821791994899092271308202604960716860625129878446712003534864631684351547979471300893773626942308604264731292302441493033795131080669409388031668046130571739857380027439492455697947016729943939281375027892315680325338679673668785602056480897412403119212599576907366439680792522249742491589432915892456882539072085073474250083455239762454013764533407670628273305216105813167671129387826493838765280921235985886085158612141975380709916472796681021679118317653357815524729712820114785896152253605432315220162788044843330521549379148504771970734680688468550615378256573382920483690204553004538750946166809204563591334891116701698692362497536098709203472983097043882107369552289867074393418564345033632099518300059822095990324979655754879079145737152886239011311140435810188732936872801322459268838621625845917370367430497995036054245703207283862011401229394775804461346324386439417561680080315003416326133390472192273253876273643836689296553166871076775396986273658058317566476232447834362586468052807910920076504313952808860160164680388076252045937396641629216779065057902027291578571375622718632938442419473220047256164554610390084067647317641641963722629441277262029844766213452979787167171040895556823508154427383659532741748950171198240462937493671387809816916250566783622799171706713713771184142963210552102172341273651891453221497869710301565996562486895988332301582419985491683167450550765625149228870808051590438263458456504521229897946707676872964187625963942342417543120987608507322241391558374114615570533008411327775303203999871736142983135309050227740312988419784231546894722807489155942749455094856987154161089624167988433687009444524303506654908139193206247957406355133884800807168170938412215902314156138604819722614018318104293873765199816224553707912025496688676242883717225410942776741463814346873440724212135991695382667650133190864660304799138213407910976003485682174010054391609478841053933322962811063957235183305787613351910772103887934786539666925036912346047344177862199498074622919309280810589099386206315133001337193537267900821132199370353169466469282057491875615733559177358141963150746887509470213672194475794338145552233724896338003438997129099203452856587900404557003355881335915797807875298510640477172264327220010862146800421186681348130144820309781851050607111657984774944930255173996374655030020442664391442339092531328463416741064931170613318332890457159059892938215678844341843628931245328286835965153212534598206001352844450860477380848441394553594962327653078148731546922640627290113135548826265457454685106887289454871403064084768760601195006386296722193681891683691409169040000860811202222361024872655821484367850044691889800603858598901046514981649386176676241311121708279217202666266882520725295707625255180752799651619348342461717356353856453700523985286579436985088561131143147260979967364714295043654044781904437754179693597267005623716041415033052686269466843073932517129023769951910427226267294460141000033850891114834256982258269958795932544870223046430733627237649075946052761447938628202530058232367865678611454407261714424019309315100779557170902744999866979147167915470614163180555912914884054838396441460539032502351356273263559489836534316347987572968370059823643218893842325857524224206957897987159212799098070538114206458864545618344070587957421061363187414596936400770081218594699099232077801250949093303718812824294015709037579495937323351290508838356872810183026963973615685458775112940843315186105921617794258244185426350446427312797281756398699481663051132534397188955580702304600650750446374972102112888590011875936846415304619809242098998657533979242849554615318080846895725977098871228881770427071058932274721772595776822620973934072444121153099104622314215353226153337943155658173473570085920623294896307027680245929787078734541020710352626767113277840656792101642712112825428697240092215844930884664409528392436616468657623487292661312764786983243762024949849200669979936586925777826098151918495438195340549134023347436289539198110048570397771944301732141449665153487134831209327139763709016217810775240410629689574114303696366670207138322842208130339650831609745656228031008513143382826577304598775485043508238827858234540738689411513900682433617666726463157575183951872130870917867865061573117160238323328365607400922480394717248615372665910265497008199496832122828556122949499072179831059955073999928525571296985609793051083522337467589806721577159194933168317736879040228565747996163169146283380673566146579799055842773177615008727532923541980903195232844862879730224948404612239164458968721208263036109116188081487395721649768291882073902202434723666313371685823706619197144649194527219643610775475579311248897224093337710941914927448432351225182510009379664625815217509506795468457360242611759096732085063622747426275199915574223386739729674028375837740310289808813604292362697215427811781412258395604209845858718772944679997897102556787672873783747037193999153967284466269774611491065138680146446523025214369336646129084173471402288701856192423457137851760398054892054520442236440538422827070492761547339917930511721848415910767679153167506575551494344873375884263730835004061703748154824646693123851848538440309647611872934154642364473879851885481547982536555699874052590129392817837679047840330752799184632312884985973600296729616735685026107292724777051095089819055389583281182150125799056622026136760077316777182977162328218934051970430654116490593724000376071339065019913031859866822842173619786168281302078603808823630185314497375001995924928557144231574522581281487448308979609405325184799884148503768587562571999620123948764354895205580823650444544574329058071019512901253754672509196244686408359768389627822017811707601728982913657922358211060201531329878684874634903723122455117016870906098818641410106516052316767879975283073321714230229903344821147639714478928815945366665305420912206426568109759394578390162423857612642766453104361812715744558327331454896616586440232745214084979439855980266344955775353586790909103321731424881617407349968822211314321628314844224246035415259985212463656241377509968228572905057479832197858684656175533031453467787475383375087190021248721798074073969956725912713248351763589031630350186779833175971184811755020597381528919910436121896613336652000241885660299678967426949013682294484449308399330854627617818749723111265325353294553496456852843034507396570957276831753848746743907042163479729132690209730856670831183377305268967951737893851942817821899366211484695136196907145720657227888351322258552908658592724420754070461340680110378432954750474436285649782196425337510765271187082204588125917324588024696558308370930314314163356004386458454588909326236880858315743775030262397262415023255793435303649653903172027009133752962570369085366540144642484892140288349396249770697669588376354442400010797471055318573836522818054050106714767779016995868822641902618544039501978284522202384948750020502221722078680622214026159164112282974694443763840737246674129143518356808817067411889416430881287520302801927490359797498895798580498994782539232847784567710145989430180752472613180141856756825181283609590820030195470049394530789966742439592705259703627032491021778589065495874879348257529350985268200326823056956530981894443329796842236449596492705006647947521427245824701785866328360878642290975731013283785729415750347379279756926596906570956129737348330218002891877961172994621389417589566103942636640951119153943897908452555396489391001843231174591638765301400110135149125731607876122407263502380032891546130998421933818074211798651516837004448004055640434284408908480469350351007236656554588507257555907143285815209963959795427938186611247326029742298509015007115000582475223446480029807736610689495551269557359300819816732741366628939050150697544230251454816819340673385839322504727635544131963260741572578990355596790061402705676566916063707778634455127124816906354667908347656020181248706833145892765360108992609106070248461196764430323849541493931503380872051100150811537515146957566565723696424156594234877483840017317317612996605720220855893159952314573993670803645848503904777680584427750512468929191561484589247436536052464345626676657478580155927783816162631114651106424386487296727607355729812623071117353167717280895330491720012550768626970217880854424213704190364059261576941518853169566956174965016855666053435666914083709979513780073338234353202794926292581472758573689707165422513606809604310619919817371813235186695325310500208223959740412682451269478316238452216268686252128517250270651029158092025474506445337767368402822060419789566927598270742298785177158402966571229810442860425966655668903919358508478628880150550107320015827245235412461974881164772760843218888740001437820065639291280016288798987781856034178247776291532827554863656320182978845525841676611024008550430933947156709901127383825544600086961348779623688346082297101550244883004242401394264946708384715526629451669846808975307520512637821608599714990955621386923342584366053424093623730163521743368038428504350866404963373441955083489412430210407493808356056049866435787718771220649421618510494163009515469989653963747036656092007428986935532290030637959546703047745839349831047192529527575975077524684298546481352486891637997424708782619570239387860611675942568164434084503394699970605604094689501241768999647528953469619153024894929672889489323916963420134793908621980576726577653893053348467061811212438738527932290510025327045538737439841577852120949546634584420642364392140994505384375430072846188074378148932603837154339858706542591536168364678618420062855392784899173082224825728132304598611587663874991344970748075455968634057118757070255245245320250661141399262943549368292156481314547671834238783762280615592881095954095811432006088738836620409997345776687340293756320977135485893662975902705501602698045217429883195648295825472350155273132078646678166794141844794027176463141584327124993706360226976426526280686672342228419716739148472893714543442228231775237696783545148395530980783050827391926343279924686816716569326212109929367213652157494797432519214921842306282667309069288619647721731883362819139327523002031022300159249561057673119517889043950256111271475629383345657158227613392351566595381273569824561582826069760085875462785936129245364149868653963364897467284259739589699581333712786107159414028979663934830342672951309560380087483848435926942617614711040291201551094722045140958763549404930723566639418602525149807926721102652714361514111264397577845485557270455003120439616758909442770624878189744443252807601706922781184285803484784565729089454448068898251475591633859131114725142224067656307274838238682618719419280063900323210590760947120066467465751320656945180377446714360309787840859447340846701764630241250627317111656016725998275906484913674708657116366919644787128122412793728210110908588020634854730333168787173368193213914143794523646304520449968810093693960839275852196550205851696929570148058799962796107222827046446007102431562755874929747007134285873341120401885352334335014334413046387981391370156235229609054913123941298121626402960785941540383734081366336647959297269219919065815771772133492007087497721487804581656729729513179736596724145767652904003100665320732333461702315710859230896816494698751797170617397080564066498789507543098444715202393908887135687531906864062862937766834266374786735312904527367603843113508761381604972085396226110996074020599075744156250580904726679099870649292588900039666589244961535995770586435130217663895196596334787437693979354169708207678007278993936138985433971194877068954155326852755800568174575159029148668908371878252070910786056577733907485437291514293324765374983661957465099811125352784619893581588178877604884854589918675109381202742509136142509183214813308993019943958456462315489289013873433877828077240634245474404170093076568048045461593356139451724901260619868082430621517051249137833620112250430439703911690097756089541046409511153261175167358448026503767515667056916083868386031557143004904666990229437553150191412330715147010815674953127808111115413727793437764007860223806060659435918547910619926429677579386734642241927038252969147702229188031433517443084442576035922564440388458567680316572633427552411931749177708549312905453342888700290480113286971141700290910146390918335089382469658422845258501552390392755728181577484256532481814175711233068368385729702506623023260144843286521192294927871647845319489387468370922613909903431077001860886518764875782921618843751810704139043791001613560205364565906747661541901042663939308921050585931774410843612104769908755051374597009829549443538769364973444476753159180778063096251317616226931932929497226047500311172430399631452811591068016728228112805241084270071055874763471226691925464456808596331360777186158741487176686044477809810157542727343073699435909584699384899896452348362781655909493328845232505000021510509668946150063522638729876521737287006504367294823872035264649296146929067174669936873754351720323376594718165660917910419942327984946043809949026531789024146300276973861705331881890600450170043217818997853976759031650609427875627051947754445882328282549708566181907397634498041184172680298661272540302079004780721057761161069985907415697720035399048592862532813627941375445941371858875530908780028584657972060177486727155814809904210373045247180226770609068416531764402844798159444066901082832397498145387614038307681420025441714302061097325991822288457356671796609576520547692279867634333250457588826105725329012290133303478106080771158581380722529506246410762222694366337443022704633774303022365640227864652468494512677161648523648898033419316599999785045193404478852909973885416221651127823679688203823641893324310459283594358096298484102215204654742752394265047061398143920156045414746015697148558648137192919461626076411007579818971699571612412891322763912688182913651672415112908720213653589171672234272909741948135410182746415928827749357992110883939145154153957952083798149742925805026457551383012432516332224195463920981759156209360022450651827625953151683662925577863997904395633463943694789958429181122323238439044440015471930610290825157120939336516976885755864625261520569059825445889940705159141669571963132762701341993897745747249904909314348956049317462107277515940906165821444193601088818177697619797510293462517578705991059602324268746489324807218716333027653471694441465867858096206942683617274820698548802452421724855136765886013006596422170085887056073051385051511706890432743496346065719846780959179492414970740878462243149438846102051782665108565525279543870379952415083183482551408816306400472433041848271601127195448280250624059399502199429947902945585268636627501128625522805763216340299550884109809289323262287263380477035972726494116613028133022568764570030910451418106522945033394130807582464067539084833405472349364692604877400503104883854742158207711872205863096495268423382841269620103753674811607445551058859527935632875506718891155552996810260811690926098553361729509424466897951069426498556165907334757822600148178573220082420987574087431706572828662527579085705862293937081921277411186578582341768330138512247561282729278902709542033491670314144346633768616828906833123243440173377259630880062104090563340586924621432836241077718333227404982833194196369446254133052560325621832459867163494645589837682828301276330367258370011926434817669879192312248882529920105370088634523132781998055462245613072934892641026244970803159529311531275267717947402133938400209122627828463154417049873268324500568515567881896578893908756841936400491792696527981136030377293316446686483480197751727531936312838952482988094436607683927559981697810960151911593856883072694426639344854216599058925227198895920101716188410374172748198852174265463332678721837619101437804857384262450689433579923355969346287143593655713292236322637940458674345675901781113706231858581331050083372201907888557887707365514111822334016287963020764409372192061747431791391819103293362205790682113798488864773377312550917392044076338668055068024235133807768125625332939000122137948535850746379188787456048984247457818275960469870177307290105150402002554773336868277596945217011013749753605460962288706872570081471072879062875840346303962875094031841061407806963921896079422902333754699539990442859693902997154614774677732005296587481667680859374335402081601223133616585373424382959589713149070689842622040183695880328827685692297863256244287158657775421942484354027810684596628735965412011006134534290420088724399459922193183068962542942984383767621508657011195968431661968905861286228538990174857470041659888424382759616143236900913160232255210329403854648105902391276122373581897201570153533333899518097183181770301161274981173888915019076746165244396085928747054618389495825547716602991120169620545044304513265518860114631480684799435763270757645376753710652389465685842125280253539179941705689180380829981844277947013778014836719231635391062701594414965303126571964381760341300599924567218596204881581088865935861264430488639665557212068517738130725882984584164828626695908442828914163582058144416491427268960995511629167192684446565029803036739848886896397322493745600054303668322449235489318930900000986671149649757907463378820727306987712208234576922953975990357883506081685540852424378939554509390011035957136099646504987374570510692208091662236134954388836370468742882906398647447410821769103737807939448103809276992142854171183916305293303410303179666796843814346133491129098186132875086611150659125506730665803875598851396366825747280093410801133339439282983745838833780534486207614325391256099861171105622408983653223060181621927758982087507398372886345402041644472864546962947744968232665753227519544429194853806944577677475112103267286993202728251402171308124737379302772010640460528457873491982019414548838024391016590274795328928347918458141152010955374766112492202634333461551436454992801668065038084313148159759208392244709366936864927080196340944870163299691079439513637298222722535093160633996611749368655562606882594991388036678957416766538988317453896420168757139588308139511986339737195212714964401516556397988406220572934615815126100347761867578922143826486070420380805799629997282572343419680190464103497423121009963895474549466670164644499388947312289424674819147879741996694254258377727534223586219643667002410150245889278010048159317610693691923457711108669407702620468504327463988561871118134903257866681245630823663096228081419477116958366326363861592323106237033759179793536259447159546783210643294419992702190427973540839278257322716364678776530769326964532852620694293977362250363300907007909148132731877636740944976082267522234866007551625337224433272703901449297097372171734648122579475959559746081013386306463499275954378478490407443352308696347389825837823793937876238430064388265900635514840050291296750980018420728095212626196498922960580823038750184953837775967872358873647409827159407979131122683757032538574877992252778583993079611744678845991856544747284298656398183906953252000642678159001081449046282570979449295520303403851947551067136583853720199107273422917463226391221303217229981176047320661549162945481776016421768052594384024955694985762076247193825913738579971999207120208683516585255211049034877816580284347266307145991092292165103141456413954106150742562304363377977897602175529215752626292537617836751613824342385960440838482823717685859462031908104629353238307252989429657895404103354961261789609486452067401768608626473556876253751775663344213073477028933988396531217766647448210944971723038167823091940282477742933391001503376977888735890264212453661316765722398740823969739831093721421415354566095350658761693632500674448718150167361963836566280930355360597172217261256994472976170135348193260287905312030140053299736899160969274975539079568693063611526263705297789627069090735635375464192485783436935350321751443823252576830810498900562188726714105432715930086759769536550164806118941925023953438728826883443339813257984875154695230272005946943247613130094682624694144302867259645341687754493727113378379216081545501357556217647074569725924883850676643827260394833335086121003267599850721858640664006617346567005858565707170849445549478343732056221013326666726618049136820511813712540080114437026389941642969436757954846434207690601176648417541920110544023328192746852033516570384951226470096184221468173209028294918448650679511184469928895554601544335603253549763086010801671714570609921693954372928550866138364646742177858104453380957819295128542226269787782536230788100277895456967094898099913408348583986238496587535988701573922829048154919439255360238469966150308022407680125373795875964453235943035818223231865031506496094740447615037877474910803925618716629446946853270168081860491397986956457354656557716313724280754231195965065326770060360783782058555563535535328722772505087245349278681241295722463123388384841048690634528182583569982547897874417067385860593503628673460483570426169812815982587798364959903017720765371194167181723993503373867486645308801990162344371250278615027111748120536199390984961365371811164521985242102926974058093002754569536049914712201153143723441511184080869615832796684221364037630399931142420880001947242175011705466374335070941826963842063696358972742945967226940508588674010260454270028214796595983048609153559900445816045667061561505919595865017424966572508848217443322694320825694485006679664965676193130574407682582340597525040551649990091122361284717923266068032168093011689475209264217108478385029812814474402643522791631055979480992928049496584366807872222438521502686801466881960814052440189651641534187167006228231077092113110562435364078374219857032688939836364471779197585538810692455782925440980483508502171141627445326703100109353306074561279834038874030193148647132165238363031283880004482502346767096434844599041077706729074539365216320589314668726153764896639177910552409086680910833780061168486786572685014195864384267238157809903560915329716838252670639207584725525706676841576856048644753633959350419874194058787561019327794465094779958519624850019540511002279918202035842495947657590432772818657329265257065501956573807131337215480925746480738051761033738176302823445604123583068246874507939184186276159788093225362954408310211875747072499693805056770215803101296214817409820176954499200396196583671400602622119136591429238681149309496939136591239352379667059592941374350793148041696736982628792718288692194111658502083627534670939426332534454861455810122634492378843167891600852162072809384207900408004592285672431204529144763597021153477092027497665172193272475051466545143663844964297010297025825791743400157253853770236288290429189003803353100701654419684207785192860778484631874850266439867807627196234059569186768909643948619060564214317195226850634499595851127507847424019141466293308572596511114739975153247047372406599685817904721650451690347822386670908669021629579192637369841542604657984980234728821231552508207584827547805425448696514490347304276965781313169935935625473882018572729566207277346221688309119049594664346127184100363483802277810667028391614110457515733917324476086771149834927808739130371222576735718805782792361695734033186122054920771473244365999127122002947356518225124440786206153019885156939892525197992169337798303877151390043270624165611245060641329339764984387033907705092603311098122571328580241006262637207874685446918095048847094117139926538563845558353106702250647176953416396277775863759292461183712765224620385756531500144749697107825308873994619658952384378319132109088387864180124283748068211304254211421336322627921722363939983674062446196350834108452294993379577739482201719882896120073562437081602201029800438629056929378586418522722109283611672900778379805167646156850207567114742137670935193861682723266007551570177106999416272378574865035516449308206886289758195913733480698708869289050205874464320528652159109724344614304213735171159416674257664043552474429759411480924424625199900193074230849805269600187654318915047277007624249663224260950405576042894984555716311136134256855463176199537149048036986651731351314006168037118994656927766861671209884619613396320557009105723199461709237551364774502369906521886228509842562975475052668801504613626033102006633529829269189847517600196968372790807214689991941293638566888686382117157807819338504642128927379353248342407786126293771416918058220245441322025360196973080482465574073093445149499913249561930584432102705141718107897652301740199446334518497875341601941052507883931340272462773653071005396248176537780825907591016814721621079108162258510406023104354566724026880401895276661033628200482823637597010583366736162853073202624591954749728488522377674734760121594369241008603612058614960318215264773724544937375124081102033882029714348227013436817364097459372892543939356199056311469540681630533618460396547539373830919898743894035100378057113085395984705596504585982470667180818662604153059340287119682535941252842097554931575200965602899912722509382487262614205806545127064011393005653650855130736188165939074555967276326992829608449082250027221720270340861673461169787600108658187306075856328391726836909372836286755863576613225817814279185299270797663905061462102214145163006028615147023509169502843690072692354252374316674924179064191180420736798878499593264695695740744032470827594887633684571687255230246858011024324248483053738003436250828210854972341613838773828625252853685131379675124083650300678326592005885430785579168974181075885001927590235188143564596900333496368107830165317333547081591079716274754671697637932496232679513429337822685813684016318814712198494497215916631550005201931098646525138164075850194337062926451658146562168295145409574309839716350463301008489649817813173783008104728777393806627560763298728446362414547493279166123372963396822601443343385026991981713934927425817572351935822487582375731750423902087334358686431415767880703994793141748061635244126072480917234062144782681096208004208787968147006974860134447732299078319461949770585573650818339478119724719588085263215750416247086733454480590117690774156011205713822199758851694860805826813263952836787110679578148596159417223617673528805870775880393330435658632965943913721476451264956994804567297028488961221881579247447913783623920507145253349531680208103005282036077448007923360769749500088708502569758880375489527545663203900635403608146952185156761070352161698534682867107032448219157540383631874959762438167054839195552023927096986751960567001545143615486223913715779523288687301938398464037550902541875590573638212189140301495518790893159311677633187583042844785984947771145814374408930318417490772544116914575300068662775396229750701225687664234398744469714622984607512443895139476756519646392599228644598380502833499543820441752237192107756340211119356551425669939745586850294706053460405914580745738249604809835329970451415027682037983565338696172121111769483800525281960175777994265734439664995331905891842216286731175709719185084281372669284743697527623176057760546241840995592678173300882275429289279389639064995101885820145365200035623062463008429193776983728968426922689703827470523740839347116963556051779978547244948995600376982170114032200129187292309535051338994051748105905045219719904808336116929786097286918561201688528801351571858096632851936804594742134941100992753446737372351387688905605230284241556216665783955126252214413483623884132480812913454226316354887862046988818186010391527921784269330527534457965463840772040887333274335768779297550499269687493352065240004239264359824847683734724321855974249407903193424585283934038419821762102602135678627095948708438167189085464649953080784232464174706606160426717200481037843876523869009921223263162231871026179134332574309152019893548859583165508626780431789637859363562064514192787010354495907063391263294106159251853910309335294363507547139679976022449794486055061726130066999517849931607846385475968963431605264557200740633773339976282913729911552404873198872555235676769768632976332884376575676657745789143687262762138245729284120270285149883315385419401946798915697715517711450812466745662142585646335199599736309070102119658830227818549396801659558120141333863322128169865121650351118533364275317845269175265227965575200730988908392323613545850698709680178341522953734010918838061516279357781370530154419396369041024535402180062004928754811725682574885862869695208916841420654406183595061373450780732471202609430468373482884150810253164940867243728506044210422961474045232515395718468640392260490715491450988000596269042188859794230467274659842462393048817670868271397503885675937257116018829570891798412314590540539300847411892844136924131422098627393311394678228776560478988389206547346861312421246155169909169485602313885206905781739838246002117677814250982863774844874238358543467674195008040810505281051376881983980410005746405086000317926586323722947577041322279356874282751148582761314238873537046031057798211011943722316713012218528255753049858719460714315966631741179903011939570518628582912197620098052780955092487337889550379707415664430745537110199867322135535329058192184332226648119422005880928893495933378517382223766377803415314312132536558868758810814380785120907248952755097176122042133030367247835361620098130224996200324113154751971938099240546422963647205166226743594992443842808832654752953866599782799370127243365511251775365349580210435043036889819385545693915037429903432961361533780124576455585765939097477292794564192564061825881544251242918962884391859632208413976829700576151174850351901440761627878212600238244299352859779117816469610573879318596453983641185445543300439948746685276179533540698298480089190172822481243797131131170300436782931144349672659133038732731287500466343710463346057745124455267096727314991400031387233768451118572189033818108558160447628149222572617463696384782330155361122953826749832072988207908628252194738664755927306603731898532128060667427072332839212356328542070423623757006777339703405501875804191465604759947405326566927003598876156653351579223997351899485363500752934671836998036597567633585036055047383480261247543626385535907954632136118504776213624810769717643622164534545688340145776678223599918265530215102550170309251350251647587794578044430483198591646540786430027852062783964448048231165343415212418469890967708097522821993630875024177940239476375136267344195263574632240504685918090898020248980728361223608394219731476389188166535267261064532643047724200359195395720957364552147391213497100341813782474323835674292135773893902773564408118773215452753271249910056613963217480324791411225376939648443528835643626743514813490264943951216243374015779416852937922744582258948710994991256208686260848320308643987216112644918555279765993605193220983877939997008587826866962718867799078269882749406831594490356845321200981783492633691411868983337189406119514386642997087239305834699791114764769763388120190263728787471711607146755327610736026291574442799259055184904710378439242761908221916843069129646780687526732639243181596358819634227153846445532046696776414391232374344622137438404717412893980678591390762774997779868648705997007981732474418025311995629109368858571132603639978087949030497435800638075931536208461141416093949523645769750518183264534562309358168730870664547817594709740402968607230747747530549669791685945904375297540040502623707836087542296580342695615789521136285284204656030094696974049535611459812699646959697132483366135356948330754545532727693416172466278726716133087848960792760340559745913237770393120653174671697512215526375813345957035042725222384645827548789328343232481686962246849171976736251632627529089981397008603977557782815005038786352198462291665605125380015630506255586280046531832709230121440380074903240627670193000575990870948204024951306127863675957417836337527980771986208876036117438353486791606485487533710675021625902516452957769688056322733764176087568222869351076087320879355530558868207766311509890894071031858968639483309583964286091726293735868948217536719224385004586534087939970955365429947454535401958366976974792662882392340139481513008955650986032993867088298849297496289136213385188821305108702713502664068727139979320565268732140584685140113067851937757481356612063921681538442367089346062861186509079954891034958657019240105654862691108945918538180043197104319318525114746936384300655645106606173937420428002162378206570156157950759862828164473049411086245427996931335355434187015366006453271509750970335004939777377385934167118017650538927054730303717675638127201213496420375184369781290115192381435045091490021170517010797104840334267014905204832652376259991544409844632983052209974175256559286880066564746515663739769350559712059894920552732341165323698824565678806537026360047086542799333434567611747684531210631586811349860887610216911488591007641921014554601924174650367816012250043677369665144703607404662324214164736504350950882709462811247997804041936485172431544637782593693197572952616160006805995314476458713812625736287951542989796261940514896478522296467445227632801225450860049504997779631837682785116185487191276948895585863932794029730368997529524110677598594582613945348976391665223861435733359211573149155694728088634617656135915964031853307251600483849333800580046016510486548485332073525929121580671800456711295081816127518079510230993089179278771644449132796923538031936170033866152266605989405279693583766736710872279130256086417102094413393434323309688395142814068029962024379873433264796481669248223244926763702870628007290763112423092073802998318121058018511527737285953280439482254148803707249316211262315356710081043401838879258423893341862168196884621726709731130019592014299367019049599002000594817830039553226471535712296203299135510461135546373674791986352881672298095366561692314000126286215528399217922808073804327903154710780991426378195735271854246987768406596302504071921543661772691126305719738329833429866568998872683975000813650736848534905273246889146087081012449081441699666239262744940337345801114065242636721804326525554792287379124624464555073811682637234983064008274733611099915666091311802367024134121930312106665708253134974957517005569808607769978583306174623254890825086443459133156512556340695701951423494300187148219071740127490417957065049743934065815526637440947320102577759740766596124385120522455913680527054052241985344922780813527854976440564481213117667837035093285649112305833416628554269160105309449822406183754347019084730686755270884838667087618544184124677188603088348320818842655578566946453884617572502318760257780363748240162995379957079121354593095924089885711935363581192817978901698864631520202464828758065797532683046517291773005688904032591046223716954775789656218982654085774547741207022301025414284926904823199902259787281687462880397566348756735139758273821138746910299141208303533336889870281407517251211164592757519804103477901858667821793330886257635788203554622450565487753777062646366673377483328865790208364051231047826570155346413025316007977413331743310830562078554913809079705718123410042562110003387328953167762796297807892766565231993052225789737395386965796891313051771173692836329073135078769904578272400337508392239484573691434678985280651773106360602824539874020294050246016435457160143824048072170820431580023443934925717343415115885092565852014383760647509094179664433871912542630979298061740116677745112616301667263364902787516297502713084209945853646360739812513409418372111423068601775944396792254458275088602553447580674768371816871995542332354088094565847143051942026068479569562266535570308203835701344905286441489144174391757787853725203050669665527531331680044983019165318876625363287262453515438338533461131419339854645342060625636514477150913770642051866133496822091202800003136487372805012049783542023113319603584800075159905371995322609724653319440723957700037212895562209885409281178318651356981870163664757127897441507315275620007621643834139724397225512262080736246775521948501801307863470103023560528114032111234292945624451890222691166171014526287346678089124280924313222319929206369873031689704447198785290122950019796271935710262518440058440016756774051554206407745906302692816907240573917725411269560192566775829998644975984392624191730652554413066598839778347475838787295405353605403899859694289030235735970335367038378013879648324354654459356030365143823003665609042027033196128898341370206368764679399729937781318011786099624777392985517112559302053945424741443915813334457166311368006702960797327889472770984942851431266447307632205884367582938104613295417293670275849550578311758683840818471009821589131239521409169905655933279868203114042410427426172118374438777793521993758684484609351560185146191885352330793568729600277617725762412169262623016411080755999747396812759463218381737035113350784933165811117595990507762575008748160689426822898214575282052147438431922067202644607346437805427151613687852528806030950059335902677558244196317277044346110413393937235164336258647223205284360229472700509764115784495392772345658832725972787177536810438335446384483772081271729945618447195623351214344080787120922710937654779056449590126104600339443394323141499625505961398346485623805903086705244509433848836231992909504522390993682796751216674072568911292664806647044411845347898580237562026384908882469380892196159636434381789773220879387294483944678478067354191063451817436152576756161025331737871628349920526864154325934424479446227017968467189984867484372324507320535541036162746557736681806133918341264998283810750317180803174895239228846914070191917228592460024742186401327483405936726864240090634445567326864554833423651102444944243216525611112175439906083569898700128586945128629267103586827663601320551993259845816473103094702495540072036887587839791478878915148459764082587389853328312710862096790496105876009250140739169554711478880987338453995618851794349890348409217298833244681128271399759799433017272477565773418001493761965153259866282998608142775497506966452744563378085958897013365507854283745004224092312403415326434129928979749347271280609329021713469204454282880314277858311352520058319219602579187814324156140428023734835159071698862404997583135910445884267868141278488512205822716751896453348610825164203703047038588339496681618884961135759578530765697972098965494731329754930382574469827871712468792796771692974389676184910613919413608121320436413615741393427514990788703833876908098458356550845839124735512329891963528818214777306142233078640883145061724908269340162365421605192050893440449050951046817303648413316365533230877665320463372136719650176290593943757059335134022673136651693582479261236749540470641090122238219892710378498768800376268004270955004218241049484435552918265926272375715836585770057108878176929232208696693031376980261964803117162916225315125422083405536421776065727471475804653511381430843094260559296644799989025773475301410993440068281932327903178910966668545818513875414625246136926281517947994046482800922267431043784420230190115383163149311227308874194949162437985081017088756270916762777501355409880857211909627848997609765263971688739919062499599132259811221691438625078336618000836438577547737172672740420602333185517549591128059341189772046671341249110976489313653355799916468037818559845837853954299752430067449604325062754368875048863572510231570952667996199350815745037283889634455788780232093862135816424061119819614884539707037806632976616355774615369912377697298246752918618993450388886791882778504303878331446343201734302596665240615825446498492991210738202734666546699208345541993828014430370663105753173261392051685403571304807221716809083837117331461757362063758595608108424194156920735735799369053535036439009843140992847364557181520523331669888220095344520592967319777493865965585238706176944487397514509957076076181920981403046744134900289993061546900035184109751990689002749609966957695269461602553686553120719544612109442780215847708267086940208324609527697781412788420112784835329315568252512653488999897202967764075728061493381926216124422900624873351193161739970512033748231585291719319755645003022205798781046828831582422192043940628290617790404576625747871851357799463632788103099760059884536561715185178377002064495869991456620987313961725398110581504474084858555241291503881771111797129495131626827573622808749701466692634238096359039228830808854124037443707177681424825196923136115270364405545678029866768615297102738985206208678058459055420106502119707375502446161130413335230491452963851363304646025755802700187480348664204855869415810454960043488529706988251305676771773294929596628530102376004794127495007024484863075785638693544579051503468057364270316674181142987361772286465510835694925681598078697288067659009430273654624792048361774143220012108982854401999641912939445341657287468264081041505361566390500229017026828074060436519816916494528392450651546701982945146198422917841739148794369843167213460207317476123915663023273172210052934908814089667492441635365088859472066250764084615126220187327306253911329828865701817391953123378008432897358776586308841738100975985522707404897417140884070258262375057245323061096407039534977477316046845348370708499751585086172131461737269670021719046104480441504804210094498491887893114229316848029322103422792678445265391370853434710845502153911843199626111878153596180056280212590012177874497211696722703296498377673600856802729772034975217051312662322821216436265037801011497355964196395510794604724698679056316873971800537706635736461811957673662783562539297686675659185290389309052321488816154593069635455127627733539521144285353378673226936395721156722841549363194834202561540575814780705680784851613035397421606025814979215956211018703643127391342216411236580172225976043293980222797900139921725688692116965349716052383591859764336259777107054846291677803383976306949863545217630358118137257171792615364559078677001456290819407727334666625273396904781702278445550870739886617422162800644266578771711815651509763820516700049066860084034188197527081718129485038455293686029559598232791079883008752309815663605531112501014062497798547457517964375686748504286775128142204634083085199601428218027587837812471899790205959115235634377952942832661817284761635038239525866190510829708391171331877761296307591728025497205803863741837261370698639769673610380621189428372163320130814705492233819354962137777062391237933655538954971904969680469598621705711159941196819371615121867215932867054769129571141390293781031611070412634318554772095364754844395966156632657750590542393320489887445556732870505725611553639987800038862624044785607875486299757297887842495716404774498897482090567020452980644846958210876770054319991269516007971369043004011484395813644120063989303675475489856366264292360545786366145684313827386675347205398630155940319022595430253991403235055642661948977987077106086446874802670106069732646780197646105628521527326224657783323144067673767615119503948418480255929937547763623925491660858363062011898530114731011693915269039195306627710058943640162739389394494607391230466525413476668630269640467666742313205548702749248489167548587316207435276955420887029342128027119933895402816261608884673934734824010268646654831104011818460865779170190092740667489919657488222156794170730058637915918200745410445399469463106033896256105327804793971438157857784991349468337583910903324169474651058407170920212609648615894048664434359657458772161594090424087694812105517417165269830373406691113597567735420678873475487370904019340286194378122370275928050635183737767140779548914351658849407978747591980244587055064356607583596144970602719075048827207499711574161104522307770804848995309175963774425837372080830882878602790166454148400806095360521863876131489993257858092837562504602374611893276010870399425317827987089109347895006300503157561907783604567829795747510513622857152095835740167868008857896262615168074735827278750489126214553528446495276397589079078538349910234885657413005281930329946456047181939474527756433775157016676827835535135368361522842346748227118421982710366391125601949830949546597289067358424816760676914166682576927296963122642219090653605348104893360819721514618228136837983160576187863852908346727630506297157727134089862715345134141617668884203443069510044772513070802518638448448549750610406022150715515901630956234239138025108974826832228281229309331183551170246085218153838826593509665012952517859070205389530591114399011329278905725610251407786268407685377818387055489954437516329306261992185280779860062440922561396032384751098947175785851945838665357003828918797350771975993631411306007556260048954059711638980939563973563639310928460332294567995320454002814499096339124060792145240623811016504238867163521478445966822718920544144947447033141717174667925799133892939723512809468787429071373276894628537459420090251564080105002638775928729942379902351364573425341490652664269603911185484612977668005755708298259396438315544411603874254071008927402926770231012273974136865689330645589959730121487183545879526267811975493445122707737149221045424280837419106693583349218773730532759685778577253771089385176073682659952768762023971513388313499651170336198480162220340833153764938003047446258375731965679135637888885248235541189948358279255419754187991262155609806790864746095379581797355255316365933610364967677338230378017523788089791536953241588509060224193558917676708964988252986159688070137432587421751634098719883216549550740263705446860469184290186224349376283722837030770166000021001338581757919902463685735600048970638795618688164636888258564275433307929133159907227691079291887044388601550205273241656429845427594129887341938163764795334717326285140920392634314945320253110686918767930991490246433134790939084476325284685441379846998262807594014556460981598534864885661761599583784357087444573781883632724880074903211503543251639433244947519053474980763899210654478450280151348057598077901949915986053252284289339427631472988226596678419457317083599331913547134073850680455323435785943982473938445691731961342436356838060776967975581027086962618075595599064585732848666094331634553638549997691646903248523816088078488497003593240180925449110781183064497823306576394372439013962130788022339552937028608932999686663189635785172395436628661130796782146365292617640290644879659673614059016185405169428445988217984755644369515199262093393869046723989072816932144845703604791049398108497362738835246071390762464546635718553044233748732905447439479414489310752052180511607068440804894297773669163488550347613215500726293460269163524425876662680131819746444891985308200896658332216909758559628039600683175909380526999298065088397421507085092563231702854942775497695538370347393703866776316083263223257818737066940297444223044023017181768461671274251660621203005486861215893667947888731240403029804437028213355887488877067679192868111157214150859649331478423256775321166482208906996218369089454352555592575739373128183583242172304691201056814397955041481384602141373771919196676577885193956171417865130654196870643072264867430641617631540572567035579876555832844467394144227969204325127156531428388595870645941251898811316385498081551865613355641898195274344855154763536536755002863542134973336482215623365862423357069709167031785444047586965417369307120551527574759053735670830974246886393702925071085987511094701916919929393587648881122290599609152839401749807147786714621436083702854382470950604131344985294518493101170039031363920055362981550337682904694460257195574404668825447793797903320607220734415870721636270098833618715420770811387494681006629017951066285775486513926325253514679499187956451711255143197854408277541051709147985577700421647914028347185915505741267652798417876809634574623410269623454882514606305214402360095059119014846095009886797428567736396995036722820436092008968211184554238599829249163894579166132558297928859792361893541352270639500552818435510644512370814457581407609812483834701760419331722795171032538160026829146840303026890947985653861076992034349809157498968911839446492991802524043876674409819435703211886735940972138926076628705411967333993127306538138725044127024153123615522260746531768170292705472453266735703735928255848064108021537323000952732134189441050282156151239676099863332473374870970413246965110116315540988677801979632315427504756917756092214083150301912084169957357168978499503744577783642820635963640096943200006721120755912831645018492711498790691439118609522416125729520801401435465352303599795870489400873601702361843842230358713950301828018929414486513109090524574993846490199619393036307977826887733304099499634506837073349869189547022636715475189836180117233467646497823422906170777924930640228761575322403363751975626878030232641930059059773959500626419534480602376523321129685001794190002326240719157662629854063993499449914737625508370577717157696771729118073762822478621905900909633777234846467593246186678329587699469466189530828878648613051839197711774139776130551114734930087620579693686917861616187584185655921160638000157206222138076273650324647115233918273154344734490141446669993986728044787550332857764946095964304353470592824303055313838171469732099631591399183955878025937495396311800302456750211634719220207802660052947698173024619554973511408205556208790232315489162858674336873315984653413417965125532563729566411506355971312292731962388658215629784054857649710367303431494477864813325486165775413543431824298903105834503159216012549671608076173770581390920181221383101832927706408337260745306410728418409140664089804473400307728415198170636706604276750545689837346961192720645610210975438802809229316487763096811499132904155589610629600748647407320296906739321456747460561035337131893617828889714767731224097613114401914274231616804684204288048363287947838820680232107750681175122854164944395783443179190519253898858998611826581772699512651581184581541463976743629892365313863134300422648180280743804384600042655005396630893134353142280813341983842464161628342054233802692774920141131560135357357406477700206135044718750672158815451750386085026632690652752223301247538603589830117609177341247758571501348815891725149662339712737141115357355440607516198980415768897358149133502178997243109349900823171187211895609086911717038784013169951269466369976521024136938340766935578562066455485278804107881038682282145714515943181449511654901442055473669718982806274191798701294166086837955092627674381160746342428302401896791113297604316738371566417667048870959395605889468732333344568324852005603648890641576190200319706189476712095839147931358979985687705595680586858974504000292773194048068984199602207966765938194038398294560909757248017868794217940481175026667465617457083850478482049521574212108469255620944648785228318459006201103127000193822721653081929534294589427357779263067925198051355019635153314932985181819089610743577160451679170723805299429062577012161608515670373940756422865666135566383242490962766666283213876402588379224088276135471394233980382035896402893710477876843054025495228349234052652728918100799440779332863413357154715756925258450289681696946841429106178843476406966230369981922439027385490332422077406467615841736135200803960657843846762896755706847500856954423701384468087733649376638892977617029313478651237034585170878768305214610539262153359676147450514787164326461418631207060835166934303451479852234109196252503629613600565107653668213771188722832083540372871697581292951387613268513436442704565347555127355328698890481100710842032599328827732379435924830343110425881164076562135045069565347159552201267698224743766218042452563032365769513633748159193575623584455909844887136341624659220516836639409088309307702072107128335985441598381425027104375411167561398600737881822145895683557852600141783677213616151876749888808070813472389181248251071845348191581740860140559078915712764669071021041259641269512987433197038407229388774694182972912010910211717278704663111096655840672864242802909022984993600443631025252789279713366112278589151105910298855511958856374938724952978113271172252482961400269882401859423783826027287792383904008828686335647338684350442182098485449964903426285836356696708380690150768778195895552568913112148767604681992242124486601901744020217316542153358942928241034244885654028545283383620851330488071836728404022600873372956851203704119587352134049136137620553716713981473382854641393868449948985943636551701116794295398602697744864245475090989266472223348355978439106704264772804220099268291931183485662507206497707829379771344859930645306365865883052045637426565376082959674147361176016223793868390065961846262565867767064773363618286735345693129887383942437865527367051513965634614227472672322605172588919600478219931405148050555101439107973207963508438489721978041932374647802808716367791174577573078627774800501562072971364833643328035638758189629379999351819137920662651803235346783615283906804376248932952636009639012771009802360540695548237262816510907252786259916572614342714713977728323776861278137668154823291775149264478333025016511291870810705696781672115006372716824692777478744655140504741366806836650802617922402598704053961097065364196051479975430246452739751319856382526909325722681376312974234740280466906573873772967408900354141981618920044454358817519371206035078828920508989618627385316604933454316005241619226068564509456256633626807398244564581353369980738333877193566426269425189926430022838834506898089298627384319755592572864831649891469814947329910114819132396501056416761944447189202058465432367706234081666769139290931909770606374061308473873977526014354824930007197874487613305656096680428839789548164086168936462636589089293949556157744119472600586637631497652115935501545396928729321622114036052441545839356547894235849381412947839289761719572762219368326210194191802959716026833570487297660830910205340962986869329803130641243787226696274829239311352370196235669914719343244495454251794751777597066531624893641405683144401780208564607959840683203984741194245849133716077128578402260465645446617697197416267931352627229642825403712967538503970050307217574730472509355290025335169953387552274011987281482451875547880441953469007135882023938285802984499986601652346281021949623502976968746895969754127331592871265952850223563884522236269564263344779537130607467610387665682408338823516658658049393512752992263848704247841183184417410876956227632954039560910643873274017413178854133000018738794871537038177359234133306122456569579994865983582289269766703867579595963871814488533483755969097867966723000486304913054740913790680701687469385826151964200346987787091723028303461027298268026983549600052698787919589043556741331131110590826395776917766534451297394352622823602480809915782590172428180609787281735648953634197968052157135812831126583287308255783692041335089681110932047520607185518416672068089484130700240037907103044026290786888446131431135941603532189189205366859588465594036387142245636696218914718251220221933862972799444638454542539424095918409185641659835863029645070170105625911738301148075563571834096079023206771450263670648115720006837757110873261539443403502651201290736121651285555140601767842371040422722216296723913840026821053204023547566388447448281694037116634056426481213403516261798639415348642096985052329656301463194367608436801315573379012868764746205330306255225031339093508433071046291017024804720213957646579861011221832383926654732550854899911332488775703530789628685960336030673652480487032317812515260200631033334833885638746904246648518168869833847658317620088977510488026057613015863594677247722394115574811948043982165026844315583295589033334872987858972818077799383350978563295097239575715093613961967355246686270805234023323624612853876481005897484306358662848084526228023536355308779559281859157391660392072563439753835087126909088300353931289929422601764260024727539645134465472646000775823947931865593000180762826535869399737610090606569770320241706307338450255870281161574056955691711169831699605580479703698401256379295514828142186483004849759532906563188575832230444779207680636220810302801713034602473629266415282097101387150840595659547437963313979127477411300328668741022985448227068731317114482013872490252589798659937582305305794390160195231666961893245822704806928674486438117891592892722610519404930387043934803918165058352938758744921887465007913151832521001576666950188412149380954811305644667495399756338267102416491511343981729057715294947230402078054949242928900160137908438080549205146894909686269551474695408729093954420740350656125219875858508845006764754758204319640659001734157196316191560891822137644811159428352790434908131201849505175755715002097588499355950419371153999169941342898774819949441163977033758014849433569848971882717022132875356940420281599530323840790220089399836412929203881818803349624775945905457139363623118280959159898989394977051355448516785704575549065711176079647608606046224972331436709337967298705888957561137003879814521368154063779707713399583757671978448493194516907104512952757681838627014799932603690824983576239927883421108118529425591729581384321894589523429695973468884177315669350742068582170408247847341366190244917130024898763542545585016930862102689277896351086093706644924409691279955443532590215883549057166929275791203556738039152239470344366644718106042023733242005040289559488618617631000438530564202554068681811170904433006234399841608693744423496272217557390336363218666935682540517221980459822444007563846610419997754788887022463199146390926882958320471369701463234845996951192490322484523144600326259687382178247665196704214053655534366167636843674425156114725796176255922941213959858612289259247678814446348663642335504215856844714950685655583667142831082274114676893089448077930643717214925610288868045537869062424061435959580991301025083278687895838148715903783007922959115666293150210287229311419280702789528199850225361087637657631739796289894293914244104415538374950461970873848840409548421613171986608309179642902192193764119509397971015494460041667479167755745778156115919343832636655861939228752561073702480975768915217216198726278878511235745510568476474837455295641845189639502120351534809568126849368785353130995708054796369899611471226904245440394182427063526156919929337638077047234433256271065348247280339441679781483782866668441861711064743706726858304580470251074199540341566903810930832912901014650165208806278651012383845462696382047425793249985800212105794166949745320568975952450864000002014587822040279774400425711697325495703398525022227844719018701071733176150959553180780248632404398795801633458317633309678251963543789344623988397370887317322211749867703230889778546701164677081025669976143470873267912351105557341867552547652650328039183514874634998599869556840848995200249688775830771336752588139409227544809393039081634026492010522656039887473849420425015689395775498818287130182682587949091656091185351220573256977104613963684668795179313662209589608510558469152284081344872314830598913125213337300882956459460225644273166905908777775507775121249826003917229022345057468476161807159030111331536800354278204578153590570703068149523199864623741363538266131956032761952961126160571158143159856784874486871905027712874332457081705392599821300039986543960285209313628963910857861827407847808128655417603271869123697763808695427257747915817305787797509954876606075914355606656856648011496721662736172409309445828080529216822526952837080756331209717055799163560826809480212811595775727693322191563289156828738521249805124399700421257897624928626554392345619496877306820604210378154586180626999249170812210436099639943468111724284499173204302403360098590937336550307514607081533220994796403976052441189290048236091641927570023809735757510424641224026719466812206142449615439488028381263679657911642610948216469564698327964506904490899936056606999100609444695227090156426834720513593693996437825196097354271173167511766778856641442888621537253352514180612665075272070668971988186598305139305668102146919139787269117391717463887177235525202445127070236497471552625277605576836794182087422503726083332626571479206181724796361838129371664385162565132198264699888907250162304925841312283372339164626098677191269821261776907619766926636972222954598190396019435591988393866816628540785199081182652528177314913295864226182944493433137631876291354923453707769753770111153766968367450376370446390663757483791481248873056995110278071476116349498112038102523021646150850110056475560810480451630588481125959616865187097507519922290967426008950873880611396805994620098765256593094937575964202078091133196219484033040948926962984231234392034314771467391067628458609342326463215221156327009742300754397964463559234982477204053275694317168946360470519841289765962834205775569212466546373026631821908636141486504402395578107191900286519860352962148697738334710560794670746942778395577746193961356617148631553055586288130138528232766575727349835959971251686105701276773608176494457271042628596891209888714185228867624028963666131500283184435477689860359958370288823109616721587717269056018305485054013074190602517978890361981089382018228899306297318408739561252410943212492795985268407118977018533116507004311709445756638094439886727194672676173902583072296441950532346372240470024199155246493181093921743624468271830855698149260559825194140634837222458734663708291197853080497687802402848680100075186589901528651126576238948595657916525172956607224186270733800232246517227493586865843717709497242852791419305593346694443602498490536443772549160522599492032934563055459454103294164915856929249296320756763567736020435502727665589172170246762950286688499334587771734370969791344117641752440747949734554035267497360479057860851668549358600554691802145881332624656161682562089334038728284324207650069924294060030904164732432818145164001705351006394679496130034800483700245396277598967611876159951868069867581721902912529627565359184701435364333040575904272161093360389869781157336521398806187996359955929142151664298557834935126068683845614969796508747094176820060118627719291574879246917809928358225588551876073955517412661814885811882442970455794446842358777147506680537979857369734152892205372670369495009088218466009970004835129451765004982718971692416386012256153788010280473511097205466010020620946308772337116417869493889800820199871960266460231147529816211165397081291469232983782618897835779222373557367628850083212572526773080407951905639652043572723659345416401044652268066956067966995418236904427311416097804283882501363102804618069699598502948351200441940792267418666894634941995848415715427840549119373495008622803205344171053281846600670216800071984089399039015009027449552721169071052818710698948436731613416703701330975720232074404747712208134764485282649328578859402750757012304557517182526912608176956631434275920059452284376495104298879642015150608679523291696296617935051371389020823808228579082619262204135622572950737389011930641826265553825887803274126755606081084601458590550823667465071854623263160702368561089747856327579715932590322052534474625858407647684199064538181460911255635849446804070301220225401079031262643141025672897291959170609408856445854951919169895486449675057499963692477679280136210142116367635869366749426961563600076121364704517791663331931809582943815179940996359883401317757922061426963131643100044268626410469824466885637006697793582372464067394001206373337425897509944524835864776814915598370686609367950259263233392350116736293189710106192798991781227808440654039382075832908053313885492646653393468252049338186652800156333104207684886249594030053414318602118836215482614481247925459706852179464948950290528338060283651233776578199224033516741562637823047825183197920303163502736006471689253141415827428749416158015338465631252830049929348381218499550183117009029940572675264663951240077933145413514622752403789053805062521787476313741986099715202740941899772446876468362838080273706740188736369997681161302906047316232698706073843101249082280170073548490029653077925665653987948656908362171839110194171602745646846931738253701932422798170739996355387013784211186499934344161793373981304326183671423231204567042329047355803034216428983505986561625657742517115390691021981153860557272171585657928015295021411518437570218556058009533087598759820250136635445287113513729472600235723213948565298941255377986803014444495670030075512130767540563468446241057101413393004065642731036558123339972247075285345110116067154143542011946613288792394039197583664357601601090902930493555018864837407039149287582958554292279687427416592635598486145725453589748273352451663654079902971460432804722268344390897788490035320701699309307613562043074017602896968583154722775454813550717403838039407492582317409305903150327562639314731922521611593078136959029673470321636607672214702015290553189441990551709860997578990121449738868284314058467452978592766076261633606094119329617098365622960999890545918993761643687423783744739757957690857006980013926542817039725940683263959210665812297660215218194232668861492698797096977129048606165127203980223695676106267613205082476288113850877886600602791657847863135736866102071454215510402140365337281238801597786737809252495538873545227085829765172781066461533559324115071098304984688722043073892203483530806119085167879427106165203003019140910525112406763483261722752903553595806495476831350986163734078985857689988715610558311478882857380165283235146066159978284511157671919600326927428040175655399054963381523751958290634414689237063572064099126123243508637433613511810086611593753139981212459001417953360137262939430800830867141333958769296541905971644187418461855095346980323036429753458822978074248581688890706396652445689796435808554517464357524965876366969235032746533963855076495172438525031758102599653069776433343821845145604948215855335118883112634759735010980931236863389627576711995005265999669142709235279255687837080563030627824749905356677113084174734041406665212167641267792906869385067232254377793316647981673747057883754552467572682383010353947282182585171829034229762826935890472167412515764221417678751632501089677608146969019747497333744513614712090293877897620146386958980149039922777050130036361539009321013232959837674662796706758954989460694158596561507324505453295050201064479606913246665432562785692276443017429320598036717331736880590862370358032969576028520409307459786678372488615331251166759223832736466524497113812503726218793445446114676396904207452149053446144837433716777550166796031968814578416855548792007681457988061947372626815685136915563113421364823456439646962642430689420614449347335973535398599335982371227679804813093231625513463771693083602787578823526693626791557424181795879406342133838142356799592787232548473038655517035085934929605090942661880894443145533714539604705703508260483390223342085032183121256091813029444512209541356714389174470461566789583222484657857180233725666109710692572380411108433617265273688942233534119909798008178952245648557240298160846899591612788691875990637919137118813222222517953229003056098411716831677587751280469368183450065584361129737638919044518296048431819936339800882134749957112762597491535326337904708671454708233763835511278060233406327359064170922479761181103341281472082720389914879751825574194027766200327918538737655467954863811945261223496584333329013816105216881802238188513411293573892159513217802477453060176494037862944323649058122489935783347820301069206868781399207147574943298846975483597109536515575078215838759126618246265384551204163230855613212653649599264813269517384576244085076663237019679513145525719750049184307659688913287208093294516644030472530135013101569220614995564111533037343568806693897297199382855512236497555592337969288853187836096618151664787092446600215242521375316539396527796248378778802120530186788344825194684714942470482913824979524340977476150666429214337348673269172605286601740189969942905856042958976249350547256655389103714132249761666248975461083210949219567472148579382401053851259933483169884224717509050617712270048889010748280294843042621242672026990047774314164241174444061623513137309057820795366436905389702107199748529847469509285888320995143653149806841443167712839647008183972568708809021816697887417323945969545184428112002559691803905837159912654660860004488269586627651152425706336768697442621850824702585562558552474066903946993926531397495990725735576003723463490982124513561428219829867671506532267196916621801430996024521125515906675626305342984859867180799352891971232193726553427545141110693297382302441161301982672722977187735143685903152585296455472279052166757268307293870989568947213765145190758146161863270163525480394022736152202697779608384067513158221932710287241027604510358345684809483367348847466475359006953666777695712315910758049687759512450591992078829974928755986172184315048158145731902804614063107490586742729812698180927577026960222124805442571092391569491015436118682983393170133017243625343566265881269904252591254871768041825547306840956855339387775160463870706434582672027626313234820275733832420721446865450421158912465898420609381075623441580154622665320939997187806660537335823442214360021652480861885605302736004557717101967274706608778931541824622789397250986383826750556511846325575274403370445341786980688617460931668050456922937175941612890964216543574852092400192273476373827467654374945407037041339961494842703837339385035252181056291344143926209081357740926558968865758572334976584217765928404792563166738455775278128308872796513521904917407791595093058277693174262693215164277670833182875683345149385362247141643684070599254826319616277491035179594902191804871594224584369163766229971387677434886339962038068088778897321380080744030796702254309282588601064087913641947889663370414765123639391352888824223629111595108866985603707921045719483468000617110077003179386411768242975825527801487486553878822342751896900909663424701829996375274843258771703627523961392176206259837310280386748679977511306323769239882129991135935767911699904819615314693769187408233184597672349863679018754123040078919581554132290208100543693672150143169630767712791490221746138103870907465942335402926685636146547742067831919522104394415260253784283463981640125615744313324778973061876738209321425726916243951707637904843625294135964626763705056162866135919909586460857724234165007798947810541557235295647936537778483357809602691408136162782595465769065217340603150151156831084265328990472289989703595693093208084728464437457064901831224641593624791820347207893798834870399175979333130442160496064802038045387158039445242508927906777967262114933288257881716509959829430375226229498640830111357486321051779287325492474357084565262865723217226321340700307513433605740425315326295022887831331621330598864023902714698915886373707841305065884523219457136573130694119551166855276695771369395176531390182027432872831826145610704493821019619196467333862645532389248877581794163918913746042123923395913230671911032589960771203005190489032860519441997780214940227784894495556404561847352678523601170737476290891614218922910462879339528031612723251716045654418817142622841874051788308361144590945088226750779854127701226773763732245863798092636802340708969277787480790977784651801865658149950329911359844075423574732958126845994387336652586093146142153307356571226717884148734204024951960057717812759179404075005904610214352116361262113796613089956677433305235064040380343098387524139270999515471528756963932571719873676616280227616547643030654902941907226662741133549185827452714612448572364855914211368634063504811773611865545363815646699179703687150992746750962533808847911408404145835088178360365650533917509397516090624653556906926877547016698363118007872118153371601054785815496850165583170474899687234021148838268753043517171283626229937429114819001107902277701460457674410813949972432537565524242983826687118737805550894856329920111780399708886153138940803118841975513678624104491858462767179801104314082672005045241828200479163269685689270209747175575464274483529076796580571449898513134961957070072461590761960298909709812299008294792410506846256510400899605034523222397498888384795513470205664650838975686114849163797985035461558252264610720744868378318101857289177421613280836155317184687079764862894844888583152580384252214379693970190652017317336224035957972566819620110407463823392570653692461511653053333789659655716547648708436459850963509617774116084225631304709536214190142560196412234297254821202563695591383765642938058616602981909758197623309008789738789084476290130791201240254341087971790158919152250090606380598187383631288624478697599012604322118530665305011944163813423242111198332256640075588003125541659316190391134879822390272079661891304662289290484900695364281997122452054660050961869977572835246161981001123799303075602424960698482279988846978610361875199677850145382483295512908473435845308526629772451086378817401404100742479565674749978073772316392158828948447375371512997515434580692511413808620151623193853433743556079915972059502338343294273414704876510498119090180999551946216057602391400109036599482650254216852705956432496099098130235997159101555271077742009026470240675925753714749963394792860582794342926354786099579664495430676930226369179337758565645020923155661915502812093932585081407196668058261992699548336727014289714663923750898619596945975244384265314585427265227851451413622027216249709139255133960767777625552326685186831779900791130529062057130158400393968748353442595000644622850777732651766150464196902544035241641737179735361124094413668088325614433570534488521671081947633099252577559301682709362374456195430945831606447141033964264967635748176471022376121189124778823744622770819496195744008747878541249923494946227706825264383271934486545174435076515418309025833583591271463374733430919411766072782873241886675212864803421828495807460306514042799907033755263524622608573879260502040540865373676904557014889897211628708806679852552419743539957535017989858760308014453897447455240196220087694509961544843305085629989842619560462837713266526886286220838443159145808479849960787806379152541447203620877412959289503872156591162282679833717352614192916861048786449230712842973999446625690431274925596707284558903339771076766845349235088933441013711793739966818947298930677153559247121362991965782922282425605002086174648298269871425860577656076900591717262701917552131406218019148086268577198399926234607737253692474805949627914601761039392074062259764082370710090769674754476101876864889786998570984157630772989435449730307708040928289070055705397376374592688442930922984264201563247656611754249011952537127432810410092274277920995427040854367911541909795327770408120452779352647406310715285998943119309299725957783847859792541120877809965231613883693305475984386820401627034422437960220544526856640697666516786280169487353949088531997422929862711093420765180453883906233465919426431906221157530960670535849435067936595996428223024972512152182433437972265003575319893600113655043474842487140565156741545573502805128882014007967584852052166076523082435836142658443643152217560336891538115479647137587698206463248270608573673458737410531973183275371284307531771762690395032492680557871996293238872090708980707157655438192550831089390465735986584311373908470777400655465471412603497126989100468966721206408019622249130875350842852532771453419204429090362151561246801660766729680346388505732702196733540647069905015577857582011439851083649290855404517088751835147945365191595762524995223700164532598858437757027191654403816214529078333602672859920071419725343863155260920020047222795120203844632202162933829818005592379536070135474673694816736578976032085505057089386075827780094246298975993083457920405456534369245471740661510559347334579592140221777296770105926516795731472205133632212902523326150972017546314075019711120842533050310244968635969570752029325363902487660203221901793807255619719403360663419611050929827824590187906469964548319284796328662186219558815034066501136562247093213976579387409077719029153610082505839627860103119937598458877834071158741951292567770842433524635837237753779350834282945521213772871697256135714960553170389903346883712478521499662564726783138200855662831149939944991820262176038948454214854137873490994021868592060962391684099057528480796833416261172535290338180609698724503180162097313464643109172743389760196798944474703618296213104087188320165347896755609660255794438095517965376338711516083281915709440642057833093866647420993613645545593946447173212493869953696962682669881223190876157996579142815493284943207658592025063639023247120839622215295526153495634326156557475307584274006257726366322303090671897016773801779110066974421957071630642723320479251343157540297724391010076753814312617735207482860059025661408455678474218879520153619777495350285183902993921448366337414434095313047107650816038406192214543449638332245719764768506074153918397878643751983285782283132853504225501683997953148778853847197123510904071436167625285522418599043921603695923099293602138872231010609022713187838796829144515840860535849016960959326863128034622540444719573830659332373045144328134437801326045148596904027760993483846735855936950923067971031278714403430039124485586535724976528376526176297796410300444963157033905196075068564180544056577110458644414652575114164313165920779042433445861587507725296582516187922258510222086121657738393084240624328640436174906711265758996882531626033364370654681381337387213406916004259843979153869501794316164034799054075443668920627745245866693301276091064672804278510186745958940147326188792016583386135728249557224814062250429640357038853863484046997812556770862882222750143202932705345074502781071358712536819414282306682087097054807400952845237489029598427046347575890136331908340179416953186180175587053549706134050007424757578721492315584576862367864532342273398340008197475493920482896543908679249827774844239118509552434752085105056164223076851555110362017957659810573330744063498498004375805139586320399843935449247008732705961603147348780846417025382251276252284970258130033735337235438213215222654342441022029734153957449341345469123713756227333022250515172836103489370640221702581775014375081589941233475655227896792581592438818148943342548294219390223534785348775369967107870627465723669794338526742582387654019725130966399171095806496277418484188284309558053464042502466845655371510738115794771538024752229997438073899730844085589709187082955261412358631967978240389075104335216715102045844178894407692144947552699907730358003783960083422338284854062039154449182085488865408947404472669968972476108185322931882813849129438372669558104366219795864654148335733045693394155385897128371430016688227441836355335203386163920564164289772729467737051217573949698629799350438888143992760114177529832453043995186606913425883690540327314798683197315396951976657043466917002080295735825676566876663416837803367048189975883632330198665690002477737414535389703790598342615419999409358218415294864952534849597274032929196967501914171443752451280273882736111135705355835767709354242400469294850670928305224955417581516138794810792519506768507758869183685914711118647318846785067745941674673993484193192534111756039764002072353705296438079630401494536609232686079190126169010303585314717994891677123518245053850174453433656350708669763073710253135106657802814778951657017100996937287291816347462591340343937543342611513851322787819631985034181983173072339495313338451224953929808942103704919248063216182743485913915658733268223536213943487686669458871619934517950446324590013420649961486156432189795031549621524348615366716159465482285851108494515095978164092794675812848502985436836758438497262590699025228819618334784993305284001738640069319668538859786480671983254834329178416032821954184842521532025956513637207136062046881981658494835924654341472742573634922416147354892830280953507184885539182073328699731342005305215611863140667647001521956503859179236545784583957923770232577544444568145142614270575421570797777248128078175419686887850972644136752264625198884179241039590324406202020572818546592968867766746270513403805561193698471996494034733661346514926148770775750133773667135590695803199101638951409240057014927495743970817099191564127117209763149854329485251691363629350638237472585209079596194665843681377934872371120608302498399461093474527258348048898487177955933652928816614077265738952644220151527870399961396250442084644435930735143214041616562866161748361093672804218540941428346527360660647836785071962063437149663398656607297802445761899166140372461917341787113519264384439319457057290875739413485533946207381527213930801587917161048045502000969281432963996218382394179709301746669453050301928410217216784933495669370327389017563126782660106965622328892138398414845745122344008050602542924025974016475362236757205787657769188600507800569054821934565272674318823060986939969685510695865582266426915422998849963350320640475972963397914408902971354846443889150129467013470371755040137537583322153948993071398751627691374916159422392937259373840290974043267602556713236934911962504553622938265980222730347220653251942665260996870799162633747036986871785642503787858674575991042967677193375360422095474541066966774081563876963716722230096403009867465221180634601143631808155779911725194073789241537340227457071756549119717601573525468241056858037954934502014995083045235428444691859982070949928406287983854354261511336128992223094283722629167915855085688020322723626007905669748132770689028732654444828384366506071164719562119810004247260392927057564675503219624368287061748508966465648245033958867435874139614482909766325139291562083130904909297712770920419410259999969155825980774560881738709052328801416610434797947485581852214597266640307128740034907601297768088360759968246998931384553184845963878053077322224494487897979523461374671430157937743343826292749835120130837028386430946649958101798895587854272861614386431040388139918248196943129911448649850639802519475769031716802427799137372925687380923732361896989793871043007512619395289662866271840493557605751119500311419800577546546904326537318091324058295115229571089573019426559516262194103245840071002689343724671572585494954844740397226487929214854605439224248610554910346337144416798224572323393417588124765556919860413974758658221640839519919310542155233621938585889664500044308967230330292256046719307789333174523725213181188666538717271099985852398248374646804545864307091107122099394806813069318548320646105694905164559695961931433254117068660658626711271261720725516503800090487668427517353430104095135663220369325433364484432585633590934291531040668741882154362949450493323819638440109915637397579287193521535713142204386098467436487959344222777415790487757916524888123998817388920397900697915604298946217216097766461254039530306269425512053152091741841328785557179120802779875366882138621274936751979181967962585154020607464716300584317537167724672366315704486122162854006961450134963428018997568977234902575694501641085823351272364366878616712925608977579189873317100155232228652282697048201904388715166744714461371210354144980745874504749648055440202834584609250249769891889813578001305608141652978366257662514969439874878189791026520390066145740143526312638648210868334526735620615784461308619473809130509173529524132154940078024910077776336302025148853343633772540104920110978564275519679927058182482506703798169131566182637199850027112505660627480667264150689427813816230276099118742550898323773886311597927648035491588775599834865179524149800017805616583108731692752929241676896219083377438287304969626716280664573910313802490864879811966524338006580114254653679152912499719354326510754625555607698038529112375373341527958001895174188162588804556288377145750731905457522827561295634953258871555711669098395683929835882908756100830585516482435906483820197771120618545885500273788846686146050095449309794655224935675184157843946897397418626743639488694801752318560433228171498520516626232621505525077599935584367553111060079617542746275985699219986235933968986798307411263490779079581417143511070668813275740724354801736857204848499704513212457795038853856609337805477725002734802068356295675685648821410859715339727745844990612089138469482912845765396254924765004721061728605008204315149171055261800902460823466964150538757906087369251174895869346923562948936789841661371741416843339289433354323582028595105111115457424227586772047011394858247394970634578272168815445527859127995719877030642438572054576365626320413380798370571212663202485584435572324426917256191047439599539209644822126079924668614328664006745976909979957896698207875445644418830365649262443861728361343913102066737879624501965822756273317071316794528063621455998087349110079591909814746753337428497893991453959078727372301976498062300892140579415725366654266262559631636071358687989499036769126390985408994641843870640992364766379377565890718225488565637656471507746839546381007621933683246544849791719184439840901806365943486947976153138162713659029102380731136405884460944822487521987859210439187609294898243237560704629016259580402059238118858124001443206093173125269785537180933965996662224740944356643871024539238071686681139787330909322034008911588447776451347596362957598875800451291953692037548169622365645217922019862616048730589642389114054603514586949429595324483425379823742509989421569395561700287903521658876905888079636599207777632949842738201997329260391859743838903187831749875568879060313586325545044145105341490022945972087666584891344577467654503502564357321917785896932261813144944116910711610487429177082965584643387728891482626357090529186852998135827827623182741895487481386644867970635736863306359856996884661578748321952248208597868944454692671632777818125677945398331075695485222966567601052130369977580963402639882719389277877725573461290194259280991989989955499102956043963424563501885693208257376513187861411919972805869685806883255017851999226286352172990659396653309887385005819433077686122119283417898193715135080127563561037700918662066228283920052351473424822419849752460585430402854513881341828296684631518088446437503416584038564026032715930366455638362120179816567931842572689132597866426089876307766459332641121342042105646803562575759136121227124774316829612958000861354203090759343538421085157395822146982737420834163943736160164905990849046357986084368408649098028528954738404887988307918812947925030683340031841820742994776549703774811191044863161256558168561610640519885476358830290966266246498182128496035957515752469969214515210231128984293421126985353286404179268850133969373802188806623061134678269288568969366640549305640287160695169089861718728417416735961854469105449753870772567055222336434117395810701748719576777899044506378589933776515524770127281249154850688652423944652341524614989350863297922777952366678605172042922613904885167356857399690564266230720616182280363620415506420138982408936622031703793551859316111022176625581990051585951414624913288973566986312866611942324081741526957908930617683891502341686602568392240196101938585060925810972202964928822072014228093789741425737981116974277975224432890280017408937095474636860156136019578759002539637188646726710248489285854293251119682719883480989967803229153722658024505498802367182390725761216144383268272810950199761395070324721436403047666626166115425891464002365529968048528814257625039328814874925768087588759347969197942203601553015870912455680378486229099100853076240685464653131941309269224756358623104943061436794374671495017271033935408303605471747240912183405246755347624364590907322118162899633489767873327322561723630001817919049806264500581209109354607600879062208311030987375451278530736456141363543921645284299784112788092537553526020492517219997511730469074876964086198163039701019132310349265909919008840804517793203200099266099511132820637745878000963825666267542525684821341756042706949103275269591701629500247768911681473939978658605795675192893780584498559801267800594521579091104232400956489174426119083289131115151368608935044925355225376909778996364153610016485664097954492512630141274477087218183228975793048215986260334095885255819920095415562203754862288160209813330374035561822669204463841701550127649265821957313140035174682893983350257806455635463563618820118978032590775604583059071085893559738329594295173436459689628725341040328900023556032996093550332786195246280040199985967894806400252517283686114289421872053711310082853986687693984578356118139259398121182864190044405948815084744330727723756383418290961393894647412374623828106400797637818082929395099214197205378133261949137399410625810519180777687919386167659282832898168136392029768507964100209460587751853650621583932091301999249046717595062167297199462790556143784428473445280115767693912153337234858660520549140302924534285161296224877946946947643131733541921290162579725342657262689695869204003919701199395687656355788406907001553062273554861833385486179434126787033096418917116951914909331760848004749897995789175585940039094601453168239418230062373720461263778094143871906108124617480646426043048786696849315679812628277969560277732111637635083260185174950966884505382882764760312543676080985653858304055796126919780748230421504391761506775420206940135627427573536033731666686973506406103257007804135289846069984555828544011148588326645764701043626197529242152926634104988178032473127196941860486933749734221906108895664586354752102365051840220176616162050722523813867533382324906003398406325541133479304884503251395956362524228263397649317327271183655711041507266525086887581923165366596241304358904379468771030037496095878570741267535078126101161095358635259284117124795322539157233892721286094604324634442556867301423955072772685177596726743442471396079596839300947150354984982510480348323189717490679079370605916316460252173640251769012858449034957029336302369421909712388071295288096835731122066722995212442425496293896659194046228793621340702201675491064194433594039318271002389035762668053574701223990936952028840893201492408483070657494001881974683934612510520901676014491589192485361525848800183348166197611454508761125972781315816237516104060152189608775600046808495827375791846818090169700405014647456046716032441013323177604698166917856057633832059062792856047995632018933377661111731614201682797133827153673112502344276861109357454618353212442714653690083754887554265097621397610989544848651224977389940508199134490638015818038217802035970899898951014364015699194819499956668624555263763404452012989011667575683614977163791378203666693023582615390408810503557559571501218858748124672641992432620215234154313250296392719014941028941183675144231376419010245831435510350819064956183153348841627218839011009902748066305641753076707874161801935771681041863597278975474876597854183165707904696884996601447348969906031034119904950485470295383377211203971890293963086192029172622419179719501515372833207344414228708058252635465513862967771857454567891925506357023974845436423570771591569121746259201723665202094878719509988945723750586972768724576355486489397632412029342663044282318655956607541857884157198357332119545484192561322081745767662006240683345139265233924875823143916043643140134871188864591386382516722276996920768523789067648342530289583362414580609277267412337981847917159499218558263336703198481287169876210523791429361635996000715214251014855020679456714218702134583748500986034801513401563596868030502887466088254515612599831557996862385168056878380444086498016489478586147112261908383696328690451858700630134135356691401526631939990163559972547315839797872995453904554179597920772704784646422952816148503606322836010794409379512616017239011973608338843383025607592871507502870030124792884441434183560347894192474850656259169981007053198857408029846890513595474504808358017437990951971608112685880789364198825879805970132658952810392768546180324370738661039381623810746835794293890690992826971057943020874786027582537767261382263736224190219911436233067854157143890528585774253664409764021463092035894589970094260562617069834290914588187821631210158821516121928894359400331347337326149469242529873431997377986500880867098309190112429367553757825760632448446764701492801866780075685611834774570897535834254301369392411663693625921277256062015899697205467773690970049886081041067304444621466388292119272874780985964046847731448562097923947205102684979843537477530530310036373619566611560104782502386486663077067629310694755404232520294092794779893829354491919909603204535889304898946413927565982832195877512391716220851037835924233938916663919976755982957239543081466370987450995766988678379100731977671384540070716680123609976281212949184382552891757861296914180479964644479528045184603904472358734797178068500106433040772578686255784403470865882875867036384647171802944584029228162554386009390720515955292302739633049114441301148595963153076494425673133982841024346481627208673615318003169616385922256501635979060011498679042039286703443303855160050446863638082297524721698927855991472341092638911146199620387048358962559774093691486904712381913597720049764049654682448526155578517024302157145071248890173455416597712393708095815177804542896726833653637474818893999354707742852363667704841137158593381493043312727783893366126336105622029571428880151700507627079040250275538459433358227473183860279039129914074005154964624871909165100250532237418574716653073550385966890645898426547566570408428044782438615857437033773091269012755458616942051999877039548530674419776611144959492251993812403390387404942380955873799959440840808692501794055535627062182300279674660319390093661918531469549550076808554453157408749313676643497372882441194333610274868522087262015665123857409935589971418604542179218057807202107432526243653343096289836937538022357386171835998865198408142410781045169893846861420819773933473760440137901963709571765723870115859540690283024701404379295725949435611758143905278190010718249686908008088490596052641694202712832609328653732705199085495792113061764557363779684208873552337354665198093864650026183303888838563452509648088845310565011406499965384306461905819145267993658702739281453969548803098551441754597149258199453623509396069685129123316630559115995735095329212675467609589677983806515692402526868546682219946404263305486643208614524534835220156914617836180268603615606997634560862693311990596292419659750358939977048916986149050160400686410196607960659262013325607382686001872572589937787431574035485530975558070858258208474850598850960635022148652723588719707850185447984904204017571160062107220977650933080488631953836208812484205920068074743514997528635675407127374544606358417220211197231814207223187893123112759067506107152394799725659316197823955701578290758521321285338172916153224666266451717523963349249420201232070321707898903227172236080999277785871116154459764307791214751690169560880398591871826031084691757088206332693937876666013337960003494709599192291354534426275304164975453770555677174693662343355167703219010129865031577677359195399952412725403309925026414060727435820809436037402538092437895540186993918463148428848533150116139565322217794524698339329945029849180130174172638791596805341210877984817673086756196771196374604782696506244509496656206146646443556471437201008565383621987187228510847221839204252877654395399461724785178314885561993828001746391503741024354505414905139928671801643075771472533844804424487987487784735596179620164959772346646183432987128329079186941403246636355753653397509707112821246584618549480295229719153571499800074194789439008280239723014157828037605999910491035199917557563500014036283483004801675999046133173426054353301811664826185487163470124514932358574850344469581383051846791412979952005619384903054386812472891108565093673270190827764658831049825761930314281765533218719489376029027488607836098056784420337707995976307482430495603717036765541156384933670210579637444879780795894811120745164129159783268148785763889018223501720247656848644524770725441229018267463817638315148782510807838649344521869678752074539558216131367467049681242012498094768370185113785055250613048445659124462627852913539168499863160806764567737641897238601336722342309008242670339164649957773130744513156530050323448923765687798689412479683714654909017140395438286039906183426731793766843248631360700808597862199254778842861497196830128782271745117101609573086613802960836112090661986978388040340681250905412093074838945158463425014404074776006115828101538433577472486495447794766986406572037252218155855390283589021297477271556692956179724531416522235381504898827299250273169417126407233564149030798383764009435338145083407057023340936867018492435658717844004630007704146326677567272385913818243890469705623304271417529056020650556241693600273560796592754374733455057425065706822366964680505198975214795365828300220298826655838487309408540632706679179653231293584168754259168260051765875554942435322764739544777363922622379322015372492906610116442380194020100806484678848584671839365457809392626334324922386563323038977652888317388695601401309430962599626642554200616100945391648986563425483667248967894890945036404761522108641372094033475212905128707482236183463317569973355969096574200545111945316896475669945144305176057623351138243632014779279102842300494535465420466838332259652552495403308147663469424030179845022342729060036042654868821174419535493941994116869440520288382527278215986493187036827870537383891083968503351788441136252772013553987781414908381224211080065900394886544379957362036092945736305033234926138830086874484784606456566371891977778056363806839772366224947556172705467110188964417835756555451023689771570151898261857181486546138162184941788709035585234970683747130011265332996711694843242918287652748174650865456651329768522657478858274989299761602105220383060911653469387402576349366956833060731167639684893160132763812873334847127391231119763968141945724374824791207122214053282799851839696960697673562304157693622006799818223029621598738216609414724596059976097011376869892497600578618585214795996211451489896882950263351366100901128924388425442180490637132633834504222392814531811068356131076280485810437252913266166550687570065879321447356652051460635994626810598437369494128107819000102686454229542907718536892327639106987847393795532243503125909314147534322443250021642596205681368834562453657581430073944213592209933834260204346151135453466270090468743133411073262452324060131968913502099929039701697954909748790724342176686641502878225741858279064985043600953348157638787363865198530811323171454461869351255780844089044502841815645785780162990974130167356127127831765612481561423876515618137230818143903499046394630240251479383616895977967885851771345996678798072879946255525280472605749427592265064037487907881845784553968878277768762121728604650515837702386579234480666896252682911487993040233892658989134307576289489269124767357732499359239509521267033369925272660739893921890887133617624153133518258910425333096927364216971106699263734831290280340598688290658818157709965878374185072487849770340781718815013616097293331960260987237152380525001427495560481275916087280250429043683491982414248685063247078261372254781657926733310129274742744627041727013039373616914983074395384791190627868255863616983207389253831533385840785239479203455549807819776664431273123565949443096792944409932984027617097027864953297302373487458631370446595941058126395745379129692903659788001090634354001907491637717021103774596729476135219541908010103211835035608721667355831624915440750562271313427457412066734955243871084553108985015909439017777231778097899568821553768894049732002305429124783922077669573070858057414443085798864737267924319505805176362866188745706291475469182033777363269178088760802770671826011707710880184359952923825555461312465188089739848789571807070836603670037601667303204175671575923688092803968076925250798730306567454276219784735920978968138635412188839296774641719929324686322759346912450734692042772904498797552550077092133854096410673864131897911137709111347510749949086964848172630418145385809461452833627734042441538096966224104359973369677840162513076044538125992857024196346320117687851705363651582377917979291349564652870382359724072712949324062595172285408713727960488472329317774021093827324903241802797574809909956191459023428154603220595491181279771272284931013498458328994541262882945297496303705363638437829054588874922765301545734385264455605984169537407428499558091448353005281586548456238147011465631001538744141105036540420820135854386707147778979217110834766865913682124729117406377427241142039033670006453232769698534155388812788010306645392894818637077230036318658136179764536776880713147359185125554440137458575720519044308857775728401200219245454434297988370230857097744525843496617251132770449572085912310589162561564235294426862783789376092320691815432382415392526009132313253582055153438654550957825732148805767886295426455103193992775233739327051859788817051139043335366106709244054246149942843978269119783138112142272374628554981733894930261561500564330114089335527007484748507857474031032233246505500862692142827520633347393729890789336061561824095286989849770823387731708272771346056103268262849775644694301595787482154589849460433341173074647498922324258281672769514927833591222478619473078754724052995714776516456028472664380222059371817313015669847958246757879340659744050490045190410236341694006080599397669913276534202400499170945799713873123941417204606794238714066618369176953815701937500971441747081522993413788297572067883181943017854568881414079928893088901062188989356570254459577113932072399034635922826452159824756955690889062238860874788821703242605988640827390466259447594933138201457641418849157796547966250096191382462295631464333847149205409183751138922832303209144730632944952789759814139182242527006489438904522124593840591508539338769891999399071495408445524422480506161110915067269522743473637544785847602320694873840065893703623046424421483887499402406681024781635059091051900725502104203990455098192743218296454691673658797026159390388554813473380010264977625819295132046780253128016042184450228951351524506881059586030889694207345875525549819766088632096183492490469213590795873214752280672104491639168525720949260138522921813688239185520614939843440852685442911496278558086037050831052521561289744943340374037526734838983963395643680485468993964954679710320918399040178546995328572693783834338383243486447697501290079630087979192804930880297752741159032142514316831682776718158837368423662526538617190241761205577001190163592841070295525460904673192770875343271371273188374063771509368148778790762764914755083128244599737430652627273401842255204659703480062270953339140984119099829456426686932967739174530418675598445721510103639276224387862295851525005225091007153713907068639094449058307853714257874956579245630379298052532638116707001345649154215447787184814190191199262731208718375932739130849712944951128262643888522336065471113905446426159962238550757602005648541511169982485314362259218681695110512141005370172336086539541190819308414194577423528079971454538756414945625925751618615503141913101659054117709622337350875556783803778275304139542087081939217496010460779466156568983862899535558986487779143353697053853714059388170479895252488119620021635848421573528014468932484202401689885648633034121130500422610961895623460769699492654943288144686891493643263344495210299325953580556973317652797909505432616263872149304693448840810658247578904824001518136958350822631630982942175560342334564372310661233421882219221182603419045298407400554260373525968869657573679316587135063240782160967362497166653182636279203782008884953466799762471205597578222252423828891050997760994134314248822011382736197908966110499945856223059976759830640912306385380832429709064462700528421745995793757417548076725710922940958851930349516210121554460862591610897227599502805057924959848458330313826415822316259398159244453334127348427015562325786837110364097090564990968166829675789702960903170166322461117278621304012953333921175178391469428243638405025942743762939666423682878288281074413736828318231010187826689618677060326021684830197487078094151736544538063827063781925287321567701870505856696246864154622037349487752840911805695972639527323695536670089492099771285422513762278216855174481855949048326530569820533554592464565711663456041624985848162079134465864128354538350046393946239850236188490559875666094638935169479627679810986685890509638288988990336529460163322082107157337868456687469291555173866563170488097108300964961322655728088246335571015870701212611077157838910165161253667664184806803223306539814141459429342442428442603761824641112405794141922351428308039930622936698256696064726899697752032479167484383823859357254469644932415285459463108897296677609828044606228991477629034920104419278020493498289138121926545422293500718686183944888678059745242224451909593641544875239232516652562665011075603816642294266696899126850448826589199920644572749075326174689388654665886627606135414192293848250598710332089956727565829566515053638800974713352980123806588144827383599151282328474444622975979407779644970226609575144187278930885453167235591417277497954485173446962568868476208405586532041326015656305859213159152342302904013412392080154499311462276988819176583454596004568000843969721761423035722478425651322551423583806760776446466457446531509417093084080623800122397329063323004497414727519701695507764658439663179680614130747093259460191616855347097857594122399801312561669712435554001528540211121392400003453754230038272384409938215201429258361167976815987739167113594790749836848240203710139544191783355540365979110304697861643001527548862850708956002907271881647402649437151478380330109291218569167290188375040752164132438233582957850255415274264045661058340528057506357905657108606043574511750248567898248340322161103504316593713887843584284086206554474374854483519124495325073406379829655130572081902959048029921865582513236242027089721445169786008307058597503696333550335814162514872486517668202844168509518218650805965303004599168323615135468683916336482041625214853067320739834134079963530180632298451196582407226027965696243338086793086594049128352004616670397289358338383100602717342903608152154955354917369471453226794646697303092899323177305367767242674314732030189205358039584607576229710862264031114514345780605350404908953253890591881855451576657495289139605251190956043537032113072705610340049897478104354397091347176488669106157487760210371126880983085825666089069185141300561462596520660193424550377322734957630939678562885613886482871018231278819369314046011211541078449040911348410378347336646377122921975924301843367780138114704927072596348054725166426669763143137848945799188948677171979525771735796278540324719310913393371402619157148834011054984541434183750060018356428186853187992601877684122501213215100890883972266983418906222978950097887763203065408239399071453332015777714814717721226998358002862662761521409008787435948648396908147882681152643639466555437119454944698547182021962207917099597161219896015394620952857620481634373564788757503104914457639351401395723836910420860952145363470895040075884472111046912102621161409097055626778965137649791872406684495827733077531256764135004590364426757093822959993481652307804016373068940240793630149258608879737775918121799598670590951495719463134917122212610884554538862741188669734465622612810005594779412526001064148481537708963341579797507252754301871140258097947955192129195824862325041777362385862638385063072879523609172077451135991982772894575105647415732619135981837498087581158751454584740342981189961590845711301737120483270444074960080122018940849874303666492963271096036210678594299019240021601874930359944297624587378387101909707930556029032159559410691380287542238244861179069252053559132751116058522031782422056958089539471885381899655248383157077113909176195410956737903646442725424107662257831045666119724333094723904535708541358657820868612373039190541446134052576682136482799416992405199047566212646225212510047211881438828605627301778917790371148785860005352216766879439916868858970289369661403532496296599423242707056330059849783736736218283738074263075228622033631806606592040592667963736987993001469488385999742212670031760740085116808169975634081326673821203742758232062389259754571804106681319367599895266401173033083958212685253864126303114073881433086064441316505682518678427514185086752341797330003645641375770113951789960102383307464253499610122344557846445210592570879703647084173282856907693512145379022988636726650292461816660307057039987984938216266870928857488149996176872088624854031790456521243281189842932750646641540916391433165751364682504963414869383260564866181752301972668769144862457132749153795408694403880692368816319832480003355331368737829455399299633040567152200016970545454329133559765261139250223977786929530466188095878223927252081470896712869630335367877459139494894236008344166857717076887225905513705516079381697713153925286002051860322871895025695858958681128577827504175428917355313858703415497186892710980263682056232159670778507716524185505101851784212477893020077873185708908716443883029334124976469524694286632339303387594845763195757648528912245965934348297128943524175073623677377611992956850601186924851819615917722168753982182801366549244963699640663996634134948728778694245150902438188352978563300219793244166999383352530453396694975682525888316571742579963531544927991072561565069884222244406286162285925763755111016668354188160749914660182435898687052738068961302010905515625708082787560994632772790537438758887147577834316463266335292614304576177418794185261315409535090076297811562498729785999636680613375705992508192276695930451402138221397065687619243477072379274725787428000138770259599084656861606685261762299373609893830408156783320691228830390254207552448795774878434451746693534272084251519183394631268234853350458020735485993297568114289994522055340044548180445448751446315829841029771039148062670063246155620508812695956267478169383272423925694013663944717210988369685846801349238721173929490794663860537719111830774760489052782308054352974805223855148171555918922794515397586796321197582687077694014955097215010268387357876571856819865158152839712494251190423507642847072566493182961909323272868855641878334682507506406433680461968240675086107129190278784143585211666012844731437240364649025929895088782152503980328795310515165226308506511071616827998655586467151558161662036965581256614620147035900495880159247953962252606296722282241135755520726958137238723733075416508664373136982036119051805645697973073088431901179966018022452659293342830871980882451630757107850970296547756839828589119265154360815664377780715531675342780702568116652347436772364614099354057127387165852562615228202985863353725161352752735667218421685507721981685508941633207304977070937513015033873296011353088367881415049622396377191216151619594739926937028146340635852840741901391202984861421425593978299915310705904412642834913498613619239350075457943465687875489175464431369104629524658747091117107243790762423660508480159964772889397566530175086448528111844639602965869352647432370838177243453539634733866884961954968186945667511483421705426557512432998283705515283486081538824723747507633807740275798008036052085996228727919230627682642542376801303878792105144983543735923265312176629860365032122293537138180701834994982541033503949487969942043470282782492915912376034659067920354583759665049868148577976924524337321578071958554198014562580191477556148299094062528331411707831295001081270083377276102608254151555256164868156650863783512892345720783724765831791820729481943326140512986258550027438656325742016740298871127836940147925114423672524668303065792192994022201324667452245532421382568409498863275987702961266951150727137900177680365697661129700249022189355188274647955791639240429863516345407547774965722991814959443247918961010993252703920770737085553992091439050723351597978942621876201824989270441299245619130378607197856054716170033029493659539628646619103311805388159139186923517846509985814506581991179619025670511869031384510535780645043234890078947420653354430801456512113997912227055743596644440315294094670118138057084986010566869536558488165679438056092379235483085552272039337099875637939696018190211207529432547899931573335784006922945358496329242491374072116194490925837207884400456534366968582379745991921099858445244399794835580963118717758504579461183211020751475799530591312002608137236425724749845026052651084848918131252655881287235053090776674758564745603111068047754971030707675708883255743405502296607459762362333345045466972841587495668632957761951153962108285181180427520907274769183603443957204964724936650533543461252530144858346985042648917091251335952668985260966256716496961292157350183283904722585595756721211137882251576593307524409339803193385799239715576964009935797771483927325445370216829572188240312066313259646234986321528798549867024770267811502403481723096328361805218206821600954731041872676172129149321776113892999149274434892611654744317314436044160037891694869903662455086890769778876028584202481590130542796321723788165406685687979280601792686275388444122960424465874715349829927919976623186140447650388746417632956419665327019125218879300983622795500195876807146178185480143607929303752618748413102807738840967318558829798699822213613441781925766836018077159722798791637639393798109333633866916866388632655140169945764755043534540023895230333699409387335258402965891504035386939498942729963365189695832787640332297889924992582713121214373115080883591571665073172730741143931427635299232943462721482883372851926437036600575537120228937811799070678974878284474924294475667946025075392732421466529787740216069530239383226261810742965729813706271862750351086272973829732107110565606319438986411573670694609781688085655640520991051696415885468652099592354251686211338744806481547175429788404915770931042790358741037766998808666511327430658889048936573052269294246532681091896650032083408689102388679716720555601433402056189424795994043910080663529539125770866790566140590890670426782195058995180159532825759591070943776282683833413780255616806407156422377569659738161197939760913768125288161387881253214341561190003427408136786897672278231232088163433203276862949898488240360319559255843332179418558332786629563502203965085870763056267104995488921284103018545349913637897348646274218726864866998093595498195362603752037520005603279112592535187271087159351158727453760672933875865288518295495293042844000788634972571454894919458162444548413434780229124570688784878162464739230768734912009034264001465863282524828776087588910737201439052860344093518442025879769831661293645036672677426790729649388902302065865664442515746441628565353280846583831379174805765401252340702379137255689815755589462712333698532253597586185697643629441553255496981918081750911701253071601210774103884654774474773160340217428276336778963630817690085011922059877665833056705783732043981817988609968043776232288998314631561873964161219516922478576462882543100749704177756310402571877305609131603619981400653099900821903390679787049596325850478111495889037324187691097365760950727835070733796534612929053826956208852965822618080990340696891729006707136394084310339893810438208245568772303508639831393254006266699445029528943135212212916294507671609255189951012992314505458777087515475253565538370997216365561233509612329383402098916519622924212337445333156030288520304631962475032203608396756169552553248835447893034197098832914921982358567354323822160655496271737795016733474551128328033615535509513483239491878759192589190192760851837152162333079343514871188155167537952924928840258990339888255706088383181758023142889146470024437919334164680839262550283015792101340774154774907625746544270903900418465178670035003139014532983919949080201226937560652288817998700467171896731239045761084929113820937225107338480984542091889833967833420597840178463059486053295368432145146940359443291122023881867141982972917538199308801061261151253332929910409088434895371210836493643252663531059631850925124869284937579043516075407058499981964704373274364231360032343055949318127547603307291085968903437307900257469289352807984310836376779910170486286293772198155075741198377715739336235827234957661069496938717653548474279408250817265246683679513147555747124670039475612676052334947041830313883971063799227502711997588026257756478558920368476432178416183512685335915266601738347370694746460486981950200781611031279940343713699251230808775983857583563748822516103132073698873418923007548339340459692240310935623108329730532252695141326797527096922218132401347084931582431120611636618823456249737046309853151386723051538962815819979128341948053192359882347744350484310494002108248925861992042007759555571042588008831682431959187556662465958147967574354487341577051555962276894681297856512504709672985874447007546602046470100824739721564893535823758448749419075533919459435252834127565484614726391277453386260909876849206726624552458316313595062645294649164222660266617664296930877431353974868110025786041213713343039302245433743331869841779654481507119617666296997581884119069684844560321218682926182775628720519870313645292763621594646733534440411007697810861580012184546485273725559653412283434020055699803591906473059087127495188416484538199303524680888603528020376280672592318342110945475529103821679272254177795601360043437950822742231305299458959913294893629087056487321769012756300179741422870285007834687498960889263330601115615334035039870189930927349704760779723423920272144007750999300933158007681942737417756516848626785098327445995561796362360562546290497047880503767109790295087491550642209022863440718467924322509111716253814584417838406593408549490207294959011594653429943222634466779322632294451388628277840784893975344180674886466727632943514282724497193874444111675676906381413007071432298645125730934773446791884764358485347023033055176852248786300208851431616066318657897995951456782039486024912972614904299029265583124893695087719455513920073176405672802569796780176843991673672819579446189656523307116303759064264617708349474684699801987794398900618910647454222501829733050967913586315202493787237478836873203992224279690361469525501229691550076708473192813248524135420765295811441644062255112378954089524851816234678460937139112955329669123787763565902367512013768012336161669089402245752204463117452202171463286401237128518075712855276845035212858274351115060222367262081134485265921039330945597712284217103751377290362161887772211214689975486427287571618319340812447146470554545687429169764365348397353877281041377001834039918510380766641247397652372777445246873677311873161075829850901914677811819548154074055217762916137970897907741445596246177866621473931288396766940187744995056356958233229810280547691054043783633136667603932001963239747881367258960093213630815019793852600692596719048785309936448431024628387374355318573777731954300027136812618065185187836524618393826713624138007618143029177160926250127338611698716706655275470485064313989428140898913458370949403710865608268880240163668736872217311702061798309454437880381151386823709369040541889664150502240617986562033667214368537169257086148324408706168751124563788868089445525683278422435781580461952305832652540883921289547619204083310060314652861336278026529096901745903041039799058027821924046519369019894716248354893050364839478294255978679518633982543554066425350319083921824746645673398087475554934939864696701312081283745829564867662905308352138082667801974619362006220678550414888949443161503876269740805354718640869709000210278485455394117789214468666459498308816280304553419677606449155523427363673899081421162778334603661294004596749288172330556235608396850930270453912333585891354503141920372992624128573439060618232842490081913354321756027967663001976981549647603730290256844681316915902704251407485472143898209004798783794374731855883280191180906572071528791371221174755860752508686291725995773540021290148277700572119886813899053185423346079659458162930874288491845078909029104467354342341270630762320210907273348803256938220861374963863845199175449241766692882261849219547800422973244412414367622251790109874572344702695366593019462985658252407679763930656411249555908713275778333027507049459772994042655852987992773362571782821896888008968975308127659003728091917484407334459043426690059000570330036315111119059108908300245843367872681279811833055540848530464780287445898347265447593968686144353643886773007371969019341242595201512698023635179726533413060183377971203602456247301953850443924172482928449591249729541144765089073553312236858503109478325089075672279871843249620513130314565459402145517816331740349781045421416226422339869381358571365732642579621574848381037780192668275962941447409796497379865059736679153748453046312765696298804008701493907211629156211563871172746212376220653982578750008581964729774689530454626246584826530163297831637362658184676912382623127405982655156332750071862902749237580317394384821156305110681427613473651018027513569902920917473812971882915146304712337820294454339377220185253954987236450611750657696487533157450817160624751950520642058275738075318143322353525285282207370735583557564124932455785142388530894853073591079643319580132998648576939328137640795193441266534193242782694347339676058415915682772541013763128896328439376551722864245190589049980635613283617412417067186973678071341919431936900670073969176238071422367329666247317580497712476382401636159151790351216732368113153538518237233816512514415458763641214197590297226928270920436294032772283430716115835994566143278553763549567371898878664161126421960171072519710380986771035278500360404123432370635349844451565099113704412341741975230817457583793551053137140587517529592133161652411606421584793787969047960926190257489171707354324841343458970919904080322556391255545241169919294205272244425019149493852182153398280612060706243130266873654529731189099091215191621501948641607242325749094428353531755804148874983488927720227750081761844968272787066910796682073292844165311870581562545243157963262014892683340011288989062882402143823550392185385354797212991219591453471563248851527737791966519863087006233613754924530556609608840602206077501768285427041660378165686829239259993413287047229065187606883379900681437263324314481162885023420105747932108312870474940786482215248653679658791280970035175905026124998442954268320094811565466998423395390257571552079077495961877412174806499380345780148763497406239591613156200588157301423400081964259837777500522668673881934245524179354553524359873397769208265378280183543614888734303406474538302843892701973205268541906218059022292129658106005721120723401373936459635627747693706194677045852216592969201361515323894636755935884744063047319881173793392035811728237193489211822999580064466618428949697572031791612273741149248377355214805886131472762581092845353201042196635185673902185831485883108107335840293273716924721828711272852025227793460830277527593965731408047520042710332583867618317536214785921214999473904543712048924748005313971341855253039596306141286637867853200020841369704719603878989370914320782520713505987172141488037022184661022002137451946660866047718505701932981269052368633022467125753794667578000680215811462570838913290761517240706828023564511128307607318575937301396149196159806942276360193075840519716616416431988757524465147889778750992623935240664800882370002720712085462572699741860034956699683600929680865789821638685262354490799362621041436406782154162425863265823402087532267873554639481245494797245936884023506042952024613051114214478454273616503377153733821697370307265410025401084299430272339111352021840623844565756413122096448434266894369893891744501221280507566530713335702029417557448941984990329788676614829493898879571036026383086260633733751712319143433260064859379688930290161589697408742168276356663833615112594948933364189289398819665584627669389481163376436633360527078301706416428224755337919064083138485773753185948376867189023441653293380617298227598998709677924532428497956724716501919364535031898968646336000018845643849447046353530622914258111542843015359929810610712350492736119498187205238622963814385289533290533871002694262559498250065014934197664750621663016241094998768266178110679776599436764068934101092472196810828866297141883123072890882068113691308198346971558771190257085940984287811958297200471789247323596282524582202897395099589951757706447409271355382385550871517478995186811304869942558494048122204790238145746167821305053010348433093158177229145026738571828103962246978752622462987640997982335114782845158019990483150650243811599484184768481155923906922478379848155562386760990423852964607650914247862825529890032034078002947885944958510841548237723169868989036784704455244848770506650938197113546407942152388638763209984989998529460074234922990809144592444089330230354931342539378980389274940616111380175671411842677271654125889008164201770024243119488818159284979093536369727063831084745228534331648248474464207198069231181053663491417036940958305560927455293338903196190380354662389322418243257664530345965176446694545572644188193160177603613561907831257285793172764754035374749290763920942951018610073860168746057111037484101410804754172398493577147703393399980244585195604894567939831539177538995945051064365017495015155621789719192676799824130851722014786464647051395628755456530980059255615724300524721443079185571440346277886800286385982304421034992705032350298250155896795303049524223974689588354859245096617283822577553824454077924915595735077322474775297228765969115212623301703498204468485903906097689622567574287916082214492421566811509916584186521130905002178234735725776262186351671512971078102029215243231601334256449838440819995353021198901838879254507581864370167075025220687280033342685752623323771132396450552247869194625061605612011410104276709056824552578894692852239819281231591049028065416416917672354368685287862058005693836498122860617260310028424097207267568811400142199304602050537876169782416877127909300600091992459988463902042992727137254610533746129399638586682748553782685023549012962420807277452637047734837676744342363390106478725896276994374682737263428380302954668354666081228283310492503289889447684775620511517080420758829300480414397003131232999283865013860555375968816437415676467353610067329967479302509346873386415883541559521717999318172418251254277856082009914390876549956472878424249738259077975509132692749369000378599553908448809047605473417140051812889557866734246662885314260710112089383491024207296200358354145603429058637005751048010342232956674914267704230268265414670845928984692379435652373703928983445336986496437126334106268742987329464017631698185637636787065867513344364931215022571479663468754799081639547053375427461882468171034851166707545812269373666742940673476654906555154679349046407949384741293726911037326447046971914707046241592331314949268059632057022404080756997949843804077782599850646282141344724199278611841272088631716314339813189995396011075805466332921618265833558805077940371674405917840395237441638767495845250515002115950690691632481923104259122588966879771480114535393236224187371013554717817688773357870948196171833700248774760264524084774003069894581322211188935250416172797358700284014967407355214171719875213340620723768898266254572983148916918596319096984646257418879720804643037252738266669704722074330209690759778335234420265358721581054770632158364404966348286668617309770952248291032882955320092101480973134619410413645876136893724788981169381988978736343048524697512448728697172069100689588316561261292322330394928906707137844968491714941866554783575733355623184849438320000162377623697561237116044442155123805801725158298220027495915978826925308874664606078042053261718268145217767417805072260772759978189145325907960054372109912328583958470652124961140121944876744497308355031645173548227979881775488591290008321581739639805889048954437568053314790364385671195806863195474205932943033573536327705002022904985585880378417500394082260233828819782783642751633538183912351520582863746236702443326733145470181361471096593920434031061877807398851331771365468922852947930859656877100657047872710852211792762226772787169768535710207202142798231993745469847268876148020892761793300719894944204106262784279872733094024530948588183994986371696116615471459164427145820581776024869178986904608886370848118405958639900347360946238971116406219633982772113470656012594801253632073700767023617696903971661433360236114561228157608038988492498266972553268679443597570568856779635998553349437838671459538185618786754725936181550279174370739744383338645731294939441726854818057086883252394224764270991795978310656630824060173787851142400698800523275819822235366176997488499162410287636293711951734308940319800537897794502224057409281450507471752259943015730198132240138877121634201752019435725626908971078712536973787960994953646009803278577655268819432766357288227689890857107066514597476920444331097754003062908037916308341793223085355426706886807458282556368634989628336137386609209635586589701763008744978606838751436364743322253449895910860570838070039896127702406641061018616289364931914972056019145615168097737838773542534402530440530603602215160446372565927909370613379826871694879285905603474558959201422561054121186334118284535206788305719483550438713444475975488251926342247720234342966976221541072644679495019269539422583159074495642142143736526861823281387618167655392807327883656393006330581416398358000451648011775661981625376837009692130574077455046383143828789050886794367903953372203295529505236990605683197329866367618057084241742041325607561381554245068484846875271051082278831872530582097496182861723975231738423691789759497527125661518963740168497439176157390996244487240590633258633310392139518353197993701283149197638543367494332521444609099166202568388071369222253648460794720595789721182893649055261206604082936346941812662902359577189361687991241483396673038437362085320737052851982038981006382550173468377996993790912933479050905015815987039843310831344213591295042315447711352240953375728161260563433810643875919774070868476987078700585213522893907725235022142180507850381127927579898394676615467382503596959707508517715297234926221063169623388595291090726579962214303182347200160575070663986475625885310700355230697495909824409073486163263987926097787485343651603499229531628136976981131539676926085861371492721909492146224457493235549202267597949226482926922773129818177789608191164470765483522958685709354296785744487070744157116837109580750901721322692514461698651639102145751877336802405221353277014749108195524248721610552469965618761930589999446451910351450383696871831447411920897217360705723769788746855972726191622150501268052616927751059924149904809046912121837675764408619471347023649012282279246435323992559219496648123631530760191806130739826746646569126712166867629290873214541949926263761447358785514177756379163347835525626793562455733644040918227546213028832964907196286657996003188590903149790457777421009914943208221463177951255992635181909407875821719527454517081518830745143424284933650663358848774669237754691345937162149698145765071051155688015191953307717298095730729770043780590077774008106378726990300096710692429305011267798616143768638151546119906197267898904649781353836770491778099968508190347065767500815124592171349465393696197178789450302930567888137299245835472631585874164154863730653549886699521278445200640588438632390395421947123323219883617598602251063212266509529552718817224660843492856633606807085862424889120888529570853397214305412474352666397329219198216626800212795919366039969018920723333306082778956612568313572066107751624737346307669736275233839661197310477770029790651773522826786725086594438854487725632729170366124238906241411005643199034151013805885876828285300243811598745315708165594875901339992486431596492432014968575892873905124781613961380769320144783217045536296435780879974552118502944406811580424170791406461687347525948187650321784078180923670892290015606761558355029323727571346188785471562875188895265500942252733845584471920072925876087930887316222361724214936562517337273202602727356445939012189698684486910839189477850319188616146248614078065371525236584138495451990659629914102819863987773634307077383441487682973909015603995344632496362396956995693742919252573089909448202760621439471758777433794122424295562533409923368020152807381645596320841665656723753753092643596519384250455022629234218772992581415555762802425988300061040618741848896349897264518294485009505026338113768499704735755765540907920789981928125402173101049187363530848376140652242561397432704742949771581837383636354790098494492399213138814960243432592528071420511393534713303842012546171280484484206680230618644995245019621464816420275089573669441984804965459430824985343546938844256492960997787158387729927502405839248607228153775244375208240444706150869699824015938175389022984356228937334343078644251749126653853455021084590488232437861441261683826604467982889107302907397193363071967823362829942735015431542368490806089074582411694695541190709321323562485481496574492312726160802873661895296323114639996358594697697798706104096395379908509581540735836085531679956119935854441259915898476499487387087841888371741866273192995131146189487016906514757377129062444332245378409687542370744371495399677069021537166026505617981598697740640861327162930849596186261468815243583965446518304786434022647597732670957116136293401789280987035320643339530806583251516270028450994110251352352256300348971053354657469257785897996312789328715425158277714142108598464379202564804371635006262455882642532591616396204493327784118189246110283795947132913425237680257340193967337828052552514109629716341543750106573216783541233123463291440483358287943612505690712451511398641222428694444681377702979905495636534452841740336843572877530052084081001108664463544879957362037086312631802253481556676360176664770445419211414040141007806832869695683365132764390147702212563426135400139978589720343198154074656612335096885458407903852358294678342357653901151654570477975112215243623256257778310937295093684099804181601888019331959509861921021376716869326138441876792411443947925596405677030267183057363633675893915265882429642102991503061003665940679101248695099462348914521550753593577602225973535380040907415771413655136421775615180175513880841342258096470719908126094738669742405679993157737197761591199387070013968784749968307496602483314751624908045579229564195063714823195600499899266014563578410757284621695145036736669289554882581800889003118315480724497643507898918029708671756886846051394744428620709930113936008752426960490898622313130654116949897013988021718212839342491769975669233451272808925565448853436636120789675324623860706097619088888293849881161948655816040763831641125750449086739177867671280542997839952174767303531186368436430422315591623206512253577628465082886420401843055103116048608785584189120675711077273386298972874857673480347567275801648628710170384141974593770253951238152005355985742816016991308893102800912393653696346047408861987286802055202301153567119989907706603024442792201783146868016108561409306244601698846698530913923531934544858951422233705472796201080596878889713039346753941039892539243112278162027688449302306320164730017341737491641306246724619949331614696260141235940663820178121762524930810657979542874808141074583575698633830911091756133809951327685605635218939863220960247929958276860146038300595807770025063383745707320570045783453958077829095699121213537401738622278130576210807778121372775820057936966818928170565741271421328773601210905849182296429279338355425664163106012863230696036783850615309982080255060372623220431846787189129306007587209261343074215877732178146621495127205736914323772815636589279822885932830899199126704916986240908886937225902459152429684583119654149880489628227945067898985277309724617805784454371367971295391079147716226133759862027859923869494300574077020357326930577235367021322265611203365552435329767471395491447682915778509296919515439237357363378523168095337754395048904297831496594829776683760303268583852436363520791396300492486172433459226901984575771991431342539513830048485475509548769231326158842626222335508747319263560315332757368369390063660462645763977346603717558192080856340110711122648525461462971279477223208723847896775065797209950805617847536184253363359119479011430527874261480936122486218806415799986646656611820729943148741167090716436445692542749394553778479718878104876464372489108504439013810228849669435400284746403889309885237040511744175659594510904257711082107303865665770729730136735964943068378673145140499149715184200071334992525484520959084333451618516263729964322425288455840348286066650550284708633349081200262025173919408997191253089410848999677887929263218987547238158618736257091213544242754529813863939020459734893775479865388343876416402107379121938252474807145518094826887694751298180642546900039539246469895677255289444651657579154273653290560561121737533355759828898061500051458816287343240608478766723254432396311318264725129542492271481609899059338749348862419135287094671622035005554622004128671078361556147706343976772424306579813013166403362327680622056999409066109374184481355891698620273582133127801866426190153876603944255331181790337978800367008983996289683897341456657889820459817077026493131269023290239403793351825200652813380186204541011656601694329487440832697443743230135464864561119795980898959994015214309227868800128162190130770506780935971532037702324632312691556291985622809540312954403643577939307788213254684325200586465543445226069819467087549845547114311703411117857672931128281615731298926903895078645842791174195605558248294860233331780028636630985475705365916052083755298115867183970343415279706139002277890436133430227218579652863472180719745593265821925811272179859396804403060777095386505273046004778873278289723198741631811407725535042319140480087910596469810403128685243874227339319169714301759866873973017935146383994693756407257892138930028408536091252705265809840433892771123245313479227985443851127119013238678764225355050654524263706366528615974417446344889117753692023719132332751639197883484677638079861762647280131731172168847569960585254377797770298945680708492137891826717521480825404591767089739147811238425553008811008335537371926300835907931992521021550789167441591623341426900612145481489963341327661326029841468688082492506001566073244170571356780981709555674547631205837074668342619072842435037758904481563375357617876343278500739032678825730414377601653097185813568244223503227101852585418959672762827630637718904550298870076209662726736898741511918560712874041916925436130961782459053919919071914042383345452667863629872451467922327700212701632283256998651981961358873431210521398757632886427628700557773064176761460377051055679340946057655927641259406777341176239528668968344116773973779209905358072002716343085311234146133361445251194655988016219578519569553704204940714653615693186881409116121321625121675898636464547703511880722364465749091497021516108787322943676565843744990168997139989351799827685054484201912511347917189229316462883018757285692879696766809868630839374046801573007477635375023782510380987015216640160167821361561444358050464509612011835932098354720759848782978433230748529166288252937464106502042447248675214943346462432030494853419696540789315153832736440842302017003758575296663457056585536117788152354249721000033291108690951814898636105838803119707666157935139935253432873624798020397584184241786970671177008333628495173591452405067851967234542795549241715682043808968124502459427610004682867270894456376968832963084599052194085740627164578433905346829395592217331841683698205962590043827459716831778391779671989053008007577276086642761093443615546334067917554789700765062696678259034120182401404686083085774282386679543107810687762479919164857149685381108471904394714144301177473341916399392107387770968403014384609104506041271955242029521258063824444912767676209006145770138785946728167242928420742031942643583056578208453491859200139750975047982421832672483745211079280482248258974395048009425229195981739447864124994281005257926764415839557582124801072997890352903755072541981913493090976797122646774416170130663638251795024389623534152547996823877036882937180737651494660063131126422485946839800599554327422133683925617413207232015433917481408315738959173020166320444950076497924705798783269311857147799446409319214612278959773061414971281248286443592540181985109552921122013594370307997668740513613434581609781270550667734128483204061121906586888036140083726961430172544169172249189561907084003043230982187410418350439266146186325123549355733813782081200568092464864627533547855374413187998474852279199780716711609363111186160538476775701150795587398059737334167525906026807191125347206641955689579755579523842677833900157554313211425572520312258658254600797257657514124134196324187936476451904999829476643224691182159752984355866939406308430833815450109093611773423232884643130004471606679681887949287714748268835248803638745960721850870277276016834590686024862106684199517475399291742905448729738527068138568097621941041695750097694537982287430021291226571159413089436729589463164695337271774394270739207430267361107886481423559582093028151209182257126426820617269559029423468699125917363023507639880777802334521863122961691104590171613053005786678003201405222820731189587676116511541982671956485741959333419325982702828226024448266100983886245557973872827199822804651383060146136548563480386191465190480481497524205526298410794815518096252228954484884176642223546019276113175376213408964496725988853150660937752512078839406347071629288128209263295057479593182131151770849958112858858135356526738723225087663988688570693506472095746212613223845287665486413487450511965153708021885879768728946699318261401052652646492388260567980494003627128378155990149916786331992539476887922423249080533447169995270971190484828653155145335347290009122434232732762104891245008761161596798872259398074849983173099531133096603940289324003399445302810247708833462991028440653211159745631860475227097292730603629798093522449579291343654168177217586061374563126673257759254766140002075807022421979560974166947241250271906950836464519456169569292581009690123563420784326909843181463482435081918106989669843817545888150351443272913013662806494038997223358865499958010239238299649093169098446254048901327120017347121682536334772226090850793502140764008543290970573993233199996121628708579838362573506770652730044560750985626988494906874656423453021285108839221589206469064102916998005997278466453376943735698276493711995329661776228415780967020146761677855963803079374010942224858047136388827406869149798137960599419867661213763070881079882149511052237282802568532104886439188465900314628341157244544172052583651453113606857183516153934513122636075608471812693387058495152496394230571098153332123019243069594454025299319069293319572417094941165400883467929797538311085513050164057412270289460297224702715854121332821133645192264042752179935018391944391924554019658658493719358072514001749381721894174564213905404440258861915409074031562007324233717795534454017215034936942285786657700966000258019099984677739058122860985392317228731212636327727065569951785491046872103884258628255448116331167591272576108141446698753627203390275007884276247813259407598328409561065982153206313303282481593029049205923139677178105136674172641997607451321487931018010870513759196359501184821178722178174760680026804388776999669904107476488264993003965469919663591486625734357029719137485000178392198790083066777389942413196043735606047063858867547711469733113034897032698783723695810657766163815022952382063292827072230839889345558736426051096776711821206294739798364413919746143824447508618261656691746011020266359364802341955828441566732741603783065963073461380575398504378060616013069291957461750323953868121131426754255883353907019661827413407722819786867927864257808466327443033056225500071385137586793275159205199414814116938503066926021605737849747104095476049947476088257159629799338995034735056551840782805081018755006634152157736558577403189576816802496749440232823702444841182713712263254978411258236688162566568994825217753899549563675623764290943595582333406680143304526381422670466051944735485287653325532950714190797146101411621036068381622629576580890069749246710041858837256874571897271455314317276708669475186858598018399300851199637299046289585612530281858925343972566237674086403533443910611029640345761006132041234211595899001566968402015170547701882383043123077492205870083217700393002465659810055331700549036991553368742080171175663552924953602620151191930416004148244579132210218318131709758576190594680684799214664471532315400020625481225612464135750179570297978603710511124112467903801784493374354454847839155261287243562635589936753988094360668232368034402903516647944216540439124776379372858334831319937663149627120079472354483020497659373934442043657771954975329066946261271439560414459568361216521835903796224355269542106487062292835920406565902726474161077214609902926993587113099646750472385844735076064975118649403585113976341090392371549411953996270308130188784799348037025453602466555665829261184388721801069607257353627148531141494899201619234355375461637208019362650285254759977447827094538657085092324880973038959527105196063394473388986462857209636713639172806423893232968970419070922882384948265523846548356345406658025348077573335657066730607699532372483346609384282358595171339527668890334603477316291593993132869607793468550652923799029604815818259344787198637769236587908268802555630407104981417887124316526787443955647712217844510367598251917817075293918798708558929386872822710892302576977082849851634321412422810803204339418899836363659347488465531381679964309944844580257696904957128748022708973566109606913817846548539899907301843642906619442797100901513304256562315677937779634402417190781164030630264417575912475413048962204338773523566212323815719825587907368026917543057212533809242663401544155809565073631015174989699073352615342487464408348479466406985104792990957075544463812891995619454526935615086657459008807457634876785456428611331275801612009223254904364783204627085931934856635376880903982172702873900379075756765661225164621746996239706979435851079805031219311850199078906304308759162200319070054155214614512966710431668648457114621657483960892358332137507533784723378274750639449584092644603528195470917051413044520800359786182441707658755301433379409218629241160020591396520961810118228341509944174668058227259263294705432213539743977469643374320162976485599180988571128167320342310120067651280516615975686401800019064028388112014141481878158514703587493650987744646101070328793327531151060085620638189649158969677011303758352893726813770737857989761008558477071779728950396776979374671354640634559901988176937916166505309540068403913028682992609689089601744441727814326022295428006693959222944846416572702681222026172218584106067103665157090674630871529771748774134515544745075351923022365579876617830831364133984533315315524937238158766367715831729343679214038407238384769977257626661648436115353436655337038332241389499880536126853546708761443787177100781035932967086562126365773685607619135109740203695325571614369502396350605854160150108039826777856922787933832122654326227486822389652142170506274151455051236263441489120467600691716059414625213938556518424148821479996703811924829832440120106889182989874571651126249173397409733470475523334507249341084460679341260155152587695412317443492633266019485061195497616687007452543085738554267146782934069120210314729232023568419493492887524955941620797006845928556349319046788410050452957149212110997666891037662839427605982233106456738020944146677849211704884254247948115490623432292928921453494184969183983827750957046891305554721547957373079904423288728323067613681246378947965568118281752843789943354429531067756740115464944162705426920276258172033677297474041923946922196090553797408801515576850978956094302477168507911320264495416370373059157701979880090650996155917485357956340857795051410896981731951355610752446944443464948840894465113483534235177391555781306731691893633442693495922485332854050409202187931546997465522020667801800346407871443011034356344697509750837640749493244631298367631619420906631594590303709210444408524280928187296624974633454199880678772524441548483288135410388469874444728236477631795331174030968321882221892876322904805734915049289692277288002899390684168742892325588427830138761188496057029845876475794351939026978588493954445160023865190892176057192885647810450834136313703168238675387539403428064050159389362083580947397449073310445604710138893560878453560550097448040860432782384705470498770691070240358317808804527914183707501273145940840157038895131190135225556039060955290655732653791552377335900561899302736409629219539887936378044083395403760480459573539113350297973970860992497207490592290448303545492013891801158051562679056638972557616001072778281457002498979198908294646913682304376290421496129142225248638634875452880789883282391319443606218129841630074492965584651013138370338641302451597084753893652287438890406330643532169702882349465502265895856723129877087128717574815452141165614561470779892691228571750639339071976387374813480886398212118660877074310816336443617729785829409244699683009348314376946781501463093975888915932268795943282252455681826114132553773433290736157345177849096243768328866692217409161197170411232639397690112132305554876082840878019778024099862800073069497824422574803607963786676479695389992747475599294375267448969945143381638127826353411857829852049061890157328448009872159135579275228438260155093558669269714063690297002517838945776135871102013368816605162431799064801036096749114204402074474024570626509254806357228133289212084150023716451637841242547779571257414520513576773049915276056953209414548472983191924223756721202186659846481407423306441342614039856003941334243931494400753577181575180638984275289793085198238963600933481887631856004240739158338278170119115378946661684454261973172653961515247518280944051414000410146028752754241641076935411568087039744478937303053630426908961474796054538727082526305054795816949349423222773245917917779682164943138809726964951088518149225701566920371151416602796060984371668850256252734571178982792055423646921666961894320536935417716991589890304384740959903198586288640286744661067134193872671091760068450295739513740871374047615761109124731923165823111732358968919234288360002786550091776533008406088560594136154067751263066958732533512610101568093866244175624002585732207308191668234344890352053623405155922243167091419355374530025725456145855241413453100929251609135060625387899381264670447992524724245385578220573515977189130403062394282771369542877378983772833282544291714073884423401874456717413432390740773067975663707018467464409900173371998319198698425087100135568451500891345945132859878997344380632128269056965327909550842971358015691613616842091059771331907101116175679931694663490769327988566240170258904602429559567578909573020397155369703153421336889155433317007198625280561992700009620186545344237949089535149219111206661469572709157424256500304031740959904978648239831244659526964730602738832869176098688419111639402766586063222222626682817244142451755264843178233206312703781540195717724781675695835453002235727920215791724825737780792799027342104825765940634618709516638970494144198483392331221001687744025426475741288904429297385743866896261367659655419811226088323344570281100275134346073022665917035963518049057191486685960772812823754789185027870074226706690215831445833792371087087482146224525902815870537709555081272974871204946060897482483200378151489325862187480809304733350893633723109933562078623412494409160847559149417380804984691448287750904326438461441436443072118237846994794213400357886574775351945940421499480201492064734774895613010132091583885348892111326095814335989370499976420320346761195817868899310321152792094969218094877134354137504948968888065177530880113616547323821397007062240223794544120707340992843211273060095310278750164581858523023656341983454262576062436715108206143297213281813454592277989870059390695309212479897536613142169427796161759320247717154604613392301205123124406426070318521822455103024695998358009758414940150311628225407757543801763475026553892519176765564766931125834258645534844643932971231058411444948569118944412743994448213089648261933572474813534959261666800472555416349560610927440625173980932474135705572505627947390119364527848857314838238739756535589790166973073869722901885729083791494053632486926002166813838915938013699140490576577373556582560477520465056585153333169329423036863955269987502023775483660798753027040273248796347591209087578818952573322211633311058483658156051666989338688446542770666873395587503260230098601953497474429313248798432161226424359855371074332859221925536798697410651232260546538805949213909965706664351445445054277411621532960421465757806099251913049890175862052942793207436467941978973625576697002622655028968770201671158623264707168212646279294583716746720500353453837884391591559321117845177950899102930189027223364254960883812657047978054264461029210600540436492352182332003458031560249551024615645702890436539577385776563869574569039093305142024984918799526371673677344760063304966209043242336704303543060429310235107753296655198308028836971439739869602786335397084098253893483428416127805980850082300144291098281713317626349284604621723848822978781144602511856283170510772315430545438961344563950301507856167501370619155941553101726752725714347937406429561403366404242358205761812576522856485832556810850845903906759321331065158951866563383298336879252339806678654567825309310563025261622092184997067252816728003646115266671738354251364774175767022637280489806891602197136158594448416326387170456872047694376053660927783018801155879901739283805062392634217777236380865289610128924431205013141630389759174390230728323234921504708091405528903461593446569458618027794388028698072090144521365136983826996667567792205442340362637655971379870331506530210156846275345193975036914101676044858154711096345984974395635472493523084427322341438976722567669873177371309970096263238742021730083920580471175540753880820394185431073801782152519528084226253070362428348040943789071393219098951588014995920192435378198312246846348700208279466610473314871141077322272031962601577252134799315047970906346285093774197624608488179044691183960994215372091472779930057603214858321113607978280456382162135625390346275629844072230537120864748266838444801718740814693756445197638611450979772689983443718240297903471178104933486031008108786120239117431416109571937627640915625309449750347309647782951259520856707076740116305847052593652349603972224811022861961017133889910679153246448111012021426512802087569477112198986161474737778886398245814434672927633462537251959334970912661726225255125942859458057564323865505824051051823433276507372192267489078958734101524848772596399007484413390838943753103409203020014366784253153144202416654128746335712020237684721157111020593605171443516819223007697435168643883792085529797345436267530787967529920969002860664783795663401881482576325014712750483365282464997403740399524641793321561512067763622692453672083911633025701945373280036791715393389186460733318107618035513663857559551924086284622760534002432436125853137445254457458007182394820384739293560587596592292186269865797131244862167884730002158773862357377957708011431449466358116232023715709107814993121334243715646757596586535857810251125870388082249530935741442844514580588958287160796008561343595582788470395122881345840806687020937282986126018319082493247119134330575254910021496700108358699409300698825540099488811942321253193607607406934982208934705624400874320908662988099677132663129986445535173997713302937259848155821935832916332117654156722364355450989713781907598924397536151333709408687213487764719717734112531328244226715379137853365700714573133817297378382555046235254504174561784140143979336579847198818297125173765399195360276448396547460424197355117129067171998304966040748115274120467989537138030019577655428073115322157162455412800540708774368544046011450021436536262394252743229781983478855523571823545442480363564025465641030078181336404315703725225843815009556423342189825572144748717092751650059551897600096284991628902081449033395440226558803348691488465707591391918767946621405746032009309747822974403084361904664239732669933045136628903999133270883526765062385994604544214513067836967251067323171221243436979716672150340363082700839133162382245364673668985433443762141786164654861977008735947413189094379495186176462950709988442760601002623502588564294330253335038010395136016191342301277922689783820555865098308353092451294310215511602123105562250856132609668562040384293560869555873796129234996471123418315750408704059125627632964233628253246558520102401625472253586975298696717636665486758016022145120928997497967410817811985214513882603545671211931262147430223272712954490239092213100919418417558231759358783676310560425037587737879717812433491058761374646517271459948854807408700180142031978894633835241876943557483120967211362945323427214547541040494855923863103288754930450373133240218418219740993050490615210792081389256556253498279951750222992468782741062354165337754958667571919755959034609715537761103888706190048110654388847904297317738217984511711758951685820673276199426872256828739703520752802543791525066276660601578097084777724408073410929833038274907796981685462964519617554037467544714181128912293562748828919038335903485275281635264380845353721728514252993611051609535104158135020607685752773434583261939131146742267493400303724868053144246749339883307183784750948081956788498850108479516720573461338536709238401743248928633589650098512982770020868244042045655817145781599642784652665308897879445050585781660324913056609588304874333939155750553498593790538947409515107329244686911635790773406038208955538774470405557327896137211661716033066417582462742828630439611832756687998013936919401059030198771344865918649854921277381586625543563465098157035660180389431470682323774582840206931773146268483031409610806124423009016658740513847535937670208885653118848967858062286595179742873801828949508055002338629811840454054315919267752113993437820306525698704739175190786947635045458240813772573617465626717893159254091927790982066154437768485606052455514305020423466763041723016637395298666253923141649757778511684351653520512940506028307488439990759409068229923372496343423445469334422523747924795712006661410835541232237332386377298270213607992663389521777827567568864026973136407381033532137361084843742785018590804668596575499933116503606304388543851729500108395004061353253481570394699308919310546991418040350058318411266634492218979121326846467317311452235324248975033328150869593905106712137182118520041129303960214355807166249003056785834497707462108820732203741973872884418975953800117799454747140188290319634108688167428476198310017749033647793981262762913003378689801978531970866710786112957574760561178348121652079419515820174548838759239269370624946710409938859812249735000849974448911497057576138702449724956400339823221327566983060844557542648894902292361174092101199268749317680868355267925252025818098498476763097476891240814345079337841427326608376981574994275438673323905053635128987967656796110517546839542136747139260903022389110356651138670595355126464916471845870697229267122711096020872580414793218841059930363400695939128776465762485821966677933939358482316972061395552124998711019876847208448181809667028646481860904858428889970461460396975060455661102889148574469091307828875072005900269162831585505366458674979900894168959801223812671893885546881657333699706153426569174414480351490963784388414294148431555263785496961872917652569868006244721921276748766834755979925106478778655419569283560041348513187271621434529824226610496367545980766865098332447514589587078982566124030419242187638855421334252543506381229290205153237382616781178651180898773887801419841696785471781264119508431020021851804636074407048907979329175628152973001356562243996720930732734903742733955539829007795486833354479859129205730065037754945866205919304449246196763759842185284484153527381265619840491079143655372496073629347874104555850378292193171829843046883651972700907067734368370985523559763692597103626256872664616355352185068736601180819793113433274262476913837292589163212479138773037897500053386302876161794151285566965513343944546084938656007238967073904394795852727848412949154506689118262638744681208206406534811826153572279264995719272137171524345550071227331209399446811992827624927412458873601743949761721496597944283978453979495197593165642915772505796680490005134829353645532215055244412379124990867370947934962913172709194862508409821984808887874388442575816976528635900514102533403458733216534700984791259709493152179651339558946754897189204100049550276286481620145646690682550724707130799409657096201101740232382320630770842562205883382328262898084856814081816164369496601805729766627666664497298246156586895546385622192617301699493731587483502417538556097816303966197251781548816521682957283700207066058417983723099936626369224477651133190349558484852731541615189993266277153711756984740197220210059718865217557053841776318381486735743004567702116982014375455225546284974960421601848562525929841208484050549250918749875434888506532401092274506998094940913759906102082702528806677583344791352824164526841982815547354392690996992657521612760270876238627858594719697110281655427921730628823353247212804451857758082940948123627030100570680594818052566228883339669030480188413858326216665241557590937720963653122152182196082060851544831421804235147913874180417867197304733200575878827692451741473750499066571122681988940676265783448917110605315261617434789820727797258375087294740072213021820988938210360865813043720330460855346099854937936253920410257787015982791220341118341014293026027883534090936117297283593428377553422336164635297352631399905412338610724710897740688199072016464707862954950229265393210475503735225833768667922550068752692283446692202961374256868383918732578421761025442870709724593584140331988458516609670011628842484267552527799352868808904503267079049634104692377497259617750484191133677719941752603024987683386334047253410994660757429054037726767290401821762232825476051521825300897660563494757969435650795516934657657653780506708571062149641683759865146521494475488668150543225648012276614850909155336625444285773818939453627619874555382565881213095990462897750827016282456275611200997298922604407240917781939835177829686239689628578823102298447609580853527870144142510023834929916891590350985563181919928169945105167761326434759508663539663376418471665131812614273329710608954936447941914090835341172775831993209305818685888081970526217135473169847743775048690483516413438022309966690232272283784148722673152881190251598206320325985056535054448651601877428364758603225035919863468292751494121492021764406536694344630533921310217945195473012487323555273838426277685520850660032667019834932219941979743636433288487950541228458000535904487133596359738643292676321369197047180806034048410384144505016505009970420314012851112553190041971872811672557107608839389273371884861921626086766079036817730054562196821926513631016950794193635132333018458195404983142880008262621116288926115865016376802852834076203443369305486579531331274396184513893077231236525394156864005813937994304603214746384383925563146970890313103696442566455348422123730044345228502407857040144989048479067132435975354921522887897528187852204853304520579137955928926857516645456198133044405122334078532941730358899296957432049235250427648548329686686049782358928126171671063148295211132163031833899633061987831472021497408760535158238725215377544561748706638737597108351683360764271477714204768721042899347473132639888243255957198293279789596208276705225904940811374689604510470272502223358830762148920334348246546290073487675221089830002587497015099782440208024756163346265519841768270304832827284839043591829238106996429284519721410540732993658740487812241684844976679277559904218803633567767837426409474465935200763419001939210195859075473416363069705664628822698871764294778508942075958202731691350352242450345988284710110780131715953926693389858018441522379015539025568317614090825053211203563521270802992262860702668041786418112290829108327953089858278045560476873406707218905726964250312513415131312073367683630085676939832681885617555902877020824188759891355858794561771102478548621509064681233976937941582346801786214377503709657264150698061944012653867653690707601097496431455230248160514864101168092821835290590180347471514287454262754359399784388944900320270395634438988229133872655123882967762764308164498043660473734471132629249754687345547230691921473247576902347620334173879155841443436624716345589506695856293092404423335718006054618882463801036767413293652202447331955554672888519181271728958734795019597391117481765573094921303711375290702348469356496056260910938434208972260677876269699652201913332238519576983560578319225040598152187429317133816662381064683083748558466572753762988927317403686613776227263082732579252869292824438246967204226859407885552633016381147140707929773607816432824863213498150372191453506494030374209016064645428631842610225827632967334580478018412865618765431186426442876056310587339228123083249000167424660083945644564875134233548067014969028437178568423117614447059211807832437252334383066933452046499382880859591308653642560381753080020454268174950827866143423044150425679767464066368984191773398052846961631261368911409807147480287288760828037806750638815373876223361489009397312825391091702265334555395702399112159628178380639417386359129515855123078037637189693147460142106217320000556634805105727346862945077834305849910987743148286283804429861124551057585927558491481104110214746197166043573294600432141395430786243925430835130736354602168893893210529128946204302176016333247103020069628675183257907360977864706970769599659878912367015304139506622326222323505041968929655004051557754016444772892458144377000518738799552723426071350276651188714508168817250732126799793785705992721722181565875791959221179696359707758462629754462872412164626933182375169732550466219296535405242122664598167382413916815412914146719115881404179675358798744264366728992360795656659829511975847096505257290589179439024452974831381152458161009042809035841211734971340055616617303126361658568291884364439244002748383947043080389457898943121453055485807346404788169001719797492131077628151778858366855337154264074798111057891396104610029164966482780028997163148040785206041499295709289798908514652049617804640068971894002980722817539781577050726026908721136949977380493104612750393749426716656459448059036314290871780126046376010004209177544997943493121460568888487888674771813967201431603050625431136041392668870948150167885744222333444312052515420414803480193638895161377783093401487130917960670784502602871153041745798589598960894453633826864853581358656290073557365096282688384653732048200784375477518312767673565099056917763049040872490957362186763423576704851643880141434843513775704046284389847809675124605431476301499277624070840379167088030567212683191962115568691169565208530408939953144997174702632094185236835979141674084904372153970221980571994507881654932852975068368765889763255635715187569235700345145982750243268606557911617336332482069680680171010513338874158079097135713577255369279927022057783150977707420411531506678469091458094537752918394076995163011951299287426505600906420912785511092971386219487497633178244418572233608230025318637860482124063705131788319517319551957283233191305895063286187032268325829336989088374564590086638407021654468444136294015466078568927193154957843717237588164896034022743545849096382699722001802047215455240522032635409436978516370896901548482856230750411550227906268635211862715478389300550633947753146456563696052276739427251614132741490415201336051364018592086791595761804606165842233391882220100481538652745732350272710838116719002880814679420476076396485253584668678825666665080689980681701703970822533081235546361703511583671885176473092447495973092189266351552552423340079753920926977525151044403394777759714213151448751143275242468542761137246097698986708346049771875206511746657956490383258098967070352357494783915623576236909054837939923295117545755494811775640420109390099936029247677207203535127162379021528048166053663687317064760574526648030212658594364922738260691503946310184853670750141490875150140101895412465982019632902416264732804635467274027870510013693924176734706269220333576693272462501934430445034374148475604978822916717238502573428711598934521862822651268533598054429668034366561278743822299250596953106758655188757741864628230710959707783740670668165485871672686182474439192909094984489140442611263075313491802099531897917588821112124291997116445083579182867674027481746481639846899429669152562702129883935983881625606262145305586803261378504887521781366777878989593679740879353972102079058151525817270709739607561285278546867760697084093939845445645969725029188905905068970362035055292270092408170210600440403624847634964044711003548040487471356856279415042283403019526006171024222729528466983584396722986677943308509362018937076992767943153961386956217527615347780913533809740364085209902570535264444134932304563751406893949224763160754587306493085497648490603528395518742167250619301137817866083920226233289579018309287427188883309001768046099078586614419750566942483433349903129718582903652042667934731867725844262813186793952410893722113906486333528333143899035779831450704503687294981301417973526103481027236013860992588361561782844497975981461761405404831446858676244008717325750947621442348734372084267440171937485568950697871475690055991102915457076994501100757927957482455976159496188330073670791157320833034449155899495149463873439394274467258513533639156486540133663416876369615024730715313432991139062949014273439857915905431466232767769917462940785988576693692332279167973753118340536362368190604176988115986902651972117084091735347263380668370357253357337769335742496592305939001507509608537972509563138130703430300187570922551674301852091110760383890666095745180816918654448619771437790490926627608512143717005483502939931145356093219470670871422081945737145240577020384159413444606187875995837275156898672693051755434088407240664974192435490496075192843033864290167880683653056142019142275284561708339588465656947077827555567616973784344019200699509503322837980735562904580570102966371532148011822254358817326014978306670029969928822433745725231935097142064783722803887798189593320718580864432406146516195503600161855723212496180558228082268133765791955362694565676709753722188571007398347976708607090282293421638217116130289535717532988835511219488593654184836078027397098986094712895170552275874527501871836709410592159072616726644298843872825666736420772165458734643758669469420974026390233173303165312355856813767124862007527228303134904812563928089431657708546224390279686058859829742481747305662517638326300660655225530344509449631696871416595569851627991012924775071615717925037810359455145823972494802761789905762991043924942112479348121915067964981826279299467166775663067903735193004839643644457263748594221843545593492626901511639756264982800881286208598556451981033979213160631393585980816483164432376871448064922577224511729461160846841811159020306860289388565840069983372491543475939947551100230580635218922798295170522821051278111999023843549800605521288502259273649831241837515227176321731312308441713694762615319748476767705277632439471590316817894002093816087439551966760299405503326799310389544569905895877566119284989950705738244471659107832894183885596446120026220734776496218742437443631175897697493890556550276031306445252243380816206986550945689363023952138856474704756180895549652165493350699825065365165064310416257138891742507169082083059317786386537131063238238738235137076853749601719578731894795940779224763640037439852110089522323079428201654426580247791808892229381398211430719778623773382917183072265181287822914895042532090796008660524410489727611102011268167440027875873581631052837993563546160892099843342358032464390307753988069859132865927593795029724298052767580843033465328842069079840576436976864179591422883420698340204341247043921295769401772881629902211054535179982821124395214382359617364198803513076129172444159205566013919509379778060619570418737031622877257802345795909679645935835081868832173616367222452527685225720190655968179019552427361545659381581327434688464942510783383919048075658660995100422614399059309088030263104272903541800579216669967178960225498025755528499011093069801274762960926893778117962280007542917891727641096367217773627552507552060964348263556098474969770591760275833471332728337358995561195343769732479460819043910751246061253593638058432074305434511618114966403477673773046529371383340682787606015751090434052751557686334959125068637764238953858716362654371550031558854138326231942468328444664086862419880204711787307792113754952569391869501344219795868527496406788114510666558414241391053953549986668187655089104476166293912233336219831919543486050860222883710865339342474426984236857420892831606921942031471732403152401094861869416402693688538990847466568927482386859020267027749372502205596990128536636869204943395315936658032844045712747474764896841448409228687911860697822799305590647277849234773045166927182015300755917847241030360786905714897796118040150825327101328918841475124947097329468022857655039079661536791016272322628528804959528770048976895355788038593805909608821843395493601759361274807205877851774450298280038884904140859603610564158907222726675383954502375901392813663335321765236399831272715914398103790259743350051298675696807618688584756117197488479173305189275529421914929064933515001511820825728320623755698886325045954892660574965111466576461827177002998071635143489036945174438208822076570336418741734479387221286558062198539990694066137980966025792487005509046601093118832114807437793992206251561626998954772422898083682906454842878320698807105478897347682663216789029199762549730610074671381552924813743213261214901820377849716402232747376367361214881850957282203110149135866333945264796012170574431907828166300222685110238481940510942345791075599289661227280913281931829875192094682063923713207203899280662879527949314889185423269760736855929935919830283017224975967728469796171316007051177489891089029424609376615706384106075223280355965840606711553297195204404472452589082628111495384740537082950135881372325356784942454394712873277078975591134587254134525666367460337729804774072440110580627544473977865810324529881614023005302902187031407123486297841226389608402054179864678717110929728582712434814288557527306221790356296057927390044561104963255570827861168055959983411066657303178134773199818385089875606085542188524209372859231472506558888793541961328117271338400259908929715028801431097379338551942562156482318763171551973934839120152359478447613351794107586543822723364864999191268739002780192975057463803644428019704066137867487277206902449448433002703119312520895287239855993151320832184063747728363866601321025910277477595125517199023624223698730806892859520295783094270985659165908466009405643784353457744759978570639216736282359808405724880647746959201714799496211572528814274369886890806703717053186810537223238883761522614347258823381381339433795918557577878196131008368134823803696480583997371019899848475236264846116302342939753986930656079760168108038829855858085394411575942543808635091936705805209059835274665173127383580287942211608983760762004574966366044676348189302069549138074045521027283825918512780439743880152081455122968999802831833989556569232800853478226923029399660283103646354380974114992210259214911648418449219552422836835613969683214477560776555188677603172328838479236975509344602632030701159784843516713491610265729460796569250857740357967871108657917747975115968463226032733617576397058531632875667697957841920984075769354523435783959620121225275777761197806722309289553261590978106840942557462299919414547044205060235288808071906885729780973394196555869755902873551711784754847605922803307291338490523813713189354739506988663656467954027049569113675191438423821582909841822362204802790588716451835829833364476557456100547286724342888339837818595013830909637953368808159425917894054371258172667601170884063809769411340937173177451849755643299068593803020184833487606272653799486790777539140133819097518816212856325969469659459298815201588627970643325989338632907023696357795915215961734804882945254487398696339587656916921761989981947451842037788759436773110721635005677803867885315919640669429888505995577640926824193404352899934138990045798397227541106499718065846260008474787210895577274966600926787160078533873340413984630076617211951673063087892500453534388710875441990126376362117148684717892134748391903686422823360980614906799955148595152498478141038145153317673788665764774618710657307368721071716624998654638873036712456251819786352899836651425916227931871754391557129356712520983808304278178107529007755829258876254425809086586290832654970066196562492125097246036813175308277736285047206177303738002043539456063756705108280065945386497033198678993118861712905145650519480042061132542751919748453700893829849270881267552900878400168117610820623805491078832499240539323595963753962701578980275330753963259750834531957756234767286912270405460853916721197637428943317155372710390722541458461437672497250614941743677677313305449299501911161367637522892824076490001864337690784965189260069628707910663942148044292394207340889417922643258262895557695540212037829072138777862361273908230038154077869527135245299528697721126167468029085840010437311696745780389759877435671177446955846106786706412952080997757139130601121505732896760406546177506328612394168985044862301301283030637239740097296073991851824380750168438136582390902970561141244176438767460641659689432196843920710322996786451551903856694428015506225002771394484579534105199830394493066417663141453571445902632761450348051515781425640096090476870162730795445886046746831773901140288500868386066147601345073647793460151320868241721423795881358363503659131746920505867996141773679485929242334621143254695104606018402277082124950705101796396168509799689417998780615228649197987349071843574611387990943300420813871621722040756269966472368161404300632973400964744550223256573827803125191032288415013713972844282811474542342113032009584987754098344255880576409583060636349403124332928516051420072847699295666597151103045998081373871221181007009321889354194096498972150084093144872862163363405309618280358366254104318658872103269575357567886331099451638720075567529548945318588451481345247720600210951815128164385502401541317138760082886498310929188950452223942573158590810153432061639653527619833126346923600146549726506987642507767524944835279249227175723951513541177450393225875227432287879259979052263055805383237891236962314384503402103981024167579753776953437185601074937969350552874597019329213291148848863910494449911299618635977140904586656383828585752327656959641646688175004115562883526134986825653217227027715566162184960051812622691492561321138222992692245863552791684367071312229284355241189674567295143430434665384625784156664699336616945411921022232865462840837469204821930679697357825121493634573513576975232325649186581239872530325102806242483912673785900072569862440695944176564356223691259824852323249262979286466987611796473349359104596565258936335912623946738431338484048867616661798444128120074987813396954662262972561920185781727182079931092132142307145052710749982251338997923003170335072517552422631595785090038682013427150341833236180408689925774782486371981758156791533144940084416029208244759656833926495697511665066539706754241712599005242379643423175630137008633397359958396516675989229169946814016811251034350378203948052730494518776182259146766193497220178335287136647173022085454284940016186729948815921617252014585702553289656843318416747459807334532616855248856019784021285673120065348331442720009042954532616551606639730697629928406707319434312697492420434696982378244064253606072433444833580023785012849569695887401880014212351488584939571515122998268433205268680852122757532441420735347344588002969683660934338274153529802610415695287792803136013737840911396723017150132062692916335601863507324314565766523852941458897427525794069324651038965806806551828748470155856908483698365154460508743183302241860324170924459121559440375910499105218787540481120747672756623227951691830534840675066198423296232915038236027907542344797682447057754160098757376950392796518679052277970917846792216021804967666182860107207540834591158039281627987397492499831681364504042455981261737166352925372763714719344392675427202729016218705168260773675530331152259683205844153095687096681998146587973044655396588534134483987268836521298526376508999932268333336727273337096910767532619981313420056104572177535416315917164440847007774564761948260182311785059120318099961902178061950204185529192851303957058282529200242544725301340454428430964152119219458969890217485594669848459571846565847651221656512108916733806201534389040078660975292478391443532469392488135368606398429336226556749339965014088069176406529940193969725384280830249965987586313848781325568203852722907565393626910118831334073558396588154365809805293731800171802115610602331734012102853651185908447922719910231767106411407726411820342265341482283373183080195224361138255948073094125036406585874845725568296092749131757029524975931392975556628581729106687266017598950740733147064361001371794892304635384016074663254216000719718443407563826329155136528319069582694437560535542673450679163641819129273525922525138816081169734870436872208881783626665345724204365496425953641970128161053577078076456870556711480494298936156264347696667624505497530814680244418646543284939904594143667320395447432453454588336847207329985822667155511641766821308931115384623650940443557480071039745893468531347371826188059653668138669989268718052064570381496970744561340485502462356401356848829740903147300171297185801101376137246051343195019125981265390565103239296031226881388551568397842527916459185444593701631713703793316946889395124916690960433426487988992854320852259989213615592995396719730808378302388819588048542835499465995304292083394453392233896247870058737064552809616745117597776601969001142516654191586614452585659683578454337486757978860578292781182391338267961802929386390264696573115173575804287650518536805516793247018742294357630970573516047237900541933404664743327309545847091905731305559191849457592802499388864236010133566928764370196800637210824264905544888032718607237003608403505003588994976421155519942941736584880761661579915120587980722584458536171340222570442865928852258111181586499550439089409757222962175253393614533972136573411024804059399727597400189171678125023879659084037055583836887078364829966432764250631434950873472844234532742604203653970070214197567126088531610357337442719882397052259821683119543139604225874970903043530093703023889349747652428527956573451673482230133630793931973796435651555341591820118324264639479321829461594335974931358290959127070331655930826490990143154644881127541691083276079142164425454332387076990923402674570114443124126681441285469382347409520728552273824156089646221652686431875747869996517552901144274871920823709480188364209666611654443808734863753676592165296051270492221599453867836407565068215607059902566331528310820661095026442843715863135496236875997564287562389260068987758240683900048351988665167586288198330963034257090169542246091167732942849153049152252442897856066213487841467934357371407733425002684953261781713031948441850056028977562339175709181385963646918753786058593492048380521754011949509894291787771208432222667930173574103187823557969763471801013353068060945900367788871628341750228311242296717249297291222114451546331190595360135959515872399518624734744545237143032548737068591923794063242444940720588439384074085180825835946741332555342027863181693085156201156565098117380863696418872138634494439203152843885755819355227492775052466525684662413579570417954021230455126480081631988002754253980451918293683229222535407602063788229380565220926782370606927200166999244488612074290806699541664028487418102017321475307398932926290094062122333539401303666985323580481040074325860108550692229947343573490761537812754315644252269528251334458592058437224218601322763312156912845220357572252339623438769016455174385675845364634036155990512070669352881534717334319687199110383294006782210615590824348620147800636202825077894357860180127127401940044333407133258967430719173014927552518885448266012378070953577396282806570859081949247289200434281339853635154483034998685491517747771778029007118868513893015947613937096627271098341921791292120001985145976634938569906623983833349025671910568418742083696961653350784879624295015899886188914832356349158042341467969609746914264833398301333607537709381454886147623530112777507531498914486829564134012879705397363603844999670497529778345444339150776889124718498616979244613131627315591882667276483458255459458059792982245576925528439745797222843023437764527423515029885431342808304540453858631539755991606321290240347843876141325708440015108481870621320282181112847660801794183530348192377821916456028251458143901518843049640959915769941345959636217198995839812764850520050606722884510749444903034969740016017512481626671390322650711583786152498398833830631193850710600796596575303219885748845906733446371462625397919476821307828986594836623362093640461897215975830740956622431678280714633684376589950019702287584163621756632682111143939524092062065596859459694265698552459029938819546864181851123164998810851367203058542677638010342969964978001987598095045755209767384702985131418837618672853106871200847677480551754351688720479155261044430404978664818370080177154380374417127769868206174746271573989739048209715004635061907846705014192908518876846937805060652762645401735751898430766929430555915417923387923259201947799523208516253722564629367697300379185849837626438864212540473616280510374878598274015425830725392751528025603676778253355394266322084702159780339907260191859904736768921957110481159853009781756143748576512914510148848970551477296421264322805598285552051696199596887917738382069571186663967491314367360979467018851468584021787118222559535522352257012626613521589834948017436706873321283813208545525823182820238183458622998615620403583198890647207829243249003312482462306833073542250791259564816685779466890540804575805173822453696197487387207918371898815814263945728494029268271984569666349657960081322111512183216322503670612357493439685537273884026649930623851808020456163354631401639523971991496037194982491879766990184666010361616728380256249259250258220663275081166307207187686500709079680539110055353208420250891621683090973442340508192058604190832717661082664661193873931464129976524077816355390287037515033782818826846341498068790794605975394371242697763657510224938699011423058655316028229958661550729574100960670823343128857921503381878178179289974417281912223172253807827126584701413936603233500498107138855667759503773722723519598974173656461128569376582967629035770921243075877216270934166926624404480206525521075375356173072814152134151610660489747008002521583183185098843960868518002552379139905783805233062721845669738729716821776224144037556667549785393691573014619170352050614176491416028623775035656312768750633219788354687960314315730687240590594995823794404801761692293228715223629634612813908603683389506537078385664110654622862113372757823025300885663831118622070654494033378966501507535139690098962304887727862532666730448715280716050145645714332415690360582289793572313722851880318432443599842489912056710925267110707456738775574350336876891269030228161673392040245419422445827457579746319207941486422699370174082594886618451309103524927740184648029215258351580779215836730514742261081903337139515455888646849232920921307936749229295573962098535303460968085034199895560676172597420755851949783377440521790680366790507743887478772762157966868268006132014794804467166401233296166314397313450489868682648611457797425142956360702397623609269849146912807294542517273255923459681589915744538597700967483854230421681856976066284907598978829662430344139627619785102669598149238719492470910182891014391081250979585386020483628117415602712718384431054673231075663673554044141831545406024018678018667337006154123903805838668853218546262717561096283603750472588664879883620961035513167325481500868744349413588866449479670306613627589050166837992531044883470178895925453590329168965828760805586404079297632343856170984951972546224950179251286845847175149586658622623284439349378915435059116987768694976741727817918554570043364147725991705679358645618085355399314842652003891369339860937409194468780128110559234615053693458633326877697482167369067575825404476195811860281468412116448189077793763586842517209762222687776293087864848691966573566421810504622351718315083177936292020716803409109944630896163132897670282628864643779701071355109811239368586532069124044509605626158167783568719327590211853134785074326765160612496769400584962806040746746211365824766434352079679545675133526289856817877016916218746203198401517457422278556332736702740275373440309880192450045638935074796556842006303766724770200620936482706205552832606938701571308168937944897038161885508047345504534892181487859865472003856837315200312907437753533267623277190548395737594160170307707401193431655221827175189817810122589631455921234065766584400363927688383012741985112867325616561542474248774603668783239541390995234729822183489304490594252552272453649977444972250106823704071147388602370402206768435645023553069556800354713298333386614335417520568476171939170018470632690937089533915290439746753192275204329060027422498769126756056884222032371722263724411504442666252580703673727578853366347598357429792440252066118140138333265979309617072975686864350762124300320976974266040851287663112434947095301677860237381195513849420120179473224028054015747927266958537273635701488618242466203449221988807933493320725402381978872951353259595023168652722159899121819981694437478494307800476087044292520287744620397551043924265019073112834632391205239021318450719721467792255045971823767869205819019092361822774173208362610293094312934476329172185766088960084935513122100711287074367836675299117520230113363888772355545603493434629112812337771146146720484034099075633755959935734938085825296921363026449157156665387497035693598270073782705444227837494153333278331314108848797879100725274081144037146742076140028770663850574787573983835955195649115104455065108000451399996175846308251827723162763989649424459932568845246502888519043903458033554198787658932803159535019683745028430387115656749151940919025220371078910913593996285721925306546048639278266397225886096455006111232810480019471130844138731178178276688728526881760798656753787868666534493858578092185911390930483916391747761280220307776085889515613855418487803039068524370773926950851194763801554640380226148034517515108541581688950802120598235875777284496323202471804273180399162038523444636366954562698790950966634469868597799172561780377312548965320904035052407092873509814431908029733871044448688506649716125421997951601831164024987510978786015404772932042259756667499613722460924754181275607068632102415614871235422564109489941595615661486971268192684950365498249288088790923494061830237817063833796345173441206008898412123221040783283463902242821320941297716874049755071421836140270426014298824589604919286636298450743704987376077462370735099001750935234318446638425045573555574735749879178762119357045241282403045604653345578054399261421086246658017273106925135761068205867445403773353970153840249758265968630638232992344291045630067115374161480877311053317781847123153625661311327965866621966756792395911180766992590584722207792004929817291302275530910303915781952792075647100028152130780329110030964338462702543510218764871718081709004844987504613155716817544431156608408671763673970510001998628154598627151276633158029218739246641013261821772272314137579792436546441124810115419321334616882969955036319931225805891506621775876361035461503422827590426830887322785091746210870231502020716695839627641568083148367932178543495555764967880578252872965937467149497518108262510779354583603060099995244276372452088599463831880313657856637693653565745067386616504642824707472506376707948959065455472987446991055095690083423477284350984702599883529784846819272773404236991016371460722895020561135988944304663612952375094946506756135012922876241708507211263133212628651773775446707994022139376912486159188084747471635752743994233640246365090236711478914615435295600900677801809895295004531467233061010460309254037852766242096091424129568874236564106635287309466352821326148336350169046552824937666993676957893298379766805843095273780401950700204761348726307346756611329010676489513295430481418070812405910195684400550904503556391703590608333679424594949229265761254595224629787007414445269848939654086246917174555650758868046596245297086849185829719865758142073084488713213770673637265597967939424802557314268600608913900723060908560613549256100956553877788046865365472450239358760364131442823562948921237444590579369797013138964169843748713333035215610865450779904540157600805731109414905843170822434168266885976877175671625542285382716081684672090264724154972478364110623534346337241080690060810184718366164709478256915568421105000660610542700616404105145983465037105324913302470805145755556798835372474792072256330948799490521898170748462786168115985917894203209878656705227126298441066607568038816813903257185571548551729262154296360698429241309452460982282296857189031020854508266978252770533786772815263941308950883391060732737999164915713054377356071417819649428310588504815149642128006431063641649377781717798859791652870768212498058739118803523057913604496461790483676818961793453703725972606747042987768672094567700262517471464338200354635687581675268663702204349545234690302207444211908001004168743376464748909409750418392379699399215849272266556066680825200025872117222987708636043319514599658000204776089007790626035150120405756370899937699778626088429576394208361690052676003077940793759909137464709341105566245992580882039963617079825539758148329279725589962559774877263825506852018892142422463336785768778000711698917452912750649410984568240207812327185599941559532236021977656481024309681768953456863600608500189429985464424739299530157127275697447776426636541161419713043628770994072537780542206422334172169544194924773977961885679417319656290766766498583052936280716053288499393847865971907106382842892400644431648536886417119306057063361165232926485510672965566466947832652908642115848623802778954645799277707368657742635743464097625380257870123854096242781929243084717082556431637352117294071394625759116163345914728269077211680614812012423765495065839485612357575889156596533352441291955419013443263913897200344851295740838535685221054253667494096610836153364594589716572154943931182160301121878422125073824656109411995131474176560133910656216268453751253500141252159537745776397251603542609950446689707075281881737623947504841334240849666149387464061209957608572176745737886720072839023650138251651848285391597660492637918343380948719697054604733643368020782648876341623932498837671716152532536355861045892342946298489183010144340096022593827869472799276766732363542527071345385428871196752958126725397373585450764923065280279565202792704460247014965933683822680242705770091166829408116688177341916226047817902410282686806009003143032187397933222811771952016098777487983409648209187506490588643460724736794982489831503275176448305875953664494154160232725908875597595885764716800516556408550117419859417923839409785637667146520365247107809877108256235506003904362999760099921808791749534891296969784895285283139985238193979329125476689682619763460371731308677614282611559880933547081300316894449704774155436533096615318990733279298752541893379350221595634670270861981006024930246565733297886339631633333987653225535945461838651802168688816255003495888807132523508663141023113733312457400280632212926646297520226561121180324824061626629649166232507711259192452450678495097859133492735747820730030594958773431082028198271960603193136251043114867410229223999870174820764980904339434507308336972165244287612722887292948583430538058337188795653935299089888208743159719452315737904343926313780403854465130186599936289004686374400550936769505272673288007841192190849212916815013996956041802942517574897724543221708271668276686348565731375922663730737384782945846495474510839471580932249382512549244786116003242487125489349074617615435977771832025600391569984720290021954322808798746857136709158295003306031728991236815554173937627729447266611558217394374137262029912259903617090238727536368480413384156997816418592491392647209144263771151707685436993349240479546241642650157573359246271750150529544927660560917350576131032166309324272426451570210396231126419067020918894344203451844749331931713744427895177173193028141366358089350128319561847917022216590714119561403487912998145499909006862912345538348526409805237124063314198808630147698723133697753632153149833767205765719524750298673690564498813174284442841085988296090407090903121271518260621734388410771167187979267335305583518197865642970702892318547980232533675057985319377322264756229438623458464095266164419936597948938775851547286845044103768461176558211241868484709014637223635317841600093914716510864743505892881364689165000621005364941620241045654971911961498577599818003807792080385234468751664327495127629543352445487955842290646574457340852645331516442223884426201855620167989616639005665784828967656610002497676117710912887295586990800299346090492354515600517771491777067673217692023922745104894580469591228195674859949022711104580302325117424778076020396416897616642525805081269308843425562392359898029155026476052110522236033287954039908003374850679718146531463053645350664283719784156476877016189176829184980797422869693847378105344491964100686739247849905598104785474119345789354914877844714857867190583629607811972578834349099332421933718833868059174569208881632935555720477774899672124163706314481806745823635607861812724185539138891283144961675692999334707355475919593871250789848768593274618310565481245911150322985430770953419501464196335204295434395700728120230770764502310809412217671948359109995015158793248738340919120827008676353782336001366502319367344383806070449387558482562550522216590584806211568368592635423206259110957005788529897541829943575171031584718253909595180889487918172900193925832680290253745351930150805142768150315555825416970220867642947243120248081089525991423300520119756210007202717941368752895926294265622132391694530054122254926675194947624380504996971153030683426508188326810388172701189223156023545819671170905693173033933160352780148359368802826869504642231562149181837748759139663081772299727445798961749457857142291269770210801676838241773013248065941411266701990524123455462597197203494321741410745049193462227125058016924153606933474593796981320790255021378281784956977566085582032628637150017032813381229290525048225372799653924639180121220579536347355731636476721536265465234337709949406670443320248747204184557252767087157353492529705562582601674042782965944867147833057172800527897784198559272117505976136900158872805056934209472403114820560924303234408360659083658479136659639422949162072675116419451440845068690006736834553918386545406999418835820938596318740630167692352108293509324214314562245223319048599446653726884453037950800967122989216943095562930067610138444273258244533691143726446600626201884679684069678130037986321449757967328496918536950603655633689107578927175056691023417271714277687361901144422361221046908381571336835245716493147905679994759456669776512938348545546249040180675150386765954025873413732065707427181467837714071319636098921141777516637554555775018602539517883223965319858004300495646857479830699757730058587322257584198175068231521753285686103908108386079545184252972463355257218910715026372542873706979241901135446467340625706579704420774645604920254653083147941475567105788065236158585506104497806532135513513620420818573274188386552139613556674931711711654147176183951240559408247707659531361934876990732844237098929529150788829548183708052463436002041258185944202841262794008838402465951626751308178473718494214129500301819959838776567799515753794143276477539861025962017199038055632626112065355815063785160747280805085308053361982209290455085539082213382733881053708363893501650598186729294567787535345724738685383836365603015283821379566769142953751396975031418416407360922847396181512075257381696127045685067235897262332635145164647015802908046077174038295267753931578764423458911863195765938466727908634159954826932569960595922159627392835576833168167072957516705736839382874511518426572574775245878340790433541328608726812855417641063926978456357650999336779041450409790559116929589884659782806037350807205185838197711951244331273995558572427971017811186297057342186174371190354917008879437953742958015207857448979457795437329465929792664231240808505780733462377279612260175582606130855341137955790421790188886900994232974308864273276129908196984840315464456725958158485753363306435472556663557461444322507793523420652789560852477778181826796852953390725878270047244345431176069123718840079317223485223243240799399922929608526822156941271739031029232012822549303469879876549860974366321312834495610775656465292254169118556134426706830868162080594404341628895557508979624676317916701248373853301379030445666689949469919624921049580409912317656055001888496171557426823603123050110400763702659427945872836903376122899623022889028989717329393575399602390208714885845200068377110388219185202006877220462230636650066970292271446047788592359819353111203011492533274536731222908151379044887079216016061368274583859061152597158568779340711781089657697905179322456879825657131412773596450720755139406563345011764362375012295626141313162254337026087397236209384188944580226414902689914635102257980900516391827976132012844101381652338606274750901384856233490094173592981030903635215891595254147282207736045508969285480903259237076893325391083034750710352991213182981927634440928019684448509162536481877327449199895344715831726358263142657261445258213902661011715399040972497224839635100160494902542300635667063899891706740700758913211915290461989213424364293506787273236884235778938105321774198305946964823026618354440300600794741532628215240045303866500268988034816518866616094746830047836739409118691785037355648342363018142216795567338818188681022762647240840422447217361213783074771347267024785110712723920309016848168246834844226778880213330873551550448058237053970011608920190652004432907998786134681576602076340838238732493129465172754924509367157840847898140478362300970855103905709698815890962071619213136674942277639789659515626226950203450333223647230505696803361544151303325156067109594110806870168812571882268360003736662578278815602965555496501103547207585243513948277826652898800825829526412267722178836820455780500574833937896574511079998257525391174531654606709790254695922804931813093498994680794317118764901846736810544994516626943299443975401699775958521831142243078729651113963984794907689758263445017240482118466403291094997938910766125058937438267975094595901395662669815540413581524237124555503334488054089229639074119624799397598395011003091196100200586569573320549508305044511984533149562969920976231500003631195068640422933061819298861663311542374356147905788704223604883668175613261713498497656511568770149001517203310168585890640560297245791795288911114654046984981884588100737698979661679685983227965610415001511844345656238798852747787461983978728401482900574131214016083258452890311469834032400729548801557855157222111222406426794878330183244777410681595963918868820372392266266275522675577710678201279624651044380078724912751345389577456837629623494513174021097729338943199051101649412605165592353574435207050085905808679179069753271850017864786725095264976022906909809701540377095728512373508340107171802924415439224653231242418267744896920418191773195563860936891779247006764994050368119279881780630338859423865234143127234310415855195435768923259084542265509183246801089133351241304095531490995388946377465713824134836712283855904626608277727310240209301002808439181877173058637377804189645480919495227871903727260224266000850068385617891227466306777049034277572599172868626733940269366313278615018834099200583931525271700828094868834528100146090109058676568906767642073997262467115682803157265431274458483080609132252208045199681216259585628627125405937758325675659493531410978559649430343293359210279471609481124717619690060986143522073243741808085534448581042002677351960684188322613070432646126251767106911373080859394583409057794985495148239192154351418782528804690313585359763168624189686731071116969416757896339771978663212088365223630251929495739608728682160938922953937072720121566900449082850089974061248328800645074544715445083969314484315789357532228834796919960823480421562929768581409288623120153428437289767264850174846596669542883700035460277655946983291678798063678324497008319679704542214176961877522808958935827100052125738383154916555617208630574284375686281541755100373565486800964481492383934094428219217834521630626226719788183652222137673622404120470716151060194533906088500526631242281691295892874866848009434389111255352259615361193679103565705135005648141695983018138935860969347538669088854441500378064015425514597611837495938926975412289773559786161123245919246607471435719400149568041117231758555884008663685846397548984498751822225695673187699268086444587996806228424143369131026070285460681666149996013098411579575708239153858316185928977287289928082519872937125605235963480051950750679344998727641032847705348965143011750628866091099047716517805957281252641590892491505769361259564409211313639820826414793310868664151422789114279295788256658809935967389078344148012038330864706710914043838559885297963261597941547988391049192844859018317154664956715260107829592690818034268956454300682927499782656043995648595899680651098629102408898558538381705999057793209773682930892218207096978630348280837610089969670436921339442332587078594283192901538971422457746590378080674855558114320129149750990629913234919353786948420914439487187737529640686794487201942797694245391419770946762826110740061015141535215227746968676675837932855990465742671418445373386627028910001962209828849719410143379651536796437209897782219215086285742707474878192787545290741366315573903440693197591761390717008235477899421838681372409702594219367157162153503136083061646681759176503603307971169601411515375156802972876547906536279230704946446238038066362846231312961105298646070673788934411232705997367845153795285171836933048156988507082566612221249320687223817542820883513920350043117476642858536271451431197942440751590014460368314637911594315328336591954191166841420721370979879116685291132562290744760175542946172161804495778365503310979361452609041794080952379924002968598634799727721919050540999151375583315211586408195763651321372038934127177708695982603398192763240174505671858486860634284697053332289002453754902215148927511782277914743400803947557549600125143059385166240285645463225217320652799531430262535718193971389981715633020152699602903705059946385233008166768000511073780072628276008249597630256931807172435710287285336115749591281572842746303456649159718722283117279861559386323171186962330408505824312003104338678793946004526534273722754479677505803694730856458423148833386307729280643747018977844574713585670353417055671133903839916676063395499135390082162431256195170349002169038162413415792870212677352294104185747522562841088275818808861525386057687425515477686553574700877250246118941669945950254434542831453216013667011822914086869731871589613008258952721462307869741454815232583230168836916944654715750546656688951251044720384136040947175784291192782265682498818208064850333079084308697398524713540751977329350397747538413724561448368604157899238535581800775059841438167622862556762816083100560102586424990336320090483945640602021093330269171322890153070606362405129637744864743141640815363868763417166623540602717743190238706739305766304842532635606826500165927966539649515545301359171852326197406738812892092033637540150154355225251604901809338113810523112934202730289335534510823173493885062187572797255223507105896771603376058480615149850838983061154612306565261478067228646700037373473046318982361880813082093394904446605388309561987642284511172251266640878491390872140986890135118706960665808864271321453284877629230741102785010994039884963237316956763883753779742925893242446043916739714828611347024244155162732363345786176783446338489224411203908864721088607201088654801666333166776733125486998272124567563774914491413039999275522856096688444243584965633694915908929181746519975858413880589566606795681502982118347124642208524195940468628186228387811607489618653525801936625486262709900452815680472007838654441509385953758750395158991174546862526579632850601712663073297060721353032119120915851345317404134891729618800626243295710663611320518912313771030136722443472451716961999630737086847861329356888591120951189471271157788639905626985159154911020088619989923058496460938825612082938333520296952518097681491239747845127765961805231533753546283205354712654151380691192175172338207208236224596301699660665324521206761394472954527499749309990198420502986480448568241293614922502439764606524551310110018886977514190400892654090467887499951601077824546376334742454143974691780103378175943893723451249588621707593309707917142611476985030300779318888935411194224335451983760551116482268509144456054834245582036780706394185335686497179828943232413858310549340407392654352807047828473665056737580504891873941394084579601127022762787816001906365076749965575877546407958791980665254826310661757387575463711120956834556756468993439072068101681572159652936999189537550535333104886287130127237635055976049635307370915566770406199111255744949317665178487514970988784878965533336801978570976660758748185104409217426934236730089191430301467488558026136877358853100651434738007277102521007929997838754150618340181593673494246953063164276404769441341930497821239412167598377255328131831575882768713049224161261897795838867692940121120612519214348476885499950885842247150689652917269701631471867312458299626052241080955426281867305319054295057671547699816144540958396109909873802117931706387062100652928127027884063662161860304626939618153636518479991156289851960729391074613202057565261419069427686943506640164792037957299789722444083325050757312393703567681456703873319301267287628879438499487732708400797111303117935449758882992766509260282204503154406413345963329671906399609616977335328362361071908937697761655540553800649543352438680995179017113142569677713515753208602086004417284774069805145915982287597834991557443281143811098993788611048942732170029538446086428087539318797383280717172990263380758335757945548228456412832688028811204778718983913342294249424152489415841865266523615252924007106045027203741080470425992817580342398243044550106704356330519182267681772558347944266288764613973499083780646034634910645493989253617989766086267030097256169131766033308933993801553528962444532707981587009875262460431692043497942660474529209190262550846822743420433914070290776119645553231667348125177765509551648738999459739000892596802837434495964587423786282404794174910938086658883032102647667571878469570659305650616325413698376747817549770589290165420362428598361010884587878371270845950926789890827529785993496854086957519231414216394807016394447663355398897441786223583525371870234543213489656968713619665762277329095355031574016545686201570777086786535401749471891226463469887818692870571143125670527574502936403939079642166906500999298842660644768093057543492027959956421496904872121036557005834589696519598326662584607372831195304317884404155164620101698171300012134032472676467576773595963509041531607384136432833063052888427494898574008277876251954249878714549675756180225830678008878709649416769027260915061762352315593483355273939045139284451920709390002279352065629071092688760188720436221427745391109403045142272784183505959359314488869538597865560752893498029690224764558193894505820357279698083471051972386795866681544323805746925911888179954862128643636263270962827227979980570155513066094229584823715201023973997535090288690065597526204506931748768471438717828594579922503505412015040870974298004864723787630954073963937697260874509660099831506245131090219592217986627173883585468920837036884794980285672779108363914033458532231524041137699897574774303653481531458522643739357345588738322144246563938767503740002570170890395071645210673969806241778836286980119591930095768641694310413034887832754817066513195023936252178302585839554324020914207405485156452241547631984590910994302844576457217978331679893368926773969650324886746919470625330671721626799448842923754268901259198957144224102422676480894378525513531567371723586479463919804587567134337930634105743497058315192319873421603585493899717055240732494288576131905239235934340802832743738670516128244989958634587941237266728826064595544186651913397648248151024377111742089017275327712315204079205447117614006345833091608890190105674391912547051612966511121889794203836060195694915758401074283059443836450768262287235405300361201312081977891475372550222064359565018025869126607384163307223564017278707362668725577804121074761456088845860878391988801574906631955004466275683149062731844931325438160280647356355469626880600435420317413439832001787284663697472636735448567000730788420911749217908774970273448771856681646264293736839531109356671949121685029585847085916556145888422148142857790232708169818378416657068725240203861459725084529024569815709262119330730490910401718276081004065756575406572879217985715424017033470625629109289191121425257084491905561855450895311409460209470369957345258868251888587940635022019506691197421711281792070527686369152954339640008998239333134768246244737591889139475896025531740469104115739725162366142367618990033914726648079192299601106386254922136442167499495211971316110062561797902975299444503188665543407630245151488337447669075202565985040705597692893425989013265254904248472744974660650467406962960131769355557747090079159488013481196313212206230986218984690582861886056782479028765693262277070436852674384531874574690262269714743944646135917071310538579364760235675775378126931426647550632749347970367001478060967096172744964541494564965162904095581889828991822811573038160382588576271820597841476706989074550447671143826166578690354702763588910494361958673148424992813355515247787194145240432054705606887297592641089147747789900296058329694288875052901636880276364462964096537017015826187826628323939947814858395709675772872571442622223379643617939701394362185549069264175484657570036429411616562798132472415294657799249945037332646388543086748802981805980437321180789125681334389213811432553788994961438064478433692010100144585430901799157182414881307026419104085935767341947455270724325476862880450182730374892716089653505600305146769730839787512934503009810455635131270993547813012715521946670824621386012309448076826882997617178889139007990669132040826832499516649903592155393707964869128464975905139562548966719783834357738299362481792895143731274322785736152338874884863659031275244580627178148344514008503514013695880698440587297431152322277674888506546985772741066095699987893081620876223561729990173835292003184130677857965648998496342296040076944830772734921230088119705559923493551909995278148023726888321817032978694364273150753238798173326528490695969456068140401892949096742297552884931822893831775114875109800113086675340804059221230462601740361236280649444766373236953843758811502684894377548024514506587869977528774404370359649437998802038684467547551976410949994145011248965810536012378565139445119989625923188203683055969823642450424051715655221462690695744433520550948208574082973700594831967967724763452963244298088105321473101542949398886893571791998125093586188963040204326492177518939993368761590315183532966422587622263743863131144284403293871546396270908262824284132872089641358511953264696793504288361422630907044562227137466631561861743778061658127325183545410136537898432947985021743667780311756634258423182749350362690305618681567720240836713111436790304671647239649522196795010385726213585830336784731685854732724716107316512127167553522030084353734285383419461170417791506286728769241725089122238572954924285025196049257053810982843067649726598833296418993064255780820673480490961795662689672994098102100940812884742089522558705426750849856095406424543047517596984057343711885518013809025115238704195368731488126597227392237503866862536015538498315029956181841309437304612207279210458446027515565784265677712976936774623384489615192843393824441956205310095802064595505829238208208510066407173410905375922662277056393585984291039706660585890682560187518246053140182656318955796560034659588860503106705759500590102758398133773020448887193882768206884203708760119010814247153133358724272592802207980484908333038730420972109657122850998235993251037089854898687622192486552128914532777971489282682999912968876150912471285991079506049486033345537416577323757174582278738036928335568106318203876084248928535746509828519050218932611505453890698127770742468733312484748844826591072687647084995115511318648400902348224092271638154316153169999151952859665007732182747366387874156327537472867245400910201416444722883444466777199360011208676297987708243624357133520989463588292262586992254446521559007871512371368396323766899344398911230283151099263162388163337509506226602790914194193253178682700762919234055076773697799251865080743545219989572185036216778617738551407274666945630592412337571551442292259630546631674652006619427324104828596902144895924342975338333245539158526705597167780637644344023543630248287445289314070402853297454056588301723144060919231714371861280580169241357501088918434089603920312055173061639031299750033133300362479616792138058508726939188338339893948372899273336036938700812461307090817112641846400173572492478480021033188062341269464162943677352964864578233151018950324205906233552278803193047575860155388176935718695540220462794837310707839359713971190498356972499934164352892399132011050519379802517425866505029539471291825617026277697772459297189778020589594821501041349044285393725936844416306419928635148698496834578148166027426652564499182360909245941279896660269293915897810851593290482028760712612075162924793796328096320909358195273661935650106082441611111643084078119358798745955938431608710541680273204802111194296260542195571773494608557008906690837750984518203294818162074220780923304832161938279558781019015550796435427712881873890208107097096607332264559123201758441201564363907354756095467366506699227018113104580292376749585215040277581569122257000101764299387451890448824280734070517869132722544930095818100634035196970361252679131473708945278151472353669603479840746734122884107345585677000915849438784579292851724108825086448592475940877285872558740964490429379505490719136016263563148539145428975318948432209090217012707722095410957944194487437059286887475602070777958237889070056221499967577724022844388952555186421624437364499780949115733914989879745392525768949122455604428746284034732825389079738386142187352491060547411144794583348892013820581539299182172260935287988548084617166657892271612940446584634243543764515712377869057804552633886088917646418736552098260373502743495522439152853106018685032302249983427914941685823099473591661862773497232897895402233720418875818314259758826705970114287952261423668481457868863876105807975218031398490338040284911331481633072901312211716023843576146826775861326082597540239234030757722644692618918394669222552497809187484928923985876235691998379343782816290718749942117579913174709769619519802124754954637543714017785684872743307293274701727172135360825076122973853174955467843130097900826971695639779142806391713290985152446606936673315960657833504055356218932337448600843028569042278495570464112387538099076239511791440156420717551588434651922969447847787225875925245239350252424007471944892096306954188665501775470639365814298337431077507335543589870641265135435918756723692805398881763250203061454994190107972409193942932898249678283094932676516009916760134760271107260122442881972428570071849867934658457948893384678447920184637005382757953589335586655961886326849000337252762708105723670422429542919864135555536553378540980691632014214357275668460111695719965069571100975472890978430667578952293399846668201131776308904844496358633630257351245979897043261784998293563592895051303981230205362869526582743177822529688357984604724457498109348505639529610870868215270519589485541724565693715759494279636700222506081279167128525852375199043787168171600473989348239698193172254132798372692782960430375620799394917941222868008333013535179177325118995568982996439269778801674678011849980512138886158623921599610221790892776418359060534021651532223199325396663985998771344766107818396569845071989301316943018322470931011588399410888526099488977199373601320605839812262117161633081658372785480754554705191281068910742974123642753045922347786052224625063961272144707960993779392707883465360454719288763740572747591572888578723957655180742297137309118749866155255451637598278305467754245305861704171281065170198790887875433996962223396436564578830555104476669225517569700865635227215101840426176175962159381118762284822895178774644138234107409350500345046321012748982104026743128675188011169056190600017102481815514706038468941986875184124228147928292895498263720152902250283674816185449350057255468298147439248730022716681146092688476605020091284915279197631076326161355933320544631493834814071518668637559052862631741091172729639826602116989195565290128588023354675021046836307177106647835512687583217451557679505691219554369083289613716497187023162978244463454186891950277037426305810536449267699069756810007323063461407642635400569535240578044975415817815205463326186148603806157761064920088170930729234900762801996186058350671465533424392463978073727844003255200597361219041371568286324129328782750318321874908078286548660095018963166463095447437448801750603271287585163174128642410719168763159500668264754930031124131850612497000140097208218108892150917369968702324587506378884769791728123907113352262991273855074427154273977779819818454689128683522998279151381844346108048050799843073265571092987098347217920129280857503589353412846552773757253244178754652436598936020955246830363379141493950563962900408039993097353898628242409226020449931740615609113240660838077332742713838190357412205191547203909997032924680870001973993305361998266071642474442103212473795095058648434926561503367522163337504390845237705062566814113018974929003757683036841496931635895772051160142150667213889915931396482140701049065395209750632393188511220335475026957795624860187957913182617777419464948000388615874373562044984351059857741423150403035297613662925221388996291249914280679726015093511309296570024954088983354358427266168829450265956957710574084034485487002738416748959675653081837446571539108365631136814401227680367402509824611276546006124838059704107913785520018063867030876779483110667848583201971434740994210934783109081127191315066350862908526706795106725863506706015943534444978210827412527643679065043321747752603736815250112275331124594545401637532880079726910052337166574249662335181842409303468633243252317396246313404350973874806052206969833273622034218757202885175009354325380062264202011351787299196257317443077598642912702333425689009912399443123733155666167405856466189256650748762377525045489829133598010147759100136819541558067887749487342179316978142835075815918668186184951473740677041440447188994417620104866070137691117781622398766737509117175014377962583743614438272266785515734465749789791327889497043626074371460877156183231698890165454639150563814142231316420605074112363057515886622532699268960195627457223869402954847710469483575266887705455154135829246258744683838467627065399053145375612038406320465946872611320004283216356387102871323807255586726691272868665543219780738382890477042250104465421839509195020621049264951163638506889600042371222773346443873001155057822505977768834260001054619708340256815325817646094646328039353587609642684595005136453208616035566191140460307341129012488258218865976587462606156827280614611544172334969535487865692834832721793803501961778804378706189146319146436687239081245924186972215880291312978372341570981759350557346768114212941468679771630316959968339950189409077623812779935565965660348070847106766234664241311242310871100768340129188293164562155329998375291920574396662566584109994946484115395121326003199179163733602393292832665089165233087171131341323756330711636744591544326243146220046762577463978277784869726203789108491441501554951827129674861392512557856437802846545210546721331070101025801019878786742025688200117480823663762598464014130369815686128655100580405908846684038609482804813819431163085967854000267592503561632885947525558743658696322799445781155239719445559715677657759016459037385688465818161556329666824905767283594907073459736886124999404171613936523345916357399323040810506336777867353164894860290159893962050324877020908070791758424813780600451727293340779163587112434614285711681210465225680967612233184382395308553788421557212275333361479233835904180865000730770358964398949236221473420778518326448792606631855919600920328962858500662421568628811222376043479162845105297458191814370516809981652003520957486322416545230380591075077242427348510946816966992932665011017284442057919710015475535099773679486824274223587247132484945747185325043029774707936940299266408574619054563278755567616858956973207535624611191218530785695146314704427990400115510909409294726506943606195154857630231981884366955038842799437943281170718272719755297867340562801897548298488302312069676326402216547322938324747249143488392605073052821179855689266151457968451598458211864064562420017857701720967815429406254632927339479810103915673557894600679036431045087701420419353703334783219002466844500480224432060759376734124928344498737657839103913459828527479011311141681934262826327634574069087162216619520609384817534016177290432802428275969625969003610267854281623772804587815698129718178747913009856556546388211504602073352737550066213682855055831196059833956596675924338949722115366466802169363494984734182297270038306852045015514383733157734131890935514195249267018700241304930996213567739325441371160131900481832290027568806038254404393742508052421165286583067327450616032782432860946933212167380678758018277817469750907850895423510399893920628583352410479365676410821358830128667114678985407252672055143984816619695418933798333961254375786325430247551030326117537685177878129840649639399225977481233202098935259624269678038615081622682390102551581274816582896447155798845844732632998241666526508703422726613718254291624518710861377699307684998650400554496378213292582811750223096010437916981016766812509093811005916108871103129807268274111841518238161492126259865120233764060658871653065451810053344835161243922643591889803014311639296702684876448271127815550002299771530942683472672479854965209343641929090620601293339215074743959949939744150051731581049449434727087075002881415147244985666487977613798545049568809239115173395466793606942360917854452868747231973832144257644495362673955588755586729501403569089017458232017956629985990524656234313873561023818375582924815619327885169075891231850178455454576232172952578976501207520865645833110259107504359088652547924336428089005701025454179737409542232723048928850562299791299744802230595492712856680755943060153353571790202439991436933418131559670340324403759516182857278955423533425452739683805132506581042645597405113319062976011121328779641021233256245654424174256127455452786487269595860557207086809666024920619105443612111856365501218935879716985628282178395459444903762409276544132484470440526032031961816977051812610046155020150808217484844059649053330534258136689234259609402983935976750995480090669646190217657381604506359506972061961004176327616623435436948105396507875089553751338704714183739764078120852060677068618343365058197756327900026372406138635306587965589471039097036286752395540496638782332819902327361359461307684136545638970061356539119773531314966356067388834261724809824319216969810571206624855785523316415096845163237183445761011148848830161345832017570186257548401260690495556702323012440600489153122225565064631498228951998565805240757402212183573292697146030924411215091225515976455802792825342951545519951406100002320583490302237739175339711816735667731108195191003906835248009950486980292588896314134884391645763884340877681363031841292573888423530032973036522065578721500807569277699867863553690486199512223311755370123682544290931261749930437374783608957567270412649752598337863181599150815727886201629722526945161269084157259384850310081811387943195238455979874019001502842625358423471356437980430690776944900230270104500493343157372431205764432946743649503128351025344946723124686179398344747521723015120129009155703786257793277658919116602937421885191406515938442639271282680296528661763652613725571926482815580762939626346712065261959945583129042774334460553037098387386244656406918802067652449280653746600236598347555077389170913579009384786960666250999792648780995282854256396509439647374091148018614983574275070478636084146432182598866817133686065453806410833310440841394710023951697785426929024658483477952064713872315290547321112118463098060493060827552850210570948496731806055995313437381137673540865137636194588669401553864436607755753910461710848644083840245498926405115423736925997184678728029174231226324728023909751793845426062150531483645767971663725811419561949871672029477701839188565103276530489344592143276357717440882517704629151906885850889769309637048513921598076724863030802228085771748976545378091791909103922362623147567483041132264016379187447088120840413107760769996134452187916678933486256261756189863611988191777151916802875168810118899649878950015661641964724566525196173956232995167443472523974294007721859627957121245290889170158503448424788223706251691326059453620247171633702219851504199129321080029127122113756463853207974304145454832876326835093248487850654604998459595227595889167004394558906115973879655354336272334027378733962445608813823660028744924721415311649299518319973385016316092863831943955467690456771272522163592477560507509667915545086452888344652400075726491935781396269631113411814343608115363249347673030219833987826182618506681331063579110450801024676190246866640507421856946267199017475409887780483794779816211070784693197319819393994251031594433192394197851883392637343734015417885072824522426309813233292438948594981828527908536917560472527885629783440445163732614728847687648427638881461955923529104729102960520294297374039697848560430824742100071176981354311061663932864357012193945125962052558066713906280930897114097790264348873972426286917272376708276359559722165364965254888485356074216958848359097521993476394678886961840675473328645973579138650948592619479674272388072525892796287639886857941948278762902421801703244283636451100297269799374374516840990461765659611485538511154912484117506477470663813954794286644223477599668873575120184282117444941213942654497011528182873668173644154930301034370859052033977300537126495729317704322598126557676387005641041851406466403841635368831290511295596130379927907088882480580647904101279504887503174847935217187938784521777245654148522993539671543022370031175284581845916493394908278889507793828251889429810658064090568710981101371862997007758571011012481503770359260666423358266013021275827028570646921873821208504757427027213223722158583258649164816931210641004451364596962456171892851779164459458661934810414472759416636079810101384846257057585667636021692066042630522519878490791578448192286611536271891168008258450080078128984085815879746612772747786788028690893376720565639440299642749325558100227096205760489118644371095813749855613241166950488090199399953860076228733576344040927866572199132173421339543230873160194499494691141341048374625013371598538975225043376608492579185189052477493347167900608366651975459590967909433919322268605478056283471109650621244191685814966829620683961856017145519136616448685028526060500242204298553040800901027551205412999242208713346238954279310428253571595919980255687416177481752252046853831733989002160685184765026472368464417048110002423263037697373891731376648458110326423954306176182182758369505214476066560925785053138263960788777282644653831656982380824649934347208556045621608826672509843262989001766753722050936364824057784459248887908418338938324584472662692485927413799805426916606018015281829220615156342336058195362649206103454081369582977417246443237556360592160880968122025317659851366795187703969151400362010983638002818199182146075997239264784613254136149230040419674385214714057236056183035062593456167279857201293050710778046352282462071273936318558898520957470063903193144760884248401081583548417588349268635169824545400670611932806510515409006588422149584123217377755827654102591518521254739112690412256312352776689046710296596575978515304234250104354250009058743255479297822969503160110728466877567576078386118460109597413413116560479959588606637317523657031816264092803966120663167643731728955029598410075589120304941837217480939068427381960339654368017786757261964752713864312500660434970273315076410485924477149370314846265366863665290038226009051421027788601715832309593945898058445308834226620456060830939595138487320838437755777898241299053472392208713369233819238387909594608298018300824408155718862169430718025623921779514195362040508129319071461159708640596190073713269588426102704026403407221967338750289908029255249788362261772524383546648129011178086836295171069341491316081976915191995472961944570279001889378094059459074960272497590007955837459542570358885102081594246201432531623698013214819189905080780913420916534899678564081867250611229636161479813216418798000819703502906559674043778041670957808179422427276291457529034363622239069077650486910348352589603598158127049615540697062207869213459564532633820683936201548971890924818961963123739728023482652112682141711014439316735976130205902102473488753452896170155527758116267157789821005066148566977502929589258188716809468107506162691911034632360640321476141529488360187133030632552660228462849500828790459838481384037077944641996038730505368064815603969997321827848458416441590731172275356822112710841113841457728736347442059390872419337698940971608288159045326557858942997819681993660283934534903862017244420024444547681811516924322879118914488930963657373213442306358261836065881899242759683502416765323952860802378094089575185905267737212799100092719701645824776157986677907668187212216758617659117133789911713431366045406881767145604956404573556870189955960606652713997690180949588493783477660315926403412229572344600566851952483157330663764564313914111758630947338611818897070276323296493725998732646977581729075742729319448522077214877124750111380227517629157653294555824978714788768768631210849605870950602821994015979701273024082398983605897013840376882628661538759919882842771891281707464101645800475773459894945681034146102125158476111584737821957670200284206953242952502553548303619628683184667406065372443815305501138044470449434086775457136209825210704151826431801703263506412804692873293647744194335482494068797730110812233061561826240345839458441284516978901748145633651811801885373355355099414160209361442269714264614315712423269885283469208126619454938664177720376614855967151995560772811795216533347758540348097568895722382147958573624509995970308635004820520973327742867148228347217037174189105325942305999519821604756866055763213691174274714995130465264195866912157209616426983040437553628818788776065506411497976473925574222666625642746316573026385145396851222657187814077826126674418192064973247780270646123473546708004909229446289393261645621199923804722323067769716603786239971533008337396046106579982551097149529139664687352806025833568903297098726457673033370251423889992642585497445209167520706285445129347387035655153108941822356801639298469862325845890779564180310737275353661169343605769791176753528032163267070395410360244047713654984898142012241118786426523263405907338763531040617548786076012658162192462676554150532693549184906088166837516561820852807317380419646480050904637246344303881783005180316820436120582447919375047247974707968115517651292722742104146756230407173153981139296740098396872103843623290210089172773732137340657768484721208910629191667613117051514931956160871406193401023246370836274530798625459720439133423181704514271419955230343023671692987318768404344319240151118359529510713251848833608466100450342724952439992972012317941973914215365534766538787888360394972119908463691842382752066770005908999500476165698735563271868355701407306805260140896904595020595159251120656963872317761402280787731670129086901672065979561094256032232828205110248933038698348612909219077985408575128562859158674893130072460659704904718163209221027720116762449846668376820840594769988541396254040552631501996839297289160193075898185032034276637433538755055767201415210143908969060405235916343678411639844761016645453636378137174759249167337422848682411893233050247088811195979183924955143107585011134015420834055940678121846556216939169689479328390585408044124741296963656955666838344476630582224458854852947761127810282159779616204974106136190450692521605686321568232581445906878837946664066132117410873202977879579316693838840347148863761786224678210752035192167532491732723095616977276887809417097649667385946525031481672874092563993663933892186185045123369008729447164390182983312085574221393394742292074103149823395509148746275966718381007829855342935712511858977404822998415598387847888598406266034678027102209064959530850837914709261460221231314656025569636495133881756089103602135980248122784584018079118171002382947726781798222212050848701437432731371877520320702676393152015908028703608298002209516021430134891697254272618111919067131185803385651557613368414494887428306687993280603339197355045303490203816528427501778934406695359196964098720488570615710255414191178152185051959711332062541374904583627990422454991130595883303091117009167758230579801216223493833969099960573657834557537655751554101800110425699541930119077238588188234478907098395919734201638941493503082257360000384966874781841262096361308178543552663576502493989251563368154737521383099141220182010008675652666206009932582558253070757816501980468875999483002893881397341771556725977759491254227953168015856145381490181882011014113095129349489755296408821940790323790618596266734518901222715422977965371346198681112271129540167266702100139110873154233570179801754142401657596862144578329584659515510449210066770587417838270019840613832468299255340062296462111978373956553280526042858114145500418141503736949694316741721290594359235797820358074508228977355684129111610822167476477874130472201140856075801079735033332783534486306646813560320925481083614952127451470126959506647163392853287660349017254575008868191683799646328781362592583282706314867940913674948304676656038608513701249974819961825785465707858650059592833374368536394794004501554338256750135032900391193679711989450130263248569872125204251313450766785225130358860335423753565418429508009655332429061411449132168384498142159532394736392763676529423507549125780765673264978141426799123342664501941316846855292234078712678828817030061131881245309678351737279646384624762854449849180267212144231460697707262034702424893677562866016037005170455182333997171144166935065225869424383798179294869903878881564424939866191075345164763809356695848247181255237496658151095767972947173459972254124875012105008019336421209252189529715258846218874574822117270219716731081422573856308499626343028576399777479390758799244175952537949632810172149424648313467217492849563142961484234816112011581526264531077182335137644774260513478592773732612426802048245932006443246443067002757513662824443718813465105905589460853962110476480854397600307002632197035106058013901595446376517758957504919080695553022029783694210801441433668420864429205101097131067487793690296060823620562280260832598400229796594216628167692686892226511997516944499351519001564272147016322385064067712912877650754634225617649482132456321248214918022313145935604385426649159262591504251058794315022162776515275799481994481412668805005618928422314002133352278876017708300442606469625811708772348602238958502001384467033099370915043306843827501355388942126335300419203346892494500162342872718796769419613333450292618749388494550670922432520050728790420132975517401901439337495967032647134825449517459941519855546805818476274847457476529215329987209964581099531845924449614220033912543469704289380439462060498988261453259147015806097074085701008226446626613967221346351502296100331392034524261447659503035654341839817333907338331421633984035986257036078149515098214513001402046428472255979058893676049455640131635273258190688472252015078751100767582929391082483973569144148556906894346970834294096521880781213618036965829888357032545447274863964663483598475759627039046504207758793852890905342798220688259266724250214968085499778714641480398187266618138677757420172340858914934930000496476486735900612624481225276812775254960073121588046732434963472865400385744722118360647886642457135295966240343615349220556100278377349462757537366137502132144284886624585901774631824699882852251325901664115867072500644649384826842267969524831401546274314277966720511703109805019223088043388636873612546978973088095899229714917722886430694432786704591861383634440125548184618286065495548159343829520744663570935138844235241007365192491682035952240172436492528173617295640351985936753219745913384834670319508854312509230477158415489957072912589047169984706231093869340494249791426335988649236180621981358352267423653063298838621580684282487629648740704811773994643318151078898208813943499757700797889043353586366515902898628373603333664200950925019210815350034516815342988052651471028589401511959207855061556316043545377711722757834109301499167787118326501594453171534611959056929481530096848806222429548518669610081624923846187209319950229986046587210587805039119635974386437259153153571863259940945055134280978926850747188277666946894411483946381171419868558770834192297956794559706397113113826650396099447661244467374900761234922065892648259020320199407294157789408034847777716056859437135045491193038960657460935219640720134712621062711834579805270305922612067690914143711956302940687597291661682057402604276622948327950206167610010009956798484617114411881832139050998658801337691357897085969299579039483323306697039061122707023918646053316895344282017100693957030081937342861999852725996792446257043545060697514164594458761950985000409220320040246874619259122911745020501093440214008568572918810876483035228801020410279621693744712598204537658741763475480547924513866169121142542361340453328141076143809519034794142098690490681065362468685463787326961842253188652208940340650275626381975388238859415014817577208210895986022229899953663304131984174244899822992511118407962429067892873623608860185435480503185067898462099331915059577034247794711225361292002076826356392042851325173512758849620191364431227689319217598157329007846764626291094951161213211209774214558537001902899688578708387226483287399649982956468820472455337386177614353283020719831625766421376227902846776726853602338271865143708848714340857296694135116852772671423130850519696571130472731729727502141263612925520630838960631940014910909501037062507686322459694409754949635807693814273023165760049845339117871389005404515406562930670493893900390366617960232756472708237048197565809071927945794091380984414467839536233086637935291786597275932177038034359393597356798175507483205359810177918698351946309996149944491339126493599428863198129308452257296524179340169129346579794901684221694930512589092676969967616560196303156082537319056376317507056792116270279547788277634057037953689084410653812201490015993121053854338930419940066131206106990693382332197661375787953256742053684752412100531889309845369462869785028412950254667132107436956910875798392536984462510220515035992493756466345415139958283295002560645248173743285678220312794124214306642827404924819277626352825367496529967884079273083986695470634768533576221800406976650096101675137912188509571673966051655227401608176821197130656385006448696932892801102850158716734345057651119036356826473373668527963643805700289872404162927958103179615897500733221504643431332880472797365077086323585145640770321256641928958149678248953025661585499945631704835017821353442088558519105800362050855050594647485315724848751175031496540970469957587871443845566824843819821725968031935676189124584938026264074430744887444163854812564524359885255505288893769916835188115085765771651255411614692050059606060312914258498682301684108331377021749250896759591074015300395982717237521085280185857245017211671900018296182113202989659499476722191747724961710550963190915533001765737909516463436091587534918060469258096384761724313129627450316524198822781949928443526792345169209079582608089707776029461516105775491302815271323988555130546347402786015164388850795722234635838136231469957143757532299927423480117931143978368443837962079621790723273296828862024940671274471972603729955360600346859824389485944373239921057330197656529571231651879092004520307915889839305382012064527990721948363483700651439484501956470430483324961792658684505289008219472410588277205256888094086336245377946137262076543587665768867129698854846642075905226097272152098210646799960711854260032551955656715412718815236563080601359216040362661915731690197608230731729828352970395290311198868416808609167228151664702544190497312248805645975253808282113811802675804971584443527120465821093939999673294463978683320943477657454942248062241768030279150779421089002357820960077970634272820843753959884385176464640977838755399617160534753097786551089139184151545344289419881261011490254737197404780130552976328007045599262455396697806353687090725831981874581346923400466135104293744979701538278196073587225918672761514289407291512483379551208012272741014697802896413072670524117187072000279351208629569285059613437537210511529034322344333060955100871108252733295988956129314382221854821129669156788085233398462409967157174176419946376555148896277998676219578363352385648712500004372953233520470175621534676397426495184846966409167207780786510823729569884796098371328929638974701584379105155031244583709343096322677628528542189640431739489092232024115131992165395149371981630280255284489634007982652606908065945119080947531171135130962991561195546940020554692834762648454522581224060361333634475977615690885811469909539413805978045062090846247674520248364177157599589748749140093806343066514420310656836234914622149750426524438989288144176806556573075268834769425609117160164045695622949441348811336319893260264267069911516856126553412277784531387835006989012322470846141953838269125259537080522620250657188343317932120185747170757387585116304657426392023759526072850703775651310168907530093408052029311856162189931539575937916671730060233979999577651531749967906286053595713601394558219657710731254939241431472176563391540688359522486114957058251407894911955624570220038968762761638857830122488653880112929283552114827618949344883278555561445901060101311546426961572956397258083090494543583004456511035778309645334783067488644264833159668633394843802751107818092461413736704475225511204011002740252116072363738735961048785469704379107041979851467604388701686232232942367912918292692922015357940947232678633381723681678626458988433447315660406565977096838583558102471186140118820475095072369742952615503300394114639362577988839937038638463774616852640602389227488918544725435960581253812338269757206347983422732454183838926085450625520127978673114106258854951825346708279715768059318091468027342522787182450265492166540042443044790643904071671297966512753149509638330785272769631378342937676265906750215763154282446231136054493486597148567271166375751562536766197437152202826685316521856172076621398745451742141140017351419242219204054905327135462426097243995459659156733502993454225375658251804810768563877365419868489998949767043427571760212262009463731084182248213502177562146965049484885520525112131154208592979723505352843105509915200068528965411491566511314987252550503672038350960194095232768360404018891354126960325734574866173207998851739322270627620310887017377397985425186777520115327305491826485901165983903642435348849875393509921613115977042574589685741912656445864831436664833686854233867215926660394425341089612419569877724003195788360869328581736302513810989653130122471962003052929192950098263680815824363447974308104161959337027164155247468350569390025689659024188078772792781609686439903093184405090349147579476318302964255316148789419492668225920253942537089314275503264712525258767637503436750746374989069680367490591977506395072546484266047979850382699765524409212046468000887973854752323366179492103751796809206247728275907171017162797883615453912563327490068620095617006657067570624945521855297963552013241489743453368333505596726897707560828187144019957897431942167246432397258284860923782835825602151821991492228369876178413048667007067465668436694729502695894512855039838365213708603604542028854760488335970029341313378741251813077791987005766548533438217472675132496707749395356437276788427091044887599278669252538039761010072968791668571083983697149017257816500725658400624427600516885563597755648435840298338099351707722719186439637632343286300761936563823204972992981288217857276597867917323607004236470594106980134206356316776470309981778166622242382770803919292556696844163827679404601986860518652674153732694328510583897928437857918959928142944944113506905247509175278078499989603422216518991028534102211100712794751819406306518364929641496844888716541604352959572458022917307807122166361493395557625712427666377052566155711299824485556319341448519210635047378135112624858753570899887924080706608193668817725310762595693930759866750333230731937135187799597759456270212131029534062526077054111416817684541285298959191270125104957277782719632513763247512830019106790381766105926316906819391141272480185088065334229509072769695133812244183018467365661680254638070048742473394817094803330909628551634316915615090812712832093892021289443835085351622737964651832682412844025178664630570498510936759771428805970533319360865594759384068220321792121545082369643811735561227916290621207542670991814802299956620784253829030391708544619339538319235273451963211489945626886733427551095667089591031065749523375844419370009679284447001899686937656464148786759914336399868492481637455102720019403948768222658226540009314023395374620378782677531244540848858353310911188177463287000258381756467354103935001380931932314863462882612441832960470530341550067485658739393223220450727426516314921242576898588670258028782948180017904122240284374835224221600159951536449082473636007985656728530474058861571973846557547454160634245324529593060194761714085090350179049932359015473997277262115319304630675536205915962743562934373700081611168058497444168068110924678587814910263453647102194787366719785193619402024580536635849204938136117630989420243609893973815673858212146006503877001985200465173731572405743089024050360477018197646079986357537682009366403830874679907349020104226016723658375528672175905950603134072869067274119762301218621456458937500692287881129765036884112713955426894809312132786695910768739978923991886837917579688674003961899672750085954940640636094344857786841696695220912933790843158692568388556274611107242341979197735656660872856277544921527213254888628466635878519617240502491124243076128107249823133579817564977313386922968498083454791990558357088062976091587163730357292400451888647645348866449739677204132491147093410687538957007288988217721082340440645395624314028443961436790793596383538726562836501724674425462817957929920951375180324922134695611502176017504503452294808240423995012718182307085378109517718512372494277230198282063101397592991225022002989923875111934291701642854336926366145883936751812157137362395155063051133192326204872148288773196853284044725271102645257688887484884958940748329584410478420607115545339005880482624954825925759986191914777159774249499325391760102679852309738837407801906840729500691512522784424627777720947541114983878523473833796421756143782516180516287164652859012740895358619415309406321444895189270318872578135825981503701768735291347501846697473895846503001531109749126078862368323938078424060461235321101719772763598785804364378787643772713817962802577962042684635037380339131293542408402295751114273333151525734929827303095930323685399085707013490439023873646589499556229949183694811995711605327261275391046857570776534743410113798347483501553376610992726198016070264003309706880539751035921608535625027115728844507922722219645451489549676314153588455411161984613018814338351742317022019408293065017955780977364829179116601771423623486800640941534297089355743625976728030934017293993654612243618553903589837222636710302816324978773743512569634118631241459323667229430474159012522455700357205317669205737337637393008596092018965964945222305260626510900243283987460475909941287035067317124057226954456487952096858807106775068774632308862567189077467445382501944668435858147959053906641367790615217026663500742895721993490782846517851706683892099776719509387790262892180551997113886284363727242297416502656994010979986643962695926891718731096525062912950726613750148383484628843847246694449826682384551756271390073745314517978813929934512256168296175846905676635796759516807439461928573707077307886624510693918735285966537755670921585344325990234432897197666899640181747062889810549986327265776310002467703619807475941198801085898893220459341100557636269502704765298428975212661901802529529225918741779188672856488313846150483196494723526356854170165819826839666499891426828049816848458107890273309055106820608427557794367944516579784440761213624718275441129774915130475740725362277640326659831169720495014516185597518772978738934880756251587843839581794800313697224586423857304556865082318072446001823269146848075192827778099201531688310259827243442511385581229660588853992355720019179154412873269115536536275646254136001188422997558944648634376439947144212349245336243443616127229905092097295507039692128243182989542584951577107176048655353350804135875077744890080608642354657488908668225920248494905592446952800873293410743063974077265860902159342385514887254046881409964983100234681991807612886335664598250670677021870699488548911686616071256983208132234018196729990516045185835510231039689047001908406209565043602824867451673167673614136076142269969394611510666190341810241196432822679369330919805258261695237929377572791915240466147121903326120773175697128402979727355645402759470441602753178820946609504366217467636997598944009645564620258118950730446107838533748293985688821589168064304574019932031795122520989458237045075047955702137707620639218213250909328446144715631574051076118924150808610961124640259979971913169658880261735817500416813151643498567026220859505139563523687384106094451437131413466049910779335071019325887063240314239184244979081856264127229787002273067058658708710332882394917707967438880557785773339068043221870739303058071332983143934343807300345238554751536533805449705901587011873484700598057456291637883458976598315744274808680819498083678086011035088649585324547803867739327990257791073097590621964816122865914592151985328630582274745015949632105077942216595817958324087459140169899319128101047691108800397048763611222389144044631567190161545070301684798287239323364156687948020122205754579777319768942216328297945772899839917376786066932799385620064977219423298242518592042017674811252341692435801745749133904165207920615957836429136691767170936856660592798140668381810916032232408958329587080557338816806081036614512162592975841574860754092280304431184018457467017327094077680726590835472251210055268811626941427306955241049325825256635478346909548876545141018894976697863014028866180324259915083634234317836334937365627675246157469133246260937827014563484679484566862662920026253144572707167132840734116144915376836246815320082882722567051341634951389687873809716569623258495005194956200951382289252700730039161320723157396080216167032873291196556858485103169695848017495343630627124940416478428260589642947974321743890280403024745647006977848292236145588121643753293488093326580254477439912258867790858431666507062545592571225331382387656422985401910945429911699646888573583799084293443200730378937301711931005016934018906137824541274605664250184887293024049939436913401598665133484860275836665305583763199497892504707011468807934316562894144499190129682142641747475843574172433551862598094483186782274016063565167488908952011952686953281223657113520347675862504240569399239802551402416318453261703674264853484522813954375951933731886507783814552857080792773301691580254683528720085089428460903884512535257872527919610722069965311362965334134818900853493228319145264245717032149322152492121652635932377565335159364014929460586637702300273248015660783053315305686165451594722562850147082602863148124345012636712739780189809951544454457664786955052390957151736923088363352601762029203281566955330487939591938790263155154543570779729895680755424599407274951663551975294270513442188187095024947414630746768738324004402599775475448920139464581939110539318188267151804293415741019523284670890110724901671232901089704915421070799518425400053231219026640413825561180680433565573705972591057353485664082388449311489681308565030293237046545507058566248157062912354142895419738031004611772875280358819024105228357382284448715073314072658078219130194477514328964776166409376514727902935055092115824754422248852896901863610969361804263728283672449746684959309057158105373378791290899599981070935611419996327044643631515489491924976698818983653878550036090653807339142037106242032998858549049271705325727273007160237720648784816826370504384191138629054204513207298378192904719388250135559770158702126678763719872029531905320203933425440821714390455218978677106779684432439424827939460794711577466055228956323103286602766681143703780490258608267096780163077521310384414194255043180292412173787832240741547230296856066899870133895004964499081779492076355952560372879464661252307030651281274619568894796267007574483407674075069998436998017893192265171160476347777105644606225113787028043622134990176360615657400489433598572575800471813283845162943990638923099776211942519281194775176760238687549716887244539381102290782821158246483093823676909380233709377880236399806359645842881956159317761239186477866183543611580586983253098796518653811945116632627105481652030990629921042605022495652139633131143673393663559927743310428101688682003579256836505291879415402339799908099065031121176880679405916556271234130219040804311097571862930658227894423243849777684814269308664716585900852095014653448219933139911067141472737749647407678859236970485555138105475781529160367358907171523803982281408571298381532504948472184198796421785483653590074535326194247761987022078836307665179883183453762373050233691346468393822589522140322248369111875724747117936096997037520681940649072527501204184821427955950988538821903676092228121307960048308749888792828613603084970442870240951331917948410942227592923387834107695268014346703772417912087627275118836795753621008572811637579708622019343050923926243446459978792916116720146551634652658473682343687285335027153777596424558265775643195638537625084695597450936675541358868901602048365049235946794215164122054001679574730608759591290554087924754335225422129928763677823139467648420333799450203131943014623467441814954978360592359174734466533961234087397037756199942310221034049974139799002878572747834866771916913524162022321149413422345107441415316124478638452780963053670166873528487176253699281636779703502198508936244912983012089665301773927652102075908961499414388717864089629515990604045506272248023828482883049060381895447932024343593643816028437953409800830257305606972024183977821123121807501809326092340169417065055395845360686120138878737157029742601152870041390413579374615180230497006610320282464437243217678096781061408448951737038609534867598150934104082419647212852846137472000208903295625537439611164031672366579220325801226475746339699198332217155792758829377553924698372127566806583569199430198616589886137903259291478148476525176058112009347167706546841625932974394227675213605699838522388530822832769887906141690915266504759618672845873014146824552904417491384174201448653170451628749445717247047993327167046630193135091675327111322646488183042346876345913710990825640326253039494041967654851908585986662752456248728322088289992417630449847794905635237373173756044232915856187391340484266652244438840579550806833411054457934851273167925912004646142547921213861354392291571767343601230537206866841747315676351038225397760072531151574088431532777957959628926421836940660328691558662552787704079379904107194505447010997281756732662687694362988488900170663341030189236053531535783753805934853518312655010371326964653875701335247310279733039261275657917163371796383226760032072689769318377283306310117488463814330379726412155942679858723079550181756872460140105300710675865348258679601631703536177647045849773269639124993311843007319196720623389786219904901917152082960845490891752453678929877673553653144394908669880285536796741527980569549303113420758137986535615407060489214713419579569466470127391000333067209364082624912450350342691705184162034167700214513287710359035926665902921446570116579668134861497862152526955103155191385943064581478904098415467312489547546930189630419954484646555101362869897501568353293427070041360270666763682150262852360508116201166355623850789915576743568602276772312433598541957724295781678625895623713683516619866505017058663127494830907135638525795785195461598500413142451525523330293695717160727798614710862996058781262589571257949707411682245432895850343634953925066240527434413170877958939910467701886672335599515019050723235724354317170914871700226970456331376156898250837329688548577487325469903755905050270389107480960956364367344138052623576122189226148265893549604550326951994283889581130264070266310668257117503465923875271094885463821764582394679958821045342035523136928030962543954863558320285060415820296983575929060295656147331968043489992923309211555448859216164740193621899677736953390967550594353374117155381293890480365331747482488794650988968303809281880694532043051159314545227753483030045995944433707450076381412707451000224400325066553952792027605592892560431414945297243147938756769281194801027757996439665316211610132068616723678108294607956813637935290125196069259001133606210627276349212234042771947217861735853526258888144953090023862192761792962019988759399121132513220604273965110228922045117853001560408597670574655072721359217408264590839136693267761405029753657829493015174067261791184722323579434860983673514040978569019328615202976539044946540427643521261457502172575341696225243436248562204547417457167866112190570334396240783317413088618963984261124783980377259417094821634477976224519396148334296780324027627397692535414509510371383310635372871880510756983427689622723251876746070665637491191036147915108972040808149364544142077306512120456520402257182164668455913398172314470251678190050263169717227671240629011834452921177100529999575760955283435360585432240005921565968073195671228125984861245501729023601440090484225506509334275654041660914043735615101350560688244416720921297669198274427003800671787019435073358706660542333486346094307540464061765856344353458056846437296223382784738025709080515357132473750881635912443294744595505641350996194375262866738332679483025889796744708479094310080907056102280908918965470622662186794986104312718276766014090113398064253487532739935260063446462680508579708357182337015177615383509914706682379293634645633817965301839575381530502842379877181651066457396200705720540131640958680361533164728696720400394902588174581984824681376566509426902489484676567553919247562546416037100128885930570000614912148387208296468807714337267952945310200804077059780509635224478158169659867307787995749093336849086118851602393140948905349884258875409678258135611197413784368447510634937096982348365992749162217237041501334608300486128407252482072852648189574113887320693430352665487686383440049595121449604044022808777178431731855925075938093888913698453453283977755622288157422203440476101926560558805260597393623530933268271446202461097958922514108866858684325283188488115014004589487339303136002256118226822836362179826939243104634005448767572382132882837437677002519578413584960095878596896235230786113050840605198610640424068959758803967623636556517655811986727591944512295797324962650818120205139651029422537385151202900605393908419652500924832441428118115420589813361007947636867010645259711569373980404554599930417508584580154073898071996499670719102670428326351958993233261831766446773951194606871916456543471172736238201382768471042310078109699985542143001454426823061035755433697516108906577297674010668363464017473274643646238161123666297606912475574882408503496600963809077934305020857688500804406753969104629307225194063756901181716939629565293666224556176556560394777405749888088294676436228005159989433783335638686326637261229959010040796507116059516179104913271828714124855095923754784862706239212981584223610584316032290454167318755296088037421206378605469553986523551139426429328254685876268003936943619156404158014483650639232104733644549278186901932078400338248768382118830844261440814261927301610879388891804199766010554252860621208505558831945402440425342924005057927513096208141034110463224289313587890883332938815148527802650395563007509951201493710705599284310203393370578518209510652708008679109277521066211591238154722023150394696521573029384875510865561634500276287191145713909707925441844140786862704796434288414983436656190266723999800431360588647235346417445718735426240765938221757453066828973185202105874553795207132869773132814601758245992479904244985032370142330910602818522917931632791020640913608183406342962896152225828422709507388552497787476376739860568903388697287417893015316112872539225980356523510798940290236081448311607198627159840896430912556273492908258453309080243117163168534841969261733683391679654899383448096485042190829559065100406199919431582800356006391590355516432193226211299102040999064130963328615872834770393237686058150739630298153474827018988611303943653225374963741089762728067418673396311150445715617944014927074147520329595293691147753265708115246080010973261345933876411843281908742504436699759223064021029323146195968961164023778449207940695062418324731131155988374785265754092505765057987584920784294660006397230562688475332490506951587144104701595757433518863503117371737545308996855119503778022517774489662710302305482301268757453070417310738731917004703805865409362211393596760473912368027561987514999539547484491625508824495333449888924092355065444145737211292214280449288211112171091109907365398216427166143623587004232604839888133885618073737733335125503618450542081897428937724573376779496338594374314329731400680314971016895427349642958818525120133063962630487363060181685829173666747636351979613803783519064143704227753461797441103283549667000418179818792852543190281331210330163745628852482272265699743608370282727038188542699017039612808375988724018697061993599209250853279081602383328923270116512256889203974553372675488177861272323796908475648949401594741287506376978526259689510314927230904829889856417377494716829274279616602002536809075712234507175095023329692954102657505039487379010737954002869527187479228927712436287222840129751399792148086937851633348285593318310937539544474138367897939562153444237729213473842388958065131510613383610663049036313745652840547831186068076886915743169093533390683688252127630898720639000663540712930524022920618457617211719776091403623613143915246629335308973321639103718097389994990105818254534586587478413767096897755902393187736562021161438680607199548961321670696640682828672243426436482233032185932222784780109675640080218505371665001249111834912624097904744292715716684044641843574354857480483819737920017871486443377368536522122842831716669584420247544023867268127105813107620936579535872243475584117838524271798973263739608671018759805408618695190957908508820355104759372264230064113281168593821910876444989375835833108648228998616714417078114379814633597356100537395235452516554059042209452306177772417183591214510550434435299135966816993915792582406234023404576800598053181202638419175211108573089913828235147367040700894296551407041126293331475732873804291634753178175163840729035317410415070973368582381094480545995087086805952169834025507430329854261790538426673047323542184667142202013384674079321034076064647359734698164518574189330143778246464258900715858428638954450673985627586367976862595361130410803725297028395687391440704396607089939125649570373256425490658154751563997903284158027040924309500618462681905754720633856367642989819257664678632773068170717695065126489895782924389488984413439059748350199364339044072953522022746123127614087401865336657610955512080033443991055242673911472691442017473238931967912251793308531263025279773328605742511383563418828662459722280473650515183910570608687649073310379208481288124488733535770006088506125935309970695577525447520675856230124753591261219816485391917435135426562530652058565156553911878916425601914365840020025234309721789222933196284545270624079177611552426894621278375171421417263372282386494409277616762940913333884592125624310573155007671377206128618928091292204994355842112710765749163085428969554637553260789811023484526459717479113941250592176789795731919953511276894315562721924174049519588398962787773816522465931508312945596675351907502833726304302444851069302011088537033080499256355244982481654792775220620402721986187251015263060676120686730975804278143836713160893354309533399579363976283395483007308252834051000277081464003450447405629891559365160903122782697212429184737312142284339783023784759248417537951390592874737734188720017232524861755566661257577361462720051361780009086741514577160207259268935084687651930027946196088434817597814071586742117782274837755759299991159159293565902631883104409111355413049188701734498564183908882103728145961069156120186539550381987810503509047209917049021750461740858160444833134657045550004270764696003276266476457125028475041409968137656075838199241734456697293897377220092457549771342942801890902945522768450351638915003239498400732139774198593464505442142101570314171462338156734149852791154910327247055316798470230369033752849240077055819782744664630992128650257711307739647405385658565417591425621211265120499192846502963674890266889391557822665670397074617865769997531974338835943976990869648380070873700145934734789907444719958186154984824010753145148431649044103018389273627270159217298756538852785938208450741242743877057169804145359495565779290881650313254921981746941565586723838428164157430014490174845406620519311848037522834282561061326319101170501737676691662744827803172805066541271091501202763843892844905927369234809861242400334627839177521221079411236693814290950413201224780848949887339648191323923123546636218157740657920708489683743947367099735266478552836179130603121577733216216543671752231551305466418472617498030658367636704339752091083106427951113770927535254298436225970074523498132944288587723266008938882486497128518098926754664610108614143385366505026720291485008958327878245106262383318151513280109523207116837580639220220572767746191456582995066432685835563228336786599471533556199219533684205745892606357728708690080905674582187526700054156638560301031652723664121238026406840644836160285995272944589807871409294625856581993473997891580337935930649369063126103834911092861376547975548096410091165303821181769411517892415587913129699330518660292496655468987278955980454009240753930499461514492354293392275768022618252835439276141437840513282343446777880141802454731916052463857451635231838061797791168197102199788921682744691305988642400070346306372962678662848983920717320957983024880222313612616305348836409286409322976748192834338592275439664058168324156014742414869906876253206853724135410155026512872174344695420670418818061837942705195180114022466087647110085419181265867838653368128077579472287582892081419355103893135260646170864885609638977041140248175584195016468610111575132522953693845168300053834533949128351908485397615922661251727511976765287702967069157211370263749254785468658615471046388131398147036322536237120467560287089504712838388041768136704383642301893127548333095802308712494831610795810522315967252916102801501687813361325354674382648133834154614313970462191855929809579668180886947350972746489524643378474849671797557511857474557956933461740737114807638685284229782241358940495164035691215464693283124488950640531313795171659196010474469190946767615383068248694061784912232992191125926039912642215725290843689663543637274892478976994797666130471070983964694873495919014256981021776691161056624416153768583595772164889673711593951753469850660100657482796948831642559146384033274257548728229829574421407831276676056806393519710762189121700612169580701459652127161908168718275400259803872412059902732196631388932663420612827914712857211067916734561978647400064329835090449436038410407265062289278583717945446554886642847920486587888014800562376318053356310787506605737122950535636170518015553806033681201632658555714834395053912975052140823655436006258155729157790650544653812374102752805645884635883592598758537206362366036810867080571113470557572396556363354074267656079826702775272867458098982140766708243796108783188547585080459610552637318005875549892892877003196613214326221468510876604338745340605425607254878353914832026837140967144484265402750622502792058821001378170267667602039647707762377513121417917323055069972003387506000891093517280318252034421053949225739249190042880299446625438269071353912466679237625062264944797153176923892740129390258408355462399860917870976028802570909040598014840830243350090088091997716158577648422900904496992302908061460782421305605207700623365627522057654318731228614532450252997845084198611983756867063855628929452926787066830565450042781499563148595092921103918639367324309279245999670033361007620568473269746363101981878267342085898573161797810634445329920050581950527302443658392647495125263623412900194845558523879628163411980490607470065073350910513882365610783278630655024952288030396843007414976499043722820742247798299684290346083166688103868303506860299600124297416335790151932965343339593696465964851713198127065924579775092466464643898930764213261833961267647751120080933495099486936785248702778903823320933746310399542525816828460763331247840887038624354938152094409266794629678448219262696023879446436833644420904707356701843170287134115210196565220734108670689191858760761695884624442289276055040734217799989813664009927199602535976889060673256106295641076518211092916699775766952857214746682104282857784946480464472926545299164669233785986588804253150980203807519447509397929007479780868141271597157732767868506684874313605601045103202117221033857743136568103820715701140072235928358320373235641235303864493874491826740551786271012743271633371927283800543323662784325849405747169244901828112427885596507074337972932988670656576510273094923223698211137447459058920851853248691237242653860810876658878455189452543536601412340046719199805848307006627646149816986630771431684602937312931794589626938565618296542858907814067878538520916976986930315669840618966602702116446993222191215023193756592924154249795578044051804965931372485432524832908685005884754791837382705860727590904279029040876441195575786908590648193139801672839996867671282535762924052895072708884499910578172911686362807650237888141241110747675065286226604553681070118310383860518709958616564755306249456375420243823353619219256411900420217627090760884170928811766651579698009092579426839562646090693018637205346015731912845279502808517315821131392131356436774641023304309980678684195276338623861262007049304025319818623325309542129037110652028885139655625080481429423809520784099167066993176498957667920517191388987001510486994674838874632074771266913435055966055219300184515837617212048618359669618844567437223448642476218323397457383637679531640313435022655493975418788747231740200985894556210025457929856649857960543243131172137003781334617961678030756852044895917903622406347458483502639657986282236098354365473978189748283387953913835911574326617341497287743436638727222183095958219116169962875842044099472814308293093787584172368579198665740534596287486298336552534920364721163207482920465498455013991848756299802216798440560517351418881327163743552279217183730131594035979894549561435925010147874424690752680141155246620435628051522574726169365676119091135145729427914232328019444285678501628379298414823446403889943314314017758819032699191667935040699148994959680378161711188228946392287824888897594450476695893319334256165176617666093992148300280269200011249766122084433614959989631600816780224472106074857624094700778707390879680553922052942970393727507086286692379316081808691845643531585041049921961556214276521058865939016554056842198731139992732601592701684784429475894461877278523588627931039056684668828339496014393384519095495311890714049597921175369751105144889238405490192647845600129786176918001546398009572638021579830401281014749057780347857300130012408207650215215051039863276337579393614218534838700346925815146420336587470393618999805275211129515877067144616973565413451484120195691968080262946762134875149493347487387064127756516235192503832890046944518747036553386322583613708672022339229552863764624001345869693251791980259962457477221742343998590477776832578430552055628725955931944003495958109873223766271131962315031063043962131651630929323439081584594412471893837676321405773502768703240177754911906104432377455865724556036656856584089482024853907075702009898043631434658013722717839770418678152487253679800751091916680035723995207303287915254462529334930424821268411544102886118066933107384447111737307148624908129826604100794585306331209187190738140375935951748716539505969387565366941335004669586351358332140651603736543096652125182825210753167638009547247603240815089537028051314234887231656915404355564255215151702049236981275518060195540784531927806623258429917567042508562931007326569322428144534313693566141325548637221861246015153193816950527802709452519509827975856020953221015381229925992534472125813304587540426923292743885927638962455369968813744312800792581721025476283469516589939583794008743910374408255064924416944087356082192259306267748669911236407126079583964683609207393382297026271705649486876424743315800797899746623106047167368695599422378945513043674934834533148458896292617657088299266913747866453412211749173813579063051853646784743730191654203579527105817347606803447856355507997096195596698463762150610608434977433133498414164393579938103335267354831969735979020066185589926917754926476047679372376221949461474447473136505167141900439547133139108008195325347813499692408012513524835274295801252553118903426322973371590394845989426186883662416844021406279425416982081258677572345257792219145059754797266094950258163196822931111543882092946601714474914299006406413933312228681140524741613895699275469940094400252659942822359991594661898424245899316605188298192937501160825059996434602016049429712843321684363118249267258098333533146247941531390983463201597723276708841040898281467015521064706243332642420147699164433147948850107703222951597369647851527910376892795923263742083864013754533118772820424289312645223063711576805122005796621683154051788939887889412495643137787515908926275562494224956426435671080942567298824630911893289220633709630265954332628685947559622085851852795147350874999724824146880991096046427739546292313394137818197300094509954204484283093697694830153797619904145510693376702790529639250926467071130796831409462539431440788195017534234066981131768412377669405504204284216168368564838091584522776864518312503031042429504802980591921406053039986347168252456820143414595856371420600719096542017541770201457127254804059474274086604131012996618998425754017925140803569430836062873705336627585118963640729446845119490392219573721170525309710481383243306361009718080670587793204900898174008000701889856401032002626124461364111897813421257991606368470434034367426750957739737341094087581402144405938633318714023022418234690439794628186907639705407822375713521607971021506635190550186526049941743680114569894714927654056632367484644177090348736752783720191479435372887196925772318207890638172927455850463307228322696872936717320776243232809201642756467016795688790623026635113458366302252609166583445767623322621681538813711868726360008997936051979564595962535633390859504252101214106739432690798022329776211461834104084192192474056768637528627289006125855664868512692522841226579404539730698447487390370734918367556103012390770321587409942502534090701784807108768717844723874273135605488812482051383721314031470217451299866560319601151585530350931273632291845554293987174624543307705666679701248862289534980906376570164001070450982088166048776527870875716287550206561106494059262245676288699356441479515531115100068598215229200473887555318186163469150635503449694623691558684961394963443400063011885776224204885728373222745709359861803903586894625426387633871260100662736837565178096009975236050130443444639574291878227319118439469123070116688415597921343583075071791601463094301990575658922363870309027239805765400820691152515510914686743024507986752084371230773782073748475440909441622672294545124973163146407999747927576030702644789904048913513854600760101757763612924148524617203135545382791449019112440898691117586951595484953417024033152669739081377634901389949250808389100052986875195667985731140316970022828962577238647333212818480952877833017897479881038352117031208908220353898802411060292445753944982224611494731780571648703731039783486499562298158959419610201996634961545530750150450326922952222639477823812028217335520236335433919077538389314340484116696110795448624382376515399399466286462970313149072611038610380435212656403705966086773280651133547757666470180033946900251837161982376391698556226985399905838775341719746642879819233124588744323300598911347349652073969634227666085026932155485387192411631816318886436924589081489688821424110332282140035401199156324630832877450249209716497606688761877527320433295113774584870184512636856455908096951354137308083195657048327180224977737158295819547052484342347433798203152294129094747820862460167808076258508442291099621795342022383170329441231274881962297205642021746900567560145833842824814546219760883949992242608064371310860105982242493459370345464100494277548701648245430306259463037331462771212416561644323327074763663561048235529498152232128448816214291475192714770388636496201416611625796236706158586757157521404289221440666994652383332170262742263998358634803236294190758903976186237432722010735407309671548633742122763598959118269480433988481703546584829307329529064145647398120620853070354692388829955769464355998080807617704567782471871481378243145621251639283554175046724868473108445412435177779207327591597869625478702968441102609982763050387119135631813662325346903485565308257565500619424808910059382887476354041324113424723880150029831056567244662438771929581109320839082021994158789498378388949529384971861321598035883040182383632275134475366035302174789831907206069412185763588284080164370052475001482009575002401738046186133539875676843160004062804324168779341863584119107857037219714679376129982670342092641751541075360062422547798827674673522813277812231496818140025721284731440055158236186821597879624117580290509079168566302642147253790435078929883747750381515067767210726946429090182283857568424271783188201065541083530477335599370492142592805718458069650960126947323735907205401275604003259763921431593906013220831015417346253369280776996809107861416367215874408504812535146417952828001400097069555038255587045119962234957831944111819851549487239023145940049406992654228745977772754909883815126752800050023859726202015926626369292318709146934584659507446058481639638293030746750591586289687396667989686740251821259096959271145608362315645645864548937778892928835034429014340356847212922247566932094236693178487225598544721051677833362650831893486444264262744640955857069319604357751752989767080284327282232357945137655982882747725683227779876950419385629283690229527815767165218567425983245284307340509723590867657032657666907374067431268619340045451591451044332871163038469034552727699280634204396766343430582422990623933041753272105610759965948010805954236014807808611805521518274293812400913221961560764675422929518074122281717304574410295354042176734298464417771457848971558776485231505188462222013191727892959969027124541523002343857902728570520156242382116069992132727119127915896087978955866265204259909963189440555752528059897063699904483631589638188911522723474495828559469598676422540634458596797930024191250455978390150570414553194671176847918539557879009319700249114655981671903584086581105438138353419666611255474685368665448430166138201546051412502715272347077835178665869212627058591022263386099552242566705433821266818025643311409362397321568379503778029843501525221534407021333666702241325774972804770029477008652095698633254800649722115155616120919272220305938752288633877721180234501757802873855489320212998832188896666932663310053464748492279693597712917888618971543035925592015951863544636510123677759784416990054901880996688795547619979947944395353095532742721167306417828240516932352750611409002502409837551815297159585910371403014123355572408051210723276228257487216740732981869737222496802686283690960120871713717188869409661892268776490707558767678139183937743117351724496943413325806337748816750793782744996724540951009221927457320371229864747576309432969388081403254678038945086770246401584426817730603271276640125995825749368296809342163703328957628134681646376005608886032711636566928534449979221891597804470059287968639737166519582457385371653107277863268656122176164178454657643448327395502505590875921933770300882688202439119498468995319553433269106708187426463498780387902233032059443529198909554110744182913377953908700548800906931002280334171591814594235803422116269452970796720872671062934020565280637965984003820480050272873337507856339282338609679244470687929611471399357869041949994165127907219234211734375070620928451159690335067781685576843453826189642928049523605432930528419818684723623935458734723404615459819718918254069357097322195104583213207430012720068593676074700773028658534700852272394283607497410642739659629316774716774719857434026716865571089872312790452380431294498540752942837570607681486840278422052131270628082787041163478628387516198459588764664364635039927848416860928317973270156982920920238546136040919226020022396382533958404786565972179211710681462640057598387992502219400602579523685163687892014720175757179738703833598092310729208411204749057092375626787742248247982153251674499437558428754876715613227537373318835959187214788530924078456521765234544887480506313293986208492699777959140479400382186725296550103121255029937346627590437691508638336879014973566199875658694819470491456698507179233457106900808226693473958129426169096402092430427502214616169899266383347069922499482606688529233950300859552538107742203151691994769692532001108848674321914427798058658410152824101050156168108172531070121969555635980905718519394274025639606489185803806680844766246327078218146618630098726481046965230529584236757597115813627902264189718631381766251660800317585142557627874828259763623157019765774049529280741566964307633100901722163305439785497855792580110053899301975369966308488752353471349000520835083295753965907645762189541460380131874097992821996482623179410626773067712205447445737003540353014471952738229854978347863358798822899654056891764788883849189034890353122938056775923693436791218537941798427313958959214212994359694722254776352823535531001313475077404896189178800701736157140613964627735159939806668108736899121860632445787920718174235321200378241505444949309771895998793940087428238869419930338197162079398008597148874710476053304248012125880820543350698260738333384392397025346383743261960107385027163467017490788433800624210466459017586284165787905776152626493619776307936041596597460593011571589619335270127359080107424598474512326582932544433733742016468338037320241897594454757774418647030554984547673967485225018312856781183355928895065447403929769141762108081118299799729592355773305997985406680732994803242358958499662713419761875054372101094714969251414015609654434787412928180372702149002569051732462994378343218965070089953333433299755890831191119722622995901444814289986488665937536976093198944192764788513526112326982395847670616132441864569801955919268582251021151136280312219109968130795103437357639139145761408870399665980716765949758079956898560263162247853579771539294801477345130319347280485319077708503774141200197570756356045225918645339271526674632407575040700227724465351741902359303774904425595738819107171445368119683257232883645144494262088569517697281891519137294660453200622424926503318957518922491357392391646225255024668343630998193328809623203914323165207383817035731827876204604896955731844273790607695905633691786272018863969411767853861109280497879013685015246474884042894773596178747026942425669206810415182738201014893607132087868307220374823122547659116043632324265838431657809617987801733133104413687049152118709435917867439124675773933725193898650430373557812695736033417619856245927628995506338558602652550076044450943788038728113677917859696570030571042268031883440924562290709475507425971264742660707738413808770028685274146537031754803567640766599833452624697142252952699797798975035197902479802377946989887246821952988218526629201073912378501721742684732870513147804714811871239582788714049786084880062219098252782766374113283643307313869141666442275520402990363974499485376778618143768193262323188900890016131096853743908005549653224504490598337172974125159007413307916980173169305012682148134929981349575604020741809231247910759539229228554057908590417371429938573497122112305428960561289672871787762493455882540520010640030744832075229809404736262054810529964798976231805388088124793724316954513865527263546078976408117123434219025643312051324044755525918493930008117872261526491867039244200626632488612869869385989605356751403859808985234612498504961190655012693540691022459007119158855233664186390972762588061223642914793451077778988194912503550754111617050450917993739756805299257318762887990914179997902182273264877207847497393659754468126745365506563310258101354905292674032982423484997603803721382029172346295489226191643781925098288086622668045019565856970067717676694791343092178335139757424549837467179283993389804083536789904668194531883163820945210815182575528827820216615126725444538186625925443785780214215490898995084926720398871373355424381808959208723055802815556887403878729250734984972168676798687241679369656357314219231846078391295826965424639592576870810268009739909401530889846073815094676239531913766440853784690904137632579277133096056711434506015973727258617868888460400919301771313413145035534573285090198868753641762994721494606060115262278996552492388086551474402535957549808665658558319042796073496420333806830304722499551029252202390843000860043148355508567948204010787094271324987563108026013002028717074960893220676888386202811934856517735824531134449091565593011150861970192508754149291345223725006115522054533046701838149760991322451312437737576727044999093492532671556435960031663932609458987715503247779262830059015048804325965133162044029301281533539403508459541891798491446552663549406390531477717696318638985515486440185844958851972759059477713602189767783158273982398868908997771477280243418464982115299744334403539029915925259224599418766915670281647444280421892222742059036870804956475182209703641989957518983276901249053798184898573219450803844005841812854720298311990718560100174508197754034513943232317647979418206413851998272835163473923646431564083148998356718989082503898431507887091829866656908242341236316279089826293166045237821651282094080748847373285192596073673333363430675010394809623124017327711700745166780341371603686782022549626400744346344235970028392744055138635567320584222779847073269386474843301900376315647926871675405976029691921225343980883085394952178597093711351377087524107352600280882703501377220382443306786523372025711527072941013887485936184446162778040620927417253413072578494018269027580156248692729280577890829986326192062211713314798585719499231074602931748717672539071805732237540048723132232437162794465668469098571101761557853655817795462981670183384447254638053671150190969717651001060884872580756383402207058909788680979035060522732266667410638906198674517498680743128956897100938087389832501324569094739721288814940285368974203308365491379739254924309908945571519695393263806729909541606149411165229326174157881710145081739786681855307711260848535250758388237381077487165149900974834501253560649192059119570287555925182561321704202047152542830431508853608036425735790992399609281450762741748786712016733973457378075700523212460267284398272864772647248984356371182805277727340869944826022814661869347308667566612554955820611212137208163313313175583663895235760297928831837881880362755104680862636043169823250116295574709731759556867010913401706857089752117868783178582398866212981191050117791534448020196476285737544456602441507413885379722714654736823782984984894897404574169514621396918476116895289524619574143351427729312861552230394469074249829522097449228924489395438626358300706376604244515856890226164337742965190705538897199381322535796069181189759106882087907404855751832069968293162931361184527614431760026182532761327640902969374210559430731738245596039091868865150963899543108231743926366373862270176013105100715713519571692362830664259635284631636967629015455274592364068316825817953046242819802100221719195388277974817387617878096872236477560562695676742450011069635066072177680508043663338219771319408238792290937215298018740425659355319447274119861295594058697214848179964795656216850763955546941963104850318471614207662765010048081819951400043762727616327587617512701480596715107771602681671428477261776784571607529349584907094373968252595217925321213607131791660790156138747098602773032641855705723607805076352263454241479749266660438596090771935974494388482104450741352454905581947430487407245975831655212127693330974260929782939011086996401191642669742309791376432049029285416656529216076156374138132386548386449110968713922117258836794900524982231692868512704627521545125767886049265776414187485110605924009940596694541060325076615901083181176904809311059893503352695771349329773287271162942703922067102992584239653929547139135435329223036062686236811501320384175400261692465823265295976551890471683008727941520710116293755839757631909529276585963277186533699845257919578359845792381612710580028937560325644716000542760751873516805104975515118319145539572179989442296720221918081368646877705959900486454739073137424098799639837791542620072811400211715344515871570862227856386114004945359426148819832684155590357993109472305820206620772508900494215359479912678652476414961804792175053388919314526619730386529843692956710402999155147616867871815113313858385270225689693494985594524674208745426392068850104377638102177172790073004062248923386668290522159468314884695389538289825674872238127737750162719777759589568163787704229758076632854604285898176379084384748513550282989409785543129256504889620452356347293059739150769758503795721626507234641566095536751444145037046188938202661144612152793897159552432772161478876497870769737695063428263572799104430742348306060293664257539622595828692057148664864197290525856890052914106280565079200125918352328642977231692094074774052767222015450246261171902783925448466674111988089645585149148759719456922028976308517841325296565863226067774818643873900328841474710830455384370987871444732339301335256328780795116900357140491199442752116404200771796775087453216579180010799046595411509673054679173715833216140460249751820106899093417157116834902081146795724883487546943732331145353235695751922063690582646069000619804214020583603720515023734335926505331753539094833529642913873626373391176580057474870424091862418856313255102063261647972466267726896642119417274735007452724996703018947290277536979762470072313435015265737344156011883840030254251983227906498143313016888721011000446297135789890964968513584209093961138195710085173782238671895070443470189877940189675640161984905596836892750158176170394750873246237743469705401154457566290845506505190356898693437775423339485296114219570801706675182862525434194974381477920667718441012298034147719078136699098615471156710484922810756844257599901169251920992903047136296676904524386783113054409610915476219760514880178864260265804975150595451349624185629286603300843362334996162893079192620234978444228429354626747167379438321644020744689689837932025218895739340557541297123276262885629695232265878971263566144585724248282363993801981278221908800859921022609587484447216568819722419350267757162389827549644308347791822624836279366118216814093345774801946818317173770008802581302162661292898131473046191719834179690381818492890395390248113329963321973118488930146230597704628865545263612860384202952723862467236367693158095230618100830949938435002567508232564791338377550693256635411309811228373532025799027064123245917840790997894836530293809385871939669595522079023992177542535684604309419706442747424239959182418651075117961430210936903194674872689149610367272990151169671475115339796585869918461172998051468861538934748357531329564423316667749228482967390940863405970694009904672474756451194777398964604052788673271535686444697603094738032638730060595008606360091135713737169046267961482411568624567859922606394809505343443181836807607969144188712796743160846256549524495241704343904646281454065351635258115660936964465465228167834416286734753182394453101300552887905659427978199343442570595230428475513162887850482359115769550593324391799125105808702967168881878340127746683808042013941817821221349320188830494324812901672334508549960727232055920527827545309485442512323757648647055639457942766004817840135493882117166676006085825730965156419292225623102877950273221234075143065467323612316041089624825159026611047822579900579681570221888626513876670065443081961340008187761928821184055438749919482672325086455244457736929536003880032253603976473731369334220823303897719414790581262281978851857575358026386484551383612407183634560169935928657449893401051667650177868017252015381638110810924016566879304495305773977467359331600798292426049447954403697912915520723606259045438172899276328518081268193893537020112351792204893786082617357354894837445791943329040690364825908818572550469449521000344763996656161886880961535732064019299717531520416728076286236231519579187785586278836827658401638630871588845450784648967731928507504670164259161332974676694138894971341857920662894707102837566129449794056929181537654207122359761420503094678506042627642270332001696389817552021383181368626084346025722656494893889868230031197368746788628868189890441441874114803866014423155029398412011835065832852715112183799327535012370585322711361958141726250838792555948035463605614224252311080076582396252158712740782391997995789878306216612065122451690670398348105671575937920596542128863113234810824487444376581956919385449359087409678968116667340015327295788780005387122452603733143447655001919350250616566883969238914915417343464391670734351836367219658473876212341116241624470886766378080707981543625173955049425184154737165403263282597170617731943728997393118974980277769425422076178038341493778911159974243429574843845783747793601089244645435384470351207639507314888759800244307046749285726424200043402300100159811146964922277432148798442194764835049501578120230115490306002536410414138567803764939768165329672271277437673570168331735534088700689684213861657541283609209707141309177867505643881248507788290986048216843801098537117578698925935750993822751997650403037059555926314217427182358463876811720700698154705558961225669333243659693998591019096287422471578074589403850808058372843449058287186553289557279909978797501372008684551899353099566549541576092859673667643204745752441512487475799574551849674908840257222903786937203770157465490252680394058221543385871142120772381555844684784603452864977908937877770423901697711574750071354758683189737129657368338464013855316814494901486732134000534975679043009058149363337750432779730936704315649727889573139580270479553071983655447822220374085339235773998445813738206707284916340606608164554480668425004491956222668478290358090379727039060503834173291037066854702756551627699293301436798164949123730042117759710747488628600744792912003727085207625195274337754402721065981446286410231630369571708638454787394947241188590913544814767155177178765049178485654495665331664521247403124538103583344543770393697199395012394675921417732373809804337218554694481652336486367440241179581218592610063494877460515684466990467068838293837999797316810330566349130449480929146898820014555348603197196697354387786352197913802099872893265622319517941274694929987389101302320868952841103266178225239285049973814588056920428206151781329836055513936542774613382502798377744439706187907548828264212802142845327058524985970416903237264682300279749886003228834512000067409411160144567735303143771938395970849404576912613439827361622398322944053889970679424162174150947078861105238797877113979102159846531417319699344786155231443946100184458838536150672897395994080999718114138303606391972719887265995712805052047744802544529737402151464927156533315499896432014496672883574665829999559123485723611357225050067861148452357015481571167788237599857961924010251170757565437130052329107790939188712022509393236391611900880203241897133231400011698270545830136212931032034060454372438300576823245367930149035630689078248460440812123448601449056769483491350221291436106689127389547046995110333357970053381308323283025829409744423107685146476506437884049457918594769391472574817257143605339703126072681277392791250786679212194875106975926655285632289956771059340261518584825294491354998641216853547932155871011128986577545400573255826484576449514172880473149235689709218378396709078234726264028170678310603718536883623312659830753524471782796137948361180381847581298702553418520069920249421628736067130299631396332336937429007667604816123526499359629687388254102609671802378856301896696442615447665798951320807226003305064949723113113417867615945676124951097670519198267139514254921623640122430043643913550911185739682967119811132862187690898408683024903825273351833147140285277292499954695793036426980013773259982614057782062663305726928999759755085399608263639457096974275975962166086823449298917188600538087203717467648562063790034292224520606977042619670738501316214454603948318673926807465526415998397525283050195283563441390565832756220354726469870587516143391127890395982285489947591031668230929276483908602317437376828576847548267151608153602736333962985467856631861050259438510539648019226402028030420730521311091860568214024834077466522934761982908318541194599702877575261849824719443872252171895740940094828855997168907506954172217682124802825280359588849469550713585640386355184358049886927516537387844392690526617129807138957441218315492559463723848313252485390515552139919504825394402717472710648187658530843747521968114007602268190637694249962179728806966638457003190799109523903425608019208529477297346128517061031658609784202780072196801716314154232555548166402610293280360947427119814811684682352096696392731835234237843259149495802138920634095892846020034295349456983700374659249084348291879890853319645370244359417728548756535527181995700205368238446475388573022791877050708328182336882005589756764910362144941895336424931844942445293149309256868090568071816419124661385853053834264060875213707409435398225149794304328775756454657720571297421942078697695527518880067583304325219688996375306681651317956456339280846012035922050481078492081803227846883751895059189666549855511537506718712041736247615081718930358445917368726882278370272897437220591151159553616842296039632770364764980565052800686045317927661481156083359637581056170473185510384794358840942553964560988066263341326756270526896932509814659981915781834497515016394592065994732818261650444377936662969151601553276561027755602205667614217838017688711375820993827958436482417921308313132194339377041486916240890991784015308600454093950739277594989735512705788862508100048273179875380580194707430185069714337912217613774506363116206393806896290171892863697357301507773297673595148243049200567659041955817036275742010202699723380497248388395084059494014660913786079849090363231537490886608930991118023815509854874901680545555387172924865658009460343775838514781409408546181676345932648579916813623882972014229853385052298576084071237655821708594677477178822283550409510058570459763024317422260373021271341505396674459913626583809189641277059944086943648991449071454911774857434086610150680330415696770231666589176499794146512905483756780879390500497737785586812431578880231704946027333587185658564152553814867128808456093115625646033888901681832022407528090315260524218658769443505284490951876811041069047122824044537550309246164023758509786461084921046169992216565464350165860660762912077938433566205099941545232180187819893738997176821280088144512936428963697320970519978955716948646093057414431013341318890035449750622369995744501219415468611309797309331943038815186556166180394970529451827601092556054437901718211954318052923453434024447404771888460370428193831528598782220787228015485132834219564538074425889491640382609196511037848243576085150214620675971206777701346631088281159928871395374036812687264976846586796286449878228180588244964101230402526829218382406949818758930018577898093556129642705004477545429053835222739237486989096431231571072244827023823032596352429576428215927040937743358742526422431126647605031871912571854204463108893117760530144259019859058780877871390283012921311965106368281264261407532526911318212915776287585408729133035391635342887479451456910275599501848173978766175297675263926864253694699170222755613458964039598660276296281994801705603242095325875932920251712722158418352056035975816454051830704088765166233111292383606098846685568449133978615697370756804668172753376208541340385530845628990114618520843513145957771064987032282837869055501589805883420706916807818727743005524620843918590772454343672749591921536190689109369201547629001551402646808100623315118117456205071625330072270836523364244051596134370566335075214233028171741836445062502163244453641944511204700436832659408279002766436270449620766563213976676543882605709634087154811862555304703243379770971239521892541734942918121784232840873104102689439715359364724204296444142286009701682297533401559276532451756800483430603490910898126692948028875432429926639752205576976168169287240853830635808164668347980994538498361534601553634810878047387566456734542266547678935981810201020153196538439456323591627980726788687752775577175786027060127512082757869977930956065123037394344572365446030050864849976562548425441229634799238729084799643625995420054854436649742804210632415225766068962904467403354923588116755453156885993596073305437058615822235837163472201677364281517067966918716393293080785359148613598440113551585557672692456209159693921793715110191883767219309021086941655820405771497690921919568434977489202425337730310362669015111367821821954542845767777955741879096075972868979556123430073764800837641590736514993924769193315834194361502472480942414409857329946440833944059846589616231128522068895715486718213278283199989541165137236350878425639597778936848638372994181537497188588257492239238758098629910954175103389346977526647744846700760968077201622317764689019046031277591089689225337355401792974690305031092366468429006270420180439135216658778409569561613597126317291599276485003789346560839276395800804288053850450678783350802799575062665857462998210207478184482618971256407451832236354682370399273312004911506213560446999922556836016925374757586175250026502715070846809874532069363174945074979597359151679027952072296407940561711218674472711707291706686368103275535464102526016679045458096898414783809860417118599107267135357708322593359156341767852970296121149350902465918491606588431689463066191030232453580946017834686380529992141622080477322741514668266254284243290162872863807599224802453732649425802523007312663362861812371311550100421882102574119504181336777855098520615276631833060495972174256664686147113269756779285940609696488860591419493154242588976496882493365038576013493966056676059597821365567191596213777723510365452963128325528715663725895312316075888046283674457156258356913544281177129131728198685898043426521952055152355159517534481255194192492572217369500015943191468458192201482318824208238492682941723648260163330126746408798847447385637784625449216174529251694549854848007272250865689909650692608669907153412618399005235787390004502732018483015759866985825536656636619084026542506851098189442285140940742944211816496373474041931287649325080739551640851991333984676103551913872668701385129060704887406144382125583928682077131618246705628659536980599315916308061495749971239378073941782403481040737752372054561243572141987962559589014343567284037619919701626961646941092969811834118656739679950226472835866888642287901870735873224971092043924673967194591467667572439331330536753148257212403390103588907388559505193525344912711813239431830027562232586091234868860570697915391416275698715507530186164675358963584414599361654945900210068711787063236341692468809726306803982125610923408439127087949946283005085758199607594614227725951253847142067224160832257669859247710552739973922742233712576616128599433424716963270354744646978492819029437236538540221454780512397240505051944176264638557337755503791324115211560957595812264997644857801137192983491002581008088992066241517953394062542636231642694770755872649615235367284255503622504671457244139876887203521856090652595893561855908009481181819681375879812056574316467235706356691169583802635676779534158477210389624680299301662405695762028341492490925235490665911000443618362048085866478001086825163726308603978522930106897787790246470116869579215153623072192040764165189517070086295415265273100275929789176601396565972924956475006124033811742049662273231025770510188515323876722990192821113046218425240718059764214790511860339292379064214774156845860004561264880893184230266020773273805598628089158441420432212045768327423130521886661965934658199253144824307900595907381662089291870599234165858447908937985348054814074746556393433136738362672913016203094433906858504306040478683961757509191856353237488893312393132462276777468933876943722543349302388699903799582575405860372001905048097518590486365605096994615409121559101780149665396856568646179192383929165552259018567755178892761120139101102436550851171594295439254314992911181531971619545417884492533695926897461672748051190115688335861627294933392946544559288119365841032227918535880737901361806314538163392244509091423430903784369923552437328940791164464094719835968460032790294137245013788256037109234215293163660154852559917382128219607090932346823301111408221003628853849131810796738851344126305452610490339176495341647614496566957295097963500652077660979451428402357282051629699191716717128059458272706881062281688659568709508302242732076661964950040020974395702048879069642929421991147530058841943714957955747533011161132681333121982216865450044481337268785190318260630062331760125865287934119844469643922372286899815105588947481399429124259629519346409504432641842038150936377552298932204672826091925866956129215468896693003748037268010705281967336789547260676269230605624835938768330771178767662028011699501658601232344602097648230169953756216793554752860313818896980893501726703097559924821218489582262268041632446458861227107331770121392080254217879401963241938019748971768251270840168923707144317782056217401269815608163126356424743841304422678418672440968482777653640244146856890974613924777761865505728816895538709615758771756018886740378812966128794964054588595984326494097122923259711323244241758618832573549463706809886324362387244020495708843534196354831035663205851445220541242685356284578594064610185170491302661861776571476126050397755541944520764301705806457561883347414780229550329004485263936060629174047706634411530020040735828562224622258002484705238608618525419446312835194438718999603427258427968278820147340072422426493726697986896108178061686709989949647875079357277171021989799210793793827107315257287323151392814505875520521739020058089602476594995583611677095845818919946589463769115553244193878127639468152880841589882072245575611804999980939629803775413881711929427772420771699746660425794578935230631690002940419093348427756761879986516252045216727389960878090944735268124405378603273116496819139909941032838310111146097864876490152273797152702928056286768643874593717525231283731798867906884095946283415864359059087334639082046043192948535952102115193739869198231671916096208718617373361206606277339630946478051778016242314048310759557663421007064323811944339148253189541463887036587685051677307530702973715630490208303242268413875310496943716473328049742583321002648955976107377306096028219462588743559074647702366517422686680686430925606585523912084689576522120790419761187027455207264278103398573302714230176105275589003667742810514960572915588603964374330359776797841462143640949016130344711955013653117499621467905261799515567618670403997894914819329844406343226211558024512638382837158508780118994450397794277018190894383145652087897768278354211832566606042079133280444178319592261818239427641674762004361169951400859095998283272482681233431832194385971340945211431104381987610181736067922679491430562559778703678928466643175753266440616279351098570610249368542799499691273313712583190453985719678889671120636326668842383015323339652256300531725911469305405570165633590372315025887506804680093934391323574269777797252178273616324401969380219113916937859783486515897417263616936407852773740386082308800798408447759915718840766916591815267295070013746383807059391444685468717831063898981377015649874993623856618909151156431979682044907301509561081693160392452281830286176974238101737037152421159660992024606432568335596178714251018435560982805835932694145426940775970201440140360152702348902362093849699084063884167863035734418021796583154160623862802898454570499755168083760150595722555678075046975319915907750349380708489549008056225691932143616703436836273867724794930994855313955746960914047538943975803654824513419732898672393862084869479980928441835621333399711182002066099591838908153528938121132744102841586659004799405275750721924994680473093562641987162909060936785371259096304652018581247958627527322293664137130324388355353103114232263107057418047175771700618359448783551458944620902058557468894425649707212419716427309525340731771495893884299417108987872070157689213252896006939750036940934490556379474509151527532231401068322020684651102559694546766845648979746406439205184375117791809459186381023174598729669929666515118500798723802173123827716358240494020554326806879987900607526501058662097841528864564932038729287974832056123184954720607451473847550546610404654547236586664490614060208802692427480856934035976746881674155840379544537673866885199607057296567506322202326361849267161958508664346905053337277790142255920013586191903566089563610129636093248496935132504570313238650630627148935969234471449012310452117314552578368859282244686349342962553165378475268166136495505919667278118377821321765297322281633700892862463618165803382855519697536283648722232764541765435852058478808635371389574570026416086494782845651374238191193437809552412982314135789757837350259018159252460318937002693179435813719106326229176276420821047733788085935472730345871594322638367968379082814447224401620860866562219324603699156161889844353376246774362598147772601060704143847259752571706510599665047872776195749835458200408155906255802573988090229050644606164947087927506712650298170718908078817018224156368703747440421962182575480568422926594097849356166534382417111087304842372288355477439520650470370528343449876313035203377240037299404455449599650256628163218537306796760096544517777353952006964856016632089559610340220773775633595975333621749084446801248653969065471390743154227804258934802907315798374824067322556013331332088336868069099775824499019447284490077735767988487893037940327759886665863338236465622065274413095500432691065387958427358754922964695692977622708927294115419303754895417055830599598222162399688991593156108192381322649505628836222888113133446363132117512555205648237152255577013371853675011990854288422285926472030805576179237954254111534075102692774555796177868304315770426676226525231205218312667540735200219798073820183912714660973089285080171435874187103156390882243441410321335920690965476770073334286924849719916119291251879694515840323717149559183420754506976981566479222920785907945470924923125809965731533021153798298223425009356556753887223991958056948640491799859493608330020107306020061116390501362401524898348051945433353441478940415322077814912030331012553414703732041071973105001014320337017127254143354833272807351765001846538436494940344505015709307163274711056870461514257431583030840677555919458784001142957188379794598857960239318357373596185397245226018783328732089362912420113845862007699932758865092906830464718757274248655855315368654025255259163652104009887654954600453610998723273598954190614210722010939136657505922138755987859355411456601897494842424673794375994159920637780850398229383502069705684330848653803502574583988436089090036266287570030439277588772858721895154494922861223682259358414963782846366400896001419882231548346607100115801202706202984340155502180564829149958346488498656536689810094792155830375350771962575550098996714776880440980942695510161268759519863736270218277600315937988333972697841001460743606979579285610490906223884793941749520431044791322820297410365163589025937304636051308847948757090955403458092868917738871429809425745810674067999668222891123766833271373328484966788122336357104548344520145848808594068429248985523852358825592276645102392012804399476925088355736299397930314547966474550367574084790765533409423382829184886785435235824323251177354495941184879826647166726600456779248367601841361589720055945908450039590810960648593104599212067840219453609469799551562726446772876284567888733922564638369121495153719847547092922812481191678898277185946667494597326633651348410837011357845709126108066004393411530221142880391678093346699010811557511046575402523789779235499568318495112802247294371052264971710544233516326041132698135441846171689998425885198698220811534595328643779297531230547939089227812785293946425296163823350850860813101603629853658427624036245871173320535463836035910529624806620170884299918098665286213776104742805247636357098508808065805616829029429552207996944110144394783454977588396340416554379236917815406422441604192531218401391560215712201732866289924881711231513366801765484444586274839763765558254171095071631078565836439580207082183388727712845653390054072749537772266555429724766846422133388425117381559016865667427615625925584779900404993718418456714030903630564314285103797196571523850509585238041434056938759312253018206398485164168193535665122620378771581911612676834377199889620332474143035335866871262732146603855394045524787194693408635360720061796889698684120403145369272233149850977349018771556302950200452453615430975720486908522875387625268317061481275897063915458475762451666987061571724480698137747425050497106009565983262529374977892234000849970509446766318532531053182733746200353200156113374311471222631907804099023885715484947622661784830795032111315280993087598588550002991588612187196317465837899286211915601429834702669017829133694924219985938643797932701039273109166552941131009240516908302649581373246045451665020199759961864011900245403927144888873138009340919233029089187810106546243875857074208609066430093790845766818109447166274278447032836971455219256084973787498625405165969065857337807156799832253440808397117410663406103640559580822915062216030009351789275003905974829660630887288277207921398803282285971063094647233314799774629462267684878677443905087634785719449591250506441680331333487233076310866150988194935317085787417097709426469823436095422092130296383757348448486832155114622293321081488897522816860119078544244776081981393458127610391803128169524697737067054828588707001117168379017156841832990331262633097593978212689817170168688397240420283345102011237159031227663613356444509420675779938569388271046179883996234949799163215236192693333880484551612228820082515667641839751703815147638327411039498209524299690406265297127185872951816451859694443373707963955563438682795670452848354823510560178496712450967885953247887760685322449351700991466189117066338589259809762490245923379569029067388910661964899317877806366793651908221750126878502195100903444780536237686016913461926442726937500990455547179062248536942660844610319860240641684917881439134641811132347353573569828967789745736274265259153457724780643420164231097662981800121082203577219088684424067611804294742496424339534342548821466341015210926987311050070580575183351166737469750838006568384202669507873778170618610590687196815313189661719008734331050722469830760905751760955000397802674635328512521119645048260497394116946730864514134668909830412772084100265421882367776961475720270192899217928045347676591715670936727953386168869049527178138082808173458678127139467991622091494733465245825763225117900552199999503146940001603574567218438712421259614505574064227170342767617784966109085828894245121120126132574678896957880696361508002898046651753575315368112884703702096502500713067144396529858828349653306367807783881769006186259430578613332278052779276590197468451410033001575894874907462606178254777574067107592502147673105082871319502263741304912610840983928191924909882483965929865530422149006888403402659048461663219437461727199643223662370186636067742638988821349556394209625525471917319938533694253853671773474314974076126407976932267049094070579299893976932304062198853463106787749458387053255334775607363882909761696101821438082512990399343235842718160554690222787897288285522429890081895055209498103524049504688561836493090888687174304393889844747938688804783180174726090165931044800005388375928677911788800615538345661141024990974003300219190826868462705838711170280420649316926434650032425985489988678121675762454191702014341141810444684281427223216403295480047265335476002174485133753790573249552817822383948370284933230158045380170318287576295981032014599853481832839366820019554304283617561124183539833319032732416523073185600836190068777063822869240933667949037294692161715582108384440130344598963467172276826223713452843724990712066133935233784169367537040371321856551977409929880468366779641812000600289452775989334176224242937603208807824233911222186793376718331065224125935272107635746130166202920265817502335972394023582451036259146813177204487768060138475067069100506469918469266393062369134887814764257411654165941427370629974482499379536532730397756933344826235120063394730141539800039766948924549755414551417434079212924126709855089512332441310340699773677141804086302752230409542882272639385961887090714423825535379518138949939348963760315563289991840516902950819784762028811815108703315473132008135148536986556880984490107151067857268668788613376099172490742638398196557019528931144512287209615387452789962813763154728867845639170508893214861546610967710809345236818740354798301703868911944710895615676714693444819516061448826934491985231460927876343822356092848665977729475973257384866343098584463497497851195882606757852933399606981708139166778304786317257738197352471293218373564847658351194694738886544882321852830863018007260766191416072427801033275213117142028286993598103258630206979814464506252609104253119502654755165373184928482779349960406376724482750808092799124005652641770344961962727723472617198189460089202573648641885860567291046399870952747425986786657905372699877765019919892560510375612296431151772932108885120713044805947584275007944330650756676117673896734292273550325558548797985858141857143284665323669377124881180284760754379418388373030683222213540013395862131574970610240902512430493629016494618544100456885894348035634046335059195286233906889156484978604444832418381485149863086338066234472561467100542959369612761757233166188144287247322017352112332705563687469220289053731020849839258667680691471016709577300636030210293855911200916638691077013515750098480152680770209047537106808715641780302316047512906661178061944616905011293803850539044114059237532791188333368766481391890298430573855843055319213784830229719989767612318954209907345132629106651726027592734280512118699536615065279321670159091555896192637687299733826856539516112642274955334869525120672645964822502381907240782663610337526744580124309769965241639169464576924871111515809089055640803445545581395959712768373146517293086321021908458055753932869343768667646211023879545402420197751202839095712196448580267110040475255861235397641479621455390222124517113409867301307069616262979595282674578990503164616831374306781874819199967691006578448278808315967853880322767877217141628225800743268812608784000315607129983679936070719296811260348124962269092734782335010351914433367051331660258662411208904896479777135223877994749499201757300652710030090042233970733695249454956813684078095719249765172404843211791280897412957682825056497150917073481433469934918928172253079363224936168100829104987600608219754407653349602227841690026604874476543175729885311425904993928451348452973750953301957482460100883729273482238641379553492547690849055218461075079762992474497540015802349480270503732237181698794521207127476568763103842724312394182364863408852628618375260288735048755420672595720871333710763440209087319573779471045527463560387421933966015298324800952415568540722043582724815687721500985860075699526709149911894498212040950681611312842215913401018063453515005718380529315738347166676251037911804515669143403027186493957758108245932187380359316262420667272637617355799920737669980091574715979047650122984992574579208569183639110089867148711017454104256978335816855242424353594841168015698371379663541728524885527762641373394870936824168000959589134237667483216097703187543174742024318613804638878503417995388773580057452509342676134501571668636958584864384034460882801872975564674676297165003893972687298237155446519919980939717596461326605237254069974179408437999512718289741467929585356930400381223611262635011848456639341874717196290124182113321994235021816041982824410298853151919087592452896667906643262935839204065836162377891032316690969979868775993429819303751543726527377907070465483498875442737084001693573869416387740509557548221585702442221960316604235573073805193918732039128738352286767149451517521791502974131806321985900978288024352349516364856335708417081229832278256527192114229827897402360849434811099672049138475499171647586692534482556020830688080928826255105090003068718514646642045981137748945901570629733773600918898329858106464646334227812530574079462945801756812123178579731030542585809951539022500831290402887623153096222312705949640845572557492019615446815153566220762950012641357944236538215767119417576796280611972802883204906693971039649107298188413837147628165959250368188781543017651547858853039666844948852538023915751276025858568322645762799966126723478285834465512764505788049461617567124050736777138159685536718688928374805423934172523448828832073017427983400712113166714513346420388625899096950350282780808970444249767763407823887932764497111897116115420864104212726023747050059003309789189424653504627812242652418043495761924390445186658856953485645927778756439721365633574587140524795788386729510745843764212670425996263492595525163740567319571968239558616956316313198998113083673080292795127139267238430885881485898314137334147793204409862692481042194523027520578460336827240095194984931629691531805894214103347594127221291115561201930144932861634760161030792902007898347679355285291491479075783552909041769374533377637884902469891726699883575454601647266696889963235751529207911666081853975680052858070994487289257716814577209187367454539781038229087074694511539965923186327771884442068757633795795707933638103394461471113083129678267651541272423377023735211708624941114882021559442834038896425605023161887858127921832791167084578769449505408070775003457598950037784073877381985013598587208797678016562347662768034491291665744512033393022487357101058908176626227090062749362968779706838473753455681285551233095311153426046627080872978983674864511713237305002155684174425409593298813215580545870640563283186983192443731103051379580314804780217677802058777132342507496123861075136806270771684552977071371377250825345541556740310852945586447627073714869602761261545220499749048414021440936795972094650728292821699958813412941814656883993728644472314094195179509534346406428339174021288047276013767872801805632801172788821988522897138040157895128445064169435164007620863057739835679843050907981359002460451021876324829691391366293701889667801751107794693013490707203455808004961879592755320691680147403663836459624279600430731669449052505996300247535119400779072941625717704695244613514996204709527830548158021400267536959598257306577334566874329182634302532392067745202628898939678162372035653733209271166699241137306965581854517654552136212888221395103134909957821760457261507547610559910364033480976966480020656200407314025026639446089166123918442137316800290851022299333824773623764709225061988628050428617173079023645350922365393086741099109058069493700964318409998659024279141398769349867122865748046669359858103416498829047693725052109449928362033815679353039497825632906111510888503918559615525493741061935826415442391364187060999015211340856058918537815616608665563666728501463799524916134236455104973596177294438513343152293875295653359994999806430946246303024345372715492264265659567961420083183170839856680991280758002082115389876541498221522706526286300874766076347996301793899513325024249471554590581560982896287115300325627353989240603365546359091052725513422738329199531143583979614028306696565351194566659254255212953802439729871366642136052585495037576386805239088138300756780356937703416541659425829766736009131608239084703800977845942344418735233439580572059674769804763932554068530158926245406806219974711610803539531071194741513115959223822428528687603355058472855957651774074720131329834329863812000210332422697043244545235288029885095677260588335672632580564307338580487197340274165557563822369028702798535763624682273086360610824279044573694340269731902116055614756059005112103794608079722495744178694862684897835665643625403312163336927116554755408294972366560349208435656027490226981625301827076574152006411968921184469444697265533555640682202477674275604035968706446240964366450213742972762518951555794317977233231172102361018340035820696887507871862292158309215014540419529629002313485609704257738178825345671522786362709933363336627966752968419319094490499208236853633060834982136313809533546854906588449100940519708497370784192271501831598470768999436423358770405569036711726162554224689307951934945150315725061063519588640365889671993270622146819572974935697389515297115108635371654441381385992096107985583166035631651841224463446155716053236336427467078053145381249856331664917538888001294837013210950496919671846506706220469094838820121783145769958627675101707614359000854702550775367830078484566274651897473841361101946283606337253535407377234672392912164055795405173774422056243166118999807023905944930964723557172767380947413145099482893055859575063406504485122977118871543815012926580853977614414968997803651649088549798444903144597199337712135584388787595049677849994020411308028028568390865835190951206910840755954183004521238006632929889078189334110353249707131288560097327148834484303324177307493636048926541019894455788041395681237026873708522967468780089983158180305334536785603158666936524434856931516271251276216890892198159856399840739720193154331861021978997197619297472111605899849777495519398642409814049668762469510841335231277181276130124613154266419040964521543201249539756260456262633610456981295571836541587309516156483174877062279478129252372025727576085074408354246681798428565366849893737110386915593914727245889036811299591227555068016942182325956625514737762961884760980788866049722334137455142717958043812970782441219253251055130485153608128361683876319238207273387330348193382167916251122006987161367008952842261056899717258174890568253127741852183517281060629562720378560428330096672196883780085043840348772363689266356599163975138695311569464969343859716178318422601750914207327962204597083314762748946612101066602666992988207232641088658087780573345986123526276884864660849391986331085070851948217375545223974289036140081213187706023040948549111017719942356531505006123036637029614916670632168122366686528181352830763340216048397673098414318783936662321209660751087108700185544404112227200019015293044930507262833750627562658005133697631207215602659727528558025871717982685780903292630849642428905422193219211462097074521535580769761669228419699590447770948278244461066819045554525319503406463590467136223735658824587205290452779240933797839014259492078464642614913109279824493426777026904920987105439153775896382067633780564302900968692678118275169283443022821116121773460994763767459072010357340499292175282121183888901317298000293265203445232008935763187478466031459722943471798132749057626497696034162064408502030951738174308698864823730627878641884650473610450560934435333536564638250170368750727013105318887645512265114264688011983098496446271820225409792756030085164346221474841877197648136090252818865373378474159340375554532928454366383392314693136689214003450728930590115968305201764827757172057501763890572963882689801124030363281947703549438902898884758807365451286512997051003325415447786704518226460790351416232070737638008737813535518463391552850359190217980580346318491550829563163406739696194784797378171588164505067315881235654158928086725202787782482869254673105668774314427870578986411660700626665111851324908504168879794681258063469524843848835015727503615974363196032704085622103600573235138758116871436005939887426115258777385174845342953481974739762130110627952920281233743404420292009680627977345624502813474529044238630260609383161397147391876030494534333076410841638038343615645655512788545742621940608111495657334197900502167323792818865989279129038964373931148034722310297796350063053014858733651021861106262594806679348250940295999766455069357815685061002701843339521306565908803046175258061965809062165174229923464419082795592062804493371951452190853066037701612180134477212656999811928190240956924696214519781488726179656197392205748615357476022290713901299143797390664716460251227354454442974353342599983490416276953518998424974023234809458022290335643627428154574655736957429937225780421729397443202154903955405906546326334198890873739141713786170275368281568737741215040224227902441544375391274820449174658039093143845360111516996976746150119086068805280498520490888085212229951965442871640413425294093064685661396560253553911387234664377705108258558020694282018670868770435578642053163496711393740549378459145563198154828433284074965526993443299357860032595234404000986798007671983842352650979726230558215286443193270664692004466573224416681349103558602570339387126825274797762119668489665816118420451858882442187696996569835155692629032625869082005936008820362821438905379555817493008565841203971079429969479913804016168546426666886343986996207359964504720635932476545400815050207838282892375307628153057941709155404579801951422665231258199267887090344319091593393529036247389130590473542643579936183505536034990264782246182336220670991141185520842710262607106701067327747556245136037128991964300474407898379997953122501680381695561813402049558809185617873000880101068104503048921910453557991082144470983937787983419994581094847877068675959230457579865400134247371522730359426846519285295276586844942256615395627982877059824215941061937175401255333723547323415551375254162828130780036898661534141482982975642697675321290273003989745814146526504397771033769485321988508221111400154509632754587556032058363003307227717372610015708579245244387563756541866367627068127968373768690562902896698971609129962724624299597620961694089754210202271405104607638310309711264968114726819318272048910639790458329993263260757717006682230657107759275369277440026389409740260048079958604303257161399276287954211946833328360546989390574499602878468709859002975653108331439162894799509095281210338485113721772316444072498214328895254490482974409039968626784486844942735933851993017830069633271093431298400170571438437309893852187209100933487546361013224377657100646033800562660637956097388812689747244898889012477037802116610067651371528085169830948960898756065243621592940525222599343510470877005007251149806675910761432726012537452073914657350293543636050179831875198526331254133729350269821935406987882712060004828688847654744403551664658061314244986901219912966327365390601077400734265599043953646145364572168593704628364083284721551069414644298856181000260128735688217929837998300359819554562053512935476542891030048108021612693164939249584796970203843359703318268566230655590937573636782617544246027250141189398107360792539444692176360280188932570452761223101583608071269742500987147894757021840173535913041324914085480254905549983862239121275664019996415800210347589327190154639303439612455398953629227353072498762592887599575816654494687589932819691829052177917005935066139740445291343512077008700713470347454419725318480190916349626308926852422375733063611598350260611540440025514017485810124241241338544599947496263367161980352438234733352364166795387532527745005497380338563404312075707777561010832173409973811183016021340726187156575748980879668367511629943843885818313559484023011168235148716808727508918294361885418768867198228776985918394540479362534679898627654816564190377016906368957855192815507873667164188744832721313934166453432657419536008789904464224669879352428870108133225491554099057764843224455075537757947184940124249655099158874719891265595664015537438851913452476156149535797267490336477887134860932800270528206393169189276558152543659452617693400578789351886331910867463521885067545867509031264993473792325578729789490500072261836324377572313677555922270087576137381874350538317797249126970153942506951603360010019072085352700081721494969790542174561230928999613451592268499846972539542902515123542812787717064783344205167612416880175937413208797913424121229961680482955633659466809357766604102029288871421764019591323597765806391558320406526020912406208671254306514057058406625426772516991424844984631849825589391233264554497399456720119957910233544716761353094044925368639174562959859449501109777646306368353889568186962074579339606563933932684779611933967925315134447425203576100868372405751223112839518493933920093415176368128979460287309740038553467272294503332785885785557968750979417678843125200812926369273726613409910663535167786274756965737379045351648210549871663663196443147421514720065725935268137500826646813213239225493958387233056593035512840336015233299464397378899568209194651804270555926141947499261102129072014385136432881440391780079819148714945529829703596278703200235729109322304443518464632479385614171036576476905668992306880629992149996878960440961430400565931657384637124412464601682297104435696540036094412771005029097713973014749025354729133701860768401194345869237046274685015188563056846511381378862317276290824583324915553423428010738994170851849102848696795649227256035141319762046975047163104108494342410975800253554030737236638336476347498181900521249710881087340868531103325784503349228990343414675571283054025555561290354478014918357714167109937723396937252343659206409379338792769790859658990804061444454251455403776727644569051217029450629249445560372856214089112514818030395093354593075269363799722768526828505363194930297233351272580849318186601588907377468104623409148369554930151514501511078044144890696713818688855198463272766240679478525427434534945282655097809771095070744326581949587483899387033022955617358032613148505782828930786128040365002895848261816555540897845387663705778843270318285134911377821250993423854674945996844555126711131302145859048549929015298779279573178143503163791322932939853712274374620403208436206865340220865750264941258701806929375158148057459217832639048237429625836336543813163778233377459023381285682921880215741408411163577085133966000595729960219630316825493551404677288829920874832218131158540992314102510972615691452371150892946023483635971321235931522411674319442398172159872792240589247634779935771646754049673173979397217896574205740223809421953307896563569078877665649757350685819309256419526047042789554312888689140318327108914843579628976382122569155425754927980882512515657089505120569547409369511280207262580573229515467144449305876058336839279084938395703154104161787779315631125547544757545604424490088249564340149317696979719634588660329632706678668708223203076690173491335996600389624029083766358695072478567533220150581863217718605899823394104989252088865582996640811438725835555507619025243823097558865875256129914300013837978066143950702435953656108086555482497921335118724739614345318687603733623158076220601103034822382105982095225941267360867929996163084129350260745584092276467647915181018214783087107367699299785964119402753435480402221455728190666867157912226152400486279987447140487085891583870704445850640239028356267292702872431484387746464722359036806670010819736787338681438134529721390645840002545068403031165448482406394542990438170184314168704527931202982406577829357399379968851995010295174776422144469595144369567192409602245235415564048119559389231148711461073036342679897331069771959773971969257895102165061223462667713072544621327481647603587530831421870290587233151176307617421771129343807608388972770286174993898468169835055336465864724008024090785741820132457673004338238495352562999302132809970869523306782339539551570787723381791205035335710033793721179433906676301233934564595198827304539288416443179260133927487853715124596216014008537125731374189004585253841800905176275744511237846884434895960140947347628939406731493749491565684435309222579913672905883912236775938542902573930722582791377687282842677893043848231173060376087156649518807712325287416734756706258514193292973690914561222937120909284462565891710703067692526868877447034788114510961123814378416674336746370720736555592054222477889899049559708602643521245186452312326456362429758868352734263886495678443460559102522183289222505028582471997027279626265829730053957562506289213976886541768703377572627637700460559811075032656913683003364110597058935485210517737546018564374024189482109993149771456767768735188350777088934852614819975205251099080622057173819367545681825450681388243042970366614519127110361159049136507009612719886286942027899786061524438675728167472976212350582564954912336112005937523851536795279906622431183454029671933197295032950180833785706638233600123190897766400966216675619650203121354528258129924082313534073367493984537412559281162358788538259761014398421571396697963654549704020593658429157153141508084134164403658752413561493573033221267295642210148406393137821377985322760374967316013609826888130951000778957740689693443695108139201453151929846060175871226128277002453089948648957069393876614412456589228428701671306541144817290677752505062559687784384618496401761141077021196285597966464116117183120335493679541693297710310043185503550029452543624454429519892675223519719942119593562697993901664185026925843902984229876726914781071609672550532448257277724875694740806387338078520184564775026127980085703258900009312037939564881393861370179022132612784760759850515334367737611635367120704419626044384861128983720548877094444497214839499304775536415655678950029371584838407538359767050215046935251275501101936357727137271069690684855439784320901514946094594172778774453903009874394935272103356945993990288536640340707047885609010591587180046901109509339362849684568710685752741312131851388301033177215691038008921116337572201001928700702004474947590049051787990835857091534843525597851565268137506319599735213239489891550293928015722837299882190252497643197411607945388868002414378459495025749027897875373423353719423064812282980470790912343568060382151466613314549504226746459317878491191009695041251883838574192864746790667159363270166527622461135917562436684518617087760399463773676723304874591603702530519493043713547915944251083997621732231061291217075621519229698753375147402624130370332554309448356945849684712014860857543855114579961202036271717572456179812577394857621051858136569952879668155305904976687272881375318895137961458415764261139107468903392682047939474812981042496691910290086017926758614235829014763723224530239059797353292358917548946250030697134267623984990790415756115832834104460959504290417600511546623783479479637920766411128146005239551850757395826758742043119224788476959475062669454077255180952424865897427957106381117295492361856534294758124796838726433652605129584969839112181097458030667063484030633036615641374992811379288268776824617252651322650794603405279979313166875107084710908152618176019109193019870788192811512854644724787168943261406795978354298457203278379374253105520826231980220107685215979048903417544930545278758972608177245691154397328915665132290309833788166471455854970568043509726421251062015198955283485578476767692938237451279552847985993405259058150134355141082491138342174812710732559831993298053552945910999528294250069433035404662501117247808234263623381072625594126922261975275334216425780522644539014533281748225125487672314758806354805427979512177715471819000622701149858001882678526665515129238936124389483462720858146786111331058553150211099333687754257116122512347384255127401839181490635164417908927579925755162799571061597916220169884015457542955119778879005509381293280918680094112825097150018508337136575759095446553847100199101926485894875897734789346624739160328998073952272626477973141700149382497718818604292967951485037427160268630925369057970157260259509033423354968054049283313699109307951868360201127600994404152987563981620872519719570759179125512592294334761914487143096020596015310724215613308488279650252650756299515845152367863471621009310218474407994199990397514580095843948033449552593624064850889514927283927986974284662380831725481494082704481301058643462501704088115130330181736544864342171756318799567668153036288167769765764692375854402922307083022322204746584051112525390264859422309501965079577674172040285499198644869815007149260754177744417094086380762624525326823896670336916718249284576648945121491312768833759251878128339369067878076857338494743953391356717460092414811675182671839357843792726835211936458784347547844516796994452755290768445881671006315119118064364287587109998975613935260595265531197225556931321166344737334883144740072325792759673436246434815118076978369514315326335073882630510506172729771682557117830379354140130165340646860858031860736392815597160542695549793984080575960374695269200374320943782839606379755147815529108515669770657452745647702585485864887031731892029692607776251676680734470450204609413966826352342843678524399559471503787663217917771946140628540104708754635262272075121728056280676273450569745229068144832765485702217492437937476704800671511931032165120655847250492491135468784074229088391867017134883921664563897543403430748219417110917283990152879661481245480474568763580725651000693375000373279285267870671227077119281721396555794637095002848329287869961860335167921809962203512677149859761718781278222313714067811916796582679864022466350911395005481723427711500244147246811513443900345403002515732372974540170437690344424077407930867621274592814329798442897608784621264888357841287066191802751169136140522101465875073481935200563646835637860220263745244836743206354764024523397997253251241412575027578035737039520987482361726931853832190693403482695282963627194053931709489103765735829838521838571796796431431136626335216995987489187736029479001323605290479865382149476296393476582209528955624910654230993477738513348455764200300584394571820325458222472344986121719788695593156995485426347793660977452548962797442103380158336921210176885153176507715936306831286758478933461806817517994928810760475268613953145774240890223582902972476026299282448534120203556489232640161302470470327463552370832009327877875722749370094514292856513826451041624687451580052455268491162991088847784876563887945006646122943885127654915562540850188930205883406455888115787309857815524738057386160984963341050721704112682321268209792482842727066534434376893119503457919134444822151746822059370425073199247461826735438742741405580449732916984037011040623390878352861451575383251544425877145221438196232876299695560707694669866834941270482778107130838428245818783653817705874612295309927613234356596197743554186057607628984043920687000558716746180508489916600635341216347815231284498449240076860791336888833963735133767992251741743143918486423673453758305500190935603740660515118403089523879863538877254636298130662823615484484707355125928497178572055365588146737744456802913099209636278788196601872334568203879717865697704773676547982066439240120106307221134214335132510791823141935284230979080756949299728149754616500990941049151622697127693102636158234219717426943245288014852316043545353282755135802294304449968847235350215342121030756273770376264114370228616921676107890034342857386858926984695874242611444447634103029063695363422537611789248659254238138484100282137004183583644807832759878971978088104219721127866428648294145315515458465302132907415141365158840623662354629873789314892977348590677116071863740174736652051412313417953099086710173340107699220662411839831246056136875664063012439258555993235506064356941478075286688573192444803398312067114721317720019177689570751384131766729708060956525875535098464319966106098408551471389818000145654336653766371490558601161092938070696914068976021211696320715855320060650280119883957364704862740309934491421343101195955581386584934327131945866593361333634661668187415882927599643840810107257355895577627076010547177777269918637258274091288698109421116382232071262236674974949159902534992375731506150596742666334529323673812808092229755833564507807600006464002414325646741722616900698792307390143562296190576834318369953730724629365559140859767766331183276171366219413737271718181287340475588156855525262852517336420543711991629384834074135367549194647010730803018502986484250485517442328697760058698579369029628039478397672901853806165776270712415697965296951088723775264049770701882907941027174924875504097823410412965134871229922803907857638380565882408561248785562340059763810381626894730706465187247356880751608499364163718062743576480290976008991234609770000208665166942099564807682461473066442030153950442280770702869919018614692275370511440998545873371307332508901698825089075727942784643764546574310025777511054413465911535970828058992179770128851641600185134121977829340446715799353054971566194406618800486257229278676733410950434252287482706148501191923687290192359443816073486745423493604997524983707958524703539078992543217341521847047102140288576363407542444617530757587430413784142749699913622677724799452504311284054142677250774506450004518408664934863390360160274156809777390159083427191651779781316118344010681745445708787149828833922693168103979431802668430236980287712606387032336673601978642074413882416574437955691073355366468379970799216452013836330614575128267495804743216293813586029538337553349285726695195754518773345195682355675125667552060255886722978867401581033171175671787538412345468079451343593606914988867416360914553128735365653265244826717671511452894340713538274869533704837506251347967952467096425993624047386011186219025942469570578633208702654811667278370655418650410160260946653316247913260625416104313872371193776782109255401076698266316917894573457974231766160325892407358090712028767322474587455596530248607175272575358815610672410757728086550469393262729475016433453944585233893605533074682880036506241464439448854603523918649898456287045673303273985703694461028272407132188678196051019727060161341550118808433885381435761458994968605363742982849733085726479377031867849424148164963518011560175562519276368569582351866580373515650355016492558203334855682239768734365000993023265490970358464709356531351762793494269893244274999543158809214452141564488936502883968950224312901135313432930648841986934941489464426699067208346436945721957399093093017433648737435414504997544675277931819853133627471605841328133187569294997381579397525651169928347365544043002721679328905396064513188278861175894639399669952009030085491076803110634094316365224613669448708701084782452074273213481694062013265816507346699171434110881891845638537663789238546947494798654103985284493782120753933255354966679183158974029631400305614073165310004538666090466185748157683664890805525178909055524809310855493699339159348768162683529092599199700865982778575921920413948387046145465147132238593136261061423428954534113705940591785209389042313418037428085846074021510763802737204569641638327271662805376732871537441885085740418438901480087351851779427885909382580864411140878353807657990297982085947589991504232327226028041681100538773676400104258690992322535100228787883803812057145988761795037432828205728684525788799984225983982924776468786636483522175651949197085213142692896805692949776184586212776523464519230195937636019724409014536237424971571094515902715799228966523084691431458523050553665293441838550402073706324997044843317943877852034769353702492337376882598106848529156944135884543843700687765730367941340288355525198347137487000872794268646865389163697517794816485209233588037374146744119458489276472735577257442836188296380976671807628057971638697190035249252731093657729536054095796144142710479067055124319648976708423244886438008816773708469965668134137763925956369218716613304961889139588252033090172326220551271481764050375679782122761024866627451809630603785094280267995008261821037065412333608677971895916542343790147448331834065468647490158129981645787064430524811896418284030080323548937987205806587467576685518622239646963306106244114165188544699479761097659312872755198778028415726986196976771810344818323823914369691512292957334844780056690292343079637875922537276511997780060131585269341996371089442117376706786555391747869342383388346103505802266766431532935044912988712217900742085430480200567318258377791994896771658228147544442520952195675267151200603546039624732733702990019030200698213551086537583705792246517191633675335614345018961431753484722815409170169018561958381831936843837088903577840753115092683846608149274835433313627946839395905692383038664773365740093244485789339809621559264776692504157367121181023334270185230983645009181674558323675659606605214050807541897842411448298508025066517294726511530428232940778700129315165162376282466731736601236711643994848601941156210202004404008534950204682502020371153901010927058726407274203587202181932736092798841978832219642749725600332608262394772641327317722646450751736214771567940630760298631895207778079192037761979058929713496402176473093835540638052541762530569239825458788089559666736175414960303402163470626040686669692597788061082127534962725570932795627109051463507400326615508274215854620370856793806881275902211340376431969824477029127441753383608946206351257419840305801704520948869591785345397734489796771893536542671257946971244427525706917928805047755920053110997220717045881383239344530845835833330442418984314687633410072788783976787859998156336946911878364070019192339229085789314838317930198216855083779325452469051883711598753979096699042788624564155099976084586903499219673131533248198117240404515299209380228339037147786344525712458441201542707082077328289468358284255679021223696305015607840842879281548151159171474849571263352474021165789927650279356192988810172077343920172254879527618280782245339667449988052213367770880334062690078160577319849582422684014482204315392091919648964110669011742659126003493478057781805590811682432559799583679537371344507828168992268424946847490777893929937575899736154925438392434563141217135983744626475474169486936583820115610629097978006779208029648118878204537505786079739916593934359984136782437494395303554339499140868171428247080530417602613265871013758075901250409643775976791731903181374517849288961353989296096975760941387500151414044647518981775937687682975895258341137958795528631255912613431583020511711682099259721747490079288491303420754586019230389799011499028270237111209348413560866412811008453475675806653815648941637307109351837248788900090699676311644693890092890602077690797858865516913804525150470714668251375154225760697845275940056585379359311067922582562912614515847312318701931502173336803112183063552416780417505121781884475697448496205094362678649994184988399221272726635459651781431503498863282974060144859825384420914165223779032530006870196937499740454885399847182124114729651471614694992649158165763937284553198387538213054005225867497275597931628198958086187088745652983020752171431198076471262224421729010966635071315063311326399797917810640468228130532645318950121507146623912290705915304534913448309138304370640643620962794267187548343020570581086723020416960014222035064162999983893379432608786988978786350081400023535800992910822971635582408114580482466006288873179826554911547624585173502014089298034788828921961362027912911928830949813755160063065153472560084401395837464474609916357288286131300565866517034388298857958352266365310980100298819264992195845701432396805241457764502870849018235430922776337047689065283001064101183093707518432922486319197981703048316492710875707511104651914072660823540188929756138273256440227693813510664004600918956315047053092309631530134384868546195447920420199594648292519319935356031584029749669174152258447072728930871114894950838794845554760390779972166824549346389462184394613578918366476896604499780838226383246559626907570450659751286191160483920416952466606893756217741888318450081746239239663171384313597952387824162731395575539368487711552264107297226437736312591871678248088361075032119960971345996969590290338727456227126418983338290795853040651642285411076271749032977962056837328059077661431400214364591598581449412038707776538898416700128454285625260889080045733892423643894119339145968045324267724738904919632967877094839427374037614688859448519711571807106977799281219007163176742283702779942945320131353259191941697305948678347641085117675150991067579301989022620758132015873360494796891044343453870185606263466631836378785171382267532598226881269746106126496721857705280939036004200822089165446677146176922964887658959719077073770908946317100601154351523774139850187001931340316457353922476405055673421929668603667820775729151379580600190810710864017576950979517627540389797230621221246693842860683333120942213273610240809074021342551131723925890401824960579202866726761116666629620112710152892416304939115929718648185751173504538400356904254711825014188216601240639465263146774166939341061390927144372664566672237227933135049351041327791870324944049835954075192665339405817352743639191173347772960521954434572424041004890205176601514709492393675961696800420450114768478037724442195258403778813841747180126656039293599284039060877485034223688791711139484032560544648936067994702801428867976287504246307137257361081733754923828280201847135894485891917885176460460012007980712026166977369358954023988620526944026118155005407754056134069157874938124733693787094907447600090740821781882792434280781659367411361975468995417922857417805693650219433788168861790402527031836245595926857956669863370718229296147645031473506528921483364943468766376975931009302196166228069113288741466477128204646552547715548952866339134217742839063679529095604725086285280545953392392574715455094962016054635409148634926800797319533819294326721641996350623101582680241353583321822002356863012512753754856519303025628498842073437191871308447195515347738249458635328590028297778115710285643091562573825418619021929444154016483095635877883248099640676087452891293808386152627600517991416747427955185972417535498124223865663893093646449516195862024600308257674918238550432123946244506005448059217721052701590851009313794867783168063967199348526307097335547833103392347833328144163205244405278042467546514448037358090554868859503390886313408081713959409013504686313891593447157559287934958928222218774056785956544392787641600988362689146475471045397401422425862300303427231292097344436243535190252974424506955481527132382102783450300829777139345539975444497301183498525161871066498399104930804201028589957175469442729875230679146973905769911873050850417072694258831592431423852134200895219678858471703970558907776978466866495022887515488510469582972104252230806788374725423105696909722292380013096612008215964704979210541756123030204348555388251767327552870377511675923803004771468828329257880277605851513383481959213249914083081079543041357740041604236860522277483171499799718562944192880939969486452141391263798449444349939254778011500275807936862881531927477558320909816142249744128222815396866182050335575765598993972911735244713718222432213482579638098301824993123921165210050623617978864436572867241197807624595044181576600190159436442327150793578465035353802282781256520942425754206987581300421373256410509192516932327699965072182573948393612492233816683130912033860974510496609748229421965760529811096470761069030974062217171947828975927493865830810607828307663984575588836426976609307075063355096539740213177190045132494350134390348911491896111597200019754427343739407937555678753401102380319057432223882050789412288850917406273768594865440593682535332138701106260764785274798180132237300634561793020686829117700012480580560152017107640822717998857378896480821597048304407497813757355081251820887345654285426285158412765344361585675907633462783910694834163881217622643400220591268149748461718552479451767302452316789860979250842494115580843905541728344999414160014141267261755669236478833469008775583511689271013401596674035711596380935623821259812532660859756675536749705466281383683698163538555508656753357790758827744292239546968518163436381168612359758811228968523159187521376087663944198983319204936053886647517293792467649644306353697729226472487499739289487756534276698494927690495014189900293618320236915362998893374329522504918659339552780888394500473927524023520083567949555755088172659933016301621143381828177971615234554917721339659536434957174309219993077475420377452787663919818223119968221906109900001489156851461303218207184963647021291784718997163083078382409261794527005645869593195550659442712418461300376306985779700180401568654369916208044359216941625751923967054091464274321066090991854798019089537019336166437723830485988921564423618721209322912923564987805196934321967328221978228087693961244018884864125448887063874080364164402873227135744013534764894200909310103357569374652194755199264303117712424349556500053878900356025442461240968145698290062766294140351224503608470707181971738701128534871473953182921734874903478336833778249653628548262781623469045392615372345827883472864462790639360219313708034459205544633692386640772315807708781375851895257115677038506882650657418896229117190667289293600980443975937900760061851042187392342192325396725302127138348770852569294830908407467811301609120564118220956302119515393170204625287856192902456620593682606716982766656312053401336837049881396211969263353447199853152082518915791927701738087525572242299398013863591529514464327893595367896543947779907567853343984449597379842288546152666990616951058707966186920414558178951349482096478447678000018861713835727106067461813988350661159786484576832224406208597814315996393991551543507636153368146649088890929541899741258194009840626242609216326278832142547119159915004711696540782734833849378932239869733021783542817537281359503276281072256191870169444763443029117272574603700410883097330258923925023470494253716807565497824236344879449124587628796999450973905924891204555211707669586400223421698808021259709956052034522972871821701764126815682014781932453107657435575913801708514841920732044129604188021840688933819686197281227235507527544008794077897770957452676108898833194146277456807460903663068777160129009657749601125904254500412091859321642362185190318996309751589584705651225312305877772933351268682006581394758982497284544946625239114845479169812832974129815814388484956119105606503400973740590949642291070820481425226869004792760782975357500457245678902981029564783142053779457751264352629813485382997685086757712174007662985377892908226800887568062892382095437271641651879105266793041749204233810016185028154502906056611169263687823521536906336646752752636938820920695368754283936431814283005426822462019013065814384187790440543949993761673122681887538644136206696568234151345058540078455786206131477523510857684134170421859691399470436928489641025139732302047142556124284347732166021156161389186381885730899088670893798253112950141642002370053795110788732651973634709111149036043154110676430287025071818679233205950346374835499568825504733573730623670985044067866879199019416964639737576590249703129124604778935001277974973338064583016405659634139728526790395076439902819345844191068113162753815719197733224214896922763427450375530658241555241653760838921763547616073107881055019881377768062181885806707044352946245957065425057176639464623791606743506912821738307081075411419535147951176976338669959550393922028334681729419412727301333678605036177119948160229254774213233494129570780081180246349539930303087415991173629357486378968428095468833875670903675107710343902220769616013242370924966906323573189685036648370130209541452983117921613397669950725563092422142584231125479923169291235925989417221060599975637077026508283275272122854744228368570727812453526360944208223691037943929114065448979505125224305120002397129763964382920057535945658165362006399431465506772150527897252879463543800464828357193764533663159045703597430413833275127838304466186534277509844634664821685245590145140386866092909354482792754345634285910358525196177955975764774259043471703613963360648359119327356734738884815415821195795996942436791420365334750483155172545376472092861923020958713653586201021491471842396536221958833850547520487774395040981393404169195546951969976473735884627195813247164528877591982002086727233693511869770141141213015923412265934639498033605917680343887565924239401484801315775977446336158411953219242268319738353985321479510513419988948083558806705482974359613604988483419985598858826818836760146397232216048911378360023447552155612950844814317758117150998263814748378623726224819614258464461727199672371179562071241686922509980211075814600709277094116238143852245740077199200677001873588460969077755635943822703353608946988184625049781494721493673624505504391547789193006129146224308033851882033612431516047615656376959760040165392087536728640507578558325946392126812676775456605875748986206233666405227291375587740353103506952914436943816026177304807239750434334854083650425846827750179812535734021781240452910376800094720279480469019014889012270749901288980082863102373438389839923034647622693029022229811126419425709638379893508848878090642287656744006308965488513042039846390616293459673606366495227549586888617996294382065557992185875667443119491655334619648320747630849628134394626330543949491581567742700033564107255541065330764938296323996512936576237413506893610763774349480466770213761921433656607342662217510422294868636081635687496725184131432784195332690916368563372990102678692968649993054388611770143709945623701245763738317082834869514124269566277855037317204319123332255193985394332719734956624266044762828133467775209403625762393454087696701028061205793571263447690109060267845583782702146184072714183850244687037383523850953169057542707957443967415479177589187562185653526782897430409820445081057013024198238523698425697812591887025728782500063115476671905776796508399346764802067206739021763750203840672855314654540281272733397066529133346083674016239269081821213472203441726900016851987953432504286561281528292390374636324624450746610650827959030577341412169072810671382603957491062538717671117807237278199998094654933029082266436254993322076731478851126370664229330605991462662115984932362368580275714907627601502946556286601755757425538805221809520044844564430292614709373958462559783004239383102935289780967862504701370684832988623574921741785917083048661995311568304775487032130309641564309111458695530571248352400478533131417549547198420577759625011101504272052252758107480071412113660894140279252741534665481541518814290730804757647276767674235540259240563064724456079259440359205094130489160032848316594548290483112702394525021107489325454329791162884045947013180473810929610723197067803230846256101439142848657002522130137869060985318012270898718572329502961759655572641998880017076447668228252370385317713757231318963870337954211552430062919583611093284669807839757482868588547250724290190708424450233604946740839607214109488239424981250425340205677986412461339787138367432103965332894937143925731349637472607298214995110058752127356776583595384706676867825670229900744554151346974494929052886653975581595387407560342391443663872252042991966441348610075760806386178230212493633558840550993995747667259656233347339124550628199979971106870796670835840256693774792743066438162049797054886456741429875718241477657618889855031318068433974416573317583737885185739611110874541508818226099689526389847360430289106913265704007616259486735679880388315258238907031569056773252308023438278977616894955077111871681331906715182639086787987526236553038708806713303400473986939679031646171563653773929894009821201772233566623028467476958672469071364754146797426308853444730083097946631306900148089266787907356187685409842048042259227490417720948015282651410244780178591175963537610475550057849749078326755678932674556243662089346358036705435901875976282656563642762436520656016690731082666712292314739573458873321846793581461208515206230439703908093128181320348508198681119554845513789063466272451551271912268550030372418126865216381455752048876911242133142401140891172384221541680519515187193381066528978111781517753988559251549271240194211094081270644115209476892011635213410019084321049096442014437336574867294147724087085952595535070179607724926888591906573704429112247889589022085150088790108398529343153836246180611074354429094193666181088009921091927681157840292151140680812205427466014261269829646145419266260152685414810669309933384980783488063323911730754677733675896740644364690238578542286241031546590330125790707126903572517827901362389421644548924721260538677309789668172923469384645741799888521058205648743047711104724348256938538207818212218384303289515988551723162281871746804437383395010471211829283984521974886359612219273649746103987292430050526809807911993142603050218491485369576056597635208771350033074473347983455554880265699600677180195703678393292557873615584623734437971559495142876763912404001287853302500665221778037763674070917813625217414500962249359905321802230613766540970466272328099480611384738445998773736511107491185076659952772571772177366599615730131213996839217915239202213266153865000978456996365195904262407596851637717091823845603741157409090365727039471578923641355376704525898772115106185745817605603830838201484780324865851046497966499744096567382013825128385648485571289464908731999277308276488020026445390601793673341014413414768191460070954286705709912047152346029164294927074773274121053567002888540053001449431758544699842975866135521319266682871430273797343105434121016051520910275494972091384034695360872990618963029305284120117240012411234626901585165737635837414810135561975212737781396516143183498895693660247675400224137566086360254063967966199490021792591873529426372463363770994895256868854863633593489333132097138194904244021319418762994316529875986780866570282011652662612909235231474214931388005903019976987237588553679331558893228632666477367295916722746739524881511423911215663203446952456974963363784297947922554617865958823321221077923659826797604436122862900589830611869857757001689298437569665049121464091394134358778253635696203524544741011263683180146571356874825966369047678387321828192500597259529207317616025998093701979952788998286796514239844803925341791459765904572427011183983132525053174513367877225458410391021089394171967385822951912169301011045494625644975644421556305255927316212336757562640023597552279609862385657331971189581256912615541026139918668309708430376489634978609673788294804271454651661549942249388695479699907959684803861687760932604549202792017791031575065631686271190620711241772405769079775168573914466142581517658584778030732615799778808148377852097887100203084407447475577026644596745102216510499361374512997974124959739841383332036395142732802162849071256787312573697995789511336370500216455713642928739298109798481916221281137622546671061348762451727831740905423739768608726626156296355918464114087697216125033411709460163003065535907277754192387299575931564061902205088319046402020968892954654122886323805732357401974655271519679132918360545435155413660383864175756756695244569277034113138365885206014795479753573117459905656225015342434556040365993289329194654717708434935837645234420835983799196429791321306645307688422369332465060140945222558546300368495994749341785836980887900040280304595143259937032132517456821972800948893030791070325329042284346525498084821966224873426582233168778079652731860105597358276265513563076472029143337928030694162916362110973029272773779432534819894689244968279239265493364401828653341982439341741800843330910426263439462180551645469210146229761967711115033974267813125176550191373441293616910510604024646969452816048814554931166590181838556070441380098215854873533135938797190470148863571549030201293134039710772122886715809540661434000837271082684796503302459497631646535957138353173685832842404286418216501029450246203078973725541901331214457001768141142454432030891785785941794986922483387370550570753364788279578749445623333240444966138855491854306837499308213294644526510216187640634537391357988039550919373454473618830808873019454293306831095418403430562037389841723798226401866421056671025416807811286083653044727973014235345605641111159271295575358371926263197311522612926424526567945536453257052677288558727495633200152327989584384022667686320336127924635231434436574277027782526379963254321234120264565504035140206765486409810379301726647396425450803718736671211492803139755505424716914002974323737919526543778361568891214772951002066936818320193844636980540720332284847024190878261228496760851633421683816616220246010554216766958289962449118639792789339159053850518725870991741835185306192544044780099312769481405843823055988130728760892882028585604786032461522250183554734615227167524068547246366723023235642550031104689645313305321659473462281249222681813414764908016686463986101928038489289130349050741544577715212417856395763163035865512341039783681036924603157347560980254896553660414468886800750854314047245310213162989568091059665111880963342697735337939019994055389618988015574979440170267187291144168708238138257292740720447606691585029561524067895178198461906985907551287297423604534707097626765897488729249959556785607031926290504623157884084950424731024958790394276099945364445156612744059229514535659913940567019689937164120629794462253847558451218336136571969175927492007730406528304514012160164870602297745567512078902291525072623919031476698270778644941948695959061523115231124396121928405203391268675005703391189414488418522299294800701040466308740882600724311198387165977551836486983003875093487890972453451010782048578080876249104059169588900493832252045703728334840427645497108575062265981800477201442140160599181141346044898460115238753768330485933703037462927658470498584882242821867359380820008310879847576788936033921282111324323489318332849549295356516634290959359929817245942258603835476527129574734602858600987166108227590253199678250306294179945397435087063986194992169905345016285710575032405771924576850943341525098698972976286297207060196567325811887558551380822388063032284912164794458974846665904638757353681922396587254726978926352896405831413867796485604917809738428666686802556207476213705140917825044684655472104377754373475176057733381995667615850521019963769998092668746564032814007078007092669942117183532414810050927775445290742039460541465722898383748684345791826717141887925198472618721207645174808875576088755709715437521922799683217709943590858552243131537093236761398595069890807307602066952542835421262883950851442022630083579503027489364842587518149892212465839502650932337195856754244756446283146784304124501419548613536551176069343524509357120742302473489879912314503779291844810482486599817995836514505004639092223539314905301856469284117656294017444657776837025518760946587836569566558215124770510387315155857589430321003410325518190692968064419923650611508212181314396075861678690445233635846193091596331928204270309577893018924664696473160199979971357994268205321768692905149630247155458197003386808355301601567275318057504568407438850282674925626424696359779043819002281062210052637586103820006667770461961406175461280335381094660575981067267429338546950147740155374929808709636427793204377482529093771766508342980380877987987319266086831972070493364137279972277013354582207475935998410153080676706578159385969119661165316967164321949030584283106049926251151700137919413990487501519228300990254981962479171463186159116453190018509278513417580502830540926821854570074432771644247854754816056005937581422276965240790747482851914505406097371783351640456348747742918333354660935156693635978706638919417678494110718516561835292039125902496849467215802008912682154509533747393395438942870025308417253634358881985758865750810146219847867350972518569063733531039913148521117370250645024171811598779549185525022892883740382748441033010587808104615662647165950653171687708736434969559669170112891676823854056009978324315430511251337040281353762175765987113702045146055559009807477201972179935115494677103980696652297959117174779735057298634740466974651334343631963897518011081086954012663653536636581280940772047939822333076810934342797627496954651720988779305764678368947164798485617077995007226632922840715972795886798493633377812992902224362220078907820108799868945733833155499125325385675845193970394549463041836772701692219926151236564467743771414510434422393803104907658851552070514904418890968110659214452739234150842465678525493433153075428071352444886826467467485588345957828558076714502172485561885215890142119950506441154154183941727815049816336525149239868299050309984323351411592915280217884826256323425506306510205284700889321565971888911950214180919993598556568778028522626607419684364767944638346529968478070446052359444856085620878993772725784176071618605551058104699993118643957022666233658826376402417778879877978379968846843252518175915332743639740502827531537234154617468586713571635968252942059208805239147672965658550319417832803100132116524400637828650882990888093648399215085429284713375714266890066828950132389247161777535830324429017722840517369941892252429927104609548578505661973008908923789333898943526375987983064719138825116403967008308471931929841558580686729354366948164068591800674715354405919752282128756574026707774602929398820643248492180857793099887066455160284778910311388890929208098687754654760789641426820702922185448361380315379018354517252745714617488840746401928042443361588270936122083538312793490040676137008201805846767366134908625613495294868537956365189821705894336258492026329407570754856514981808761218770865236022266429320407228003550260205834210782053052450087799869387833125345586138353713260808631624988222096024106174063998752126314568347829548313870640504407767764228668450739678088807761049085145455253300098921703671706413763247389669599616959512959362152356686174912876680975035327118365692835907376507753003638786417222948486326662776474868469220026586231509619793144729793874491794173137097462009579898637209532865372462358058779092976202441239485708283731599407999709276441908750618019363243477365503571533589678914717674178298204220853530225285308502398268688098136637569543822233765669869276892126080770303966377678217910503198848376935949320341577035235474502704879110221630382401510677060381083662540069376115982601078097266485555092706822164679466697485882897585270444794835370569010196086286545126798423493789341768881046990394563112731093439260371181997208660892390512740364361665805407483592735038287855661764783116798165690948292625240789398126353463114822106422062847715409066120842164399350087211431914995920001711336015534568022036071293468999436336162465312373721833760372472394002124447793075258165390856525213520894071584921445080213503505581895725032415959575831474170672473471861779032050462934692620519818105656449082674504541411143364218631863154125800776589510847891271647893781998542423052510462737908437513932802785555661136045435883864182419788157729315907334095937539891352113628474173094168926110703743045149343433619818808247752595257405826552391371601016780280634880751768069087696237169408884717064776860299289237765912703924790689656838794130122618045993659338231617322390236426592018678874603365880728120712667247428468587520741714699184234182186541038298944513479911141522180834772943547634374821701064138102290469998811271495080845703995989511672338373962127013588643356199582252865866757011699707418408503308522898687769372463443445564326035778704607797810097639152139408483057185741360015733736789750357303917078758438191870783181823701622477938217743127457619138623309644100219395575964655508215543592606982775998865988135610362522316782673101282951843572524327254728048025316061875591558499851632798140922685611485753551924107767986742053554289642003671118505550732058091569231455672612204771574487571768827298550351181285964281431522130782388410520294507447398681246228918515799297268118438985717586555660995172070250078380576164805740069218416543939554670360731144914219704609648068568256299540233487493366999979382328825476454394850526715020224721049605535744560423079675786678630484517964232673474454876779006909255188062982877641728044906684047388946047471974656120757046248542828327004940249809756468841374015755875928362542215886778532843999157802940724614119340959170222135521510306397991043870144993856926905771815235903583262650093196618091527503740462844837428432229237411331135738860661057573513031149523157924126188210448017072809031531706990707536812284565306437087450997444397963568811964597241758456036779039258813743707352173162246918064422838470386466902859945812615528949328348196043048293300467241898781887311194046481776103075994812154837666265846286997684906839533035438847257685760929443276588574523055645778150855295124876579879423394678124505076908263418400115710890118709823987091625111687953719495863418402815113503393993095572215943810222250672567067979666390097642662802607477276810721426576998646830332611952036825586106127501740684045564496734379347424400959273863788550357472085343990677714466048546491834266248028717875287812749138187119966830636512979999663966767070536181749988544917560468132916011114319048962319218870306173230213883287088722384641822773441407536280828764265631223874419581511279716149992478352843806624623505607137345855524386837837016425607142751132433016171068968958202512317607411521023849344853733780656101646774016692748756591053796772104349107913844845250669884388737230314908458957572222012042668198538173165691186222661337533912774354324503854201106919098466297408983179132966698458916398025832278245928597762950266552606994842213093487449611819188350466621441514856929601912440865968061717358230229901042956395316622163070740116288290851188331777983300370913311444438286432319287665859916233133073237138558063144790113173739350748019076433378201721335755625492948566085197086069828046825343186235651977610230248478570668264033951701991441180735844235371943209162335046192237069351913307319000339901017380196785769944687444553507066387283288655345383452857900096056040584123754646062557190733872264752014546466362450139471590616539845449742940087094017507470714430210704838286467611260970995804144534335096645450515122779448778504221948403802326628868295158551986979834670981878274769438602241707438218331874573334205127440405173523154453128485488455138862876467451283420022734026254031776351821824660540375131314083842932703620432285684805884553783075910192454608111074721510053228497135618171103347347789696073628444101692102175856910467385799988101405486741970310927605500902643380629186515942187550441682067043622504044284153345318063341783819946059587621172918580862010957070557678855769970161827664291202130346040573983046005316132636581729119480578652211800037945806592013314846691460380399779799921058717282212775807775039705919704775085409588458969201177617957163639765806825623243338356592794193891480916146102896485997459350157809467821142576934995638274536655040954254196451120897590711917006043842276828815213059969980775252568454269146927565984837909436982953330528422150426294484010983853847190700331912197807558203957756420156469523378521180118158014364633744954270518446330409080216939818213822227331240433009786931432730596845524581056396503042481622360991013558894976362716666307024113302937706874603027706161524381265250337249160299790154705398767514743939611555773643050265120321828074731618749981752360614936073890099592854899892629911008828631509383182389784060519221375565046419931711490032319646864443432328368025541494279417434095059615282398608109872461667677578854465968551280628598851029353360864421840864814353468859772705818133296406607558669453312688287255700044196101594569477000353408797456315000722894702271473191857405473551928531737512504829733745691884567464259969109512917994784218415791291638076053316199192855673009989633859186394651247924636706705325564678971507063387879632112229026540202192204929769914716240620459234996109484593663650916399947792336997632776134186832192761900385587307323630261087497376650307190079474955156877086872787736411075580602841625360798025738269019236470688618228225976581601664565393464106002058263411281253961280006456051828993226396159436463089885916710076816038428508280490147634533926985967290782492097842036164183823767903231997388041395318972582796352727231796322751466305606515751768558334971714274799700182133503688843505533326384097418942018453491559227361452568357085262344826152216065218677738774880893917061498215608833879779555966851345983463875004221069381021412517903629937491912635929823849135459069153545089632705102677934707066241692391901841225430385899032389463175299185619844574059575968083541376454086875961071382647087162149585457566366454365642281534177805021727426928209455525566980818774661009563010359596122954313550940815925153998278779394258443030136544100075891989622264672409821882431282534734700383480527654275699543404166593144692172429167055266167476677834812487011559181966401925408619983286566292754522404884355903635615603407838559441544738345649836991735292190746489003573635864972169941416329868022394640884893921738553117374199053831989482726693635035478331685099954382475251940864754246756864045298408036149085063825458458164267007468367952235235862941673538611659473966240661957664242750705279927425554944441660381557322852144448807902767933552263051298989734497445748235187469176714507831624972102965450364927179684514198690700022935157668528316869018923251984329578217259220420038384935044904683135712289571389297914851113709639730547383400035544478849205803990876604626527341723749974690573437983418984908073300747546748311621645215941631706710804397087321382935550595642178185723441570155126690135452623988050689534452901234917265262913582443770051749086882823659452686093676259362688398020819114586407548582039638078704469748227783724733269137738915825323901463825764343208659559305247397528255236051947795255399183823295208391954760185155003964414056642426732183071202760773802228274127956227684274343436628118451523785225015601558837242132760073055004195895447119829824558443034574826777173846563314284883376306608797977267198122974182238594722930011514213061992972975393601658732373651574603070482112659544944290145469655754699316445635193653164117244969461435065723642993211227902550110803115600756436806835793419978173782368955914275231574401931850979543872899042646082172100075915975873542235685532264515543241734845419064660146508709161020482068777919023092606044143642974477541210455239429791319443671021932332977486334710537865998816592300849583038401651811853128711594824739599010079783752554521549229241969244778232384778986351489659324898742749713808647649746099593905292108572733860952034946286605622901475202496079816703937972748972582970826716026086261085750417771019198478123015634634477695250668001804851592237358587569446246609571083447497413097095245295532154668622061281050254432854264390639915069862676179194761835999568176700245294529424790148206318863701218618653280421809537030263053596810339615383476701261280620235332991161051676016038003864690020803008370000566445031324844888627445358106118614287257780258934409556409279280620086530167433896246377792177620949801776085758492253148354344417617763329381548042553372081207511483383548076532339897234699413652099650103318466748755658869460084099602812099172499764001976181382819720122399750113789790582805663142080472488094075428845775730045553528324516369512369486268098499012378749233356842662783953040484317192236731002289287533872109894491835607462211731812931149559326052624010216406087267202364684718555888132506984966629585403208505818013314222284688927642169793563308107859717350152546834983671846332578130712639738848774433529230565834228737456833026007457924431263532930761603126411951157816253428425864080222286823080926899758088009925543698440552229352572399572517666297938864182245862744130334996495094142695921427717670077026646655881185423955574853962968556046551492175586685611608501688835209942343093138242449016042243761460088641629015195063001887880096109981596996490537305147076945518701522059584266767750667641042018870614864470715366090264274577038428100761200254263023990059610692051911673239906797179675677726147741001082925718275142135605072505062159415643740506515317719812775000703967385246362731104932688905119162961317979783808266847826888102963955517933824039059397541651701320536170153751333529371429447729986953934850077899135613467674146260918066387420894585108058326036899879161449962433751772988969922837182545437221279637258235663042070678541931942282666185001039933055887946086912987457729403972468105413536811213069274345272926138602910768410025156688683523563882621384107100998964922318553439904226486626815165949475973422328595058730892723087518760808470727307397765378170030933906898259967911937616065469569304537526691057909769372716345654159718295959289563405684876676323113245939309357733856050992751913551761200583962589766945551757826037614856748669410078656698010634542196737055198868347383232230987466004604807457510630634244391921185193504357268091520060933525381366476166343965624429813484029826879745323456843573281881139145823789954756150114907131262068892660255787279774112671050891913700728590282776487962925854694647734072938269490727241249531601092207589167661416539646076378287467075154900156974026183575830652558594658714808243382577979861108833046984984427177790553786067530453306958276777616043542785310990039657718592557833802316252014093042458779818270374249297315546862921427262349835413546831546396799243998359864053026814887634756820722092441005833215975984910338904296468267331524378246682379081766501127914009322840345059576365753030059345731010313150890539441084118528096441908262076036632459302775908724835518692065400622471724984698840843455687371357079378374126069689435160210251325225114240415616637679054375215934948588789550095831644852443188978642649689624273834467873866609321584223905497931535844057606616618412818513300809818782119245992877488603021695286593351017571848391979986461949046196099445491354805441860593001573930858766438110305985401657607804307748133489957352931316988150919172340850824200192570507388411932738147726355842615738278242185326485401272329561330773545320855044724150773870801884947326469569905013414935872931556647820530446290732871477690360246067881720290341450545161492855231563889242827082980011569817268822241448587507965422627783018441095896467540183515806209439699808313222073971698677264608832038899725973650355647200195571497115736300274834196019171353951511849094528194271223376974778236982103541761294738723740450184400452032423119041061673105475275237188522524797660832414326659423221198056262757060527890578873474589893028460663324230885147065512394664848000359229098020609520715202777370443301947598808404404428830210438486865494844732818572314908325380056398636696948842974140211050427096148472567530996071110771223088561926473523041011199274587479655884261681942182437996191943345467136694497286607251165375333669190673995938531944286002363789485702257899707921348905503035075018844590129636573187334482552114394447665760156833546410568140702143758834761236204836925250646333653239538993265047814550773143121321646514356104870846534001428631510989003303994900078645553004985716731241604957203220230595420461799948609240730182258828123409835647776102766844252400007208357827387846624334744863976331174611251917744009650196052266727189438604516211855000853140313035018403670234096681754010242822053805683029854246138169944948627039180130937753498951970473948829157961625278283252153504862042994209258756557284097416098227048394616980381517096162019822173028052147831177609515040575628584613689289402375675797579031166021296924478011550576810957063384369850908649951697753534400467735315306670591353901293446190738303376882843271282766561105994254705012900301483792861053230936510027844850863545919438715163528939434931289772085415241018744101869713347751422821797996204283143087698351755553147308419741695231566736138577951305123746994647609862318047874018827080149333533282914533667060639190375825925847413381810663738372666572131143017453938746861420823873528050077686150890827435048063944973195112409991752110887958758097739302080817165096203880561247104666518574303546318622137840090193349741568416320733245637725696904779127767788083401925796202878473876967461063928483416757284860527190584401234440662952331059032830579273589568776116856417571223288990091271557880248999896310171320744882517988154405732015451480194446618679643903575162612771382890345454645683931126812164851592205900508445947555784676152467325942405770443865107862142066326740051689779192404428237051192131754405564814430110346670841745163538245414097892525589342874084736947768232454503759679793229941973739405774906171426882073030577992234841764226754120541576077022733993305279486093344725509128821338034378409162679208921742961856643359919159737035727184363733954998905368621208002041106948193824650503193032538327404159679772733834806092559035846292049404229445949226268453137053271527487281960408039224786857199470841615737797865371740212007542657607878310253749366575974773730858612209593575395923496143252075459155582008731234420768171298904531809580213367503024101500511002169987021335126932864343604302551415662618310832863357835308781393830196352385974858331345814203750112490217543349070782967699723973604105331327777197842025661177755582259153235219507589307455458435943251555303669755416251862132881591172152883392171504703638649581697593477790435919662618656994168042051909211580758078091491550849407496414215121173506295718329451336079632976001137817563293169706939233818846975322983226971089284036493428061603308588812069002557239553720184934259526214664634653306366865128975845412523365712725557468027291247529443287669335027601582541451960766783323997733435541787033793819350714987009153391796563991044712542615031692257125762709406192278000897049938348928587129156349490830122321073790801977429101978614336597981022323836982582878188529263352794391108003870345665069689273163758117978447342515460008415591723084458013994909600684807775682117094655576617844418656183088016957705675553491649126725382300858496003344673597066284893797096563237681068895281574698248099702650084213614134478343246854476686612608681962671473576588654602667612839360963631266080881772009775817328536416153611474909318651613667009362075367112767369484637589243183655654878371869821559313067016876025511515867242395908223581035503192518314642567840843077126743994842424292202955724081257192558363498972039656987042098112934048022669086850327016261414189646649502415821383732256793383743788050585174092172589736582754842806467635166521346482870821667988024980628623242869755405305047291951352805492571233535618189399614778753976020233885291600435672236827379717349806640370656069351486850042777741592671585513568674641527736759155955863287487867863305350520219811582561600490935283389290591520268468629513300225102883006601973375775988781633198037510710696197197960082225989809128138453614264162574906022819164199878712718016329331525355778002629593301429923568125835375281012309735522210294644157180135708286421596550117491239255804074472102541354664889595514510962830700400940437387974609128278058288766917611458427811405385796211021099433363635941691747976941146285840567191413230172548590715652609762793259710497693402250522886477083814685320132529890504378069743555118229413932195877301990964330297183152845420432391732899559919716221508870359724537226042351810643891553967553770606549769009762388023099768279902395170545009385591475456633526166472359310828501074108192267752222539503082163113148804730626562088115108482509020443318707345523547027948980433117357574727041696732643706827704311192291583940374557254208623574117406023816334849822007124332637559698285971230253805926861934957787158515775611659048062698194311852560564850722499903487495313125086173241983912825018401957706868448136771492180350717807823823055925560132477372816879000877389269354253320099709005277636440335996348212736809001885296500979113638454010181543223522510136869353862280823055449153883827077957658870288758828290666418407389074590989891758460721818301539006897193927899710928939389390661983476179394376040730623908263628540381932624515031732139771537733758315023297213902014217772044318188849581455533937946872290924033248331530850752849665468985394725915304438128386271234438346595518258945333104808981950895138625462600983818388768837805889167208438616655652305727898207542100986540493378483949850888344525021929884759665509993102098743918772609493620156201452938332877657561884535322466348094461854058349305936145384902631861879847712237541020107161942499287497018664368118348296855543755322247823824546142004429977911113641173232315192208529138870976839851268968539592324840140475557077740242884035429806434914773682464476225085352270865780368766910440546178672524495907907674772318732495308036731531214238926200947678331732966063624978746537338264761680462865767643505526598418918472121764698638825932329901069489614316864431066138578753592815344639201893838802545160529234635910750419945199823565122485779398460501166343230962333368973745276669086685528359579289900796821296132408962708834895183309282443081814098468697656430960009680053957751845708018281659862487119544214878989920148458272481648988007407229754098844540488247492467631136065384301211820988369506377409461674451671830247215107121191632685561894683115449521738921148118544246069369922332652721509231649922676711472724110306898088302389967595488244799041352008685400058141571316186803552050947810208315614495116073689307937462949178148326815944232274033072228800304003755018796506080437453750389542508685334239345421922576501547899863977942419102121100683528607099737638388707142032602998721614154542638913215707122536249011616275726325267565180865926411474936638612789422997709578352400793642493755787413709283100282237511076912085527954181328075228453650999809667131091406968206698895561189676806741219810654953750232833045031445953976263893257540715930908180530922377869292911369204810352134831914476940115042962253302389546638632895813320830734686640616094748119791185582809320160256319583582782017371544041193806450294636723876745842953469726516845477295802965578923148075436442839505133527642772302836248864481080045564574304743690740707261106253829557819966007242112096988147182666148395678487892716910503901918915063654629711211458919094739732985996795078148310986466975363655608299032199559251885911639873146195454842603458800880245412549759385626459849572440617331609985468921082925325247890438186661864278301866592684351100254517241057939131627832496166181228849508418414796505273126093280482346143742170507922210446041852846658420783064036986585219498168205427705915348092466826426166456046658456318887148065216539587374527797897556369358034983998673611966637301646152722891823421067604891365251942144723032571189886626713237834493406869437477369492656466303913935069304177331952976016387902280522848908779557143442158328876789545730312043162910061523905141917343808021241508970295639417418026712462967231743383410795973984342093257013815505766306798324887982265593237593365701649056078590063166953588281149665726692743267185483531205092428826819247201116610394339114636606329368528404885503199504346391316078183067951280709708083604436912626214938912334658660234040269118411035640929739583208844048386289602160167571624942218213609303819487083265124411613659762118488903536135435526321620255181007588047224067417279485131925491496587592636037523258757126304233200336691319478887756385715945738574741167078294142689323190782170749274824714672192246011976700223434570197565012623494862092400496118691413965200801935581730299079320544997747918077925470950923310456486114879872019058765783822694326391029172364433064714388328964901554131436415944883676049010906994908316345418758199752043867137179696100460681593460560055777884338776085067741042878704120691853175340266937852604513418009300736525024938769292951344230943881900468931977942710379334992037906316750110658491763751330417353908864591727915570355087143625493929693283453913570973983835983688042744881478167665208978314567535176842113988192842212783535378729459834077023359692012862595704373687743422288354110779292222847042549659919591724832618434034613573129515037504569362454742515181016689019373793658086257553270339550043078598879733015935863867459560854498576493170266579624339395241327029557280370383976257558572232284304492605410312855198816940346099053591163380415149282578501523544759039556868539121677451307284142029693154274553151655352159449576937490692146296036641194974727066755416123926277161258437272892508424763143948273092701574305737147381890551273331127120535715629398533224772294551175119008638344586893960079900208503482529548741789262957036705145013161526005754091098773887595380269219631830380266011288395726972811167804864377045118001162858800617150775167971324846009963318367311715699660484654494622626060702252497285239435005487287497097500783700274704446893379188362020529883102617903735016845568470198454825503761995418336788639381448797734309079508870488426316515894711643758262893269260686901638964167295634489795111890324418824408228345336660339598890772592166337352910300250198822884273693455367034168398591215135013296171516619052241409328527969258732479055138708944144317077574579705020966694364044675452223107537037817345075272585270311053421793911749517816811839637285701906808642718026748474577513318841661064895052816570395870182504679959949923437291755819931282793766124346524014034711242421824933950476534448100689734207033616678940827237130735404784881077266725545312131359667984094604849782955253815212445142679112001234412227816083892417490369275626850963374304952114647746772069746263810656108410150759151203320100185615559166592555267313252695334882493420178948240376166381861885821948502895735205070310562486937071024317290839894829520935338482464332795179081772509970990118423500518566564548169091398087299350007750943604930109171069421495035282873790280497397214021075557220774057104842511653145935923160265983476666595370651831550971968132556307133039269284412024698633671050530756778018505229601453157356817490341113914698153200212764205069185095492177987627760299446377745068780200839569271805877439885950365772665100939901601094198545764949076877980474496702424517654189241149533275249329265342540868674095175040859245971132155394359787725879175945128270142358242626809251555727893011248442353993056548545842560978438574873281837875912030254266265372587079566636251624374857240175905289682465415515438471879707441226539736356959769674148462458198397714156439498225197647225457598896743304565981098850600578196985847783748155386673386934587195421747427790140722054767510182098209876183290226471980792936495057435885368554234424399422724099290833505276722673475867642198058864555289577904135004844616752804882370584007978437114930182936332743058609140261255418169916783405317669701477481657239008247264770229127611351055353739469031196592670820120485038782066425654681770757719832252303280066470088326910819877773141048897713395079421998884808834447096129280993984998270381494194291925955765977873877129735940321747476828193928217426249067994807319206543396983618080387011375285964667498860646736345802060982006088355141685469919101559713662765880955968116400996000655794023033979678381719996715487606386603240258257851645090545903062961387599934448404590773368752804265258974395034776443757146213176914504416179831714755430013065676458294243232615953219159959147628597851820107865177550979613594099870855929066869827967881008097351622699097504322476540058421948217392752642569592381109258245736710251287426239905042994181041138730532182306069304319174433379790611082975620715582602856295395244267694508569106939277397469747693773632560282665608449906615094069335465221813719111045921909036019241479565151466550812777676118051358362692116768220266746309376021532630007777291343636904190500450457529944214477870772440111600764104318223923052068264452448342377261050573231758876295985321375965671954590784782570160592927988151935580441579308399826183892255469535364586847927185141681580691538590078231883678174721007267326037461188234199049693368663505381121898283660108433288982856834847616042824677927635817313006281255074160274417980552192678675442425082681467520560427908418550459009416895571145782179143709556183165532254265779378229059607337291267891577486706200983577530416898738944097109610605530510585710964491098093343772196596976366467711210140857482637041482326137484011369605713710344873368499555242591714866936748452517474785542841149241058678729097011523915851360274823832408682810742733791633634036319279209794596726449019582587804164048554756313280456956285153606446720119744668474804779743737947500837205789123522213371616176172552396768442206909121896376702964177018508018556343825032645847678755136083817407068179900942903575476667791234051434528059309499431087429704495373809545022713519434420586459628532210224807166395364857503253267194000420686093482170554629463100521182408815135029672508579941557772003684735975068755254379140283032660239792449655073499572893749548157896320733870603129862885451866492316988932573268700199448296196445653394005407396764180533193608072151040472608163378391825206587661989256521111793341481515501245142675841567846630276777681796425527836618806292705825228016724134758568056102357662420682140330852498434585590000541564934636599134610728799322435358459538714008531046895573383082702980766636106073461734135053874491978666048074672849302221119814455701363677620766058466756031234716545589667426478203236825609152261500874335489098804712608135555630454468697930675277155416561942451863479851284064096459287279430602107946561657776379039984030511166270461815455461994346729356111440671563505877277824768521260699018680049618624280760145537531124611519276986826869702548501166152341123784871135139732592621125746090656353835010314743010658611273487396832335532129448911808350969662169515906538279334117668730042309399183411776296779167640624175352775611422992983772901969371989907851133085626257330276008625104358203365026153673732297399959649110688958179989369766733685881678676627108256186208289021039201914486602614554998238626927248453401156653282763661172292379555086703597623551479388460292276908477495842887619538820249615545608773208093744927301389227518106047937094102909795752333184677214086703023271725950793046929873521961888287910645967416334612107108156052506446450784767920869416673207933426831724159768727303390074394127445392317119270876467228662639269655449795051230583009912357705205551944762293878654342900367851161692275244085036572607337581521078924955546207014108483943583452461252971129337073333355765155038303729958705986868531618825715150131068879525724679457218397241109991916165028718222292252513226150358860962321794054750157483513710429388047029111522560167295869030234966005520025799435769236744985938875734500058254699863441860586420725964549601821066100374769122365049856160062042817485252944525198118404624722722322005557729615136377629258439184177586582789775070021602474689587187040293082317740620368795559008288822732788815850239430290866350768446959503553123206113063359994364925426777888913442690324641778098198498786183569886458407432356144772033709441272369847300608088204627207635891828071265679520364240177689782806515495226951763431068138335222702233268507054249737740833518611019149889828240085052997910664453676276692705935763032728117148298103666637418898612081506760334328344381006840893533809286259625389808641979709908203244077093140264999852620187609237253782911806829850991623704415352985618246387057423299640572160736954561720687926794458645498572531403955113778972786625083128771800013989308790291648539985709176435075670046816594064605230206883128044980707113343141366694684431679737577507567707693731247667784766216682694556946474473265082494627734619543574170277304181695252823312864317445375662935089835579901488591454160752226753809473983208322682254688924752078751422042543469165781543977440538177012325852218841614195354654631452008016930965746492270478362478260021607262469075523722471513069475007544151680873280895933567073007241399313550367937584642435159765264009938943326660075908187789328871845013182996620042953410372684221386433785166272978673323298687763016940836296463253350296588583872628856301427135323238768600216494681877037234252739865479000088786570088466749675789902556445511140499531481139308353523015257590766339797068786619626388155376981772823794048800503459067565284678285559482380915140013030893732060512847342748050001876115475339883115884441118674425334676611957121271499162360120715027313171059109521347903042472956265346851594956585673707647087040468186685548275097800959813448430675524712228196342515446566759457378078176161252038844713262133326941259043323561920282046951458604800874337449637014815810232031956929740097093602367921810336849407495607987899761626420898518961664311181885376157292159401837398196757793551514767226519549485186317725080352433772470760362076381511557977490549396617795134319480034908079922967701361866488081069462891835326743708834147873286107968449814774819824897055890808786908207496647869265423914722805004315467623108282741816904412161134238192747816031954918706663122576052577143167684077182886843470426878486957297068595288925707150247053771713349152326320023552528491794927992912400572975651907123428157912320081119789076056187706622288101687846048962030936661463348916264671763843429871313040942246328025759435419270177971248981420308091198195920981912016545492797554778610133400933625420208108076411069970290575291025388095980973782677170117644423006077820079559797876002409405897248245104222339052141755130492543959303123816645416152030379158082359482785439523003108136059426710261177989879393994728021280350813577684127985852467295064376897423591894137769881133172527200726025729607147299434078639481601056293726593356886131397733836173247419004524052586099065330600825015417931290803424350697882571119706390107046012479539420983262481402251478229663588135543072710685241519221527461644621962840083730860471725935164396637831666005837232828295757673627174993737327334473776712013439033606900979278323057271177814376425367084345495034742320994943970778887544912418123089520041798147248212160515968523714390762404851730530403291159615469426730626953472891280213402965510977247552447492385653332149514273016413066209207710066938289333168756291078742947405478482106797549370045288326155349797869512450416049636467342546430424696432085308399074671099746858974285893609642085310106224672886998197923462656783981244465361919970197573170517414291444103523554630695142884379012213159563852460040538381723090808659229993386316613930502013056123686412428835080879593083143768920660631997736251556936515287261795768559658819854196020270154701512865208941126140830604557672898446875872366153522028689554158793235145055192414046837930305159653965029086988121085242132390134510151903910483911380139910715919230249937909820553268223964930089373423133012487927929658276137186309458204800145791487522991217569857297518269790630711550324168484083415635343300351041804273622424876826624422492501678598315494620382872267887685386264439352209578278205950597836463253909426794095683914887172306851627244021966338628586890387812501039575454747891867526942980496484393042818298398889352185821428515702738815023341770481850633871864831063676091124480936150550053473429261842525237964582782107892193137227236762997401508366779529221272690737100251050885089396131028291555874216606633825265435152993735669306381914494556679070976507065719932549716472873440888727968270555180694196708864280879262870367238150811896288816117550876335878238238411906029931667634635795046085275571421837429021774215680145647012285155164102756002096281653625326852341033728334931838864276979252210041393033108066253781747542316949278944141163113704925442215087013542150552724248541827182391730617804247185341377475153776603812828198041977231210560201558113039501886409936244521905473430587995612779138455560703955290568249817762232014362294663048051603344962763690826642544583178920874292411157480400478640254615108781120911717085818940750568026630887312540281330040523772014652013125132745048300347934676408780649750721378973761513189141089994474343980556818543914704580689708249568213166276059540807168804740031209437534611836124494971376886020147131526276126440957678679190640747501926773055430916913022489570552169364589115914930660238300628099377847894564633863506447438978138787553188680418498763954465764679309277412780553595364104179076477401399256096100761363194277835787238036880798854160376124197814689289283301203372025657771088243160360723895933317757422970557678502878280536926423042783903712296221508115080548935635382007534447387226345809485719874408566092254166936923267610296911788464285461019253339660029911301819584023986605713558761424848592243970681961538981390206834395540645254209380075147698008849826591078514811605224523196474898753586969663301506132354244050010295571452513799955651309050785528338579741465371155588496279968826169277308783172722164681326582038041707226934208314109650797052095107046579491853458731600362144112124134932171410517087737592872485583311196257146660828621390326790505234490783208855239571172140832536171907486302835516718781370326925794046054430251667337558122222639115692616159812069646310399875110392178380734174070355655915778942530192383911492295006237492486175731364367653572892988014196794336236508644388740531601531033106806886224420409322160375850010542621880763065393201900049947243793985193736226641849242523361638493264859671352978775194181584671704462026916934491632279297332628612669331151212528371431092242258329578908795005594544405820303655571797422086481787589522368891819049340092160543394063748458234119017253423757882220314370678258562661578060040226774580461623207876333142717138491634776593315381145013096354916310747046654183078974847103763635929960882957257613066341721701519207301355894963196829803196808845503202555350879911200217815096149298299480394833891688159911073256457493237575493207576947849625681109928277468106139289590921231946819355958728648270932156143043389995677602045720689188009782904961054815234513192748069801943190770899333260597857872205521805157995518108123767234104374150154631519114757478413421353979747769371273472370562506005917184526588360008027056656765064803079434688706138038560727959581624524183533914394617578041811088998463932566774419318817790097758969191322613061873677895480267790773064015591659462741601016571589685210520048275920924315676544653978305722027591997306657364646392033684580743970476400855892705133944573349579002022158584930308330133476073466815048455725690836132433782938029577745103040977836266599422345562995267179039416647463436263898331035075228067229976138824585867917895260989746077444465895312297193775873837148583026109298496377485415971523798952713590018007188039675501515060748463542874312105526504687908337124028183462009262876306066013650173370318007285173493103107506453784237757229949137962430845597279208628393145845250433990582683654637948431748607015876094873160697189707316137842220120098260709794553097467038471940938072814490477346523984410041386823301538507936412024388912541658542026200121600834859087878516712418110359909348719114947554864257425982252989627569729585210945975876601098016257716961012170314679579825087011146535710884954316803062377381908668388491110818828322312992652009786673418888800791882521044036153196672527154102932447284373349059577326304013485966235899932226529845352897189728558162901578532886068433664675041742220119384955430778354720978288233983684911014094747948961624532005896278655408493991583031576537535765524744365163475265009515511936884785682151666259417233686737481078457310687556601994023725129399146036218086869055616458909244218464666950404415509598666694510849855794096737085173906487724185546225262073782761644902463684283843093045671572493600392565118851865072324941509083905461949516704851579865645689109463828307934198752409717524004873273451787377234823710755138430602287631426341520557568051918098211787261224194237125832852709386057007096486184731080646100946572215760724838854450961853345158220735799529581930595478578211669670304847530309334779393175311501058693595151177955511414387203471164598762414883080006523375830063482468051347914785071674748555829626599752454649561211198391496303138865078557349426853490119994724764196815332342824495445266956720481024216453544760653062530028656473346544771141152200873042600706089152120339835215154656972053298451628677079358397343651470725615771758565906676279310782055432472455811625394017770206728551126938619252971012053145001611950122423803645183800469329761393667523317748316319110808324423436140141965480981559121269761385759079198296975826643561750305805063403405538064269975694400399434217108653213035688233357803757649866535422705108209745813434725745707295841724903404919179084449527727813918290973567359865604476882506117848417865286418287727599382837675583979101836194129974608410568043353047016047703858460922683000620210324357499057384802187969444784198921067435767075772206342933758876458196959519191171265266218017976359572753367868740530493949662115970307283624595838387340675280936385538453772997687074333699350884426275734730710633062299753071201026691539679162524252514420748043586679986313844430948308193378160106458402419246919909285087913283709153290621828518601254538637619740957028371076925409980859642997986508096023010674483804967122439149751478948889760981695954774421720301061967497410470195970153247860470446249515814180671567288409846829482509676702528740756072027923914332532380102176966268191235071643526514390029003854234349854893394058977378480050092759978592192051578029268619659732928571269308258617869378009562071438642110937181784557484826164852448778548123427979815105936980161802760693280241966759909983586757886149552065835398163204097869609977279255727967792802540909603864497444270791934460931335860135124119090603391705592402362251322703401403873084830917210502794820544464437421396663349001757290590167159931085381119230262773161870930203847171875361429969137377000655095492064691928307996286903114927496273029035956292678285834848492419523812051499467479865102064768203874931701656830979363613573702979716729358617022499423910861617229242427621214472276603948706592958457038552196787560546918781089112402541205834349995163551652281743302699082543543176509980347090381942186512246591350283669788885852630605466505815593793438980382381874510904681664495305649222843495934850476915232345327348245180983011239137333498376723700470109510580557948284403591058146294225639213811344085873474291234969507262122824104620057815355050445487060981669075151345012442286654842764865366089605900278332455602982209819941531832755728605148755255192118786262984176042442838637680643911674240653454134791281055527899999976562756300521904475818779090551505531546172745156723262268360832320739163951707438936379397647348602714742105973294748957438442309234208786101114812953798588042246225607736689531475491186422351833375226965298785939432300710476537202148708689834560488563475455396328875639152887743838461430987029672211522391675300277214105902571261830651556561489842160678929377431107665131527776483688031145538466947596018543359754005180325224869919987918376010447536627300401696905992400381261355124766878182718919262506119690677418681272840524378122034055233809608840537755000769374518412624870516677503604734501097196620993825068105675149651283632419351707899168625249407872759580787126879724015811385741510925648454251346861818414352136470595983040359358976209381531548259647162416047609440960961516936395524892052142024679353130710302454661628479584181235984118384815796213577922566168154305880107339902839298725798875776742793496006316582637363107044669760243456814113954312369371056932922828225700315883808253988853713496320178324226073668208873373392915440338455611409657852559423772977312447415859821947189573722436726814243982088741208173211697035044677654931141400280379028254815350172942942624438628308126510877370618143689309265903342065709785083660800483413248732116084368782992583777854304376922664563531079467269854352689138580345364417512534846137768656434660733589902054562692750532374051950623552067800415028691730846990999159775821829479738129360763007080572204046509031373518940059715528762137828635665251786337746296809984979725779464535264098857888731062729663724952939695051334857756247857188379280543157822283170359827616404043445569244942370085686055232704849667641651640600462745990314471494817192380221546906938966119776307402926767849671753905194114604739526823167218840380971297441943640561656792074572726462150984373600917590382244164098710396334778847908656304043114977910239112093734484542198631066487066315636705286194149491152497349710662769052330842353051075194780838126701956976675008744937391662372515305945978272567923965045608050865216956858556838505561082236441360731178477690806339173034799077084012002793440989969564266496803481388879873950536648419916941636432240119743390990263711980406982226457721321497745269791783513805290630595664955736157093075230794071335297316097134653609380618004727665214724944699449372850689022618425034388905407650247141382423770456623774866984566995502947339760112055660588243334395347547094067789101408127321377754657287731266168816875639454711317092076137866273815079465004890688680583314725110353789153594409033468092384886365969241555430849583522305558611201141850917730838781851860378323613768662813754644375739391223558119046800864195322626708777400313514490264807811315927081862389874623284804386003010330315296402745877333626930125686623309287154062818273634521523237769026546551180947357397842562452127513665071286467924258908082898792413736577673876607641974370321146544818787358244879955377134426292421854230044589542804095640659331503619956182241600977006191897475218614482818370778005573401576085827622191785778633229204111882799466607867778640898942134081762856270239721073655129627236043539932656299399910483167289266577941238348751266568296714474423809005502813527554451487897557740281594345191209871049051482151267717440053076689673786046095105230459484200166772635875780622952328881292730131950276626063149211917264299456470989232181853774439519352626867852911757642299450518374572372740240588520370030672408915974649476858519235129573383224071502690313533901456781040262507701018033477020523858300830669530708450099976067054438231470232816799101041058279276372618952509478299996941467182014870831073848734031041063443631688382340888521214280058553939000577254250786951045098800635748773311660916400081079779213241040405632015244702742419955602794018124926046188598953311352421342374392413235977199150302931164447551741118412712770217672323166037162353359786802820218433225529612101315399587491887767172986938046031571729842129721371294009110678694071675921403568734590283944926497093312100449801483366911291992400956900196395084816463226329694003841880621374929133818252454025877462413643865797323936698290451852809770001471971005076884136678278250337824120561296093117069814361860857203625098419279411840291114076405274535904779352320144741960946552939318719839274711274351540040707438854582314221809597859551150476729234033396102826052451983018830954622924470980137976435054679514654312307680939894942871693981448032191009054135610987788794141076331625037767338547519024913721114474702008205116921875392307557963256520046254061035883117779645733414869389500859050814309423507035538381317604228870017215308488311219091706840903734530072050113939427343927377424573536759040460978015169526625749428817449498551711009932976047827208266736790122694311763164230792848236423044440028488464502988568464838069547053958161419461279474886119629234315131388825336778566153077300331611294665607863230864895595209020070787745131267027504045844534461596937077606500856637556266956501711197616071161088910914502084603697367427997852939434735534526504675424541185307740208378674041285455427097185509388812173456726624082643229651332327204304270265330177401605170713036852303237959221996691567139928942580508480236244495660673060695271401058993085131009943823524527315338584518797835071739024527791607867634112986229572144879713199516523294974411252743258700048378940634983164794733917255961930548220044637469197304417105121406672498741716536215738718088254249385950664137854397485129418141079676702725421757909871767176205242582729021930334576370603006438270812050545014047108003480618194599928458294652017640312149748732551538867547195646834846640974193969602964029126675157563025057881925769130749117735451524397567952814907877292091118239145021870410920507171909929690525811593473442860046954576297870511047423325566690341359513800771040333566905855758719161272158208032246611806199170823620574646788041919327645024157349945647894482962808625607567842274343922399881827101476728964982269226459250088496043777029570984181537339545900721519432890759473955703333045022590130951117281091533704421633852153420139332383650776444452192987186653922176286207838976812633790217745940842918631922181403643636887452386986810367789711950485161441154676677544195850938500260207768415505124284374824517280513641314399458977383522870864700161029191981543746899500264061112220474799478595955557681847506529016908671026180254211153791429705213068396689940361828394862285178434416463818747305865722559752932125390715185390445186476050874302540576283284937547366671263906387703068065407725545276573195133244141618700135513722027278693914886411947746513795606219207605487195228241007995438222684973414803734814401981588135145092519267395357787966314238657070386457277841982498303600710611870356741303060240383267041423758742429113381589898679364712148648771498602134627709894923146921699315988315972933558001486328702140942348892823595415523561981253555638313003509549725378232737516934618118128271349122550225905185408510969045563572557709214667402365832235963880111020900184053004552955202721837597758550777032012811524708652324915038753399076737152316751219875323386235685664114193145966141746996647270888164263419499339909932584165458005253197821923106624910850158157415384387062995081961984306307229590211057815795337438408731317715953650511710811918588218132672111986210327384950841323861415911136742193893531342206777149283871794705363082489971692096293409758904727098199754071706483018034403919661754357178291405324937039743867967653879518531161925665623669332278958548499484474887344992376932229407421587814013079006127493312348771499333927716600191338446299089488574844125451888412334239563093543373018508080792295017916963627812567485265788601739259407207557832831129319521233961064757970306963147292229020334656584342392094222118056370714970031808707977175726293917298718658097853866260400298407629749175081426138386779262659746727677339506320165275821597467489472732703944629794673772553058524616679575507042567007582976430213102246611369712351733171121586422227200031836171001164460865654028697625672494197966568789948504174767816439500265599476633726039215193922782498944860297306167514327633226929282298226432092838067761315557819338544821669765445821244031923889901335270660266737183781914215554896591625048312146607596093244699280097799632381031728430823041696756357814703817532828943411609188264037310146914464483413008736598424104315028685059073034861715285529861699705112477252172810214011676628579731222686489118747166202858408471822318046651715902618030711429741414426936862593676042424206884594108164057214599101805557179335573624432340317228544150977415986288822645950506194142569581815778775667145353656438413840207679749684880367082536402520867068559886774206423945679024533562411565984206757062556774180005019351557194940247055575260102126660603691542211991970838820180206214974487068633032376416277133098537072016624734553418600091832988281693520863238180613380285003990584100283160208482322671402981262562758770106977416515631071961918147573445524469614693146085528038979427944582715534133718028298800654283713300814198075627067737069370165970873060326108700875701405947769393722922565204064339763964733985239904518882194107661137118507863715374696961436269597303993346135578208411076261599139158427748534791867617127569687305951332528191937337019241838396559465727078112451811370684655755241820606019989440113110178014296102944710893693039412064113438463229820451629806008774345189740430819083065727812372146448760422281409005478464321468899653912560973857228602110548932884624801128892494029750445634635481017314400776081840613863829537953926079179542450939636191790907899975420636540839494317235890505345643533677165530784583090402737830584333180064011566448561214821595490510982133289204700764421978950699274223813073918307930739788318056503392646448827158781823662539283963415627940156907317412201746816548382224834884436797706350387602987187761380496163526072313206913289847127909854504293996421635625597126780496646637970257537886012784293812014212269008523479091290422964225700163498174361932378244827083891935179281258327578166994119326445202173712634998099278259635956527306511175540349043863336516413680368125454555788515859349673448597238459830943017113692032604712877272233628645528112911546905945219857989709105492997545601079588714885085208064642818137951166269354192436764461719966150557939160705912300587415232943394671195625141870387030192610866804178362035803827423859681523644618150139197406368874911105891459121824095410152111040084491851577029067016514441090353013743894306926217444926975078266663611009452150028582824137775706941597993681761798492700072353186968895865583749231691046862545796146861195819265766794804859686272623931981220449604152244937667979605498420957233616476887959679330243517644121413980391413344954673200988278761120700316095400624033073230045736353359930576448791317753063149850482122266715643877067468295647251995774223303955206279844707948416644299800413291187067633431797841196089859455201689177049201870095239370923637161239754368490206423620012451031745552324875679662509643536973776898265323660550051470445994707481107204502214455792470040708822905596963557734729879747719008069773200274245887164113096138217031449752984336548249845500185951418699789427202194329760771257107362177254481334430316015185177839564148228854131860182206447796459321826685463920114197033378675615254467460592532260231643354855614858636333066001041324134340077410549965981860688384751616775335815448448266425944382376271393307112115688134992644584228404828205034572368848451292395373262548834612260920553845780500514106895116728494871084492210428984098007182190933757652635610881544928036809476132704379097898793212111378412769385143819206769470743936911292999697889398020794590345356357268746447236707227394828927350621155093937479809203393642241769855890275878314093491690633818904624486844636921168174631102192997296132683290196955394077264985604086266642565426604718763398242960875241279041937785723680281612364087045688618668728544035959461343193127183756098194783993007568661170986388110205063759069123936973499528482204648948454109098815480030055086185346187972353293994380277689253363837625500687514650435358491122921660299904710867522889392183854457553125515888433600043209106944131316720059288633067239858822466852368964250734832585497128906696165849689927606130746445916414467551536035506908514234555574009939228757934023840139168248154540803973954582304710464012943297079352747248365242928596007989571219169794533936351683108067023210206309108729864995585790098145415393634072189521273998121798927951242465829126142145856760955807062067443757171857169252157746292587453031413438746747756110452663228663199618519934462832561861316511354769146375619905881595942182047631254261288140643208867152665696446233801653150127684597949948136190662331234006413324904531437684656966062023836041047341939343404877543639883917837079728585684203865233075301301739405207475622672708500084756660314165245372851988720913644813432255094318833117762798415521979938903429059256280611256995146186630493939240575708348189276001127335110788305815923517464743565621851565479041668379434173094439852879843134117381145231708717458418003539617493225482847763942113653545732301889422284703436519266289346627384054055336935422402498694978814197390143769021209903800280892906607170767648552449524355874658137618217468117511516174541265702864672768256165512879040326296880820710265296215609964345299206844098396113468187461458088052001237711278462522826599825680695280223614783661782098730436540956210082792358923370868585002774914824579966170577143628084204297723571360739477260987582320473506775507843205230134126043415491696369020491639016341439008801440864182243615405146199476392063128180135516339386288121101053637946148693603985173848838893327302677073210112723594502881835217841441672862364505549699717831429675407546100641163143151601833752556347570521615259028050236022353184630649374133507183070187059112938419713950816702878104626275891991867823100776227978660756847544068733630722312882069066680779462116615880660315148191669954517166363685315754489516209174834685240299699964426916300045224250931469237173480761270819879808499965589778629984566281407287288045213624062156622884529031049378529703729470162070206303928099251205492645737557834544282559014485197706607211281608447452848092184775815443565903418885414588425115331777560456337171266019533880091834689898608706192350916397324697671397822013955387682801483527023743598396324382124922627472231667392167264987610151195479485613446443434456161165383448147654243522661236035653862601644115198799817239013822481184579021999931915496975322851756400829867030916590325156838606468954869019470662483513733160881925493528302074583914672541909518163371586237775653186975128243921395655437733413021959031560435004556212733334188326008256342538019998896559629218836928014108858668325390851408369225815032073449566465378914772440581995980863441453336391385014722082127239467702403358763558028437578406615673005625722162239673082437183341092275099345980038467371108655787032831590568109861086793457491968740970424288305535759125163444584125374621607026741188839002709760914096372821092373507700884888738861608432288401362577061123616783835615655882995012456846761848599221331947332491417104001248167770335003898849923743020784122428692334778133764917767430048628508004656713767518086154870994498218748794751878510591121033393990009156783176040501427992431967120813180574795547715350996307034526559463465965149153623059913202044647894909469585817484767755017188191635068267713793190388764849968651831417306263602975298547360581251558287155338078254874300406609986128679384118248886730716478742658576521055701135036457744942631413190269811293573931324929092546663435721773344958459620123685812328383976589970601042403068326982921225172668015336722517563638602179767408701595108124734935490532792725781518389429453785636932701151665669541328236219779118076387864838832016360855595800056075294759602784737490723773376981829837741715804868849362327979512892437415357020658902465479891070542019341656746741928452461978900141162730733094330708357497970049978203581329286266386345682848273657279039485620503662422890132920437436739048327756125108111678431882128817089551234589729931627267159184062584844388116045989193286559397999406545448539441666296119080997049725817920091942673035655322308573847698281876001845053134304603513795142753829054531440816624802817129302838474500729834133898051495533617801311367551558857754013566446933059886838390121026829028463285168858625924042654818272488654185059114589029816156185471197965837220724549794733564545709425312400275030794816759034823302644969894408789423292898832210703320697214786983399461090964597602143416103710406531767625687495170889317432914806633186409883989497533826089258009924952361565721191055998334664083589733067379210895742077601500495819281011303472680326599109651786491594941950698928916734111987814660245499487395291930494719231202344048389617642905882670060038862765784928204002098187716766265784205337771155276950195734326730142538780676429636867796805415545543201594790799721304694529703612304239228085284741939460924349338223716957042762464405319223601367664929143747327149030371600140830136363327987185955967591168957466103356822291989551144353627242524996327957296839133148327469187851280794157931578714537453730400217212220363654029814483421687535450113700332812118308754267318362750913085565680861099131432579236808904369393172783653586701030269108532015666920811572222024945904349864781513535648757968988195973904997412172143292400512232707156358306876206540057530135536712900695981494371204853634893530752390919817411865558570935621268172240893409362307034845692791004648612055659323807703930221729380156455174660069619434417910394962829583047720145106247871858385855652839047974847422092859093787819420039090410122412896000237451905173983365901113315560058384391202342007452169031059812014503664565178697516675297103831463485400116656606601541319424611560751550924072021879974943380319422234829991751464279744155997989113466430452609577074901948568132613022303194114861782927884979486538837744630010535869460512490366601880974866818211539538593137613810220418140369311327270461659284446203937653512916715410969941524941873781307356628527082187169097763905530156790580223600126003492647217913543250171446266906365516637606853199430310610658759173629558247493101217798848054558424712410274211982763498233044697233949261805227067942881673810052952422993643717121580822382819980983627998105099338016411748984904799268374415168417213254731830397658306139340218933151469545950738251389428011257360830844448334893182559212466960802469068071061006128360270850181686844099684102926288367356758959211879719609434911824626888293718670359897541591462916060026047902895114605871067540806465556430781851348919163180909828922996012929999455053140960743785394939233401283463471304311944705552279437684353734845846910403253752328262726693612392775260336531314174217606401534953222080897118632234204853567587167913699968109870869803724162043985499167166745444890804753851268025177435669967414813652564068577811317920624729289779590533613288445605020242693641476088300383751536926354410072985944950527557023924704841435632302600872916237876753866139509592613540680562111424219600259096388944652824356240918091386076567903516984467117541333285914027467210387952210214930738416877671945687525364332980748735565542867104382270004715588755236657170900571078892760047241857831401833727743439155083610972565104452800042406300260389970597078433545214232411443981102588798278728792287658761228859130507589146466534806971099563394301966779679716511309218151117109505349105166105642274002052489232611065995516914071959367279676182272037803580238812737261405604879343856466342550096554150904834604870157625422111394391555787724476041493320455982141271999103528075115325817430126268551395834127489060810434173353829765569116164926177130084952438231465331494293790323533185445327408597556295348696185761082322062845256997860352966540712328645703861673959444103060514849509609580472451670142529986144615453110229005791373205249700717762842249522594514164380784540087677280984966562009889016578985533497593705788170113270066541820579094573055737467160989179333281065847943024737588526467774728383494426226764553738443260898387627009894617819126595600246154146912194548593906556480544260592522390058608360956632670007627862769116782430406572251480287644848129642779090685093080909959841934955806589759818774914617505488851681536060285045793611641933100179502657332108850966224899536651315178548178381098317304561421610694002341544187804783672098402302947571316281451930349162577110205781710535761960886236488276046753125811818293342541669383935421018270177054250579762076967385729354430795139104186404382174381170733415937893691015142717780037825790516695511845064785555203645453386392215204841100192714167061910773882495956773125014033152166500181939550720865970612748812011634813337243127292377277293715423866163057182807942713642816693039003636950142234847344243197605384155791573133757581279850328645946572259686241078325266608268047569934662426259411087585287771581804085319164326629677294424975024669536642480477784989580412118039477768786515261018049337407061032744657641030838770691511559638124249730610073272552254939187733041083902581866574615665360052283854032274005536716821444561443607717273933358414502547541281757240438652075060184730195598829779738552493670402926156801382864754956514325737914720416830720423885776377670322450358311811537089031795969458517031913573649989413961329116160905785520135336488500086697354548498083428978058282586745023600925143748513583615341996147602870116940408837108088804058469803662012759751463223434387561065311871950102832115823011843089823082868026375488473379181585096350126166925409086200943164989095911446642687261406372499101180644150031420133454976389860882320696218283535323414825621726505332518394453540686582465598665132849490917170812050096669339460382613677302059499147126807996508015170323119821443479078389359700525116286944230821685680994620477024544799723344763777886037647468549405149342129227903270149799159184797689447052529716206005163584254256619982281362291963286530601462165516170989303940053021790557286848060942557327846955088140765258851226548147744773228692766392813831031861352647456375202974423847451033471463734264461780692932605027639761996876947953999277550806217490235768566789476652156463723259989178778470643053817012181058522228930457724321565718364990752446111469435904719955377712114349394015206932521321448523797189647194536947856003256348940794809993036879356854786900324910321118374872001069016755154197013716811368792439826458533910641123876336857029157355785643765264078454260364422709189599879551864970921585295495232990493963751368797772795543110477007783278147638584669214755590920384294105845619336241636309368267417305300905575506554728442891906680834809000193363881401320116528105349436357957447017900418761414709912525078305407317644021281279621082523599610138417241829699277196892602149378474254496970574576926159901276279715242087555212166595726418936144828654251727861193720407400058975637050368965152506385436136154140737187065873001166321022003936569189047548341550842193060106031536373571354489477432878071460933997933172304341865658790874512086127981859731149596636742200338486468085928892071654089582636089228382621734420185655298944921524951835724610170610924315092994775524939029299592077929075951875301420272980955637661521903975179021067493663021401882649479572862108201041007955949732557187159264204919045706681772745782193623839292424275942546121706576919342798787215227931505766433023279830583793763115480759892846201999700294367414545395427922938027282102616180105691779906829231238131633268085422327777465546289625069373353428990328823874400112962170205932963198084222513434145560340888719417014467442976270067449856257348422256364868156185457380402876372272197494524810676322453328098383363377543271716736401291830539942999520063171643300702238138997724001601051434213185600098431180044961021699525292814880121998354984159426466144214648347762773765309394789607824158734518763926212479848902709285119344453410759285802344796810272284696474394606320176711721711063991923479854697688196605323984946598703427072828401413579410521438546551071402242202254836544035043987682279045263091431441536468760805104053050616159494246615976373551033514677913426005967351220712866057074921426126051316304111496581890398725742552574114832616190241798235995650436347235746494492065094630763863791315389610936639853406449214709030974847165610806639245249978023140402922841243013612639516228166007127136500566742800470092399624576167145649489462919831884553940263619807678916713963615687857030927958764794405722690378615631074369146659929175697856958941254212699357338701459456568175212243750318349278673708155068856323851170967660074913660707414740082124300572345611149130575872739668909183414271904615119949645957349393762623351399478028988990749166010305422668507056276247912087517004304166492222902792093286416903631263277977041085725104367193327187814370600599608635306109594758421816152228848499998477088884460223795712399184641082368763129316783787894078991743469572149022544104597454511150864815514821433970657339020872632833351492415279986860401191414643188013305094253022504258055162060624611190585804309417513028752548848625487528566825203864556844197002433065543169352272782327996702434227347729917635922337463069624042974272856727420172386071528798244931377094575156832232226477738352967542256733615654505913319896125964985623920137216057119935071083022565181532945103858788295065304912806611382688689902982117729161634466815350939951167588891795238502234767861137094800436879483482071798584287705266649075959203818236536779479028680030047175995234618837408924475810626226736625019672184823468366166449178061347058551165221393404755691811677063812646003569228175420987605727484650226098278493588608934102578288539830065971701776518795908133622372351030666530260164147451069595103439658025575857448748715100995789120963996903887027788600131153688189292193455461156413999895806827698499357185672416458973282541176618990327293738145848978510194941891449028562185450548011848660529513650357510767910320814118653778163568309823612640884683322128775788996194014999059176185513149150005162658780113984225898526028704247026769110541749046504200564774476700215317106424824108066218769515490361168881049390170764453564200011919007765015490462185429244922361966704252919874193415895092078192287994961347818408596925395992842924401060764176154173790846993946481457417958716586167251269564348516290630770898400318617552755900548449176024484782079482373977500588348619046343102245803638764839579138667766378272429018044795757549192024119314284753490383116184859494370156973414094131958014277304051598292573390949493344119252001968950512157721000881075005716082892258106396580511541612968643560475046110367128769008300776229358957225209410871526961415285587655230039317262019666248967105978649031670937181801489575382383908298062432212064706892853721239460536367271541870227882414226389204184067472786976251410722986901305778252543880071517299337443175296633637957042330373205330345194466564272993199448774600249958002482728867291973161933593991241760633339874567413856079668762579748751289907755995796349643966630123684896509110632747089927659983163548461798459616001981781523420693000266203549525173440491991539579962032552942605504665780089891498877809643614742713278844304624381159758467221775767810208549479877198078608847879139493206800865390223173087617759016924597964457627714931317268907104175387361752032713043369031141978516526147869719508628703225539189811622676696539188233868918684299307681368770012943210129427454611262975363269302085677358847193769012410733764118061946947857912545425995436044108502086032460734804849553407600727246246181873175068732189950957242121593424051517096635759427544690091804091911247169718645055821351660092354055089200409385405575945455479165012503222672240895421553077792387385631659374829230435085899530484501995871408340704067083449846493876029623899327452167166268817306404606750069582230995502031230191150008710239632616004979925599454608828721710749698674356226056487484578841683758620120573340841519487063408904770597574901195636865848728702330265887296918232640263253512745277231484656911623231521384832023218086603080422474675887745056880906239818778340207717990457848927252538752361340687150167795105273533145618801653515297664256195989398185209782829791853453470156686402016027816929784230237528989254453621716567256569799750135908607154715495450642213836862714484143623044341375221972137093353770509323177017374242926576076332546650239639369747816399123044224228469295010912867679546145616028918348399952869573405388276875346732005871444019928688200113280918940734038728146212981037786636268604176210278374331506570087745875640840877936663016574508743931312923704950524134200829179268251576318960015403698460561081332119167818615955922517578345439357096128225748074353606970390346598802090616917079377068794135740759167700048420598622498094993442753619792539715269814390009449747905946298500689100854605213801266375645303864648586234153416123061128693238310111871340324055610237165276841463324086675400994339936239908016444038293251306841432666213560682567457952750953312003760720210050813868708567977471859170784162254830987854393001678090069376129505020905821368478564843380589919735554268952875754647593529758308433007253042356702439500416048979427728719804643933365923121548165225379716704610913707756635547066942825384400301708331099667429735428446181889307400177003400946011605447809393660443119856259437416958906344750695508719949317613493459399233320738910378939703644109271894444436534393564842088063304646163794674207279684108781856190915829211941434810972834724872356572581319954785838699738207448068887326536553434379662754730385461266397590922593248867756474171201780189193206920075315800463000492708886211429424175971282171292033335276825398099599033572480259885086829108770139195240737141383249502908201287203980107057067605420694853542862204689823001856384243464391174564915307304106310802655623999114324197572845133818465005589308245742762292821234099532705864271269889047618325378195919391163309596469446799735305999327820451080175120879669043684447202719324172290224242346411652153496080819722700846782334482676698492546590469472578039296233317880529174958628303060575161570196737089639070318591664737427912318446262689371979835813339480361239636964444529332737455722217468351561772604456707093758138808939112230607694916777357313611954707298317120824442040040145721485182473965083138122304979132941294341010039560426290638784095562986901609543750478486764276175265899740977099555448759198404723614212551424043843362418086241660841805613613549716127529926838676253696725672212443770682660406978991097554416048219288283039827828967012865115238003905486629574913503638099117831571574955466840440605392107776244763683552820031003210743215906755897101718744886392873380800003597781728257120327334460538413019054602677236241515215502067243698057114558887461967875835419615324784179358701553425614364095973721412540362003825410048610975974489089993944485856829767583825870241992395588131194195480094376947518213388887410014283388989463474093686304460466070842369832672520289989598911924872828649767509681476968497035574986796201045201276348026475964149305345776757216681837531227227611759664207954619157036162644374901679103818467540910382796686051010661953723677688536986936901781413859497067962748839919698445463253313653346336277307810677671849804336889915569479718495576458154522475895564607278969283011953166074583886423555929051294984395993884837723356565000579354962019916080656657859771472419864468222572563068994584072110700467475043934145433938640977078147712020696065422033817660554498569072229999479174886712394646438900160844862689208463103863947046783317044187310185340117246131254392382352794647893212668273865108697614331841880554417318075056290796942075941966786828678419494505063789925241096250486292030821229881464325107160469971582350530234420712585164502624084338713147258373769438423686312535835147426122939331161772677957416492848788813541329908347751405681013992869276722302924137870323121031505866144375651797177463033778253693418331307559576531705364810558712777007379195374935960533111722942903377247267496703694378893549280718530118736074336357322689983333556407147141841378308198879167482837525078694505550176392798783965600224321064247703701820162245632175512324331569666469263621049864686731552371785288425089033065375507134403146471914706148625909194951151787088553939861529764430704960347542269579638777383593833837835492450101308635697548865630333025616816589577969728919188541994827434940925719446100120664378124599975384303571987760063860984631914075591519318411090955104117963890699692013279465804686670921857644631043921110140141024166746402328538434240700990682875967387283390681969766202893957523208583055150411254807974887144181928732659901590899196882333600124348007097300786695660072134262285988667453105479032378249492605778080471986416380016212056120522750946421588777574759133490838330278511172330678426082044271011682955321102958239158016335655995218519467511888965478621803467971803813754903229674823399963348960670554588923054981056515873705615974976291942157185284456896295843253296688167204119342073273239718356969402087702959034456193744515271725859154216545333849352959240381723658211755008474321093586040770334878243256105933680500075269149307258748095927460591964540964963482253505401975547080472633767220917394684291774973088431130156933621527304631638428265105863228457083776265047524735257068278513652443383436974512820777068926416681304150475158695239853431321124975330488151176356141878132622412526319019783403182055823816143817916644962387100233862697877349271798346193580823474496668906088666137124179006152626693036168705713436397425901174499618535162245798771307213289674693453133901800596921776404102484974700861558831491936931944669658084324540876552483486436550055458086897433192152682618110121431732961421621381781871686067687168888996606893813121329993409152094903296817841581174125683213095866108262359753372317910546256405771481027611610498563426315359135264168350936198454583187532016585650335792431142975679559382020172013430087958642782759879692435289379843438888574065352469900413077578774760613802930370710041775713814322424483945875124442912972130958272319938900137977891280459239904664880764381020475549372617917752995008587167320731507470083851974182926975049036350778468022308617751499973382161149280802593323434429592509047150546199236869744781078061842781182153849122364469654773750860527141183633313854984724935640342262837438137553936314969409318539229305191448194029963637807373891540558365999618357751984547370820141535877769414785366002478759870871661203808366070886342628754734535414597975883927313241522739236274021808377116830054626370301666215881619390882514200417063614145046195453528419178704238939310913634971021813145059301579859721842146651482060059154916325001071370614628812148949837193075692328889496509123844386842771836266704235090863937690107256099940120984222533331641196244522209117506485158838078409354660140630818054733103757321660394481791806239483993255962892228288062695920828253616293973874670227181944985677639108452477886907410752186640056833958847662086637121751180609521162056200785866605273826177796226651614801712350169617018818624962288814819614301592850987925667429255651959389293423150676335829658377312363774096056509967893435902884677501707319900319505001422611556155783973956461138318393392852828297399366375641472972759038066519367348401150645053263237826657164594500770989446941557786711263213104252250491033928841293627976670464244274121441613951363370925579216147583489445267942697988401171649098146009953617477189680167681012983243908032494252731858887231008958970952741812648139998633843892622377641250420868569894868909237804523000275815498992677988202788789425752374706621313420982323000151708893342618713363173821191307865651809619826989035537955108134036757732730796750282285845287657377863463788918001245776613649602279390686220897239016528676509878224295792094718493126449481110071049311240417175262868662471887701141888772961467295687216455857561444942245141870041190401498693127878633356444112385958953721241206107909883271478416411166248169370491051415440197563818346284475127119643009899458817409567346859430152129932560412008648373204130271360552273270260046064800430721178192968847560002635280043245053235805193626534210482763876841162831954227533342510157000662848383629458412668490354756842628773280133517944305244730993900322766449353407517640608298530027944760593327482249831117420826967887883303445284712731365693852504019199172940104882439689509845941153377835212939585706485413789144247078769878557823210784324680434809736463572244097075789909818167352195176335627345377507400891412827145590253613650130740644936262315298769669661978588135869115570325548849372580774781164652366408381627124697292421945486676604515213434463075751918865800718079215111166078888156797151336868448934951756838733273293179303172552131091973254782406192896015556707857135672937531498088860531613096656209416884140400206478082952076184630492343902665063643091338195636266399356988924860153259744830242252821358871878429381342638389551001125752870454195186094304359440404609287952107925179156777216122553812622530644142987356910933323555906397494701907006924756780091020919984370197421324850524771912120793222927518892772581896593107245218529275474915176578615910233849661159503574798890287798786489461340518131948121126934321686331603672343443542807701439145609809679020423420300661450035607849890162760320286901889267771091693550071979056728137853874201347090756812803344869529103894424531320699416153437348923392099793712857747542260062884792390948478761229811365690704688073356629144826262619078278035419618605039937182262116983132303288465460296285041658099913565835029890987060879248167109676902983543641757113579931650441742181717971943266849517679071669160289104888862406879423279336540947634033805197044732804500363547117551268735122654724731588211393209872465928810954766888482546366217596627943790009682594643956717715581443859885483554640565178394932541866900034505188441726478891546143758116473352660770422793038191962611266025782648174939977111799789873483234771850149090493501961271131922541600664886817882410182564515979863975581282850353594410258744269394922861303037202324836249839581083079595607658824648156542420793290380291222183443841565459962432695730025738079750369668978312517328208889938287604340499070257305826217816270916167329159265227485408968179384798654121692898303464036070350622914794478949070522625271227017937300164338635417918530747832614021404689348728574463512494339550202376033620797138114904313312082827939058527829902797141415155522223684070771333778904455054967240215072063192636758276579982417826960762101138787847414717951262008252750295998052603188521622019679036528831583617261620232847398442221247835154872436234716760589686374713977020725082060793675726072181463062601055266109359635673202300058376028383882768394613757049296330561666547834986136068853453624797626376334991703547298168883263816932633721755153252983929692617406325664607432062285996917266329663010629000787003057527247806860520700506015384334840695697506652648262933505952103177180590638673753172925673364857026277661709198757036427632847509286866728690989221740110753398841121414072081741004969491279293558645804997023730035565302215128039840183058713035214487620041829627938647153837390054680983108855138039303411869698677319188180906383865616069406964887505638515871703986861179275851471599715727923911226531583680561393648756142340612869228190225899266669837381180201222642245218629656457185489130501534176758053064517164917258071735116937905338931292246715834812023373032334540227583449335061605745839187342450906532921516838096655443198707783911478545639505054180061133909359358304670021730123206978069020968334756549684238416412640794158920391517681669998755022508902338857194404967163220925523629464003556688382502975807372057821554211694241097043430955632649670429836103812021646369707390416782970135669955507319540960212267752362851483548758048754828250931135052183302216004153491816772577877426509225023768415597896041649039956601403088503751636882662922020174339344166760668423709402472821356121054285039957962316289622593571125240587526034364049053828496593697349703924618822744600701345400511300648970838623505913952381091363367328980634706338645554130930508479888548111291828310648421008402895644032963726851378506569004241856385150543873384254055072672241968762573088193048431566095255538942491526944716607452245193121050532310670747488929171403898335594184800593380640051370751151681619540115661641232295881653068358356658838524849698768940575845938199261064390888151000834824422892653909003195895322816974098698142732432995396936648629360744260679425742123668048366471082651622911828259881602609072095734981182375150284158244862878541039140277956210812999853397049556402344559638824480016785197866702313815415036140510767009925659038080392867341190148388852359555411707759449249197482469577094261902621589761545037753382605160377040236969408512470212375993393492914766551774791063133171094944761141808073320564874186426626154484570069569476211393667646256814045027847023448414087036608680334299180679130329868268456651123856889641160518033496044916378534816307963648845347320250319881488841672573432488402383539001098883441453630801431297986937913521278013428532880898599395669550930269528704245449161966903936838224363934403926884463372751265279778951571073526820166135048919067938392760606046855785245900512817202487451386839219051723444737687784407181114967084504653600076584389745506038233096247584602164129790002545463842319667727391064470775395186196493133738501188999478393534552353532133280691920160200556100735252700095925438638290961924095990172637561706558197754659132685443936862459816747702514858131834911062758122198824901379882075161057336928736510687357301186938367693927184175649549773282992275003162368373292991699106918087377773037351030955471446305763870848496210008851949926506919457394808061387477995482240934702227377357152073921977922379684872241213013819395580492611854754300292775738395246924357049252178589071551584655638108400041349415467407661621052876436353708547838459081237704712132190936597383111415114490087352659202621931926723299704741423538333062882621919736574830564314901902536747557468600825664675270123921036278746261511098772834996692523250052987417385782082071945922073930767450148969103472002115664814262920352403584656715109500921056062883330768713233197887710591733926738360836298457986779683743308491342004883323484864325640474850310348859443718676169901114857798539909309654528779331145992418832101372535724547192734419392007166520383603641022560278941273267961973558811921303353301796197306048147327328712364052869409269143469613851326445365314498090359332992936842121888988110476008007891278758426938013463994549907623428738387506382903617261589988650227352390264779355458759752503337517439532767038856360461257545953474286113303805554364205442594428262504481222834411112983448609677823084163786299174914208977701053515803648044714054575213452534575799705276822400096455981046206766272168287108763323267334331323761308690617919634850067009702534677589547925284229925384491387285044023367312857594463746878412095085302617138527172529769938191479683079389038284682891311802416905552182059486208100874968554197229677020300178755526736104819063787810168153185623750090831396732328990985961601549046149316330543790749913615782360122574965126810040817997399339498396027912807571099024140065234577395932793820095793547142932336736109601798653500401966273402992853816761384333563186582549188714843353001824555354186348060072981984575845847572540451878265724608738477353027360483043632064556396131315702904632907207028973647688914354575124817946580738632405108820279255569283527177688188377860638946491699335473221504375830133700440474843369277802542786087675705514321760381020502758591297331011477681620504509824044050452544094498116636124936959025160621134168941380371569343166343507574115012203977236079453469821590752104624566488433440370550002487383053315894458752974358302076070928579794563211794720086619150335881501018676541896562553494941411731717688938846957763752373839664151983240004980559386632511919496785654632390176377714160359594590154104781496466753712128421084207464399943860834966842032968462240812308972996648889680324187603112583852583582454226264471053074352459126314772236996089044852479366421703949928633742056052152690036717328719893254246158827889119995563125241722702244125749799538824363273795144883594712020039495958449628582372197730829335743545719790568155010471753384318828254832134710885768500854582033508282959663001214774542850240999053836859102077221648273696454247484582201113136779455221544457875669125845927748285312849832959848113748923580508385564730836131247540968465726204064274812551653405722165149972463129171426885900110978462230450693753781478157835705414655363305057448939616278811285569248559453213222961637531523109398275582701478681114693033319173733118390729064768664933160964288120939990153746751699178659628419410195415288339703690330424985108455926570221484616748239280531278297738910377091061433252526577782089557456986177459410534358109024688060764735470837865914173327411480086095508667968432793618187911608870597633649717346469737270941094668415849593565477429209711173900767990615521380699207085836933242510509833804542150296878135089407592372595697150581485885783187612069025116685838632324138784233584863568623529655876451095199967146562612614403809697561476118370197443215850571393430726076315828068404106235575838991585015518777967381328442813080474743486506421076228030563851944489150600264980753670648347442015329719642752359780216058298722986845863385811363031752317698692813095291257562727945396174578460049510757803927639346961548865168117414559434467525772122802485156176193276805534791248655611516257816343644819173557004146977510572497157907258578497426485104996392605390432283322150889548607882611708203015896633554926185675145345846199696578300597088668716726243956541196755649099830045983725605212946172851517858470470691372901946274573138834606978366914741730771885776779072119139923373036789416136474067228092249697202270180642163994369045583572324754067944859935299742927563708862816261633469814169655477504803426161135607315987952922588256097396922617348893726561390792869059087701281094804302062409279854842135361488465397653068372058219450863025982182516428738710955811545112460214835205506797796622774655960145552361257884021699755365952109628521668712051340587285741658380731874380639384142602747652607071350220557906886417962378895446432392481220595336503683631847585211349129643088243048634660289905343575671142348820711450985357463831797302276656519134729741062117431254874189406150865867779840250545728342439476796428146199542712026484257957475994252615887343222325767483889534483054206322590707908390514182020228436492232009614870493638525986636758154439042649185076056813595405094170941056454148777943441632229432176367516784043034669371685451340111020989766114985077629553606778172218582574963492963899811408600188572343205837612395432132260370133487918032820975285455723918606379993171149012220827150779903757945732747411730212087335577883409098787597635947306351430746103355169382604576142492650068586677741408406502586603456453178502869428862333383354348344159645391989654297128094597415572383982529747532160896086866913129581271966760948004073471559227446115404359499324783991154469336621772605732304060461956644020946080256065800959237241932234012922989371490698341628771723745304018418534883747990624297136364702984784650268815254101366633138670772361732616944786836893191543817400940802746774744349680284322819779968090842262130584794381456535611702392662798865651584976270989709158360080973814384604161468913259638933335546983838652189176298843004778002736178942283473166976401782164485922164638879432843555939635657653679481653464726000428382292766776602238047055360647184220601226481578745831965737257292503036407976689433833391019782134405762412509509727934126308659786497187765603345576077597238303938113627493884268945301420637866339776100149343413049012744929980842353831213938374728674514067411038209987800256916521233927629023191376477956651002675130318505037972625366542162852273274175217033829394433875925010717047415088612415677775898731941427534175477632990749808597056239275973002927245692783558017291606087714476276780110089259659032835818371851999894316015330742265980219264685132413045302053405933787952820635373550200527897026333658710077658240132669055002158191446124536954445447490872711449355665549926675981987543875444059226750592692034050219914485937852489147856043230426455034373598049042037787477446764282263762709345816145619640516198567732490817483425436788846000216608830843551427930486928354864023208967393591899912478010157938319214784919574432790123299547691405972055946143733206952957694342482206780637385715393382413476269136532012537456299565533004665141101083578777368873923767398016451116810210924798361105023410971549704691657769624331771079330506209835447925444943165446066150636624857215490801647372570703080795036060938757323102788949747603932610348988750189638045550166119577773417081653172547607404125316833037475247201439614853988342389847754510741659037306222439367596914087092701409602256896132198905397046225710185072743247757216073570533818256484694665225155565871576844801938119889769078645781502073411576336648942912691947964079862500811200135388121489174815815867194590135223324377378947247705543293956336044829968846834885593919568597157061718154931606426267229857765472891248701536850557795471402830563168631350928764833426416338011868099602772231927282984708863831765086214722724518618795105904331487649380465063987334109362655074626226999822801883111049311837984614745172876852610273890765082849852640122345806772751149840996526476419337211610734611668506581295123366796929945517606403562509719833116331177762940701334179713060326495005664631515793870962506288553348007015645649498360715316750975098253250699154563993968674274564275536511979213951642916565572912627213521224649904159881101877006695936951052178686927172016720878104829212257606643771589941160976972978458257610594051387427700593642463560813032333788741214434811212764954262207939970694704336122098208482217273298592611443393183729393863350154313863779433611570238165597846164176850445988157770190266451805465976865788181097674414258552340711401435439812248997586793296376539721437631784658936406341466715941111577568568068728118016579927570070876722363571530425643030067717058656801192160849110077950032736270613422874231105548035556161445879148704399275796668404344019659948446998664925332712236215188778626438692470454179399993623483711265467200597025192832317092886880097887517157439368279740917760521185714297854141522910091635031824423466839010137404872045038517383862208150246108025647369227679282124088767378741287968901122793269332523841656797788128993191611938455532495046915300576096456616744151314817665150215236058061897817375070309117299778520743148715431286246866198194722526806100205823387879641297974035030266685977674741994327560701278339431992547303922841917737222477109527366497605849507135135583890587746410756782633369266905057289182378829435504628316965496007935135058769274922538152548271198194810346096557867469637799670172293842070201626075928378555717590077503735196274874751854414851360927080432300455335117849441376426228729514237018104850854994598786649534451208129903869313129854398873038357440275218305347790185933302058748830282837000857457685935568481870277412249076994409340756445093640728340285616516239568512687802914247634802588347419181038455373278297097531309682759225428609982003118797694897602167323440282465419081536662529538293889188263779990934013811738468554111127480284974355596939549760775119023289326088551881780851631705319472058003119938177612147966780218785616178499332973350002769563826279032725830386705209765795162139233892584544839745016713505891747321673751854558734225263362547291496098416581453857516535407388871151814132319798989777037651925947899342185475678152018086454637206456165933872876590015937307393831189265388720244988440369572974130342093065049631709906302453311029578489465560550114301445505368146643904759736966889879850687023309554778182455721430851424525061237505035812731573736245991627424760751152646759870231145748373123168590409450877151894296987567457219889573836929044197280871415110468660684530048283396623948555362552910402448584451164920663345543123447651331089259233142529929010824539221801568634216035048194011091710776434157548025035373543456542718458516541696415149709728153588555274192121603274872355839534945150368490034519244756550683727000490239157971469976124610467686986845666854984737306647895696829172210146034851936730213351633042275292194545897876882553263320716212729473082206756046288683199285469956828631443631249853781834977890344581843466830237036839889721339953893321469641413020649402711309142142070612510182893011837314943361147028630243893905228696339588027426336408175752107043349132029983440899596129130463020131302556121682800684161834901768656952657793295188088157294605364972656539954379360088112215532690375842801808638257373962347914235771493393619688359664414433218581323593836381975681818444895191508685361838008028816128627488202211224587448092318830237288914609986817457875587859647719623191541715925274562589466391768153835547654168486604986961055721250964016416099163252034463373904319710162612686698419129002352807196247111723442078927894277911356575667796268939437752073760621462078342108215040231880974844515153171672266917824690613629235968735268204498764821856868618594476434225618207358194526024287907420094586241465567015458691738529251122093440599196002179475861022909498827026184568637030829775652122591840506559826639282678474767260026399810434673558448230032275570523140668896044392027430532082559434401113048339956681511809378110334277061616328988956077243371447511746692973979056881776459783162122641554147097657747819751961714442666141597707263555066413930966767943924896722350209431667167692403717832632393050194523466304616376096941471826192890524036420298821656918959454332684548304224963891550512401656726768474134430032944483274024276265934060588838068172304411646029925682750200382991725271838768932800927685291392437659683171008506381062620512356018446221230606702707276641430288244559277481254820549658866600275134088060651163107520042620936904896221334826108554365823564361665067181238676432477318623447206493427837349171511649933050013517103984819570736710694252027525816628844900152786537450110214234713566003338390636529146372335625473676958601534836640285141890663152566899374743722648123918811403395793147037376195231012554962300954689759792546384312579865550183115343877453831510954041512221713378999869585804485100314733340985196114050202774300701124337135677436899935539974149620336576015385059549923508236092679763695853966645827679799345884285753480774255525195881679809276316335360483910471422549248252554894787165697582661637367866146907789021266775928519762353017940675851862627620083457487683415541441737108397938797660589901411659872621563124051041458322554517527534468957778896242606470695317208658846109980763495150705395172851073398499042636297488503123275131991387431203967800600349725016065349339375194032448334842918142332545204438323269667338761236552888313776599106608767050017475790608710039538980237499663943744349344866893367075236544379675576503630111624599170815238547261943220354707603216521754992522783950335776343214450926674991773828653716707144466878321512652437077459771184605443788323893990788310281889948243962010215781749887303694064931353575973442293319228011980301947064844248188870459869735088036098926680587265437682277647540159106829641496060539990751361339028131449191490038633903160613098986063582416809368483204523277571673352618489907858958148253191676467755080751762770523305300049784096804952797791546497931337905058018640646144316364796103133375775248636900025707856570364635312495947170995363810566326091355705174190470011519171871689236916934942942690300956339554614337094535096203802976711223827388421429073171922129805480124751379248793412460201719391212302633444995352392119785288521145216933381987672936658268857804331731297601731937612281211170627033159248450215237529504513811987510734130878017802955133620872378957851342466714310209926953968043841149017284188892324374076000000166812127915563170206895951740343351509757927920355342644711668799996107251774652464736988853311971285592018888324762432165501924265017472634430463834779721233065442994371271264024522651397489668777933202134955618141296583965542596350308581541069475717526961204330492021060289017106117188978508759892841653228770723742457242638085722037665761269167531505132529490792183602812956909604244046479484793380114924888198479583318936053850377999361930177798946700516726382891189436020760506921774627161981526493627133806142161743902667110461451343102439807112555603832537885776899555996730669751945166555169780173137995406859429306154162638840735788796697868528787065684407828496559341287838215957897190619968003180066883449843395764006429584470832258151094841630585072189025407186147466839232486993647975173953215598524741199770938502382304937916763435686424633682489296869707183183029901467064982668346059433834635338269747428241494994008890887161677641875499516378510812625495073692275735338223096607706921746849302530560517696571267098120848961641035592445406999033240699795653403132621045281725557767172412665468442922703190171822288430652119259226283172392047107578581830653916087631641890094142318572890092309263881829849190144997575684720384210582278973117481788016091556082248014185870996248247994529375690618398575346529070450585659056995583760169458138111993213690009038675320029140621641170451237242348368281636992290317963281833576802014907068609412978253209604770630647872735456660952701978805562786451077299753260855513561770578323698622966061470739956822012285592768853782156087256376350939740128841971209115953042653656993180126011645746119220921971019551500458829578458677536151778562050029465172363588412591237324469953709837207696733715065329787915166964288077134466713210402297867014652023017507166874517020940362786029245604170791709978136197943104717594948548490644925557479458350882464088248547914249830242058868427282137900749076327770510791402339005515856362729216033269099403882192465161206329034691971220952603953794865311747777781285841384819456646113038790066766994094372981326207101707875194753817025794462815603678702710017207070811462759978452476008138743761712114750422019927825355718907046851754396696628023699892379769799785850835472692734974680735615906339106954544274879450242328567435121168659363234640749736271399978658351232327140126281647283917841304493821821288013309350580403072407607951493967910963956491725168862181883694347192458876363846181588799933355323810003994093855840827671961629226414113965275735644911241464151292657059825602247654326142606919575439452839578722827073890658773077186835436451142147155274621304105506624465786774558394058600707198216247845456634798416339951395183731705292810676923861698379914064295232190127978928565156984704820338892275144915872243405338810260817928330385664928006209730288196587633383775400251521149370960448816576505691382955899337304583945316683250339408988746979356157852511400056021937502049212520690105974498863489549209768046048108716354490523701963421627038515713602517042902935784034261078132530099674514959542109017893434604250055310437322829376075789342883004849549003104509986955719518754226435659381528199427331589730620939905008775036788081073102311718189393809923929156577378191655947884174170197763948727744941873535240214394014027818303836802969602919640834303813804487620956071482173876708147404285465508704279698431615159027093420369677267977544199894151168187065643744648078380969531240974251982834751949689649030157417653626541735263904814633721662230474886492606021459047472240914730471563760905747056135821250411609677894611506826688462804077249368820884172833802755217341715447731990801901767518391532641059827083740868702634623387306011125337132182728105427586893092214098800855284018423105993066710864663302638269406833779278770846024218672882012445384040465840011740136432383103120200676783817699508773698095025678509430787069847300198871978689618102113441090182488084199121271431079845026240308758701208287871972608498605796653756031810077951685033835118475772385487930334689865922128469150898755639873148015967479288700425447752483900112544610259028955822363345653564027952427541691192644579318313714560067793639067229234137225227590294261250525567678038652985379860810719063235884384592095304541224591176635967300633754709510189604834971800614490965322741601186939909166658435711293938420749846979546946756555941006034366646774012201911770698589091507977956318338127413014457242048253337414474430915783586173380552664411622415639524642866103833793039182593345863599556027279846697902366905471944624250826617603393297961527459728724571303081864642183169798473718806752930864637541600869017474223653556409534656050631031147798861690794307859543686224858566860045361058681870792887150759043013744996865597399769699558221368853132714085968945483866551355455199391752569722437622256878425264596757085250640120472709595178816314507501568529474555591984350736740060455566639104879146336979698400913290585647397164367315668936453672754125471660612707191835920949499658463424065524189497636823319414141414759810139265107850902904475277606106805431923343661704588887600162452717987657152189165135103007719607205423874201168043619474958416975892825239845395863465010117433448669661274485752930086935789368624141186230369706047384151074718267768479676261803142893466292740709104123246949239821537460194128717507916095151217858239719202367111688842650969492517972575717892995195829469485524676073839133043301847516274258191132613085379531530565563287821804036214602263509477310240860468521260026821106867090194059385468317851330045330029814980304839817123508635598318744060269304368819541586505110759613746224237460737442602197075572071820676367806002544146020678651635972890121622835424026071032690736303783828585651489706315292749553865359631373361517049461947536759463468723881682527108318506064170508774240533969702429323659659693765387904897571379732677157962771188448238925830795616009107432862631311388348762925319291793210071037600397992040753704417126969642948376207759740800626955409713041756655726795431136316322304334768891814821552238621744353350768905933071980211705228262432967477042167055331863640709244991710338147824917764942954710530384193532330599888803499500791612766283982665099125076670544580042451380324055723765026490541080142688196094330624396067470841381506845670018400838487776395055367889460562335458299289576781372649797446209865661042262788252831185184473797776518814727949910150122131829308052025064650535160593772628805917528060973781840701646027822305211290139419812890294565861630402523166789841228822011781786791672690472397707196993124308190913856618781529806254266412022645946516026935772568163271028704407709294969781315719236786485451351512240622157817793887067406803797622518634191980638326945019306923282230187123716144795235300025281163858910298936382416596002877411933149525466799238207005862174209238336910362536778083098646319173801527515587362917930532393787207116399467608420491203868020652676225528977859541088653385357289332738176453622343855481149852510592336557780000352137137898151196974003446922416966247149158447729000165129274090756972401351844434803111363958173749477472572823279002335480486696563785043118242635786795970264762712463827739156651973474863282746752365116953310138110918307134351534170704549014561655911214797722056615331668278458306266473560788941256158394375347440390081419818876927214824971807605815548703366412803770108889405447501171826688595504602192059220801891981866851304128459734397329301033326857421280222204761432180016311178819733854673254852463971086030548642490277579687410997717641956487362732598902745691922082699182814095766994260757128247804903565434506376963898538136197112933923114332454783232751341100807665548068577757389631086684493045360800574010056519628320527146090133154111857123739042175627264739831633385080256769515737096304301317791951957654970087654297544831731321664777705009825111025254815847649250480798985709043705226546452561388700777568810004130362802374599146750236072526790856890826913152779023672998819642442968706360230404332547767064400282557984394673921912956415641729893831095204580631337488460665982225366451234119845198600995599616447817413405239048099250675323581757113153268707237445345464938571722784974259838116649811754243235948768206272576501980937549181353667380772482146006291433977002823817243565033258389133849809184740122576609515975161837511340518020099372533982299997680988587517285477760460908447711977580020494188862857475033305593863408746433092218718645536565197670092387063627003560290692999088753481433815318721787874883222578908397285724051660654931021459880480870443797281839095588888050868935577533249547929201662540746115776770748275478269851882992698215031600382477046742269770687558223044209921870303414200536422809393616827449079934840355013091786151171664679897563521215196751086432540098532964666021769498040970289638402971274650141092359355799700690134659169480836509964810465696042124633314675781921281587434897166973788452864813042654679885169682602076861622683457044603077167622956888564412912575634150787159555192161900814462817020957937100613350974803653754814011479430672913124898761736047013194412811454552516672164026007595197278712242131810756984509535186024372821304256006129164577807319331565832078686409545912992934850233984642144081243646783300461163516214362830855249093059974035131346579631774426025240785449331478524697537160834307063751896580962461876730103043463826845660818323755415174910521808024255374804739292863862397285598568703761684698761817764645467969832124401173675230611452742611433708981558420218287991418658251626054206905042237894796078251528481261431115840068722697955327692019762964604166096199549638625831490295798026781712878342981544443296726597007853308472820503278772914480377204544207354166231880286457806186952476235421231933565698855484387942672889296176980625916457394450499278959369778267480491654923023967809399606848810234860655495577254321856246644291942278972523474206177421779242080839468449723497774018856092528489940113864115035354491891910070006997334517131646434198328912129405773911753889478392517017260862540718731134911584574585882318559687279494613235642835309221384325962785509364306272366052071018200795668279616062206660378412315856878634050567882706326345540353894697705165061120401582662606053774186682786672357848092423087156438909098429869966121695786577720640784202321802056655042950640003374485428720020517267562775464564315168080521511212690412889726189131333167831720195460843683935524162818253059614159759827336032020714709335659394227581852324051440046880349091314334754737218961544453337526581939084637121886547021620770764981002346106683264638480691351096919176388090412766204733327352762646560479706625881073351134219722300830470605228947726489543830908350347528322376766761497741519113286202008757079026482276335800781962216299160520257454503449341390829053828002018059607400536691741311786497063884325772192895196596470663863723922448364812134476356238967227327121971201814048135828752641552900623718555655386189370232932801842205475839645831059517209738519715089095064701124748308822378840471742528315091425901728397467787498989622967675568138944621424519285495355574457093701333944539882440687876774507432605985858193118078042169140434649413665139373109847715871528043440003513767142326459322664582302665725767371027376040178376778181114872556168816595983844380492485877346177622094966696294078586629071515499844048862017938998893813897879398708379834093937473855149335413636444676914964236301332683019617146468695879909141599718235712829207796768125874176385211442637384966305583687564623851670457305098944652681353287653620403619000763405756144904513523953140212315255892625204592967057718197162363583026805030845705083514337917123576526269386835893944816754341479915079985005153748632040192149532927834319647373759935554121275263624086882295576160046651424066491517828495648348014743272006352304142143400188250789202761324279537357329057463777217111079183606506547510790542829273677687921452358355707309936421707652989971075070932257745605689069047494526347234235196412029666456716284932638869420957942838029991937238841465049018630498043168134474546930694322804518596850582113892025560273774118704285676440317075407295910810008682335053527907242852307412336504787714545530579751476627746763694359338693572794109847569565714016595278066760548649784374986986283189513372484294504773789159832460903446467863200544855351550724607199505978472566870720443352231618846783255460321667603735946775249064919876569768432586885018544448037914909329714059049344881188075452465582953134742220094282748374916755464132089083314449235329114441736308280284319735314371915992028744089081738203844538045410713823461640769111806190431920957933606169962027971604492293101027600459412006012259662132757333099010853930413640362396777639730422657343818398318209032928790444572919055178056754861397568788608313852328313063612714563230062842843401822945151402118084148753617956033994618310129663032791947825482950232314931638759896568349159031669436533055514844212747290958868844708060880771482751105261806664710453938903743301939624592518586523470966303203802520865963710804853625207336280107277886126786353078606977331872666466866908138366953772814452670124196048081095069004945098005932870119244125790337185259169337849281115456686746632675854549024476194525079104281791463242791885836920108566714993133348882054463984356021201972612855940589433844277704763776944961386389858052952791481020982862030454799280363978779399599312138935696942691046816846657213940521037025274574018881147502137524245427050399196361503269148503081040297475826276767939185402981945728570950019307759910829004528181588779496610412212033913347894123544789629774477395575447594741202131920771104206633652866943463543597477489486431903784985803527009505555530701799231354677680745377075270175328228841458130690381872599799617614740263869640278836774621771357819947300877294542327478516596052150150059426851362229116462066724576088551029185790524170726836661706836608932985591591799129894745633054345666872814407683257666693015388184126242571069114525192095168476731507010324515636758128215324642083107746176377295718329402821510779290068240860266491056208670029057988379515398267755214398623400607346767420456842432573120401405271013225353050616305379487772611508832856618329958613906033979013291623435491628788548632211733376635588654216106215796131941436799156733920224123552027243606771314926817954663270696746465436536578290417295970840530756810452170844807836142427745546336391372873852816881911689566016056914763496547353113616376369842173578646749446094154636062880016817350149473392998869075012450217672975344648286943433214417554232795436165589668687277445774436676170647958197290399117261915637838066775863979545061616173137887771487543579270247967628041119231827000867684920681635232789567705653841741480613606125353180509938487258407570284740467095767961800544026800219367579410415426781208541244484417130967963919057850684321632895489396551381267034050673339167901371289826251444678209065230053176658190486432681452028350455985454450832957303801155629223378601904037463591713745689856198805561908824062921399354460903068424399398584157864996377128621221937388679286562505718349663240745085361617720933176588002994081198001789648285583591851317339591240836322828686126243764104403624012824145845726783052804316022982220132600499510097590919558065352950557534127224567652674823175388416872857847896400741895442306624150626818887253204763457840783095576900878880362057507646913915606489415357967614341354397286751571224710790773270030066679585718788520775690848381425714626306314895220381983935577202119725970347805383174139536393497993883762048159371105042837082097544009591606620135404237976928055238448747168956904978624188063274623291192030937512862357997050262246513822959327857280284778342362207919586771208111179103322241248631812188601285747590653133731445069588324323345695782029470756043519139559727203152498335133228657853823168124780643344192300616459467425614806991042697778810994191236389947198989445157073868243015094749963167665480407660734451980401293604481002171715451223902450828688690864353005498007518637195668265071707261297477228313191823335717253144705221210473056684955454365673824451653982073670157585908830143798731077026586816861463999686794245172581859378312912569761325092231390646089173135472706793629066516227198246781694145435818203118216548613045006342854482508286622585813853887147960842097003273512273040790022186009299483384422259695227654737471226238732190876308948919469258966371263408994717361793290631451950049372007362241080448792556051723259688785715809130079996889625005528475828207242118810554353595136277377327802368409063966728167130000647336005633373988472384336153661871393927913718405822739936715553457585297861577898702095202419462545539840906825976929564932860473528684009742394106221461366664034990831477888127066390452070080112595586322601453338552819671534351239911303821257829385736283813980722903854245321566255719065952677071039512970073874678934636271201734902369478253196132055583478723122342287550667456243341343645510275521672655374314889716263271608351508192153259893974638943111187521762121513938884388861690458764982626158887033060668296592302788013589313360204156634785959525742779809397542701222830564158334780686578090247108185910409910208152724334854299097140971519811983981263085589154902191786105147825551131237855494026846650652775499312263936382277257216173061759319615064075175809565063220153594119540646540100251473583070838315730228407638749105044496993741467664362376866094164583718354098547716588305289190413137978031882594422351824797390301820987781429117933099965574524353126793397179771976221068288895671487947666081262475400321010026224748007406483781585133435030259484006101090879318909519134114825059360412899409254661333691306358420327646865565837526008770001427715260902327804971508918551918647455108991707934469478778486250868534325212621996178287519662381585505225683071178577339320824430659496120763766465846509253682407509430831515738167290130427086863942120874466834100839949005885743261473534049704325047597779688155386385013595243016874653831090918788968018944644877160531396211605869763962922668511624393987555490301519241465958329664341331036167782341372480397502159674885500480061075585358485329098525059756462246740009196629819317154974300395847359443384822889849601066800570696769469762582024027398969358832200138882923141274894922304091296885361280694421053582687439443629051145236671498424838381423574203397889466851943645232630996700874869222962937786655772763496472900098445626275684146109011379172041537354013820902026820323489194047925875115245847226028669142981507120635213075505186742349761044539341350473135966378356614332611049666189381809046834915762761692011583703776144250472747406837328159359734235668619325687887467254536169917284078641402916903069609402661991191467382110934400552225432052866473320603584740896229198888277127137084353940019304457361634610581175424391181792408143053233172679769321689281878397939750193487732428107220747712850430434573504098913999782207758019373824016701523670967562951542173136788623302872044199929529400697851001891941381996397053149733825889404401379328170979572528175932281910623170687797906543613589518298716310542829539939471556824252109802063465044457521362225567569091772720605683012095351785335916046338050920788142324035115981953375455467914669087714843289963846695520345013850751763949002692590100522994879061080609206146565520340408178295016315152331384665290986583248393971028476251819564119531068509321465638739223505500845562584316251411641531653400811753236715757586215220704506527219291300909928624191883437932320847357607548513756716079274905257172274551069405263765605169601744075077484170604709370682838727289605607653939508453375353209821475532109132078386450934024002878992774577742374985440531993992629490639261746394738878979156590524405513267453053906431549534631129647493166702126186828844670196094788498034597121826310972963976052679844299377131966670343814292799240947146696087269854522521413523053756374706907157372217317049702552119515926106834877318114014479755823082454217963901774826204701429517798216526420043852548768036258882406642474226317587078932663687165124326777374134809856724453813738131207873657494797193132206818504847789355707086846410333926282056666088009950727747464765305114356170147492870155666995804028702412553389110173332538035137593340188674308727672655251847956245882332500729256556714884202790447421638875116591108096920243995869145698251021261030764750050191321088593309270761730067403379981728146475676705047118964683407234482617035421623800954789412689022912917221656823301691305349811943364642954137957505156933094590918941141683070706923768465151083392361255054102037825943020364490987576563518828652180140424368902760598199542508279323449758041515526050081583916342531630065134490775468310433148272249494151912621583450977853717466173551820525874825089385739139283009125939054651671389123507561514807319949663452771203778549276841806535835739437581261609961205877542821188646247964256534538005750103030208320077990553293502938915581716113568448177854859164809402296821829767517420736438844537475303539872902666399587915457834032548248102749697002880717267916716053126958878492476796528300356261298392768260465277315020305983835081206357794530744134169235250653883535891090881539678013618193880481511353676638633104990043925044345750464488981506873131266810316650320967661435903415485058738317189946424773208802938392317843695848906152803688226839252548170278644068383299104412578499058952594633940922219795997840087121131081685956655336278745526241056381622390589895179450693309762739890708547562148934574965869452030820299298540784256417840424935508819944707179415095635242349099927567677518427896792421255334325125938149567729283831079040121236267141396861634271585148891278443552805037427575865417068731948496941099671021599786473851313929372631860553818081848836971603266859944994392373200360138445592101932578771803228968304536161375432138275460727420755023648633813158001521153816258812434313571824872837513822950949554348173129033020186416237440798159017890006182974888928564316012518404718820840480703759631288930124164886212342088177309789018190759849385004465420158015295509443223467028037174794188391411310090252591444942532234915492992450114098930099969081701290785258054430958682467886752474395721752097931585134485996064129956130302466087231072104527544766317544423828977878504792122170696525186572244003401402509460863448116347978062579652608252530483731792744091985189127213328854423344051782699018845841003025943511343033883591664136303796023270119900249699268211585954467039754133875835498237483039952028076974083255344684580788331290435572999911803305026252257007187752490284129644784211023040693207749385740829826511114950957248285669841197677596730691504773269362769369413181307449184048093126347102925683860725069325010483383925929626127940304814079822842870523010748737748495789801567315124420946059070993496764820476404091899684831259581435728289991726888268772953693793307584008284909514340550655606561975803331875078520879629740622623297196210869840259089272502244479322866221358280391092307916803437365879557564374266062152702567316461239643579225071815460682776784315439072800658187847833745885059100341498392075118984340124551532395428077222624478220971941241505864574564429426822827123234238556158314371574586559376421841789015520256479993371028924450816987041745047743831925098461838345165756684679132233054743959965474982641023386546586028391722402927918435497166648762968513631480471566734145880928853669363163533944880126001630219786209599860061569254216826029364785008591877587549771828114854142011391690599561927899083665323338526737994516094053463169630561496303876214322309043805638404357655606184783082856220028809060655589412358750163354904178099921901174292885381275830265527993778912423692978749912065000739096674736281175549192402565000539867670266817086566792313878013209774484515901422214362417588723378576766283537704029836144761153576485637276987994943211782129072477530889333246600286991748915543183671333842299609827540741187966116098168989523570785012909781388123451167010199554183626167480498426544335515464979609973912948794421067794565510031732553038730156828307919828616560385030635339367280551171993217671058082549051007138420304810749605995567855391349459089795231831117694025086453004265349149679835973085403272736476617811785196116769652033237029109702130326717303567501351127076127019426594667078898871388947116569507838572701534525289121226823178307033024311752234006560697160668055871767077402734934950086044537594321272783873341709396014598743973988384413665658722111190987460759890940493745549323804844509797402498011813451886041629148458708620494389826806374208942637455407753675228551773567610608491919228393971813064753138834180544867199012881723264218780420294842326772473602982816119267098165434025780178128944245203236383675598800931583588851549052601846232942824023761725010819702037433876955083794528050197850003580259851182924535326480692143167143278953612920639551734648620285690987472976877213116301072764001064600703958525576244709203114585203253993937176595203881723845297464867836414600141134361470402825904036605645022632554801020050783025344937707829131541894850615544360165273642625407939663596484765059153620296709865597205724402882742557310558251886666233218398717229530511905120831930518166739720234687834873323020226505047191182283214566807375410488312868832473883001365078156344780406107175576425940037916158672684566577759669020634631337412768607321480705864551398985583198384359020934800690716831351124388146349127543983258411674938828904668633569830525208858924120089765875401925388875288935473357046927874255335168575809741040186169395292533990145651930282478841396688857465159089231165618022767697650601058537307153864067903322938459611357437539799661770747418786290874920865031253397835513503487457517426041267673543466808264117971274443028923417936019981741892624903128310891623668350637271038102769660607077596031914170598380381611352417946662257661027909177562237356263832004538733382389297996113608557640226090174778445007712371004695130143919880465293622168690872559461658914526582863061461931996955232769126472863169206541473921804982116387252875695889627097739586282662544949260967139449421875596063505826173577702400605544606002969200556367880491986052450538322768446602100723263963830794340945014780743689533344341734652503423382365702321609955485060917170859161348801610010321978390767088225436632070714612047056496578278049088947933588945907821003781308333779460038523787981777328226247319015120168971429351879905258986401507127871504153117936150954418587817616271184257158385195944505785348506499374548932665180421845039921872200928633591055128701163169760313141247814439405000317464229117946926205340203703031198762125294710936457960126634638312001720622494742066223200344872069719431585714652047759377029999908714285742007561783070815870200603186727262339151321765409319838938221832919141868150066104239538555524579522994657849484046209873421283207462802707826506438452864732374790126662127545400338425597494902849793153179716650193582493796507888843188492735702127115613707059345717948783527035614388859770473478575395467308675538465915821490158235187976142132237556519509197122023299414263413718929495893110792962256143752046257639406062471548652909259328252888408857640109500084069274302675645588098304617716082140561789912576012599481867309523358619356507849274376328359257441951734412838852781599085874938386369332553839392492502156251262419327082856637742695325642039792568094429223347796562967090991976170088424638898883180318468054501432271428495211420314477831490836377051369772928092498865365094636947216244416080618790012161811217497022295388758983715674424249073174272755443562496051995735266887701666888345740987105467547057103314038512347970808029321951888333993356077073263493448229290250027411691588386213008233553750238429023913306465335873994740808853559991187015367730692279029886617225498524140093023205382326942965276100748358753852666951974238786644055976435351343497396646867809534054541638367088913636391635657174143939728011106776047722671378853882258044475640536189042125355590360956297749266088286177037133045582682624648263865457109765388505361038056213438899755642718254994453431718101622213947214723544390118510533239382446151334748130955516878028563339272929109613385456367187926778235163859646053672882606734407204471816866566769953347325913883196748016344823783812322352837499232514149824198389903209966616783260696424222062585641669251239073377730006765295547020887314481646222922855686151358960020779032274561889048015785835223898184824379566301177601275099057851662982843958713740393998365489567655909055963253293036930998783480928684383337351685038783577022470319853365826663179238127173475874571567874721953771046592191143719606798136385502851769199195181188567014073764167270185381454724709095991360867999562290569852847754203905891577061240730496122729073159405894149982701568188425844985550845559416216426448789230198630998224967105517348008915267579913240664007878196010919852951074621333823267608902315101339977615008276115277932573503312779676583169541025207961543093484477005094401399891482272581160506532039258009715246076754440266509981527105837327865981125406764335272902616358470991992267090853635879156133774701154848838924779214674150161308139230900448306010855994567929719044377518222032565732765484415480633792435539736105718703138801227891508991224551396525653566627979718589826621450188108941669616420138678816280514471296902682085380122747712199680885637562376867422335087907499783876699376158787187590221445365811755058834295012917686369228388922064236857588575934242899362442587119559480843426001643069414610063684601947864875923655362581911065608190642306969659684442910653070891585423881952063088563371865153655848185908467485884122294192243646677235825522270887321309975019623882377821354706354572485081351645748686711964507913936168778778510881464335824382680539006408613703507230219292504038895956492132696368798790108608635681343656378977983863827493613559705839909136102930271558779599135941832936741496660543993446461293359085336179149354370461081974606760246939927665063388161275844509581975644305564395532422541327523273204494494724884293218754299665671173883393456318837708191883386633541341687698619160923521347609595231341308166393608657824188472825272561488444308562411617216070183832309364859000163296084683620921798159817589090987991614014789746087151241662315650713861759246741876382514330856952597160940736463772664985906183693619595359319790417309255232885461179240857247642069623207794174668044459580538727503153435529433048129150860661901025548469871578776903996051963666573325627515149656235496397173474440752226814915790621819409734067753541600267504146740738275423125900029887841975763091303321683479607272740267549378825148411150478321126993591427687074964944144575220643639665510985259488885855454408352001002695280216978418683830767926876565374865559790731087238669928180020296503640911613595982982178773653673997953697848612739358349083923662898897769248817956569381364929345862639315801622453399477116571472129353633723988798799596023876093634981856053410812866327350364610817331844642105936509828979685769390512418871969332977488853642084050779476171966187003373967737171301227265060101989483760708654146842327075361374201566580527399652752590990619591091181633786819934366745883568019561424512316185375440887895382864740590375156993004440922546816561391110790268722890579990636911354598753128533833463770273963904338674924449401081839782196119845288877113997976065861113003601790516684766613974509500566016868800199872562779201263170345150181275345362543432181807223311448948192022780757679485251209297581660971633745026198887810462848233249596463194453757423618894876613027642356972885497380950556658616346782642456372613682504869888029721722844588985941619745658319798309967514699758212417013698869639179890777662420491126534568095295443162538934697535433838958018835076328799077295508940940657181130532566917865252746939961657446200157355356464152688379652922391400579467015300372411484061987262692996453659911190742845833993992296562398105616634696785824231890454660220809519843949961747780185010214102649616866820709138238675799270364296449748153235509629832013080010407046438114310699538845900343263294988931551863861229033783957649937033216505986784452162426029622497523644506507698042755373710148169385833027122412382258493878980368555590031837975295542326591065572795033963160528519098931863214364294385980290595855046544416979647989830099923118161271126206440565106748483190767487379938717405855928780889443900604230591006287203203015031227961085109181155036257695172567351187719091570172726461502477539093206035631037707635443777268690318172650068870860683540373588312923948822122946214949039627162552045623195558187807689362472980722243145107791131134539799575832805564030552687141767266886521450711846471429654451742729059712876461365275278060641471195988374643378419928806679481758571523921946863795336315805364518202643994895796807102543572987230639653098166313581795979112040787094167973358506955956185488160471410484533475995228596507543257036206678422608346040798068540072303166595800260919414253178831319169912041983163829423937862043830098827538270831490689324653482365504392177572762319534912261934249651661300544739963489731346451302914347804692900142466371385041784219739075580193698999363519555644898163924100751359546098818632606556868266347061153837110058054787354526434582440367322882208663815256166881386217317350184908122298873267140734553466765591583363689229216931817038370990779520741515733145105598610742784681628954113525686419624921071807583821383961955936286411386150410156296481406265582663879067337425424714341096362825900099270134807859844747735552487045159455837962153712951759760381908280657321513450700246980581440101516295101781481905388730281729381834882293444713751035218265922432600096615852621605994999087948011748975302268361228682022471396147620506443496515507864622887451949020178939056887150458943672529307401222521151570119188044500140431215079206675769848951370770643433686936903493624786877744438706342084897059259467863568067202184617824539457188298342781362218302312843433914013647880142131916332749347966065268020969529247987944228225002228519824605224795073282642504567505826269310340560746479170966731142249141505253830498108442734318315730259046780838737890007733014690338973121694932082225115616710030341566256065789999819492412273335979145264742240079622897464558679378530692649235415336420218524641182703287500479255484059845995828328532169319192219177472609112108883060324675657774564032767884034818299974299810043645018048719419683262283043489041618871962116444485956583602800309007947205996698714950324642021182854926112493422397543191676751276327071884393947037735160985717585819533579923162818150976364307045501465424591434584822611182464439617164304582183224625373533763768559436641502790224587051263717501804828524734478730507198980699218915260894476419322709709433808485233483351913589922675668817516248789771421692754518742923921846863823234842031966879104572391311672236599916132894386270243752750136412890590108042986192443853759236449466574969397868366259072932439380546617570731990330701405756787423825882356517964734833280240928527695905942860036700926710561256321878542358311694452762406951556765109509091965451822644209584037380085096384482143857303707693012800460545511097048702770921291500224919393455003915651825897093323060053050941414815578488072944172779136349739443494444362665494666855928838354383686456856268264382068357113990726222828826322457067388280644863406584586431224374412019073002588555681707512334384286583481517547365436377171980027183599414221416306583805609919569839302680851496551363779569876153038343172741060343310708455371275837950725597943960881788479804977364047665537809245012426465013878983566679807235659182973557244804562460645285593521049477637778571553340395643957654207127905459214057234273026476225163275563985130574602432503543485554234711202804614638476226333147087114008499641777898068481221529499205585765863317362730147574612991496020527395776277383027473624637826561333500513363867840105144703648991117375310324150475407513210346350971515536193400706568975089440656285254702827526679099764316623720723566308621410541670947028175727598875498539412202948881128563505628576987604267714496968439352385757819985948122959251877000838060640764594438423745418026141661748635194153791732539120238828930034143800184208025847967352486587930834330556553716901813606380437811567329146773532363016109123905101042330819129642890381282688150359094651072003052138937797294042852793379400851888404070885219554914073103697817213607574098314395478885961462238649529310847085029436648758393067648215883437609292427882705547205823299142736890637557967950068991897592232137853075530025017698161949124336626767666444206220050341665651517962609461642167485050320077984939931359275222481204616876615499382408310492406349901323154391231584899262474412230801106942218509514987546605064138664200032557401176409053293135320343936865927883226406522706988804724972512436169420863893728289238473143837649472786915275445094403582151801765850615241583025083902927512314454671358310320685815844990625861022345785798547590114715626070315550455341415285205874572668195266232355759435984379153357388682968821202242240285187554911921967269613183760890154564341995559543712740440591201205576111136796763262154981683483894560719469242713598831230027987798871370040812732202161331345257877894223527920405107475656532771095475679757494061531303423248841186198810372416345435799397360915710196313188801930533903611727020517822743272339344699236915042452522737952458223470761409204401677873015547112280235391170618721221879068162587366198028855723251026484507369471255079392120594238276217456243710307009691749828825551770310841911181073993391201416048055547664638870998074486405000746962939235686520500500034731431831986194528705948549543230170916315184914341033144026533384790041219241503054007418770490476401448623748387644786945389246028597956723972644097986302761530319815330032432276179503219885333710165536931230108854296810906897153803124915653611120205095705481379279095419563119793440845140530411376199504474079243324773847299782245978193921802569145630574565315063683320282804614935275265638578360549057561780333336349883935622693815248677370064591206706035966000337524800135046278305314917542951977953652000043938599506665896308325788863595840533684837089867298798213962672572812323834229027241269925598319484548350755002566812114522772036172347794499208956826207357491728143606405015315958260144935441808377208592934503012506060625694115551650377319758848841634410668344664604680004565314165991533310642187665928303019646508635656944191526524717742278450303183381391548639380331199640602943907426770529547284162867363798371561277809511526788859087163507901596011958652736901297735523498419189711879408103952811583019326352993265608217985076196677426309124672252037265370709424070243421496222352975871849118494781927316739782939643308375445961430675327878454708429226005778898638034482924003001912453781669702841660000629571665283642171502607706859822611627125064487026720093920871616610457742964584376600382183702642739539999688613442599349711468973948584385776877565044367260012372933255209201862712817670973804576367073652476832799853427175153902591379936725464227233334212633442087192290276885580002717975792123321555984102189861480104595245161473909343817759174348115962540528092277103435875291456662599252238140628972862746360119425635613332079108037704880414186800464496013919923711401164847816671089453764880100902148945392490120898399884800417914898068923607137411131062074557199989454025924286072746466607869655931822359222869025613785678945215560393197787420605069186894048454813951215149795095191933257442835665735781305937808418228694029875800789842823293339110061918851183664832047057764527640098502989831706257355766804774857278430582648869544839119802621143622754840725567094726007958412323326442274835413779841756155566323112092532391798502959223068549522366100135289240824044601230702750511800299726657291356220119153878813153419201754756804677022407958267378479458476215911756094101386435793072378708518602547035676688055445726364834890976271806646129039572331085813531264268590368031949099445219141732581787000097337164679699371730588111097218300361005882325770115035078977930121794867967065892784538806628851565381702863126265700177470181719880475353924565620228172181369284129801636066138170126114265351048609281316017620464965848623845936143824129036328772607289262965436894036727895660767910500727071613739440331479475334896638251311978437371908678337715807160433810874074482548326133204065906330092390300816537359095472909780637927960709363557715987892363705296115174355811895429359986381151545358884100659271826700218466441612819761684462183547726863057911894024316141843865286724507377315918044349949367186847085813191196144102711319460443430487854116528132139124456078119134750129454201932150937302089267828641592426249938543506605721993976634997504592075738722662541449157008556991700003429044658066553578186700316822160073174721014993190979794454439427980755586603677796453426443168437220321596604289438553666836224837391659725151633120943708472062989141053967130931484551423843498219623526046427015506152624044474953756287670595350046410759811058819485704961500153550883779457707304570183280465046420696632305835712333590850823638876995042607080325892502196350450768960045612914322774268588904707970320423313756191745454893003562875244839943888890807050472664758728216033238599925063998455929552724220084694629601793188468065049069582647162076527665047631597703027385690782397887723390821962988900988316409300795736718599689552333622202288510585010421097803637806221666897814126639302982035900560490953617381389227380191378069043146195982733504015207028300953999877299745359274954653315376025388957605809911910351948096524393535987550801451612829883011413284165285392525709298587778654088740499578823483085984411921847735314614435423182245191770207857585512893916373488996527700039911624528404095051141676716359620634116031738405565658964209373425708736702559792873887747480970543245151511773199407644935367185677143748964838920511850526813736479596181667379974584192937413303350251318367715565242923744584268199631288569215991687961732764383627970496044177677740086638369404877899616085116474375829738781141667763397108762343990125098139266632919197582071047117231478607386460633859956206714131379027699976170018369956244285629256339166063036410739134718151757683093885304418810090294980930030826331896929158282235458080349149718440524964163455800518153467838995894734889982457851350290230885047754116656442397836681250426303795915735212450694112550218898121653914692797741630042847893922303263037234920502702353386022933537848060695190592509798951419958796248216990663633663379347998918836489217112340795432857414613541054945441440579565075393175462133399845082699741261508342394487132003977583572382515579419704741901759235469353445359458499607539663361939699482003487945630562216265228573066245068315313500254550134615656641083007463614637148058759223431205912242150661515968075121191417658271714631662909900628614949360282851278492857660232708995064742836016974635632048504268974613352344782174297275958744489876219806354624277039266328638569682321891133121083579513530656689829033800412411305763924339095743161099572711319498057884963541416410384459780383544172664574411217339568220666258927277740501704007281381278534626730306860841317189996755062213233124988974793058960466754544781185543752093638654339067267348778991241120652299462953147313684361420371783426498369748889102082123347491609586840387106994891570288283850295144237109374980953533716597186844295289318079626497635689793838889104236240784867341646752079351555453650077971600735159234658868058489581772862775845587948760026692752170571722632957276447676444824216548451031414309260526927260270624133972540058370827423718620228604986511147401584100842103492062698456261363163700766208178423065710113388850741886221048810423697567012679036236912247007191646973108027923593771453597179721716624751136758738202542042760170993258011755716201511918017075404010383674472609608950106997959632624374143766207307377451830902439698567614560953655291245882820420268976663969284416239373153222018269833906431938171059517323295140986494449262544126721886880059941293759077769794068622511793470727812419958353850082987455873133472312197736597954287753517596021232839926707556696967845441456932447612080468481275425114927722051312293080827237387489909343213835739778866349283570820905322062325646280396807987782625499110849276614319260494787644063288654876788872862814071415535947632600716268228773317337646237813076330753524728190363573648407854146099756528985943813074495712733641839929862797089697431492639404883143522101518039317227514400420461983041265129744606376149663585493560615869490449931803929484979197359601063038435936518071630165826928039017357201008817694535220626455488831408010989161002853334493430698408786782241597354583540325701604938478638509820224168011728224072868125152806556275607129677006457909725507967975708582909385332267394589075983444057716879009070000683425280869514029549516889681974009113297570680114811648054829139744046635400176222546511361952126279371319104819690300416569946503451333905930143743156373553188820715559389614536599056186221994495155470906652261701072292805385657566016058103486999346154695318362243723251112698952991206529435199371615705452606596930864942876555880871023915084794431330149973934003143872346054512382193974662765527517646389840215902112503498501775896123447253832872776585988100101273758712050207435889736590388517466427100847888303516789319667137951804729034132301021270224777525941430657749989087343327707382912590702407931764658050557653505842903175143215548341792421565726397112656836488719756350221547474915444075162372685859260871153662601125271432318488132327035932841083582393582479385033976104149990422597189129412066023856321005970951848144508655744263784307306312525042792926169091519273065649379266315596900077139085600812121819125137299796879935735596878281568221858543038355335932729997485610382105144437719698234986454275980043848738157392961027755436589032799265444187471985429395130922177971346422501454870255198852397860181644666933645232532544497450265099272649243220601821697281899666882085967559217801950218012353982912792326482931983371704679954574113202590255778896237802656604629609597630936048272689066195441772995365609050153690661224431854676177696649723159280529468411769967086485929087345141696736921808586863052719488879260894992458179524467290357125496808483342910801783170444841917039677862822058711952383194407865941126041336977598574017949380592100218117546980267518068105082293847710862331260559762695791105700427770711064086973158827432682439338195649869676944370805878156144382173066218278335643237354811095907829439514067622237144738300220147277408931669892302605994566790664060512699694070210748657104909755077676617010774521841140994000776670357744712392428885469495561043699479974835884289062131453905480445690351177635395066713155009643879692600241075930292622618731062661068486968242127720157431608954492441917776913612501684088755645133847429859172036316877776378392390964803953418740814633092227849220416886497512129254260862893943707167790730465415021522663199905627021933605282994234703377892404683796048612533268942561974385038709222740900512037167841156154409346138477441278955135380648732159045065294373064557153657394287026654697421776592353792602292764581294137948423481078100464397056737677684681492283625616613294286479422883571698845663147571504957121581434729934250819125334292610833508078207615395753892646510732539204550816470530760808533090582434231703038158096428669461832782920931578205389789119278210818241174802910660066164463679212367248432533966169828740755311225637949351658452604032552733292204823860066715559346530033311983130780526974629573336322777750160649345086349562711845356427293976325614772181825166503819538594860070953905272759144086241835071863160490596042642670498025148715084977257706477385531950110181374602510180857008474375934920734476796669788610158135294252317756215418516405007466285669281397430379513097184672949426949882100085538897369271351863113946426477781478148492761394938514702520996570470695378151920754500681531823731771817093952596215435376904811977875796980684029718480997030483682453370239016579820763694519401292144420657928749752039734457067316594672267482786798354400451028490178969518039487051122256045618490190688779501900280408772130795886930405866032445194429830481330260262728491705323285892839653807879247326442303656957948804786043598360299021040409746367724764853019787168608681412086432587642329731700548578120760082534852205020534620055373549715606514586087807695372792186580086304127579722523304059144576617899475395365023596114380133638504521695131785734995810089930123146899550453685716724624798485390142558340685890456976343480263221231345990383818660314866109290726494754816332079463816035934249275159293896620454363784655352812056960809372234871661022677775511825809188496562074776949193296137577404621984145350352641441312922334487191027331182835328726029341728298534177442105743655799821996813946498818913839487089428293865660856382463186863871122282172900003348178075735899750574480848342259059261059138159659128811512767136461095361616785731720655094045794588802178038311603794419812475164098345382736295237240848424026548064707194936856389191885929471980469382489300296015172061025036706121557396165223960309093423514095750667827541389623432600357701408403407255527659864853012943657229857094865972017533154388189158500000508685597379583970390102048017872515865556650324156435627713749041602006629962046635267108527308422658317284319914819805844636911713780472265785269727836253394693923799146416602733341884674811592751417131799017340563668516124334239372637440683746465254615159855812222801010944292098259863320186337391769224968983644968810455633931397619136611294262773189635248706284647989616385209537267255870886290342291887050022604033683107517966637569575568409296587546451873053915008990152112219759581351327435608318098813582681444276435659585255071495077118342463389122779806679890336117302851485054531660605983777632666703881889099428484557258726455130547726010068595110968452328404535166581814703590970471701652215397603278560009878652569629506050613578945142107945872617289939972394125766347823231128826427811573899192971421325525304413727916724701190394052183958773819149310672443455078033870978926407865422858009636620251252805678017692826467544298682647109567241481378829390622316849723762273485223045480131411959192051671438377928471782075275175880808558042988489780985342534954385060880123235666112071000536424118573462294904454141521344957253101094149103901198927294420887505213997614759574931213837739196956665655027578296462016655424687017267250569598875155620654776444008279938607512992997012042222719982535848836171900202020739208071725105824929014229542041248083615827684535081662733760241781523891403642349391627224803191445916417299854165040109137597474886749562614277380868395957574097714574377292180192121379877197318285985399631276664946856451222906317253732325179385318455843893985323612401753564700983071443329690353279909078499207529311672314256834353533513678736298958026792574667061763931572890977881552972226296682597059213161380930728429351494610418571115596948556554521557477132344709474220607097002969537761811359927123305915507773934014659292552489588236768899368610706361016706270826330016878821191482138771825880506077029915762046481007217359787322718622874987693738998761437138635762717346380589781890386496020735398570118899728815533381782120391714925880413936623410565548430222914758791384564415387528835570783108444951302237779652299755012828713507328481084113553658571462453719975181009963529584233688457518771427990250888674532695385212443520235751451913289864887905967135364575918157866641153222646988780982107054898454778557604720317506734952663814598564515320454202722627901969188326653401819740784675950396227196879916227711160364188051023578286286031748917887025138928011521837542959375796509314772517443893112600917087330252538728387322969048369201971586517193738835652352252569293571502045458602447017282972639401719695510149049262601145458910524364721275248822874491334142604338676954803485739755124982785295540875556353019684133911512677454064969838531516440775213584491439075134834016198957006981856690711896736337618384857310688525302947202179995592194217952255900810429880584482407600684392064942733751115333144892212834581056071651268974599339104001170759418035221156072501038500095044064024767647711810147173149406984286769797303522485745292484270246511788764998792205099079427688450593650811981919210096893071431741187531592755092000385818198432537268138259907534095757917726420844748236439849495238060677275945611944864061572622924973216180556177230028668154149302342257525817185339222146975300486996324455558042694150718268571044245411185458922969857387910294066552356998064236418180214800381193183095031251540302073203622256631850609900530165245753939491992430847329898492880759604253992921441739522137711325677729882967499786562326067200685891128986271796550987273525959671034040025379893617576112345890305328605182061880788738152075337076429733952850935169328501158728723799088305275923205150361218232603783575222383807256571315335775144826892703672149577489258921084128258478644970541233638527965970374026528712316710400440049366730343651644507498337443515187690559717101206076306384378696828217417925944215829692204825847623515231269679251799897628429133947998426436920324846486548718671514593588718416568251682372663590251364649220077564433295574146979269689884779020177840279434403279752306766190780959723793382546866794180033209700435144610545224085397804922239009623387632206793250012365918083398003451940034324852510049427495616873439114653737153154474281609897620786586405894939359681227811018225403495999121641595829868626437722778605887561797704370178447312558321138278162264201983312569527111012013658944989887623299154994274331679503077203303529805689750911086800937387423306588298463847221728696642601540999463943634539981660572887991536617640324979605526307943185898114314016168353529318277212606813151326298433258525576053112926262189245081150420128431980876307535494422985908129085274696169254334938777131442334129510120708678953825437334656496459294796242917521007303980575549634225516346889932245341770185359341998867718668023945624973961718911129447407218821614316410217212599068697420165026020464553063718496012579461324230925506566973698460662773860399808110176451709615956468916496874345363532051006362162788779755803157673645572228693236034438723081508917346663580111260519301661584137110753865923075119022505200192248331366794783722761196617636343049115173091375907012412108444085103041175744530299710609870488763447521022752797736957882421738939872316379561429184273231090188741205756246365716302162557286894495586464137640383042168138696946865437265350702258278205126530200128948262770434355349234732657150618812035325188177540764798948025260716598596010819636103929478699777541127994636298268580988942199864397403714570733285679207352862680548583755648934831189201805825708046872640609419769914566737833622685079402213865420131638987840668768885180219524927655425650723414173939406241261975768831516227440716125334994035690262292426629330351226958281879170795986014585013322380855790001982489407710252375756952291427411728979636265823619394455517403126203817654440667619453459452320640708038808622535323010874045274338347904217318019859714769337263550383977678506717422393914147682326337536132152078019381814538530710799162902921579938989869379954648679939303434851313139065802221227361620278326458240019699521347411327379561742525430586777397687549582165601177279503181715467785211208868920704161790849542279486311487815135694067696821156097684001461449942959822624804472337691182976575877852746826859856419437649157227297312718254845108365742445982389156412072306126086232269839875099635926050876699657753656911349732276768365316830257703435872022134649497101688454011447305866279199237560245123965336812549053471214050930432162178215612524956002973882059251102395257673308739404657659632060403978702180474557956140935036961266113537861817941243736826504568562037337995387773793230278776912883974575470733165629939912851304837407534694288323292318115420206387392848582405247248094728679132327733093969234952239429607762102856226493096700491285665656761231051351391825817961637863891206953409649149087228486602219224074033644021514596529464086365027569912816850987618590788045820860462339242257437238884245610382346828359455793744640906143691732784872194339088666367416402839959453753518160723815211856944944495615737346100382770883095521002867439209441470491320524232009607493229161551933917540362460459457560533904455026588759552411689625533584828907349633852264489919972715525858647364819101783894872550643244949836494006527113218740692739032016787257575089437130219917323857679697995137589426391443546325558214666203577885061767424045758650333138488204744128508163166823459138608693392653292057375560309365705490833141962186163018755314797599194745550385048967823693643131379240178061232280151890303160577721978292309266109724110558063500084930047722606301018296617434266614577825639822459665195748225768416842245433170888032506088445264562243425970777303469555532994932087445510334900196573823079893803750762499411873150774478294729542778300266159565793535491413368821844065035679009588733755677647018916458360432386924522860461161166902293577669877624030590138708638766949411819222270076366432388063330926814841888688544676677704415186749156630724490825886552266922688382672296648560926236820748885608967550264782315667171380820642754724587793772597354496829792950642256753302501339487613792245370036774988314536140829551510885369344106160813438325231024216414055405940188684396530237460558194965315652666267308762435815176800026769555478971913090006141766994992161504815527258605579746446883114640597229821002511157765640199120681851919284270222344734991928564324884856750589508830274252802151146883544322256249388513386678137121310953684818657539263353750692137207881639129950569240356625368702136422918104932955796448429784387721977189102826256753108979353513918353136935249339174759207758990001463947187011655920822640153600087286845559874417186641597005285136050734155551357826691671781063945587709245689233862734994706591542747205093178777470013698342305529281803997832039838377167226244308069810604623396658704225383822114410462663711581178651667490576417307098653600473242088065169786439127051783258954015322063832584850667697178775903958488386381153020792740340372992513025436675469738408612017951049432058454456711819588309055672422242485355017631772600678724976604651691394163391061488773528516460272618331234351623128081759696961489898478057665493399130456463905135059464522760241805390124283084841822335265516394061481115417353722527182102181892589917268900520971371294152789888432036604096048281241132982322075122738549897678631247283755931624239904293550843000266441654528816124434720432667359950887841434943137390424277805220761458457183361385404523612285451893595388743798455456737284335743820098259527183179093339605600415876890836853552213275373802613657452194485642319238223226553759974032851656280484938161117911509296386095187940529036093955688716722800198775977577536146562537477030889317542120541664735480185354896482752453823750529182644461774284032030911918787887293712838716011594334590914583694082242302525327812763371554756931994648074864163575741995885889073980884285788399019459949038003431929475679073132798207096263422587933168822119385695393547006970754893241340695224870150908196711714010674122413978168603554638845869293477636087263442158664083483880940646755531962177136842729613344518543038060803151147912835472814252848054326920772010385643048382438936330727807007926288318113453292684767990697083396191149566387300442097303017719996214374878916513205144363502114461329317241246572680742513218982161923037994815258881925927845019208138970151197044268042491751237169815088289697417031608521371336864053071164488486315265846456988505388959245251364378702692091960111364119995718685509084898672364625935975015454634243360673573421196371604578233333599671159951175181655819260527251599072872627818136941591945514870901098138819481848440900277832146641425870855927276792382576449456477715938065853403712061543616077650614591575298443576174260655630094325867575442542835727049240352151171379413840386661216080993361110365359973430051889458150037353399837031406383418625021959513895029150244839714673687171736212236433113065427034812205128177602336499783568791025669790911318102113469960423797657339400424922802344238923649143511835486406442013893873564268264115519759082432855783668025579026482044390603463662968527973620699692392815793146568038179976458755010809412924431630115041305140349699906201891811035315909589451814762670160643030486704135798280977170147806895842475884307658195649783285370984199782070560937938922895407209195231881254447657444650226325309325253472562757825451628852922124672044341800346614790013730336646777937614336700746369294819165710983745679389515070969376283534499298903005082470369410101668556127262649625493124673363432527008609421811085833729549726480712226985662298338725689263006581862900975138130262882125687898272928920757945112036634678834091242807492190121742778295330483084620581779160339360042339500247962897956161351783997652395536035990336540109997332735555206991881261364684142467988092853691795897318431382786327012752326061485568354628829164237567032009977695116234509417638026103703520929157366588777693637581589198832307566213239093582966578524780611345424947895204815183969580892778573604907330386395690721790811481349857974098617969562752639970158328952507121773243979206110020341948093574529583516020432297298986728889600151281103055463714338064478567523249270629164433465961825536934297253144013284325608052970275168299941954868413684273047775909181419411580663717410010614395825041630257983051057727766869371253431914286200195198418204358319114693899528681393598139320257843931557188918580412791860793013988764654573939874783581056684793102402459881503335474619217840159506727554114503028976828929409972341508720541215819499996407786413955907751678851323712071591413695909580954075333644397659989037817353753393275703291566241763459443763162919960641471546785841403784396592669857853448976707079611144073703827244859480284564351189941758233330330740059697773177152541264963590904476299977586213976347998206045560468576808794845636060265707610672553975410232828429634384929851205141584822417283453894368613023034499813657531734196789945208042379440568120686842392049449832569637261156619220677410670539168766581990818666944229916645770085437711443791304084244855333302002325105531716301703556041843742528976467454570596519848871651460832282821490517681583010385344596136888127380583034798029141992249752265001673473952428292373307348428268665782570835976351387654821629585227291793387735689513826264796227827280145413642179175178161987905627337078369112144965403261071985064032222464891849592511102882520868459470054811827469968587001261497086675721438848181787719540038174045860632608179822898172953722626506136775979025771648422841880163173604533624954813900917702493754989081762307772972524695022945913750837087011150515165019796648262736804984522312490133036461481360918158267283087665344370450126099697058616414072964534492070695595302110013801377731329637194718835572247407509588167563849188750858456226271533802980929096528306552448011276993545156297740728808739187525511133282004966304337121179939568662644174511984324499363656313305794764456361773076889885297165070800180509900642245769061422076127364226852812508699666744858984956186431551120917956534790194322430719392668311213326363408107013585292013315085133149837985415960581901987881389702893766818328078309683637033810435784444631032088602021475919317160429417141829569929711025759300256862138651205570329815134362672751940699062823620586986876582757305089886907789606314889067534429072872082088707695736461622041904892661690680118372225953735001291502762422767868304691192938040901144502143188170017169620854498248596168165871850935603282381970448708041982184141108795178996985604873625273919820990447443019584413629976587228202670643604512587945123981080277311922981240663941174979139892252740438940068209851445408249696576744790791405694942869355198764963797232666613786741053139394460347021327712739018153292560955920237620571499773232524379553427310847138257679636399393612881879316286601114815133436010706132209891865341948091442621981720556092246562481614634420501553683691831227831878926052248621568962265777102552982202539348583260955954605193467544812959634041754283676261598656958331684916270628011187014179494572051812652647076345818968914025854254708856962966089065298175226244763313959625274804196392588224792622854174010345474767944116791176929991046893482305738505867115319524020170594023416409841008092219697520457164159538359921508101455009576412800952467740684933969078145254166316162424567785143363648313257794132814555672878269120919137345271029157498832063376451903420213135874538164636182854222453696392368420122435576341868820866681395737752089998672692868229772511419065367967309593459794766813517898412860967984150546455562069560769174459372681750081389871036631958684840811561106859581613724032532086760263192250380948377771590310465441062413538731938552496611321209274177773093160353666133345031380678956915016450941129286348461143211878170489091573322889617080349305694525280724485508503918999708670266503373803582059212858599205903542179779430039753097895191135108624024759094747252509105006622511340414382101694027999871190836652805315668989245682230519689292021977132638881871949410110725319134843343776230242975605618743056828107385604006813543906376559867313026646851529235097339518271873828812669113955385646404788660477038448264341412361439548229704993870970784261787929162878586927659504559357892183397071995563662750729989520245476313359040043094961245507210396107902799562345304880490142447665607935226150022436969609119627979909422973259317462903435980413108215783759814077061022418144290895001233683454114333245392917850202234353574203042420554871852537729173283004666924099483607634369872230030303764476107754337196314573216585632094126196620157194019002725108284184915515091558198890705572301205478639491221931788011277178362018633009671075565907190382271004346441980589680025216058358339086877784907286336799326966565935246344419211714958864358749920773115237119117836626415813869045196314207807503722710695366777855968777094330303814323423699095583473221746392808207477116821029826858755871684240091371925921682142965377638872647992879576966982999830525759197707075189651805768036484120133528258441468704359483371427491850111484133651366955959246688373729462062080288737223875620376489710786960864232309189482529551530675309584065903340971606146734632239606712137820321571916965977611624516372035349665667668397020786941490011110311007792486992877004837288532351507861241771609664344446579603447396600234679938895581873016338876912992657523938159900473688186816383484215006537605926800008623693774334337219305321500314162015685246167152348467860520285048164039614193439143366086100342915723776673450513371528181918924681157243073414588918342943054280687879818851334003611095880910840296691441542803426960127180932413147986622816199466731423720710711783387740802741818328011282687085291515338340620447769123113446014493462017089207661589744638366463702696570308118149201016055375701775673001602973440795262734541031127259987381118097470924578390460212917374897251092481896348284382120045169981968089157333812507855698729916478192887639784279747819150653448806966090882246587984057946903134893916382980667745141892236128639720670340039740963996195737908665809214150963224914313145435726729356572140715040884886261924074576198199440229825929886140151854055060459083921819524521641262790420227705604491541711612581974575522893706349365732275310459167132419852741663760610185387449283321528620039918179593631615950289466165477869889416465453120433177873751614097601561061403236371302049290075263560560066484256210359739918981001767011697839739482143885777788991311841631383643223422287557126200054554899660532935706503366822771347643522260810116351414622633722748648481252583128162183162709931196013260228776574528629682005989650193812686577039554662632813416657654253392334066288241254127529680650841745474495861031252104446854975511980063280286574200057001992112579425283086984184042947757077780698638930112718017160734927106559811452363058699699327849594458833171202827447166054347488691422914675892459615265866203742999165082409644952634091534271664678713021053051973860981821159041945100552635844404459460448647934142661629234807601498212383289729587294268912669843771539636762701759750965448359207475784911741010675730943843117849082775113348251578770582059771706581488690867298007312822039988903546495178353093037776835863370543697695210174054076868590762990558914954160967555737396328067703326325492231679412586333218438432844695782435509793891028871969080852685524177760459847474992275952080793418982990710202943565811483914939879927437165287115424182665999185155104172398172987345548650849545743631614779161377569678015562258811454127652397720327311994238328680883928644942890363123924907771670608822396045220017188161200134544023095697103173444412039032972755890357254493444703391417078366011521906790607398283071637069873348363546289419336348640516027334481300036209285686375686288648095787884992597662874654973394712116196100420617522323061020510397293403036125543209658562022118114195031753407130760402246253830491932705180822710437920896638844294732530205122308824348510675576556744926252606368602711377527447451452428293044729552375839347346372007454643416991470506000131577428119640982498926813921198101434094515545134576045702628421467203898713023223787720879148837851211267875768843661679919580216302548729081821051762721424562405041498056119233267292826318381573713933140489427165984666602203179472472557564652308461577273619058973461872930460561652721871258581375592755489234078207169854974776511475327011593758626271035658480193709552513852784814903535251910864193735120304764305963681480241944879762257055087063274042738012596789418915031559279453223327420085520778895544732396601389658927332352402567794301021951757351445788062880988577646361340012762238602840537412118153640175698191073127621961047579751654987339734443119770597320022942909326994714595593117413079326628996706183239521128046878475623644375717350003527457996070570054235986936772631481964021679375856481791663841900251604243330118867232666447165988122571103301013507386565349252057685724147331533241827850377841755408686782260275890409905952370556158594344282720929992132971246240374964596253695502982360027297308641776219374810683069461967503650283220314382684613517598571019808173451819233701115300399820740373859040019022391288399186136183856607876586105518751648907298404586938444744998597575172480663319319581642468129260956271352461258358604893769834823851388911971033408910464072101592516732127546696907336551880718407994536230785807847298299305617477235407384702379511356470611031116746334780338761535649278196938160621821007886247544887008724552704327362679745769024104940238573141212137399183175228792579027223537422802404010206861150080347905070712828250850084016747936668614013698672630283577270999020223754934190823247737643645085575060370801844874495345731567531561451050458430753331093698657714022464373729692613161461870407688343842787013072757503397440697938720591513170401023074948036423759317970945700485407414166375504867447888471034386129066814608636745164156229849448321164822011635524697461429330590233889690448937619803275497393239475232345989862218050083185955311216132184500049648370545911988656679688410135403583609561344251799074853474894216286706432354033000722328893558140190465307481794040903744086359345334128872777256276454520968112039873059788610182007472780740445557520876098026369387125728971481966928448456218884122586738862312370683712778909588651332008886489489905820056613672863480347754472706559692869715461881097634661318659508897977918104599161656174466686271650488166841333966928914118328189392928067338681866438911062897451869679123940272003072288132359652148842107385379680537151468883491806700316779586878648996900898611408025212637182671735231955844072379991468048660836565748646273343726429103655244456317807908345779531377699476954436124724406003023158707251577727683996902242269511620320515151189400083145514879136157499572880480483328160340702113042191479706902871123837556926229291876706666148819085217177340385357684816484133574238559253226079017870639953647499130684332893517301674303522980572572579140874481838301978669819775225395293466770541198870967223630334209695326387876237109230241138552277435796565788123553880629495485577829926673833947624781073050498270222094527956733203354110856529719373135984691678913280507839211095789077118826219611447899504342910400865607946802485878863489415971225342076629132854821549137396749420124063909891412141455264106580916489336995896377118410312934292658294794276389930316729076629046002132280486865592302061637903737106038961526247855513710660946822898961545224654245342853967801796983212536763625616551185027816965584878945067826485260494315779160716974210135586670261591591997777698892678063265653351080682386787913821006221311509609386867911880292050503083754851039035916789758370518617579311260452844877241787319576523459747065344767665885616742527996514275098573411872702349447417466220810097229841554859888987780413740051078027461526039890465537500651854150682326342403125918828644652420354836248585439109075479378466975796514560265559819695114632878207477406667436798378688539780430528903566684003464166491850919184142544261106679826284616619486886082109661570401276562107117769222435686587447298982270120642800839703459317708451950754738518564864587840633459873971048544731333371643836618357558143086535827354312828807604820846104377277688515745461090265078426315452348671805590369351359053578028621607699559802592519090506106964096711766012785102984114232519600377547499304865178095082286101567374982575356723585649224605435925137518373413770837419042372814521383481176277590007821978474471029939572809056649672308329782020714965779395350482989279241948680955664027795238418377584670007715080056524956403353605248846407704053389726173826592420077779651977286629885547945591220518633001980586616277865734836313512507482763829105565010832209210017232702649467086333507699858927948258248048274462704833715316798763208716198623118972399231417390369409294557267640040018013418973243374669674756712683787076065110819370527099741262577875878635031118097320001460307921299271665140324618644370768449099416623298358935283902029908526874416396121913828844904966031955599492818866154680229475735541232873508327647801518578613596196565309631492241138048880445476469507446854486586687950117141615598816313928365915140024813819625768185417925079609503050491692100499843654904338653076231406941098183650408747664761230613346021686545375225838082740918588684245408815758494426624907664975125568187289044375495382321103606782625886306894382060404259491642356107141972615481744519609639027529038862672831243202638959241021607003398107771970263577838631691331034868065238510162559458233229938980845919962282849783620219826554267102207385558620825971041144841304118505620992029806704109928272184041936834897952101485585670122080687979361197677123950080249665189714522145244709767132584493038139366110188224447672906019083510001650237957138694924405149007424643757265503819375434281307092953789322222733098650458861085092331923708110597204107241772908141699984711729720637336384637557128506408888247042931613586915705669749107324681360628391163253325042727784438439438460686869870389794605056326758423464193436849815562557394971027321308653765183642472532802658082477577717682556732651424681226769073216592642727894933513357632831381901666309260626415515725590532763608410232568540248795470859773772109653019530691629615176417994331922404772716929387806037645514905171898785762248080371396598291142846557088413540564584324089791175724191200317281329090121758087387523808978932445856113596716107579017571607246923530878446213885097063951197646452873427503526724503606081449735431566922118539824531972333990351037829598381784787135668547214010191737267898830622981589362900942306987232954124683325662732692220462115699098393542461986299322979240265658868857959393122281833235484350227209449640250059390811449390460771703656241637316656827026211423797592915423717411746335626550432236935870392245963708557351518689372382659102386189267215524009309669517831358974897039410738695700229785210502531108519175463474605046114953082204375619665663457462655626244483685940397139562019016205577390582262196111838517847367779004747666086808845340835391767190932331080474141108921202177536378173789587255403183124484812791206866620184620775890533993621971705280530234584950197386242271170593630679870767552499871723458937866780526271513340951004103955821120068442751586467203787564055706383800031573578715401015134822302154371609766332566514924763842651672213667689072796086419209526285284106773193130301044031327430221301395789515269419428747775418814106063053588028420246018750133192654514071232230547613569034962757034828479513021537969791179576452375899777534366370405108616631013545973358937632790787571028018307389988319380097351654802545971850031431208190757904064503932300116972686808297442991328082914082681385262081565458319155289180224166948286325985675212229813914246116339801927800796821585610456407118843094095153371841517016290574824807424862235918837146894716533742513593487539674708596676989777761759146124195917027177065814405120415118506786866307486654064293715837549853703659700472763389679612948412322786631573760907395271322412213795918393683227845250640038526215041374017109867652468718275938858389577775067880948586244506647219604384679777467477512045107274408543363478303209876087660675132695793894119470959926852795313900435193959427447102176023234461345948432943229738570996671471403242989905569269775685512228224085883145695450936514108735060121999047524114162136373162727905463207242145166239769197004676641205748338095764590967417841167056844003600686286356185486253172126059966897483329771630249446026100509413899497479070305307307948346604683838557812849495804154383836729451895996966171478893768391451139084108422141478420451833997264802848363301129414499840588520008429099320261185815697363415415729316606604517687274611017672191708291096612320354499455044634151389486625586488825533139646721376271348840200958220929990206526474345942360383596438020397352777796812741481618882723561343166365205574155214828398889059830476901251882433382039327867772954566888022398882991242398718045492133213381057516812613416719263948917028904179721541701211846968401226192145874660985019090532555269451118932756000560817414406025386395307435179700981649074981377561017655834796339477062222093137727626853201836377880323255499122910220112168542436706280160376157391483179738375327062586244512490833611465491923327217165774725879824107902180930471739642092391673139400778628286618282958208118518324577758080119358641198318234713657756741438911540606883044099863225358633750883730070724734673015654839317995943476534762903008619032167134355502459810427579642365435775986698461745354067067084756588247255935832967055504120909723144244767158205985008317496649276638471383399874200274129356021957555693163986813421980417799995203494163282663637581079363659707475102331176971352684118681299807023351804246763553385665643619842259930646057572560739328350324290764874633426110651063894816931662206640829165808992607105966004649267188692587269617121061597004029805766213931856120192989520634707011221753219480246486405518335703380485903968181538649052704444844609974611357371343269241134331932726395619275587163464694556321309728258569883644696363274375897269020473527629097453473817339415001703933718633671117437181725072343430133707736932759260845806634210065822659980528738676914328982869362726503002971568263348466130028366559784110438808656206064778145579508276798756574900426803125815438238421170952700522166173514413231949729298816217931612088003577519387683202845818546092177311943711168012275694458817227059939745334985977482103891665287244044733161030010071521481778230624750664628662399530271265733267354078094278587302954076266590093171263842856468233342556081124553420560807817286233469766288337997673450336353273455787393588967713436921649584698898187396683030109603802116037311541942218744614528507537126477996316078013770990507045010399223414625128573090731720598558634415179286044163925008464444501854169134072301278040317887559786108825814215211993258417401767602447884652149310834097528478155017839078391936874864957580926799303326611322130592953948666470469016007963014124779260877710089744302004757964757289343928180971994214719036099705221415876422938907673651781065172489370084799506376945467580085193551185241960621720618968815273669057941167018567218591601897466164995141269491688067379914076705237112320334626932305470265336312531835070263999133562264509185345842273787009901776399732069690884122237927350365194180324357998041013409833753688932599117209457938863066381011243661446386330199232156377234294103165062011409953785999957384862720981402236772104126359009568461253850678970269507474102928073354983805182264617563204255470932482517604468148052302121127134462927014368884023724993391712941816623724287053225279469971999052844744519908697528312011398793012401497522581808832845058861722278863325759652186908043148252936903435695337216517040194818621561857779138375495795989577894690804934174385168075819973670590249128312496129583797623782840060043983732253173547167284431610442479578735812178019083282766309371920110723948190844798441785395813560179386810530166113780341954411112194326329173293332525116931809730029611811276331788624912174176831133475865806299580429316644905369827325819798221923025908441213931399632085810574620537794695882650415667393232983349683523546824545407856584807477854198523238562692564639318750126158994108025142077745255351063685619070579393438849801085838791180695029997033045275672279927823381906618904067933568301782459177794982184260593319472961718835434879176455221525345309750856044184345548174190171182465069911997847745926225685592093714888997403481276803454052334103376694708631300321175121903761694486072807828963652477574041744117662584998132664330774571814286457436947895115925425123380615767420744386816557718992891786086320125218757145699350249017775353519229843281293221731858532966547909883254330287181436348179802357071266669578359140366341416642804809602464699115761937310668228288876376458043668615842672580810279687527457070211321787810410870742186437039179229503780412972510236019061292480893069049059370139925279418587042155250196065396670898765654812568748986288259746985812373679687993073618957615431271925679969228378618728028996345163057563815207844736871411305776324124478185282922432062025272847349796067004218145208671099578154964827817485709575073784772763867943268743876997385393219810982427943932834723960915865037651060454665202852742652380040445480054200463157692529133014189659829361684406586241614108554368763140429499719351272160829647321805460615731867046086229259775562120169591270863901157555953264063988116277205848900659077697000921071783976154981521110976495077170428894533197878186002924316552277514685346640823915188656958199403620180421141486991408880634404649024123296327546841938140474487769200829846505952299099017896061258893419534579105426120330975823606893874101654656224128999826526887727516879876994809148455978532350404173553519467619943368170749940102671616307516140928475528450481198529528278527926105621655108602938092163300236191450784155644188914682741716515170726446323115234982200443649463660694752242420780739785098479650156964694971848840565259332073487515795899160456552974674318216393364655117138336683726551710601976719283863841450854367582237600000805013544051270840353363541058332042132039005826120668571962911179641970458555561271030618460577705637201087915039392780199347305512029042020432267887135744326090288320024370793200660374583584139384561368583746988977781882410174739192336622948034989533396051272830982319283903027873318408636697295062660010269584615496247907667838591331497215047645308988213928057069976221428625571588023916958310669984302321960881024272633282152318674017605421812529776828175995797775604011750954976445354463832391478632472889255863455765609141762942186185498935588796080734477802591011005048086685985292480121566157412859287763809067645954559387499226394264194727583877440586677510332354173512571016465773380472380912052564717918910999635966721058513016829701062809974001833340923174865650153018829453194841423807658290528791289566369447775909729093457149197785992837167978447828223650458966971130903606650336662689552083636408570779096774311053977697757732489652010664289600226341810240382235510009334201223238865175312789682544373648694521631973434822543850233847715231700391082722119213981910985105479971616989951297098162046101186034589640522866050414856066054252658867499231189630954622308451174883003755894214779865951839879137967079895278032064701414918709984526975467041514593182835612104128312537822571666878227114820830117626952448809969329053238333628861413387700651828549053847586052694190893442362708965142590711088149028946825339168332933883503188532682235502825374122681625004167661969213930395177413503013701344589350605964063913592843324137707355125610450316695777638152094346229057376282318278529556057711030701712123361642179091578158318204168874978225894386372612631589679988288098926620613530766731061474607077482407056947376625989070779202831440632720403400580274008059182019775078670108043277447176484362119691277198213671853359832660151273540586333042854440501497905287112313674751819703716870519835335462626373598072346290645538064603918625363425448567747827532715302392689822600692267489565222214115927115555787267195194972004333220938251288379613768597527729763364359378185483741368754695964648224533890705397527592893745338687308420815230150021501070144172794417713144445809104766098034922768558436861153238561573142689266553926262828618254441201410269906911967301067165214670289291893084960269879340302528945247806132937558395284337962845362894760085621382512485042013953826741014597531396526226434730700597618061931505553064986317092461791070746740566657445086753925385614894227507698882323419095025318977056167930208533443930879062043185323270211927540983477082407053033046583907665702759327913776689807822370454045434657497998148279137581818084832834421232017262470629725997817324575700173602298033028487031097653200023726276442491554698216902113459607919603635797815868786155565792267329411358469604313038368252001984766251388907847721783682065555932279925568070670371509689961681918384052953370840348716813506030072845779294811874182360201040208174004273548346288735737110675722392460283583375119957022708632637845441543861679799833072488053344322840332707274674238515613508244097362632875930113516698079188399068474617386414419339153307492776598178377878315398409162408137359537672920343990333199476133908629603966311328974980029681414710171998674710723825037282282560774732451101784403410668646422237042469485183280177763743599406584343267097577862897073351921107761297319093891319539702799470785369983577312065007345923676592783296394090569719470291494678935427750152508195114627267497999358237667133959201394844237634844308710063029640693967840164169364545503140217470966677022931807560273260775837500336956162115110195000217957320228586024576013499462326353356752126210518409306304782893369061522689664072292232675297657522041368933217280703680181438425447395272576745045942470341349200475539178329803057456756173085569497677293425877972969136927780302612677815731555056106491872715603427731417080532397313767639817112504140198998484336714186029194925515672733562295793236703541435775598833899057524851401769244128171801110185620127950935691616659221071078956241486056768283689410385830430886873970195536593819003124945249425133328200349640957097993769317836056711216326881581400366908528672148776196584557123965628089743902485089882282953821540423068544491145050607088169943818817116070015283173562176431225009400183913909659548589672457164003889619123458694273024769492687716506337158732416958522150265409722409732968144913373674921194526849918893270839608875716010615550108841232366085085634939484984339717691595346698350702330629270175724691002276047303731361826793740774025106778382756224350141592463391930665306198898955218271322399563498069377298552733115466376837759655795308531765841593634702764660061386802191717702559282150873236987083994830191071360327929333282000150953003074457753299475353601013359063110956394479612800585780775290432136283717647206066751545040309129265599529599488024997596833438175038197838853184142312286972840713283103911449988936303512746622234550715672604616162328479330334525886434805727437090583078112898892127463361034252789214075319908876493041408770084293548662262676084109773959769093513334375207981735276095116125685441458409198124863456268371659553717173940130367204976527224946724735588012021930647701178267693441004409347152461109417733812989262448908597517518231119333585676939846618316776681814010574713759742398314796986398307638868941671235857006860586941265003503762990534303294325113044190650630557561815699506026257028698989094826765906213857348208541205034690407673758076320094637633837624284079356929629400884846161821629980252766907605547244431864996832014933820125244035847548192829599013488561071028154349464364676473194964710241456288695959792931001478142534900234997331764038252993664343811116580893254382791847180502193513772332062224751168280556140883016106282459753396660186798828558998780461228847475229453824482786756713331924706139051984529117754355028421572980895100483887824295360030987651749957090525095321361058862474222968605655932458283591115631309466519613731851336560866190636669627009113839443619805035306722971141602157892502338012834830443484480896668200863029651927428740292937439260589748181609159461805593457968326466155571976768603410627955879513456608659803198793334781667671775753102340357245452415517578125118679987882811637104048255880689848426366409624042646349829485255697639814281007902737406091873231890852557787541802894289907740318803584296749101544581854227185080842237758776865905071310803784579082169384668177766062291742557588650366746358299659648094826958625095512689345107023192827018473817049872814037867456964071755246377224084283467987588768957596060449216900296011848736502146863776438581967579701728317739939737595392046352320313033741393501796763558199462589862012308800117465798803838684445932818689243261212288942211745079402729688287701593613641827063575440458479223759415533081732837979044490776544909254882606609691266064366875352872185904270957253291163968397628805283855346593306441029306034049430717432819395954260411702705626952057223386807682336771050660098901143626329752731066992583907001167930266596415858008083571179490096163033140092202994571590489464512292053997838363561276666041011009595039162432678647704743252603961989410363732444677799985613964395789525701879609372401644824163645269796001841098653172055940497238165943748802964932863332439785306451962640217077832635528634831178025079827077607916555841949657335755983688921396785965771303898911671345646956598060235694420283042766782384522283848589435570112430224079017619905824150881231886519322553832029219686595026067910347630682105263468392182630140947157649136192360543258380789353252904081205716978530709198390822007353985558455206097626170188409122571276726655281462950848123689628231851303664329033686869087505862114054908391222256119763133511945624875693635535887298053044519609132577516927438699747312583458544400134368005314598407565100814925401987297169567177754391087910169906875376561825736735916768638474563719897736781996483416227484350047974381560061656527004408531368111668391613260691427975696623764099152582480815678423768084815445072344546858891922070354999837232140839674847303875386618473271002247838821445447977930420802643210143940381728882447117804523147950563601667777054093093147929174961405793603953104610339275321655825776428082353526203421065396629476277986447348311579294254622964925453605635919521203642173766639580717532531154790155200406149185245604343240605349888713293098934964500105187812795847548911373769304364620832693314737280081664689060979353650396701299135249474647191388444301384582890401341492361533093511591819851236414331846174447847964139798640143414341566713967080856251085254035049884864386811356224515025882892165069882730372580417770485219683353465646205113323221627560430912226643003926810612938252677838946375249922787861986820274898438220693639391771429335323467336581569156759962128260156747684980289214058191384286769897424358181839978331421056444880788487871759964215182108651996224768825009514597904104565009228560268784275063478344771904188827069818573369096305148782958081551937514180824378446619667445783803156144028065794457224805288183931653726143816141950352404821204604236039000303883285588920489320185088529980420920789947942587989460091990464593723815639617375076043348353152574334892039842671471617759880951571350384987144465446023214932609490473598130361278874174403907640809448633562813465152054754032209436676521219775795507958473312430636991532553379368748309874730255808783749723755755455647754306705379082564598564094152315216197263008451305843496552948707587936576434411832389564047022964239616847181450400037706943305567408144093455362577868028413441783929285806819616155781205153641251647376885330905953756608214503642758029456052323854774433778384788120486925757808629279195495609788843936356209099154701204200321898134098945855607480664298726839104697156058373671048309336725209232363120105672452904962212195901290544293090153111079857268655733681511421489492774110656602546023639947920997195476911604266354455568968114033671270915552108654729570146219773084042901015958133738320571688281176556802713497367657702996303390328921836038933691846288085071239792970247684179970933856203473718334651772708764451908814600407875781780865049404061606641453645673104992620676812379670375371883201818937653390618964988526664923554814463358538260590317177035021289800063542351139809192538551327982348226986881659389545884967132280412526117098075979912225697156173841850041956479329684190698671560321914269663397076164507914981288505265101057736470204298576707591238809007949936755057871192552143527641957581148685916243218508421628528917717017040610998155100507563438788079934971531953131574266582586053967809239479285789734782124885523047033668972228839400183162732805374156378343414425397667774586393007888538991844930260647637639088383964153850182004578264237836309645742861654818442479737171744660618989034479720109421422404515452487921157090839344814904474218737322796254117774103068626033479847398593058251514184741074007715098993850046369005524469210213387488547193411851436312379446055342559012705875970624947221648974353946854108641923923649912298522623335085467223248527864765150893646803772344133232704068615630496765715888984348061901390387144137697008440435550475109772211346367191729152889023298942210141773015470372776106943570823616324535694686844840847335818130478542790787046585936148209001659513585929321552796406028932023935877626528974553035036831096875989832903257940306956936324083053766370459661809658671771025616759186509092384124741809522627265149431494372410677483144229363864025437760559530052590599903212066906110691707791615822082185793469553357045122373353208313137925469576586131961915753947311651330560882339222361323148871294196678239803813424056989318007936506072475385109044283897459939079182927957830371070807430099556628637805443264482904440233496141761407274054861928661292564870785444144040517595065238229090879750224035430726070833683051617199230490739271409478792945906690785519844513068662580352898061753255497947930736630979895068555913794263429278091029421430835717614427114878218922570937397012636773910694361421120332741719738161958744906050591851024044750083602144781029114326779109056744666462481233741321685105417443960331499124763581138915071516964456785212050363875615987358899035165972955363458366263727614619559957324389517314226033004580770880426802440413768569919478591435899303979478412753826143484310224059304180817316124042851884321232942892842808086271068914527466336629283810862451593784508596343599034450075432819475283940414125763267786618288243868230962313636249033231657605386677014967165840697738244008442568538600793829971759510880008761575541284199597416461916364447919418866303299239416619138401744863636876544663400874063641021681392621244709617663474563901604797683834825318664901979772601807072854946641607046587140543345638614501357213037612448261700867608213484537104211101154350956458534779249264543935455434539088351689081724583379944608305126117138002604292419684127618686283604842193156228993540634072908945280450728262896234905779907972956297323603833924224519811520447721623532990809547612050829050645713200339735529181456766612879932868413067906720688183084306132258518480191454529917304550514530891468819782606553549227874150659234590907077282691882861643840521611410737145280148577294860888697327102900570482446390815926876270343463191090973763429546936601951778223363338826179578126496881236435245678581308981384230207931495451791378926852254762220207524573100460061557408934757039649432814363302527947859751277379483663623047128059771867114165463320331555428141374439709149817533038760870285035910003564472296195760912915975627916344928755727496190943534266373836879454511472729268173291459855824659898189684355710920441276909884015482173494955894629126605493742950614281902599673132285577788058012482728651970182261769749623230463709346581298585192033125894582544786312480604014994758755432763625863439905398037076352208137604914253028610751548455589871410491016125802644746507294165246881690307595740085446941772508736536269757565308149103686191378491784305802446256622220462059819180965870359629098985896756823483219632667840495255672455200714791809702571135970464624972075848397731806256703086174560927235778218482786741303449250762864460096415943870599401020245101111560408920432674909440353973695162906018345250356884513996087412146167282697822928416703178022462065190754549064357847687794248758988300025731694044267009907623710597057990202827488717116655566796936622036467323650031203519179580606067412759003602702476692845906050831362482670542382515594297609019322769987148358687943999192116166481620061904903424592570106656756016061436466263237482978282097501271124147300237729924480057717343988552737120593955200487192684333147163279990134368044534022493867432333960811018139309657438227864522461353535940375748513549154393970522256725743953748874823227292741551969443486697902089536515774886178436421717779644638928742545170091605840044374005246267947096363993708199314998646775990985846521594538155797152390274270374601377230574555960418830785581795331487816744256843919404870124158442853112064120253556476071377701325035366405028115215358978623367424904389726513894686748830363592569475094944601741798282979502831855634463738357268770380259953838739510909240478213232773917676627658986646592711880237570212068659660421350909007278832613480906025561402766879937817722615160529210851810554703079301497611870825312244929743082633311123553649949576279255202787128144272199052498013816687449718012360269769722306876022932752132181253985212409211343543147993794297470485423441129919303001713641759662280225973649519917416162075276384577069704287446412586620809496390044134328974053171198343733697928763417755748317230707116564934023020264909902812548060056183445832777667319543745350180776244769960866465096277737074139442201588599643817042649148352570037487391931321790070128625103370458105544590333224604830298315527403554629116661164234352933153985573521730163076881643900869627169360867294182188122686164481046836238222213141415148930468975907823533051574871921814264476241411148626944820905713396255242088337891459412976737346594712157969087135912399128132448851049854937691760476479105621405191607325918276019369840800007515411083606836590859353081630108799044873724975071719987404311980517476391097163668312717639932425175306425232112258317591130441389615908340926073498686391138151875401834998055951957542074699289826538595708333895318782796846605829536335541110492387912651266348814035397134509080943952823705980535561793752516715301680025231156410579580170035070051695176985670540531110798694292929302711264312357831962796482748394266106484952509006915809490714000898154291351128426432853292759256524861711997735649534018077779853667137941972982667280885027428932143877162088661472893817343370972227740581728105689715157842420749353564550068987827868579352117884829225128637438203269519747442446716528442997428690025314886900495102928538431474435045395276757867721752366446565549436920121282637292495861855855665924395341805657261042860643992184904993548701496294606804069937345377952293769064279513059474006425288723150106724619245033498058574109027152084486667193243804647477316098923416137911908759369098403763925333768362020591892298778831099621311258466421168720070590881778416431350757898252066745839058547176610924566034918942206851549748349879428559612846796905765848926458705407081849333414528094848765840846937886469348614186323342173453511488093601671442216756000442378118482770168078479058898996605895633246318498994433071898319075578591412022944877768327814047418245684282785364694421761190800902694898419461152493651590533125512076864841730845964822784006549983966482632389342181111073108673527431159887507410485955880478379364032035061599621853583151966177871535551442250510675910130522751634510132790290427099618724895491740125769173979429122264552183837239765464097452160465409168230561799877443975144064168916089849777343230565862886903815002079537408582653519746935677302081130573568670872912828563091448411536268507825463537126726448992600136749156259506793842351351556395384463932605359136584233954084224999184476558363812996934813438882819565387164433312927106690169248455481000540635319436919755408513510568356831437542625656033584635974626084482038661400159364598377917016952994739038580375824135213779408794265388202901464394402063211564878989743241793600115342681442696945981449640877309707139098051971327885286126381339056347660250761606759395047416040731108075201281364615858309118191008246451258117668641555064390751105222695574485359368295849405489648871527766719853022203623129760914056000818385882136069919774607248675628968673889841857562927327129454601451069713256768036296674434171092497492015334260990596820723059566781900393514275021501141480855917761225549076324379233052228227018786245020878387484803743469195827384007591171559236212009670519494369572189258382214025921495123211456660264422189843554879590048420952176853410482687257023395626212971186613629025609994539025079668524854016291915039816404804346126292715651695744002527786418773770662001244832776823582336157514845811846999412594546386224567242027780333614838742151354522636371578751157984241498670896109924951219470189694967218888429071573623953655297384950932310777513785688767016771887075186246198768010191520790287438504440386446870809752992775052599272561404775547628762725401710228522924457083953661199130502036367758209470012891162088456651059635719372596427559197722457027681359794318090214573670937076238221335852748805408574947971426260209540193936076255919991964919654995887829925686272114181711996528403008904028603510941011806607012369409276184073360705314717197428346663468804571405169630168757830098934703772355540112274480905036774780877290914528078386083405888981920586971557337986149822418319959339511300660928906840918993140012406809511492236692553199767405409094156944047614648708409651633380219884220650467175425029795769662755561617956299182830518189640387823408168561385999915008173661582588257660281360803197192269935714167328949152761914709443251327149000798224838336145545165179080336262295732395078862857265228171391519592704363206152762873900298208667617482148414595679343425841124008967967575283367407144327904133367247257699659860887295892713776584028617666518743283564453435486553750335872723500295787934230976629986557597170882228476772018940387596188824918361887498438558822473848866624180854902871939739345640941984082637212705929011967790011737853032834294712127537047784160048481739647766582393152907207597321319671864782717906116525757827310404335000675492381592827996081387314956919052731759891539857462913766002946617512640660041435673995934265414263086193703577509635334348762431461154037794505861475047053995360593299968476042497116587747970807973355332602796296134392464708312155772311053617534099319245899634539564577100365008108095492522130615490221858262565491815881755245239080570912483694122708222140835228479567006801071123135577124143649847854969142445352707429348364937802501964196784113910259331886368780492228461076241034503250536837015194070290023122724793351327899174665957182903550054959718196482070745574426219398221071241068473100939513324137620831983467271185085208937091750513137350015759836296639863130894811446341741743726603107367798345834294904687889137939056940077302157582353529531191598344658666929553514065457698373525124255067900583223055811392890112777920877151051055452060161419801243974429690721183699491573231855573981358962000721666425703517751424427074125783920471268773501389756415212258535217995126870149306530089669922213958813102974573669327108039372992626966691633775214488762118087376314242083196898366792321960638929479871728940508428636250055624929162452355548706334668293705869285385382097367769638504594117928630688717695894421101806079556301358615395689616882440107861678574419938870254475874490002368489244402461465589668343786568348017252172856638114433439163177490686818028017454180274550251349134441508888399232400728680927714199124363672624775208617844953539097027564866250108226710470938987711753901273864449539959481807131410071204493879159667156559800863953227276103192978215090470750160388393260555267003593875882565895070687040740765819510260027508683220784329115255310672542940988779232505601358547176200522590656101453023504313459038786393120187383455599342376789563002119659799771194428224182413281293811715553157093237584569140170958406284365503255849508226325362606424469457034349540882184626527573368211404470942652343782585837949425538220409412095270681885536735066976101053877140692505840027001413501696481577379043931861871719724070097423726337934501974221833906968818651047525107830882003255619126909468233948098534695315688305979662767906743136188387852280493387560499770782113404999794836380462599852017747669753574261449064531732495289226695376396354671693234848840437935447337832990030771941124759943923121771382969466102175528589576073519524718807595949211344033598002178307312874404454532252652163761042868970265352829191942209813269061660764178233185945384024349423461917690089625876904571606024805523904162027672454500969852017500658806906802038671793689224510947945765397067511881306641848467862611670128765380651674368505114120590323586005820732009489940996708702024740449627245582580059683404919978522112475078553664872209981382438584235440305953933095054184271011193958041681985045101059582479852790880390355355484197178160912002109744278607008466376974134359521945846835230023139547144467199833858051728651712385814666512071573000495855130769549185691698441784548601199650771801803337181274858651235291644859211058166764967647596269229461474337504258815155609401922086461677821496542419967322364225814795963045694842706190052608228106272606654712263256816952247802858074307424701021423338386492662934903135679936600852414985061523999213783653011810730529198086314670626690719438116387785410634578074926785378896184723031663408170797908852400080624197489806032306736424534207990779269908893145333320870151774972616712272164201517019404217563945823759759892000041147427153323946824460384293591932804743090636843187423320201511029456372075129593069474955947707207476956579340553372724613106473379438634672896382726829709651387658045494903312689093649547546317895343012826421999020315638843914487704263962236570611139958604089350016660096213618817202483319516228073413277824441598102084629969841522239883550994999082766641444931010953996491762676975778804938518960693362897574647513681220862184452719788503433936216056632181227428990346345099636893176217625436098314499440766350529872575387889176636430260731213145795695419749505656079333110428346764504334022999819874123139854881553527884885316650410940004180746741914392080527289723207083705424816328331738595313353666548704283296746724798511934611392016612992291028967311363269486417189163208509815810558479660747862246038347485631146521503063462544466591730882483427018887786993859256277038416233134100292656957755102712033149320939313973803664472642080578679413694961158785042101699962903943398147396356783906345437697772830693468109661145070037268414219971578176538664202229336509165169238960192381483281323615094299650267332776212635524262464395305306962415364309347768214419325159808966043423679711339839006213133225080783430792849412641526686053489621237589014004910047898901668499924101652748868085289602889381281005162424417945866270533148662025328932604897841103641796479629855569754302127640443968769399249322624955648226769445882965862186322025618762769467505114337903812193116231826414503641711365655077975725168756562535857343414855012737529613202476635130832290298789589287926093369024780458069317721748212813735624214591680262822706552257467885753937063885997085666640850820824187878120170297504722199521082720006121867273872518833496319563738009965770725339718019740549673602544743200342782180880466717606107411350627829683350004175577344968464438044078713435557880331104131472803751311382350893452494554939118671148845554379062456888724599826338092491816953477576912696489299931870147741701815412988621866406980726500200475265842229057975582014692772337179580127817381658831208573476789754283073439287516631189588697575542983431432993977512644178610137671026467519993000411523641274077969720086498391178491847104025190031495405214111018997685508557157186386778116090672353535297167203335208064294665347281768315798820381285197793545001872919025903863596861809764331510801607905327146001036746906718452462057998156462512013460571233986840524957003521168706745165886916137906579651131963358488903681216433635216397513414532497263244436461162994251977899273380143145523480486702583346239148470303918161120610176152615456594546961562650570367797407078389820578835451382243327870451420343089901205397815298486223197940069589962463957796052822284778369752925410768022572975277875942978174665383089306807214384885043095703071120274604641370353975087974391119606201393165211884547728491693198318729065281838717470169601832231352108640372333674581602202251604508598661962385499766255121693542848873473556952403682029754422298566575526523471094617455299837221877321337093252403348330663997211862220815911103502731863927300819555379203014343323647100261521089809651856014389153828040673374903921623864511676915024937087310827654463658783675122450361115008323421188713352708374381888802284438156825354362703159469767110680939323171660429834729720372374320241313107235447741379718407231296177549684868771597375119346612418240177064768517533708915735381021604168304632370389627639291119298009722378126969624367707658384941257580800078837004203534855973120372900145282966225793099620464739113274741696345201816369971705537913302598191161796411744590521661635099693640765029124118964099403952062746994509497026805478049990606666733950773474203054669780638558077896563212015512362958350955354174298127364325548485617042735924352050493796109776183288915091047060663012041726997891601946590717895800509003449773648491663247978251240152225290193772638594994840527542650148798673832529020480304354378391639109454836686916375007770367480109125047544725036870836359163624981971922763844010829127589513199799103804017759059026305376452400718206986347064115446998073256472730857279248799518882217937987071849717524979071595738505863690898500063856797566506686264830201680809522533724664363313001591816109875162596360579355295962215361707285379058146249068861462313315357221578127424762965677711548117222386295917457379349516744547620264357821331542661318201651189090593355023808431579119415782800970518834439236307506527192950563220656288926569253094655470199017143022149406911968329134630531378873796675431377029879034910666247131383965373799168288681860152638507954323824352714388915151694070183476535348664693409145627334904537240866760095683380745107964392631748551736850875757423802352179869474825342306329215346154711390731424289471532820644117715523657987806402137988174703679497232598468561848681736550947828716980698776732342582855851541794488695997291434682239670015253839456618754653121135725535697868501065818230358017263381436665143745088962618334313669822542977963839118526102928995456353582395211447457597757500935498636306092912766087464583527296375134374435270302609775484296619324794730013395447764816868918701228047692488666702202779579904088653185139542602711110882179740310478676093537155271253645208651829395420496609566168705739568979837874969388380764999409760080562596371030693102222364664290338518643940117894966709373166325578495179329157149878037589546380919607122293629640707567161237536891052948986858942898264182201962757414805642659909644472066061112763189666596499449848358445943896899668119558331190751859355970061948058115014734855928854375712084424425480631061970505052605978011023708147996599392392687692450235547271015332353585367944793813391572571399099901639922095057410805540403574922167836600372192364499854083364988280574255449563043536380172966039777483073739987491143337767281948937988383900745071218605156934823008992476742347320375140336805910426519250418445585390260586239296832549967906092154749668984088431166277860484315157310790582985695072571304481761372541127003313406670797586940545083929817755326616351635497163831931912897576057881935395683060327807067365580028380718670335793523095844710713267433038472353938688570221634609909391160755846304582866787093402559379695106549224679534400221157552523912281137837654997557430151805492904475490960930322858828572859939655049381197302562231116264796354048796666146799652593659501936042322686930950416257101232451545766299876178555995425868228271063170130733554615468593497734281532631869553890417528482133302074177548106281515820163369706278282033686926363981946221776879557604472521483053937300320565493881093406813735169575769193533810405831580254206750929469252618174609164270420831136370769004347787585223992323106809654715749122404160969996735366755149993349080581052555686121733609361359951730785718694544628413499203836667761258449474167817163238430088038588057930363445407823779739943565056827982859891987827338225526971681618574636828225879879028886915340656056786851860840051455450412422739119901467450341084761403336888107027560852580417651137933545500121491616834457073235185489587860177803025202702678164536137601031562158209597412809045731273811464816222464370155191751887568271671499511546369785967376884723834990197307416055088221662592618151377891258661578734635974385782771136254598848261300464034023566682187007521541552855311943424671492326943133890283370261768887935209351865015303478229007189254659656765129226377737199589146644364039363286887301616578813492408531495556722344651124859187686047194534942215433048783550006685549863854136124960053619106464618207032253799265829030628066926737768005537399124916277286784935479629530635432519939773258886056953839556171426986676334285315984699465842711921666589377097155711249309428351815322276243358363199456238173202743352243768503586188860859091730530377057616199347961581603829605007572090067998671632434934087962083921584690655615314701467160484995191685826397538453404744913756540864967348364412142015502649633673493247812912773775660524167107234788134967079742932941539712595710710884493478886109696814006361106078676385786986649753356151422385051708444922636114029469901051530163307916062264363287996247688817451903412921803350599187590955617012508133549442330323269216061222740990515360598466428223751126323789970508978101350993866917242560079258982716996164314009450745849175847937918979687120974032408152453191634364750871356823172150464184089697709956791737771789100869093756963257774342710819251569592823619708364671335816668709745274427813145283008393252312394697626445040369556170158653536098184253772207125526097990373239834700667756069434189963285770400780054320306099468490377191164610933023398436420055171440279931159485840312102625795509670916798830970763889757945835205146941982325349796076473422606660219967073562054529582935125646409139510287586332039933015882302040172003308642992265721182474162541727443162791277085939741364409887378675508981548257741083822648545415480514956180233116087140793687687624464966360945663542583576419031580170769873980395409482058646565539341987617483522146493097287485010634971711639414369833322906886762744958657937088332271065918867720364603406929144411259311605382493122585611941312332949831989760765912029298854734004518940199661663053537149191051074873988066412838349742051558464700647106204845920863517132148448366171681052402013996707936781202406099975883559652886109033406202745631006480787536028558868698519398245619270833110907171695056221685623789556159379452143383182205585054036735401522055204581356842662449314691919271459559519584282971267525547050035401701624600191229562833278898840563331691214699338712277924831106313039723659081996337807352715933346268062815527940376105482651867112850775760599122223647597299216780111414948785082852580333923599116510568362663737235710496842765633453810025919288319642684400211080779019592235134470547447797381611106975972197536612056749898281314957391750856569505300097190369320383882132680950230359860132934089556747840847367857941062878162001853263454241058809940118830153484294486137207738277202986414560389368799099968992352850709462299254077063760812153418518859742792702176673590358807052631599332758375989765670716925662422658384202103798268154764242296196227789860323087144612720260040718613831570165822788717735314370032219838435657640749204619088935529302007338960003966893649973795020668445679714994835171217085887489290711329629212077493247570000826570463580447413423148835218166493301834344881731865763880229412473774592450860556927005890963014714292035286104109906295283932830773697784154176527323773304967523588420371757994930223723542509688579415541999087255025212678536001937723290618158438119764969960482754210603695763677343878069060415530800522878676871458188480594838808991438720828281454921936432476756227307670364997429259019013774373034776167902274882576704748098896647287764667785567309068297401846423860774660001838153340325813860685044800510438559823594252901729034065914044625724760762212180069183919157383740458834992471851334282233025236800780296905301375910596422815039070931301335646494547585765418310125948617797367123069630569496928371859331527425408656597219973426205190768045257275007397477255740538584287966960024503199857813975960160720409074921085683591043286761805185881501782980961803511922737427838347379477366717564382845038531170010620428676984947001729517182191068880290911136681642903892702051570056903513758509333228432148791814087203035078260294156797627227487218010798822239558835648726848687274461402351087494992981687269876344897220162630279771811259604513773159489187107687843983774462486509584953743738037276252766101022163850912020827891147644490089685282697754541953272614484423928523296383004805346159944043044633999135575760558720230751129467977351528990459415731697037498497990109668834685784749233007206437695981533021796895829987184200891853737698651905176132240773222837952242229102647821075638430297596960670116408682253878805290795952083837774384530793758831972302108866535794565088327193379281249697499908060013859340397776763854949481958077780951884593940246022819457010793616629322619563503790926823680512790956806049305734977289794507552121729669696719583894994857492771839942692153638868110943158751441978725131374313046110052571749968840320227545618754765483938366329445132582582772294874743246286708874889162576573283818993684528196876881702665719200347441229741785373830798144041012250990580936645825691310196272283407971116576813176039789059130943722299861842939880180021371820081018525905697978989838387744178384167256214514579612389540898313821265044514683128715339149195418159202774812610198341179534618502920493083588216447635448459437989520752710265155685900439104264743278667346481487954174112827309504425153093383371013641803153641964579225031062682968798198170888397695254793850762693349271733694252296262754178372403417283850709059468696961194656798595520492524331675145640715514687659336493643947977350681275159838776876070401963278026714098352428629035022702764513472420366795198852391525584907540728113518931794976097977906548931778887386361707464294560522451327678232594528035438179930061687925589540848462504799369064609792854814869090292030182443558194971834653522292671233372001110353064657626456912930977545428719472560059175671829507973369254431133184349533289139334486651839566645232554560266630693648843745975583892097715083678098682099033893587653729211300224136733327815709331139511179973667744530792586476756094676611416508211527767054114319491068331683922098989081980361812680466259113413533974440319025627687395150452981839541502264380624214030777138633408548205085341483684222449149321553115046473445680999983707527734717897105192788853080465482743330795357451554611098204971158245597769674094935525180682594452410048999400690702180566434223131833350780276132831031350502586256987121712067039206896639055970260059180408022389847653508937362284697032319703175698123504401534970695480806545317912709304541216574230153816123005949534553106908062176476944371693923596204097573594122363871497592020212775495125659978599864073667289758757854782577598775002896276728600359746516890627752106663251839183893287779435941141692230449854907337332529202978593595587320177446816137067774107865743796304031983613689826888668814467469394051808394637093380649093898405133859120357411948851407864217845134070087284755926457579730888294370561937343838723956010347331245953692871906918945537136453865864148427270701073528137365809646864909942586634886112630028175752108459172271563525245103588742186124682970730439920647129832067064339189489042972517050340220177853710545450480892060741753515773355246855568695084288748325915065321643778489572875617890941356003047866752340865634925516739822667064433620895280616020139236751369635273691393874019797787754571687786402301522310031727527185089532701314133442533397964407124486103362952612187118861751469938290270518994902178559235080055583578726254996982628907976630073058001051257605637450875729216796588100814754344229373207492414097867188104492642966020822654391415790356913723628167564536235569187129676388163891944160956991316161719475101319339592472142701619158180773745056312696821140145367751385913121955727201094766511259948024117548399632368412119797286177874755905799785802902741344769315001793932979006256094863221352788966533933266356593133148249125664125564138698714717566113903341971080080693711167689694534746037526073173555193523113078979628849948014158196026051006310650331378498976011965301324443251098406062104277354325404975403266016955116660008571001868973020548726275839465620570515561349112339694312349342586046923700124779739305279645508034634171188124481754076474249919558817318119665762295433097622806654467190138552438104075011154191300753703491700957164002757117447521941927610064208628429592042109399522713116323594030352700183597874396848772988607530660739729347290881913024402428492175342256475339208094334478786583346441222151746354167417909343070103237958719145694225883933872123066067701712358519011064027495562427728603889910749420404972842720240378817966854068512397337567455294578643911626264558145681709850671526061671267625932413770638306037031739211580403604957809043972059609331691074909036627802962658854006897698819257388426552569498545682531044298441455041275513466974148363682801172697463767428099198128591988197665316177931603013817542140954492096708657122336260563727348189706223475154109032735775683986284258774288434617830490517827159942901603773371681695510787802410787988661272081869318719063341044067359316190037981519596636246018165491779852734043047533858858661200449427073389151127680120456593139102865237067191922250426006333254546353969000435325437838913171809507582961170498884658823507884224029654045654894726356948000459772634571006661337774150965414731455213190837865290839382058194650521848802751504634069798087321680063379532922400752201277806763015122643281934587721385979324344826750323339956215151618780778830680925358079044266751297547102416514526644955513934516100692299116126938159282890368029748606891424351165765757879856656327832642557742225889169162702774145129041939400603412302827871219673497323668907619249272546901530543725047978455765985628032296725068805239593377434660716675568642112340086386841933327049745860108948999064421034655051223902255349086852927218272409023449667228830301777448612413565431288334495762845690962831529233434040122482120647338133412391799247199024924044912320379709363060563689320538296683467336584939920307892172795367386914364596186980854508970388853747211114554977458159984704746574228123241008446439451237364095832828394962588332124638038415950710984383211883314979853056495185391709057280539296685643407031144330515287285005175184422134077006739232964460266876406491336748749586630016223320475039268157893291842326789926449353895540007399666658167637953571863565365222832348443942608118815353954180843511007453203139259510209114309296050039822004435856076240968381943760710136873642691651857507146019393355683575377748440638256436901873776792025834707772578258405618672481243579410128959750276217992727766621955070786402507493328723037077551409834006296437655372779271571975463261349032735382700051284771037592101839062117996250652657738444821417376130503642522875529419910026786556041641776219033555710121492441962096946712894039756115946847886482328663440919169293858332817052787710470883510421573812695316625772379886505201741035362011609552382258561522727914343833190781224031622463473282026086411774711483430997357380413885641463905041108297078347030652814834094350805707524014138540044161288655262912715444226365800667744540881889645843354612547711437931528279304132324744685951090278846385387103572200466859317224185099250275902053628772494584339187966372222714855149869792245208932733525738438170047482780053155852610066869019058372728295910256721893490720065862399640209684465335018953336932867045028391423477583905897304218682089246007847171928720267561016771833984792629358187208770274531850191642925756833188157880585920252942755796130681592829623802998825129486326162459863635217180505580636544486203921645049691288273428556760783789923142298301001656914422356725651086410097664727583263877353522678210782073458296620075175723067036272634702478211288504520725999031529572276525337035994479857719913706449290633070504940062566267920326122886554197348463738187438477305436367897408783804400819102061052910328194884750282510780951176696118992388989712086076348488700900671119597896110755165409777100463664105000652465159956051321202627455664399557522166190458185018297890388085641296600275637072094848732266275287124854399819232375569658517514453692037972604677804006571991421127017922970593820819895592854106435773582370981994296199622114182263817279136831942120904707150057403052770967065665668219072592166228549911019952517875217121050655467670255333598962081239492637661002815838509219571444444081059701292096786092631221678057054875145214002519651587488701433762161042860419937599110360505728693791672874454282244788356634161819353061593377554149766070693320604050153389213496506535148322284519838571387278540176573224089906553979613125162584074641655716114461035308346208552272973868761269564664951404563619521215240823551801305621917751065056715645558556918706363486913707386693751055217105453044518727460424613035966783695379131611592029946998047699426015233762490264202919066900499017068394307127892142097736031390173166242732697079865582897806452613793069063098606289818786199866831876488367382181810205203738613186965505338838781260857332838212113289962050691384094810573317634430952871302388448663109217016548161667608607982229575745733908577589675539382253772280283805601524477304683658786661972086795885460418116003833844121997978326883398678609079708496339879930257256576956779979363461448704137751352514564064780797480062365464278410935480711436761254501018217392996983698630440180887876483136989200516737175325754099950707622364157020452486648422725371255625822895014413306579712021265187565783029482053426370019122708483451558023275261724573343552710626336555724150254066332734459126483007010528691007894212105136648221562669855271091245539256553386066112635533600810689341234822816681092853166927766756617648135394777812937666120404179416973894221979022062116599247688550986769528190330589108897669201604295809100653306549893908733169215028053942170344142259181704814868918231264629185558611174272296866712004301297841924904290535745387655689313324171003948751524444947832588593936180814069122461163381055712783284425745792683855124417034449782878969702645641729252691913345104941957211514904508801332936535627501461208859948359157900734333608254713396244802522685165940922704981683171226979158654678979302694400658047139271644135427338845588509270535238442111869444249492114955722974939622339187178294533428091225735111256595266960260495674454958852728597073010808761685473293859417660265918803860515538622808502626187511945456875935265108962861249100886220528380894740062179260903925078084497389157650583538062165298624801602962027505815620692735937715101737772813426983852478970176015163062196615097808728316608020634496016469991689095031769834727786767878208017558585927205143583192364177612556376575922238122612259171215842716360109891855429596430184794989921271799568434921224191191160055952271519108243067284319650733242399553996408354347016635118375713419836551189546070797355310152657832083380753696859921043182911224207562832621547298957282646760512209241833339024388320120421080407414853359451129560182330965053514654228089390689417902453798564462357951501017598025360364128985958786678838149119663935562087551958428247503383268034793277044328482727327257220587877293394508843849038988074970871096726028942069987405516416138354053808412644653420596757938121646357212092334180839846219433276065824826929672901398776519739876290141152957788819092714335377372237768360398617490105177158149506493179148524773424756931781057430645591191826246011948432008234756549284486343891568155057738668172774386635056303027296303593120220653935694067821723138184789303391707253309473088926469669589256484606132356572240713244181556662666400857050619276478286847616955300866683642258488826145674933126783491679128641355622000432637185802202525608410700142325142899956284904264813197599785340779559024135545501670208250808389373754317390733588485413477855033300342525275592313243495911880959761353720934383074778686967881934292119916345395929336216554935978771499536498079218406211494993596853622344734742224858834617565827348036250062006427741446370754057975367296150240397370669285573593068579111260651764944274172351283780614341856783358463530463286476427740944240337866225899682243230697075280422406709210919863448120055177553703460858241785207204268244112545952015626188789287397321567502566932909077980849049349543983379908408575187598143784856809179148889443315434695561255346973330483507549562210109179478694990048468150477895532309845030406949996112890172606232889105969122841406293107706657485741490307441106046085319804989005391260650326869598427540038102791115810048234563378745751065709247024103579163425309668229531939158638247525129403074492251337951929417290267811943954324158133559280698450223374559795937733646682164767142397850031937195044074131512156475780256708757544041031874224957327263080243873199915829831118903928468877415853379965918326896296914921062161675698216992753085478794845993854345091990836560435425094952301745396365282558084416713836667578294579039648725833798766372778854017697336284394592137004182668765671861417105547197880716397229508383412892982590632154326730492857994513905553567621050813655067133287730919698124335958415449689173895010855851613757460706378593992782696243686733886744537902658674268576024703716060182797232670621701249343633000457235872880143678155982700674042218435246487921567142701014698633409125579297297549774884572764225909175297637325994145683051965489730913951628239905437247263699184982244843742417989996637526834623326449593746640237975475491700708193037859424732306931560080783542457593670715730680971959163322161710100585137545571372690384235970851098478557473330181766151559580538110502707815885734143729035710322435184051400914420441183697935679795440873427388541421984738227652282911835114117679478881420048224498127265023336588444924213712390784384559404652731380118270324692146344040443014492681147640154133364227765112136425931643694959095215494738691251917714723193407350138112749884403219313543810720238162641950028533877490970682151652366591631033557130647975908164930196612454850983397663783167510618723557313689048835937720285854775543283623153928379335817092508830926861338690237469003900806976416061587042006055130766778945179832379794108916991370747619484540187623417216237157859327494728636171646593172211764880667726546465884750955289610579229419739233441087802558188759705781845475975145043708288566970674542577844895450550285634594166745739387127969137767774129974085852641898586521684154416746006474323361692872777714629350888891323920507245814519106783045959153006747908924283792362949870538551862986405983684075866379172086791617095194916144097892479114402919681218879633101341875833937368221588213569610496440922440070024158017582346546705396879953875137029996027251919838578689276472677512731357542245568232795646625203707650462656841985697778671867325549586357608087364455492916756410650397643898813369733212322004118487940521379238146460618682195978718399962658145393746495831141477419882129309766440329161836967452640267158662642360555570866600736431922119728937280680438177661014408694739175404408667045145451974873470204104035350439629865608367682509379181609769847258940382488275901777488476452770799616527438373727014975647502311537639613703895106514012994370321692441962773393789749545118749262055363164212661289587950159967795190966083555605850216520126822903965296908956908473349228123537563635084481600817743319375977896008770320566315692399722962826903699858591503642932059490648894128856489280581319091359954719342375216326818522736747467203554654952405744679020336530786059748621099984417764969104443725558868876209263248725636031773496422117031580748372088836679746667324433278881214922159824252415597558817550869241094954922418330803925085499916440486244153555796383868612812008728659818326520557966847475583576003586788719360959133271760672707818973364757271061842824550227815064928644908804529630881890435483240438486356721537751550468484896168695957280494611931389864598305903553744250936399331178050609606462026541006314281813987800178226711901660317931357690265393919792496883383172663708566271664915475397548740809645687219598161958741913516678243007165086343331564177686880796546102502040193894649070702340825936598420462481695338330160246009822199256799346545760361640874869368786036843310784651296093236744126692691687475664373511359997646893983732490788590618217813902917986087821637597609544869499216312678922787149098453369851197081499722232760098362962480163664070842474174575262356877480613973154113775998835372781307386888597521594334024371878546241556876457409237198243475086500573928942375279569533808032127561552483378534463125315409468309790270099582035347330707706410538537184760188647597645680809807824805854293999330010737787033338813298061383473753947814773612242020800741523642264429172403490805073575574269992749564958393251234722528099722180648880047210737027878002830864174897985632433792557534248000499905273543317508193989475771415933040926317399007785114650923686398745645733261084024077488102380331535060938022704278170918243287864309743231941903380701886797244596371634569926670403650194893471156642718163304489002897769907180415638549992967624261569558743733929729836507859069395945263124994265801573742398801997324774812957995697342569483867574757286807311838570255892325757952583720516648977019367576589817552742662259062181866751708585240006132454851321440998495224856253608045183579752243593735397879791792166994769779096444074569096065088151155250419637605523113003883911772391518738100697375003443037663058112360343057280266569272962152057337173548123888517595002033923814458058131087491165226278524918495568174509201549984768556151467622052013489469394723797250076553147170125246557598124129440510337570101218445604468771179698849242672356746628422896434059083231120395877878934838823545428704436266647712979941395082571919890276461252844743132466234589513050922319496453949519268422836459106010754765880659132482048397056554743581021769986505813617320444979163078009949879343326346176459159239787373860338147059291891732533576407777477731837558562181267496771468688723074709851955603453896124079997483926216788255040476973211046108986502279939004040275028285394452902640135812329699604595932528105757552266159119220496745838369899333065809349230176582218852846060061637779267554970835464136609079743256003685421445361922810486657793198661355238599644587461433396146628157316204709879926763705874395901039277208686778503225075648703739916014185740530423515601888435017520556341586874587469870843862585481305371625575549023662201896915022799614407114703221744901276051338875423192527558942319577412683305277739520229873611521422064096601530596863404461833988625563413518431362429786396469169218635724975336130593519104666818375814504854693090798444351461160884239332689046710298534782046112204030649737623951556532321860277725905182893579507642780291264933217242072290538365276698907896505417972730179889763114212096228154595566223527712950710615103921804651011793948870204032161041861220760773488880645683279114945496101119057318769092049737633450039983572790443033146553377330266641067036571553843555854223781352611357461983742983859609697219342556294402074512688714871810204290224366801253511452937356842352097081429274207858045866942743104545844173812165681637286728665922142189579719311870808359956241965297441110382188479289870780776199023825547870389094491453079259956744161745778924971514717126698853217784336834204102448424626609849901774155440246490987661040061690823941903070749588169696875872519208360018369138131078674312973314401889886053187376464401727991553018635111271702431903645912769528985918749415106458631621721445421176394303847469865197904424442161694921958573407619646390575352105566859393594289576199194096655176400256983696194789272275511521049474682386605484744484254402539467131426787840014194278475676627822426443467841612254077341262320767484968931494091521050049109501527075272951571907056862736500502341480811696417428605508023367203264381842392029720369688304143349595205472383072996266154895547173415257224970381197265975418621356586374653113704597703631958382457558065085946902301445342619345695793713097752439024443397526877447367473528419449793095283383498927278277398028408606535370811069421823904679269179188167915501638865747475729430185931177225179393138933925261845041501428796994339090736333728195175958028689037909655054524182832988908030726897312980046719976093995343038125256479869867649395284177148936908338148691032711912742068300814872701299746384137261606724329067450982010192189772324141721031085074245434031567613718548030652076109891535179199406885465235456242553209222469635298131628910687913389121824040753786835222264800640651649075746131441655188296310028792628151076210082446616721680005403590542591207916489024568471855955724574099713756242400085843502405804051991672936903139940207027265696802600391819061698175357467994248414692475673440941004791608360785446924494469170816882962421422010955894780584727734553086437184772562441650710155825260672379126590847619638374062743504535902609999836268254585006271885590400312229473957499953302972792847051864678066443919958446026354433425692818680330691334260301349362770620228164454031210599218326405009632281018801061361688376254596301137001708304177301594578184080422209942928320880698015465399329665314748140737919815203783980791965600478879481902447698146144455528028958664836458635875224350178932766241708277863286814296966901389849732501753248792863224109712225439371852485240406996440269922662786102987037424789577031698343555830694260996483733391864102752822177071000320020430479702588780015175816445717437159160154336145920993338801940118303496315414672604759548302641219784108559563660486673856645666134477115782598527023879535302612601968850491113863161203964093770345391845975024514757360902700838878349864529612188242330976670030927254774888215126457455607671507809699829543588863303272259191281843235189098805099897679790640604149158762428841426334147791607230500471289675163519652751462868639345743525518362735960604148194495757782888869711784124618377703306211271692223156464154293235317654155063312230363092131767781040549296452290274618702159359107444171693582299823068044433511622260120978781008459407709156130821574197529046232505936277744253308012957592424446523496235869983731818963386829993429183921851312764753985951382746073144187385138851644028369273141302836315722892603773021444405939726581169528070400966583083962319949880132620630409157740284414311974099816325023857409366051978517400144197201079386667420620265828552564639641776966476589553432981129727658271375891553385450574268900210334919980498792801305183329702619394399086090458369859473004629032096310658907110532899196558824453913728803835104104969138182073791663016715942490846271838990682148743059830821365172792854863075921485693101831487963290215026772546854647491562068850287145241381159787489661321432234531407080632456234091452992518550144702323011448776369671450805382344925255548810157944788548756675171332802360369517668092142671696959945582850104723720307496399815966754402926023933138583746198239332703513312475667043118139646555972547784359489341675213633401229800773070010741882602718382037969740641966851841604328621109758935306436875278193687699648563098139421038015603276837289244841750323976981617851603694872571269782114726707964571102990309327702104418364726540139446276545017723223039849226638616483344353206305398464217452271744869789451622258761291047303984664573149167771133910280031093181712447603610366546611092952300468685650082757328907390818657944911306611589738141631068985947577863574575158269640871907821544305899796804866124321872013119289334144859161714555201286866590302701652255784640816407669190879874626291728059232601050666104337656095136103946728220772548566296375749440436007252770189492581902056332294789453041680188624390275696922233193481765325252670048960729907999344961651275303707636354541346241775660266142311196228163055276549322331767825614234282807507861920611453057889306559835538078255271031287401499779001878838373933963381431411558978518574081252015172824106997421766625049553530970160746334358860349966709935100622826068689202759533013604234563540141968866578869102457494041025648706435018505862002043014182941139374265084400936252627404000514153538139188100197294545956378738902033035593272791783121310432146489359401312584185759071826148649195954159155601214379246817412654123921283923641620983575292109727918679484551834354789946743733583850100735337121281111716251232169715158535112725599204885754016911102332882285901900333455570057271784875697743467546191985620403579824548113672386801917389341957877254432223274751968264275137565705316742748241355104556519048690980320709254732920954854723162663455037394782840022874849821069665318741733242953737740518856712450351190429304590869621444528840478902747085279288995582884399755483070890785011405421262221412042752995709196801775637706913009754571267003981088930406868105536394351843576999376255959099438719751376924786270624089044345864555515730643730788996112537488647992853746965502000575699490849190453748578859134054928900921055045701118709208132309625218270595554437561459922659958657626485139083260669479811167488336936358728653458712745168234524139394202972990547368168526203472403516357304817350913417907827709593426479767862226438039828430952405482486847885491121206720527311685056272088440922395215469510528408681356646108771887198607547718012670890240521821558402105012355683182964847451564927397222098503671480241805673400794170711416855912475026334035707874348410535303512374080235905379442644689831978505497153935220595348523750385904142287520257203355026245769895957225251348720948005909907117873764363501064324143362511851592991654153122407421340417114406705914709416841283391748390521578850961809857775347101411895292222511417469256491082840407550360038970139723020624966015882809796055574546276948909208080185427576090564892012428619578686217272285912518761837155631195854853066566969551539847250353133623150235376029253568739468807917249089064018499440117075626534991504834426342391437109792641744836848109548065261089341400618291886137775477324399937483173247439082611204678350965194103700420815276638612545771545062817551248384657915497684870929805154398731728755120278123664850392731914868507041553421371535954963086799300806601105753176565145964622165410594646261999317796692811184383789699092345601853668440315877134010659740760879412937859487771708891234180346263894983256509792267782087795112937349672726722279076234043685302370412956257546383546512611665328776200585594342098125499773611015167938551147510417619656644126286692259995446983959896524901661546060316835058164903878812077195567317869816603725242518851724323173487058239496637420612290501516288376858727869859513033782344550335329700496556675875333591654785070081475549305516258813441947443615937023098729357870543750027305370542768188538339781515700759503554799677767793432679790727216948809264520924383201245687533816329644090847673813102093276610178191312317412186003385980620636267806405251452310472953076417331138728856127896878426221210203916595366182141932612838712091565285902790412195137585934283648460461185289823007037604362220733902609701895024625098910428661287802487296867390822725338656482003252472545220067334604399340388273257543959672285398142475232751160492117941529729519770174708283529535317581623585662877582400011540006696566810835063331150646931555208929635036753748525654755201940336513479404895626826449577334962085932994171207135255849872682894451783644898658428117617745053001089765281400878300085370251937249456711446293164833405782996453343838440082170326168440216164975800706810106468722332362327616103195411747755196895453883461027877825271820733213398430927067715975275961904573346244124470828669329119587737536573489217125279117536318276218374799708127536168955139352798715299858885017494530519905469970340772533215600593240676570583889764269267713194868074584883232694440517623741389786958571454003056489482515933555207623853298430570532458111115034243443641603284359203509883022460785134638646202286322471815702394004444167361940546589326702493182936326036010920235008865682203282990070055780727953855967105948107878411957395014254946733359544680384982849936570549391344955221774771029149804317835625959745053323686739076059612653430325227072501446276739405342017840382881806000620997804628169231010654184190654412697160523142770234774812568379437584445825863559339602485148145690444548243015540375685233395577474841160619717384038538633419729843845498991824095670732544682241973850229021293437160368394528065983641750372184909890554190805610201343216292341912246912576062194912264199558990490892070449341867659879056407286053042428998286486994687876426874236515667073848236965002265367831380113535038841245417471562678137283819240241874090174438039769443600754223193072173350349101998517626472553436113722809548681945080423662301474810825557244900348100976256809112124098656325623381228695202244391394381703923828157376795586918609595990638651019051720021256383027092976118692270286983464793466517616679536046755753361228013694837749930416792102277833133183828470016225325598278820891052487281038763228863188795822040536755361482959652567623400048994967053600485434591099393613291722624444982460249510916165477635352174919460557244810757457744269336635878290783286284178162282574734792666074262631000174598544220755749215014384552199954038802207842966537305940272116466242444122441183325776979559125734195790926219445037214762532686168151068241559928461902531269185335538978194291089182638891235318464425602418845914317780204425633101511428805607599176411054361496297431703338578251752487238632627519898937437066820077060458284257983980530536604816100353392907243654396497057643073086503219254967284013568620325475580526186301203038855385138688850833008277537041130401430034119845244530821996800974355033710493231000183903870480419596683643343974653914588495832057696439599313289482473877589808486326176353336086843631562501487959374785314543674271158209367593508012254788537700102220447174414454430551196071674721606604299985427986202693234626710795883088522190142436474578749021834849507913339364893119590912242195045553907222284116477168975006850388132138492583833691780012510218627569705454825951905328045025827680071798974155746350181448339656933915744836450624961229093721305371932258119928442256560209773882429295012364144711596400849557108197167762650236940517261442408970596931508847551474960479608744537622130257894839680020688887460203105533250881424829689710692438316733958080518696191830412972263696526463055195739423851123591981974909481850998981268507394151391043131269160117915541698691223407712008037387396052902211748998394583472934159435721161681744408825554429451953917632950778873487635514104909393319529413016290774998550189828535023181656025498230045298206589619326365938853031038608210769359256274531734764875710449867725323319979349557039273590606363595963298462401159122024956271161124451373125302650327882809996001491109437165490520048773356129250751855062768072319550922937485465934938231304901619828101323764740095190555797305738270146633261028776293794460076232134812398558706114157421577819049083855318010419102714871824410636068170529233565683470725294612023590623006615871320131103732119612214092912105932494289987436845768729230814043396082823778957007102626817241544273068880935038988202339491528566188070190090503464659770364338871873319084152523513507378067663839008043657011760808245796616093897738779983411884460137564567567077554065094975355743876248506008192051746125045995554074281404983859062127430115590653530023457694868391957311585980668197524097509841801074040566413933976670608509000866438766397342652133609894452207878168234257836217391111886124662263586549074914068158225484078180564089744356756925542081014659665577867304458354005412540703321502651662764991421586974344520529831399274418583404658359503400133129690750761278254566312717454287242624106213869758095234617010115650524374667925786503584647645773053860464616742358342867281059965564107465206947181721887533458142724549924841129106309809340684329220834915815270860118930042192869558445399480828007260653772302727364853064781417918277094467414245543311708746942071136404706652241681858361598458796750064310158147485320183831194575213297864784701415689598342673068289004440091121323978080783467011209220527258516746050258972083307867746664990622772778812754077271433875564220015378218448725674196931767791391138335357879807788387876913148299692769822102624981559142253160433199200785159633796919133500939065190220810906001230858224809481345166425867555277918935813849398193930385960934179973983609463132319827489627527234499387851488162867232059493381824262151284610379812780883487041175604663650558323452122567957735282656317144634574925497021824267132398957689860887643136368549818792857966327203669945499720096162451359416348461937324160931370632630808104555138749183997991675523365161297216835188163639651338461291076004307490934537107321742113986307771241359554996151339357819919985441825330594118781321354659295801462444217057326100611962960748491462449886713339985323478816386013050899319148652097666384336475564007356346891532772165474098887765618120810861383583598705139830656180703397962091659468986232479381376623171465095400804233039268849037629781182369048953540095201290661171378105035012165291760128840870564361257330166448710150309290641708942627901052382037911120054926947522367798819542586693705952442096798497562262214583831545907672609002381613598485448910319533348312263829101172889583836915829941467158429234049094309127095851535632255037315415152547684035582001620205807532604280656410400712205594981063885035359951612194637641034724705668764406780929107761829794257834724318896378010995726324063038949967652221996446123759407948090423989684243158758951116900720959303081238492000631622982990960972161734934148040542479319830832381674745024941590518418336784691312191706268041656648979878540404316788389346958401804707271243800120410877054717989099250209603333080977526097667690722112822366921409623607247005214531684702497037477598271042853636557412199630777615550986912179264117318296567223654515435053169928354965403721866259063211941861681817157896301259127603814699337904068082937750346731919635033952972037112121309660348779027371623182543004677380941352796523075536480557656080679616494998482124431011073919730545917647737328946251216368509873983819006045260734711107294037141381952388050514905887024613981828103025487540924773171528084088732275704796334798788686106222300078147007557567877754703877902694987921628756849606151057454869729920429460788835713421332131300149197611276130796842441928121985397568315542820986745643442000373780764110373287920254126043937498591338398104540891775516413833297154133332922961802989921463144089585429874395857665332839487976009908762672829191702767484723082940394430568651328429437279015662906654210906155374840213730402410308345575451978245396386704382903365343017263464092278146421842353606476226745501483574774892185318138898250166425733981236861241559803048171009121677619396942629949177543510209764890219813742866429107093165532265434599170570408819981513882488627358651206124277417555055932267195101315997720494854318977283613260524544845468754131587424424177842920485063277675839617301494505903345752127994587611237800419837664476513676183020325545649172383402697527014280822051513756484706573512750365608112219784814158500562177385220247802663399987785321622517995178894320809486565587824607099143761220900556491537832697484860146388770856020142912849333993195419007228971095921971737183159741040377314411057108479430069241085624086960432385898551795028975154907075032516317371326719450955707123870551408652952329997231364233740990819345646042659057852860654175093616575650108777046610795890607612453674525907982407229651793553664043332242020902310603070606659454867298533765797876757651144622249008294133990809106343655940845378495143556224670884670452192114772359005791635327284171643347598674198347720439512227569669770219496802496466871275616906494185269390061467086248810520353991742116457883393365647187504376403650439762925059594433677667572880138543294042814725003583687460152815063277132168665463872794451551346004936750320214811220278774312563148197799421589889620342720408617559351978103156549208010946673090278261994571121317032604659499087150715357398180504483952659259733502762638436602828362962197078235020683050671821315811171583851073610441494420101504737150225731303363421192298510847703329507504594550321230683966230599970020892635605352486038706338451728178646379834971519671539972984071383391384105974839548421998239350582515636123077151822345539286654595459247692686968382641559553529850786347685148035919093573784950443219217509386069284325934914297675398737212722965489558467966251517462733990879319150648945941543500237192563782083257100516316440624546940794260315376469567161316397408759097622325162299652467040515221697795026159608060059889516422023485097265425796058114001350202445074813471006836662797476176568104971330028622745418661298947023255085110669380330642111900345403402019560914630361132525523659889479930239024449911489564583233557556991864523334126476966500290373518246290814775842341217786398353315572343644688861508417246384296259569153835151355548170965389440845641389910470050335064770058747161455299117619744326014568100022508833771219329384498220119497758157074111133174712554797382231018318347762110401394469107999093371359761557728640417371976728435622234429144588704496082239936604354314462801782333858788169894969863591337474710444447417683789028549663899795604143924869693230782947360725774414185110770630605586975811965863339585297924812383076153813865926810538001658842713469721060370754541129476530227388363461577356159214465434132939540206565156242078653710813449122245577015387917523458857858659115797266210973366639166465341162089248191512856862471987415798685379062218313960366559407761478126356082322973868890579384087755525052575461532858536206135083419921208288958377732353379794652650657469415831201948402225752149093034522218469853215054558464343055314585173472367903906076013130490566248474961265343889449670735231193331770914769250819760069332090618218243198753576435763108396732003871079189161301284737989611619082130616831411395545467578048354051537940025782070234395971938442895186113793679523417698999558383446716917861813863611474145916528626379326171489198932680139277886525599365562318583016847717173803238717988061534275650734337832994318504435615759019483614149638460237821554913889357934045246882361606907891614739698095038168269011104611505018693792222281628680842220068117775221939454956479118950032924465769317358022598255019690626839196923856594492894563418189121974905371661897902128585514180810664634554611975172494682971519900769007035649304093500247718579570462570601404138369989086380294354777211128237152290315732528718690598985245780434186389907489625450742110846700992061412177790503009523529031504194097014245780403769738288531618853865011212349850719816156005950568928179107367485380215201814442036365030121782174482761375234749625752999419670140318051290537745320729304895768485391030790556049232286084217757057150815812424405080316915073522183361570868693666211044568943932977021458810097707310744911371288691087557643658168202964703050507805123493029867146996801973871396379214175785914228056460234385597204896936106046181006446722039691381885805391198548891450131516726992987034671094088101590034256010694162485717099991806761223651086493620995008632465594454368487016493543241320693264249152018280223582097241498051443296071868573185520024667516519471842279454335399939057007063552583508908841662816542724347182327903774023371982823543907833947032409117394329373642432215684563395343269625131780735484370505372940066254471259522619631578272633390828321938636491315478246018429915245313244659593353461316328314412423495488820796433634717093451987652744466127084454459841708033710449676952647777467804158807798324513100987344256132061981124237458461295101435519961355639056569439674173709982702952003275839164004723533823150130679011676102166016926240352046953849041805550487131723379202389686656075805336472096887315084340676554951458309180560134873809139272865906706469371065359857464582514534496350004357514886840050565998179872227753748613774574547440890379926619833157725233401675884441399021578705605537305315889715395767807690621511847662678722587255272340828333318351150146065669846109724300198377434385564082919575849762249857907528230049985307161400961429353423829673987876307508949110237652268607591083411225366098785440239699801788961727127108819043618467585892810026326346713194881574518234191080058799427391178612410503392558300954388820570147886030103880431120267463148005679407658029694197498044738732338560469381814119436255936762559971628968603053015521093900514389775586960844448118322551411834826767128132673971849190951847734007083953196109147938883986263152726924908684047831083508713870000059360963127384152996139058050490090140455488376266967293389333896084949542276539608193482242831619362294637676877999453496187040483280264832050592231464565855814298863056496398892728807979010287989206990039807922398013954612730814671764258531961383539436387193144351813997126724324732730392073459532026776755826058841575309004474549773370201952001305653273864108476443965766992723821577911118387884961240284366965170865342665648852624672138811427505393202179876256927992658446788099108414218081046317623019004993990492051142568569426437241071586243205156145367100899008612327518816708011454511161932565955394438857719491517014882307257060652904314505823145549368999244816354022536988549875078055462916487919529964607066890656505792730618306315233399902670882414657892589109480089492888088452349988506939119755170229940778711076353510659095254553089383576486900604221575097783266480232559261673818419854147413896916862662058923005514122621531828004284293158130314969596010686387740341087969059284052458208023441739400619753785689596440781700977002225114316347260063411303387720424495458169206698549907954997162712485511616021857507911640765607146098252658843834397495512805115974899497905925230836389099314429019281327521570121726338103056051215968052877774939728837088731634636492796794377426333074084267744714691407237614473321188299806929823523021478160133912287039524620232827576013088059930253152875783364976602372941589575986246404528743222524073226864468153151899704561779351236223175185819322067980181657731998052611899845683583070927970094392243082325661939213786796747993771398135350620138732789685118956045801603277678861962352098617723849431502360819595972383617842640156091596483874360773317165790028470343437043729996891652836004105600721038214004466544472315479775659840328681055679583531278047148848003386052446008495599494786673550039216382158256613637880587198750579734666410858406706016271656441991846659910138651102917618196504581279155482877370883729494511313018927604656139118840528034071650947987416067909590742522583403665520030657476545919874823276542226624275826753084187989699042703730141211790861230654193520483012691182893272857098490015057298728603494956720437013449803774078070383058756467472065171773626223486746187363517164457968743813390180342104694634991086615677736391231221687648761928590930749090133363993131494734313680780961761468664251348242218971848659849890975900733019228664041200132090482631899126436292183210460730188817459380296372191525092651722379780517253257154065621175411697605248538263543538678547517081469737806980992914116228993903436899554209841418863037107673337977765578650469813174673702463135290883332249699079515595971668896913261984050612185606576531747086624465453170523297528699606662626594164410782889327495565555350379095926826732016931238643375947648424656995111655699140327169191698098844846096638465108791818592543614533494782038609693511961954660997718823874667066071845921783965204816169295676695317708572483154773465212982701555389500881516447681669860586816693556462321982821691720784014606080450141333072085257642955149160051768394109294395316323604973372879628126443525678905340961495092335488092082020391979382016404794762606866018839566309242265661926329208646904353377206139835769616502408576549089025656117798521444329468084670827019700933854380921526639244067577722475070832531719260107295905765165675466076931642701369426141773158476284720368309045449853766977656053926719613352819143716054216495248989978485224343719334851100464717455744853517192787573909191014782975765814747310203175012826880014968165132358123317163996597461777859238976002941269539653024254060241796717539856230074452830905985294446454626633978594216029801567235450068344036317118466479965864764519765536732242881898097360837375467462843495442378980207599503226972476430049378705452710440881170209016737951697736669990190359213667454225464321772798707500904536378330234833549421229312086400876851461490311159028025861987273447550967765732373219578714807729484831662405694191668039039074346517186790054305462988167501348079794498209088347391522208615184466683496615602006519322948094017442841990531041168938799526465708924801821985903777708948994552661813182729774275303586077271629024509429974404893911327853480431430804848221312358737335928548589310550564543386015906113949015294770843833172124771684588335659562465765593250977288705717694465998489407359641947281025627614417587101105029730096271808243101221459358801400229602630296621629383752637451065149755312259016798185091332403139124770186229903678921812853574017122899290382640507468538761035707339670052088028563861546371022029439548552101595599786577577118117108926694881666648448795084464695433670444967717971333848439662805847190497605862565935902966272512395618044135638131838749379968229178732810443359442019867007355567659301746808829627598384941620575262068139947243411381351879436422204721419925501650578857711618761387718851977356794328821664519828858837874692861417422131883462745318688036636676818052087312160294952054775182526283053560546727525305055924333187311923011952661955310436745125867806304970912542580717764473727480749685665227766355777593729526281830735296809156044628806045120314129453159626778147730226384280404454861757356067177401163218634877719019279261575825395735510213722528376431697961605896868198830861917165146316460637599610158541049034023282309247265633270586672652823022902831547740590034207105377032968570395660136082910111885933484353574834910959226533505537628203554312475630940337977101261079832114492383375182236053479823717395449700523766289739259292513503854378701992279713770999644090082699639762638140537211870103798396099401743997682728685701880108772683695796822478271635947315875476178335525652669436509569804909357329283187180908445925371756770191298715432849674183785557355414725053525402014341784956344960523938356210948133683829205756671202827364425282836664500933966166094009070174843845538059272466720390040213058935627039882426819214395155617393988176081699656870197231583515532050843855320886182885756749130007004251341079350231679875849240584642427916306942274577708095345067749446839029787179187814431420762825731046763990378325704868534303905958700430227116838382651833822294165954548084186159975417591118879350270907559303982839527964425226964618971701507088571307493505498079144534416649549247899430711590193318520734149195945835903111144501247757777412648299369628503937106510276913945941206757826014580734669572275168229743180968151124099313016956937310630424761545616965346192302481873279268092167208222448465586533459218155281614100615791112067186888099947020018943737496922124845808723284955684721260992532197008043088948619822535564168052801447804250708063870935060987145131447589090430652098912354599502433201582130053155085949412824914072265963529786984156370943633574974148865820416828594749228560937208490386610655353444445615633545296672952683878688957204213816891050636267603848047112974454840458661033814830683944689024244455685810945699386988882153120747094244609318949286581066973053853680227043815949951705547539023209777152275793253517712251258711281398041144904893056746756624418496153896295000557113467913028753678631990089499238560089832522023976835872960034472052396731304755296484023906228798802066817277230670369939628101232585902685601345298269089542749437035804982764383684679079394606755446618212404838388480563058811122203041905738774932894822260954596081073774564724753558058563354020540634957498788089936905810383936228237735370295715709692138079040483877378551975623234319084442311135220839818004789195528396314494874986222541455635321725241482021557334385204189045522140870230461428355132767895602635350878977421663237193538339381604944734844442614800795378008928479323789852101816378383503831930184001886952068326859295983741510460871166023969669687236369402475077417071366153508216669978544349700671698867556212824599232612354976091242037500567355243962595417750346814131036703015894072988397378363251748880927863293145914578157864775349150351441723838256679571544446474342335317029155543890357111271208195656909965495061932095510515523552749282831884857770542909259790078931800616173908518013530194949052521822192919252261499566697990541739847080361758327141127122863360518101340350120555780899034796868271184725629992819239129610958965362221283933932048040416605303732519218043377580912129102642442098761613505702389725266442660247067701182096361922484111611889820250202524740941413810020354089680959183901890876819764047900529777555562464405534157029191533126111974387038287904481111174357817745663707987999524504490811688648996233017780632469959018587950585008654814489767585549588127024170692442359755035889136484664680210771419340411772622101498531644537406600006323649665152835170008290989752877703250103603787785113008312303308383829769732334278305963163418445732842932864810412802136496617064881703484722532608794171291627538811222229494683109099910726478395663012510252471658698869065138170173365330671887970021724429958487106087376011773594663040581702638127097154193037223087520971510292252306193133089046635924528889982449859246981372074886009769113109364460995395501416191901684809443363348797147824129474764523290254406806528322796867393882094020070379967575612073263675050313969414397977057427650993211180491854194645149254058645366483178219248281740810359161628948941596626759492285603660259531245248578716310266719205037628173570324700857723215356999673478705659323030774843467221531711178366268943662616253926447683349536899603094263401870024549167721938714071547178211510059524583127090860686860321581109576635119652575079579972071595623285209949191061396824594071568389322664887757745877666382346625830999937905033563833071172041052858060350079969906693070523132107719775901051420068663857046477993746022963442981874665522120153751887647963003401292609159249798455464528975863073594701203176301084086493835496374097488903622538713645130706092550785002209238845901818182159827264562300393569987038876034498134555416645904547057567303617035369480283228377572578753503702589039562724048907959946095603660053952456753301615767300490010177394112471508822899409833128215027098823562795265401415200114380074450203771571023279165621664141881217860049583617068770884676501334448291092990523129918250084684415553643809877530480631727091520957333611500435874637331313928337173154218767638453684948895441863016644161183059706743363689219925574849705268835657879104924534184753731641769866464958435438126659126381825260166917082659889684134569621050878819284087809137522961021091267416290526630809248822778119824461834222232540427274358640390540034570881124347186081031475499476143605072141253519543418187279817206584251080662088065131911640053953640896690239325329893565027820180957207009048704208246086874964467060694929822292758562000169745035832174871523645037667594624664592303423968786854199308665236542911371154718252471420885420695343607202558589709278768570391170108155249613479158270861778275662710936466114834070378093794007878149666430666629643052648986274394473726710172502531875482070828896612616431713653583918702622268477028001136255274746591843708662755148571506837402745657203655364193559780568363785814564924897432150023113924762960655910474845094341020526789402556402689716843594830505669453424893658062531248396354607748310413278625744398163724236573755845203376233297326981378649767663689049013838437273074907552586207394395041996175738072540918172519169460208794033737991522712906225670373232360206810970036265226781574534597862454049929649891009126112440529895856310067746805737313584574673723593567345202075869416859312887585620527381670881707586057582259399150306280290767585080859476502638474599582066065608182947368246531123176399045585974449563257064209933603025055216254296738894243505847167071336688557511750738519118948191994255759275087277661847746354463705767273681533205822240852329048600621879671748708035317092624826069977626448218542858665687882840277585102857808550239971960098431774604063158897263439741077868687798607291351077815345211417365098107452093220537651882496470377334097798707239001433463197434040364862839100536221975220203093318761762184505688255916041351049173184670687793439632204770305532417587729313565357551073469020154914062229260934233341765147350966648488037242323793987345622275475366362462972980005031692773661161692978495014637694311524251680035252269593448871810489007085527102270963458639291090145815111915012195453183577149194194617164263830095460183287355415770264699572189622794493913546344139521086979590167592976911440315067494007922046127663445120620337147316665779448230115895067757310398932009522365942188501033034534101221728494118388957248335843079051115057293051924200665729481079447678786303751621256911854917414984616910488758188863337669299111093716239832402424388863619630372641504861960443509041036822041486450247534647493409065591388198826525111744632092657876056092684552140637923319053410287553216762510508212257566159164304721352228847286703965374895902813708092833609250752386890112976421698597826184037872541360806492420057987061641612087269741190712656020140578924484823210822348734234452283545189488276898387220250100260502650989394961516110503611700428087377493790420254009342535659495955802525450752561928826632503109317598056673511128092389565464332665194590423819333379699127676514027617907052828647419736852656268300270881193835108360992692549131708624518694887402936588640199144012153813495971755489134088153592421650568397515937680440993537423183268807906410016423797676388340327689356092495115938261967023311306647775217131622990316288592243299717886743549557691947971806914311763841682504150705261753775323049804008050617022980552237864932429295299286222425505765091253066959744360982242549028028780791555005829294231714885623406405669820347612896288896858740399752372850418711466108828016458453049208655644757133165047629200439944447880983371158462648025460126261963969602533788716726462421391111131618406067712651171758379184205875266912391658478908511129658940790597643801958791990205871044194009357970234853660462520490297533517561626868535258516953124983639529531187537761521639616182117578676409800869639856495915117093211716596865820929100187715063051795793048259635090232072714738672728757059134491383532993588995276176137460365169113386600895066742377690377607609913346685368695758381688513784275353049416970641396743474774989180961815449297962716577278837470232185573726510934405873401949544236662316174882399483175899893686991020345273656921508434286311689256164686844259882209684386526892589440018985783436057389129798813141140529080410886312853990835734770595111668305730513086450461126557281988457294815576576698148165616911101033450882730057722703068810312146327096440922320336138135445072514541519920833571777171990939998622719271867859597729258385541598479137663213176106915639763748931392212317906024050019476608098988910610432354748667497625966382368178821577117068555337709453026852554629201730740280461230590481502610780034622830234029897939943076569181880843008833481890160254782207373383150363924248948310243623114483175769760891060235960691707311719402742444466687454524919398283616774651801029544705523783733725109357996938136788915512378618541114758626067328242972506662757851705667381686572856840541539143161414250592187860899685444252116626501331346494390330388908701479323602055125697321732574658272512823196062093645513895200817952108645626065144557304920347570304200370668465675096436418327367944284500972778695682217062588482992450440999240673752115263793038471479438461061440103769893008915257079899259878092498041172018781453882138367395507879315151470024533415503100993136897653096478387488143281087001868618877390181165725311023268573600568037676287544915179236117670741403662197983220499728817447092086349170294117585211055094800468515288191137726214541022274336852320563350045044989914107018689525527240636180291410758408148273970900683819914460102130847494930091019044710519108607159238005503273773799404782468933847469506419725341753139554998991912894556307615803123567110085741036164090491776843631511301462917161409883572633677624514129694882497216225062680833323778926508098149425520791704638755569572862151153315717702833065845316955660008896159621864240177119194683069061416116804491340727415182022727471210956665863368555663032767665611877020256745800094021596451605738604571306883329786092490234534201176955552036393977829844110946670759072434286845212033214112833329192071308036771181197416619563895534029885519957003933262393421842253852100008926827159581682182386904308739231150105668329082423655576169410427542500606154024430279687495731757645545252945472672949514939073364580441527259421171150158078518029825751590157262539549836046672067624478646361841064771562206522178669766609851430485723916652053420442391529239519760115725379855116696542669419753830036612951577896585194965041710896514974608752020392428106505298641384479602522468604344020624319190069087200597950836546111102235760610126935865015318001405916624342121097426342817270381823971009016602694488721094709688622379508394098831035329698969848795124955870744919992991595240947255659265070493762386165504398465840072573772893908829191095592377951574708584820641458589583997610777213420504074498056812892768133765378693657614031935589444277015147075450893870396151055482536097487595035836340786137524923412226891866358427726716178014186746541118324954479631279209424527763791166878079535588093734429043889933016509167185073454835671806247947704534773554760809916999864971936870368425885968068284109147243902359832798107198464148926578858255973349735981022564215822158191659949466228849531114069383475550230492534593357199092136598190991636105786888333993829099204422964489207417333246540070531473462185199906794661614143623503429284822613875209749330961652030483876823225754632418339248268383958221374660593182752911539152805651555497666506547677998959889301941158182076334156906432281597359445131478871099212954888095614114299399756902521122983529054332914840426765292771893147115102142707678863736508342853647946066764622474625645031008246194556009287064741729086165919549320610359579365214415383743028621363241055095253164147691723341126465827809496675988788422046883743608778707803512840050301002204929554750432889987840947079075058382579102117813178530918711623667327169863494792360081225217389021271350993945348746155501165643186742408827453024386309206675887120805784786213980209964252611978687080677247309625579420776740121512299718179646702859169834735324313330749590001837442898261339372964155832147511784601862804486163061072274306567533726530101593316842852296574243395064583492856027851143998071046975153712443662190989891752762888220304210493187377193607739049856325494083717758535011373212861802355431255241220576085366054181802944461549404542928874139881904717439051468756537350042157509807015885847175802408971015794036210400667877377050471116302421267366431153067894609906308862718305341610312150689616250443602423632820065350472522212753526671874653819619986138410100672836195127043662263078711881547706114928645949765024245631620637811241098678338033953438319635906848757633856185882037513002844379134244571673978241344972631182825608640865190370464145537105914107162521531824137226337759252858696039382676938117927872398737591918108727068938339763173482536753993732361217037900226260988423273003050749521737948373531225060693264757488904520124329827683486895775065172837891562526046094431255090244257254979980673317621386528846457499324937621267702354346757755940397841960221508298000029211130623824984864313760848468129434371964084832149629252638901566226935025626307110121847809621751275694250148592847936684111446390043356971792883008194835868172899825987701752945847534334176114624551896536261836048412409183120449257320283833379547140742891798045204683945277166959107046117625603202073685684321180448427544018217067642737413613130389389151893613449163215123645847185914857305242221897510985397510363045799555097598525063002495998870039598472202831799597599910220798204305768037407995332811890583630853621744118800851366112249084700796174081057892187430174172242113543312400426759171707169020878943943471827744351450188070279711192865843520546483084419132226568270831859261510956477186705555747558147442142211648618166537009851003438615928849278950281396722478156173223182841981619819810327781561383630327532513989112846567922910436303006281521752764047954921647346180750424861158008647395790973733925766567370722058789379517149200151924489883544699004886687230575573333474347403399627777491543266166708350615672657746383234664619278972818227490818313755214580009188771554781080955530037056236515841867404580492239814981685662139221286306913450266785865127262882795910185763058681488127164015033964325875105920105353779601523107508372751371650260469328449049625047094560287821153631384694283863674169829521704640598938466175446179287905095869114672565917268810174992535452423434563341036722579918905515607004909297092852673477869992744806873276491246962397054870813614451227326379638277035050558857580906594946442351534324315890649749329554444059819964559806614110978990984276673403432238522924164595380653278919947695436934417869144054424690523419126397001606038142216478005022156236190539146490647731120269567228322351644753763079909626682919818021527560713045222615332581290471052012401018041797562713219588130437154824487060132272916820961401927490422262562630412223220849018919572671945883417681481479166639753355009093050917468144899819993275121335334254457013226551981439109845164244964858665181684891840943784964210221878634996569760299965417219286585990489633151447724634473631923124596194865325781977188492660283350285669187309319128675308576593749151831341083880841575650436175827401483756195364926157855916493067860273139267801559812455026707700225669786335731570166896450509204154291914432226823620979710483122563552568950321381653227589296915788076199209534147936348220748586498956927737457147966267938534444151756271319904288007528392247890123980622468761265335593114684729175959889102162793138817808192714898860260140407220230978330687238167070328098519589854654980189895035805987226942665455226639215917728160312945736850480411676523020192034934498259502426761032073974443434135640517014415155226796892112169373870615977856517147568919358154278658135423930678396072594814964887558700493244883498253412587802990137463045858707783927386877912997727945693991999300243167994068156854235029506501507205663808386208171416451742340672059063325679452454224752305067287338218701712227722764471841533582143111486700987959343568090842579921115820835046381135329775087089383745733527505595384869159614582446232199246689884263774681898182677534627108918652076823820075825995951696807682948400040474981801817325465342304406430748666113260310958214199883608685547491943324913953883035573083539101672903369802814937589865219222287536198637626852283779335676774021329302578399115806741400735409723396525066285740152226292885270581081865903327338772625938886124264401293077163554783579395466678962739399701745756643685988108948828187918094078954046970326942010019273891958071431991966678488480232917924238068421125645336195649993673139161850653753069409709588512050447641460496706371883351173952038321187040979736775334405828440003548080839888442955980993581258743731223248082703139935974895765745632468627387361712572460777938678759589239043078873412392436021643761684564841281334334502268104051239435554994907090411847678027417701170223033926533670103030204035495174735672278751245760538326478181400028682488688106027452642828678270806348883046638241137113195793986474465523667329214924542265481068908657476633452921318697121904696592381034200204110406096413160207143277839991092363322624563982050187909178711438052289430332823795603536841458082142195177006022037343284380129053664937065199668336231798338395736291054298647539088544950106636718435205057161184040959606351993880144399741797021603763569732755262494850110289846942526054630657571475566873230287166572925883841840225954868718997526530510288478981527245832637063789753028649891660810651352965736443145810604723770519332357033312173015921623185086923489547337437143326033060868430499452267918764147149797132444997984226221252838113686005054184121609695290525172005700288133475134245710052893906247945455067029476571896388626819096085151376643830099944794736899010944987882898228725542557013781087139490702453471424205179523736921415807447485170055062966777265739714601022606568874558680568071874455793819889124787797523230688953015250938085247598971775981455832856573378590231657604955157370379870066964794974336876117278389365207077102470598370227214560494817463684848620489722493218319672978551901378708426430526953730913634015324176128982899276697352285539737906826207684474825144007291385209632357891419708111089176294506402916964063726244934468621986522814377035916677833310050611712312232037281170341113374369055132525739311999040150624827399970453455399009279821213538970657576237139422656984567565117068461230101093180652277605504451175622197218542269760659702612656115310097724417740819165528213438917816870638274414090502339506448297752594092158474087787030724751926174885825260297523733766354390629099997460402928316133909643444081186505811426606245736876609184726743281836069252357996428348646160360677117663022113775657264285958233087987896473759577150593680604555495168540661955967461861886916478469309933175707017304243834135960510921572705894821188008779847827750224824411779170967315881379102218278826866884059401953175678765643789021424138719302291156257437408123433526890059325198431032914499596733599426012547284928567158821631521485528176750059018527053805498019124627027883289099766586471573934519034105690415707255241939690945644807472808187335215027305453293488346853940169941692032796154535969832456899791323857655952108768880501700007266058840261342329386853926106219140053322702964940119966560697710370356416436709629238404071914265991159471674739021794044089577713070920383685610732827681518823705389791348075533676082779563191167999312464067801219027364146962769994740239070742155062570247697654203955811365532593255864369624374731661708230324912087758037993079844620390504729739802274314753439531365161280183304278455349131732859195249531272316077962676699807061076063898437718144258035705852656723021154888896524236408164832350667353408428392304905721998792030793638890405404637673033004087140285403346218388187542396026533921610841462369817057504352092897063711986003617662270949964786671343173178220701837739123422402132028452500063557383474453724164028385477193201377936164940168320966823911304580607449445218806989217063412860979264152420524821659547740869934365885977889632107495294066037493883763726469049578415473705525007682439342038690058801612925913068585517382022831284193982043686164025213174560272421452951845849572303093312518522872591387208807804130738004428061087413330594920275934017975497142935685639780709194106439785263419355926002126490017577873188631479001865500644077799575195912017406596894018496717326458606895348045377426019168221128477115491912510395261652968277841968634407771459799008615425711953815820994394921020717727898570536899518229017950785624902147762351260509261411110219873458218376283032826660888067117128134646207667180544576022394393259844218194831572885213270016767622604138508736060293638740273324677923471261098157589196636300251003194646844433893120981684926574048798729256424459732683547913353228091388266070466132869817051650266454238476281227617803424130814311378684524507374474772437942175851041348444974786956225786929383183796826744615973386995831190119484328752450117626858399398398333657958674113052455283672385676163565216873663216459755365189219493690972299080905783384784073337700707785048793025103443254306717632187276031064154256958115087502700095108370187317187455393097774667848402503805076572967469281894849828458599270310177861678372007501109843851260504421893352312478559921397433128727633599976204663511362079683897330330234042876180055538989466693534151864236912913477346113471490446302292505962249536322280187735719792360456537860796411275505064066874701773234182233232000247485133670565984647903795993720905848661168936002542785336554378705489020126221759265664730647167825409238915792105871052693402051424924766951655547942428423884079737476664748795829737049037700219397987612228291012719969477203627646052135952755697237026475371364629005184504390753722631905534201009761666957546457855881043540671006988493572945272893453078420897453577184719667107897083401399377788559574164443008988653489972066430788390848839341995904469649175800986768498865514736809064153767173745968928109379568018169854293591055750042139043426976119876671275480627137402156069558897472518614356294233930343244993860609537261561272717533636289289418268121631673355027140519927931849406869586552560934561144965674320441780906579384105403441921209910544422751370659900081609211498755021341259054139428090324916717032298762506363738842702979597606625308562489515433595265575653638797100333171745957589103849190359957954474313916479380971860763767505089445596349174301256779911158334881908600743078312590314466025122223378605452597425275132077782699241634968490753840795133038202296461232615560603353840647414980106283723900241944286394225222572542105134837993953808917945659460012795582779244514544332082405092086717344001689133246039335787694477323105161096825338855628696900596418316923270920600922631817267594865726478402530055926279296247526208051099593192861713422762575484617853753242220534487521728469846907299794889086327967201075214793623317532880054522382960905351362660774445215806351726106006489646175181465482268058948793722264906747824007855506393571170153907471135573669553865831666721388054750639993924519286824011065884209840645636927999859576809277962172700760746313629667092645390749905607036957266183097485775793882250035369777154402215864672590999951279867382504142571055384969875301971215946274755036983603330101472719482733252168453279262831075984163764354206651008911172044969434770199930672644323009389692550734284917762892162046530908534308425645563072276233704707248991159012401306075979035670408814972705867838402768408936408062665099813407318032870224094997193714517216475220696815301781264391786888334604762359701921704705310242531586437766583635837304625739846061094369214304913261455259348650301812187732339281104857010833147830618706824320539612603296700160817262949348492444605123348885789847378132501817149983694243652207233690666306584636724933840482553280444286590508938815049425001464929446240517368045684700801599499094481254843339063956075202583294879549044097550829481214813537348159198617573617768432497348617576028201676750015895300362488471326289878470272570570629973830593152119961193602972207300915291004382379931518975155511891300004705993777667972740235379412053071238864073243280344924833104024329157448361748883479783790247206046901906630269858761068274442265568729463519449349053184409751054904654227102427286614963377023984496921751097423408562865374988507337974822886856387317083500487231372914184592543952546011857578112607744432901308253411994729727054914934232982457408772617353498620612781674039883045500848292158617419106528570885734667100990798494090236903317620471507636220879900643196306013745286340497482343216519428452924556667272340932089901664692556586925061039460461734239846749867620584536163741713117306315014789634961288017759649340768687967558648826842087064096268081612490319890271969266023264636448921264645331866660912900348453960416854078639393928439332508993859539196777922441119775846240479374690190418218689145127443336938999856956915650151574257288060312068830142854444361854066092711690022862408253025629633131250661059397837723206815737177488997446917341116911503241821746186904191025174996560713676515564513168327175088401965276274592353238241003946641659310484656603676980724631089355688376630474715094121908255354976803748253340273776478298149160668950416263318796232610684143242171188306130817893657794391877300961501218090393639962067242840264646026653679692564073940148928887912205935893715941044682166623548677660967647743887712458411683072367940730492092686310841234104386477561958789413367026970305293425002686974777914937491015219232816273530931144822076176598597829914166428019840659586720216497453009950510859398804532987353946083557734354063128955273516854462312202386446671003300113465691713176879030038602118583756692160055886820589928947865770166105767252810632281471195256610294187088278615082057324407664778215592678107444090180139986500570011340588869891058713310391099438120462841524001068416633029056487083878202682698431692130373090019703717829710858219721948801229566121507767086955209380630263730988211655086027561630019563672431077659349878529276900366842048459149173084188581239997491424717226646447588341190991788788013402246758795348036755681599489716042487146724082007210658337256965464966894385416489517909609814368925171665065095795540399585347232243283692806062985670769944090813856361271519814555973981213862310115839333095882509333121215083237983508235727969599777763336862617322626985482804053928168650314269994539814580601643201822836974433638880292398194503317884004006952172058558880221071828909961688598267418994772811938277339964828741268922472574319411927605962683635293253708232696491756268215967196006284601844119803544355291363766514227865332094283163731692709487818095108737405295963700153084064017765875560369684377178789862595423963653746073571110712335788381711745296202859172547579180066551902490671776948569184897868633873115274200730706362118832878763129460239728566190886649355408285981962948966051699764718043351458762150104253905937693635835808288124489907997641527183734108853579422675235530021670060080149911201504105338841931922830308007063460987992869657754758254007797970763397705562207882436397513753014964904289494161772966524871916827933826076967364412158355271161123875623576753534914938912263567826033973258246349878048451131286318420061881626063200030753916634567218823147887969922727202302040634686348043272150452412025608663655260205848192824596748969364081207275075202672486631510304901063480522475148071998763540623473247711865917667123931723053003663288353766903458863906037805297606354527935624550587224533962052485583843555351028905625646241579298214318712088086904471707772197008913852455517492153602146244278163238317567579764885557138025333169469463267536238202015190302074699527794508855579929053056348814527894632742066792849594901741219862332930327385190824807265272550224822737146778269211351270377534734462335746706017346437666495107694947390381959797170316827253348099875800719757406203895710394502021240039386113000350402306062380711565119315447807238210470950866679807561420579267762706374444178457342141172454779090669734853660264462042376694816532650126561056691227184912214774050998186752496757259515685967762569409070225551345306760437907575084296585176537297935835131132608466180768994428052111540625517699775544583302264517205377518770590039470027594158982624102049157912520474118346778008255380714532906340903525380845639678413162537265839087471419955972141474529411893861729331286972076083310911997609646572250038702861412771726603477923960000266988194286125926296604139330117990736756987924854178340395150535741131170463868276758850143163145315124068117475843206972926787760793175337771985817265306340774056007276637006084414278309452865256289387264002713734010877011694415127214216418321113438584336060759258298137443722552741905988083820157268216679890050288024582666166182326586960169059190031879851754665296607213430048523260260814295554862916353534033008265098630170337592040510882034057725692284640864255769913159413393939242084971790731987009989433259660560542550699816719893932387508252180112219825239822924602707376861113083609456368027980524936617369538919741150586173343439464576744388757219997494010850673115421623201490574163091638803150745454413034010600517282200040587892582966694743543414001588647310670216402686627650158103671640447331548054592062817812152356031793251637569100022388481397826581296136607332756440036254199160939674519935518796638383781555970991245416426123062308329639113658272608103951431090115718721227487326173007150894930462999639889130400574275457879635841781585426904520805154042112373621447989034626326759810944957493440769052438323480915611515637436482276317139809081748207222082896323030835786743687713762178958921814108167268463457525754949378131430435095971533692001238738946445757277275267213891815070559731270359856990144426650118500409562944457017949331390318125421723126482599202358766442490359560244544296620213984913177594204360838898893195328946694761506376940420355581757740333678233899046577355059499561930063384316732426485981083972209842380436748223495556993900388959696428764814788426874366258202290253889714823886415802909962128962568868071687352548498418726602820340856312010622306571251459696135092691587795235269441513348388000866316699189144577769760116458049249989619359744385289269915299801389582013352508351154001709882371145090549569415588970640031529487466886080049586805109018659886668110274890290028179889832801788837285899176018385869399395832699727939774897591844630205060257389094901555456285698260919668630763932202343390739938016923894915859992586557425870378139584223914214173321494109423541589907695457647210935692802515600410331369484256158732456796909611426182058082863288074270183607695925196920107632254541961272476851131369384560347099076778671447899522962679101683433150362847829898639337991819288362996171757584020722113928275508696696550805903358434895096684128585552035715354476810146531129214604676454488956579056709796347884785204316675704288806281238833107725320881418490786759150237481822704899338808290797188924386718835976916619011218167076942575277976351840244016098402898122712265572380476596732608303553566022201268280656993280307850701176486004002405096052781652581438648129384956240496007290161687347218885062272995578097605964197764244642950179970163141814696119887103068778766982231505848668591636427563034008168107393109643387446972074602627549043720582893275380737483356290850743300106498616373603162186781064597779012328992997346193586666287864417780595429689639978991317376154179734989847432363072546798099465544831383643353719401208126931406264188296486721356216272585626170911355833633131618757323093321753518810447429552936787169255244969690384881152330003363148583551867526667978828590056451323176922775080486552076245351605612212997556677995331615457094549874153894854921835247980291306440951352557906620785487969930677034419859077025249014311092515621338633597600682886118268979141609607491106332482150859694073165511853776086940475427558548277902823425421138213066467865979154569024823066727639233477828221320511389059166582282289489228575671726218933928782214556174483905370396818378519855093303541159367133132135527932187266988599926462588750515743840732893958051473939544876353655327087151139545493345560066500371154398739755692155965636809226191284054749419479406219613648380672025016037791466224997231579564430408392077973866080919073090064157062604714723436249024457231708544846680686922812193971551353548774996848220726606361874297311161945806708025989978442484052811986759075923649979275691060146731401102157221681963433535684617971505285992390387179849335652344694224875413100401403392649964949929770212021108461855686447751215673048262193954999348915325882424398428864498605311701550960804795632704331737583104362282792959851256786925969553992366436799002361060436025009907311245709520043701509177588570907425534135412216229490743685327790769701973312138950087245333550748036801148343210352624028500243649542035809023506585472393705715873528391674208078113708035833152673980805491485155635468730997539553747448816086681328263136974597373853404608355127899132763615663357407295870495556954554045726750947950432023362764567776524464860805310367924629588815861884728347679549513255481382652120952038317935751162756968202702057317708611396750787114603533034302826320277553211867659552877883231492557121226650466726994544928515975836706787641603713885574853871761147763517485368803799930743065302805607297587383776486433277363339229992133528094298488133333157149495751468939135524729993873552490461560509322105766964331434737716869528447783576623835760840768274715642079984783417653462033405779331760007332455903725546373150042342859107495746777310899554582468334854214390552950003166076444911045399395160017505924006193752902912483453708373109428690986860802165756989136657099926120534930930681268717186826319555360255166386909809071084534920164552632534647507986766593020884397567781962663334137973106051037939592339513071067760584030466859685192076684839277209982924949995635280651374301793036604062835809634365288947462471253009974774017377360816387584633350048191902311451503781275459574816516039814159961353446486820030880674098338054391710088968104486011277068541774050626834201036433998248650497048369423941065642811145774507185008657340404282546624183825856596516967961331225319303233127235629825677657321969167689770197379199968213084019573334335583619105993035451196591500480508473648255642244739158880286321136803555318481196737740737301053191888267023905202421855462126965928223658275349295380069499055035459179323475884983506043080400834050114530090782174313945550231854236033066458703479882910645730623844658066222249549871863413122090801184648027493754806373917034711153060057276278329042874071774301822335682039691842703912631559815711096937861892516801078189892595764521692123889724688157656818429336828130386724092744005100153876362411501446607117916503260843550352819240255646344573833960094414942970659813673925998659952967092129294068303903920057750853179272203323562414805985524133805804558280155917836776030367833733967447077266319526581959036407772466939818958975955663617103713474588464019575071076040578850234458873825673982888732766689396388655510279394819581780619764059682324994729145846138962451132345174070407375826586898340425751979640241831621077952754340609730763215666934144446151137044146946678212811430174935342196656040053134948089561683691465346707780064684002779573310200048220293703137726605536642277754105586185351222184814055731203108673140946946101672066715625900989131107349625512620983659319857573902228300626091374457335174002422606071554239168239563363406844743861304619585105412039818076106976822754478053604485628314508299693898642929332196026075221006215516232229399706412933223307859678116626742212337282978349493597206586268986503088888892845134512210066638697017113543924364983957292386381422865347093045886338367593346985878702367961999420021888651159022350472245112197251502851595745999889413712303435944863417637804055268346291795448054368008245196210349514076648715096614721616453689837888052595331886702124079260080932098397760214526769060817314848857702050592512732798295069309876372048202605580976528544661631581890587096900894233631849102926230469440255929532787539243306056584156618868399917775166816653894516978776456504911469950310545125503471267067725375539273126093368578284408993051538626256742884682875472671165923759895588346283157083678452267101359262562999324233175366117532743772201937401209344154897209498102445238503785175803844729481556000723434705849857525213250913584289630586783694598309963313095060815687694101495167866417333693192334499603224236277145427567518030520074776214340504955797746903084331269453183018563804806817610321645207920849655280309996765194983550337595649491179737525471777609830144809733524855673156528754258205131038044297965946828110215508584625300641119068702101182858531484399455291991466920548419798315461559523184697206498714631496885853447414367374818314294362812072930514125993308275009912292220576157708610422036586357707532346734748380405514021655417807896788699870107643915176096694106281812854459516259073192832399618527383551802729942226276523329759597387493932836448023099532841165363569560991858169631465030354819170112247453421378516771223769290550959567465096890974973011962007769827842786967441739790966530106227109159100108053214588878193579326719707315491098189986995597260190338603461229231565977342274053010556194140573349514350150800264143182225629895003297407118632419862824192918664919971631932569533741105520032651517133756436387537229830443272839051613872266017384412481183198747409256603068906459526903344638958548484485548263941072012489308137159053270484689616256015556737701685801890064441334791588027375497882460057927815112201804086350500859224561583792809979869123085591379385172546904043697895776576770821771528900718849914043039357700982198701450122793504103266898083577548092073990630821264789022835850654005612715021516678459055458091718617013222388218162110480912921263466610445038751549906623207805169796424177857220469214922599946231274317031515176467517544745027034279547195661262243666055861101957887684661962643012243727172571120082146460198298955180585120327375488068244752739683672071992973874395462854275028707440479539128739629488193226648417759754318433462497682450821864648427667134777682839798083092313551705394133934210722192543559956120555663120610786071553137646104358967661194073620521947174361552470313751799783260061198313700499544022231027706553021564088042100304272502142797053470094411885682318907374491060028565406754684550690021976778535153486855924183703638920566906295317968418025998522713868975827337408673733491219476029648837977106452024456241947622010710755069012810994357513819834909288747639931748546881236985312337739046628586782291070044642106441224250598272800610683515637443681047439174346713309581579500665322114336937161992074869205734128853554269374166456994669826849576411992557990326915393918828332904301950911659602368468399292227179595059041837240327338455230106595155072910385839491350888618961466811681307591348358695594353784780338916047121708920299991713412671838915466828296018270160587351733850138760126701885337254910625259424413852689784688910829261734627532899223489182409338503038844949388647908246503754590452641750500930052296040605394596560868767517502017120995622063868250281823494688090892983453623779960028746804837708261183790292415693196553212519861889888757888840551122198316113982814436443453101504427207777948679068219149989498723208319519378520538993758890856840293615311295736529735230033088197190894678552984715957229690633344142191702545383219318674571334743250264387441084453114627765358708257852577104599181213807302903192208899433558485925602441988417778516759834809683769704301167998101805643623619812605921317892754443721852688757235602171453891650550233410247872730478502811668754842326259621132742577055255690178926826101543901989247846620110146314198718146518117124623485179207204022511141936530338732739187262056534263369194398876858163459727922035478094539269009124502095628708945495350690942051134083940715274106349812573768275608178083843396590506252980856909616537738503234170535008594477046862065944536030234466444424681983932644571028507234162696321987097671223745293379297259013658171417008600554393519066239469487835760859132120908272097081264795393768393119290735047906745629563429358663370200485371328848703813085038139790362816006006756133683110487128432917795347620161134418766028162848325223349029235084015327251181012550058711438342379136528887084839718452753817093966389204315196790922832261233630799765734855720636578401540026651509843290020366587184371205674171213478457605718252418649575829964191406669755151794846586616080128650490533750131550068038272669681644484072306133166820196146665250911067921837674061669599364398099993278018897725464980736051553685719427286171710816914455776615720420778231342683807413839147559723576118531555474950711400653736489884778937644166776050179242681539677637607150445837316694508187811535918017096958355539619287866417325289585038002144584277244275483954802033169793623308160110622632348321223489350733505425389575392248603325037323072400793212341194284843877564473388328577128544796515720590832689369945415670476277079515672433147668870845301095640622306439783399879648631193943274003112501659166142116793187911597295267669863737133003583782884535065774786863951119408584500582155926013105385914571399303165925513780873064922401297855290973374902361170764983247859935666708148400255953326278280193700324092404971105043525245686420315751333827079149416589851317399784082260226019395225730822930931685563665259569433344632963154622579490414466658521934557366275311457058034713020823805540935749468175059013016706743872007546715397722656080501213010363124946050971548634737708983327346271831936256592670763945876407037731031013364845262959900643411865173052740534081314662991841263048520652055005469929547053940739359834384451842293168078848312107717207903433003951638631962616271272469055341853229772500805247627633470318941116621450025647888604487006646486274205994608888220890719930602310083634384151771143654276487403875010421966140595022259383063154231389652108963754236129637633621205737983183769823684821098437257676919103223094557153793570193741250908139728876835542327576926852371257616027235087608151623432524729054266509121904314588441252135751711947362249830659003455017213133196532429227648134176686137381760025136373548472500746080411094711387032402059925322435513820726717185191462529134967589576145581988793393456926828279445898171362998531357147209847172141717048792047917634091713789884615260196622871268288980049997733799116479119640168282490562211678761226991103688972924642319758594713028661684706380096699972201703206514988798640598117667157916015907920352916831950217829738638827362122468134152372289791436697910536471229629461086292693069048839321619219527620929344640593732194917837950541158057759450061127020305456401918074335115816400222625003434209661805523328450659950945004035275827932408436417165547722290399176447005507632796431089281237236947732648847416706287639614248042214678787188424178426648024520868755093828411465465277323734796377095082073037338971283927509899554863668710850104963860228124467081149633274605765628832384344537865648524698978855143637551055801942040617275933792453342997418801584443167457000321706581538694714196526119843195500277634440421488929984317678864097357144754685748049414256307910869101569207618837405753547077754523976625264063956972930056959678098676329214909478892064479709561767108641654885559580957825493246430953703218155799878927069893737388579643046358575061508972905362226914603029534058940511472955599073035293883581399032422083797317538935585337592923879711309478384396284386395717054734891111163989934255990063667674790696462238286950705607884812127540816209703121181262321347385082396802100479656408935991758071265214338721703922866071956459629340338713478271396280689557924791720634406071069213387297536376933524059668129050073239672998835831221678724867262094024918388778646203285802167034833034451737235711380648388968184427581663506788747640724212770198339567121925914492365978281487085431911749140658984701133875057279802438387499406763589768251791808042019238364198488440568025245381555114120206431041653251525949849450149927154309121107907432643213760563413268805051186594878876029104053761200294480197880701160640685173092794838055222732973342395107204962147755094429112458996619885658938834569191225483291619600259230304302414578594462134028155636618041838333616219907440593123106335785613917392037045948082370619138244347531129370573744062426923329852652624049278854030554474090699542756105719778113697105655347371876917718490472243513179083862833917959049355533372478888745755803044621367052513026518477429541692534715393029963529262939500530893981479880789137405022923727054149976546926788866803337514386478934316574506444487223084194003221831709884943311097216902758347557735728455791702137436799699214864695038221421866917467140665656186833490384362399905272346175799962063829602458733510596036866766567747964521025631260648373015270024298799406957876183456218428469077524814355686375191891165370633218421808013304925058230953743403706208552510816885176652065062081545125146167496853505341293849142231508816818053588596441071339771227907496904059394576714680230445505674732067429053942070133472427794170481504517107913431295226926623862171927487863805962255586059353500768000232514426550651442092448423277209280251095388850004056158833266520482293007007119392941210006786387538841994273014537863838529049009617067286289767621181482679118237366617267510678560818911644536959476323792275539671685282780412806722125107009153417449752098864266402902321953903338052384745300329233300677459481553986703836464753523024931954292781706588168292354561924394883946029857395721510645083519241693362518957755254076852611084238318228094821569049555379919761076156810050809767447743222388783524018840019771954743524435311376518183006812285811142002202028392726420517748998884326890034464131011452886151435767443273916332948117322419348738454231555664028216833752708936714014921997644965931088947890807226270542162262677807332627037977058470142922684807063091839844792638611501765550989286623249791534678687400757986747642804989886586362249497395821846295611739848273101541569158968643084624924881310802824857044312477542307821441586101836082483385535314321038872710860641938570924588062054183483037956717500053210333213089930015030107854637104207479873987181007106940144693161694709092265541877283863477935402133484043722597529156651144838947243394683354899687461185629784748108475663383396446322497985002835352743892672616908287333613923554492331173971866612141465387653312371398766874890297916224210682032597568356933417483286109627856242637445077749528648893151235554661762134234905296512032036433831251947847102247255346266614355435585804036628322018518449408893355898584530608285904673138837580641411151915829846574203642855101360802654273956438484773732205369320848146222888626018339009913615134767000324513705029005793024986492082801192271470062193661175538579631327676524089496532973923405780578881264891881536978561249059198523123682127157537356594712911472496380469538293701397772483461045130051887312258214759846930170556346083892907211743980532965322830451415237120826994103360267111917818684210026584499787922118297336661017622697433314120942284582727733563250607225777356709465666267888150999756814626324462534487260562765125050844385166315810728898052615095378714414584368096609359198512540548180717768490112694286218941336028363336728443789676056696823651023204488828790373187605910273095829086299381593576206898653265998830983031840549401125532020416454953917520902502709218928880104327652222330275081503810652679873886005662479492019578495855904341760418776109076251215995343731011471303972823108594869123431476408681580462695799982719987951209738370244598553361305862719705861794772499056604767617979860685649703143737925895652794002063178155782741113077102939556048568238508585737917801768002275376309853843375371627520818536012327066643781729202807611464907862372518888231457702875706003043538590748565617294404557680882741719858408814446456075092122939751123864821841556101479791988641701722235712273579512989599432669151375070830570952212922398830677104732980700051972636648439712729183176313334508161749298723094903047435662835367098020581393525946372286504638107419232911298485854228224881728559934156880674360541124688796671931545600687592688359231830770995208858324834769389479090590667828616690842164465525465183807025496785049844831441295224450161011589275886662111501560800191502086938509067972620717034326808818662576697434021649195698475496208670545263913751095163102978023769238289636972918145315503621222863038558308213057638906971562419601133285235165719965616865721734532346133616702233027184599145140622179667533880154764175038871759175705075849937817732432683719141739295048291522536765439738219312183866038933997013039717571866055319859492377286757501557374327066328081284791204472639283155402060692994491616089696193615170194089417831665383256588407159645788031389159982480678311593183989492314361471394479928339122808818066283051117336221770453545226893238717411886333823848659411123040139823304735139398908701984888141870369460241013567227175785627566510485443358323026647567223356521591048334769312349753592133915230461563327968034466132677527764893270373980429697286933391814197503901193204161582910742271293171918936042777211048275489457336745486674389682024189356635379734975291507994139718344242395125696259124072719886252958594152181384889652179989487341325225723019543476999389834880080053912818673610494409411333523725297625966212564232506017685470371781848703285997032497374251052467649665113894027010436039222469605876116830740582080964982999551469130120000896691580470118759264198035350035225522538502726824508769332806233239885732316231917104527078580967919838414000187041285803045003267154633150516125935839939405121003813177550000576466438923311346026893872891441475624889564078792515845621068521788727789283990879855998777975780391961116362518330127103284748331703099556004478082602626233188074276511918643984672858800853677806170094280260452377512952653789732913832415718714954314856742465121669356294922703161489791019334084049821870177946453321293093167997755587166935448766799549455356480357992483186040362636345870715536192174359978631079022676173910038692227860944844312967721540233379833347103539237342947653818507919806844996416268458613834357128369746386434913457469059176317143069892811687654813022092102972921506222804352096352977701084723138641694585438860450943645485792800453389871272882853519037447571845558215643657380501316441831002740930592690861082975115331501521565169953223741116798107325001470693450407749767001531381978148294314641309512821832568119475124182769635725522844465492299452381500904339143655321176081682856287570846234547797166470021271652406543411231113498830082800689302831240360349769049674516278044915555488421940478433717374422044571293958570302452898121108439138980703735278337952689486874775063468623407776794557114144846916862779070545565755943566957370583798753005576261466727641044097830639783627984682666559193455574100143652685307076071471741766271199588543493043882077890988747314334501891563481371991741532134859613551360366871557427296965216804160467734950563753673253253478173114591147746038985728346928537483086026420240204870664199168074082047616400234589663215617325139904895095441496173036876828651551877767877661895202060677942824549140199574408354349147731168570661038021640452781162564568246707265977248044396062523844198674383206984234197989072719353361844464648640844513618102772015076381351029093841461687108957505202763940594445096746251927581695087854163658883986191448393330996730316475815018141073935388119957676711149445947487184342948775146668712099593835120682524928156471890063903311496757625531242018625461816025907347187381496052050924816938017263149044090954760875891365811232008663048894503294790769798824856268912192469923814616176142632346467364725932172815353502297873251986567342914240238594352388182919496749094683097918282167384361297489921554963772002859703927235079308034606234014623226104197403533782942549441365270707507832438332148479515915629264669532173481524621130451454913660124990473127751493149860709674989648388263385258618863604550173795231936736996892375257430088430097100653352685874980096026147826656156161384775133044376882360131896045830657777100713548894236604595173503618032015792724783626765981111194670571620424631753667619351698987861235863488942641733943515109312857874788518158729985280253885815920855531374610413629509973113048132458567321968002746531318359128650749417159917626719344783995207480429000760228088282616677888510281121362888789726604474634122215558169518989733927916147168589370259281843464940257736409059503834794324970218080026654362298452936125886895923906503965748024713657891141680116176097685066271318517578171440914073415203829284154415762753683211624523412158288490837231280201596973922022281566024922158203010204805175670295786177251465040899613739196803842492827510849469323873150630082172078222820788338244292421076861690614582739531094357378581981149532093111343713607507184070561189207260007841092332504190357410204539003077102165420685339866350187840884882612275468758916143170260533089622452402804112162272183010106921032601014101094810104405096593708335631235240356122727227458910112539870437107781269284402804614923572889235929571419169443200753520369257900832198403847771017365432579184832857253095330618001527135441660928676431080637563411324692084346376343490098582123040364988935640094432906278070251932268669879425603707667193539149623490900278824942019397962489146354637460532795927243757078642792600320711907623205131687438926259238736154205367436281535197879229641508363416936323870103433363338219970014108737299617651847272089557260480403249002562593080725280363084284533561531019897164875780851197842909931189066054700491205448583859123626132076318456958104875529933892684818224704119086695080279788741546850042829211133631600713916493195537644612867448308522722252294685853192401308300463198022458413336464635483428124370222718747331624513688334540101753338858209785886241012247832526662294959940922491235314580514589345458808640390717480186818098602340269950726697141945110095454902715030402990661308406736507668376516319244627406662653864807368856057668944845522800259560306631288515283313898928385558208185028516038818799567676144929404602202379872274407751005364354867507950108658081043819349817591921789409214243509666271189435722563977184162196722554924941085914149555228560180088815900099777118078154767976378191307604866274448915805035851631121245570866294597220696489709733467499935238696748480922573670111396643484501853333968937301288127467079069780116261467563846399022355579090936047734175785995120710556152741610502024086712626186001821993375081584630866185344338505494011305061566854345954248460130144212517653374892918044556789550830736946901812267800795000664274766292079409495326231388786132351875055068808551291694578013320429672680514662214034261969190961064805851986705914005103802563730353293212326488731116626731787060624104492920096587280977110282073379439258624479316488740172792885689551076468638447493662337059052107186553178977677452229919218108765662946731065967063829958104711750255925200638454350214938566076129363102158742447365795167365643262286938292684853781699161905876575306223216677004784019501518881289154243766862786117430561866806142130863711398352311187704582405409313896806165618796019315637329782876216789178896204015934054024666644134955972527111409001497416652727582978301847308836042217271963032774925846416410037890407156268597161584122435221345298684255026911906440617189404160329831719762576309788147442273275777660822158122559048516104511031422437362750331429121094941814671979188641436735354150951710724656557875006209673407507668928725252490303237940571963684798767969612139609761825616746004547900698563093308946609552520006209554989963217860865316692928591242534435735629063644388024430159243731695648782028847278528385604134816346937463790108259083645491657612335502282791261027767244436768514226367586384955390275619164055883764899596443958749516746837309770797536397281100752082376873840035479219422166847908402302412297209131461510499798540078377246330522411742168146417472006757227572604848826919011850744419962634854107719534791668689522026772031297712265159815323650409095878637041014197142066527292371832301467532504018824043367718830275914668297758983872958536622586342168364375908291816450825221292679560929546082259580325854709463439434657424421125101193576494080793916639103338680086016747204463433954844057311581604323950787291657475591255899151626994870524664432637614483597938373865823328390711730352525824656285654569608369666198431560052194574608575222137805242125697060725279855147469013050537051750918931770444316340865184452248722045513576479558249750371184526865015646549348003525450679491757189019392797821279666247580972945802508335638064296692490438886981039169133969389101073433390730425122921289825675264482514644111038413037319070806741259068904138047736885728076213371780696630395346576248054475492479400203508050957966976841581968714391235770526245793967643922292218458900890280025332668881425323666686153620654218493686673793456781441762333552069921719690187739966895308202755667238779773845741079804407120725949266083608570781629670154211996752360143596107354071078512041374278525104112740879925934660878877166648175050869010084925204291331806014284515148473963581717876439692066798969355384161100495574686122305468776796008024943703179110295834611249248521865064285634087208487013214024208788560871383447579098220976284617270094104699452979424282111258816572405328083342682755154152122968811754144562425354461359461687641577392100237031971471220765460335176686100735944312971739442907683607087374147207810024498973500398828497466189868731547760361635337791837208494484155957944326376091416920214326630280872859704963943568383437701141465674771653694500573957582435575727775489613887727049937091377100661236489552153155602740656216106823420924149924763056879414078154060122964989303326777745174540688851349039026033222647228330573165417919376857723337317998476912574677516760920757036642258081672133230028849416033548339137301621548155452574797971145787648265784420459208400032205284030820685865123294153191901882849311592266125875312091041286227179717783790358451437625509539279846402894927573931817418585907832971019298352464942121933345990393179541191244484146082062436283042703149356331790653799424934445771945354121123949275206872506137005758920683163301432534859309580104666167384831451979792954925890464098649563225748970315094233448708188832575903589800515529221389489673499501372767801535846028635778956459894169405973749650191586522202004690469599294607501872540582446037989083654574823638261440893541897777470057275241145151972248464292586474455714284056109987418207046559823914128320966423103115134150019794861970162691316062902123986057698713379465796481354989315628932656202660526145447764637179232923076919500702609625617679498359044415596986600891931149510659280104918308760540877099931081669758659137621251311298453068714043975797574190388142701489908315568330205473799368879005321681997454880276580477897817127890729328349256840562516671754107623680790138019793547749577626421293681137812140785013517552194719109197753637090848312303384289806073085409393974462983886277947478004358101780901834267358876086519487209813814089162656637596234782147196751349293723841319217109814638535155318251187817523188940260994408421065556900756940213764722594234812235660971158581517592777358218833046966075855867972584757873594572314615203765467094530093165447879133532698040288387200079527150508932575438769747047912922875911643353758083790796570496432677278931823853449255391506560164102535292907236658700205996365507525788950678829165605538397334431547512135888390988350928218730316890687372484912525295165401298373188472550637824470377471546034641916645003243537835680147741411309944276585931915576997977564078668564284898957386324851571307618422455131952395426236574409686547027555034605795764699515075223270154000869743263573927910168414019762823389130118806016608219043012838920979921712595075361862062320956151694660116098530764813413228328329806212507445050925684513660256966191573093558040079219421771545948728049389580998436918071707641361418793790227816868487541854617063702218225163819201676094959128521256841698819713463291901024666651816085603984996158875947775889878702502616505674023613794944696213463882940573083400778846786755655477270151943486823199044168893915849057572166543314579038435287905751607371509702244733585113904894030046532843023416434351454051582011427446677393477921387621312376803578433211690930863733774183854023818709975809879694323920189636515811552337116917984624687149892055942330605331014088536073824796142073217311878991266157083306168469136764239938986646391389846876312412557112223280348825838346400762369232487539844739640351124703298531163326650722474171815694175311695431681386807124763579108723190763112086787215932218098289378084024505307811170325444411702376222440216638637756992206241795845294362438949954089138944906541048929881936760049820068174048897977254709385088365321951267373365340742506175499576217821638396261093632791580932494166255897380468424385531504622989999667576372992303931585727033620365530656128902266756604873818674737039251041169196881458113518685225972541181994465375177244835684470315154086813154097268714735782193427432711078982542583245718770329428593947725130577329179464444927533890208117334880388346134197917494545328248422435611604277370859944333845985396102932463915034181264242499030874214222641043875095147228264143336950709621145560113827993293812137815502785833790089919985858572987278870883849190335110840602412307151557149388014223178061245957065511305269233242646017293619070277523121648844019465916393110693520536192929331072240853655337722541432351621914077309133284199065963529726675409748111066898102769378655309869986165093173877228590524297638647586415124758077689752937468235163263144123149421290344581064610794362978002682194091953992819455006504331405821366120194785821842054730863732710324594266399375402090188031714737095734640681002451474079575337038579606026744971401796246225389540968432240468501440410840859146871648189016016122338502474072708557153872822582199218171210827112756788299292394809961040342567142601002937906282248541314228643272916256495767251280613454810497174073299107087804581441215867271085249318629351114416184523547868645746865723692981929007031230941735513620953706653325237042667428138986686555516727569152702516207336184823773979948677591230536206124520250798094293930998688562214882289089448272710038395636000421847141567791865271824535110879636518756782526992693414719193406806553592867164954935938506481463170522631079658907724026509057846100779286652307816129877848772277954633433720678673582313776825019887556740967862677871534936578903043786483537019869971035895267258237932857312849595655920654019137190849142760451751948306179535950687242139279357698498535782525201498537741330737791104793716340963349673738248944846544004145115751791399075141479976200174195176082215278132292011788944287907724601210549725454750854429826530201049203733931406201107796011232361929166030005417140039257171950850179250555281657198388308869392087206132961861826655210705078459483827792506544524017533664379787674947266129874881995010997233780675953028912213070088963537680225502381978368653242369396439912250858204618750407577232412977123241239867695602696040014931268460015128009951932479712959896678481715156443081366817293016909575746333967864636074872763542723383194387205865708671747670664189177065281363257463974080294132755327867852906852266112009985920700249232639042194478996712149964165508247407554613389155174551157401974828090655613561257045630039956425044607315907328683575070876731852214053015254715183799352495419797622792951666732243401658743243124315856142886471599905498052778373828668672273136233541740634087765111260781153067643518603004568784742923391982826548801930961453808700659322418701671303004476453284189637074561846539287931531255359867133717121459864668156517563015053763845479751802027506359394477076753818162313164860276135384168175263010658888326062411289781312599968202884825079285951637348461659347864780494652390291876074738576400109470429746659192554150686686236388888735658705201187074664020024579001572180011023267723737778387663710074135860324000801938243931353550466314137779378717766699505588656492133351988326057281226062167616086942978389490529401681697142454432645408799361549872356753855686594266239799359559971860137626828707599074346723232207912960730768645951593975390653804192231686802216379547316041324893516438297380881353388047525821400984789113199552733348417632819897584446412177509186909180947068404280050491721968178487082171165166795607407934229342062833339190150186472031767782843578138081922477627330858344974818382845856029185530422425728527124169221883185571675404276374256200877949211154531365633150015923550903976284989703201949328500755621077982426712750553026217674461664762146704690553902189820490838780713948613144184765467230616153098542404568996057081785136499386401042788859827514054753536981077703775348434321385355161353361602904691410247371679853223156602824525450430925024484382090183940996188944861657647440086159938305720049109704497772575036880807570356968761966054174685498610776173718987392457382108497268607686264151567189627148660103662362922349046259420960927389430918217079751116452826409666713712288585929981221248833941163791351565882968994627598196779978141003656222320383827384573266331795701836560457753279514873726771978519946362969322492997099531461525797262703305002393065183823101951495812508002348141143458720830812924401735208502342569879399917756750129203630228074099926288078218718860284718814151836060427296079439782217817872870577126642642859017838106534337917819699484110828451740982717100161489354487500737312319092840741915162117902192046110943354310444451499251833126364213811681381614747745498624620268050410919319317119058646029984464188714912750785439679052885523759833124697646607595758842814248037371264629437405269784925712220640312291356672580964681266785712372810177846482830981967844591306425599946599023788329710790535669388019507302858651891922107410346568849006538743611609352616887134805711800785478546968115564247423265715916951127417774156442276638044434766787231449669429804437640215109723542161462614323403414656512153985041597395939360599981533393938337133058651926950055767258884470720457410071965222757834467589113436444468410458403012096390269955549008496210393043465546818757345695114202715266614119813906518552492945039462598488975271385450186967831261798904996604166436658529214368542859112407437007400015238232114095358977473396614944354209612534708478604404336525040667752198306110156343085145332354479642221190248681345349128340479674627865043902463536931867618447373447246203063495229418555939657106627878620200707916915973326296092976240665393919906486334953987606273863669935775027198885265584527335263903885209037258065807022011392030120938864537873476257181238505359591670501205761199493943173009268617342470155640541259191040072844112803041503143417796148749521001388064917290524825301772537657422905768665525336437618315685575825939576719558999831857355953148053867103410651668358829626088114464486290667621969929909392705586630414295261627264558871388597199830693361002482028866624224196438304093873591269605319489787182132550060442979370534857598700696069716315186939223902792186618282724943193883299744946477030119777281422868812012223796193689711851883653575336441903739009089493137262536548973918524842426071629236070578116514120212166143913595713991507739333306681631346975393965015780336629839652690229574065345691812491374763238986507199855768370330733102490746906480065987486133793687945705092083928263669955930212709148447372902610883356494073253155279076548878625646555742502050041379772595173462567185897653608295897368726399366337808299196626278895743361177925722735087665519207940211592957493927969783625402611573884556300508059704057052439726075365354624213400545176291177753923627384089920165348866094875780722254598151877388211189061753889568302011733971034586763395518392136929562986989958716816895989030211043718225947561324267157917651436963251790902848224042338215304239405274914728586962404195654435870864073479090569204492612810496046115099706574326071241510910451020138674401069721935045618796823220109990696537301279704188422500596604226897232194188631231255454022059191221241001239729617295628509821994486289076715332161727635649109710285207661485114252109284722368539137139324390407802697948231872581451591300899075970529046594067367690280277469926773197155586976387914749798901563828253260386545246037021133768789215688502891881271024118874284831224927107738229844980537299998811312698949011802038291962045479777246019981443642843860114878911018443618844477558231940538051303128869897142465158018670115367205219791238397700860036366123847288464377478474103931272260425081756735125460249082487911918855636991967488650558485672459318608269638906789041804933093357298863027072506943004753941826879749995094548175787869371565031905282835989652486198392067807709677981966101146617781933268790652641530098954574411606869443523323441440046384487904694748338634897706837261768388214875192217829958610305966746596949264706325452182032396751987028217322241384022058683503801167493241130653134706960661790601429976575581605958229681892156746762927411402909954103309894182482705420340941542116734531233923106174916995397540770614356388625516807187338045530133766698110642088422904180381006737266480503230833292244189590633835671553266693463170680758241401967705415066014930403680062231166025173256266986916616569360819849056468342665707202486233840067090962449663221472070304025658530308891968155411681801614672095914329767096380243985211199532937851204890706571016066063015876004022234793179149900586663486902058830141126035926838735324513280839686909372237850169625842679789558053011776742232311084945382827653305542816236999279229585692284011130133703335865016286140586347211813630710399181048480108884399534691014951064706057188709388583414845430926808015302917136752677864924159216676999755285497691492667800879014237511922830734353948688103342549683647437369762986802057853761139191477897557168835327813196034168583489910508828722020407547043813664365228344659159102533963341962272378544627118180849993040099157578910405435608340167168085952264994674261469545557938130140323714038287696775088485645018587668174016630516025415309269709159029749909199295085326138446759127374442155569208328014725273311463518629419314130528038206149914408721081911935802723188306096217682330719086926421960375367384349386625050797372099775808692372836539983341136970534509550854240917584592982891524930753971454371096916850649122474601167810995388487042074432055642428245896235867223693756373395738913476427801223814971843571541746868623409245691580744164138806548416845185888767724123723757375343573953382066545706469050221611607443359832172082324460010922344616405228731053158913024148422717649671631650909310240386113091664790602841137456457259223657765156875793449415806388185963064945375500121148369233705743500784368858952352199690362612683621830892759636073567255968927838764360498749773069518143426402408794227545961272350481571141706652825157006903239858115573842010724572295378362081212626726028342936373451483491364461859969510709770859887268826780060246941312187759702518542190553693231633033004930739360216270666806334572437526475749856215880239511212552052529073759632945613611991581287441521338356570290092860125387348951610028963383014192174587489255460348991802673467243894944731508368663625833704980455406221395355628307448818091201293082006845333730179666515006306528987024710577232389989701547274139803084052453358261875973310116978144448755456814563446873419989029548249769804767191779518153264737334966591959560899679054139969529392428077741027863875821311854127599288416757607182866799565005063680694961810157486153892526924399000599038954507015350886579561731949528511914681451160292799564557604579120617987467994933254198845124544350395555125465133024890676586107452597748903942785885184532672923136808261407913623428629430282430184354445045522767601565147646854318316753757638762184467745278497189819891978798653640885862349135944067105014937778103913960640939685247801654613930162587507730777640227967312612485754297424445958650902380450074393107082480180383359841143563950681579954659479190737412876374062194858226893496250011354048821876782945688181450553509079157992904280949381047407470049789988423699894617146694414870755296286578630753355449197739435368960877584187474692449824199670866125870952638001559041149040806477140442918931755238610642914711152041144669976404162862321461944082420787573050508500130710897895273612349662103930479520991063557779564394515052296229470695060000872845634894283453104766448186846341059064829996287312316605560310124371728979669195279508592453789839176302223171933107255947171725015006147054776382278942599094884386560076412902767976226058151486591437438962569894173781800221609332850833417052127594642753386035196023576348268668128454840103534782019935507276765699611541007200046938913933964052271870645675446401315157324829720077176622247310431347861420412044011626618639018065923431396770217343027098581595962668670896029174735583109828135879821793831194389416595110008421967198497486081549906872901692793956065070388994958710037091415646371692111788683699664064953649063199697953790300225880965441760211514690683699977540117714166012095380824731004648296023423580352307038986686019789280064156532251839372817711867647060788510383814835100753676827632791842741245594346477294364683114067625825355539566302780403427632928159829586471828625546156735813430239559772788307250552844921758320354771878704654040039136397839127327870883380146800273213326546627303590739098184706452088126935258269339761457093528287140081517874540969657807254109436204351586803641786136256956818081622060929682821981267325278241773802978742181594607748681075280920834900341139664940539785051008280119996919622298334488867567529297873850586705198104360715146165844849166339296201467075279221885238266780484180720996770777952627286600735923771650779638350033338695518109896013544730204364145606785466560136908830379634080894746415722506445031851938581910694509831765350702579726066777334450163780708118859494181538255703447477788181238431353840176491478764465029995075045212134557813419738072998625936453320613492216291082732663266782525656169738083721690141636671652633756012735289110230476031050687477185392780433671619776947255078295694563594552482558936016489172578683380105518130952856759193601863450855726815696372743928371860438288347350555726616016329430362289927718342746263250947034220553712464889425688218185770866813998270025009185483777970304743919982871574599541931994525936475211098574916725073302046239369696568701793697479989128233309633347197065114544512520011951926214051159496322430563092639649939866362169970395028780897230742474556338660716730260516577977734992998451701169096919618701022316398934729948807162874410700648855584784542535202440324598280357764673421883123501747463343070013374891213566413941130017692066324800859482181382610761746501746919249219177483318691314761972247879209528429938963061917956544115749659026453509151264629489244921291740748458659456094466417345872226164448088637297646935246598061353034770937244122935747506343321158240752873580421993219102879001160220221638190865120264379409011874006683518532209214782015439009028688899569622364172505123090076570739734166462140886933744031159511343499991641599118851278475122601622109354348728017704670596629953448801423870192420890229863333110823713758901132734912169765717460810367737893390577169129652172374614908009795979728714348576560162926830268306126216950166558906840594193904994145648935891452058790505629517881100752159746118411863314617437774954988469344497282306553767400257153832081599684711439148203330676382795842117199478096078239078726944295723150118674563311439832697233709946969819298002524081957559356953676487041409686865432268500187244479221590448890196658758038918915127558156825968141418019837411721023028865688949475841139283832520881938732081115000689148173403798310263407537010183113764670633449054423827608008292802101977829261726663952543868313333286479471860777556840210759947753568938065209112190535283201840888960177300157776433782914808212874785917602917992454605129330137317807800245253543053970434023021081416325048544578929776266592760299903773678118751437465675540075029906656914957595824309309720524997002531366924833600080675412930066203405772238868359901716758168408341534391024874173150644712739466847228569102435490010277894162768743090374338145776424420427504392552938286869818474228987576774927464635213764969859335776571272943661763106702701893772228229219928281641759348635859539570445319897355283247733880194034793174890936442623519568115441008089623898315260463822716573375291978602626122513342000433137858091124974561731179409043847024568291042447050251410189932191481694438509083464120888982447348880347648708868366917967180779403121799129192277509913028525144316985390712619563287837939590432775296534236895863036509190992294746524589779820820508245576205486774431670178196590212217368839030225203978009099915686416749384518653201937933913378405355616828331819037327216919158866977737486724393583481320446795364982096343166805912545135299395363191244913596206978425676603037481698628893625144000632659588555614138849774066380966036988686092550008890723280844746455825499436440803473328548945951863060517360240576508134086084530906328258372667895468440956084367570882195314410576242163897228806672965920976506458771033607244099305329382078362192974065650134503705003077886765600025823506268226591305763547959353249502739615511546202349920310607258472648188024327519506519983021505060626647643727530117710858591358668086829748326383494792784842784281280472127513428790728662036840924671276623068320506996443631343654051407638417944549804430199943662510759898788567328098265863187248452311654805267499925274997084278884203712184781427818016550472986804724155071371707615828948821188641598437328824719450903617829179497766613685880540616357115217545577022924332470924186421950971232000398325850655212666128348698748467240178498878744100111588891735960940289974276986313912057292837764822371570377648539916851389186246346823332340797280042878388329275021540425031672528397450139858347407901387662694851277954272446308878142671625618987275672119453880850372500417692272189711541823936988324293863998067901538301806484540579342956325403318400184790866950972811919188614423728004961326015451623923645268782859977455757014123736842893509024412534771047473339587780725285342498738601183731209216361679171241742862967161462527020711053237048546333119796555781414368483996248998612404402647659295492906070990146885781414616134514170435227539913761982533044924928492393709395809322334916491315522341271661196128706123864273357893725552914595582253844347132823876228858772977454740999126063188925117383087352785562412768252098810908906436543715294265107584707509044993909813374588077928134680760202980052559705349822379611936403708991778077541644481061241999888094355353852982501138550114983038988478188935749839264133373375712376100994093241567880084473101221663337125950877542545249197141281187965240670025530189651858170036329534685808854763760047110109536224178003028884720692835575926893621111121759185023006656147125586888217687604976497330799318984716893009061136542547091127715004560321964520793615986835115209284960919186391595475527589123543349231346522571842533676315096943011389601216063723323545243188565357089935153409088740526921327936026980808263727960024277426627149969269979893231677719429358478401189886586605879080922582237103361257949642112954832466933877869802803752445044443680394725197379616706869659729425364358832164135164916097595781729575790844514456797357115966280968306839124950721399813385220971713299404058803293680393438732601729227233003055741366963146440937009510870470757929929738999517230971000272426027280187222320826756818372172222524905658899303020702552096614064887011397827310364477941612670394721922629789509882729006318134200658374605882625227576531878543997176787286101019370851740617151614351728472913922151669479020070891997946344568504061230110035661288389767466954092261092056839554402353894390373743006307970139640993459632270553507162970566923638964026239054685788763992080497265086852755408615068109099194970576013576673653777082166633468173379591823548746082820506995025010251244931759148816754544639037728383610375784833721784131224918480616056617312014937457702616951585475220500289872991878363141333012697472442816415914370122022214285209170881762845609150330043667550206579204402178206735594340073731065018720578989843356041897074975564477317580819318369619945360139223353581225590495112183136962976426982273331264388682411056145153220853956721198941853683677027995436703855679219447425141356361433206499383234535187493543189735477344773598710119692182009729866819052793225934702555759711748706436296400241596809359160025070191610064205131454914696501142704907628404063836369231857709855173454826592944521407243069070959111755552378416847630205008981161971537368540679872300635645634521604223276891478851895827792395082542166327727389033230856211255512705196367953629704723860327318328148661965829520686684772987790946630057262506270316785699067528791215284087493787952876832572293764360515663272119907746621318203429182470039019218305205265047203509171957323725003336331764330109042917002789086197506430234676717828213879258697602648431665789822216832629203226970588528403812008009838777076311653564503619219108110023843612047847225870192023182962459145484616777829951810980357494639397151189453464447149607885921014837513521428838940785681393854551579125422811855776583823630746010527679190950590622105014901328396505356505185215836261179512153994779088855340017365598762230630908018557376027299248228490726789702953175576628448779992646233799007668294491622230324219764220069709026528018431355903570072677838459290351745008229688343244451790539907964486102807990044033862286848788430134061925764936939514741743152686801002667220432959411506949372586983805143402684268126094499694176890929237645512260219574859575014993895067733600723465833752847978066360543427889218215519255044184502538949035503849364351487092004829605865684308294860463151392087941050039519661423591802190158694505969989180344003448164123315236442435439940360071682555442854110095333989153890457316404827429942728171061193351177835202991279063508612431814598793217976197711568923276858041376990767785954458484671167745497755889382064928145585083673585248712298019526661198931056614120579717839977187168858013228352022421363886904739969449485226947778790140516298326054153211321404428848299658690010432753574396533363535850499034032006088734666322069362296225702768748703839099184271725162157054030343334218871793767113598107069465625527949269994294786179602493379321570328013001460758790488866325798667419543477081738148907927211991097869958846933552283333165442636298253535727793443352065371086869344296660623167234780712249749170167668700603725757956937514357548044336226111976422589960058315819895752911236797015074296668179426103098781609075669992492938252102889327540657604027729064780161353640118352812577608358913629235881123418266321489366362842550712140155280969150120851944242541107322371443779104242713169428039968250027996297199840032278585146172875762878359361729458907616400316570975582492976697926723076121471932569924038658393731395236935533100601236270825607682124518070713178181873924859170867253918687392182133388636102140164745819849877723783680937003309384149707042675181313026341582449942150929132343760794145768416057232474333740007353783679095556318204006747131225988764481651404019047170191821052156519929599707007503336679172994148487474231071028027017424121939149987615243855528453649192324538248593828062873400899741099064443187156738080388094040106816557621806356790500798135517836025171956793815808860812999766430634658330866124053407648248913068085294978115773099411478032018524362548037840534209667469885894017324721904219558550977034162644154775661168623564519155863260192977656871836871828289269858906124851654866557576423424543272112260406103407423489247939516060644455886380763117447940645764532211136477450635052844482162670615515317495713887828824220775327480100331743828637852499467378619353820185420363221149518453419678298880288327332505894251313413133780232660129767056202659196086485627170846635938697461765913829817517724808237616655917651046334154689364505188389239072839376873232502803615229004279523177436692145422523376634416989146749219605497437332015503209459965292509144876674914536634984186954253169984829478075379117706555077302245631514619649960617885460671499035384140742698447877242094588213285905466658617161411335660424444685552024488224327843146373348816922377911537475107586988837862670074012705999037730282670198012314747020481667119449906921280263412177219695803579972006622687063705107577052126626984974385180340938933001756011161275763022831688152273990751055425301034663568200013125228710786621866270676135364113217143350917313078542152637784221503119922811943724449104924317420629305135527408056233733548107961261285227476334297606077570979934209323585717893254682269561660413803164171966751549539530311165604488468418223738758236298570001090047379603431758825173754480117742900909370645243841617626119803393836497398310194004327967757845989908082854771965861805749583058672897522625618858076295571256119010901272514349958613287258402051217795327851825241796555685367951836081354564435888222225673810301533575286472142313082643412154130307798980962247918191275021846828915234708873289310860152298915497632062160123133591452063331720334859603857330604450330247402485963088876409614985033089089919281313553609536146936071071986188043321634959133746421342807763717556944275571753278925446795434594886799479700858710983939308410190628342976715382246022166004406361174674775761887261457808775998745522714132282319413931100868259364179361529184376860863050520331342311128046007097924005270536640201683134069267722111225438062024870567160224351506268023848691459740056810896634757087387257761506310116407655926701604440276841742784933057890779679557666166786451149051339314456508602621154966637202910869295151995054222033233842605785892495744112924307131514915776756452008707454773674572663515031893766759144665858135584347991749846970062123559967210841367381317661717949928876302059974847300982172643122837075077046915242081041150261530430547014694080729093007729216933657407079204135557313028505594813480332780257236727131219204660096095669157363776735613883776105100820202646084622146203690703517755505344663661836838167768044029611297913729284448856826658406463587362520474526117419333350926080770006028972545492873891117753650992998450403769340694404475764570032674721047121711668010935942589744984707954628945050011482883367542035226196012511055429808204681178855073666993678425957127758384059459608154091011643054639697817325097854981916700535182468297337329713478779497272343999070907936611309535392119299177037212515187336353888351653371563800221584626377397731631214495202454061698157987260013269478512581920086410334249778125965663077576740332297772898077229068657599739878405982760893516368039433363815367186803719069376798837334167398977677109281264215797428524791530690363715514359564728841743074690507088423535816795244926503268703474116091233906128285677037924064642305683035865856984299669654272839814619841382990299513278990594251277427237207925061052475530706026400461490657809044348349328597234196627297248961703283475985165280477430571424483018004741351225943028081160863124494589340685046951748692163336026165139533888951279208976973549373766030478150226401183648488135166935414119372193336246702975123924515111261880562707833034812721495277121607721555564867508223686808335650733431683357182568177073716148058382516962402291516029624271390218244497575226892802285104060414668165781135397693614166984481557289423808773549649341064803560578887380966444481115412063852497520367506792144775163575357797278834626390983210161887829893834179111120172245667419032520933052768337739701462182541130230236340231630137012570265270545723198698222984544912832494092589694063469065486952707503696940393360176750886654764960454906395042445732178857146660782134484333195661490869888130486066631996956624277527648695743955477700696395004609162540150850666455315714264735241317744205112524580626354947342342095971056583338611054877395761359974226188426405073790686460847988584428722421623385179319106536901115639023251562469894498390645993364382260564057203918243318621104324374901427717320336625585035042750212109096750491858171364821241463279260361251193919999235265802764564890108022574394516719509534070132744534741072912403299963290635339126680693430115334003099578831879546151423695687232890855677997956059766300970195939324755157897311554923351020137785411364122129178332126275541832012966049575254082423664793828571082523559810774449453096801379132063584030327931482796819808703021425423123472936862428858919286413705843966031785250482088406393166436169872874492049649987732302727218455163844472106184801744551484841196750736114580972961307341110535285298767533964959023737576384994532129891414172150621480522480707890254960075466530054493079111696979615461545681770578697720184843633962600291378080650318050542710027449918437667975786877629068055335958816057930869588227460429196062512654169073634891547823667043515945479983538485996307348512760327864586756145904773100698955503636977403910791288164716618509521829200100046413396112374571004743007935317793662187618668168037557041470550463630003407856522994280215218316622689295140262981569681839752262686526909160749837545074760608974338142663034350357739304715145286070020705916232341357331601745802038339908740613371195799677794267035155428591942855761831625625403466449596061360540182424621827673866450443531047763594090220152808577740270385609587387818666669001646757720700089946249446518782875581707959480344003212855383976501810405314192552463541898929299769376262308978708627924883069252123911893464465343295860499741797249484556909132595746209986822309838793689692197611886886557554831174031277663987795777551832055218257896038746219417667125262040363718753126422236399247507342781284957005193842213758938162069206177731080640453233811661242698402302171372583687148197660155821298959960437419645757492790915911069433007795122067832496092110474365729975446979673769501748563687392430275381806211280810913302470373695874520063090192756236478601060260412683145877284290160418065619876083602099879648082691178573710562308589031613270092635869271918153426806256965891236705138157249601512649922651887783730597542669859076070373239229650363274938112506941808314164010847052658398970088380304040953699498481668187150444252491306864705658963085720190285247711020570846652568476162127110674848999509809155416272455353357138105075488639720398883221097023790218490239239120688014556897055687008851040589014841657289326820442435688026860038517535635113226941805608564105480201113118641286171950315219413301354404168914168229887497010725518674730963597554227368773370242289731500987535757016661558450995410159734909840408136138434161894018956451394779359863749375009059865516125582480901504818671618410401570537922066325807569678964013458029427830725774626251637443059325824360673862865651112501413721069782902834122050165988631257795268337491743704325618261757466705390311033372479339230461595208965464561937857034388136100236987771801670935412043702445181238819379529775227272555008860822570126421011930408119380020428448347891543463884180430424927390951555827288864204466752919324462088340386142904366253008097271044130809707374527811525755899650972093260682467713204256559299051546015575220658557127164885865342122230720426945441022207224494901145110455218570213139927413377267202086729375717605431116122262945114206675348067145837973848344003193881039263564921253785989570124924635696290639126182832608802626593819453888363839414034808523822244512994635484621201319356002917914014933445445713152291292008629646943580009312345750758563018076821265189450096576734458674565044154459870382316768836311928445414551756176983488041014204708491568606418888149676337077275913536991767161094191333144387362793660217836605247973419088890598569444282870561549419499072419628334711281671875975756839610990478035764951398970819134335199193682638607596611318643661032675288547826811900542464051756695964327955003650342743321781556431698737165689826204041893548247879748249596277733820354937463793107689257408034599255470560280028687232913160490105383324002977213493579796683600939565476365910026738817572824118255950314612531684162142649465295790038745258161691688721875411928783288642360041387191289051714617898385928185669745294469923647797076393226187805065442132067663608291318802762115791903931217515527966995670502362061759188476076490740992972808242559639935995064328432670672651461423659457368241756811881755983351578297231079806036978039003660481754974853917008782614862102842953977088354443461488683811654822904132246953675941540543402390370596180922374416831367658986107231392968751849089527047564215886539261902872341167840019162753431419761337528727810448729940532697488258451056458025312678819395362215089666994171293135336598861692676821887391507530129501454797470734894051123174484372152399618224696657618775248906475596360883364891787337785847511652910351100008518910247326846165194499027699903180438268873457206364514924396664740845294941541274326731403297014710855387815634296359857465721912697765183085457404544348323739563347880452441402407366477149256044742821430941546221455170428660721446766332972165114028775621137986415077966779429359351244098474667361743288567678576600007351033571595124656329180832005295504670306531188685222059054851972646796157314476574095714210590804673878910821603280458123751301431469433391489720259690616000680032542031689287717336575798347372908173033897054651074906664104255552833433370440774477194685309664525999106539235870590823448768526572570711063572560089642757633307589171772882307057767800336021119930132812680507389155968951573982989819797171168345665990057161264866099123852659192773261513582979862976631041169956548308394173832261761624878217491999675912517748304034853037018517429850336867703825775909669917177396725715837588570890035908846055179160591340474332003144377152977634010640705435122920332902058889414243033248257445937423088442220955452121672557172732601313741868171464702894181578257679723855416337551680065878965580125877632678505735782162767600857504770266266910601007868820680423563780387018150820444756013478745901927992729311733028036299005683280545280661962232866364895500238911916620910569079354425194385947791745211370440659752768566019217210641452672691906530588636350976591085326306313933569260571701838035015118197153621626697036822110275956481358282080847956444402832253898604963520103992823728658176881899396103536589076149071691889124533191350406362676771893132258229924865168741433379741890462041158712777689544522865953423598680755738538640409733197267053393188674311571473666570741136507434563106503750040204062660232872755911296307504377234699212502629093373172528587369935375533596491287122085315716065589995615722079671435303634599301809796429620920960201953516878893433410806919740788970887183258341907370841298291046673838975553301940423454532068614737588800297668367058438496593724642612652968595563702247927618627921253701827153205011715543689262146292801484949752170757440613757189773744297904537740749379562810926488446177860070563543706811567148678620200908344638677449038790201381451242622366941414494988597759043502505661313085363630041712942732253606960372276084235180193149180256463366195973747757139173077675180472211943875669476285503635185906816217155124941412067940560212731403798925004614709432970657143997642091888112888263943885474243725636234814934614140001058554659628236537460845458786635974944820071546363451903771386784377823473433953128659940061174727897187134854370978792705175780528477980825445253680519407528987525503641688478211542802999551526537526703615873606290705573260786540585430568273523217516017144651439619936825932025667035941233488867274164805912263566930315043474105202098411876162942059470627997718904099764998377136973563980124399953370859565626605915002878780364960671523892531880940882468974394147675154910579170362606819902494063388066558849509891210731116794022769500075076256199488625529839963128936436167199713820437078104259996639158083730904706871614232218257921290206436912188643462924535803529710105885128873575936816597979869391777005107287093931984163422003210515258689961095865798917141333692683260060874085414235936506712338860083383185770097610575821420203748731966867086379348899699065525561386936991087794227549801360211235576196596517064231983645669196711262721832859326264024264729699835196704058807255090388118615556555151129469306167292989382337160919364020707590706851153365058338796345838664639844152428917624074131844200610142647368341443013502236688858060273461760232257067073148170606019446741388569765813081551952522992704318012798882063437413728806883829025992031772045720380263195316570225586761085892788741100142312244654114346144229480861740121009315142169397476707470110289115324913204599575837764073578073780873081671869453587408958938515036950353205383184493081929883844297970218184437688888254660825777082764963421672851839575694789237486162053640041160905975204026854682969900303128737318467232305419137733815716548232709375009813060105686993062531993835459491061461051796545090887078718090283406789732716989849687615063398691671924385549828895763195541770326962695124813889623685705082538148866582575121832821290169307670617961659178751214662397859199549211406601377595931559722967082282633372496898357695712679321986362083503179683948460351735689489962161565485570343449523652878489177432456891368741470192911034863194756072376352074422253926970078060864771467031105692837311291896818451292130197441940447468960769073402219652806412335700310326437207084336684764487179667622990711601070671907118587608047356104734955845348103806838777284676207038649035317753720432500663875396645014634555522299462523443405975940971186924988091353098557133300315682897002995610316668917296390214838489941722724047686133778628339352893110218343944350240978342027577371390793928147898899190720024889748952408446516906658274639310970036647048863683364663761023284666850360136929787631289451674998686528352718175777584132664326950793748505023245563544985594200082314915808052613397262606657773694781627387562327643222721477663983636539189343105710598441320825857611861215601809870780679157579830901299320332885748388819635849303574488604909654761926578674104873724287240995476936466033022945774228945021399210501726678614097844807824989882301263266483150994074171895924310004081845460897821981927268349774348008610902446863532952876205025760456755859616418600904661426947757507144148294801027118525081674736218410476416031897173591012895962151039511217408902033012443835545326034868259049040219649027623825936209302872598671133728810317046134764310497864398660522266949922389600798687878208244925026087987043316800298786381899955504699082583958362970183546585605998067999578835502818556760237650862256573824888952455776866390450840533956740793427844009524538376226915488431502345450144378778999498996352920598070198672224992208120447110522214303217746692630160095237584913646776731982333688126295320451771110509693882533632873785264715244868064036944786579015185113330007448057011191413118550144483271705064422892020887241197863017244237520838215521540306318891177550307574651169994012916105330884567533262594065091908522211145962544247432830056047852445402490138742358507880145945700148495826324253241515421562390419903206019971840854958343489970210448745381588686387268681634078271003817449375970224834520262012817048004589626663406595152901324948975374767159032575188810522587887143194511242870050517028575156756311803086216123968624563034796391843743663695487764443051247021909887418693027351313422923826104080076275463438073663683458500925064509154421064099703491699961492996239182102544522701797058595380522092489451896718230629270042310315633981471747774595779888880700929986268951311838634210144638222419585225433721670819002133073549769153489099032281488290904283198727307701594703666668132959774087360765396641711301103807861913126737912894033182292465790999016863988157135191408340159516038374922129124241470166028851114082891893253432563138578539802931567052885185723373139961217346226161454719558846507766909168011799324769956335869618785104558582689041984200784650952615806492194552363164685683150830843267781434992678362789089756464611578980430272244497272994778746758621472690517500530709028664499404478421986560564383073335803985455927755702437459488140936419167044899275435470543506906213704903564054350713861977737629839415293403668465978137943339461869628827711766028462430400677215731060809373964118568175412268747213350715874222627982175207020325151253558253205346654780861255838741036250204163193110765514537717330740875912153667706490687103697472372896369264739693498728953005540090507370683976286646549294507428782546564556715433290679464565476772992500809705185685273264921167472811092263532553493513802433440334384366684628489535251320741925178306620393699207179136014506945283511526644784970340566867102466385152240769583022064553817552572025782722457545374201922503360461596427656174939191617588662519165605616933260381735473750674212900007220235261783886810056054947573256132638803927328362221986527838221831000579923283279411217624232826076775334254955569335528110463072897216715507584353963611798246913873876206986648010647040935153434220137702937406309674096637343179187669327401564481417810911685049222806494806524066139115512815136959206185597762811449744617985249365241335179457915141962162326450427912933543073521522562817133913010988467414799851489067098955751422962592613841932731368716316188262426178628203209790605877748914628491548175160387682704186496395776123919234612974257385906445190030164247792395294599041738950339249820983275290916110331353153817846483192664047902947371545056152899797798245832827711632120443073341095388100463621913574986151614957359596599473353253253584827191594074391929209857822399027954497059666666079087324772700008342513614594585761745490279972152273388880900662621495256545617456285532880510551151335338796538297539518541888774238149108613251365322048056957004190066850573412336407631935946555036949037329694866157473832719997162474665684638027792595041206462304503043826744704791216108028592893888514616640783970284789633700607564966108258909807188328615254741225487637573704443403060034859495136877564891402748358938665204876599155052603820260091621702116907387699236795475991118290907066788871524765520351035014584763543556256079795859109370159691538200798034569805692512819954801226296712519497479009810635131476809400784065471626331217489881970103808387947847519011939723473209666240240167828643601029192880838997674842698844712463130554464180309904033491199920006725752534543053016268189732172419407282866939269975230200832328158695964587147187416566120711389132498976728687265830973213938983749738481830666038016292514553807211729848246697258667379000564159486514672263328948087679060911758336877272297277953061463863969218712887653820469731954512626770430933793958487488130654111915101121197159843653937934001327500861562041441525359272982426163766191252598591526528525661329698225364618638259811249903283469325550628588615024923441135846305822389786458798493278163267884414329492379588577708341207744672119587934414478866113753614796357055708368715460575849167790165547121382142352937806853288952343448277200520471627909041035775645115358424504018053012590777343918817210389374957959174547834361683724011933895600979083795646698325945616876898847553264947892393492953141647788410818211842442865945530749364789995280722523534019236214771815272195649353576771242368274180266796591138630333801821224384412688163092123742327972038459954592276102117297119965987530020466885824340681382084199139578310977168762351645281913170716106093236932267046004328866340633945748754620138755454489597922723273546364180340035033770604892243947758083621742358747639101470787220780549795891175740239873792692240443082498861500818120283368688266521877864490084155242324129193479473655102220851608047303110379091530945972449235803689180812154239712483665633000437940003544078921880244044713869766599654189571690066760840856828379111031963980726997683898530893839783888765825159937316982492900926319675580023147114541282273335378022087537137438469909821897069497116726963643335482808970061790834493321290888858277832327151297376261175808127027334060996711445490606199870714110662173833401457487689419120280767456878832236836757822767536973664963305585428289775815164266695939952987759157192702418004724334432115381318677183021765167227742585795298738131989602731873765749270707557459440956838219215852448116182328589806685003809875052503096772166404942719851901389102338331292494566692508377051910759865463916113610602685772688761343407005661022571432801317178434782884217882176629752295866190459970170186557857799672576583098148132814475662308388488324786979703685698735106301232412034011145489092144607549212559357814429519690897275851572544465670333994874320267280863350082983103092623324905411926788598714140028832466125687223852659178777015508257326060162725797364501718688161692517790684370069990536709681811791873461583154616019485439425966218494997603533320633065240914628674463012326098725929385450279884397093376636599045614499094153621422095169511061513384260622763360316534988193203109224779704116982077537971388105524987513386360618558524447641845038690506836210692101104698514424998592190409459567824827588649010384402891668213390669777455493402303392829128184189372282073605153507792068923999679495225638816078586782886613463576312770524783589809808731731948520732861969579167981062376521372104798176346417760803541360127038769863790332468092837181229436348072321421404569414997867957220904256967369636658659385971334885450706324185059475389383228991920234741117804148493433900212210278816762480054309494625153329787666009325748396348883418318129678599890916594792495473706518110894376979316652784040518670269301500863668986699596557155998445857961566174781071415722264871836678703714847327936333490570461087960478130240853822556785264102072800579102037543141391894362280665835664916870275535959148635467108398362189535945995304404518933811918646015895020808175309388478961049104347271113712372927964984202035213589193704338845212324911706991678618550807233232399481416458714079064102269525701172248429516937536979788361094396450197420693601688901179364404368006678597987291988762790619698555953077269146750498325583793772807260539108231838938973050899656643139889088279801585097189405337337942677712995895660510349080741142383695087343350301797023473968375674385769422404719874114147350091814166173277892421590929717423659778489258349312620734155418592262465821719349974218130243280022286411956719908563222119769296632272680281973950868126725182811838787914424793019222232010412209630205427302133909553282741777426194982326201633806506283057556843726766261709062944153546434284400761245243271999608023242357452891805373141616692744721843710203323263549124547307838338887267032903431828862276355006748680590834569676045654674314500012142345900501267751126785698800983642546427819933060562117593670286328172134997533660766553808733656485176228731694281893093299291426679690049327516395608732613124569353879698769179629347677594857858623102687438942268332691492823685685346487248165136599123025375809096522178375927162047983870517626642423007859336645219126113080160092566274105006406526179698991767929663431154567587685388385728298618387009396864400844235596937750184357830368762740563859699099764806061813955681384596738722650642362165454686480838250026424704073484144938782080590270097699839270075461839423571060786906901503239850942872051384459715807653895369970500103897175200583219441267172773833050635151896176262667509679056807840987440323334438188382229078111565567432970993176201057451802473683985258026095791109788465265823207950351999338894577749866597237447733565669332031413235108349192157557418745387372315795255605592498296466462388681904818000507149674682602100207819504680094142692081119437083468539347139032875908188392826990829421917054161765973916692099982723502251764079604530162855387178128425951242189141931883662016453403396133238963750883598336148314185919815963842512615416599287708244559665142032627006599666885232179703431622898406705643261045063032252117672659706196310399833221446508774911692709431797854170212830373830211985902165254447438355010960605307268018213676366796782409759902385852397513735282851245633524075926079900645824875596722971627863681684775710222834176201678894707869351636277073432094091148060650815503917723388270047372045072745992466532045632157375564125861011665159011959340062883991434245145158563481885443840895043507240831682651625938196291298182197731552555254083334047768919971432037660093661668759278784933661215555367217082482932693438188459470317710722511567528644112326904620132450649358565994626643928571027692773244101723685411351564350341360238877368858262778116053001419431497807353580766300835941050543630057978526474157219423863902335906201787327470529993244061622092079231271143170118109399542178417866452472453699193583429084234908458230709594063284045058652815558443112408561420843550139096671059629775820290967688066587918728312360947730473000264243870001629615234656493523453856356929523709224743455740995637100792582930998947401942558023467085488324586638040474768937307033339629809917776208216501245440797937670610082363880072142865895700240621448608333153454321730991844285536777443495795523341354776451114146877514120575288748889994537651999305914468696183749991211175810419067923920682542905194046733146033422211801986016489830036033163217498231760978632597198111496574127997623812601146046550383276485257368206924447373297960173867887286732704224608496987346850675058591602138319172774850850787136524926238992186990351750052969188069378002969111930614209933013007482121182852851156830926185435472242071457036431523646123621480006320744173966052207309293804804304960975515684362656146308432396592544594796740219448983118461499964944718763752107488106536973147233318239810188241435284990593706706188799384709444785559183289403921396613167965526215600262286455344074788060323994606273308400273637632535616784930371125168071078080301612418318453722301486627565383808013015674806614555862173616885272599308816759180271408033688692407841438848441232169256250076684969721824245734662150571681302366069440671000191104861873553310315191539722084679055330465397028655223816026979993918687571926897259263696527614130327075769401726872589418456900336814587459462070345441732504297732852275979480896823963282883915436895955903444852574273496193749693571723106593958331779881986769567696120672091777274540644612390633994020347979777018611296571912890810363534241923127066916482289218918729838240243341573404186554293395553117763739070370393817923851138294246094632509020728356700822841865905936071242424049320775493442698026978732689177745671339062494772800016026744492509109996488267926928999619882740204213817732556625270693550244326849934351071938059190495075761303666899503398699680628882960230146587068787212241751704705395086568055092916158907287986888377951587263499448813282910369039891350489137379248545694313593441228648815360148200820409145571798221009005645526067156257685989602796774337244189361675414178771517510175142005366082324347070837957533609006792458914490561875200598244527324075530477096361126368438706157588864672528078033342361652311974612587382359439127490079650881095253709590350865275258223356207478337130291402377792745130384103596488879351866603247852140082263852897214678368308449135403581060440206632128580194410938485974898983036672414458066386795918372785954262226941513465362336071433409753721510015350486969641432389657410385453255536367706757606460759505468640069992057010665702589383860198734937534519776131015533053195225339994295006719739659623123628780982847488773637721518707508567703006793005948469405960181220753110995375674585601900758908913269775536507016605521144649011718311643397853739042825083894383381266890156756742625841332219035826507303925939190639811135189074445507794079345352965862468938087545514113403308222428898095097380754938922982987427693375372690164439353977676575949878685311032684763832112236604614021416868287001968956252579417623125361643969843666919988329323280358363827444954214696560855979429973732673088669796711474479829703753042241182473696818731848174109216249186711713518076554797135558485746387225975346257046913404424226705580822491143756379113270520687164297033996007340038463014632033785909516775214965712833408511322576901066222173420631976735025114444740593932804734579229784842152555227481375995128810009127089455374586379301883596535126660289749972158652900308136271722894882933926128674651148574058813333131042607539842296616625325966005344777892313741145645581778027216594345164305090690478443019516476364349150229120091234584998986086605552368942675735894483270038774740018561477324700650989576816916302082254674059660646374794239928794129030077527182968031078494116660412022819417221707129773069204503830824671342038026599197514446923220180565279235967292542484313513334783921146610432882136172011014265500444856917147587115439044064225199281071496975713699551878836469519112883655339945402828462730636860042597580855121368897922575890122679053154261496613567821701989150707955434828713839337514026924643835268517330966607983121699300216143633417200982092438634306720456990635026411516624410907264997291245530550647668339756683705666103825629542086933069690896513762174195365593997009304083346411400425576056385574105309469265001696304068356770425763065563016723058748929181125017813117306268065070587557532781577886205098768989979990365498334264257464108467645999963152474570141261615630633266444173324265433807661635730744736174714007547591864574999916875203742028989481886736667023914180873410022803664046658313100953964168398660808196310470809927376309294672830258569811300329906495085991182213570063906666715842679444814089197533851337955502887989683895779267264351380483143578202499371377605694836522245864507132954152033238708118957056576723942705922220628221800981760546206864544849589074600976520384375275635969226486235359474258042878482765922140786672043228519575424833015386284807200724319571174455371355081075151028117911749257803569130321290828106738884975177485398478613779746923653947496212303140674975226833138235774872906973577906545655948407102648880930345865036196172371439235462679772362656486621093724471365027777776442134067808665861494240289539310773170860192360152524545211561188189886569157750628508734035565525765016693752094125241714794331607392926094391159843945770102702078432931193139263933316259815916555893429271159787934033065995763306316493351628153205307475863823775269075692134897328869310703181647265667622896201699279763830511379820682012069859393343659363418076212375868106023227326370549071804597104560089315141271449132684399997854625166186258362146691799594670310001058003289251682474028455703607885282043181880698107568051214393137166836147654906381458549137413005901724707402492099538955401787077597886185612062952830443369652523622603525708649616158104793005188127294019712595600781932811204367808087711038689495570675075374812965956155363074942516732013127224301742803385469620302127360625981263076856224967060316065030808330186419034776565393894668593255451218249488144777765919545963364373699063258394179766061499461807915857182545660942081572008670076491140184378725389216606979273786165316144909788404295222058052891963933599546044825904072109364981326176688730383420241951354608572955419846532417285255124846216908782512641035537034025074629586271977436736363355269768252138657870781390050196695543580766280209816993792240855117949609161816423282738927836117507388294137248574492999672921183628463198233121237226547993578252544688589485114077088643042982305105947165309831456249150450833198387397237701870097224319198603488931451142815185314183700769722956996000748768311851110890546989527466409417428117548837018736241242975743935433972643165844951705766163448053029216283764852060138411353376027650056629545159865836213801484569687178557941342249524031761094523138655154406601083960362105172896636907992872216216813443165715054836766917301746466857319963141189820772673865627868215898677106714076057902408368218464284459092393366291005262894736036325947323725918689889279674285763161644204735283464992859152376015062108186019536856205535815842508157399585915330025039832557588119621545081148541656220404631050895630387680481174455562738850089787781291492729728008813049981166837003832734658581203780389098580933823726772167665302622665020471142752933578012909280713287234044720947577420168717540513562399333476631784747402593872788841681159613537038523178598070439116164890335323053427633577325285607350318886881545953732787500339896182243730446381316235623834183521329228423636920636713768472752109927617911718218596807300683310301703265186435803470476516773543642362991708675635525819042475774582746981834527107605585931325232784117256052149395331726797797138225549803486863556801162922730468189749741527020222198180117605211698107505455844752704913522959734179917648914768752493739162160315755078440498238000999754765965060385985974410736657933066013621515394034451126243174735944663022274611168835410443414891545092368206585029198923044534021936131810680269022432470667052750987378042216511706882636651812927601477525360924769474050561410230945268318377650462785324964967730293545963635162769182034380797128581740859466081865744887337400941945088029619287250360121753715264382307171445123141833196831636072405718160255001429667802849515523082490821098290847055702143974442224739001844252772513099606118706591095874704749563603400436035673057560225973435391443548060875984483714108828546656859676230765328725737949059728647766881127159023497653996195556066123474311843420878050354897302174917353686394918438534460209601823383910026913919249408768253502112049202096449190495489072079064034588232642655689415664003148443193458412387596947335498503193981947150233593232480984050630492788900506769191808793784849775859229892185053401100390210722398029373940017744894117195574894687316463324994632795178716124390274505535766747271064335041672906715808013856552201832990072653155512039734593107268712405883214535370387612226683744950272227734197356971714204359081805151607597115369341883823367442388051733307088075616454339846896397241901779873963429526872093166423371454696760442118336439131982555532584531890499160398071545514408390248957584212014603112795106922777821576966512157028122336086792947608029075114758870812344516046819993382441327585298711024517166107344076785237467598788798493995732900563834186556916632143920070852264686646416731232939725742035791702819566212852869523830162423331131497500164153439954271122530199395827041217367553134711320131999471927899450727078533357961823267650984067090446680910327304297065742355391262676238431135308459752638100010378668604517525631276808932337170058225184164885080104004562971238677977597029001566789846469170264014277807339414041886577858395046862483143409907539264444201112211683989384347999893651934987052890276731944961310280334811998044641169048915205489460398319715354936408075353960493111046431013951387045851746166704698658042441310305494212964973429187463392409162910809931100355796571108868057023700024664484061063308301793187266484375025822431851359193023287724280646380853166675447612037365298873971183253718566799265812716576683741136105704108750877778633605127127390734094117523575867424865195475553157975298107240947741748367064622153762710298716665266471119407604796391360913840262630635472260307895162943830324698161878144807124534645227945933398261019074079852491754489338746986291059165853359285725653573176051039915401489379427578373988247585375727699693492493983745144985762191208729701631503991642723918706287070453645442076512105400935921602964354823762393032467123686405533541396925543381879603479801436368832364147356610484392279314932314834693584121861752295806506851764395225998686490168751822516382768215352562398821871002080957077431484261786403912035835087483370486596210854559046775416544981148062207917137458829370917284772012471118199954558288064691212704182452518218301114897028136892674176845423691964631996281666415607846620221075107005043623300104544878995258299738073176661987659468120611778981570114858616051337574871139860981219285610879348058478532852721322168814538238085359360787979691633751051672252196117237118142548078873227444954604346711622509421714308772457024166999752369162502390103224411042798100235035878920392820157068256368360856887053214978694423305302203963872404382999701978117118220381439577471149410435603077636397846815332991507380678394040929778023607378538368894464903588251161191860603698123219287541945485085335026996719517875231505405564129010507783634641989273177942393712049252036635338254519721705341931534500691772436037174131276118965749427378910099160262089528939158999635856264751256478155203308618869186135758487941160788232464651184340972773229836345587662980200126321667651749052651518747202668944722290906509834549146125066746126165479971061450447642158765471651383793535869762189403464416749806784867203825744500162045533765517458194480847095910307698297815463134849446807183003704341119141847057139011957558083870959408129813145156376169096566939760932834527641350165042591159316003560312683982949655675300596465524434676240990909880034412744255447430086862488014304398530978382492678922357972337544265481800400993374526082464444720861916605815154049273729727237923559968974513856006735857251494554705635914030635201971433249778051551269924248940105236362908915391772970985738879443823400979538665921723783144912790920185292809602789188472879750388550084166163718286151158929594381053112775384675097390443595295187359519204451367997154046676428917763881213472837536536136696558183992198352599218994032035897956400270539028076669149967818445717156858126384453958713559810815382146050590380237017317410738424834636140144551968807352631102811225057568304200717335338386439748805440475556766616974808147791873625622719046738928397428806172674774340406035171147146228076383756926256416611758004623714208700141383961459112634681315226499950776055109463526664199398490081026602680428759780153165775680854043063792902164248546197719720065496087355963191202411478860990205899810619520179321088827321062010244406588116156221186529792192060836943029376532503824225081931818431106927476190040215226241264799731743068570670678270150357626336239761395764494308394352707979564714267445290844062034220820467821897416992243891450319497791365092442832207334578759837303733452625131538368031563411891280211714988377155716596538260468683704050773969630410594262727906336278587858746291823964395214198463793738987076427217524214264933882144709624867645774021891880600973549599260726891290444545849810061581219373746037677610985423274832684649594394832022124474022499412701486790240762871975924928764662778515130088483855589690807014191909770450302130232220557244988832964922217516809960198215012345543666523861381158646497092047219989278948936161283247232643076573845493463143734086402993551265050007690004979347951719698472752053642843820032181991124339495770524360621700486485124382121751508042482115995107605356074962753861784506712486536971781241588511537180462511640371584789872329152846157556399837446736672503566963135049953497636638997024212384082797015066479808119410845275360084585055008181467144847457677062862109431212770750198331132637688652718262011244336358524897107185702045406647738260842819822290165919550358989304349574561073487489920837532744950632290403619872682780692539923602758678795141312662889357670510263327347353513736155497554148706346136267231123269135286680372993539823594504996530543513897452357709567520812068897917717937420067747641307265302758893145511456708268998506078336776844719762118978723096828277062856513644241147293579845661195056215344257995157755452867890213978425806500503350320187604483588292786459556720437489565431675356996321596971515456338820726931315424971943882523238248705676931656726418915072739380630568148611538776056208107390902617412288242624212993396943093186581629335406722747418474300321402182962508098793210577035746198088008049258538352883210480491460257641215982681927082620241990817520695147300425555366787226433894471031251670456044817284491913215725478721563194454346997547723445459824247505228937143766793600172667987893507495432278590615299971422815298095569223964056591891068330511825314726240148346322431633574481406905030846513560431790383437310299218204739540016642614567886582865582551988185219525202623008794698933730636477786914252836233210610609615648717595093838011697526450644664691426684646408099670987759948607701336844374501896338056372017875814509884498682155090315948398796043271649177881606152580637526666854314864001737997401122361906265720600377882737919400218403803894532070374362790564986414640253169630121575443142218740350383204387006945049099363034524128885491114032145810354381377423813504930582198367735856360663729422135990346762273254870220545796161437990883256069881186111263723101419985028749769260934477196534284635535973633835259126233440154937177242543272667815215528923735994575052804944069047222821518598615721153257195031952808819110932393264201080153789569823528040885722106865745180114143041319750383516989811237765805049858774816190587777144798301838379340998410765734170738963361210870139821572307042541176136198814732973781439602862863005897699905569732817497388460220163800703967666892691933823868601608705046644289650842416073051534915691998516681510153962784467218963312245278589382956019077488533013712152937510269845375476805199714710815799537359046206123108172958625648813857007631969133671013663731248697057132797704140921327126826406764776052727222671781499731950593128830230062028438766758147940077208724565623358213201328831521876919408701854613150158777054020809222017839993843843234386787543536137542491926217934583224684876269791115186325090888560509629069979018594412673491795284752469181663430412383467240065647315053410450049524724834522791532984180937453177480115140211374906049204567083065550193495765356261300510059643848575008936157774961384156558823889167611616016713179079216370969993063049187821340769975014725307378575475980261890340736033964776790465374955962906645951789884275850902799766698181443842473907188833545340639696128949016852240200479043373726094961989100068333825669359782203318054338164185581657078812451553990969092778553848565055531742235559986827480650005901737480815526255707404686610918117563269839099105536978039534758092010571292689496073297518681267359020320739542315975919291887343053602804738076466158264750045332565943283332592488971296945928540981664958783895978567889504966932011493376773437062433944130618849279960741460296597335742167149017064736942612450004642131150480876493139374907979055499756426583086554399327581224699191299182637147329215506532094690446322349406248655448703360403528163329158102356724422829421911418902606342110183279176792760908603154995035829520320626233848570585716001655912285701667365880422731384452270053394197976705805061092276462978607531319797096827023393543952915413914864853255816793080952206107379486516400790380591724728627407994391074327649372476536285721779748464647547137127750082061266012257936269299061179157379459512162708230026497534841014609082147612086882405095483041780332380743684088028631530088471773082950175496493741150661605027978460829224986959367326870681577506033435452072981495688511674686593347064891468757128303701079032171106021238669646071687969547079060161562895081591415756953578489617012817146146536956886473833844635246672761963126375334187362609730120317739018617615644469895519609528007083115766425859946915622753940806292398982823246528075121609224440538958233361061825412558221187117385986961280289925151008263370801814732821472053910813730875386901267034828418706071686621996414675648725054742148254530384746944224663214413743903041938812362497731046726206660166405875329706459318220490903942857067672717998065030257255829398382970168042880854414526500487705819848597432974218176175271850151049218153595047894268881836024280438051894215998475882007962953767090616713238829285148588324116247424162330001820763158792816667656058599978268567800412664637188272308028204012113128147721432418747180191311195363736877703534581521023259351521302274635601961373533250959957762145502539856577470045565139466880197532180466994364508778363238860103020436642693193508012095179872490813202576005867454451124112339214787716093442422590081485615109317400954809888449296526355928911388495489458164799709211132389270230509990560175917424679848591546493613938511469230557853930817506611089318464438561520476009266417948851665891330407385466829379443109361491805835644814448032092977989019827204621468176546540355983172852620286644422826719414573314302013352104038255714421713646632835800067593331948276537166428204068447659468446254016707016225010072743720335772288914622544619359442862325587740115870450553082080515714768916820603585264305857748687285590963974616890348463764314952943946168013930675266249442562682529161365072262836461432012092604718170705260477709404112252013239942902015404394664410870008362914120559711701629700894851670821294969492137364805141324622045848638526177890796875507175000755550000478146968025424780642336474650832433909859479591764649367801188605209413098491012428734592950937780150436112822799194879569709418449383881668554302532986289864155960809056626437295906007453131621329806216195619480620004986613191152410523111997693845990286958578744565361408040503949554387210958221440823647945056190852551350590155299996038032258572065011033799307677602243824443796200565029857551073901255110358079721308147125102129145163599493025563554688551558899175079651144004739780527265043638466322371727987261712281150833586376753612263897899209651916692632598311672569942644336235093070519159320310811199753074942783342164727528182290842073749667409311149071491088291006999252708503793297485937312245696065193681381372360198929102716537129946415294587115042857336887710911271550008235110591910567232774751570191278971290572933689450276410312008273300269528109398101492821631309666902253308516315550772589038396179555340789531491900747427451425739435958628042302083726387436120576510041063515685164761049566901463677951057952741848481834042363076184493907139462013910383158797489994052408262370981323001086748373730930817838791278607186141830436409723897497679957977560305701832102759291717916607909346846919683289733284019235508460996274016441821860660608858651062063198566026024107991249016666815612308456916898563062782160177641072371484591182478733763765781967585294681393193633419710782218014112362491479533671642399913734662994627822877560304949698304700504511023686880380017856564024808587726194087603822526924195797736746570224022708726867630125187729931977737835346602766072690845002488575832811890002927924860828162373619364252046637552215554864993336806433004481513541764404170269790875118039130088128038824932558797753185946474531946110823062883179039865587618080903069622694130261418098991327970643681386711196454338354556057282389206184188555901933410562056007440869015372397102387174619726198857686608037384779702477664246478619594188963663579259814834428617340791596612894824771885621463142741540766550614069550796042268713728928545609744119438664348280289167056747273481304248765709632783889689772830017644700980557526875625531810497059172522379261389448580253304605818300392552079869448519882711521444526044349123635387508881465900769575641297985833587506345797049325620216977562347542063732299876089997066710619676809056048919109639659002363426403169934328213071656422988951348241814786283102193018927850240065677094632986687415563278056372551335922180072303661739979174802659073033831156122864786785327847024794026530332648334426675111720228420571287760333296457201717478241583667286681558682380889999443514655844279270297206796612706310069631674642745463360933050355688125875262511315398240772437776288121482405244058666085871244449434264494619992322561011051719404114145212526930308225213623114088193947791821759382747880131796008125869289610931903688580719992321705262309776982732479279766054568535584834840554303481255388898571073087662755199259592270045835567363374052441251237760629271926353047449672340057887873289430586744902806527908653476040296034162746259908592268588217877121846812257393732624994306497969976537168622520879003650903018788028297579286121367377686378876542308731034095640622573539136676526699851525444318002890163930131487960675460021346364719157931239470131069505544604132386814413198642325478039743277775423661369825487940334876595012664380490487614149593366804950877476199865149066871426563297630525824120937288127190330628576973141358114473328150831766358378204588992555550821743006424384216505538333465205480654470080034029253049117297706588228816575754980417693263405185959096693218175833814247714514433858619210227407251579668938610646356918812449894648485457088825163394322220628756010643980194116122992988469361559755363811095597439677723949806535121723035254558873805173135567497584810499070882014934644474601760601201770050395634697901120749089860500306866719954019508270390374589021274221574091109031744375832129109680552905792668155383863743318085212989003226515142112543839239639517936462744399634253670978935855369937791395622935776354576848736382206350115547284283122255025609252519198555392312386595214562483359941600634854019748442638400859133983076498108733056541957977050310248172230508965828506880152622382428978690756802847590824501488109333283152528668351006597172503691559032316080545353558637640090269757158378253022136863449581069898890130902087190629978831979028625633233303253323298608439531359259839607391358851227255365397806624861739237059783576550049435566401063129242038796136812834209477985785219943099852855476075326759723530266867937194481358020190159918356065667205713004256760176774592253340759371454131044361088287738541387541493599850671736886083524460107007298008865799988243117771589063178882599128719986673398689354197097995704329941635965350207211873395154614244774438365269324841776839106507843446681227543926363334261236006454381786925826643948693170512923179210887930885435460222804255829984460372180616704167897467055464624962613861745685828761058468869835988432338488158628323161383206940869451756911456607453532126802226166638700422067704422827010683598772006616367375757823519140290831888765502918009386385056649453959641879261608959967877609029578016733970112477331939725975641288050206768853440635822993097689875193891256840562830588365267215059556891043610608104223091548407262993511280435819807612107118943265403291023691384274524050303532108579900008096179341103695986394647914083224784281171623750088914525596772383551807033410802176144173735462622308302478813690175177487383908053084142071902003945943342761946573830036264493474331688191501116753703886320370195145891030603884066168860616315389484351694650177284454133539828621479587912041423145526152021592136766579221021418329763550279674754026820860417678662608119781130114310793749510908431613403000459191421778734293130220364300085518424882281259672224540867568136592834483786769090733119346181985426810779817497465516750678465851874114487490534056817201610440907639425006598524171701271778311320454996301973226042119408105304042242257507860455699672779865674570418042279740283012439797239159870205447129444949729915037929768965986170970417532184974765743958611538138459492162400267298811182056312232259863932881960684427097611625426831904464875109548204003151735003829767031890195719800398416872089405194521721882289416257476488015940806663935157302422915993293815037971715519894577066316475440426854820806383853296428697421288063977209110062047936372636729688215150361410920099728048371195314008091697613646773084286400425372035869906062623005976814384531124302059299879286860102524410292772969645444703975990425615365062874838503246861466579044411424696050656501368938914806589306561547412429903739819810724304406424894597592551395523592075105512200046978869715524775603367939385356800144401523376844962286188359032745259005163996000201407900038407278572526792615265428648799898191431411322454432043849518878302418715447325589079116622242964333014228194201252982153873034317469206850364995091208663190207315196053062090237755644538998645194279236709038455209308947988798268300119545424964242654721186427781646062954450605348223160443450271504550868199978835013356013187503279064949515537526180282574740523347051850057913239158624581954187873157573555718891275472097242707807181331005842778591230412920327052298567873836225082397957545083522623954425196173696206547893435500775676245969968982629528236934441774663979025835997753187013238852165146205692305433885464902298124670562927407948820323561657504702714924473527572686466846475693570522439978584963715803676060515195476532497972082960516823793729426816089221907629282537290527983560465147279401051910797017458024757893973562307019095599378567346395011209285326286643179196474652766890860898531213713614142457790149246227465240258207300000650534647186900425428712507382636949291380494380466962360849498074311943843907648407673899454682171559102793894610700913128334060353463196116792130153859165118629353381915870992936453647163643332347296393322586285192190732526469856382078899590206612661920148378033822403419679043620661149429848858472214692455857371209688553578359293239507385301023880711825417690409665934941549576850485989093901637816258962692032715598955662573126746320047467734261873703447012970196059470975209096691059767243501307865383438487222537112095595439979738628367085580611053145755515830549936355687583141777379714814087471865542120084979507821745838713191222449086211635064647863224428463100787823779519877738922757441060766339934198574064600931706263184688373454986848672616071039273061221085063704381670138916456993308911232112762449570999936929523096825047827017981097466208611019138632180225220307814357166153010302298489520261485438152766387872829422807799341526943393260697787609609879446419815030358912115000717672830291119924411681841615415275776746328272535329124861955495629371159891309771250245000919524405036356600519063810402609445956463280561942975141076260066074466508774810236540124384714978815869416334504123816529813307502611171217588008500480909384228196430550702811023933524177452750795252903505838066972299296028797141454871754907621629334810185284521579730651350456426364869052796601295313807644564344865208867196186789172666021252540522347467479878303544894329337593490652094913026741583508711607671610687364451418761181624352303155514518691771021018894657259902357740847994075329280300321781030236879935335141900751526784446035057445134538594473431932145049723196139562743758992789724172434192909377077430754594011623296390086970193773064142601829040634830025076580305650277310608137392381573511193406566158760938489244551648024448057531493633214512659717900167512813970916241989461107598684275269539030301984513604485291055044969437244174358615676915262315850700749736815518496511468527467965345598503167195290721880726236217657245442399672725848109028303552285469973267563773970158916474759274639123822400025934489664305794387737250933158650677931836589784385485382399183099551703189786199137235919331790405152043582131222888338753164868021352058777893578639795287114526449857087170257578544643538463362866142489150768578654586704650083290565063075433862667581764582788248657633011998857713222035945468976786452013682252381346214087102395890395790426877852058382218815902298871517763368585965146993202869328082880586855624024150797133107577874852705867538604879966678036594784761598542626886014416064981920676271865686562709829636177546633169369328932046668380949720893674446431341611697366210563288503347284857010849349776341692874184295849553357861902066218454782383134266676420424847948413378112534735739031708111699857291167382847318282360664089269287331608809135684354138047799251207443699530854172562216503065309266316881957126208810196805163104369393182115957768740954909757171291071594136282949337729145525519995798340727962176584088986060313837560287343674280186974704664464262915825444114701070289394789563755988515984349892484537733177258652860119009098842831755626538403115955544078600131474347864959159715294223298987611974890211226265478751818390429540994713968269309083041491102796555252663164293791483335861867391997757305410503494401362213440849067558796183321821700046579341582978076767565857642396871355107019545092993013765438907948160017735756800143978645310620226749885174756282627423243083204930366290103146185017349296150305549878983101833406091662732293433790178279299392089784252206409471763832414397114222961216091032548528708742255272267448170841458447704156865053587996731898426504591201366811145818430486423110565827786727481884273796699838107866756046701353378836543918201486722889469441503860940631290190154781268383287071804030502977867194814202962766075127374618706742476986629828322838849727261044743786666282542152998329623244810145355659147342505170662946067311695040974638918216719704670258999342779668241051851176366469547138017757277228560604530029541494838133562258263681066978533616262163532378766200538118097689468051192102571679260264404193863277053717529829128637529534463136180445765087974177000780250244776059200884567016480506385608795653118705593722078701847994362297432173971546648888590236778712994983564356197247315071954419173934496572675797036322725234945588107270603591800743727653098692566051647154682840520011174089835293841770271554624021604224900873979214051616387878549651003211141324753800822825976392850199157763048818280458894961883999686441029186203625777150466590485785488791006612276964306069567660356659476346687615241009968239382091367420483916736000862521371695899148370689202075137671545162831591305665752800886062817598587150487188732266730724120764648596241608948375225518123775686943847628004824819018298083971566889756224832275290296686218054990963584601443167867274682857462047697500627819038204625083481240664177942274038467157884818000098207126924380501302898602339270907872953768522201149653778693668299054146871971068403311934781958492904978419185595879684145266598485359730169076436277323685715278712149034303597399165085195925518618703523211710847498581757291755232136424553277459069857349501285073776891997417887583017057180870039180707132222849418556796333318935440003439228131224066225471905826063664872318493115506882913693525738278632579434341992148817749433101267892368711998813668565287410500467685068288818143851224158319178785711561012120214779837685344241144187450023719219709416289985378267224893121470911111609620293135278663612798231661265935915924821805737441043358753363388631740514544872289020634022929785095378700852787632640875569903637251736053346610300968221186179219114956995003267062897235516614002264845314149033193601488287904310975227542965333332226564744176031710410679203091049345140798771657214206797690518850416871412624577725657687470778513609344609331634232185953039527614794772382260546308733711502361067792114481701724141721519234472527155401605140744744801381707762977201569316539903460233235318241059309326346255326110319951199549452558209266486090823047635685515066705835807668896350944118902322882906487909224748189570669156335368214301398925217927712712664033095456909665891387415844962117931858447258854010580277549511122880687925935205536601464155256032182981275517959436325004616988712509252903740358706408225778280158495425551425641638662766430204500429781621048207018680358925754358597312378968665245605536626376851780751332059262174990058569416883896982970904381343836974283034773414099261442072327357098380063986618930933348270019743397698406880866459890374455774945990025150013756622885956890075190405785821294179625455517065234400784380788968373477738760140699215960304399136280612615153529049105944138185561999891195422180111709602396932548065300428802730995538601429563903969996076348591967011179171587413686161608971139938110308802925346015744229868076126163430309356601153244958787361255184487563137171479085852269948903582811765067509325285083919215229959495702755409594585744387341024576714902851955205560822084553750729772650831136842736705201383112028009149139611799662116495998158659586482691465489468148187058061999969171087168407314560247757058346870119900394187065945300279939140679777909311076803594905177566977793477711315251838815413342403159249098191013320526735380423850095293640172454387436213186560159664822858220896807217873077995053581604592830413896818019915108640463405602716408316502635996353629454170719287467361341282955855985000271700398229156755017801965557390813301556494394387370346510026108739322091759696746362068275542868733229347256615650181602020922382406676055377112580559321968616924464227201095883315119351786415746665897692941520848821395405930805946359085219533104528673458682908586023485555569362947615252472374030203830286360522224862188941697272734828252641880208595100425341456048328365793288117784598175975994924545670709058819620837032843752839340974771542217382860579396485528276029273071896746230648414411578358130711712968898022515654027609247846461834239617083577882727583117766014813451663752781579849425647266400580213273055763902601057690886008715593795702170042618846492620084139588944573781550675786456785926328406546900248415262584777025759026678325262623121052777969422843221034316027717177148435982784123929794812630759589937759161876369059130532883565769447689746581742144900170116338315600775862945906932035453303728555409916677789126503655211619340654106198684671080683809873657148870861478697614676913439162832207252517128741619236684297470677764675179642292217587827242086973286333947409634782094422932799158813945350052395126130826502690325438153669917468508838850305655745503757743483410362479286347949823896600283943802700230111089608839225127830474701056583519509229480622695075577872381178886108639792094953939037059534080153389108085426996421631820619972355242416673050012993266279061309957843259108350601050178189165062402346348007211889959678263888358058644408449702315458893379938444371896525804199877622434469199280970990983304976781854490708376146854125517124255443775405147592503809781408225399820263664018644954867507650662071520627255022233320672494964018876006938478800742814943625391760007343041861271664912280703487575704464378622156920423675513482206975334916429550330795693066291073956743169526231364820997100139725103781720903670206653882541786701948170085155575841940410467817125854983748971545791205564880764062115377905817340263017559260414659907126082628970860090775458561492174299650868694235724849659655470259697858405894351741454547273356084958970216521131891447075462570590736769529370639496746274842917344446411154661085445139472830233355666507762359664593676770915013793755758842276138961621399064485862964730727215720938745799334066295066015542948702286889023842146698326610275117751363323685278492205846643518267638145900840775546715001769090081069976870567898665845061751476144170768813534296004428101887908121361615878767433973754230157624746132945786568774363853365279899052644941207920050230003363775416027403724103942769527927376182300301734273619400089940475885344894558632286696006363638519196200805038365578998498889964736177502829029186436816556198547533327944971329188350983722518458246984110569359532553133640161998006521736188553448802359621011334479634062463961192544237855259201603740547231311838586690375521275168348861913657304203196254629946208121476902632957369632956984808731874338076439342627691891528713046369996049832807496005691171072517731340481228629767960457823823706984538606822786157114071937745680340865757894923813111881597941098358975864440469934304516000730941246818849928422967867842839081500220763687040570562690802371097884340067221204914034138157334948893342163663048130273223016820301575007940391919417546082485427908910920451038552270633314415246239644977332779614483575249603152590840918498650668762274952056801628917466384593473345749325780484740935550261333356971953515092672621662077469818019596290511684768949809349498822945471669105513134117437758339213893450844944674642132607833838316101958454615599389680107766033277237607936232349750402477648505685974545191056631962869695505829164493652685182540001939345903575837889623597931173698593170777581248108500135405023782933764788546016828729277444860195768578412649001347398362039651564814509670415233447675130805927192396281948623595068938572987625723274231062591563288448238578860305422130360342700933088020976464768653309339228629196346679854794402570880341760056238082789669477905919441833655512774964524326525089639413188878249868985426526807281816607905263384152969673936668364641704951128820056161851799734558418255374140014365709921913004664088965982426303162107725015076532662667865197342402334050725238720165104627427629376537381972721319421625664888462348843688424647275472453885438974941680643974110668366856128035457487979925207902800116517409809519029757686226655237339307232014128593694506282477215044973801847355431348389306626500314292978507936879950202546076998065896677361412673870407083199488563617758759046159120255560092251155147202267663320752694065374114666550238699368722272692265876000169798825174737083931198152008395647648448542036778918047986336829614727469310785329772786846239252953785661151430391440996445030921858526687527918626222374681245907250676396064308396527364277096653000847016199689169810027826456776501795351439569532651932645638582462217509525432706209107184035052302410892300128990628434007700282618316650401455052017003308541256814289543471460547476974217722405441394915500438919958721236843256893496486524994269346795883386890446845724867694769921151419129034043264880403673248500109142425727008374842458733061227957037338318720606077272357675884162572330134003774330333518548212898689213612338662133332246034618471891269064637987943571998212800937038878921330486685399742408390439302537930943627410133646408954751515564989290592620162190155459519510829402861772680576944192721424712680645863604298224677366876088807855219112987994696370604498384106917051109513587811373012471791416120988080110192477757335007556230591958277003156696238122060166247999818235251925885583823766639789210773652951524782654789605129701183401194305924322535607800801470124525229905751677888014135459274109733994356184203412570608293293481061201022000153440040777060745553928590474841635543092005349292357465261997796803683468867603787900210628850960938081632022262299356295372093673093395620013328959580018753809093449303090130149704049259051977565968778969626080330512798000127065334544952813264808174752995442030746278865129370445821240302164557668994170496769995514739043530240105831851042336419639473951348303466295507656618016074797794897603868305902326797740407283521669958366723903651052046780532193082229746245569157115353215015656639840166089746222699993146198014067003977591550839368265814861578868093629036633263933862954574059806941141208534915131701595700377618566878647215457254270409253243603289933251330149282108963438737127957777985650158825306012034003353766492725736179514780839905268895803043202668691570959938748558604978457774401836058550869461930557838078762001941486578922456775439623616540989869644960549902678303405300709810673666381826441346005066193469466851714426797654135774190172512265252829121530801328291837303727772962744299724079915578379817962303720216958137108134957032586785737939046257655394179606360457539763485730298616692981324209160988940336484162501734742381853928559688454188394952730377791779809099752219399600997901786545510451831338590071809711002212080983791192936327057264004242975740345021890674205042225154637562150762683191111228319670210731169112761325360755671793044726800300899656447065277297877903843114924248955450648956234419906592546212170458293309282630784736634246717404363574961662252051397949624159331641206594261154455448529372005840427992683325383295588326912706033209506011377608896052628965077087530043071108262053248592403322915340183029217233167045213203996818162465799761846373009680365984658603397492101307764108270256538357128262715497683867988888817435801830875954034775107643882402599363378412610792228077993451645887885772251733270640032960937539815587848942844426086860393917680816873504543850484449262047219009846887223858488619644864823117227547728047499956585677898308976706521071420795752114326881607973817987587983816825723266765499936875997051344835838261849660411197882626848784696536772659220771369705772616291793195631842450894009767865692462268883071426653110819188472935731829183341572004121017469543868482383960074520899888401472953424836315405747114484706506638471247501802503133034709009553709596708862150996282151120925150881089701597530094453735087937399382700719890616302195431930824626660026128853732378371340563022841062477652309683543576106911929520462457575119029089520943628577314855585953452173448554158663665461201584191329768509623143379476149776442488833359473444928293590475595538253989263459913461950717016549072952812888677690562269168595841673394551680104512181798493153441211719566612920752549524971967429808872855966202347662900684127827745390832742738036957862000515913767230022619293393937247859535382075911047040109216359455557521223091892960299608503251402187205947259646697044848148124874250163787178287203319446364587877268286209649311373553723483817443106788164224212867013031827743250351133795426021598309116156991091889600631151148981911782576534980210659551174723093484818019886476647874914557591443852522426975194872516329420518793271119583291107556830651469087484586539510916368348230641759027983149781994686946494378933738022402808794092117478016890280134116119257070412548915855162093864057101070777824616123198403452067409995214276901235991075543892728302138069239088104037490130099729558849663042984842595094924193800182519618112129418049604309414177942133433538822777468743710257793116188760699245273666917385866639900317242518843898088726247863967979677014071937313337944200005077957784232953321395219471807873120834688281934217521608148748378721239156949845191101045741652074948916427419801946869381181142910706852785069460792750782475792665327899984168079917416445211805552425096775908403560429840774417170251122079427497040142421093069742438708999601749471363397791798966021302954366913993086434847194926880359212076882263859873773284221131570571300535204424213051317112236292819908328909473656767468748633089705816629480078216155508612671449738583618624590495244489188337905444292658577466228724716401846204350809937017270354520115528564945647559480375721127729444927267436474957980031994197170294309969377263215239265686928504706253154101297447774487925811016602160760934681676092369322977674492561138577505904916307979622025701317869172988048425941122446913335759607510009409552118470696487635752475121698924157995883792719009994091432029127776291778932096722170129739211785467582166907997805362458093597602767059233024748612904365021402519161980076312651409664353987150473097420434871083326605919641604405197009309331478621495379770162653187210657981192124272099593871172872351856516792981137500509436310020101957738728601997395056391093820227176875641834002890616690258003142780202301011046199824173009197516558264124137979664808057334626625816152055784819661307912655725253497373953755424474822640694677593352731547971110808939541622769897161213178407118049851508353908322640907778351075904312850380225136349416391557893419692871578256858228925826372754526497280968944389507748331997040980933486450159670679595124929752911880532833510495116868446674673734110462301200395477534223130329123142218952626498512164614638733832158438091426826563525774544845110919563462674665876958393218216373418536820272500479030289606572457170384151631226204026308956220401195218513145657355322043367933561333196636627710431206457711570099306223979154621472679149088196357619863828266850396098460356463768956859501724901468225322364586064597874525024447188430816517243771207557481578322394718270471107465338422043207788716275937556343297023189244318627953080803245713633423482230223957895120529903187069381742757915213914690303678412712426606767908023609093317172526185341444535128523545621275107237234367923210746282379576907479596251799389611408681106036863711290093752606151020758000400481050977052931355207123460990764521140030792504982731074919031696680519933885398118753216938617687657025137120189350748945677193243302372004508219993774016312117625762177377928751323206307383618712926782653211315951984126798847762280609481068352991819100791642578190033232751770551858977172787551953317504047305234080145695608763138131195190760273626740521064874566970414073037147516467317788628382338624783636320758512336612775617458414661405745301776668240479694432592766787095401041536941046123560474954214365331097590928949401351295554953355444146110954878218631215386036109702089787902895392153399616697034701318913203654991320239573573106799084386043500592800387742462456819302088746706330802718910783383937844665492166993451742188215964333566838190787617425092205776327766608343540133249346709481182818499567088414614880618728828125440064553116869138302386470005121963257914962067478342247482127192670095182915417276118821223670402637649124127582090953409957758110994836074594929058451381484447794183796650857284722050921188468213478048067427273998097132748503483738603690187252618391556954571525645483420978146935308727913552788875904630390947341262862804975513468352430553879019580571395366306554932718497631714607270359330719165791274575879417974175628938287755171913254911485633514250345884289304541414785800153427846984649167712252979299243074975953988464241712415506145028668734463131358327717318630308573886055019384030001868858613508589917446034869583907131536947128806113205957718387774301660347560233182310573226661323228546322445269884238240169112165288859215751423315515435704219560672989919008075387708811757169226675539652344723915318162603906988638458744311285418119027557027182200823986005519407257729365099975538060632793520318989741372809864306888468360539149833734105139732296399867749785336145796574437245059546897102406300210239353621446616030941324293897093035678236447874447961473340010139254364492474867867908603565261687848139472010296981200024991187173650966378010333092796844259639504167352090529756372298077161065659178780309802038576354726863319168053199572291381639072255270850723361233727598148801223303599853636560225669500059749322715386828158991900485313690863064929071626288390925537274097158064206386250417041139094345946206751393534534734003402151328235794354927452145473411888276980803194602501262390298471413986257762446963137390273949450163795093816898014636191321610754326885266560966971399550998451273306897775770606985401142871000364169793976039130258976064851732234673574972638381265961569572178039797368255703798455300838770173437928467925281614534661488377635148651808859815785367460100573952819014005684052977268269039731990954182400890678292751120621174224035503594083819951304907760125764180756442082090432968801282743745185435558955671691695340555434836674327008185200275246756967209207285814419375262482064874262450345898901278254871610751665747226059758904580294804658995940878356932570114039935099338955063582301924026201218920307301334575914186533625754435896878679981824018379556459811882517120451395531861949992530559282049951746942458150685242492018725138389321080079570260164961331062780433761135036971620091994322803883822146242700809777134507460121504304428197517629125382070330507747187592248943840959280711730328930366537471935194663329847704296505460447866537122422231184149536435548057168150908983921883066282172898459350603035014424195160909274697408229859005030923103863596215635066955108467169535480261300160406246336628201908650013249355344141017240641766918306963575744469603587759156544404660574609971983078947613979284046055744960449542795804824386013384917604146280483775864935196396008653718389567647375934635513629192461554939413885272274000712189300173469294441531367519214127884354596104054882652517776059733036662218020162599785754473113118169763633661160394854638506853929167501083195215048345015323580778049248380246969161177480457466733371735067356957519615866041130904216228042532819042206897901437979037323951964911747130706139666658044280752797251208810119652789017663695741582608746554465240751355035301421250710764071127029466076503943451262869994725769648772220864080691417967152189832783337981782887942452913474373656249148725989217635598107479858314568048957413646507163582060464528298178145406674175090285621284412420072664274527922641542565913921072783081373195760557660424411611832964833326336612960721151406805555390495240892476742361234365424671880200905622028727033659602143939043348961565716713781658585470192337816794480501782015527948315716039935471180805387254208230197788175205830637006499505586067828124962619125505338693171250918600909562513745467921920011779628525264972976432060649499785575731638176406868539939409155049892638909400332567425521794713784631596052900312664177468148836808080511152424350586070676133863687582983140377411470174631312050040293062767994731642476217165623107686964377447528324381760647297690571452228190148521325520649429326788426842271384655819677994426516864732148135140711230491490426006111402473616014406415984392927222286201468908011579502670456402475110773664100297732521770318722700008262785907385611274578985500563953022320448880740424502381116520974246328987037663274591488051151196815352855694056737882885650103732864468523914546671934339034155693383054384391656108201234983337065906474740851564655645004466420948913164700204422372981114851355079292616983519748993203053350031895271884168535113166793430041156808871989697750369634800801351066546988819663267034278469231161978926898059116496953200415465208274268062824163390499759534401616586934118523478148143682281879490607548097461919735712842717617877544517292315336263698693970633962235183694045477412421204444259040777479940873689267819533898720892198395341419270148905707215646721482179729504080413427878000577606625561170720542611799936793364433472186675102599054221046396291275504231111874117404184630782909216600160672045375417228678318023047506111260449988727736347629292180819824926923356681003608227172533072011338401119464820063366012626289409600067945923503463200345335698153311601011270396928206714871760056515622400578073231038050298851759578928988887840998096044810803524145814791881385355342733794287004584563732707819294487010144294035559077982811346149944575520647276823182741640377743073789418454584826842434598926985121692157813458007967512114002070174858382906452491638920956683432657816103490259456255212801974372120766076495926093965644329909953427243812924978655323404556482316165140218031227467296328757186386555747953148121739896234387876193781517567004814766766948713653332059632256526509914005197822508946240794800365329803575029041508895141630615300765536680340740030711572320374520746865904090489605759270684736052000733084424432606440980169030835288217121712184086823589626919775933638498983027526909421735152643543567565894501799221128577769141567911390298697685076064911708564036152844509972925096828070280127111072286054902885343640224313412353029058737036787731553272826082035978592201022652331218548146628002270311516985455735031059538958606694030573176247929915797976838503195400650470319321332965714935170724983603147669159922351478686207475183373534959953549970925916824950878646309783518307534159735147669086779915914680589670693800348028319799918526474641600920375948972652044929318698053472417019622641399505591592545975169638034488609533857019392147815433298423965725475151284318509308325184129234077731965600996480486517609382422101531740104153272927975134264459458533572633731644292487753877107112380038522227985491577610926978616832498226319978384460960633641694175278703763154362000856795600436733787295007607126915404209354234632640797265713826957214308722252182074766860510967433739255120877676323067790624506449065253703369218111070390690641090068166491931246531240940827982237763139742314298190311894914119337865013577736297159268730324404906478447501375747353559369647221059326763197460489514749443686568290989669514198943452826361340828463227908499062859208164188555215946464817789789807696041983287924443013522478701185564930736073878424064739586367171588234219683196377530419654686610307620728905352330977342847961003594454567120761476978546500586466630870631430318507793416663479741998378776057454330803939744101248093841879480347335518582486438321959087565035483800598710507369069436380055939333903000494009153946634494037791339179750421940546494385442526634460497765883318942541660232631141854073536576578582404863916752652752105414572444593320439759261313592331743140253136141679386695854651121519895651006051672099333292064665744776376581980121215456404364236463245262793977581475214963043777553216477804756797628524714000272045648995387701348080612385897252022575739857587225587903810888288463273453517409766219529076109393494197514618878203440307849929380255526546824798108371620460330532880260761821480812960611123892175506661530135568645056346243358946758485566408836991414620727746752611886153751706087123444201437743619053394829828074802761379854580276604680622583343583795794672707693636256280045377593206209666028673730492857036546537447212567262273823273134949665392508985605103416592771720808532281535994266348966147741202648862069303973871822490285267631956112021028018427034199937251665493344771962127080983049572010309291563667065638445802357214932709181852298328310208432500418929518402160957494601844013740271128582923213829068092529635860026293383975573087525416332470279171238605602265775561715247802788020692254885924097292980249430104913632769827927583463416329622503204805084246873609572244476115042846188245255575585428637845976651214446414512125183606533201491026896116477138695075836824911598612148549840532926975386674815362115364764315652796345016261511985142316697777039193206901168273176535524185461219664817904732044416094059299086937815451429919613764846244798372553310608629541185800739208429356259373345714598602213321509841958094533630624161035823680584601263417157988656022252844528584681295018437166468345196983882153416987880503249591650460259693580537416270991326755998197187378955537317835775761024100395981101832526873882073460209039404597171480527560035980694092238508782287768255772398220288768362948228180775255365187768007752548737223963845458914433895989394601794186853427506889168464772796218999208561955448337257211602416498290602930361439356806371292443305040112414572404052655748110125546331860854959559095035857621454316030089966771280117510233065525253887959422639782487210187578717458251089783839567846583653004275959508136550428619195703107812000755166233108362163626874768646292785839390714620531622786438502161905164675432365297883428757643482550488597837152172629474936318094618929501534875230854023321394012185531208470825320142717137630196187145824021708933785046133867872968838658808635843197340983342706298553157827257792622798986361349491256097590446524082313417037346500788080859448312682041317827033422440337221368584164243325198438915542928784063253492242155953897975395098131307416059453940164696209302952901777506716682872844247082608277375215990318978978296523894216349824878693818078871639225820899573244100402347757124331608407952473175239705509785779337879538593209135203417874793177567075347967529717894960006178341324167575248235119020770993474994880701936734510566836492573677589178672319665997762190048458726581559798532845639216209549315997830795861507033140848917771607492427327930152154668759442157816893612677882132380174276012935826272132837660117652988367943971554724707325105110430216659089081152478420703812324013354948439974417032337986654842001478313698996119717013917667421547578742193993916224517427940800638997717338908278179109659933166540765057950840927806053251655880744809377583889541639810701227634213246849106112632963596606232375445201598546362984266766261593383172245940880658437684262830655789038924914050036364933685001026038882084454421319808145126971743310443657137027770970122823496511273919032858917207369754837127449458471036695466929670145800763082254958047732858269299142659386239702855391555280625113049640762448442586331635710337794335610652948445150341269459186690587858461707789081899303784579830216806861550851452560390838966919420040475662013611593676858752987572158317429113130260724957917646512527233860887022145686747884006281551463338490644942412728954135821287425848615566304444781114332290476424395328504551924937807922392386074631192033769474109361684241391418088673936337665952846908266699224609207151624922716936648568287476377509231026362846905137582163401645561568260860624588299437609271130344801020434670837601852669371257374354703977527715187960100679622210766877854023838132667203877683376574102898794905959464747227595023718817895316058352319406119109499899171604907206866223113702601425474929825719575280198226333363234634361095676010178346831833374061871227234072120043303624477394206392651358843759451063126537090808609351151796666313442404409877263259772085529336379323351112437642977120388317760703627159054009931648590045077047443907728916596639708177121787035726091572705424963649271358507525557543341702093808466130016844225191431435897226371078518514176008247818069019533447437274127122496803892756951240488287756082142851404276028782165858207389661891488539297602420958258622922062195127831525801297942229285466180932291697143720025051177052850264199660426791250028972737739761835726004768419077859812376275471341924495665954589471403590875753638189270622567356075545860641833897268384592044298380176173658811148553248301798195848199353505461617132485402339798960105470049583867122392683118291668111476799451028883795577354270258161122038121685651375606387804849768391804214082945808077679911835505440846007701669973527609738948946941351704702368179174047469387835506774341351099443662647608143344695547432241839518963717986142255829015208895882067971603634578136886430638433860289881330156918809118637081979889525097631205125239669007928401179992382170697106000949126051509494455856528980586026540229414821146476456109905141265772468410652975221507847485551231893045485191476403003617244516452468244412231535781157032428842012154401219443154996599320214533051330147230168211557622442481962180440639629667722479781284435360270945290770735785395618317019053347907578877660121518064913826904995126988643964480491128230565055075185053529053568480084769725323188388717709454967720721445469229373819971165646458507990436257165269693435729822532977722205086590556289921307786553213527166465096317285284798286617348017919012888598199745820117538425243535217523235799610836744867687816918564919027669719411029383671851169974041136191860945927323757373889518478044832669188541556606083122813330508226296901364987329717322492524311991448657090983755146880827450603343011790658401700397621857091652333135947822937151622834613704472886567009894523581621443692909567201832317891324574808872048110264933793908503416147191890489935287924306594315148935320816554052172108822634193485214530392183322245249471067216699416154439097731180739710390749171955089687492727010764155317800847299262901002256665062285034031240792756702643776008069622493791732777732990042313222042019379739453642055450204584380933796100434449236697548235579010518005977981497155621373235209469351914926587391599748374764786595709142737191783971744105011664699120950908039566550750418106505560539551049109818237144433934944376930044418003882747428012692259070205706567602979895582295355915419843680645905001388950865509387254498313696628045042699116991276860940800733252497275312576892725826518505754021528797927406212981788691249444151485249229616129873137241720792812150712726391559793422890795785077353439699550477495170402474923559122612840721096506159562048066559650172608501727968452722828074794855941741954872867394556308576183936868328352086879742128867162398319017129441449221152383638327403981342729569762655724543963234401542542996498167126271419219159457028070661378578717237617742825919471503206218389878691515358814267563535426795828670147607883512331283260088438897114110251580582148239607570801210210389566464366499952540395113964939594423464167588309193964874743872723652040143472564631700493256422300350902599263999709886415003835642332036685941280555287707762735964441260373479054552656817328972355773382457246074039621412323117544261927928413624410735108129368929907457047155791764809332015318047322487292989463597130017199109013720712588352112478254973978391144649339053578259081383472456532941566685035002111937852981163193249162528690179225371698561409007743024327962690196989447652474731520792347350114542514548375824959511513903921033873305843056426397925302900113533653494492302232740143223362669289013949530095812429703145368644592781388465652696534755836404036551876961018882176563533241934428400314682488079841278634759169882038444546527356917162454205447603656027056305264846971970972706416920691515306340931937096528745584558034806920894874591186409907763777135822325193273446426120805590078249243968161527870508331112547530434108886208039550289399879352309019107788438200165579712643608373306616466947554763628062215950142095534322074308937753628982654021042478371702284055435306189495844177661029859060184222553353499819742143035888397969674305628229607704120258955109189084989028091835470540114251942568272650457371292683647477428487339639806228938474636514218393587119118977284957595963351853220146561527204390948720346594354650886182679030123654823992214417834685648387796368269511619466988740968144810979193258374614621041709134486005505574881780358491530456337950668222284541861317644071278743772182731433455490255385283936908114929406625728005419052003753435196167055870997404253075724618596630346700045315015915612103765910123019109869041513350740565443320720631880285482497072196580392965720029375915793506705663318090436169741161657176879294189879613875367200871390301827333131631805197210259281341005401703717189224756969863510596899858505470229907387948875154389568394824120563255264927969121773047318604431733196742574899086637034410921424217785464302481246756104675482327511006449940654914789562650791796848232812219704594639152211069077856195386104194630205833707543053430828999637069447171638809021457792511775813180959427930946758166559987743484510250779609157956816116394835467717276560122622692469858344498295745822572062814461138824161803298676220927691121732950108201895228883454672325779404649986877428018848759444612567132438206673272002779688700137629394139059447283157293242874658043075945378080797969334158377880892022535178815433993204227092414552555625741312871228487396597569756443494139741676989576987022009408848709095066685647307738312042723016373186504906043043871578786167247820870054297977224962287555780560360079863684044401788920484855714898159836257056508171033894502334478403608055337115200535389012146746986334075588528404721046592721126649311538123124042124208456833849027576504377321355800591822678608457141850496372987698690118526635493954535740395369381234957141251974785599988862282637622379282010172590282650276119212387042453888170492144780573081138254911406374792773289902896426339833328515327744254221549350442992454708433456324297664670997274046088054447513886325899336685767880167494596112285055347971253895023922605749390017751071519329604105453178866077215876560169636452976858634575787311087424596057794067832230608401712655694499109670424769686808985990436523763534387184731647998824267383869687449492032297097818672291831696040703347725966489265927001447980741421602606558169359379709771272469821451770230249730833268129377089267858332014476510401317382763045940265312464283752051979349116361656793134841275922441057454461115321211387923861002696834816946446445730942630059845923153164804256173107584870082182830409807152683640767779314980997889010585607078670692972443833103496093647935314240012908323403068890647553298232170238536132584489468425135770177639419564192799421270145495227019554007685016787587580234041771329828342622583867724406441361009374262050210071756533230799243846773067604834856289234156125415442656944889600576131388720595879468158921782971781330129885939809025185291106509093769627843507213196575356974605847712341162804040696220767538468944171745427310020702902465660334776513499004145800475105681007408539672337270608264784044269183104765752404560881175532236718719979061916006453508724078092826919539044122904900916611343855265990789093826507169472549214968247760878277322320568667901070187699870618241043510403880720935676214117877640889106828505587120020903789915190549453666644194070892281340897136792305715287281359983343865996362053185226229688151182814181094825704040338348531522689470372742255269235362568865086269389664791919003532031096459762645710991181583161783282011311629447776827535380869555181756538506714553365546459242622953535434281463895285144923841384161410385409396419780679488697011829043913374857003638650990162896635712452841664266649839151742646097068029871593306365969205049747354779992289604300326201956432365824338824697431894627864466109102342178906543951422886864179310944786591359461937792836364845375729656952450877028443639426437725943113322318897113624829478664557300684399253176973050791974284098120788430566910506399231577328002758789646155406897871167516971795948681503608412496449046370937666655534195369955869769594129323380083096569271490126806250426268039331368888117476245830577448863861423650071447640735274155021616523374472655186470052778174965778815624900557275569971237092809901844673860139654630401387821711251493567974152908407096570562558857859579640278835485517253947868468528867282639852809864118535013459604413505114341217830277093811530213775056476248536272990084920878626568605713419127816915224311640069845942177059662708262031753024604635596599053364424800266258471392767040414093343067704541815601430752651792983444718204298311291683871166295867022393737819174779193260347840552784881793700304536084272431152990787427632267268069398357591213430872404292390888990666892913672091924679727075033562035349927118679349708229964617722709666391170689689837892732904807837553384383519112750510339914147977502391531955650611469902280796020979887902507228881555443516933110193193271488493564416746600022284855164167992298282051584892433566111074680147816716829937067771632652318116577488959999328689714963158465189392565992626980879083380380527895089576165282028120771168668375254013443028634542576419514826544962076696500141213683609302157982322780265291693473335409756892552143741211482554044593837970163321512491499412616269973274177944917552981558269402765529716819729306351394353095805993661701776380121458591793827262879877112227416170035317042775987597111804754004147529101665712349812924685407907739832024360691704635057884530311112481798418039917243137545142619621023617514401330642143151276763886486364485924123528594313424970612014131680621414629885018036919358677698065284410191466300156828657337833987304776719889492058149586926509676502491140147282110275486200446950154821768629877198724702212075245246536952546269278249239289939900790949509746829561615556625861788592004916966013390573227704798573874294886248291280977095271865618996245275282675583036445467297267804943945173572316364583585573940345639303322488663794031797277073454095975526225803960136319336504301790578575243409486876890955969899134464732481143511093252518820596488669730394551918159072521537078574614618190608258579341774695017720655382726250786470901679936219481680343412023033433586342738376494505266274521763137590682967778641389078274821760872315476302663994493605295445933672247750893701254805402048534519515409785892366448343875672813389747744441348763186133120665228787039372280558069996256670726572704091585470575725261936713516774900346952364574178026440307515839146967815507270563359215822343538880479416902874359217079144900982829848869888887974345988558356033974614511895427095319425999846079518187699746585027764404137308845220341593000892058656903894186833073909824687535315011313450322884670118794123360911582048339676604252380077224888215183342156520069454884031681172359315853414110533609799735475739345271966700146256011717747513857048251578239206992839642765490178771973852798381988401012454189904441879531551997941019164551394257680089766911471602197683343931795994573040963522053272690429111598862273139323800631295537703501568486501320025236656753574618828984616910329361289875644035956163088742902639226138987298006552897895237458538213715403228241323624347074099562435945248618375322181802325255515716081343239005903215997956672090048495381944773074646340668454443559236775694625133723130114026238355625980876581526053510166407059984419809195313393071849351054752040148296495619665737678311075311661176763837602312347932857772314175996513766284951266326910581211126178576282750115816574565876406532289334067429390983162204429541172459111013584646508168682050102881123918535016429784484145191024311591451916268120599513000153130726386043905856878229795079402887206460320949244373642658331989226442537608427759215231273240209472020659196881545728720250160708775698163955580355327529669720046180218901959460912411843233130127668042396178851465992764628378387716354432398642311495654963055246333537694168452113839048466236682045482172621528541935637869254465665591341470362239059980300728144551714585437892737315362565418730764332596621116176214210922169997573476856149218939003715213795606711043330077444247399441192145558666787513386493081239690329602871369865997556393043675455748092590922465480178672061095212251098746894375050427610502138244412354421634642061783708379323991821763518448319009552876565293985630549708640359540456422465103726142194759512422632431996316846791409808632222547166608287005993751360417864384918247500026142858669617651782272453838916945048941334506983658065613203414843084910402169411920392576379472890471276556097713856916246374963948277272267513776204491713683073444863435749452228035694583216371924260355832380819148644320129237936402362359629005483514249768101124100692206042424570417270924637810690019803758126556302516830769688207230466029842019122154485866605288055551794928172639267894664253090677438685750086484916231862177366398755757594196677018042417144476232407222023149395335956969564259533376833603090383194077260788878331860647173536225304380829384968201021190956505621027855597017370095482192617382240701999609248018842711671151059375009197403625050056610743512307143137710378495113998103202282559375281161109600425916606651062324092920337427098621403007651451764006380922871107360866954603444243878643596154753982110266445208183469040330573585941300795040285730682613039829852656278214323038664233153685692108884966565814421853612883293282905671126206314801996317982727936823962710790650823812986784959898723349507149548662450132324645328465648610480167723915515463784196038194571105420996232172771318521173219665117788842760353747773297630448193857992783507248631899600106785104132193448644854160495771247831832855153810587396958071946552010663137857363782097377996188658530042066919619030026249472437694419102712945639738627075349066027823899963244972375525286189292686092019894431352160889590118022076892071263659402248709337016550822655956688483378365558513801833861827078948652244708471111560690742023805438208317727422927861384200043262233272648999369716804626330682742792959841520296017829335166675517549328511371859429108514828171901165565278649719818888038306737608767187388746592624655321363632501462517900164463711268189211861084580841157470794511958573862789631648686268868018928929146941845281116862108304147770696192754080282754077786388545466983755361342791664197712652466668822047025752716822030756129342145524974243049345159025809915654006888227638662419108348647508678114255114067174986987747196674072097862965495661322928092384206179927769431154577532636697387360952585810399805543313481710072301659808411365301936330825862044356978042107909495986145349759131580554112102171364151026594950607567588354414198858275779067346384484999993074161292766705976720467788770302954649086192105391450519798099017917754471645481389943028948574064985143263867728468280351810792413182733593911588498304793309809325082331721671763493758724583299370139795913935152635206357995487814285170803122235878009247078846453987272997130340299967340556731773228643442760803963629951709778781897756656815525596137537415381851504711125084232625679482271422393828325045567040399606637667603582157179866706322678515197953290672965775972825137547494061836086882004078060764799732156387129003344740382991273974983293922611134618006123977500169727232696095226321914759713902133322800590542823979963247529516517901815775880045493513646347300832746191278308460697971484559153285360814064293191193555686414846295349578566010714386671475326782479210265123151938941108233332068899938899137056323532323669873320676999159504795864998353215446792589006732837144145317837348208800802564529310842819816796348387527996608487668628548565406894439723065799795525646237150112068869365065103314786285971285538424069756087183662620738582622421746154119501261866043536780894573333234458935520682713111396567042975958810469804484897797912970300070606871802587001588378341157331570962578595710329818276488140070181989381616114707200030191932433686246739922653953375529077351501007895107228915090589932255757383649684014479440139788826764278982457337970665125213785874416569928526579261057130531880585574919995341499186824854853779103091535676408791707900598075432807600497033158729138305150069167718230914341093740630001220393721267720060648862522757862510840335023906450308805839623229931928999780141968969298231700859446065454749424951263802654397958927422917036942992933108007359457984643275652689265316788628513412987755293980084506794394460882041476003968830673656911826664610270915468718497543188290051868781069402159162033719980368420743708178645685347730361649671499276682850903568429334505373876793866612069053140704135943050501979707605442634730097972674561079533975089734108412924335123396146329561399177452431778992750717896981524277911575575537748283325612611935209537663702645474100289974675582779657837464155242538134191438571630342105303830214590392993434999278660906698815368074916542235481647803330501218700592146379545058599720776019408959986572844231276852465784427656736352551369595048637013107208820490611749833671882321560548584562130717716606815647739445357666556128018777603666651125878231606539536523445512416234239548839687536275045989349264469046109791187124746763718118654400458064814139611860934215988807278006084062803837996609726805128051736115098740746834144298859663859766622945374059357743459812773020706125955247872909725116935628809672367971735968077566929089561513347993843769824693796454035141957704565465621412156635203828922091730373197646308148596452793860115974420211493066750866755904881861823159528571693038493574992953847647474381148481573379976719872523986329717668082587668509521494029097138281947777240046597113893570645611164377207383590686675522284201978558680977278482597628341264411637324605431153283930776395921970694191486279821096817424425796720271640636472247807483136660735427647117222003483672835655131905619627193198528812282660069375792873664089730567464734240490087858778168230356622869953719357926654429928860064389901866927535908564152686735619958734393330285022523272525744241216006849768555089665656292120907378604533034682234607801064457074555173966829076123809574837643804833711776801252805126910472971706932313878595983067516961319865289900879486352080085958739559657645679925408031402885585248166760529268871599067614755960081869842654108796661938722807159400635105328417574916606646992813567749411374114448853319977976570263522135284334990115156307023930579621491814434044074842489730218448048972904531246880856657493079794482006002082664548368879407531208497880621348289225201942987263373069027987900537774284798860488005357481787285960723111355697958786877040923502396511038083316109698122538591190956114850408487860708703638156357281181975237336458499432250416234528406921163213949629841719927501666447999662813008861141460887196332188233924499537682743381552982082658063153063313050227379001768895916349072302299819874640689866828258362709873892007537780742328420952541986089036432527444439907622343941639620143627735107928521340957664533358837212985353891604352768680295702061321394170663148136295898017947312966248426424359780843669355865724357355098662921272698315392870196679928981753605512289612739864604528455753627763366332316386109029108988838381537474100190392587248942298346571205892269715113187696057259752488326465585694665062106994227814483080170548496993580347911374829570943500672952639039934557076759362140973222893740273375310053252034644325704594102896666222640690542563786035646903174671966308624125954412599361107987907578539904578133012370134538512786214950073634881837156462451973798137947709280257315632677257012473923172904083661936016123557010229453281513094637147464073532571949191651287743939087930031410998858153149939581947373691152054111180442861118385024399168786981930703523535790734568240837502581200182198795048896767485855983019509088225749470118915077200499621474240983994586704554890915319555424575239818018352520039178006710007875449241238791725338742539202963160056961647763317181019180919020932761689872226420136814530382373073356281054039979767463611383955137108735423780228435871776945560335455177750890559495717871210777234426049250585771414406230861005205708946264937646228389872263626047983373929989774223209168113115094721953289221597888130411613553210853717755777032355770139547547296115521085755516955571065270918688330958361276105555057742708195525799816076753178330824708582291442845484747570345904539631208917806665752501333191650297108105939569722004772935423954024766965237841973689393245135633054866761814616189157502176478016813042553783486267452947239922341517152676641717861202771997667277696139605742318331140168235677211315199394489263306669614154415526399164834201873093128373068095161466175013966696770613924096837829896226876671416203686748068787127706227335257632183853721558365983140810326021957035906544154552128720357844305899870170629099520754709186056588733256664652070527645673385359464366151196245309744559078064941757433544840362516720236584028169029213377620615459164938137254327677447456183320172146613796992819906565244147482808732919363158338884572255511358707393683476349589777035298742624382083433595562841235271070235454091069196568114332452920296347193575291144755146596078613907974469887869516448122252134876859815180414114329391294708432472316495240030492325396962473306518672531194655803466404292242595144300062796038400156962360284534548914686184774075919655001645063873922751643317361519104360315008959973538483957798002580054661833109047213798774261289097086915287614106552072558172804211113806738793375195352486176033939089209472439318823986353327464251387003663077700021274145523388983120124373046743773438571141722021687215906559141270222132411687098605335923039988259788204564173094987377394269868271388053211247311957766433008207073121335624293247788230391956123615975131649605149170480286374728503362940582854312244228975603934120986647908601078981639913029125154069569223340946192585244282596707907292879489129253647303469739428772018111790900743106222120407942990761248066834705403710904509094375874965215952481783060868474985707071636633807608482768653690316382158497563167686652296581285743384823262060272752214058019296532560880721244289509444495239519856917526704032194196819429285929712126686637345019067691231611625545935266326403286635500941683496633386643593093062147758410261637363686659784198222040721933843876172593556473705657585128029560184821812730365818560881128569526963308521376738777448882540091233577868201433202471259843330238191995330383566588341974086796073362257938179046056174451509325723996022722388456984828644036442985196145246396273203968917885259812664695558747296374491271760151374389317844233292799993449817532209881657486621737852403801838782389463882786217164542546126364639402144066944544924990137831649222313141924897114445988055256249470158668341249484162983842679217035147441437166020549209190357406934954265783315715258706072144758282977506735262399196652035709987268492227873326456645011196800286109337471701474323221463620757222754851979985867829605700952486222669158326237278741074530008389888282690972594058309720955856352836052004944915342734817102986961404624524645614296174301550319943436617624646180180531618550390662522590403371281586721396089118944699572141754975165699744016408327784269179128007999302695643469869118301873229936217435140308486326270720534325071382561995320480161952578027536422672289301391751290447847919481362594292155406822416674629830858410600235165817093140133582012566828176850318540372890281552259897234631118414398740910527904384722383727807716242317778678757299466655763356012267157416644426659889291777999881529954928376463427020203565888676990295552307402874248286787357327951719827139775563426326314841983381073634199897664510722935346218472250256802516740551731936721333661564779564884028082135831230256036037864026318203634036232374483580276554691087261399450301649261685076499819591677788114836223844827802509583436054551035574563711424474404417381070604170845320968397891572185438342691942886288448207842435899484649266521255252425461164381825346349276550378497336093465411032004062223933886876467112270218359194745626345334238941894985874297164074042102960988831362881634961875786135880336564156442887351752428722463061176302655358396654227190252182154056582221815293293385038631950905493291045059207110793241994601024577834072053064110477412625473762546332649691521596337705690317115862973616588120623994352322020829122029382016811396496826178152466558068445024813123705009100514921876650787011372691534931385040152524510565385599235017565918893986663884833174398397700559783488558721432984864111645829331130996382970943146679785322664245861875051442873682872613127209906039085192352530677329751613057746799190966803099932838275199667987783083332823081294963595111484022413833020530747060629123292777830925182765105417238258977403574389623663545717155580405890934758830527071226736029602617686639933655355489186320755329077580130051179374366962513674059462902927259967459677596210951788152802086030685677037416357515352451184279279143304935614908123816940755420489211699347105377811047104514053467593870424014397000880458237456674812035742269315662553176976955361656148900363979831859697478512216103701302021160578362479630613382552377541769811832250274224554189545557565441379457504331037386325041519869359008976357846812103171053215552293328216082515321849859896387672361654864541566880220387926716494977124260143987179489868388601262726958318289364536685019884173675506349833685159744181144488474666198738792765491292054355259290433378745989052714802730493103416668136230349567767083508255097814892152803747056645692943808459061768251296359385481307175072715685932345692849515974788836968909796180182258419102491636817591016552589916832874133197629113037171642024045474881291907009888097298319995826904523772673206473936590308300587714934748971203152216097868506004249910112165995606334597987792468118262110023187339020314312571517735738676235099494219049423891260781810090022154080965436306285298271019991582222695733480751893644761438031693804417804411712329038830921391805568820329594372814952749757629936811012379722024498311723787619251871637092635607813749558736455774555779633991947753475398746434976582677208691970265377476026232859151680894351290536930056290426481658544873438584673240268257258143969738414572901439476717817318514889981867321793004513585867010788192637507002866691442175962189415119869980644995453175447678932854654902728298268418992831810479886904774914815621243830424266647190376982017336217638678158155647733098852721521329466846496917111325922518140019556769059540246502564611999844364293964741892370123027147042069946780268168405150597983239571342903307059530120515542005549446968973413227682044623869163059194470198769860367313959552992014408895199446617147559152326551468127842126988018116828311549094849067486657589927256553656822444738040099854989797712038139776879405209897195912276613213339168485997885284618315495973481185091552782133334910481832480682567600020059694767568103796703433299408301544177413130456821366473417194925438442931081822733693687494184210271387774126925898213815094476852725399006488218305712824023669166961932981407522478347169164406076947821044682716438110321101541976619555159660769731054599327514630333925540253089688724319104465036142638203014603071051015551672738819509949271141241674374115486292614818421088996866214932090720739135642375457169932731360995186295218546022422697373465497158309660919191739418249117531293493553787544600386483619419534146299843958637368133207399804470823435722528110812182137108464114458190885885197174303077781090335495491873151638411008114511053141121246660757970845740648103967761117236896937393341690326095922925745999152137574713373108710047888528525882228474530851212689908777454798209608092162874564759552090108878446378850211140294410868534202566049281461407397073176599576307019057267614639590389673992677164676965007110600189859387796627997208075089829707158066796030435786101181010827352781458097050890314458284303162896146091635732204761431395836829458461947948265528656811365846924762652926063758434262732968554187726386008831725921384934766295412567066759199281602787565956311967427899950825982109456611473624520841160731657104978704874670617079647732886237995590616439368873606670302705538542895763891645181753355349340270149973996121549876013593763010448154887757301420456314541688876770085710018808646544608319505987727641690353415011271275576195050646672208728188178781557600561207789110039383665589357501313113064377447710051196909309703153761327770006398279274105059917527997425717227922092697402285869386587452752749988901576178082615935706307628944860152201863377687947952379906574821706597102503944266668356543270888743531235884267988491734607954468480346022288304214028377452926824565032228854843558512209286644468929607801376048958566095071905605487388480621374003876557308067787322918858812421103508896318796103153784924924436818432656655846305325401301825164860231934950437595195801163946364589030769320979845139185451762667373014557194690525359880179863064113642110356594227452217379364525713759855647505520277087073133967290111065025746268455778251946610944844849182150282515367675465567633537653142172260837311537031333874816677178099677548349302021013250701357847010527177988311441194108121674904307125960306559735296210599997590899637913486669261231814895371653454197002880916015950279103311118419070937147894934195828783160963371542139713619261358738565613215970831732958269634283391558704777285910524862465051497758317651942474382896225983146042540068057632320835265599323271948164735181804675938038031841039139901514782976861928050343624971252337839910555781597140525767368029534559533241359571880873426794972746311208365389236475393344569981888137138300617428680352703751157088519293426058357352939044129420473108466358386431604802841318625900981333339494076307362377486836623491245187259047522399789510777407205640460540016271038852167726985460753579792194175878621883760667297878609812302584948226276273046118293131249751308726153800420515187351683472731183043322514499702316214932542933955525236779077357086510315980818231295514904270401628461481643870453570482070290146088639835407618338372912312848594830508601793375899745723275234684425236636608502146956434879252884159720621580575360113027748278101716605599962854079633065377832699634982372329724729527662762579034278245838661249848669447994112190792643374651681459369292255122048290479843457974533322036700176288544043326723247359887862381000410645472571594112318186805375516324824676468061569593626293051808783181749339914370680439299168430404730102092069525718148971781844933413903737082215819333562133828035561320976455439415268240361346953544726141978848116962863307111121100697770712923333038930614055100302555743544149589148200651720961219284089280138531501946221799429387521056012021988076234461243321270077847570199272832001053137652087607998225588070657756613084540671905916190202320870141501463761877348040835770204342907742621864453273670699593918129798183255328023148362191592327734641356517506347171123900667534799249926016803470325830576182671112668813333032036198896622216623702358653076965884850944514006969421689271221025643646648016229944101999863292939120560131305750965177698602301471921881640681635026063221519464237480049084538337428673923075452932832973544408400417879681122703682178152009658755503953300305288884021264050175574146808357680626956596709495602130283778595482112431826263476011350189951818785177758150289102040856280875785467313490470568783032020065577803189396323166407455199177637057984282847246682418389256124265348736483875575484964925820890673287108412412936640831694537627659182157408494799034418419387086698734257714410276521886071022440250689514636893690200495545605562743342572940249325451713795927672945541854503802912182985845567597098634501171644348368114271955843250680321340425666806885737488509761433878940940066136087148909679037367649647653655326981047299707914936734756284910935713662816650313776679895160682582946413986414287421406070056380098710450660521483202348104286116418366775353155761691295623751600713128963280647117624121937462738623912125087130482082395585140681999763215807658069362393853112579217095093288594346397003964133269030401375354772253306660298891061994549136991912837447731936513462496155079511054050603421093542847285340529626298526342420080326617536493090329787473582772725849461578797284957960275304438145965464902459537123142040350570495277907824558140445504858612724480805188797369619255368027081278118067306643089668581802030596334737577741438203730932736440443076816218458647942263451656252380598522764651178089032476640679553627739186009974628726510541071443957566892441164046010196848989010950850461768924043630380922113900472730110343494327154436186431833945720076196420072449822671615581262602135206592562702649556624159850703270415381292755518084077523435030493156063087565302786687639791182750785629229802978660882463063021475498411014899259686401489372587909865243436115690078310077079954466906722879617804527768271665914000666802279665948567559099564618041131659897915233932736909507837855688060125719389181347277793067649010069850730149668922914011557427638644212740310827299737396251290423978684321205402654026712014055236928213541584954225367623135782399937862250331791667053988977084726161382226349078133365312804908211816729973923745952084271821175779779468770324044529669757160923102370434810517224007913893809666050720776587736852578569796100796546446219556743290782643681016823648258403167413764112634013073941931574430180937058097336966798041024630952638101991731351571551764346728206667417230668471113882827660876654560592091041471926397911172841917182177809320128500092226519019343055338857748231493757154292065237763092395794734837368775793310631330140778902936001527046454423106492203490242607096163190706201486036303598638252145769155496889394585790520210383800987650069069212635723817647166208324997942941808077471949657925757648409823711442724682201561890991300544745838736272338555617231925324655911469524894432174180961693606777497350410433345414050321129111181801334355513449906779283424725015099771008524642695570457662963963686181431642770918017026146091937178120154499488274047602575340577359657346662505093386381383477395126750966606410271933932940939204993104203723937383949402877525646682627347591759697514443067184692320333332977257648753005806540880893054999113057936234341704283726021250200352155891081918711140996820131812337757803863813374268244617629892733487630211546818059987564444095677413674244021665182340519624451477112736473096155989171158306533761076247478532152087098731869722357889659485739933851078190878044489208253270370327746134906374733003582759377858359262830996279112436815542608819532950479457072174368670252946974886766233850289653017649652062237342082053431369377309296543129901927337593410048883867435212223986286201824401292065177806329990596054500452028347654594190814210148607456204444312571477007898992072238894328539887453566344555859324775769730435575178720374064731051482936751090160141832089332870216469497786172547110994544331339103703273193807326493749032217079904538302643796083260818935519365889224221273883100483013921975860512159656144036410975836130172234810905181816176311076905547378301891628345054225157582542574795061239604258708779222399758530914810362943715574474076803707712496320347231634664136697179551240734134702974264509233727432551700658242431424346061440152349105743499883144827301104362994880088440889943431101146185613639856937187342911360583528065406083587283211393021553491837400234753571142505159475608730870673456883135059603672135345394052466129844141294957792855058410146603045284342466490835217091085928322415312483426157561893932546941695462850408382329163570518281702378285652278058109193852197068500506343460292204260348761426879721026129786685881001127945782927754122834226276641748879076995253540918003012013266842559222169415723069048691416703095258703027256976327121295954179738621155954382993388210503587778694244341421666374321983773447334875447548212686866436677097247940470408994648051047359814133063938670294704901428804962105257933944825876374140496834738101808627074203064387237677451020286286320211448137669794628877110572620332161025934936298346698274312471783559834053479110470350281269629862289419892638453197936126245285221899734673678638843186050863363662111192372056307799459409069470386848550737006987083585949459430764731297569234571921178636573802024893915165213289579370684247161465385608765733992534500028782159076259812135806767616927835265234923377720663721540230377065833660187369380775410797406071903952051334138768706428309966204904496132841305731783533711466631506962035727144719224241847208922501117146221594397359988931259183375791036813653212003622194424309554244396549719514993014792347758136507434765818009387343126583366816690950494267321936130922490875335481273371966023948496902179673653754076027309347001548536741262856141465174809380524811823075570108028857269259653162738262029804783859411587786104534302759375379252984235918236431956369191589447189968197129349799405243324130624266466822791777361363612049572353048802244349146723838059747334826457431526315460560209526314925576739855028503013093128555003992056651712047091040169953605853068143575386136322538835221951612598663030747503535488382569817909729155337769514359461785122601246944238947263476941916585407923407369959311416102345766322480603455236944987582155474047904454600854125546102795990773523614405930759319399848953618428722076241123675658295521185933358946096371827516728103334286191913446630220855054949507128435798237733030959866077194004404677892579024264901299572024177322960710503698221498176529220128532611116413318108356989510618197970767687250788525429815055862961000479873168074992271482229883789333279047740610598324637641290723492595354500201750306751808516242166663485297300549939672193778450340102891276247187435241866969273493749982881136128022730180374432192500178844837442576677868737749044389175433421643247219225921460263147586313414965426334566120944547949179420197110956050419028667099002624311402548667137010193400259125798311482649174938737946386480256389375082768945819395794615203951795125365588213470050488741177296724736951505863637563469030135370712734033201774236010654191706210323649034622577435302792491458697140546899177218904694025452289551550304263102876868402182802018403348216185380577452248039346601434078973623131946215435966451907860486664919473180363553722839260576097687739122469753767181525567839989044581762369391466956021024124671998178434122959223270882590660584956150012402288209795208910459840201686059424866712099854691741411547538239958166348218777997606151036130336404618736867992908375258918629761643680664871516759408314999975078363972486130102320732732957294815691168648108685858207631515659575987171502472705208185011063511707057272361646784081613099532381541077565989158202099821858612528355315937255718862472247502108029587234814029904203971484806119178913865079205456144981396936010156608278708150343607517038031646406679331679628195971219126461189437066773746459314651366453953902701805278715409481942072414955187714451994799365733251656333383239379774394948168093454889728955345747579818177278099389682341301145693125827075723424436082648900580790241054368335727296312773224308890529308683515897980557323732422031449487900178678739775736470280348985176430505044553928442436913467407874758925533182703958599603160194057636239632894811132147020374242900281108758418729571109240544516071260800704505357199969329279082012260587422372538256296198860882064349597375320110414869795698220964609274274091697437759365324099181683738464806583014847398027410477271948584770486830739634881677552365469018325467184046203322243768644049183602119811112240501766875312549780390954360324660647808637647507755295130184949275265938702770185354895106417737026652588419758467059525160438330026293636653542982489795708034180174811316902490813389012517528399471520803487922573462769903883271216027829661953077145371559713546522037535949322190956529775145920080408260407664651094765469186584068024705910853154122158789530485865702928685974018707135191154280198897239093008353196989757419137512932912754452970878881480763560349787227965214385366467523307347998220502577708848432833641224390148143196462446360897704805582776027814313973327631598766042248285911665915852114286211562624483649347818561803776846907117061662618983008099622170186330352116052896067395577232794077126031765542278746396591451850490921973093458965970340273086823563712910504674997387000588258476453926238495770494236597773211840854538996402222706012074112595517687979666083838308319137520316995112227088991324832356960677600491396729935600193827340998468964872008197363307508760401238541186555488411920232541869894587399041036353238205050076724534890355462474355386409718823526110307188293380924794355788284855226801761665668315662819036553293118829009186127825712593235225775815063055397764590729697362027791973140977528951030405508864845003420687306803217642110714605656717270958238587269179859814404124101835040519149237051535193809957735576350466767226893639733457351784813634452689040639081393172876197424831016919707033323074257178787269630399134232608519573201493869052090666345309480974906557071559682691114186409568297434127230493499307239969437576420219460880477213097600636429875142417309135835061058370072770458365942828077747972934914423867170654521708144361988403506451404618398464679515009858480137347900518512341697025923553145658097697657043485987186301382387347011340672790688886796489020858368062221639875530045331104245200937482952763151991751172871076974027021387195365033744779286738886921820523463218640731719270780099627536000939890656808630665318195018674818365718749533048006797704731262092626832279645134451650442804864373329898907596887803050835792774196022034422135867546089593747450341415561157549595200981574312781014812426317653151069837684607050282220801800693823038697959218354279633571680568626843251778255014965582567062177828484376876023724455279553284957428210778285555742793635885133237960887550904043606722221982004817161098267563711349189831886095989610659381724090644736517771503168709043646862210557573688482443188421510677495305169535288624605601532422853266852240296706141527793177018575405848393025180778121859844678074080447876470752717395443209579161686568587333649667492434147987025183906172849012927804192084794802746353042025089497073224263769735671664723052754695493109751688920826638448070009044533842445722127570739641000234719416666680727795162350749307558615302763889273941595931816113033137851483268977251209012861298097572764628551905593689287856180374772825968718217019286930644850789058118294345819934670655964031540895234054114742959703709625640644268220991005441930801803708086106784324892170360584890317796066281910496078153814964313679577392862646048442511314569299707428559813800727774578731762271740610185248694004109458057866319476736957931600718700695108351085925142781536852033319579119667672767259844576235391603923829238595536184919181337793046606292311356714000405117461148047348871948174310327794228808925738729607447928277432830036730831609456387129734621433792791000177118813745172959139216170040404243841079039300121977702450858967034497514333637784226514069643737540195241201429948409355270516810913981781424595537761360139250101312899228944626824267568685631837891415677182780679868840283907879876537785113648723248271549183307256074537058490539720030251545190169004220393505659933802804876765902654907665088859335539772135484203517977344952239390927814764954802822528732969867361122620628622806484901298022658918618480530296767008714508798868096351459106103065553955501623042424059812365572379132119900681577996151658238962236027150882864544379804660943021207514492013543406002967367361985989831276833079521743809139452665979416669580213314739487382701693087482108303529781700598959778924557422031022234783578090226241519516408447539683507463816211728163714565904441980781284623263083854578954508490174641615894957167809626370857054568197644914992071230162104311901345786353145385465048385346581807667307999035755072826141587276656257128112133292798629701280301168219176925568570252756770746257076485860586699455802486491003095380019334274889320483046032549241105513007091965280853145184295974619655517126178464350040121769678112934040572596358666220518531780535825070216476422894718269544663173893598645483664507813187414018419602854099496797321072638120829048405002475771850043063610444667928173024912695330890789290341412818176363499012595361976646282442983641020136292406818458225563364197319610739377683401013544557101128726168598540422183420699049372982113115655821739984485676967479501654195717618195116873984949538004854167780407187723553545411978158237470171887354790863894172448106682334729515356893688828462968600108123574105308019675157699368268148434057607528678724056587223882160411850283691313202368645146317315107985014061085283394778354171634145880044257837996844794980535815037089737282670869120530182073066978938913607223778925094883419031504155486994110421760413625463693167289198624795665680232779734514609722828322580070790828383629107509985582773968086463359649641986289564095405349927808627459693606254454709879855698226251317065614709472534709040925151158204133474666256787355640521198925747306726760367615632826435604010745733019402515108474932799527895501341350110624324385659821236828611038681517017134924318515241707677253468275253828103451244095996209056627983771140572598003233884833105157115025418618155989661017102654097197716019345237552321268392484872419326635757129906791579881874985960806035790703744190921003101681439850493416706035903197751490765975147422430004337597302068070267929415544297421567064194369908163337191313215706690679958737761656734528726667898701595731265438410240012581287654336270309281190435603262668404316037790848940658945153797225871231866338241726002552628291649732626132048930301621150817214297747531055996384734136195594362247103164273861903159620244164516933907886811297725076677165860877453608477921321817906864640096644493191990414173471475605001275621585499754211877621939532571111277383424750490572057092929885807004205321172530768080275366974757885633515362364431361592376324153570766855710020541617542001816272512477839122069684696561390128041761556057998246231549953203687226199795523531229110066591832117062077997312490101895295112139310704138941947939691859751761486628840102612951379094038959539760450216774843717269933018084364529330315099993944603117425998517966101790389857861794327539472060152510785224045394674804241412144465381215913342859795827283025427583839551185830951712841445337306200598415997441733795990255862822756876855132056217966069833060831241183373359420335303979829987519230308504797389108649883384719356877899342475779899925937701717189502177132596290948606286028244367642353214776094271300884505225309215350635825142423300165367287698792944543063168573542773437916649378665121749998704110786051609820211049858074320276501558313472394776604711302331986086185551072404780447882509091020704088432531874874924998433965417986371249886630750975004071248486576233514154506287994592080864817417970476906236757507890987440278963875278363507497299263230493292555022993486023724175380911596433272441456450276470815839595522596098104339648649980238858646446138775380624218076276632627329451662518195503907577566801966228307404045272031353776861787071536442924122269011165584799731785374734409869930361332720108088044546380846594750332298603412866727945547508925468681113696325918867070860411828113064729104524908313711125396128154813846090892517386725398268790707924150781663582030402293013149070598124713678262901410620075111779422109692574535315229328579000168954187050231340209102629303771111644685534337495069010185385570194753081488916107249434295277772329434735289204035628048849388721769906693685035890339748040673001503716956963572320113695511096834602333604658107715782716583268273015053091503823899813837227871718920921684199084057425768409394278621122842095256418201548564884402301992047621892439976967171838722081874697037513778025311263082792323462275670555672624409816193805181422086516104312602148944097033658162563334780853540928657674819980352228625750748895313606381194815823045104044844029837599301717641343700218345138845167538436455757879792976233307607495476691684460998915236307958271766842174446632728517864747953042701235617997412365202159097194916558696656495300688407576106568286483824796282814359555703833251606247692074906528513492869001863992440790140309109871681882322216752087888862493525551966712683341214475967947350967296507009196704621904597695076764762091215460116890895433813144331521461033234846400967629216812030668536934612672773063170296977013530082235188449619208907420524761186018818958186316866409348544008561070487482743654439155909546591770592719349365205769046558546319335071160512252349624333837278128664052452922957431853815070602313471499449418134811053568847633207486786054023348133639641945442387461649361654630740159769010516953824017239645958109212490881059878576923901020882014343658861267742884851149603769781987200660444190161336964602321799390893667551705552931646718925547444680684717271525525462348703502513187408837769861248735127716672157684128189081505252363865481363691349176697010586373441349190147534197927768550739538343913580006554742596594474747203178944633720763950590739293673083083884850843889855868061691086499781037813565308054630453696717424791638625133261571350746576195284898324176524391573080136348867857225038007703699094590605933343420645766796314836145266925076392276641944471529881897592773339807694511008709128319205699146028524841934724255709641115117549304543015758035227729960900161094651687838702485380110060361538446048197616085287187686106881919897063310600139961262824560303396529873094614648419449289230430017900058764784289817865166131783807549884343434870777581880235646199967848427323953109078895678127114453386138703187710521158826126191929490130004554471518560977637692574449032542411756430709788911457820090420887695775109523029568459026482888686943784934769066478810501497574422940542668470834866498829768224252547122843883238139790626432012148155644405339594327482965082451812722473721091322371747053659817711109518140390136190308229724735633935209830588342745553407416140091510088598754813624073537241337161956844655618218031187375796937745033097954135899702951197236157381675271536291047025780687740874793324743947234892028017685434521035083096193797356226274993468497121699311435602178480095667659644791446916272654140803609863804338198848966961958130843555904948597013031407925956404651639701602231400369898683977475028653344544782358783715452712642309006521161459891548368560202795552815300715042538312779383292280640067159011634621860085484041835016526675887837756180406777294071106879119677216397615411819077764114154807306879052920010630909999803355520077010748258246761546794973284810940905666851046007900855547789266372654650247375178512817240112141920680314451396343309517691639412472538652906746667048435953455224844517469149590464320041758309172002106118575111196424736521369417362609120305398224072597581199879674969320770913685752948757162765091422841454572940116762309243184993570759665746095715649346019687607159439620159589759521768481945274248794729395762841745415991466705497710441906254002351438761364180568615901313601425589910898973407342581569965285595465331315717433238316180880618244941659159319189373414036546827787134326098272654190066079262033143824842117377215487075186602135074610562530824551262234349396530381862434378679219610893334266295607944315339012903132795551502918187681859256189531484985636059016211293136783055938617529399557445097752092323690751560678211808515556580235712863765874707806775724735535192160630695997028550409898527286740769502952950847306649512688473282910203702471105382866127248691277679521897669200442081636852514556044970233667516382836934796148771088041750085576098225772408761643981808924511049671654060209332129917499675068177261253620830088732591331955593503868264558330925818857328651516825083988499778141044138369247357780157888313471433695687699117360259507442956513535566156749663709860780733920269863923550988845099733827065149077183495892530126776981392997200834725339999980272992971843637394943835347934167860031485350436677760560363151693418367627576203379241363707729388359882524382857118179440218657657220590706580361489530270200500985813141905206532427955589520015785002316590250765822627671179155954414854296001350827529267267418659708149860298467474199060665685142428385594551114095373523797980215842127830586981608636839975454883354805327949886320241434690306947754112295471136364375926621076725341749851933290659996949275390553087104516555758586854774163922222185784093721973605261316343808817081996273405511820515029687800259299067345408864836702240704415809991133365615897865649378909811200579213265925194120810020687893873146006240318938975408988620381841753819346072939059040223390567589392023936704391909067473117747522303151085105697981747218156055660068584057441820962323597468917560096796794237631799198667917224924980323680019951548205275661636984185630053782493639251989467358196524092536172077796463525708669680613500445892568785177890269726306304539086941759556453604761312369211448399052425336453497268139896660840037678223340758231186584436018347022848994484484801357742711705414466588978032932330485504624625013666553566275472463813238027113984595994982606456746787511392521897690996658112807787805710912941783923498935101617804327269281264210977827679577921977847166964314133905206998343750597020044050449269301935509345177088492997856130897506728374239439826003053937414380533800046601465843432013970720570653752905433797609841750114228935887426421137264378714627264480330232932320284357018815350126041862810658032500429959439975191972802941193809884575810347293132359487970534202928847204167929765668642042220843424612691529878976326628782615125579853209332383392457834488350823036788177283831869213480508545546099556786231849301920089737368617211119371751832291563690275432550079161440172739697267585393818162725938731212762611260129703133377133518680516762094605234623836837623216911739147940355565696178653788108747624517448634374576969399213550517506790139878607970572701304367861318369163813050164853006723892905633411895674950148383624171851483640340184027781221889477854213171086378396124427573155387608590783670509268369304323819324284569212467315924099547152840225515761260348630125493563807408327984228132547062866486706914755244800987118200650328754214284528466078161553930602239730801721776114207412415544245845105004664996703107685585355584356703009713582723446388041583708400454234108545569845220776589816748733026456923952407732859673550347535577409517065867799742962794863788045508777232721688534269612519484399753875395580304694514387528467386004880466048198086490028648991308740958399721961860599370264424300290956498925443547569938658996306350929508398756658906387653442174513030613554563253564141779871967761145394128827604443260506565686050046167992720064053910809278914678989557563920537429762705911422989811114879337618791917847326598254170094047108241164643272737579496525563031230279437618285815461336999056517981982290001677589407599830382255871656492468490754340974759996707978681609506500235946868540113427773807316718162092172873443496683914727152947395507358165839144710446162374527642743067519215622661268577782831555996600722148288880537424796447577691594223713843320362001274232882835710133790271852834583290767648740877025465680524352389017981594234186317828896205330266796134951107154847675586735179407466583779208613762233473485162137295302191085547314714336594515522087747921582944795679635683906091155966060759654100886477953161148762841068159992069264542674352236278540306696799209386448724993706613675610701724484897202523576134533091108418548392110182134904835349897233531338542357517139252410473924719610673369917945190720620165941697633443626053223863563165247660888731136430335713744982813492803151641541038315579564861320874257095400263832662222491075916104807467169114990725989944913374404739245021353751442359910018383789138408846727745199322200142291067001044718208851741239734379880818863882874507706068850575812417429521089659493404187169381265541732066583884688334561216002241145189727974265049672453590654214729804564068087938503968178653113273718050151360232158575075428756737947412681726506884224812793177782220390208643241308859976214225361616547768556138739114629177032043268083884827812885578766484233586132439051514143038201012333017626447424857436350920656337583499433495701144504428845968892787186844032931852893887274013625573308875696938585062040181118076131213682744138417999894732189294589730690145847248370624762986228489720692834481484152883560529397501512973901681180214692975021441779537936344683273877004039469495674708356554910236809996337145504699808325262154294658662206648481144460057861750975229296553186517382678287435875311992769738141183044924142520116316376024195874057125458361817597157063593761958316040852063196788167848679645092325752081866402806278215593086131803848012988940176956805408837402427867355440436069072948738140639922573828722964194010422571274872646593170459257094438910852119384606450052431491394568522839445010588147353607377778437563921720887816339703878324873989077177952694967311055640168941049128521671153984130265834578644527573408388271574663626753564029852001931334954071682426224229466790601763514884864729203133904041267351538167925482583742749237310188256341681657656061519100944844922862938170686301560234123128287641589486346961581590167127662318879317165102751526588928963918195156741303575205743951488311894530027283080454924321462413258181325730888570285132175109986675092112536444065283094923390508332130372556476991654727525740380451168977245772027002597629617084119460632221232130387169439734313644137939404160567506976347707568345446257940274871116010564886607397686850299973068083647186412366451837171751662267968005794292112944589200726624869735486790136789455497217017911474033772878810485387750324142262856959223294362796065480747285943515363811712652625551877032267305453683585652613126017979676033430654220313283838263291757913686105289887227830495917316995887244911742131331963050471277547333016334793157819879741776211745808865362906402367831504002566367212201592575397258369255938658587004268936329317755428435394862029324507890539871373374491504456876864018936875507152328835477067235859267173535377107398475581131445560565556477407698963174408620699633357271340453101598559656972367967234884610755613828099006375019621891206013137561498033644009524573018940160699331843754845514194213742603364819795005559116269433548396366827869541828769106810036550469515942165004354577393217875572515399221344380792940682810580958873458822032451442815735634947252914308921895462683388922075250428169199718043381885205629368735086316560578726662154053311601093015834996819615793051974497092583288138508025888535283536774597474477661975040860484805033203462061532832468767471510685381923680735007870149754946011314670409205995540732059779816288148064859949554653343676891911187490688114157105819555460732053867180206827156842638223943877353714995608169067323511358201727253746672959625852466880694824767387868787834704659717538974244415004454828402402868793198867527813432985699120303686163400847103466861803749240402853363030320990718742340827234359896291495714274631453624592303507664249162891494849444249494698319784886774762587886818524412846402972960931328008303788358499056350372927304791447152085736271541971331539531364887910425566195979485320445591870388367329169926070319363611512367307378810147875552054439735305803860351136188598248049521451336842012448416124734294816925636975345328597105036473109264642638199198989957529468004559939536483957610749038196385165915920036261124690642285919387822246775644604895803658605124843212500997708431489998792437514690666464902613820494813841265032918784192409418101486642758638536683522074247041170090678739388984608545287089372111488106617301508116420782224113657512561482627553850944147322282529280567539148707279939883284642672277721925868073277365942111159092750152243189085814931952012528448415825979088816076322705083012001536000674428934917394791854358418426066948062211757686096131963494784492272348889745661601253293368636613667197121901634705725885571108443040252507735564716536751785755565826500415611954421434604800855124153128891898986633727969587501337225957763025876303348557315262936623232044763205019447843938492432824270216169814963937167765166130540993105581747502825080271994674330885062275946663748504513066007801921509786980010375705640367272507155045078484790750937709918744367606965706701324976640484705560822524365609870347724881786949696587960021049722214009142023490780209879920389187652491394072426131686246636416862692230176454302934407446183018339034378812256722148467310731911691925324081517481972029944726010589424173518385078123677122310588792950342935629197739231121875882746046302851618908261080996091425948235991618761496618120102886337786446603765851943291385039042705638202320508706891411331003391091595701940429483081891865855385115426786830641378092217330591977955588246031289157065806939893831437383207108501423935289776707937709938047872351000958626948370512788196931673272866957491876049520891730370365713037763441873065844126381816577812855020957368477239335102328209469161287887116353101875455211800265489564486688638121164742654352135151625544932206092458452234785630458973692046170040454985220871185357624688969879934374258930559278432972124451193461065723989575873125577568853198978904593915617944202655888770912361704324845460415055713536849388921956113823308784993442817723869847653827294180117362179753459493624245968224073225277412161140508703064324763423036910706698747933881007398344007552463618645439808752844596850559588035690498767614219463388080324489358193826059873614654585470460978527532620686824115750194987761513201271767020794773464411685037591114893908820997058449793293331711016031078500147439405902072028056175514561347058267198299710801001353675576833795795662024573368558825794813339320537539835059949098876655770390851348893126668709186118986937074648884192222356705768138198976147855979268856256626531976378999444719474466595410576672826550278091669936190380474009012200393326605899795907801224246448809564477616226149972695227112351903610208693247266808637368181390377945889557027341015534563456986580939851346043882671723047204072491156925793870489728021290174164157581068879762230293348836569233735248452758107915214611822922351116825236640119901396347540620685465645253327050778080809035410534816505640545021450016014510685982558500321530228084222708850361335090751369323504892323181782835579538447410502665082597007573916741679004236982483483226064969768958588217467504308516935474172992947896607442907303043230731319817895620903857960794223337242215938169380026638911428416448333017155938807574839440735560303363555661133548383109731444507311279847631054023152914163467505050189700337913409106537182414811942700496945553494534717392090530651303124276010254997637561915738062784815379164847996790480163559765708282950378642710454039039012355055335150090458579234161715750575954040191315028513827849300270773083370491084549760842341389416854301663798423605028480821125978685625919061843275072642652994623022818042980134249089690217383807888251138630775681730032191819054578282695183312902409773964537212242698763480510889712540278555118813532228864542464200716114179163645904865163983157394556485611774195996141425472011167557537168654045812195754847522845687469316420557049867069782904894270778109513905311299097928292635410192053626827555500737806608162198580651124024437613874194791028735654164029955132985001238691196511997692463311778660335127092055532132956089818335226685445329475829831976199346801072061557297487841501244413322701441514614113370510413365561751637151434320154642078727032407662609949973398449512230664779696478023387808070633678457290580944946019197839577913986801441743703354630359341095967249259209118838373672924006577150509942076496247319411078648188799370763139595836905147185023424792800700302923844386689631776799148840278976997988670714694374729304951482775087363395213899870062057038436257059432818411367845952017899967515416234607605124613126007466809937518153788668186808268874617077457830275521427355152157967159911803097223373826092847436303816424062164751179859830809216468429968370296391095525976374958219176778056043575679870783173444782776998664934394156128151810080739202901690345079905824246419594246595932961961091194765435935924241442526083862139489564578062417285731603134856704542920935450100958833194763790012821485912894441243571285643008748824890962272074465640431217805093539474034227700479829953544220975987601939001483635802258051454383568996267408188390713992514467238724644669235603814144747907276282592848445454680840113564524753842960360712368966116669555859629726686758711447267011479267900304630859902134135757449570282787188215072102062335765748757814051198574508872868781958157902545395029878932356855505310928698845696885415198898959248909402265073609908170600607905478219884640622548726909768609145087471218740138127980542322072360201791394580601782447555558586139011349811400776610596847625865122160727855901279609297559446701174673036036831218439545756911658252306199452807946910205319217623152592488895571285364372689647686722096183123560708008309717436488157700360257398457100458894714364793681633707893162385142636332444224025989364711093180752518431580037406227853005853525252833120649141143961480755007277312501637960031344020759253013176835660007227533001394760338398915299414611306688876449532996259979122486166471341189896987120245598606097799228714748961215637267494531495289897811346171145336120750086341805741196718090242331347910573759413766667032980051949648697435239932826777232321288953322027649796317714452057535931759266533952178360878323440556318404252105510933366433328446388701022489901897281763884526349905091020376036007457033210042463817826235526592837005019683062314878122217220274829175343620949820557410476061201739358468628895039826761427640990324392565942465141477836818643358910835953475730418291193934845227714682215788741476109850216592335121001862909428633646567171000655865909949544492765849571278940163760616414214759716067396196419661991543398065969934016290691493027219618656908553738619556626808554832127644924060399023096903835389444810358064169271589891943935236212252017559792322776434975824502824874858760687593145779126605222560393435839234182260850957149361474422160616704948434960449445598414179040099362548245964871315578113482512392755401020932903628893994397637250493400691286713920330354484515608693323947335548099957733584811279291589254280027577414536173467292605553403951447270827367597641121471692687480757555175406354422531235256715897617873037230344716230824064846788865510421911760460197044374649620029486745572288645434134773690153469659181098857281665419659246882319404940482154208016470064616409523194575192493370487428347985943170697205138389431493869103437999230194172371292419012604019549098935467822313230794721238150328983595202994608598515277447837658890282271539292444070338590121170460742872740395619238074672775797612846013100749091029109433618802102537158742777533723665545729685771058898409868205665345070068919922011622285029460677813566724984761117727918518262679596654306216616836385642748394252043905909969211905270818555465753365226203915229002132569919708087559401886594389711460479433753216276458826279421068952446373726926449795341209779154679720526775096464772942548551620302806012464737037815383945842115654290403498380041372739983775944831952111267376709298536710649790162149299808285650922761887848522534031630119673400946126168914325092837079223117838276230774998309218767535187522743524792750823596419826426912666451858338557916854610368398191506478173371628479404366965218276637008199584620665008368174608357176543000587769196577739444627223534395161859055727999161631850279548043243587558608505096911306407121955312303886301068028914538030125835386480797107166817120979907001042525373927066363876673576331248784370348668881004156326991968383617888296802928722133282201259473272313448591942647491002381293716300526413574348159697695255231824135581864771021741218389301723344600103153124458168574136460932225579061434870619391738784144503364887419868318895800931155573242512833588598129490328414832335954448246285617890261961223513177958254174691600522998599016896080510506317481564745711096410266057930095652900391169597755159949967984117881376005084768336898586395760008345941941834770338259370155233401860116498609080691954889986606876582578822667654470254361960327812615012632576038108274600438803743506214612371836366545612716534557048244613066755568317838584961855414632195122623463011690770341016046013716174449133631676799364617912048589399326084078234807609364675035721789335523213540624694440189116095451765356031494467833413540518528730943861728372036004123061501845321436043752722468145896089283275896240750144403821820692715087387586466904441207708928616731772530656812477987908921744926527336033934580399042570559909049982656828522111884069289068897511352304226478569199851924241157180131530574591454220587262782796665231830621976290358069005180302474797504908098601246345824404788653229690878437613338518721438911411007232561569042472042927469624958586277190999308672763978442629901417003091846207793805555697050946362684909001675275465176447795437106651408506353570769676364236632960787488300508189164708788599026498859814680977291688214715398006409977792220737627886514488084200604187505549024144118861116972657927665911509656984890843754007688744418364729124265624997681191367030668722284395268600770843169956471144574564197409522607073315605264424494323576313924877846781691317092798816935954794493251508541088362322977870236219165888296734247455118251438791370160092543581019227883328179850883635353438082893615440607729455829177620171982047231209408404746406483525759820067328716222993509839200577108227778644015597238607931442560275459398999162163472540880841321330329156016990074811708687790118755088969579631890045025396646508046091130283764269187663417698563648469049639644702489063835038099375522293697850902835373258748623143349466764972882152222314699298915477730674879163322877460024231818469895925205244568177574091577810732124783741633534552728587666115346593355140840683465411037585354332388230369485460218781915111620913327112627322747558850870340095890056825008108629533706563778228986456505682444569480331698673790193585845379710054129777654978444210825962196274462806016517105830722183362753183354253077771385684971311823500510060407790735242180349984312776357882085074338139372933990006360206997520176507491187208369654744512234651812603232094332981124421679559589834903947911163281962284046388511178960016922008114834465863365506693557024456971003695816987289930592679331734770420889310180384557598681276628106701822507655145849812055520380404433831421217063716977343377066923791612418932336853945526077958362154761627428265414473194432384002650013148512484282285265723963497186717915202127703938064178350481707230836905251990577324206039908386721852318950641270052078411009948810764820400907849348565801000611375104247301347561773977892180175229998112326063211119921074635745616078905112039941889919958581219703200870548992311316234769727545305709480291056192864704337683781776216173969468057241573833362084105894761594462527730971307210170848641983022786614279132826642466189217453742759209405197473303847425811307814744486873936078475991506723785170704653588867913748830204250403348238800050538745886733940665873060201489058000542731115279197121767481647724575586688543619475452941983336227510401131773914215674764879056610407869165207362937427822576050965673401758502967370839923766556749768075175002371282786108331862630252314861731387657179361842495188622174227215696700826258943545649434219512812445774652667587356066623059238015444767415805736230420310773274415729652331438817447708486139255129469386448000049014644625746965512100756105931057371986381614729252070275497357793217131127617167309353033388823613632521479553904613999811553296289269004853148458047647348907483128627167888534421273388801720375479014235277492283050018043707957416132203322743716178103520519578461410409982846790999649054744909644065729088392965644736077535000712651542195602288545132125470499493559308833670731330118015774729448695667097222058898686540306754091447757307977141671791750917355715689470555991506989433572084856036849005247976236783479344775195043250530584267925467801283551140323469319604388363915861276288584477889886913083545559714205775646707108928877477715156271784803009315860686264660036395092176699090409228336086481599592250560349102686024865119082308131749601497468443429969831518718354672851791092870525551850092002279272146261022366751367437103802338449699284408571677492899832965813781542930489157115320407166484321279323449757094054423797180466731291523430339900671391576721863605177234340322773727110417912594295978182072218115532865596381593249690153206212634430752261584829314850566586593528200209840912684449295659985878374791941939517675802074059555239290649291829398359793021792227150559822944524239856397270241734817580286857550577007320487495763112387815334645768087470047523789516508809329416630559163128482826189128971707726578027069611081794268790750287532942716777765210048305002198467409359143409204227597553311908978773256580465689829069138051390569212532888547588226881519536185917589661504392923179283998888096784464189992762968713749964459622723250644222514943323733492723991777092183670220918199283806572729047306206999631881115975598379100796206296827834967982393989411336366920905173284249081133749630923064915871075507094652396700972639602168681944005129292226373737077395556927233437439859771403161379192019312901584268449159076381111326617475704836439573030185133580363557427394339810225744116437700222454214766166644301890829898542558986326625137429356560059881706229791357655632766108866014776633839391720805799021503124558108774848011794019405880556933090313056296002785103514693493761943603580923540640362536860010418691867426027521045708308668465102378506762995430133952260568252273102629987289029966541213623874871551772087053903936350561502979010093889820745554124214518653771318599705624434104835149060079629853942978797938428837333017293011346460837440426458719850966738871840486204255432604661837546672996818282331296811984850883299378537329753360225907357845719756675602628357011172683694818270549782919281242312050397717866709217237731303979016942832213951804298146732037042179990867143584213636376146336805902215632969088885341890951411814029723463196315852645394214977116099091100310731402011837682032737623518707218922181554137567192576051220304586985792906866018369962248142740705525418745715821674829451005607740182716482378862741995859909920734663414750363445224802537862486194947544863446209386156882692936016700744781445916257144491472597246953591618909045411023636019549558389374685337015214173387634213845611491769787444053153426242098867287848085873708684992648022139063633814942782108927801295843358385478006702675096766054749542344627276962350174557972457358531272930870255567019853267577691327689456548262899886096941611886977353219088835945197812222084696163850187613177341941216951723062178041645378951957429493924494824924001833992299210825913848624392017098742624756779192752580123619218387431473264969573955092224991880310171182739876218330683240236901668297713812272632127538767450031489290221787884713311623757100975709663221191392736440791611087480220190513505416589274835843154702543253322186542277665455755188767996299207790092061167720393357538989377899206864803838071983427883569420143716782007528062530471038717538247583618680334502329515419166081760129382285858070686079347484386985939138215305287280644359716443645069590349600301053507220583375050672878771319391108571598919126444738212791394400767991859357883318298764372854636747624759474449508670831847527250828280671637892268744771748812799532715123375425602377429007075308329303618536597083585605916759528543762374068004132016060887620233583456460242564753470372884268150432763574061387240942843917677522883966303736363462692034833176598814311121467915254864135890101773719361781021098315587204458750878306070184618458432147193767042502297888112667004640128371052990588409175441103079836578896478406968250269178765249634510582619662422952506771485426023110744299055434576419652584966538040390563542510486304882172987350592822899922000844269272499713450670820108532219293683123416889168039799696542505211504509358349381598386721221766289841863549351277082565685181512359062045313978018065766631612654449911370672543003351189836924634454440915032096022701701507339378273057269286265533801301904735925475152492331763912014472567399378211455109764820179467571852915665247250062633963207633593817967607095887469415829550130624750812212475094428955190923464186890874540207931149565925243835065564227297481085578535302167345390180701306685552488187092295072563056470098697791406858570743943542248636237676615437670534035413586382826432631705969889568514796921365018050265736237176659645284404093129848768001637250738793244960730793239736526524125705697986252156433630696690669318924348068974082016489553831658013109669227522649834680287473334118230813970076191461196569378182992912060577242827722210038218711580476418738175737780031120938545496192305034009165065765463662495095064905429980387850753910834245596124221650476066224805411346286488545935281434491628171766013316538483138695438848117412413558468152389129914507262746717095739353117831649712915295336850592021949731975201295414415042208545672504482410491291526930286669036783683324308142870486004879885482626517364963526874508393015449258903918253786624172950613507528395255547760729154747902014940528452590240355852911710863317757488912925327670919420679722982769894195655012869035306754905343555419050872575587050708488208614654502181414689916751109264262209268717603188341252004093736579050526794453108311809831740375887114547593690810570205061758671967644414559110102589038063848789305318346297072163752807721086927682978624494822635142204431357540075193252236229606697325096458788384271433546775571494869322889236478065872367313952322332110228492626709551565688033900913127061236684786421503977057903287552110165636088793444160439164972836850488870390670644006236922338472934692762606042794573136036239038871331839692942305332197730360806388170938216958001306776781543191874390501770329804184283902981362411779154635690667693300972391847964622245186683011272320022084649571201550317683468441773067665574983923488011128879535904583999338010854271751517305064834550976527128293429126844702689869483272066398289727180226085914763399855119573267689032339699811087530234718780521557515213989576161760299161416965273393691817375695479488728983614667667432364572163783571656810168995851837865110521376137407643765312662906621375171672772638923201383278016037300664196611546911487071306124790535746065198404545481798330427620896780730277526422190072072214634890923021642708295192604940285205862948619241053901117364698852150615896374003382855735789549533975006776559963030843425301648845843934252037307412999489625517016881973095323321443263338714058394968978531933151623730880968116934091245368639835036491757634762736078546826261580651553611222517881976969618336907639510839670847352343185413929840123634388147810592722742334836980148294391629268788669125977995283736446695883378598135136141592698375505224631505499938388495662102134349229689035884944619084887977528811197634816733229158286414256274262988837981656439134225114482101510959828709685930147117545940056605500497563537666614339236434495332794381117619986097314215560241723006505891126221429368321558642356216015772121285262027708229385749915479637943454206498843735890155696681288514823454923402969803856711586585184571317844729522192122857339445730507823677601174308480637042762459790605682006635846211679701466522708911360207532486515608292262403933832051473544859157313435864129207729722079767672073046718360945425250987042352385500118414399197688197879209551626519728443806082322757999665901089912986852956438444200419050523011570372477725264544230070484137876495354469981670890098398174675094147590377127279488908015744069882932756450338794133141311699984950477926768887139126540699365177657477834995142963146570216389222157266336893922732272308288216039774693669929464986522025394686994579641456401134504638517566683161040921899474577120957658478690701449914392295583087404861044214581265895137918549098328840127029141259923627657128346754408718790527490911076732576357191133147567562078065265178603576935638569750923040823646757228830872093786865986792382259595271195535217164388614109358184988561762202730201917361593097445375334219796617276950329642913799056994321983996228693562947377865337237552193210654656910822757515748466409599895699938182656183739692209910056613111217321631815520891170032341631429062784887821825248185385045573973742582438081295023610020998758183729554433254955948672686835409399740031527560634463013955090071831748786915165867496603404072797259692013124660405803902226705581274210834193407745965134042587707237147469743433743529732096197053325559287017935111901375632248068095306039373320412080859660876505938312615316655111800378630578557419038556096420342081467779663828943379800681857441484350294746778471364874210058172067347237633861131879560936827445300827096261589620741943099168004783110398225124035420309464941052690675195381948418506814512166016912179031299635875537815706114648821418390790949149010134850139546683370021723423174334853219387537025266166443353375273304885208507483209220217102037838303043226507275528323900569003228288307840464930139326056424884022434780364658805220798171423901329259905252821526971318189771107706950626995305766306436312763987724774559238127192387389834932284794295910976676866848621247072216659497427539577361939773015607936513518089149765919726821933910712643510540103912625555442520508317765670978743110900113268612511102793234463839181197119184923186767748552226937556791441688813179637277916434200453810478477659587964998704338169775537734295348142280354659187741074357760221322951816668597385105026467955570875077646613031215126555993324537690127855561895110999913614856889850973607700818766351412528552316257059791016557542332414734941312454172458518154854586349173051844755379449592607769131274859559854989336919741185022361220303179971069420362643255144811157801578427409102712358607507996624739113126777768122155145888116583663231631827863494176436890889559887286465546682957184715773239609601999689912646493954085222540336182531647750417850129305870063718034471155726015086262685754257155146536098510762622272038393846777645978118908887081995425780306949522273179372825783268757020141553346368753555744087748611022492532185820183218577144394354550052566346587698784835470623926152077383151364889918967377866304247535406007977953487245020888543327734411121544214570978772767242772992391860211470160740142125196522954007694905982848776850449366124918364939007001335746007249287321718787588324141800691404759394794164577716972610532362268244146180357851110937785011919191274437691245829448989881807023580014143057853705555233126721500309008709875813509261291542568395818668007154391977708552658669085670531432276067372748218831231820026574894802253701999793599894376714419612047911730202629429024107226943272413392810696918152661468695585806694391145394230194437834512764069306977026735949142542130750561226565367251839544638526541918222007316460199174656794097431217674319876625768959578276823730582153858050538991032694714027351025387094308939755071419416448938078557646841518292410591735731110090330171421579578508795336195345296281755981740023444268750322893308538890952782466061305903046662866132794567722682528357896577016483826080956525425942377783382987691727324441171209555173513086369761973148850815215416315202578534835853710569802132777244640012558788681116824738132641560560005668865312239499745659489626942830553459392253301088145870745214008302429119939561592235139749100576096778823487166868403410977220562941342743665562050396277617272767013341893614686178430120910122881375106822832097872509379195730502961448425057247899835350165004383167196773566984515149714711441075753428954329751119931863752457015807326969204771215897434009163738904518209490837037022159479269626372287386839783110035269859312636606143088256963104326835387887387000357477105373158896163607932811435710216978793372196297181734403649623232474747667187893064352311331452634629140927500715049340308580021871152919101378685115373175735322770551657098792226414718412705782898708015269958926765902198411573908146801614984993592146992373316077954784932502086695254271948880628417874478391413012421618942908703800872206931363235583084898291753503270351001812662783218033285067839575824217531240478408383371682133965770814599148605339858632161112205153739214025569894109576320575633127901424042135446429669362374154830521390745593127197424465854482206367591874517974725085078494242125758295610201291945144386494065205537878701045697385383724483403128498546869729737997347790171735989769446585722252085049715253911569690702476830856472778688842553154556153559604019911234621917099326436056643644649556572604535445804934767737580654844194563911939517907982225838623287404453425273128780067960798014401879819602593804766971984905404526132869690975048052893535411008148553557428017871734210649876775982876008524955181190597847602334511953193202770812408735509211655441585006588971751196131405536845130059276385974379746440185020982900340279042639622440194898487604983126860453881069816640355586380549320247533841502308106302982751008562501988558206114292680913789161308735505251004217194737883512561651093076953661409106238172071635739581091205590798015819640936814564483173269265776012532614732660108826859078713466720760602843639813076310976952301215010049603485705581404069263350502246011731040727447766911742319385104036886981515265698000574359511676725182887067317620748896614874365170823220760331321699219874285064034221238042062036253265283312759546321916341462396434860718687397779051741081184095819737208338841409585880347856497461668825815879403546656226559585213961635742110905681995473932563519613061277642530229136246716957617327234428938302028306745379787296462613373894218823245197693902654641527277626082110156685041715126857428981924855258321360112360235214392093168992989401397458094269414080618957913708172024460071962757683675561042762880857993912297454778938443325877156454382130113923589949591723252877758535032207316398234032516609551389615225396834120368806967023505622276747281819102816401538135818193523461317419496723160270654863807990663238165255687069296559178747882171977484213670235953167356889367010707256632058838718366680416672377930329060149911686921907448516183557110277444448227293843605272539219011683412162770266037310224673197240487312026004732770137989323508709627630140319436766078934866417730493421134422964541639023787274783020547565702209499497833407967577000038680556261090169917986341099060688942967683807343602686560254863705566560581833478035611192425924187779387678453295200426414489334568622493238852744229556291739439333620035521152999777198472828210435942980891129523889584173871926239101672893653916801006918536012023792169995480873836559534981054998125588591597895951574106606343479048310777689410797346673324213538072235007507606677933076763025123123838203108526061957680243894984254896170711877566245710031112448381400351157394128107928003258486365941472666837894561642651044130220736650584109236687530218493868348401666228098138093407886774202731046982512129998335765178785638893860350020310558635492748206915404733199815275870686185846572479935948335434229579311707895136631577693429664343736537505716990442903089803547777933983527645276002284613847242555933401095549125024881448918751416183991927067337007776539170616332630373181998069558091947578543311445426299809392737808145084576443182520370304013287351378554534595925122366230012190111157578550181475026171736376057660148279412315528587202434226497270072936615028091695015277419841794598586690232903664357071521643301132886306608569124018410691513272291461671324760298669593416775076973132409240180003496990956547673862209891649214925766594046032604229050784072427231501231493387065309157585244438399876142232405626454046557505459598617736858660439804241883810339257761692044266153743272231265929152665231453089614974362450949370437557413666503098030817810989218276086428248723286485829203649018185131772027453875238203199943360195099827049303225154666349594934059758795417179060269277939048310215937930537836321449749402038021008430885194496803396096474986739144612858143122795591281597467343335740362065152275077527788535500033622078785199462476241313543429179577835543829577356070366036740260473205456913354539205037518610189712510792864436794268093726284468337898647481776884341176824552061041741016775491666221319189413099929867800203621565401551608333437950952957225174845062066536691406029164371158469934382450917662648804178271378614474522953337913181402000844068109432407047464038989081675594152066821127560959999366808267122710824209225943178399250397147619579514855152685089534096958246327284316853061163250307814195439542259546640880323947647654333844244110288537484479543661869603818338809189010339418351448323890980471836774491930765129683217645229157160316225928212385024683403570778311445186102898516277722836894912812378403112758416760232625897042659572533973612734327471213633777699283764141607320051320462292957099077611394412531703105045035447545706422924704515857329793991006462967181325863213922028897166660212181816304462775546459289817173826294638748330266849782016029061096883588887578406818459333299063531030422821001362234750915330185717528094187552268576729135540801172130942333449075406010127234868892843057185989667058562834680638536923990700985145735691680278796883363694728690847738681882733110920093782226650495828931499975652459676791309246181919041480352663932152606280037289956366786156190809458057779034491352874534788236408183394564233434110642138179337983282527628638641699143845960379437241282253053346226154945203445320492231417763116864757650573509457716591859765496907087095319722827168052679757929212565768116538071509901106021170464132850484400684944596526026186648094192598216190563099662402501973585867632959185764925959849686765002575530974599947257287713816945515968437115128463161646620053478588441606071646499745168533535567824528678429456736270572394014984594210533176567058367435258438788968439630119900674352368830771758033400569471010325304627516111333142504676762798268743712848407214585775471832994273897060943894065743203625729896692326305987327020759758493183049953946819591711656610471297410935167733633590852291185340627025173622766651473661598057601758912987136727070839386008279564724321653642673931702354437435440454345298915262388185509078625043627313511890796121058457357398937348885889876091855550507683323762590456250795127940853072500130650911418036634291752633951803428945307671797321729052644067145105636177365134555891471914630412757173597172112289194147201388272474201748694471036330958489592003796476811342762692765974541883376978915174511638337574299160590415797039968188342491253353930518273039174418636355272409451800539567602487847510710216634990968606957911135086866301272130279054613872343715719303745710005003421474632994214259841801347174228004125087785216049718576763139941878607996605933263825103379218789396364359642513540930893215343595812904200388188524356246745337506696990036162747003474107999490262087043049111229281266896948284317098989593299698310108057921021684203019871656959240587026481932157871801892194537931039435768985761681704607137294943387854059157681807488251077236370587326199621473996393849942400121416754373825942428975240542186594719877198824631555059155326117276923231218663443739355540790820074413318246577904698377250941526765107761249412231325793309379580567206512990300820794514103419419619158794111064971927641531920856528335491106474213686986513876327429054633195140172266776046884100050198759235734043195176565337496727396999517564593234461048933987173920271728523388095889006377343695461000754419636358208487650641951406418133006060467686638384156226466746141806141941560999230150577562599938338744733299993831171605231761801721559257095009800883122039739041491654536958073759570968685128327042414984784937478429422148979336425846131640653164200454812302121545008486562509280012590248627492205128171735901664049351846671940668316352804814757476639245197621436496866136189419622523759947626800365407361357526948704139870217622503706035323617621126225294519278959790922152582898119938090190689620235952117178635390068640354470655414460422262712944050663722218192719086416171816814743918416614545607772216258825780562698503513110765588173121321147651158139206187157732307633768626974327677884674608314048882827675873369697042358347319713457994802121258718499637445862357687109932214840883341583249796715008842296122799308295189904601034433286817141859462760430121911135315275356433691259688521644501999431417679960277315188230599692404098131480362754286137681379616110145494426373202457917185817895551224424356271496448760697701429976175083999512342837088292409445762666545598202132742224832228772856651143211393309937621922859772887911616546822975352468306406787006878080490699350589631921061708615180391168823361584612709968252409161989984190449246602773884578131281406895052629736150367336546770906111364256302188185494381283296476221213507254373526818816320448153898741149964053790533467627868630498583692526739690589130178916504537956553182745829615915164540979712085666404774431272449824961631413112528165842252204680371056331759868174835570349710712115543281251795369533458079013589457487777663701183792183610392997849665614196319425763948678955773818001781039988857117530708896465673117440603859206087062794605137699261346258609682906629182144388100339570063445545907600796561540628058933947149215452511530683512738102885951620108479007201295531786339118949973089162358043628073368570738170435950237623534491336533616224592976884355271919728527013380093558626558901347614020935814066708574253126705604620275757392821826546062828173810774052222799995157966738182544680288999404949665589246636764109403816231389168526127953877310109018549280968793903035598974110422572341220897805297846889706349082050415709615647823721751133161685612290984846473042734609093761936103690693577835037068372652530109467969181396458440357803922357871424704565242525550079236880123846771994002116290530527817551551206775045282920211860038766935120861282966393634875688398205969929053087892492920930730508220613183126352057281849304122362715464905790346319048872990466119351846770884367333885968177319938097826667543182681097036401604272815882368325292026813044508327404480948068651969093600695450754107683424866035009923933926943694672055599074446968480477825422044089966948319427485928456020429457910308074401773853276498478434448000333177456494800071799040386754392585615137539473765909682488051422871892360612030657746293899454270924732570720159055714386389091977457605935433197262177641911997021757430141747009325666774930666456775165123561454544297497323737801857825846087703911517819107524393044515347296865792747692435864621987171005087246241674652578025041779954786000520547983412201709738864771145979842724929138880388708883317819507873588799607807739750920809586314728137850695713406749701893516757564907638145246192264806243767593295372975719945435965583604482096512452046753992093658458482375432123089276177448389536661940095439896814099107762318263206715179097036678422570117212952337658603393912167505218966945313067596223535538007651415275594895374545495411085094292673528298647065327949580994364525850331615884919485638958011693755088330310205888960348682307540609935485508607323988298922034998927608778772744913562640122835111247692643360496782041407212722502031585832002633460857406040887816246856117835256292920657796744060987137318817669839991006711662181153167956830601225761712939350890080349613178951551999194322918795538584453145280320856035787420526214766324128248903807948156503791392805648807854749211649113935564835737985648708766685053074004225090712986693834157641242069004630980454917053102735895347373953648316091791847818021764934911770336300532580159205085766786993917624419874631382337337749881489851459420523537985777953910616708447557506626341192711312609542428487957507862194574582139118575583195065334653752753206017685627013106310873453628468237847194308176407048810960642958402252244121612740789456967199193100497649233544941526535051970664341917169361858934431795189119300806786692535750363779424281060221103196088675124959794667856621567308789267868836925480555254819034622495608822983730031881216525274283269924386512923504232965364574321216614090194823524861814293201176360096591425657559184632416558983473378132126617587748870880411343733209477587441917256985934420876449400567566712705105734353903835993356328069821302589389166375011715723666702481246498898657078859609354984345333745056048573689892821828539800445647060514014367201230818492853456525962102525258794425475126834064842586014753998791558123891170753982840525126677308496319758004228917790094194066262115023107049821575079123621140576302491024290723633278376620193454340555503174701264612815213818378949887740581281444665930422480246689672592090063706356648723161379520254706733655797380642026224472720852739419209960752859422291958133790565336238205891494239102885663141165402463326330343072621066068681972709336094143318210543108846040002359753305342306632055755680553352888692313507239036078748419152325455646970363743897500135239325524976065764686302389981249466092160053460128090791135838131996297790008932292237662579529230578913458930346714228451030964099304591370907649996666526805512852660084115196696311131589260859383557573647395992773238398094087724333601143004518763448694046682716836709339258984570486102447866335604717786261971747754136835996598350603082195709518097729246212963966933914431209084353199122488919747004287479997489675484029194454143297120823203845869695083122983919197034736409519071393846406053711306303977894499016845415651198658502223279500979039677126652976529422449666543425489038135832873653829912679328366116431480133510537981561457382247488351283098387110739469770399316912793650885719269814013388549758169382706987202698875327051743798749242101844742602453510186903595601263007884490513371241469350152639658581037149674415254954348429517683010534857635756932869343201833331797670633662850572673449124220332266299489199740794248282958409446587739301046166022812280699878557582407475204086317056854554938761159004592019292376955896556943418857122385371764847621983787758237950504837688030085173553560443153641353768087644608937421957237983744595624830978902965495797456464535234856235580173898528173219411147225663979936765399577517617971788835094856726388668129264497239135482767862502552551760066209228914149130535979528133906048362001367757031720570518720406714978653691999244017404638343256237676772895149641825130491748169799400840796424933774249462213606146710980229244663733567379970433709038542342163544924458815807695645909823420033362789464922661720397785524670374351506765037300996066738722022151939407121607921942304922196417880842146675711653943590963698682092051251095041608748441477536202917423409461028798928349770773976817421718343721357960386986250018408198342194811126020358623180584344327920855065399446824211994168702083817163498873125220925944835333957945718285538099179407997465024949766026683705744972402639977392247089524270833761497972673013617945065860047823600053727699436593702770306590759593848435349580926995587484306373247680760597888876110279381082778525352738210505174850884780770179454197139007136606753230650445814546054944348831549018870692771520229023662243309604166086616559860013342134282808233383965361010851471585392998615024819211693376838726912198130434076145799907187567177154520813757213678479994851414012315214597932667197142712869292777870873631151529077453823839658921134857964221178849860006196131478043334671077706038253279309058963825911402281190526855587433072433999529662123253893956221467869243043949743318877597463793544655868809791449805827264843851751441468134370941886767060517850447483340183873285890689263826311529804356381602052286030675801632624821379464117177441867206131236272399760990930482608053603059337153821687246334478269783853718412763244570083201120139948887192039337196884670468403605037353118576789445202831281594458829095900696623524455036973281516044671242895185576332254888061526734389633047299193132069609211855107132287122297476845405011372676727760042307701909275549112101632974250006648352617673372569808249061466158093320156329984915134777586746823732689677793606060783500172157781420094689938601791252940183701958891165853833522814940029245073889968180839727621892291586750118289995062632932751189200540353599354446531060469702936012245294911234537584288692354747671350161372618969742286567465940576531004599311444707111802039798772980602338178541491402399600815088319338318868209258986134792086599729370620421745309881454453545889879068958326178593164581472637939576956247736512086515133289546258534784320676144587019828678626358414960242616021428347722182786442257645646359751336011467030219148357480523819252701640628430326209399137589652570802666701721157586521836601156229500927218765340245625177677396700450443555934852060479019186052920532250743254594185905295135312012806986707603508436596248491269062454224228003249102966770166776497014320682185562566306323428134556988549389647833865576404195192376049726468236044336202138128812375777547021620556483165073903466546176646442331445633355050451182921141306857819885220881624840942059128872945760471993984899589962505796052316959486346636831425721308505128484195419402730382391930858696749510778713069293915983199421144735463372034451502774537031517544401378727077982450666604034692659753590706117288648781577026705024356947641284000570980940467508761929994972593217513733060214397725526450003161972250223628512343094643317143284822431999078894474273774604372170114972465016658887651549929791055671966870188185285216841987475440052136798415453189244923583951389930803575344314249227861834671312274307826407560128328697453497454415710558732582469178457217606559236755020744683311574373439191432344529392612123760882758993418298528703636081944857507979203654242823369170329386732125345929765667403522159929967845798403325808242722384998473690930175105259615042791550379818384519883828298945918919845345887104881541014806038161429195416546413644418949762350158709363736884452494073237672907517939273444841702944633506753176413322505466031158136455846274216669209286476367508264812919953817294152964016878775758261731623346769479280884918802400379953075049919620430086264761997402810726915657716461740341243757026481892682153315870751103455591363382263649623049482969763528374727267532885636949751475846863654673875211797764139854303651172635881830599897517143079775908600181542536494640209664296147597150758261306323017032826037027110714101123761658892893592307397362021321066422551432451747490476850451474442174644577072537416233569168345344009413699908726122853022250954602621132424917878412529645118339518048315966003849903490051459264027515441542430685393369762677392182502546106774987618759679761679073007155034551888850770620302126043962284570839459311837775518757507677747053246606505533669333025310302659004964684967752435747057749094056114700268702268429864716563708861805791481634201073702761332988746100200507052775494581827778058257355023303617414393205312170809190899323160696661324840270550338117833718160990061048757951483567006277646043834708370575510574089699118064912914898957090992585334105009617924278379475666449761879665030647579842154412963842080966010810680074291734443287462468043451017135027759188633299909765243496622066341975145264932227690735242452088493687388507877428421458728912670884604022305237455521485407734174250451723866356382741083731992227722932594182131973480857891588403628708116938671799369090113125285467157939176503631391822129542852962819522579772503980171535104740095443952110443307197515533812837355439436711172847238452009826066504329022361903313751566372339045102522808287439533260677962932429713442573089330570542545405036785850975627487349981451419296303927425995769309423956648721792248167521211896358543756536985779795229272502798312658546393019333343840016375506695505978319885112482453875620915967272297154633282513980318527254543248177777776855223444699893473631355797630391843566782487475673834878542782196728764713636863685366866088026136124436973955352352534943895603905539060610153688587111190875471275418077974251070038342134935593880575607157278498547722989097899791852929780802743499069879118812554739192144055746084571255919788786393385338871865925499771155531664096105809534526692542966783816272250554513887015206329485405069683958082901089176221328065803985194133299782544373261141342646743113033088326459024620629797461580056017554393792023209825917890175929151328778245727742982053650618873065020746532293772513278690671697038560073731336198518995448852493422144606420308274128310039320138429766303786942670174984140212910512255782906049134699935490694002548273375096981733152311030178017758679278392490169781471186348849073928435666962520547361564910116677072549731389433821885567782034479181717696275816610928505164047600333478937979442879209143434614641013173673914703810703155645920839915344774285280835325569673190831380757675582438526278710581206652359577296078447092794657584548299732066816944283791187771119264507513748317441070326003506609033492424295663994990873149944907044158404294915145528617373207797324438920273120350419187760048478181533896892872243912527989311106853535776079543221002130570063468027690015990050167042762195583908987718192514956802435184854759403429475083227868718636031540208782505576324738516636214214127526295163505755927094523401231607532012594684838261571645255088856014993665763100996580095535909913053370151394441220435982652865614282557916495081420587774028091202606563889139930125016684782631003514125413236097514459165481692679581920527582888537592040595827922509704753513598918967108581304093588569593482996122482101719516454173984281963645806098742453039163055950152221442488635007774616813140525634402190937755293812580352476989665273711773296709128398318752195527808835392794744471297764171076210939446387101482413846189950062305863819511919284567408152844921622320468534055788574764721505285666744322604619233177814128310829034048919240463879943890409625181819469891277334331638209782638599231769802428765567502044465460389220756115117372875716131454118651217418831808180964275161829779559757843628488152067246971663609034464145382021978128051821851986335338034545897088511226303925495430632943675214805397733121316609135576188156038054221336694188400760252588404504630752916955335849813525462489315400178546021460578978634546647711350768729713409089649185425691526323137095008079770415025917522681025071723126165816171005815619765976945659935298544160332432742111675448915019788644191208199897258385252482400011606775644022787033709669000355633766193631839390214892774460217095575608414809958129802821384096492033591424390269317047867908439596950335278881028487162402623874871866099254150375344166198133971722460187977327771464298601481209664929694994428718854345872021474432207699114175789708070562954192506775050769576321564991251310148289843288685211447222635142703350011751419356593509863948732152631610754093425011435464923265092197954648267362496915615411082765123468312570503068799433004787360994959392958917938242264348567082415184621455901957861923524337051767828313189721599446973564186928892791594863674414347690192935159514833149994749480457515134587915731074321121025163348941278230246004878955170142422076174661108707755567242117062570111447326833925453924952894793270714084997012956175387262525315853531131229679492898273930148857844189242884453547402163258285359357429944363007346732055799115638721180588499831913832297614109385900409027984326965694891912997555579231720848937714316554311639790775726686632072998953165209414877410033146724591341208847658142325966130554040939145221153802185395704265941285983702852150380494338602682889838740293806730398414908488743988621830655514762062427552793000726164662418671830008195806427978192051188068376789421904417109829933235808127380014386175328015153484749163918175639149943881129583777058434587898185166010836794629665827965512292311533092121196124932139263768900639011950055448348775882091333306715120627345601894930500900215792815864486835535293927593616203424228964050119665221148052471975623146044630101246001808353759598888592165760880656082189921205271830162309284861942198790585088977719464622182441519125659056272171606784334849101818560448159154828925702337239446136805025856323353377865638453909806492075057363021547314228827462929864450999352880577696052658203996311495546868492083402045244966331287454636024176084008348133977291209430449659843427380164375734819625722376390989292619127959604979311526999021741727271913091989677032837984301086508980083300653043960030296749468262689786159470947046729555165584287786686305676015578336230687029823671576596810833351139818707935901759719700990918656666614846960119554175316109771741800528189304010877257504691145455838457537919335872541515351978019495587994866314997841009583048241251354931402983633262421498540070253285861290407808917828137957064238390148673771635898977453258480868632082990791585440202696362751633868979897502909663871328132865316491718759627104368941851255556641975473600666556563008992275063368856321884753400497753877534718331067490261057612398187871703307858339608225746720433707461663133064007423314222904253203951523317603612012629892095283013281523184849712194127540307023889763961311500104045448019842547964997798695655826051744967581431065798231744351069099830271455547078495685654645640951942304175269756869196243007855025430422374205447257269967182770015753448320519481959956707168557181147969829122311198582859402150264390109025385071452510944722407844516918957979658852977308503981126833712398366340805022552303958693577684818849719359208312524886075658428976120395014445279632997401547610865810421510126278959249973947654660351297498403614656379405106058405549746518838707940693067179527382607832953779969869019052619528555181210018768626742330312833309829477550621269073569484170961393522464043451722584960580409282599279071062193339324943191681430958194302511847513562391388164083315184207150929249684779318085455613174195381891013999820168056534407542377071636507985266329037006321140545609815957548386318676754972632055627640141242360678209799918291903971568711013720492820157988015415932508325561344893235202650423740941239956230235631810838195461830377483406149711328180892693933908890634886609019472764280400367376723067904031481464383106371429572803971907666738089140900923692625337372883988600750641901283882122912437047321149851217667866776410778487328375030549639717395523044169932683773760248728856137903969139678040729956958330897851678425855551417174834380293191204532415207712663905147653837803661329666446811598436537019990503017077461774555999016857222849569912674018584877149397974464514410028387535735226699477506448902460841787184810214501577148965467117506912794208855849828906898359389709673230422569866482580414128219002556935562549552457548110545385794955132723630156242890826584761918241998920476474765261831797086786142205894879664998318391889663414964482491770942245449572488772474958018783738435998863219020124267472279503938546550987115630636022742199645526405762155114568004065616506375333958239442049558315360995820989210332126758580789983015796233113788769493370905558638632271812748901345509401178570223224238067952766984862989068127404944037689391583148964775010163476005287462941455162912648332083003084903065776445563555744989290039035608124001116906654998305251855698750162010568045974417052967999373850739942189190586928354090395215735055905116802948107923870863469255380632366644880880249946721993953890719350469157752459947440906216504352252427569070387829636851876421795596045115055728924120201165955634512429453701892764869278644238033164942916489947864512430340400559003766450971026670448800513961575528625219201431807344681692166816280477927191924742958482392333840132776364902352633043984489894604689949967522807383857308012035010535940057143411618732396775594942265080214922059120671137350056956198964617161693658666427193808501142849113788200270015578971417604071723586014233728375915614369346356145686363194456270343394819086038472300547722327989366563311532386830634557340874654737942789312966672938207620771976875672460387014175211407534643879092816961523985902344475718502159966053218560620362237146665233180545810453806119288743222783469772321759830328619685458105640978184716745727676579085805886126823615998195564168563253223344644500847369500957446837227194175476503966052905262130688463666938523997740041410771503795425843979419463831920821656424842263867664558634409107337232490897912615214701444910312731585226637112764000949086671794483493793883860007780479751335322026030904961201927723668004508659062818499371980540731773517175969435995925930125145040505410209207855010616780968790962296685857573520108466155739144746985051808225487323565273808512671817436778843038430289565999083835535160491531605848962567986273771369492396878693458445458868547817884410067124107837174860909006401893258858873639656155914564712629607267077591622189526707443098557879039653694121759079845332226332833423169870209963536449779865849540373269720726031727345587851060547558937473844864031781889912227434788690016038486346612350539750706673396542868480351851007538658534312083339978151117511329908567760254014728947754252477628236768244715946981594176348124990317009439739001597187479672457237260745250252927910448556901999693822357021963364307553721874816996890163801701731687969473494585004134074897387940100888271119768014147035508009524683019882210022463092909342363014128027402347387197655628798620584285747949285922808367850918584406077945938887713089437657883568088418985907850503874972512398063587678423925122245053708913314128497428879421316232456008252736352613520115696764310857993374207241216081532358021988012184731888813334426483217990820192663824481498684604255534875807358463696984637132101694680059374914831570689477395920008318848107275257170553060363600950134936765639342601343902185442805800398383937440676807493485663515439854574108103238452434172122842306307042269692292994533258623932451650931132678229550763805323693982930692589949619186450638165104746123592754987843752376433147954720969544182013350495255131383830381194114226849424026918252527517274529808538928900170443073605564994351591569707665370844790635613532515517773982850441009160760543592580336836967458652386127912295704681915752126585948056113864811228820496522213867989466580818688573563715503478505104314757643063472549712416260074644051857041502341290240739002171009098590817425311321131755685106893430621879974106445684195729565849247280183523478665388597182867293377960056866941217795114066926551568307052657291104340197539426354376734106124707259165765776137461230095302746555795395424224696501665834210398026481527306491213684968616168068766973763768072753363624148959328909117871948741650547459633868864666172090039863648820550049562429980598342792856062087017771197573127194649806590187059725176842038998968719630690351945820416583714971787423176748856269170172672490301564397629269670795574273031519956557694907971786149497852606115586377074931733284850856384144565171827117564427398765830632377709782787714047541685725784984137421926905932051154505312721706223022891597551445910191516215462515366872552226090167655497260927496111767521006558947642571657480982930159613693487692963094028388470612221306784580963488006096540874947353750034334782311473938503636990512951406200169191531033345051278172962752301677142041042903383406832986091791009274581457704055362584713115434971799064399543292262654773050337799702048650234140305472346440983184373488034455571695561842003847068037242246367869717567526567348417115868455381818864969702112593106641973344927676370018308290929452784316776387610617862119892658201645814069872958696551109204233337667689381892605365037674787119272911175785625243514589701208006464258317078045245638343643038566371460442866333341630516245242419319322327837074143712085241828819355679434035875332920292662568452342227113399170245806507548881522830167091965938433063269187003385308649914075865471004111007359187506247649864065085549618147567525215738056794171506819082556650259002127451435630823780555026273927341749683150505556336066205524504080402298082129130538628671787074065825104677901450945077814558984633440014833195635915784532625260117079008506640776479174811386835308296339254036728543572282880999589855601491419797963118832984712049110144814286804982544977896011042524651389491143393792577089037664513618359126453691766670805404090792834196419378042661849393042436543533483770288599704386939284959297205999141374511911883802690643098172798493608603761994354615387244838917559187046988845142615919651976220825772554968454736092663848148215661390816809759158185089980454311140910576897860534534895444803614908871139633756087225824498842745286847711968762456625620251689588974599272057383047766661207572112418756102106393151472179579893871705131406078173031402006000553461148893468486360381313364926413933030561205387401889283117430290093903345995903920256984283608653130274165378034465186768418732988100967301376470905932993402741218764460157296473924437379654813116443352761353642116675711349293993466487046562155480361120166492640679841451401979897992159228100785107713805492062452160854846475507166526088764365839449239667502691434675949438927472667921880643029132966665689330675047292275762782303157584680274270515820935771029282081915524350056465531314182230541802080201304035032498343667087691150714063458173578659892899482361433178132965436073891399784982583306836551276458340878766496511158282277021702757574584013869076413965809319150835986493523575954951098069224680126559658704246594567123834222753775914495056830393005925217087019159643297594798715785161049910847861281815558968990973294818776588495089224258297282580613964860277486782547051585556331870109541013549934299433878838330028295203535589250033307816334411145896715097510719927814513754612738611964449813365292945178334625778750631194816561806469840261512124444381135524641001641145789607884909477039633853420933105499763870879386595205719590715748281713167875847034410048748350157168535369897992170437894924692327847129270782587848422645830030730463475690161266807485778252708005314646540837691728404683225347867698719202960452422139443641448865624671224054324756127767203680976819683390084078138581812022860743677867731579688048760670956339255202266366087485060057896055130764473964126785353686000370601386199182655009271134948600503061216896943494824065262085174853246485384368818009645573639405251413515507933730663971340470697433903632050141735753385586570651235695426978212585767281038541455747069841560052212203426573144707714988615798559504991983261344307266376979815193636440720229932320990217721617591302830515695364791963263139698057109197118636938307556368239606300727636596149026561307684851649108497990122165100103395259346141646394522724591385100222654897859463470723229030689559697802238840373760204533992301793799316975409824813682945243245261549738069455302735176752109109861094404669582880916543248287541703460721434302991250277223799562620282396871431027804703934918524366272937696277683991763285342625122143962435182847623811431916605020541013901528764952572613283121099251894879134263185514743932409634490228804896171832085717018838914437357730510186567980999468843217606726645486399516274352316846925164268941855953630502475889837400764161076513346217322988668016515067092760080585448468745988635901932103323925399986062784546101523939806324848796843093408980616969297623599758472226138457376752473801235891540182562767429717008578322752500081004690851641299683104269824267995821030854449160728432511377001137946542596361964451754026992951241307034234292784964241691535979868467287292484442088404198274022746477155896625721491813650921643995721224933322791086317285450794726605070272526884884971732922399446638137033275361172940823908866802845578792951591752844760265485371913066552902892615857714987500772519748312741386425161018769902276501706322506831245971202863132931111965705689749849692458083203810030379524395536450963545966578332898398511166357508735395328608177584692538836745704230755288412553764805843888286708455520649263089429023695992696616605049731501450780248380162928243840208713415758207442732199150247034957782031416018555820511089960456978309242265006487942785301669115384095135980100768064570473083032695906867983607748306658685305323063638156588766563599398702273937412048840831235438525082846289154798000108852659990217460922526734372324472090769821287371284306316718584655931028867493733720385400559530938001846748386548730208887810634190075291828514206490188766740355786845576260040427236353951318595749723677008164770972931868948489191387727214400739345520730316107968589594304060617212329565654303434208969431806529395900889070307734759095632289891109690945122863462549426170535950411253865458419351288659555803195661947204864812751420523389786136818790894837881395236225118986906933133427628784295916625184216005508966874481236114332711242571599345734822652098509826585330997547598976890576933036805685386316543757425454160844016541670834854710582672760819293669815396722510629199022377641605113000914736491861074823290879355352791591211726242810931482864348777265009841381390153033237903776859988942249127540002893402522509347614278850828532689294057065429985864217790828167832949105094144618257615957389283679873630789250756660011518525365296488309543227037361268014374762640221506325940056243100003361996855881340629978408134329430331643919625257731322581067808312205564315964488707703467711207783469651359096209915424539611067202758001347376054569572086613968011464626507198019847543987041588829423859430652879928889676919251506847110302090347987201707946075552167329239883124282425947765781980765858795109954502789441123787449503296072583277801065574432106639195140651020467195095585008052294160902295842738388198883015901440813246239225045816666784354968006004206344804532410739289979040043281797996892046048259965965702087710436302588630957763181185135355450720204497591212214144403317082424219782681283912514410441279845597280776904793115149198491815201247058552998587083278444171616799435566152156947215246261909354721703383899170754430610789836071015166214458241224250291978740806150189852063362205859332182339192051692975434972905530628269528396870144413552037302393309530519612039651798309988911489346357431302935505838683662361850252422037342613546942354551865496413243355680697854505197195709022212038368596363019024030421801653195788322339337164197081893813472593773555432427853534139205033489289636131730264696376284655918903314469426247174375589538852474460526445095420807029567164177793922552663530316361557955089429635064731453768771617837435793307998472730606606682928708296900813281945753828423025612942260366920178938632708082172348147726634301940477034599433299961816831070674984209402391859174347406250481517495694943303031815184897893114047756458202986251785466580526826212000652542586693517899149931228294825003485667189595375790824865880894106913394089611096481437591674961731238076264111085473391531063285571853888057024395744998423034786545718046611985845261397594313725138744204824415213640180172074143892718498998097824870621816617597766031048543412926202730743496016372152696830763949309005482494607765660784346661713223864240838620828287344778362644597605057492552858699761764296987765585566114071218338202263403675728986380538578659652831009652464220347333998248919031175936659283522227864060429521411996909067939378004093081884495492459716572620630960129359739456558239873406822492514986814726849388125439720337396983698003862907338137792852169178561865641465439473017815663086967835578046710077075869996843673590026657106858367981612969299673462025418389672808752629324670048588904870645244310058469751082458027483690270015590948998838876841148959957898784052693841635217347592754612328029356195979524341235954876830367390259539295492938405207022550188947576835672590185368381282959207550351191094522489291196682874388674068873823794689088377296655116537869758655839217236126410715490055861490896716756511413157104651310982959458523793966450662608617597892098547262168551634277722244042191173723537735742712604284642704985658637388023748260692692555782270542969336311489975901792264863148905663384517571161610741098970004318856045902677906767966851663358579766657905245029068094533079979514406874087419095440646208461051742866381038119654281731359039122254492454624785929680248466263672946322639867959237791838336388708047422319021127254658120201038656414819918514498959729210800972624033763249885430551431253168563438666859357925166470938751299956424445676287625110586473844438127335262923224954128171095823411299523615504211402769024067982227512058729753716310549753495564801623473179410584518370328210372174275879853485991141729838367035519461972962146094278861513914890019659354678972641301885452659932807648638296432355042984859508047216700527697959145311306834486144039193593316120157525511674659431784543518080839188100538198078223584521768927178953380860220499476552566864774511577332938917077069982676577966294863737009016607204863090710818360415456975256829127771771432384281042261233949874238833132713293393439722144712321927571379235420189083852343296543531472867522118295251074964129750544019281126155337061782682738200481846912104277625684192388526868325404994235473476434794141333535155733422915820036974199460025036695361653490093288070364511017180910446940802257432047630847528546952656548807280122314804584702102407730034071603484684405200633247421642555898002032473703137460097368478714174855250419741627422047594706915930471411461920169775908019423594746299036687918129151917660164801849480234880165156698986481931439132839744119887954990116251854243361477938981233680188154421642533315607633335207698242761828425809987363184773905715480168471214230697231882659414210751318580661701509347916334753231572968875819508693645100099226119227286796536755286767775055692725496528345809002513327982129619021930887781518491442733746426944193083265883700695465227131559690481317045537641729177305948978389310367886416355665283031085899945211835017729618479772666916573165459086089041804656869359225339520555628690160541638901717922857203911730376901123601787130592734848832536228202517155663363824019040767664131563323413275958538981127300359918309730451088903584590658755349016665594584212576432805788954591699336327483939078542813945263642764537568937140090339530221513278570474077638685271682405134342733786843352394390616970908425931264755068476551582439173006053525183240811762425826773747088364400693241273690378941556549374290147451252260660344715521159332978847906340416223377425077720173322576827402145743667860469164455968724890791572009954024845923531264916218967907804943630507386989228550429424047960387218121077142722351373182053319816483755033438759255098868883066393766509140097996959699390429695336811197973157719011940340730748839677924454188465233634276074061273439384312003959888346119931613803986294885215487668840389549676154188658326907633427778121321501768506709883064345145403278456023338485133544248863790707646115039158301567416007621772808493949291363412908385099782524173112275771871660491112600597900713955523391539631262271550048652587326100505516269871304107340021311641041070280491815524107788861213596393178315954910836506596383036009614406389054598462577872652728607843676536647190502840368111352688253819678258924320427980777915227597100925289055010199699348476940681573144674465817742421108107226917693506044621851378761098096504358110279099112071373809569327198831840209487219903033428773466979081005265502579819736406006820437589651051738613272346470869957074610856298644116078981061809811391666753999076499635241353336146191691904762024124136579755884701948814350690403732874477506781523188702869288695669161886157634297695923232203821942780574306487811198082980190206585916354996247292151895253310785051574845826024818422835146399504969217562910383768366014966886316933111691378915690907252193659309652626158055329565249280328297848408124421013354551708330753977645678534771418354933977761046732490229055853148505083267738508928140312884959891915841895601976176220726899050785252118037387865804834738372967480780964529986261183538313747843778025389215284007200794807720302801586989928947095796777075012443615212306996116923833519253333563347246054818063811018316294713450908211244123950639345551703809922953370617316161840719309432081598735814726066748047552983235730296167508308817628523682887660062247071539562733828077344930080673102281870439629194484291515089980689759706575795971458108089397089150011618970283849219547822232404338979583479257774941212420821321326904551122581551314702491654421677786672346118081021720304497840412549058628148873595971833365942016869037786106507844159145923035497550902662753928755583038510962797799558794491518665386274962189150834478513894860802995126524659509596200301885420227873863360350146299471961331372205442918735468250729578136727787914983329390911214127409194284541294573643263824112681583677360280179406804334324040529514527157527965009500912495670098629867990012216440154131405317376863066388811374583750944118321939049938394383965625437323945504613440539723305632587820731863777084638727195801560976865192022402019342506293629595756682918834420487055356668786378949701865174783591682837272815760032548498916624168154343883172523663574790962284032185754717956467734422001112281558265952204428758175149580136180308364550762448908727908233123190055947517567527561586214770509977017650762775759264817981626835979855166318577246084110555845315390670009746937329624787480403863530929955867436502279862662550453691362463842083415972428140477826053107253311837607911656605373313600639187416057733967438018770711965463002375772567421683564273997520599593588475437925497322199275355286096907790995546311282864524804347724622133178533848857910514647841569169190701055192029197670815079137765503189344065020502132988200698293982653518228234538847727672191063564213597906147395944849276741660749035111182488658566693921447734942479400840969773909563388533004271027707278036469618924926633014733111576485011074043494663184590002898513287670460361838674298934306752587455476039121150993351414325067507530844302045058231176788193650285808988097681340739322895584329040109522062980515853772996419838089471598209041942085070902464100845015827214557098216584336318543961408506611628895427509234568657901182192762159075364936017479674988257802006960630460427306873626793251571888466498724446124943694702582603680685882294248233358770122242827914253074137125117033667117598245669819438948713351023685631630797788770129361822788943240921593898734577946564888027625484698144246921395577242620169114547245303672818620423159534117933297920828042238385565279356528888331678127864140705034175093354318937172547768753584738366065478310977419866231947798949935134761698936607502497101295099363522420051241714882694502071753347129782553905244657598297793795788473192075161715468458057466409349814482288450360494787598489365375451503214644829977396565936178835767178189978959085004889821720235096637513658530856632722955256932575933625793715747901185351669599249222969082941780979020609825489901783441404779688204022549321744921935234605655358488292804247832197204890570011159245209937047258264453955021720876224822075060695559164184425752860468763537181230080280620705677225101984745914727968848870170018361117728286311359476851067990145707992041304539310148685028157285800389110511324613582673696590451981235140642335300400304418507659699782757695694698815287481253056884751002088806794259537876263288855446065678709547310939718504282482058964389999256898305925032551063804229233861526039193475107664402077980144583714352973026780252009073853905191946820314475940546955056152544311663194840847298878028120023056706305704576479301337246154934261746272454055255691500225592324424601636112007562863597972395696826428103018497525532466139390209335239920011739846714504169796399620060865352596881919061139478649815554992081026542057287487156084761683917349007544937313873663761144151250956249246512440144626399476397009322390433073089248932496201813939221572048795487528758143780912813792605223698799562715521727855608441244972359033068821129782809013641211987672027353351871634655294803494984614620938290198643329541251322643040167945676902578483289868486521449908992585412714453931181959615934675177146633876823172408890822245985021335378086458557810531507398364899533358864522313943970075133820502662809793167932663224840522671707680894173486596012382128257380576919718249288410067860766867787269493995194469304612643535563071337381485609723042454074536532567313785620333540602969496994389342595344273782571726884297089077307130202993181810309572117448178570531234945675908137995105409615259086353001613243685358977354994943816189229695113810562370163139472360401669486819134774366179577768589450731453636324617968078985452855862329454046060847459691686031403117942271260081222964335456704396716643628485851914817248831423280619265156913585411184703742893778753142909588044155376675789894958512263867936008897286996903370317565156481173199242811924813049769815856782782009985944257983708202795065681237283473999502231554963342910175397777988409810179006246025969554946863848982143935127786675410852359845909564462781631986460665289012624209162424660870992032352733732272542835731822251596597903017672161085426637972846252421475858933631492752009946984334971577198580940983692206491206328536287480014439308661924648005075315288082345784746740820540432702222847225773165620656592174147573818348931219866063046101826342845034414704955820432725973089164583765696437579522968683435371625406682869240696291036772743509575992233472485130497958657966605731116104202700480227353500089764421818963368646419578847829084360571482322230473233224740399695669485432214889951411237809742747785641067791566327762541603140656297323194843851721735341883990577434190416830114304549097003510046386813682232471497404361540844875933649613179269374865679339693743741084530228293070229303757895273773483999878531751350724931116475108442841660007756414442077737239428891882633996500827507576027260718533179076715342339509727455764564924496556021382199439642760304791500213461871571963565894517205382212511970418885138698851620764520615320096255193072897846653479090911282954684957876703210924108614972587921197360662239454995113206112216537152011444709177492579811405124321969041403516841094680451249291601707457421509741524201945673764329381682113614449041436271647737953243461059469750881146645391471441876772191134852214752321053099843737246040429225647089238681189886504633749654619753424657564680519771423086956404614145948283149990891976008751355412598329540394492172514681793530059592039031560002594105881821496461655681801029965397745972531676084734987635881696077627011098597722002507351222808585293328347091356527188562076336124101708711188506546086225925017540815481729182140648542132053011542686040751207454596713142229145679917521245056131533341183430431468744545906836969857245640467491215370018615020826207557660449118644749847534868743302843175809550573186941720300117409914717096876922646127084740658279117642503128998326952356654628578148524348720342219787134926254446985244271656846139623078724493156608955152452582221694953007021467892508848027912065567041752448912879756817064903633357415350114975419729686414131800918810620163081731346100850164781358542893612983600174223963201817319330978691679080530077834684108561863918776329966370727419672133323534346168448600224694406956445350208722333896514649471685480148461041344814130993694204992844549066410151335906792418020558959497748033138613362991376891998672594204155755537400648547899410853769326839389106261522845442378110580914866166859888465878385017836465751241947980197412861442559881734143999512863049352943834589653523157423777676803480927038632007283896648347243010751297886471578300623850511940764272827804476347959762794914204322325797852493748116674521118839298106838755290371024886885453080593557210298271852345211442659595415037829837486154796386508975686100027263406787243089036222183006542797547219296349256460509403954998219083947112203258453494436521539640678149511483567688567732125999068664003229727884843323260025379693779158479177926731582173881633668938923715468820785706373324658615278170077318941057986395036950121831676632560061759825915252700955935889420709074567181803518956420151179918229053956255013764318352603240922992378089771276878047397330183116757629442244281055157655391261312938928044279915115148072916255392916988807546456720238926358825045663003213525258395728695544367940882532059328354044567145164016074089818568024099883089695992436990996423581702898507391944367552373165148620870556961225785139586156072386804556233426140433365220099695315900015074710775053279191618593276382093680745542705984665363508251117770070785881965341970993564338058483339238973180497935449411436445306650022525008998766103260959577128878722176834148079109658823672930943752428151600059670988932463017927088837686354071583419735945275889892568789696933425007083987224912520337521707931446712056790336284722233466508554776115381741583301621694419611264095269836377768084373214501364428620631170880106282448477438349796457193838333775384164228508912916424198416528910491134127277465938744962039239379900135511881534019815464110438821080416373290527346962457358756024499876301499582028011509234751397927736695313913728265604597846727022661913687496988445855040831818741785639392430081982498509750101262228342144669544960263511457424305474824207680466413157107724791243752184966983936322981550900504177661885318531133500624145123659156307443995692223644041711662107398013866520146576387605382745786168500398218750974532033214693727273012581113511149416746717717067458377610086269342394644529367286530661172057343352777294504670769986750033313271123631177404500984107868926903598483136339960779918902321618033603977831928145585913732260986307483208165912471385349313909175854185781296159080395106138400384197798376640771503881205865952831704345054620588578772765695483238884110999127379143263987934593670345638143650830420422653074393115680106911996341584860718842726972336020572575862816517535290624862177481226991339095957504224018722616855964960559312846553989069628745626434974569543257535242254315090619413812808544335652030282212424662128217943200378732590539648414037891460764145366834284395674937138933093525286138812387891381172424626294223570618607295477533095662587413880239477290127100779964989264623035256220544961154970527914517984194159208669765745635653143370921819594117578936543595838085791221620335725178109237019112985986175373879691288616089297616554800247680041299672238094006179337256852867778443950597411214060991536397709466913748366590231313435778462959931602972873387522017180320449870774800775765679822961599714945905497505137664541910268675462807348749188569660919486573232086668974524781729013481161669319070513517046990928666070190435420850133711183878390372333030303801671373476100188954851976255668554265987993532929126187357331623996534063653879647001644403861401477944422105122651026094073476386929196359260253393171783201203502577696816992864882224001353291012471520921408509955445313943583414664584026657351528812986606089667086741891220014847579303123189698465296170947002516424812429513848784083367814763817304184846785522605640283970180753414559681573003102742488685423340637381854238851288772172392607670746678050337743815757843321512923580675907641897146367391410658492678675714922465425507200684416638711646866167720635496861292133652940553340455637587650407875284360482220136508643413563982752192932400497579922190781641341040376822105527662276509892918308059176174887097233066255751514790216818446774442225102451446277182079261210927835568076075182977131958829942404589285962985376112836111111394801203472051278826968305705141558975648649593435880953266367783905417558172104464904336898588359234746797715301827622043206979789783702534312485673811439036234228259692320706791409735918735897845591339667221546973303019945522877887860175756997518192226607148008117222419823404900548999786490306321639057044459999589276187461681249457533049273448078279137210482227038458859816483805236377430630244267671191630961189007623379555539524389662775311309701474822881225158047145136999476775149205693131033788700464131858478196353940859306004493701662477070323327800205242818473417860542896228813981472700565580322053185977095519721376013573349294086832331814270587256307673737984574062451191065358252038469620996862761328486149818773956678131832497482414148776454730803310942467115559357460760704736779944787835680341538549425098714119766620048616275667471904749329370431139024328893969046608008391689521707412457202518324209118131031580967933777435251853780049691532167242063550642808323393185239369437627249068202173063584546172069471049332957295353879154408927899465208652977682801873300308706288327849869992776352080466060541418160641254808995616199391566310055499239001270830807282948372097216869710458636517442004058968286651870752509515128627101219353078143855623218516291324182722382322618275507818540436152998274571313621375872997651621666961172118292931175860768304309133701447098816745476358752252512726953501798442966004711377221276976309663847175962955390795354970366552263413238048009083121036447142737239741810647366122150745707169860199856127839959875291039830537770067907460244096257621659009026689095371865960771129126655530307538161645917754058677698713124338865667380069417085585237068803787354352765557469775781696132807280499130406811429374211550065107822473588165566444429955428718412756365262359810896134772941971971166346410101041580386953310171136851826325772673212116774343137677355590460735415347321782560204269498711273480113735651672526746190067455788599516818599442189831761546054932415521868539714944644174213977906102469427409150645288643253103631423946544134662119657426282127910919548044755153603417774824022974605332134262477183420698812551927114010692387853218233583421994234096158667977151268978935237941773424017445668189587652627910838017376239980036492655687040144950472329880390771537976941658809924383186159335246740108100913122119473939154126859500154117437785117933706832081917634247582614588388671908297745754203489813602536689987080763245767696817636169418569975763082511974012596937089570285275959784869877323465140569594945229844166691440297792585060975853128672117722354896166119754651429432005722103357981023842144865711006978678265422900492551763875321816877476768514871544751760546751448214238944778314647167594713208693301732793003183330226342614685958039530048634955985642050037458579251889074834790092667990897365994858728845219008917842902603354708881814017505230801853533634495647768341511729280024985159058005465250224009089252740839228018148647623258968174988085011625107991519537440885694114276259865255616080974108531467765813746526980040292957095411211075965756043822998808726375447368759829282726754962642422655788305610453149094313498894988492281010798296784628356881327191034203368144246281822814520922818320097425918069264834106714768241610694815643125863012692750962022697453001992438479451660526796738482381967506899073129492783654336697846510912512423344902576580071627580542971065613061784411732540250630180142292135018286963275427759123527851924506806126776891189453581001165188581270897050404839171828806810260696046893902178546674416052370962551731431033893652300209854931555715663305931891349400896201247057192467287416608158126157454982968296725911037202640892285098874507570341628220251121160436924891398159287218162993120280884481253843108975061929765764775984845938484670454462958832726103856606942092876369338972571337313210826026709078886680874489422295295518044571475599466228436352909380063832934135172749271307049291362166512270764078888307291331978896201903104265030178458638991778705618811074613410198064257248826143415431115283114931163781363490313899911289215406817598603354059449221278377091513746295940273998764076938300749160279439416948969307606003124060919438902370464291245022662972413148248732446041773700163261327267821062283109524387360378802718701230737995717463014906225771898926033759184326162773221112286893481871947978464465947773716762065379262866718587702342828773466715603677493106296000042610033519413517868296853871615654878880917598734717547963471069544716745431939971346126410607392908830144552343392595016695575601322284424815666767908108216764587402084132675146176452813293398459980438566221977219705545801056481086582988724483032145280180593036903906927549495184189678864205987626559026787335258644374464415490910212860190480602338666662436311449865757070384463151111245252330502563055412931215163016604556103087198354354643527654030469559151583498971641012504312628794424321622441516370459586052996720124654585632119864123599256107377985420502700331858163787738981421415863662492470682875615645339838635411559546315558881455171030724527458113065642456682702082608566971758167877454196237370648883769163677530431255421528580894745049210046041168994165920484051271205146971567737976024248481288402086580780521282825096420485379648905536669316190958324290577342567910264484691865361039037662616556691731724058700786826317405218409417141348435338817119310088084446667081986505110759861776454827698745211368984804958827542492237574644600323403787791574868667395651434654707918796226210793162670043231578065550623507936792334533000498879395691287031941124768606562161284314581350355352830900559454969909538502326681394063806315949085338619163445088064864222466370569775086801279577691350564077553186229532919473396970238114890945210620269507522329162019870337789673102043155054692411460031126440515164435456384543512745874175309099278671633889736352947369861804633538677667077479600334400058875880662695924502506573075950006238649701777744330594558445719225294408073817699463038632324599931056201681797746365456081957964928670494221692332046950069271916941656550213071169978841271920360001906352432731345888572610312336186554217434670050962246970766399690633109144917611641694613506351627018522627918888064516192714282256193853970540079340463632285616769914693272045953060522125979474665958798132714985646003189438758713074517006072733289923050494962569107862736818770555142606402838929920779927898435785436491310115550897704283134676812210794744177041887228072927651109200406418897487445798980579756498412601509412992896052649729295165242633040301433661919209103856690519979264891694575899558680760468629713721513127103173508317205253147676125470075019568884851932487153697825072981682035544079507631283966012276269310974278528548634211781198627478025893634212380565795145823217142353165468977699501805332382327320257234164655267398149622608135179413286063684771164255684113535725741957518583856141338005578374286549399780094985584739821249540763659730444905845571492330725907868769892731619847686002797065516881975880992751678587286782314954454896613424982207760352999893992586817765688609791595271317539812792132110016459227426414448874002001264762429685289585770096228850777882300357091291466860034111405766023688179218012260410951152594453052587355392187305373833990799688565113418597390829837421800788683577511643540414400761998829277086326866342744524949000467275133438471262925590428458222056192265277277331587880308573995101008556317731583464858453061833924428670352283109184194951698394121600938357236579162570447490761288353112228700372148827092214465195613416694441041941824340522745371605074199404136324382436390051152459127193716478514963924557142605260463843301299434292789472072149298631304175477394140859559844886709268951570793932397352336415258455693754114211764903245878325161222547280061762996103151328884680576184673983502648777791119151582318665967127710017878959004655194053432786745763841619785518756805576933369990498872040554069707831490592954013166446461702125324280850803919939600841358197429468277603097384442352180112996269459513338902587015121560733497231658056379165908230244372773503399069233171831422761446843042085807140005127909839192662672850479970550567747585261662431520486928413328706081812344070169625932765780118809057948975998759561101658289224175615928720746553936545310971323745712097342416319796146833795313081101057849107991947212867475519656849823812170568953316112180333015240817291916016624207879784801838016196571681861080160868284792600845718228057955000900990915081957705062008355111946133419342582220870755195888126237691769603964011979555419331869896115973800166042922066941850825598561381013872052884844650666242773280627017286639614555732889929004228892598122098965142520002925053568401477343096157036484095629990624033958956730181862806728180151850728371081520707605150755281936255799282095554573001871198269602216175718916651133159384961628352634758533051460402685948808742324970793254462988562731088127707459024260817682882563386640010272339872996755663839894657387492424559703301761690081725782113480753137990345433301782236325428179336705583856616975984238091494260593298843034559998030976780640536055993981886359164149406897489507042402169944275807473810859217594102292847841018745410128411523473425673164200492511951753460329184351738893353760210805440283442742380343766126290165032155392928819521287567758039576486620139311971836433795876914094347066347997746121993363776667866396605632620227555911038466178424421712089469964023953557017321003554475702894391658909216601937496725292214977336063803798863591373599095595314995086305139208960037498113250845543942987167009023595414806927228966387118470347480605856663732345959299964459960507409302442180808990959860252109699914554494744288622928638474834551314355777720454753098052870129145432284447969331997818729010386331457504332961275365356379292355815340903424155541522232340848828178870081258090032041731817049166208369237907991427121124198200726122334734344458747846602110790207170989721045581924276513324482185939662748229371867520376637760781505183116590503971473235707009006924790023255836307739636396652029555977337744169017759522443156834803379805173374998369386669578307113326471170853220403201124274859392486313678177899122030327167561720461070122445924234310995693110621624463171939931281485773628576970144491032394867268205132154718402383906727990586927230433580072931024652065885473531428833945033959475902731454588868765841736993507528258450544319760088497232531144638876935963338427042956389145254722489615480440080919732167459149082321078847152808222568054746678150509700506258174371662153198007724326381770073272042178541092608812287939178718047561726699549768239763825835997331796911418693619252362831282604618242384594698278879776408431809628246898114469002515370172386243693747717998451100418265458138748544462175230733231773498402893026119352865266683036754069601731914249320232664731548538635487713780720380898482192160520612240572213174752098093067060803325934317965777863786315141593789566327264125958314777809487834248470293051318463732011387834988164921484305602005299389390667553425267023202628131963298001198076360140774207622604900485571460381241260570146802478513469888838065658002911240221447603760272612964438771657491175345061198779061063955313868139373953155388906465618439414510488620062007379891523569036526392706949976053957803824898856153092796405907757674029779624903387977063610247635509584452813154284339978782201775186954025610697582611405179639435376864259720878367402865421377979268400831592167876245847963030492308296426018724310779414365892873677071755040425200725231679472737623356313390243108260701338668782925970525445179983253466560502968200882334775313473933638364889117470604188680674991785633852330440782016968587498177714462335260658510983325222863427482152992774126319496824947786080570313889391763442866436178998083956968678439003910630215220706614278156032779222675389096666951256773083297340193959782919238617593057708741670827229592937839705508899733918687596816264338582689084916958488990802701676856337485059193693145315164474920739360756306046946696405398300186268630888020087805477316675460761510997058619373332439605845574757235819708461305998987917659259698291698079026582394595037440211873128874978746654322682884099898458637106294694715157946842357654766043123425034889548605075416927644846899837461766423459180144678391161373116126722630634876819290643227917316876278845828114260496442538709041971070602602486008505349133523727418526820513410920550277463457116274381087813510611866726656008178478648970605547038787852736537256841166346935469677224673163465095628645752970244404448735948475477080613203800992071020027632907480246160060619994621571864802579097167232907544048502498392853080483134861739341305793921369817946561670783568356110640834472308552697783856949350501419730011053545382928745347176541735437333132508184809201438419871273883102758138859946442659942284702752434184137131419785538532625455629350746619833063394713524487195081316555047493393718644206054266069727821559615343272963450086211446217256827233875239755313114846410952125485310164778988105787669692439973456067218141314879975334495009069867314164231917049457386346496593080165843449939057529084628029908147348248484071745700035362970796328641272385586495094305318371429988439935241032083346954908781138124310274997013204668287748340896281994960007790803760068717439875792056269931555882712238396168825561459295505727113954534914293453773436682539425170041195187139657566672604447278253578296798913614561575962212310451034564008277617970392444945194866355148786712135909194062516816917198913082071164404314757829938832579940403710490066844188078548264718015666413208156395178868737141831243435303782720713508847293224053645128217412107617586106365176335051649548888575834202613369641921694728327935582559793630858489784656573195560376254723340828211060675412040838691796006252753651131526071156427320955640127557154362261929667577121349820485001874904818543317993299369886255173246920179732200262546939422934260842099963280505423439028191342238638788770229302638758268617753004181291290851643571278472199480250620870297950065983006981503919756120712455798291604235904368515718730760201620751308736318790474256713718356878729723848089228134431041675161422635696852517210739653628932596979472243830400712406669856196841742276834033002776116574871522450397465551577743154633792298427641016792248868203686647172445850594908260592058878062158107660787567237558104104343461787329245101720132337961897945451964158257818613402189840860015089105645525553977663143695175053559667235526255930126065762658094831374878930457628935941791720363892839004506715459490824817391330749888702477863662232944951911562311751167866602358625304108291327467054992481682053579246260005328490403095561963307385627403820804807562528581490586010033197342816530037383557289387524766139238847071072322836442303017645219077011628430523509191664054722232342868899904893562779103424217789142685933978488577077993666832212668638500342623393789031590145481126410167021919154436837488610244683625963693533918915899543264830815464957739077428617838994796641189452650166857262868152110489942662330320595426797371214417827551349699679015701952037846877063977108956516958319444659000922712263234570768935810703766394996493088129499745444203690074737919986163759755425772628563971180595797789523693032089657958592811873433194622789269240717770504315479080950552360163436719139692563764800831998690679591875668653587229695020579262500373498244002002285666198908738044723896633978981333265099004180077158032888509402284295413620555972428006433242544415730680806369631319173872853459479242586306832072100855692642364140438204004200105408175015720311122532393625858177856765993718388135563830118953244688302190204020405749481797405138788826382215780360059734008102986171928587924044326372841408794937384427782252287003858116025413667950846350103552843643661295084959585662394616496515744187031218414850675109010409996110107016588669071024292126000658395209087016603497904467925481632929742672918742170156335483221457251993127048358512953976030688044403324221891627136725615958845244704840404938479554838342835123002969737090878962689157927659300243203588008740348876460356990241348790932395061187242465914791863227276967138152526337060698506643124740072976788253453502992495727076836482590129400612744474535610378681477016704355538657334232852952187265399134387898190985179172768233319843767572213488258718215324267322984000493611112526321952530024728489158480337126060430973194656007071273730086238136109578952525685006426467477602387227950951205241134341374873117326281622549087485669555715793112478482217141829471849739052765950378895102980733859073496034380001194200872439768966946900142407345102822557770398357191150602650369317045066136279446997877842930168162380398032009969254573366025044394093782310940929315023696833296523024710042986931763924256200363214685757368650868320018630457383874677153685250239232370894861453999070846957283658623257150590478405423234635377186703410240286387558417228569707171971231131884183554766570009077510482508448434519208122635985375186898786877786088699983189763707759427259746034580433337821339022238180623363385506793261546319809791631728749696128261338439631331269982490000306961719261941283323901557109037017245805941699570160072566775712641896692815038741313194504249464257839068699434892860636614604271685867959225397180425213652572307624493201068095306927840150595067689221322313484081096665392526308889141059464019482627156973558619301938102654354524203915881291545475949793711014502085419111448644878222066328927903756271043276673339078398570661349244350726107084627705529977666294416077389312480130752163729993625429882269404330424698440845000709246126203318000703666332271680924965686598368342477140200288517495147071772703260651147411571787850243572259697582902102874506104030537823707106659113963091202312353951480841872693830153612848435561382901472642063133691048478554332420576416930626399387753667816008765166828348273959531745535321105838085102610875134958928584890203603332136251539188436839336515211745011566005174825425543422620918320971130858062288780290774956647514494351678001756874862444967523435576370623488470994939581609353087469888888705047308004374597998464286967106841210907280141922801648159383522200619275988566583480701387271859747571358176915430962644116376404347899690248703619892258532015454860708079353703316154143072173251461068412978278498140719611973827113341931153443285542558412435352198090540762299231882423160358046924911630947850758185636092325938560878790357427987239761152472325813619360418895941193018169535022299585667449542323652811079331488463628284524428645003515318216374635102275885398676187185115760932346096566585489144359084645024567759237098878944014377965715019033412528882402169906639735636302617877061335723397635096163189008253959354803047588804376860970988636410196467845131855519841424654672510476430149569375202008793586691071166306892920037662120002943425078766364359207340795365356089501413290298804887216144806873801040128869549599843784663562698199397835782689739485439493613162340008395437767267808552630204738231549024108215963557171930358469782889105592070128849678650655889255573617299236493564856258693838551102309279034312777459513436630192353947799309368974486941227365576316982953565580117902679857573793381912700233825004408957275515096576951767848998865718071122380331402486065878459166505212950432865211381983065345532900892115597409932294986771007793984435369757724534625405381206063853717802077948932640449619461743251313846800056199682021539060101727151361671600658369608580277066638332451028050818253411246936088043286630592141146525010270540143317412097316778710325605528663981150836120403894345635037733683141360325248519499482001974190172231071859917893957552725492212615221878710123946398341428960855985605103235613480992567327745924414051226137730455151710316771950929798802007835483928742448404062821450768618372493127201925904616382553354033625389901340508329003610327899494937416267299606012410030483360532204555221107472221309067029152775112008816502041021094602473420976788162199562457073648553108775986231624267128157934613463330553245229805367128037187994902921620377411970821686507336848060826345269162124928916577772764632583277497906292182777542417983028008383359025710266034777480120782068274605697926464814832853818510567313660369260805086785854481573058860914973399063792618496429014053738056066615099237918778777097903062905857054989542461703483789034912246656705941863162427228846849800505304993370248681834792748527657609222478979808562687899213849939719016158616572662485621839467660686601527073756204453872229178447156620560121165535703949499249639066051855185911671389094692092151195098804909586241705450751774494496961281023819804511601700017731946108055707297396667970322204949085845059683745671347560372301450828666121281893867408041528070132747613815578062976385285388065145743213049560249401070546081929483964532123664442359764293313806474645510708391046663745575439878090825887316386898898608596321022644374991863636880432072657757638930063327999262934725437096930390549361128707687926604710786197579140737545400334766891211651206099654303480807421352073200056826476121944509099837252192903360904508186035642513376856244423786433388656349174204192118639122710105891166255815980566030341828041953717460495857519342959360937198609117047383551332215792072073724705329732284740866211613260097959185589987714154331650526300557698420034292101125222684367948265339267798216261976053941826506787633179748340131928282002542630450679287445601035392188356776143362180824317432126753936909621364038868229736883770249975463008605015260041469870572759703583314918017078066244470561818644534980781789763341286204054817553784645090563335957297192396522828092648745138944778283388884051760958721845925629650884073389665507344313974450254381636572227429435603260534527923611083845222079016115399492030356217338480216649296937901174901838229867472832764495509914759814262272952673460542356846521893164736722265565340351876856973123508485243991119298624803282385848234840922204126435293218145740280397637832511163166342876943274854944655494476573821819976943831041290798115757351771156759444592899118651684494971183888192467458665706979957343769490995486142790644159813038310416227033574581672565896257831995918152746104156285064059854019954856245426119277022486956023175337657022335358473079731198977357246485398233113558305150792016146600213680373227788343932782277741253775844171349811037788917853321461471425339137293878184745114494303015607762998943144974737248600878486329009520997987874747677309441976059304824927519679343520930242628548551768757861466439398638550773284138067909538599724583463323776683458917045842376084802656189177191309319093839577681192820978270046450070658228837878672075884185684802137397228674425107168226118995806388215930381231591993115531450015444805427371383408254005348994047005078032111849258798567970226399326153290111723092120481402316177321976807643725398623914331444098391892793037265003493772933146151808034799888877544122598632495527104058355101296525399646117179612529099606984025105155908335544654497291418736691965384426017051194569427845754690746097239153442343542875280281673050360233468891745670398805958929864185914519975908294688009669671227711442431239572588614894233803480274998603293576821095683008098780842521548627346007310977148628654588547288085965406084315340642330755555763114495696248924439144100039850186498685671027587779728092781709596864693472519484555485717640711193907983476947222760066598774228207088931164200955563492208342594476980722730712964040422161048909069750928031138108054759954867782005068522965101453089864961145352431719291870039565349094268753887557318010619970850906229338427627073152339216223625151439028078681936267911768374582817689612326095602509928658604078855653098074009432638593518902124944196528800641352774500056234411204589163874628502751033823569127270887617681510190170927209872680275511463986397687220360729259864854407828102947081102541079980279488632211595318792459335771159132249766479943878184593329529457258846418171172432375311705024172804072129461320439143840405275743305724437128613685889138350032201462333102015275646083946994410064788802835666440552928899259892954694266089086099697051782474485564392665858940299220652673443358742403332175698007569366784359147208016043232719975351266825339619175861140721125669658436820377729572557735637567393263535425617791969622197061966746820413415055008012403355255506651418359890076035504498539424458463242784406304987678235650040439186427815376159247194053314531130175924960489703815272921312033312970107922356789428729522739311588320040328334055145796890981841593144616379053400232809094347073975438837480680195393682150797718609756409964905957995639967890716790905502930926988467839090061576857417752917000796942321705438072664065232816890096736281423463373587944611441892420197720889498156633517667146125195921980200385825277426594764673943666109791941205313458859186776589706182879043036683544596481959610898400221854342725196362662964271936946039024293278625363601470722386033627702917351834111580294317183676156437872570596023195784160758510338928008445488315416789112364109712922814376053702434041233829829169219691940821368540655144375529509572145007846678935284643944906799741745111037656152266409983381518989679027120294459288311803025994751658759083415114648414617379791389779152468128062964450738587677316409637985243387181917209758588654087816173752773111008080131608716585095104627343275647930316404666194417699387010821938995368193660523750819691451386368499974761125406949082281464172127505500642138126901686982294345989394267564540262969751817940486465790944588676858264988161645886607199772048182379342579726974103144041436602164290822516538638837183986165699021999358779379688057412547592042162329401136146020495010671442116904223106654233444802689632870638317359371757664178914494069216565735554065898923177668606840889562631858865550494950509427832536830789623371833517233764543358043920757384911481573258480654954507533511852014019980306459281576175693040764964657008481508365235569855335238443542984926026680994757983778870123454262641829861164273215550687674998516533890358668432579204971554262136857816883033183677228993622193314670044992365988628361884652122149999634697510083631874176525717993116643309318312434902482040707230848497627697909363659197741941928857282665817223488683286331510374164268153636998841257338998125397194528177359458502089279019705964049949650954720769586102060010351293533106020523877060097549721295309405073398370473963391233707167434676618317935277929975715249430174989712042128172742976191765177412453920093276945955212203132186028303044509456922604859546423796049295686445341691949034548173593541590813545537136669538671462918774274456858304515529692572365126617111226690019294398124865072609098216009106997017692029101464249670429656067493613771136686886217990331202256923407184535892125826995182240954494911694907859326578153678727574068417419755267790575874096152960959657196086284041805407101270098069108583956784408758320692054723595293271470559779823286539959468536637325499815688392612890093647447399555130385613306706675563222261540198878318799529537452106459968195865733713021581714704859085863447614574074608109772112743330249909362388589860227440498744758954596506533647934655659141243059690560923021000988350354573798047634783401767191967056188097763825630458975566558601778246772554725976364679758115319299307910532030814052302781190337310679827976515998308284408839279854966679703017574626114155249112577021184683032562892318266011842380326382631626232678206010974641505583381249553325024987986639514702689824364734972571999223047705235586395430955596026161069859531045092557024055845491856064677662220532811681502316695620642626048755719521902740456682737586992412184186618201328197072023570836908635748933580190666168142794926144164196449149385858282842958460420553081236593227795722446175746912916756188028551010355867028635696641782637711935492980958425040773861916644223832042907255942278307575793598951547130773725283672747354372284425661211438020597004643618367800596435332249260022423779302464956099969717718939464676008742611774495224491995973382818040461251843058300985214576028942097376806100183115090902794628703653054799725706528517952510743603552699001572535329825949995154120853630653760529098002454955260176491353902028428395043129518751150918480253000426329595874488140416156450411143971271238093754086173137703575843886921487105556269626266263787368329515002365737680023429705431311239663049903039075208107572131799296502636610737825312229332803428173433616424503294368586176484063543682412504220574880707146725052617269755631107493791157093923346430223893016206958321810262898561448547292703472352986285089783713657075368365088197543485207641633488863167771410393437704473454221324252447241715783911556081584191997155557821441342538955557082539056274827785081779538891537191177000531818798511895915718164559018085886788067542927339807917179237815879807366768918753117905070711227628424894113934638344753804766577632266237627170028496242072920750160712051477971990794086958076741626290531451646430780848449913283961883266177372340721894782864986060646898122778756464763125485068363759117938162085183649916031005383280727130299372844490940267372127177529266033155430624970179744249998751627665447928638599377719435423627416005577051317468573812734958929924984846558658807314759610692054022545302986509118605563218907030270519956237161674429516298481811366995368682242595311636590292551528394902150159739370783663251547068532609576875098111664776049694721800692705527264948185987862733008864421195615329923553797560221628513715895091282932989283821900018966993664254635906941087438479758362015302904539240445043594463281135054157550644167248716297145373732595713522354639293732224757998466756900826319600331055342208328490543878620377854870362424953294679717876010731390722247912022520188790567721071151335316740504620207260265082288261309154756270119778547434342811741764008251217618611844942429587455133274149318613071584127806320050890851320276477658596198060132349967936244422124561599070886224360127260503939042032151508902612890740401455010863259562661158355636316308979924316456141355876584480441097006712596319778228140895586477332513319889751244991055197203250282570774256006737241507088045802067800327604492947456756847550053005003034921807954822224695948765824172780315950261151206220716756288155173713777627630948443688782463782917029914936012622709788241731010614247240876883039205382886940110746592875668029046918392687410341155017476713045424220503703966818447920036170256238688402687244091138239022329576611936684071581006689370094459466043536414047447692483672871531766654002459874815716742052648917153499619127442761833389201705234563606450963396621630626364148978497501867006029397681986133096548337748235639185385927028664389912912884498823432278614875399751791809498327183352721397914686931915671320695465015715867118589440012962671244637381877905348659243057769080651511336982866880835657725552925054281542479696307614092565330402024932525732893831870091313354946915569629736911005692415444442883604390625737693878187028168606811956828609221429554457833351095789805910136727417303145747645227502542391719076709597302353841942571037458134616882015469339467217942674376697588020958211442892997564926065868776436306886774344898367858508619028557373019418909159612930835448253190993885525174702394721458116660171479588022167021744856178692033989942237355877742922891767817375018369502931154417818192041925272569185727667305334525961734721609971733600341306409046584697303081433455139490988712103415735105215077792470505710790332658920855612536512764491585063210262134819625618103016032287536091681636671885759443960409969855186110503053595100501918812026395961333302714469673423260751507421238397509221665398568716504703269895947511228390526600727295722831533855061587812387384582159165562680094979855450500258615950698827692056151873997441363374008807008529622105868250651194892755135445078786998567271844773405844609399419454853178694284264599560297846824268215132447370022392136247577870891448621612943540726894047043934390742952481742411382980994278650996926703627919669847953837960213266260609849786248280590951291745233214251833961139732486704157927842788834736056088156100753180248553359694621746790249683241261975550232632267147393571929591195936895466402799891024621985681523089846433279078892122428937932222444790399853214186332803668372682047212745986672854003278429850577923270287277995830816550094408057099244908376113078178749567685316225275428460843431798055627350297394304345997000817634551794770078957913333527805341927934930257281015461456260238066119872711357073700227525372519899089143052837944442890773279446038980727872188335926796099924309254864373437041362871265044364174924302267070160240503652643122973880110624133683407941246585680599777406423409197502060997282446325831991302530683445593859810153713825648725003331167871030251843386365618986201732792632364304195660021595815688892676590750188063577201427194166749735727412076246728170463824455524091674798270788600874409661966687838731038605020894748206050365875996285913811604301108192044002876483021675551948076432311176569435580790942073336942869991407713527783508948203412631805252218557271369219610610520646291631647802332265407512174848307874247708474573942232863134625481511716253361592327649441297156277095486714030631134254497947195322875993698248692494879778767161043748846214127087735846205448541362497048673311213511113724112454070135929950867994177361409995227328806524014548577032777797207078943268502188995160837669626586121239742038924331025915920677462882661090025763408292889630588492471122276227527408382394554487780848660921443652371318384337051184723892440881443271080159900989822662511151746773532240113249528413492900430502398264769966612969925028639206375181145604679010122297474537942762247513066309990250265027392996055448198362508891611170585959579223940571056321998085749719980679905327854655044761984636211256626894439809892259086381528339452644954552529296327887069746261838914504794741418462094315087345958581933298554692157374464068179902909530118050934104186250526796738869415842794507160134163794742242018296201035992735312559741892809818659441450649465544045101236723634753912881091915095778128226716124596541509597580893152888624227980526192793655565925188671327726566804506542073882929613157284705347395696676301169410901710164155798930989532417420608115353689905013625685791978672493048852946334053567115861641159027430448256417968644775543402573275297644647168673064743108078549604882820184619550361072590344015290438832857985213526424722281019964502248009374758682029474778376374392357300392199565298018966914207574183563213500305884383014305163968108845888974958000466282856359084192012195885155464737753137487028725534382251961567246350816328667746047450371001903884847874622860169174990043301577670090924205985682009363761635859267433485706668801576255382895507121366323723703247900749302140405783103156721873926912297028695551313663081964636995748158663668748307711848993730438299810408585245944924465785051216791749383083298073678501896587197856638379447536959554096007972710481233351207321159312709878453057282364961706263211411546891159981384449128454478205139364943460886429124203624380331477337274265030522146465192661516398704547910033571432300575377096831398251947293619953439896934407946423500043803914799899412229349112671332021437060172897328926133552362827105751657691705406541066447479303503584809682246534359447399177350719396925298966205068942857029553571374585976535647566573766774758865038831591622254500173477106491622913071909561724074353309736472871272752591640979928774973208249255242216272561703734533158656223166700190021827554666734939080285907468415321308676919894372250260665088645929151747598148933231806877199015006358292821103932638408810733879638219560260049205589769434326583400701896861424278917068014746611281455638158537751987114563271611956573860766709040327278270968046156490492747868958131771520577763926271779816285226295353811634361228666940196602734523117795299809199849212711371274594362227529022314749646325804811488723817866766447858515835218919664694223293994329826817257528356592719474038187047439071592215606208609820683495019641846797604045889851927492582427979107280873247310285104717438622351092365960859083291359006731638180186516073396870792333399879644525695023716428539636224794065441075817918056822115554429894868239829041466745286508368162758047090877272714820693021092715433534470915105221588904779937024742248250270012322818811928102331327530258553003496825472823815377205282801326080525652077700163503064064427797278682687955521355758921119714118288640655713269771021103096142030127661329452231688952939126539492015612393085900133796763325628204926145912895838315491772607509312318538340937790446528499594058643571086005711512379105771141712725034312350479391877653972014585681665563495778312177492291619543049484746243386923286040906566915704929626438554295488910697826797553895216721768142099020890115125428618883246549085233994091846914746632390521998799831515949582721971665315879906259117405578044544153755013687497673743197290104466402202484626144759381813058214360673438450116656262798383574770744226286423445730191093315508926300939002194808069515089184417621343498215644075355046231908415606864925390975255961987118997450252453877902645155083059824974451673192232127653257085168028358254854525498205741361197535833219102567765205071575941111689529251604430255936473242794960119642622353706363951994050729155206608881759440588373215261025593154014559431951772948600049212271029371264647967740226007940890183993333214190341731810870209580971234696204652734690331121102092783983090074413868172857538838891862116837680463978512746086285554868458360223093304877287542009365229697399698777185664368951784303167672745173450887629478361566215010869178396360259478857620958962518516972965817932900138955690771881603538013945627051930024295849581023524430279909573784931876108375169808846096935221033444459678515167740440606866937820856167919550076586588975324907657342297203637941520522364019752118291465179503864511365173334312143104095940640527365268394674456392891621585919753806246772882104121673234432136896395667769317299199203077431307324752268133469197678152262455956664388630829828231747314713837074156383578022067740594222786695217994856296017430146662759893540538754085256646061435943709645067438175977569838520168854047075709816177728292528480176366671410263532386983282696112386043026013184280899088797213511098181231298714602744930515484662554309597583704098315093851981322612634903232925941751757263462641277861761622743700063823658601668900966834753729358345574425673116931774412863068720101711410612438698750320538696339568462331651575288960479156321591418150094166464791041439519239981956920134029606752077024707696780133173996882767570041758716148186446345409572349910952122975860757769450136595134017241084492166789510795882130135858381119978661139986854359549932912205792855006530399916766493809429036054559767419593941733338148086007658530608182808059463196413665963627295169022657269920324956114373104663298045740682117479386226827908380171433906265406403389315663681784250047525720679163389580080677557201565335815190077632442465108263830325301949124056953094446052273435818727507600021492320906661648605307098361153353397917085195260760225684440509424183192607626222457402973354579221674395702243371427455731802601024755719952189031242467846640553209838719267549013232689359602095003660504959818067449027708132486757485233591445285243771946555938683576364506543285387714912713463315068499345111297804792999901795366036279533613178860441621690324304844998593004288129550188557736966790030092883979117430242961702283626522624879743020788937280184514079094457371066084081733468654383958447880156323959026640182195365524953532704544757103244183232496626245747103850452732579485154496995611191446553273048005204556146827483956242421283950255180435928011752349958711482886415782710910597082094478005238055615298504736915390571840696825814403668097106148302725834168893206145048445618696812081503808982312430043713928712516131060849347172750145493607532089504995332530834984995032767525982147199204410739845283997655097174622846101565358823120405478909874617729757396831750698205915441196630036371455451407299716677763570044057839275187211232742150577806477751323573950572946654162351820494348905830685424780693193781592011285028977467906251394155098287256176435663912240516507806634922152144198981698658378958941158032201053265496198601056678807015946510285900105010661988107035348008208510160693197502306127695248720417013213419656192581913495402890151713374128501854326168733721077535631923050124841904748301610957821531889429850587581815927117984710059736310144831705951607875264484948647556542340869126331051154947005330878615680629603549659522666332562020141566319898009885957024180701500802517421699559659729079038502025056798116845113088526934537327350398141663493209933310722404499569943906275147982964547022925324793677555268991352457994874462292409157790177746740288946326602809033901164359792278018658706629579992974458087564499427332041860119665960683958584400524653002471846305852142949614463846130369251410932940345226902470009053629015063581379786870856698449476008574856772051014668792682666126410231659608569830991986024399270616881280310885171700942642817613200981598182816929635221461752525123846466781881999257190778562016346500571552252315362306051923064026335286957368555333998737566233245188724384454279013191423883168844776543795996792641678216963925090512409759565983251243712405335347359009803263913113785961117823334212348191580092883357235194267703003311895859648982265185421520255805537888755120714807278446010731251790849593346461235167020544553904560161704770500956765351668910213688939940322430567991019212011956048281735775974934482497852192095738618338641779230982228929327664661639570137924652129131114754882906636663610750284046970609743339577468743435889283105551630764243239957580899049352923122730766869531236747794830303659728880614065768935425219907034470830849769856089061460093687648533502170527106193174120055975830201362380275186121559764860766900991054411709775340907369533916462438772307812134624867056955992072301512095730878897161479187362560018221624543607588228749251311965418763784224871422309913196969025454057724272220457831490206988799870100101595764939890290377414014109442967414873964390261846721092872498351231249485920112763446059007585145578115212295595536895287803063277819802571881375771667140091400090082620499403540532155747942851853354827288849278860134846785184013568387900955772238513700879744542879263224662522213949881554249792993511141395680057734874676943659576582943985651138409650632144502450619500619712116538858630926925263082921167836632244701399209127500895033766590034295314411326638625443036673582233036331037761766923919808807334301383496157896108076042511099270881118664654392450304253770581287531322484070525927763877562926033636052958999908608998673775586714675902406008707359149451779111632410336822395420302486948245665222429259098540572151458484559868353110060407193654013015010072358016871042781663925001639507516616501558497440270749802798766480899322490125086201567637954188043176985631197621952561024394218118616916581708824211579365533450686260909572850583957469484287333168577970853884231890622987512767537093512143126423182707685610309025716476280058953546798514821424871150954372592632602327382995668337041020293182142739844067780521726438980469475937210973127456384088287729288563303807128740004850183832908902924200616882757787976947009055357331819011367240818749422317788803440168370202784888369618138377874601201926595896294342819887084601041511627117851459061926897556263459514797110291331724858067152575800733268471877363873638431502485774228112084167399838336334692620095647643856747576455932847842481459590321056200116305918128660446942091646659965300755912350331966746932164463272960793992409148500521300215523820670445471930165454281248957714263296715780783297707751698511127650468885475836909739606700329137000622005742782216157601643875496474751798227380621411343710308229918902218233007657528927636195935725119479987103745287810361930000359080202430682686529827904862254809107150372836540666743685698226353149767278351133245884522889997783763057021667967440455758909968259992432985153281695718375382484248299991624991950953340143637252653423975492192521497043430594096890947084141044068055126103106262683063213004907426640262719604380056481324087797187537041766418250323237309846064878715022717744430629679336565993834626978627263638169530591191522087561581085980735433045500126842268833152169868431444457887502326832051150938924037203825298543843161767024335255886281326770110421562948162508013147700677407527102323180822636522632354528855085815904981102659002062380863619538890568064747691157674597675104335947329188058579466477398258942714710136972046945444023910020097030775305206560807803431262816513764758022376023274353192660642171709666896179714688670500435012253082167297991114747374887790309414586826665340469613049226905004591148063285100473942806409736147111977307591811298956059823126832555159461053099961356470548593079650822410903419407694324391338130671956199110629089677354337234287579248075563553548749002964524565718025238827651988164171634193713275028670222248988219582148988633080374072858866795586656515990776210092171509985526354930365201505915090053787548970560159443282857443352595606139974687406050424347308741298544013245391805011192547440363617008895562044458981791130264195902333454333132219286408199940438234961265470953877287935990532721786024495656250074936308494678044360605790923426204319981449634887476061596372539901088675134861765561336144292326561869473106950361891022274307137267200039324662650033755043255321797808752807457500710008904430158983902908089349059746060005352238659826789403473098124906212716347913298984834272680262648385954469984518351861771026305802047047905706778611629740459083466125008695759102417212584452993253789605456005876524649824444958568391055397762732590958220274217154457641049257071937538997123600252462598082406460706425143078239870345512953097288797008640853505824145819082572965667772059376687094486932878268636312076045112258947985901016245594987791366599839619555492437730273586764062045207738773912020396207611284025606515992209615007577379335494035476452094295786557255147870875284932961266045170455276789189743327469195704458276661168006943606278344599461205042342873539064862759566506501949664945632337526859738682691347403056498292912659713604993030534028014064984396866420670728356302365868227039647238890772933564794268440196487327527388058043783822595132671380375836143517771533042329058073047745074555263929138873641942144811016244462134354925237561426485035399450049607365717648098819455640593320454660201082333997050508132782338820335432669725685746598825051064835990289770092879794869517859674131116727423893606211158391151279901620475433446367778264567366308382183400402354728465214508646003650373884475172444300952158146243752967730108386091290551742147745942941865152815451698785669606072651861236514518130834823917663639138520495732165453599817526150444714902046682639380600288033826648845095756617241315162394343200155914999289522679219339535157924048954248480889039732272852097231032636069897479608548235518591254158831541074412812650773487558838149316660710768594352033280174612781059264079990080012530519353891216253841612648262970790751472202376277788319409964972434816645369368917645542740673605410089381076091025771589658001915085465226571921794868905282719163851716010232627781528950238801096148192183929560488709481073110888497442298778437214805129594558962717722794263129663086797695653079443929624910696008234025788203433429232173506204644124493246904154499653421838010689104004965407218176427380553874157379048541093042794278568750686573636930599174074739833936277122970568432284990353311636710516999822099602229794209033127812749656746273732409590307202652463119132049316865725630377844672785474877674325687376085466258447650730313401079435054445979077179823648337934764877766438488257956225525106382319207130207634396933201655086008311695714863467982386678208372135304711789124109556559311523951589001228869296832133403528123680210638097219833216341335263068819390291214220992675663232597654950985241928193882230861993026861212323745369601704884816033153397064301733790239867084837563618799763008085581934801494866879856538392669030424786847538551841305440528052399858406245731932005679611398613053374214796957427333948478246500364296390729911663914112749381327544990239500283862875828057083364349259252868436424547518643884795188492846580966773920466315435610978600232315620100176041568018189955301200648744014292803571952658446700143534319164548878744081963980416150294655751240177077939719251632850827972035328867394751012130214305352822730664941355660603106429527442204118382860216257076105965221041366856869365423298173860187345014885201012175221079174210208528779701952506259069790971827984218785379557224173781142723638487099215771988857677501044159067709207178565854018754338188224475841936855304408145785009112185028834381589583461791111972340638920601149762568484057779065199005060942761490300517306277081086541116063784664926881032947957610591341210307673011938999943270518898610420500170636971749543923365730197047584062171257301028315692677085100357936655564101467378644308573543088320154513280993314271283651833438719187653439004113395484023688769969716777471986912874390867987150033037842837634050681956447540119947678108022246428267988423677093297247176205001951532121738326862408004168364265999643047942222369169063696315036954411918187859264891876082912701930447638721110081274710282618090809570915454090878433020331124239160785816887069335536597197069414125805199161097114420425476836328230957278727296904474028661357159890534491723955676834725090643510493876519179994895221895145106599709759056538367142227637930124534256368057637454732151631410217510410869925813755599291275427365905993577466977738546045869495419377996087293178413980955809722521134241114185183109497143552399024659475386819296158218164414472558394005660008900857827790235399092164219786864991787949962739615251517253909702113808176265649448195641925965575024038124894304679638132699568465757173338330208215624501359466834634923942388927871495518374476028065140658934172198621821097068778982088065273992907849979900638208020157976308781763228895378522706926726708401141453327341400113470746224331071400494472161277148849877936582134644691740422775334988279515212792058076712110776715429933186684902020959405482869640456603250978498538936401996294334598362868284075063087103446912562632159350364609944104289154358089468631236275430255659490939448839449669869531070372126703457080521831876581272162579888472646900501062652745971981219498764370566508232593671894380470635580769484372109429977348739037824887215974500124247215393580162750023534591858984487197576239764229952366969819307481811611860614308335713828092704449444502044917434030430926257442533041906534970997635339265196817668323142696042179932435106687929786540763148285989275816771617273895648169081668471626558107420164961530580800442131581045489257720467168576201242422836427866676488894931172003248528334582143599263107760153710754565822811574754536793057677820576998490460058905580454566436380985738300359584886534711669108997303149534541306755604535733617659831311737442906378409096726386584955927696038637267590103113471160147250665391675103489817023443159754194025170894216104281410009428870691262210904770788196423871272984816745532943643688781922721655581093257770615938448849012500647993169606276987501478547893386654508976842435700047971107500769647156375422465585574156279501854275127138462044646500973054381038906198071926191348676271127001526664148495563649599728785180994234103432156818310928611060896625545364016118691623765885683391295086293006239983800249523165259289219331985472937391781358037751913956441683741008214358511519933579402496816402787327052801024289103000503560741035313633024024334107519885799378246114061026155803086510287512468309519493507800868804162236320372315627049823688603375564037604149576882947324928651502244228501319610716875902073077153475809707460793566217027453894618190434358987798389507679299920315006131914042139472646312961604474151978536067889416398062041695060456477658484696149176009933035895934081506230154840021666574992956664969097367433659834505539372167042642811494880497923964635031998455648375621829234781891607808025759156436434763739326789709973046474558084432184860076304058813634496156153893257497601279052106824872164395211714770334123733965648374343171710090742666171735037466518862064181501271859353282518195152439482984707345272915052889311793390153719083670382561230547029713649957155146266816408679105605245517914580292819309356187745326886246604538132909052657568950678389810505507390622236211669654092665580244006004304977556791703105679572587535555018137771021889150336834746799302422665734304393284014852676441316129888481159611613140660893994737464749695787477819052534919353869420782094747281205472971242550595946392803118612737758492512459222479794165150556485422016183938459782958545048822976540082882775557277276604858057492595383126643224714675387085672749539859890199882324174342883107753274828450484675301788277630985454010394751367491776385962717843617035526761276741302019701329921582785802469715549191427101663824982610774825609031311402193007799682001615349506389079891550930653683537930902578337190936354194553842603118429898129892580446149709091391818937307027382519820634484693499040052905613214267541074956503611388432096070036783870823696441709655168816794154264140547862108108436425401437970823747616182328132872114033550449523565746821926408720570475234392625122721261819535899568530151147335032238605281262960556326861582161843679328748529160072618544577064149370314628719848620045260476140158424788262797208929178358584233938169680090691760406370798458848302749629101462678336840511249683354331014949543887715837820483324932101510567295343122258605674990081737445246994352199134145865971936584910329311825365104557714529966743842669256562555884622760119810080908676896037325851069918249152240263161247928126099436555286050859475714546294908973699468093059304448871738494451599693024070255119978977174433683212610163721170431685371301809094700397699040830679621993963267104578883150112454517000917755878677266407740058063884236881246738994068607861803612314594202597367665904927499041043659471945876718108004234292564415529763347619082863581280546031491233489734273240336932936522315886737353223767619880004955819637956497654328924898780667299523704358115001418507617599661301045705062859729099502805267342414719768424633218074063183225759320332119408871459488164241606526110908620794364600737158921759771787780140086365683963007645173871810317028650541314542001290311981158029905986262417438376952420697729878016491242730224547478765916016710757292040061875254324154527043923334220890047109386767786523837069659359029326163672741286866286568241788238717159719380261522743929677509011401465251865342471255449278130837594313343360460220468651942395003104979116176480085529970930415922548023246014523535181533354500035074089874490070657703311408125722542009445170390553734895669374488420349498717113285190913454340628055274917872581172827486049860881707618140723439496929375418603156605372878216504150528066323073924980596352192969299272956735596246511764950649606596470595594752699230067623842121166937321140564758663942949734684201376066185705696726572023012228848974307839720400654788910205010777014565155949224070242905333844137324507556793962624393441583830875581426155801808720950644375070436834677621515108331421351670481245896003520177508574488118570898887429800052121306097857180701092923190656772169406453382502652597589150424540566038504172249348486496921066886723412707288144114789414352294959595727670043907807007938125158669264080171007950197866199866746562614044383543126204366534731854146420595691862794037592366557479237322882762447301434886831313216466086525780260332225475164353046094103817681195977241286915333078459431395948044330932552947225019692813808322722643410445904454273953535639905066531804412519831062062582072165265154910117268645631651865707777495795217783344987179569927475260540011697509075593016124103843419886673095147956241043060690828863192220580103839252244361220974658278199959112356302767147000914397862853115411384240748013756427730479323234221451057693556666001154200902737935448017395111296824742217539416691815150919085074701915385546984171297611945790449566205915377626216448408408807609304004058440230496836644376236931317420687380020059523410637833861851835280162981215367996032778938012391568338535958767198863277422220741333369032551890992223379878353620961234926247316456151632849757499860631706829258191901170778421164953971103247008631345867320011313150241552072658079029243207758554026741960174673577950211161065787121153293111619223780979506474054409467343019400245737356357954970651252827180880277129387721151213996938144497586311835951741551792444727554684845577879429263307414673118433093565287121329778398826445629886534341152133295105812951408053635241916157678930892841955050804397249031938994819336267391065807509106403470236477548149946051381085968768469817590052208447755833402241378611498055512444899733237366376388454782507804766323038225570250508419983692268138733951132191121096921988315565533031060197016823790976855032199157793791907672550104851577710475669523405679343238144250809162186569673448699797355081492298739412010491582081567024878366977357968322011481172237571262635523617789042714189693403150105882889340783101459201505254311316133973549606877978467108175209121747692070230939663607796483843113736307944490829953718139950777751243726884959026494283836637713201478487259420858479948766492390056409596661429035141591111971229718601638162553810819221760471679679902516519404012214790616296753543654136684910979692250073032468398539519458817091375967632495587924050686952462033825899629032776709515951621445790959338712342102395024856347733554604392535964230238561279612153763653168244566491577669535866020886695188462968601242245268751468712350495696131381800493800928886672656192116350308969539298232642771010727175296278792857831593854404064076186955724687198295273838511631987637261088506874284905656118571721138809739313362140569864697208470111886340026770005227385625007879702435041404913225822138821346381218048569077841433338959003240743664150530132292117592806337409745488872963576195382127241358010876918394068102493592845360409002439572094332082684620402908548364768684787576459130701302630118092271807311880877981543251699827015852144980894326382989945388726864592505361139331707263720552755249211457840142534032040715825732330913481645071040319957852173740156440442908216223434729487444900563215617689687733912024218000995344715271886443242574008280760433976001294995658725450346380502274434855708123823136050576961151281137211455438096570454900951817176462660663145721492180591352830696294745050692472992441769253728258184724152809012504813710978175148554197926003470227495925161109726900579979707338003424278203452690759522843098992894961996113208938149717107262243706509673722795909804815268752180974323005478509509302581780318697723342001433439830829310867244707558220206563815619362479261730357832691182118087570739593204063860914073873447896913996676530384376565457736626594990621631110741069973745615922518368418947091916128652883113455440536375942812347899254591242134534219715985301656372437654490116468967902381950248342893927493089154970807265471062501608342911727852709135366027578538669811710645056610396474025689977692674017665246138459677686400605743387264007291455201203284892237424558118121653542607343620619833575860002720977045669117042277348636024315491111006609998785632613815147365184228363517092640157114058646062379285356672647336002243606647881104186598300830775118675585945730172148696234619621894158247095033240805672690153635965798296719094829528871827026652018056638550812557971749597490720257622625994926574087262304203601847276903694048300617054098133060940609437301638993521880331193022339195032912632156198497671148368821245910997838423687351601569285497465812081214612281682418018822235633871239427188339580275229518953137530198263977382278045180616733135773383841916027882929902433056762660505088314036859683014160096617080677940379206269791342786764011499258073413872355560634611189307074294494676843595712540073652751731526699588016492784929438192474123229089749089232824640096639973696622973744321474123533519423129690029657275322108167330348482532015523502361885389442450410967416818404516016042804274694725758149588731643162606544914736670305553712071427629540762705931839034447642503683652524105793451305015852170959052976249149738120592717027536455802938688937099876648259363063652747302397061618153392766527647885978101985042584898175359696542266862054792387819519806632351193677009465032535427481919352128674345568567470374240594152058813479670313925943766131064370726006491087455508788012820260492319107694155900914460130032806346697774018616208618404402112721322250287393905532251217469163067939862701618219297712167103821246405902733718913010325013959302874474627822628216953987915641490418331200746905896542704539264975796921350236528235413831753772873377565159528685638474337734771686553606942307801835734034226040972319234325436835241274609314696642082543300863313586147707004609228519988072771082203157171598132690692680694172250241641232511309777836264217326017590193588836739735335652668605929938652963833222308705341822127941464517649586011853038779148493093895144452929281883035125097384471947316487798191867767286928147876745536013658826686599258634507702170142654390740557082061881136755347349155350630167795460392373087105003430243726691127104616273003149946306535134904708005447767627310968961374722805003093439931042015838824262583872508168841478936655366562251869013463486911970656430552799538990393629802941174936246364535454006351866704710366313572681243602310268030611935198890147897839105049068976990217340736406111041694707709152695544522365318755612898041607395942864902620304536955705008521148819037061562337795023623668486755843606160165675674689367601236336517539723239516978080012477543472668218990949581956081678137991698550825648220846088910506674986970670226316737803931909899189582736263864355688604695038859489698007365486157758227791971042602178221294621180582151660647573927333702790926584054735170177791926988959413198047484944110456934809648498221587524104671886705316812030900538432324678342361389618731133894330596328074383639381939989205009006852548618912256891214024315110855807028875351861618582601537361476250035467807605436748584051402703029183251299173005167307301714965491966978402008583113336364571480932568461217982944493132383197924745979774973796200293098920185457001654974958911642821834541376174759499007540421707414305326591510185880809864668793709830904479991663161784405699102425889353626463924795253812679675575532452582753276378225103716143190658816053206624244107508340519171710866401156298097649210488842105143575064019105234213935223787369841272326334190340525722770404208263398541436089123092787830634621379732679222506924317056141721761590802874721104502737080005073893420628632103034174985362281449107791521818768658838645929081711251446255471734890218139206696052754118801279199495872132324175155449120968136157716740639550574971081038615233354003755598291096461669538961553100051095482053173287730858384787727192022564749127919470253815610078058141033240394959770077639005185192121878353680932726900814414726588773441544574938163108346688092766388503121709921038644792882639454777893662147741430673916600803564620588734140266000296913946213355361301903073690027407346305495852665305803286562505234829251966669845325051393690054155206174421329157289838734884081667372770132664172987933914421200032115487384146247287989375730733097395516630864522181638513475015444758403783359345038677910261679381725856485212504564503354827722355106751790575878555707917992549864853674422930339628315652866629323595633938509437279406452205979879668522298537399820626531026026718927141527431382281105931288228691260788003453314910862806790702978348019543189944519519833760697780430706327795212878954954780143958330733675799240291073649405983104858206032329260396871933896948648673809232585129164851953053642582897728188425933709794097492081511867264705449096244677751021948740245290129462586695155027709125939600249334540961697782566273317435303664789867342791983455035130035362537189012339076974240973716882093556991454782167340373561981281292360125537497490302855699111753647633001270063556921404704538305745245931416070320617522071490647809222137638121427990380832768816599005386725624226309734865207519498376380963351770861100806759641749176074762099191496952971608850195021396817217657265323391722330161558401492115616964921081898706010971228936188441101533340207920243368196962296747448189909420820781528690963903599771152579007099029972644480784463314694882943487401246120394847524915910247411438215186429096510667881730217589583901493428886240372505265715793335668161125664256137386948224723078487574545418663705491283222555743353635661790416138104689486081264039396442282372666012844312564074630882705574470955353266319233146560519050439773406655072320163856126935684199283759089041811297694563781932065620525350276841583073683051140649009955574025368846860946129376710367476148646125606090893236924044724153667864978778857999629335506942936650650639365641622620253912887612015051309014020343343552487796023503834443546983963216729974841261432129029276520909773569079772577507950868076196339749402258064542539948190057026513744188719347432662845510950007421055564768280413683659063259628280965084078292741589566722229271444168036615864862785544827588161313640607803964362665849690693612391858749658817142540334103745306238161843108238021573991271568191606559629121876914295898244504851954445302298811125355483532723486572100403208607577107656824105655842986295118814461968802463813129722665697835920547712456010492843197798267999450555392703574431551643373616195399636309546275395710323082544347002306659232543541722559251747335897045725489702577695815044060124905851088187412044233391502211026455588961337807133783706116883826953788174597716565079532515089520441822302567179464732493400899236283350090182101776855858001306239932324871759296007772788315575616413307153491974435096806948259624785332473328331490320109266901946667387276276253657308362610666675781979502480000836504328070013101209673374715780632251707260277645892008533535194094348261923705940977258476872632800922814215087554532370110397644795438765467296100689390797117625808475400032349605803980016327755750483437294672536561030642019188932660005795716755851923239011272291728007089701886075039120596540715956999793492143758324769134684282470027662585604865286734098320091411998409554827645182370916860821549259517730883832511287211283344606986069718082058453548602766479893983368433254097910119493459215383756090919384618559127280603048745014342640882944391842777774389615047503144157600361988973710270708293680549970562992174258157975592757571289768666992426384033683943419750887897227452744767521730346438077307551415548938212448646230468864711656533633256432600693086698879051035737788395371054802997510071505875981785720454657345037782946070967134055994254225349342392497699093016689112517237486457607466828741127090179744837902758159659425334579456119806477041106052970126764439486690506395825634118516017329569060148700082169281044426235419394180429741519141821847023802436459897658697408364857479443810118521954925670077338613735919922839084207054953242869462192812046155004020454210259059443361889779081295118615736663754510306781276208427988977354929856554687150792686398694420087887217496343743673736701543920323716660437564203493665465724562239803472123616110886488858963394331835943991490367793333975074956658085782207278352294936247233744189744255295191992743145686024397116766896668201049710387908591242208877632836483782698053420394290202804028627426518083991783405076062809909178055820110730342026443309791919811829530840683652692591130612110516203554301502621830373768058051949934806984048975940214153861723513739882824474987281503435580332998842910745298847886706838811816918020098233514447904692202088545002340239901086257242316042600706440340708520788660014006183139344723790208671582885329559197457441121700538002471508719914776937613146224959286944656725424093924406293143345818082126771860613282296714659225592266288498497727157912422971784323234784821054326693433836731565930687608549926451103896692382676355259155907214195067728131977736810006684227197407848146541479464741222418992693836165880575326119815339319038045133644290080931847148562512422514124023791756848527442954377999592444507761084035806714173873800800224178728957646983427761316210415808584675842215133495290357012344741356912890857196926357481970574636480395218091994020487327641865592365344609863915614687160775774306276590043057953858574515192811055420507040861026694976506141836180863551161070643290988480879820351773654993241876705813440117905895219652281566764382855168570012688657517900097743587158706471167394249221839708881536198451706076593071846694293039105475380532319953353953611250427771762249562585193668193938517446983467766531343747308308478028178207106441986899551585668303958247131914252800915183046509809637623618778853826101196973855670945372364966042627186027526131800221281211773162495563434827213511492001053365867306935671329280466385423430941186793337949358495311287993788236287083986710769476686324545223822355743853769127322127379664305096224986633309550503074101369549482025994422197452272980770712999959064828059993167252669564520784920917286888656537142769652711426603416350163062873925712550482135451734693566281134643153245201385365006359208400965893155765172768363618199850108183347711011433673452144685137631818118703544516050815542121948183832469521207824567399519463119692454623664886308588290030297757116159174184649951568651847068792732593146670047424482807291254848709955367622436381294793260686608549796197177245578804154037207259602883675955283056047565931682545278771723312334057357362163309433346548489066392905553600229916098509358204987449952452540342161490952012884617932809685386412623831944205191449032183006905637049590219187541676576710121940588876666219419632276650586372149898575142906401682265798974392501540830978986326304801026405801657094961517525955864850546466018344696810278907745672914261870356573828103278124409954307184410453922626326043270577707873775300448460694992175274156699691941739001420672489220916575562488777828955505859907265323193087528316358202635229304716666375935617888813062476611898852928346824425596799019186207020622026456356160168586370907449430814221616893552863878164948831363576577785410936420915228223306327197721265472487959971900994637396960632388574141991558446013979346452210535167458968917578673202773188524772463401221427952659283636839895990635196750635776478298304169781507626591472835925281824993230550625758030946297886600772548304731844993290901619998439003981180624772977279432089711092766062214180618569566695263097390936000820401254684185696976561478153304623358430289242593578474176120197961907547904214502386389141131124009968752524685565612863977058161175532964581054897505651404270599054512220742732400372158251531783796227346482675135690446236078968091941082096701078520681162430096279654498027138859205040352868924702598189932372242050191221200827794208308883053760682298617501269832698832419540021052085713085784056313049247893212244997415297951571338158845408110070784759862383048793263017236650046654053396956998197554799032894179347234978029425015391178164057503740852967459551380465450698714477108384390031484822933354494976012232081072421811810135243483748990976249737121325157758663543329393665506650054147371621521461226101151955258730865209888966956887974598507742960428881253224393828436476993698248652841509182069011580940187797397869152672222928825928051397288337307688861058817897656093381611213133642830195213380273203886204599194062076762141276523237847749685370599029024993313734286149823209693464212676433562728743541988261212850641673429799826104936202288443658652437703602819766883340627187651246763107229270285432572152709379848779351391635160129416059342844076124666345884975496318206329813124743807943806522878467708710784651574048365681302367697825564928915205255983216009724814351571248207856149785605321478149112708828397093466017525019988689872721563558672606596658782111348455896359013836550316577608394765025191688189433422031190944628397273847958167822810827830246312950571383350800501395452951198652766346586102438035622489576593421420687643872936897151586764977800707205417633449158743523690257475345187035421055802756130797125625568056234851091051515776319026094707329091635962527251105455584778383630446360903511849816325109125150475917869133122382268851750135795163706361358434208494659643848397268161827788696476458347914624150217693567976788443439459248968732137939933972167033737198807488912102822128595384528007613476946025207361571494353788757772279110020905783199102370812874834955050801967726276316317857761168589291188056677924810208557086212428382968330873635782341243765542113272577397556708276911027403053839924749398551542024748221833688249678932606623013424611052180399921518162335559802119628405670655924471874248202141306534894847091860674355618838762509371111641940911168603270365356328094239851727936015660712320840419087599737411992810257547693875603856390165858431268733456944350110406887134429940475744918837996500543479590924330490401192684893274026631055340323283356134041887744214899653239104525108330193031769292993552910527710911831057763246548163624797869651038280807582983079326509086277285874035981107263082627211642949390261494379126837867611480061525964644522472054989612142137433313963893397310951635759065921686644410202265964802641197192016879642480423045045976789919470768582834401469142768219944322548923298703863375242909716972432736249815327408946935187938582777242704239668280282452135691582407726852269078846213534219749867312131233276050590297827098710173154580125037713032950998267616979463573759420597998309061602326454045959470664438869085776443537135375622808551589987276757971058887609632174662354889186492275462791589385831560626173721729777610205657375666311846563397589745441500707276934883303098305317346870210988846879990787276587835024982569911277613842911169617972386827572642647067450882840575538280164353443017177952880421355307841503522680138205100709295167540967990015471480104497137490965091713864280691699575025581196992239936830858045290206878478333380429416114133711071930754769261852278934632910698208425821460487379289261233414368494355131283350390474038621015528251404250598043635762188366385793166891238823314467831494505423493096625164963847573162962351722619362092528543692863935398955704453438319581185166233250979138619323718486821589750470712793173185052574725039163875373758941161387141352317501360124514919346159313900418708781045833983422766568689274127771899120812250626006344202170372698891614219658483892194739006082417236578098823941947423873505498762449741828696878687080986013493409401111092900143205972155906631123693492829644451694437335752610649019936294458951295934232601169261178806166127667495254304592573642053375426057749240802802005123968768578191582277074593887433706989218658194493668561735102735163837728882233785539176611781183665466974313402703638804430156621797801037218162653576331733203646001001244672226902404138374177179922242104628690276927476889344906910353493186678521309615161735907510356337646615399778336394993059126599415203406519078373955806503770436411619002141802146879316016219300130471150094274654985814960806096267723346770446084197583888795055160235859110232374950003143435893767796362820356957665311026312716818211749292385996922834276776699811588102895131788556123595941265966907861711026401068624003697079541882456282363018748514608301798829705157173386524616420741160287703263653014359183315460462567403301346981473279202065848775357416768594881952448387692565094080081962979101680656190699408437855550014914281009233599052094047659500897890479031138238347882096349529360647042818379833397899837376664223644437129157716116931786420027081783463594766164378540210419240073563556330558352733230444596670911324230142342198732931750423930887410184317294784413925986194625148358196120545540194137663423796863112827152489984570415667290156196417276487020592063038192883168971878764449174653183288176493887448126840536049337710404105358014803385644933221208106577034044298855738555008493745175075680815726348868075420450521691953913251802015952682027752549531348056899506185046113511810019249658521637252222732026929103508024414003883806713149395259867536307013791183074338167799043782276762393249815051944526424126910378024793381546945811141820081991424604104272386836734777853328857463463672403501910277477966690586267014020595472853458206101729794320543367494219275124751854137039063281465387135743149172780043994873953632701958223209407109056617197628864539364002350011714383011031417697463010967573090278940611699437606369263969841389675608109554962656442486921536021405587653566905215036143537983214121307906514402631188958478142127837496823829719574664784798045965958258293725460520366254524958005309108842469726291947423864626099073977123502394170809178778353101426207004206655860279462162665104985614001846879991103470974099828285459150836239626996554235690172939602354070319260427508797911986442154557278423337209703070291958740671315109900088044084745421966953443202257020609462408330557678153880968657536853639487642348406478085730615399136911470834760347687455608403862124346014163548829551953542933493484013763960422132274445223987477047013247037473431022448989898897576374054553198444919831738598778743339943181122078584895919903320246855533682450924670557787191434057404031126344530649528859407173053424806981506515626718054614028376047678006210307001836689145152274899937579521351411175050034662917210309784042876309500788199362205408528095594449120173085179973831038596808840917857350026885419257544200056541770653220202956387974226411035047292487703400798088637126962628618779901073575791590234139906440848309358987122076066900788665717018645509587809880183004825477716575971294165663851568587180621012387797833432525038782985695841702393404250226201075225687680528631331624183541247903318486668977544646834550864954688142387600932902476302722770005333065108521205099541068864463741236831163089046422663324697001160975168221857889063258627953927716983863104089952299806858286400736399895008067694109459061846002206882970768106651835254944143561664569391005011072388146176740355688068732250327093572209601680720510583339873661982643006438431853159042573526778422335647813639001401822750689082488366268547513366506077422903630471187620485196911936685844290635794602251021438236168604645325677762511531941255556211003874958137881068760528530815466603727916317547837246504140695044627899017550686472398149698514134832906157501098438771351721214253969684631277905770923026957826195226082844004232223117321868660819693102808753725690398298595089373529059092945700415783535891558793696513363023618002609850942048239517951813483778109766336164184730369029714961339199700098681609333216899323533469819714941553159977340013586228690553483317119059750405536820981600961479642372454293034388734454949811174613109023850966517335466639395896864703729642760288926090249286175782482795127619291111110462741989202912894551450625601015318343093768613586727660536961033262892328237474825429597764166002261957638858375110339800677092986197913779339132258104811547183295261777775677883035168029203816173725863599393868340382751344754548423903492619503562328347536706456540290764490174567884338167863934632216218708070404509795362572955731042516512093320502227182269574393596756570776118293736732022787215955837046904918183911744155540815686005003591804340159283096690221981960625416424897199613450597126842602269710707596732644510065014013518862084028927712346159883184217644293971394905563267651740780198596820339926524935438124428610346849829773080700144709890485185255893053548116234400217234842652670343276151613219542004331177902805622643148174790133838964262932506313132385589373192408828072727415070782956246219192720684526328126912704872802274088068817558519461998446122258016553812978974682142874440102858874142701693461244055909625551364518290217896584313554006716797611609058431443790288904862383511675823403583203793878568474890359536011668979640550493315634126668093709070573786400063811022350531255751669587253351140649280191724351312896163588383230606441825190660347579040289592036116990857097912651255949190580653432889027171036092957703257344024017226389358452703794659166878026213774506447287664329510258772938778468797560013612787444124820092759387055298815297320314602680575152984011674731025814898726214684483120832796867369549730266236524289079336929145968150547182370003010584876084486765269693623379683048803390868337512149566028503979082144332077461529789878550800551422575212233687358743150705303841210944922300357308778465610038599830685613064254675501224382887241539876615419465458885157933925148072296833460058258719724823219559008896085327764924879253163356999786628502829411099193641319889647602005915403304966863973435457205545378746451295539724364062332094788098287750931426922837766264321654687127055497635231275763458720386556227429477957019266438817821727599503968928529364891021311256065474306537694425711082853193251785441132977446977745061217000430544478736938584037327494685015551405659395099463028419461115282244801312473485364049319025802670619914642322023229771672111387346292334098445464725675599657317783641435089365973843172745762332140471630171153468414877186420550116516498024110587605122560136783399640506489010752596434744590310960838967676225204960738074512123203649343777886420781778669484393240863922649959322887827439975394769036905067631732495584256491692598973365443669470457024403768963923430869991372730289574529354473266205241547551970984275767503600934774840785389425169733221888058705616314044752849338958692362630233335801395957932735267873755380111736864420645268593988653716552655992269400106088444613527421385978433977414713245881401081191592472661469168346964055567170179630275051471633797004673107541194166696645361869833157147486967519830569540092821563778361921053941319448184071527380581579233641125584112466934079180471536721653824070185787043707767248725274394337542867319809509889642881718008813467038591680142449763369758702727716166150470650526188766064517212969935411169437082853935671989273907590170693234126016800886968667331877718885983384069817800807099897558755223873173162753141366904312230096666785243544822388317845790200883638308510254117108867393515065772290755536974168944427635455659120784249615525543757412451520655595742430360653439054017089709454695389856785521802217038192059551235885222643705854281701998801296490504849433339556366716494277683486428569213490344481865040631027721156987159621939795422002636224036833099899474844996034173886564578914557861527081981781237275756584318830796716023512694451927983107057845325253506712959482137458444008563934734726951018010515181073533358493178245286434923884387574222009485874799841976174191198255960735958942193877215439042042575313489572125403626228044861136937611347203719519318078299869152016855672062731155810688881263424655382478266781383992005670982713635298109916354962970155763410750170144772807404729587800510843079401716724752594688439723937161317230170859930992565811264556981254037699318720889275833650987049966163393671876671759520788513141529394396647269623181051468386634893500221124711512152852325109507632940455324940037734815484108720435055920617413870919595914864906450551666368878774928335474900305962321258146062701311382814990336395890488774075626272246430561866894434684478095682370318208377577180956476480420783572933110557605767832243408672581128641773368093760349666566490120967165975776587227223409436258212966607202403033458694238516528680021982375415839868985449122676911779958766507878852226701179984719398175461031927050960645878402292995274125008122697079338638767781796369854276499883682994562176451690252888405106517470707599926748181063879529501954147861480144566162882094500016229981547152993997585636077140394900102930491531404197696794299636559891900979564908896033195845718795680791188242095896304660732272547735889215769430517077646322055228956961450658989454436003822961049204441561969419121513259953482501706137040540839935855038183779562660943831409503090004599271778938450926501869771735049471997040697858701316539368069254556884344151138444764380301965753427484916697013934806610335113008630805885250852835295172708034338743736616651318986467665048307643630788321488803124033583517552158766193458809339471677953144046619648522208034154639767532682928129056267186807888736102642645678063926583453583639585452910918529176211407088634621838584552928456254150957618120718377593754960003356941154257391362586280011189670879205422310740681112788392935794876183342952532993508523794751000288596873293800863728904027201110701146451997165154374075150061478227756354147373432773142758520139377865318839177217175786659266969488586238930114939813618951693274110126532413419231396319922602329529679656652213125020706556045705082812150616714967096502642368191917467063143466856563714278252088616249966621443964926149070676547784159364068523661006619582477065083949395956299519932461285541634361132274613490677977859844948482405864476410854418203863387542820800201859387867954774836654846023816257594603087137411342392182918499362154331220992313760198125550494820938410633424611271852440754173037918319463780617830380611197671566412783597686539171639655025259828423535202529752257309696991704147854343177903632007705976728278361264759767722486581960441777975561353409234526838334853615134724428924830344125310498425115127364971622470872010644640649453902565456518452790274590061376035991595905241571115144724303941370587955938263532450228842898298350149205516255260040443089825631117598468592753927518378468705850137562838767924433999013774701872103716182999091168310223181383519458708455878740652869675592135520481461680441811530314330276037251941992555980858078507005670910000444327013251927529864530745078782291309527577876358166570631580593985989648715200526013161931179770602664169304771397524905645053457911627222522697773272508363101589314441167863551010458334485540618836710115355706234367962034478240824351865619538822719643389945048324572895065598970375438911992470155129335478578007900418972496092272106876189805463376529159214369921404748716115785119483494564278786817970599393611056048551274848848369936748619268521946611505975841729100671301135477699648066071954631957407327328587430780971920384893137075674940295363548676191927400703312921048428330955533208872365660454076044111750031904400621844117860365005314425420837355545991511900057194076755660848273411989173175571983377533780041474066239693204521384719143192918316617723355872585568877820980032452434481626687606692328176094917758608515368977934530276812451942703940850862546886442244240517878563708568522182725427407413924914271773443861564575016086230777687280787810276688137413900776394198644197367932788963828285431502627088950208431789288871894957554056186354172712923470773166411490634454366340914254622758885690639733545130922922549157833321915682932481144059966733722974371866649328427666590021596486061889856819665751315283449509229904192055141526221304455785914198994142102783213554177884033420655048171939961291965220095489843132302660442872329000728587810798020682080364402034446759163067553296457933295143599302523644169305932199441417788921991077081152959736220919920364036944976925657779992475757907989437510469056298438566656389647440389298274852666238140472383935105019993302426829357648219176530934325757743530599850023737542540601241952328577282306288246001734768278881324458315015853099179727230680960556637367356308074772187775572583831912729206476411935800681427324927948174406722405262208150434506299194842516328474272043346808357074771010658562134142364891811550892711777049728717818249830849348965465487263433525597933298926881885348773697809150464393926782518652395466034723903953821612160712594655226470568392380103539118334917847553666286433873146933813718835555882945959802215235473748736607715946675557747452284844429147334311382532723143069326553379798490514878042566251246603290532720747675314852857990866519489271058662056450290251580543745572076663126586756703234100013971411510672432481639603737832347249439274729275244139239525184198835337480468687827721562734031658725656033931256654646263223351612336566536317258772485200473557237015334001477702864357496754998932157878067838852800202290679191837198987835330626485284061729779923000105370194246001357392599241111642257042073711057550253743979626645739516664033056309362517905389524843952811104983810207324462731100797934822993345945103687820337102525847057714691007827636994300068233469498001171962731487069958835395681228299090110889492860665005525951730879926745308839942291906810842628372494186449609009594533657593682400994566004571645602452426345884312200203637524259802714180117758375184356083918815992757819153507806832120958344629631381849995394395464731128926016253311182503559528820210016581613847632474582790879248045385769107775020954713757516929473269751078984367857137948754337200809173135474993435786389336834104386429531497947684384327884963045136965337688351978528949339606677952446476255831671226702461233537197780966567517086067396271892336672262219723827056958160769394179180607733643922688214423768722375481574158001060722831493849743387367337385163717120647999006251037958025639442667186621770232885880087303311021838719903958870931310752303293247297383151392617108929769263899243295822813807027923802303281087371880843668694232353482194806176945579062914932574965157249117107709694917268979626198086409729799198967635947106158290750803829319729804960480060914451393887429528655129875217208327081330085543230709288296759356552659409121880851035148474454849361402799275630365202692130275662743750399314572675718240449775456762313548096513670363236546092426858070527079793986682525395438162852768551776962357101089872016754843047779351797210563975312271853968298053644770426785549444397608542532752556548818919787185501733867280585267022208868131201970956185372112342588212100877156338108715019067629615351867072383410083170001989102854797313695000300494831079457199662508238156255474326346890169843485664953549744982357401351293119719100065145838242156528594802135962078994147953690895720689944832595544187803004820189085164814470357157130204298066530859890818826094215598415651206850926925488954614500259376624620945680866999439126443106946683488535451096680580475705654526256106118958007731309647355056816700667019745506201031840297826298762677502602202037281557120046291860105974386095493690662151196318736235194748175707620040657890973303027215648569809023156340363333359252105863690678857327329473461043649913386931915336559276790807697697628032799393268746813886461916406713092551098542887248013598459452376393296945231539460605471870847759801157973376472640399041040116729899101105166163536839483227282880078117575983515403663195841475154117057007344374873347597851745522471924418858163381542752539536241825983923290315986593536399250419205658230580121531637543632584302387221566144719027309633982905824697549815187812754408255404197620097887541266395828546760666001384565143993135372717770857054851992048491837193315111258517270548890654868893402054747359229858567989982086909609934069435269080290200259755137061857144647860791673688618016992402717070025309286917904522096352330948957913022370875685543434401679656597006008725886665302948865064204991939210573729372621923061437291321571527578058382086324345517743139919402770297784251705605977680119398162099026103295510618073754048338320063448145025768277054134402864181797949747362381782233102217925056371261049602632441623743669619250423443920509692860043566873842185899853988811735853905472916784506127172861327066104287890332451754603287535716679600080644050945807714079576278096705147401270219198587043438336728328680120421780774534442518287892151289248153074678867906232865752145622694553466629309649574509119499930865419949674911829971949441846886617542636040719308107497015096615216099370151562252521640301147952440533706688133108023721111749596267987752258727490393195155926944890847901658142757387737474625800907878592089567272884436764102125025353939270237188291918189079693914178334366269335527112270811240005278609024864217842122666407139159937529816193028038226374724862906645760410486582149009191948400446182481901379614548365723517469844700900047266205979105728075187579085864212790460706402469078255668589351240475283507791126494688168298983992143349730896571284947792970024648916508879838770017643454112919020066405402972043024840540451452986546453114606598103958093407116650300689293219024085219985319119997005926503591082872367750914831521641771438945073023889977243218098173555884723443086173858331876764541295881449733211436150322908433117694690770320732982700382961158771210421541067577692863270576007142503030063875150005094206759127363463303368352968653570479297135675084185577279132192084536477068329620888363051330304955280153657208302993622418481016294824964379505056111958298130630833128065913457514438740054887312807765854131540939236779583162406454250788588536460670175213128961400085969398134295389965379742658196003905849240481316195941406606278103216130924283818705230007869796187110738607017656248703853585305140198795046446414164741235403872026339461972273283670267957300359029228014448490052140451654697714363040582917367128139921233500207966495650065830216117786374697297330182598989107037956434207334103627920440819730350129860143069429533638884459342350082455012187646170988619148472509730572677650865832217414162071086988884465641625269445227974083923482245648348484111655776842619723053425729044880274048290286786211758635873630158905665003203084446653120565145461829725295583123885095935055787359099806287733991382091212643966328484110951482428747297864135944742205120904848940619823343508999360663087474475015365387382395882282405534103344636790145896416374144889136954219297331968630321999009099441034357851239965293612058955152259322765764036006239676546665076079880578080424389163124637681694619557293183080854730667213719234064048852845913228995098228049907458596497193377538138224774709035132829977233211355288783345499246458266372628257478074836062292406915780241838138987170760350753500349855785841355629494451273766736243369069559976856008499698079827281103192490066540880561093134682068935521669779567073307600166103915326130292905965320439686691473681162122679132305839338436725404986474164699881723159443149623449574754885357965833137326662111266276330135632890036467081308736232139455467388457433856689992474432485793515999965391552123786932951601098460230571909131296605895115051981463663603133814354575505624673883323026606658718993534125824502995831009688316359737641813213125842584040987597458180777530656538026083246313886685881740362095385255634989246707819569892676588415804184845620269527901696051259109315499160717147476025733229869943048765385247734443017277294471939970039292089670353913443709159078340022317805836687055337815789604919250306171886085864614606291733743212791293960991076832867963423288114312755560839075650324979210950253507339470902206887351069807191760961461236402161083807543851443421627745396686667829019621202970757700948694418101144245605142126163257989091968330362424069170639946484589423291804345167708346158212922639677765578418615517288964593642861106165671262165277943297152821759907728444009288064650441541788938664228098511560383298744948894067888241079493196609578551606863928599574871869800524114159090428607316854685346542679081287790317444855431507159422102940144442016081203265325798268355237560954211323659329534460337021481187756220321874577821492789856525046086726856036417888668229473129537508481605035665171625371354253635885526359034095402120352240451205812374744848826642950799591462735608776634965907429173163287576851855283180078076372260011054942467645683367152499825849065592943176467849523390615742056045682543437668371932094337029766657451748059642871096333962936840932914877473296796161152971282415686418993903991512140173795972745273567033894093991696805576353243802156273078490581513775556586236886583912670510329864352578621614871586901471436732367407967494246882322728166021354632241636743586360461886106620437998860850408359599516495691539267219930993052288713204363582107344194809694635623689835557467043182861062431579046990562244817240956661959341134237189002683851702487633167594709464171670071933833346544809591657874481554376773164336625008828207407368940923300446491095629861717824624117692153187712004512315198341494155210144353292731584360348062629772400943367713272660194240259863397024213769299236308176575674573457248116183380695075079499121555726637346114212535732794411899573413318504469672346598882152130138133041755104708747681343275525515633799545003629184847379090554340134996380358790399609337390350858234308368088113618513791880458189688319735335583044111187656372483915915289256438777949900257235605876789030487629564809229522233609557951741539840488117374998776204218406959871770255991392347789040353972173547890744139721500564147849153863992529118784025972325646001662330286244931763581859699962701787579590013373225909748524130703828205631814697676690440485457565255782214672693078268401784010841171333993368724430204341784109544769150253353961177624938222057179930055060568874306633164927773026442243394744047437891408946393819193652908657403694105814832245905936614673070794615716009261903102291430056732253533720196166957013024682094302122670383280530123204968891964030702056405902082376169897657760109851972599740117236379681845719190491424984142329746598957705957058931340503669268104301602281553447195801110979974757356592294617244840149755833993315701246602603375226373905123876156710150367350805947254131291149055965560164277557964112761528000133209974932183963792002938887149567489715720238946683240180517287037457053402101350339907679377820488159032733497554332496993617129287279117874371234900369096909950166449224470004056146864532526903703667247378355211646098851260835067200737164388866444080372064063350349454041850707008539724788985769105169977650171132073290933340571618483018495795876079088146701000048659012869237962230001652836494087638551859780059878456066191171046012777049284725813347476352814019103846495117043856618205947826232726889969215972863519238010083922346721120014878015052698061587334943772447941746818790580676104728994158381136122411131507452020481055371879160286442330153884673218389251409742121454602374949465514387204440038189800908988598973831570290152852700963344350248124956561755585099281748481495901912259093195172300746291253143441529120705878622832504115479752311221248316350606670547536311420489421673061617239638231463444135574847679330773756433580089769722214988764390073665233327073420262539484291743798945321597069250951952510181250563513100899517692164901646091509782776798515189888110518929867792556288738236749240655104411572224353874836140231372329358314533697525748755751448224840350779454518661811570041636790455928726491204054702568218969966482655939408004175115793884951974443636324911638820934664387817567892488904216616615650545941367845968528608564907802838606590128913222035844102499447673039104305617212234608641509689463472448338321206352924524633551966580384176651545929085770275019866430451506819422245867411681665963114759662313136722862846754696678294546592532794634812598747526788057232901816354361128884466755584412609493081765907373184722459327895707813898635358366119649296355017280370812411620040561513746420359411725604967023258746295101481037445387913072795098272131308033592137090938392624470580088738410646661291440079527018172030989027115462423226225633914410872389957319088624459708303516179919529372046000428325196694531617438974357927705986135342854661376362234165178415643916543715074789044741524456650690758410741227442966920584304084434007773813500547768915852410382058307422979556615805613607726290700250593561076642292216709631545014380534742823871088523792724418038940587415672126282203239127584458758473606353995790095658247033103284696738808506237917145666289320884614374835636584097945045189398708255471336309436869168338987753536623255462489252924813122617217508906622609383888525765878987983321064604685065782325476958127510781874295101599434793416831142000507192140304368853405658115792382004000474557697142482724982120201136362976331323844732072418249517014171301388730726317282385621338299746939299507624997508435876631539491331447371836666534567640843430499950427778025934266251784898980971832187663096780517279868335316492844461841987494813974967727927067029745939533822171164028547501663841198673079180548492963267546883602009821752988314198574642736238304865386625178262938044937045517378569782771550210244395832889778753566402310859295180836179615838630957004899744246834760620023239269168080830105713833171700475906635581648483697790588614126537614474614899974374529461093312579467872238299114748140001490678722812465829834627948720735523289879101770378861824685700929700821420842263667907052346175239790461506533047823993478184529889698779239954337222017705481946506981218646271137995317589198891091243405533160156649195967299254076754800844877838010564921836562735684826200730868315364313987702853158529653830588080442539062684181292361836922221416294068248763473344013502182683930182917731125494105483724489654678868479124130999174631129355995095087096052691013026107104501279464952140454696209252416389744085866253071729513459122593640640664909881333864971838759625686642548831377301470738563692138271845970912599405477095290411578213682170570487368637887550978592754738400885963292094958700880313889979563756359830748867646861145304647392619376254696672163474027635036369890579463725235116904758895555754089682398337269250785121151597941205368031913158882505935989748331932083165501772563393121601316958626723809406494233286550299662415329705674697034161233282306932236907373628439538273308638311660512074798445229085913747957640980620781842079478647068983450125301450432997520466295844910164754511892732804965538558731456231508439623068827105414371293812392457167018916485364860883132613222617816482733635306159887971091674003839529782069929603935651235327651777093884544105831467813679806361997505476662529332029101790923977389707767791854917991172053541232115762961804877259513065643458680544826875932352422153084092443042030411305838010635857168269197866480060064638282053747329285839666366186639395986404493182126190441364143819106918960513868635558489959900032732807312503449770432729461890237194883858784810837156389243635772988116937372740538744645108159677090244153484591600402830533371155537865544213931442341838254307549206806606286704532682544368384044502765321446144285847249073567172654487677958026614603627450881977152443652919474405710397672619409334551031905105861822305825884731524612517978577058512170289484537039381258288295762666223493303282103295872511981680613206199306527359082255208890765307620544897580215929464238711021667218133775203783245584552312697723770556061882584784259809409287408548928825977220614060001123867846905640336964614142818242157097573565803149921867653133995294390739186967876369621971267849189997514027329216132601911539591145716663201532935358457761871695499155240019559974298056282871424923727838661667110696901468930124587712937933158637110866138119382573643578024336911394464880749170343404453242861817998630406524457748127207199518142362383725104840532023019250997905432385483115855383085013442155600704643153007709693188025770276091501257410586547683361853127482596630112314097056330234940424202363392962346741883107985762627144024398824172613381140600686884357851846643321231015657732679935770124877440311314865496690347718535781977284341928611547872917514908120008454729551674275152310541457374134569837830887761017692896825790318930778333445927672442613534674526532846544431552941935674302768980421266906536733360606165282983600522156970778491333642381751020948834716810206952312175230388205072492146686139247079848018511563815928041034115701085718702505566649565243442444124208347626908989280175327910915683289514003983425748511954156572219259936604674323872761055366302185123714540709396375976975796534385957784383187525703028612229467018686445935578117835914738387829141603685367044989067712276373517821364590456739806474468266262397022521640875860585458793836464231008181248158967309723238217922043592584823562632343524182652809508005639927167696864165993062178437645684362158851667281729691895768338602116289415930422184776359079475331691802203442340111518140104645396770209927145160446047845291903777762083073761978160758850447458944407512956134273016224791994187994918886895285792292668351254104811205843012542896366491211028821929378611468406354917960970310704048614212260830188729256488456585342480781588892646263250733787996968977501211413562295045656462778511840672811311464821924012196986030181957151175893874091597736594316251675917281784063711397391127252079306356035746561426909278448800333746211274234910773672600674772177625578048759864425922208490884042408175200697905107968006958749586737841670872124545392714566248509133980191600589665499369070767838569325396157338179905959319541453951946293960884657217099586232456227232562185091246643338801566771957688978594806103607739088417687448489673518238851044227905828523129330295065596724273120782347586572207132285969812307378135272965077607622140317794792465819941665434440191468493167276935159279562273022848711877166578789860555131181586191981919156304222047683201315049320853876595682113286476064905922671304685723332304539069776773974697682038691290649218878571426024484527543763744681392399245254239431529665461273273587005707410160106375036734782042824605948192731710470857573186930205561768961989231560530550907383897143726460546494660754736634283357935228262972533132053761552850355799530858350909522095163545179335374142804545975776298468212524313984679808316438542747221172338397302079234319438323439248189534420064057676482381337334589964877398745180464046289768802251615180434541124739271899092314698619774395216769786799496321543256532595997961693991747039745326668638644059999238495045765541720618996335942049985835451547748805775395568416711056311962849710100278544672836875237523641699509014842658081744551988593686247345530364714518541086049667205679328416081144184231097094136503001766623002736624151010213116580641290005500015919708918022049090723456818082049419438388557428456548052406616763626970527069948987857018323224411386441385847250833547678370114733727161027476551982206267974008255226123654542006957480611738993080038283236011222706705261016363573085760834123059752458257095233772904842077261940631010608472787440331452764480118856489448189845614586702810045420698920152131834036519754001141993787333713384367853233358605095387856101076963919666318922507158746687027600327645327775036750142173125839516212753671301961954032293136871391648506808534328968107407907580170474675074169325126431736948266718342185664156391130385952124710376351615938526862909624098372710412685289379646743110387809655972854877575155408931950798687900475838637559186971398045237942209491932936573550731055042042397141475548787053903017904109848260383667499166184162853394573494982642765098087383934694142368462057513405014326872546798288829847156803525518654376620670157067900162181300284504763053816535612290771122932504584526455019578486623245128248574710169162838337827006654801234326623688489652733035296520759475276492400939558710119458754780301514742149653608139535370392884626111248646748816052352069129837005765271776603355660906102581778467123793987179078373042605699182914069004173836565662614227502076254494301738911340056197660900380000664133058800093074282038288360402765577184647256024270022225778658958488221326300398273610268949045894889560559204474175236957082965847179833284218476442915678356256316317759661393498004582026453767435813454007704278296387555376281715235264075733167196695287298194824435791913230140671289135424118105865466974250849750312435977750863405640890488479564818888832023966652293759906914332235217197778000978178049738281848532567311342429531407410259398224688043873431718662906030743677340997132747930936360507772723577573195222030031119891624234537786790218273269888312815648288280970924231518490761447414007701369320122134781444888783759337356660893122610273326740716420394480564719421710474027398805037084971578760368563855500747992960609885539827457669484848655275679868542262445493695383893395612999687804921414529045273595058526789887877652740655717005684937351979951454764717362238833753771728548694325404880844560014240337116377859215061427025807857753542799416440466649383047230773573202170136097751214913637102081077195248815076569456331459804860823385053128328669557113191466262085640558912695422715940989094910293083318408633783840535093213518521197780369772496117782972443088698440720698817463426243722677691540145414630572238809331069408562473084950529550073296575146707292710997131937535988631588396442268033823924433234833855783732493778341003911183167629315283693299596740509822415527650327417810454002738592432042524298830018790039490968024947229487039762019336141378735505140105547111801529345385263261940351856445900807704005992871790439687423228718977543939864513829179214544484170949177877980409250923702971133075966959301386862038659789709881339895510714710161748334019416742139168697222731154446752941644765450360514292768926943943564582472461440622114632478696902241262099739479736582636596646288737884051675022742570445695139980489817179925680322605139358086144241850582024671947208380881580147064388400094986508544466495819054269854851609387757538026305946328247134477964281202075774930288823785562803498735683236779410140740687475121975146362918207757067055243877947598130773255410137679503409800149466329156740009263085044158984703472451224937749971317735131755807268512723835246502281138444966335098670950239082318641302989499058621707390069481039907423992238153400536962684367063431973118638589041380755101218970376152215407521494991432851203628649126194470359822955042301091023217950213669512560033888318754243379465989846301249918310249368425443067746002723210144285521363648338845091222726153505520785643711460216231438327214820727532466019305450912411580212079486077632238387741641693633418756174155998179184006887145243119555471587960037688116656323212637395878810732568085324371614900685975350112206133254131968221770706197842115643865777607288613428831218393815777248383993758178881283421707536808968329524283393447112440831109263699455179835521504370213999774856221584177875049265044335359283636736072136378557518797520654365337617529739947000904633228880959648222274370576406832305937287448626623535210486355734961303381966319530227396699161879948632294088277323614516337012647713392638915615439974599829099697903009473317476887229478654861256727332188165776004953367271473444314739832254635358327679002844870342502942862431406133572895797170027522609924926475283239069204915499661628284309441496814677128896965879600751366526165146834256407344318242320220619474151500040271471733894607327692770241384775106769252971834835624996019350048566354315666009169972246391252699415063037078028461442467314523592828893420702207886599724255591632336077001224750469793402725962974291377629976158412401575712088646362688705383177531531991893191427204437022668102845962440363859311693898519290572648425701969092734830235956926397090010040015299374810034337575911025761056165380182487027690781004967123257842772625977251299354406355888551015297026536813113629957859505788854153291034714676461805859593152455301375830688431322871833027003448557675806008319483061930886084403149564138185190853490277157379610741645121466699318825542405779435497684138197445760306517233536022183693797055901923301403469578412966307629332313119002765431174559319539285957511603772805779832468659332948468013513122836558255704565069737738828544002497400895979871891781419946417806088637715731993196882633700792669301894069831239147893315462937692680012719270930160628703446706708621496132390091099140318293489366917634638665155808017573513788802699168328130867536317063948898891740298744476344654380098887101868169626712688972373032107988472662779154718082877034930569827148615682888377293374655600381825391080004174976445501513114541221859523418224045126426784877439201224640517393923462682340911307610048826676281653631304302135769935827074821332616703981823222152861068324687019980603794267303163989642121627596289237124419068909157040722209973438644323323087229012270906130118390327515824645388376018705732754688094618350851977613284344854470899241065609441566902547322130307973273195996207336639955963507707366571119495612052343099337193249497887721172135240135136857857525196147805463684629387030478259509042399682630044549506970146245618169219483958642131596399715265556512854614936542371446706638142095524465754836357547136613831403618800086470336541129065248789129543244791046021610201111158933199639122139548891308145672098906251721285371243312059570799601192970442885031118697933666162742643964365906895706463046459999983609331962993563175371290891769698001412447099324310071446692419996486576434873736165264059717787264953556158908921006384478915355975692322048690183532464448248398866567466362355359329135081655693860003494974205135120905586611711724301293197509897157202732136807556460022878254172291834336006166641786091706250718691022170165442864864895450296847363890910246312302975020226545834672188201499039932809289557803062005377054818685102164843410922617137374094910671693929981586406567388061195868664485811320701768607740517099488890943288715945445833856982683561242067892868142637113929553324094530988597562962366673557837262350096217110414599798462725422594799157516559675165587459641394141105335533293907569371200653325445109686310289567764221508488473515131811986381513851392439266240713515923857651213970591564019993650449804164874574270382317461226130150847267034464194783698264515084682426938574269454604302913047070373823253292191362043182261726998698952798802200976332487456030515790283288968216255655140827202540967890075121568073129585757082785195322879780672697771077910647812844630561221234453895236909141226889701900413090877283319756019215132621406321360576595271725789319907137195623663784517202508671274190302983622573694741743693666656194910588141708689993724625237970598524332979407620321431034439606053077647006080928679835339305878613855010384070509593955526256573737163401000056160068038168509175255599564856448940404992696760579122682543739009733356603435736249408821717788700967507796787385958514187528636100154675798370312674643504948842885216605796423824222605142121177704364130050992526190656375928474251605103007272779607098513438673141302033002772919450531527608127635607123615327312667921622510161670892903951893583908800927702281537283597465690881787537960051777148849331473889051334808254004127589603034371132286457832195843365579523927625290256039800876147771568218170900094444039767428206931783840972776136347241476251185276500212912307507654198967738610838991830031001980697278746958747968426940493887735035085561100346534062486639172969267482629683972707329464733324336484140156758590400032306038552290148395453944846859974519318143563333626515445713991930424761372154654434218784422721014995180270710897386057858570876408055893478597403772719762911323074722340886904369965665761940450284400920224037847700259294298363296974889963361734146254729693358389657686694907863512860981783541377287333784683504468078789904944302582067195286409301692231801403565610151939351453252283685675312668417703236174622129377736168973311739896839876971771186649903477294428426081309881600815948817259730623867668179578181664274781744584549887911258448937097373216673780562972941237132058216949835449067781747522388457135018551183296417436605414577567152676599617144097714612686437893169870376193527189854117077045573561357500941082112750698408273230227543015768445981477716792120091271881416278708155106889974877467132753892356870940262690190126525779296883334749776010897192951090233165219090325599829901769087712319571522355626319692561542106656735022559393192441295890068437364254942623885904303752012361686133972698888003635195599117375834439006743463662851698425218512394375166190730994088575192758038762485392671229533885856847335435361345007948415535980509597390222698805963204331969267044630902871909506821849679370680006879944993513307542935403473036622857427451599456523978216640198670100807850616465406648832055457315778271751881003554628180486426619643485885309582492807965237050959520420506279761934090072059134582835821278518177065726351202230414506792090499383914614227617217723606595146056614288551109159306769162447048340550016897007436644213243057409485593317018744264385671823046810262545789466701473044026755822369872593267539447585773573113751522563589709813412641886339277354762940284293563123859483338069925851721328600702297260860804608499791727468842675584357495630384612912232303177117484261746648609210093812877381058655795995879099352104855671460138640687212321177897559299945436089104301138199294890676078807128444047831121201603323767850202883406993442692380288453048240947704662074650176108869799079776107214932741618538815826230416486741197029682982364434968349974101985374426730287078525294021222483740295421913054110015276391908732151657647338007066244917257173393174426182727532762407439631568904056817851147242041936421868488649592850854540502091073838035508328897370686425946473389152994006047071548973031249834388232604808434948273472559422117639626171578797683892020374356825003631422705809613779700094962055899021964622720057681372206804018064175784424384583506462490198518076306383262627908529674324832253653370621056571680351776938579813587060064193592390138695907992439778747167567620806171727553482091991049929504502584274503383347872631862764783937035245748315883967878088278082072882122316574902899484345998341599671263009927443971882894178238645308480335241772546876512266908944538384963029582980654922893059605071716787244841769386540342752723214564046169229833905759490680976097727549371552616316330106200398663126447058124781254501696853007162030752603433730138362223332151715390259057677352838653599345677911280888526654985053149462665530880550895336242392166861478559904854806290247464991982552978058718647830216289337046361618399445251304044876893953121815263716442306999218086552985059520960910992678747084815394719102005922807178560234508074119111420818383411249060996764066178750956225491876334119193057051430471030785068164562882427764704849883550909836875142963537265909145034028979614560147866776927175357985806999081052946451029554082921448315465951409382829856620402863695571948160454521453626485871358934040189435989037729715334748802196380014975747592609661862432700573516135471722511336140038082305842057134010189293473631890889911262587676412139119498474508544005902911416002932295075457830465312423949158619809174905302092973603916951157408440026745415473444209991989871124083896904755649910721437286750140726096301111095608503110509140968972065432328760427405885540229074665999302495502136557958501937830113024065489359358379671283254224688048785847512224364035170203635266189304346060470051923108588266938927416495726821813080163212319485674589332611708561480802230614818287773736633636083506526842259316437359650694666502325215014272035491663352783403954764018412977585459762449118540305326029759872208286742298378776867666561291221478050750531250781731380277202103335240562386477826622959316561057628023088595877879546614002546227644299368389416570123988319221637202453298402704191285493352629116114118117919383523779442978655974147542596589422780779125580828833316817983490333972776872378708032333231980836528532004069835540632457489730161071229745531600413975785937321377514218946984289153194409523121154487035387407233577969634996267778807505326116257258440121598075969758596253165166601134956189609612693647497335297895903162129275731774891793138972964515236034335481649152361511989316439978582842379343525430468920160901965407861214511342819961232927228662179847977969581242902067347621298085088459780089078165178655364659077767617248787323324959682115483463676765811078281139558744229274678446437114240876028833480731062785270226664683238629501477609467766667184218573627015461867585045820960342978844322937359449857633428780328967918399841619118858233596273332486616862042967939526959961682180958247943638860337751626521398816603448699404195157181428303375522634314363182947432892099767760059103040580553935260560576384516929341048048048006633415299212126464900956458023687588770452093318266151144538944980222894333197938110177188068045500869611273613825875213578396140963842471630788495092600736594590788910974624130877812792731569695230751488695934278411588888273153387533947940740389459695988299163012548127140616550761363008721085692665144059069993796759894616089778213294032050310703490755984633056016418328591423727762119254825753110351338751986733226566923558973067204871620902931067952064706496827995118228441713138051979766414434952056496280713192727862255683629665075014153694474012813866799228240242566325282830810613171997393496439898399107490426631653752040316373021831621040871794372050961310101379552409477914267629914059532176511745821627083112341139298313925081176631373815262072334281454867704916249403775559434292574181225533195572137136682325444195490547392394237405094426817766148297478790395092521945109560680219253755081235600542311076696321812664630019867539294258227288220733644874524162663291962955995911070364171938235553838311841961516451344202391103237662207567292832828835789112076050791639460960195869392818368032694806996623012763661869302380410031061392426953925122006504728977908863367083751522911425852536045575703058428362379015587659216710475099537062540460341876745463471149176523717588837741117604727390671790394890001719878661610119978101881239557473634358614233690966979494623441234188044164477676813329577998128339756987909899162053051699508301278117709868141048567713041137766844140637447960146167427553206040364422219901314556895587165894333856701922502441123502094508478250437958986949938662716025584659286648955956708192263323027718145830230230790001382025819208966625392311901991781371294761191913929237489384245028908794139981537817915895472087143872420853787682715416379222173818713301294897552403498301029857749554357117008189688880676167307055090432232494599742103336833020863901054169624128256189971224917870118550437377368808248185630072290356333225119268375596598075212144479695252051996609288608784674563763331447556715413361875695427181476339273944261392086460825346414190478579753248557985097038256003989086786593118167266898843959934281172684286335701546442843779018445242579183789021213305669405977084667671410776262628994697894540526544441477196118727543506128254501677276330819157267381225869074745865131965968058472460689108394356981513687026182728649278407852714382462844436456921506171085273418446092083264989155947415155655921197636591744997214417718518037436626178584669878990513429127486114272244815629350190947403639751247204796443641631118333954573363732341666596081385986055977545608885855202670107359615616362259907020529336577840722923586474737365241332296830958505890065431791324700212915293482411466278402400080146920747309631408214096636754068082948064302185412143942208321245985433059823246224365223357381006502201345510628582031630623517428883190722937240838939938410098082085801724451571435793106446541457015324672313103874127726584348450764099517423549838753204211117124238039568692327287967561673472694545832111222089369228122437007412197422392648008045346526428357409933254951881048503011479474956056039403391538893212935611737389597716908642326001512310961428192360468193325931434573649393343270575599685114731777727585457521056269928354054918126234123649941076655460464856340585496804235015996984901108418918153611448457800151622327358687369321328744098116950861665363179722225721244347789958507611605005911247724958192953952175190977742744621076673260837986666231186230231440675810509592461365400382590746902086616903462554723255295193366872770855358018880566834725110057628256857655639900634955627717835788897115794318143333444862168108123067355858552402205431324711574387387692659540398725219133352882087125756856263303490779263688650406901293082903677551457418793455230683268016501809441596351880136828550135451277140720886821542141333356168909338753332338111773168796115262327914426582674165242846149127002020418522546464905074449012550385917807919631490275231593965801369131236118297979090197425342799864850411576218150010023799204100123779586830569967511129491056895008071319605614695468604413198312353030725618100980750448675732753621535446524414663396863404216438442594274375144709337296739994439040000212694438147391513874266809457154986419169560212214397358440059794255328361476212314530667224175627980656995193642368822611093818409195906021662457366274929263313236511113744993717192043169336819939138430545138414213076273250078340009742722417304087569498804073018967382850086378291689018079600879759778429918992031217803110528103026006101392170742316151550623801745665731735259022463392819632506579401843665649284701692229387482273703921795558559803239426390149928123570949978440128137835959338030423728467882593979834238362585016550295146332467599445106834452575405000957007415921721289941275123984329717229124315303223030389043156558979880447374144837594260786323362986368011783796616657915937520515878000632414876043289706008631885589353122145330948491275685263236900878703567265327191766070815850724326570736098260814718593500508528323835434287021182330381470237044965526866811705916996580443495337582956126237892542836069506336043093362570055911881219176583998295658484252667794562978941255872900829607845754230086893251253159559048938696217937116351993355535058589676685239554874175026213253031735538794456722126855033196197746374348994432487178131033043895431615172985875699880108916605946743477598419542488238385728784092756710067076755665154130415958300584441709583237590042166090888066008779709429734495807624841432700344932673345080141448683544370102055417149097708539632669451684826602145205439965551338423941443857776317056206049499525194922377910209553756639167167382487274889511556393528890484366577216250839170480663350095928638449423874767456766205755463668631041876913232667419198907882110896710605253557775860840094220953087808594604844951636810696191040502039459933135745964403285434969903129378690355383458654867336717457945799554777522720624917976993175960083229550777663480459943982983388797731937578423807285828007463094998519595320661219626015247648167800082331566953426524380072675817467935170650706159039274092704072076365752359596223089794442737335197634496678900853186715129034026799476624655335412164487766364364944222208931918215430361091466148106954788476168192935706348599355196267381773854892057482535512508611439237282581841292502537946072584651844538188233579794631376801079237609954325650778040237742619362167099288042675458450462319268326984797847487644505543750860855628316770762480713740179323493359356765525028598423038619864511835232673318705457380784005818001232152625414396533734511918663082346176085420489040614044574201205561745188222436445877063551227992477248354215502850268549787305430209975404863017489008121034362892870372090673004611910240769593481907378212552120316580128468571074633093127299358437234049595996470641027919474108196820880154469136882841968949316927860301182285824500142000520412935038656046310503885793150125187729407764514240596994738582389371462583303582980279768997564376799104610717991726107986054557233588860174439563566288349000573364999844454577073282944714204171529187765763246633847399721429794615542916531531134206282548448241728929727202423179972916418851988537576581487528826668992356308240143776179558277274256162821339565399318598824873405822062381932384210760062668477313460710373614896507443117428805871172224328058362474685923312348915563141631452181928836597700510964636514464941468412077518044782812628525606185243297832564152683949423538905185531165093128417060385798913276006750353368470864632536795207776392367046562244353492018584105067012999371151933204012483294998917831118544337696414777977159177622573945655599466665949581324641549817264817810240440914361393235575428441006524698999103104465401500140383850916125508713831872125686813626748223584398360903710586974623564029830660238227764905231507963284368029906255495805996305984629786683902389886232982299392209690283812484924972525402438662287849891809230086628835587664421206868059877059247415724359535359648625315379861470238062964506790013111645536946092109319295870536351759383249892212041376046937545842909905606561743449539682409804321025584080118322254854372453334141988713517787716672936773841883110899144430538903698727783939759324310212673331316346010674572565575529167505415498577709157317345885574595500073698118162518300534071522254348920692339629143930502143365564333584407384892610823452927757257459454164586768704285131815417162506861594550256933991736578352161128350847063930576436601488978416302820779835219415140428282077615417782534658588122712687912901499787278402150015913013031612132712724041175616731532467803821447561132451829908333757119425333016399711881537221172429333845217125567138701479970190692661479820988446321957235182508688532416972571023446921452676377511391399857904780629076435974360300006154990408696755305091603230854953219425377532642373934391095673434996374125045020955163275613759378871852060307961923513850399962608941003533765563650779729105916496833540246369717714512948787939172817602497561587131991770776600566332055132279167329731403079827034594599645504317750574591745203593348168929220880976873005185224879665712296282593485376093395190260071548749310430292587711261578050708928881947201814520746799468709297077178686509613662129277642030387836731970862786331517598785905582128844959672141987052137422372787917242448558264504412132993332867243485202011938840527438968724398036723019381770104543053826904270574068961624433138310239650261575333397851713496560216845569245161676340012692171284779693880406647719522594530413417496551656577170439972419275694699264667489803315149571962167409126901175198625124838261411648380548251092879850422661724210968925673230392423240645985394109926379082619813666922082254720415195397678583228286274651300927147832704980646159893870897198594830850322309936454738272265897401491534183131314364659022132159142490564265146821015101196205881615512733284333930197560395269342795153357537752329012146405664086610152511795585793547883964133195409539000559813445876369353742729192877403151637745804599755029129599516295222472416291507284520405294230160455046361074700034582605258491179140244405386617632023758250788110700884920254048601964957312954361819565126463390346217260637469234667029649542588390063611318897824124399166030432418412531216033479240873992078591431282843327769445408459310026253284902057577007770665704062511193290550313051630492731719602148702602421522260401014515500026216624265875245824424526588079860180291252444813002357435021822521742322445609322584864511123923215463563679072120421051814755767527642184580477923662902077253158410702141086872322668348823346721639100473249455458113288149453415788668355530520408238676711414022198816633113853373456504302986769616055107994216917228203380896479422449461099090154706040132208276086179775209585089042357718993320370673539490717602603645485343228654192589371885193334410588572845335412884633246583164345793411825562048659094794993489071356274962657652698365455824334729394079617498622370259675869418000661850569314761582841919818984126817470073050556157737019289699304419749985907687254144033116252866418181078353522563573802283993888319793838963767048633357120914896302418076690788496552857860557419160104707546737695350812735829808172480584342861963516679398047410955926326251540843896279084761811217222299266120342304811009349636889220887918492371986489025541078996078504263211654118154988422364030313346749512765089688250784867225600686470895773870852465009849269058424374389562465993745198219171621505971163029176164146429645184980983404875159604104297754779546257101276187568155030178355766349034697873748868653007587442034687450974299791868805571673863889339590461259223979900508351739595670408165133690640225074389501112661300397207844581677602472970954058118648117091528860292721696205338408250363009702127739258951920929816633620064049098534825488040834682156042323375963312630034219782322906471555841490569464069750110515505903504264349686183151364147592347542022670014036055316759190469821108923222411178933058874029587015180685985328819510682638868275516753934543927056915351249858952621246521638807237988568194243194813142304800412274235351587174943373905552967227596793030169671138632063936423216567331305361327280272166779921157166240088835607783877002701507675116727269520442305636229207676758937712761781075826029560382210680326810137487253562572534366612861892198476018669781430813945511588917639448323228312162698894746544141756931213255050324987185975955108436893894831628899098089989794346127115967460874465561160607034018263249260220210854063992509831410412544940424382083632415176086778169105072827669942537089516870543078744463990492787445091420871391527002844286175903916155907369216708662580073195911086006740435446719183133031081785646252446824488401189516721903069370041579154590363971850728910750035608235508429730197934654102962494460297758231542593179769475014067000100406067469475183889396771627456990412042687227293230739517329308299851722734478268887698048054415351450167410407126065919762574992358385618020755802921547359006301521774682458966851306817444469951918118192908836085005889697835754175839705652129384593452246336517336835814758804296159059731268500736453812044691966707102876248461849614621235731946025673383258850526334940342390423722498231528086003802770952261317242217000665011253544388552515880275477125666640816264644143475213147283344972878479793558007700049750886161747230736049841384100965861260672174210717665077599380253687878856002015781059494323454872914356977504383680630431694411516812352997277729370194424620887925706796243729146890692679328002893807775772390143815185574767062257618834187980942029488785706221482783183014038032296124932613235916137160725369931421922345420413284383584315012990224068811843844175531933172169430711208657180717842202998432943874639816190117742217072490313660217371263936951163339518853760241393490750689220430988915090095515125655772713414587304835777300952786328701273840478596476085286156451464909075344732929351351353875213197782357998440165937180254838496684558033225650161744765048996195570230366776718583475938143482561246697425125138177898506854404053666714684990889811910004277116780196078726543969003468842028427785738263983092547475275849603220209619470450074779181541259797415428182344023036561068552308729084038799897129190612253085361580091642749500354770243586355378035521016348137041888694325356699005436077783453677096963404832911794716905110345976864176499265996850071148623161133896963983629815312716184983655504355371358141038651197289362189184745043443574185079748799913113625424576363006094321479110807627961046585290505323494465290890294932822900233352483612764679075499114231279315440140865904834732018815242977904050090199260420728848472314218727541706516548454052056396874735957409058623158669210795656225238613159755951259574326770044348717381816726501157816737021909348936015626619224278064761973435608154118711192249196965284272918811337490012247248270112155152372440209375282210021993727660079841549640573447198271593702186657098256317494313773112245014140222697403993534823253521825242578872003647341585618667876969931603499415816232251048641677237959164197001904936929527899470481429859836425074717897834367185872988685465892194688290727629604008774194885980270253492933377402324863571615382321043713451643884175848874457591760767290257633243685650283215970071674583506969852034360814880598121213996768829396198304258931846376561777778484461638402093764572105800129461469265804705938860852959826615759051979767876475150371489709840392762380237059757887183847519602319935071763791056266196801451976264544081169534939040028135005356829890717689551772494455597037364189575793252109696203698920637095798005858994475800673419993905875772113781929026590647808391777239865193383455645099424497757468973888673962100419420367096003407924663605701806530920116757123481821487807298951055451125422275078014316689572686991980343350482726193441540758205709713822637356442251949580913669034757108621174121426157476414755863637736246652800065521846446121203611902384710141934980009269769752556598075777244715705209956191918886078495641436376371733891188015522009764547977953868068393493205443864711397485390979413204360912320126903827829807199426884594535714974451158280160707515979695846466935122012381959252570827022060866780017422260169664984265898893467695409146553059349035876432890602486281399299246789236767040027382096348919985063515733940797514424387456336021748868349275786237334025673361584846537446555564538828099620916813550631141485986341950742862464911544234818203599195828302711988820528048975579285864804899569843137171280148533201373674164907423628018869676975244495532973930106207289263581213412409784702155620895967131534036347164783663686863961749820003498137551347322508147578007662017960147397169287623566709191762460997345781101212720798189266086122480842396611673571790613670552487369121570192386378118888937793822915398736237651989652991702372089976395693021884046842625152280016500919688885687040284452236458387760609655023507392549317973496594869255094812268802456463260975365093345711757463162809067985856527489433269638262441348457929199450828324113038230422383962431202553921393627490376181159567214503609973011265358973736021936577453443089695108113839867994568223081300437364871099834461592455317330510910971924704109965200596449199972621026842472847345972086328337097113624991253879380881533904684060433090847348451846652955069644936615234096598022544887557253660705209374068279528363782490338442297465518909235480392136702360314413963703834011847843299506418738865122462652754501588079672807655636888981718747822764403554382412242238295605320019550479144856903354954419524298502129586968629664864185168314724679229544398815200247230154631076175865827970332125582742263022010989952998648262483002521213826364746135086299969818036474003234599918735539328753507451278837845952084289173973802261528694291625403090226434191561359194193082671020052950794217157970874666452819216828195259037551824683334966312287671592227178996454818835386236943216165164460628401613892495355903080829404261508537860817228484123360098798781534982100758756829574200105483202584111564349056931651143747920634869051073044682823209804248853480128093355182359081516269435281633579169083063732958453474854059164135033896990371491313151075867265917160821346743334101595974453727958328370686904160431984955929185060306897299932998714763909686460619956620921175156536809298586592414983290045729888926752558000285798035295413708991284693234600254442377211558823733701947336799719009274606491879947120388324383829653332322127992750100040780396027721608558531284874591636903947838111308742224081750366756000670133061153048619595902672730655573256748146360085842648627277507419112200037920501040219832687804230058113239730763591872457668408687781777870591195751843586715770102128467822082723723225149155858774514953439125302704050245715166713032886467014090438482330551247885534194468675186611051748369865932695249628879432153075143154300051795597292579846225193833392935962926755426320638362485381036442724461160196365124527561888161913884456595394067194740022272715265494644093594010873313846281832700225760584895161024050912041376925639320732114883242762720757217806028195437205185047949773372601394378218414952004916455320225266454009932009416234267569278096221998010554937282744846610330316931903178110107454237826397951239239307662983591323203861966294982724474132506165338865736568968864228039622947911184491806284287507314029489635648760221215475167673530751757000783132858203903750869817559556207439909947790039456762816042716220936070415720314408065704296328580108237879576659566325714744069994736716069326630144619837835592742720581278562747828796488301618627149209892324113103425331786070667915078425205537809755817576917758531788787801237950346498492817327004057525304065752228634574211152892909857344164584870170686669566278262817908658942488590488422123635241534817234621477282992513822123786520579101955677227393884469816157225304142494689473472532497463137519832075624815272414352146489951610126907093842544628671392349992406418747169046376457372421287603509651117386046672905133205627939403448823337541349959225173404594728680173426465446081188376655196354056626191724462653906523891950559432692976051731538585435150203783536385382623277382149418220949383982793358551719836408801764777926940714799009812851834365560558070464098953368137813898127129830603423504437554331538470560941434014729388076163655620451244815070093352190561262243335152467997653221607353913451719954496580481734097372422021037799518725292620945205681565288469926510715863467341618001855462474398698812491313335029249732115548889249012431444253410103635515445799428469686095708386641903541769481613569010284155981712814997666333699787935609361275914059335310596242204866522337136893622142791593829403185209670482681610178159980890483464083637218557213742114189986106529815887812743623416430541305479827010227878662702555131177227265440500228460546562813363324709633943616310604472986702234307644109463780969307798158394161956559026989971333782421005619953971530647768862835492095498735584498148971871627406011225243530704712983408619565002789330673570487857185667021733470777086564310103207605653171739026564754887664900917934337123327068980924445150454028431922136635998013893643141475015131502958223275947371504020290352743369479884412407032267817292324508090725772006646222247605238048114753587229793008698604637896649322658386033795333555094983642634874736520213831985319175592565956606419190033151768887274414019104593618147257533011462726284751755228064187893212182233698507641452316557737481069126359790790186352439927946795383387942856726661713048382717957414359198983285092950145400641055797306386995956124852674455347062101656481841265649300359398491210149436520988780951827623324957631891075175165219244072871652387592442750816192053718650648363055754797494693689479569009771250653764764937175228711921841947971924350730628191748188076565422625445219777293275235333125721220290072447859055537033105158937587713206130397322893147726282170165873826355415236029132831279694740713566538340066063842484778257166249526574027493749659901241698528718913512388459954390734159377273595367248644963045659229052831399423622607389752743491733711905776023345721081183660558192268034040695254624369935432782638226138738611817080547501046839179793499933986367365309582492394735551058110725698161214811551037320792595513665982744773830257869061426517928393921401304107386940260977115940564509985046134423536252260270685188327764794805295046492628357139330576373600455622891556535416276479177885424219900293531050154438856348441871823819644528254543835894818942651209384860324694748905615121996610054016943974537903060901599587266853892799026048184470660049975200785201758154879267466884066520938669938673303133038311308449282619671113563699794261619775445691081851102936980845179908705615514092959415762581340910522946166817546313395866487812438592556959009483794206810648355987281902609138557131606061310104884968254493892537001596480578451906078403870777494506088055371231376733008046368587230370225676325457140358329420095930225982303593403563746986141653906909358213228193013695754781055809443033161655417427485228996164257840105828666366619854819925207038626025297315426418525889947091374932506833326798826388478565969960056974672467334676328137468497125972921580318141206577999759932817874271219808791778844051612399986233359188326933658812769210042687301961534296513575780403070482235744955223937600656259553881270302451693175782204592540456532865667705834781869189187090553892195133177256448463650430368282188198654882753468682581620081571522052326787723237780927731874194716426522479055678225993665022622492726576691506677974793471743812222152177233375013641363673136579611398645282343188162185384934950876968932466346524211147339583152301147648757156747907937788975569585889501311546470576816723162902043674458919737613677546066083399338767019946005554252332798795891070319955758828839299029908742261144932661047330381244253226429013340157743918371986738827566907877510589998487075851888271844596154822303033262489563668821757333644482285515236713172084163497843854124630600496644619965294704323370722665678618176930237058475436939869700070590147006047154827997308853343796595724844401037516246454223895234214734863082264291056823682973192050100066861099669053388225945902083848960690798049568263684511082687733323524174699675101332049384846401054777509693958844208513879480378489259937918959288489875283677644287701712680513887867747573623459529261604658292488443822016546091400489767835487614034431383468879297319249363080688779979718668068149224694598431733328564763158479151488751378726333551796169273647989847570397027530734445269578883603870869956590974299297367284713237077536737533896629754375980982703023256411375614839711943421201558561671491065215574963196755442634106776951356095125912807849155164481925444385266936888104887177543983702315078189750202070982830716958508668253405245962547561744701154995583939280413443263845413768869661972875585772489244294888919062830125619348421198218491072785167872328350490573148373967025794342981789155411803361699441343568756405726897762696429160629745208526704872579236467523558608483180476446402912459807246137478304961129310051477763575934094317840444804910221162714072862647892721284460597524009285988754292441047339176071077500578023979395069249947850837098198289359215988936765899081382729935413439985953223971146415372030851377021287618525961569189233872588035262692756472878957285541400428705506666994982758755455687570643017729975190218613531851004532766988721541686910279606919738889068142840340265922159887336041421358661127148667381711921408213491171416380416997306251418188604815782749547897185677749820818380346359659079126383071304613307417146921522570823286895265652454926338471132364743832055712697220863090258433323876867867282798198354769865591943222473137987764041729059920683084791094715800640904750859531384645039387302407195653282198627128142968079886999218990487216989674414551899796644186027753798739847883424739955685589147557059210621775082921142420900990036605899038906044913119542179445598681434839374933094051078050769760810019076903349089801672143464735384947214108060534473566684979893754205568435555690014464892894714831072830138401656075928588692604125194085662412559816451547154500927964797392588107947755350585596814546602966643675363189819121591341310626611009287493618639147069321493568371168976800287821452187455140324209149450887903335929633548701062599339602301615865103659149258710857132162316449863749737240386905043275934907558976195122284084327946546878212897937336286243442707789679336456705844523295400314497664694492815095369679030221615950659559510107319472934592301553444200782294622103208594727872001639296911558264510193577192380549011348956114606462994804941833455724651679101757582391796004861043875458462612960294430087748148238346132783993122372232829007907063818435486825695901371960817564242061706311558713899118844195974334592221269576782043871548576032136559070474237562080631036857096804605472616313053590989307520690802546560423904336750486044447537386925481426226816332362120924248736861209305335068073754779949435484782212106285824896532709823353065015386257984368588930089386756653302531714581625198775269330157636148935238169522507256790515443408117586172717438420529665549465217358216841881608629146440057215134454085116729765279822203813902571921679805802818918429921465937362340160735174807556902720449201675485033255338541383179485456976663779224768133737901997086676788117526617457596327573286880554195801471802692393701886420725595241262624184337336744830824553190469876911433325870221162254129198677271068443197875547532468966689800264005248743492948194709805089495913487679364351305246486006372593400458316176715599691497612276430842015315134255228886449711081563817574061008288547287483065138789608832309038961838069528721067313619556980120678066671631662137541183099491677188197045259091033848222697478594842015826065021084223623299302650104635740747348695914517981458807665613846665520083006162112804712418946077721298522260806527830074509890005901077252212136388479296242603062393407140854697043787148263917733671668874824472094699501230742228776562669317675985306845934827207556082640966187896840932738599238024679936241489976850150439810898008638913444621564067874694603739503004659656447630920683377557949909746485154994168132257724456445266606753027083845856580521456940752115495215968052703201446702336980830181952943083406929326717705665747174636583156269020033573922802436521146881284894727880202295334029599489282362168952167828885538889672416687508464955908919148347660373050512578267078946522338027444409787561603365609742154847743980818005495966085467153189692548663455573699592433942812796153909039584012007764823558175636112595335424460908077691337159221926725631578097867809084862655862174680622907880561890088269357500771481142883964760019467698784084999002024720879598329513079537714665537326612037433331584776228834622568786168519984848119552562908938101644830096717779516386592924405401872971959910457559010203695766003521126313855575989600041474798487087794393995722245781900270054661839197640978127433152653836712918455481159077309619043270358380007248563438277181968911620935836733557113051756667280521432685926665643920238705264796878399678096556763522024074457057640536090273338346704304504174767090971432989518124670188585861915216170260071170300600997953576045774021455090635723860527027846614084767139856836778843280731819417009723889580183859793625704888061390886455914819083829950259135966546219238504540326724437900485856478031203339269527994000896093145726515994134002674085013860773738958016136766414276977393873016462364440474775077710449084682707282316947059816107670160479891131600495461336775445741293096874572134381147398650399407005468324428330092078819650846038609166758560065100059710250501764703075850347923606660100687614578163406452352032651531619105954269309751577353035041612042412750551331621432878608250498855982877953095497809044780690130727261883089686720169377585536053818129138617701731980866328583916899101087268212162158707495794687229115910349036107884090173458186599293292864814656457242104464299544380043660022007376848241940418548824518780949409519736357305653786391390638641695688488264014499470563162074742956715182895565504231101522237976662321094935075100467862668487642231686366150038496653767320676675964004958234003008424756747810182292079878331367856757020087052130958864588985886537887812768653280375280571216314651571982378851650006156181239428293562722093203525466378419790163805273857348499366083085192740927562234993954226256372100031912352351872395838220236802815851486880584264360383131578529279515341480335274825098920010402929986057144789519742037244813105318520966998739673902106308214397299512673754717692592203858526167866517123699925442182003254787002107455983690779113964030167188284734589617384361366783279976538541148438812721870531539610783247576519150531810081110243091019645694906591820530426117179107528693141752680826734317721838549243186034719425164328301531303402625852053817802451517558135307962555994792940106223368914260448330141184923116681881889553995343184237663429595972638179935461850649620491142062720024166394977087144286692620782144276931707245456476286440010779394334462421031182952466142808058284295685368864294837789716951761023817474516718098767438149291714887690475409120996745220333232904705977436248916263222572965676980300632287656696884877884020344795429534253332846431231230872798082012838320813733432931848963879831688060950190079513131149051843426949453622920539632919732530415927123879917075319888587306358983986163674395255232575354430282106581540249807987383621658276456912068640758720548349567372818656161755174731400461613812991625283713926296554588189711115497808503411434006302014606489182828867470578218781654172858131723898227353269465642863539794360770926978606945744450818201340879722441441342884214799199482867173485435112632678377190908194639580562753368824831053099294798835914044528111864174048442472868915027880453714938978460080246980713285902889546042905062826718889626917782265922448283711285208955803125910231769491264150936481721967277985060784582829374564469523930050173518194070349604720926121371584805803166324263909211555088137530290801814259047490238539904426999136802153840765914486296741704759469921210799635108364051317287236816462136449726432321162478098945593953828339639787896520309002341761437603647604843614665776820624677155628544704930031545683281184567683159922707384718300400181450337228706550829127409476049863273856880578377721302217632591308261078757451491549603786274448580907206536556660237354774305442586807422685131859074887269798638785639911390639175532349054322360534506871196509582804445975993026512526201022235955327870668166354669702463858042127314081711119473768668087824830662284449717016426622133367973141667096463786987950988663879377797713158004846264033058022576984285499881894123703978901430366362537983785022901355968093671262499792355712773569633010259653521133841019361758386852356298117225122153298809334398966939631666763081231457108154966075216059286315649472240241535491707324641109008899040787115690883147060677414121896010697528730214497767084230353637117412447662561433712989799972094998465793339268432222872388922119924672882308866526862443252201650630721681030530104843446736608678244768589310339300771449461436541490481833272728753284651297168697226544501852354805003510517701699265578772769155133794226077939458126271310304954659411897277083069268801792438755753923667061304047282840728313664098177914028858125037485373366551907019577530918105944124841130544861259143432046018304395753918267016518771936258480802887133349570483992318753159274556670403988437365237238529733988770090767552165676628314871538085928373611584049837856328496849860192869217381072744068205816382699993640070769756079458423235074671753955638123005584131874207884084247750212245102615314231567256682811019436065892351908736389268016426621640053871940405407114323060330066530629169533523643167917121440029182066710481547641428616178075944971709664138439802300875983299710498120773347455080650218091714642602386149394122906465044340586605072198518573813749525874922406100031717120755983473700800821737501951375457314676437346117832679352029256003096757949136414326438929038327884813657785764122601571520605377272970425941337813490302361589011519809617562387021742463885202157916560891712116068270073792725839150175803469561205490327374249455155758526499754316032176844727817350607120621840114643066147846888755060859875776785074209983861477314296077181820785661010539232663602361401134867167656988456925730748055128130751390859139620975741053572921265657634399908994705957166785767812853992312863741760971908669186663520422428803276538860246348204099427197757537341259816756567941054719556307271384648588546379657324964395021842723645706984167984953989007050369223382665927139061821914740521775220104870992595179099814130552483661196770812286912130137136525663348912939627789270921371548087094470170371401059873243059056287592614853133710473329722406273937059422506351567783509207162039171416461163383686177545763075431642847937180976318299620067204692608102544113249433410405784002595059086719858243753744990750214013405935657555092569467120311869260316025853607072792375898951835612730078416319115521408017168837503922599241867674863876395094573905344363666046412426212585927646186425159621155255221435089897000602474171601912045388740231812088647921971175995328223681192775675820730296445352667502253234223787908787335079005289964040725480244663791220649482538884142704681114452303977469729824547477038936729120171935577482399147228745018922113695736208103036507222082830157592208934877606517903970441898660986461677826931098245019314966842399768856341754286288261388133505735785022297245077491861342952726768314707042641874397670848301440320495542184333121180731794210501561788176187036395679946735527061233521580151038828286838655685504764691484260428373282636283568594685872665565937608585623130757181851650162982774977233622724436120327305380650742406823660083955095507068574517259937233142230109498374591298066916933858305753645448659510061319014587163040783678218378501268468635070339525622013328527390216791862907038102460824495197614118438586844226998855856324480870585620964669669513078145817557599668196409082361015851414628344742090676884434601341649873125399830341436556529680241995258357221112720631541992023105237605593600276779276005813722715607863571099240061762073018140504311008575668986775758232615613946861264064187682747066092125721286298666498320427938291248245707459612435657080295481024407746935548291225173738264654356123118545285551597439482310231350659024032856301538999841392345297543880024097811613559166624164236059308418138936050580459298473639464761117815018387990926204586596082800396866589508761720431878754480539303945533518760188960336800395016748254976632588996660703921598876038451869731202709930162804691066143754118541677057612440678821261731260194692915330019483826936594869979721832141306447560457345439396357988543921652890435565591469455064178469795325308471977688356542454285944451771846224086744256906005758066382910517887526726120346191995696637749227411361324458390303773371710520294644258740893736392337524170290624581310128950258248581147529477556492903246318089975196864142369391218290012954915803672663852589786410635961765803852109109601694792271126631187309280927968686660780371508411813925785566352469264718508270435804844676964708720438827261539509866662652742389828393705900852171405697632558278916627382679187828887431799803521102323434041918351331289443419219211426554556034199540658847699511711879841181200523529760606038088949624640505160240953300722455633336917281113476994230492761577123723555886826329603461398330309407864101957541680229013955046487964341344036478707761475999152207105060695454748549548896777393722889320653386953305920270577464219183707804479218107796263487302968886624199223743292477549189748112505968650193874115065843791688832348123355836766508389013818223725704418624451064907764775527510711775597972420405396322870947872042861431564863398168682708113395218197208507291737395249970955023536815774702647775619477055706868185829211254176390855363096097381706894876211614694791096587186653369031260688532303351166801888795034238570497943807352818050767105235915210883674925839162613445991308730999889195218301962274691994727720125900067251981860267677922079007480026849071665748433793935879493644734758078505165328374129898551847731648728639987122721008516501736750431681289102782335616567172809730075991561577124204768670501431931187069568982094236187317636951280551281870175739239749489227100160191527665694403983732402904937041946786652525089125862006240875243408688194190311061781705182876676679311875055382621989731641012134279799777411314803101243982582398196044068044519736893811133195539914920312179248057474299556425469811859370955119974053537818519317250231540369173005235864941361506746273680659822505388789650152607319860100971029240621312576437595383664569120883565443900897644662642368674869006646582175769097407206462733472937225310449360956902176118333870924105525862540323396069660403268136215398004223698512815881705874297412562534169264917035894588195068367589329540005450229610409921211569757014106886262909613129187644889497174380555937082654060890711075169746818317734286537213645514571454064022571009129651514832132211399520838411618643520241022012898137678308369411784576486318770819715874381041125309835666147917096044139906034277359807995905053866100702361382360539712482471289577225262996044465385184771806357332641452103740690620157708686220434638547321113757055447658582191150624652837930864611772002470492800408606661063353564507620418449999337668828299487258453280675720381000377878423237197463497023137577291642906055599084769198456575421176678059918368568848753556266748660276106256614938040743862390479257590428476315537998319673016945187989081729136246679467504142891891072930699794496314695222309203963174874109336944526947724607875687336403759768860147112938949235727571755664573543780345468414183887566561612952641008850592346067397978308352511232044762636730175423807742077847516457944065461231125929918875296552615174884700367378229497669159357226804463054557914362410750163385974616701879442420755516517916060497437296071852516425882487811446701242246483015627339419215291814034789384846772862695869601697786692215084032948006558762417822864065671237179870993990167024834515200971712789038719265120848548535106463765937513736419760471250130046376887388261294906542206493301855813701900708035713890257941121657556234657856750083129164435887615814284626095939554749891270791404330134978523892737082295730234091442155002837927215716431884321234450223487338241907914195082718295435320517046824039123044343127545028895481788248692207615254759096690409646540031604433715347313340502716279551660464549331789353378201127164257011429757221792740065924581493346190689674197890945232888483982240136152039092263908115206838898123771176895817519191798105386988541261008065429057897027698293245823101143516863498570730921620704869536235593998511544674489164545479421522962944331469421098558718583169262566114142014008813462256323680110568734259606103484003921708033470629339422957956551257973908762535591375356274014204550205505733426649685696558633939251605630470884033684267119049691772978599657325705318891638141469392422000473822261600176664633730651882739577995298375530539526472841924728059787899515499940856297710652915443725912763087863947195248665422090997702493155108058292689860498233658230618017506041402049678636355074539572326445960655086345507168984280862106824386363217145538202422249107197703644693989819381597348118704556162410653346547975165464255132686520932166423791494114166313750956480963294278114520588617695185857289509980520711822757421752962077711968243338233135466888454974854804564865100623488569082433403291060334791017989561316285425489947719195941460094528212328548592945518600977604051637622717597036905307935576913065217127032735990955244269915273331593727110888613344081988854092702028082947189868546638159410048016660757013374976037704616528868565300755178838089283798112191577897400852753575697276507083001522794657845670027265223724971041063171611792411041384291480241047157012246084696760589443485860646349283973553730755885304863137717974916781464965345864734793493896866226901273085211598900366384919839651983349048168459945569278588140207771561099121889613720972892623505554505156968294020115155595042837769837185352780538861545386720641281127885623304398656629835763671271849678933261320592937186536548812499349826162596916721204835716028004129126048225340490399079907603657710323320211964921171336975020275408128554851981016315330947448832044585865556002478017013014744337749088568356135748461784779770277094875160646689612278108722665249457320152877558248176857688026578005428899060758491637673289611540181109922100280740667410254341218224344569618565914799796022059240890314752228446792309701979503661394534642288680949898292856960215946803759344360642275022406588427981435302990266057746687640960050870932995145293280737384500714784081234489470972856550206685008303617074644892727619253521875948804491592068031845126791655082864630983191662667827525564339688988745064143030027752553250468104891169636697846163305487803304675054797069568682108745888687578164483758843779866590399749446709268557432399923196462035863301519010278120483815792334335918198396842161092971650462746710579431046696155320987303788660901997899588900579763096190391209201482182060851215185366412212511840747534023130806818040869540184324266733783077408503350619056897961368662536010982823891357191821726476334507529564563828584447627104468809247162329820859586806059603924360640030625761030987673879984695989661621508031995197716444504691269654863035437721654766253411428693845038929319027071062636642489904278180408424781325011234568965576714636316955183954301610235730094742456282518516853019282589914925581507851302348567598744476808642442532783653936248065605721980828057415641547627273600908210046851180845723678277212723239713574906991549424059123740616592282445067909143075144063078179301956495913776307194103293424322608559714827248116401077196669093802292724603996940428505535934213943523787056778556682493774612039669171459355049867953457772089721926969513548915555880408145737983927210396609519865873924240431420305059295233406185954864419494398673114188017439040236731123809558904635494157304711378506577719008125360216001311396262298694638815297713841468938791477397442944495508654899543298933264465701349556305513009759218656157264308144389681606910795070098857933669558995072440235485238164940778932443345926275372362182298779803507697417640474670130748680451606571561940482031592517043351536101938321967860826745182330299606529116122537412768537477646597464214001767570665840280136146150269392105492451657007608034671293985834292602477316378849195910501340849944149138678172713138596652814668258544533660436837008789205691372069151133503755466475621026965504290000757381283232136859709591778555488771809432158970501607119275313709532349564332738878521148858746030453704854851444167576652971355602179377987590587558730613319518317774893323593722274038315107762579120985270163860303439602915605501632065942305389877150976081059085691007638333130834990526498843743430647093805014524720049636249815425751704897445046762089057302155295861611929293490914868360985968135429314742353422244123047506566631598956167381681188131908172354324312704464300456326525973149372130413926899603020787950927644916652384895023540619391253779426866828736297998278545695940418623844999972671750386688815369549845682339080017179500528326252565877314441801711571795498439444619896779443179393384992722035714141611604677601971474754559600789167896297913238119778871717517372503544008042676843100631875983899176941305991371199989429033025690486344874022695512896346105229153240670446096414721186910035187098442881985805860586597897233206317844232950139910872460786937306781678076355019455838734332097165584052204608384927283148579923085041470606640592543653198344611691752947274651288969271141571137405574287782648723865723569222935222746211343852656329260405605950721597213568888869280073142435227676145181189488846511694942998164176436849390768978428494246522202303814645616972782962315402396177419614068341113227795475340178782159055774597726186358736816622848938805903814864164583142917926426417005197557178665183554122898957768293025778466354162031975813705882587405697582935114331993293346132775765875534163113991652583493144071926150998503426294358758567805801837743411276574732779241439581633552566914366295170572517883682172109603834697678210782165572232491923330887044012741114649815171736231548247382957763120045162318966738710535635894098814038716930157704366651448043679660339205392953369184101145211049008589615713656808374105744082340875902206863325740089834720854438410307912501189243753211430225354796689614554570049128899594992959939156573329932699940643421333249737666998362216625333616777291244261754907375685488527271904018224071732799220756087970869400313348352550910160952537383969310546867197694650275901286344113722604065559164562976053423490621112734771991107332022845855045739254196670153924827894216230680983018217266266936952783655046581988918922528012404596636141291303773634098951966329063340383717763032374971538628678329107029790727676056030916473601549545596187672764893870751533895077238064270678004354416522810567639551039865796261797263448894118892346438860281266401614178367828184163825990685812625329546087618223736062820070264556936115569157728917157896272170354028135763346444328724334781938668843144217674828356868732291707596147752438379956953545507820679254124633252670710409736928073246740976545069818616104763495540638213718325410390266257373664001163132555204873861140584733151926660660992758775187706119244595731254799668856710055433870272681465693792595734448654571466012779509121529719852363742501810419653733759616212382765186849048631698310148396573060933178652347012407166467324959734020885899497171665788395599675828157644292582092917698817003886001578886084970622019768001788684031388120302372116501172921004650922862679235947964286128743263733249810826252365042291255658813368068171506394129154629998881519644908406786169125223259607416341891007021161776720499133636987920884338536170388516214522612773083379834843796701424135182243636680893764169006483007464858675163415393069049972786611710199435520941706851795788716659038975038678581728814199443018728226137999999993179895432310958421018150212337467871573573520042769554713347765267953868397929214971844377317738295290335477922503470540295197441463309662604620385316426237603170283605717288213939456424942624137614594765636688902646462997158873735645780298584947577181755424509438112316407288252624555719839130852496980038298250233667994821378494091675228097418008215221867232197604356034148467201194594242080716922016388547433319729539832755631542873552409315806696086714335073869374527500935512282420689898297385422413603612255212585167594234671590644610083287327783679325881748401463013601570306169506449157867434442027963577050763890208826950179112870188729505574446088660369437575452388952632336922729841401179776713831693073558240329074230383663603806180529077599742644753048727391663913863303881754065567898279451012461578462403877493304955029871813793068156086419159608675463506976852310943428651397615466872278028790612442707621226282777997492564460434428968907215180194048604683432186712032193302533934834001326860394943144915041170560923186946403618019824850270863360149805770586090061546195016195368265422591429906907955704835543071098725230565840840067129118731657935216765555061096773128462128275278636157255969829774004760054764971768511231575194767411614337220479064658019890541790239934801816984726403018788236055790145293563855610953605642790801157729677468045483128760261133487087291374162296668183779913823225169040245253576674551982458082382003011592065522744593985405731438013641811507675518482648509368501585499885994049376490348075125408864799469001782163601292307164184925332784434850889490010081662637961697194363191129427582757689583839055281559383673341577783719896444552891398289085099472585049004131418288012877226397124751016959058753581378927698387277911645536921931144179530763380796401271155509850885650048780730306954718263835005219192750660401370920946097608920939861268065699570592491753659109835163258158713043629020519882280837644316557389570108198597528658664550996419877989088672127840624963582041094903628771729985481307430398686497827344744124459979398603207793795650317811889438737529269373055389227226965573989850019754570234453996742249915909168464132206008632508345163807696844015208967690540835527724775841562481139405817365329044088693975321184349701967503476815911737718340590702504398065145244343026562638832554887683436241122710020081558040499684722006207218134113801346252382410196101680593650460448116072756574087982282942483051637197581651428943233096660896267981919449995642184153477580652904103419132569902686688055951655463121066716830825007251697468161238240469113270523486527963079895100968227251230180489730343247458208709637876411941311367016558321854198445344059448754657279432515703693338781664814562338633927255602973441695281830069710247950257744115306476937850938913183881620925996315807138626079443094558214240177623295056851686067795070289350694366510718569489098959814085531238350770762396737257222182648315252233128426837562737518056086938628830282353110609220868734639858620625424698119899332525444265115850734684067003050781294382326432680664148473290558305615322010792941425596970846428400570148183906561738467492235958460372461285835461321800144773713816121118241666014485931841366570191266824452610338167658707316577057364386446094716390934732737195449883662166627183418124505564331270042792362276129699543153217200425157967584625481249739435257427716487439318921520284027113790556968727107691891636868858196310343996791319124569267342895774614779281404585639430573240246377698881830845827926708855465391480021238145405878506008384878796036953393929080397706958381860071467830719666152606092583682335712798504759605491251090534032646216569319698318624040930441113159064114468835291166064715738728303076573265218959248045354484132264144951678635056365770134129111900656245996106061233123050302024729640588424884076849736584608883045445156238270009567089613306182896676987905688148964465583682890790134543212740445369812483817895635515000144703261655183168064274718008750377230795252922947200970781078006357330654196036940799963126667148992377517584688166572789350189369595444278832461080061242098907671166943226706190122291028116137725719638138030997986478766230531946514086258154722871465239286280482147469593308605653369233382802406029603769377288294338802761111919621114033588855498529955123379576060510849911125542068308541828340606621128511991431328089682568617107213283267228475071098155081160578662877692042755141527860138697411214618482406584938951531133289208245049432965248628337278453007722683336172060531709981112989272723794962270033791094972429426350411896109499842595794059053413360860562855132304091509306160861469868803381930921418757594041663616388388433979856914158687582679977744428681366778802138232184043558965269538271896335646461008924685634126117919021464022487946353979882618943905384517515720365901216421135154878943688987780145122763491660432977945142436669394146144455266300145232363919307379707602173438087755180965953187438337477606810665939711029503193314251941863208051260565384169951961417720111697723448321428180856853100688899643012540344846195456479439909322492695239955342701966052420260938977124197521629948387126166649500990409990542932579710822198991256028805679554959714851755760634728487632658073999003641671715084177634816574091223556235721812050216699180828984036722911975276313912621445650622896206173838914778925193969909311151472858585315940438795437318261016518197120920087609352006996525109963998669967901782854349668542343119470031474926865377772669831865533643449133705876858817109572611316968789037557571239865015304580518734822742586812948034595506031304604166747216466177944676290997861649631098251226450621559361234492038199403629812955784664312515257562300401686801129774975088421261320334999157837374451081130813850572410214397093183610283427015967969414946227875226271364337838863974287688767411377399833982665468821026688991500591739345039820338946156288329811654210135726016139520449120924653178313968634787667035590862533733237805631361431090749919428009846127559790491098968447632197672084278170952610707125560239452455594788838853931346492303841451806501537618284587795573780889457406705348929904140591070188098464229847972392272646122434232156050094499728510086485033758397564688765300763739271113876272908264004438534158290743779366467025369202898493016902102523341772919040846055010705111354513860421359137045621068238925021413972576983816811749841039069435026198439388126320755132155573239112718425824869879733750418696222963271614458459404284912364588530090318847143431349623015296084144682706010242593016787212114533461297481634050211584079090924705203920172501622809707107322720813124703675886983824099006420583755857460090784681953866957873489977523705750811312623569292575831295889755885434051091354600692557871834205770649909917087599264019432246230740875999259297619171461405026622651854660680613988258595272142909125500663007907936592481580302092658700334517099946157271826332330235669140429223184297750065159223211163493234054336864622292313645762153580368685058365861892542328177169207705070871557555403880696127775312326128742876435663089942195807758883151701991483064058186464240472097884962820037598197064965327863298986594189732768696916751971928925581915986351643002012320234655015153167275329338656803846516368692286946932891878315789451184634089138107751538199105246112791739873409446356719580617916257169856933894331952859235816526072348699664500038878429293689889184768926329557578401203785218145560012572120248524151754450033994941117177028624513020168788783183835891400648816217354663683738286444427451357046119037726961797199363285372899584656766466167679972124987646316914350800971813473406396032896866011728244360671290254149277463086259959752900940459153273347462080974009739839030641498137517378748398272515195998308477220641757828041992715739121732709621780869207554656032137148461471840638052392087042646732786857359840515948332654175062371556533436425358738421046792927137925726231836813564673833354049295786536199446285486260839353104467936774338825404070481621403918035655863830942963551265667768106786529912830042979482631405856210367335681360348360608499996614189106289575942968353233985104092755299658036368136326527268710231292144118742052216798675039432093916438090020359407021690295440976815008156704799972033456991462083507722046546863476340686761998405017205227303381831446976372708279764325255698489013630485152167007644752966974598531494594255416876516853805805585882446473756189383754860527382944583895816257317239006192225348980378544333201148082349691220088655766814406566858600712134785379394381278800285827535894220845889664961624232729476385545030713431451947560770432963948430826064919454205766558892251236224421209781240968003846103521991470324701324760691746182574381941224517330942767421052173490353306874398456878401343055104377093382903621675541291454499391620475234297033469988543359205267407009395327549140095074126681485294870567514164244980544472081230510011051448933065676415868383109339012643407359878034257709517593873046507449614695108703168206476497124245068938865450753359342592189967899249812360499735777205020453780523476038324906838980282007445322652416855318146584815371969620038619923207630358011933825265026620527550365053107397731468560381616656326871773936161480608869490377079319668676632950609734058026216210734173147500430087747231856387211177603894459629936742066493735363565930895206282374711220229641400056817980054112097310200416266402551652998810616338505486816036113302340535255520049653968208784870759278298128726043692486787500917445250427191539756348499042484836651520088822388236386733143202543852486339977032426942735458846118338954711841641454201107275253987448051381903820364657191210597272208575251702917576717167260096109306370670902640939832125730304066310950681914586037460979649123261966476609918904413248202097463320333768968580275223910827998547099909618711712286419301333787952944252529057827596700806148835361150296022964055161458122570315468804298893694865719914049682743885016207905914781890966061220550302718439068106484139311719303163765152009962542704824182826409149289720447073462648264448633818967681335396612072437981400342937014066586024247692856270360588968880656084737322245976991436365277405626547335963018894447459316717925095492069121509721391613104221068097355303234829745702271136912078564184447261582133774606439540076208575001069350375114066497266106731711462170335015118880596287997884861925934636323865931422737286301249557626526739118090717371518930246858638699175512103492058414300942318283412740068432355466485228524994684013090526565008772783905729764629968462329417068169546925219049092845660565205344455266070475012981291995685157469492922129891880765855858314266372100730742539238069667629092662843891848622691909036667440029088734644579987043673870593955331997962728924777491549497328267008915134237489631789398088777617421459486241006711609257147711467579811230369017493867901572560688137485802755562066241629332184078586157328408275342879067277180491924437062174056064100498188264376200233744538034547777837277673116087102670411162439625249427232686443772491630384809437710556686135067056217440098974961517650387477658593524488896234860266882064853235422470349644400559110055964919486924890947382790353484985335932979985761446105838251115350289899066169581764095143327990334117183968516227559665857077864503806133029575619391230090260990768205016582754137234668584056234131813137334633721474729214182641073693362477961170829390127866795308226475304620809536554782562668353434745190158628013591368660786722041103913666546737018584685390697588704787832452855198374337166584418417818610134513131563902279023430177283137832938407995068451413055305519115540005364663418217785531044202745827023646363505315670592048479615249638279562113623760076079344870148644837191983659135755203862087739845261973732692275691065785447549348861976481289500149746389951728827740570833870358747834443858570146615147389331008403341476667626511332315451754911031804532998836240369986055363904685413509077182748969777615171478822745363438038061848994840176224026163114385474134160451311044248533227171311730730561995377389304364589755177421049841207097694299427603360344810119045334306622449526461810747026096019864554307396110915912578719399536878303426298623525309628123538081505605753013136845464231012157314156702053593739476188610045577278567616387449482961938607470639857365889358002426424584388895254331687852923955624096591387939964319720673603711973654375734605201983633321176708255467069760166330102791586531360908240452432411403950622846232001641753403111225588996586799065612709124347356081430151989020780100050805918546060633113055513033032229623140316881109715199817538064827132781931455290878589824494663363803910395667360009455902570905689587543098340343223202516106498368784311422880908140125773683939141718263014850078842677897823232649230046731947966560194733846248814316054966090287787211394194865985461565141086323065824092630239319677778913212877684864476761709083700372099435395484073187351707012857469143408300972027478859706034768681654843251718938352417329823177674762114650858397289151430760190800118707119738381072539213342470320612555658807663810960610337381940648846530335987087334445607003596381529343753040979572806892751885247684007077288464426087448331339931883354959097209870050070050349513169361329595663747264415133376378261998740708988912684923663040705576302945064927954834264398930288331421156619721741671279252202679735037240927100138833236540332672712087993420431876649843181672094073795706202073336489501834767808439283840841360524431788562247666231080196508484167147215462830008192534453831278125384334641437813315637056649466651480590128256877705349723345097118472086920674467369448141361155295881017813751938695210618295501874925474978009831114724939635201543430088336730633044478588820699103637783303074681695354005645632324063512207053508671115219806410033466753066498527010610231879696450742346476252226984004930662247419639793299039597799683474111990664121059122870998195687154489423476995816331514712137986876431274577472615111033494126776884315267874969936704024979281513114219441475118051885960348166906162060931301173388332682474399362774002538874086029903141588431375713192310614160316820507112512524693725646679398124535161995273810101904816018628871623670888260255405496848314559263350756111169013394826313725148202781158718380323648050982315568534219184959243886084962716201074894021283801903713204503766948287080637944054373314651390390952301142157404649232780845054181668069102397879601164459287726879058378185442157149190245766408509869617460091937771085132494883217558731214598339648351914830828022391822083730919635191074814062684157098638736918441807269266507993039429750525011085537511772117480980342498801608396282293288453614462414087042586836126960647092692482995999558467534820694685667540764747620812136572288232400012120852512972260342725963384011165686930397532064902176291291061699520934329120294083688505694110331889730942589270629136732939266639222320118665179169488252816680940863909498642668608481336143961828591127974211517765349261416915729540566494914736993325787594935651085425170669204477841649564521616201034169742959483983168485902888643201273364970222440594540221475999221398264846710105268866154231819675668471871669560271455652150091370650891712645325741271970925704813408828425007343323426533871762625739646241214731332280249865835008961589832645194411797800338185823424390371152088323262380313399634566982290806958962872263907093736479392260552694957237483398151746343555500938762237039718316617390890817587522435327468610258590717441186179981561745227381484115562828544308906316359033309238593696589039556159935751492628173359557272897721905593518523682830206286952609137799176790106893978236452847128891323994540421197145027620120141024699727622040128611347988658367346325454489759279304524212333385971076442827026210863181905531843233170780753783599597437684150905884755640570879938667772284404871616672508892333831341997736981165918200183107476437825224038877854287887823094899414769073989054228710795309428050641790909416169900989735658264881939304369146385696715424051480115438620660100873692458840160379380730368606012960579505412580787476546839577380615385753694342338823565798189527533793810779990443119444851278768791759805231581066880267238466108517993715107636699419456789086742109635386714706892944196023122514516397031066533417169069960455625967383596327403207334148834755068047064153117146822462935438007064052617703314630767298022729563162030026430050282556245430476712066037089581379875483076740706052806257713720434075492111744831443910598095599883723969505983826226402282523673057232865598855033177471460244093142572553889908359974032187172769488130504408572182050047400468226813515483259312010421577461963778834400861021324897675839874719343142767867306566769625893865550971927871542222586183062954344033792678890653174350734312895474973706196601310184328415840903329085017104937152654171517634744268013868842017285972167373771790559861322926846919529131664382307328905209509529819114481646276945198045841997000105798224299101322364628794664315844156128568736560371641504396935487824523606139235215995613376017351634125332674188985991328499924318362304492135638626923241962178704158094110811401930823673827374852946984861967736268081878501591164657649454899225648598480542606226047144889419705635776783620286885595719049475141413110291646843990430561469514182106110268695106563811356623381060115763275455429024676112693817121281546629874190925549484959043770951193543269127455570904883613169333791438231737430636417259649882211838492124946333204400655995692792256319984025786839778654391009031923240435035917391641705677805517494248743468587740544464817624517391135378402424677247418876387569712039709101112332605842052318029930779601879408770053910009380392726637202957647873583814511447752683561092291306119922417120800865002456249992309305023394184240516182157184302776217439113370972477423126689406905719728379250289603838840450248272711186649055449227739601834685715135029175555159013901605309787124309997498515211205113487820271641936965152101474782141509155410745465986418358773525233001991751740497791653133566627872481061324677931693012420147353736902334015573043193435144548128610753116239960798371580846839975584066584029794939840698664986910088589878073983270041334209606215401426699430442574306589334867601786518091472662461681521042429635355048079642049550299779749274299054792871861661373820330002917902018737304892003340152298769068447665324701241391465127710495284567797261112734897266106489016493994268270118247545352887306505908850003236464409043403858061795463138434221483387781482239410091485580797812518919883273619601935059469318411949253997673465695385558944676978215370388242345394198333163286978891873314203881681522747157625740072110119315210538637431720111725796567445734317797215630589438705918852246615716540423834257440794617571279697077061587016103993270733551744352255354968518401127174905891902735578919767505610439522703125243460882016958691803229829624012795394150016501614129949098935274543208899184259709733377352726100786817963683862072345529405692878740434230473248109105545477833672390465539297318657964597983299060933507056784728583655635912152350338044091704140158185920442198508571374927342500168350185519842183318107146637023652666022111106808108711570035891527121032599007721129763808711934636990421723094458311071126908896049179026287401994998973603010563527357256895747752130285136693271623905507573849587148132553456126232225992085656956456272688556031629429242780418630730518444073154149535533131916890182255709558978572888179293543233875671527586101082125544175358335996337864853821216349985711287277161522054580971121856170525949517498747153201942281662924340621156188784377394538802409622344918452392718778561339214043519112375702329361114441605087485107250152710220309252663150859290609608199560325693587260334877487706864072990361082913069694129137222157785585925933981870904416044624980116443514287464374579714016543432519413454876351388446916892422381464574746555403487310966178890856037614951470837702303526448786104147401413875353165614894197862809916034536188947143005088473265216420370888481481777705929440060750878888754846961108855792927309543304130312722047457266671721070951682145056183175447757424443744963065228347264597362344575196543785385731333151856339215542205648946758127443488065067343575153455478205116207138022094448664697649120888586930919215416175412798419947174235435640333813656769866539578888271611792973626505770744827980215677292919711676850770793239792299016207063279247811864178440344756677672810442817084407193375876199293320823919402789096893070539973567703648399463064552170890642415321938338062569996401857072306807212832413087283335692710337701671659839027225942031048404569512746149105583302405100791593711090412014822830654381385139333755774180592935230753717013956719499059443379506795561366035828288248158875564257373816289505826041686489123069882506647537056475997911569254198595508373146397157327606181677162640416463004402261115672687133648323033737500663631322789889349263402410084403411963198653181322891770470718681855126592323330609306029478472138610897664637544110855051829254192558270486756727536009555077584983075594154629077339987878421288960615983024990519094190880380199479866788586154341744402561881534168341024696866795996800239994586180320058666325378450015856530786990138446346795799230637933241934377485722941185994251182906289499639530910879867495325416780504044482023687488283158286174008568527305057609636874134924560279047197697075794590900066346425359256828482833865620187666397322022637769952291898719689959809886789068900391348852653354701508008188427994283182079798373744368740134303546128597449400361280765074989130624690254403712480149100364346769037721019572391418243795374087534866266692674018532920161163424909020631118006723503177151259672399597831737468156414079096103152273793641936395737885828009572792410260802853172673483535550896445552962737206669238653646290100448615898817114329708923771685301321303636503705255490944416160193617793047076936147832448726042173863451304518969193675093559448769558449489810954248163784812121121735370767990293359563607843717498010866263329245642634437841005134730380131661583336283265531811333119787833118901602686426709721293389885869163568248467702542254635034152276872564274440620663303988512035584638524488714912811166473099419034526016918279960242094727392830804250969839146394889793165218847655323988417026304037700358297296391020407626366496240350946877608765490427744526518605894470112621087701616846719997546361602182870148013238766931187501811484432543190386314246483607856723697496884125786910208519553831906945251718818379567663808239770077349824550719044055482181981779308394112599427252855309303798314708327036255629290365492684835637194465993320191668915742597012991454421533744541334290897761798649178454026327172215839979388528846122002231977352466301655753550495348242883404545545959565765909122519899952719850899466760528009333583992248390496440353758808848889637122772052172839800384832033451519511268741549798250236439634172021895948800301798173665494316534829039762510023707722519634675441123009071925693489694939103867011505488689786401506282269195325651815001761639242781989584692769256017341402269278383621542189266606979510129196664397498975197656378052502606085558598047750579731769748538751258024679302773819377263213628887572964815387170926694915119951514158817375818037550223364390776180407848967831622960874872257267628655049461586546060032473433149593795416895048988813313834938748761433808522538964601904813524851957508442350908023427660160680434189183884034176694954998584890382869552526447524030354850319525510488904012837267314067970328934681688303570200754485836904062564445952503714303452561423660865353433981899195938208408355880850626902237472319481493283295970200028813347788577744034264527528559074874459401739322762871546638648843078462114663324987641546881035844939416188572886297080846696007992529731307093738320194566658853713297028829126730326901770506527259936191673802532208975381995187077943934830469583122074192572734949025450269656700464777344735239887410326034268987328312178882440065098674543800502710237272853166522252409839596541533894282868093073592871741823482454731362785637687420709947705429312463312288097823844415066634079895967628667979232777719876442632553569598102303919790933858712639728126298832836791995334411913951315673289515461280323212312097490136233900388971987761077305989125172159072930560799941390740393954574472489522073493565660461268865003795002882094283514849377504566184187580925198347401403760471276834767437423805717304497808914580922268459939748334983393328161284092195737933491587340420627963822130091043437441748353514801220265839224015225588672585736139932168355840293177271069179374230923997284819673738074518560531894749279499940471910194852121864289052351423262389525789480735181259234423323063437507325168824257095218305390963245587153832365932390765851905694630888907246069185705855003393908931751006751499181270925808686949185260281281993510686346181747564090202138365389532729097119308645344307874354922333795609018120471535499026959434698689186953787124250593013899793499747970359098844803675264502987409610048559956819830242106488655132369273561591608039336631962046868134818256383229671027874091805347717417857839866566813023173695593252151607628231671152625493996994187000081180752866694594960196150519773960696949189590210917433261451970864546095719613452552570375902936828188013911292286996491852844347299345451220723136208564329711168033671861681616502361605886596503234220629574762953750460185307813455403442427175073579333866582973612266340050173213187730804561087917237438495116603644672504029102973815965256348469507138230057708256333474683341458400877188289956041810197288965218643070611520810242567549048477623318198100967475492959943409056933475963874122708827037643530910514487098475192765118073390247621242025829769941192818128730957140851276429649130257508560225145868775857691950460792374104846601532142721220468787538614014365174445105829150362598177480123139246523315535366013195564621981118902233823045281738035741429751049012629552439881701178699234573286940335514434609719497412638606110270228719318749015427080712404330121382572999122429128328076505312838065981590548040145453880080024111103661679968925146416544317275561856433164351382354192584038934446869499449261629411513814170299531944987992800111980045143503698815586863933542678355734896117709421153081747232913078562531813876023158103278421500299167114225448359943207504983016913214975067277803602965533749608344261043313324942334789802407441210747774954756948408069477347330011767991231348776798608306202823680986479624159837255752237022704806955111207299910967246392183041023290133991777194250501433869538490612925635261285639374202865723935160979833555634802995158348677601816919738270757280763108493055153079401566175045619790823276676070812784263629418132776060641126186703422119569497966919944686610669648041818978370694362663342999125177980196756755177030728624535150632490354757839958296020049285470667331610475439838555772679395185196987581320002378085939795081070427194021847704353117581586590827090761953632011262492701066087985114834994800839753633325722675974793989382422323427243440656905033028539622665835397364778523522969161639281378547260603213546813836167461299782550136607242996262836242632138392415381268938244977390910599951861867995906174921933518773826713483968192933774033628673354042280084234366248917002069528311956276489725265169797947202937827021055287230870984738211145648505445367355367603149406254817930395642302774407085198821375284576049966724858839043424162586774315604780779366929011155117723944855452004076289840570807729064361393205505170976919253786891832080430257662445162827112639823216460033138224187069324427184913244648220756172615572398483375222287204300626834905131630244533800547095349102752299844098999191170062787831310753031150470882851734831671655364443478944408337665285707378708262234900358030985497011125227218767802001368988165014945208178656643165323189076935715903004187437553423563624477209405347856786824423992609636417068221037734700838114378189414766240443786206697318072420060683371509867368418792272767022400792926097391483816701456585087347815949862739612316324591972662244050347768213005947094000761223374045356497388234862174234821563265944323843267906854969832488192032400640718379701503355012486585254195107945386438683687654046340391028939021300262442661839652177065863870274631411570720224548541711933302945247356757473810546824493190458715381054456569371868905453326153284427483607855215693095189744184044632334762410661849282376549117050501889101858070146257196267701410672330993448757894384548495228387905918606000834121684152665367184111273845687383898883084990894842338171385253773112456022904168049782983553717167932773456253437748335960381107699540321071574560455993810308116407005103915266841966164084037032964987164630028034985123539820997947562658577569012507245985170635144770973235290182288191480134589541477076597248272899946341249318796488896419956094306811501173235906119633779128283332288128522667284937101864731106419336160472030876081384145982290509696717528691547737170833972684596387776671898134358598536514437696257928918104589108229172594417116883740021404961816717437491272667578402425703585837951257397478070535353988667626521101593317254237307097064862737786004992047435422245531468139164081159772368284474166064437181048073495624848044534660562836163415062286056724259427423668823209595933011343831594292073952295184073559755488678346284737826394128532097779131564630364912148889802027414627095468988911791660533109932191755310910904701470852964817365866273808948839091002942181618448794691652085367035564846612092866149564235446703912782447996226338181172031175822577826874468865108016269574700858463581531293693476637126825502023396097541311580867636610561874268727503778398460013313894525197799230448790912401409813714912170274976755631167133916551771161010850647376005464287661511080932655102281694053497944037913457221019259000859594478088934796694771730300703701880169149336986918680030374215493601934485396465705515043126524006369526264678259509335827699228335937889280408282224648428316952038104808288853733774993662052389852585158562615276052867144858300440431337163764230186877414397044924372886886093449710542281799966278342733682639139236599104571215219057771660630568060027659546071313937488320149635217137622206906537391226355853376934948902227779347017993819492536364117152944213474757786608718369173527416506012599931462228359269642717842077242270625900301338760234633480235589365940300291885734251473674008317739296736056674100224241402564187197228629517223624359962183021937606118484827628725823847972104715581204139685455864145111296006899224533350655613678639639404581117764906790323595747718111523275749651395940347933398785808828917314619426904791326639799791107540110805152075077106844561897419423414457968737496554464868437626894610023183186659503525970700350073864047430966399836038985448653283490359138261908267739497623195022148640165838919965611047142042207823173823429130222918018997246801107584959456088712134527928957738085147701049184307725803231402102742931178110173618707602204342508877598235167368079670881727775159004514706926687682466184531461167429664771192539538031724367048429078811207522171061876063846645814287856534443292954040729718974422273143336161766365553554375310502531278029460512599232938513103435495331850317546551650183844369059515408164096423812787930994118517808393013096746415062616951861408110888582164105859479314673459217168036657739910439649953262705314596440247969055598130900852743452652903557255337156730051900634405621123148934703118356193434593133255986891162522268985759618214975738090758533493316777963695953741807502911626510956151702886149860000719965680498799795631550661754352655309262552191152409964396938041906453749393891973490966046431457419503778601737698795795144178895808714585245064942504366402093782123682698255612872515752011836936623158956765701668010381044083790388420626409715912013250098327150902863175539275532356125690462089481091910671499359260071080725104328155660594479055354542548290033351737999166271143120094903043557669609763014664341015306635458423700614741828059426552443723537229653354280052095157695164550353430474911027130170170038283723888219806784676150881362799738815366426247492000965694534311009567966102309871855355637155551932847850288442330572956610793527027330817672974850099741466192193488524529710197828036964759555285272679413683661621407756929829838367681244883574634177666437662543482231869443455285830008160339600399101775712806348274628625256850335167729126108979940271066474975990903364865102904891949284072162220616178232115629009327499830572126145264250199589406950769481077384838283827403768276626789492893814968850317588458994726643284594631769727749340361984479026465527569557294618932123392663449512762456851015079480792538691860493115543893706603463639968123964607634879752289316501552916354863817915420182001484954513691987461543063190320452168212393635421483406625715218054818548594859418711165106127119954577674663747217037631393961408730991413779633784350347473589941030342622811608857187695130359394023767134684205958620798707988328103344552246261759501073583140310053913910467264824108830380850979830647905565463277087406813440585842226576141375017274990441430703853414023816646402562341027661402590317366928235112002053767758621681352185377309913489957636642910914994284388907913193552866750223475842398664252637125177880169159710128977350267479202124113015865453031147004591080931593184457780705818907459227761638204638318447246883093106283549077233915555405524554381389197444803632967321964094537020221399189316646838398022360843380365244067343717669835404029511990408274026768882397093029119328827839120932053010663643578870138009344426985159642587902810915859201577346464963655576942012344290525760695228673888714439048801147841977418602597203788069654014218771023039169548937003083058637629116376134630203481927607681041756286839316385202699858140698260406558544652586645895802894047254586479851167285620777972020582545616795329919935410803844021388902098338393669657587765878341075430873667679397834932704824914548942522025861856467418240878629814592842677667158712097317122451984556291091963168923940950297017532512995132422214912433099880024456798609150983733904287272858872153629208079558781630492583089912467762616629988298624089105948769679018594987208260376851806650723015077000616343669350195815682370288430514993985100516617279783033396374444423850080974630938776259401427735628728933180321111530982064316363444500204171888154473421041224427003428811161576078957188943610292442049537301217449743567686619049962295411407227223115108889293076882789263847143657423088608896001206662625372551216528972553210006300862895130722231795725671635430129440320974790991127262174529767888073256860270856754969560809801496744316462015481649995634739964075266896824137187111842846709001062667979546829956120827581295628630289290229432878722313209157508906467868517228820880681197515448443521842925219267409701150609546916749198084851229079326007401310622055860979554507852820447895111061599400566869759037747406812484288951638649012527827533723491402364700607833521110801354823644082158636924407123652664391359149921896277544175037576920304286934056927180679087942584533777450901251776572877989009617941597681380979982439373460259255185860800440136130773596355035448522281450294678544885385887253555789282474924889419793220481990717653812725669117345450264330220450687932331555717134060120283984149529841101685926365934391885920237224159529513746350874024648223339816654911866283891425787204170295212547804620054101103362500823041466539315933500010416403813733612143549461803832751186033446587366941789292078419847136380503509481527164540273661139948961608945224742897886969244959187331324108539720678120236758871726892662195579355728898297116608683383570317221232513632427242939811254660424129525925900535116434510947200936614372023043199360429343213572259313085252034212851806282503439747235214462730290214239439807789110267569397587958192633798937384595464200334767340479449567075671783964428921882076082835430645551693318991364909653872454327227606963266992398850787949440334055311733328841145023268589583327347364793865569723662874640444482032083106107468709385324875377742729449548339888854788792405136292990871669883661308938486893023124372358245500988841169857704203480134089966723504860648681179617425326214910630300659686278885125780231604483094264545076330860462325317098994287976589914076480470476551425341542133953794750845394149806371415241867662088575951495681694617546314356913088758784440232811234527628256787934856618951638336532359045288501291068905491408933458477896859292789741588107808509842145010487750215633764332887992104730149614903771807213408349021053262194906979221042427429095850594132606485825892697668831173306625863429959859341924337896660229168376316092622140336159147222257454158894128977484697533730603106787608588930630363278491170691207316159951698342215908968176838584804309092590247530252157722286224480499831933622676962700908786208834953674246542287129192862036251477688701554606864193373570801847702381656802411117883543947769883208625504744863656066226999271775156683537253158452505685565554668238056487633244231769641410905890088262841088228120719001737282404041547504486167807804257269828601465917188551933132600571412543256864340596625574690601406703080742746392724819868243910668833567487186141706004205494770201548939326091664049506524832963546960096343626035341940552953383558050163409024062741004146087020852826073140172993704503922173762717739200384117310624387381452579854414297002890294360675582760689980168469656570091610634720535095213851500817849237381128941026794179316119116951570903888890195709183525587329539651601339151632031502679396228492995482016733904943203891459597410913164200013856733977641730056689382981069989559774053551438136360732342802714264987114483282454137160433750910937764492985134554355733609278810304977239445723708586153270628490875046095421533345339197733323889306671757441099311282222788247278377742491103459478020125066670933221062114426372133215280176015337256311988649448447262407300742670445268916686905127085888825034249161172217205498862364827917875780229759928905672480375158447658855687780699721643464491540104309361696850075829888111571430653302439344122637054701618714810936710021229859092511690952019564026700206046174744771871027476159031519364590323088226394970313525852790502873907064881276936009553816645308524987189558057586408184865059670921527023815153367516106419997068977495174454504404537801464988961493101548230400727799184583216131765384403880096077299927638285878660439502489711689808470456519070654185301817065124936473577124912426518165387209236986989017617666838153139519821885482133101896268415482086777373676015037765883775593613285192134067045525550714354544518612308278828391904697562468373224432767695436244662037894366641497439685561890849858717244969068054430052343636429843830151568546233201160808504520501893359225580061620811558676212014528345626042771802753950245556978637469479067229635216739256860445554211347338485507311050147641497256502295418917823321298702284582754342382759386583810955917535423091313738086910572217826841021983786585414667180777787252196046200777247811874203319537324002439610220777284408796556261392309331699922390367373820554842893367967183001423919144969520939720427166448985286001599546952070898476628895039514140791609098675146905967794281340527081536938687811889179355328038206863079699133750219411035633140940968651071499814488484834862744267730151394624073852957889077031683257989442103857622496644344021653126092106800651087561137031306628391654002747748303825869183359047694793197699437364201871353563934507477748040857069967745982598967783649621254377430312591338535319597548647858520135936124694976111785200268125714478485100910470876872741747525745938133950665968169016001831297565526534530134498412997172377302799764472069152757480986277783081752136778349849110978415113938060342868942279691148799048954124117525762042825580121508209405327647958331067737693913747891748624638550202178617361956465340689307564792304326472314787766345493711968560618036988567473694651387243567148906407774393166915266631443712745646168866264345561967665207962952582413625486777157792896488346223271656848248443012680511062886141008379499033704583943866560617430783342655874266550815245739645499180559189833374364118277582270014604529959619535219488757478183552221220611331629221542017600276047719376100941662834089349696472816216668033196560408090897637172496388563685339575156116187458111838524054586984816221565076512361321787120509926898269858590930211301358113821610116382332401905630936383592649673354434476012095576740389946824974495690187244040444843788646152547708867744893218121431932371184580244629217790976293170588278487065718277937891403262435259876092295342293610722020112715710473068363102372789913209130608317085503073549098012856747396435494040403487613410909880028031328796753582120830687634847110707128829933919769388512806040290945793491882924505448040459892001895470694856390151873643992300986865190719025454079104089018440467276817565386166886555830120886894121577349272701597168439862189419849563292440713241312172399035349315106631791925314663915312418915284544092554451848030068308602456614436333818307851650735487257206076522810279596648706167196841441762267360444145992154458820002636315119053869563988934491747005798641158564737127907744543201169713518509171131300217372790074673071279564409707516747893621973772651967184046160409108255989827676900694587158958973577182734249426481547036420037972315438259964889950335169644198984070670336634275886779346796151974327967797987867644180919308942047948917007529571038443330874620311638751520260711012062772458955245528867453379106258837949167260170921100100358889164766353504462186110773932060915728575010690164517398926272395820081132862164338793738512730982531775125362203626941429722976970640911515709338131778901858624940889645939730493633672485026440133307357170268026183784292319741482594077643707082371654468656923121363182106521404396338190792314800473308521403031312784270906933657442017012916994753556576858748804814326580206189149874994666623253194086168210164207980766870646444828061135049757875856682119102143178035231593625715402690491663364283982443704998582520023087920066365581018604789480582346519832578515326835602747482616297434572821114332534485351135727338550854979228446687026618016312040199775026891539855686438055907420327724078002755571403562818777821679774944116455531121329969613261346571241800149732004924129394723811010536145140695111060344278339672355125667492621298951042925333752335975890129408350294066623737580262351708284886905879111056807691350906130667135698848595209049350488364576334820600559617315048286101756716205517478235873409128968241657074558525240999219368387107531119625651020368691672801168717448227222206203180557615065009126869976305131320066166003415090706688952227677983459982572693429506519108995869944004586794829299622799958445378595337856688354542029825481756802762459310034724030413998644027016430084426084615655940087764873145153785820060239561203601366779345037327878151968936881085324142458725769757521260846461095497344771495682358057885105626535802088195476001696097158848056160522820484413240716383346707376754661951407666553512594515438770637418013380798200680406063485736886491913204497342141304003732546875679035506059753223989641528088532804146385725555795756389158224955754722892430333524281481780686051219008542315261554923119295481978775896748152547811701320319060598005326310414426909890559734490680028817526180886505199612101002167122658198484091571562359409018202794351469751752489594803280398968324197637512207092221395392651178489327788275732959741756632671141612791629693579960752686344109973244004974575042541909346694978757739260541233667511516511433952716618938198147623991856008568612706742210655917008738333982026118787374089834938140904552543908149231575730430767315703858014283743813995388241799264507659397805233965926666013587385441302146703402647631965026759045635141863164391422974106211641895914974264047874745604154615774346184572308165799797058208093487470228791909093481071809735554814893774734496930685856129756521588832275491396975336434755433697593824969142660249703334747221891353666278535109592927548626982195435611282578033204874604363016702195868638943764449153048028891413961290071266050628181525856422212719886218538627550993907949577847810306715875095922842990970937154655598359617744221326949761908541818047800110577015376204314203982320811161613711731797298052993964070399440126894412507595917949495622532012368413135444812050227689667677825194241651226726523330698918061464224606982596428772650142208411411072669263413934552549716856255899776129159941143033677693299314759482858888134808162049669478558013794200188779252763815645395976412853408415309586330424910381413372899788147600255670268918059430904221577062378891727111240504167253120698908473403503582835183885148848729333022156322508198332010129884422692529869428301849623855340084694359980413947766500618426065559186792090561323576944090431043750229251211973712412721641051025782310294385979942844974444776486852153665365659505351895015073909498390590266981734409055933204750614247998089887538238579797443833897878551616959023513408218122011520487976546560710076805706063883659959356983456272788963752927519856979777543749038341968471012679002240456851833482419334463993706866088710978629286172368967734188823746844630485831247048457531561176782061321883524489466050059218313372279786901566428464349020305525504125814529519410741277564182099277350622050813397834844937733255749033540054226486069011526313180630569604504290345798404404561083639753374786445058559802176667957782160001674920805806204599269877407236458447690912168207361139051184574111353283192567744243083132559552052770166651434682981043588569735675271214423716890978020632613061129951282382386662857433228518319183865719290066935302975215974901375291158693030478721997902297043724552475146458529742368028689126159975812461897211896658843834080336389978500379523625402272469091318554166991461531109918374134912326565876787281749660813831140623034501277993925013624909412749760955859955177262050359584345990550557194187070158336067881029467628626263838802774570964506718989467734670270860187913775162280726163303083507650264993039728012919352817775690723716743334259425381669594321145218965080154591716343317902612669658796298001978821158921033412473379421569175724986017077831529502684504829341428547729567452022260234479017994629239619188576055968779550911100578408263806530387780915295235886323877875066161018654564858957161684872810493458400714780384467900164238175679125805478382183181630767982661056828408372536405375536562657242622591304178457973030287556051401223662127564789504099118029150179163302900991766906224064905627724394489532775854104594740783096131238524043936029152194546576568545540101097130307864527646865640721692220565187760656012152202619507305683047363956982647141531498874153017929764499350443424410381119899196150992139411529790617576500974489911239579109733564627025181458499750532016963143178050404507214024470573526714212244796389798057106095492652190284643741974095416906537581480490889702198507190786412916527164986529311380454290575944353340170007931116479485459360048789548459102489414045654830534124613100425181584169075965922738738635146222241021518640893242746268767762316019883534511466355089111059453208794739645782364873246407452949772487955854811361453144176268017472205715267584006967874864044755293883597005660309533023620653195308957367087681725033284442558506505514702729514768387325032693131136341507593669731428168607435640771304936328464444413762626389876989836119263022858886248149165541128725360012995314593795389726865243452532617738107527188985115206145333454277848080750764721976120226063269968093502078999877251817534638625277087548033934909861162775894735438071124572922551207889116600103831279472420735264549250997508578459211602115154371697835316401684573617775565275682699308433815253107117684830655883786314857295619233433754840326730741180687443332657927639596783395653878212314054449016531036717027269329943310577640500783997320373510398165867542846898507904921338388403969574685774003865960346030517719955410200183379027174529737749516063855316572887245776777960779783775051535390495227679186220881439575066283538724414456476481167842510363714007758921065937813613057713384607524279706344558121240039298769157645324010392619789163890351647692675324262622220275061907944315416105479224358879696147331855310327690816802839105688976614979334424906651271882199567822170083789147662287733211145716624015486504488108319566714050492140842424316460890198785266901450224040386365659071199578547281238901618697178806684080829057875915174469347721681739456377395711482455737417397548411615873464524371702661293623779907849915518030455596591799849937329877014594509669140425532132231701128816121246427188361543064026865822040723990516465122935337449444624505205137222213068919070483329777660305098024594301337650468641787976451993937330250638564621035754748852769090115515359665913648001706810632079233425412756737646844235538205520793995977254968784325741627874789666804590464175790338373959449711846015678249349331110488372830280294691154066507179417763987762912280590850277037225589725987883515206898666199690384234358659950876265626754551001507953341092477643468761465997877122912135360462655629791933752320850692811224842357249045572646012352875391055235560992824399814992113300547336088773329539951324330350764083688868383446842745329566013821131950456454158353694257430599803849913453303377754036707933747393896034120866716270349017873432390153739856239743945725734082760685368482265444224898023898799058065932509825904598910915837773376070304906612985689548776057433673653244775764063716787400556467781442199316698510256368659933951801384945910338688815687951116593310217052683367048538042884543812262468481377034925128310884582595471021794526510106456269014102771866650487093200205725561287577606547097828154417155807678497985973681009639773806286788221083716327612078424544193274797604941881671279572304865755032774253126260208224436196070169772082310263287188380295625766371752484910928435668924478520148152115112089362783661130458688339288256772007306244422877262160885388702067757234420193191540902016785199833170004391860434442645803081968678037671335335557436346716943284435440914706759931495170235972368040756166876423038690373838368415864075962007789781457602233966668126875848617955907337545720461176473089244717497697210564270556412202281540633467151535128745188100724076349052640275812120651357935884633850551593370880611775294000678887778897755629082213935567221743256209111345306132932391176536941239646471622110183309942374858766529887895566440653429832564767734189955869444612879070158458775563264846763250590701007876048671373064580963576929317330717155175351042088280672820381376924017402418117978883331353359232590923149910285276067216174454446795230880298271995532208934045588675202999823563967488830033866799145171954977514449918043040512972689946303759127231971218934261129223715763160740596127626321210231968044000317459212640497374556690921117796685966348914835077335187387620962500655721048086196716874672654362497454489540206502188367295349153188252720422843640713976636218751663682443107913687140293584209588682641251364753445487383121118718021180121147623236267664548427104198058558895946867874267285638681799407393221574325061739091205636426755148277273663553288431062546782443526383888548085156547020934526113348299342285193428856651794496016729544472705858514869375961868050031404678863507453381918797670461417457853504628227881131509947467630214514652484537718635122476648179500163488454666451695102815701103686446085135798535009153759709867037978282975959957869701772436637494432685530837262355166857127844021786225491166520105683147687004430724789261476302948124735126791598836205020540344299371365971125554732889348311251836520095702837581494163574890661908171797078928962328094011302975197265488418184913832720813892866195536893424051318495814939471197918785017875616046195651872201257052393434241408315515492550355990564164730563738018574385642327457542685778786492545263279716231745349816842057512689518346601794375124787207835526217812374213344199253406027856741573842612333677544657656406184302228072854050303660148159515736653467836882704238491229726368334861043735237634675607108103901288338571765993901602247054841117954546587062479999435099484048407453363442734402038194428416540095684314881584187810010639687380193206801487049761405743159623764651318754979741306152751895423798431494136749054178710278018036939397752555800077794462991516638456113661060926777254195737402227087693663620738568384951084928984043257687375701893915316818731825107000228951528735154017311700652881654836292274799428846148255165133803695229899631372850453128321124506217084893299714584521035958886885443952319970676073267704117666648216821041059917057662376050692926203655727386319546848560345654991440206912477397407455147163750810107191630131973670701785714594793192738854134521332020410166568774387475153229226338163387308759558792168704266332517508414278437911116620171568081886005253576818242727536489199874885814130928068020879071980916637109856737907800553054122396751708355714221011640206496839224543564448800369991866753798088695541339223885844544986011794618791714171387196382457548108462569758585924045055142731243344576149718744704578066687643501421539778865336143412723062353695126411444141787255665983020127331850949160950505880808225289202592704809033558849210287001958300635507393035897070730503408354424949237919180932731542740349618479823191007082381982872799926100594983742374496732120464601298925106587596505831675371261398796534122783823869619712393820474132099096479093930732086129446773890062371801520793521565162026228519436953319518961458183698526689557870765427012780286010372269346970010851962664771919622234249653047564201732096521906638537404030355281355843436372348236581997403260106921555788412500869783870891162869907234134708792292913246329810902047875778990511269920416812586046106195146486738112497824202615696733814038925810277664626066794999349405403686510009361679976898639285162155198990104849485255088328116080013684080467187139996572344766710804323640932395416423365806226856536353117294053733432413698189055346963233415685943852891046147585973092631729139276662465347862879501810445029651887449602607031367539122609725124566235695090175811352821309677566685056033422985452193078927696325008964337257940452645152045784330635822701194736111175435286408599046760892747354972079599704914378039098677402398053538671588129633089549051910500853520195649775619229809767865954520394868140960272607603666697166530831661971083303517132173236857576251617737615488373058364866378004206910883830975763835908048582371702173281467945550154262107208235382054252547618761228910002845766515470720747750815885662697795997053784165589566719012016381070711776659521865985956661021347014588799909804869946787525520586683453035734872812978787884883925981364402431159889894188600233648202572361357874097606653819567207612315627351861968935617755495240627653283214503881559259100764292659501533123024879411566499427390602225129404725409331907933804519844239596566252861438145192103067646876456975642275897073546363428139139549821194763154255827125391691231038173805618582342098642909067236924090095134160233359454404641985242202384288561791034130422505885904760649477144860850793518888976459457530977500186744475996744894080558296905496814387133683409355968439237893369863745876808453452338129348112807389637304988358841114683028574277566883757206834881673708184154050188082441932382871530869301453623363548774206574782852036836436421534043127992258063824713547954036236597069838187685152090761681367765490133155154490202321607330833119146498900614277567151728531248373656276668742910769997582934599222726490125964876083592573954027483517870740036063423971555147901095163218022597394505867869474169969639197705770512276277309794610482488471939223052286261323402500890156885803002706983467246612188825551615950184866329276419893847555477662425148536974642497762770464737534349689556756335616436807342538672932396568145480137150490898309098664873527827045744036130260792672518427411786601621195139731119140668150245185742110156725212709980785829714522855974955973903462051293051003221216638193988579052308500182755174500228476595983751718068280844871717202298477998485992396865099383717922528798807338393511193287392348099483420834023691450116522135472862322196119601624093909252281165855052285278126654106911506334312568273300527805391432764958477299318666812580470798641731167502632269285427786526431266851358409529782892262578036730235952754423937684226826303616016907185584246220174387770789452707130643483297583472937157596807244821674439263157946278197415198212789477451119574586880083050856229386968354740395929959326610993167197643728823718264518202927071273539004324851355922672804402403538658651525617018552276419851353504721906751485914670509826664416631695774537631847851066466547851314813092196379307854370577167089072366614258466732800082744233805127489906682480618117235254347448185684482136782493098819521246224979530323207839587684913715212548219777059669276673147902949721589607961037219712906476003263911990456839348099303764846800634773974247400504068840087655263334502879566549157780305648144172394897708097864330258482957654785996169186370874810551042395227141426106334654980824311388276862004169929139462748514142216471843109152868904498465491696545293983082987545156222597647393461800676844095329529126766459255940679106233147173135115250148973798204175504199035474054658793297927561105223836717620244483613046851186236886799057542856851958040249124749391278147043248025243697303359111464742479265397857404294309617213146395540928126244664819382917401761420669977385375588190293197436171812977644507558531962963742233908774954965628087778640959210294001298233025795988887088236604500616299868309321329042890384406092268401756786878103363054337479232366593154061383974882126239459504351311480628122246569733972783163995157677793410544253172662756927015428123247641801602723845296722236812831837210370663430306543667051431441079383876060739296603719551083066341632936245510137947589879765117552622748214339776825701214938533021622810868956676716439476184715623559581424094092066825942926757924736643894588904120522809688426771056693379321706770657257614731352848034030724565480270017633464352966038962888446301931784727725541431466705303512468009622051591423654298311017988856102502900512330948968398155149501032859658236367467081968375676234614675545916777131936150292235931223146835559977750378262701358689562747399422654948624824706241026502983898401641003341227154186068533229079983319413062853146727789356047277521069195924858719066637948501990539521642805926016108680784045430377688092847074431022737389091682283913483896238593620914299379799441457340143720272198190219686079830857933382172873847550338862943449965071526056872507790365194378540082531847359969027116268194749292139267716962399995669848962137671851917502409580808450903236896629420593843115832236523971908462615277795675512403224606387037982213453108547291967839175194654378608689866940317209767616110192024583287864999100086207611656710689103337171303030979518319551485733313750304118433246727082830483121955776729394782992994852234439367443057581972044744478547094469585283094844231835122039622598433289915863254888090399629286365948354609311683729266888930984382562659942602207341430914864407895546588843060595943513382589035687110071320076704340765444083321426925402038178559655272338984549757436889806982890133253578030564316900836997072927718615949606404095479109362728421528002790235835429620454282387327757809442639355304682751182199695261882806420198038034145421963982671762996768685432261300224408993474140512248070045290787446019274476255934047901552019897901385653503121828020843224040087985531304074833980494697515129612634539907884989805148779573381714678754974667338030555615602486844066239456283687534340526345330314201487886673292569652614242159251166458838060692010640301780255716500813019174277715951284881521984982323040229567264189640739985175684888655323426471400929261569532352185695455793124843315395153804703822285480679744513370635516343869663095275985732699474040485180720428198104092204254898862572125390236074100003176284507237828753654915853769015259794448457146281079402982761810539415809671627457416006247654225097996103654645500407732870192631986751402558377051740125068423205793606470214711157451536565835885626484254627082135060041839447628936673918206408859243844887790104850933076061179826031401219999596874102791017336083369738515482042648852028376998489784785001468248211342689451822049150153258636004783742679202633670398193340166129388837367559171010157688017578742424159313831386698015810172117637935706574057442426240943162147184327071075386684324245892032660804815382585902264337631170754214005853373893331218974407373349576876651748325428840816989757111259181294321691467510600818438314667531195428390784904858540260630698381036614222861463100199560650046620871721638261512719549935004285611073937634052379357177004698489260282639490472268127997592321857983274188605731536544117101342308581686264559827121076430967418688493739303037078235667397270557035099597206267900263026296853718939128377854308719324163603538576440805328347032326936722802726131653571475213563965675896389460812858975550693543778573714585929871944577102717414060698751523579058362365500008425295779156880135720522521979449782744034427515049816942896431923916286626688987594858376981256308601516127280334515133662216134651305229948362055119554671222665636277222167929492237278080151376484648498797848168346306857735004911721284635126631655095487569892863032065951050017767250440959711910336327408588729068428422212974903414377147311228870620182021426746752465338032114538637836526812422997985354554440356495819104008180545637082030953639920946948859081230869595737426516564665024291578384214581445161086889065669519644910794491452129500797130463065343293009853765228776034772580277121205151183018742738257290532785291504539856993258713453734154948611576162842076899179808392126950898895818023999336735782291001622025040903744380660546726307783694498793015068399724717672564636458365883211812418651085759998478624840881939755334543430722131737405954332141590938300796689928613473200116156479375481800690570831734336183030999906412738039550849740840217381226817736696768240383663587616040876480129517891069106763270334851877654064899085108784775295609987892927681744339010116820198204967336643235501593867808776311361064358989574192627757014483989960130518644108373332615068362495754067510609740178009835170023166659556980625647200163700075810310661963572914667142103825513502523649413817097388664630198618599172197321339226846324452834656193274736015258382631841283921200554087389322466990245255670178025185031929695328711054360407424145606050068214651410958006235016642527323142450136569422025448504469021140060544849272491550455319132703486888964629512983837586580157781951104768962194211541257834172924205804654300931539748968983645348888306671632802642749792610116757910625264127027808758518299983778731361861847913251654571522513815325763881417516789169709716634507656173434971542081803229689629100667016015094638209355582837564845837727593739215293767276504887172611388743018622075503406687280480261480313077491655329957243040983249894156330180056513924565471222016849043369978742349960209529531435746726007466817520725763677585527338946457683968238704926616845565535285076306014903322335071191644253653592259734897945127569749823410811820010141372353600217086131263425250487866254550487605353155703099137118179117242007265659538836134439118056570845520651758281274968022054654218495956349942032214147056768430291950733525663248930963111174441643605839151409072508554694560313990605676000345000761884126657814724278416066682549539311914037414366019701131713575211048497100188169237408310206411736644659101044919691854232608367835135342187560284158423183456353189973558691156584063466472745313178233309377425851521748161810950619348770417903423192787738790236930774541840248767574830551493236066971278238517547995666558012280555347513262748351012185301244346795034291414657281507428555311363558101701264819226923450448747035556523763987927963514578988625953421088622343677325132857755411999674574674319658460336662234417598060204907035379262407969648486140581191155448555881930877998936333266026733812494261645750680778208893679443742116971014674042703933871804008188323553023910924610217903675449621711103529287317062391110029388923461154188677149026558748927737717510466632147401248531303287721365456593922650436801981887253173666984697835695899077132959814936748886449518059669486974776846657515199928369995006138381742303532575507963678335008795768336985976185093060203903723173687295705923998865075791013703052356229527458803349574592427031033180613653533423623832221496057836729353519604181602313582736058798089969055115486513187967644866583862502466761035778616421696535602917999100296857323531803604136074395695440610254335783036860743463201339884410853366074625597797686921595776506782868886012489537084313571371689346788213144625858332845096503551341344604510783726005247373541450405257616189153723522622183195008982001401444258637064349566578469640501755972163278737480339037838122385552854481508239597592656694876388647152864641791991575077637634368598448105697479345775736030000000676613254485039904922236500749655066416040629907420167130302934295820543587093756511495522942845558349979867051238594839532164799633677825237891195077991707614323391869323629662319719306963725822990606829714921489442385252611875116688063045229742385129256637511168487597104476281728573851845941480238951879143620114872555364667544739322373999456110254128032681739742550137663933857420550836339194378880882653905737440653097762103324264625760501188315511659826264077618966405761521674817356407541287262933813914173921370165656871741999190639625742748367951520725850624780227930879620475534522303155424936066239057841907733782088620983910621427784590564860577081674855998585959428755377943219564618755653472879642981987847633264089424536801739001226006607089158769504646578047159192014538499987338711840522734285306288254971885837078860079450912829772206388566645013907624747814770050473088919963208582859934928866515597669242590281770006966033384163571637941361017127525597122372737611665781704965624015976838845234226592051790415568173798880116481943404297430486736387607865644944349198586675233680011760743770792101460622078403784414275389319791688797679084252925461703034599665486367377820549090689757151515349556969424941177175436921794477336273090114650442856271382240218469431937630266058459365503911760841535744677907009544728522784839754440263036045805140479004085918743245229764487612189239270377430395522020877542966382712261747193069296039474335098383203539297235790987354479789123998832193075715826756182021957495006410451037190517655891819193337069658183575651959421257885305773950552286341154326243097683591794476478667887382509709321474354068047230124918455659008786229478495486495533539425159324659241756733855382315753944952854396452177841885014571822529706268066487206867577500659920468017014060957358367870967945037127223360690579786715333033951517268143023486870535470171207719742971299961266232791628831009412931932168620251004056135114532626716105081466565186493002046860294132842505746564893062765612605748051862314165169589859419205190160577692110926179585184278142603397696185869964171264057216863018840391728885930473934881122911740333354612139469620363474296663247836615221499532126050775393564475042942754985423550457701469160728997459209150584514180236246383649557570650603551089662263948616097035821400786663965553559244120941502666753022666435732803117908153704894635258606553580405352282807852782878054370012790510869414087271321522346575776525194947249545178132218168304427033919443175130473502459425080190188685877688064810223306104056429111614426850461252872009124128965977582774006891169529127027303969670748148548102911990501085433644542469292196871467698792898844908499507162254681175635429003462466340613953370120663180779092596912320956977158981113006505143401556303268163165770664359227423305455808758110803718228222913913881649992298368720413751921589785744164438906807685337462359016544593368453074859059525067071062020475934764176483752654478370900488597399880197444532657550260805505877072404114895920524435926376782063519237245557439085903315017335109668499503018409405659573131383489567149868133409296761347856546895130448927745200748225037942120222983103392632123373930893153054624853326017029876616250678538841561362140696368168126206055096476782176167418145189894188357675867676928318301389467227287227869579891593480653587885532428818874726737738278176186559097989251415601691434199700482344170513894223302468090901733791359009236473005488923084554275448972158203731776454049953783629162740533903146791137080107587176242379056700830205536780247937785215890065781567162047179263836750759912126308511216016948104174852639531142100331180189306533115466926604291029955401851073299748860328382050559753718409753101308735207464588862000295122559907645467271374447059216667763783117717074106484213915272852148972981289076836464799180150484794844138379242326037792129795442125717393169916072360190218506723200703988348075972847621855422106797018946279217261313908235731545252130371599063714632680810776718098327445577281731936060546692343497912650819600244838556273215525695302990576602652639273395481389729328592064143833464793585288771593669059499218689746726851842990360760452307092772768342055015884355011566484574320228574700994345536650515664537991591582928004092816691674350925019961037757157810934673942702996454706522391702142353312970206899930966962401253686068263832427589824783173926429859381828960585427406223237093889031187011077713627557705647771676947531069299474543424803877260178372172685313690006276363491084747665623071662925421260772756765505203320843268504121957873208766573727091952871712525424659439897682202427143549841766464722570868582575327221593823642421910452911099091141225728686303058609451115386818283792236318652223565095781783985669586991022406452988297951378880606998606347874322953785589865622955302857971042660011922652781995673564959516484721658938580917332709312758895327207575555764398923775441419661302565255278476112336404004120625323471442329096720397736888640843451469911674878042683803218776890867478834995103176920884837286580143750567656509286964576281590693138380490395260533658215258434037910964842952346418431880544370813171551298604895463153213567773823997373124845169797502923586161027688098612912425037142704326582422952830615737253597638890837217175691583055301475030331019135945849036599530218989857405219152773511637044078013741067054560397920995312669120396868267944255881191006011698797762919836078389408868942764030352072006450314470851275363813584999670776420059128808870013694956821634824920210333559267184835535061530876757943789933201601968964540752763221252012018161847531609233278384681134387502778335756443688914697304518911983661943634506582695535911730917673492040224400922935814051068167601836387970087044690744060422872627284070435449809396900222700204890018252528628574994385253475108332527782216865318712224478585465646531235073800785978412027570058997136525582352294353017889407323031900074465829947228619120138760724616831155540992563760028406985237771125212090945237985735871606634158440740979473575264624455712792584743674900134345887808533498682695154996205199960311543633554496370358341403591711921556046165505924925987573119506204047581757965390368917921482350841962302213659838234791893192358085631477208492259991692825774610839264521056914446777390666402060179112344065962725197721962435090688958053685356185375478938706554919751944755475240930255900922754445920930966927949684133634007547557646774655902428825751648871821525180552905945652671891163075533752504761587304509626121534882762169558498553007770861220748199567495997709382085306136853182315903073038043244336900962595689601120569339711947258303971389540801039913566365321907785570786615842913658716245238530318950395534156538058815823119084705008193064926267730441356288205509726419524417870395019944086118475380339412157104833107142021123670650525006618510832209736810936010598406403258355420617870119907952910220178482936712532321544825956342091124529269625252968876407979443865855094384937551462701361277462070354987905018685949056294240442530203641576549934571756704328291594632262067866365480090118427387525240714786211302706999002244549052746755778875731834169993412714900386918506803633901107699563700252418463788122848580573189010317315681552253501538645821490743364184175999523969167113868928542677227571112471735013701899017604603017741833113928965649876313871080949963729295456807799266689066084811169382160560458965875722621596818730979387307951896810903935358699295268737466750646341167691675400234417860741459460138313057193827360429990421197195617319013690696983576080355054219251988576267155451387321721970344992583157447680054458587264936070524910262851380130089656092949529174549696326820270307564565294751888532466680987112478739988961858904259069647494575206747276613614952364545615954127284156361152409436819303017528010025538479534590303589426868383523518483784408611252722974417390605668603852953501933976780236537299248100166239607359744071565158634904657137360916254398185313675297439930939851514561957295839279327522427677388796319514758789678980111528577428430357007248454302561997173869609821378234437243489576802969354859394426287890710335527288652039016456179513186370593047753770611634125593817508172084390495605418528799127573722502237977465397037436867009796060055548375335383386779531340538053490001642978243048929661305539344877696250555051399323180106089946062362383472886790712014581630573913376746262520567687795303948258335212298300508637082869001732493239412390191087202959986587268134220829446566857303733093367719472241547800017679186985358103633897594863825236799599690536317988587184732671607506355802837687690272141956608061738105429660574929788719592935208688315381137598103105135893290864551303936293169643130584027916866880483711100675093266388612452365894334053170586566799402335002367455965848436087843644950828210180916653094495406156226772806028505850432866966591369115237715074454522133265813338202654670285723552789828781334813546739998064792762209496318715491970369853603812290342361633511320201257889496911339350373848021975058671530282960889422465159104690651840928199571235969230462322603259713238710961570319771070906725889190080181126052303931961204222899143799523142605759268295220215493695438529547414257629423135936089952560232665807597802495419802843174690078619601016123525947084189845571984897076084767064063401180166079886910034544553764116628953654730894223651702063383605651113567696736350163873943218916855260536707416728450888213022057472138358479142837131515460221441286166871369862946884899494931256401708556755441979278956012181301286206378130632664603470591560440700016563143212545438218211539091384207426840005427352745469753362424782162184901882625202112196341806574806762191494967219385855273055923322817931501191149238101202662396034270533082787228554284770701179359854859008816965758586457240356119239160643157861304681800855245857042104196948170669120473639151242317077027191515077621389586162281740324310828606923218243001586211070826270889580408001019225294091973272460511254309533170377721343795488117631891040697213515879774257689301229746638103821162444930715561854485084521524484101899204711635392483531247594101144363326597994584798121090000467452191385297290935144718026204174241902311713979207321250667383739990622103980013382914241982311300461065532739601824616493205176771615733821714877620802169039747163667125310429731803099583426677020878269586497482188442358327227956445161114370336864479228426032307054442366122932676251951678266426045872682346519629249092537788640255225987343020373984051458229585398003468401603727395291419073623680359700747169810057118550133042917159425770297484061832973668985192903768102527577435314681053759568653655221393930123393402279919143429158199518251949880760788899524787821174629102141725696197844036932592974604354548625148797884093844132000775715039804688019063080292256579394193461865238760943629588680868092644025806930333782753783870656673917607432671459665309551477034500472075687485521422255378618084225668527412888012523231082930665723631377088671798742281204938055743793311617281389006024789023823354039434034558030851729867791367768407793497326644045375550958031651849450017075063175832741633144683944353078566949590642916927619920076162094799966117202547110106471743673729105112414025773432011895265863457589920090955534360745184404037434819311449861397598087029279197681422657105346758891136579125027990788608480847500514601359717638823029756868733640363104776150384446338899066611724865340736642197096309068872959943089339686561818043278291932194557597300009188814359059201161571975592319778567710787894840046115826782656341791446006240011955143499338029955844184782995344720554709766525716205223773177456701169813213149392143362367514469386341333245307446773819315828888438616389152212617831279135026465025761318153865555262119783141246012548233107867159051030017298915989625716945217701211387645424821127752213211300238573444773571082567827403720743856313295647058738764120188060627953568856396135837748274121722185628327430211797911671195165514390754326694535162802219280169353511813244717231426069346290034055616470860964327895860396173793657517399306948478601714646865804582415893577632847793511991737838851889788618407196135481619926152652722804903466976650157804811063887927578984206867210958238835746159129374662544773957446875223893201786727931090053626192854246230653045577184088695495399064009428053339051810223973740317694464554129168449067041097667411184265767622259527250062301765965408870412045351504452920804138117299093732390319258491184633029935080445389040198173665729076104711493223848151760089585047877096508526597547073718456237846237453506208677202119584610548425665420960440610537232692625204500527569832521135795303073183095567677887093281843361574803085108754565489878795667180855870987342800549862761876515659574468412283093540426082372846148866190267981319334483190232233237855076470530187013745820586015806630859654058928395390646220847008942882215687304387535782311561017236720087437837747961338730538752789962717209415218452732586989595876447757674317032191581983606179229246183471752240234725011749339145419154837817476753412196697283366460645781470275346675190576121384562676876896874952217279493201747774854076105693618389553948383103419695512606673357059700539055319928346896305084399957297600347050356495664041776755942161683650261663504173432588424967094602704573659273772310093591801798004904172106604265124078803918066501130029570799074148171014694523046154286762590790572573762379402024477872090342015570618185258518822470179732226835964917628255812515299360343357917049396521016320894008941042390133864101300033011558478442945504404055471733640632627477610508099352039114380683830663551854294336763396511709222449909352699315581330244359593608204484610120036396654784818358585847606476493493048146620313926894609709773914033194700232526548657632771942040999757992626421027327975749267291772134874902494100378763297884213514706110006808723076474441789189213533554699285918704424067581978414014706794962645748597554383688276474289556903140805330867124306465088011059291901821461759270234014782412275409391881380953133844258936105159440329280061282106258748259810873883109376319524921082283193206916578851008204280277779420599734797308971494268259764856376386879089368330893450302933994076304450832546472887726673510906672526780858712875844371560283291236026745140763443958438163634278151724951521660127459680325504633661932219177124927731356606753382572948020672397569756297827716022448334121505645624120840308910963826534381139159088020790821277605724552315607440320251285155500276556946730881346501655428017384122301676763929115420599164374383347825435681644871566056548522477161294825318038891695052344300248558892226794105779485313647076784095178179795427626437692612783893750299095217946952056596455762010182655024610536249840758389827396666580074470462558487507192711153834062732562517006761950221288294923213208460380652277888435333518751020361319360884067073890620324928279866204649669549642558693407553363476994989941846189211319485998832446529219158351885935797478654800520182623235802343236195101734110096260393872963287755776565957209447968357271798001654571273341020664875159093750746528046813568277624048476029191522332228822725372002887419657474825119483130563010100752894674245535845264753792834965056611744042860648790299805805362932938657601063496210946079244765561450336541381570982342138717509364567082693597370168840041417107196076907127624971203793907505461470524365447015691245772378417398056116411281549191566665993996361012333249899216663223950227410874686384525776393122185134638231105663214459361590479498652426834946719214096985274798775510318650151602573647653074080778513553283082218102655847017202141300299393500924280091895777807385335108427884477304322268082752079272819895246178177008014996340081358807615529637279928539799270957913972821065838299022635641339307120434749496363145642335055001955268749660042654676329678462193237493373466947595278401605254832692957962332707461943947685825992160486215309758817474840642579400536444508784010872750191259975391812124979582368059636932006605338505021724617722819524962675924119766321122328040653005884844152017886987505969954860810082839255004547498867102175547008373194955253468973478068535294952696632740980798459392672955287631160886120920858293957303155389342086041832787619132250945278163090237994286963676366455136733826300893887012353924864188974826816898550289047624194653190084440575016764348682097576558854766538980631173527665466042959462083253487317233478668353679411318056586727402995621677158506044685355258722154261782124979181487557785279891571859706844676635302413159760655778572001583519014120702266139077817603525314186574607819216889272462470082231861373982918334725012150111815182698500920202712927117246702682072985254750998626624200634891661645377604170767242914625916567960934558745390229360725389462188450408105849354000549989589517548637707777808131640804273916455864581126982738745753816196926236749086723753327300590908633337757230050906061514101090286734385181451449851986568829829430308121161517592566488212782167105129331917201195213757861695802099474550686600687984299290104766287504891507178342184750065589583636503113428810916059435106264242826518761936177823973181894194917792092480132627147547727407758619253077651444184273615427428273362549983143115941847837389862906542211986960269996546386820854916620566838750192592483541524831429508464313794943716903387355000937804240719289517847895242520687576108949201501008786792125875538094342166859510379307945500259932908362642644943370846934026657673507353627155322980950400930320409946360770400845394338535955693452764984101138842536665005814974240690243115880175562169888136247371974975620821358528263926656237427384732112660350666160726479165283354593284087173563082006685683304120013815712255755579816424985801942721797398489425521950855140781587917713412015982629087136202181789636859083922913119522172235866332468987084116272798807509110340963538629507599685095232495578662358216956149565275784794852154990315939551600741805712919843123861733934391361988991492325120810664655453442156024826469621457173045905821641546257791625771347785009775100588125609232992554736714608625771993734304141375588751123396189657723382761344284947876022078508627088253960416916210049371376236337826889243737751960203529439068159436634938334848269907707576320181076490987678481306701062724998422615846957946971568851245766009193836035842569173757510144178568313249733755088106839101850006323946534543573394825769969558826079900763097327913253745193578128148332590706285721992919279000275166513271143961734732708336082959793369478498743770938078663933368907151516666018941033914613436086463859877154762145132529467351318229342069525974291015526003645846463385356628584830563600497565114691844369167054009326274887572464711997320660329129742987755828207755260657375913993841258080677141926226064574974800250680533256145057826611668862814908716734436035223467947647322290633965033241241833594690345826574765758723057069571939614796206657524997687580153983624396720511145121436602671284175743045025635344165921732824501752435453435019171795775096553153077881974655608715153230011461599648322065834028604430486354853759908041927184243727987200530275568311104779629915205987586895535313759078933265926985985342125935733779288563573008666394598878929885135336125338343037581157558727871601634709952330798889242510875018658353087779144941019126688266060677018807431546051004233894731504126212892934635889948724340496880312443913677210792726112902537903550534670529449789431191837787127721654120525443061494479348790756375797732941646581986299048340671219652178856778748654418510010019573023368846034555262673529737592008355996004180409804076002150726145226527743998938184071053620996735432892705991238626830440237209338276530693830767893653044158514570820624025485328437766623852189058423454004177835057944317424379495634531638682838142191423246344934482162831214801378270824289504552218446442511230711841797762826826575428692632515872980908153507755903220272079484488438750170129992813114418391588594940411260243719544063043672027688864701306198529704759243841433397446688684886277653760658198703420535076473673858413847673805296754228064649122848372127388106443788749040431225081241781003556002978576265525451313217525170887125961222586871642043766065114451431732360086567133411589840303360606796077100342850632313239220021255753507286712358729377372582728142473655067547884252089450090228489103311083633398483194965434211243689387204457215813137451773740145614005839416872204206777731755860680117014133650886056894763619177828055467405733951251840462595234350737080447702225082536618667529349497378145298934469248849561611661316774009356662458584703981403713245499653789409084182163992305729672771016656733750042238898773463053188296838778401820860277760564354334518814823145251739172400344879517769352827366768923573110066863176489202414083613568064275548316080286145676883916911002444142096944701765263256296597242241527120883876066488488652870749843285723404918569478779540070149895282589748191869914403336854092854064241702832088057691994023411130874302830923987826313953745720098026463674440921943993501253763922832872027008879840441473318783604219149063931342985665835690016717831795079182157688061174264073181475154263541970549446349961627202773186011138102243055802313347199634230730263935190617233834831919548694095546579832326415119941810300491643439942617645939733257675712027443969403521146694804900051090982727219193044439419468810388724113299434511525496451645277548343290974345970127931117504510557922211833000427781070285815231189924003585967913753393179761552981277386934419699657813609146348978939678263448302658240878209351773341193753160488862488122991975569460090891956269325453048244726186193332069990605487540540049611860212222752900634339491342350553750678078979452223625970061858939931765313201617408088134071945622037525834205298419481731620740693591419043047482762907406825254325911222132953604278969017048048810601040963912592574540312721650509337424881662953573045351777451019583629590570801730792351660798280760813334673612570571320444432518117330123028281036191256915667000486381935898157139101759460432810055597850701706634812569478888347920265970632640102870395673059579272879468574700818336517064333550222728093378544401579550342765664706348420072645087437622133758066621193237315967483744102416403492620281183554890947888304405081042235324620771087835862349399501752078308584978868314238564648837331050469325944377167001472848688005328908600973236128562808234650483088474298341666317940264660087061388830918338751252662814943035329533708176969700966829377134531168714190221325759653477842736606743764436029143203016527317360739230017774318135087427934073065809495720687504526003826956678719586331489199407630719330607709983977334241751923053550048142821205974070408321162284428894325888601402946000299020815091031963639946174312197971507007367162888048477235370421279944671847952295436336450537069211525447325964139927459151147876164506990572275559643244206096823446694671620442117833384864066646766552742817183529194841404686130212418022164152447008233527770207197886213589741406119313824109028507879893252435576145926932729252243498074957593183708871260922175353941524809193215255563717648365865258955823976626509644731080181278512624236926018204864127546008352921450935357911802821391783663191885479847688371970154054358385083748491343360158881683990656221568083186705559099568616695634501146351405723100905562102773833311332896412372863679888110881034293519995039028907914623169050803534383845595413553535669292413044663552034894074453216135202362549404717714684382685242767635576261621818600950040528333123491862491089055464970038868475378899854076640692498010482770629419728580871619525533382405340049841526617643310389451473150173033827848203435132637802438486846729072495597143449957887239321635685550444591785276428528381271514852526275762827038430433183488367557514835038001493477980916252630685276584749044389685817058225066001445373395141986041075431623210561981944185319506792311776314435992444594325324798731342639572809018491609723418034569105080714924653985183499636928967623883344917348655184257699601557220239463966921183115496586226743110962504272946412367230349200691756767422452224883096590148456487603705538286370294319482372250322069720154201713212192181304833291942959273683116252541043742595464637324408757508932560382933859616766570990732055854509760759863260503111631669817628265477469644638594456983685593397165217930841177990079396191633775460841197298981806564702496573330589010462570269979873477140352196320626613008891267113529808296133321280188299191824147490834564917914641738819409971648183842574340223319077537919686922888584755426285813250502102948713658723298843144026263473695938382207446741967967286740815454797815629731888279446490933403616076890411510711491861713332222589369477293998699430665660888099149343767811302933776054369796644729147712459841795999699680177551787420302976950047777717038598377440535210010099820311869919637920760116208744848081093755386821205622197715539879232951965011011437667300443557169320631053629220899914220003946016442848027033147191934495764245225792821734766070370522393494370180879944556082705792574494183747453584556287985817989295982019359306205979253664818140882002341776509431013730163147655922437574676653732256857731868271033907919221749014358564545019613543157984740641955750171054108855861175632232057795509089341357982002512986952717194534321076776729434913464351184063516607597650233742666206767270908721716809738341916725614078835953318049607039005128670428019916515920954322049539519708571459546476922068008745358374517436434944508442768102879811877738154442768634046900603322307723908851049113023324587078579973964827562381249105361749709971690726471656503169512815657245338093781773984938360926224748288248280379443715648164034734015604747542081968061964951973136579265249541149381662322896148481634756745599541494258723160614029590444332467435527266156691365778686923622323762399786517452543621965552359268048471570940385328156138058033429904707209189047196878854372585972677106480185840904184133975003596658777053935101280142463678178879713646864146688164253871221078038460391768089660296482384119216406107873120258246576697530159691915059360919245098285825379707964774967995756169617428037290527489354542897228651254604119631422677089787398866766254231500894919853387051325306293604986393540418160748613315288987599452885205134257870560296065721434861814865610970968747181925564091599043528281264517016587117775630095026051072766396528214392400788430030131983928787848122585868699048941327233050949683645782074673165120099354770384128563957667532957097533138948609179314353874676923774751026690591076490850446670698514435740255889980695156237872331393544063459815590036100156545188850188266272825209942401886516329928532022216152625863459848296966849304818937313248085259311011872452159900533270105565558566040416495902672092554777514520266304658648139329986756315856986105106765447020899999642274308027101976908288889504866154981527249939967268097702759372455698655454830930567845314873554204581021725033412093883939232625233860954582105551865287658289321638135850492899725819492292061284188775914014667200327444439071645080831963890377932467451694700225270121165132373264899765902618249938803152938056356096640720996862857461808901999253242028774198614399906034329972157078282166268474053431554652789111599640136365046698488733631917955913176462183688306595597412673559135741552849560155977715581723046402914832504593307298264393347347067692254633110820285341247731995281642495781116882009437260490386114282250421351923326058727849066935131781576133557996501741601902609477972503741033916633873277525409405581099714017996867625859773081438724224136780338471800594459099467177616890633149520097813841245701459571015709235433709831632269902244685900194989287692148269853745547490885622139011534906833920822383646240227796205726764332567916540883411987553927295582031966549281859789896400154380083633133723940620157680124210234054722438456891285863513837226120719402114804838888805825211301579557677843427144739604660087219974299451200553718261080465203437520755729876916198146737967552464369772165091884096634175934027474952754677777889907883223442488158607540221232239006346860047172957078924967262368480255218974539264207502138968506956934559010120848015754199392567411527228211558328037946799879311025679678975349882292234113050028403106496806001582271604339770469338312089920139762502657861300699243597474467514678269647938511308988945756898311072516640199725891424290301290489295176381734852137844891090583354372760991694940261785473822609476735145209647095450985896844818944311831664511928054515671475856054201644907272829305109604426816103855411831537557276917756596943528483507537428154255553636019083431856142508491734961026814353621363453538590764255349936429971962620314137811818523550398058426056930486930699579162735458817997362999594916690369105505149926014135035571747834198678319832866498949924020648276979080547550962855887412057364287080942121822973870137230656798240816849595904322302355038615652489643450500960856184361741713171061952896826001953129768664500162134857473266251562607448096247275505535991708750234441635190048876167029168324980081583518870872910728234840554247269129559007274861531271086586709496170557426918659826751524017261667749473685476243686679726030216203246553775584872968882028219541710462599509877190340933933846208038127265467089522794016683982328228143819073829951991831679305799688443804280930021410497413937425741284154940660535574683449429822723609686123463623502098534409538312346911493393049657614122540185250257563985993880319817598172410519421334917897177786879786707472320186410654265341954739481837642393190700566223527448411371314418578064184326733864578561434574866469742189076963453695024183761802436497001892515805292150266567680613591303720491438781272846138910626794706846829336933535953328218518555077543619252625189132468331218389096481658870379061604115720416317641679672625177388954990033669862000524514161157011329953342458482986112956302781053876294787329710776337426239283801471308755779860740207838965760474261432379185256141784203498697403888478258706753923984458826674023122797063536948123819956734722513133754783694788900519164012516066708234013200115004827570001488948089760770112199141519987710294631538601371464069313416414863930192835628651811742529443902377437250267754503840516161348414102269109637993964486000154760778914395227900835956046017262799929844288774421806695053594358195758149182790474819647852111223967801966604616071502527769895912409336719298878831423221727744363684899532304000809633747222862701355906155379333141179764743271987132986134440336457460934761044992812915815386225131717587110741924241476829735195261985015819828449780661828439854381792780491150137851895794888083474047075146489380791172536129428728313987905811126706570937196610040761922928157840444710703042610571820036334188636087667736932487855212988644325103541518557591085333539805292731435582795856000115071329966164487604118548774033987822197242754094776515884162717117468760763942607121644080669293174248006961656708643893017225924040235029896994268543403728107984669028834261099234806501674075793751797507883806844066957233702610938883591462540033116072698500062900514076535900334566541250245274449789450739702100682291035636691631863672729818853705762303140289527830416175130857837906745984580376273275120942013231764497669201425139760140745774645149515934411405833242578569783742831776296109260645272618831551230415579057768400915222261545316635338957294805771758584734003256005459745403485209753482866122987245519900076571096924866199738457695023816363790430508798807003611425583491363741153417811312744162577533881030709207820471923546553388880968339745226183659063369018977817225921412855028202100861815460086055636536343867266908423818304840179612439134447698520741061658471377463781959839870451187076049896444303573722647308766225557642715921480210260804636488394551147390528480635569627844594335179135022695433509411280556758143325298594410733146493954120999209015413874726617329899928481885496194218274595044756211198270209951944905511328418524024309202361205285730121548055662934170712295593441448897494056775192186939697331756407911100416559006822729609264057864862356518271299350764363675394545291848917132660819583493124829939875541712350547859121066115312643988058857823930929999182484379559991568783259017770571431625562217166337146097531293100180838670881583675676086572264628038120549090735563093325713354934255834836248985199420326824806915082364516180796970767922097119445154570263951570973100945555069580853657080489175216147241632643291945388287593015372829796160259639205804344915027051965783352198226733631577838353932618595191359614570872819159029370961808578235396111841719937055877919684993096404998210813942462136052985401648994398519084157838209655647167288640644351060899245707003275007928345584815078362815284064451515441057917881366089697619279981015616991989730319363662331111595207169702668940497775805742123530298197551959320315979716731678194133225816733890454461122544739523929926770004739450142118198818370889479368384409613995366220338331913195789717759445612504032321895460286089967967262816788473555515747939161021369170489628972621381418159494954320455484766662403321494674163742858312011294219733511573524591548446115318114775821381848395829210731026210893111477866438013607156035426234205319620078182663865405542244575376214873207288931098780464147983347121841229294558682414207637400814889407600303984619414785502787771271617158780754111139593971724980012186393615144446626063407510544945595326507355380131206840147709679791487187854036186620367358422644179594665740041914024104917272786308408218412146905076129774392163004064141473621345122938664255400014993312954165052607503956936132849098640662320369542537075332245780946551687365346999743462559734230951697613137722039121081952444796331901902002615664826111600940573623891308292333719290599479253308313976389072055482089935481297715522529358838157839721820783106019307519677411520068249447144945455169411717464141946901093778853760399443171213303862418395202908131657691657552222517583741284184341896337956033101417721439293425394904672156649103816101585506065957828947606651933902026556764172131590614039770018831652304296356881578374486998976301492601824405336197436240221084352247690245358581371909164820712717507162464610533867527314128236403871348007552558243357374332916500913767904465697185537646873532852101207779713873649443790736343755202096618616337583291856009435500203195162534885877405567242565576939800225005537128599517230838849810448062338578165300434530843591049254643049064870353319309055125676694701164846692132720020915911012985919882835898129607362905484267162465707434876435259009271234255457436005419315888510946024506681473925128642129287286385906623662133767430954604862558643658896547036408759549119167346471882864068514523869615710787448095084237139185588236899632393823280168024153343737691259120320990949611296354941195611580193327401953440973217356170901049770581486035259766184608932657444570275445837043990922798272129770751015214631660268982661182187991951158786260990054271277724072001930031367970072969135007421991655921474764287581762215808861446197044648022384920926845966689471989327940295404209329630484313690570328659021406603937999442098154580276506853178007938886705377208870328522911119540507704843311986578716552167248813328978146565993230630030715529115521840823294890916462258726610915944384593876620144602619423985030334512457325981586532637888230272907750838975055740498899243725203349310398307781963022278669143978090621795211218032867284156241602304770759812570602692300425549123322944741817805011956818829180260217866084675149545419869246377643962842650556233210684730507585529370791075826551503812899693212347642486486750907811437670502394239208764785484787653177874213745172538165048513263928857668004636599199706499612750305030458613743012371173017161943844724081647692427827980760644068481403205147054346896418288584116176431955109745127496429778412143394908641483827814878525360929812392909337965740896265494764422312540319221774723145149852196922896354642639674246891525233493905715491554390744741619886149277914108213605485205890885779495946878774615067240854614333085416865399742040383789872313511778642133560259759320715510478840653895078838515425321721053633682732891747262292850006495375118890033377334246431828570966946210993406820230172043945999567082416406898315460728908191531946472073378983985312825685311873953703945067146871862748906916475591684342052598030340726606596570632308070945314152694416352831089405070058658338459885125051950826770463359816053393303388908689948663097005305208307602692586517438790345863162146909629839973303780589661006939134903162881083806426284129939066980845382138698835108261246135954226767102197910131845836014941793470832225279152029252195658803775777220800631675390695418550738263070953056489653898098159835545562120481309847456994994789964000980449386960938578429185597647975986541455812170666240386912091485560317236620955815265022105084647916995554123605497716911416821065227776061576152168960542808614575010558595355312887272274483394156105909387041097312821584915284779387785287043062001913222871678572008025114180764260663196488787546264647800767174044230207570497712347806522184530035894836970222752441692402060468240175194785860104353932051080769198994860456701524971497079647862551950779066929266778047681837208016228525777894064007315446166048308355645377594852178252770421976808084557217008097048544678028511079625063981954454253554173360098046991750362389250691122843335301476933822795696238203360787323158381313085651953026779224108784583701224885366941655031826819275431700675371415184068609230582895580754313792348569268655047204466063547858347114874278472743032448618409486782162824347974243699072595611203836552652556062676669016465024408076344402423276019626209939939372037495997149883409923233170421114104676560188292797380023607037255452253828787719498263226578572954836216812314167189021964908051333261260011968998065231654866185524717227966834887049926157339336456910498662051247220027071407707164250814860306610422387379207471413728041745352133503608671870372012956130400807695579324327518360709731942739003181653253386169991261151894437269205310440970381250294485970651817303713359654314613263180433626398210443353266407313290625779305285311776975843709512933611202480975020405267457697365587133740232450322232288266609858337986180281467648199432014849750367175247651504672785285324471557914328481842614551320318419325691324679617968215042435449850235486966804578571792434067577415753136210907075837806605851153175939619478313903610638770640477149902949693296915605861647138853288080991007167213889910581836588085956792854758629356335339837316885443194874912251231619033913616539632489959299057079378463462780785530955469723956764294207291620844976435898248827046144244529076126112158633190126142024217260406635845283238942418408500564108989416897295530054508113200175062899029061647387136755633655305554247996303085069260350831773070923159365801529610500973740707285796437124693427302293683889117205015024225359200208260177542313618422902087950258063724309979138433260581456368164046172550272674723744990805528683211862319862193035850987395949501111966940221571415574394288451128423524416262563638590593001611577963983050849080443471714084809334998845672954318486632342413344357783232713167985548555405854016740609092614307533379088883202346735513527808313475145893799774063465318964041247813500850530293235900308151634448343800302396997732511512110280215439711778979889006409902039041222527762744769596728664783426426611713983545072929807339598508091057705145835534209941883969396047482815943571034371024457754896227435728017908730268144247760721281444039675495032418736679383964696622130577956933790287119938859865029377457615055824270835221131971849203967788202451444123553025925664698764494340175823141900739722044753819680118302196210861507384445981273117295653275631030802868520745448692082304224291210265932031745077127059239885134217490423120854741262475537598388390049068134846362250281015667493426154886136014128116133898746872133450468967292718454555244821442317889097894163991379166142790289744206380080207165860759817493239104354860678499939483510260084907804728822686747880489607308759636356096832548258411054533701428427648037214313178464198832113395969439250242002998262595910829367814383502564940509955253235424466660657202092473057288352321385117733263458783629518042466994072091549180262910693029109077091808593949909803569149061149077509834265037878514910343596536552874989829028284992727847278153366753527470634522205720412619212659714436224132510339456680585991900831387389825923815218219919322578528508965573428918501131406646520817791339277889165961543857171690196861444178799796503346885344550939555816309695065519886538308073594414434224926772161049145370663831030404184586635240819835001924074149129890923162849755219874564578852821219932591140933754928463063343042906551924217686522355160280424074253763393491672387406610608963399976729759044634814444094785605861953523989896688129638338399142533932148128681134254389641121321394998741636418149739825830853042297001859817297434127422971568775735112413701700340179196486080540382345293299556605842644586923165029670197684513772427165228675230920585738254736973518410685785422241405808537221028795471640274345899366622848774240236215107701413972622609436436123827579134616563032843560773523934508270652418499679231168449438192211103948605512312204200063751131757415169841832708377226627165004155742865545710743543879667970831535322060323050529276214529039976019220703728238578279367985629749011305529618045558085834716180969951297703764744019783352281481508293586367103098536459844044015083444612048075540348008907947731194741121265370705883613016331893195473787378361512065803171161723220091204256450946672621834205186234508928818032071721046615825625472932854760976247554586358921859038061544765313420802724691376192905184714363590378182365480918918897084740746149108993380399028885682143913016177242953514596513957345728852147523753253150265225576015453840558331172762005752418517227610396022829626016460780532624787533823602143987090696837451796204128587583195753159239930788531358000346341899305949524956937095019817143420900271950655327925097627144816392412493778715251669767673870467835197543750284608831004997016103674638789827521526164695881397069838977607810229626444471740819944024035205592527182428374004845663725514706841069479478201515417023862827593067929226902675849585055334031086202802409276750420689843466565884661935944230593504588706169908815295506742028659144754419653350018106905232045245453774818258625261350249041676628034298349189069531077924949697127890018267322928655401151276760161845591613892399120146644565042555358039019120134785870275929492238070146322872018148081500105030708412377502002470339510398945127839208456047252559740219998237534758999407071501207956013342584230476647900172673444688208982646936925447744898444702901935069066573485677554038178682771056822133798042024169890831503183535731559370701597128654803180837932911635948079689645203518400167063721583504327371010262319034167636715621108222379304358370062899112016052291020391178203848674103594026928954290462337869251242658797794468540051345367296899300022402182456215700758610003366996385205037938504203997428548256153354268035859537594525166289588521095608125349194885802538011251328587295922033493002555512964224933465069172133685426882179918024602318608143814232867279173649528322178127035905115700152636171531223361576104406054952124677548664492608632596894641250387369001642636600330491064707496361269021003792557447276878609738624147241833496169848814025152311074114497349260980783877841539640408811606965123934635084389289456035681235753530285980450739484642349795021840003748453931759139298745078719757861368010796499923080048395436733739108237145771676611386396603170120291990948199262121601811430536066816560005981233919673283773849180024070698829825836111359482311216945488481085419960434419155613901428691023050029057686735571087652264258143987939886904748825111422588887979641092041149388348986554602789402360853755111659101606292963127088282574423980358963254850590931561749147048969780226950502905085708226970703510638966560998768804218573745181420078804249505961840183840111326512532045904572217316584768852332919848641492245785508530819947290683528341868973108738935489748972285759235425516673191948662945908453897131315475355075187583245112577498616286393145039073958606874764406635249647861228197621925000795540750901187267277690476523516308848523949784626505167142923679473270170132108788917934525276341661387658873971944864869069773977011108060172253540544757040350760170819767126248554615466755659226360574388220137999599309847935631208508918093223479362803681577615126467381811665104074931403606830246062060824183213456215216155069276018414426932628950560084712888984996478696516648952842468475216039205876886718131998265434316520191452163349389746749889258427135572566931796288849243043854278781960895886469501267253078444118316605918096251072678958887323852114957370317478059585497523759552470467892372632273848189364090630112794507823794439977884021215476908394662819715864414547598967243705022425321797172731042053785125295857885558434148628085069023027570382746181196033502970632491770923701599193010864425620782314756797827456262889437995463384679288795390299706636042736984807760095737221515358184776142861371338236171734772521302344048775351286968722763005363987348554312490891882486227261648035856702349081323260040575226890532085233463137073133407139073310901323755607283763173938292267819187513077128291551598890058467515747353211220027196213000024476317266549026410921457283276107243552708372393344990172189840154141548665496660022658739003764395209013802180302188973679514017869232218931357073193487151458363079293546496271573332170979488847386446706037619810989059020715339380994356932949946613416658524065707043804346426180847627811973356273305528633832397568734384772658137969819311677899782919159365565060241532875384677982989522296808556734661069023683847371796468144720429889182926241534353553530272592215317844437144067756724026141180305780578598259432028722111769968839267209339383294372577471254230078066663206374563096870144184504717596643423217689735327987999716728952937328552810504158564987035000604157814221587276214664362888921427909416743734610192182143657050699321786256101730233727564277382648172090990152582848741697329166538755714388362458272125808868828265513985266880066233814806058028011749829328414856129454281958809478693273690534811793163759983219313908555618787424588921826414335130061408613945303165528464737837280885011821747544899945436248919196921238401019647552657885718240682645361684434360662409302397729909529830620614116523378053591675355142769924765569631857251671053377840906130909056844987948100862684048386785948054825738599771845565553499353253949996970156217109291526620581307577857555005587781986952529904038738862254447844230356304036272074510796874004788808566613739715670404278605384659872131820590804074403690352293657010689206161316368304110174429719573021092376492369968739240368968347162798760559221921295716011126802408566300235963541795833195433882211947544354529706108621291946689610907481141740137691287155035016061098537518137068294467794995129619926066913632219382593442199030753653163345542409424254125146985303717084783904377934912941780887463547009693720912111899857246561248488360549259086672455642487103763878561830067197497043218527411428131457706284659869793657385946764166226646373587986512994387422278405358573609438149246720533332627283263803771814561431532165926932056500906003033487348025900008968126995631654829626189871471205761383921991198961528882617977996135795781149973329031749634174407707642608300024579966706653355312901594558522035480980550068268089473503441542609455683640442081079353932587034745421163959460680605033977530963835127752591613736668781567830510536901532321661771424543527248024860498103179088731323146817163181577943433476185073112941805950483677059827043845909022011622999594476776193280565472085791509093272040078426569794299751915256559454430828786019236375668653902738807842679268833495438072795014451294759971761075208041188993381800945384436688328864919948377218057880233226044451288018900171350821664433243660469133991111752511506888965809533866345793737299613089654578962979761980880944845301811751385809366531340113479678375761007790596577069782835536671058050192009100151094100135199666936011444487484007641347183563875232569161290184187702156871315465928950125144410845224318586750798189250277039686806606106293741953431411703410495179632800701436183403275436929594404172556845025195831336843811895928141498826913209748886851199385415001026789975019032770578663476987754194370232672704801117165057650205765789413792322178025465746536374241959405237812348006264235873586631144957441758079339703585791584463712579931148025781633003565915568689007709439315038790637969978234082517505951400290066104278585901104811653759337794403210661143674922801726556816618328195712017955927728373067965210916333989346264055399128801945755091554028731482042083278948754136662986528549077221244096771105330487611170419521842621054157174132907570245522979237837607728765426012077987257804170194514262471406676263396314318822937143262553497091899558401295022214170310493778745215388691224247379895051025358684295088765004987136765892924671657874483060854332939318476620104170048474908706022332798454043202775566102837319968630065591218028034423493249906051693171481770713125459934240219804921870140634307641910405847388847218153937010220008761947556712255992352476696634274960191614644836108360571149946324649451256364672075513704970933002352876858754994566427244021098857421577457042818551628639948175680335166729234438741037842530125185278629956874883997579576126419987132543370817838375071889895737927532573974625998311667326035997275678706154474864404600756798408316007966670510496932813579752648165276596453096703129799073135864903394568077681641994008435599764766896199310347336106745317042318828301159708241999673899376467477811407896150844601710630669686103087690653994563353943095310212978693010335236916273701631878681207754673472035391128389540727016087019142182560850499914517454804206318673061121358258149515601937431452734257951638422377625045434036957536346987159812047603026314965192538805059140297293910559582476885465068669685521078953025565219836465199322298687988891994093229090609303243697528780092819858142182618067958213187149805707946854411685799043415858181151677458346563149377084235778252670984981315729384165483101207367114740479444458295718750731698634953048365460074796318095312583518491795454092808588059983087661115143862835307596528271090975737407691595932004683295221072990833940334921802424222565223382102426035837198488824399348036184586522833789361868746961682246512840476566386410035858016110389507230093009278159267879618752216075581638863049971038234289626594213687766944712181065157964488209703551249919177197065114898603373598671454467042136131708784016880008710238219472792188614277536013547155540713867091131322924000078506043510816017031395463096537135460633049542092931154598097642018149344541580600559373683408119996827090782001025664153205984826080109662909952991423221358377869628329134947467346348360576459646099893131613262603523931081507852558991980935512902464208452778011241705224395457336531034838401444232535619517275872744699390373703970095647069637186129556351080494362692564451455555726831698212252204739546434365376864631934794070236602110134405795622642081384387101585298720885142650259658144990840336498496290849669863234949499902583246412540268115853239501027992506979161788255805088891296322664172487740461489921402884077180921252524852556692722499567534063677476958945325505736137978928690254625985740178854633695465374795275926855549793847928533017920138062769504223628852997572606788274100892947674516890599894730426925148879341899066214348561034059440698093573987666395074362928016821416865495560829694568581611100614439140026011953488355243823464934128241145379015164284782246125660493612703181385866134612293187689697472401974245926163593293468022988525066081879062566904635333996312568950432072863092706119550429042021306645921191753816761091800971045633380370019403614698534893747982744179464946458260802606509252020733882718377881081838530143581875030729615157343278841531034801928807966269531235378089719775620662235873525764294840945242633410464107948138310599602396745509784905485780231397424063060102182729274526573013890711170893202432701102459267744529811779734640124983184444811972890935464148580936324798591637753789308528852997291833611802661564855300751790347126395905174763378712534707304597348393631650061818310805376384431438852364260048593972415571508657614346820277672061565820336788114870991353565157176415177516133129526092225487150819394907071655622353619015488752580324714236846426715866518457325242653400904540663853814751876941358841465955860668341308272093085283485578087561022262035551369897747549523376262197566440480542983327701820953245310004532399220727341024183190646470607293295962416956547877452445863942356579495326203345615519330506299328830724222141506167225382735721924125101395397256481964275105488902543596925352553907505056286950864426197113506305661704217652874656876227064713307816119261916557300728980081550456721034235279656973863934225389473128432396371853165716648735902439444947000374851409419200770144624640707710664379930992971845696567906195097181319551039771887275755840068546616142756524558111129140054203873604741523900696202674723466165659112476588090133797363573584532128354823908644955486365105248094458501161986616559610153171041699110738990404771769446612545547119653004564442393362385640471972018566492311917214546019253918854332628329718353284620649356768240644003651147738735065677323857630852139763632760543538910146467004848242508561616129595950368248262872453188034868922839165702207053871808341721765809781091293930052192467203882918801836534679188498144356133851833010722959588880945071334184360445289114867959201400260567199093561731416933152591045674144810259533478972089343896654146099704178710144245218251123418652772626662557319186052230577573476024120453414410660536194577653249216884410330430041220957018299785654292048954954275676319666677620743945290350687472261957984180087145320990297679614105228607987740227310723739994978853906953770265759473848782314918244306168493826375043610464894520502361029406154834462076659419526296449849621023978758960344179637446895242184995974482689823161549999057514132327006624079404241835736704932835136633292489187818322567209532721616604284694145732072539851425979622095777478784447684041177710292475214468355152496923283393386368948855202273280763286398837839285070262883930587738502206462976187229937032089926831117959479208281556287558928831830904412185710408427716430041059795006227249262325677540434249104875584253204141097678552435438745751340173623019484926756433455940494395277669979122668906208351022485144328605649883795309670768817686292556132494164899980136458184079875706478663909833574686235334556738872732687626389326192556373044639551933502075692931143576966903200225474270354481060460334088343945804389647050636256502753516494747427269822092244763044952957393785482496193616305477064273390099842830517354168999640997273275403557695177933446825638809218446260086877651287205625274336557903352291405420366872578745270748349568411026241009501498489021377804736659960846911422686295942864186765753515263208781248391295445649258740820830488976684978870867605692824236704562370235857618484314986150115553956170634309492944310903145180355430390271048267577249503462178974012921200996149821518515016593087612239305661455517373376060091094509390562469515817188692764178416413434180716140594539249126958714741612589985966102302775529489799922095791501113985878691170567148545220246265173495429428064820790023932363522788221815900361234507148446657888790587348767208308962930564390545293580480305810833270098898995311229919076448164366909056623763608249122569991249538311695985620481824078142566866125951548429074079527890762966466570446105201711532181213965428049954867823965190934027376196844562908613900458049457799612829280991549079494509554160596699855807578616205609530943777162814474714405854396856141833962414275097805626481232144937719294141726952769920367744738409714422759976639130974677340413039887950873114346618769827554232873479360255887500335862484361598678236826625205721604548329885790774026277094999601764472066676548824814872351884942082108191838686602218293439145028147946811473626732150620763235362268616996790647111329795164305500739213900839922827461972721218106264238756055581855344239103612548802872673078085146205240217641639134283290840240907523930433863791293327042813622075175456932162109774758563714367229128992785502396774120306589230046729985676541929007987064129469300522062415352156190894305968400350433582941923927163740754808484054611473109828069789974770359148889463481388135028102581720996349932837360493506887037690829807480365821293693800341443651088954295200795207591928881985344184058330280693897224015910164690135805465914094612074987286061810156077645862760566773082932594357940889680294527258508333678192844049537292027040002121989489121076242973776589058972507879524143927566272149726965354733569735007836194063390965888966427446914512549244046783808893269101884913702465905023507734309998585838480817104722554705513547772985531502446190117213246346819729844536249490625449446743009266845144415372349060414713814426018650253873060096955131146017179037052690326618293498754011429447327049439128482281507574075090888044067751559494983514570672457695741038973003678560622551004919670525364424754917842202047130300854916728845374264687674524500766387972481482229444643267921594505752369061778290687971988155700630397243174288846160178246692267868610210425742499819475140848451694492632311959277490324360515265229809355406649216202146202024535280173995991159283201797734630493201794849992841598709542798589040646635861407508505580488442506920848787449936498243901633480595456644583523425923061925857197416127295368500198799046629074628570123173565053152059658415272713147521712509738699142534344654669534601606422307166655990333553617786462430413838304193663578284434765963276798727936614522509767012188724464539803964617648289048365698532756825234250250838205455591433478799422107902014814713659830796870584262209953275140358717768939305790912298168756126406574798799820100772106337759608907852121280120035749925252570864113095288119381654126003319701109739457990470783796143174840172691125700261200137726995908832089357439814747793430964798616273971637662774734793284072146714482819283638361131345494741949498618448130920428951983033953813299260528257433381695457342552424717796367749338120133457355942795859276174807761321483872794148627438144246297606022575258706005178710733757114576092537149584427116054767705718108311322267314796627013953124808518134463194685988318466375877777986823164992497757738295702665807989188929142678956606019213993782066540035740627410338627897078321636974991848643015329274774996809835719809474236985186455597383830613369326134435800894899239021796353150468458102693577131305870149001664446563664761716489333009551497368393423909303481698496607369879442604309052453263826993612473345882095986335833832993253619732428847997576705027667420211875946472699779827418433175025515977191318918488577386184019693096421499856165007449344785914378646636825281413512769721116002792684458754558936898193777398560465765203307490729564468416742881116328557657059092333561138310113254113009341158234608103819106486098248174934514397401204918859231949338404532241062756526983208064216504053812082649559509417354119385279839167787372970264082994058153392801235241751315822150870060570949749395665881332468131013301357964077171777782318435091014969216420628839646874503544841344223953210517323081434974379912656255958751189838193596712931619523842512822460115531842667835394056227766923954027422771210461297451474131174040163436160791034826779070816697006528108236425444037894700709146845890304047392749413878270722022090855023310349670344401503291059662151287132232764672008963397834816562283494948565145475935980181285957895164290834748186348766015994061483235870667605428124038057760087352673720385013065278177939693731469853399443143726193825693202300451246804620842784949247931187891725104176887833681062290054691936602710229808877781349130766464405008868493751077870036956515062777269985710384258830732271964587560228157707193235327068877620607943052695624624336873863707987916093479434665352013586359694936334167259929928395990669598330114089467547466805302171477374452729614519384283009205136740033229036001402210932089145306300125719772429986911315273918645694778261843336007372553895310418145443969538819905908705177693276495336651038530000109849970444827531989990623334646850784276140872160122117085371749597922560793793596582567430062874399878564007334548448490191919528022575659758360627462469287517074422972232263478428393584103677276714058902471611071320897434581431869584350558758605335462107983406665773218109554169896255140838110873731385698682289335219591195093966074155829082687665802081447691940322756661197486952786133004426265246746248454321317274276112801592646055448348175448384797916229915562537598727992463624591891567832601851672370966303275804431096241724488810519645445091841671614664015711007334212780318754312524024085354762520734150023646379911685839926893546103295347455642200077929674506013450170782209936226516357877710602360394965623025105116731545164794186288456920853212912023962975396391133717665446154682121871601143961498475715723680906371255255693157494922108591995225716236668950583746777602324687415639260163930088152611929970748224804052777296239436621555157761792695301539690798407611370562260409268786185015679008546670385172841567047729735002996373963608852900475258759946578379159401781597379242612538618732661936374517029147205909319737947571799201376099395580670494414694434415557129956897462233606470880640885494747182391353182625616251949460707855933831962368872252895245576839089916429506489156867237844440213544946837406760855942574621347045172414291007659556256284026833267325903986455350245325274447812680599400729704633740469572980277913583346650696172499822895535121934266243535808253335492933604796415331314740993432058774944570759093212524656122451163107013945104073694647561791308337201084840480044523739105289428656912829018075321297219473160081838542147187785813306067631536373434213350662537384400510903862461296440669027150400465158036953840096278254474789696335003611089857832685978636670517939826768489759357183282515412525218937786810803751879649286191640671339512373875999608457353699296181142219081976935834988569861654133446306242650414183187248339662699115747210985333131294050220490016001999801002146503685586309307031019748362459126131708179769464835041050373421296045216791870206832480463801705978780551792777829266326855078582756339207650778355012012342919025788949184670351768456143580777863322736232150970916451371100434753519391346001109045936957903403205683292090923975354664528882966869224216935980483226037807276019373784194991785009716763447500268329388348781324031801162294830671589528334804597802311114191201632737670873852436730412684626053127187184078728687272050254073181313429517720197457245564265498448874035697140528719794319463077762663116165393765510786798384561683766639440663342759940016063085486366862890371118272092229843107232573397774601260160133877414617765953336419061206380026936753496293444334487936856406170210752570244222566484164764719547348545592716694466728109654986791265981237176304898344420661511092793870069709619027398841622758528938451116637886154184367578476344875652961959614840363573811251859499330025636805748656479672627362508857497035311412950866738824124644691724761234822156273335944155037545110193413413574704738134588149796346822513585203985271337645221978085680294442410474842673436144684001462846555920802617101121998233910734440818460248544741928355959018414312566788482456295393438528579874618588735316487685869635741021253283008232085075619610001748675529978892419875006322714555715018305092594327174277611505653529362771067165229012556294821503553071307322179186918884200945141580483615535784629236690090555897540806796807780958215250965100064576127372191553528760838642098967023978775371792336634953998559705691994661433763137056318575756955935666817553617846823585089628041911062311753447574091230377509381334460457227057514670113318059503428090557020611737205436924450061808588120607925372149678952399778664927096181031473750847714444961713107931443256349450619298738000270402736702092377223761075669515655641548090200816789572408080845137315770193284051220005659180549364799539755126680680644525179714445310203905529482329153164702914219990493455393565951833435833388717802064885007679008935234004371841482654937812547613160787944531885842301900300347146250668985633409070304138743727269306853757634990330005124397518257716969523248268652458209623605408240473786937267128927612760249846947708573879965680587440994045336066595446279124264987404157829430483857840728394378568155711862164014416254035691772740961136286064255849783423654300395126953653965791687498693857092203893512242589807955937355270651475454288514170634442815103960488214424691560475612728739167436100074381594472788278560066531671717192020232848381962987018382662843258666715848451521579995099493168818776174606817932707287449729599177582713419454523046968716549841062761188040247357470462267249092826216882644955698673761003121253852380498221103750665269608131433466283557607906452672967762190796946669931337561406020915689710807391616781057102025011489858555278476185583299959389746413509462585972660489052193121574224956907231661424742055891781264815447284256966030271699409430575366802792417417600907783740914340446024438229412867524901273510021024660044895483039112017919011256565893814120837472872815728592929374757104340281996161691804985855594417998255807287484378420524830797653445333707185182346139548548958081467385575439550113921475082515687531999685488948105299239306767272628116889612053160801353571359552475934996633532378748502345631806274429218218359636672989110587429697215844341416473375124532976710374298851428728733205700011177564379804436912678112101435880636113889799257360704691764697936058374485499438711214318990718453351852449902297152658204694452347438760857130391137533386218503017167588910223722835467321006728072437887919440843467508252221451715611945604398826432604151574407897954492962362751391121928330828599366039059629556842689589445088228395992399032155611551019089976906950846310679856943336922364662941665052063560221594387597128566137533122891318376184705021087263446809849172588125102767370788956245332451055962966277206413793658370225591105667579563716296862957534392394170035196014007422303472200342104329360337378226326193263249255370195062346096029981504112693159767494001890081384575737881397561872908361599674077989571755069665527193470488392539118946272781192282433387554850639600383533585599895824236986725821978029578022727887909092075057504830896298932102661613310905220651144808971148478201958388513834320141434067111713798640743086234557661797528045509350831806542965439889370067229823337599182069506483358066126314387525141707526359671915810555878301321886882764818111178488005979408831744423078138348701133297900071993076898910320232899410331309987039722092260661020126248719965533543953970210215463386946603315795773965442587323348579535895474757302360240937054459594948652876241613480424962947804945879771397395825213142709897188629570048231520177458300178163452727492543590691120068625818486949560558866597894332876198738684941882095561105225497759651754308711755506231159974423466320391726018668504978544422326549301519480305653599914114716393304301774786608849222272674126668622889377356203558091677587371793967111816652034367870253679657312177795280345056300335653656263531055483554268428673181672654516516691514899309998722275806152736910991182329407340115992767199393456054231840951548862679559280392007998875641797201237780718450767879519891142559482688100780944928676154399199969431881926422846413120392636046726205356030568269320789470203557269676926109526315035680983703534284128942436895985439510892465181918821672566891876065112625447701345935268142228309800150187015067994478348746735811727238594311301988717165128111614378670212920611098353323477932378362165965731097630504089477329825875904622302952209253193565533960860270226053151410240002243380068196862173525613520338893499669152400261621981773760149372088750070345884504555091783074998637288222070341697160443199158175806314841924767827411230172559456167579483747111449907042924417912488796036307863708743074408479614077038012898506458476711683194888024844087228566824115557775994028864959860961628135089579534352852108037748284931401292106307982210750034045903874290655554825846689875973260966948083583224687708273262528114735380067144128447628140237686933255552254022238254430288916385949318313202294610841440897112381545279631046169892596496797094018638400041388086748483363238542033891648886530059140115743145198597287682652127238906534941800381992009798659427656117354516126080714024249981712570425215593172519006251976503411256369963218524821171836243271904548189097161773452895859015964249710439268797288876344541425364307567641900355154862259935365907003216005784049356715577601059608188904963231338651221191543915212993569698912666503579900773237937898657421855165170359704362494700886697819118504771692598687191821857013979290423200703028656135670837309704726164205790038599159431294670836760291864884266172237571328772832643912642172660626282544125005311504452088374737395605032757185835459033785115207514283986928489690928012805895639775065244925452625616176300784019405476190594886100589098037900155762052002752878926657890455973348413386733287265997288053792850700736876807038872527948181975937497706348797482413473678759988012693311131466649675582577675504130643295148163802274264179556715431675815259427293133872559931796278813462671011560818332920678239392690045313887184340267634831462052396321370926640726244832204209773058888331662651412504423701615334707253670252994328556841164316624363823499548086466291385199966239314913142305901118535863685495711710729734905940951996670254830661351793207830565573724072729573833649493225704287963277457265407853382736461948635141206508081044999286229929037986550242395148133690846888171160849831339406411741587941935769080474343886845816187777812556335777868722027988118224067501768976449266985772754214245768748231733379381417156591057643254082959741486809440631873810840698802006265170768574749318610906058331703206651091504814627287480663554652590740191142672279903159987339098054711077480360167649911527024897236880123039260093059990185979614897953072837132709659112794971054564000839367483288065801606947637281457608301431361928411911258538276180769662184429645098023515226678804043248933966760163000590211227333615247411312945179376354951879874483167585043419131837628675307952170416652079809032756829586297420768393655980477626577626609048651661138619165964492636195836132493567771842775376512004866702958238158687707915328933495015075506195188839686735970740701089843367072363490321875151447060010503350800880837350448536451031950805593417229163069282903578623422901680134388080153397127029238553548016181557706201214350529840734662609781554309346987625128347504148070049588520667338690235672949540290181039207838474784016776489278843331633902275829653112831139078817195087792764060740988444064256088415605024988346311333358024432659608095450272735504143071502520096951463039829204362930256623323162208301620100166209444909581418407688676123894010278961667703622503082988364649935518652629149553709014309295469287009094463196195327375466477987767859840674007804132501784352184076907605542453044294539692371530017258953280143595005654755561772440702868654605249908989963759204699673001174496536745213609205724568299435649472525332492695964752022396264098559387007582978190431532701268150322701733561951479516214771910553077270307251476680705027039572867047009329944030570610752574196830278697754791134255686210276214372664046524770822863886832356833320404251622477265206232407389116499533501429461751851747387495139810683989403667440374660042360278512938861400808010727116941982266228217659720614541655742341010319188117101188513464298863802279505601376324482920906893372968268676997564717114254904472968927663394031233056882293621295784772546592708101897554649229180437531817899369692988722196519100966479320801910523890474077126636216041672312476544100629567397359904315070267935902300414772804964571860230071816229223404547571275090913204088730186659377348851454591452284759522519149907655827936394957347182157070137613767963450817464078683571794372903320252033825501769163075104892474157285293590394769857720421439429970560608654939344574291143179196161208565457181702995599051558184119187440745130374547024281989673907782417229371414216525146493808836568197559217303005232960214136828360087756349596963777580092550678039249851602759537882759907149009548589391572280006827205306542723016376743448832728723537739361906198527649075697032005183187686932834032173614317765368831791357432329981181149216507740048060981895657443431599772382015131231331666670239025093371635910532923085073164729834418487033575810298759206547559954212072998306678922992395839034790293501573608062292549965284628842829497142073376335954821145660595954421235308465692566969865259669210732506419416361292787188800001749161980766235578227282020695860816367199591311362602917757869093526042379912936026301360376509764092409359289555477896440103738397184684242839861475937562122549092610696056147309934425168059876336427481743740520234829513116151249241118413848251993637842663101035978440682521990395352091863586763249893866133108652807748519276529908415614264821299457730509998348162227083107355934905635557914916936077626111050070623223830072830375014165491499646804604137069931227706574845862757041235958467214537427148077296814249606376636932474604578653327204858492380055648258568491530217700503277706284631701993934487449900959901064700414325988670115693675451107217613403272504829380385619534790123901426256798795167537215275367906230948594912580408582636419055372834559194361477230054327596169904362168350804286028532891526325786303306546818019856294576365944618984458068375228256008526467583235850788336406946164831696568564599391326620231526107693508606453878643096474273481384972617883836398340665515193043448826200270291525638297067569013944035213323621603746617781373107371145778823803168882193539569794017298576210926784326107124314575807861341870540697486730614943685484345364720715011653433010131887242499158789725405346448439665207962519763695427086996918655436998351907218152218857924743722913724418197269211277921136713546423454776026387390096026128763538216009082929247863516472570625551291910244259501727164573182192617936290769878067908415889198233859071067400014167194445813845966576567891862121628173620421432911376572351886524987403522928412748712471461146471004070506618432129728324741403244697568590377914103435338670285645637793175096099899061733304393408000380843815129524899032494150177343262123716718496367132139002275496581229808296010312922870391421196376937660995291814474048202931296295638203067945033337231297764667527711385353130402136945402255521324734007799417858628460272983287300059535963774487284112117024820860342241170257530785695164240418297501308174248571348495599434487174857946719204206081496938912776978909482539672123697894238410994408927739904293481786991411072064861229197292480524042604749077371319292538525026626438386080581606150733200748719359562685989876414253275090648014131110775552935530690648920146018727807867536797723949410126590604659200661920604919954485498236619832820382894769613863303272874967813987832705418147216992959276955705752720323421735761772806454517369066791432896935277423836985856075400390277048520356830112243211759148793664726733356762824593787824523191004084336313488714877028221202578495134042737774031808090289348260541383285266041669052306444603254844043885122581970315287434680644215465126073047301761657335445342469491504288136625236159005665407895367263135719615740697345247655354519486377154148914201251788575192616911853869308103663830933041838234669823392379537429059417839763150904404629707681983266846164014164824951096660757242823420940481399154632999260277414647870616979001536171625155239635521878092602834568967993866505996248001279306703271211810882001865333829678560305403442355162962855661295442971277407966114306358610269449329420988978139945496279406281207928182373489303278453172328311805850612701149790975953587144204202598018697954403824019909110485473224107929089849547737966429270988804145639748031147355618733528961804291838924387999672450335115389857424056179908967449241952654638625363330704911470978857294286964215893511055196967495545280835994798443594665494170062364262972295865976836790420677084088793315594455251230556356760172621097500724653435399388335946050158892632073410477925065249433923275636594788849988831238123835112657640944124458340489568926809452892983461509707262667004350013737028843368515883433620964084059297022364131590162838472887339797201491947422030501308744150443626892700490888963271350897368218657024668945046589338953643712182624713347333075289330885985910938080299080571686865919714756353827959305363164507164163357221997028743778088570985667534998139524327325119768291395199232855852965092977856995096241024190595767848802973962216498428128053217116152867695877534549319760777288240648695084285149299183934578931725748956976295866741576802820587598489856622720625961404433703282909022961191275756385739804018490814378434095547705162092613428143377183313013196302656203155044157021089188494933954827899832468114761505159151645561756531951863292297303308151299078875754936626728856455788455363118617220225179479937988246491092086597809836927803446901605690199866923245358389561529942531481481893544027756743340178576463469954162217561616960446285654997898903139831382857221363601606863408271525966611635375507370611243471155562475873993499090416631744810047195191411872080834700802404892561956699946784228039934025632222549247622923147169809437674996688599051475120599812394999775335955970367206929244132814281856460603299373228085397901095457987840241759693770296012217072995032941365547571430428110422998011261767897201106997894331317656470151157500754743202696861529451955411907522286249362087693232862813131618383791000070895574985156720431425035080246323468226177973942724952381302195129687466525880268341434897331585502137471487513192126458430162549673431215317310004391566315810410246331182466475929328603993392182737419453421535110043436815002271382788225815501058448711395560435333524225752737877530916988642461555589319950908283314867687535611222826431807253396016988887147533647338306659432534247907450263324430847800101863506848245320232686093035403161733027069055184953849664990208440206144348392653177332983874540891393655783034370449955470946415965251426135081726815009808603348624819327042258719040398537208706392379540878623272512560006399597299066891764423768701047050753340941258491476751481529837474696029015251420834836940320974767919672752245460457979601573653420464285247619710830852828503904091783799290663703742637475482947936600713898827154102391919143650452876625680035662666073942623901275554409506919132821246501135199610781209724168469752882400978828615047247368917787044809544458426706480110603429279803743887623290728664224713035246043063419909226657178437522543720824370944548769042031541301976670672095687455901837304619834925383647339293316125710322853024505665853137183729274881712966049987906445167124707801040352316521979500900656614917874560913111210326709174585347845368169966282169758903805998973918245359290005007322056707544750290251914001204425550514739578684680311289268707125565821059926688062083692515802908621531033465308451232917920956514911603501313795773173320695613201682910110029718648584307054516171341102191919049524380721037336961454851874056004829843559847435719743518022142354771404602441488485470914942436931698626043979598556114732267696534061915889343887957713900763721602320242360027395183158040871555954440783623568499983889250727809180918853784591174990549244421029988975338355179360091530096335653210996696778018278795459207013680774380454799674087572227602804227786179258571430887436436387369205357852556394407430828415012924577430527353639075451318385694854759787515524958460801662414287057959696503042126642648519993473441400777918668593579786299496500456426948119662049436981000753447754407380432500090024653485861186738829033407251098916184545548248253711316830042094337181014219815884802700980319843205815423503220540739488035062120610626464057066421972523369579944769793528151840902079623734617437921511490706263003856166587231525566315326341231180822848420275718138911453089224632922676090496250445653709438920562316861448776651996332186696637445473409960886601965003144923494176442246060186992781478893806820356763520417032664154326707826544338921091745248589378745992552641633912995692920335273033296142376915459211859860511531788256522798403233761683113205902766109825028839980119811211913962744594732830688506996153044113619751303543328317299995490941144753479881626598565969832095799895034231324362266603004746179522926723552631997566031748932044403461647096594209159902742712110060276549555386411589946644471783879441430512732066491234719474803277520023613182841221180269936993064544592291993210863857319958833413808942391549814758456011945793712132650471775927238389793573951685372422353885580975749590421056094062545496525565048551858372001714240983819801494816145312314685610354653787877942370124595789181440983118198848165190784408879047996965013896719337721590741635133750943946645956266961146585637433002129797225864251597134721111482942351644659226171558028815169671813650687772068953623881690850737932375511495390356288363701956039414725138987665908798588350240992773524152499741945508502748818081917546734250129100138034134458121160191237113928148466852752757594955087841442715863647772331572786326385952655363675621276927296295698723215746374401521591614140262567148413485285320727766457769731746213203056668283755161215919557585709733156924047795685707798858116838463199212740237387717980870671578513009666607519089981329262865985082392798684471020399754184893741466077223890383404427995939181343139564985265731791967619210874263540548935275804270568888174552752337330329745029760690098230339734413424390570107011594365874033005621717476106726145081575824414797043551452222614957324020347734447305873199268589253949165115734381293162896448790216631730037416965456436101707275596659886227566614321484069957607295009693920181377089174663947289544434768576842241214618118723178258715059018935659283841434988069863933282080366235642682542500058634851571271752766552809331229688502582127184139973174959446111665684742528409994013995792494473730833720834452996589581172231653923229874881378224558500435614502753859736490433876661844780430772670434065515131375696252332056742288025206697422038166110664900387279097799799249153962776687765937049783300331096069025314064490220042195588910742690948460355466781273690256378276119888409192308758801881919279387363885979120295033101481528694564016985852261799737954310920300671587511203900809640473970533309824005259021779782069010236128990520483577608593217812529432441253677195117061492735016593738250363863295183978473557692014782971785542637418423734704645079656535803340882923753596694347350837528527988095038287166760929810466906404342731690600970686539501687287974246113794456196410865951785474965482524588882118141996394851406234717230862403433197764465051525700990045416079640034395463684472795170436853375833312109539374179250005414103519060135980669566963545607388634714522833136051556002218262345369770498604747410627296268454824095927006206753575567173797213826027933951530281303054599559664324438657660031571808895316932584367728790993218020749064602201050623479540997291645605247532421605738876738788976783869797495741437764171314768169631997154025028433006738307338711228601358329340751013863884197787574491374523511598818633241027873713712256711195942296962692891051297204328983182121479751300037500908150371734542730446889278425542784987797662242222143645397822524902611622673613826395348503222161967569793872184138655142258971076424307962197452430733243088618062557713280001106025645323730692422369506594188401796149420216789891895943350358696161958323008196453431713430598413693322394914685139508379096442210016707479141102962994084875072589340577281663126642175119183943043859138972045717153360557276258433089638492128447728130856960786561254152862433532455459333472370953990331876643893837764465443925852271936706727677996270497777646701182946376030107133387028288220643446619774317270970175966612325658006349599064199703565145093846532154885886620018134671641457515309417976481844456485315375986539030907890263037220193154877057097448963255222449870873860731843829715185768485548346207566001436026843503239112171685114135608658478950034664260151950183992306882282283731473980355712890334576252903055070964658846175113857871118291624499486413454530773530589281413450262860363714322303351477576222089391684527798658321960671202493219929819460280604439012304972217869464015995347824002008828207821469733562221149295831942552515568685637959392462166908480613391086023274830676523266414727028566319956375683679709603245457653997894649358264332047729660920694706737054190876793708410831363322125471266288590838574072680560783793856269994913081615081284289817999768252640217270203420005291952465291692581239809206320961248700234248002107974219189100597202683355161899799227701457942148348939537383299374443064100422870923723023968385566698224755445245665545450641101469614537483826831242906683847698616755738999282465790941994639699423274136305823396744822764332523045494114437754067704151388831420034296790502436805833135288567271249578561861018445006200678256181501971505067805591772467574710562703667859662620837139514966633757118278366147869920750478889941405182963156291540582513836534783178179269809443216677399418842275163711834117509317121238857527246814179981621797794681793407888243052950110161293472701634634822609852483664344758786016348380385647187593197030083602540814670700110243360034326611576734220738969836649988359246211925628524120264724065348724076980067550068547775002121248077413135452832088809051648262422607870972114464304734518219142126425859613294127074979222799996566267775652435104859987657459250826847239281816746392820708190276198927827266923781186509415834197074692763586522202602250942430787096574047502590040477574884183044303672949989488832335291979290034893536244623342070163348671177047892210737106581823833040955420957146245112328254478083373892594990035910071363504874736360203598270429707307220141016778377372245585457050543331206838808831535581094070784896732020139967522790800194629379041923181665882576690871656073851506321616463041929838329778381736270467417477192211245639872556591610269373781544087959589136599784896248837349287907899429845938877016006567624703212061793085352520770140264670744422289709645007069068606471188927815292817706638264989595949602551697108292582300398195487136100593828963758959043409014162009965410436136483437812857093207407043561633653928538680037756208414460432478798257327386120115688180989246716935973658253757802359149688457903873375858277112249874380585814695588330878864779661952558758320134957378146067613356756082841537415604616043579038682636670107153117743054971738700963564264217498347167094082722433865204138077608787106412710447695225093161021938650850467630718208442324641000107353482465978719188516059276333037366610296106943529293567724100393002769199166838927384850413911818421231960567139386093271122184469740475117765123529444349428752088338018377564382734384208513708981056151858530566579711821544129274008543702041798937583952033003200352850569923384982510302797928196443014461344904541998377493421870055746955252693717419395424073457412369748781060222282847502452634539860993108347453113495552251827532188664882113426491359415757793679674216057081852594734739958195918904900892357159692266451189486854588828768087048775962458384697111054115879691067294248477654047269944472798031037307805648159510731852881774570680636604525582117547133849831802927361902028099223550550666421828278210975693432844932086846093029408986984247445190503022543608957512891440317891364847773907105282410652831761686402227152136991471983625641225588654788653952076201845774380649432208287497437289670605626566450301243174134286045471707636687641679096503262975056995449779172542165196907915988558696246307408719894204405382248187890325540426288607820849881633454861392457161229785026831143434744845278073757301937747297211419861410989556487593579811885057443937222894221364526949502462038153601129077930706794515453080047540905331546964335639372043580578694939707626549100177800244880676442507649100611819006519160607426977869556167270883417062979876988215382681144834693858663928721708122839660075470159518393528199809200335500925152290370163977819921064275982700866575573254829769763242339888440434532331559811098556191435508249997645091432806085053790543285843958566317828907697777253906379251386925900273548152708722605584561346981852274313698014303078114284776544372562476002506154024123864379669191772404388843495856804157006912684008081694444868158099156907895811461561533312386304436002705084962909533326565626154817472326598070972902029128431267706304304086804227356208553558628138708065834466831677606686548945893435848180057311253771682014553819035524130689509318938861164109878218399072318093525379859915440503735128513673142634128824888715387312009222407334226397590243548848129474166695391209728558674206038547213107314051849393201667784463084289887260401213910875029126032946017183259464429040884053599439880620380915791174604271110281334432529183506364201206782487125173228014252785428515495119614656327541269175170651283401576571850047379900699732710765808665418509036831436707775559228328371781553403362137214054661558779748710977292609294026069813091136796159714468850992979594213638593290620849021854753432582302995132918535989074050772477858086465756595541563683762693760942382026707333636850300533319749183942923020553987918965117613155082018845243417675022108027516649139019161581542486177256947747904307829714968931305166389434040696971614044535826574737047423687242362922831385861173181142871815992259328082010827776999027844617481786546074005745303352315393693236401558946593407353234886160178617515163374202071215163511142345220300339288987950615527885040852072915177040283239220243341381954275509321678037605046235986612672486841358008160329460095872550538757138088196987680678605382996397058279867453642975428033265170687680384606685533943222136335523600292879020751770420680665180101539510231163560980143965730566706185743070431614846412557689439746771638574326847601498574664983976080781613513687347180867048883410297797765161105841562927327159507556078219006859549405842094247823141946726487152516778143504688033532437629397641815480746475721251487896140518215005681340557446668357851884562365398592601467147953772654259035717370535295954555387750577156381017672163015070993417399958642103921057321304330660852995110240502959926899229763451616198301729012706338678351179511434623965951466683406108250180609298838364167481317051441317449336896623612442845052333603104223731364357585282214811606643356984717082105564555213306693686450619903202847633943137588370270742920280292007618530522498466650422738485467464511643641325789169481854108179502400224147799755239312449606437518799489018720310346731538022727070200384985087723023218690270016145076438021613822882460181719128790941191484496028272918165891624508323155902940790798891394825592178799785977837085928024832767635986786149757476615616550968148500013594139020754157811621618782894415224451434968629300140393919784964259572054467900326965208569160037563631243464801844865227007278143086161693823281356989891898561636083175385886496621642099926588086512548609186418914692747237746814965262536185496468905032570197822701594993878225060244313330138350930153700182256429127240921919561607777605052503748323324728265660923851001592081892014816322210709706197252320413503132319104059018893839930387194795945878180930119739037150459483263857286600217687611965944390874062809999582031766739513743683312467049620705545038255121626015761012127496820724577885973634164328341438791559805785403660021894798439392625025923324905368145265498555141997552764796067766166135477416972554714556601358169906687517993880847644954646104530747344917976813512151713908238434967677445070948481900970618751017532307283009516676402868745650742699035543006601874670962739883800952048830768863200617042777906257198793514852999524760141134415568330613785030000842003235157773470689830119786816820947757378051172096686053101166491883784718457603907105202872119166380046816245870325829218732488084991310996629761608291085268201048290201808530520850499192048192588393441164867057140064947130640279947336386651101635920736701911436311977816653150585568082867626087655629270026323147371206306901905829136743025199658224260286124474329701827403150322681082743355705640073262407850578654323796946131104719369377702424097943403055589816368427737736157092918336218222992719740434073429935180014502994621927525349329167119900055136635207102923392788308537726990785383093822485602635736622281149705043459366752128242330110089457141502531053319889586121418692254196164011682580750776777338555221784877059750816792655691042381425535626718862549957337548979639062178563879569411170081763172481908341774837742816011472472371999817133649911231159450460046993294519240579064835412067339756679620586336810398243500667771068122064686239209193528821609393896355973750918973954782125901905826137318735708363137308721247906558770329317968460978664704009696353070492868802127914902808072594297076675965355548555282370272353377501292609044192057771289048822998062628831995793983573345657831473429817041442613006767628201077352496102682731103532957841032654317725902651769808982760820544777272839839334815830920776885419232827463495174908064681931077899583276992812711393851533774867934528108430478050166371743849432362787452284403231344343501363009747119318783366898505023578867608069382424496550049233732345110675191510342357918475885668170029954653417726462961727064346247266327892203047919155990623891675843168110158652230872537145149723022374556799439934938543274504691024802251937049216502690685655774286716824232071535855171100904642801621489069448661032830980301218079151643929298288318345076391682933647175888365415180042497403032568148642724313087576357013837901217674450480779805497226604279087544937406947118049212635653985910039841231892259946270434330335133335620639126338379494129662670071401665910903623586175719019116767384799676099704939467721171784024724999202429578690152357274207814357351844936979515785028496849409488067414640589544836514102637356524011967206413741959432600575773559992350244073651336139423090743871368103436120649847262868333415665026887199344094753656601701373201690474260405119491746832937944413930646890037452459333947364800474270248774715224391686320500879229622412722521512985153234704917731202020644933691792620031303722272580438450228758620035503181318851491234767334326651950192366054445665890374747773433700691745766047920216382969037084540339481993352163571345451870917730984288127056039812367921218184268204689186213222963093521807891269061797787864623825189804259286003853250370359103410322384357257015599204901203797116327001773130254946036287346699653934009804538083885969465080850459698716169509467071663978341926428046039962553110739312631146434634695936740961815683289582351153737039669488180890121011570144066699978493180866923247345432493445910138219062807030821204532541064748764790139224348678046040663916369261693981374532503752683275373703139034614378519419681242618007401411284909646066735593761978366872775982149135717378539295573382050771331342265760926852567336326908718052294130035585295377201953031052335267285900218288010799095706748275497905712359583697984603522172219070274871666385543293251444176398033337342411931937412226972378075629389812112753667776500271895123443556623021240527922680718101608040334025908676032522433967997654938294841124237366021798418528103969946213896075138318897429724569176879130833313859359259483645120219163813583357793647412853240942288626896096234731848441672200041241952245271962465703883762555756949079184556579182037621583433565182769958346360414108615707944379769330607248402085059119774466154188408159512048038597850551681699085540215334866527688064963649706563160063343659190749930077655325949550508181974052469622744233608117487970403639350500323612121492067033778573117526971652963130710009845082891043198340104369973191656442110175320453881122076240853379412972749378320382302073367249555299072936822440704904537667417676162934894497770600478635160924687200135229817541985398858138283149682116114549114369550374379208934979524036213852292197647301305165644565412054862707536677230102124096946827636688791521467975059293546394669379576188700447623552651441165728714765336535628117898055936084946721298899722950660353510134569591480605732011995545151650764396726712877556091766956123846730204016510857537712397801672948604883551888469353624764374024682892306516316651338949540740258806630719702610662706701735052888294123118641300349594783734249585443668037604053209418738342636795295695905479186259084250459996276253137552093566365092314615916384645772412866806355670039445822179397327069190997670092115681048289506693817649721429098116474388986722896307508302597339861802320024418108992411148088225937306679723784424711360933612782617364819332976521596799357120716147272468207346708223552593562058699004310332438079778789436040709553608186954336534386945677900421270931206631281431743261748996167229723748764163419747252957153598722258522564071474275589005163128700201880993489789739961156919780341775542210538624668650850480113850229392446949741264285419807954644071820070409163466659096499930300372570141088446323186064148548597462747910366446480057824455016422917879171780507278672658254451142583324513500537913357293716850337486441928608912074835676823521598107493908917268361885444471681898601460670882660132239707049244620890948212990433659517738223546878135709974861601653997372773170756072020146590985727114556129032340901390842931572510607860433646090721369509138797019976071573239986971449467139004091374025961865914780659134386874667143957209932291886550571718227780394274615504102433497298450756090766666535829485738030272319582560234985854314067282299671200068199923200993422810150911379595955846315873808549115134372689710560710109797217873450117770822700231030994212109153347169517643948049644600050139417151657404707664276885463074548488618861326830746474721350677462169605589093312442197946331195128443753030873829002295069738790983565276222834159548487509634757208254220138627689220842880641871945651986343425807910876650749055906583100137180288264921849983152054143932265032716198454357642006278348412192036175045965461213713267368784503338806209348241109812980948536844027279233322610399673396433865655461606295205237163898827131398840872646400861731814340509645061445021302622783457311503381992241440029327481810386789849601287304275600272374159056105824820348961991557376494709379723154653327861353240852668278089583378923642522987322359617236849734129073464735850119747685337805303674889581538239629503426291732676172903272038949106502146814416281709822406905073876681927700404380413370541533708717391720813864283323102217938466734718552865113915656141628900673936222343202526065379609171078681196666988481503337325802132704357101652567719137638731925149981897959398159944925069887957333378729193578517438048420994301874659762987050375720130471447698655155527859059942978789311187599548007855785748143976514437170444458036713179332776267359700236234306689633621757293562787132681230204665430373512844364454137996928761997807421229520293703759509700356066144729676887339550998446588052401588292209964545921114579848035458974244146865043580728105177818698798037203371765438116735631358335479158732784473307048660728350279777209184073236871239002175954745192747368847421882813590153205663799018324110049376144025757970183385235968458823374964934058062504343716257253282134545034536930327171313111447568642171854028182913605647092350291675115406871856655258383766885637574403462898092853695407538093654565322833362665397182061722647361356109865963534878469633199793285039410144180315675971617461946960915610449555976720231712657352093271933990312174579375610187562013313486633624551724200097333354617408712336633091611517276492976268837006792523058137416085512107034857227000405666810157199065650430761498279249249198395485206963844282710218588544341528002402286326708054157955989356814678886594115564758140313868932933467589120794163198667623580328837565668910284999326455497011840827110075145003019615928981950051367829672961012073840800129697313836895536188681261743069210170525072991327490528009190537964250152036649927182625450168233879941474065794612247207927575714019940380462704141154269039884032440971176282225114018786979909054225141356706973094745345978936143040899496370602726178200125576088146110663441687671247724576359844385519887566955866915047322271266702634360018231037439090055230037839370915885114714758036785186892233164291894847443382927299095489161540111037002339340238445509346997348222771356129527447564083562243002962857803771289944538385098176438293433462177926295720019831490472499477225524108644197461534023201833058674847176019446709755100570487788945432252371590223108891054295087554423293115341712960854492320012347676726127929933996827731134179231697489840326308046098234813447936759716467874164573915569403971584033990745274931780474799924099589206730754159645629386875330370869869134206523131874943523190240411475640601725075061559624282476171199520892115770303412741170221617316331631026549140105400131448203042031496421233449793246839886615877335196212957876636864889314352076974734747641450421217453628508877003753191168303850649771072602942148578435352791346415704926823762683514977071435673658652222345375365032642135332653808541904367323737895651010351867527052433514597639605003860202912394187624754061821534681619013577979066736901156844984708973288397272401822244883158244554404585268252415363600365070712044383751041948139727910112424065646384758642070039536051090830405630514142633743646342396166743106805703490304545940788543079725325481151300883056691429579927323940304967111078019134385284126544641137733982829237513263476187237743023443704113192491788280721707475150812104683446527598637803880107021046203278116754124988431459707221671260011032199724825635138147009421331745545597366742879844618986705310069629378570923600829998418270975911078464688977161222415459960807610145391903715444593234101240121963764276769756793047755564278319764033625296952302755905266292014854968627820850218602605154563480773943872932478580458206565154615061342932392263931692506931065181733423029260904335706063037977601095658319766958321009533670794112590835706186435991102324124419645584274597729806778291551655231515123074839290301537393630001220662077127712484168497215561131809906455485396128766635145397107152239443053209379981572576539560158210098752654785063334733753477951941189575186966021583033028943264358609720563780023828053676141039863389132040288682148197720095407511419073515390064665598856263173348415361199959546575627500219978627659824713270218681885441538544137699704334933416125897271571966174710004419621361057132821622475522963528998727707605459245496300738764860863371350953110203624735277233211046570892097958392595933210127233784486586243542810691544206769372469376636140095995832469755312589888045417563837087924773317545916541445796465862729244853932776534015682570708230732068074722459901823101837000747876155926293937522849989629583473814712159786588955006315611059940389060386886036382842865556512954931830595226148371922560345503833961787470714180755067493684425407372628131833634105981449234209712751655856802228643172264261806404939960132690453015655241829331058366433291036610083472283519073201188170597233652139884323707359713301200625407283652409360815692423580539617639633251651008644067091937744196051888221187874372982909220992681423127264241881720850712478383535089716902694715858163924444060068148566108601737052945719517858412035330446577412037110057731656250653240682255538244411554290817597681158300205906310518813218259805322956717745652778950025020270558128207291756347454980228972801604852476806975414597727331409072071740369143231150760222639180515361275897460736285934799355286859524189341678258711509929740884209289381170388383584480813016853829896687317156200633593404020297669263827460711036735756574927738936103976249513733981885840212706332736012872786029465382588591906867127157707346622758495210390822566086572864349890344465212612467913621757076113457028792886691187048970625042789089667198885985143317785246390358740807606860601818384033572505744309467747099889517710247299184428388082120835182715991779279430231250827255776821496682886258310529392745744091494692570686819320536062416953381828312495036227884932346186740869316503463130133048135357273203575895653586561598749743589497583267045662905122532897673216428178008981889733685977988531788874702391924212639702734457080735199598829599994007888131294225809671618444235389487165065056595903640853388634752138561448506987663514368281029473167260437120009559934933529355898413423866390656838643467306688116887850578670114779948889310911831001805616752831480936007090489516636465797534961905745949296896618891336165935686372478114928801099577455428814893084959309971422669703737394672244024093951998073617086528407989250535849347757985676654106121883017471621656972175820117552457326620206262074184470087718452547712627095288804521214926722214545108302022828187790263346852219867098064674319754126470611462682338377770915251880693210335855784139722822463776265493868295494896290535509569556123929281099673449469950530513062926284599717094375357566391912929986485086926952097365047037907788358939714670741799512470045030127262888119245653756374124999158865722519796645632143148312852672668833665333652047933408784962963041830299573854389231373645206038636266496609685958038973099123824843527448691908132707957908582104362574458825853665714216545263727306735244401192199340265562364639187136080165930935289160813663132182836375612890119274395196558960719248570917560464749036000848158446696855913202891322824217886498681026972458983672994935065941136309248429635424440958206592007587633641341146120893891668725600675843374749985205126785896065726858806292854159679515477884909469835193530593993239095719272887835628384815160864268986672549662928861972200012251767682217626740609267426554659327369426306642158211233008578330976421337389115534606336691339276826919077512182203392246793602319573884589775473049836434856493984543930874755859674147390459795676130099052407758725726748374061103894045341589303202342895275108267423307716500208523814346994353492363227276325921800781679511110881482249645167944995383565542838699423188124913570646592211340524521321708353897832476843963518356918530760345380442157188396734954089600771561265721849558743619954437832917664895099012430115205813720494612676571245541790857279503825834960471778056348013484507203678239151518349357301830910942547056430973798157400945781014264175630519818325404561068968488722566254846948695649758338260352743845855493673401973128369957279081386350534235916871580126121364913973328063739701505326750969737065792145168716434281490790539210246859794703472772032422620593896217775559279521236874924964072383034621546742550182371142544257318826569848634008165596336422255109109173113334098656651971090541539021465831604719417165267930749989060934932874262180153107519251828578044632222772690783943935812423850047141384709086475349832601377451460897014901286876201325695344873077395491141004041151521431419989548967520914437306697712116900716544745215862868574305557658575499387446290840822031815057091009623649302928387219089047963459538801233578799817699529605130348388807687217204247406079905456246403977141033198800704525632054811792495339026858254510009946408347420971900299014416128386920620237425659429025551274279854762370605228256218293697069023695713817509100030854164289616531068309974464726746258572385351652949065475036544538430996777342057295944792140985354203650537698015103789819489769152967223949087437429461542651536976146297034347061750323259974910642155582673959856190525628335776374241394897522152426564832168356673494640115353093259691472783391214562514762043215513846525751429534653365714306428043934350961800765052736681033008310386967870147223212517799204335575651949064947975612115575258136774196145267892084755917929846491598448138309345628583852249917358647959090864970927706811957798931083573416439194905467997132014100699408301653478279781793497042935411461920126681391298111927908560327128131553262313179832675758271302832216704865733570306088453428543708563664850788431247390750343055924602130465889754753795728153015184646509990054378637911810077596107202303613037977941640299579843699533059920998693325797238503995675420996223706147582494311203598276595897206907743533582816691175263069798824761014855315811120626531356899992653352620600989786348300927824909362828872651531927213639781363247182116156289651477865083731503978555596047415962649957890258170833448434382688297847873396887618146288421333296158015987282547227551378391071180381036133241406060448922623384019867186398368102272706069034905123411371801857536590867537786368701198341416778247095029905722666352983458922190962288056351088290746792678763046398493810113238051609880192874329723570218679901912237192243680028154478431154926647516363876755567739443759154562565957905372154406541516171875151383452163323308715737346418050368701846191147681501415725649223479387916537341945079221657998131599139151970249482749452196366750053919454341145407674543354021174628524293617368528963315010237659922697525926237341813077867236652553567816886426219714631425073597225484291076116098761208224338704742471902991721664351462390801717027437492069105399645800835329135044464083787532067272168652099444085485618699800611600749270425640252740954599624649376791949278722289376850659428585952614803970505462692759261550926541078675029985416740017067275044883291010720497324090969721532891729667655826774840431984752687106878563088560211651074010199665030142585321970857214374982602132202925912366984572334794681097098171579357683884873243363658524023194530112463618757299663670834001617618474312856195533772276133045507687161333193157669274738697940782627970525729453222331015044182143396834779666743208541007377090763710928439353493675973791530681695711665992960987846668961078715266339776662914233748842288893219852132908353173089186477763952322933054255471151183125349265655556673825323728350493561034802909875780973935974008655342269370476745514434610885063334654342459527582270543112902860065338398068634796455725490689065832347590260584710558821309511208200677018055002747020348217982607716418121068473203021013074093752306979494148971978371726442690442515305743439167537476321060358166509283271956423732607147025657549943920916672499812961028580044798643104376605390347928951633553689345217007157980951495709375603970459293094010722811694625348441923047431013296956538482239860703589387041458936391133814137499598817727461087251497718760131691015128589193842808267373676086698616896627304613065877237502428874075892588917166626564333482056018714431481135062950895277030068048617788463573823888838550926371858524016348946200322121290656309556015461181777875607186352190167908820387598927449545964242286617480890400832501398840238809667059641404329084174803049890264278937353950914256516161917218777818579451420359908405686589777711112724452720490602813915643495668074153849914248900041682124397373763475527032575965547695535592679265231583495964693393766011133765652484201801014898784168080777603242526083088109125167080029503416132137903496077140330944751761131650544200431846182581828639837500313325297962745605428463526178662737634205847787435235830857238153831675765028865120001862909634855474209421727460688518751578863768672434479294296633876901096183650707141494380373171114850548129741143310000512564756230558552339654841037877380558536976365187234861863176896660518987672687130131431732518402285665317831012244820164736396969206738954652035355253699632893265318619903410223213378197405030864808072241042262302325833495651430525650387343666792010037025575311012505655416603200447206842418438629865589925368056191799588908643446565587940630410668627679498504314208444861689860741323895396855359790087129287656491555631578671191366203564080192317916488797226388889228003954027270666159435774483145663829792489062278227572472218826094033863571628345096112575314312008676862349984745778847717050856754466366687929877395646680911329980336621638768850588895222874353605946217546298076820866799551669287243841626431148557659964961434202680186119496190709360318510688424676293341717237796544405093419337381161011692203133452007555131103703299760966760155015796923946734631152246571340070923680596085538193941999938525762283746023192027434484762817698406059865920995045729366673502867480200144723046232149694267180100601120012472034417258668169379107145395294704635244103274481489818220773455873280407239035649521623665730933472836015586274903664168477158422151872651415822466535683174700896776686247671274229570567637161655161027436322596749391134484712107814713827019937006044235117667270790528696325857529864104992347280986161070836321887072094963184574464712931365546895477363555636894184502761630557954235664179924747618757780025431313759757313487823812835134204113537910678380400474967457188696003082969668300838845117689782942454727771163031773151910277267385217514756535985809403350530114884404185826378680297091105166779833064703632800238590487045077793921889971837824587561169989469202897499057903262049285068862896140582198369618204037205185850703421713510640155921688711051170575420682468823743017785037016058181098499047915481907381649499539437945636599453760833209761227268681103063956174136772888731815665078302160802542578406866234028861824553017729415206078458169408749490271777763274414851991360175079478153799774895997769704403058116070435147399603384359813501750414820966578955129519759925882234115606031600604459326209733640438017336216302109855919687957217016722608511573529575142660861551463308014691716647861539506830648646504147690735742084411589631637492482010315373234095620833874484176252848803091232662443771192742731537358212075827496448130941152239569295339835788354276255930692486558601331467394508705432608295008303259829706750568106942027292066172117302039388595705327370557567655056860650795320892842190845700686922043851382494663770660187811308011818980143774004815242691028302502363088972990664643388784568959898656858977409687815343458005261436685911615596250320416816423116179790674750442334241596385923907239076303379708739336602485445964558188820321734090482459129889267024912853448137234136492403751788030069712091475310850645301316667203660676773434931024550097998052736795914017483363054013946507452182839210672663518937421635058363503156614708335952360024812231802919879666216981208798042402730143926388440904328934918844241004245166628630087462608727734647014002422774870998283471078185706612575630451108244781323274073820860165935983401473172617669159379428095622526461660105245689123742885361411215183387490218186568663081121117344831181847903436889676011264426046030182034149817381585362269905230098710214138054339756937858943610612091109037841482680218654101785237612757559518370688801769029894099993757583897118469433800142450831895196481072446815871112806340193061936977137336234801827073818054358878871039410772847199662818881016098320884290023652682007938433980564026167414982323050351991942705495573897985249435096726697062933586143353093007764521332321079883124317588933298904428316082184087259132951335228845419756617235328284825415313790998490187015176182308117979379419257192070534461379647024362628598256281965504191224911592061169202107544399302509200817194072484760115267389040537173052025508603433908396958130730611483328799634259965742942128906696565482694006241084296473686705442569144127613011603353235773771426069386656114148709225156536990019069566324323678438186432558694294239389183383620869482941401440362588603296228831107939866796475241977335834188685293916898511526986216795953269102018469288414814763088057714090494503559520198946169432001452451389771211026856559199811909607478267915646339933544387245774234662464661098460062638849323438958203890031067440912385689885332986438162112607752964245025923032464300393559723210088040071498109254088426349614890541145892105252919540020385086881602164519604003117063746375382422231627120407229903066829776116759641999000434828037280867991711224066984299352605257735687845746810768592782266351000614684794612117176738403986089732917484353881901766020647201985111890870804071677898059189897034512678926484572233962655481571537392753202911932237470714990594765888101786522040815413326043706463846331985693139904015667367016590338438584314491144664894174299036264871611629693789819494163273663046181829509374635323800868909937527698388537481118773046110185116627883104968354077389161028877301705226804775104771735167112963573219507229683685231203612443095676595851548549636997333462436578270837858586768548684684646245544625576790483301054131947382044611691804240476124114927226778104759963080952889550650402135770141023532269250160469206532467143845119211272224908707326120321727779420048000180849403360301846733428012866191269146204340926359773116014457479534656417601252397060905729652394895215748499576033925997124915937769794137837122473040902767608058301848042162929601326664061145900143070540157897759844330461456131210229437582399650742810225286441931662903211090427872398672728055499372942168961593011671699509916903252509116148485554474395488184274530689781067142650722646265545960606594531623270796868640741822195458911835420909568142319046059911673997705881340387300374450072582399396315743577021768725394545303061367256924775899869438231232310648504914071711028567301512202094212543588518027453319461492765089681663238536918222570979357432794809523172683125936116877828615385622462639399248373652474998902362602710025020822527432229197903402207163182914920072727200355176823372791700245176627157179401839709210768776915974950593895829929936327017574959606760609588513723589416848559054936362434583397661664069194100883225778220344282854570273482707439731560426342565221654075875308930395195910933054332959262101389450882390555055862139139040672842839945078531454712776530958301099960921970721565210397413866188408933666458167301292316366228010091967732500420629320786573834632408056025094022196039112852571364663642854741406848166621940629900601473330672196701000851714870819524669667353528684516256841778359514826022531572410417906734437531090668091167323373356302417316880594400064244486206317448648947350213811116459387655471714606023857319550002302078763272384696720678883111660526757182695367858134088632526621001996616892565475135651056146586576786792878417295939388574821639506335079537093333414447370094309394346778768907927071105107568186052617755990350223979359425139611214840194958923476702859420052334849286719307921757548713400617678621282090301676644991995755609035030189717272656038068896135732069627267269913543253503911182934838528132154280706995992776491749094093763407702314831945972187104622188336218978786848329664777728433942370117594604336939409740415409085746098789105323241936491521980736636052474227773160007389027955637529172559588542679763989122644858264829234229096953620062338548691643615165536915067226605864068875087036468658852825320400583273375291504521848985676373713838202189920227556566071554328437142458309229388268413505498187454846349967644028937449648705712413730848716088253181204613808205327590257014378283497417521040041133189633359432313426143087224567325708683131622280796612166984850606988752771324818804497578412828931516495327148372438633016514386217813457767288737774898733035002852160293561882515681360404958650130473710119209930993885489059009044803867742530918158522251095415783860197808386046747553136172440746273326117640807131976765905677680802561229843293216370603964393053732687091171029337255348708357767410222365751954632644582584382385868094898842950133927938253026391504620166999993204238091439489331672780543639183985479830140672997929817854875690004993171040400606865446753547028285221574191059666944930271842318846281554906197606913759763482315601513925161145692348212565444470082914623675360332637172602858266729659760968486953681925562742421663726845970428008734446907266830443884825959806188165116132941339170282672961761851209501349680085188940930902928832380814000626364658163556042810493190588626554826285794834719111308684138001580927387107849208785961479802444155452577679420682389798979089771074860554979316935511513676927614510998442309823415619606860428873991983543679454437844324914378356405972994806804101409565302416253053595316568718778446044664794422931581164547411981935757337296664098419941382573732548065684517519986090059427919875671276520939817632666360160139453037027500453886965632477962232846325002591366164294157383242776239109769858794343905522935113588165341317907736013600801850446810732175367874933689962398233904572369210651697271224500145613614698889720434191172971017279789248282372463274369922588311830544476126029730744267844429838638925673435456813899364483676125970398492158076162800638704101871773448881144743453647492367111915080158279420426526342030350103494430992598219906950667498525112939069420282073927311122498697131752139787399674244557818312453365571357460991614610145189459617374747403890327374423387800050394073576967736214196181927100410769849027479532518469746176588956468647298692349395622339843991366402802072498632863086380712088957271659629033028209387005725878332193259769945176377595156184563413458660385703770042255287625095500561926480926894168035161359053359147795652848826997420911238262971946122107943513353327189390951093081013524114620135551142463865180716759195838969989164524527889300395676475273292830385694787038223861807573956922545926934985292538603062064707595436693059375910421373798695232859645121952980526022089527511061937399856436886352903789555833019597347086569973751644302544373445446943552113788745829284234555910760235223532447790278752819321630016217487681485871025968808290552608105375769786599090022931347819772522770089331949325344019505359452765854816958137724354708986307711858437066680095225464494661155378275452011816585288582683465383891698308854391704212625400189460981908560678737519151798111981942677031224745878529557147283111430789256763902715714439743535573838748224170888075195054549023041837348037045320345092695653291769178024733133238742842813351451528184220268193878230801468185635099197819836628457273351733039360868004727783300012752648890960631544532794692100237459481288901600113438096080494368532903294054836851144655925614396508769490385973344394402650394872568744085387784373648027251011966249457625506549730790118618822672469905920678592940756295462912447743131786840596829682396909518902762243778822008507412611132289075478088531843364399104025611995923102879095092728114875395020014967357084348332658825186690124208975822619921900766690303180182989232862401089164596978092332359764898339583859731646638855207349328144222396488646329632522125703353987981777280702708389994642251494508999242183909975810608480600673492068235890140362561581235159081558271419459516591914322497331668932719574970950395842384035056143554755581516600910890245353000236324284761891684978164539828182193790057287163552130575815352712795142319547599804673704052356640857635367313761761739998531968658511932964565454086055555879509675857212358162264561269240102483668774590287230099911005514484967016316628957685206508070864814799375859171318060830291575014980718559373085797443018106432328295817809505198341529649786210836512703734538160452379708360863803124470830940915472245224247620413191836130473254391120429371731429224453396000066606492756008357807008578168729113234831436200447488796101558436175376210539508753256147151982371985598979531002770709784799933300063060285248338127474320584370923215062817732056986021357077508068798179457227278820415141672050525517729094208492733384959850660905583421535054720799424953516576153567325644103478240889837803979800852680078968053357628557774084202583668804401623416750570073813409387567384822158734352569783675290556120899628879602726294793942529412874809533517156422280913688292900113215892656712113883502206463165607770599807064780648658437516772455808990469663409677824491994987767855337182692671553473726285808943986360107127441244919038663681033426937666610429853015187467850341456070862705495708681197147616892946616709464650496635004026993017716325468583990713492018357581880488012849662110539927809733607278212359837524615572077024046312686785675070817589973535963011252860562375770430396616798761298870482413896994515810497164252634096667629605637945305677288312531229848401174676825609324433402172387742791877513250461506525985566393903758764106842606565382165238954428608575913428214949029525470769475218705200508493950005816898304968014283654956937181903351406474820016610394347055190452639240153807417733781604558719169353667463411128807423368243643461399538086383907784242292658425162495919975879993123969838515306314572383384814733626844348455790119371320401717803252605268183171295174752379768926503459901101880495064029879061975208035407459884012058749176349980933482388694010563985727575933189909815090922451636939926075160500467329160872331567942231758286863839673093332017977730477149396216812126535282953108027230202190158929284168913472633666078944011334583811873999651104782571252458158125913706888672356106202186845931580009858944399490904027308996576819654491818366172094288322765018933444292228559677296306502505397818284201404241861062303210658305562230210711305260235639130893963970438300644668454396376136746511509001409720865470528464106194559261338510047486336631880411388452597276153056614109757170076956675334124745210281819372113768335270419873848137623152887565714510327461248416034177007044148001797347372709353825528448120393567749517636609781645297887826194163858220310714082229155235761106480089711747960227902464111025722273383763223624203278757689062496226571036461653988606367891631950483235677429726102090429300913165820256865611083252643166130197027368290746526457331581686548268877268624580454968434701446564143486950422993740362736964535948342685615670947866095641908546255521671410138378674973725323448108472393251417809099580999022427827915588992779004244536067458112628181376837011187677713656520621203338994801111747227364552722815236543680196410869123080961238472388652478962674394107851643152658960841229233719176786547774826428929369526539607716280406693353066720790160213420399559739364129408416305149559165162996741648478866361142217058227544658438034554514627358152357183363377064980411560638217294510771013182897590872053027016455529673450898293042533947754852448700713094188712880560639734608780223923564563810625858184842273341478197003929130626298643036367654763689415020353722735227134925637260688966913931424892591046948531391839175334548942761010025859798214831741321423177254338932745576666163719429511967341119473900302030633091829823630393977608111108479820264507165732522857473247739569231220845727346167988043255789063091192032623517630015053404408449856046060401831703747503452942008437694129903069114371980027400594452938761169557718807686321687403469263109427639223757696547106150581395330295616123935811484963719167482580993703615326586204979624489946735478398496234337225205564654302770690395423478121057246590855996525686352470528888047217740173551024812154471541505597425330103153244251646338112061835648333274519241472524296168173939139733624941550358938341844526890600837688314183221246584400707161516891759078907217576261692119873879620746162563565186421096172568712017122528611788504012217148681072491723234933824276411379495974658687838264554506169870268747263836320494791480038330224670030252027388581077726069001056211418875424989392128993889694508439037902039391355467480559985556067195837571797144070655098169377168998199309804349654634696321204540694611239317454346170063809386606978690533498209535373157780119892907053616860958957791832651964267021288741581604516205952842198509687544814254282588394624175886880247855228537549691515681496485089817623582827164326476368519283391429271671493547525640243173602740486146047227158091395881965640239453483302056804670008236511589544859542019229359620298436721406933194074662695580082428430924618072670703671786584133603868607766105889306664844286077679179721358247718834222326455908795058520127589035402802881565971350172131412833117724731216854390560230714639628926384013128809185961155774926617943039887285966111197569689911060564240280439009398478670296212482829996416742248945993701937204319212974778140808464384319835898022405137229187608750542475838184123646920324791294829353613037545139462619133476256674484277582178271648460328015634816863050304802325353737794978322235036372484621475457357920141271152274022875032983375120102613500542284418497651089262969063674077125350991411194299030036502845921366550004781002241833909405566171940188545715847140252746875810872910503832308952744168985392988974878235549665330288390613240021508105505207017409527243340415788279510034512360162812540311269686437915814885760252262892558388090241258261820541973759929243696945579529937007822223556147300229117903196634362082478164009939343458662711622008061249074868281281156414879169258679616671122877185701848250990023707846554315236071581049008774072658022466004694304898666719806710827728497196491274026670953673881570797529483379441294778941862928997930995208835600906257148297546900382696872983815292381294929642186595667693038111902908683813963667890468389082195724429269166602833805151719239869008858851189322663829635779156350042567838583391962610125010153469418603017645340109921575664716404109485531316277637565330698584651287170596012931107627436805255142614948843784644046735935090330215736535178935433327489371974656820459516757234888975055430185763489534705605786142319152596333497179058461846911723115944684861292071773866775986917559547795674597052974232046750089629927948057720250286419632051606364202060450555972479464791931294820488118294694427667710421932831408993426128624792278170190718779146217269445836725994207349014499307400296833662437349811218077811681419944320156956447566960589308180215794823248756601032300573834578294964803142201700375333810647842411338663562690828098998940808767291433703487713147980275108269579640811564951802010540255471427548929243977913710809420286977042829926196093650902174164961237825389140064882815544273119025977181428586160146513697431055565712504557199888899818246570407120327470862386583898418997000440332143352947244820289716884774385870243179001296957965669062670669427701578967108972847897951984869704545475495146244638632390056028527184517733996411730952270928814575756419908552100327700555909781706424177562251288445611188532287959497283827338715632542252568552597994587070186043357756747797116274156327156982665432385643609519316073328819269108756975508553542754737185766518339383835975799118226910902188802311326287304482827628316228599464119650705221772345253905813090439558861354693841025650676211605848944271121077498883398101363574714531447223592206466052720609105141779761761764759463242467637542394666471678982216131803070622782222859846651667929270775531906708631746921701557866220107829658555734021070307752960676328738755303508237795555731170185700840406922862676616403654287571176342468163099848462821935548724337996296368427718013343144192308565210860886602022525888978353688775574509708196359923225464875568540659443710191553707964293214411995509175850035258245496741468255833178022624036868623959147609066947381194223370578321090935373809420623912736470217465095632569044927626313928223918043182014879206069156727338594505325847666954588586459561272956467562814032827564161084873249383145439419560123928139763606306651761895239524358088616694237017935307692113584961078272454393205689432702711495502584031458924088275769177258051389902915947043988701127353043735228018123120831369204046766971945895531243067525213343767644103797596571216952068333654029635986249193508547697788865893925384183333423983395095440122400359940665731733083257544204599471079848941888638929360620278936424960425144486802455471801797580386321154814920210907047537805321979535618222327687089912761354123229036291148095087372350407077118917360870611253383633496260563598145413788109890333546967087890904416110198291747421968138484516027684165602135930901781806254362272765849744286288731585751290418736514782507960162279587401305205065533307553234123725910431285971751658250929779308079511833925534147005118768404727542831043841869959141642307272641004230942074087721694690862100752622812057136319630491468443954456717339994711311262499065284891666760995842079986232354482059037899941753371766464834980386406629392004925495468856714788122748057215582494352114892057370426826216505480019072624215669673203983603942728332034228034537338055692854012779754360680621195064320274109315510297514724022589528782638549539036436292087576651300686752693922053135744817227872906862745664906911337561700146380968118632322106872307776638661885022253741674361448193230774141970414642157495232530771452569099890964881443416562583606493923464540467220905305005126153656311265727381237170153932019002013665524900837833219876757361736501413627006027480986312004960453070251308670314927296190197262653683434699485673857616281438850530597456280721750205821991139309907514920859576934662061346489484490038429461109240555571507539679235221455365036651329829015975291408888837462663294578818203991778898357490697764336540202406753838527806178681900968580871138171401655140560974002671375376670779027079976849413683729977817587473974410942947620791333363076344768094489797358703057475315216868867669074275820272655224161874011109640797036135244710098642881239737064664161521425391130920731517963666953848370252472610655210982501993186303557730538265304221758853206348142838316300836514687161983175524103610261992586815790842712866780253267209529256617587069857651044499813181909783418890500124123187364047012466344696187153110890435015981409030280372522527449482938834376936005677768563110325568491979189427773311568202185497160300764349959502698023422017493025487452523597833118827627772271437397907670622293738171264887404332757326434063112436271587173045027179609817992829402829558005664300902695808933671532240889462867628489833680543570369135426990026217065339352001547401335090936889494516433844417135825352250167939659350830499353101451928244288361430121266930834326296049919524215709594918655212679406088576096567675079107784343812758064545517302165983921140649206136368921205846280219287097576492396074824199482225636963299939459298125407560326795713717664089916566963455798065878035765747982664734778899360899104056029571726500445337699694764481619635183677047157494485826265205591120164467648890746202826680163413345975412435330053899566773063924572663438961965876724820664644406368002393596439309043970329496194379821899826391525047098601788500734179664951657514748956498367947552049529016921739748705864717395449475676525924210148322741430199457631748126272675116480686587816943490755896756171315510225763211007135632824538590867061062974893132483979908625802900627745001063732156844631185693244570795108331334184662448753573116856242907902648407874504141105266571710480078777694901893660788942371625893992952276910261340026886306347303604190163746861993479663130815440227068871954151684234891532856146605255707251886628357101611806425027079925290960020259069360976671828895019630337237374275167516418921416546284008601613735272395783954761280042025982245852483278735280393329912036901127051018689904939311732757860792360288495726359191342683782086358213316392484627228599724842035602235395632414956185429209968442089092651054073815235304951036569859474658185307251061395140415004933059688280121141221130093860343687569340264471567765626865804263013697490238795939232210224654842463313335120708563590353231829771736864991605387663453509809022076881216372737734575057358337763378813908724706669635016124851804044030834172752266764897639340997459583352583772546010923842260908758203349386811357373508845147926421136109018230165603820323260243592002210410141125203233368184708410175821324123804271145445466015995753840609623223448350777124456942212592308585455069427666553118134920613474464049327502906964053675519928586731025796296785290236974842163480931614533118128916687374636738090294646015516370712971775069929393935414948616079075278695690307364958280484223527715341054939167975927211421075223063105910249034237921004411904950710628858318246491130723835593194403084508717103670335720594383716103748427554995766120008636760183278835324345441308583082079407379008036638037832446782720215136507773954219405976537538914452734513703523683752734225111132637117080271196535183128658540703808965551908020041625003705525276658298375023380886895038325401360164067323923655558049194209437274478831624342198935816723705269154417310432444998157293046798853617161664744988331851064744313966088286168121903349398787767465489446443106345998579806248371789402888241643311810387959564825968080425387492065074190966462839346307187457334163936605419819846263860098817385529756667098365453803660484569805599632057622522821982937303001811798463517863859664639481768768494287266182107837670710458965671506327466687204429090978711690210733170996120349296122284294162947869374628931333472192015008325095874577751110045327599131338707345175091985694864042778366042216855332102472693137607086577795772682410798812438653656956722233254643505759175527195868742428009229497668461721921348582260424720243451925967709966588698678131759529921100048593709235787625446213339334389031878292465552285862661072943498611513634736707386494540203621097031692344491984459398878318201867417858550419606079571942427655964715012195655112955695517608303724589960609918129019874344763325664103062117700075222238022678726705045399954848613358549767341965720362719426423086349165107265712494695856703082645260814483477028164995271840158159790934539072010429684973725153808633964404959598755498697381198041095245032661412583770669709138563073264256769663706212534870646498558937299918665285131746824973371604637555094476384129977238568065249478591373870907497395131552351545551316667370789627927115352960957161175561493086005564364660213508878397778371389037770118389919295161537064158941211167701460346745634795906114970036579711021765784322984448283896866475237633208847122640212209694999247546009267405117691318409252556232536727430866235972400192558217528052093991172453676276713798158502027292381323692833413486876051653845075948153623576646580023934761625291584405618218325987093643315180381919571136602319770316590415855523846380163094542205353952745471010049556313716771765529453601953346046494501506878776715659107911333078536300524959738529215625544502099166190163585635426185415491709960332955684947327883912553295318260829702456160563846542855668278798673048542204871602532151501974912838707193199490997382940132478822099705368975205041988298377095748133649247662138486914323963312369143590412861948260771072660397996216158834581541041518635407222989480934956510011687894674168019741112562094674228234110951901887606170506323783976266667621921881690890834277277905624244301778714809422768793078660963131373172529694372866716733386307412728960489409517086924443932215380047353422658893167161801654225421987205966820409492637312856816183144819669110063875479827424696893897184969918803454879343514553610092365881420308469039627158641033350743160349835100978484807311279089101441660573165302575506497117156951823262671200726083072536041899510825670046619322074199180858471372627736520224602889865466532061810780505616161532103999202474837796437015559767025675382259110799453675590481001934267724068219086905476334033589436810499655929680765940667951744945802460765575740676909594960763418934041619271202137539186067901638983225595471024130749102486986885644298356662818363768003200872078277677316752246101629785876035923706315249473503130104693429267370834097364861589638099215976009118094384403142069173478443222870827804056670284112619303568476461439254062759852599065833297273329723730246541156249434370199296867693896383698413473729385490850513584956712158342557532881186990251986949421774503545635171935362557676375552999638830218501178147425710473489008606031416653550825494860538695067096791567179617933392710572704802193903496679171264925464932241267446135904349518532004992831997715616864954848944386679306030440002452114314007107852736089616157108356394167311849725785341324721680720833544449611554951030610857662657054303991871127800101949674186234502081024576939371662512017863436379788856376662947529964558370666401757161121494265373312847763281225618282394555580814254579709949462321533100379329700429713852157847168158056343989977563767627104513511125646914054282014828291640528828233056406878989778524718547623879147318774365450204331451859628302183545950408607037975917858679022759687674121945372678705893267534702286715874924036166727934014115305579346822142523836290063318813875951468198302420928018806447260842360046167999822262498910378691878648528441193717232888714936127368416282596505265536104512333423608351134750600687789843437571081220304032116960089104989872815348582223148219435883035591847411088895171443012126888173179400844974844317689775637820946932367965808388597000480983157534056234336558935542322342460424925655766175019673780859678418871319497038517739550970453742797559908075965059290496783294914145497860448052666216555118079542619051177992135934859365454647195963615131760714127031717593109965355645229580724789609041210184922009752768152575669451224473260592670417168575292949356646156947132218290155480763280906878297139867862474390624994465385375058063261273163334158403790086505766449058408812852680176561242508122270012672465801893250125155365205654942553301532572469219095717728138075666457761334042306364581465189122025359611101605397913455964538709799716383801787710197429373171694080960775722612924767558867446387820622581618362479373063998524879054625407306265868179032970409357448492008014863240306046014841473959705249618714262468617031930144024010163570272491384910715994192779575345534556681974364222082511213607508898303486988658524866408268000753619644149621003190291079418658037387785268183952766623321618882383199239991308829995147872522354718355087792916707337513734401677708345978622920729384790072885231530011727774327034537903273189569267808105183581401852806646284059383169729780668720823844766189872564800574668748519407498481923949064138180523398993419187039256723208148295783309178163101737933431291037304017024036766928562911764361999575207480374047207453347977494577442035146068489934667156858471073664448345694614433273851087849359229775056782980869794017975182247127461850573845009324939288753221520214333093673505774979028322031618774506462452406746462219982692603561210589580509691885866007936334000742188888708866108170198484095186442113379590655002518340592362119351853239191206742872833434666472835286215721905837911330849263652958014820385620620379612755259603209905413893695370856201579230776712935043559483429153920121558206578472831915528730615913723108951467688869908885995531028650811346517646292681112203206957367882614218952935765371940221425243886232102103244728504623552905073392001890194741929258430300158644234013631866870453074373322621016209539021951523568735875867653706660126837700716739353045095391540553257460967102475435676822247607753724165252702290309701112027246342828126085140048746574955049190251676409962502767562388332232633141855945307639029956524258616949468923126675252317907504958635597106999199982512344383594281654778388161534813610800816395305200301748501880070013066630587286473646794760266464118134236252644889667075124694570562081881337766911827677244969186117346497732071076336145473984873670401881567384182538417405135458765583452128275761165023068267037481304857191833774620003760684431118845227437823964080415192097217086920537937064558029407814246440845747934795696890996935640429173197666131621402636438928587223684992734490481344300959355417500966164983602488475217660542727486083856679878585006253068736068308266146418328312511070907830430766265466575758014422921549357934278647467411042298443741502930351124058401734921303303054807098047344561428420989303756051673246612993529662237134309530220540601686588659380813340258623669832787497590294922952340458107724756964769815660708962151100017971440098503058271051262893103611112394814674934256642533199251181331589931725824478687466480442596199202357651207147351081956197064469716565526449538821332563643040709918594669280184226619422153042920197389230067211899590748382353272229138128000605790685547961309198957761254636996155586753420668666228571080391895075877886218071525003463420947280659026883627472462087677234364191680379865046848753214512440362501925699699227845346154163793728140791376685379309496071912403031557458028774195891568290401494108577190482563070136562011135309760727509734110711397506413346540655443713019562528201377935810769075533599844868213493745921172428805412424882338799631298040160463294650196675549737058085744016982249254446233351215084066389313579189765923072331667222519084067210875261384774813726163551267491036604449353830450805630329859990337117977780920120024462766976217881095880280477236296360107529567318109254861928994405460566884691942660343681691967527868605446981327785027140047415991819588780517294936320522010195150666349903592628002785653910264419174530515777664559491160444068191823128644692256614873186221074200382314339414700547432286326476262315088981563700957622953855093506549392905942593658970294249793930958575205747819048680597818398360550234757893464852383687380519119839419167590749086363157305334345539793864442038078618049869203123938969043535322596910753047545325810215210370583028261982819289432132754025961400827208181544728982688835738643596600518997950218349310596989584635531883873013196820916613962772279139685804850676596311883539733978024444922218639852583702724265601178479819741802569314986924392370690466474769647379625759010186584913546867169059357388223785821806747023816793658978973964934727551915440044131162152115694409581595093540956514413700631280808213226259603869945566863748004871471073174576593800520215718408134687975971394885671043715173379095313180791823506165724493265962004469415039870721529751260181942746307268995864016733713102392899860411236672268617758097317727574294334227484259670865916847414066225720771862266293663647600668951035440693626609902883199595723918585778225652928284325784036126792002320129689968816835712584865784577451839015184649834485293270668410345359874929485729372108937559255133029888425199025790651833084593413835985249237938452475911083321313049413817574226788145446930204939368733050742024933846905813218686329508914961147746886990723021750395447454172233086161273370064644718880242916416135664328262155055265338423990414642074923399614477411163708566144530830311234516808057002702928391025287535417497565700389858649699398267432171519722734848764634082499192691953258466457484426061835362414962550180579169673894777226857266999802303981215632523345221477965183467638085698859705271657109654324763815744663149113546499741308078007453098318206848946518448627549532948455845818166555469561612646657110081810416210927896395091002841207109297147380122913320660487243752040635026690622122030033878729035063729568188008130832880831142996689061068485868147380718682306921911808144851290412428735763908409581325714801443472041173955886643641561901084926684768321425696638899413710467985425249072998559799690221982940435969055684061759226811353883956305427852250421700428855861026434718648698414418879864171079240537352220305706059864967980353226913285995549720053843176973293190864339624446420436550361453694828215836655851095012802758763531290698293120032064063841808568396018450153909742498260311401854657850379639032140555381930126418039445464603047579337142845115723141442177637391194581213402249288751801084463004951267570638924193923815037193215385486954152981056043997266324661231118967218765107903023996115908068546199540988332002696469433087729950000680003377209628617377633316275708260281372283105524058521705350301249300512295142374208362836477214890694482335699311275428741135804649516629477024244575478700454347776512435632951788824667735753748344902100654010039892992081796522958901868330374754474747090138798999346454367287546808924362927906516066770920857769058581062776185225801471468489260421945551600933951835474844155724323813010540901165369885420116888679600580540260468594875514350864642884456900013610164337504420443493472793139000617813167829913422863119340552139273053325832669253250857594251120061836649937635345156166324546572450466157777415579429581915205298795570658989993737484658731573563046949679354181646825524261974135869963582252078030404991286824537326246713868060823294321695565184131289668043566245129574840709110643305916757812978908976055314237850113660717261565115961926143810275284389595190837482683473825438705038176130550903002210256787674204031483146505773691697253190397555071516102434599832562237679248985283180493651418343083822902629257320723179964113375024713370112980347518285097842400947832350446573773573260527176181923262831520411078568338270721933226706190122221025599018888034177984614600692968469283276986382964189454319268972263065589602952675900884879656652662259234885846124831132336900103549690532065056921848567083787230848949373864940168893687532100063692327715855021405727570161203699517015586197646949119312642290791485463703224442221390214871462820578577461832319454183162523976069333496729126548584661444073641888257748628227072223960600040321582157105250753879125747349172141202381868708452519492513454891989696567915408668338402221247849960637391216684790818608126121398332948558519712119044138977538496929639961663684422917325532114291523219408561306684823483944218872457719870347198417457008209457363205447417406885915596856378763260889264313983600703794745850023356583103682012416132374312916773529332530793915439032581516691660551326754470106145944541206789557640500668586601839003760254331517932184582256187877954321845409195049283701896819476389182884862035210977144160726586445632866029253140765355469507676412339732995788274768202838469726902098442479664695636489729290913904825491485013337036521162316121451015189292946763647964947133470449888013207708693147518042896199592248695067946320753093172507959830222471614107721234848523608442343909487277225764663467153769915952521179554891085273036775753686974310947351657163046735577953439423191432999331336147603449219487166857889904425931945364597765350070482654033170505439089819735043790728197727398421450766410635866109411873152036876194423944241217670908937070602699520347398418447579395714728307989591119314825583275741591768854872808301241437735325248743578813979575232577737725480412537367988901965380907896909942929353604635467408139316259151316063201260922850978275350509035674418468815998057529596539291498203822233790562013300999733273650734051713812080935187862364016033592785315296502347580036392520959163706484765210018337724515433549980708884222514498745501665625288974446675338294383847129326109999615541622196645312509675147575148838335533202572056919589980602154059483864946655661455262873975916461961793259246165378008027373762641998712618071943671654934461486767580423384655170004794487409923515639796353790226624187882934287023829965841715259166090850660062425887414315159714817187756628615196959282944147564894897997144057532329861653003653420051429059043158214790951193303398807577034711180845293097622746142939762991002987463198418456390969702241565657152422462995696999974901006519567414345397559333319805681930670290410510451919744714205596258195340976382251549307202406010510477254532318908150027806398068707828412738131008410040861418896128314699164691164866872565544469138082641643739414447238293551838074638535077073087872035899554232995858255840615383716623746151679614379457134594321417424374290718477878582539129653844554791974623674229215491358842671240860660445529143228324720075697426728700077592096376840417785452981684494743917819130977307984724796742885317912035025353834045831798371465295155187920902960594188045787656453544102377246926166408546101040654946428326417872410943757711228910214111658862827944236131822556749687520299068241887287140960535878782868485361070429861043568003480584363353023629520142592953056047798098889011065724947109443490771216086617363728470962952139160030151444622804651926855219120309730308162070541631301071967833020320964837202226259618615175901486866249901767301609936283463128298938752911295084249612010001732747274487651761672517623739777149690191587963693995499997603364295767001918223214635197733202794590709375153773881819163767900167152108502845485664266046226710710813772135895668874890227370217096278410529663100899780560354463970265451839828751518990946716860663810850421883712768441059783267324313877799821410686533790375194683063588347071312545653775432516521771074153870623186804202244553826988543091203238874638738391434696257553586063995973205321390995569734377918147629472822430578947740548741719967846345441699459403374999450212911620569624508744664741567629850644785978082802382796250410843669693839175764134967791291115614346076092033525068696885086365573166969156461488422483468625497976529364008585775068662150315087523684270916736199692766039192832170849307273650334722469762937673403116631157127510589719674057283133385449825624733761648075442430978727851134441110466895705834258538182834709675728398052431363335781592598786764730599803438151684652821543425429097876319764438211283884848684391271085398659383538777619915792046291263194426973739956084355625773858144394999319062266878598090353651954085299665532477396779684908488652551811380288140159013950623396672639072789410876169977057670515779891794508230211116394982592819399297753940356542918030103089754150013317626509062135237547647585040782969627928449671990448483413000367866130949069728529465513264868926492330290948648394987162796488603855750207719861979307466326371565463024937716587338715690105583359608313631852430529755467426666560136917422993582433123175335440656292034154152916230907990889133803618615343884932358954194564425846101339605857036180845344360478782270469111549897309044834825729219224471416802918106843369226027571452490916983238152282627420917599335812201684076297251330223288829089638674408363749658885565113963996616489899888393202468087354061478790153616973504948628685645818431479535854955554866495753423915717678329214079239472597710863568663036251449523474346571585565625163888085120043427941389638797634946605980956914205478433652068596936605768130095942697465512585465787687622674674149295826005420883634927049016085261688336208106604166294672583834005321872365501321260200154735090058951404877321825263432257344118154789959015471997779183656354831968037598988143912822917286553813073605208991459654804224358063728353198485026553791800585743188237015627333084941932248437253575161822599089192403824679996494069718645627596466101377282287466358164386200832046573040845419173502473851042306213236345879264185176645291084370603974041042224586036201405449471925199811364493927057948011510283370072857576698441237513212028643861992341228229917891450424571249920269824094909195793817246692661047578647442612881296369895567257678211249009209532112462425740056287534340207763766385807880791844174344880821089563368911954625124633766949686601790586059043754437022756063842618346479522412924392175901080826680825035525576205098506631890290570574752598751888762910149901110306178915029550834392105202013591401991501829620928970242647316885626632442635096511169262671097043981357087484589373031866218893416481879049074020562765105604903415558193155302669768098145119988936880772424600060000990667146720655965798148874808038085833796358668040706077099521619148840034140587947931898549854532262810560043871590371047727970921929059681082908309741828012306570777397496136922104746152265704835120738194273999661231336401932629456211284655287846994413879596579470848457229315147614621714615549569199855869474000187531088598212139137659151987133635341509194256134072979765529891016500700343271833816613196074948747529783790542721010937832955212471475442079588300470742960228010422375136257604960548594418974482022769741850328100068385378850753954541572186542834065276987801025697627910820806546952054063481068024819618786143286390271272590292213453622765007123173854645638495819075494750889176312661626602498356288226345975529059746405395966113777025541562399555499209646162798783223404121482374968114973828796501875349471709857230653695557371791105273004661026632995920485300703047404139040104325762393345723933118740185219027097768412636003889539105576399879556002062736336499227184707051347680631537457314261173324798804368471675945161433566396713987123773014653954732329315887991804976436388133445458227599078908719028029303620614203796480245917945386862416777242988059846823987097401375862863959484166981498502840207215232720196236403011852346721225547390265953793119868057348835961893233118098424983030893134367394112343420674598288871141450274175567691135913441404199444133302850417012853588159142469457063817493545833487897533104566968858162202971692742885264512492435004041209665035085445605693766200078279275997658733081383216642105887989988736679942229339440250168857202668334721489966883862586220752743312266473425701282890992202921462608445578597072924953065993755981673849593256687376236793332364027417508136912540192281342240396012227217350676638825728217515701774192739944150295519994848316772360077933536434970476700807495966938587990566233991375081074333438492991583200718006914014123762793740438865200372557011771178339782832135444286275987860020610712946069352672159954475897475260705969911065448741655019864144116581552521524482235832794455853593282791727534706369463230466355095739964847493994268017250613109649647053592000067374311511869023830451881367150678572114083660866652251182380089983599658991877297740447029476770500746877756103759664074718809531875008591911178557502253469578271064231377465700872159939610780105313393209030525246272052587695929982023179506884800104387115254196834801281883967330433633597588615000950183107182553575544303777892210529006841511205394120107957340325412032731845620873173957282661396878166823127234740102083551643415549195717463197978369519749727052793461052186742995792249069724176998229990301316355432875476652949952995533737711139922783341430355317322041704354179677496683300359404874162085345040316274310589153088030585371785443168101757922610175598383330259828794195535687267377449994234408960723580945420154323182714563249382232954201693081381101293031586118597931070367623975550251814265553690438823456970272378766448591245521988044554668648598381947483607791019267797680380457144156982435944969760080300462824279499004215072582525663848698867247405935812131925909718434559992143106644321071768788991114830416882872472449926200929210583424736753178982728409762238804667175487162804393231523816967670672320066085944041884427962040695163643560613222598623893258656574935423554620304320659719906345799515786753607807434143278072766318290748451491063667332446397376871992024271412518140564648348854921673857106189493994462408811574241789146612083644198941039364240314164258221858679658813408171084129992774336571387679865693988697059781177883665110355157113801157894024525766256734762824251056941771506601130612507873587620473555906614637971218435768008285095230714119858237138375288404033245836039922120589057614555562505258323304410167643634225900741111687817380165349872830501968040273328980429665238047472593535483702583767623482587779656198169122494914734964254355193469647140137458909851868744356493520102029701264737334031884224342653932996569336109059219337586758741380717738641929414333595107818137435847428617280290902948561656015942720722788678285158679346513333181531569438151701361255137260008682020646122625116632100168635521942812147250487091006537737385792707799079320197356436081222608989209803484244910039107855396416342475971319571778919778521324594371979245376948105379168333524291636296921524322864013779429775779024588059734442051755093894232052984926944050518956438012663737373656835664322251054597575171259632645463691570582674847584713898990009761095560371255798204134493843281756318801815407955784354507561687702886675929123944909477819002597469006615234703635403679332147710426647256671050304715396498801126820497220177548932448248780475769625369287040803507490185159214121628085864491807332088346939544539349306147828796493269435377199223935855742863145644525233487052050884411276062414550315725553912761637263408106945735513028997107200704658082355001377475993706858163499976228966796224988563944251280335046095728296977687767380620299781295916048702700870253637848807861851194832720862401114380920887060147098319000041217727194881959095397484952486619165633146207797265754068838162009189434335059001268988622923005224361207153041061712638121245366882471006957174153738487312460031532436774850529911763758973500122607059327930916333818997806275165694518378127549528660063757638881027263397817388954585680809701751504832628840340801682985848104665234347703544447174643178759714615287976029459929447345473026377938672813957018416207880289967136688100882349743056126732838099867013649657233925221054372468576860898382888954647876490514043101624794906147525601521389773295880902898058084309647758657619810250332672504710837811482886169847347381492351283039783163802082212819030167745247233148454706096392146191942994574836755432943956151097903708482723619297735797438339548212314320423850062506826649677498935368830780492423368695355115378390589495292368085220502793271238316658832960971282061074630147128267806036087923160733002587310419891730318500457205155658223654685841774215481946029840299019781941986506858238059042118583535900125592579845656973901873196701090016446277962012308578793949769393118412630876735372614881397134745441716372761463469597245054636439947591060415398618099706893062912254466084214272672339115832938645160864046244605438597942086085605718390901984609310220816175145440309986011259019926010464608006627028529101291952550147084822369575668690257258642829309894302195595018223157416142721105621342456884435681545830722935031471091813059042810635476502106349842374917209863688432255663337090524188379022743504779995722145182108096061478411325877301667484743617431551209780465946188242544024241541836293895333171820498671753752638328873674274445069548757833052144448192748511798758473276464749277261656278460253338943608122687204071834419332205535158557028940631929325344839574026545891267522161574793475990578805069719658589840741894847101384038022623768281486466379397368589473012372521369523061394363403596427695179422695379004328762454548587261482221627943413287935133818236661895657525610478077564565256598038370563485077667289236742071766231298612672954407363143765798449631442784296933754892434469457749150258635046937845072228584154444914520368951033911418702085460020034760412124988299036238126907980443393425489240324100015917745436706832069703424025844809758085153572082429390977454665941550860730835686350810043732735687038133101284623217779814325159157131664579701570209856067277547301746815353608811025790113796941118576032870786317476586515722813220836846452610454042550132563403443736144796229527799101105568819120844494506320201665219602798384994865527143172358133343823489085900754502068206640658939379076565567192844848506745499328286727689382713361497617055832289651816831162445558402522738427068682872343516053529213201003887603105799666940955905534806181802467911200927704159008067392354594221004525862349010358897927562005034682480274984222110268991391707455447191815740342195732230546336475189628771502146365741237489225836421980038535686362792160344709053974679685281915984384777085919610626133684650799600688007324610574671776994874115685200072306420117202001343855203064435409227713371378941422389961174484774575996805199012919234266812875423019817018881141971704065245664654237409235466780564738914227972767148635073145810712693768884974767540090701205492584917548712904462480534210293990124793576234750249656497489362884449261615070167921373528341905351119675920709202699737648453324417587871456085625160104228691818033452847679665649944658154334463814635867789732908194682600096553673211818891265169743134648922153280108687122049708473150615975374730526889213146645084652541586288875328880265703428222799137751191370437366525271460855873940835896457115583037938536955869118544431459985955794855977940890085430624964368120966027107104634867338232928980504787614144184676366503366330588197906829387499088525699736999522759953332555267377164494326263288441860366532106564203763249889116905591513147011699006892778315419083121471025454839788877825637705502442351597805735847771717122666952150493695537442879378242641453162705552207463521431287154216213077155883563707472626453813592066884111277476401747052249946223144076974874488972034618654647417311445378218741830415858317865381376172314761743579211462135715049229054882333230460021977561272924164023295979360466703497139545320812283000767260111695191995758107131961910833996623699001110811912102582070991349600008178357296219083839064692428868428291358133396841494625696598186629498068747607706095762570602926316873890351419554007785239059500298579314736320446364081189564903942193434881871391623006422254383527369422664519611116903366088432758079711888094069710594906782653908973278344136338010844473020251705199631116558811183440162035109397351859711123850656145505804231452422262005517066230032218403856252394221746349591556497114928061415566369305875127295836504906660239544530615751107294710974202217125474656713653386069977849804788976987552395724911139211742344800728731249930664257051677773930039566544376695409284584865411187735612947729868829627262536042379735055309585642321526821748629061069597510352698597147450255777092224298288221480537449594637908658515953237515733501382561520361280942616906858079032997956108440639350309374669576505991695366602247825964438242978035285610614093112736996237266868734343335528279381393609071268450042683100686298817174122890984129681288819627737760387230537930324079881562821445506498727872859927258433956418760951476910733413048234586126602010433829915832802554584148382986138067137875145642370213247314235702720159078336758576141500830657855465484517780048291731434684618798267950653263359240352876397840542331040296483339879606377385592467211055700155865299256499915077452495213810078224866330689302473110558626783423543819220184094958465137430929275386333910699231399477999644159843809445571115443636817147819741207644950251838960816842285428683428245285511871690696224194820751846276659946261419413245431936369257038539461359334726384925693282893760458840283150467355614243959726214140971560044606291239552992910306708170977721967512474013125294228393254369389545851516155583081291021468277442735256871605362655648666801593741260604468136901397584136787830033028713277051664275822008930751161212808986214597324077614234518281412624960665774227076670174263823851610623028543051899129024477199270976549404585042697383958825559015242749973785955227883420829327937345129682217009253416578719496326121454000830062852084558478802677139114613404171398329681212242147265989102458346082851388111743426841450422951266936133069061569433754848639552512740953815286337273431942863803192379874640309093281248119163922940967911025711245857025970282121914172770649375162553452907665975886433269733486468138836681845644727347986014653093159357066887822424356101162331370412342313051220310034966939073587376389287650512819755326882108790901404822877795460923310396549537524811585646969629678418724270845516304013074676047328242338330906795148046306154009080452591779806188881775862907605029956211952377219796048757011861325956806259938152465168323115624237402145628427209934682257101692850274578104744479279631391693174836894752268069546861536413514983792270282908511694357490182368882800645984913593653612515247459552136286349140248577332191827430694422227999912501293991601259340070431325471808106570083012014571124928181565402183839445208358312113971728952769088252773342569748398636054485683903995835860518393954508045597603192515088993085319482920136084563091408441840265095359832473311986413173632279823836762622327270860331868401903123159548882596437423076039555087155001027603664059633437777535386245726005434471985885147938038173761637246917545627016949802129819205599380571556571761916971759374935721259423337483503392583503867127345660689100089750811324548290851875183060078430006172368287507721714612436218747892291242759976033282400825564831198851379959761533335449544339314751936288344786440353922079466967257699074393118308658757216710373852608868458861827205270706667925320363031024066401441424380578580654726816263129286634485603394494856664154049935722112046437673650841304599092655050105260629223846463487987408878886209857487897500925982802363523113461574981272378072886659566438186416547576897513541761519706586769045481145364410236614218048128846220989479916586455188319623892760206266763983852302543140561316201237390015900710842870330913428087994347746951335966500338342989981555027044225611130053167189974755125927866747024203754186334561168676532190505926778079810001736035593782165548352758924639931398376887162316411647388753619248724857098239946778560625658809677948036832419983848466328038084924039579368231424745138478261438638721225665344814204727529504261357854465611490327953539537931457240753298373997845951360292528363659472136986138278405082655045737387349445504292638280060169878222469471235494791526290819010420871110270907338261783357391005535325232686922804608630139143276044629083270401071716991138320063655294125075371862035111172218884399940315822790525273974290565725276778106811671879670940831583533982860867276351165028639481750750376709365840950878033027971305843562117223499673614558170442318635345788102338154401062350172505081588542538345501458311432219507339509082320746103356255702551776234066968592507884944680741398456428355398221035771880915767914680497387473098078596163271276130414116337530672908361660122647837222933469899117595079263450737006531925664325506105158103407037124066905406996917763105652507188938436390367989010758636045501468095394210694770424844783213556683494758931705581519149519113217072012655852849854232888624672864398023739863440979055268275962610926742896917542528142307700600748283188403790787498979293467306370622525841040793095607449148086410390619397366292057195422504462614250912896363440676484338186897641491624180144444373956228768643477740263154758943376716922973099176994779278624887994177287669832020376128836623470973984319437476044218917777259496075606541990330296754858803619966693553736150553412279533430944746438129664203824686204967167928758739963264143090612407627757645410165097981490934157814951157716765759841454808696689471491931826875943100389413679576732354563868959939525311941514148920665895108374804858138358858523917509444928544437904404156649218831363016567899238769023441796309090997887134185999872879543807901347891585061595875765703102840538196189511466543732997839661939247478316466238362344600488959284670402142566163757207441419932821354711033468065902741131068780825835910232049752955081554178160420283446483877642850983439637360677230261024684159615997041495993565790436552068196370965118111205334470512694951342998026253020586845639842469696167609519253873404722381010297032518995306419807988938571878515291813051868092122864886037743329120503240940607171031669430270824195157611825957024670142119674552605357771570456172303781169431605073590296468431016185802540604420446339412180095278674498405120895860047490696252888867053761074961043807537318681142538512636177264363233002421610151089828887902151884391279179668674369447176612732048652476562913911754150025466648992949919997033739044176229319967200734513378685958865009597366465883068580764275941674929872754147645099833745735293415932331792144994643249248892996564910243227325087374274554788116838484977939103658509339680138986441989821764313238536399598780624272222703340870282701251166723093390479937105115449527400616622761861628873075183983356811449983117453300650351720439538231775319838665870315498826912256659711820247115168828776979551055866963472022105879580437976923913960743618986677289875836128556323885790616892322215717578553172186232717521702108889911019287693967295491664686893554587575815230579800691506265461544510800167577649895289871296952945954820420716084492323294687363798778427004239197678805196862875977174430094473600464920286590488076415420362824243432236198388338466852634725912215258022871867334688223840427016552870637758873365110867344841279688433195203916310265558864478060166150202433334716823177685193302347998591183335275336010945051526235565262493285792262245483709274892014853499157547602260914900506103904902225755504818035486377129535052357838120754707209243223186600764074209661929154032138708290631009137315994879657418460723284142359891115961127634902704963739565527345598828504832040006555083352307410109393954970533845632099686655893767204428813406809463020471038940174446395324991889751372144826669335092910273653643230658619769355370361969430312931934325844558954950646509144066372090358989450171395435091328777304288662190479571268759418547077737853713378533299003655893167865753245059929778385205052008946676584146277952619905996450354945841495038392840750814764559410217862283585492836696608536287161974566510234360806326607739153721534954079558745542766210199205292582221176498217658516758556605916834385709599700810618065467701015687271767486624150618417073808264916500260400319337298159895096491586639578921880400264781285059083283615221036947071689756731857521745747122960599715059576795905950725597904179704709480251407304234151425089127359457284532359300597505482255613456186623061568088289490693863454332083388376442032583838924408501545495625393497352394933987573523346259898120719922718477508446861104949159967097064314557883533958944000164896490203543612084330252888113820342660062625012616467553124501640657726913901817824931372639507324760250131040503816121376934443040245113272631833498639222913267025355083436357496814367923165551275903599960157455280976426669396397320093536238626530416359566207091019601740801049209706151035839536928336845093142047982031395129091822147888483375686196546330584368291462239140761166862099974139736355465392108974014087311112742817938022875120557763385908515315962675843940650157172795878822333546180927730195307362247468108362664308084516183744963677267336924099727926968618279223516979198350951415001144211173902506822678970082595762435193050072718378655192382781148434704034740100143797211346206734447928891253548851619016181744623420826266333744362207376385247595917253800760629570091934321939268196219516412872986394719979995471233353311991312837165230321634264968839354648628402982665151661445908511316393261506510212466770887832582344636594140756894425100480238361660712532793283351250043102627273438029667632560375111983281508385214210336493443169974379461845340071040674696558199210691431978391643277018472309199375398233205314330694165657877275924025361265348519181908772878033544629519733261632620845498488767930466669650198787005525978467040898911462481086161062264415975053974217304198131470896690734779182585902909662337465369907379373448494928756117243380651665415662949009303364390817358817516886019898681036614763617837558828823108713533265257504266307924009291031769794467590322726133730132846150808514723694874910445781230437729376526271831445256194308859993374445270523988580876881619628264561456804991328955290605119695056088752330115896875354094931675342926808165458213901343819775967100203204822151307548942622797166113958723570722864667636244194286212979094693768990722208207703547340086932032817379644502447358438776219867728811679380530590551388133263726219886058026301773184681903577733463316772683230687161912715458745115283865868484502623199756923495714280093604520318124052845981689678993114472195354583785553596582836968729512160099972902765305760060990595543573262746010374752642126675334866522811893357725712111661386769763081706110315848701345502030743920866677440352600059158685756484603936572080959698156660007602091404951106864294726081374594509964283921494143145264855333653671015024218129378885541402921881061950366444103447325040155926369724914988875863565808001921442640174279974580878257433960408653583875340300305969986059271772490803385006375695583749988638385924823850731869229202600094214777367994674071600395151055870247205653065255202475058672629788353829110335898028004533230674525605657010306542619316473879340731527490164532414864711102056370329203300089521078485424480464865668486538312477297201622559530730957350774573073336682050353941635328668552535627575457001700628167119613841200186179559748965455855093749456130443083914149006433702130117148250879778848198400339666871210101802657515873733134137990788780741862412954241847565071697780302932419781282528087870798791221850244250066473977639674090125505849235031971418038474004583917761592376473982208415981014731137013371219934753972928320953453384260422401675419014370979607255289622906953329575053340231186961010004105142427224336728584100466742880420332900011378284644301123478179080412768189903554976802678797991723212312753269407420107435848335482789827793969178657628431005100461392107865222462171893845951202234890427758651539061422340604191280616880604844756888963245516021765184089195196914167595517666193779850978615465939607820953336652167710437660821726623124738681883504409259709894543884317177933551244630389162461529513256793730124988703859508782153145514265857706228816951749505740237340265288699266729097262378170921758851958979548340607924312780771401196643092893900035051684091901636749326273671187161279825230996531163862902160770910574317795012805195661785511512502607537124673345966519843437544465643346811088865915420677422494104396502215661611263707279042116492500915659160673361194254791718512894980942427263413453567207180088744302179333926186179513590940187956072541633092904511728302561979267998360387054451040033035843375162080296563011172348657240922740171072321865071911294591063643564191187120222399239969222114495790781164571954278644360118624340512525675407911744661342603084797675803260612579010490237679639293985097989047227563800983773052169813958536273836549044880013509263586552214636917265270390338423168501410825879423587346185273624441099506172948095061000673301570946768748718206128785749513322034654231176491241883046548632718744250191599644748578847435117922653787664669283547114578970678929633417460343984683604101145636452615039716575472691375682863796207352172646700540550914452026220188386924271331957182185874949290691993814401299992138542281939150415051810403659575926712768820549420995857672337984179713217481580005054378668503523189105862940127938285485601245212564681172853773049701914646735440101191660965448074518731917376861656481585933457299004463966410857338312756535929226122069068650543267572497459261487844159097691683399501145152704833070495031131778571324095234936905223438408137247835249662570673486147125254197099312294995198871624414238052674424864031668249386860640567257676689237895233745700481978056585442826661651634442072915389434753712352068828412740549150259898322406604260609488104432831868779534626867222215660587706376214271280040473108623889277088398235546718897879786923110924583930325215644243906364069735787828961691416966131066476954956026485652789607789895629514965321167742988534298030100944471336826822994725687983840382895304196852176774013891770551947285699310587395187261364459680450887609151368670921276320810616260730459608816094800966810788341217045266480493632257669180650871283324623600996651277976291389455016091575846090307813957877193411645581371949241826857441555857759531331068036873667433022054560882344077334609819192900584893397921682817839441172975459752221038487425963375724215924596308963675917552883417768761354443212888533962501913182850593044203945509989187834541162444832543010627529172363407211852798372941739536691636969069064121536590803879077323802830633543464166159413039536095449928271319883071684465728899985158710059889207756685506536657025561743631481234061656508596581129500499287631294899636557762804739553288882140560514308466846872738436859841199214146831027699411473845673929269242540361290582080348557529853566351726956817586225383307980538685986051502773277392800997898955195094805374008708681794870717912524238973540757590728369814425260793815920645216921418760686622797146187674653731894039593874322001732587930631525211021590525050863952117013125659982110136242693633227674062231498289003779262629949673196564735150768431157325278968304308806259793836134313343476473277781635189629397032334227685620705410669505653369298367798028346060735358783472729908977636937381077489404563842999401723115640180580134098311177549014090244015215002653817951852241325883986621441512253065900401179107765516959996403447073271372231918790701878092998401128099509725358349824086780509463535338116931314950285350689478475820870514876544242526977386504707926697651545381422965758459380251057423069929322064902053584904556905252809098788811008601195178292998882851303742587111267396272097034638307204875336996813487580958854403503616224544336760788843114717565861602048832348418233551668519936871606621959193035031069492473727189843274835614768003766562536221332849348739882133932132037482783295737220322565527987846431781154079073143943763811662852538078115597758476764073644809780703875766111120097441123045999111409716948750648497824610959154571785425901906565062048021872546093187235686589371811601920351999531591128034155552325736684285296696069870279227464057428286602439140235775493559610748682012042998483308379930324351126424388387334402870871198553054977772475493028759365673069010571202959013339607686256847078198257015980594109933883397945272781849272079704967194104718916024522619919488216049848484038603419087145850333220918344913630201129780592851984674510571308228850951380277901685362311645663238770574379078748418471120385391278878702901386533524798737679836879920118946228009358786077301382452412147539533663016560357650775280889364036062336810051687117012609703569052189441859555969335228492345413565479778474250726601653533664947259084208474027269799578843340255622677665627870636153288972081390221360382222355771959065112954913354724505878902455467202369560159975218329932448274612895661465458672471028043791507751323375416651029541611956957599415943475115992111955725992336115967810988875709263876072697343048035417765321635132279010701024322439724605125708127506023513032785213181647964067230249516393880009060492547143085429430047802130797067850404034567931052882649024405673646171635523418869961902437862465185328806282450053436782845715383897522287977130104587564349849214493676998309934655242457392074593630335085463893708225399150172107969116669366850438640442136464669919482732364494548464432021910390474228149537903835519679077819686987341094910445731185004999761796769659684715618822603534586062875936738915907267205047494031141569608525695909822435421859472388377030591745520565984726876414434327508448797854659730938751855128428939273547394421076999782768256249752965131646031199412521746756833337470349473834848503819518316682455702132404735679908760195736927510077935850331153094782582364822806844089156449926070171302152370670152669332415179762182545495626125125678488191196550935206826814797062008902117433351172617268865391412435807398672907154817194251204692283909458051130994601754830272236642437536892786845904324410901377340221153593513407789647625911839758714675529742453486469456773173432741555546759126430360862515561639093885932227318734496546892911151804412460111424869123136403485733140506668426455239409232299759152173317142313288884223486991997627908339974231609947399432347847238407265149483882163581676627820585578162007652849621682718820724473996433448156086962643419497142701672867877687578242937154223036606971886619481903017668490085889750127753008871927583664148823462880458164010639079472755891934193359624243530137032906805671309465129232407820381544310701693412549400064519241244752327810969153060037694151938719905310511046690065145527406817372094448803226057096796591592273971212662744611022277482693861537481192104007084282998512043978049396272915396478224687449385700977328471819989864662930445910648460573109318900241566589401395794324666134088437787728648249831837007204226818434002323335160263154467729285610793550974410604766625247039831894673542863126260207328633578424283579947161779620960851976017906118623139777444608356088058566537000917805254139791930418314925202352999337612896513393921352202807508721829271107646429807804472982275038649360817403910115241424418523422418635615669241005344022347718652362040882199430413807315102701377608074093891888157521678296052360804288047346806463595324541330178187221647544319389321072931539176328915070777502488680187475712302235863476180214195917131935517936803239210379049534863865127323685534155239161612821660816719682787555239202703533928035086739227927521180638497124734109059025693596747200247484297571047032345188983299777955098335088749458020575319374658654631312919712364579261646667934278598684727405100852715658867684699022146459051078293580935671725589017670476390709799512485085502122492620923715072330006432944926996872066481679601920556162013530854584012949813647707595293961574634431700379238628318179743492729527418296947299360900748186265207779699373493389816891023724351898688512491244463426713560454051686078040731638909121565649051073501706245477091551071326625456020266703023069305166063436706498393735652071015286470243724967949846507163690833787498177017346844900145138823175784384170927346666593163308995247183053900895970246659628770976085763894395958555743738482414614267953332979564436649755899584452082456344413603616392396651301696831221225101978884111786194467456107838370342433743779939305060122425703982726606240633530411931527201050856869822741242279585883035241785222573596806751414906278239991959450130255213694934602647725038185170943267147989663623403207548984550024067770907574851468059731311486162643786005039240390593842565085485536590778674810684859445685472349960741069832223536359673970629834382873259110773473097630165046910954874523258064494567576859606058012579934132500931659340402892404054894934359438439111824340296887137780542801728944278505798466888054795461584409501831124567208326115631466706524724439372457506622702519973706959277168512886559180585773787427057692352623373577496897288228897161642267124853573667481217756775927714807799321106727862336450509076357644490371176945526128563371979964451648193957165172582776850221851694540232339539522040853189915284442433848946544441148384975809969213207136354832534410376547460268548639919971952992834426758742864639536679041209299409902960689198380956578776542650062235390251984514700024253497839763324860802896436974858849682211422717375184691893671584241803289507426429281675444320059687486004127462749805889526070564588876297045131758389797201677487452088270829255968980439992617056111182827617627788942768462681265008407783333409396072583188613480611158182104987241830850454629609948832018693017478798145050341039814015652616576235739872946549134697257945242305665423924750720004441592902496027404973543508932486191831374339654968299639413762079031120222407363959264904505080300572109249007542601054188431076731757833740798310238926656326965645902565557118597725039960482286156395054000276968726008785959232777397314926707982095073702246231476638520316871099889762607194100905004757793724382114168787432490999791688278386650192552476808628237582038274523866476114358074520197831833627662348865097562233829468457586244245134276342689457856801428156129941018884480576091902731739204056021252276579130264405342374510581273702263727728895411898787507924159842564087625846195116433636028771695359174582243575043048130334963154199543915128651742107964266177024551227475730934514188413706210100243315588425339165176367293489294347404264903351143153188995103982329752832037022747147387156357323624059218025308691542296882180589453534217422394659679543037011954934757930756196140366727650508648735832257965682563675293782183601483582431750535415853452109721257802691532936922590421524291110870707713776539890514753227029090100947995010720179871635522574132148393263171882992901835131148196185857231341990727027892710405811323784148867035532207943892698142834714616441356019014650189709414155012126269583480656538912333538368782841346888442168255697606343661268480495095830086195114257753912267787496667107326508767352043672415325170504862388335624244403949991248249570076639491426915881222509130940598030086585714593677015983678409115572789031546893165578255743235300705501620464548272454316821338024065935681567367462790192314401216591954388087545441806240438860537563983342751653647922942199389406632596876483753387414415686526025416600937210400487021812719847983802634908765194974813008446249350664352251605434530273869930443811426081654078026471349475497124303964343857892512354260476908594514164091201995830900428942775939282272973376824245212932422237665089356515701236685924791394484674126226807429240624068778197102259902619316371428721160219098631186244757170314451455603801756061697070177872029865856208134456420186302225405127397347231088082721740218460050528007608741814593930355296488990079574030137556242718713378400684814424471262718749691198292019360629265931440226393596846225795874007411550115425047557588048093333399393348440491995217910708257489724972066867623757121250643538897931219394769475816286991983860742341138165293186781622428146984707017119749563779777304398959927628105624496779166598061423364530310262139873617591365478924981795178386443369089030651617369198359526764136651595846810535447885535976019419475410380152934449170699378755989244688304543789247039247346569133591049017544783022105294787081203155411542384409838515393624686481454976592134196537492789139235149991323011855889431455654523276027338095740319548156717181297025584409400513262233578714527755597719283542870842136807229828559189506476665685667345513723607944868776642657674244645020815887936454831535316975024613479978357763498377426005228248816099519203017891562389462183298627567486956380982720020406798177221233903717650706039346150682287518455471160510114686701059654833310687757804088281209995357555054164621413935005155810420511237182482145824548178442815988601995915751857502348208980588051390352176049939536081840485806532206588950897478167218974445257968763423085521460967703695539902288378784374572362272889294491821049542268377926150026890607518560624874843829078732557577240492674463257770843221274340520261336139709810702863206507212870514313971019161732619648533662706564066147568464629737430795854552874395702170954167211544853065414756407390702337113843479262047970867953297143623603762670417266915504003927796858655905607171443899211532137493878453370260194442740150886507912443276096957037080892129586921731264095269781070310840200757092927269889087768982181719381400817923787480085425258624852243855379352600749944407331581136696645344720854061572250885125184545782552332144030244315168467288589085018214771364266858380024316387447179766246440457141315395006959954805136349000141880113947594647772645692627824100566788818784922688242474016387113615015353916858450302205124161427925019961475978616687553194059738631318563510691745649096380987145520193210948702408746421632237649692387631891598795162519172729773325126875102715227750422505133453077424783442958763751898375467850957576730473983300303565677509223353741174974270773560930578333487711789002004111516704430765130202464617812228051242514762650773958336125126099742673875315914573955348167645084247148058697210089285289353468086247035180937036735624743713339984489332713043148562759245884741269657939146254421487420959523779411112539038268843709472061402828030047610628129244230826744079130431379045084328447851377465132860722233968092794983053681605869420197514319973591612199146423168177865708332734400119333760075823359760552092561186505960549212934427431079080101628922212759041652309709199443414360400199970194721493458508476720657375327006509680456482024811031531295608638859329666359241735605740968974212900035710372362166599646029239976511857930544680859555816423844967280428159243110742509279211218782306498771813132920271051522005402069634346929887038779396067096853560632687669107547770049083476901332272547425279423522743101479188136943280576916470474933004605772711796259595029276777716338759264544584971181118905602013853807941990755746804638301505129922640339763967238868045079080258576904042186218492529645886670044704379249575845848195389289382762288228538315336662279887798925725725365853491817517807093089525653239038548811148335071893625861146206804810444088206718795120239201567224049824501165072517592416512278321881684758852929933796797989992607132149554496924974483972010246073101133066306101254746251516632928110222158236783172831763457864471330919760057869704587045295371283923217068581977921901611606711055773298351469741165970735077188077990919558897625581639201029116956818690374999345841015745081050110997415046138014558231579524135225712272928016965601846715906190960030902682963491187245714182000140399746707458230569414317216188221379225249319975759900121582369269637652495583538002137045082070374852154425887808987949195917128949976884122780744866319667637674503709021696043899303206301226507787422450720034021410268442182590626402137864650322377455101944924574239994176460784212882149847998376503268758535256473875298565293857631193987865573230503445561237424749116116224705238139939591751325106155627242822089765017496752025636790440985455405312298416868186709457757093042562589222955476735391774686291020686019244154314074000202570946696300219970884327872288077279016534140824882897041100609285605126205066371662776948388197299758729660509170326457196496243323775720912191075913584426239278521915891858975584118998167341485914888426851818496506476021925947636577285873259216317056043415270780905441770342434883445225659383421618337550255711872083940002230212481550806960581935665660521028749484973883181691803304047479395105466258164003027056673697145452381388161202692239098439529177799110464043521352769066419031494107181672036921770462962606657559274342318947223622276211314237309928152094557581073586793811333661493328817547881259201686004439876536145608955421313750223138775644896988849952946964841256281252680044423662157892318459732867160743069045654852563147417882284718054875010253101160893987009502483079860509319311475603669558464150023287500219011184714040010185782127923791120709862159528050780326337511341820916949597343987452283934268916582001169952440830828900561650127826626830461503967342428540602950097722368151473967242212307018793163523822445842168240776660681680128178131039808373984742837169217533771688986222779773176613946112361037063954195356889294118717987951590431830373920339425892225322192775354672336797588254303862358375983743253176831938623886715459316301002849570963688656435203722160437181646961620682193943953224568800526302583016478958809633866135301755708989665641774021285379369183244746824657485117963065269631987916315173789299207283136494525580585657846979939027080129271368155456669810978755854693112087635105007365894421210013590378511748711734059387910616230617777430287199947523072502082096160133304269707584236046736753548335373038361685448310164210882864042173116780113438566830256194163431615705289494479330827430698860273445217880807585352795664506588262004126185723338894188621690552074380457448091919889378924823880564210539121729052302542873619497663750973193671233167456329201546676387593475427311116383782884409440833781320160224187283658413714962221612951096042073243318750999669632419041755618112799512213389799374231777014572346901756768008709879789848273320150044391733271762360124082389271084012210130919677730601155474676509755266642026912124206838657136125434847763663529303394858748690738093925298613500889215969892309585697480593769557537549757014011849534248596143870493825413310094811504602772006964492874041368971714079973937797058809377878764714603411391764211604093566462167073178441305239219172362410392775193232415302505399428679112391354694706336474289499206619848525779376059277382448389195784723276488417187976653863791266708493722978138778341409951859872191770207846307817223220090274193991296149468315642587332071795533471573977382373304243838776424632887873985702396416362948660631291718680747924058433385130928141931863022184496614356412520209731360824452710322428109423398579147303138795770182715096205173512656243426087830529903400959848937298139804471649934162885782842961138268913092224979166228881031482437112357332228202365188039342748789171557457167914520091025428461618518215143747780801400851901309714767216825572127171872288156178533633131686526240904706841771951216001288393786509216758252487053257232616936726411850600856526105486590801203268870058013001097285794578603820907222698579339561696510760809417907612872916930518450956789836780536218543564102919248868343456327753051423029674522460279215727879218053958781008226974318482414685644153074027926994822346671417213655997855624399220111720561239781409134725550474945303627026921332189880402141585833843230621017764336422751236111390966257500992420812409809977762726102912858970778094198379488272150258321771410008387977897397744554187537150682159497027603673552795451957914493998918291682457361094517987064704851366609409046908802022116404614454397365140759636070317710297324457011303845913661145285423729170603094002656644419299127530610684005534141699051645644723258186301195424392939162823622383910780454581311906031575767573555570356423097887797744030635526591918082704423032644834398269802729477866696944958089301020138839937609700968418563844073828598670591396297923422972774807613963626433405197326007598947276530562041738763578233308857092429037358138916089732685717622044945412765313043750869370304135483164227119642576814715183816545139357419857664949916957711643805264663422794842290382403229032573921091207097995490951340693994212248556545666668966133548461718952946400836986450224598094968465573728953056370036277859709545188660173262727116191939397724266218243388312995368356798687731162107528432783600140704884204219456132485227611674124597459037303477773563678935491521527420609827812564540637211180589506107318710385218333514378753912758437365052184752217785241635923468937914986142345569379634043646844873462174281434070280344143677987562464744508680075409728397088458311762215651657531104277207252274108849087049714768814472449622178863184082863381351783247813743130219736728274229158075857116227990706128862554429513092087288333564238393582752278854778820845442314756299435431034113467166390117423565045611926337669662164668374410675033222640346663915660532762465837801107218434345100973728783309888604273561751610732458043410014423255528259197293183008809667054067890269300309403252574951003430959434040305260012626155269565098298668713459339650440227112938926192204310816132363499078932918943410545924199483717582698231826460144795091030758874932618997228510667592048400863715798553037337379141942023859685775425444823048792780483675693149297914153777057211621759735372051727800163172082431854519741106043175591541213748506734811360801195444115618029262283218257263868851729921625430780773839944377742518758866112494276570427241954196866802232942875101432969582814308334730092135534678350362583659255124476303025720709293389644652466803204231869322338073704457554882812209056225372488800754399670157141526424580611610196182306741168951691017681680778349579363883065123052087039338235243842298498720102703941902246863241319032089071662486503279027298466939119120148219014362305794308567390194685454190761656317809495225730127767502590154958396243127781375313103123076768211613196398104622502401169804406944174674661797341041000104695596214733438681945932667615749526704083968794013677328844132005921868423745187764299266416099769204640577754711667149398199706524831739381514529954408889261955679740493471098791642307896758472259589314589005616343615585798698897481308051024309911397917905888935159301394485824511087888956993340475262800846275907257950124236778042791379070784373039175461998588592794551958437086544653732290287290367847183552067719504784355919735779626367739680442914256997061354309356934044794393232233052638934232281841604143949454523532386800650022718778594082449155812443023720574800447715934608925264529748646548937518936578494317730427721904522849787168515639544867271011889638507522180442397439450656550602132432373171347669483291149693561901209530818894490698238926348127291493132101573645641561874983740473343453204482859845352172911349509442821392622056837285298136322123285422054453764515050084280717039678251156591478951525215955674040924520549260963328187185065905790622848863336888148615278242996146994413361074773385953840262067738166046778698782925954540165578458439746494461136858539198242529686723286584648492184022279108376176399561632239419199127377424490162141781708097478956102534349838640085454092403880757824404560042598990284336522674295323407950310193338326252361443130836517336774228996771292241886500100844534132755364954097875420000621387547361960936608878730630727227867443482695714546795374756447639348460096063328030283039450024293245532069861022922677872843284503193815023002428416285826745584229763835977286065428942739253600624641032426206295581662818083145974275353050377190070237644621197351084678273569701140361062862811627021962723564212656521366929570350274959457832044852733691234424286231971058097937498036674566287506940419249101332755605636526365551601087493529053889463407570378327265409285393331306164582684456079966144014426144283545661639826773059341957287140338438699137114515465492457217110305069203852901357685726380025618180684479135615178546090393297464105801872153235947389041396701768995072230563773000365067112423834114643219411708181170051322587003712524631150353505890550874951650914526601722902581538985643147417830809270984578029807857499651385945120873142546708580925566034134356453956869507746050985214286917956526551090461432044225450484305849733223613805477899371401629070350609303852993451840502948496857483373581742040722258539173125712497159701051686997977187893503714575547242325140448058569957063595286717966339088759751292678332322279108752643668181144411949374960094808274765007116414431964416106392381830800231664325273932509007709769932349415746645060770340640083658657913923638380317436276482918902636228757810555448847726333980221735852880621655253300841116287267860384040160040742712358001498387167685288186576227430635637265427537208148336305314461624437615238015464913389982853429705887918418358029021990281549910151395870666487493982723344882236731723721238249784413674142329008631851630985162337494491989668037902589040662503562398845066353590354889995603793831117454263324895245399816025535031484789532626849455667525114464668979430324290923070541081173184131848004775779084429152927839276724027129950777351045226570505860956573354404818456821418138610182378638575276491881137851096911927085738488721989365741810998487098015443633028884428023085212306216057554973182768100227769558195605901693204672355259110058441460697555407778587885414246202878891918652528838500655145750657299169195268966645498777070708021464367196945049400848062902703950436017151282680757759718664006959942100234350332064024265717062145360247701505015725604237969711042019986874880281154160953684825117202784474003380548033052755264196830982477865073339834798049158215416478332504339344926257095887822938871706502780727007698251774130834585994875170642203038174704946701029282312444972132814741393403378963688938789237345109248046369433409920139684380930904082445543988551306636961283317204041630063180730375238386942663123919929697974418762711269402410867070491946421593860010161666996866757663717718120056423162637057735197903917403278753210049435235498652895048187825165313040437317052053006855888463527240200450721985226578132971290058626599067303341544936261750996702520490298076141596179347203383899304589493249577162518106519221880579972953966457567045236194708139116993325369448803118056767300922664922769591935730124015985628494107442428437481089378714453205720497551959728964616086098163666892724062957275737314988389437512490506873314927600476436422567047911026966950897218821935619375451912945676320903569744281172439141593640142615605757442709526319541031255387212667058551570588917478162358382275156715725568716349975869042230943960087076454358752333214925165088842869885999344466539938727860789635400550767242198203970376980284339216383614115317554773666754185726263797116851395080949546701516771136372193698864453033551133567496595903066379082827104076681180585927443781413872373778218017000348011147823826680904602109419000039535736589099029942979734017687730997900521054563912807746895640280297018417395831537341032391420043173730936231461199159215792539530699218215412494059895081632173955238812921361401594401874317388668860992650293655494018689822492224851711916706481302434749257937837991179841024583462323647826927340418626937366352345406112502549523353438465601294835072405120284643554428395092295308108101251458353420631996169877804355419770236702404680256274231550689734296961836458071279211555583641838302816747388940649339811268862757324004501204767642750960056560127551998733554938514812392971530540895362191728477047386548090088552896114791190188616790834987582321084816750668147180590985877879918153707259245347314450193618125822273267991649224990857249081420743553644958839023119559587272343831068214432484976209584962022102860765657430867108042376191913905379728293973571832971694313942090296318971936849395500288603055199135093519455445098563542011444134634687518693760990148355190549000413111081144697594193555308903724970772095707143451655487908162128008372644977158649406899534228682356878018507285707462586464749272367510889437538029808600996500058584498957839552876289722194519538189477625201708938198048817063507573155614764701502097996373572742279075510126310486214752340919591554043274457465963776998938962385682181832930897247384321603249111070544869077684660924722962794110321505277729313151999956879710409232824564099385300297936525374723782580437773819720890790994086546212447256975488692377781829445618919783590313753130091320192853262308562074215072751687483733741603595671824162948737948191710376552411168970804772653317545186814336329718160243470646999097169226710082354805128003669672050165777672590843014002605350822438647870618307167206780320260407523532781192218299776532574305947416777308414262815460330708173788557935615611756225679720007285713069925011727027097023894410499822635122060904957479299301394331604791082759936366546499304570465153547956561051966111871290534863024369567842479612180800576652185402908545333210416905741071668540845181963675594584722664498852528026215773328119760439587237878498847376760581075906659141765668800139506653507401994935245990954957911218399986463103829618700800650117041548858198106152054914553840186528991958084901396854994624848970736975049606599093327727574629434991716710111591057719025489311381420430536857660875759659928885038790247964168595305651543271924140555107919085276999831763056319322811091054168542085834059932314845202952643399644471775808317600217963412616021716741925611857882956728349190064431641013478304587394640915665614211093298326318900306921768916043415247696541783628639710447344132488194967007988896624877099476864984465979937183289729763147279053144459274497290073801133320958057402181864996844756141499060452061203290360176738906100527927759132262626868813328253591644629316457600310767091168375925259021838199302641779876718704391877264126901066494782443273106839631782688512104487618429851556091670136874931728811989999234933128581469895996281761588532438150764416718348918818980692047815729588945645408926984092657260213662846279654715444398215453358702719313677813850000088065146105090035432801665562903005803031293935167758030336671157878396605161415685903285593853761866614928118268992418523583114683162357750951143035435407647443861503774170906481519800651717791655189314267152455765015042619366689075085550869233074593514294965247323110475630017401895999028719622299655464206047777534705018473956057301658885786964511346983401968674144400599833970366945719644656763326944129442901765353232949386768858722171649795869004218738184784853991005584380221745321163574045323305260040350973050314971097534809011321897150515559765469439100383940482583686991449515506143718269572815195542595243727301981920183008783792984870818801125170134180857847490722609256346797861962977534484003758754385765106792915454434643552530843581961533826150512629112531192723332091487507204958649544454821573470159370294987355083506931048855274843864301370550928945187893083009132686983549348102688369394965573397458110116935687663852331355148222204219423236761422057887812688501220364253658730415721070234908391400111080136075392666087506435445045855838883245441003764285264267523428218290121505016019676376829289798620032114489587764620339976515238479941049710921767354835768649901675774381998906919109313260961828137821242138764700916278409831920346486884357128736332116595113631030053659376874389891050782719250397840187796562925189911508329023347845187985524804280005849075740033285633921957087556124185668314737005369430341926259294430803297650537458877882738128049142172953018583772904858974521909142907887641173911906159196734847641615466511523479534396546984052404336785167722349012945087309826134542630557837615851552448133562616943093794005427524342988388539846228144004545304708093327320069563104658135168822925827462277353581463932953651891179866244166618424364338882298167910687056142492446812604313821589721208195464364635975662749597080873128271480692475707507770185996829105438795340473560959819876295749413389636681540786245474500723718508354238568064066868807809819683155802190224334040027758947938566783352603110934048327533390604068737231022697039134015852839112865091335172046217236558350909177651219404200203495918506252502726474487520131098460529910205062893908669528912503800517324024694694251286236674130274908381771749382580437599782598386867695877259851074440962367301934948816856459679379690526877165208236312561325410299860795700476730269791289151733036501946001650801123108726829536176158962433579584868829064275887722169674399699847437067161300981984674988378999942900307597818863458841577468639624574709486566347542951580260076359736836734268521984932731227782478353910262962821075696425967862156369937058466147614175548009666929860662338544012922118005801554307038495665154208958938251272736241918918333977277195358783140327227678888109323764147849134026549765230073126445645260858951886043984173940130711710634140466539825305648789127022427221079415428223239368417681596309352923714895086476128658618326231135514891240608891353149429897649528259713106581189783553374182633801856486249694651366164001568861180399729859859949600724848654240224239691130714052312753233839693749550920188400578869733492395843136164965202119313660984499439207673323297326910584366724792000251076560368135773477805541401616540907784391709512069796100779355400450504141706560484844632696078342491258208575551069297508417997895478558911453491300469554999634468173586771983871568120139584889645192913575146993122229662614650830180383868390109186128368116080379870129107504010663932613160097127511634790795077575049889277073510000777926443004751825485674032278154355811349433931968890330711722705260920383959189951715314812061424816390069740294925317833330510232586927479354479369830250455199529338587079370279514361741059113734802265618775230217819478052893823712856760807804695527879079647127159057845470798738972440289141779798235897070674088612700975144216073419831520211904049312142552031047406439842598427800334745750686808539160338242013949627853338592970408148016364844401816056682018398213312504526432420288245148040521481580587897990259282816009537963659063778461710836221130419042472370798743620678796837054860083548777641334139879555819802757423971574271034407445219906303488813824834055373361545491390857981767911775900617712056446347779490293916528078565924294167488333994769898693014051887336393034457301086267380930394198741730006671282882452992633197036919112879922694443886529378369494219755495700445200459632617581482704215137890035823987534096483115053953101777311928467710573852076109576637123945295753559677467102870534830188723183489667699295903012072091693646330778990447621571551869502874613396431806951762755977705259952658618768619933402546029581983469542387774838345880253265546231237007180921868815083489424594260181864262271012628928022290821435255695743257546829956079592818236670117990162154824753851449040872029338932825940671531559650726824363881986899913106639803788750060213983876364542397240323550566761837047463719344493783792149211638269531806212895858780600546201879522135426773951353015714910619187517912074738547722013679566213883354361967958301468589581421431539709307710388691986504850420118215934978272708260156925895835735978186043267049853158038421157104629768731984079523634456443233627030064907283308270291584920173885399020518489920252251127116829776242342811808590127526329329310899337484514226877761355573709408451161620424069699785721542122966818813736090001163065369293040814257625515053528097151421247658992562189046808207184629928902484153537973587488972603285307680073155923328265936338538367769636860651954389533896882050610273502543134538767386508198364618877899193980748829881840760365801572600888059013006465460209322400812972764305799884659878574161149056262151050885450077032560021228877495216955127831378219612557167700318489358955437773778577287493149328947924422951552293744113540588103134599146571852771269419292243367701744756540211769861546406027669241176257286291355846095922054747954800395117869872635511072227162350655293671042157634933089449870504318378943652960096674824407567324955763316182311205589470896735528493471461367639919136172566187197187782386475812763832847226038969626300282783775863066436749698875746780572647692584240293446032092628751737935589083181390869845043134487368465781152647305486615467317983753126722561085767050766352336565032151202587838537432667508862619481415597437086251450117537841326764149143869392637704235022631558151567389489608587009718199996911410558273072001774032514875498152606309096512196487186924151359155771325791093054939051147807355732949088440508479877513855415728725074162941960600936036409158852555398856908097866465263451573477185213259157334772266726326649985116849279490962682836363343016804861144245259413828823810304689234249091133492595432969193673965539998751848035251648387175932022208641019578847830970255564515878910646832279331096618227521650070097785192622467276083848844441621242482564034543029960969442974143660168029915144253816325104417652314021403491647441802910288896899470235704263126181266700025511598607627772023898477724140557302855759326069797381417102513448713178344813977314578077055385041193758801391216098881718735966300815923467658003923398789063930021150544756906638869596304182650909680776442333348163437922452566170037892293903056725956558513973450998190652306465240785166412150122680579997910099918601046252835769413557994587060155193373184268389783775948599605437128798169013921216704456704947219220605929698709096072338561114978219980637254654613508527314762824983089146580701069938788510122480285811527774396922490571848202344211638161789070712597442495041930245061586898542856949701997276070237019301287489237055402560948205514739804915091523108361302031732643180276030210906363459922411170273976766486482004716943312023082632624886014094351957430554152768587146595125915619795952079167562574000380516603732664269372501635491517540790450129444432268963029598809002600016804457105350946097719508461960253477123654003651423950897389377867602992532167134406303484079512323575696623752573534449136193364249085240348514199276866596609020587065567951559278257525260521471867457587343137523961148898955815165277317390111492992247072193588245351508488186915333435276021765544075950500502010614169887890203064129668403626105814321904499159878284757613249746333754672001752693575593041502073559091448493774086940342515551384850550215985049001125902154035951998602484812206715702248240424407212531539743230132253707326626020489827506362493701494574981452176807055020462946074533452380104043547278608270540187099584305048396539619912861804863473833997493226694604405104084017742212212983653641079486144804373431671188184699285562462426134508735499211319986762903835532253957456578955487164258573080816226402220052274496631109215705997950627804006653634723036462374275355497761800021736094528407710952287386356694233437521413197620904865077877895888855040210721759623481482909092440746238753072242265693299240491021452609354096465877541262568783350403717638066205329137648828301510258286748954623592362510618150183801072767264805630755353208854537330194003308012336956232225223006569717680606129949251138367306309717294438557821141811917154231074355073966266619670030236764060657335967231633133691497925199841008805008951105580334741912179952708383766173731440503183841801785113163188243319784534020531801675288692143946489910887654213651655033946106421268588452484978654960753991224664612958543831066890033998881008576345129791203646536441460666691719618940142543798508113408512634968549779281572072027001757634465426025469754016656843199557731926170406005674871988785551872227452319205305668787830094495232103349522541259154701588023471466141378982295802084106615971859026345363673734764196227614467065169729413716753747889767177124608042769443631097455652153617938796392539346451487481897209360629503464762618067238159952775514033670840968491534846324696025343388023906666722983151190346073005274392521160714657950363348539024817816537149803123887609908162681487336900427459108050244789603588734004134882256627222057864697128532038739461663263183369717586619635079376361095629832239376443839977802593412478401975381798076009571091748931408706633114477147412894046990783627707281036299943414711873837299780330520495051680167969032613741937837249797036168194691954252914521225128763979095815947837975714184425389576846926061460825930142519566349357131017933033791761775098961275937229242118479616445713861812683624642699148270459611174894393945507925445266747814987633004689018676922822209769941934158957676921213677247247196056509545727178213705610030213235389481499923968550316930486007999382639990364657449124665636724181100887574613348198982203518746906469329954273758852977100702251636560068510656378417135211152704555387075922228938087645714945311648346853082487035076213003842030259117924786448487035036363958042924521143523190232316324855139738710964653644759568325163419181360903518518468842727428504411398407793222106030317806587725222705215614755386401727695414496875274257566234915807821026091622490915923334787806396477467526672983728702222516921635513798502202624381328376200506673073212833425957747544534543308665412724058940505681798863384866529754674643441479816276883754775065002329329760720441291945541878651969948299599719811470749928578680914521559417122209948118740007688475311946818102709542041921472188205326858699100159364654979266952626532571650567163964044053201129235275985387045592188730865679787324225056176150768848221391126863192937800726757704133996857569775452748119032365869151339099220179287570540984315078816222510645964445025981740771918749391223625101459015078400063286445015718284921282264386995000599434065940311207337583301573216342636366685172703456035710384659383685150996808725457737125838639133783422945071791806581158648166929554063444545870352314704421439586980288016838133268466076395732692089743944384618103106324770357533614067165169757074334019492660598436765848490362176946576678223372198399680193655815271053092739090606656095378142850453708143176091690903248826521726817285520287607252648594084710731892685482823047979738625667384325912986329503525228522720444166635080242556038409811987779318309140594228501156775948465180225660798374154969500229382441249265636858166297850674309421797581065885186441305077927875620335201193953979446542345076573546366227601601463169435673702471338056594799216158479117890497001065748175279364404620272835837949642542031645776449843252413373847669456953277960380445243313131148453408129114633542418629000268154393066370849204435809203953876537844431738805626743846324977193561785807938389951692230834619848822252679476322891707245847909900416846783504307177179069029764510848924825724515675784107659756658123591626971795781831071826217692746078966870903556478730500372979331780057521021953480636210704972880948530027345360912526483386042272029727777119800172298410045219030178263978600350038803688075166537368007124779999384595509216841424345271597384767938433140344440924857801373285875708678428993005039477690255127789158207227190801103831318566786521054247736934391506850774237323938059404738139173778419893299423165291997504082575795958596639860434662475411257464836353074101369962175759439013768503407959032148331955265138522950765096332904503781476423392799498302930755600852821947526095769236446452375196598248540937165016003143158246873838384291579926471051951386911935639004854094879021953505521618492669191317153505771703679761237873764330516560288605229892729767914211522666915740214504303040775986861558478293991847636393534012357115725841251887821807462469057696368206640790538703303727804898244656309199914669892450112822913101139464426468963827380384525920251940072766526522715240913031534285382735356973916843835361185977027950835164557710690918544525759022263690455166190019215899533453318633898392610543343912322965794914697642755133711391566207868281445438668430943566476743050259426280632098877014835412143996081142608098043639159219417066238486983703111500180334805701978176455508557188228689172340372480739227808746116385182701460878452344854474396301612605794755676015910349589131169098636791291585636640048235955683719874068128912696249515752627936324135737449803365050657715206886673143561518924859606091511110356309037213579514194380628498816088043793271433122441013270541861749738474903640159102428718712441659703697465531993487371179748317561127540636571913259433625644959338881444983776438792014662439273896904352788559292518026900676282972185639812993164020120609833550834211787030646203631259436801951499283531335901748851593333885700456799417360848187745208069455693707181058061617364620985935820496828734608904610501021019553348498810829056645584558243735211252569400587277623395002352417396147995301660981280252246865616921079779311633764387675166810750020792392480067442805497272804412834410246070431726850731305368215027553460819213580065078925968035445768323826447602090649263402412854598877039925614686896190789998101674586863152328876762999560087067894617715554410099185311503833857277343834130803240305880127734611643698033053686369335656434475207784124794696583493373998282526156999267844704948180260260974622104345925055236316020577208268016860790124237194044938706270468750668703153577174678597774841947040725800082281991059787616594722390580300897026918258887531231976587490467337961532912472919837609371095540723314981233469205471398235536033865241572491593203213308379438195395957723617718745463101107836149316008066930284631218239616867035767751023016676115461424534134070727568564472325218540011133260257642496736259075474687559476447641534856624886760817939260795973793673453925337155214989996910628671213705654161099600006291958463570132986815299579943668457642242051374708346647305108683822462217562257060664048092361250918782808680387238563037989550110776807643904035582207716642189583990282578411027064319887253900625186721594827924936660228093239655454672053983348666889787487173746404713816835065086455833650098739152356413360370502284691778329692890412078690893029816876306738454846803186459848788562796956539069800360048363700059360836223699480011137892627078471743889957590509791000445997109058273978548881355798106438647171709596764147829841816672103577355235470126571014253095158780237394537446750016248326598633839946439571331665429600116663126449920640703802664825889026467491138202271426890927043872806910312547591292286564369839964635946472124802394758071393900070099446885157151737384719406819442894049862040141875644959947204023176980806835350674434254047691082642629276114709646017538757121961230109353238650269712488783707587236878150794705913342506994989578701771933883382692758227801715277737811704175318788932997959274625120838477406170289127943280122995338858007358139593684808506846525679520851093152154486848497434232267309533252067812728786349665593313266206889653673932562870871301448983898355771191332578466899664085267974126081340226126629507330999794053962693982721491569318183968833165169249220085539661943631336065898246621449124428961448147754697552768422273272711992718683673741709798454597400804679549261526422542580629808482247317742174899025134915080435937469078040097279993490962315567575887657250388276348301552858799901062888764815951905831105914121577784966597761128670222594639116422464301359864817118263012793481732248150630689497240419028683943761388702111944975846550935965900891515086513363603438443647262793083604731662087837416818188402088634033087317172322982329614647716512435509436714817787707481347028389271688397407093748881070253260530182995026217700907961374024301555512719574794075567101886427541449414035084227372569487278656278381337342496005972750816236111151930015076199889731555220873214041460664700454290618129007912384657871343838988744176351553825562962636893542014121309913578685173452911617817332164231067835244458954885232680178660579951648905738208280291164571382374703967529276964472789827859262541331826172726706617692000477995204464147011547611736281144185691930023409471995345935180892968260803234564639794071682757379848622541498910330983030741457159986354401631831937239889649251666234497386301073870422762207386494158183149226241128851000029666783668042291306992570357021413520435854159325598987561630170383146748229932400801361739000295873253548585565326374044460527346957918761466075271568584456628102884256970641694892174347078462798331360659679390345121168733889136192855528765990633728631047921091705659389891471456477605088428417428461609237909467926615412871772384649646718893166709511096848360332752433496664292155245522501339910682273475995055550659393963738141257577936337612812187722142972212181903312021007863952003715097173719801193215433530050062727146363495642705721676663923397322826415272729878250355288202865423566885396853799409191198160096379717133124639833688039966445858277206529952063327324630937362444276013189110688824926131155242906684726970522602742767305429609743467682904853666892095359460353563752275716448851660223358273399947115310906983041430475790730685025278617739747579344158565581856440414252193702790273834484697597249934553593969249532878846289393167974728268298003820935891986403000863661107544447885549321457282517314399996369865892658117195333329181355197598759739729365653437957738794420570199634957151568644984544219548300154699696881759073550218860744158674149805853695502274719947539595827094894805056552292622143532531422381634926218072291293499483320380564746830883172488238583394143246718608685917404484981913275816344660428468875647199582209991263886431981521289108833485856611646504494504299025270925385246635760914529542860440513006513569908685214015399040719197546611305466072280771402647458799604868342919964563402453096088187220465325528489446652636503668273044504924926754897080434452647780094994433883688668797948382068301928070275872564779795664179389743990966835097884472201661044555567240124953943949801156537895841243190434751264539660317267515053655311152194854203773068637968944276237657393185104860800632952108924165646851043165362568500563004056659095038947084905729810120966682817351669449688400429463217285513333684721210782103978859577452714803130032368209305655457247555008984651733393577651585509734995583083211490402906188491172357663884278531672193671370644987674841766880044974376280917884893606541515639712933052711848663486923672054987925954678849679776132128614317688787255796030426405510771264887820260009099277484206618965229858834336923626250587056163360757415099435804337918818688661296037802803153172375294517093537695376495640938746924885389781386157737332288303295619357354198562402570431711993603411910127083186410142346568613212870553047363641850972845918367895911051811938608108839671548874174535244308679465181604028938464133044383661269536064563768192866456768343813016602433125632564979051043562234203232982109812997430948536780021297536625352341254598417199047830270546299157549731259975000167931371940531314104846809986747774429631809999627125484646758335638694383421265373980473348257970850404473660169175453262818097115964684482915761433428995240242570324699510189096051263312900797447840543573924937079800100481306971587288908686389677111048721436782662325076792262748150814286227294318850518398006472870798963964931948989723820322658267692297673513822459811777282908460713655714346020738131257625159287776266058332359498013240169801723298013712713809123381821967615193325065483044579593335257539581693333887025851379726773265409909567293091948058239165890265556837938283436529567981427518290007750134728903711657583304930564171747107598166427808746794364938369186217646889487025382671129207429341983335581349055444355380602881188981191799001514488333207633188186134960249090689045923589548287868367991574243926141876806374740544354012252375302585711668213533341362839001135514154117247048489472551303108319091829532828492123513913136737979692771927786077407212392252374904623477599043046567420678693186717512783940993788618210725380538746464003589644465317262308125005761958630741591206608264663612578082863497434134183414882041599047901747664617835433024241202841837174728598944248326389196541026639393266931455452487312966262214833702449119621623530635403906282251875958722875786232500679508983703983625844805108004450659268540309994845806272125296019328781776010480049287621381359522722241112455186545103866942316186606871243161685022518975636453313333459343989890606611430809691299723463189874119397306999564856580283382325661476680769412385972496094911316361195796572904252861194866562882295791596965582159477233686241719557362000517609969718874818548314940815557621580341668331768456907555072234426250318502423349198049075910290597493257775035062460481710422045850812021631094227779181229726453264478995182699253784126790964548270740981789521946090547930269726207346296325237702854737148161004313698169694231351102639539469579054130838308391119153718786852808161407905816803041076870774963871193281278096186663123183177692013238998451452099977203083274727156234368005208480722580491395186942300423140105394019586153241959302559522598155125484855213006153414636198366454100750916114276949186479806428630222609548990071018815523786392600022195188773211787754225858312716768036601973303000535379932855007482728246038961638477806112410350823881346809662262743230291086850085988887554039716383510740830836249793109588362065014878286695157432387103053239378804530909462380442156678734042741679434726758003647554925443895732204432355312485187015758860208199786304830723403957596441033443980629393337894941348892248109533316803465513573918238125312547468699855309812148474546345209480716359559966063450227348842147212094634499028503770980596074846382066818560137274409848988487897582681107747641324830392686711929837352095634682911654751088261769825485871529424893736544364122855097848403517591398688889141665068271188209049790460002332628897262209448503834704216600014636429311196857696170151956290997118417156556483982531271271639576333444885876054012071845272339776954065256486484941942936784895585152230295344623968244237279127414779251232863288631441802042488575474015567527472794549111310059622400060377197522184422012427077306212115235644615292327074300825047773684578785947341539407431107619425100232721381684751517435451592656405557257635445826568780941054194412293874282526722730129038381045395321014465656080670247583949325083267650172395289780532262219526360776731496355748410083653865061054419942285772913695093152963753983875321168733124160831828512490349961043163220799947588320758195068329669718555645390924533131379846212530814709622066148050388420397203586718879263033946487972404688271369370240143980415292429979892223334518844103579809354071725182772602466724376736296770744447293185208339051909229761769882930131530830488059297528539741588310904835855018700658940290497730984795206324299353404185449856747308607844896539631331387327125811699819539123580872408151825421702610619225190632044581445508817378977326223679924518769039245225213730039529247726066107399495897141695779044136001340890647780181944527017446795464706793288265064557150499921515744246195030722926664649206498723088723847104932071493239791904260161957890117011485556325107680038729840357848068825528631499192587584665381934084018314742342919869672510955300369534108170176088690984079257980746148686645952693394840668736803296427163336459596391338433823785625461365788335456115736675503472382015931107005918054119216607824234857329327466831674832318138650209801629893421081804029503204918399877901362837850670234703929610395425392376444175620157581537804493576188800484768639279918009746224840499875733097025043712261712887606965223476735849456620428041900126991803949397975405051325461774492302813745562421478977090733236531296370141545113720755901244887928045396486940763366530120113073110974029517037987444742376954851489601221871563561951331168114235139441929909174300792557765631242064293503346193285345305538181983173583572234836106371147174933900168630931790636860397020034703040830677475934935772775732991302143383016928422075639164576751605923978947293166062498492506555326275279511103509288532932879848637733243720047264212928011841453660736830525837541306810338315583845120961125093022791124726844566367526925022394350894493355267602966988704751820498658595133937022824137922854568972210528515049918176371268512390549863296448935641759543828096382213277637906237045427285990909365543270105680813168158572586788153335742696491209446446238839160591631128386865890647502182907111678204983904856763524271419312222762503877316118545503561376124753313239825974151499813691395562008115992304978630596402760085014045146864028774680333638107510449019117235786925233343951495551159451860173269194467770073613469128144673116738695869775128119121273185313947700570281064012668809886047348211880869779720731988484273515729648465124423926601776867047999690832647195999473827641847567000672516919673822199564732649321028276493430866627117950779308224350714940754260428492773334024688014295615843674577301941520594694804389929827606927744740768269139770673379719410489462169539392479085206155071291987181365804697661318826998611773401214234987637269906241228969667563240455961400204804130821519099960206566419016562187585036706288239895566357406672667648387526859464678414170205593954308968759705870070885481451727930097051585954780832004786304381095102168202574019101404646287547396174014599151867742771390249213498017177570492789349661573128041920155614571288119691901171859765125046381422236515870707213554383602417393698629927483329907698236286011408396057401578683573453622414825371542466106898597790043074700450890856938321997873461683471029475790550085338695117934433947447585188058597981284431884128329348888654191954292724611900572377462017714738656265901739773203469392264533270234186204658695970362757562796800228010254716017306401803316469520014716710379390490345459856166060101718453536378463245156281902685498618827878852134512456549317553732318647184976165641467431197263710119469875407154014567354353209477174676521464077351032782370883039591000796676279219710510584190114354572509065986746193710332739446320298977507643850405032078955302241104622189348209453979870523412480859846962020637653221801120450301961488054075224897544705592821827885426161490066443106247014647835742826602208942839255209275911720098709855646701305919216022144826704935410434901243508128718114536970110280439850806468912245650904883309488514189113171810901493747793724034953399810516258193661531493599646522366295002732403090453624559744635953447248175859228341263188125902680935846072473693511710072360599632419642317654987427486053357268897859287853887124199364679931186940847389387855571805518182647372879588423319508374331019813470516324774020312203725537863175589787957178397730307481725781172699180064256019192918416744502851185393709882676491886879996515417884777986678435585211682547529582300341066856045897904819189303895089816775354037809563828672711458437708153746704538268501406359867087092788767979642751201342897265468552881510657100038029866875743319137604851997891641974102650981674600001379600977130949093174218331791030096618621993758525294447876872012710103172506190781075710708284095227527711800633731050421504977052179072923146262993385265887542227545443790689968575515811993200603163099757101004706996647501441611120880867201034063146690324577290790140685118789692597111571600353098230315409805979784453642789908708503032861743222497305381294822547788703251990849900774695878707006099968412526448489567356345163778402897539148359018248612960963347202688630971715259397893730756541170612537147722894277258938549991413315434840088663654864567743461447895230089991620292885070188521807829023854888780389264363154416212156401479347180651670598871627288845256146320392239876000836148261952124929567286337854812744390845001491080503764934899364201472728976776089448742496134226418473939794274682196151964332448487523332291671237792258870508848765751632237601839292601756513635754803682274643954494599106593535206093426895749222855272171957222819686532996816018350180163873748165953341546911536225292671647743679830268829784570726690594558079878233253418270017342781148052075142224406536219133142553126109108336684327024029391100984025605589988984222869178122826299282740718953124552764932832945412370589896099932780501332036738109601548534757362635441067683062672794103200505659825636727965204310811721399148456436972207768434760381317869373069097960730633146238651581711460820090341712241780953948795380314232368333503452689311303348449421419526334695751064449560775449534742551149573872015684192950274048546763691850852781592367680212563430750703118987764256581967693271011456246556932647074123891824212591162063385362522680125813863864871821895143047827202209188972142915948171623703420091849797709028642699193005203827068921337718898371850976895504310247048431546138900108874342370737203982422388145270571654147231043499204628429369855014162813713316083282306164117152907241365173595814379868543081759079064381953877141366703218874631212654212420218389154989375910796092330216052400118948607895895100678411718651775044036746457529335761863048638866926931369543912849112567182384132569001575816535064896826280720545838940484885663550868204330221235859487195377674054681523495510307410428352102133833101325258006130387064319553326968304101136139157410839661339178894893565576054849627461771335914609304073133519665912594713412998381567727821407523364570900983647114788288860210605024143993468644856206729181652732871706660782388888153496380609317078982489324460515258964329807585718380664998451007770699883009451732822756848381042168201946160821916459973556589120812049156363475986382994563615240510719021851680568259278418372902353652859777942788075683289863099556808767463562873665813726197992910748513686514905230850611695088825642392141647520237028943364380321953315017506320482159781883100467646984084724771659257792844178608236644950640110229505976484155528974269270272304745051579446845772557540262645757562029299606523165752246522501229820558574270257492327246376249722653802958277031421506565958107859262103899427206724068923588443513713801429338289672513579374476739167972336844652020216415596898306211971031722004235523658738852483693863829870000080378048512556909543499324616882298248655799606133170844678894905356054396066923892884475544521530169801983615618708349419454072980647882371278769404738620682812945872397828119475040720572443138242728842824771861959771912347669830030679478687557542090929033552674123852572056329771642754521180665220863451884203908854799339507881054784438613770554638712697618238119383623216270648703358401190271083047339369800075932855994080343309608704526483804612245301662724451066184403554170394982245827622459546584191297368001209882135092992372459190098214024975972064407947386858652461612847603590182411952665391371116606357200795401158082333497462635419553331912622408154371488625886219729208551573968862044442675608688870646371166728236091215657082754903540461462748580121254538506563997039865871647306770596560447256109580881416612809487701574617984878747192681806862444727282453298715874220470750654115306165052049886405058115185270577326659423089822996003155264418384348492237211972590390439589700890334344212548684113199586730780216224010998745592001222411809010659775779427855560886333877508930787417317851616865691529965659096749944609509906947499683035171276323968558287299652256637371684634266114925558522212071147121895641172247411683012193832701843227265079870420240690100791582997354545693342456378642410403562023530539749376708827158753886668900403959398992954204894203329087022699691733556615619315379884921104025258025717259294797595746935056314560315485823956589224275194498978710165835000598820776121844986038160172431653595859262759010726563724916838252353683205756463532564289867206929437521788499461959068341851824702888484694092245377544012487060464754764046078698066213724235555510948346329068854521840845076399362266588159801643548469351331468102816595486233915063134134927968634667734511604742372260334469772332033049829838273559177139522269714378655359304863076827706503101494102844457830844322947866215344898868466062042961009958041914365367356428092035181919015372453587679833791039984934454707630426436267414844262261716203249854965863594185182868208447685820151797062615560394554735720185424059083001457010774604531351507237263952447158925271390620110326515501522025454693025023694008186815653228912251658658551959256644081784303915433235186680537759822821392878066853233877559122919486469174552925868381081767490081329237603611855027486951056543859720170570824573907037122883741488962894086638706362801055817876260561255261100758857687298244962013162939496035987783080583474286282863023110535142504052253186624225204629176157669270110268087655819479276579952898900842362127485184296106407144457079813574572821692710698114647852817559559229655231049132939738793144028004119621981389334833772372274880972771366242743252449151087281856250099706726064122744780871077659259212608300443543020285445480959655791804296166346103876026467646500757898268147017212078972417539457192694092752781944688294982645911408212092111686144468645681679742013798473392312774365224470432881899216636182676814473484855199670573249978824841804914214682687951811701682923115402572083389743511377494796054936468564889640739365448429820807264029593505649504346342322303177914110188778896808570404167640237324150088850451290559309886516207317468288088149336442793986355293354825712223516120482198103908982385965956267708555324876697042841201571461181396140597417687295764447637796802562811399653012381257337655224137089777868397776220727768639748302371858910844882766165117333491443526049937147677127185325907596450930037124834631935490427092997540063047355096843173923904024063146870986081053452123882087948574547528148361694499570267863763748907084236677442877083695320106777229958030333262124340064009942385691801941746456048923542553780036377610970996874536252234226000996012624675221256072595154082664651578032863860204649340326834655460242528541348557625587708556547192090622782497849154849441718390761859170599141703089935208254544912489691353943779183645236041289938263592159087385209630033804744673023454683316232175660536921659724902324381907369541677117511746865067439553483182364705723685813067986641911724338011911668068159019650255542168965511589922678949109357877101820105640391326694961172205672399239487604866836856530205147433293527466532460655718388018575530015233509775966019828387279414323527564191745296262790389174607967071820184186384849210205684991150247270858802845781997015805844555523557486766884226375801261211813721600000820251644950896993754453128209494800904123670352529591192238849050495062578148993447991320786889177140248651942032061321382684350908965312285205437337161112549761126020189858206972472808139138046759203268607798074221344940134581116039042476206974314207767978333679828808506450669059155596804450669393642395632940092702939882785661250574359045428287428886180863902443819019450307698718033369992274401006538077992275061720091911637616075059804320889151421149442026994145782953893364852143213583470279172344299489051810862960039859772816986762160768667967612291818599581842953654211539330197491879268913563594941755219928047618117783965612843187589209122402433143373710305071544000279419146631627027302260274330259221506676395187095085452531579100329454370828583854954406510655078303203237210835519009784308135351689714992986428612965811947979505717982780492530802014727542106195363299797035728629761074044816907005903891828393141900734514653368728192750176041391584662760386669396522734766079287197673083155946173135035023733694363257315649763011602927925640748675986823288266834119165395552941921154792809264178858535212785935075383761149709896899436247535678757978632098674618889259914094184386633523502678340917879373072785537382981367308913945221027503819450362814515128696489176458085978535288946375813421792334534770049503575244725847851621728899874564291989635674146851521619433625892257388146621660022094352870143944942868961132773038434177827553294853877523943943479299496364525888527044026251992804676263231473067812234100411072223383908969200326807161033638764056945238684916053471007103568310687286894266379363111616240973737392608070956436606120180332549704374561498673201890664400094599757086449463036138864634809233122042511805269282914290804332781897087950574488095104023999691185292610218242887420554403766232521708995112635880644863450987553142907688604399526903008395283445681875333615734081119243983287534906548962526759180292329325155924526125655902953782950672110162661131999644414054131576547259565396803805274702034668266556710705313072149412769923475970276707741477303235020554392822087198865597005327127317095284785476279495120442993158348359720431711109135829282260192357030740070806846891934466247052823159865842767017398994641184404631053335016882330485998957454874559837676232637126389292745182312476322130486733788527646268661980330460075844541042646915320947470115422785785918300916920510038404109476413786874448065155158370814354566671885198833999831584545048224886114445614297208768936366610547814393179808248001798065176109631849569765020251647093796208245397820384688350902009881844231586699206390415281147181650275398480011654935493050922168222239384154587118971243666847277874263662497693556958856044918391225592607763357778243711827738816115935727538625171692913916602400627303390698549486851399805436834400123959089874757129866373286966910911287761987776934224925790728808747661374440121494725866759593266487860826047479599680189181456863934132253069086096993619000717860406230430054405399787475171128132689910005659508018565880117427181754089490406292472500252999915793800597147063726253709768158682596739219656428992615904097978187010664873674144074452507549155012128639294381691714807456748043152424195194010626364100673845584435540110516118319686656878218707906556840930317231444423386108595446736234379122328883379991137382793880774259195607122002745132765255162014703729194880376151100458158025439565963520761205371805409841194537827770869410242942327336372211964833818300293688890979438833062215490331798583955678429768546379372856645737027029507097676699347354662878279379944934683287436320493039595238456771705949639241606577420369262966432058330006646764519449017921299344432638995407752824727999481668731366175170402314958356363851088493564216358982783819248003158022261082125592539314545440069648281782844206342912522544379150970104475243445089731316481125462267844505190265796141669199594560781840080478321117952513020870215237538400395771543719093437813226382232662735432315404641179995840542274702279766826789227816370914544241624115225831750024188341751147144474010698235654204199397816404527314022322562364915925896042059215199235388500657905408039823154344650879472435838860309236632450389913009957935305445292367500370883860899571947100176564989265370822365068053645949636468436544194522213884596590434465543032945006816075911808136078004779491373586290039281784528778286345309552021233184153651855108729452404915902342455543842464185535966008113952792935629356387631500437740281433397015185086142789066286456846240897680428902225492416779400060521795328760368951090728266604850208448343505730006236763261104111267774885687842617145090084060129006400431923801182915857662759263390897895911067141661189507954787341747368110144795923814224619778499034731419945964975829587705219053970893153666316582753008634050986249909527770275818180592993655827840636704863367866014163084856719463875965077364073608820003823142885806750723847062136640450085226594553327316935656088693093758295798763696941211707053883014384921215042424464954102353542336117980742529574008190788575377527498280900576702359583780642720176316053536868216608840927525858717098652081061029347262335024547727562299015929140801035967725474111880188114642124633450986173120538106136581098102232925351974417322594809839764537629683586935621149753610642065665704746261807430334709243226032108811681049285838827704090123611317192043114289406555683973649201480740075488425275661705393110441225620309421583714350390938016485918676231525530406220774130437446151064189371493089681003545292650793757975099666011660226959463771573168147513266965986913851703436808430520396980205618483715129586958934301779999642696679231230189426322360178904178907312655507839221541570474503134765167551500792066864920281466755866509639946233787472015436103455660584559898189870856369130189315145058677337893544777919761316876269083132869825598785726420788230674924225321172551484708351242445811250401995177486407970101769030898657613396019222976410432440605580260879871899195734358986345307558059718602671230381272732582191404849977495610050659351561383675462492029934566421489703313888602914515753136815353550871729412459434653895934673867812762459664061918168377316758034988562940425896251644498997864259991131096836477057627020174675368970126446425366942117017093883652914443349609285303046865088340369064519305618862783088990832445916809750988369619037104278369519482217572919485274099442044544719503720291526465020468906405239561016934066654110659572157282921493172787158133032480350694898817729109497389740011246207662268126250319377043724253203710102496521000292089280538991367859114946501673710549312781590701890913924239428629172067768928163284231818920313081433778094835057417520401800135419564564118898079143003490942811013281132411045312973913416012802226693527386555241437616428005676445008441987876626979143446675563851078647720328382020914108445636478076102942437673974277866408100493801253615084684717794666304694385496122500000846956630353751045522508622208195143135543741131591336131911934933011209803207892366310869246074722703165183379159097237932031910868289741157658329792721458427714548621062475303520083048933617737758430359246846000322084952107596125502879280992612848742134972014620896014714440563522009189031743359465288074446113719829991416986884066414209711554991165272865127639379003620598916121352803966566475722009520189424217902729063965309738402874598677108854261592453928965658914429659066186163767864425340066455307750898934973019442479115078043486230520093864538864983022006028052917195891632551445426926019469252316452510629668242522663809056460779676836003650417026451836298877228613521180267837156881776520146629074759242232916347525919147788214643459087579412165803084540019521036527836917573042142028267152387444924979927194135124028887771978898032469796116258907150618125765770331569426815699062918425469767556565061953153194542846025688060707780797017402475234944049245589689139318367751696738148995300506147501308921014777651673884785406183902754546084440230685256399211855137446792314890339189842352084545663459576613371206695713139277508133611482828717785227738379699024687455417224702016593965683824674710534088285908961127414108863704803878097804783613179865987545770158330624952953976188343266962914688367084180611152841092480229431858373204055405418188353768815736452600172414124965115669311133892772960636445698146289240799127643175923335540638473906682216063834379140296793648246797474497292829799644189162240477248057472112042170670683120146701510306353773353307316844430924118162590363318760476474981558617296584309998990286905915002060040099886740404585491970671677689841812533507601699762796470841941004360509494649189449412106612949419439763983143280268899007988222974970932597051699923844798471977447775446127078141791102351247932487209710795747622594766391696809505073276916480898836681443652603771968739643237402228155469040851047930679228148291547769860284415670308934721921034468204529022531097371615003926438442788654945697857322782547323125769509367759716496197806373335361485538110402318777821586787369167702151410938954542276033445194209707580100570394496045734479762949746478262956060773136836580501215675202123438987177046515005531684635786992887407141502266712444360133112703439130730993164166001779018641859258865573069476779641339861419861603683944439342565028672894447792913666735661983706931955525263753333878095792040927135807377442304363864193311694869788151299437174083748680414660428761515659869097730860085734368924533791667744319099248706816858495299187893758486294637928225153605761808508353516435821964904085062643950666397193804693078575778280619126038135731739251316431011974377992442394272277195410479241379757848281074924815045882817387816955774187594146467767215537405986905401611610628853585036552717553441776834940096330057465514026782361914768566680094682463949509630501908250573042375332713905576500982641490265423049400340953891980721486111158868803524401960243129401378766653826498001326131379836750104053468129375851275855180013792122265110757078570631324936313793361542341091404695979189000703339932540742697720776216062524762650466264968495790164403257044665130851518029101352744633274786425973693540417048922148058140899457055726067716397737568609639632027601440163811541571077280742988619383277486678647759297370161546323362163151791192935275934076132790008886086862159240623863105152690986212195152431349307088411425831395613638842096922387215432263350238671358829990767980320259604306345774471876811842707136399631919726694210269063849749072632012041763651441401359684506613196719219857256363301933297212368199568286479556548650350440593230600618278273034011816308683122571092872822141222292039343589270173738006140684568409243638777070077048358686750806600919203146050642930517942413352069026788079070367386197726930663002280962185286915115119472555670931129973496872641927385204616505409688176361662842307071352332035627174940716058672733472552080816537331387399893272935257252719369730388023756829051415611681244351241348866375893276348272237866038951891507379518724373219514813065348573496245875662151989436804395665514947996848439083628052384937764347938550317046013721333170968565607597546169546362629178774307203235080755050294897215232889428785007197351557182301162231404254196074395763681605725942539851412265793793401511000542680304320657288464938131330114176223965651676741421773733214987133818143468060717133726056110160552501296714205549305087643727839844013206046621375454184704123691848974361370939692321645770966494194192578901904292000364453118768460496881783905440893580081401044145248824399321913501279910969920210214886232509158043355677056884098529718984998634876353148427603003865488930028052864218907614349257693957737894050113383446019156942297329246310904771147662403773148971006318408143468344526503556338137348548280949770836367734029259316235700493871356741232395464560489108737038034995040672475359094535196087309647926722711589151147398476440128303568033898153795381053611766591196427263185381039070393744879874288793702064344234120131396425741154688244289315781893080561237896444280250681719600919371784700022528743926563798135984142768534466172877602870526401140073783539530851930597650540555088097002975077442167769926090309440200075148017993348673877308597589560933000058118463162325509027979978828467902820222821445313202807405342212433523646996012118398635152189377404585812923935744651535449363341626916748894880027840355172624531225129800529796295215663347404137258796503550078456682144775481387136005275628503617329999760345042641670296906024311348934457115273473903887314394658779277158181583998125912167910481945996029921539678445253937458949257037547129378001282031721046224087333974877577537320087177229788521561989633649441139322316254487597417352729102069919947512095223080220482829180937746427028607466300302280607563199874746337035060557196814327038992855913125522833916628093749994805568909948455917715915241547774926522877183052418832562439959910525543784522787562318647626549934206323412491555201874273676005074240131320475933584323060380394585062619500158274082231714303150452188269592566500237455862621474770424594829254671041292136719316334683652252656447058862522366558420773641838855443648649321146532373353748618299317690709633239240109594921945223939160539465997192824057333736264501220206596433754704100344246444310730045624840361858515308571800263839617931622046372205819241532474103729962854022442028356038772815493847200572181531297612682790090842806753817267902145857279831718971363487144054161638543802676596726866130072446103389990843130519712172225895919027200777397060206550484002958297924371806854448147346467430242186092426467099777839917692294583291802914352910657220414167731863058592017248362511842426660100390657224456984996203079350150357022762096869076487722144486996710927250281127223468222454272744095849295848873636265792957847517959568819660724868252337897819901155501969901506693283746059336897533965434124640146120534946741195214002689801320787191743499091615882811591654787022339315126433750253919030810187327587838430261497344525784849600716796755715140075826791850416835432816274189548462717940641671476552870264671037040429687931990308749799580861067914019629075595463661749297625640853542747278984126247163176887466557264516430332432856325486152620853012234610366927714347372194166934927386368587093305203685589339850294547571210572310532597646895901264949836151723724621522073955396472520655410101434624233539050423729765499238841024416408058887273930154420713291317367245725209499724482280180255960534522210297702757826032439764144999999341358345349587262390986967738816759628983078236393180281982502323080844189605674823205952565947027570672984612682498510452020715757306003740152338632208962234098032338387193504225679505101651946583763301853243872672133194666614373874452543928274796646094994436723086716039623194811756482652881431478458238338153308964612775323325816590328011581687429936093116144049820737000687023959877977650783049448912004036353536663321883421480074460259751247853779792487580471903065900188019163450636992025037144347993763092571708907095349028527881679039239032211437571033254472730326871701774007955656038817967767603249141228132749726352602461145552535035726993109890727228912105388116572246090555628047507696696229967457407322546882270221046167133766317831277278305392105737476859626726258726653632500520029849784686736524131893183754071456124117017676465072630125497359369569176725823751652729625943349600750299868140234819215000837657152946088993185290993574297288659959826495199246176941779556841401869249197477547438623470893871522020168072918704936857463325110618832987134122156596973884251340312609516836357893635297317751590390259898672260854516494398027425236083155507585938580024833342253729308049551746248196877304906567854567409405593871919999408211189978542158911974581697460347116614161873958285400333770157157415317400964547348533404321466635597084217320510046570693448265740213653136485622187481467212570273700540782980760322821233576379225526327247480717727741951240755060113247861728000065232769639842642107420644029105589086155542058091024201309300841973673883520299373072592568823832501008627097123021364866678713468920610006792762759345224296955270305120159281738966445679697993978223129591418358219394109518091084485279641501670212291037817563377566121363623260782820812693923223498528940277384605153242691607960028659510559807622568632722251521902573637523482531884813717735756529226296473015339915886006222079922020110356823150174044973537197203707556191996778608522127610498581558612433185983696612831958266401383386899874347720200835093241096747656610778666908162650533084704176029359592255510635824335600030499486228229581774734233043237270952045062633484388144408172199149797270067014055916235767265950802954277618073871099733057773133860675534843111350082217019621098268731385032537888403178016165395207268669573484945237180930656421389102113960846239492074951997287427771976128645875119250567143665506310193010645598085406869113487025460560151423552853040766482066342218082172127348155350033088639164011943712191285422747430628068047933751412656023438970336455374320461481445171380839336843012979395230304041279450688804216310768631206187246868658126980506391820682706086797259252362427112559802517810121137262469421553640304715169378802664121879070677029418991481671199610100566591176942946144238357031498507910826287343825664881667981247259206864683552541664930601466130261241158450929726785270587606836919916974700539712355523051626055362702666692312352332655974647995319555603075872006847461795361422162153435747421915999527894835589203737270643809138083881091758276514002875960804455464167931532410074061874004628993561617883126827881468620644642963059873685686781505444551649705596041479162535950701410654471283511690724462013948802607273165496111769475562152604335615420646404893927450909139945840641061499668114981643482908338592305771563319690953227707198648611459262025921962865544981696646470216878261213180049363326085772084782447162661998725177109070424216635227513300416964090611607052227836430723764794395147335627668709899592163131112742372325442565575027010194558750186279027334663589707614156309432857711315031675459080340965334181660320149487293044292414456048886824838234526785553272873589497003329188837187367067341276947019741153636568827134145246778078947966874468656919993550289606773254593952244003116594675575571129346747181585160806476723816094596027617805791136903054605485244055476573744098234150341919262032263610983765540807029216912674990140664580942771826600072936786283618908130564043641043933616221384430313984040072311157591752490598758539592163650486612253110793543857058835811192201100614502816225757806838926006457747182034785510054518237972187127702629470771512761378146686448622856271538833305440054180372577748279854535159855941903442107773670661447691832338014561634686236192676368561643286026428639978455314494159027687526682195523414189395494405321193859529490563224753033916390543274715981107776983997554104524977028941410324133460817990609840314457156410769247107181947509551012372949627855002221229019335661748310228410275106786945187868860729569473860208401379673686760717426483804898087121058786601682100390205083484580692093558025980209374799417166926615250297858572816040514301238482734029827862354699768812135078004457678598543692684672980127851434656429711520856337538669660620311069882240803952303170421650615971634592748269356864356913893235591132462455575048755684782809502895272675835936864962287903807929103713626420483737449113206633864192536914614907504236105117604694379029383625795095009500493821178733168296295321321282672822520995371669258158834711041322122619571716193094083455065942453415066625866690783550123583826568370626413884748780606320160410045927457541322554724111447104470958052977332630555895814079234099604161794913717611637999840021564598658890650400097458085253156503893659640401642811893764022915386102815589360871559898042338760025201786785301826668833135873614171537100931151320582690178133586390157316426367318383338626472397165622075137092124955640237573533361422300344107996439435923819633084691223855484068240739994047462672744630196347923206874529156988254508468392899440645263618283412705580247388978879257820939153009725436783171369873313763230066515687547510949910368528702208225297722443212255766479340352164490663478026485616692346403119338115048316290712050594435999926227376325537451329293838035918666317431154151858855372973654032603629293334958359221768161123147624006070393760036444877506661941357547278283765470973483153011823666180264534733233828019268007547549858263879929348205149569891779448182442846094419025004035645575588268587873824740512028709657174567677312293922974349799782185334018842149075825469401614021937004286941856129539161298862509002174790898668397049393184030703713631236428332655610058953342366213682692330099464831884785954452694907529620269959243897040053825491549927275402303037400099312606862617182631787191800731293753477113184835122912601042744458736929056403417884387092597388291850473176385833463426860739779397401655626044260738278967492383241205513137419284355883039202894853047404699746654316961594498404579508687851314801606854656473858868817307621740359001972463886535441802453258258306551999113739542650894573420567256039620517996416766782684009239110652203294900153057882971415134533317511714650610504013788899155938125939814422526059641570588152820310790397543368111296018087314435521949153443584464384323764300819380318386741631845107785357547215178889989671616935060268834377761093742716841028197381370693665069963968147290738080126256566925253900066146130897930686997054030110358456088115198717825330024172772396268241408123783840371779715923269602236400758876017368921735178100306686623978764491074236980619100363513223461909822089431238026137375533760653761549070929600577109826069369653212760479204279734510476312173797876406124576157255807555708798739896895075101812939160409267954833498044960095873639528594429325121905754658678881714357289069483446644909519104642284735960531735961906971534611456438992039685630031247508485651947749376917736013780155062008227916636514082159479618532872480984884751005564126226987011038167661222235755402839771561848373213040153544246947206568959159547635705292086275690004314252718742514770529234031805794072319321325814276306700923958274127109274931936164419788809051321426303462178154261468040731858818090515858878757364594785934207888824062016487355647976056197317127590543876117452534917758573303194987151352360973234809578306284511721922835622382640189018714836621717364032146194876010922035540566702784408988189771912763435470173663584680166269308008735640666674510392911357669870350335969194255538748862839432306564462614792065012135701854172775427681904177316684027028022733455927349887569215557904867339178985465280912205598339764018963819374357869597819253196404207283813430020967339081919379097455186127036922238852838243742720878169866213483583809715614773476851581501866982106891331864158836747703444383165986410311583794337899129063883647625852814082784048123326574354405488428391036473377872748861870766114822262399991121210298796610048138390264594026868033498923695649974588936592102481136611063281496876921180268120487733410283879858254063298551919146344844450081624419809645136927741538558216137352055838373496695333757589581501814166142278666866374592713162835879411180831394993560610030574773904375978307014438857945064562321996198881763362185163686585117146514176471762697741873508796330861623768296484918872660457144214309671548066094214671799388840322306321801658073738146745902647261012109779634187510613865613191590629796924396151891830728346285215015992689214184000420733425284650799686810408041470886520786620281803349342353650344951312430515438466008381530504155401164571124847931855614389870080931081178851475569148291439474336361763444083136914435588979603221085129347727302399714373615337924862148721408244385097982748047549162721518074858290321706276723462822324207695066863274106113131492060357796190026460861776352849219785294877558403622668535636951664614005634641552199765800624211479947920961216889518356090785225837331271159954774055833739458430089922386168633388837218669809810898450203744489960140365117462394319197469428041465559214669821722883997564898998010235297793645559135366910193545329952817492233740047488359779674155679446422501207168213562721913772042767097746677250400349856343384402326436931002093053234358789780554300621725228427181292840076968557154227888889125106315100100713502819988186568526966289695645799382551087381197008589387318989699368713444369087988030333807268791338189715725812078134532190519473674177686381926326679875737812305540833957929086344057931391287953584530022502218938750475238101263539658259257588765634271377769720765741211168216453843248779603923429681858049962886382066438779945222718135750428178183781603854450593745537074323318073885079377811579423526285688431408866843400615976676724752902541735365027935697247338579937506518582235683364368263893272783541630774135836506623202578013394773320949702740842263511543329362415782619547853710673836559912553524151883505169346091334144484491493953697540576106469850128630885885160357117684984993862055894786940096299741647170667727825276309812223054101808073308655236948495781520879395562781113444317076875822545570476767932046290227450596332061065429768427821578305366770730217681533789057501142442161628636673126043945341618399680498006106443094287847963510491633346412194880308335859541000527230118171608073113100825754808655695675865745569198194329353929549512797904393306050617483691038950386675819302330393702093876137658221035599551125572114851029001513865055411027708229855393379179282462238693394075695980002079333319126290264192278084949830518113706751976506673620139760155538862460135187250746976847785884735374353831072219719157311388339229442523829182829934209926673584854583345443073758871411149561887827820165296541834544355992199109530225519698620118273046796612222378631747548125252528141837185794744457574416253187797649373259867090700833919421275480435971479334371834397634093882615675163471719840274387592512081179104159683092722459292891628116857415409263606757891657076154015910129355623765835137650733804550677882998656933298907503742377579430919408704089008028818851307549795751693957199224770447264017048576364961817775863709811424224484973714419281259758197007594587281696807795773171641927605304361869701106663725854510257269055014621995152695313981485381915838365541336043528281655436453443080039748896256236228138382781755749906344237554802830470605198407771674893795251101414030318107496352954350272425952116882408694894627283313954226036998988371041423656881658606093003193732946595811876391852442543300692509087304592867389304104419731105962951490901762350870614698119564373895752353843638373426645632282844404811488187968816787990330156754901728326257755789349295575548235892193205456850370758274716929112442010284324006859236758203698738333840937930876833076535565580116954513512797823574491616188989993144903546541582464611828571448451909555684609523905366253178048344043756464096400278080894006689913228125355602087400334433553524244963088590348931181958044393500840555124695291810600244121811742282788428641559464111128540455787511372307510218816285694933536888302476415563348626713351452101176787032759809368890145065656540092019949902534295877259688364659021283403941592698707848055273269212987219804765117312786793809120909502763873043335659362856604370589028440358869998686412660914716684171078015241582240141462836696945391105341495982470420148096859659504190828751615348791502289041540762640026408455349881223115440878784529139774643019304769338279334061010351784723797829943410447213484286950259101023150205652493776495120300324800531925217666531835402647959138578346051657447115507781202908172166918859302675510428852145952841890042283811707068268699061781114631397051240814438894854869271881307501934950796403940735550224277037184683429091034312094202010963812597297609792554483342849231100990618100434188422350432187478923708429755473536067560071078131489183028345245220376755034818750992069846906759887626017995945094874941992056257446293560688941255154632253895217018048023294835736639107652479095892260683996880784016599494197557877033462103510910158120055164107865030267097301941134954301190859844022024848375619135474720574186548055483150801931043402233024343211562008527526548134932287521139631947309131491677799291832746953742589996187201807926649522669695684282041765424560697087256202193753239965547869959485091728044790002889463292626566077654813347830572114266134926313501485871511276302960500045293918801029324095737022788251540799941690076656426680209305728490804590030371682221276501310544437289695984252406996156789366428608765645765495861040844085864580100223613064904266259399399934473298687931760710183841777058987686950947102599018299476841220959072353148182337900420053255683446283587813210519226008147342186511544502035474652022322011024521515372263750224219277922156318142921036877469524432802890248576747577114589647063330732230381714664873979051531526536623018822605695959483151275678531918771872369417457203021052082882199358502101254216258688373662286438682172716318052448348908459542336636348953411629577014737172389555489235984901939881421038998629100050773067340418822941711292377912162028785587273252258819396623088164369601690362979993806295014505524447100248683381665669861509423752208418174978887948318619413259056784891161529411451784041929325066838579874729678097927842622076405661085507098420597932273500175585374146188239360147657449699443443155217040963828963468321512887908629822327058759138274739823106391292679308672285385191482563706465803239638460471084564151937575227049046433100065791957795773748469307971475849804490391200081175426306421541523362640366355605551950118930581266455522658250312095247488942467778361056135751146820993376664161811034252700134517613423607472357699835516797388353630267428871317601746403571126730356659083563123640689584996479700415013024137739860619238286477268241822458620733046712396695707391813797707222258445156970859054703711750239704713126886707350633429749855638579286319364339834638396246895093729612081096516910978665863594249102257484367726176806543277197807159762108331497765670272690924605713096261939607907224339421112353016022113975042215021527847407497421919547484956961557576478217631908338336677652285461568826427226647622810281892072110361652779250036557945955643123432216310543433795885508736912026856192109971077625746682414453772963750768833181475176439550951729700709266491016066001895605530421980269690639620672398243342158339588010123176032886004503016042660784940658834489125591332350843468483154116756150192009595794499848474221950971261071173205355864230574430620091465825407815090242551348767738148183868005326145186615127478417803219758715556434953427973352302368535188478896593294450943907786521521643722575372427768731860565922045191696590832477200239281023285464616647555914154255069752170847666783176285595053279403519698482768851856460077738627709512320677949617568385591869336960313235813346923735928196359218683035615202542571684915385892158679954896822331795825831608142052860669687990330615428634498658381331457996738104362733966742352698844932231748536649531769020713847205418454177966637490884702669331646237468794840302771459739411313796222941915716564817847242061904117929848558966542877130172141287901291877215780919591463313369044686278149271400130915136440168274541579215786858327335736428629583097584963726893983357616225227197769782379681690205496792614015743922951107723670439865481834175397148340236257011228078322097204115953318467588927986734717625695705350051181422718713015807413386749564719390640451388112007092231114884119037676522419614046774690775797816672760726356918237735493799509871806156552233250147831144936705045741983200573401950746215475381743383808675145374081157794440757046393640602024803360695092406260264788579762136576279179921677784899966529520274141105840126868525800835435681076169244198020105827687971675097839285050149111896524056998509243181250678808805918137356159377105917603722523293706574707788835069808763281650601494875666717746516892853677844384792046372653706932011064192603997739352822490572246583820564197806641930693787894623959481086281714540909622219777528281017677283835849874983921591738520815957073735870785562284678400659073414444370007582389879899838493315518340634563702644972954442572583599914331268661963075989388283948661038772146101480149464827546569647044236304300842463214997985519867019272599819079270748117598641061662343921741976614390909658851260591335909163494289949764107691938642454216931737700732637437010927419466362815728109512133480293298132890927494895832342735333834790764403472322122315289884935893635824442475339432947075416452612053948065321982488787401815106798599108605115686075641106331431012325229333514065287440605989686070782455645519305840665744911282935458903450967971524753008812845793490839123107967443776645987867390161978459989853557060211359343210983487083531114582735365316928689585162393289167868871601929972989845428387285414032998813685870617650406685822318454709030077040985201809138831347245880010011123544014414434980577409026174137901248590556557643958724500751215878155462757487504747650696264220007160554480185197203155761641695638575630701039752625150617199566011057821522452385864150155750615621062940373086399549820903196123772957370006361868254590682117003838161676063431300200426320030038477895538505331011396811983660551199379087138980159126261745060123635704681371280052268505916164890855724436132234538922110882691269509052707903093268309575297233354217083819076182911612345458666028497140153879497362031875402174386559779273201997387297145984781439253777800324637207667869572998602804252162193121680764829758331733500879966408760356924814765965935221637703644436564135402639506928712700824178464137689766446915802443674058967268488368666770586226045248519398390592349983873524114617407983673330624277116358787578836007149806871612351100000685662064898230648835270142808814154285278929545250029167161438428917092339964072984394036776267725647637997620478189349719456203133066418523390636586959042272215547748213205390804666023327271240121857070652795053198483759755425688662931670726943705600667728189632387821736283622481911831452698482236231465314391554239446438134867502607834352556117127178458126058192849756372437497586704474934691662588147852198548849852154657902531188853633723388026163870061380338374369133286807503332966014978194929859662732156904837885456449845562779187373065012175448300776565436876945150716379742480183426968144686841702381467256386645452368741951466237584612548527197482716728686293709791640600353978139156953490730731234425917810624844698800590613159553463473781228601181894949306172705694113202726079913944839117968214780319976615353128500507173040737577814338916462568407372073526551449273052423857703829925144467505796151773799305910531637692468591754054929183146938532076705253316202252691998897483701081536390587751252363601234059122954365134093404228294881037075166655723260351262105830327555592372601842612055327899442151649998231827898090417420054236865397725696746833698707889469008708065186310610001012082755351423586120808838947901046620891545954859900841350915294531112362056789721051649374266159820762957495997443097959606563379912233881874523207711390175577976407169325012318195449544053801256167818708598082692527819948487852476748390984870280192048763867169508710300754786344881063652757828529400050483346447701316405113407982348172137836801348191370966226459737292771211585251314195459961681927591969042985782356766451713465220671363183193310367974591827063922700395279662129714926538691389757922906602540078789245844148144834528696775167335375672526045427771322562355891957658980564571488943875606545746602236403884792117053005889117753294543170263173905379200548940551869733913255281359972173768010201083536290724093581569000254770335936796808446504233015816793048621682558890445159792347425590901236623627211663445300418184339921360617527335576178395273897219852905540027894863465227541869545558924811080525083790416849178606883323383176380501204084445676303893293169587771673701537271770046040849141720466931512657986269175711362206126881142609705453221930229921106734518349714889182865841627724865376631652194242809904544934295880123757623267208455950239821335856748400436700595274795302937736035576058467765872027342271589295377461793134449741935973082721326871710841422496968581182139540321666626802344074501689985194566359364310538549334151280261371484121407177803389779692341327347880478093306819780561176125184502883726049196925350433100811115135628436386169005107337416253960551055277129885639802823310984417350888094722243767841076877308678319346912544045072624845632569109474976508210892963564765399858229697665580135541787863460053742063225153197094916288245273333647957444314890962457410043321094510445670536582381484818303810438193539427458109248805343447592069633965014445880837893920358363921218158177432878201238803662233558538028837269288723833656899709435723178371852612317081590745779080936433777999860568099505955041345344615992262014628379261112548556633062190927418666004157235539513448577746546899099939707971275347218932939343092295138189830985515989647393619669455599568231496729084179208002634648440761868852011639921743408008172296504171492199100162335195088233862672613651502935206627987331990397874716636264373389442622041102697491152381628158792294118918021978783691790539327416694206793229273909842610358425327707091111234618262504007638666562833662372240306861799178487397927361008999573983173880246449683521330264047493940953898491031818139214045701858027200600212761483816378495090258279231615111557020582966833309892584226570945457825809205445779775917701732552834639809355898187185349921326085478900463861034827274241205952564674352420229117244350680260929452409834616262511772673723537857799568407869399565557829739920262687089172742251712303491488624641055175471228464906904050300563446133262520009142637247024488595941154009189119750667520249982486446902600003262943570148094392162369187016459651291678314362867760363461779357089799902266266935232507706144239224149284764317725191241598042209984376400962701641403149146599773528743535972765458553441720576827837368988396162674401437833996370578980064325622395673381331333160732976015855902886136985732788898350101821751801812623856887344896277052628404295172009542925803142898015180230011318565399995095745581407494671914744468405888522775744352183976576277793308266423389034795393199323167748719946478012164179416978664250749230775395018219101695396456081473927505320289866682992095574882024605725594093814069411088517603416608952817089786872606768434077093007599656742180106558948285959761624430009337821223625063737411318101129255418198753710796496328456044345145218973927265359792595540704101629349363277430766014060845890947667569559894998899037039980432823890576616621527233146432754245333785864659541499139752443532904893129289611806379857565124197511620255974455242085603430290209529952464335440609978116597929659388559747802674662308307351983288615625466396594128972582609452359223334576041537140891960149701926166092919011658254977846562654761084199200391060616818880849511629042128574172680632495332359143644866178545229939615158321977629296180291708467550175312829842037685446057457418274564794875919749598547641372971359472551907314684838314999825866806587957173469658804768446602348461326829238001522420798973964808057045928580322905509719334296580864158135088070624572022320612740978442191517741879681282422239995758769698807979558509536176630005844148076417979982328582060516268057771364888221948819782832266937476633340326755909887668169319694175625671699934254600331854096877033944937712477959464476351210613182323047518448687533122743032010170293603238186507905574632516046776221034562438856328122176437822822481653061392350594346342629384918871146866851643886589660716443111298397049407445210965423629785597526939990679302767685825585842756724043679107434689206501688310008469728698489990725789362908880888245303448191041475824223201796772042834402041445075348263754521432639862953680309006129565876478885249498503510364146436242786029975510800617246215896516129672182651045482024780537772413109581194263723273162229835056013019151675359590056172637223138524353653154291615635743189032593421883037191136176311393653326676402806088299593325469863400546475148965885026257438473492291678292982963105443356483578776460109004836375055310878467712075237557106218316782568612605969722587737017541702249355049281117597835873444793050948438077284045575419121348955931172248155735019779913393382178534770134318966766647326243217256205039363643818707031890889560583262834351148535857802441788160330701327777370306302516137795841271819122560276110813133857997034305986203847212239862011501954861300814217297619283578990720358943157638398428028707621138798725357396068917074735996496983462290693949406366072586279745295713846350127131329815052314220120605665690103590238305977185035738599018566144255135280353426464909281006516848911977137208021727873484543040924217875346371250026292353854071732557977882133081702378811186712173402747953809364443061145587544573897564809631298158280639570241533056192648615168092817418511234575753653013049701869645411475061280138129104640809818655175097020252561100525566988416723966294820235774030371557765583294536870223953430629397532100958737503630553970444527208890104294215402016405340616597507583874623838758344215837607203473000683882104034313143704356259249934467760373944464957736002506355066679006717256352746595345008814640378302749361891346108183570892758064904043724403538091144892399905399209548083843916295631452159146670585389710358652675242952837800622314848347324797518565603332063668301673293285630126326903183777930071445803656132105293105154236902050755215036896510299638155702282374018492479247846897394903374001395869194205623395856425127179733968087764554121283130626607966772677979689448917396355060961607239260437275890493681127974529854096652078411947117971206675521849453532144570036596236287382145846840404377855539342266400759930990684565751778728221372328353035396429222388266275561432009760552416402033114310729286163215825864472020943829608235372237934824202548102394143156920905477424710119123067392714745338876076392832823843675842819297849128328804355117128064852108163127722270490163512862756814538165503204767540505724337112030059345360008699653844948343773174964078587303207347092112037302700862790012895599984419649798688087628941637493308802776406499894683974836467946097283533505065579850743303342004749033638917312505817652928770026253723284006771117565035128949955597548139111775132835007811410366844190421413482534024897794467932871796381817034792440895380734611405227336725848529232584873467531499398722275530564471505625399192263315869238959246503609315524814624533544088060897835954719176789208060843238281657934817922990834161053433485186288262588775745893417351156080258678119153812026283762575187947562754439269165512709746946493703711453457211902081044348897418592753651214220595698073143702576027580463836071609489157911993414732139119051237907457508481180634061262593892216377082005644568224323585609455095509345561615140755303309482501413812460946147367139032595865606221176858389168112565864744011652696894637968375726276922849939978896142864045372002737121453646476459611287945857571512047548136321791972178173871282762796015440862405993526500953505727140344349741997964994522893580486982585510925731107635827712765385812289167484977740634948390311970882438034500111613933497326642246933613565633120609106758960436039913509549422267697208936083074756904961273271170881546003452619835559788134649867227016937221241091040186166090123264063893144961735152869814290259845619583486737597460504097350460415626140770309062511737669402591235399811919735898676380885917729481610260657777681222672911110710812797590393850677377574517041899704468245168043885182560358565709577157997923054700863072884502556138688599814920921149379993046987012109725137180352498312163784033122697699769697018018399806422549772108734000898176276884827025226859158698562879527138353993941592421636338190266196423578533144924997310107733090011314518315949547790722528394427114092147256094593527023276159934353776326041127505254131263840545822242205579759556514079582706504394668789882654258520815909472211985615249602502292323499693425191062176727002703824454300172898973925895465603326861593529840409129411836166341920636037821079692619062741576541024420082676254876594731413380887000043305849882652120202216891737715235958612177859447848251153857991183664844428450022162777781770671385317783671671230177497343298546240989534062916696161812780127065096943061422931336543920000915257577730201377435100671310314932410986507105145346324170202354738096802247678514059792459033395338726200765991668286074209784312315478323486122260667091677443216898797952970209317220477657545585954102138393973695910854326768677229941468292672592897258667031514186005422944912255942027893812563730104562216484040127107607579706238975248314871891238976875424379486623000320818284876063987943587597098999653959753424833789258621645186615581119150739562372388412688590964195762981100913724576866881108676697614431604099949581720675643365701918648886976133241702341754863073085748954375156135842985567657593776196874925493363300787119180996625628680203650180391657181798276916313188055153254560043988132083061205594205164932152571206707862831387182235677144266748814295780273997628838724270605238760501452625835912045589501915371050405820620863446692073283074020057650092388857018316520457764986526755809079908906843793435416373737924202083307972926269816144648872936597186260254651313765474627724339690280851096998823382343131901881948248705898076697109750933545687785795780897125961040932328832467529172383962566729843154059192073344440449117686980384284065814272966690459315187938418282310435361399858870664390544660890387466497171519296967901893983153693856336923048860541238602052341641495553744144363625990177419944126312202013351243910035824036417979645296907374822665923839177894008055772496064535270127650013664486688824841473933244704866640789702171043133894228563040806134203541452030760020907100555875422607084008131496564296478151054463026003534378000058856547555779280562292220310921850223183129589549511532053789232511256946401841551144816451625833824052790718036715567086042980568738830317278855326018118642094808876565846147542466292283862979116878968746182070183828946075466312356801407519738696490464978188757069201335715100430044579384642989690314114401238959476943407062511986745036099005183407719548828452008453825017522205986020050303163568089416198271714909258832636042050481951940384830292642232277290820256275651348052748824195311656617553207071018051586485677277368633050190894774109034631037925769332960705227095394599095289127432231859333827462680782303866397967927973213779869824029192544485489409330422712116590587584742803412146880186983276065921349182686638723782180076999592370949017482572265711131389627619030455044203866725296340411487814517340672126914782601673040445886436609047625380466784156470917566379273823895020582055828055296790313648838203380764194313016947991709122017075659178206415732693129065914562265010797030852477652963784283545956185419801382511473492278264846869494231864145759860227684565150167677268626368344595263180589797900001601702799214100156827360271828342491807512533278682089003353803179279624483213004438556287806868062644457156337959440918599608096682579132589743244053643695082084455803558744076755894544543521997990813808891640486366009381948241995341514894249324637561058035701455963102450514484534659414383591319775610056614111937504613138415730150152712600100607460429964467812996936480231603587591695778885539968479303207630567550302672754333224897694801748774016023167000020136278213726551658483618482903464877355748208076617471194629989772174416712209581294474628100809120857497842633514130147296936371299206125637650999907844865856391052090202088052824451326263411457906733739545533540654634097627531533987355219537360221448349318329117118442567968014064977078382241919324255430252472264474335982036850812192971400623946004760541189518715860561127308554103182110104025529962789999550126407131793172773266994429387898256365456769441948667991454512510009287695739554005882494065890326608342689776412593936461920030759840154593418152613324654608286797699177798319119310751621352997266122246310142671715432272497514061398488680368791480520921966842188867443657995347143796855910417117435585341596906283391197606814618219168238328807448423587157797468616893023334699944191237564376303698228497519098093446230312334176201622203157865139637179462615563749517227827149976416974849839324385885800587859792673693099143358331798964570608976684088015052799553288872668382594401833007490287921737670739448202516258624842907912491968488815181772023328991027679191741550213505608384032853424655293546486928844285358321696681900577113968773964413260963029204203705085791087882004523727701926054374073375847396145944013989499116566196811308524658356315855580582356525600432453295812108085459722244006553097828692194881332688019939265442393579993284120967746627713921532634218509670251392820212435389333580384175280344005148388280207291775872292684667075273095444922096579948198132129448421782287850888146156907929940945583496389387269438032524942062868057087900628076038499387768139227774124542831199447611788981301732435800118058688061011583686949511707701755655308471127115443064672420236331963089069112241597500267286419854912395964318693835325103793896905972660045084936495201424438822855250472483483056705102020850177075149199836946223091196341464099461023995916281974364901836318943506035644090043995426855762716127285814248896098884970241597054111176529763814248423351941334852500300770527054965983444409609216040704309823135532219903999283144818391341457933991315236155684190269822932223912339246036270985634548113748384291007716793437776610961411277350749891041573977545997905000988459935020770374556343877398630462225858359601022206766472684557742103141246387578518192840105726521105077578133620179041334720982635482293048504139761482248564199107621006409512611399732713393097187703871188166030583231805021575369903184293564141107854827884166479119975919891945906913445483562440113639375832867457329859177401196601321305899677271220391184518320680616185884353885401308862908820586773414594691230572489448143141180853016489495319185796568265985805711215239194259568648535622006658177019139227324714657751071192405184984883446378362047384184109610669529204028163082532192675399900746059917485016587573947430774086960006889955814625326127172138150850682528483486874560757801815328755954143859283755464409810404195292850987817360636352516104692187939281774806049161216127580273694121222113209740250935433056112110645856369266507167955148843261304300634822467649580729357077562063720825077641885177573829227234954484552930267018044273661359009986355340762096021763897660027903265133940671629859699350221771667236965041801117409168757657517347184932309200835275773398176275991964558083329669384439836058602727284760732235599507696390914253421783181159003125636949151035989085089039951277489751189648155210626615944946174225538151982175153023866525943241998616727375610833480933185187849801731991610174523298351619381225345436844347347042165653037188308013025042170352446710976471902833661530024399427283749390706403450994521902274382918666678942147979771586641236079380868787307946621598554416038920005174196795251293756472807540742671873107615700200975622196076161328057102497267612909261380300910245459951955712150727742133694902281256662593296397654031680103901737318294663436701059284524432161392314285066714011056694545215761476597987467860013836874374602281084006679567383493461590337134586455232514619614110046398907237063669318339220467704020223830282043114331914193309932388186324608326861900417628950596866109750607118908252340270395373081907674699875339727173473659426752913672527009114636186351492961005765672416885791276906124712275734937261716503271943682982203942858713396257977920773725800873986088869602313101961240661400715814914991216309705827848243105233180047130015201668322562110876427151452183048404822202098412809232002285965452850807505753769237082454612462474574245462644731706806247635982388663518927475653142981885385595833232007929998564131702962472065174528261211703358170882298462726938456481221395418817982752201641993447521121684140616729737683152210925011488312578367550499357718549545893415678954205886383485181023400276345054735627932978675239509327861157521267940504573711125025795132471277996927901507022943459427183348512628907295308978116839960179146632734707363556857031276841859406258945999169738199574618784326310851137922324287697961843804542195888131504116457922675421669698804577836620310509047776796698257201966333083483576620358358973704106934647983743441650172528747515618296272896922210423479377040453625369872326311432112434576551905731699574388059372170622757964273155932044476104416041593808053014899761945426789814077944427226176024984786991246861733863754432664109260118194974856968332911287541344368979770901852223646311214425550256657509251774504435709125234208374276681824479077852037888491500414429414622192885435703071889586309504809006943644873969077117833127229399164299613549738471505522222356019866907673801989550186937753598312750246422488652348976223781666576938486312121955100631858972587570835463995627794722067141941638196362472401842212259139824026574855864344218033498194145878509910384322818935166913005658955426628240552485224757592411576549990210760943033464514227271017954661630744222741623015014194548370635491521420216627954777027421149408268082460174868599785226296224037861538348266578720741793449129936382009982600179715888491079112115368914644351328876347095539117932195378038796691747176793159349553923189499310514562460070236906232793681615313517604185498176650231037923567522181441804629464850594565220950642150776115196538389684945908821657492011904420183015905446597012842387324768942534701059702488336816830788294705340218027127509637115439560015648878711959663951283855893985448489093722005824607053402111925548721749890414536792451020288570649452538924940795506741852513335571634503748914563430426725283815892476125616529523330084471738680815690667626850884202086164852582163319715561314041243086030878313127432757509059542592261534878170808103529822579772114880494439307496554647945718315716267171238237952263872483052041871581417969987505513920808402513732523622171897888049078499017562508460056616671475608316606482922953920133606240729615027158401514231920696740551348178155059032412317417538265605967314924703280210332670789157043320112333533634863293832506835918686605419758327322911141169281482912113677958286419281495851070578739664119167590664252867086476213188503791423858891809289894875074795610469033914240680070956996159960812778713619076442309617661461580917487917591870462076561196674850772264435847064725097636343254137475491665773711257320917680660143230581831822824013314154178680192169332122531940980414738933631628943333206794979599934099744279202158089967284456414048356117879267469618642155900201446854297082675990260585671387315945200947189792154968019811597936216810249729020402883761349759088329615874034009768166978573549655121408276138856448874896985549772137267032917583645660105542741730252941436932654636009479612655153003272512453767823461922551758966577763829910712430759795550822607299119107525431877456324759960644025548558521322451358881459399253147173419164690536606588956234727726490569941957068112036366535441453690045067384950121437146108162580949765696395882039666026034903741683295772708762223785605849014451278758517262766460459018200126223562859310414124564071706379542565361402138101871160043146351137653757409450933994241331686540799335893488522216493769219276938073983559922398471487610849637698526857751722876865413871615299855662113959245882119880861095001669023809269710795827853033765598000520850315280732347506518814782739518315351489310921073460808441363041612311871732011440925599575019210974685566170260654934856825973640683985945486727210068772147865822614407505879126856846197105926988033403461221431612625211872211496815222362284883121850013756782717363338219179346384134593471651653721740930723589709275290061620407450871603077312678582248283225871668989365907256728736088936644488398477421312345974203376325689087009419315217089562621329252475403832582752295939931234110875453595147089183258703479845530919449359719826147056415898836190492951661729174000171390495806035345390341574199070677222621293105427477350652202212156532517883774257139100339823592040557025983834595011625623484182832435778163751143614436100062997760148421522957991366683610903765869837547987941011621407251383048417569017537130598625369336881782872051593133793953771787505342884851413565523460267896560480601267325102898342966849480604294360178460125474214841655539327771950293113911994669352042590833802039614839201022106740746968851254486246038702582100424562882683323342339466075128690932211451735984850050738097462305858633820242662895125817669135237774212207133134163525724792853953742811695689853101827951765445835507695700746254607634787995267603748235512230121618250913536469260186345036236419421466952905395414190487038927200015589676199028355407585058193706468116724937645974138378743958810656564772614589926635012274697007727418840213570601143992370823561506284339747695265545622654430385027532766031380468843527633859877771715375591357345949554674412653374288250175846119346085996515823251519827021800794176746743036771775576986152150679770215920564354740445701695500687282325182323021303341093893933986614752613491051717714106453432503323739836288929452427533702839042459761298820216547137704460753987092909676475093776368270415840680183154876508190565673150117139297470906798860512863395185782255314082823036199168740587856898445440052989593757763493120547450850556422979251363403308865938732512113049193662213083629892247364892497063202803277999274280973986610192591971396754795135654046628855877989710226534396723611041168778926861769184809622998585180795842644540287124023424799740132853715295399045341939670893623994292132149192223832799917245849178856657619619264676381767263283012759509339500012631428806868978185283998762384792880018608362431196185550864592954295790480733059656515711951069152190166476017668752413757771439117806394077578087789242607604968697798982003671853187827743636246116777466997506832827160375687584566276185148400289026512728876521678315417032028620082220766281671400906355445104373944877205986451983019831181662573647167179230071845994657386971686230341607795119561143792270200291552369033239589333115875354424934840771871259675325527786487513580675735054423110565452484833377938047593402823979804559990097065303673222363190279568351131119905241030350077133607940675343864644670276739580077828942625755246003531170956659359140081371182507418180941698658355228609387839555789337953787336690846747083155821426797085127780881957727325745641858681055744583860449073766504055980396541491281213454656670924117953189932884953324464673367584282142409433639409422044835941909163217999812663862037545533079401221685188893189114594717546957284522248817113143217244645886108741643857644318340119509201650392999035015223096342482823442609271770991889600874044957267118717918555260553370516091622849943152339251258998378441025195961572066934381526066638322359356866798742881633272139217305970434312251499203621177734033916304165491928662928966623207380953834904881917577200275698979053177940201100094001883624283271300966352786289627870049897900459213436981965270292768882670662547130747203534553028682115933189232806120950810746808159076604886004269523019899662331283079126784627413194081913307690007796522589487956606685705533512181883378989460667798285898894136226206179874281853641905343100141666544163731897820291843507391227411165143627323833259867542511809827228169434562105940969414014893189695804857525968015626818650420783845654072169284341953758884624625982542295995418789064310158115160659896218854883751566629331214999877318479039649276781431502055634192303060446036597149035048444940785390519396193593118679508862333212054407673577283298978936024163702071857571887047651375251920694034704911571160468773531024035409497945886594928629616334890511660654506615274447808554801489338817795209921890623642977407075030166344631359516402274313180878566946896834294432504535380431498044020189171511469331068106126137067979196810662815811989417108581218677549594885178243780708285986674839639318226524370683055328422507621796118520797079260397576278340351186346845851038198464900511113889746292857941111033093718734890868963367301409579305262754414212514165511183180212843288249872576206667293837975024525189550514334801448270868672869706106274404778782220277036680213352251401852527049821305325823569833810088529875007552613392858396609253147776167797485267701695035338192766285282911221580486873530357698252420183804217079667754822581349221456112729467352229153890343763466573602526732838892431488131388924496527183441295714949280276528193210678515883493732737718469356646738638700019284244697305361139401410669506285408230847612729797088310695627643258813577951023798395894999122855652883061089998610660920734445865611847849760629742394676479411220314552736541965848741652005826041606427382859440623000669503582034562054320910622720194669564967794156790382390745145783846003111188526892332254388557658900005043954122611684338777946961484370139767633911035378702909632699355174267229964703850379626673802818085696318537493489129230997670206943823758783428700696169911789981132161650713668500706354525885944434061743546813279832258778037831191068977209073210159024399260842924847338448555201993459990420751075685306587975002700983239334443043183109162742682192258200259164882607575873351582499502931799616679908866782181366350338846508441133748526446790109544417600743113378417762014500671396280603760165299942909917243123257209490273829052624640076292521744613987878273855080099183284950760480503891926668499018017326076024580523952358537798950476775466676225293791397654800171098423137939278485595286607719747363287021433826308398751825521385148677903997858192620403856696363709932007678730381816643733745678949231646172469789698953164430867469234940653074673753326051193508438547886235868798810145662210313200225374933076216496092486249752479124346941108806929155051407821629811612219033354006515950182995375873462262976356380525414968986167395244800537556296323983581065725004021603277383439556629274881716977459269015034164411545823983661026981188337501334942774336393236078445420958811839311199008940490244091994747090477414008040713157415465738300341245220909433167334518266730818803517415310298484864622965817726636723128463972447926794677891211865315948376905142940121220835949830813775001873798766129749999771648771575954512280474776935582897487038081248876955363650703770706309194409486611069387360972709629239401476082167058722514069731790919722264991864839606768471736388581405806222255331448759352216803900271488453547660482582588357276511160880673822154387343148791316219584179167352590052744237376526807290877700157046281886695120259498539512661360276739374776535860385118603791849199714342094905229299437655657162207530160683321158085401157122527944883282564256046352792125514037595788091260403854965035510898581292565731443573607830931209526390582512094111733089700264668104072886153527517365294067129206725880879048448340159908435609819264875185251684873888844118429328611009209414193693475619952877225179466166068641926114901257701910338118394157642954371847764455145093232016203498645393166341229166966664067285432300600079514969904838322341100089019037780933502416281928919721542556744443976082179059463522309982126927564204577039293904296190888199292346231475717260701903977335616667837448904790606064100252811787689920270103343442603616048898567489350863967123506923178377653856388910811519210514865002851050446562478913166572925085626816160552594497106308261731462429822448179641932656343494691143977825924268363988649773512415205306362778929328324180100894288813794728957226067121363376685098701931438262774890475518428420629094159979048151290056761627299518136977816916026480260623403299387756306554825211081448526538728881661838221234040666151808347810638316477249552527674114323756990574318570440941994789553011983079565242553422960240141492147298780683781958721328985247996802188945780576310894550196384025741172473664213189854213643734362094817301497758279677767237802701879646442283246984146804460278977404822866499898886144143930477937211838125908734364886045884584291846657973461832142939216436875766308341207722276704912862103143428703630858846682316462177611413858147274577517204453864257531508706439113266865359826418816730569111124684523867230646181982333543562422632038037603216452208616513810570906508103178328498849416358512944890002058221485888290081486437661724278775237666578432213031163794960729326952389875732828445624510441763852534709032452086838670964872214030775344263584659958997293248372698624672682912371166570414539479871801971955173743605915221855963424503735715520591069243529367762489332827881168944083231791745768202467128375686509646638069372360506042225991874273132238380387217939941359146433017584292817546552996528201908089750316045379775565335253795515376403579522486910697674751954890073890548326919395120059069261696824926067554865402184855320964474375440277502873430564092990201262055428254788083168992542197159709529004746043519606018233584842194463803517547321090864354396476604937254444606877367074118507760737497623315789104494349535224261584892224265974557265235795352928162075352822351166690171338974212522958846472746025913702067463173533457674929773572248007805084688188316120988438917504203095896606395035456548718623260594353838824457258100609780423306643760418875491148235160901585648090934605575719105490876161683616372883375283025048917302492019937750606420618608756446321107762894998005828828853803571251953350311517600409375795501102258812406724385448338674767799051352682858230629124623569614221858767338603865936009347089479473465903223271485205128191732571240512688542146745759238260025114535353056043691476200380322464120382571248593462642855368680188509550015982176716969537699607598012268819672230036806487662580457716058176894189476674484213688474791910383660597847258091917331305743066616395474371900423244123243147013014641000666727738413027241481406322698571929871467109514221800669251852508066490130804327327971418644076601280960002511102494918202594984146039452601138865135481374033997341623465189145300369225676858797089282451717664467178356396625630776987307048966031290471415726271530551959555771631869326557635013464271520681062702057047476002314741835427242962445021216809128483664373658354994487948027369649103749800282317823191681620863093228788773807797148831559930384945551335519242861571629522216596631820902708211858230973589643370331127536364752489824901044235904237471083611120918687404766538088965978731467662852375308921848573676020353709760714092270808274727311555851426991778016008625874109012977312966137417173301063215898852496823278581027774205733095099926663674710448073006671481372414163036043483866040158414651509355334136665264114005547489817766139609635195687305935052386589080348963614989092505477341870837113250882557547201246152369561748347431174523209029794339684438249686528982094469359925319137098955122614438618261828394384636650825825819564673511650816061609058157486955360649619312364599353693337257356183209428441367149117798109997384199962930794328427940761720409013736122236479845282646121892830704501486571576659421366305830820638492656215539149994652797552014519897716714097371493820455312953576017865570034421307765011606658067722920812433573868637674913739532603022809724133675904041865518832226849371171338593209676569103394286872682130505935088257510189418272880425221579933338677842354588688898725439180077806639782519150070388140501626434619099843066393097606507286047718881462403656729100731309625072381749506380112727006624625121525827457462154382030747254327048385112223872540705216189444552990262088469880442705053470349023116182715366360891923235868632404823857254108707730361113115032481835639525849539317000688535776596096706809274171294351123702394503086799154151085618861717074255948596767902261576370670609124307537250625700769019169815586652913583756016490173771349901534703855163916078920590108556542801883292399529507277641454361419713382782806901836947138617423064620056483234402683314228177615350495434203673511696788864526121213897361550702558989981009657840892124577193045274297638789857318773844805252740579107472387808594059722592327947306343363172165421258015559354599637638877537106284920406705073601424005730809742842890283659866279859883514809042205024988484970200289604161801347399667591431636191845705945606620887409416347452288492921607688912829759123462234966875508440586214446200283307803654823563390292625613749739547856213319369329789068014470924355337798281898336309833090920476586048434817798887545256957845709420781643150038916977018041562568168832015907040040007846381654390749275817700309021879480258092628515180632685336768231733435488070417131442383907530902669068518947391337019056044037345165334618329609975450797705360896494645407093570136341853857209431706145627375583685372608578274259461173444937830679063922383755787177706136336674972000951804442180696667835045516245289381211442125046764864101290816447855728908812502585255456057448442307620563268864200386355994612870263998003493048478446586372303778540532000937908236975322853061446447652070881214000109261887411836413171619615029837387927689435729749870170115375511079436560295782601233462918483669382638851477365321208378359139189437165992798865425287740894900556593950399665154743729120935209776888578093477608289662423993371559959576228527453620613553025961263700606351910330382705873318357951330236089098654735609978325317852174948209798409884195723812225548990563213984576174795630613663883775846672355513508190632584629035949022994038905367396718667645647244409892192592860058108315068381147539074692130854056543803382824021107841584037448456525858751599981105517002336875373044101940123819761211053448352118968261971864477010006941110093652618408814363916807813218978331485809876561420322597681868625253686756982375402153524919376751430472572773873327121711368261384874895844565521324448652959165611500826505364639368271729785890578302236588791611414850649857537533802357483074493175947882938803585014308442145129143153664062240614669357985807493718080617738105530733038212284245581866992259245145602581100938636722664036899015364163522732801138984416503970100126480971300974952888635790694063540874953143990870988318070179605593654054627225767741594823756649098137475364059402557886619659538778371429459741469202859080320488019707534971996518040566933886771305992488176784892504039692195702864800891853668687424185399833210529649186838962894822369627257126028776116126898417889219935634486143634399537725550177836353322769863735524970272318856349853249983900964969268010670574839694803927082758167109412713481695507877194699280526283759718702953139273446587337976252402396216472459532258534908691573667036960041082602032581200317771564471664689930484364144539373607575481196724955994099238840894328922294953683230017222232401362594934338596232733300634922191596502757202216641648424895860326946558641034777706631992676966073841598685135137287036253181917239009825369244617867567755760996981641784904344465750111771493002728558892020556271439498864730169325239405194852280709082436410681838776890184727017467240185971025525172731935997909621748252147048396819113566547171019062827267799338761604871261370802625914484511303274232022743600890577346324592180793982033823049015196083072969880792179453675843140730425126753300145081497857333144875479071960313318998839418500733428360099612977115909348448472964452000654839582832788645016445052658489986684268710879715536406577116558439002179657903386684157300514678610350279363353169022647778911877024111904534594785478190760709226741083651919550097397145266806180357650071750307248381055842929958441565806085168059284004504204917666972872508861254637746181274694966653069678159902811871164179457358317139495092410697690109771410596904035222168829736852766690088685616747063060886073426632378911200592330812216710915122665317013309242120778709791498889616922681299906112682292411796462165336066348221473728714900406156315593099965083611146724740575220454322318124667410292910135046520403994140547132778414742712424922471944126684287684464861456406204923720913135163785461237230810621161739635640032337545342012246498443021971902012112881190188732775448794555188764179432673997992610614737652852442447448740344946714537239812111801696931981699821366003358596226781425923670261145307413364098917722531142199233796998786164128869057213638959411207196395135376048256181026336195232202969839719201733260727221729145836986904122734971435072050871034616433020050733438359406675876621565095618749252491625572170723617511868197103804841309263571987689457112015164418110695779420564612373289331519607519714382980468237018456350458299777074867168169384025229606000427018169397801451802978168633878466847352849856895084963667714360664507003555913881205470671686339666703683107811845041363346687721533366721351135119713377865299061236058559945699738957493051476199876703940660484274427862426378847165471169197701742587464052843642401022530636484175911402471087340170506569248930434680331736357642690055100021281697964962144646858871210363020748968195585968522049817305708472753748439378523384867295272257909244689961186590213570329502506157933637329915505302510601348027314024355019964102270150105161250348117335995954431657277371109394655051047952597140003874121367210429069294765807499495669616353542987533507461445700525774524027912177900252679574900302977123870743691036733721053524628855663562419816491711038144524211777096670191805240932231897498559462526337604141643863030177259665385132639629640092424711588792767359454878838549170477696910018727177259613122400741300584909291311110652708136089164255333460661885682295170983480911485792741905863840509075887238833883911744223570060317815099321457499574665432852375826399745127534282658960278245959427008959497760290209537860757255362444526997518685301069019808518452834887183560103332407925766091577524783942252853579876399194406499000900957269669828260322737496325791269098514040756170839116752333434499338928643208659935633840512797857228635531955285882849978576677230976119105391788364427945126460747777216782211494386662250263844988871008957960959549180140603261229364899444967253258109703115184842988424250114879210780266827908788393628338471718917621791262448095460066169408719923633479037302824549676588641409542219468214836939631779346371439115011612403335990325307991241299595684354034713053234793802129230528218351915557079407172513755275038987443012766634062696919955736512172557406989235332826211029991330123925514668686578042779705684412820133524377944074922965058412714083382991434476414957859571827332586754869113602309524933211015189416055507930110304905106903800635979462753847458004516563247705354640083213511801560254937877389006338565646105420177164527734569110834586555824066468825217655733110642114184345211530572623691422000892941824719177193097107464950765690731204704948700682349072597429695685792507720267687093759453072905053561967148606795368766221543129237295926519794480074089097372588824014650108952560552109002391438225021151578935610657267769381596609624503151459900445951010351658104665704377849861837800047413681596911150595852818985077892456301571109662451213119025717376933241554517427859841372364374285844248883781357602922884490128626784346281554434823572795892068836567543019849296026142354342222528561866342704897093577799631095165540613024351291995536089663302665078209892196685632625796900884617505486154492420268900699707550312027301878629163405777633027011873969280511016741160739334502449900912025500070167429668347604446288592771322920408600861106428169909064753162403985412353357786886214669806334636157333973091098244521761654603984031592455557837925091388307604452688913062516686679389637274236412962886216069628149224222754920860641875032447927928461151489889911814951259121803721130157163793328314617829647025886584178386688650799284822385445635883437418132977699905470913843032145469242814590730270823651098687708202728923067858314247195013360906790191777799503754779386122945610482645581153440424809013371903933295812427955244110007717086296479804681707901163552288832862099942088673629474501083087325376645510092369748728565599605316478254969868260874643453876171623180132327617984080933796364018612047463664704764844817257066308406363004329272921507782404498027134989936758814237677365700920247413725770262148203819894896064144985066792163549782910453089950633729842209079861213212533986162135372368042606343484211746182942802612296092851147408789006137306413943777377976014607415657829585484635451739010553904503411600426478338352625078465050915903757189808662554645709069616075378727418311609222560764917745877762089373784015545303879738356011759215459356181794961173298528102529893543922695173001048145319983990109579011188856703213621986399971952627236277567345003806476337829605631624619319957922824689998914728827853551879490264291396116987353445787234745625474949531158782471784518250560875327840257515604085524743932823956699392441684645557646866615381303385729472295013852736362394170516092925494076696893637401258803082060454957812199075472723136037980110036813801140737717632720330741422161919229024774326633433237677617263300141621870391420771722079989131343017016133938601041373847489303200737466296941831518368052943457318396371240210161607234751256380984582454313112579484062169595706447750641254968426631494988416380186542325276830285845045957639749234492153782295088242384659925310161845522227544615305010106748777284567613118740594249007518732487759872654225843397759475971086457222696697467514692002447051297912676640260747921960904093169128811584466761007610192359859135109014534348198263809966009244996460379680259602995207386838238980324115367706744951982028364232228799661968937038779172001565281818897286972416679974059671819463779299888519222019505006391995767525582399271925328606514851595139547335633515694517457604906835270740245394019784382894324832354241669754769280241790553820076984582811288301179685437981060484741291655030172005715237886255121764594157742818096816051207952203354822279677026683116384217406535104736365487014073143365713533721987632198949506494993748844159207454587028129334781777713641797367243943720909358206992648061409495645667140431074758439911172169359153792296937711475495353131957480028412307440420294785159320939094617949484480484528169386552605645410666573139191800726251250863105399793642642213286014584444337141299598891507972102252981981220127856858454698493071300568211888681781407407837528379366324424491467672223902149510931657247240466517324613132614899064926469015686696485474063444626397158883061172787026185395723264068233673424771494933387198208498444271231751264979964717720447054369424341342403271914905254864832716948860091654102721741835773069820320564937344316567001621592209566614963445433671319857245662749932779839031523270679217051430278700793677531111699382811033011686678328789155332647734342767584664832599108261787598877992341985544422727177466204867174214793431241825147930767933163346376632794897055514028697862134888410292309548970472794038295177026439191239021994475648501876169145046491205978383311295096514055124054396744652276963335630805152580697055736896439458733366080146603176464027182064572598035252897573662835879322331528095378631880856798493199786689138038975538174550569745307970436165788587584998179880642536279348804386831518977177512017088830386939552350679723034754771717928087811444823796304454997615899255322858970442476745349402492602337097816972466473565013783945702495501949719976336399558510168786369602626816083103055972581822405468621732475562789180020892433448813110098799430639201919068815721801013822871554852882853875102943209181788716390728825957243514030801690273325780093449755447899048152467655358792406544795808156989764843169721160966628121120845009542462536972508618911414926253360777009246801506673465035045956649355266069914984299623118568565505518520934255709527738062445768933124411051149262897596267058650288412858810139631219712341179697457548606162713302542310935915017871162876548357499539746342258026946132006553244830673909793074917553920700138560878522557086042017463057812135719347412941815144687093394205005759131481657761717445112555482423729735108572611395969314599430321397110608542295844321845585783268006092860777491125326706641484967779706054212153240880408525846780396290285743416136386233591839661344350050089395084724322999320901992060317155283630784012381169067845253973264721797005561025874651269789793382349799277670705949977237901168138172705267294901051804795081399578323038915158975775887436903727333130178292454611852224415559660965185233350705535818569504172550653019444795866712790489615354640140148046034129593905024314648461578153333425695305914913784035419286137544714843444446489593161109270173717046617355170271903522826496630225954586010869261750256897786440869645116613970097477212617705106640638356357524866284926394504965761422081240132003498739375388442442623065493958395711666121757395084523347503791515633380810138789596924650611792011205326240564875723864223553594874425426566192613939712168264136212570656205710870928381867123981288902927065504470509346993637328070410636433592247864719345455830290832315639947219575503276065336799703501925427310263586556782361913894454293833453064830177288405304232741685103796335219511234763488144535444419432069214933979953061061148361136005418225406903943843865292185576238566280551564313525450617005781939333515808027760238496443776562382985013404802685746614304744572089380573807208119980955940644094206923321232402781752270250662529597162446876515486441371454202305527935920639353133768731004477019839725329293616223798100036565180337439810457987985014704476137923761329630308351521350227857788127763076373196553631734768498932233934777393106670659542330915579575571770527712906841177798702999398874782405725785051385489027976740657112644790672567206001284009895458336334475281707172317179486665724314782579056733738681698000588540025413155249266834108088594079339682090672294526192970958127235740973007764671083611873937960609169093444057051993124873832762483865516689476927678475232240191314901186422633699529414702068307901734485294233288090733291743221071512132546655480231510895792198280635890432932980230794913409218773227974949207467568865166441204864902073764194713350563615880048796582665294191348408061497111040986163432330025965699137918416155310706159630475092080246348437707641450878078215863515760926977795962498883047794198203110294082113226943487412874001143674296452172743597588001953090060373683253985712745976615192438800112720099018769389997470768269179973075050463466573442492018808560990676900765076796090185714311132484857166963906354238658653627216951840735017500207457741602163376484541514922073045477772236650036844011231374622017519013495188223020989907072992218175046410488800423618953912832373810938161649491696538890619058944317237100324948417811135716106009864169516110395065008691028130443921126913986881077102315277414687053669549781094655867567851371622926628485829369054139634575776105980547175309648384452641841531039827524293910922148915094140052783373553225482449407503405299126858432821332637813447797519170394550121341685374659067510325202038920537445235295804540046355515621268439444272953967491510231305874739589309202993157469789498647939573628104384169878962922666674154795418902935123928345147997976186377376462595374575497999827456367459326400143933838269424661839336570423830711252512751700782386807109270921933894207793751883814623795211011556499179957834972918128726676531318121257723757368196186947300379630754729644228018163448575047092747850897606495450168073667414801628195979347245816140085259792835776336126424935066667201308798331817555347591282216227206608001080585557533595252808091014500504360729207880029958420421962937335046922457647907032117517351623216881203323044173771623983854398582413262793550097110644706166703751491985836099141140533299329759564322202499248240229195377702988827026444159397018726187643679256271087662594789925621306719682468158592947126498885619642327416866594609309418750285504804650911133060498918057205374220663816287720643811030020569161106279987329709490070096350512806569369688189154888702536631098001135321320135909686204298374412833330672054447575017895627331447545000473147574811782000748070412248623280095881222386805123730863925059694850323419279087708625849279435082272268628327136507496903858371888277714911196312831342255576654954707105258466686641521935792907870379919424731491237343170379622551354634961027187308472610637306037610565504991813431264278697329987655863883048762881460120606800079896575435388647269113230127720024011870066909495767006738225222944776037781598238369718755512877656779037665227789970733090398019535573452861555075459366084269387634288156825696514795457505052989705653181039552893080202735571762714609001829433335200623121491985919993318393863049962546056280721792657400594118805532411452117964825583342379828151666042022349481718879775940747814436413582044229723661696597041983178132073628099712859340751100146551829289707241393873119542540811760448707173660948482851023644680401006165280866989378451984037236461137533302014648240238291212036818480994593682332894079276010463464183096557154895130693942036136848702463155811663287236205315991048355920571491387936168449278517535119958404123507079055195926821385077723835200989495290065687993658367328962475377063788629445335612292451373136121275475425916742596924904909098251080710159783457234053281274637603422496528588207911902974979195548853426876512563343436836912316475680629079651806063178030045116515303550379670007647575332398628590490732820155102696167029735457245855707440197344802195149641638535066229684751053877362010056152975641336152336751945984776634753134317128203426873604224293185767404139048242459783890770921010236690349205827700948371488518316384399592243455516762476629726719390769503155430501167611378738175640905668508000746958027921268670118837848862398927524037010927967745989815218192663097193815571922978137075428315547508889492512860540581671960745647039011870529777500665046090360019690034114243967879190290035319104115825194558628966991906045319382723971967368730108560547704647802577038493976423706920845741281219655058072578045825172142886126035703780210094133757421681685542608387853005858713094657812393863039694465436811589911476930165348068353441435339565264307060190737557611975697357326944427743867963576575244106348978414216886843828476399260138485851927421361302817234284384520449210907052193896680226404635906429911611614481525000014287398038430858102293476516409480807775555833345913419543440766987900541675475061531219900461950871362595651231046877941677145143877033757462459363374662735636142317144422878855498995961929831119667484309967573087231614805809975216988755652563811327179830620646495658717997858854729289102974547309024850938407676367224974077376217540965717322586801239775701611669797352249306243092981915930218580276765799395286614863285655118688086696359343250145186672772834242467443991094845109185881215814885240428615783310279176398310674845674975324777224582369758562406815553816396079630436119290824341291795648341384137835809518810751970225167347054842446377646270390964965559472416392801221114957835843937383810710321775175476627319658788300260997089800360968425647542873399356061280117034013547976134362131098896615238141146522504816593275643949317600971136681713374554731790312103308794319758406242847095884423545571364443804292917544723555561688454733678282180226598509369131136980242813175777049647944636900314283838033859550697582695392711019675634606687385983946706332632621286436373016281416116234471121216581688818724284215802875027537177169166941252805981236655245196580078963879878640155599819042094009780799863143720130784406723093928545383552045727928202126701820643937463843822492550567024785884135279452767334310982874595776408693445672152681076287253503302120146189972213923523563175876427608239574144452253106861371832204366271784342019530840340235440219223892041139189985242559964018132581187140171739209163556757886202162598124107952641146758560471330737972392874853784435765847102370492738910632520800462784109041475658466578642958753988452288243244106224040869063430590440339324953630503021099237608917384921895756526031720095294027809262481214035777638663590450123599626349264747781970571232093200774757604972421480554294894672136443399606251636139885962107908603837619484071628019806771983411502702243037584983376342623923495896919598335554370206836283037516432082990144907039046419541223380372459547651675890478907373027699221342311229211735528823211954244329585606892357463303263624846719611223423040716585116718950790771782092359166479989436404956310322603062778897008406756447268796050836141898028965258351574854603916499701567405781308427953262602844092995477057783928331579369949681269902727605844482213748792188809827306280227187723979021256829005060981125371002519106214436547439981598584135411543927685442392984895131520216807787068591096715092736766004454584273838298162803587946665379139833388744062353584852034184341372814959722494434539813844270314379906763572808827618309231260769205618074728002294637764536146696225199892589627174162450101571291506797887414462981984734964711527265182263057716346945560518958472372412339364996601077623563154301054497722871419890933379950026093581976159711416755049988589275180195228040481635769622799492373771600813780700187272303661408792793161401536634495645977165670029866905401855437240337578833492177556751012779983530351764455123303618897609202181145328423248974759035817804406807695961842327535517069627337183952590798695659079538653152132730287755631195933160880257639620863437525999184543549611431915663130730586525937636172606698081851609616200267279935085429153166104193962663350814209397068453653266278451718952227870688302014635572948096567826782136548114119804902346623142599147648536829200201055406159795951292150563922418900664401518066248008713516605151999453765955689432651243756355109414971897382812018721828166283845120179184699597972067602528006104900814250496446645308311273822703815705230371956103655247271863272498549686684231685891731953189325620665059380211366343377845526679623547803274977991442830478462385203984843011482229473516132029165919500959212489994633746356050887041034294192590853003065698618822706801514462769357547991961318979769401874340543068304708673315029042654266667266632954691623960342273521518168630677560006343720503949313451021817360965590436650342592749530933125566516823382322364994353946697700179969247393377519762298336724724558554608044367449604032673401612066084074752918808920384772288813245185217627824884833627809050256433370505674954496133311535962256942502690535491574975312458306756807224118464996132142388905062315313805547585503728197797853419247946362327888325923761326899141788952166475015214775774367797215917129666457841128313759897819886008417499375080249072147574643919416986786351139232988834897759792857526719408991860088326631542562132452118382158122730255017483746123532936944294406431732725747392363108995154400068801748475142198927362182639790709193257661660037935823515861830515203248334888961163206908496397797820820178008534555888421724021041514976762004071661973135054106223544293799974086618670509445762656138167822147253753883510901383785310848638028030387889056732383639991906602731729985609036176855726546714124405188181864878334029827777469839204631846981600025801887195271828747251740671180502392827782246520841540261652877122039235510858573242281577595896584794655412578583450502790930146210311999174628475063554204532562294386514405113927015733129990085126020212166688478468078267912970859060800681996974615557081774064606757357616248234500942798160398034047685505061251180592804210643761101333240754640343043493555406892940472886148394568759629540241137764383518588581866270557249540811459685042319596040026318399600848811641201544938101220469739090397369138347215263072069782550269837392608640990781266874300309248490429020136219213081799364910518828793574508720442049959374805507987050841899044740171475958247669928689876018322037132106427572800867025092805157444350535772149234022369787439466219971684584936930326479282636989274879985012865133315462515332162087859247264548660397691563625419109010699274009453501301831216829668945087421544783143146440367245540332394759365540612965450909816525908104005359391082244083888165160858320986636150017039084994372119278121343375680015368422222374970669534792918136514223921785176214090027094120063571151403361059176385034325269506062900431426331556609995158281339689679193480704735673324440580256736604788387073427424889220317593523282896508898069990890965276906506806468631273454127328626687718610808368102269325377793360858058863912900993800656413256207119893987844465926065881338166353537211116580493781520959798395307705665146502822477220937959013592158424021777424175109814210833355283497343494057996486836262642775135777904481810812272227772266487462646011759817583618070468692857885639836101562628236252052017465529049897777778077626336342134028360377964612669560144792862574194800068295753899142095595499396508681061396908287088685529909755916024955659677970515843303068383151600521602508673449627414494798550004276277293260069051898378741605879270257563249372052697028698448661669898931709296545579648229092782457663004372995369408157392372925195733790318377426461841224129681517221407552641034550878291000214571306143769111622603347961045733049402801782626097281913891119920332267431856984664268875943664785488936433508432065999442393032869401445448476506580075367500165531705318487461045315082090468485294583908128733245901432066137825277610232632517877916505568884009602404201507069605765093675424177296285042273213965025791339911927947059469983713217729924203950778945495145766244260303410671084730166904923246469271649711372769888920676478019057093839421716252234466172737586733993895320559851068940605436542741396274323075324233018771515288610018017600062139470180427471243822076427529739992171813770729631782764113736429994160979345192344244666311334960648304486458804023673860251446282259305454138751950987758991731856653659159586410320688577764438540004239326011420356780450220422660077153832237009954817842296313054645384356637325816147807662773124734346863264336894436267106627016274134022913063221919964701950566723186177746982328885735459215550864140287702217294492781604738498328139356413734680813534883057574531732862187956675604947818804947943807654413604122733496546107121467252364206861502019421239518641881657970003240490120455186490100474857358143967540969869605007037277826650523822681464061009160605728551015062050552994402998821236852321320234635468205678870175554365581152645303338946531640193207390220335999260193572860859012396728460355312791564883658556245122289048649200318691306639443861349108811702364887439507597381154778579957590141522302216558706996030794697891432284842215381799882401098674626731738062649025222988239744943424917808904026905586081512058547210295091232791238795199517284254686018013529574066369506491610000707749020760127954772347550484397573105204722381171949609749565091142990365497294314508505077819332823383165571556257408657222167927174662121499432407715664063753777830306454509696505744897571029962742514286939723629667948170897496604543173383334890720775215565363249481658120523100365299176154289373697797108093225738825833978521162517641271695901630224853987112352617559489799383251692244711924331911199139789576613579429377244847657560405459531053506576236474508229766848408717620809628020939041252212105391077845036790208082632540239549409162541339703110208780705784266980026769695285120608408211314099368233816219340920812815154800018069621134120917839609387390850761038015707411236597411959257384046575049998615211633769482585734860541945849814356681718607911588591179503781112327539136189653505194724253675882476761824253585146769063830461832837533651978201583095857006926474314221998696947469656779373949554421793625799302950158737069262825110448557287834444957393893263199368434366303274813292295174627717655253819094351362888354029003380001255028446260432676786023454623573760980220863359572434756559064935319141751661945685947694874730692730902198907003825374885177536760267082822418397368537067850329424297572277552104039163702644744823778679807954668215974738056978183890923716684811421598126450665369478924295859279553811332275141444263995887502737433278606763222026150012446893367830908521273651271511985000484836903924223340944171905201335148316774673457305501156752691449565332926452555337490824154282985892677442092842601708604635368341995661226063618710918993324648994007965589809421224684384581937655231599725309070994623760303847317645949689349457000979683235648197065797988307709529948663687732256201260523694458650119214657362703403168607983952067237677201155160980470563086687793358306459448310462709933684393876355780945799016060833464998860920962802152274388302841366475544371263519827499552614381498924837374450423402380042074968780426872096343078936039688632783598144696591810818876735482084589840678598932131114962852901100382418006951704193931439934474934700842820588005991496018294730244766905154697529904496213351923720599878894441799455591202717817646944644905634005385683189237689331742629647358873973735476613519204764249043575290323005317922146616846083838464931108322121289703591628751890747614265247431699267704847834356176886079818020664677724688562080880318175776303900059599188883210738881062262011804672494345290576282651408051545081359138836043935274909524467974117185392192061204369607211685194289106283192879437297912871264492296818679165508865900445803570297427002372172809794053823458770298376262301172299110284611200188372724729170621930966194242198932663707024736219689456583846858525172222005749003533165973997449194979916947639940330502326142278257336530948441228220429594569843774423760584561158392010149982512878554539396504997932569134058919656709225382413257043983498868749337126070224085312098492538957395386895612025229971336051768496721451464805007536460737673608089448640758607219576486136663730273793668836858359585558348144349185679085120109941471867877522076535378393565001043290940541684675687065594411147706922829987446267820125975838186170720094366998728146431892945107900956067873770470970056750779499540463204140284570793834619639142198082243861883612846974722771227817644466646856436912306780247037027113205281806365718089739970198663440035159044849132079327695638539156176528108560965553962515086947189528973233484691967682687866277869946874991830038319678227480708011251180292281358700114362136831651695714846872420742563963426816595199271042618076061591733488650372957201467422917050954999474564086275124453483990776726941288025822609781793886700338159759725414120012660011029783457582715589370234058259987308279279130799406935674754022847702984046038462728428808685447947169291295473022717815736914173717095928736894863695768543050616864235148775292704744194364700722056134838560651101759936331557050900596885911118991868230514228963121873832006435260414028218034610383109417945825354769739335543764981283912428126640792588370923747731023219698600868550817771410504308233872106889424148231518221710944949517126846864316163792876903065986381545545190481412488766811885669155968131375835128117568724463826994371704073663250422933686459176919247112329661130949797914955265779470948325974963283417662024406800371448118130558893641582804549121617008421235873366156256693997125272440440117033606013974843085035087176379151368258489390149243855768326550298801162265046844907537433392841314150104595851810402595282102958140433026863265391001875728991757198480488674861006329588994133628536851494948404430190120061933847928786070936892562100429263670375560891102566811407895986325579866666858156086903659562873501023969592386816210786047632125632719251706092974153643105394468754931154053334404879758510804231156059655729826781987192346522607813415059405170979503922031450766881822370472700746868633101053888984559921409494343399361315067692622761081873806749693652858382559309885298755620108161049800400587270307962195465681413345783729500238166364258669279130769659596153462738035188885684694847197504114927714376914492817571977366043694909159007386869295641485585192384143598239142275305276999936094473067459783445756083612633682801526108548163563755039711390633385453747525459769755058793658589030633580114883189438855343752125534602983417860226322622722372019777853325817636837876271220803113649292946888593377515185508783363631927475745171810504433115420325758766261532167608490551642438727619858719813366779152775424492511990715993910342665886734753617754235423617668780836348170088179172785062537379066625811551724260039935157803008133360260818951487783955833774748490538736368809440680993836783825092233046470349394740203498110798028056781161660603754552411554982970265610623956991848184943974309386296410992669132779172030027396533924140130817261563448249066524059305755939442289026676984254021268777036797130611261859945576589825862342511569497529827608979523000895432403381884551839659036873306974050618838098894990859576064653139544425015657109824288467355593239468488418769871908729669859396359447058272459257531401266115586025627650662580340720092013283260535841872166247667347856689114791965868758487552572410643565814528711850307573521697787825966470225430419100183497077297530024349706370373406189640742552882203733430553230726239626729205797738899447933757166081400312011274700046188647675303656769877443005449697384399329134530701163797011106203218168690932213812575006142872756938797172745904691543751106063305162837513865196200311886348241466272109087106651831287885950079102579329532796188485197000690920274540266824620376313071651612077453589832897343632958472539161415492958878034382799737889443200353686029171731639359071321225998655277912262594155646365167390456586099526800217841676373113126666547687237383753913813102583135038116638474983909249463228595039579495579772699877212912393387975123026022973584460958287012920828096485280891505338008829609261030957386221229446535674942683908338167498078038511343501262546665642799594637981815129954591744187710783124008978742083442397179359691499323944509913482701159238968154156221854903650838204266595553063177370027884207733994769212259486487709472902406758587546736124906486704477088550248742429776844370406686723566759634884937434509653965984400110535628720465328961220012013682398882161803137601187231691637889510473055267088851032580042250317938367217680146824273664362002952330446016383634974999612025022292784361551796832846330526390947219160594856794348026423519771188207850205972168247396425876900200003618567544983070306584662314228416512402109045952697409878901607025031135461361794915933044092502440063512694226126460955054328331872182899755916559274651043111471022451129926614731310629816525073596804479249977885841030738005976499008786467427857658853391896878244548774132290609174997027648248127645030437136453756839122646751063485111793208258149735758471007639914748061382487683045752230539253563389466329351655559704107841463351327988426339877033449437044537788041115204358828704652852724922709910210135345707437585894019770626547700907937093186759372029503454303829544325184524871220499143038722299342608664860379463864955373919097817928739458761860549486958268172413212575871696266350929283050850833464290631468357618810463337638631403297828520679442797809938828180942681755676178119674354524973846408461457451081240591691336647179094861815417915285264057174278870435919098037621473278437053937984637795075854092632840791549715753178557645692481977898454552415589940258662036455401789761236810730204189475742193832517611826811144943807524673454812944021550564366395023716508062588012606957793859928797439043307692977094682971708786095303672155312393025329661256084904282368701175736886080501992098726661371204111266444357837792220616062888115826583077826753697152176201109627647347231457822387484484775468931288776616820158987139401542767049910939040003488649392708512064270906786575097052355330702943252785676765783004304404691705678171404587538325280721655249747967838436136176592179051576281369738892010097831064656704139578336945730928600811692389283734844657354877340203793360481762819157734415792588512850032241418428879185095878887520852840394324682439720599260702011088563460115820335514337095572397879191584560125582826048732740171512948477517903676060395170821277140416608649355078885411197768558254122343753207120647816648975686895727177924150358525168399336014493162657177095525450010066789227782888974336122571410629403897269893342257803729349724980491702710014069231410381884155865134170174877245449063255460653505070371436476633634437399750307712216386109994049665511499498544324338960994107976208754831093212033315871684130830566461172991482298832700557553966821260411064084726928498823739942016934117221182352492624257049246554919556164503779670324670925953287478899072131458806907251781885528397124749177251457594596871885627424191511493620733880773853793191945203338066364507798339278612037952090221966822634855175809466067536542596311523385442791853905797839864844021263257363221386423996736741726223516928156717991192301748162041373434021999035384425429221023858503066393565935600418038734980245900330267061323916464503439686283653625428032568328861992120175334864423190219230780971148568971208835786661426814938325433718160188445828527045448541207060194200668998036998084962155409983714605868241965414756736119326883985384047472646753529842056120721866959690693369943653724836590446896830825600341143851730060609502679305257678363451401297722218046164672035842379353069559107049966155982893917127345677016674909469638282771918793226942004876330353391946221861173122264366384080936338249653647412703748404191248115600557417550771127715433991541061159692844364848915280317669792049272300265180889150273012262250707716817848870884131515231281351280488588442887967673822134311822049008719984845563742458389007743821831221872424338233983584408388080480310824345941839610895493748105735464806387540413061962478190697730351659492807639263959038103091205891475372532959692792202322009442449743586292593799667558142671324171121144882220562504353627690117642370395354918739363601938882944389457232727822919923885839560152891340509641808674621620140178988519465247419661781661147986434443199028561632853877806205771547822892619572713122234176488470880725131454200494581873404419741727961638503671252584544875241985232068491746839896190206717130747521185355026659282421007025422909081760480343351462245771218282276214648865755967366002398761002932793168934399831389688916890199041250131626175163746252800939603908098200147081692536198614686357870281208331781195652020628201500657009453479550536175277118667249802843862053119706884184725037414953858357062749607044577452976939743749740063184414932842696203025100730687876106058359645036692192815474834466091129256784404741662997533210479365180979035255528024820717673440769688306893313772543401378603908776479457207688779897603703339238476066139332482067054944797574514883124440455669236124504528836523392376506165780528780094826120480409902165641958712646761788213582876754136847052669682027958549890317573679670527811294902410428078120563074087874874622801261419139185338793183602650893069137695958648221414690501286115340637105496904578581034676280683726238568647020233023498872371108334928987907337323714094386145377638059739279582085270233175676128989290633896499412128391414686737904501590119591610185107505958694496613939356422822584770537980845526059446903474234239049514570262302553651754876589640145382018044145753633501036278248591002259084943849141413621528781436697629701722075155399029078217721255364462920966669487660291249854200055609229581825792766218780586548079381844464701138019877202173126125777121956707296395631057608511244607639508231538776510837677844852606910134541559984793411933629062661751056324371718271713585712798947123198529567063886367878767040535517799799634877904835135141279793308858598634271713884630769955958893102995640862905453428143911503170426820144042666195828292732437263350431919693857870717915907048647211527856646689803552912997698980577151122030234854654233794430117932787941620428392097907388963246199456652816201966719427308892524395634170981113172389518025272856455270343735391913044590238822379148340875435493933396253066634367639595209409855346618352636356135502326774171296559247905890401069230628844412329309159908392794890190390825111537370502184464269157017541518748675197343404914134544237386915678328214206278836188378006413614699758529203807501301856474828232864115565583871273947615970463335290032725835064147922862776312398413622808731659327473853368369209077402448235681989440981624070807187154601676724380958155121842876977825321979720742298209725890052584271121763009356790119418328924945264088880057641457108422032602972956990895018140208013843765526783799701563611318759681024780078288861320786094853191893657244686306894846191431679078938932139703154883694438103544365154493331364335966360080616997072718547948192229265005062159645304251652345163548233851863434129767712514560093025631022039992626706954103722099205897315548506258377342836689558482586699546543160212760233965089171274994932981297479666980413676624718751651242566741120546216226777893013991988527595901094654709105548977577800061488465477133166604927982951223380980651587409953136422408230359453544600291881328908050193587277440995459020727575975985643869623751559183380683584434208299212757535598335133820131933056618837814426623857955610179178968706086063532284088597950592021718706311333160856360529207248568340035251411868728271345066796239134866856969170246846725198533682820883907326996199413626315002551687236896559302653762239566261293510324195815045904270793554784345630074285064027505927153739956131498878621164711448254007414156025031529364709113480050957128068566014522848995094020382302286395800454914527549085790023571866375439644235511610511315459518020615989067541705583958129409078202720630492594838839196559210153549583185408806866524627310759733702786116604330475289493867535515311056816805124295219082687833956852328504549109424309606517688960660306832538050125162279980068961861763930463239250384925315825576963814998947279885606146433100861164125261565980629343145738610394690863109393755307913875334798123398269815465880570222818676876118139002791290856807951275039179891171516317722083922229423498487660499453187954125219183329184825754232869790294886624151753573742147343792794292385294419964952875795246772666983726945514712863790822926369658112267760184515204233350410204521221991973219972450141619221057028578558711324882627148647457434232575076736898078584011056655786213098864225787864748413301030319706462034004573028319125487106032728832019990973198090208854024399637130313567582972071293340160069191323553854459136703205364200490590063691418157211327229757698762053387501298351080064468197856819065552561615704182904852917312960215958788174544137783302704156609171864468466717850529486064282937876052896614953384336845349620943570655898353225126710916475727446118864999502561902690049054655331928587970306950991422731906533698365538268428582429180062975059282381136066699211841686767494323701864609376820817472622933241596406546695260579958299962083652475488093440278466428294925511669581016792248634918355817185302557981270241492188666060471194416222235872987645902210685824354516087798320090603857232761378912960262294605013250137405431700212251090545591539554488696152805278338565850224237064261815704960460674966294503523620666039094693427894463578020055713192967717780874958491251761933141836250270422621057765765709677981153016197583091098854316641588075957639741887754986269901475679467264887219260383897937926557148691016300035190062482710543443055062799979294397606062914507011023659240733086303600466017461570890456839793076062005591341469094448236166916937408524888561776632359899948634104815658212167896280656374449854993793807549570347265472928895397016581567433638234862206253645536112547355200591425098807008312615254068333602315160972146503556728194520563353731632278086406560768390993723410240012335363419170533383956746817820935941824717531700212120595352483953107568455756644931552795730497371338387461018900228519790764314208299913289189568328161895498729654439497333533366054371221064191126639708581441873987588735010696396789050233128856713621748388207472214161446657903633276601161454671855619431340612134216137815859393579651006121675524931738843932478999635882805285803924061566266046353745637606314912298583540701821680738487771440660506430582800427556786588289740891173095676236518636712641542807989902748955488343263860400904394333689818412168017676323870089829893241553109812533479508036922136371078004309395777273380083487099523790231547946339750063952068936214521975448469637098783739439616720170927759749956035473404772825252828252930189597245469973765893595541084394222757625964915187020166176098038885419025286119959743176719979610781523278427422890613223695976098706184261032206279530940572108141284962014417388407620408432779063581006223859143354068243983302972836124025021002287479563115429784815864531028238750460491400824073884198515121264757566412291268445754065692347137420303997958041563395914448438548057501875890838358311767536347920717858168967882055053608927456807657119277715181577574548189751922117344618510631848534605254650361281274130603970511562902552668382959175849535785882226293732185999419713571592857471509813829381473465605267269981847227177655894395325261495840109630720225297923751590350518098318565013691822402505697947603466204654052251415869797587929492469942619990753427440354777269864035631822320920847642149384925243675087922019930625232694954684718742553855229388408899031050839555576327007189320795477026476936043369936931929369557401888258751300313909543941141258907301072464826503259494591940494079680492647477305708760420534223136170784683202971806791240120471737711185598550694688960231410056913799807950754281000104236331531949781377569549893615060031150534583525413605164302094066168372837556434218153631693557515481393581901503437959754730350747261950112161249261266206562784768149123221003795085313336880157554271970638856948381718321866028620200821025989997607458721977960053895577876503441477769936405675396755164598399164667088908634332604453161969466099890066631161796634748422826304904151882972878585444860964226400731033641917782139067925139998286083212484238900336604397755904372332451872067735969799038364700507244500430150403058224672488078707992626062106974523463056178764032749103952149397360343055383088697171548397025905728990084224991774396055535183839274793664666346722892042726948083484225949794094352858793807168850542378304596423829838007162878212874825219311086248890068516064820973697500860651180995055653192409820977517336036924751806847246833660917037494857262690258890888039078056830815981484145228761396595626997247089217504604301541713861902870618783239264981212239870717837062231244227690501832198403233413673858561812839648672380305712513276378064135985291121122518946155271512901663006369540173465556684938055675832710197096506872971305100551520071661086888232332856787360839813222691128277230555351995244006183737976643821363921811747045361204942497253316938763649307076141803867315199050091186250097966730890108105400791416393956502243620242109912099709757154644735454339498544433452031219398159815245088104350212573936275226865896965666858242933841527276364605581257868486094504407452557700069615186698720538748068549225389447434369103270754124720437123734390290271721681990980181333911836299814250118166190690717353725426721761720719584275748144588939141197841647736422086656807059033722622086592299873067391572845697407511207327628796746372944515234608463276772975832202736614629653784018888876591168131300726278448738068911133450675969360009927864378943274389378039077075728793871964413024152979595235780165472072886521052416799809606584244195967795909295816252890896683972055384048466344774804294314061687098213924374460612841383675444607189700369438126551357220085691602804786094394265618714456322660947780920399227904392232415444068581811049747337373898253873903310893288137154694994449657208920933650042571318441902346480871878720125498869372691041096557243545625145700952505708530693843281029382816091286472875894690845253676582514519647489082855143329051595700452575733652497733494924608760564362171874501588102497402168788199887847721796791561474715068697374842239918239567697465515528654147445678448795117719202529595487964804195068537650258012777946461297990832109004884564998412340532511712524272074498307526871097686876651241090137851359153213787636461097181654309272603883113279392548991548642676097909198854842778092822430889037026111708862569004912714870008526846554398552774183214626262983449361709556216907143324459154101439689624910399077839321088850652581265809649658360021122974059099982153671480284740065941686120867748264637133396399492101484339201085071448222851521817334758778487809754072733037627249474878367953709126478816688130536634686999492196133028286781937013597573571344606903234506340633947739317571178233386771396884291673918275175556882611391331975916947563677504078942036059955619923210445514485243114714127011232610410227102693365306213927995114164698989331143493687924911217944261517020047708183375585229808249698589775632050998292965283734785446803100546625723252509921944760929974846274911140354925950497006952911779214436633575021837129249349109092757353205688194121028637146674676869557551986299892091136180673822632640386382417203537250343418328646240597925839820169157145566274746972457741211607857190966104766624476275029363972467968236529464612552906958817535072219008392606577314130912091810136299417979958155649927018797691559581469047982186077672955092853254685398504898521973362371071829186011330462383043788180301256872754963718252535565729974930577305538797908165693194998933807965401794076976615001759451546257234837653417059616869885582618242098552122816034669585761311606713017675709958594664885419437457772887122591461275765718252572829584386275294421677113228883429240289117613257801516573308971240551549364189291739693456578441470536717662651351724071546084130471116635582791575583325202784891215502945916283817798018694345948142255749934872450950221068778812043842355471471402838287786443508684482640614388373365771325794322936318796238135950929146484666036374933581365129172466334884093003127035500465141383629601404376766726936166081402141401316499019639592882303211220587436396388291489359633751961030842401396782124932579380642912313153643866062658428822544014081615464732651141936183654703433152070178670435306724699787214816409725693714920888374624640495552841231336958531431784417852125872015749645384581842377133063811381644561587929396469976954778340004868234123918469324308028539058646184557244132212254899305015485393693458387485321674591504069729072976262420735163334480593998681912393532210369869264053871295370185415207752835967130650503155951689637869603668627861300015629462089798075841991173642804517813776373382002360057370010224276050447483290894426893046403760986265589728287441425278049273411703381642096501066864213768398475737473190537187586693952597309010622327393165785564661570827334099825208199129448157330599067608744330572952042699924302716654904404102002668663612217099847545915892607568001697054239553069882420740023945506088163200509549497508860894668558571474478613610039002910127967605235676771451628832348905161190343161930468772351467426548173308192521030863719372810358581125726490754528165941337990093681748421589954932551172947042558342108816469595220672013828797609836096900053988897451854916884318326386907757998402996533813821490336828778322156034676036742940504700545628409334279768062861332637590256797436003454025668121405347870805617147856659984273970435003603984985753181886149047321466784626390088903780352200610057790800057165376262184724372621275067787752374064458663296622345811160716931732858021437306001296822436853762079244536348778691354876905371672219726559590370264162614767528898044302066057951271791620565694585051545783030689115102564132128712801952860510493875770463521478440743512745430185912744168066913705889398700828851637099163301726815491215374857154379972457673227882650455334574241999037290431572986316883297025944331269158022545219974587220052996982572494465657172841259188176774455459371970508424924863654933352539166142702271856225787576102083711543571213253519410334690834395696607392621033162995861640359050833433385228169607322848247397602084897762119022519846862407522930053330970289336303194707670757563109331514268209892426306246973287227491198102051726362089004971828623558608840320737679768257502991111378409864066865043517957158720787895517004703477870246897880665736005059942783364581125560664131322537580978103689287326143723260563051233002933157718767818225581683689693551659298275404393951526322032722750974911201088917494628946481242300339363125747488190455076189438118622098068578974748829946887657680506867717197967493671030334392396751826073501363989197446004565881724595227351768083145803450473014990283201922092757161001229641040752959957630247333929278239808006808457723803560488620883729135478074279558101936165272115304721696709305514254423866478475341779115403219149703909173392972588500322947876832420147331320964785195284024196226912235226025275789773931699190559873523273470017439398217538412030742325864403866733990757300722388051801685197328267901996754262028222955705779722254525798071252928790293961834364691904866906875181190632877968213491458141068213949089813687283180469602121304147867578382536450808566835650338512213821737164866270480945129472044702251604777373085664666705947244064778289784935088400437331776845949837548115898915591064540105063589663463619552225669094361579186191132615471229936576015457417234983887099654991025369381337014632473113150203475080666517187269013804417446394525016935726321233755874477516888691991402990337031833788831107850458963181239068691524251617019701258727760455127031315886039516622705701841764999752059221456977918824379635969738248955515908765604663546253796885909667674028814749807914595047348610927692311432831519747791576706995215356867122353829604237257820258935150858263723665592159517949156612376606350335752340563849157254673191263650067041818684651909245687477809918091899798628328615832734683205273482940189893299724866410839362090279516131119824092087012502209043154076404006584275551944471892321797915375006229099899804715614407191870368129132678280555858019706343985797528223416329575361101125022220010796722850779847170704832386263868401078705665587736448666035831446899951845692006127109481964865497805326662118903495604407477440249437626644917949720933238526310459444328907918037635353243962643498130824888481967982792466856762357832446132910731502845407112044711915255476079325812516823357135593044952387420751786261884796971226168669739057183038841957840319530758654895004789126169661208845691455748205390426616129085056827813488480689753514043042595489825687055302989437571803516737540282270444002018332365507252769363703292828313626136387081486155014889361749360346323783212665376156261421940814928128583997973618382453596425724387999241944446024845408945310761669332606139739649225394599505085237352006040226437570044748222378265446424060203716623450968127660882087549237016660860546459606151048612319191343535165815415261735622355216407162683811423580876587723052941005870019672975791500497314992114259407790466480541648506007472891386636235144766512820355797567140590187665270157539032302797441974177399547111429139363003856954000646346187793264093918085588356322018276024251277519134453405290953524627920176339423649915388906375037455013244289643666895256886086099002500546920455303996763169773584119407426713206823479173174332192297400122183668406731172735423689231835793211837514057190728273465291779655507130334353416333150713269794558963320166161665514371898603435358473215811768286369037432542830113601040755667907789491603636933491460247695442184458387641054775178136255509784149331522620493816167434218787927137171451431313347994774734225781993628079414479490641333129569971100944412699452404446380002166604600125804161919183611027422539359011461938040947289345171135670502487127933963394284519922631726011257120179774055552892692797880864004353791178884076749053532698189524485827833961324712717124236058580331619703359637643646230903707623089838486784286346776187544260650891809937276464351105568868267361069394863794023395854054481501221965892942875759145323978247896477577171011774478841189544282664173039602215475991638555148517544346788531337154441804819741544656868280078460215965056202159536389274035290564251742943160453080001617132201921082546732975095996242149136272495085037355202552152767051960173924603967958570690383153746527191023251947390538350374174178040009576452362235510252617991269604720421739760907391684796147747169818922764157696492023581487096866503015994684038177776290852870210527929974967833279260237966107861630488594921129757976431601446750185814923902693823416911133433476950689460098620730585968181366028792365159378711869900736385089560472055147366846016943026798172109640659971254084515031996325811256399474223192526684278557971698978269925505679025843723699935767360337963634454295494620800403508953877120535611368342257058815405297049533473582297900151704983926710628243750156130781961660094875020352269271751100280345496289987367282277737539112185437631363315457090874727567148087191284025742777945286600566617050136374235686847019831704225368878854085140280239564899327504369439733861293546895545480582642397933306934808219055060488428166580801444555465323199152724415460066653650820585257968787202255407004012453910315774632634349213731941385148194417447728582544833709721144961523307323191289040464326931348299412511549159821911861398415330881430652541395627326690345395174603912848125990260246459796021702743329397218930037447160513891473752377214864888898586129458465374726485773310038676569078936996964103485090224520984981711256900175523888970936157291145942513232196903938218298788370141937492589936402795780186456280222882750019427123820537415127621319536687854375114641642554948412698365677897001182463303010753851801090008506815036449138425693147600720459271608498167645985179761969040116512568490931119312473398918548039506174289978807698244133226008300831550781431446395016371096838675196815390541526899079897467619462457053777833584063165261691809313835579405560103158260973188717078798047067279461109386226236766991398006800638761123760165809038432883142937165895804550040984621575015853556186575826738446656864749264801566402904501345250357757321332655359555994309696954218781773661005775693526391108260977640615389800450171266204460201953464105078294520687496911422683304623466466199059590110144725943991719005205375296359581561859577441898785878623051812455105806225114889077985705454180952566682107395262827079976116176131545512875668966358846381835852121375250229569807085116432457444754613196685535554574414758942012884852350552756953496913805362175169459324373988581443266825035256276521390266698465901498352820839488719112055227454105945815782031824961053409809982295926102011796842527871519337153097621764460166232454904829580533211281389558038490273533619484766267808374516854526411744180160679396503270400196034226113026298649621855084570428548477937501337817173346302581004825633951318506904097187566541017780382762548815005926257226149984922570077342568783715576013061486760022243661899190166489803626024685440509133410332278085654037922559825506671749767011718940127965975563694488045647779241368515361617800579631620602341532137080695718409009930706890923959623959191491551974494933487253193004642795819781838110146595311153153927128723229556517999740220824170803752467107554236710623958552660685992714968343431067734553547763518647659551799603176610468025875086129127238246444561185465659875607396343275765329721123569150125690032942838100817750847006492726405335718867577211188546905202518211371798639264170167537892417491378635077948806801283639304473220708623602332765010840686424538612558705833677656016567432680088359123232177604263479413427215552375080522546519255529351596390782238875000539380665576634619796711383211864255827225347869258370285079342475762124005986972185358957722094151317843159108443626584636568452732958888139019233441161478502615423312322582518112421321299990268734007077694075683468786651841534956214100799366545008079814656435579201902621469073663891768186568854059105884642869759260665198548329548850677368813384430446645319782979736914859221985020945172217897291826183496725558291627371369331517742578353123487060264870365868643490767280851842242180256869481763262490977428110231244024125805450614124189571378549340436145705273618332485185229246134153153439466726533121181762593283061864240586926275622331367186069241597611707065431731335584252500851582968530230310258223321854448032737743314029665763136859245126117934909478594122594158277637293758989769053949513868499021126604178887099304629770466470351758113752343051813288265597490680524639533095952930638159059073708465842107613540571479799122754887263567627829815668267527581199724589998679749677578204844106365549713166021887845337016926837571151197042361871165219258292664302912343127447306443355602397635179269126315698779477058216678069372353551476501286061838533170791084588783373516152512542716012069481272927527741526288677718738689307779848061677865091512948742587433146310995072416173321930582224575052246527956166594635170443041053649461302148339593525148040216482311216847253336653560195782619780645337881006688187290744592621786460179394334207092849446794082430801529975591631784504510138159000876374038072004326481189018084926340205424927906971938479821653737634202550769315714470800394735998153383496966083481164236186443671879196235411510477902329896879810043288575144393190168286291494743298780503158963351406415372162394838866803111750175155509371611656021380996777073720297436569576935394561671799342702351612003592246460246098782608952866455312745039576156722233067999223942175182055526424226675320939838028251544346783488787399016910179997194317277531674377534283973877343349077974553351902183713282604431596755835290100148596226106884558384412086078385120427013843031821860214746820289824893387265646521610685776476929427270434089231647976527412069965553639341661526433744217185276806807067908877847977484310980463509705456647131120155617384372042438972617690126401962987909414452395340052172004639374947980294560424481450052061508146069713249410688208298859160457376038380884843765082472263301493631400429317646215169734963583206970550394895419562386843730357525268728996731005240252838628755222731681802227928032336715857712071500354416296770189886213454212967497751521563704373731629912407945548770816278647594686377392641243024661195533068433416595095836476016302513653028507376949891056648672983424808170038692347123632966854430322695082413626727742472756494882726463857402912898009940874943983813785056611610263204264672065570486673268681254343789819388882376442994471521929184201268554289017312733946461829411420202795058971323493324674312125077418162742851873907614574000129899401262003364135999076540765084435534995040590657072172248294246442710531945544237036555469436808555397466587936177670530144000559129441917537943629956741364051704554521975875511599547030445802622732401609760808626057462804143421499070811557509242290927790715544040826069024153396503325397040287691602814742477435744406318105813727403651363946210588670127855106800899913288749498268922673549923798482845371271137772216126731539178859900887882362171917191224117606228730908922531255744675208536172321842225858143143268531052755225221455693681572406850873715058777502477664025169960583944626414992027359108988658721236186816369805181889832737030413937988341560871244398901857047917412761801211379176270583360263212710339269067500556071757706006167234030366916368842825036369110667461461773367344063877607893772275981279351870929842163263017940480416085182385933040635862811027225305596800766421340700649844044953136957985637994493560814926809672757875509892038115438992451323704788071996152203732040732327053794631139864828252304901781347255817970120326715678388683267163743000153706556704811468412699265761433147544093287500848938661953892096162054570713482666752988827893451552300119343789037231707059651584331468613405590520229939448236819704100975920061273514023845254982599294890538572837122500663853596276857585419116403365105327601794446676592627794043882387777353274935026551062251575297955310276669435154918816065356570466324413322232124831695337051469133047632836385204411917379380134771241069297720420620038806545353066767421251013890259707868368566186988700024034864101070559759642637783916938894265687085972313670326171159392698574607987935952605012078291573256989080982638111516554109789037132495039901019043306370220002198081463324773764830291717189800608274078763322334570547595597916364537819186924588687205388138142694182849547287399555825380825810907720653007803257086489256300935389682458457351867289131814778757971471811662463306913392902503886850547970280211334564318761821639551107815919541655312242743081547171615402903559673664147817443237269022922904797096624960582518178097401126590475878949015916256363967564245203706547834646073268551265293883163198444207782321805855653928260177316025356437164975251763999632852559227892884093658761785747163536422706079571173642390103468615492611373466453539897451434801580345242500188224958444400330155747057267366593260908326408198344679106729066020332145755717179567800171441664605295703975582390084098537732547996908703751654573209204262899239422436158332596121093282687245998644276990183135713951921349270791895295391802236461725299438777256715246157025074428727747359223388609366736855650905697301346188556314897861675165172984727847276161974206702134265539840460483127799974538403714694232993621978844153670319406564429333450487382977749659336616043353338430257489718491236860830241514778569355764369686547836136133090037335101985073343814773580013096584462185418569117158903709383502190257811206826569050175091736163432168505417130002664092425331923572064465456030606361102677846781419385469815623909548561069273745408783381765976759831377205053657253589566014862443056275163857126354443803542462256253601137023374106183823009798156654243345893208694806521854452291237548012501344592729411115202826660471139925781927135089801164453176570973066799535717815023100015808165595589684484776938234776680478546500693993876464526174751987701136350468711893875508577768963169341024996397784816411732270548959968337197710153760212636960528911044355850289334727285914540766512533598379684338877952904181657418931341897684313638266851316077483206570698256370880916079218347055535511101826298153644184795302484270401193987742865807369546052621602403975537025435324430296334740652297188565364491606803812135972867253190018882289528233204719953999841083806940961608124508426831231457724364664138570641287220951545657130271590590878862095687677998264487234269794271399497163863354165566320043131361332445903258090809320317807796065556814132351912892601444853151907216072451619766138600727586253048362143794582806594660687813914513108129089470335119209603288192118878093164206062976942306862546046122106156586616218408238013220786734700005945675143614765529826202459719076783195347293068702045598079519708380038931935305071701947516412810121514636069300095190990507566084750267633208197500599834951842417477462812642436011155503808203054482910845140902113471996670438298699921293227902127825346859231434753125917078613849836289607615528643023769500981687985739227301446515529591810265947165260524180543278902849058935764066186070535176870375976421527218975957433479255248964618926439952837235176540774324342231689220804609325554320416243979567879810370761304175703666023430066757165818175995447740736930211874742391219783994263913514322562668156633169777208727884702950658164640375010223526388004306513310694809919153046412065424336441381384578147205475375331032734206329553770326067187125726066130390074331809718623530293065770950124261896453506317759989248717552319972918129710451601411195021721462399043072359694793185813675415301715784112727179675836152883176081434021795446268900262109866503348525306428638874244955908797029991892456392382632917787735080561993889508495218341748679610489487423451558330696103788001360910510829206363633222429255695143539378927435563845748145350975581124432851166883368816989693546625098025150227575158287568422011817896020014976589035085638610353779276176770569323846923007796122453982670555131097843499235800031887019256473421507111358973038725116593321133444069593710301796943977984452600648270290276096379379255890977722137857791740944443810743268159672370663850556514508565544342031222825939421348951668722386998863846879117789736101645722034655516996925877770802498804555137577880497053231089841210076979998525998451401928074689749182356348107547888694440889914488228216508381979753696998138221312629746755411121933063794012331609297332814530747581476507831457985867968026942321837269198973429342195215022619323181223912692416356298580909752659650473541513977653054117988896567130480199129626578749089712642036114547330502949566782491606756306041531677228144690636782094442187497385230970594506082741073043210220520334944489823343774614902371186476113665076330216927299533325229836180737046524155936627806277732900787147786634864849892036121859915408582707049157045304492744151996081152460004806632164468695131520906739028873157754547132653334138311631505474599330391786568876168261259778500884501823330665857561175334209494098705224742001664530261323382943853942624655083270492235802500690129670128630708254397903321999193192943030911034678383188252693400074358349370075842202503199346339205085886077158849154365893072672612754092355982960223248600705040682475392021470914317748737053323922433834960300040930631347578331709353395412293532566155481703745398006639404785304142612532397436657939566984269804493029081171084372582981829782208099864204818513118075500850263260009546548627536185321081252562307615360119884641570074635220979283413291857197722005420214930369791234530989875203061226337678933246899615966599652309859031737865307478719240754431632081270070789385014811728043700922960250527095640399795812847711041045795263769906221356097530836333339637806551458802075176934945050142489172661187445550317575135169958948009232413619797541617014195131243898622218183388629187466061326156701373195629441572814268348832841459605294444955813453126915437584457705547029239837040730235390512552184795425978516453884699229838195846134327429938625309107852188717671074290168938445949441620575300948221696205222648433936894287330213318255425235075898104605426581942966160251942377699373532620674469846816781388707599909498207122010668238429458748326991830642855326076430235491814722106721716280930670527408199685736808043063968136606994641927081601517222361355272911920848190866062692503308660946605169230273820851459943682869049488534498867974416322048772918295332290890710474957667675013493421104726259126197017940413268302920370213409622049865247203179962865410907731353068340987724266723094508845941856775921092125745872775147364601756787330742497012460590094435898879330488134573867090756391649388485590452724763763841007546367601255461560135886015093895936380495471708395723018371803941346698357146599304372135027026930849633459183291229972326574327848352743296252342154459784598466499551628329331183257998082883069892269015006365396454811734303962955626578942945661331531581938411057265471060656108812296371586988813005651900229305385856436673664635424591206271523588554020634445643666160097518379017336088574884703646248798012718966258262382083347295966550442124143358497120256661665657122562638755529997304514000858220455309206099285782357887427647122809023318494757842578705664972008653020674236151317088058253856744568754706168773421326277823302494623790673994650815152889700688485268170234389142818795293097219963149692948114525038220705383612609614106913998146645206967902205053592575836192275365879744099177905535061424791019259247019964781257576063890327635244743952534626720494336544926330373574066593874501260864382957296184033480836365705828457123395157043225038928284325192061895856718975408805867615638581478100694313270833306884388879070661777754314277639489502036953300577127593399435238460315955171927483873310015888038355714295537418930202495577629849362044025307261789565457233853051880184267734736820617769341253829800398500501045091838733170515467857522613478750341928226112712483625835202415082673061059872791592889569063319821623702084476413116630714850521557768656993506418120798606428838440652540845356055631609648697959424642392997769981444607202898713352621501390690936855507894349496264988540642621857350613688334743163986929505248328937799734435037324938365015775266925072582543524722629994499142441339401429248686627311136237219619511921721646527436927272379928353671162535143944201838903472951785722521180736352722490795129150347189867659535223380034659395001735946915289337388634294334823383012899962081365025948173708416147436739587281832958496034713988253339103119699623811270524439436037813064402752016809244655286227094346251144543772569113119065643679708843486398204419776389803333383253672543811365693368346803530370351402178648607381579696293808399095268574626928090947912557240875272145803694398347795585518133164101054032734814301377641148656385990891644423098840359770474238995632038372620632277786061232211550596793579073581000337329606905366040251136626604880627966834258505527228708785666239831429310554218910147602673300498759963869419873619872225447973923237740265304184805352500809476892992495609964073123401154945844409622053072116472817654630706532230358621077923557943453996123832458231977394008800973497330871900525907190435939151631807816843043329027791251065119058358184375065813221026748632701838340366807971160672698892833619996762194488658117065617738572295023044011328178721609628058515736977412825730100376800827103975574307584465024682652265514032731163594807683362748157547577288450585870816354407122007788788111495752372345020978943542323243423070960689619765189248244101075998214479450758126221732735674224082912091666271393385918619376241069831469055559370923953241350472647998998630856754734817640016475483431322481669618561551825856510236114559098211741659278536600307821325822299871433007166318698415327827781127934360710024672389217102211829910474082611250911712527623639866661064777441001261648238427568221748302578033501244236837256088290034719498846592033297493748025396316221533543293301663833522648769371027001931619938252260674314440283631582175674484257953374955653783909613040053435747766987542568931769119980008674641665975777768316438921762251881171738921135529775176030558784625033162555152933056588668694728103443684411933389136279717330568858838302748298068280133664097413403118076902569260216661389361539926475845641652516322045558677884761973910982113520876727192366820468522970969217322421694869609367675134989632728730439672364832486601325316226876085474469115712785382405298045431012826644728956522742463404753001276717271467046924723161733015151930716286075380896957328436646992785513554665308040959388057305289787381799298469510913556142226243886618750897117355731872122108450959092838593157350634947955709608160425545072639167216998637093381610462633328359785178165111532248225138412618300278421404096446324234265673897224306378341245387066091914607252420845773238673758797896028894379527708272947262637297936675229769127131293481821115899725037345843947090859358769544938299105223335780790947164590263254436207569087731616728487940451589208933309682833721752923916079508912354182583652542730448570480322485686778298370236252133785192216662672039879476784487510797794949529924400733980731305064902790295788858376104249858268238506274111108863756810762926710329346366750635490294356710559873099823782447528071182705474107472106621668274196185675202934983404973379935556804816733246406563796527485236298612134271615331901750411013816036784097290373535040737644838377700579240800207873967095520778045679613803498325221386673920922159866580168615292792555147723778604546662390592710659009262921455219527646170206588717772442630337068504676010917880914688919067516096768559439745281555576682702073268940300930955580434661046725353361859484926025134383069542939914421175533618012887246154880655140120552185520588891048535865013943662612806938467630849217188474774336900183239213106161719089192259787553119047568779272001005638511474807211196838879102126003319015155347456039058577691065530765796072105556059994732337290345928477801663311479418999691049336093097774689255984107161827256759671531590196640054123622132403973827376142800838965667517770568925790885233764869345673130849292860635310412120928117924622660619194911150871884101602833551338522927330079718261317371341045670359861352594566144313564054011418054975144322618978003205536370440793236572970245312771919027207074268751350097616454015969995305447675487240155259858223066450662957105966972968275127793529359839164038326266003617359799457371603191068728356818780415652541432992057185151636972204672385029616291839655708312950253456596206488661808883054776714476844155351421073085189978711626136954610237582735360256223689097937823935133023550079787655703857921033928516686520112760242724761861645430597849581382163839101901164155116269271207695099458284981061649155080265861225990746923148938358407314343895748714957030525864728372328421901921600552921187683626080568928542342240644366451990906000641198916646223727079655638083623898624826450430103573809117283706937416295787487691942716525642784451483798693249585279694351903141194981596401071104530090391106428422674679811032008655403760000649137922857449866718216243718463910812993125559125206733612387256698932162219275835604660019680495398643030906455395480855127469711347904288103512889713249890726115427313241480435266646535796509732523382520382477138784220637334647228025273881536356204784649494774384278709035347970856900963954726670923384819613153895209542491111493039074836372486312613789727512146621042198279676391190091451569152183590893498880541893409694781085864481628244732809846764547005263426751680649841422040058494602001365599189906729725999935471378520978480488835562117628735075054298668841459687927187180829976281061061434584177082768108900438604088492419490845065213862397251458595058879170464481126268014475353365353373984562645638318508513441117208181584457891682992707116577329127581646257016432792279120855473434849648338130545181567988635064797660838685842847993050013890303516470324182656595862524745927488754769407377746646472608978886390975947872598536715011614993435300432869342456880692043324578182376714091661714839316413139602528656169752416931317383520209251792340341449536063138980173172666926775975673481490747213774499176814626812173798591028630998431047391240807912335388279032726683812887157281269123907028858415658530909987797807570023418341472587434916489099145943908337698614460016794888798049796159558109671270175694646189407385871789431083888545845924351071782875468206668648583472406986315155841223625599266510684520302330529406143042863998709190672241951230597948780064126153978346706302154948909377941195432590507038530824663012423519266387478946151490679328363944674455401038718169746515095605427485643933353759819336397314156483014968169739136471617313900752730229977616189591480328008482506412106472235800047613474094421009714682865997287237013244356620022478470540618543223153455529846198275576420217866406824851139743382166392141454912507444128890844987808619303773239605328891412802954274425485381588890906854039677362553978516777985513624373673371741242387520494493584594393604563693311619563234110389794537669245426922841490790267325679096312188551044495783293815641678106742826310387723386301501733226504047509861551921900244736190836633264502389088054180816095050182054026149029550655196613370575520925839962255967417409094909727244031200263750456007438488421750825723467179297406847709847461170479006757489578690602032378724489697225258337044247937558185574376680135588617926336768377662821125949737886981027188939684926758087208498410457060479477910802528552299687659940343228656054374009089775700850124180873679080795508119052864718083514328085618366096574632066767913254382173793419997151782065206347259272186442410588677869794973929269784536164449284961759804321734337725175359662357206097811397030730736362986881953614073073612901329760354348985016694366654312151657013839224557821440229957422106218639360803429527118502516346105225378388652956918525264694045527527067122461824561558949678849927918923048832053594059483161554869311507182526361924653587057634761223074747445826893007148594339604700250876645767274991285949465635167270691976055688356207573488424032342968408708342980786218335251733188040174115439328267978961710309338409176976684366336070952753906162086348689853579978807225538243794499102125014281364978445238576233683911064809573955618294361434711507134352832471194405100389814253118295227266393695055072353235475815736672967548650072910196952152441213554406960683697371193915810270321267058510371801461142619275872445826170850685063976857127987643640050921802699635546918771158732955220556219971201678957369635859678581269292422677132711683873963196815903248097269131844097901055260884623169343548776899531311903991877872127932004812968544552423941900021994943760421621247300244460027100718546132006628557115342188086905336040979274444774081613350613782075401170827815153800358737039271958120240531370543271218613514835924164612314925004886472738417919946016399517297815633664374459288259153480402980622268394048155973960693333355163543437070985632855332905372817959670217456093686250861559107849681306015526822320817814533483753034202387370118985722948529501760729152062173406767826168036867686867211762263635854926489463142474596004681397871974774807750610196997952459270365937702215115310657889758094577558986248137674979086786398454199154101525972101457681129850048291903902394389832337883453100887413600850516068032926402224066344681562216877087953864166806141223019607314982784331543227761589331180765109055481584534884040014200858687358451254930488258792721069747524149969162938194399690946670673434342419228566494761536415192352668261294510274358401464937003298853328865954696941529542089409901086997640515022124395344153229131210163526706932367399351377984921349188612866323324123853776519026424886713016982838786152854653228985297768232501860348407321432855475989692478871590383389416949521273881583078732063459335476608332707836482100932193329271905592772917500916908606488853137129554357288480840011752054715714552240733109249490129225785446148092709049230071273592373143669393413841587779177635193604613747637562912604542694495346975339650001395700216954617994025789456415595641249776055457460239917866588513081020500030867416611127476949897038764302852526751509803180657045162462402091059617412597222099992818025837422340032901620086333797403266518601341623436446092551924870987298382095070578203794710659585581887608567223867590670515638207876448282916040531317644270604991665816939258782276148563143669761225362912994938011755688152975980327552333358037125666906128290950202200437393898469745780354246835394193746891251106388934155683964875015244770012734852945621116546444923628909254072836193546208358364457357698638395956236605499450392867063622354247170999550824049778540042746350102270729618910763555134076146563734960465235978543798658366340660767983410550275421956552981242893329340978884977942932644596063982998453555822727664733630635386468892009595110079192736022287580139196454778266984769482219401243450170971012704688051576499201646405179510603877810241646125539878789755720984527991736584981671651898217055872275875438466617737136248424705795931833298394856273135671335777870547058430154026851080181470226734509840381462532336136643354899137865020177698794355137524871506184908721550852215968195596633877845409915771845516459180617314278523673291724231690613085328925162984663367345964556997522536256685456682206217692703233815232160740279452361730569353209761582585337754639978947719224722388136523450303675519889741229087018913541387831457085705828075063076568498522229266139790218762881062483401008445026025413247527552649643910876759922469387529445620855508561415923832112950977130006869685279175135961426977843674431748903528694657137561505383460237321392163957817268032943236764839573948857914540208801697048029407349060352885718029499303035275891828178969408351568592906512172449606914597848438594989168947905209801452484385669602871763956728700634456291910145777107675927894999117579047929434420215320324024509080264483091658102092039896690581990740498636719820693362043340204259526038765635254217623652769532052866409414264464199548707461713172792420032113860744872306908384657708662858334232369494356760749154122256323213435289090376657163492386105076679159775144557292424102639104017571173188218876766708626175535854843736264732487561161512794366464282116146409120146306756571372272035020162781999022242863800775237567633014966690447658226927474096537809586056741229527052478406321947918213628464883470999256193021884004309571908867394013449728891847917852986530644228090185877292948369608020290575265197632679358634939645262842844062237952129360500237071805241039561584675046253531890559915197920855587462875982364949070650250485089688527588701099591029588116495710177147815246905671911127125699902611580498622758523875527301529500829790968540404449228693156214321346294246726049877797054691145906853723615662825752703249563645770336629904705050875619342961194245638947788750902788177241089923694483875265738680592511362621879151830401471648390581241775049309607873741482941702439547334895020408260993648900730961544954453605795211940547972062665455412294461177834155061252651204315200255204136273583052166887609073476336607493831630561529912789993827307642376009622193258468050405245820975692980590645164174930459289866966438882603048028322045467149527382181829800647355526822120471569322670678721779350555817678334933751277335180909533255835034296349024905951547287702588738125088345441944596523530847214156230778469634387258234250538866070773388884795038783051778768019072428702561374925606209878262800935047028208685959805713985647162582481305924785081244615423134516949217228921139768680880173684647778689672143443748385712293490179649182794447763608782953940808765456689119149249710398182655657582750811222664502347512631477418402749804245197066197736404223400932670514409193155319596566675414662766522448310268955569673023234116813863760497877390740424551921947664981201454121925402472584403975966091311762425724818116783212650399577030922205002404791207790424085596783598038889502117384875378203795022133400609620503856591937029390883534653454540390377032982038945710110707134035953799410688790074677680757434699307431965349538244946235962415187756463022695098102816451572668013217054695199666208991035046901112814370480836774367975631455218951645855737262889043529157984739068020575587757545160311644185509568530570281548385853172433177726014361955686577670414121259868514607776841945911215565628425588174015707837266968018728136184092786078923682609781918081133356244261641342036358439433324270108163576316351546166365703071856321747258564060050243473083945159945809960541967465321583657471231990609840986642069230539979866575447347373212461354639783900206599821580215434025809299415821098275682156892626012034864983527130986827872059703160178414975034148209671916949299917486536484254111821933930678116856292863151040323080770341985930755143909173824775949585890160812786830513859640555161141707080003898986992628686174506227613015159492938553373040254069449538284594042877620688845773181029486608738237832622448522838189491129339094866146191020604967789623715808834805622617249488748462858416843124137173232341820153584414173287656857761612314602231913683942552374078887395597884649165106651762684639815829655605817734492148709894463504586962041081751865569654437441169736316438954052466324255700895428516729724498537286863228495738329296737313150051755587359899719470925819190390365373521272209968508227925295291866248725995209960007467922839390247626846092452592254086570425099020159387659445985005423616562510077886580967506505398615014813826537538077553912644328426493820318427096209122914126488762313141328715705661491426309483018175236511299186581195551212423694256566732167631801247745572872698053382332774453260512944629887173601257925222419849257713725737830377074590974390815148429995082844564780944644073864582390678882227698515371791073832138345081927620153332134078340923990681775972814636339549324516444730964494527788380834165835170555906325004866426513711000417156070181616440328004836596295234324526002211938714754210937772324526069407926670232500080354334317452189479259045280314674161711098900953255749606786396814176130205347887829926882857645311815300497188386625136882764870195279610311601896916510133776389164804729222753017402033648209414305008308088961751375148046745147328013111899180627428360460182007930825024466172397449079185736545094765620999881875942462798043507879245184039338714291206068760082630684289483895507233474747570623049634916844881754941892929460333735918848476422789895936858194575652969018855761900376952086624059120368598956135175459225306812876602090267710133237005760920760886656145421735308195771430010030752504022143906634211030011427534431399799818854961967577927304699285805450239789849409168679819022842221568950828751174107035977497104593927892969615376380375482435764651684066475712063867587862096549144554856849643421737555634035949797572532172829170904275977662831748307904835284299686155150091742243347948072006259633328290678852553337841444289860638958569118030501372301345530048683431744583226290351052849366132395934435616790060966041898228411083711917855617307738033366032625850925893137938209959192318466422820678775735081080961283652598715507957931321794255030129771093609091825788085950422708609777675151445842276164214464576453563763083380948033996194709280434927980010558957450308586379941566147380299788884020578378028904900027693784150285432662425057036533923433239676771086334686405928682608476658950884426475073108332451261297860183051825106148834330737195950633607839600041685947520979098890732785770469429920957018972492208225574815427222843657609641418057460835444955480998067890016621197928874306728714236093216432182566544620606985749132937282825240284886643521236687053565284199109370594492501190899597405102716147232039406499403555699690066265890808205274415978997874020350727811061372598461338884301268414122817464458467600312711157026282770881917310707755518685399088472347222376043662126061657127761618528945848640230954896761826334914221380080718217887222950347092648842224686624544292935938984557258940925104837624900667355358251952803138774133637783997673105456460566188178689061179617794271850052234440307410055841658888869388519910727403646372692847213485514328779025216927604884229581088277165071136658990782974165839728294261571459820267756354215220857591409132195577303078891916563937611802201834273935857217268707705647077962733510257080600608259113294347690817519035199266894045206323887608976474584227448779904069788164442597403521886874252603560622130312085742525845527091349096951888267025509438678301579146079067943672123134877220729058274184472830819471339624707659117118959686657382517447670202954102781811001418408255200437532175470901917816910998733907558862573970777062403869315416683876180387693559772778647882129289013310265853121018799526481731134578616514513941806555521480102851133353047367948367349146181829095704525901021075792420044324319979049945872778483425333839773852332810050312370523551884768564882070436766937852185143517991207883642262258020079226336988567509360632391547053203732141136539728848672389894331790310938902361763047541765436028142002707105529000123859522315374884536648319494696756022303565573550449602757631130712759971907657304615799075624738257528345791491097053068469231043371069207568473827676935428393313648564679964455927021515244735980826142502791978560762615965784660167149005904070322290977654448194045028748272629533806385150871155617815830440553102567674617858900959287744725436837313757697749866364931988569628056255265349496696805116045944737622736553211964448488970673298162795921596730429865182127679203729414475264825866525368148498926983370401746599002862980272676175304658474519787744756535735970245323280722065740837892268248414132191122754697881043746374000013583088155906317032361978984730924977814031008884500301146493859604515177370625896143703381596590024334237497959849816422553880424253556130494616727931231755228007394886461323748719433985234144505083115874537083736345697153243988875408317290766104038972069083945927251231962933251402920172814284658625917883330941746296061295038850045390912387864737023786526640898173296687088903370201660770234729471960737209361423734138504955039426211232172164526842827077149828579421515816526741339689040649569455439380238405216396760975318317241940451962562420476324738301966184617154932969548505767188803984807759552822774618278654252538704815665182095917970474306149797558729886709611122505166520871590254214181797133322189058448679267459572190806056735347545511702860606190504938317695471125995631371731952891435447969530281859621544145661819167410160005778030305395779507947673646068612876226442458970956122476660546462225106550775841282881471794526405119497420984210033527340415154064366668060524093207900583105962310914447442806843280740662898382907083229385995378437534044881106070150132060286043047084976248500947368381330983676407952986395685849063914308592980696721641323240708746739945244762038179981676686461226349544350805202404575084227361711556298916364828535574032742479682974646711792864309536401056078737031519565639427452506872248038578880885329075893673288272160438682194556470657819878100428185265003350409229630098859816605930888964686437463656749427806442147784610742649873744731507250859649957776807774479566209286982017036080619444231678612040278793122601934208955803577440351598302996554614413964598813809849224964655128057479052796773717664560000489282889543095528228480478616677379104265259539013686476072236323129244882434542495371162534007999200047016323265695428730418151448573530321344317523223752551560477601901554584702198787780565603287619220092502064387623645410497463600081598117482880036149894359284189245461246751955688830567920972352872978004359458450795051631602424198298024583887930591329061185989831991111506893553393868203356723271153935174550107585325703535999518431958976259152915029106115576448307375943912385568842551453773898405350112100969714138013167730692095365886715262406251178331626407471747538162373403384455514897547708139991740877769254074154850451952456872138810196184897856332695613241061534100617791086995539560780125908261489133142494950429335783236231263504051857994329971217567596618024831533977390196864033828633056372355937871706180944531620165650594865048091361201113897078369742878260405151859657603602810057473046118404169284712523126583233752203759757065988678679981548176993894514095700292074319796298739307415110883063590596871803484482646837803438443769762974450717735829561230001559820111900793636192908856356458367369235126872038262467862384537725906397155042714117607074009336236030839254597441073779730808146561264997620109224247364389351704889450310299555496666104273259839691572489548551739694764195793794478367958942786921629921228241309836112013770561277015503901749589696980792967737174545608554346860319654243602740885530822896400593814639256707049962229970635195006801957404550961127067473668485823040853401059235794236433868325231737448985817799373873880726277044862843795101788341118194658871925770805413553951150035379279028266128503378257481000905422326737664350785019931552074832760867357004642398191591296419381615548907579143299140275279334542095237507864780124399854909023449945935063837150938197780885353931389427378760814829507579561732871400360188253589598467145638578175629360628518541959502967148291454575520332488884952915315317109295315434320523219623402926095089352686873376711700684473305214981353154083919871680044291493177305375315674978867645473045128532638672511459016235447194864687167436292697034710474804530220192311290048661800278037481689503705028210866914448321033374433911478392769461161622943759159154765214669514038880323320819092757826189442469046839928663073464415701035827441717146077950664380892195822556321126807594022858720379080810830900121975926138345515398432391758935459641444841438456875839002443808657176064102443293775615187571363783573996593239942490998138964002946150385519912199824886316799448575444450940954736557514157413627755857033067217249835411233749845280761761800036564204404085538672710516053953786157095664793166218854350920194681429262317031693278275609797043940816052049647867589352553441032274831287177671980341608611315434447116685350133861152245096310866899360856738280303245540771243057179420038638957786278440234559475168448732615269046674281624295279391782739168978510314860243903254530485625326345529300868808364128512642482866522109252486087472551493273732244824028478321967005420782676427614499021055838746998873397516527114447769550568629934192076829589677810292687605338024400834811121388696577640901409727051842308987387898900511721930898058669623455485139630372565379495961881068082216306174216101342667273176175402901230152531663877503863581363218183846397740400059239538534375347747711210913378681756666765820092055444811491675211966069922693230626622103666453467834640915514010140073676860136486699891967765804020557323309497273692201069374505796735017003943623515706864962939705228357523671824497214260301736364212637040436053720994817121638121032306581536442559098650916504424152141422051819994537251999036028660832802542863371826871130206721990159962049233555829496734099822628228338421758703378909043684181312577907640230108507766725264941119772094409824635674621198383282796124776832813844930709422592620377540625732343038883873725917378740754606369582279215874813626346598543955527188149254026025187406944154768754029242744264860532277206213314003380037427517404714103243959704200225229082369123763576861659419840507191254763822921316989292745620850638550969340583625412773464404811816481396590914002604926717932342121502244946464863202775749739745555952406683864474549103529264763216158777918867559937668723728421002493271279987265240859176142951788324112054378697895316495938108574379000428471315305472099109118557325193201983366461553495644785242679903540112654072379898791506881780541104194110250864372268547908995915951238765301593032681152238096656119666099110884152633377547519289937486088785408528749216720581608560091068939211149372275615030938372798940629353660560225511851220516009887554472686680258503061395896957758603268008007994991220252492640400274951505418839821045954472796893181577897545981078170313826296880841885502751593557544306392487001805310103932725672223953578081576521501838725804085723869910902743825103944399952134169508056678861912895512769243538281535065522792833992677967049612478854896416197065797582112950352631111709964250226938051712171409884776790972012632602175814229137490477333390321785299203078228563971343765970804563637896545238541382373830604796551430513708702389714180595938763839003132127156684734373604374444510286866903187992583112247905572156912898374921647577795766904710406484158180056218388283486765823606459850274888699409553311173691136931492024072130268842593646066855178746029628780171863848339833918283343881595365063030745568567075780626096348680157109593194622762463371002293061086482906421936895486522834681233253938852856754616712381514217155434871607277818638849970768385452614978382148782670260254335803903109668649837055747206962700251849199662814473293371905275012040123666750635465933144331150302959234687470975267638622011939214956536372010997964861195019410123150530890993783827502628781752658829554664582136601456034931391639005009738131382072295334702794607321474713951050256522291073272555028558725840579036723893890644006320708781184946257300308051645225220362867266500506550021824286827778055097298464283884640318428699462359526627009199213040291415531660493214458131642171024988901412702743343485147626912155500836661102013518807891036183214200776520241361299104845354723765583864408398451683388724720168490126012799434983806498159790697018479100469673053001315459020584256880704295425235517165213773126869566140988567803846546759963396262354147492566650840449674439808153948100167860745501067915018139224577730122012241245722621392635540612468240393810930101492967607573583713429899279290274687004706803506124004959562453639264488135416179923577207828566912304439607628948915409343833092797188737689692749139028974719638225045121358515926733575021831448833970535518118944386042592380330012506080507781519820682345372881787647422633741259067458786279882391744960819861101845069172036198769401489016551190536435175774309052390961718538970932791410646277865627596378834523062525412001238862833794458159624477371254052330757628944601867106146603351845705652063630001740931028391991686167927010792403073752032406532298681463864184371557869312582286249701584191963590429127787072528146265234935704556026370062006942445340290366507844209971823893568613571492903960713478177534172641793171360327192064709651994458962541024732235974304689717601385136402884002082657340580529568081128884517466181788061134864512142081902746103159718464773666777047571812539615050396978265551530488043353296266416761797274871296392814904495046318436341539317819033500012131152736791321249089660345489864511124209092291765512056518401790913003626739797547351112174936746302684946686473257093721427641815648317505527762117253850432334558895285371934499550979021584727524427944538922574792544104856265642669847587224699786964705446339725625370574946363430202460212933788464360475347670737613504424428246955277142874846819042960426898874408861583604972933307187582573091736579198106411791326256627507645351286665124822874592981876873619977438418239988467782645651200890119155431723131773340898089834391295006779341013348725768642118193381844561763513539203327210892111845887057972707780953350256516421151142566828102930291153595530495646349275694056767240760637149451283626075435879788232352799897932445362124712261765048509480171458720312265467879949634678418283078521429661391545978894643040146796584764887125003558651702005241828501854078306126109861505827743549580854573646550053235250348866494433854465660071238453873838560678846707826294859072879365465941677156896419310616907796139632840532001028196306212506616884890108280259292447371769428836476581060323255957423859740626324994554129392678298562704605066647465257160645880836598716325773545528875163548248579444265169479470497231448434960968867282049820166364500293400214155879354327281827259056004601744296902280456609689431903033141132089594446515382958094581489779830283211443247060389465377182041775180072925720539075007181449003623935000936113334411902236840770229578867779470678926142014441559977676626340276313988710925714956375621103375431278115887730794216320444435214457631770804318233300928767636646492888065054706860042472457982356962399932205247158011144722629084950915178639805931957716101304363960326465062295895912854237197116640142077708942227147374836322245403833352509257716940284702247688930433333060515480115707655647963361819230304907301537555658708235124177177002708508641201133967739752208741301525064669371379896705748113814436625247883257533526585137277854261614084562386251255755150708736487668277152956888707129907145381283425642125959947345341211655966188083384517662565428269065745061405304641980607106587872124513454329069170544724128206327154372382598114410756940462182365542285704057298040411785327013520196361357121775715984230996888165600239673115720325717037206663830230044343109426933385838021170114019492093719651040906917410607026458395882005876580506233239464363426809010482644366231109236862142026183440798533985327088509587203390438727724852510715586700822257494212899018781216895135429123757194795601030349469193132692035530037958008281499995926818588279904574667473738028995997890989428096881040367715514891675504954678863676973764356648144623275614928391491594300943184367673855802629629767730557054706192270390821266072441408337844575417157873418396333744113101001534689891725373057402748319755636050988298349214095555818426725843286020484708627420062669967420678283852917124611758843885873692137234662892907551263446324345587262394546054550958416100681418241749689208051750143740567718676888770929188784175821775103183531466885814745257469801883704792741877850958491867598070068423264892929801542583278271350310940622922295088018961984852210345279758796276459556155250543097378268140661080168674335819959877301594322357594992172693787104362398778832217236440737483137912718685125233539344449795393161780938594425146607049294619932917765880127534308623868824168088226047362599911337587419875939144367508913779784714725136630050743964682682651704184008548289739614552619264127643876981272601066900272152040900994444411210899109381411654403243739790162827223350493639793058797748230806852028139468183521430593628679160134035190694913163578359078344889643911730249086970717997870184631291409286992361497932019836991520355754981705944131777772014246360484637209587436773537590384133287412234298562965039174640043030640006905990232466174900455549887337437240208815538920320456248195958230707830441538332227497197367700435765995157661320149990786247942581259512540725635694091832166081528326998106347551923128619594794814477827126165034249922834654794329200291590042512485253826194909774386834574654989837297023997937565129831298859991239169119888745283718708302493236267376247731232736327358565293087607760815817819943121739578270953869939102618168729406568471305105059304221770964320107907820065792571371234000544260867839356397903271473112536070486024828805102618897472760902345642493329811739352348035507130979687886708412149018952623680314714598013269179731061668560219690595694272237510212691787406870515236460424344778881858849770309126823954451763709980107517866949262709664575505460302062257141410907871273088524628101328795112925860730415253404762261766704596615209089540026847851213154583561211814578952385999812680704509991424358243222925436019754726054963770296400162365206579389628023885660774499939322375044111986757639226883711351051058015027074070042952496445588217193462294140208742549787779032970643033311159678202853307155903288287526001961162079178488489143484040220825353721193013424326062847056198734809054020001198000733540742415124766529008250389854165592945766279292479343878375815891681643987844132861453688874910392722730601762084289254706846063822223120430968503319913614427167362481481762826473931462162562743202777095266015539319796283323291113001690531768270415991135548872890584545065745578821045779081718232500635952376609296270629504651248401128252780236889338002422577583512221386825938503508516571776536434538934247482980389359876040633667588505254784116331339483739416013229382543143252393275700374082022331574634670394040279718765277400697657536388399478664321796697172528235610641117270799875740739095828870515604544975480678052940672546230907361558310305524940095345875266262620792770463322048275412247940711496183155385105162780147099740018307934583584351150942651240854552599430320032498691802858634640994932813376103891974114153855383085940162275375955379774985353554956195295566987512198724584112014169309272599698575785218268565348086070414139198344048617233205408248979094205927164031367959389118657871284058067668333604281326160090797147238279785483367958113505874784112499206269755107849328573575770392765961224018858871870315161253386571226865135185615046556268630386164125284980662137731259324954507133738343144684449401384105028554092215792368184808956794824352559404707518919244332750980729317154709310719002286483196527396827479190070741216083560824715473575916850627320088749424700317973534704258071168463230472465619269031305322220803239625323048841587410579616044157319927856133048785336577471181884231563770034265582183874799304237311432110147095972881506741102722634375351947063959595724482839777296115649458409110261721378818661385695160512702289573661536572786460952735450901353888065135561507666229553460328736200430191616107748994145897560312507257116708820921219980438855918142621363995546399265869737715562593359880492358806761488328998549405213789073374494359080071022652969893881920488453678832645404211339459302513019857401648620866516509714122807412066165669627294647127013723283255191085952209819236014147665574891972916091062259417891173680741417797645461198273472505788809560413674268209990548087583394831102877990541863030938056137925369866314367751111503243704157262682603916750619632852327106628497814966280397134992609781725148724445808932845309445716306804371900465459716353826145618954408791631429718241655234262350796926321574585158794393534876411620783550508303624436676531754736042711251859692131478665315437599768880153226050513580056234886211192209082496717301518574154347006639180142474964948835539859593456573829356832025239168953584248772081684329769232793863940246074980240338537165116050072124886523887985912784352992454080449802890482273739886021176522318048291931026383785857709599899834747856945195289593641319245773438318533109022831110266629804740790366069775398672384366966216347005989917747125070092216411050432258707441540933886588182138549067055265080697016658209522905451305567313256333250971187837247388270695035269871204437400598752567765410285814928666519986861107003182800668562881868949520479570126472791515161983485870629879620997762583010709152540138932709708241720582809059053847836621265305419943890803955737496335597263560596396648003836679508712057861200718324931343209878596418581166326882440834991774263076047561742140143252570128020925545529766875492128403752840580659472259912106839167136098470109460663153935520503939072288590169147672737430485366822325960256846129164911803553696107813475216871895067437119783611349857600836107158031304617644423008189939930970417563308300966579584900816076258623209571785406805800434519151373326711793571195376001195020429268501395751635252386069176184988451820087241786793276208148695352367534300079847695301479712865060969478128640795798960110436549716789937039802512941164645680180349264241303960037584250925111111788179191848015104495656124331756799224065276576266869011908140430738058101355830888682395089338876615261127464160201349700622700204307175368560122553532152424861493111597008913757157417281404759887604804060114954973992509221463363552307952293992181761949355253699504684580097212057195215002084838310124562856457289800993240446688260040338284336792191172976558673142304284458221503856214099775451836889575357092272861281353585182803811525479239610690691242034001757244838548042436935234904276213043053217409692572413144728567474010326808412097977804935926111389818026326455563547006450660005129604856776531733428329218059845266867126950638650300099740922277036809884677851062414323428690731688745386249674064491959156542080370711792789741652888157457552030240506619014936065542226586931464662365196269954226068488487258673628203455374230722695100667830109625309652917537762819305460563729968125501116500998981226490192227320753490509091602740034140810983783689342944617657467375157236720554198168701365379617862668929682498277057072898803004637953846849199383288792086108557999561220755868356861421914130872664787470659906970455295334016091982352877046669120567929677602155019755204017289020980611743847918093661454530987928337273866639499268753226542454373669945123282301244048919921185635854506334126201290660455972947578775581075622336418397292841586217786046792232691848281835526664187435115283922215244287394786099009005318168754087635532083082988826184315699514943923449592455240299589531045087607033428224621290330220456442242836165226292547658268224861068683438072556737803907833369201942355232778325488529922955786726637289986435827696640146589964547662379261010315071195416009368012507563129384225465617968556898515296648210949597892930666051292546753262227908499792144950707838405762423162138276694399534310832106292741584349818448273501357182116615557415528615992527817742590086355236257599831861960893463334613360413884696532732189043335657158218849476688312544668540168476470594440123735869225906128504455252241436163230161389721386261912272258253928939669137312847718881075972922825949005057424641132232259112546099784787765106386613670326284142631743821002975192169106624342806944317941619703101885736022562765741514476501953296332314679802352886221462738751376573644698198149474541654204886294098284238629209409290688378628783851423964798407393394595171924617831191830650173332895110460986161449359406739055941934013199408365490924487654641242055428991247470778895978800068269678247551051463068730530842843461668799634900726524152580363897908629067620869087752948282942013294950144014438069834469908289350435529803437122882278262728405651024845636867295611993903866705501433837829127017237465478444029119500060111267244094985151505439929952602960781020635048831603436350658229719442751807829541216651594944523501905860326119976399171691153897804908829603960851396656830178693600118586383703429471206498721913071979387045451978322946451019379918274915506649354819471508029892061324291484356841014629462784109498348906396254349293409066031385177165299705133456979888174679650220231157962334674087468508696819447782267564629756325131397254052473177389874703897783683683701075917055632722552731395479227926876068371801781898955259866592706192687658423896554404393480399178493498423129506267908038919709531127377888798496531852646701816633575403479749464227568658575030712759464724729222188302723226489953972383450302946076739152409747807432212311106336982453104444655127908570858529195776629150983200524477546785290423731864541094998991267819178802476033164852908035366915854729055865072156209687754288710226667504714392986019775305649202962425225044988798760447848892346804218514489439260902578095729354542559591729927820116402963012238357452233138480060637454644650850908682091874855966263095815631170757110773362242405292900711242517978700544782268348378627141863415198229643839248265147215049420713918192932230424560469379214605738910785002794681228305303264791732233908775738478776139175227805345690420166750113931971359397411514254330085980487539418809800459710005358998370756975514902971321983695315959188468736408787541695538188492731796220793863033548441010281145510992246952041096087223460542401692703929740842028912462316016469543756863134417124024205694445603301446615161531807063489106342973992836708125069651571662290032207489149345510212720489996111181010903263322395666890761674636482833118019925587594407152939699567629652847073233778327536083056691866516072965165847955225396171020591062085901241713009128771043186530616913207121549643544526075322145595166269598026887291596351213521208108023880463732054491382619881663959438912764383224101188825475000802774572111684391688414061218948743103810835027085084511519093769310677864563412156944665343501900079806019869664268829353355268389471954677002565307693338636435853999929396191639139251564851239737618290534859094928744110947122853743099815586676687214742686668339948184906406223713442527813300019615369737567868000478930975723014009537391240385472574045188569315333974110057936920608608380540160894442894854359658709132014751168766000118085677656471056253567045641222565904991173086089068970130058123180001736565107270651307968657290625719905292004035136346378576236258710768758631107423284249689723732650827514770237638750243798968835563225858401639537588351271153942434167640272084893695181582407450749934938775300345604043778749543452360470524168142913430614160749106210958513615796795649012005449230455412223771852359924445467711428439525934764971582713322778532309257302730993555114379157610471638212419203874977168162364865021374761987783602802924917820059611671156984725278508999631676717957010475137924745720922224649221558659103205209036627651344620121822933168112020133165579836207772038216502647993531686485709323867772737257984033485650376602929269902780187398253787222791185569559302584512208214061674232250684101885117078084819208268821872154729283505280661876809087040658990851123380975379943694506849292907987043920362090283916155806328974709607298737777642967699345671803312166527077544159289885715092435295102053904070040373251531232509641280184821061244537827390950724091692543257912932586895949477532667287768900026730895869832208790096830714801118359466063554304584924984559501118015359838428064582608647308482629026224008467232752254752484854374573481675112430093233108020764474275091303478927727068632437983077423807929960511280920783247891933212489906598689666079263894806358361210483337796529308462804977124006657656002274249531287307628452407567393233371804409881394764776672254746928452785125972269887326948794253819409119779233029126629457652360268679311435180408530504311771185081912376701615808633788031537109185515372816300623828530925801111678751383536800546978995656997935566537203334140550396515787325906234859706932922389394677252489728567605070818590909453317858342090038329639336444434625502395908050858046386769075290933336237231608642431367599353712404618172972650092319557291942572367999758407607839366871901792985090168912740311972229388216926831796677133161717159237883255481415859856193252484140268746913666908306341918804661955790227513506135371430716866149294396997759884037490183396403150876846326629580344996192194969844178783034231209097684264999392690427501393024672169593028603812444633753670725163008853196818216546703446567954234087168727650867704287740771246422553387682202240498669819565343639326160391769142966885782073542748966083964095180712863011339262143753361751971581983009541676139885614133069036497344768635702929176401474519716701278202975611815818670335776505076987565786295061038980048305918774809935525539954295689169677192273191555108945328879106329105494768484384483618790416618166563937741661486666261210676713182445081449298036970910049510522075719155505667190587037471856758282452470807511882364867916700157673370655807928920505206367979973618862141274290736496182534943902230187936266720985938145565426717271637912282307952588788057119153803672747304829180410272312270494217409043646891582150433072776153985961537857372674251176268703495550170587888021702258437662801959879881948658410454838826062792619830537561941752047045656664747019630674159236439604455675984296254436745951281806952778531382686047872993841949649330453448964673193616680638143351373145034874488675110812759590020368791677929139164709762193269799929466357479241927164044237065880072426102020340899437843430171504484264814901943617521341326188750335567512130607760431772472304135274042554339069666613021550502872363703572974092723444321338777371349533894881768109980602731518569931341669392186940630407065768461487409466137029481955968308723510323581547524565696019086061347561881581188558589083061489020799513846228023233180922726871993535189981181792544417122872073099080996286674254116038835458954487882723124032326112953853737845024389290996772079899862621296937262019258126449763239039634390711645504304311278316675348686114993600588629799754088124060995995306857018077829229198479689746908879433725820455209108520833648326695396990735323299287932991004585706661566449641911234168883211636293272811964113201556322850069092932121338887723855433438687672148912218308067244552110498571388394071472663547426793490062862504366873360825998321557745375747153757807791137642574254265458764302798863227546343360261032172394670803205950157489354694113429611730966685217379400725117238604876137803594089974444464239866467374254694054911613728848114529339003611843271344924883365487196164541121323369787827109442691812354307771216022348029530502946289993097502145353043229530755006786216846779165070493536870067753876225553844253995510945747448351651002332203398201247523437593547942221205900993009653520499998521694338784376604226881506928704279096543766046290104782970538931226583008542059361461251865997429584409759189044116415188508818676782902409468673543597120514407882629263052753420989995850110913212202967939483767369909583166313044469604316417608251086478221130496531597130381740162127037181099194440746525500588485691651908654402532715052213201773040077918222894265540969014691347808694542029086594080447361713676930603299025988782111111408219633758542641286533146561336924250109202737220032855808328492132440395107763832779376780944577906976055437723591104444911889695485484865638675112627590694367996053223787988590159128321549434177368614192132555279797855424012206371833846023495936799250192525061967914294807332878660560998057641886019759859840646399658904862045913853763822158402140074712771565428712298994164769868372122752903793971099096220005094596975897706101291126340433012222125489870761235973613027135985903273617158126231367337370425086539729246637986012627203625561084724144655137034419703316669921786059706688970032970384171943149970666463932596792671633835848746875866007131822830174194856385098869322951692614805377586014715054978683551151299424871067063316518889309119530650926549768378200338282157882685663541118675235889669891087992852892584485618048926784825726317641592278736717337295550216620603838031095947646214643635140804158468120082807542572081345536973441867245847638609743795381637236540300620084503804129721994738725502518960519598883890488502261200859072548884705906058224359242899940712555001880169597606488505374584918829284896921856259970274262731943347806947392551229777929169544492232634661009040416015847470274646721179689967844193663521332669234719775509605025837793335841757363524226694960352633998253884855395612381684607466777737771603149880505692358538838793830690563788148752969523162099202412583626947688487285745256522333008933732651340306328339573644386731294629206366502956459690288563071877060895381992564415603881587661191252478759963129467164650101924801050307856950354285818010950139646781400713655211594587469241683389139822338193548349665888544357510982851569259948139501238970883068401341098789270153827807761538940250115604644902666640798222705165729670827703271769626330254954260875529600302233127249056987959732650590663732101820346033052354098911778150525297402712057451958200166973991294209801738127928402315207402102390465347771730713060687256693279746717784600561975831857795368610458114844235635718783042325885871348912451106991654546014330787676925158136673577079315488445137108206420129937073610422529944522713391998005575987257092848895797579365611451628749567240725327543642071129688287431728228561617491879290116843333759738746845394083796743912478610794933803121003697894530637745374989089660439210684379206618131770008164019910032504279314293062084374239947338469991516162863837333612437084142483629060640600879019348969529222010187005502030259990362135080096979008381556910362819361229179090512340462143945189099045710790193518105953397572975163082862687029752737596174402402952730810174554367441944564844337870316655846367769868538564217690668055258865497471624911596092674732807444834915636904601021276753285102436582059044478261005174068174958396819253524218589939800430309704535278839064241321168842860224687957435275435520541624925588465603928849280697014803479540376063978877301584071478466288820452782201509456570713839897156776941517946449478946078107423663644145256473272111896470321548271556013756305430986180118637716630912506741919067845581674251817969644018359486893005454344493975526154885236852503884382268194538912218860081969234893013754443081596811961577437027475400821635001958871231057232567830469672511302373280339655864313356711128241862061720147097626813157691313621556672880502029975674282786511436436367051830920589268121421589894051747357604095323678298922390186596565934007127715186366792926310743961071858503208584291867144393195636700803242529293689200098180090224742316458056791276088447509551383821389919619676437095816779627144139178863672775149944562588224549239785033565837509487957942902943103488897395393285242299394806283966538908110442623551201183957489469460727637827030470917315743847234116382519666617416032367903033271012801933217561060551640008930816042362955301453738649132215763282056923854314065916730477848870087456839536703840500942998498187643533032761881719862156503766588875266605256231167890629810939678261618534474225640431981368077375437730574234570813310474286819419986446678452252417046099629080190474376930523465414965746020663574031665867318147301970142583660444634630612582801916367923841945682810830214054349073245124486465809435366296951157288370108452525590735839869174983229554505743572003538277102514926859152750555648485194352950287825460500565716833920745129391652277735321928819326254220280624838443152030468745144072903011284388387071221371806367361962259244543540079467145871945150986849316748865946207775494489886823353743027419643172768151659539048965404688574945359174881295361966551191731968227704755455549072075332319768610520203262068448844656960408719698887579912643834919735411850473628101247601777415069026819888901781196409899419890940855212122907409966235325220495947108610716501202206654929623342013779910445110795280046874029002428797158228702880855129216985295229943589483233153618212138164102749567048536923049813859938209902136255930396007439748845825781874483054008527340767884018285499515481520130617096855299126568351684744273365859137246176938935824323589933466178004484227424112205263104672343307317005582641164641272726664435482948444607750249615609568672293488715850106015370782024528599397984180765368243573083949076068562511534131561820163621576029278563690592956462314371801594089110687612771520138979539173214605820641582785351520451794581079999064935424313035431769954248059676501321447788264025661613465352485242528416366354831284565846796099768514665478256655523836895128639694508524471585063718422913238769189961721196194655349184002335128231827890082378029762647135760438379463605548277664165707839529068910023399469374163531684333027890321244598381909868424589089950517171513506735246437737436893730630330674438209529997779061306478108239355317379243906931851432583042321206549476929380927133501364575073055126720594814873197244251667439140122431077751909132105992274418414469538063216421435590556098961189672168263649914513150026280606704404290523002758919975643735300662732511274234876942168528332073716388820004242491764869650391309154677028008999138519791979461652964146380070921172001428865268542017313039074758345693907540227716064611679508342015017384835938793252479794726599340669066188811888252007613418629348493689098478821293095312643372108030318034119685512559755312422190345558166041391309806386360575284266184138458291959099650039199369938542742765287706428286428893568962002795702012411657187131456083188051693961232984461951838111156150173640546814108155425508527008569963052790876927235238847569524975660644615857363121360234783117024930576487709878729608571169930872467276666693177804229516241335513982387499665165014861424653845162706451621866803034673694547562024116318984224328691706993024575188011603573591579920708434994502291653579102076397747717744677419726440831342039387894676791342545596068220058309689622027023050323389688869256286768700736583778578623259220943117708320059264584903981628419731661629816323557732607153647230408394068019039009837384001236681927440045122480911270590705917576025979461249404522263475878998956498215789182740505873815383390378812817208250008202659578764831832166925647189626114336857573735588984550351564656476706711825286005177135885326098365545217640113004575158512579776124590377827588401656130874643131200816227062656349481353548450776453398753587142082562869694436889635554420385053160649200071636793241742177044360677801058411596003370645582551101349796587469944277820236099273983427605086399784667658722346593062867489311375413672683448796684538235936148546914182198885171146337760050913595157034513905414218848453527758631819521917893231238955096579837358552068672816302751218712635025631382402946515988067050042626194942811376458922573421548574087498236838337669385826401884823803288548568133621553803758445800041126078075477339879829562995559241095284006386986871641724480242558554761927377272094327867650575718462046422302624078268899881620709572059819125959038275602635355038191453769513789084313417388338400802199283532035725956138050218534014065274983954853511561511347991087212227029444820919314765915937642075823138607447032009017178804155917277620417427030659009197867776901005908768639511098971038889665542276751228792888189170557339607272819456947430448613710111753277931310712583575145850764683627667806305802420245430146334305376461971074705629628715813825766283666619589680770264069259514707439956555150480350304876943468300953548771933717775814947906265040282929087616154422832800883426607764113940068149983020734181386402395857650122391451076731413659499421722872543137099873730213018230349779718730456410589907726669875963023065363562663836097467380001536639935718084727782235046521576920201627882458156026608972931941851932401578834386797138072397711364031253495990448622942988982669392649778415074016465109938837267295923837559220698101984887335984641626731068148084581703995643540602616049040845653858422553657024677569175113215029791419283768595142552515025179100463196355364832867226646144162477365188763776770153816214948949246592489211428123212991075192034880483122165351253139911606285258305035035620116814003226142808510460127425224802182603385289083046232417956085589912088452656072177567122111832551142912488291237433547115490240582731247434308981474241047407784001701125998473568256567959248190044119788808473967719240234479070995284924855309236702600493265876216796576746079110104536218099871401878181739953798590481751877098275964379158879983220414311841875709009926611554945999780839306053164495948602568950853996597404697232333810843516592028772394973461082467128013650535784282979143223663999355850144370620513033385792368278085703670764274813745809132374217813960996545045099223988383472872108869243199238872202899200932066992680993262637277197729690797626607979176116748755002812883105946535525765633306589386258478021927605422434049084420196932277036330644161324572431572324440805610238193436559116741546020541777182325344045497412796669935785122479733580114345900824015445306047513412863349296435024522113751300287421579921906403308756859030554903435223780606724634221556925194924441179587102915046669808898671010463106196916306337343619637389339697745826397411013390245215773353583336026419882391486459874342665298081085632604449064296863826173989766640550853593720985933162965782148172176072035931384944388194217558363549563538470290247198859940964238719591228784669492318469002846210713357026929412220074906105773545963919284423295014256695017140993856913563564901398853032828865291474595078833122826439390071563106380632697216817553084182579136732141711961021164749423229178695981876795115684642853836500993441285090497410496019960200576938671294412396401005204500538667245922501638492069361236865702462286772648566701805066425652649936663285628090956956869897300053136137524960827620984553065950788102864584044589530297171205428340878026497511703564828274246733359750751879072833844524516900189911160541733643896353154340628784181038981798936571671666428721105656475123579633065014814280464808192864135703480845476278610667312797933852872278852814127888124917929141443466765884916517368540981538209858323451141151534460009751955766226648853183778419851955913519779814808521968503352920578564439637120255064024746173723439591322633018395998378218256437279748199344675405127261925717439311176693421825531562867758383037943400880012207728346668339653488861706315258068256153824261545201539337757579030238761014631311342470899830074095636187401173684179915434434327383404252551342807241731942829956292397326600818562559311636695841779311802221463048356412255314756993673438565845247194708741433649540978836859007122078395719606232645976914749425927800814708118281720534395516462071449830740835183606032792077859264904618923910594676270747931030046402049862714007884720989506559377988620188137126995893667750369105790170539487681000472358194768696809591979477491409566529317361101027262373475080042892913062372895926304271619856655081860066981098794921186838487772709420942665707157940457214800278951949812386836951330793703892658549308544692979950534223564112982253566253441501867201008691440603988962164643504967794811452814470399322407800679046136755416138614271078866633268818232303968985100098086576505769532095734392586840873146834497282225177566113461118538280928384268156176162092406582809614836522375237622348574055151195906354175177275578481490535988269990619841482946702236620032075496775739224260535378608874967534653086305583398377235161432890577774466166663595028891716467065810348175390049516336024493118630206050495730980057794480600177100585609913665620723617423795178249753475634018441893004754867555742961813114340950586528341899949355567497989076286802226249000972841644878960449705225533646824893162330194055547056998497139777283091454561174196161430168716681265519412428943355512145311393571047303288271024556142422862559439095865760469133073793407966633583420372820514618177624955707106421582838423257810385429919196139460923726996421318155801459095631869349836341852521047116816330769662059316396979114871422203906380120414375716551606055897196900045845009093118160877961869975717599275871251482982266549138608636392336455002134249414000385901510766476707998119140933419424062232129192786274445889252882795463349531746437139972469240607868235112843920672125495002626180069846721478912552470696735935039768531181430679118520859020278119366095158317179086691024590017164828391457751043790799947909103797764051304181271968778676587360831252855301824860768218873255597533969135426196855315213380578799466118222413071415591321652408810418867767196865895025458419094597299522775309834142817934506857996924652986721244922635652824223274419451188208738649760191391650949394579548412728659673807203606708156743812838068438550181454484600716901489225225034830553044032575176288682983001202841573922375117778563942982363854101343996214623486213835682044240888736698291083462259361421616154132897774459719024914788085584092382698064771322219181623594511686264882705373490269381809998171474552710911645513347232781367864658935334830664841104501790720703769784055421891022192557492671084745931624292531363771476052603298277759291902843351297373393963232493209666965070155123430624584850070651484873004398813983240319706734814724356154372976843466693241418492979371204919942754686289340059686638603019294251634742349212131818299803081117842453004252114219343850201606931528785734407747929897620806036542667368596694397068204745527582410109228399855290389656540782533835993691619648060932851052602552693493841840551336536352342563553262670848582923897209798561426482071531865828788643670731416799004571742662875641306593557735725333484284083831414424332885704019848755556383410707107296469190825601203340033656978650783675623337396269584465779076461464238898264079273717693775984666786332471383865125738882369473298966670008910091215804807244249703575795802207748279903674758786835242804254770966304335843520391272126247395479942117039890847638988898282788505134139644386262779039436026479712380979688956698505175784235058327223421574178105016506954610756085645829193616326853069756278948588599716882695458464015165743426787658938835894295088981993872146934529411337866465539235490707218913237239400076446324774565918821943070476882894984341930662554640358608296232853981355881411513439064991624445493421735302445174128434450813281712155359855958908282898833436685747943861530574875878405961590171544719911049410790027118578496135665457862757129357556538153457054216484591105559301420476911283638241900321185765471965204570415247992056506816386922447207693702557423323794902268480627196887731181561559426215975081388972354815461438971222123853260927299391512644256549609956878846412015759006475322835883495927750362679827403272712063927599876486694690400491987634524350736291197032647181046615453222836559319189266955377809578875857201868350485525457762451363132724890943336162317005854312201634454764848228390895509880797372291213683795681614147064850221694173148567985094617306928790862136132396099587117014848537404468109990490352164813871506501437298925039185188469663761409134222317637009460123159016144192225616356488937025163664410936893537105285755755063681945132178676108320649571007229763706003693030386359394732531054677552372623298578659971976920501418568462597134382180285416171472867898357462402217209050599521375082852240864101434207102041339674653688372065755050208903618128606641613110210398709014668066704851091450772951314601078054870910480159473177961866628199929272752914079470448199804865669911754396031378502634412678345106632588260355800757339702599092036952299579719656237819508993986231261345866769311957968020635124433217972958529963350269074021075278359814695610147030193048030476521063520588280623097409824979757449847590012363756639775526136650417946564912617287400479096451888264372166948301688139966226736312610143196292792669569530353662025437623435698648019404175133151563026094413086118462062264253919251399056733646846616886213787080346862080865743080701674853989539683966008891691352367682247234355794300426763670969852348462604308379697980864211277521831878845937995486152930860974024539215587406094709054010629280919106239499187643424992682852255503289825890178032204718651016175062516122438018927731884295005363046784177976074437127793328144295825484157913000419952971156034652503716025428948258598869469745586132966028745584660643193171774153128790919777176961683421621221248712892327451293571439276537755953826378695880641150714552842502725744754379238049354991767369352122099193589402306301689499222541019372583787078809089243922453721349565126711462394368300271079362774837084294650876005792676304065746440199966087953305288462608958285421315484372214183177232192521948093435038847900236395180499296000378238441397517639679421368462637582230695639681791232959196409257652533740952179192576702074862626091631830520371243301117740009279941935776362661150979595208666726629281834603727958545798180895207290202500284288401367120562290053123879315085226309196464746155626853188180956915767559181304953933888836851457991311386290543222340263000295294634304479012766699417346799053493484611496806139220686790060904509191911067932413982456749572988273347515043766962042977067222491900472007123813089915016498104524158166897383296526204234514161188245188026191668126007565830865752577192804120466529612165600999625532421105897537543658685052318526285131860702287740149979187581518375254186508579481064035817053656499512931926231804941376748161940303746637481115509319184889709783397884606082697245835406364368797190234207928766565865698427270181837451362431981846649713105728998355949891067584146387518921723576396779348624197811810779336849911381647171017762343162940223079209783406296911824813927916949941917973439496420799483899859688333802274045859786766125273532357715311403948421884656610955181872371219048909550644727815089562441442658509849472739275100426513007891342661728895120544228379129219410500450783255984295729840122837191928229471662900190102495680224072790555102779053142516032431006340392768088480416414200064513746264601307535110471479177549917335446980346594371688330344024776501155995147831261928093391642035025813947029953632360472872579794905597038115076628563677850112517499385993061666384971434329126209285491632230004340610872148440064890447416427594504132825699809805254307556132277353054826182144466957244240559174033060381060987568453937694413383856535779340625563708469153851199416800698626533675774760846835667339309528988046190554912965201429447224895549100861892480101416411202452545916487204516959041061479337956583914238973981490385333588410531864889640522300457388180070543272014940761910447498343325594698641556774689008578037319065295976181793245554807728596062439288207960444868952620973550589007530043729799663426245204987982317674344109713527694759396903777413711670773795614917408043343443451735396065722503532112461689552011023077300863681460271131680819755691896200015228271934864908613432783901312948682860307570842171419125280311677426913672948840471956865324920728540505328388204789151655035716682993525407074105847389775292680986304093709618759345132457359540569709771885528715933116022527290824934835573417335198888619907894788215785813120686966122098603825371941803772054309879734029356989693127709244976002478087765515346688085370675010239297166857916271808665837736950213772750443890597091618098784777768680321681413436843703926462867248303427808912991089231949868932187176396442182211231133246663081269738315749678097234394038518792570934405294964133690475594831262384054367851895045653465166695019874410647207722576454951331927069959059218038494465642096999280087583014473360550626193932322670027636853722167030590777735979389081227332878803971636706712374321640044221814884878199899831217714988135499104692792229510622588299805030583380430422117255708251102391759545947061534824296466566724913452046197973473112015687211969796595393782194785630108700845867878987870213603257125329542029469013825596208174753902678451454391089646768826760530896139055342209618601654489040502649998482680496647043585173554191615008501905456049362516955290802267885403409146482826146355587072749661055699463599613120706568677286048191249369511832440540853017458418855093760337105576775432605262838772408239992257998529227873374574884650543400381854218429417877630175903964103422910406108101561730116496344642280883207325195608708504203994686755415471610274229944682692890844890957034372155211339588084416012850599146298413585197346826210683641329096183496606993803258384629045332347546103196288223338408059244313971659581494863397354216764805189725180168251696965690677494268112460557262577865719885690625036743234099538351629219736496193584955843621815350309447788131743887091247216650233713453056254539570081468758864220548924258820916476221021933708933396620714527224441248682895559906114714461331832019216454891902553989374182405693974306846396289008617247547346197258357922616582233598700495831406992360608834062267931908828743295464509778574236517588114759472749545114011601245256848272089499032103408352377631966272127160671755114596262429740851182860673876124670199547121837388370378055292949081550975468681903649304096370900501689711639050317332276032234757521682964901509052478200897512700403572695839401104696438463775247259519211267630692522106851778943732652174082562205982873866917055417410902341119246998750683619331027268451666154578809329222810619706636281516945269505461637705233438931955844647493988942103997010702096059766570480177611362711448338487025000752591710551718193639999565131804793415502975375991661492203188007539029557495495576010246835803371409968485739442169269986910489341237651957765540366312563481928749265931011507286807953545796220093973083194204215899326774812805397284719587745374799843982041080217049635477961215414603303800173489873777285954292812840013773381871331226055139269447896668179145908292800325289435488327934377350672954383629250882818233967214310298047797035361198092820988248669380108675371367839945870557057937150744734146005842969922264334584810409666526307898123005157705693409231573492789337651805515175513936380691441396316217507273474438667768756336459599653872501264473341118801209838837369538473405865325215689249851165546074252060832524908616144916097733648648404038077927926038470548514673466034893944713287474037240299515414864834195338624142972757739616683397788449844179116688653433642143326308910392629380713556973802323540115375463084131476499857459150503418930240235586735746939522515782571179035085039086328958104967544268255231077750121618212255741344998832339189097346582891520759850020395506671009448360345529456542785432400519530788420714026823185371040706839324414940385812664990215033597337378444150567361255307949223720703372514309953278703712608023104754475293919500154991242415574861011426877121724254357646391939421016440658977811114942502274649606737996848915476485090557406843693122528142177528644105712497737834508470751012729318668052339322793901347721343035492115606502411466779974480628509858736527104700963363450835094562918864402748559934724238509856755238982139577748811784012554602536563115355826476363599196229941757918371261623820797494156797658913925261259692231089036605718749022165968125759163794396221360747743296710573728475598070397900683857111357321403108833720562716010155670155186854917739191173620960520438821237835434235436726677598238436654483416964222968681694093936383132564619324174953337670736359787778250120654874328246351563692261708490717221547235652349151315692166169494712682900277801912698051734389292690385385757435614255353068685353513012933450675262860505312132399319738155301434175313567690936106300284150871920032811066584346878967144890948579923155532980173827820962336037643998184620557186224986150692540150036630286229516691740228350770139833930058889784247786038764882226330132207097100304469820500978811933446773879247953590114878657633136145165871838324058638556601257042460570524720980368307782393974220153517421698632456851103264746402691932488435001595714828602340883941085780377971547444875756306110973135147571709605843571870875677036690181374302859088582391404668968914046101095701259338353761709567678121035263108292739450302497150898323128878582625474418509525314926873769084462021170243362359034450623502802036175860709949778286153671312048205147479918031293954870252233279467660064102172199700340284064822305441967636811674614827025123686124831195843349876801471488831645589445144069970469855071681783331690057912851987415209771112780041013223163912780397032848579166625531187010015652535703529523577013007608425810556628460379032983647774372884364426560885904023334371726597738945999461981546454074378902929421776517208497010716723610842505792806322870136013213053346461543730165641251196457532410597988073615114241690562676609563705503044970020602167994590599466769937677497554277689787198200805823338965452197609726488064319186177620285391734896321657536098679717081734324656635676468408349573101542991537549664038346450439896327408577922448438158122554526726407854051325980585292242937850754421958289070041634404065472818979826046586395544032237092134637384048849005674119957742475644823867371714472394940654261531007547393952525113316734255284145528280603034759835401623916849186292208955833678086362457715646570935736752293978638488894564084286401774315231362237535090508490233416805363146422815598054175747786842487847764702122209168310952465970148054532071258970160110427295801100356994251452376758188467971954110213232465515132565232611036350732121742250245866670377603350909017436302823977960527264988461596149263275651396353428131967497356810408428412297771489537398417832731125601584006609788500296346110051816779280899784614255820048260026558390353656938640576720439020222767166311567961042799979990698631218618194987628417094107229752639549720594136784848617321326787872811283731359231236127422968967615770832578569607341825641015522976394405578452032547148560190721975506222411672417228086112431206804941309105882993985974091027543894011580397298620779289812378678875179452189741563970835780415733073983092944197361914253421230165643602681153027699901252445266890008914585174331997238451744466212386928469495225801521497020531398574430465991833601830286757574287064124270475277368060853665310337755971257784122019911066812669952383316542454531709667225353575990381764378110341364987045690604372675658497143113296326626840163918364948907545175086520330320924746619569585410566531456376675400384840675835819605580491078887121818770222698804056529177873494971489754011445060273200140762686332201498265590550211796590018685608326260105236756883407863730324415876302382283855130948989895734745588722617924029776605715714479089791594672972213975924224121587048906637271143992781649677225989476989372260843672906746804368317138164169786687767601944368535196906836042375067898141721626057276112693526050603958985527279223803864097822961627302311373134593506159980083398719343012310034820930031593322966544592703509496537749898314224610210700001849374064725420809618059925248230309690039352977595513704013368091519644772891323032417615944342270544438519964390367161245065709410746269452247821850613067410867176268724813711069649785561298155348695844185568775817765709903179276432033383115568441794721193441783261630120001194734915534920434338798980530287326964748754513095058882614657866014360495709010325786332584276447959626814927931930042162698161830072054828928362804179816980174909392882519687715997801986606862319657670816749976994492294284081448032545997864760237317237646257036234091713029988368470741471648695744930273477246152912909593385735674898415088721216941293712443533097815466980752362360614593898119311925063576112916334732200201913748594950992301951177944581749268416236657359543229629258894423195005357957861340782092515531335251375052942404492792816309507069120920900087912975617357747009764051483351693220184250107969459692026796208172239160991684640775834030898315951076974274457989587507270341941606152686748400412295107399491773486493682007503104254058285257187246027414453569448557320984271456039723425407771829192590722992084391965473576409376517212706934062834803068627207434364491373329817502300362810310012600963919549803486304989439577842065135750425330510967927650611915775964726250648529217211545029878818202821853431033176061787978630378599340196052637065955170924029674220865163872586814741000721883032392797052575503835265366843230926868688768899460322806028937434967778017691732015292431958316174845530909335716895871478330912075071076411164689772402048226230317838607884301261234364174358654274280908829028754232358074418043993887142055453258219205801345041250487798445970132255804267243667480941724292165971987417851964478048094627502437223009884309834438895688322996772222809888507229854485038112940295961446903358149705051963034946385691971171184258315578633051090037938545788570528545117528105492787695240802142231586900342568911820413917840480926378227182208527646953568877739649425946222190042066975789174249468856399920298778945769119234071704668001389695305872942465753607374855428598576881520096973558189484647002654631903597758435978499307171360866241491139094168012102776486682575171835479311071523390753319072157679478616806949976782871608899592909403568630894193122989630962340658269416804959554576418306255321980149918840236319757701955962420452308921920206161276041978146968101450294554065151677448178922813525520170395333682049036105726132588698398374931732136657059045633852730132538046859415096115941372267609513812200681492612197826503901024963316926393970554384920928610689524550064904287783672219034564149300487718048445492357184536450750865928635280162057954381651813363038398607414903357424447951907147741942865685230903796854550054520045124676634248017260715485889014666604499701872144528806856967580291916634965649426738250798581054794567489165366470291081994444629940402815680949839058249163493135760472054869148420599952083310906488419684597244616595067897990650538127619718553153564146421687283529928500019492908206852857481686134640640950548376619012360637536719096975509768064027088763050892238273304260068031316482124366647877896911493887008468988896254947062055370590108278315602249596466400568796834592125479039950511932321907815265526877189916077466173542327270427809505686290269220138723581846750236864891727887517779478734185841313043403968756901143668774466162502100531833090653853148079727869978224667773683487424865032230471412517317860345252932421337498042821601455834768332919918572784983537664281239180184242028879114548924585671448882716955607149328346712320515875677986192486478467663976036476186974413926510250311102898367784551810450068476261479482659246393321736348242660438148911243772207086346722426927963661726286817149461006730068618155681249992219583012327081312489046102275764898354263396869230837785022874547292837757472304695470901409103241654173933401219504808003169858559808927381618940189531466652731823781805684594356947744686285146493009778210625600165828112123291287476011424970626092590782878700813930247724786990125019123247697212493281960105782534799421539937670135003176863638454630418899323434594833815751526525892018034367161938318174129502739525259651454981206841237804236191026287892286782655809174609126447093328318379339315243436823661416940035000550651402352091552314418012311000928346010772426108420854145487101754816592803581200367420845631398861363603386413818352375145547573140499080121535392645788103356621859222914700367323117330823225371885625438375329009563127168593419930048155282989127699408758671929068277308156845177996462126591218659160565801090991444994498064819990397908571395144341211712159777659325868267173535750464416669152830631765403509090980141869938535025040382866712103816662045032637999808160063825358515204817231636669228490506546824517851180790603972341655867955280832303044912220158186852197382200120630705965077652050878692232998658146205783178634206987827102816761607605104571684164837027608645819711341413990733296102751700987070264151962530899990749381518291369185214977074732329842881771364573004893007674052234822354534811894597144539878761407734693879378476701580803112150079400292366057291796441046838695902184601257208113815545668290232231597206456391943084322909870701478375143239505822816071051130337242462999849431079147703070456117954590211389747112588854288751110444653817669678710717361287027734944872682466636003622626771136826955516667125236266005294893494984051543729887802039085883690356488797960055057059959594854673927111342334688781287144191219056100559364430975425796376507561438597031702840108578871621951292847263911660604438696762757126949451204605224773898726694307332118299117168633019740929058143721408073189911679674195384914080387839425245910007595394291711036046659222355362548433305450178339084964494578122022138266620889372539472671857378981516802734086350862580092966008803597715060815461023792454232920823427987020062767658369491140761381289493459997609764330771684698939228069166026696682976953416873734256468137783244952955060888161901617057413468735750158925073683185282428843591852716223200547505975653934375200413060875750443839588608025599521664446057922280783302804914111072032233484529788961282342598459188154000566974106010098409633543875340143851367062517173923677064592198319680468016155628308021758307941928464451278934239338226772416708582413780003248359149027387905521238015772294108983541753061469249359270528420662071299776549801926156435230332309045247968341340760388633973166513586420257193621675454339655819382442419721294026465576787636080155600879402898273016359855316900994388092734878879576374301040145808112725698155745262887532557295839625471921523557976154541944412375758768891520814112123637013966247910320332248817926827399038546836256283630033478249535850462441563353921079075009875187756439737976624487786584207985686402814802542243463520436723540625622141115065274014993940131578115535567253148037295286253359321924692257763521317490690297918988702783048774149427465043169151522449706099258877775099209958580644774445077687194717546359909338587063953731005847859504787858721546106476580980439566197410936173360939820727467199892804376201455618544552163471399856095617555870682642448012274507990774653395431516876013561055944767471040194824029951923991218061115090828081908112711049120702047425476094763293064515633477847696036697119437254923116536639889432537871562891770877625916460348584849343519925836827453581429794496284114966252803162369238351950888440218227427187113621262297884812966571661518126658406459978158737953876812214845880047227783534764857057661516557159893325908024004522080676466525605551246420008621038892924067926450287119703228264897221143245092740503206783354695543643098906924207600103852293203058832079493994939782308940664331470216436094281618816680030541589393827769368855097087599578611379796784018441248405537131951201866163689446105856532689653226268926545981150400589299937820213275256651979658742288507022905681690259482588750435764236628026633530068261292634859028755682339364903666022805883996121998294894905977010298468253058135532150444811511962338335307242500636364464796908061174682579969287206156978018316271492078691885963971511100761455234525473716669321764426638431551661136602005167268445856952797990922875311755388413394621547495787777447228433778738087501263630053450807141284108231695653397949455629548690180647564157631617405543654103017148263012488414771625214397159174736727706766136587898360601672480262329895921585905975335301702569766626825887708258899382496861766390257699777269941223615838853273160500050806253389303799441261574101408491668894863971606808336651578146022342411665091735438820831663193408068896353293519766675573165042956619488712170475463013033751843747669998737279574988835058054312751310787712132568038251345455683005958029438945492779635515148503215803483605748206578341413175655798374039340822790734167663507713472409224762231710558174905210436064154926076213349182898438229245231198802128079918403600568247511993399679143766423882828880095206124823371972714154458643528166815727257685922088385618703439721761889595475397018116201317694598685584421770994827022382828159954086843556709724859333282004508197633169521601965502764819187657905857570793857291333401404735263693935739939186043771946066267604503092287445447451804061959420799934633232088637904100263088041869994548593827845708996829820016648584228006324194860628271441428873303967607293797399604350577376560609768657589299933702615376246200494187144120482636719332585797874152616962123538549517695712436439965797224945107849383784485571696620429615900216277676924255327357631407291956526228639025998566627644286036160755799834588374830586463676862214883563966787214778137324585738859032119054331405247553935976818331097529464361167204480374604733823884395316874121617334357768204191285232857330966719054522411150908691059421364242476917508288437823112512633939038315606663902671719487791042370732872755357559109177400650434220135176157616312894599414966260794762323772306394569982861434161329470000989144179408709879972743625492270555656460550179465000379119152976478445358119972952354043937527208079592251968284712730545201840001825901426570520096595000222723113255780550189056695060819644029521720449077649916654540504711100739714795680152265784683540989358801521375153316809163906148074181112748231023314744911337442262488718733916776256925885475165714865638930976967558053667956267489902112750019749374255278377181941903325465095318962101507026504806609661761278764532271498726872708805019400281186029033731185603667782586801384103962776505277104991640642078603681522506894019841649604154037854259304339142575535196000640173631181111661603478484933858473571319816821011231550386754880313027883863724364593205023943881490028216792179178513112229568746569638274277568620786237230058391041877094721777326556679078159781599243670932704781225232151586092720316232331073504356361939936970499355293826227074135014094635086216609053655427538649158035042474213404086484239423634342446457961077425187711771788526575483678122229569446924274085013954503026581408861027627920702336300072497087613474585389855110802568784709439969242906876909385360453046268327387026282664372595960774385524116337170956540634464340922121224370607054180632833556202406007628875620460945423695539302672660205945257555608666176666354040210903649030055629428872176003275127777335260443596502517579073930567116852385529981343205952925953600757016091438640209577387509293652648142722219158581151151769708149104229030560672749128636420483779831811911075848675189512650982488806435456731933829790448722976053613044694817582714989952416460583051465990310630285949125751702239536555568101264136010744140489014376177062274538358474189715152009117290755913385794911015217181156915297340217195774785253403217672774402226850410105043631044049925683029622035507160905162031999480472880854822879789822244372870343446254380367366629729702992157329497019262471533527426652719438564675417824114039934475295126277706688059516160354681471903657130966067499804044187502900668900765576038972382443661439903408377136413384895060086655159331429571399722676069387465301958087118886869560834284732210825444030952098573592998538375971899664862046624720020060559257260074671020371799398279223224642755530057748143305353150692080014139992298127298265547991598442145538354653333745393738799678956770765118352178579316836544079321979865186792745763652934822114065824815534972446186701998674664523541137248885841815869712092484506263356803064370127698459378659038310230784085462606352779611877061042131870570929201242064918415315783769994934201608178138876571056035683623633924593958595547477963097699428755015565178547732532101558410132387537149195541650705938901712769982584448616625411926817152147282441212461525359012124497451021512937743073928386920180723081460832957201117575231347183074967642902049953633646945101692110222917427538658524479623110327465596821551858501584988730796638171874416470502278375106770705027972168624606585567259983871681252127231007926299335970014473996303513359175332988209640084593661143061933576934311433308644967809918056765293911956835706666426941569467490405423625978285227781976104384486380440752521437411684422078308267197418897876990951646007427011436361053244187253258256104397073922067234741586297910016024717019444024811671689035971234325544231721514385584599500383674340328535304106213996895556193486109108299765279946020728814352758532641283355773992986779868935166722799861920235804741389515092336658182227692861996618270478349786689677857740578379226022557637587742129211285107183520435661076256531705276106390526504407396548864081139327341288142226119056708575774032930757297551429488587790707433417152814516547221877084380948469133213675225268773946207508210157108654168220533671148827930615962027066073593917860895080324342804994535161696818608199174462387956820879101089884562325470619778754146410806310709057414937294018747941108060973581411274225962188914628235759517420236586098881160068674875257627047781314694891850696392766266641895677409988479124935830331894469545286678645349851916469757934426738521674462526781713639487143898704224348985373502360621838457986722328073750642287687461305260174719965649335327767459975490930855678076313758378471355577881899829246552447545800623732280724620227184031326768473129715791055911700507656709893107176194354534678357929650725489707469141598424980010077791769425158523314887750695360057437717192800150903278194404633848411288270313547754463015393870042597242830752242535770626083724353282824664895315990581630080504226588294277332442251734041904936874775420143463969401976466840785519704216842157818669123229591873139000727165992079209769766402544972448903826065158133234083422626981727436266148695436650409866571166478172010479749088539513833171327106668122750604604231607059730281338327570001645670364644511983434974684772936846633573092291608729081472988848611971855691377835170471608453426665826042001296619640796805482278282875746048180922834309426864078952833271066798667183389329544648730923607592419012226841937183215043105698518214529319584977918646688792900518239182757234951510605287987231163912398825499676790909442151786960391043067694115616917237879332615866704767445343827318129540234057963340145606693318838263734553340494970464324753957000010213712897629166496933232382574088528585466883938510666924812343446251517440798927134565806653521198839098289175662920089218312049702063135652745117234599194239952363515958881187293524842219371712199491414369802639521971766337902250546477513933311520254449513490702417148957337940124259331765548456946163701709549338949641841055707210618952834546594961401049533461886460365610392961285299606746080005479825903640783883514278477342528998590329041544615034877361484974964473900823174620539396974792113869870638732193952187394005504671599665355790212606630568919135135740463512199465270936299364872420901731901084166846642308794602224282271950794414082576386564594634444871033433156478425350890739955912028026984280786340120493062702789005935537480053360955323023552213150885855937299587537386810158389759759491529090283411205153309985649971251253468393025184105356944144937891477346127001144761868827870879355990278533856674788175472477356700634133639741465431920223047687310940585460943625596890376961420221491949837646192550604092352090004803688401053390806385854454166031767228400677378680125153252763513670142993735013742671088870697492670163052271670504711929507761649713138159831605171912364568527811400472997109027286656558389758592336356354147855261741256458190080115440179338291691743294158879789093391447963131136637233028428239359406088430787936581696290909504981452966341919732305734427224638176518406004579394535244030583062515371101842017103001575873868113765879875697474628431827351599845634872081928180777495589597524657448387715898847785690658890035752659515011586888948043259643319554804111240689785033667214010230762818342359318079704064759186671800570983056714613954875841510721828058483114821494487950785733272917853495213128971207963415292047123187014053628912380384864029029215422629882625671233543058442231394899271308985459833833478919512363203726700415816039618165630657612552868897890064605612687035100993312920297170395932348314434144856330472161988177872244857225014178978602435727323035091886425309426158491761453450498171869565848247625810598437016488742889584962389685259796272649150825972789501936588156243857739185322117435595333437664405605699726364374682837565730230138499630615117238609667927395981423991351694208506696623409345796526400627418002570290527825928994988104403957490530373195658880097700341870510069243400435806228867151844015748638907211103948079338228649134778727874493551894446580311808599094268203277326261761664644347145927995591115687710137997640337253227382330797647076152886904544678860271669898961655130923569471271886605261057467594535753666099482323546874019442735114642033120785447610369410832541210078932591953350677476454377864403262767863308423886528920410516158382202190144227252231896576322140624896856564342951055360484057685911865749072063136147786596294798161100085789700346034519856920892380869199616115969179082105233735602262704570030947447014625343309837541260102946226308695142410041950995295572091285549634746599683368559209724235089269943589913013891905310022841337718673853863314852747414555303842836021036468571287381489844992677828618892783486214801688182030553796248997911167720626716173093249501811913470666929630177136751995309486605955362285492768777860061716294338981082348630590669893590043387396770876974621544235942333589928884916812930723932820434947809594564280969252803988366456526610963978466531356838982574647473295131609756077241698867509769242418247943829138949901319138502344506386680715055787185274595090598446921233318434661991882951835060353307329413010874621758938013450417904497996692892361019740671638427907384632453178372393553546854830683955113862122195441357176443238857565352934065080305849569234732887556525646578635443534292320766503822333842558218481563492244116383732356652278370121937388999039328907654599835223327955997603787855392900630471841975827017917497792420470316531493547385224773893854302056818917003335555366385268461862064691330428992100936817150203441510187683438450291848780392232182536905717174976044072018445185089548708683701885823199924700546017818447701335034637409529490190586489136922843100078728631996328483736797635115460436088866240634389128854036334843196057399468604179618030080892006387736508892457963050544921803287116105819501057513471038803435101841249833187020986106443564541915511743520270132812046354094382023921878176150167737867255857898702377315843308116279543864067904951512671164182983376510574424514234867491953198576250370881657608989477603320404777712728300647074203422651747214751623299884114194334570257370989934684613043381336067633648589587040970656100773469858203818844771559385169565155581267986746489721026101695784073242341926606934119415657177740515000823398336738559286860439992055654156902779786580980810024967257411072365117610820373104469545794486170784928934062967403510853469875968795182187154993681836758421763023394754882641494148511393646183514136620733634511751501777296614279711599546933702535770355429786931097389265136175568536899571078600700593562144089159149402656219810606265688663967605961673437634391870396246802795943364654366442578698949073558892113095030592270167216361935112380738786081062733373531215006743835052373336165346272682707893910708984686536478216869604086723810649263929256716116515027983950208053590872315715589407047515013401181522450106414777537452865995824836161747334524718916040436688713941051310656040902413608312794345214424336710941138810559246776861189367310422120777513612440398647578753660763342073434612812527599010388169818674755575017686198281576081586911249545988876244697108834218876441700760407215985854333512737840044294004389033318879050648727941215289356271862967544656051308269990027077380161972688786519672773778836052061963404265509647420310669868754285866768242634538903903893217556983362875043248648550387423406058462503707228798106606997121397985526332600269950101319765567629370892057358349762056688289379007519293321379904081772601196176612229651283174530007568539841709078374522943648554650345920551348221159374284284565412675954708934661775413964048074735011941640302696344024425873452607125885034444509032168628302917454061763673166890990454127531470903168907794233259749795454123188288757337217292733328188929568526879676722757899751321715846892780977395155199159243942520962734691981253258031071381671817157061765552163178062351777934045581987254207160938076409979746187308940583207586062368150059587756223694909145134883480573970436826082474833856700840992696885409761785253240432638560935711777722271627874116183499404630126469800580934602090936463769409986459345002158320496396839393604843265007462723613699567143323218228410986068710912513631036611106100080384265917033879303339966450148710501408793883824854907000443467783728861702846880000976036488329493224479067234410748995556601235350526769943062484535699225195366367313604809204510492586781029422008101850308770259597583804384594092779377450612531792103575670410087140478471733824665846922240078997115677131574952443415438502820484343313496548242692151757413502193884420049439283901688859216662726132765166875917373716913251765881841844867085008797790748568837479014352805612738391325687634221103231183599956845213169367473695938018893172237520979502173719834109524301386759693806167949496791421177024437644734563223961809823979196380182716434872280482162500308723217609650794065316618320917557031138820008607246884547512905087792872008048303907077251176374625119565710771874398733125037691511222916393668457340377928396998490450833662174310903712595350234103489311506982812484502245148901686258911631053508754075423779411638971061305248397671461225681242907333673392512343046518516317824384043159223257415748432929810431391062623010342207608549909571122866919922621322375913222449458444439291976339903116770612692710565302847444289538180513487878613227244714050787501622477939890101394140917390472483406375074735074881100353942558104190893977761209037740061005493120717314300186320575330105280260266425343196237747615638553198256968867459016997196535506972828839832344912500478830779531539656257990075637561376979618969175721245697801427111440610548691648274134381622504471921229970793577776976824398991542237628280695321450038444104522040376071669757904082929799338922863621464846136738842487736588210243055102937698337218070212939695764401939299967558672021136562381989196754536559644973213352017970742007424595432266623031502928432814147405499964664528422968205258782866624708145695404264630162850954809821345637714101495988569203127089001812160662810043142853086606178211462659882568577189438565845057460502140500216255699808371848156166656914648509641472421135891424340074800576013682487698707514066418148897483895381438234508949995651218608213698238220243526354268733926624907818966850630725052234134756426735892836958941730728647640220057917593732500864658873812374176104135659067395289299356220438951906232963161622646965973300569244123115427609515579428748518971228184812039792650040985507095487169428006004889847383961123205219929820059463652313767045763173499079709314756580479519972469682780723834438119763068533539354839245478655025818215327112698585051020021731351661613463403993821126546982272947997567692529145292627752824745904201027201373595295338755744149142306758707704546946200173216595974234126389267849568354287284874908286003107589218845315284480140202513235523496547361310282792345203526915692695906014497584009779578310274397476437673610166405973002295502850374336435314650870770551308206637951002570347255714985961017423007479557780319340642845686739029389571297587581220476161514836318973829799573304956850785715641066048733702907497186358445355590840865886905381969631570217531776349303029543641007495259004666983385672473015293841431605951189353290569034638972219694997539836219769679280857683381970899527323978943209964538439871892563359538027707645030881973178227685999587926934752120149370891073194084899739566834547189652792325925174858224812955593730619699431619305264943373782545740146267920231983141828163761433875538518070956279566008835046809384848220742945099909085483200473504965437221078769196647413993532079428144866680756768489149262107693181999927039772295755346951624179418286724502036777973746852124823578274002011629553752201590579775576025908408575347954234501397954451052289456182909752679267903766946253389051562455722262282883641967762966646248987485662217624198384245569444553818486672076817501077128228389413163868021492213426214211821160107183667724684632818503734529974228826611434563999553236040937967056834337170233371154251886012845619000268196254243099651545300064509842541164249055187910741573026581976022869661575943416517254228385046433244208155712451871850708074663520698990359250963557432328446626343398679081838894181485124405676878995237010563209378209739504176233265346707083288470798560665951427791055495267854925288677274252051329979490457193920601205219995868366325401476986880821835688143551365725551402490016930180514549557322734716364706328080549457484172584362570252548926488894874016308306974390298505852711982258467047488173733953493955225388726145192262215631061312194856976526740246065651105349159041944198282373296627113685866373967203875155791535977021345755365156097111992584233126865679853621360280322977949428619691986670651096525205766176422851618338984086571221001289670246639334733802245257801714543243310964197679395576213550039861053393494949914008514327936040252344811566376277231412719512936488782200607681133928133157995177659420300102327189156330167048399203708126442179110048712455919857687411357309499907978918851120700527864217731018131231324707676463524306037837179170650453250036044574713953020649882197994904836178659654582391911491984550654582612800470246615764589763625753616212756380566073649113695474069255814183192273469786564382338803124692532328154277819074245190287937052199942230196601594669000724704843293697895807709528565650879963387218335071898442626592377806128287387845848096399507626566236197912174563881774622209895216330398898052070889450464555151381188544806126201535312876063647742254142874389771166782888874923011887417835816537905116918291971508262767683873553686976480014186355918266989271524432702270519347610000512046064120518123138837244169115784432556365381289629733531624393218296991001380662431001213990258124273373287727540413885728590976864469501214504475882804899141821121152393842583249575907346369824737581344365295245977289115176383165926300425868102880438405257618108885672556929631480364969197232930044455181386279580409292913439253011142427865775050856432382306275996924108509944394177385840554287609809764245082615035094179851677308482525722390222074936017202292727717195874911495639194843482514999509203624738953155889507266054161739338716124987169037341636041750397484067813889618469635566905833515915540644086947427792468269206399438922054190113971290970883640146230918379945083278586087302192178463578211091703672141381968085326814625616340265482885595649319484505245365668179442551892160382640926683963502238051528938793428691528890822179248561735475677935469745970404535237439328025562324811553377520894576863953536963934217242026595088567515786298126390129693677921368663335200452994248548313352166590342793935431724289029293829251377103650936677947729342966578502371336198315454677724852475804780998849229203449740235100503084459987965697728275313807192098341289216811695282844827959994583524199593318405819165723322824237338167716790936022007474724976713433031659258458968661293612070398030654341428561016958944015015126521272542287976444828058746709291475297086740640489711534689220230222257664144191665543816795100112057215399328766560836128843482665555814981132322717933103723120896434675628974726363364228262897696026443744030005473267182079152915184697382648558997825800604287918553368687422395102525576333219506790619082101939023444427813829869089628520533583450762158636461554661896468601460923989371465740192707163626894588499676212180525421792213272034234144591974632136372129283642816154813829650181165223904639827831350671801104141355355813698344838554482114201358153444445055511631549916655920518850302650232085249680130199350653308187266254254326794502549324050418729251204021326028343969098833490773402536176169060305194094997513817093760444459623161729470161449973107938283672858968468324551557018998075867426528929230646734328593041755484687546541724428755046193809932840498702216325061975000718687756744206069491456494337852591832102632953238945582699519346974614883181969169278333740837241668448973343515080405072455404401573634393030007527331685257385886009162971288826854465958740190185147604876890311440223968758544082658811093557693310069728078631302477631405130961689875901373908448013496654677612455373273262328049420516710040596452346133936119697217061223848256810048825633029984156513956303203250691520183266638153556572917321053090412906438527573823982670684147844094095803075388424405367466053501535558445501512751746919584471739563759407430462421730877813177785959731684807473083545369669113782176348919706157766682526092507353470506866090374428059382843860376732090970593910298009390664287792271031566849636736289367561818628723911813015474709251194025001875684118484709307968319852879357238942635772383321692926254562601146512810338487178982810653894728409600097407170658068627300922747919266547802260765715213419387474947418706948502073911347647095291660408607175173538306929483979548996938324320963766214084594220176909669049097919662098652285474607710534785599723537973930035863744994721115961893341877261730207580417413403993955030159976953003327024905711367459554838915965659579998574450308574025032072909303586196543164182605872328489732390653207178111499484954755721334323164838092936615789627710133178584075834831511927063282271394278386192564337574851408639792716178873033785036052678150521683550557582767310174980179335501956343544048740702434349805274473354928201647184963047480154268689631565272867141204683826333603910008005159057564467403444666510793952078422173460815980956701579674623002085731872730726053831742954384021496139679584771311414625530114832008118373908061666178369704092032043756744126724211477787439487607732472969018675021685241165722962225291598579872317298308668061865021345156980218669740075686139103087124143742056071491573002652946831666150400073028167943516423343880859541162116047642124326032455119068824753320505109449793582423754230682522776998937818099905545416309520202524829985121627442839662252199842295935100606055177501597103946379390299254817013763338393063122709945591800554415585685172119618127781414225878583061553926300236823686299909499931188379216219717281438891568930903130644531014775839599502289974064078288433729211874993740740552051376374409352550773574071275118719881651802443398796845500864364544419354041364516567891567995601686851758933392268931792227806927685817454316214856660699296495240376733916601738136527703212665014987199322449089448123490525999455727889569176226212618181720290926007071971494539297847669773525360109813469031325922853245950333977098614259681478867913576271314606574868990465369325254256013750150859622118923162064352151542737783180478977096413906279292690631661993268375582895262774194650034718423835547899813777041282698518102330355015156101429873720608366001994542049889006092428206619382014610001493331078604423770782154956790181831097695908242034411473192101720648521518695298067203662334650298757727630517087830037904341877357699519311538180895381360539927111792694103229413869986354839130643379950189441354216301313347767982789746183852183574080638204625040852217063165196260535885870117457401250244465784994019256858879493652262919278058036724438012040557204966964888571685604329448128685894774226113835869539779683214557292706524642174946226487678356815908482701108587018402822625581674460394940544711582999347801696030174492609181086950608508592307256367922808945485788537677318252927503704738933904201783934535891775938940752072623509037629964636857696455673521780114692298430227350933328119754827454692620329736858797443314929341128437663567583230573683231053447181610093539119111479330587508732443231059892077084938918812306183161068276516006408576498424239218461367349795858579677562436433380249276962734878698761372797422632174783581636724219866698798580537724798554416689827972333336354021447223249512150019190487894135670054049130628002595345543581543427832723403880063599413770289874515479397750605146027611814940070163697857789335235443862748539434338110085438108152689798853347754812138058925456777963812185912167635338709055827599319952610243006681129681878375834013504622906683626711927536961296050728430533294338421961579247538707389302759898177592182192186353877322478063031196755272948528043359528057381119490836950512413522338766899757813244598277271610579618348296451897748077197914496009931141639227935296361885097910095451596955762603124644510692326299494233541873020980307399679419956416863995451947950718041092161144197121176945497049630059946864287962421481484751715721435054703979880421107779244792282127618182890630729239077663965498469095765852151905725299317665776605505616656678420671373179423880604315852466289397004233222992570319348781057539671316509551621377761188484835208184717995823978413000885585003203504683753970793286909847919976512418802514870906298316738991735695057016540788595973359512070051057557076340370213854723952744272004466759757943434988422817526381951181829929432218246972252538700684777165114932238241471358608298337998885995827784169848145972758151652872228000019230633825639062361429663873013235082405377550247271663613942916441664971559226220047603621628208935567118127413184774228467780440724066705966993733015767038165188447028925011088693088544594808764539479366656251053323323811567457456433036260452209338636436280428073868301619174930842148692806819399428655477431604443271655885035280911118789683803034424935011494766799177963078224084710246450472344457431468544733478128305700565767078640092071594881708373069326785427064494792588373577235558875887554095746741208908324882214403014798584830064374496886952910423054288495734016618580804104830565585311291466430162303506838001968794935285014063226714083597348766260597218982094775799886810335856964756155362334702142195264777862414548928205572679625763690033130796014504253011604371291502336554835266128834512254811251584423285077903262084394074368625773758767909548287042324547986388049842809918998406737211462499239366949294016251872567364690384862414284607538366304339999625862181309838599208638360084235074025871979469900898321963753789415121941731599769276667829303810188066285341942471567397343623327768109113395527479853187533301106946085606952807871668332919215090762914838994223859234271092573897906946320757277202084796290673405151711036549037394633341144032789504337555078019508866051885032327778940223373221884668039379875052062655418322267099408816590070130671084607588312829593082617578885586133660191803754451149265165056331808280198888813210008198921712881392547355964360161062600556324895452511721358599562082769135730114715602961210756428780568870189998196658006640402571555491512841495812828040039151421827509495921140858065127950022155898423843650023972247478565919081214224104957144949977409760592503949389753536133132957044554690660811702955616263695258783101117195506003088370843260590617535100732003907209511295853539439924718712461488381360393078642192702950515183540659363818453632718443050904751319876397801924526380143953938233429577875237365966100860156397741310852976130080865397689705758575710043186973809712088188015092264851525293639171172575126941164007404359727063323515828919420164011774411768030159888495901648226641304205395951675826506736596428139303322011130908749178224301352633197645727081597203620497378844204613820271862864142497479145204835020291179924729950974850493061685760459573311008257383406078357759815690432631777805006610959701203711402756823270323759271136384821719556751308486107033538997543255412963058101453172774368480117890726384814036626220735216284544122453218694941873777712422650345780313868834922493529808020529112955689451833457467692976584075239740513083626512527902335284099818275424151884763530161432264453124831910418976996201988716010207842455180134668622489885664677192432798983153845517627567054509050890938178931051713804837080567010206526839354739932467606906344727486085985403246449728164687714421272094220489567791342154786112681768053683600930793468352801345924688643578736725548683259482794591354914935891707375190291339825345482853064967647290902287105840403392504731554269429312666670096688225001755607426519614395340886727523214380911585546485822312338384782700052937420140955217225876307046348234866254410799066569407909109213427764086196244087230984860622341846256108241702128715096987158421458297547708475683263036828754620221166206138256512142418654854984220590029505957012018303530428253947412147206067146807385122704819230978321617542183727900033228607200849962843558862684601879533856163652253899488819373564639966855806803152410789424257898091273075881349367022472019423235265726844716959841571944224058828633620719061466017017922584294984848174390870699041932431699940295260276781252596115906011494303195692291459067705344384490228442722754513312327195714931770063371039474988760935024128363450669225311105207607010257419562786509123186484470594808169461761982584243279070096485895382859707027350449145819472390337995445212066468884547201754545086252390496329424057315924800946078105142411055982727340513160703319766323282037719168610590655943028594348949291046145451592725078767823322321216377633692520561905449487786230404049412772067101086019273645887282283388507636969923373222082607667009616564744700366133815886857566488810625922010163288544102260089073424756453799080844550100577855246464600656336958308197014147779351693728640054937587434419687580787161386929392120515547816130254317371189903507060603593326040726589225566417376396340444132199443834513902644726593709538731846464459006714177230310975184774515371359388909980392381816517916054786147822670003639630502614593866083310786146678855722803694825013381719409224600254075488750697424446049434551697311240091755752222248676690926434390176976350225602855576942662541447316703890183990671953051570312222964504997309178283163886331401206951091541750745167032413495859710864452301542305353050784574262687160230634444675333213780247532257587090527342423235560363071192644976961729848281061898299049497590067620619073217553399053588112803797943208354075037574222257619265450902983020563337741251961024539863675705862998066335291308586506694032841244135375384092934548452185276843222393427645112365596131808817121322963116174820170757287874571347842556348264069117245605900091457865005727417541565704098811099460922633844203002438266369230672663104986245081322783621860215997751987548064865134372321647945664713319896626184023691536411818015188973390457350471644462098884489299465487687665741203754919452488488983133342461779194157331596349697266073815376425812603183922791176750807364573957571847774126978769206870955091232185294801741340400860602558318040642760955979640262077024208463828951949970213836482110926285195659334009410180306674823431788231627907935337314741487520558180510738559066227724478746840700788180170966122738777737016608604302363456177156704899945340888837018010768320413453926978196236041964179695288589899977190202238575284975554075371789659240114638994103558370743168010834621755463614620377085625507070205210360931193815603307732639298423028532317476929540140612477798089588987396907111507365478447877259387587585866445130600626364543541303424267948611613532594844635179032304799126619584928026123072317630494165997846629893375527271155491198010381301725239064840784771127939913543890172645655644772898629419530587255622458989253602533818025048957800287036899233339031786039337665961484821831849795091498491816027331337376392459145703027340087162423588134758755533282877078486681153333462995410419168253202161212934192016749329816392833334201496228521881277211499739720054051871426899323661161932626780326466814780745867737182881692727211910952499470550330964833154427372215582602612488343798621414942111274060393771036922976842436755476537578004020830456987010118433726983555774516401568376939541314242702056635766095316493316668832454428886603643105986251444951667440917779079327966529842027833887807976342087809391324319854445492671430220872187407758492776299871288255513481240573837396633485045083189403235415075234561669974106047081730175493506726064886349901688813366774277231387369300402403370701113847426128129220156487113667422217832972408539436063370506057303073727877118964251988122187634918637329053199053592480741133953142866244113740596323438203079196427191997462073079307178150777454255968254263011333167569826641040089848484553506349843588291015542972392839650742521001451913753718597239294116286180539540470335233220529253965333302780243468620395073405258497321076896648656780262435464277338405071841779025437468722286852701465797025175484902462624897257294963966845570757344968244849077329466722529007320571958771156329698980210196022391356272824474716306667336904100244386440521827654776187342603739275985002525384866220625353249316823580882946439301863258600402733341872212836763200471388705237298130693117049557360746257641914950805697795000103691588270717168771205231743480918429842622426166796994715211518957337909535166189606829156684050924721001407809057210902890044287784328309584892766557490815709675057856506446290446009547433318214715394097462327402534439859731373216782582078039029014543794357063566902947086233797203782273562725851506437816315860267964010441510078918657546451393714449352229559058912035217295082386264424486842523658267916962570520858236726289100440532061713558305764735217746017207492545336114361642972910902408051657927663198529561730878545804093716677971578554820307722806579010586454279441992787194243575669112131934056943973856831715838542714430974642505189983283973694344832670372452698528695954349095912996025171075748232712116182935886095680923129937519248332157744404683202637941222940658948857604477006958303705716482673209355543292844466779060366579305415639936556988767235042228228417596353430309273792630645438098465387154475117166073121812249418795931990624479868857156406690408805169178048155258178421415140413860290070745498489124461208522651140940986708965590319519688512299369162100862106669390345440498600941926699123808611322031262270976321798728798805985248516221485556296625835666436349362129777957172915072106163730231589545835543501056279008965678341407369327474619658863241488319230063071285254302447946244379857044128704810572236202932574146662918026139669977249611291120973798854152914676060982156514175686842903134954762057724958649312616092735913431558581232886872483920437297992249425252945027496576585917602317507890637542149674392393143579332476702791093274820207505309886358001222053009198185726806383588372603090738963211234440116368115268773119968355222503104344379293376803256943755955020510969454640893016747862023425787350029937410891102047726416849544969688053296806926390573713721254674286724535620113355625724286263525383179541293655131015347394059222322248955899044862806903366783991939400923272245738832533662416797089017182512492748916710926180940316856335336562023892035926370661034587721284888546962195073363107400761735031718404415424402101523910370848539701806549958114393244005843940732384058735375229486972025654734639041912030396433952759985385152029551263979838502442757929433898296575767031677733914988667407920606247243370844591701972115277389358956939362568481719005093875340423869432102365759229858602940529018594439129054596369213796104566694480128826228503803539065595953229643910698012708694592808897077399240429889830828067457908470369920234360718363636711346111253094476154233418578195698661312854480794065873619311073844175142804674962942543683962173238872177601741685365085033320294232014904342354441923837664481566185642770769277136617452841692780127858606307515891523624811251917338740073102038948151374738023866252061858470295223184773909906076015132560211072014834275309548821810439580554121327447271355658153930050953954743899703146842608589061552512825947439397785548568837752667165764749480566722869758081060501089121614787720328005465966827650204489532540697412472936635182596789877239696513723708064094021312587649442863269439697129442151143491201604101957250160495046159028246975414356372845908579384924699051415372778781066155505814839179081043267582820132806541270759577943439952279368246229501603869970113048110526308066666127363731144597558837925066975816940690842175238288475838216060429142227634438913242905439271300151997744251506122536486627743510285451338363913090777249937613147125734883377394392275538915223666817606388395158733663249339465465802577013563998063152045834806093668029194651732016420933259946849449606095449141906913880659133397707168610801214498729076099075102615927576193803336269240197583598119758256530563062632284073755685075307534048443808327592878870505561375306482639548699191696490298197221291557976211739327533052410734107518832674251415889565566589877311260282447551144135967921432012304190462629571780359496304990898038712449889873742548960181160420301872814704062961066392790962331984841154484811145508496079669108876669834472395469136393845171592644706672532131690103565446944906095492428900860544885875901732960886206824924065614111903198901653068634357739645192473290945945889930045476860122283239601808615630614297173527686117861886318542855833680515432219160162383690337287296673277291360515106068030873948805632940996185159146755155447441972129674634271396464779734369623188449593289008756165302382595460161497319400180915980731851888122739160027969981826885057419636170339855600246454087047250217368635315766327032330384578217755043758888141800006050728223780874071293838837721966793534483731587937746426245595500693916569033673366997835842298046446961445774129993331976687479767659158319351388847429559585572002946001957848705491750953326277638624431535570266584139578294558038883799956337075421572928235302727716450139054471999272300219933266953441813083895379957683936749957744286648679970089244368610395136481925996329073153503057816210426232937321335342134375902402397707088568438210286503367587457343096188277722264590970381646157635235347070982413277783700713815869823046908722495566793573620087139053190044398254544977731634468573826494610345108692633983727879292456433881276421335290727400040974712485784357939007161873109134174754626980679548193255070511321679585958490937883098912591164266021293158728575392415429274597675446482413141308027872835565266972538039477347919696143592790342438852532261009689335679472370547289392189358353609577459052316172863793082357413669553219659724186793403985274162402677828337526001571141592958235751226432626388609008469508377581996260491872097059578123727754942337356375505903938723546703153653902591047858502794502641178580572919960175714389512169927730297000311620602602746874192741433281353467852882741261852297132403507205669177637965415061969850205461496006293486799096906503670394306937901368291154958562713374683718561074389496736500683388042481133731222016557092957688967825938584365615007776328783754921411549339270432296393232091976570271921162880443983977370024196874757454781347701540625133487365167280676433237731577693487981298163094600983158451177619791333089972990937194665687989308427444126706824119181641009967947031215553517098526180441232584288673826129453382187248002631994937481883040241846988560393266620586021622314505130989832981170947027703077093042656113575125392423031690691019870232088949364738067032435295252180897919882654928654295064156375775194747861140751724035287527023708052397173765253835540204039621659135957159653714935908514861449127528431946148687961345860676116940587260700196134482933842412814914737442288353940619440596747314044578157411873204828921252160680557282060765082570540454249502385747002538318703805797080869514108392263236950934017045553501603342303104422069190932871659418446395171089681515808873330856955257239049333168409883724988190706027835799080217021702681355713811708547709756106549421776668403233274766373546947815644264516897159250717031206391028603307985769668396598136350835026252193315772243529337385305424125025649437251350083128453226336278592708304362956901797754910210574759859683585614886556791324586065869586436142346122730627781059374699884528201533697085478952695234786433169697841153952460755140323116097509855853683383593646467526188681086474037205693192868327683830732602827320066185280230159833353513709664745130273316775361377302066505617815510796863360033313205818792327656216249464847925374582458993148005217913791788004239775789506540327216940817008395506785746648603251748543122695242472581557964233762616300105308005411775558715375527745596294172859577180243065376769238062271410475501192910237364806653001991504492964180499787465723200429770422100232348436667778627461105338156883160093651047380829050485144601400829486492234778199219837213486748719114031869759262158734854877479967735117549960531042648337978533884286061198359545317347554927502775090013528743181920251076689337266960997720324079060227002496695356148809202429022088150693237429233286291135351344376170438887538557915564585172757039883112485478408999731212136141352054413629049390669883381564797957205587712502610949331671136761509615671492452688462355979552997452858815660028278440734040013682629292965830933232878397938006029166187353823473103863063520119110286286673695249243060360213807191633576177105359155352000284128902148396446883730902421849113685933063946777930463885329471808201530298317847601372050095074342953238421459146442220615988127138703474174747117035894556334540514838016693401431887109817233955991630020878880809705708365072700574214265461161384612546461352240256972824288530768203350423791616374428015135880246574762663977259216502986244833669561254451546420690520165842093762882061093031613833742330614976015025960457924828579881974848835951464748161749457675241215635878052397244186741720349924000294587268292815727280282496424982631368670197101561942973053865553071965972869162215571903722511132178713514914585555321966378666652177922541129771757343555852003990677487682506318005286309320077354689463648987347565239282065899881014007926385120706983001452887529872674997846570341258087953306951746182066673426886226959201391146954602747393320355757568707079237446608262372581642767203280617026127029133956247934093971073319846382552830746069171847225544316884582952912156666475120624039767082527596563082724513373427503945892420375556407614587449046549762254226280126906506934712654126660079477946817402211836387055186851151239160122511368238279708194887397726791322387066682709176899589070635891449860687812882078778743487845446972804281282279338194163357404186989723722747426610715625025672585866394811825323006263080085378457279823349165651629897324551448929477092733035289854843731077096874797931156842540550649055319943008855993905170866295697658537019613239053350099163600783093893978270747539308512314369922089809829427720780242473441629408686396446668793982524180705130137131945696599895110281472516250415290079318678718016554408108375110152371944103202205576687218678282510137648423626331427128513736149769811724140162625687468610355826215285574315566084105631545113151088244128984131851782563452861562030441357891307236658421040836088113842021935505009535995704956875972025510092077655924732853364995457326849231552453727728387232168277071342639693002109534955765144956481669379534545738184475239701338298400372247082375785148010003410351502445419749549477029621440043226885741899763507089242811851671598223183168697171042380267566015958438534478475287607602765070568806305900628343390539908281620709678625898865871358692847983852073328834986997557731067132639531813742716836111768565167013588143337288245280951247361204608014449258330145234075918164669320727198509825554782840255469679622991301245513267947918866759432379362772240290597340715970174028563243332852165363898477446076045532850439579680826315349069478242798975974972140668600357331976586186005304349281265527267603946954042261323070086358420575250241516996824285553587130450270858815927994247638799137603282693196251158006362860251647534265381817022949594715431481159950321245831920537861731123381451946172885320052965922544473386372056073122215722192310253636109055627603498607146407074455937198946943573310549275858655667682370621574018217469685970821904489541540405302434104563082619399923607928243580417025051419254726890269932163343433568827052283011978137220942232627013597795654764144378821254801693449114066866038496299355137105832853707113711847941049592205367312434062573404580571125642773021458495998680925173202451972565856003978974228884926403497542976267701214067450067850789802644997259420493417359305227552074272323413789370315978067022054923209908819843151402804616676375685545739108655750802021753115412235055284210156968494741875172328917511377049301867278978055098876104589640222619864960789356056088490437725220148270836048229923125357499719782258979854630876954009933107374340950852916032076054805581039584625004029203159710166664456146658246966181832640960807988266043600168659341029682756795739478456164316637427456137156526725067191965608068196580047476973454683206066089742760470385389895705587066684478487601437130282910599287057142697722867142918033481339625220794601593240711726427633213498607557803348187370860822153424796803467263761439793045964257160587966333382977464230528615814053902338751917313340102706567127605883483562756265591973925185138044788468767444737598921671645725207311986036664613048008144443506909654543824009197073674004305720763980372938528397583531671662922361243665317324313466213039882248713521459445277565382676042839499709549533061155357689791359230295185752391675058334311477990177856533093588371000322934635119458867404169367298800438032297868758482565365133939478430233209389072907550639916667450522970209924244931063571295985683814879929442380030853611625849743908351422589920281079348990063273677547063969071583579351063500509324840839473145054686440519023075894119028708661447243867972950137217031472865378192664071811695051683407725355510387257877179665860515139764311045261102706169353862863531572655152679356759596820162621159757989116086347581493188942000068586320834552931932864706972628524444709792779916947815830860638767634054720836545439208906238828772702905284969716392770299529119604260207905384050856773667781502057458933447256764708324275933612588972091753403460573225423341066664182198680877232038443802013721156122200351053014027318083464516560469508352826474432560432482418699501888719504838630645247721748738507929793105323792478626577179996063212260970802774540035040995704338752052669327240970677433791493602509354395869701825333816071652810878808929636570954766901852548029057220651974689966219043977921524914447520622029184292038371300210330272549438194655873319763531645539642135335942033403406603829110134184204071098961807552307569369559368801836886355810823079469611587658834609939224826609988833453343534374666589025392302410638977733135972187305659645129689860638701422475759076034866946082130970517409404173276475443674028347756926620777573668720852001477343160693380993619882841961454496066486626689438594442633192750067314363096074307199558359657908847857481303604141059579718274728204295419032131938901892480874228048322543806435021452148268921706912813499485283746037877374255303628117340865537741424846631720041083025747831676629755450451748402046357859531775838274688883657377692295660361466065722517187480793988705689697368510328315736007673700916951883524614636244534649111854834876202016323293665616945272169146842169432232717447760818089244537688204492636041954278531524108557911686484351296064933516595465132413069108754468247281296977852068092606957323025867508554242320037605203699718491991298154495986881698783120914883122038203578069624936539465052017826504378931588901273530319953465556795031665541982211237901075354928642324338384414868633566531575875488193494151848878058846310348548366393253563280538104704864021446936466749221370146366424574939284455346650324128278458772205252845985161752267633936768002589711538923896935024918337149234285953925351514162820603774304546238797451616300134478015782131639179723654158269993866564308784391137634676210423300490468492520825158814179889025078992090431699532152465872846180666428895989079874593773956419719130570315283451274201350790766836783015332748187189997693534000803665372398935683620717688658730269372489741346537201199049021180081281918780387163666631370968235715917228913593219777585204202993905806603061252915799078192576068248597100810644417130175294431360486379245134184529986120179607252708200872098370514525461895516394450906451654032415937496609549232114710171824481523497840983554573229446310953006202619096254746471121677735952907605725592288283915066307014720166944661008113850424494297204230725275012061897088317737119837822623152056473770490626342788292387302592163033751905855606116537298154682646564574369374567608439643740000451381023998063804280416279256740326766595071317633648237487441083620295656040967320709597662037942133297139662250766373638414133126513624981905203763211958711719767743079552919701977413631105812021277756096938512157705825073573255385757333712095169878108584947082858105907741463724483442321058139229176494343108503874182940381632849487693521462055936502244429595586561638786186274892675622978092494824501230207808139984375858943974444834428768934780822506530738556957360735950927196046207613589567917508842434877978445881359004560581470901867557527783327839034456020314744090484662221691869277581758742264480744591855133842813431540950438562416868484629650237580600922194855186987705579747486585283342531078370197131743447642245789813176677790994626585611178893754487539650095957810446988526074771569122660471171678494355269268951825320799203737991606020358769905542475569034249332700805838295336256239802544812729364189615015231416362360046189832746930565098611575349375837194685206615388682232846333808943135384719139421196295290320342691553453684280174981042991765924562220453257738706659453782453562777367866711549789696884255927595066798422919927929958726865764484559402300754921950401622511253564499534604319422132293166645515456031372667778504727512684287966357906428041116749932024886140750488621593997395562453148078475520303623997078032860650103909164513301039765446440284312379480004099511674836806158703434219457327117808044425319461173396802416943968960593654348089337731512471663233479546368870623949671581461943184701727808836834396060901475064181898609618631283294588496392453494520500429443821892305101367616886110483217932919239632282492701797135196155007593595847522046339748740501041130239467402449706417758444481863182860278534391720092650769339555586025142769136561340305475579659413589718066673162264928539482641135128939806799598329454562811335029922012402109249243948302036154749005865597353530157615724947894819789843769882111618117835419847663850149597622122352018870844378884664997657746359457698481776437029989737493500029353812899237761229593887023906179647788746754291556776126471660218966596462698553619209831125356761770186301198268046014946832056722457279081138808302994147475683522780171797241588904704300966397287981267244758051231599898480937336424918291848164586162601513413243555318868730609375240284440748014001323336866597970394330156954602899275205203185228896228771206204249369782647943879191563934066228402860443626226946102389390540392630213583997187367935397486303658981163969947232958602983772343479974678459200066824220521052198761149179476033905736872411307356727148186390231208744998355858375377166750233497802469034056516002922829475487064331973331190068294638998788414070205839548531194006690718460362096096017969530918528226315023373622474529607701721398182540670021828768488067449609278087451810663740317658183328514518226295139727572308080423990014880945526008866533454543384227158515930402712356810587598485420266875250476815161948794656077551204358177213572645923813574025918859084018447513280851893190127411513140322320350042217653045868513147102536476316488690914086480395391955588567015882639889708625343851471465916548164208306719095418348075595540233115043337016477304703589967846213525949379982196966103485861912251175956753020379349769520510639749353316265435292448764673020323590317937700300284682402941642116216791316287578699028407754301267946430531785818338275739136136229656193872480142042135722816482068704244500986767085233245987564343529028718449878317819290992230568218967511288899919407765926801234542343819023641821589380271753740047694038772206176506870680389004053654344715308601848714403827496659767549257048745746082762842885483455230780354521467652747321339117389603858474920517321713237262096723870416442727632737890718990291005998497632567398003701238189698522202304713681975062109435760578744922715449144867491933247027638032214145996736805030074462383496625946096810929100956124388577821702544563529270383780976321725417225492956637664123398315973016791705518743865795012074887531095345389063397684239255822076976203001908068852964585611862486125697722772813633766052582101353775453757614746011103773392423540441576128388516571806357500511862031878849247652369876686128721748208113081751416423595314442009239141448072490993932730477629811298183345293651901998259533316248204107030777358854391356431114170049249938747250513503745343734157029231050199448136692217454538368762978917932652624211187382840327217574026992089937168295343726924189167500035928946390120837108090326838365399761284621444565446495296021263974541342534906254446243133399313923508865808729077087822398750657099491689116001865474885858043970223502897270122147463807832377000642190083733162553054728398378354804530072703868747612442086119065748846787251152201529398417881728159976892917116815084757017797369448928604653171229634170661283451315340432256607073770769744986101184756209534638194181826126807595637723980848696701757439287818066048299622732415591799761293540651284598146018474426681574511938157553383061768243976255649048807485543550956033450313123338486332793744215632437802209595893378076699697431243651340488090925992291541634696211954790323742201689233980404613805905325901288571956867125751438100633584627077664845858643233193393085294836496064375004991102973013254905480890676256037438047076821205522535649318734148879666503299394541097070122262374720788471120988731044150923620215813653981984577560948194386441319765749575968803889134066100361943363306620243738697696690693331942407653043461018022890231303717712547255398906787924671046390590145297507861000762649325006424577157950601301089024072723002754452278995090638748073325973528926965322940429151935388777522705965425969613293370264155357003626881749164887403187918666321361799213853299703190297807124853290087326291729026701746377871276138743094644981770937664378153847530309884121069766583771042703504407624451484981775145778664814834769098357925562543379609666267771038220018027277081807916754346577951803012756073110881278860291687147725181335525546548913098602365983136509311662240344855472850798028563240857167045508359453084856270403793164066385011297112592086911826262763173879487005421994994499926115082271761255435444069752161678037710342886529099100414973809520824710884308511702187116473947590779051069980342936554443318956110468163686049324398693475305286705645266578484623327698859462259036301626806881028867449344854770267669290761363117308318746024403204755595774204423697683197396107046625304943194490490236259542219983843646999744193065098550767452805870537263454140955511315143129283525339193180953077929467664879103196021714082501266011734652452206087754212869098115627115929825819161969958185445490538203840843826819552473619211280676023034393316957901025459517000490904129061277785466401353188758068878151983415036778334528716854529373003619364306245905035179412845709648590692744741775735047351276491352075680014523841271817598660529934080027290757519249845934204004494493254849162374970018389797116612307055347764997600974285727579197019429140815847060198307961292340672675531454674402989650546721336689479290808285123409172682991200421889042789046554400513464233084826604656474944467894345182432182738027103325900436065287862726601395226778639066830462986404785819081917177797239536089945120481178198590783250411539535305183679476170102559308909684974582785473687266079496096699711531991930053319383588554393943796929409383906310394437386731555830371982071685393210213084550742281466994874880891882335839905749171597929956608821995947945880905562216343099684875118914236225457454310763126946297968069870507117275906872917442956790707395452342546899746159233428685330270726127567042672044437687812016167441504066623007150431181112271001086776789166647543302443115869291134660180223935173992079160002828549701935054231738141079731593952959037451054795139842408688301670136010056669506284397847705145551978126327254996492298581074588798958706725877831009374365686346454485976085640285030476806252147055653265820522806385976600467583393174710850233547224531125842313048571758833853669906717741917555774626460139176080032216439993558690605975114170500833232576894353834991943027169866414908447335666316310778594969441841817416547833324785747274178720226995893888704139926951096664922001199748419989119898322426125663756726389944753911973506570572606428973138487195302857696903087440887532688166570722078128495874526367264633059118058542820984868414809750290052027959965754714607518688856424626797926436494506959472521942323765416862792543420092841358735658456042824268149742807420182009505986052551758645890403993861302197980694671848320764609550313581677192343882094142350964152426624984737185457218960660981787742980310605004202582564144413139125231104629718946853317831689678664962929077287481344323633604285462226778212090466638713862735755858972166131225269922281400015626050647641454163425350015570831944212395343611717686005210772539980633340025365865024957233806632293588319953055309449078207084316086159819100627039635103444299794578482877167417728728740456388841799993105223870840772076468621004657066022011785426769387410632546430299424555506257146568230225424868503081164570208022070395491168831425928761941368005509070884660470355634729602123383485463155340287479820123379430557586033910399288594797886808571204015773571223507704971263204217532415301853590789368031744669715606408341375404886468835506816125037603388854424401086125742943502893088769579058767520915745583400192896454118852371962115085736087328332743127179565260053122990431403258672244247070839697445791969979697808912283223422169030292379149168641773805502178607851389558501972065511946300932337278080683887491700579104835494037837976913777611503627515005272293091709280725389658560458511298194795333661575661078546910378332199265746169662166958407862879750594174026661142942711074694621068928222293652146665996881431530359783934983530008115230132896138097689712829393068336037925303597946165508842612488514927223401236923775475720622143083397969815862535138351377754846177985005140967422908141727565383469151239727451924642568800630426601712886230181958045810347532932407156709051133812389747312050664616635401028854774883895180702483001816040941113245945481427692201581433969436867939045695560113947315170619469993709605236743410475334364329028494671344360190918278145170555030851639907659851760789146957178825242679300809648845484876475919782161792854256219569166851360249133936285418679060574281029087778862524334554355026246590341143224957875009503410504186727271745571892069029288096381694627508662544339770215699051954795455545026413210198448735596787752965647811217051789756281700057222749909160207100785624990147354173291325787782541677522544667924668380894043490503739657156583742750943035498032331690983128979904782364951856586970938118936829883509795155154928300413492340129630647381035557768714004592688432018839192665931677497790790101827241093623521735514649654859963874226867878962638548776720814868489545364641320832626018533123524214400873431391174481647116558283002466130824999602475683849299385880915359808693256095826226490260716112367899797467650930394160511974681797716642605914564183623882479984708121028115773841263073112985853329899173615075371336656521570055335504329594118067383752913275065047323856137379228163237494944681785106881489061669986008033637034528692274620968771400279719540390823227368247673583478368310158874195204106519818155951686293761930082446785393828989390816499961047301875541261296866254271270328836059974788787777240128422957023328631938998770506753698319943708415812983853373583128893207842628230998967831909079221599393631640839021028859248888189817624651395978833826458663068194124461484061233523197439839898582047654579400949123833887141271056774201102538162654959249137103060319641471789415831269794221702715795021607942797564105021303426439049211872408675013842500819130213097439619945511544411503590667628296546063914003610504373477431220817723276893797513439291126634393635728861650254386509004080180856539854721675186073130912371223089565830863420608637264920823618457613646888996339491526043565458206737092755824992396748823082018813832316818698074764807488199502520129827063144780112930685292404656816333410039714625003200345164094622159636908367229994402834221592486725180531173897896557577110187179530668972728489630200208584797588568779586796584760021156130618749120017827529640909690212664417369728481111853165299016842400273742211677740472603163495689816718184325032932047846878103343214531773818439711111904151957395803752443920124566066616496562933690946476162274807228236604193965477186108926931224243790850833701480133813326439369419245049844736725983569387835643258191231373704651963321913439889528003387901339093859875880041196329628726350161354586946380257620363634481774222365739421586376018217465245462532962711069793889219348972147878531773405199751672619126789946817652626743624274527287191395653478085474051055731296451731326581295812483402358275391287839915690128678537115647386225590805314871052319001143850712005217057370892308635717115306799668997872761650355193450364033520041092665551339101776078724762263408129983103097312252045900769285918366264437811619035487160694958745242083414722115489081122764948965168390910513641203918323077073147795712888247205774051812659742509430363256892842520499092813659749883433130417422771281295607027770350737478876767855221322221409128338989394275474200811645525378650746935226003987591749496512829651380785696797939578985454162115141733140127312364471320692866795360262475961284003402790156344811356869332944619560933088312148141090172222491102457340993910314123225111362587353625861477612553685752951253488386336389270393087075055051271584226337856875368890414570328705042623425953194538712795896985118136204635740279365144059305476122297125675143939673844542374654584639014131319838513019734598534332599978325819145788442871802097005352360654846230863372441848159286249318547027078081798809050268482409725632244938034385405069040986396161974968130497155999572705359852625203113474714457629099165829457465723567453043476056522493619938811998699952972898980888304263130237073014185509048275038182876392714895733255693711986343623618327342784839892889190680992307951943555227940779048931169784395377606285946151349473146481699389330490922843881427588482637984254571244688735892271785460809660502303137356694890667459580009633380803884501573523684233033352801969370784886584376121749306272507982796292991810185899604371004725548731605371847342088342034259631240711611677979721588394070344656616471069248240452628620646654104897272570006743408958130205413637323775061865955571506161707135566832034002955798290878860322064537715484522272805731698927190471039279876035741344307626351093366752353808014720513209608460653835245550247960302602679528437636098594834155032135755779319226305033564081712829039669664735646300688875625501811273249038445862547521498649291372264445747852663170649747566923468631586482659566622046906970763112098508447980165976467543956230724970429059122371580834619516431712419990133736027063035679324488512368658992132922718631204767687628653875531938471750336738534367453219898695817420476658928052801628985187470719759404852247439709067876121982311377937828505025328455599581032104251013482259129469594367458235058123568645348659044444013466623867206588319838390951121669363151260975231102331624137612324647498412773794300689155398296788696265808539941195996421494718383261348375624162111184463791072492233747353641124912781598937605617708651517624939315208049884198419909738628465530364996148727233434506501303309414289516286394043784421828762902156023085065263165450316241985975481097147826254091141717996032948731558312910023282666092194958841475051264889555965172266716984974932450305016841056460482232469428823189194805520637472745032573022236536748552913783539577549180055350243350577195861147299808803152678913456145521606224334245876276306009155986956282060906338374819479844454507618691599426134368004602392662914698098584228179386296136082048199652206888839545449403591613093343246034349488439270958538421380411113052114499878740708569192490868861038529837069345995514747673163824309475611443989612341346152077470671221316630081144674531637220560166017639267374474276151117211258185666912573280196387350765261208615207844493778717602243772074974490258418706021812210900855897753452556377542079640046927516171601959130474432204119793807459026675111256860507074449312408166447555625337033512631965675241851925343216151690526612162101499524697687913315892495296633155913406898744496033170215645840017584145743673698183688113715013620842827945931406186263805763316988920207466586822134673221583489263106039312751705409102563098384212434338800252249135952754008470652167224448679371969029839478882944415308659528208376295333906951225215477094794209701265958715059356844687021129462541413387259514368715903885001799952657643797053014545909635243534200353224980022889176933231727659371728922615974150195659916077201809377778894105104949355541053762436190268919337114858774496360184833846928553778361268349105494184630444245846370015371078352184232308978285570558256126312388826168268394844580993854224541675549005699041390165695146572753790410412928107109552055229236045389023877226229465428566870971153502635307970451910534748212408030647639178182728879378482526935425051096278337631224439150582317078257555761955650718475800517311352353361065287737805882917434761326849816285799962105959813085575778943790068403772483723276043007530669586762866839581978388591521155054867131814214821349345878797553109514935684482128118996930373904786219301058142322098825980059169990640701274724182717857276927117870424857074265762012188714281573043587902552849250443489059146149639694986365293542026631361285864664459234330119521893326440051101570275230784413860362067589763770989078406864980677706956319413267709936038940448474973867482539762257666628533189842011031017847910902493736697143427833901307783814933485461378379682711776541313095293345801931794212244769432945246157462597832479800968390129741123424362375448428041098601143904417957849925154438672550227210139506062043716983062219338756975944022769084315843408979901287115172948003548748670019447219436191863562284314698951264290046095512302326736514885498240479336621562377774669026813940059786272440537488300624926580688970721516625107708590583783660934478709760097431241120811197036397431905238084736586798199680469596494558955900769082281524902357384564046956274421940930016179825143489505763045703033525702469782155882513495732075132730129781067772865762517363680073638272138049634699041568161699320816018605261934852534674898031527864028579431533924686460282072190969292454914087225464467079110030125864243463909724801686416398661244033360491590715553964975775227029892015360140734252180213231275123295770681945786594556305984463403184698399253289138326017502013278334493760665756617095730160501259825955261845261234025963427097255263787286425964182056930629171450150096393356577920999274706908946230894865012143182583027267169199310765134059879109953984795379607678908985982678380349946792762598250089294706354327346111878942335523667758391957923731929721153672959051553842584984186174658898814721170843946864101422329732614330883384209705235839906657484953127137232097814624846456833458357622338640475056851154569991064049133637496303287018708364629499812400899728719463769841523976483999689863295536641530758361946917242457392169143594620259060085138776471680817874869407389073422758950395982083862582249401338566977872741643652561398569642591695340730688947469195354206690551402089728325394967732934156189692296177998126628874660980159023869598482116068436957425340178243494337161008099713301414806360547666655504299121701272647583487886433749155823479190102673331511013192202032163040123787898092949027016732309505116747086189311870447849635033953471758491172681353019983663518906471152275149820238676034696817088199407123025254891127690479694700641251271234518196643883872342515613362429206846976099037706887872435390903993937372015644291894006250471438309373422463995856393808962052483132211768092923056199563346553137203778752009483637392807408828362211519042143737550673580596709933543647958397615536836977600675951258013907381671455261933461352025331666881614483239751344974147586682475613205029067100487577847283832152782871026185715610972897945891364506563373941961330964548245401850019033299978471788523448556095040062332958193790867030678044364997427228865387151170853611943749762134464454647277155891072947567125309218940457831100582619822918551795810855798889644315364180604761746093738458413054712046419874723146314204540489780910238963817661040855022904823938965414104844441666163403649741976109914047565952360694800938279285065919464832097838215263330544374836544720276003317836767720633970984132942553075741177922954032063698223425175023024596702482071952186702528398290201395660886488319337940679983211209801499908187797458648247180656306942034355895578277592072183251960463699645629083562924617288407363686496482969953229275902802279080923797937118872663761106299788019880950369446666000453061763469732590934918727351898904332326565199139129472824176112948065024961240368878916180912541662201010289154936608313331090726680786418627195808718144004602400453531045478028122763821038379396788835302748304838659715112280325273747700969639902378973676974999670933846948170928705190100392651083945910861112232125854821506864392323587774198338097395841327130963152601826972347552170202184604918937292177238085583741147795703369477004873075642744372770485350597760915891176695936849667445024901420872890794028019723768221486511315874280704872964859136723647394185537076126446895910242984190730404403679114578870617886509859629245882091629267580727047729535071492433549655753150188175064796855396710812942585313676785310135889095886809354608470297823783524773756692313113504317518301007770657095279420097859476278208524631982059677944518129978468477841026421135155350881706626889498322640166605752147723507814418434154654353790315844709610450417404010730525519925714011694334119572311712783944024014525821981023937545272819252408405036346511236131930791283675029322415811551924133167338037010379933583993068865466675959498376393640260017002726991317268098034492173813778786573695006728070703590394757401394228261623508176473120473284118181340719330621259324171588189032565324746435229518196595503933103298397314142564005713501673605685317144491794332988684618772843153233103907939318022831088582550923337222910926590631604981639688723977494368893833559786996265184602559589776228283694481332956904563189848393370488989820610164688365355702876426174267624465589398987234371312018909525045028721420161986659962790612963518636103788036058617029501463952288865687142450834031404347947484986066631348491071117465235086822704530048929609375502937957523267905569086836213014129344579768017329233656186102557779989814430421156882620084916116956174070982124531613348208423635791188652951130752392121283243683687776368647975411940440293298811587282535557275756586994268545080823627142319562817016369282699579789834285231582697641436468429060644524964803630214034557680643144538534364521127701717377240639708901857885709312304075101023688348121187790753947243491315879100740861512214934731764311292382666358508996622528702151846164218941982742611812537576813682464902174770888358644654985690783059958647971617230396089517104070093216954305598259103219192642766078677213009533395639155010895202516226712879873338821720120393525365913507497242940841002966746549632056857964155421301141624923240495481078926341769790427634414099693992021515395737894031459602781362652628909690349426883550076094035223378666409840665649519086312478719610876568935671599288876466152399732787616540939156234578631276443428540270422223372624356945035471552581562362667047551861739566014653010253366119487767873665204980273211555480090493789501866465772665033148633422225730778920518544579252621422262992930698648498606411132655046806374788938764181479194002910005351623923104555412221508622235595691188316250811662712638267773314982884455312145135491893128705078498548522972534815819301455633689276774635114575863366814726019360768913300834493440855755204572944444535787698404652108365089129778696715144803892401996286978691013205598903410754819484267148319838321585178396983380366910577167518727068672046432000578888620438991408875405626283978893662566104961756206195114669313692737840339794256229975669487628813820992713702411710494117156915662937870346759260689518888749988351311313875538769937489638392532812563988018797719818346508729931061940438402825973146991193894134641866932182636265195146763031405806879204999348873598906437654833446885719343524899503350419284701026590185561964467686141839622244848791078942808774886838080881685180770323573189566221210585508276382609603068712771467673958556374335531809913873182369945530925235061727074773005769662387312378533427008229176137626168669716827989870682475408003639730249083028641388165978108980333403761929373162556301812932791105640912605031908999624354441743838047565258346228819559736839288367389813473759195273785151760484445583026565785993669845257975228728672173440291658252082501396397180148364276831319751801587088983068460191921722719947837940617410643242638991159850417817134935258001499204211272981770050501602376709989826507585917308628356191681150635327189966979057053004109865418313900624652217763752741081493880328727955001530014561044529870264304481831596185203834653236617234862822342065669486764471129950154543888668530640313475318682188530883315886124304584738368367483374082393470112505775958143025156550321764477494447363835694741957668757541784643251571227748369681419428279819335951355344192166857734919022976643362240801074973400944898784094139919373215843614954879962560891036268384581520707363745714049767228616947868446432955376739438968210853822596524577987754012333605135141953786948865167988560277466280447785810097299397705005575359894340977755386778991622751241316312536270333359687343065792706759520510631348558517560314909416950045977204788051657828699930242624002387004167512880345419584677986953785535517993634609130389506236247045278872520583419214169921283294058128407707197855807820079443623932222764232283145123719821399952694488210378203572917518314436053978965262622365599232763520664749121842266809138261397765373661468974416442775271965260048353197401187939055929954069641895005951519039496902035462089047914587476147749771065887765034251623867331059152209180430976998879281624103522625022081140143029625076818765019958078929170235678283619556269590999896033044748635243930915778186948200295913605718008607320817791250483531661981106070970951640361968368236781766052827852258435956359084844754257809070698736063685165698292170526504839054984458149182263502644087887750669040395111418491552476019223304257886650325814204021831672805884483734368324867417282118136762998318969680672111411439578299988983830251643980215310807686955523209700711165201954951424262504688714691761687358488560512354287563215312851847775205116280180796981688746119339452948516523957565904561067737355477565606326201725970298385976950525613924182822173354879277073653725417172619575212962677311010482235126828763242323432811284686945966983439384917906337771746930579122944492221643460981161313742954690144842949751768847764252816410070638117874420532475511978189764585096265137845766562288316413955622005809561439456478890956880688611463335426269800804845139372484692560831750232823056861285501885753383628894999693176683259315779793076212992345939484536963462903223032208586987989697448886262927040140431568406102645519206433632954019068789404942695579799568363027779419043283419938974886964602947572203602205943702745257424829644204522886647915353577517607716358775325653243321658881210290272735080900586936328449898443894648957790529965918456664877490787862427108895325719055105823414150305591033976704235172819356322916451095656968463799178751304037183982609788612616269472513993533327002777464870942412579833528288486050185583051298975410667040454605009523918502374944639567795846065088425609282731440553068671487950190500319192336049327784040189816816496133247309507024618415289135255818574735293359819201922063411730253363094576603831180775809820234445811012520595024259160240846558647035252424267819832429283555287233180901002854225869989392356024395111144453311492593674951906310706540117130506091395106908872874273428175018681292609324331422034958111262474333037202832908377949032726257985964187903695469744477860488630402187789064586043441017652942519848287759969568326735810446381238503357206291917412233855117220172364255514353061466444039363054194842854798214643120008732519951702109523118016424300284860299611131512035636533144434354423543165753272717184208081587813589980514724490778804220385705741286694775739370666182633140216436109696044118074795973941915158282934178523608792205622340902748430165156126657946330471991119755828203110625105396429884465852479800694328973190235847562990578198499402688314569781238918241941844374218652714128131561413846932232347499583282698437809473407963372700726826357806210162695153237832005022030654686712907349380526346390397841021154297354601310165409202071667509262474144191701761336548898600497671762467199395335701277977916961575055662697042092791578407341140228209331146083950172782432799439304087913160540720935936829286221968636443069519656793803511530429835248269470653139212076785007967833073165252754152286524444775378394878526958590823944339606706219863901723242860279749323916544866879686936786330335166073027874657164229773022202962343861517028763670607052417818725404435198410321399690566717079823378628256988851230576333966767853886958880881133209570386523698874249712256681608284550064465769682368769936832244418317124427227817984462312092865589572007359567896581624731020765318360218124981837231318509530767473834767423605283438371796168472087395037934226814022951327928230398093788268279052432257854582153513187469991154993498462585484475974906248221686616500769271307433497809817223154390075892519604152506068020294651980230241934133531343542225132580441389221981081323346848811623739774928450706099282125986919393662473495816323279098063281544754236502157888878002826000088219539459035380391639183940122830512157812161697446873489133158093735449106179746632704464817778372291484376239530841782652901232733585043763541368765374887570092327835172151816725954241518006824899170163458191665657141619744177626628374124042782893904753430319138230477984207253428341164774998068288786384041588656614380589652727780534348355454752867676530383929031406603275700952639959092468226387288703703031829829301757891077408179289087789452463590278081854412461965023431457949481490025074892771208673436682807879577615164070538227651484988697812590381238896203881913122232415234132875224946178130058903325793152847911044492367152696512714838033525570368296849165382123097940138866661725927324898398678373878460204905923258823732022292710779202355016317966530964686278158066407637604114981919218738112271372152089176739116749853365448093963661872142140510160269695724530753894735238563562272789948897470430942440630942235191003290320939785602540896342971463619614771723848091872733745674249439491905736028605502226715974528887262616258167232857283955379831540877087089133762073249498194617157922810223788835343529740268568093936055387430719460932488092237109427348732100338667132759261823502889171116237046277941413174811242078124893032932416073972422942981541192219775262369271324162608297288355764089227992724281184802414150692159768520722156531381496581755081068523484815556987108088632116678431950341219839020530448942283939575354688358424112615167388663488274472931669361615778493091225661180001530305349243137220270677669414108935990289459155248298389346429197178157149389903041057885876320765903565970225956957825974404927625357590613909110178023684455441462445238504466750935249592277837939978195056222570708191329167222927356007274922716926990049082085888236066930864157035510151437797569629923573368948003251336409809432971496221853233997508834915642914484111207964851486678491345207483539823862821099549542402022655297679042561007848750018675249401920742130715150161698038490830948362042682482585916041351768012338233721161667521229231624852786562386329069653300164459169458195085648340933906484673820434420480186412409992979266970725210300236171505891820984639548284176859704497894645591251023571226104677249662110109280861704429130507941048756581504083540914149677248301339947053888840805301968552235820896441060312393870051125274776112351584951878335598611441447236458715317174428268180986827313536032575317746910650415423717728210377935772972980786410083458484460490473191431110497591454390836372767911887374717891932799377373643253772278501463426061374492563682015191807681045990932838689671196711817460626138054560027887387780953914871863356040243896810257573100543301637268524902125660539800597558935437624136494992494936029910697788130313479788409439295656879014056966910044020043290673722089782602775557884971695043964038186543308329388577703020723396992662491401117960438228088071598152332633249444350812786059751882820665697518808905833712712160359127469035414868841173305859409712425419336905713549257110576347966397959606594587229703827653108307862741626076440524073183645554124433600670935644703678747007282429437047985262761508913549246457533335047675100787500195149917983280518668682763580620916931315541423709481759513039187125866070991057406557558951013288560585993853779681380709361526530350894131715139033710975785996178341463995025533642122515646426253440536800508245596325534659282279104375008112365368438695595018451309225046624987529103539418193142307686856882506138169740185777322052155469353582893463940685869492449317566708750253088118877982790751237946563208522666679059495024766089005655095643629415165825032890703052684402055432190853759701917294881020660629010151413988098909366942490069057521991654590923673798262399311522273817756316931670424860436664681631138625269821269114468273801980481016540506345049686507766285332732116015056458910178801125381713051769214055023043716139848493056284129793882313343470488712497519470164520661340822212972304080090383714090647610530793488158180754944814407457948358221575245234578460881957323190230168607782127647668185400720133917425861850457563619871896661959582839355173619357991248544410037794941143822875928403760300494467791327032128873378684617034807324262313737510771953650883308833289290119652096447825049300284883472906572180131679725901012642075024835567526119550525153350682726483877094722247137809287563958279869097218286518638137753268811978809228561943982738165385975964918345629262456401677590473355391746216540777261098072603329003678896735094499410755691505957806398359062517288823028136290629952878508213247435619546979746707517783316358269050201921117092685038890533676826613940063379568156336517231882198986502125016853810767602356063776895340839045336864883388074725967694559366201462888459558784095009130286735485812517471271952324968812697150216175786992619190994516932538323843663156140771769733174872077779294150352341835272114354370917173001733145889289223125059682632028838665456951290707259932096005002753611467684329117639528418015931159135894066290724351687921146213005590306031444226925996323228392314489915688970515217290560931146647865024605796871003400991082146856774082325240363386588802878964557105792260786680455664475012648165447874867038169347237199213706559844492033741731612054346179881191252735042024264945652084046286905261333848569942533627516719461557276237274716824943211957156461102717258100118904813503731806088227596538121648767237015337132560844876145617930870385886213550877662269748464687777962429000285769051318595506186551339047970952722462757763256820203636953999115268931472229591884565433636646502569431392878758608908610985028562868859295684922514085835874715484206326074354523790148208234403076053957015090989332696267822426553432516352989424765069969390851012389468299270967918227802068452638105173319849585456739495042564861561115460967225087334411760823910249397330041891315586116813391132935837206792665777074353984242769363250265799546177985543410093702844144575645126028418976224293355079808517258108010097886233395849962052669475991814405383021274077018135108338044821891039212282985784637358333151669098377495629529765267977641299633991528055190590343545646964989122211064308215091055513333191724275571062638177736578284987447764966161096086660955395295280902636107352814582909200169944608146737084782221471332980751489338023602786681546718357487031167373897727256619475217368402919006317958715566141145547100460445862483170350830749828604591866679182490959067697931095816549036363485277188554038909668329937373397192231881037691595458613520209051648087481701869050271504954062486417669571250283893793102852687913974314477295321119564262666395461625878051758215881155563699972007536912613959787915204979205158169132726237017160359512511892759284101640524579547847511514441263349423489270339589822762571570643679273599145017951357770169527587011888148939217227624391755725678256156369403168535294775284283574012443687958963117076826136033887013578973891030946337460510307725428643885199780378164527531448016022332179127418663679599845287056031420971396978514647421242481225804203161556733491770063936361351854698350126109062245255320877606598642619625086493388146842500958570743278306462669657767712340522658258327654059753978076275430516689200696935682204003899744454246431766696614239644972124313418725057764798723850015846371861816397868584115381819133447437940214566974929225889282859789318642589149736851035334951203969830638652984992095672638801352613156179535041601861690040282533033203708397278196218105159576492225845696411173064901909399896147102962382341761732975866267762799244284602538817907692112991119709860376831604898205330281267869384479486071750898748602247950561633652184427920567717389246108907023990893731290205523818248552869486744045369944387736399617266898195868440322253616172424476442209464801924178253052775531220608730332175414318248518218146467040362570391835164334576059248633537754600817196489341754298748628513215495007482016634892980671433273698844481890286230128848828873123647598891188303785376086299623490950101157883299835664371606328346307037574711611210291810980922801748452162696111951632958944437091274827159758933058458826369116245864196326069408972660424841236528275435170862357072346129339542830673162556071345143610698397820990573804512962667822724644452395031653087244263395641786827403483942736520050369083728732004180465096451465355762040086428480183114878691431123829978782475615579736908949762353219026782999420712764481746986162461852130745599282808903054420865802511079530494910542315588830681286636896275285339589473211623608818305484574201973429560566242458151467724945029343074668646835450402051929586074121940770130351303038573312091106223696484681770800128640116912039028784987148690342820169522161766883336383832903606405843439246162608223505998079887716550547125425701218090020565300761305766162311359263191428491538052320188596496218021507125135442324178616618524422466734143466073634110069137048301916900825756915563802850595940754188268474959722413777668680029453119151587629587054201800141980596275960830979851579275469268773082626303126202442627998760562284676422049202314773022511821129517542986426652134730765569358284819887216018322380117623257803530875079188892951712523000694182720760924977707128912674539446801418553648434072353934172963347868228487194799078690475335373987755004665591943927253646226217346150258034632892201338710194758251030826633289104201754771756053703590603349721650644616792948241211997865681710270190474785363737797435735278429259911191905881171456277870029763782649379042890674203002472697449437821485866125528088134383457939056060963919890372766596079373003436220020331398102066805918017349717091625187047129714458166088677777491437942017971923778169215474695445423294020553623938600003641876102809604891987936941290112444427523733036295524986969926195012287332951744876907974507041804373192499538661044578421635158706840600036051916949468923806437409898502786340879967876959705780950867396722971077393845806970529150171461247139021047885342022431442180968797552323337187152045670768019225643455003089184983785455546062772899744457829338516452722496753907619134735894540122900213033625234740739275347273320619637829561090753656564129494219588482817437581992328303843589751814588022234672263796426167829465819439683728195285293471421639457747219971856916950675113021105802062285962606295069446321590421960854249380058174303255297027077473749885722350764288727060412631248889716930029137044274991926928091742227640371437739004955479308273958487749643936061566854823290052466918844771800193731492632496253391674094809427388047232076126422967302451511223693967416381152421778993408625165968974710598057174326097599973647370233715992354803430526848996895492309528972491328731102249950533497015836275204189751449181226873885749383822014995465362323470165868571375797220842987049495138238113801156694004674772166750746314646411368776399046260254352488325370999160685945654115074240216997663596255353597892852508742815198484604503334718327832788689863094946829805567168122374565109884167899621916174088045942022050783767094841453705839599480517074800960739821502697144225651336588197781945528530979385557849923724420370364818635984471485886961975364536094237049540169838425629842610177635054438686264589095310551682710945653322485179874147389784423549221742200612654937367585623371926450867558523446267530996304734341417008362309739651215685243950958665132704245861547341932024208685963239261520674186065096609470300372878889404829732111978997208321831874903668202658778825152478681324231128454454129422031687479464131651670602141413847736225944728470746952613575961564489136653445675442828916236328515500198887827171381350044023394223869240042702743361862477264719574653489120108486245295919550751262446808110465640433165497132574774981822321898888742634439863140449542570016545851975466048292006487811610759599546367436562410707731959372537989215883423634491998421109543045900620133910380498125253203020997024155526542962647292158206401904131759546009689965841091411526811171416260107343709609027460423233875734249530838216409173752694014127775721909869310518614753142684210528635929881107551540991224469749113401106097704819923083503892586256895653804899507314106118222611397522996372848113417836531750151099347614278136632582365082360044590144748750063669001140355594476544356473462800554372443259055798441601763562857458743887304699645044092348029600301728988170611810577908250203599559339737110640772189348820632781182953315209306117429840074695076587487704463442393671317074901448479826780884178194325989023020245478128157269196633810098490154803063217237880575581281956216122572355023976119289395771297917353419756901180605251419516785709037908559483824310799448706690282379418884763090613473023924756519491823665646956788606475284125356281207454203497788452461392097597676895553532037415913164045220348502908814250179953977416086761442590115588680445701899615698627428018003752464788609276127630727863766323662201655166501322555014428303342156916268276583616707287436428132954880712153281808823501500554098164698530760831649901763784951372698681397888730693722397519045807541687675939742897261065707473260618917236389299697290505368851043292942080168786203382424217561478586086399382290464252080641365943616438858078609970274828698662749339867733574445963372863366743219551181078369676193681162966337163699634732145886069850009769580358757526499801380625192842295277982382597840991579276861917885722877522514376908437690298919729454187801008871841384003010533016557023104348990013480757881842092071147605786505110960546440035350980949047773437443063923929052332846283263997576975729909807099862241366488163477999664474794104273601391042693021493968035800214655739359504906619226692890683791643910761979467817896487000621787165878616230302610877556474794333532188067116370633658198362428941013267484450859222388595280359782493900109230317297094635661047113821492808259141320714392924874140130348661846590323393585855600851263692963809483460261418396158324768139510670036594966223049967193362938801420111029870470764291483483824250728646653103112585054290062008982605078665358173292081428461603094120604668272848593748636418033075267878596610204905476908054505152370165971106003592972784051566379534859710399866723991536301441983884179392914297260784289407128714485265788324585876300996110415701498687975871524163363687713928804681962393108295199899634248211459305572802826177108897901427052983008863093452600816402118061793033722956853625319759302583729080825998082202845709968794884871230826827265287618843826339100823651890101813310070758972005317086841665030072027403016425390083270646264991417205648585666865460573801751206167289911682770717698615257426076061283496291314890992404907247850358179887129211600207004806445248990733607026239533884922166383151830117588637743211755158791336879031388436464593569562339297740690546248623511176889289688180589637768537925848746615293848364296783266188717158053399376784537818239387989619595441729390011861854840087733131254837581005427696806199817928112133849551677053339882510737067839789964532788967743959904485636418003126299217658440408041638374554913609630822435017172139015126789315146432033085235087680282498413501236967178330713205508330944047635292545716022090608794750591451071437007457606696246824577646984554166513835355911810327307371264455175950106760120542712392963208740878027721100277420745079471957179462182024034831735622502081594752611547985113109786575210191190803161924367962981686366268535488034141585205223244788185597212228167065761767760196333913402457706729485787308981809907810703951051301913807466424788660338790411028878441266629486192625237639494619228502250984762761923349495440986690096943237166733840588042490440673906777274004565861966225207230647344856468370862561311553405544823949734690788162786461041750186683915031455046799228324178113094850971424235503653543728517614830050050414304046541950776936656606908658692032333371693478417734635022055410506267514575987202147419552968235692936958707076298982873896063316812014870893038191930371186683301688476343641281515440226673754998831644678049943238949904595167775772957768072890184844011013597720790227080920943017821124182440758276523592944953013189661944248191519682777756112865353882167210883745460582950652295500065840724555864631081201316193611181227057621353246426748572401221727098573909410484149246412629491151241827047637726817701961393201822715567840190512896314456349643915197536641269385611573481264926983490011579031382324441289550779696362560991014822302806242291437032459535055202939957093081332831666614237077046444983360837047221640946948031735784559704708601003166834382008277194522491510836063051010740713775536795402142892370342739892160891573174657897465461350510225300692472823234367212807874137840017145093935856610588815498518044241588076703897931142565642828160930100982747955795752269998267440555788456085175453926332787740441576889550918172508196289811183004509610680523839089551173733227968152234200515373664424171312158078451952497653176129541893335017579616678171954776198767415159241901016471995206481793536766246383759517383895251283439181615631276166519309764419998408248519648084842913733267507143041498904819342061037602966573612758081366901577335117977365294772634566528822089675764962969866356299033961158647085998328377004194471623719083883751571155253488880967658927026825278154940768460648957563803305730227682038043357411344333802804962125212496677056618559812756306467451830479438301998013700235533048317237944871862184401160599238284031571706455701149996150298835814412376539255262794761667479838614205480793348606803988865574308866617748364649874275193203083148326083915133826323096055234022017588432371446812436629091782009173569120156530334018443637901522025781734227977744388599454421792495535021518554402084846570504691701131379201947370220597206396645003278999173802748569588978879739757520900111891782037494713046362703202569489220513959212976761992932606305902123445410086485758817567565423934538261188114709973045281171861691067678809563176080745590484719301648743930827178942359647186306059497372198831283936984241066363360266047354821093847506081185654866424603560749251356904547019886259069762889176629740593045388035007491720029406374796990143955209291901548409814353613353053981842090435302683938332147366644483109277633920370685253326866000635619693513309733064167527263250272227587716126271711502907525063669862969095694409224925347692770636720236413190023648517193858094325696542776072000895289709155776239462358862027377891204495182250738465036757239393056151869761427296252133307686570520677956121657521180948699859119718131738796419139501522728837448048703875772887224673617399552058390857185816025396543464743234712715570487071196996562380334973614424434250864778981823987277057845914673963590146836405555337939446497921778447107177920704963109106026122188280496404516526113670423830503362440225077272296962003039637891935162316023765812051556514489738182639745303196261322432623088570873510638416178015990617284415077423977545279178011011294956492199699298206287074670081964093794270494795930518995167860559869872883635287475789047464456888906837624557910573115169412273199533610033603768248791862292271889052672972668470627354215580410187444618812120214113131225528053933407018124444246054978004718207475264970217030308806177756418573022425008291958893049191545662098940423668293821183445153820640967909064825338598422144076342192535618255475450961846772273378522348398481358781504386019145909219599352715468994695811891065310443222446261534489514118684240523517604803321644965292652582184922898782824227858368823669557858674189031187728227569537947238279139791784370744853443995622516006166339700020857882737577019939440458099151905113934698198040741717472796910594580005090390370218361079278895746700005056691606326497666833786223676085274196314355542997954940822893814626076221813588050211980469164938368309492397419739946273828130392112891969284403721767982179410634832535369828736761404857732011461993447245978771929635531641706392476831162192628144209288614870162491587037668887170695158808653169859384805914481743376997986215879122298449267191384063878427336356974965583141376451729780486707079448959421477658005990694239613513109656989696025279788498830247370340438160696013142202456580619345980131427554385308626888169800304980171770258057736666690312946034020463918126435649726436842058526206803126150729921979315483772048557370961577784278421277384246688481911562492509109024828744607369262892906935639319575704416554294263577831650714585913797902056876496704765169470411324797458568055496058787287284471220874432405452968680648151479903124444514583089164411932367010375311097941782924455066779036266317171332200810455942460855662310200030413038640848773494620332638649857773334555478140696479939586966273349811512900114529618377369218259943508536228756339174921425855275159216509759937246694986356815307447674868207332001355514630981376619956983388800952030989851980418218189671010906702541286675313966767406149391433770055171169114568073241181642719818296019447698586653831576278954588373520288264343008013332411275544561013185484809067954710687823843423453973202851674817457411747727613521275440915093627789830337540592354039684293684640665581364714683559384417189756809983318040832547858134631052210026830087217035300292959103136824151685822617589851236447235806890259409408475479398941953690969336962399316003739706081589231543482417221778816414736393320305741502473812895945451696050109845823172652479974768491502436787890434457129721306797769784536892707145583193937646598226750562782983956969650365155986268515287795382932322898813564841566360910418285409421569861251361445224417027457500922040229519288745717644273329474993352676229294349330928847769627147180414093057856489523409466720198023628705385323379473717474396868896368555531078900976159006659416610355655569968304772380437811681577502243365746939941562349398208610359387815021623327940385738309224090187122412602973018380730977389079781101064044222595167461391587960522037458005156038369656727941899175542575971803922052889324553025235572705505739990391961169503001823086320772520818753291948253903297553627784719746459346724650150310611797408155095899493514632383926225003762774782036050994701308633517475493872935603059985605844791987647848844041765298321536508966955731502204515779723710885709868948080284389695396974345676974127980496335033728656646154986175137324494841488922643077413410569797134807853094481557323766997576315834429876287869816647926329358186264782453236764704996302269596092445785468101271922575727126263033386943091874308062979583399994452573650464232479294627749918009224548274106886390618662640993320084003075756859208788100053478110130844597934748666436619847155020925589565938904755417557534058128752094748610537235661133767064416131469510153256994425870738343468603485138917869438426961216964695122819875887210578572053179019949247178231722033745844166732862732680022516427011494224590525720209919920372268359634291100228011433326415420336960368365407524176688271108696311275858034346624350496116272969847365406698134058836238909277121574745288173062596102444905979877947226739638363367487631223832555269958707690967375934425291870657495161129413037921385007636328546963383380867417663160894318714730024653215091695557172404018157887315414241181531569956573003613539611350105209188679621973499030810423206240652972608251358037992480861440176812745961787095579224354775576013718932274890911359639014054389566054256067938480465808549260943188308973134491624375956956400104541508379253017046171520904942850173204538018288545569577094690234224855500612056617784631771195754948450134006972259945447084752798349645929269447174933348481487069937214126822139812419365439428382161668138500019910690248001357331492471185674116403497918512633574035467978776574899530742375223707652150096102492208273637134708557539557249081978242830009720311391602553248798985298973568471045270695005361322119840212615465561213477153926222879763066671864589460354395018095026671264377261584763441011206152117942868562474921555889135424630497558115414156055863157435946718727504218580775414057918230766700733472853060854720117398761240916059080343305778257941420448795149196790795405050237996003641977929342017756044655178676729116068611286713694593856228103681129690325080768157562119033534186561694639176139925446719086281011254181294742345691911968170454193403552166393965386286884481099164881248212184787967112408523542440092434605532647633101756651517310646770284391883203839254439046492302170940501775176808989469700318320759945207740058351525034270092815520173532042725076064469887625710200120604758889202822411889861797296439342327073917245034115690303436252294434451797676397271702871653618379918728050342401209615396630035015113896537880260471073063522572104705439254938141436520339637778382707572662234496749396022893290271592427523982255705822932979411955482279944419963116225283386579659651177158856925737834748689215993221663949755858346695997947536669282182557740212811453811703057118527575586798669525257681455301448095217882210826466692224397457619269575356566076572294472544772650679088977731636329814363940405038523479383220686360687193151986241222536758146165848977111077516194243120259204080112875428089303346527613228839257257887387268614741742854323456378889033501919843856153868975469648475398267968667952019331764957270696368628614822008680326851877397987415366919337844427431482492937450261528870698582481842756714325452250860592904584942764110641967620728068959366685387548313296258708794313624865248169124715802728835289623700742912345420869170199423121762933894630162630001006510773966729978535810330647161568954491719364134114879547793353555463341059191064346460817533266544352946153041780951890937813068059454908181485051610742172344200142996929284122063350599041686362341726805270504338856683961145726040483391221571609448921114116769459706880273432952390777841061846655873792304045233329704035654096495444440294767358269846871260147236216166791124584720034208717208652101153174735955435022599165674268197096916854626752871933383030584213782059140888567992831268899154875402587244689198987473307828731072067092057563749705410916644100872175878475621592169015518768012624424675128591770593433289923707824927677725231945448854547309168899710017762885725739773705569759702608600380760879202638196691904323411586677948926455156047516215382991207290121961785657616596523178488571248624155703836247942957726980107194605118653415180038743445545673009194496293625399465679546637539497433276156872172873373259665124995415624506663812100655168331188201129366134594216888821357923472923189839565434965887071065270852510049926163152040162680303292259984953108850954143438070220542921124838540867919374180098273218536662825764494659094730488106950438466054513011999519171801003241403553496417069221004173884578927013308601818570065526169783217823256583710747317161582119013461752768170777279047197918295961111236856360128520768613450780934107818248148369356552628385137297428374825367029230270211157643643600577061313133273418742112664915448026205834428191885829886261002129708117429416711187534732904305371853048675566683967456296585582277997995562532867350402057487562612731751492735731289009231204611188048118202841269687098978321970910403763144115881921560936508501697265728431443163697626765487895603474452373791676891700330777709722768087157962507813183985466509820185937502172948570434644292205853971473177785864281450386600930047789077558160063881468221367180485343646591685330092451752969539117078873625215858884474069918507358185478073551233484085490281258013466343770718059435328289311287715848029992298186314783487869089897990158235268073695694718313878032282533532145059339587420091372904211210751747874447678001843724548279894470862462408304965875347206262657885102156420202852384071735608272809709653823652380247143043246764969301114117754585968462291457151932192758270292947037745793553382848265237569047903937949178492590968436299234277637658510708087946086569691233279909972309371059819719332931295061577413105810562728177405226070536985791681710093740816805542272339645598181992632927659044192590725391528038866460849105324545999675818090574918266817272088913105531563202980491330321446474828659185480397676396141913728431434060992416255480323054785061294247459820135590354579417442427945845203448167353504914375063078027088008791909419197631481470658670196975588645391618258217937539808961709231093041504636158397590986931393457686842637716000763631386555551538219994842926847395017307151121668636183608333775958481419456525496347036619725996714904577084888694940290479332079358926646607897622905612623674900766987795326202804902636894482759526031813980613272265296969229317394515048828876916982172621262685360277239125785713140581935807323529339722270690818967356923577800189878988911682075896858713644796847489538299203533810688407119930116116229614391269259377351690217166496001471164937917755729467047978303372156345112316594580197430638814623918153699731032427818428320091870272993216335559309248634108965987524146952999774649148393493936673667086615406587056360904539920912176801301107090828664271705348890500067452245792534936555593453213709945449492585602803810214380938476138345766744862712442660830152547916332398481050657079883362703151739931206384792744034993624781848194848653333535324328222850021207287131483378343613698999305721778808803826525944216772029813730270356378937977866442295562960407963414398363883418645291255115557364675928947481427160464714895539448931093563202327611966054511323335113329051872322894023843978588196187835716169116357676854835029784227896418928149943842830301478621362516021382897823668419554867304445210978954730963908031294348789921965901749095181418505194971806149738848560901230307938238087313577572927829670350035352067415969875727491986410257201174107662126472627571353941098786299683234016404862314321523779706308018087651995729329197636055993215263509651397360736962214915599638317556679211591330774521845405292530010179252745207506747224972794900288814224107548772589958968611476315252669117282898511132385947763247193907255078975199259842569054861170340467389775344767788495104132596080135364542380212481540649484406866591147661630707950892474825381574705827295280678221817654664406733687260415695205603937421236307789469883100921742343396388466248353720419794718571943290502825837078990690030228947910042883474065624522237465751859659460182718806707079314730939834479881633000937445868045643037143177959356059907373194586219517796656823076636411528638321184699621816490945629402486610586218678645353717237090933184517894034327019520660147265351549585963495694045376602922342417437784707830663442952091763832104300801695904590895067976797176551307799366197418576881039594853400568459655356130294838834670713815919217970452083006370158265101012251088203469267288622918226900209577791375999300023903065268269428872891670802291122691422631449061212813844711544417273224641573115368420664057819384724476582698226252974813245305269444389069060923785398123125681623295694004230222246448958202681442636063780739204804498413575870939266153238419266112688636668846467950650656725618061637043890290868049891984393030019496755220577773343520443137274591637382960736633904438097601651398280926441123094657058411450821422046986009074451075829884470874367702402470321886506757741046955727153516504076210759743933190726915033846356480808512900730113829928761459896196302103346461152343054331782251010658289836599628244780296618911773498623188423351152199931969748315422635353251735775824230528392071741384418059399558236292821660735336580533807224632613453556897369290822580809844855731799524739985786886238428655842488747778881970133517771704304059182298432286514138042569853880430128691035347014572649901529680661686651845997215708102162698129936416579048754491559880215304896939171214619628418251102509499866640098596720887042727212703255629233162939736500423661438672301544178093152639166953771748105676843253478604288358630345560918884419030911308753030767564869142390584411844013341724598643484320027873525850138984393629426484677636743826491715018437883620566032602874584782154046886691766627621578778144394930386698610071641652111870892451351546064019209818663991672245874833874963532641994866303789529996961893450073615674536561561915962288167043321746824328422187434006603043315284156684888843245893803615653248978391061225376248554881067590302149488337026063745658529621759063835728929241774193670826764296252604427824519481346495215142888165719070232032552741318247510678622968970557699961577526656499331774997265903992700734557810400019272160176980100721869107794626996341985067084304827885459438277421317339325732882397293522835266746073574503837415881674209756018619546601543548082449465183333353261709568232875424542268975554045055160461148370560869774238485514937572666135545097040817613908811981006510253799166854076931421681875872863053517452216782261772656303455381523378507099744110349565493151478675937857076632933767988464283698504013058126765119546896595536293365522959000663188129924663180858775891253074590984578965916390908941411001123296276700447974212696550148522540315750176000613543467559947921916392071841020341144664053823698140021479865777492656026461613830319346818313212439288187568401291219475288559428442151952221869441927745210192996755834079871719545430294752985763207874607854237850837197576035051151537646199829092010808843230804391575924159521864527545359559270356004749816979632143919706095443245088909472280398676887666545992093892225160181283882326905139364094749878825141716100680557180300846829841214423395823217505511667474397693505531160915942637156534986235792509209744311127417760322454016706874357879900299761294344541266439235711269546575647173303314056527063925366551314596454124646078800252206675185961711380799016157536815343442987051907265613584941390604029557828474623993241282438587597280006055880858665031194080156123855055364428606954897103295318862332092133896676136144712718720982618363589793821529570463950068325775473751246890934730662290981988325555066627408766459826199640374253571347451430435556607157510676396794492473606230851774850448640638295191023846820356559183236155252864885846055572097537682807509909294175120882041218456519106272703867385638998810654004009311078757682053902499642416491179843912708099591388015062829813445676630640408741824402723811279826139780323135568690802297304865943304980709542987502107061736809003961376721154697815157860750580565358652062579833847190551252786516909039770778380703617804159072406424312546330548995701331089171367830247006823165881647393611050653132037894165534343783450054138818031852297251299525450488279138895544317046265571288182644451736897855851863079922611682600040315536121813577966338762394999118200405516686899302418471208858882091866687649402889627374984621912901680851128762401216638074114484960348275599970192387114241601072841711469224195425448485138376000878014302204138838158823913927874689006768550985455818229266864419408214602941075323845756849058128717407416131452550663415352878718831321031188907318346624608361176660235758614266005711278708428817942308081270547300708753545057287503291822420676681490989559469691995330407952591293082361635606532682484609036243768037195355476681594563866359340124312314096691955360945230437764708959479541956372578100624372959217553197993354722915829623360500037231678899866446273406038925091091666223554597625959398096176580748198924770850633519226620913931423817352989754778050702704957831630859282175152406177699886313526775135922760909517950576455403553852309736028026404496961235449468323166534534249746902453534502511678877197360093559748667321515699928758391453021673423209783175033914007929830969687965583949797667701485516726756870888111115387729508327553106307270705897636327094750175778642340182611574320588033105494053552355513282235129728883468631147430937249026002440679011872629724425479630182722003564776996396552456706856487816656631102023604766771307697898795448536762586478919308112433172423845965410588868474529401579163593456040408398792226611285338275087121973785708872054423607227414562977504094677881468319806455249941469956634208477918524404666234069456364475457254194130303550994907276734037761125992848256462017674189787931290538960165829222135277414713519152025767952581329865445042196720765244490843123060482055070067427820476625911622566893110754974559987925696945089218483142787154192566983159206488591914351211294646249091495652553284457732093063640082923266506528851345945987100184967426514397826604591416757561871981326665570177516407646806801913456164009533903563646335922832189752379395969304477228532995884767262905149324808680717043127251841617240061584004899940600196319676005106507369788569996907994191189237608793003790616857478293383500185039830820689023909767904533585808171594461044473220911262241201420247383425963256368393514866006122760631259894514467992181819627419563410256870675847265308369745239765035408254381877768654095327750887705827544352464738927931225576771962445722732355452583120875604155204787232264867361838472249917650860269803542826309751562158579613638736805641095823768086967512582454019580424746069507469148448364503872695938926811204181188156314736899073583807435585787937955818427794356119947627306527056531918593541703115265994196548782127578818624736662851446952413069141774090419463997937303025487325574208326853087718667936530355259766814885879360956007724839072084537990560210049598396109782146959155700138970687193311060042111278435933134743605964487217405894812442250749087092847817920632621829888898778031472444801959894059315320863177198698098987183561263735991259051843760030276202004864185683064933473781489085991110084932241897640433051179154488557303657514522974961965575245801941160732475622254372135584649540720904689519753310101959528350048087722107909745002757465945416239639741488912804715284646344875607870952551804497794129971781738153189922643568580438624865570441974555512440212907656696793903419612982397351848801861080765528000263131886702612937335275031126183188323210149752994686792073148131176269026876196994503898255088576145267000505061082610941668262924781775577236979609571542824090400546496572573255107512233879362589909073110169787890843436906414989504389186538487515506608187329168946592705337404701692425394067241455035335763990952763282578682912677171286074549345900607192927324279491111036197372736600289165961806421253909352843892512134056268267474611308359836513836155131104810438475937602728113085186163492383031462361013373980125026257050466078821257429496595470635726776559134243404701781035852217160390086151164457134314179999495292849663698527266486120606048930933366769754731673841932162706844496137685130637195696758034212026183285926968484586505387372203699189585845567322521707313240800675448531716679440009473062639996510565921238790977368057004725007063418201216078757657854642003579209282799758684981576048158229350841456253779110798490072986097119509786823442221760634027678533718137286878765598635686084465712927351145121992162272337997467628504110726653468064325941573846519149503682333386811684950160637338300295969388401285595193841890934249860643486601225251769294897365312777883341439793338238893825869359368494156724674231195838959384089368363900058216674147267818298866329308504022343351967097234516667895374211735241040446565343500095477700193940367871924422294442573792795589791990237951152189814828077730933147053959444825584347731533322123079558306502778825396320347376392516276141668661050921884924686314804737175622327382769267382181202599557525524684703926816923857008797939622928915838954361003347852605201266328044090301344548405006729018472950888292156942137339899156084677045210382442494633264079862226664254658584086427872942720982527962936836746647811782905288659186297394303783818940057880442539267126417847186795667764583029306154204213679614159149003054720744143251071155802210271942072706197309384479400479078716325344257052641802124564775367725266946932211404909268514184049308080057433930527314574447208918421470731666477711035535555284774166665920572436709206728031905858163177354869203391356999780352372673795274280922480250922756932248566417312877420860894267090455415199289029046865599652648796938151389967782085702233611942421766702503710012593214652842331632152199021831790539318997368733018100922007431080862348331930306477440318348083215258364983084603022809225468456506325267832598887103825204632530861898528416827116800786280353032989980930485098299548681366491495522824204304018047475890023519475059682932732718926704213745221178200617593271161477588384591878325509153505103338324313632761595996277027293139723359821956284367730440163535934962826635835165897238512780657128453790968887514002928758184772773345757019760205328458993950081020733605616760845977899718955572985059637209774369711368290456017326183496804356872106458951365674661178571937725514514271371515353322521153513469947617724966163978017272899886754981098675111378871686703056104338542807847061195738968162294086481480453442268028013143737223248268377029841256615324048939697922046506043127406092577151592942035294677883344901940103176701480037142342913109060790928120041964122455105067390542954957994853757775183379904338735990811961364562181865912447457118591651732020024354969495616604472790635211386159484313866108370445710805103322192268012532740719834398775889594985720602066197551415595215319109389660379958410604810255178144148287471916455264557495411588029747326745949562655821232198236378554312825561471988367790226409524463198356974201242071985741219472900469662484129900592099679544277189607953512410403923255894499305358539675709503575416456328132531208713778533291293554643988071698212663260230252311854979546411380093898230269876956530353545949195975956708800893592595291320771011564428928652291849165670153425011927247052370722890352984356533933857910073914693983893432133781527044488118285708320003326797808807323620640431470640059924285385374489856593578929929672111052256927508458994053249210841498862678302031286143929864878520484812695059521584892519232622846660901207079085402524567885538983385736642808688245044360440471645340193613093289195536369292735619337198132681517408438844027710337251680437345655156765245167027591850022676975975941404817329523718828957925789515847109165624366021569425715577438505913120722011718373578910527539861131361613664872120174954516044541905325761829842256725047100666078942093050806899940489896513718026491095119449904972082638598744015873824628883018801754543768831558705877657502290929993160087108202748079096817828715635391346221610969452519765362278819196932414957850388889236511031887018973631281431498989883046871469360603679622527527687481486852741535764953651754194398569698745668253654499969519820257073081406934522797823111643801408114618609713374654101283443207813978339287627438023334152075122704460860285069859622320040491660562119201548442275250876449376292942166506986034718260858865355412033424998260031366251188216175330784903974194413619829796862292090235184230795140488539362153588111327675421412231485863733354881849589220004028548737977401340822549866331526888526817260276445418358882358751937610203468682507923858229006607480468754279046040801727248424203800774907932074239301529940548738818891474350091247989999245148588119427797614371559859798778462550075207767139674469783737548776813902880392501202363648513701986374168478626076659220973996233668349051039089270456230125071608883479152450947839183005042533052836543281199094603849843960861634556236487878717952688976352586552449989774102735465111377483321488392835077141437954011531292946790103306130313592015291155382992060618469127138525057025453139604381240906040206707128843601377183509376023655784952835177606756472144333663027483939487052739442765815420714478995213051837548359041170614399201542285215255545481920918973378534988900698471913480236256368422728762015134191334216808253642238940139665304771141565475162297595512532782149733777708663394953003898449367865105203343348032295445177444604435133457957216618568798891514012790497793205611828620793661561458056425861527460947290576879049084344864015951224608372626837891924416849803468997421630124981751156740357373129106469518861932664138620194173805032347893096610810005414830627992348997036171317106378461845300612089209740513082474065078050541682225315866050697435296458299103260274324565441278270233656664683901589208799334710966865825921400208668974641841042226160146051282722819100550265623611316149881810888165311979440291608252665639716630120671494069503682420907928472796259173027617800775575957262400499926748011278909839588864429244568882799495589740374770928217925298437737855531194516865048050382487764695697168905120410880713801263695188445170281584120280778120553090806056585144795301016446255213934276589927313455951869240847818019127576653374908346258627587141613488019507960470314056309549914243312826206406280281961053497773164246425802595997581727514438261794598842517754322548310230925205320370167632861257451067230777842801662297255388688566370449810472709506090108135114445453369405101587428435222174286716924359793717961335469455594903562737093866876604363905660957708863940944132053302688395597827002235153275287732657665476870740105513634307599906095718701092368196625275209435842938146588499312286298804233599774844219680929928373875951383417065998942553486395708440308526249191401205708338268516929621657752408814345715832282607806542534688471671631483461951910498028761748288548515827975164707083739601865196480980936552810183525280807613250810839709331757362570162151270799632703353245326904486645610773689245186647752141379934207013391730042495250143943042926197727299101114681493633883020604668533948645595488050272437010652112786928781346081162488022495046998757527639343066547851359114633908369555526064678095263564893487418034920765855110483110254941170699529061042824824731578451293297291313407081247905823545476911186742560311989316577800417826579837326833266574443217796466026201777577820313587170920700793632205657128264639983854059195428379477031323327941991390380312167726935422968982495245169511686816699511489725453264637076613839059054460938431693384584137856865698425464133202643159101948030540820376213943902576100402836227390584927498959233372625455089096623196359733822728646132962952726815726910904288887559857628012341081459706778122881918179052148742711721216315315962856147778196918657406456586524867999742280664860462662648178866904757296917662090075383868872653987483487006406316706270815779867647646745184996702417401844707587940913917530241843754244316503014487883943405562974062682567651177431412098121512477651684836332911973820115794043774291240204125014144382662699649971377451134865962501143687796989597924484067222295157356789916289694565172157107330012745999815486321860818662181071715272167896218584230575901409696215295772185494397308620308215083184998077224404068110337121892708487810811575016928832247620380030160204337086823464569945175461249762485081539230881445349162684073412018665480743030648272221635923819045643363524370595568332239116281534977844683405016267362534977364307728396796037006529521606763260198651918719906497061035991368851337737652905289190247909581508307992785504790337178916945385176895341017626011178602090607724025955656730824346910960034580260117327596978814053313524802236286796490890954202291344257865202343703511003882593786905684634909588624923507072457904618942466679502005924821150355747743814062372936626496551494596103024230903536486956330631373741586379248156945191925317187211096885684220996568286383435856703000867347794806048228072751952858598360430895909777797699825717604114000363002942799421354905924110368952186123019341935224079110191657846974187179323965775829923904551615163871673093841174943072896664292395708516823972361412257941300557165579287410257143205346408861588733243164335515199019366914359503522910049674959386698307335604658048321758396756283843777900974252784807033298600468867020046960730396699363744744259456181893518193571148835698456856180336112310577402724588477674124103166674396051232479610118764664914073810193552082094311332599546418518030238780603740108461027092615905805938584212794663259814173906263018366813700321192967502397503180534450972589955055132081049652659954963867461456121032216190289014003588243556210684776393220360540409316240866958305679355347530645238294193113051114347083156597979320236145560813942645678764745445191830734976667730274335876898379245714922713263943925534871262170906720655917337230212926510577578247734556826044396349744108034725086449504215871655942371020320791359325350939505890785262378861923260887276530549926956497622833617746190454889643752184444472165003943925679125426800560149669443268829532065584841020089440846714316415787541013881788781373247113984596746640858618330069766166730167524141605080474160705836230613920490092082543793062815941341874498967979608562176521374490384914209766517615193166026748221133419347331689718883971869043187368667385163068638789214380831857502862212707373824869230722804937657444081530906421559373523887840173103663898871886429136835459323318464997377862136443124218136110364625587200468423432432533443193608776695324201868120393200471774287659077906317804740278312052937159172337788215291966740129697897895518372379351922345395219793782920449696334089808016496744139829914384361753537558575920890163788490859043771164998202522419646261870857820009513178311716177419683081933532093770496487713592385569931892769488535859770792968161864341760289478396117281730399212092742435009537571616655181298715055066923305214031406545956714784955112677711204279132785646206483949707192039182494172461951594997782941319569805784047492695941729148135086176357355707359654970833340669661703090905430058881641766164285412215543281333977990821438599016505135704634199520695928302598635359296755500318387827322587912052418495964768422711484632563830635643307313081522500968217532126953658505463898059251969569152487589525845205947354508320424384370975047456369258221767787084719317581618957182445481805648949855554521466589368930927656985820980987771711566955467565172295219235105637280472219824331572731355249445749833965958036649014285161512523743723282230812342306004204402457418621276152019767594250923628800387767103409652914846384785739245388087350422501470782588849904052909755132275113734351465818383826326646326880166658592027014037547896384461846112890881289622311988383793243105303062488495397887431307666813751640367423587441015965301640056724925451178607883483038296066558461628325396819157799534925601134288659985837085692888181023558181045769051711441418379589688185986888984237968627828947983443739989888732225889005723044108302273215368719977631902265280614577668083319050258764268071009804944669174446251731064195961695001984142424511045839233049281861115146473016938024698155344225393798460738337123519998348168787627912592029921171354124002070318306586745252921322910397866026757301994633452953345197863868216885916570610925699833405958174626538030866533245020758811075735738950657734436309785529352960980684543052937658533313391032150576522583452753341663152087230768635113120548794793367980601350486716319585761093083981730032731411540356220017496236470393062307926413897618992899177318641183295493507532134973126385609365621038518971853509795799636930719098542232255749757766155491422861754563172740982635552704408551222587651895040776330655996278972965432650681009837163167003534981100266808559727443258166007988120134615825028088471160116618420242025155987213873167065273756877693862027854482029634183282289509122810053974127633542477796244779674970811587686141374927909945187766638184436532967605078325336840798868840901673440911747651366554234332632601689847278944999947757785531636550947244673385189950550904646262493082931650345716202570717983529188756094992900076313398557780174770191811013703498017244193923633367399555439410244330847875188354836072677569528500179900163684187724281367429069560787182521572754474052587588746157221009635117570757227111560480595642678876054354789162662429220379668414971166123100359377489519218768450861388772453392275223690919503449702355345264372028249336591849443889388955682111738222694753460109475046841610257257731860128707965465863440416395101399151163438034164974133284355961956308276457929835424352580702372262554258973695340284609107132705346534579000460392235282890950094265959796669318831808443317600317428345150011176716556151467241228409128404211482546837486844316111159168525609611690029366894173585906774196865069317231819287892883052485160801582587261834084292121963087750596249904076609304506584183126240860550408095055124852253327166692051393493734385334841434893972187044897850239354336033972383046961336748831221555004180995098641808113429461954906790961467016475019128848178979025434202291132875746764822433802862153767405729467196195911761418816649516956796725745502442471664628109410327033352331165614016528891612372600153258287173537528198783727575764138431912309535514515856319604356688403233254896870923027549836636248362856896342204845645851252051887514039724245688396074527948652596469542514564953307124805492840802490564412361263374502512934984477100752514045987813264639348435278359664903600074417540922069787183194105384677106082691782303986404510297884474241483885547543834967411551571809738784709118031587995678471583968381462330361803313557167325378827120237283101517981460783217034782579118227306133840038486040531264700726708214833787122064820987022475840653644632494442231790948504290502302558235794327616323475836166670932061507540441439603358607378192592390753259133721244833186927520318665782605360727340799631986186595617414133864796338890813792249037773849826342456523050426982482576036093437588231355805562043641273360757811676140010184493773103256667448844612247481681646918753720649382622635444528125298661458022933637117899599717390687671206240194380726147508605012973660919330065449573499448545989785048943955260255816108851962209799684063772215224040418219941936074769004420176526405456208446726577006096228259206663882606121706859956921580248400634281347975460657661374280403800862037530279142234385967481556801313350106540661195343488566820927587455542137877227890634329868405329984142244618526620316241266599887855308122292161572656357687781503656807231208301576902034771778594431875798699429670274295236663405618821572572652929217092782756686585143326491805956508834693389072855384587525370157500575775489379172641043608209638045769676304624787650213984809430435495650593099590740822293265140953336541188216720456515616697648204091587278130405294672707217220099736934249598350793770627811373528386016272517035866834759582513903098745212192732505510035306560309464108018228791093405532474619916121448851160275640137214822773616811294061543850188617578898526478614325577504620647279391499961198102422029571899525937767043176355819940780156565288299813055973210840211291575284302625929393303399525593788275639737100520627567085631298109048303209931552398383029080649076656565195524662651422785486975226911399943561744162161869481276751134251400774583374892574930357090043840815707209607965472138287385927481854180030450820650955012671991050149353661483374148287058714872393465922089307051254929411719130820718183313879424873614638225521028456715526136582811232390380855798196049564274068862827936246862255697071439584865294241804718884449814691095277404622400430005867182146105335107440886815766432291220073488991757836561360423307747566739628811792357362181756497786919796686622193447379208147887529088430834806831391359086469607483988778756492781489097835376768944805477226433786391001783171519785914222928654634457917391170381058304896760313252652866092509834103113672083922226381545697419474455119783761485924602988309164414787212453771654919807515887587501778249540526175380636194223805712760489394585536455780505639671583283603773820052398629080125847856007093221151977898424963018498738757495585954194894234193943588819523402252210979790801624100764658487252759770625176610862859337362034384557905231441662597897035061663610885207561981554589166382857863886394500940119076553474106411891719073148592339772237921033450890049041024638197018796538461503015612279465744830174262655814126969350624561621990679959586108831056157447354324428696769092683414593667200690113587077558197799538839937306667945848338773032589835928387335498282194959105353996541810843901730225118295006433867456916679005875224554021801902633067190209358678716078425811550628018115873673263487583660757553929325624782889613169848301610767000107953675985246018891564309790216698589517171998985538728505120755180709514135957730457698722220986238201382977334832036469536634427222861108486264146627312604297244874178266631765375194370813016420834903320404281620087516883928653333715859537806876773653316993598465710757754999246728167141843196392081118802692006640363909546076552347860678403425346739092317601404152936619241252577740504951203089847004400881344800709760301734941815045398969949170570004470531978307402905167075450958110649431847712654707773390080902693087541212473060569735234450442927280239768181859582231527780371099455060935583998577917696666038298965976572214086968131017051535408210132982770167740500433933663101356951485630104282904091136248652473034836018287611772202902534995696682004610396871205933225206109864125772520424230728089294746854224647940510445749152297180737658255517855697377127681703156902552902170013951217785027599038916698235371721454309846740331676634693954237264474311431707950863354559198048888324648307734484740262122334187120279896538775260689739179433184909331108380543060218073556038373589494497653858767457998639937435400502620201164208045638566121362724124644462446911570984453383209071282406045344862349760047822762254281930964959441212241517257804222339042604986722776677672330842195543957083422785492240877308170725605330093005439963808798873811591608012698881008839161693822131888285799967198571082339093403933417904225003811113759322729997547277470299719976090260759376224820900143245876325496070615857801377287937570027275238347243572205704537273350189417845441429120674542258240512084514031117477599533743969563408918135351893306203558990758815365724835984859462699211836145322296153012083726596263730552159429252486897724159921918220110178646425833105556660100195415869345347664952155618397611260378272150611917444927465651621053464067398840323181275214600725014882717417413541986676751022366984409861621806490740283382823740504036616460620640327500997524114901666636549642414258249841837229653437493450932921888209179972492225291030945450289049581157446197487276164055913508216227838803385076496242562305438094563804920083793040431785820679638179681128210442490251965352521136473912741402015412123533937184132064470712278495931662395248969227586215754891995789597440365225461817537882583084043920470713996290733607370472671808908205609548955855564397113363740777832943350817280355109124825399520967624647434281882562294264525314794396071998747516237388679552133401849096667403424019833506681408273978388712713317712804720477456267679729180118545874417621098419465453278679421163100637929634440155981627939470683528026753204369574903657989219039290542192194896111164284149510088929151933921313002166613067492729383848985929556187753268133609149945419574804599104461293572756847010189709844669359281337852124720367706304808531501438208583088180100530782602126308444007695019448761343166723147845323857513987405864172176640724043106379347599582764003082835037877275558940714037708552654547942724817898376562925431140723062908913461524053756302095782756673083272612347978623357773154395628803691011274469052739002878138391467186986858856696791244871171414776094786099037848622703922523875132572928573315178506602685484180366008934917476463116799291563028775968949760292086160574139641050731856889770287610108197204313210240011951110519525381719972140905150807208846280032291913952337323734967951917276677175839131109096730769065086830698980437842676055030872712383318736016201138687966255341652585210788996364425970183066502153231996368727866806810842001758882037229043438953800105757886493953995275219705936640760185252877049013806189155068337014065413926549565933581483217458845370445776817435822738148107947552002085980021502182773807682751680297341152330992052863005103356814691787662283397635348462881468188850993684408775287100246246454307744856698189613531921857354274314968168846067397697201836170726992483858749346773115540212730901563797027210060658517351401802512154251801654539489193300223660046265563850427892696726524215981844271244756657290183140790443936693462872301682971202422107009823886155633976798793981704877418908221662623309324418958248147325522944392443751962666338048490034750831854739010140039851313924264397287812266961931534709700032691127923154068611781702280489738819519343977427023839697665636649871900433095816090090733463050683312957455481168498721224549580256933701767046542362100247187987531512736356612234965030016171990302729571087127879752067265245435685637968605071530493565807748900017610177483911653003522624276651877224058040198038207864195938786392345399524108144138631328084851726561323073415888543249987028976537036084977624569604914695575418552211887695983657674586629140230103518230463484499056372271297500679045174169477403581795428486692472592442125948861893728267798404956879660665273303004556507868964972782922096379386058019365483244159511016808586077431820151127630968659884589582341335440224182321255905848590135470875420804092397818758643293190678306274020424363369024022977997818241269110438557948657300796567991976831053266180868485715965438013810728166551421894959247247147505331535950982601271757421136929151587461307648942858948648945429499756115088952691750690319602631834320968701581467683286461998429454171746581775677128560166076269631866465554102894204029610280179038673323587708663891868976738783825797273112111040654189037911892070007574354993128735571419303399055747726862303631756827651902617127971336234024831503857691377330455907786842556325698840259937005347171651503817125525200383088278174585181533060663972029891349607391652521586031982122722668080034909888436148822167912902966034408652360001027027717171511106265771642264905540971706266346576973056326415672734156828855663603096639936765386512964690487587662537223460777337458812343320268413735556126788268606634070432191437244443286415519850986453254585937377107753726636960061743313338800749366873140456681295659472357789942176627678820358444215622725664532189656957036008520149569253299221654351903280324519215028078008612830558750186760099834262139089275384821280733903922341198532188790818097392143817627612574395975888382060284857446794136759078986768316209528388148522838035299817713771089811436119160683547659707979977562524825715072255202473369122107068489897422879513757978668972100024160718755853721871267037744506904911844599054215098167974231166749440076734440035969210857014586883254491020336158299462330112622441610911845552137351500996191033477105910559242282252646280942524635463479896007708157330310431292698845311761440176483886118342634993620288073252710280953909539303367470895282917626151860711410911095784501331200053934068483198420078187817611950335022438542459165045449966962015142163298288853505019909175456863597971199359361520942218315338991052790959376899621996648127099606747246933990585700380322964595550354627584460988084727349404888564953970562735165157612337511283479640619269520953262279901716461485780201947240715145320524729639876806622071105970851805889402559858705608383645906023979952942168748950450001933142380621473000928759913408326177861205301209879376282433797501807432646588153081280051267271923798091027347944573114836827718735962154575307759570294240157473789772153961164168032439506458956817675682483356526020873552646013254187383856136061195033231867999264687310148138182664246265608729634845800333001885511830491715919076498320755270672684955891643856399685694131130120087281043595296826468081002424080532411349056646366317809376255980520891090595054001278461291286309608473001919640019816488948160148973662016209204207740817284548786906512743336682891409632468176569349099831965347697652637254074513383753811016102766574086553594292238788958007145659531473538217456402299270769300139320788094140994715927089631287758274043890444890542439050240724074217476729511139544708169899071668586326130856884159708949289035337518984946669208037561557816949645262484322667837651523926596051690111470675124144730822597712953663152809608482958282026892815208099222261402457768794647811839259445233128177362415917388433344942678740969065511469807855793473233075570627260858466032180037292513157101832135623913177188775086404620085096684824000982044440255126813777080381061941139771535688108839713569107548290787859346596603828586822591037743686166730286037846537968132262694719933413270956830076525919608703404589216628819998656459054262684116910198960687211860596693341878132337150346818498634741720155123968344469112554997945977066190984023202656678608368278179312173504373736985765086916051089258676998802438703588391542330537632836872196598213601102222845314945077994450632169886398562294347018941087624038624964896098041319240416993784813074557174089372876936700566776664802367295209378253183860647899214183263800872265628940259454912635844910776072966193128945145315193093117683405238243223087946113115220130288800306793982881818802738628505835359648636684094972866569333967031751187386664607222845104738715456589452249256270079766659173258255103164755351562051708227120911972767863403292880023864462915182646449132356099412021900603534303482877571426466365404070943243817928283909806127579660342538312417112445458716526816043153802704865428112373582406808510079077166218250031254785203629956264693509062586137278097037458748641085377237468346417559313014766544376755076818134351168841078709357983140813319705328154048025741055934746574527204188469252367623236592935118084685716100770325354245673690905500443225490204264213045768305164055007111178445404367694888263622093587590237152773458851156148124163590395362550244780367472513582411988246426408150410090211187969259607871146568192157282348249508460961297748827888762814767111904999612948134757587417705760143253175655504346543066915264602641140927835133571949705608920198720588191504791954175946910290323268905956353334862290115687269463173471604952116465671881115581615407391679493683596621854652587366776842181156035245496490165255560062420623725525562066192954079349729561935173250779432634190381410218551059514819316347681582365148404118435144336614257050672302801316631916507759945181935807308725214190505784054258167903128714415779935035869634241417863512404476402959745235736771399609181074459617231525007253608486104174735323525590754145042095410648581136842256239813291394201566886000498978642710070531667167980221997436794559069883557194075663515967353871190506481849344862928949100713968549498722265653383243294305399526410719343171910388486424387828841011941596130921152403653239882848044782369117565461408579192341388819862776533560370246750076099634590644143725637108768252304602127521357236487895870617510688869739622141210869627107079645731133027913949683651812760099216025337529429124181596230601048951298608003157187748737433423179890354903960581068339502423707176315277380465365092660221793420049393817180276473161758108293161143192299253817610684782143034188948106425385507949642389421140570367179575333423665542812634475109890111733361637518843412799871779252114293844188439036947373596208952438337460443877458655246251317035871557958421445382812141003103324117632484187548928703285872370916670882023959804341043880650699022528572590709098281913298027053371672532346889265851217125394420220726833366413479534851965885724951920459743820088888963048114381666841257943460087680147332290756992816084945188204797804578176995127544259801368178505264991859598959926544427407785077708395198585109293409726457956023293041105016504732803087281710290081499290483773358797790708827260419995605937584199807081511881739737621996956398414824915255825108176765053236010228357827226897005037551687113730423730456513413385412548512675696293478760283769666789563119249114178656146429367741871232630075605123205350106263018278056838582584615992322325030382095757008183884046054904357810900874322441413342474268091813727133134450613571839831907170174898454749691462797942710891648127394479257816359372333421599072111083956458673029998130579824255099853058188434368281928275127636079752251398014717082379729800913342170644527104116404291579028157554990294443850842110317392648508692575012927117195127076942501480010924214522375721056133005945809798768898949579365266956066703073379967019708692864830464079582872086757898768361024569739966969556605250196332574310962846223195063217266382920383874064416065418019571395781335368636007707769938638615989149657714912639784976165939037554151788978137694463886370501611215570679097082813583559548651253429541731139287292929492329583396194932294554639421546076574860734842226073204983382245738851800213600100135488378945470391006095006879965727255235307121631346744985878054814427294005544835969269050894819416833610767649206601042025408245665699887590918862514580183629975023782773456967577872204282160539723892878579457232330017434778166846884742736770221341886761561519217680696753651286267431220334697006032185503571897479514187463848051476897153451720621893866051615062589942507742350378883093090419542626380044008840089764414304173867704959292924522532995605145804506163600822967708430685042205853367164062088624110690430885513563626624650230050990241264025668606268303363946424104088019040478736195969407672985866947344447151062296789960290715342108466944801132464463797333220547763185567551342454839682664294328520836890947730745692291609551378290730275691623558378968425949848116832719540275720217512155870473916154224593779728132293203377390808548918711765217273311314037506917399896710480656540056944399515080890911043443967116124041920614195314720694795365260935108059648135153904402984307832915182203695920391528970360627508712182084972335795155302328728415925602618252483987749455484314031199873755237959304019896310894755081630187070483564091360426414602893010311620681035477960784709879651423033881966926715184372106540688584120375652307899977460857519439922783114778919829503476969407713011007202232886565478234096406122779034886304435906940883680827872018477521487996956055767214203032425792157227948961402165751085300670836026592316894343027998551197598397842086579768929992135641051630968716975882871201842903135337562191317510276267521482183616534227432674735468776223384909005454160730712321620391352859030400907100005609538367322092156475193698806657072218715570452834259665019207615359895654042990568937408498975680978605833018577523599540306892606879773313867224537478921184525775137296866150914932615979638793865806034038153572776279740025189524428838054397740058333429956746332462075254956856782911002848393340864351951738322223269463256015101938488331480211111371102551898793030559756719011012322250441332488202273741285600618796286877737243318727703104670461596288102083420588306397631654006791213301799542869906761215005282085813702775293666627501555177390999994702102929510134961228119067703196678195648387896381423871640878555245855285561935164093758050709086702272518463096443569230182833244810288162166365297733440612285861381161268736243564293109859601232711520452214930097034475709828202133367042479475137824482191484667473914430168321021778895040605312131849013227309507789222955090942360551203887063439672033745074881947593108347388241096959103487293463200871280822697625533195906136823985399814964038090395680190889279528455875030998977136948540194066851924753092995977276834457581398980240132016801357213757851615208928078339264399795002287581932757858590710131556403170653681471553948804824229561294666580680237445492516071323225159106881394223600431638027250936298032716486246433932282568897189225639603734956536283608228566019308143219564780623410658453332616369274533705687977103676995854526237311743379239155996399293500284607326092697376926717171474900518204817108388069859316202588032288598981609522566248231222445593163639854663585742887593687966840108083390631984347576934071271987891993216573816664499086319248309011604258278986317189379743561709364089695832826691248453902984658741421861111197483789013968133965356110394939010239753719723446314222062103878077975747808759551096654355428646267621682458787940917536952039762897815915926776610256373110885543395635729029221087398640397867596060548473939333889188693924774013811559284875717046842242429257867346153538185866173879894530049844118002910979124691284972005946062216753953813377985499751539477052088034401895233386304710668147500948777888764732750775041230008494938199074577297703688682040342233880454031080247834670006629118167709923351261445349649216840169858904183350062498407320447752014535214101855459912020956859032266295081157721982871337509037612488087856816967255352890927119601261987476281195185713365993135267008719382031329902660317295026509008657466081797196373321054525949782812302926524768681056244697270483929501119097589865052782952567528511882877683543978768165307647403432133043284642753917486984446488080853769008929481349063501914859557063291143370035809835536953030382869518130211853412140377332839064578460107059998957636333861155102010686696028148287870325136568890259908086011559599849814821290738387116790361480189817407915497364147821774939793228888098139768350848250667824144766477404554266751271867867177556046160531416517748073672388840590704171313674523467585060420823365583580198255396169671257457863546828477449818930996011366902755357392544348410375598746862497804476449765730967909715397891511219836143123421432035295248550863966994048735038247932857070435750047572618638151074769459669065191550695713064693905467062201033545790621244705342048919928023157462295411249194050655130462405785320558135234415766968939424562544714960084212333496504754596869382626225515941869798021970888173564202315442146141086088389447130819275944912582402635532797783877721327318328640286790949718531228132650221410670297436451403399705945917804987099569542743832189178089928555876787440005082773611970260557843457893066631043374054853766604019291590395733010729908970195558941805743521992380472228962760789373719331451777768924367188275981803243956764063305894534161406969363038014903149438528746570267519019775713658463091679559102827271142303980052121972251160553990741093328402981421281667895947715360941369409307491606434222690416636458301080553171504936838478612354190279557337696995459374910455810569153654772742004239248680389551551355757574245004417177417385866032481136827019945380497138191670507277109726386648914113730830443977593216194212452016123041793992724644767920283832424912411293565278841501915679681589205345406235029878073930087328026467304214306588159369127820451310919186912139369929047170152236784351568725365424199042104086916045028778578084133669374000925812527018589391821390280197401251369387977624147476149170541994091809565616481888317177271627198047774164069399040090666840741731318966730535917988935560888551567268404570983508609005770938962165960135567408534555504686863859679594285301038186422376824338458172546541284835762380446753077202672953489230161467809116101001220255396110463799843892663742389810226631836423540455566579783435893602475487043240193537379854427107104178877321689900380408876507069950664513341035614215815851906511748966606966510518603114059753835744489868481818494979675464964402562716738791432794834376940898614091769219004654689622252508621133795219250124128143243452797909126019306699946701644892499869800334643455576219606124553848590239746199929515080849614864694996230699582289518908602691672696117184235163792956830161660137728962144203230775170990751584272988602985939850982517975831597912831941553633884869047257431574449817005326983402395186362634648660892498865774537372400324855565869914400530967596273280723462919100168374675087072553688609754523740152615247929564051915497316221037076577789083734028769618887346836455581179640975641755133302322342030470782481360173425277186349627199598886265410133413347360452051174350769283834155215762474942933588975511838448637838712567218988185786511810486866977283250136178402690464941472187153354793522425877781450008627836738039670252808152301571026773142899000551243730284662409447770924650910031758567308280688547939158225100861434191058235965916560087185814061006756522078447526120443997743971310701415616529041155700546079388422231432278489740621505473425888761555141559933868872615876155135309104634402585778099403079901326181255459227485407094919558417024108000264316991259650804023249819131569988263680247331273932480243581340945878016005194500915272935863050175632547698941506953254139599788179050975884974307551946880122424284121897761165283327579461380815303973138621852362868168313616992646580944622361434194959835354329925818120947566518120935189462296241416073173725230616487177251158393632278912873332111308223777731717847371282057821839201716079326855054285870752818672731313848433331180039310808098545057766284479666241704213173762665668193432442433745231036187831899937050853456888337163222332108953855766288302300513238401004272049454312998191618878794818936577084699272782557894573061421852508697037880393034435391626652829491027358361467813650398025068324352395854807768985737548156026665147887408010392158971977772346360677552279865091490938563827375829648782707696136057797437464784481519732556107304125037236436573631356325007396961553463974065369059389434390379904716535844895316783875144461386351100890864264656809658766995401810671830417780075814352803102363841284215601111374026264061095301395528300285773958226835348090590981539494303500226069017196253422693368020020108735241770816656160190696649442836949143145593032991273619650517646274095362227651841802385396908448985499754464727260964342251554229656356501992854859218587540428246789217902076607181450142369852759575004006616314157188533806374223400162536147318997306895564509030958466688185468623717013550050369067943321148549063615191203382146110097176707157927537742967371473086696290891140121661106938975826291905034095643832265107760109956334793006830983219181948784238913509135546429144400479937128137476944830284571492018726624689451403828925563704828761764183322673308644848019444648118614632726589371980795314332993303866741226706294117530200600249256745746738698435858135897396193860628959557278865026112981262070833740662826790143429358656502527215660676589605381418521310456748181552613892932912539696745422775733373532080969548365671655422652441966920213910864116167338341761577807144714443154624380534756095869972559260750004549549196896271663970710076695816754991456430219092719581272875506135279577874113628440429731395378394154499752900890153447176632116941873232405950691296889595814353918227842002385922843242739839040766832790038132604698489750543396233698767713203286000343008461637073736259415805111908538388910711838289281767688742768695536480872863132835133281318417964226526646404656355492757591505748260409310516492101211936263824029691632434306940627873413882762417512724383034135846915769782409831688392589452488976378011825964255053171994997921756585208794963896016745273367552696184693949310191752561631259476230496132439605042930649965518388886083351878560775752697281208764362260088012180196745117300095367191276258427359028056189871676505728051549997936005266806731176188304882283184156680103328055157454292247013534465593610831365484909778130275261925726158500347662572450561105017467519508698142124477248478188576947019906537655042282327965237197791743949089165772434823026518143573126180878860450824963693902953827873093532661098083191649136305634436115179421757425527062967013549360664607810695780933802811533979197867960789959060692279488199442341881918686130777443817760368965599108285621845499561911068736114014154510068509381254836770992168464832622005791650823477285343429634391661182702745734648747433492108612697913295776623624721594298798142181930446102012709729059686729801117808683684780191599601428035190530882196269668622359143950132137019579380223350507316756042588981344744181867172720090158593011827552562925746942188889008981591928655696068861647146462166689383536030075841359132706663349004386178486167511027525103832299672185464976057669360823389891481700618741462624143210106539569452160985965056785906357854182489115744746651723814689144831058356633155344894636577498691868163679794513273175582539562620128489815243178709565742145574685171705753993534227527201796742916504085604613716257813872359626901912403965237505264914389357717701386271346394416956429928106444974299656546141702769704431932599911603729762001917243508361005013607372827538609421585446518668714158021180217284724918712487803350022409238170192792769155982395877030589895789665447583710968133076413917489926162984444653989078412601494459627167645791512304576305674576718433522054937995316275105329908742324928421587177909571123036942336453617581637090540850599299467934748801251013638762123264226783437719361974114994541775696637976269713792085858158039185674723434640444107305221014483945197612055902291382629600003414705565460200709535276110994502744424108733415980190409965718230283786727235683075119340158796037522917028318356274977866682081045929025721494833257479889685727598138783792633282305127042267894259760892431312500748305900015951074419227284782113302217211341952152650818902474042325476174031626372516091513536330810389851254816447342364415457749405657782619008925621750289336586066064030585168532331840809749530645084481366007207264729015302269700276257338781832051094925270598232106849459569390911578012512668567140377101594441678904450318139120333114749166153378701012862456792419055777827171719658622966894582091061562826723884951169219872217404200830040648209047708118417643216537534090821018589722218209560835445819891858938955198151563481741803294219503943930839217260875321035929851466425058585721311893376416698603296125081177892544116703008889007479057724056220809259654454984604246639443045487926763833589825211522359713675892617510552310796823923228045134182956199607078749500035247767104358475054910330392104427657932489958403664465501603639552401728487449313779544960793907184383319372534591006428795696438767665009737569496461619439713065993159289084945875794918575684989614882832009614085091721657939848095325453847541112086212911574034244197082130963173195407736882251794567864612736576458248171682013256440575308937926799919438276006673134858554794948224799791248292502611501136598809622665905007780485558510553709994027539547405310339576875433789365304461454050480815798681652391739181560000113017148258914283832697920828789154951087086469719980925421013229811305748642681048577839238061439274267131662096927953498483615900597603349344435184143578894285506217253447048901211201459995393562137976564972871378676016355512303813651506874564410443720812603495466296180575968905199141571646616730399989453750357181602981922232790843429376863526145693379304871511875637409398899818823534086297171125249810722210308636334118641957082894590321880172302036585579457481480926998645587264115201305012071233213054915861134755370100256473735302943854191135054321527877048589635649473843454066453713192214776442327963685176588969416632112363694691722792562106170208052683763160761635552485530983616474771548258798159124226842504613572413562271343492347385483333692960615593892636463704182428366518702781056611094766190567852303691564237984705074215796213520442510640067246270391427089821963208122341421194491673405445967154294693347234640099082714737952247979613598871579823830097399950754550725003957801818146953913217805453932275519728112412479023114929995595633690133178175067685749292600737859089598273451654832274301505032218219907086122726312992570542358546304710031448779894471068004801483063412502031618090242162132124253468660897729748916744064334881704101821782781084128473788122583840075174548763822359641940998357985099775715464676213272923548708637387617065116784678201564309671786770445966917442970432148850472504821493564138627682199905203957442260812273010005060074984954336257309608241514849030404724865241387703244842699431816634816669105599762863919328597593656243325403029305249963114405250866743073728405074137386933422095714603216476170371950886437395599530700287218869963708573535696639420408740965359753596858899682461633502174993059616523697771704749293549388307529789328333683998406757656637625104358709951268600995822574022953000978816802276561369841088833525419477169293438333696170372868946925066189878966534004097183610509274383734814956520204609474637945733396108327309766790392570637903825123475918273421401364477426290798117010541390353258189234817002787833185571255436762333854441693829351115115296902626619304670878880918930947557216815731376377651770471834382319677141121101237237839471889681187763339199832304520420300383664810195313417329710854102478655260615976347721492699684285998342456431796341387250255589678191792116939144130676972600204334149267869170249186350668331643893602849078505052179719216025556859268467685145342415013800272790721276426461138454261265408403290808501945683817157278488999131032917499652899996295381021656715684637899048132901363970121895333456946200055348730687680978161842047893995767179153070749455385754463358863409065997064125112155261156414944592361765784903749741361937929016766578066578795438666912687151468057563211462449109060473118680365175100911574422414651988848120259016186971815766281320068631158227179293074201295270958632279103519940924107196784679042070289249433005155964101695533325110629146977514633903839635268965691724675029933384357056067672524609468703746674460608542753244773321633302396577826073921632426709628384375701008882759090526847053897774342805251967332794040564174618893705710525500340593772619753513642754676877698117123184481263436671519236875622543653317091246993581867952367333534256585696766666172459488396288251850300445683195781660979477968221644585042744826245800195370459140642982334658097492365076841923198975775695016893694333803459256431688724284717197477381143737581945293133736769650211050678959957881193051885303242680444038092262135994492612422405629013134191532185118369583964372035069555311538144680855413435367682285795362198052544844752125163943059220992556871251656905127505131051953843954493169828943160873231327833958831266075853487751538289360084052899399931557236506313381230241341084680997323309951620850579016019353937729260807581472918206480687517330254249547188486102268131346849447865077150519434327984460850444812137319627624725884580114211415311882936095560458125277446630685636548169869556660953501051668143379126795215000967863588749197220225174730971541341992135509078019021918287696708237105273808819854623627510855797162365025962290280999669344542999729018404225481336059378999759668956952401560344560038381927182917478215581547784955412227708476833631383651797852933149055308926882692896983086446088800554442553526045918066874708465274663502722717810611549723768058525623547082726765172121870076583073481298182015323336140780936800279481891957961100700406630157538434869555341054321477515772837439402592948644754227545753644305680473098147375252003643778915854847340517987453628507801732417895140684840901483412789370002829167861734287215893866805034149769086810854708777767601128794701669981071937539747833451857581855939745403140504917281990020807741341547392688239260516356503640040501444740816197889322244396872719276633267686712439728034069062282413286988171748218509547057983860968471908680375245855273118459498795811577373465018805582678885442057448105531724771649673098322870536329903439708985101658481222818894472240208022148114630521873868015734486478997255456198372096417998399431109966488937067114811989239261149346013869659741349732494007697763317544700255240033413935806467575705204397232512037178280861900035411634753365265473109312667554966636380254360918358620894571438298958742088151553150420359491423521414408934275280184269250359340062766553760013656497199362371921043042271890858987536025978672665135423823891130024406076176327857451001114240822018472941652389124134463122512506792397507843976615971223287928931509025397383084984749449524588781965460483162105810410721590726896141873504200348055770015161107304482281041983533026585795297257882770190513285912242514760096955338929225074169941771443878436732429281989060441686095336342217740178038472965993532853723192466091693655982433226212277003850339568033772026432131435585371759476990080193705709361874601045752861688334933883694442145550139694003946136963557034357408644762746999944291869607900423824410145526151299992931174963934964984904151998206480238920162808978099316706433538611219105074072969574823450474822138188842079884288620308596624610738976651270205890362413054608713090075804380302943336557055875532340307415778486922719837104326220623212541102151898564028388858472647376890025973187707374621407551930138028454293512478953486670449763330415527930131616075503990118157897994355328358799367542918921056426042758777270032599260762727756372005530604922565689461147480998481313736615650572049103074121835823444066814941130430250335592525346206267955512848131613429289681486357053817630652243348055869282772810060680907378439264440730521839434818576634616800035784138110493224988248156109350416653971418102185283812575353550504831555658852604344121348888856146986748558133417836663683223288402696707193071929385854506974519058294784585064636108652521544490316549422710346602885420132722602239951020611597276382395110378664276964403982272350268243986990078541303488350285584308394018932992218288080765991474313792319680055665367412570541280795722592693998787537108429077548498112698486016949570159499832531263135905814779699005325161406365064250219026401576344328114853125959605453749619455453117345692983176008971893308896719447554414946596356696920608923682755814045518426942742072718714431910339032581779715381444589989678472753405491334142002858880825879015449311946519842628724147781673402186808545054822987751957470131026659530842022051052006963799301018091761015336759834287214460832614788567737544162886605143320773293983783950996967207122067436780796078746871429323784657570622425469125432489239334934001986785678986066735516082705857635677324882543134193057972370284286369905447761786320841585630984732965661484669725937448577153982058901961788042987858470897644990408511729786237578443363967541622784391943212025067270057915815715474551160004374844434720648583730876127556297663245131316280705968836399741550639840577088490349206983281643405294366872146677205212290809022827579522647775787806079140629939865435908552792330159116229826712398544941879886530070359380970893977658871763752934526418977789749714098630904304536840918418411814157610794411182252610607880871351136497916123530838995344891562353491300941402834949161514782795227955829786072623216117767091335840680517226523446165028296750476157728036024663991262462965481456502079498160788271473946381745954337026149693485760374410124417562854377329566588369457726926362637939261548469576267462472254638141139512048541582987399851781145282294479732464275739426933629656252055129524669566383458757869079954276367112347739219604544152198851096400250434182738486041044332970641051844604994610951771423119301974707059846035594787869040309786001792950051415059354513296349289171443038174617706290235203090737884859307958508002128442475277268175159160127341627759070202148965712988170877541615888274109975919338122983026376989188287419208295599743221609324069455720687649356903360907770652920493668588511700543717445427265862638131249593472187503668277998907319270920810398064644896091626712958114488403223138106828979946896939297133422260829134209372340799230146136798995226877642990401379724895899481702011248166042717997082649810279092220737706776790232728793996252951016177309782728164375804628791685176437968930432108286898525500765260713796314162518154045529177404188456485295979567418167122145821265685213170945648685516193953161771507897774209091821992541717111334033838419746051331830056945562179590693874494926090006757752375163548403862796891386269757911434553450891677338826609894737522644104422615057036580523079673049941198987598439886904244409408738248949436890157301558237360722873413102300569740103211349223364384231645643458752243046339526472581109888689436171973829210943960171082709419089586021893013630003162858032267094428627526267326322052939981862924904166064534210047956756486936391567403867689649152090810030668909341631999147581868392212280145782089260154448281372686462662831920905903001551062299213913558116052248024117474378241148996412170492627866341068429094453574339196921285916920388088487816681630146284754950823155601653280001359337213332419592479246445846140051463734219688541503980918863238124941173857712847734619011081560478974468083731973331258938757463816802480330562969703747834192295381991825343122433509452702248786117141680901193458436251194235384697013612269638870251025631638739618355119176198229723225654543691280893292338317020592325607069782688967255361790746470625647039452124055281045022933678839155293097727799846539360419817867750045089465559382445638613607341984705324361283705536990895907756233101728419177680467290509838637328863206486844683484156585486278184395333093582432528681636164138245658292739794638645985977559796925867748025046214049910536493434579124441954393083264213570423068028730821180693901630433371658493172805998508793508377015651937965419034494752865368845922929087433136200982402060857669726631617050250464457240930270636069576827624385166354171931398334332862708444867818767471628419642198076323466128559165331923397793704225788634372464477766607946077534575141120060216845950171177074449242497294400893759604304747589464038831133245273399339199491502094350703093404096530854073188285340555740495853526724736646511233645597666211598266429783244342805319511195479843204075719594034168602564191447025636541638231794075995264379036306137071162417604679978384879040971036535500636284242663362411864791811659330249460174542116346932221862176093243512723526702691851561048097256147786689248466071965003667330877238313714903919171086829696548337862454208238573654449340517327698101232634459433718157290098421287875431617496515791445984422688066199280548339329196584398105129035571058085658431250579528311444297967872268334568811789093694124476435482218479022957018735877264368942508017889919614909033029459646512494732233743171098409003664056329514648870729633520636750132078796970611233657603452854295917336602426135459355219672808362058479087440530559340394943308104361882739554572493588863707481097903607220879924694925721351653912866116070158392757034393151386598948935274138545923571350999658617630138835360116155619743560372867827510930694162355787351579987141713183173192763485803625455250661731991905697079280434298747412212625641283612675728218993224340184998353378582318630267069941856786280139480349696371182400760496984349225721669625303341818385076846925556566614441470356262031355578161143104375541552596689085552446243645317728441812981525202415093505494978020546748377578145527697006371732040170738013049269858641307556028455551248125970418150576465045209752334706305602713085659814219045938482998318958445788897767062721537571124409209924225079059055818972799298120264559053339437278967075372131820565256356467707697394926951534108387184119185440231335016776065915853919486614682624360844134083824480947628658098511370246344446469047148512952979821240703741077145938755682925733880683455375466139399500124253265726916889878603459077345434669218504916879603186902799725516371914022650545413379064810197225447033030214105216409536868599420434395305512056545901848960591036003415442678295657696628029108088115132284156392654362906231813562975898502925280952972809574741446469410644598504434794909687437255767959284794514354827873533479343896913331525208298970732391695159910552531502076123940731064981483565925435306996969366120166796848276650044395042112804827678397696861767901486010347551676062149492096008504321113169615942955079819863819113003878445354053443836974332147472323408889634849986225307529726863712195346649439501845913418948770550853393369650420661081832390621059475528936373925741836750075748110553647216744286762993765421761763839295256377793692879847524515804069228803777550644707523053835508504379368577345359679406838448101421311642105602209836076995866098124844153665842009715453525153335763245873613780130816670420344638715515615389029209531535917264846337841503892790227102637748348428692288683305176077881526270930509249492172294071789645423353828127173883239580110245793447561646203963655254331625118620531710047883237677571552986522058997209451411732482445111564174928469824758981910128443634826254190351888584112477272513099873916107692526609202095286353509677976067629758714990926027596824722061291861099815997517386680849895576949841736886302286270141481877451889113204533916336873128459791653167514730414525019747674970203616520405886956995422695284102769728295448147754620947604290965759831392384242714098652341230738765036496877673967989968217582267905386929241878018304524200094511633947237033858178299356688410369153024272430682074040690605519568940006672347630300567830428718097200626629861653634518009607354519846308519007850478959659028725740939191366541310949529339157288881427311316271482258431425742534076003898078379817004665106815015072880256201682995718346960622613635019208009373593656539891651737201324591443448736007788625897091376040993918144390059016796689711900289211720590550384291896995608558982975766594464465574938515360517928274099075249004923954447916684446214957008071497567751743021848629776331587887217061709514780469669947202856865419645055917816422253988549182863461045300252920548996420272764297080486226752522393516036822830019482141732098712535147364026590293334636887258762492928667275134114370889837829413066447625941772923298670295516173850424818155439982705163636066987025562135616961533911526349130610995930780814331289979154498232453366693380216876781845787365950590915332227783124878021566868969912530042431767112142826762469879513165830351670609301086636590608590030852254836376401004205222495027957986260042001975530348143982229332803533523051145030194498975265130358644236501717885570071122563865909920317924849690008483163960985838830784489135432692427847025818278823850969746993849425350305763801561509507187908377737529738302011110829648383804364326735728469228042489775467304852167100345161219514801841254372033191723073140278738760027102218957101113652477034066644678569310922671965257553564697013214511604447189249184511117549056498278847836210273147967641628187124439551383901174380314355160855040132662997470196551481573643627120245163091352741136593833349144597035540379870917399556060588500163456172143928402421569492594744615077903564694646116298164953399985164108514659640392807347638042303591290265292908537980386455155908934888339753393665942850614484545529486274189755403255535724472996790018309943227063478607015754600496205481593378817986814727958707810809162021197587613445473429771913440734514467121406012058467858026521990343206205608110561496604983440627719756306534818290608752414981340488622568905237785187162190548420186930855151424997018754063364775655846445970366047194373730895238293628497248426415145099440732289909965665952505385891149827524695824599151692740444857800172361050506955461197941415263332227098049434987388235004897392829635432076687648122433358266990397246241283801441669948436029758886442032674215665781167724669208204023041349777747178973471524710783889594715999891911432022493410532198163467687510189834891865851988516906919449783644766592100298343575113242555040462105148367796558550821412701040920735403568671254734664950392107995002560877926010007265978653538785586673801302024122374131638727480919285362860732788027426106875044814860894252446939438201013759452333878780323084075095017433028349846107146653312701727318962816613092155815895698566989225272994270924041497485224228136404337316548484187727840676282223788495675107496263470392446946168935735083289839418368316537088938530898218490148242615312686387608760982413470909134874656953395857197638246080088575503971488965010814936122187284984731489975840885325653966703251660712104213588345741051011232916523917918505764692011577915148247436028977434122883685612850719168938318973739264578151953984529726162342127250291456382109264765401099047882036977680853009467141645355228883765741906156450840952791103851547717235143877572200007613869657585787488132142360125284785577951723367697469610444167608344471607567583258260384257815859376683812909395376673034369462034605732083623016869041523275889590096125351276851081599909577775936234282270268277348961224807790897405558510085758052088688820815690950781948221195951832193010544345454193167720761873421144898064734280006996781755645313988227437583954482214840289953418237982742752255698949189819622572046858989923257678386493909337606270359955052165351796156576704574043331561177954588138001976730868637254566862910731181156889522191288908936510589956029585247306855289422104709761161826642920393532814311649368960088438798381396956943344302805600071557590825223284135537691659989617873470523029744734162376615177792638227711854944518856563357676551971433641469696346285998145559790528512259302594181082747241047482340057692560016475476746894696444310641211192117549805160833551087783184659530330060520214081695533663770697688107348281158779831311828744227063274611157126296921386106793021834621249179089863006854889430623759190784100431913397042160928871422183756395022621380230152677112821335080353142425898343748409207043264997846951829239853884627426176947466135259480554251834775947052525445139365731254837126348157226112261069369309458234060875650442788352131534381918954142824143199464687116009927293507387075185730481386868911199462843183047680632977507004437881241453697568855269902336386582204397333005989629461120764291685954143800539312491309101758505076255847067126226055907370461438238278331201800360600246747277291446378576773132072421177030164409514744767781151465237500550874226576230305923823941043737140616170368568370862783694448232945744980477197689543709870726113971898215398068142855950103616362742817988115869807274584073804073533702164599954400690053873743659563186788841412413793731576176361128221074417317338548548103013630751178905128701597683542810402991657818282763971377636557757108518354245490584189799726145960717271980492400329887689683432406147809246410156868841566314980788912163705615588079760224177951397880462261230291246176657244089123987986220451640180372520966388481179599564981534355636412497230312536392160306594817216582867966033561849394867729018928760035476944259241426226871289726493658280223410974384286736429230540924033606715900751928977562037656996839962492267429361302270339125073516712074876296773200436714049595554477107149487810110064114748573359833177394328766000097353102297922142899873577678718646635863668522342784381249567351125168713946833198199288075573948263178898922731641636994741340149987627394593603814563102539220098042406451944780833554813081981487114219886456556203587729404495173568632588143185347217926612888064603980156198938499970842023864301439641465318323199808812117189217762500681310488456501047808370205613439778184987155736177885159633696964117123186514814454579568325729998440988222895511882853429943722632435501642619924176071547562449321395675452169490724022874181706673931621717644348638160663000861367662297356956811978259214744244033835450135942952496658004264987673140543973991632824895005886073777120169969564648148800846502268219821527550314365592517239857978901899387547491077455127471847758144332371119829748450664534407117276491952424458047791907751106851973471024197980846735989563526251014620446842776127958732803828017370174711960024453270615682618583007683533894931360307627362617169300954738133702288601213226143529208022701495583211186618303524879001231283374193698062489104044866632740282483032546105930939126874678262204502893858885371230301579227178247677867672438162847829731869582560582792410186098527208302081011723803544029954109997790919075726816181855713038141353850102837918771819789672303570490323432321001815953368827217833468155512059046823735621040875840258963553573815914792492313076652714354286062403984505197364460532433865645901687596599129672545420879154430279514762383700911149450932150308307055300325168520470981194968411431102476959822998972698238700359555648854479127837601851224285744313308154879031969226069683459602031897848276731782123086251615564868774263882994349358759082783716364526252992417964363713045653735327409125243203248321816045581158749587036076196995643226070849997758116887799523368092826633989150947913114989842915067962493994249000041713578882871019383320136980808501740264309924782324982150879247647754782657266514616486378063287365725114004882025382925215308035673066286275695177581153640960802797027356006028846210880096642334261579307939311653248943450410821752103782398278386706100990142334364488896487412298746991905211851808072785576687896917662317891881926101967500837161382469066565395517163628790631795780899933076985102209247461855129988342678696359024281150524868678109770995543900127952382641734376400507652637905783722691237709946710801143181743109584543474368326455502336530298282183071835344647208685370921915795478899702630106521333745425576624230234401497896673411661661144476905648202117384522828075305232719397584898791132289142357437018420075587740820433226410323579019091964021578890247798051379734860911549353977040142408468303943483942390915826095076631346334331528941475819709947708227329992439719898733966270468514416727113908036492908171496902458194324213840770233873307355620694458408497253074409644302655442044177502205841803370559862556441476898577914038532803178678447147783021445302327513970638787553031240748690603317637363399512942602774104547359549048737467347866658493009079878034579178791795373361102592228516818312873586724762392656104635325410794718297021933254047100293571470948825912641037511912549501401105865044507876072714814640378408235948301304435587283961222057099992769545495969875046252294226999664824426544526013088819415054194386639488375067736709819429764388943864851137329663275405185173002584447391626921959555194278579189337189205295331256807149882873467477276787224409422138417284810348139356716824345473193757922252157968660435672851205879104245792220639446139361823283584209834245118789897925905369571154003077341687966600163004784901238597912591598592977432660032042616810764131749514898654688505133782310908390941581763808476372935057700612425484080087633610086775814281760241615060636843126056635596698288974576926931026353525649525120696507147760722079873668112551851418119962767864244638452584128130451951736696159961241077457793692790633443668976288250607386876785034640636967492457649052104183197864041654120311040343897494330411005787333447096319116856186159559588091850388566735866254470223872540229391632865411082478011734264602261269046720990482821477437659751011536865603657479535251570097621235580017449295562578890871832934111682675593296485212079857507369801720187224441869438418133260159755843611119090403513509718948111661576712011739686273052807913489051677012924066409308614883362569850340338012238732328654999239390331384580387393706481309296242181048495976785205366338489075061782333996720877983330854227048135994560359476909998667990038416858659130318131741078659985674077084949861606336271886140358139056226738719981627857602484951095128123749250836651300929925621945069117083810519562492382256636824129348732501926364375094404293868827410977218896716427580060188658423176442454469756805683677691989024552678968890980247435170523680063812018034221826717753322865988373779502894512983659995912296688057943028714214747232664265430100382741263139758562644315263338757842366831196052098205413593890870312910662412540372040262885252795614314951804804884103954636572911052690357856863726734921232423834629468289802129161686253878121951743912791328037400882137408313555309537659906913947446981053056797838741997844780002339220819016233564483944742553592842148649082154988177093369946046311132626570651272075769764842015067872879780515741850499009765851522105832048944734239730458128482523367273715471612468238673215665468126250497450345172063467069311217070398186100784286068230531519184779801577237214882901781989481481526184165886937513101126438577918962165856704360027494332139286497595324319924401042598884700223163680619883400427813570810326913638616783131187162341259093108130583678704682083049973907610171489043887337848266541966817507544461198632142711873487956709054759663823165715691816221790826932623117217297065597136335528401987198809272493673592801245256252812399484056784951793274408150548391478807354680060455745460364884133523684972170896862609763357017752928671057914610805365544328266239172717733130985560967191011705680424797481680651999710319716090071029076239575212537844724338288100184752338638873383206952641101856769534787159281842851939414577241573596219157616139036124038515585689008774835553416425282683767802779350658305655287851266770431375816406626988037763774243998867979720640443727732219730484609323523681431470776235004004141348251586867388088305453812077607754793438964906699076040341918215869573004857543179552226593679299370026418255199203558085435844417109054947898317760512312890406955445728494433773752088941963954876559708337788297149602997993474249936977933597313610029026600072323706768073637831733695574456775118864909731131375151186499370946304333423534753500863316771146167325330149911398729084143176252831479262088895991431246228251076455660403017178938631670553171030182025526705227338848632946029499636205400387559932829047012265608867279424919316379982059050806464789051986026745038443253972991187567303526996570444475583294615197002337071434606438727626424325209750808568678147095543618007729917426037422163536567368214865833640428196618275240021447197138435926009911411815912528094850223374350977123721124734447897045546609632366376050016198952233117854673193449952800143277338168308783799597657355549398032896566458526340270055653578014185748885655724456300958799120479253114957128999969004479503789975036090497523642882811302853521558197201172342090935536645586218234738827965265421227411861294692491394567219923415838470978719562533567998466691987184891969284847269573275979773855635040414458488211608014192817629690729679723687659218316603117418272013532391513166513571363264832846377887198641927604558096083221021561541759220644441740299317206076054016237889477700384052858641888362807810451293299137899705883021654127214134537238976605020845495306714607004373494554411278591456397780953424736613236557452718904212730096760089604110673087757277457991423519198393215666768391194148834422921286226575509634124522831196662549239128906211237760921831062008982249324887286732744947241432236958980501279471759260928723025809200345097046707835192316415579490224107652589081233078234846251986696895757465873389025623381305204598235547096157512153465604462749190914061601394058469082835517454507357177522240473086107284491622808279731279420816105054066928798667019441378591110305600279983201512322505773382484569507419617510963482565238545622238490309533385376080004442188487378942384997291818968375441293869397673502588283613652977259794775432878812338654940431839459554179018154132052982657553901307625269629062488067371590213967622542313262499723182494983688141202673364107419335447184809282468230434623333091938022033367205785096923236118007786493276229492481580502253819416500394904314533902328827864023913282579769898613829789849883872209776553943515731639569731625775559929776543243182338376409892037321205059864774875041637853459896175955023579065684658414245328794094025173566210508994751334478025115819766120671107044051570013545361596881889101383294080684225282304727393396414704597081567852880014857677346476434084200257512625902694925839977638025737328945865928417810240280539578424774898655442196992902475626012458442763803449463504085465059551329142084852235488365713497387551936276770642901771573688410023098983876496688140502552243258392873793084996918353801042894910228910444344367860957114276798845602504340632633869788331645119949439693530924325349844467733437750441781842143372149697758488013593346690483246141344209465481579782511947653331537422333579650731094839243213916449252844116052407390797376382840084205943147392332930992761957247229509483683422493947064586561979644043207061099688162900475021600754627573872250869903770423014741603713836261739473647440741012588748962748570606353779345927587273210774111619026752759583027940926940197639977264866118495282660514008807811382797962122337934123427277347122015094007092042566200566530915818551532151550376420817275230834053758769599666646460299690123038888909543622230877895971195786362175233747533939153247464222988972026779232660470089848634819872841856612673033013362090641194655430892602686084376865370699327585094104400857732241842670538619689088898734682592640347300026161041018782264627439872407969761802550871277670680596101686366519773330679860189312061880123311037123287378660834909661710697220165568276965862453306173962859169524261370033139003200593207795846043992540240584850989334679179984096814458714631962455621368803809947238056746760556597117725482767031434258463960132073800771470512191224545009992998356596597809790627267588822425597742172961352215561437547018668467176781478144656436674982577136568010952985555294069925581172897628101058593355543022325064338592614386764843624592070928737898502016141976023364602187941778337387843099705895937177566742241563491041864924673752920739736805613987455689611654844839632637676631929808161322064372295538394533314321544497087078044978968617065323978622359512853492540276074789778026955601178740536292618446667873090387372379751940176746703166262547256964800623582531206971250082528411124328152281791861340344786678504886743719977468190976623359526195990107597382509460180238439093881856351371708894838356398365335027070468244107204413740704045261828331917011648450545066488784886819928015228659192676467166564343240787702861235604174800426930770503652269880062873229136653784305592284213844122040004793783304795762251396965699095909759132261930130146162155423379638039258498916427591279549457356877927508644377804928738179916943063766076537634618834354836331273254482425483310456550783426434723810699301918829342579663329216379185612551531073940234102274867333254467597535138998805867935033555544850670288560349330139971406687172095345892318628542534511174900363240003580730789701340557280465097157382726621917160060324842088053730495530183107635864656340038528716437636028835890163548289912479133860497562243679548834728456023130370538522320412031440086426160529684752393555493531727316435460362700416585093073150976062087115569651871839815851919011158050987382278189744653626895369839099462852508437901201235897094694898400107396845201759052586984373007050683222232979929938303338244204797351926068730509439059061205427786016246738177329618633015338732482793303832411075840565351202582779645863159459970567122394621756912690638750151280947637875572239862919767143950364365689693382668010077914095492694576241249556761641369368659025988325334473482312052978155092659600877945862522512627010965069582017138458211275972296377970536520281873462798311273043486485389742872498201567941871868221511571871828076027224295253932314148690133776756860818054538624232252076448749273158625027013893071354603935367554808672779835258969277153401312795444470396009761101515508867879651687282641552976388829523906147334425817953279023564633214579556101331984949451634662057358431345982418916801824833418017935397894902636782302838792265956188386275906492659559164355071003462189884831678101842174293745951114080093243889622639755981393285892592455207337885479531731934894757096485725861428241883455441910224684419979963994119158920628324154253816015234824232570087833093941542908389811495028491881140995700272089694675264766707265797180945941356966682162507630295899004078636316559776346320887362344213411141869588442331320456784394539102662693663670924203824286423831642575725506583053359384932095106970720124816032556039023229350859472461244272875752210466802081738479381823590880895646761679166559677740101824507437931288263772901602158286580127755316349546784847384730826557364312610527727329134815374428798882260451120898805277478068489955145972848534497465095972492134534069895212410567542349777200641235114596599791667958716424009826955713236677001500906003912967640628369970469341659230241389760145149580787255368047062565632959392158963555358595171271087722882058126749288649485525162578908617327776845082577353683572368247268265303632455599717518061718280973838379835560787279118130859523513739887124717357273263627954901152812194025505021287182623713339841527431828169797033951659438284455697723279827943625764933134999275182854206654256431042184445840188728970199387557948375878726899001403234845191929230419611797045158053018736100315105239988101152367601116277403950338711634239748625581457202759028698241204021061156381001977436856975177495724592972861716321910248941213707444337937654226058837928010517178694298336471035283824816925570539588206271354267524597541847503688062451475763185818030325699417245590248043154585750617944510642498492723992544019719416032081238090906005912439142613673886353228481358883444760541753515670190775955773553861408168262193051803245805373215396686806621847916816782328096870772342176648636758731584211836989222061114209286668022138538864831266539255111452899551498161595754302737189598923025640086233997740289691875168839553552442867537109246354771800414236062542383102395962301585394708501271478223382739810844039567924737736918458549781913837734668485995676225262210329233551208072700955795317678739296199072557963522577919201078896269459515618166223317625372690447551933979719263243212045252877070898677346380790366883554672148431277876520358005610787203158860348971895433250268973271895061321776963760171874530529322536250239693272076077671414375638027969191703750112425833800472330769263515078334167357130581852784808261905729246661541066942077425337434577496286338005135759712698247526605223403066789855593095554958284155692038650999652337569536515302303711122282285406222247333809118594224464640032247221413631651457130083308969048602938156745869638612417417030559423079999833256020635264652211913963528104023809219025753142215026004663609906975993491986034895968778863943291883902055371209036076575482847899120205787135909986357543946439575984605465086660809237650580128871055722146413974152967978279355058567006413453580168663742788888678622171786235934437133474848032197783705499686655321516308380799557112019082728241955736670740819769243715740693879896074325520420253619353959531107000810651716063302023385951216249792531278674004636809108717122587301269991553969482801996048189225914701709941134349132056504378770111593712460007276017888126053294568506620058634908285468228150597022902491803386546451423161525270882409524289793553806864062385740779660902240000396763438099408138010116330187607318892372832332731514381622264111663909471658044941001810580039937757175192749301908315248316062393904215213296403295728621228495882807095418694876197150689148521213933359943812022840344677289704091845554818961217941984707525030729245249328828075968052188320747469299169441028991355641632536068890736133327370207284945394346093998350959640635058170805830768034155685747429558400339490851782042439089033408263326189468693293016587770903683969556201926053448608963120881191631623120365083425048001143093281862109425068837904074060028093153779329750132232310223537141643897996556381438086803410909089463716951168430681407041467394524601851734560742242911601566728851278614060580107593533003451274973788731188417915542100292054987612923577810696472761243599712814137813908740437160416019467481083676315588869292921314322844408406979825193091152098839526100598047398044570983970307099529477953900518847429134462789947225156172450510026651692457980474949526424933730154819949474240673242081589265511530893838764939127111572179049017442781613221240117412876883600551137337443683302754124712095767074530612909248554043245583339790408020456759688608349174318875904539548947871456494843279355206046324360053469121870405542976140578183788306355179862322173006155332613510461323953142950354967092741566685149814292391394664326834577198618885935840416737235121727906538811693516824767801082846152020271926822942521060611699623954456862526631008394968204711772626819593008698716531057813988126605546120217207669152733476535811640234031283943411471521601708798975779090900498673208350934084374865136088079828940520318905213849302188579579410460417593854699627070865015926493202205740017838256546413176927093633763386088506600590093497582401595750131047450400921766300061445674761354052383600425049680910314933520856773459681323718793657687910829939487009850211591788758880724032071017627953876738556680924965547509385305477589074735278848519637019810782218209914307051507845917353117156837779216668061669526636847650484986693111445346621627413135428421443876412876808949402180665818676329255097385760687144866808114196672974888482331565747359705154855825289569724411252358554251900443133013191398663144493716898937408462608575134632146074712900297103556800364350374870228620440569716926146080855756822678300009574286251932490720600481908606363603315761597738465732919782060858401494092327785477408000473189786137497758840107679606035241879959719831676381775273274291497297629662379538553852381551038079309555295072599131679411669070216696302062962667668969979340175968401765594307488344865181060567501345733314922448055739960184568550093287631255937437130075673830541529271201396589802158947310546998655875657851680651011889364494005093122932454649906363659992528209457457018951355415089294171823807860538439205259509159816294590921657630164548104230085479343993425272104092934626940004201275079611858893795666366603825923162263334711156468408154834148122478646061321172968477607572514635186423029682344032513353503923765914270308661995990309673795365273210827938842510986193002014909264419988439368066797684003479995693189111485151859998169095348746022671901215958013514860359946346924689999440362060548902495392484491869465800557545539427426834422918855189583172392856482901208648889417788819245581145499183112591147960548450235181865638831540951712157441375936958480208220060886899561441809134893096590914018094827620449304288186458170629447090060481928656476730063499982705373512887064765985402591365039218405829375565501322795978627068481096725547922193009181046535444854712700120609747680852965354299174258009153828180075510806097884291617129635025171705737506277180277677688543126464558911785844454108882428729155780502601328550743723159718820153362152251591661118990572202012930750248314139032694695106957288500418166612946909700884097264779316522512896332291606220723482794356435804013343718117574625256357757746995151052912819255677178764861393139194297915360475925806726767643252109142978630622730213289224644957255771212449769545760743764483662453473694339811636392032301963025318399148684832275756946380829855102416517505328364489579962137991309376757892100214335488105972625813948158011709201416085573298388749184957602261777855403867269086461345777395563510345206169736999631149543908237402684452081445884127037614976150808554048925274608750997395140873881710268532328012317402858718301495905930591978494774029575030426232737913913062462295240289157274163009751057276042477995609656569312147199758003090845402203557421130026011137260124899611212968165379336358198407260003712799429963997203450268606743599983695022839115704582847173634239888258504477794022510406290649164626975818739447019740394067414115768778622085797505234942475480765088112349949396932686251951261884174094164101387849484944889483653064281963424877594322913736733491493406936971829178484533853901009807708588339706943642272181386924627617959306652374941958131063859863061869278813361121997735264413688416247346629476250058323417730988935106357628217879061601460726810858614697691139143292075791857580407952921769188437078198965528583999474209654882407649795163321102656520592402498619851477059268354606721088910935216106565666034553141482409713019274088703618944905699375832167248449444049984522061096362373135868004995789417982857735098042870810124275482602791364304579801389150149854285181130332118878445018662415682552520969494296987838355581474470322221665187534067017105126092399902383877235119039071185388331103506089117599957524376055870329324060519854579838687190501356862898995588658757821881242944391899567435746466694765590970630798714431353606560127307805105906129577067868092341379503234213931665497221768785543311908715824054815201393963107309143028191308239009745160686715089265554148357769753101420732053617025643868434519364921978559906335820818172815206049156739256724071359046951736990589173962760608532896212864949515914872701604954207527579233474653113158990557087720157270133283060185449895288996494272343927246648643316080852946957195111294985075922436808499971454243660107559849960237881178545701740739304969128065055093074470726643462332839781892749139427944295191703693983998828254220253875535628133443430704870809778050526121454812543488516360243355600998807654896268539025753974018333124991707701618861194672535501438727126514245409777453915188379101465261234919456932183394991572597600731565710782573520017893756827646738965320020869441336206732561614259110921512038826236939985628534943622784450825517777041110887562141458157621271552595098977338660950533779312361959102609365460587545486663986158396114472312877130715584130899982526301242891492302185868577641422410052168790435908541680216035554687803372986820577900650299549441479070286883172933620957498301837556146459413566753721098395310980095429647569088302055978706384108315941202534496547222340879636375511784441839871994436666987592512147317727649286033178112046026432928096659049216154805046832336854757715660328642095345334878945234558774953589986829250913688780612949986357728146828893726418240364018826149993520100980408864289644789415183107984529743580077507618418901597092877295368206396627627167769551400280238688192487260011979484201001604079341980132128830970439037131641753472133396852681573411812522805828233293989016963639175109135009331027303204173531326082835916714221991810770523887500000602743218400404738858325171820825583165619600812220290143636732876696791111389011499848657136731353183072327429575938277849613490269605812177012244714126794453902048658581621059837433592443905633185664193733538964607706693891731815400317507937198198413343379386943995486493640491893880763475886490902325293978899689950093232582495092664542394361974077699625251532833611005532322931954994979704778030007937183054835951477679225343445458693987811905997055728686637633126577680333587520430402164346461543035010537753262571221182558949189746019514113551557674601127907749066551207934146879517622852264279449938097066377452349229047971468566033867059223452870891196066265438018743563614575316820532364292998396746645021494948068604645588768214568622369276312354254537484802655169966443332134578624595047245213416986656096306061846289989253080774220145092679609549598653531020982798391200441795051232798277071004968071650100241278619724416937577494431577479395703182361609751222960308996138692476893199089934263596849484423130928039991602109367184058637059616062458760926110767348859376262608308314831112759471906754642519706386299362108357397246156880541528958974850769460467312629544026436647177308595667740451310928700950115830546993439685128406558633461359498447446520989683344942710902381220053088583000448852138692045899052639848264076763857333134598278378488796592534162262365770828310676756497414840048758577354841010505548731023530157636348358639808542695425572273941562813198985694071974615341194529118917919568878154460507841801614334356172416446190525082505333659998290077165429972496331397779328372194776460952291612633022340055641894625581773152894485327862350766311160029816475418990567474749516957828016001240297755946749832824801215186532072277168733169561634582706251088255367101938162325679737874061986090198768743133658936794027602895606286574756944885825215543138122192680198830677590968697995364474794240544555666860491352479346035629940343560252340409492646370088273888146618725175639220706541398484828652822138840286282869295030400676223335380398641214304335592691695642799367419291709461929160706447822965610844400473209626167672620569973946282492234079562481421492424234940051462971728443097671811149969035774631498733855774077414226275540211320179478282638258920305134824442730813845741198452966331823136298303120234192120760906997680592795826590032967650940835409001982979080715032839697556279272475468025985143296586271122447456263137281862859482541569900759476791796961257422268333591335954706730700726098130670562707858642758168344821183812342664324562580678118137293513410018624959809661799473674352416902249145433741162019092560772078621967917975073197224931328143282895405300420744819417108927870490365325602134062456390520497931526902931775470763941986306283376453113556271862924315251320224688600315310218987494213602315936220229258770630793533679346875243028780998029618755634404962964210001747970147991639401190584227788919532500057815973436448753908432680117971803759810746297984819244503429145049065617585762217477202417316008615646566684672327894857678278679183710498823551804147867451958151814233206516725563380761503666083514224824441830504553279661642516351258067003900188058778892276122710399264733360534431198118426807174126687874023582275499762208795515789217393262903823740294110906662243272078682981717947016187491910981477626197610186568532409922852631274197005570509167989074563790762083820601800217987988572884773611915335465373380839365405405153872284054429842176540423139914587770253638043254688911945198252106890499968221673487551076297218458414469323951014000830721789561630354783992468757719542390661263315539106947425624651384560871463211140287777687240465767374376414742409137281593755700110412394843079904266765440567225689200099601046558105694195916809374419237011145882586264075118075075098644533419237097491670669735294025678591070228361622683015099637516422106533435573759156383567537887705394313511091491903394497605322491104675217960940344576048077568995085766119444651081808804081625152201427817770460108849866906677596437470167863147537531134588741459376162879876594683547490840303827168441647224683177966372747660608088709046356608570970870303675595383178261947005728794584260979960792306907526737556268294272620073614689158242700042313826712496425404369554593712936085765832721702534139485761181029232287485086671777019400855364397095306857830479415900496380670488830248782731804782460540830053317516614556867076187797093682432461825523083300952073906727159475086633995562978241140235660619549813728545094831833439154370870964122667399071137196147944219715441471091725161305874065135563201651896488536317994995908378408208263954507090130702781231980554261619393392338578208907089650035397195822963655153080311191848334193831883263075192750820956343339195616168690601535881070586038241086731272322146769735847640946602362102806526834898586552283372758368106065921792871783813496194306832518874006061801900895642361885029093585236381501380771088933769168011236383403450854067352974887905718073823157101609207799134568046279037740371449187549580942037861830104966488543143689458254595462175627966421670582750944761244741384746258122243246077562496025179360061618403917556221807164919676235311185028925716626497156435072228913420484139069245494703006787651355358616593248820117101171461415098916294725571509857018799367158827280233921267477837517497728432791385691545646100212798780819525044211554201396384181377865703121364278828050596389267816486786545214253689253391551245584222218116679775130301047510047158650224724179358947699730144306524755297420931855673818377757655131321642233676587869143239773400158936158222150927762969087392811408605865218004313273417767179887263210529433322468780766003349385928946941554643214223759335527133415761570413827733733649210137119852594918958204675825036817093215032379401830236294383647208727741279550327930090255936807546165801278986592379855567430248978142436796360787589796688183620130025522916602471583212666743060247882246836667572914034729033807550841213692766205651719912448432302356075867320112876559545090987729440600787626324065062224681573415522524871054703574271961097741199603826260115947857535856184797570202626664006570565805578427203531451406981758940945178254431563430376605057739360698097366566027794075402774049893895309072244831149189819166739356401756513451522442717904863610940190569772359591875667987931295465102938678026825774670436850658359018948617695267690886418777501051632359391083286928128673106336427407653537756739719419064064577020150110085512094602192648906024559859953875548133451098970616481821600451851336251878446474621650115911588576168052236209938374274005938010210605244054416484159431459330433256661369032660220210058678622214109574773692198508420198925662231061336541908962695677093031112962973630764377414950975413004663196666792096584080637924098913371008015910099426476077029296678654024910817735719701320186473529415954013660524867610876772743493207185302226647460555945020848568193771804614933670600017112126179975344212542536361568745873324004012328647942882774853655209786999548795781273130261530275786933638257557531765515079559832453212638250198193023587784601905512529441877720318215826238078371703852567392503860045769620130781200715752955463459305728078680546187188760694350178936721094294940163445369262409984099158577549641433753000664252477252969775846180628238110058580572644580703616923337136805290080556858231122704774172411344116501415659198227103282534707376714525898180759703610671630909847093864794523033458745849803637838614067901572074843807769379777830865539910187617544925602997823683776984488702957778785464899567957692374275849745062934307376676625323907995479515252070204926875792975983596496878776976461249273300345433766910079797793209502715028217225664850654306665807953166889000819882938823059926249507296982881823635201611309098546614947930515463014606487237532302320628915639544893513684901669875888861420433169818489913118114951776732796537321763391629340799844154712404397272190826781018215322689691977094261690131034378228636306025564926318480659316447490142640126443261922714221833498729709679055640842967169412530180268703541321530760555839125410140117163527241021560547122086416990860232844004758063095970778035659997952165310709097882692192538225596484768574857941026804031676310931487096916900876978742917678361185776344733667419077099589717990385811066484680324905723903391927225768271942170961505732493730909663625868055670832808096154359640952306182391934622712560940112234023367023966079809557915722257528848381605561261834467610843956284267602512163787874826365379189305068824204485751770394974306386763947878980105774805100563235541185560176839455907152900315117306640447508910952619324476977517182304892598431631790820234265406910830234896356546790183110341075981037282443623635752863711862257792553313930718902587156282343932858453113909053851032358140596031904061169077686080879868186101726672144851127206515734444754180878133159609572704367672588067658752913327556581911510530536912179491783109061785767442065772111051722711877750729119522268444715022430601830513318515709650910287466124502245274058260553364078567925165562964813915071085080773034818128341899522562924942476468283418570259734097039753344653261735893929516251394342393615263457377349427358735788225954061459336528813749399960104486287207155065181397977495463047364641759976462864580040863796124962045887426392817257261412214431357959831957459895650030013334119477189508175883752941375547851099545470558517479899027576284384187387123301421716419500068588861882299181172679315704189983730193055838469197132849712195657055340141800118992336006870313195351427806182082923869018499317238305511784733312854970148489872391930176527469346336122934292151569724543872048383810596561989512485125837342255398908544597362613872770021124023771598957576298695990080253106920046434317435408055367238555099634895696886120335062794339287818224115670729717268634607505784286019477488384136791251827849931172778446972507818201903348787140470004999194021268515793094305127893674128932861386328001008867196118325562122118785917377959725623282751453829582415772402880061481903341465622247633698818828021529637867290100153823040918609423616992257074394053556199375227851967162956081870577307199462112838811754127513342268895150915163132227118979657741064171258681250992037349329775764716682755605858680957695061768551399133886438164279884996218797850947801245267080034545152517531325859878746458380482311540901707999551343974667003476492658293602122892950048700857773585604644622542612918318578813261494973082600023878048415778629760489254617823255958300148470502579426810562955978788308135915861778237213835541092140183078491355628011508959173321564069873813392667887117271430721438385975576612217357895024365862933263819142386182059295362378758484775276253104631774341467277680361645577399476320345485499708340478127446005617141405383560665354332199250558796360780150823293876808943209885111535038281562523299537680035678565143320926252673756145775821932860847046798668451120279066709280159979278430759013689761161081053117098865169873203256505895061464451686163819074576597073059904151066500796962325671250344079885597942436459617057366026646525257753467087641387573635223490671529316036987058403988625099482117669943990151460779119129493493709675642041152563269916396783474042165188151916675183310641766872265395007141941393955997551434425599275894451066855452404730827197204175766382705558636883264026405447873996365946956408303130205572278502525239843228602320795171768402249154032268654919728001417561410416252460514050235382819170438876349297592470610689202783416651615550600713169321068627915517486627917048734041225416274449027069628568449221316008385790633804466586894195074632018026375481316464772579180537849160148409286649877864535171327208682684105606352251879294163641218994411450534044298511712847746382168962496026095820271147239849576436810502462724255922918468608122859089872314267713701995970913222702686285366172118027240349576985483512835186453644903248651999352300187038463404015976530661631099381305325983697233105700633282125461107487457581384435983783058539245186289766684320618056550897153207254261023567656049422367055303814881569731857969763605586711283337882424767881645764508302586866200621092742124022569616291466344448758884325115976650908268418583616464018192157374098877067831995298141877192354687007079716511635229512166978464649026187715992238348563761287505804386336299188487548450067114852424037932749493148821430181923556676208255361830248285502867946440323599662848080025940807174579250828501234983736142590338262363157944993781033145452597982835538223108937817700298616910187868606969563086457986613906935045456933297791745062782172848544943186769998875214175544958947330756435790828673980066305387420765207376733736964169501431720225802851086099163114042982661492833977329369925163694506395899767655511814373963391656532230252098532761468273105503063799721361952677848240090232376944282177417583112305999633152287885096332857061822806285030101088410790633372173752185416542866572836141355315476880153039155831242766003710211386009887026039258835488012153552409901810499125836822711117246054060797861324879458553052552783395501918200484142319244832106349692693889308791116925866519538789758805762131346701178930177344388799707177081721998840150592031741297303121906930468890861955410468046938830410284778456031711726419392684408173432382079187890090664684712428200008066291712717396330436192459239001496679961925784591178016359376300915115974451332855824632418422073334687692010538437549145965774204681058617424093976507095218200366083316116357534142953053382861928753553825533599817981163585804036457584113316771778927930043919626287163824324171010058756640174070393650520819980065656378354997850863445771170711781845808368594194143147432963214328998285348190711577779664789176531675491446763438132835006596932540902563424971855121710561459546373306510607661111309251845301548955894597492514962175922368244054898155368893933738707154156541334083942851197048467808266832939491297705259935716734322595868447750435716201886793805882851252214724678280815819849144385190069773291348517858598926329189904455480439695912063932271651468476984800533860147078618686259485963386409958071096175981181603184089348966745471267288803680359642501856021281854952249571438846573005949928379979784390359022126854401568124898178406816092644552487223347548112927733248405262311613494100081523276753392131104053813130797766109971161764758547571819659541210005502802210392488522506426986744842857812511379065256404779086760259755856257397377493339185491795366674163024236196047463017946796813918973490308551492490873284189732732142412101598084097643535242742543047666874525256264641619919994357843662514945692039905277754290906912109782755477401299587530585668118197965220719515623536030496354938778172683314617242648138455032808878858685354338095781337157555953517447401480814238272796764511656763431284166585001169964176103582030524922725003256936353201580543233585731245937052523085646959926282103557483399462781085667041159810951954319752406848551309991207851359980300147385351873554051199951418104093116623457219137698937801383281856022788147304829523375822952538519242131713983280575128166086771905876239438820542721278481561415014594218912603176049507370563431987810903740662294170297056643819498531454041819226967985815798820825140250950311799896343984167150441015270258757397234743505803200103148902475599051515744931683747677558997863324100013969113767761750893436294372689848396277985197650949061764841985941977549300807649202212030058472238975976781505170858200276313999238694517418782449585497920981319540453239336218059237959230087288661164263798793490986340233230482441937843075656188225585456737037448984548546355531852079328370351477156431229194148429498471441507678163924011640493335308534801809707801973671837512772083969618591619399746666956655557160617251699155417849992959357344501329232195400253879718177126218602367529934647390046688460542598632224370690428012721098687870444234710780129624240319303700522549440801447614280222662882111825237983847660796258566550603828075120213182538196296687476629058556280150431551437234299853089882212098860943553597794606020998870078909473837398845494601686476227632723007721477285242666092143449751571695896864858106352098444188831311254598781607060247746312579280198320270128132221914602131664596625635470702198992346915985789897745968735470252947416787943851179849087290446409813909647117322332166882646113687167035899212186285139615045174236232871664534220464595251387583269418576891787728972819529622985609067630075261179699801719902769832584793567869887139009522135143011073637546548603897390895219379681808812308201885058729943001113382463806611750524007160896272120649065809780502753786141392814165038578762807116478114882720659389108562485182497221571756903785048380299059389615506798516404863089209588636525716687825044920089797499739049515514618208174236813154358330077818149597221147425530643797278709224465279545455008860822985615307177358992424361700867225278522096703498805853957514395107855926370328568144490946818659458382407884202644651806644944202774959646905378998116805631507280003194779634419289367052621248520570858143174691117222169224786896206104393585038895008854510776268509537425862753666737917780680247754281297413988878505591561303602504534899773216784938437111307608254572385444321732347643604370350764154337431704581879775077221400821721301332459224763364310713956072502059513701909353907700891700075192918798705054519144567537244508208222796284635331174947440303606688563600155342800784389987914914315924775960227710311221236375551214055992888556832890084879678233249416884638127185959905044748691866578687968442936407722614094561753075806695095351513961677696135943961909509292058227024478205257941193053722900768620743661526751867281402489098605602669732639462247688771662792965406850938755929091336977967675266683040996919460284408141202077409259255739665985498867008458629809282254756581189645555270564297661287377508008938148144130473414615762508153689094214238703975803043403202243599777555611622619569435525028802732535567946154567578813973599608078101913925684757330325164698725614875134692505093828985710023878984545980340243523093473470388354706984755885706529317563720016796349795020499086756728884306991865880776167205995171016750634121884232516684916856446587663159768010660811680667833833515879711306797980863911303600887051227360316503126811230055735126012461366657437160691426086988141394436248915256686014794919889893115134957063882651921172477938725417383407204243273071538640684218853033238653941506851259323648019552839571702871392624035470442534939051362007171213368458722975053887488089045231424780624023070661392734464399035313065773974796712958901105543933278002452787056707810948421997045681789613841876913173515175156343425732069743390208786826495765338258521329918775999489984811464734592971579060160786095336710659926879291374334349848421499619672553940197917259963055617600552288065826678830850305223854643467462528116606648759279804577523738511388631835983097765731932321262221709967429432404364512730092534339340119012945069094925868122695765889175097583542532092899128056344335271039534946489681636833506280529382841364751724057256302632558534009542717539165543075317853967747364595868723239256799071804784598020566012240091062276210727736601795542441755069226346467513567675506730973548174442496718692681242048504296915725693720674929202927960739029527034289637749706090681394037226617701558140798631422556035765464364168982168550165693919867969756013611715528789006547582256603817613943077239701258080900254063964035950742350977007391067610066813227685856848377618224950829126778388264095272397748864903476384602672371482745181642559914204372312183307665197907281522910622418488922255748725756501014962886031049560956341143516636334685224367146630592724984505167260129584760471950044314588877729992639142505203527127699619405265179963941259740095049821138163220005902103378049134982726034809388299983901088281376793583246076211365672685818068538025268995654842560522263208807687517864927784977005290442762826369128141688384375324745885150172787758768889673479196133153171250201880630178403018318951629150936222099897772341505574782712906765667714992185315538558164713593862301565752060594053515932243749527587927602314497534069815276541084673380679399998701564528917794617509286144993630183672259508943569580878832829101724686248045411685134171187853017945414196956963081121624224744173757602875872159531623200065358496681582047877186860035976150738857266716757154023216543086310145375273167012342591438259552781051851345581519448597491257226415980182366158956102062227976619292808928393825739287813769585074236625030631965824727158859575095624376638016225466263607706386170997406896108433741437619931119078279361219355492971313689643027183782883867549025098323956197848291814276060977833521470943067168372178423449788197688484282361049498881091668346528483705713421956019700058939350185623983014073413332540781133575109651890984894096933670199689926421405996162836153626973726893196357870917720265701523767158915283147162413243164796468798293089081562772477466906149825463581151405421754757291444869722741348167682873978841604559216635469584672962688175222362541364292900232175577990140449263511122694110153128868843097263256833894455028983680408527849133529442895360565652407731452931300200979500176689328872514496815943202348100534646440369815690437039595409774131190950260596265355513825913360323457952177993586233019149412134861354669167248696404730176883005493522014221202902451924360883328498081686330143676840577509071546730212822088693669278158803960523725050331842095557785064886027942757884366219372635864404977713614662984311391846815803692724893384251306383044393372024806030479517853734320328831090241825066588301941622312214946447204282870611945874413690740798170333717450737275216677232725502942417936438830561975854085766145085622381635232569118919334039918540973857799806680757092500795293911632666411215516188363311251601956239254536852106699338931889212611469234364382326356456285934533772069195320966283350064114640074029616226232565323786454556732086844264423843810497395544979708450921350855755153267594214147619478814957934037509402344191317608071098865087212058739736110860719643298597271400417893041765281994859514273556663641604989078860172712278615947704623370875635104692436858504992426637290316191052462646168588679376318525331261875223080171177429558246438004103392046448207287642869815289774757151543951340779316861151780770180006269012470984001660704178778111014743328544159057795518216014344692546868367871401297969494385800267416894511368383264145796284375552573733867118766789257398968770328644968054408604520345458787771200337081963096741661147424039278843761419090790488247290261746797448263151236764123874510367335348752276931118114346557705171228721886145200030118461966588527999759366614426715160610863186546540243460112514684054892970707138157341759558157171281634008428228486659965578435163322368711208608228140764220581517025903643308878781238968733895563412967393177891945148033562016531081964588064400784060083243238180120088840471340748799353257700938835587295527278332814307315130801949060956950293581477376113426724344779405769948197050670591296920401238485750270831622347376788798273466756554804425495429484973723815331080044089512837380827850646166011893355522604538454169894654411355792679542943488988792557625180461929308028755886375561626648905252893893607604150395599513509760232057683301181191186526281621587989358411627333168794855342759712227337571782528895646253187265921461717128650616225022581538236893128851763013703266956700724025804159459339104168460533159234841706722169864538380666298495636043664750550903327387844982402490371294764542598638861041659712784748169449974171273538093544376884707163404559409479243424527186028545109042643495203621050564516252222960317655934702903572016000244289385476771971400315923287107469250823258846562065606640519204494424178281159911628239655204308528510587124881468536771914814118333478554211696079450167394989857165791823114172320614466492476758344198531534837624122019542953611602140334339758451793943461103744293995733627799402149542441604749134338727367116621322037144544054874916805820864213749790578198815302885249131765774386237267194868177432474382327895546617390263743696213840060469916363708217943752460904610489690523843152106526026275132999517788068840519383478796135686673664650395776255104778323073567903651580871983836188138931541967810870298369565812968997157270953391641165634294856914088789811949034342016946473970819897799970059563271654590839109042026036019942582746801184825142775528902565399789280796190283604944417817226469948660412639457737472238484603727595178968587345488295372933246566972873440681376798185844568712795351048639503481692977963778461883989084198002342973120998265201256484869512436914389864668493151988937583232846421763481066798534876168605344693686583478162485111282969928968880193999322746229433317529892320373240605994786256667855234423559948748944000201520094083520485219861891317448453989971097037444157676636916144745880637273433331128392788792659152569103525553658290242612276843245089565431157709378253465308267079019288925432415141553253559378667003046233185035275921838655507902118183603418882171904525106481159022000303256602774209716184879497546139354590328646267538963498679545729349443492356266881563256092624263121266930339150180096226691727521693366863799977793576134559173180124850514456387507971503802920776627046789820364221832440966652564486298618979033635655920990251313340539811866578516480462032560674973355485837772477326678597056496090715854878294933593209013389292457181634343250920832135296058090277311234602923614524842870551911572596460859745187842459360812751131689668165794711920066679990359202787065871470028186883795472159531170475213335938095738140048900364519199961518237046287137624576356910839194676172560296040413950276236271594346432930847428345804323903435802908538661454820739811999356477807333926840954097968119429161986599234379683729381331243900939325130517765379695052528253487020353634240373661338844558643938100467988787596927328280766627425899372910164410672392944415201255724081465836017860094432265052180740335186789457187489878604868599596775168342735494624074689317065092338816018344762521633623591284292553538674330636841787969739063758349032145963820003562104905078748947286340462509618445064271581913770843220364681210215919461840351406565006342734195441514940624320395536571357191793992449445580121568886369033745515184258462002706764667909001499974107535496835036657351560846145147547089855746708894392178225095547564592805351089287762444554964598309851567894130190060800079078442548104147026533462285214724485015081709039632090973823420338420142044391463262805531543755121687768287740146621554444325994528413988991444633191177454356662275878718984260622212117438116526174690362533922451314757555804622679061278031920668570468448038281966722229065921362946962982077326278008404026049257370222077764772369855260008841576421810918386972897415805594483654385032095521258316221305465555991804065543109346123887836888114370044184213466142445134177529137689303008047665971827907349342406570302492148716820260067939669383982659482290694074942303422852761589790749194649065808454680647582076506613264237815835057046963874721375443020323130534116639887943680159325586737166139792135203570068454191292061240569207119112458788871912100011609286240669215653733353115284917888889520469784188526924982594077611982707234878217775437666979941007616932594500652347656533911861396073688030108243745627678379720805590321237211375984273506088207142271147159822312910740685601482231501852332017131521113430282214045132186692404513419244048575172521878281542177107152445885308698669158671232939681424752025259578777643484003419358642425670115248770702416904711859875356123733423104832425049938956141225901977302951085537877623730793791618045552597286332942324911223501097605750847576013560543475056061493675236338190423350491864258166163908806689032813522267685205953851788393483271437570423431281916660551822189052480862112908776879682482191379447681688612891520262855333684663877166490139835691018597944747591301071515619130715211224497746070328029719887663012140264294158418677582894357480217088129651110170066352851182914941808655815012046069339691965220646622681984663011845701989900021754425684476117965855339586496167723007238987980542726337816402703437800654239111483513449997418211548184846893357496074243680186745753024075726667048283249604675324697683196926124844771638178648454360774489131426697295784936713752874986438986692563519308380437770520729729267271628370869257333456072811201972619808770925827178976153540664140050735418794982198311426431278666139508591114079469565300448664845115150042337828533342851699247935504998206842346785576974133402973565353672952380374961217459244704794258234846554454571845817525831499558077748639471664618966677996738487826193946586851457943022984473768183960897266105625552712296849006674302594728696205626144522958049046937993158845633737840302003572737664028718485500296119899411807982364688074733880466501697585641823324093879870761304619454784358956797429513807537846288445765609083700087251071842164345185964153007178516114647277637294418022955826355914940151972680112506495490771382997074747290815323084241301574040731078125206396595685935554446673926679268038021511940091905652478990512450025711973683315084404148036975932357216970130584636388846128176151499865254533855764282565696114185663558984363635096123014006307920097595403307674328405686163468604903525463568983575087679735776724095997715284661106639435611135673652181884327002825839873983016103759459810305359548833137647941427812257239575325203579894476037927553231208337604923452284870660741339583635902892329773751818094768334432102451774947729367825584971266582756160141288862955747052310300210912927835722753332145487987801919796913655990737380295012128777687774895324180515862978776729303533422167778412825998759212542441678955927249377094523704816800179411522257861280692022505547940829736890870112670988121393458688573734143549837974871335702698782869130375054453464014861940897097804994798876393452350169322515516701944509431941625073663137676073387983823492135069263149950917016410777920225362314521219655139603482925786647065156979601442765128949467678839324852760900863494186629141264477808703940027129048410913373364094295784668325268287828621165084256168115357511555443077585682544217134584329540316640222923791592908097983365971670419972747625879405370806453400129736319295629339194427993204604158768228610995781217987675898413136134118661204546627417046075655821920452976143517217672219326263352035581630285541510910005205306417818328202549744391440659293681647075799041711637739353363512961832778068214248673082322125362977569769340399401775482201190550478344661389638204955889982796638385858595519202585281327162758703678564425345989556746309046147361139217234801797592873002091459943780849045750621481577567242338417250103547170956127931486530481048726691405417186286894745229242965589637323720215579088743176371784047902829070024222299838529239801190810263407931922891623425320305508761540068308092165144616900300416973530874103993563579288063284300112117532319861564028115798215290296171704902140014214371131689895343264726709996453772788074058288532704754604735809524842002908093902161787612067239743087386020110603314816315127941774201174671445566925368227541898832808530057511995627918698823209204340132350522967859362349290241993583103405612101605246237888495269036009045048563611755283702571662229039683164082023222371152869379715967253966178062300455143927381602353913056761387020522304077132269675596036586750523405961873066355509732351302931246089421019655333839336324890486162233805213457101619706988070466945320472102418835897805432059589809097124940218632494712483788351622096455393037300965566713178669793509660522685393153782495104986782976297482170538375646415506678679341737295892417740787073022445863262572522673259433665872772780304798949506628326992094721496033423224799833871258644741283017453398587135948351774321362293926496846879722683651401766071963744881761834473106186985767361760269866998419765954392713209893679094191761790778076120898271412672111566035258512558538467429977696157647822676722525238297722653051409663598682287390159355093686930539822199419353579549226179661220864400125536016707732911131474467798745383389423362136864773233985785435664520954837073539144104554490515403808269957191473672074100243075160240133217598939264543304053511998373830194504272913598283645799955768636880213211522054558624712738901116841500411805913520120510804792061523280973108489422621758382634005454284536637368030002325424243286907336404771805473206530220146217658591663727520162536963607112439817425549664974785163706388041268387518644396730641916555963797295067346258529684221842363744859326187159525281791493264074233845469655653391174219313996922737587565201343262589341935772818955616373910778579359832654729699668258379714420433097766105209622330305997779228948737964600523301498740286671504770776393064824851054773083664919963374040520328619042330906086795468678541082382305354085978534257058787685722364548269169405592558936785043306932152193487539660537562862533142623245890401566903461358149716974022750224458127842029580661928135605687611500813266411644325968730360509844383809115252125557712115149431705071601504713500910754880221012461523021794364727998585033816067149823808573090012258397752330573285682444019236273249100823934589307592857863413213736653183158438473584441097610339392158906544201168291130015851567962877236922372450386373090336571684578805849820437765088013493609900258335676490065063094619521299709811234795354474233657720557458318415587659554773951461369614711719364131784078361200690134186875177853921544845130898717459942970650688764492334578577726967559706778207161664132914192765213319550123658779633596699735803164193395022429229294329883004892019056996855398944517174464823604998610284269847479290152767926544649083494648358435925622894256751510688918852127336908755413047256145099113380637699666846691703444285232253801953293054082060396458245590994958390749383102272815607469436809264781001885544744357977729490147021867881826131612611765302757284668572983369931949345740601930037842398479498863036961745830015857000628497373988260875310023158221492387756664759130435048751621147067846803869249972704649392667940006783651046163755291172735139595757038764307770077788793352370376045554594266753872450580469165108504400545484223038518612068881006101106594500087297818629295649665387010243969149439940868021311028235256762384866598313675257824838897967953553585407908179656069829649648244064049011303275672691610490616923651404676472553388202831488908887094857243578739431288271611335097968232001581524635858048896092671173015196406596044264032326015044719511814846862169348027887413533354804614823705773459511132274904730022023186929816719567268043209952281659230587290726721937425562059743431602591190515704501567163318974524213385771633944434262612495355584803326583494217178716786864477076100690336180982754977796340312722600237728887488522318579259343349824184726917229018933144005022840922338895643517063083663988492842123386396005997539358552946361983975593129825648464471202186525747332621739659631818721989294190148303043859098167145368816117938938469869171650218710063185218283289359204906788787408594292607618290932848878128765583590291954690782538153773594998060805658960757532709757970617189948158253505539663665723862373993858544422583494337547960868130652557375423410012137785746261673581236357757147802356021797260761723719958386156113969140146814687380598757617729229822194375096220527741271789441109843411487908321194131785318618803563877627020269634944220689551012131487304600703346007377663079809514265775064386041902458908280780261779359496698982370441940600327108595283447322550674803632066858233300868996363181858483405461392110748323140082615776290756933083327356255634243594136226853511093662494356173519838045585236582929221655753947277418688538837403406007725108728847842353846496071613129660603093048602007642073227354731500134993056041671658413867340171224011995774799143857613291880713814383148552323585524436349579199111374164148586373847645027605556856523078410458207969027786577651429810520203335711727683902539518246302054348854761297546957031811302726379980516170663290505433590845401639389110404690378783476654590676003660189857357351749868063767666221192113276900575093451998689731610421123143760278857129483913171854409305224947406638774980086415203192825938829789097040345757715114345562300905667717890771606579650442698894025117919000571260567275814621278164083383940286439594131376301368355260354571360637053573781563031061872943403033848704995178250626950642387608665200067471394867756558394206211211672791808784528602700497884849723255941428638769474124458666979632310284817703276660755852408014499261210728269491984002319355109919128591752650091300585898022631513864228450429092086329906642610611678155924659923099097695002852005332698022032541117768639913447140858428719733319983185951864854817078285875917840433546334152649479823510283153847369496598062050912084837269086953702681169105463811669337372698167592910961948375843617688728814638174847503872394421056638439388461784798791971114902496260294547756651723152109554068713386799056167235008601258627845342892423372426580069123187504339875506473292133628134618866308626114087254953577764475315122965400497734867886042670795045261218011955336835580649077491839542437630867873370758389918611556095348897965514727111186175169372238881385599200314737454317544894757261592233949994324175435725426027832014339538876970230872208116338915609038226581410708330547246798360323785205288622294606270939836067916047542334189182297947707680644103417028274565922694761262803260576826544678329942545911227098268749682265983848486134119748528667087124085389715389651648509663105096638247754211736483163977633825520474915320406750652690779642515330052919678728566916904315183576260035511236088025920255186112103379055201876004675828665583031444009273901763930122783434167864279837281313030244900806604076168902768194496028159435665521388361274165999285405885778041832043622830746834480092186780773918886447262513647250785641412433450380610883645415064368299859229993009001163353441277189685427094567990383623437880077629248472780422917293983435155000527602892852048496533746465216067665336433658138483079349259641996402508579635278105340008057250752819959832677801007076102930463448620058683641474821512294344819823319651158816851215219552040763129070096187222315056727110183519042333090397697052878832799080036433985572828047198366476385138449801829048247322248909027186430942495887764746265822231980784153221197110066464173471648180669403732345857508136776738135247951240252872681716086931452957907424287022915714127798329357794511710561903510239480548491979432029039799985137318326257134682130746312444843287497617962416757096204744520295174506482503381036520278208886195055601341144267259800028198916845676853892564153123175785006749374844825224226614953973485123280629985198883305101868385681047440586621633327900330766994146135199001688299063003275562722417195726497362316925364114095199923815596278254333284850799220074449607637873013394105447420679877680547981457123881768476510066659959005323600844320364745199094485783569401413038013458094164113717321990933647165907007422527270067443252084476829189509804030221972512996815623804396142778070142846487512759456665887797341785923264213760052836140404423867128229597721149006563588513802377834602133864336112420017676000029343099119327878322323871072104600390937520961890744964270436844893487937914524825522538551012151692622833076693367880705018767219099513524682816882864140223281957032351255523235960065310491080129282853082544011529187549535485150802324505221719425761047140240935063628465689586849111270197945756293927348407436557691065858277037934372790065680961321228321274168672013245245198216818407397289514656193588480254825062301399496652145260638352631347272572254750996135294725478468693035695707912406223084287128764438591864470211367454083239248304637951415857804761421137733944620884440491307435668355816652552687158451826627267089221068774827700034578566129270276859515607721323772742628449909495490849565611825116624739736835326926155189983505650316557747307774597561687837974385016280931551259125702689414962626783748554931981248873491152018676653009975379056316721977889574937840554408756973493306414172476824407812245572172778488576875468796301693817893310803096503746941565547979071470258553992965740608565093184198055585748556079924842431602748453948088831989821718445436351793212258652567645744077420282100208400884781013393930354743665715301098172335163030704651971584778478628194322334424968039650831291621598104288728426059939287309024585232153774955308764829475614115174959544409354355177796977264958164249256294259721462801260296719046803109940647230770223514258448283237103772711287555561169786494364818646135652379536475336850746088201579334654978926008380001663982087978851558702739820879933004706760442048521451427724988477946100977078402906956866285793728618952581531606515535287260495961096988243068853653076676484389262837690889231215444419127349592834966262240512529823341207681778958176866548987199565259977437341220326713546895811158669504061010576897469780871571225582472028508041333760392349217851830011214402532712371042896891342273303873329613895770857151924505883072628128827173892503154709876020166934776369274055187257695282398423252991339365974586001017803885651612477421785873423554953313261588827359183965196510129835090575507975079667225168587825375477511321636458152791859097063294496990889383824781515656393944229223158629433702061854564899269151442565259225811893349682359932807796846961424404247040942347371213089193210145839689669272627902718341723862769546730835179114502381354344659596969787502828847183558266153961406564373137980444814438457819730278868392548373121860278174197040559336544581149203864797247253192811968898051673881187812095027794780940423425805190664119823938391431415229075195077279467317902476148879133507936489392570254812658342401708501579148220498899828132676415150787853379753573567835633005595794165832716590305845536283045441384327662834099178328303180075253528289229639745368496789982689394980520058162043149978930797728577931684622389187456284868001243619722294592644313647440371407170370006302050660737343158975578606864439760890918193305770403518870003731762577337344734093066490608784412088179201008541160354647581009542255336001440098794725763095396673167467805921660264700435919997036607704164488127940653700023809110504373810087360417236158542504905223901699592575056427578894292662867256593197424987661313191779488315776775039566233454855190705955738527423445686794758417253517402356015336834689023464696938972709009196089404088395482382056541209554575645761423208551045772801704633205958690286140212183363092361831477963991965428460041663447935374406262600037476270715870897240026345531928676612513626188085522944858025945923412691611090505238837400093027389838936937637053135418867821767777746670288030925033984186938916992148556201066442190153320235681156433786540295015956316531108565931572369876759926793139315746444154624798154862853317526581411644540840362506015901770331478337094011308065450864190658527858456319463848451051447325558407102088238655593267407189462509821956576350966965214986473952208787246803989023342869214955357090708120432088624075176025622017014683118528626025249593518353879208888624635775197652166532169644921344718437951407634071597948222488622372724670616510823370694135306452683599713421892868905591282919838529708157644079476880196810328186573985992418725172591484461862792604931582466138892394094161689751775300791957642040670554310578994260547144070122834849098437567550360710602869035982843268026238024514764272408499787060462152667413493757731616030152545430366552658433536801763930978405815880777098718810837282428280241115134067852351221294282186304748125305214798568849884032012614076617085356940920303764742731828710651001375216670183060595312498468260037868014676155950223332949659366391727399364462289914386610629273154561271030329984438979594304914322479109940290054926920327444583654530038975970687828828846850645128437278425059081679393411416188604381982564886210181534267957929291815277077802212559079308994502135428237109767926337278863140307909302119831647980695823650499966892368659406171710673688126446010398165619878386949691395554654945188724050975171188369566822631392020866025860512335663267973436733201785651404280165640004685646224838744584737875155148115203835322660693053300937096507076553877337791619195873095988398253721729210343775590612960244538865696585878452791568026892128845315563472745115728445507366125258650084114305231757613226132282287062912052145465104605066832513788778230647654157987863256571021644906585254299765186900763657931050656515234621156919354486529841234337582911925242946958426418552940594983335532928613534736643568026187967148898614548971768425702053909631054923923428770963203364670458893275595643154116124137064144645327441555007692798765406017717528930164968230784461186970910248538262010611099767995829944944709788603982247433574665166163446399191326484251169910812575870101241393910834093445110068613043616398351801901727949717699481679691623063898376033229342956840840443300933745724232678429553589303938825007239491142425566500408639507124968452243106055435907826374339894138353866589935359862942206182800728125341183863895165986055746173956243338649430107786348965076055570197778988522628130534324796025938885863334907341935998871146405127470755215478787800335523278209141987999995868891743339535747467304623176915055020707391724911728179569040362913024276406711029835615477289979989885515716086913887624268125333083843024377372652090630999305496026744750461571674883244607453592109190514461464356787064286981029648567199687920185235632740179305803997705638254073457647235302171162999561048422791385864800825300610725399701077764324723928595250429168831256547695191016769179809687272898239064362148890401207499637979836728029613634055411998773986041119900293128372565135777249221486186270043786833175775506037164244715620139916497080476090764024324147106600185737835227941115709810531536411611322302713556210098200402208007107378535160015474143680708916508746562728031997770561715586847570437699849608294129975084696849633529761135824775176148733098157582989281561859188564723572155444682203000725221485741914840043307024993799727035967347642977813837283416390530377649524379282072824135820767240276342263056842060677448469663391453989185349107569600927124174153317820096826390244633104249307813543273328276011627663504316381355326908999601981097573255722775148289542883214319105971510419169738884924593639266374942280400712735084696586244570909061702780690978771686063078039049311024520683553445610773976953489527805808349767244472898188459363485228672536779750281545053667949185106854892082250456373236525439565375392186352439484564327491223363040946181586005162530033140295400326459726140577066040912301242328995537339892141276290372180785688501908064777287950354654174654848217581770273310965863683844798953315131085722347916657583075174207609511020423623528191628586263185531665909047461926744832779600672326163208237752049657529147765437932249082442270370388581334179004051941090670070182908016829798721182236069835526385815492973790935565789381163828135390014950856754180635091043659966351102811864264738701334249505978150023317928430487364657178559117677325305521916168366703996549779700673411680449636513892682083567135954997978565732606233022092185962827084083999634728994093183962817815660296439382002995970041712261267410413489126591232921948779790800161911828191288013487287383165773429469552769467582184779950717033912056915262561775012368445166148802196205274135119183709843343821478692588325020081060564001126721826135456201066006819932791732236897894512009658892923320715243227624558221826394046526930086742287203239721689525063178875758587993439022082403641734096585414771488837555255330558626821014233373602205720332821099481877320625163012131533663810103519947076151238650336793881953673376262503478033472075224032937948235009335753634216354745271473345974924880990988758170136392188461370699223231702052498049868852009104410128136739892628483340465324226711181659750469712894147457506273956829603804598363159142575844974766860372647845279152565604518025467985839186153002170418951944125962048587354240102939620486006865081536907374385144077712530353587396913949727242085558043656401159977046775980856069325132376432940449500311922699304984200506213773188625683667599879006928145139696368935726803524239329276882085004987730633063437391111637165326678213023037081646909923967963805952024642943290330114991139863744664567745645782349639253118874337592000123525412358853709735248862215175673203825882181966584644785140428362217264634687460169730931552490466289211825504172385108658384797711423236062764414637911329890711876333736524425068650344520583899243740613042850754085116126341729989054981974945028694015650178067894869493212496062592141223552938857741150734386715053006101941717199549835980556218653736466580001072375275540774696587378341660607734532999006412280550473866793854870173239880848258054415536986730769625934740486406094903490991598876128310862593739862270755416253423352863313534856091998265242019009196255786990559235421759480067218555836572786488882676178897069959572967831559254786496456351410128390890295265613706074476830509697770763804997418797980200189277143047271549334821776748872743043941555770927523849258340795049062307863942447186004993350253183509421392923493405122474329495913633958733616095943525783014033088767940402584448503850442963530217319529139113366488545908253280990475808395942737630561477407881058541539642952095987464733916380720017753799776995657307489973718092205787274361821406732601987297534732100219261833648394849730700154809988725017899382051786425180394156792170941883507518120104715284460565777305591376868489771045533397022288785295333432022429860138259087694489321539096523338304070992766942765924965726909952299990370230596420070391167696659242333717065291211711200366239200262289062477868441660794490717296975716884582103299916908147255787481085990867946977052710571880111058885364907046055382056034699679711681979585118491434401797956103847694184685001193495964143298458893285737962273940978149374660508706860432688942986198357179034916785883060460508976133857146519193428349812784626541549087013007895685215837828116539396112210042948962402852759369710771106212778448610629836040627221070309967459695793186080956131704504262815700153113107155127936444931780920563359997795081020081966168769660678875245611386231066007848529039921499898262027455631214976685259107615744754453390311404028645226594883327698872847125288217447698826806764070031925838971158101769511724109252384079173533713477659981223279467240453314872690465298103023632413314628833305975275364167812057061447456626592169221774188584507845080029212898108780640844825956649073868140718352255326388736159796337444578938500648795655832549486782302640500468881420358500213503031059075707044316212152868744089375272975126350470024325866150787524469497018654219015711781418023003761421332585406537611208322103938548846116765528419366838194677969411107359130581296162507739233536198829726293661126101209467230536684383357037366098410373297864564993386950292182706380642506043970139196427330059968692768080368230238384195913549186647859400960396550135538154935404959854960259313712056933601604264206190496284656052866751403566074723922566805296649978775516788345251631558498958769042602427023878035536365168966223607432840039028605689098752657672163059926609655545797930616451602111040417055970676195982953291489624685863244924022806980260152855864113099893558385738383413233073197397113962546780644638670909876562675109554105785858619737774371219781966190884253394779226314071202709502292584500946528110110528428069380403473936175031395329616227757361368345641999996306844229288487485875106207644498220375438807635939765976381719405644484675213042723912294617951013928917595105953060099309772780154140756391170890192410694656453583642555978090012277823054685649562241343029975792804212735389442264873682448489408240462105035950691171603904364956509504988540251609506661322548448677804748669199986820962313254789986380034063205635759714247259482993692576673797918119466458500664996168791145279182288973866567548956668557477850250684728559263873304263814572354032537366574586597839966069711975481289088937899263125557285797667956682802731702321915499404813189520944752655111492150167578803512838708298050162824372336525822221229133711745976450283923679589395131815313023055181697797694622322211553109543524448108459756654404236601165069402110330169154637520086117453915950788806559750180001587541606542851016076672764569530007210332168679800403501115533326678198269236519366431976361783214748558332862315285117653787560636291831770227570598505598689154511067840811421411117986545021809005348682436486767079808409603300123521388779574858400853911060855315121354959971093984235757901265328711049414692361798873236635381332163795195836055669496255811044289651125827283936326705628382122095223757738762076717807718975392056410521512802845076762042102170624876559461049805988519548203195965796132604664674569729234708516517897383136586381900490746271374597028602565662545745986288656526160724249318520545395970944127255354574535168624175927659592133422323690915000743267237132961417837855716212287748193854794612204390881681114602363917895030614298142627320588587337708538293198519910156235584713238064620775211114367973865529559240571679748187679829026977278395821350342281819771595631007889148953525001135591942462905329948376005655454915625605797832203801929007711433722961876706484167873186061779031502297993729707877089276945438759357973443014121117789924416477808062766704133814287434099367373651488620116139374292784347495482823409885634551946411915219569355591902967662191891224281854339178116444064863600670392059295127680607443912604895007704278952583608352187356390053168290914070492386326884475266109071518658652416156937643076661453280954612156144296344376903822252732308478147231880180074441598127512365747534928936944004160335549541732147648574772482464895225956138439167245147062139631703829781356545864314469432081057297060683170697158942590032551799423699542796187106673649974083457648575760566371315789610846843933418146058855774934034793237919492226772992902853681683058638450292258619022613208012439726517561933725588640304214173463253446260157236700119627692993962092034151353713641285562948814879061500187521586221998708087252014513837885276172404533385980120379818703446535034157445498600171854334818038250544395625177310026428703005850983664276530982823373427811044784031881316253046176967264502528736584640040540360829393567359748939827102492048344788210765254364817611609350461481217935586901149534035025936168301705728867257345422186709908222235400584095837151292520921789218872781352576312417494274143407493543203581120847989356395975221408303473510761501283630566674517718666131522774107749172879846561609986738101114699596358463887948124759616567403538237639944627926715471562593596071209228233820735531192345334307565440496699569581784083516665209806629194550489751697441842810220709771113601989335834118758637786356039640740623198730428601339049685120111110509954677553402773250344939924605645848100311349536470125219107877048692746551990176300473304062808099446547331973272600001797306246287317151016756705645966733715052619519966503489557754013424904668451841188658592792053490952627264810396441709181947327585961962452163089172366182193358836753127664411880132916250013774830838510743112466139863290279417885692692690814677052600535667259804538391894800334668877877845601702589876008495574976165299624290302074729177440811866737398998516797837482210774753031472546138155775332116675321758313909147440214000864085179851824583014520780324474950407188872393060625565759618057175441230304392163956385086495122249750990580754728357204029641011502057351278907117890890183750226272492109321585623900706773415753568140697545069634096432594837569478314199737220794294376033693717762224556389872329297996002168230551848809372144918756558864827012263270821980152161353596775047277659588816111690611809470971562082266401135638636831727661737479612764079675143877152135292699361506660094504791778067634741958945459501960747593533756825711387437317269506243021778351446375103473483128258448600190113606929182363603631963033393367073458816754557168560504560533337254464748560963897752659135002423198315148554684321053420007326658015227727996239509294940179447642730935612596556072826371563155373030414359005077659797151477725652575911303301277239292682165701542764343721142840927994889130180286529724325036482615753599569390475313426443797515995351436904505441852482727606527984507156766772146038132909220239592566035290638634810147114035923198582208299432758692667642880297019929341502765200853981822234076213409911340990083569426324248809374458933111567431933333288208052089730645844078707949822411398899122996334480322027864622210526181672539835985417850384800574928379630824884040037092127995304389120246227298036999029212889364235954141552907115457878324185650025674932380022866065373821531443747794901729667958492505101654950076341523430682746313134615126477010279510932085770904129079100396137411440227347817875249817114603306774686989504335512131424231583136938999923905436116262914262159733712649256821007986445363331429177375228970160328055052173580087845589427446467822802980011607545353374603399432949795462879492254729154477576829123596496879539638746946690452856101859012776393229658694914283054334526198130991089258478864582212753922132009565758126610509569588597454997625466846005554901901296186972022176428447986031605602845826408992018320757754818284701524911560898817594383884100679025124731754549649125088931987589547912378005945561943932191312638319342397145340666604243599833244464252498452571994687977278483821548360865287747413697321302942366530245104258809410525014950585244336449889455339877330962875898300453987669845667649058121700878129200273333811212161244165359841639454171865610329804899266078304761123200817343839510388290913995024136123254159831590526979357128454483916470216675805538446559645640654471635686374998926221100672992678447235973109976151451031944976378623315549547486850363560395172949208625150702773510640794006213305600848081916276033998219562542935290614350805293291425134929981394855979236035200830721956688833228339802012459594285689005539979625430394367635221092040533866479236182928798652638805491257388967534944318394027036480384129294210608761998047761523385077428655993763093893740320896542922926654024852975988021045896011194610948961905567863914787579292887117932499822702193634640915405553609786848341090218180117963573789194771624031080692610700706939761154512919282998086284001466475260555995707175737804154163502314332782394858302059293234659973235867474203880994221610369383196481420599882864826580541885268592940677894909318633311523222923193972518198490343875793882702400484453005756081307572399116097212632972990076107831742951948470413462864370722002211834266563257455466969524252397437345764905155250429009196974519735556407405381883600489095494970583441514350489932058600836429804670192135197587896669258962400195194085536748713117695031781202908853128660629629389893136763489322377573009603862820553833741680751245479110119801460791831190593655335395587898658094547446362275333210681778000394405940291825955934758939751592704693323772690454902168897017575688412133967871876009785055043460125396549685029078263156284395040789411975024835706191303216473403187140686913440075783712821135363843690432583344410062717754368348723842412638341646275417315137975129275480319157220723854674873037894622959901126777003953287060322976869473225411532003212638024740351564473412640051397971830535107349003801188411393369715390839851159806862881524648320655583896854979668312373163611123779932420689805422392188416212545817729242662299981198622614550277131425868937239136169149997922441360371212328431746306149755146001889368756810450742954290381021270239812775284582506934052591082804025814861396085697640734119207525718670868956402991081687621623394094071264708300453547734095364829715499525950741700362704585072796512971667433473740279079715789866226944482461858991671267397359517270402132854889249288673930225936008191487303361426102650217189409596408300582413440548663729449006037285157313597840820908425811120355221350986193748824097577387790427355018867657406752039137121542930804215550881329484836829515866474575887162095664401544375639240615893182449903391242676490479395333208818661990710671990659798023734530375886865663137522737776581413958661737709767651584360805545492630902357515669216985780790841930735810658158206019178956893121833971749875209997100864910756966920522067235114896019623900115616485244698442496565593648451531742701042664964069334998393779012307614226552294151727378872392127122201999815602844340500402235257899679187361710073531191663285751410424409818794737888766489737277532829184607422125658403596605764990465721377257123553547561888217976821534353104556381172049216861034092108463556400099879330527875923438722619971997602069420458208367447396053988777828121399578008545890083214116587098400373960561786102557674780663826147888273273678008445857927432857910822156639650878915372552291977408851739856948519410518424039519594951175408970127171794871459903532634634820843768476534638188667604383921286953388157405564902351877934149954273881559911440007284060036188534864337634281238372069023351865285849568872818195937997513251043571990922555853814629367505645151122092941179931163228995249462091707576790709357235172263552457810667897721603913242732486523363166535945811178155732964453215611418157691599076003123031633046227873198981505986443948900422270056627342192716845739553396117114919934032610819500548903376583098393577830563450179758372980740699084098715891954938987897026723116335590494103663191297586580852259656522444604909749265213898617340743228947396848250459909597931333001571257688838337532702582858544345659760692957569513917353017111861002799052588470566126395029041377884920539569477969434106546757816078519832741693925927597368757807907062345092842240177659416082758109951969994548664794503541427552588544427199241193409862075972138560539170725606730804486960566556029833153352262253236581213220277700572430393522971672427664966965976756318636280853394761852436831107605142437259651967417196057232445741601708601355209829621997573334205609045013338819141155484833467189942979295455407207391003537762547511229968753583283120121906466445991759776936142061394483967336780801125782034143023891562849725080632230087484663302804286108403447355827655293949198404659255759330106177972267489614565772527333649716986514805942003943215025004702724717476443251850382529628956456717534844688094237158084450155003209140487021138853390538562920419665558290327579383303791763716354020800869458150226970735910165087958186589075450523637437594624580316450338890597896175534216111539215837892416949918346461795007627492517742203213572904073959599417945256643609366985906584771339018740345026843636002440322918859895341328554899791048334859072929879045649616010670273960342650935715060131229772764504304710042606363394515179347934908567289592015306469316428423235555502414294447241197520851793952181302411552018977395184922414851498772469590523975998552038892214355311955572642700928893556538288952181925814340359932290220495990778667673289377184966036217399204476052390149530491487404708962041483448086226591317872236389034961628221950848519141240360015728436887528268353404737623834190594375597771390632836415327521849465306567522920794692873096371348754236276962343172781975561631757516724109488602168310913126283248943389712227451130719341214335243259899145342903383942430773577921390041313658624159819870768048123448975154821657442170913009526301543291372467739706478948487818959600095757046593256268077225118117623057365751024434348077437621969229873055370351222711556122402805470779531792900364236122122808136814053386913582260529299136547233251700868959929310157076084752467154459585793690683103617689146187863525454882292615051503925212900953647029389586631018703478576174171032911184431594928173165361284023763089252567041705352527319184753001515676256335187326533717769817241852525505078346446696938202523514893223560020579805909057875700440340823236501876995076887597839011692386440372322191078248273808649768178350813855637673782175408083235082972047720243943740498441036418866799685237778663883966139286884207745560144199564407810854314455413900935518101646973913928431307950372582240675315693983234569299807582239644666758098346065965013991243606448836825708145413292334725690858543974515143018165795555494949985306659579431121345103665978460126174868577298428284552527852088293592022299896397078408161778022006452686631342226207695046428598187966221804545708712422341096233133191021888204158757677279828033959499892546876674235118410461819291682200942673544904125846071443573071366065395290309985967562795930164469292075834325698417552812438130174112477331880193252427307644408505225659401677373627364484186068189310329063261549554797098496225368986910904811348138498689393757479423178773177629973972361750984291214930786980902518237333329282267339844978557868548493234979112196242157673104201604537742917750913731787698382629061490764357906615881741389365454976702850169060701902287702760335006547344335325592633193775960510378277881049899263150851959147565336723577951676460093584430145417500450722499998957464813223223162749910850496450661160958670083613459444115711350624222555559325300064773171883110035882960834428015060063456858592162695859690380288983629391845354861954545474728450417491498128861807424928671431649376753162461596755518403073489719907170214662239371100886736215396089345856300538888996444318911614096684203329448906643296274285479920380877480987988247748436229601951661515916134382768936127385175129772518990011804298102796550211716935009059436224119784440989728981655647120031310758275872074591814044052569556847599042951712076291054511852329759065460283050907964916038685453255595129378884433531453321791377488182345497132640445328032313625746428653082556453398630803441144827743895808719197745392994010887510960233756396941188990878448429810176241981316226548056893454899643744919888002843447868079052758277771738453115067651836225261213371305923013332179507299675324842180208480016841260780323184294355651283122161485531548357920863949180155936886960422690410323630474965918256248994601278507138585060269329478387380257774964025319974414371115046183344361410672584214891112571947358000177446232260387755551753161915456287146114314247192271485463032696171256716496372477113133061817858415022698578943585064726360796871646752283877719160978085959227510700667483544700844854462088284558151841102924551032951371218467537837824850592186315173711820997578276809741307641895428206452720047883396809382736082378204955834684083795792301980273619860486455910794563811160189580918490878811179216777178660864099310334305040258415032675622870251682670722808887258810987897205869268588237444927066936505452234057141967786578056644444420339048488939452696359990407020099757767722973415014395515049908220815717093583498135306771697830136140758428539524711356318238733679725174296173170454542131602955045965613252041031432793026736179838160137450849103839456564367979405820745174768645169000685094883019558102568134039404429621275612052393678542722876145671537541095822330984166515402048889992105897794904973222633138819102264804639306249936051412968153876967225867325970341831961798889487867128552459246339082603156746983302443960735283877493800814820653421420894345249849153796741249545819893880374672656638767374047493920130702125605238914288469934563739973851852760234299895444052498161744133667016897241127434648211893423392561439951460193988161557126170258076200249392327247883581665193801230752827521396245721446983499648474540355557462323045300111407235969498779853485474209019555562819387992214675120263912963121333697873636599788695792553033820839490825680794177435654863174232945757336669885661887236369677997367239119700794587433033149599822641289801855015192148699008257047659784787860497832662874421170935377385098446633937479739206510168423046116831913001690049727046789402193703869712467855714754252886330095477625487336575460633244150176358265093949215794497441438429260541452966014558787445422652315807559851748796851168269237019081948213395123259920429882336890669647212339647468964513172902499720682149887129147385556276133601425180565755281565846063209811174093224897282755376798578077499093444909148045736276845971001628169638993527513011712081510190297875952944700269438224380821740676567736494428045024323701837410170180115419414597906287599477117879327575625544453241017646032047968274441587970170818519372031073767033993638575228945924117795055919545570257013132327674192180526244014535129257385459167317459914249874405427620609784848537134290098034076022765942147270372186430580915420481666734200203532917420262017305296812107521144900890181931294086176727981909923526753572885713828639101536351305574828873612499112137385012320595618533705894348968419483296810689195362340687544102377771274010038593703135250967502841436932159359274634336442226878108952573130201037373067069359693433500673658042897955064510946500568266450778054278153238783381071719225822934019728237698759676321334559895811933720900803321629470617254513848404723919783354939686077924328461261789760307252076733673236576766166397261264502865559848386392272684722428676968709123666605090519855497995981700317071353678138928413436573775020362136819490777322041523649297097969100053856866990719745399077693761074280050645205128535684964395708416872290154791705879080428531718430558742363606425471073531929678352145448352918635130896203082992414423501163499902414173310886077009739550924499188835074929032322950562067689142615902437817247777237113757437422467114579552550030061341494536803057816719704248782118624414262746268191352338661367767328079667136585191868561690292766932641239365958973252176373812063709165011606670355417104829491577588811231118504020095870812092473168860770001116744621278914564641905516951300556923434105887638373958231423019534243640782309614157662384886943170871696726443579110866725959408442428141248197797866275889949431356163164521043793526374304437071362503972341032515252332283185617748019353282263392157700059970204177508929304192895556042920450223862417601422497814589793080228245814384215926126049318358099253767059300182545769082971701999721450735170297354665828266944278250997234257770807969344468963381813431492334816967939799226145078975643097071074464806708123051291048623201925164446901755839843512779897858724057384019555086853653597196534794715895540078630274066115865504047649287980414925111260646372730647235392599269307584303988862763086009726749600270075142392324467857627726654329572046682813684206252861270174076995429336593445461248240848865054716764372693097264237023026000202521812158493285107848694878185037600552786261487366266475316621043390294248714716211915049566086610684625359978037148192840643994704627482439529791813383698797539323393399997620811542371421356488425750538723795138406438945611979351128818798215423002415956397795823558370022344434948661285177672415661281862904943390015901623787535680073830179826078110668942764533763192573630023746996520025882359035987026005862240386736209717124393848227753944328693597749059476859535268120390448737872636671720182462451342612141404673575626623953031446501385934088526536461864930487973045521983201392948901714658251334306491912170623467678812943376003975740612859016308701786488854193596277033674167858921246557999607180434300020392639614104378050795062276825973728450844975658406828246188703323807927441234169693726780280350118197061109054978462779295782574060098185637176366886888608636135425175364273869292098698012841777856530807132434231580469774113083529000277684646610935968952881443102753401617628441429742822005438421429553172647031030005845991448045004952338007313547121692870918171484633183083771846358275116461349714215560774537482544990213460588703660841793833856452048491776540172600866881688444884633982728371847452676056596091889193488592691499509674266876294041169642847832963308972830594456282163291800020384640484879238726432692126942727552423411911681818607463440538119512999450609036207841245677342961057441561808026493905562665601775867899258434034982743488153989807458109584989764444047396254084256978141428119130723791583467375995882482442098309623808591538742039594772732265282058553152735625558360301595541562619088047573628527037297557759516188264030662194477508789430857698731294220351577043270121272195866573692998036179522101272386540832611949368221194839339403856170991308541693778717484760598014670418292871662728087604906520853187854907439774993268948106780375467747033910827000549394362807299664158511532408053704404747300607038923566873595328600810741336350993156513316387776758666348012139167496787835841686020478260384351752694200966182074220110860302913846087480134343444531302625717129976449893407841041602155139089364192407357294973097800415377148263290516967524413438565242610115949527421233775625568154482679164507025604913225020862756557192131875444978746894851122376477150191122284810777351333357089729232677767408762320299290745573984265686728375664909532105536807517616873331139990974519046429327667261680338620974589599381572580921051670756458355213207003093656556267492978938103482719370989017331816087510326475810390606584207534470383402285208603056987892888610907528523322823311727757570319380548960558863358985343651619883658072448366470042004788624109534938849372691622790891549920985049135437768596354025608371329385873399393087643987726259303887129587225551303897248663326225087141332063199243920284793511796235216840458118686526099705406141081622953115809769047087437385509638078006970135023795277776246904809260253292186307461721697944023832229909889815373427359498015376280556888280569382467197149544488659872658329500061409654935248926814574820191628502453224955136739561759869116230960494471264812852258100652767341823562072368567092806183265132796997597257082575303766595130173774201598978363100985048071218765162218155960008184683669106115416135464936676758991032805303028112772010522781676780603156024769477424562538628665670648434141346873908657022942579344077408331127755737772288435214891832301183433572509621113112205705134314282491407406592326772886267663151527869045908228992373760301564722626731227281161148604307498909265817838832741048132718186273291589314015896848039778892851653008689951196681427127338218700435403829479655813497761030593172966870219976789238770609094688964970525020403710199440758065041878942583476096582160059466598804827076405629255561430791600651361598694076293301754569128824722291949880773774215833643415505337709304096327964727463552049826810207623547163487521821809729741069559276118107508552279919590636044303514339791527220144478677491181027912286074600161391708274851162027413992530303764185654646653670120110361152235900971655689543712028876013727064526918259064104115612220605933251118790195230572391830718520328392798560031685217263203665351973551329189557560116479491815200190728420883655022614910061434307058137498085241087199965127802707323351136976350851147245006121991561285175194406352567493450873764307459630847091766009400760367356673797497206626066374996138531371916988007582269174165150739094093261475280137359152393875964982898969730102876759829827236132388802575826837469433644533567896896539488798652031751444443548412463840991988907338604432406982250278230051441903024400653017955677130050854569566033258704309773674916110124475921620974579399746759384189513802161583701916185358874256319667309430217149683592718263871794965943764302856105351733091723151881997113735277713242169993129798896542230188786120352772183380156833558516540984590315724935488916943785503041704566237151287046925851766613204500736463447081508465050522719097468835059760341866059713205468793296438316537712858095211993988586456684943449041178433726314205299040523936510019659457617601220023265418500207759215747613736899019527373400038046710109807766267451791634357512216841598493110361602643517491300146937795256387174994616899885384214189420961924711686900646297115291205444758174612950468263915794688065677937858913577944886670822181285086760546053336546775650313345273533380445295387982288942969631586859609387438549088763445560181294029558385909531202197966391654409343514925274055986938394647309891304360931263321260266185249547162169174171377843944681141617765594757297789686513792314582362681166687593839886010755454071882776489929814915829209093982788703156606391912636451123876662581844855290325191174921971297258007901869619692513711804068589047781666995815822514431115748404528971398458548617020369642565034513769170303818389925950573941791641935350851672209243952451423745928712989736472555824517544885093396073369692255909500381024076242326906045504124252854254530988466669682560026673940179585856028280060312760976049259947856486486538410602995400992888557578679113315215146913133539626032588870524775724399592335262689124586286267381105743031030262884732397390916936087130856313253993493430530987901544490663443339475800979729253052937237995289086724113271788642341889127375386450011372770227761801786594534784311828682199439091989996740042556148819521135316302798073469869434480818954375531424813496101020454292535239013617641577079042447971119303096001487834412182160219626746307964481297320380150870963065506936026898943605483593205352593964319653425511664251086391031909910832072928472147544660757416611874542663482346243551243694316036000965677150662393018581509331876704880363794199954373094913130861270928265331155875670844438671656834560622641762827945533855200249663595937540611216662303746979194632400179671653162999197154915605125190694494945806362830779315550664567854961084646072371580021883570491675714992160482489691033048186480480955911708832999940189052532070790530426486170170399070916913263590991917398523442142191036737554660460795861993001053600222125346451924115278025843811657510242019187802087510022830598469621721230381600079342266834216332399287260110098683917157075029648448298536216393487899430483133214752034089289837658909126675614772020124672769919562624522913296303856435554301804888821594099703421255567419439671590108806447405957217803160020970916882862105124074407643117289695122268387314215330345174844791122331471863027839409006740873275243903274701845890095703644678814798037313608206074684231152581728754998526822299400910915682706098637051665169715978251236738921964163521748961955710664678681056853101810864912193835099996773081641123192633478272708058012370658439625315718167820986725409135064910060019016966557406214564129359419850059063881957220136729708629998148800705407371736364561659202570734682329256365193605581658149635274089754086911323412426013384923312482586293837250625822573288095095977249511442106273012909502604637665938712952480113617310959163897118522634303585640634555260558287635514684367903478666997998323279267613147847296473017606849363896839118271252801426973096767018540643972924414627876034986272871709264950059420924087823264084469930790183992330440518552655249961169167685725242911197718449955851987553043713141397731906044134951921841397359733479358601900990970876457542170047082422769792747409470706934793997090710593613057599219804243681851820910503190942305169902570285281484590095308299858100106801873726295234711033763137456022538586915950001388155462866200898523973709780599987728880090722604899335634662822732281780434550067851520767899024694852108314409811668081324789781938343336506247566978455052830383640817287898723997728564210096641539960538008870663100001567125050424312474138737337111897793495533140356663460032947112116089294485243256476433964613994834096526362472079101779843158338545732403702111754776793196950824676214864746743393191153721106672144342983751769671598832208494394540666910289415299480973542625510540917398160979267158740859087886095117518762018358243052424499749931975732750897982482983859362791577613577865932883315979592743862177070197955961396758680898324664462685422875457285830458496935839172593915552940558717453820043213462569865022870357779232484155807206095066727609911934476883104260348257844054690862837615255970214605567928538300616000267126392647466440879546929433999339317742060279260675709901150491501964044736614542575523768119107968202637240601633868766366287027951267478868118925482425479630933427681182002462359311688814193646089322282018764480773269060658857468637564379923055505524295299655768707516696066106564049398447302612064047638664226458733238231126457782125437124688503875050792638785963165575919706715038715540125488658081384980039744589003049689686776537793001621457963264526021734681137223141201123959927836807841798526718857380578411852627469401726489001036039272856797458154785372436182448062519469998694646399832085565165979415668035893814565095010186782890944054380620912837121397135985762701473843287462814473631526719603822462824480558709073580439558471989624270094843725242123968509041961976600495652523298769035337525419045613905081107790655442358208547262041902486109203841783358441459103371104910255866804203920015804632335472514820376810714751288398291755938305264849678190722933020189665405669755369925364918613658569193728060626314204275892960772851796992174942517527598244183965373616668949600997701428427398473626153740164267517398369951987164921344148360109928578841886625315433161886595047859496814127723216563049775971036991671136215575699737416604192474538010450157229167032652240437127149730402595892125617155295945970739121710569336690230464769566247782717998890410240087417589058305571530698758091683198600094952689909755093028915860689059346051774239831823886329283400442874331772880112219855714670968805744767149850436074256034171024106475906835530754107337140078712210191159055123939655812331838437775848543870298127366841399520614968861131243315096718721999538081601056961087305735901995404810372751680993662661049821258427260062258431196490014288727253364231751582891209603345915634127723237581022736347644870522506040328182223519694669861237765719283603155168458579373924818420470309810035426425982132841089354074198235623397214225870206002783805246636957408328422871307950730970112858625907241181169589445076093599202902210040062013525763293324465607641536396260259472639212020517878714397610909139797310239898230046738099896788427582236328349443595407084054953480290345368645506652444789374594529767230108149309676337935878157696194336446316557798757030137557727803192996516671974646841415266071169097614898108708707860201877377280790974949271854732819372095968248506562665743700341200785806085957422501166466185699011008802638525543633299777186481154676417476346599520239631014072814930268501111858533081099282923273278579493644294164582714906201816678784817359260088863877433546617582944665566669149149304469719267671948337767666777769573653252570371630743594784637683357251723485087728236302382067662577397669263034625988247800011281470856328203571021979670610460803598206239943216019494818838885951411905689049092899511364829875571209230713420978938268124448893450128262478969326141636258922428287215206287302728211093076889418494645785703511714519353898360731926218905977071937051910375269930371264927117601660063155348702005507572354364631974360244251000065460103553459197492717685261451513683304142583591601360968572995730034642774627098427016274098835758269275580784463738201792885913321730314270553394430539226624256322644400642554236331973172323864247394632501715957858282618143813656715872484927041347152692159621081266324417695925968784139719920053986878970257854596046044090907945047511099006741711998418134626369250874054211810251466357708828040156542445500910403921853455245145018447000186629308872935366962066316013462447304130128481451949626155817917411462774567400276676795398655448615792943351414008333276248506464627588379835050477654757601747908687341892618888045516273469185295719474158604350501534168283722826357312418322407464350834614944121224546509318260637701864750452464353483929888355487452433818299970394644429960131608080178537904132356068161953731255945805375887930282094315106273098772657766370004870975056006863364757127722229555235304155515421965451400264547153104978597113577288027601155316760256223679550947357753334849695485500014486671320898697071439960440704037960401392001482077372727871304204063305978658551872432538387280348587224566265661802340476208298783296351868582359736673677327373478086134426350696026279794193663321922016848559125012802595557311576996988325346989864312365819234929183351259348479690107969944607704546093435616556658979168324983211064010209457089839383893372796999642327527006992138431951042946111022656210429631768583247291683091033541325379735418355358469588443027104359845342567688659867507018862753750106048164418559516444681426332670712352353560746669954166949372445992842436361270035223328397286671440534516178024234962890157201826005117657113949938920478204141615300911069596217680267375439045198476476048464999370397772543354502303620992219642610328378257117111564191068293899414638344532760854486674633449895332996612355175245083606721858467796888661243046288593484396311227682399852978707558412475057296879482662151586061992661689834937413700802118096569694524083185856367208968364110707963894779943029161250395916028078730557886678210829346807923537514587830416257821198808210681899130992032877319824234843960357134606459615374555093175257958217742645390297221842375427380225127001481209622929639862897498137727898350256596791444052357590467179356868420659426367249266484422751295988315577969833411253795445749666474653838623904091525890832007810576380701295092308746938096415123629795443877716898367487648350983182459965465509539741600229694045637275728482513764212042252016012302629765120174399071543929871235981299856467627747151536705017446425117285638728328682325155733066705298765596497465723247175658911075055543528783654408870342808575387991903518834349190059386231938984834639068347938540045537921853499820362494265936135369299847603086086715150780109713160200171881982126916815768728109511221411446344632530628210129837173179630266855616345891777658522856122395515458217237391029047622560926033588640124657018841331365263864472476403278007070684492228256426753482933202416641875681992961200801776668149870626232444861572857779649104458669495986464102415410570372070660186146382288496030094458906993126046214528893725598962776128859529194792731774438293574976094392995610458038268361366630061980874902454777905927213168957436092732786738086035695298618730196503424515889210820346910226670585058725833111488749593873251115185225979263860354240337578202529998649236306813846101486496646093512176521606469891068111336629199213673948590531836358108497768382377275216917706948463025127604142794169491125790891054617087792191636005642406901363941150795388408299809094677110055825214241873029817260705070177728278197039367731571322236064799718550884458130348359340382724875418049701994670346327649299269266801295157912250697561206576505759328403475653835872601396684246569744860553244848354683921602431598171736961486024949297760423373614609129687236151786395526983462160614932303974273652874573217595280890409354280157397719403105225133841523941856701954108121231553844263303568592705156698889036301659161090618237358171583139551021965088594487317538744736027423557910915771404877219708466956322621157264353476494646515941105154033071954518282759065449536961860887959613664615777694105575157193236158246397848999604299467783895640854445578861999224899751891750866586092290793398103279182388697380914526457396452575517308129468203262254511687462954523941380972333960313442443339873334232353985163367448231951605927078773059545280544341209523119015893115009998439812659959393582284834784802106920819277887564267339155684980297618305345854132948941467269186682091971245684043219346096669103171538847193238009033143454776134719903974016748106080716643864528211772401849893447635412813965463422817023201922747955136287254794047875922214739246644707156561604127075149973017595167912587662912953548208529213024110776097341814255045480460301422659566297305152663330304795880580743531721169045058012550066160969937118252033656054230180314694049551514076116210970031957095340125814931898289278763544911727970709700432595879863888537075539042830860506201386555967174532112061538520521010194818402146256197277169712990136521368782354162793969490700012027478792179466382802350761676392037242652457849490781303248041522892449488976408587446337630463028437020328719123258608321330843221295345198161114080332441012015784167900501261319231187739371844306007083529875175110228649449003488777062189222034586526848300788635527435471963586793480350324340771204037439392743899779729034568997987362987674741504060499268131198241827282933767970340420774683555386955315521577211923210326490550888147419965956131388075423197022574022445968660497215239482346659981194297572184166509105773520675488339691926610024928430409593059137700100781325183253185449904753016540990549419820405812945157476392991903402101638418376251640983309123951375194504539589515371272283900417508090124823064513714308533440079679878851132856554800330993988390071092007930244958639210498992928278239013583216934879012704326480533029382190021421682957373653024047619103158556807505015754877893755165179642493405131111096632795167368642035039580211795008648896563961923900020621400466433895371447595191879639219555067502850044294802265507303882385789886675613205578003322142173815474453773539888517185742568609151134719225482615890421611189385142836228235017048359078907844960300608973122936825508983734343294793628076548612344785969788822060766697912761272246253740319903793640274600078127209070118841481474561460437961533965444270747929950969193827967726662071348304367382844342346926107967687026869437544036728161674532381483333182427541035797516550749357773677145527773645897950740116996168338926041521754403318863485036384430472113646509682308105927566625490736804276654424651119215861191156968093646843290202688267083711432877505809503400204097145791395089649026522138743597280614935094400380119190437386703791097517271367513264444438814355759573416050520843389039789212641000611097846346839039126543128500406640546092222302308487758778704257641062318840583094956670792992516679322274059792060220080855347810749583862001427677562647695780866073242800217093827425346628078134453665018947228481286005419419104210661069236028856033750322295183621010104994514526153158336705899307728719783638658775851366549485307485312720052762436322084045077035477712312518280898622106360924947899330312266698943151088899432087425809712046376898562790166191441670683016048574099176721738915684883498408931820031710372780831872891881125352366227330369310229543953227198211178133099922012553620346605377315766979830791003613711763883193672072166476389747623850124104033789546331064744951065608857521025467591351343804031531671044048926258461961110190664683037233009666004967444335792539683385871461116922762729438446481795809680184969454118569523864294552655247127555712609053726580558557482513891530174119144155570893373391336235292701481496993436113591924486172128091814133431603553449300845401791899630615175896765876581757234102053729472773967582980063798633952574661766898288918410765840443401006453347081111961044807595822714424716245349406804046865088826518242628810009128284713469638189226782487726423112257758687775145181436644023458391797795943938945640231082193596982056829397280652265700128296352147101231949394750027175881265303866715595092656818318243967245958780087354904783163107998420012119049240171537972354450025869208107831991310656182189541533861174355249162621514083378611756474753285920756597173979419690428434457267259806521204522301329362617707023566514197045804942681926396473510090156201389433403304897051277994341924482058126037004631930226361166700666274091993627852127257682495379276675321773149086154970448419345486747374074600421867577101375426778356762912230020558611940257779196475974251327318571073121585168977173561817634800537327182972517698531380702590621610916395344730112776778991253214983158584988694055222463945555325453151733865987861073045065262569041640845956964034573959583624591182651324749238722217633062558811618384662830085784040276832375469168044547043940756573459777000714901988700348628474213870771823455038635542633061627006334209386873254193796494065252555308134679318091379710695119576381937712278836181593296034302974863135462031570084396736333521371540668155281630397053383893648943253733028119790950044364300342331270981662655320762770332169722402396825141744922707550361567555191618771549616592044837239741938598666562746770331284561550763110136449466498334025341690614342338225418881288519330909300317812223370061115747951128859395872984442536877907519950413625037095224429700588713434309859159269921729389831144931257286051880339123073508359591188211304209837958024104777839198629691766040328820577433895197875351390723149255193487517292897228003157344676235203904853841403354142339283669591557451778283793935827551937289291469533670101403478858934237780407281814955245873216800567424751425110022005966737366259548533581864985359811502995928630934432632232665228677496443787582792952831295344794874083376108705062726766727979420805536468706813014366359937230860439346608560918929715931738158761483585456873642383146940760086040124490897530188243770595595388512090377448517524752076203169124510629952566720095915563437411838970307887857978512491532481371308488265638113068687175334797033632862106861129626428784753393043571159655774697756912980367433444499097697848512516713159248453370587355299524731201923506603348995944830657162962479525865939461374675519061372941398531080931908161347769805469857738849064332417085224716760527484006655874746445566328383445280091951679228023299520284646238665788071675447661413114293998536126289949751042923290928238380682778680161007892255294965339076596336860539069720300166213568813728109549423957730196449819437408808697024004599050594890662955814425770960830754986398115629309766895910044016165642377969682023992448483110199089153390804570784375641079736533928933913777888094380654871055820135906684573755375522696209253868536794876764983864990569548571384568052749296223792316448451108725915306716226163733781498496777535756237235147529293466491679957518393843458827472440017444880614730324916045662062093223354831133085215587642299096032615176034180482448621749559775046729013122034936113452408204794923971289852361982278466075613398413741334801860287410524554500842798269400943723583211458015391356229642601220521104971457185307295569387391112212401828231941862019215723573831742253849789266897830699759254372190363378537763706115126144736190352892917857912677956917947475188916568654492770874129819895452659276536280912263144935303770826346196555870730430497142444319263937005449569913378633000317406395478447353703462447881877748875518517361856929728936802315931191366181987745495974318798085534656720658356038015135375368311194998699701950225317465222738527481012334715128136814518985409308038319979616861151995700728666311885141704289165338945156268314745678052063722380281456598848199057489457904092793207465812871950663315504552700205388538592931497292528985565143488180319167296406977482389155045189451057995919703934317690091107608519774779519055137412216820931800536874866648745281751812469411242376753793137439065299936870367372066645769834603610306454754338928596948283182269640642496684525653975888268652700172916204547990144089780547508048166391291247746921123169045276108910463875265137039245393029009996297604088330290591556254335363477102917152770790772768383222309999382790725465136745036835623701447170813184546635261954824698197746633547562747108778819093315699253852117170683769967824588822939253039187172312489197537075943066614996906921903287432170193032302484225564869012658199348579947243548870256401572487961969338667249576418267007693208713997589969211922570362317819460232629999313137271072662557984873860210029688300728377018274755816793986626868037303709222146804176384344436056043893293531268015741113364370990714821611666075953964887463750237764076433184344192243545948046428478906706467014643164576087001139648691859194877441480061141811167290614489549996746626636392156783662504915200373627181990636619939394413163089638946849429790201036552239864629380169180654583118643223278968056454076619308705611400111857308562158158883298743712241671730396725157654769721719675180463911341772313454997951637374150768312390944737239089699819767322277896153701879832671948914933534814196455973970441625066018560668769628920248473775633233797525724177153454870503651778751357045049404863998114825502374581373029169210636347929175542383404611416009049508018083523998651420592770722512813941619335201244370102298578786606572706326716001763116183852675289547357226595959400607493976515774473489731714581742330887691776228189290433912136420838348720619211046298749884902689171116661691794775897646785791074912413135110839604069182309361041574195416043022015875663565344673180981678565480619875151013126405917991040616623218655808152434936895043826697091577089182594493621471521793155732468626764064443870216105241970187612307773599804613983809299648455262309949534317562562747926173141484178665341356283491112123754214089719872212280822220617140377924492000333958260199264832372283548597386920937172660428024648620050316952919700358191640674267362362061627352356767862132992395399770738169197052430708180183864336558208850412302273957526152744712630171035416671259092784358432683565782512620264185725889674762268753123778108677190045703738065832949091802375123041187850009241850068205063202327917897685911540705381409826289250541839194764559611181445744630537609724009418161598479750626018006745626397259372721201158686131147594526247605804563336626774048630214448761760682433230637630979220337794857184887018174539945111541905432846499887262316400684677385770621860479284526043202190461740122970340420978703045663785869770456369695555263377921557024826338373931661342766598662527584984012753042793463367523893682336874583657425889593634421610139316176617938084059160648294893061975082491023627477688905329305001009146966997784981983412310374273443801413065176931874963928505298110793293499935582793988974173680906185098537764349959323158191554166092775986575034848475990850369079493583687998043070489394054175217713214927076015679528548703663141771262230023285606318464747766386771701408863353839099114566153753581110536434301017527467557648374970274987816138862159011498755236333652470852541973152334964027752180426917386577966129391716901542506877489712709563940523195069700970381672384275658404268217403665230817958923257083296621631073918229267927124126932726917025033340720355550694259388707056122532204758919036081549471010860824856758110382383570064909121696107793524264037221360122319004233066925766754565419501638999760034862750175230103949762148178338866078700730015235620150914701970230043522082195297130093315159117449116682175777782338903201200842430433494742893124971216291480594785780613753979371033520777789497090412154918070370643592583861189599815693703394526862907306521270031059792448546556880278737949643931480813796617655713528844945278659311340981968972516114330600537886888692661627971959057495319732267254403849127587025805010662818994084316501583201289295783671896551898349690227226995184377759564318532678755271518718465683916240839155247940348446792193683758432668194576143657134859132936758404511237258614736653613874801974286731316227777693005520330590490207878244896204832310788322240490903669305465198201688373607111654162382086556579120650057725646962102562705652437639247723042500546270939180168013914639223658174701878775483761486696788700389526129475189493871933167323490896791130573778805668706672712827115999655060914399224036571456948165829793715548053887621631009769447829241050239376786365937913326122109677978566132258125983907184214130596344318658433481314956204122630551130630706385147395791387478744587559365096890866424311171505552990644186706123758071478985815596733154028703991126821039260512721181548930811031772755496282955539934008110146243303719791541779382292524019539051312582530323347040524561053668612552347804357449092868688652859047712672053928781040998610364394802952907571743973365921599316703532790410024019511481878750672377497409360146468031036007845240559438856827377991607925363254388237176885477076396885263260807079539668701178186561374060751121403294769699407117398892845647573361489787841388809039467452881512248921577818793144541931264764540754606021162464064322824287788474665532156487044563439350477664839567137921834917148306800452228120946947297347182376810121868619920780365612800973504959140893973048721552761087796389033714978524930035585042477471972487441106853211932346443937930551898479611602954505944322393606213238568401508157923539737741650139031993288152628102262040060754655944170163146804160837321363298950673546979644065751655955393893534105082985393801184571640088500962687039348477397899694765093185088728746834211976589001431895492779239389261262145480888921317364987887663074593385544293907438905776251662113940360281809826518591906189702138820217301512776866972367543574825002031505202940394349750354763820765049217129998022471256188260886799555262004738019081107508869445813531730787814990804079898904109683853026458981615656390819682918326927998802390735792906904018636103594130768012319122160531847351185011602093002736078015506800441808467018711788906012415951891671414437035272982524010464593834814997857856041017753621315825711284959223522410031096448863805405742568246621439642553848335024101667874563449718024605770103983265087420446968093396405288694448740434959023503446535562562472766793246399417564104552519896614651261121298752280357828801299093677302284669372161751548172985977304063771060477872606083186102292901366306756590812250674776469983300736041804650305455168542766806985989142643417364955547294267314610972404927655875578444685123403602643874837426613024632439356939295094748455947435622224027310230234697354702844437649168780372179830843431104278057088930182202700185286065690421845177860704148401206853819949835589818205080914683726565329048529205230898225699140898534490064709654974877565443792174538105936844050017052164283569116053669346777034550725840201695300901391477507562561778775805568107434732417416238414303338584861448153000425731736024126611149531166062982078250742648262060224403207369924428857301510450904598925361035117977911924486579207205957085339053524262878223159262725842148590722952491035556967779598251387299586083563258575413589236937623358450396691189193618539219666924889886831467050224935095622094088494339211245842219916419986014302081227237835612491309718396027667745165300190860510822107451929720428197617170087690172567429094495223880382271850182031485524305280932381852510765465388106833922932429994589884949725401684832340925056772173300816683347805463708158132350025464031345924407609247117631327406925054309791991740098205371668679258324235142296283741222070552973383431192034730137101693311325118136246808215245764267318640344339928808111528186553313182821806406047987294604842595095484931111385459071632620476394868236666960889799304177185936280495623965255183496679099185615008414172878548114508047525848993978479926143938797193637959678323649490671908506394922339793799212991009325462236624079616284529479849478454850097777870770019133265374627070430220266399221839622768075052922982664033152166625342289116821524874363873077113716198120830702131408973522426942032802557410845600064040874593227163899612129748584012185629514444036519871769173144725415467054753561272860836736641297502448525073688805955277697166279627740559508346579101562417544896303673090459393534930383562098695024674417368012887608371080644601702911599948226646143264828257765070425736861358207626867369264347079231399967837872825844557388446127574823218458345778336106846338295269764524547345541364122773688603199169524876445622493089152931508810210099372456616116650892480054945285749745871502785458737286484909157842196343677717978861616957069994358673358580280153564965922577446899274652884587888979675355212591509431157028548715794918346182649090779623541963264803184155244295064311946357843558504108586479420935120606418870711679735219621589124929703063744285201774104738454957057623036636068650890765682071865302280698574437350414689285102952586715522578955630351304167649179277817958149502618092671644377053920944921789392115742616878081035372069407788288257293802756675597782319457221813858112899971707868405017876674568362862581276643995392604017156755255884151165004363782208980835072553793118325515899901563358525785150961823681317531718011336131761336463036510952303845591460539374383805411855249099292927831373035429909341179047330257463555955703698637959067744249893763463062584353414109979393364899998856881176524445445746424014563151441443738290127886489845699367991885264389312303194932818415808142293797595693157619672671648736302490418821514827555959518689096711381496695246252723737415637327537812978845046280081161757759219833027046748806807925117210363606075813697268353370481096807341574286173911366113140592754037928606381702845456749915870133781154486074783875050963909860267246554853559704025265675322944122734572452655319239602539087648697418108433252270599998477711611537382653256566847277556823447368593288649367197230501580484570071760109868871254779101386212971497849960940592324639584509444656733673558877110567717819666294667453796822907922260976869917585497387579330001038995248930827882673252156959742621091602552975869517401051464849567119302151219718892148715111856181005377152827795120584916337985795771516600346991131242521090596418589495560158371275823415085538428117481432386848079936759851579542430412587325450630889222679502759370780993863084043445475958118484626663650406144111118920409601096674818450443161780443600952589983234952989323468232942505415744431726208137127542802068210559370867945688738920465057054573933171759830387525987458202886490473721436731634296011163242146469805940239933885477622906648713051201491723347678005723762313067182195406599354420650013875273659397238200455237168285898079976171620283147893716203046707258506130325202743964892447380424594432942193222928783484977157324449675352686295519848219490594288305253080000504266897713178575546127872877754507388650648197623722309241028343450692761461909578591129757852778434551265584712186707957466583587910636916050163901054764704068181149532066816642780816643305656227560308273222472197434431027036732615238433322351746323298015356709956194162183246669630900922060428444080859506313947499008636621047309511064433399397117572016362237637556037604192423555113371908640045691005444661327103375085031669408387602176114634319136793399721337426081941351987782922813269352456761557604584137879285947624176951542417329382728595452069292229831955108512569068515160219559187844920612727308025671331433279726737375077218992003292801116430513536504954695563026351294492394412550012040478280358861121110851262578905178034508570529930890367904915274571302689669459451926136143593089049374214270072982059183792224851539786327622155026902731890655702589970105217466667208264442566631865461143861271200657507678837535648568389987746406683431805794753249367520290317639976947722790924048722271778957303789787181757815741824672084045263018693862124550065809353901244233465393693776118855652004164334035941726124170819910848722162785523262277603336714739530653972248807583481602119619857776711745828661242243030994186550279128977110774427140159984094560015541749073445050839032923475226233317770253227811089488535236034086285767958766872659275346835368282339282859747097880299606729172401779801268183981943334813641990102239258900618689228161864430391390088306357813876722456944441471171674642835844660666261885415568653950517086976383780564951764408386965468999405462893949327603909468198386351668642240178448134618964833047928622184347973748317590723852382211223841831905791526800740360858976990217598358336666909299424495007200372585632705019080771548340329839864632357958847613950139631354659047964747642421568482431423918017667762691790023979741282262715820407027668556436454516990323475556781120470272616387171213572246728595978402325187243398974344950997626316230411078689212731740525878315347745157534511914752588756025133479213254170371935890414809266866059367199876131419119678132580395286994634163513209529886239107287590306311428830836215715092465369840962272117288668547572860560693652642201248330678268577898845087081541593121690077618787123811615265976097567514964870454350460588011439848106853106302184690211734307171548056421180031497308375211898360724195810685415928827982254000465484251615268192138478430984085805519214637787126854849944630615466273007852280637561000778559743093227312706008717841972709594911573823594608198299317555477819626664384101533340592817233146618901988343103520524349380775789075188325839277526557457849969566495274056416112929626130046563449747317504754266369245669976229550923548403924908805120592538059795716492900172673310860689245182076515864673967414573934458542623744229394743007914117868750504769011453418343628738271349659021741790149488244448993214757367500601670326026106897272888901188839917598147761734372616002821460711786377301713700429644193799398216443616968378863789052807664792842700571921261202053927962109144174189829407805717135640186021838610440070853506489921072118288311260029041380085492080450483080758803671074829708843147590275963003483975654697350182465112244811381911786952229636074382677693690955124936907794173982362762018705353059427586606675139796362957056037492490251160624585482822980451479707153726311428460767994873321467201398699976677955904673700098866688082716186159772763683793105451138557331762944213206246167563114832540006472382528745740361163300255911391135960058144347392368805408276894491674576780955944626173086699220246181667175114674449001484358059756771520399302690582365363726003351442609704335114078013849602354879157569478983095400094792034761621658663452798446314782490715579666512163658614273302967394762488783077475495478400885385584536724702348516767111457836816477352156353078611101546725454808067270204408948966199847191736249193532661036973286971885649446500977304820214317241736082440687319915203298773642284076233888181297129176173771508696902067901146357168490309027658267642056241020245599136699195573375200967441831619278825926753158597827522539740553744737104969040626470742946498932381592256740986127086394543247738949419928353914781649946029890666196395903154828039022010626967336583645667600387700006955670929780212810681492725180754124694939727579248863428470129965185102721398698695214013180258542807243618482831015979559641162201935453768372955673504584052821463524684642018089925174362707456841007778929501098217144475396830572631703441713678752099318686545143463830685171057949105225240590156705046238887362243257790955633238485449780147244874407676785945054278569424665176853498867517836412982952506858196649679702603029675493404916668384911424735361511284695942551054873076526187809284930941975240931456266504397313457329163322220462794037407806479854426894548589130142847044902488260547646051317056336861433045591668189626114109274075383375871311778166428138334804257834795439771864068166198859097555288923714578964958584405492496781320182546247881077118798808639284667448865842361805480120688606703917394048768791604889214885908557284877490582450257086291933341057846351310333844801322400897826755358659524000710810771631543343652649935436049090516979122704672765132358806293156848527652555893351159901704983529427512526605257032333544043200464125761204038700138605038588041652650765869697143911594866870180278867521798480217768720711616562342281453796043174240692627921267550220788258428154097578548256184063157993291432226491994852974023586970048297431861679890622295062059774531506979286832698281844459376456712622044419519148765177392722685276128106337452635632310210371526808514782689349283790569634413958084051989012124623346657801458553931094431900290401092716338390458747253428117485549208201184934100459227275333756930425553469939109606819956505343526300829247687389513858859390913455760247337687397638291883088100764552695479770165611264567978942231394062864156871296340110746495794806759343509713517304958275018255485993160646467823042663481419915656344919940943125292322623438666723912542845468762557041555067593283286100990876704672130121856933234405688824511105911350812570303257194346189276299952430094311647918234944837757049971898291945902493820510661609786749736941793841562249763348740153861439385635034127665336574944327820214385575727578977114161491229606933331396223362204567113744147430518204865668499337374873155224597094164833060287805028390830883061614923248766285820077514717405845958056651574324862261395486555571552834605882371780473709257102320534997320863328406790939874893140612818371940885137646780071389643123239256140965883725790969281178763526786037244678762119637114403233340602366740881551225596459229172960352613598684069385247208865490702388559872892071587932203668327363752044097757598811050699961364631078244364050357789805389778152513221853931943680721199155399910902033137876846749473780136117048913669702380220336741540526412196209405590030017940749078525128250178702677992012990710330756651639934955534780948172634775988278290739973996171877292637270117675819532482609920378311334135555178885203973750072624775459684515447115417478161102702068678335013797052169458530330682304544783616379399871099170724161183272750265206316576167517849393328946267161866099393725932165858040814358868309281341883710452838524289092423005589048911286746688993409287014389866817456471081135518850835171507703030017201708565603082239932865254519473323813135231879543327733994769362951465897562552908131725005008097910880719815238133869135682668772871152143480184356276508933843450078902313744339815090006050583801156342241759748740976049304718152043605760635094075437005297462288630918074231321788502006520771111861805753024790283504633698018976224203394962184210590569326243955368906170533340211259920073750013492259876539354967971373118215204307324785889858663106530108632418085371430135372939249183232344350481668318338379901889681336642314776439435330474811344904807639372876397236384771174614904732959525696294104977282152901208404647066815901070473563828348091457450413400669640053698591553862681125913130700208623183199760647017153216662345409313556614868527268652985775630695500375107311233080439517496266794260190130255940069403083180820520844147138446669301517287143535506269508478422097951234514846435554415126397352501768422460245643535001684647683617970794593841660021050349600525341905736210130136869558439941338522915133989099200436732302075514023842689680777414566708727756483494683005116040532049144067918475435278283204964227265738263969674944504612455783424691523972027384668757934004679348633288279446162356777516980511982266998285515877051357035730414416592586834722982877939203463276502927166101710573109101358723552402548521085906921470471757050202823013209828037226318101870224257637661486752878265894935935795954457638877025931310970364627268527834666250193446186666619478919070526770834814525938636944614883826413985274533173306756737413244567043771893739413518750594667222453477053608692061524566379158636690365777743878092953938554039809607337868754052256678905016694681373795006605971618513346504242139788401454185641854651354800239346055678392340977876240661644541480056736811804216252467362149883713697008507553331299533808657899160044880356085540460015640395508101480624012393432280667561655788005337103796754911099392663957838174413517924505120769617287096649296830078278669374681385979443440037364635058172804567009851347808920466823527215023199262586622171655773759415821039362008288923479326546927098704182436918300836798632612644961870465626109630983635216155903107003833880129838078385277909144231583112982338523479229831967018894144522364990496393631498786887635924673812988783378879612100093089524564731893727714076558808784951181891750415926204297843420544011167814610585052051472423328624311684176646003800728538420493125394883403466898812954569238318545394051438474981530227407158238934994297948670103119467644079463927546552906157893834398959160006912048806338958951289659871629594278435665806974602703172931040014278963026945087266494195215712930437612076310293140517168918961987059350540549801902875425903536517577854935998245043829754225986763479775688384874860565606919823403806918307976270490403461913488487279003879006263375399027816308155157378756548110173544026814986738383786492743280634187717336838034263087005767509595140672136266392806853956551579079005229756520298335915920165969812824561575624657848934188575183823693974199107272014150302365283386837092540933589626485886008348077033136863076841906811550568175883903296475536966078666851139827799019702123586685140321017796831515739247551090381605531122909686131298187677652629904878159724818645361361090932815023655947384480887244583317695665379947830578234869678494129949967611442546522319410797340459677150027299216473450795374833367738884992056525413342813138875288208085162858266544553193914138392564258506192047547094135015513486720547538003890273912152094157748895475867757782288057907143911358277853797656158201023145440505074724461635971382501332208564430883214146739613103614279177112287805659322310231282093716177984905421357396423193581285729917500825143866780455327530245267205171648936353571962247396773224050322807233496404498794116381338957095351281482444492876463666312445538740303693498436034177334132246495436835746104938959998785022461881829088875409857319433340806767662495274313782590176118891378660033685463460549503781048709959246308625545788742265543579597621242161008721186589568614165149726528372496817992273652227078825712503351907917631087404276043871112787009979177426201310286938404621761171730113353968663177622135016659137627725999356724008247339129844784439106732664532594463782466094576613807483594782209838717309687501032026098027399338563738960097478403357191588578565368595282064953786204646365852200376269683477290813896412571606115008172572729200435098994720922737212006821609094820406723395693420497802019565874654482830027308832767210248254747793090663024906777438234912424314227883309240992950327467993073794012510100647227489399679959666163999648775630804296351991851662276851111391590527369559556389190241118078062962879714251309504662071410577105564739151453402411436150031011133234901692339119164110337451817439724954856481916563774432255768231777492940072096610201754694772577221655470811097809071564203033306525461603053696002262598068877846084386532912773000690148125226707690899468811197255113185229191989542007492407422915537551185206857487983293524436440030418156771018016257471404057970809759012076304218817464687289044434328799847504697834866722945645871632975746385859606851009771668472635849550996259617223172013073489308185197504719570212215797046163303734120402560038613222886747273226215085326722858881739887925544909597191272563182173821804918596260783629441542860792180360217662110237706229279950271264899801177578992098684822823328311046254234338274024996999803220407556904641069289673194650404950393660588385606911032844538133095298291849782573255533444589241793826538541267586888690294468513801403636877079930565077576859748014508309458775996539251354255406925282344540840571622950854864902932059482965107380993589925373968267667747363859724460844397729117559248038585313633984907049808988695103066206960996333767436209803886686546762114551020989225607853249440623891382041467152811282339458056249947853950683126578590007153603320176238667158061854743390272671191991161227592020450898923446587514331555423621545733765381296722676642219929710224423924625689540688248692973680222288654973038658357287398655637481359984171315156544799409332081894033261504652687156905360568139108136264035777196313148139214110785279970531685316776951889153065935669765337690449439875700497510819027120439715986193667075782261323098295334097152182024529042167878062714491416301546320021151417272113829462118733480973454949803439221706789643248505379476400353079100195703049244584780531383817443999879907745530250653470557680936807595353027471501767646063372186741533381207234094089819918573735245219951572855548322180756203003522476952525925118919427300689947644181271172583487171957498844805760761624192503972551591373212915889046261776056502464284622803159506014221240562018577953016223847662117141555516184341040836035575022777509878788888545990894130139843660097631473120860237713023907951764763364024647105730802908457678228114617252371434365652257647788902247462299862630813697423200907680614642290453876011296708481495283717553964199906921006204372885390319890771386599644690006770714364865137792971589431619311389890090097890737304735828732638140706104193118350289951317212117343161466173831077590965809523511959160531814686357815406563574322171709690539148936402983234028874672215141016280960895947273583463969457624276700659042679515616551400656246678088606700902056283719069980004574501095492206702506653739091929415005712154920879198827762654885195627826426752048632439458723053367288550755268034484502483952109589353545670608425348303962971052538520334021601284335200098746758898268060140024265813068125882734361340583721633332175472289598876105698493536745801600616334204291637464705153506076069623517547913950133233491436337149057837918538768691535864636864645368124800984121117162409917148091262440064032707531538479470435335634302319896751452113839599818365101908214185907233587442260209410755751406782549175213517113983713016869734211357644703228666171007164240234135931538541532537835927686724609354529392535699502260367366158515547574568697695776190040453193683714587920224501438955440192963727315425514839998080727309058553892564039114242265196727233723528773197781750156161337432001013267941288419493348192760474181965103182977900962775280700410769010310567669239221468593810761905656938686501030001481074095560877889395664578140966047165300154234373335803304945531928171041407469778053223170459187088501561197423966086836563237845587350593139807295000988088295026021940757382222715792318762436412528541284197625038453865463151399992458918278584770243189983624671649756917228511453983136165086827354378857514340989651418170470873032078748288432793189231550704628582884454649875471919031568718684286772571945058804179640030575622711605310970561834580429523788815026777313551459894377426577337166206029302696325093279603404988514542044699857575655978195491266098116066015526701039897434326868935943535640764840149306644067547624240530200682056058233782751479577914560410165285059594479239582041344674848218422012300088575865233205644651799552145057396563927408267245751676615275721260972901068240158284617280756065929989978629475603956246540718457209648907807262126604319719134597818578396913710699041017985010254585040992541494681274274624763668649085810995518560499231889784292056281602727317286673448487422855604232666508492342993554776024816901387045765780887338067002346974391135948652027240287742101600768019207207722718865123746845222638202723971776800855593492067320179969452664502840650526681011989908256802732489677910313981502373262549540373798113900621482929652025039294488416839717335011495329572806040177495335868446824668324303467651255027649586352963115252384073840279263085135137283164705773148974191658957284910074150424709676525040084383782718251266496817677546907390208604982255165437050902471634802798258560344765269597186230430343929424535774340098264048126966206926716147761778480526373892367977422633039235590923587797670067851848957708792460882648200954568573280881323085540196931310629718114541651502819145171528456711940601249455237851432102984986271642966512261522539226458958880436824446931161086393147769505424523312250584170017552487219214637050545574879302468238776339246356848740629075521165137026420659261735983065554345648899866954426311397260952003477439576037152752668993507110391170885336083923162176354119035313583070263912153023185861634868994583440637593807254037888313850272889362944285267743348551233238679279276564553136745354091556108684101384374546296864130986900193080752731751455779924286679852870886097910234204187553517717687180667136707328495062971308078188172958355240516016452617531021712357237787483947283337741670635184587258543541137597771168688167623925568237372408280755557182484820186188745631148752642102640219507038317232255660986861029623900544703059173808642120222293203344367731174625770889632417314974809389274361045596382371196727289027227620885582402975231586457428169230830862769190946522050978750603046999612933921515215118525482158111313798985107819457362449919743387839990308714764890686432630345561704446207693310282296837706784619363433561732268961314295155218175747057175661631703605588228670198849690642068489461737545763423119075400468603895695888471070157566220403349641176682842794840583228027102169719058411321740784026281034595170157263318343150382537858721749932026490658290871324399472406002186300445919363721107035402434315696552836291721037839800373440561103563966608665642032869420460183897834795283102986491624851293290585731775507703309091653218936384105896378437920134888695956197989628378329575268962069874465784335199215786255443012674262215883098587770969723919853928061020475575385995819297484232894167440216345807452292041176743923523302616558492529039814266399579915511969997648134944333797652203190997354827731956497530162963994173462204919765377089651509702542684039525633426582842679409792438161066376001773956449633309855745824594277774794595624745668936124411569020890311618697407438254572977598789037375476557832713217970030211662616619476414048246522236203970919516075552638282309154361207995742261379050348372580627052461327546784335353318518205837270858570115435567551142168714419131147224326371440366818202559841297300504392662894262892851072065926350358041487454726249774211265431245427073443381421682234006965154983195909548700929758942306364322315151194901661155865303994943191982480274966500373131041648830040831793284183801951435808404723791347186416894050201400403589613010211462986365747624955985593282614805452543078203783350755844008351036170931982384018247328855523549678416443981446703907020908050541478238670704253773870205340963607839824468935796024609658832373426719368677063242601485940500421816849426804464632459512870704219392333745490950864231597221636002302044773735074361417261251391494575415574468873868471700900996744014478302170140436903892541665093257619300323022920827449246932006380355791264913892334827669366068230092547434711299196323848616936978945154008032623651787330244954033736267214343039952805552424129803989481039107858261703417098774850261027305690826091962623068438041149804474909953529934029042379662857547787493684989200495760639905017049322484376454757734763698043277109006209081828008715196515111523172353746899444254225042638793549626867856612506810960806386705938737626126704732636483556213708460259906273945588950513980599199523424336175938131302062609828116974566601541807253121216893586088147189188327284425807163826855606093953690944580734757257190080123704974971803990370163586973075989272597059259122010348725687536308113057521077265324473163169933052310728115388829454696675144854631721137897651508022054660710891460812275235368785067964243871836164744821525274013098307370740349846582128256870866959645614539608994343565915478356634455111827967263786477550660952367785957732480201530740698328488853847326679089775631360412738104085933061672843198667894326249012981135142348459038338278802627649506697413383036098229724144203965312710476167753172112844231813209740281365630281708453299981504443466899579857951496243505199770596193472692916401497254244930910636508253240585285893747891157545644221977389898602217158375119108188158813996541884742257039910521290613249920861583569648660305945725338008783453004200562317230040700773206096458353650927946695589581689908254968898161065281911683758663855378600103440202796216025433712482397692166249902835113261787450949984921583609288974765784928800275403081584391034011623188844704294487383773661352681997663629645728784488583581187116380074474817515323756662598302764724525307865643365660699674054022175751263921828903376992996702183947141187073576768971116427356091439424924452752975004291735617232331798193849028221161894081017339270574429465015357738443979649540706605178645511331063713889393226847314567227905741221761190187033299942133017952983384128680953759759625142857182591832628717577842627720716762129759180280378778042944925455711849668851365848519092306090967676607534131966484431706082504852705167553561133384453851965357003788009316555547926915619333021601522756908687692466957167936707982697285370293303311668183819479741081578484014589444401494974971539722633568499936137519657281905550159723086257698761604387233604233109509143221402652415692204692014819124197859419206994233362085788194520083705271333054455082974239923302040830172929056273413710982892600805507529279518397167602782355866075506112160488778557714018769369005657149490423495290013985450639391439452955169235795735491985166276878537052136048033203870634005128386136756037684302111554402099944977128646513586663034264652275803271717978292979912309294308051614610756094063723575341862592121387977368118710875359653290165248646598461280996948755119859737078145696330563068724225386204945115198226307998789315487418352323775285581459640996093822159031323705599990604336381891720345560896249344472805717458692061961767355877961364324408940138284314121578857132915786368236729408954393155048116062947448719141810690939410831042914293232872560400784445868872060807282875179751212278526422561881514225366161069854315107931419188239302849187595165893863931436662401159969274804759477622189283796009666888584545928549793358010288708350867671408390115456323015720542997642150037486547807796589764690292832900671227824234210944323733405352175406335038035767059046872080076753863540955352426193924585604802393341817074305638718087230913359990867048435530319231951605543471578134213629105618522724590885551158677204946315401551213753109032437231607391304269216321750332180481914086761383910595551859595464953099144213655915458868551157450928338768989820402068223274070705694723163846045757919950624599595061925505664953331089017741801322135855251389411019124881156604104930694469070106232963605478451817685125723774611994260727825020043839239446427525161376723999003261071343958455430728927002278470324855713709903712882345538687718174470753352905389223104686837396823894915851786573816220078915408320288438187349489231514983787996215685443809760467492007563751870163644786655067585227386027884973790440821172555796999163961279413808619428127200298281935086634117317295273717676472000750799347990475906602757527506426570332419884596149888225786686961573569633953169971877221974890956658210490055722177546589679984257932756620306140972272177082216911383838104037445379341026642821209023719399496595362677419930162298205646015667260117948015737345356660469982210770111975407959485186714477122092575107608493109195797163859962024435149324855366132173332193018048045152132386533143126450579497833233551782450884368980972228844102178389615340366117370768644767965135105800361575825440242509862476548330439168784875636218298921891658860039873478791046031352436236100745950922764819985782702597906931109503335623127804802016733921060569242146449008276354779534003810546948374002081164946999873218719174502592010099125311244144502108292347783124705828392936788778900757261429176123976141259385479184117743990786155157708540299571255365557270574957919705188577414030753226456332659193847502772263552691087221905983228759378265080736476010403954002871541985473693028797070896473704597241743997263525947385836795210334133657674266615223018999845102527236048274577444917012671476150568770547728077164926435535492047626991960892745910979259765668160619095899442866323694190036935254000598976725982225634134349598180616030425775998763945384964445385798012806079124949408346780420328218516900750019168751773940085083598188091745843541976361992162897763025634515517968736345089568873221699271355820986886355294099540261654092084255471478639162102256426428842221002981549521056002072976954217479817580133660499873116710752082910577756136699984348980976762007221012939818796132600160913338666395833028997259335562899617172157418923203699958020553149048573574075004409965721196674396955736952102043532697505429470140062071154307561394635616179248324882213716804074433420705807123518389999004024810643483266830303646953986588262375203510771538185930386472320638750895257466184051306477919490968970716010647918224991355308717130091124833540348337529848261063262945362880434597200496951261722011894743223143081829519078559448465943098259296123703320481714019784377878078043409081473246060394687869711169993739757872190514726405362496293293985809483847345597421850151232954743269520034966412646873353617319816686494636345298100725008728004411966480071132322333128708512059823025209986233465487377860008279221792264358792458312607744748171330098577859866698747772705464748311259834297500711540135460126009731400148664668443059351531651344275939490489843105670834119152766401059091923066646259175880849262012587571402496934261018250711177015226203139873046921779772028236188377988332018673484790728533353201071576018558446846949569928028578116261132461253707482596148265678675418443275099154925012951042108087640383873193329462075420341747080341412088064339897711271543910170633523502545502679052990731403258195511741647180398425252147062613700493453326098979652031306128851639106332160143919270237466835883852934714083520583603565447698481515680895439506038347773575215223035771082363102230333494172932992669847221033446167302681180014466514400964948910935168006750910239154647276138239309147622207518767121148312789794442072210464414914403925486611906227319025825979167193307099979408580589337422821251959349172609427641092309296160320350581999642144327895474592956411331186265006605032148099895279640586042387060059428076181199079136040178059022851776351225387627495259320632245194624383277536106653163602833976852406824274796290439277010724741490438559329268279441072526524200751890834409691412715695702798739134376019991636451984081620080979898684374990528100684755752528459243248309127525007892618380242671308188277892878955470305429456519339918437882223103257968838316358413463999206191390268258569975439037440633510413551271300160494712059525118342131899031101501148483115230758990780202105335470911166156419590919144471719651583095467767288183131928786010091016992429695906721860612657078472863703939763694911649454919993219263710406198239680602528643273639510135971721334391927838545228485545247511394469265933637648076849467429403520669183171378709431990975532807132760639980414550281656245138077518876403359136673651651126426321596986707085745770210686656716486509408055362785901371980801112859740502975487186021303303477683612881579079867013626996163426606485510001854543063991424552879719441977789773242565125544547827596761330828875621209117118849397168107746182874537051213909421761896303124624937034310054277095418890150672590913415111725998932984453179345934352358813153546938580900195113646539209027074477255912510520440117566279544376202335056102817650250941036892180892170548451256738961584796780001037234621879978986686130137712422107904181846184089904390575266814835205633775605579677328858631088997100543419798638604444068416402673065976760667362477193113194830102291381341094395732303864082090307274767749177926093746595844211818363245353293693902353148753639802303116576398361971977941811685326200771293642071989463131433152107825496139419635748550812116817946507974961434285601529860731007812109415812768500896722240112853946440738055914916224676934045729427187965018347495194601236697729170147591626410163215818312098912846054849613167887451683164579385250486966866089709570983200559001700644510805285021296797063560048039519310921714672805671591460553713635547967424139732758959407213253251784867501929930670074740390640339437115023835528640347203071965704713052120384543037999202558543154533172464186933829470600184135940525245017885854899160516875173837785986622412195466021631347913677905948918752545025796987949628650665129185397932515111918051123118994331262334160431370786772326419972933968016343331471667670246849480114152069448706322738176866512009109373089987831221300224526589573916703884368396596596468249494422314244727737341108268926057424122330845759207118432256294940406085512003397506666455889672229019589540306248445754319032606008700417486279635463247462918734137514611310629214478867224885565490828690924620586708576436497353850405275869646758425380467147293145316026019374181468511978058254738494107625136903695288786580571200857413083059268138283573517892728376199244449090923100208659390009551695469825202219275782092950906739293654724094479702197373619294401524704462082344208956391953697142744288343877687698583716560842175203040405799126520290822116021001515553275233685183378096256808567144086530528740142484840649949208940173653182516346858781848632342297969159766719241341043660858772577860906784215023848485695100465062553802294432920208338062350548475880802164578601370650334637901008203710655430600549130743527251158818240162446567552421546844583816164920255713469149888626602607539623341279996478349542741197573740682539315193480487932552825315101953361627444207346693219490459249322558656412409772342589037170957820726902909884155948620565511569203303793472952255377381706272334514387937803590398686435872846927819957660212128695443683923136314468089495948963804034572390501411200869815020756015705292741329230077536685920093139551441090801648627451957213270904484991307106456743566829432998561121113066659401506135939778442045193969500131157944893525642813081447584588184798476883743962832778720732571577497135080571207228171988523450443109575968020959455571586933130340195286066927595100922159434491552643609529432836472473020334758313933615965075749673631214849321102146504068944413806526031097313365839737996568919697663997474462708511460499588461059421003160065443662697220928756540857280003758655717556947220804248333371919907715026840516151365864678215803883200807480992087598753046714541562538906744418389562971146718143545797388404467413519307390170943994262181904501771025821665556196940863495155302861965444788717050164131306676843429311331203457713321429977316471602107614865398529866837375738704914274988263445947859084725364554385907456185511895932453128665527655493487684914749505177814764053906302956679931259159230821138276293624818598075279704203326223794004679054336484965225849164440575585005691074235494976121261698517672191902714602009388021640453439397490031496065308350972828527817162143296708246968866032276282267380954475700838180787203655491095054551712944517836665373060433403781900778920232222204176915095312980287101677317071120408724141430620266720791166617580712002828057794653614152104946081758122011935635678231186121076495684179497990884428319699014738599949505109066293246017612473130155915349968125706190358344393265257878851327849007062344640581247716625335870638391699519425378702179280455347696440419479717012168002635328364391558533001261596349364782364051653638870093396454808510320759048501696871486271866607829077347926485023653900559321404279459441954325264941611961892535969155146407640845135512203665984583316644444948741466559742063757597360372495885943206792613455473268660020643707171492446348651894493050696772053315427147672030178739166594593240221429856152898669029806664876697084733388374685451261298748953165358176730109905142246483801371640781639680271784894390988693898464067448473330186029865983463055995033201086131847767027641062517108069193184563660605948122424768076181993841506849628758507799578601422964562461960755608349552739139918589671104466160247005508177686571969606774576482292224504860926837776559056359476703200885327954823511428484458834969289124970654344284585589976415405531851922222543511797574094745573696525069043594877405768598694114721131521777477933588619187823595739371231533644022163340278829188819930752044345038165043243730388953797945278540906119021306034094795204566202092489636724281864008609631551342858335934491649516307645990156302581809643542039330305097827388941904775685297433404330575687105999140991217614523675328546846780419855820427722493932513754331889815113066482265007889686954935438865790921932804367639036836418485178229268356038091199861250883535234359225581036694728815928583470107145532672345800094217459157289167467091051343104804526327909079648775118997999054280261095170127779380960319430282884520487201931650819102159146618061311184571404038021726977936419534542132175929835976102532267605012856756341570807073977437665960134215200412400276123252510923803783154779784784545196401769190159516395824072976053608149881821244609777794824253209405916622688252535607692019261860427636274774669213418253785139553048019588083481375994576020942094241112540032115954247884222971921189789945743213020080399156999243997313426249839398372220787743405086034949819655089423213457342720604809305859675630410666606209332780449904898999403416490107299731889459844035524826722857305081415008314315613775922245894047555764394919270947923907269877928402716965577480549610957212795720583706051436409641054385037826342999888074970668622808974348453669420875897350137953295967528536950033097434802869799750795568845117731693875525711028197977078379416289937912739484688268228364219874235989584704733418452514246866333724924419466681601221448231961145191886408765442700795043401085579946213318142967637306903815372330532908308844124651073391848686939057354609208811796457337039377177075534093446136195112750408694660920569891243363307073606565183811021643882437374169955918211601558708151578441822083127305911542190181792630456395547117845431347800832315692327678946075985556720635299412525824461813859855536151221896218819724555811398724832274131914247913238057073720374457935170198394592306730413025729821528941096281683340935846081084729833020972016892619315384427465034225481335986421985089033428979361070839453555213654483026163155559882422378524195437513955786739513970618839747868416945709508995490471009804478599514566803424447148173729765866072024887739381799198166806854843960630166509944175030558492794440220980679913575330316504994434356815826632606604730134767082623006986907455353000455036750222146216741028868526099825501410718084662416414526189946918428522216302130532691877162518067703042228363861682821567575107321316108235892171132269572317780783776681512243644242574795341150861070430895242834649013208400915201255442314436328868797261702225701118922602760977941096324843204570696717207687806063828928156925146828571876681853581662908573128294588862052307540404698712702937631793086647113180260388257819162975440229179415836542461367276126459238557136885087338655760974519238565156350583279115797486732153477557256987948260191481292083264012918009432198040123410875432098483835289912775952968613522894862846855358890075210921527586339205060210612434424987133989482303718208288181768111000332344195372981028140769610823248438422436817736885611227441302556689315665441068420917550827466813196985128192841024727304241408359066697208885955980689117308110436677452774572534166154448658783175512569327965478051074162627573627394252026317475783232904687931279486505817934299171934169063988108694193149847259120136328590662077203861924493059026036222558855140422156697653023399956559158516347359137749741813072996699887896260918193746325814581213765052394065874553721941312376629862340246948512695969636014925883624589373499576207383117905563881626886873385122230277800286807216658715763308201818320495837467647044589019435370054297280500123921787504080596826189913174395482121848118476488843905299916887441962451269081389830332682198831239953372911099623168541536812062667534177801216138314791427742801621110922248991807152885560209992804475961796773449567975398124922771558167007059011644705514569130615801302569853407785497589577271879277915115527431185623536995574809355511559433081018113680657297336274908509296540245876995008913000490793912332110307260301749545069964817046467626945148338441740228216044017731120575973179628910310039885638239295245555709555738672394344458537859912401992147897613655989688186095888730165813655834751336550087295668728125549868067731981617144103710193017895116200817176704144652426697538240470935620290566610482372172458572439269252224414331480932336390799009560332502904561884869626205698828859469491037028238403678672289494139557446855962807383873816840302490353255884251671073908989816203064123933086104105907353298866778727035326436600455148265173024996498292810754935234112706842055859746951828513054277163660688420194709801532776989265633136756981522732698213542405900918502068238378786168231921824298097184969254331735368695801149011014384947625625153684764559558163335613124449884997257396034743201157256534493647811739935901682897399482027822749412593728172586689291031376540643006771132871222564698315464850965448104723662752394624799962630642958216934054506270711284565855235063925871966177230851491028198675324196463398805896807033316517884376482726065431601526605172404343521172967245319737749873694649260602071121948229898796637286726162906155075412072523873038446273587301486960211749251381324259247292246452339806818479212962047867936283887273535658353062128344425390342484905764774265819753216114306069824600722376624244348058108433925610371827304382119326647560888998133351252703572766058945527579212022793197526878398566139088327926788362812601794887814289755638140722714310382144314353782523260914111841106492602671145624390009106986425539838383114821159003419423898569991149196267603014235651242801100206881146226421154647745218756945699684741398019040607205481332385348936507767081514827193144959127898843510833749889355455918845540908214184635989520185292568533504875029781446576171403183332082703784178891797749341660403280833652165947963093915473817149789045208395351753098068050288159285318392122257935581237482200996890256351652775626802336247877791489699197950297206089583037062947500600441755678292888495750722492095048008304067202526033268051941957812122186474163964143981711432188533525342831279226652395532191412118030877483072634450082525769505890664901540160972289721026560964009618795740970709901295974071739543806975747033446679101194160676080811100493809866930448175337416453728966853362690785631772517745265772854302614351660635528146652305751874755730835328153240842416923375034223982814158936827852539961669186285622400074230517606368245784210328131787990904131667147508181944281554534972884492278563367539631127218408515724480156999565560143851324137765277081637071639036588153606444923463048095569935844852086493013745635181290799086033552153997505871919759606117119696661842721549503150405951971619563244571538048884672548899367179775874206529938430379670268666222335268647413694791076181834169815609283574539676845505306404230998544336475919570476240924974904143976385526879547319455368733243619483497466869760084506147876429642638378779855635770649347670668286017240564020002962975978428667837522948467900693825066390745829717539983906332547926876745315847755889036343780457899223830544739237157875745295784576967248248788461109215991637217410350803193344896405445680436120733038880391112329283593728439740315779135693036306474240552682020244155212451300459362254184699823473512426895687535204441553979894182555233121927489639147062471827251865929549827591263543163763344940362988632625742187403197120817039647602998796573532616177378076115272214201483425722713853721640932029194071033241133411859859789897437844682315192360093072746358297269851964500827265385029761898048910661473853011102364585340967046594598685621601899144616554741462047717372908325720343404696459100698694003117401675299079479089422390076002468695032565509671983000373445824569922205892505648119301752651028236223212086991139475999150310065503068916507978579552455611572298854651867235694194388740104376450554281606117120397351726356565561749150401960956456642181674347541808352459273642047869706090117400319431232508249449320378127629075957277373322600948300849242976649249082431835244246271823065910285205986241169044887141709502693145454281304613112280126209911611694875125991562352593261247015846809678797499256879251414409235615249557034793787957066258657292728009494046535327866096470964460031176691822198322972377862283595107573548188605930776237280175912685131315096610765471760841924817357355480628237235467546088761832830404966497245267490408487136711108453006539392639240967617866276480639431177856105239663759188845633431112422570632374042266638904071692962033400522462055512878547320173411247423909234300655584321273006914924840655459751001751289983860963289932547011296874392269094433123652752935613294768892880567082273764567472413845689382995140356926210162479239315782947723392193636155413988005737586863551792085342926607461645247982796789316102394775832082713225190278211175205054214931731062829511581567112543701794999476214133551523682189711886056613979436312287338265386374527481988558656856621787791823384348533758035237306662733493681177395363142902362862296635745025085223525039411628708968599389119159120005886181304689120768618339278803952898978791541206390237076071524263263656555773329405466138148980774381762833922134608979561431550540743981956236668604767206188553681438279828794826981797687462808433724703007511506531048657727592347159990397511067596821708587599562520566331797278935983529227591314655728540501969798305508922272701826841625001555781773368026584604368936913342287310647848510835664279768280191767332445260914498661687915810578011443947331648842486319392335117232763127958211903785197056210672062511024480779797926395780584448683947574901541372262326353002035664458019285050626748906234874733565779551601932856682886808825408981585126723432676811879524703427166330919222606486569893351968382932525105332650412542562715788253964919480029880160528332547036255675753328836261815779375298349873637266088131400064847327113123686454494673954565872315892652848079458222725349225865177711640478697901128868554930184962244240542555209991556489512394413786380244421540493631517818813300344412459474525209731947296826041377855579000561099323791864254207591042815685409161314127006216046737857107740947004675670136710565335833046813839361620051458758281949635621420152952037046349462156220514819296877258011424649831765341163142043702319662103551748292108111313458057909425279600166593050585205803057241542003932115170664939503140176781776049091437954842790449484532745700593278681125577253643471207755616745671052384873322929043060316856788766820642764233704830610975282746469101095771111751947951378563463875349807341539241335076323431243382441726971898128186930694641702858202619266494342741314768750777180503436541770774172618607010133299197501344895714726507138766081663690382219657687512907528797445271531978224669248287534356751942103641458613515273203286193259969432915692169657255465184646064437705860647793235698203446147421273363621244187645442818744513590332582101218298358111990565413672799773680636989143548783230031074020028666350007442080494642559210137322764281852759167497475686946355175978700433079762804948869006405634912787580135600486910596027750209122175256738483823234724334459328953485728830773860217195278653610505047562848943250644073770578817874988918518441336247494009547557956084524840348478612424719226529006016788469281961101725085920976814305996387100720071848283103956673455900419803292349478928193680643238765359829389409921304179335075888619700188833621129866841122166045189071557765463541652472621981591788166791526926629105565402605958047756004898180673451253252381431166326894008501540181776748704275612660572226674985770038211515603296203006154523579107028601559519476460086575264115756376739134435763815808713070617476839421933354624181180994849625006393457959302608970995380904822193497841212926862158174339352648618720112961923140544570091863530770755775365630202318084913831387527752290370505776014442733112652101146075142657087228075346929022544664390454624088353421093691947904223584355574702776866494417276179880136576870456569564696827004622741028991135702374094608806495149158851785082479985838105750911237514506557026095036273955031436267758265337304191816257269325474137117786785278534494253795803295286304324801195758312929885587455068941930415589532102928766773160680065089957527490001734586811007279863834094933484846016554445713987733542237371276813486926340979542532550781991266161775052302173053601369067541613322494235503843165816063365882012391561168139874445183199814815631645393909614152613929806988900252394960104737362857781667874196765832306092857268778688335833057130886289319141839410028364656425527448617398303263216314344900834262993481554663557362708202048612329379341917125888144429032621052718440151712541765927450072228571676797244197938015517474603764120596821541338891703730795025229326514693670214933519506441778449506085055773768313369724088977866991489573842596242857884505698561637863270848686912787645802520513050653249174401376270692156251635750813851405920646926220890836647985998954821869672186433521588012669654045520701872763119194030302803683551421668316303832995194062685174409388917512524332240366100510344787390069399502990328694320064387055728929887877253244755790009683240370282591175298593584070531275956830674621764623639629983172973638526921996834718596219191358611815903469205851723401558773039207405023052685181679582058625082847591854650068620772882803783709852466309378548775989272847880438641261311698754949231987759036010026507807928444699501724545134228125942533207274222001839461166719096159564466889173829462263131132511408799839984103969215142108855433081004010009059821525567155469798715654630603072135926374581240598616252054901903161615985189563306461205272304669189742831616218777896588779325172034755996829658472406816435555233675845691643925930309711385439791103144551827279988947621021109877019948197772374694019844815175902692663591969626882474001390492624794224236718385740934027848567776054950771503104715674037192897377373651448830175958939687301573762121964765135318534190328455427205688636488808081151638510512523649470992260641769879196143972711390116643219544884198048687835700182737616690636225548189838538966880147106851583630025663976333257146212947896328605411174372794500529272969636287062189095979717379617449349716135265484050780079928894275805962085313959770756629799704020146093729539846822758353666613060262236218933602499563662318547409482761771469396179370723209711370464852692631434322898503705813761400031279717910690260491103175667052944899587948443512496495125964941989123917212721163645912776457290035538439288841147238357793341057366407322764968318828194788914884814270001156162192138891167119791536921595919047055834667698684561747817468946047001205177882567535104188538993040827270305399330551272801861670484388161374095919285218943256611012936904209392864857073025124663351949651595143680114975709597774376273969419702774376512270440256377852503580735659366170675602545373272539745009985438716301890230633742649438834767631927712869185909491082443210948917316049182811196071219737245014156608541109179655686923914843269521454996673050345423301253186134025737084211493730890551465738389767456633794183698468776780926132577861236385002870208484525115243731327376196953387878699429113769965278533802534157983521118329825027006539081053381624912335922282992517397578082240485951145632722217901948291328345353159352323920663637054435472745711101919614183056253494517806569640959679130631928951496738771570967561827564217228508437416142253570704369520515422647787570597742310611104578342673533382720731910740819013192494096962374708620774906891591349977202471443609177705220624662162846382815308494014610089861983788757500544652879057823336488917214066203421501654938572742503826733805936512847318370913901293733214005217217600255223635337974818587474977581183540198560875371494871977782229767232223527444405665334247421018573234791893347246605660248288765314320752300254027141485949516287347006868665113821682467657170304447422660599426618484156372621003846142336169788704318784088929554484509575743341714363144761855928396288795718759704033091527605458702866422111709884971649187081645889147861972755847436558810846331704736885244918642858672109968809738176493708041981815946929931552090973415250917510177056134553157733118994757758855968840046152179350059693143934421279194741108638240071409177288518808560834410283507434842079183286187432532952961976067243982139375874403534729303629809747169924590193970147954118409807135399261565753134184075306891543707904429902304524655026893172965123785069145742202874690665683813326502072570784510040496206143061806150741535302839402160672987845649401099370274576060794716740490992153482198910490487486588637494869344662821079611213402442350361053433241081147536032887789649473392115570400686683354157438583041669912682399660034734753704389376212642969803740183783183795015302692844856156812701641558073938637392261806409622637187336721163943856240537511980165208372540359720716135852940851304055468152343895431301855401384335319669328995416586070330296960351943924966937175467051449290025287382739918308320251838356528168705979451599835851930292717225609113293066701872914233601021754593764982569723836880263047782095459032949414224478967444691289856990089736809125952463096304693154778845385958909321326678203590911301325706983602003828952992178738883482269488943436437848228837138484273262558661717479979696036585354432047968916341561289582440370772615367785122370828086266937556007781620058813748535050703274817397755854989703476313767454081169796331855510993671383935609968287545007944663421935265904203266756858134485497746271480655708903976689637390773312027269736136090623828549174313623807852856034467658479177994913028489347604326347408479511186039905017656152296068099284427613454508063187827971284526005237134774957542571576876831491023199867314714422272066278195478516023169961998900803907300600466084331577739108191817339159581344973476229147027508028346370761079011118310766486470174077048103157721067611949679335581671867956265186029240867508342274913808864357710892875303130133372621665377457084025423103687263204434223952095683005654702369869582846360735263796510598180280879690005558640826467055624328235194297095982332119801628568424040705049460284833887203016775800669588885324081663405573010547468544568789825603005500143185761191688964187343819994484841225584796869070286226616446961876842284625874646333972619107371540698830935397064827610016198190923762974991366732032120048297715458374061976270187421805229109706650583820906194569936097082594590117436667600503618726511462163272317927749932871761204705173645255468538349033033958168071943827074444801145847775602354752365861388959332218425209872039688430407577253161402576302688876404528517913644713145742351220819707838899344003418666192738164528728675407977002188021080378981526710236844230704714815748619784649549514744105567379695534444187169352342826618971108722289139568049962078378527220745978103341353486361380412719040634976510056740680150106653998763122594983256944691726904222872074974425111583329918325222839155146573919718260616374514456142258337064710509078376973511063146078362770326296909216134626243714937777078695626975500331964231978547951595636475985643778820552581996162244175821243869780736195737131625191150746638825223538195581535219038243907618912148928087282947681933732903042927957276275567229102281446152186272738060979627271017613113070445169614523874401281543023697542763308951515575593749143352024443221992201033754909664690074397070535162905683287719119128933754047943742457916826860145908374891604111228988397312074055058637988717818534497141976995171626859796011010228498920726429640115636135863997337664774064471160332203985817911252474439431112167267410535341198012939170484592409737500149964058930739744646172979491320794831334012312562748320008922200842950488468640630707039239483709461081501687088630247752196184879253350953738525571301562607990593971343094338280443556584032442474698262888922212081587287045006337302364837750507752000051123510027244745430870232217921094164387326670381673349309233993171444338624376311629653507353766142789556511900599781360548719331105876497679643845214589662037098653822044429893875312671783532444281898087114692824361727078114324185875302313958304746864766602602713643000792485124855054605171484443412112977898923098605654867541255189657700487813829701286601470080855981959016381770208038699482647286682587706795647652227194897802380914473968338161632954387837937369561125187833518496783853895951951465414219711912741070263201923992047787507783190736644471886149452253358169195250097945688407367588344393424689088747798441092591510297208935615146118285834709269030542702634091803276546949633079319886182348212078956080382203204656123221840659876086911589080817160384507943782858275320101505828227905966060892276238642857783573113174234128148397997905847390149511601096705244647847212251777109562456899227621790915897736651946910754033384638614151207639539224261642660691886781961776852790942448720594166169633359890701151541296239988212964142148528518737295479699224771950141001244460339441746915747707509842645411834283203915103198617348537891398758208069148591479409794293632306832764333409683997994855929311404229255307499107030692063897187147035698909569977055518545399006865588429581304172556348385331742677302282299554035907469467808550357138805344513090641480671050107727613078105950554814371136648607527415281622733279095451514032760194073216243483538678221585197630373073027363004496980258908176834116003522839152160048250801075641115958454911210596670817496650858936919229226530163718129746806521779998058427028133298325431080586617404542009111876298692319509948809301944831732132859982532102949361790627270534773309883338236108769959645432372361355831820178544785877355383478249813784513272928196518809437669837545444321659514670272102823179307783413569434813031436847565898744984372803980804333217024949426366721482730351407458688810414444105703472250578546919446411932066024000627445950754558308218138203199405440434146937852105804069798076956629587997484550733088884699994846194858431887806926675332411775432633426844246260203937305119811529702248050862038744755951160737209377604066954195684488459269779964816043160202036315850201133707555018929563989126928856714863003889655393371818564783920557026753607515108687391418213015035122003902498062876520124474139898599605519163910365343002185594780614113906937821461539714904211792552486824016870231980944461916175475365131856073413314064735565767955129040451575364608763440466911383929120272801737268536106388647082030381860537520167972054450424735546254774638245394893035294172546004379955918917189636894488433341891916266845779541793909813177214996783959036238738828342006798998277026507098125176260511948386690672127642478817069563165525869666750507139168551330074423308925910363693168827595787987374353047472152377775263776019626384301025619649891646366805407487488171800665895008136800256219547124134760114752667981090681099810763926523223716901937320726966205701489587647622012734113667288245822548705918743580387786648768885173534518952205254486279177364977026139210297631462114187941736540217286550828971222941932112480574459831729597883031680664657042144298900786231195919736291926110170810385607976788065209362588715458037422456297954442761043130489417449464740913027325893440347805351331888607582188651145904644881245779472369445419620284525401949845469383670779466001719747939051213918482484199509066218113821071349100794442503409094701185210678348718460825432528238200014721215031605247887732002834554964872691009063610982471842401385504330271983785422082970256850630091833132112533196756640480305727014341090015291661033472787089292459697595022328640864431112040650294802489674392482876852870157944429127936724869534120499823173662575483656047935845515308805537679549456519144083919789191939705144455876949793701385042838589303056236278179776689385520446036544114099532349331954499446926959229168835100972250434686178010798552375865928632107821662565948991015593228067580126852742162746725285837360379405367401756004600358331842779337153964374143128077704874949442586689958128457015501502847401913117423557302967252224217198345271363750201994610311468349248938800820719054106980355856300894660609177904062765220001140688872514210850949119361124175287568283619012188650518711454933923191462430868676920731540537536494691395708282834251832662718507804932398712185413106526253488865336359592774070548161936006382033830563085041170281559183109645495356998631531670783577294746173637301071191364282672077484356229123399385956078886868132405302597739973963492862193374286461615777975634856434681584760844424715616116796987756331535781576511232835936744736917703798178769107795097703911006639078950249543472282733159261383206980292629989745578815289621631808853492422577565069357804797404519083721186289750350321399813773107665652540533422075482260214841108464834189461821230646541611811397640512088883851742178152231436758639581839378867658586365881910876108405140629965319532144752869230712365494107971437708001733273260317671518154553873167276194726981482788484809521685083932872336718510008833394452228183153876062915366501225095374236800447708659424419518067238333223027562136165080924030265757845068717138899150555332812260689118231347555355828200137087694972655537202310611833679443651622241124032828883560254951645447329015464296911656799934898483947459395434361982014875642874973263736541725820570942879499676855853641423109803570925137760404854323180147924109931826041507587244991327935609983294949357958726782585932246881100875621859630765975651016518595853400517942681334061294663633100321748063569234431591676849572820505455893076212559454093892956506871434901059126809412609000026536245759707205634374285037572777736069206680885611513250199243599480515717665599826844499801927419966357117892779023424032751695087316200819039267935741241643834660599832395708885606840660711782465354082194916791367362606161138588463086530078264533418263508977239457333074517946860530645981300245533172233786500313528521402666025729131702690060728130848829403797086361361534871884762447174990523243479674379694739901676740774783529217661951681749612145810398435456600416273953986054983563363676393522277865122484777090106553050604973546286104400211047201485028418782534293305005320244277343105800493024743942768151551032123116120520769475149396908444059796370239152472305314628190356879807733688414801685436790177401171910974369574712682164061750790604290844883268379246139747618940899260976935363707964215179709259233940238480633740251234891843941840913409801962784233320962641936322294038916805703096878850637135246244948081224987660182382263142044524500785811198110792303212898910282445029528782458308654842177437362878705465438786865592332691122271527423171111139708728457925991551424750193288505862724453615630663796027351241532574392719415204788681119708325188743103198538360761293712783448723929271869454615507141894945454604628707152945671970435048325441737181844027441689795020423080818329488378817924402427070728246665880661548473937186890800830174447679455853386027813424618483205776901124965574771860139614350593948329658076378621738530559934554330119703126350197174137877726614676668161013557919788472481272263565636461655442888317862913426537988749224016742711918423645838677447246768076162314985073606587983981416652494524862269569776512849084000788566124784548708116567494295239404978247970478673264106156947070798830331311911243413912043201785865403114362007200269418819500110105000765407035782117142861468776967618247698089889608476302242547770545104121220594839601663470325213719329908349820527722536399975813640902756638582383065379361454082558053062990271597860352831310068796295764233679926450274631798276794365465580577489043569348629504844126208501799222937824938550410316246260357400899936490945078978530595760416633148884590540313302460151672711849192407636678413124234401530572833018809148488280076382460172258472376236833175210060404542005379909518261542945897387258856629186963406221807194641228021521793958726994172489926728064465728789589561739418241585232974303152685926564088555155880310365294694495171851283705476890097147153830578431294968387394289978331337023451290884079634977653061668382371652406258830236521168308790735283535025475719964832181938533885908032736998147760455529911074616706765104461338700184168949444115175792785884552638365210946080729587824154376905919429263038376982579091459696923857252585818410660825437775941349397106255931072655093135725009245212468652391914733081476071625448000537846676747525243592856037967521274331644664054152719874808218275246842361426123211280888265826508237249052073892798513256063045992355261512871565668040302638606732468227601504546664139485275655167951790008243476490209854154924552292775887515715978279114426314282129984861099876088290582732522497096269412995584243545197110961587117316154563430988411126233553942785449750711601189618425563744947505291037791802113336508512199855928115957418368199772718474790346279962093897139976403217653825706775317326362385240814376137811887627792776212276269469057891195919696090701052701396468801666316845152285258583028569421750774208056550943518371946753790817233501538032053951835274380871173106670558404789315607374314711683723096043702255957324001762010377444744084967922425910815641047126512956327736053517113135431466749411269226054174090032343594680376966005843601758209318968527529846526940408753157906494890892009116065015060622022267674722253680476160113041854308118079344410021527314268219447493649556031881970900289981401179967920527476238045434759887556984205272130478147014626516173352506916699967526580660967762687037141170239103730166734257955574808389895427944647444707623544190228633528056992420464328706011638785403148505344029955572796554350199714430833724145606039464522580704069068162096818725451881778028433547716550362460362812576084116261876669774745070501370723714814807553145615731443980687635222551656867114465849503428869404439761847943047291635070428624838194600416096320520500976552676466344263733338152363970562963324563408087785132382177492920511054418646668948485581285184922306390684193949551515985707966049208798533040565837947556522446710253923690055824115351617470281564492363978254858159856334675838858550270655168006602084782587319232063698350111585701246398547553493791918568366528965582042433510434307008203001625543315665767135601502624916990990660970514554666033852413363256997047324304117448988458334064455145923162984769462723396146730567604027024531333641117197834365491216580486624600853607533860902092909250247182534760382925650230682651707839724313448269965273758745207146604167536399058671195799942290329874340213542190191964097126866746456465615858828169280827311323476207879594327661141157628049019602636311550838343797531421201290802718848877758175156353254428924229608878401812755935492327239839030834733475185641152444491051785099261399578168060261066505056398618725767887539822349454233293869880147630148269008442129879584166023595802489726760703276452777711943955466127541543532499269529029237579470194915900927466468539413758524830500902013574118526219921478863497478908957492678991249936574429368490973633791890192076603621513090600364389978336245916846740579104747432282233541287592024639451312306542756459621956557196088332691659286770734641747213872963563374732779367590653680762490774380108056960474634692677074722789008498829923663272604038174086799339788991760023625975925865659323826505921968613087355372412649987969206129075095565852747625547664073254355390586574908094069431141219915265752830581703199993216805654898660453638872575801935775381704654969265582809496665964615196995772298504880858103611501675046343317571424889454049600470025845340719876216358043291290612081257041109596479577609509358115154758542428697541980044207199524062548341053620495005812549034747260748140602657090297886647144959594220969571900826387033603888655213417276763432811254197773368384212243334054101493784484293755767029942591865208250915895010966361616914821679688740011833465065625612545639363159201668095640708987721907099076952066935668321429510377902560081059361955260941940421245084844136268027238404026281220268787669745280889313570150839901840501521207168836118810611695983954323135836609239657144956422192645950926833580103008798032719564080646252066365892658983974555239560311218248008533472232177781149516844390294930870563667869195517208147508461210237891281605387644200579929749413924272653546039774018136695386261528072784987358281842286417529714598170646065151982242572845471244727339731335333066309757508719794823217023800718661162202537673524519185376465262898299003837159076541125681047304053815780794430574995196603805119259657623693026787620999365160625772515675693921905548546157579584985488243666562078736601040926938171424779207978034047566946091988140088543565590855299131638323516361549284758103971964885723587020259901304524683428144187209056272245092748339124184375721340311263435731839295863185191123238370894583553846893362468628649259695128354141607041806062888669880639438972662766128093014712329062475365013710228475392709132497779401593948004084226370452046577187640782119902005701067508234698833164432834922391775900281974196010617767250522040192960400216171895559975439743157352612897400435442598764477579325330100110932010200404151836806865135491388516207128899962102508719411387556948891175958092280818481368925194981210703285827757952888440077041087235483626375191296124748108591496829909680501970545669022235789441524139135572380694039293614971477873985963964423933999272422606616317124928495021876953830655739276969983824693154795584967675910251838728862901167581111516084276340744749286245610107962761221125007983773887036241588084995211893035951009353779967347169752797434694134823791729582768283118061458609937611914999972639411830709164819408973790722316346009889751834507772822836048240781379964108844634829058633739209149505275025283947009066348483185442852434687673214277554497850061579833529580838687882697464560909930822953742180151396769172168451420221747231487635813521321553180775014720425673551818350402114788708651143465543085896812806585371602118826156434166339757384082304537423520346933170977504888360521250037822497800323216940668252725800823268436231127427519109158259667154561368215432736248572585748950539600175756252807355594845389768994667681861627421722689634011768030321383703566612507800318472523279164391020609331730929544092226976989249950468714157071246223861279644716905916438651082033348430397414089310892325082591876179916778363339143326873083579663109328832993289371891615410488999567860192794582061573177016646876252701767326554347848426935279317296506343946993495798171084842167679194852316811561061388526087949259728214855759470857733494901829354361341003586583145599677164643638632086381614944155025679617059325425122139222573931374794692995965460393052085833433910824564838106894343416943620313445284555538206113260295157692770137752521826010586839019613170174850006909703555864530700320625526515393306506753286555167272116986915841846753449839636213005153723441218234300658271372237382413726331757619726206801432407071539559184828447811228342880891412265115228096388133441414406215400042459266680614644235458133774552131266181796392544401372097293192623636474266851396258122399798553595690936629130402763759550681652980724174332075433557424317108398387715247622124164847530011637541653137201556866674452157308901594352782253691634040754067596572687016872212932263051751880458538257489022692685765910481140026877529585618532815664399380802478598364247742376280834954820071846080067792755836579667788950313081629867263128473754520894966747867060636917572337031647198389555039757093411426224050633495906829955654884007892568092700922765751730248994366570921787487116406490944059987141687209587180536968351513264902790654428743206719830206421510261859103039898619395748343950716229026849767815884086386148786480006145883569838048663282784735598599178607269680587125753222331795293594950451202843705798230525020527857002624878506305683449321077193512137559099790946593585523212583781837901798354446913723685293438836323288198890699767211381400927003431959463013476150051306158292085623799755692905721746332458503097544030759466160177089632490365298160539504996799890074018542326345313285761323741477561436417969011431172840594288296309416157080904193543999930473675103267142016770154145891753845298119788946014270858017630231361512954843344826892317061628599162391819044671308761577238720357053525995463778234169635098194379074572840065277794241123559587152649192822358858294525129737225688875818507714007343310437646622299037109791718836481291276291383112580971525893283585456740736085148248981330316303242182045437619309596613184606228255574447777422302305085959526131637440251139250174975520332749022238905169744268817476662433692552896856613996246023757429885636889756927610935708870751159977120578632671650876447520677160837009112814724042336576425069794817310266482867614951005412150977853349213766108595914198416629779791347255209631509770674660625651884784650902785676609498442439915454748066896488314799092576748679193099389377920992483211701040691382111536642177603922563183742994473809549265821529731970171699162461100758499290726100234393406482457638592181691397559807609785897864627673737679401315497754527145572227611751246452907522042661881435224600526567964325577762819126517174352299855831167281540508543708007950741665406681067026731438415224334505949866522444773844393911347576843713676289545226410627369496852305690917994233982739888174968106978356345959904484712134294625187425016743377484137988873958101759848724988846186321797311459880649892412683149057107914240952264270587290577137808849958593273129537516778825199404275389636174122175910246793360392795439931509729610669939669567031073730018778197083261836424527731077958326132273481514017387289971880543865138306819935134970414680721941204131862760856574310415402605385845621950814171311659333699174909077502074223197587688505005987979846883244229893540915315685452444785603860624005625036240651423521889281332012839179230822407388985742695950507131115895140054285655595486242278687550791501902278148836426981165448291981299133834040838542496830878479273634725157404059198080286542242370467650372036470727021786127522085400946766563552862321081334300569194440910995056531533923260648242715387348565143092696196486227764332188754069223516696757609908098550576580829188087124566188659559325165706720140659643805019790587884561092275159081605830805176124495626461829395188300937970986628517896574274522737703475984319326498484462252548407473810911210700242637227766879660153502265955047162302843150240637037480380336098934801198125234158304989842514215609684295907896200751258486628918217351540130785995825786593768715325768170832539064822626680162663575237249779274867541317577130342226298580882852137249826848553728299214246666003037299721590133350781009055487252619959573223662167685699998737386663869332164510547746003216168922399476891991696441523463869680116372662759029543170812200227444010993150580146407717673793177054848622710904075851696417981812978202108195810524339848676675179600215307594872539671622952974571322458102679773772720056117903469625709678424422637283512542560611861830270780569848619973685388054525533526216733086435695776239285767174592299790873482489840802483860266794565654585992133209436664721450093932716993659959895968324394889907938956122603029854643013665965249760974366944132349325400039381473991596250825977708535229959562153510986587636098543338898328542902133268787361861304458200533106428956399310338253513344392422622955168949751368461710024928537063734580640882087119266488434500254882883334801962740039029592224815356153946157863079685848008866641179190509369289765366718036316123947003659930645878938328206801876304316849521889806260776546975916107777069473614618963582541411565971511624078220340344804049012709345815883240654264794862783664370608007773231871877008125968911446043642972964431325540913950157011094263505653671215982346004583492302103769077416777645001637108793338942591956337388903857732006010064229847348839341825121455276012235959933071423235638870167951451296546182169603216330934905109278995048692343068274033786437834113165532695590123828455598275198384775246628705772679709542037720423648048063941967932183147230262556261798415730812746950713107808367536942406790062205112365104024949319312449779064613060623971300817292601499875875622724367425100176195253563555733728164526316315807683984066870995676727029772767014115084136843587493699201345405632858717103498482862276408986238924771430783856178548630395458526844936636998943634273522799638400216204035440930915156866911794050651481887263013294803560327071787708467556371736456113328205271985059938593341494004644758224690350138342367722574182016229778865534511556197642939302336355522530495650844551438887617317060465062884571593491264429737435674516914606971104943587669307874672147038176770410882329881968836350081303966175681307135567389870877916163473596428986846387707755799860451025345961590134788178092895406576183965745967960332171876798787717253150420080427063943525712594870986972564710593121598485109287916461221398160710387666063721889177338776112583224803704923375880320833780795748199321508678072776870548520854507557076579816526165465153493320609359748985012755947439921620844690588237312670780237059477288300028216436896143046708313991967157072346981060657376010354679734654929731070132510153656030259885654041339216232181489076806269226570205286611748733437109635287494452290737682248143496861750683298066083740842007632275667386212869652136223716021682080864601039489531647716335181443858207931352727933359901585375446578527906924562751874262175607125430754221527700918774437159949776602107272724119776277810332673071185555737163959874549146507833753717509772546018791359409629148489034114192603743943528749010347567281556070837425892026047332082798257905011607620058656986532388835093820187736122101812952582809581082246560671666336775928913438065101505100896525354501813434370865856855784688225126790911403594158640856302955843141176774521408703228862124617885873295936571258638724871906865852357001034389603490947708666324357818117971476949995549420133481255922512612250069697824844513521778439542387641602261756712302765273922663631607602740431131133833966571094732105427746245153005909592272522123053400805438429041177294703777719217234570861355559844499808393063329514262037489692189941511790293771687865616289529285134260995829785373552965577315444762575988079927621251732024339729766296212393206518671521083270414795713765109011565899785782662003568080099996627498150150562184638017981287673504907127318460681194556022460002136306128007781339717057007841720305105908464046590339566293929089498738427092819808874243272028817165337815151442373656492416661284565398742285420539436730488113163073277515117936849224445118944299628088274612842986456728638648782750045918046728382014249390743493463657708579194225106448361268798210624485826368826626926041493869154079814107311364631370444562415618560781011261069191092358127634222503935221429230600562250112517120251007795181470131186702060224159517145652998169923546464651619358237529989359789740323135179060729939514411265995488741016172362305049262655752289037439201411758004901776697032609945804497400496461166677643523830340573171584115600374417056221871023031328108224202110912096678070614279676794346351016382859669424445235678629534032523946228216525809841233527275517067034609814567869880626258460672675366406383870484653633860163592754359802257994904749852079310516101883364871052729794473053898276282365737497927048126442173364647762231509185255371232645707569985073707894195320477289298705544874845068506378369861962768727965483089438904375836150694954361715178627700487685471331903330792801656706755971747199661603075970933186720721198335452111160633163801162047081949697555908310638043682805496316274969213389188398702535057745277559392284732091494772535902904747801939271513417156631919053814085160207415145306901878039412044112047144354453548869495078339411841396894581587729325700079132367662224675475853769167934951878429475081482795855210213904580210616783419665512627903999229817065124127958677005809580186945277228805597056449115617530930157788409859899702596218107614925871361885783123997694137782252596206720522502341166433509315657453789183078423732330969025873690467081372360341386036806252305755578974974086402741706134967954225350341959180492731426900773322834997008014585653618151450032129823981780995326355267291223714263476922545393221779907790469024242417928081980186344423133912787946384991233472178789278041635688174941017103428772871737085340156638458115883454248740489163922071215735259843988519951156692973011421969772334651475112963853568661619334960745190361535446979564681022274587974398323509524838205108546194249178239260347938158758447931590476827266236363064454893920207467821000255645763177102073445172588992862186712805290570962461317548381562251337381268746421882051699040852307369767770149190994331725081811798436052438422596977862679637171986641179115234606858471383719579111680608335359478170028347217258372892672809528203967023175286340096577224655488409704143550440709168351499102759601916317511564180684670798544114853246148547987144545154976345242302834820252642192350263677453434499500854014305259712161754615450198277984213753168443370063489158060367232564142487711332636208003545040700336175486645648358784504709393958509711489861584569370676482431111569927246234958135624997286316619412076014260483036543601535978888799152777169502920023036368368008116677788574011158687148025563408638730816042147121447356520959845023168229716960344934223307354040440844469790135896130911108099202193811081245186356494405969288943298265257877614365070858832763711906343360579523668385161409750746607044442105998859018647633537185035647999817448081377762338379450601344843514419954456378679671210262926234335633218565912410651034919250344255095763577851172941199142029173628730703260037034807301754100247273385255180008808648962946472685320398209255651657454659799080070818292478803150189782488708673712972590442495385049812927081210824356605833323459900731696055429118642324554379832866058562080416775598502208873586384949249215588623354030166896925308881372213832355375481108111675469533026546205469690530513359394994154784662271558305440073164953802149138851117499687313722851963746759337982736081318378063252580972466813784887413066032967191665182147672734467572302918189062719856553560209892389033652975227178078652900261494023675262213467928792460720109548777158902430353150738577364387419164972189726321098552281322337180605860065337404163188443602087632208018147276265509728434753679908963073006506022958298323596481618683411547369364652952447402181095935539253159608927536576544809762309195835903878145675571332154021129333720583407045114925274396464563868211630894485373662074166848687271430221247594374248019930947195053263633048552293852405328187607123180773237335239712215037898561659708363802274068366191340955972350309617315357278446971657468629343519227387889762247155541170284187915506992204470782039350196179499801832951257772468491692216222950386874456239307398681911615341999324814520472417937512961703344775547673842105979773104100892204033003526461149006240284735528457010352456432288179604704666556132832407800057652057956187036680939262273449845586463503217622780381260023205303161383819157131763172395822725425429367503673492700365596475003006903233003321873569451227794272941752447424316705910337963109281864251926997020207575470436488362385157886590762028293104089002730397081078250264687536380881039099095551715110807895635355252963956634430708378828859744101809337280486841844141174739575368231867170541043028421664940413722851413868700922615302067892822228258337508404764742953849182494166439978123700539732689914685181223817712046798836700511941254659595041290305498638192450161244850190887038334261147380575830166224391496475574697707425565245576330584170995013249449524861098804757037452416154007789541842556743261012266354734348037026699114048757423218945058798322719701627611299043366405033688419752459107090746729815620537111570141437236025460513285550056895058906115287274479168685868597117208251444105371454606808849258734229670885929870119636345720288074071137050074600480720235842472318183402330067274730790207404011289795341951613149897358941873752473501489266336608768531362802780725757254281888035956745108440204940865935914787148035212443404958665062941497340326850429079103540465591481327152317214301036256954825695758665356999185010439785527460726257707026532727710646107906591372199169607795323932775024917253797952186387687425621203911083623735180855938372393643810537952464002603875275316465796839547128346969772998605129928599842654241030793939383519822805257821728456408926366186131786149422808962035838229550070017271694335882795003633162888303382391782578393315423885052924464935609848950408992239493907225546581394830634855059497837809101774699894406017017168591736382543348825201984134600522702555646152280866829687408882651930785033528347171271900950930799035384142255653317175664207409326562162817171624038221662861747832936909004805257067676491088646225643171705017371376342318054911901033618787263910252905603737632022628034237128066243115127304700567092034564762449784555910337501950827935578204430913776670158972198938953200690716752406792465882150863397345335137741336699138859416970953968243855318732362238407318636008116859705351757052609960363602417811568080664394910351773514591908670160247952523961503437647018598718692724654029725646726506426765096715348404405537211654040057659130641167008987781152432776751053818454600903762130707710406214415556052836083614367596910803719821899743133596371394431079264996076013072074740104043623033006315701180130052593797166831373093142915611263331565231112075149103659188413083221540568501240279613503697131865824814287846943018622563192398614095079076359320489363141808870910983674706527097139605818007358806281209485244888731682883569665717515708572450933717941805493983534919759687823328590239384534451151333538448576748784047614782939960095520056068625668027795378209852353595523807935279260780162225186966422274578887782201982258394918597383678339804579930647554133663461969093031191503106690643716094787963356643884110655396715045123387203987669333247654396628336568736486009089750439772941044286813120323052426840941153555462807732815444575372460477830391152134333863833803721364387521765932308419446072063912071878772917705985402026297637534504074787124747316877055178630609689139030219782263949676079986060424818070912784679316177415728413142982052680519925917005622005495801710444942657981110123007490779013919835284085869011676482158506730303628477192195035358348178504872407620732447590571358952298293737344538887296036801960831978465387998344321008642492943296580053199197109911406375284829896106829230376296470645233865713004913675089943834943896283984634047402791426215682952793733336422405698817012988150931074677107981397337083407891596349013965860238811224917634923009122769208003620710267849226143110603716020211965521530188392408840663531033036764843013356709289655668834335308097245053681273815810142326885903619416160689943820876742883601417838284050090865372915842619838708245647256955612406843495497801105969443381813773015068060340400294314228763173968516563429287175479281318893499739645939985911986584957314791762490728309934190163328076725972782323085561540535829857218195719021857091252675566915635158209446585597217377055149193698031796059654504572403680732452579068518768076841331990817432281972364210977035354778557544228883560652119707248607780844287669427246747009268020966618604744216967236775533983935392511868689945957471065305939747971016754430006209153613054213331221368547805121055788365126994656701954129296866671890553231934903435383581346114001416394116597335919664321539004622439989478386658588214803251633736186653552239689533966149000748724967595240828225481936570507383493553870998570976638603547943894751106245084756812757770387543576100712238065437405668036042873001559650540611791070143146075496143055755819007624287918126595933214777446478357087625387179468579710722988185078402409529908068404361096276549121780675212988970949078751699292772137872416485892687167776497290247454241262783714367934210675805873572376577867030807564369689083504781841412992516208378184621886448333323261321549300467240130329855307637685085888122737051603933459040159959447289440955832453194245969990642964138022978727924985416127215336008288911218098622754898883693502498367347209686312544061778829550519963659140534496640343783566148816326687974215742330724156025522038701374823318649059856521654234732260094708812564474814977642060376370551437166620848862235245333001437105167204086610472231269552221120126850127169696775285582842692502767871600203181920593102307348131969430756202216764639843174369514191715031421119853410792382482783147017881948800890026193870407935787990155143561655135755222640331466980590502820956459141237008379938231234940427079904335839712734423995792776197924440382816990983246414511406846606592790253398923756645565924633905095139532559407037288955072181235285037189378292817797276282076344536387983685545506575890598574668330045849350710950883818834541150252847195956343199551486216280813113682231123584449096574375126706375229818764317135715557931881196154467803707015988526437007844859037648543911879315929699619670737723014143141400984166483465022604348209017999155522154197997505249727789595917557503729009537928188203402289073194779744318781865220975491565743414227768449508083313443902318498032872105564201311612737902157940059503984444579765226958006473363141413230509079231620735444222413543904412290210059716020986506417571673901274461305065057154998998629956856085721083577565548025882633698338215264108754001783320027295173976686070748139247868539242056839207229541614720714615570546558640464182241013633905446069467583508928950159477828223968238728413899514208867304745007513379413309892953493383576448272200557457907334919385877828972387988355547472252916464602244915498541781410444328154651325262170284458060309750094301259784591470706783154981628156872613990729317618407029973922938127649989832525978075006245286995293639671883968980995010612559320723265409333549933330384191875388957958367649059062209272175701528838183927516362678206550388986325469606215760754155350267444916590844773580818928665853516106242863803692715824717747489616051656231281868954418620041869281737687864379398249681965007761198146807827955731944095025435128654407860159290645057631644687654841304811958965021666008333375133797714548221495520092294855478539526419924240035645551959168207206009383501033653385414820419015531592476455503166536404226929351856235205407298171706146340219386282496110683994606103731211944755950993180878241332099405572766584138474918653581105606690988338475896744786407887101769625027410835560090470681909468425595332336878457980914447425767273851703892193284302630149908322498881306269509147769414217635262700338353734708960617126610478836818931898189893623824516751955457217208148339527936158238102560411467447173248849482450154995016350172899393849197164349966273383317363927317836506092705267399150113756416040933921226169173134814049873291298328904770965952240867041852114274784278182282882355840075978484420651128355232113869295892090466558487764646153101604046557499534670774670504344072922628592796442610865557247591083764916435137134627088695516667388470938760077496106019320504596513431458615935708516036582105924139444387178030295966871546453817299369384875702066920890365971927802851166557686803573779811980337876803457347332812184675064226523449944303550267396840649099562015490159053646808171224983070293027189192902067371879953357618141672705787374294943374747616298135901791876734011878449253006251147262429708809536667573026474711281074074161552882173298821203647401294580916247201803619216051026389013532998667109215510473530622975071589304441158083521534368442674932684368068164090231557675998599177977417612621568731515428448401636610452467146392589857695300481652198084543696491360137508058847949938966050705015648709193522374379230550948184176306362486648354366633769365468085356039073670402102417527183655030116558653193311690802443794001893774186704551647402872704832832194119404330271472091954901386045807134613571713845046787288473655334581911660293731479402361912196123123989505204973250199994106374976553833958332201982023442495261101378444467845273282305187053851818629761314283061809711209625008249005090390559252210824027862735020665375301844431035754939284963246065859969084926838102165824785714540727886420823078396362910377642804950078799604949365598692878442067542861596202082425943832513854091611217521871262320679846549386271587307235079649207087310532432632275616325511724987915973906418534913202840052846915247021762982722523123266019627126581446666902947710631741947825574168432298861311401127949646599220935261040458002721776583057420659235674459515336596760742674340680002983701612595951894741239078647319345522064947209011844828379562691291623669968513786416891420551825662170530452263506377546191718635860627617736156880548478766793613661139840427728700250508020929792363868655059964340835538975492913975907646940829396705574319334013798770194079582669072712252607096705154660522905636127603797102676890039599798323880822600335940067055777105162928329756485239355998517801403404441682003405450423558470673837925398161087169116986201976279004235565275044739099006581894928487601811906178878972515060714949818579793987621219825929554081045236263133216345263774077546199728198095850266435343374260643198833183345499602419281758918038860481750535445862582503333712091228757739769978660725790290639862930789536675961394986784862751089859676452264157021390517913353204570138654452958763819798592604783259432280129414186618744095749158138365207254673442364758412397857097799694230183960686448938062060488839954757555119830812984894068135365569406937016312261363201575345874245407926973546008536357388673257749962503916005424156754151802710899363936798065150254922641584676602789249761933643337917760700820519977790544686795378386015371601866136025207398026932908015534285811272527773951814090877907140953419762700730979357546710719453091767118724720793294167707426699699657079405617423781787398675107236398239497663525184620459002714491153367208806697416978076099787630966124302420023690063517596163794515851990287560590049305107866664988200680001195093454131241524885264682964842543340033749862299640474327346276152546339434994518449843449362582188467940583347261771390450067028039080355380081594501989570665088067992232992352644996459403249318748355784883046327343646543860211662249482884969839381418665285942955026938938449452758285026558685222295534784322535929213216250703722348472892776203666958717350031932980336731798977092481342397527241771845262231142586178436668859950958549945730745871511289648925918259628805940129771898634618082386126677441320096915626423858481285920132644877414690552364971079631826522812870890751565215221270586737637967287408496924409944715768472968616343523381940590314191365923178865333762179742021929813062217869626622714548353081684809289357033969133303171986570472818025834317560273789629199717948081475120965116836875054524774611635062899357183836797363012623469871935198374038672529273711183871836061371755981032446822563329661716672140501790462317133806392201684453910157892978326428053964984066819113958514937485524309605188284139180042490707401286635437313502490017416983029318963319227611081123387270681559886557872721560894992346624467089628159639553696886815675823670137909447476845349563623449911198614171128984160940886219110597871163611206336974556607270489720398734455261238723126772126652503638801540330085199981050814172328292646491269262776936647190838715353343093030631719422515726075199910121308427222494202167279670003219666845787261443087457344214791256432200717527608279081743750909106418157712878470578243893107895480206371873699164367047088983624522545009835825013381571807578265075884884975842049225511043471583558314091242138406063374539983994714388441150709370162591168688539343425451041514607339030689735813768413472444094766848059991393288747595597875771534123724801715117053376269363971487640922721409106738701910422787948038796614375787325919975780331529311318839743154943307271929337281371784337393166527505505735331920231172972441912716562544513072932128829938736180075433416551702573033323225159219941499922034850465979802241427966468901136244607492470298047933980037315827978151215277201688447370848842047030849682919222390497599325495170685830580134348361671973962494144911230447125353834981829391960526791808262430228396023357755474260000615048432414818837039426016396882690580388931191102954567999387855774940852551966577984554222749426486239068269134477130798428985589986051831489837079553570318674450807726468885745784186522851244805605795569818348152353012029099994094647402637414250257138157468669466895841253306995731293256103225338567089223935077878169731012051238072094800083777952490382234799486810601445865505450902446653238351389744258775644749349001725301035326263947570034667333384042916467002490847423158165802149722993173659261900102138350295074609617478699888493761668324951044101316698436229103268875813904806588274983869784409038120505107576190544191142407703570728401458456840543744791705137301652821822177435950624810020117836687340404071623108226178040857160439428481761892371380881538515081928818967448752076611960103003970643970441150958618078853650963357830567153212388794679519022700661075367854594982442313504645840246671818710873314385260784862199643703421624555864442160822825061277525362846186080325332841032947238987054759812019933306159578203924602463503355376335639150504891931208229379856506175416174225761485816505177418951989597237055603559942061179659435134378398973709950344272179184052829494566923590037743012285883464884008294582155712426800896410096521464702689803589330466022174217591606299931858288804424584417261793861080861638673584834442059692739043206410751371807311818070935449329981664470721820239038458556997715200793229681342602891727652912792779159917741842423131644525298253432749285454768653005464173384908109874970498974919275450825834086664967493809686764015935593981836958620964333893992830572523638287494385823368079978744876089296247827939345422678641907454270465155715317065545804646092515071109895748639980948232600464924232289040484796830629472583811760065409142738483421364023538144831953295396663274247636922965743066434167435204357692541053083838946263104653467369762138221525670648938549981178809991564403206296234293322299926002398326225640180728210871604063815889943257440113536166806903312526619627489596814572207700383930840725259412147345706566496377668137763070345686169497964688063439858324429722775753579857765807402818241982024336111636472645515870409859445636558200186821906587128304941620562588004594112198805154326760133613815607905062559214833048359976354047212497406287097991654124457839965246881014150064121172883494790096931471769748507898079739146508190794553071071597938316034960210374054157830995562936153524850657258377445173100598887754709991559600357681529207442681844917908424455190853170962985884439675213536822955377457479568464256797488769164710898522417947746483695575771103405226055605872407944371624697751028229843605249909629483934816217804808984016914252412554766782723787870254591330358571795510331918561783199389468991088577334824296087658415805562616462643266671651377104925354117025024310186357331658049075715059829354636312909673439608233538978850567889732963660131519789288028187314402442222617890635319803329386118086727225863582963783025777203654837461461157326983213109743820566508887633911793331382959815793355617403831574198106725149337871066538194218944291147674500972390006891202888110657014653417125555796172546100024994600906289483370658722633924142633127384799321252571342215947000627313957117568383272585456092957009388975699271311982604108238887572371927970180641710968505940569721257873677038811673848264556373047758917368713921560709263522005721680283846082210391391153221302154981680471902060493396279700961820181142473057207052153523218822376385411728244140656053107540533388041044495122091643310491928515483719234440814542661665530693148128332045664319342706879411850895965842712865442065062847696954559851301859634813672550134425579082079392514853914498741440677835189452996218509103481337628049694924787484369645019660151477892616800152049780068565438639312580650012563856290125387702626655560968601596834203534908231005058955299515746294821339534721159786581107045472913406289057405816812547311235673729815371296025658936820285466798298720302946407587560158890026527738310826780209670935680228509292914925793733164572554268051570192595630574593508851202028452114675083325005025833277364896173228948508847870266046455117948224265442927189856669292489188366730472288115192348277761636365634071450742551320798830691996037796338591429851679146140326861411388335475034354202055098597158407168890568218590400237762558937561435698245195314739472540831717902435283783586529859602274617365619798859321208196231840176490944360818686245905668936906924145684874339782506083844354796332849401548573741798933046375404307903261493064212866296910736444367283286616234635928888736252846441994719434518014293187791520591052111200618177049410195892861318643062343300861026983658578862087733151575090993211917213293268590204923946882278819529926675629858110756166743584207721889631880582965968324209913404978358548155597867541940658657540103149194973457267304600877481134295753086825766751838910701744789306097639321655667229252494588843891589044918758686743020841992617513312805944340981794687290930181712763242985116439699083307425596971522765117480573840855220308652821528363912409575902003767536399788162918613581078205628372959832014046612148450508959701271223239651345305502053602342410011826209126246004516365585431360253752436877117500232042247248792696918994482385017209518007354665293225377270053867700263251904761591083487491323291088836658904417067839416562713469000054534404580331689406585999493667096622966841697821416191034097128425389298071195807703036434422502302761055788360461295566279709111420098416274557831375180562677485650936690773580318098464797400097104302247970844592694352124971811269489534550275161014377407435725116232866972038519193975049228451290038979028787096257730531113445627970513898584238536506828457596549194260688981830788076478143584155263849939433988285075569011288443417424977581596277920556134758864795521201933691274512417627175241974890815285028670727407408883729777285729663354767516900097951450469415862633298555921494872565867232332677624556633297609375988722890346399097846108584688267317639115314163632012608585375986225585148673363400346725616603892172027246992494502369876825472142863300760430063530492621830128911005147310728950440695680467332403677787914382104896455961995625079184237730750423473543969435963551596612521004341583640114514360173414395863415476655268442856158231715159178510955684049293897676715213792551630189035997907239800074515994118910566713963004581205451214094151600968931637732428567005697870975217789374391867690163794216117702986709273981837053417380932605045851865160169058214142424233744652370519645122202558467271999817253779186435471796593847765106963683510684969145458727362671467019970743884962852341403314623303679735280582030734751378491113663077455611258558211825760235650089028428373723493937967214874111864835452675537859328714302210852035189186876642041592290470820888170829857556749725179648124892101408949966696011992359231789231866621441543909371302964714197906687324777212934384009965065652924670858007773197661531443430082492409338798987035464471961871269358463610780582518653999554922484876691352273864427354583990100673352929544081214111968141646878585949826151547556641832545934472522574237538358877973822983991871063988406630930659688534701761811799718414243738258509409099019522695891766995496166552892116971639044306693602929863306895002426135566695217432137207253068931575671871088648285783351708580807657172124677025450036510240942636664489631348355754241808462517582904967348754519178111564632929645646763814623376816380806638527163143758821015443848687489990830421375743235598047243688887678071593138006515624456731416112772774137513776341298014610115559246069297803768605671933611489350892617912506749403560166395818487293809657146939216292598718083117539852484737687998624771527187116808738882756131965050264157006146351915960861115302421988864317256882555021171374356974932060542189415884333457092166097248856533236888400774806032175342045594461918969001238999553756388963670383373245577260708069679927874811998820467093183310487119832859230557124662030231948993800481398835897456605118376193164732077951252878078457127875515492588866705555336173153207543420553092523557086238484975182881586528801501990282555465292975712288428797845337332844199537807393941668254562944572040362351315714143768389545927388026341094314354927516722762308338348402816212984773888316949370970772906845646410512354222107293272593461075991189430675444769615472608485457823985105758542365715111213558151809839876179504898141005055866582502303319859807134782409176288140064481612620056199115255361809562822356870281128622105702912932396278087630219724845201913010011343130447760748377035886029331299442641308469711963363137222733970146857127905518268766621355171584138991008536542151828432580027610183716967100143695056163700305261079522156609473052784996264022660821294740448144792179728848429520154533060647941014239204754746009401419595400299400634964070699435066805663835672215110498713440630754572074835535026775204528754202187650802657105534207570837416545915920477275336877572016270354722960887779020641978853999615559279151727010790460739845554155538318564280764208808121219921355678084174605974014981128820026917785695149107490862627576227098628626423597778266805398070231449810654000304020334536722640910041234248888455932626849541084369187897551916385830732903611538673878932590994686115962536121242485558383541330691940120995551534935146929490813563695606248021473337219493215071212574844663572241006792387238731044399346919999928824152555398545160322973856242334487763204910384055368982435800300601414852841797061836542357768384091179945367287908278201898637756667546680579933546076462518019804348275827403765289169771280011875703383317668864404381851512353163914996879659674561389530357423603993218302468702736308704667649647755677981109772142172314614805062149179882984401880517157986731645242693778967133181070996925917789488097775053517927688125524910404216692716281530925444246037395964086507896999266184644564036791893920452270021052384539015162251614893800427447187199199777851314563463185393718619660463822930523923076581728435650058166994913920902503407884615459301327272695310160020656874354656479612418109896299125546972933039855383040583880759880388091778322515858165960817983525093783382494116308878397552131402995127297585937834664810070264507870546007068123347960202363180142932854097251934595448878865458455493922180492736352465389078800326382291124060604643100256828076851910214164625374747837599079839072579205531437422910273859211741850933595018125485218360351193786052449160844807489320693535112389468634210732958510160662004769995542079486445539664349649680649352704224066596871502870857267684411057343446095986964453392822973458747967666004885642693569896761573704639331849524413817980394863928791739086974102932418692460439759286589804317966237484651877071541684577831701971513273062928327338749153760791775875727714492460522388434022333114659557153456836182314022583144211514695246423656442841440895981155945788104550447923844694693707226607039901955912245276507932418541305360983837987755321087463756691507929713676890336209745699971333864679673139939998281953254724738596698071785399203423053305401569903757946709804786617538273261977177529195549879368984351597644582802054674647259557156362511472760029747091837886268833244697421616409327518475879080128114398921335136568342212960071448616225120747918214678145440716042555900756222958099420383932308171126783515212572582804022997047546215963637447116332913121602564851132400767090815456690464023935137831867549321891775701201561639153880222380936397261816614264688630499332033263805112102583771667988513885073657266297219543194001245176872008419353389722894725233694672955534274259241625934787556577937717453828465885077725429347588145618457503232292609229570293430007332691634287766545160328125583245436224425752186103512894564627112248591449005103349858542236117245199801640092383203435776863993560727650852121965265044907622653844125748972425278656964937221658206819900414251124832933015808643399237511267713312151880643449363791212892040794198097064500252304594503278078953524582964703024418654207727037949326699794513104685118363652989721256314207941822629660735548409316507037200461001197171768694463342272617893717029438608336197000803792931490370473098909284254076585107524757556614677327132885804047588330432934562617400874822319045517655212783885551931206509139271635121314388123708417614902307786486823076982764863175166271715314206684874028753491633314133619077291833920333386459030465199439197944110578621860013202786487156688854114801434358843649127699523036777733131964508231411055724994467487518384614370567505013658682602930488551492351800442745053311046666971683659766222071891203155296893874215762404316576439924196832045963792402168113028466024836293688767823042084505658387174016883423485385400103696900360861174486602999052806173086341266248218981584859722673691275386189134662639539094211705811600241359700786013416296598765635447164026911693332884994769698273581177729294640027120339927827245470312766376097936955671572839797020757716669719102522374483689571870442870774807808990586642735550206778505512954623513340364365852787414475167554475865402752670413061463455285296595319298834651728444641195107300158432295356836755098111112299636614030542001501153340261277689329075394211252067156435906466016577918784921140344621878711086612394110418788414828703318127262735380531810173906839449917589118372664927911411281169369347372840795384376611374030990805335717094552062762013967714905036359818396230805555413693166936800001137251965513482884979938827205823852200874627287496566011606426438360263079319286221921565902543720711482746594597606127541912016663396694277511642950221091497535415096745361440113601776932862527436805506702062196579907002701755438092650721286755376366574624820898654851654711028864015652987632720528816351264787354804234498208119055110772139208299499802161701455201418010184001013297094184015117462387440391388193211098256979240539546232635944546809456465243192640389646289402698951623957008887638888278203925202075659717785184857609301050056377738287397254652844771356198238023356264238858044101262068450782739504243866270734063755023565195216374249490651981136928182488145722233671153631495248830429427490637235281292854431590274697718965908865826589883646762065490750031964999135057457231283192088315095271597186767141142062210911943830286516884230051232163047247592719121398041028032413671116518386583963310423628495108811227490253566542789381530918748704185967534788317255506995976072964498316776134429908466245596055700694734169433966970525092065255895549042256036737600299525620933116673215187225759361403863152652998292372779982476973356496759883223956926889941389307727930862189882113643206863175299064261106439983764221012631524303562628946473214289000113915230047988819981674373255590389079713880142243896908474875148026341234766068624791798109659512304810847636892365476974233443464744124887190352111479789401573833720663794947120126479218189921132853895224510223996426645352785113207867816277346405129344834258192582781630178187291532522006267823657891081452443703418585650310681059751193031990435645918528416973410493164332971497795939286289774324194930023953266118841536551185521582033443118206744431638021103609678863908229371074583153489653495711032788725126725045472807803498670544223138204329456156106091615835058172702826707352959558046545883540941509850410757348789717156801600388745125620826806861424286527487477102540372225242898463745192879069052720164781690948921700724249947944788058402813462324553553896920877247799120746095684619153770400164220520872171686423788966848659421131139272424653726545098335796026759100037766853416548396839968031457586178469370042172879150408909056701400493270867191767903906004598733732639611395694571388919177036097044072357615980079689417666932249331252628451870738313903237234007761778533868127332027042688730951723431825166138503229545424373769107683204908695274289020164194577124299987539004320689769090595272875592480408176494833642078205697701990010097688285032026802366931785345223661867553890810360379329210594257343987615889344245703091370973006587237863947892039961726385142969453168829817183350814855081373906188788396573192260791133272135704465671902113028409113104839723605439574871747564359028419129397251581177625568515457100227116332244740258505485474688877821241868143655803070900735687851282293905857597459191300416111030379212908508114934989428779351800785723482788489142327793144319354835308525424360204834826936003345279138813478392046985795832870705788438122920216947742712158062180128643007487430321039033178544099105381781498731686536296338962135791008425141097146951900785558351269961565847165718652691830503568266536954466155418463915283171816303881448080243849241460587366592707779852116728301619214514154092246988908083540479298547953976342153444401916424132717689877795668194714118543735489118585670925349213639912802612002083002057135064788247337526803395338753554212662374028851040546547683040693013518876012311780106828067802245666725764720165502633026961071663544958182925062979541674280365661742410519169479137369828912647621798445893745356006707503781544968298048325235644401676152332352310967092670420697558020550501314236005631251135384312297983872810491208490910993018283427343305428144001791965000299531828302265918257317555836766633042864035863871402750798405411007733283404349293013011249025038136636538965858256974094309411919867375139487856045759550730314975805794330050405751383927651054670677734057339611242829977156534959288656092673925330437657127492653348049737748679936786024581523758487876428106752818793997529297783402027223662108917560161106452540572753925958704764206446090715534918394625030773898211162525275933655539607152797917942137035506954031609197611767030274813593684355228216375453412868742511719673232160168007948342545394049039176898153458157105413969014653402720993087214851786957150993262928346097877010985164597571701285000096770255632043077055725323972620129197454015431116690470353559386832413412539932014408834548356444713077325549679812903793385609317214426150663349008846412829735601914307601670477678258604580178908115549235690961409451040416731309423938348691211542023437552275064744888629184655672085702844605251611632559132805866948017493949718998566820878437283328773743186007361145354851096699896579434174592125748336529933896551348781398125972627847297291370687588184563115719724520654880924035697251291404575800099898793515142400342119176167055450397434692557602388984728669238873167439874468395681722934803724767226822566272559141103886065035942776183157114191914675782610727916516272245071417556138388384258762333674906907776005892082450495060926503470245574188001867414655075290512980659205474623934735267396515200210433302387730926866727881027374293723477194986422971038464169560477205054523969206915334558041539923467594541197882288755641821986597702244564114248089549738695188734494495329597847254254112658520314937391079057404855257126895348916611268219747708590829074303153195577917381659548255038917308385204929977418045089522655055777265352879219838839067891186097921321577417054780871730770695684030078259123780285536647884243905612120766907749601728130549313293962994249927138055961059263029403994352648309729366858239239685136312287076826860776299728587833090604670886786530404761188246101375398655555851361093786487947872551668441645176742590650424078153091510350259523144174933806571815840496093468714804887580483420561693198315372042303114542798861771288343428973713614406151246788225322772141070650518227508776247957010121051963678380476539161852922218411629966072499730529058888240397330192128676330429661410480907108342554764062889626982532860609365659790265660200128616649817659762348785015502196564070633378004668544991831146354536643590892341879198781910953737592720813368682033529943315762482244974417847079547831851302941173782767423605481283912006441305686003068780020130561109467856547791217040948103025018106854929757897358344033526713605119762516374917707322925962904223261613703542825842014096211733505270067693640945852559347906125384684387082522617346979407561425205802071979465353376737254126512859670448389503926174729348963511692991087960423909091841554025449930885668631274894009716250784526260205734025314135609852462182333306694511701556477037135831175334945289504465734631159891730038633374592502299361409035561992002683283484561193509995517628726847279084451374492487797608274298667015580897871930470673163473096438104664234924516917067290952589467010992238995908674512249229094184412877378254117171651556683412124171116837592553103747480373037801404715580773554056031020561736779585478999151670238372214657340921924040456562354557170304593664096210461215557271777333447347022655633029388764728308893855470292275793823549879980935567864820186930962704041076698781596789558268842746683762309190433888490673694720413158735376835552215315440358824822316406102165237700137431765248310531830235468425130879685050820642656042463162265307598466727599643326912678864119704346377973353538313744537720884124808317301072753514694015368324473957740015750500456658573880947893451990821891106266021629700529508809121146715081394014833822667671377688667366135090307042610773915175475330369601944894573702967855061008203707742189216242074697171362550435643756098112784436515105450871549798137813306760524977276177142421903708532879398308703845786570050758929770845031651102628057146575643203998319678626869073448379988748931180622418373801798150926135740884052520950409840951972867747183998355426457932231665087528161997021765031289080538193327279255994589878928980711267594539793336681530879240342645716555552559193675069090678874656108345020014248450296050323269955856382562925463244204914402540681657243927670951549991704229697252778578268500822721660605121501063682958959307405397043210309061455888127101992860213733353596357756316258869786418085567401968911471625322358373772031917102010044065470608228159945775543914295435669451165006607373171646373521211490928953270363003839716825006060602105123380971420913010213564386331685814575411989171373204995344269758601213445456964628854887228820956635924543691538171609341896037262241404259512104007481805248534825995223875743059600851534094718649029135995668249680590478032133161513027068118283389251191675117454993988797703031149764389858222318235229626786054535200619843027347205936901588480057546511568587183430284113125009026143299974389791338462209623487613859402655667030607723861965154114972067635911780308092771639215589416886656913103892572397824512201716927138199518466096899341390911531142839535017977299668548440271309379853088202973408822548968829927785610766748313738868370486016351968672855155994202777731881411650842689439756852434711370171834221594818903488543535221379881175892659578203115251680932077229167868245246550857207225920836613257603183338054566905773727305239707844501285437896675932444641499660738930787550781806381976899780564580771580921317128358448582704833195644870652301522359661202763849694859289749768948821213648381045768892401359617630107926032088429697759809152613276217358288576395859786339799764384528746416821850490444297521342061430466490747744871105822374816924884174846218773560243037262172602932051003182353968419478585701578894851029443200608268454527494706938888472718395049250393388959744763759225752233641697233030131912855306268514085032662071219157381471495471521324136715719322961918181230240732702129925790818299811268420234685856757493426936300514857725181642496253732254070174302669449007767933246484422597931294186109664444588102338131585676721850499831714879839029950787483634713617176634141321067169479130682334744072248737379424549492960080000815742810445554298564313126319207586230436607317183855502869825529166373889416745569117248684500805658461126860132090139943172529701187948763343710015602418309241441531921138022825152199375579097983657157926966457034035408135350145261644590887361113166979363730864236518369212140814552238312537248809771351097933047199470157497254436648029053943773140415118277274084640320131758997597298497220080292508818079999353447808502971169500342351405760015994961131437276891653828214183251362670107230232180444696618988518459782765837255894595151701796990577019339635180450558791101953297383158186649652053422334769368560906736761830875599719226895281152449102986967029055649148605461436481872897312186472675172378274337442310546489768330345179639074099845538105167009721566237534523034886835275289200853837979253254695760332371476284124250551005510387040384878335713825017516988224279710658190853320567344970486807047978328610886368836020119539060143654860266133917441439213266860763289086570869200722889904237142519123150827793801401848515497782156485425199035958423728378223827275427709810662067930106625851135467281387348810706768710989317319201624621147039672443539929167377233189531454664618129486765291266955843119008693494711502394222003892007592376311335453168832751796822991771871289188940062895985367705707493225553290567525808258900278926029952643902955033277411281635865976317721578052282265943431597264917621304499418898677586385940595482215269685446237246435777745645811415035143082914211881190048232456919994618601627932459672747483275566487465579957900848019429169398480533007262688412702742603732778002361121930092602583715741215774473017566507426015587555672153930718937319017242309479280242299927694506163321758122692962621165061075086424136025216139432488210839155952195282479196753588432716059655661115753460813218606205188270953197353367982037800255005612198324423714625712973736842631502081280001648484753809401762133392891213511789819772444991562993096240708505801597163108081304356911853662132496244587807669991652019178458079868901999899190508903941880667881703789065383133609442773777842632815582823235731371911959338272746823112023060686993844621007873613693576032888957276362146616126499003301443723238993048807707602389223784527884930244820223011569855486045379942849011186089892493808739237212229279469294958284760205645563007704939071286312588871088386751083415193249730958237739148989504120366219414101188414613025405612520935748943152760692513403790782688878942062405995977705464691224653584000137645029927881830111387242854332764928167619670331041154131016852809241851837339404206700616907162644568881590207054447196981385546573422589635701079983948023671257453801943599316071636746947678024313519263288973074599092727366328654135653031173676297003968641330513362396730350190306737165495669437739814399123014264648261788840637947601596475807815766417132852159921939091166469764665310737574603564270301205114475288604915010577526960445082690408017612462293882097170032401749529889330240162902805303410787354040491873501273231974081171966922330315785492458963593805210160999461313296502181601814668422498019750836677001515933612388660817235623886796766881734192704710544182210397855523070830253064998415297650938689159613890835035995426687887199977251303984477693583583830168344428712644212120492429464206630746804714742695836465649237577221876561959138146626911460814881802502125128575462753713891226137160783981276714295864222909852316023797428020041696136781840148403276475575394487420890980328194417028469423356928555957667952445137151709614757552280703614950359244482267534398502134359105240567480508925997205271269103654275355793181992200728368288275843267841951947409452727409263730379695051777590972207235814645313330563199013880953403842869118330370289500732034318716270281276243850460007746819315672421619160182417564918676502022228120334834625491473421812572598800925172700039071497109717716852438119454360518466477274217814987516531616171519339968612149885270491421135336016011930778300075054258219124634955518361366653537549140806012694959112465853927057759980190200651614339114094911727563861434965250443008892547128305057869211614266002333585287399283648798988271809189617031975539206023853505645152368795774316808648899936668588750369040955282561024284281178354515845034111284781674350044606827574429427244689551918827678233388756132385872121138960775340117420472368013190852951263546701400137671443241572757056097111492571583381384776892810369760288632260728407621834632777258129140597655511828388062701684216397327721475945687913917414954888476832994394876290675306541961037890746889112181031838993971832017799123343930604998266210740065523847764113324744328480497364713772417563331411102679143157530360669953887815259437986949210600620550745500761677450630494931833966278005621863296176111233871479464665474625211673186473801213743629052421544648725181009499884959063959050514590223574248084309948210353737013937753572006036671771932627232573216954695126908555158763286825145071300730216816857900513283591347418762027458566458000668269469188227581824766439760167208771130878220862422823234785699282988991591582999983560296515129757454529296802192577518693076623194986096516910539986094307118665469943489453176436967312306292442233111553013653060885429024350628201189202768163055953780527261699541744623083622826233574849344005151375844330318944563667637643577474059386869604455882348251304630588472306561025567000805843775161753613561615261527427161604552054886201451348127590065772501073043340771321884030749321222071863132577981434131608456497343875507804610927841306092273541198251799151550756801516061117375214188027514695143691286066317488368712896198669789648326060507524676364008437949064219395651629620668489814235720193462829916167456664438656776805066592188192434829028762516712924223310774312551402426513770824584372384952904233243884642612344308279637163361445782563424478127812788441914886903006081056104434166782271621892199613096706899710960288683667286159068938827660104740774610131522089171254816371368430481497630019895076352531807488723687681241719787272411151832996384732975853347911898783749261115426535809885249858445712128912807315611254324149684340773289440046136168679824263682040278792047093524536962292650792782558805485136406058304842437344822409832920406384271126806554240586007710980498442949051728945192449489520266400106496753524401151040002564515962197810613466577156168421441077957221913113501002855127653529863645383362624724415121084818526026193973994910614104024012613263274810978704005162093736419789675627715647385073643093074704296416473037653097488436392430366037357834580719425339219749744384113827634166283006491908449936149611685685439963768386197790246090277634838567459907832194421540819875832730594810695446955311647936408406026440965540672869322752935116562927562654675332062946846012346373156570947687499204486027759776566428115490339088188162260698710759774458332575495650361912467848298221901623543706980273047979246586759133880319299620399386122819433422761979533344777107817545968376422221471094438875969447238672441974323676967801161093605376458068623976589741572963102549718779777095993209458027953265914554718803266490885517022816801138285292022220337540848751252816627771594531713097081400671998889580990548899107378806910480528352664202291293411629942650878503655326847947683896110400968173353651161043198109608368940998568735142978217873953461620540990005761522015391343115928400901797415824324989866864453028744457202284584945253214885664513207242399868054033615047159736537501350787037700649842896897555933018476767700714890624201972731438328371336957684171651126345869278569090039873666959884561758170045157651130262651978732988576422428627593855470575466447438839950463082106307483008580795873779118389786392265928683257126254531708182030586774662297420884200808023797588937330029630709645413154165001981316326013176379124065470987064849537075433336707823398521934102725482640856703281311254841358531837498054463595776677703655605046720376066517249108032472992168771691615528757454944986993299533160530423427225674756379190860721629215067641443017619214693555880188491674353950782966217349855497983665036920804329832008009210248364365952818890163493686276032126769594059984089997227122885289433624959900741669633918230649565061122859023554544028537179590955317940342566056882294966426132456634256686549444929941054142998384109606684472226643298521315101390447901848022968451660842396845001146176077782588032275488907071976892029778195228241456944990775549458768662363231762589388663653687552168217046304558173168791887227075466790665294982723812297052295273743894553756744480585180017642932618503017268023316051884627173360506699266562689747262165091131319833917941480076707573190160172320245734121376993383518145271440508464366052717496240152720464002474016654559686114153593890701624536816077931760995000311455355546763210694615207842649033076289477020835040736099081338516360594971931258783741557757501103849941813504204101106951643006336295514046543457356539114198679472963084017198992138971124333268612804899703651581357622205370460139462665058813452287382413972590173754112467899835173846880531529184070044349017537569486361898403913938532347739380490500941128582175495550345407916926359071537699161731680698003342222011120857895843983634186107742620957044420099969088238072043394002474562904348602095640423892865433540853087506300351791928461529362914607016550045843671985373822285267400033873864851975902469302431254366799999980621359824905087711192861645352273288983876805437211141713838687594279672549897110753376154334417162339510252729037303076426480106660517360992698501229698452323856856236777049216615579426095305735241070923978053018272583348505492150466357280654058545601495072477983582343324513972120412592865831903598166006964372487460083290217436599596126958273354930349153940898351260815631453263102737369088853897454919432023137378932168125865451199152789073579460829519360532992649372992758862032567059121291594592898883702425856942875547303184589564731534973559806491636092078466458081235169117164841801740764382864472439047882667207638922132392808635993446133115990225137468870222505220460046192955840946474027939476467295304211021699641837972950107873973223461157773221031103818954597167695404593743117897172987763971466317399015901306241466420974611265316252733572137878049202167368558859048974402654199394502845013548168699853539296664424855901449044554425092625106657255644985100272920565902967816034544060383484089773991145165375802904429909277523967794150529404451845968345409986279966169482506999879580994764968607060787263102230445495146406237696762661311161291481142661680715374448082993638788670156228921923198443781009208224441855825119736957960876961621826255149972374875773021169256125700648166773643836598082042637130011032744174490208910597572776768061047999409621496989380981769154670868385961242410594863484963543212013988425193024417947760550152431149237203035352085352059862592776947328672497902880370313138105105106400479815811258095336647196335334322832176805548978824796886568815192597410807582426299111280337276583611504430894531648330570238531757941547424621970010802614776587187131913781243032694912564471877223950336285334337240303451703443547048304628855180552658256907485242020005896752712805341574631987149122938786574982875913340001607882626241533471352488082084793805278043311344174154184559943166429850181291854071599750850186837428528066815156511967620700852685426769936767693492328870882806185909744899274491947946816934998099436250860673813210665099955328285181273290782692991397798967182096698497055176262166369593162587718567235354915738110313126671444273444314200800349250928057414337484843945937274284085279881013259979139123297399322366288507920822458352943086256302958684046800015829792868565561516726155095138441159873919616382589166032262435413698708846421260123359099141829030440036116549731149057008905281977411165050467614366420003627653613055366153503671224175736736361728468302008287949621922951465206599174306705766525845107230106744402573908223371950064581450494501512737534350382665154062415664511827748519925627572418838322543046723455363175596006512664319886084069711616730423755177690053514465859772696519395899791713500784338683574996907370848769352236004486997692999863477241167238225061505580406039546368889961186366528160880912801079991937085842847637053799641823586459199387323314337948472359426763138477024023362277592959104319432940531409582939819011312049513805500630667085871385791727289712399927543070847356338600574415301474468179903850420330302052187537754262036099269519899044606571032635628703128397217632524815314413920266632244641990431865187653678688253407040134595608123065261405464517124092962951093189411601162959093573967400282396914992820071231490344749933966836954040391814500992250051552090164536152781161854128432543931998822718721178305956663836498202055356541072524646092609401238755811683750805039991803087633088008253802585722173955014522997451900539700860765354792556420892847075346430224704207503002323468751266968144843547004534616887534155097167042034781020988213028574067617563245347257263844048862451557831765635486995131546814359327954035725958965651094243034186966250055651681852533571481381297582298283362966493798720303919624162828076796682076326746396003010405689797615068059123684566147657774908406796640007950027989967476678402785928532179483971147637740303206626331998028669075093016914025902259035659707371823851638535661622455402153095796888439574952420302076980573730232628982582805882999559404316854492376062249344345686268916529795704719085473924701636038390547484871676716574173917448785396853091765165904155144940187819232429268246657208636998669179492116597377710792663802850870896769835797639317631785549692189448156058073391614701321548574243564254025398079363081575467362850993972946511422223829300040824577087314448109461204178983003300014254057388186117450578389009492279939384702087839184584996699385268683859883655188245955351346845543038254943796643271015711894724968174964123637575191019706707546046216276121058554016147542408120717879901955701247297499304100683075194394396759794813517627957903414965704055753512107858690349374642045824893710392518289029119942679427369978784657728902083445050654136259410968634831229153322893112464410447550431544768873643765228125978739283884265574241941295029847649717391307701317645814451072495795063963204385239184435609545021549535927857778079014367441026427313685737934699675111511189483626691666127079956178567483258025692756899472879381448976707658900835785855059610470835452656829160381646929029523679122336426024269399123412031803232756332147399319089120436598282327322415597790935358446366408964627452570860952354120963881791584380465656490819481235544337249418837225579008082789552305378015674287098859996145252484758397839682159896465299698361139109188204246962658998965615120797618158694055444356234375513817674809263401748428764339121360578274176394183925876958302949222320203781787460010701545188317296134320691442331266987198381067157208078057079886412972298301895004291901744548644525616221748079031959985740859474065038814766776450218709771139601845488751868383038773542862561299458519238143136337746224034190329221171267818720679532512113279337892595283083702108250075321778626475644569748544381005548983716768523263946737780494927420169811562125136819477137443100620490819037415344426236082414905354431889886202287149808587760913365902325383646260002126323608169817188225550298451631582462637771191491613693132664314393456381614467310926413860153329761274623296955630664135941001402497817668105201010802148872496147473069349927569019872679544029048846760703103170382534997880947319796085592977094473283314422680173881153720689360012859201140878026604977047990414542113976247886579831636260814482468965705558130860058750341192384388946739076332694123007079824265077856632586861213098494036462386303260529790999184081451156377445159420928622515669801098624668094698043717513810851568656220954860243576875844659302950345341661088134977382935567626286606233518820359217354199983013666083951788967735003669149186578125379967162166612200277492082293220605122465380411084832223040049524759797265371808103428965221454739169101762443534850064144441009969886676379436897855925967621271995626356389963750405104841733612354441695580388119245471679471678988827415859208914420713697080119382831502157951465497725999243633191767418002975895515336687138698194043024658975611199768106305426850525385517225135643894964857785380334199806035810230299996963186960776938878360663299640096445161080280453476351546763635712874073185063170041797207478085209745622849680634921816276621328298166173348070383211152143327317091505608141356584466308495215936533340675793731885452211886481327128085692791275122417237494010638102366390327810925908927429097423994230323856480417825213745513595247037685056500744002803832546946584296763217216685945092746758647465036708934212096574088419345177283240520014096076301275339239868594463466914413784282055158521170560402386650750792769642030349910079792025995761097558553509795001666772011254883861412239854012069756531330118533715980208278573167655751865115804287132841017114059603239444259783731873439990683415805779924168346505312509212599849679726425711124932073861943697637637358520654381574341382059227020673592029594116553149266309448113961463794352495562967549260068839703429435747977869682665272788305811641734533839182818151310134649125087063769868943651849669531799478134770638104537757409776088755351127942900363203794431866060563031287306752136425648921514081361538111879100117462938343923511821765141735811802014082981601397111827645564845058992329501569843546288590034343297438125673779955628381993406653279794997684099267184180313797892426458914741150151401370336095037512161745010117860743332614682409936013007399450900889846621116223130020717403428637113419604183033069669867679542197107036134977248567659553216031519976296207355161283174756592127270544115829098610282873777848589154746585602294467285817162460098225779993221620665374872875294210690235596363657292033986076401313618998403238448530700400403754803024977319547844795996627379127333119820566768335111782242477547897961038358165264594778630732880722185186402863735903914850077715385503947410701758301565930113276618805908622430255892753249815382785700010553199115002398129787162390044279906439346436479696507770486065353156642124042147561103126416303323736818444979858262540595751502500744320884415491727845986770735017169330982116691744789036148203783044741239120056495653688137344347783143534941074697090442526969377393998623932787202290526667742558668649759749372899642917148462076366735877269638620702242596302631872674626042042489023813246951744150842303778749935768811545074988996909733739929466291012878270149489317596741216951156952856590351330945159408279844979810498878668383291116345041553449761392030012444725896372680022138268386258978824497482713688632374845159237205498409839285757564385617015993753019515822351066642401251466729594628529131594531797737482213394186924798511578062258790716238851467212381051787644197633109040315692222051660516290721347434127645402068682237707960067175540273494199117473267626703305951698590364123486711774309150390492404037216548443578614911835263606246029068566775054756100241345958533514016545860021192094516341097973508566628840523109143173312802508410216654774341179663740922174110826980623937674001519470150777031546638512644074872679136967472106154453856798773297181464446095855926813596697083332700131452822156968058427951024108764955293569128294016817118303257818128057249735590825881978526375214159969130989669827597857567989390088671693251671241203588426729081912315424447432873043520801318885861038865234805160474483836680087743511293355960299702322101501037366148268935120954474426607506669529812160600836931293807135352218967992452943737709419544889659882334619884153602433043271009269181574438187066318278593234444131847491153591211863843220824063158379646722316562863176096474506960145338555114895340800020307342719402039807988255795021142403222241645833605926316036601549015230091893892091431344689550054820078277106722987381408656492652213098083101994983067461397456052954662263619045089812077104552076004775713018865474531323843339988388259785450246999190469187759583660217419848004304190831904108844198628925036244154862187528252361055882013070042818706868261350995840880159669300844585094986507188532610736371725669983581821243418802449441312938838526545564990423546921940593898652079504003413711093771279174337685855475696692967590808512094562418758251405341964323137999458801142972139177474448723240118467811830754331071418337578107823186747870037309407900868281648637445078804695298138034962759496862978705940394855460724516180371884058796925570367464192648288077035577817136588995439967994594819910920973324615307588231473543262008104037767082230093327484855434904176862027751001847981948921431942193539202305959101586401898965468934648495862420185238220949766349354979288133316688516685111685173681931618360574848879113523932006494293106512293700954176215420566054507332237641527464046305111417891424641318005011461991951113033426806856581445491281819857611611021544499659705187457309343531522536534041402214801491843678909239009794988828267299801849838722802598932476465866059933145150756491136200295875938700448266861393460740721978781016971563161874956390978087752104772232816159789181911602613927463983028109504611427441911809320765627520201461344807925211077467641583405835862221834168925603705828483692029001857466185051531746772624558552339924648021216941050305086771369708637357063355796268295844559974654151829906575730274362747616537747049523840628523750956100613698242561849236513330188707895605393956886438039404502777064329151146551534326036854205178896901576946805989005798790241104526184956804252085899343621555346713170440177452328346290505831379421890063831098189388057180373768254553570435243740742651160076209222533946201446719509250089806277542065003512220569696639473261625060545512879864100626170697670792554593104855250980746575661504111056074826965247257348473741274895763034149031407504827942523177351550191987866849323314248406244711861850947700951071650882626486480734519734732730357602396262676756532215620473871453693635149808877363994593422643689308489763659498105318885907590663790675486164615438196256727863908206738296925338224790532895460530822238376646264647261008385714380359422515016657969899845988241482550294309939117529165283872446457530762635456440609793234191472342783405892436560099428147281282048512127633806384943756943482282026382472356582735244407195577662878616343906758612825127033226318309296086365850584455852779875370525200658311446507017843467012417337612699768056453918685142528242856272962315863009711651991143333476324151042902497192964521649315161321429058913571268648824090410774954332903850462981246184549367225604355025448430039493872989059391567310209205461952414990150831470566555655676887566907637425104674719108472292930471891174370799268150399609750532980951854871603533612773226965339178858737564090836440859371816106919469408160786975852740196297769229356234647202692299682440899796862769365502653479518651129397594310372315913675247506563829102772531276898111233339806942185490678809545447949835610478814888093128875482542150965078974378483331535196097841758803368215997404168628534470757713597527031530770153877320105251063498390645868951131574479163284368717508128091089320156680912341347645489621648177608119694247838272900379607079802148219677329611144444289401411830437835846086736833890645960874593459930940717617511161077773308858236553838352759089007554504833612910647286850345100738244741160258533810894855178749403212017668128654552955549053770563676054019924380862736487898780688105797346095009731382816488220722395881936375680445275165837508144729370953005079136915788023103087842410664855103853897065084561331501540955549191911114538110937018610888068350783077391339704858740200962010398374099348701388601062756570792912455366593197019199991251921203683364335013773007960147271252385642808504878133612568454917033514773731194487053783555536586713142861147939679790858486848053226594383397021867278313787997899490126240804048996328742831743596083560539659092957160531231919776767822899125903712242671926046416372488148802113844916363823715943578014990262631025437762713674706186508053213131481792032760399610529278503461301994246431461754440969584280350859067632622382911360028453997361315716174392396179065788245658978233895248317863698420836871132274724912999215615303435468014525201859862901485448605911644300858171799193647420280002144440974898313773382297358245042914107024622344569670306943661315946935948471945971917486434825626446324538378017108382819822581420895342776707614866072347222374312732255089746819451488416516172933408665166035709920472293682915200958863598987366871824651927535514390789576971949223711822206591035723776871946895759560588550330419606443915308103349818157758861627515230181310504520304064736399533643326339054335559502979928793082187982715794112399030889646698575317817223902958369719319615619701062219575616156469347224250986238875312468071599632982162473973821432222838923020441041848588882380192235905471308317391613177151822993835516694689644442005076168643930005636559908950987427193524738655642912991142630982483551445435933531669149857296607681527846778721699757287887315010387944783557986170342082055617035595274079900163061298049166631624981190945790035723553118919790854149304476447506494785431913125642411148983435625338941997157822391731618585860904215437828602019882340871656040811224557914113073954583862744789126075729028238654408079849254887808983563766259366900874268511376154835017379781136698168725983987268247806780313407167731620216071294989060685444379763783590687145363089406777686536322885582106126268904352238456494974650951412439512977067126748981837117650952616425905376033450234319318799240764320344286047704006138010609716446752809531693849473911124457229998947330900619736664000131895317564791254343485290305424081990660529027851787253200788656305578582580870653531929586699026652742820330117024989941620644827840407658721459092287795191531940182197860141793395051631633807128005664850882450447126399002655940351830173429739073840874720140253738250323462161625136107538764295740245472740811023686789535698141369017851783392457976066746007439823551400840086217958515080207562747961325890630440720100414726518136522311458283244173555132544685052380472747836734860186006185705108578775663562787966831687012252306099131191434125127306000791379504360253114374525164306466295789964527280316367867016940487514327471886453333781628023068238175720060621043148117561797578860242678362284338466622203706896926808302073103372081113731697542545121886989684822102272884406783310293675781998675340456567290013512940194194194576177261247233873589921343628561236411844852722913392686645036203008165270177877708436587160996949494146847813663745502270914661938415897985850053149799663232317878942162067662587219001686053907833592838985405608126469510085477917602686245437286228935356252742154409021815237495460034412196630770522011774261554786698119527364988358547659184165105341379870268875104729244213497077292708209373874565901773379174413882416291019945011330503351543663945385164717809462868481755937119851000150782121304722904722350854817841451889342694169699804444201226436194715689851026522429084055985974213842370698375187746595078876556218195258265161451852687169527612972928370241105073292720920550312272176091083064191739277838379024587531978840998538980262948836399830919893660860699661596897090346349786763079516486371837497932925672769019020238070489880676893688699533198607089998251474583332497452080549712096578262814519378761356681123087885214351706559381467603920199580527976260806162246555620159809845523599929761311721732902515771552956466986978051852714614771788882617669131220444635024027199691453453957736825583040705718718020890751614562799086684620690909714797169946814353046455272557985617565460041954011316518232310379490702675533570734114687289121820445244526867202123757244230535941825717365877925827728970749772048176901780708727830883256012775478265566370300728757477019576752476912482530155220282024405099547608801766302249923776108470660971825492546885678264457959315047693711656185994209601531773605129917370815017008343866235908840281947793411694028185230553853474159053534241375755476285616756525897904322154129143607272723347872981745249725187773963658888880595936756942131691943747510496757386683091406330671623260201656391404255322069856185024659792572199606804741432049697296190813090861831719417219451875371334585790186320298184411485561521980578763120487158831118535296062396672999538986279037174972530676092151542682303155716175510081406716570321983647371471525179864793431958076858773132039488159007833748994786206743151693339037905778250092289812270812950238029878329031280838383145428591298823362279734177184071104189565552745507839976652307767552733837434843571010595321901860973929004222731096044451903977722108821267388642776255173627784274217101683854417168740284732478331084650773168665957334451846084621979227090031173304029521138300014373236075991725694714585681817231232452181507170443974547121237263379724440173011527709720859592414027968429388165493828659656282392144045503951708599718196298511660186536121819764974506984433963534736666914737079579756508131427054285718683728278104942592096634384755813406682733216138062572661001692206530152142963753124924522031057195951461243626629562193861696660195123024985329159619541863518791526102684219415251021471449824526886410189088056860644711570208540988346084947818353773187668055516268193187845215545832896473068988185908630755202490757037444473054367617744681239689029129931735129431339536412580724258965772715027333786304628163668825448072632983478049766725170583756221709388369484520826069436939382553449058006771428577201819473904173304846010641071100755956101212741248094889701590222682873548673809523487589812319295217608678076135366972593874793966057630645594600480063211358759584708719431518028577656990572836754733020546027899870262330625530598467365855948353672725426028399258857346646254344743935489086738508405751059336183156680241540910887455475619703438863173319494095114357666680986308817896279134511707505554807660556515798483300808872876033217970973446330969837404979606364738710531986220225513880762919892549485398596862443663962785064777708111401119471553780593619891250249666361310816852397190643845292113242545170509510113702312920187157584787853879014748279662365859198253699341337776932524937697900977463746442753351033590862684617563949021559806337713779883832935461975894357248457280298743425226579357752616585764500371867035902691840382722708108581199526680227739360812237739917079246685090740595637364736888640943273077801788120385101505897644069246193365778710464212810487760606878621034607705320148828029712641350016800238021479693778981634059046317090562013222718952085441563334711360963682799741000880116965819265341033838931052729938791791067230197974702646474716088654884742657273990424258507189483023002006811370239879983975763601595172291918767893990771397320398066153844107578646636519268887224228874752552321150561137591613733681669422407097332705427545654898734372473039043465660520345721468437696132023837579523724771587980701601893363926985190334396554946739809498468142203505203279674616463985492318692698777677538261826129383888767345342685028273249010738910583392743130137974565310958451259452710812842693083033852898139897108382409573862586470618420081801203416547068527370492831142496320081023613215195842294218176293903518020628155624631749921409687763166841843917770122669422547729666451579945503955979487730529645779595591251907371477647997126629846149412481206653236893085558434638192407228793396513197945896568435985687389587764359449753873895032447004055310374266392082718536936654024671307992835855654960918020331390734450619387535021296173006776622523556828926920621385135967714898099219118412005665336794126372331741855633382085442154741911188821535528735244615053777018660289693891519918874979679007400679301729073179113690223950194180958886057438127352378340857118429082502788633780483860356080684920236234982425378474688500830417904584473301235444340767136055686274261222922220800371521758347691167228638826010943645766542496435955355370247437034890424929648427079718528685707207011808517522002643709700578366747659270460018245249262690626272646540707118703730958958954315918054613375493381001944964026097580373822656326604859670990489633832414493802949871802913771615848159863523444094445126219844318281817688985896389574445486156473185144493903528871046582762954268060344470089439305483314476524112839119382044072599441570085826034250958571236157571465788937741018272474649425377526523701650856914696928129213732858149003473723926237118308791414602388159514508662174377880521978436209379107500199611953987076279955564421342559200933962462880723095652170691067749845990405570291797028199221825288273530091279848632203655042587169778476046735972624000182420320201830102095045570086713897721740266304984198311910302614845178420891352214694005175790014289636663482391967228606614675372676713967787913085482634941888731321269290744905499621804626668714251133261037198721765048531355058315254330779421326632646134913425638605213597630849227828986829191300017896160752993523656778562401285748475183822453624429100959691591229469126086020933916938920654881244539779456724647547217767106893720759125755233450855836542954714524199413023320889537775978296495650421480961234825570444405104268228250704201326891275745063111227900577344333732482395299592599787001421836298022531075747592919637838178632695974208722008735543031092952756558841011260320698034738892568334906010279921099625280465566184032740063514776646499690018653524920636878236889593704272548998402428375753029233918807138263214314133184798531031451419508097739309771000526034237510376020892036514356801603437935797046472248739761355100136431928062463735789536111705361272098665060800628161754412894711769018968052644146341099748867014059697116307325433089856650416754937224676939921045640243274093328676210371400796526483465339820493663602595749586553254699506796049461197260776608376181193846554302602460059525313573549803956245577943852727542722092565825304385330890154261140311605145996409127207512506222062355124224493450641340234549053615739933637369756571539931485009423105196000653074967216510037555049076835259435658378936378258859283988940821388941374904256609700021878285719284922815541707287578718909700863152044116840297287055349972393017516196038035624662364339111969422322914446192041290852015303335976335531084381438789789857009079231048792948169314261659979864434715445103409577458359391093616471653265619725704874569171974826426472643759621473504265774021602385884231881912837024148573830424907114771829209751467389193504156574287368646467001440652223251900463683017205794732172562726417069142908677904404930026336463120334497375256089083498850183521322392022464437417567952971152472480655564341453301797135543946186033200899488223889155565484264955554785537531591449811055966872601767405318784085881596790796779226067296227581552255798804491915479998154017413024842175357212722185186694157848107478596240656989744265962412753038925824281214159381794998321323867252774427912507682494596368554882227476193519192674713108920604300596422861207413756657339529788187748742914837573077833213807970928569848293217968614920512310711095801708287222373101621424269469324852957019649146638753710640085050125589089558696830583675111077370906260833378421579336077932405861781633999060070145485389812860029718419316514290503159356899824786698799029290953764898739274412332721286909306004128423855456049813986867183078828786340941258898185578751588894693795144134091219557255224957468711112572171755319212225971983607826781367386254408830461123011016268595319018473045007256780378906104657094952609758228889429898114103906361717071913370996481797061280061372747518740011970868314413390908997971583091780361350992369433110631677710908455808602238853748150916423178076053492643822893112741325206459184404201161122780708761694803813247647754299205510214583774912062435391150079083599118762122590442849079710964121459262105237643997101066711118956943831092723166102211540173422293460817909553721519793014500686438972842380870099914735998954435391149560481527701272046159082340631481422482745748086709087447229162364667118100314536524488908684250845309023409586650141808527682021084600329678682593999293235114891354791429723427116822924030542528007754723035601452970394073219040451533267948718839394191710733433701908978651689596964857105598040087042133673057389424314767801155815644772098153232761006373787608108293468930912069893361946795134081746183247513642165387963729293395696346149301685076159184897553234307961175334601529907594438688435451623131452285015944101198734856407421116999762088486851214025697771118083888045861268281826219345144151260137852121615399094414723092011420846486006179319686665892487285069485022396657704013656986203947806798047783287215187763752761503012787106181274493620664468616584004917868245267052984771345534460583463905207613285674598167734176320274354452627144920665386614475220350246913449653937829905818432637017680919979427304986562220383451860002041338997889100571315216741279511877149679084942645512279895110421566155708261116157842110069381990333662299052940075853255381570306062995634920742403163347375454470827408695989292299780852513909731109618011383414278739578770283175046228077599707094949641881747273486609482747156829585398449378962266904875271192673757443480130868503253968433739306282763533248448213403800150222052442043416634758623649214210062225344012002237241183515860079484533738035338840825212065412991911568234143211942408097504138018308177065695271173595470137143222532045948300461674311015446144795153155689991620390538656950141466379883414978838320241829545391578481127791085046850736145102018554661769010702841205460886765160430527212783273007237186485364474888617661084539051310620876609360640839302741928279631288364561453952627114498793811223556763920031104983919302341897659893689402315842723509261487180441044338510341273832322205396528198041587277175638598641439468074414202906770343433870632888157484767859089225369064403512680426447483281064142870572414197843950534346726637929128373012128792392939313472236400341398259321213425738055677630687621371621717953836778266540565909966356598053478526924586517293554044325610094189480841679788003268227401665951637778328137230983254291920802906713151474289084631558989948105390853162692384741757250745600132351018567679554304813878842098182861720475952709926041308626106674119535050847329486563927499632286587099409259861034839078703658779066328523755533809319215632016954999240898929773116280451614173150533883780332866845281973825725638344876367213042928812431312333175445321037642362527259749957920502484210095418851367803113038019228236200913977957995602651771992950618342918156425586086639644030301672437709039036782469197770032030528731836144718906687485746635569503302830747555346711684584777937661200562108337185149762591689804110485978745099789762512391121066448467817339910265302602841533414004348263134140757223596741589214682107602879529410955829921437711178699765885337914498392193412770363438278344686303581771907900713642964431180637276404952685502026843244353057887683196080715173827778237026625673012631828323020869359507146559962696635342634112110033614550729039778359900319993096839024724732149407206163817418960122713695812851370374904243977090672991335806485291541509915896309463716328401505731566287904160983983296165483947161593851382255776612616277501662442046424941585119260347703558726326186860324963634608386893202310988126241823011737858642381343568010174425634569124690805179566980972150874006623302234858696969409759462745752865757863513599699450801403033208920033703997789904910761183114444312442946871937721040860371238317680144075385979534556920653809910475479056762324636317432042670021775470982385035851102410288560038709034926952019217527647178839057520882955618128274628923740537476525707498478861841184759167252492882376026853862891020530650117529333480884950927569724867943597640093586253153113025932332209342265032991318623545113591393181821120160179442188287512467700654381249012252545982081434825488913029265261058786869253699463363231966867855671183290462009367792642674511613390280165608234228238808711322075773411967364540310888161225605584859047542182013044256752452636900245886082597971884469502932398316629651484234662581471029627081108017207396510658059317245817751331402628503372756928639087321501536003666002063819953552551066849176049900935660193631645717875620019889878343893304084596798723797628779704153405282557644836543256502044313803355186882016832978981956383757083470953281086905368779699055642462364594067277029981648589755791879725807078578230436542924827412923891691426191173414364417426729044798192168608688614605496774239090312232515684314884604883229215914369027434478002023175071023778233903504136757398777667604738087872277678204858852047232000483604208540197449236666451387744243765839053646613490579106347791701612766893936151124540277486068910584775204748579998398956056098638148460614780529647534076243634129901235256135060312645956229033432683744875234768919943532785952760114108927415886914534292417782012799289494414640340517707048616427804905213784158949696364976548343619024515355719716615530399773318194093537218611930217826054291209889679777359126464148273992735204197164093195378016056149842582716940392443594493701060663970155788636770979457483446064418182495746109068101327261597755208751308712991419916588296716405245326170156763335651543334434723906124328488400148851512512727592418000958714781923090289615534832137470978822103013183164025848749711639562256489212808572143033423409723085625351319225117478983949326131846231079005747131240415933830569259347531937049757196552518960953301650787993517537219105600786786626587736001859626751924223457894763071938840281806422456095681624882238146552344956375427906081516702083222477800437017545440532510208412918737028788589899269767166704167470925971113100215595456826349915320287336845286099239575730024545043554750624832033783456124003589049379396984491209996443014110901123587894350434534005354351660729390547441536905309731372326287213878877881991183696773209355977323943637390308839889846129500008081247164234521866919685634893629299988801986906606798571897160565894318394764892570259682724145326486813204533286308558570924593864604273291058230746681683554192460652658358326706094961824823544676215764670656329912994616623373217014127077685430050330546429223846021367018582208787877178911299495855888416221512314543412087901452220573861597661742580717179863735519246942380688757251602525637476907083324834154409190305351737840527762944316666553627570296101850227382198331402022859751624386447518089713893778946121711799927817319842425770737000789587513552268592977149345567828591448585096590385121606273769953587187250734335773057289528489445999692948764845095038354592618801569143758981062748835748462465891127053063602305008024065839165323746584190500154124389569055761233223520639526804618832887636180430003796219909450858073470910457510743949744202169880599439380061649775406186799880467433902287401583558604169165662601545782071835371461330337308095676900636790472495260888271135259621786573959822849368589305122092894939004811337216377006528168986465549329817918112368320811367007015384635065218567716956609631728210155973126376115281270106204838060132375332616128469743385031810515746435022681890417243135479824100129860356920948689764938317230028155043647312515135738013785432766355627114885043459419450480705827030192102308469116936539114897652373007326580553137689653485909509750647417013966271845047884726118007748167760380452691523481261903278468945504650103641696559689548233859757286825813222326858738713772631678954450614522384953133304159497715980095828020527820278945424948899366327481370551078994582071857891874668588827810356370101728514603775025003984389006676626420677779716469339661493029671311822446501769929357687869220677645224534977208176768480542020947346858513333728905354125257096385020876313990022732360486920191147501775852968146983398175204221261242864519111365135251123104661276974204444128301269944348586583479088196874951130729067275980076128344140698443797459992916394480547073732440658151336092918973986673433987873340990798060036150431019344286865835196910111567806884066290751619170118274686907399965264782268475718078916674236153451407814752293098460899188926064169876302408508439857615529834815965600725742657308785930145493046434192474252104875278127872897533136516409915757782556587350695344656505382508918519588859613969733758636722143042887200492929108726901554515881643984204927723105739652097205636085955840164602291834554734255295075204257997553385016678554260613056902274462517016872348088505686224961911267709632840144454501437115050622862824425939869062319328103365675844928905503575490271749398056268128565236504977738499727881391421385002306171413031358077524472266275318803199459496295689056959669587981480115589314916427680075297429726626168712520792882383993146269120389340766551550865408685362568231513067730984505383196505973077522133477232860458630588316459539756608739798947641807907328712493812927860438384825674730618349954936195291190319358777602847849617302447331133594327018292102803416348740942448046551958948429348260337465198748035201189418520715832168319074925615163581381717377911439877325749589578468416071038325711085223529683299948073299481491281847266704154401500566225644623074781910888505628716047559109263308431793868762474524758208932982264797324014649517060023957728249495624518543507695655620287080941003354380750985146677088405512234168287169362530247072516418492150365946251991874934532146173402433399405168973506338265627125674844888843836565494349738910567518363942721948455924338302830196867434981251998147374722054955949288098477137152722237483952374716357663505864882161372765763025618214045687045652233295624231555709956890264692253145298713257524167815754505863170609246061080847999966522858470853875692480432467738227541867896391776187285884393783841950177909108954015341887012837471737318797189764361285093662940850719746897223750483649627889736358637108029485037756676456838229681030291774246084681187324318402697147084061762095411027411527515508416233395754942313248201184144975485198233302170958722971385129455799478867962993831079676312830503375612109181816829069175715958662447099006661251372233349404066368980392535364123526700166655729782410833810891691132371459704064570138252952930480097978477398959914783318727694858684974967921192850777104090489509961313548384090875343314204263722779666447872245104145227535228425830626334070437709794832138397840252966830072350638783302104422563381139427928006795837301673568372639904149528115895713616782267047435145126333477716241735787127772419364413230960061131257497553193844021061602620209556998396633045052738380830611192547213779211528315129346977409237700161944336282028347038486345190467318862197064681073580509133943466859001925338051322510779724344758536639137716131788992246025403050443924726267550841627168766998279910554715245335256361718166862345173771893353107883412218835010758524216265502280733040872400701593978570731591500680625705505392209726292933553482132918122367371471883346159595863980631962693323003370669044632593878106369743355100859492563272744838977223699174551076950885088048441963097629625084323584861281168138526139730246703883372306893530956762661901220905723129461145514161545768983842620630433371970984258686901154054513053994836844048624882053940927911344914424385421197243076733649266550226775123467262024331824904992350638334744424589378782499483685737127384558828862393067604240150504851295027523339095945997833504655915138403614660581189064563101231850550323220813594327447273563304836045353512698932544868759971212392884045110205389519429566758442235905019080103306569215515474096359501560676220993236386058869679611628519374184580887579459233149870530773721269101230039474365737199215709284591199590343205372329481458201128853829325198781356186520623012530877978040331951540662091206855202489797800735622338070794737889675289983513283698475672875216197600002646981486341120321484592854617346703774533944513795322351888338600608628127408226880366799093365825687697143594487011180315958337150959290349834404946961702685292441151752802368548058077766042881273216779060518958146407834586449957430529730049621214285300338196055939240750584712534313457519451842199275799980315584063618706867045400873639036841610171611923880778113327004879864997559877364821890079078994040546466701641336555584776933452388802476360487692094459031142909925688390546236221730645122557594121745935690293950740173366238870854095286918873906840281407427256416803523157151172922491173774404280010946169276842682849816215856406053840790056667746144457188284058657621653903832975452252511355279021764605116573272267450158318181399057050112222386740023783567353303788873120465343587236850876270447083283053843287949895412085690831522110612222495544546719231636524038647577798548541242549665888610352584960178907128696100701495156179021541820471091244539831644774185545313683568992465179378885598262495280877315917572339401462906203509498644715481731043392699462805350618026623692508245648896738366005568851120132578765610854745421369448134246033558749482224322677012097656284463226051971911899992344908274676946705793966631974718241406527830934072242550387338652312309678678951936236280020020501560503170406669557347361061090082001840145086546552155095983602848052109364418504421413701117337198270555744223196475590082062212921448791119637548268118330085507149598599310071900741909865259932470243465422803365393119624618316664082521952357148434473070528643472195107796469182448718748150273395910096255547903261435873190902315019401705839861931223672673677795449293177383599478702101549683738190873284059155443883149726507919059047613704782338636917011057659258657161861626834696388041375456130583058154794356289085511335129448609111913311817356545926530411176718328737414578090079893470422451928185674416769029553235964410583557734569572651937949925786095993502700996421276979314602314601058565488206466300208139209483769963023895297566398719658463837552366338291375972417732326546167414158980568150140287507164718625327666340279223575642942632388650585968796447856464517904599123146838908507939602028524091479894053680927190520006453780936438002380778076629890160449905307718338307257293781253315889823157029694829536783631150740941209073874310967514854696003349185319499399254744507042991713673962950133149808867636405844971614283268378677587602013025285304673890400915353754880018241975121397187880721324568934884679498737049707817784499429308031187253667609026215521042771388757699586549134333976618944547109035796882952868915833710366602309490472459070391872154370815732134476862850219930582357986613688555479687197263642377731732641511611121417910145059558492543768332769307182817368241081824449896124408969170398539571707456394943916678147333619059580537885116301978240132491836258432152955225020414610049723360224903143366511446383087541312005547771577112906531646516557066914630009749416030654875956454253778833539634158914976903193048437958839526882135626254796189812919770538121613843015781837777210158027158303850904152111183738967698055498665813440418096104479673668434510247070188140042072360766714061896800280911798985146208558227277978668898028357368483213164417727813909957156522510626280264239262338501401818280964852854346709364967707157241374339254358817972238353234784183112519666600312755297305014178640201016065282137367203110533540147436877191428694378351196682181158207756903415106699669594212615865167682540276364040576228330897875331624013841325326719323524004288800079475093789037325829249102611762869301926049258397583355075474550763286656405484087322739322400251255341840066755319812956917071630380692321169097253398202113918082306959066404096272558346036448909261752190614384565276951040363411774228776527583626234298670097890484826916316959489594555187068616214339059508628639365875763347467715663312836636965345493439105776726811373960074209067142991986255268673095166941476675586467487698768886103843301482438836154806850253291122245053734840856272763779808096441840685603485518937170184809705568461975768202821924976523134182750733229488237636143956223225423862231707400076494251701311047984889470359014506568791549523239930782488147119396123253546571715031885900826932012786142864371432872712017921625015458213881851723696171923319853559247739852685977349812688421814068420857652989575434450274246869266266894364178179120855714489752249399710265367682953559432549046629421756534110857719516409329591633577225277156757741280697582618019592524159062992280548451871016978187183880990194140944594551074380650817059980338961217389286323490601916126691825270204520823071683406379324837807689299442728680101762393170355853273407226478846426665546495669309354504645096743299947481588440960309472807275892474356082016101647083260041513707376923463645306099883246756840651869904984509460568605291110529899275111928407288007174316348259725502655251784330377265602626084060696681489866729381757565853737338925974255643609080303173436906022031397414519315876817069379391850047815847617514717232853608762495364508610822337748619402946920075159434548064776836805688489671253988731325930567252322687517264637364985950267762216309502531826427241562644786951778244663796117379680870501303885743172638689069925915153754358646878132409330186306561167242437365491683417929311824764550245548103170561252735008077625684055224725281256736804263731823889955016838073569919122439326371266100702561132851234808771543068070396364030513709937477729361189882496293899151756323935684651317574197974956537058786548034392688775393426480343434561570176391234616323486261895341105528584704913027172307143784108690717821853164005103406810152891012214869374270733432731259847756160964847317172648514758695892319437560052469265139595714690443543588164651897193090603182396545571369368995704010786830023454923225273894855473707961952587092175524921660709333080475378932077383734222676955426687045743479786374225461700662352412255245796242952418093052446389104432388157625212886754198964537666552921068356920227638559050699754243377446225676187151479307878972647678962913105092201463460438495209320408820921838061107811477809762512498920827748562262266968313751808563271910928799514707201711647009356073239872981210059147340978932190717156775302033033167159344485971560757589342908541890949974759121906567931140472891196908627225385378410271490249933665546644736123747862651479969430822530648805752887944287884531410938433915286767502894679844424782173065359124096496524716172454028325692718866741128968037483082512471472464457958495494846692331589744945918187482040386865963938228386692452036688513079931909076422480207655500876487337235154571529472527097646726836445791364516329391856819711987555009352852457435184805666976673519679412112168568529436780923579215905256884109196305991906065524185071099214118054567707833155988755844276990828409786069744844841754006614132394224553972814676961941948309776114462847138029172553607403973067052401984541214364380317752039355271158295723822836417592754546735346326497757423179726697644762729079685247906259701178221166839583637806525764824751503323398666475243010119676010079943097873538850336981936160366460240618633597502541369445893992441207513547237992518860810265508522708656570305738207921423601255779490797658457328997684777687500717816925437522543908830516422328588831009621930077581522913094440960949143660989338030049720351144344472190369299175339359226465414255549560179037469722504001436862070742596206222891428657441450866555409224746896070092897711801703035386644456808566776209207201747684949036517929691690923901438025653204226633964091463073766898468593069787342365198975755823146879430907339245672561872689327933373723227168902164486493826863446002335379389826362785925184538955677541083854386449295014076868565269961663670822210822739839780000036560162526801715607549768183692757997363613176430419608408616968292084761878189543821911119262784783202599214705109279699627345788541516817418954819882869324854793861553747581984325684612814818769584298691495209902635341019058922408244459971994856095195897513923501062539313807706816908605268116760424027125256523651047843164182744577229710214644727844684748864769939418327093907503437650549851507994617966842730282613798717306360312017882637046696689076956605780755609283892821760814601944242128346665020704841973996554690740761750126016071564416648675202821686505017653416607381556196309663007552241609083394979013089548085756272310015898600081528675158991612288339905227885228624430047493069935607328991014282938718676938213967812947540985626864771958977554920892855356427650297613388263203324340182971325845737892123340380140047047585018486692826143966709016973418899953026470766041996427321127895216777645386106045029015377593068825254337084764665437057859734945799134897523090490963427474261480398542358276203543775868246393733404900732412309780111026828140185907196435926661252452679193448246184263681474029039396874313137649938811455019737205102793149271706585324447737035290222049660730722618785943250187607954178963208556218585944315864464509421720665444325920933683428035790079585185454243274837445362555193271949778589925340746832429332326339206711867213771643245276122605681757289566727372052262560611252615209530866399722283379764680224637590466143647943476931862378267255144935752033460682181659250281952369365205528427153281170947644326495361133761935887164108567626964607196950866084657101434340875905770405078255550824519740570014506682615193288491420767988201112499705542762577191074838583966638664702817601478062400834690002343556090407609784266556266673290370572912875736914121542448126222828427306236309062021581942278095942532185565304143426862713413999384991477638949802613986053938887092706920566088925134594968279349039942925057185688579911157857935272016703920311710609109720758402939833234624003225439266994912659012938246208544284977165256332772993063381564843024389684074338473300560775014546127187497428190212911862730586618195861194990083143372103343522695844033061378965178132547546442757065777913847326877152646363836773854548265150981016684055114040741528331286612385698963761686465672539465121597578206645297192027800417057782647244382195710230621455615558086322772190905191270563409783273172752764170829945427070588289259872765819174219656129018593809226045056240548280677784477504043775011104923711497185930354847187134245887227896405730032826837261056256716994457221815738172273519516405524119852504669153593271476717803798419911977585349483445313123123315724505749970043015721995428539589937878868519587762694378313566313370257389419904101301490859074693079151271564311977218925947697659851773697219481649628230665725417638738338149889536009811873702553225907734824659104462385863219058628044640676050932156629556024499927078565501115638386938702305175039619004154483001036792193807275069834150943563069942229881336281769876555386906781082094008231695844628424200913256492000494567306059289737303527220675850280268591134785814387376709546126736082294066133143043026503016132364047538817321400264293239573603241156249855007424496662079256366768729222995020228458930100020321294105842884049878541467525859823242714242780547352242159508787130121226516079016129329708610761142556599429556733628574436408701936724383271690921122023555063986535259277926895318612605487650877057561041999473340391364646786586524907698301589719796780503559638307594193547456200624717732602960968500749797414957981278917481669586843239229861948621573998647817095146085262797162201866414749028401104959794005771335285227635022819943648609000135602748189462635045899265641331948359853258948070132137872179429519902627795716950350816357371462373656530559489795891159632495387813466880862048334679863578658094533465751964517557441310620498224606207991125847925909106026450170732912224135307961903805712531971492263950076632329481789526788846143496094504668832647112512420537429642528812224049822619417578349336570171632803730867894849835627225070680536265232232080678010697784162739354596490689856962616503128508446291527578403553192625503348715790743668078080305824919417366255503610083443548522277045536419401818069097018252983085196436616890115085143702010938228526474416099015685403334198364960842961243403976810544630817411449649179807913212199987649114127078464813403227202167692233384347533811325775608844284122787863198046812842810238279217486997666793270843285868485799280478103846491472228656233627579865602910562851334345884964889116617151888427355294191240404691508531959691539564437160702128196412093926738161416853892334450873393490264156048528692360649621411623378823771446320019269602003819178771338307573842819407040597593721977537344095571556014483558318991410866794614294906589672168431774455302278807988483326107864777957272704326595533907986197501208763012371322333968343104628743907276123527840112181630454608546572215989915404278356718644130404805834670225602544810796720471292095335599656729661877374053774224091818153667992309720703900083143375498124344696797301116292430781836342084285311768871716328287382307547313954677176501986402614491295570864747331411409901923420161397082250104926801825960919899377136367713535058574886755653201026593538626181324618627844147645789592997521732222282885354848060208752135592743753388544421457666120206100687341333185340785262069515860576560706615216031706614408349223386101445764723690336187952790371202171568926826899174808385419783846389946677451754833196113339551674487607660144008499866117065232080339049913277470772922399701047504753922624321770208090715410741767367473936165042278777398868266652320133765001982820440856112570233641405358798154058938965375343657527551694547230105490208437638396812145026285922281847946482746160550700846951410020705578738239583310778316497827608562141972463107714072976061968288441595649701248547873739765029077286372883587486037535110460885556866316304966014055788900094926631580972106128905045568693868287091742794225003386677698197595705423071701932298191357550090607456090886448363485905214807678329492906270003792565970084088027911515584998920029668710633242391738164335441585774752172525989890626848590531771907093796157413214240040272339907639480875152023193498163243381840003451319451399552967010624233133052572240161864352419767852285634044798534027026251648082561244918655618531834021847105522790995893296551675833756540627640447492797982464574892658082912101549029695133497511394260638451082930193728179104068551910474444810496107687453744154967847293023430112373688406999428173715934757985376525618919472100685297519780579783006821429452707276625010144973157849455621141357233129336946542945395592018148902989768761565168475443921897252980362922564440782892097502050573959876707242637692019941272801356350166844337967157432847387607000166849420822230186841830378351816759198380631345909964379677252641193886375407217561999825234105040441378592913291588590324114740827587830230273153747826412435817419837324810918787069775610129585123359323884852683599497380339215831595482489180029668137604928538874414782875560237404120074491364351054835241995930004048639956155118019364827261089947866533430509227900429423801349681446947305970588966283358302330576776240251283022326573751752641333561713145854461144457809728294080164215996972419623833780665604532681948875576442735844023113999422816702992427492775140563641265470350922091752746753188785297363161003423701171472854360195888886946391876873080675994473198240868557361247517829234925487242291039197976152154931450260800227456713878648586564819847565873709296930204439306318599240974758638741521819587549504788712871031577999439552532656694120194745912889385038543908537231119371546328379404534806543434945339428891264321605053440574324799872341104704718148553485753505745092557208868557903885869741112978914005725363115873855082630650367467338647124931294375704849094135185055501815124012176859037920661692476100805895200647125124127881649859383441463354928190239329609305402145425886111058685309704802263252703455360851887681511076162082705683612335009582302571651485153360708349040073938305119231451651212301871245765522165638538674681103529565861040773158753779012466005553415621251834362215784148639049415412118971556792773705585150391980622590271085257658416564970580052153402601621006915046874552087793213417195367823507152485227324951988836971720810743662676773233829541536383790711695829780220797228962912162423095778730116748715780783755599812500378077209270499943134998232040702593124856063131209110219144411956388877599332417194459625376011329827431726441324260429849929834589157598353412102759325083770833014349770413708481908046664594206154877659280627563089950847918317943436328768648327816539100207868835587920482309138031639336706159697996603844249992971597180982804968214296812914342515905278494307976705659738807700799232254682100741956477786527292926990169893227261009350572339886140044359612539668546136510037728914970246507109322885687617904474732963790119393493429278764033212865594166189745728260457546371298634514803158338434031804970311719527036183526420536501091413283442654567822092103213932866545313466006720802995814535593499532249938457206772621676684473302994678221114187339488637952968902504945638174979810175300631251093325856038950214443484625457056568176417638246127357708249970574732852550835773535123690489240430841888694173588826573049574222316220104223283993354744810109890505939125088572360270751152429370653252935143278254790299235414488912472832366708605870534841492286069500173050441115207413312099562623462682844688387256839503546601088572519480139368205848773279834821583929626709651409895658061474198684199850518196091154720784898905647947390032704963350243679457918977211207223705086556126601642518489386513233473160639433668535976810044309029097289694660546336574813686339916592080601441530609275428479784359021787867935275743846499389300606074935876742947732906787097000967666111065137339164569445187295640233762971531448901023493610572059558882632380158053824980233489428821944747915867832849732454788671421386246884117010341272072356151810392833501293171960247059422383031313938273277458886393323127732910637700273802171783901456784712000670937753965033214822740625914933897336771588072450001281704187807800856590501421286473902709190918224007466057409005605947889293141860336989522936860529946445625657280657304964036286788784286560298717784818784030637464808516388745815808120573015145936760782596913982698790667141919234528898860466443794766146754618606922618228322766805732603436319145284757635889073109641983517395761782024031718717184473458446716538745279145179576900944812143646098630072415917816652032985847393198644257654203670383226146777811689903758970387680224999753952862583595793928739099877983882145195168848400579522724988164999837896319431999598768171902210745328518292911655454876788395117055453281591391496840635956672304970746408450890536159065064835948574855587670054427216751094006175722795909094407916905652940826238966195617939264988064366211981839166656614752939565761675528230064065422965479431237667520075983884995329831863331127651523749615277421141175750011435906972474550101783113478358662903418785348113961513760958418244286914590540569522123257440022190776339012923740050824287461677132775932384784575747351679269213954682014982422022509482692496063895221713408345655357144738374292112864456594856651056504802936269805012838942950167351950542669490485984797036930443705098111861484121942708271682412653151469135469755863653160259941981520665076744430428398974538449214126175872262635186603897375905873227145162441460691146916633275509683469839171175729587274256609043811081108477761790776844105938884195897650000721295560648119050147641058894788048214656095762609778291500874647649709295963852921324203138891837664862097586792729669435645887473770470319237174456739522758431149109734136846008468283301828036843099384766736010351250352157902150301265147990794202970209675300413985693699742771402105016216348576843626659985058320591888977621675943157983704152651414346662517271249820548710940692272049330001687851542049244460481539730998320606802934518164842177818909735137866910643673219914971692988082252829826804046207060840595243966904362227149476263656570111917296745227418345288611593671973227017524732910346372993383229358339033913301519108071304136633894942305480600070164881316086596088879329005677102080811931056051484593011890930414277922833705173601050738699375543130160236035224213869618115330448439921241469706414816761387716410704572860259954275583829964662607865278904408902811480840573751810960354279836834620493473461780403233131606983093538991785525643976612804317654165597532627054224869867185489850456600354515897531083954140385885815645671305484777019682167823113322250890013556021041518363353825731472970770885876351808127681241989172549372539770184637784226469407287816715442475466276381981126393988321260578836800936254882519774414135003292308618455353089183352046077893239459524348454907585110058276676088728769605752370069498752590791879847850966585551644189276653250151795802266465902769533453202609795429960212539126175391985096490755737713712346134678553066398452629802078876435873203176463420175344935831409625086153235587501197774662569424040694646275708580256816191647415552835507306226841113544607859161499423564452976675212195871059539378373952723788883163272875907166300137060379087752676641440187734149851202541539574241864314284871699556337886638061339126263316769723080720923647021491453631090155579066222516698175292505221438941888592234107027698369301760171154098812747687949171170420985050108709245882940397045141650333661968661414498055015809430273965173076636992516490520686984975906013959778797214281488414582107627563879911854343580086999894662379869026654515198269362400299975727507199589008581969357952536927232955556809027301965717985892184504599933878336057985160622864307018396825840710569351644596596560617409263441324545952860879046487986318818475520792863822522283692890809178730787172088405679357373083039009040559941811927192658178218304162412477102761979985795581442764343507610793480082532705412117613925859322413087117446095059448411829402945890234504728120037815861870481129897106088085319289947265338577379376925780846095902325974818062133844934864788101298493342397827646819960819753305198229908783515270525631030296389736154141525899948772748877795586041439367822574454714064794067362622067415771673416289997117819104162099726206769413849732839200400184056472151420029131418661265369074776524567323108741248950692763140391009603852031967755587629166033860313349507161262699589727432134012973236493046173423407767144477497258141792996148914386663759068515559292955849461265647283919850413752893314844507502922086861224255777288792423757739968942574482884333799181061532888134379499506797025084904661550731513602484450315690632871172984760640491995039000456565097987967535196040808615936683797209895934178784106616522011626459553473941004982387319121517659273033567153740247873186009744253367258614712278965328327995778483665774680006001068794936571490519634945688629793047324830769504501129172355332222353337555443016675650769373533616168318053226621727882464485532725887804958988401974585360975312543219753069620576547561829980443983199062850600081168161470373519993100044295684311231325319604495791298655810199656517050635884853029148768742485224882317911132993979961319529535194619795702645204153744166580624608514181776059374601696567419198080956296908217935140396311323287523717951923890670765405457644199822083564004909147148063888370354822755778206733683010113312136074303282232778938782777418011810874815988963107360026189289395420204109542390828245208374975631275084392790341372605635814001466432945824662591035501653025675925146468000463325645540082830031250463989716787366012783286972512179229403604699982452303584137020145893873133872378657351262730316928901245004926704577683343003385156304022354406682194166579229265794267656333006626976127768435483635403568040862561462185203299668588438194214006851379323413042845005778527415610471880022022666801320490264426461161951849189538192242053794265419220683416268100388038827898761328269201736913068689139326666532201692889601974795200879602450294901673618987150543217614437406864242153460205930472041759235178610568901901208889929692790695636202398727643208015723806484932134588864984114566724316971808888748903143105700735083788181186077621824115418928479418835217083615513551080539993399272004720577195703169085750102552151909606434964897889581027080316496655528909794570600739980974127471197964220736685627540898917036985091214936979149189958714985137672160652926222599800253631817455628773209023450517173980136578659277776067418977916949975500294973709741184494421211708906327938892860227209568742058689745935463421591640562732351429405089740325274080871040092386157661344148143539606401050395045126780046013357435073491395692777957533937807185435583249815637413451542581086200352008901194547108705318350344403812285708320622201671891503697137318397467382860132932815067602647032718089995824023313513156563011524452963285965797632207519592274946153552849258863896814289808336172577810455896073989263402471999752291497685032626939040726645432605679717079983144801136240899106686344630742911265828889107174760303212821833498415653817079987911607961646211819815237930138968942331075292052978176971631463434775046332685390177639803386555776380724233653675575766171540086971199262188362864793765371903803970795494983007379567245045716644058599772027152209943913036187201582174618074735332525111207595606243202737394665356643559316534878970543011179383613774380131207368114245390186019034513799823185797009349291784092957154011307262295875801446165570741679015794408612854059722325816632748462752804805786155297788731700849891127531432282787393660148884843962015568769087408767626789054429174880133905473832916764278865678096549354462971558368778312507637061189035300569994492134802692780966812966613525756506824140198843747410434040547952666056467522037355770301535744512958794751901716358912218812796959672040640219299289020036509152482982514877693089574727604665879902182969059656522821726778040913836601775620303512194795650992292165620727696556427182583626469809018918319143753961972091301234536741704410533211567675431888584477508417285403552821366905264389750621287906443481909938383418932133161127340480008409205036327665352749428552059375594418441263461955772885709643297316022492492224249287289821700514346565404172398347091975652481707459490743344734740285368078893296223135565309505843165502970014247466922183990585388713065109593595559818791087515689092035778090622191377971725759761472685021190449025648672181286694881297395970114206474512248851013425985177810657411095136337478417318473688168114599489960074915504096241830640357900992109596688232406319721939660950131337199314603236694324889990491336762133241118664559869322895945161730761309819640127258704574064663048771939332306927361547484561203134020006024970222647332172433878692439157889189111529822669531621095366931292293264602185735061306845637106715355925749570622539341395823336189177963813286150841841636918109003111337675226027072271654712352890986292854336993460717471306042445673304274559429350428691224644000637649332729748760965566496115594472110629082705755088380698056750133564216637502887457668354715121629437909765346330964426934294408661558631959272358238324373954315058712786394087687919265480153821484463550799615985983582030176647212670469028354942832849206768878984952575237102879163287867717995931946204271993763383503573673290184199656880011860037910939597388756747398254763202073400568954059204379098967620359350034152909425262934867447620109088315006278558640401029465178080581431368768001219151095911003254399586261216958346298652461511690464102754554367036410467712434244299096412962423070635885643397674365839791518175393903305595575271475313033767682242189607082505461823214051600316711113780010071142123314062410649499071551325435815443201862932906892714708932186216393324294206270490192268798949976186938202759162048580564030752013253516158802634293742218198355240152512641658998861036875533161046812900933138909518333464621566416807116058520592688134355197422983580307986275759319085035920552343972113371010563710455208059793843904889662007025797143563719319704788504409257628504343656064358067195510642600528997637671521574373482055156910571178937404197858038905588027922542059426941416566301287220740638269028382525726444651271810302282979034841899291970593461203272335447028000175294406551922910816849693222311699797051489629960160166467386140092756734422407637521610240837351916159899836143853222889444642018933736356215071111015289978341683061751372685156275846522733619591279802406371688333042720217503903023343157148777089071300215237243014808655970293834284049797923643639071694526295705029246268786177202494033411145006826510018105038382199096799332920194907418241123154997509540893615673984973483042892700841157534738271122030323378802365769392606963985218931824469842112499561469161747288331297180986124281449954246875108302905994286803971768070374954635384860644940331112171360932948518219688268585905152058174102891981970375710907313180443795589609196039611003980115652522477435719228698101311292584014381353124153588491134986082534322973488300027724119145558284576135586295401144332824531768589791980282433507735239455460093249929316790722311970042095869264412457498036072543759328549177754851398025604872058671428969315499935083474270318187022531171936449433845581878674136779293898776684907930191810185469923023605742627329182593374277363689185172724373060646475702443108276559780004697779165748996820938252148144999468356143096943360176258819407777013195070171641905419057738877545573154498875729086900114401269339627157036238584996240489860070238167630184527676282721642123748735192597079791866789134162021622982251890746151815532137368429849765224617847532817538307797439897004295308686094579550216081860833070660512232406580319892292426046046073486876400961467366198660337468268083298930363204045629373089344125208120525906872362179520812135692505531615978967227557480818059150874783771863095294520348199538252393240148169914482091266426904998125329175094620380849190613760245225864410036323973782065531006225436756518426150592601700173012367623141506822890051880879907478733691850308931382076870570907103655136830894766528552608887591247202635574672109045567728975351603752503836470997178852814744142490113562861153308462313792555202805429047576570321054767026167481972676800626737749070461389403096902609234244981770661584475275484841833276155488849418006739103840445962648289578504131610286926070901880788305850235527904611980864178186510694931250667842894789107296037119677102518747201438887094701507755379596566183022174274524430923020467026080138330287048508971748928506767532714612653152337439379082885138077842813080109964468629807673047015725439229824666574668849487056777286278781779155995404609858800519515366836406244810323049172842173424415845404468996361319821679603621531480820537318255795874843409011486951853308953343155693874835604941822969272118416970614001610420539645289593133021926534254286958622787150066981918960909485963819709671759037546005877544100985951226614169008477829278593916838863210383051316116122554618840029668201320592765973703199100321464550780505643835465429859934681353084233517949186909388952993549288154215951238152848054589465618964396657609682144899604312993482702392082572083700620389380680022801588302003154267436080910490292690891908356333763337636858271840735071602283517714719895716561236710422038136511110709285142319052649618544666425991641074843113707987115222908093186916562612006956000438870513907593479395988534309836996122646345218491494475441730771590849114680832465026996649899322115507473380165097430874356498961114707234018164407991911797215604117236480495106831946856084995382591868432228426918375506933419610927547439095266663299120993457364358790688889267645145432914030686360188517813278615140891871984910490364423146070454346534119078867617512111582681325877127099598774901825128347650562137995548370235307167505819629937793597326073497718841688030698017023592424229204023494219982377080221475388755934529963554197839660326373181611241080567093850747117011997408873313577418658698934148263836121748975917860266915422460215301278648666523500779722394571498835122409457355733759578524008790167781607155271729267790903214263675164585470945406034294643090960062632482812425667662219283630872173856040870613675065218684802655681904893694659185344527969481571339216658757192680264129785687973550847099385785928524055374636132661658585902757537601699805670473477690684968807693330645682342808325184591733002893382682439405252700824798952094682445918429789796405852947615043286275986818841470586865932850812777493649950488617972912004765323612720929611114062990327524122783227008044121507336027892743106058244321366489072787788004897580331292103209861964497896535176878907441695031718747092586256457582303541575973419550152928260100632252075887944668731905165464673576645311331225495036340060836949890175498947957740832439907807004985308480329424580315905493118844576966734243324968146546695482263149054467505212463585308361897513089009224080694525792208879141597543711665924936040015762272467187892510850827135023137505435623204777199465167355390157502150831962614580054772459862140591404644818178571225581468550518248160484389400973505232452884122099594700622058922560120211145778793549311397385491865417241629054148105788745741611892415836001766524755162023787527504867817926127691951097892426492051500069343572295925852254723718768270080064465148833004685425252329146844125880286520191031109237512841963982624690997518479683925747497808939004728764773790722549005805044956672430600600406051926678817432720542781828052868944864153086746769949300579906005139952802484305731372606191494471253816807919617918259624679655622404151739812082514083423395862044280283218640220255907924555672049499562783331370719107934318630879946283478114692510597958833547883381682671595508539338844566419360669617344006236275677619456778944660002154064819471797191369252527339373152720908209555889282968203808190976283620391423808994913354921691568727527967440099212929986282763976811905278985019443818683598167472371111948011962365224089134271144930143617635983245936940027972260295268075595725426722337235185801582691751368478529202319676614240999844145254237605199198036963744398007695182766467693552555142968663235459150761729739439959785036814882676744274538756338029940472577224467039454760950302501216401506348437597535760429278298429076877922196360362479863773441406004834826634023616459080122675399531453002163127210422051160379071535190341957423368070576192804974249387885686241348247111700337216227483558866522596888589486695982119785381391672172819610876657017524135791252790614685935937583646575422769844910564671896317478377181106410191397638711107505850407996175562966200741433469137169241674416716434777138249013737410981142969441741359987629925818117391942861349316288164334464449788679782431004799103122937580162191733659062309390230602193102974094680879124160218700699812731126600358088195045462851070525414599889397729357324538155070888645787976314755729417133512692203076231203611109474428654268096137012460700690599173424678421453005147889984975243644109089790878910392678817575265956914541039990045591572226139197308051531962408855190534716850254005330563508948900252938449773649870913918092328874384142869570094367772788626156181251586576006670392636924112403041306649314015334305601621322980790907451967178234356080623279082529995315521710653922568757003170221695541661313167074724582711624774703048975194579694384296782904510096317955921032486439283050783037376619159082667714199303127801990323682946758667843541412277026693947922401636332146400185621840896012235894850305309475266683423229106129366074842293790505556309809458754025056560422680125341134749738082171618530896337830157488932138286250373747498733575590486352562626698993581048913875919202109374596925180574176335958082105963924655715790940371194466088610974990396818364303980493749780843881254271941259007777416189701965298188955645752635769886575268816091121334918715571154283752323921005683901877234847643456108135378545147352520771996706404970534949114053210408428839357485973108428336307169302758566073103994623248430030796240829649705319387872462761978558396994006703317259730919810114528071758938383202333245584537811947160670813718650210253679086887545873801456074853224126919518525057753364252378087906043733813381052080990461407248024215917440572997219705322363474986977424364476532013618413679538009121353963592054088127892862409494472747991605764816131251181546472272332645364517509362050385431953817849825975832615909641342920467026220955719963520671167338988166057817025369708805378217243757176705051317803905976277688273851213790509555792114110109725886647302755732029340037324495145620623641374169701408539480841969978769138425639410773041676561641304952635299308928098568516831165324114307660390663847942000311921867722384508183164365173877658231376821806168879788317905300335138979576516504658288232380252234150724632059303476736772330178245792424870643299600467484545197891566495862131076627617985257268052221506529391629870553935847887840346154393732660371279109195354622962219971110259838409894986545642663453224134566146448386361771168491775310734698776524393379400912578336602677157858786590646262507616351187122405698779467593243227426269760061570269164021820217861401481828685334218127020445482149448572933948364798068181967627386975133828316607634058811450285961591213695655784088530094680615443473019787702699933287906005151513150692019652398994035093615973059385662902757078477289286823597585953845003024907079676982332816168731181585076812153983217510041197616508974907803658417967681696000905783188055348437291813890778749031093782455236574807931920472844019731885203748200783344549257443286333057319662234084289288991760329522756489048948967716359187477842716114383736941528328687388143203534939937692969005121734126829343394084753881509448831747499564028519882676484219265972699864669515868174861152426699983628602817826084617903823448168442226364447246164268474220363653254092959522233559450736514773517004800472293505465446545413252157635144548101606870286861870118135937298763069459105043003688239671543613404790488070153386303914541120010750177166341790837974507615596246344778728459154061161096096620305630310441481668984309932110536633594072017643811355401646712747926388668258802260895618083602189813630911450740532554306733201145769208983760861527245457395686983186749072691460388029604418507224985370157860071032337864377528503082353817553737952134281256530672652180453325867745208300427604185783609174665177658865334328080258389669755773716807376857286871064245052009018345625230297227438619736208681741267523045696713332816379185155486607240815730162455254826808768328470561661853793430419622064658646024813697200859269526713955873813506573949796492915321739777394588895107472759106984118094657479604368615775967598293041231105378593814115149745254807377463716849598759094377023424249096095218621623153133979105040667024235567034076106151573357077584286522324845681277221341259464162138496165833002688221720924950428735197450760662744112359233959055234256643803332590371493458623388225771268932737087363928380940898003064920544339224005670678281575441033760259069580458652881420533668706913149681241439458764331749100128080731103862183332918531219027392866513142217198378925714692905496177084293534046949345169306876867657520111656672990660361171110513381971004076769636806779449603142034084468465360246675056432812205820758511841664856365120113700902948853150220704054892890141720301808547611812666231860118248105443333483301661496534551920021895301864040546802302174259397692960332997697305219445552931783027598304990182044300877257152317177576445887695938067641161456558718420242586576954258245497278988098155031453182816973626252496634811558916762983647247745914178783395636769247145952711582425411447264721098834115734427957858598876920683757484851777827531688069804223372891338763045203685330644132150031565801740200745866401530291483693385382904384718802261763039034130268210817523131382418653265223118676303773170746929324560537935998282414231230319707033670289516891945912910894989292483757788137735095451924134480535224522004856278598676953557686480094984205217994310566690018614687929635572119839208537068442968273504141405200618082518750824506337005215498355798000505086282001088251576781410576707302550832971102580653457739085562317834026068575195867737080845206830470854250262655787779441645339144373339220385280156312395947051365511489560859647790601807352906080222091223763295145420918690968296608447300173645454490856369057366887881121298984495541441121077215855683235559024792962445369484225341170907703027792525913833220252095236529835255821164343538813610506042005577529413607108385668100689095119646281482653574301177419039822855429368092066462932087344477637006572373540625039418963397797629939233417853838871863477338585126486902734885810114171180699689209734017836092322809252567421714693114349106879565726044882657082819244755928156849406156879742408320496930466635046495892450436990539296561225581491823473169912860838413472040633205909892279888874949374473470632445946431214513036515613199593373489133071691409951089433099278412526755984946460086707851102045861349589803182954578848023388848154775387731702938845545763451247875903249606845628777470998709698150563098833681098852946607138323443624962802558605250869380893376682089444913125418051199199739089418436138475084959866488885402897300362120961998007220678725429430299328139315860255702494277796067244358554093178385862611528438800056087075243925532352065582987492531517623949763303591956528176843602527033057422531196713809479732205861321185525980282008782565391228969037379949688410216969807261224189871177046365347719689792075081929246267764248872987994449598731849417720399796020376056644809896792245608182916016926441232431946148436855721526782141790850445345365137404701042311649198637269596114111682777006657370102207973461999085520231881269598743675475016912290396295396475817230112546986077512362846034281391391825810316692078223326522681854754740475851332095119205214485786327393467112901044074674675601793974573520363169281833433790648045010271437362985945892930467030613563724516943598459142184848359280189834151674273700112686318818153428198896889021985844069760067471781084757025127069612850634207121617848100653999468335320069473854224254892388602181913628911792448227922511482459723364583923743355644747045773875801150914654589592304403191756710460584589607989625282360324539101740206437626208561258499644162938918546172971560345766100752851770232661758432167790970893227574744628628361227097483529772594045975049144917523470061635665863615582082530624889684758771829349214055864649032025926468386138736135981226760577353598458308270583531497329990687069084092861187476781073608073314692994104986529547610554521642830322769522991721275417619999213444422104560791448914983415558456768581950710876243206070244761164528003630175452702610199316923318010188270182199174626029325232551910622669214179611627230629867010027265585621825975307499659149306975327385817492130551127751714213048188789095288890092784017692887257407675691731624057460778201534255103567891428661091584311394997063491313825117810232746779436260027266496921677433989606002959677857474309707786337877815246926644354163867065591813031077959215002754267236935393342072954099739475620265391995494290308059022609902379706866467704299811505209174534292157205118323805503047772927433362890844841540898214930514227853649946012061878458176831941024595002707095590409259301145857811861085819013099756669738466463200644732193885920442830072321172731644445198714380048644855092632012512873811466695959729583723004424139038223737867565829614126764603276881036207407852216834265815148402387702716422362968410642607108852454406625773496579685474093159292438552824197949192081106766846935948254784044386389840912883646941442737762404594810737568465081314039550615565381019433854897818111600186461275426902763732927567466269774614080539325650213687420953475648727633534804359938259512522933687381692987724293533121819939848311798019459702461476273323836325572579349083156618978457309901519959538696344776463498871384541494193684899004680883703216403246879246187426503201296842032421371672905796098516513238191702886962164307289919199420032815180832087476094946340479967502937912485537611387891204952647457135860310491206816521401843387792105097642701757804135854957341008100586095192534235408897962515403962231397722421235722848882561342082515674724746346218933195317163033013548856003928965256897810957549677743142533317866043882524401953020571643544427137421364763150292063995390757504441414415356260036400343773850108350444748997915843887778419460151698179482096889037833951926945231183507968387853519944830028870500755712080544840969482898313854131525871048672482053742970732033665845972108550410194527449462110686843617512028341081870067273859415925779755600789309245588963047382024973215948279237831240445156160062194304872080465381465931357591719003647070543252597898652219222488316056454169418638774226349586048118884156677863084244878838680228095332256750160680960209758596749251020412387224264765306528696162583394474134280528755042687607462156987919916051450489607927389679165286445985379631313562141870841371449444009309034085070552246651286976180007096603738827810833534585283974625741723322930472734172989682721428719874721651193331410336719582880762439093226527079912685031068784776769926928272511080956378487929368242114643306560814890002900511202386344923806077963803195736765325878011246093695938776180907093905006662746380165022950062664222707938851158861040352540346170959395977338409400829718606154139553393591603995790689121830448843399565159679970450220181525699072332300475297733293994668344306275209788537643634734151740920646566218694086131560231070141589243061698499567857648038396164388801557527903742513572374367893047819305677563953813954593287604451081271399564321347621482204754770943956115925360669417209084276972274352038976058750841598583436827426900972205403843507187780820928196388495551603462521624782114697372017089625972699931275033387083075591715723663287452785852078496625316974497793532861284136339645005618725874440707075952015583734592830621342807938124001735418015035938388743450343862728886355611219739876406830437037953599009811419451769207027259961908870723748830419123188583486176558777194469333218645078933762305873077278590312978130678686413929569203822914404240181791485685051329326281839878155565531108229765447090274458843292800931481747023535019805868014344239631824849369533218100370180603422102948544890605178477960578372344028375940454517282102685796856195081935604223411172341407100992682281922592176445686503759726565196325565572715534516591791019968964953909859319057028180649539107580009522897963054643347407643574004270043605115843100060040127041077835325068537083367659906455778811414920014720594427967979178506745168990811247196389456613805261062615511236558140630788809984121323037619090912735228115123848602326665338421545303014584748817249012433511705857793092591656323987129595182963142000141792657885993539302933190196229102142582781314284858756506600834023511223553010868397673607894304087975771544724342526901813613786443208993400284202689206201707908432825992285892474042118813309691360330891938428097468748884465080186805004002369184301029148548355025228892482516534082594471922269234473294074378821365925190312276551578559482961285688748174798736543394881918614900264986502486629575422142802062997004081774502294094794398006553659404041942096562151926534482099795776999976564375165817303175735089144644764178384092596997334194952689539293912305628934551158013465263215389021198404735617671165437586706852992083328236361526046304185781215567673716385722731372576739513667126639264101841273272105374954857953693056753649913932447249285415870934447860794331925409826099033869631475401260015227156343497119801374181462926948777937514969260808252910309690521152608495830277365983217559851574548655075889470733155314411690567806901072763800058933588696800734289114477000360339026281196428126589042895751799183256004679747087950842535317813983783354578881886323148733983786222864054581182995429378196492666668365823804425210627411287197870107429476415614623978376075544751095570586130197139707044757162811001603957870836035259530264989099170649359002783203451269794778898265699351227382472630133102024675396791087859513760393903668242417294379066020386351090363064736919522881496008320038652653383976551173489594771322739930610274531751612587254505571824360101173737448359303442307990240014534229483093930471847353231436401617654844842295054516465131138807812828354643670528152543987930469329117466406630631268796436589345064607895528673119756911751479527747011204406105283272991498028411519589229153901967788691697726819487056875272896067419166960389963315840018135309788621494154047766618256547363145855368715503429833867310921120795753619294160377139834542100304563207569728448814080800512877212784553593688651226413908872610262480557411757479158491621340222763972115994957839931153153975173586370752799986483640942659819507830753917282392265235389620621565079747761679557401502210688693925199880648139106854472596918946100854044648362313597532389624003637911351814146369543708376799194250109340345138226583662003546537565547188282974922663697198644245921730715884443853308301663494945915731277673233411523445820776900895687967640190327010764588688755034999769393469949965706292115758848726116836442172620727278111780618621807144685640680082787344100961183131154113394950347902852195512403046139442055496494076203186267460702463559872574769581053837543912410695180876999810591654753361339143775388074168755800536065784985330453801472885445012014312049048337843339337975628896431798084271870071563157757401480487129756977676769902569958850979567441020161967498375423166589770456801235300483701437125560882536833753053259184982470847065398155053098572767308668354963437766932836317752751571914417657456810873670958343020259505990503257037799399700102610936770565548381422626701765778035752341420930742958360564396098151254494200314282603462107804378711989008922644334060361834468309835332880795453571901115540539660939758684427452016301431495943631763602575987581387864851808461321528838175258976051868510495926466708777851712918388374661139326899975374771506878641040823069448515791400925856127952962911289463453330063188533470849574229216103307122226352410698968074766202859477341489754755413910568790794503582971209936335445795708205181695279683028245448890055396467680615189218042058536587811615930751292802153133959562605593632327660196377139669174868080513422200547982848874518049119532123516322841288985605600337363482437209370729529900446432693956658436708591155092059998873170885577689750285206612117426986415655640830446800353207150439129741037103733040941169990431041002140704624003077612194588172996609561405896480147716393689781098141991242325153549775894618902459841595769592440315956406392544529212564752439716405303962521605698594222588562009681522318115802490512209643819689113311001053482980980588910339335760917228318305932640189962793681473615427350991724288347264012413402413083642775396376747071389671868148219766873378820953894979961876635216491615876481059491189691954290196205788116640280317329319124142178424419306627809358021100194753259567846275135420884731669869423194102631847333583920341829530382736082233365017510821582478088885765952675051946929038976962584902294482446017725898944984254214186211476117341789463798482997258067433236047686275390360363671865407499147789253767315759744779548593399998185020446866246526878168485304387177352137531087474481397649215990342555525859884792299952224194158732820566465296693918823264044636672259754763806771181986204794935822694754250726379088775924253225376307072080522948173195427147534353203410710249834407040320169384787983823365544290417938106723542807001214988856803431029693247047300422056933372744921754929373824818818597920518950211760773174697535864622604669550966886717462474917819399062198467436352127451816383242197068765250919924236071839755213670620261453661994424208043965127006773504535426958735862713614441265189505119414689504593294887779185323205184065567960759629490399446422483746591460576955853911774356606081625301439004923470916905242502598614974023224667451981462415909790962183511489877729388179476795179913971009698769003346734877066442783094392010389590424483541174899598331922781541497914666682837122890133817007488776916534074699214822515590512193251727162583504720695196682074437725550292413694474079490611934479302336421175440309221116232485329706141422579745972873879992074473158123204760471540913979729279680922518762227966108196758123573017224051018291557277407128713752024747897490012008900064928989356920860527483800736958483388687730413435230250065229131730462935647632836040311284773245903877815045385987930858674361229937021142472844421081830612134771289352392874563134797133971425256075437204603667493213815333851057965761242143014996182429214040110954647592934744162083527602207411495514051990346254176439783998298204800885674832207463642864069113004823309996442455286619238572340507878590951192253228127574495740703529643046289813107107339426611918584628602003529981253706887302851327819005534279468551640197030034449244372871729355581496620004999762932789308121851600955635556046932536262042576364744380306587978043216666675986481946742548785953054428068318504423093106617177421801591443952314704986569923169955155996549141525533000143492263668297298966254490122585329575943681752703986943643368517569438413125390474187545912478899208720462727954972851842783438482961305063743419996787827955075864929502781485409840675365725566327269728494849435658357676359138942395353794521159602949726768693823742001327181788193351686872548633307416124004232106669121478805553800082371954855226481396998287494808131521079903233445423677956994637334125035627001418466127483914032187566590228645762526392892229777054580278136372933161929201939182792110748346852755220971710629163272101970635745520076181657860058860704623073504648511054753937922493583193910768142058252995347974080068048415637409134267257036363198470869686885330274520844816064310232489320143806414896116333165751037228974841999772321486140973311208951788321273390931750344870264414284786085644069129609918349573291818687631001815905139384850374729027587868129474153416827417373872220698360921177922435203045176685861224568594944114603380852071185154449925077230091646613441546431177469997407454987426342896848755864370203371794253523981769130797793556434239855045664494555438853424384422449604119823724905756600352122112273473839236320908006125921551657967947806419736739192173108902019525015858791401430755888347944083731736513090729329391480512095647423623686437992894489717235588874292844401433214854045372335673396843652918451228407401105394188389136348787034316405858612573469159842935775628199918266682329270679602563834113812563811414287904594474012779579929428621197800057877771312618568346733998166246328704681169513511743093048807331268365898039453529064685456059510970608814671392380546927160308081136956703655587192949550065399323928369306270162403594797645405659819198869460567474896781297619738831631835569178585467034123213711968068038066954268154518638126239410746495773285577568878671893288555394905842102818475728317574539185050542674578028219835787200954623851070986103331216057560666837718824415269226023102432868855775962973846569109070031951052966393430454019646566884186464405218723076543765273739793879350686470087811745124713543351607629753288476277782681569130010126416381246858615294280715057782968861930308518555377961750218156046664549871473178895683460393626716996839493207391553015912089498291932772489894768135748017496674509323917338135786565464070705554488785271243599439053403265012333400085902720863328850229878760094109370284462059249481556477386629437409173821690505470242906845421313645125991406126992926518507293291080110075242780299565332918997237421181274576829578151840361405641954192762239725371642142925285474176167285222319781954674846987793052159293781140216766428658648198381276170593868407649590301160104412516207512651939784565430805870288146633145817757994249815626587907493978199047577083395264721998109083184229359726575024189969931973273268389790115146460617267737861841049128813197707530212561017344042058514649287105632707450345074706612340448956570039270231344835028627976981928451892615891548161701726094422536543186763974013125907098778716140500573643637981909019355501048279906904708953141960585211145907762067629883069612420691913004345233432526078776863547537184745070993472735939120494900983611371898369414804465550449978266130738864368985990062951494042823468992967572141939594266866155788985548491692324855854714049672517049832570287750306440690035811417343214340909102236519011759630021281997850843707060689821626509124889261774081152703887606824531604305088008873583821965893118865286819591694713392198444555237250973247108021171798242276441693487804282328354386180712333797297419398512872192286742062033587243259433353338321922653336373070229138577856887720748026258027829420769376951102993461584755380923688472354615055663119615235212458137999056909588792310578317420266189949186218659309900689651985368938407911933304696330127502662698144818121158473228974595126860974420450908891689402678551266973634544660568499475807964711146424110309963178924032354876914814173838185883476003200050110137371611429105569715790916113529937808111912930306043334884037412200135780860540800161450111652086849645259787580336275142718036475465063566503402908303339772811877473284011471888968414015817096491785313203505653700605731681260169021775342636662188271453484424307920612626860786346779196012063949914728592442948144473474083840553046586576255044767276249477144340268212080112440536900874830262427988601731276081515545947139506695692765945425977784473870777999002700904349066007247605990073052095719770096373114095781877128035543806809101771256853261852157722994417217767333467781506639768055240601728871290994349203672332656547331036041943974588197969629864875887305917297720022139956556932822480135600671048388158505180997046424818597385431316451583967334991949524996227040004214187638039876149979748113491762078563144610429270993198820361642001139604544713092638948033125044985065411175267064063178536520958412501167344086092381282603774752570458969583381874781448004534685906200487610173827718106381503046381728883610240452133392746660669692492703942218850660109738600044784078668638650564702715106682770913686770471367112368215849175613241566965301034325160652888317041786155189009601033565256816966399420392437021091174689846827340340803752023156087397534010484982997349868870119486427667618281402704909954654328951891889762573239137953439908750526761339923042214330162605378073104089028105885544645645461296691836955583839869301673945794528904220137658676700125647867578282864646126721915350272995186880411406690273205774371068828670728851288838089081531798635117212522436177798265770046191994104052673095975463288360000258583442837185775923074870358377974899316041401393079941578148348287600290986081056858372686793817739989170338903547380987869443970392905106076580501576342654567092810468838281331802034653824972507352705706456635797147189908826019465392244759495107428094302858292866833342169602259398473742880205099717262192851334524645553293510546653161548159836377399588265414025513700759328907723686631937070860854176084543440129592126142011259023860532308519476626912994873809719589153140746444368579061895849128968461237180558748915825145117196110522538305617365558530716793897299791727631085837906554202980465727126815706254421940249929428730124252052722975340553790371306451946628725511138810907320822993103109152684036986051434262989414833850022549069578372333024349884895592044013189643512005274898723574327750592642154437181321971946732168556106223528197009036335039328855514913671523558068611751123507768190971965969396583491262474269933630918947535041066263200086963607077574658656824762209506593670598271953041917501832598083193134247300669602143595860449169665187822637352523913363474978835023355906891357798781980926941548130099972856712214005519607460511528470519546066853705819003099485680316367808379854200182669699790525220460708600096524061328894005381774552603206008646170378645765092016645892921933545408310863004459753727416994020088053888265969659788311768391326050246847881803842857446869272945575281663796761344971247096662233327044689288662427933580752578866620678830676251706072617234506698213726383791755826945755390197959986596561336480824033616826170463393599083252812626684266909241260118626476492880444122829944621815930540639106907287927876307595578230120475817196833579332659420308976464470037513429142881073144153057735960708239294193928664052616910127176077509050144115058508604767155532339123789098624271022009395080361702381361634454813282990530818473778953446489785638716018750156895871819577115233899401978773847664345879288430260466731783404746221930090540065982186484392246582532976699319382409038134305527940049326118606244711535858100294488992560821372975354251983240337266272795496902447591508416184009286436478198176722133026875132828894702668589533340094802146308479687784070639926774313380961240215667974637405041534396219169986102438682185849622111369646288262139208847942726892681597063332482955348482645084146528312389929153952563342991119108039918915023406953185226330014078055174996982793369816585140421126798029255526953793538771781281503032213706901707760044580803908592508748321227922238550074375752121179566517259119279275487943025937309231094812883983350475397740160449305524240342552556636393442177117913235536975282701553917689581701595916321335528970980351701389650766706363146034712751726866938538849047016859400349391398027204175077084061265786333807386362312945792628704802754713487399302728899551710194811377541267083769788523887549777876013321598493657512590807269511687710381100331853248975253571962935370431321316643626357873763133534721188910528549517327494685027478613390917139737907194359078292793056419512097311239575711807313005888509400166106020476430207303272659208028436636437652436340391305602532174907112079559082703920578094465839351899841009414732692683736089751485959993669982675319352884239998978882410302869019784237039942983659765513573742802818773428343488029455313470807231314228024632743383987526391583485626445159330322354170987210664611464881945324455845876815604608852512349425405853859622301388571619358339084627032649790596487722780472959965717278812983057539475185911652064535897884854278710726864343087939222239057815036190116347408111876465442453152213309214110042196837733021493524685081158855339611517585564200174259375046621727928913392466676846708556925757882701196669922260190132888221448622210749133031742803002498400494528076443587632633552242720090114832193842288080112052644147646610327723786294179732338911874653135734654979344803608572003048789693784726083851690874206222460943281995037396939385663790896703985399088186851324788217391684887012103261950601082471771695231894097236327582913626886349756407578906880528899240137525506437325132350724760608499146908708152775413181457024365894692992902916732794646099758769256280046110712556469927540382966265430514381951245081215513017044727830167223936434427973953503242210639638063676357689196488387457371320623327198600301843750123490373934395544186938112664488639711214828247523027792012941606142727031921834687886272645419454562235273936286180062685202605874554542870915006303009709407947793096203349696623970269620375619921521600885431201312957315788578198710397064436354295353504118868449889779225385574323257249462379165686896356557693869721063197145321875847047087152023375163653699324337538491573267296679482150949675658916301989898166587383871542406149774215283112488902199186020970332434790973222447582309980099521792978396240574803906486063495133860390838360523798370931373047537102318761251674108109080593625880739124628991783865022305766883601726311887539924885237669379476735344208095161759242452308174080554918670177700205383478131492952641914973425306872610233368670931317200592353203547282026308738048060978027530410255713853766744365898235362680255058414423361264362118907863781129352023179868015004172638571048808604659750695423804928132067685853558942650426824320763539481658371513941186904068733849015577352637218943477386594007219205613775842049056992136020086559524972031163035434283817532680204472445928919630941973544945413495373613102053838307145598129937176261685254771680483826215554051368745204945600714559830165964922070668727061427479120062549481816042669957025731852163586201084800715082111002074313412372204764250196399118188355077532265068135057616872225242550297492717486853474260554107020878034221233190800513264944472679928384261510992804864412655682392474271018506470205706351602025529253701012219646318456395836716477711335614271619238819978945801099218277667692673991947196858818719448828386346474807085271674738824217764561483523306967414422988926472865981804203673813654212406121711177497237598400639219772016168436854610679742725303937698468246577614745897849126149580514680971403997657372269535986571006802131605538644653151487254443793306253013933543684416679647321916480960991890578386092832164956450101125952718238330115856563095342873859316547210146136099468908330927112119185537876808725432957913171839947151635135598598961130579495628564366984728308920218258320979092216344168355178359674448801444481383566980747679760553236773288172540924330109859045478921653612930271132331117583138121138889746850118214326631651637881693400252431279073631558253353527739575648877539030005890425711177529152916230130870582110585803027682951412327713534871628639367066597256896206464350009652447254677137883332437322967997703227391161574656487076264886025191130654973838107264159511526788082891122302841467613877091156756248239536064396234341728035319759598028553407417139532341726176176759199647455955659682172686224135597418508827179973818797613321049947758540543263425388245397906455984960156876147511442777942032896728178706848630528552172499790443855147563394418660093949207118623503828119376010129229206341165607303372353126387221024434870126778933394112744817749833023031297285416589551726181582071337492372867618869176859973654970495695653953609897091625334009217462118452165062903338771888629732839402118661819169579171963531270944753012253200940388635326350558263873806710216782854813266846111821070573717482193066806679929230238651784897070330009986625379343364464331131894719482760222803396885502310906650904910764591197438362787382978216908132391982149650193295004696191577513550272036815091735376105915729850207555912606407047738088576109370718014896020281063904265094922366780777974769970870816685849108063428145827367973707899986777323245477900079313908813481569337012364685620475167411893808312351242100237510828885847157841111568690248897934636292205943335676326380227960566940427387245312257869943076042494090187981503615094950453709954110210002970044913557942171762308269990860159596406833783367407792141893486691264646639873198539380333397441759764287110746584886265730248624545583722823164897643837723341403985094761892500706292397979655465645920918363331779989408663428216655147374578588396214654700032293003155036480643846981317958475994003641588529149572799001186405728173555180789087847808415544491739077862636282775668988108497094712106804776889157313319751481500203005389372738346601625034437364555854645147625158983376032008106135131462519937605727437759548416962472187237900704360914511097657335362890752797846763767731090639924452362982250432810432842560291483022219524043076136505569883185286067060461161951482090335076468685563563730134020703759988734300744216222779464565159650131329176742284410111412296188117567993014625659183865696005738766051866333348707320932725928553120069821890760632739133031276498584638167550581153364917603043491410230149770308546251574941362558396742228993232052869171039671853427020838633449567693774368380238409400624520328229452274241855681059744664492062259138423470719562156644979720968619898085335623973282646193113448838742790918642751259984567751447327112577422397723335979871916146932204907351167767022958839581216622867162896900315535194869804747658353849820922717317242775875366575660332864201906169418567279689491626928831400431731316555538250824211601321711222850503787617508806074085475375664501563375284151242052008368253958180827316522855747900289655097403671502199523994186777627273450719518231939877181151865774715455154314061345936351072446057002566065755419618197127591863525736588605431843326587184901916509346275759730077000662158434280637606210622118651660497326712586910357599254616336687616853876090956437434229973103525039585982871587870043630977477414761797572249128015636684719359659297091218958274661490347389850768304922041099634092935177615176301804372477439177825015186505062565320508069170805502748573321980476367634199179594296429191390950363068282792847382386429993669071131690568944651942801575703845220630667637462031386062647542117610998901220310615298462531299788880979741231731185531161152944127064362742210907657398644581795604171208363086590804542712991855132877343528614026167960976534033069335170654077247243387122688486096943143172846471238996462339573988735716038320930258510857595717199148678955252197229505497867736806278219182777476154927535801559060608783925059859064506100314414041982243941191944358463218212662863230113387364607195245047933728166442129068604236102836913846467395380997693867009692160088111561805008572034920284271375061229886642045113813263031631038022343211989957949643265741639987118631457491777150687517583520307773772791633995514015461785348155713296906841713571519315207575499774453708954045892614563313448678205699484534245518089250281075946194149364074143842461221690766193457770296884136099707297560129196658898019986022641029517361593034815288345987623474520779153396200738997783377751508752718311569785597319136687653941031973307312793495813879174605454746639140733070237697059536707230579294140472694191019126237967428928979511371073467940469201965941855379850203108366040058492150318918876670712815141235787550805519426539607221176256357673942678264210700334010027205054444202982719735496783416554948333924233954825110782788315946745624182488955719488211362243520467464149333840676876331951812168886225297948685334616668076583816783577756369144784582098583636998687643982040582120726047211046310369295222580345761290035813561656175140921778648735780398221694533507500642899375309398910604602721124712483367948825958442349598428211412685358608329829050980599028296365348436436535712359509946536430017221210686101891746387535823098167337753151182448736589111536251274676272471130901571443921223042698122939840759878199069889755358436388383097771758510917289787050827879600353350570526915168323104192943121783106236042125235032933387854066320339295642156491894026893838347656499458716452283381524003158554806907663286599286772187063648947204837607477974134745015429135861422411762419373394192073182761753539069986502430662338201582965846577819416865019974768720563712833410142727582822760681310163630375878914829964716974184068460569362387310457280953414708014551052914968096457928896436990378516336985157969439267889235384998353727031107572753192356754578006452223032220438167817915360940613447908508171900549041730190765843071804553161487070529276274319285634606787177680701933414984235625335537026206824965172580379282193716663897994915214945542443053730213079362335191085156557543281368571831242252420885869839999145880062377966577626589296423082645253398315933210842790340826942971184125922360930873227816424368965769792084043140355326424870528989179243974740682387443578703524535087253891610881295394875907939458503526907389071275994535160823776343109832143540235929648387977934877056635295988208798581672100577265073611048816936900943432609459348090371760030831366314301874478671584290052755992416189737945393121655803304810872118887833136316214187112350987147430738778265202999074790208254941164984671109639078367615369612097414139554594286906070917373707113065752747371526161741712586863184864183900359288251986370810173127520300717928236313348716855979438182710441155684706712706043605924821089206889109987897121571983173872667669454880000284226731196920183740179110944236976206644025910682992670970205855800187255218441342547234568305208401790400442396693526665636157321237777262635668893292988491830408722348134548394848493730388188327833090920822307054915197942798198791676678054337396917062190415414862583518391627529184736100326447794311033448279759950022074309637797412938798116197815675145529384942706787457960216863247032729588829514248204543128897513107268262209044975334488010187394712098285409505732469646956644014571071866888768320145527759568279056725508139082601277156128717987896395646829066702122420487675298625392117643205463178179737695396161467994903032220914365195845457169392233184765159951283848927031670680234236064189346007027464906902393416791635300966867274877688920689141681452582807491747410640157611516489196447405040933559808228421950037203974182937443929157721397686288839060907516416621042611876525359087944685137069500225754824073638317378426367565403976796590232323025483846186723296140187189178646633461014476540028083618254258880427059996823277665117430115078614745353526084510637716908514381694761878902833611393501706650469116942647485573965291001713078893056191938772524826446860962997879944366441325215029398119730838893187507927004983163552075458142466211273387748947182001091518084823611593791447813967923632223609352498660154011475759641301176707720565032816167944647970282280528083491791472607012099287285854479356668456930009416845158438033422663259208951131112106913213218017389145143833397506599760675840115257669996776051220374263373201517361011355305616499223174802832377951238126254694500926201882735806994290320993564660183647316444447122256044308294498028588594668202044908751591459143950655699940923582521385640281487698465003214539150688677933866883013814809016514816804893770269269924475144666869034909950922825306227175511404501935216098946597081769321640108241779338241758354127805528245224117340399910076519287225134929765322900966521034679883255666009595516755416674878230330325571165556665528272193761011645255142734611335437630279542270274015606812855668182175021823117978668920631618602647296914953254851545230517901066489600402561680251390142020867829175446701518875628760643657556158532594158721557449580182901244597049819354291429084146158468286479703607037552400427859443280771276185329891025682119648342195401758409952558533435796364981985512383495967633787120660907845223206465205197159863645112250860517695141013079861732801029336111794124049576584233297199337779517556603650037874612844839919681538766481681094743223274332677626158802481817512957271756688934030941438593002657934374781682363536997330453484033639979396592890501600336416608530538197255741694581867998658001953700455427867238619600079130245742448370022834317343383295509412718721128736625795819848139407161195924267698204045520427855098044665913137658654846496894293265191577935933572689130936057335911575892667974421223472703084336272458576816583859580025322728169525834699614365266744624244942279554976621566495757754997810780586633267479214566382893151020012093727362845861158960387805363625723060638382927530096375970427592404210307896238167983964748925939383247055776606025994947118147666651281660296629173952957542646748910444540525129648032256787123573758589041031377502222151143830754965401272588218051544035354226962512370577789757521969259437437666152923290750857819606954809371126428005675636373408051304742280273447448571388536168841999647132619184029879161391898968863757032832905841316678667393589725323406342578205905841796127168391183669113642390055890378408639247401884824616019895090257832354344850573491108756429774846580982369212413274666506607485195114871477625575902715471610107358216194668982156355783136654309678028305305996492193392549114026155021197855740308322249173925359218276858121899458686835240086518060557014368501804130689191151734137345310346802580143167866365877919966655062014987322334899003749228330170499089591694835041533898565880608680534330946774419192325592890994095141484894595079026097312158510750548222173394905893292713926558348369694018590915300474129867115768632306963895573770964701637599661515134887880765112397595326647181123540916252454743857793745751866536290068250581128055397218827299776665877246022335802728971089147460292767060607511756768168778600552194123671862883936948367194512262326837287027607162113074188399975784121609670887200133103214331564937498735097074406375921207810115959253622502860505499038567193306406425189864706891679120981708247463812522634939070235485007566149331198720373444906625210596516703685182731723055811409732670878751202088087226398310657278880611631352935841329152795064508507310183575671241325227192325116949700182020523345064381555231859327620922932261501800407496013733284121999715760481544308802242653260849230448109992930232568695210878681838012765409198385317177540630218260763797622064936839608280769408270525370777202132652935342420171069223949167517759617409705671250221263739974174550120533579114901611127705749703358735635150452470998325236772625558754220571469501082704998733043103262256859970086802867129006535697563742309931755438233373018011658293376740270165365882804935944802338156366060064020483085109061513535089110984662447524940218035935496134923860060676449602937406207143264876875007074998917429984089130076306697407272569588862173633466725275341681867995270331900947449294815475393086162849823706370505065059818069444445540674645533878677555483513025675757089524503397157918191824801664585719820464494781976281440493804699788926598940112175814886861079622876445494637112626138570238937908224991777751552958505939231392737773968224274056535896305229050954038373994646103634341494531808221139766548528901272163189310651209877524918016288733065007063918649119428561052056001553077528407882848560553836505606906452458311046178676956709859729662523154148054109818056813710909241479038683910097652313511615308936643533127940178108032484228051735928105891979788866867272966579188397245838246187701539700538888574822298243831378026530335010474305070907024197313178322866923322222283624899072687525194925384230433634191752224203256621063165075236235087007804925919048093930523746419915850037483492103359963346381494825828996852641795889132479515198725345050376277633296070303259254276349642259322607244673052497284763745889158681871187990364988675406260423458805020411192377911149864263624377163251938009330428709953764601975033409186257039920084882350325254213723042230239374903409685103853644779368127673400492417672019653878896976220288831668371012275551237456207625468345260437760225159532074826999902847381519039171645630156803050540089437695829625645856675149574993937668356386391415388780072663542224591871299617160259099270670832752844374839805458284469145971120308777024212081085875848741833767368162515340577727039429506064592744878130964454175926346024892947423028995270395680326648531116359469407696254374611363110530415384674979662912891610995105497875399743377886612889795500032963019966131495771134975129346948962401667733172791466943984215224173700571230160394181214585530623478781768460659000715969757025853907975172217051288444165886910877545617906404838610774630607955561356076641567240651105433023170566298715169394688099809353354770048150425183462407482322525688429620703328828936972063169587914647567488594269581381284903522439040172021815907730221357402805852756053533041187449470864616109916606874122619912418810397325847302120489756527354206002674850598726506912566586039348375581222587245245562571689831157655205057369579783108912209167506493172122812174108948793030671160539496515659241110092398770413619630153827040689994409903437549230644178328478636444806499798787111316964543572382477831230307318102087021405324846784401802846783023153965376573798832564494771427925955666424766041616508596240908930473864763934144443287254353097717762204462232110133663896393049347258537130264148536133404659562001900430722562433042745576190736043683475727229691425341535932701475471828472048723149322527820210289930945732915982797079884674758035811821962462498572748842618970177624868482412317928824836182727307267685439128230906916134218664439279539626517113133771917712817637986820355324312263533272885064262952540558032304692394232374842202369319224406938216673720039793400604003242522123895745291747208811593533968238270568229745447753881879585576572534684438223482306691151310408803640406755241000986444756472745535343184844065292592283832689068504870704009691546297456076276973677074104826906308579161223465202674133111901511254144188512095804614460361420313966535570545544758530246021480511395703937572381512112658065189132840438039757624839398687117249676152198971849964023868282869156964407626308678612588912342807999631784295729684038321187404658924783458741526184376150616935533163364164385812186126114059600799765135460479496225604099489638504806160940518456168845001446917483470110227649628859317779699011851813931416169856930231166074310398669141289465477275288279848203477224268528464766807945683849519287610343858093850514530226884105570276678941535252350897633616325209301803907565924885928221259978701240137313345321249835276428388046112989297680925601677228063017973688550368241768503117209445814604143811390308950938080119088368038086497386345675778036253626247837210810810985066326816852014766582354461761816787750049539800167378227427547217714444508419136626487041215758902703926154120432025494928263834126372692058771222415302344336424770753663430004655795235878221337455813913733245442187844286822876833497103755769962395869914276764805875932518321362748200435752531405538365306827047727495419174908328755867537660282618182800556090394831491379731166741214600130619983553673650751134472485299485761264652269747027344929173613309005348333951624507424979582056332421324259955842300756304848511940729222878396602722191145053948866687362827373897866757544528732437250161751229863669748086699961667119421167691738934024735113882801203963753802326749295826476858963476400418008471645136443550858889989181134733591964496952742574167052693962403361420501893200103522377262539986027079741734311509456240990064242244290358141975033918775722796002530608159352764810731357836874444331633943408230453472528105550213618388578625369669822992364664994537017947604539332549697766065729455375694758878182494147648582360585155575721758020080213916602526336099877510550210069995632694814530860420034459817285810055591277835914451557273616933411671086052957611186326318291707937018690211055147824506812398911430987786335951725694750466467775167912435517049535509501335260381491334108184481643758449350528037236929984342081078319071376543982406326419994702149453262325783011401905801023559535059676602513387140826964041551193509033460505141969222320712502720381388941810563733190763261299566679968049349695201838369672768756043566779371141543967585504614986537911651012272864776521224348653693362902497718444843066565317702512182278630838534691347225725184498422386640164528572512547748553513900881466725382902207226840230569064753324827973358987529108920260441793126252619567384287845618829569331110294344312711663215714195565037060696189998230687217052243117577349143823840552765192771464313304761669280465984045088430254168582226346067660011397279161054982512250872301061994549392047832524913149262940791692558097542755972110730061690410473844392106601659908237329557580146350219624515271292949677439779462161537402951130116778496993162648627957460343656807511265104325361084661342462666976313318090407773456895506812291620092514117884280574638190400338124629730654965666462214661210290461853797214646866231411892620720700463809878261732406320754254721498954782695054625786356116437938531061165957826704874029157497788569246442600491254198680295493367058539174225282306756668733409880102080258657701404975022119307960075896734254390013289836040843151515646077031686806629172311611556762221204267710424606722495232600074449283086433715408640941230712172860919196016489028278440574028193479613715760407498123347639015809660666700951278885382662382283623742043369295782330153020222396661407884040643283623219169179481192795809280365864536400410010701331946648101047940117389293741242370580664653386192340218807075119668786623474699176684841399650936485393868917620440051626655704669555494092428042901557916494531610512471695883067537459380897290860822936663866651645311474610974581432374699657801325816081272750279382906941564565958382266355443385427364052097875598189307698726862084554651027810554642269669238478613252805110088348129082864803132966033549752062797011383991796509776192338951042360609016158427259653032569412738950593514791943404941059626779329270095568207091085388171457448665174610535172715015437971601167865837595003183015978262340230592896464644126285092332205852109495748760929739530580860232389898257717217674852388438267792016777787629284966137323470462698932260075325986756378554173846719793709564050622458459218034947367180559921626878486671791461117694899072792147620693528674633296250113602799037455038286355212076695664851165089147621236830673970960458815990011165268028065758764900361732944279041898721717244207210621336859391813871972564707711307797981868012528463307687888982563493845317017091498655061929392285185559185784160084898618868327836687615768216461581614323418856553219706220241255266326771198832790494199949296635109246153191695858373450244800532136675803436084326238206726524332456588865997359983850264499772253218999210921970874440918588182416047203741227459239835792677291788357389336107435086875133334703590706249149878937691479413762647270485548589215073077443376385635123301530079423881519890295219139824759353080184778440089917932889147789279949615962316726885847265527361685303984327934607235209289949056393513266666879806359731011774441276679603838635756132253260397731993483200233958763896104338004553889712390669335843403311355376803477188323589174978467778704855152811731499030244843080301594230271100414450259617163736253122608636176655244721221757894907261229788838789240774856840132803462557739539339600207459597895076163459609298661254976114029593887772979492393859015830550995859992589516539466637835992018963319037098489689123467091988043134812872291599730332203328076306012358916780672871776930169005040920026230832101479029680041752803605949865556944558669612815640576541626225016517075655682457067644223590118503393388155480988396736157906219653133491862476165495532784258842627681028187780172829702748410133634457768075650276703051367731445054377623247190177180335257338063070882366487106986045429125933094543765319182237616337650247702762562899607301355268071493633566219785560799232722137741901727103641879946621847120341739047814399233622543962429561541417906862522788475777573581793472264727154838857082285975954320889642091493946229328228175490862398828524755311898533004368947174002095576465657555430301868577224594378534799323016644243663817617239297810731775890992571417044375931870978595227364782034662198767645379630090258013909058837679615848259934044418622426717340709141663436781046683944011223923958687056254305025706315521153427299090867000489260195578447605162396324562826004906323195558600837820153182927446278085134578705459939183599621608807604309499717261177077455476702536486298594628561692387545844476151043524187700347221086180908738853819964723517039049640745300714853792901939531752895508831968744325536389323922562243952615482015074525780498079066348354313709735163120589509664271127817178378996416902886329178067659189264544834443817480766695974274744937142235514125582486005445584058090696835654568184246545880631046344732339462568656762641697425971199964473767536068616952500955890950522692064145565906724096588497546168317727891812200012101281094320343883376204934676319343277965606856818630679614716851211260434777757130303923288888667773304331792497163176202431081089042667594281757535894017404941448684319390741839633722426447787717860449894852844992245494606958649714083975258496116095266405466253649946208852462605215463324389778163533084064492411343467580441502454321849677641631734122918964331177781754634396912362502020317655954299683158470068954431768580306921261791513921521486358548455320021577389249914432767259946344030831771638198560218451083913291195546515333167879705940918196925420756669402987195933420044910710602944066313079902193394405828966597162548095043548203302436861346068889287603107162130198243378400993446794524791989531117945462354672059069919899229861797630772120133875947125527512209013401213252026310250708764281046660810627473722121700724378874308772987632043083027210554002077278109442782333376188282347569321955135564705078822369442656493024252695974024632730284592625670565985051459920872865253114775122661963264667071943197094402304551230621942176007448280819841792619402360315169248242248585519596596288758479546492154130836769530767492841770765496602263095521636995636697221455731506214510701630232429554567320571104460823416814974395699590314951738903981230730780389719820876213349233011011462504931082930567515363376111241608464880145465036242072207457976064761430047836231840095501156912873258641181102459571871504468286159610937619121016251705006142326584945560056495185341270845581756536788735643330451028485586229051482599515854682536950764655669438360357949145337486377175113493219121927289801798166587452206600681143011606503779406545620498014063649013070741850317365705639082973911870957603347676148550461715567751137869519244241142607549604503635586338074622825470172445879359204865692536456024904821527855165533247955349669303558580899987039071076434847430193099164394573412170706579038180296327368152236449451826010220703113806315509693763507691481959126407550461439665219748597940800553793352427116665096193623382074341697806082747484396180440095960331637993081234065116914126690683739947622457626977386607439550268015352249106916003986616323559654958948630633036472621946806441424758265672804699712782902745648306173012932911280358538596708895904605747684087255907666159728916671658208105766499110690912863709639151361502478133890653453254713336270278244509221720626104870808463707489892472063504663873767719030299488095126067687444989486711337665437669227522183378935878994734654688394249521612188585321536277883079742479937061771296975148938341556235606597175558080808633596894033827992785106804885598886638416215380490900816176063897669569695900459988497444129072111033096879966834783697201174912694803976691150557042025981273591462712276451649103242793421725767254472065169021674467715895390863982789266959594692588953870317811297600650455678447039030317470881433751591688065005857839079466611237906451858344635838576981889082328238978361558684538678622392579532312164386805392657157558808643475373836324588550998361144267110604113983843944311985156459236549434987192165821496001106804514337573306666830325034230772331730390503668380552838552499011477916760233762270805469338060416761589449497976610337488839258581666794540496826752525505413577026498468339722428267054770060172057329366695173639597770750970285354479406176899931060876598856983597465672857554067097269869734774767105155704349147535464133596058896453095128244597408948103429004844493102769578100304998841991812283685273495709687819183364206693596715610906495478913903934667443590514073410298949726672494267014942337530290193858244099474803916920579336358821800175164402050577640795685740910220548636305919208802894925140742404416233296930412514741012408596218752253362769527453216289618830167697545260885037354847770326366811527382959646370218919886653119582362339958442444552143213171425664858962427578313243710297026097623364080251733355852967624798577233007908738620475996938635982234156583871158802091074705136800535449163700375911388304515124273858636180403656641551589217006081284834717532952228179360728931697018052753082272420805290933682842964518486396485498319333952676170532940716394456967894545127304411217486954925526980808180797871651378769693592694306010437082045905190609003135228890437098916696857028110733517557455399053929418911705223465633308343253414477640648431288145569565103030432530171599326506244577572427880932081511845657398782049854186638632865886377834653944478998195242265813202939835766537519690483390502884158761566876247369696815312858661263665622223199843953351928926223516296805132006380447884294006236471147618649110138483621631658898891128629392104344375886822396207862258125274565730670661285356299887320120131601672555347630218344422727118560887059005764803745804780425939604306799571762355707826785917163693157533306265086276745097243322943091598672178833052931086649090284333117919468002385139334689349551535360570188279685073542705411290090990871197961615181133524282338044120792017100230211747973510875004029813809360433957391514682254230323812276480704779691240573474537219006238400522413228630673452977181614924514058173987416711991269597641047657253236773622386002675864568934638987889900700597553792660100189188980889542498417718377268559982561613334806356148107453834806249711635174164698616612031799319937221591280105732527609533045304271285162505983342364708008815611500913667395577549532393037598169989274863818099389048477278132029005400764728725262622612903669929578776343782152461791534691023898239318014354674963052015724557771539449419236543001251278566073612503447047333511685232458113606423991589430515699389252076645603735698318524340493754304706040294465310327248850070623474526275178067101881527942277260567184886476161934320611283414260681848164959634421089016647790930462323463127273933585113825300674928600903966743067690816575121856125166130756199141116044847022327814038547491782343521485112358650777994358402706580014841061296401620145018313253882081957946274259567921476126710253152048452074776646774836406848970054375455587953877350342115354251242940801491709538799739387847171611216633877444368846101929837007596445979432257331990399580546956142040063445428562070419702043383928526728322021668922940568095360261811844952528308360809398444951115474278993292009328121240488254873594525822003022411387708744969338366810391107124371734155985836590295708644640569423524898839645140441964414038618123656624376903520828560806592422045207526441339060725895199569280295067228624605040121728544063104628338342459215011551877973389416706520301859658620978686395278111676113980893483985128592104361505633379225723686584388188705960366926550344846752440815258661380216258905883613034796121147125224367757245642749503586012031281952490685253845256162576964051454338769180023757033496717431369633495652061416221256545615537382221443056990136853652691545446482990561487143530681474555448859945799654483314540132675596318089651242292019457348926703960806771060595627903126853976311498890485120974467102526170805654827401433644919069980381567062497141608286339014565322454206836710553560670629494308297680627586752727911360894069958382555583674145349971242791295074901997606294857613295565390946175988357879440777835998508320147319247219205723941954890996681665943978416246637711527273716396344539502696783833574619370333380539844158723940858455137970499546951029269950287048392426664489132326686684997820012173992340000857689455463415907205564010983577019917187678830996787868738371890202654466184467994857288552123054368502980934664076977785556371868207720869695269552841722667547315735146313183759833596255165582388565895885347917269084694454373917534526451965224589742715689692497331853621932368837713017745326839877948317162408123961205645108300772239912249011868764561707798637321735390799968336082030242054259472076183965817291375097484861159619534161398305037856243588440877106395587868848956652523711165423549863819366784743060044240095852329317645180610106396117752808369167558903290873349480079247640630523248008948625928495201699938218793674314278188319813733929487220672360961796061521342136503204188141863256237390279728354758163005268220234840759228598752985073313799055828491059614532064766277271554640933952675701908342372688047384081196171152621286595564830667250732166887548801140906973278933835915193354891680592736858376796584006237154275096183692023195574802203689771696387717396834212557233418591156494173293606288179507510717892446430526221726081902235743167293193577586839405069507475161937377500611841447211782946998962270110842814166592884455377772822481140645918996252852312126013272282783085107642826065482798829020378891265656641353860468522347389383292164855091472495427233001816397700555821022717022568235190746357475296681743978879027847837072017787131698542112967070342353080445157172743025310970369045707579672166682999676260774186201148480035436015702700310014049302994572779310057935451524489986856899499048222808419818345150137945004764872465092525060778281508828789561345383646318036303499368449822574007721972467028244100032173781788571014576592773966066266987594585848662296002794767329909413949873702775956063691742082077367755535848498466300141330716231012608332498052886232954114675247506097736867025514424024332044953939348058291910882066077510697358269930697870096572188860568847095234641317174820708644594596666219484499765718700913201953583762592427801044987684320382082398666513139751525245827673492942883714487380656291443804597205890807192758929513887632089195641580474220106070799231561845417357059591315747485065553707236794458228760916251142328615847874685660907146915035465764328684279678289808190530794309442316786604112785338394697396601733071999879950439366254265044234483457142020310206830514664711956868456063243669213132547448263132113719179410868769814250553440125757425974837598397093731841232421646502233441952120419032063917504118907486535908577163285174039976986902589295209479808298891022711681923614441555470868920551073381545151376504052857802030862569128251565462605873216242134522740302670455610344880242980946916116474077897624045921441534933461048081560435411591292408139052681437094957471377115280769989404012128965994593773767963987430856036908379169497427184622178164710588011785855456410107140637796668716886510570169409488272315587264987728717762571827535864289963066467012906288486097785261000290878324369857331453375224539441473214560857987757900151432442362306215985091927517117194047194912110372774689868534329648245332892183163125746745932924145101174685415755961081720367800921559931110127075807511353184487501435168287988669624892319172034367282912074287117018091335393533954318572142583767114332711926066704519745608765511641413755775614603590361521822565867634153024061374552473774703467302063273810847273764307616047823421567928510285642895783942066811291611941960596097310792811107660341410654135631865684348008416681450123153787230482302753760133202254759889904090135066327749351574696743902014661528032631277086602643176264417527908958612247477792769983303186232687894585171179364494349665127728532988111887568320224627038777630450485687355470431687762703444878798837811840078981377337422793633164972182752222681864079828614554513732621295498628160913278208553632318567155540621561392711706021723526854176074724419034072462000470883572207273757919637497486874732317866742725140718377401154335948563910373239878130687823985832604602771066628778419581440872778753102725989476022928753813658688104154367882149503055504935962831928779452932436410070948963322639884171483583349840910698744347089295437812209765872475989498199129882004007338659547951607455991009982139439305825042601534910613496888533232437196487886960567961053213666761466211646626694775627620071703973740627640662913552228864876525354091515315193604799179434550658796470767514316231586592301279671837892578345427714846010506185112580399868713653071288222904812182504136059870523501391803677311194965842878173629406477206459747491802755665975862364451308036959282748751022363733514912675108785990698879721948105225062917990572826884784997120916868620658370971889950695067928770715401046026575047346393174473453061035635869162868421401310177732754970287797143674443450392327854955414662279761374150146689185002414232087520714328423711917236747849142891895126632030729597140408045943039314423297055813772864396286639078023790119418725031286255961107302166853185798539810561320078554900520648395127371045506122821176422701745007637476663348860860632303451583140733274454105126592560966215872244978696432539267550846637309652833375198685051764595947085099295782911943366047818542247901860172140363616268176152849146093566518898333607361468012787569099399091963304487322600439411532817261179473357294491311371277789113958116371891893318834835904411106906811438258560747483516440650228923818819422197321018538839255869571663157781013240442248252935788547001780567413322008590725603594706945696542544649048629244891072745752085420283889022023103447213835831258722207641541808657949132971490270064724501741783737806062217911564624214421281419619261076447373591893397852935465308895684465796751228336710959143320691661072377526847648201514435145144318543506434914556151426276253082755544297709632917263253091715847824159116356126303688594892139795796268914290663267623298889295363580579219922310142561239816809974585465266149304936987014312484497288619504383313255123316774044178633900594853792950370821365666451338833240273932897828779581764877717038357773531381062776038362080481073104592616003910395121205533156829780537635690763700869228593982622691991792003847209134683294579668334809029612915719776354472664647863993423707530246802845879510843393051646634604001174357208452521885243504017821897479791757042849387219811156264477291414590563147083004523233856399144188964429865284531006059655109476547030570599681306439654208974568212196072350259001085871457221078829524694203566688790966376225709194218821735077074200881853657966010944369968308103376314237917145904620496749886417613312800403800550758410422706356218129802996033312168972008391750142141214987549888982257687514015502288131051029794256988082793857198498248625057851169166846208655821709231070605450044981850730561549833981146318835731489493403212911685972446455539626204872964641648534048581401751823293557315786254431257929625736713113057908433966312209132184828724369008049983803650795046419450983508670298944747237048191507006038139333931050870436525663401106903943759646425983162346244057650747233687275808314970002381046248351622737283616254745337096242139615541250440281222262673365892364677750882123607289885356521070691127052741137752337371419645218111172960280993525096421580395071120769547758213574904582868438613279678921303497793982098131163306971469833455396426341035077109923535739347753401075694304174894767829769540431645413711555038703387955460520291640829342314504199179608656004045341228825327745725858439856080352169450781253366555780513136111749948582396724007526892687996782364362223901529594056835500264864477727784281396026114417962803274187141685576398932258769664576312064803250729423189965396465315850906916990005293816869832858195063833363788325740227388901423542296776705108306203132511695206916758369291621981053004009659648454787850616578607737430871406050195815431670530553322172616679192240417750573011806229576464305857399728837130132068353986256957625844686766510970810086605370702713957941005796716041612575325318166821404630886709092645148454111952372043936152981610663041548448789634184774886717047103168272982224112792278922401781558295600489301243905721754721114188681507849858053303075327875861333894319109396068043956843419660993353635510096552550038224318447679620795510410792888571999159792187414118162247633188177706101566576548929960253125440903036621069925495196223819572450810172819171985983432895400373426778976448388925144924752234389192487415465022408231261079056822782385441615268508985301311519150029255494397353916169428274632280343442153795404317484468240550819908493740397809878555256670907481029584020699991730377604410704213339849099732199488481259198907497459596902184672181653252599598051743859315168837412749913443855205449297716183065825860881311629284037524839370281416925294632650076073018917467081771768246149041708652311776214996392132222508707660259681308205574707809076333307881785879940044074764895527972525238083582541059036320104536143372514030223882176126180638136773208716521323272296919043758448657284824600162039962545912268227480541016872813817967444395653411881709696841027645763055352916868604707591740996914544247574960201374542019438892244894331228381652687001338831223312039596082085701718437117722896702160260622141476316155367583827240247242853503231555659079610131833492990418716500256941249427382959501391373238339160706742120983461929822605226879141036544381263586222205400430145179022350553750748658141757362652391918491067839579561816229312940897409732631894457873464886996755977270809293743595317685129027140752719248121472558032631369223949913328373909750044462669461378493454910139172365686251932855716810741777361852578561539333469342673677726504098442385235062555527146989788233031435610788399793914687098548679910635238974089622816709744668626538224216484916820383923064568023832761595814593606395672434479820898406115774157474477476247121752178773319829632127117674939865345656537022228897995946051860114621156566525229118444681303123841643174306445238967779270527218264180041505858461665088405640535810173972675070514966688925560303377074658763318285993066015937330403232034967123053978926964899087120843492698891580150153793504716244265242496158010010904780024396830310749392765410275555245667898626858788156101049421568189334904896937788254200487721242715490024637653374157497413166765896812710318225851186317093845974961660316742840836783318898565596018258021123857697228423094911057037592769392265026724419425193936824747519114691980174642870984876889678053818759518620999443079506230797787641087837472335296989474609205305196137945386715175677066663820749209609486561829405741107065203607543392895131591106205368504583376289676373373213577949549863799304211325697360514633775159859393983960758839377515340516147971153228252906485846668374425181635308782485190305505673134284858702657763675339623928745285303666276622165348693057953851801088813602900483481942727948899885381662701607865777572210247912444899486875705977656747286142600941300126981423244147143461177557794429764386601553641113808866683922680130610658224212025376123205614867405503278136504693960578633288721606126267720533260421248877485679474623371099595483460233337965720028323680453895013190891384502028245633188351369425532147796094958716366128345127109029368506263916246830250823343581969486251551644367056922589738633972834088198143761556859446093619068011805595916486994163733218046469343137741226956987928179921404765765905421212753659055837509125361719247628147671886541712937981559473924953873643746732183128196807103262536000289995323243074202013773339815651410575296669131584078418573151829876163249236168253643574512410321543580620850137108844263473782065009001855755555686883927003827244660803103442591762761444149073125097225332052780952447598714051365371811980566868838593692740158477221261337988153890881461530430277683910296997247495000947402844421205766834440379168997727647862848063976509481035771718608335309320382848092174266839781480193817402285079992137365733538781918985411010257775767245160684094017348197641911159335979167992020795558187990286549880900698896258911699865989520577223041942793861925029070566862722923851488602884022375057380236257106744541381778799799231555487568816012394028616583745882787621673892659423095724280107838168985973692169268475838168574104034273849682843081177207222899003205801426501523258158123901318632123017324343462477933670944117016905410606307814458160554632934905602783912658414225142813854413940950673435790007553827159655538954562539527717804111064077013765729547675692537582911241304322595053766537889170994594450115828675859767691239086739888155217248074096462845021946587967652526869934098258531498324966588344240506127653049963286447416688431047256479433106395039499542659767921187241585944868736514337012226446170369336754654626507541315726976971498998971462803110815810981428802267698177816231151312479901966123740039947685221155718098777537483387394721633721548760727982272555397208236974362423769332402484793185046325591117202938779104589018094114212299778182453201991032228154935515509277308297002056903464949532240593705786761662039047952815535233665132460288729286426008971917576507585793041736057976663529209245785552238302109529506733171601939281549645269455888618940953314967243647093448352435451002568056390597020777532475373105356690740464611948735490534916126346768394171250212636667555194175045058762773494938172086841018651920319244566920427973285310902000458742725762794975847254995069101614525401530404910112359677400120835277455012790946228179972357734164568154691084624384678491512252001849996080038183012274515356287179940448410539157572320145867062893105119348778081051246381802011307091695054250153920504114210699507595327817923590190010025120198111161784344337254134169378274229992241971069323530940603653431010998970001456249262794390516134090730818246655548081342591968930909275655971328795362247320439726246686796037979752861370447252109506742236574336286890885346504012794711204190853906745445907711865645825921196030247690746213075390112381364664353618086259728417303451746623912346465812060699312359443786732441845381885396481251238284154243145751465598757024778709965602763482767833922638196391968155740509907543052182754923922136105002741850549360459796168646053556157938559130502844343607576711153723002742525889130112080609092421802264107391122240760331381838678904599982339107357282534740768024985447124924243172414630983899437258648217194223691042312967080942361247860338172963472931817528276019965205396301988328668794498163032813771688445455670763700089082014478663187623505131404099788187118675771071618435551413077117053733002712229946282108815125385568130447091972946665169792836693784219357249642220551395020343738646437942160644803153216562313227660760665852946624302287740737850423012435640433079297913979007440021060723802299918254043386527260298092567587344004893480900745442200717476987441303959784842850690553089869370688201413807159084215206160286753462018440103770573316112862944791585685480496682362807922546515299711419767330706207972400632679063595227524494215334242765891344531596550226636544984367331212017780464110646029723438973092292720257354295509150859420659308832297956022331585511495851661305165020805017046733928453248562414825910760285439107333454314458410699948975341626666813361724800665054924419392206302956967359522951412549719236238608073889718758778214025319002724415406756851312816066597603657355298575639497878869667726369252289452441282100757697716214253874011806151185287357251013846582776261144753516454430315734574040302163996701715663344409777820281034586302749627070351867182437397243085691981626259195206896541384794912923114621363810140130822456203589574832596453125547499768619777395284492638227503814352382316078460599649631145264208100248556981922109062553781374513163226354710244450088398746360223803963470280661907913060961390373997439968932306497328024777030343456001376282919554796846462237099089695921843964219934412087722480932473778210277447795018017142460101030392906174144916987241117767393460481295360451023134711433745681549109700138098569798037330276326208803774032529101058581704599205615807508842301263139510417917639176799756740677139369006597550545067362854704019694898100411692299139671425055298256132353884687868128056348248029665515172189736183596153723019125004409730695283515549311878590213822643443262099652079100698598881608738442431581062168457588639733936695617095451124241825696784328422193289599201622858103670884164778312594132751800982712216315410873360062812498368738188950287542340278126675837911022811359926579982323692957033099156728133367736346682881482371367925999434682084658138263533331622882635309107622510181731970443945720281594690313837277985753897811598885374122750222917412102929321657863192788342854370772657363953521357233944121890529735756922527306499313148432549442038016317305710428831925269447173900392059206424218149215875053566346720175413571099743907899136322794013362612630172819109821395313683183885829747299831654814591981451638373222928621053658593693501087093768119077280303025596479043487970236451191317750913005700475989831067060313476796549880931423572096044017387802424152053127495303941420603018208496440648624359734593906727770501668503220050794132102554022553475682727299769300966913369813331861449051869939733797496571513363106666038977335828318185124297348437447227355994703572438730587512021905732408563448760727504460843255195979461736962154179490283895366481311979308182548834736210096022561533467573173205607484631737418011804049697509322856428181267429598100901443776453286032446191644837568346004271049292257578404528730690114327617105665919322578196961041896300061448332074200785712779282155513928496424360679195845600703698061647884825118317243963631887335894070687255824880633535272782240800551970334001838191168462417883653150206497514033850994303463294784050786869836119949618557469489352210466730262295463158988821940504675171478616921240717064306757819039788127173541321780943656602577443178918439081794915559122056691923476729326337552384119880551602273759664876166764071240186622309019499876084289023333679168419616439141960237090060965014937856163007483136684101665726088983999304529499567369777035215213087810100861181181571905710186491909893343699505445430646799959387217510684890141916710835785986287390476764436015077324904097331992355463134394520313367814259459938895053617793058386047425134221024077007869200176189760044209323036266205839864820564507977899532848128913154911807614376689745208422317538875353926644410752114630253722223650628462691483465385767147720513065601876921048187856176667501565000795323764412077489350425968057881542462140710947295683680550912021243446748852809694145776756753176402983672598786409794176133179570563551874095697479180884037280203972674929890794881171512159690168613563331006548150521335619856322189342000711102056383763140567069884545983391204555327207040919975123449532458026215618762610352439361939999473101966233729545150979891963886733306902590851954801213906747516537261158103676761432047089852536776994351135148232222859428055327623635329409025139816254702005079014487341637148851516702822811997461062804823892106607235626485010162957776309211369201650044436712703848361029178352510777024519294846741784206360620123991864748837837517724658350286753338948256565073277530345198865446364268062801446780520531810162968898125756619029597044220866252354740490508802843656762264655777475843664292795967087701697151288454380085573978217339163640127198343317264141208479017353089330611133709973994229800048332558693902388509752044372210340525401777609039907654169462085152062042052613281431940576149050509861232522217621340901828464082917093767133436750675449265748637100733102983767130378856774120580147386897969240545370794624364729020680566472365976343296800792805894125328153640363090670419989109859176091738114347855409145194367095298734529851359530020852336454918713177629126805960110683269304904589411864660028856665003540451571793016402783070291516699576270443843663293559085613629420978625488896832617984220749074325869273693012727745127278483553760376690033925655498280323215778232143396980168664642679587266669748570908433243249446991761766100137750312887321382538697665747970084052343881097357669277572927193690714827666132569323344098586440159624167410776624590126779901046316789748004438214014831375245830054245944595403293733724437820810662448851764855482089648316984674628889817391749137935833492823346536949389905790178433211660988127406974997776435198953346556024225040515855427786528717925350861138001815690772449830200758838148814375788202661608501464060490317932616257647447263550383262649918645862804819029803351018768517818453626251887156388292007667762532459124869989394726374748106090953536887733577847922158756995034673525573274515447956446189987172754331434414908673405214833064571772015434930766679672527697662242340247829411226288315297722181860211333221432980484584106459557135541827651256211918963644606443948454406487048043330031176857159424098247481576969682098791866184684571425539109279435065004913780697229112959927798522463967727003856649334872831156039425286430922131908306099311086988887402262011277041247952789785491337335700635793342354257561271984529580718713313197480562435773461612801992845738015655001041225578576024264011732503368944551285304424544000208328877607726763062022545447715724160966112634189854581848920209706817023033463866124503705228571274257163033692837528802499111542372778030312532070777908829671285812903921654495850495085023263117169124762671696709639233026885104339985266679294534562529959570722258288715526370891578440023078780611064898857385408850087518211762522944462252837247368666060680732056840694952181412482308752175872718506744986194036011841462117675587542809519814233713437023187660361828292479107616815655052575837199383437392765524867867921892360857943283961621670682284397515339638020372924438810996884831900267703786484922629003221564942396387678358402420761850988171996230013604030852200910475131447508482661135264131842831561914106944004243697724490994693738080392001919836457807091381452890514371041566654781338193568660162653291592977750527023278401222818464000568829839688790504838545641191285887651148871995751771395493337659415077054951792501354465535200588966831109175778202108147483290926542087016552299119451345791594292877018313325546673763267951365361103454357791747024161924988015313364514552804495933618529367172066721022717232802163117023517818372095603815033457697072258496503802606529581521355080666699503112016312868538413635585822060162660688642431720295028214133957611357483477044904889394029870300250194055479466427036268183674128706644525357048018698910876269009307714247843295290159146179953516125193480660617730708762013009040361050731191377786604615251114831557263193098503017162817408463690817668950519621189783853682106306247697072184124485452539360784696166950389649599126624361698938712574345967775080025004373748634569933371914766751748904002963926753125939963173247789979160740982444416643045304283139367889946452291197435994731282769695981861803596966022840006833643702298486980625302546036064362446837888524814249155909772036550825505627506777759813919756210632514176843634764766977434391805034818482588153585947875449990664755547238103419571367691131420987947346169250222746575732200308914373823362929029001881650777750661696270081164022390953810748352339591373711460510450998549397815184791266547637010965910641347876912596795361838767100443461701794295868977156656881925656342338316865262562017307441720547546180144263736818314415422114839449821375894635962840857845171413940406547508935244004401906159454196388791080100829724593262691265753563757228355395844768464482142942186490016263841280177266892279875631833028552943728708737466023109210326882843866173399146669522671707524379925532316233991064834004430007143794759274732233575400188359065297783905592067954832603934135280038575629270566553393931884886388490547216121080304018460527472393269055478765626411949463462647104637992290512832662302958089097542330951101327615565321148853809823928057703911789449218661342294983103904460377372423805594913988845560632089066111503045930260153346547939891802357233716819717914943658472213261985018479117506188792819210977159194310086974344103830296754922157976590188227984801051921480357428515659302894004286816937484534583511108440473045560601912094192046531498538855408162946582325121836607535248809971192853143051247157746150430622173808095227428714462609206121892370068398561176490433924326082400184148888223606930426693744412558867250913821416422074315676519299815141758662393776365475463095660939799887205605563677426774659270473309421949869820960713446619440664727791764288020034227585554854795972532014388886526815744069497608353329705014660125186376223629102133214831205050243665602135080200531009137393587977612908869570237670284430852605828444135216114380481366440782430026255224381283338344177865323771487119602213773183829027207878187216550837911774717836774804742360934905210521397687056748838904372591282966265281576233352985552404866826320418069319394800983417581720925062539362392908287605005011459748829627327710118163317795384571650050936890276643390616783291600807275824096599067138581856675557707880205131519669969743286799964344141905932029198653037425723893948228405589003940363421602246713761433687268757059220699509303259244859585726721282922952075519190130627137442360589213109605926772305921577855646139082334677716375237974979825549324097710008626549648854035800702383668879621956953580224739276907529948485363238304021377322875529090797767535609694274254835224421400627726139051697561628870161479724951631337363212731634966607941959708741571974562672796245689070130816155901351673684025663399412333559749660770977039540303130084889318226823861077309451191965529236153319536506061779897849902871875922155507934267836865776799189841779932601109932982915323869313311123796019112599850411201225287839724760345099726262734353647084942043645979089638077992245997442818710563211368092024870138105169557038301482332784762018595668911353520522190728787372771557180869559593833727923776989437473105854880639218608672949098653268801905347462702378182085895466399787387107447232872217111280702155598818793474326243171143935340588329153772681675408348156798863839157658363548344204656899472440621449308119655509109141126613611951575235197163286061053138100825287225092855620889457909698656466703097084576233779377276916717276149175011196185303570323546469750192648752698238557696773757698706409777361562431049735395433854371069637354023493450012441858439607663285098825904673193219661327332838143121797584013618656125960580511086555426003152704243424167126757891939173434519274736629907274977021888274874725851860285028668540982390475832779028241773479963333639998027037299515386245384027796644309321063639470146936607452674817707572548994471052478950377876603834902107915434843689771011483374865545531273974564406275839451653367520805065596391289293609333679174740730658020603653908588501029052626304809224623881707806854339402752652428320258190972727117612265352563822721262075890392734344510101874126803538122470809183322782990982110983090813645103791857203214256881459362955766534685006674086154382070046976156154326826699186792846756217010253703885555997889226607298507334928548215849649885995169172157626279521199276512048628452414386818123267846542821011188909957518932101194765112669651362234705050436849453105122882174910990266592904414314960784387584378025378730962136921793109036782167591793884242794329992830126062842315939892444211021209075970722370195459236044852949565919653173186325443234765996646676239105218164592536312763597882156909477275807526566750093355058158066281061797216319272065565163670429585358053809590330335144176261321892593249010125874822018020110379874286013028277479009412574119588631034783515628968302721093105001170470522302760865872827489511051056931798241222029518782987271889029182796214119115655208523215537672439333468815329487578315831498066154966370764786407112360367923853098669599136528688492472614791438354251439099875975154212791793144861815332878013357207174711428092473865312521763054918774793522547595215613316369489871999953234170425476870964055310982589933167864982473414831027760795675287012951818844375294163300317199744228589508179108600815626524454538327840960146396126871823285007791352461137164679518667798066037299337640929500213640012056613760831746584830860424224761298452167416136911814112336393350905895761928041401798369731025423244866660371331671050834795233057480245993791740519340737203347715510259686173310949279161248163718289709385662161267120419807333767209004084693372575856456142146383324079075886150867065241414719418858611852569806582747190130636072243087849841653988901065459603684391635189645225769663341746904945616317619025042565606314045980043890850852058861018200585873994877429412532332363843421303475608417458223739249755190488397229559818481469773802108616249546027003771758001139116942364189692312401009570043152142164316953226861839055040611626415731593514357705600722856223475088406802815341138632292013262558223871092199976551598675693283202442169836723973737971675728557486535414413733082389394670941109210264856289217544098620091677092718734398338611779100340132591586269130087085079760570255647128987675243721892082210738051508380844688895715884131238462844025320180634591530596734821496201690096050947660978929750595341760837834574957984253535131286073624523055996698423260356756478012614372154373020831450047370741394796777231943007106822561730659585635017719647095775504612930351699941738835851030766807926395925629464510549310423961609176772653770598998544714012976975590421173414745674940839132272022806681607084434177332992780960088396293413635795629169284616792414253762348998070010253529607411113860846927338465969119074231308372583402303500495356875322776667376945142629982209227499650151436834634932320458470075985448299364543128367579091537230995189968658057495897617710970011520018484615336381899973924047750710763942315625896565755949474393273289423655304746372077158139752943931451299180461550433259087180048901175781428202972195903020705181700753231031359507521064062329660951455288954710032552115200722541307239765811467150452589214085088905851510575825837787061615007444737308781685670614311182538574156810861912845566738847632575988225358785688874529713731418470478492430181694528532791454285296032307345002871045714708657506340874449923297105885643784302108235205155174856465286867440875348034982265610091053053082708547520598226732492339225206397917641970343543609412214308463881485194998431966302418260750533628736216146880597775821789249700830976964596436461445906768978035328669845797504115750413445894532196168611674715623418705728691781056066120035151980002217589433200389079958336767186536197040820701972391056596067428957566293605352540455125487332468296430967454113406215992567638752166376167098507719617141703183367438444930248641784055670675332165856513982414974657123526554373594977716364820795933352528027764794178305621492653403805770601071309530795185344983732646230801551230137941452130640736108499679205009523875183436647266684266041771913391394347269779025806161112643116427896700153712189113005316464928663711833349506044721850595022986888661582890482266594827300396001373436785076101040196959983011859724257669906020480283811752079532790932114046937693693685953980206475852108936400561828989394879897378100296865131636177982300029678018732481852450356720396314740912482118919697208257045444783696100600244183011507189528598946486910050861302295687038679985498750175197755947918064231936433282918191808525098930436028143598188681346916604773381184303654292532580567866173785323892029642063643637913687137646703146355397720600879669021633402696751606314638266068052186269775520047768925187448075042665130818978512664451507857853457558956651835676902907456293790654348200321567695289674045095428646035291801909342496631429921811755579190994042384237808092045690303508342028504275396623421455760319691946578568156828303123543843600444529941310617493327162374887679524447644689225393284334981847167284955878068946943329329061707589538299866362044857128544973540606206976721815286759028176506581933769236938086411904328117845892276260796917807610085778167221844296216870138149683315999378775684255318066751079139711061201813947041163160185336074401554421248151025067455547473347040908600812313133495756773711046771130063522176821062303215201073659238609244086056668867767510606850266803967556230222720977751649313094908840586320850117062934668805582776200776275619674895533758395866759929247876679573780453195718227228857486334417633285121002281523957879885920036749232533857137611412576589146610826513993079482938241196100353860105579675153136885221127957170943378881980007917956218544559684957656748327265383547619675319349793597304269984848293334454906768382249399825821731957648241964519010853541137690451724104601616599830820975617586487086382350910485665729934490405626337698343531599928074662299346761817497588741222700673480057977170399993875568277493794272509067319478392075439136389160614137250776481613670415761081397061527774523715229263949038305311592550641696858820628919166547893612162744759368379981610721729594955688798886751156966613841911518271990552241062807341478854098769284084156898343027678293835070843456188354830944325462590563406278313757532580228987304361044765484357646745820736261369608773881021301942351595973624812980973505990531355413581060867158796933186583719036106368796197751357868018884148739354430838730609005425672283462778306677889983690146173746375182378588362576045953012237415095955023417187904585103146465480537309473013221602186737723255518820078028963024674241721698583343380442360270156440891045362565990304273134093553020282228158976728321322114044668734107712409254178964672494080646872650042723966129026629449564367552543739632361723104974038339478430732513906064264689687649492525355661970839255036186663884412598192625428846719045149706422945135331007914614042500788181084566598204659819140390591939747236936667003713746603410800029588749314816399409326798434266584999480085819892874752918490745631491518166566027183508659990013744797315149633081578690699774083704839452079076173875071293164005093967984469388407546803028044163934719033079507296193992485110962706515432341276635374922694336145211452113259461882884617254756244255704341457435484870224263960663113722636997988990389699577196271817827652856141917941731376225196180681154195849170097537301481470322012060258045245674860371869151552441986158465053816842223504015772050483320371299426655294874938540761370762741804595980231286702032006938940065518962515818291860707236827559859918972513231509294617984884694155622414175853013929020382357880770028456533971272994993739568598594370200867675070821926829716028265960227045377864090276210654229125411916263400474481380828381311324881741037846348729530234951205889140086657676709705417184033157029417746457379650280114335661432067205806513346113452816339445558577097564503957102379560802172059968399270199567138390582111203052839177334515789851768238317258084824862090141554503453828764575792529972753322857362190885716487854835702572079322155171464204980773698306224864785933373268137800210564579317131745540409472574969668567376535712714877502374856865823240739309814968724684918750938651619734004613629710853970032601414200645125117379824293220042168427539217523284597774064479922430134568243999282973183425808228701770627229730450618918073578505137270734219383845938412621818638251191229629979688729205925706823249323168972931894060500621484247751436493712286426834189039200058901414359335127831169099812341365739748733994040615321420251153179500882002651513062948380820553634286006760458818172810997678466001831657746000327750504867690746491530495882205060025280764789387786316185801077461081236698408433735803112309801032100373813741328266124838629708622268679604771733976469385460281101771565818384108377777724723166240182600456500654616338432859455389518515254988001623828006217106759043038078358240992727083472047099408320383015199195889808774611193439574257374782999687762547676601448713707860105415271632505094794368734162958667281972086946499221040304972208629229331521708658669374041291952091339354257843264211657302859996190226834303089558081612909845957925891145212393028256842929839947124451357907175078839059407696230464227873213751126806398129193453913108891441684277340022653841668180772159974123138028324852936761147890792379496009811920755554198565171661508003100609047782369390625409728394005726525156023376442945052363887605041737641221935260388713121524512106481907091540191257735084940388247725285046325538675970549842408970615079243143454795261402021857636809493781359082073134580919427719138318009033574295169823949965411165057844006964205085601807789394931262538345122711838084353049521197704600876236573264990108861431336428560850422984824144417896126491280110443639707917572276025228564963099394300327359147699686897688959603637165030358605820163494415439635041524816262854236063373509619337667500598364122751415017397373116148128341748524489975555134787011950317205793515521634853749092344039415536863143395099594365541979257870147446432581869257745237235133978770491791305787407989133739044953678288499925339884828269498829203863161813251467570989589576192901899902621722337930797633110644521648242696911330733776800605068341780561163971045018795256590557154813137223301803405623583360259062996617988188222670299419052599610993371520293947180503855159941723305778843898316718013256801879613560603029176125117427544924395952016275076281755370548349677673724573915963456631758318345040914864357952137023337603275165652157103324033468262901644724997681707924069504763138551769325550107276630774010164442781130713264944618173398833631661284888913690219243158136367653485981121227363960167348550549818813367053349601481653481729224261497840845360220224304814791669566906681656287376635038163166666931910510763432533434699743680267538984827492104897982281673870336863138776939350140472410593519933660486935040519661409306143313889394882387191634968122334720927516352526855656722602464407764175729994430252908588888599714290542229678918142790591871606410845224533396490937921980688062533890582442051792137694180484460548725160559575903205017065141547215040518179482637154325698125826870848259532122876521665193261357863115943539461571824192013623266278182593125768789764569783126649912260988478171179789508507840179728730414916106892726060995194525655581911207976604390826255427181603871972622474974778631497049819757095218610100307470399065819212314959016418136921202846668837153298168550091982076018796574294057927140735297228033466259617037205037389208109764850213185312254205337905886797828222996143232157024688504218349663387440204266114379634771701393529392661593348231021969791725549428952323285742264397022391276811965418885502609570877798804987809445738704373035401690554783156040104890758486549010998112004132796111919900605201028372911105008083767401120870867823788715122595185502119090270346190629820579790998580246121696256431054819044672130404362342811847726497104070375434738469359677733008312554360899295584767279322407317888084739953237667235038469530583341847562524580296816456372755969851429537360493965621861453013279451215136035838892448472697815212553275514448197393374789633943796976381598126940073635600644072892534458198475038201575041526727066194053137871634008725256939961645282347643765277007122048462848984085983368858198328613175831019729095467467034439430145084837294328732958203334480141225677493581644279908022847740957772847132815431364890605067869545034685754321705708742148642623574284419396091259695561592735153293055145253056341934168097759063088608175901658731089519323647125443890213838077227305303845859131535136680821566053901875837932787965255149525287799449366573915090595968980678974009681909417292363628240775023676461344613766734887213175277229183032063813897477354851507061376615731877840998371505375152294467957517092185899203383298468325839354872702842497012644463000653162209164559662769143897348162333646380297755687062282743700386294330766828040020178199410724041438634051958176147858671918260942062157413324584557509462524827360916230721352725744235702377492510500716086225672091424733564743259180655966371284402865504897801244872207791019106218073151680118733858686355483549003089039885599194325096685322198031442033712845059872152274566289043333786984763761791154863016399876495350241615308789054763691036429010365919688457309339686679745430638045947752596950315821949372277078596487658762187010924255388490500330534987335901171293665457196343241208792873266160477459040249607674520615025777581980229951192056778162875238429440168705270151658839262955312664889172129040034727558955451649811978087366451734005136017527723026411789128805375474387083917589934657437255478067275345356792707600047008834696506734796302943467170358680702444514958157613447221208600983260329597773797962317814204594369048219715830253981603716056349901586981654389364141014253377766599207925446323308671043162970779699267078733390244901418173803996463686629337967279553554292326400996161551983935711297101984520102970559500934841363679113076888262777043060702974196268147124712392324743666520308154674303449683332596655127778503695262028253554610187550439378110882437039324608365311062890309356541376602801384067810916030687229191656169839057546592186070990683838431355187891645513358592080831774469059625306882956723137720247360012979730632869974290076488002570367653743163499974441510300940002432869290209023895607033681304528337419839672653757753672126591086290674618217040621542186971221697974031754843193563659567516752084867929139409441911248563711494399870125960342983844661146577576914822307878776673034993678904981591599613816220140885290421645963898080480739717540518306240754304449283100093349035590776324656313708720713974423985866966263008325038939305882455161250959636555347089174756750171994655179638845866270945842145069721762627841057685057279295627897346696234228986462142399465072124307319319134261901468031295866364194280070343948642122728461070998532867498032538503894202842733717324695999543287975661593362151764115894322049067049812001111356993240996248858368763731549347708734432203810406496673599153853871032187733383319246515456373745597759719069893129475466153062483552450292728876197753704712891908825136548730908122272266513520159853020914958533073434243327533539896906621245570831368881073597506855618440208429878503302678278258519308743714528442614619964868147189666873012547356140556094434401830236085653426292866790800916122396078478139301533728404469703714772314539214361732704960753022883429260400177120959165706887935933695888953725985050752244287087487151959062269702049853846314584977037746411730453252626907891099281287369203436637851186575209656057066378085548717939748584302041489267096726888779169668155342501737984388579436847869007668266816386006950060421574904108246957020405059157815027729962208703631460946086296149919627428703662434869280403308846705964134162675658749797728022371837592809026265828316909799424019618231360423701413734585362661318821455890507657588222085811215753242005015283829925702759529443308691931536009524048380351144993895317440253399442474620580384460934828121307394993130373343014478105074917118025143118090785478951023667768304816836411462529949669265416911317514155189163728615544037828110185093469237832402419741182137186532630590140207222891336118078468626779727947305498317819490313146334524565014498405983300580500012446882247523132056458206524064965110660775311683247769152977830511131510328159519561110819954514188914648019238570952991712546112274790036339767630732249698116350125320930762853431588065496959080115017876377510954544795472561808663350385497731971514915885393740206032714914321914442979910118837447632797826650849924131600403292830994739262971722269283372290071631264186571185012209834047556066862539353954832680637263522678581489124167489716699626719432120653759450641977511783914253493959158823108010282165904749292816150066553259208566695995250261037461413638129963575782093608559819960962661163955218138744075153321752895814446654272052282136105875538191846567130711728819959524164713282416982005674986899647862523597594490761350207874592927630269091103243315799928805597988629008680873300536412162008926557926480102640999021773970502426374856033864071916662849674176215536262685101637124026490948182635744987857424900028652306502316931710803753953321036521709417301659518022571428080264189695423041632474003734198084047197645795291554450201096395461200614444718639612042283816778817561647147332410393071490491569841419454252599887496201283317412429770600682005678714964274884895704101236750372097254641227033750388995654591047904545958910808365946289194970441422475828958090955630493251751257557408018276583923414352623320129354650235230126999763791092195892346971386334492062564641722191800763499830782028636007249883136390109013220500437047400762359449360511277751397154212253711156034637076384220284342456826200782945926825755740597028939132110204869443033000035516309628667246086390102989652670914028544516914054345734839131384500468312884460905117406293225737637433233437235184115385648230406333162744606974247333946123741988480032242530952934556650354603867432748331584378027094152972678519645298896548243693495223150061133716150375310454994870860758727564631701995612351913400589417802168478871178460970999006448399575983323757171426756081092589373651455034947192864347604737033879981479342507791736631221585637960871291136422029736797448026842968373726801121930771452740267661913078908269750169469019201351085172995736054863274771577814397476228645347206806092407393718299329125568515113286602236002469185183285960469072294553710330066823062871363568001467267905507024147585771220996405340712869543677101594946304769124852518415251535022110950305034619731388897236187164366301562226519518110310852511360987372183337905185594899408310769175112031421116262970030619311569791228415942464338624162283921556334956364282254159936127286251538174109043982948907048081869401999437151574881284853885712727621287302795050358114342788633015546853311483735015209853761182503840177888172186366795958874646576206601028219178956623152276542083831086667233905625863261444989760659986143647678829475358839990618336819883841842389379403838257458209083395866923649667584071955021905844338549315571552856090106870759247046574311241276076895495706859246512111976376727544995121191671572210190590764576395662149891509750644996567619779405376890482596502904946549161864830920552468148733558538120644175308611302857667195841387589829402502170803492734010056394466515554169395762142491996893684746593185346365536623556322059361973466151575222082022548735226510845214024131837473211664964773586842342568123580234876492200587234257375296583237163733170430387694800435609619734549912238387894507082984616043461223245821476957222744460111947928675797434502300247228421869043481340205832084213230312624379942673815730523230967170215454210641048968196595093312881604194870259346943420389283607201261585740288037824877436084840301402663264160539185367986208738800899711285463127876010646374554994604296004893424386300887517188102675045331589329348628939133472783188653689947930708851870602255460457862118641902091940760079487644067150090735131094615543222197264119568144452538443221715425192143725485269861057542945012929857408206092782690590541805453027420075046178484838294736081748167746456188055905199006502163299961467212472304979015467209260034472734128924195022497183056319436683067744039502992260813362137370311166160839144388137081518435475955609721925430999528191622188635201242021776427560031500460572388423870190771440903289344913874059076870978783211553835298828025368820233174755883629287644069271416191265461982342831504860354242246472000727108909624547478019854374887503531179166463912042081432184500646608121877019195048860303472360489355281829723611168899161286522072703832982508271852907477238980531292015476258242509862282385591166128687007584734265091072732121687154648897777841353969136973233277039021594716938508511193614993201565932681502381055708400985435716839037818910049049544955245175710131176797986554758148561828982440337790056459081126618062557489375740580511041929725597056663575122506807714094434161793059800923222402615519807483519227725746559870555326960425027432557076617859400091640039218395243777607018130068249642260854623330821886850628588393443930650247001220849674825415113464088790207891377936630825056887001392776014935262451477621910524124106521000382276363894360169192947680568526109347293042138966722338639030778321502309391719303963151087306270650707127835587178790333634985728470758296437427796323710715589811855283055231074439635897843551613718722180805903055782629188708094430437371341453389603046045057153112775496718520372804354478699843702307485313625752303678433159029559031067235642255014718545547190105972180594264332855968213673454174431581766948984440121671856192683223772101608584457081432953592350421304388453838408738705910825243199627359021156286485937895162689704080969175132217265649301476100778524164806059018626904510010024383779461823707728938016831826035130217217806039657206898782183114106886387923573641557233849539128202940892429031557955916048508107884764580356529160731494881329892053131886791847818696342367141826397411152377395636931456099952098356155924597392321379485218740318294624758335580109957197316889695334734675143711277734463286391507644185098155553575500274749696315623228841242727223708340602055444772952291864140041668855798776916552444565533943748915262591263171609618294029939288164567039647027000175030969809055878075646068547975227944973262769405604886838036221132419041654024014533385732818739060871451165005212814323011787438804183095042381607873118088613550043666037822204438400176139087372561434899883872779401320969377321609159624903989889665020247789938496858454475951012223966138639520997562762272304660856508399252347520756531148451018652681604228568264697037574191943161635310957583561967683916565488691584078834344177932441357743630483815747530404134009936003729009183894011554151940840497127435035448730267264178013729834412728377278975693074795748570801348513693286929841034182188544182957664521514603683461822925151237339599216458527908750450492925274631238597060547451206205342535430258015767537153329572438055175699047107027589746995364991465669365619998202103996641283453953156886473671112186990540108385456469789266346965343962588978581986550261080546289217422843804339281694941305267868821499636200421365135712826829715962155700410733475822735131400082647075469619083210077260772534591285739344113171791609676774115276878766794340710249855991666312091788811117562877876249293519180890290427694440984681093308364656932786591644677606065664969571564993411209017096339067039274713164981958482348500004653395096664448986256639123892181858874239346370345007051308204363575517991404648238357757863781910706569231230608513844896109747753316970901809816942319164284625650781849307809865492126202533956475140890520765442744498766889561767866244326573947699761645551527929169339609176272649138160911387038379833691595004060606271765625383808093279358341802784757217768207172575480443791199972971454251770497320290562375482293322065960451455025536849471618456223159023759039955890685508904081770200963604608652861671566286087009680711850243828189526686910349698352141572337168441161836777725810021572750094021417937435931516281299056059491583505023988717923900933195479910721180688397885221010385549718618871784441089123747264882688214323637672197322038978266824630450822785087760426229252281438281073429118657473346737644845224487909881076808400524330178521565394751369543976322114445237771202188510303861345500128196691866537062160484080206205440885175279249833643927187385545261460832760824639304578051864987651508011462344388743527258638423889383616023289201698726353750918741481205826395054050129032996156878252114094763411211154995978791631089503832060648224704053695831492498277766144645608445056840973156909976993488551894597914512109016953478452587053499698164498868129367854640268432980185655983895389541710645668491811225795840979936391326062065953228091283462737261905163301048643915871718597747078165731202322685672017217728651041434223325361492061046182346122819355590934854228104518533116098305924201535219282293700354378004831146944493226654773505392134634624192951442067909936412726328146487503939537937381823534620055391529486282628683194610400986202591695115300255286979741851692581065464771603148674208670238296400768262748152179136394520943635620863643792615716445836585117312549624798595723217858422052353582221959899558010314870753706370837399537324619593193772421979304991348384545992768491374931070212836907645057562946692376279657710474538567094974571380078525589400468051332559086267573924217199728839583025281588566409342452442049671590187068889183169072328747647046646938477014227863935925111650667720224810994217632079090104906757270930040506496042103835843496643938743977441842903929939079092227609746964824300801682662243540646341364708267891831504039921091995548027229090512522182231747041093953839847162956348937493902285498821870678187399512580930300638055434818794068524928466992357306420421628419961717217616262026202782997973729220713721780269444033124760015036447638706343495085534337531435414317449254228911199249482845361003857321067960998888413027631061753841597148290532108187390121471353100291719342469454238250759708324579147110093212654230698241228761658043668324530087965248693022056585635679224109745869455073753939513844398423860539785911941074654498150487112154719478795321510775423746997169598317722631124698783216083536387118455103958321599360021214167528377581516778994031211440059819057431211090336198412412808873598699697836951137869267717564216612874885341184862326590063927848473798965127512615148155162040829910358680049800769054315664598014769665828030056352324832569583427396917937127305644911201640491380573682777759868410322463724185541168671440018035682929167138685417895578792713254639395871565814864531734148174318320285215233207067750285802424926441613244545940518542351336502952657085507447116394822821053018565533284032677471567544472170658065776610662726560750968307072936700280373541895795482724386307372928388776865080758768483910722942680602765289678573417775386968259644902191688665064093791907028523980405770247708347106771990245040561206066553648673520680000422382113634384942747148217476216171181117609399386750597539859783727422184000970358728709098031962977556965316142491442918792539958486970339427519683901908036527166525365381268925724233840195069017037554084500665406209926969892803097767107585688467918917783341912312531856713661486061743924683627313576515543005029335327133711677094969715603319533772067453086642173338942763435308070741143267445463873002340633438515865213439729702417059523869187428136014858999903226328208531599753649122727722942281220903278592261697532880461215689098517450931789929594258156884854881991456156453562999937670559008639886907449611597206059698196993163198154018039557947135036845863891279815135565647075296827019502205156592414693955258924875653613997378255178248369526782688817510746100480546376366496826289286583094535885370014520554665406763918242884640709933671089462106670655487625554184866271060009750185945145145620845979959533413285383874515834435401445471362280534478708621340608772862278275320891823942261028449523316004928438434105268322747882085227434375358723981395269488616104338757210693130565118099643145531343645857218189827399861456595063230059480494506820528758522525833599907591412052505770649240217362006691249612039702280295049962925686825792276421562416230878723517811666987623464261443112658598728057331231766075658822495584387371367325307689519658695200012145605966614367315150900503337301677226742473871348250605439807769828740987269807147951822469729996477609621060185842968918565628499243007619638645665426346382573847212288481732666700269974594487747233791951776257454108285830348153596227330892014519123144199035333864889787166443703882314969687231650490488595897347525468022271362598738833574578315656832392503842489228634018674312854017649648552192491688650409518088582327454487738113014088734136032867287615730242245883467739260891345654123978153991736249619596332156671010230510024524276354041732132246464852844813196055299047210203083694106182811810695862564973147777499419126611243120646524892718093841678886861533540754541142098079956243288844248162574843113161785963217165046829136439499894703910465064255478848857339477338316266983912809711989911653018521090636026907603698822428302020380893561946786988780166011204557358116693868487062562982707022485414613612772098854543801680591725127181171790140177929373841327513903620904311617023563228814525494414804999194710920775735084894169893337661306745599005760010872616225100033332237004315252882256522579383818432246469457791704074266717837339770435148502277051353576771776194105881890319800672500851900408625328806764455805928991336545737927903147252956543992094736164802734849760955705015939293345268052715418117284769533520988065435657768124471447259913302471719470299208055844807973640866045606340535382626686182083377793064576594687402818497160759505581125896583876382820476675574318834065290782460040375897144337590135995319390375343256549922254001794676414249981081360106166186632225448406799697371209635452751472119625828653664201753757864390658519737055426132359461360897522194193110283528563295566394134564659946618733284367846758627456291754729968221084551951126487561512979589259204528001159116708573429560645239731993595530653845239492670339485933476899977082447377609360992725213567337821325102002509692662805098941534169942011927770795476620751057104896957481062264584839736311492126217175333658393019737822334263142952794085436098701640183001613221691134257058717449024515678123389530226454435896693375260779605003497021461210164416337983508661599021589375507429202701483983147345522595579658487141825553334406123360191314167908575730769901912751671523473970238086627702180054972784520544923183382618176890372485140222721554525225523054400051072328099958107065502222845013395491609565307846182294854702854234897022651694175604984072081352111249570147622106162413694560709242283770229530103418007479752383305870185992141263661031470675672114174168593156916010412494699510834743795569906416922281226813775851415834068670910639701693482537422019061928754943955704603603477649858341552070270815087401845588822621640876636102761624409189060769355943877978353699603336064700600599547231309910505829099901505965516241555506036073205789047322242524585424305144025045703763736003296903461502794030435497913577145609762749891335000924734761044069856015348422508065758541749299954369726417431982570679922172246604522045521134997709930178182409428540456957380534578180681599431030024725270567757578647584064877782932199694452840714556191503573279651456330866982300201152659103645410205830791737145902895909949234422847229018883348238660149118681951361768998616497608159619965282496140975313377347824594341464302457234302796205110422190094425341123368380169558259350578226217166999730564776698354434485985002858720541445302653440212340113075633766404207409025449060042113411455859715735689662736280381392317339052880805329640454553814267706543187963612465705840182821454827095596480504606471160156751780342531288782293942706577846045971524079025577805018569491754313585490688516232453985509797574870010192648103560592127984066516075847094545516263033218303369837531645195589461933746826291612019881214516206709713245897855693883953734746570610223287321471023526375551125234472523558074326716178110707429558464311895664757933007175331459776785178805833287426479740102180202913683539011826695169390850892125310576113584339964261979546810290186283765023163696352108849513924040264954100858332302362560236043975983909000182288711425477727595025481222102800469957907442610769074833986749679923657752256393575069459210909683872883415584074015083505363354312929111220176532109287969743596950243576804785231237293275343949921547904067201962319956433833095886438835952507748959177811803799729670843552321305978658163152211019641645841236771652390378056834614902546683113788706278187976528319722032789372404397054700615315405896939792893980938734148046100681505330818824787187758083322740282949104418469631095466263153167410365441361972033282799705768187883243759399735864561978451755104249948652072447215249263541109468027373398844433068264577050516648922526736794212205370263881567364795454964528921411689364965527985312118310201697383234432350858004530179523894363172983119686041069142408387769862990587779480024161296188739905795781990607022178316914590698930515820907160752496715374060902805716338672796739826384318042306528688508914110797173286122925084141758956763396887024376780221664490283262289304142772182140034467415538654774254986437378710547515543791124351531026144667255155321751570878723651787742356805965724049494601687526288196419448616495720176711115465021546566912754908456895252529197733506663553367045733385817267986130741770636624046904053433761436102625539977813697180180030572251940165543098432602789985425399159818500618875088410407564322272663073918399226248546690743477737354270208787505224792376656034524621454962740257067323632687045356673486043953504500304635954885103012230260521556248162806827504378636137025435709503794717888450332040532374589443365691818404563662279532192689358598832639778470726232038754596495040851890754712115414363915245382973277263263508934339398670773218075901069286989140748251669277422642017043465795386955227589931628210074678998187397508379609051174462581200411379610631769168711486062922521847213671876345113618804483777829782078988593396826653519696373995893756859953629246944923492102456316591363368918626605801307603000101206994121528509134691496720844007214897070983224535182811300846133721147798069711048149803864124191812417540337863163967844015232041168391488807937972154532585712014198066736290381085301187291906704914574088435741263096673826158498765639812233678712163089617430228992956803047843775873760326773640632125422219515799604154581640855646776502198540452506872178188622915802581178068480852404396252144842022304664950423409855804824923252362277101758985055648007849930289452563924813768871777713577930567318860762637669283748517006472856391725932368975153640401674253606784886657171930580312431420728746591428018929991758855552542370115055376193729305334084515015110818377716285331709428307432446371289474973259012325425509154866042823698757574359085635590883790971692202832979282875241753317099641404854521085059224965865451084380921761720025298405779608774223534301472271974905638276210893240961609980682672726889618553806326613278591515397360380975647285986938453822771050074736060943214305900752732354796895788423129212727771679589569446154314923913413721939038596547813244126276472351014858098888964960098365481238516791376935810989300975345036331451797203254915003487852255704833973873533381277288201529225786477487883217087376322067569543643154856781116293695230035876457621591420087605784553770039105716008190718571029818832580932186987780130126533006282273992783828763343172766727946323611644331825632063654580220781176400676897184941775563112671688133897391108067551332294698573390400840276040569968955536020221582132439881802500047804519514738047606594506215327119756483005417869409916754501971633033549024586547456011695446003202083210521777867633716611463620246500035901956131527513399786889318364186272347882115857698399243545512994823575255383175751352506803851969844175539490437598772802662501518020676025678064769000922970496915864588918365688295104818623103040331955985988670537481247127680861834363468768579967713000275026246801910033798922189095804589151013066574569414266212787660121377183276357609959541905071840973749044483492100770834266887180785122077431925401348079304324406763548647051477270139550632974198461983299186768261528183109812595172789619641318178648616450640328661036537275372805291700026803598969501345245702503925034711940290474705593889129513642303687986971564277889787717881013946721046844545760992769525191386825237008614445678767972627439490692108328408785062933648813830242915784003557798978279537512520363980287879782883187337906193377102213475743494086114956613679815390184727281969176865061812144640307188422198368007145487249012034198153292921988718942959218557110400485721590115939486580682469113762728645271056795296570834276612201127291831196013528129963798788138864469955440685988639874610890897869982320482535163602098161975890060819566298456715967251405472226457174744294444653972793766931400497132403878961332042496561558073612381912532293794072831891159441994231303613452329480959223978775528040567746678875530214308577669067816957445144201119772481582150461426884095314673874120522605760123154958320879153194854108262358048353414774518883778929683712953955221879363076644293151294633635706781745642191238442021840689820894977197869702597561193334539042170335288271657564835723257561766902976395250133587090441073424173701193672782770749962581825769759395396123653766496348482710359586739040481674100826775867450894924729924320840164592025717700819971500288989450838230323942905174192808550302228082974844541096748213011286351726335282673750580234693425394325854890058129850044574663726770924090204507815040509544489909353103154257652400564980632163496439315644685976644220535136486628130455078323146728978477865543102398929240226457530761605363970576388237253170905906824343415883414318796052508940121059087176506041787395747538128369351140461035360866386811057019363004345158674875981228610698241955739556844366447390339816470585852368185205442285720367565755540930913941335327288871885428108396589900668803740182541288887229701801189578821660068696790514514650574369527445978309274486413382241034685277435127190312518178888973847844307077702281383655481443419457942549257232314636668327254033958950808078522309741949874282677663630310065288445134760224098666318348803162741760796924157178650058815784520567795876088678151380587302061236280666149155259163471219760593568799011742725164048074306715338697036445262913761976278742004876378298786235898199946844699184604009314868904606107533612658989749812037647971391510746059672778116572631037071721080680378122625159404934899120977547450308567482525223554952143600624160877945553085454872910604035701214609158096956528396272422632216488408914054090079348126183366818801320098291464882272564770139413307599560532515900095075140893061210340914986484466385541363387706066272256533836242071403871255767884150094551770255082763256311329202136390467733671083376577443192907324670800796412426658423144544572782488760466441294425558812578308725623885655724508570377646447602965385643131081870064374129626858666856752328307970155392819362405807795005284637425847132930694111247572421697328090093417753963591655179914470050372587934647010057367592895504162611055327562199080161543156718918389497539838868649905225554666578279906841732029894775631536628262784451363414832749709227107649761518232726926018444563735032625716695178449947018192647267261201883648060706305116260373377643504423752876945132991661767582425361160328133551494561765715299356313467480606712179362597455325059504759442233372271046293582736232115088537794522289333211554672826937466090309043722587842731148050591517095648711504781777413101084975275776072481515127322882501721287741934165179778918085069829092906270941269756881080014727910038447442778865413548956057933361405490348157445895559950070549528455746832657091399960892078694662348292044762322771429279547289325609726086315231314423782790192682403705599028689921312475970536034257550415555074150108094156994402644668117507652575722891369930994206209944978302211584502601319525153861140035321236459992961498092190689357978686939397479949749352828504471594824113380105951106347564639218468174765938414540339443511730284119144510890954564540137132317401505806940857814082154830632190156815241402457961747028717207981474457222437067648935892950904994437922377340369613306807092736444445736671997347702665306732251042123262899679511161829642366621525521593692345037697136441707463437650288639659906543197836428475179039895910195139222229036458317908823823138818034000509834178338998950327781562065066917909584794074558452779169006271065567750259891942355581962472380715109849963347694826677879627180890473722359401330918337672682642967985521169961784303155461008723844612821313540374071733844171028608235258048757044737343615467374016436083945031243117249001175230324278286047114145618883004107619534631222194424524293417865156636759788932898298121172609396371496535793326092704680826452493998100031809137808408252520376180415242239781965555716043708180008722836412103685556372088663313078008888154715723133123389746454961188659812982944146821233366899983430363228443559352160903375851309709492594044983487452262025594355906468200253654821929609696393143737944919186722695701202915207331873798944948931734616820188950219442977789896711646999578911379683354060634474753859447919771207402478619433317698537969167762053598618304736876502801695469947216687431117809236459062635611231406748724978410237367806892596678289225555127561142385551171523276466660944911482472620623370847311410664398680897198104915855980025704185400284501783677723254847500086502838716812465900243319038163421476214686035794775820007956346485239479021197974696123611975674403102617061164616295248737877764572331506293591280343682091489167195681071354032518627308970935003465786487855761357978466747692882510034077597883519915874935542274817651351825976304294022985217903338185681349302211455047416302703325075159461413536477182374333643621772543966799971176030148457891421276681788860261505528910977595535321190498747174578257134414972291431009610020210974948429211125050921787462659071888927875372637379280025893411758009158120599676014555103289618007848915534031315175017105073086586588539017948143856972246415960817287728685111062823734029164893215761422672035588732625409331572015620674075909452235553238520519440780886966548993752161107182262856059016358672004339653003810978909473703937959389214264912961192410961404089609591428792644462151140847053646598722367251380831725592538762279294213050739678829890776264633682670671878569056511725251990622999132762448119072237500262663887434581696590715152468529424008439442769243840266001178709616408587055127720088723014527639740018999684763956820325064997969226275926924747131356401035008224015892200658533091212520018510610651783330114978723890849503769303205483680985349835932958633493479892237790948413675514167079735144015377227519134218908216237411876394924707165282883646543522461182271328382108170870114836055758978237090277212377758862043088828049851916209184674011084892846813271175429974691242234551746689494951468632492720929507785931693658033040946067536849824406217477615936999716151333412545758268517224492675669531602408852322317483907371049643227969780903744950702159985901031663644964091929016543314130136127275771056378405741282014823408244808436236686582003601842045390510710148696968539321910020574475848133095716288021708379593462136987479172729009844269090912278169001095662238124552033090634762808395794615344134331408376699196612717860068905304580217961719628731654187476140303929555279438479967656897545067771835350405511951317979027102271471846518773772581915656902597131320932829217340144733581550710976501129923846312120101451512776291112804410301926429385950067988248625836792659595811718834350309104482116245657371702233098736067389843446663793549284307991878533129548974348215618724197895814467523828230121754994425827151671444937314170526341199983480678603862961507037179771672938255260349449964203954153292482070248923360374182955596293331514484490406393818945439204864123104727565974283582443766184837703120034652892994971375489060387535414675413152624603207381120209342301173623083799510787264343372338655461223213469102539942086200717829565210141121194538401771456287537249239792115342977810095507828307905232370681920053967943634539677534266303801162635830766297938032048368425448530200631033403178709164516885378157940562993212211303302439354198021280365802351361397656652854184899176921343248897579833501916247314372397487038205755361095953799620152013640444340669835018163778403494688686010656580676770198789520483808847043313958026113862559051350933899970519513925822250636410182149253418191864163147439777727258091341323103733946371469253186187032406985852727973734721179457617771288853179269427530005346154223523929878117241062170414157305040068731052393350318506368342646599958060422186797835913991419076400884596357232825862538068351461116608519155821415222741674115774524365762143631345497922050126521702099621115965072094785718253318989569344157736054943017199115079024621502063019660086306925560282440345901860861019488153188245968845597851317881018633743949567321623705519979910824107162692940994263353759413889451681400115629447865697514238647749337966853547484353830956775793699901794749634974608741496281878246774791796851858655143560788061036350373384277143556722975709229432598633412936195245443583506196039060666286212242532022100827885789199398970969442590786002246790036791334634649198039277954930646515710880422542364166794104250634307657551907488679301169281315558272167682708297912350577647766211021269356240787752059152683693971162358378133326903632460551026699239360615586305903072466617755756352054376581400466526570917452830814947938961852090173774555005570753110429340908429475860055705730034066393754764253936224080527449681609204081168849253133227997942746152504403022893337675342190897781113443832259352914864862052868834950070042880843573850012876112941266279601909158200167747379124467642264656779061812628813399900314282556069335138873773879801625956245489326882929556748519812285816999415006210913180851805456112895785412499093532684713780916109471000827642585146614243479567931473690739464875509527122829494072568946052418931834733311788085769530084683147059857816853367046341029210297682748473983437837030467109490046496332271516094290136228471232513440367797640784924697488722986592329757441531645079701269614327474057294532523064172121819459453686666922445751228306520245704570366500975184305238257445966194832673935939451030512932710106985015009285464508124956426465573938341074879296138633050225120157509232026337504813935510973290181785733850884296425974361632151905016178094828150274302263098178895878678788938544532702375900128626586476770499263110391235490573727046707294751390242428166336438394291932702220930464888828771093986592284579147732466668577517034963912854075334729951763756840956235054348750499578677989442921973235617144793673988967057520322794655256659622394723738572051674796101176790558963543781681508001313980770632119662747271587598919462065917310973464258256025905746098356817044849967724947366361417207849681093063767526250867895965755700458276604388086466204000713109104056110799058624788446308422647330683044713725294072155008569681486325074543366690339082105970890241244208017549318010044021435255799695871121184703175959053185655697328655317190589050969990049712635499701898216889996212584862794070161940916158131080603086159738127893339099764884658040128156126060947639179480288105349837996592739237697604016061461420415730329867536164226748052937572018151351620291991409020650458639367773551986012947026584145402535448690158658901326772521282723486750960006829482772033609252612600962230434260073429609482907320903468123725819071557753976241921679271372191459291306643118782395693057899240277956837548963566770226646116777499134317362445332338105903771279751994306921137261979233825271064566149091717169138312998771249821194021425585973927448571623444020696059147419559772685631575887242344835703638393376540916366677007570154917542714456923178044277805412536993289553464989682228772488241394939401662773821588858658450746453384597683802359865047951125707596429151127032045112049735866213348096148189877644519808979121480905079134555354770622131221320317150368260555906553312785920657204278193808577623285555297626807335194349599680363693041463059474783060309725532470455631374572943099317080668325436178661099742238498417969376838248556971244993920096278133820222329478998287194386338813044656572088218203222191558788153201082969697271750421383019830566127898616722032998775325779500156284031923346651740457174539783822356462179608404003319519821894177722069476236825720568660809531563139168491610747118105730387950375652280062897004764887254281087969224491032712533607606891649242129503633341749477073470435861842977363602931825394181190842407650295875977137721047524782721638900908314221859550559462139052197685823529375952167318345522055665862521868573865818328912515863102433677863537557708578684135900384456312593077569601051278702842789530038491072521248535350749033957389785774907711998339338797190695841323959317628415223871409430632814142267210517346460785683388329107074120663957642342170725974705949431545619908454755302203886496098558064405296880446201683996272580263336625748048202514980428794811427925569937096638386625624055940619545993622686430227555197529120751726929221866379012448313569456896878072159412950367069087586768487629138482518029730649788460640084056753170635268401533958921701778049580489498846080133939346117582084577388699788246657190600641368889565819335271574659765192204111991329362844863896141833806965868877608273618345955153097611590162700454866198971314207937675416622081894424022097914400605081493748222260152610496381434483690247219110862743387016760399769082072932821655371346197807546751081765016097366721859400417889680100219033819867971222376943012431740030576223573676247794684085983423933124762453865840217840102117301724778735695583645483375112887758986276296641911730563323018682503702730049282988715529275894399628638725127232741772814018791218089116651181054065432384885523660558446494296460083935721291398534031279142765545276960445377102040272502669574929078571181163819559957649327622413509730241775839419147514144878392603998588207003073858952230390345178763003234098138424107259366998974142034632095458963330097244633969512470948608160803694384669882349459949113828927624642178894016367695133471433571479670903697297849619513197684107690850923342910219493067802264637512727028195370049545760108692665635057653878904917962509708981068949755262571436286731869652025714562947345982333448208944420318875753143602456483398747056312887921362421847004197253893210728297439708114204590040403413856200831006621058254906885650313134428307184073723636717644346507865967007647999017444366135984677988745872202297337773159630764454817687977410870908127343115933975258358616700703973918576565159498583501556621494376949620991802096058795241311696473537732825727084728573876640291082930748523578569814255470720744822192736851972876772853823752681781974095266488963302483330741954473792066008379487975045043459796135849839549338360695886417991366263277752504886595719614924315052030200642033146132078543246051252084703605460275834611322934948678007423785193869280929653533153903966247244457445534954257902062688346590562502854554439683606955941033426721328376030301729572276189404961778543882347319042204156853200192435804501955276474916675034760264267242629658925380006024770801269074921875811904646036612736797381954892793567876749375262953259504395668081554717881902936686768758572422924825069309421094503077089398902205197625538090501935282776870759008292795081023452691817984964113168726593618289185522196029692757710610064878275970703540641198814540949209801915824808144663636534946260017018275440162130401162118726707319856879414523846213252431924746240384228812855691758336056003692108356003017708960141272996820542316039662310108824626216552144755845523477260679662057418086333037448211640481225785157033511962035920188615709583900750961430109472264357731734747800663948332093441176838542597356208710196416059673414429813186697988958079293920003648225251556445439552981110189055474399386483950294885040108819728954392552718161715840535112154292703100569389459595852478252797189276779242477280938540159826253957227422970026880716260520200372164606023946568775878891097345107193589006406880939269827840081705768018608107922892894736792767845921626008324595670682607754657474484694510737665305930632067862526533520228800555306021962425387891156998536753509750099687230351202290091886843893064253685957471488976664960930408058755920499969964597324468578695512064764982064559457988814684431409496130638527764389118406227226523435965029555741665333948731849380671779749434798991729588029766267457237156519633931614035486083119746404139730449746892297935438633719700743598985707118853595890115449095709831508371559167788428115386223591731061015902538254103216405320202483357960881784806772735909386907934877065840323423478351549386838977957314975579067979749422388068956760884095454003911688204683012529097334954263609839192098907700577365204502355381362216556427533179499269850876778367748716360209298789704596716859607576369919868159212417095620301703166795185575416163428534012564586717935185792474248785040057980691176387232548297653625351596075154746034833857971381707291740527471043111767646230678135352791618412813280914432678752648725847662123874715154060317816975488161887116591820100873895989033069352150708340682576665571713660810497548581459845001157610606608361016540078923603903653454573856978376380023323832863841921153921604079574368945676354772199904866495948449903708774447711457639177256029601448740764763370741880029730821748250049821313434031863383018494713703922342986766402483600754800612298516802995297611606377860319004500522517280868118002038968152922573205989715057715449130538784151630931081365160053492059183372677046496546853051132469765085658860574503420620169097141122047102965579398110634840052716827628574304731851903878853024573005150209411941494730047484145705838637081162726648801226717768483548332947054118871766007139151385469457595465865171239912296559469366087170817905938301953903604353532023935607469606394549821188365742737304401201898462479123446183974184320011378317440869287079582447112859782131101893312558104455869135730157632693405812764991461241970188416832778807351345066881032409369046098658640529581533867481772294234475374708523246828440833444692975089395580846585672744484342621392625849435983940670483540304124421661133499434400218996930304585406924578826403741271239298026530636484061855041452965246870218771361615590345071084393944514088358651651640357624598326049164915463493672720693016396801457038389362005833643991429940795873384359111031297612768404050640745214137797052387903654600962121407658486987727084713242510469918113342077663637798040724900544920301266924747654703057152837054863985675743036189319196520908071436390476375049674418681118860769243911548512054191722463915842641455890483239654847876064306758669884507322390248195692011355258586392728602944624711220947409616662098699030262260634920873883305995077331348037397651297492123180199003140735879495498023085283652742414554913376101911662588829536513494767309722181445084672724270285100048321730665257588251515725270703852045592342538457355035776237773029091384673851848392241834010957333905300533418363385720308605448765580913574895862639271782637033792338177299788225719124946794266852165958299460209432307436541891351234961772307472453103356319310972074450890607256218847636710311770757542202407227415940216856919250747702787926482516837046003218060210029486620167494800170738312219912484594120050480940485476934129390337410339859309133742172369763154807938956021957280231648155939192905832139330621251902762650151360848532151822056228417762682511217317888562421940935727725961178770800134565023930665612080422125949252819401834637486391617370126091337040294379996067738209479187688688522827289950843094744775876452192639791235393472050144149774891819374766986182045099845208632316706977598152063808613037413975540735031377330726995431402823759409520911450362610027208931821189396591836091171210038709509245689774215785251954090476067654651815267914582797979497398829927786114991235394230103957949682939587277098828188132302252961293195930539049715893768837951893605158663722490880972155298207223909530908240964365569577407400783165648938631875091276884423338560707832150658789247086924779387610017891288454373755853816590621140123588729572132689971196467740251801892345480266294561142383074101443226439455899483398140205642006255425477793669263681946198593873825358781501698283491034138880288198457238912867019933311412076585888866960329714143306307099789990947783641533873926952170807394335464506746835723551619106859460008495245659938733079927618954660453784069061063012650398181902566494795060659904561808378122835752384364392804180271092717161987140634761657500380626840226588704102043995540141135334611865085591628382854540801193617136513649104860005015387994504619180184084599264513276894369417273424493239569750651618568219832510963616941169367286046848193004383087334502113825281182691436053824081868668098251353288909887011354807505031856002925721564835819518436787795984965099887360473346531294779696656841190586964112963087370018547311764446690744629269220773676751972685815420327385598120476513544065742086872835125684720666435889589003788985827308836894013493879957968405785293941436781545360082938262993155543494239532570171770487672047693738269026610405917093521730022052641775500057781683263585398099813175655594808988336760919920897391616676783539292206896828057632844247645546169683594231967816361842560110691603642491439742851799973933857164124318963051542895371471481785914660453382367516106685527230503130566766662011414478619555518395608286424610774902617583007867468716383615588931513455617769670879651792935205527279584446364874496274473649750990084027764637350596837917392642574424803794420985284203356084845282324607187620395163369802452758471605715435329958630441818507396570676656804775591022716397983434885930005693262035115665269033123003258766465066620257862330156683252412056267325745140984944896847426845735247935314604789365643670151893869266347352574403437459263870405419444668505465923859426974809534753593124649681508704818667135294393672695958962781241292196971849282134016641448525044996172648803101732546639380203163939091728977813303499110927949015070897082257870028312528756899515538343090455079609308979931027211840944735732617368990230473149055390282814170521009894311221894275550320795115080014319194632613274139742373698307287450281531561178004766906961712796642180517217444114768917600604340660756390627487894947207341716901788078600459292457298589754529469185279276928209216446708520617089248353141439582890759139525839804043747880820375083661390938444949476323017777374960262567384777001058649902440744902011199731305720876650709975163932059416947603487802611228084737294409676963245208544944113818811752941021000459521539071733304865844210018210052692872587282509385762580571890834363931878899115152795545687266815594435447038658567021670341051627838528079981755348428129029753390168828656149802149996891668711357422995385047513418610904425017453911885809831508951042385942311055745240381690912580664833159341351484569890430797054164813365802746786001102376118609368654390615066112572934897825106464114722854124968161967314297188909636552403920824957368434865892818721381286183171040107109795262517548406912836809283955466835510057435444278922371360173757646400474278622444870667611425282513692929443798808789190948372923940978306689465389838628698367102279206697063904461487600887304934829714840905755851143751075004343174046276517573789294572283424848519557509935522183443877866012506154441747789298809484693464956211601205046885884115237229022291231519991090368779771316143144505951813997494177864013347397431787604570397763902843855747041725101825695848903247283219343018837911956661545725289802868476867002094317493737465741323971159202824724788079768982751895721081626780148085742464475287891154753377207810356709774014311616188747057387288851995347879538147731155436960790467685547117932041948490495037507321195908056654460114728764428411009923757266257995755682420892058657376001170360628420721228856097826990667482734648986459608684784920082665813984140172750477803786242489087374820911610432632124373543470957929004517824632833066059214888685470720129724574900856104557763924925453503700974154913816633701108837168492416268680240425011523881509955047363156482729210134151043998714362930922686061910281047141986201023086290578890506533988381711712951807964898686264241274076947735843161008898585938840156348066009713531886807300631527657653559070739397696857094568690559018959586949003001802130368650718023952200068521774680055623554456529259008332689247317432106064515593156490411022664791866470694507378995357038520188517783784081849545540302948837028931134303773142075065527882862911047084110936082245001746442843063857799578674716771062657073678679699000796112919113785784244148003512955731000622620601141518452118489560518143065194007632813240650156444894648934243539833347371861641116708804615553816034966878943520663027927152903126555214704561138996058993066755545945157727095240415245003649905626052724469886891258122676831602567934650238419182927721069079354375972812720896000172997299314844047259368617185831909135968564348546025604132887136652146887950431583791113944882414445311805665919641493278876315399222364477100018376244279169181192386823124423440148411281496009995531566644320448522995447874348894902126326493242970353106137024086788007983778120993144435901555266344300661849382452356172455124247836346949160147735440661951595351803213118718333889314779600281518238509641216953126734933939988548659274294680873070246596744298013040976410051726532253651019576621207248571628390420271972114305204346091913601699247886088046017566936882921300748179608558908308849312190235183436669991123676215254915217701241203738477985178994453706232467963402270216462784359948118784010237676297360334092237677609856317255335732936395405337183686093746058721541487706977645430033637541361686856426950939010421579746265439411316643241688339064595003137938323477887577910815404934395916634351457325732494025165766574503981449506886454699592045766666912772556546406637103947665766715565044915753031765049192202954106500281634925224446159622786806044424701241083900154439627743223806279323089668664016046592315764214134008694996615225741913083613744544378101560105717894438129603492560929378612283740686006802595567660437624692396165204273862712010703593402000621912968530729274749489015169747139914629018958309173276182936428978445053664265750857243469798293137917202585906014806121843508198214183850314353799203027592480252708327939223796575687529987369628659762032206157249018131430337844337999994803372108050521546699188075139498709322762187749074802286781022330008234609071544946714422766236517213112575280321390648136181379310680294043131133673299323370836403812769830825046070822678937362997173646727763910153994608041279824919142634050095514793840541616979238295584059686963428558518210097915471464004935441932773027635787242638699279135872985537966160428135877749762134227488095668407273020750307587858183062853209408070228773267883372780196089541151188455845146918135152228384106215108371459267048104079109469113495692990308566190977969658828414681522126050393753122298311628943844933043758812289691960993508516438376554556301911237873131982395517496993806251473465759960537056615912620553672328512826155823789111701492408540023625975513732671984393952163037086194230897566798997624608775564660884181126616899153730435320122449006134380506498917195606776693285731946175011488200087583747927134325528596751115354098109153252284075747377903496969546711196357310790224004493027739112548419070713349889354310367110068941779265624020458101497846658144559516290488171028964228139684759812057783668252400266673275990062660751559582833015272369342247560432939604310450616692028901030311657948785942928464632108294589502194800324722455055313757175541309471456515931710926558167752808150690412318393373628651619650011015667833168472561914528591978004962812734172316911555820589740444018331052939398830179118884662146129526120320867589396488114479654369486520163742705414058440706847388916247927713381922392747123731659922886022895574155440099380176222535100086874716298456828214653363532007723670008088741263933233398645326725181309860950433073638083553789491517198482571091134967521738973865638918879742554648274337445495807020650946800889265724497203668629907342947426315940915885425377617202715172557384531059276783217017534090170360041710002464061552466417491952495755699308961058791564171294778702600391220913238472150924277424153500702282503513977657063708607533547165730826806311739186511362273477928946733676210502829561555366050276959659374114119041988763419585476970698233344857448126605543820582743869089416711558722816173584828466479249660937279472706669642840749054005877206848018707105201385596219336852386038195779059741602668342202422341555059571613285423346396025045334397957928287476389829434967990526174692221287356139655605180455400078931631374131601729037848348418542943489632181710178203103591692376316791120778589397418775426609366812820137651042040853725710399896277453926049953292204763229126883452590068773041886838397946008868358006199104950034694187134348763496301188921338534986863893651686638728722941386212068891674729678920689234506374429162376405305912654643192488092184918771102305647129508495563507051692697482303714007663103239209723963538698828748255040648927225499955819631512852675229083275901422837788264998686008449404931369339930516249690814255083277198518555404271421209425661651425140340690959473422420338281757389336981410852012547584040216237412174987036752971134984119647862894314466970519042676587555382803282203533150224830651690295028733752812013228309033475938728630702605121204931243713754983081889755491774498000660080515730897417251526642356118900581632103929371282606188123483818683738785568602270937489348423858557509835705174489096832280583107470767767302301917508287275370938804935632362491027471465590990600745313611415716843723150095964715589995850539759470596438808515191726998720314266842634453620135666059411183312807339068613767953867542576467049685211503663966910595736307008885198238574622156827362575249818548413112509896923851554064968399031164609739820864174090060562556789675375870720417744708105836030527425438384716740350419158225973927329845662558782979528707421549418545102643591317304674840225177072166083093149509108984582044372972318213617330856864212553366250535810472040494029422918102871785810522851707067919186110434470406354406741851421088839830116978218038814802705326197364261976404328969438908244624295075912646907439851026850222062211327879958201021288108131162695620394511714951136204226419444812896298772738386593100590134069794025799899171926970663898431279874008444825170320992019564349910214921448741719619466366875240537471723718996860002715675213918479744557450757075653312370497113913439661407256777850963820221942019235595099764326325116688262319502259925485778546380356783795407290802956802398343405077795925160393835386736582716664343759282457220441220392242003052726081034137254531305118354520717639581240074045491276599377456462520831999295643209871174232890046087997738814801014904181562436545788195230183010078687384220157010546918764643481766391572316243051843176984154926920434596687806383740272312447594654443417771146968716146263389492147291898588062004453879360097703462720235209666445810486070112785476036037440125819312698081775879605626287732273614552960038746727103741542050390676625068508448242396088128916329244722452772204358422092663556867631342201100804258881395890506790485542872351156408205844167939742284456813684300206656663506823033262124767858732565319301908962147327159687290026027233549738103372189342761518560350119576829918983847213019646197047271574784428355212853753655990202090096157573537278867550637482787623647867660820705396168980083358466203538401373893720928001247643324217544940469893875475046536557534517749499710123534628727705813176802614743582839282265443059736595583919859341455852499616703926881266490627996594525865920731111776470855606706840713040251970310585735862855973817998880296777153358699916685088069249278502234630069929266480123717881945594123130471971329400761129732196722693683824936179722010084592681071514465318861530107950691690007673193927448120862673931859511371202763475686773577611322494256613390489603888566326788847645821315892739696155045758104282318677392120990016610670780859408684585410357370159754019927695734436666585276931384764722231636411075142714874701759202423600808825686206107157031188005550374272646128370832145695858880713429635605825628025013012772477115004922655217955463453533984560732482339176030926756822864306331429989248919213829362464048954482283174491918109061085364662477994577693093143213160653842955344232250419095730347289684112391622237822575878150040832951424277607568642638411798099419125510050264566684795348471859802865691460535984839454554522871747226222915764831154993510587890966832422188467664807230937417139116052639213886914103063317028072841579154909399411112743600743789404423866022473394685428417113991525701921925135155377478572193859651908289841323242754043679856284198486088839955714697050511237844956398281486126857089566012424809397818844351684514425059525851948007272071727497263792890935877274551597552465351416839409904500127338905464500724466950267731501357050586910579409334781286458641650259194285562712323094568334619972890176412750114780019641004386574917036428908949020520582680211668699063124075171095754825742563763526731713722605385572776068827699210911617650798568860854489650731806154850629452298562434399324531485582646879062816629371849973679300902386421465688290516858181772602745130777245282693769400655415943633328024477393165874126900223272984066038368047811744828622180846802929627795546731865670914671069051912553865123119341867892865761111090918717409244636800280341500620548128780596912533102939109075917978682491073633094290119378758597238507145426659862035798967690136592535338087022681461473116733843943222491907666508949276704349498350432638758182655935944123407392658705127571633601672701331510780399182207423160025057127232134269504681026136479774871184850551903356047845339759811454314368650650519416467975664788007357937333426848395227507881206730108247536879610925053223875594065371352495091720326211184670939272460021852690962993670633295486852924528029292042608415029604049422571409306479116181532925247461635210268903546873030457267695757202129550070744844108093773732627632922821634968796895060360595556356976270959544185067596484007732547463549428617907258986857132354916455565475408804507396890719776587389093583989651272714708970596675505580599454988156737132017932293336355697763944250505956717951756179077388678082360723819273813757465570202402507941590504080738592797873525260859196717611445551810775726974619665399566129564723804448581113267938854704156957583360696430546079997468384725879730676435872074882375759529577307691094249168105266722057931511967685061304394698328181810642261469850722432823211140481383796361590486483248960883579468358486563350122107480206290591560005418632432495065874482402482031326901897078874427197733055423902808488912371470362042320922400017450689247525759593470307405988314122276516715815168467355529394847499213903462165429232327150576917878554723345143374298506980662501613010501712076424451320327069581313618165077175912465122640094222502427300263743412663500946207214326034579755958876777440132913018408611732232686796156138378837085270094936649429638601846975996608319865611195766631396751707222273330173904531521689571695661755886180502370323528784335834691893881211929910679260755526221398209603425238270823571781118551959250483385432892419908225534519895397166603305252625854777647341863451360143105722231102527255201745791428284847148925783550319035876473921213775976893321428377280908638455523979762081235163889699605000834663687153581966902161103690688318362802225814006440582003163596314702581385957502839883895728063952756566145710089733710163352120056944045765962591568801241969167435684577150258298582136468879017438848764705210017460116963793296841084855784633969897372799355986753651095746881630547101049374993899953299789611075572178583819968044378661219065087526292304241165359203963104649118202368369416686452524617284711639768098919787997053157612053089758559395462881385379750463872442157638287979331206353382000957900275839135320084595185751376475419811945735911344021610779227184392627620504218285683376980083687909002561354744776621825413605109952353867293329574824036235903863352932709917115285204582253499701676241242975476885359566533142202844205022416826502754545557509364103499485019219105254444666797242733567550334661034453302251278121987368660905831501005288198042475563213951448204963379135800281872191982672313593484146636866522117905346846911080591558998099907695677930712075047982217038517673321907552523496621992654764222857292083362629100358520109421810713176564905085144251591826705053275073718453506700499020478559431945607470244055336322034217408297795530055057714779227859547778970830409556309770484442227702215476113907883370205962061276260614787116889761965027276729244060601584500608625597718764437909103887539605919749981719910797029694156329414182047612733728091028015642026659975280062703397503544967566322931526668132738486845297640813632190077743618699698286648070715807138501299563561545228383815219031133320141706556167551951706675485423968606596324236720346328754147315624976016593377417988721265799363952333263950540271374729989747903128406460200962834855390514013949440226916216865879237846916475130422308825610448237799943006207550052668266592006109776968001784697911089285033482353274020670399563021158649137997824502913046655556624932634280059617527808878715588387967692693049594368428970396087104149921164580607913779272757068965865932385350079798354193330862426526756337709769275016152498410815311141766925135516450856838974512346227501445177236029437046237567466107425813630072638230024661868985085958490990782281285073752097502722320076671910385394398103070869843685710303879493625127158015803309103349276989160061403557451362593623649423592565604367339028580566482365608932381200538142185593432023773482248359801865076877719485751422493445796153638858571518914033097454696108569640253610529917430000409882239207521864354765862735210355597726446830845566364813666701174190557337786848969870617849641046717837685685204256949665803430388926424208905847176822289855789977184444539648483832524420945332090510054195093787821253408770793938703299914982526483478562361698106304470040755783563668987124635930499403942028237963641974513642408107209181000288691064870943911445501274665366318710146976187778345524049723360509707479740759215465868519522969258915575106520603661834094274771188485380246946494813132401521357430957977870849596966805742959725838049492799468546087107327894777604569123193107679302781996437455857438929212845438024808737801053637418473660812212719080293614131526842081704121181787646874707071356643610342693665599241727631927618211365163164032730178577661038636800032958764084858018131321718215430715459063373233082621100830208684013822986782360177664434376838143244054374924109784801730489650717091532652118147663359327762274363869960020078277026851756563315839132500214165849994314880409009662637211491968640265668208331354668335538956943532521711703067927616484262077907978401938886805580387262569257919472123817930743220027513038666536965837705786234792546147908125339063453818254546129203415907903960560089827401834665401496347242032094849565434692633847080944639794961278616924969900567666526085387617541940911193171871959116726640192600429042149755552528209059037731193597950631164395004921535389106988614701978159018003000526343397195522166040072482530876875410504690573396023648241628328165149865676101348039483222076755061287300504375749745129712950300767066894969119997523447884355422159912652651902560371137809880948438936499456589162312782952629652135411331535866413002174192964826945129747478085850137752023538087803785413428901745701927507458243256586549802292626507441540545338895986271841025093394353891644279472387045500059106884577795227665579913125749006374953820174939748226974552752745683987864465694449591893702127909407848936175539335559684167486202059610401209962259739817417738874608517056212035118675940210509325108770275923471103972475045668717294415939087131189266764336022513614542943351022103707931233227377050679223144467734088716729957498523272492233372015149437171391665047068475449310565357732183372293650028659873100709720771060010349433746233477663923067160076823812930971754328923142593889370226180189998987631548565442094439628564519209117940047735913617717693897838017687918203288477787366495598882981828242067046721246553208913142011341202414816288981932096165761406758079333545142871274581503429130052460392535956036288462793149439606703812417324959341187103786151351904566595737555589778154196780788429282185339609695882776010982378394446574732225705663078059292511915149703027140330107580471874613821191214233665650612158661620342811109363676464366202751196900330573695345392645402308537383649432183771184344041630591031435766005175253682449689890345208974251994607617770293571419301677781242097090381684343012855248864251690494000844635976210678328006869551207662947721871518287881032785563161569748409374881391255287703687997062463941559071912184601825456427558469865991910983364844749067307642681885126354486367536020099304997897137478265909938930629464546868598701472462392864238376712738433294041950808234290451504714300886575347552873345256122712936004163309915900309330852940100832624645137609662173752536807023511876087339853838857192997129401392147870369381514019998405486405646424427009388589478530968594431576150654438629752718557878362450039199922907472186980839009284421258066387115931158498050367411469320423772206597161778206255290553392412426255821481987835950676586546860285450206445504050938173518741204418614455780700610302635113138154613584234277271868771600911849635193389649429566133635579528272374240139898760087931780297233571416010587414333981671407407111630642721771191918106784264575901048531137430584731453153839597702042551481238763281344751433249041308978907698934634113615561700379180715354009867648649554946820753472271718516470440084977598636603461552366334044040672446290221276005043996965133212582142666370100470453608766636560493637330412130468626786833902143714046766900915040351440748504396900793512672951709558231239648859063326370040645901997209466656611327002808914959261919220035848032399077791921663484183253611444918737345317026382793576145042836059416611954888752909685555050476198895180939937147158508035986245971204718331948033646213298502607707303068585219320073136096575061998171329341914184763549525484968138721310335595973953719674875540160802668726888938203979212618297613593341178184702357484174133636452438398135639277046392909726591934022122365280514144525252482929282196252533125336839814185748807290568239977615471329999230317066101001365039402030437320786173142461051365782560517909751262290868810034311867740902860999955792984478644996503070437688192160721326803888302271256831012793282872727319076310896917733002981645784132142942116831191371868872170876059113474611512782257044815520776097662563729061283293469067160280281689708236259157461490790787735983865508855057446125913977871414048877843599460262870848058147956967843455432492957599746047566739099417013483491535947395176043703927532671251620375139828179781914040697300344497160538270541985375717408289090785181020116317726067035672058631845896006607843677030601602704295602790995299835483743079021107611535579404192128530290754342944639751014831700128607887292603112465461592540598452373370782263439039479510405128137525099647678549027778864935401114068352830590906489371527552676470550698741311488567502235791462452412985469906444707519270027061011497217957460661734949207157578151420636169762912288285355177657782776232913355193673835320010935053370358199765239216930273889465906619299276828055508472795673989927694613610254152466962222989149682855081668425064309039662018773466911901507044601766487353508515760543201212343079434215457232014478492473617929190861833801518259589304840601693694001427258767014382357654129127592897652815087853315627360652255953732542121584719550817212378299193463776931665704456611961164945159720324134538838090213237792135298687911029168168445287838977411774576671540238177452254092027373065699816570591264075556444354293269391290440429070009157794332883339507368274689967679676560027776961141350696865838764830641655645243763846632134778930211380382176546365644733381280512797663746355779551626631893596859056156302413736127411693793343173539276843219565014265843256828903125828531999841228724587149397940032047550227610288485408297052862952560453233473644068554776316961281544139413576543929406835425844120543083430600229305750972212215031480070526785945451015143252818017063478321921469730304698827331281922682126107534843649160443122571680230561613373496668160517246341092559821977201538306270961331966135869716129681122337019605248359029566634465055780178775519776339726761472192547151570751011841527944420343020650377925400554718317622399738991132449803068162463703327843045969271576990500148399824079995467902967127924116442234043302580336769712934018780311816357129569311507152370294473222901894363607294778309191333712665152396694619374940335018018661252835731608487012179767768312900538012943887401276004192718332382509247216573156511958826524201622818446802102380827000145929883100804214699035950169649120502947845443788875380276215253668712363451379986664863912876006660331032605272179929417038562541586201191952098865705566922840570768600006970401148926527818668041206138176059338491395156172491548348462790465921367580915043707807999986877384302342606990933976059545299720959816342061489228109749655203061980824571054540702603131193372489002779347337714155291599568009730420604750375827560423620999406242671190472715230001535643492524191236647645560026118463484297325406622509369882784796225890842653422835261341433145279516912319800776227300452212024878227964808606941488547423043776079595336357798175891625443461386639832649500857248257025473243123962470046134204129449042102588342861804003630517869404308738174199973262973285376054780413550280501262963272408822809459148184071276460014706176854721403918129443087454169908095361143429125746957018764474434280250293216705908271867678359296698954276842878587694378558670954333721859139406400228737183504756911005985896537164090172034048792900843013047631563320547865361954976779488133580489095440884936054244109237074484033753222076801418055468672578821573867104620253479481272254105514414884622518578725930317374649430586472038104166410480081088382873016094876476498997895689038133448497029254342753536805954497202018951405975915553443037786468858622354759595284075104407471351754110781300110567065280866497131527754962950510962998868102046541860116844535217665044237496004281409328906666604587245296451787935296310369447431086802684434271708123481138677647323969973592798687979458573628654059322735952023662101427300283942620953140363648367227433839817604873018280763445206083872900670238861096051634130078209377476176036398219072184099895127590067004029199700830002445607396152351320651807737491971212283738084647060360223939652524261413784795226022109960446990033894554994920348108407700574100508965492340408470909274851700803890528354500038275145187890098634836365308103806043464243862661764767772361932020157531287942705883181952850403612207891493307613377614610955111418649289776676651793995125629122271818443597351392769422455246434796857450646811810769761818878416127449114522335768628059510012044107679343544694143867651310144324419955084697952430400247573145790923298967092146862150560942033671264364694754543799545927520722617331455449068308383547055592589636618152791628768801232334762688674928073155209640241740483286194589664852125595992197959758765573349143286891310580755914022074394352823208248173130574528855723301920579804666009296210024397121720908030894914697107264101575942154282552971816783345285062158520673690754742819828331924400122695699280106462254012292259587349672980411619326719645553701289620965914828920859491592928178964670427702205602121671837996169128896730654931250306639738849580056214915304120188936442670132881569763308645404262647204678300208727177415710443085934700882003644171399459468892722050225348425976898307697819245148433645667972207554467243248749515526913434563486008458051961163911062633410271482662067881550917486331390123357873678182171075528126977769448509019913659392769856608227563481647106881406773589215004875805143962707038069827469197253133765148616264080973494207747551096777256379403297835770629641364407307519965746314113055289415721347010012360225669269420775104001164588584121576081442124695414199943673194030542872667940920127312384309024196363076549160694990236871150147789829438194130660622201282476842726403843977605486449803216646575082009048179058785424031780110343867446977561130581046920406505486502404611065933385064438576564581231228925860182695206760792606642192416676507908490359191496614178660896731672443360246082716515624317812209462171731028748370092479640887057764589340567969920162567489955313679471478870011453065708280439042515063781145148303249189925489467887166871075269159643385781141252812546295135704721339080348074595802759830383871494340675991383696527638070776632730237671169272577674253918907322981756606946427012568144119296372223405403431160042306134287953003023185167118179237510595533484130396534736295930495417830009721676404570965917894142595778036734789810271043078047634884563142314062998037920796246254522704400476865009197753833346777598982560354141988337501637480785069443040457790640724681366755096974409549927358451247767235911300616339546278808701636166984538618514583542436140732223170903626196091164915727499167595429833731291530102294121184963085806134309215091889213032298055573939573815360704409811505096792139665437875332168696387737948897600619121465908917203860962300269564372572034073241830283744490182903197023375215039878674641701518079785020175392639094611429482333886733489960277441459169815521495842487421719813368588873847517277934234677596466008323998242930448267835895165317370692110398036152199594105215692222092755997087745229334618420272115247754143326193918449296764287021454815338969768994643368124796005078138341387142330579984130732849760017986006560553613862730065377059512472342362923700044223548423929082812306127990314413427468525942965987717455883818694539742459679466828553123311293717490157490538464485205075802212627476525855968982490000750329552892507966151802512060381053164591654412740831696064621646010709087349593862038428246037667966930834109004543964381664768423228278960991047028368270775982223052750722562659253627387679162048715859004517801486109801179000872439773198278405302650796760838261470813882034236540853494237438641354508847274499629557218041417320145131882013044742057861609797140594364727198451991367480183293518496151001482831699787306315193279804405819964112918948645854274047140773785950923601792362550713669640846466080023231208355435029767257930561370706390800410521546587670608797126106060246286602942596900170386076138922653211307767952738493806355422862041995006000867019302693773969741459213495466402577361159074087519664932265204998140662644025325446383632146889602739932545412336016105023326382367015041576857536933030823868651402569960502888149106458368787430761295597727223516274171639409120282811053421624165220402912661033934913899817491620795373522408052131449430269198155413755392575910974557022959050931730390844813886333610026204336904300965408687310255497053699059583510025008728119533674026893633639428495241527713330289503683015692145376660143732389549417851290780092097793158170061479320177138671702109757429398231930097015419638401759104551533314048527954076413659017604169794791126645373657856315030075024948638738421364151453459131398464425483834056780273076623687629690633975045321066408670084538622220463180274928969062238341659647015293614626697338860686226925847015318594753338278829181566638700850622967427475796428685750820091316771026259709615383427149143676815958065964804032467388009656079605675211702932613583765617062521825883614286027244509524742594033578842723544358600653004269769840801299227998142472043769372421637117338407803974747171168937538907383357768484936733478749204609683379585238703482139883043481435262820110956908852848052374970006218114668760403134197786289050604236497897916577499527461982897406339523542392437366089099876027255306742307970230329763692492875515724678450885482818683845267668835145784732289409452884441190678090405655660190347066317068477845638188181381259285643826475387557605191123725447973643499093821328681735763317769644290545343413885411069956894615126139373537338310250368330889144168904360968503193816994437232042617631841917388779315384475187791070231445441667503694175867686527579444350606974960944976984825045791385872817699927203363614517190174977596778486455406979340437475485109668633353949863769631301166118053878586816807473546369181620631481491903453453726154440868676334220616873464532343692819494006777841286797849605370179324691715703649479063987339806191355631070563048195787171692451460807739030696139205172947986187940139311461649472598237657480195196030894632432795467323490412629699477733190971835463435961183542863920043418965419205349808234142785446521308788451809668848436457667037315813983401897782184255177700629873413156319580654139177313857939098129341998491136568266082219223003696932596631248576217142211265631945752155585568119562860106639929335897518267355747488290790710340783540069512183889656861584265939472146361460299461165429261621999457974184612060571510369817151483166637595072049793370052356389315296956850081463143451638148732781249576791940869681151645236484325120074417151230245011766794032017374624381407164454136890605312150484741397595737910575854793275174808977706045681853367722222730968876841296786636039185353042716615951521971377760914236918468832727860320931622003212940102869612342187668437458515572064678056626709102827637177524019801160440163054955646691048668056164684018116749419202069771864823698575472044963703816879655760891229839305966319170425879043326618922265562600531110075209707379481686679232124795329040260064147696559806447972608567938666107976278344625166888227162067138082833621800603118432537236445530870325376560231034492551230206838739356044786243564796041658970095074825150989199971259411507568231309586338492647781273119354005693922961633474145097933843792118329274104925414013623967160636745385690676580193815344903098227821666759441863167164331092295341143333752222390231162900897822412104298132433578198388309133747876281715846173786468475580225907179201036186938476922858135270528086303447342948799150380870400157092078407542617558929366626220060216306668820708008710346984621564138827489705896315650387524458177391532192823375919335779246267960824612657851928043441928169417738909342628885504988442765197851058353026767938179765563906218789694881821013887213566593027332323689446845342140913279513498052702466140288556901443041965618364415510159888176404700574333533947263555415840784161834728146395211502919377543855236062198631009043279953180681683554091785121139260625451670806475850814501860896945639140673191112882354188394668614354727680353080006409595721977098574221686556174991826751153391670356455347822445993150139712722379044289462606117129687368507755951544548883042095992507258670487740319054836110983646191454712577882337440632234426945252950364605130772533073550625452305713470755613163994484233854042427896586143700166488040001716508151115990877623742065357163294473423957780895363659500668319716767853620513734453232135502989882505825233362092538582361712281594973647946434285951680973516518025061935548943262988088979113473170981859789074581170635648295867926340392739841754384129505623479326476759599301413687742058675844496511333766920985141090037355383795951654943219119433827642166575234367826216093280888670793129787044052403923521758227861128953900876196732719760102359001525100020757546297967491846796426488627194691208792060745442144891341311725190099977232744913347400471754834503349768078782851625745572471622624089328654953878236510326118839271302933004738289230212569354894302214945835688975123648984319848037337759930540792705174838374704050760325475320839477450009980078096381442297052596081148295596450055372166463215614301482475572662244750193447152257377867443572382284179159406400434125717698101062865133437946338918418472720877918229554235352033254799443277114033512122501434337394209962837594805436896277215093300223660566693954278231181122903246978443679119752199816665909567823263062804452179177373494460418401810867371837561292006706602775327363320152996179323731275181468950455920466768338593297876640995862962657771324601408506723231049513194175942845713043560379621919533151277989795087613294409431260646428537630669604967804684593846594717212657923242358131134902721711589895646941286494557228211316828724216394174467998550189300578754346194939180768028909977385722015350719188617219110285786731865049610041542697843776842183531112981331832397894317993677649707977322496386987420895652330809514265386648456187552572390985956359326089107907384533704262334894550535120473654594422111152038488477999406804901809266478067892287526157629292409941514905883006666720633736175295189156830917049526432967921093470140768305653364293389944545993614918672111048213817763955870769696046039774512997075030300304766411674462834144278939409846040019749018336455248589426836454498601412190921281599465238500212041085795111164157398119342873657246051578636552966072406383864812829200133408037716444719397270572522338932108784736397915198167005048895911911131975739337817344600274567417301782228225978379885763002072570038330421475907584978327917402703792390137172276696383425360417851790497580762107608793077879247622217611369044451691159668761517032353790688152659205835708854185183812229220653364992551226677911837361911357833986112460363618516653107308308231584064345445848568721446654151231610937000894218694348845673947279142117197353281272083393189239592474947866326793157117052004219898134412765650091131152436519880481202909273375742032256498936885881082779050269498850729032565762786578470916225107872896736291921218583301286548076217922939717018156957192956921715935102992363146649362671862295140389267230351263259223409950968657495149370485909355163396949511663001975802336728123620501014691066902149518338541272785028226927017838113274383445401008744007514646324364177347288585451524486436794846276891848229727990728914808274506698970624350617419260221237772326407896009024378492589838944096412443857964933909695480628208053279911921060423271974749672975903302380997193521204522108713420706089411163106522848494775561213264073005257775865384911122875348990074816914674351070129476216308049733315804326360130113260225748174947118371145790522744097995466522803943039233497078465421054099733820217528865019337405479911746422255797825038812217959993638382426088231310147113128773061157348131441089631950689133984274330240585907711346540619965819936369836015300918626860241436193323492764912697932881291207589729493907717479304860028193483180358841233295197049165627286989639763060103949503785669313943553603173530578582447861816655967202068940209047390530694856120603819386613123982671915110092199534357338883868316936400971128026559188452308081187015207646796037192094205339157867424301330699420491643733096125237506731429904031645205281312796673976792149519128806705844551597223116188086886120528320749025843524787694147993973937278734676101427109056989941670726053253245895602135580842220592310752727435201269254423710855870436175106047241644213105783332941666305140441308138153936855688924355811314459093726791468787768182644743605150641309520809844282362264844289417243408301372730498068819084447796140259745358380427465279518443577265125932119812366129842950487695098008122228211493301236688144964712823266959072389415756786701663201342480090674540492666505476238742219933474594810865016014743351258010102151833191711648680258170767646643538211425066149908354035287559180874372943239687314679640692447891872297940627877811514607657202657905349573334534771426219241390830369203152342068713394072709938071585750735230883288583314351181976383488094084343380614932521080950668853072024169928945798511143098385191629991267929308645584923104977282359000103662853614500004468599724506971884147237900667008011676198210078664802642578631861653811650372330006138757975997511365759905224976580304064623460779536787632070595596726823738212469561393154454123532428557417141193389874242010765039646565648454599505881492084246087413074282768242924578500055654067319349135841155602098739548800569327226889015408559479840004319055041758429081352746811215182551696403757422886233129925780360850930419185693935426220213145598524612363028329681097674586591558921969130769951684554337150314695166034780912967349055248889733913605693440431329051032310035835281534740329504975186948757853626053594506349430138951889382812510206902224548589650977575759405952648858160506324457937207043983412307903269612170041057119426601895659160617143370542357160283302548439475701939003613718715474736009390475929197336494903470833676971935724498214760269239482259834897644129432527675885039857467961873157299609300245248451555201345506106930849793223594607074175486328618476320999875677029875481192946858520956526794445335962682497130156106844460567501712518559199161709330885902903169568882672546202314095122815922596397805535473249142458802629172074886240479230352291958800581481548974133819818739405629053442904958829372068697503988252290961406295434990068704532381784923169190378953441047183234753419651020980808574696856852801166551348477242958635809678246858936444747904354139009284712599925617510581019556259853046490612679105480565687665977070777475537067925182253628417707863546831240948568763035981054064321635155742042549446500411992301951806561483197587537891313414854540720566448460689467390065518697256855054346706570716715001795262703259934725711280602264802763766208686507622600631569621624313504791187169109338238082448718528603628177612394890989044644710024334482325652353683838140340815185711435791302167394355500013930322326934515307783583310990567861704321617817354383028372595374567887421694006181541808091901172249109253968201644025144269161502974442816535449124563552960566263228022742568141660971262684620934186819600772538219407605261274339437023440436848906581053797350982812412353392295036014224822040644487563678552851158066851058866238321244113449584838338329341603710822292901933530805085175702464911150397674321903179063547005693820780028816084946223404308877781245230155723071936825087810996483408318854420866206334057366111540498151439187947884137101029870517551400015591529511211590785714322148067511097798066975070381609632926505918672868525212653241891223937747890235245831581960482866303646347785389002377029295197585064585544807144397253839504532097138774684022448416969512871826125573061771373898504157107139195079900908690036785661578681064770250716909056077325448457886838270553233954366425058617539838306011420931796939023698833706145737664947410444489329460408400481974704826061094902084330302467809482623546416354066277287094791955655169086983285778752255580546150359034638021872222251129150024145437662680884546744426273353048804320677892697913392451812764254584162753637105968241875931814917828380991374169928239558683535492419439233984644007541771350693540984752009472606033503700553876645336004845207422060767358544376640070459199339792994136023257980763139358352132379458494908198650524197007303756015797142052969757477809948956299087508920162600492487905515076089129269359304292865282656865500142149410713966171794676536012173920273916503243315260721372727694871507750261426030065424163660671036705543381188362213968419341324925501639011122769180530614376674395634556938413640383252332047826533207363371508256834447761358190983333645337116824419037006243126422808072269881755551128719276549217169188213096207290174245669426817463854127450371647740186560289404634081253451838586390004703111372105935809996891574931505254201177640654152248721521600300160275190156252564625386339155578011704196113085760612492157263213129963014346162036702725475253887454583629670041554867070663655038241044171488042219678845384667592789515938208406365535859586534406506859627601094645667619451043225764589367881546194876750870522202529007085887352024048261697129524661105536105169488832952108481081123261417707177997174453902619608636185083113586177537790906293085653263848507104778812177968571732629142621797741304241136020037217361940409847049378520558702484870892086010978543848348806550479960786811071400812599788957952301377286134379268486808115589013540985164757199785878993606959033832396845497139720548728796378765136260666207918837909391303929408381855624581490782684541447976968457658075272147422303171149437311872396322138602382472868947872956297160032007443540562606443310015193989936614081868207216779133503698118886995242649691687132125877971328722085270766443467088275502160902205353977731862608761929610102289117165778064463138267320777898770033208907059312474323696044879432861257534774902486903480955051397946626358206143955290364524074567383697840555857008615660172226853427257699439473661437735465824247016853928580560178633450897274702691555142340619929219570948946742161754362189303199008086199117905778730515913295427203310100012383079623123339710641160315768577614400005914362073107548304518653595756569258350544638245792376915410089673449744581144029070240221017162036005778349217118588982394606134073908734194529849611569060541923445235735518569758041391216831453382550882030845668679439511975052537920877573954221594263445560078407410504464598700923437511843633900691477009924577206884084301682719114841626276299541353319765130537240341334194491195746323535178167547179858500068986911877808239792981243037360413354280290731262070058621567155374305026302949115891826049885865139309046948433223654643410447731596142376093697591903787574228907616852951478057529041675870973728053807733546462130565248942515465548626733854186885980705518623501928643919940945816046927919543145492988915151873927831489359417895030281218158700966924832368274555351541610391730039198878820325465912622572293845673875704968460631424180993907612678260669448606402304628375933223365446680576261636599821923688989431871390593348994742043874382204597033440624509438063467030249319136473737211563272375839860782799541902164997061862343592692189721321045094317130671897898455513984291155371702900646050574175566429887755841988293819147566227743911080996116169839101146928008946036876497730753064092553389485126577650439309743887983055587570348194597311646357650103320903133363483639110123643400330243969689278365396329094063603655322454314327529349927035416791421602960809845867444721259011175387136718847051789143731195344595244301063174689537021334525161851938522214655964614516535975855870262042539880137242412091334973955079669007455647035968771820078292563272994179489100309184539214952083105979835904167659299951862968282092985724018362528248496425636373997311126250943596299338614378140230547593534054650758519077658379990804874370947982183766961464289000423899146985620638758270085007178036116483294340897441432284221141997603195675749217490869144884419544046535301671971338315110592607815474670804629028528086475077125470444498471483666095479979461083330176662422639548172787461970780372618579528834329955121832702206908363442996443183712322722977681627468508919063606864866399614961875365783574417477462929606075645927649827662888536310019691082044724437221959875824674000271559531677117069442860000022528240332193551153007420127416137670601195171291497096196045841018177039171515344290568157740583943527947266307626393560329386847480398933830415869263469826734102547865985610109589935264737602204537669088726318509836856176346036069677271659415799815853201421650200509478671295781679220882253103804929164640092225574262290167635376825868538339598929355371776228964210229277840653383641937530032518654716438723261696142178273200313841013118966997276926882672950954933021589908383069624654026741123219932050474826482453318040626671538249214275141645491309004403049865008117625466133218295903034040287518967582051258045799776666118996931993905619229386201002405888518031288174156799251575188356828648427764774998875100651706773250168556196305271400846941127935985274230424372832044500211070877307117758880664613197994973518470701409370252948974419528321044403184828197683679802913651804127361233549194610057605932877397305511460124381888586440557908014615220126422897722407367110132193653475009800550713354430086791325103801400935852307526296447435961357845303097114555536154485680816357661506963105929865671928410971022980994278374527092009183074541219869412721205934720726051010586290162280914262926402541725126211801109407033588047188762806064959120200609693587298366240989935950340707634275798776320026246437664127974279032712892085549231517139998491718679989572476878431424193532223395934519603741787866030701375937469242062044444523884589061572551948544523121526594563350154150353094466301633020824450711844367606398541926778560237329984174046837692382108523025686890498272078382415095464167520931898158292915318521068217232273089882786043342946179577466595820994927748635182710509164419260970421331840631121218223653500504886140886784746364186716023265527027882509654708058535473558429597214628460807305869207436596192704289568793273858228789167221321209749609480743236673608048996241317483893934712714242843907340176901280168963724520859277343748454024902763485253416448576791285225079868779759093403119763073294946456880411310032998729379372152830855643584281354500239750797847560224863775958848317126820804529960322696034910190522403278582366945662277874226261832508850295546900559016442022252684499038029801125867136262789187384309720499294633343943199271445387225133214330719089901870633866384899843192823314796399101031079903322483029613259878338252898196233529920422782469822470429495286499184941801240566140452812467997296372867650834414954259031600843663497102052419978332797143587636635894318370696823890437059500395152887044234748160809221068742591495875245627731071499854611028531020630296526223257884194808702597889026998886868336989687320339579688543687475742735112506716540416656769404498782748212931468546698243514365003044530924287690226353512345799900551333469840432756647820646276756188266550292744867756396872260327751136389756279750486758142194090585761521763614896615773930578191610043181552503025890270453034400420941414387327954761034034708244588501933350559554479490834942540295660614857360785873405047255651513607875194256236782539230876952788108377622358159800423350773778796742498069423539883567440327282749460295129553989810267940374087537045271387340025379312678042708901505144328104769601795024169540968851859944429263792619040587421113012738473733280420819417093710813733219823876398327379617314158555251675111264420441588283320897621827161477337834707145644840390648758442227382658666249040061693051971255947006084496408454473329720619841590449165711597503368467449232043962151774767303191378212886019686369679502266142089702834433556708047129072100373776967251868089106818363680416419035296024625916522772825390651238955620247918871750664228327475224545886928954311188096107408626509389398047750209803815018581306709934500709474106946398622431388695418687655672430603578835218914053649197591034518793523717831482227940261152685062661483392358821991591253166605468382578121669680038492104282892034622361584258962604853821906370860909236035238611671546117711494368958938257206111229492704181775604199290511348196082822164775097728111823151823839982749847835178010755676771170487003927182160861823008635192305429307959289285101524249440529650899321852470188750387259831306120532240728768032240693389048670919674193473607584578072924822171326496262786582602889169420928447263672895534455990599495062494189879723730554243974140908335499460520728542668093476315216759088643584649949748460705955718039125714170767131341221055879459322306364580196577180923497112082003825141975360049880407407580355225619485747204423828402076799496733845758759365526105092587479830363471636823967907990007783848783431354236022259768483032506050604839453366370451146080141983977581177422063334728122433479606316769320649516888023939901594586527176816811628804110257879423883254900638606181434017337149974501781331116041149878495614897216901252660515501997994731833971027596199202621404233690541681295865514528834497217323915500703525676193390027757527381116193034209431222445543400731762545280883538137554861954208454240358997147022057460989095495150725948678760111367320037624900283952318915752928626452702767511274739975763544349056604424070730752405782797285307808390243393372019724330000003896358543040763303450729067681759681299199593758412221317070105573740828327862483256059079920109447036982588957943578550844015647717656164696192988279432579502536483269608796045055320784423893147478381552777204549992068845583642853849796282027752408578951854922973410625686949769914740393488484596265373380581696754732987575712970387812741131551968584039055697320927290542267108034013080703291665842251684689924687739141215565497646085693160950131471283431339459879773610090620398486511941066475159363807501020363486840921660376336005288207779381374723817674034939112301858633054130001011237834160763700320078298276980619730388602519869377856482823199899292049043049451004335009886770698733230085960139571942848552126638498508823214580244219726699359514658976257926816812302028389620534846542031188383421547351134353376617591090495070793682579423702876711240617785637118472601064166755307700772928477247036422692958073777055477645731255789487929030671595443238840851578644250292765431603924540634868899292565242017197282229139235083302806889021772481241516469083086673267705638752127411757017854727871474917094298718588044135824608921770041732406614185028756148506723947282381953086583711386443497880926874962252078196069105886561943673127727523222300013787697512105143960556140464871335997593116083016664893387136412428999006574585104084249102830888115575855129378168505846179281133521887442502956583710043759608802304684619103274965384506429755128522286986357619544742516204293789209927663939702846532953975193170350899015043992833245388442604639263746233614855281336383623025142808242683629064528422027180568555411136309698202337104689271881525468735766170960962433090209341035877512364340623334304999227423764882438936790575993614941399886199382020110383387143080103979887959348405833394317220505334124185121844860571851665850928211556385367998454927197965088379702760653224745777314978593687487442236184788170000278809428437314677598074994972556028174959240627135606222743335018245696831244987004997843309647179800834817826607320936486020165145906391067116235328357189269123325377566907554052351695242373342186111997351373414355302185480494543276299699512860014614307460247576400759144687567842757282632098393835752693651052285575056549145938883475696360303421994542983910587773449785903755716893624168129609541182837203973005621495900705526934635524766659424458064261126708644031476151300026373282877131794023696391403725084125397877757924515363253547394982104806203778873639409075179242680683308509787003088856532497105270076509110611717754899982313200222714903895741370957424505189878607253353429685407237819204318736312775674286171426234714530887391145969063137892226430420354061851343960115974430306777039527725364946412148774882542978503036666087318882670035681696938961649837752519062485515593832751747213431129703429397172003439100666436297466456909252692954603965387046940033482593007560700327240638761293408685441980390245880056415339644083950347462887958758400133928727036778448518961831637354340983035965244836884174607342815720380465501398645806218789752967346456110062339627696335972161214922945490436350075514368148659786722844405759509063044584423862399867076243957536056448532737729724232021420578118651589515820156247691685879548885301954772404570081081594359425474546765154210525475225487469870466791770136114866148612822574029627883263788946771792886526754666182012565647491557065242781351630464201505441781637557820096502095951362811694741263399504552165163147709286138471608414490398617500325535682114672473554478821451988529956456234954823792702838245922939747901009834085605348532253525759350405944183735238604886915547169004615890087826477169605696952288864395996242493280101123550125622891436313397061539581142678630123146045664773598614689325149464596365689950725466136265129925379024746865907399876163250418853831220402028870665257751114909176302107883425514517270947339908370711336456467852255038965990528245581695166161056775947072951444447132693555969253836768556057748534181472662819873939911959296011448699857060148855293559973211958166379978349313437403105723797111397653373471460412255165623424257854528555633576915232369043540578834220851597261440196932025516439505487465756927144531998692923878493081169051946302478530180533505344885009828661088680101358992612782564839318132559349157050808054998967003615353487066236333782937086598512262584801015234063910279596455443713159545114020017747890462097329454091854949957846987346815795499043685089009929883822824491207968518706997838310094161186856437553528771938168664346427107141736844059877717096274299558670263255465810442818513417614188161666743951210425127603012825920263006774406356407395715668036406826314045648720091840794573614837669186890951802154956584992137438227727055297869911518151527587077159995151984832520811180668579443252835949167951230819196816945897407408888206007850823844570946303170227895398208789959399200946569841808824532603218281755263603071208398353430294158964794786159082542911809360746160748469199803558268505249055768822029052199524476409523861212260184893728540555930934255389007335747371734044979038915570362836308531027909530001783405107657127814665835851841824305052315041009350947059130347381914940511681378013081956109363344741553300510811339198191297249793561132999663290879976374003876500159286673208877503247783405928015033145914009227074779573874544393511344685827240598940065142720987609768680824556638906767183466610782220537062945511848487831072667038397418944565298415050556440906745567610535283079842181935930411014567346102796783793323407488733569595360219302342796560851195571308531808303464145950704445703547089539757481855182884422265035577583025324746741015237753046245030257289733382510687140665446454841412047054716822804779027009139090134435103643588610867380796095950939791069130252067702117272931833693834239010098000757927608156908641439417601068782703193504371627136606740364973012877618204445384335698693706007620085240841752435552988368209863982325531518745811900349025321315541237282928511272444925825879781044772730329702964381374883418910144440140954503089042436096295394626460365341118020955710958949872598839495528652884748575096661476107148721354904955260632157910923932350397367896317272524417201761584467210042223924861913386145062228877972730729796800256177520089538912288169017868347477154763079284939481633749521224621076492598011093030857440625033561957944512331267434187502322200856547522749081742230911409526475836143178761120826282337402199496977267277775036285235810642358928547400858243107840170263970920161822969552590679998425532637205771844702859762793356373475313375001155614933442230460986736769333503169654266259233497717792555781691572371044904028037691836686104570058338731064670565622850218478787999786853502296779813857841697719147096929739078864713852616683853609848088526882324279925387173493554628847764962701758695483357188645525750599730731679999736363323387873310891032547606493040770987962116837750426085061032570171377600768189042983671630270686662013570910905124843116441522746213635925839320400652907950200214812022704465571929152067986562018247383669587631120256656223442338022819916111325523101490669666188978422664316970786507432185576675932598013519683337170388531033829363305086543390899871783256323534148949716219132999218924880913345533209729324326255040816534475196331946984710359013665383269960749490386502900550016165820780999803041645661209580896243611408227722720398231286922906367284847064884083419754076245106178828118668781124465427328439981896257727425696671382928025135299596194235154075914981827949878186741644374304649562376850803678077160510597445917230405588549758471630900639583697519416964140992739604477586351549915854052201616947415638162627483902644338802916630677895974952757631390512737968667455473034032701375308725025222540016240628923960176471961380392876661877978449822836059147548063521219740397168635252576232246836998665640362158282554508734660288270991864959506268083067593787465647079233179415607324356660869433520996254047973640906247101876192175627657211756375775220844690957664350541792341726562957407752561321980487063930389521699962152238910670860719706862382178807023532517872106655727975547144751857966275700957967986403738536506565742788319247118673481018467690943644729918811561831306099718161870671788084286160885760853524438357245991767505148511049509201609350042687877044353779275998320910419386112375550755099127193094265395562869797298190709155515522150519300046997237048420605926140933032362769254753301702687423330976187938828122266238832575770999959597409572053700101894005559773871137086885104154338996768283665044568313947545763113011071301581135594254595242510806011590767228802153687017161910222929983212897218801465669333062766645298238432564953066253754598272773797500088990080775799200518648474118538203193452430976237346455341239126639427053295700680768263396561951481976944388240942526569878379290772300513947997202921333269463787483565450338613747531969993624267512093292855324037611642017757855372279264679311517134181557054402765765937554656117686539914545460201757224490290190831097501410816542977826244746308446925832373475299897049664095148918637235016690391966018863639354615617622003802924610517664812685489710231293844231932414346208545914539999061198804974700967152325098686707700179348638546709791037145723467450091276965333903616065235036208460728794613100407586066008704700204349736057855515667210779021591613675778570294617288223784190172534617153994708064513544464765405226054309234334699951365964596782655239391662153988318697073006061761201724127976785535602859650368271990639923944820010615532418756105275431386482392754784491034731160939854087905948127922946282932224010948947022046067990588627855123083630321668411957277711268579076279200479428637742483397451179165784839318813951284229681113336965028448573725582949603054270467234709067718356296355890442308439396407552095706178085412170175536066053651373070701282051262846126711494892031148895522736548377860809210407271893539943639362004763944400182049997477088689783302442506063749402980357438832787986836225615153010223222405161842252018779908668819581579923904815793025977718906392467059173779867992849372649625898960232136266972241809881333618823484458302859045512592591205359640195489491908479309991584840081285797312528103174330103496496149348126955679754364168997624748409005977956858748254654984748573523664963662283385940982853797690641384067681857072856132122358759553799308292132300475346331140594141509186307038585385220071439891643472599429699269993947761720608487428763505417256765790337452926001482645301922665413691634082467834064089804352118476741311582251340165245739560778376885002984599550704264021053820849729702524555668746257351402278766522654686867289089929320458653934568211251732300222707590168425330169247641157382251793244648685584981246495586420245208420895187579606817973768255860699155924475714658315680939966690212847327429171634503314941950492517404423740901789041689382869863208352205021883531635337839916971011793002542441477255116883804627578414731259098002045428394955379948656195865663236613773918124549725522155374752728133765289099190466056921505886928779459557719911757940702467699818727815468761783476690223135676256152512979238179324224822387182422085112337591596225374660428530963119536244681728156961430012857709501617642773065793728510397154171554904287820555875779685297672462598229632735031012446707414412453242204956517839237696080688457137271322521922290463941593606870249365035518882624319668756731830231138726553712932095854904551133275498712796378952617996652279235086636082867703419710704606371020276112329279680239283611524372021832587344905079865471634634958609663080960329606230602386416448894217078267704981502110062285910830018135064006874772185980200903507957471701905551315595558463321699193771395758430834167139979220789186379630383174247745727730260001828378427077343465497169279150714305368644357273265595376783311400092565819493256426481620452439115989685910107281543448767455424994912500417655252468208486431771661599771611807827397430838216415461854330233171745957752043012891913991836008077792302177088775212242182798990538106699276333062499359350793462124349783355306400291982872181731512369800136255027996504536454313111672924290687403845066829707822731283674691578848971034479380463906030075743226007878685570915196933051416601223055983351410472022957645936796460101258066105420626150693577666111305012098809211660459038329846418756848000577899817424107087346893126039919818229454467990352530183198904863061338735227321174695290536574563889026970810922942922973386664930505689983600437608133406834144027805223064021522419037865838008678932737919966871720425929369610839911946803911904922041406400999891545905270688614327398802471887062394714348651286526914105270825853723471325336775944493972757685315147924697518246034199383262873932028137829830553396315235411640551503265558023940707500329110122500964297854630184771554251374323188835565841415180091271448810850780136742779488512135912422008817140289084736320711963019185654886501958479788187604758108540215954880853694973110366084556943413249583111269374762237352545475475515767033508866188490916874783668882317298849078743325321711921790168662060862651708418788469694435731186930489547242460111548311294132429543159867981953272954940395137510162455136466432013324339864085465055138377553911797594526557517763284101557544439201812429781803518043388867561642063258188627352849311019865346298285414455073468086309199476705805781945009773985037114900540882578870208194680605920950414927085765647927645000404272421089817553029041256774489916653900606795384066556482383774287801887213387032682522736267398024254269295237500483869636520402901664513879934414680883442022499277911654069047723414110784153111527007151472615088145156850749857924125923083161686868057460593411212460617638079777762830898942302223868524538652328513432335172301298137549427457402039528206729125268872597439910816940789731712429587387505001410504008706892775091039841147869610403167295668432644794626212665781223402820618103300535281853462961513152369377945720922392354475096632932206908688194501432615757208284123619927284343564269549282860416707170118395615542223265156897667256398349061152075517259368121041045764224484347201339018718433450424686380892495080497456434153803067799408387546501783156901781917919000144360644334746052925876598135038529148614328535109042406438428069624392240081201506874256526071531319714416028548537771420156627832318792985477589257951366399184393966013468685347422252316707598167282069971096039461688542569240986185605621257084623078614615217909037103676107811785287109559705715603245955433971301306090254171796335299975902372510836828771919055327047638373378962211555677047593336388027978072079349498488834153294774263007797594398555063007512302011159749808356820438574625870872995363207721185641143961660025160818232337608643285711720902034659050289728564173042160095717181596364674932215194581045590449587688099278097333895708699906658820620964809065486559426756953448069329120166862198708237442722787846778123497164160224845731200095191987664191026218537305695674053127920291249354021497967873742572791839152712957071391422640267627392163785893821498803281187136800128457942339185291078692029487468495591642453217986012727959156049005862114286624035826057245705678444404186183919051817713056029527432161302605295766228489271240737463223091415850064174827417748698825036122582980052317876811506876995523340927169120030604272056365705503758326427563150712609073249866987816833638054394313684140193463478637820245065620296198810694510940531053359390875601556732351561946717802130564074909560528413260543994068318766404181007442601851267878911152775406357734524166263078281569609161134615988000698868368282031162619897631275691650867397768990630584866069765463611730874457528173009766508921803738588333040310800051205290397851541180078775408362047505288489127465914714184586228534037445632678684463055689990108954907024807273562287325398832794360128847542470097396733632334912919365723595031376242740001550688984099718566160412878937387318037508424444570377169129156846355350069634268079112921281414429595177848373516005295030671560837760627204815913709325303721150385667238039286757775038919992098982867406980715818930267372093872040907386997154997864240508708720233852161563384533193529007337810092331425319411785577094060699883433192336216634718979135116606151117758714582909261068787643927836404161577638640144108013848044076685865203052521494670670288070926830064412141990427760801208117890554155971497901744224880326231471172998863405095903346871197259466202624749077779349956589902242984682567339923417064750794968454144295694862016351639918990609450278365202763385747001192318694375489854981679743706857371778782217363081229707904574333642149686842029144031932208852484229557489949154411361360125355840779107335304560947249336934665112865062146204871026992552590688162947687163582581500681060044671230163706599314901484837396942179104131754554047633364219571056862366060022681793776154515319212919886581333971384340046468641907094593598179493453377343899955846931132277971976692991017188927582717421161901571039902021044196772067657911292016579736444167282092296166072302000980160881271182181465232093094819012190718310520664338081086418631195682445774837066599223701808038309575454624393442269748753002954454923125025441065535498309563422278420437318435038392830715975935528769689549601140465654427536064984129610535279589724536632955848921474647216393321444427356391822678872181371776039877954606670231717306501683673377699257004002024389905902898152677136095818827829862654607681419776219208584627021710541632587855841077692631343045234563210919003104130087182550621001097754511250328257280340302082698347011019965061045538478725861593644438729236235556219847057925686496992710793936877662253084071517193983683896743132122303133842572379045039309510048022120452857269585520689637552001518631462425326382857683931887267981131134397043328324906887732774936385301701032146316859064884222256210498827048874744143225723508522463958217655387707878918891660256059999206783531055953930888558378244497989630955142959258315767299051330459988103298371177374803234001925470798654058895267519479553272947051460650655296569346329666631456914566747516219019691942086151800251781609523774934325583935069231496332862939343527154410586517472104038908167072990526536942045485327583126036150298335827804021373327441156469816404228404698547004144432077169837483623758119876070402275682055799651810355706532999613042899495101640928197860488352878337521703704528701882344085122026005538273198980760727265649894807743573677771871296980649075872027809659375796255284823872472497183974803357022067568717044302225114878171329157045345697698091285403283904396532676182067513332670418541713167625953690718888837305495701447592224076034190977658587568603448597704961133050752488357164911721238873564191969099113460885355694567124138210148790129302204896204962936902319314012652267214661876403753430604624125080836166250763913531337434356282700773972999431510302400964355004490469980797635640233517449423216910487025899640868163955443971993053864177947347440827157772630654988916919901295651834267821104138302410413244918525011714984152793957858348507171523268333989598230436478821924767495985280732742367563990343100677176296406521891071564338822692727730853234415589527946333096126474134873092678410585963696408510082204163507595034326566211923022976517288733585052314563218573262166038845726004641227245004887879187208890247140957624303990581005304443406855168675582005050349189866154640249127747018025860928989414947143024772917938023207583588529842401194433830879598214965987577178808458093764350738054713006888301728293202297727447510914342755107110944647276796646900414373483563707473072332148322168206300553843028492934717436747334956273779173717250896555126062178368960750533902608878636512768170691966890147786664544015731614556902441858674214147904880838100107639329863074942463646046951379216285848656043341770168214149916054785904913932871728410913770684542641730939547069278995631296425024362694773784276786844558892484716482510375528746728975286019066276991281117584357698928435425336675257257475309934090972344390443445868492489404646285995211306603895623027267301820124398892265900734142419669879023264511189430226746299252815320587621541511681767309365119528094004488000005493671837166179256046147208489778966910507540246906684744039108340690433935690231774533034480360950465456203963777177954765955846838907311969923168387056850751868575691981360246014199408487112463180937915647995456610079784375102222582091956767016906454085612286039967542346921631831816989221897413457288255572060577150043990086940072466056272830277431386270971125018346963328074691750130818581688658783606444099535969141350529758980070352370140505991183745273801317173837495621017820422270040425749293775609946822759500837626293805310401168640115385046470109653971321807526322446186792490588035309941663733239110729345655165396657683898931919821933712170664362014682913683875305330574124792569893708611430367603676222736407911775922082631222257905443298885777564192328064230376117998300765504558188259225587498397054455959764241758009100629840498271780079688285057790571456744338896703192861950550039142629285321913085520235046456760205079186465782145909429528144547945960922857459481783509402362484919760009110261881587657237303641737426262142463374038753042080318738069638809790573426554916207686599504783856327113406758534945706180129746838857860672646368367616535537653912134856658211566042888802506212287846789181865634595883469538435868115304793976311663009585405092864640204600520714902115312704278302487227888264295117933271618680715724440128276505692642075237074134112219195057170925590881043537983786659501252687947457164004104559356485487601627421190577972751848845528195673432743397585262410699128569867837881446843555722585752944128810563602984212103829348764007048900828632340602336092230503923400148856111301543806107313505975794244982790073745966597345629048441706078561842560456699778869458162583159765947424603338676234792083935003369281416495389410929616851869313636972454736136642702249868358157437247388794696233364728005495270560678826484217817567232818142940513038899659137377383493697656924881098881886063431459049784423430706125348227646142974807509598891872154139182083472244207977653008073558201239220473945930844279736241240419790262833493943558575109772543166723001946484003819047106465318002063805197548610876906629427566830213473913695598283981853106080722910800681582917190919745424511310424561377936738881583421805204764136023503618197812500908476709359817644253957484920925644428480346352838561788222888660047537730407854783565932183998011047323076506860394647568433093232816479780486732022179753696408554189418152413111851158450504309694146102030334352846377784719727113599982457665817836500760993756034568464050559132270102009488255523667929008490302778217540833090869082727817529079581889710698620186043186506110316430633268365128379908382060800585119313480507688847860451394051241264100825153842284951018491848562795718549146036732692831563459720197115555816534269565388306424091800302760207063660238378135214898244472296601177563623356795866896713692223145010718244104580599075881447154121144238385796240654127599387580580908088839325311997164484778071096634264757799298903941581538611539381467671550188863643368969797536823317510394079107520950773594999524959418512978018490733153619562345417143547291636288078100509233857614954843265011130072428294354045007875834102920201668252065596817524657909313922254063955801792788857052065413541380847523379134671889458408461758444731546564601530283190716159634767123323652146117951054432180502293406384610770778231941913484533624867018699656591959383368542353489857663520860022039753528828787190778675635195452007976664150015635876087222100646700583955277036367186505079872979303099175611203588640425369520694346171800165139404696412923554435642562586382445290374708390402076504571626426609699703129815080044639754949485057078510242686454910453810226257320576342994955144322662726242085247796002752929901033377983592753922391461607016150770441324560334393205266428448734299012279754305385118242625477594683308986957839997835613234544472470181645631268462743745178289105366760471091602239612260138707855721431182047159135973973494304959393703497196765583142087280346633730471216550194307324989691957537944785385733866755732014366089650212654977762330027413685852551173769085047556743604435888971636867053002614758407681816829135542837088498379898345782074733829025843054933653671742290188559035699978833719612619110722374491669790373636018333230956843218353082299874968019825485914231616497364789326886609428702800995931580309447416414543160263845444512052557006456949849199466500282756834058389621578333889457043818198130959549610964895739828892441615777198129901035970634735941136724259126327261367380178436818061118240174610133500882292028664964229669614159805359426528397031900009066007391291695209571596881346793145223167380210242557616155708834620559293681780846270423395623285658075442486193616532366749636773539845743447684325111532677425378140040660501721155806591727206092622998570667801412592100341648744811048094103682629245569388564128930150836669828382640744319990096194216267325887844315426352931516674225262918291365400320420989438280643272591316148542206846654182962877538251268511875545559880766070610263133901739013811098616151798724884265752629017045358245971395321944737471050406318763980363029185817541714724475147352212354614417387616329205301256309609126467034633922284308593947773962585427849573616395358020602406797914565411883299282497660192431075516286539461485412225990414275018890241394876004552457589705121192479224674379964519278556087903514308427393133779829248380414935909182010293520354384956181707317558620172317780889985455537927410657808876081813971352230709157331692419709430145107776788254452112485438832872120028515581718936759024351299193532942085052168901486753873598775281663341431217164288829516095978831314315603864740557442616865995355430829735216167273380724675433010894362518078754727980942752147263340389134876142368904724994760725945304774198854130680803127760735821717169564575301929733932546454321501713134347922117630897752679897199256342488614822335904652994571168475669794234030649087668752980080439443327469276773127831284713982911953819331062268836925450705160312858501905492664005235935079276841958005753046106426897066673622317797068805044707304941661769313491135580753631017308814880966832745724359271870946457240354645789546025798691744321594262599389163128035218099264604042348269161020819742235857931211942212440865041225998819723139085815975505475830176882258935566965576084825263114466918792769585000313879165432522112246000540117483990170441187780141587952818734761732004184608719686351940865355743930907699242762862784522031001473168092324596890467109627351093086629725788943355286636177580061932024284081494757495516989634786472558692027774541676782124131266011893282434262093128553604064506240884030808607303424606061639185146493409437943209983555853013535514751464734928967440073517885405387781692685194282627165747819948584539994109126805007983373344890857034903224203151821609012263674418133339767292619267592136137088786228800991975825480820860385779179877121983107014828467318512586091248589162081766391974212408065264812300056663500120848800846829237079292149841752334672475201151924117099274276088618634514883196207685375520410552462805479657775493366319648056200338038494648692365762895585781683163416447254115949926880666309349647996604700659212022290636282599465468340375113417912646138960221269072075505930465281963479191714631077207777140714348871976384757700191342281746359287586049307541570722829958726168711340562902974186451851334066970697174196532964783383537506372889818482334326047792778068376113693558918586928595165540381456529078885732015790468164949803971818769556294380051990567369048184807563933167781391031173697661189266804022397175378032329002691912858096652907810961330122997399537881517095445227009471489534546349514533989345770388928699370157977781281449062728125864778244558246474668809947350879441049932286999540545264145732915366013185679263147516025800095046059788633521700675205599874929240512797839149007253922241410355432218130991095141140630087028970289402144315757884599878009994468968860707126071056184989807976427053372365424932897350864903694104312713658297954523616163267620638122684978164472067705131780600183284928608558993433680291309294640860345506323935980728377567458547492895698463397693269280714470131932209501909851281524829348907870451063743583038306652665387449056588275038693509113656636413643053139903043805772365950517187167660072038892546338256206258201531725464964179344308704519621409727298959669240057526891727123871371661203507800312413051146474363604257352873187213101805660527730274555506895033622406256276578616484256725245433070528334728160335125709759158294547866125983527940247831377977817251443135962432945124985961697690239153149312938327514913198052226377264520402369843795809184483920252408945432108451029612569055892610255262990555495558053278204575659636255552914745684842103694418616428548697253434626348620157982571259216231588482898350408286350136838689288548428000482734330904872027923890425272986046497342101020770693522288132045454399039964814897281463530093302271487632393442593373176487909021141102407869693290885746066879650919746308059212306701232020123063049512891532114214457723092518689778635106926422715958947641327694585830681213622008007552214964536239291936063828869968090268410722170496969587732166438296024677878318852880790854453417556234494566010435180462418514470308758165491915736299710257108720309422679978136513469165224834348574184322449098843190334556921475190668158959350591787962182025634814614503916737766172743521279719903735230917293386415018160715310191280991152389741804412269622376959300767586695901307669912587713580314407179968705183428819967346089298498238568811828704669679823706748108966984777286635848308356557484999773824039233872855275598757304182771862745104083229152345087267280350489326274126520637008602218158858718881299041944069504962494658515547966113116817603907047252204411979966098168334351103448521950381617243434256550756679594231135609436060281493410800544471253868073886516974375745234960188120025149850367721870767800326674257261754207191993932227149833931860603901411235298959146775615927948827533069874441665322012818627626301767477149091482591073953876327807775773686557739909723332730951630192027682525711607570640181310516532684894381803738985493324655973160492637682195288712282936851662210482694219235161925004754211849480171819982596158487492375759686774314429935374169901822692132281188379372533548946006403273123849012678020166637546445686637494317452764738554165780124077483413659703484710897530962319091470258870764183135464493050650543456763398131344859282137281990415009090132607168656306816069227879544435211923575000815725469791804073036502819283674167003705117053380389795602688024541788225863548881322567313450310954799803444979921879856055857986917786632083544586097189712677381268202610601037587967754832123697646842877469584933505542383350887028227978207854070926020851640879177177801785320393021687824411404612593376824682789295313507311453794898496831546054247721182974673859485811281224048317851045089329444390275787745700498306601132018619020477561321757750633418782019422631178572278910888289015597746848000464761411021114624917205249738302351990392648173132223151073069922154576808693283118348181441429030249185159930857627545126962375910406953865723167737966423233846330660713039798004009995917413799904616548721548384957818206301850754349821491187427014768899383381285772966875157575458417218038429684943630995069312968923522379539258233504143592509529802154496354183447778786060496141587470778465531271000274115092475161810722676766646069879664564625826857267291087515367329598342004537071295398626515347472496902260426626297939199206586593496654043046648606406768237312705746019101988643308651284476490492630585323510871102324445165420643729841812663709092013260963255375317140483481347693183475600291031071065216353868600316233122582956128647219789348600599893039690484743733601958782314814607368873061594274561943534013225376179844221577953248535556704381564599557164482504610146086180988174095629779051281072542751243224068016904833746444139406767828029892205487232298609986828444360791174461403515712663477735922127364268346320326821795285243727858458231685792647039275114055087555231779163003469625629459963939344359091261241298851801599182093029941574641446016392317748577593072135418912324669146397664039189995252449947986603036652399011438426028424475114823399811318008902877594739683433852807191436854491587412164556717684657591685502010993942701708442461246279558435789133320216514677592444736251664647750638694380679578600305993959129029902454154890547549249401709421022840003118622405976958687598286078353049843862637524399156234422034163641523316861042444797099064652968353973284879007240455515568279323681806071858988283041034372232243968686814829506791247487233821384605128330888502946826980281030272231887736229253009348392540125740688365461716332253554759542599161353706965447751507020450694305234428114882016951618853906840412884419862064112655141350543741763755439633584873128032322852240706145137359109279115480400301286248343367336638943183217124805004582630202977490598214981722540626296148333642300086020985238179819023325626140004220426679492037000822320563764100257199851752367895842429757835842601965643355529416461291211366560976927569897425273303051422474406571160930648551728894606476573924950136131157603859526375818143576429435298809099318992251910444542640272182147171383348980319228674379787658201325662159058116510523091613872391552739706604944807204745102897572698914765313538389439905559302603232999263705179699326848267383358679024819045692293322090879150895403307522391906473373814778486467242656668715729872286181882588773616975754837499155415003509186718473531643752073408384400846487158014122975216534183347219493570612077371676337466855792708623729611267048021193158294945377594880752196229053017387918691573669570049106369026604997586073609378742715238724130668745637788882324249423324180070023591126804092145012483023373458890287574693959644490170921925823207860442168802129204871541446933342656742052665875745775564627948907072310438085995286693021395674779270031673629781347910272506134583931762164115681960036848916210597660994876994477502727233570648898945134028460548476973313267473717131046105409140370648983502478298459787418067179469204504910547649645040489830444705083344570297231448759355171335230787811493423726952880533736599287388014897298546051498044100159602840777340377442833326690454452494763928115570932024136590712263914254483189856516360284387957148028277255980364276157024694171359858468673624146350269576118784451713517489874999622941570457711688908115410609061195364487301915841431077504036542775654285110905528863923571756510736049708925823898906719831673547481019517290689858813060670964170373313339729373484728799352638460390445513697518884203558903253685338243441283323491456191773797369319462135914185276221976861535583093539506294222663345323756459350988813219382355288142744151071894420366230469911713203935131624251655474311815451994077373356699897204460114149200234749968011056517366828203541911195205460413906065335635677570987191563563735173611581658567790150530111289493571755768508448590332982130484505397533321963338045915423271342739394246992459845857284290501553157933154713544349732834115899347378257395392890836880562380479238004925582477191859152146102307593163130876715243090651586349918777869889690636340777573988341309831300506602989679655606988235356416344156833413404567754911033198982513670803711311152101441739795248761364187763073704710075113988304482373607003404427615093686650290386277185821538135975277716958393022112042895541916627282875489782457075549226382850835167503942473513775948035443759336135507760692594343978797804183009749696464703110234096763836138667979499528988444156923920159178756932048260896290089372629272778819718633240364331989051393115454023131232529038236353185997529479745800154947234426193791664810371687063742423395201984698634229167473140080792235879544998163568320335888077774833837943589130972319168434689520273455203737034709186935874259678798457727599200660172270257569452867277009835258573169352893435993894756639220639833060144073073878452129854771614569233268529057820199666535506712844150580756154623928409280935884778011018918965944938496488888528907421295213499416891064299216046778677154139517216578859198056966386277957534517109723080766847639211416725362287403957942910060803367670967887820044627120199138891066057942878931314635583460177947327025972402514993066135924845719599358196657429888077412026612469910817944137672339902820281383874474950236150326995232684242680839049287202320974714198559789273067412726657033873358241774123648395896708712188338936640556165840371801674822927949070166639202326338708661885321898689023934826228441201579754952469695421599925090233636920622511778763505970429669005851451689165463151905668423231405595957063522876289798629245628293272729963195782352989899372523767856326981931768760180219850846512064466777980324944966499180618250943984964897962302086430418342406029901110899043776422488097435430395408353282731951466771997119155201438067858476210029445234509699961846615428360961588760851288143692757548500689224257166193019194907132875477241576669372867884696954814103089524573173981992008667662077376965894536536987021377943510755334159732559313871663505807570613174332061928872163796552089429410038533489235810497984066981934995206591574986785892465254606248693835577474864478060189271475551306220558788281702508313041431265790358353968682378671885146754629098342385271290388495953865535469190351530378164322000553706441663936639258509969543592095735577240473897169516716676283434567056901943381188138581089265225395818373484325464729664083167634456940919101764830443660076069927427116800160115744128953537861899018657373231476892926966938077991529792943720628591036888174309100351799009879417592937677188277472177449507656488775803055456009509202773564536433054220465459060939382626201310660674304091208560380592045238934465770221885323264922344346078997507321244149068598887936270725291077981337121105947013318714040819890255186004636361854991514374142867767747295499273537333937794172838393206589107926416378144353373789421107345493424427150244211161239151957929943034255077051196550811237102723285517747108728499748226500549407021683386310102617644500700335271426219156176586129827749490382548060222436312346140010004579726465266070002741091286491851745842646901822429168165344347831323354915088872793383523064019031985051931508191379129290593679000762366497930182873974020691579057169518675575541883661964135365946876406319882699472023074875905320052271853692008497905662954776191419486303817136599042499006921593159143352874868665918433121611070498390842285552730815978071534333878540005463589149528704098364492996587574100906198551540457992187297415872348311299350871466141216665894840399202725353550065163502351741952355407909811667550754589347540570363022925274296820048911722792882733806711658948220994459232579852637183718013303661136828248802594932185858836902579974910653448998065329680758291479733324823290908057257597650957201376464193597909426983166562105141928513654124403797591255441596482902035451920702199797419110994167750333371589787197786619155591354032513279748195141992045290120307219714395807548104964553436531689911282413573284026646250683671394409054831801401079712650069066405938798850640162958158203112065734715332895155757653225769213335272810910243985427831708195420677544633299640918497093348265025387827079170413497293994759689891454754848538131378028010366719192936603454792226448588227334429663523724599620271786678012820506751599717552804690681339506289476677738291476009600135400249922589020553473408944732796285081225569101746264990123527632328977060733719844357500520335380754673170785193775878747058105846273456628180178194584328663137185702046077762507749286439189304596997238868252722167204158681524063308944257165757470381848352878416322077943833639816007692975139083645971183754853949424642653242846026878833855450538188005181407682632229967188457460955257596941464636772740779041624176432466775381022655249204781143584724774925728415626932250394919815829375914308669044946319988787615885773175903276775135899723170571703263993069375788179039326363855387737476633451927332515123835868963365539095862102544352217965240060002540222596031443559936262976306186241223010630216460206201842668273132998073231080580876223238007164610427847924457772202280337252990119906032658669941889672394009740087019684150864533580260380220296773464074175585951424926239080489421468789048620621000449173050929920852412667004632406819366284575917348591242727733792931964085705090760298360414768282786329165696925679948858493278156228923215797140047868917152543587381872486376822058940328672802816502593259314506578088984386024852154440757050659835896419945127134496006866910585772842723790264160077990415979432061957401183829969312674506445914087453741068283446367631471740534223497834075831287827408509535351945105226340680924303274184927372649330296887260429035577657774917159949646501533906368923666476069255904062680016275626588342631789730387465102470917943255133115449175165188285693949157970383072278319783416649321734158705685734996578702530330341428267712482258416912584374948327942951131931441989566598756410449623846342431083620267910118686547806266785627976170125719129848729610295260944579528030838555409301076068506065754321093942878716583898922329545111093356254644866876691607209704373090324844633007168868312490210270494779539619033694159618241263945303837320083517867282759559841364140173809469828669188279979477410144215454999036925407838524013948577092446908137900079543435506946651484807123485116272176924055345468059317147918795618697710055254016358881427253031669327607156308243295254455340924339345809384632105605513359585360534993235779948495445854151745984190937371593793875559840898633381086492654071488409493563545858722879367161329842676327321037309319085074253297954358503900037510965985129015259377500158951178010893745485618318772983692737953890863027431300066990502660977490982605201006140839382469800796982673746114226140179093368591382258948323184096280807978100160281903778475101041855922873108578081777542279393476180714197835716860394064955069320667618547808718303920217235316860931724522607821210370950799268154866410896265256498860633111608165444995957377972432789413125040682418483438946306942066575653484851771272987660703328054574990716086765281598430359485877256753057089898214873123615430197020660633236601184677382818319242985903456806852962314167672540182412454065710427206456303389001655873107827889262291697558148902950901440354686000371911291043933867279003231119841779167221045425507377008262817791163293573639750841547370323807257729275072837329816435207286580422782390507078632913245838683793405220880586248890770992680876865268934783713641196311756154865655673776019104254641189290371065970330667337554897469817671259086470191042912823996872010424314928246862968813218202851128130204327832548547004754264962064260948275334590925898156965461052722376503427938658646077188542375696568062469192790818236621062350729888050592108363896093699914075600973551177128952250520360425670242187707280839028109470906895333273772786773258251472834643100458775750701276332434595922984399769289295508171609785621595272717628767959672015987418408395845917828630462807489553769942364881941869465335485817930745812829830775583743285894439223538989412929377244841292107855519581193470764665896360975310124034092988706994387036560645229510241821411087505170205560660092212282297284419697202571293433262841992872551905037997158185081730576358576074689662234791507701720708972639130510491861108820410970758174623834553912666105211832521198183508807549040902621851896970863790820295031132475289974968361843177054607142062151274890468350114056311689383667267003308520443968804969817779882986960327208284771748105612161178722369747104320284018842802010429938832291420783411804869661040605080557566995338445015436824665756856324044853776403312344255081178233544517168588874353303777606028502665709943388343871144298874025707061605841567722316176789459306736447409235950363147952768146240480982238936852567430511086100761530898349685185680836281636407302758219629268926075086687764287585562337847025623688254675616068950761489509548499256040590149259377766807396385224910908925934613194578383063909769676895501905986268893411199928772814304683532048496619210188544753761492330540415923593135797030630044815453015445023745135944054479459744402917901693205399773210700996715848131949636524740708298651372790067174618800110047274870985714067995019746612910057526383605292152831061654776329775259068090822211691312923589497232871575360370623616460245087608492587638530961380644605480494483182846083342260699012324477150493241211255408853304212895497660111644173381014449802849364996343711282993227564065894091693579269252105134664060042907174880992679842415696725775185249070877013058083659219864630409058854850240877440688851253890025345009426155458889488939848612720031115574148914861092911645387142026094114992415318250989272348798565754691221764792919307943677413188967126625116436178589499092210389323139389836288285174608380742458508008263452492732971822352413489788010353729200472664562510596448976014611539255767877503167770496410434849808506037356498435446351098803973335838253987282635544839520442425909629339643669323671599927088430984752302378413107920710710073987374409420050571248362221342758784346849446705694080391126838661159649648549314704564634533824313731355776494549401726176316354763284985429910689473891148692782928976703106173063808429644689169437121316922260931138767978412297364537722449613769146072442854722325034375512166321197722552411790471416496523044768957395206248835515106073817599426639183357471727608744142051014908352192334649861914373383671897518795077855215082523032850936326282066423579549591749262380124830382651940505948052077851937179981158918660672020597866551107548531291126670439543387426771361789407786893853881148975024239985336381053530407393104571450727986650346810684016330180232694396077636458882433102882559205568117516449891363325209486974692343187444716334033838079784080438070940358726936318594046112917980524428362447128941434561697562886389683950789057952490637113389660257642743518149208226231933326955553974113607857689436593741540296830953698422136619453892521632184878766938701571266177558871072614873377764453942536870657627386278458280706968700840707649167051045711396980035613678320612173509821556263873953495380820236944914125256304591776722937154731322958344654458676119430903250443453590194611626344732062817144325042482112235459259039911777826035658144101030107963682405435221394504674869894311575248241342159219576038140218949181233500730464013386367551856719205178101895347986991637613438615391104233756840355357823363293394695762044802273273050744855837630326783728060342590926969980356734595831014326915433112458660733206917070404601613509583856722346190661383088194148827876357590859248801367456977507839620884700629692843938298076143441483004885489725061211001717720759621338103049646277468977906140866867402064844556394944263395580815437441053307401801907438164733770362334884422217199680908751619739670534894717393247387360239558244712350880950856279058216029925212981981517069104398537338182828905080218030818421429839347048334331364050952846115562508089779150123293744746962702524769234437532185533196613053025689382976879010845741501349696296375582325481659508762224434250094656813617844961081441600396499291042742937970274535757408188917779389227023084186287673224560676429663845126461634858518357087390273169006675038486745528330289223456612519606483803044488781114766658518181364027438994004794657685772914035012057316541555929479658062966711909337374873761951857376677608388934480004065106715466194520372127553886755542965589996912359090733238403180682209339862556485614419179926192611362270132424757121899241966595884261295506558843577393634321157915875944527866598943509406111065068578886714753015768787075031383323694930584961948504023250514542578473866879454935459118810685827573388410170066848299705165804353859378944629371345248169854760337147403566861765129638512607449303728118112085195955543754175643331807867308462873594806966639864071314444964848883245924455694663436782491470997454303147962482406009939185888498574578570273405921269399486797861452508158320504368172056298539923808383116341589694137669777252161668249115668044903237035205031132419303125159057906634664626351111966191274274272805760475126465629355614471859460526789618740138934552766552018034851657253913966443767508577939323675316296767662549218191148896124295662701637669984482511321615159783401841895120517189999671790353599557623169794005010779205980020493561259799269209698249074694225512179764763916290789010859342565535918830866773266712616132097308546970553601120840910557078965233345634417635235944653711710639786586702042965985684160943760899373717269125638744253679590913323444619231793392435319889581785589513931454446746582069887092767247842452643008148464396151734130326806236690591054024467271827972116164992077002869936523505484312550062677974299684596342801533256569670453135524479928774821806297424078989929743456391917780750748144606273757587691895980542019604044273285296423414748919733965264136782648657862031748217621532536514351507979857921136936770340538090561727559171109692352394090254721310711410127620894997757767207704860414143698039343769521816782462866851767837871079890152483550612595333783137116453473355376553985446876082474102117335502765158988622104028904714767789704408770836174637741433719608395846062903980063419325191735370351816944474550637760917985305840257221841089257719832471165740732705671703433547193071091260826150579569811874316835099442517973290777840241154264155603987480491270293328186770217705723122809512863632197925600888374231985136187649898369652864959461240996379703367016680493972564823971247079523332964364688289776373375381036378328511546339073295655337883264032018928893395192791155705427161626142573046582415853822349545625832115079698335717370949895404966532956677379943287503789338048793178366943034160757428179262822551658918820047915281028288956308286495588625301695768472681405116725019552783565540521183513513750444195645253066288108851986028591493858194832536893447073685036747938961480482543337216437601793611975760994366161391917020385721333969007380545298415761250876323032838965772304479842187576736435762170595560688721014697412664594846198747461440239380249236916032736417775315539445847864002923022948871991369484131803756016931416657832639354787952801283492285552097327846580752365608473114365714332560653105557082326311474266496735024330781161936429455785304612653145771063625235473394338786977746736055724876671006450546664758119587564092501589706013564694453426835104918436362986284954496964331229222524355977530319440022071740471630714328000207036821080239100012674961774465546342814341980970792515658292670727509601613436205827200236029132276779077398016391308315788917402780887111600058519478550899417177878834497127695830999142127109225705195715686266808012744832149824802117960360738868240615991905309471468241197599620170577959795666953482096325779912268983771432055715446055323183359560673478181400166561923042005565454671733362335472726110418609003616105656765584548520265309799427113657748677028163175256545685244876657915138302457958995726665163824387858769238481329760064226431561395104132633521640948298682176327404490782413454882931048004241200082081906284635336335565859775645450388490409711336419821293858919867516938932894007411307150420233006940469457786728115325815124599043779586978546109517245455304875639560618498118385894240594233230929223866642866197106536596501908636635549908304503393320433084143236238450729863187223299520056620271329297714213789568092255504346121497398157049333747101071835532887516795870749244858979443168915573119879533335004144593063588275007825619652278208493752856620929254344315921843274177941748159334708880361481554185112231262017213222532550799817612186247707520806789847595150551326955728982060280960246872335325158764296443675077826481868836959347208846138881516371933485734316798835135568413084004168823303249532821252413798627281083396518937337914597423800573989428444289128277422994652077169048938656104274854666214792857485112831134308430607662312094683458540871002300876896345091448689827406573392764446697897195816763559102502252053700235258574256579604141313639642514639601816706295255411800202988051390744760886707184575889845752643274169674608293332131026714611498453829182399549296642553621577914964677689798001026882170848283442372376195001194751734257543891210782946638915411760121047413190094541589605489072090436975111547007297797128678769617429266332518136739995522047102302790287167186216693444453194351288471434886218491068216294479947860712494421844770911982134453840074389702473769201203207613983726342734481311402813125657473374768303465754926582310140547328023107078066795912188310411136736690537685967814571284849158719989290030117542774709096786746138886006723602717597579709652051562616225768223685593550790298495557459283397727932904551154964703246235519771773918882559838389016505165559002023613201358888459220987545083158993666854990411491824052114296695227664271741527608679824219195544629708528311879878153865151514413717698254978389824382878874832770604407214336195479237357608754450133042685595297199367036125725828961478287067604138532864896335265088140292930396478857706765591956824029252064547222340197587079934210139145768451818577166278884998507828255583861622165405229158216974666297376224113568761759286497321535958061739829267645256493588248430648603256523003746112934602807900332834746019180598242168855226299737486725007867805741672144357498005568183560851694875846216727709952789561694425532491694797670086220354585241661326842375524553536510738431386415661943714950318199017556592822009363623749288582225269956984182838235317439816285569376930624792152151182514794095983873246288825130375951994526267267515678317044484542966522351039475210762617901440360821301352598518931154744514407859478567590888804039571662354044392864580594759915633893709916752100471455338488583837672002047476807071793390339540782961872115177012930885339046995442676195643088712130678317958282325913554767658321746762223423303735256059673582080961964238801664372998406502824925061387066861591818679706364519224249031485464549173385847600286226924277409705453134083209742341133931131295667991287388534948368819580067152346712954019223904810728449825575016914199988499801685144603245535712962918031016688112112233075177281973438060753301749009270660499355322715721687450689166931112377865943390903073669316578307141880123391948552061825037486485265136911973813618257550736998130992327309749111111928793881474299315759908719877634214798273278943423221315879437481458435611495066518521829389387861448750233796004431594463823904439630019108109530306565610113807942225052174424060292615321050995623556052284168610243979501571413407287753678515485644478233773996610327620531851520233554984481915657123977729250013399035023815875247256931220233865207478517539017276505114891962046306901725430720821491088350717864370948159033619798066638086287982734692563687340235811689137756550859794404633883033142519892267116871688279917569554317412492235041969011549259923468429337862430993537612487806970437355887472953974334046574921640665168232625885080556539860080170627595307991693650111482314352850191446726576179036800650229951997652783879012117509509265707390042744641649400624188003636110810379341352604956670964173852151956886075364852615157891250876702459537736136683257884130213483551741401123515769132885805575524658852902346492628542987042995522644054131131473117030832524529857375166276428114871804782279955299490186858493923717227116720923706379461979529450010511555453905346844801830805370584828909520422606537705296885877432336629894245571325606293648791338892943082753930649316984820899991176617811862109150720219858855567857744001128004879726101560502414283360347284787867130451084657496737667031916960984093631540165078726720823413197135421494311313508053403785036983059730216207070542893624470100377712709388416581394707773506078264562382981133524620727167394651196325630808770993744627499553945448187591568705093615485461618976492995740155734038889104276964958014675149502308659018795238093568339311945747455210254974179432327709376343342913812210350841151140737305127440262822222684544732214538318017699405441453993277221887413686188068856761488182872691477157470632229821334003440046817319807419438035169098553295503453952312278813863227387866170826748683668054664748267673545290021470571407149254152599840098331417320337592090927774387931232154828934813541484448679202391736757599090499738820728615298585108579733075488629441802223431703346472069294913905134467706183533763551621332879061130749852092856165188092224396433822885750841050929320461933791207557780391272333918541662487175876767935991763367191606678925694453020629854905792983023980763424812043721929452593746078632208200680837606930934803756149680794751973961753283438764187592082062518839094938945746028175292619283285224732287903554856948380762649079888422805492750229349836127880076761003708831920182942735188567923109158023391390508645357132346085837917319200309239733423386045689135364365560935151182778684585243836235994576008672212210224454635879669859385810665316329956766174201383403554582414526497314181858263606697020860698958145099922572125411866654550024711691955177344577748354203825772464525245938717464448824625354189142280922122562999852830009181017978005772510858284183381470953693965671000077027599576846932206951006021644804171160919860553905313429329903219202482644559581961274502753559154466016672048951432670028827034738846974283832955252530099696800775531604954216988149412752087877922116575795332817195196510915457682498666788296610133884092595076082142431483264851662078398135258849972145234897257888220602862089953423808514004447191237273104334958962121311731014570102450455182339792792070817316707465977028274802099051588199080057638881108085542158993680462624263600533784181460400439358123042102732833088797230659370472337902028928593223858756660011155255671899217063765728256559063086899260400533765104965686151737968254480298201853728746867848778392826248994865119746185602466634416497736884121390812161627537209748308663422620984548629303554548782496062863755685974261630374678605473110480986079237535291864316449124624367527758439742830970699231850618087084203995312037772280708915004600093487669106152602797499689783344138776709283933897919196322575638615187007967234768856750466762831984817451384435167272926021492649468900721664950378915335249518288325881486767246290089763891118592999959628788588528382765687674912949677026992130899526764804396329874933773765965401755423920938674615121684150796703450095930533504127150373289418805275375906385256984702700467638738254743883055549235026292150699354358245736042462972377122777738827497727328531251133250342065988401747503332237716208326762360252787482630342606493965822355855050055266690613038503451449183630605019482838851469392769100368966858080598450448331178526628783499251718787380387160726620642959695289626480886881744084248057220567133947330120311792357950034981224121561914293517942010459676062329792790850860129896691745252308293364142339123490420594856491068844322513555198050907822789981953156943764399568543859992892545412133751393552543640867085031177570488539670645215992486484338328779031136921773338340864097544194838783529361770552364016346502753808030785031058152961113304994803764137833052756742912940372417858585700743504296549730745500301171457913608210445878570528333083464468726899425613087852318737504920973241511170586196963333878507669178763391325335707311924162842470914948305262692872811611371371627590945200075941879538157499806711881102858587527389445837432918307785425534608296924283447773742158493458411213226666074802406931078829919046687000563666297702425813318122741266255163667537978874551922540357499849621081251706415604993278309297779786329413680293245667300221574437312016792487016789974857891417124753678192393165126278803625135105773120438781937199655597683606927227898716251452819007006520079963725717818021660003021359413969830458246512437262668707648154592016825012450693493977199877466626612844653421120243555855858693456279557514782341885156186236239382670400607449792712474127152933323964816041701256965648468412523769089069807053780319582243624039504128338338075490575004570384530496130242452371576337388819990308664302569696943517715259774640580744212543741938401293195529178248079823339915788924737313380275383013657852880349121641498194108935649745473862997124256302949441778584837099070242392857831000643864152986464111542127656363741399986418842416052022542828879357113890660355224015623996565518703783035223744115004054267375875533130151899656614038189458276956383884204007300614971115622674586390697133452004478404163195421316888849237202510733441876520088904786767352218750543691327407600481832863474340441458480664126615508154774262907048464886802394818141866164943190303655706181560105793263822326066341343565584217591600783429300888303557178946357198702335305387839918090858826595503634453000157036148690031727567745239899795566620508282712114862330464393514643987905519584841157301221859125512034166345730021351172202385294592978096429900772258020339337524975867296727440206045905605289786665455157490816014147916603768068660155113795922260785514675786229621475507081288039511885042116804372026545718533989807814149739899205399519220049044331216339990294387187399756371751257757971271339008733708175526411420020576663441482599657686126759336869788741078488854085184350960931831734383355723273889787847771594097715316682432015158537344427272633259831764493913049302513624271577177696160251981744911914950298030642763613158326226190847697847279456944734743827712060651781720214325992027575809308252474858557428263686443850899604167446261208431539225181575664905444029725434449358805885064705828405478963272310398500900112094702722381026831043058692443235823546734731416563392450266438353485267170047288828090166525096192030627375644659442071237129737712609147292168349740600886852093513780156893022530904159564298442557185271321844018106189838475740056097658721861206978767030412022814238353075161374663243396406686270358281171560709045672053589763253384872016664869042232559994689952873898465829003905062524534711896269982037886960975856341332563800340207525891147319869915820931503574504832186665962308472554978795031926503164278180707831803921318231090022022127016233799894281378609465701300673445099277374843270592276880839527858674137228682673182879422273164095962722011191351618167734231121336640482679172665857552992478501173261585223803675196163638760848531080964898250000111035200689475822569935781584903236221442898922871790838139968801161314325516663308505480260450189028047142488079884883104237006370581759709393904433271211896565690609223896387106437023738618144886137766941652055938016128793342787499863756071030476567777335396095524778381996414134535219007080917354393608500465433857752801711789859571333685404672354581593660043923275604955389842083630989451929674486230552487234083683432131565557838380400940514704024112587020115896974915261569513371894725264647969148524521798263854838087799416117266715845470060465052688405217667651752038329926837970800298673470969006008664239646754409005953187011072390688090923575098523426402406576994636683553609307279112097057164549796754971457689160149174815252251558296531971517622023377449007432702134772276951273096718684963071976371705169804525574752532327236201062176627823962509199017300239862525934711304494108824825871627585954942296791181844023359644302592674157609137950092819867549433980607510592854115375060114845706436829705677963582765959116617471083491668224142556117188111195540631538736734726920205378735984396623723224340460625522238610160491506908162352649783598799091830309560907172200857787351805602669633798784763121854618061081753137733686038884525166895585362465258591153732195447642419154514569717734798026408996123470447244336253811292116493021859853447750960997079297961660874302720211120421337536305120691484547963131850655694654801064424372450562043047725717347618720481662086863779539378414370278491652980895579349061436950305110265426102308594230106309786979535069302963257415056466895544439203681304735530943536963408315463831195154031596069195076868232703310075321683850550969165302024572786837491613152910412312348109298611396725837553181991499294261706294678677713641182676666993339457539074688640034977687988308523720780072959660196390686292520907168774018627808225445433057744227947409288269306662623184368106626323223402280178005861275974217042638241151307505339551993440474854571310193667124442406973515425719223556464338878072055383335902532429291182263460847197341706294423507093922065561010426440511150237489662458272725256153200543681760183908279337758796491139601934611977961404530198451142872091675929792650471295927129899581270935572124634761366741020650944941200675993828322574417353453409426315641615608718414961736426348475132842173950589903802724474923720482074447010331907163888916040098649751810834196584895648630598094374889186924442803902188878922434858759844335999871280076586361331423026841479059128082659824732288986599224853095319154939870103577658191672466619715187363284764034274108427686704904075646310872782384332083887960126550714372491937511177143133612800824352910125662364861328155018928451953765603736395475824044340091083588855522430752628601730035522648227092391747619008858372763401745224991038511967813761578876523030733724848060639890721270541579395406404964950916900097656945881132742131174433878950986180115282619198696808978772651269129183165452384706794448012085965655305969486647170493279164526831021328629845946493461543151784883345446987735205540793864628510829289514379065460837727343783887149131194309159110402014353698886274003042350564299762187068428026747826188097695138576801819411195026281611041138121190040444137635868451229648331162304876205193970667526435491860080967457755510467808591827163051411412691064579329118032296077554264932788919752670836078632412618791099330025192546766578710694594505928019624554094251516655875315301923962505939498792995936155825186915749335999906315513387455824492221339209625302378909277178316380700422777999944854371621565613883905152135076895376632967796829206987521484297469931222516654516944331659847159242441468094178102925166419278217982190358003305285632610789207647748781913366511803444032335052105809543098009798637438110612232371753783369675300825123234116508555349048705744802657899177023374429967146207983456086297075354601104772309006264378722304223551892138223877061597671506713269111111907802401605847283473150506753947210149695869959494669860235190717818002377051358997420369346302385006960195438698785086644349701657941081228759777786782604434839855695577836554431484901477030145791168720022339385649149968087227098543761525259701940740294208592439456764691831031998927284983407435449013943541485783916596010872983546606149456405969526714986628298132399773639628494235342381770336590571515030821866055965767378940582437867416592425564623785334243001545583936981895835672338012377138031795946785957411332043133875519015529110239808808747519157157741645209988357673304449223958299319654111587430677489822393919996953270332295269218781712937544581609856413981630062001772069366982486907841901327828005981868181353783761815090995975365361290436245474539267189938535833532804395302119454731511700489958412379850768577695204043733601854045622079615093557785522627832589105112532803289196979481017879086627542621762326220272325206595308595266456869855406073630515823673209706747330007012702324555345021696389245197913191004637072319611222025156888987533724803441917494072829539629765346121188789692054362717417390985345145540632114575755893389655934918881765305824236031151722610984196078621810484596042837587360063694255250878117379910986392701756581325365297792420174821804783508330207583819391004485514953596436443386700302886760467863915333055489714048616905288327498149336846892238167883757850654921331110531203754241477474298274423161837916765012799087639681025494414561179977460542165705253426589418256231141085186262290293529195461390836592826108964020044584633700807966174403607319778079674288732609937971873366714772467932878332376847923343876504593055041104077962299518803527562502417199728247316783471955709350421943793835858464999945721435524998442805472002763347520078778262934864480078168957981288677668593443833343823109881486372158127747752737068183630093265545123008189307003875727773940635941805214060291043871428981471930141207743522789508153124223779561086295902922105010896428384093475300091417115715339342210045400448760753990133357691796782730056573512558948954121485711819371619333715094269375697322458562774601556655303401778424327838714499310999330592566018400641603660428987427204909268304726186270777824725177244710787271782982979627805877150347923442190046118701396584484919909504060653259140214981910928950444303990680078565152787629664596866590976652396063857915800732656149894557341615579366638295439579214841478135833657812253078442150439658073818823594582322254699296642380982795529070206813636109247351366544937279999462102614478393524675312672373755648466170574699328328360792335316336276521407641922087918038993498785837704955239499680679596308223130504220716373249648020765433084291418415628523145495238202789786223967754361577890480289160343227079782842316801205009308135944257782006662754966042926480943565417753427061296609759672232320368076943553578197728310933624104282536838436613886204021765417956980893304699126855425204966819541688948056660695519441557966559728454357336194499564230335379271309584116854775809457345171337688102968827359200199947894747863789710823997519238572153661725896765188363523498037673591052608905066208783281233080200382466507605905751270517213882330348895454306957223182558098280508858728332399327736769028861122863402251910591143842971939476474434585257493435775389619323190563701861264205640090911067190987617997737342311962844038485836897840046370349423757201171409074399310046711486548042133095553972324472406137284605248167045770161493699360372459883573891431564989559874176164384908116331430749459689352241805392696932874790480247177124201529288319119920493478398688677942062882576640710826612488326157415273916739106670606282911350720044090678552237933514161385378107517325814138456955890930027009808650582353189392080873118815337501437300173647365723106353364525926616046959859507376443483391159022377798336140658528275141028005675006657730929519409344292801461994982425316893833347993509713893802344198188614356797115140186243283009198989862156081605463192248280286970741649148269545383622680640040220929256735275753634561526599589633678723422371509984231682036043499851613942392795424221076170412554626174414005340465166622131626754337389543858000074572440721642822342571302616723628540079056825789429272758635514475990803993687899439886718526522661441010791686981682439779171864082469569476979971350969591584744869697746843176601919463552013253885096600290322948789042277740571531739008207064600833580288643193594749400487172546969433980604039687058353012103143457392695269903221290343019343200504595651133939080801510526681412096437634091103732460802808635602172592139467016696051533447118304970788165954682041558071891059598421924846611377316267459088559481605446152411375705815655361178935863159017368761891637117412778565795014443481432451330527477631397114058114814604231238163382499230924694226185606192208231300632432711598599066302239135709702073862226786789497110321512436201125827751411260419881018706163156033881215826493831692352181962059139191880872244462290259549271642882797893603502139879386095218024470103306014419458270386941272643111276239828933116437571656518676699133358965341332924829954466935587581198091278528813935273669672154969310985429189979214244553395102855614955725867981731480326290861491694944335494978515892544384776645033268822176283676534370510358592030122787685561019675547287920476826194803739542608285766727620839828733921397696646437896106798499335074506272394697912099590921146182114657720158555479641214500791110198050882866547960257804535673277515417065758708359773932806802200913870519218278402264119389697902019687598491122804331543763826473123632202478688390664355854949646631415980679011266434737649144044691114240792783273041476633954357759586803190427963872042436284317759009931309385899908570359524232562607282309813271794247170314402545855381912556746924539659475939589691434476030071351545310355590901392272010328438822941260910303077004531630614238271220992967024022937296663538506480556123726291209964424026599765239425825648213964439442816502867257269312922505680771107917587524333808176933171303948725021468895261270907004759378023673007667486090580513557609068945441008640634545204556833009337144936690862975697560192111114167873593805551832358691091098036012078463177044906253513113350818665319888963923148027411224603946599707023576383843098425281034983393002587788706582249431519073253512146534462971112767704689269441983864068473587351116958977073211094061321947664065091646722676012106467056641426217280761787815975236359476734128382375249862390510883479666650890806817092111642946625937184021730052969619804310316750471322522411053930650695231887235031096302256977044995635840567900535760273734447295792165445606368905539314772597152428907359062012743283249169074213597108288056534279018436645369541692238760519631550631269692284326440184836353225179188604559480371852315829221359823106131673235450892437098821171330080661555750209772450241944217719578153515985476094496577575381595905860750224357961463100627941592766373407533578583596295888571359976532902146901033957160418886683331503788637638221706979353128416799611051476231932447420886154350934245376606087503983351340754447343045315898585174519884832109363427014610886094654920233657393270843423347808284033221401011413669516055361548795719768931192449452217162915213267960716928324905886722541517452081826085414382629855753281811018048943258119422701784467088433941112341444535244323808258568274559219868102136095955982760883314340958961241896031890007608117983758900256133505352051248778272031461516820637758311549939637228194458412590223742866515669628877448649369996577197649370277234872771286490255389415599032588085811198914920469921408164271338840464250884205728985315946366274832226830878240816686612307344614256618312368079166679757595917985733912824058029711450960580522216559768294347953629984214114082050375586832902880651453289114646183871547419764950448559148558954776839366158504652289207415473788988329779771850588171411100925788072408590343904850041431279181962891995530602329820645361786083678881627669265931226541622815414127995137855968551787784801857754227316750206361769941423771541674950469795219832122879160890633618788716109107298388472435543635078798957405421523508437033365673304371940929047304364931685968338451043512025056963318694498259848496899357123172265000385942153202438407843787093867466468845303061636770917059748276633513336824290149357241575636147261954585419940653960224272415757299954296073068278193788997792645383983723186511342360544379306573427800289060908555330878197762409136969081573783896996838723253106760864035797843951185085843890679571000336537992868120723903264783063823964696101538539469723911686845932695187379237244396137256331204127433976836418265681881690742653719491442600710212927936474541427700805294496076582502038640703738359506548402559039836387413238413130906767233771939597619246784925199692048970644820782397100169621286096818130150331550374036348637171708665220246328346025258889310249790885507820979711308930806676784691990746756803452817493855246966563444279718248233598404701476422499257034447781669696792926771505838426701418219133117467716406746188631516181492072071310181496171270157988202381573434632618370711710707894864888094096359105395543859220647393126190431455653531467944404797614781768354974287940047590566740813244115353727957401755585310582765305901303030590130074150060874332273475707777516116272464464727970885079923596789755814071768407404863182712731836848011747969863393575001892674970159215758846857188429312268482961040026214052498276580622021512282131838438782193799979783787779090634361140873616616477430949162208704520533889329070963065309349654592363124075888028323977395360986794423723042507836864202408401984775691516351323207331037996977095606668160626671100984205826692278964893480292227396537526939057914788447486007001059634642619071834550305158978872767106968522557011967429564705648616305562494466070425201878399249931257724962625844887245953716229905563206471577228764232026386538045447607467139436494860002409470966121998584000519344709655628054776639428847956811278694252792787150915454250432031731896824136132797361997010634127045523821249344959060389057682240041178632551719565359938052223279356679727106837897995790077848138849447203838522452892174824287632034323667964419900340758528294941360626789557822883819437643862981304333095386702696529037064834236043453152833452800817788407519947359694284569249900377521005512623938714866786614696140960795801975622928623994140297574159256668648346509692715890601899138074121876005573041361934113616205060634817321553571000569260730397675812371950055372467301271062391292337917974608894462495805387598694367250365700108414534299224063333130644489679110958705948985147724824608281255906457448229034527168120680340833768483718506386472896022716150758829311073714861270059120382630445660100402123492933215473973166345588521473320964414016296929376336476395413184694812732389435635111999350299519439996842705140249634790706659161491933702426828503115680730516735327260936496974376894163535596489216339345263537744129751165020036964403061144904119778951941452095626611223480575643360844010917898999573890588038329356987072040072445262049743916518200762097684449248492295108357458778426656824717711926839341315673213903197602220811979896301488911710573466170793365194611441520140721293742494021419134181952556278708468718273239968820173537059188992933246610287659420975844854198934138164757501536392608531449655906040078080754279707724768651030115831084124582924512586441594634099925651098113740500914275895765314531901564848552324184694612376766391479334183830524454461943812536259016425522629152111571734933840915500955386970178999452337724690525912356772713549788171216039072463913635895550715246627264341685830966933397224234749564379918322508832096339654068353311059178556571939425862947509684263408088956582991807679324127127182715657581169037920713471169000447933782590856140981372093371073768874737002992184020046263175084899312776223531326082136943279261240197540073907723936631495161683605537860359043400445261464842535178992337236568225110147910846980958457691788753336863590014698355700438941371222653363191706349954466447327409984778217073873816658060186095432730035383380339526515409759539016287231029673917378268256521897719873749427970541029085619331561346997632065605654296537827332310983333420252040945248105085687027375531886643038909217302692318031692830174407564185306990363724624860715263191992276738448116377951948593243223498904298667365725569132802127495420435443089266922656866967927946689144185734311086437456116576220992344953405095866460082248892005309126456030508818646717001466249749344254650665721868588798214053390715730210512227555904772692653628108592146581527269551641741253957822685891713720520487782603190986870509635415019140336710072374143445338476648000708995175614481469754877575910936689748661268415630615818416151070253253373044818251792689965315885536818248201636782253415987277232902528968011581150596574980525122154104810265491336329940920134653913142609833535144094380141746758451672059297536456478350120939329405927996465365814028805325281275630274444586572171989638358959174606755664458302884973042397507208186958074988276305871261516130912016488620242342278653111388781401160145042050297194289032510347744411489638370685040606197376819725112228010857638836627874899075730689701127899266539649003670322711439510303589847823154364237286796619375325294761040780071932458885662738084857276825429584095490148488008512055174962001151489789378766323209677699844341703212119915483430446782470970865524223945602392392458897172654055257216633192085646201756538887853165736640589319286778268581057011626327076278011995752206689504305009569274700012935530568170494186542768304385700277485929446784618689303307208893502662820202876331776869901668615176908966567860894860069322204904622607269307494699090139165917375922379936899315600924366105927575874201244237240182623104410632538711145842020771790785370503243369185902540893380038086561056876868932595479021656668755922259038935819892829702600541503909494187363846918179483406024868462333341109634321826581575716246289161583419256689783969366570788919538058067717901824630856746717967165931045203164681894872598865591938730345457054221607653645803323434348271260449615938211109693406949467035600766481037714972780939623361968697005431817444281060085821785417441217204853918086895611732651849992004369649086255061488201175042148191000667737730242245163493673286584165763225702976890460046200873572789124004333981044855702487563911302640572846179225756453777026696554940071999441083108257684420478982272185262637420585104365515623372448688572651175574329198761754614529373210992028547160335238052635355299861021278302088525698852227106964868732185890417333793394823112002924291583115380911298420158197820621351879363286152143183378281729382974684114400232421600043625739141143499912120631774367304812370209567149836465750105771271190313394399641549440485313564373888970212016523286117024393838775014694124287227457772399094981754956833576268191523310569443011987891022034436088527089673267421778478198315273745912750335129369354798301371463308594724945731658191048228782520367448996126510914821388805308635704161230516619277019813018681369316940782866999482932226526671144439273370786361439321893931309538279657243935439815449248125755551199016636488789969096748383183470125156521850188662049903124587992343460633581511048578825904231291209953406523139059387595831527834072190766908198732999752717097869618867269204276289289087269042884903851149498321905117990432306038032311203632206530257903157997704987513759362259909695865860931876028655626000679360848649500810687052232890743789953409239325351032479266765507914860525705440409650276269607072057393343019779643331447015360968553851739714467385214901455107149945365651434669656946899148998497673510491976168369824385988296888773188771208031331373378370607923969311978095350687900874538688534292612531492063253247245077766884115600736022609059052628967687865284714185418409174362959735267784286378208030023069974275740290721874207915124061115419459984025177201835736859465425257275268236403046005004307062726873108545483396865446339031342292085175585488599205521042192723066009815085945545535094358336288432314629340109003115382993168302221935056968374489269341290820272405269137056061864409672079592478548044008314504595831713588678368853918368462429662305034746556859608960981048114875226373015676430979907119878821081334967670258733042559457160959915556415819102337766680126113079311691757942125587479488599631442437898437929925532392825846592544592244480364791645570235506425602787812179727650759971238734487072623217528070586435247511313246013475048538102166619629312060399668764291047207641924063325354346071693313592740970971033396992419629830356763278732093955297902287679638211358159132208016280962534051095440719580011537888641703814576249150976479693326626293392830960309463791240315262565634423580070800505170651824873364618871688253389197187461960751613749027821164556786002489951293611989000637554332903906796265731289506008682674424435356762009592729987082183637138692650606869280564430838162349195475796404372077916787525407149002446466656271598989945400355600541897075666841446040787534251843071090650116307948641846561560851813306723128768742027121939846660580355144996050497461277932001188101182157284051827159405756693352423976798871001592857300644870283067444887572348927327949251686050352225825848288998877614337784528861626535425789621721649384001393290737037189223167109519368040933329171227484864990061473506175161413782970013140670714100042682910663728100915970437055509690197644638873727883332707775584176101986018013495177488563878572440043326862109885949500648970076887150067202359567933226238911600646791209375097514106766830832291537783033810831367494186740584980040112566966149945233788897362228215500568765617456113353380978300900398618261576585406761423980602046658062819241672479204719864212186457963151621866916080538147226849920569057261274555853518084565051034466032567915605073905835830585337698742366109470417956306131897015685156765877655312041096056907822811396526461951177705956019380788479919342888332784687434611176984291824677638069227706843623388173613700768112069888531700423844175190882920199495636660938078525102660378477661416706560784364285017275230150328396968573606971652844675233278954889578990944523591804297659554621937362480753086291074021626612597881380946808598389662336961955372402740705595886188613785009258354924930538359228622588522967575466542246279243624132288891286008160927270078213877476241741219746480924387519067938071490233203014544233678376263291711972927070245473409834768033347110717510254971972921868163027381177203304087245984672860745398461081221192808416097198873639085038994044241639517270623184966713404681225993740065282045592669369813003126678237493297577693547005294330064035967621025632471719549203158684834558355237099979738416498247965105558415147744239379722233934664878938525159983666903931929851506319736286091575455918785744013160856678758087518149866620639364140534435846763539175064139257896234869328852140304248263954752255139198225120008650221065894043638901855525590428252917380817942975007911059726174400723997789789190647114787926348485666408685843566838130171014628547881512545666511109255830198018358021045643694425070135301946497145200625706193857288721772756623386086599760306716825972601483531243136569552863651121619857410423519693654666222005173693558185658113703362868313179998385015837144588416497254455067784501767693108332839590679410587561045993087519642769451725481147226797570743791797963947734177415340625293409317935211839316512786536076595915941752594906641314576436283740552983589774365551741087497851105082374173703339819663290321291373961989721145668415146961611438776933988187988744156548758909266729641983395329049487370636774914972417125282972491407776161842390037421742381470854421019772183251928572060110057609724527677025884315738982507838567710064387774840932777003415768584423244091614046556485724951128129922082059995685926875924878426368854227110191272838202346911673567300678064498979358970668734915985866989869427165914360316178970430703952006850992470534286388070385388633693526527876485142912818848893457097182135004346722033994991447845359734574151344792626174785791169310035327714011797405131046304738043081546080137319219587145517907187740120495036228309110466596265176916268172318106761806460724362999491701398899614145747109838223805053672393524486381697069029981000850920966077464447307297633058996758749347680806936815515394282711122334540433463433224718963594411315074113454375422760139918656571953329133431738510742741801109227286662654569036236054542436570247395519464018787965534085133670835968255219989695991939167862794714023634323608702522609695383521427549543230920902854649078800355986472889164475934648301380962688016704635524722021027156859257790483079107484370951914304955546717478413750259916282577562376900201543754402182827383675336392269445183598118967193023350694105452502968255665932969510958671088158008141275100237062361235596784044898435262873482290385950056380973633314631758624616078021655136318364252772079843205299182000349250038837887862513601843798324484854469395187679153483617387947589150224464331544075269722194654487623392315550207955381810985211297785392250082487288486126849400177842876254428546734069976964018547410159556126790400191630610257681087569110404749250208023459334351115943298053997156606245044704662216368741380256984340283561431731812786872271982502124281109659620403660354501352801152096544349708244158566013236652556480385215706776539232311382686615691832015010330607050681780437269462724507945367417435385941832758754531622312408030285217362283171838097457793852689320427110069750799388684829707313478562936649540688343663361050759013466095200857437783898304596336807443386784787699421952933767503484383085506410391476477450806214040059799832330284408416152788410265934754960052610469385172202952140021702064641634260476526526255105882776349376925370312529644164730299194863965536169406156203418356180610549009344220126554288891749068854532974799628661427471328160469433271358957358111755089655555031752601989484188289422597095524113200612366925590943711323102920319202182257842651684954982804735766504008233269274064356838208337078459049084576658893673943935005446872382226529318552208074587711936463707629673089703259473885499054777768906914526584890969322920855556975907761671377017842409318582729817721249433854460672140823157560354937319639660054672615932741960580631512691998648818709525510913144985701923856530784472046782542588526304586801133509433577869634657762158922417779080463590581963859626904280137643513309739985610043543648073762589805977122663514016465541579215825432489040673269134882010544742122277256553641343517919591652817946563970638882965529318708628470256957890437393565869881820301795402124268157686802047701834671578565914499264838047113906039516824580763125027139913791326444572808787859634810902199126892400724414402424357585108009148875492054253710317462453103847051274971566914849548689297391734755650726959353399526937686890199425836482652067278942607692143512582832682609439975448858474055657296489040706967894671987603413930293044490656630444356132654087875915516764750266113455358056201486239438120635111987772241797296174600669508864656698960130830286847478945687685775282348878876773357931884410656036559596054531799108630281789525431209051529602101336792406547646402277836027712011973257518954231186520323133703654174463584555121766517115213498620703496390900856934601949607256901066814735464221513749568453791419207938336685062988409603742353290831938046576472470185178118914666916051213532766940112733882920662275406176329378811029384458738437435164758765979839920811954078664832443810597488270212003210510256220700722477568224603289977170668806021821187378574693288138372927405155494044794588562931588377797430001111910706602929600342650318299069739777461734213623711309001009271689010051886724015954163204854483212395686457422352434817679943547253558627816961208652290184792270767661676102802683554742526043851892811459949641456167187223415592464070950403587671101720625030108969086556351001841293669345006174121266446467878346448667138177502344458153960773676353970973370875060083267843939762083873439744548879262696133642232416806361476013200242416932225677770589399228848146638089862237482083501551760717227964433750445855041344703672110353529320117294471847083684214335078989586849341271265739797335154994554256501338863794548792821929618878484617058078508608862491867274474944481995397139232305539041900500685343772783615827197284225720129040789168938834211814419630034667165740232314477313856348074325316842034611282927678676114383909929257669152226050493017121746769059876068861960625643265084858504976743600470844856782337315422229537117529478873085452129542980071546235794600189532435860007880810613894701408810191905132429500851591321727162892865444730575339954662416050002949231448621139091107513627871231501823970607529886029413333176349026286177825145088678433628439230569682403959421126498780606205153217769187677084036011994702894187553593908132358064271702318354320577004015014422136334931501795225119231242823352143186303275219666965664526044570730188321060182273453954303375778140996122139768367534395771651908936540471789758846181544197386004029116453571864539497222653966797591195670560231676151969535079588335292987504442591877959497522080236705250170299082279839725496384800520489961628592821949122069641403298762081715752007815098719535590305435269231943185038344492647244877350261411540098154231957591478410007365188162680355668017924805842229336620966966067362049956977451087891827003362104764189135675067976499686242004940581398311582367243832103376746807383094905413240772127227486753115436299362480215428669591880762887897468740956663184269946526188581754714817021672821879601906211388330980505966734990204410795185911436688955713750329580201193016377317798254862988579693481596549261323809794189518888989732965636528235373364156087119672747161094778179399826403391142095303972238887799649445958674928647132479994711602207117310818144666979566152862846377222864227823266398943536124521634156339478947119987059090721129040164340232359731261244012397565417796138780370592134200860449544284328927228369680232967782722990111703010302904813446186228859125289595420268368785748792779824718193229123257597271667899998359356377262390572734871344046312101726062840221443373804565202661172129814041708122744998089063394866832370804223110810898274456311350572207363017487250760369367376204078356043303142569313793363612268836887461978442981628707305629272258331109791576525426882739491180307316394113715778424230841026309376851104835489262281159825576782202052358598292756944701293869770234467992964177941834861758127496067887566532473839857325684327475798762436807624992416022879402739648481385658949382628154438034450993895296015290305565145760326709512187885666953310362765828164262029342879600885693593594002613680667142168078831224461002129477097909716407836500016714177750549764844859672187005081267771294803852009935508520800235652092445099149314803350504891258768910307414226343063847548644533212871520920577009301801686862237511819658335899887709144876624918955366360280071163686108003662063023966457806434731384183136561368795622534177412637833939024890800153941620251993145992743914905630960913889577487464990030137509834106605065617857850522559052752233206446149607998879252894296561943774322621854940121903772730914197610630155185996562035490513119693786425340022512677205399065410895159899366455638165334752440401416529583304621707542329993219035987399528900076145861300327228589516679535130861449975087937210016033584873182213901988470489212887117236788717181197435474965468970198903272096323823709037226090017350373139425485684212124732730966710511429970287026516497798210025909160081670900887588564076631056260627477838762379993389099125820798163574456367096014430587529563883781978578259573862415764026873016304120763006373314920610880833646117783349748884206078766803052001789977385519132765308571073559157815199959030205061312398063478083092947682297055537914782720783149675403753928077272925359191150325928933855228659476450872747122950549986208793480367138116508321838244892831802266934521495260495621558074792084744694380865737254122588328587227916405821118342435005858933618725614308776509731377164535663663240558934152829562461752970582890651917026030302801904212940447229437923092822275192950138576857762478233107909851777868190149630589967868655271381509199447199641037122356484807050148104831776547307898000747110713060844814674461134829588320293359477489459559551462782983123547277997270907117886334989610730903211980791889595730186911960607599169082038984072339022618924105396252869258424378208061008728340995205055565007109994633373384898836627732766726399840242349567192653602485100178599712239043730219099652208982623825455402550963937196766350327977045948939760885605377217150878453211993177074463358990715526893675931331635675605241202629657101133845934411816783661534612731491862552677053448745086150956422110719451629845326720638673098106833834428389178221142388033858334248139205030627541237745585946833798985725135656431357575616169174075024563065906491031048269261813337416897533594334598768193379716375580363484908911121901344537635999658941169337492754921341978909268005059128909294837198980772084618644490951577168110236879525491152059916689359074533810688577970722242134610330879328840737481231495773517436155543647166183074155633365620050608013525371229554991995095052063545086205914161053143585619999638241384267225679109482381321278072201085758843649826393918966109355927731516114657198337026077792054344255829516035716061457624539348709368010217182146104640580276512285239130334186769526054322736356177541902169969008783572794519719976504324608732957073316951431527008455335924823761810873706824903030038515030566284641333057544621709709547862530378018207328254015618537402978267394850849753992682994782699910539454231817362611302976935993459503999049561342481484864262623825799387959931582787002776000851379493859765859830811455584964125802096843265088348143463271377619886580628492130872068236160937864682084167951075050338208957503072444971932691948879345667860859163550809814451301315608251796333829387696762872871213084877784096852790701332528392980353148850277256481888029302653469413389420177416667668662153451647867644620487285421101313036379257364918555393729723402582814198505582069076825201094243316743118277273996527143371065494762979523157941470544882656843036067464820659362915217359102015311363667483242661104735546330964695220148760655363196331319000259817308030299107849240230535363329392176586379316842741149146900734475490474908176355185989427075492117431104934716570240675114277886181403588465587594937184741365869515729695590182731719980953212943687363809402204229486248445056340000482512751424013039632955035898074527189642162406295190437375291958818784941654274833589917956483956804041574282570617523123499764631447355999093417469620873290164157706088166607254329441932134826437883530754399748424634533768248043273024324122247479734932670597423945918979907303225446745487802238686384621746496216292953703432168526976123834149097545338898701849721256718781559460269922943921690859773436674288225246573733465868612446613630145977974387374173125477400872366805717656306458745389764895848715568034235266888142634653934802666359827507778656016094001586021820901734410931845144606758021835310619807948385909851630081516476459619881796792529673513570661959342996748286917574411321151773405561525157909796832004740433784060730831428651609376874059028204475691946327008814347876215591312743134281497274011894145233425599517797482710661111353231383073354154593088419955241386445633508686539461250640126827854793361470408419484346891609113527435379573815139839658719717689513308245457000685143579223950013761950980848639849826457470890570030174706123111248166936680666814578438671396827282059902085575662115431588782555547347579191961277757588098249361014091322757683602384565050897026083283606710744420132230574217749978595120523617750766271207564924732827034488710135379545316807229509890039837139847901305717588603208872839713212432029452479186459321591496740803475335452822933301610808024677812470138881431168924682689842512598636517380661243058467957242994251007605820278529151630249743922428341114168216362972647285755460768510881667180137158343575551889754727365198774870051987017581520381330653301263042804679955970858974470279683424597685545357130519736018438738632192803348319236893650996911120537329638626771763485085610045251029976633604534956310309618354964575372003323664794160034436990381628224929617939395304800909902072242825896199638625776693629721570032066708941163125256358088349999207066419762574483487609862903528987007107320595593442728692743463012051940239567469645939153071040536974817889044507095666171153299756047992932898912914660471048395913680383555507385774245908591773898569158605321674617398259362166541144172409528336378717722215853197654625281372455833633125883425954165955126163050467068536660912979034180900905374909564031927115421068008644500214084285902047015112284487606885529696512786773168494054948260486904575463444324827017591280927469743303539678639066083023892940114038439940886807801504216045216468363804721530230852614142843998773431515511694543043177762867754855272534880124695372993827545444747538101761528299914761543372662455848588151430040093118429053514346829380274026869464139997236216238703999626946735889960494552362797742884140947635525201439452757965419528908928610499491845842997831894078881718868597371158361940589052327007930318549319028887054899517124766556280922935443601580157978674680035425857726628947541305264393333085010621283109787844520740986713244000566305336737583577618783809663767012180093888876082356017900241837081137515705843997000689111971472358477085643512105911937760502228541345827887441706993362575467575754543352690221512988773295511063095948567032401942909008892063803123259659361503646070476895529800589309301238276195902452727867784148349998079416690852650908676367195425738429434062226525679987021744001241712133314447882845083646499824486661837579161549020201332876831683527230545221224574670367714888186683627271793782263510352117078524030950222866929414312107832424367423243569726648099903076547575364600195641302063623055469633321222277569625604933900757320378721150155060690935472901628327935575478634356561756580999344812042447049021320318622063697776313793139509593790745273881167677348037254214477909829559758694616916623708314614282528737768244373839960740942760815180178051157191935848643625652628118669360100766808503786357917722239670468823465977345747024246875025046692768461570787246344982960809842769162287651425460311424899274556553993194789449897997186483906019682181343723826915291267198161611466407920226357442511506561379931333182276540273375828680190132373702018834412317503010161217604708094632781313660258329969007232519807948573466053138539851453166424737602416932337418480173083785166952859135975638050788930842876329474666023880556640285430101135521666234110458356835126752544647538035216942190904175889288836438220780929639371079402996953334012560378961202225645761788567728945326899798732144499514306774434734324189533497182599621640290362995271877640221353825624858760874379435485932390300877053850685252222639328380564585505265750596326798401717477621850164562638171009383990636677858587117595133593004833763269382500775347201393583787906259452004017120291267168138957408161221370827958727112155383707400938744096624847444721309924599535373352696557913162481302456741111310657050177528689066035676525248153143298068236520048792658227387631154645104804605272504984302861607169362840986617589486714664429279407130896279142112906173637224723170917880957369126146821502254721550955555298520079925753374133067215526398530987960242680127227908687165581398819725645411491653283778708722338225855307883516341109591408695331602226077526124768044200328743572923190081171823333964088892855892991131009820991714253096689176505207349060866231178726258998727171681303526462160951522010813914959806798316651461897525152919576190267982205277373540601010912967290135153071290355234481072714693162072824152022155856425238546022583485997674181240295305090705002668563651963552752865638141915493752812004836982996245799214169983149538988807689269947844585015064022149903206425957134412758010280733006880879815546006493297657718224140477480829027415009444715995929414227306591463687117834631933189374370449719386561119544531467007509558751272518586861610458119792202582943607843793271793680901182125672747613322768190219380023471822393315524956956514710400024539857517395315481643506882671036014867745318376408913092247213218673146962332629251175726869450045795651315879358874507311729798350404906698401601717603373035207058109671529225473738235703732878426876924675248069254061927402823268092791059016602577153876899387960691310507621800056921010263879194299828385528334819940052623041513539906048303781417637460465391618174338330035414020679560760774164561723935665586651524358805342181054351673581672329577713551797910827202448018036943354576954273922033876561660782575405008006440174658404798373313592361823883390361864510708240516124407504103310076712649881830702136357139216093089897762963037106767753646650829245169965584447254657071496862038027227087813203304373259718259287006774816773721262710576169057158532508218255846124058262130015506213946331011520095725063695716568172271946172007528680862286565841669365542367626999814949135847316948669596087601681394603274554883433975862769306219810456619670899322279292119943584153004513688456988376947386452627808987539096190410021908932403755353790099909232145036540628830566225983880754036002093506100832633236706764344490763395424473509842445268756684301970781847001211935206430625664176327526975190923468051776323158780701313470454456308116953689429332367113442148357771911179002289674610452701377901573537450513705259974598284775139802503052760932031222517323775260927205789284491623598313333499532952557213603998395603005651380076200364317459907510463111090589158110557377354148098570753984094188918502302675802997706044920708188972189800313866600641597721733985255593712836481318535065523630281321620510978935560578009022509007033303951031075021572124087928652952495780581311990903049451900582809390956855851969313724218809946409184133300864633448531788721114618945483434454767497211401338538026677607389669362629565583976767683299610444676972312244271368757264604030093184616681048042922799099284386124384104359152112468096848851779559266020251873672988868342945909261476894363873692187177553888545396382835607802501941094817415927443427234619468395299480126406358314108017782064864939010981416901824441680203405838598922289999939132114399157394727936492908402450969310980885497134841818922769047257225579569102389775074581507449689715077010750438803933800525491878544228364404968246288494142386908928454604816811439884062628416672881828514293813132227118032428129169171388114247851279788952137000578990426076207351265864076967995700241001424469192260810007084175869241035988475609683176519569579969455547255626528941022706203453262173536851204905766984202988221855160866924670292916840942965485876418873921826928434190749112875297361805583224616548387222806415922251365760866296704438354387358634103702022225784591703005725085665461041037330985230553064016180733010013877276042211243351738670947386692024260591491578907604011210521950579939778587837529038801122223528233473882348866017167484770707719700779231861830004824002151473810156297290059837281657520829925470947742293766881620760644049024226837040042658388317192270500908278240054867050858686414236490124293786602057625238725305550771119878792287457005014786486580343619133903205490570713134416767731641219051710279374166021557990094218731657907803060666374831572773294566184351366818577566359868140600059151178546404099091377786830653691356247163852194661278802659201530427940020431502445666885927899029376438263755949524207607492039516823092371427942464727824054152088614762090836274248211569560933173418728850848717282249008922267218078434007538790553622394248161526587148543223996496665581721845063444579891829989162862471238224765565608799588248046640016060662093224962023494762246658324222167076618333757805219159060133885749276623621903115517919080400069686879778641134487249458023105565924952348399316476803194511572293392071291309874813695188594994337752975557933499981131193858361713917795471028044531680418954453595625157165895395156045953235355407607526511183479863020099114553862956874977763281176028832761252773330453194990604610525849423002065674132484015102302207107408823198566382822016853864543122688972324655512478845497576346566429468757904564346026580218427488328567449612090848618026019558885349890217439789066266433527096311510492008587749324703230792403463124839113275293072950653182018570990278889945538026456553806920630499114350049398755878309028625242576777257336572614405562379393316028924317427923545089005261525621170782671516976095724024889920234375871537530895151741635379650358035673708684225402094822662007996459866246882124453474316956199187717742551799049849035772725498088446534595957395883985563527130659639374311834331117648762315028906060628807493193718412784369857979807878580653436795988951627204916849042203605907854153356552016025769731505854467056234068284284220351754282860733819885271355481380307708522799395297202704593822453462226124977694441322537243095147317334537389312348583540755628512754653926855930307547715680813513267425739439150573882272840965740803203650818719904545757792710284278426742562355078071810879781978358229379857493661738669154803942637122083445876813921010540089851667611730669287782613765788667240623395849542500362109848774934351967749127203068187337661716535248798715741760818278262922951104442870607927440719951615034102821260521282737051711691908185624007156367863987282192000221724806483846449748583819439862827850920456244498140281905293489424219799513960984304645127348729621148661576595189337995647400086534196491341220619794296737162698918336303718481640632301177411006573796666632825492290573521763562123465758267365924836147609346770691496896919303712728595314093371341531840937675650489482681748134042243443085786507596387457205832718639158497474764197049060163041313524715110151638375110801078619953713125597285657690863177358143780629251811885404359941328685804006632873525484181651990187227157253577214176446773467170983899298133831416120491476404181837724506932829270481943340478819261328178505142700683065934293699642655481810688187108059281692675697208125009222471034781811227992279577989929094335547928432468342272878114597274795213222005339657358068084027001497860130764730920701934022299596481911297462287737115451929318122548761883567479499701718891207472918405050191993218802728259942385475559660305624982493159765376595247273622156866335270072442336718313170413611749559770976368123955672305610138213482954581099515679151373745986445522316702146382450500302737601783557206610157879751810848905184730326934425649544209146052870421730463334686333391723114605949854990867654015845958668631797478135932564162781747675325110765002077553372074920037471915308174246588812180873148522234506367321304054137706105576474048250332374835019076681631977508035155184351633514084165629124548596321032287879720393674736003680200304988695527207426818747829211483461216637020612607306941315398706409431450730865092993791990766935501281315066244564396091087686359739077837512853898072344619086197196309750104145099016342843829365655997752407583832122852988808917385272459283247411294270791213877699189837590227685735897286572924499609122947424781764033940204677931078207612407185562795603157986915861885687135566821936342055829381950023997727525360117336585634557216035091225217236269502911039089848624300139050102591624471361351867414589679539030693874742800391954381203421132342228633304714082417495610869848135150957215240384388973539269988989379224470182383221937353981965305588515225182677059146548406219635410156970639410803016662232549213290858324316813586519589225975865076993495864224407055690462363899536608533954172153797420174800297555649816572087189854380246247745448629557169560528032699489557923328148541942258070106987915403950038287716779945059622910992832781256686502140807535665366885206762772519406396143876114021621669778382361245023824091116092294254060477355834287190770816695318761592390426144525590309790359531829766515954866885165167945907789768461924841221451711553196929211001618063214448273532543595728135009372071581957205454261887315709046600059877117663930191204267299124772294896111736810303242190518099350118849675212901863802101501917083545856364684920792644667144464710366657165365718560815058784228095437727216342545571793445375244148201563478067575257125553916032795931768718247496366998466439313540997991870328604255224197833002151786644155484157158035737866930011546635768349448781438076758153589107858803871050333285012485284800873464201522341133713751687272783316163438246923588598462041578852204339243981085869965330684375229525207166256608915455329134592246928309281723257662235228060718145520807029027342595493609072535299160298585130552333898785374636238441026686500989096881026163090814462410580922320051479863808965412937711194796414377698579266242301373248667241559231592392989599993097218089866688273696963565090584261503728436132091770131420229009279349363357020542726818882930715604980717560261896238857432253235411070119093036345256467520322982412567742868953300408088558073022587184625805484514612902957714948504181474422885384908211400375283147307881695632528166372668742295884297240546498006228700902020643189266171359197811428855767403379322892676847322786831789785909571816360935980292106900837019006844839716317630027092031990256635163097056265988961128555671236851515274102853274801009771228795494709293757878179961519096748097480265811680961478202808897029094634873594673322602038757288550061302238876458226480650928763054166530883276584007548711860370557308313717227151950547862741312717047275258115781978404876549452338899316297530177836552848723152688588281808640973809022991518451847114778937063381338778820327476838537788500567143111407304274440099778490966718421586858328653203573475991465961836648296452679813658983085475273366209066924975604875598631286152851102787711995732042453347301323153467410491708633807792821992733812327365401112724193896714253226856384687654729259624049708362035370789871104643045869555359019044685999936491147145917864181814911431308548488824477731050642544277676562782572668852272043051429066296097240348702592879934606930928107642472921336813477576419395100463822508435591976263693710182246739079867148112670447101776367525743391674275641909776235230063104770440425862634758011506812644549268693528740751415215617815216125414552727284740644241694382054979421634322692926692804502810620185425232353969123554445996998467915749554312241373645791541689953931574060111369410060802502750356774610124492109745517119590920960091799223126599742500876819034840482829550119373402126323078184128686754445071596483547661668911617963893881542844124560766641652476929982470078530585840639292735640999356300136990403787218138488483719227252535439508814596942949509626844723147474018094230840656256727074036496213291455470397951279107864399842498396445806638280389843806364557242185428254891976787318271589356824649247897593720525697646836936773571803911277954265552656751055945479299444561290972242151823422207721994713609317703375224099871494337779379052842916377929186897734483273626950389816256325543794218229697864345942834976038417448334663966086185008687453346301956039409034557561924451831298563335790787491563112611306135319582114003808420683961816402967185932144708133868059564589585459060612921708488679308621408458024738114671012422219817552390381318176662803398126237151845220444011221898060000353635208329086763188629999386306113343932995931339782983437863129241389247002163415224129700579151828521535239474458890126069725222685804984779134745939003324834043259558264467575249677737358728576032973278908766077235062081503413845619411147617377360120243546397219069205602131902544883929854623741196099089721731665911307707851443252701294347512170111078170490476141475246246662743909584926082320414738330092928866407126213635595914663004583072117996677175952246712543656438296034558975599054155361495193460327697778677442119385483551791890127038944691955936911273886850658667813911358308919662335134038951046608277740876999650818442590780006583763427669216435061637755809592659744217863580079631337972680922542346043210378660000507984740264035146688432176186576244284730801603104839719807738401532591362757847529226620274436450037903805615809061156253987992081915729314777094672390789489670350275478393885996965403893535906915734470792165027178499969988403429250873624869486708745758881309003046802256425707626892656280061132512927814974807923589644224073139022386517278673508344464985081777160865417452412867643008480802891242653695022969219676522966405708370007500457987083263898420084957957041000323507067253289982755256766882309374261002433114238530362189727839541636004539326803366167739454573142691172409469578192555088230255051514532873970089637203707527338164759315653444500202178341259979279300411728780802828869738297978846700683400060194493415011117280161790431280541241710048161547995313195553749021727785849239719707338370730887163791259297141482756548669492445231897625614013296417316399896409426271521926415559455719648773925219190398336387072449855763544570577035052784338258406242199992292216922109813867642598813284356994260959419669652659733122485286288372846034694069160847251189692345684808320924607835317047955825826575312401642908534179602382068394308145468349372977846114452917187943792515705247976328145886130361017295901350838702104828553899987316360006559085164641759329937093349652363071663950372385254704415890984226626852947067353152219949654843771592273380224271619534083611981886279852291081234353429381042368393561732331602492018779825621050215093823315409539183180281688220409315354105868076932696553624001326688862109766196751869968192479146753521318174678130842843999528013880342770494408020581376800280083009638441015189573759447159925103057865234426876299996229674610939793264009062890428503347320240692955435006736181039744612450983400938524745659219141924415326147221142959880521053735069161914165806708217796407587597687713637973686841743840924016955075380646580070924020454452754425369381014718273487316658372038542767042242704502245370545827951779825767497170476084435211978078102313097148665878744632483116868362933910677464170135612022657657984057781889063755576792302602775455760780643073352127186326850040686182143375750544686598394591647867900287663891407504856197289317579616424855586163379597268944428921512959336542718359619972088498514881394733322677314512095872738924682375557681727216211151068835606692467183616533941385662855594241435436306448802750863095270343482852530197718647931435677333989886050113138124888203516395385245994186885590523435844661184032721735615700506457579911411987780141990418691152844050284471216302282137297598227052625027478838498685653891984835625077821439668952083865657069571522734510771146469861776660247927611465138234788511909527336870307152264218462434762628268025082422794746880823117370000369034785444929555058672895111947254814709614641678378732060584980203889851549865493305398878206599253272167955936203387744134707068507535317147409989217622399514304316440894276145274845852278841615624279319356060703552004044389150229386064239991022204220909326301525853178452822982712102023409474536259861629557654691471652554523879026736719442580017484432376050607799247953516715407820153344492839463382000054638383526054207210583089685210478261335893355344650565929171630869273290937788088859935078098307937649623477368739622459903252386945250658389106290975496401762653008395047840087819052529096749332062899933590246972157268676287183955359573024182776396513220369528571442369557271166239957228258703418058533679937720015333822719430981769732211845255086204476575956065898870954182687772749260924928696703388621393681844028478511644293177447364956381028472635398014719115780443520250760523861112249486248466519289111749234580983238674808694643992975810687981307459496338753622615010878178546435426638342361637105751445456852551498053039320748073141403204886165156111592750213074010515921894739116467507362944392441648424184723755947883213568026989055658430660543019314296851522356123569430138766510330230656253399839508919624027729339287063632150236384525397589635649423170576861710020569049778893375826538316147454357568631760642112735830124520314574172616581404871943634775774675281205450168725530899822164605169211888657739389955220588521359125249156378684281863133907866599981852203923995003095315862594088468239876457244952689261947997541135246273920150008190629244358931950923140603247634711980697603982505671002578411450478687287165795437726276982551760126930833809478871347857235004391601299241449986604895382825132910549813036253084891288686798326925783726334703274823770456883085521158897599518339828588378750016427641463062428272100067526793418740722947415025682427628290985981750449559259378432505596348782988046585236612492253167194721779667931253515557419204901933130961207363263785639773570003709730397929297788687933136346663649270063737180970056196050652890830661568715115178011373897523865566899339182432348518552579304050126027920303566633984400521075989536935228547570189197015890775876707746298336793018825963366295681006910186648517460024991809417587097271432980922973211950014085750792378569769122057181399007819135401841588557457547540149461289340255400124693629170092799455604795000321837923224964385888347859661961077695114700301699346705855166789122668831147529556906954605946123695596982824797100744569820270367193229495524368403797525451208621228110148492470051945138705606874209651321587951901507691709861842650781037713104672383713375862454967118959832399589118678013061599327683060006568878142910008793189874020962022086012539419457605758730468025119023093471423446891813682951393774284691545944037386407533729006471991615165396550586225775032973328553581796051087184418686801290416643532441557872908035660357698621346724657438614569207131031024502387506988770309446808034693448150376596872087729555227701081467482197209065681233420703974834016956356186415706778282256645220800999761113995504830936103555805266394397143980058605597838174387415725536736309179761740553647056044566827142591296457078500343248703285111219896492242977474866134081014621673062988779096878014310313342287799425852999649988829061016413944304557243311755553089640974536540841856176705894932352085595919951835170197790765891741501277303865836865611245420326504150483451869783348190642093854699780407124072835858740164594536288710798284972983336903587378063201443512773154947187126112567278729809916510897893063160912056612164674261667461003559387168499941217779481578914885880147444701967317616277103899212006048353837200677895109560596445105566917549609631463262097267256542919268728663353866227415162595117020267467605802484315124867459816659998734530915021568572720341591864645216584719694414353531068831066355211741561987270140083021535444178811119071319618725888310888481500804100664104331436861782295471235892371489773737177793968529977229936898820443458095937470798744925093990913137387147413387446947788579250941781698260949911210746404034207872031587597585515729122800040325501168463897776497129032392845914070594780441580677354833154666682345072157017061416378202870556288223462954356732211292787883905065997448842292157971203392142012715745536085512638575460297028423058390151090998848763974993786236649026299527800059747749843929481747952287970831922699048371625499155049163857832278278062937433606908222356870911463555356539461947685086728471170052610105066493045398352151256540128722056208806380908157419362208755977059452525997969534025744543457908454378277048553534181769915538410147857916621831477263190494650652739323369721491554424443791595911976334532502877206943099552263571940285900306689599922484922051736329986955948513013692437545922606750392837504714405277368618099028458609186325492457892318040188324349778841026715988114598413464568842208178035746572203278939845323112676734205225729462342584638598228268034755824691292668040776755387828502609704664201521149302049311784522703737272504264680900140005751260123760709540718375526909251553872598301773898102103358361161082764577269367790953810748178380620537369613265512760129069262585120058439357049668115365498936046998502959300874811546837291794569858057800684743633925085214605151201085104808128120008853706868168595705076667603540769700776882749850043763674578759513783505350032702650686888078720766150713737471445109236039087262331366360272048662245877994093891720347832005393934312919297225251182245614478316148898890493720066038915642250142325659325439831201592175920690374492038549014824482883733053847654724875951272556632901889062900646514401603506584483109214980458159090814227908584191429049486980713472951880833724779001796934035625540933780207000413931899673390857168989354105662221242954063652344070100625671216109234490577561233803373765876719375170471582697555909719573751511896555106236933767654353270284419574277110511409196235673921611763059365938173881930161686187461319593341750327613378712568685052438549651849517229850301807307972876740446031378195894108413482587373806849386870375273438462122563298406534123149453879205873689317436114745147182073281748608716304117588794137651777911623729404866880164138199349268147950868855682143007664330657749014743202735095177843239702569257138224840852436694350513441711308687255777417123844705523296128541091243865827251135829281437117652137894955639613872230467960057117608930477724849468985611908745024535877992741454460607288039983472088167253645216592947946664795807765329417409544549391178865245822150057551052140025149923502878654461241372111938608701170108789938284945975507915001706912286610486722947967449710352570216474683914382736390066059050364557541307788217158978323542701609203578775954258511807139434340828455127382758356319543294804622571265592615237460440219696470658358629694714190220998066420183410267063141876699910387134299309874778491614187264853897320316273362879573989335975848229651208352276515217906503116772979542700225600246468538089511184649553565140474479920116506490879189498756659211358545486179836923533550721674850099807442531766564182611102378168339076679542289393740370132399299240426907019935171344981332915405707405256140620033714022917605352710593133817140811212930940705154247847794171734836904942281580077998634413762626059793440015932195526507837503857457751207034912555611892396015449905394069110879851649475510566810129070692831827487311063497204698155616766197917789535893017306199358767736384853165502190303186770929824289164136093921074863476926132079995030623153584765419842389116415337774979186612236469191636923165340576898474705364257051315983352433509121337680905130453311045191466838017335864180059442983393343731242142378640303006699829055941670953166808691667235959143562689200374473607146418138665213935571772738744417937943881309682253561529088477912503368122181104169737457741254486858861310276322736880152433557412473789951252765535363238832586090966511885470247697504781439258310728738591522440883569433647392006314170373980291989389724182305193082441603668088664508285268926863539855046167001501359771461569018503637933935317027336961615977053415945152208174114147644309855780419378294288061358953186185964426504157019724659129624174802905880910718707488376252758733495413014140396367223465793893316154972480103835903035458320157441272429299041095800767371431488204710759166695293367278755002220469723857146393691312773061832271282922500277969554107060718916734930500132571296943411047228567377454216286477760370278207084224655860851796179824699979158766308726653414611212694076359306707214435864251876475136099792104631035238765952078606453259586364558127130971920438628806426328733628631824932775607231599787263195962199580839498162873677194869589573108027441526694918326492795672899291671347297178261390023366675463573924575819891450909150234778133018756521586312962133579703391206859405998454020487554411358389864201966790079071385783443372103194361413431890003782969104596015795126132489688888345848768009855156742979498691571855618080595561212094978705873990824062698368080911057778973868283966879989008023297398160237826484678191239193002402324281077991443899718366140865896431862109752264496760419839812154012484441914925429869116106794297632086806112606718986963356797760882000868549114537118849003333238306620273492019577491684113488145945698338647151987206640642327359365095628994848182009392015367970463312880742902736209095383735465501061743977692545638539639644338560641224582644623375276201613893609617493719702547398652927962429122614668769216572219034447384184666464172132505807382808857369405927369149107629027090382534053377996102010462743823398633939405867920747727459429627368598624859587261629874459835007130468245262757683469950365285438377675573330003361217337786779579072250022532141043200460733922345000642081295718493372383539968798613763005723055943879298775634112030836875860932902819228978859910300689498195970062998393649572656814796487807906233173092325938848894774224397770204921439191397761911210244816863135606940399368479175792453663715336956013846703847975329653797519081995528946095884607532343248002551814690373830786528403688820936109939679659935058922349407848469060570423883790719280213864399133209040744995011107388139507157655302967027386197909744331446508355142817374634366844765630329438239005154467720124016342080418843089803837963788966713907926165992940227622349870751101419078238553722386522799564437214494178243201671419732666144850362028900440995078864569542158743116160819054777478093928838108387473251981384800318567262771992024717327471261344533047661263928006978412528961765808955750565202661607860654749782228067512058647638219829039748741087357329533246236678999154961594519048488844266750803072168760269954646634864076619867734860802258204717010737846615818673721215279140484295581314486510650954245797243708760314036643522986911594727161128345473818731730522432462886007748581168216747346048141680484303396439231934318773087142041453513450664465078695515384228556533417747560837588177962722031326290233475962605344723675653106128054653396201682319779941672466991579787366150153476451681235565444693880372496455456770380761047943229583894381694746973050506581771339509126495456468574040730558912189214591779274295055351037614589310222237079823088542912133020921865012753023781184681140886445189482409216805548969562694580698123771949196230374044601785347905417148945792645173632861872631039303962168704040345762539297873559444134506578273161020599889497787484749825255105406169029020791498496550510365076259269360096253744210035755162454707472525628115736043373050946623129981409092203194767405713663005505223628112835441200084024456453694155818295930966440857745341743580904312835409685640156016908962102646271724139097967562994412494709376403104980061914318432111967661634248848952648549645269422911185312122815889129337217806756296598766549400635039610497694572235400923528623344566701482660254733659634409606201164886195131434284522790832766639736904809723327435956136832380955604163820948224499507389525703515173633594138156681358018984475829447663546172753294283913801992849828276176315460283366185253143438477774148413360244324631404090783710567800371238265665447725623042515580077534439150077204497658529324132546148108442184233506640231279012219681547347946895792209627084098070471311910324437631432284275195141848571752711203606016809120205590158694988154267838266821185354996000141681261990760406629006658502025940088952414351359475674848475579647224011847951239693912781053165029598822248608237782727896209532527845261259112411941499452835100840207099714707045085944431821027392314068882489023538471323695788768800896418598743743855864222712356422333813383888770984898253857853703947484951101061771847111870031932616057193725457083209917313007128579221076774520105947722972473758341400105111780261583438257700666550894284015809146874834817594409552846387527014025418889077425221910004534380449873418571087629303084512662958064525976585577007773628714553962934466164176193511853666642201882196213888734613927610538712765146102361419506580111708786895435653110583602686577993435346437465191076657331209934335420930660029543962208013817199828150350809269418709347555976851249972911157354427086693537377639456825036809728746004823451286292604905947326180434169815972347652643900269696342169380417025175014885576526240436751985171190987324121907435002273638113033751322318538658736072647257801326054967740532609992645085928597346472405048414084634214353989064286010113092646254952282911070262646906504746377909978724217977144732167517569631906522984035614731892602645875902605082008771351159828894185588391569392103820999212488276904794634649266536014513086777169534359684549132808752454699574698725783469535581082028937126416176923703583375479286463568800457111984392419468471850076227436232777947902337563275554999543527904849918800956456536038923475547223481829797191275125705020810093414434920923189189767621542518254211327326452955270996284607741846611755678296037664444626824984322922210910334461464634194036040934316578122238610646954623449933004349370759934762100700574893641370599207503357674808637501054247981130616173712023822426233883783739831899798105962036000606457270171085700540977810997487806094387198184012431505075568386647660717217732822557057025291077865564090371606315443526985590120386681517399767949459560777999744225143949162327449217362804220708057081309069311928238528135650604386378570807047414683933331912256096863714809743903990106943079637649145597263664664479588901976515955732482807523930136448839976667436205558369251698536320373170463320622009019045640888790488194428584726358287169814361012594966760540335278917871688074646900323148361922204266511599827310675473897471522505498450480903971702223454977024297699257458967413855203489165559999804718153599989210445472836989593014250166314084462131785829238435747762622280797720638546201580837826341333178408308701255945997660222219140753883408105736274698923733701512131552268101442635500896807794793370683648080774931685595060947615431009615817264204001596714800264164202411903421342175328518297861488731381257547369498007449144106812996322068469422588050110737186732214604010053137481515483006620450270388295884148552057704366842421797348262322608941907110075046498736285875880950491314774434431093604057488699572076393090869301500962468256837259439029251537815105736360794746863231845464799036428016861314205808218941066499284267257766389430203531280121970458121665662056444300385912295183719883585386291792819752730894372084789969110132453288830119645798325678538756231021324547350280216997757828159708611933137777668677773380065825651329206567046074007717714300615359437303892032563395232301837504771704320386525766065089146166701538427383780639841526215103259792487131713267273270518991109769623600374063727603996744630401923410569331354438499912841398261845534333546618723891037197176264351942594250720869121184503501884853927556379266893374611060046048242757380456391993007326220325137436397802334431781505374936172770678116008277331722858947291551666642265341321872978615679698656682609374273477247471467431622297278570520058556887165967320199131339360057430428559442647672302340869903929288124901340390510667568191311935068278208962989061436173974507238903108859233402821271647485739810228263237044612224031480029420392022386501008241041904668973736986370726389078879260147119881413857029976888882695879089219714418988300286788730106425565693709100664792732069858014718817076844781784793210663805895881665818840687965901060348614244849823703197682670503067480106720834378744777026390924299160313405911005078277387937175205792420643881039239177352429293688170840616427927353394721843238650368629650080997157905293645004162750480445445960598051181161812030816828827347250342706673959803880966789493285286983047090899461236668345903684482065458869998904398163891105227539149251680257076300207225494228152340256837728455639042431177247699836349941293512761583474339213491037286348404487170872574911765369827434716963713331605990744923700711621575200934183759166501253651757274557802436723770561540276834178326334224830778143761800714605380375808378077382712944173974349586970302050540476686626782362291883320229953711995536221096313828622774620420037040020027689202245085941887543635870780174999176124300701349140901077542912850706888340514000260894000659036695932704767185550340845126037590915312821805411041927721010666734477576876794462527011233061042034268388683410761696189909816489317473811978526170016641739146967602814298530292099364323107991361934565345930594386732264925558624669495109703061468580939043434849280171585352117720414828556470667190374958793328792448250571428653179872905212944725138507090537362070460074306637188855400727407431302727487325958720823637985357696611095936367819324235063777277523052527480597548541253583072311482366684427187145937213175430108764356341066198549723382869098081925999967836134583171498790570190155528721472426551040919146837966064584894346703348354904272347934411476011721846351412045054475719379554798098223647039210749330492885514447538868970830387008642699706995533064345017561286197393386762114622182375924714389932025503917334061242880570873096986354315520402052412957337551184306943497182991252248559406532121745864843148264727157309190643747108364899007680079175279466486475989973578068164441360876406619526369971140967568236287945091291848814427000424448281028365570026733824846860179645923124750220658223434990322366236715725269225613908004614760410864996982919896528151489755709325356211905447566503694276990213868898652336802102914335672489995985661390979246715125008400686301846589997899596110656268975070633913683706331217137086182076870262157492088658522986457257340988896078307434761294508169423682993510421716405694085390486665482930546940292125285078206514139003922923179974390728320751076140563937929281963746746094158984885426343808751736591946436002595724139212638572073592538017542982754817535866060385355988578507907651538295459128373552218863898719798723549451174229301897208456696525581875244009718936146977064444107693425144976656278809787421520489369520786314261393335941508232529887869000208954170053942505445913599532194821881148950594577399635711352325537174050176485966672705948404239089493922021400904143737411260181101162778674880547194688258588566422719829142098099013723139922978502593007781112110952907171846727472577880751796765425509154825762998562749424394275494274555995381576327553306534639181824999686615442246676113495534430045839048833910853254981517487356273670644408161493210750803121790242566642472898886213411477463642883635229397633642089916130292444957787993821535465038018116993196388869253319782556150629100106688012048415040582077087250371144514118279850460986718876129825162841065870666800542878204462546653401850022840230812278893973909184692046002114954019306385659152498436743650753042451089886146609433860431509445937008213707121837417551443026542141046513333621859502437661871106369558205272462434054493098353595060439220370033128746227387140092915281821387631092113168958776090911675867032423214332520787549709805379067840847283734022060961101742375714587094940990119518504713853780749189729280638431663930455993767893295559858178342149877886795851804635270337080805811947793274281734802556798883318536488451376807892796720733716602241042377698381752057346442049445795837013540678721962317869782019260402059601558231913210879755007176802434231525021703301014943942126059202762961840085218896309078451232304844458750861139528921782277512129082143034643150506745244699860474150660675255522447601380375146099741542347421083178695123444891964539130439358376266312136756380740527725431839940507520546529427332259361391492465046555894090421180929528798163134791574437496712076909564510498913159308042002584353077848527366162210882957300609730871088507063341992282754792465731046808988632066578162055753183925232662980063053048237993698457595887086337432123213754466149496691225975798672322756746797049669673020376875945350858564619372260564944645879398934268958683242756463861530645775432799238005850369924514468515506369993850508805527597198153488732551549596358657882413630870386930546597775282643252431164980256213550471278794586568157664555400913276699185006463253074359492272871088781927868967632966669457600053260658525004187546736468866776384865263271099783856910045887781556080466472009606330655124709301709315156690375703533412445766746149648249102083871143704649895017205618035347430469170141061217435058246287484680899220599314816909513293730000423438475318493237635495220083283083294559133022513343582948562502916064075442135725287470700953083857110677921519345497190861160049472218780165068150389554938780782937261690233413438861942225236553488989009643749146237444217442416769154557214213465006295265192016211517075870721122750359692411393373632342139966600286935944048805855848276330027681290335004675505621008521626998643106654575743463974488155893672210153095751391757728076803269773136861290401650885872689034271093727595431675966079091637771862875867240987028956287864216649535253922351716849167988330882085205516594873450117000158130738861040455483383593665731989806567094611792820527835448410147095909579333254187372462109675041625113921382403153210208500360045936892100040781858266476394552684214273380702904005262042022087642974604814327444673259008260421772945123348076436732723553752718430136732912391994479992738783827378880548370905419659966669337095171388121384203235120254535116981679763239489568109354173650528148877883159748604490024200437897132826071992681011883732567672524885573504445027083413892881737988237116498581284415871430635624474207219385466379332958619373627952429043984354233810924929598357858616297760996348843614457459936469376945776796893178307866765265937510949971827314511018248104919901923798997635999065833968895898840593868581548220352750839738125839537186377422617071084783506613047255232438709620163469125398424348618441154548838283525241796773405828739228290004152884122574567242565679550520272341811233135929390187058296203667679937445985604592907205528275805547889004174962011673983372539481190796559506518631537947020492660852379240394433977527627991649679845887393685657213557137980508749529061754230253970116759600294040006894681714588993026070947118842269169754087751842080992999945829909988006936921324429626632429578974357478270190750264276676539502734390514040869596983064671038708778082004269836992780322656998925740981641606444549301535112536101930153394200065269732661183899455034707862857735512340383176325881543696041609478976757364630815317355250005246556719954774568001147752919813189966022100366213037409481500721982177664503472080358984155784215920171752438528624732640669906216883710961347580582935742343266753964013507569991538141100328256786010828416802019047498939495755145818485621533889038204314655033455587334866772655120722852372115451806227352097238534894722432513402033203598302314270273634333598239892887981684046614043742825595762251726816499921825917790424933665575913427577240620156221344261475368454712242314370575837231244674008312737411645752377526033075160918513102044802625621992716951684175847086682308663607869604387928310415788477346861275422094855878712523209230616603930516228345428492030997671257989785876646926146638485717567178261262169926336995891293151211815086589890166164390991624996574289603801762200329508181614214916736600472672207101638552347133287664187419597769609317790385752019166897655332505958522264848788339904415183966719354778388313578860852486433662709438470266523922301085859361982885326854930449661295302018396636204245085847921611547789672512488888746669848317100387168063021221214801135111828770125722496318273804342780857305549523771894646409200620369716632295291001676202096564525255114738499486337376525007334759367563014934899461744283524044812908193477005791154875044018602637302758983930883136534060682394755581432695046533133329935561423425314393466803485880948945716042471207832712060440676754446620790174580519136151247798686165157416199361232398260756664860985478756501189462717819044002043842772164458749933749172860772072081581705950488834295458917775539041934684148234550518662327786401100061158196420582090204023769479512207399373947298974471415797189307886564194341998397984127200985225023605542133173560147704335891196431987243295897850024267748806558272845185510745999619458472725153197691163409444088027106784577406469302802006871293693736021257123388536293652520184855954538693151541806617671916249961526802762737949321671845571774337886623618441133622343466156908025938129893767226875313726196713472399401638373813677175467186544073357507467829122968499272293195717888438868286605876532268066262941585534843139207845032181236104452010095691495749231276094756059853965164027510883049723322628855476914218287169220414988666371123567817466489538446208042371650059904449202605517011110100932899872316092391332946108880977454586751369216982138987383038571249415402996791304550913176527087521835256715082863017014225733093434247688125834118037321416740714818111101806642768289427615183984061794256426263222482314211798955752807897854473054832855647103556068370486066668094904374703134406982791816649901985532274369580191328868584359272010638892333325800774637343185645223677452064329083246653701180540274094843036563385539215008762969132075599548785477337540970904594545152453436662066524137797637286440416258627506437640717318384649773030788847880923941597127383438276939723365498284359770919296033290129939197054170236280003883248895792180461121369583641111626323586151140931173847007147422161947773954831679267882226864126726069300847301059504451176775350882402624862013491261423332111714998017850977701653967824363923832565407493492002111980044698763155999254842192041062226374592153152418203431872902257918535189811522847901287000501708354480452580890730616256524927048115814969627534205980193635336605638598801907020735316738850490207350048005888721491029469039656802735291344053193012337287645161102743624594390512668293502150031859273603585862613819978282246768169557242528168311295267162505192089885704417308418217944885961745574341871829236706630801957259216605454716343876048872953545244258335831783966082049255681688402617001821230236071764828725053698107437325063183448603416459188804941095407468790061488756249057763843765449361694473420001256028516611612615334072343251692939360396566361704480949893933701555024528437823300198009312861615396338913669103046065542699709832690616539568707636572048706040203891001709552496549407353233912227535515185657186755945957920508356852001247810010046317336655241356073386322166220051849506181958050516497654220119173221347800563721012427366904420021304753043310564970216654482873491108284855988793752053016000375466962038849399644433929429534693248711560703792046193006845609367189554265510702969632777235337006601136857570592265746165704236293976682041493145013315529234044089663117775109887053242119503043502268562461595560765534427101436309829578597241440096078256318569389592996747840384887398826309420094914570687853858837616333348023731667213767764946486095869747400477107958735750338179785392658848205563672381584331334028792907532404175766701195310577898985102519974486138885707470334716339228672644514121473679174235263450932660094452151798678122130960975009153477095586666160393652348220183401459909065386279898064463048645747572660319673646042480573990064248589865155160087045195703875860209419813993120833489155715325926563976132801136330335976334981856291112347584641798468896977353240977362874038891023171428384582031302495086522979933358276353407615489228803784980397247287445768578314437152133446565901736865273045813769866941130570442483476604242761560540376053091241048175865522210689815984170001229993989820044232814081870856264152371904063457986662514876595738652331035113139098549834834137266744289206892316241483481562287009654768645088761995677325474867015360029738094378481503482773944358893101554347155878644963630496233681086434669346662341823123108966115581107339030297229995413376667253523516723175636478691175169492141137998691796660089961333269228913529698206116035649530752161270413263336217941954699911060546611872896286504535705928026050649845120050804563195409353709448886975244228414333137579232157231711875799912286813212840667067418665261931374715265731073185521772881969577228028940190289320253742177158898504462772129332249702815141004176575884450501006887137069800963998920009934561437171714934136836588433780962023206089351941255926646272359994100149849257072919068565797185443892142033270629984889480141073136392830167050764760144805910367402874473141708550240642281044077029324628377115800611607320344969670431779221002811022286190025925275140726132375152911528767646390518452660611822130664292788703922869333025885806504649270325225434794577707007607480486460876799731340481311000776826571814754319641008409089158628884107102378681465275552537610921923409757729423069572562739463291778648637963781535376739605081535961818336700678390239568615800245501031898411925656530214272247831457533391933862995764618071282020826084938741155855356046177822821698634553061435530204311556300600120766968221258225226523418496514214085347318645185329963525072170111969819279567792641885888066188145693199571890418324028475715546706217193071591235175088843748500971030582898980105140378022996190600303412395574118982139518756921908780923507256552572876262757940597226372331676192809409030718834975021333635553730620383805084806050928729155162402226158879831288360999989182571848743283071284267586906362348276190088305031620767591021228027550147762881794473992678899055356595256509063377728080701229323630682169683435883409333639977445825431306549301940595889276405112198052927079609016306982902416911291899689751083506550296315694527448475197809782324180407407885327285716989746572052764291342486476275346181559977013077714840035489714789708461728509746495285310024029882549692800233050256792740013768996595436629862170781530373049694379772135322586351868697865380334441414212326884299402752422363973176109177415334181010143646152947601179075824113683294795315887386179402636418434406629146389643877414805235274295377775282116845218184831447316085936831401343923635919077986847495040492752499279857068498653597559172647222032229718991935642393809464739792722571563388940056987622326218370679333919388236073146544154635396189440222995917715673252296633831348141617662146655633312872236112734548612915858103694664464937088800137902962322810488008987243176858053203168847453301967394550979354100310876164196272845232369039352585685410368746327500295893631662459139146808213759340855196113399401138322599778269723542689947882780237705117459082692617305506893949285859562471977141030236121584581649747275890067250692425542468261869110360590498244012119458629227462486290527293953992179966162000679613091711429984433033735260069625355899375277141265149998591455583877418015247847528197503454350633558092695271286222158377617988535591102808444771998454862921937826247426877350748920626426429313756028959453537701209977551264018585065018132923856247092741486485403490127195400679135619930956583881814602397537159469989602886144253888755562465003593381581125458667084082142651131085416169689190975907427894257648257556988930187324018580701018661603296262211517671239667042468620265647933409135159729208072878311545128027828643017374426398826579097723897409895984240247252411700400671959410353326881417295524354136607128987415150431036713630258028949346466275236813633428080378002007100270403151204454676566067328993527176387568137393523688967917365453923438741076976743320763504602359921556027553690246591497034595333989248733746205667627783331887607215008195827352721166202132741352904395034918862184551385723822224193929356786235078813934384387550366204317110908126201712382255563004523871329809146033031148287566181247526751572349286192108620782975719333873053104937681579418328952745004022644109113688149650252985929798222458229078668338856311790811896456339014188226240594318356635493607468405398243427371968842360112380103108882484155829375323816803802374333963565268232775952511618258097361023992357854121001181194314297604643362134252139728899355834971221171324498064714807556444824527536615322235772214727863333573398968780679462509352213861379226203301409081773151597128612331699154456850879779730451778955152208070301433802599102460491831815099556140763897908412066040072513508026312865176833039139471550501539779430401909668739635371401662271928551716357722844493205872268414460607223214268313877074609572742232670864896735162824669808202665811061417647819425797383268278919811774672669294833837515530103486375551378371218432014444584543545346893125685733982580106949032380900664321240219347820247871338675132063641727772676115471636343417385072198461772233782782233751571491040814841969836454228768079649385873215619818257392596398938841755215131738931451587067830926859618752312928521577714437006465668190309765234207822152949857676640387461778939939559598787951335774440550934831759347867358848347659432580411816528562513199251982556959188275497030814872391657455725502785531778856131610571692818569775018267578398684347412830499501282920267538526338620171595732405783482532360324692561912750977694296610838596880156292944015706461339609790333519674517280950203456909313204641764201078463505295487990520720481804568886252299482634341849495499289675613089930238622035217632845445506277158805463853409434758788814043813755020043590847852773380363609278297036389631279003353018477313522156178890803375319853877962134740214477362851819091319658472276948513910579914249358142754209439784348802816244168325252901878209603993203341979618744949568519521007847897304801688174577065856277335900592993233583595461661908484128143886386342033905531623373285702420986025474760679913617206574456507932914664738327787342355431429141835810084077489751613406189848982309084730298371137146972476740615748869412924551824027573794893017409478959103933468844735675881986609848624090501535208229001135149529631045071998804379361420257686289076929040303808597341056556101495834287914457165907875990898476852962893043039193844986217463388439389499859071649648208052658510139458283261634652387613807087082682418731174934523912283682656697889734304984029514279302927945575710596376278684367138442475165523759601683742297659412286914130429332729525211983607001503294208281234697589493697288412518729003883632241068441123555154865714159003949688949975754125734459824086348753936076790432071329474164945923200239990132629385578260085384450682060035426796434363447452377511890376530085499695542696676852602513660880518851154708703865789866491070412148304088785748935680590348094171586113467198379346443450179007156299288553259614548359546984410734615998734490442866724947478455692424545947914100689945256389633497486587910530225469264643186747919519862477280171765274774617979928085783185848158697546918876036002894364663311651875016862836011829386318195423230352936504196297531544939688973064292948797642942582334773080826292152610759891847653873655261712552204457635159063251201379845791016047512707883465100771336769951201941601589283735536966468958256610162436872815459058881226316631775829572105882831265425530878591441609543304298885488572653702101693535366897448203809977302200288872024888190786119620258936336485560046896309278773670046770907572359858018257778112201056000080859574573280588632005677094428191386336898565553983774145584921694595005596368241176595807474838407332715046321632077144079206897184779784372195430835861414599279323576110125635532108331979149184862976903626112028729349407344438308764807724562046649664257920839006242678234988517666937956069153310622700868387210911367632101203653340344832258123637654145988293637583756396359239420472947619806601315488286790573291470212830458687395442188768032976341209610718462458648433524326460286255772784810236482661501802391957531350602738509277160951233076309376360723004772606578073493752171149044381970510929063859340216996628652108378833109010566327089425305355593122756739207875951137155822748606159134346485901048246577383652538103270160712972815171287830119818555467534159789412848757021872615190057266653683262025895262904603178761594793659458482887784747601947135303965226897271633897827693802909061135198402038987706896031518687668377982176981192275584675213269128061286930177023753706859114545124357326017054468412748972525375670122153245905890242911219871910251707889947160473316263949992551992445946330524393905813170697809866522094296321753089697274021620429355735300504359765301781807909765766906169677569767865851051534568854408092749921250267810159016906715284655686375951986368737200787093697228164477615329857243901837834367071124606556744020239849067577405360210736083535306815891421934294486332094964331978374227350624403981069934856102626510261916708203666135554719232617942747527697357444516385661161036635464511199459579776102294132040440813081233851043884710210661552221925253350841203051024338981863429201009624997460936710990813963716911455859089163625504028753526345959863004726526725858923804039069537487253692638748264061766774564972748759662172979070805227933812892603119740064864718438289921538499072288118704831681665444107251411661413939857148207714318818693023727603869781657630279980167817846703847149249464172024581762649408719088802288812485093321721498990334477852387801653249384952774078313002652910131007131224045762250913483097356256553973438373986363324427121566877762935303278812168549042731482359613149375178189096800614459529531963085862564595313853439115115200871084462717546571888130449542787612410740735186908162326320422029316072357226328173444680019172338368124232661760771218128577853788835140011050942257904673454577054677724950927823777151929180694839924848926282836456027846754676466649974719770916036354243801895157418735307624060251435795229301937533761986545369516297498959382838853524631339564349432946686863660864196495321290463408370025946772787904852324399394424260220116086358213733138217894220720343442372407847569251015067480904772460066684165034964643824864851448301970516625169604093849889312588126490653132037879015211791487231996992127807970643587167437656875022451798792440699531487167804958584514779743630178068425723887610997326072765025911539069887213867668638440021189505679681473622159437999264110579998485986365711538959984059813895356652101148965856202589819330862666980700965477268770088067679649599953057908289942788254012760604836334780095976357165832149948413788397442860354882284223248114174129895227392656870308893202691654637486219528833305736790694290963931412879565990846348028881777567608195485693167380861587085551933384370864919228999351159955340479650130624326065553898823354692593147395397029781500749907968968977390639232468394721166204721409021301995697389498215969784519685700613772952784806831782099677378434044878416637088387196815169262269256556659006475324807415176593077833008285885752242521478481469837769270881503078372870400308931361562667645527691911973081440480091621193273609011830976606455869838419181797089584855470271425345722536937689962305312162815894687640185131076426681931754591457446347854196868715304197155216247278179027048600683448928268459335265940491748454149597118544157069266629838560013987353543362141989057793615781217036764639927081736991931755552023413124195680302517695932519297837583666845316542593085057242628760859121807806027056348412017823035399449176216295284813374413077310087590329911085571575883661989679799744412537774975229557491225085944416421507829857515017951616072681368714960861792218451902677135716812192173930261692323578499098168716817510042257948648373001199486499409453744837595705495764451068178819921482876951209758405622888636523435047543294559491853510344696161346307922245042264573501370503021896949200308899692229801928119845115220758916441942152542193352196858615933198670197785892273515850996247595880742280884967565847673388173738412839263565563171942557361831596769096343803480595565578289610153979929731049946942640519796765359522547178460736977202708609454843917453772963269826095104454074233132940792622717181832286665631034322630443724165262217673035421118839524676870324985662204991457250569701649541842448623465560811808801567146010596197911685644022371285192236254102978655644958522044867435734873536967804414573368475060229910247200943490988338960358253118974422999339885712747891049335279869907838649186994496570334193408248073805462824628778412967036479343543022782073061811817223421875459443765726099320432887079079472933201684116607181851053616015217084330516132957707308528346490616857912198677913117106245056507269700177397825666666420341155710103171259651608402407202902684565452042662154656447908083729576772370403511358298116368370878863307177523189608241985799292102210240396415861540928787632836036830963459844115333852109781431863007922779893125837351577191919111418904497547577934298145380918534519603257445509836129374806361131085742027739961460505923527605546937947505573866527982085352679713572640684586347640668574031366716648970480884211895058913828437647421620714697515395009348320628378237006763351951381733291305682016464905024544998843161119249926663339452153697252536283657743608726511483338291006349013289224381830422806440845699797788794450596193185549714779768094541322952454526146176974500347941992363086721429258112190055623649986468192432220525371937667816195906140069824911595274762181069796300083747404638588542520986616287153108780025433855486222079499789798029493688668416188818228719128077710898475845575991421663721013796243877257454439404070805618798111607442868102939217406001263424503059311580115451649764544695879160575076711315600305439233530235655885893288033068959271945668066860343097144744566871311002317692410336518884739861697156650475450237683117965825798107312507321289085780192861217081424412266280112333035474282119993185084061105444532854717622663035033634850470981495530792397020706953940695529443595029564477548090095459169212922471823626222382677769966938393055473630462872811280936073132212281371458606006979276268660464148782122078345954555406863838126960564357648293571179174615048841754749412839697590358247394807840173454377941793056263823959914620605543102313162598409169117313581897298864742634834102003061627930590852974937235397210277040016529007006472470738237032371372751617876675328942527812111207526184029442274137091670244597387277501496271825780846264791268478988803438183711741906896203526139452225242088108596171249348836198623290754077915559040821487248922203514237709087826151627651809978314884612602470479422532591651287404266626384637883835148342754346180817374507377422286275787252082426097630313649430353623273009317048611127375204861738733306450562128061108910187423274136742381838789284029234392218817787731920483382700449300490154298728696573809912327487928673686590593927794972137015896901644717435203541366774991037998869893359556289635026000660937428797931503168260970999651669181283566336544035941971118466476259328268780522762138768678271904213514923322592932916046328547207988590304674709065020209989125354145398678995537096866560808328475713326295064855101572327455110911718674724109581102581353858997880373682216505237308725239191425858999884970248503353385456268047742334102113733048469380266751763838991412300063767820702781207316547680356684304468953391448943617661896455554227557399542959099223631003729050971419001460343157654735164700480306818656897664109682203055265476135128412775684437599013959310097390967654787931988772935771169123805910838432585793739138274036950889772590913488991834248778241222646068643751523926166810208170775271454527046224068985958495535929429414670486870543872279489466873921108596803912536486480012648923912774146560745086318679390732998035187180467401528393983442033825391242477191563540394598950565748636175340433404365228381730378298365605016629554330265466610447256881263322771034784479636479211716309096300858346274902369449932715782669884713663257771523685390626670776795355736014583232149180948445574253344958074686956552382478701450984153714131016113201372546558842791044624009080818132409025207144541672840103756342540075017927589464783474868538807525846872764732938346729492503616385578385672903295124648844003573433733938626160725893091048669241528049029623512919513385318503964902651875653435742389676163075786870508252484255073677378332603962108200393458187337514091557243968260748217817951843864419291412170299463336748603645254299649839009018705041880085058100275736835871582787791845508759606621244574157885524930102345974653019620624971176089494969872406631025846826501429200909263490931272441837048132172210969638161410551650616376498069479235404321600700777103577968892325195739815371479448688160632586900825061240185656723435228774252389042848340698036491713438825808953440296951036304476437851208993169650165714980485369032618275630156800227026969221219730619268981188139244695812081539086184036015360936111829293482608507696956314821708136367516735767746958996325856274357445169838924007288116039718183000845389680875321145149566502097764396505271831211998183606404565850807549712647168854299796234563815990230634541665715932567526470921464245333939718365278048785789932722508984437545013296448667028113109462713187421115255652166465531273148598700517064326147108367084690832655716776659553381752269078830890975529012484461228912048319447723493682774550765869760181945534209494065206442497507832538461564730594876731573467854604704310200560787821961997704799396452527874528062477021919063522354197718480034041248963726514203980034503892162491351830041709149536163318569716632329771886618035644513447766805049141862582828904863335645978475874288494311172101001526894397434703495180564554821615531478494758296436278380351423700516022725670755890611969573083585146588188888095088686759717161873849038415050599407933079334693657299540893739929079165807773448385004739133459300437004412619703464497143949979243719842345542162115163257619912353451152577238407729337372398100772345380053629191259927668653505917154911435227574557028655587206531159552187297083809039174481191832766997206922251184128645616941420607211012683408143124738806306817768924485026962807338787187992669555112515651414301762616949829798013814841858876963666048224360296005077445590173253766503741283611343619688203762371473569235984154174120409269977534299318711118330272098926689020579674606436298123001899571146187613804477126368390782620899877893423036750825808541132488813831393899289660780509326566454184959708564400923865595712644207941847476052188791701232874271088530940688894049132070175950045730134198591814858812438609978166047638146801548681174716352137935274039873161543170460401479179101941868436782766621320911148511766679867247274572546520401392752390438008416432043747442893759583629246982615662271451983959459382121833892800109724860997720517429449150055727110876362734199632920753903999846423075960229333852175390999410469941279755500839884597275240861819836131146272144617649855914218704455798207676379628768610831665340382211304352272118361791452785888100856364216820839941128073808494297594669756360540480630953514603923898115555663624142904975935152848892574899214383461831831571807709522346670236502817937004375298114879791454817924072866782244774006306375547450699630472839737553775862685024045049489830543601926949644426220250851704992621939544495784929915878749772914290570211778282614239435595680765494696465989138965328564454494333256796734620830529928025064914898097061806457114937703429751539937068852659246177600022417005617396873497849237579427634760135928903622980314745565139227577044259882300251608426017691008075422125003233935374720615945664936955014406043897312869888714198591428131916829034088747282236302752739615721042699833413778484701300461908468791281522341460617643199771082939231378558569050340646871558072593277254906855671223162244393223288309556624170581727083364691359806443980388661471796046379917308756110422987660061256001337456057336320881682735492475733899646549318220558262991652608426843416703219628382749710085056056903251260163213162032404421561897237119357836934002327848375702593148336121969203608320802113440066032230890748435711088195748454985419449276839667539326914487855843784746168826502118120191057358376793711157954208852284994402569183858065545044998112980397701628545029217598997336336772218282342675789867623109661818014702662893830272842286391047007981444492090261206670486973333598005279334468668332617489680488944750515228588467678189627952276294178092433532695697701441820732994049069160020433190647837695461718988644684995319260053354433254834834929397859421927426730349706519542263431159618916459600507277719159904172766894063413868596987219012670232953505741495988784710534446265659096811021141578004298994048893912531911735753998525557005900499335963484023493560937479780234085425552103422328382312203525223782527865286280010035175713146424231151485640525803424037971460095470849426087714842324970110661242983593877582682966547425882682209825405205764538713989843502463033374348869675302996541599991528916186983359124527494214091652909066792497530414719049879984820970517423540753766548556130817461356394552609308576379609622636976295207620598622340054383790178574386159659656644421150201189559319504616840949880216138163567732813928581910421809547557900985694191265477645789883130721324379604928081409744215444293723774947909720584718416242333435616719653495271580427893404450356758132059023507970847972088085496120589096373345666825481145105640365702225356808529575919284517659792204580476987368795991571845948039210114626258518592296217176658042890601435959371675134715076786133949189981958722609630135966356329661097616007226329195473559465474191129477455308089029457058046918573505733704058078270354673876793473249034187247423397371334445446400041619718368641329457614085489018515322029847700572393975690148245815504955885243918406045898476096682238794304860197314007679385877105215094083878851079481930336737758866116697777383170803691278017472157728855931704044377028150618026771023352601544568368206527598687621658708840260504512409426625245003155981498814635465666431997498156362543104137051716581524584279249169826431622083391451375909162134384168443390856312349094023319091682604829712186534132118509060560033773612208077858363410727694057844228427033034669064822976494982225402494367201128216714352661311268453661457158521046839981551075704480082735757296593031960406405824608676854504106100810069786123144232369566459263838832787804930205880862187926178375075232693356406505536970020365248550387756107276534694472575864951943909769750691416879355470405933075476954167583002761869952963499994664064014765776017390247085079583547704373136982327134421692509437514582746153261070744255863755018668736343463282902888992766697657999769500605908222280193060441015529367898636146953495162499513725821165759655416174497557891416376900426171512463506790428865781454786931083498054414103901481440021923788934438679040017069055219130736795211793365549359725437091402280729917882305916630626247542672693125190896442059659193129625330000803695790117295035249836527059601260153984478503580759992673860154274261423699293389129859888176868317160410615678787128755304132138902165601695630224210295505041504455190407852058932472926688898914377436005202515665623584677863674461097016605330244903345432647137012442041486142889650047516547094749222184473481161225508849950263162254149566635114662144197142127452193031157155732151888879107404205918416967804670788890560313707820266568990025485685486721484096061939656537882832557415712176451788978686161241517190538846776445017612294530427576915428734972227805242244597956925456933263853902384083662486507616480583864811509736926891183352534824496640359771991275857644764633378688002197006549772112524576263013697544679858754782969355601470094732673159846101949417374808490704940288877847932948872847400112103857339517536530375047331548726143056747179508859372201301351884808986873051498575127358600914554187024420254030087769036303329538534007363542293180397685925746974198046402415611713177773098483947726608164920004485231451859623955816586658614005525520698476080091173453335750837901919847409453966673215757472610296544316420375320861871505259816173227171190139834603319053519195316782726025291950674879288121495668309538705305815953653701289885513943636181339304601530887778187445729118745888817541750440884791152226756033553557214341881971411730528699287505294521719834018140647793630160310472729488683599197802575412673912165200927211673769336181600401109648419248916952236568208888040635948889817565310706273682833406107132025482593801466300814274775786237403278703128545744435293911104059474074669715690243960913356924017997893173915367232620896379532116154797579424241379154147106445960002707493342881659477784717482892040800157252472848986304161537640433021674325288822555906093420429918319210384007875266637334201211273357639921484752110473569895363783518007494256879803895021316201743436593475804596534527640454095732288199881698728763842767988699677985766139159009089910183410869382985317474267836058993744718448767644076477535594868789615166352904170516969594997887196181853905124597448574488484549292754641779049815030352586179515658972273780784902655841640563233865671458292417595950225642041968363999266822698987016748936801725464188853079762774029885191813605976385274265582721061938982230746263694916775744933442802999643800357242071736497457168898536539887579297303298399405519415607291149559471268489829887172495693006158985420706527945962002422001409618551308209022968493158854014486039262115174337406077259084976721269173458791893880518297554411095631129392173279239170665399158395938375014450457960057105628203959996779926318601742196977846581804499478049008770823038128912007139304024868199641733838889707227531218845851636081309760820401501674166957321623759803634631799651697251063933073064662242677443919943526219993947762423400548186846086724462101534467644618492165482008743515480245582134998322013812577834167830318623874881671717609242117205926163333140348579712773633767537782865263567571184611370814399553970310156004049439008952701092819146701812383613039820536261558072021654760429332698874380786114184330119556225287670295011146384603812153406647442707769513375362473139743958102268454168063212989539324510890734445667064459067819602197503247599207220072488228444381718217521394240605706755758497078522160264833547842893610773496461048033250917712304451586475559635173343420509379255802560862799003967952917412916992093170314435214523169829062818182231613081741413505784759055594419772233941519851874382659173074955088445842080860456032068003591157365327681559763176819032225287528937288618968267557330197809239863804255122839154035726812049513944324212141571691655347099543284508933454771939021403946350361382005055787939925805685952302706951642839408317947621993821544214502682297027564085790819276062486043636563228641855566252584405311169797522491592250697780440059621481653973703870534070628633521359024175481637415032048370368857259797620482478193381534928962765667908366346290737182968697360572776822276620263985780338312180813727342102938078470728326113542526550244255406580486315886554797538308945867660081966539356503766394484921424144618645017300880902012210718649847887497885888277136445270307521526468863265349702763808454155632677378640991832960484250118305838149255093552945848922921104682421070835227652014006334270632062075027849847666337903578193021675776433989298339447788984011296441379504559309200058001586314289131654204993787441752719167772158497282349915107487270152356764329588619287986820035501086074057510441842328114745986696793524889276482377747626140849883265060575352980903643193929041134859684192810095676126018366362041743205098087049854842793286724615451904405751602949858966884020604511597114231464469958305383696468927807123052517130444268819893581596599897773528821220033433852376278981651226185762131537457531811052197170828573928319487109267277048493366592455435007553991021097454022655550076537280175738435236290248676621628612777378459599102608691805508124174292610512255617132955018836015431711926957957989854779998031451669769051358793941468826514035715974381735091309615551114103428448789895445539928163350613769859879443964064312428778062575929092503332613577785378590553954774172651954467851348236721522580335723684072462225016120568103321662053118734442065636482157635176959593617310433275435999918057883305218684804416879535371162825830019546634657149656175772645385121548728222443453399767931819683156794232946893007831495029693423048301551484383906549354259650218134773378133672210056707482999665902524284119761660418047007170348509407465668932459362016273601529956206387457448629941441392502233960887725108802865609770620384756856661076126778305692449515039211178760657794902941784257631602312758075677762496627246953125978810012274139902120280917427570470532368545163156947086888671044529218905401778039981789430936244375638871601900345049750703740027150881574153927737206242463373055735992921617229399357188157681201130357397051804222781787341610233403992743683173157321330806528317074054846666540274231615661649249185339750718660999245680111342456048625453050584445694417247127954853671519835492321371701228969677644591326711535012624338634278053308808440055529912914968951918754735928440231666164180874516290897603215428849514344309131624965953405968277719893976196503374069679461129524745396527577908141826144482014647858784206608916074516355001010451705994534551154710214388562400777976036383963605106484359982205871637761271467606056188857255409764444515401585155978435484046052874090896640027421269135810315128829736473038488852049472265567253872532128981190972197118055361956517884757801218341481067105349697574196036087980092236860682643635037953731170464941065965016392305545280711461767457486591804552630604799016483428854165114066312773106184621078917584532811810948849269009087337321237660299491637100257360587697131687964302627096183930410434510905734105216059010962660434756185931024402514249047399774451410528273986764197074293179637056455730598414847767643949091418892282232724745993970636557905434970142919796475301734200258624501635811244497900295579160297076937783271146365403605951722241633604191543333712033574219022476821090462429377413925500393340220944739070943766999293685022730137224118139375745354170374029512224964196138275082522482007358475821488374627532550913453130389772891228709984764561156283899570392644322098725157034243039348033319028733055379659481024493771728697929201553427834625558754017702361769533614476341295286463923872716152882174319359792573719441239007305899917953652920422249138775112340877227374103951442181597882161129136999401749203759832137491244029218755275493579245435017240985844698967749330998750143178031947715208843062345630947629841757279675144774364148861241146497879592270826967390040774671926659290645457079247911359661640589160064971561999463976269254209398894929005169773554248156207194786889505978664294707528814310748036633268173386797816297714082056376572737165464941192693866270926095181292204152751501879400950831497140310090081046953785697365255181482502972750873658260608715748610364721160612696725320574169585917334327398357526548029805581242058057919423535305384408598582699282912235449080266677696637750664147070499447017489699610101349285050344550609463053627086058320427140304713442647815530869034454671138375384083404177002129466117466277669902587182469986558002751541903791342952672566592088903316224778776113989105348017420101755948342158505965576312338634079638084915999677124622356111498280673737819583430226444756081502861617285431887654151019808216175620461887252662492170103000301041821519744016513320570866574914645763404915819345906461592213041198763635028551446490583837393626620152880828460742635007067035064044651091038998836278422701588328946916656700746591303786694569474773059859625149373838490809489261130960981065937307532065423713317639790690614685720508859343324131582047894446299327425156861786627335550978116595688332403081277004886656016299402887658270778437055796440687146111724978292633238215651078566809755190038074108947926784467822114488435251631705356685905546770525010036589670984678653128502924768732458282500225893883223645460013069209376688426951167392394018825060517231194671390902624476744036776147919217552333024548549386520705805413677852010913416633646933629649931000841881277754218786457659445713314570589008147937295187392384217251304984059183528650476288426512189995545602349221054609573542527187447088720267214598337373626236008634682861981013498550472617160948119262596520306881860787825387637066011118983281524850392568627252020024572501610962986696229944528421840099944605571556438418947543621433978261409590020704332025492878219004227793062189201343241952008990470533125768066269765475805969769484798456885788018550933580727724453606772896660840262726281746159715243074959498777581809202697279077803707454724581658568094251115344382817524315692630595463776159032335960436584059646233477436149678568273070190045232302387949764544682018976747752958265104595045553876431735208955156378708931363035731599802237726869825018584152861678600067126377354526150253216432072847518839705182136810390061900626757673553149807385835136597819583051651832969108535982174457298345746550118485772375138755833104211324206503853015997088247479702820922698827972032503266464641048092764640557207024060418977846698514453415038137322032928337736316634238331580958378567720127176879682416150409300077887296333502120834359162016627795663275611400108763390173548244205390836374707147226623463841850539807354593687538711864624997041803549418036608209913683475834739555510203917374449231895413981000566505446871002747895337160945278458501320653728987617973886044611675461240197730439674321068095153094287927059311094255128712202002017658329202857705227022618976045355559738098491179670839362367040735170758766152340349277428728594523940144034406663436850357377817418203109195370436746365082881390173966948858128965208205161333306938431759204664835919111403333326709060760933574131767937872466841296820796756479183375707961906915522936347277379657393297999801042198276636473628195882262008732394907689327785587025641841908767041795665555448359585905079719779526707181596106818182113263046871273975624740978424334162825700870328394889856235127005360479967884355983843519071664617320141474566095886989746299952402692276377739132300498724044202810208816706647389312501979078725243479221743096205974088131432949986094787297597162748454028623453574052176221223322466289988989907921929318530529923930234830996198167807484294695167756637016876884444750668913223999508338282961468726436146595037170651323843106306470170644734478746681299489043081200306130157941748994780469947566622839059698307555408121638829172876988422702318548907882092692512585398025638110761364334410729419270500547397631727850451195802417197590693408349291111004597089279481568956665432514320048530597672623411092238607324563120265482699628011518050928677440280356381201126987617702868107702340634847919302340071801713540424617443188110353179448961785358887242511706984466941240381347758426054733039059732890396238251606137409877198330157756877775073940736984995044048434673203565702928602697229431071409532336332785261896699268524709903935759996672350002683119230686439197166035744359119872851784363393903675117309729146851204588886268129610902860337129562168761666728931264944249209555187535623053411586788073379677932641069502087216595961201376226126671132871679485333107392268997123944706836055360800147358788384376609556009613573563330471106361627163093807700450182755224547349209869822237112140851958754745096501536978847752416155807147049135907681621152754961721099570673072275477178443891191423767552169063037828273592752519871674995721241466754439640040954494410835833678590473791777241301917512558971897256855188155562701195467793100120540609065334634383561479472000920730294139620758739682703061004534474293022268259561024064049093694018667442405118755289669118913431830648821583263835477706535147718775094332956733331994579147746083299331706968539516869643856846386131823298431221426502390966745683969178922338389025252811321556589414992852264278462345858230224950328507291991378692180957528182160216045607108606409050050299174384670989412489333507459489177002037586959634869209675505182128671973514289757362484447420081429972885704121849043240887783860984557380981868136142810983810761757345978189432531387137109810411072482201342411741985287523816556027490081569608954028204993990544304917063715654044505298729008763950861473879544243128968916002183032350570864690878498903092618211242514380845232586431991696996327583425829097894897843376541563835917220680335073093911541134493190011859047900172069047892526672849011559298804656469630309439169415814871854219197783456166737437331390165425657137420263984985229123579605884578932947629399663029975537654904209643240239759915317011853288559295356487177690602755434581651521403503575246906904429805226381997857754972616079719636602906757376205959956741994066203178291422625954564517307454326917506129600018609077981341333931897170992101250504447865551442267511037090551739897322869910254440278586440515834355422699763211464625203741483281636208184033731667677114012497019383216693451939821721178536936337512625844161168053430444717831005307236135235016882470435575202675680750828733645745025183313014388582510893509741126275400945456984997534477412486118962568025008053859666547807469781052083232576685155232132651782643104402060024393031276324869114365566903501324444464015668725697592211905084640217394188834428005057031360030039658818542841484723511449527938063229683337286811634693781333257146727920952000069082075861115410950114896409796623828042849494875348877448576879327424627147958822563388171774856344972660327758491658425271581339195354234985140533852180031198218377787242409987117516865846105035555158758170932006261807714962396940427441112698132289535998917422123149598999440515350717071921624331601949664698053390651394560096985036683729987554975513536957725626155678318068138530307168127139955140557913092880444201749138289661588235342976267754328991041736359388279721128537145669797216697440318857488750064184941780025932688494363064726787546732595111762225529202801730056587391117437978632876899204883160339819474200994631062727372210082906927505074428935807166174572451138643738474007222555030825895006382531651535825832928654315449356610846356432886726193215831580731967881172394812420578835550592549727059662130530992818182399942849446177186383963683893824817548769315603728778304808216884895699026170865991115511861688095698447670175941782526033338194799315788939780799938305741958405268462293511688790895455613428831318494196063766952121416922104138241121143689937256115886754750947474534817292173061778920300831217630342115604433920598880076103103861106673741310342784626907343629214232636134375759334299238495879039235910111433340793137849457288629791990662923730689518822271560303948068479559132988023201931733366366413337211411857031390256513392970865832229070633500779128847361220116674397110189997183798754097408124431708105136926958296218553530967660020694325660447399862146241428596320078335586010630003535142378733191820145145661306598155923431949555572659765741435540605803195053632525768135625253024080041258399961738791709815599084784609304014524261291912377572584541673753634281527849502963051400243726764186792021358991331361716250409708649737464249589063593371919802913047106810933268468344065332320592563140584763799391698422558517954522784781109592212352750592685145085182796023472023423753811145867757318646923533725211214772959044842951971307625812908414860400822904082941534263110971862580476286151698755971568746665480145424824566129295161049550519564639165627734613891372708735473518282595735484747578914356395589377293580259610582678426340452528428163604493611863984324312610889854322965054483978838151940358982677846862399136096547164213875364901301074412978633289804641501977693646729297134055654368939553284970519370188183307681913369462739810246076675026470915443992623739195140461733438527957413762246963862589937166434661957258842630917317513416871422080570989077920337681336512634618229036188200661215005151467078807165495557501965073157577428801456059953215533963399306775672734638084099039403402711113394812737203102478874269096684936478327791352203211584058213438412505625560860522981339378345137173087294618514458980241742671829666779843264248185409850308025752665951180099480193810499043694542939803199035491129206324063790075737267359671612946509829350180329616922967153037831710935362113584037450292584027676668078794019457718047893532223461774162135210294425562505162133467174877436257664103536711095030421610162095572463177971074500186446566082930405176595847215704326070170654022496070438507659250663025078453703692699703417155043566665681623784216550383055287987900184266672356668701400407794097870674766675912691120248014539994571965390382955054326111590623458526311973294216054847972371513616239259062773836105396868599619223397961684728200768274032471162882158386643596573269985652786463636449030366517373387404459074772148518718851088771873960664456398318732001187949081056352949528556654927314207584416310809403190140161678620185484263719659511017638739272469931293576548947504120172977100051964562385092002818837931476465548809486483569488667035704859002763320739499131680849253994538804131779428475325431599422928309013799342583965506499616778366086734235979676006108269431458911987279067755047051336498968091094911201175884571884480232710625605645199952669214919463034663605457516734049148916942966720669061307162538312546897944307372739692628203116863797103846840150299906660458885645962268228080542273859641779392511851543526837485778966060355771275944321947574180387850123541538282631055387979079954336062234669428888285810135178819890457603599084231998018229991776765986333705895702609960030670461170653521704822984556439379576604321435069547759330058450120901929706163164481730869828639266760414271868707568469110294031862641349602330010865171709333448471014310114870006056568471583410523839271714204841565511182408998471413268354777786380934775274699498991668976473757645546988202742154552509056784935520818501812475351586419189312615771816032179735901702437091339711016118273087162764840944215957216154404939554531393427671660037070527573053429268457390866372545037903649670835587234687121042881751649056609260161796011892000471846752822525536072943437580969460178439523693366718302105544826250047741781985065001392725009115546836141434052699162753617391363677145019707677211839576188922380966488243126556166167589158289564395813280752960740317273979353586681563251480235741298372265993617345433684649260222187825932803769540475755345952937697904553116104515340088431266161435098872509155680867171888931634551673217427393645678343163796267716378921020083434322800023756330126128944287734064614316046928082939728841933095144787697532466648830234599081541347769381824054659412253480065818380125804601338150385741492552912894004064177150667054297879865435790993767854607688613060449043121763736104126029208773010435190196118214598199787154086802481778343303842044581374281679033999367147444777584545168367163941546298366452996137734205411562712699957532047732890848013333160175108517362665061675137162623840003048849798778578929050455885873652427443134589411150506471578495053745707068261452420646712067882820831051918641906225809752843107869925799122727616780552380607398398169018550361787331383613471653536729107355607643356543424333995729386985133689420167018185477417049994393831816723757165527346929425445234146597900687779396514768575771651878889285447414853735957463514621793067036325998994988912596350886943218803847977082084834486375122193140182851741267410173058260002552564285580363782120028150223974994852724940663285649246162678490613882387715801162727113005193788566782589719704162120489818430479455975958636813887010544027222803911019301839189397867955695158832704393111562765501479085798237054225287856838137825122135313711654600408318703618563814604064660233924836310705160204573416552831357440797843637429876525107335293541063226196401073465376633037195903824420777302615845946946051681605600477817987541130992327349922246548449106996128381683960372406774230968323353213763727619057898369045169343962870706706263569032054631130255174582019301118632040343884713628714401864591771890020841617410246054167828485643740903341575093591949388638445628748145149674202131121771136755414521783096900660700449500558083708959306281422181497726602666812407220939953479567035179569959838107771755809816321653710440564524837636659462527855132448848376289189059233092073297644557828900607706413215913848666989625257602833296504018729125896821285424597942464405868400247666656359520689939535279461021943132020641327383405951575130667348765159499083594794842497130415126691816445365086022460807006494962506430053258335178814345715566902568840311053241931332036541194696332334954988894017827862261573749882364901804520446785326394662787785148835267805166261055865551732669454863613909166777531790290671862914273309015707461676667881132925602562569352397244015969596747113970879476478764241581928770881023177744150526348930191758481764039690517291248185755603588549537324933013524371524472250966911748349931221348203625963042413252692398295685844445658204226233107158855763912948190962066060553027863498839832844265803475858122919468914835563582069158214593312702409776659083946893818267401170305068528700619829025519636681115393447385046988953434578347353211235196597347963257154046221598139724110057693788799756664757124337175643544251973225741693943468519235889440455020739387903778565679059638779095654284764251706403402294027524380182502127077603269159897342152135300197860972665706219045972955958695806714207580984918524817994605527316417131858118107835358766772818059985511681701706051352301600399418726042114885761630066945646855392775226123400631015077009800225006962846080431068481007615351564918486385892192037166755694286263043653202977978902862442564380587440860204330109087533957475841905515830791429910814118447356454323344704011448122433276887269755190366151814630018859843505142890088468412921258948430380515809709749194300278294485709585427392362761391333858537849880402159205188048251023621398484627321193506469852460468232069415786574511673254267358290230995023566716441391888816965953110959919831879732091491708412066158252954981617915574382623637510607787826753351732020160219485312162609430671948852708565553419125685003547778672122882365658453811164457531536484896071388811074146766416515213806868100416377323906398632329818706147388427592534780444741704592441674055147460289168144839801280461547786543758003660372014285652414971147871369797079279531809151250354464602466919525478584844301882948392756678589823759035416712653143674950324747670170054702066506157059522166997311115843283521959616715440169704592102273551708483024128267972480253897014285909044146812453423571888398465865459155744791763396355208770283579611128300135038603432911057250884341243092983308665754581787838018625951215646493097615186978816292479710291550976418784362066302242940709005290777436090655763272226350145141243310668952904778003867232364869278518663468227398791283367703746050307036863421678918578118890183759116866844426150510760049221386544252779453190011628634144128096759614700742508060601215234688714980510175513542539032278363685512499707032577161047622932173204046426730126608148856567183237272338078471599030928502416800713222278360770912728219065814170469136600805726040462278524476084752787798447971606525759422982274867833684657291684385714111707414416868480240254415392728553299324617253659794967118302666360687630282543161228961613094302021102167242699606257175941998003332461569607201518218626657672208633897174195457651428588987052725660145469159148852151634491519566311520593135827835298978511315007091033285044884180359711159028378138902246713637059728234171296519618678441862362559749293501378473193019632220610049561062054706539437547678069995449234913728109170716210000383602627878411715757026473985115596737956010075743487892480549445012968060034480782658036070280803034917094151734398410083811874111084071397470459394184258807044337472410201010145326903985453356770896512492842540859582097767431069787508794933497146276789000884183256015808208653668558631661898462532291793329970978828413108370235210725537058830294925715251513966888082588481956621494374268703655142405075451516263588917510183080253189151235956028878454733956475141486110963891590043265603952646932515450131981145151924224950620150534900181081964435821121381254611623891612929367867190923257687582323493244039577211795888177402461966564707314875241178968800048005810768641348609000938059124301382522395586697846875390368075473556695714325003806631436891944730577763463836585265078960785329258931489990169895136893216605663242968010529553375336647954417745768996335856972566124011512025453676618179439374099080036726078404219991713081893479132281786508007473822398846011241587381578149202930332952689584728252282854332020234024551611593946333091408746063904898328819534138033619466733243474638455850940982384558524771347386853770702582611833745836888648073079757929558376830793831854949649667853625253425656020258880878910212815623072000832949496018589371948809187910952896440408515531331384574076274461236126156117911013726776557345965256128656436163682699048868125080333739448459604451025210728732827754960233691004222121220034149769885169958546148311195195264645057362694312463721584924368822505118802750596485217160332179137854456592499225175718400961872434378955335955124176443664614545750934028219432936745827166064038099289521123216784774269690519666789646055927762032487851761649304740451172128214048133148125681814241142535493943617271889568930336205580006474668675355379831211852687822517164055578699118363191149379731344818913909530696025858959674128057136966830384710478123619196970626149851455610638561273070367291556646234182634149851035452676295292349898838001600002048206393448121695004999415683504175160708330893666195900461893623589131453354334239482363186231567046089883522873683221324728956968360320032032246822385783663488669249587925940195714297536868122369685986483835259741055293749872207423943102474886372969748906709957845536019459616571741181880981689889747005435491282191105909651921987947572314943004001063062686233094807307181052430579545900365068155989060530593756603179814841783586730170404282974439639668772551797815386550649249175291987361332379894148263645813066545928829973423823867347808640468654635329987017359102146898237832086673152160143102558275072986178199332006309696208947311013611802826931219104762537945186421237351437746648410780730578993925693563006971602650912880742392760553122986486330073148973321876664061715445400990663782448115830391798644514255178665119360717841831216764379309626428328970538335170069257895895936417399540364904387718731024538246780042851494936638273867643883249033129625779042996312528171503040730633752119455363015295929394225863089151922839273215569848629613005734741906840290777349449819812325169967050638392083052187171636243841105744980608037307356456769077755508705124152484789262440536162877641512396308959653059109292749866222383075352923585291649089801319172718486650247288750555592343641561071169147490654383315587871485045002561092757036237278296013974852574529852457284290679003304350493514578132139145034010112529510068468705800776308477827423569485424805148604842639004038801650622886602715404314399107167179512144994393704348724214984543745545441195923334010129507245615642373467764419247906614591669471919841760097692147509245687488299705126771829152862888660242127027517101730196571465030263111940110049244929633088229114267389044639553170440674103517783507014388022994422400741200809944268157441462360613189110715374968759279682744129681584270957701096061862697225119918986407303436618979338279328579625103971591978717358761440437484248534211342717704754215149184177637857812703677247424059687259005179957152258003350314681139269078279115470079502846596339606019223007000261751679407668298556231298065813085311512302090194066555075961301030643351498467741170035382181708773583732282382851946325087219187333855930522208924692637686737917991803814248210718023245972047991809842442119797710717836374028225367896942319016272478895608315647852134014611998251739975712217598398829611944824494276431682512455632950952519536916473952248609928280355372050918506776581333065304138743416169582374534067266137820819739299784850142039623579006580077926944523003581189695578025866537809583859646159263960004313448166045727820999772554726747237262330112053235497487191354405268633927134132142565667270734102414984211067784602229058534418912779716036174742963793618394945852643564622532322457879187568864771322083868207974661289395664742919762515781381582266364156688127447460568142479422917922478138386547022160049070732652482707032553876119549799401522342281025442190479142234560609905745075446763466520071450900908237219889302075707818652655522376036837684932521548794386420981936627679754110011993844196107662005784188186625534556888722758683023830463231065989641927485063006653329080845512218303840980776444542225828205513969767765675133763156295533059079987478457547102965726261018428430994767230299085295899037860046195550322856099820608239394270368776249178438121529434068496932445176428670674162687662607727330501222065914967540577894388179031872026608328037824766671973944658870520545208730834918194957571137275083739111362302373683547485024344857516900340167182730230757596822171892789833750114966052115463011176461163792390368055494317086355210423516113507013569955867309199787289994772357754336066897880727359210545236564891334941636805591288842110528262115576239231245832717484489161415019479214747694182983444976745860040390608627313085360094379838268332280246795796796503516296407586889959563125866999495256998933402206508515243707228845386198434343068177734566413106654541298952939708377731086620246351235140090727679790389386064835236249350688468609696774869591192450944899024309497743606435251956349625922484914330333552865043711575329555147072907025689190672084065441798013888265694952665968294515452297617300921206678820868453422585253949596140144082086241294521275353429217102682807321283836549181545225890368395254352404123963011415726275566375129614815434639834487516563992460911256680779519012231945243454530121316884649034743070331727342717427263669870783665993454527511431364987214147623157245830725165899102161898506162031814685387402614301688076121310867037419643603614476743947364479441888296338765222490325153274268328191131928119033288688846649268595410172441977576542930973636896639100459365548183693537578060622748030507800970146947316443528622944994339184581522273036693980141010399912050770289698754401767807427884490775893791039328827790467877080216037731715043653916753740458604563204165636727715285866616080734741262389323159220914979684026946421496116603749019952283682524821606295931531899165627099298160557482219025635004711146599234418680859631076169093791449471222017249228730608822362403899667332502035352297652792089057721359276436251492021844170770281568499791115775145761938533913576032958087930668292883106482871422694095793728126790324852627927281361669937461317423947707202620786572176970049266432104305872429043257015235482300766423687500301011213877162937595490941560727287496250197018921164007560664861883618938273656898480606005925397393506277860466040051903460209350300945060699520689786162559688011751375598070756997621864403381627521175996423262760269279125336429059090345829684175421936426442085429671346972217203653632622716412243843669396891376121343760189184360152150692794217996102320086387219030844145792244694498347566757792259283179725947271606888747928194233616051472694049710257406099421035411994400200701740487963584034055700764166691604747761331358255581505152398758288599524686779505589444483357205953056513311321569453723317968583052244060161986664887485833140933716364075796778733980419300933319283727161836944667244694750056140883671663504802079492461857995461782370513528528245496988316704347641594654980333306152638512038335429429425478939225745595786720624274680050631651947871032033648571751850403201198036142477284743618880596487692063112200698431713596726253281271435374640609113655137070389607477031290071300873647636660171778890982036008163828140507716475193717431093731019836752152896081001600669216842209815697914538751711802210261319918573064978908319184642371239991442165913708941553570801192369615216861373232380266424164510042001587822443985153539592635969403853232258138822005750271601819389527890914501249458405248239139394929946355479116966824888273125313539124893512049230297391418131680885437660607555830943983249671325325252597632859744760535195556799046475371086508144148281468950410749988154077877605645833825866928019234230123418688807547419348946687482230615575994936406837778382563422084771046016254284403957333479731751057079343067328112073674516279538978293809627053230907830303873608868840975560022653794764262186036970961426726729053894867966394457435608052615411603704521088653269337277116391813945501472683835089496051752229563837522301712696623940310569463502990535591179142462263314647335360476099548732907956982215204618772024869105711271342658351376332453295861141129809234846357291799617950822081125763853331588279340683716432880820458017262497226808871993222147276143694910836180985655820516861606351893202006715794658748439535661931955399892892350849911706983173885899067380316053727573633986280299197765511664668217755968535273729680709671189172950417443186310248308006798182466673597206058905462235543268521179878950319111059770359063059451860170992470589021179543893747071651418982088100597087586852726356414735756158033197586552429074459186355579653094038806282837107119174066559401370211786833822692913079581355233818398953563632366280754675144985472047447091807029788624251125546077188429378767896725084261597826781178120497153972601597767336092014439404316909757872697113259314437098407279712944873168440428377093041432223567552945926086653075241351904867114146827758773627401463979102553076367975718769751735222489590586200798848828049456845333715838490917869042892328615158242913256618689080743696304025196277418546013704155703931488779046092100827142745483619143479138759872018027396676127810462383205755081179994090398362228294679885893493786434933649748485272344140145174928519555097401334509652442008210969541394055829641072924958317845659580597895815433632206201913730727105823690661211489027649384326300457928942291365820951265926315469276612619005812351522327486864989570753788038707505089030556894685879314526498692889865884878102395164127637681256213413364201546110250292641354468175236627770176696436195398358593914555619786422680086752999452705883126561595961385801722693813493820632966439906073159261312018149140766519145440658034133398404299952829421019883093895728388322752086442862036083342758093705437506066110912288153065367387714625555072337903298983516104816490891766075975739815136633900251195065055145904036739474430593010231629222269152841168628963350735100995057913424675486769249588405416614695579850112604710936235078935987618715689134262261310108471688831796869844308374727562132765471491840993512429290093362797970274407687871553055404703595835625550496455847290618699244027140588768149510425296706142626197404853610400778264364226841197289177265687243143156916152281888950727269145417138105993612976835054252181564744817436156394752994217019301795884097824050247276221777732490553214995403088091080810378809205237605080934222703085207802469030987098881413517109301408545344758359631307755970234696107109177548924718661436012821418915140256586439164463577599468469726703130109301044684136243332719642715624918317528001360169942359666797877911637572842518349681415596696377402663217571638874468631586223568662967081168341692517372156524343202131633664742560999325156094164747597690481926390430171776027802881202326959600134505470145906665925696721914898691059767848544497945766564484138027234098551303441106260600495353889923377330530277815011714561172350430485392016130396039520387329811949385803528668264206315172515497224925529470028297551465909844239836348392726293415374115930404659998557507304484753602021425301662566069562673947143654208202866923267929022431617419133277695718970452796857510066436512798302672250323346945103136567773392545085136540154448892867357072651669282275411488453771782351855103701032038689982400192076544855199175351844096191667560975527666363405323166951151014635230595615621853470957275380295565680972645796759394228485342224112450161702545326584340297259284788212161737442156837871178765277925786312072683139052163609111761584331032107048054540055640483953713957529877555393559804629284987567793954330248882405396798395391366711431492035621521648517405882836696482405691163573911856161222050560523556173088260654959205785158851235010741117637826353532652403813770939556788775853628137750810621108189619169981755923031187115085612035119455799651877671196309428590163970789783355653746473512578559617433857420723280438619425978526909577762175683378388613287855118546916313091911609645542634897908364628822398747427187642841429499134941487265737549404518092245038265603235910515122506991898491718887129028876494748797102296565741144917894862107665714600011239894196316860431957517278737346379327980493129779963223864247798461364155027228963321739170536884770122072312225478370140566310781416509578776441073634495877497222264851914746414863375659165945320395610794223969159546600474504140067398309752938259191978135676843960347270303283060663214421264681717495502485153437450158849607257753848358468623824606814273354829273520262562755012893497558429420141146715213026216604774396667437848685275185840788119092308131087170392413140953991371077290526376383951713242259055220204494732152742943286248163764460631654668747642777543838763393051917607626775184775625151636455692117195857416354216190243131233181581559384052342128303634564058003292489190162876437275332942061631197058272017349984532057690852096370659405813085723156307303779333435758268030390979437836449159852779678941085408692911414868939941737909039213223537218820642349401753615998864020863571733079861222263152356160961683252718131019247741024707253309723505083462434726369901297895535068381214063799696488759751222002179539018303291744547191774776186091926975850599307830048859378906851802581265330132245506644387408786252458862918256402342468864315180319782545723881429889844928903278428136671431330850887285119712145150023015966082766281835573832461850246311413552187819498850814214355769177872732920916582692809216313394550437830680242090987952771537925999852376709561890576948459477451462977522923367471856347556065690786865736200934320221745505041237846804282176057126507407742925408602477754349549573657359211305974277394619880544168144967856715042454891764331165845090740595353467828842165187656047779801999164125849645685721168542956878514002505909424916802964825774357338678953621282919590224411847606630652894812606613741825975852644370645551642044782734472901903309926819395220175259929249247703951683668600711734988581820782617751451375813285131316704599288704619471518377651980324509660689925168420595745370123254035092633000561172651856461341332108328878927279797141122115028040048783570282302335784665191613314994597408669854779245164357950011719913461355522269792200068341316534585144643509422531138711046427350817142075123131517831220088493052359262935830812064196788700544211454326402262412781055974192595055672509008949834096899040847167755399385781822657087637334609371192278306184830270776686769531020118734150287085524616981484953254164892559626670968652291741460021684240007594128049874347003391642775329444766025674240377855106278879090340709660525523183061054267885308021364060234905403793370208727255150729218876678568747957975453180788710366993726376236957369585790069728077626301802251847647110871865274754903460946890227052230148919280713063351446383953601874530790469600360885066756340386454859230643314176631003596279891271077113330158916888988283038620517075372719667405717303539569949442946945499084999093553796316076771038075431190002080474997140893606057887475897724988411152730803845305200710969165336165326076486299023110963155439342931559615450313991866020475931039500192158054732834176147713310146830777767955838969549869366394789598476087724846812300463673018508010912413135455607346228815195684145663655704155458381723078133757180102704780653931172299455177121101877408655079116252964469797088840252146081348635706955525649298122193689219433828025109208408360610903233224768253632440896935743253702517215305186876019028631168417086765319543889349227642422330013858793754305195599186780447012731792322338970369973255318219262759362261804551012938025923820616585994884182001172126409130579820920720250793627072584228667854775881990780787800732509629783201937187604945854123226429242682688847411386521079374494405299793468400348346518602617027101945851370028515677346188207139303308545250526185789330096176215382609713138182931589113955885105149686131821120348407086908020861721859157371399565519562878698975613454461212063676429711210471088491046751534481777356856339691736275389097180905027507459232985874397584536016727940394363392297418785404487461294924088865179305661469464274321167293692150650418190457270964957782274587590178162353879350476585960718132042532741981523990862814839387121303644813368571780066483021530263862217487142032635458915870374838220085774120574354096377617826599783700877317227730018447791680014375439388060658212719781774956680567099651537934391486561375022606732945105768691215982995528886783681369268332665894430489430997832854881037024750957452344713371866043100607840634041777485081147201566148587895497992475551156827082467535289787187415306462806403736372303516855366663795507284641931762617370302076314134956850405198056098511356173333687170336497128096098809920703540355078587740747448466780893486313193554366488586873514185199373865307882415946988934600896488048535390389231496908250478533455869519035774442852849079718984097252275176450882772306934646979624923702043146530115450079854859360148755941442614986238833229116706482813059987930421462672186374544803788009572367476048158029817785744629995371380169874884236141243679138388955717460601974142327264792158308878283619157842294747958090991450330395321032257242012626320660224522527385297946330895559809519089632818919582502570725289348556339926276114089303000700183664760946316078683961300148408175150555842172907260555971462322761458394039123540683682780150637472763046581322380263066152656630447847030535759502981013175712740371273611044730535940977902335511035805733443887476736484197430037902575855269296776149158354968697786255101053726438248325466191684057129660696201835878334568101581993998878487389867092695620155148404284018960621626999219298495651019316588924823876734943157892975482524612367067377348258125247699062373008344111254835387269029616126590891677540108474510489546476336569416076555327355024056288297710432841618743326804965216125367541818511486119651005623166731739953586722728977868433802329926046225104764639501171619997388958754131573404354447923723549619827344363622037184756831123454802752981053565218117353353467314607763028751275486529195951636708190972345576642111443789475604254645202400211672510009844708735367085058759713009780351760440324376222458436242204129419597607475751534827209492113311489077697646628452853802880041502178647566973416410242659409518365326501907073928909300872443385385158656101327884687588776549018845094099599014211252711855729830808281366703925732708392207710450877183960544214993619888096789319709577209423907136733081946900777154069122979862738255092853506730830936741293028244325248545380344369336704254205015523284280460786099909930828003121605989248684741052531066258832530886433383112766305423711836640048683900055906911164350238691700584220340593164576360283442717040881928291350950093455458897191054576333445287582164799223319108366808954285267585032975018858935133581297818934422097235206208209131578528538413050866238236790617105427727828981006210773003081913837062391340070174589382552791231100792516700509337172383203679657080344910818039312485028171535248491359899241043932502884218035217120821664787619008859171966301330086362380329409127584653328586409254135097127507845404732406678648116141458655876994848738035004843575245426419661229516380838832982848924519775611762778558521836043703086739990403095189428646267927455679582620988474763300977464207675384076114071280937345542098047113170793620869693855535173689040359911167414902588745989089593090116424381707790519402061617057123105685330742813821039258790145521660500756998265500377056923131362766550891509961376468747362322422953800713353971352111041637488719236201915823636591473561565918405903566027383888478880687453619874722597051960687253060647207797243591406794333374299212746853353875198502700590800576717414036184257011368922716239499636619674233793650485002478645786159154366042672898654983310357381911763683087741647519445900833298606840275982276276281431912416638159715406935118606548170088327332762043728421064046160387681134712469098443986369801825670853153024874846585906555769932551105572828549558609064170724567055843320309607159352530081782615277986286723116148873797070536349002316912142273190272692688326407685999963012085528605082824279712170987345306018188886869182756800334472501468172188318939913177343869116802150739216130297856406159778365194113752568687377809681199336900231444297595264669942025801281377557645014596250868657190957010726813553022271617277117835599362183788609308275636280572515898290335255348327998312637792173282295378703336842168716553683069807835652714465455380165313954513143176385082290888308910913954640989946600001901746859566126660775042359536844780723517134039137842482654985871882766282846172523114120634218370973688245021699863491299528028724343424288558380112717486802594838248510513389072855361781454499751627892720925145599380295794254479656638493379058321380537392820397946698433014756054052618581307630360223367945193831738995994736366701600679083906468423377245098402121549020250076891904367444361632722299889221646626258362817165628595173769884309461062605331666786733811973995343318057165214427510748048345355490485718184132738214835232074460242413336260558149228736765083766145518257095693699238206350113173810977174414261685110226568221891988271524351916196446052076796102978106112358886352322683872813110491407495198105536196821995503375296949928497543904849317826552327878090535890651938556035021297980870737715649491265107806075902443949444108082996549622539987116136176698337804499371369000718762485527628352114486885437521744358832797108215670471924952395199376878104655106106909552829620808416871572032856792391060341106338703016480700689990290416551239395484142224915950413652302930497327920086620108748361672237994911625512176127818978182321101199592428762644635589068778088686843301520834994800885579698662658089870197826640793901654477606514995071988105623344881882157481518571555251166979235926387596614848182211201176951526039003888705059319201734499799575818698965096927304770108210641769500887924067366782796571423123135273338921339986349129950718107895911778973304065014183215561066512847530935847290650224746033614720894570858272286150449601697884330514823940417684963042481085261167973030004152920147893040164962183602217703767479702034814620578804358483429129570172793800369070302818237416720063349039330644331877057495326907584740962422229194216910806074259455732769031136420584623393239441366275629290495426680311251974358344879317982131234344245340176392069377018034645401476939272199066631734171121010766712139278164721880501791236156547277111305581842554256185278936687707978304552801832704010044194255785183419168555366563682706910103515919265375258948409433728152796121354299554190618277164773063603170018894776266757479539480923429177327723912316719882915325021836770764201154383231965211573500620991049793730659635082504700686175209198490020700072038045351839475840463543595398363461164330547825940712597552196225547170114953514672628424071201070179471057986416463420102132068293707226834039745022936590864239760168458757174166960907109433878946840851046141156765954413903471725198393011958159494176854248997446064192108402699931202210754592641535258170359069925331087575410156401565394085250657495608269815392608981870497613201227656428492110425565321873692707088104849330782403854995978626884213133642055165372225449033255183057255382152964922576230334720762443619251896843422298698079690280615328649265000182083694619067131404404114983472704883074282512572234193263946861335194313220468402367113618687197440874356365655889838073501018049186032260943726699056002709301190022312577250698396956109549538693078175113491775336604173222847766466036677471309144709652847289480445131826783971224038041562922952776756797278246623100950022191224425076512338819166936666405624412450198241128223396975720224848100830890037612858048363803141026968803571742223961583703569347978995117491516761168722872376849013550812402308253802167334754203941596865193229905211991175645415034122151834599734765842231021499928728774757141373694821159226767278551536801513090373075602787908700892555235649613115396377087733805965714446086717553197140750539901138601872967890471168646652950855127004076488003882290654289648135763131281863935886996453980931034751152174343592147351143278281128474442744924482685834801337523465661895707770877315635962583539481068790734973571991926875681799121265999391495943963820844938928503163472427839750548645767261638762005218930997355738597159231612894572715722212489198485793584543926341089719295303548597870080860984376904027877622111044538356049578604457867672403909972576855590271149816205102789620980748531326426792169829240237795725394378018469330671715631597696312085626301519310365844567318431853531060395159068029828009555876713361439694485658983079313268997408718326091482995087301340023391504091924217307945803800283505922215540845117001145146721576458834126740326399122029273829656783844256313453688313181465069918197568997522926189316862523898332017937623890719094249458568083710503689139370504915360152225271110669777507311301383129774958672671242089457072187959160458742167226172919868431490682567990265385542055293782881908814359064903751569762802045771728513573759124909514452521472733801736017816256324409463928712079702443567474494791154029001197038525011829404472880407640848855428048702613500331898623898396771138517226140191254006441839901186818680019266940068451278770999296469243512465732439996533121274604926549052650511550971677977357520372492787062640146309058585577562272484035601339719784617067281436730793331320590963943209753335713179794185835051131191032060466588517750124765243654634975696896543327360419898469729539931485423832126379922420062542611936606679884775496019894423857372563691431428496479326303732317299386103798828196691263190424775418639452472824519421715506598721848860369881670947912696184561783047151149348246316014781120834324198521515827599092121558539750531154022900006284627690608023679684860961061525794853489840895405196514763076122575229045118927278076558820208358454652262024912111851170401073537811409330014046637216483714593980167678433022701049431901855152034728440019484474004829541727186021824538148856654888619067676975694305681595521799305458476378104526863155372514463072877632938673131494319509989376862022748484985197481927976016807191412677174678628229249808270467589274566957013532525920067443207994759251617966789874975097479529200583583524091033142904707214105843612989773912529417779236592483734223140501363526954292449114740262722959747834799133280873998908189683809514918633384294927529806010418865597572327642609855166829587548798687451353684778470574982651799479500620002393909928161895408245494635783195163792654275958580836990279642080803354759528996416171825415443300890500282463604160454783673059607927735003921013545518368514578822079926049758516126633539443862060734710418764188240635768005345794967724055238905360005002429406083856511177911091644240757189287018279842570765812821523510669543101785625974499976620293776792786618433583172408870926451505669426830725438392375835656905501507924731846023482075093827283477205624930051190112558233994055525866628738583379743880429844862310892507848992322654713887139317703272139298186271547017544208917011847243757416381758876729841245338553549221554799690258347768514922409323954221980769830497826192543377697865249263316520428215329788981366316199335022427856112919360665709052157408206521997289458109910745304350969524800503434301257993669956692592916760137127400513293581213017388091594152556950807279352712957803909443845151550156397410482642134518289217115979311449805895740373396634115971782130892389011938103302681844797823476583028905438422349560780317658528536841835175319980010543845348785526723287538229090976472569189020320179333636752516735593942983387495549166399527209702277314706966490428832328368612853464604487514785864775437533192738300954681198590091896183312383878233285155428266191066494406168929203576899886631289914499525189819588131960340592022329051467002507893494365019638788902198827932551369180642325865467384329037948138430659139566026863841095590263003449359329785825651911248015345249566210235731895293661637396253974043446938320590085357608188929197568860468525954485436863280653090349676360097312831735451985797168723475054797670343332339803637178775608716022314433780893359591565387182144164389290419595670771867553096222774376477024175836453103390012377794103097732905810175923094053418465944915700624904332836119696430241088981081050126533857362076602063108155466904136658741605534745822563083968857916318473053391235147317095345353083308582302044762335404544244642556397151080211670252565534782592544806313950231189892078385316382756255601375006890497124317040960623812332179569117322271378393062066652997340101481531061725448989582416633744352002100627917365242284689103006072509815631234816638868606657645073987944385560846392227833122631879608901944088787945977355542865798671894512773976783605321832509429032604918014011808984802255416112609229546874587313141522526723379309994079334776857534122367893559381118369569524332416245504334739405006685306356735168307832488160837426077690357720497589497123540107726142856937301980763640294112422519462134712336090126550103715182810377523616183312625486375422188524279907639972823032267631576540959628026433103059170839979368531977669698857453550447468112982322079069641174657989973918345817963392567397488079986389200743479858826093616612203658662541731615197019859689831484498297456112262673270509738541166677635815983435345921879054899057904853186641874374825198315545251630063087818619586531538535052541914226129601624859166520177565078507877324799710957518886340541238566331281054191690896211783368658703397832407583001296697870329548807624870759264424791553911833038250577146700824067196386808243397969497555732959602300955853036227748639115139295987957936089959446712239247706317036455716641377635184067907969133376191918120582794695418308035903057145132602146009627747177338414502176500946394192459132817896754996388861081272345239000080992619981711131238965917671832318236827313579775708539073963633338854752625036337725700334540984838462815193635420054162081193553889926292533962715767808813794427598764647488397443493955082788143621611044919005192443499780054429278023539400816235721006905447819244948613105600589029836036520896653230140806638252138450640322202316423361818329830990373824956513623178311538093337317020683607305518720240840910575171428177821530200717813846961980598157709389894053191295647331723789282428677847740701268608805281507488421194526002477427300177720120926321617181598554029431872738564480475600293418171652793203223316947539522520640504252962642732185110170297841741836083452827227201709595968487326483824508018732744935667648643468839360857565579336236287327252296604483608805881136658969018376872670018729065950014573761359821919285198083890888178129923411294523004282746163637441414621917216114806471906323196945457252884154380867922489734138493830069324138275710601016018739484431183393395812321599617483093516808885367298977824134966440404501006044272733016214043624681666636293273783663352987708635998689009808930917149189933431150364122445106792641263763213009991032262549147100812271962396540861927846452576569615885817126261355655036424242977569925293866753170979862765092197627179136580997821872135750670553433301089662667687112857259453592166797461545884170851910863934682148331193770839558493683178626454864821070577426299132562066734267850635863229457479826015144498748193106536977617335823935952704004701348143355433731590071636875082730686994692092238123316574207876380720347309570322292122068243617317910405128850624879713125495121744491871179055018279766280473514930612486702251028472090986852611268026767810645959465629050045017802934853688499982591014453953989839132212955185526224689240837175455686531064123755853813738357596757061577775020251080840580160534689325295510990977059558001271636670325765770374695317553796758344792129253019800780979378514861558432331295468471045387989753346413946114796494555248785095170544693053203651165763003929914296369452193903963080492066890058437134126395275483184965797866421131184843401799405656799703042192588078628917935344433002569292152845116572349919602678108831666383331746035624369429483121585980095261205978854266706131732031644361113948483633732923636169253950654008848916056732602260174964474598696856209346256594186397916016586660730552590915671863184664742129870196022806563022325013418656934269005841919078364778631882275392283350158529016050265240536659300654163630551142001146490894237357079465512545180089615296615503640607491145099011016825022569794930766464352213898320360800210032180714487393571690235163857942475661430905941492544498641593620660585852294589266924441951283591860313261121490373408541026989029881397615365346115950407179812563422253783979428690406944975289558581391407134274055688967686493487918589501565075521231287726111183911590099765018697434501217937445053912583317432198028445896099692555373545731936500337088803980287685769237502719443457136725926784391761988039275983942106579038603920110434726783716306172401216943049992882216032790673480483455429011583757910301295917319682896172912028962092053600359205019762157478834414551435216891955929144618476773571012589965271228031364073551119912200592703834537052443744310968295781088572552116114512233931472295882915281153135978692860817801250352882471091610725998880211009787498142104924751752016763237293230642129166892686755336421806684792819805284189844911548168218492013957015812142719949755508997303668991862772154873677917431201445262860697711225356252381178175239167834574976718275068235070752112917534504590109849444047660921432033705556661933171512830909978553309942287953334394349915131586055834572972102650372421751585899803004309953192775392107664390016008372356375349516936599723515385046324837364783149378957735333085502340267279481734888600417410267345167440322551155184504144393488508090090462032142707905437282069502500529552451082339046077330369958272035396895886886309569935420283328729049428408076467798774840045533234028942168740332292389901078836822314981861432760624279824724016000336070918479910442332068271481636462759068463362417294676331542244110646455015768278609830057879704391118727047348024178358882060057602239934726376857358169472854693870470484136056957551347463329116970666924810154479042018866470301450438663429973521340695204587006596063068282748794256492928502603863638573152206605048161807394901041564775941880114506600219542098052755334945549723413441593908766734601119027702899351065751600524074876533052071269024519680975385489173182095421991550578772534616962264678313790801274304873264881469578262317182654293397860653591570286749027705823212950378840629371876218184901736092603709510386764539070106869007422257411242136263744647652486368131105885876730819537298235226252500748524392016287702449241632551344022919952874304666877717570079172765600605582319801863947471449932482305428432113542082674657017189879176074660897815051012328440186955458882762586057676838154487652310999230098772420711285658345257311184565072670138714650331991745525841560001612048471469713653995732027442460049963541873659627317083070262898699034912227935782870397256245107461752678884487326895353196892450562255632099573985776708394917126040375261267628333975365078234715352514505162299667546300252823747161069549999803214069155359501818614308013088614900984195134616293222450920529153771072227802467948696398137381509465207620185921740470777437493006852629557586341397228686135520010342885083527860955105144814154907264156325831095633827772815351054449631340384229371884068110267427114882084210495096176959568642551246138471324928088855709507232036099043520891313769198987745760402581742668904796816475046505237398694295799319042763206815861093109345079175372975986688247962243556645255073668518176951263130109678981801260013897868805697004832995762954933708035605034253996721326188264742835845717826726755606715940746275097394212735082440765555387841248420981201831185524369754179980323804805244394734462677626199428672833559029608891371345879989383229227038522484725070334782898666929558377219403123291175032186688404759825153124207559700884594903109762843931836178002448974199642666555346336161682354870418958693347238031269148618971910450985662431421489310011602978807286157087625964034017776140259997849912837400335280155145403190860946137483784249430635607437270174843913911805923846025570154476319915743431217488340191337595672954956491999409093286924699523342695347446693513436751200613521351011978746028599371053157094733208763820624425103367485174460732245998003460670895495810642795936878369630979273989272043007983410344492173270864198781437626823411820006214108465568784453871015579869890964783456935871666165815075202350633530095532345711619957060170208967677624699331436256389096163945361026538337475269305886689138399320418098842848677586577121197948771385701025563813189730670894546118946988657341271243672696832859686218169507328471158491019541583657357575954229237122787349376796579407812552138383834294803496260076244341918535829377587078247439503123915764301649862863728421909353280805591265619164819126197378654395476926037293824061275732526630941610523337125162638288158051098221216283612653622583752739059668464044969075402303367586136371651468050304062993416949472326872327556623272968858525014180286856517827866676715296302311056210097663913914863064109420278718217208973830438644464741376327361395953261033878551140971388416293640170271239219861109944512082699640581473125596849319884412067602916335597258522683956207843394888409737067461172054379957883418766296372556130684337207640201592188788384077217458259369357498014847179796738300729088153559012709423280551612525236316782037422410676572563518758752133798670401432130167046417809867406996202497528953393455039535998779419675895701219060120585760020081495368588336476353343064568536957042508790070167424564662748616426278248425384666403397335821263387908188036310333410428678600883253566815856376581251387577952863736632095283882620370783870734821267476937730026252152155083749578923865517005931614063515891035013854723715347823985493310528308734230888319633258798145544626497442521541023702423926431556584719938042685939724156641439401843810578546470634765747584030685593466847759864712052322898460356939140342113301191965481078380989764235125367694213510205735303168387182846647671780149613511577957283417046549270969395764928297942084333001216056179535075431152883043548392905358483970214830812673687712793594699482584612751887200635593851297208228091990537460974839613165916042427451139913744227622879929534977375570594347501909558838002831156921701905429937062038036317355914762059009096939733031080111836659168135647775158346765652932492091061498814461484610148256044746727244966223519781289171015309682227288504050588559867037100140224329468859668546573282895923644322875506000589528983919318094883243139813435601727571973895528776792399665802849476476729355586655702346739906640578096913526439114623262185619758072999965211601050134731223911551615412294455834818217931695236932778808497419529779740332552090273263265094032985673627660175103774180586522689521244868545837331299519969058635763253197683782111720431393752204548049733180943536350387368161067283380304218630539931918207931821264688720663159475705718746823797998162308393415312938293563352624270650886164658617365461120604983662370701182531890133882669540847973953747192598650432506763306639914069192120773503188691117577137694041600877452589502638443652579518068569704526296368985894339840338955480901949503110468418954661559267350851982782581280563421474173757759825537614903226061303161130213621074910655745176138125051106334544835121735784964616917555952153466016852754107340852690863798536004732269131268352025753925060652207872756224115082489471460450034814242298194898972338207918307635313674648180419787389659900889196864840539611722195500183848590323062850122154659135822255960044940422247574009543759045210892311654054879840955866973819342684488023456333768825496315331420270678758938117338900419911602586378816172766099287337632485493864589416548163253289223892528472176084413051168685977819829744623158436642213934917557107083043244162474868683705560889646244349399556670734024386654770613811784264743838788298101821034087241967993530429347966561069790185878612730704075061254989026129798651687926322974524413163664926078187250624564653973472691595264078493237788704460630184986935201860135616216658829658400875552899692680155664018635029056728136754929918470399582431305003669098206033562560706597054516358693336690781961355866461815215062790301417430990232864856859140700867413723357737607869278798694176010367998341910652483177357375326617188683938332500936179631715425934307125164135749641410441120024631354263096469608962891482209261318660079622024110831185850554794740920556755760916314271416342871718290080127991879586751520823176687033567712827715807958470625476654378576673902348833183698219910231101274814381689843244429773333733175692359541696100132088049286065776631685356206584737471894397310573839438611627658194436371618639018009098043844515104986875633588974647059221875971247180527534014597977352073389549634044999702302140500935364979650023358324103125203092101078579263741598841828764564859099552704006964328399611468942463752161832598203605976409320463621197297032110838979789013261152189133440159924465278281994467275320092099405418264032219727270187247775853415982546747717713283756589927385543951275529248204320318041769249991498004062253042193389335948020446947972584394928900808048464386295706387527534214717693726554647977715238404891398356312645135708008261420282221361653979947950483566386011860766824631501608627165556419602211270921486785346603639597156390898185911468623908732532908430533273732678432975197993777674221972884949446188280557284284941993777911741953593751662601212324744233141960526987723808206492095147861904162270631408112848716853200190039120845006603903630653495028726936046707759192473798376275753513615144341184967041227974216073373047737733747552555908958581561518278214037007357663896365191147497932968907163445203816619578042711872062972691301156787884246925833392319267170130990393900583730484340109571849355660465587378313248860418895314913461115219444442263126314421860044437243656406682065184622198982882251991294510496308620756546242315588039717178191098600394782791264593906259068761951794059759110350207856835801230255479474696545786231776709621796279396331828690038430961565624343509113153645123833564890133124306214174999255414089809106975350474316897311043812033210567611320089809264348655972239398664984327865157705626110183480551854257811332114405876547604936622716040029571205148424985537442765401996440473658686408675831713522807950647377073307828397808348137454206146932887988436961424882346568596015089345862720035800653199489037248727472984068526358326591128305433792378319687002353897527731788026666733024568133361677937656919300018077444146538322110185362652259227819620743467117785109659870038397812709684827629717678201270073561992183162234767284802908376330451823521508290342288237860254074658920771505640331450075998482072004004201114197649402132925564142695291316864717649197386256752586545552425462086679915565160727769230277281463539586906201094920536468644119246472208609410615952519946897843073756799905055492367787615932287555677140713918947852202070225299372162316764733454416892754756175814266158765952115251974314071735505199690445851007120526326222838698595345962303724762235177811655973225124334384441334022605619314527798998088522249783745811475199443515539529154393471638728914748736915856294885023758132725021595098513871914610306962394139449871830062236159321789060850876500133597326371731034379889248149237823152956199812492114638334679790536787008295782166078493648462751522381316582861119287049340475909919401770674364094911167678242906899041596187584167330096969877258122894903931811786495593258436080270629773480191730019902075535818875674200760648368864026813703664541688596972236846772563111538781869354319709376529680790467637962327877792808449293338141380895444370759165590734550941602216849001720619624688849345644669271166899797972987509212159584269455416294529719244776967573782035538501191308566708510449656403114847734853525840306570957315603326858398934079904451052571109067890428569620739072840750703532103860636649289152778395546322997356757417789014655271657487185716238022193815009959891491673315522526796362522980896543426360295670254666265866332933936833308853107080984208599233493272714591849125368525122124968215209895149588708824099971868893984821062425454322427619140503602922972840528011547320655165052397811037956994491367010370847119866718015907798999344987651685268368235316747726025261394962626653813510054190049955926527672876537066161868498736836048560856557502344544153584802132465475238560796808209455766623669146220834648315074941390844491732771298699264510743875503848524638802382836435107705408603699072341263801821616317067728216711227322401550542458159597641233006151487044103753622335417384995891394339688673391759189094072219194303346437558230185550677724684482113583677367562245511143796801881641326975169245025066918126891638531362591912939229401589960087804391370978050344794469251819779006715610054388360820529913000918151786671689839203703770842260442810382257590658505679477030576011507589635528927618059029649766795988466834691349683174186138909308545471352759113396585053607576140702273872603800642927034429085241649599813960553064203572209840649888847038766714341127868328809227358281093371465806016685026100246696256977176183155158877778308097676191696861370725945335716291226433855132826754113828311527552889891845231065153442064021673554254727329968016659141476384081018006016622865390343319304062380830778661921318069716963697249777003154272699224175177445099196847410164983821748400190553623586104728765182949189666072537684918999141937246145975109605345836412875253262907341525878790575497524784105179062007467764518565419205978390271157475516809317854357569684981692228870359168292322590621049198547326821784420744983089875981179725606613740524877726783604690782770738954879725233369375586331482241672091720364984310886547879767548624604757459830202664836264850795306191525816772772775643033500350799223757893895775359038327522863369107435568112120972523225675865295221967084947505047571076374072592729473347410087130273404522920105010886182452401504332673667507793002232702733902527699594271512646409466468658329882396775908536083039324230921563409678653652695303660066731061595005385763795401158688430102889049102808314335126183448440829195500231377013317157739967642755750162754200868855023488831689511282085994652844066152432692719998914919188831665884199216751380804078562927730108990005747529760250754535185811518191123123051501918570310650954383284861193353113336274509211206071122164274874311344779728953412428286536928544808518784573178366320690079717332891131462606297298367497730172441174959736798981663476037931134903138261588576128472716029832228735511751852966081886873409871468189983530027074453736892321774801289884952630679932011033310958997181996504495761945319306565937527945585253267464499251511486260846200542494224189534791743067449671098301100782520342681612005885333646020620719237963266962353427524523143287843204734107708697603060323147958895348398219758230104414683304716294112232302891528780653901095131068419762534148622553841308327323600387171935147834557271501203311171748160686603410177507423707501816271137089450534698437260400139161680378912819242789762626878844671969809667107083045052222480773793775721504877908685433374862729431647868421091727586104477789894232436330465099880249978182109444760314862115487973690401536088057034003234075061221419707907423061056894854200599161252743710057328758988416535476769115310650515154924661569596681897993481091372642667966531844008366671347745046013476309780380340257275038120881010998989854229758519207128243818550593365268299249037259165998793296835537597605043985464550116384140214434910826216212274656993224958766036381088191299315156583269169385157675699512685691524200438419545805741311530250295482328617847524042002316238795719331760192207505788290969036413589238852249132526593078182347321475395124664044788096352098918578449931661770614366840682383445857047720353001837224364893353425516494892636124273842174231907430946816785229422371521259750052437134949086166133228022653927056148713109746914957133585381500929376453773460699337402475367298095725853804336189630854023842741000409784619096982241261825368998451339882247295807295819228803018116494665685406988146944230827934486753711086974972433757547273354460887033140606260280362940085355858992732992585021463395435092780610573392331212681849042994379464608843509951416955369566269482706985120123844736798290208025385417781148036754433562200573982515327678543939757588177505487183642168017481443935547887630312983899826780960835540270679729038013237120026807144290726653748873066405728349934201046153255990939558200404540344680139680627633962347560224667225802882573493599844757702485314851644894938194469309863808280513685660233714916209990052601502210319660423321867969567099716191289566593017480521892735744384329175913324826681787520765329197826276209771264273460241691644014456048258611614150170422214334109264212950967208313883313567054245985461392397687625683631790237737523203718462711245414394503722158229629313143402300545884416487322701008349260247410154301377594791985443329525521364257989783036639680024219232012507160999654021009338688232959030860143751785013938690082889766013893681210673587775268133576991146508255562310139771437026627367664168113065888222737601807986690364824043597823692397839015119762137132255929802047834264395436232782372687722658675898018464740675446913574695953871297700357622927492329925961274808093985683635656387207680697377513162495107176268439126513098415122863885291085474517277777133445720555621462687062690303418419393155866480676731091976372433045396743056390632672764189952708824965677949684603393363062374697289523354597604877243238151959903705701674214476577034165859282904734883503901958035076041162528919087505723344777236538747423261299944526542283587900916781528055439048305969473365128191435954004131795913334260901886373816722434836137522850973067486395642974352264529226076858576903725987282831981787589377891473732962882459731845979377080963099427820378489628254073216484993947934969279280602772763255717371253127198642754666446331948689936288999726545967399219532387649926815104191219052042330166302796340103568015532466858629110564779167389049879164645969223098298057674728582396989869052575539825614367667628174678577327841480420147296598633490375049237702114558815456050695259407554410533521139548801536469933454008148204898547068965547733755555098609075878582173548194277254871760079580128019561712099895551388428080175412271653861019530790445212668328004327210570974750574411372223769957330404212989640363822337367524629969544362324804652435023235761099500951036877949526996059035887872572983419165481416557907801323955019971432481929654010265885801323745101230062004836391483001947561012310979409044329193866664946853821967184278858806412467926259723961812829635543139535626369682742324797318896271887007811807064687254334737164003266486469781803295507716079037016325492678124367842469470092333969274680047259847629174513973272001230578765121626017847498628591120020750526121893962532811894466385300370587458895065110307521457858932265850836340370938991966408651323523069802481462896382119281848257472970500608827270479700665004084542476768574109047157735895144104066533916961396070227222339368347598235177591417776384479518156351866449100401870269574117901612563942315225875391533057590571960289115149332771814215499127719064794059461814756419293339738510263638666506293857496935797497428350685261303032333713831214411480163497626629143112208892661172568789010999167480069264325129043928742834463060995604610572051517136515683770088969018157464006189630880328691613745681260784746588041405213752935824477186812305473929210105337997030425274974891687755010926662743503173842822574141385521636333427016300209163060526929633761801871935654879809544015308414671509149164798396702863244127956907581144839727437247966530850664196069457026584742282086776940480032514650070737088127583342900380274018558915555252364073770036992548934418289458937665291624076745648116498805920693351178480033534514033693799626273465442025737548299270689728342354146755627381885994157079628866882814142342658855752877922274302451964910704485561391236133018135288041135256367213593477304328138501177869126800971038881141101866643660951281188009832735929384033089624501206882599475797405930947356625442671260815763336321043822497605802794500759967884841617930307375957371103064249406329354674277099443433936907457022553891006586551531907299223760886259249650317723460546368911285609797418243650391409177546864734611476800435327373976999099734765317266389909805771735787837678744692347876287623579245404577714182270086371338081485735219777621884099721834239826693376259937752069312286110809654234773549046281194954042775656095429638842502590781969686432902614960789437289353150578167693176841489944646834943454666859543331653434611775239686760107068245001661378728813127351610163274812519625521163647073188837351047055974513144538996697150317062590430555574500440285511588247041282930966471500491080125795329798114852186146992551802351948494063709022994857788899431541806678592373909918329682372535436371328018809500476800305275187188908416926508045255049618509847389652678836978707045378679990051425497016335957191532321870868960015807749888479112871548582801378076380384959071521957373691677961013213988251822494786129600087278028864595157092942636994455620088597964145276066465640869766456561307763881242532342744157336261089963776601487092165947025502315990223623801725661864018974915707796923239449476286716452532927007484549416429817159160691659174814686678464671848227488821335650369332229864163665487025656769887274562577031312211592405699168507567012850020841295943495343269800685424465459342838292942756507552617243186904621670436186100661265955148924203524032726615592499941361963642023131756042051235504606462249463657129568980813976741805936666910452975426236531134066782665416454492465504300437146753975832033181492187039911366593754409952697927768676068165160857404365523445316674918231333260021628454275857904369232114807974427567882398453085199719963009711116664117706205722162355001574390829004192510368023197596307603153633052518683070271603926816278870637325784600218133890532086331324830266504451347916988829142223152322024469581242217086477964770604034475026740087301846140909830644942011571993502221781881955376192773837035588041651607319084358776756594213606805245495194262125901615236616960259734513136586074732119803981279686426826003615973669197333092573251424865480994336483689124378472967533005645284922200907283860738378798926074449974393695068791417037522808811893069816667471452970186303860341756922273636362637686994521510327551852309175347379473726303162480381542767351348576850279779459694667388611666662208664367747730037362772947064336637462964067312781653337111593702757229791723430083869934553729996550647382662008187938048347620637791820213275786419379113433622184969527723662718017507993132475554484010178424807279065251416281986212321325192054392312581172215108596098966567678068843460502398159667796485324782237890964913536978457771691961794875149081666456753623886864059616622415075565458071950277470273841912516512449194862916695140176077774900367108531592199751946941275113558659598198235070946076870541772368098789918679985007309456867509977534690627988553763135961394708606042911535564421957468037964055055752777588698340991166811665442678779294046214544885462554011486662357401227206117813938424802582351455172654752374026321752828079017372232137788972284059102947060815026787898632468653446357600826885921126421787584111490471431335980573946532110709571190037312283651931945685342798369500760102537262000352497168669033113473086728954743743686062029649379632721408255385435363583612603412171388835206120178702155817727715462283325443767265380651227730337565666605898358365957194621352781634168669399683484525757937373559185934448021981531232415753007510042794047956167802566583019714020316711404520855940269440760509256628828889984984668732651847257257811563336469990012835375471376850736474388075222091648072451450984174523837343659822874350148198552618226568877521063136270499098021762398832339034113647082744992875304621853290554675963547208756206709664483313880644958308148377064691547333111178461163795445979010975515882561238639441901163133394354549545381894973821054054661782166172326992414030426608137931177449793355666876990560930006516486175496075116601214288226668665337473415228673723698245235142770345858934620653937405362817552150345203200951002218405809263016755355161387919245503623945850751759026240788037690760289881299175772549764197718239395436583956230162222683008363726735231429987140184119009192662566113434048864879869896644722777342283040507370677255102912228743550023409951236292578515750034426204419393271455793574732905639130208404323113115613699436497255586786421654895009370280061281602082055304403068328676284542176382992500931084154469838011518614863294303331193952931854068330390482771550561802919892654090587541357196401300223346903880589013191230434270437902860254066689135955472159534056606797636521093607153277499016773912541849795942705069256367913169740085417127623657569697472341181841835044327465914170116557100215817091660579924106779474647294498364137610871054267359645846703484246479546871980414424344244237867769843855524171572078861595640056089734970505725474734349113590614168152115141931483857858596540100976728542556160259951182432296609961486343833912848704493572772931114836999691189043433193300067266713785664977518025526725963403967495673426778137589885073218307461711364874671035171490317096087418046832136202597219301685018655528368071332602688300772463668211490177156625363743222244678765708249877048363028904027867742362053240872323244638682094728185567465677311684294898863380147964617254484447634579039537245355178152998245977038629466740702209392267431397348474482096833920952699051406795843480055193650239354425191234253118378866477594686627870408412484571704372331262247690285572328367226791142572222795418628247260300245949334892168576002422887077156289925497674457285907038419282091899829452041439191261356323856287893954453842825038323939863212001760428266909368658165150254619769145278675248801812963123325819904557987233303395016295502192665143820322608224249145402579520749585163069969857289589838935412063845540644362911218927465168079860617905955745413405783503724056454724582748093116432233396100806050774458770909405785411484180344338046801777272039057733830945504448679446362446990739336950803384841598792774387802728179560171671963341779134269634110437683187562417849598470994935051178292787817363306331953422844277422998477317956601880263090904737071448225847215585537511905191277693279781101684792324394891140098533829750105568232138539170580905193533116506139603415131500709875278329761083034351727649172603943708828329206162611958008425547753759327856967238388687903373773262432035952214310095750836913252535431614754145095394678849749711045302732020895212923948678848014598691310877613675182099514184064104781392947381260951817992841004110965395765405741195310105643004614858766079690799641731581157579731347767321448280483318464858769461993171861213194147126863990812479793189914356959854812118017975907050236794342456491526334550382455601931425427292900266232240445530417098709377460258533333037912570205272879009123740858008611712482900919348196018093818140732115828978461162116672337978233203766385841012812874983146545762655100886167664101523931991198560601879600558463546042379115585273637133189400635557139543535735309713733597797741027457110831743227258880857995802878782380765444433596971468327914423226814897209021059072475596953883618229288500054027422016405162741071529526285666066712055229697480473945974094419160445186150487620527542038106240927005981586132647449275241171644384063798004721204116688045274782822348942887234239119880081481542004221128472031629445093500461730273770639737791569869224489229662114281960841282393628613150255167693814318923720894822319802350991476730427113290955807550024055388867295704590418436048684350683876786538018430855818616718053762637501263581172972675672531074327764193341952184790505787716090275882305307174291968615484440049676099551921671008616359146378782233709402486250003570784339902620290109736091927370058540795420188209376265451649345353822701180480280121984407134514766528032204706891075503546923575602202935416421889926056592341584905368568218503980488274486361895080874352940769694237285290738597940345936644914766611399085670110961424714217704183522292193156594324643234072963978515963543702553961810733634966659027176258158127780591431087309342022170864240771862114358455042992109311301198188222034865036799973915449676103313986873130733176426182050384076411935261934669076872888281872592641859175256607521843192423156724567726919610545141526760987512337691987418608780951385598983123507380842539285129344524992812464788249470318583071732148686848905991375002098675864367618768708104128711165328915397133792535979384144942028724667137075458204374314838383418711841721006335711412418190181824992909685874259487435216850089787357822695145983456820953833576466734728098197176863526302799084448946801693528073739551775247703317168065150990350461312910798624387373551952304771682825807171545432564283234124373070102795618320135109604498552537173152914377588109961149866872872979387804526489034674797980099376990627078391837663259044696811991973511268266684269419010589685553264358935103710356016792276050202463133415117492586630363766154703993765910201298523769313551682228434014618684355661928437584503493215448892632149940087257388812761095826983102855740886455434514754010369643412636667305081995489757567543902783775922981668831924498402443730986605012292014688813722821426983773842442590463251140433526206508278640750512690992064736004450744186903702888432714854507624622124767027927780030444177629916845969645917327101779970083736780601697977580814826829089087149204777091612156584734406785776533314201700700175182415478075549251406808537784697679764408266598609559206191601997123697325401027943361243066828341066988638105785813784390710001931104607855743391065207505884202786150416757081072322698296036872629934276437363875779237369228990857666215792106262703957938596442525973233630337535471338131786922344958949827862118848665931749614695415853586217034103928081724926499713086357586117680330886732214277769821605314141583139195303585534245156431519325119013068491903871190160115627491256638393935061781851510745466530683767298859155053283665678326112910484088347935714426874549818553171963323952900891073053516514911805982980908024220227603512748526856229830178702870983790293791812759191575778988219665339622807979386424396799531892723050201831147250219216638597441120232538662987003109089589208666253024180833873231781914332943297128568069326624544338098991659748906683135452444430734427341267235601724051582628985224807905107131936991109767753874729161251462410163572981671107627365321925828067175347549743937320555439754039333823611465363610662321047914093238316810385079599935703646760703592845420349535590678192220430030509022299886743729018642555384605501623951556393411952583958320607016691596538809995303635152567910674298828579419004443180488832844409171469294818591244172754561391280589261315431684511992018360238357610311856810553498139777611590101244441372631772054773578590132997655622896366918312836619569349081883653503226535085281393577819435338364133128350242662472768850905120480206552974443383514078187591998856119508926814260111277116044613907737558119566734556440362050127164153153428584022067417509628001529929739795987954908881111546552412474364398439622287224886346993019972930144577600587129700087746039705709392874977940548337614393384934141759166820401569670309222318003040540481952152613663963145990912558572600318591767000285713840407220707754536274834004963095807503065332932127338549184342984879193028277391044906160893950440606194863522777994854487234903284092963652981093986634904362486215878516980808627634618245145341038396533623974150134754362029780386276385614461425231930173908529240431786680473122118039390936134230393665758345319895586267466740400744671586971148633310001232235494381040514178876219007497615961545244322770531757414106021400692480381149039653212231548727587016039360680427441414933462895307758584732805168505741400777143720279178387516557725780658250434460501754415973102688258969083103852324867375845263969164561308119562829998169995403777909779385514487681649389005316618858961984506928698976790282225753488587899013945638613396235594012997905308345268657419168754693948469201350293080309914297406069102050098312685188693832288557173428237493029563249565330349738494267122628884713835248334798368036230348447031555361701312456877865872387116327730097022359260323461130701322659320107605696200362501981930695664321760502336654179737666031290916073437210623640816079002104784504700515786768339540425503415796226353099096417019982145439537109503851420646587035760759733289770368305429666355788898653692698252606823603295176290977025274614476478619736756396010946635862294522928998579143666944999144477938357455829253580991250995399496338303506035895224017259855475982800057440204826212085791357166244893157270422902356027514515102769144195179229956963871387578739412580045374562752170458548728777295847356646292067550761223249048891699288330527830964016551983803906015919159477603232965861814459052883984572769552865909068486918509769044945802683643140334866312613702359245485502600626107391067512695434185179807788809760419731758348966493421784382331438088077131147548235766652950766028770897913393063724831023127877680853570453293720305792431668742183407234147610549814006373219055136084715026524666493083139402440985464798827865003864705421749682293698239155361080404320208468201438610796369476200016955423874631347405486056320359482121190032726878652018501111608103563375256214872405232994188925198860950848424726250554032690328466598881219415245650596416988854779945716714840202734987328623646692106651734627669752123734209036512867651746865783957477142668986024538922623106977816961186421215827444333009244598393503928849766448795284127471349483876644256682377666278231876717606558856124598447124267170983735983404315740286788433504980343394739833420804181241785103833404002462980123146940441645679265803096530744179644282685492384212334058261529842521127226589398983595809695594639584187956271573711727840908107964309510960201747690624427837581465199536591147240214447483847798755025938082063268305572731632840803775538663225105601278138620311103371621813021737880947855535055503522610309194838415230515010262796634197291112264312068640080934099984891227904949405661212585027625614124889537352384148172261372653530832557140417325207337492362581448810214759483962775431119681093314267929557898471809964777819959387340853195307880641270029381647356493454632622071057896804723027847962185484903116591045334207663523948686090292705541887568719475331007856071021930830604293089526727863029155505534946183713275061168684064223246475599437589930155425455575181805287094416077428094578185055094106709963361391951031221337432954334419606426551548995011315143003992202306085294777740989793631610927834071908797496296604356729172937973492822533890814309322611287768540165671848327422607120127635179904135826040381975370495956762152726385691648464586871124141389593939585396474968529843140990520603024769685883919132581018467759747472439270492450526973584585332451565707214535004322625981432666222979873435871824137186220807572677393148550411519445926775349876888461294636811949490107434260928197805940261483923183790933961740923614385908706357650054948084704285075189672414781844442739057812568121413745643073228666964306147341704222190687872985606878323928584029359195701066132621288783726457761661852206600939681340661924017107121455087334938569836264407942172793910699049356997509948957802226513607060576841494335824062820039465977030830775576141683119071606945918178683705531365649775020067084776618676690541716359893208657143376264530180375712967657457283573091048597470785010090922853032886780024604216080300777348437248842921371173212712990829764992097033143656553716013184954906463041659140744045041584158910983721943916473385273608766945189480099995807559113223479437775963044793898368379195003063728569157764947964705111079025945675444188478263155666722987354618812430352650451571541119266943426618237691811145451981664232940005472212748162808842518045406907905113254440720459826519883795189088982229121294183981432816603223342536509462802442129678594148777535516084705715653289235585929059479822029405694306875535776787727999135623483591886908001210028845255386476214021722456063339448925935569902429001094152632110072840136518994455419381787718304783149823259014917169128251179751151648469815982990983149633544640800341092890593913425654502617303949023125930149780518578383286550930198986100204987748448947854243351853417907119252748165193293744314786572263732638994472851349337096010017863776285797843150900624367919454444280355707636870922745069375233194566899746528228090431117518252042253533518072858266710645884122957479543604675085342722684824078922810609687179064946991043534156338261702375937784401010586949129541543210056963708780759061910724777566255409493701503275985826207638669900707336447274956732435262909849027765054842250175137035264057374763497164741448755704230616796875703732448037110652913498711871824583167391804891669946420625429736207727565189198175397059148134146067364208719957833951231648407200731981757693317789764207770970763853339741193484260806027879006331942182756309753809428488754990577358921256776756280539681751456062514831044161124698354200936896250765574392700848975675345130940461777146198834064109647797534228502608945887858286224045178988078840778804815352050671279774090347713532080288072535276024188241381989006000892666777209328376080251295948233085496750165167338278216886164271247992794851976584661430769817040628195660692127982302621663315555789564850894984386511359234885456249134143068021660918249344447389245077542135470799329249447816558371143511648365532917963475782517462219409590803863916459616128196391726801938559371754331999863726372598501460352070821786593468812788779025207571489806773286759197614596236173795508383764812554228983122272643244422779673299941157703004312558977309523019627636949632558651430356887355700139799121669429342251247366091283905310714537517631683080212973066891813057783338648314140273191375165078897262278874262700078745869916251399318777586449438431620429045951707450059326440941916129216920186541935769191062975555005627169129442992849208857234741035230993678096290598449351202828786866729159968582983758857638752316090811734466010657333195876825928976476065289828021511677744560815389197484357924139675626222296210852498609167994351180356936693876672418511531557186171062567940919239897843708596930078176195493254224310046502075387210893339283982344640300098929232816000469374443721633104041160132220063593800892920835753674964280997824738650593101064562277106736437451366925206474672956097270545101469485769009824035372887975729095438388904130160184261957399223097008104082776714632857876038126583054657090241859867075642410313909030095842740917648037103260625486492349699319100882018431791128724048973474850449682510412811343839514853028402449821810439921057223684268062032909603367031455952045095559969523575769509140490447673512300046123642549922374578503951348097889684697677381488947214327923175817220323634132317850469887237308632954408599236642151242182665943882239591228864623416918506496384969045205884410297542524648202423451513201613465659422583421214197971646637578308458850725500006975451582378226239593923702140338039727463004677208433501984579655447706277693122094709851236105442196636222916015089209646372421995189547749663758241282492080260297218993160223355242166320505952577086967528424174664050743660080503134593872035665071575136763513662275119897962283300844844215142516041230272494087177559168490389773573509901776032966180137071131644601753288843279410514928786745350550783600088395592102506764156526668388062421634457406403828465659164324471724667671699699272946287169858019114293592128340570878371398879257713555709607749014616599059735346752694057789362442993120231563362141985077036878110806976201615806120769375736348118639298921568427256981866284853261712697626853596499801667805378761266820862350904904176288865892827180264073765476221641054634371115218295580399360083813372321764280569012273510277570342312467738621129310123703121543827674157980535055836843679518551519697146228088992188645271435546228991033583896236879690852076024525605232047460705158158491242957940910952448241911284498165436847752916795623618566779769288282450979175869870420138928534791448431013679092098878101015790945809894676598722251269913485549554885033174713952463083345339945174069751925156296717979496172568131712008898391794115215251102544676757482087279941313476019486846555772047251386968788977461150180687762457381591312402454578836354410045915049390852921129831969563345666868599731614136803667460031531823335146811516684164797495070261799504710578006471901012639032270669281602984169437674727019084273557051271347649696508871263546609833917771847132290432931202393141098759248281732743345692854895820097252570912626075030053035002709044086478579984203958482570780021292474587512186880707530562016804111526568200455113677447809223178444922186991421902255414837880788325614131395759512868032695106210728852260204502984952614852042339759676738730278712075619278115536708639948244942282982828859262548886381291045799792496079385483630852689764466188863866873346133335779754751224545287984604910602378343764141165067645423839301683790941788302315655200110752300582631055844738476993705138810811377237648102978075436053249899722258431622224355039160813317652321257392460026292900058212653836883713862422804141744721754682061925163706831905564400437411092486661833138820218516052209381081539828254008337276334810111975574432924049215041356248338431678938863476887616123271880435747485764468997789449775428243074802772614547344571609722042690752715811925150646337369318227230676416985338804476030537005528921581876454721319020593092286782202825891325470799971192963680888934669204312681814112793582061640939401167653621581476377600910687083217332328450820390383794273993450676199193837307240928085949142549628679007925195366029656964500702183869762957806903524198601320980899678236804353372269476761275699416233370920111638241472697073962388810154586441650941619589531195311017363925921843313387689753741329029885833923235765319696966099919107315528112258390768568299940221252405703202715931522508945064993225438480905545049363337179087683891209049956155982921536631447857409624545596245575128075737942152474716443707089460392455011532773886566625808566704701675482650575625875720807161968186045285850885294486078695216259149914559367918701995710300531340471602785503463733720932651578170901644028481821213271870975906161801017582397396188450128855410897672884846789483182548013880127790966791943555893010726086548389425489012645049906300442009030144370238715360798944250642972785670444542801727236742084550469018395069312390044456367613375588826976846885806550219550056185062195132816117438700906341159416830679286470723378616232579146095181996713681511456994791146637762332537784178597911304701275620993269506991726813071528552651416837665094700058195539639122407207987908636361722751322256744686413753434651575511669722911419459353560238937910865162935172808921859222571519393972204097809480981013157373637819160783574478172277099744423098705553631371213673346636778572646579979993650770886855272895184947971639869733543780913670291993926238870372056386995202121656357936381253586722254467560762650959221440366694102664498753714204647646201913772578804733363102201102627163517445151383840471175252710629817688336730028820086116431834103353911483457257225732510966810856158872427736985855045640522646248248168036822807218177515240981321896308549486987464720115425476403552278404531756330166319850593652778681705356322746464158598443165363924683748737270761087792949293970885843473846259980175525693547773000188214548742329109974511956403329463044112823096539660045817851102212297411135462677167741759397014108232611856181756039273638335963686270483755447626715907793705777267952079845935858237237866761627531463049518330845600000073272333671849089984801789327165510178530201058250577106976188707449633606005187845453942333328987017349660721310589868747807250912786196580469990142719683406899266690456733603845025388792046905114901720080532183247894136650693000547223145816696184140546600882944719479297995128209710953677698168600080313153408652824006367434335603886313568689024886343970503291238444866606310089809137569213239636105753228663627952605690172028114400709691380367813935553310870583556969729864264550233875250127520240339392628964322730542000496440747445643854477122855342103671105945024625186173682857913045851582167512002424725221943652257977044155122153394102828683174807556094869221511283597149623119608472733543278974816303390676074588500194394638024259812415631073964881297226859565599129448115871015708244043440610505058524347503645328564690434567174017518069892102189059613485396129070310981482466530854361694548008375816329153197390065467112154333667069397863770258101632916983820795676514910512352905811440051480452842182944036077856204431816200628667682651350126029922702927577137574450352964533609108286524031739370573912135758850094283439743111751414059179980943722433633244202428912646618953927474851005717578412948371603868611645152165817405201263063890455957964607095187409176895547598093660077115254018567222232239848132643259852291840018074263254189161980405293429859236148361809789511048652213106123985419331829448580644860456052144631149526386778914853763568741270408003383728507391880852288009416479915122847790856276792843634436783654698923921158713714071440772335855263643501433075402446700520022019015947597374845919686047463190707711834969133149480337128897421006229084606798216213329597763901850071489417487779886636510440929644848630363577211326595486118392737248180516676256145119944602367063415787248485916063172718309009055782457917597669534083131205062302477734489490301038516970703391776575952095530413157570485609618777742700368441334109325208910803841173835366445155153723526391671736669176784638569460683725770353240076478370287784732741409107884441698019403469180852781532641310466943212338308483819430888086522865366975279664806482692685854467509029152216655201006313918626095832914906621819742173212752289848723278083056874105934948519681053110917769619598377273359540755882511727423951616825883655765318375661416399921791993833838735278092624851433660894797545119437660702023258953124614755130764456108521214111169240970960985840555694305525892997754625264297468573876031077495683209953976468020361843567747172377026976064024102734107294546806074790387840295971265233539016609531559480250063125125272102524930907136138142276017925723437692370660550512441946978369357439179725299452857759183963814530411003333801675502491350407689539201223914203143913531482770136413719370253627833382654348035044294719744677518140228634933363154372455775793202986434328793264524390834942432008377880467948862159855112880569119365759283574607862586365081238070370634745911516085097350891962067481489261973440326157368772144615297174273493798392292517544458894417895050928555444619147594826319552327280436046779248410044934803322550429246173622139435691293458585325504362825701470860528022374602575207216944328943058597991718500215770242097625563684279335624823220820356067414721774271965545851516523679478171090619892175742507505055775710679222182278856173275363409496190005161513311875384514565958396539432673596926589359048764028335171642694702929198224019446626491762338499682397532697023743624338087839912573937100422379664829472680227714379652291310001309726894939757164139703841027057103666500233048137779051165722890351994423599981415922916732554153984060558595199053560400826286415974861050893550789044481440971491809868223950933029498234033212999047888615802982377642598549728256558439247277475465973215767531007045277657139030949385529124131617286821028269086392538045826174597201937315426910307333273773452621782885560792473683540882934607092347732001696080452857534118850721628919192061799728162516599315815104754163970520556282700485010959841240885012754546433462891415858127914464703770057558691626211878533572340326295500353022007014172021008280491417798203030048795311989283982205798413628651396579280277962932915374774135264087470755987617006139196205916547786592324270150615363658006279049136323842454317247542980799913820274505887567310754401152804656837339419505383559090040792957456647955000728917695682309274018580094663391316386944395199934830695306149020365415985175116502189607580645952540819630519023786496436251015176072670758133215983447617901885672837031485422858681511991691175197156364261181083954474775479065825245426982725262212310103442682457837112569821273786244502638184715788148887638608503563935247040781816163144303643390914858906666723859494571164720950800672955159818622068006487826745124954550517395594869284376885102069438667189277780503276581546607545771257880160356739098101991897313175249286279906534531322147857653958719419901050300962244054436163354499198652776082344257431796027595915304689588226839108038220146294126919179508001085693962133441203243419569270783016828064661546263601997285324423781670870299834774313692800175608332899029280169653204565200919825202578868309213634463466402727816555188433632850506885646471097010483874751220481792256506735601063359080712775230181606479245348330733864916483774357580761277836327470474354454317443994024406201047746423207956372161172250010681916989289942321310200689153256839208839770771627533013703515340046646752121088897702759034686288252147687415049995505155539171874304988202886273061497485878176767920278105189937089870587760337547536388031175313591663121782753937319009191469616089803316481679619399391629149410835689140264707759716062001372409515988232125389947773102531283301433836848661702885514317043502151799258314205974115148674632386256388890770121848181299861984398874421959396192615164454334145856878801289443776950541336628470248659753709037521878594625273747931216771406730606022069452958616073908434925466181649023299979570217200340772638339057883862236184807264682002191694658545826058591997853121176475993762589909913257819783028460946814521351365075643156826960712801008627247254628385853689609005102726654712334334524919935935559641646680914874033923314569366719477489905854966487870513958147409225424389464126808960609707900811735661372080651205945482657143929737630301659253098996925060973248635715311876789956326774178150293988722627813343192968427764450579322772222355729741597092482657745438995085635546988847770607978380203894784466453772471508597190576448003783733749185277183825395589146705782568164427337413346465352399407419582592881447923011823969839859898164172399367113772496053966436975093863505392402913648455492530244730007410174238100390770888040822349817212687076522897439812104718666181664675025480160824687109009972880266007776722686638548367853858758466808061588229201695395952455295852946727515445760751246821585224724096343304610425022966869852428099803125570678750157105958522753747483298246985712294504273072627083208927774787931596170300953562670733146992484467870204959268180920948583485354266229717764699973618858073375123510613424941077222267759245567526153938462554697640245232687623316912816235079528197186498296984923297392080823840084876975993974447211575684184530015953945118638729464331222502995516511954553287725465048841378792651042309952599990072225942283043642991114053604947232561539344615102498871437358493361061993870861229637237322363248124915385504608578470602925548854302072669116294778163595410268325898903345743946448260547944267032861042009574842531764254522212454345531082337445032226335572876180224859017336012451037303186795333296935432774957715356710110653583304551540271090305522660469925237161657272979646019196779973152450645805689771858756897096046564871414456256481306541219440351842122949302822777046100603950238918043683443529766658759930130102410481154547279489995655293456679729782138767006132248081186102466257293073586333348730675693783298983109023513728736394943432654526379113854452371862962307590231556543848899592334158014044082248468493541179155933204948190531609286033336975504585722541003280760823185939522256862014794321075240409379450129940894664399753268923653281343115513236389563724332032114881501876779354455937423020644556077309225681795667425578660167133663924787308208977789303411566448245200748246706155253982554630687606441300357627361616631335876821313944882128661057002767652422175395915264889056839342030676133307992710714803682614340578370963450953097076134115570475703206487634965126906829057468886310975927250306778827332899593966034913549213806532991688223941517453037518268187774944203606749192400159767995184228191646587976802220038659653047691673576171908889014835942736935532443197473118932874658574843936025288723473359923813125289241171236504470759296713920635350707734194538209356191703953883661283453639652840647329561433276104142282572103449440870232998178808266234557257330877917749994844263012560636725919853769817231600593459596368350465660516045103946020508079627325511343615525950085087559965640527528681531810442443208685843930138679731448845287817886855607259358955112501284349927895141936786840717702833118981017894249205337884706197857985528864376600907241297999783642511034906221759102728533272198570185533379679102873588027883298867820086987834808233371937024531146333999107944271308921319619254516418992644994231372606937800220052355172194111692684133299902945966362543788986955286336865793573745874109591318726524791794404266604554262699699197247218957840772482155684316250414126034703919876006680076550416671556058805832383415687021420024777184473091512328639872340925526179375248374313544827196758603553434795189043752459774685725250247351105875410766224945635588236970103179388950305458607653690569465338335803980189908854212480928140179860198998399020040489431776225094365299876766070123780348390034593069108740447445991405572446386729794733010935021649509913476282836830479940280803228979405933228001755378460981450283030867682244454435423477121564785097061865060066590307869300849188472781501522113782726285722656829842853995676572887444035404971495136552596582315901571331896624529837739228975697446357855900372959822722862716984368625570314070651213174949113769370732749827978774255007035017992002613348971878537638581976179775944278250061073650227845155521568187187729599394936949212616388392866363991302844315072185101875491620480139093234627702269251184066077823734804044475196945144722686610248138974812360126926148647788740655114109538026726997146727079457614895242020603682566417406262512506815677176303046492372124929417254995914612924614328435838057490849192463176664582847015247374032562397123750176859675491954606497888441555479069108253003855746622780680068533791694553046149144426374758172689483428289888087010605926289516713309204928869906923156649758578069420210103228778965352861190271022535238216212996931296261528492938943700557314700810931716656555314644810576466163698351933374900700940171574774756805231801214019520646239754858195527746733633134170360934308372747505732883858986539414349564484775760370293244846935878345475480186309735551365692080097685393013183807037493190986726803842558921604584057567642199112588019895165072857427880806642272797378218309491853489613590717593630983598555006059376277994491101213339049834006787877846079680901023490982494639827330820502156018473559860165984629968498516837795534923558700886297837741458559422706553695146561514049202150403030263363906154489639603421553303237481133662839947908935710470110243949007429990114180288317413385700803718062403246953675758270905309885649944169982263840570357346337637758518165057386110147200009970897658970664860402668253954121262315521969300983203965580913594572549724764180147967623780511943211746576061263838344687525831822969260020866660955336156126935258154621057202641882924178344026724744811858647294795431542512485002733485779517472462489372148036508145879199943563310091119173925788997095115749157322625833992590697300671468483737421795086027655971400806798808172765408212621543529658318518228896007978928719018770888197099423142435618101191899964028291111084380281608677069718448755131399393466617272702539623885984322927273893751502004130580845371420137091315346262113627206300207936881152004140841126137724787001462078539035515721589926404479361741804157295852700622043522980612779438964052876734245676260561977422998126035463861022199222396995553043192582828890240458235419513654400976888230024629172611705456690075263108992504728286471479275931542423147381380626669437785226560051187860147966376906877509445220368606607636162265694593738640454888804021979526338578442433212212104396296913816859287048504614428394646234925656741784679543446302276082517608561331596356596075767036268605421037837663524662889661851019639015898118435748726327526496783747396894661146607114901199398742157581776910804926455431994519248893782515468863000827389018117515545910838424424431314406805865781301586319703989385996818188257063059955285311827697487108912789359203856945581984035279106612021298858691194149547209453110577122008069047038504845903618795254135561447225008779250425913308884844330182857536822858329141562408121006990048600559970324520348782388919901623367885230382448877289768573120140130838911923891405732667333312769254718643345110413366902676307636890634632816519661435776627300733896882028322326920290985730950175992063396292677973472807381290768104334497319159650566363349637751007474294943116214789363234495895524261450795930994108977362318223081404256658346161167508792247006840045524154737479528651026299581442923205107395727815768452646962985712897960312920484036696471620231104997909243059582463923650939625787814798250547267838842741082662930298565181846765495754000308651813361335451485541975421614671889881518626172895877134182190335959767966309869039019487189719989572732452414644413228420720017277014971158906007227801799843139981896589986034063540220773115848060402075303237241398709534178438748227745523392473118920947967619793203983987374866236367754409399821247372573622228974986020593745031232564841758237793925030788228685960995987404897542318981544490964716521779737999381890637069347811124320377308631803009216380829149384314344449126771287825554652779873211223289863144946357760113109462950211379335910170735379829921372995026904270819607877072118706597666265019130720612871982207323058116721466932028723322983669329740425405883893641348359355626636560773058248131081391482707557861471595901576416500769408259185581993349943414381872204281293673116179829091018271830376764065781174529071282910861447941954622434701081475908797179198258280631106325313426896557594418188545600974174392896259424755773723510679111448238003764280973793783037895096923926428676503848549398011289674881245972529705639581521812683095823860676468644219469799700548441819142080698844883899008725616368634926566518750652703758452011251825622888003969905399764088798517807170626964434764593441420870036819438877817885197655016369278278635177316591490225120716071399474273288070197104303711259463520084848873416769642256701379031852619587884377989903758313840018151119436907939855033012378552366737155075789246492586629414100895046804431424930049573639965743552391917488267279993197655311569083423158919632578858125952564374349221798112370410411138451595296788969613301634340121095454499788574215064631540445556515717400538962562170052312104468597306738805855948225433365540061391414447710465025595130813247494942037416080966072814893266106117588283665688193918591313960183014673516511408737919149286836690873984322257840877395653571979447873308657892620070761196194117933751256554024236902590471503187512374690859576524189146369005098661161648755502373923046133591111757965938738723797427302570948830072410459703332278262191846887692521282806309526124665787972661977970098681368473637150950852227091342427003535942089995792751601947749079609267188861272820055308487716217950493185345649725875787758286640161356047702160960990823342388270494759677249880458616289486707022461925719194029059269038139927040205752199104946339844945340816399637455959262557320862722182825907125894688496343456897936184034728298259126759353001143793146597053363741842768718144207198983312715797561186685800037654634817689913841740964070459644899420878372802413499566808409244200943941787486685243517766726625758661777639015095934315592848033858015215846550612072621255444382482997413025426957978883140423232553396436781112946365813259475980654350411181868302999175251787034886025020317738646020919606443214237609633048537405155399727973839762846861391925043410454498402388412966979837034893920186862258276104648883277506098581229522323631040540853704973660360986976941317027890102643483357299384024480420503981251150879661445473876367218201226342790702977688339551490032388539359527176614770904316835785514610897156445763226954711911273915268487531934906408745425259185550632943826550047933738287942252380839262210678176046523819202056243457664268365825144687942803544387853729583984880472002124594439742350747909732309658878161084321800207230891339477519444762059455460421184922282788238997683267977260290444409273082840074802747768300225146786997541977202483473306031865734338613150151613194510970791756736302283922641333803904690202867208899364045931414493893149259381905867556029571341299862347558869198452703025728986749347239835230204321056903436230234500658141187868989893056341826607589910303163779497739422246097932953967734459980812125054019867799862552676603930041830672601297515674363899526565687044266660735060941816825784327258493622032064936344807597960148491458680092364301937311724429066780549892499515053479722910544703870557092594611636328363478625962057496728125924291913342035766434444735499185886639128068787153847964429587160754293106716549891805512362400460311429958847749538377093038557560272525075669713137463680401470915104462445632082824998185347918630939375600423933482529687624322186067805883269193943217498068356392977155508587623419695666364567127804142394056391519644218434518668998154460992376373910672894317624077820426648535378522957773605622622362590739459825818750945862731779650705383117177503758017067936776274019526422955765462642881733971271639126388497362651526393475660188050724735460832130102822219614224086243910591049871882940683281644414487699058623614778131182885644894304602088086176341089284509766290641715403631444271057290668699458637658629316026759433333847927600483925905246280572319322062532671245372510658674027441112514712967265199624873025093370871753313707831372265430744370997618489330777752457741607619059968443401304937784848185694905570911797636936360748127687287795306395169452157051257759848156590883637305125377378375893831415499963113908237743515615113128702153750540546438087073426315181801350424475981013215089751059392057229794808815010503241629000882151864142019948211371316633676854869280272290603683616904206949721159592782494994952311856596749924027129309509832725347645866922718479378027645167046962937034483997854288227939452759881821152550529714044185205910724567221750722307505792517752290998310554483005052002575667889926637820313827302327954173132975528810951805030091987482355531059941026650134895315536904418532056640814861062791948746437637443285320368533047831825753180410967569206787548559986949607831575357923457127293997164239306901333437060982347034584604682111140149119288685585408235789290577838342459673376372704306304489390783297798866501014516453626975045019803419616679197965573363984777321906272227412025879807449153223291683316647267494669886255721461752359168151018149117494876584498846187187219898976426759742138704634962322218106457290222974582442124633247738815161877368713520422230401458851908824102259683447084413408520459710347226302823155635410976671661814366689894300867565859644761568743431622020243201849994454077270335623511768199810124154407060864754126320097802949101156553190498903735434591243499438378394680934841322712755146191935174227191127186813731933942830810230703498300066611848635690518506519036737783480876540467431709725850155923609701712490411496574594391879372201166036069176081433714580849325593605036914412342559763245349630455881568859849987618179963026438915779795889348182399835992666076556061189654570885050863774635738007729212748245040893698148100299081467620103402451253009000617093516106395972678693832081186649120031257722420290822276289794860694382293169387194043844161006111401640483703790080242169795039211740095843712424941921861613729657137358843323989791269017040543712853432425761954935558592391117112375458887054042503861251526319533896347914436601045938923170887658750315450909929135844515975447868723436790349591486636327966259652590188531777330768957696081708403777442657017082931239215756512535987724119498519461045257848388914315833108422436340522481456082852660004267336269336453181069824542583066814404802835452792158640251629813649723562907650838440337715468068487501773363918855891637333335312977504700024532959247048175822094617647647131728878839888493461600255554473963216145325802452820104079866345425346482033529553060332522627750201792540206627702066156556385148560348488828364264377104122266294622707200227584410931654819623050154586295555630042204868943862904776352926017346876169829010271634717833121093574253885825600055908646737201465279424668349105908388210193905344828784489529181023018984044745784604549297925197780462028210715683828773032847075510982356518820735660812307454199448537413871871949748361695933091625222982842157744768358995557520392813736532161724950622895299369419257247289210133703120021981236821786209130476400281256407398939521993789613945484726952878260936737893012288926589280044265042418145430887151699698784194932469647647535876311177182619492780588793223075491165066907496798810456002276778165236864643048922009238072090615852754325712260139316534925170021411131923567735334928681864141467473424144693882156673703598562593467399935162850793006725092883008664284392290022807844073549888158824491531876956195767848793006736883468231747888206911810077224285018229781616446697861403572188307374819286923168183020995522993001783833814096798238500948974667432311211975557040143719120212107985781290784207165931217239299262306803322080553568895495469784762730900824409559513435554538976202605153393694557229981746082390567504520993153549135666859487922149120033642251320562439698276650730091207082161883724213695533340040244905016609587292127166389640728846883352097994710508973836610597751490904989163676536321662416677438732042586742092745914904483181428971070604203702131894127845611384974975796330989039209375023975509742958771116421904881098684213083090760796206334627907919679725768142913829083647088152162277729375576390562847507717423509480294325771457462231595682001550322211270905892809706656915313634097885423535821430152238493392770862519431025815558517762771383432683204283862815620524212115081476591561813670335116840574371642280544626686197291698859851862322063315334422925407521797727994210111687037605404374873178808859108588253815509197016324278986436660440594346599539691456369899349023652359934864653161043003620955895905596851763971343483330998744861761790550484375860534145459498306553610550570172118152818404745593106845668292546729317795152249204284086883368576463651662831156324758481471084754948455463245648964176503547452876160402743517329476957386040882933474614805225772156509777518481325812275426429872797354848784241432081911115942607133509235049175031667633398971990678803038147592484080574807218456140418575174787823469221401012374651554173461101199079560352950208873462414581790295801756528136314012057398497660614168228920654025736308434474647294691062196501760640139806162897250341818558638922544536573649309241244934703283216803476174181328979334588729742863138525299061471451310586038462414202421922790233540530196456079866986366496269344261068185818653354102544349675315254363241468863216256601909020596410158655427917204631263590852458407975553992674363390318162299476621016588443405724745524768216561565341234930088349570232563926880175791770308498037045100711716421310646488742256446551853750588002205548814001304769243272049263215694075608418412610043049799225263148772423894160668634718941418404342225671997636380816906114730699365366606901517046710373353131331362477693529132124073157496665891154918042920158763016604677276424324786973354009233773092576904571314014394595690814290811476224101951880594015458285320951132185116562129604644459357706009465441383247418597942182447225132882692268455365549987006750690890929724467741802900330880057225007300924174683854550255038157099757517124705054407677550290891529713820188416308121920088058599554748179124894051989095724115159615775653560624170409421590687157213313088017201537065380860316430521332645685161069148437897155411516075564639946140275186449749992570332843256054876170961826495396552319610849195184637779830511621183355241719884240410522281221435550103110617830324359511606137903149406100317115170179132223170259753636438437096932975659932138266422829570854919297548306465121806889800468790689761300147444309290322454571921418805701299850088412436105148777424656391004499725824485988903202393998850499111599111942589837928482524283641835635856735656680859669595435212578789270879825755229612266507619615141477939187079580992219782608158070743077941355013051923073501546833867249513988418772277670367528900977471976140796483594016789481085349035094773223912681224112744855565598854780048758877328842527629145966486922117366367512489101998953731403119993304450909488093398667038613110458201288097834270438991039151040770350727321938358874712012428962373837744162772309261020033468520189582766725318191455331646624014330870383935589854604454441092800767324137078539714147364108398944621087544265168304600699828734183715266233335774681189304882800304741957995587844495927086706516296318014542311942614599566721284034642383463209832496270067957775132611096668176507277450532385565119737943532530255705818757919373545928807977502847869292940401689089935529546203722645908673764425867812875012906259120817002608093523476789486599356909242297371412360251924715246247978648021332894467343876303793209232682112157607874282252952737667219461463662411644718112416321398564888807244102304275012299599400943181785756607009598692656012842898074922555422397470158402796173115514866993106614331561263799270639335718917807399839738804502978816502808043217375801328822932110774535386166041103242700683343485860483518338011601791614763652426624938295243452279124517407326357420112777362106867146271525537710656402646219038010251837208278713863067189305522277798030751792943400226792438754755851398937258957402684337402337005784112548501875596296645693536398475314946433235936499953613837275238291844779050318754613415325265406225222162234088264334024196224937010850080370172779868510096238219202430652125911740865072693217452756075974217090565610350120791009901419387815772290313571012300292803297683419461659620786147698071448420688553631870620058595674896667765106474442721787637564326412554276950814173587495509361124065273933425663414386548838871584601030512148720838172042776371345388577834912830526464848601524041617387248768989406680072820310159666304135600830392344204888056941098919194311365504957456832167335522625510685127195750167545016656247635494553062223831865816531888125303624279158656203998813978457454377914294633754971183466348655188479304167335497988988242376985491747836746350641805128020367572043377417939826089619012185573236204121481864391707541136501658638550162545404663530021810915924700760103102803690626981681189485137378517017691938862908729364966807524480439051076432554096545770607142085616310512980573825637518711818051325875394666386454625715906920684736894612787278339645681003161805564076718362980603465683236790431537292195838643343611981536010127478608969530330107394724213397760670727846677397035179209081834462358450629694338296719360281538409000154719333225958074304344895478652716489591534000182514048598434702343902310866045814637413593544298168881396133002200887754361519577848123174124343728948756299193946856173414047262155654975068893981633386424022405839748168425127582370759806462087008423978553705393589284893318002040189332848410113318464720676090333196722961761809684016482861291609953378929852447972069002274711093867717786592951108926266489897640343127819931563605827689301079174485237653041613631008735446286442365721145300339964572897253036168278349180612560608758344661626522387165177168489854045570300904589491402148892879425857459609227826089214359556638654498082660819999504818279956371131984011098933117990618587016344413886445479942642858668122442943649623534403112374720026803723280284937823550008184184194859424235493030215835614161118472961017654247065421797979819041786024627204822980848266904693701903316008873911814436481041964538419665396027789625193885409777479401701825976459519663899681650379961115929627483717532926216611253442527168398587105993322070304429634855371871794074957187286224091753174783039118905067252325422238107900888307106580147681174424282531024717231278022733069538384707327650843225290643750442129404762224300381905114268531968835873195687895226868714570006920315391813401481935418991148321064735927742922266519423669205201139460944047796462654462124039559629382265883009511269318201640535163948564562658922446518841622364550142200645416784747723804774496279942830507046600359050788604202983920069945553403337240707618235789700429886162249959063320180281139110652070723163218330513299547063766201597442568549519272927172886770674085456933965928621102230984202155878678419738988438559995198722353611741712215689648704563110222842897641810606091248988877625936588886422688992170934218302751284723495035849416928387259884768309386397275259176673795195480391956941067235408198485386537700221647184852815708449806464940142765829089497357560852385161587266957230065815209627232607501116783853591458996922480514900407233466392324285633987910018957104111412090296440861229512116939980197414474301899541361347285304674323176211866378224992801425282342828105959675493575273277172950454829696433736186535369710318773745177134449282039928688179085768751150184690908628573724836111330596637803604428391409329727363398278661655108242225517913371253749091382553295230618175890432023054217005307362599476088839368131868290818959119102126577385333034363283190964921169978128030848178911632367738896918607257167033848172048167716703658674677876851280610798463634328206588194464981884836958789931082772609485005673843250918313637657052057271842403960019761162456320043541684121272322025122493363221983627877201439277733371865991067439411371810205995376084621003462165048017128258320440791232245304416819957482604522515107774947442063833324368583636047902587243923191378889048461113506894449838014386993576809490124248042114061986516092648786794261666483273837834541422433588294360017866834729219014431306015571179367130327317043041839800960621411783107307868922458709295846193788231285678296090914415075288841096427511888834366038958430343195889105554134965896006171108045001312447380889466521458502165386587510128156748087430365506900488948767707496334028916214565546482569582056758134809787944902916139435371459266534924258520229385085351749457465941829952619554971723150396377420909079759072671801356392709273915632169103583040416496228134384356806722770371189301516035560550086830621972855802361606043940404482955097794090367650284756335763600100585354322488457403959184441013059695018591411203289668172618973880146934567459934781799133623208251316499091091005344032504674108384868917511176071781018210259965487118290231179025130480809900126231236655402088921279536193983762698212890242952288626405887305129483711403971647793869781389769944155086257925823229126675191637149483144613826915013991410259482271124491929700586369968933363722113553069287647611697292301201680698790161817931217374579479312079678731333299961236105948383909743674337212457582331341974757218100670208465694410453547440322399739454535787936075127892772551757181415116184932139822702934950048030446238670478591946419136869784937113184658291858505253376555626921116091872128058281744595256609739843109392903866804441673377471183345787079514859653581202826566740742887493197069013194288892538027480360168817464667935958877628138622831047371832396234508831195688819216467074913183842979809599074731501992435039403895875898099826440046038683686382873400815781023848747425034214680440103063620334978046368643016404038501313577597481935818387292969473098121328544904743215966160106803375622683563472106336155116675344174527518103931170263063361283939819895010636148602663123164589965598699317675216503965435866790402725079223320200854595071864916843072311146860358161578598734300560480147311262970577339348352538107253847535376038830835856861478438880072913379618931111740909904486317604069005930035932416860845289759276038376748484805438905026977417190732153903339574745987908264387744341975230842286194236182101743612986281539365882039872952295530692237105962978086283491917285279848288948891257033084818551328687777662686958095822435517253727513762687686162880556241505947391001855552390601652503031140785376404179560624780856826980141107256762032528449421367773783892649761722956673196987935291868329548907986019500552446800077562896864305882801278889945991190300854395913937909750468156511101315702690949340342022928390451252504764440205024531420729053439141646401903524566111287812759369622137422747174037340527882336348514768533031790136267838764640471267707062965765442713457436098947679613741025565407001546388280056393665885062938605229999774454133047504102568297757463111557471613795299347568245784242604853560323785861300124882767946528888660590834120841737229170226911134822417655438882095017441390964546298120771904128566591687679253349815997551973368885465159638935952213518871301510648480309013797942050165644335900787095365249957515146592424933171520118886033898574453300133506407936087170978845670993796145056519004149947078910556376188478443591807710617420989946355263446240401204505453009680888704941069706459846328554170272475401715675983812489017340570235839592921044739006678423389986702500915621227226174131653568462195186229897408425696744915749595624324182115944649772796542194534263935117416653443294757598416526963902612230245793818062196461493204944063230290790468869910487464184653681414224034668289825423237576256666605633121872000267695838449559502768741009339718356151364112835987500746460143489175011667076784791298309417595672633701732614154789698101150666678454272152861242725044864720510747406665411858583701897598535143493155038520989679836113992404332442615250257232883487353934604422771845535841341224821137535911581860965725064502687559711925508485750997669330616325808579197831745297925406382569362312667469433811671174236899752473911248809805979253301326545331424152033690122977005622158105398054300838499530989980248500320853631286942976600921093459050675524303807120152254322733355216059710343298639989084724511012946190751329550264339979910602581850770797039058330365393168735023521592285121554554184918321106921586395747295091675339228285192068322719192950441461093218548965004833734338835109030507634995016563991569711734213897972879992108847998239900873066093742480852688962435131016257831404580085123409650763133417141125593937813478666958330933150726201046192809437738859062945396782861698179964454166582483275688542487787319075946360348643536149526544785719364668205663595370240916068804207452781386535966222518767281810191802638502277526967992965541347751401968800672942900747725071223714299725558763221783178714648100055685232677437698790911595766056827007158053544858326979522107078049390602294978349027794219712991667270382648238730849184361149714536509179986665566836970106385874084911419584843941133373522968111678458198446445217489666369385982441907426767328769422591097737900349605195454808763045162827593858830178781474087590769131092107437891322484736318189524136362259450087941354187930721838969501750011528617736836202371379960365237519473365912781722741119263600456641990285184890569572242347891814241873705442347377800262660200609116970788317906252807621837535565985000791320823855529877682697845751264110289250698668435557161981810477525530271727282619567580680720392478194860800048207595622679452772585978805469229656669209152620174094228894037861789635689236553243347556588760599366487883989481174155503915005618555539456313441293532715353609960263612322894313405693822929944205045439511156931821666260525881756516917431265498152113475938567212582100283430639863657637120487032044676837814538678067198526784828455609742875821046276113086419411518665163741562387311415471764908123296220739111464358862288584052514235982250394567239648027209156933492037420628600398966231264035810272432577418593605324932291969146953231582097955043996672352907375720939200252671035067971280288299532121079595643918108644118860043940084675625814107280358147503805869277833312921670074243012693021540495940456614359031133933553469186410766754046594788194948785223139090188675135936873613630732878200346312803776161829080414802602964912597584378770720948496248331947769606269869171902102606546541563559430856222615494390982818577668511912563874440574291722969307727089771821915141039697245553089403055405981302629914798885855119290659999139196729006773624203709580656831035447038810569119052049542006577503059841859882685722363261675881030451998820035482249066803925174896302154823534514632130414434771702332687793709660431125872879761816395150571818666125647121515748487209548719800073724367707888674383378081355071217332210619656241209244679441948834675971749083008607423843957078987625453706244932121703333946562204580536434854572117172711372347828165235399843467775865096168704096489714513124760198455261913564162680275724215610031263213911330172571967156614811225934988159232334295708039694058803513417513751841924815298955904595356153026562956310780820659815336027232424755133132693955606646423074149282141566318331996405788900803450412327089203682895040421494624443131928794001801539350572123456427427216207091501051047858038915661178297671765795042066341756607673207903745167700414154699342205913612135105813492036253350316507699374211210671734571212757584423883851631335888114329650208640656529981650620816562657086766111555609990181173996678754374416469996349496110412309455630507809857916586817864755273598348057821818919646010899432163774048703293721386274279152998306334666903730753078695038569464743497053395429351685106339259588760548163472502646494214283483710237166064023716698654015138955815271575320937349721556350116455019206670769481529224446510789456925974764555691722842344481948431265845387838134521068196807580772931106656624554912599722631655350249361453053304517975627629647629543988920867502226921823571333932859795179183128210576839851290073997533442604101539113471969514618309006107207093473304007733571352743525935721024322932524245639513698231394445881835404572725968044461675898410071921861711006398350073748079535280334598748355977627829293283188737377268325043235370610113138667481424692907574227040326368490466229150595725113093918697398976037652001974998163359453923657635565815110059343097369375529937161578117264417617530283609222610879411313112023772751581710542488325749665663036325779746533428107729674385497460463780215717338274758745505906281665158232026761951155546568291279394973028689686143292116665711431785275691322126666975841758995269336337761922414970411131603067574290780347578445729172085659848735723430418141486322248725786312719469474658198117424159254061622908882980863869953138389260752063359880070053358327660144590814288261073179794487893717591158819599348710471488129512844884756855255054235292670524825705656213094171130459322024668126002550106865532553242433998261327709081821824152324729878873597294641443216061450777849390023995209768730134743050812110077485348316006339524792094381377315655098970490325828871259706419306387453986933506161344559296289495243734254864483363134848613951842106578437351245615052307689130831755278658243298840159576805277215831253978743495540884213142191760746273125341381748400535538418779251645464396609877804621755233850108592165803262602888516334451224844184132266445535413317196911972603546912413450569935286558330641795628219419080011757093967475798274867646561543886342282088695856239031330274938541253097742637086740659056720874930333695667646672013746493621286794436303186342656798829812611091410261078196401072236463279457961812180277833780543992685402493501212867322601268180799647043189296558544404545777229172337385343208832300834114532736661637582441766722603452957355792109873450258084857226784180670928553062365915214723082687231979845840765771025540479175586172207335662958914102407831766525079925142024898340769632310235141959317477207764992959196301369233175515055675211989322505365876587724659440056515536477840981165759299891067043258276229055982820962402030613864773866969361133617933139582245365726221062721562978965046910077563987103253946767383006860170507705925653757688125853809859116500068286142599930111507778540194095909135319699311982925747345378037269633854831714190058102444600794255463830699435475630976638389027956680588765022697917868041569452595131062387129501679154709615264404504726932921623308880966186535510623489992589240345444329461401424797102357146381960726487133061856877749372983116384206380352821019441213501179515665877656350453435561089345633645800662796224024618021057444340012823442648950034390852569960699498113019744555745475844313412578147211612992780441986124601561926885587188345111787004664880940523062848145433798150263823227420891438447870818805869696412060713012232933205710318996646340602986063431479699389222580738284065210279444227320256643473138640487263733970648415421262076217927734896339896250500320230439316072780422171314086194903928335878616363583858253796173698694850989486230818916148275022718083556539805131240641853263364877256568106662309226544605352555362147635546192474620451357923982267847992395589369557409920087855991887671804688341466290776179325153805836127199957022691323854220091352706451906815545782014333063015915012091265312100034871716826022206876295070581714713657287214358083338275907642635575955102660308767164348591919880218899606875319195349016665648618838152434421563602245053646100927484158154290814815450484218157754234111248232138539205485595229793281536292909537239802342104223802513726035919429219922441819842469215593173585459333590689088193593593705274612980325592659717131748683467858641287421383245830408178807393399344161467898111189612151830333405537527926845353870188438617107614167198382719964129404489959379307527559097675891031281650197482537977131508532677371953826765210702962826001953010549358169391771999311653577348229160182073082764681053241610708858552397316232076813888846260113108866913945745730761850718858688459720692061005074383885868778379430944829883822892443707948784069607500399986141213301171377749719629737433917057059066325109474626228722414059871181119890153761895590457268723226661531094697194904185336731562038183449769604675075269406797520619708311919278499549424519073794247234724173482108090533403982266406781828074033805567271395802971964449415859606394983430004099384009845952745828485317511194553831493453216322308870570673245188607807769503577114731764158827731267069597739759082311511654712657478511924065675815165041883565863990870535637410875621367258479479654250820417239027885364928145460304067137146659847204001390811030025260352324060616109905621658918057731974046396512158296559242019645495969586411149852847056036813897085194521889136548311706753211542284022361613672935343266367572424991572929505091962232603944555588336839892493872289140519304463671355019880758849827401076368226673656401449079621137589210741947739627932144991288658303636671710551745134371101516450644432945065249611001126338751879576300014550115521407248926365299868988185966293730992553864219290576890704398816587835803923727035527002465208148429724180630953825256980223101101854938698351169954387939376388243702765882829974854273775283034297488240675718133562076361791418810908126487451681860187870271937073593893644586882231253024526950806594088611598082065501319593086027167374171063109237615639924940814249183712874394595205488461264997165218655712115397296644176753294582978962266955959497841785622487334771521970472610224314509862231800150288478476845357094929094810150344624183172546788953286922707206698729714406891167717773176655608460564858340746518081343494445491591931423155206314582040198182637288568396362993235427817351421630288124692053993623984393773727462264694144927559834338962502340147997640306204436220934275920668739450193871527478234426564100034438174559291245909991508838922503435567639628019400724670040976905700965293809296970388851914982087745695891620630371768667182880132471802722087415379177522528969169153514040102876319901526256419827647793361235245875144484454945002757035464184306410155901458724690104800247798353146412156071797657804702002411039918457792074691559014131212727533779914571332878035022823513512885165886115448562744704962449549176847771801534045725057110773667098596194388826157200035818191998090157907955197248627296347561923174823593753583955572572867593984854021866734713252150592592022439018882019274101892516682632151460432698169580393473053907678699188811030340517162878170348178317205344055152018229226807337937462552603507345288777622605942648066110372062139339125127361144317634098161303036600617163316075310009486465832826863582296113358367415125104871581565135690142620891024069238271869209394800723635468300043077388860343920082375335470255991130572012858714193712069067741595152088059197822012499611680225640740894208704617763892271323382730782127042153754286715045138075930169911279326171244343735423477454845197999215014368935984517217530290343937321763284650375653445208944417883673589977960300367971231872347422352382098098200472759458837116901141481459907278322770521688233250294461077319705872051576414306049301789482454042926061124233729772221823816559689904525666667038651041639983298851586596155591439434936821933283271085984137583080188929215604151700645940894242433451145092001013110799096536881947455480091255791644493326601750395809253898032926182716920414722501227452885879505012826761366015973947152929377397151031307807765657753325667089512962295790388846888277446632856669883105280563406293399152868008657556692921532194229634443956201468143008422618344011005300134428764063253368673789371289696760935843274190739951701094162737071339136846792024208907213298681098336028625580064540367322548298485908319262227306898156892414416546809896550884648058185424024014995757142426951518677261748693557110062465144570263091180966184363922656403246371588319770996182906881544373252359935943320121410776452005313023578632974279664628050436052988488224862370805166612032834760411970636203580855964381815213307789150285368402723863974517239705427793841682252757760909597141268303196937642347511084435611175467420823204295358727639659086332572362628664300006587837904095191304810950131566868732171717426865784660286085632367991499222998600403106905599610663461221115742693818524453032406263359193143643316196187387750021290840339932045076868810904624388310732289889249724294633922007172451319470846865090723108669672160698557313148292140830178819578593088941040951572170612451968622441470118292674036453743544601131615381678820773099928688499394581359013936097270563704257241789490603325580929594852456310035483904522940682010356638142841416064426028553561216133296211134800599378438744042488426597861767806725587650268790452096406342516145679117097548896889098266435515485351171139986222591280810280348157991298731351469496370230153866147235467591510620343579634830258028512324402774106320143342681369688802822031209134809434867971148119763607262277982429409750806509083725879571259571222312377837997108067233369434258020627515546204752522378473530191489873689660489185184980739552556481698108492957135655662448170930482360087240432412977394262007430507050976722860912106569743037270653852944725541919326630212166900821605070765634642885059047441996325551124330660941205662627957595287433377661793739910957475107714768458114130019076065943574143931747983967565234563789603079927002863130653254698856990570525452735402038044032108383985644176372524706567512526431700501567804970947741405993915878693394428644138970771347069260756264644444489349491471533054089822953966657380233686351895052523759326924430247427617074689607985177878024912117698967930838304408950889889004701574342154486143270885377170907496909126747194697257420310427557932701613646745669136147334644443655205109852908947907414166146153894134617186621519049037049384445049060954551085895392877816579075004370910826353174294701889576832423138480207278290179026531872392922625691483143567489876940399708668449528270147702725359153457838264486413153997258403451110736316594415012299795891557258245417028819945142238404062228221211575480621961590168325684162543290047256250577205243176131979851713506749904407185198627139298784569069108879393685945941179771282100388609204007887654126792831572816116391534816979489284434393171605326471381881443260001198965821182436258247635934640971767055067216537490708269027474698981166420495272242645349190061129664155638289560973903522796291492568060249514410198437303569777909641337012096360246798006494989292717692762134382704231572454178126484016718890754473822472852196416043401345422292706533294857073918726930090333046167534839395696711978236910622922064752624436334668880288157806021812144175522622498716744298162915016581316388309543637919140952407307040750141364547539826022167174932100951962720102215177723204793157801468231375162879971897568724299730185297057337208765849856495835764670745615966463493672759772957376601871830255383796983689211992898162530765721773135825907292989129327376100597662466529223992371081253792731518558655813404354991243292728855683358331591204377183148193562458900258744206979108276237717281682609647306231167845708205911600559642355415548565461933597314376575639788733385443343401899068230612451314798027647342798724759602385222783648266593716925923828390921427075491872656943640237763462243951922595123648871083623589340677529115006952887099685428569232956667375618662026569565470841855613612873883239825028157329003849813805328334340693893485639002908198175724091904186694788136795883024430071229058717681156915513832744590972336466733344729298678355437659626725455595242298466563354289815340541293686193556534626120331883448245301171251435014733213004275442444218971937681524243373593310680301983012014078086616453545263330154882390636473530386104043447503761089003270305122403649177139115771695713481146729915577642550242128800913328915177294188999648911048267492927189319219044904698372140929352919768199745307216160325622508286708651892821791606844765859644825836361998244955344136702855425682366294092338133635000718637699788059489136836333739920790123444321148316473149670303264112765105985955703986198066594044796429264327194189318478413529969957090016890423086223415661943096715017361555931772931507227753765301681686110172096292601199668776660905961745590701659738348184918891112938168606646213085150576324949214308880537103778492792705214119319313444556674940320329234388171397985119912266141726040499130997636081272012423082859277051257010924813888165164619476440847949100126085053633068882165272606748172223803566756749131341165165656923283355224535609690454234494971565610432544785084362364471486162331174511045956167788272648249016417086190210137635913703490684257585194151472433415159153641830169920752070384608223831366749782867679198781171186796017632565012849699686628929694523994863655648040471730696520055506759209767240923073067456856497847455162619478793526943164962843307229381644464706406603361127597280130279911825888385915028895011563035661263530850531676672881315125382716824911316451740300162136704422848525626266224504320043096444261995475069179883606267081891214526232598815162104768086769619206401305843480051795525872947621382641996995232824912253327534338704860386284249034634436936183797341674372071532508173108793485629610436537281241227497312017724162364068782588703804746311610326922286045354291643633456223849747862637030016859048407296150762183722561046592737002604246833561213790065149913962761634049578594257147736460799859509971779641169338697722507428201301042440083394365684080649842250323414159822102761624857464957109797088426502691680583981062571676788250819841859420309993557077813606511387138413275392605279136999042048289099673347455634362061258812414327080989513964880867327176801517543004913310269416443544323403676739813928306040525522966054489661982755701327864917185760225197017094053778938329614824962618791192369543055985099036263636232709357766060793661017271434805917977991340036929623882599331841421602384272150124719503616137021612206542041600563881231308796261657641395050459434708233513082832703119598422763259029021013126080598712358854279412489577245170969042790812749171268885862721443106449199427076196016233839487370981492343085967768423698386073227131402660154579038974328922494511559008595246821842632379242274870539783605909989317172623784278788862381773623764456448044663627857245096508535412937944744268426076852084965076983754904121479907622965693976355160256472807563247349393344892420527118322198260281846201953428211765794082790592278732486057687632685822423552415645645757654379200430522108684155146817855911805385776895088374078076207613901898121072350550766119898024538798894041511563848679353252339554601521873114310876886977244249530408753370621664455635817203806319943322535118838296969544511662792564087096386949150461806541715638355202283115517769461976614403065294039620936839479184034337454349589404951671794363451078497888287791417309876754376358329559093717479087291804242449581116140572853214000939421254607882184622550726422003024682905232607128517003327363538115996355224079687142391864702833068057022687972715219242296765049003013405838005994812731768018079555039096590028484585958482755320748383320324386217403703324785429820244821115525509114318692145291543480622038311914003942012227038770555688595900913259330405213917785919377235495671546543244126102383490651387401542058940016078895397434780857095805165777498024050728025716275357935193254211886172549737681616692073465435192969821056728748009551317426700178670590269363568425834306173129617401042936462076722692808733989098954846081383160010662637594517293179303186008162449977335043229118427472218054711164974763505053563639226016025897269139013543234464384201635513861182472250396854788596559174070169546531502927677742365159296301447707565353405858058392324717589652669436830649764214947883544600544276523605957208213015002574965341840001996519168625562160533046646307979285412981839315065938223584291236720406156649628359045829601928597820271214994931521815245265402074051433698620458724920697478320741919744977337515008669549403824568462317106428770696581265100985883978254998562135840462588264508217728833514066741349706315010706997878595996740358333079139236619111071820056452099010314347703347514659240622872482422497817927457682914107639187128232003408766725399504737586265554149461396330918286122410736810413405555671116642364171114915572262547175964969962234838077489905766302843689662669201646355018517433263715180851253004909911501427053422899088889936725047483840122372512268019671345916574425502222253652030811042046238267240180235036144026353609472487211486917436706580333898767737001480991389751939052081178975331229378497220593582818382292001877910785001619072349136532396884526142873257564517765813988190592331013941678322561046683756471594806310807297787884023233880306069635073724715628572359574313318825924661850764836429261275674346300325286580515940628565070046040445948501774222421665441029525118167063455886385408705744997315265697569430100606893392444882721969443945958950014077889325965351690083560968193627260417880281881837645077609192908084578232242959303091551272279745876384098020074063942565662204273731370696641548277619628285437875520104919794188148346151312819913042384689476829147341433116474489976739098392318097781762929753581962510664135081003167627531603207377827540028165580121495474453243643445480334307065186117847829975490083881133674605486107874623259504568493180005885639141069116304015153088722135039045685698351967463459860336170960164379819857811635547498030155042470777389525535616543882625637324779997172885451232738655295664958549269744038119170750914734816850941143711069766396126113872612194819596003547915927199828768897292153954067780750914579891347334359234556890065452636258173972536950852321620158802352484919063677543642642915811119304063810711583650606359093363039279149427379681529947800989793628083080324223323715931693295572094941973591084959551110829406710163120039745067257381779546965731020436720866842898709408793407245056891795450783946160269924555781082150567776325640516245695044497674062218652108466134945491952197704652422912932363931741959428927036812346110602403654716900747001430223986703540454041142808148788123124361898719712524509618251539125887610056120897710662243370442704159136134938768148139190172770014055453536160119977980281662717683966477183821069623436166067841237852382767388665371771513002852346608684790159999076535694745254954824985612008708779866862804266927074069736251284925645048125158338070834818663787143890541659303165961403141366196020585704317340864700258124647404182661331877404282218840304589869459637270335112092205767762501140285459307183896386445146880490891144007157031326052098809703437615836179862728398247054554099023310324090750692348132327877236963072455737698804820496573333023918860035222111859715123919201453788201497746995993963647474728787537256392583366686168783898204061575468884867708532108309341174182743031051896905397642015758671883739623586542571032487273938882730782675070653118922764271087007734385327244799184949213643295184778501123912479931992441330791706177714642776378399228742745353406160229300290376316135722598581050633604399076133873103688156290872127115287593078969505275457020746919604883334677035320322048516000475852713774689464618690897191332580514315213994928865399874349145892580549514688847279778463946506913424770387853757063710680064929034860413791552740120099330512974971191588826050069165628709508985997871634277814717974668070467707730842722827108116006617753589469835886740689082431824076356017202687316862271069665240908003900604268371450795831761587528186143262538337338048529378935238097574495459719064585185116150126054657380008999664780372319854700113947945973853993343793797389132603284673589891017210536496858489647528060437809164247991242098504780981139314165688882662770902039643731096554351783932814228114442946989958770290770783931585158872021220643243689780438756059297569106385987973036727324084089835696155675433511284201377872944614449922167989847447309413143872095186653356179003687714988800509320733459418351896209866802832198542107646633956905234278001696593019745254624462494754503375601317603568114308507190890566685048670220639138826185974965900544455316528926664345373325938065739468393212570635324130939619196656832754801950476910474068440392890573291481966152104139927529064206538774870562396159085664903473411551188036683415961775238832345575728446755773962599471951490438052274413307901656805881043664548064094334295936362625237248396473962305782102893792380969989115212117775599460192276571237534680720974964861683489406556054375692465999095759978887259061546217917698188984128721056872546401346236890019042878751766373867466865930568534677016722386284703469849802579527600038803715017605738342717585006750492676928028400229685218718341910041572496615594470292439532734809196693548958092784780417811677797799691327595768148708787388930753525392749445974716491323079189359616718967949518017595148406370166720621363127606318343719935557937063596381734753406221358401666075427598815168650326066818155670305087632839016086910759242417720252563802160358004549031120196353042046245981762887534125858269472178918450730906586302107593601125838191381523583128685899910105747720757416482829959389795989092758849878556662835635845409402199144596854261416096776646562468403123315082636127142183145757627719494519952770367312723467597316999282481902188338946669795537158974130944866409918099857447703922288751753694896102881766197712660599689856349572388597067894981033475076620657061492745394214848720617802776138597635145454943039558241062111489897380517467995707913945472976405385838823240578985046083403973597002223070917221355641629514794326360957209142232405576608378367579309181493429715604492876961020381439581606808444217005546992475117342051768507078609564641285189987674715331743069139404672367724850690272570761318480767558783784407073334941929510472269076832594998712813055474391865247445223957936389156310821322152605946305554391582512915000903603574068130855929705937504313842220416713401821205941024277843035185770072741112407712510782136265470749487475639740886198162784696100446142521336845350716928386935228172574062010159980103442567542555524431361213914719941082272846321104011616199091837187347315680032933464107654259479050103498547157235576453226873614999777502818592591391860351455118708690332416530680429878953377580598069230465996306986458928683283639919570587199035608676323053304069841384965115102171014635171219576589160933751311053775720655925607638025945938856139763493209899374713606767470913036373402867759414954850705086539444067410141780763982554202496932595746035348690486674288125590933715777361670316545202415275659493802196790156303504847925505346935400467689674588134120697607568817955654593285725920462890382192669398478848416606561706220461716827588173103189754552786408929885554597726540716863137909188325055379028764527691389984932806884987930074156377986392207495300114057479359766532424138809519403251542097915322345433267028839837522759505179617354041099993237234677441275111506240960614666809789740902684133646818150006555499329168992430963650895748089308699491670561274995994728670495006954040020030192853547540664249047037316443605471705493084599095669515018515068198263863332748549599463423425388890594930094167481273004573434024192494688295514220505009158474297359593646908679729442865945831607777975340077765261285256782543201974803920321997843308255349171418761449630251898322451898045207015155150343393963534101395048782580872904944441131703661172972776854588406738865364673448808472752035078951309993754978476181396042422938868212595665594180663606301045517057136667970534462011840316904619684972854712941617641274483283791491209793242180476266146844264602192372640187122442150001622031072116398939023929992970784042315653964345313332610959907090780890887225219690962660910816362065074384258998110754081293365866374796697577888258272488948850675675122284654192743360388630584352242220061752723925175203420194785092228512025916141518187035719600473802008803614183331419564842615820009750662580283930146528870657515390065525094361614609454855451528569286999963734815259906170455694635373472480372754581195510885591409930254919150250396256884382198064895574363695061714258170501218036367066190179521471042896319892846904146068054255446335492958095490845788285648773115793892198968921908804091498743165059730215338621380311662350132750311568957815884109529200875904056778949583276678737868181379509254609414816461641858108064083986279716393514468354911143490741579056549084318475052582600245028884102109567667833348903288711115478696114363180158087991409380933898202784159028563806770846855343312409251138479856786050104242522093579806152581794461072466389504957590697349058993291847383450018913215491140806781977471400081287579282538355370951603897932774283829338861069197686086794125046810568533515273557690547221405509465399971489071771562508024675894247746471142655948608649544655480900620454545963319377086376483047179969713271645221398347040462392005285686569072265879094453840733186641542934646295792827343184974873604028416256932564032800280234743049554553454440709541375924920351618298204793361193007331866623215962133342106380487663038412739312388365207830483720985886858042613197811379629442641248674094768528888728829526484213395406819509355658517655881765916833454935019576853864600024332074380248192993249561502447313902024776650552486785721025192800807427178726235952905317021845346325939920565497948042067922098836634168640211567131247640577489868350647347929201937630172646002275413968755244314304135169255849664076060404971796642001173072486850984720170299984829413030008208734199524187626091596258666892408854044246670703386270256959737916883782787827467060159139288079648876362115347595892481910695482570758741797779782609824903360958164256581735176294372832402900911828204806677980014432014687971689161866919124590945608020871331634599039173518386981662386641541729553138673537024504426238043102881061795072490059090191326056009533442611609645894191597923763516349423270488324723368078100646123933775225979935287050448375438738460069246537840019163166313734381262224942214545889171816778758516546811899610562566680276794696199759164345227229887955658903145885598220531944190406586609534125542748134191460936602807491633919514661863017819108629598223800925714930599138340676640410326058438654422429905031979269223792622637974067406229287929696269106888434287302322840001514965233915929059987166238098621821579739273369925765778336658520644460404740983003716275093032490529009146955944762741750664284467931023454155815077786462714934518642003983458737094753341646557496676654118652124866104890805233745488189008304273609353603705943518172695723188138025351439726510350947421513067469237579305311454877034397293217621946283055936012707818756776950143810379492852890318336033003439784618908010829707958849988042272296029554737048666663179419868199414959218692300801283930962589519915993792913243842003717849340119905125954543996259800191310193639480962917046173517788226822945930885415663607242076353821558872546794017424707418245887523791161739235702050821724923210441786023537144671647331494918580876839462924831493528638981670521024883835160170170724346390958627443498201776220478597941239105847648279536890680175620458291238802080795242764807518630499617819994405758269173047896238824095704613377713838356419585965565255835596508955224495441912624060351853918709261364136832640785272283984159926187548099489287086714719618999016358283460828789370670100296542140503805252677817221060415238376017810069552832480189533418514015379266147208162768047881121943681365782343228828552424833709943788972731185413511851751844854001637630985504650150976017336349725620325776285788086659989707484612724311679785959488941851547803111940536646333418715555986286839908288077876403338255183096962087016088695455654048439628651156236309000811701557915286047389440483326971447480807143424528078362474932989909880281611313641003603812578251781061116498862986649565587420467409464075383649584372271009009145509541979643839510361412699951458128698830636473118535621465240459255890938024480746652083651615496684917929516588365859774213768485958583953245886430708350504496576961023332121560323048701698418624963821540847646534453233779959558406333601342996157736774888853164287741042719085178841211544965628031740048059699342970427788555506658635951581498534772613003874550739835055956463913721182477339711205546426000416229514736262035359126747623487974030891075931068101898602385644898252568824698472941593586987777595443215626830251199826389852151476469647660314096831371702788262839162958372815882085459940732224293706950335920202862060391321707343460950204816661082233893814843931324046295125495832358228689001273841482031972437737367047724513804239707346507531958290464028475850363222942803145844824531167947402855705187863539599805429018143796722338061382688983760527375092838915120209186150092314053261120555564639825542735580078558663321729467050479822211633022300600680299189845527281065917110540099258276267703565363840920681284313399536837181259410533210335325438786670178029160123710319842974087910801615161477781616286977696461509952075798944419040353323664731446821911197467485929129429158868766683680276508551870392732904385839275284088181553352630909150783698443742715506915833186307761295459684640355645615078599829447666404837926011927837840375809553014484125877224960457733052726195668030664250587658300598990062790265429162154804423906212136620170644710574485798182984150981138555065304892479576092329044596461926063373111462370540512629389947767947775778503801135081808739351935379806255752707301354000844504832048096709402142041709287635038643993863693391415489233249012540223988565361014286866172251939138131094711708629700649153187007749163226141896114996885133308072513596770892683267823123609409238268831952820641339565166767884611798157354462953612308703015883067820394470763199134328063323682495112013203964918763066974636640285904228306846193350186092704875683364972815120078676412541543086737189380893226694864324561238517095952528458719154388285032367818483430501049132931275361308633674156923816842336246728442374051101303114279305238861148420626196528787602612477362623891151268466470990270656987480157151409280140299479855933230703406228511033765518171543371594345720885130567242016051795205393913433315488263933133608827054780910786047567192046234787031572308738883536985147688232822179253879461440969749960557706850071535426481844159378758009589712175083593527089863869702647818822869888632878882270698363156892474418451236660337777469811062692723785630164092528611996975678234748932726548531063186038681697127541562815360051822616265868916077822880850793400337033997377550165912210232717206826000521787355007109550341508196535961084502614629102995474685225842754191419960517175156116642646989645844135935612737361582559030959002143984579354639763101227205394569457059578807500828178218560280389316175054500854486997106397518198228783823838346359585143768611079572210372299670702010038103283681168888859635598318784084650430890915716225179950348198614908648815385748842728756496257402783683681189596522909099081669016838378022177751270277079169047103963084222528578534231424220030466134031725340792876698064841427557132817493120197134964811440328670923078257128645924777154537408690860805255021150189178990905577012846589684723684856370699975680661515589292667598043612596998098032690263668040233219377394645948501864568765116417002363784846002663501231790558408601822615409728263546686786498233905602827257558669629025178031599484035058813308868842513668376739346106673159120694721687543291980124633362821973956751555642221858838074946252522845944300535548511381581557933954158960176675164085552573177411496103452503423334533011399780160921317772921917354226113057189268494132789384011735523551284896702578330590294144105912093865550859166333912458374290092514613632316138657749411684773783714164075471979819996393549097034660163827594887833467599600497642724622391580864804523992435575108435676507057821825490334848641033160442175027639602289770555815601710638642463340481452397477695592353592911912048178089207647995556141457672313640633490585182335892512449043957814921775095464425034623177133789985997085366367027427035471065812066214979951130906741726700831356132747208346437124604940424458957025930905730713080333754424980357592137008791966791876657474096852416949003750518351128974410310322411693895445050705030727728340479294916791477812980556740219600060007834866907277267918831395087415203187169973051996899724436364841340677837328346153246691319854323430176861129080349800874652921021625725538316068608392266258482939345247639329984471476233201357229786671394380401246890607918788004680267371059052445691777603718227448737994123699128621810613881984689520176444204850486000467010371074640641045206697311601353328661317956303850922732566959311516500578541493392931145284119280688847250415604797750576996126550003813084522020786981005401575315080623704260244555700017765634273222653729892432372971303005134515525814200175374292606909741497084365714360136037683377179452902224010341576429087364199101782592126658883042509425663067684654849593670868672211964453706444308914741726932018545550031012518213517866247446257308842494020515534569919566966287482009084006902527875476759767919643956971953255351376075282410866215004296156770910078837931875174361592652601177462678540313007173236418315764589725740757243682929484993580462542478858349898648698170419247289256857624586478844572038913024482044124170205500722945903534253671451352581745571010922335116881971071592198063055472320475182097460140151408033414219177616806105260021805824096985227886059522345686432418585927672856168558453907743501875844957274189030980335476412322062512354599508901042156706705059033658343117485966860875816185089643592654573074183148859594350804559081467900856074957125739453196332475824698390685746984784161153679294225380113967617050514601094388108543064201098171399401017751342152876898818834834549157384081820999576108330336998375538537385817103537379556744541456732862148598255599724194222390645663831357628917457822805597808006003197260822968895696581526121311145205826292807118644556422349698087206688229299904684463250718237591583306226995142796756443092743835208911287920098754016096169201987134269755648665931789250686426233161257315989065582765303478408458327294427448305679613572271524841826785631931014739914720115594892072616284577396645257259662752626397399460700007231133013492465743128413449267187778469452855623746346147719610749506393018399471112940703260267381103649769053065353656980644041560569754343250706472434627287705888951793285994875683653737884383375952530464645097128326707454412591338985901007254417850188783028762847574004009217699965367559589039919312933588491520992680308863536655910430448224824990781747288120317706236111594760830164864788432243184625932383381082637128375847351515901673001835135144451630325838529592447156245835649781582141076595583270449970216225157578188238559878722700999952566315880988631317035549496603230090439843187224581015377879585128827032808702906310175792113128131830108231125422740076623182689938637104649311986329577226432716949772765550307063185966965155957145172120641031208365710485705663026447763776727906186819346851250823075057425129586406787738401132035802709680650167946248837452324105384080400645589372869508511914724419669542081139996290638077506381840585650756854407925067981856997118136045437229475015837191501906447751266461772325497736727823351902407069827682789646302878120533262722471883859680087134076374555212091176515307018701791696938406530874202758900226638305015444317703979454150658928345925448402121595095784318620930971854033290548913061547647072959829584459681575675583307000633296583829798629272090631604965884397726218414880598993788551762377117364768519976662634048099674048314796188660056458038853705100419316907397850607461316907422593432045136693897406374876994581259405467604045924844097272368281117262223419405452763384055300946826639664846474618076215300630054707376381659371385122728436983277506212042384618796280278765290023996681082251908590325285089229013638836372357232359873543783672745771210653000831280929885959552170557228856601588098536717900565272545566562801420436272765897053995126115815761431075207241273912902090089750829165154774017800743580922486683230040614598630413688433198008707745984400607416650136880360512740858256645372857921064865827423973027374297448918899309347336178901146939491885719424669194814432098846788088915763792014058489902376978658407896712134935608482294904082056068501774924540283830542078794172400899584644265133545480737500230989094371042120545400696687081045357837335680452821148775967549426081147595731765591005613747907663350218490141957686657757098700811501098888562973597217801488667262045001521984603642375176977891343507684269911810131822583158086577751108878350277300628374527764501424575464774318451481358159805490649859993171388699420397049086539872471514082722251281818967668484470081380245041719452765712950282508806310225486512428028418968535221476713415933333640311245366826540653514376774916981244925502928739028331084923769627535212118003051618143535543145879424144174546421369345193018084533290083827909017067856599222521587200236211948950442894995043746461766168589236937314275446754797222033800789542588837368800246414755445368685308594927783239104118909242560644085915614316584408093358454388400281418788765865697778529263324482015954394788713354386187932924426259442723737717425535708546618425578305518835400487970239575908878605413630251941264275890593238828834813295835037413033142143579818577458463479122849626981210367809589753186465172584038430652412381191565680009978292012963037841920366970855351632090300902096127611660084381340252954281403925409488904476985944845789941331647554911930219125107090538846308953715058317999625886426413945112407238070278681058283410459303650354522363093227915628726959370223488354959943663647099939768264891156316335914330860810825284455112670341539089993070757079093465606223193136687811346804156298291826651870410001011388851894328248073953351345445485613378093535080346761958405357584081583550793099416947605060365519745752448765204400224196716562803959363245130665935362425059809164307044906618003807711688697557558607373412752710911820926837026654787740285297967051615402598340346133032450968552947853180301491391598942880352427799905388944532709981279672127467138197902374898104498047407405068861730410598327843515915208446386442229250181404616973968225412424500458082266192505617336912814914098642229823877494510086313689283247949223021373189656295319650666831948363747583641742446453128639130297124193773840235539802085753319375638127350375167771518499499149266205241916645661584611879976159349042874757163736748557229848411033415366368220511410793932637900930005150751535737479925336392055810056933436336635774299637885263883903353449451770766048659926800869421659206280302921216382630447156792966319900805236646225120643316989241204209272183726221688371602675193206069163355022322273291858197528441148349560976201277927895504481057588762721942440950360922400103700822612063048356843686752142900444998411252215224790868914992126593085500563548656197785044632089648293607439821524856811728742606657162232587549352943784028833210777618602992893979037311428154380181489067428350811385552209488633000418552094425871065770459171681343757555812908046126550736943605846086669384427818943475868438797619208948100463017243965146856000502369553450637242098298865821262783154210259478207487675295207742044544912763314285052907628723695781846909768972470340084683917665562957461502747152031130037256701715139497728009262925752473395335469472689688744147999402201091938657893995946544427797911387173175387677038538512003630755737718739284966202778263073144680632049927878184806179734865515889977343784667679856619066467229886479789221124123415773568196127336974390728846602503088100176283326142437514598847123025577830870719679503598300085481831887710809071045435015498163685578289920246783066114728284449243961305240813866481044157469140609697234316148349120961747768999654505599028907620505338932556642709491875439974521190112103943472000945396107245857541585096266826099580724132821052591968376716641511732791152620544568793024202970321494276552376416426987646550924137484912367436121688962774341966306105690827034460865751404675544245544432069848163192188833052344457191715963487313882098954596451250265321055335444790010624120213210562665991052535250299927496419094481145236069537309453130655666227531386845422796529035190060877008829655879666487708607817650073358086632891561170911150295446096590882143008531148460771647019138155213241823737679896291714551672940834654473593735977444575601153425574763338597408731229221424219488255242336086527972226228030401210204680685548726788635813631687856338950993953677809796210800295973954165108990378999684211184007930437913757996051652375829861058335066192874044113096456789681628475302066066396617718464218917233585008950946451170353176721846247855232225223567427115436928919886239056134682990577158691360739244119101255045506175243901831748242761755850114703635632441025303721735290837256297984319064532560029170152999033561914514212812456904340642348488123584702542572011036081671418136041866762679873587749044094841557536797755270584615860336633416719064329564171316659632317079528209347970868220122701332336213499335210071961570930353373051398476100745639392964317492244756062442913460388852187753610086534463407006195846607479620595077014876949493921134932796043224003791511775965087145742634884747101446128083854318614500438093548529223412534148931810340592014259037728323799387635044583603186881932023228894148521536394530405287658120372401586707077755668724180198167680801806552427357549586380883543135740033170291013845225751224059322971371228276230149036459353731540923308308796529534962379872470325149382335377939586615955657087186003344395034607702786234639060865004047576883778100450953002753643156262218545484353626395077741367698323610368687340162492949584605927732657770459068485557453360314520418831278597930716036018632642678671182341081463631409566469103286247127300366665262259516709246134604199384021057153539740512503773493933484952664708674764051937918174086834082658536088812548610933870823140502121090387780499504858853870865818839078604753474794568945467172590394486145820707976766865322799977860065947827086479997191181979239007987262272076761226287988849342744963678447176245563713991738200157187992344284936387578999473604269254050491568823555932477035798706341915548762876168833253061054189340090409014570179360146782903207336124631983541820955169470623979714864965696284255155673574047523012350385895833868522604231061120702039243634002473840305461016329964958093333064148921743532625486103903128417550919994429518168635784916629052601463618303007723090998727206460028468448868593283088788913631285868446194986121215407587677948648551490740118307706655660497140828179423697256942638297771441839721905938819693034037880568175400092436994652200518573432306939820854090445603353016085086090886553190916864091099868403062394757304159404597039902986729496902626601053987087990409303707879875020135363523877620194285665186846956807997168760824309887078022854296257766771325277997029235137242010583487901508198641780946979708063557330113267242196831937968758570961520645171675501002515720285035280013513157029032422249045118570589011325409207830996078131575730223301094554593437948518934101235626998352653786274195344101909990513656037900272811463819612398204662059461298164844478799262650946490988596988097441865511754836613583337394715988063093650206347093581902193555405847422256578769678499415186295858700072064976594233695921390547083479804228167313034388659351727287056908176364704533709752273630953783493450594932323991740755428925207198870924912148441077177902796857600173300197621993678568417485147051925993871480544343163386041082017152930463635051974503391347393421687943294442089294483605395006574129517923026234183799921400859872295794801760446454515852127752379112716248889700759724538270699788192286135769352525364086450937304130783719443994385579148720119798778141869931424223835894798081569343081911452983114426325408271236724324088021899555773371547064204946233237476918189537963267300794237897449829488923834992922384697220709928628645632281477967549829030760723689887399553054886491035644553134388994375623230163849765548770651860699753378673030298662914026543354093748955936823141661425740082732834808160662558209209017685642341252635764731105406438963156958654858129526747426147140779795269270425747959688918658938811938573837515612077735630258957234532952997931762655043503236370395208825564072210439731682759402455235844819188529462872192992576121266002787076572303671474768129416211919548543007164940921757041435891565751270865638725584361508647478899728976907880325816139961773417974633606135420839581140796151204173075724256154939716756113446815711842766557371090142872354008403089864958345463465508587953252650098570856496998145387686091585697741363431511195283562201832545824606763324952261701077748921063661396909719055052585005411998732098875687845425538709772517982498061914698805407523464370736583512921558419194286089204915299093185527189180730841528623677683222101924288944823496066371761922515773028090682520508805584193305011148340348025134320687562225645992075447662510157774547303729515847409337115515058181403706349866709624324153167877817701157731372495704754670487828433046036991713876987713017640728771024065220225329841207572310515409510640968255479175274514246089553035179446565900928947667699275060550239616825449370121173090210522462532603507322571634451175863429209734371914189939120212135237724077452882531716251026988847282274709845053698353691104348416608521557107139255948833841715068091696726046956869237357401588748266625299619869170707068718678241352535809660994589323252421765114173629309091554663164697919179836515791012947482387500027666180762328413156760072185953340063751577386515037040206688965833945617645807995596774226554342578635872132803139981213182829571226009312013152909029488308445302196571608855051461711483714196234876458373420916356948437660924047146559670492999950883120994863081505392179482942853035798720871182039009592638936663692297003448388632850377200704443933233728362115195395114278126457438193389964870534507135660789306829106801156103063793014396575680521371940108118070287647697223661393585753033265324044608496750504795603610651357782413961275727211173148093422169905383636182977446793688840620453686537652491168242468385190589892108026357821501552850908194318783950102646680518367895759206976156352296648313962722126872249740068162450166743550548019217857531483486612605344805744711513342693114460812770529774578251478757948659887529955070615887880003049773846493143980479593960754012754164388803037704349868266333616921154583375674442274595692710883956166643144330089003780039220757853590756353746213719854815377472578816371641950642434063980841268168848273694031433573033575802357357122061535244978287647754991088346667488227577979188988944542362787843074650199420516451838667100738816700988183454557342350285733234803372750974896977180036713372009837017813114139458473365377548807791095268489280587040643760202652355863393431088559572926954528136979938881440831996399796693178924242415770194072439448708851085406526777234270447630702830095168889510048806036592061779677205764416702028104899511060632457169720192656932395668141673662694361852783636061128720654038801242908318659026840165566755246876597655231292571784981883988409815062582728158962274821015094144003125503927563038178500571468682173431551272732575196499534550272295672846552168519345578089349546828870403166134910047680157810760215831880158992201042413331553833054022646389083552567249837163743181956456096692484368374641349531555248734659067925598670960569632441619080466257387304092677610058118553718102288855605594153953330724753092482124575678721165093086325769898587475088623972747013126977397975111729223494708550595320400389199712155749923852679526422720767744500695416986677729751718787564992444908030440663871207996087569444743260658865450251739477272787261567093654170371873478915164404042714637483124774752659807900084257578829003203398952347546093696658439634695968900548882504816765509253688835960413026192499167136060841074828344501573547031045877100779233507849558214352985558700906451059767705435773472129779472932043228032483170527868182910758644739330548397767392264519258571790294642202569826134154266917302028738837772705816222705652825676486102989480977616379065885264130914756424171477496935584160846983407118140198193037238545095303800703145318898082913409078674620715626384775616522590969749957457924204978352452904100454072358801449099046639227812465770480030703947217261949762915598799708931922668742663622039167232150602777898618898576574664861948507454578935709154761322358830762784134119667150304753755609211266408602410129860559890823180946366815572917699844978939317403181590419100180469951080107637688465995737960377491264076027087191779631968267903134569111481869054926222590755929979104587143145289538231905966309830834032917822710543553577513622350087260335403033894933141786318239574070015776956581390453970709448953991849785128127820037703210322000857362786181829255797643950818214175772059520268883703423249333596281942122602428838926187314359181571219207715063086630074329054813121836478438732856064070282130005739314081048228688618034833598926475943652795661096818195360567804108104343636356925657873696230503565798694135353329934610742374110960406296910839216551384863771495587998611133600481581104146272468071787833052788135487036446014558190766186084449239903145383624738817478107883181561210511669289100225823265601559859538080783421088351702914465828944417430961899240885879544797552295953508456808924809860133735950844845150334463918357093216378158813743993176225508723783122498041508324520800213353037499168971819869668139974237332345505322165847220800192996661836209314154809831032110086267985227087949929959877538354216643945034986013488580118363636850008857083039490802154764405696038634782249059606202926122921462670415799044568998235390106136465378497563853086001996130645793671133421717706401406579770407986839881976082562094637158794398812753972166098115605177193888780735017769356688687522520559699203668063987680342522025497984959759051083855737666048733830887917048148464876264042666614687670728821101323338102566511624893039442226006336220537553228594387460328401229984745693300008988755171141076400923605124896668595618690973728421777365069357685140758809205638986851162326977694979570891046912824318438678508418195833367425802229587530167355762815054974036702834073681458818346377519077081564374247649238174352957371293058860985529522219465088793640127620386896615306395871903406240622365132227032627952322762844680326831869714699466188065463472117895617054404504724904629999558456960017770728796858328694627634697242600267481505056511417083069819071385023475274016826678463140967288532055524670778029558918581018323097538416446459896714727703786951322690089574660861517302456986241424371275353541705440462062381488479164192244250586865871393848177475108373017172826104759396991530222254917102287891229988964091228018276134853585105185957895031980726741578701877994696244053952272090415532617265743806991736388549274691163165707202940035231008444645538673812127710031509510861865136000954565617036369747654048243509123107032796018758590613544322294809439145948454415945186862437590722400609136513064450921934867289223796819159392451782371061463065168146729539514201840825114222689694482655902178596513507773282364683475484592729112048259718701131674590656355760673186953628562933997189436143721477161690061740296504950086733602282505284427134309080200864107048431965955635934592573434198675815482591891191089560622997023873988439619325136007648945953299364020390124215001335141172582904069667689529262382012918914644342375402282142910133187269929640993786655744576460703427843440444251971435043908143718743152841114103779480732202321041124985644370980309911270039118862858440822632333591359644455215485183647515668562677874395975907177619359313322554569562901007895323895799002716434535302534397041840522707525096108381815945520297623459518555560735466548172820071714674731025392201377137141533839669009614959343543167908718591258657644672191835204489792719871365065117043981141244415079471014167211576089663883346451762801108882187577730901624018583097614161778067904593159344586793523925547732636779936172502322187114473218469875246202377939361642403091415394570396715494702868312700898265572603454998919813029326045429811264322125780983030469812537505816829059018932923319057107837321991819753895982985696728538884167815883275246382445924629131195889388103543857884266039446512824902629960127109845825304452118524347375188251141887544323635735072111978084290828596825203321046979675639193224856192748006804242234466355217499403879350275400861332978887486973800846239516663308234028212964880446604624245426123298204813090838872853381061984630418397509014233072933652866307826788529921570013035652846054405717456965292096171905693430057259316588920007369341071874046313056457097163674691267711230437423445213346350678330404073562286972206276337993591378538425040657563927104969886241047871812401364089705592047563743072073325399436494708124653763416987342593456605309271391158249156549193426775550699126561241558187435741372801607960123053221244129934155609726507563351187478488893276270328620931486736937566241596791882838059843601278620669097952167591955435370209677454793258494744817752747992237481430338980774090256833550486254910688929266860114537414111613872931172267193898422906078680854912201266635562565602226977066542764048755046507194700242308898271552069084100636982323973456685861337582502502567718531651704166941040436602210654412357386562910618864774248117586615279199008793419792243784716699069281901662693961285008367873132631094303306567530609845207682733769268978857619670298766039625654642185153458288977202261583936335416560518313316635498465612586343002206513532831041332777617372412533102086149272543023185221571267974512743832403176757418651105827458662524606247640503340644885053142351494602289055740704879189917407895841041644388837704305488975432405040000618024176298781513887941162983950921608386616841719807153222771260969738400798834741234504565794032439257361946587895175656812759431933205684933914454507762344850879306696828476547777240352122682365657320422972601069147913058637166166791105827244120446345700438737275121194950901038555120329230962902811359608885908725407934509174631108798504043967858762627510913871589467561291199046953221494421937085559332039377486469276746161386146585277939056382633351622366421671784827469078694224493330318174902904121998229074228793643099804705557385610739347097228687355214755673986352217933962394705664305977716524325960319994202479544161778946608999115638602830913970518209139862192998854566451846919203859555643807742490221596823354768046305993991869838644771444640801951087026841495203402762508280744557775061907440892546171063209918043620911084244867688520584319609215120998664098422335621449387451529590487562755970090859782589259156462237687511511044935524217386508975161787875761470026212966321356690030693317335222038219159095146265378342189590124268574727657765163100715962343354239676731666190767942880111996076488311182592042165802423002521966125453964567044194164331475379804024322118614177457066666984520720861268217199220861072501339773026777395104402369289050424963105346052714839091087847481747251652108115680935352515645404282527326232374573097267900307068568069143828777508289224607929123811010139160049856578147377684476813517159686327232149466080127685037393611907920284232073714159610957665446908487922960606800693238118467433394611100042438205653261894637900050562404101422774123046063485001838136943764532258530257363219124650697697947875135471850443587083422047763043534103852753807799516895904825149636786296270007813173049324923703022550372970601553221552722741378292481936362467546019059996189655429349109563121600331417832956920841022520752358619024699443507121594883403847840742207299608023740345830531014176666217593179566874088189203099220460757394355319012097342426045601549302529582527898053396331473616248184486727920470393218242054772841507324665334970544693361414772531628150553378592771373470756442303804187513424951564981651902297795468371173718207783057777537315960755635304570217276999601558424204949328729318603096526262832263110889692034576982307456421262280522236011118369802922739254149847429607876266368653174428121047464783180975604466891890350711271070062402687814614336183682928365320030679418398140658471228262033759176455578069892595086002704733215138704040684034265411784938439941760341218563042037467424905140532207842510281626287103041385648176904626431169161878015211743307251338167382780711966858427742378044671269524597326362190850144535849572008498766732337986411149691697050962830157649284121038237112364294107334377309507773199724556504049775953900786613807325548020884167544707934321658331079844195694519700144974980701950940396776961618414567237566574976871638235194987802480568057395364163574149176947501343310676990645264889733570818956799113704625311498560110372779466534713850714782093770480206245378119551003006624422740663611815319963490198172310799383584230012148381332522163762024244490353838849793673735877117492793094264287620217116507395793882015110124809778023055152731283013437965292475178527571545951112131638600697212264624477378274892065400407481134921339118717503723595121533782365757022453928320083880774446026858171651818572674175952130568022712661695391075981815288914082977033308799452812838357369630817924269759135181359745602022244117971547571611345464560588735949363576503448529925470231084424582412701363410975744542585724048368227275899269506284611796638008232775800768694175408238787972822640503150617114502317549492990528081099093763935445883762017771699682836788549389588226463465283097486405303232109424866421542376667671702412206509236754450608079408872039335058363605862201812011459913296087122977889240579318814660619170069770210561494986178673814214416179282391970558041157632602778913225558959732131423638524074160713595729768316049547032311544891705433830587730358741554684437229506088295629718334764381130346178725117340206207835488929404024506299006592832735905872792547974097670559820047368770764975098156166978108684298897848238508385521542747346035421939346881557302443967436444723737732429864238542422224197409732568457464862690709653308131342832028790119396778849224405770062240382326435792137438836978623228994163147329956552091178994272350196006776338660177359126748069380422616966653261655043679865074799195322793576542533023527201508560676001269350509990709737579289727659085297522815402453955542315395212914313319316642971308086102622254947056693032380461192202583127867541956678201436107913197684524773408962790023366312562637282999292902126577338425828063368765694526077890559029418289473135988317833959245922022944701415222543946690854080496393877856409955437804591914269388283064428517296038704846528462911046760295149392912943322204682574654115492230354332875388753954644981522311460948358983816189856572449241500287215731055756873159083555624726680769985476363895136371474858538927366413809591008526896147720070124458084586168112388083994489520296713856726979032186901202523186627954189152194641774194479635220922218444014056958434354172164645474176841848333542460357512366833330539974930711912221418838136296218573669240150341385631803461832696131107174345525997387935278868802085924811839875418776510654852870476988107176631506494888588998046192607146829704846502679754078837366205870315990984194622692515386532156099690801969881859454920046664182626906915932746218838890868762738688856069410941188317805785917501308668690880347383296667577294133405081453467245766679565337689810461951786448067395643621119180254886615695157065464494821101573211687218011236067120530971069643749071962089856264703455100738800289800666871474815998025916912373478490469745205952398194070631693635466844103336516675769158496165025670328682789517256927017698803978311200029790009723062459728930424253714235529254144451059200167793671241757929957158338802624848575274871529415713908634581267887151516083220818650331272601582485535208087741731709375344811683823348031023170750060082715610274377284158415732395913088728812884724689143231078171702288698735670294727268601398812419010367074050615417124548053475643603093276936931719088946619839636140298196953658378148167424761046286131603024323029096879991069110004418985898117321260418539976661556014834151031293459961942956800204302471533109388525554072990386336095755377425154491993285994559656437436245439418989637027964500167689025056510820005860276983570396059341991582644551009869539255204042942566002487639929496564337343578767316756152850983739225977798656856423638411001348098536132267945877424114340182552865774609005458626958238408004901212615475631672094462197514989175862406714187422161085023155894612066743139904745808342691964010583638010441367982685130066283083993128031399677861401670211340410280916496116641211196293193629857254401326532374579279659428921459245726536538762945966815959294131591125025609572956597946515225071468191283415279327890361339740198717937938044676314980233252962282547303732129046643971094591301473805235794116451307779494861733726495593483098069329386825961779780952175854798132227244144967579840197506551519315867638998903481715757333402307938485330386307757269837653848460098341955158654972932784443040857782895121073918117245728461942162791925960946375786423216276165539250242727803802471412308040328067316132214677930983285928448187787642778585067152947805765204852159199133030418158468294910797807117573693890826998275358764092721606774917854928760610275393686226462120965482498802313330880460616309127183734943326528488922577425894688123497789352625883698543292922032096862110279665640572731987212617043283698300001801860709708418234940131531638504257296844535357895479068474243694644292575601768723227942439662363766180160906911706754639075441714414269722973100467134812907596095948858491150840056699671397605485065591709294595157434050569946711261025285195646382226910905425212006443327840155470798756443328089091474639297939080361415640548504025037781612694396941794350506785667842295247272899146924940749791716652528635140280412398301822748441714566458860905410420649124311106388043750925428681267274071569930392736076212265872967485810242870389201815771926366446717268854642128575692862076177536095049182536297426907081395149489418284876534661150855457343638683702293534195530851075958777220496264790066880243852084546470569996589733883072203265982124729703257237696372177961842222415585838374468792722719833378342085314910837551698659856261757575961115210561096520111018264509623224080483720039692794334091220946430241845445188470479884807457916403129595185474975625845887495621997046051157653396779849513755738268273689648320486198252787568852578579757062607028919449634127300216238760301346749656091207088934753521763296248049416092016483265427198066274546209367363042991645225437870297009198127992396264918039579759316325353700206432181528791849594084619307134300754797427265790747111041148245495898380704833716228161516215611126479879930295698756371446327386519284087103621732996039990145084806006473063956444466371696335319834536554806586959536911237326930855753690601217673963542876436019713011231448211443223544174895650979578035899077918381513534180281272261781708666838121713012679390008863612272693201174298264295431311772673284447488881623704540448570667802022179684489639382454950142486396978352678196853091053007602325281994553992811600329274129552016572244275413956096770816459518273190975753664884946346594098011034262061417694848157047285272591217036134345287531473222570467777184834744576144464447746952082438922490545607858483465995149123161981848425841333709713807506446491312625886794506384214429254082715815080339970892093927001754420692805657006085154593518593735596006282443593001739677754309499697801684213889459464498615854367545439449713537778648895346578989248202244896679728172757149583496091999404056382068384734904882131338448413307554906982448476198147250622920112940727089953098382454243351409442729877685959607666878803404193566421117622267375676990568341834366809990779597596309627990587713279553421898771902618303212602972155926789583352232105628418123236541679204032533386241419509593160449372676712367629431231705764197262128566137741474419938650459772704745037000097878101224605445360418665152367983415597445277959658085181904017398855916548283705029038297003032320893911153805040860396052984337673067048333106056356597152308489297237070111347613052798508094105868365272784255547908452384202438447777129774868807539099628046902321401793157555043230289298485383957115191216160216377434073120942935354961139513466528426298418492908152924682309863135637949529587947938113144950139450767273782415913163945736204866033266098289070668340289869779307096414633587455138448066853541730140131319749821567159764635806166574249633853420994172698948096194222303660434523650454261880418120028509045895612411361406752271389792144121460605926634353405341152095500825047625694897809543605025479549205410424077465864382638605071963964480399558925899961340318370060719884395098971704336689737054251068712277961552352567424542818180865807371186764302779048109019643398935338409008270063321214705197336895297639245281277890942254595881782391320918859046230195736361989844548160966436223221235256129553103609978748779710264347234804451874540197872080715487430950053092853938983951629923704248244438029860181143473176493298994234550327605033254601621656519753308516751953670560483182996845404677839463486669775140357578454408062194918502890448809254198853688242715895012407732842463229093059078485515677605626025920768108122378381016683194230920161940106448349264479485269062165513600051848785020407197693876974990260548017801666964455460187216622037619746158081909148475394131229312800055321630673189727327132152542009409987943383521844731035669530493010520021427777642654766114224769236537151905700823174276896358296099663903591748960424951008525891089265948312505014350266881380877738879200714077232425470077973799657268267415875305592355126922762946189348937213832885946636444655215506342258542887512020114058463938015581126026848881866533484677619735960918863139266851119325563770726622123510978070304500379445840825971850301501048796111926155827123441375386172573006924619885458602091173040460574143493937674828427213862146735213953328498342406502683361814545115276405103034040583387204189157966466423841367554404915335447870677523691045138800644787143447988885204192214343994065355683633247789605791262795801213437200498725939475815076827803916719819603759319133505068392790045084632847883234120619709438523683274289759769735198697169566895646656717609696643713076239204320995483953330091275817570135404796171654542745550187585397396337510210321637473641238889506565396274506291787250388325354101274246878968332152856193857290491626619203851112601722122113499863780306968022733873116425356542827326062994529597889800587824444988482747029548033963592700665509734904975997369896818539313537535291813119122109568416968132546486561598097433144972799658347342584980439635084299932321152139002829160435695987190237428424334639580467394528956874475718193485859900488513449155694747938926880583149729372636565803340696913064115688173673653976013836128819411925649584504174551001763937861776022871189989793612437574945764464840295482160369082945018637528795471011494703890437607708779162749253457278568149504959905290082078905122271681787166918845947979898743795354749143710170061267118737117157531065066826540297819745823208712524381934912852309903231898780196396255032414836749646427454200456133281313663451326997833923382565893671519773374956457170385773969441752729731801332811151840902896523377980689722951790252661161787347425742596296944882877209842324204222750322357045299359726354594165535847742194365906077321469811098859759660605883057683404255765406258513077762786334463040973956922845702072585882550742062571471515977411581919399189519802841937220761564273328902060402854420130036285285185769462788584057845654881656934442590554129082367441905524036753073756533222262252567821275243829141601618906293473800343573098961124593648820446401421462273294137568758823507343470545370723301428355075432215193865905338477812733973109461842118367234126774913747541734718152384360239524248952967253749031309579232826929858915158208436789335772001062912205346782271519392225176796266035896388526994654911827303957874457544252129316674935443224105841454468234541862199276916575993943562411682636919742252272047034328831700623191100703673634116117091974022848797172230953516592744995121186300236376012915274974591075463352458848362222192315328982155875727582663379180973141147151727936332079215371402749627739892473717833360759273498932549168475557339834429233371991599822548311286584893869082301133168682963886736541970007024276751646732665049063098721422852149245762653364983523659897200391440585908680956477557948372269457206104124963969863006773383742500679870753300697938576179764262696929858086820544136613253689087103962541311182579782578309825937686434210563054375594655232136159886029485227143345216925031941551149798252005922496062935174400303721626978875759705811538734493913664259531720998872068935054144479576430434923069656594447622749545922268373871522209317785555085886931429102626152794885787961634492666027358631383836284209513852063462628028341692218598220131882206297854108782331856406996134855099079262333715866426649154670435992566950722175888104732873939399541877014861723908599252732297888459567315441815012671750139308368256259587586191996674222973345160611220451091005955901037364505432827846540276800065687401695801093348241116605958214408764415316444895618199228800668722104584700951117414519650357418004491243616718820560958035010991188886361697399911976494372565444830983580752922429062264153006424739759952324960959008573764010838545290938687156817716543302137238137131301606877068095930664056829929519101976294959471907287617488347311788347478966097090251058670349118527791283262816778178227091407707875090702749226417546118709679558395364646924981387042525785933680863269598357620149515362069715943732283828721761103238524403865805452523397538132619784621921600704539248122298437053016403783821495351433530376446825078763007173737096501674106238219985925400351910227163485120954589766419884943929118899367529303206626888028176963537186185823720982195575663479503441899117655592593677773567423229858010174948560649798402794685541599971970853674670671129334058919264518402773795860647217478817262035407963908588140995130267483023116972435681066065891888478619069115328390614410681046986449433185630919509329780740735794445337832727727206430602118142975080659456521078129805477395001301225014523552209218257391861350168936576769685116149666538957922876728665330240892921673369397313044350410306530019381586452650715315210838616018238825945573580450428354123889271302174256619074401438685003571326707370850335169996726361492168094585897000109207663743882789562524518596724408063125269830836424202092838957847204732046939223883977823425272899439514258787456999012099852455800622668856592166414771530626698291562499880225592884583089714309700138732286782441159067762790470129256828557191936500414137604948452571545626396727257835677029775833053589862102053350847463879630038257705522121734683524126528958550222418981401505628297544263963698230678067693952287170288920885642895082109118716855434814006687550175943116295748795496259065446637298558414581729154496957100324367607847234937876845642429944383346814483330465091364712708211233139420441175416844377622177928141643753380024838659208783377898400121087243125023401523363560840590336462696418883523759976787979207873606816142680123071822697144318848277035313997752234685808212125086411058516948278105687459871393620533546254056938992467468402812570148360460045193728235029993585485753864154857142559784956954879737291944617136302687820433620321894202800610963968800531287172204552746987831371800137090140746527254366518242897056739709236267614288849500481246071361853042649328963235765163309174383077972923360542079982106998669399297426418312924451685054798443721043063528200763480346995192277323357276003989650922945110221131302426901762894474175703634150920283299455640794625666334808488363304806432523582289600153961323301659158722437382207795001729654580886306963272191377061936621824567286000974906806992908518607670236209627680014332569103152509284761026276614861265374571510334279770464394890334744682431364803912598271827575883891392517955339781872184126350848662080002917062356390298264857231240177649818540809568217929722556609986548333490994209073395940279987951569790155890860841418665504313485493332770379740658753963278749123357416176688005301453782175361607575388283713462976389124678821850529087282687003518249403267540618727250265232921833287296548322477884444663205791318262969955162821280260275862883460439418691749743490155404980712561687088128737056894980973376017784240667774752373994199123538382755003289619015826558478667227807511531834539111970695410901251858510596492509971526056273649990245651973881772537926026254326679963269643549704305029953350378797791761290348812652419365148352182989851066731029975969365591776275208594115788133190142337033378920594947921111292250351056680055773261558027629836981066142270788634108293694191468030929384102365839666789059788503460150676239057236624002345369399092689480668324293870313515948949013660499344428137308262552647196502466733345775593200423137789931912184748502717003732188863678484676788549140978974358738880762685139880176239859220065703149027498304725451434086057566704266729249974976546661317907066305508376027623704601953618601118913194111232895168049140377232817545606631529771577232120048110598858711887415121508741680322226137388300866738837220730181496682646833404161647278028726039395501199834381682580149761059418217547084802848018270494216384114085274297679064914365583276934175432577978473962554238493511564243151484859287364528555696943316692217886893298834426072311275531673526773061210421514933373993440417198637137254530512399868385677004308130359443604615183309141783619542294271097147010153488004588115810425290685868329486919959885798174506737395846158849414897350039409645776897347297415830762001289473682780745445296481593024822225774413001511880855901067303384766053741926216120065957823667970749265601573403128842502607127929299035082653053325119923151876377763714800694480466068689343996307467310633108443878937362348913489004453276003877328835364190108867772234667240673644655845538551142828105464888221922918260538774080257982845542646164869660251939715912435707034754878353700135261807645712401267854674147475578025297900286062577347576622494499814590921998138006480505541021549709598783339193860386874340418967945894806107598527848711909839117096011410765300923995190813067560940900238072038458106101706149986179278162181245316039783738439208336089096684267949519849705195377936206817279248231789495628275566274987480623858681496667167858619741947308838781860766685886236039952883190248702801190198140609789550608952888853936121791004211704380938409853492918563598761035065153005332669153201699555596562097781696519548333484247621257267260065490611510902334998276628832960566431363370851043923881033510140601988247195085199621725761148918578939920650161365714468784484168630332917781273600800462685585403331612374197610187824868238299286227715374318148488694991367293719575801645224864359789618611813043065807107106918406524708998000861311229432668558025416156320289400322328013315391152691201885549888763865802683060387173156092212344810567491341207035113317792453533785539169262743520197240663454302707643206451597638053044501525652091382708388236575951763383694522486726566836801469123971433900698668455769754835018529982487086542416877188456178921609354132305078879743716243468445580495788733471341117545609314438463996592640045940749588517521447842933210344993333728423891405933383312506922830999665921856085355770087791033172832859518373711480013994828514066009031461148470287922844177240352848604432981888151178887355208954969804812112876593093425717971147597000076783995668724774826682373935813200695007340036951736157565894987167018688289522369226060575495186292449180356766975315350122157273036770190064585238785028331564760012850349420902458084263054419967347552714206530666510358236437810292609257621394360513256349600465817246336913327764231234135802198321696819751500417037106494320602861052878065018513345203151807384439854897986292496183039919080765947850078194171805408721918259650404806257253021466662473694129446274796002118534378162728247266839774260124193860749702361337587735148244234660952275314995727406491806304661971393289851840864452118976057556847654724907582378255127449399355582056465943665765818166875632303052655213517715439198112394608280662248549923206712240827030520153646666248437557109228979782338286688257829066865544315948072180448628451144410426778472815448339825436177649315767356544947325024365296191895644426276095432557427977680869059088247036795525481134791209536051494173260094394706828825870561970739594894886177226273296425748736682319182029288581757983405963932793013013078232270004936273720406448893814815840826854065527910460810707707035818684779148204191300285302303420285428767795957476713664082145285991955114587417058402763069675342204709619283015652970331432027630959266520597403027042061457324889712266696849510000295480918901994567328112061263162836873545334580276499766424949187658709205506688126902035575419688540665782201545620516568436094271943582984304401365096650924347602698395804460635477058897582538536315007173408158040662688502831525260932601307120566183753226609138800715226602900375423384776640476382385305452623631925883934057262022725683617460885277426645816755629808756411463157199523999687433353602096394093841016815373818366744782753975925507240973206162690387130997300257649047178118829191188631179023871419332272704125480347565991612547737421076027985695372045639288200120810939208003801601045659650747639631616983823940005563818257807747065311352470449847881857463023254683550527142432982468109640214069659580720505349079591818602853011011764911185871344826124546048568133861045490303814677276370481301427596169088629816711606927700608757823854498878201278086407972406790515139593653701930327483064718740198866928895393658580248750489840635411811838059171191838192345295035716481715735131972925338576492472936864939748348518256125572958793833692913392607978023763402704580802863138324704008860543294865060948026070130292546449310053065125537597876392494130021883289681520548629126171983750109461313704132532630017181337923622099545289302606421624618599781966731853982299321129133589334747671913418733012993832622140871361847102708698349320926744976474413693802058365592085307800728879633068759308092829217942845085321773738175848940582652340061784010605831783302530371827946540550428143802974409690756745446165192541279377597589227584999473403290871426298025794738470533767290744264236944829265106274052915341644515472859602448382617114157632858818407115667915713528405391693796063173042998990971028832936279671892004719875745133129715958845735726994882398660334806645816395243809372193899967093222891666068279970555142247543762836836360810706761612010081718143315773365735578998882368328842167458594163570932560005059355745528780923148800213838776822131945465553846135141644745130943061254639784738598042034451148401880939892335783483872310037520949346361117998228592535945357121151529145785339296893691155705555717500731507203646249080209968040114518688956540580476337388006394016394302149113883856676662079027087629006946891341279148272709567795754881774041344776405693552022143314573934896311640706647629897845796196121093838586367270590750302452769416344337662864132448849568005053966068701280533666331304551762313121520185198352419153801134128810739904377710791691161777653510379872369971539425691461878211640440517829699501240032223648930676847682973409149145203645845030629343281980668759582002164259373505620678342811277294851909623315782285538173656000140850506077110630998341192673268591527339439131815331675831718644756796435671469532767433310784814548085733024685356071813294311097723649695796514598591520947818354990170066992930549458676230850189594605727022450970190996896449208067640070757817862321046782996940236425954021185281769993467086393823729860105872866692472749026871505953796461937116856746484541137651885237146950397871673181379919247642633006476800979264178688867224481212819995083334701880608940327678159403412421170201835253816219321936788349821024582704999686223628077084733834967098348106669445371321529745040060822404319461203733496145801745474526312148250209768824896936820506132169906675650592381233810813300055419793398962101044770355628699959892014579817895601687449389641544907155767046172616442920248169683945664245873096166604513090634702986122732277029757665145539148280479947697871051993270581270123045883176458900855183256876516727485546790256863329618476045991490702038769362162153163314511535034142618986649264246754825475950088657685291227823408844952699675521233062391554336175014397342658911663354099712043511823061615145011802931834095028195675337164265603167742123703671550743540641119938288469784629240548854011096444322130425184148750082650252303705596644643070366594790260108378433109151187058484224916309035952048072380580152424025727741089148554287193753574131951683099152008656867807976822076045130304553122448722505162583591450466830913582930076558695914797052423937783505654260079241687947222664267914761704131776742819013361516404680856686506012810428135730561092501361999665431918954706587467378033363653407194490917468568266229698030970579985364274627681562062839738709119592258425145006619723979403331662983822621468971648952879070863622632900513002724748928609248331504521163681028728675984534502446616688040132407415223110170784643974662408447964649210264244951752061355444839873943391435673036167838145084415051574820860391339967041784755412390256149993338552275207109376622930428055370005901836652908993197452980883415884393023460836463112895711208673343422591721883865395762985491657198357506943795916893805165585740205497578144959259794167842585591073988238270163900441385369399686852181791721323759773956463623840065964045977862988309523651999436306228756051005653197443825876202752051847009059628623054238354079286080985929612059748037873275292324667357361286898550285546680486170224522256716647515328741331441520305404445144361684780382279039639167564397146016216712718670210474586174735437204530500003249801562319066616101782860198851255389843498641368530637887253465619531924101824668551395565861206520002882068287547740292740257305810170566240308044891286551005558011615902907303047457703349239253875648710897021585567265001019106217217873321953213726231058432943956134211745453690290594114175333760528646222568970390802555433636591340091797062670572993821123310082664713651318661647422776451132640120407961068286630806395934081317713588528811481307694917947499288419817775743350631973761638323665866537732409930957442337273060081215552293228767077444193623303543363134516654827653575272892404677786258004588765977135260824139809056456965723545271147344932205224072174321773248201389633592415318176192370134196822717361601872881422541338143812785886704004080318942939128570144488099564848390079339591508716879036355738526757027061551586257484377289170766134833598929549138600141263693831771705968243612488736572660713962735262814593538543928149425101315637889738852759174331391391237327714541545877406598995129351871899084899159656212609743310672221737308749549080951535781086787687881210444474506852315109898075833024516058032435443869848790815860158204003199352767680961759306963064604386472908012430565826337004409805369139050886521908876349038657644170713162963859806753893634544821086129383747764989133574413313753489580749691227668129022283520244770586865822420649492302326832194251555192523489677374878958269457907508804754331781152149115350250699340520489221846066419667871098147587557280787114673181836991122848686722729613281209777780717215425922115579912070471379144908521886050991886436045025832387168708360912520515146477311629288913249104911580301196562868088608615440032350068519942060601275781404172643992693002939476411165682682545097005107438866621405581980007004366855386498067138244164094019758658913463306639389107576686082269674886014793610934439278868356339169715507755364193904587842350879201783273622613975323195266014137865711055169469078832992733470347716561241387780997541268104459391781551406696890207794240630315798232179218085815075230036676662821287036319621100505393677027968534891464903973754870159255083964721525189911704499386833491891282520162477169833615927993109612134441169175442191268419923795353975296200107740069343784609705056315504757846761038456454611514948449819499798333578857208651817006966007959881080554560991966410054670971984981082001050953681330483662284049304140516060560870898255417311882574357277686283454624129953765805036393941821766863664313686156659093727503982640255205554660745808632495671509034375408476489601240631930822249117534409112292184019072458764901118481476394511275578105789873374933955895433504622054970560601787952510035900461650779008726136500229231610510712804048504876557037124073232325540774690216907248258204109598219359844379449591238711674908473829192991418887602811876178362006398563048277369162726356165561671570857812237263138426866503220281418645473037143146115706267950155967816162623247189282617436740493151899573648218992670413964587620247878013187508219882277258433286165027954310030731053741418903530193228810818091590347837745226313089466001188542626145292432269572470301267384807600342068392001763461033704005986541767583913093275444468906345494369419682715980184042851769492293494652161932529462341911780958984685459495014652190159425064326838780560262579220003082759310301182120330591765191248242354810001858463350430450167284433721801728108808027873778096382792615793366688639610107577708930518802960815158504362950790172291536552215791582826509317533866457024918150882783183353407086188394699236286755836759400908104087698121948723311342872627675923994609908289698738567414520780674882759984481622474582303376250973189304815542224296801037136547009879656833127333511641224360614767283665905499423702877847069482990113397028865587727324642653614592535177683806168703212536839992806669339456877738434907002879619538017255138370175084871655675346024726599277431460866206380453071172648813459230087052232228123238003790014441351631858398534284609505276374058202328945371238856660598672674271190527707443833389674966005711997489311972562818395782337136111534550543391126435231962893964158653895451461302028716498526911004090378077258282592512895387046282484630374628698565518928402599955879834342852733433325860360159176893909753669824614333416747320807839734249721618719257280714716273750448526816399854089758942183099703245035236065302116472586204788790160897936220146176351323655752062235416973909436538450804644083377472670857617884432977276019715634237807919680432561031112133189880571672852221246359005397662016326679271188162379356379211995332394908565646659850524392215913293316840420161291542654363567402239958031583412902463674250917941867614335001119831244308469266742844385737645491462147107539941630851728517580757980734474416657423535171221671775699705586200239036243389478356140371078635465323386250597495500178504324510310937925599342610706266764968232811560545010734397083443585537534986579165396387687679270047891306283927306083879430711106167281314384880585704863718754503605176950109553149053401428254397185301355279227423856528055830926441782354003195379983595149403592492006828287391609010149281434771275580035797046297404482513106303128985687948558804068347452380674565955641794925645288773214716066350703114386146030204442521870087211967254601912502700952516286495877306237905638125736095898267064180112006538034531531731321028815064244909735858290805599346511943328458769236412231678998874676682937520935550396648681368999444981262259270494014287146572230917605602391432651921715461292859335702719016292495763121516682371973988652388141688725330717599009986692147762786406523357341325128542460333737469614504996539370803669642454520790192644041798955298037524212095893944897893208890752368903898534778493330615462456255028766770323639865507677953081628223285827561393767752588155736003427928791897158699825386275030773533386542776001484704261368763152217155329832732589482692292097135140758841277866721736078238286682439771181275140303943841496011108448473696874921093948709995468572895024988537507043493610612858717105519826710474688560811965315512718020649396761538983918992270408853247412194554557883134990991773437925416493370487181449763453350306953001023994284597424664651464532888628412163111962653693454456910418864048340484792463974553541986131784437230798115218062539367499371814332488055398399343158977279767068778987918744510189206083021711014608527701013227421824295677278976269670731461796191263452243158305587514101566896221707050331269565169116980843965683688274773357910485510190557204932627026882572404804980981319988596980945449082480975020901050179094043760491369122053196832502987444993141244864023493447024661389945211863995338101454474979771566809337707863091644393180971596538913170596532767888296210039151947588906617679358402234059820004049420394825630716161045396024676337912817680562223735929389626751565602546408352564027481119628102573074463024395273203684198253787452526140465663174076463775938329597632842467522262582008548504430159204750502666237978747283160055193427236600159009591209828831798770363394280931760220300522688961633973211820440739644011418382605248313386818120100841197713851037913262183698184462221974358388438035260056277073724205036944574984194824365837435984693672006610983418062024442389060990701505848200119303062204846952457837027514101871280371936897195198112576532797955750847185533734528648206112888475210713065290750694893953038979766449828730404845139143510412921623154828274595585402730392998872384522441117320623128541808828936266065682386743168598176114609518915239857595937332597126304204956010113827362807638806205378241088757686395613070338540596671797289354804904460420225764838094462460637048565507411099880853460890980528736917625392401809561435589611271721426583599452925100215377299436011215429827833207372091726014554696633504793790324884181369370063587123197874098480066477114536807335922557877682206170341834543661354857319799095196456474949674958852102487135453057382921392333340775469386024945463800042747394187120252318295602740173275369178775656796239371677430872240099795841451547594966203343477253071988872799149377089532381332663576739832234498723847078298231414375891545801359688007263964221739673943584738249229327056050022564134311333067912665801114254662238958268351662838215394036369425193007308911048194426753836002357695598724699241972669062953241787078811137406103845826620882358778607915869660481693054068513078503770633109282409580157314889499012201036534878993599814247238165755520534620056133503932475142262300672279291408154786299312447418340830390293056006070064476309680675823163556571128945186572548919044485806049449032792017773017371845100778221871876808058507444536957614789670141671651429520359736136800488782977829439816561687124197064466159911600640857942160246491215891376306705575808476908939658122649296957064807492425597630127252264847215834978524090898243402503882710445837954762952232485743434174517024336203211831741177142831188444088231847746320111694985529921016637131280284355673367731237618892302420550981387738950918826712669962501754451990035778601983398553123422960376276705137208158186500989778578900588097910921745704477575452313892925719276813453656793400115204857909061638057471780868038983684084942090186753959037894806025343133729093174987784225332891456170259690388988074879689858291662777327328194778139217148385050250434501728026308765392265780356195629925110601065818253222241018544700166824728171985619655240808613285355808066064164905521641623573670009595097444218799291413307146894276153508904000210226853429555079996569309758973022340803495759257052633092894327128409910120950508268578044594848527729432512441692394641676239660110841263091756635259126266660183393765493098093929668799821952503888909720741886283223814462701501925740201813065746094331685377011821587415653730429293119356765524960662092903048754922756415534563561879134106539076642466360580656541158897173162900382629601719028328093147739440064718884950438325570801803016471199280161537647107530880436460135887853587394826113391183029034184465819624949364202300730826864596576067645895245671480847874158160719543803629563185186367386316712577847700376409807999715179058935849350136382825420441685054788235977784730605680696991374348798889751468303383271543533200193924382623972461063540569492195105500782862835186700523597938813384302808969574240369047945726942502819402862376210966857729975348460449730422500241391020925017448695927981800129446370008025337018869588723146662154407084809375607984996202295065485754682142004924379482763228476929795248807891330520373186788126517975297682558725602211226812785388697155140382241928544853332152612547921821590620662123533781498811385771613022643073862638403662900428128369762700020659664116537445331567262463471167735611131436572358849799136016403240704858983340008782332363263176901823037811842111668693176733021560413724425007103905500096621826935437475243191182178285712259828632606738564391148677447209254715845378653061702266536135310314065598553165193632257167312371091695572169177732052857409595138295978539623486499650631725824044941500806797663122373302049991612729192466887997879696636463713122164407691152887861734136350554226000251042289401261564208800607695559247676275347595168805148629779397295894655064366393624642959848637960182940690319983039125378487167873634411101823100806446590900770249096435246975919094132222543704587314795577510937427434216145030140797049991859616978883515449550190082247866771639839834966699803851615296510925057125838665227125768831956502368031844327775453854707681425416450941378945077522560883510203121431117711711254790670478035349813504710935016274080838488169548595065019324176300636473537051201390686803335804945095195664428808937252391498100074982023754523135053659194887075709929090472529932431202483500103270290184278424299897847260247388191475534131933222064205082421714320658418511181404356629459343610686085269382057970581765944846820323450174901336242940451509325109081817621300267990514553729913666987416804473033191811186564418684674495691355555255290506426944819849396625562741104422981756673318974422592625988241141034802486567905117155746374149082172625905515086935396156518475619185250801482732191669302064114195201384416754812003231912637666289603796000514489384917223281328946713281286343785304742671431656591964960098602895392777060795001919829628844040148420417995502555588022957629832982120183883861412498245693836045770333193060569587861697019958141393066161052681903093921809418316265659782254999071665774191985262140107640903644706931811004622581557427284363570754122929918460025006672674257626987506382170374444457213127287847586485388069938454439301548436162931388491436732492813982489089872862899656361208072479844142892570602556146646178414860488862972030415491942067389678112018715727323874010241279067538986825517412922116061306687577783795715494135131422493442558041272538982691138925826151527711008210868611588715817328306622967320070651201108218537292857403082303735158842371962496708154987311995642254509217672939682554732634820661975324199719408245407719283661373628798670922324509632951250421379932590604644537197001100311088580105785470082235720376832474114857754763467421038709273748356725029685793942315622267977358859136343749089483635495623321294731352346711542473287697767471035334182814674744732282393170234854875408927913035320440857646481871816677983488247697487242340344698631946131836013342589189652897541301413526338113746843341186381334088284271415837522004732080955582770300475670178972591065624307906701363348184498546625756136236564566295622171990866523353962105212251399882858754063221323938625002026745880727948491810171451010658499870252681049106095182339669878004712063122333257599097181419808884486018580157281389624886569199599048382392794181958930334147746556187233150407562284332775514234536651226846756000779296647327334119908528326326929023033223185549233891743267607063302791133877841638455545997106945332867426105054667215492517784905688569134853467300609081317467927671580974862038372551145060042128219822200456868207547765229861580132363453379228347903948735684607300764458157607797753985196304680944075910573050141706247397000904041543434153631704567656933081759681993199508694260417532092097683943750116661878264928796701940827958993835802051621126236139484365050035276900400144603671454292384438366003481875414842094492296853306627544220993774778679631116316011695984233256522651112136280582795430114862406655483716210369713353246727114862875825350684514116409908911691003143725766639169951010793847337823546204654174172336412592802487057604831975105877811519239408639471786998206445834010165046727589693688545979288214775633690865979475542140920005162757231573873443797573877040671376382072945627643282224114750869247303556348597163122533970886093234628814157608269190483514798055628531171082535404915187006822314915768498132217848992488802099697769128067157810276017730190189957534591806652933786772430175030042481591400495969632143681895537189976799897497224131016356504077017228425757171705130228567088117495106410414953132619421406376811777417812708331134794863792044078530605416909924731638800481080774414554196437611593044351643651370652438679023896157651395734765732634356211852990358388955443529706215172862309405927880616261718059810960330536629500630444719277168074200474251514319296526074375066139305715793678510646046752412240448285699056997720507765693097862395307506243523758354564399422767162556745337942829944456949215128404434823744275720451522104762490905864502116192347432920994693616623747381973658601788343263827821049980288687062984073827537939173547763999950721998033256555339915935227138903779390048538175803406396531080603069657668955522390709452396571536830020471013087290252654053289746315504672087660634151935286098754880740975799442274532553591598823820235056414745465967220828285319278797661253248757184116188163321809530647282702565783064876044001684734428117254924437122268362806924967905664014520736912313525140416078071812136697129430215566348292431830791256413586961731885704040880584101645171288224635696549528954953562323532004997954784913197017683800562602224273348626064464167888510468081990341713885932609672709025077840273398521212765215215787106564465041814338936119805730867995938984462106175299679845171165988660763096681527875548285441640946141446819148575398311925470233171061846283898127145087897108686362436197596130453659543061430508937007052412504967037448728951510475892764270092931551790926178937481222961704095591766727836518586621900940926730238147413793891007918318132500743217561933555959411650855505354727164398561091391990062189110744936564003207135434603157284959478985456272938904709827820375399738768364788151796198009183990395867108249016627620569874022158974719018542792101830519806368720946971947380087115352654331189155903915220820323989591562732273925559566211257285791912025597712484097297689741618811881177988881847589329096411864708555831359962201129748334288180870861465997402131751773172325420166200750493201881365714507898509260489435937946561158494816757064190642112550866743914748106729437792415813892251450796139394836469589301613517700003363976647396735890574326858556573592518079653334245640201964172705977083345994026513963601952229528990844081419421900936145959239207562495183432132416366177876799479131337420225081993416526228589485195374665343842539759563318477970841046095849297181939198328850392362928899286624519192463415321342561238569310976508604286637566968971064831558825012090098690924720665638124811186537721603111480836011304616852466110632613934328644216814932524521566299249817963946462832402756871254434402579654355577406264286728426467988443011556912886716711346243302576447536486097646333080060746494485290791851698805448494261232045835096457232824546846126011740483553961889975883946571625369497336562204736890769473517181863111438544001511564657763551946245050127598074135935212996261405494895516296962827789273040674834914648855253962611233699701082406648958037745553571685618649142161325727883156983900883243190581765934787785168982584364810811885662331516533208606669266457683002148763374999052072070933831616622929692201010611978815178106082978675795913067524016971302362574624673400163150797774344732352451086530436700752603305760517771723461167065539100057438981077192242252380593254099556356680232851446020951505021323433200210206548271006754733090694073712762526620802233853871882739431962649594918561641024822801125932759333391102542991023595010516691768247601055377727637871515883488774106618424034423585902629553344595802430562185151188322210465495684497470973752921981288468172749287743416713778589754244320436142331840700467001897387287352900272717820854831412184724019875614238949256844650255130662200376972144940517063103305317614755140381950477092413925786679247582581193304505765124369619961972187048354491768336976999429162655018294200479605802355149812028553155811551707907973448447532117438533566880563536190053070960063093628289447886910130851118310141223927748812580941130279173368302402994453141241850773665329313510266039194855816483136217410641353137655971987898797638454538296401339881763082966998680580651511817861838494533190128673307665126255046867897718781575520474011549180227494545741042897720302392351871520866581226740094086452454245268332012363903018446525759588530267302648003247395595966973516487736738691921352638535969312326406861817480763866702339592613837290239257054915185585981195327373151662134027330972393223194814819126922057760542139598756465122413304907805674264168076211846826495054933566457218565318400537724034047059983705016016860956562410039770710481643365754135298521576968984444570656850247887306266089647525874517299878745328989857510617034701293436347054608596468907854036801425028543038025262359602441742455061392964134347986464122861870004796359222280402896989167228219651774364176103338060047936345291057590061109163291331233626411926887606934644180130228863698430528290736308209060740198972155525692291494816749435957554302185134454438668698661721749054427968977600502353910070623569806902168511892219316822898539257074019103513117692888842551429380480776464048237853583673971460490090330240058561873983223816050149280435692158632833377864910066487661837525670443292322078538491086174223750789413641859375052195540361451639816546258265170441043983928489244168615474273070351591844922069612674231355485535957911023879587206124853486439661812078125624045911501069713786914047773992101071934788715272770719909530361499637252279934205534207330134814113861629542687690639453085307579826650092913568320345048852196155410317025898232333304975629810863227119282281218150675509313324755905766714546616656480037586122444457366398809988810999537153380918339443282233301983132261132344933149427947251140491810705848276304353010893920870721846001064459047908060558797798570955329931987528852399225518713526857555163893652214568045136315643900772775377168697661852289488004477647612909728734025233503574539672742866324087054468700671514922571304424119287905952798821359961671409612020612596956715764264975600162157881608041038725474692454410637739309272189658111960760981884122069963428634775516438667353832677329784675646346055958569173584050913428020402964818782990332177347193359875337428274790469324537285775617537129542395002606568314593804611803396078974830094094494042806646675135947334071361093637681913394944453156628966339778395851426249241873853650317365174599287974125505526692802586928871110351712072508486000083195633638267692556555084694965580383724771022080411422675780997802536431399472542518786649405358299627841205818498683104227475940437906579821699468438403519596016793277237205272014078077481632162670303159051223391499490407842450500326488614947774948069457496238539603282130232637136783481747311485968789527436070457182479738175519124622914833690810856914083893239371389679379867963861171556582703766143204072876562471368695861430032520595125556948961533914367063426283765346140589094838607370436694670057154620055370607321746807737438152227304369537109216664627544330317937293253212225783641998810573412274809580816492759188303393420806326403437866968136608380718998841799303320427103818814774213619784477829307475915473134180339474294506344549228605014334731618506482618565114249039189266623889275833737114192185290484701171703732299465731075555013540307474838986356585067068094673935787490805289169533832976590728969178085698717904079361301541122637348263249164723176514614314199986961992676301743662758882767406576590026637955247746535474639299152820905748386206874603043272008798712964944551874997562945178596700182210317920637522338449861062158665915738219694715687099995640004316408396204107919442918753831824403119178634680879052892426426648831949019645038206455241718399591375220617185559511451505877037453155215953752873258054035726523000962035699765124709825742943615100817549686433300532576688865022580114698405632395619490601842827631934591257669608941925008519664833511326980224484156704229777804159560674405513290574315908773482323683992892647402506192239445243397506645417463482443542169676807069529814595604000986454791155461700266686574566556318952431436437964258679010477015857334639837660414235227253606121254947519615055724213572268514313095684435523334651752299758211945325616109841228270644048327452680826199811998237955584869049871429725968428819404858080708320604155132735108756057544780801713589561554968024950839197967758675018712950246858320495103331802499256263199281166681762720817925076694032039978926876010873072288408689788148072702779576698062268132915956842698149285284433640826523672448590215366395100319932463931631426644589502686732836529570869007980434326094383933598924781152283387909972118749297288741588083891034190283113443501287693083948413095977144050579753196529969460129065023376060675828862433914006699860201878149405601737838932396483081819161001463359953210007167386860225185907477559397399271860624987899195297346200681211126884755690659871795302215420001000981239471458557253059535848763809944703013620210383440589168909182466818225760006463083098464637406532192916160688689620218225870526567709322701559775060783228722908732960630917322372467915837360410166116237092772852482478773100462843760615215654903372887492319208606736869662020305699229447356026120701539167235803536738178284685786659108116594446279465483838550112878156086489603796568453040258198931445964105396388178652496877815790933317126801511560937897700906802072448254597818365593579178910737841759898085033347715547594710614599639061104176748293578177103432506910215159142968490027522210010885477090692754872163566688380244261833232745365073962463076282125024537459728075802500339208841541672336293396897802222324674894317314797438594148768337630629051091583665056715200835518650062417599640848875965820397374754311463686982629205682988495017928232477264700808639396425451703129966472298908649935624200198329632300696971091223532336074198569920177184309884198110780837077377106955189186633445460162876842109340536748204987153491301667016952127792095631140843691042850004716345469446439340275451145792408812855960796945329580950833143229158614694165372938888000102220207030380668898755611648298451719253518498242067749148843272198078467677258452565957787085987792141811213149896167692594011910799148957268408223999657273626616954242169584375914356955392236683409723426297054248709589173558968033739033194449363993895607254515575720858102679159545585864795840445280171384861276447905523190034201600167860669710418668840980358403327681170244807623430881215028152019546243091416201420242381858147615963663405236494035485446653540552780436029837011436169996343685064414356218562590987841580695029252280666999111710812240981919882408606564784297290680209462325890301941883538504876461573184986914724032520353295481509292618447584270207437024580127459344353037078943603694100242647949975955136282364342083984574437865510597966467638600806235663644472373454340667747180961568147809810505494401683331778234230495651980114704194356208477610561583322110955533178218634017823374905345143581701714977718688952741070173132126222405128529769240872229538919124944070282864793542615273396106968539519218262597680579818931452835505460314397556418183082061393219326622608295118885272403101227516301361295659693484651704005766977044741500562124741875594643940239911544085822140719288854276783143205020731729748484244151182166895328492108669658075406769834306362727066585644199823095552481156900778203565081899385044588308812593769149782948660287842636911090798884451700445227973989616701706558195114855403878582536281284700140981620017659447076743652410789835137449425330586940260674792825026253778743761656328613199655178909728606003703440450505718521722621322731889174560686604872372310836735608990497578598352818080287128716464075041502248166498817363490854599634301925072400191135534856875625005586993255945006093256168943775196598663515745440311140676116743074632375395913851318528187768287241860137934444253097173983218995135540563503043834840646628526901007714760609371972825460684437446322289340271399495797409462915715279103987465103478705361045467369110255704523344455293051264130992203425281158189585817085305241747477279302889556433153839605847030966975101104136173840904625618956435692264339499600174445386562880940960453592888418114168742238279323506568014159533339939399945733780249116307643347424574376053003648194015229035003314191300854314840725078113648574576396297091731142255273691394469206630535619505873998626358303559157495519453869580271929293158622357778623174241497776663947429078685768914054569890705294694763755771672777959256498623565188972967411358548833866595479599483463528039482745634349553476231332982111763903890169273423110508890505167169444514243981236251495694004803985607151376601174856851594138180627574445733050101376543269213626830897037257606235260906735019511481066208170132114534078866517998546015018635982035786577359668900972970448135824593520636852401131603226524027618297188835190639468080754934346154993595976545562612103605879531010490978976514929587605522921790121246783428763597431455226720291333385219563910361564286121714371806111935626914252391781590181790836289578383370873296918525897741355999491356406087973419656632376482742779984463829057113212856220165057251233335105764028410654228785276348384027312274736969385855286056298344321198865968179891147067673815654191585952590403730868103863424282792923710924504647425769229722769248589624056001474769835537163800175458228274739179155035863504662198760018456648876462673748569836066407832709503684858841505041618515062678266566385987003983681501430142751251408261060237721587135032655815988586417574394256325944229217686050829154692202566611298183389106463888628592307349533672471151341701822857034052825210259860568532472589382458910396055128270937306048678463429530050204429169727856214338945508096210301561541679781357776759883355295889071812931080392838448400067446937138696166912224784553058497627113471313744858475930630931020058051560629097902209193647326721127314107512323993783876136653832623807555706762381107904818093254004119266801584175244560765074396744745124632412328639373684932591617467122267399010916396579043049599142985978862594307698563313082278446222925335136467495244479295753108937964669285935721939746765626175425746792218327543583487633646857339706461400312340635160223434223437471226130346720115362141839365712020603410276029394920051297916774747283092281134864160026391130001901697262257036850825395345374771213505973955112062808484740322083477519219864608268579895180652800771806573555813515944169088419677161640116192567461462030616774294757820912906233211834391577141297595917501930339564895676169026912774307618250750030634984157290100199074407873682563248315626856353012896541902689491836117127375907603083971349201195232349601568590358809457020387792499776639241464399434327050440735723316580186248459512615938195883746449176692475399789389285120535504269791862916836113373514976446752227820196674292653062048568586867952931416113925447634456173138530996472573749415289121720363856990736743419619636791939580766574913379971839141204759914586845174209927021438862102281112558885819673182684178140115791425219868253804052221057012054199647676460643734602730261344085818485899840299085166314036459191029965432148986166627817706958223070037995796854077009072435155219123069043838177251048945429384534787034803388393738673722151586861065735405637994956644378505241558359797313933422538331543274610161733840438456803189443794672128179874374721175342879169503531254093866721917032826336763039283237444701589679905412101279006999863138291584206401875710212425195443684894161490458380611850684526870220878579776801128824371492640735890225402115986903718292505490447697242926871570295323627600161878275785460095712501226948584003918447263183146973714075922916982463260644727640346865423406415886356078916080620704144640274212078995459514770471440550236815416470856944125621353660930642428987063330729016194960863996766711361518464910508624928114875475267638574565044253210307397603327945356720717512695870916467996163287007393791254502495428761120511801739184976771083443457169165231187976883269362695520665031867565921573211944333873954395434899430176291052767095829222884085034474730797626839658776200134699327020883528523779361575470467716710182987985297768521256642418602742195015353184016722004179572963669332139979263790213288549543273819736768998561971610307817823858123255997666112436086713261626829385057007106253024206487595185790870679363682350745255787328575606527058420870328084276248504121706545803560401848368489656374324751895431103529129593329871211518835375717428782691568673266871517632325053985730445664215232026205132028204667917885590783564428317499822473022145453132214156576822860580924977644182913897448872463218032643232272418050519193682259350524051424380376773340513405929841838504820764206399602198617253815204137926186182034774457353916666583871794054391768918144389503538857846931697899823709610560643429167068064930464768494731832661890114347924708915882007827775357967720895697716109994766397532324817327349697652878629486610834959266408169798970173392571362710730029088473060826528598770053999299600602714254386885923879182002030602464265677806935512618534891277816080134959516958663695208508693824381872580033415305373429017637536359349340835247357079075503104514241875158657205453303611725744438283537942194671616966761670463667075616626813157691251125179218589966822485511101531032248927374075739895549019259733645489348704783247535408328224486300466070930822566345971667901181400392114543279171426643714812892277660186510038235903449322453029407731755023169540272855370317580991450970377653221543641982657489345060456213098253456445389874492202218133999717187890964351955942548147025301347873503458491792365217868093092482155301261833938998043850207206941586256121889479676255610338635884919647941219843749440944521429635793080002715598063976727703209187820656523404293296246610868622670445386824986057918486802764261920439777479246551552852956130864158908078787082528327901545874058790710407718691992066868983083633018818667049047770554679471979857429404781319359666389256181246427666919902200790467687690015358694375886909802005891608402188779495632698938436474109023115987005505981475703548663149774279102467038101059367424469060205274920653911863532147511725758106026947768121234860276099378560032118271710271246221585118234590115533028912319179277100282737421590372010176598478249794521457780940873506447279631176980233078090703351290066298386990279990931949301323997795243512067264529465381335658853028775314571055369120529224464105983235218624191023153546476176062026229628030708533157169598968716478192748656826522157470254313989659795788063749431378022027789208433260263458660827685414246173104455017877067614954548351475134789983869676618646841873401813683930778084386372937899616586113490646113053650828667917658518977927416975216109986593775425619570015135857625274321286590879840672084132376361684059467011098646492541976168059279078033325905917135395096419388979225132846161431390136119507258205124190634388050997581531535968901260196836726846955599181944202714733914610230307842536894567184257080320702852754002610996335377037091499676060243747558543992593941219744641067513865170884479007758949712314896314718902802219993386584966955448649890646119605069013801993947342697308317339938303488885631896756686184612407700073819618507803751415965346537451139036683262517600390641761526817533024798090237979602411677159325735789664777497617800103868235996964945594900865799367350797732110032116303979594334611264137318415302519454166289345077401434716259403249396281041653147401905585004655915141885249938916795330896888731793557963905161346742318037116084807355120746701212407002578262846349512291820207617554655874866907962512041322901472118426553305512498166540070856667206843545332259636529662481448088595977244819028721632370051834366265264667174392734341762960671068856645464480208764554008791503128877030119459169902843229247407704723789640827589588167541212574901922515475931403313697304902792674944541945887716947960508293544696701553188906867274553907063237535566844557820266792927579862815902419198022926400476844869888482989786307720244512323833936968678311984950419672794188585618538174517267688579002972704066189023806149231875247618447006017351799871290271382377914690197126555748591884887096616079360161778729873003712583655246788594172165039136658397219377637185455775849272500681685276174676982397836542007693388335294590846518574586711449822500097003700585079213700952280639362954771330878414704191289095570689373522971968397265409086885297562569497229304537137809725682505905754527779349559598172154418741217187886148196168981344428701145337569054649212592064450048422955948582043959866898092648268605398077674397045570852256679504248011515494415610747450983072665899876304027078616389572621391144534439076885687764886431502268139942407117148133872983721575230994526788824409948931975518706217765450607626500163310618900815239690384925538344807767766175301714988525807536743889662888633353042252450118104548708552863110124303816838125177666216976882887714705791366544209406578539407896365829361182282399276433484248277758981296715823904967321295670710722575722286891873242619172426584036556758201722972196338347161875010585199342275428913503141573605330734868351749742897732136969666610153505701707933925316811264423519405988140963961410004852728800078737130216685077259738294403524375300064798483546447002728523729902257239406977237571058053074478569571214826965490880188714613737412367237385806913732875257978067966567467129276482746665870360180285472049338022192158089196149259512586778266661960343417674363525292524673130653717479173222989955700741629731095656099989965730658835632490872289091994757880812933346983878435667213624760975022038142521590475699830078555053623260289668937256854899852216124448152289406656260214728348536795623624462776951593708908096902773345619501726551113277080457342864368735298292722229176274845204016650834059669023579114278109933173981403037184856497298354545221440003574743040164414215453499408247704486605613408107897061363519765452662239499987641722547063866983024430804849376105718628494520176324113774124397093278189422704985207590128466834965510932798058879137644891965013495423278760761795647878343687261693959600499912913726134620370255204000043764845535966679854830677641228572017363618631470380603824137155819397641007096297611847930006231695706145091025317680658532171446703655191819028596881454918495035736835765310965486368460518832117521989619769981459215113462154419795481143637892549010468496502238965753741738177812490680650743113365708799907291210822653514857685556090305355274926293916775169684894794044580736616548784121298744636392682078848284286537118012876245507850238659339430064920126940427836710430019158317191407632508994056527219320367298063278856487752299336021327017471330533138529553349582740076419826740611814290288366394319649170078012790596726099573161678877661982676796304414545626654206447702608528580794153706059158911777054866091871182716621561925071436349907203950652088752621052191302159681323485701656898718938085686694206703439824790140478206366139960460668041991407497352513779336337592293407556077636367087648034726524609073559497669891076346017228825187161279507182220463959947046577110704488769368013163655524574594178450585915428010232408786031037435661034895792728198594558447338254705410171613438660403038545752324249268864543048629518123429547172754802730470960860560815590741380142027571400894690022325995905315754241224873313714032675352895172985195234321848686521009481002836524796400869003844072985546618022796591716814597209108679238788647914299498252611630669833190349087272792920385037266139335658712729618688150927553412479802709187299718865811267299797124818464202266166394232735711893211873696477259964331667815695596942570012071506592286577583917563694479640737794497056944413993637410258849310486015728932158269012848070840547219195165402251868654608944130744704405267165871292648355224771326376539722027273847227179960834376249116269452146095251053279206895751615079185472712637211166399158185255089049509687934425657913370911988475620046321608062162131869503879038217568879916744402193898193865392752091386283624502409497415492182459862688413642889299110157057039899951371994465645610921349100722333090757304158329280898282196847908976501935985216481920862641804594944356845660817450414740199505350417250754603440308759955283147373054275774888070563153666084783107966449282654522326549264111825708300480163632831548213953302175674450748073795182071532742325304766461957500193614899680206706849008722498474732724166312359257265081131070856268569807300901251229954448802896463955609504607457472074114612055756569541747749506511169662411203079850045546695491270098154680105329647866879879094908575286022290314932420660231083218228380595696939695692797097030173392277564325267530315725943186323012601249189003746425185873431126691601729797559573379488379760194745951605050484138578479183609664071736227832051775196024184271485329833817828135896541484009121917555335062676384324535771784464515047829327461260787378178112172846542429129513900732363611058084826990069105678927837035354706303843018288374213614659384181098863628463846435743456932450544829751561205182716123096447476823933334926931092409240729538077607855763995949126622857683008552979075207011385724418585532769017683128974982719465802369538356841090972035966607467532845378247798854585771363489722972041923416132657573138136678850347364724353597208957873583564959790288376153372927731450158896331094289440913093208876775865534552298729182317852313094238768408322440878367013211450380947231917147951802849913766799180107025078406849923965018760244350301380759031293949235227430449908403989610172740927435629277701813310148181735040195530469771267752589394038022417584953933471696918788579479246949028904367665180241232080726468281472676271352860833366875507175919228137083071881416207111664643710623540366910014855668764369261869818069532996971120774360650718012825883417239101848422063739314187918930088721864561309736699447158133817226020220640272980921332000712841418244411329274597327717889392781755757773478535175123694338628788502918936431267900658173163487305684991981363668723150208069615101780540876352204693699273655151663607415718167656946176280256046700281073633929719202038035549273794894227998782943167623820252286974373051706741017299549058247390776772163520243336442114612663476393443070191993662424523497104679144388062557333285155191504887112840273647506828785368117746629134875409404508950355714338753932658945070446162819715288134862455053974955503169983493355581291326945182672479287595834864659655687766756156195105829873326259189530037657948033536006785781081871411064140545211845031787724119470574432067333632783598282938082338297042372518805649115902232533830585729199614582262157574497531445820574594462980827038038661508258431413001415497790220769839388974206311027816045745090945163883059563504955184903400294544951486120234490753131485381604010770447375509356726563617503455394860289054353001308090166421662238705631089374974200513196576902376127672552939159543307238759509095898091245767006063108096900122908291824523052700381222224105529980359305480172292795772199901428390607234680515244319815065982376597594851530572689782768860381387069972692484813736654671488643808800021006760321295227015546931724046463636042576860168253310791478558975047965394538058378480456874727160148196126219595835027823776915567066376070681063996570889718108357497424307941075121189309178505260657112657213089589380604787920975120360550812283148505153998626974613126724413253415100382583428769232262826791195690418837977438668405736170394305265120960349544579009971926975996647692008485316511351821998625764076136643032875231359311857547232301774401913949067260185399195561917059186517804773944040574433287287961380607467675461808217736979551234939733201991008626015323872610143409442512147509754059726030643021640703095731169875892923100013900065525703772821573528445687732111033092840361681311893235475512066750631205560609370925892976766488980931124488994099365450427496470892929749140743492086777195023976508335864716393812094180439788534601385570676884349342535604099844557705257442693887154981986986532098346460013842013206060996412866141641681492568362795963795594812421274826116838125609274606174641526403844005576498638962211904988342823374596674042363745028397088436377870068374302050699279946248856379208206378877619893605930493886118210399119648524202854644015776825587487112794114753616128650413747415157183876134888033283699420709370091086524126212331678128206291249790718019184049107591248589459090517546618558400900577757382292500870436959146165553169772479136441289269362843261098520555847946344150608648676116732264115557862818532533259771996091979955597151706407379108146123339241872480044772642409616187338204189122881145718052885805322825114249195672094667645798935637877026812781826522907615059365480076828353578104254717775652170289017716620067776525178435963939105333236940594217928736097434351466786725111913610139425106303899654338989986889313119599338848298428976425962885127726276961258078289092478604928887432543474672737624551129391279792042746835195252779023965245705844360052479231006442033596113897315706506743119631819459797324114395008650584684906849396559449297312261009978723052511063960470137712250774074300046020135123506570295477246709265171694632770347202447455719282214793378988216857642504278152774938174777072361485361329048293291615648213975719236258306568120093522468031093339496049450089042695236962072777874714517676697209049169489490501188782857266083291257926189730444669123352853658021608046552280419525563819963387063399604497037651118612582834840356109736921073669346158905880621177611281497621013457903626885857750595920859059228215496243246123422759150336156756559064303169833669193897163927536620983971629140311932423872625496450144910388204553409008728938863841934184296239211691015647872141728083109005824206259068053670765346601428098695334476878758394574137582060596916851164262904941615815342526648245614035778743826996794275087968513254756669576551616643119123737875176486826142296048668535421839061281268306514051506573691763707378523393419478761437297715024211252789501236390253476239485618632285762542365726659366003715874964274185934725819491944041568470378991593325384476551946070697461167181277589054712779314248733370769833439272819402760379278373044028544464262758368407766958288902208202018172059024566240881232841002610182372763254312243020729081683124870869025432132176041503337712515171524636212166424264542469412637417238158371307109324096509931205175296074077986309529440873507607372568761547322896860865009773632954332752055106020750368304545238970427670433457518552876254284056421577057684030571406928381057850358239624382165357347040401056632529568701832107173118484605418606929678648649247741166376654104133460064356802981682338508739577388593215750861798491661159396588192486863861973952842829660592943161729029333018989087405048599987062114226528898759647146684174366647131725440305162544084596605374547432334004355244446710575966578802243848072249116497790252780413575265330431654585148288766822485821458868906573681460391485209049243543656162512390703785948203505061544327385840722240334473711193079654779979584281737663468497283589341568442070913096584268583811821035219868528303098614686310478919089475512313886397925789863593167860227395598267700491205247156948425597959567047068923862769767206874478931047435369410381905044139916450256040707458616343106241345842424463324277411866753197656832451709016532144045645949021981229281904485340735939565873709704425912786019831620310303556053582770872364493912089145153434425133873895936329728589669605119322838676630713612757564127131722167038201527005289165199062249670351103024547465865284399912872027017786496714291074120146762894064893078426951548852986643747719733946268710640498060874490913801992643543122595756237119432885868660928428328428636831485603937643179379268009943338394912582978883922055463343296032017140164858639632366908374414787421753427247595219053764745236924318259087871897757289039173524733887908653772514366624314054243907315230166726589464567784074977203912337128109124375286418664103218157606629108670785239637567579183034095256500585921529775843091188363293849634386764068328314237123041765416478933013283045449790046618490581190810760567800700872540642448737351844665179980912466749417498421682951510555307203208433246445350617420172473641209406783846784550532664797029382215603002125627645499006884613953772702980753984753812883634188658255806641940774401604410559737154358163799728836334511809299931910489548112660150089861330791098366816499073283088099588540277898669700829987920603810900343427205169118084879708362756374367121233444667843650788550778272563329432685873787440647345108149236207545958914385016039583677112600486819226574976569037853208929613426949844877110623412845894169287842082658761729034890768176791414513144954581175521258437418056114316350828818969078759257420593270536457363615681676146404427640597754354710051378308345765768963762247058722466069793639509584469069430951709526297850497066062974583341783645063281661920343109704326125608206070842048182627241788755326748180021293388015035084456919661821723698371388239274605295586810320787353782556293030154464711600270585843598219345406025659622423745863429373630937125743025599168283037741540939584325852010670832660883950297832267704974373124964879049393766374460331684864887785435755178263359261409500464265902131726239220498682133118230458418088264562736799201534637411230885540027871246972983898701971649956802614909809355180110767777463602297457492659656630378281963328742586188556288481875383012840690706466258717814104847823892325795608920447070604016675236099036805362521454008235078322527960646164563741870075793871946184890701525855315896454989148600651219851814111176293201528041305202129373320327372378340416315175512507544117884758869791402562076968491933678294819793699567820035968047227610968401292325252390472717796462524560060077681311582616575723446513156349119643181827659733433137368553487975985150835029597740162472734608354427653183096052112189236968473325949259977801834390780157449746087396672057488741809526553411640839853488594304454269518197772743803288368120717957271900465739262547455676836746444461750229018902470869580277495883352013196832293864881155038947152146358408718892997806312617930230318323295161561064420152870925625610261643688462405853695081611562869857320214058831992451493460442866751513889248225784563705748581613224122019268709960776476324761425049797529372450269895459357172962618907236440784012280253283484459299651117940936274637771679841749054475690449987733752705842103691895717052953991942240028762492194349922382274256160755052064051480193345491912886680438064172857783579552319196118086955238018324739495584413544427356945211452123168630469805596265475678684721363050829454111006102761879176690627307387116443289442129131917344481467434510776626033269040963932910010707919523109311558611848075142512640313317833574319272401386882523886802251244471913141708702734492391267312119549426861109338470453705938518559019043348444901137820621336240356798035620107819002152332670893275521032756256190925784449116746352473684461855954305130969626449044392081568482633786303090916180425908928218888475394615062986674658382438206461278726302241863679947996079383813394989951411301753361935142107593697375986996413623356358252789598087270037388116748562013920766183811454924844318345226152677033273245210268001316800921879426954137076646100369132709737332040151320349700367682871448410470634196132660136436730232806774778445470834222854332288238299720909215144573402526407378308908080894260889826316459656470139764225181071112580504938317354764144467235015121344920450667940520668874805141926689900233020454353738848891002149805039988976120306843966039772644551873307266551723771068408176974305967927788417962079811642156104720530959966347054439208635242350770396542044772638714877977001355236871547294501863390577662150737831439249901428578027045889104833656575649359247148756428151965729623291826979104387861052695454810330783506804074869813518550873190153708370128529120704940151869856832944843109292893459812538879625816700159907686818088499030409950849519859869030900572844684414298666426460329030856929063827305069154429650385030421141022838753789339495780824647155367482093195532136325444941873650398974288783909653916712588666865282210236833282929144500368784973024038945428896741170805452068110268267837701524448160564593083375321270234812113405343928015896385413296152750235770968259481019992318044583512917100206444532300379449502687920754995537788877023047420778674794664207275933831832795578155190583307987437318391647203525796498646725733519393922738136141662510116384158045303114240449529421212101346390437982210496020940964273211306040918307217256968034890375510127983421995492795938982904375485780051984301544161097709601141311361145144653642243951806732028650373805646773933371460417876094509606103564716427617155189571184726787369716116887830608073909062201232526373701312991808076085132257491293868014738135629191787538337822449471514170411320329951957436423314458450833076771196072848416329178351087693279737225849122201142854507891782213008655949722166765672934996945054439515673819608691076598452560754904808924846648500729674860743675135791926258474179911164655197361383856504135967869174085194369553346144253533874913889526592572996868153058630643623386874121694009712695783620251842496530131447138741777888889150561021592017680225717888295220956412693242030345457495793338365506199826958922250186817232884043761633429694382823019568946611576320470065796627016749868669013214473966492026422115021063698641293115329397278798697711848730060916311409487029401509768879366343008589377870334275094311020222765726031260440086862610793605504076612234210788368661467753314417745237415833388313824690436956059227395536639412410462455378776598428964889577397688859528169896488794843924545195347229876743350550099827803760320971939359420944480536966024040481460292328228744357204575144443053322738476898713150487980272872176114387844743595021426963965020006051334879399249742929390649336349874331710624321783442986450824348977485263529622532538474154866670620510328398233227627719338133097714578743328671120709504549971151754976381786082555731568997305882093228102536430599785876327206337272099818803093759952966667971421836418677454735649855373638749258640614035681081427471504177337773697002118865283055788649704406796478311326447446050346705061607040635141747885425690271931681597204248340862284937106316755136284772367497423568569200528151479070374091059775131638751977721457452095599070363828512242965716405846830074358732471487624424051735673012107030938493488655402049754984313380798576946674862315039128072429725666738951800844799882497602886927813953907839630594431396133701468812715776245039170033539893585598418843340123618888447219249565691574035725952233069789786776193196843971270437860775380282608826736514621060554227441761780338715330716880964797707291031668201925641142863386423806231771412306350416477478805276595720200603434517884723937754097794865641254133624186076394357681823450945645358575635633343273578376724574446247973160193067653404923002948949555678785799970283796788065270801877431003846777814354397883340512125277168455981324421041103869134717557256551215259594077313476875576860456742427185470265861552574887607065843207325853990644853634842133997041267557568325929196539852181859323946937832462093490861398427522106322686742929743357961601658980591830252226679946954144686129096654572239635044851602959828484499122318302877284493315665573181222600738282788404406740659936306499196731051433824130354444415724823796042524766247005682948496073461114623088556425179352745918928075560732681780849498617888636207130435593869745131630967722164483486439897632166494215633968775076484201688025738984796117076558002347394299011535248379056469852095624782847413350062913989714253298935626704638401221563593940751354286678513952387878650021806774575491613226440333439562675744149471599906341192960723269823976997937718312291257922093358989639988293862059398227053264535091450047909936255216300400516140316144233924342544015828939728058485729454101787432555280436087488771217435280719472610354248501616727440397937718797150846300857606196877212684851230643164869013017809930975160590075388387417926051044292412197529554316513943655881771566602244626060735628945522950571139278749687158574852822732001909292877926231560902021585846967310645634328210640543573445510943688786254441271356648317589102481204127146634091113856830650669705159923213825209220941469672741433332008025594952499490868134690936604091644649326548080620191032285279755692317564666148731562999858704066989736876777420954323220387321704645961028876625665825341791060689523435391728678728220888154845822995715272047455618021763601987489137183449545049263282919133761424145827049430185693819537678341266801993112847948449914967492325679305272707585928376495950655835107651615972227393607300414449112916832808559867195060196494096438548779037791665250812645477192355227648056074295538141231205483767264973523280756263040584241740636134075857959852601890101828726291871733037271713533284979530524300877456250825412963320087492200217489907495952501340247918406629744689083416718692199105196674575153043094335599866669483677816939017896200319457457429533442231217264153384198396496069079390301452492257201544699073900349478207003504964336018429241274268351345585132345075754699770434418817260140688611400558361568806484497277824903663666072235252494942539565770175284534339756865017318617025764748946933951090379787442966909492082363228439834901229874314277834229422393132970598588252580277001761115204471602543562194908868287988548389236124185539463442956451861504303621976642337218097443385470730842795489048311136111487730228860183533560276224335977815590065313629716386530288920124149571295207264202791734949825422527900173022528121944093126841288435399173946906058877303059314094367721408378631574119706624181353171548221939050448919827857924591746452070601023701974091689210088487400886707479089425280397702591301448602785051403777141164140763888868539831108992310544549756977517962786865141763794388294021625618734403991453246503590355071997232177881646771349703716417940525184404622742482701184887740996643010503067370907617845747172296826864112966677269490235704957105389129213280936773845822171690186096291161173680035075449812269329447341798936058573851369531455689845828492565331675601648831850777810289861193941573350085020394628976923755576850713616967530108771856188002861897438818155108453939231054044007258970108685610023307722363674102008934485453436382804910756582756815250121405659624239893544396894652247398721362711117713594921835224067351191764832450758575880273408774397325488242861297983063031404937586428284970404146668093602324403606124468643039120680614923877151972620297934062929332617663975091230447632621843765556786558602092245041676600880448767864285584221597325159785409027763904684353070102402071045300496746313630284535763142899210075721840470908576014846033890371465601650958225043905260413152388585216518835267399465110155826656189942507779658858355879434855328517232938621669889587150746462961975057042462258869707495834946003504974589569605253820741402500796520772061656115264807755164974181290955742589402692444834910432795404202605627286787450239548419741714405428054475506876486894671392851181908955782763073280449256645096679553076064195769449083204495357721288074860076949134092816693955128541697593645408084403292637938608828554013003661674694603142065017333299782576160498649088969018417082176296455901551285241510857649347322361454236194358116554933960898464724888525122715882999953630892892358844828558752589603687118639418060090453938184863379218745314278679713463073611070552244734214803464770351418087431989635230703460070583480099448980260989192682262185857496443646824953563327203256679237356772801010093771498884793055647366231086428128066350700054705508635743463101959750192667371087422486634063837314709429086721265351084701862477017289416269269985236599834295854527433678052045734653806051678858715277738812016160471472108205816903118237199399738980638744634163366296519941846415009202825227897473765707686840468070223678313590190736202862385377124539603403685447829771995645522505190823272429769013200976577228570580666836882269826023117300415248460382382065259349355176025963943106989148115872422603890414478611096740244912087582001208089740084943847291337167485847013411028493955327909468424763048124805336821598283488635362242598536757121703764315454857455649874216644335146873281447369565842503267911347324258547551342686326605868603034730713226472916311629662045492928129295504502811820302342736958325363622333538226023428143613121130846939938133021616083560961375686128411241912878539832155703649261479619191563972539818996577594690071013143140737568281155234878915210496150770970128170701844704108307027757122746578566105259030881134523425031034029056621354839889988932370861546294979041079942528635449890428532663011474365756286498462028647770204343266663575475473704701112719632776385460878033397850960218739245982716560321502517214909682932393679881286965072708563599320863597686749901044385118920357280119492521720422007802687064781877212328857866504199217758596356435598499975279318775990271898636043289540731002564726271179909300142593037291377447578935233449723160549915179015924307384629310236885665894788214155027539228641531523883367282121840719671344913876419238806418355375004655308368128257799897268922664331978982518857930201767849757499182470497167686068259577187170678835478137012492989403454783664700064201378051904478583527568208491690010560254702184669171411280683792875092138076160840703626677283315806650494264854865455756776538072186062013307768891881949070470310989958312517980583313788277651103109094986442710133512953882887837017951674587291072500884218431864784806776785077482203452683248742272568648438889839196026696112890783398708559713744030800866848060351571859200372266157546934849948348038695818406714395416174160609552256277075113052068501757942712336489030208187543056350491484912951180102051179234002338661097333831726711080220976251075829843927491620303315899588627320790513570618830482903634286088133214552003479094299264678166784769526553331866989574399772305508716804536417017341173263268326026347801033591555897086802326270003460305864947814819703674490040551718610917013080438737822719038420799056175378809124949813174247453578508402302528538083023783633297277880502313100711982371637488486010088493235530558138242771388581362043196192958850706854448261206541573322542375666327806669585566776779149613749967129538992723579935175784287076213237745425307153192703901201070678765542757357108168019466134492485687058581094307496152322891358701094574231720484608247579509559825912604935658319930731504386399926330733987753126387679554169687851122485788939409177889798938498784075151766034191928760146860674218913475584157915494186730794056665255991278204544510985011109028462814890137615283410378883898637498919762735212629396224461230585325268164995253985696571634659024295776887977404390186469650331558797721403212590689138215980345290761927499289860745098383002316115173954618463207597866330689422399258462235106014112154650970918118587791523981824753126478282689277713572705317441335171916866596194302579171840028170071633607894931724350674690900709803442749035118984602611781465713568766458092991546347507286979719488336785336097588188991922037141711158501155752446432788052080007230467290538620319443215314107156963882494705711329447104416600951619132216614926053825806990180192452037444885799722582363102524305325562235224250115013695174564998758127842049426013577275327535925107101097050212206465432297810517765853144235844894039349750895821232636043400661080255462015876033206230526567074541136617149141821422846970118101982618220472895313088191087971295686404968441809126309336143780762518944186463694911027675512150496587068397687131259645620841547690927754036924680298338617261828791484828745179594910878791573408479905234441822631696558875485754948336984702880878864992929199122833062070960914795074794512472152316224662356315979801838884229075891671668468308504070950559083084732656922967999191942863669227112921551373738122627748733202828799730565113812421234139250346294602751440408947748195681496406579629323376122300794023976695483402265759834184759842526218618188764957242591199892111406963343709512127434206116534470330867143501250028155657449265293478942216754906394121934866042311593801378018159676567046519637743796661491048925601052393522582509462920873127156151807479689042634526971099766291936287265230036388565297306393970821521440726868707343289930569185766206047614249733679721525530715560400857805947819225045863654885983532325300451554556995989589963533158047373323057642882105068314508866526121828412411267939497390171552519676228507709951502829329777436782623822188762348403979564705739656239888630033742731808541085972099320002843460654195386694163117827386158679594067635701017633901299633727971491284533065834099969884547115328036240551581568231440249124712371424066126821970413086527474547473139133630311180242363955048292295017330967246280620982788306391821035267453958467242894072799230475171464326934672130420203853177475618083125650785673628340834144224697470196674155418411960194180040150385241578954479127174254925286151360984807979864711720977720431047005253134665435595816234084108856899044915613513124950637069626151956987465200468254211057755080242562336472264609884122151479932641272668241161215793251515185234839684689918256985325102915515343425164279472672882095999600138290108624034235494117010197293087414193351855956642098154764398526008611916450481263166495503042661137629094691362205994472522241583709078908347128489253513144395312016590328105720659846431172745024774080902975402967798271583592255719302509499551519330060410553404529784114657551704039282775984644308061975166845983315316892077815482274769410372856717908696516057655477791059517152697728511768957705059131332222537679439422391569552450161817369000179251433138753073737626186058892076030787767404616932181218345430693745896023682237931418643427895602120810607050513517165449172107489803715264448257342603216906755542261497929092042865608208645450477803856222555174494397329702012778659306581250093580774514576213946285295198964421616268580927625382979030970850557603630815073153070136205898469174086753298747393812467913752287292802406313530729941677947753439273000771158698993088126537537852379385115276081726758617943451845648412138647927367350112588662220068213101093666908150043648397565648061119929027486837756725630853775623469014458052695370473453027825313616243104350149157155757259495786024921190543533005826733557241464386045672275713365167022108686308112440421872168620661182380667593033106648843895838940627197871580507226993996251392913449879721447139753516628471660891566094630035197511813549937750115291512777243133275769488466208764259113954292916975633886570800371407222847017421631355626253696020876183976074474059284377649555405604956941670191849063395705450260335189207220858859378226316077713383050116614152447845165160651862145275248486085728337841942631996309503293512957831612657374034966945887729112461209539758024581237823042034814927841087256615437398910931856811687591807031167716969897328563294165491584106607808920751402221905470340457134126479818811124319191600718700350038079314057295430910364735557817934490922244175752527292271581911814818825395332295591819205942271156371479176399240467278254243324720855730583190699704080795264982232167796298829756650638090747301690228692749647921527168784191463333433043424499984029314438942879489597634915931928311942736223871724954630182367250097509848390419034459810400782701068771635808394468484613572955111898355490817767271667267198434872330218301133447591908593314980896396395102759739410357689761339303420413073412735735876870132488032011986039233854637888576407452489700349736968071615193687094272193768568923780368338804063421095591431514587528557137017772497772845651635300257848050653488739587291446967091814262085886912520925485389062392187009391655437946478178312072649208186197665667543250077585461807552343005036805910545442434625460407584399159930691344177365458576938488979297867811261193981616831523731481543501720444522588934770223926116761893749575438638482881876323177533110590186144958277106335389284782045803886450063890190818225208893790719261579664534004743221967230686691929646261939460077447538697171090065564046915738146685180663445548747811639788226455173402722871471391869201090277116897705922972428582411064082323713301055889776423987746245455591156233052230973448652306836630939151310946119176695757282851300692241813244799161134870079344032478323948193807149682105502943687252097781842559745503117150882954260727755004098658614180901583366744648421925954172613994728265667075326368709457629928734399753983923566801575102868582911351197679543695130244982704478565045375057770533157928116551741447698266215137764318445008261102574221864249575457159429074796806339745069635914601014729933819869683213178031151382517499064691611490297375344444451657839130046161279875563163038472468378294512969839892238526983941718963757978108689121655695135153550072433873188976716650903824893556453547264558020095640550453135106329211417116507795629525964993341600308543922260860687024262579371792001451168892185424795127776944423660553238062695269934052667167614363321884343104471385436172121956109765928990246476370819554900987082410955282128464556018141803329528596198270775921822082116225804811195940407333833633707541327617138421473077359514614426795830233041504285561161585277898479510219365077806069252521342419265792278890304854171497069139576710776162685771167372699148300017227700114071875590970192385832520439333875370199410120611372754431423185961178713891560847526606567615543525227182599912064154478034802669718597089232635395289462500597477582636718286458942513688388020808598863609492767338281894981334966618526481118263570821357906060181049300406361694969462061552000037668439587150975316955156433745484693221076682171241765214809710398655990429117657307570465763356306536799488526270209939071460712794062771461809268826034304415617112617818565331098720897662852801448799325930506216683802182927192968952980883827648315971886824894273816337382388554548132296199833553388604395578548425293874221593136066538581696583038439634952039491228259982819441230004158712731001250831166603777484087834613926194823077611144284513403908580909083640038190207975456621212736234194606932639951843091644431297061807790859370506805052975545079356147724012059142174722418616595802409108879846076147561206811252174320390328402767844578413765234048796359664486230116478713311167127176153176693456642096292162124484064821406785624635262947322474338701287463858048425589268417280490725011251706915548666566170995122574026931570510343072546480045402223124235801857898403210099785205214645537187606252993391527862666254353004661944203369337762753312878068053361112301751496105692928210631250530822778923219073773434694630777481855646027803828832636728372765402405636210327420141805184181172147723563486801342951164893968678825209248696247615957368505466732856611473069024944562217200373778338245479192651744579389941779005102867847861218643261440525491437630815716074940601757384173132865111522111770865710442576169396602135679196770343527677896354110508109357639120684464220637434110588535604575732266560805708860729266887955619890383164727340669750276119695908997841105729456238606937930649322506096245424682319004954510920463683298004420116252127874731356262381039316386943548107297202625135112637150118224277114806743940225901472207879527986625591175249850326430987086191156726259599244061399480839613101837204584205870777230146868281415909765653403366138391290436066344898328711481914096544033636248854651472309413094831184913280305343218601026210541990012051418074367227755769500695838613471917710845135820940845448172087087899372970095636209040034208366394635678890884781398345292846617670059527126441465632015100147886882051056532107168720037260477614769359023982284570168691019606738819731664528924417720842402554096103948462929991660585590734698883047649740961190868470828749873862849117388776713273204046059407898444012527751150540500408127535202482029708056826806470025735330959978367606875291319989142644593812922267634039944047680940688852535653129036392957869076064892099632385637136236485477100138969286651752876471168573469069115610241078158674797816477865721726829999747118640609378272390017920173009872192296842466130686435656466788180823113072422242727086159271612274257867952539020367619886477492704936061263408148242847247076180128854497390408003222447157051907285603156107026141442945529929460858775079669843754156786414831667571701934668135653639511852906296884603268479502542200234364474336854895513381624792508876905954220550554907725369945453314889609932907174128006183788037373313587584416532733111448950840789138467583172299155829533661203291211871185564685102784298931997531515367203869588167000472586508748070965899231506351073979700691888031806163868799918499648665390415953449108923383580750884536422231051643962090587111461416642769789183937786194575640840520559568165702974898789989210424076535086734476535767572983854754485756710698369193404579893824182463520247447748556735208393772298132839415382997867335219896789633634095727707973986688671377666148992776581303052137239297766884430940105101524214915301243960013924870719044823885190530164540302785587328141802397585159632093996535617282166975288730109019554579067688167626357321305779426541278504511807412387863946789669421005961761792644901342626128046720078712473622461601903541853190722303786515596885818222981080874604135591941938567007355678132450560693896541887344686904442743749275949726331011391807064266477914299076168369370108167723030917347077703712447620583621070339717257927327855856823433758726895150823807847671342546873517365455411964973408499158191575959108984478343798753935132077956040836942100601950852529914322682905211952875298209553253004935277137054698451257143451619894603431508394588002470698270185158603469414671635271215804427171180607186529407260558663201270224888827131215257614058796562785969487358681758330721731948219101680963083468487952554401435059270053131566594774186011027530765478180191580293732871199131293566470076048446360988086233597127552689014915035646762961669082278799821237265582440803275974011149020050688186100120633574157015831644056917281060259023937945277769221411740139473288041595615574288963119920973715513093976706347977722643239011339510133882074600257395092879891199950754846908463363376207008572104785555306610813505494233511737825348891228528160617017208004835698214041218658622081085473011014417728973524731661456928416522427416503211372550389786116445527299647826999286247706351281932491331224803775618022712689294672777018858026068322482630024479615949359148228047202652172669915904999649873998356158328083122724222215231806840469720210586042894413044171908360157868117539039573418301559559221092716392315453255340791683752435585747346263589809485779820419365560921350471159643386906342027184670609511523640426244282922602007857872055954401851529824994901530953094207459279721778275666853875931913497357864160393420413956594551626919017677213783080069752058147086272639532558361065416011389935427302117480786969414999537318483711608352540969866668135300364661704640020723689437514520111410247632519604910773709577482559435201372308078335838375484324010414041754864313468539336564675177756373086075668562580860910781337782277769376546313811136427136325953099910754074762194220291933767494732998806165180752945210883228992702105415341264948996236655011165510558135662117880037384347438265718462766220403498738556864935823765592290375121385411609227106386035532860146808878050404644442684835646308467505738723911396817378911350387367529264715188654715397092583071272496034494905051665236098559742901722720070554786665118593323988650268279790786377475140086008767925343200811327327314475857074751566504325228422680985994691190353792436447359073530341287857486379208899658544363494535612083583764829197116335351054560369364719785282100336989410855462069599295025896654138868176061522668545824096273656954078844486233181640137904467499443669490092310721800019279650549172569925550403303114661135985048998562578612069659524532311270935882348657940028061520701646527291214861379093658199685106022725675598871576325048129771457909881532576792459592260407406083661023970046944796029640200385443498427230053753248571952205403902441864141277197390592061018820674285128914947491310907333696679687968295111881493933859127743304213516047744768707472709297317807200272714025436740139826109347554811002956198950602440399648664302490457705090215008780777331521754350567273600647504594227739067623768204722985335534480244229631253209976473849162234492152784020581960860832673194346601922719122240065855519153270200969093423361810860530765847284338812360338386744142429802271844352023428672325205223804438428958630880339636837686739025590580542919562688351078116860266615008312338502804391489520001130639960023261591906035164570501533520089791061566526299896343180644687276034245508144638471618123326809846697981620078723494759870966472282109422740456830024918168670718297715883267116067410520082451456034360410187970745364192454569419210325083160003082703049099440084648001904846322594415131022482596123055588600651385708859492112342695170781683751732273300996809687788490054313853593163875451491059245288839021346998784116613138124489328426119349234324501639072527989659878667318166335711040684538850309162870512844568502602095585078951805003646300332529562043351811183662117609955373797287424133290833789133805535661102111901884174760859264632867368690382128188937845910165536085817379891850380442977873598453321239065074974363232509029793645939917109505350277068078577790900079347524525021203210565573040089774245208229301077678840934606350441716951303809070548662952614424741367823017002608685874734264455194998412883675991627784169303052464584338534341497133624115649564169776777580893400247606801429070175868309503506023356138275712080910165814399933795984189363351249250244016667988542218953366720709158274850261750900191465083456011890135024678959272014623235887549429491674787293455165213965799108057270526006225357251863885184791028707706051768576772212364324579665727779149729809813910674557672918961116613320141908136981743025743391746181727337411508757860010858754283807254016608804120291866383334434406744240390663916380926401076101337878508333326529512765986405689270776743459867322581707881383526918789694554399735326681907644014956016572630578460372609577192819310435912769096950171159924605937171996102592460075158261518000878967924602576473811296065267063272792693450405601497978007848125648151795871730931647754478882328851420275706548695376609020351709719023584748099505720471863466982680412753126928812325417023299534252186736075341244733564752728170524085297982984116957549852825979105591219567120899520848183131625370764231386528553701993832985037122044125722431507240810052495293595510854649682849066248640913617917608751684328294904221128979620272507936142916958113354249339941768077065541322392759738025259378023739361714272303473718790881907912700519455883964307449093245012512557735293601534825472260983375042600216574747366497072545989318442753256909900767930772938368296907946255699172101512392838803148360664192631516642501266313374770894666301308412972478925547621706479632621409583450082627973934046032293142837211790864602108664528837099563485275437423865008680423513047818636353275435461828265164950945261199712719311746448954584278290761985089548553083361522274177131034410965814955434409900741429399154282037578188178197122790287079783048789685614213839778362440390575392466953897833098088714298665875825686990791205681554436049814412598254496901764106125109201809122752723822287200334867939195728568916100797069130106774295972661187448580393383267316272302955121424086931039663400715116647571561997536218745062079446411352817226076880948172537912409365858131537180519004302802746521739075170085720738819214053468746114364612605836089342397964574152253680836872153296087904419547363828679508444968890884078074484314119835181970973055545444315681609891761515239211876412593591621571615615267099353865874741889573346356828055690682719949823740177299511982012017067938881181751468546455634030596588085528278060737131572789620391830208535275208315538354565785539242097477950053508448304924370912670126543497846101230445912466068052890455193537493646990925225942062418406145148899946300641643824364376054698897573370698396272740280064515601961936142327952139063875640938888684088476460084212225160768471892733683305822515920897900436749754486893339150805820081353079841389562732526251014179302476927564256823831409029731311848491840487567594699337572904500853174158581954814614217552026450065723109671217504227252038004961945869264427871476776013517467015609078998224437563602493783657900901494000027067902561857616226807583174999747673116271857934563230049801162133607529234275034742368903121177137520333676129129295332608044503787284100279573238374871352805876729815701214150788803673297953549112223235387904069556963521083551826229408969722062889557475509365984881830881075012735408380249844179664102658682507948234668985989687598905411046657174117668627323706609780220533361640642240843262582291858391811896875532620332692343367397831391457107451034244274554839180986223139790848535756531275973004513889033782040730848093646951222041511046285713221737101301153058954979430794734323868317013932091208188461091880404554307252155406705227166513887543117320103067397544988085410039404882161949162158107361090219365675241548161363746232416695023136237639361187268825052766441392198012105507592453065629308763518788318734125249198546179194354255355767588568941672715657813985884296794774311282962915170337421253349712228720912412419854271384974815408309833737661152375655367430321835017419720496490783993410841847004699584481095319355407172508621497938191552197434958254301022291387773070668928757533072378343849303920865402769208447620454444468655226299432438163364960414683055658081712979068287085995512767170361615830362105759456247530302444690412183764200844374354673053155627389961562211294606840416348809574589323260172157755063305743503240653052919283488182307533360713569279532067119925090724785725999786798151233306680799094949759464920770949447201031279157634222835351336955567137618219797587809482804041795154737521631100618878713326152361537793020590510035684788718666475292328360512565436703574055153823700629307827071520466368417930612877854105955408333501814798815478152982147847629909569473047501274634205173495305683420143054099178607736256591938045862261257982026558487524234686888924266111356464295497627377023408902713839471109911315697602004451509580469832843932821114027862709866891267467461162581939033369456290632311820288373624685454653388756671281880186136359055206310691360564994238467545438077230370442909214943015104390561003786572891928417028616404149897054619446498525199372751651923650112657510810869139695223194630204926356287189210197331295651146502849457428238503992392872605071738590826265289180954789412567364683010055627608096171835908393686324670063783146932759921486221818342991942274420780539115697020205144701530411829152479847652114472036510013141836519591264299523908995550037771506918995072917464297489875925650374508351553790874766615210490598189129756473683562364263537718259644747415213648304997772928720716336418021803363549731997804689103247893275788840958375930421360318910428179116146171583302647589641451177356120660861605098515459176787538687150625841888649088755493555490244816503593812295378840227399422227578878095766666735317809995307997062985859003982263481761903104494138560697636771803282067389345153217523486907396908349236486867418120206400098493822840332644292950643464600017443776728573736095617110336264065122167500207398327682124101268848710239349436048813360837454521799021698052989974383479021991915727027513186231789962022175488701754275744137830257993050907125545475644473063916861305160085487378703925895172988557570027813131833247655176660483089465988077265005344209901251862408720461040460493926343962270426004130109947328602324892180313376113420904136800259278401327883138432307369757240311267561925028490193126883519167953271414261388871287174534573440796599123351802457520474248383252793976614994770354739808321498883775897094354761744902205916958271800804813395650178759036334767438059104328877968161446558919437707618879342974150646563392609020902296169021013162393261996414510431720645625453934401812851098740927099312301420430214692880363572922494649720589217530802386311296359596130487292465663072997603585824284639366566178745209079347647768804981734683399784926356720551775132552215289894146403593711444612195424636066105053534138830619950281270504142329511417148581021011993858979220097996029040992225008941108415409841586434189056058724214711423853535854127344871593040673104811434577891473960410103114670401950244519687093187609159685336073641398034284627901836610186355045255827373070932924473013027678376990772897463211962633894582613684053188558762839100269360480363426795636951534831145157950350508714895473524871951132180889581874680645568628224866241678840383618559375877997769411021944294565418580217390283876526355865724825879632601099488751431136097822953011567078909853238241166648637718102982801420950143226682113800628824126960184047402373802066657216905629314867675830277697247250339651111262109508413667920243958367646879187193311885220063451938195049355253487879202778053136738911150949372372498140822737731585714281095573246379713169607450212226965195839670980220312087432845763766951182817518770535957712993089795427855953736200131333828675515757157421872678254672515943180294755504327277963869113438298370557843021546754204981899604475912614408921616029143377698838419657859022974146612586146824509502198634211137951180154082289246746491684427626348100397183096244985561882266058010327271334047560907752934721870597866914817645639873147979870101285234496951730114621022282089275022425437617841728009768167912361573218233207035993473463843224249626520881892519740270012845248299379060675256639221369292198413184935690916995570137412511528500685721697092623912579679775231482631459439529721016086820923253895606183042396887530701602590435771329610348124523939409645231313480760454872215606582963244991042333057845340024264806706481738168810379562324813930704535357527804597761925774412636880990497210458424103392257399500530237067219711579289751515776094558761980478001621962422134115452248839897742975704774968119633485324435622173969858591642553267145003052274673299640730680556817955003641035161079688271936013371152089537409359007075942629916079741795485519414890652085088291004273634806330173037741633254839316841425716159666786786397557567202054532952823163880071559092417624302828012076906885976507732189453375760548208233434878575455943212644430856412452516869657909530679783510149189272572107377947716864712913807894346093716341244927609949902705990007002655495694219667206585391783416346055554648808517053809952337662397814508271228539949574280871613132209414786448854998250273291706583093331353584444304828331902412849976190000279074440290569920460651256229452013662767243228130355949773007852776040971812975994988099277374926687660934210635359908138343589390365179412616486758370813566355183262157745555831631910280632153093115684220581707621362545294125350828957977312369364714521657711491412107021208464979589413108379105656800175000206244135586903635001888293209132684668546478862791974193758853073593519889445420391420796786616458185459766725652844571315470999620938689959157474749581470480677911598163628775393382452069704549143228262665133531533303093919858447042980095147182276279955599875516456839297997587352421839535419099293700608323998815946511277740606885195945477455651386709452645016023469392380636335332911035119079974780271214277063873965395474031245280574652197683813286405053394351214313152079026051594091000463299261907960562495896504476150888665821410437048287477807422860017472685097559131370836821348084368152363217285894844036640106573158101607929926961696866380919560101813858297346368303208859588375032239415034211790406340576818798606516704276802134552733866425817284236834257055351497854692707694790057133541448795764328553602661884131934071164590320979871403371376555997653613104232522988914606125142143646257093786736525861506710360521684385066001628902932208460615699987671649004690524954913410487498891831411460485290585408267971254164426071134190285112956672147974326510425653109303845905131153118701613935569386579533570927518702009540455202849507013929230845481507909980600585822487557855643934781102374653961969187218471722534967163469946156288828648139085325483488390020429804429993467150113901289139336376301322266727132954359004679351345662928041805502452765801091049721733899563330499131529681668058608183751927026336726899381361346815765225727077088036948160677449010083170668890067677711002457388754850554374778047334831811988685716572545291406041569948152536148903178713467718031038499361709357254126665258495588912622283191761670906561447317660855827801027321635858445015394045824227281964277657614472582898736919840952984149749381365595035769265054456567926651573459834418620723516598538296263934819077495799970318139431400941550426698932437637465914584982628497500507939614540809815526762522733631075981935512155814807617756895366794645957724762571616597837313557173228531218475473291552924926295382146531001162602898320572504600946583887790887003222945973725870229135520551305044956243496695583840519239122527850470310403845058917278637426351732026026552118316220759383383785453743308939824497170725918659113340344652124008316938891544184913357863011151942362651875890931758837461889356444536950954993158460319923011652594096853827608696166488579067759547666328210783741208652756575970304045804344153564222108436984257042478678225262146645234044136377674025225682660336232608621859591526712135108297137185338429129017964610351993596748839436535535249861111612481902895334003908114854568557792329349458138821807270398675841895211719455962647887365757552925111407081497102773312162456021364557813972837003974997815642755041528177847640477751702154799074992318709909571663175025158895176964636005103597545257409951248249236077126401518601968261330125807429684254556054069405760926789333347603021274169725826595581890710440678911340039820498854642760703809838644528091671600671808937536588345729931571951299278944545909357192060939844595816176374858247005489899416032969127147655417380620701084675613424747146911897818666641894937014852396330318689982099468875314177243648620177731089973698787659911966347646043630076420089010592464564582715152132697400098731137301421675050509830254725278327077714698930524095342201036940833468146672527690600572393907379224695603532512372424197387299373240978674126323574556697463016609199123165571719738625083758412208484733623103282123932086007433071337558642618325097398135099665039465577513448677184250349034218191748471588838299550402638470171516346904871406806803774072876647299794874885655998648892393427107748481069337458455129027087008223799482730678925618321215734661915379193103858833057963392582898659203310384573256854529386123936806186519478457707572173991624511485565576112547775068313144536114296603468204520302629399308780878535187461416238587032425969995859092852261916680542688375644015267637824236860772096519406999491869986078031466829924462224001849429046235983911770827568522503649107487364232881556759662947741680856541143864708459117873528304601976235523139410863050272061821617334306142692080595936505614832471988161901994334632043031233906022154399025701213240772546022710546991741988017061051758562552937348217442048873475143558666366757746126648521331346814517178012801420754844657538655116253244963667964096090735624237856039782050724780673373389634136600281843315668122956469748754637024890383559283964370699550589369006872260453476104770944156656678999014474408783854177557273300100002866014276376284893787545529070985575818458259570666963410526564345977747003612451518126992799612497998707681277251042974080997970697582058748296126794216508730053959073411824488139854918863146746956711420525425877602514660537620959341564232694296632765327502336547435299483246052189464498866787292360536341379545858215514380092048339968641130717331670536348315119278404720693663408574093758083758341826464485198365595647112387852585015660953149432652304987016124031267426941584546357742326951085799409234457303760105117078054894618227769560758727663643028851269605052564837785406570217595434602149020758582323543877862354442864737352457358681031099702595148087654521403994601415033768535792966992763347954786105401656472951285102891983773811817251410740004746588040591745510779883696376362846479141677587636237840373007788886558514189246495317067670938400395041978938179332745173314556018899837814660433576168775243075886433417622701455498326432882642815480403421118747228017317725553980684982629519478437886868067667482435816002620411683135785393306390255296694636287922571360039635543153040349622833985805493746201929126927605554464199683094228135375131562147489854782006473419038344032552533892119683836007344021192640204846060745688440300076576788924643103910150091623740970151769949723393107994580004033917142270972367467646912490622665852049101729332843300314194902315679697889689985263315105317442855619912308878770508507017145512910435452785762276274526832160819074757537571450503853714975548330131041775394085117513391811057754731647401108864749260997554599968678826438186522267235461548191140304460364403146581582456130713526853629435867213282308894123798284098057584456982522024496446792700264483416147971318992628103331364259313408252290371556870138794952065160174852995316898241848512833164147341170070267663922038105607031163939711342916245295089802960445524569228364014008385082101035934911030075633740592996577356985066428816954085839741335358549073649462235965642319238386337231944785654250217276694578023440059414433373072770007828508280930112964611002442812217006075591790471423335585039921868851843406183099740778750831725259292486028580142466328435312077415068249917226841606351802423368715542039092658643570016617919923553868636171953770420394679857336933826702811420747800245331021745507956012447662280864284677682374989398786220455483169484313908114349218893671506713925053814664064138738290076308504808387085179893009966091277776554098721146160533611320788964258887841888976747862059299989603199357752982386174722648982636063787211352832288932751353369351776905144083131283523118265370448434487632944884684925800549881165760382873877764624296684952319896575082823630203611333268126689696744664551222880905093815556387835836504040581143129320264928606269196322474859785660391375583546541974518754715559661284734650325327130514099218020841463983007471065542783390437716251552682427472607295872883527497615970941053373957192134977014231324996542106539674308133278490235333701094273253800768180541024362176113150850520012587614597511804381832081837030108199257794584927904403473624611704129483151100147605556045070974223334856469598920485434777797102101757070307007483736712406005257480561123878689661726621654521630884037173148642366642402769434102286844754765813151734742288830023014071006466189626532176741606486029320254448699326898440334950125954843861961093272490516607649282033426156772333539944605610412464710250188504849715001548521703950876332673069104907383041281764990599211961799946704736177115424585325325658987577824253228566758635438004112292890227959628555771508369023101058156585144004855928566558190427812214509284026219782417554624394071377405562390053110719475510336603001136974722280029670430469625553314881242955521048661252031332772244710874820545947503551810350934340353873284220819890783503126419080126712700197064360839881830758302044630824134028019565839670918295428627968600211918161352431745989034737064794067265995950291041700454529632885875763634610954769278135902210119878370806246166366647202879224727399765283661457370255196551461865582634558013064681708467292618969391879832819227832935423569900548140363728390563216973614030392191740287067633972602405789595372627779797879251493833825009616596709772479653812204434134474530820713481140942562502130017776374651875793928295270924786876420282799194565395842314948375896710829704284606610027155951725447860710001763398071649552614800488554260339480546865475969329304079094811226410685139238310095496833245190600584947195765522008507225198868116971425654370285482333214687871557268698733061598826439714302292811920550799396018849655814247965582089092879698500089484758217217565136515373899234300759669743780157014246024314041956949481008532214564471880291234270202566851885464350887599066117927992457744005218188245628005989367534820618116402148461261960474569050885509438650717503520735207878748238655522516924395366003919360110416739627231722437943432084570808811742884672558551344218768787655128686681913521828926895358753518220701379414167911385441749206452680246031097237454298579031282622446692034873498020639671332815744289823405412406171783215131555893575254646474961590047001958360897851912901374519994753355700882107786083429321051508622059742114686164830108963141524502602137851097538765952160684869433791419082908686737306188144205373672481565917292261904546840018841870879241303163934416038015463501029624330276337916364089359783560617906918070190216985501917887868691071621146264570934927666029274722976880719677907478701538645833675765363312899089248544338930234321680601726079902703089405304651775783961362892486987338851788049101617513135511687687957516844068729359901263013919892155297702064107536647785676420945821447391301361684096281955660512349725385254861905983113252015092862446382146273271389162374562085133159685294571125393335573329765281084472552238753475106330340086984465130431866327613961152378251867411780300054278483945994750641102439756130682566915397243793479786415918390082488093409046848593756417530379345886416019413327642443791102533216481201202008942689562589392346311333493174702017897970007496639558812697644408405455223501561003202372186098396775536474742213195119739403618676718936911046323618951147103427093898740733740842812516006433279683940679786770772866603830252703201802989567953794849366161731592615637142339057372082760964392843355961237844216664693720943768567701618001867462470085764378259153392477163220554178059822666649524609884610729003803144865317631650699512558615133080947029327581176027308869037913716999635491431578128461108032891622207290738147253939085141260720499853794106318709611609000123879446190754596198274804767169774275483460609152010710330116848734590897626989778291696485662445669592063603418895773918519749684720820082720688993306366646197822606958882297952627016342249973232890808396864365987923460423221754709798848683228997449396842768541958841940874690789101703870874595361575601676869282336245996461989203376593182208771778371429619893869748517105205331613456832457160327438546236670662726578894711428438208942626119329856872396831458625828536325870511724308173869506685464943241858129125146411961496136831660042817340287945727294314462567041662918504882521621961985234697086324580953830288861522003833377710531504392200529414072043580173212450293269462727381665916443600865654508557458947542719041794222983125245344814236463881513789244471242523849847644909476956888667047472859077654478266413136260174135477650912799753061847449545542757326486993248877559941278243122768861613556369215983421391737280089982003407280397527304828687839999549595077999098725440849258939907654710836416007716531156562070236881692661900959348188845767206946344563899221433731662181830301797400104681236338178030754248094164006715083462576897728414421379138512100186255457545317382232490234894263668711400393269368397982918443595413867326530454622666561782101416315800714921521732767159173629122921720803597624548968714133614897645391010930249589547796553353513583815204629873145743183674472121388744946730514474456071737595976342852863501171418419891510291554832028844330691549452610473204545345633916612581599386362792797130238117485886563222411287198834586967826574245881534588003634273258253206351893563915279737533366758971998815289018173900750584182263791894523500068293090936570071412645003167331867918058896296516009286111120309170563233671886551635310764478919017787352245507410214285359699399692922036641854478084096065040537666627243443454979218809059045968050733038746127747590863031309449441931131265225661516544299446740174520472524478676281395706900705191822857450541239732354978999491655904616125736592871859483501161067424700383004956288321851910095562416976092437631133417893490705417288270139751809425627646552253142096415997524477423111104607006637951988603436882558015108009503044061855847451388829305244124989870799898713560556262226500144362450334908559245604851809209595948264652803525174742693380550541270543301234876910996672228447751341425716643800620927089433803564712399872402005473747781897298624730821774202048037085614170787773175925373436604360473799710724085518079050190684154384965290836354043636092656825400300068521014040345299722209008339535436412448271615584114418989776251097200743766135289552838264265898618728988561260745107005054423387014322245007618982001259868972184490658493068848631811726066092038749907562446488998472016775132769181341705327707922751094562996629759358337172160357422826222798337057737186328808302766600979872946085556796271279898584634103969495835351427352316481003934861455555739247539720745841726959851180649830414611959786866331685139534962295773345144044744384041097994164892653814973303040142479947014790717946787026027828056492616536154094283151253284019246980859528765277269109428106247275689128534229093763019142935935426419984113164120532919523393602991046828161704546719652607494770003102666861793754003088411385524423619107256543890963848741523781053537914594844334622207649038024230437630195247056982907505498485012439743310836341518659003765695509547491253848766607451319008743616336874003881241184420282656270849535386695883844134593361772952032398358019051661535448418659300640791880295815623733439392937347481518998021592078093811587687545604722660108105562377873197834530275868228211609549927398779582513461674453644170682048042396150239966604205878060315222813515586752620361461248236129570967712473390350319723451898650344202979584396050572040619112878868226732099353836536708748001743280849279873894285600955433927943895315759489618900839562008310827146344159877102044922303319580026805481877642066496002408208425253550660865455170562470987647209302548916038974066229357746055237416807052411513194672371139369607615004181346377125173590213814079514319538261987084447156243002367366067503124994959764076274039380243445451029885730074543592118928273565878043389079015056111697019524636611756785702502325510035866364478116937589963590202047130672548502501427467871054579265576808750776433999628579997718535379161320238107313006017990776407663054399855689178831926317560902349480820385806314065565141583091705835207664047718494214739198061775322221536224426445190527966111351674063910794282831786296379686793132268759042722610411134194911623376052542770127968319215922686819837018445662171753208456994261741030401659240591635792623679145026388497279129498797733426127394264900263233627179292514306914196960911530998861485696613304057468249242082709657260440313684246061930783007173548513427450859173582140820592943820269971946449689847775586174407100661246045928445375022522175183865558962958844607124680589650138437034417509232331766669562583941624985630769609224676389652547160460128329286259152895916596403262172155265165487388675449634099754303112851574002541397737262303259573653089922828954962889685231344128152656567740925315494553199156232512144643307780181756074820460253930704050552734706918124721706336994943786995314655123126424723578799802136561152702998275452832986301501495950233656270485738897078863594563169449174510564498292563458669512972374186451515123510536540104510378847415407460854517259314929864586397526788426792673541984221016147367659715868011532428447562289707361155204539338131985733079149305022701366892728836396382960023269014705216836605615075630674543610735544452814908370806947154293968341770742731630202221592480003216325522685081766892041600306728613413908224677027362702723852422102473331218701409649054257323244528362035103914351930012901367930776103835085610110663187325756223764902381191265294842558040864512099649085337838600939459912598014351963959647692139658935300327594479878220159661224497788251676417269093253108304732297651285407664493745749506436893052842705940371303616480865517908889585836621982086250818797343556015756835663188312364741709742657598827812101812461554111652487251091014313416185288094305641139314321053168244543875449098012486592235431617837324595172476796948122647370314715595822790698027218312292495645289879662965351324428191829642643088743346861325342877758124119764798980280818382468909729062664354574904476197714305381313182900872431147442553261158417357907079878277178656181790441201672863316973585110549853893164391708448768191761993833108636359757647694627003272949570215707580807434566463890870375132581097223433273812810809914092186523305100558838910302575299152829685328231350728421764212094049262377503254084471125909933591749279469543836874535689520690117346511028486703042846829347803244215995665374382988127569619285050588341412650566538267897014267826114650434220410339767920341866399420706897169817740798834818240664900060524113506207031579090310420051462627275351493494663665496975045876933596829000497286992961349020983328037186191265197652297509761737546920570214610691345633442590667963420913400352385019940310544497387585627948747367161505495837618116489371901844951033215667112738803759493925171404460863030954594453744986871376332070933952570994888829193873316433884337546452090789511658592988557634111876970327813845909942100733951817882132734658116776517891663469468321573362367503038001378507669454003456768596540379162134876809580453231577025366060951741543783700722337772042328880876996622243450026060197225453179769907684112552813105758273840693093951217396691244478211716274131653431580601560187651666815013725319834087431814909852928198269471911512780919450182492807908938215340852055860225656884058222110239386036472399197419859744936160131778814904888264028838301517020478929841480211901708458653579307345377105156076963101054002270744779854868078094726486009176573952208512382621152332674001071627987824243225171138226935027025498103504156515525180343991372891681657370152623610092982078735542369259639573398429594063986535270986033880595448286959482792913886482671583745868076834002755763640696437293583531201249149364154097739529524865915563353759406203226986038752648387453914804871798725125098707614322874862078185234832213925844140299517771847881217663044109822013779881086838498967472463078534652520675650456399125952608964257785391942125895950431066168349721475798467674725277102311889005295628565439820358108657448458278670931408673091955378618589651090458493270365517540194740649846400443924913218006728823206672438674544503826923189340061191621500640038186744405755977154345478704570888901337898600837300298124841770147358174193020068036121549809967993416217463580355266444672141001843222070519868539132148835796035626642003253115375442410295547896289879061735941848773211274661184342859936758499875092083282853779441655630506078800313092930966850523000187617387823997457338903686955169190808807505462014490989610420300884407759851945085791459521893762175963579684873773610896691820019579016341843527382610700765708471082716229788079588052083319976687559025628595116227699049458892119165789184205942365452256865958719122106846729034270212832054960076830620644047298682386322712922388669985983879889157634793521224685725180881596379250891413181132351414028679416481980413737671460583797398750575929691103807862833385999682849946525705333468159398992753607304704334861321298313646095469748800492256918463954007406982411142325546946015574191792179592882866994639821534238039207984178500115332837113805385575917871992186829503963471481669020025949223636893954295918476236524107740497869265705815847343101563980005866260177664280636690520561559911372479860924906462078162312597584369692060908818389346921490798754943663120935006671844090162986108584070275882167445458645650457725062553708094625360264105110045735779836100686249944800520215946147276544078052002628968060850689388956499665185854123985296164370210189133848288627054902423109157869992078041199423981351234243607573591995555115112939401003311537905548925994834907052984920522197534406895475871208611198768661326642039304027476008555249730011132003190452141537487962895109801857340227064351643622504650853628496251310219198871895110161092168258976528692470067386163717844878540106251698074050186089262961024300100640541409676576607056776161207883397507239993016042323387411155447087684592588015144963140616710632946648556487896273658047921509373573237338586312995563199656971191795266920101822511090106467770213436929546602754397352884240396223970285554350511827662734615879671812981212207695573611364219720478571862594531062168477888140846844953536302888053427470286540448930895307898716752943832657494004477685012968271931847740846210632579287817763634157154936547759125306606557826198370442285127776273724519216352883361074166885015118408924893867649651564265347004831890686940270095772008187860820066533126750263059611851835152088010888760965208054912114874111078352938118221684314737633928786830450784926568251920983026859289232445663176885755201736907522039768519789931391979211432345585131846731110161649963094470463235169547167410309660314083675368793783327233145290381241549025677198736547529448730329542292256088698649327648339955212037298970377400657997666842119128993620350763016852922934364884713362287974304930790792548123425262357852402688401326168033503104182381881236277953381489987407358191782141409610794796301931333657758988646280854350594215740423731915169765937434209209452695183691950450772874177434108466581117101020059030480130131268345522745212013373807154476040875754820783435812390289469559837721029944976387680279798171727840698854510220325925097850150351002345650014464941973161303492447301023908291825448351491599343451967945419004264441341467858933851993800985520890412976257769650086011822473232771998552655636811320244852858519339368885743869763300608529017145930061834144428501195351545925185579795057466958290276445096607640249869343575146901862363517326624052782429219311387262168753000436991313481643346911293167791565263196865417684962175502215278051026979208373958134094818692583336451838947478148360437428948950429045072865810876128488532762452385966585295313841449308274104141266609301983793314386484598232440106640161223232967411578857132746667486785376490932689468044509594152550014220622538917442352319100517844822085030786545438693145862989134726937487661042813531217638461457012389472928858182546879640873105612192359202094195688050165441409393266049519879065723768025980849404586393153574894499000606569952934414389813201348124096536226405278371469823360813747265398481693967480621125055531610210925262529309330791282102912714270197043178802319852493404221084760431594438545301733767590652299662765676461768790776475630186891639722824273111578863673832084280788525238571625988968726737522997624070450775099972214006813737603646746411309908338427776997135932687797807048853134999906218101533102425915939054687864119906646333002276341759974211392102573524659748987496389412180323280184049208188448756281577251595738453811398733039066261955602023694971786386451175934804949711059807817238264334588767166209752119861010146272940439271591684103505300569363074375070796020780656446263447899162429027806409622520481038671110339137684839916526175153704104878517606744239175186687302560078926288266261774162189413293394567871725414973422229072050355056901173149972025478329738941527116843224860628747242340659129085913723223607207167820690762592172943761155645884837307033213756992325695401219382269855890640426698993815487655843559382159239182612594951482909021114494688152829265399922357283066770381258095355628671529052447073460268582603175400274632271557865338102164805745325647088195491264029181813280598175809386443946646923353788365987171690649891323418634680121904468774256230916792653989316837594169979883058119812965292184324262654251989430171101337688019631324605852999085009471793681599433031385404130093172624124753301238068459118992134799948958311815903216305482623974387828230583140769685921915295685276555488544813628814313983509878671735132646126979003041526291201563703010023063897280280085837579874293226105635680067771047566909028452348582392433145726918875553583451156958219328455834864833618969860915886555785195426841475323376505737676828759935446550528941828939728015473823381700156976860850310321543334762266208847070119784157335382324690401965618685219422532963470853172014486632849498367038343757657179272632568102538517978423965031355189575660968562907329109278731083787931075680611636676795420074340206282433593774574877963038217725043121284576985221472741576298094266129360066406680561366544016190359491341608033569572122623932334041696063754771687699620745646760117892460364771784042517451982243577649537864191006220586974628649977921790877531164403767966451895092762652572895429286024106715088779745558426615516118143715844675471789607995367711546290408482412349791120216902914295737666137549916908391099568291998882232546510938256576997884240275305108998776390700686903190586358441387505210510355565763936225623068543429332738161798308380735324708821148679062436101498695177165277863050522462224352562021411865609749851675787674380680327258335611392229250419078455971181515555135516883911634409026220803110442198196660100162958714581134687386998801698627638079934582169743214424390849527082027798873768210289560261923235406728243377337960076330622207748566104608605861023796882345615975563041637301083306935157083070331000136253489017242853553022941196367347198918408219156097859258767369430890017093083966268883274822007078377126596449109779077321367247174579971332947667292350831941457860486594046675392635237833631162872287570412357787112830024872672364754085816575906795384051588932696485643608271984137751515394138630734747316649504572860425644106320092609193654198827748255487104448570982408900577214140559382547829743319723534331751268647392116940702964664916793120593259529188187281956557428576318047714756182262645739369974627486418486002329074996907811776843051639162071669185194730144762691094453210048432776604258977974287049982080066575783197481963517047375104981427599293297005365939741744538530697387239870362790457322540006238524602884089761234526743418777428056894698407904716639026025392147354445538048439524929798067504347490820320211102915446682092462094356011064043303675772846834803644139693568286189375536640939008853775050512797872722983993920240495375904203229610086775235421340409395908821247482780013212792944102338225277660158328261691649275529311714469395385755053657437206013790066405003593202606529519733312294441244476021079058180948202067746852719634544727496532896993844916484817033345135007369334700584083854939969349593313291640525633485438496317597299531155553858834887624754770955299699078076168191268608944603570464667343076756468968208540226838036416476173621453877147075137580874336644822269011061850353188287363232241276582421707904430575921386344253383316521610140054829343973534848595024853659088082626781593159881118961750683653123866554952000300511914196336138726470082885685326879528695909875831026348352986553066130585412493592207431897176443092214842856423096873386388662381717057833432547458702401529806991888819944156305911516923143790828738290800086641325842962943019966196419020743253306138954563092624636655335348980640192138149027725130668328150887713795839722464338156590684440659329232642585735323167943113800018687028650417994780600795084609829657981162150957480405692129774331195215353194674800762926432766599046690340382083728436594221848949059676541203603399064504586757424611782818497559474272179465166502741622917569552376609886549040065952131493205827921310479036034163610963657038226029842711219287307516451876727532129881854290830580630510261568824167224552996480794616651697982712396413172521889202785165397679788816330236838684655866970898911116877113084789467299917928501922783946003716880319808655301795380283929187230995837249953009899419325204292398727488591971112654464601903910755611416477232119052150127058147213719330009672054174650868932507034108943827916913642370406444932987502718775482420011464578167436367356272357107258427758758160009092328794943741026047857960914723487017285310467006171113574056148500261140993797230182856198743816224982788441435500161173572521166049824705493245482307384746762108549854494740581065196331806293136415093076918181862348398356522600529430340922502354525646969096323165410047832079826949904112191506507084439953869011238403962822205959051262028660665439011867258932905154667497764228958952285421572834022201315021924130188060159467355902074600389117951559844752882747547806308804820532014627976715750493509854086091148836802416309037713575733879749822275407998142823925421860530940662358259371255981813937773849698053851250203999435960326486272300553291210238944636686253742166775018398804617277881001827139587372418027266318568039984534547664096980320877391556148175830249561167612572745192817865540018192304840560025503597181265102076556243990695941427303523744278821299442207116561837792895607272053367496135505912073070807262364884311252305099275821304621448290646609604649701289139957876059592123115898122213968185471325870325432879585261825771892633670115977926672917683777254376660658049970795963425077290454516599182678863774494819000170220334877848744875417413523218439880716024587259413834059972134424115039242569960930676037571413025767755939918007654845103638711445176246514586840312088998154648004851995323879984796913989642481517248203542365140058250763634179046626907264327167233871997540381750026242545897057360202285060906668867409257477125494395702408208178035320936635655133434355042188703353833446106988352293337290335273103225129847280471929353382569958010644139279874943191255641215984374413672877447765221202775928144967386927961176527058966154422149210316288857443909258009952199155948927391394956205549611925268512226204268286647396942716467827749145725308058282815257052152676778213510644129659380487310846642723903031752480174626991280219866668131689940523576673177579256350229850311811555200554538516596769239789907469552219149992910839202571949343561396231580925506027464529830611942211346699130207190784346004822180724919637662871100475426917246170401591234979567328509956830921590665291150287055944879235284332033975316117854372006909790768259179715213667556290922138306318445734426639262578892499520757790158855317844094226480221916067488324918578024081365370279959421906102587037537805722247248056564458477380704768817914838355472897904749334898186753751566624047781646269028616845246238736471490423881952117714496583327142575146006471834606513052335383573631179109674832642399776956364910028804906884137555167974704069636625634810833459350420927247154923352701320581116419178046856943337705681386120358877315328366464430193204661578326538797200471823297069891006539452275395946730353609291986552686227506334478109105299890363326757276077425644646712020915724212290277148979615480265600446820179131532512975132041999080431874652876510438018513592186063559766886213757606105924322981818618047031986127685677905234206839648808098613825619450025751363302362945586059209117635201900306642285655348653616601217448099350043023266578016985637485835072047753880859504566718280483750337501470842857203178047148613789326701384392090120668855308299129917548315130097779684455603869884622857800388120701426231217839050243480210825116299783338954488903237997109374924138784724521856843505227141193754276735928012178507585967720441400736798169577266954054650128679692379580356279321647497630489134805644360872178456353978985561201083468297044592831272103431472226816607454269045326206291636284979142193600628245602112798977091251637752573059181765672366835525403190520472837635882843146525088412374461054368981806033303722829241073963292362298452489342101248387022874533082984672140619327529586312661163169572408651254243019114508132112921542059736635965554828920286210583554937911889874246771904861737826570079989137798270603144580702048841939903240011335178503981254992893328709553507626696616629916272060583918882261674431707509117452655719590813660562786301131518379936791506796722276573924645240018057635526367794592691458900956532503720087625893321511200369937507972140328339750310300508513850631461966868875934905546709830746214318840565799641433407126725942462017563347284166659113526998014458391354701888046731318969263401137301374685212455230885559150962977081791054344663271815352928059193326659082307914874566190543383392048782641918689640610202129403654591922786875853323983191950288471165509591729208996779430913506679107476103243020241651016665812248739791455862396067370819418189526691514335200188552086747643881492577600633120318957391408353139474583997979097713324824423490910628934751866395449059267340675755563826114072341323224728970106848217109825389921189676399571227815688235813562663608827490216399592821383714390217793852863422240473907438440495003263270658543490676208652068856500883033092945838097763422860947660578390679604192509549043624919330735918690127536246412739382429162857056210588563408387645289759623876091190916874253671497739492562613210885490134335102725897791398160400918244714677965726395829627246737544935943177761824438273940274366964092921583682503846988468138927218914493910764517179826663717496262824984490664660745959385222523196219796993330215969959322975008828941905483771139901926285230159554476811769159767497986088681978906259718552535747814637586798255252203464092937233307032972197347855943852426575061948400155578336121131906079420561331958542468626294445611203222468664669970953926234892259398976266556161876895664101828675484444358096729115936715434325227546799664865196460922701370022764948867957149248708148000858668912360963664425846411144218727229246828850134796469647892057083783324041067581137468984866435463777607448190347076797227933726209634402544148161130841224906719982875105702482005831547341747839261139831867532082907404076240342740508462011294514940836159890493934932372650512769979434857933034336184386446899107714855785037728455957791819076620303784924144305085717438801866925372499043915055249555726095376643220822941981554061675501722732232463256313543837920227205384730900338609168394090833416011981658428883167654891627804788141072057101534260510380947339030104308960074572056441524666296049503541079530554402316941359121657689391163569145742032217526511174009770247542954428849418766637527421048190329416827685169314273951410163115184322942768895374828506899005138722439228249721185475474190573311675572231243568133434340334463729034217564002671525289368286906238645025650692075846974471450660105700155957334070746266782641001198157766581750759487446385556569388632048315708327877042455452987217377206152775543995943900656505834145011023713233098292230862171572197825480985832045405379999991259275595871464331504230337300719038442362321608358925852182427132799778532135887242530460277420064478508243229821560626624120806951725859418174628770665769978672829043639664158199477460346085407894434650073951550917062757508013934240347740460761055128435882657519659025094600704571143970978438047690630478237269655880237051192096977012795787401905885466291787075512514645102713399998323392780629032282011535607330975291114209575387641420256459391650028913117018344543254633435176293776021890431888149931466208442012934549450821474236194580071002021336042232449675267356792829342892626903541382993269066494262859141683140000254941837092130349053591307754527750136533594496308504578950565016032553692342937676982315605979632781334510948936427157340200094016284652921831797860566051537434219079570042871399093180392039221243269303569684923870490086930973640700080669513839139812685834825280034943573845797579639794075363821599458640496767284411103111643143172849841080220909435227847840945767416705593612754221982496673542133267628296218081012670768479439376725785045036069522264477508922410996004906365900096769017293198043685881720592988436468946667658532428542239530462634001214120051027462571150692004470272484984849969091604268138880309286987100438367259287640474842139445606103979678387637145606767896371087928241134363214449181325268323037055798080798033889572330265548279229119294061343896178201441344046147582404137254172129021587481492391777005007997965949593831876078376106632976678972310106908175420006661012567979853062990579555135367293433852030779037145481521184502028896422305665022455791076953478195482935095040117347353445284489869432692620040202936922696203232603325099131394409022694664064921115517286893838586672428320347658469026880991814726634624426243108882554716552602582365428976898663748835024067804619623397010514683877323438367011660496673112641607855326896309226255127337097823287555786951224033571174961580303239085466333514240138273958458352164421886732907742030938110372520217118992853401778056545542315077392877337044041852360671743318966573507109201854919015947249889023225156632395840981101283646098891376979203270632636542954704494273251331711783977191139865199447016704458592787028537968949131596223644151712189880570053881795878906246367367309314025933228119299602643055067803201950298646285167131921691546246049320890122398417198220532718192896059212326214013394905099899049008676656450010382965322314494623181486618784416583539415851817454415818549319347558429027883598657522542578074987160115418327294740762641396846788301694118657786427758688025148145960787493937672186076579445501419885216441501898041104008841421684916626775301875975556098228342055256398114967981988639142608635616102365325311926469935933636466560445804398790136960340876901680409715670523930574543669405017514167464692252890809717030691248576977019836608627049245778300690739043484583647479083635675621928688034038057339463991015694194952531097763279910070987447070188552482892701078885969354864644161800763391133604586368075083761680302323190614613611413951061715321756890142473807626440290864693597364878856986754897436919725815065176743633460001128076105810630545745363450119677608907492063418659774830346237853015245772438648244860281524902900765263576793848711871998574120378284816285744292790243437763979645367234938720262663289204021038132006519910863091961557759020835714252474170684380243678416958979084599233303745718432821543321876813653267086020727341370675591618832636321656887555920657382660912977930324369406794363291746136065276584899453844931206071606862926696286277685917238347673444052659549758032498277615539273920774555480476230225686415157936629436741888531854698377038490501208477352611561208436764782756104290184168390385794114295083153211991549728310710648843449469713994464030051090283879271258229063610304379917661042684187590437864485638469221813364484358173358615698437406599934654363178790324860169278165229992530458881952206201475996235776417482639370285095351911042555413915148360454966833921596665565581069391124488458129508226790910086229484674282162412976572173629074996516627211457376699772064370965813030129522471822653969961143577848848962819357263725827116435091371496956947453737352763065413636035838854216744648802251291376062436040030706459613789467749756464400496267530218349634992139993981975793862167544777095740474301498797518338865358803047859081600666328450539081764960868843701562756346639524657383540078202422949868483125327237593193699595385477916270943167079216582441017707316174238021251486949990554987262975081883285925250348185385249885452036758368354143456732253266565086806500038701400110491318712744111229482336940507578784073432557633456729437394349794258269494879083874773879602979314127749865786011336794067834845099707812379593866271517972867729354468825248578389030661140463057987719612173858201299793649484916040199687937118477523514627854934631049063431212800881646852808621069423909768794577654572580944335127292587100906865857483344930780989169649368942921561269101519211275890940972974159825907263108303668764922088158916139598303586435840443475369979869741733843743923146277382371671052970286719945755737238747331588082570000964188579511952155171039316755679938609144152733917978806435907400002491829605360447538100087618042838404873042890630408163886390110254903038514628004755665960780641101389396178243699377119927677136123142337608197646871090219742357624755879694597195240753650934009376550623160470662548099062666274968723597555493134024709986078075256649434312749946813584651667050335934904602756501048025984859577015528686029788260220382413424014832965291926453989179783156089156567300068601652666900885966837582760308879784054311200794118326112355168220093507938120727482329251775388834876181068728864108444012168958970599805305849583374614351715221889776200253029751843816579321879265000553348044410826881749580451810465182751930479185553100393572732150865989748520965541862665273333404642448422018715527119205889874259560375402294197076598606858294225827689859763920430191873278911546251201730887407116070409524286253824072476751432660588076451200528420739521931864934710803551815562653002204063191640127052929657459783220118271132596480135567387832917550037566935552388141659400984393895892989623072427587842552906199012137163610506305976528207971043748120846243059730685810546007699629097380414977281061731297347293905511861781378874779413834497975955190107976668903302853820210763316424982798368054318432318113143153589603067113971073600420879195800796833395855436769454388758172145459281581581862902372406054477125746397599738244421844826106200811554081095388683588831003466309556723159273026242274539429153696121381794533126305284891856055431952446457909126403810897221864917805295463939566854412066618603705733572219977633242907911178952097184292338258625439601628286621054446071255142456703977959540669371043534842776407596222327458299365433694993198662107959082949134420637929489716290409665999823538679834718466840150665776791956724145559607682124801443946286803944829179645053348403380019074767117398959547506150574247786135411528334248716784695065749572924107348355851920402812397905418284707010794594792605323436889873929389333238273720650901694873295342497619453230015993561915311944315656638261186991005952666889299434455157154513377767999751689151310658116532609237176829257903290006578891340175249568566363750224613272851999291187513595960922238529261873642213012239108402847994202715520740397981857413296452227353112218217066215692289185464612790209512242703726882718429974324279928338899829535799293885076700681557036873028118173411664193197254009805182516127681587898745541488441358989923927585458384924575842475754852653761141962172672679179868178519756831450780045436012373517771216132303644511431992123949584156151357133628632623640777036293888283502174175108485574286524288542848508499253752202879715802285723974264160381434773975506290947916381855774580553700179752885154729472081127330816793949717358970980937351844810863438952412072050763957067847865929707369040893044060136884814401585738234685081135313897185909661834643651968986239177087064197666172349922802577173020453501544320249935543178507712010732532595453839681867384245031833661319228558278820734604082592622202872553593787915048914684673389503205387275501487563381688175778686224344084207782883178821663479183936467569267058424690399558261622880153771827998278810461750227807799207638609130570720391937894853690400160444708058005231607152944403364652568433786876020867732705353240984601105797663271183174692163210311232020567217660778776616677655397949708977566372967431392556690062345538776764153834339714872290841634316647484915797520248756105311953672356091353638216448887135113924752112334534117079322931892783903068942385820883725559217475681022613442760400027429494556449434417400671391047681440387674427804946579184114538167275511148680410124196454100661276200468891034666191615485761963016021200279251004234551966702839350075686123439078303961866187673937818284405583909281551005576466274485994778658304077108554288505739038189583654378121724918201850648593767445712088025861851048723192865981255354572741494417598857380383680745853531151671092540092011572066819316707806773019704942519523522698403504591906051588328225265351196835593478007207602798775939260413970312440790708697181355267168057767781726642772277969146120476365259533497223245848785597286973681919100918124352535639231931388936682305107415877397602208569613350466684796936871865035652086810133089890936930637316406824980537932328003924717916511305443386295208849207000023888756786858663725911301302034849037977650278320117732938156368312191339495024780648046757474809421162048585605366108972678773319922056065283157533302407810183064613884372979190802611645858504134139343650294317395248381575788075513600427638762446464100304854073191773019486033657826751194262641608431266741037878093833158118294128758612935895509763018263159126348172391045473044413790255921995855884577432885072563647063098567641261960155561564876699258262900841687918554510117361886048954289433383684315061613738300896547528878527183805935230250957331537277591443735332323766650322110844895588651908710029645284666303922924923251121363657200411003763155787354092519821625909364244976675644878613661855377187803837861009425280301555948883836408745442066078995538330521126463102418094095492379361641307796274420360815255923934607091197537497334054915714620782760554146481069020583049090349591866645320130681375037493508408700757524742983160405497131205243100467800510921000193956461925522538681647941084637830228303638498662035482332231483041816956966668337022896663893565371616897693692478350099195183362844739507144267828976380392636002947264425522306527105672334999257865732985509020800898057008598730073969520731174101069383476685356695211815644271648967149540663926557360124892972053311417495087441147961530126003453032749687811396750223583424494190573802639667924766455141068978119799003407473617671754321642150207689574865413588381432935339327494323102955392296856850862001874794674058720774214995976219880759842572002963387060911120511827146976657246888489860731980356943645027660185563053330746838468535271507453361180425887261711543427795128611134357342911701168675527344881689459236392349133809195966332567457873326464369597280225341491485743883560771044465085875935423282932375040928545307410949233112831127407063647096589411136212612057126292882696560050710484014101703469645656199908360020212253529408315869918537036959667682838960120887260116448908852322244875163996700738979097390124187951804203677296978488354205051014147444145227217670780212985652748659049497938841239725233107598610322335801565687087344077874494258722698135669487992630535036123331591845804654372600890543758139015248187690067530895056040902085412908589363591833423704913354235307061124067579296116841120598896786876388200880083401052654849288570178413521370789609918250293130719448582743956107052973305562869746575704139524481874504996306866998593431180893489821930684224663810195867477715646348230544856711380399457054000683503013558372483689342221137171231605965794235862158677482139816998041158688624920282839917230553626249394548213749393007934205941487327024000002302421900596392667301420968784231233897002676754957490357741525388709567213990151231188653255537613049275727041890629653142950466236758486274754862292330571077062175404564176033304843580571459525512572132238131432140289547313325902591358853118245031851986638323012841334730169299240270822530657137829653785286053368297465091425923436883968357946682160065421716298945485779853676579881120453522566255632900395180550352793691936221339249469389307892321065820520686076932744182992168674579729162963240005599877498925737384828077521374648683357044826693128197418775676645998955735427677460401636216169705142983080909371375714228977656093430039108350959875569011837597278804871292095109160997219911355403978664586654115545142252138065913896441766373582127130781104552731214204755749233467551894975417444249861209202678847597001780998812614797926015908370965282077820248491321913296787339263351736882985413382990961213459016164908955807819403776140916141295371109582752380391577674032617091350653891936641588873989827685611296039662985164122831506597399754564532931118513555944075008370878663532360875536294069441920382960376298866940702334955521616250369568534182087715615845409363645448430378659372743954769570161701938816789235648787783358840688809818908707212871156553291746799244688886434777815403957173305300751883418424144636288292661801859173233217618475482340432890707679251909751651494865391398303026155752755414988609658039129701479638657666441703232018860155750934445767155204097886020364187055949187626719406760179612221216474019644798106034813786998206435241484779616961895348985631702469025917641130963094652373938429372352862233649805088783447011282361681802446295613454815551675608064511057665531560755117556443738138043365184195728762226647467913718309482611714935132838991443791043341798537749480204590658438458304993593247110012530777576050836692428865217794760959736954265489225020214638662063839308034369945827964328997004074813646795055563601126642913084345031132408230012707264711672669158819345119337781365521862287714678393382480609149404842741653026690782866398678518103527005340080349048030244547937779851164807746218969088664457155785732201260573264388487647396149307275294536930589928528412861438285145152164798767669994495958419225580973881108642987035678123706776394440864782354831324850818739200805073775398858247820052936487199917872253974674828533948987874483581399668023546224690389012733524270537401824764811004183440070816298622552783127426623558811649865520043758731341316072393470458452909168167509614118363101795780825823677078443636241839776008735087023516517037589505945881085567677307612954381293008526954986874002160682675131132515561407150540163123442688699890293190217718359557694874476486113320215400453263258586451939227378569373023532382192122855751108899363912804860228948053826971860608853325133358708917253855777457920362548756625315147855469786635023011912596851204009784104622910902983856483590739447526601788333154519110792449471514714475529319614784931475659638340290369271890850285661946014334117221371173281057314846503110520340164501792133349104763471129487862391777970444616276702628463222662373352648743128516053651928357185869008667185565564274610014227649679151453643976077617714484824030667696650844419613428671876149188301304695861749049207116108180001249684058480530277487793735808510469805960234285498098494129820680045181632382510020119740256553932002860746652905424121678350238692019868856325747216581438125668836330258241825433650180437452140596484483541937845571024273223450104991451961008569599526803464092483066162657310275290343425201154928515429258547152174141790481650837885567466310010497379183655654369445639929744960565975371996086494236961945393506322321983395329704316549963529864653212267805830000314178050409571463337880995760021991709202077109292682456180166842648793060157194710267124815733443662735890220174416901931778219810967953562268407282011587353440910897509080964459842868320440670247201945504774531541919848975025391783994527782020348716377923965908803413389956926543439794373129162689268094263377208639986510716790484641269025153439523731023891161346270404666793357169360409215828890591105240536744652299480422457027997372614685383222040379336522602979743062709190219275232182382616253498582097572075420207760900969065734214834701422524982219598997912842513886249219774837117902206436843458268217586440965483675262437524029555645768485693455437182915549901771437761229818632412500751047217444339233057951508377010544709158260670445805122330834756546508894583468058486245650319194153631559200424589143526852836920128277257806219835447777498681264313823070807952598220282460388338991973194987552751504943402419579250664890498229581837439820876659434893191996728030776712953463057463297418768787886612617067237959826813449118722423483796718445184660865587833022426025184751009596720545202016122175640755611526432238528221246114104301635933480437703627580569383247097906532264240600113526548982714721745866647145667716643842169008040771578741463624913037872904131961945397626366413204697191888226361539713783858825788972883424314499407846771933007120173959373163662559961713977198603223471006552001405128069248255010984955835860694382910454719381533142212015666706118451983256445295889619477634267004271072785804633180967359330168048150032711171590634633270029629947656335650282038511347000825097846807940765652276692566255908558398619506368787502437678413785191551092574987552736429495277754568340020786235969711360074156180632324758734521887366015187821515035613271121460253919302372532262726657330224733165733909920875033689183099561845226410761535299931248336477563040058547505039393714463322807416296464144890078231178786921959608839640802265211274175967808045167029762434148042321543131633614998305688749581136503564698586499608195889990700375871753526786292856632812604437112642268846879880728614296616251255398798758624386308716549705578475442463916521163374055959464330331536875785647528992064551953148819165249472273923168195421947050228860112383888336553800696777079167941097279978155914818166541783385725589222999283763806912959243213023141335488111997839329536543909465242969993752202958558345577622403068582074504922095556577689639766149000918968601115414493499998674454294298284126823308359467874606661664397280224738651155690088071474848670825661722956758326661492020141570125866445761983738548268063949643527066030800326064372816966572206571911320681007640110083790489267381522981723070510898476884739998155611588336373793324836868096959468999697320559779544286746666218132627543569444561798356432178869201251534139531321130674951712332872698262886489751299556256470756992558634035361536132115985407244370011344002790588134755580070831509568449869017543197764958266397937635998644196195331444279182236897828709673263015556316028828451577595849512077095004122614296391733851486088207734081140147297746738351449220727976496454921436409750690959432761533897234459593946173023976930451332683241610212690310089659756054750038798462875440306643011662582914130503805912825343315345936435397177458325101920446481627193538834187814226045865102642104942588595238323542722379850256053484767118444541270594804156323978244363227309689317896369303395092336637146470857790499914885980235147898537804611171065621064225102821923875764001618453373165178722441777601402203274591736231818871186117783722762130778828669494508139299689133373720220168187736474364283234844787255523092257091492158339520867191997696523129678558294320044500688870625947544853387297087160396882814559890187362270935859905377935696617890814634036356967045913787059983043435883298182512940947300189995339759596946067425150588724021978156387375740578257942282900983894754607652813615242398232875349787022621577703528052899066037173795313621225677412511426958293905496284282918632075500177811703628880440224130637560149217357361832568591709048037658935938630554478020627691049510747368654067225228155480218141691426986009671073848026561682013571134812557573017346291978216976424908992694664563022975525165188135866046009311593562486472257707847802880091919020375323431676984766895989527163847880100284063769103261398867852474030138297195148950322629684019966864360057348078113378148726436522660553945027488971953549294328799705058163596207699599670355426339107050295832263135531819097163201936501219811785146108122154444552710530801800666935907398224319429204985632429264754118033865647419248291287289516232084042452434862791029905926292694542010651681138218819478848352461598941229956748771521862074207456339703364144473473469284580571852122241843847830207739074950205071327358316482162317764153581691947162805072198227109111846813145492050098899141118121568088299126883191795336449855934947824646863516908518422535489551720520493405527011468718432740452967260982824466399545174837404699021307338575937316278185893951213921856424885672764316346137009559748610773417541373950783697651167802468507525445917841459537235762921864069402478988903432442553150659387846977133306763806540481259564013395481723393836431179056335850351571860727016331514501496948775213232258839717861315440458556598929833727660458068624648547891295047328909213703002948653147252465149291281661031146419812135333684376827634906320416177194919180204430616515845660830275671160313024743939294842171438215505838810448514093480510557657409937748098194513840280602283391046443828104584008108493856388866153801013041092376605844713425167370933249209627143641480204198418834556796119871193634024993460908002579194940524008751432749135763990727034105948226717492424066233969780484504962617253643387893714568747073547302952359437841408574009231194013160992340266445896741191032558228629095998375769337333097150734057048164175880366109766921959472520444104546716356422897617152336649310661527504140535362662202402260502727889771380761618715568984652691215012211614718735118551581505459732868787676133452229469984023602506000486424523992812768710842971849872374487194355146224386685705969883846525719100815308995304868246351849686301190597510191147799854139763487454597445436673527566153128415334418815023849233967483204221150888360097190425635453264684319835703963643564896233370794298219577350718478219995340329209184399732682366628898896880656212904379932349466052468861744971666254293943578047321933834749876025052384568747154720661147814431252125156203784098838130390152728141207781496586945699234063324703197034702247962371241206270285758059093062753597656961402634606407019623784827265712860474924609553488451140985711953395754484024143901040603924302096086571184620434423719455736058912217313629669564871845689869391484804237247468905875215708770438046019326580828565112452964872726013682237857982331218451559704298330330775236249642020705183703473417903183282944142527047059464624142971360166902160100957542085811952131841873749088018222191268759801037180287835374805633499362186888360872595592640363446126385669042209994250537927278402412389251415893994348882687229581003938917809532851263381857053456984148731811964251125573538271619546149050819698287265293408580197288829822286227130070195447004760691775287076078440151625312680727906741879795927758632212929514622629211164174709363774343813081652723402458623396485545543870940914053397564176846100888161116550237883345485881119985727469314289864877480337709848234175455814456296418784542805516658511524544812402951879208404325973584797072194904435931945935862732004250346841805530050585993567346918674065014242165937380286730933593281346455327382211624798990357725375892448899671682577764671788605787022046172042820126491837149753048236372428959453417591101673912065660854480213571322310235316464196840840886329090519880492594274245801618100624863453336547846924179425807028233272318507058747627639037587694587007780889214834712815814671002315991126918202473062139079327105397460408812257125366270548875952586416004790749038720916305831896962746650994575161509819244789459389932065748926048213903602042079781400180707765030670227265039991274114678806430720281686228036493283606795038841449312866459179041334297164217355328890483007803243872842142129088385467040381925062346707869020582220593132947278621300568140635212054708707673892503360517858546572065597645357733099913364706144803540499399542933559676401699578498358315377981907142775889547538712489256478945935344852546534377799015599585005028595040897513807335467448674387019029304502670468523837618114041723623053647627292645524731926531388048935174003915943995871939441716876315778445946383411899147147716590518030312858298212996684780934120077549459307514187136610233981815494207441972107894349466857430008867910231666529615522114634111968386004959406154937030204069167833404959496171513934979424703544795619203569217404813888088655029420662745480379253694578649922445693022563268250260476065819686958941598774062273961231159981647931499902172397120404645037658916441358646626088288096363113320651496073397427054185164567601511678610471497098060665493998089873289508926355419899083165025497932296840780685898431636395226402281548033224680172480543088084829253963046744551419587037268290947312826467744286286483785107877550065738346390932381138145684554604262152918822787141597681577045989607004780572480796545040861893198440882920237021713143671135510691973254583331824828142038327850383220615707142189320076998223637956554225166590490480178654989170590123880413602431551626017663380333837837283545218829929900362487751817543466408276515982715211499412403095229221667166745812474690797278428218995318166427449574868374230764428680774252145166097697721899989605394390576426668615825022263518689113284579579069814770073560011749148914658760168769388461833810302145344423232484511449404304674159006987122388677362986869421709962691431302802467645900134091765947675616308366229618737097872793845886102287033964160450460973087836477857157916041246439100668840951868887977450327810045309611718117627908616217650930034966993119317945566524123961802504592929201248771093135967924312464616738865861044959223037967719103961300799638420117978465928219314166233214387619616088479021655222415182371750178956891533997047368870935335004214427834360864337763553158533410000328397999838730382041684722081990341439965918452631525823187958038743311506385254314405803759695302727568947761667785747470999719442646049462651153166553897634611303449881591038493316798243285994981743472799328201449553579401819659483176447001942774302535468834916513055970891419174223406170591390715417418514741750934721468756744539360810606695201553214356903425131028533406934052930863729358117869986353969532977749253133701138220828497626931393497419781353069605251929926116022062810357662667225547946247640538692958866030339392624536401117375852427203512980345216700343856482811260892846254585161862411193169854658468604973708227743828640132637052869876463086333787852515973364837435702525360904391294902942755128508620745298696921469147443009956382020352015338252293549690174984789850009281897428296146060089435728240161016149377388711591564530520638294103347472013293807484563494651470018576892212785769518922121074026513241750647089975513889754594113108609464702621891581291212282121237543404395848804060276386033003731351140602188461818997083992337898403828103696744238069271221379715196201352865454551898556089140583704123837151191749753487286342182218358440397401217400758851777538170863617061014608722989643500338089750681203035150709047889695209251356801261753180618394200411220682094068405571057397333380165678041175705621853582518644887181009012730247570360665949170140293756930807247283699099579628189043122510709406072250206182331654349875085403991468151614677378304420730446120484931864770895206170467913519369649698683195302140624634338588759341336167406063844121907146311899932560732630714953306841029995063152509792425734259574033679833436744734689053312000587898475420404486554968439961737510678150753621387496401202209881839066612161101642198540394644759546649801098409671334518648645106274914781745959086898734707645169567197217129859499205433679763178362736525768050732830883747919546920557335152739940447602582227656360424758912676258658737880841169366739672954678347833734476787080245965288602631026088352773184805815857283591275058938835149624797882950324653701610557789047164607681764209250916245623473564352685889009473681654942881106007603804584230893505821179783715925068406975163539893255226049017166440572014193883695787841412389208040246139449144556575148504667569411519700514750796997590369050262933779328108730227908468625757386041354643630231922770693923928543623051624392600864352792040761392280298044965485770168188754910240104361777451181328733684329037105462230393943242062802798434662780642261112328087480393907988374086150680043545805390712672925260320464442986663667717413933773657449459488020093945776477680130168037412336665030480602844702046108485877255650786352024943559192533456754248749951378613622497185648239188991480035200987897279988517462688078763224856401774289169436223630846533805103042017227804268490510174886181040334810027116361039408407350878170566946601506754770925647281541371932222994506587284578052418140910707582493635275869012350994131539810495083908640771495110399155895585987653901155286002624543015936697425114104724455179891014652003455660923290489056374631187732123345716359939064083523232836495827450488172760479893509729964722619229317052077067296178138498148916847040018352859544703005331217236547766246796753129760103902252628428966872487714013836502319817769663794147184140729786657030841193015933804547286546781679534954411057672694070275372319751293660799576408570204089331030645106306139448081095354573045420604784846546060940511403488284910466158594532373260279496987481147499258464391964205241740895515496310986666814621328974746347766181063660173833907964829359370569633841106524595825928748864921154073539503401528573020048130774328878311168584965710270355028085877185606043335294189128967599188628260949946751633857648140240346765060111214530346772960023129825047101396612979091596336475281216736028219040273587130378942830159261112177698184808896660498297734523770310624231118285332275149291161754083177782731485934318816311677731558382366322194723298609058526213667678454590006384658515539622199018732545534037291047445786393824296774907314488519436542040333025271547847531095767988890501951641201582668942657737428301972159289202318390862836991850430702189189140476706657648596841448465758573192646318976120628284371893612585925336618262125680537952030510268561828483871425944046228418696176820568303194126325628598607049725779813059182521849464351390512520784799856165430529067235225506900824750546899576315554501480493181738409674294669889176528495363547723950574507902434030080023910454586785330272053098996249179789968413899538884300798767493580793990135023400929949866027095086347592923255142330545563504373860430365323267289430641171931795983789035354199358844584044619403164168137216502743699579010762720555913033520149056846505488190130092080205759889290693995171008663238828965196330034616828577133933655091608268345647879953586574416253548663592090538506579273663992160882081240305654504749902005607156885414140480002723432271010651326981998736797593415374442843603360548042602799637390633166027863915747125794427824136874978473747503843601247330774033410213041148042523654751902880736805188657954657656979576536914677989488892640887989558245918935599390089737549918085965918954492769044219492952922744961827835276031553421537817253079047672013030208258762815123235118622725821797689020613877321873805672254388785821174498972234614035570978770551457880456134129376623897764496371714065678676608891088479235604055408743963441508652255693724281405625485252286172542569573001615402993355945054827329632941595377452050746398234148923757966700188862022813331615818693767337521685454572135145810010180273222161003335124847331291563902439983950566168210219929428183183062464031316371642038905577491502656072213141899601239960024268644269071252504126137002139905633908989438647172790399043599187648293351053158318531602560709089829286011559309760147274081312794542471506590353877606818276612983263211344448223177174556818352067805094166411246803577208122590821604856687981524413002191659563441768113086656855990058831123045903678711066229539732633439173839131584899671544133524558407616047709042956003238096069429279123705393320033993458604456968058883351733588057563352837814717266918477765440249564519044154052266846655102238485613680701933222954701413919259213871360609396233483957976294027111628453125226658067013883909923853998292324605572231678690427079781139340636880431219699508480697212422284620388598449954868901910623252687974126705729639234583045527036134656652504046153259185674496435814893043855262649408202959699841928233999318109344793461022437574918874133036525191692440392286372906480510602462891040942438899333563100697698024778243050173536187984011203388439369834610393969551947480249489307434195404639740875648194882094845614038943019023145053108597785998809192884552592739486524441560497678262646150892474625894717053878088433168004498645090542139887574217855783939923909283458595134250408404067991329205572164934895379188284781151478413071942928972785635895053529162620337895991899013317502650362425226231847265121496428026129503350851949980770354506065603308747646180317549637226344069573901990256877325677794052040900138393876251857004883077173415534003250639126143216218644987266331799777288959217798583133067042254818477751693950640207603094606178226928249118820430851102160575896346023152370480083031605965243571842173514229107128266444039705532584015723923891127115467451925931985521127283767653573899601852090213492335874685050135272059752096791459962883794218029970822924764030004782690911536719970249506620539480075858575365337625733291145543036502217406060787154719858784470886155182474600486843518473968444435222657083179636557855152620507872173303572813982560516808089355781667792419856628469667777458670662553181798850569795577666916767767241852102391627606399564530265163328574220297963411239559987451695762782764200229108945705571816613410394959466909031232915086249567285827939453483589706190080772956327623596733453244253091262038942312793909772967481236047095319744652227799721587933572031506059490546765630674808348229934264815275275068309089460812120469807824493682223655306443532831155298205556098590040812867896244249091775552197885786038168908083912951367361831962241674802351484598971437595025483986372257752945809350018867496943916331065902628236013822923384554590225743461761618080158497662984296490285309431838845176536132631621009176623293507255214642502411749277339229085544257822928913384685387819507840878335780469891548607471511186631216501606079459157347281200835247533142747111783299139560446604511533446426410566999379325225488390951920425571124559127819740790104807009242985719501468746357812160869649074950201862661624020280022221955654625623174716528224377340598682190535045977136916127486992850936522817827755028064921208850705465381581296233160133177631316074593252311171741143361099448458306049417351812367550163478807246702970253230018458043848657211896593324095796253514229597975205171757227372284599988581709934373652646385430669696931351394228747279760436545223111299551919776067442565950236442077454593884461771994313420953164897916928775474273019933995866862997751538983153447817195666930009844343166751097966189881306047879152660268934102526288387921370057340574979366988135189354153633104243302157394946032532493237474827013344682883191399303843658716385366465233381645474002750175005601990396787231703773410130937151025749765542614895186789390261540788362296384266965795852863739297394703820619375968616295197018853430373537804099574677513976070285776104288215450450421033871402332375376139432302646741169319910899548659950386434544022087380045358704228785456206247308537533249351086202052687504908923502300227822121411208766487962894051061799974857065276868167947550557663558734377718746983616456427301163541011222161239105327168465473564650571716607323277098727880049562096724120629812165659910427852083906571042433010834504934766009835113077560421418666004859437569901379239761150672195672769687484100470185405426902084793428654012137770441347240492471965295558868010000812487817358593358119837090807814461844450294065937572043468921631353491757226368459472788582257659595040993553534284578486094830685318514628677959586698159870282253126833319896504360615102624440497700371091029644975465988495639737201846178418991086496986840941761022751690289113110371731935515746498493377493600419988769432846412500766486236040927647708205024862986984741709748255757433099296692163041977106689777288309956423984061878885376302643604572358798059453608348854567253595553824082091378147952298378378274244858088253762598538248610127373157014328005210423359413224024765562090964999221726910737063828621457261162253795067117459995961294783773204348510082935901409751125460385117811950584003458369966049647014684799138822834696461378753090884879540442010405352535962173468167360940608843866121020959102017348108208891179700492311902907223966480258995538004224219243443991931494064258095509610980806307645998209759768737370765305209783050705228476627089625811729291646301443871090245273071792137620930281350148744427556288250084864974748038793993587566875796381438062841200115368749097030525794336088062415043749152035507158931752565457957315344103902160555896342696446905664381380211589341417307887025885452259592511260056136240588227211482609640372830533521203617916461348969966111362488245805012008464846939064450917951989709519840625930954316703883111744199907706469168698208192986569373354740268273983977141865087918796489524374308532421338591349938212722898008624907852764514641433512173961223163658300395325709706252877106286141144167196724520732676487775351229474726532503536408891977161468397363343526365135443417317836524719731281654004234768504806804604014627103800630518516063940255615627680213563519287276994330430824402463850083268012854676479150865779073992419572820018595883025367141981226857677941638322375635233759551152725258400687501897928111235746489749140946147194190300366787949692193291718131410093707591471662136101268164526702471714778787788492312016538945899670792007211467185787538722897760721809186050854410898145844786467634603980495008464464417787853587166646247780360821319682818069542411393568763487628845827812848072248965209092084833274200628326733533372931002945771401054376414161120806911677044065891571444604462126367284581562647695353238492616970941251364128109612986866849075606439225213430294048177519540621895423641455801907085019064175596746118152043104871672315296898112158646220764256656540912590255109929511196079265631374062774007770244725871086504149160810567418226239462993119391912144000304873309749615181088865770741390080762867579167063477252048650247451589999837269256439544774132991982894787055602729622244253452154158390508770182684659177184294362090686104535347804601514090130537452677331758509112625700157727314528654724859899524639486697395157569098944059200666085110746661870843222831349993397867002784422852109060033279556613865707701414926483692546156396220977714204483692685879596664500886228451012634352705791661086895806593422278055112111148757340067478600193453368322972411005519621685763414569411529935220306133523237532014259245710320404126695694515006328899501816571387299272302527675225085420041115215439776049329426881766181342311839037706813008682884268929577650011682041431259522749562079329898809427138658690634226737299741293567594194794079910128631625078065232802959164228738032269617697243815185305916827199113312691763472551111687832734929619902520192826554477894409927912426002788340679587056183454582018312981485394475602108413722617563697915191493570778871480357677460789928909256426215631166767464966557415492397155573538882666108594585112740522953810645242158457813542338281911195165549930824580378854411176506123483748828022039809128095721157422847927149964216210121456735879045225039149594854292125597349052997662247757228954238686008168007708212831290009192855445056262982654221425657361414431248218539776426468109840772484421443626452959979273972766824190902250506908107270728175827230377333050423246262241915249254135878357780018171611429615542856365255952592708029137862720370761718771149287074099573305700055771222383620881319726847337715840470053002990157863394571235422831596672463747759939413729707006188076984462265286126605782092704900066419082232775839262103897610485719269009730578814385141717531374140204413465270291606796261753489049635916964267342223507680753690847842465697375544511264759673468944642638697059309596040687663082557602194425848695104079904988651241774701737853936307296791946697495178828241703087829112211272038502568490184709252393531248781954287701203369391134457210393978942640934254151667456315437807246926457512209661208673027390950749043223445927843554528847451669418086718332852271594089249429573235617113153010733323235680767245818265842715898061126926611013692685442500953607267146971648488964789332583067993772419444559509309156085183982454767753677692350379936543716441085764944642345571650798146314791475683020527688583184447460408739820077497922742014841205879815258430128360539678314483231851085889839425299046826514332570195216295124519691261855698557884387843747691945327141082643172043488426697391121184118432329938461963471625352871862579406137726531447612137825662693503748441135827613691113643485685373433457725262755542222236449586969432047593587090630782522778510636995325366143106899480625481020598499228944153151764046468120445390343352571830920722504908393185356218730853290085852173220709782706802785933502872398808931101907985244549846053940849539826663098983858356655430677425248866324537713245060072759137150468476654480234819616347622840866042168653443625434184766271435372531770448396429635307931918701594013413447096976396564420550701334786898691519099624446404720677143770501492400529243655167284427969620407507877358515037990780745563043445095889615203952322790301765356508171004275590730994168447059918160519693526725828979465707741220108992768098326393487651722018990472875953421093382594685100475782431646254261982803295502844273676171005888119884486244868518369679887283036920541041693393709767812735264337928710022084244850741972633067952082486565857538555244903561295560497535343206796755166492793530681708734528528547393816833305232628628303343448002183196316337352454716381895709014538360144429184087233264298234430942043459693488156535725977169724329410670599253105704889216940475389097198530145619577147790600833150727063183784898155218145098921458005253322337372179592813492936946918007853639717318229584016304385702819132041333828116707313674920496117418669003373407390067561997333875946853283053733354557385367293382598373960245728155860040757030480982843726010999587206519519570722151292132012974953208634919804590697588741959999990567172496214892011165408035023328256463684638630776274549245229478843873290332765271727735709736804077715800889096460320781275180372830135255938604721726360496335705900897248182143576913850466229862115608129668057883960816275138433538541066470307629072353254064259992544615623662107375194881423460264531252621842656043122462692380481327513606985849565876629912323175083793728797571670434651381180412082565305950701534728394841073668326192858831511672121285515415638459323289511346227850867957416403311470087466958683344688500138657385688356478354345188408579514199813010766952793502104365508751941311211755157736480763618584596820612090370318833136018608073875366773281135010775225273551710243562292470008198366526852953438748673448970433414867505082099817463357222440889084852434834304979931802803618745153327896868845235873505942932494619018495694129841287987484863592902716429262423801976601107102354016165596675645263886723915606354046801740170123888781604260775496987537416383708647502881992369933739316588991298303052179351077388140534413507819107724284093188969905594318406685211041986640185070517248730807515373131892973987330472539989361788284686126241608392596679979780841464998672571233983197040850856162523794717719621795274313765721784563202306334511622809786166654958483405753879140205799042160334065955107660868575829230952909526629364823384224226394932332519464619224393320262605848502581542940491896668796056325389835948141489365200505768757309767330598283786580935338686961090494029693671783430462565491201773446309332369505656787818746776894997172582805380927242684549184491283707349645966377975769152078595619609786870983882696754620127601087238608199218798026068118609938856727911058549809005071180821336419912994481971871158081754427797980788789980843275813359323282128205888149142166088110080557333546503698942126826901685302292575906886189554136751266867286962102995769009854339038516081920986717329579120504122890510494800725821190211271751960727833273639695028550372461777325757882776508120545273310108989726378487782962503113301484523707968417890253867525854059828088726040404016771559079981533319975733014737760091098397113638032257399069757899051303482952831514504848321046993786570365532918235182238439974450621449977654103323460093922409899794720085667027889216149931007588804528591011864169187555104220370257745512725051771405725091867158739167020895495767827296233660938774824990185422820015334444812493687113536408647015075955821503387738329875370451379930230134097812331180933057468932761151018592315034479485206079451204244618529961285473498831930132577090781998428599096259864689838182114665201027796644604092953983750818330481506277507380711771824281620801839734784685670556906344017327594945011369741100140141308445019151749270590454656451860063934723893941847291022732155745493148597943112556540222774807117289925065556961173244508016221017546556469685228749852320631580493231804033910345497528252216810924274866100276901251436960159235048386869159651584449622440216830747529654322539086856888181701338448241744355650954084001809170734367874023888104927441106793877737292500943655018444652570322311963843650063538801422299490781720282775473164478449543056873460003196744119872828624498611682541199019836041340154571359901817483417571194280527640209057023507913016983703694431439216710916697504935692687691919878536947558804196824951515333381485282560021656554984450564761019683858563316191736994174342591919047454326327749413998488369436508276201365388510181282361882858584764849794624880550411009726963825075823876888990677102020657834723195011823595735963073924810767660135866974051458160401707141662183660620708629809539895753217097914511013771995868209201268250025464431882013177958027036537585878188662009807528950091784327772990689262710247595992312702567498516093143057758214462729485710351472619311458066951024519741552787962124747631698056865408332358861104071890520732061649360046550089532322049630672186002938774567568990771999842143456576152557782304229093673710096249280360086521581549966196280086269665523894775087182815130884169468540653208616700227670190093638629460429167259532859754215155833828900423188065767601190171575759994668551992843306267189997280583427698924152240806328428928027373393158192993633030584909158237777752979438963142464129651998595992412764464467733114058410388463326272279612302219792192453617590776740979745068148281731746204121878436366846519628621690453228701886090718309228677731004386224973627016468435422841495180971352815421016919419695630417214931749201497598671387957589804597399190754744608514064127679755456515137509844406006826699190315862246506624227285495263749525787192058297026032221417274363374720434240470358958763371735046741222711236090487645351827183791182827202273053785384348154036450570481809803668728746642023199399936218470893763832416188805306779685543226518887982225290372016080749521881514044970186703681971937304366710935172827868364295224980239507649595460333840753153978086022174571099665303675993461972439507390856121192430163102734652441594330281381347132065450618347268912787106341524476434411351579353299691523111769932146417158757499415202457559592140159343174072285119061020091486021294858804210377924149986147365454680674941545655514260737114676218331138497402071642604841778229125888624675802743292910653310965225812685843477800930163350758655689775523475436198340121273570427613571878746219171749613221504039670591425350323643318939894709476654343471600927283509240636827713154385649754463221148438217485448757706842972425485532507953435044856890656946378947509557965481657062131262123637417100027184520535469817602917238841337064117081358695288412280108128020197572305977935658688709906194415430045218465953588869793430046429041307638978529322515751039437822412134221996421577109171123014153431310368009904163897680014960554978062604687872616016219059010619758327912107669947392826047379758062433678859536275643170319088873419136033170604648652648249408812228443581292918318131386766275508780095641936629771626455307226495962540561074521713333251631852465142265065591284583095262629728217672955583733110326984926208648474648245486303645312567339216600589320353556901379568139570759182441116327860569027546376008183084749071383599563689441073598981824795704294705478591482943298054267827501393735586240117530458696673096937537855880914627053811559366242814027298131783701322655602012235422893908409823566052174247504148484891740436741071946696238655513599879127430418275265721329299371717016004009887828991755036827045760381132115270093523711288548033277268740156847289392487697254528383222036653287710286825653752726836272533405496427010960883311044815957990534232270918906857458593964919706920135657347139992111263706268829832678257952123671631355743642930602379606448679762405453788939250239898222730852919075186877906881766937358672802058823479576561815396841648873700696159474472461534253905675189509738020442778072379413193885635099947331170325141635626884629462808231037140625369226425649002325912582250381451174670035234806751041196739869275228956094267296168558086392960024156490409439431279916543222471699212256462790339225305926893172023527298936768276980814924414300188080816372334817342179229984612317544927369479053829987871330580413930604888823554309631394886388732726199159211801341805351233013984577476839632772142586711610966595183459598681280338832473146560346942826437245302861923657524236968486585203566142118768629153571460235689272967724887711048766871946600056173289234261635597986095526764520299572109478459848477638395741633377350906146868452072283541238587588369575083194800653942994798298135322021272069436095159707483024322828726272758944472193658188030927898008264148924833241337674114882921329314912239473166006869176223780106893855990586197314630101220124127841779016924591425116839736322528107807934854175003135835865609769409355097766606956738679974024500011397591806433930612609883882353911113566595706771852021071649450308668851656823021590533314154202928218697829237241125862755749225723221295741478220693201166270073617158123344819351132341979082703158590591723320092697825406802099063516911650605075012432149766052109715499859986169170984210285440033454545408560334419348407441626934596805689650123520491214368354379521782347352051313160823832909813983525630630333760827772810994812681325364461892731103439923439350315159607315030764875820678237525542897471675221251126811837995424876109983496026337547267776819463035414134831731718154592256766509414795720604261785244135310205195944532437612301109784190735186196684420214811000300564412812745379068163605138262953594561200529935444498588418221439387519815441776511236953363957007488970712373631565503735804290763529316781735759630481247517793895510261097305613403895535521055277098452447509693472435731330298000955329431561511825156068721935696916639206741191622851014968403076121900160578435248982281296960016566701079492063218887689157905499732098051832615358670602297111459571949558413506407637146834699792849355136396228032072716192203379353465160777109757733999275218529870753976405412144170577117298505766840314255102699443147888200040790652878913047929918757202900544717324442309758704113537843017047158182218961859832503511350192106411223940109000734031029134230038210466161247731418273992761515718793293629314250094341211776119928166142832698486713556822339227156999595183612364638687479756095212732786990305715685271900230846491040216996200952811939274306277611214777574205351785738982188431217272440893563200313581923857210211804903150539831305792900155553729669337767178077472791444791381893477071428475323985241484101702554098608336971577078028881794062705858951582388475928066587487115845159165965191039807065144380032680772455515262820098891776732731805055197796971548024442069826527471132924352311337293244056554714984261900710756143557029258989149543870318364349553971729099552989739596430073476666132488541572733405968087398750334155149314612805345117413831532541076342042472549620524921198785021080949862040494794497295469075738782341603394029180154346338785464935216008717243871219029349511277124044641477871665533719364801301928138255004306094251573189768560440694194915765846676392081803613886437813102453524768229499269055233378761357913464988623503273207054926844266150557854294127850863875990716800767929462399150198585486220054109793219066186294012817521441444162606321109264831031550830958876727779451810395275378482180395727737504296654973218682191623761648753984276805859189903041613613904691607137206352062177342881453305692030721127832460238325085430443666830059596118869339184364098815798557190766011264312235593289796622146292273374664729946616660689633662321562671968480894976502116290241828439561144311483286416967561582309536085976901030769893944416333960752212269781854847192193351841326946329334950311738033834525938126224842855714398472444484268015870784534131810798298975004178634094122855691569567491532154103733346407751134260282513351413042826668263082382586034010308541233660212305642922265677421870237444494343268187095772010456136250090073830257624508029548423766131631061713886675245785642911030865883987043704099268790602164635380471443606345464435634681250284578761982523793443342521013757233298236733927931556763867086313016944899435035074266663581561410697700520183647053277163167782076208526662130059454468236642661220487045961824061164487975970085333272393733624172070235388982832749877623946628262415228332796619514037967170687650441163773137623141001182522172464256403838835549665180872668251810428449160220360089914823403136140841118596321025544083052202767450305777451852101857715218790605162777645150899154098328551618053647867608083646647160477594757222044605470579170642173049603324155991693436839752086523264552906218795751088509063502895024560002475517738403908689720300286227703598654380406245808395068935717220265985207414466845113681390776322301871895834298369454388028885424742058222070728153035238778964457151661372456476552435224965090443166162293046149005345746809346862951035370326684618587221644196391926485733629072219984448772825157544778702960536349874329047983152331914373575863676075426535152366687644262192389462599110313796498804081422967556628026882514304149083348800557438128588721919748439121597210056777186538029905032372566532629096190747428509225694212437802868416553338305143633951171910936886732886572817048525202170735517491158836659005922911431251744927795211417259338447750339517816640151258963202813763600077822870874582411406310312474092027030129839219335592818656433895617293871029150998567521933130785770960520860109632197536304435739666500669883036321879602504773115914505046643550287098917775983787596616501520640104497367373057976981479307358228580803939080969624480172961352782586083485650353308598704560825794197842247308828329848432626955300674334400837662201452505242739781244535257147536768405188033251723199554246285108413296331365435442716880014946323220750926196155240106355175397159848171372548478213463682350252193886547525629647558158704048398376553469665736322207824684495340916840912305721636478263847841292243619596813323798922176150112300319399741260913809616194000650800319301818358395984547609490749308160072386806026292586477468906379227487859099963810978360386178962469725055621015081904592368431276696610382654300725360518498956846126471593388223717556068224397201923067581773854134028682035734701393270249043424296332331755739344884229669272329885687505970981234714831084933058931474626560697934242821701024512350604554459691249604244631402526359380377680719894262034995695488331993223761789978275406544647795848634688028868938501585292257946886022143187111603084208092279335504006582548857547135276444353295794526661168639456816060264935180583467234954049585035833267951017525986002436437151954411487226992289531517092415295671230686122272216851915817556092721265806212124025063448291664999612413551819113813905885321621798857983984310332496279699251639159288197988631638289351502925821990172172491863674012401114546846741627397784921062213274824725093280947656551689018581507304623000294364969745931523247980731182593139953507383916112128145481296383842610168726515814666756031116952164901991906165989538472032512840998248838679374925919255627998474707355361590883773562286939911840110054250773856206667072163920871760625420801792373366868122622698854924089106779917143605419685451494648285328948982350694938074412522620308838393436674792602460798816008595353736838937120946767283096562424829954089162876768567501417473258076233809047207678617258294813806405116936060296380523178190189717298471209535782499785100838580973749181682987511859635635563614913829500418265582763330868026588358379606849580779035949089805651180486547501825246691304814466039545285674404685019030724855802973920123991726743128771779586591850181056345959971277194751553491398630098360600491242689615977743183917330773074072517929671710690847685836667755829671447535334620802941878010348496017814810852417284297754228116207469871401705668753802684975203096921182817781271032937996965441775834698459512535203348850693348137006307630140950557694290942154109464685734049807126212046275514043997383846232026278546603394547940693888253884520018989763729136799592004594214218573864338429497244631495664817416368192471571709194984215602499421407383324132596785696892650575094156530211375146755914706723977340826153157311179865282668650461646266556439263942114652530535236681455598832210371290418614233732727317912350910094147157568487614788570782698769914366404527393565409870874286972741239475344145100540620339357208615647448201890117508221475522662456135271411165557001303279498126170195360548285787289716460688810174302859206816952248176405933091089952206253108372598502874650392683297657282019159577624549104801860305720472008974432371681455355607331003985929199095610954086263197375321891198494065855834866202914377328051700074304385967188666008422475177180025130559545272763810783619486794399599822889588978177056405006608550171096854681748688861405438409353299277150230390433403770087705692356338482514041521139489778910715680418970770030119004833293881393020219468827576219261562083115284174447151687812864522091035544681070557923966565298894276381502106679293335184725404001867485897602468338755368414818074016861457285586697493342128636026244168637241580444374744230602020867285827981263155760805825940859716869150657742346493063943313298444160564843058094943329011398568026335409987070270254717085158370718147733125970356338866095217920865898004728757431867203406109931642038723989155608723369687657269271938488721567145466349538928687085170152743969020113803482122575068696531155077191342175903095223297375507637985050049893857524591564093379060004250784233478097165675566654120907713118004082797477391540337050975864811406071505977365240364531107662025396632535358024547352400088935453283199482034359899508799587599322225318394795875339549487663013817707213943951274957329208180946617864025384760346185354158712284244474590340036958209186286067131939504736163540931775155935587843371106651830296261890537117530877277661572896383476190602529866414961832660975326671797104851262825232017058534161311002211547300361998393841819496899763692975972343406849378151849183124706527557461629433632708115213122646532590052673815111052708677878972352764415323530278147068096151635776670606156024535940858228528922707741627459269671953942267576638859823128836212635728794869315788747473078622484176559067309407589276238922515095374963094500467343653828734190438936039636609885241615166084936052039825229178614725699502143240319282454581605688586890328472903568685051993048241604481272040877623462515065194185583783941166710694432160573083290650292022595927257902149473835320214494844503657335876668620687368180271748438578606823928762005714344814769771912883760222862497488346694760238239429691900098205214229578118835835447782160908341258354266467545893253340097904285716415155439601755192757714571604633674221002478138799847003437152324056753742761197843298323684427499207708436633385399811566481903347239740862677829944269788453506246386909667278312750368491819755162486441333839630343449283027325720327363002197110652976041207233062392229151858918003537028379519630009247247106454811192192626019318181188386064836803861831787550804226789927640354432526321472847169149250657201795657711405350165779735569632835173916511164577453985212958986110762906732019787067105093706552078058336563120930341454224572988293223300881500877464834728948093117942423610149915887229125433729272571590097394309499875632035106142946605368851470027798053261123999008471534291329799105028986304691729711986407841523614782273474397999663487018678284392407671456080655984510126316062107349063739464003711616934266799114669781319679772352989230230515481302551047848668722590541773611225252462147802870296640915431861529908908371417657394006152426567126810332101345773690571876790307951440949264882868274312366164917525046579507708206462720273452444325402975798937347794932357554022692864525709414194035916596350712215175730461320557462306010336895617484255463571415838265307943205223728416891576429200962720789092793697183279833396418153088242717202524073995088989486827598965621577034737362321823003667728900772403875923125743577845738286170466979532636943307142912634092682574760575020168024413981672848353322610514279922689095720781547140325391264499524023958472264833173348850332922917633466525413749364618903623869874947820093569239971035235743104256009693757016543332388984664524670104017673954818057097079693449963746415251941617623971431090330528874209434682803308695828492977876253056728794335031323624087686195519672548761155524448831453054496746035549563358866099805781005189483085821758713911218578056186287195482743917229001112528363727636308574232955747514570853616577335257892619808229833945421275238966233767194175640649835777175085179570052722926234060387836973452394359626286883643248142296239897004170086785993991643494881472531260296768646926768907849980468476162762335810433202578770652048149187112666851806333495508041480170930843612465658069616893208766619450240141644358658822047350474908850977618754719089029846942171919993828714042866407439102570898182224390474263445781714882619341014908186628009371380804436657193668268437124482735187390644129192749610242183223499696584066854440609492020257863065064792458268410269669756854945405385064715024373688828289293330900024368838055532941341657824372448508924673912631708879403144398842191625535371634724638403231791101635626922742459950301012711326331972654252646652607519493554461214392929025409280110234167031719474168957289096912165857358277409515730989166473037796461312416031924106379167173488410305337730642894436005064834743631200090532026149780466490283637262138677866781968851530077693720855645254814391042222391599058088064158367224268229331329655192888496514602078669229634577877575916637620025528917303353294026648910231947741571706747616735025259594445289430693464271661990570330105724817742816976519001168740449490477419446853296177294379280360164485597012627920877882794591026303453299113879106752506360663373890046083673345139419662746659390249129550749485210148006531073232493553429227012727311090957851457674764756319767980018832122090515037257965771124172025243659326196845556479516766473845690089997599766830379071089271653626661893872473150916424850299476437699653191789602216511436865034692552763548648574685082516487827457231895296475080429277455622772438641851125480574922427621306439338900941484612074442387164656666201232785848582251733263120621152605043850410580972507319399403567151753226462292863511823633228434563737333271739473664792397725012430791470535436389910262849778911028830535412373514944414868552115463779977571884142505469678181834872695195421205019403172130984267480123087204037449823093863404384325120574217238781191700492606152167372743044679724369670311536040296990015440580994068918392806155954702880147926026897416545130668480454306889107233661696500902864089168611782297959166226454400781911063514585970748014577508369616657933372685211512498645755205383706315596078803330738100223990927352618979981004675745442483784027881630238304484269950718857989945494098786253506907393291865576575752926831722901841889610899627903866642153308687996685341851569904908066761077507635662529532089335171523377264229006652406519769260840531723765161277503022769942461553756640150520456980472754019032746065662015033902758983178478608428226390971855143930429965845194969930815688005435724848742791530026095432074361313632433408584581390852089178465876485552506515082821447183770745567083851038395969529073136386610977570940659336199408976016635789275563780767453811574888810000398805976234810396312292040222062852238878638565321489139157623994771516334368732784144324939759089869905423241991082541412149092458772968804652078978773234354220297626339368126929964689743649330147615370077886948374434979615198880198913055564373862515874098677112146796005859505360859301735703366419181633927638310741944570827797073772249961878000049350289643526036442906099983567600693545658461581974581212812068497808142362635682405947396905792239201376560430891996361172089398241662453727501395687310496049548794383484102221824846128616110803273143775866364071821819269530288989042526004954024996918382768730951189839302710287482954594175082569941788096350174724551482233409774465719552661703342724023734419675409910728273733558328356592760273162964795896586091382577809400807756509225090877429393841841340547756276806322359613190287904644036081010863307197726831271932605741024758445221431017635836677444862026971853621727376836407765891681626236540414030571916964871533043618963226141128784883906998546001268830165867290102857106349277357473978264183904351481290626861673701551995715662097792025743428323973647051770916682222258476759755310289786906663055478233290869142183940476798121058287019540776496672021257604783414825042444273044607023063696904867850395234492708282695017393616698678541927669535943780423080498580703860390024479063384813926960995116594346891508059252055883689575727406813972379884973361190165437350450098128865007136247059996353142843214868264485094460903647278768598279198920722087214992762410778159137985289225071664722564454599525500667469169869935193623654971266450040254143838335792102148051298012688073267186698521924183309995540981234888507677941253622808075367526785629753756336823103706547100982073741773501926249475905704411819117528422960514176118701994079286339523012514802696112271661038829105167682181910384603467037379298163097912033312275475728440705915186027920874963990812100384859128153125090852431694449054217694109376323970125800096774788251672248332214793176363626912715567996281997266218950938697709870489656622958931065446925432410220801635339310813910883646864480745403099288441337949348324349210790115817821508301378295159358774668661975229695278392738250972138897932327117948338296905157197687004620379029123862924943469646600733296711607163645843064336957135733888420721202065503986924958581880771020041142494545791164599093739856366123856883990536116444696358634747813051448191931708687457193580012512623959093922001299525967618972366670758131676193771112141948645120063717324814822865346432206076317277751863546171066663782994415513576003363265440715654266508627983035926042866560571592722805328212292353577416877742064410731550355774915180473069809498426235023789516924972971850290857876964852526511558218064773470298803756500707415390205493631032873072478597994054549168160944195732901393349536285727424276918275955181512127451131351022760861835047901742396812416610729120762106432153487082484782433790683356830562488497445323579090003736414995540632452868244658738427344885597555670977570818179815808333941552963971462978695132811956911495378547757659067266412351040827598107850336361015452937214145736049423703230493419981550542762483734776692403618633641869207176600349311700378006131128446011385646717809227367586362009057875274423600935451249348591812281243899012463633095692009567423374072908418059979822160088935747450152405268750649782753919971504466026557640704694332820141200148655168499442953126961457889579997792372379663945885239656147618340161205102416284229898482886480557725385405946935591580146261340653394296191818731027272805786759562040700065014891298083824482720947354682536610519419684549621514701561539388888812285769322518746984117832179318140615730064942080121812845006733691982710336277779782765830102167397678950896943704048959553867138463279654124506554381663445893600074853005005441104159740978820614304274212747075156826423882649711407828794341285652056164153066704928790144056525620267219291296322939068427589118541843248831649213623516377122877492861496057964397333095918417908573663937086396002649326463724494159273090618816636508941608028294212429000589522961932968808692391862172525940221848751381930724689766418571863638910930436028116104451744769287235353228016775802360188932144586715157041716869032710246350211244492549082647277144400631487287897268954391489759437631134819358569348064676420614349673881884191708396535528749025721469349958261831092711521888316404608689576069037983189339228065486547758252642732045251720891893702724534418782156905642345148401384681353439306373047557195283746405836726347811688230714504919238933451815473392874907052710537574370989819472907638024943994859108300325388566044879563652349992041225744985248453027817855707738721506458155151342792615003064768097218034711258786110523478084024886192007702629461986649751497011833349063114234503648292634872777865118085109903220345315950188316637257333356382705564936681083419293056302067611118892764824008536695428187240486386750433367087118667716285860053307364230368155821402077549256704310783516124348219595599486679078486025209022932077175327206640757229642043867627091195506140297741415930446923377121629023368700039253654572785098617248686774505128232889705298146721378901586137793664188601968174323214063152203883909957749776351455394458722339935418004540042004238293946553274416436503101129414281329396956836008649575083706261141300711493387555103877442210183058350219734335622783658721854108528761720515085982156358231727814580335723403638800412494973624692019142847045686354276106613255896524022110927309069825014350873528954073276352245653697967052781546276523122632026521005618732810250762698312003969680621279586065197814763788121054777561326063345660308394577258600568395565866487384967147884371910177101469728381315204350615267300023230227042664911342796994265385765545838968922474348396542844736996529265748101098325500574991459798131010785617663419897619925820936056846364930940156239506943892185566632424333606730724111083550061301054109682163068316416211813077761100220125477938288216042160115239603531352002263239878525480081691735394714620969921902307632427293294147748081583508591232681627915938141888106739350380769488656808439152968508589346713083917255191433878269907725523136261002938912183637065384273608893431947169915965238932915797604631876354019538708266536580522758518296553404275116387124618939815690944228685029511869828405416478316481668289444600824099852555806855959490293378751022906712345361001977498766489769055357514171494109451300756065525779359638172767899418394003695588745043850642354550239519168980683984592949299547663270281907114327015179758362289832422611703692741227267767355670536488432283925870213929423257691933546531727590571934675696983257121076550795287087790531549239778966953776054773923281423457587206598357065627081503498867454826696037098667530932747781888918334300266499695166537763924278875208247542383395103037182342994671552745843622608899061373633860359520003650426693213211047755120849899108815018572806196844743336198192644158059247013620069000411448323649117671686813931753890375732183613608402863659158228137359676949553593362046795098740871621719192606081521341119591344722765318295494692939641904055025846076337547682884582209742789349123718432150895016834975716297027672639952861949768706345507643404756747454316762901286083077879497926044752614419148151131230504933626374711247178976730137698166419638284566922883775058814853314650727764849349795290614627561745807500180786340463774197032781571674649473057192098023901649480297774660279407201961743122334039072283487385613911846339314240073529404441849145573893505653662202725658509826561187828428714022598416282566692257212116514822268779294251392611556488321774031760332591318064893848010819367775022225350751807267896134163279594243978946338184692637829515189705133740154280215610913880624928826379200634808371795208159474235355339877810239071184224738451430705208867425449583300422603058414643148325178725663403118240265113305096484547757247840303410462158913034487777736671125565227049667401557589976182456155387580386040270370806404448775647852259554620482770410525291508633521860620754394923680491896505774323244059466549847490006806153898258786653602603102804404244776576485632186340995735822449544726220663194930048200350970765201080772201192590182605442131442100502539345669965755611878521523938181104845826796086974126318164395689204844839118285943236584030627687805824213849134544717767875344534003511763544842652733776713761322802179768437051963170911788741612750982799310617223366980889978298924759691774366417591426445024467088362041342797586180389106713779424060155716045612745724925490076877955743758366476707991449746040740296995301429127849473983612457620914584593724412218358109464149545057675494025005351870778827402448254789202061870851047588310620284828444700868049281217241708201652257462802712805177630164999373801532875259401641974386866144577171225839380432931974519318921927167738180100306454376927690241686244818793655840180933242976689460863036007885203740955338348745275001564281543223475817880777834611973384495863169774237741134799747953674933121520604709308876762988270150487396662355597584452399954216481257577020031084202761307773149518170600834377197219857067273294452133495237428761518870207615481190502472650433200476912157472366645614986651145834092401344971624453874141666736029280264947937014768091170222350754757371237093867449325572452439772106506838657457763239071214269011768580832629752547423441651786323515018491215872404531695012513108047207581655365637815957456157694845693928007008139856839249741908728101551475138191686164632663453668488267981081090127155617420079282265808514918001563341287469272622789359618500971604282059847909377026022201301038186389856219550663718067090931842720617858149336599978487189293335928354306117645123534272820298035526500869444594738454784151086129796814682674792448563648243661506093315517837992550671431931272641586050093563336913290672868948337471749250415250169383689193412896328459422373495428717098207997178200665716997036689140436635480835646576059679704814184159631836638576041807269538787472568170183514186711796528018067496234004713893871171859892400122782846816600060524261412985799741365872706187780844921870338423689735402958121516061022535350822203018309752992034539261877775984495206930832047873607015302252142855089968291009993297551726071254049149703487294927462267857844523190909336555812299774633120009543117354769392185232877785631868702262606607357902617647133424024163953621325813819639014698986799930768218184828302707830157237042324549843569741889598914238246049766512328610618788745066187924955994555528185141221197919749557964820738628724663731672671000009281037455943677330301353752095274572282801322500981207069006128961304471192114152475905180818516624905534068570557471048755210486392386732726665154593029926684451764547761768893370642879233447093603146400840832664161228319020944386285833012942597031283737991992091194444356712030960179914509920065200344465720750760843061763190115211907141225211482758834936715835683078529650660099625622666134846317810581239629882627661702748179641074288762145531632638807858390824310904621339904129366240880619149704123861306732938521621841710765742635798433181545947081125824649200300954022474019031453259007654912044281823339072953172332722522838108486204564596115447807581907324848967912981533580995097251388097022244623440651954201620136476226704873068641238443707911642112805091464023155985082194037715654157480221754784889816553497096235365006768541067504931292540188598962510167260818372434882757968563205096350294834308887987696576617449264541270513515622940047476083867794418990547989920192407701312399898652961962085730267064854417851444597909407362412538557881657147171322676720590536438734035913667649712622961941068521835048459702562253831050609921969654163621216200450862418749817232839350570750093820890281721044004624247037531473754784897255845609532721794930991708285243133096007851556977213251711984220439751462473355140248869331613769161792375638579902116195256098164907684820185608709365452333860156977448471462974222498353467041793251937863253659132510177149854509802324338001840577430675737810122381088420925750113563358747208227813212254012783161870635544807538217163304267977534328863900194459369666871585231967287548778177208229167766649615427633048536449833748107648360985700654313155576071777907093497521409234597927901275583288561276067300283506929805765138246088146640849463816714244731062061027746725597074405952839786269568836632667418235635282156583761150484300054740785725452475761407360219250662864801635698586864575266827363660496072234941942327550704855130202877029259522541628224793532351055701022882486478292314550474697779685667839021585032915255902523792082866864044626775209111819850642948241008632536181564684448498161677641878678031674587082743459840517726301229354941337687486407280190250479784852373734984698749243626242152635856322622029281519248431962419731056207224346427142193308397006338834381788282269426638301764790492234430564031227800302707752575916688472958774658135981500286911111389383294405414051199837007435534976782803377682925477108628890914061061461798910313650550316819779790748064097396485903724283014193577052939901893580700529207883883122484751032679273054784170699898207128376585777001560785122046878916423739032345956323985655686146904506144403503439367188634787176920471862839302601095411522261711512781527369467158043067125763273502293318292995017832676461139184068302508785268008730154712172645977774280434607122214999126528717205154688161908944662208529590309285509435727052619411308868489044926687590227778104105053973667711592892882508744845822124457674188167311587871222110737647832762342577851314354100047775917745736611007047915705009450086775092290802300223939682274662795604815831579953180490943122540790112758629737753965145281013486329533152369952939669908776245615079220465358605815345550456660759581038627875980126611174101236891477886310307587266798546663701601528293266099286083912844616534663022345078630560886393088090767954638411388667126906472544209705465178258778419757215431841483137586359706534491330313682185923238600910430200730977677059199853399415525149085214240940149602816489222765559547393808115474264410236692122104438361179128766758774231433252973744907513719831018607306836093173277290096262305425325792283608207614112425356373081597143449663896846211616006391074345048532760216744160733714943866834164066207353704740275933951970310835197424516154046115761770752866656269462326516120403578816895786471680415922203667143456107269078167778392947596346434771551302503989108365560438468843053785539197953209450633947728225413733929753663869838665404924556591866376801176032393859895019935507963254275556943862948825328732005951624066979078601177476635565274728846516289002269401950013929204146356531268792488888506019873464299060360870289301278703747239437975538386658858831158273553849524918088720060616505449955008579931057360307297775642245376051054470724842447811487998047615532046749431115605934952422983501760899717459813693206571780845591790987040618633917335941227734571964732250884345644648800701784917655830279344816421677643474129873575355616674509424370503897377038739377456954804775534710146119848816824487359512878148796265264161594221429302105780889150644933523067843518055385416898729240163548453892498759741464754591224922953546029345914232170424623422925108158059983467067940384199181132503316525976928021773435183825387254665310924758009100287475218555901410730848070846323476119055241946582147425483513349829307182254290963109434151869441803330386368176042206909429043485480509490674285089042230802469998803106268682478399457390393223387639596043856829592654192168957536577474776739300289252833090264016374914841944096673246176480486142164748200230926347428983626643635770974841029535329036789002447602419448818527003725061440458146585930010361504287004752892734552391381137118892266432744868322644488989533305269200613367326789523285420078479747816696739036331899759500952705566023624225458043875988250640038000636925045281775048805083036231988698899168759854469200236917991682162745386521171639839081103224806592449998774880667384076493944286406169124920878909835826347705276773332509977553344393735361838784907181817363127117158835703628749007901495757997227960637364898136020385794301294073468655661839202119601851994991133609651478115390276444866861995826201710113425045608666238085748761548898408940981345173785926062614229112353769766478707173296071689682781848513509444813863616302226059244606345714425718269974283474625639071890667939782038075391571104767553808457453458453941735082029527085494804926238725561835151569068530420335899283365742829122124223828799157966174598608555503540614431760834366572291841312435805513007386685120874185064805078480080503945672376682325964592628443379083330809603087806331465525276545302576154124483027667460123974733842790138629906594497903535936040984171685285190485316370321655126020373832835898820764385056740078638551078800065887748753806027246920115348636144942386842834492485685093897747304505384270503740881729132459543076908328092185057172665805412375329161870789468373844263327550376730720076865675983180935595942209175859057338711941552679365623897416556435761900453595507839615563564821658948720480851983197031697011570417145941639505942969986596140662513420334618579511672450367619604686811716362315882618844568975782140702716191019196250958386230891496812386367785189660683910923228037934675407956738893638757524680558746203325446614374295066328611718536252761904977866311802392200710936743762360544244450640469124122216659507900397589975774122153969198850701185455309621745493637152663565025331934201125067184289669880357404825641133001880469800588200665688095474397661790645187191640252715021284932809029487219806422092660432598288430566574707668159106695874832014863298210095055323181420828192351946655104064318749461828490959229631338999136473941316264105273994385196542833380393936688724246383920290988130824918807583181447208195785002664363067619901227551701744494144063355610517343987028810440970007490639383348643489806541030836948268129737239910128584222876874067706645391764156234351875223837670981835719813646741970658980086197460500934247282976586096948821605177001434442645673848839812514240706965192054257944275670450868702115371949604487290923879335037359827637080759403265243797181442951029940093836033639873851208189083412690755871154636953454569389461496033189780633658018131103425188411146554790469185468324400193940854467952200056391803642770444676268700490799513890781392929665103142111299617357895838570459101432425645882273871488446133665639001611512085605937397566160272507893108387039448778018907549034432715514222157141057656973859305868534324817887002238919460456297421991176646882818495644778474968837346513188533826853148404970522446341756675150749773986463024192165806190186627332879069252400517410594528213241597378362530328757233742631997539641777839619855749505999629881617845954644745420268089928467708742482387012276716300360486960594920312087252948012603433588536794270492812728758467213475402163388168340145518218541314914112615319652046103948855742546065384283826397992639617111746465419448866082486896014818339474461160986221772093833915692306953778800281861524251882909417973801519510083455228749751981122746162556743180230617004285871761576978901135849357634624405431370400910311208319117345676381262796432514294057883583408189857643736868157030304796919243233180437774988744798346037274871104543531804848911680127783630924346441102089217877622692451095091442378973383795824260064052852388604753865012539822055523593042484410324129857386784887767714186543077908772377189948195956524683650056594712747177012740525247561258710599009046149801043269683217865972692703461589993530655309958770618840065203365237654338631731906360033939236417825148374691853412626538004104220300064280927678426974389034676902277348210274071661009805259261129991058252718699053603760787150587229872043679725356679102279765745673009524174940032975456235369711353188598735583247808579807404637243538375516738863966381286712958109320350157140063607005440995920386908644873582192964879367591945654159103600214043844472068667462410997230696967691258893206433431104179669651334513071169574084617066794236364074196386664712799566529392081242787760149292869621753358776273197217472906329772005079783828964858892464472023275702936783789136617794492056567374538369795716213170805804311479457623052428621488046456408833221136654795671785291590770773806004203418961772080136794975246273659786949499964475220909406343922255140092792438880287100989158908982697924203935870742778648085889614179332223666850325811359937924848174894455586696278390815485013562530350451481916207457499176383527626062050866358804345134448291883128476513153386080039360987196169221772087554014332171624496046075614140276975222251236789414683355915648865611763361059946473451546094509921183334724331567348135091811291815254985972159781911471692925681684634034191904190768526600934666952221481707592830540571050922607975997083800854472095639024682738535195860097057160879766673089188677088454488095747903266532264870344007794996768071255162666531131005377539335308544348761032858589392321073425780357595439716515759564691249457391809715359704826351655591600236616423797385254142019650464951453946702097875708878089508120812449269644130872415248455894186602315901932261058354015389293922937807448265046952880568879647971416033077482703237926232216973492259768769875771342562878841205229727571754353846245214219756164157228264999199089500956118901795812985209632403077298975954030441782384214012189262174477691003155404730368573333654259533047143556357116949513226101732912337603195922036706978111596784560993632214205563466326808538107520145682086271720404248110982811206358828064724259225135323230179926533500941143338680550230653243403087813654471913027441407617774654285545616836992900866117504411385729931077162295095094122536345348380467301126691760669750890938174523921742606266783291684573049481252305596376188246689264735185688657343014148139923980060726415876428312507873436176586049111628681404670662672874101489522725788854590679823624785012093475391438373279906138985299590044963828157029921031894480470801117326820769562395658289392953478369946617784874851340950482962063474606107637927510646894736624374284629691622401055447813350153636351753458394670901048512407894282030525938371585397880059796995818711839112465345078564459133750876104491946522368386434932757132473598376861944910851943240107160794867277053279936652096966058352229289981284592538190793796581501578571353852649471176548460666783390435464757869949856857842108678674492556178199842948584770575680952142209360569946542339287819841609288177733926777049455012477934568970146208783818992891495105052238579814546585141642208350005823669764569750442194034902430321426426333595757838512199763867518510475903084877060265848568785844069817724187867657291856341812492693368258445749569766598819820194795097187236295305192256000169371678558035931196506373514258322919857860809982940625541885006028243558583351963450672405231185928685270439920036543549673464495846825559405777737002567162490959977418982158617195485398831777397416500162698611652116939507647685943685592818903335361017116734758596265860909395006995734364885043261725461185021365942831459421152189064083672435678947935036188469538540451693596291967745692003091811998821349766899643602901332928453569279028205091525023863191559857470603066618075297430848318186491088909332667627496682618177596940080467608485898488883208835914085217145261073795000430946330403590528024238548479009126371390882328586713378535353647066098348905688713465136105021565616432120295982364911365243310478937970651064928857032124734291043396440671993686873720109553549707657580667008092191762768456443192851829131291166060075159690492695871918881304309106217029671625507503312524084685517312396423627555254627979223462049800641969280336605580285212933328814364863608370792139789024659594864623768064421152932913342350115279641096270231706778174451830703425403018800708632592507993817053874005788634367528731071488299145782655917214092194801369046789090268308929186921979318039429481238341991297969820266999431534494493209382737136314326709046012213104964645257451716059416702009207163121758603530367818225466373499798172399269070543912009769974952703076653874088867452460653573113625913638891246982603122427328806285336758139861914837709873685502026423761993281455421174186169359894063169727996905744206004665878857889738064106277979668647917858429471063115266744162741852025916179895010080604264294940453527393623753710363527628067562936011034867988578167817798824786708510623644471535685140806318981381633651680630096547858870712249157347268596779441655378717004145972207939826204508190512624971680218009096100493272113708673032157675782838174317746711917425449293857005556770753729193206445581678154805533668749297585215262253937482785513634757235826531535635834189684984606336523722863063434712660351793680869778054024670241043593105226159012431444757822373660435963230118525196181994351319055588402048870064343553853678889493337951367072354198293716943628745106606890788119509340611255884927865292678685264862548339594263170800076523268234390521832462928122827276347721712289024363882821839199699993578108016569071248381040129669585785569459231585841593960728306602285175816905408350763532808860976072322127584549529565562185684896071639482502023288886519291475924634440847973780071778065361061431202708063389512344379031154485642124203776702813083678751012394308940368875011331396606377637922743218080645410553672231510937296118361378800578478974292550206007566463086093077478387105919693512661827763414387007754251018919551110121035996995662473868467644385524508384670887030891067923969510079365760738421415374374666735175373595435999454038846966191372259562790412940820378431178908498738648056732061808418781474435969123564762008812261339822741575229479061823457854039076536595419758153453615066251544423744934320803395356643550682716241089985488380305384372156152346586609108053367210007981088282424628558866118542786229320708116618030992007601697318835517959841057523449587838345863839462155772659461350803784688074493657632322859849535678655492033076865999795994433590257866021601379223772042021099127063048452130713449235216737772062592323648984086352948064928310687586382974749278786564290894531236203923795573398374902540109212132380385749270269490049451364575121705080293834108934563423019896748913080753345051876005669700172401298095381488947142883189438128892557106447736116781182580944583500634462216308738030041524281362939757260935525182723038221779124841417682832241073850552162574475900373200484905516770673029883302957113139563728941746319629703456704544280921468479961105084771480577885038775596604027025776597518203977296034462169406509459880182206175837943181569125833321302927475057638577346322657722009803874912509818891490208669282643502956214320713301705877138364523983362801032677931650695664769788507650743121805511822411145128360989818660683260025911277253930902970192987695566697048273213991348756599350351919297681431137195724894444752534996497602580142701944234552776003089633261587343277348192112628318550445588900155908384970467319199842702956982386378689594955900030366619559744214069164463247704064267896130047188650843157630064181405551613451132110325244452127129074946532627572867476169320177685556582172389051804458595206510824273882274114411217602253542731148126882160844678029502568160017616262449701658644276755164308437302538205233135268423812293269693296598826349140030909146499945644613113853833527735901848750830060511674335452446473996948314273992828686374178787310258207951100788632621869269844721438637759086339954417111358646484345156251226574004539332213060039739274082039898836222585391979872540561347854250857247367851224571591912428042194407062503723572515911764131850926835519568687445225085819033807647471516863799090683031662297973171213225907318646207544363872183416731506232121381121043655301898414712844890006844398216190725864002203034994880688671189056901823604774678647982669160439505050379303999899693174417325402668857996278065786879911720083187769750766801111889972761456506822864500369903598659068628501990647354102681069150358807989623628857528318871255668261544648297633017047051517558876810750053916491450475421383170743514104177687247046491430544121064802507919751671564999798723742685893043305444381928742415981644812366200337720686513484202518115424718687425170473673678389244444809236717921167883161983716919422096227196320193806967741105578000662970683374878537499863823569930592805078301497253371631293347654067411503854031960023638842921892029508886049994586728026204293711433070922585648285070875955387879472907161102227858000623724181576583278470025900055282934997209076843379642827446743171977944306485193698320438924447254577430115511136444783176339109137213937636861115334748150171216439497133822361045904774386543876909431825411339771934828531975198055120728609174428486867807731783340173711968025288680124892896509873818353208366099085137325387149841848310475011974743932691753416531538102659323402126592783490353845179360897013357822834098961230852320047371493629044388192021233653623779205322568452377194914990837842654567428033176688954559445350804546647144212473714217799412151763992665283784944319422587346147612078758926712378339056455174887888577962367093781840382741971519273914725092660211928606192686992917785261971351048131897589752222502705498291805680319229193177587783957934294777890594490483706603052835929947925445815337514418378767050355310170821766136446875427563276591394166164143265430481529512801718308556816553219679965462014296142249186506624064071693076730629180657456024206628493686479319033445523025718399441733421012467529380565173050139178951676206296805384963481484191851826835453557286062866112505120209437716721505115202339719046682964367307490842896672514769783985810955201316746255451101616417662337838321753990509090025408187904814710556112808416081733818330972435428354421510624119376054288661457099214330492348469109175176049541520668758428676111585032882709221497566818238368076366512702670948982310682681147743641570554167301658856058852269156512626101604505204352820904442103910815682021848700898375286486131038483438396090359717130893774805145945180270480336736241334277450673939902512531122330249695119982717336822513868815651801153688988801142136622067612141801542482692972734465432212162520036161072754850557977454810153220587674296897527057334035883135299293749429690989292151648084191060034393423326517274237994165556759463451250229839560952082178432907907751908261868189832236481448928114411398975894547420389714127486304444873536909005477553224083533051247931833815255680337950689706130443084466012901618939816024803433809307525032594449398463959648247776327683242040395588381111958548534981502665045784955086219437804183432698673779816871008421636282699276917847798735613503251523300052331296540451465371686572061510389279999112439316273633410400654938712084602884413138849758638518334805019734833421958783384632791012614713820595931855801665004683646628934404091420758078644275144599257251882253396512438140972268435982983861705706097325749062296149320036567518244053168423023945879553312505377977952393644700050244015283103659874733220747271169106076424441302609108860524668100748062679919855271002505346353854973873790802385496119092001234310383289212411824951338762177716181246640902261545505197749187137045779894776599643983191578368968802947252362850611064987942051382975061168982705919951804821666101707780861755994030481345703015715845803724600700422316716060897600793951681214101150868596944698634609999984837531668010780267216057304585987170772680682937615123273701305604346854147148374625282316426174584573169926329488235742821443957543032325011255997584802289585897563440981732641776598299293728140955704172043064410441649683805749547833105239628963031299423183789615321088923774492922751324803559853220713272916859736081305603269004055748105477233195242858925624541716131156227825716547016083635578932345225055348293435835305722195510903949224183093370381223690205070879922923994124289975090742110977212614606548562713827703144490398332375216797323980407827375455923898195814573180816159067312714239140285942156978158183262903372080459376845131590938576307712875317525745273734986275188524837320126931001424291338431578799873334173543743591828064313968073794730313840531958575528099665914858981199839369521772910085236059235511000792747718433123521794638898740540379766026558212372221179171575706014762050617038245772257584545476146018378148660405010588183329290586787558977925694008344141182056585943449335377344294077218318032370527660631155168431780136073618071640997198041552855579258335823727006530934260369527158048345298164489129151453311143222328686423890074327375603878691116866036650169529692637803096787937340767227092503785918289497449205899889015482842890969262784796302760331139903576736868514480590110119925605934693081385558747141274587116963508599352622709616085288210924260015266264591066090304807671421804691193021067303348752135392043835596896029201369415289460290246402342346941930246446788466257031276153540013901955568010218003584056448994915212316641006566124447076415148927081355549299078753344608110264978394976089650484597418781723500048197743785586659671643513966570946331930945469416213026562893843437141940186519447480154346830482246444044441827757201224207382970352916147169171708277802087558483240859250324331312640657395889106306841120222774922573312822219334480578332731284376330843749034209416994790135037567669110655262021975458191173670656087212991467478825041287040645834913760947953173082803755487853627704525733160869301668558359430633648568721715533237671897559672257394904813428773005883214741820007736937231573118692804456463791721144542931550324981394611699534045862205374871891789481302881715717279875645052708271456590465355921518450809868720402844266814135620843585611735597209544319795811690656843163750424371396761159289222465398069364866981948037479049115802076882014409920122908046367290407346489321730034437277884965791300062002579686069221576192181392366437285933895273303583124793342521877241603205820432343231360334267874564987682900082003078316391397982613789868330841971117517891314882249433544197558512067473578020260202504085906409862405741771538990556005588396934624404171936528875289086132554846180745498335662573069172895552529828742818412402792587518158908797041975235268821452818541745244960047607608427792428445922976492476070987924020046356425747321478533097259358321813404677691672684561477007587416830117632382664899021266443755119956744898304342716940998133914568572045866497882322831784895078707708027364835720094872556324842951765892772908346107255152078142990779845011536531316977238727629112376469555379281506123615827755116609523654496305170839444425620168244093236196223130811325989914226210882275196456934269666375252141761483264001556802724874127835799591509038467953744984955151779144280907874593544755588517872508249798521689013583884775807602166376102988765357624161185082062481994360866354715611222339238326993467770074143689112772824606966434929347882790125583099987582730370894061703152987749252974640450006234824454050363960075273083712221389755499835471415936810759708309149747416555349720021771235354921242973436696706286512548532695906282339641838966359167680999406775974264381569936061916185183839516643617834514088527520722786065613186895355105407385153505901961855622273121343747462055445135455957380381111911120495892695072618968249869397340898572752603072236315693709683180639708588690489500898844545348038009304676745240305926438110336700480366636368029061281957794548049901970730298350937106190019385673317451295652225370125646751803181768598236107011767701510431567967338287305459811178657143501715848269316166906826512855832360118408212632771727393337057015352474506879389367836201639779106299005471919739589352972348122970006834595631840099037565381350728079720638503409902576110809310131765596355781716617301261703808863527041514675283733341893109540794921345145145631622609953388328307340864250135488487026360005108238532351497240536737465255006855697139814136924343146880543666840975972249649937319678441826945374701067270714388928237101297393157536253663509577892490829280479267421016465410948311457528877930069283170990509928754810832225600681226359157135375701021593726071120175382673424171043534478270138626897484906031163636318732511598192018165227665522925207093941362305541573986316326639393120324662042617394436344946687329978798735056188200689723999185577912823134503722588403329212640905955682024138156922536989492476982804593585414251519210651787387205069697237401871835961723970459150507550945121828078564210494847453695112283050176258985508497036576972601887442343018306241267852752250592843199693590179722310438678145104458531323031490931721346226685127073696708705433951644014997014674944195087657638138065704439696077472151753577829028888456720460659693597069302721930373178025019225555667323086658376791824652292239206525790339514565450968100099063420316678473768406009897252359961060479237355285349745079692512309631493627569242429420516962653152071842724795395140571299319544483733219253513062961877003797128795734310282788146384562951808770580928146551449781754570726336825072413985680765946816846970984144833760974468854911476022494564647524138117818246545942048037600196475586319288191356235572134868752603432976407298321870341833140657067719205548898839621855044010240410355993711999975211187068841127720391933667863974779451820955780689206525833324275742869796325812191514639971950007824815308018108843720856795379475935728754579458150123678911454511252620758878278958846510060539835586272939146476112810813160811708225107519256877934943870490782021726130101398883751149450798962526404658074232873121795568952560850023341870855047899613881965765540803595466436687915907208353281620210338596187638233920043205862385827018730882689514043673223368587762088107707440999585566171475974793295919788076558436630810002767075950021733957483457890813996646935288150564553519616330720828407484541827564666681451995637048125259755864455566661618951849960889479681241554930364640004406493233023701163347287874221244897789679003623556059065370597552532874677624311009846112807461984377847972795968163505595661012105758088051016984973401087429842973248420340495100777163706426186828192755514323845756753257212079745511299948380916368880882263407730809795499994636362437334698262116482292595287329067524886288353869351774242537888383789234883465653554751215413746416461370624272961314348778204637431821210539402093016441894347131992098508602667989485599379939867159842269862866260485337453825525758791174128880040617376918393051740562777992001120077477276356391859179462778167809594424753248604394059676308070093134826453960074019933159292888000622997686015796619838088141576443166029332863153863560852386275541532253229973561481833434868158327253038214513062827721325008751312808623376982646722754751247661937423776356329255543556931409460719922061997797807268576477223864390330162549020083431819234477739955629631442780062621157065759607693589211097176564214938322762060816156166745088576200603771773401723283559279043952799277025736913426888910487748352064368134512720185924278961246948886316150680387735960971086767256178892708929485832003790629858988166436535423434000133599591606228983792828414585282048625768744336989385127068195044601068698101702631196051955634862812638211758675723905088249258242847423408249927136413608641485698100813420799932052377915975910073739222789649133297566375179845577500865105275492975236570204528325022443141605689152517278953140932140798329588503335809785744149021333969143683476898321064416894243670179489613309585409298318997776034726912098648630895737077196523949906761529764480495511453741085822765778837163747049407987861199204247185691215594171750900840745021453254400117022858761863870346608713118851433437186776659117460891094928397976726059878794749589614901880526187205105712634197657075199606688455789350309017701101370674571593919563625333040539869280550625310139552581882750827766626522726901576616115849978748193097331537374659488512744014893086054281477276702013838323358987026909570664547053311595646650552719773225883890771219925193002988177550289922594685821452673867434478601839406875366062492373657067199868114191860388750700220897798203863137739992251943898169468638801597559233597694094191955391009486490671202304047523383858021106802213552271061443488738461298699941931008342017467638512347832788447848646745402906298061843863098410327598410150628355990429952634954521032909636752128176997381095552396847140719071699195771278358954714300335520687235583905933302788459219953066308507169590843907694302845339624080113045771852169350270633915495020229633057729277242920348416127354331341906445100111587145640674976760174960446450204765571550016686604192001893912028593261852641716837206688300288922736503773137659647858628509032464367221400728156696281494485998267063933969668780888149793318992075024887317605915408805049943871535285594951883222187187393957637100244791537771221788408121771139820109438418379056144930592213595199390728320209803110015864613424366169578919386447571878380191205068327741357842093304050590500821360603136917074364637347587127395370936353435188055107511168151743022174518322305334320471394913591714002889462277140728037093637392568817850614067790077174801312378049216218521401902570102195468649590053890774948919628009363190098045919949636415058285248393526403142045154485716014182208045923507395938021115495951654636865132642978778570345206628272890560875586063616905508095212017102503200766071990245119994171843437528552517262352683270390487250251350347244671811797212834764704166330974017324964415851483801347367424196800368386149925787640911315586174552926889591816696121085578783606992856643835944885178153963764806130283800167431180209321375070839085560585332322937217798793447918814276788407716829615187038942717322260887554006963057183200666615663496918330781261795963529664122936074145322514598324464859767946601984516820743309909360068350416347188420884616371489592831771263988744350134373300210641549505905129717458285862345786199467770155767381752240627811273950373897207958995032000211425572984061022769685589826052427401098903549430164643335320232021371448432357248054780448251482213440758417831164663595754773042564214417885326631073230301133583191393627431366322546346592178497547461988218530328581470355429200587773330089012506547924782044548808406130863817877182316961356024268564526907254726419255224133138079275194994534489584748639485183127125545764760450818813973122678485260334220917764915962198845130105194945119675140924156429414591699181397264638508315344627134352211135165398956361471382038213320308421066115070967397102412809630882661688010030226469158389918737563633196610906639239760652349748999421778013486207001455827302991287348366604425355929655322756597284261665777906606376200782284778547703734173533089445283630151525616194686644865377837540423813737023336888028006203074491614833277025112975996572991368929527938688827540677463189420861250645798549036433190965185923082806453396312958580302394586236276375750227393926700616473308302694607454534953634178998723438397988099666172488239431446719138066937998221614250263548578982872225360303175132764277123125264639316934759867965640642105600419857913971726692244527307317902114908711271420478548184265513655344925710137743581170872177612646961247240591598413477535007780120853104169170122823617284550506056412008628696718077475285975980460508116013405480619207072696079018817113300064061142241497166857918888631771344269643484147452572313840770659799792304810883807319984030527997418648570470137944197777782824435903708176691281338815105045262267176586028412086189789579187783771812766038656651667191012391500767919967724350419701253417816898451116716858128523526700031892969519386902195841401195136020827229996655649026502092875242187962361727765818913277341553021120910454236715135976963617313132158163970239959028899791176288041504041859960483016929149575651177438722303090527779454977281188830200694492605924398505556551887710577107006411187909994528147045386462170841143074412678969026944220531837501891965991187802022314722183427195643461757681736406840804493816857628837456400079327634605466810936670488323994952236793990884043702935334754242154370222646462207637921702649715929350765433401209343581375076456393200085436173792620078277310697411781357253645295625300551120540385242203908835359857976271662869518418898521446774362913125445072995499556382862992283726621411759973858593738089326889993166396997403748917551687225582198261510672133256224931137370172013545216957939366241431322855111849305952928899405161311029219151206018879289590441846618953312562448161493479262911090645745983204208366594187838829716883500727950017115924121113257397122351635595958199971859863834452494521026816701692694837611945672325883141553395205829293753108958131767647834407622495379443321170732355891292548757573990466034954492638597458058469920493191600478035722367199307310255345783193733505601386279085781164091155712952309888225875271410482913334397519091228826198384056529592570431910476774441120846035771094238932041810300879980217685866199214514311010081094297462879672174843772167803230582634269938109512112734308666051941751529744088311995247348845870858769931243314758341176660334475595113638525996758595411154937536629600285305591633899776995794141475522959728902095847697818380102889718280168055938822023608342581298783105774351365338151362530666807863927698014506129818222362332578622902686326865635790620316187074240808230514480543855056716418403381448752195869051195293127810471023575467023465031122049498354629087501357772498045611126317487021908349988682455724853221462456527092737485870796425253039896919632425902582772656569701910945791664130222107416999132081983399297628523800484629807694599536442785410285006233208667338053120388496457834445290709958991878441659065574439127628654783523632166618357993760918581084702567008572730319798431762975844705755055470534716671576905272797949184786846035053648619313509398394181785283605415969262019915192836131812454876154775081768705751052222161310102738972935606797346742048886065819990479457257722961331372882807196608079026603356916207233115469757913928351126178178495693385661587003228045380055745952438739345508264122166257505121339513929240567214161683835824376624587391003882247303612853648745099622991168062434969734088823775221130691955246027619109430294228555911323821609386342669444589290144679831852992103379475787101657900974953548577863539075961959545965171311995617743731693791819436156732566563018451400180148161667062937784188455638384657781263583745789934303570466499200213492643025831750529989552346958155781727508178016979184954967372783152456012130402926570935370358604681263886861164538289615220848654601092344557402866875463756422723494352233238072319684760989059326111895309883606934737599598818211129223066199176411140113432034654120531798206128946534533917710842554256805610632530747139656689349464266994654021094671693007743803033946863436808196651957769088616952338033975588769321274824182493847956263750915619343502157727986634829475104792840538170187525540887378568266548017889986758597050009783129736675780088370545282412112332797753898606917433149930448623896300524666634272004520374635913771694448894956550975231566269962898160201408403192865538247349089870444161085110783511994968916102015410375175356967667978333946983974177923510913461833233186948442613935651619179040751856380315758521882827980780237906866099799842901069172947680026696657435239721900357591986709508243582606075388308296643705353841572280224927074257547973102292342776062016045508274373229655223116353551633905707027676203235300117870152933500750038192895738394273204195302289537823637786559649481405242522379275609271608100438430625093156370974463933513582249465890642052838106224080498681189305869954405257838355189110900709499485248346297119344324992065842936798915893795823394701035900974438130856971140604651420242447720785601518373110364210845785972655398242675185868226815239274646279505132204865814964991680715002664355138777815402849385012189782873976262703497135430384867097886845670880075178068263030916864141620189793808529848694952962096481881847641505220758250183854914000338769064850809617954963306500147575728677352627436411420970917209529814083424063232507358117837986427349082378844343003583483791254970490767350727061211421261931163344324919236829975998973170972789931227355584889812020009498575973005243207376552111500115976267496536661289410051472791191006064564706096368781074209415503622527375538899361628456924117103884152379905659865647629344328149154657367829749288231262358203115985219090696789309622457198882364382081967507707639640330406547671433256692703853810422485559099164273784271869536241030173233560986761091305196462339897682840590660036922555594569697195128968362887527697198750604677685448918406998786055493473189632151368960304661619574932466402066701654181603472994009109063871013250813769452446013790017459021603276277438683016931693003756021915095781756656520178292599752876031586598652629894361791567169634023547966126631453487376344533856475219373279920770506466092669696512768347049528097477062910426083334791378102587439812977100571439857358521318079363358392122291366238913813952619065840926861302476416199519764362287145113154128312177449503747003550217548348275221378564584888650482177905898874475791293879190195156244421808731108728745119769405434443511833364348948303308241680258878056012229941797242636119820972343895604679835458367861227754237852564107724414894091718889137878445850129543583567461993915003543371896864119879975644884319036049329545993762072249079573820601303288738651887403181299121479084507270309986409008337819945262958379089530997325780734841021459413823214527016991579341391977320436393771473290183670076636405921154138709287778974212383729478478584135853378016170381106156810442743472969048292114752594507061496035295421034596568921685045740166235977130049831629057932643008923043223891952081655016207154026133815476985681385083497793615723589015310228618984517826263690784183345799175522211345136655236768304457307526156854616690865751107878923771482185781630122472530352304833559178707008758825789487412013016127622923491818322369280331744264045372317120376933978978419404374646647198884210640206833453119044431031271297364350989832135803399428861463913652221312952264327922668094164102851571211826316841867429136950796082419257152544116431879541510778164497867213529830547744750914928291853387233404106390090531393205329460081977482925953070408120438595978406015048633288895984658134509336249049161507579604641735797878006067028460323358137557227180101558091013253385673480817441477101164553203266799886236455961557114565725470376480790384253540937072144065516554539685723626446403359999439255245670175392304895731635337730433847380417509923366423212086225451314847983629676046797028573113509474969769570120362823821398026066714629142089333721450081393773720876897998923090841142115580085165842114546702963259066704715852299236293316383396576620966121296110783049109931003014129130085977144899777314276867403346643428807569376002223069480343612171643683641525470848004106824761515791299866527175059022414010446940211691003068537721110546651447308037748855066429448190667032422533258801597018916616877513495666484489083223837840998131955445204538381970206308475225585794579647118116666744866505118841508634692044675972172733730122601244341163003612583545270969458387089576610032893179864591157553188591784725036950263656080039572423655945931355590828726069181449864725881370864116903445837052601773711581617309337458731095619945591941612950311554313367205391881959731511919975275708375029998674898498722675128725564940682180229865946125675470202050268015264112596236957118120002785003911685819191573056451988086294584980270442880360010434802026739771722844816588584590184983290516607230856561437967165463912514041627341002605637471917840742315528182020692114454646332567695447329847889714079790572682412966990730768706850878725795584403302000426005209475632004279061329212644743626650713630460450334834205061540829075384675435370154876228601311067790648289399057449217555322622066114802569508895053154373124951265307541691990172216239977783726489966607051788107746608563483862549184617864404727231142691675158169904945869656921648685089203407001536512586081861241730242679898066701731526028617297015019675692854137343825959189832930263350004579152223215559382136142880486275066843469421411235122082711325335279630936815066057671141573604850996344439003191632495715469163868230307646067139864759930973861959802794509857902760096635762094923877280523443342880138505214677358750885280626387775809118764814154939870821099892139784506613076920329640776710192536909646357419798170085499288853133967428688048432604653540483824445615056735411897569498467738729674881542497875768027892512177887155141379801311466241568935992355725366577861283314350134996552531803072657841369021718454496600603368100096613794668751317848729192615061318210603454723685344761589274863122116590645123439524056309293509305730742281679364529642580127617610786450758305451294885635122433314119831625965911897938118699494670088247537501807510275309120811619198378927247385528494458473869035935125707209452821022197286972565574298297309578056468678723527384432657138074296707973923064236152411525524632366466942501703533080390534847547032112357754185136035948803269669257097417443979654467109961918581174962631699361807878878478175117672710503838673111152163203784888816286607008371823838236013812727278876202118554136603294716131769441013067320454567082511694412651046632678216156594588897535324095957568822956921671152558682219898292905481124792751946184194529175379361785311019146667149752235730077771289091833221100420704293421115447064149310246985269423641619917970994769789445806864002905803427998235352008168565982770215253343331530674307140577980778765023296663190441350643454797431735902981059368935487220879031660126596406953862568251849206277162540471211433437156310588737233381714960012391229462726862918765751557533953051425252990359530133243114166772350639349376214290079331664303770438790246694190187592452776770606212193281292182051078410534136380276755816296411763916548909919972462816314771464408486845412936293686171302609850808288970050411754456032985864500615099539815044225929646777610862466625462160144293389376506719949526297567448192537001875387660368555080663844847668969376007555430284795585480295317513983755675538173897176754156335996142677531742413322181656091605749835718496243266906109438469890671238079651251941604505397455084367700823569549309344505687688710036643730748864506446512600788072652817471980795907840068727182966313136820160605386075351502510338137125807958418576837703074463277661501155989313440805095782980060770174057022742691179404109965215194717123131728638299363643206446100406678823284504630955958491057473623898631687959604751191285979212974937144975459743614626322499935249701644264949449037271034157859560212775571326704153911686430060026767844186542789744449809105955747194845832422484537590271220218202969731596331671865892399140690037749259527286821900380146283548385695604431865179046824049839700435072370815495993460169896770773440674430677454121233342956787146971836988013961958893932310370907799565328977918061579076913186212239878563974633300954298558362097125345430729488460081822726285426826147032710998923401944274949636545257255515015379982671721053714109222664160875971729268565605364231445664947378112423705152369169933018537096091328646110284643034313202552699796163284300495376822880223363467108969298504933830700153226487600953225484062138524955169457706002763583181822205650672160922614790602072171612309684272237972099897391535373651084889429598485228053300703624836872124294167457522204194586386407854843927883361907345033092440754424030194291824795577805408675575669423278354081795664101032598961113598545249244866076037888805374658786853894568647132850789139000058951986980855106166781059716449549069741809311058173486166587540317830999904581463552765561166299428015695488602928406619800879821907276093055036145341474945054742893177259913170280453532326410136586123375312939970539161389318352786884265360628813174098282593862193113623555663563839640806132797438354735789638191820293809631659100369204127276566775104074809087977836525930783363326301571999393340067263906852889677738381119093383526418064776523359301284212422496409056889591041353634605340383844579691428443217598443532472092004852343798580492061793626420323496262031877559354357809543733500099597153187302737817035326178263081423206575574698330148960343284440294754161881171590154381004293041871208546922875256307926198283847695638874474538065646315238039783552720041455969353911185437979516560277038763388716748120545496941302442069939092902396136515195800585806763265046574883758167063551047436421469700770939432066401626870485777856285881719538282746715083687371047463554024976150164620411288312158892988272558038198626335681968102676813431021537122645583498093952458587116724807550319520898174461809792685891148811489792793931147318293445165653969574199157745989272616157336009341600873487611846364785773256778488317509652324631736269476144237975867785259451613044792805453742046078098779251526489999342472860535271101108834609326822807909277086367122258482832253536527234059116218438729787407523145237173041941775147644127280824622392162288976327907180208328196351122879050018327741998859696928807358104541929988202806935623367516781001515531830487150354522073968586397453531110749440006011988775412144371953732688093850174576989333438006026754283072444996034696507014274672581853672194702183073225770475647253282388763176241673280128596481009248534350643228614687475684900895189008307822508552602373210017783628566735751545921215414520581348588049742164896590412294423014519119106270088231723077804842341461684900697880588214022540235349668399902691564992242800842179325489099514423961171179437080577045160242489450308156998877149610113769991769710424119125961248475736168933202127797005254876693177646218537314514853061769546493335066750194487275784604436311311279922017463961703819177211115045509258942514753852271495291702637798146718625556305368539652403367577972618396403423804601695417142640033194542705043538282639411121242478009755214890934972740948065628827957797234778258234579362193824666251436439193666461756761449661674896370399601346373458390570644670675499202003531214919926604360336466693205017195548298598425447147247758451708066074997961049346268339917156154853416761794446746662852922072310817897477106162867179249701458332735887910934942643316740298173638936862938708177999346863266357643980639528647747486487157026924677752623549483520070528533130998605905821213993239824509532195580203393980031027588086258487943021675381840516091586220903150361675460331970484396459467565461498350486060414268648416107824706423582578515065302628041161276837669328368028443564536239260932826410050950863747592685293960310774490943282601639300208289275304648530887782581479668943329157423136692439220703580171722288089514112108673902547850579146799835140874569681893121491764386757283356207116568954898086176287388231404487982007034114270170142715800166320444248951719052076892489191686823433037948482534170928150645227927866513058859723014825686896731615744699734301351416791764123377246772024375290143671220520530810108413549620846933016137072027786902548034804316883918737373517556733025293506834679208063866713331140176026287558144978415400385900071726925516617522608560437023641939760728526865815264956598628550645366533019490295676053176115669186010678258558794874765146330477329170255786281187374623281239422154655116306323358993460361736351919096725601546016906468944212658715717248985466283874920471719262201061912412900230603080589896986741491399201377413941272873925320493835457232838718431504444654745262746027624273910456514056373722347278548566192102861694711072936830214500901318164777179820474095839399675697773483574335362281274360128158337929413453997639126340392783347917620625259614385215831196469634437188236470153850904722106488579374746475934128526361307787883227407194676583613393655949704603367885209549197682338533903936454318213970602912816254011802386015554396299572091457707457210356734956713967503694892499049967789960577106319245088459343532906274452492727779166471199262491090953121501352454147126931836375984676477406747158641372995824912900297946629964040923274000217612616553947719715005682048339196357169635173238514031796432816951072182042909251784772197853664652024580248803706691488198469331569911379901421804560153333076851831784780628583655669589547822401730775271767034909268036018160048004244113860481158583805406782183088388990354862287256078280458848685635270521058190195701059067102825998256722858563653527530934907048643804547168881709497426619273204195766822925873535271421198085873081489420401448925920781127498747361350514918274685037428097438232384823464863312821932026743720176094509789564163353115133339289075059653095642246094299848194307737069076860235620484358228197369596456351750716837338960773925848507343246925949184629304867387673313707264140814198906641315120971146217710749717408453453438080984337371094150399987820625053618334657215710710055536711084428070616172501938451789138416424037378489983523339197321090992731759872897336797365096978905817750218578090018447328313386939725902563015102017913043002386530930360827351719170702381026724242795532184184866746550659469600070406692195639279665564405916875565924396995304173844557326338227475403612918890752687419705330984695644188658994485124448306614618837485711725252388624382637058846794075122833410727043560538898478408251636238530726938996132100760161374327944697615096905101655083527595774412471842390080993467648457102391638303937098459198480734388581185615815977184364883658324194764421778832195034965808154585102262141038892998728081845807541038359006816203363603286020992107081219519839033678889823194190781842711836832851780970768125491329685331326251201217158615732275896061166236448192507460290688362299547795255811353386311447037791943970474473778376422524053765583453710895026415089873159859088808598716105699522366158423072369586419004755500890666929257463150402272955141347252299146006710729130853043453337464363442571287729541795808552704452111738849516101507395709853623286085810691660979637218606565338612474085498554270331705471963578948104476692213350167988746225720240684492539667032978031349526944618788666283334677465001552748844109188638393541346523936582699734317093280974654115326341719983793969512811181776236886957229399652918658004999940838168978414676631278500004295377814884971322378442002862518262681844423602582546897108324366589068213363070648344964158301000242893509226856476002693383084468249872181528484732338453208913765692195055217894292424260099937153464158080172978955616872093238270655185669948929558856400136461669113024492114285996028510027173446885353896222609522012168829458769647674749180852232813105844185143547740414095895457225160140797187223605385256125821486663561432149080693632876744289078903291090435070162019817841252105580519771753105319205014789283675309161570733164132658457253011851590666291843234062393098397926832122029288547419683334421072204479034042615227970806304079643077088772775584541528677048061240120856955910743518557093344327261932719602712716381048240960056034307499769622536636915784235081089732528419455573840886261675310162042523495121713544176189725421241511026126222782399838936356560738945685754771541889680808851585002480878261036663687518904098466744288602634493533787817483858193139438554675224883640954630531019005855646658477892986977015250443652345389103002439014638970473482918007731161554008494887283599631702495479686424545072114063204269171459225261355720554990615168515322737554244547838753690978508131307442170832912214579339418928744563683132938028655419084422666502540667037973150030302331096927408344032899801923886582826634682252814716725923044585440808415546861190017874761855439187916248430482436558917156075646479219758939066254384595702947963619925925527616872953497326128750896292688469461515999605593184295692288921660102435368222233563491544162776861934881571245840105191550315218441736909330205122334108605102027292982165616664583732776795639051172987351788703296887228620158148302477398574402480737877166034896853956165467019038829477895133814856079584873523213754538397015559383862334523267817746785290528521135164855670609670346866417799705717165385497973910568205239418986013065556157013551038479537849828563107744404466476106382295639928024998008223501048591443248111372758688634862890030827650006800898225997731089241075317820153842172378089158049519638119727254718594098170473398442419932250373331161599346780815162773679943778292951840426573545847792420479037147419608715437440615161724431922292480763600352809344110819371642704301608134865490595866511327262843452417462521446265603130554153544970348182853585590157421117880303755630051855995492844544911279356126832403501733556129245694175829190632977654056369006992164167940626017595572505703549704405711840626756660775838107339155174957730228189914662068522736211504685592946036279323847146171001584073050072578940168965803531611843024388876452199136517593181903401660784293261291629590872062205820153089432851257672497881364796367670181728387555827585064652618622756227091154706490557843520176450339681842773827779061055657409262836174852770942180343046932460527894789072238608673233707202897080663829060124274925579196612352418922455734420685471927343508262502041261272210424456647560849098260358491170910996384250066473967287556681812390576116479947326941861261794384177717604692274683921778756918267711896844285141091624923458689985487462804988460565103062272247018399879163473243317976946775145776475824379902115936965932165476444621993694641977629693682285767382099121483221291035057375887533188562576686628406756449564643060648124304584391032573739416292335990804267736289491344909455597535425407568082204149026807916870052029732347854072588615221901338622187494138202571855605753194913793700598990636099079988687717912221499688694742868359209908140940894071283748593217533715283719676753430782157437139834099712215553174071013791379867716734208735562512961679558061878462486786907185420894974658071641987012765680004274275320154666088183923695649542391168372825332566415862623271737242094491346609752226524462770742305657882301771297523140911338156451488767081983253585606902965523370232509013186313808370909523733793283148668327869741768637534998072402173108103515429285707033194554930742302066170925937746512969007024303606189487054650324553353590806407502444741586526937100343977421696087366061757337549783184380630232739598801097081516750406084842468079875591856328263070118146501907648706151383106412953302861451415575473839856594513773304330005148694811247677014363914787090291001532337295108018424866872044982165602880990788510963942330865991264974820332166830218880047424838524876467251346801092433028163810766882448387124836217506661451612075505031190166019899417332207405173005454215538052023508455125525164342970889353333144280992737915218320065809964580047097159858099988799647945779503558471055952573928155706136831665519827422802873871703757651789782340763030753597030942881703064685379870033590664181274381440348532355863432349676957313293639566500059576038276978885113100087710076417424305054813710324380100624107753045922648078314111154436900900858987591027199660824671755972113089826951513357733228705397150257089652940510539482368245133117577714789345909693108880516969778443703753588877255611630670578804557874135868126230762688843946060590081750310252696044637150072732854212332028266518603809806411948907771315861217854174246346198749818124722113780868131107862759325334870236076140366174807403456861621617288558262765289138847465715618901549614395877491523800507723825292377824158949072617759672122851929877036868083494868061109931199604249949127861945152538936123737227034647308404419300736184291357610238240788090946451339045400974374487587191827341215178197306536597291687290809594965900377928083130881461092147391766723271235516687053993861027418619785487931528861810537441813600497868472909258897877184506408951478316391679506905254668230195806701783977032297780077376299982916806221781996119506433088637239073848723040552739956277571298075476399008237513183657097264467985944331981306758731344302942246830238341994336750655343383937154172559119000772821220446210141938940382745447583473030433217756044524763030713644259886157503510533236547437083128775887174575793861163217896534106189537059312777771630398958417574309344260376528973156883052465395156612814328115523339070527167592271968998541725135963147021894773820227034044295786307385526953299620850954451151652020567174474413660114700554959492146931017369399109495421068896672938195036602379056415260197780905042166966964718973074345915175636207076646974758153909795453857895704423604587128594489961895918126538913501696518742137894521007274946588329939695845759359478735049211551484754856997554391087359599929712276410028155212218405815874364780978032737073063622867731114129742559481908325999905310982581691621795088732089481754170948815394818997662011250654104199102130984091610126507191209104685867259569535504333431764573910078084266785728340768411633541603694531497005043995551894988383510794961536362593936440538380021229519574635822113946891603120837006231808898659997881249955603583327035910511604260632070802452525464095761134467362878067887536364962066468058610305380245571065569064001901746202068790629399650019824734416935863998155278105741078347808904730562771501291544588581552060972514476359776498484274121630505777770650795947125022412869030524152818078156771264290239122461273137655580504857221461963167463709420133027377434409636119799068045992759208383913532762544051203916146382048389356983331938210929728559912457269124851688631565030284764970926524995246766327107336991935834696625781866650181364476629619696267472635787429193058336662083111691419570306163738566827935595881184409797182131731383332415981233407140150536924335301046644298449413953105531632251528658024406719407448249614945096106224564138593135635388086786192602355913985782357561566194289183502754999972025719157837753130524491634283491460421203699076411153727165235933022597402062162659322856599572277473877268820034224983537790052954685344965334712003743824562052125318354982650894272320866321054974554405259737603529486289298705140727896235788437018863722573537865750718125891491271504625063763728615754335896268296767994337763564570439448227306520252030344575844438145680570845498634226635657935240493222263628528764141909357984978341366990487660787957870534612074800923235914256334832387326942782100497632248323607834602232344718776867053810911356677696891175997918036934888541630615110836170263408721406182173171852068660995616160386611935208623875605101003307503556366896545358237151077307986104514922621324387978928864712362668735306240096063143256218563896442703556229789599236706499760591798987122616671829800701053927598560339703545854249490234144115550580310426086727023553990548484289762861646364555026508338678408477840231355482902542865472022986550437204277215656700639972460378213292498682556190679189578220148847100700115074482647069338304430737980602736470067128546983376144040283265897436772963464230627178275941577627086824751997829197840431763287172562137307650934961325523490715956982681193542823392287629392158383641202262337581491384051595804658573195038811946311143019875489952815607636530892473496674888783951434621939301955583234647055110712914450350754971754439621497220156768591756219105004725023284409736786894445231707992419779646083625039613453225615340299869205473818618311883426995309899534626482033234888484496007310062634806765541602248347245752477764759737768974046789703420698829464894269372663199816626517374396168657089263990403131133015493003777285598557119213049882129908030537527147275825346255016610991764557667580370610022388475058510985364867497888834539937307087460372343299406836248138370729299582818388905827689894803584499281425397141215203715677333144559822304884359140954150101976531322167312486832651679950367683230233652223412336425712974489811301494008648317696668295739961924267382486482656966335330503857213616412735620426987410421621866907960798587337407724721478638891516730777983798781435164478490735570432463419223079153272300628233453399246167889674663543917336032015643213204279030378124509196499488977891948694971228523846180352541841847175239152698453867063661285885028719193443683060541576198705900512906288611384741017793613906526615600377151249192868595028635143388723723981017818310191804206132756483219915101235148246148698034085407975572884365981636079068213185130582863411813369828030632936508362523608272590493607236960130686605955176730456659713689899394195818934361973801834686541446286041611230552965259320509785887292928670127267419915750480233137152802044032202173991145690998743527134402778761941213101278832522816290154700495701332526528323223249488183261180094813407683031427612408076401246463936037761302721154175372436652504256052895269510708484831935264232235053657944692818747629802622798950883132443085948234175056628519680098979117237697158237191454779525663513750742304377954160729967297394698742716075645704868869595962932130988277788652648994837726369333183098819314232849148998637875189383778552379692513743793391056484588005911722704597824681118664279562956480895453803892502878829592917926259970047460894240368438511509486777201214835004570032359738552292257605847611382507734980311797671086892757202560095646824317260319790536444270415985412558249270102498101479998402885825718432449568832551491619246001772323646557016220211709121490298241921329900875872085931631048235915081492539475607324613271268817275464640396478432905010337538466555686602036501830706204723796859582521595130286101610173448613119936528923487897105283504949302718300291075568489978292355840353636197488875375348514957384320533216583022021880355786711556228843328981054394739259522945099297542857858334245848489581142726846877522427055250885886016003056876312600570547491578326977580667835537126877758809174326555308991446490437427316375246252813745565302806550688474113240691003271518010222948477707663694018273586174896847100607177008404451275599947256600670026927318275147172208817402457627215802297057390828923259041861288166226011730512857038736653070567723240002237484853619957536279494813157168548349392365955615730539469351642276307698331281304732284006716562708818055653716078681039719153688989442186540408404790176603325806127906114526044689781057323546754560770742594829026628578095523802182026945941299624122224721330223571210185296210609232956505141375467859956349615271778035858012192095838337801099057565130310409776074730375718485624304706720196020837970710366718685501593659998136905450996071412157204909284790915360043270572743242354293752517584659768756893332807015041968330529251926313725563277165706032866669527836678338590669142146354046262761922683208775703034600183833758062216846495373308160985599769151954204500734579444525912886571850425335890264408316094835606485445192896585740497718297224456202103794543859211766876699889730458639077817510447296611122723841580349005703894648450172451086049277161368601189808391180305667447168866141021193846110518961303536027691705482129315356089465603306871846325705563145943385790484449120622037588028763631092780624997473782016473737942022533143529660645667199425619659815205792964490047334482260091472609383306528870237591758040493168654332458686882979868482279774019885670548629981311656223013623822163819667301804165527421681177947841423199119809038932409282455876673711781384042719530139517167007635498763815653652166399339465877696497451616550415267360877937681296114716440827228957759447220339648748815233433102207207618533513081274047932031485272008460950775101033631713956327553708514258658850467401891472631785770260782723253054021937154959332273884646162396701871545154278768218546842276079371658193958899436524959228832122716477153549988108821126538648077973477658902341580071449999022344912658668215471529372295616616024507539391986479784758984600352670335240398839722924717473798391566678950396424269652590174082442807023206667046367685846578835197757984032486637228550182987054757977891878043783442777455718999395737682029960840840814191248090783450059148496321545133270748211104981660886732791251476192683162564769964105660617396560960213844009677088645718227785349408783154898625722217334753617698351189005485797145048374339426013105649230073779534604993443624694125568008308422424821055340100767886625255929743231533814231987969392455891084644777541430511162291283974341002881278439119062541699595993454735628785294880628227797903750231254422955084205813708648159211234668569407313441606519705357996662494306303356329780103039285523203596471709251658106743864556878049558958041297291555734215399648756555414393856206093634880834681227552618171792207908588687075127653274956713323833720414333439763029820857278597696939867298678859967501292147259442888650597689689993918963228545762054221732785914040920657855239401503742963092210137524835174111496252805162209977210463979387940579878238040062170406242900887983112594673853664766907448073650930360293177031419613039711655629765359075675046453554345295768993038943869202555576427692758466845346341373211720928737716754911879557960221673899939451993974954664288916079249671739875072194354450910541222323293713816509663185455477607051644560498116170368081987762097468854934252444960248335092101910374499386316938470412138795167064576107785342340872944164880207504583759255129751276052871929320717482197359326500996872799917879281538518259217492755497106108495852020891772508862143022705489446597980872622825328262597072852354483883489092088185864529471636985073643167663579355731414659030958606210468332005634496928071384700638033062583464915352378288928557798048755501902349077107198653213207808736310514158821475951198910625523557141565848270733233118581607846795202400080588017805501032207229675360620409276322067714156102175050781374603226533665610503687998709187594448845981566202212677755959015800066631641645809543497560234372070650045899722075608083580102920074314122142276299761011787295696874220539074101725490149921681487081141594114602144189717015787206892750041000483808448067850414355604582680968338523112121834428530013497665186654742334222389344333008895127260011722418258836784929110224104230666602624993596648711613069841234248121012849005480987121607002406287872921846207465837392752127904969474630762770202374750590897560938331567990498687756788563072479710770148292904601912672682881059914396016660258494291242724659105722873869488273494662882711810992555709527358090063948865644559475478890511775776558755185993806991864599855795868746157938526346112962506606114262736435326723159125567781648785556391973047845518987414251767553404454508942962183511349674977764137407049517127417987958892424644087489260110410929925370002467587723601743233580071065539344491172982949821272314611981617621856967102499511162223894454362483613982399968857746795178633461779966126143044925770840866499832820573379974641056463220774832023631258928253916814168278009628402173249043084557471598947097900210947953753705940655625892344352387600658574929392951830206146269262518574197933752752624974861296986605930712769979108517089562618876072623475394867645586022312104519393083178648839383215136730439854061959268214229794958386895905968809471803519655497324222254407863376783373183110800217650429309557978224393510382162173648071080870412932792428022725719054153297977017362126733828960319847628031432739182090308162402991798492703288839085083095381030766350990364366776959360355176944628919904122510865302574039493664184739239707348653697676163504132744354000967731790070484476949399795853368028317170330434674763182063832413668433258963005790852272754300252354784816799849500883942820775948145248547550667971616428605924117746405243428000598992803951104628058976081149683903215831679940559707450429270477249861450621388357128667694584082429113505049032886524104221107869243771295987283214176841620224314203866455174232911472524918121147693374684767483333940541137342241205269068381565935015173006961160779216900905958280495316164503346007903760482859901487986625525722733788903814149285265318614006611731852948629370019317241269828433790491619018916244299004572701166577796412032060573441659433158538870470643215706526668839918109512691308921703872043315080172138755073390931173062182004347812790902397894892850185904550636325664679718691646202083830198709918628447312060936442062936148675068158356294496851969672218213751093899655829678389750571368568349321252821006211248516477112782402482487884008735226595303284179874013188238035709644347633396015605885731654626416175512389219986769120762016507202840639902060352963108772067740197150418557666738233483807175528697702549964461773086371742096663383061016989904601026516313347179358863563606724859595940941588590625146366367449710072253392053130108201438780404788177358076288482121116014262320002591253233215373202533187786271592530248717277577545751503132078199625140259676893333540750893007183263753785602645777179578228353695017526809974866683232137638306077678198674066449672138065958083460055271512083682225116238837342398931169349245720155780833219210451616541197912876293422592478390101336949138642836156632157870108060814149216607350647480880500589295593655563972216576898148554277757495847452590222485920904025474660649940214775785760181337245907635888798269025154690783547316782930957873640398242665141867432190366008702372631745536541701899708444083217550823016536578129812805095628829588549830939894274414605252952056880889399500768470028013576358965666026338113295529089028871258562803582340296755270390043081985269793920448661088175987438366966479421998008489229816376783103197535046870979290923436598412482076220570949121327947028635558275651773682969992165972153837625129670621584210346897478553576802482784006841504614515766666059559755771895652480323808417806996458836675918466226095609068315649019647839440284719015399860271799693444744163570417734984128660106227824478190881651309220376132255801503731001303848499101848694948138488762755720883231883993408533167519033333723218311505553602098946558271995493269100600718845048392753579041357509375516064971142186924742349728243526153353663109405172436218185877552177567580369665573546709973142209240958094640498544774700905838726535432902176557255124573683917816997113705353810522599344510594372898044292216571238560098681885908528704104268729517716155777627999468536688333845483384597894888658353194750654703650949887874836846036080609948365417588403442942871508192623447415942252599659740130278670767137714570489346839450971717658979719025529375253993280975763829263651870293957561578511113924545994164046608588673449325724163151693722172102996682975989747727452915299354063169528211032749860564054232703258860560596585986967171533450355782507874396415132458176060362405107191127760085906398908048723467006339921347347213025612298860734469046746165558723345466778208014060885798633593211099195263813194154370874233080691686501090364414005632741514501653743442326277520688208511726304532655493535266131597265549945083682775782833872564725144968319197927804867629777809120947049939521413827912783686690613353730221423935013743670439199478983541026328219185776466046670639453735223229997734319384931448160273803032961108292377459078150658862775151081625396445634866775687772185531023479678017495939058858979859980024803089575445753646939639082319851197544080510968791965419158726769271835874057277029458990772722289332024540382291521576320082939332146029107997911135755648487597043971904261895832023209555983898129182528460268513507075619785823500320919226932629875467540533690202154105302779222631932059842010156884599584593763702474128974486168031374438164527734691321858115638889176784609467847854209637056729083608933613253787861201977788321958579587528038140914910913597113083611828530838186419141110179488678814971839245795520733717663498630562001109161698904179361426511264057440354502775399477847762758262551394378465418680864303275201823392204217626353913401225882882574773250094652025233420822398543176594695683363214195340604336473616906061978676072703684526670661642796328977032959610993903279366400526270977416334101463239129450807554191431301535027121642338535950895297895035896508733313320525614886204979695942963821134398708066151300359460471126843535655191717391950500336986110008155773814285912573307370895378207352596064908261722850149412337061963746963342096575215026621569586155356543586963675717194921228238221834398793863047001573714681772494720400313446757536968891885102513513537744611726681237861472793091077466860504468696667924803830956798078703571955922216476225824353655022177258320449692666673905957078087456856602391337305161714800890756774778313284610369482784350040400971481893667702918709579629186486930414372706335709521753835288127876935363600140146793120632079803210132578435394917564189949558308216430154937428362012059486261068403338335426187673242821513256263632957601401940758404579136991971144278768739348751705983576000470855414278582475081376278773976352122830622674329975448002450015768203577973646776158710122739754730414898687046946105556012462963868618568777204790764732967516819882513527844716867562621755714171200165982033760493002215770849913520608167053335761593992168152854806288579621211395516086008374435693589812774174231000846952266622539666684167197919191375047266570546849453171823690272817198147181954730103826818454345426599096447928409086603191589084697272025099670035911998002883050292151641536865424542231043104423962759868659066096852286975609020779303048413056172933361669666809438453739923953043795988915293588472528678465831211499788974264324947216679047510931571514312219707069776913430175177727520906266030849795036343506346141212164427844886521646116358144281573290308508356698941426997246906873726768650165564257780802770868156268912601876882136853176670523540472875882897711711503484995741816052926662547733383061443101342506519335562992436822751772478341868517599815927683754216559355136069948210234698693275335564664296593707667889249506105773187168497639854134557950700995638556871056075244166247238822920162064263216919239722714422396107472786249850716009629008090491330373646929045351129270879846932515046105426492125590055423852290480537382918710493772432624564671321125602668526610746882182678395584255598933557247272955402867839607452711312678954241300309470340401744296890438286411504461073446158031907501289582897727445981682558808198119958593757668779455266694329009907985061730414575226203402227269993655537911468507069966363409823836325949864299548044310654192808187400880194945109957583229413322142777037318643543110886090058476391189953090032446760330258501136029250395524316397148087220138791054989580715465594056645774056982896186433459912441511332052528093746007212053554217234765407558467831745379327588590705531316836878280014076241607157712373233184712728130881399121174962107126986014050964452789032690117265550959600971272237360551281592259464675128438384217155380152393849690792088262344842229985932107089395835708493654694414451424409070733160843703803380145051627036540169339683269981363812320367103761644962142389099519899424253107824343885707072867704755254332559642483993642835366540318079031692354562832069151917407854815990421654913814216389795146958862106121922119741566603099847882643708708158240557153173260692262007404578041388815465210418031412622096311000539259272161984529658197589053719499384310779889680122648107068738359370015683668299999654707118308859105150189687043262280728008537877570368630949018829780042863531845924884526862394506649400356537111871675664448452769477612325053606697435706481015484150686227968448469050019376014823838266878772679048453395279190681408620707381641352225547334458336211247188608970550184023700415025114458704671760460905132796881568700194754133213565196945576133845724556455131571680031059832942736693736846862627148355368177514420982951141551192061223110435587457792041015644483124772401245022560755939374802886685789073752740920951687402362579654306667915871060298014620028148575613541695207089846295925738813320206564150733596902483730892254445021188714191257552324355753774084275027947455950436251583555261944510395151954721995866445280750697039838579678410969101367210096509219564291321283579185651548265954091368745692220042478139081854500499299622060155316344235131695646485235172055544908621164423686105760595098191545964948627403787125406415510096253436384386595177014017772305786396109343919507609170044706012267352910822223212226804770757881019843548082881802962328682143132580167676656490771450468252785217843866439441750438636439988492284612154217540976992560760574265278097267478390915617272297718857499978078219711258422713904848961629993520747087518999880187544794892580466819444791696310216234345014230598541125439474622199363991259716846135000982987870468343746317860171582555754028228339410468862964921051290607684850157991053088175079605803835986774407215542365755913052631669602355207819482980037144857914973779843040565615832367498524673728746383133982907845517327987459174291236346668326553257443476261824276627742378652095658537441190716000046018237124529232980353893858808465125115852550246678812298186010687409040841406886880078803024638439556220493929148261567954310831059065058955100290640608138736809519956952040989348191609121433535959865770777924706662435772476539830664513584869650828248781600217133550422540494597679768102246225488513757773791724376009882300084466297936267886709205447291480512889134502067742942553121178080873415761775155514895971149884554274777613944006292830465203472381456272993055269393389958228366000173779223940747696074889023702582643462658113895765172303122778628798763294814042941579461800053669635725420465775026350103841112451951571194105231105097349754431265239600106862755913103774061130057583572530315731836757468037366379446231809882972171446769801118682127125158939823271368884664678503368826875059334075463981432601092471359363011053598669675284709655466554372291735658604794821838381905790322903725634394417045458516580135285464457868016517703025649087402570309499335283950632472115421107367268110543095987343406475348116172149109719235831265351053242786955959475150641428199251541329221797522698243225695041714095732508004241048030047351211213079012882457701216565160337022058758325965235486166686299731769889440433104945750080176412315916379052509187509809820454636071300792328933085104512731327064422449445964434938425782938318274132626152675292484092622239818956002637768514023602465246948680860857849859297848063231995540970298981704006310646529136197496567763565885295197518140242573307710170321881092377003764111630630022411489827750748750510145010569288821320372667649477213214856867791698745058871328416881224447342379978116607168096543251372407815324727044027160947095003265015808390688977456806489557600787390906702299649031546134890604738639052143409835692699672178266262033165356507545368711002990544611386226099309652751944400664145598368977391126658087758010672585781388535864332036124843312563112913028788103949798272552118922854314349495347489951817624884126546568054954301629205859459504740754513588026332187937592783865477817801566844316751996208768565473137046296413685512241231399215125603199944242239343386393245471614699448845835399474614460074980367474506460334620863121659726108121474253627220968214999392043457869034372934721817499160700766717755223816033408552851462612394937671391841514584635092460952758085699062222258724819233920217123931315030703193045789251390212212337215160391518508859499558122248065428916901537059899872091257099143450033035859121416692543687815292815644296182924699781887840466038238047677600997252211625944161161925074683330117861253738648672859834523605771882355712266706465327890004118680245872267697499862946037342188374766671781713148223924550892864664786367900722378013778029350003235860966005157556063311572697803794244629188856242055294519426318154382911311013900975796154808962058777088087254853769845735459125315561887145364255168703380924720352516883659350341489215466919435452818901031544873784335028851381033185862672199671318807120516475591463133079045688473915552772731918641502122197020447001215906586224637907383420830964411705769023177072646045445557365850551018032710758543048010706149512791906049346610380162423807529644437486775821973173254882679331285307153236995669546175138846402111803197901754613585116643623867247956832276878967012796564905139668681306656678991920675135982749025813731669484899596331304070460368054398670294824675339881587046286281662347749898528735942502537446570319467831584874132931645330724416005623677745405542132224934685361481824623995368336806776138079971162176681476537993955532298658977739925033285059751377196213273427322860736598474924016651234268609784516809615647076678945582853012237769051195196572221466321177194590858570265136438723086754536316192867307315095671407945177383654578375135297443729087521377637160423337735780397330923140738328853247682562054184588200786554519421507977718062719209727303975866707560147456451424760845013921582916372531670566473857884522318813958559618958010787350785400934436230662370169135499705373354700960394220559781674029115284677233685693969103838641967364882406014787783640250423740873656323123100113334437512485630028049857567776532048871476359593673445658938490863604307406327041127151115751929714267433460163864747719701528630305358371713103273339958429667296192611627804865797730121806176331464980061629579269844019137495184556024150935177054429735339327149224617738665680059995647769718738321293590009314888372538563146544748132190304119392136102425832952601945712423840211780966796247918565602344547778713405010262350265950086244488558334477004143132377892504103780197062071339913934527637928578399534391802598721645439285018094608466387262662405064692808961604066028951382897063102031263532280822780748855795450660502111379217216010091272626274835162680028079131218236462156332128240966220704071921569016386233800210792176862881583454244724121833943102655033180330829554714706301788170970429947386258978241788232112246667572826277130547108030743373963898154279748176504860374543104246050645140743406815746605546775590794480171025913543331754943735292681562691091608749680496550645035947171499304763561089535885266337993970675393198275945700230190277490018063954888513861716054321437599468825897242982816763479392701301422656634088271170289910771818493066412851005902372062341437943954529970446536334506546424122462209888570526305486494984407593740526343003390619613707416321483649705117806726409369340834939032767333297315653534474069325162911936794965661684371094333590948063719248440831151885797964550855105846328690003447861657664829260921027522016468373894268563416446663623244272277789154872904474384460423778334578614971090055535134926736749045455156745730905070346335487106069560515185449309318381253914695140779144293112379304310547229685900227348524371648946338714440660472657057994930444641637318497658058042948289753638725379512406144074865952402267602298804829236118071250565495762376525940784464366169005377600427993941565042215019213246000087273189827724845829097848373236692719175918943363934472841111157948418177247736863581250227317846207279628867346557009187242315379088231478397584875247529600362277185778069970782190471777836049330054641126931259792786730053383138322248605744263369954679825810522927083798789918906405705016403357230837090417728054153908672129635614138045178298716268451843952066643321091533407049697385395509332988283884209424894462070320306776495032624277149023059574045097909603001019884915676615280723603516206634875733017045962130731187285866204514888506625133879150418931375836980747459688856705984787118056199270374640218977848202326803285660020513495318003524812781274130673822243627192942046014488416240784393832715903126744381180630460589973467452621154647337523570692841939743706916258233454962277673818995223691910638336300376217561793173524701131820690175202006541496777554447787245089553414471323446299103780673751316776679050831706200617093099144626089985649193906109524357667784031285310327473775040591597884436514109799065590537135307145733125684456500408638689975684004730262611237957031083492462725356381623317670739407224966177909134338805863353488462824157019677494993654562574841075726363351026334128695196487110757881636953769270537664878025118199529317415539967782230849665748667791226948153396552065029384430316168717345402138931920110878099978678668088437066572748990222376935339331898783918080337868253788907381230851587218392736971979365052868307140391196433741325914432998742234469474045846982330829652521783211707432489218636456522701189553613341016810525804005146231685898320785407513395247218477591657594494379112454017791222150456949777692824902516327804041935391516347313528007098191556053713071674808481536828143642814832315736663270915889358736128190279681364237674683264043688443004162608296011606370586883668603654995942667398069446022873282371131217408966929179620379753541833520201718444199867098911363255150456341853663243107394203237703947323623933111647451036222758760402696948186937397980280345140594757241868858471773307815742716892545930545754692218928665171489408828039464664769914088100288950784509643676439797044107081903823394921211082433455977267179960542647886176197864570474686423429444343800927608610182760770499460570470607144338562031124647692872707943770053581099701848766639795141581815585963872828922131621815038180654129682421394269519077209576446185785056192205805560619039025844793677580116680422544345784818726236275015134632192969075947077989302832695386903532910351948085760715686065503460430221610044456941077885781533636123409122609389945252831208593271572598074723827818246256116239306149837538695613196608020110680510162534627480821148415636093627212885479825811081176448340064928832717556044862061301080083487112519628455506403486741203955590968121377003201855113069184841106383744101820037360841296284581235353387157983866264728639345541917911384492805771126813237108605284060638416263419162855329450423785326467483516436578989361236249042993404664933152860104727339565692164434898067518967227073720203181537964142441549458553187620491943510478365651135722174672986739683457568023117532949530050487575593262931923084948397877951858106155090353366953772106429031694108429117631870868785158525241192384326027730118919954837170795854774273201144531105355530985328615134946538122374687488887845889550853887799096480942524323855891066545928579939173992724155105738342343983050153056308276432053225826196139254926584304178170567948381601936748203576398928646661918663091212767662121072476345815832920640189534049228780255700525543035848408269622284175900371491201405357678369252046451761487683927281447572453185648674304270327423143185021318083084761349274961149995322598344027923989233838383068130196532520447631262465899189230507980257826548787493938872516350414747918429709716542109210416918965328540322859635505142794588884783091803828401535261203145809123424296858826420246417066144584943780368206247112675606918353475420632199419929029571703039031149681164306839287697560911911309168380896382169693044021319885138580330302950144051845867830110902672578340436639391947487267686472397764447977122827345398704884939826121152787764507076175971441623911106077974961832607037230502956117876129520190156581824576963112484356796205449406527350657503408061296327126438350494473259921085962594962719832251636556143545616693768723251428956046314636232773257037730899782445491084633180224480840476967490767704759151653214671591865402179084543992911677835204762571842615722585843004583176095161718672807686357267129474366628206955314343563799995194879738217318371231100346025732896305214711626763124543874548198619498356994422995104411397611517473784924632375555341862691289470001195252470519160268010562307099936303836544892808359502959220706157157412193743722945534849337454400196439029957204878958759592716210303910831455313690443626209991293488144078372093088089279707406630928730715662938825269980751434604636350714507332259776358777049311066518080749568091491606309475222615507323129226863261832872248246315092120673138064135972069752904402446394530895163054556702761129256742665825070089286625298869965561761588837278871755207524437184361505791670658278378152345226057992186014572443680230442114299679276752196959703176280089949692883972298620752518553568560437082945777403843055753378675394419894353049427503155497497911492862518462629565940956052600167566926483390959518654391739080382945316946674241967623470825688184237178461909708889586986836499098215474382420160322086686363427365573582837330570156163758841418977817076752617208872075468621161154695081090349541151215969324118242671534982792716764268402415147660759478534993598676913120547766430029810342153922203131563952144918838729158716540816027401042576838139079403579001530807045720538173226789435730259501507713915540983363754649667657634127356137351827764673869539328684276679551356356373189338660405015887694104454855888761500780129317689538181762595523330973700255283306273453631772278331653687104222916205275232791761663311526231442451514312145026995738857194791132196984940535723683053450247564875829867748770300109961638343068176770743760843141775988412133581640990308797729600327380688517596923647346762799902941096484605407824012866784315527304045044935494886196303515298740311103133677754039789843952297570970340748505698388091991869213304703364079504232306413760498699812928200552804419476694029610592711653902842139740113936217480084478054634180788454859759304051863181254824301570674050910559210822931765491082185476555137335103354214485846670667271398736849314598546439707585473806539415179294068187132632332778968273525510005074691962644234725308249654513555871466508644438706530690306513527601873380626816184391690861416296679789592845039919400896858498179313511308200451032760260366261531174924864759445656220014031138198945139797600398401453831875222855179949404694060966135849385297228336182994181940597389043976542687321978957423416842275945143945960321289863741351794309373247911911719815960195885284790560729156755931162930432302297106903695304161949431441954877727984659274385647984117809289775815323306377944260322874257763554833114825701321537735946866318982509619253152016581252423962983695148627863233282536384859961576386654315558872511364368524743307357238201707931490897339318022400755303753259809485566942188191402750122675849068473897245678417518558987564687459999655762693616900624240457599229307807415489272041517895241777104936025528485243779968734056799129610549905710881501593117318823714099079449161131212585592495797394770583585222922424189153547433508623676690089740092578027183271099729204365065052332204559071462865611419414116031952051486718353888174675405533660124006235962957008583624277341265989886614001591323571565238154371849388169221969147709081151655362308241777888776086308147221846350265451363463561191493216262291069336706117732431715465026335889066275624250504069487306531046149772460856735446997840862439906879388118724795414962229364868779293217223914082147659519361151383286337269984323631979029853108079523407906249556998359895884089070276868225579039930927021687724537539864281280148849842061601087137709558759049887550384175339037072636704655859403419882917405434717660271992953761606075356908572668022422892350605604898816357507809618258412120621212820555281109687604349336299338167779911074876491689342447451250497966551125480587993517933045800337881346181368704714990865885850537177065347757501787455218384622078234581469232394913238212883865377664621428521273509546499224108084649420661118259884271196549217410511983504301407410091688126615609185392505424300320166841217400973349121630792556396912841464882820695153365569897962827624267071603795958928973248129673300855231804023126820763456878333891513247848182862786318539129432074480807987844834239971652306030360783860446454318757791438614929239088420327090271102980091364318087680643049628303504897498534282142734841894978783561765215706126846306992666107782536886089565472593099117438997896488525430879655729108073220658508094200481624126089437091980214682601218024553642246631450909153328341376594428028906264773463184347840111032651822172267581385198497071712795345165204848985099970636079360527097138221644270184188223742406544806945153759608751304586730164851324304687637802367895433104743314878126226710519807946252847036643366415758038139426007674262210231369085312663901615329977059933292655713206294638028173202530624472409507029511064676720946875933402940956891635756587253432170536626543682114546957542354239656306872522404773047881313596275131355274929779786604271551348698680503397684338569346659711654988368987884790628747973645414381161066734185892854520117055072846100860724827229255830049553635632185035200135178815150939700666261105397824031671171053882541905143208697441879433375418028429184566830454593438173315580061717257695006961546311408853273511599310035522934459498009016933619289277457073143884576061715447439542308905911589459459564525525004789573067272081874343439337033219317718872262768525661446754664480678275923619058500456790493152096724759373571441645985714571171664488849495545469872732318505750705648311848304917025747764419873556585533391346571907399207105478535540884036943153710798692104812117180736628183798007151497596880513601659740720652149652859147209299372651752465936269926998180458002236767413116370388406194358393965270278185818334804342335567773971903503728976441796405894163465941498692566073110343415604726573978561541834090629945102504034004087277089870452774774756937496291139766033341692646315877128442963524356656449848862682632306074513556778751389219266704138642509498193928201923254761470279173800523766425359818474658858352483011589279657789558106782500201692766386968385234858113719879541973133275259905861790128204259716897026235416860338006008870306685508290660288479181477868348962975258764838786241837757826085935524818042367019656151916387485651763072866311955742692688461207600458028038069944628593254990495922573119079772909924519600029936176071360402615926206097396116408038518355287527311484276720971725576248377566990739801739200171429532833552070315712352438677321892610272118149670654453112273775674771821480398429777566698950768052423932263676629413830501542426737589891452897953239041061312216386473672332357181895847138043843450037563954457063638810271663787925122885260280063676047857526499463613095432257862114136972675398853847452691150882678988442356127509358354931490882062679898337186440953641179638603841762729877593156991409548956688141519051992391938807147291400260481308461445692110084078178468332939103054517608612660660135577953259084710563852194327010895925024028274406615270666976362897680617710216154085645234078136553412188716919427053549957212840767865944923352235395544382836670927637915083579262287601341116913277279579470682509328331624326704629251079684110061711136777550269250321419552656974836434223552437880666708578907897369513909925336040156485630360384471777259887525507099586755815990273439281328974014379034045257089715411760163679151358144843029295932957886626995767600029938582921682558946724497968836740183701743071627656439039740374688982401812976712580304468181982415325932277737764052848422180622487085586274346806165423300208870096164369720926368791526848010747588700557370760469633210547064337467733811155749307400274719200711786364423478356811765287659168047846263839653677682496073168405992104968604164927410214524133090789302910621856965603860059473526073023834395051671532603783595830783189915667246393551908215398946920859053501539221192523155288561007391187332637888584862068834860665751779050900733743663964266754060896185207939322651423107768534011243856236509691155289643181735668531408414454917624575834759197083830230507573528860843377375206043484629403078965841934933719224581565099343330492629921695752194338283134386924442990080731097728687642675978744404993895681306743757598845282153249678333267484673105451588651959131093113753923423492025389504937686897516333521046042930814016906735870549296472775485981292025113878880290688648053683732098953678353465227755155872900147743266148319009478441618455880831043672602746646281326276443966476729251997553034387255584516231069386670275712077684329702737540837760415018133446725470967089368430572694844223886122682612044293294693672505698262683888136360789419263021798127235461828704801702755065621587874723705209917299217881609416288991176829577780328509744716796477116586820197646424776050971075294701946419285811965374843842914208431506893048755487598149232728326147306555357494001312129419700603759877684796584498141087962250997459652524899152364088159017129153871717823491309160814751095425744827522739213342927940052390062555416820588265492302181154055597814680758036413476652201586566513369364848353053581810445219603574927273497815066302759657726107585543967023478333632472401414622375001337927764553065538559871830701077355166376868825227608779986903961235714104203056194123166838610323875317958173953850832962070788922897348659512510015133574972372210162931270700487090743719999646363380980702695337402300443904637319966564881303549242031695821109783418743186922300905574209472566395329638380293596453348348215559896757809907822519203944955465049138000939044370692062672112769780511389069953731539627359998731998031007125715162167002451509888607248429571843173150318124184416396956361957805151857067153503003520216286267320757412082138489738630868204603042477356484602210999820182908003263576878784264927455576641306436894303539054287671399577574820087686719872025551931164953997607944372022793444916398858679626094283159837752479025799694813644837805679224086578384040767132161701996785445502966176941883475131800392809462678322354660869585686001742703774995770936809774588812948524669667816803647855502942458539768057389725637176851299754765109180944944905054319134919197831649297618515193129603846557430506596961328899146124664913668143852891072466931417236694181493328651854245786190068581967656609085632289728686590395687634515334159702666431344596816137053884671086704415866493050938031083052536240716371022717911759229951030818947029526675340375276888161569358068175513208100271966924246520006174587921697727915122943752810709678829720751847720393846921106767621940629718362513649317357523000988053342397856632953107793532219581722571013198555787790640085051856375227758975497466688815990337668988940868390942497091057177457598646952973412430701980558879012943226164531760503233838719486253515558409415636315099240286857046257500139075075906035781805877182262900466386998911017242242439710204644630831919843364644054904191399147039907145466600080862545031877511509433041951278653345347182564456897667852303711886192686837382716497470381556495381612419513628709582485924150875901382494003666786480975833765557639945908521241202830017790209231459827234668536720183566768488159732766101926612655146048541177801314800829263948234815756786640772637536358120224739211675302194233689326852804660187259443243053951963939436835747568866329966442586380965027457784859795616405466393009464257938271669180244046160828646075322302525736639335109389134978316393298411156419749099108157033362568205616197835515752638125315541406171243348827405412357894422303575790838806480134355681559332477665915774489854719330642615692706749235618634719140474209667652207757884911748212373557727550160201118975247091156923278405927698807980842950856321992841444820380658794005740296738479154447276974067758061345366679372771136947114067418712837184122433148891198911197166857482938325122112838703197952983385797621628829886351788214892025995158661845889587748982495697210838916283585290476953717420159179437065882249596533517605405890971376556520982521195585688830188368472557253803956668985879362705379316217713623593670959081039525537568499982758197857433592636846733364075234973625679156661155198632814131350465090270446161386663672700628341412309799721895190986715641349590566899336287580895718446090881647434719128027378306761788056637604719989873462363291766333718683562724253696685241215228035421768928614752169676401720533073693794420266325054050547260014864262003607980106167022340188555413508783128858705773247431884156847523049709742849833379498097781430867006468082085868046007512867021915366529349554675168597534978475938890756347395134832964684427078164779260446433655984051772338725881312221272827780352071882744368151894812104123243588521773962065103053910509720560029013204419881957175865820206573817763700590546423702200215950418969558067526740438691117865020766650941335182988621940145500739703554736008966119144845445580160838073205705141203227973672046624771497578287695587771916400685966220598449649094214000152585040001810016291185078742196957246582291034930169615849169699807329567876129259915102359590117196676660049253542428839139838621109035536414901837659757054173409175247499267521410460081803457937776237089531549178908342561488237315791719293971422700633864883328567753697232448112194224755846887579828597114716788394629884670094142024348724858900615877798608184570826026125941261191291370326878405932645803474089660853614598199971786574339881126144383736950806658493397725623799455014498454489045238987736840141897105776331302166467661775557597677371251340862443149480170923652652784488479493705622244624747698890175027073861693568837395536635134024964051030355612480650519777309192492484630038677297592761560086968405026545910475867520197130221454022431543799934348024136575136965823505047319747412389384583359582636320909055226731007839052101294767412129648210420048375888068935094495435739376822428075437428205006639317273096418307830359371116326017741381609274522135722609737666528368706640023857805085016642306339812472307625748344239183999653886248435593157911938059352884378017224022840904929651266449241500470947498157132632480925660525209530469636895238560857269655335082020437145432394682985252705021596708473331698954213833684053773429617805286506055535847184718911904498603353888474927092361793601926675902605414379192041866370808588116790982139095235143186116531447962413958863627559611315609830932810359988742271756447393328801129673553404621076974633684398860397387625033437831316044095326672566509482569113725231896361062628642468578093822616152962746667733895247796526186828712355266854443605587726105074661329173072042959162608287572554084515398091530774324201333870179159530401591303122621121420533451979332184461520227175942100662494237179354690619440212734238746058448056925364179306362327202661396982859181717320288223793208993913598261189365490674218598435006196626298860137013515329530597047512024049460286908362971970885918171159271086009718848959161470623384061461597192477268632619475662080527980402474484317880888900406723119141780665776611083046734490008055821222120878684879198851545355584671389116389652330279582773154323303077356812338241640191057621877020615087342458490805747333784792110169742723951283947437521950651697285626328321692658987644525984876896979354158426980045292934714479630456475696094686835690394046944699533889923912634194987234264571748073283203737550480695737246711558327310512823058667776326712992391687164321929798908474743721698787649825734988474390758561546798824537003532217923020323941755144346311939727878607551933739660647514370135728593261739243692207881458956936906646797949322542060712244093304731260966787323777882368743939992361262302427588238166413547297009208707127471672071625464818316287443954779868664005291862281662405057728262121245097839444488838905428941971879954972995599468749396353606691013035711728353873326931884107136796172901932489952849169031899508656258811072095876918645591827347923223070406081600249176751010560975436671025210063298663087347362440665111154178626557923349881752280631445086032085835709106724328900624483785610937457644762947950847476995069372757838395068380594187350553739047362224072790226329170969239926424392583560218019981266032287935734451898929727612849600274022179696250363066331945188399549474334716228760136895447903395838249550385979847113368666779526631374177062103140211917528890604499072019643898939010335711089206217503814940460652306046640658140807419437393174532610298762977214606373170622220740593887612738536960826195585829819751159305746683556642937773739295595067212304826784264077157714626779466645900249953778421005213012491384895960326386691844991490189550190072057751362950140877609198940243739262312378481233564551785287297913885835911955780011846478990183901039670884532495136710714144330769338611055787510472099116090425022124147531898111100829642990844686047236515560664345918200140981598604843582149820971990599358577372009019734923318460886957985123211708122763308408997704691730611740255619737744267280310531139194343696388390479142516238160742342699958230274903514255995883193680990445955642803919209307011380332609129929116415646105235833475506026391313036561345190985853130373034024724031353850624962746180504722542700589191769344019198208598473412287070385755266669996613369088801218874265352852434696299139927898580280887686351372471201598450537829078457042343532401680575181282739756343357173702794081816335431764123125913641268339235531763023788645203140806593915159611756467409016750366239866720389125446220238193529735555786893320807586257922515348489028044846072340589433626661695055175345780722098792619238166598699837605809226054789166720736909231179406970780787665900650065703965590268115267934984939403285941426466487171037625422355651068686368505335886482901087867200140207852803575589105382402200695917650350485014720879087387427501762193535289180366648957694167808025885464733268237152042984245446240548149241272155435404510565534429072462493971550504817884482274176487203046749683717471880323049232393239421061226430721916575196945886567813180917205148345127466048840820611983628048653391356200703541857604697066165290587302690225065630919249037288636280855303893108140889790010690948137528968446485606103908129537120765180242953200214631836208570401549266088882914876736248727700307081693669618942764478179164212500998456804660704212006567537483020978892005901209767348299583928662340557131681116002203024148806365086499908770475416278397591928616125873411540667107771733045350541111430565541077585822959575534565529286814203301316505988695396149424044272498233812949926532749904821756618722435512144696788335394286610380261409050585569401178263505710679441609950720276712392154034933890297658978331326700213263509933207475074231815878814375468778833804702859114820265436432672856145363822319949531893815839245725212689984123370056653750941911782782494902496984693789776516200517817255239004931837964897920567704534248967716147418669201938195793805749059698971325814701623050189880003986465776169972278530314410946653061425512653013839006984910050278425788373341222210886496367301130824718523010822889832780176656250972682117886746434440673929345482725419940840546993383050123902394260554891897820651576013716365609358926856963274027200958833106464875643959440330250578412318101267059413435520575142384450075015968839690005093725096068775688667996105465153776675055562693034952228924607730198389877099633690624289080101017086647809963640234826729749610135130593235248821660763650189633889852281193845551646559733498793563606692806087936429456148185144601535488542910225669264320714974511956085061051281096841470703877629062718579300128520688322985447013705280882445220908405581782694304658823572617536574105747372740171229940647475803270711158345737042325367164579835197702547166418121296597828548855543229596786463506005064812990715053580917206882878075346579963383850935598370754170662859220387283230372362712295922175816791754909111041523095430847028314639777991144594188399965805513597659227475763686887901185684277586135442184269912005486809939077018490691262820150846473686047523356750667898252919488026420215816249148724113753652112504051149704620072153945321402878797412833366457289667642258311860502923826769855120216214303628233868560204878614680735703234597795440518523530345925745372536110608792875903319618476646134342734939416421437669581028201919143721812505392732301379950404565319216172545638216242533156515613289485221367130015806790006892558859109548199450495324213893072743507140269311348254393841027416783512375482539282000917895060002069680370348347748716854432844967906885353244936104635085378338753037394763295012987569789530824701982900590451087663913251882740767746544403760979178233259291700534263058462410033803783572853795099962192750093265375877293679381455183580424711031966514355506277489376235438608200654026584724253816166522877875741697742280146747572642850080038421317402916452045541681855269495218723587596552931460995589265872769991037053578629899781374025720223337571773796431503202977101185014056998291152001573974874266070866626561562378227393378864202743807119555453427981358923916748894246175665888522541404605218613205725616063534966205625873358998171439838347660304351479340222112079797710797320107127631805184046109032874745738948716411707046874600749288227176457595660364167255820969042098262319650763388721415024704284316996858716303318201806870810058684625735298246875648924832799041290477927394124946907265013459574559194854337665336322414233644436129425943581044841510851910805332580638478873744073213205255190168192137732795545095333551471605207500122788957171514581661927005791269872414580257279223123375940809397460513720109092301670810584025886080678274565549655315542942390066417587259520588493442415463739048076679095459314309782422707881477903151468145012219551949664559965279208552987901832352621033720898860576884795894768291173646945318636645866439586642667021259887407521535759126318082789734135650394139836216961669276467344111194993395172104647738184461387467999973496906100410284051504323310488610821731581958642049177617526275774134427926006399142941991481622068117671894875541964224513558058333388478278515381161081694551597397679233306216603879711517669721241741775011223498296653405744578878801972297465769526245842940990604246111629338739235107589312385100907145017539376376292102671406539688231293297901180439736997117345262069761863001903633151914933265488051242144790506856561498754609397853914127211462300539955193105673228253701489371357823556191497973635453986964451879705896209539467428204919715460422539025265580337416064089936329174989091770667667239707868031334044690111107677332511752685683835370265167635032501394735405828720251547194518004631681759947739840787119512484643169643673891041126282272374633120065480525359227760678461606757946878869654632297676645890469327981293598469986374604763460840975306988602871364302197055105972905146558692679715834860122481169595683399746764793964768478615280277589139759940890969851529143518473814816894282548512911317543550499170043336136204288088148471692573218138089209199745998106075669623921604936665623143067359415328200813572518147707010814643992329320396634209172241808216139944884266046819585851451753800690636930026958650767491140049582047265417214180930900994383845465072107991546491678319074792355286138584048263692372624700873775706736685610388718261941882335748971186833254901603453018671430558108626214407664466056874371325312033651548135917496042791080666776306067509194232909663240719799312974240760945390151759383270800030908742321242942830140720578263025377021989332021491174351842156305893742736383603112423120435671459393688688968705282403749215452010065266649783044502685431925641786850725498679415475361327261701947213775335649291525552502084507753723076741394874343608226378101259090707246383493678578117795840353220404078723440900539658036234878363392467732829619613044926453229768841651151161609856087780813683614882258806180239737340684389940935128883828677484733058617191491943619506169462555829115767300341478630880705613581673883890191919539581443025917698684281164721109503006732865466246827161350860860931331472777340845595885693464911355938242989945373738402002333970762819986852975282474322123090611028614210115296347678941320522819159892979387968224721053481059995895368446337104990472823702002118245910660724369127337047787325819254448794725628204890762409339648188396134498926934946850448285060647007084457229032350122399421512120879830178913966279907869406032646742551267648932814112221901803584915500922267056883354856998879678981766569378148624032507795164679106336097597034451085092784939589950688114383191934217974034909043668333585699934481507607736541510688558583732692125596873083166972201857089254621856002757259788754786165245245289853278757024244611735430435668274351889759875011083441007056676096444707461831738570394947175992014478018113872940562572024669541779620322739851473862011835445182690986286717585590162874610794946349254966356392027543915351148393639100804039771385967779023104250055311105569933662688288642548686240327331792004676057806845046569678002101578660384341828641533877787118128698828031413917368108800286265709863717063587731679613060384913065070860569543397409846458603832925623246150671428802003898726666615902888251855790251898644765529236064077484200827299716548321230310993175913245100928881028141495146613316225094257495984747512016546052319417400205566456422749937434569238174219987572995227720060775028207520765377518961780945910558358338738382346396334472286373847907603735958328750832541285671880578726859777967123145447170725134629693953599825286486677592601361756672243452404798669837400176756877607591474813109274830701784998907857064051499264793286058004292944532883781886706486210628558096025072327484536014796641880348785339551024745402719457174926856979133833661081398178875707853186740913405567534157205345117310301126760584582303776492875792143121404193529889021093932883148887781101624389328574035789255558110223028887493515212221813688827962654401356925726585158182858615887254385510323359887157138735202318753369922433962920419909256970732108189008489894988450617107913331651672252726142638651085371800982426236448893955003004688032218790373082510751222001011449300974736783863979420214016324615956599483873190304297770305392563715142843795572079330128144546472158687205725824534412712054839716116315673832878574521019168437275548164648398878051461939301667763909060795784968225217798079396989193253425661611866124130091757998739684026698078758725236961657844047019024288850880035963818343838550366488339421648080026322345753258585186440350743569904059774044365607087604571901873100405093960115976443159908419699592118788913153391236039661822367621449035523329160161175852306873224596313038935330848309982849257993214824727715616288131767257230638188450726594411630990260621132737418393785661683467480395066831073687730136885895918385857741932735455440726940180289142617189242272305398844385729529106694122385633653208351042030110889162213317103111482862621463543774088609616156378159228758100762474934058879176119446527790372283078902152390526169075757983657389559122933036063773803444153250631900979419341295242743983983530359110812636600731459790239529578964100924800121604384642584478916033931245595854338015811158605240022359937051258089023269956492020941972207716068595083910871415767217078695591200425070485969705473048449542294727192643621472988140155152913233533732032074416221462686568261513070684847293895157162104524309293063159427886721430452632642651376886484214724629382096198111093296465506615241852398975630336195598305629510581173507182460912322544788472937616747381208308025626864344989256225986785446964198923661477252469310337966637741622388531116124756550953534904426869502632981081160358845754808641612308474982504192686681505003393953926863854248268229046591573504957709664615445646294614341829945251724119001617952271526073303145518234009762364567576887050204892447719672049973155539473766405706730974135229711167104953869232956706680173162263197572777472597153244209582367294234622489540530617705751156401303846984349632432902030328554303049035810382078493326051980480497403820722870805354064195673329547073841073254182590204685250982587044832908799424551451019172658708610751396557121276633256561748712193846314743618584852574946980544523793677476290608217165908972345315115777240357965278193721120126309716528593549430023894498040853578050530522879667041642222884149787644820386149408804744244396701415913219461493042528656076009036845030038988355183749106068844758697662037455617983034758857767743680982003930469578237832571906187742592271994155559928921061332779908718796886434856736777232750374529078425166677101732787821489780888905771270744392789172882140956080781831025661132659574336350887721382192600557455948130012048699667610282059685199051733829094631960732678750691124315468463594977067868969512626333718708275937432745765057006322924769052698535231815276124352390290958338139792948499862144027495098750942809127467247661634408277305809524432150762642728894994066898722085436856854583710855154371444845223024533515146701540068163140652660229913390471382291819440141949958335437789617061330133582336149472635944845662719532943447286786599472419315208534825023863851064689998138138193203600604679092291188777102859230792034595974680499446028579353983840241029665754400145741601096193147565657918097310212510957754174362336991807603072503225250416405624179485864825173412335677729453461129594386255550979344034777418955992236105785920015302331725182015234193680375329691576666913382346856486136119524626870808387323466508244473558116142854294603379773117378055671851167096188442264022158337342943912366565057716585098173499360863816421118422879833405703471476165237421981115548966908809349121570595741805108659317469093075600574250525235636327068215220660820036100674123913503495053959095605344230237439392710326062593743687458299128228836708104579325375598417374914170279460553859014272305926204932190558850558569195153062395796747448511224081472968179942230253907632383341994278405816861867652656374746779340589658796888715193182608378581750782311190403807235277019291232068660810946166744137379840264848047558207257060327061190913045645444272399219426520910484464269065489453551521432954184100001462135971918107368109685720225420239172650389776704863720601610510362712358631299023613537158561510297116398499391409046515046160943011601043209604902200850546793443469874854257683500640658830651647213809585828429354031665782904836340460712324562604169503077351117185239323931398311009526122494985007188224873647912060774104467942813667527271912699949240731778727521794256225680541820235269076605384903536983701276927411101625127428016597304183850775968303454888675851711047387204898621546007256570015837031160701755176191435473116205787858281781203051867232345627748197925704616792550944823148480628989760071144612181307927351415338238346738560716892141555571080921247064597054081836333894875357456678718653964397836755568510960418272205207932234236872910831385659831367192515196603035193859145116965018081049522823234167127277933142192737942237118392130334283439086520154566090512436237995734798803836275102017521068606539709419170793796247351092269915703975402314876239058023054499857049967345582788023644776092383033405487777429716584741321360202151412998635369677030094075550693663374090573418140994279958150755374213827399970685772229589375983108007143407374082854591057956357199189783739085783225227223372837063553400421744051361156151026087798866332970248112958430823327335638727572421277768210549102156825542337007195830906847670245776538619918782401080457590219205427443489130874950666324090267952975907772300988691662052381572364148105848964383154683225688013537117862521489405612272791734271721867490426094160588603974459966401262658660007385577834750373574539935168435811528202728853961438815412834462249682739526765215220647712682197898560861813655350034043390275677957896310720360323222825583355718423445144741224955945443410203691927429987198304901775494516045667612023203359155852511524209217559908365579503209300885665245247787103047251482918419585108937105622833646035098399984088353586995065743383497838716920056718737075965720837931369252596294007515196615495948567574471636876877642147025062411941508397697886795845319311461207985139162973272446209529080376605035559762320899086022042849359005514225216308679615629887566619706543713128208730107074249600560786575783384288092251078182679026024515436104729883391127443222442464090724180588202342515443522964914772336278595459178495610442641310675023122501453159750086946409475099900601841659357590500016443930690500848473362135844309602374115372495529233126678340011412793315586001495809629823449273158707552148342819575245026427484781784145611911655469977600591461953440737901490695241837230450376652936898500891772654135573370521015227822901340974866796248337085954077167469314167625805936915315045572664872255187706402945358781525056704597128967145587682395506191480987809039834338293995985734005261648825195914098468825453509758844703406679860476687791666124129332050275483745729197675283384350110382474930480258427154196241132161984915643210043379461446222494793953834925029993471205251769608369106652467451626056885275726043060344485306008647173000492101708265902631849202508244927725039506542528156269825946453987236783553572960200605937729691894960169721032760622523097074312146403608485198756729858246181434248014861726444622873404787022814993159284022729166383030809926099803414298863950716419883041372841977949964295958910634838952291166856237916901078173174008702548780306461174325821165359200954701818564226766150676737600671137941755633787547397692788824381109505394631703080137085799705740549145477270864048853819349486518504110716473189829681714812233169830779737111902339461612683285116442744679652312448976150123204572652891677954138932171478904460702439077365595051370914145516723150228411711670552502210570845367997288234199770267732949075333579536942696752465352918983630191429913458207044882352530178740531997714455394779721282582317370118518827893456561922869632882203791329121068695029863537848238389380660845117228910441617463038730531195881997625759075528522049899995335534945548369909674380211130648284491193045500952442545156204163784206166770458252327201352972834106340271266046925189008470654089440593341134067427286005196521766785423798370297892297454330106368663216088728146774326284555746231916601025703630238740468463829013508257136623788254011594260763392312855434337512789578915375748619699794021644752980482042215585300105909544048011675168839866002736575193276362867948881351536930793602759884611329097742189618008220994166671693720249287068097638454454286234548153052841367562099901833666738319686342814310566572047306383488242054637699056152819195973154519407565057390336682002150633318930336109535119890892190116432070354746916890909148381227467898851088228097464102807748565742104829268954167752485058425340432778126113934099662700077992536327709845129894700231285821886318962504395752815183567187863279382068849098072481809217189589527001796728342990751874299017018767103182478026331246909505717464933187830444652950315611866172698229969945605379313545565022911892597759128689847083791403732873245670740611737926365699469906575128152308384707656203125171513274082822998062741200653962718664549228824480016588115948841218357242729916280867679752552353324221986987178388465039867733555460513571983838158863655403425647047225349967857878706177469773297665073474631661284001584931773534894759443621930944376144984402393811927138105511931682270733141071228715246576457362383619441162783087924189133548987967436010642216026785473636401708252380717372786735542967637720347934398255298414298355875272044900807659099087344513312785871508761490578303737434891450732781864952130075145519533472558762899055345487935751700665502040018603033763790979853674712335257984847915781072326842555223329124597905225061746784794704152457466788922332228473129682012567644238373165350185702871321467089546689757940723058118670654400321410719936644695955205796265709239324890427271064906932288808387122283150485540931698677861723626589796329307039953274528508283344554857803393875330835860717972788515032882234699011586920570066157955014876397792854517008600035024156160078032858228985792124221414587920507323381053592885228829202773465056957291361270947342722613033388259997697102386762221983317534982698129690911695729299599804725607723995820764672867639441860202247115128474479802004676869857411957065303241331282100662447417152577431119698039468858314215767186968187753856200381784584198715750959033121386574705904330189049627106227016124859748751776686274537134419504348212903748875434087782754336153711256744729458901629415055379862710323327830839357608257360302660255180403758368130448750827139298752577983357622748395748123383313076555305935575136499919437054542702382122263928978476257888707922738087546079405956581496975455057437268666939549585022362822051402027380760408900933055960192442477520376388489664401772404738961814969283981578582619281148540413120826906291545620110852980561441772443660475588673642331041973196009736194276659515285814968291666674896807649132955122841834002616960446279191038058626874773961698183442423016415283256761517462100202268957631293999982229833243379592378850993236771796750665038386561961836674827972487725747282520937271038386299001022216101258454941681729298745564798261584910038605214110518038036485479009943423478199266250395687177526814563296940130009590108934779833969143646743006924702459413010028385609353563755304772371860255782810818785364351356583527222770086645064165990814487393431430810060595700365583481916954303366935093919624861609084583578267310968827395700547400875828004352614473255590520740961464699459053277465086590991374248250165838772076164403251306719548638929935144767341717812080110667261861530795586302247199481347669780370752391595939523099634161488181594217973107658440344572854401977145691623619575063993481536705370954808591784329532072624612917296441784407653683440901239949810207976672397738005268327131466853216847011285793763354313183921332862266202893996252417016194621954874192884697664782777792359925007311129161132956954655041820305935587369051140145117183077128595030153534066982111204140625949929035711785482205354688383419153865081826151340782711810913812497569526629856199273450938519916044674510363154158269626360031189084569246607833569712131420718903477017364482958886607892611136689121433156912113773146677670182266359228739085201330078154660111792732322221642899895825285021051396739339442939646528620865758946551840969588336154833265831201288485311741072162376483211261559524420775448388641520045569713920571428482123002402749928117121413563001629606683633686148915011226870816112711866639970949760526343587154287188649478799859585250303127509196126189503907267919227875950337737616324622402938864984630234396561324227641183510706669373563123787409276898293002162102428745047682059101696768444413481526305652266884349570850691600425229759626204316823816783621464742811700055503597595219204570444270254236737867018948498117843651019043271485564686087090049832914785430823960647603979794064705655770631752414057620941524702570777555075658327535082781972410671324276994393764148434632963778686834674361866397941181705023530780041144767659486001882787337912573475464287746025724378863846648153134959873810280460632469835780716882081553263561678564284330551884358458150342003971202728194915275737652602842733763204707840902238440303401210729167497730200764696828566012927548398565774349446313941799529789134371831817554711448063776191201435997485615882194343220283437531055970712487404671509133644132652542894515404850695331196609903492492367480339208564215381200478642472403176866884538489812652331289014098646364889867867879266949135276129595327060859092872959993450288214449460046095817912313421290406547201039438251852085058556557848472006873112339054705892842639600843917460436493745233982686848104595195062365666577724406621468458753403081891044364378909943587299074028052828179386341707495198359797898495962939221523598386784984114875936001044790780399264521547607747407095074987623197689575094196721334248681729354502746292427349415169041084413468705230182359969211087510507375939949754903669077104763742638443845445633398883236371497778356343225135800211328832008261550026092614971830426365694780538642119613162622230486006933926936216310046855536442942330836020048088189161147957657182425748504192298575144578191563706235840485974915082037645116598351928120092751244921801595862793852766352362789882446651536293448063661710552315719274749245478313739772270376356528214729727600806896739841023594906339729818926821555284705682607006825079405804389663733022012558845473220293712089072430184338310118483720916824252637496833231350902735770391710342785862608938003457141734344987951073805256221676863090221936277308986976940994976351053083060431166000808579703043986894095359952713441551948685909438195802020178376456195168100748484165814370468935370816630047927386490307639009409210886660239567773720362561068777503207619180923659955330512066372386341734909990652132366758518625776372846812538615629168705289655378964776687425937815495741555335844803907569386403252756418445249924585477660643348898293592747258417708097947692227194777380387154135402429503408496514055625204853415494430094155758883709284485839207461926971389687313125924310145181852006999942843779028325505421988454635944033853429714163029029974529565249933907460041441158117338435295701256506309859009464590633238586290206155063411261645310316331689810203200152753828317199447819812756251190945597379505334869467441251372311907338767732507673041946797311449008526868156918059659408007447912146014192626190734666073885004892684741839414614012957833579867219703978841684307181878429152845453676840434098593295321758539372306546832943627837055140614608335713141962194161960405135407007259043641567278986833472896615228716666459915668796516964194419881626412533352455866136898968944628973619373849967949986832305352956245105811305764436214253902517615344897849210502396473975901570956026587007273536638213580371958830492255361954054534959473379133895408418702998991208725289438581545078698385775814971848410563111023011808338439358831112529764210336313779321005069053029256248265261136519897963406978587612792965855469471324976145188331499981156439596159873486890622697085291359692605017923162425026303138946817496237084368984601728979800542223576483489901870587354562295258149463312345773264115635696075408274246009596149172169469990703456849718279883030647176014187632471736189783570697826533937274785759578177205200283042904188192899814821284281825948115270357739844620415722257983216685317117062148506941609910996629177417009502513920302892078510217497815026482360247862500991509512075471718600508912811306577752676720686948020180325655398261999493608717212706510331279470617985340922352764276848577889006286208022445901481739345937610361944446544075512006856645901718801781898545540059183954075203792960038305137942251835223135353830269298457597071401360603573577519099637274135641291778865794807148865711154596458129763813153346087385707960670309410249510578098708232319643185853640680639188917022299576463602234858699920821048735757738211660481268635616998364553716416792734950698564239543440053664279277310511248087360504192618943951619939991296953015473684145593585325861298980666000728429294875438482741243887311916331687908925536708144354482784770533640980705427908921328531801435052792018885140608335571515733489674168558204938415214232217676325084036422240552375694098181721652240159241411935147133543885710454792138355226182189054292134693625743600594819640255245440309783876668477264089843108441410448210971498302981811419647257229022195941352270415260091456445535344013399427013227271392527066656059786473703298024060728095289280202837956130494563661699448640583660229954644466525376235513475866045127481345052229316055392772056491733288111090087687475628075373394764977942762517094206778102294050207392256493242102476443534673701532659489471088047229870527388851677421654423987455681782766301353592895643777504336265527526801027044970583677842848393043998720342230934743079789297284712307382820611825165015805197012382857309214466445666222174563330605812011709444796687831303393265179144116711762465081262520082552741836344657216330064648384809984397637583813682443729923484589505627172792309390737850610840194777945871253023357542228218135357811397341892964651957945214671634376886438188815610167879109324883800616372956820234861912580575221284410728572334731251803658074646756240598122933525643584075825760669244454065860691911386748143240603131768569451838114584115492886236068674731435320018228542476499808147966499283380075753547705837285765117956174774173930048713426950689342902558093623126385802282006414218707832072326858100636323270143805006970450895546953274900210408846660969832366140481715664830185956835025157777523244510860476479280427041844866061799386580465380427133535771299852855937215412943888686811884437642251179045541020713186644472057932092789952700818320215375816712000729639823477963029904989671044008942970021171101379084247320963720738247014956195521857269082222902842348035136425921170194478995859484115145451841427105954764939371766946092285980819429483175469565821459750702047057614030240501782446399192611926955407884486157164838523007507905207027690340623979246498952172804900150091830650143660280606148007316069027727793335080886683848850758115555654578089861360083779183461431294310917754964666105139736698738535667984098300528529476067297080773541212437168114879408460935346225454850394027112818644855340679837313694172735669104936743064967089747454740711917488999745946846771963459246624232044403275390850904544155944077995651531419536765460638739203017281578583978373028560267063920828424742692068185490021315238878453091409072142603628248573574701530303672240197649080209343326917105908486291509627898955362943189514829421869232981591416314329683589705996075257990560467069070239806133393492088176723002104585396561549787362030170517381229189953384093913982741092314614286532241002264385110589099406962537372191307374249095206164154388684288375904694080977253900919821237311650218243394078065913214686194303247752568139644933832763142500738019912970012104765603894919783505553918778579664544221709923815948079432371464795453580849701554200797938433553131695220714649685298892162343906710003275991634333385991592273107717137292555429816912417493359457916512175514296226648977256377857090237500428634191280670745905094640798620642025984060553444046567706600676120049498517057670111598924462301879802479347112902208478980935302905203028821653135173721117867619243377666414235429172772668404395493590557187951159570683044961323805548672217291433272823815462158572468756753661513844606326443304304715065487795896284812391667220007330092829532087916761029740378300882334413121248929655108056133838661341691803413966629804767964374901517879463496318203929157491942058856382272002852284643462227607900416305046269915303403252802040106690670303449915894367024529579954184432382035956272353464301316830943071714552246159829162193646990805357592425791132308814988797270969252804730308612202884866000593215776587373358486729483626649005024883722694535723393203670337347114842251149809379701905752943578113754045018534178420039374493383039615896586483740635820608817886441704293556972498709776050744977285062207120735011174061694608626145421204775518245356597474566518903374510341992111092089061021971087283318030960190044369392804012933327798496324356615157387892900891528752984089008152726045072134395398172308910689112802252435609998911178752654354433592600105032666459337709770188646600426313037920750562603980867171500736874950206890662944234747719829567870463127051949124067529127598786141496051503703401003154123358853623673195037336302327537314829003799180201092687543576898742150392920586702482390023862820769191325241580745736812179011615080540955696492965569663869913198257935649706235771081665260754571201716899768221202733502437211737219275612726133200740826309931957863965250541136782910425568669648977307994852346879891175310272460905197790220919622322193418347866071892553193530521240805225111857317432950258981169225712634045131365990756068680226896597177830821356526419582373941124491087442465944348371402106379971777844408218709733149275534790716647143882731390169794011045902230639902784578192534289516393160235384168102902194861330472394619908440855220741787619980584394020721881607577201025470831059476210575252799207556837076894015606690684887855270963644346132007395611414740321315477096212717849509048702861901202473378585263294569733312105135917872696918508678899326209701029102674847502116813079369140550946320653339214017653746654343094545100719885591885267635815518270613459310649977866150319124450579535460593112923084363761091281306373539916340303538671353316023131984775621211953910899441097142456200694201061864170595131130930186946081347283651632223696674350065770342823130005302774989252564089218003749742151906009372135050095601602022047462238857296732747125515512031021374103121117087818860205208414231162762644690906090777465562868693614646237902118797569931387030159867860720037681185860572403925471151440677544364515455871512675219225792452152592156835718452208238989230934247821690627125226285147466466275389860904220279693798703527553740146548000115366152550611278297649104394840508365126219413605278879896130696141141060834674821503927873196027672976532427891328525052954704237320007965660891048364924854457605552762334412763876704282491461838651085376085546677697031567808160566356227562019752977518577711442794530573746207577643170239509477434227881201085815581852123259959716759003640290585919499310914875071287957574179370993386224975904263098837001675933738911182934921063297246871098475918153752622755860639578445484824728016059396363531427775911303369061992336523888147632211082632216649765780346749232087396020066369819793515089128444011974160796386862067176474324170619578414471952897713067403411455021633423789567890353183722647281969794469258764893748973703348913754697565839637578865276050904489017656863773688993183810901999781390959118208130405326899786482957206586789633315727497820185336578386434280081843938859709281162267028031505174898642223855111487195537469909509122611634461933651524808607681570322278762295902841190186225107340136045443972009130304365871230641520465470814330467036532721241032428589809093408927992128772037311870285717289975296324278914129135290068927112606662628383209910853347371978191076303142922893557692249321996653132669985641337658123039253188758108016111206981655311378121036703096397936453204031251673189031767687158698265463435447961611342743574246882217157058397522163596325046133822046268225746599157381273207174172097873635926827009744907870839691227354834118531843541413107701541386864937844633818401160415435499770622179185225431014982429925301131100276354754171847330246526440814316389585436371749856103821471077374870159098209447955212590336786249380077071293697339605922656182262571506207913251892219593330521154700254338636694082823703660455298796369758403896241339015371566918654002502597310009946492148353264173215148488434869649468472599915054178028920938173659659953590047606652948802095524290086189518388343726204281468349341114959152187559018035999216080787576130877584097193031720462757963693424115345168556774977714977065477475928694183941226945249879764851478673697399920614592343085935081769750141525722431709098716477048754113266028064062515539949956001153987397990430827428808534442284274594123801635338397000707758855779609317069318928154061251412100335087801588722407501792719724752874764912487493439155320937905583047247480527784463120228082785289307257131396214763519114693858338231696424505245078713407253517044482464783796402332026929576237132173493378691194516151604382517996099820145086203315413455127657317323358271079973050638357122910745631633992419098456843759085116082695980111507749583361637128007251164633724913512179381017093831437372667454517815141482826583734884969461128295373151101600464518902947408572581054190935927153857472872270556311757425641746237012874260036619383015625917512995204254979883880250969665683446947357837761261565352635367191690224118585979997894333572690950977122278128688560935456914317358512262547280363283072121024337986089209460515759988001020546326391296721661670814363359150641858202362851585449963347427939789356566372870003843508525348114912814964268755381896130266998364095522371376002293832212205339504511265706767248895567608185835743798011266311867600735744108320681680888979801528345027984844541238228742140127324282210359917308016926604386400624720363282133833401666376640937018298120759791354161136365630167694615190715675029107267465391072601749078733788474365743511202051823935228435482968380964828092617290314623896536857633171666550523944994943487784442032808649225033935507758283472867916111520973448586900741254998854724535613027187348711710578583887814179906304338325491717944690794141252929325563849349358302722021911615590046755059161235605844083040050744685705709761980616560839364287029344174778614480929733865868691023974337753305910469702931338863239563149039713137475539877132928075043439630248753484413072120297831500191499215646925983319909420354028530961246590727150814647781679941544558477137777931640853447243343483154964857215539144159985466231730443484574844421388061142058565024690846950137359469845235630489376092429282230596472396075432872192469113464553929730263444633336595429614871310248037189072336652041847515908834530128765675951568873995211826803610979722409530692190148961547735393854194795545565580623849238582916710869787967306512710477418317831276691368208567403132346725592712643713290904791762100486657950419739498448541064149350275593235445575939007915652055658118463600699767670783293548557161717230602236837491570307523462310803468119266911700798669762934764087662874418323784500390357644193017096920408246033455884913694053097407656562685517384332866136439129077705786468818864725630397678777707723267347725206376914341326922501559980168142582493252941361346856265789768694795848859190311529250767226518057266936507691333692871007774404163934343186042678725807137992153829264138480570256754810217967579561484957900030959165329168828162000574213582601289597489410431441020150401332951279474633396292313059055591762151399884368296993883627189771408465388715110668581782108280915595929605799837061391444945239346855450869824532380065752891412380430681195010752316358778418962956608165604956246658242592991994513351916458568221205961851990625745233466979109351682268539283901572586717556354496504251359212122512524454484220060114163705446464030975136971482509407173531718460073255439813820178947172855037665505998760825722103066304564317664564717387351438121277773820078127479859726991640245576491181745945893137064652248885527916579560257387153452805130981162504959645820650442134744865614403770627290740210783936126686074943562609551278070438559137324081679903275340288235304695047578405681381328221703640666086807129984886750731011995751385054751675075622922105861537254867837885570309895780135495968750658552766534087409333773894683568807192229734177299269197906765051516553532932549993111770071267492332020761813246815780327404657880982293080112977164144655096401021444919713351420264551293024694268631306608755901350417041872619835064492374945882954853662198707393570070596775189103136298659323159629649679131317286566774233536260389814801536933903822603814811549539930198481699930651324201507944297535956479349783741260598244999266495761808201761723426154990424723434028252098420554118162108292849937047401056438748352142034025858048826836317476956333491100620547011596855592418706627194996717286368864433597849682406321840199381644537059487293742090157044710847626078178719582955132748308873350420344366285331524372415725466516239765585659851900850825797917182589334849412489465659600226846127665725702362627826981976587479979763264549564257058778273292103460549221147312905349284285656839994845119150492176054628151260570300188583131247466356027649845421416938840136114549539591096987722539139447188926651427322890170885869426304496455658361947498895882687538354450047801260807975221753193108015761708548923993051854818009614190720985599279016358359156899616327392678210708868042127617667293170715068406053707287051693653352385212231949416064814196906885725579138740955915180206731560810643190468818699815548071668914856833625797566831828683270672922727878687357555720271165466517621296387578318971596542452690779458462510042416290461331435408494966762361210781081239784261540743760678624319418262946435935640956238704728481310505938041970068978681004480065801793816809149528429971279465939483165547716440434791954399085238801975401683433762692059432029801731017341949295218647522429297993322058611466831060025558523162943523576639865723797163623723934039221542287138738525370938062839183207575904969900418714076719614004952444429037348495723977394354707866916482079053127065658725775372618640216519745958123266773919454526557783849531809567825192208757695624906119017556589274939904799923753527512863344092559526834762652621120871837178982192997509067830561046440974905865687572012759944898917080596657449438886935179839176972761182111959000209194734759135567605944283397241552508447060863150155860177054749542372469901918042870875814674270705840644663315205600417622758743835451206042897758383506825511612146842410849269903350767413700772394292576363249928168577681789549937101614522780822941897474024502280575862865165485584581829333749144561196991532771257767779856488977040631690245892543387088774734081402598168282730259215011415450473474233056996905238245091701541634873085979208517565539846094973947816052722631594099374528620150221926543172701785864524891461799333584041109584721225146118708856763013751709252572403268509398428093539606173171888550040406593366537296685963788528244870091723822387199158827138057928692109117342203360503545094868321149952287671279865729670549912102774569154996036194112484294902978219708919953415160685293875754561805129654104946333990644269813585520127657460010371130671151708227109115950220654175609465302342889275197139159880141272091288243411516737178753829536640821583299002686421458591919216470099905293965508134485420118417945526899206070574981157149400252582507272202828178909650617036863873084042590305246310012245065115176764876402599559737051153795605287129766896831818765899165967924528479311019561816484924580804009769316571013818230295973890556664639184784116931167789253074002069620829205049826631182440170044735696474218066576105313822322838709195588380302861085998451792965097988242812440341946141147402869680551519841441063415564389249167228401926184240484257460835220068951344407154518959719232749733004652817495435003005740454155834678891112200740371020305892512818726753907235838073123989382989990447994509826984256696661940108211533925913919160739192032078242905469571345135615084644972696147192350963936566483730075152969521482938976419386355185132143283746272239433119400173251264070132991355861946904452342419171678015822938557751866804214344228789022592559445270782469137668987583749955332776476819152488170102494593586499815037461209775735924586214829627673084623224145594053882753616167839951433424145134490901678126485657311831292847477066805426399438428399700100324922728781253488287934304552587538210496109149768607803224696452267144329958483784535965975541844846506896435932211995315116637133709752886124664516433765344571478688476690628661631847907225729944000788372248829920330267629734129370559467526561754314688791321680104410899231319446021119472201926363811604441371053191742151300967256715874865870758084424260216915239866240555275779551989544091754658845181859958577660994221318014314231668407382562249145813834464716044318500448065012328826319491924033220282836580445634691150848875939886139153097785177429638917658029072348680448375507236788695593551251811955047065002973535187537801165864237355956716940623986613947745458399484695585394128688395827111771707829944774034454913952285414023654158705848445417688909871515499368465876549884166355261138219062310244190198706655551840025752385613045470417646647492967361630868892362583541904801747799640364107998720094131054296548686818945326593723986656521887156774357727352154474178025912843272843908823371642173255965572724823012791751950545476991216238691972415959036051142029056097206980812905011809374904601316931665236917790757274134307018937626428716947247463778089843972096186159397894166799102571151824063718301583228217254334896512412334123900142985220865617108662498297648750273528394267188235553581054268189042588570719610688956139843846994026635181871126183917585050000234218895930905006227031291354110743077942955462526363269684569068937056900195001025151404451267529737855852174489369070828186397330147098331429177799451551859055216766775351745523150482116727062305974568278791464930252831499574350758596593457812193853461651834350605380890842339729297755976203598738077071395575683819777381175243654011924918431146206982029749104167663614130687295285056117114528143177927708972842667442149568921583885516536527844594479066106822387976359266445810223613838868172234933493021231697078927728925668136819858830045086674195374403694524713794649116945108550554200547757382054934327488668583270730108265033989709401362624425665899957339746459266003569115633596304622745859995782651898654973164492188605339686364993246513524823017692449582092752404074297253966920234232002487004939671044192251172489756317135758396390558515340043460857445279339544681911254455602829157614454048488715733724045737848224568747688572971573928524704776178068662942695865226083478160405517658260008149488467450814539404874459027228230435374435100189803060415414563233056665340450051850119678577990805482344319178367200155014722181003733367724157360347840167038823114134895419024474256385660361433603117186146711698811973945865857997122174653030092085307831502656897522345632488577513662924644783224201599522532934124875423954291047249112013461109459445924038397182419724799871050080345450044597990796833173326669928484308912788861951322453291682949717781715433259023971357665445135441130373991468137950358844316493503563129003463301710422434565154263324542233815013508675426025495130972912361528333961156426170181337173110387176044467387916084632064025727938579301895766949666246348547414633605064369891012828977396734742144015296535258006532090802435542089956651101343174227569431915805663902709346104126844955020197056869923486794219705476405802153538188258893795985233397888705362250894655455215921020036491411471198965929081845711675981871256032986140840049858786600307932727993072838011649416994016764475380521783778093752836831814468831189755171172559998551634436066724849294692598588677680359620923723643801358264694252954973866399430533133603480991795207603428462388842782240922138158195060921703766043987160988556840001410658230321024267838199871459163346328934791997639649971888649694283935396059611623780679469956332284482868117422665956503004265031257527468556449935944265747636822075175697354592964017765250761060201864967030995572316705863874381597168822837851665699377439397520412164322382478480588027322039778094419902183474897917601287224355929794146239023084769422724473492420114875185121790749940309807545043781096747384613308904857561727442022875476833346990356533942730035033639957937128321820298607614979160888655850915243385168135822822135535836628435108226847459788491227746943631911055824133744019721863016789345206383907343069104070527584371137598480742098524873936923059449614985487554510085282802564664662488596793805734795425982818040826186940467427025800929758695359139117364946862428486336338532897284336214839860442677581110323753716592762789075916424300549802530676560092833209830423982361558835055416754332931724161180775839542940462777357469368896610976161997821027524949313244780593588130892427408312779297040348503125883202756181977952618114163850956387874022901575684787530555254834515117059381110959203120124574661626931537148175670075464949270391104725115050538351392284695971918369992102063974030485058043533856224529353505423508126241992335338970915325943578481980955455405995283568351861886882170486039882621832791693215261809418016401804623539027831724565923982700049415057146606105788644044084685018994401477111731891708648688077830099694489876535370324731293981727222228075116506689935277361520717974266077902900899463762560964441324891110556108774326232426902928152955811779411462810865023165489773882648875201689409859916453903361229754252606399455882744151653072216264219696236304781769221789382551130977342189411860051593868147665793557217836932525561644498925545739261516153616106539085378445639372330171255309128618925084037541469932096202092503407774600128636369646112122389825918830651693095800866886358225773109286900221762175246562767735018815273617221904287969216992558406976408863592598078946098429345580695489579784659133332449122698098660405830579850424286833865706030449577415070746068888339988037455103142915169106638328835554920457747286932925996738418675617370188871421825888034527879935131887102763150956784592613492412006621504337363138724729860009226932741662068703566632298219508222404087382933000987242844199617536527729676640736435987555185048762715390768128205815749855955258154971100720153381529615039176955798389154874749704266726697233907641617260772404483388107303627534436332215281965585975559499280374726170495759905954235173474400723146521305608510239041455861606658465037795936779061850935811680061528130909577438721660796605149358970493174678842296539634424473473391854242392422733805889876085574774653937366221604531089483159481363998910514055958488910698684976113827540457715037076466533201249121257902015137692675277815189872578646360086067273892082250348035570868989004034942297317302806820553377080876386009642142691559248900736051875042073027925192640507311175068294187823256916902102463707526286835350964499984026226452277690628762378724916780947841458360777317324947619574571938245546446020644471426421458601522787375952468732877755595915770824639632171320621226486446202188657529718018814703281706237416381094478861205460733993593209208487993389979555964741309741639206244896102635494327105837144152078834356747194611568769272641961230828565433991785652628052380449305684373400433449717886478197663629771747987680585055622496746018219452356228391710900959588849486639212479490670441978416858911088526094800970518125074577291139142323562668740833789178856628420752410126005184189063319617067673003968835003261744906091514940993604389292643076541597143464023796315788295249250908382861344946834553062858242022595003946694498999119418509685925593484716440853343729523282216866243469327749939545246628828147611138741485562547400589783653809139253714325223677748392383843550742773667741647784739178408860701823448365859119541941418970249989553666905937018703014879292472488692306235624148671079927292635910640836419939414848573076443853556306859252509883234537138694304035547338922098658539977531934204722593903065022519756453927127414224647920986419399427605938714493133695717086242828252878263541857477258055761779454810025279716395411418482171767215273037954269664575763454382728455509517495316103484991424722716025419392021315545410033309339024209515423331293639124239822470449274334903173488351348518875444172622504160018239916740194396291253105462989108973659791169800473094398372638449861097774135547740063874058588395024313104696984246824512197346313797312984720808617083664820565466744295336891438544959172169369880824766925660188703658000320357147282111667593033734379174249678316557271799066307451222447931191573017155925664587482325617752263764754472607760140000949744660271492555618403008445361360458258130684959288793890004240791099192800696738247796777290283209774298313007178051020734109351931996696396339629231420949286219293471645712352503686610733257788763973498990033270427527077525869287623428714443617253196971680635732441044006735760110499300033525550110278558091259494711206895099379217840084900197993305855000311507990335270759130298105370206436513789757396865525658724590521736716213441084336322819108026847264054240892994237548045436654894738774564577984044637999176419023143341390638936830659605131450694983671115987670879915006260263462106937642055539838416566809053716638041491388120802996670976943340049706943830715960405123012964795746413683526136779398919544107726899273615161075174304706420919691407414993813750770724158495595433522732466345894710306868776226360619099090277659879047313626336045874328772765789511931230370938347487624732563553842729731133291310094770004415959296822696690979496062767874606811919874923325590513910063350209209029657273051276298820075004054727334755002298969455073351594812767787863467899251182387907934407285744703734029172507962180998658623222725507463058375656980222772939346592386692861742861685795699572551644884782665054764662785110106041873178461138088344813387236755916303492431639575295673965056181192742559092740878229831256884326277916188860503215916634249283776165402462940940006216515079595794249291441134702398161808647808387100981023406754292355954877415787885060571664351087315718145570465732723539419862480450654073464373176800128537795828540446073858530672158099096505106919986133436445346550469450328456944613716027307005458536660788774676997941289784552720674272652133026085284742560548683631927258044396793169324322272226729506717958274241588570660044888565846908697119479008518994959775685387075682264717053422324097653308125254878569331415464725035375707159830838337591238899184474519420258800427464795681412000388580935674663727679872919650549774731546889259365654970317962225508198195116570520338376950111197148411025527630107091359133971665285215159665790109516178160467454047912158347548947088846589626672008351563752085460305862658318122768752561352438998335645484356852711327402317297253727311200022314525589385249250741432103012749778819586323983518432538242352703753825648003146756985056112773723898195195416460038613416904535929963260917257055432778579913850004891859594672293342598844494454243685297008970698293769944070554742028722631454460652149512151659249157519792832489713457024342135734971051956447217822557918320043019853826503445900639861378353383370302006002652470238637624697402381852960767392615711687865927231951660774849480652740181001140754344518738400854333637014577865079663188688277269319097796196992839034309575629334642611361343327499982144463462277369107296683276347178067336739632174104980674672200904403839016837703913419224626258617772090828908808499500763547558094735070030774219358322994134859972260814194461309834995623878215746829623524613804057073587837991520748133797811402275690158415844472340488322027407086030101736094569309041977037394596840760296957841689021806349839779852060619391520915541595696046756670273681771225022036010909742511934442335318931784231054918953759461437027147316383300006819283141163877699095217701249740947769070086655859285023232077634195822030273769230416762844003410046460405428182912581587284615663450362177535202179142771064392917172302139745910448938179920997878760949617931405975173683080345538329982681609230256186857101631819000691852709629735154215480122482242627641653387059772993504210813952495294176571565189845106875366303489375379897412462270801532557980373310076586954223715332005331319598343718856131364122867115934191091229918850218212364691037676602503266557420738084106959155059970249836315797104108803384245067360235075267431466206336354695717098634788905270395212323348775157800551025047654000519905958411232858112101286321050210713105623893027173472724776353224197474291571786425194500136149848032914370937855657233532034023136432079214372667359480992336238158966707718563837205285648239395626978649021911149677530035138906409282491281544022981373026772101337545971537096460248173134684758260115155688063819443304022529143700148114937124479944363891527567417093558103370565254817315471447806185850907449819744846021866852117964647990437892805873200826964855576610785075386558566666774493223723136893929801694148148635353568373095013002212047991629499212734722700502031046646068560598144649167074866235973563594529211115455275676944691663297119362764732702445466037544411535587326331229216589633335589928009007267037475440194348991664547728819747329628588989713228120878401023173728436776776657190561940341802742929565234601447060110255472165873332963323803146912918275157231394311112042142181343548764369803510386227598825287717300964064680353033951551893604119669560050466243000252593781085038684317082071381236971637698147538667119468603160339333681570115748276132979082999088304822513056896993260487145080085457709257972916017703854044052127062980261539476968502340419195682977406463650016640377271375543367021463980320153986479855014664332592076124344412250763224841269952401263597174847401636864307994970334445182937151566046419036895191794544361040009723178737460184873914133041033665179621360183274106191551771670417796552067511310015099078611142111941845795163990772733634233494863872488292880666713743503656605450895005272918116276243619717376402063035224925571577920238409508557297390200969133455079870655382334176654693326400820469377135256381295937780523134061575805626832506547555470796410993680212256360257267713808612258633153358938773483207353075558974608200893690885906156282200242653018677210287422157085252824964029945975129613362606852713409132490248473065036188828254041569628871906251492085682504632851398201713528423408263060959813501351075491460010901908604845709936032115851871914423564868746051410543048603696269535211991962353730051910184226201232982657142515787344335307222387658280978340119598102964644198404153982114653382114833308676597644778832935709809971567482337445643220914175231928193050044316334069331781986158042671100817093114485981187329889055501017257621672519412393171956750842444970739129259125254669697100030558154548240073552238294198692235890494852268339888268722167139630021484868327944643551809834639521030138693868265115100336954401962538530034402589627057252590525414619433262223241369435038370481106205077944538731667783682296577286856440274005429040215837322163633008304613659026649588008953124564425542389496646344989112415852061669535075294155072468660386920081268338248474341512296895706819575914881091505971101643658706796499416619880973139276021517621734018486201527271316124397961789326288731257130500251071515868974649999392438441569538405354389577479413353755419919956552672173472756695106371095081116401033446346888027957978562980221091339377496443949847024321903548778982345923074433294165189643490324941685288650854248223414775598525731363554483345537909359282629120401731487078921163063038915700077582851248360753691596536032005905061976158109111060731707780415295383589939285616844839041724194188881730746741331033944266647367461198493696119856427168880769051579403299848257040167879425000399395075478787015067813816688361514628355967267320637382561370139470131484648865479669958832585165600043916627069809834541641353160207045303766640418141545055903303506045937718966340088143437174105266716058942879346517759658910114057639544145437271940902196491122130859439454091818161682350560239477429272401447039863507727723431431930147494660305600780299222733343229752469787372174250301100820856264687737156758543386331172444865432830447294628904460284846667109265400100825946281582633469757969201592470497787963818093619559035718438424008658960926076781279752016945393529840322907507421301319909311032593035374114915205537287822082855464974657668198181708491073872411947940188668942678259235231500269450409128890682062609517893312052607908918123170911124632822866608480797297319869794321421118896462231158236330676713871433519888258429812437796321273694256725405620158150602436155133711642763098878296789732226011409484345411989743591760939158573144258214031102328653539301175366799335319643800670302685964750732658020929047963715551453928915373446076434038964988708090881343874221341343463756836511163410379942436012025643517094216896717239967324787386098540253879844540808063681145462090383902307421737597859742062145939293126703199076135554036352174763518878201063886416362925926384014247389998108466984248573353654591525735669470015217535956176899768339584111675037641660569994518547231088235317424864161662764172061598655741112525363405886110932986038897118326737907722792180827374667458296630041826851287763243187727420412357871731350493627064495020089176606527401985916834134618863670495906688194174293870225189474249906739026476187606647850660238054308079975762916753729108333752191871772388200903076840082463515324260022521257761231899114677012692230550059170931902629546389169578738785434875647254084130133262747285021658986346553356267225999779208683162599845465055978239144533895543604820112696219116289487882711879430640610774298896210137502901594111796070736901255161408470112514889090867645303188165857165739439720709282046970974251706520596298715254439330416936706561841200238927836230408634959922740471707975351101684816445113846532609471995387006392347498796269189469970775903837065329275104759922122902320755286099501683702834197661960296259800024529101345682450547924808421507663068494474287011002546249976268333534593007653172961217127359464064993196582507460316166760162321484200081997104176870214193909122968265126845090937407812642503007883963315518581068940664546851624147467180900292370939039990109164242377754559207830727827898221644155395459548539374449636071431140952689051361661461220136091617647595538075824168682416122993404052114504627301322501749369885644844947193940930705761331216530647834513658215915657025957606492924735868127877908182355080185815430416124262195226225607600255819189981250998196047199186789126704773073092632916513231316859154701295051669919152055950185403811073965377463654979589922513540154055060005835738074666327058309313429847998326756760230837753382781676144898741085466662104571905187791727245140433397283165137617894728560717121109678662586094185962844288172963979295290567786293664906093948660025593034884615178080623583984192386349929159225779548142620066954610239361973781093570107740672376671038243195477120911357871851591829626181169376239289481665671088109301693972894181125470888056956155694344915396340546104106775714208252265214351673729979831347587832848099086258903047084796931626015434205818725353931038733210710945785598585544557679017107479292013559811038246574689504623531145696840610884373053579452695770871394534395798071331691262018138296541448812007066780951006089596406516523557167145131829809961540642672103544012094915753376428318963926361446141762638219502869909785997749732113573019535260500117645106678775538688957354572839193874309048293640093699048573739416954441332863466816617357668942701469930178913074296597518409062432089913057906274072059862973458752983269000464317709508126669118196353525545103897894680498437015541045376134151001449995772067846704322184881143240643592382710582764076631234567583291343374854957768586302852457193451234031652841680191597275516167689502184820538232974834109990019064510934793855274789131299635218669532158234357670454353804146471381152146647953915661896506358326125490843012696775212264369524729193984953874671256085532474218379432833210095105826636178508417846890071157232368708180940970908927065759342525172869875820466373009823159059739211982796749578147261198671991047133120392851287078075619669381804197571844101563353758603255176199797712784411515012820546733632453997484322687771803294893339592594320690939566521563561879894067073995601977833377411330065025724555702362460483957388652582566747313195417220572129584592326044178545177696683612848277114138671075933435897015311948570152134822344164160882210832985632390585284542862524087218012424337731371758180107602865714443113326333623641525173167992636978303414211106717853258921262401293995113295553725994851481232401021613238872150910897462648205385506697546676223616070367142810673236823338578633762841750557141866966196278736534776302392693247628355995450505720461996720625885263979083446768343838438121218118770102751235752207076566717589083280706355960259926089825418605279247673479772641047195599663587853289387490707093747433084545223563040314798821758274293687233325143218944249105345525894702173523362281241099381666934465346334815718017233904222069513745528062633349123951631164571046615710114231435054553918852389286190195470049821910027626184607357617594696530795085114781689915617443500631385938141365103569862586560290473372221730007099331204674007794236529717877836830649258910655953534826575150694550789963720041790243834391773557142109307207693445153876688060545551201644216784498269599528530907749567992083268076309155386470800141909849722185733299285040051691643402547434830528537178186934444435681431980275280570712576007298740632369531889716350889498592479009012501516976533592342657431475002379937256382426596676442361198025625796826814407104108291701331493193731556910808267434509054038072205645324313401241364258799498028398042408335839991294726205010724030335375513193048412069977641897433788244904604249327278234847445511677230829480520073870854752478798602946884829342599672134060769783501996551063916433089810434511836986126418985800070999005774088637021450039886833011728102787797149459655011519323299562100117586684167124896344141653755520361736446146730684639395525838610216065778571985348924165032939537069705403805357508387239559258244708231602548246480866492822861940483076245892373515069296015301468430777493706682049971779932584092356288015335381851826540037227568665084990524210036078348283184559973618201170846908767458994829818628566157346973046688452875656273412269499771415982513868568392671690752263957629034420941628443202920818527612620294441186387653057405851435025473970981099199553872327399112399143196452230487527598596253396838343616940259217609820371415724934738203074273886231139529302877502845912596396155261304065606971501007997408681397392303979684692272729395040680179852141118052180153345079190927848840872654011446788310426515510221362403892309873958766110498783860557284927544776018957942226048627419533272599268247392185409583435880170557340995935996969924984172946637988485106059344403495996264142577991692428568956749228204064204297090673721427584508668667916884155737402788834375378946748421969849740811151229398032085294681241409150155372251029316914315919160382715714266430598584542275397157999522433543389397720665060452348683966579785532276693594150340294029502708501090979971531306665254360523995082427469796629450321427153881281604577606331925242611676860786228880563124649789436120852796720665919780930162754450735911611753877063219019171026537363406693203649521893768306901378980076180258812262397229826598844727824278065516460774033994162133782553771665274424125731686492823515633980162966502816117509792004338460719057068411115910339388562166798358511875542592838717301145985538508419638139257881716385477428985070173098546884683860816910150281827736649594000389701665529649683651288063054732145938624160272797112046781104985650178923182177479301575422858440204838610729964463028037454460246618305159303209960743400842425138228400908522839466032881923563295749222570512733069939350833618909729846943538115512881473437716417436945602600472706309405583421221926795299560638938237909630724868559326518695609139691048196585666337395279000798888572702260589193216886307713599763685462523413052831940060840853642145836754575646236737626058840445211313889589115927592132678542037159457109624422779691480318624219565625350644459415788317708095963633298982146550759340265088628109138720565964310997502096271984523320465228779742605505321238129770016417827904884023721109919719303938908704742276578806483892071997152152154379773876636733561929147914459588309675987919984129388676630009436326209810757946289816147722354154648061855209592917798246435518221027652008583028372023821369491887991719968444474055210306031248163054995369073971842470905042880611081892524366316685840864573066232085470801749095896038863580105771873913725313565355022730773916541011112754574541169133800465762096176593801400017001350585797712152185222364835514507489631291729315738375209966509518117771391955589371474833820096920498672634906865275121510630282131370540207368207050322346090047826323514365949135763769611480847458622026195526373445371163431803092402299994219128201521671899552699376288458319398797365676035670716363077592893284641072881105590913481696242768123313240478812614359624777855451380430969206837725853873661089212456225012567826933341546317587717770805646901140927342701767974712532314793283761514063244841135882101556310317315586255187364108364648215688272479628858483662963553959244208509742137708979260962963353561746705865255098712809815612649515739574005158025302614396942203853535087258493118314655716220446857010854790046532848983603608716878694135253562675908905871347409628721257155107756147325328454401535359393613644141008360655700298761582927413213835135460709578043053237152620006531799816610266369337555154320553187738819168421134251169283965343938846223238380659076510862245266083531662398919354567873486689571264933537417092122131629975775989961143113521071630197016898091317246805010848331635270225913277163737026453026761294465830288711890220925969818863356462378922478891304169792591460690382246055509407826874331348618940045693137398582119463755765618687970739937455815922321847011737425488959521347910776778059426718904559776078319521184683385954400912056402251298753006369813803758983875405278697425599745116015280147278906976379372564121231722824361909143957231381203414783793586088241323325883013909868771434647854520591973350030962896795252071138768690335368270444073848683741159414103849043892294347086286683511392805221074024900472571264780550399382370222039726788577724923877185227539470031606605642203433893634986345246007668275536126721155309250752442151450116334620746152177104530245878055773157494489904995784044414446028503845300816615851263604138559517400708890947249469162726642095518956189036917580462177930257078840266735402175677692471757827595862716297054973816039987589134981480300729151824395009332255260311193466033697304007571203035133400800755666533024062732539102822234909167132575074199530670456705349489855145602939006329315111255147630328477816873492905868090619607965214264773594842241900214272873158658043624089719487784161332625706668177319894829181409377837659796809881217579815980388532442371045360311896708081847390186482735083637524273074198713925960040539798786895051826123304886024578566967827643756635762980426426360273334460087651853708419475430393720332316652147873886394374359360773763658163879920933740013506348848685727030936661708257836230449212871226241870346882110666868066254606381238614928515011212627536627109924053319605043798531650116927707377215492960496366385003729657502228966817697651750379134637475497898480572345487297277105584434185064852971028743951380870433700731366145246930826891105675984551386372750318025695723390506011392836650321137784523108677600399562586237720240348291996083496315796570450251637185992130971776634454411072145636256649409899767907930417978936121429952275333962853778367085727621810790466664902387853946634111229428831092985313944051234608249123366788789341163931134651730875805852898324744482826216883281559706347561333005597396295491288868202885243429656018653898420466041565781508534078012937668415860530083088808315605958739023497246771617183776885354238469279825428486119424815074880958334713252576396960549091590505403485636961824198436530459481673895599131488007804524853971510139436751517326309485464852481323259958715758271814857427244596181896629806325542911250633403887308927539620178498182902947144476955552062566601905592059935877189044083060460713405346771525363741522687170300560000316083233217522698089429297415285331990911514554790513666372521034717365391636633477674068694883662010060581682268702286811558519395661169611070472449905437863460772491847843572456318825883158190918715229189384501045168435845377395649906822671044304975320174346229869290955579066378720477637313400305762180265547721271659443359430638111774333963278148344435798760139698805176079942024433398125926940029470394360877491504896847775224617888543325369788528264474603999088763248139959418468741144038629186506424094755242260618500875856642393168338156682653219540250566308925671851292763513195076565344448763388372544775178171961388211235442044390576995303117079521293821636357550052619629662266429878763506115675732852221403254787652326591056905215408179137677084512269556558122366705936756243573105666094334901504610915093650762995828492556640075276589052666495836146920713795908530035500618106644471466554098912431340179777092348281105851791466383054328555296345194515632723404803851174424825882904819041588159289041651176449273972358089888613124973171366697830115595173524160264437575073789690740199149913803164188946758482265824353569854287032271154016868353795702109109161030097857440497463057785173601052973314356408851700918958199726908428174929050072235405471027488440735273354025652487242429125607368726942637343183834384499496921192809470442357421150466250631627042984078475709034015002450208300044322012098846041175366740110868046690507885536201885752335044294766987751667449601568830177376428515458254941155667493435137034959487513535186831065492321251233565569720215810325365815767133349053784942607982664606183857496000827497604282873405439712990950384669318325310695321625021054510570442971506541648102515524735099602893702379511683306550439215132333307367590055764309489433130037548418284304025783216152559859076495913763224353174470666561209124059740958709647442414402798908832966224848047013871444698472937226953587695724523945581887924419455494344162404465021536249945520246147071295736482858488692297282222736557629806761455945200315706130781362840294906246683688840240710180500400124849582252653012101159329248893293946374964472053927995961325557799105535746504820479252688001153132310637238574475859756197284447484016614120163252327368278566985052188753177727840045200271684394863855281117579985836942599759158245433753787622355914060589514349400941871476704085854775893171563969365045186233003570231412006000000414637239792851240112938193999005136399032431752685481208198143174899847522247608321231728259488174605339163212145406436213274583533722764806596938170402200997783649293139226445860449668709397295848970616248605298850361116969861567682190921069431754010129201709380405088425292800498032011509394960434779525217653599412678700511701653871945029378696124540049853726116325882017805083379474139925850593178317774452957810487230207821581289693792607744428708039639065049846439529128986428155694678584439860991648202834270716620933964369732195724359822011432437694246826828146935607350786306778435657601459203187455396236472446364221271886163833257852101810676580735436400413421423963867355719524012451866977394436359435363735653469727678658843259500883415129351865666132010139609610119953939857763345064146884568929878162729846877300080408383338676451505975436951448909093224244654122913282655315775931038063143645158744479234754354196506059208390516173660700373135741847710645086924746525581884363876721602150547629855408308988971421813462728866706753255458287925122878373911561655206094563628587787391805607883528864531324336331908631419054244560298637297432362062784357214457017844665822507825522480116064603486293716715541279438692097792562639530940693776227654459056479408944690360395553556911568464115588230549508217974307678191435597315962151573615935682181371367715357658480373111321288673917838360679659506399611022355273755065199899680561716711473328564309521774713751172334664121248886731657182290883247121880332170865080857152019977505126044587468686021413247474479092255973468359748470407947608473992430773962020701457631213383671517412257710060423092680600504535029808058408704484957726013856505920429360478062117342303800591910603555627793802569465843187074229236467320934868679902101398835595263853560920061631818438163255514847185306601465925066784311674982215465160873659617540207501929337334189346979771003266821624885877193423064429155415294505481269072032785745609800138048407060986674373007551100098727678038732297347121217969684888889836432723520097842968664328991043768392059512246419949282755777580577105833233777790970260852609800743243644959935985458454508549530755617450581704828020363869834079610447262449107506529188528153428979284125088481538627141454513312667499425316638267817316461554638351409963957954856214249230144518222455017475823994646562355492935620071144415136200360379659107662005720258258268728801548009037270660977470337187748739888786931490487997197200261668784861864223026515511590573994440596985540471439855547864120518215261197098638710879756267752854369666777499036376377025334343069396752227812163190481545760761001434267792475890589956435210630710575106301673870851233973653764041638954209931219014777409472101266986655451160166666925623989331246833670194773784145488090991182505550109739793174615046392815086652713200305218708829268692295993211450605734689037762673036809463400827259537816470481021214338263907094764908578561923699985958881321637260145418545945612111485820601248734420984492702026438664571185897343039253801371487047906936146882708852161009569644080733342453421663990695414966664622182116966586194424309449146317014824076222390006153572692346381775328608970912623552135980483196174217969812265246597387748243308420846247335630460307479234240097173594191943476577207138994736253174411496464419052886413257072653325246837516327859712346027333081606158718936540887931995659698266070595567777567448024056016436662675216182114676681938923216986317389156215870432261128592755312095252121340430839814092109132811760717926147262068099677014846754950171060459121446632880691930867654581346287115869927687080505309005152702548129331689138497444798958786678247107227305171381087331732372592958557159314262264991062447226696994813904231834797811044469025104012966103592075423706779351388559946647145772901255554930608084568943513266776303326421063390102613739147479370283866761265646706784529390570451787526020357679781474864783411894149704373190429704780380628902878800641971335333923228197824204637899445700856015251228121206843641180593298527598897437591760582048085353339008447125961252753692292664028933362559624185543001120153059012489974274333504396219046184530460767363873361123846717325282664994895302730317649729967898127638336855989555143284506815438889522368312265223401246229755275253991879029257177501434457876627881368603828820891363022155456712449283085126107371692079992414450319156972655603742606802149997245689982988606935006370795198039587186992820984016401766102629103102122480108632416920885375021820121287403887374733693357463388595483185354527979200676115849154952398644710690707496241025202379244092912311182082132943851881113773464351674032214041551760355809675752981842949228811961025167120496027718561186955867956708708928763791829539302079984519346165706786901073601550683342451422444765888031270481060136190521324994373043635170822969532445378577888377080832114160010899842538313036037450591148604651335107623123367822179675373481512434506349979490588964102366310647802678123130482724650961340555594112579395220929293247813572116447242386345385257636899631680884434235794536015828518742403940215599905260069269166448377999772621414717042033914615625549834393972313237611578698589766070597790935089437930764599867498754122019899809485529061443299242507757940779834293847319996491371655301748096737823323535037528369878460555754489526240844083854993457123622227431645061592659314736628863115557312080049568998132483476393993525273802357481960715562931965741723086215143899329048249785171324525625402365159395585290068000000619970042552221903980858023656458378981995875684790330363731785496783112918259784480998783621307164255364869235482544418591849223171175961054192302069546359992971900689285438890171206578999234445764926429599108147079447585922275154767440673834022272979805657553358362747108115909150959039304479477434241625389358846600257637241882789653370501635850434588685159663738620698625924770244011249388132642416009550722618803289094950302004068066137969823222088005936189822759039418465542112255251487842691490637912200002077160258643642783782528546505294070496568630564123124268490588590145983973284923467808466108177200398962206316645308803963085082240066852048714049601233213811936226285928053773382237002203698133978836025356394685932494589196537994628952248809964106110202164267059244264755192469560316504695961183287676686318069414886057640774931360226271025543406445922005328374434395222855309119066146949282418746857637288887085559793610383125253010929057132601031650654925505068195991735110940037573323870261548631118224537324832637697781172276747076584501724511282007997547540825450933111201614007109554183095513679894333059856586275522166342732654260391622456972767756387201007689814957031507932347558190773353836609479072668861466814123414589306034822631341053782806058394736667626497043805671853350888666334733047819707781700502952885630589508743171736907464032137052848512118531307002178215431150098615255686851692655620194598591924441025609131141495671645251704443431241769765793400238378491726900322951561820189288859585232865539153066361986649757277375484344981357127568415537223939486513120186573727049231215980315819816721117582911513900957697600725742101601644335785469273831154167773647977156403870566073025303284627425531375832550577252267995286399915794432742834696919728923615742662111319600956477108940724177363149959689790165365045970412006151180636969703430784413857028782166794039571507622519372477174199818896759015595661795673431156646370176003997601380298878783736196935602919437517696285154173019165387679952247410161446500852227660295451736867958638401435683636357050016332306361448827486872192733323046075832267524633753064725405380390952071495459262981902570719282804699275770604496872477782430312251133672514612019048872690734978533390816213691265849837199357866149885037779188441468861460885555635253052431272398768118747518553274616558871266789721751580036227813108467757161420335922897104365373564490142394343643794187374252894314875068491406355736524994236980515166644214885663564717913139284927106893750197230768268379696764831021793932749603592890799031918638241246620800293858540922897299447789029402591480936144861715645697383021238775607645186194892666862198788407833443163716911964356680978023935771640514017349911041385455162933008156114580527808668469369633100650017081069655615441075514896945922046881354788695807704918026141867535629818304909944421662790934607552224961628693536978198102493385416072079275995314717085994510344433921231025678946301956742221746659645433886076264486198159922210127730971987390586505525276986480415347301667982121302012140553521117638568239610411638448009348862201865031849756957503817949011748437577172810865902049743458658749799783745322822368525630839258551218935909449542312333240025516452045010019210004588403531567936219490764784258403408517942799431457311282908675570035468574254547823018229927643495194101585748113945991219897312353738626152483787461619955971141938270228883979770872626321974725874379730649666518806135460532696614600535837781307569871968007787729550014659772478548260501091263516203318327881777027453359952187226885292222486025265825625098639870176084028363419757604497208971771663951560374517974478232569993922334158888944693756148639108087771677962236676098011143420695425553338764695230001270841768359187576779793572907033728356605605703257185290789769827885834600879062393813149883470775058671372787906581950185194375631254231696121684618709162993579130341102343031192759351568577928271074861483890909544489532838887464587910456225267262681074097453756274454491983561715927345777296770008193531224907035708096111967273794715215911786873227355865064872810000553205853200301316930139888413266823059275777659801771510327578385934481495079198250006169594860313164798033247184329489954341221861451957484296679849378927129077551543622106210808594389956369993738892803558058388072658698688394801151943881575529559819248605367630932480694927284663305261239490984320753598056747394087942584458608704667255291903308539260508011551972450914768579351442866137788785833715565452740901231446178157751049746551617223136284366400330729648410121634322731571088357807783896636190475760465649569521246928408481007969044026522484316699397263370197029653212853031345797736669910179436781737888147822515395660695110864747472950647379775300714087190329936859998582017752321067170618525119786803102370131609255118023203495384807577107128257511484100664313564015661176213931490767437068309714804221294107660375834049643562189691717774612029335713651185479151516886412738408057985875345151763225228213058474200852517947428298666725207417943508488349403794243096234507852715173886995738486066052621410986971885071254952085286936998597643822780028344119946817139974808688912838136230638859114668957679639726901157698847989447194678890833009046130089492050734327138305323803916527840577008351589932308637463857267576651521171733166776694922708345866818265352713023884437940864306991970994496025259754553298173871598216527957056999236388550671358860858107531238394943580417377202644450715714150882872880607586249055272930615676335979620588282721024629588135703872824892666116341956056420552196369087430303631528271733719674833099627282716547112878464487829872393669438312125784921110702756949476445396181847686990720835711032642324302742402985196674063364240689332509986027035380809327145748524399275847221821916380507014707606388159810736214799193791452325325042796904285114138591317841577026422911688229296868665013136501302223065726130315738184041907102233817863763674045906690939417398423434706812151619194297185468929594308045040120832715124390436711182332372443521568366393047313958760079258712861236626775841939518047428012507614197507926878810612034537711062504890487297713299557200205904272386439812940916027880707920919564722647675973573444161209091243592365975278383771561692302198275710962316337251401947907550357175867041062447940462584001770766344568024030713899818513288163479368639240528422883583694455849713632367537648992071687212634726057084622459339143917508458233191936774959834817512562034938203737535689758457418294452152925435316105935840436510740801107813878421732258036126243484488506889302308101457527309859831312057185554895860359929320607782877379037009584805544884256221206397312292853885930654102011219922355006525846576322898118094124009827758785407626395525976238685631924852343213822822887687422773928593907006528880310189423993848927917793871253713018666389913232929634902683382743009741867400291497454386320688718785488667926783189643748223380492041862707012068650963762633048488311895193365090648019948572609844685816678966776668835974149843692949293356167371793935681741552523750645101172658109234456843444608049707432096676503294409737412900716854966495019775879733772829759899612949245389603366737707819642899205992417918278760471619713886878917529820114134828850943977215899206837742990573656929582849974773471920954152198873736850767914536634101412496362231309726355369135728722222110590329196593529947939536158504856540166845288362694547714415666797218280575504266384995584656754022213681707883446030745540330655429855174818395190106890298785401047969320135126994174261703791702072734533671936526377109612397126660164108559745661405276687067655495619047765826160404104329934219138637715949274623712200925048152310033917643193055112203326452712473863038163122006058922033913157891770602367868246083880211591595318866742819231215473422146890769896041961357756319541969995128579710581006428960809179123906250693623371874299934867788445016779145138307634884167567978713168337358876400364692106121875760008644112248349546639488141098197179670839677298236897850252675318639780773860134916219484785243762959830664341250847999068387124977823296279981191804560583143287982974623477409705383526514229264449169288027952334323794352547008415938932434795364758498014540449488734704415142077599694795117660377713042739591060151832355958163301934910542530259630257257087640233450647193435349464597567077625164283791500790392350561798903383616404128507549896465430114257301823728371765808832398835509334700899578886537474805019439257755904587063998076347858553778075284943658501214758537113524728617132718327899870672666001112612165738176290719798099960801409327551086876667637736770471080071164043125304443698899889345990281103879198333906489448230106435046301485466263413541550056345375072654326505232772267702282167721049872101483261579804267976262346816231441753923701279771037545169921133186686819219764417395900082691082737548887274846667897894202775017473265676228339779441667706447740571874374539922399222127295504991971141936861439069250057173016254272377366215121260254142839885441581618299908508731649390759818260773829350982107780180230186842673948428037217687708266314868912682107919506140164888584676704617197583387899140531620422751194773190541654860972131654288470558420306759431269514791988228064266816619240830133670800690624516742254249674999670157512326707218401013989665019134289340717006386277753461019715180722347036721619024547029938181672890726804608965058442462855294095337855201187407990008840133057016812685893514754372947443974621129659747136968554124270434692083954318197509900544368827043155328560263846417597752977454822365689560977237732191131118712541223316728543546845156119674436945638489044394887739952591732991445488451154209627861229756317403955848642861802214891186718413549694695024136621314804847876263629992026987624191971815979799626042225277709154461726492033710473389473807835521623754935413693439315428798274977418740176729181527540969121613606353739238279034610325576319600356130878690950013207366169285564467937020992351942070258835518397759675579971846322728604524337512796078466489208842997649930978091217978261575662122785352495656668236303232601564431121345087374174614302754406195837218140476165016965957715358571403971536832094080673398844944951182747448319094877173486710778528900148512485721383733742403143941632668997660661777156207902850279472456479883509346078572473978904297991902776533315514782519615138477253825698178380038451298835636742819768047179473537833524255998396548042133676740782029404554487406970204693457352955347199319132577600047228057856315927076387701160743119997921178870760440551933211172856876655191909258038130838291537960987621356115605852051268037656579076558779611534667485314711902926036872092503667584517644927765459661261700013829774315887003075817177346635091218023210110744798756129819379685273460838204398077696940535055547042650816618657857742651906995094225537781097295142826543394170418676983705816206979121050031355207733205205901474036623034235263914028545327614286097370040728429066054389268499822996878275412518932614428330931378780290874799074860559127358880098869234162584740805165709463140106802098593130224292497128787172682308915367980031633396833134252783631093078017780882180637196553574248829442572233319114020680339146000505521165258769378968741178801907571962599210820956555000895822764772361193085912492431646850986257517629608797555582783316561886294036980716213007257167126409407166827717607079407924455550281039526152697033456842222928460610770531193689269694446599009206510554751352032154230799263376425444740570903573298073039171866569009940324898830222682256972167975999593961467419032037988991787501043467968418973243664233708011276776906829350563038208919501368024627887187491931716285928273122946844612139471623474453643915310351440441446271990348258219222015830319588282847250026757816142650825506337337870156938449862489343513683008336728391496231242452521265267200002408572524447894637879570921235809941017442723658857068279900169051311899375035123395723477678134514557108462088234200389128342948572364442935754958875502889880821017737286066557699988370970945533121101350416961475417731793661635338233599678414060892173951366562205845809411460439146523733530519496976344015566948777662733346069795592932367791678970431688967796756963601846857046323767002707019841811851359746544824069610563153744855666111375033333789481838405032863222538117219252643706256387936591362431345315243494651760963993398144587148744034491703991133683851393007886359302018876078452430920727033339924818407858309355896027200862249612851658655499219414395522757775292459930164279135956742819926490957348685375006589531537270430307831205974263629177866163775668218561397019203542848089015348970557387356562809626924683683095132978954804367428396437695323674022019498357792822326215708185917791179234946132280629848054925654934760590792447809447383839032447884604728125425130590324236637998637180230714036395499881161763851892599687168223092837553250134180856945067113186159233037754959866342832625657474757709749711111043946350901196586414934822744110619610119381039760974808392865846643579834875433027690312655316818283782021584907137481636885488631051707207925016651577007087986759071319092474064398695612474299516518785474459024050485320274038789704930251979414385288300790212292474257498045961775547647217406414911605905272277857765164509684423385794816636972803031291631040029412476430417285543095351115846132944407324926713930696460681339591466258207089566418814727513808940779533002910381561257435985364950948009070197903075176466600688935421878288113809918590578007522686995386461333535583248142829090477557786128634201839402907374601080910329299638313401455253311518249734699839910159514648862946608039161844845309810666519525008777307832523332863189031158151379500333368037365283024683199315976178343403054071131210539497480475303927910529484811522951085686874941089526273467766080886822777435810968586024546606625332799324074729277929749751690518101600348775728366079922214343847980655641133363483695496368038023430560254438090152735801342134813195394856910227026668960898837799047869397388100925744378156634634596927343571679993022863256530077916046347679839560441770160067011890079362222362257184522352764196746690297970783613373070350075445796376318305156481394614048081030539834676528969580172535917031930805876481186355350573399735450855695963671477901133497750663698560031629629880158455394243732586307549161466885961834637753245773154426545091247794433712941219782809282565673983194159801008963793560465333000511615836296355197174394328020297690366026725304588443319517509183886566504955824035080452226138278890845150158171035209675423228050832203901463382029715977050225810544612502744714496925590884980733144381081017748914618868419289395965423918602958876346374245167228968573487899764047485310484526780571745813325750844859750923224688984043105033578508605254406462068700242614621218714085407749999130529674907965038813018322510132660357553534646976728784493802276404213192577194376393399866853648859040445884921159612917653535460268024195753866579720755650158841084790751885829341697610484891184963104002214542619819353487003748306609442289983412206145979659118359233730176003196541083325058366322506829872489897031855998625604596187969993864470578100473939629332523912053440861369817358125245707816262377222873883083766955282430442066703864441152017120986713783771341593039893219355983009744215235399464387355447111597809389188406461082450239252232532816455451212409422952492842955463073950865659428173483446301330155236915924907075269971823385705597639502244433935063650455265289227103854821770821075973968101791030292780900532154039317060586726479518124778149428607254593722548804274395400527331038387456658973397922978990965828032920572536594406585525807940931436085728938864949130392924153550434003167526791554996800422421469048622125666305546861824617240306037474038887143655697412928631814622136039656990585287802778027373066218808743702858117183527191648739153610041191367181817093535297426395281762888589518766595428205688819589191454633550826768714926620109270026410975317909578594395440162952099813154728895735721939616006016518519791887219931103261719364845052766951196529471609580216001854614914697085225589295479979446567860968622237688719014140353755181513562690436762169929841704620737682988111103018584666536690616049745053158522274198053311075474736279338527360876991335306114445735493158748320180520625458384867420325145413172619948834469903062757179378363176187544305726903271851960904532748296162285672047006819610927466130384962117538932766246142556087893260460961751449965794558101961862520645143553143360223593159498756596675041138086289336058890143546522414927601484498036336663552403883414133466572819574420198422670080871444892479491227277021847759351222231732761296612345710440199460686859457265541591432161982542922458694498163134788111223054426849635403393738977516757519505660973574243385122874202332252769973968538507858922210603490015895118182103165932417674264210046524849749036632002773869168341433553213296866181102507397659312753401006922098929459252648507150384807708069134967101185297957553429686993905381993700418641929233021207469234200470377635809701902019502361531778735461969029392561821860020431209780827336701104372686869126775759707410255525201843920165676232552396722287866037781976690169534649521957965330399942455709860386882248082188092217870103728011731193278471289987005465651920380416053305289349570510051316967634388629922483053539247994777925795266341099562155734041151519326941178350762277449522463505484814852378363277104937249096434621329632944778747306391569885134761926772003559669345560486083211195330541649784480959259065593075896646250237962362146021201782207847359336341346392966902780233376032884066515429918649927186624018420971167738487238738176646495737138405512047970207087991760195150252812385328789422396533793797160944059702852910557694148057527443838910794368515533522914431181659661692340752514207919440073237497796733328638741619194867637581483209619741522122174869260599960665087137050432200877160481126860026839765480687914806947804166729176704444589482225203293980638262662581544305677454769338779254091888650811832647291024812932705376639156938241613042531413520627494445443775653957230953217596707327379233691738715096246209633031642251886820951631963040027138924073764527438140876506888464118283757353983872130496024684766939532520140418852038074383979225388308592087364172285737471208713818203569229176708395831939563154005030013083390718459730322102285728424812942419915167207056884499557650523675689959567750395164909110834100864242802231400007640343825152502557667113945571423714600046045333155031896437446578087232288732449604981600055077662543528605211755990642648714865860383072544252978390838649131277278894927281708936225678456705672727673090861515932028456027596132816105499018566280860228586940948256078033566314302506863105102391789043878442444983083654261861090595867432493912260136786692390728666490761267496965650181581343052667562689564192497125314402257618488386848284143372225977602777464298680213457036590057149110764337717499515800427169029971102851797120790806380144317978093525830662418247333678836320271179247128822174562432298753294594661493104786974709635199965862876746634768930650701778316358446311464788708662323181908498510396622227052120604682961133165578395327053629143906615017490439086167158017428982517367027339014903428390610227898749795567759167052225404944791108275194330870194788796152860485256046229009190294110352191475577860214602185838665195058564330973155318257641296457726529497909457805870636215800772949621316518308973337286781346709814006225508922716564004742766704548261872801832334758010290502872908583937472073488998915124229440022703992234587162133072575726223835147722015875992633699215395215164965378162561434126992545694338479082327100823598348926238122745730467150013858417624844014793410821592405663261689456494584609022028359209490400743559853338244201822151498185147892542223800444580255967248335475232671989598723256874634254220834762293731421687076749951872501361192514762732354903122671955601463817414958180978362610563506638647426227544559285339043094181158493281851276151018983600354315829806080187203098653306824653280595935909333511318366253991957059785597931854988056898509012547601558605141048240814509528801226200333693974945820036031563552294809833151785861157898638838337809491226916908000259460781965811548708418383124797337591645153653657625615555698043673077167563988531886494393825529319680191681824973815112599740588961636973698699017109582302578708117890582901557503438056361256800883174121138216102134921495007465328771595351625665796647996472733221693761690985986265508193250312157688400381119664224185015813445609664499260572174170753966078379323068928403324991912874130107419884684123361225007633444126774348282914945468385302305217573434648229314853861229743174953135854580429034153804221136945993713003372062631006647966890532700160740376146338050043045111575952464750662454704597203393091751403851364896049788967772927156654162418338678427756720560215633949601284600509239298784058342876054754327998080708463376285816122449757289796765220339020968442344137195582638034200353767194596274628617630684687362466405877472368222559990508552836044016901740120934483605104745988600010397063830968949743775296266681895436228694185180820427619197029101048526949569810945451947512756063753029418318755289327995124102774942387646103210044633025623893411981051415712165382973146013192433934606074004198396462976012770045434191245663584839292270005864541786413116280310090194797670256188681599883633889714466843623595642343595724557678982054773745032474648297563801908930925500084989416780981604587895112190712997144916802181859823816176203351872542441880238075617287901524421923039361702304231879796285567713040234010415367720593906870681181093771493133225961957864582320586520100705721176898704657582130655107736894121191853907231780445658038577572855637762545237375577660454295466840695767088055532534397045455450125811616405211626886657540467615645439479034596601200887980263565966503221462480538636746518849152234791029062843352987742030928986322896439729195813141401495695593109657869989903834633054248901705162255307603883488697485706201441808149127261882488565019316247996272518308588413587370140860006195338534205451429155324436935204501096183577811095609880348785832588503751020912165413333053288462769468014982060559844000629286481248796459362721411661384797158048540294722182837822841835876719054960499864215553440130282914807356213398303597122462371735438568925402976272253674132034651540497409825038591585329058880522262328139314475078971290684963531291876357624219571187871148312233573147113738002333187928541839711675028193071138198555070699863256093852487611250789121735278418957068978351091141860671014365831328021339748284659864748441721429281243408366576927075633586084799500548407771995343348107084717561637698225196056605503576512282286494057724745311335971611036785812426258962503396632229398986220658566703584086591417492922838225456135397539738114325598292849058388279737353353324991273757837035154704436947837955879663158147970972161867583698791011325300388097649506676619767938275194050980179304318962342713944253079487213503796253464833844406635982288733123469952078099205804379729235483053426441468849093490772643901592618537393902082266753673907161172433053146468551357408801554134088327815270666878286834528122805879575423946169772507765836100350063603444934139979607658870115578858027520703573911457071206173689125443704328812119909839907399895150556568921003076081037524106081376396977147431769088368643427925550163991495915500013422349119443954358102515762574782218682108089211083410000150899356645394598103271478898293448051008205452000634027815380553522473371319049812701114985781176621679348743998864393794410567567198332099593173307311355360614567824535027667457120886673866108145898418054868983428379783772256193495839885251338432621661131500923583919752748356441491941517645722556555554343841816847887242964365488256975397984065096458292664199021045628826195782408402437734634619361437450991895331388269580233590708773248818034953317780754030950391935265794500327164772106382649319514543664540752654900851471901065406183456449612011988364121556659636404251886791912669767449436470569173766782130115540855779194872032201699686205968550567845317368111196776182305305729645072097166839312634133825195132348642269952913715022883433085665097228250733836483923548329841281778864587390044990262472753578621867638971646642320571692771941747725473355010903732887607669163202122965919472936433895524518008507541915130675632860775965458133338179580715583548106366145206787711122365653243010873308941936891614025802388843710548371376512705163369889420760892319620123420923758123290123286132362469047193232962800198640175171402651279611779417392577976421197833492921228259779755982975795446466044169440734338413933329380811785924480169841715342953700782517463117629274389716080608622017870862098230707684506498506686560460024694247790406312711678974217803632549630672102000335711890543599003704656271548418977484950557064720767201885312557586830446943958669679637033438839824924060179094811372167403544165853467829245591997854175232116800410824415866230380760555382687571170405717597315598296832216226206526311165345324795035316702259082590443023429146342674713113241341558948085600609305777341866912823036279403773457238793836426843266818952598786154599125059565885067547250301958000347332945656209681953858422982555403909984523037864292195724941766250157669312465096738552796020982257681065612548769737786674866264146275103286774241709886989203797786495805554958240718243668064017516830714175120435742143422384804643958980763437909243248239880149277945165860731932923565926111425363620721022530344953234351654761294682729515885276634101875388089856314350115037962369856069786830649773670503427284461235374909492004854454812591837790075476758994991208304557128326506806567875621505087022347070941891533959151604960867454394264820029089375837723781635535283212680291141678972537384794700032505939129034415676261728002265365178063790828623611743843763644607462414881279009118312714933414375964748384064206349248164031257197827265543410053998720839527910796628374298329242308321677228998660575782975490193029284600489728083783857727876373841572358903704052852638793459600946471228860721095463621788138353129971121287050033092236338934623639122020308387670791007910310561109726601233211008230866453267142607769042594626450617922728864428433669085951694714050449430153519391885066609118047730470944935443741052778760503508201605262276032170999030560072724666568256177139388283580028939888850199927666166818783728143484396470721778477407337771943717597485040457584454432152180637256870541358211028395039415632743100459647364082099034385724935278474676404401305256338528690774270127688080809543374613352816450054595071421084941459122626430477305793751450145062531727874965134917470936915060740475915131397422889155731816188290007530238447340447923064511043603591856934180237387220878981715913068834668851688110173615139863367607395921495472549428504075677408377562318584133811851643930653086210204358260416183717735818578136012981388071470852054690779977256935831306717234039598608494765451585115294316293258206130648160040438041649346988879560448813721881588120043748733946585808510276585412271388037636860025650308248732645641545692762545330983688105221441019554087970790071491355738774664589881487053905343940764436981454821614080668064982801947890437322335452326963224085241765594251702122988440766271182681260874838254285693911383148724252134745549642802219529563565395389787088188523301113606849685585766142588494315899884732505005465574723283402022690609933948728265936197091983222880292417597495806984378220559011050058411179637828611128091908883380450619633666146448010862152890236431059083725686540210382262153794202888061625024318551021572376552064243137541436033903337688053687794382116842138296977123861073754525471696087869554976776083329474316009543352261473705400773085345088154945265607376935937873727261877436435112081233307272760731037891834818583024779868633859441770909950817229823928419084514883658287591558649426419432298453754466717549190974444883474535833928148341878489988012403643448119334741924314381172937650682456600625925042893142551232059793156429277003539742787434534208385473871702893439398415282187085736099636461977070261642859973278132068003340154201383360890737424579109954645766808810663815265969061261260077456177547809234481569757743636979665282682626334948331738976581267336328757164415650657080012707202525566561546242034495213719286346070868509763736180356026699811778841518873094576098373542376864228832136181113504640351428202832727481572380040417572743742873092318914721397241662359297697030845098861749346436150593257622743644669090934774693598224577952381579538736462689611027997176807404552902608166636627795118271576132088910418137791217376051860319736532705179257638948764256391524113351534436759356080870646481470981211323426018034068530459053097429143231994714308311237151618737433799306797614266874925482527554102197438144588687823216776118391494863136718532137486337787469700076086219351073862741185332219717683586251951583005512341664750740896789380440573382629023107847061710423281748950435163996528330958633629616781971299009099748246115859160593315489975912794109244066349314013839589884792438890085337191862443899690908148119003585286969584950966051487113000070735862818862263077686570264949926215632259364480594246183785430413387750748785816079066294600250674289180492329534126531052808288088201489751392333158729899805201226464958787037944697928934183917288391693875849035263094343093247537597840751345546988818243100563718950131085422333316454000590069524380917705889331051162592803608727644656708388541843907223942092931468729767191541085004252293192573581660750585126832631553178740857939328894209609298831637693529190486416684268337842437861427763574064883125290489951277434502640443893936316345487575894908658186706182939202447385191117164415196386140593267047691790656367658743267747921003152234909631249290465267214982158255086063819461320468071334089401441714740794317567272712901743023009380945258563872163979934006434395251703623557121864858426387264830903177931711678208361585544843082868843951265611584876914410023159871149719970789809326335326874603695677508665396014149334293381740134580994537443037766449004294447009981600161057030392394671924107232368494451673219707586214247683004899150444079380398019012969535890686713340939208022991751999338758280524133474793551299820817112740044333962163275475224476713005087656098482020542216716665194015304177335502592832728809232244947423882388248038624973183606404379415758462837333610272297750681984499983409899921607324126918500208014642522951850368304238209662018826718973539343205910672908922835372032120932577318460326897175549506746478225656807151642021338846165049588028074472968729724888837129740796438789148654505798281878080042576446367633999555095055862277350140911306950365920856183986769930912070501257652692355471064707272675567943117981607888980124078934735777633144571769513040206481851866712400745451920990170634576488985536192208474007335247770580804082068058899920458019731850941005415509285215189852998603722514329838462429047968813960067254444596574516480937596789495528849102616250075634435607473512693898116037119027825001447906078362922068122803771491194247871850792821970119291015416818735681326593212591907279231899600295292241431477069967746882324229137841133832109453615710592771723051494464643883720233678389683643549907389459807534361361284768528353987767641916527365072597502988516175629809787145444340344600005891683974756557070327399181249643183108164661566628146538022007703643617040886603387629796642911136073910546398806815930392806153535329262796508441440559179053081603148788753246176555471534877023796053932384370786964579483168428765530979829320979184250619391853226641774231706095771383866511814075719987007362711620043901902148226587173516312326967031303821113135544042754872610404452464488278303966845017674499990893573261636092850358645399699018081343836072117543615735427493923868153207865504770681844413786323937458244295519368615464130100222222725352556405427571412076876501125695652073160439075362935291550397807194562680341963591045396905460755526949059286494048435150217107549573405458726441306557540316246403010389666195620859659709087779891692287957965421062824152442957257330172025501469615307935753478683216415784857013313621910336518683345155635742186634075247418100514685606731625681512431465833128008604958852168428231408964437077653098558358466556791786240153841061586186884750702237343651111840622434422393012509638808446871983664925908833850904606128358936210093849735523686011763155553805570973048579316493981588155740013965029530953871188929974649110587666637193398490972462875973252654046338330991882903770488106505706113164604059500913538613475213258899449145240511380352628356320481551275877083969772620907518326700790961211778524059929593323955973812321532687499482310682478614213994853052936072537346712859614363280458199494998829306972794902876474634410016145532743536593994430317877865184374190350034447738403701380323455838613383322416932993132805262783862904508859376402405766217992507996407109622538716730723622762125695029315066746392481721579200653860593277969602206405051771117845347547822602000626719952389439467649782391623843933167010005540940988101746972690083942204686339763909810062468857387936527313968701920111298596256930263382926589951228627637648786425533646526498860011346620131346160298107712176295679944357503629136164524728197237446856449733975976657140804282584482796030924588441076768993184491998772039019561256923308902136363070874789574226113119982507569275010372580323301615366513448125255315033912826750776353913004861732554573365057868907676066176055787521509821445179293984587332822911677503002958188099351887100192044026512235958290337902915162484283098639374493418698057879283139559142646864303816904919364969665505762953205343890693820303599773111957094436881534739276256393443030556012981237336362937591522769938396389095701920441822426234600589163664287702088681294503921045613984893852351007675421771552484512639414610790261845962081547468335240611853622913880541554755999403851616971955165066866913099705493791038862880584993114598159535945856158401679511266849811467692453342947995437087497905578359138476080352704033588324688411303086255477539085321969237971275468612685219034324513778169285264690230124040778161059984029917187628690892445843481372465739374131987131718216266373318169235741741568546521799317947180342002866296967785772553997500986793983744352084027317115442872560036535384046022758287986724643189825633302021046468340032210827370192259053782614273404618601999658440783509285228800484862892452501175631616669122458289331142698122871239470459543767686156314223070659451863128709539775512445687775161391086505572452521180157106169783829347346724333659742009155447159738759625663232448639155092996733405474240584966025495101457643016995498408342820509235632429402286315543356776681494033807805470559128997961240478828836790482014039466935635890390930308987520427607126848481579658583640581389476543159808968003986559709171845829362118566127221645726204961030791297792017933447708478029802325162474871561424376142441556732251732483675815710739386809879803863953143622913314648569438404277166563310396241957606211970082387780709375389591062564329415198966165458617244007426804876645833932873032005265345163173157748373928584850742498459525213817147849259709412848024556722531739115387275408378441077691280939355686619503014993954706758024151795989311836019464177052459139212672785307346872954478536280724996380801423691333660981379619951901704991469065901212327726776252390620632889641086633981726692286481984564371116578870752529696373425219222585830055647900913222525161184330259390371994486824712970055952290075665637473512427757447948371044584453400557936459236762950951386504649190125364350734806449749728109953302238159814603181101658500570249058710180689874474926012554286904067986440934679363974986226591900182521315408542651433702368241452571161326915508687392868165807221263973193167759940707229081482352416070330324629779591992746390347654537390067945463047974192641057570508454488742464847344209500816299121747493335263966677639787857013961975435491800972259261406574745057851085912903336196698509121735825345740220205281350853948899325571359676741027631064158601180635495579687855963243983378689164844373778932941616839094343947848441414216113566266782330954133066720628929984337364271027631046224761078785038556179913498837579171231017393135171920199569554073339114498092446071152406357718982231436964454495677726988518726621777091585520715427484797704824192994757041316366046382528113379911907411869442788109158397226467515276295147535171248471911194335623242160376489434789232862895786846333141132291873838525791073790355496746371891159002273341643401708055669923869697502995287212216587795365720598809931471971924410862305609293502479686068150887983070469162234748407290542681103793511180289424803370604279175312071253670512441516759914030221221766823919329801203474991562848470097047476838359119649772941011752163494841803605371400784479070060400295751646691881477982295927348476605857389859221269149543577351300597491383457636255545257789573825140410849662350457589691460586824456157628194657888303332394227832169465504055326557176433109627512390525095191567137460221962826696098309249253856947464703552658903694154715243169269098536892471213561352889896411330859589204396648465767499650749606310073651823585253725899341368211244896084439402841139110999993328958642955598033228309512066936696911054680282879442234069802105740914378203917468976708674293654617911502570642274440416435152977306239001124446728806234814466456059138141657844647010033525774983259784629279359435177871407045263379374998804400359267511259924067871561317545799713744020284072260033040987511073389872334392847640328322415644844416620654582546719756915889731158033995735597957473856162424498777608911990962506589617706042240775471492151495367283880107620992183078449442376547051634111780476014264088617785302830263999055795665554076708604154317159469889287542053277076976416088075838281097709994149768502125987073061148505022830760938633122261827933571410886502597869891671811341174013556327162182000020008835145447857983430045167836523747735137363175992600694008068665383461373715638420043321396331143850464555902927495947454726685056968715506466580275303260790535874319661095377395609417199908288659836186241780491083861429649439097128424288384485599597443002862274330909013642552730387841583922490881461615358189692205885291791642593666278554614996163781369482864111352858323277126140097854069722147122404514300118429435946475023708754588043951681248585869001248101960992044166208038526357038592961167824408370863899712960814280063065364481739940557944723838600057494707237416074253972319774148876664137519799943496155558451539541333439243580854895949808966011960600560289312938218543182370298838895748115677721672528681576825485624595207874837436803565363630156788160338159465492763222544888837496105406262729234990509107935931077288920408970184823694386324415369973020842752912560373463988216588829793746375065867302984314622616545956103914837346038665752483817095568297411553651564118867681210796981920178976872700952737616976512173381213911764168612717149520625080525383224394273421278746318640871126862042183980674700018514102705904260688713859808222758431006512427816265499507800636624543394987185287757592562806605933967181247364095312024861934015170918618147013407849107917363727783524709391600193488843822226093593329036264724346457165228894832002029793838800481356237552680782255195446904931591444829829283284854889560272540496320073448689446806552294994532271828501481738904425860717446714324450204243487955723495716421798836433993069417806518040922036378246551297272554373225091383615569779622230148408687594647182652927904940511040559757837810660390455756225003895362999328916655181987993137769043178784085240555207032040302590853636073447075046710514865980071475468045468899698539417442312146051198920682748694964268996410274379650284239966559933997882026782284864111080394729155833614367494510011661177571168590777573442231652094614882021256266393708268466639041185570477938120090717298079767894294744003772808594485581455109438382306566818464138276170323835349855099527277484216867932473287458974574658274693874639950459806690571366582677560002738566121125677145239345599424082504026743380051696511304234854550971090196831059929993754817825445023246965821675910329607942887137546227967063242213508249648274479207117432199633293307857269630049580445091265746132667674764602324777272361265027141879348913839516599796307513270164065983247251320530433113536804841355932665824979297696332666384080696229689108800153985086795202726465664284732672625454170165378342975588092543390770502654168496944061226012266116755428162809244787949405795443909850138141379640118896969465837493770845772452512163082183150170180810010266291503940342921092297850574646431947174434052829554771761984516138016324054175866350093992898731548117050630644255063162646308376927061534647870734222086782293894397747205229501031075859153822912412964103824993839401355418345528908707051977906430636095771261144207176327717471056007338147010416368795034617541575779808558842525975032620831544407498737825919303322693805580831055879149829528821877799681085196746815112598450539336425028575921810325044563487429964306989290397109681599587864330491320792159916755752658217776533280098053311491965837601309548310325098607686015052737974813869668316403699817325861061569582571933797251858305424634966572720561402344717488619192424704132873346708449168971274883892765616039263643015713993962901543377120031752922987855001119787269588433209562389398309568636352365301914894578591181581851710356188596291609406360867427248346128444419512624856925105614013559726367085431051567121264215634676497257320184145258854600562751999030843736934285476436093753044841625545782209592740102253552536175492059502514503638644095863493294252909338564312444404482153171739476094699889221730866192942421548133794710566492436066187908273229050383638978636630286303082302930578939527103759038702651404421276396144182182372141978718060510020272276677067080706104060945233431569737048214996669379409438009767564582346387902802666299943224979992921374444268746343703214836614590292117910151004175632028230853201691203631772059104031283062739499146337300513406806156066347462940081604659118920803681096174234483183337273549045097511533444554370277787142810237937921661006696993907215209343289132752167802207612062150175477770707491015197213891194961789067048855046646118518012366143501761543786444931460984738658723517953001135633620816945205000771844773994112222195545683889375639042272319960316880654046625325240516747832130180936246699844193860647237052531079180027304219325959952527000841684150052338920348977315321099022372218654386567442115397874301001200737653903976996684360989487941401021163270533387582198534589645987763183660770425991453173033039799262931003241757940466549843093677120988058405048577736738158748053865261388659848373188799766753678215603509422015154601610049381531122646791099295901175541551311913899079512215909774926829669745865971467310958951210546871226236709197462513296702218132104568291780982502537814281454546666283169379417011892557964949939469349708428995480572390582621074716563860537526554817718030344636451302419810345680667216829282893288596532321175029925299144949539135859352749613861975388182651699033012267368621816499531084071755297174484684107174752476324162872392140693828031905663688300620841380570299535296957834068897506133805154798169467177133836353689882105097946790365233136825737559055923584981626501003212897760848813610549518907687698839558034102530234747302954048656865875194520310059526277973121021325901515759414926529277490169343646505343473780055241894395185105484338806517484369198343371928131705099838739749134731699534273617292679598959567653565581946621848323565295897302761846280313706925858097528814068591321710406615645847513502544526674178675843436428201558283810678683418309536451630218398701404093288474470983274328490838699216169871112732419036799680699467478768814791150044855890201205392088930047586661341660523999162782046311020609141736874565822713488242850405197314355957848298829302728301512707263723617461603953024256810376315211886108237930542126813916156832048632596873839522647969788225516027231766644512743987821171668505095226786386786413478230987927623484163787175984946596386784315829922276674270358365231361097099881509690016051827072871097490431305512369793727633887201037638433438382578908907468771765595099014377576569022127512321275992583393090446260442522165194109494224994010921078630843941844787320096693760477006200753329932768377647116503319305025737921967871712763790356530134172267121179219803322062772095632918010483710460108676902430848084067738258320130479620558902220866680480016565652150116070768833111836529744656159319377853671023243458617509773594526767059296676264977607256901638894080642808055863538114084336293928442902621169355620916284949865644926078736196440228558801333638600301331056868627268088627010508230855100714546133849793350812583546406677762755503737374371121633404382680835118641710529965165205161830228099617304079787627930199968182472977873298140973582390241105587050715049933891869740129903266413252853732405723012183821163348646580807232270605255085403021258026593616853937864187482985592492839750364648734438659414321361111735754288154926176839295148993618528441771393926495273443266706624765430988535586425985419392481299291670205086924005970365779681511733090425721222040448461179732435559903313427617779868113768018641460017748829031222948490704411541395004064633497204906546863803317319544007930555347136606709941805312766364743135170198019347379429435254482631844077414226669881243232960944044941127483100858816033099144236804171757872607479863982128571099679683948507302224568338796965012523122145308086742598896834057496740609595478234539570230354584658715271218611001792642025972619094112667153200784871864038413170979006539406056023630773578994049465780443186452053251352713414617206920535989023670734049879273794971247958477191521028040787325361524336376715777807248618528648171773138851651132530696973155890861029630687261198978438065744050266242831054823398471963437764082392653136898552614754265459299008495604289849665369738340241376351594886927145816629563195567343616105086041691667186080139602500540632241809556102714494870618275686952272553062947056485637209420534132690174585426122584858442297988648853913140478088493762566985842783974388800184064594114064858966438714912286893131974439710294547413642942777963589379567317221069888311031210603628539212296230434736524804282047023524250655539220556933694055752568979250597284338031322132488341839959610965569118350785407709700404232991439407215705128319534264000266139352666788317011552778041503261394970636098504513170753321410016647336389918528526423698103434884093844983119416658419765776913379381484736146964085176553877648350062911592999629729170182064530026152778256872335935747558188585142762051265288227397885022782544485620987337357800990023755864898942218282725738626810918690867763991266358443973993812399696943776842802672509617141170894726557178346167188489123261034917635150716578117644144334103117688660509921097813424987086491585273401883399242304938474943692405573824827443436742069615566305593968899707995271285952747961362307900012722441235503321510670315813926255613495278065637502504342815168002933825184767792539307591927832325581779738418260080128346742130710648532146634440194756297721429401308522130453387832126081963644443342395750872936741094857162008556017748516976633832693163723024668919516114384119201756048583133145846188386041906439751446775367730294704919792247133094868955713738553063917790969413876247368050551657006688900980709233961962767882640880375201205244446394868441804974759812842624268595891481877389035119415555518997135435333538397942164163150444837177959393204322782094101067973683425522223412713173844006589912189892787893995960097351621563500144947615197539600268328206439386212293767000061898143938272541212645852952360912108362608062354451818315332254076331110281260298004742805022600717275111365646611954030596338944180542766535124946390273604005225752723805430549822952688342045585424800898166377905563039749693715586478020983792703436887819731455002975283571567251920380715802571069828271591528168050392256292878765784292088997805077213627775362714715728838490374909229909102702335774529152010078287825327340745272028790570523030525364091590068563775931934754616009678000947383414485414340348864164198862876739142526134781853682420398301281385942717062164109900042694425720004712910349624752293849436135205553829486720582162773437465256142524175437454752881402770946909568636620967994600902525870779832221628935172420219564238346298379032295196772235303989235106907363925640259820681978139654887941856448125159447125109335490517991647889280398084411448113465960578814937688903457435785210726641164973283122046725090979455130836228541404226339813998293818558305471808972195364538605538757119774359298034129565033791394161021979848443864432499781240366624569310967891010002509393836033973260019961289251564733817115291017081925889301431321308202841772308967322922116511301550407019952768657327796409566834960480121177873183251530229266051536115973469076755139721267815547626340726717572720017706026607069604555327248208139246032291907963762112469949880005275956698776603732822644493677928456465709298525137917490053739043641227366632745869231693403234295823677631633967333757191889079898994930383073333314574069105615927575058729105149018467487663776693971245915045413552400109844265957875964643251043818865394242123445812012675569643338392015165924254893009482672315432917180973285472577534108338134905087406559316276119851545540756399632227861710758146692904743393870205337493667330146978217009334097107248313741322183612132793261653750162557720754042138900390021130218132292399657651869550223189784279050063418754705132370578409208006735061208390527533006850957796860483246540183409576904290525284219381214453093890911748647774806445813288190211101305540790554777275378889498377105078375955895909478952012467361766799038392356617020580143706588131014723569018433562687409797789062167809407019397748886057642687518942017134504928437942107076877428991278814826647058898878088175997609944460049449389043876842950271480239083896153083185568388168614319228424953905096615248129619050206620749533040922389452329851479045783996187727602755345675454919454821375668009258149521705364740767769062812410758129251973080073008966045127146458810713620515232429581419455167010371168170965968805747808311688694116922947951278951961040807314507519197821675280876947249512864255290109907099525130663362511523782766276154103486121808984080162790675502068049555904675349610269644968036805473939130966358573982486774234071817187085794654247769179073187217210275489788714768983317760334847172967671698182103483711019705286266415011183804460914888950494844897972973623316266921181529760093632474038293579483471882503554101981087458466154086328685185657516541628954157909370737692794883247276298325845350132373977249677816469199454661242523553848139192895090013821552285221405123440561482819301259999288629156709416877525597525675278543999606769595868822538736022442241027114744829321551473383468288249692806298819449618379380040174941771592493115988929216233078112933542990843327370948731207341916691584550364382140579034996883724289932099177247092394990720545218524250397012021804490177935180565259270218708136296742102429094558159286315554251474698651516227031912022540113011101518088773947233990879646615312079785909797932784029980456199317884061663981432702973390535100262667221401571656478588182456433324861020864047537083045785942954227049282606918378023608276661161404859231594265122217310680756755946540157013216948469615344674679749517431672277754620989260738613513246763694519293479786136137299787276183479058176361450880015327594121571340848546513798373854655951470080503023381254333717852040616857711446574064325867287392972911153454435559027538304202977989272811143658895544279430306224867928017649648568074911590689418699286627167597039843591817877853737997165393173713946621960975674170244745492818262978721406054965941283863176424140416921099389761948386020350746722785309817912960361717497177271050669934267786504093927993999346629431142629048233297392859681655527755737596935729076150897288890199400132549417201718366335944573267151369851188795597625944004078310537395326621452132820440461839950132001166799766197377223520787233236526409788220901829334857364581697108934135585751976302572928789453363582624866640960289704439117369442180113817791796787592066622687594448755302936416733534341369672616169183093573477668273087648269043090111716300415277155213913922934372497918747483196185246588720560694863524385303178162158944907907860905416353107232140296666599956718188605789335889320460060028596148138245613475003568619268593354738992867127505038843622987774273535788796952767856050223382176772219555709070710867210957546882236322190883303932835656235804905256582740038940261649783587395536466099528789286070555207026411252092336602743068998438622098602829634823974766329073217204938937197210069267004891487743925954681111741780209699063101156024690815588247253230948610619409671255029759909342005306350059542298418522199937546979151567190577750445504965484477601627996002012785221185242429980757738832982845806688020781635682865260806122515621839767162579616153950052176740045509035135704310292779999008220119159802538583518782461888750239318587905562623345104437877010858474501468905140049071917578784881451467455478026762980687403594802306327796725541491768714214131605805176626044834622617088354956693312784733577621882371929632537551548557131387153774896859994124495202143424974283372864740618695919457984639551102231278999109147002295034155119287416721232580424936971248312265620335260076370335988114231681806317852949147113475560365496035839146987967757070128526187101178430184322048908625564198458517039298171603824687909623939538622142750806077683640740529024452335510728066652728442930067847954940277342968984517553869728223529549463232068596296275234536647432690470446296168692151920759986573838021154994350532884900529736101989817584197376239950741779988195783551054525412688050956039730696796186788650429637702271392574244117587403911713780293434094364323896958241906004120238759125861365576902044699885661192365403691191264721594070633556955128736307867324312300862563683952364773086391491125162466299643115841040332221276508446361955048973456492837863624631123226393199708148634562478250009016749478089218401678783931642037345665982524603044827060563050425263474487299364406256432423289426543154887822880103410687650607599240198358720060837410533476891335992613281601228648257571273732941816153333020203250668941185746797645170157451363376355583830873958298468972001943566672141625124723224751556310911302130174688365479942869192687987736425200467124151277123738744922124099011269569318168517890114255786339934367640990722577137978413824503535111038421683633408083599134880046866285027732203670990926347883385954864870154102228857178864478980922174252586085019171727748155907320475734438445468414853820795161368759720510687849394647843047310807786501599279022790053130454378779629455064230900738741490833836137588444330554233638205231192642317613006756799037918916246503138844891952696305166341543086186470377786849030485291200638224295720215157385626142320685550617335041957879229814732537872651737586257157864571352874746037578077856851448072329749672784140001964180174230514058066180949798987805058879289802438913244710623950012862982073492430022408702886065654856050361544917709557577328302415907741161505773798062064654655513690532850892032043458725180249046544054391021883262768098916512095574762533909476115530725310688014817956692297942170242582936623069025997809748618423163023587306612753751415555217700903081756686344778120782126603807230358645415889942775496962442486556135256322753761199450379798697196391144896667231572722254656476534112999291423722313858035776166061352370247479174640347311982699659980191892212890635519416294660129411158528812414023953921681621176713035551297426915597121933216707335788619167257104815813430596886938386083994831139672997343715821754353195479491806201486545836452648476670626600122376273420315164857437138080842622203493982399812950394161958751451295254444027993170606446180898380124791656245853011500663538416795275473458877180453428993318436007345459458587928842348879929463710707190112578306002673549430264344542933524088818781029268908911887481211185507475216915221329444727311032916548692388431383071922223926865888712430946245313798806429970748036876964590833803624987708454317739287773741597748892401369358058250168201081596924796577785798042599452759360065238911514330610517786693572412901400693364383738845027036396453482928780437914381819815711346176091660561293335180772611611634339419609931965992038796273196955880668281960427099140531027211606967029327867690084569425865169065753128447188074672775018436586741455696246401627131121815956110701216218508913626367154981891193876058791609067053260617577473647634967477118060596670574811410551255546153025917948389636124984914272754891302076676351434557004732544706365096562433575560706605397765242031667223446312767155599587038249032560585905405696292485730587075653693959924734410489395560464098520097215487386219448664837452110357588436923504589315677922418520751766135453393640968063329150884411629812070219201915463043234664497752354975931455196830815758070208395642637294628048946415740609828359020218766369380733891275245742325676509917339606924863827541593911795021154493285551509973832366785429375439241058848078125533085803430030946515087381609978926179065828247883541878909829653567064512427788926234035391331741862055534502983483575690917789196086567647702585759096957160988924826052025515065074812270640099693155736527740317123724917455476361980417519122093334816024655146562481766227765038611801651904704442481908365298043190128361880749933860957019193783812265066917427620511875583147046106104854840208611659193478266929658684909316843352591441568075787837136532262811638148902410226527442737389598011999366684641923428778848215359629771325267317831392740488108733843585358053647735823941858829434515539696300464287873221893655432680995109672523271806730215023486381718740101090768926153088312283065754306552836388199812384813057672278434713615329720283002620465703546908114059320563208182683137449023340865184138398556047074679009313000439759742286511095207103534026683031993282689098876064227888030908399892886285524931591333721270191287315709785171277177421831939004501852137725586769140575814062125026106367543860976186071693255724748066288925267293734759666771934984051408854359085091768756558445045090094106141351327996214279926516728277385588222855113449319633690531157896445520540702488320529684176893629789494470065236735233513764853788529801930683445629724854159075114326878195423587659026303380636297361785770935589013008089742172178788215947163531995694341916905253325701248070362569586622928772674488903403457348894242484660521082350554946144986944041124536885238537041697255812958508088548584730819963832003665547397832241034606904818035174893298272628632718348333333509970581363275475011461814729348310344384715942742704498809660482043279012648759266318919748140172511701256817861546844396437211366836701973915321819801584658278499762917619856159028400369890614098916910477498394194836494949169856039973851968030056987030594860387592460872872516950595336936987813234777281623572515246861226842751857235102866753409273941570463060727641200995090140747694488655745070292120255062101287748045492147341572956104429639885514926539023828552492684912752194035820262973117682498374773949006656754239456130187834000635230126204113024938456936545878131352558702487062114517508342207627175194730865981634099394689178337339988464440444809314014777765960670161091363287942661055575161339603977502735529255261087192573603881457826204589654525699720461396368875379381665461556843883316630138021472341909215176380587582628385964899729800017223641029355872652183463970661869482225380222392703423387167651777732800256026414754626197378678954860198189047727405663003057652699911611313636102680071241776467765862930339578070393546751164773765384202550427795153855343762191589350856658713682727800536385140944421043843546927963887792786946925199801488213043485144036342144495502556434063513802897219570012704891365355410025455781480987120244946984218548880435138204930751492024826294211539853616447702498195308246920021227709403059953694332357988729934997838608655315073252473816181959958827573147130705459544333483027674088975972386350392324929507298601012070869949219944742022428065663606580263529661509318737820583664858709282890431015423051034013038229033795251488212426662229863766480207414924161777443781105014564081464913861430463250289510754026272341184060107646512064640568346992713296198646490185111964079753513208302221680033661069906409654961588450385745888327429898827566031275681877335777786220360362381608137431565924444551180028259641518596619589174763108811292696127701519045431451715299623299444201210367061875612312312585827585144166308513838039158190200878362677867837247284316076788804444093021134682794481283307672792495867658640752168240018688008108383636818584750382441512288135036475920373026926080408687197154846921621012656229798640732456103345039620521507499687711193766768588954471113583085962413884570003100716313000857781016553289062560603456573999178436091273806330756591494356496781879182305423877907765527559907988387709231457805105773143357996889204896488353453323452768518050206040862746284421848057393321071573879489471402852212038534306768302267049563388812095191957719167666941921144980518172908321649155305738934714747893842266557503171543786558254239620456663531967512303837002419310376854524666966236275422557394684690140398293888450369735095786494490102278045044308662019972070174820025325746697831326796455728072424675144535437176559604201791245514770330533395391143070898517408842640134025308118411400376959266904094429790740430922391692035428502613276953470030759977354105867674928947671300831772695722379451586808631340905542434873214490565756859974927532522595960615967804732114197194429772389755031842280782931601840398669902262853677027245514675000462511669923999809135772569328200577055385011003783823930984178547258073435546989577650097834257719666722480173097757014014974550885257508482380872403357891087433914213250764478255859439027741070130132759105369108818795418105512281252965753517727847856920369562279762130699922044719273343953852353339298143080015341205794813350208386213509475932795914696038023572841699059608076851138574411343600895124720112712007458527234730727627792570666715743113463095422221356970372532558414873728977542878644527364065480495142981428808005893144133786247860606012119526279009241912753236984124428275044279275484689687498798705619013638360235983529451457621631422466738687678288559436241987784176434997368569135115653242073954104900625838018306093975384310763375879371426788234157767524564000535737711813168498233255252288894064842967973619228111786454237648763308285533183180263182146919924757277618748059875090317050402552644808591881057585698257277037759783685937191516406073473026804960981387181806103935558184927257689696406158120510738738083812666692553257613644608860604464650186553756631896299491995006075673609070423367113715142903098336166715200100077454289096045249329445919907442447277628773650686686320943489171882747518606161852180618896987822920714116601477751984383375789801427253671823925123398633796000805408817768184480971214514644639294936384558395467043719186206026987962162948299339300563328037165014707793243600074664133609759410945173256124853668663650777920661969543405073740528947290048133263702574089298492957629428361065651005984460115659541031642755182332748567741136533560830480100523665005194094365666319365818189291716196072963552558569915580974305451295658432637651988892104027382430967395670394311325368758348797142793302781133763897633615453864599405531903639696705141214503482146766373439680189601711036094319821367623818120785704960139941424143415579061443254841819710012658009848436428286668151923205720413741701227309665162422574211036387415130566993274444461743725781577993089212991911723346781179018903404099296184318706375506149769068464646372465487206825814570300518564840223287566817149053806016818058972315612054303242971483261956599672226107315835822029670112092848985399206312211291318001318818193279846550013504610676879186702392354688745512054479129539950422508331483700730485407628469157501455327329951734971336092152844105684736366983335246736233589905964134136684683165729536243410441736287173516791168192884301390489975663231184335870904077534511293679147074805496432258992531814446064361124598935144514960296919318168324380456868296695908243904712080482615591072497029022562040240314424301185253968810639685342037270941981513256211313941826957800526089707345956463243764948192311499546368712339059843864752482160448687899872222229118959692232640823294437241207602426509551687095339626424402611581506989027218493125415203073787653448817392539086752593860834891877663699467403863879240732674749837230380964539478302462748930786924209311823618125006988455374242025033969189179937348299939316941966035673469211940868251304759902413519270642108219336664876000937025941978142766745036649081404869664212096496364049271478536160525887231869545410738512126786843052980309179591077872527784321699033291533628164593709571577281255498660528910484778740748988979271730412329876269289061871668824476318359174348407879838492525402506867672407428386276087737884482149800284612002798907399468674217735493377595872562701043035156284839303428251420909028685157489392326131452355956518502023326183506492980650942468478847035942665875898409518553788384914637462383690390194336839665739696705588810497705749217816155387916565714246577092462292560202055593704682865078028292617621565582420648207196258226238746167010182337111633327395154278187451167613942320789033537994827129225915927193487332950862433007767645282050525824476529464639253369556703479866775759026698993404234940199210424553389885941601197210863245680312035465243607730791252023144875221950968398520466301083890518983810204193096384948755083061889766436113878502788116946841905249534665838246641988443327878310053418415575100502011519990683922592408333842762261065919804123482816402379160994478623958978418512327271708202573142035773012490372343717336162329226933341892930873577827900573379771726994708278227255570024709970604373512294960107061705670962763405958286439370928984785461926768619187524727460218519541470262575685874665214129888544098086862651072237700581851764113756779983125463638903781518136748302589579745911545275111928568742223685341854242226151536374862418010564885821755867115797283047099966897110582312249865415406651645698281539941761377850854992015023206083869590437143393265281852418892689945509661779860515260188029363584704047670547439805209998495886062800398835139352951164112986432602810157386550046759850553709829305210436734541433070105924228664736773196274773967861024441385483659906124399292541455423770830534684634445468895468494947080666016925781894533785588203672470833399920816808539719871656716208230395051372556589474211755683352903156048925927108299480531295572282189682939986470287963030498641046954279272495231827293161369544795682771917852315396976477852970854586632983981545048781238594658715030819231181933108381272207098622651133635668676932925941839551097338658612623546498507036412269120138829478657462034860918700904899668570033238740496016176987591228643992427561816795757614597798902748534203928774224686519483815683115042920924430752336407601246778803599390380484636598959269314755484911077916242464394458620978209614124467100342365371628539768857136634845171343377975220761692143353070274923588869904101860491283316703771466974644408893330113525175049929502563878252369334523854818660049684413942991234887753130201969006989448990972922114339546371062166248979664316346378732880530066418830058706211346823432180873721043453278257467233463940370203224823347825048997513346905216994029828170223283286988680214729983044600497433754559883299305903786875070333344295366028545308853942132795858015120483380859348200787728247729892843444027393593702305405162651473153539043951901857932806099339298059227815264995717380782728127933226319691981827453925258458862625836446241070282550365539011272746700909175183968543269534541829541281111876123930367237786063143630964459380799992906130292710190542923744661998805711736598923492255294691195488963485623168133327034448982304462033449368780919504308700233990170275159121220765249089505881284874352895351516142183228261602813227920957748041418447133252877976123817862868241920798424305540755742105276262849941874124066457434162850408492827240913355076546353548028290447913437271296276937092917381974184172723058978551958718462457950260886447541524308091073148239164028624003882119940118208417538714693616617026708001098045284878608806451479262777670836987653271614638938266618503326203270577858696963299024598642186280827372628440251911800319673657253812899964377790226787606413608509026430470000409790684253235343901795139804940221980947874478102663141952891208407100354749221863752252072319269557658001754918639444397042383883780174098518420285581150459543412963388463523283206711891105792103251195836615032763540714451110365796687915424407929622536939818120373281258285966898830494529642314159114787700945391765896814916201360466711914228187882519091380533150408458777926748943482028896302880797713211544768788741002827925896256657600997896050939172491463205406562678881721628228263369472097447133461221022025065249132439648518717594645231640574675487855310295942712088169501338955686718889259484940832048982283210682846111487646031103236153629386408113581339629707605243265893974701210884609994974915160402722391785106448783973617954979338056353449790825785856856368492485649533783970905370365830737610861877498968631518004854648008697646925897459285500568006557137338856965798257148068039500240133187275782652915791461700675208275979098953754521373458365357816294775603428667225309333586931840327661055458130451386368611607181773141953293519375624360134343571427157059927042989969294317071370367914853741312927010397550361925241692791379120160201532520825994370636599803032536932550559081929944836775087632845699767108430311397899804623392516968165739371033108370354321125670238768874123741632429838243321929411116996511085948598357901866656464329854739290513350524355981764770580682334383804431664578246259506816365342981857169985980503805040004832862852567206931317371396921823780545749966911823294652607132446603190117462612227129007684524422694281893271348283524911759955737063009460985392008740483363395650527676687352988360795697639538925857992370792165984598879635169103174582855209420858118005930191558274592990936509196071057688167014980486462408562018023585382327167434325474488716501253575449824737723369013471932447133712689311379170342167316980030492355777878533990476239803713163673200644959414818865695821214282415576909608763277376393396019980473753921409212584816611885054554580322372127641903578493440999421241933347085064665630888980424388804884610604918636446910012538984755646441128532911806326099846439533457612450949486013482504099952936293320427736990927621968006188813024345038675201575515383347216010458780559767896633027662151602891798412434601489390876865742898393748882293001177424791427738549952957471324386928866843139820612269957926020177531536874463007205109533387017035572811262306240860678016612596275269863255205233687661960493173545633804160290401422498815407837703166918810205965395128852562148867588811977017214961171704966462604864706604967591289453331736137044846156946223995286182655026843666128516178031080510813284427937798028159444398932016938447474827328730163276072137148111825003994248633538048742985520794079131698791267262834940103852708038811839197549409148026129178710073945285178716642942324877938617728086270896682713526690235487777427042627626833013636600822243496964614670069462493558987641378400072251955302009740837189932401226844816559452496054557525471347091534045804630230919720385036870303446648078711413969013866053048389885860581231889662280072372982468184426156516769198988613997858172626458605896556060292143254387230010287872845424385080155739429883408164526458181462679027731405830223788594165920672288164036931401951092225417390445036838547154773234460315248685704929563996219540966066216337835734168885264539860245114757360339390253358605959970839760698678003500722348442789913468165108355695901920108072033412076955582786447824779523525541408117136365366065837123826046724285011926359477078499486780340193244019683988827831151637914460977466413969940958510729527609615962815501500197310515624789253507743168204928612122083991487663216868259429452894678913448337418317472467422962926203922421449522115567645559510524844621226956255576390027529287887529577258186548544375775509260286119132933120266693365228337234997936865364759628587853225299933962572046577727455314196465369902917799675172509015094253169167032041554958512192728299003001414232412421840515184782835358737621957147838246603997631557008320397532753357630495063176206568581413342795104821679375570473593038357808777672997225409062109046012466436934967381871904285306949947474165834840834199862409402502342082043766841160545134234284030055463469487342576330435132006784175722733667496130866606204034913026859558161019047696056922564435287139286474291807800187959911255693570321009397547177283423484592762135923790214304282213264207683547722803342024227197989722920493907703966918707127615905031551356593094961966260613815708858440634253446610513280514491434620527096048204407809459166573428284756901339734108451359488658431650038797776876694622509311089783028099720399700390183188116371837348874505616395116038605324164667290727953356951391374727321900290870741631651830231022863962110480896726868621685417367826572601816671486620077912415352433558707006311432894785493827320634366566683368566512988162872272626420834035308240930454079475844082339265107182588346630169477734680004397470893083457018595453937407504430991589570632617080240821326049855131222976834545074668415643220670236663690026722687660443367052321965081509461054828779201781381514606502005712689782981481192886221762682776209539594804739662223432071439416174635424560895386226015029169547788623308527540739165998170799563112868841332791472643725510775361858122223274013264427314595647225348417377643158076706741152149958408769721687403174016785244578275780833525303613817835191312025204091918366911584285008616790483594303121565493813537271860809511659375428349087759201533160397510208414403885161261651953089775886921833052445338978589520704703994048194284223606003906354462706287586172878238193027405646021190258264258276539953489904712870525720034669029690493164943272495729746362865093824375911328598975982767409950257882756398970502995985922027098222812000105792981503910251308252513807741188273181490597589877724907886650231431189288857528289418796159210462337677599997435157129807174163775148417887568860875548552034220009752903400582753017552138145478309821523642520555136324897985698167996309601066220315899139165894612015814002035547478502785975141341550951645734559888742796678828519043942844911921685549857362706097638144952516933853894363832312135811809939510707546973887254368242334385730421599718795001969493088534375483132024556306533626891986949647840705964698152100600152018947492907960499662479712582454297326608869801892149439849573692926291317404634863633097307755571215637031796649542055256219826125302058783621280926585522257144284217785596561767451040987745697922923500035352316899982337922185408842571635805011215576695377909905346726252640621247270474545802915605762815442832581744997989595891886884873859347182263621244921198046134664185685742867910007338215289487231207736656960778972459969550631216029330344294374389632448454715051668075612747443569323091533978871237206985377418683601688203066488112559791590729757153233625694437272135806941588858664522276062473815092798559584101810789574322007765053834976330386812997405914140891473654665026250744731827699834772801738451782121667916112236296195095676471429316612840311873718185437911237280514881495002168956009946745643977002068548622332149207542483112623356942171135973847884139294009262037639589112192160247801191268479831754115629255273994013379676137197950867536342672676096480182150225485522614042664508657579247359382220047468242279143205581680619120373997047699233079281598325302090583491381368042993454760651058809895145315459856079318378014078819156963208089778380562597534894339219810651678171874569509920562429929152077433078686821634627686341802630994438554928785106604450137803476668040345057127093975322379878892034359674135672447716751084492015625929851095943586847685531768547611754029378360237558466845262871435637659393636323082883342863235834660864702522026547345009717964544095919655044370220656770136480854946332247953575659168501332953439723265202684208787977790042791461397269674426150399216791619016598147355362875503254345067680372178838023395569506153768984277198806929138159615196517275092744090425925574358480157527768811851506753152090908564730906327422861105909784306575639341961233764602421051158752422468667763763940025874869207144480411158771462355473046137351161503127631430184745257457811040919607960944422765569030101532573220112416169228629701472842106097094700116210304866893173942239499453453263989404497620847616270938291780313815232857013075681919495547576663557515375863925133849642763746040642699182458050072615543002602892164425278952417615001488911353918082035857490622172303834954106711700310135028007050426258304293241573491114176487898387854348475034813446733597176658864245950932685216928557690276488808196310996131984684520317316523448777537122068992566505992979356856878732215228610828538143596361471000514245017683645509674369036531595188028813821726074642757352384396945485917346686945372156525415351579692489255472933880222726033166072775461882556717857613831488954473810457994220595361530904972317019620677667372697445445648826888709301631807634554990092561367881782708657612569573422814399426598180367044092609149531431213368667268032371097948031631362983017340989632418729074363213420432195724921431569480920959952020042426224995354379348278187667710627425498534930125451491006137430528504704653755832413198216536546359270958027512651341601965853529838726710070974764316208381752283152271930872304863910509423776122537313656853090435329206447995790161777647053439085179566873423468086480949867510370185010275773222933863805411723333920947351308561370890784656558023249114630430914022430438522431955933910734264924354344548786323180735868252767239903567436861392541889436327776018981138355490191507037140167597869509741018255939300946062681360870565773669760684815905194641918147611937584094069234789962653451627992164361381401032694843527619635886808109265246806184710729377579983089110784262471990368120590506350110799250160666529702325277095412326871571224237222699106647013455207381445619015000990604594373686232491333022691659020176802457623733008210580977145902121253469131738513587887021543086559254032691226043872476433384019463039404414156491939492551590964077998818920277732349730428495404271450800818711708470240679110735763254869037394484686903380293257168386609619866965471287126461202100249097845728134724939707868655872375238273171935636592800925758165351300622870621302275294910610358321423911455299206416684218925805673799462215457136401329784635387249029072710082318510803491676940065758845637823125444101833633588491528817108903832350896646532790421688454841905907371298021822180271559722824928071884998011865180180967947849386249758269029269504177086022374730902557426330937946985250831807872827171043239478940541728393038086335870057974263842572035912998337092444573821024025270686604438165081091289181549764496732382676413534531018288121246643638782018327975353087355623919063886191485212190958078628472820422917259868990397520759538509029792399082631619598389154508740093311074676267861779954527886812677017500374989435038199691641185135570822369581319557081355723774327781100185829800606027479382215101182491812622304680627864975828408723138520832332838609554210729306962215913261125278269406684236756252669779101580863255549363912790886374981759559627225084664681735409696268457757789986205660136836246763743987834236280842598871109769522849168163202979540843935111601600806366245424023113904454159120339891116818007917460595493659745621162200878619608115233416178814388514435112214731573570543201801839212766089849010739759567227684160033900549232946091596459561626562566803081675890373929675092688822091731385962973069300732180206264123817416199770095512909374137683346531730991555923107834095081301017656209038514363615786807483068455573419776846109378470680612880906241096778889085274208447815264961416912980440790311381209577359645133725273104087570706018788947139988581865643892029247233016303640504476082360035974699615325385797689940319630293370478500758709035203138599031074708932707985393037459575279630001359024861252676463117825359281680740142268867871359335917218549960997961108832567788673095640011217010274414644019124643160698910778756325650383977634111284107608641348290129552492180641054865414073205695719398264470020714596819341265081708559565458242523419484425913370366988816353517845440845221464603592635910258488484557923064530840624884075480267579954517093286696776971069422480362081514647909005008129257418837265261460276675804145004086340691355729590578745800971883085626175751114514849025854740986970228451158103787281737017669486587291179019412569060350010912572344155728331286771244828335235024342031004174171045651850582354838908646191488374047058558985003510669765755049611628229859732490726338754967296485337318931049814335449304681471770663090541404414970400263401001019291847435133658241237735092842413514040238222653880550435372305046109647217136960675044529107683036022251900200264821904633820603248879969275192065753368259657126999586602002299040550766680424306713814465227354681390791760645675404643462666670033469564784340977142516711244039135368359621087896555045815252192238642512624181855807252638048071361270909301900672103080186881671586245115734394728580512050962476711089416366665832296218033588584517653181968989985132287875265972577779855876380406861700576102316145837776758769896348288961391544523392125003128720549182273850655373234201232922437704802375952752792506301877974806847185596236928993307715841167161827455859014036616059257136834995134868064117059310261070254257005538581577170126361128167363352547188256559926065438054517263356757957936440812138943849342349434153428419117690487676143450315700564066565781135482476104800501202044802089078885218016464879839222138436389896007007191424413498100179750984383722128546963756911845869082207346427573208039520015255370614067626438864257100593110139435670020963412693937982561612453808162699115631757166506942521388689109347093124147190135817294315781625980527475454753081971395003516686025943749873770316961056088069212815751521282456084811190047452815902029978865500726500846691397952007714355888662481097702344184774326095430741515928805210720499706600265650168540492995285789618670982843691130396504312527966184060480466274600148110637844862774389042968086177774328442637507362531766202817607828136946274809582960596247466202345302414923875177950534635742293227565836634483710272405451624366345915547517429773880660495210234486600688868697995151279171359875453130880632041057888895958668063457312720022506886702579795962722587795647843471781281791361850192649768692795074315772023722910704676201211448276298760343768950209572204517391307214882330695978535511157846663712327287552471730503449657454568969977851239526078274212648406225955296726429011444640414969422249029760409839958593264870189233120789107933531206469527844577354500860787765266189007730964968603699128684583995238892870551449561712979340022033571447452628422642482188634786469460149312637437428115994439561168154523570250414961657978581296758504907763597786582514059713590391894581702941774782295590551745278057438566312576096942108665779238198363482508970886652995267242150555554791104468146531594244632433483770621315169233968093132580684823484259497935678648541382386270970156019043264173597338186622587564664387582218357023497632368930310574705403225445711255133260070389819572307036876362731453414476522920312426326862478773415371725832882800573663281867039733479491521307986088585182788368880477913717207306726741418675026855864388755932625872973600625776291729218039364341031844163245648547378071528106757585499295624216644290307978895706637527956548507627501167114978255592215869597126456325198600750710563266827574538289668900729359334748679604124615826355357374207514938209371162367708601766013529297450248785413496919920006212624884946808480875643404791764232348312305201509715378193693363013999389417509534609409580206855955094124757172508772356168948119983740494430334438027946019471437110227415676611459888089436786387855064339936676601949301209189157531412200964695630383015593594424776767868198823131824858215573950716845365866986636783679415000066554885579863297134632411724838940459512681547074328120661677050910484750931857661057405559775215170375675850964884304024006608901389134838151899627292660448146786782558794342998259925922768263480886571215724866545781321201301314068735179295936501252789596894373917863234402115379460167757828906822272126114205820996050681160545472876267749274410372424809654188470840873601070942352026686232159543404940508778504625041414810872859761317471605621533111693268899305978281093131234425543689510445716867646246279035510481924747263213350562432831289972993449176740050741921377356360764806336717034003997051620209328390292089251885088775253396601167309882426533182826945199763573891141845987112746111684416095748763366355693978855453607606021850366746898305968785254451727991983319440406397741931253665215333215363781008632311937771666996453568267979803610168809201117813296868633067355439895656304396691102646840675903919504308164190784628894688545079618824975943843867667065873071977326027769916594749760889897555010375915413649653115340224791378710796055375415447963610921814974245441951129650158352610906106629631017321165382131583341872451913946079061292481646305530338828936249362055763301483478363134280016472268622794220340735343708274394393368509908737022691815287239760789466036830496727452981770640760638683769573144221209929261967570902917379353224306980105501256320278026765176827834256475763293388466765694939866462508060613795222213961318310013311730108957086431573784277968164708088092617437097127137503269839283055695433787518957587874252657000425888728139222927537632560968790938838687535012724623140724307040383328177660451418060520912919941117976961049840249090542158885450640562880688217458941510879010513710938396083551402392667606616186538343845880533339273413615628924833406554913568311774565981611954755703550999361962843805546885675476350293151739363824128086054944420263262311314192249258481766233500080547380997578372639856642450278687612004881326296623209001675897566438561771265234756854945028173946905160968862978366045129645512469907318448694237052967133708566498976872012149262436803203672924993190924424385223122181393808547127902062698622739615421403849078890435284270193115589260906236234354886037786991119721997812537257497602945971999521370574530947779204987282727605238833274085791444783147041311022658179271552862957942212245994899119213994829411009452204864300739047752529890805002968079952164762610569373176443895305481704610762773659274764369505900851708335485910625004367798841236615176352215362433060708152964949051471094683846192984087219831805048183501918246322816973062686626230585515199008010376513716431182768795591748407506402833312973861860619927202999414393071092719826191915636874283872582083656689883391769237941263278891432007723562117949749818004794918125445273973126447293255281090526816739054217809899363371640290681875569228152384299597493729857821236428867039882465873881477478442044633086184382369823072963642901517047004924377188071160670230120056250975473413899654224529931497150505499449584990567168938141536219911602374287387972198189650022808382650006238531568287348910171990795675701878061866980411848557910754610998606649190543833041806405998215078127070680790662039690737921161154347658060867950783725868213039155769341143417646690503531713199101328958376368019206914344702378070392672365452943977704860832810479615099055336473183452361355455747112853014734653470243256756815984971499677510910042095649423989423035884971249643276122072833684201894637093937007908275969482670098987726561101347888729599139272624013764711312113117543541171879309424692568262367869255852336397472787146822524821986291012907607234142807508957209047522134493692166640397935170662873397498098248158178508108899586168971375820583780608632377521906200908611682876105316792330530462967157016300780390123407471712072116967501813655299808883414694736005116990766183497841893988316575015922077489132616620224019699067440362126745916884828055954276720122803445088404586934496066969495809316058086993182748507252733208582651968030381316739738200772171001942939030892064452186729840281559828618753800621190698725352906163926493173132101243856897526492928189290127631897668116107632709794649406644367637909931372895636874080717704372410917792305343466401018854720384943878623084214477445329662086166777093484645860573631758414543972031236880929763943900438800131907470387616317601429726790426229934969451735296551967454857592798668344630036592811833730765716932767575727435571341467212986678650162315596301078235688492813400893107392472806977218702010402257900150759741830248384402124351295789498349988392116442797358600622752849322333950918498285769854300317006944571033941290404348628710056258238731855511755983781747514687290346100869377381704919330133472413734786695364552619849542381262786171335725290061843198924634830721705508542359417518638727255735391245454444516719865522520494402359613131066695115934998125654480604185346426104465937543338247380220387535970343023539786628838307486848388540280825409860392673526078564992885594047754704286656213186536535638933031121416501688850387688686103443369134708817275816181148165109338454564701561861457554484412121341198457442185958648180154750099674503198069634990050680797629855721080409900558139390760175422727512929868950989312898277821504319788723048947894061469173326338397658383826783282882617650514833329960199944825627334283954152818339954208997666938386921509020545055236987765513935227191643849907248830409494922002906248605167322035211369337565306491726329036806724489367129784874345915695957867606252825624842343498395740057088260074404471263381413689669194030673748914256683347765136830918574135870856183715250392578577306563644482464952981828838797667189751208128095854492246852335685664545723312793814404609169372011688929502492343889504836412773849066472589955213437449888138907962521915571750116649455030880210797304231575415222241563730072521506278272738936558678044269170292616994852759036508310618786846199834633890890355257844712950110377389697471345106234696523658642777411411029252145119686184337608311615031205886537951016859188542671776947316560189272323436398880017748243010083085435283735623585423290744772638599822983452819649863461590191342621068887703647653252097437234836888938671603732191046803475403327099378728517438229051005585825018052432546164893793984603918733746773220225563416955095649881369008295690424729744608708192964348537332227026131296919438430450044136869163298991238339444640384648934494033129753158316024378220028727544121864253262229228354339352346563725243525011676273966559852316445969011346577519139218009119076584525928517067998815856144730767679015077626591657854962447683069793803194442290733939087079648772917396389413442404994734406001087006375676854342028929984613924440111678810152154731029893305725346554865850575576393719613982654714712744569312719026781042231299157449861702259331681990346727551016473675389074975626943669837553134070573801456280204459179830379137937094209387009783147918829510765035757484440866847635755256798335083258389218093412310741020982169484714438795106935795615323502290807290462088539743612209641589556723498824825768445445218516817222689325730802740418799815006709375298515645958462256277085990584456672207643351104583481159068093462735466074384657865982183523719748270480497544901960699032179335077637097560432060383159124310741786074095457026071541419099756400727732146350975034043438682490151114689867098209590521726395466487470763853068397369010599616474553010806681344880802860537233908788848758691874275290642838479515508900558974860412914413901994414265220063037342347465896551588315937274575490310801987247394189355372867183069794562354921099295340582959573862969077158151556295441214681417741974964913935242927672910657932652238404737106652855752837198507920369265166915283761032846080547186162992874980439046164464691647133529350941930627247694816059068730261794321754456751729517563110044357859654602830424656145178910230681399287588539065340866746501518990004524149634567084562345571579546583672772096600770819744823272792162871420561485696677747552554008111228354568149595190421105088763031998362603032042645317184695500104510080032622753219343342511241729487957218295312232605231072192856699745128911191703443384304455938025806903803213346842710007758975057199880389600297809772192692572207045015019190941370967394770698626155441643349801176233108310203899418530694620911523580624596486782254235579476349628831615181523646926246000227159513915620818528549549760335671863503676718863639397739909350645695067462482315885731942919892191782886745144287499314581043481433660202037627843679219881232243495576930596996591807372953534293735410097684016391256125649290691688682686624407649754510419307318805421550154746317186568261860013295945264777893535123995133527955534291762330622649644186558364955244591485749159665230589335678006193293437007572736238238727720352376927280116110043619489759919888227260209399468695555838955845774518010216691788575687672949152428343823397210839148193187000127167813359467265509827488898634271600157773230424254162244535442999614839214696223300514488534783627358746368780687121263933712758114038134082011984767846165861844630044507478061244735235254993649308333722794088493298530387659566876474011257216050760258615399437549215099808182039520183761478569067069426507836338841327543334185632601133848015995062842636542570170320110659444095895770179294373755988193489297105467086728023086966740920590517408889135355389919870750525825599450562525225589961567476626187265673028307922080990115006181492778794306373576391673779524867189089504903262757546785089748566714448225012293126882432211304480915408590340763583954791548386925434816025214472991744283920061123330242245416883709687905843863592116098389020247705391101434114792949686029458856399910591603437731642212707467630625625822219021352225584865505393545273382038767697712217045655842605168887851691936015989243731776590042213934940832283894192518513106916777948456735176971177695993661511365341189187502252006517247003738230016424954034239647153832095907285694340611767595511376899251250206417675419168903223233918734598067224732207332887330872725737902553532644161129275512246763230932887839626284165624922338631499651471001067242742171620657980311252639444216600923529843715962008038877891937506158814888272967388565570759417279384003820319134526498633592717706194116523033218557704340306394064320068741524528543601324823251600716026616447853895167958780186866493149656077757264074792762627093781925516382165137980617079381212012421647318039751624772520424195918066564949267290152416078154246469497068815670882656392044954219526171972961197416207569745408631985966111163182060910335940984810991937994409079192780098870117103862128283834642528145518557805970655512383386015107860434310556511709388984374052131964966628732548087272385411394096985746413412343237236080160386794482341062867821654655335808522302716792354705243148092007071147235666724025248713597343005324200646279294859672622196326926458198619033611689435571901839506913366161129028602016147481075099235570184612023650933918756673881572630026234659122341944906643518990562845226078366141272808558950330574909462875225661050188657373136474911869254672892570112424169456992659732871516492090478360038846937264455067641236569458289851385003971963014550911707550393264618209151820999510881395666033333070184736049352678520541859773080396338414236896332311425339313727328033983936797687430047594791263825217304980176710878470925769633653518152067872925788221266407889233830211536688308908591019821590158894100863094128420594276888405059316905449817213026292918807648183617811964962944067613821845378750059341661147548839180116905499915399140083534013233036454459274721336233611820792764618730553007248364713398985382408359778513953205250880735169171323615753505217272045997144064917635812385656781599086085999760759135298540496494037091264047375778191319580200241142157326063480572759513633997299188000801674763557892158493204397345686767529482909853362230352779933205139943794426322079707565609137749242179011140507804002850601637327019041369555389177903880202752924193438726841408073706869232769869656509417411966490591965086313270866220028314054513922528358215516591938465227086277110996216496512567077711017555241658083076619954917305778988949728142144789558329188909477235305981665768790403629960682468514365722118412208780077094524612560391151402690932288650983576490181772955358096185015929945096953815606174918266872767914531799450418039075340523075849604093877713704710747637086897507846572867272855509016697347561768251342809010676730832705534285714898906669046664435328696190312181847492416633874189041820717953698035700177404166137465530343115991241071979517743189192210168756778757490385593750124949640198714716999612214614409692640841851899866689385537079139946835235358050613361657656159896303134669561941355376476371731819118479094167529557499415136400589285822822890661849034459652111111913833256967651834737887593127733690139159197173188778213647055260819572791895403154475599563641948552404104342677274125401964272647483543189790613835934835218974682334461788829019693468437816548873027690096067227171869511198012472736690747476331216166785028186595843350460191807429316131865537122616958728422685217062704346015859544154130514701732639002922862824907233296126336840969944298904097950769477799548749935142777536795170960519259308562825195913542879369824351787522028905272075216777122129089353250778764104996396187659866511562175250369858437590690431466254244568492979281181687351650780882851636094431532589610658514663211215084304089326394406598799179077544278478807697595851272983110934348742171670225358794694932472391537171854632965178401211029486431742842648433423763703778934390225432673648559285980305008205197229621533770296096651083520481815982726195236886893621686065831677082266159194821710039503569170413692547744363133001459829773372646637684020830500706036330240077032554449606488671194883490858092699854338323764720744763802555813825582380001392655406583910491558871402414862377696713759836484801747535923007377828515476766544634971810546325639770790275407199882986657300594450990702805872445017301372427667120092043210778457744757752638046800160892128772080191604815871326426182301127384861641057144118657717283629949279047221223861030402585331175968903431993293957843615649044462733761176289600646624703199880881567571778362753063949527737621193688036070337668928852244005280392965037696753954446965981109177830064555548004930359036092947256464985979246682301181559508715925164301640697335027842327162272674432400352633163501487283029569568588890687969111989775675255654304844812043835625449427301177186639865680188453400532341030947881876974343306545664611250685879802944219917873915407001563351878194550151387768389478475358745788465037159125618050535075808498024530675970650293749746257567650322055206158406371471170304119205393722997990201961202787091386497069936994335847642285171492171662744914427199236229982790915450654268574867244211673410410526078128860422083556694946734809487677946137919040275574817245570076745469705926730476543566304308937092389818357514650327438842006087314271630248097844649962797840239842903153608405627060965814469738547504782160404061526086666576496318542761488689301491613175430288567718844052774223744760832150842640268255734392386034217541022047281631520088645248596087453417598203618523933171992044946580547686972358409586298187106501442498940339043505129539907704885521639421167463291686966303594575047092847709784885448219784977946939260749238295938980427266991426022512467845113906955498393145545515304201141493496218281304381534080913610598214822587430167170296071730220366692656434812488812052373103861170705546433262409379032848854970834238533432080107308213678109907995214955444227406113933160662552656897134087778725646723549252254164008789800001233736163519803057711625241485755763077968911334199600589096240949337900482495112365537350069438165898926292421267466354148056458425103275162052930852086650155745791762289495526669646524985987766945066459589643502534350692142806006146449346959730085910977351662201997250183876752212354007704976542917316768900979837696061032199103216687951108086511038061432266959483044163203529016900349603195919561313110120463127780318714938299898099313230974077147064854307473356877105570950197143294848585747384940124804460373415429685329343031716922580285815610095955956175562337851884968147700723153111024013065825491985781405011614727483518039868828754875413403076012661345714931566425964352656545363449221081039593018090701411452162463862158454465162115528942701474695115978287896705383308952291011664736733382326810040202593710210454864690375761743286881237072274496595942317818333188457077301981226022840853217169422665859336921257884132980672835077319666328400362348502408386562446130106889421683636256894088621130321877934088853050808289995182289566998821652360374359344299339789669171437656851709650797959666037751605311336966824920959632720740486999371433269436949904812080062699991913015393370226554442981440213936906760641943262255847758143318014112191601721676830660707416868262121052488582032464970178686903187722554890940485050776264226837455619056285491485077262801243547339234111501090374129271119608265198280584141917565986663250800341870723101596763870243862932063617214536817362604058269645329574880423850583018047548670299963814686333336449758585029136324399005756532905615156641785322275739747769202939546245950300241321748084467887172606585996127225008222715269088643523882164177202782975306958753250403598271137351656712739239827022562707371936854845897505498098592575798508931584142114979261826613561169350185131118384560524002496377498443850171282627407776109458399842681441461901504596089588059943790711478732750372644825330431528318766092858593050911778911422471145996107304736484042242654092777454825630265008854036582928606672990415645416390869840119849798756555628302880218648175434812671360220712923907452592901835615134825916204741108603622182165110071051749795503601720464942594273205874066252180462015391764190865481424998602975558142303287466480939369923417886300324454852077764699431870033247962118456619937618602854255210920298041694412559446790035437709505891833515896728969585814272084264926425974602584856690960347786589673970740133609942035409494445548739692374177992301700310126926983825528088964570694081715647501081928740691609274255806521569964473302397947992714981302508580150405715750890122383028352566630679491541913283585966293349493766602866562451875979541834972120692928710892482230635464636669252285956313267094272132513449938944324084311275011330767330136189510332911065271350231271118732522771183109485522222857637084168718509142063106965821887863677535464768078178979425289568760418579333909625975235157457922660413696259559399424779583083198176417231061004153240562472580732763511974204734128305977391921064605472664378267478522215379059513149768231798592504453670378017231746583681689236317167080010307766826355111382339261427658405908120785374288454948027819199934751674532906629395807031957142786787043895856265559685585353345002636230378551287024024272598885709679125026789472994661048560794212951549331160294498059223856739418397014284458500696035156721507079397456662413907718882320024090336930982038349811300908022090101561939829458369211170307143482703791833437351843827127071644099569411761753843673056836321332067679525780287433335408147794746839055638597853723300521313322018780369732782889931288857180289021173276039898155669432237840517087528087872289398124334697826805246588671938909557632784242171929575997354346462765299948377601251639670969216471558471349871886980553882328976985490908729746792015204314488676771680423918978652513702219796230256997894207637223999670364973035299998486668911127185116350751539252410704237255706111959397366621727709203448082888042319889989879420868797148686755793687057006673345571378693207009013647972148644484570549870934499360197308901876515331112808180962939891673062623288217187623988535479707283993022724602105019691231784181716546445176893654914055190373553867023268374001092910941962140477451813779044864345430040627212870108099690190822985668072160794740595789573413178525075429644321379406474111373118479147914251417327458299274721499033494274394714465578319091281577339545395925992160546717414460945404374233792285213634654357067274829545838906870844556078853161616750879813010313433598219640511145303714995469977331143554494071238042746000952526890271173514396433434217379462881521216600588499513922220598155879424563288161293070438664781043133805438003303548767382090886128615958362538227760834536864182451854893874887151992558148837953915321893098056013534922767450755425641003555876957381463473734232942581374015632183062284489462208248247034121610632222311870620355681209708339176028730525187241577414938591607507120001038470513342565649736323785393002149010510410296266344033338083579112046902751857140194103388350498922275105658545731244012655701724237580791493090952501800210717510022397312166338081282227713455612492656748224592210961188575176427883935402919048088386597390622286253993262965378917689068552338575418407163888299214335984705878467288382138036269638381512934571931594580219260132417854655576569279387008546986057854658850647457603617140307526726436865704970914127609423546955503002795068936941231385968966781884434482564391744997343502546984922784103047824390584957953574721707762271378306875437352957624673473328974638801031363803044596468139044568671039629862300781941664667631938284886892437277417797005956725468640985601939209070592801823028915628294267149636395725892229952073574479525289898697633183193213075567370874716280667520913608758049869062524404862656345231061635345981225914502660498591558878483968115819774145222601717893505176562865847799724220147760981143509456808374210223380983425225364566974956741395116386231527451026070263550352858587059942926321997659332263332833239663264659801311259420421337109401744427940558810641256976150768441158916279688172433537967654816966557006835965196074624572541584471835362630051888370033317951009995661429670938602342293900474997187182732153294590632935389125084112240356817999319451970811840315779034594375984655945690328921996594940247188204411201460597209907268818528260336751489411637025111379099135937660096438663322614768790524204222711308897897366768485409054761104245473213685445434782646774560563041734716596163058231537057423100760832461502079018246727572266720595611333682387116806023503799408154308607638011370141908693538820814901155551831853466352245985244755721096340293834786567933599635979618482826653066815226137726154844369805669421709346198284487838258469284303818331941341974039854551310817451638730909940761585826656710077353248688682749990123043296552113264300013410139709848705815508212345032399414873753746180941630284894858874800041089719996551323493062302185237838533232641910791151478010394495028580573417864004991220970327820200698110465483537350524555292272986940304297122539599923344857275409844872769213285615904315433948211090854723485347655488628023447952557132983814365236818402342384664279389819162091582543250308168329190537322128949427444662555804981948886120386805754289611672325793378776681416170624637249030597768576447649391644461732476354650455505522443512980599476287765143973647094338201397289485798634421944595548989756844363823684281768931141564829552009481547923703995682568030255549910215080790404530061698279091885851910769926155653325055201761893140111284945909412662220854767708694019835213777733983114714935589422826642740674643748096298657113904476550722746400784349726837062072437999884434506097141984245538452517394307500649503880634428106063146619026075796328672602588134394888247317722856089931318546234723923992786195463422269669969167166656771469148089613237848685059366309183303205936558048018338557746175642078075702814225747547005657783152133089298207529582622050210323776943321144508680232044408609249909957877662963846361518878702970245463691200118490064736488352153272350903387351857971834188461977520125420569501516626935202517493018869576785160744554561939414937618763862908360665131739530236261979723396760963424682559443840153745873239692304935525200385799584063073883739460092457964387742576026112123050043978396431913206986139334945462416583002942757375469688030810598956993793017996704035525096234646019843475350561097776182968130312153175687511976875698052357060491521894153473128370751700049518299107257369957310096752060372674126767201001142319266411463647735487680188517428437926474717359945775778518834286271981294244550338146003626288618973509454429199352664571874634888425647372209110709014211139107707778992698126436557629333379668071630090479058930550073160820488960020617720818600922147650129586746847046616896871079936282167131295992660490717902676919384636910497090300167693929378760519746977456934236559507577505203945399337493093212478661190142790275865142854202770378377176160888506479360334504814195486001016685344686313171814171512486091262457625112264358430293307531424420244973056095417439618712494098955226216832041264734952107247428421129571845039672713873723257152647064075423420374509295356538375915934274629724679598114401581812480168808807974603538905758208056455582261555098386297101706499071089848948584531524051774471209347973533997667886052353910585735644201363717267158754802535246180488982564710901106995621494411018010731767742106846439292836041616280254442137961540679299082398403111486674651624476513972003344170580785073720210915957275621203219668025118189183085382835089374654356748330828513215015084803030273639629654565140977664188004993979669296026528424352563789866558409067492312017827889089716174020834054228002751732596268284268863054011469434659895272875530435413543142865697660915336124248132162115976804126052548965587781623125569165280717736308831120443793082392290173185975718359125668306902776619956199451892533429287308083940766189520017811344776260544714143642406487907766050014984894270189011475671814023828482604504073868268585194477260207560221860377047813959682567584556586852408840344450523545798922802007937474733624953274697938162990094610123906855049102776813046097509945581312647676359455258072823838493502690745582460859213897836442409482513869266198194640283042250504233121879937834566505335028903050143983606885855629921646057960512398305433161320350283257121321170506166570077675091037090944418077817131537005497754175355263739534340961188058715681105848884650971903627116566806993537298955388802852479099789851887189684715949243493363479968817706340759588813287528763052963892203210923195909559959809255219320324729290602627484687077188558194825777817539988377508257203271021783087950293936064766119484139396622552303196863996115289950656650524603417758665362577314138154747024879779410309238717988945642291265808581605046038567947187875011784719407979164558184447459369650300636680894633642091500315298957078712469523434323458450591446741634226345094156183261109367599221571787037749089796371329611253229414796561958872626197261872385394218941455193006370696596667602255207452654074073534633673856310510746409478952523965851906628345354123130399616386947003996506767367955376573804044876269760302323422792824627125746338497002678591648804717365099755630587288216920060124496277389996312001049357085449035598294486694765011989634441528166670592542572844334918570587495254394561746682179917307234372127828690063228788937044649622580422478320839227690948671086868835446644817871159788400812952445019435126299893081952742020948991673758045958092838236964289702238220367192752569857880808673009904144346358653624158369251343784827021332863724988567656347741705029982891297233861235543742671744771372729683404797207869090597683483412884377220489284750639077588437226564765462652882072492879665711307721546046642835249826863260859082945132224692605776415520888094022147132710927415435573859411622123701300061850011172634312360147662877783102029558421962218060729221574947386789698764899520912876352890542929534936417724669618525052600371601321533554754429253625393074229335843149089344423631715361306355595977963932074708698004426045842588686708099675181677468324756688138513827098864063103874891505119285407866215588195211913623435119129926740078034265538641382235792600822513163123583143408400574602025401581181254055069711455171682624092510121008551826047882327357470570655803070165208918874222116752389466389436125255573457306454701493627119089285635580432599693344776245431257328797701664939821309760294085207770425074296173087074381184620521380194048741775449797239163054125982770263346391124527170527823327004687515608527904588975293558403710097780342713480563656133142948292510076840980867939825784886374673793212717607076086338741502245947216426216733838104493744726042745184341224049178945387127068437498169748586729576236169421731738853731672534211435896885865649131662946072901939376148174567979077954383958270781926699049253815742180263319050876866366706836205775728242427180375716883233008042087400032377606858244577541674276264701368487845647339564706971789065284592335946776950821095444064715343627419012586256123679387455239205225961230753717752603425012969301296349841612102304663465813959236459602100010138119644089863815925687222532569363259083418708842875057195608343102348342755807354260369680375448890269505664773415522225087410423440115947670999008865637778849162409187050591071802414578498614079733882908996242921702672753397523572472687205808933873764351746674546869311509462037442679043802890532214531781240840862561020361385153603601385292670048860775724866721588767443686637966279026821443240665332788660293923542246123470057170941952760856155778546860978934640321636354540817820113901081314466547778585839157732408883123726349641330662968116872169899677035294016842297027919727153966690071019283179737513486763963427372996285415963496898660348179359544224078623991341696185839257152562618743793768803468455555202527475681464120660661084426002185115598594099482752502701147966435376935582169058872796187449286493447935097552852762924381595906511872555125416689700992988489249358802506932066671611706835107877272113897761183678494784894403378732388455238585234172767959647565141874149919936556559147444288174004129370206660244985782369507338920421166392957030655253814199948872073175053234078833098732403982580263384058749246838220687597794210764697713373355931754303965865944099153953969282751755658844646235891145504048496989263440066717180952891832723742740069656702919196134850874553743713320336257150067827942523865290242400946585788914396860527527492544527579702748351053923378358374621438770081402212461626754916289787933129115975010852476907121407745295966325774562337235965227682164294264495285341526251832846469950301674860291569074270900472178656399946527196420868189206980215192874404802399042484651671621068101966157586171241148871902248143031684704909998407883412555891893663313780471809737178256715117211415354004042111207264142834960519344247297302920034301559583237226906104489502356379432342234938356640402107965740797128481340369805158047700043796204467202216914593283916739340389159295020780216190908723813406412064829556326572656321629035271257261563751317093352673450946456405575888485094055298410129678841798748787780667983100341813651391459231296707026173195304337438216497219207189682827297173677335283366065708117839185324142010777794806699899086829535165145104952713303873724213268542870149132641698401246570133216875243338405486872601084522653243623492689008217013924262337385273172659549307753365320061007987766951696785149711946200439948829438724136807008041549895498794566075066454626591836104532248899077807485150422058297340613894061532668050293602189137819314336998911910207200922815607281037504024260597548474840363705648669141735893646316882726150831995204610534304274493655819511727454563886783493994522640433024081117384136688191724565533984700305059571055990515533588624645645121243180223194669768363465863973056109134777540887481550985232113983870374311247956330291113265198361235520245068502093692316274901533240257669536179224492222063147230113402171403440610092862910513016641545621888564942316535320375721482437708121807903803457796533639575477018196893767572790330088259196067691248612028805399056385629507008663356474137421668700925842175293917237700904031066127174844829097190333388974093829101779492048290730496199697189293117402146758824567531935276434637090449929898366414962224425291030224656042748085101429045272721660903079818541877645112822926630704365589786324958770620142808512030793415194200698567240972455628468486995863495282420137507767686780189230160900251746601302027058832286356218231802424741090011650358509465503373903981611669716155184892214683916718033814072802294935928991836924172394162370594232801640864927354392520377021695672028295732146329949147835013221898821130883233581047794147241345085813139646425418989539549598433912259055344926147449039898152308038872064472892817012963368755245876423276296823354335061087631255211449705530754269752258299074748997320963832909376720789223028142107720640913535815074542198549258847743198266688840451055140542244013130009764372405324403126392004932032206645499926243222168469892599513683311527042273844642339489096272099047212892920960441769456768716770077072663178342457843126873390284777092157284673244754465396786878777056624118463522734164440119134784435576242547899897921725066448932616247251319253338495516996972775957866784778051060135478484865364066864092482030394929983865213796753453538410078578245129152076867297190362293835827471311174925119056543264780796979364564172977177454362043992340936685736297126752116694465122881545258398066034345027189631616586586239218512341571495734831565617070398750949475290222902742634996328265782667858466144956767774557523529171324747615779729379034024580273782436046290005048944601795873626916288508074916875059167005629287754560609219305996298886086097338859219192363862833467383245271731177749262308912158888423433389700622047326516838558861216944760446817861027221084409728881679588947937296633599956507179585556817975352843760713198400318305478135740217851618311007555502996652881754844939223361524917724603477955573114132743836480304351481707027149111355407809100675612306609399473866995709525292782790887736579125872446442615541157395478226155979797355336857452110600490373211387052400942608775562569799151701734130436056429126767251256708507766282588891797993375054044253875121248796376078628265162362162129571058620623627404784473382892305981426164295104977948426870277098275592924399455600876926710044996312706841746189368171662752855155547034196993120057690031008663876723579971196473048374307736820679999495134273208820785899438698089294677507338478073196252473855305805589338339894237169504782853457232702939224752508004222120406402955184582565689359668266903157126531791793284850767575860117849052535721817347821632829337071566473847683997303638496324517965417917997848248452826768248200999894044110816649553232837742128395627095367451388321585168101754923919025659745321903443745116453104448326234850179376939362258032631525449906989672181456151153306148185647013381577853987625142999193175977731013607586852338638561785928539256593291950119107923641695776526717956887709817665770777968249291841682943714677871443746272824402119230710686418528432149734425239707717268135947482695732655076846529904793228623132920388313233449642467555475458504862743562116606553527813570058192273275920018121000332622608663199389574246277128427812004402865166545491566457955043988627964766117643650889609672324172435767087311138742043665226110122409606857865557121305669526734037315131461416731098212457273136369957555218946637320148299525645665175892651888353968609632770953600856989077239225633003765420581667632717905681725528564273065744183254958711019202151027945735783317909603747076834424657083832644406670940836147540783131395399376487432778879157666059465838080763191941821473025211645762700340725043470281017625971152935975558924677517376142084645228745310880096403342376544804544411080163429613855036995759180551817433606376700725938637701158764189471387903701418515102555277901349475586754265173512629817575893201742367777036678060266055898747648728837907125968885560185034499319849910239276412251859456620987975700681779626655718930644337690528051537969769997506052623138940298731715999078842807011763635807856566933494024963639127209224536004707061816860811265422781425163653480569510778875628935158662449487582844739613316725264969316908308027955390482340985012911189166748264829733455615423824166939474065181242548412365834818483148372025606565410051030130815767314431921942926000881553768713904162742735470199990604556030531511555835967629004740945716737175540641056334594135945554485206317502919530884956069504712284735793394511918497101214394022679793253856213110407429127125050854072419853451053738910254832535461958024915104206273998920062312188931953773977736412412762451677684333907250260530581523182168342200932998514097484003701261984718401920383971962394654456172147750656862849951851552722367075011428337632729899197735386260693505979651089045437106709855080193259647974914681808954812661825061398551635379607780698873625050450712109281076547109305241207621733754946024127937129862355428151509511967409278957510627248764786957894119647758609987965658458976916202772275581151845783549965830276847183100885222824533566897082195511451666627483479110375021527535317056757340216169675660855037578400189920932918899550800236944453743213650261665867615323744999390111441088191708296760378282926446186227104936321433146848097800396417802333662030394965195728433715442735688345677494554621222929396844151238360684368922737800285117857954162423666033321303423885294363653734467125555252853550180974261041281629450250838458668076847803309954536830940882070865055179042203993978735428457062792359511331724110602293122996130081696028469864832856702540806447575525843163854227229817502694290801051267461353116615162397593705392790898453311151038112718055051296195775286081826628443448128047799924908574225227648057037031785636031694193125734950413504186127251970853118850211441864936132934546791847433446971009659908243348717132144975655059933522980859741252879053062043013886158145260448701623629430944305803081371636720693666925811291895823063494256752503037652169869953633354982863283284950758746022316776725391766004971461713264767520787238671363807099367696284780816775539741086992387919579956490692341234287965413923058613542591691904791060021675339616613529357023070959033605092956615069544736047269286517143858843991646351466531848046132137525856203064716936179679060501224395940600846148591639267800099054855733206204266471752910499660372988475005200817624154774856281177046398159963880623855560831490177867189140049906321561188118345242121086123550421071118635874154099118932540990124586460191466375449149394937981915688313710220459009714723356938708128214595920852179827869994131931929601448398133167714446282743958502463241510477528744834876731176299945862896521633044831792277551851794381992289830953758814089995565847142694810997654102462175808908426792848101436589233252833530805123793438169065233546973781641857985126281051712229959966389694457361894556723543690383476525245122968919352265008817063058589800655429617043967004936449262164574324489759973481881301542798118270354944281058929009685725314009525361903849680375385103847600973895118700721837618110301597286829322850084839951535483963957811834564469034265922802435658053883198287834119972847541103867099314746274682663961595862150925213392721929470749340527865643393980491610466916131336770234539668907083596874190130122925986040019341608043365751488950284855409185904292757604958829691813473311683240748564306314729928679442195622133990681249702848607969772086686641268230408589619968355199438089441630100230670986108140278309272025996034015505033700047997063512550477743459324744216461112349459720429443434693906749855537084534782335474154062737966241906717182293797931448107320211019288255034134651255200319298313587800216540085806533512678991028636488623648461353861810543783223031249777334161717194151693834950387467877524489283407576272147746157289400088720174173301375693535666748500986749762915470999166920236821250438473957432790234499281212166590469858718417128883677088198116320545636569685870835073313633372541312760036790150879761728188989958799888745000891958635320352566123974710747274102079930831948781978746091667741502778339962201745254750290309995496485606606005199471622941845234692450540495239110255955437785963103804295152608460395329435104078288401847258465936613806164571430841805243412923479068673675548633753233903235474853030362278537184059752789090725795833093240786530714176675202406910737601723768430838260955084660504741453448615897763238076863669940162192927055961591692899968263935644812629225707509193834620239378420895070806291798336758903111599132830911862925375080618127558689080358692994838482939956203266398024823858651236694958650827122756121372422004664310716082089040946961524916179442790298689304093434696931036643421014505655645251439641169522820174946434102734584035235939040732900914084412764614354149715493766426407725664774586197194544540403087818704129830392962410658736962845712540096295104961027386857001689084468580876523955402444731995354036984577885756124469293152387439364575087697799222560650169671206209039240466256321110448969697000572968937412614026469775184160965291388381804372764374627997428139192027333808112870568681833549392767114951932576333941695004572240972472152330319278855677325926252397075735226939520669715666040337179232893509208050592422383965738166563199341694260863528274535496217093531441786338685279394184807949834953650648468836595769681529982505972196687790003244440738826439173819562584484095789372812390814067071800399706274503922837409575870336888804515789776884433870176938023022420650606754366479048932378531666490434707922697687298848262549112847746722702691292338509641402540522116650661355394976220349318097060157701394991457230745997412960714667342856942091788186729560586399798544329804730325303234669767725794899671860944508626046405665703103223466756878036725546905732433164153292859479699710977778756322196365203343518600072401347780821305108526295722444107421893500382788796024761006937785555640437121104033095029992123481135706810690886982769326607305460946528323617289431398036254908821178881102171863028600348512709243263589570409118423039269995235677737548316218900438895259482307833574693779689910911816528169508945868980897164055927135456201582315102326467688047640922753012221971262147502265151776458633799609605091427389742382019070643972437373062714968991468456455918244971569658910692107078147593744965039650235797190861109883224086664768741082140936878732771720488573954647239976387480670434763610349555031243828803259260120877272620291906599033353164182436286662366509691260365275443618911823858258035414770404295045012552382029733932689653075747637193770991933693052309363608245302969447291027788733081458385954454624219942503216010044436695413916965833911635373896344289125363788260192837379907257053981683041267903315065568171993730077330822708304880791730021020924622700816960147711845196338986036456676201970408322232050278521461852612549573059986380394258470939663232857718719667610411663102084862704132728668434687772434057046180737789154786764431297465163245388521379914797670261943706788697327857852534917923362408504678369742574143475762029361395347913578976173356060204151808351461258256868757187894352296433891062600260078808603004875646380037992329908916024404788874891720566864355925361403852821224010169191705724099663355123521481089641516955736734536069526913052323732970101396767234509542410968858839266480803353631028050849441501955236850102091144625395631449783680707815007627095924870162875967584851364575963642135984774571050642047316318065015425788751786163489969364989157393461388932639607931763289731831010384866141403493556649658741120973730757469422528084521395047034121469800199917409613869446202063613929796079795677543580494226341698439139972442732210256274136788271821017985472750221728971914213201600926402309242556411608420697683371077891250033620443576486805472528770391363356062735606821274529846229049838385660624739583894992764190949796342332815188789617226680752258629706203665600297098672912661651562556539300650666900590933565888676675219056898252609985749960618650554521259818626532158331472994356555504272480267770593954844791226132722768275758155247795107791987081034472609605311035518661764990758734100350817382788280610464111220326088905094297090345826172678892653651842535953420678742793080419650826237536212092751586712460594768500889704413777423690317778340329835970602900956655370339694961475240282242666729342697943229455434480450398993920822434655476878393843721654515454826250238113738706417538031138119463864071895093664372925268878985131136602979987433924532474967412243102854621590957047461207849467060508970094125417426538495199383196194668045196383784577122978359675938841900579664633639937156003487094529319296718448237191009818477723076988110093806176127836623224635131549238491441463602781344178130571919477186382977752409119270774388046308609961712368878066466522292053766234020050504736259876853605368411391491109752339229221904347860047412840895490624403244344268148224630458296862135788656420460096919399346312081408412731203029944799203319152904607090655338594926413457796627671166927177943958374891433198859249052391680107659721910481799181071507359144652105281038931445863142843754496506895686617394955892340250565306301328468250981878027129225923595506599136155758375124128935902260901330327997301512720678104685372144452570852642666933116885450690599444741826584001502726569093553495179889639673467680044976699588850392166674256406968456964147924984925102667360748469929369247782775851463545858659765617070659624374484262557883846889004850618767685648074065785807878688641342372719114097995548627379193784602458552711171822313088469835575368045863458515419858799643356888081079904510915202232023697228960556646405278423229955133972622899359697071690400936488537165965827384083594727172906498008803697846234521714163746037246375322977831866027166565589347729319491175604103525861767972588318775845947815923606448640658153810865757705458644159796188349710390388763433006954516562095005581162929082086333431036410221381265963117600343565773135064203337148049895389798742515410894367297993173819417512305818969560344182513494425622620383142065724122012252856575216910328560065958519361582330217123205691474116614323766171632495808355363991001598161422687585092786283748981554053154650514840022012764861114106041707009351949469965084276851322209384676687366207819812115943281260489921722985448738965724439417512491382710771219024872777253667591324635627627448521417487752898081946429472792230410098348691980320655236496564276342592580621587611980796574348158614022845393275133156288092842993919056706133891312401483552892951538391861621592904390212717966902644132308308691193441006783938388486467735777773317678339304690284152604813205563733620022438613965088226431248211597317089651931607434558655890147133409147002559970660078721076256570936337158889146334362314237925597164264211501046509357127066821367006050692037229038727683225639094175090952638288406630720235144379043969648429832423237422760685758799718358824209561782410088657903916919130912004058619093189137246820810554955731532008921006837644114681071098405390188681734149783922683719766864135141190217912130821689781511553274515278852037953910662474125156813420725688989019590398102457134222715081223724650167610682527155468327365534475171072001508915037696510459461548535292986964537887658900940921053415958617416504033562687676793678366498207922681354725311694449392967086129608665493649275520822189536677196323647121929529966540892296874228764076674381264660068704321720281655462468901715564242874320286551968301962682140894297054013798520926683592331257076391672854948165058426167326126625308139365729084665617994885125911155974176032879903843431758320024303767897306744703738450006271225190937738167500447759531559831695411860652858374656050752421715586283527836019035697214092908090741670799588850946678999067933518702646364194547842215630647738381052055122817812403936378971994588695509811129151692628791643159287650594369510480316383594856425196347656026909204115276323338425112808528047598914971937869956976673861801047791585270034457215640144846856875906408358120546185903004049398520259685385832312833567901683529098021374146045042636317990984661547938363136509404857490649284711189811408012525086864898179904586880217399792030304766200661826425075296145943733777329798889047213740443677452964798368804126268254248544597834341636967463509790664998334413997453378863099845475439332978853782574788882459628899454209969689363867402180692806834447459943385749781043359544691044667032564897448173108983205374343752415114012399254405436687398705126816849939688000114664282981051391145995492931132644516670324524636128007572783464667042379894627208005043698447763601991568678430676046625878467904363281287032819645518025042470043187589771344930372129995788279720936486930252128498111469902049157981074220955632526920241116197829234934563555269601079899231566408882760348871341157373610431560130384692401070764839655102304970188447233114273958162736672520323823321254194744161759331123044142743780342633663109108617602524215802660179440690439179853281685807575552103206711186066505163261134899273936482356165536361909937376689682510018823437240869954999871502603526171646990359589074521291229188374421078588082983265924995766345817372644648880372656151440244256128211241424649041008479023740803246387711424327456700350723585898991915983719629646153448605391809642812204629298241259548712425308245978248327814067449572343746093033246961627945148664691377161168619247037202955649639786343483323821003727364790013216501871140038467839061351606173093531098713110798541454893828448719185086072941769089773769549497177832406664001688733546522990611539703683696570689546823217611873365346360132346673562619099753016489489880320782881540909851253877870802787571744953160062548938734806139680672669607201306930476075404566785256124318005626975367323498653677358375229129127273589977496308155472492946934063873724739043699181581568910407673480882989853194267949214686537973166333923144005627899674069140419933596523173068246122423494911054064220986437266537957851052617014428573985858689473594796593164692821524668588249620832329392383753858076793244559131771307366594610261757294774929288620367008578485901487827081157720948387723643512261539599059754129043467835135553920993784838790200390535131112691036909872898504094787335329300880869183822219834372622001656407040305270612280019066704818785340696691455918974429547868173317838997210058047809761216005251937601635582656215135938829748518801014270526560700008042339055218276997639292939994721494416770183587835119412131199908232462887782461515837438587969257285173501268580548180352422269636973332090768095690272371087050679248114393598361148365523617485211348150168010037300918349887989416374445084262326983054744291499194083787951867335322238263910357057430351688494994351223879586428504487896632783964001717893618712184514643820802067095313472593153145420294503693150860656854834949366674322448819091802082601195036621298412198206324105302650361980028272727930479231143823697788324077151416306708913147912682386162336959642681505429199336910748341873261437690390611646100545994170204308850692631701750733668079023405770550950936652745491697840344793185443850719323737556113016302923986534294181608429374645023645415852557878796508592131289079377752493872405889395344294784706659293819091285226316025811157094495289111574903369435256870783536204287324936845762728385821003905329989181192806406656466794610564967267497173492108658750549383114490580072285482514661373674453762470099183362910825321289222962070015149289336278746075159301260682777635462289099342485752268516517944331610212572577216706198832914928039521897588001433881981162160979285743594558140651654737899551672542565314596268327642546244341666599973497609886589348813419172228261232721748275807969946469044266593203921093215684151537870608110401399372074453183000130909311802523277557362100258797379037226243126406150697431647029611437353856855159075402347385607654813989429129208388102875558410770488269185970436760754144358670001394191490616974543743449661485419648686804978270645250132104456667990251847496309849426665155089090993534298409252933772482603003604102035484713638489552146757206414039870919402459953748100395734388724983144657554983565550635735200683997144761165680427581947042048259064657458481233647209720420827838894340250504020270739743749080488262379287158026954180095496986468140049453321611725385791712993571096699063046548336030087492592020791216191671299720931846619316555761231007713360572745728778528486388083250850641323690516360542787407176375244462759661670416738057113772055758365047102595749931986854173658997868317207025963416508932376614282185976244223910378158104909557614123248912614990981239055446338523796868028120128628344584874614623791055080616438096978610171778289064770175308661863310466095667779852311210499803584400427596061703330191680984694048001649123208611662722455715505993412740514779146931921909087104673211776301223731069046382195396580798473147352572932963965293252297900767201629220324471754445502448804081866049448302541630741008843684833833030437919755123858458649425219396478428661870625657871040248848256291139196739923635934656895350230691011933268619978106686254265217670061518353513385495897470917771877967674675356990858191365190184371492659969201928972743410304919377931758657246329582453773694595014589981870853941947559337424385965405436147599088544202858214336822711716349762816195567278224442328615933967200763407894575922905306672228363940488605837067706175670076200385368601553431447793189443721740456546946019861732064403926171774981221717766689423670355458944058895134283994666121018350899944734811555199254424727998069426803626964151644247498689536669817248167890316106813888324615643138768199436586129725416695667609273450397528719042799224009175212137060409553858311710604064216768907635296265178619274398124465635156867327479623447414914101733246702007061914212835489865223390199370330809938704910105655247225209925373886307986057594524286989359238903596921545193070247627686404085493818937098357179840750458465708112922386827969225789165757089457229849385971026784081738210466445600640536140835571315126433764001491480740789139496274192870778312332411038171587416200165740076085136993559880464717347741192464801731443879806468446714900845111980570545018634995473696070563249315832582115233521539913721828045298895748272427229269214153218044479451091284764626089063716649230736812749252843293868740353593328156300212241782044370255832360312755699284072731800345587790549701107455384450580650622602137368711761995451743933905683483196542644826461384571599952370905631282522923256976226150954162567844862834326559378254462139005764589707575945757063640294039481629647290600922488671640669374209511841714718399106339961960920772238505745292449081874981191855192525898887390477675828245498152289516369477652784659079611102256375457375021703861863368298190881203265685464247665171380894013058678753500800682897600827678914700571215062538795844197883955868039551712960864373986452318445489570821551588648565949178553964848369756352447452672907950468406425628174657820627541715182552849311020971718716016957730217073093461395510771277430957504025456083655959700320611717061081885078633552472512172017246869378091238933500909192131123279620141847323128746711652917238034069280843756087020276719582620716347801043635379745857192491127615582772939954593400945120722768322274578058303626516307336255588639036060694225625879691331310583629969923476171409120167572246467437503046887709041995302471466310866388903032376425075000136559759953601279385666530591425453235007531590326191919256719975270253901044843481428327428289071193912634036706001901094777523211060528739395736849109169647637798900345106047983805757825798562643872048274837027595826861451626382997210403230124831791024871710788464812310587853310336304575428784352477050721105064475601214387691572843737685811978613012880161288284468134109003891027784993152282121461688563489695203157665609288133883089784864096506838487191003664249749354008205049541490537552791513845903933192423513604241326826316248137435181631102517000722639127977110513668744046025815362545127586351536834530498881986674636976478814360823220989409613971721055455829926134357031648607824927585423296535787506911057740315279845518246694708671686423576201334906594693911624843774465357108100678418781260561706850166851238122172109041513043278041070480948430008459020799358874766252397516479142694157037054543163347975057929532572487342274638850174456113122628462143449935222462404287911034164936548945057632620220338464654208865446955539736230693865355773415217829600354185392706840567831677218180258472370221318336980771645051781254177467635638745122818993747263553493168791954127949742850172257682548740162461403054625440356895004970021177222139425844686421828315708207739344628570525378429501524395216189137455208223676319681796405669407174890154500068172184364063893779061962719690502909948051698508681940212261833374270916294301231551354507480212000676667407413311771614815449131383438162953387424571508376499023675159474011520677743015064309009546351107500123804658827292598649142121438185826702485098261416005808857605998316451105053810197614622108288994857930384091725450317719294282392755540589443798704585077740519813616583017575712722591397948386676683224482638601206231165582973207910164277444407408348769128083565773437013848474733532135799763262584866115669806925143623965688298622044973303232785771519004182311499403772484123292884200175770723047137036596375611071811823065239093637241395260718056261024714165794515892133182658494609299925543043549759237398291854728524769553945526115947418600240710228038184649675246558875614695489699253521385419118501975953142482633815660770716499010725450121492768745439049742124083760062564219133624969980602401258369637949045358417703670686737552548066927567969699192146429575943313210039596276371846348659377072511894040343762229867710838182918923556871468318735081514669243602717312851830434169659558154747267450323576938444171157626491048302460069649224709182688470776888326709856369440113598328957921625677093479585390235262640103901637995946979740780787468081482506133655476862056504311575210861055428581018260654811060887615416041768681717292585711709598034240036161655684151005533073177728824614257489023386110041880944154179393422231298980842440582985550120607572681496335110306218622956011384327293185782315486306127866394036048493959967977474921325986594257424449881782609508730069622708112103518325039881945031712171070010237372260470473257328037798819080557527780138221102773332870425552914915794955444681501445627222691112758228211790635929703240357192733053980345904928830582108075405801741285051778015308577563133305309027789645360583876490998491544418375959949442355368391544828433347697383024512075875616107804948141546513825280924908930565261762371601254382974054980900891305018131222528674077220488664393709687574653514386208480060910265195685961608725678825270136743683575641794344752982724668487231980831935937986183245964532605810403574852107483328808658990491286212002225636804124224637187423581469912098653843480397752337171479819749254148572975109444084006553241991706257040282072488616691434827701107035428278601597231179059427325078528941562211990301149854042427539608576505527852081184551257419178214615392321056956798500656152398725470390594764514531879176920382828503977602029017689997491725818810110119341823338964035769474625004772233181867848588297959868566078989200345620089392631131428061261055554139745464746891711966742937688220006085633777291542003835954792629161862290736308262375629460835482238751490520871199611239967140733366047070916809973563301793696651590214923417518294876340028700682413347022273322267498565725329430047499791135371743205687821886708865309615969025488889496958840089099247120717550315477171186873952252049449474763400734049512604965600433773005648024542215840561137553468354851366907577220970588868966284696603206932901591169782660062692658890333956056447004486623225573265788390887862872366814111536160866371762587291649044537318225340586261074472050532269661979445580243396829865559121274950066173488373160062070241151604623583092352830654633744484691402551098887433794175365692480549440787873681716601089841053809953782130896299785387326266844901537103215515709491463702676177320153751940955601374512996333854215048737391067573366812069852593114428144058343986816306734196872164048711952425367900139537702805434332691248708803022452024419687808099644579638329750832909589916498851384255946850529798452516995346817279704958982190014011634160419258614015257680553176110448643995823911427429518654414258294288035964031701068481770099708347618311157673089620558424908796287547987806528594274365530728582447356361514511274463286853589772100396296362419543545722644463481077872171790899561963857608576858825273859170460242410635663941110610134064806271598466007730816345989759461259205068775019870670255141230292701545494390875622566097869122913758047621483425730959276282991978186712209036667331195656116006399702975327968523847063059360266993495838378235652251772079253681279770003994220365096101463614661387725781019367035373263222528801138353465290985097084870032175872013750730219461191839798709407207668133382336358732711013134510395963963162337614637384198247430404928095414543752486488793165272424122353774588691495475129109954273904210566101492855136380151136152921320286600755728630170757905141792889630863069238741186327493759503404886603078565673586993293969360084027019645646892475466616250186585017252708103832910306040045568018617548836374865859646202938733761306807786482538880274612727487510390156226778712411364258928128544413248458998396920721741389323511163930890314962675358063419824062368357296480797334823441531364176776727420711122818014985504605288216006665886190634532620826406562702015454949367383362890758295995239166142954907102381107195540468442569014016978199862972697125063439476298407835873838451923079187348318302456570791067772762365377834206855309966001009012185218115307862676005076758259794892236659086622950873007068984096398291820084763629683037174131643780230909134616718649553282790658895082147746817679463248829154459054485995403714266560627864248559037388217209406624348694720402814525269762237697953752101668234492556793059449872150736736251472155244236010083905488629004557172884960464244088809769548092038689282514731080759081695829748120155564274470688064184837538999533105932284032347527827802540295447117484518614170847849583206969488677220607954859027433520625557302795512820038347903405887337613849513268793496875884666828123929652834863426338178970488747078666875018155829259850089874945345881347245374426077955883251485804541481035767904042143876016080698198423045177774065155250688972681152069667282583530442981344790923425933557009805120911825950132327592494195524780221679949513781430803201574804099224697910060727272251181763930775028231650078207843357405242513005811335313472439212326870402304840152531816328640432222679230424256382571342753826420155487623751870822962595897300414844169297251200101934979928100620321490637000641820045474963601074907193176350670920444223053593230501105651248274926790920577009244171313105779705050663287135439734797975579109646575993227760280836147680860389355027249875773569517820946472267856174936954443788675389864399001547373316814139095609725663922144192131270714421402446744338188849077723386745669710227646537236706548901181781451035410286555655020592116114089443632091033288232698729105365020310693298634808156558388585548175851661427502844102554674669898171312969607698567062930507083915321180044001684705208243180108334166816346714019951517728115292328624895304355417093428911973454960934958257095160959300770936020764329108394456573788822448125948916899876761296198333463996010096523398958678607009648201009407489575438262782826424343095473822394158481984812380304896669880225042154893715671805966561168871597999637411576752784127661738508044807192053048204948690500629548848465822379866237508036770858181546230005888557802264797924258645798390602081626357441214937655897139989782212383382189713601614171762233210176582014523591966232146125021971425006210436801004909240567044837650090712990214951185013373020247021700367487936835008044514210975931260855570072721852956706193733677627808349426703075432018092057586585478397934340552693734326491486882289436667138538750722128976343568913020775687068659816898491556191016760466213434814002278311895946134530839432746416329689990580874493772691372381917047356774896041335700482122072437174965578308097373701298377604951445005785226294768057878429200270096079054311052896007407326799361986963074994053047490570880681507098036772667045062884635158081440499423021479220616081807982903700795570102049112565378772144365733729555471145760483645966586182732410160206140273330770723448585937698556670140931914263466871911329766627154204789385979000455485308948755291420567670391832502678443602200277495199887363151492896873047488606844302782531152322926442783558711973496360377530027949568070738792367826900894488761686281923358576869554426630443173312874235912133504911775712950679261311566821379726297872764533890293277817325262504658500408894946723727488382362897839196323506760366106497554346755433617464208360523684126578750188009704554656395052560377663667032063932631494240986059856519086509845133740140418782466044095459353162825315833869084357941872925573537219342128653905948895406913593812108816393549388855688994163453498667494640251893247461244606461145830629782030576046074877406959630159508257372642574124292327870108238830707125797456643903385367217860359468707728801980954384077919142298637539439576016779570369702508885203131701702039506214707106333088724851154400577234713528497341389838610322409531358989361569699335003678000433229807738694121747465316358441350300142151434634827068553019107716054651349584524799822293024340104668003917805248555734070394261746053700894160217830938666609156472384890591665123560230607066080946510969280540601908715971222445854042861630504648405285419659739630979907705081499507328895167260044699634271905719141368435935477570376362564114693692937400072506157711417788251965996670862962854396836958348715914269518182643239850714606144692646248900163236795157122378188823977541470681318970461068059859554139589578919390817549045211943392121337453170390284418943712089520935382915365586766808136907306164967580381173623510775152159711913109355068898919083453256139777329643065363649102526457148066125652286777693939388060501768477247447208615920762314367441789816729429745099246499569274869229062300414287324099507254836974669035918980523252540409969106963678814226509295205772756054024535487844588915447310760789207342511755579873295765180530534843613660463995441201357722424930469311099709473000695453921407942302089526577917563169978930580087211545442710012554707157991565237399493114661312627492142614112380646449966436521311844617276125373728324604299091659536996350290005669247703773432317897625514180712923347142297573595896556290861482210899856037365640451127051809342263929805247763754667943197205049662225994972971028086648746240765530794463461473607479429850353094020107015223315966554046880763817314148847831369267324380710739250424654547531721755604548716171313188738446377499662923709554117232755387947806026538776073845945019376819601635302736167340869810489094928898935679009403810244148640576399529022533013238453177115690244261748603305212676578200224488161064085531883168068487350374437002221333858249762938667253935074787535274764774233567925909245135254011339236383002890312080394069837652449073257541738398961330426523636034343480796605999238957234320058874786149657841779566609814282193230261764470947380622958866868128866728906905872092616446404652039223027207636852829891712769830540094555125199310730864951349517398577027185425663228206848127373348652341917386241240216307444246933643229708700675523432294689809963190509026377778610389336817872878628150430762265584175970727844202073430514891490637738412358876874959646632645969286328801640877057726966898027541329298615563951105494531737841684544440188204786202409144562921200677654427980050585783782983348130989227073680196202545964089974773476888321648521202133580683354134352800476122116772007554913093819808665135871210625693437664113110139806860911280441878734762744650883273990259225361133610696710806144947253800987819795599117571772118205158491272781361945861922076667030053149268199576093868564211291382756534858945577319367413139485262170612482128094568578835814517635742573869087917821669075595502609096061116639298083778719770171389098545960868124120439040560356560174918176904240068529328940863843752605880796650716732709399596794075272433840243757933561066501611136161148002632598459645914806194958204734908302889202981246447451301480767073467017063691984631857671541559415372806041709817277344772507558249676145610154175752051503986448471871894442202117833690292783318017085382626786649938315974816931412380180082990575719839410712026341726132858760494215865549859105756523490929439874325389481919938416177368831256357455337860932262740781414222354110614204995364395322305043177667377588634293092180886196643159196949041571026306661747629237053976562970989718551150194306622041052114065923224780336832624206822668671069393653785065508895031976642822600706515970408980074162928344504889144360548306902474964887545706801465711292258265093814921384541714494711510949156870039449600566680458464301712960670124661607655379539876688988106634307357720433646808137777232125296331643920961924665904810037735898724088993090639191341702094436066640982800029117379255012270298153879173766372561567141430762368183617392655313368492549386834234112230177136518555131383635364402459894124281399266296592970186701262285558230965290217011938750135069087771197601242254926019657542376106699927356919749238650053335710408487001661765950833592217128030034608606639833122924788412647988373074936705177021134208158686251840278259551778169609953899821507482341467379504844989469452942560052175529041654514955496465660491803942772984982128219806246198775931152248749390800754550667207717566108556736708467668733417289222883521143681905638695008790130436601845825552319852891665455226759296352468178048411694771865691031918913847022743525047725499501096327303388294114545627628727484071703833147687362983833377931153795509501753937657782788303214001887268371633501830781517821322090896034417236385311596710460342710973695085477233758525958948456671679947526348674738581952352240123543316511136883756044975984782094197849577628091605382331750795452487998873215696226872180555905485212080821611553618851328193828546601013553742736552514575548730800829446531696847985598495453264648883107869644369564850446473234194119754647766100178976508975382662172562179298953797743074277060513455640104811151685167408301190774350639433498928762945441458648493644632473194460940502639881680318128706403895256236860025223246938775975371200322144504582343180788164825908845159093671323416071900427362539211737408390317229335881484060698492212892117731509461629693086272991183879186197473561130108589318038824628633951983765802192472244055609757968683232929837873460641548844546993578051060622656270853931784375512280350964349104854677870129653257322364751604056907898669807542749573239707192211156342109399708433381120811295668937312552961181252241238096826033077064511286147460292904936492195564238924284916068208185975897613832193826387081289842137575385665648335263791333045060292960529560139050254896098726903670326002629599310499981890439710404186769668623310677200830323026780774517022297743593710161061995889502370937234045544613997912811825184277730854946381833576303578788228232118840202664951955666809297540752947357793412524111771806958653656713771115449493184918735594190214816143262314819106094285725640498969760024134985524114701860916632694350328191126466406392910596771123601291038544551441431747393818861599551496446998165206303378324623709627263948891631920857825996354854219091083339785019585370118374640296617595618103444673333789125172147088393562517072348623021901878400992322293649357364787490377972538541534751302370893562286158869547994460931713767780026985108664184973402900785271778917395138555637907533324045564252170705761063020859806002890669591440434923191495711027055097939540389333622488281807086155695889148577912980246093098449674838147302178204193083465922278185637649387829875277817795066112841848200983216121346391949757407554109823005306670080482964800861316317156708435117716395970788900294989896478508421229967718816528094560442172369524520362459621690588895441955430631002085340060866328368684528045364754523948500402279211921151060345586751203915114651360480626270879151455978606977373766276461245887416881721026848082285642516383503033891549211162753712901784928380775633995658533969550658761269342068426312092611322332841673280473497397143116824042371821533318134939332835883350322927936110100897967989144188120111227074284492571136165248205701046014156958568090677191705791183196249000755773527533262288772097904922428315349053483051606760780991618716144122799251928594654307544442138753896155640086373451455281907319596334686662450609941093348074388103117854969881908279840011605478951515915255092306743241090881763944430787530345089650673915953969374381232385500097736777332198840350766447974071889058665834207283708984173773576042462130883699994657702629583705421061641144458318854714430217610948066033826142858427085848523652999998058079105636836007223098154801801756085709217462319979033757388931739462025992903927094357861598686714625740748015760056204677189616504194701307532091390947974733548179727086837743339030583096509650122036132876626703833227029362380779327971002152698281410489383990922431171801946623099086313308364078711407917410006385221321219821534782319426700311657628752114965084761077028927273123065799816128354028797340328067986377472193982108560568870932437736072075146987184562589321352855835105080626741020421647465832950837171428069445838615141828621389636233586088691690690293063662874418286491537459547031699626526200809846784198877712893077861261394893985088396074692061737546721446657889949531689748012626501349982582891742331539253194122519615936868155508037048896828835521316700677031739263405591756158255981240066321929880173308466591178697431013026506482948837228237825895747798703492428200398471723323698569890804149028390222389570538491295247657404687249262398920792023418770895481953300955253705626137628723999642389839050879706627866047130568196217879645057034034880176512431365470390336083700220521317053596408867459879048460372411376537794863592484201767328077449623642373840412909637194642782553428148607474538872802200496458204531959580494603998864439392349932880833463533048563534868771192568149805883840873591255973401212339124983469434398514186249024900063372411308479901878883557684299299585238606869956404324660887372889309736081910437594560772266895778424962341864566361197601213123320343179683556544034599273011984239288776757092959098538681614377273065607944583961503451281149057056799670468624551317558341854708095338979825734547803267513403214441366621065300054763353857494224477114220208721562139540344560437752069946228332571749282385776631379624452976249821788730231085126945842560871231104514373493815067241701613603587306034962900288263347337032160426952784978219852924744723907831479732791934689503956011416242800796940705447213130037141757888930294603207641186414758233495211321224064936825011493100845542393440393749629018958658798273093214064758597663784737231529030057377659302177392150634537972031716562110323046508397225098950607516940067792935716893892178557874392440743874109879142762367638044664036799540805974484579073567094303386337131505077587938560261519493803804028772597811542987865861793105487921165934564436833004309924065877614079805827847685415443167609684735557038352513005842060478306144787590775207140689756587744501984363695273464671251508322016153688074235169524621591377200695035152600210637900314885318839421402524321363765754022198623473086907375762611665401735581620338802057729158032343726522720774482992330406707387571461438632310151295733117839505751457595964334492945214519311050311078311084403075268988884289110304431984202771691514687913368798957498499668167203706341538129053903771089713034316800488295120164171781766167356566125267405730425135201326015214494683355214578886517955055670047687094231309016116121887844145729858649637045110069960410776801577452850299615406921755466013593135502419622849577011133625248007013796990531914799673779595098656450439960424311591306842229315971698113140918448065764651184096174973368191519436710583453766230532390562476135996867126994010912358249506949715871754404149408102503480075205855980606926254818915769582794366484922612277572790427698225587531559995403674629315284431156140723972811108619487402067676743913328380777331060428463190657599868581182796845847663603765430693735835089948892510022792952911551030916273814769657021190683166015453020035666333982098298309411044672517008758099200400704252063882261559718105368211988705755728112884543053106766262303275920539985047401689885534951505059713513723290055518544477315775424285376055158013323993772614965767023775333341801194527686346495889112282249834764998191413440428937210839682647938628800373190366651372668020803851586196687126437458278256446655598343934054768955087167415174747471479571070728661834864797503844278924780905748860640749058531423276842639893566115146071075101941636805737209580761584114004287878697087444150490785107582344394137236492459200972139133837747884343302347987710328142334042911918812896345670776520813230802006877931203213623067967792722328973995846678918051219273940818621827703637612899339723516559409791879261639034530657323705298704579800516042317572628528015869255260473165539238525427398167661690310526090752880025195658179164379197425903173565736266172974031364882551042359559147886668883018886807068667059914638221930678999226514811288782956421364659965938276737808472589053973369644799037813872170937675046489152389332048212262149739829615064846769717238104446470578770439024472451389347694466727901117047275909674030294348343677217113674431902417379774542489267632923939665546280158814173433524969278781373070461024388592535090508410808820304291962653394944766655912482514822376403072407733414745446657453142751962942720939653224244819788833288349897627161610314912948893424700946934121416283851748177973410322772033950155197482094148078930094938178240061327945662951232127136160846967667000228598441005059960912487820393777358960207792862529310422630967878156032927436061158283568872891345805495540832176986193118924178095405078055473591892493401460649929877016215693751175839398235662117594455642220440022162719349340883303590887830839912802851320283016195168696101850514386742388697015042717630652992933220996973024381735877190210753375936401293780793448975355796275131326232632133331687538486612542259276140633654138838456180453606692822399458149162821048897521194881288414673415220870850612999042078240413154171602711462744851116877130685464596558735068783223067619884836450208110780584442517765173821632989968274537289304056680742056151072148931735593788744658088504390050107168807058729953338946946495481967808389510574638842754470128227928310073674822665960338744394713863825782818456980109311845187870441934593763758545342821813828577099641634509715488394934722023335934207245605400384971594460255223029902470907044931398136508483588713300805703231403275143795270110901244517134769780781237132971799372794796355504244495586888472112724785380589010383746860111786405459003065814685355247095458543595155651190200070165422593425974964445219120669951666542756535665877698113475346002806649212400707569676297038844459839313342716877279920630703964638377230690303693792286357456703581398038222419333773936430296109837477128123736909549537032185919633044061041300656096608384929104233260068805456633811919866198314902748925740042103391561988726522282771274997369582077470571488230258970190918788905119245587155678458586580519438297146298666375581067498179585893993625805408322293323257313126571278802537546497499036090594499795267172581398173901144070215006614789373134262137253262604803302341624092767767244107345037070608391110076337377458574481171002985770462018935584101100356063957352438349493024825157314474739708857196964091407991415093520489712987948569657095721959821082459037360961581619773331263396296198180943761894805011733424606740471016783536506380673262991012322758014104455478802577715739322059132108803409234835309623379390919419816158460558581205009033193063533660304601485397326851377029789485198514721414147262328850336223531758084798882659297363080567990571814885201160992969127379893827732782394591921743563981928755700548886239051283290522359512331210967859490390816724580528129049640760194944723147994324035653347069493415506514506405353325581143894607253492155358115382757646114091880003527958702946676396356268665126312688369353262116041775606015878413341396575518336078080208505418503603543308115331821529541354285845765526839673691491219133582057211492897209392621159859636867593500145070393959161325685441668678021423823558934054122698187783013654862381825480270604266607409912912486320715852731149308857429123088710720422970513814466006377054875727253479384646170285909959452807187651943285297142011062838398792432202821296303533336025712973277239578094978012417145051062614206085902027346304599741578974000462357413679048802036570904509455848966770854747038636213239865562071643636468456903068963597361805318169647122899194617698303250299390900821023432788833582636726280391597635368534851784476597257913478984904305611170601499432878470842580611943062490422752848687890118770597295459851982009118383964217133472646130135814384648230856099995671193741713383754119589554361410465828106234883485699080172228610290701817097409679900076138905448021664717375978241551263849660670636969872565711546807601604159922734898686855692315499903434367219032461045107243708907967848921897802418594528083052797960776978226255819166829734167103470986254736933011664518619885432287856854222295593869238584747334157883692923740092737447486941171237166834792767802132666582997038343373758502427486592970730636800159769065754504509069647063113023963554876871053498166310996983738759607098991128850442912911920452929452738088551085359134270753112359747188072652864353836273160253879248383705406071923202631970865434500526652095973040850732672027835608986314867530561564520450538892850283029795851853109574807033485313703684098573578294500655752489602728677300130924359946446564937200205706049061709055821052489738364189742078717856011164560874813029524135170002946472213655864367837582610540519046475678254173231918744454850161867861205589049433636199583156730311483141828310590568965551954653088492338766565480032796255223324988711818200260452708318602564767958154161179231694422025104129358893872529691337071918543287807619596111615734859676208343867255064531304021328055693406940649973203776957100719930637643918297964010726437281851558459162888662423208475573692842521905840985176767850578016081444723992780770346220053603484540286121181369702693700672123810367330825206429681568143874318431214229310322412860486943373998008844860757482418652751444669273925959515279773319963860198653186130566308690326268237063222868550889171102354609009057960410602493292104139965208374598486401619359944516256711393451776201416076957429510798068998507568603736761555642687713979346009234481479545141940269827058792164234526389919609796359535800902206790407419064529888094927730847637676522354391444319851263728028567415338561297889981617574133958057083880580778246507350469257444937275598851563375361063434200759885677812342315006419705204493765516160496756135914226300761180092726678149490078264196349199731949494408683890328955393115158388221417330082314776713506559586175719982569636922992053634624651396669387017159625392222448502585904662295406681494183870795806422607218842411446310477336764462799710236106365165492809002580999558323166528353466640311229250024509784282285967140496817887155302399804488824151003092967702223562218189161231356862137253985679493143514331852962621932612599135546917915246302343743697771682223000809673319385404604565240037142448769670488515285627524535672299636280167128887624548903413901013677705001565692509956982263208324520311496726368554330103950211360265646051967352116070351837462132024095324844687754116069415986944661909533353655095582760922341322657019473633221477941366781609075812617665075285537029644092134789896514156708878676640620704924782878795673065083891189287667846499129505422570271634978793766804544071532125457436019299533489127324504448903561921188047931639981903855647580869631936711941769796136153813556104983657425463738429136934597630072214748308987046161472044460902649194553654397509202778597485205395575689455288441629381270731287770485330485129355415995725207948191228335264776121115277741492227650873006519979630737028837520787741965738907145848439680920284654202272666021127140672722930756725815776875903218393774410407903802714740586770157706463777539581258588291521864785792362111360936523803243000935350582669570963805524901067663910483610876057349177020645697829496811404837839873406053440811286023774699386199947186334346970808804370944205663889944601249825063630826243793585712302698012280180540261473225562361267838898990854804150098176868445716741890843068868734685819074527372326989707924006856606057125281551639976996021575922698421021078425699101634878242508269600269683497560264832596888598641377512336144068182740612356165282829301185312822471670627193835461121033773267504657174605929397419990958802382793739981816616406468434033200993533477646144452983716662809185413861844783622982430423923041314923065515160107685749918261875888418747947122931236757139290713803092544545624293667538553128174660673216046501267587091336829788324942706048224580194750761382480985906655522967554684499418569212114739320753200965108898760887388429776238321129930643423307399592535346853613844244010614576097571576937509262888925847406681923383208405054717511022078439152986818274272965196197528075688943490188422265999576262347530392775308835668539815758765332342116241645764794277682996857037093780221096298044605440791398561878726208184627056037261136996396225827431135381785287002148355625143390479892705087888105269926898452520967737227643248619567808429384415531454795216435537712447744476695796075460446714918524632676720457003189108752366447622637214870753870018531235253408607997826613170998314052912610334125188278042073700784997371408912126766101502216325225431372232204382192901814131645588762035115036872447378729018505828186477350870949306343880667163555461771190516442946415487324854531905696149647002686277333701441071956968105824039245901701172881353690117185866408730957313886627803729461476960771452544570891497545501225345688288758896155395003685621807306378923829212702219102452460964922155242356921323100517758644230528005983734586413510383762495397280547299085809769829161551025185106202777680169977506745037338501137999002172953328408416020501085137296371862881735624511553198639853877043051317644998802774104186959565076670099883800172502964447372204122896072108848252960931922399660000075075905239836878361883551770051710254276256820510556119119614491932169065789644103038662846145060320935813299646555436322380982930314165696567508315214580989456622584874465030267196970761693250188454574944133700690531511296758789454085459582725368903622842334046577669759110946162169255656001558928162345484916162683752490661211949193692919194889414285794275187464197129864388849438346238945383822950282003371889334021732802052280359906232436713948343843583574805412659859524020721960149791479170855951233140501651133504071914458183470564535969895390147764508340722366359603392556305708348523748009118699414239575708194760617208507023916400215552415811576593441763016202925572961350092103179224922846559392654751294131722703871444671717034744957172834738398565442795353019713067873994147527316582384749968959062884178172783832698185235220447565153927890992386407498722034989526825209921844502413320213522480534947239315421786355610010296863285981969541805429026016977673432463870738212177480673224368938233371269740742811598408615166640643447679913825445036512395833287490610541086889672945424226806057316488431112735599734511730445194249739455984733713259151450164228815846896910204499903043629018616572338927770503822127240483418258813260293548572637070416971527676075372529710725935297740162666413381450029891283981552358297928183088819981074433256654015244917671308603610179815219479947491264564428674533649934758508706277608531082146701109104275894571236428764055331294460337563512294220413104795328896039950288236576353557932807386996460659344971747320975566553828760446361583760634637821333104125256201519748320876951662438765945074761001027969265201514571541214568203431790591873321426086304211330958081470401270919883092624684854093761239391122793166524599283046484357687813797719128484509985032092149554627870536229925828154045810191182010139426902298724699490150852502998789169027811622035873023572198521273476923287712160677691107461329757672999699701482342065795847018416420692121622404269313164443876114054456643342305608794024740802154871141512263744936988099568684134707219295610924986626499719496840685937814839380530249963043316412012138951688572338499723520290946622684914011752865109939145384561285775073324542956086040556862116903601148109006731737369895069404083695902958013412419618019919924972495623077459489111641374202500865284018995849310644906919457561319669860774156663797714128363791961506039845857652109355031403857480704446111516544533460257585601882912932785514308295830705180600342999143805871304281788796940990608330666716557420519447400123448913661136259544598574483742192938048888552461564881276831803146425890293429010436360234265987841302486894995682083431217703178485657997378050900441735697581262588935816246068403649261433139985430656876292333213771539985989814469504566897276684715769436874089515595517014921138556236107013568510979375076718928377863978481629526255544388195041763546766220625049490356459809908554664969450630844616130245287728405784583625941034238518703169554564459699508460202551545570244047482936530881082579325799665801526656718694727911959356177559744888809138763486654242481308903365398539198721604704928456806308277769446864924973596317779017842754076218009121640044894480509572534788947628475411206409372888621905268736301737351932584824176175074668515355883700978221025847872567514712255912613818656552208603875552019902876308389021365022782734346998833517922658665165304360751692370982193109424683016924579951088611725943123242793794604464015841363046304805860853932816060503798819278005334556120610667726011569383269021728363796278509839769845923853342468210742653954932665989524561361747150628849593647422248682527696541772849651502883088739128316970043147019661288724377696583931497703447220217922217813897732676658180238581748393146423649448326342392605730469627238375952309820451640446404836461045216849483835132252691112805166973772437081764729589611128887316886440576417819534390189803203073317322285123293704211407136512596782246720843033167698400764406547837148407633873922729369389889087585650013728475366769528746455203722428329017690080874768340844423332185469572411713065502886440971785908333818900064843852317806271749980856409081148764372550235432142800796697957797572036651268416225388125004048321737257282534643257525788645587110776746865999699928947743962711152627904432936348809563407925446871086087685169907817045006309144144864688805928154355167676987106909904878442221816040371127539298741025567208582003716869815739096895252531930437521268564477610226678417087499576796341762248692838550594007172072927301188671991448804052347886770934502526663906987711709709151184879114376556319085557293191053068049261010649349465732734023451256062044182106652375558899869651537611940126409472732359909609276076068983498888780489438523413638334158323320754236081982386937390948910012257356760779186099408441066291020138627809141588985270961299732712418399955447241440635810050561438486015938345202190287022164607437254415823692846447811965285392830256283998172265113199225618212344049417312753591585606927449300880752712272726876134031970063421816393377227466460487285487273493781728956966321469396169955339842565608482481755076908620044230435953913923844061646359058610031793615708169322779123282366435273998481335412864518971497218891993821953580781237611843766757356522249572318780563210314202349589312359332658233937039364387775358439088338105165667555480981809909317189044828813824300785698692412439769406590986128727219837485884038033623907185739187643269263784821527940702777344443229026624235305880433897823732919392429122582943124694374047351526071575228752766161963523644561307656773227684777598628353670003058077461396789189302846951413991574174271976938100668111252942305364184280832188164031479899871847534194686979827901223495201935172105297763252489254118021162131362553245899716309758864356015492261279410714908013241820907839566332317179841348711661851268066300889662949535008656777568753439232910982126825322271859600913735297535487884752905374124814000168716169485884392205850786918742142869677180526214960223231279687319311729715240977016855904240428566890511126764167315804188268718782358638835982179482758668721624899854608899538413801760892234277963576618449230355077791971803080910052419052033003723047963491834852365444079678057032563344521086788336873308690781886284517566261084118384661967887452256547234367968709937272250462066858156448824622199999488179747853478703701692699660865750546100465569024206054381552040739448837381498796765323915440102219811599831659104250386104709715040007743764351637538300311267833063276695900714379990831841804140381204599427041940455979241133977614228230438233400289148617563815271057377759960274526794561063567996406449951510827575349981321166927437354422772773421941989451044518428587198004957908033183626307317140710666485653147903264637723203790379476542918788201680262112960188116867777995651778479067274290954826857050976276127279218219927112959760486880281177270825292414322041377219596003989540433477815836117789014080732498572087414881268388446737169265987239108043441684759159635326535594274431347591174357311004080510300621484719021453924200739667352562982045103186592713068676981211839606847533147350168841757277314092285077972904768201795421051708567383683996444193797206230427424717358508716758616883615122460297069459354001142759792456507522348743559690158004014940842399865622762253154600921391146071664021581177125584054592909259271969250569121537623715109140038839957092910602268832477266078990661461448922204930323843669000132211556402680559811211359339979906537383228494717996252793723840500301832567685076312468454687119830281705414582839595077185136694386594832944297391197210046129839324368426510606954380081862329315366879174613877204682328186425027886416952961745752132429911572065026571993583857772552788549614191547761657394785012545036171410539305167887779548040024398512248997436426414225127995216954878909312607614928547019826445030144369963265346449568977507560811007712337130296811585382455224389776186468050162790669291056183331548659236334151549223783337401085742454280772218506759808447583090330437918703252905230074110310163555548189012153520060565900503960080414559177028857136082456042048759479740704581126913076426139024300813517496510069909840298197947548052601098128900286227148546875056740194409775156369773282008587253610534231132351830267586957661948468612430101096337653070469572416145827273982523804512445089579246417903546227048467824053268008440418940428025540452954082852499118692718935853611513586011723366621994819610826923116867618518817773458330672726620631874262800351626932089217167407134703900275069999688189022185949464708795709852288357005371268176473287887206574757375774053049153889388580370615450892330384631453224361206879899430000557906770951658668755903431558165399566815802798923024910710066941495260607802145139163666526314997811801347219651373394937266184822957395200242008452257952637218106047849853548212234922716607638007254778140963080988799953739984213366108672579231634419670283620992296204788489015482280445275795001446186290595586065802221709144631798388332888513909203534316475914736551435762621731577864388302130731753452089360734489026991093232774327990422788734416875501892072001264193230980552704393544818047056036362708311524203890173642221510047045289027360600608195980865579873358646694613493619100720186794396163664545475118403553050699036354905146611048026807595799309959276944941629843540967474408089921096180458930895422972021575297847005400514274907538060091827710044272028538069220808966548488289502241537630499227354675660754296831869912752441332574520623849552643033412361275649098819102763266110369062761290707510009481100752926253795382682106613484751841652000654269218677688894056907189098059534094023757953967542646965244146922572996795532098399046680115377164967668781134719480921864642710591644078185496578787574460415062189565980881989312749027891518453514427551333154201594866142993891145003130324545087709022847119694015455311729626449566663202013822879341033147407339232789397697519048352869446395236342169593960702584415334570715162369307412010984901727715152447179771754335784050176917082691865982522879243080019545202070086355950999665230799413194097509601829004075764781068838834913471298501470179052171038983393222896956846892245884488223529173837306562964976239589265136696962382247626875317010552283336064596895391800648893257819112438091384057760123760456909476590130502015238676349034042734999121777263388115777180252824679816651408991282011464487711158187344599831183397713551077557531475242032547187550444061568941168080269317407642009712367526943581926221435731579340925750840352941318683187387370105561190169794823263940874633592405217594326240798345041146549189166545156441580213381888522790644914696262945231057841402466910840495046601838935546295613056704134900297455847451002795409700471039998689159388177249540458319838120634814512078814500773672592411530573150348179977594443299926526291775358212577790170926486093500059942564814738435550092320156241545094381594340618722281302220886330019516037704637758238872035106682618369645524397694062319859318956909503291992829305842965772643176477464500221423666022799979044891689294660632633353143941518773762240901887485389567687430562335642854572305090196986909502363923721399192489820120954230626627599317944232092865420586705872341704548343099457960876888719336789380477080496646444078386859938671277624357186877955717879264187791673376372845984976545969359194132977177914422835644859161924313004012871869686138751789295893669525274847380778263684447061210311310715562543272842561157159277879715828716787381836664994935831369320762627586779787102503243798189926515985227557769127449585337458523304589594511299826744553616001536063196333697374739075037857945094828509445743058104162414047009776453568956888641657577286871473129698618562584554379609043057961091682022724754345414072376932549893946008197610922455303945732391404736801947614614838071815264166075926048953831134212332447261048055885747829581583536734049439608852422426083197163410510037102398793552173520550819229632303828765872692534751615745288683562051120089136495704708927313180609560940031891832005636355513756928468475813153553523953350930472083089009215031528579775420260218705069773915265303685798209500440899957410059102924904888748866247725955937616566690345743942774329263764660422823064004745708009109470874322424162473294512759700442342391156080991850730410571551777194305696544656367144555861322696015130016719393749991701465221378112943882142595034058146677088316455727605449560968355212703339443165640110426031723763290166433092940850306959832098471990363871502144918013005092643317607666859200226884805827130109635798632618993228610747614955075026206623952239789248971603652696450243168907427435943045531962402818515306725540203850442314775468956770639342581259655645746837758079316135294793081525883206537487810947029493341935938737028759743347028710925351383961842991835222097592815382170955911570445574059857324099954262163695274953620193245053663272919677018724912005023266153767711154217072942803048895147125223043749282811690005713920814576321092389378697614851351262437764307471190880348488999760035083907931592512698225104041464865354946340776080774175624403035271271895373359408098122873951349926388556527613693810169560558060641406737616867872586184370089657206169903280972012629137484681698365058095454266960695192439798032230525762753352369063262992200279084602635410481252748370650024578200881188454818585743737680271176088372752777721772406786112620173103658398378500914034980455559630854329582490508807913446872266565215264588095945942202765419711662426012516467179623082326277567541648280984195865617630246573257239201457133132695404033830283927303653658359509655187687317392066990457173285340119270917632018758308759021814368354896008634450417693682026887272897821431374151469610265844515882446331271343344417438299054042426261549521221252488265955650615866981478162276904811829454337258582275470373044039054391466013203296952417611478007512509578988741319338692435487383453267450218061742035205825532979081048731210790974144744470930910110385764224707336479004258677009742436290725318661055542142124698776193760263813097437483917092007840687862804569762344405242965579494616371895420502717025362493128110552497090309479035067940636899801959458244505982049827045275267556911122086422407754274440230175608428172429061793505043320744082387957342434322063531429377144085899271460582995660892780144168359716772785666178612118475428342483936397237404295401801192085862633385963852340675918875464234768618017203124812973737224106588877982976707732979374042365258303609066419338734273098869920340225019302926765130917818764483142641956166263675574150813097039525164471043011271999607414027819866420387651459828379115836657265423390586892123492333828161104616275662173267366566649107479412087584346227866892269722728509582307359368471224711486297326089388051064409976981546026296414179961610738126226600166337782968106598249750714708288478017298126056350520689182037779114577361370265327045606431625231101881884482538871100264199769379622576429580124018277096895576536179050466294692764074610150635817657584636032723841062095430640206687468888566838943069168487606169834425693198613588525686292430922416388335270905520608842916027381011040867450770254601289686548173729413084399871915101380456892729482891086299562450255287663618419215441360937682133843418373617083974691548206218672154013104843896880468927988348270766044130961622865419544937150157755899357578727931436716050764835926260082620699135645206233003669199638479221931274568570114911246117336538333527973150183237592041885423160064685603804334321397174439144411478686579142693787944385667611265804563869583870334233200221411108378686291966952482894813534964607478604022769004792536057654008080099354249270566426937594907662572938790560457965293411221301429868978785093972682093197591379051961388116775503975168423383213992900188688795438163968709600595649168808938053360049016206105780815957787195375529883214687366597384749497605417834484801307523537754595411682387715516897219557864097387253709845905750575789551807130975641579890710940910233808688022013711214073740282244889144076872089152339829759609519516182922993478222453512829322013733942964286639950669899941298385816685361191393131663440325315889144446051613351848919410957707327189324796767678786720441514037621207571686937589272492823976025276907948474510666557614667540717949929794630400591472709180249688139685481273448127804662255100270220617681029924354136720237435443996088114700522722918907190434297317377044781273480723225735723160105848582459775912873849742266485635028183882921387015389884573366740815961437644723522825527687210410028199629583994092685394305768019076332734891843914052726958134098447291633259491258158410675485250984462539068230010103967373559036283347586844579532285788542754303638538497562984619706205438644376816265755420221725524880195080801398769282123487611882060068021682219412819470697961681127101202982237171628704591118735511686803500394798251680912938166138488616590214062057059111845265176335230518971985389840185235103105378682427591282773069576579401396347832170031089069322158084133707859456025605620851772954400709130899052633664956170919638032012620858562340059090765054259910193585642588566760169963899545504013098648838993104809570726059234345379037008092020853192011107430066711469466077591379975696129482569396800186576878576043641814537380800839816624006898968159281923656165761194519375323331314574359696384838316031314469805068173879413707180194975855365802745053722359986859939405484461674065102284928996370736001744512241712648919305954543117285532754387697802906287526186572509542110634733576980286238333975291913723112748478232420219628802971100453966757651035249810848883165941791169547156169691176904020820606744058130883558492038921385769825955267353650124464202177187209015378259114953423118867017164139638084905308414137793070764518200691852385919215179428390729161226330194257481800449642020047982975527386874209809612185316228598041947265127547022887037935516442117776685932506171199773392416957422326843962791924932372578316067841063491218045914746179893192522367245655710985071384659877808264125966962393561790588722011896382862010352249817678563239390823751884675855398703118326410894743308532823458783584876670241800815665163634532262434409029801318198078087123877516873762837375563814303958536889904523734495060034703067821670982292221975859370167090439833138171431991903287164854947059833998040779249849356071444438725402127934651380044586397206746424672570505715979962362968873456707011654572375070276836724116401252236217114557481265708251233470899735031336404113699822073890645941323373908419161443245201025727453664461121921216524605708190903099620123253216805658287125630029355327004074126953427524204519579066206557216951169692967349303062763627831611160122962834458757530676322583780135552117307003777142913324031387823001555792273291423439446002331354807343473263809377523248208887135647245698864663159612852271245684034061224594215889589339835792699010386166357701658215177241066167529072880907937972631928092031426006728964268812332247860507397242681913909637962600181951334532134593243561736173213730460329289390060276731559632873505972495687761485482250414282393821700963808415511940940861558366018088014978125714718562294914607676518993894776687178823659230587608258595232787675613935690406367731630292472002665800727289097154553946673456838352523483486030480566536375100054625346071000474451650284025113230080472846998755540215264104479413136407312139506376489788019692991916507756719210778030451354076844710974377148382668442434475994737918532837727884634569176177740650784660376456983840026254018177479725804627875717426906909085566298499766021386680538888807461994132211037637018530760339441334479250781379985767460274602234712364300977563755562326811564248411536508885193827429403809390450227780970551100520599214614670801539669752169123868207655860315721830665057308321144613311455192860843524254916612402185776516459705325824150051750385491827275607404244375411017164151979402158419936462742539508931973279202527086841311708877932873657111042851721409499759627090330160080563916870593927704025399137544424826977984149289447585888784212121203151725084122988002002188873756723158781790723443132027893103671363795995811696059146875929809952204460286478996822891430281856729801343755534125922356401770144083585477706324141730045357663819230944956476824233167360337896470974883469843915923003603029615898801882438543804897442683242023598151490110902847896061926154467426599221479873404788803294016842607078035989287967326161660796433614018712555629181921000312646107870928362618746289805614650014198612123157593481124863203424077846883905847412342586175263957172004624037478121411956594585194296102465749076403946902850064216245883425782522129779249505267086243998655908396952969248734493511214032812405557001185253158581356836184438007111900074542798601619802395400025169342021126375889326742466656660177078722026688369555581704569318848975741612928989217337132667710962600616690181141928161928991461567258808210000537155955104892140759701489722072929915214313709593746996425089732102462500586322128516575799325869784863298655683254247775677569216320209482125997104654639869404305987115765277424193239149418151623153614794287903934804695200241800468921003249332049472390528807262806156986727081454318122240562216297396205368013397921229979505905513445513536213457143170951403354308404888527877848470202447802142147967977997277160735556390419961229955555387518250535517669666298214872729157996993928951074235712710497970176782108508540720598751934072986260078747111701379473980687122343908026649842530170688759423668389936652398339058808809361227457779217824643860590945271281853006582668498483287280296806866225176673849523633852220191169769985372296156184959316890428962415770668936660444993032717627654268519086842314080296355960385521051938559066652289030636876963716480339512501857746013312471014754013921210726613830435119726907016074952138526363769137074454106580709522597358533306838129375849556685125379043073766274556173142574830439681122839536102476741674147830387533536511964626449714595738662503786724069257758005627238609925352712691657378767312325886063483824274746303874446458922664296316406991408258098109596865424222187048076138084501744839256157841719823862129386691509622381816549976655175375956014262823137834411194576057355024426836472120913516873632718823483016326280704870382046596527382194191672815069018929156587235793978777898460713210766494516784191188597070292326342892561740341721639728549094886104052937338903688050648198198171802702991836279150329136513800543383183576124402299016963774909021412209087108162962302550861225471097726234278308101544893471556558179971764683282534188454520582429521590278656294454769520218469576807358937381071456369472532227887228623388500130273098837474305565920934565834260103950873774292990863608173312396638504102139018323146454002000429557094012279024277375885261463965980107729777858804147227657936647637528741498483741508049201768694433039114673822441206375215539685442433917228800253619779760428618195821389192651954317714877172483276350222900648942200940822967094703031537123203025420087788225066213984156950988367231512049867876282530735749498677635833202417795894628446991105796507497879399449913668258672013401114158125749438728777237254550753491306426641363284258442703670288850388641265625030765577968200284004620283924172685335535090165313892464356716086059724542111208596842305182354308358129512095850074062333536101397560576798536708637133195272289065934218775529319081765460930348828098313881048134624087764578879673938093296313639360367269083678275886273342669047716711053109074696998478446856299334510737873678323326438294909035947338253067080638616808569541729293588268710183768766507799646952797758634180358731755122251164457924502675363923933666356959221420359542977249980629944231865784973238914295697484173118158709884494730309098589054881569025207672481862885457331969053373342383836054121744488016441212052375017283973623731664310535773270517089683447966865876681343714863923734140081057530741879511875871290220231489973765746369930029625389689432834173869431971834055130146784222958207092227804678028804005952102165927688808459758456052313464623040198496356627054874630198233534398992436924765596573764859684941405286035035474703563214163385229213817012058675319604111125384193804860141731948331234202875661712236060547793222766856453088951024237163046857151414657623326404580977359161000209671038379310322557869893843105198634458391566370251577991686508590655016073161851326534972562246874706522875599749336271408609369074454342198257092447205746263333664034495396613907856860427869745104148181211541342856776879067222256255826698157566506640182997379465488059590312227989207563561391717643843803965511250058919004804418300109594344319575300536971847340596027506760246473348913937054444816144100000329149806122764396826559475337597407805515032249433054786349398150661117169127124977331486757388495343114625477335617970789275797039011263883710796850258935723045962868266025084540034275900649567084880562321572468471805456525719392323177721382705514450423367246653599110811542444465555573476819069752913427061346398896047869932906606632886453121414277491581403577670496904428310022129560683683509377991950774538950455478255606701639530884023878593952648388436781009165605102442622589669989519606029027771249633769681953631472948895573574002965324871095514009380208543831782819126451032310922199379924311126797294587799759782800308166081231571717188823976078750021512712143857969215037729517242917687640855002121709591440187545510630827102212400831982204372501064660100833496001923568463122963199359734894768126826208078509991061155106988696012951566022921721833435922966309654003302040670321834493109713891026407515211843890542625455043103082033748105580283483915122638436371914473492445664611855339208378142761907377946781771392820549359989730018017768932151698791771275697571290711718081763544354815682452839982651000986883783117473875848001385000212235282888813771536405443502406219794840051266175425144652633055650502746429272398462140527043865654501250278397600644654294492542289879956430241588719422313741362509318483123373361356411989781099891582845740047222876661047834434892838682924608420526415098226716142581541743790265762966815195830708605615984018127908302976367095180527895490941869887477471447571033213286230294394145154192168169583217619840565593895856077564584120834924873276458072582560539870343997893427007498643178147664384530347014477526637401943560688105340987331293822446988773633651014641609574777404482728076655998462768728565150902773388789489685232497871505048936870694250547465073950901530132955868471720192021302769738394401102815399159163200088228836959131646051127930938524021669435174723657251130399575539235495674736263085575610598330414047717596310764145154874186103039534365551987217335634227767919774618994532024232726892191645125595223400728118717331281058232222131204092196053158411191261721934284759135138809291019609229088257634103313762637535109804691196472101475720497948277892958115620946815207405726711686565399294984262503734125931466394500142846420322439067654868285412453916087413591619295084922873560862011284617300755201657244063520114569392194423820511778659701126018599946461767023270443565488845208812454600019230223211316081193633809104406887427568102465794021462823305509225421850809617652203982143311523604174769442961774259566578488613580286186134876951253687905271172679412766371089244823227275786122298237475466076366775731868142384297440525602704332999956153080587880777618485888474501166461971839981545407286385302917701428748372486341568261397501586943533077106271493914407589712936225527507291982327479177490518191641167457240392226380352893799080016697058488456668539029462864937270559029471899140712857865448491065071326114886134299479554380521283067737895473585116098490703162943786817481364317545728398680151491897375339957568789799360886316285466257742972006959346627843697312426254202028903920341279100705406844260790258655746634671538729774854656744588798292450900960854645359809741662735836470307004768362009386547811304740210713033111050184258988888948920355045796381432416752700934763175396932538410304406000601633397536447345969410752743227102105018333727539569592860397324116124217018373705826391613497076983876966208379993534204706105895347833761474500554217127081386075230807767645006789473561846408924713834683375142264392498869903560440448961586048812322138601944850583629844111096015010902498375906022413647172216728763770297092438712137076305682882532605603484413532142851516049262010369778261909819649805654657076651875673043644742762175417656334764009185121249916194763509575708151397252014992567992440938319155144486778311127364089848926925129669990964972996779028904755555975808596211577191410527119573295103088930858168728534462562224993859899297364219120679824835530618996731477727896507173085698138754627008573065788500325154500040195533232629299801933921700429085840886456562671199033372688654055872308316075354121909314259999044301874200846684543761778011190957167093433093668713160897589783444977841903960513926470955499067545065186653721253444407966670040632359415310538381957500574277440663586428207094439726291191027763619119591426559343809629806974851852215508588772642773306587810175614811219745259522856606013012288761989976410034490281644282396704883166534259021503274385101072593308256428090410473340194718411900451934359441852852621122509361338660875793925404395427546183609913787965772803438877589488715876248459275342756076353109838614098174504359968327434078587540951467624358769884881430339057917595480229409925205680654628753227614341516192062024676280980853979536277825954786093100789635710140621784421654785120467386799265143316380431275852695767005239428444699560644272863991519671560470143438116354371451855166841671981793450803060780905945972273514560134761840410148180604508727297396284301422031436530116833729844279959687162746218276981999171625931485880577346677119178806736548850556951935302652272654917100205979051318613206892686238354928378612828657274825059960292680927877798731359911140668847989049453936568290392214739659393626877511406159195144601944678878701557062577530509330763478520621209052758808808218137358193343747288397095407993371896239097916820984099340231958495735078970844418416754318409239426463601371557317435474187117362477700169675276364660775684809325966869489988474495078880220855647981611070268069691079263399297323415981813313776653949830629341272386366119009922504341873656494000094439802990925514615372177046991784149472169345097165043542049172121892652896422386115500384276785754330493762626480350975210804511097499242395614417802345395979865198755175209571449604445143648804290438503915247714238910437841506776158656607103600212891980201144560089459041963883311585345763682519473487471204446933146463537751860960470742328458130219820941036290140316875160384980018473595416229759733986078114162217719314452627410147964731919674493477922217644905696771727658960419655430341323181274248523925042954779934158224201889365698807038608433161184875726367091688467971837661359019345510053191053333883697832709711910660135516795934304331717873509609443092923309737613177641855806818859297085729652524220140166985881688576235598887585056325710074907874537368242733183249931872961418285074744078939091011222347677635083990294831761396603956149583111648935944257843362903341821566689443129490135961516654171164532766226747549887887363421415177304360498148249370761520158793091327030155467931149937256690129059054862169978220491478064170994038066311316939347864690104666725333808666252231373944292049417034074216025629879947602782566593327727314716912217632807833990859117449883301117030394706059707093420194052740564177102240625419706371384370770365127628551974350207865949040301607636638277924603971512979591924060290433261598970758391068688682526922041585872035590785877009759156020238771487462961283669918349079667925753984984541400980921749546185424394492256646886793784958960364683210586185221181258342460088376765289203856290508736202536591267604169175882759857810517632859406034526032602589746033093686027360332219376843144415117872509249029740288372194078799099841966234706419592912030015810834539518104219802468210516752486466384155239879491309366362162565216881775256260481785218010347396938971561938316401484024171709188088650201185272496785735503054358565618280341194695294389739810356369529178397374681756551617862801151750233589199113283377883033389915695275456530537250089607960251709361757104893167399134750534131664808019603603343340865819210013164648760711652006876422291870841617039229121785081190876056264997645118052744882330877426926589811042363676836491064354247088209555521549930573399227551823911200464493401855768905268535977026438841934657683829450235404233420687672861073902218970356283182755153941575014811908765789619355911421300723849107232554114573753093173881108511139276842662012024255554716366225049024698602602611041632170882457084788540451587052871357127644042771273869377602096990390032953483078109562431858833987717753375476264331524221303180221034590932681558378865818460437026853740884279639383135905691352154593331100447163117537506995999531878922520222294987658011934799180968170661940743557056528177669723067063680466347807163668791856701383257524903228472478014246826935671736171486288124974187748675115208723927088374200471416267741214845226825506132130403120071868002503452267749317804265296009369906328820812372856930364024566760785414700052363655961143239073057521676679504582474351707516444534120471861714470729016515137091604251429651745550793324953353611177228930759588455229576802157369724510634225022623320489035809256489174327829863027150017107752338622500623277333897436610706555426953910376358479981942967502581918780284097086443675889789549280224440654896313015199669021937146373185095949717750415185735475140773864747937265363172640543549858245271612056757856969268849919796082212950030196643608247975417134189328107253813930905731929665229293564835946024519847610909978241869290595939756525375630112488040667437292491193178310985979467046427271786946461888671068984869896395377790427260393186723058701266805252169390928120228527777152809920442206614630501086337768012682755237568296790984029966077442698922044342142778844550192526751651589144451519126308106041879215646660639981980161646294836958381123748231077390308317155686153983184095549108481459484538195193749648496646708069818623115804421099235842445552811000020709687280546918326663272004729377614674133277028080967523518463665668821579707424361106432258547829072267724037753284031811477118501907156137184332566221696772575922276172672295562964178263734452293614958169468189719610667094462388518265959072544779730974357612370853532412145262103024713286201770856469312310460698108639331645944443452677147558246355966687718884497258356979493628907537000749935467458093463404774171893588748949884178635593115779759077848907566253271282503479665514815602625949731756447421679839687516963062585227957049292594387734063004857276024181384560746808611387570400256650021732608311702468661052416656392794303533965050205029823771505052002638254764953996202208091894598764961862451869704841273345014238242923703907699317908745118147008365370379538563127239289542826455421418073715709609256022578481372984590253409349000388154722785826406225290386696980928330425496288614392364131129506428767334871091878731963435324497719611623312625368587835862395439816082235249023408726326556807605892207125346571304845698610352939142218760002035873893000711033367265986490961193170065328397091172812456399854285671601931339634958901162678591480641919380580714785504221887721107821581565917272605885823420521892749249878111086536406377815977488622298692936864402936675817999228853358243584292146600961925399833157202012955691146404115295410754831079397281071247038013564454308983594538618020647558020273672572759462394920889115808565013688522273278844903178569253160011425496623617259059604893602143000862595316631158423166048671452868201718290231187561451489326432920433386750792981065998853376678390260903414532724939912080488983468498807236194330973330536876626099565082393887870439253613217971944681256524152789455320972354509373796910325976341520872397208040779865845697560020533412923300134114295401500077687439030330632176867201511328179342114264962421363031003503323989921775666350868831410882532479189397954792021907702051239486152956828970772297285252846414428224923832292988768705774988016866223030245223395006591149428195887115370051156568121026999805493799234278943112907327280908287434787906526330821070302520832401408865245069798372439688149612336034806612550880880146173540532988400823872291613407653450673215596073728857061204306738112238532704230103138785887027587587425918998757381785717023599197513745100616664026120133913157915208424955164376652610372584853226256234106909957348936662901436273297856591833230371738672956348785920256211189862846720319835795957758950341521621147123346833045170293017074621212793491514545432825465063693229835074746351203104890373315075976065155262429221056940758394354635149216279832318407266823640167424344177357978678676231500581578853605496323634657522806496652468193629464700383253847073422177741043140668392649620308252390476445578153592654692067938075018279016216863654654272718048022132284620731422137049828430500252751105088980784138906576780927564015145478940406306090152830328824359911577041878075595108240585083146844374448134277653615681297462765795973102590327948237128310376949921669257777483279439037734570103436519169022354391384061750129271226833308079956420702481891214474055858942873827384610537872439403111151842793710962338344873635680806225570551012037948737683813945103282282579602593846676679796088993625739883653931050396094227299241500427550262760088354133587792724025421934358922018031155317487331284939114440930901990327470861839570860055948080889514281140585161844533559236674698718948781597175373363549155525278779284789803523629760978467386724507979537799778445454091309296617273121740132012791815537715946019027564754574308936792606818157968742560590212517237452141261709433688277408999823010606499203108622259113576962376686651006010126177581716180374832987359938933990792608200309661143548193187999050334804268910069989028742295907430982699975792234837880539508494676843242801018586918843698052140640442396200858478879451237635528304972045859523170809951401994724740185840159107505492574727755103700478499506593173999593017732329806151764731698025334117745602929768238719971759246577036525271126208410650723707499647894784424581102847312293191050331012867583025783307525483548409867547427835452192670681423255414862155248183866011596269740294851583460957358843911299631963663645506447321091019791522916913898844381549036215137236724550762459261222518412660303745357499060287406556304673888921514370073414469761740409832601107444950272792790894995202980857779570221091590248314916221249066907996100462023758646672019809961641998822162501275442359798590453789259411052534575892567956700773528579425896671409072104948116512437449302042219605623834657239066094346618731278287020871746629229231646263677613212258277919616869475169538543311582229937285098464899837588562010463679077859034573711376221932470549131245612653886202072633631958252156824984961488845008656188191920775059801478029868960484437843558311407869388391605569144289319586704570305477819270602570459680846695398109071989652300012343319155350281835662712072252805004568999996794967904779023938916941176859464691258370489843287491413491006326498898874063359901746500378641445953101662132584531146064379407412220320222393194156169971621436452815196459806199340293715002747370699030383385629521656935413336713379609580228247798530202511911078109664492431665493489433507554876647692750656124873727705580652045177501105532664294392040274302494646660269279402530923122940179888210741367387899319529568790261503889681507250812068417130777703040397451031050501934113995750935610824609484911062850086129472448006246112704427446783080815397839138634222012727585716697595293800336581667610037806378485350647668640042558467342020882986482566526812098465628632289575840276587242101134874603546093057111118493318648050490606308809396658589633448188790657799726407169686090677217805207428489889709396519604409740383947862433775312813492883392270150805221873443476385160251182488696844783895681892299654844576295434167726109502358096500236321770252218558891169687033388459012382092216724751012953822259593199998113102559918649537727788890955618904012574472282757037328384028219988400937413523790867049555612651807526185596779477364495505462638542966856746295923409977709813907087360310445040745402446614331116954542259426830838966574881766525966959768948339223224489086479023609431586732047484148286509522767576742168938145032168031437625456167428604879745548416274887041749338417994499757644709748098228645152056626572883413127023121699442345998964369117709556597745860026507641022164153323305566486487768077335314661542663529281049219355479929357318217005015148305686426820048473795051713661269574010950697132301944001463935394754471322744963733358493185379636144065033283039581205541059999813672470533689997641712610295644246274151969143385676139278348863386258077975965433990317003422604356403473067009920365890561112063327211858483325751980449407505566988191955903273003603043126729653888138586588616813752080682614042067029463020815518363237134477659048729580247411646230511001874250801127751920905487090619303091341838381744647232394181657295925065519246439123576123676237178033957781476419758550942385049409680308096443986834088654123097509480740531896909563014951738783534633445949910696162609623314117560381716780527912749692576234399127039402130284369020184006303688642012242833126006204926498115320106152728223084223290861608907568712755326721844959062133204798911994082015951316311922247448711144202835861205858221689050190979831754027229487844228354360232343412545756120583674782580745776772472275135086183317749913728596108825914323127191997889416377082831597027489822322217521016218348566802653892337440052822479326762481168342585864606739970527944080816995644330114251261982998299086057679938652348134660946253061734418549992428841933528973821698167745132525080884447844041215845985366785970126410872152142102517381299557043020478067140890266632136235323292637036232476243429643567778821794877969564284785503608937553826040757438640263063004964663251907048658680828445330264148868066755896402221043026015628528710466994156192659494684811080349484935072795764145169080316906624163389550930727914487314337785544548371716629180737631946941616768877902070870993430517225349163776273536626777678795122317287989220909305108596209112351002588894712660392647027361327470369654243438696102140794613563932683748853538517100813216191188737961796268214247663243221312138703453185310330329740961271449924130719980210573977770133743518577675395480538630253085087589570913643080485870504824657380643931544996209134881469256126187817769347475684793280833793799226655082771117492132805420704762964100936374053325331853124584056253596601742011445726673409258842055458399940701871240441148656134482297294895722362385739192466445282236183496790529506467716281899937652954251990880442489182680955421217267398889394614209028514677943250959460116536319777966710754976630450183720459465398788716240044029401908460992332792266835761139064031276791793942206183730366478090804392915911603575623457991577716166959692308496906858834743202130667292428376930504542091551190871227453535828329506887155169619300096243272773015414659253952532525226169811328321958057121003791899906234082585121015659768133733192503915914600667070700513102167503911070837939704420532428247668774634746152164718525571774171711053296881970554940918871168496407559226617873022962156674653848878004831900771531784934833450795980217815581624148884271021210109942153979089672925303008112439587092342817442119894792017393087678297944368783149056726890026368048876547662494150543949818458247900583058478203498291559744162801897314699368152372834985619617971412341841498031343306770902049073822975016538100864833738371843987034846483812647267904927606840337580816902990104218909928787127413111627054044763623154494618614502762198671248337687392390054609032404791544333076219435791660324104036453041999921462867908668792204468928304364897033059890259934359486697960478006835772028119588256685851160625885795582874416501308403622763869367974756099906385970092696623560057759337109883099143725391647995528106161170716025604937276141449098208244240688039714969499332170344193080992858295343320714185886400769409980324666798038509549608294778274747212011464197871761163723467446145454764706345611720483637397709138093726229358391257276736402264781158647249097113772844914059135531898673511014723103004386467985637454076232339060829737948213896589805412490887835681249141645620404888151614024274082325192624985864524434749178125064222071267099338953194816530853710546839560167877440108794984134591472899348210311375219394162035168225703727957290491506284067163602698270717633050612113637649939309474620671064888674921989416049606565869473721001446939480720148563563305632719013618797210520536882733855530208241581146004457221646797028162860866449395608371039119809995318594124458935268654461771668170511441114151205379894238927408329390713847973431103472793436751322593110422470628154429535320070645184807350191078638877660718045643810833370630291226339842393672336051311289118260514662721527268073424885650992372501524600863057614891398258428284939869339102912435090851414510391421634406145388825584358184252675883989194920594091786435445491428190058180035784593031834965751063653109398912971547277762631482766837470699401843130336587482465899992165209060225640242357782703891071164987417250365531869370772662794759092005680325536544170030112389793128673205079880440474795225192381934271545918380719738664544377851540139170856816382489814512949292285409875899616782636081385303234157908788715416330306930862666064330148645105730270244316392073176466120125377374721555904901331207051149881501615838353902864991905441613522564558524977641493733185637833040910946892659140008546483956082755564485297559238134282105114145962564564187616190048120166102362086849063797015478419290796144092680235970701492561860110460576747867805320766676262561518530562237305739209357908950490564090134226799275186278047705824366861308856871189582195254835635758083423994767389250785319585450987118892423018041548556058149069634098800199462588917067361558400736300866854136508687151712786003312739971658838217919923430259573000843045189618939857847269530638163392289646528392978818395593247283680263016318119106154649721139862583389796645505840287454561425280164893257050679550049471959189362829880158070685353655730470891956116755598718894144174870183930477163480983378265508174340236882911762868839778970570767810932852131590996999937269631658556337395726512177533562568538497330281530334557259378152341175322854632178156365734879705135215065488988892473185137386924306715268777068535984326406578407743084214490525813583660472222692948862020606595045415241604084560298503836844542628903258620552730534930338572585419686808551272426783105872659200721279198563906026786764030410177077019444938381428593622958157019030188633492000598199035608801544672492631228394553599822597269471339739656594022100915025035390800604219722657450321512429716815172036519153303258645386942306759651847580835651829968615705269548859274328195898726256193990383366450377214536819674301437389483041410931001515913847487165684142700178837040702517723027688969939615496486010776820918696766086536902647799452456886960260019417425141597774419465102908648251819685418123927038456545197292427213684173967681977273339988600056209901603277997423408226342734653199202295352601629545594548618469565960491497746981040238207793203002289172457221665615900321626205505506819609439941380332873889840733540437260450318227061938713314229633897578782863631161673536646680076822444362700976252972125613598133546641991068803885839540411689067841964502644935697313398811043190237555767988351251408213040955094005979414782023822409250396892155138496675293185891865510448196678590722572081761139568476134163696020266607618769883122474579503932053451876248661109377402067923313109359511011928551234076532593021637834074090207745897820010446424125914316065445238421375161223458081967763162189177959684851427382340759035155161702884941729109361592083397605773225520779987652283488972086892874854131198651756789888902178024451857435888774431342992174019592179377318921924270861945939165388576644207973435654488156615189864930706335311726308372445819683237622514175577107412826272020611470791937182871489429267132704532623748647765724763776362339371883226905075424299662868340715094503726485349699037328986277317225143774565469068736644059391513474939792872577911350224713660777778255936817368165858211447382867066631946422160282455171778487530458963358790494925881283060015616889016220600323838093081673822055859697575438274313402336161136235993331911812419363015995893809681957870902498770743057960217837977307352520149420686663148568695757608162311874292576952480606332447227393421591749404306663467684003716494978243533318705258055733503709717495832812517949097172529165787803556824579046382909638481540026441590049519397252270882629974239889184420273440912642380167799757576712151636197510426261306520213907561057731191014531481025219546771675757759205154016415876541112504212619859556799442635616653210493802804212472816280393382319462061368178745671495881332829859882608551098435265811927786539577912431249623171838055406622780405900657446175953806621846354763341440160668662078743153957005649053011659037576401988406701257320870306574689708154817018015559466386089554134008300696952108020333245900273502177132358889678273292399915807109571094423450389384038091930401089274264682462623844841353406338166051861279028609443596111699622706166328408999804685930451452721608911358718635105702273643518660332325433451135837128179871444439545483833617128395258922309472022740143593840150184455218145105489450300873775023416450074874769674016361734013264258103183764923060344506075931640147612566330218655658465162718906623018805779480815683038773843756239213344076455379239761699036013733190341446959885930970287066126083734930158587712082843337153753710041697690914277836888233699412023362890830151067629740568044585566259716646753499710790692147319246497251253023562375961772217780892744818089304937372276531388690612564288656915664853232237584515069686461453557943021784922000889978951255627502237891804984030796360827343053189714233610954397830977501818386216800035394101538865956408865331367073914860034290444820289842169427324815429484964489456435577715144893690988370889181772099219854895967610595921277748503669062454769871837245139251067481270868833491479340897952294559834508523437497211235973868098889869593002690779684754457780126381079062594883709229871425078732669981267563864311901037545430601829174214274416024681768689544243205750596011806073409817868351881180054214820485227910848663539535614830830921248863746333571307879022511029724807840205076359676912285356939369031482051384846625634091237604833746999601686086199081977270290382289322956445304099709606634292889217207467404120421843319103612424127879125069392902649180447823924775778104714978199883907217975952679696843797368945952068350596779819850275049377598703332082577759822798021547609959890931225649539800357694615323794428382080221650461895204070712154893358467640697792979949619944013639039186284205084832481857839220545231914721231182017526347186999819921994021933202002202898501119548644545407010783239632696446929007237035918809843315371383416864126420583768005876489179268240118661668690195183437372969667028975905620194714487778115679399907216047794393434365294470220726244262875069610411020723788591208492199736609797603444010278871966112493690802220324691635390531713068514807288648909998933730540152166222658777194381305594925622252016087164377156404730072501988817895177776902028916551647818967098078466503519917215144158492928913392313845897986257739704297081569239481312450503911306104367594686929652906997858487544227067384413021514088011489877015039693600744043663088924657414028488567536791129253291210264427899812791227754250528917576336111407753120683342460261433824511909701227112304179545307905796200343909548828298593367123500765711519445926763926361337373739515386353265487466500095390093690674540690455803894893316695687924191983093817799197397211353415190335929216589349484001934089683108883184321938928568694654007323280872976898749678177607840482441794577793581715573080049692607434489326229464464319051395799000869396445820932757325268741381321508134680907737145246091867172313349019153162875598919596748024087015754013219560519357739314729415437946551837411030063677753512876440591393630902025391915486024694820461164165082202334818376991904922518087477799427048452785314520919221850158956567874490246540893713834132696348197789152588409312590604285995588704687754300093364472750034693671716068903896000337647991023779821828494174815592429589568790950973320880801553879719939035085361863595736965301854624240947117749613124393858024536041487340694012991635919115792647138137516944384801152608316518654022569012769559832375927152546652141764846450337952556375016384717967553714274941506078155689097713470153393287862156548397767200650163846242950963639772696839065421094893653672857833847832995482295448422517443899458490952678006245456876644872119583151973389176798338060568563297539954869655638714026449270710425985440592163255717141803297774505889171578250165264275610912878410190125491510189383163371976132347253231386292089899990932256932937598308512875613784220174860538789845765815117321940979887549452258569638717013154576677321837518971278468370392287749251395854457873277835872404994336035067524776127239525749792491848092796131278812863086229054569322712452562948916309799616085912194169614527134705183708824510769092054069595137797543942083515277083802288947996857234086266254418040928368000102100811538653737244051224278828400228045063508104549816005159271959583470442878056812586749492154366993174898736932604296272444387038014558224439325792218825171124857153495800598976129247015650602802698414178831919118812325485006623260888745260818522533417053933557641605202061572080162216149729534145716031437404391562817568743870534549778985159360484737819094683614102303550276275583567546304901122480302318300439910335886235666738445296298549688009629280363205292758400205798125076415033778910853504849731960516441904023179668182609218755998937939576016284980628349005265342901040186330833435884077662617384039393965039177438515849285524238522889973545128937879168457514620840511363626193543364159233857406088416747472701070580186993514788823543358326827438919144844773812259674538837275059749777352782546531598808957559546862433806272188527454930620135363907631836697313433157936881780303368337201718068496930243393162579519326507431426864972178758501929622631866415342090668975004691549879358022805092141303957104459731293518311310421022948007325073844041233888689093106859905351743309500973395314378132632455239432760859175213410108995576216712570277761384023515844393422682955127332655050989009173797306446849116513907784381229636698312237618170999717797127349650728903467723261168600132886972257953507529836144188538229507872544170953876532034451517486207880132594140341120329731108297811206955678356035614207984520538560918214148986678252455730121328900010709742511618308290081797307204461618108079378795795765072794847247752873049093509601562802446071534528287201668222685805608319526468396387808870953575016452778223486285162867139632978794093132906669635702897592461193495917067527619527599150125029371618681918463943156722522614814689006006346747120976389564659473885840651370093069901030991409977621528800693248747511439629677229489370441055677008180733486955654033946352657256807799462885344039752064832041308318769828783687137696634011386301774408152136757959862349726418904889319040418415764067820712117299497244662013283099831430669326701715076241126553222398735641495406212120049977970067049794929971705068440861601670430454934432589938389407851467572511317009709143902233090141040657108496653199638912406419502322120116664091919939532143477170961998810382108985997135825668821362236252399155621608530471479347591179222290059493678970416574275283130421284405713988500064414324604831481115642496374059867723198332881416400557293192782704130780611989974689216393275352452610129763882366317317314258962230942713384249078878327899769524349241949963348652310828345641805510067821777922806112134706993439992969679794636376174863508900888507095791387969925171662430481536630819815902917716989745407866760274237002385399879495754945316351505542678204009416486451504151565219701489365289643639951468332920632257329327338505417588011503699819226084040305083619412328084956699573154714105205482010712547926522189224141735587645242696966736790929587180950653554514433576695842631129183318414683095190563681960735027100195518554080759454395972427099219857492290490680619288648441032749930024081478191558727656170692727798960500395808477275371660196790751886191396493716474166058241727240584654519321495861960458027424502478430126512927597440112179214637030537378174151520911272719342100528137292535340327595264191236572206912276847035888381903155090027303912501496528592178416979601296802947467050761825219369990953741680992431082446711206131348236322173914975468051320101382797162355265330428069265721256241051155717871571088742965998642541581890251129177601850650556683008928233996167967574641232932169339373530585367848847312583503179350090488754184642869432342980877362634748977115406167476130577548849187742604552394328904434899757437423614939805544578487275977035080356218154244037456618196511819053817336087570991122092295411927797151872462895910139781104205641522299758304885438971883973677519593139488850585236669566837695672664711495878421780795341117621229392531161337762097698943550817919609214813052523202297483301488502228167296197101861548162329275107626196951404265359820823003020156279980364356071210356987809619715744807531548361504197968082700914672492027915148441149121085355644651190068576549952934170638667821617830440621957454503292895025638847754661130664116691216296580611486846906638808712336606198567675271783666662894294923442176113458736054010202551462890080098011301870854141125340837792657341445761343328482911397852740866641916803182830148193696860832429411177943267488114307402126262294120118061878890104891933720687597353876265696958409358514612189782754071695190805379342885189353879156087150855901102286867042383572896928466550312376904668696787100845700622470574506765364013077174608881636530566518532790299515894284040772265558593987385321266659653432633740691164121639051415172244279674178596032540500082317595286504185859438717499100201460508557840843360775848661679910859098308327192305787472362157581110671797309539028050136740368615548913338165179256235637801884230797732732845300620410338637833824613027245790267470712973417061090045617819436805583899102959879075309527836721348268352884362907990217521289191419663309954785236491952555260313588153401817526751827769621768462157921495102285092096008239455571804826186507356956693720401934374098602820638616974389901562834018807734216415709130905294098226115478697686742262651996870801610664049718043430758587012944139577259475216777938823642111956539464809084224358092551952281703931434303844906551687918837241421367333411352129218777701323649115498753057167636807374169237183233268243493874835443587759158306926131286210302858556333063308625742756212918789897799933660087893567282205099724058559663138286213445483581262001008183141459258125630920574564318890543633535780220008492378988911454872734881987311690814590430962118684642205232850436486107118553482125026372068903957857471888524210654955948711617176029757633410001082798878321612279719950076802598650684949695589330725013907441016786148973946236251556335454960270282302176768803215320207365875502442001172685581653585650755761237735970684575591977560235928213550768677671316275921171572275056533130290465732217111961918833544106749220928275483264480198973649667665327101496617629470017286854505324090340962982818613445048569705585920365671704164529884383202805902526020185230878916866795883583039179117507395201472632798350723258143407200193384099660075169424118144548020459163384600205640439679097261780231170578706902327407859326283557844243003236226758219292691127004494935741815070838335628960761503554645270655056463761512898035809008596404218438846368930425294847016613742755705771219080371256764060208495022518038999531491273345242721046493785003715707101797555327160014419107440452521288081467587043124344892372796040261073548553012757368314015429283879492144518543751300719048649284351515220489885225009167023677290273023885528081697711781460469882834831339466508964548949181122663583163504778698175975323695982276188752281224046679631945222492642656791525395426888703111063278822060561938085831394381181976443528352277474310980462506557603109627909847635605608429580810983415118850712857446455684801519740284679124580940459332561063641867159181025001312219477709790447694773118470140295487296889230542445052189574444676157471765969898611717637920895096667188143936046718180230618270465804476623600202258710436386087525550462501410017212382677880706385968232306215605537695229750465847112663103079898249329760129616093807746456228130754569714344182150592839549108260765084591711806420418592313662375903370906516753920796037274283116344488509746037706226721922607965256317173268304482699183176007264664055061513929273833273013525735691148002949940174086338234234739611476098722767566079449166102941502496931917514695176780600267314521958828592821522868713020591718765198912001368426906522274421753915148336366174477069621613282208499209269695795411569094390080737688642066067735615245398762424327782487708936226965315517360305165582067243610010812526910359055813813486707140807991604062817055350713453286260997956788299691011250218128064238994748188362371304244232501841820894497850641728711314184001031806414430130534780384402711632571352796310572782095195928327387279219022805313964045522327138829468183464191145235260510645499259019463162660330975984445101949047187253259852471984771765693869969589720155281601148069086189563419073568315443685946862618680595753133186515235660817582110423701833990987804822944458393032999504446282364208370157292651044852199076327914918576621528031164804069308463623645255407658663624736652573969065794095848647132854375335976700912194176508914486259383675760063981084446244239605803869585762988662972739499282290246769285065309172950092834314674488532561186116043632568662438685550956484899624746894582248336738855668032004185569468336105922739740614425210679218801776479265286048312979052862331701293623302722714184850186297760430004262212216615076151574344639535078092377543161565063180672102311830834131543023419124566281450389752496723085314687347392412068263341942954686017533730940855728311419307506252766331951771970135206108417244973214667718649860919864561753071164558253292526081865793351639297338118510540240657509976114162800548420421939004020562024337800997348610298477608988331969143200579284356706271175632289303385301806870159905432074830667599178646242655645050966668745173307537263972391815678430227937248279511930085703451441227271233189149711519661635638564040726214125427133638916596007848433764957071159982766776293823092335107911715034487008794428364099585361522650974708789151346651037130072440383376594701641185116956521927684307462527176688499076087069628392925330207153812342929698218878841846937487421884272739030792283933331421513528715843122940477087727817941469061581737545962794632480698748950696102616282510557952253608900947636308228617465381053518876298478840530607403789376073639490638426202354607699519140268722402945521589628098343457097810489771095296584531319472400910248495155997759878321191233761517627593697790583358243251492946666552305532801428168752888956109250488921567504070172268419450124953686129718609558141559795826254196515503057696540924492896016496479522899268933096300539941148503957199684328169579482220695444563497389986052674994744558642622503442902562098751403829771335501092035497072205973918627791158247867658250444414686882582768927497671166682536047537579696692939700028833478727447341625972340442042117755342607493374963282652443143800751526408215599371546790894695490614409578020030899419448463596218634228051065798874691177219943605104268791583048202199378527963146935382398942498743229151341331616031943613184693740456951870089784214563353406404376395488838264744285444107843532316057881600834379497133560737732908722574731858256090712938436566552478681745773561727365556667102703296181203124986167257096188726621013193240249803287498128436690508686193198557031516513596784537755993966043308909912542736808775832579018841675723411367324657150769576699224757652718397528495628031382614212626308742990826216057770752627859607862429132686813366073948130081889326628594098416599748371340787495615711680143346816847212589986347591479111813851726577251834998237485019314342846074072128095770531633209453953201982914882688228335348376667169103052068437016110830233810406118892625452233996751004053360392110729216271821281399055438993543494248402217374070064871019149107451475685673913220466074233072644042090754680964664891786778702369555549654424334604740156077880292616484998387295617628487236914663094130594291130427102574219080912961759579056480526995322347504133074648276638343089964248350387871895189539549429213108709803753357967149250254009401973884441610561702840114120909517606537720623159111442766219477169498220501738516152608607679717050647630347695581539800076861560916030169685898029393269417647729882518780835175367348358981694443985659030994856626060934595222686868305076528120545021741582920326749008922949100565176393473002223300953526612784310123248474793552499190296091555153078363709669976574169030389464165521517687652424625736355327560996236342985336066769772196633121947293303855550155310828976694007235643846305952873245784485525060001034387551076036303030750853725962126157256053551467753079915297641155264512346440744695196629445972775355603868533197524522576957454442160247881014109575467579014808459238719990004121648903664590255137286911611651925018284545811580310755996471027925725621495846568005229428578328898788431479796458694146635481550398597986346549494277569074450233586911781890337714339312910949522266743867199580471819958444896241731356423983617330535690649342963427412880298264240199933702448722607502882321929948794974937242746546456734483956436842283338170645610361200667480182657290260762437384427463002735785455840805903826901768323828146298357277005261130730422187284392947247329953227101019574949118057973923889433983549691643222519656527747000600650875280770171712452334972278193078314243037675701906229398652157665937397976835033832514107017711727560700900628364291589132876669585038983989092983174625318232937938653356478385739147696571476215571239128008797158854040456693545347846500603302645534335000732398914460387192506534428783085492426871511409172624392491406398991106494883311803092580122343665546520230452779227686549822784586789268726186990353903664957795929393467844654106373652391121395905830830189705003852142799425597665786416344813482212660834049676044679965701259959113370782339420108668376935711871134504461147117744675257142080203713580080272211428364699269252933686071201114598034015677181132555485841562365144654113887263330980166968634710637313051896803024045528965215370401655589957773736913151720279356226782274590866634259476518989981862380381748227783167047231042521555889517824734255803167276403611598786640660798787232026382104702022882862257952799316756016162579048627739378523617291629027184168886833399291023369833822118289639825242436118486426572842964102916004741410967799749317043030749932692442004275428406844747489791202800787346988892298900519188766328968548392065500172935925628452177112535262971814015519743086687096983233637379729212166790210344661752499042833840480474715484169759653986496476115160758422348487851953793046785629831692118797965229132937066375078780583247296091378370701125492274426532570413279999791872062432392574176432390915639403949722347329496886164340881238892997751620864526194330289397766690331212392768227696783596999624320797334406145904213428087869519080906170993876459185273971573898393383998463846299186829828905632113841957286027497310505410203347785433971168018491252507428044105039596492168954767162943143751042560714893436558027700715256739326455369819089918131619909950099023937190619906332317295739672055541337959821625719698446242567549373963551668717289237023509011388448750685766430195963240349512063042776656176057102432173096754672975911649668208785253182586118403381353439581446509706372308494955251052277335329823293986304025941148544575723192499288431902428885524893947299008203005040993454211050319543165874106484111524580348202467037180879541111141335404311784729692341056029896128023855282125178843870183886744082996892668978683709307141109181488496179032675071735288580993315113779876549249101028798098024968967287956318700620364364779636008525661161621810985595480765006186014316075717304205647381369205764603625455189145368815502862361272853544406154833693554046768875251819624211417070800653309229402565376063395930850510007803026922055276218818821153673029187794447951795812580650625670402520010884560887160158687266702544927674660057009306417739552448617277890436173982519752984358008342807061476716896434304758541430453540142855459311535661891332655180679254179114110546100799598497123606029297429118503054085174614480445481157749389051157543840832937006286448744135679504381916286346923776269173606976810972304282972709978290072901357002107335066102144756307067990813870765107408191931544325473336705290928095432944151423010427722805448697737033843960741495838528476372058992215406363241082306476439054939433472977926763201505350467556506238270812741946326623927778786983595405886681950317112153418655373604135514892513148833127506273371133060685373828367656215015191750078128473489642175269183790989276697189249345446515407977590967863321596889398302549969422361531468383235062198910006088810648257947318202430886779454238682837767027951332511187514866800685668071228036507824820260255132281184406027235822062785551422747987900828324607228656267505016584824071741864153165940862069438666100278091552922609072925426578453006804601021149411377017533920733061304938961602341540942144383874907910149833746609009026451600707637114158134792026057581322153043116979726811729563505164951890428115117344864327732470443669597987043203536722448277075847202117249731712175308835460476494425559549304742667780143066774452468412741893148088982636011763362301840321793131647267722107310812111139756452610314887793423077892953921501970665344187934610883858297319567157962110709606959670500383278419681649708940618253029982978977181863016294148195815520935806094212877565362272390025195104496743999680785455611892503576315667697973463614809842973342361213684983732917824315551546735347297725635318878954831975262091753308971361402135089061509575938745600818467241018092502849091476517347708949357456157727727281257842736146059333581780385552069114513131605630542101162500555378730865437672942466711321686345384840024258902812595053094325762085181475303251337314330484845552390783267207977019987397810539973509133812676129875142657728787378363561385463834229544566530930844566304661939352397663656333528577207053175587386641225849711935654315745543004976688600185204563012130168537254052037016030269969868455327116324479536325284108255346146456808281097201814578740284725525970653432563882131609845292208481929811382287693597913886274023885274268743094034376692508402259849347427818633842574865150673510997450268442528056740048113233758638229193431173647392780885053624290769853206610904002919868092793879232698466557151044791248286803663315121603584084225093661746990749953694792939334672781143757770620528076476679022642522245815937880797494031004916569247837594168066586440119275469792234595496339287454509566159633627915787909930012699327933926921978591411508217096354677836256844882130330293786604062077228849976590249488858131682510975681777445390605163985323467580222587364726877515274280176185055328514246215902481152597239518953567871167448034653440293705860743393086481499300501436488885205907013251580221788865432960134059725992390842177099332661517718776550818459263632767299679041215507557878741313260259583394183630851714496710944387440494228496942961930937474189113686566427568012047124710860101020701713418526229269996983022754521839687077560240693659929362290489487419824701676576436051390931173307018186410331912830205873466021985407509142441833709903351030856275983931865189012617506379764148139636586226150104830472034113084066626908485916740655475808114672397623383303406049474371597793972970935821589813753339953549590743062579237593897026962121195186580558713945874211616241405070699610656804872546697076199644098921019927271443450207809742804869704132112529622954153813694174605661021496852659025548665504473563794605523882762891973309728354655427380589779105788320768989871438928570338750678179053062349836524845760788263613114816787280707154590975577353962977959550359522930223698180913122799599122335539973614119460633722205562063342087564206126496050129061362213950700457105140796110123091724010570048579673076412969210644910869154361348093478469807413471880493470843136713362779015585732429867154451554782905793395191093513083392286470183930779071550144814223533306798837122218548640461751016092415136326368110834823766859790619931598891410032533340630928901252233655044798036652417823484217795696239854243942065024635186881739165329195140505086695119613520225286044234957163551388155382478221301503645531580439990585983249073072057183967315542870340738467895248449906757702404395205328094579454739937214215118260890024752395467711653793378079247498701633363296063280320738000441196092182472249088133850445094345641877349751860169831016688808155357815744540536728349037010117382756538036712794392629197445451292074785009321952993580334204154266453389205415783715132136590431718787295740574352192741543107171280843253405621584528600310061572669129949561245922016767880243939192555662890024012699370795152076304128726857129476695100582073251766107672029448095713724686884611673853431762667414751978212285872625159783728636139160124031747346020638133324367156329462228235016175986218622268762987714467351393094681978013623605191278721982319890452002010548246966605802689944234316982657228859779134422101655248635283817968878406561504921188519117441848082127945300085095848825188645201081301260901154983322414240492382830994517842317048293971439840993713762453927819084792212641072036832847118555644807626220835673129172746480130238122952379439846056200632463398946564299959155196135744465608205232095553448589291533427714710179693402837481438967684409240120997513362179935464919099183793902571251772169399554350660806638200177793655297513684206546113875585254885412635012132983400671611510516980508647932842811669233440150863965442429983734174367989338574040049503850946607673659136605907840264911636497111559884323975463630550889839062916777574131796282096411283088983835317154116940720273188338588305411354938304943202910168277457067475609795941060783016795143629353557491162491481934929882813059120559721900389181080343329641509921541031104483342255460899782403988527969710909461395239587952458982192687652383668459574182169878912688991168756882364101191983523786280936016266371890097884641887356453663043841901625146613188642767998721654793744111177501736131511321024282850174130801378076268169035134568217767036881705350209488162639040455730299875040218879919003590358616032031613754843611540448601052424149843467795992734327079532107461115263005647429621967463288556100615113825970308732673789330301823079653903679542275999650965693080939436821893297642776563565613878491136286335517123507017696016779475287366634110611667900931534888156737594066598933726750411888777110847690558737231180888173660900704015182209717690936187572132312553082799295226464497168711831694207314898896454632808994394861725723435966593903569695087284572921272472622322871684297100733070581726881343308507812193788594732864670351524752631445842666367294666875877288389507933444588131393682456455134969653240789955155294382062114653317203868561229317534751148653717837121206500057070366576577265359172274727202888613598679383893748379667926629319737468147108582161472694646942164569600168869000612601519464824501964142255697781020866195607870889301276132279867532086049195485932743363680360687128362319537315624009449929065655058789292032590857934615757928907351689703676891053803198747505983092355955878423045775936022677762886597635222371864159103289230624238019127475780264103404722438318388029139531238033060663649157949619461109541145396311642926732018765225971768218075312032728273581576147191842389212744007420395649559776635932488816385743960350455610487463298425934220504332850979229270140028070324304378646476577360031272638432642845515177808538283529963163584288935313904792926003329787612209859919668743137134458785563568672047356136754554031223270713139377673334394205918973999778858159894052429358920004118588720158470631588554311736753987797720103450334808780256561027479786614265449776440335667914318196847662387114993817601156513706559462983018387569198312960739322108068271085517265759284945007842152696627151946015553764627516483248520728114221404260902852939405149160367344115646810536920251506234780486751160709763828290670151803778958254131753699474237274001130020246795408153049073823913409336550292849222997849770340458646680150163809036401268237671040602504584161778518837849014317480592135041445872883972291790748106123295722911745349644527471367939750050942997116938360594667154374127753820962736635958192342485791751193083879457593349187621451995640071200782109712835478439479268007257612947506647233578719141716038428202726687945211625991228633237747129778942064961560148336128728904177735234991770442078566561999476194506244841855403035453848317482430521081863799428756265890459451595970330777751230348821130032083066686995978111917411581462014939615675906214501925848952920407790790098894819685258048105185441460560475841772338274893577221842480174272293779901747743114506498827399941698607157313739366883437934047136212326884195434983813925466881550790842725767564773494467037651979192428352060089519363577204084251600116056299702097989835032808146551935628343041441661732775571728043776057591105953318502737992861434039944141494405622487534079151643103166806728045025676906949842957930750495819788566709224152173327471173543819824199061849309520418378637031632893682972957068162048782440155183741295045458696406081194275987998205348224551235406454240548873150573132825792881913195602688191298771969713221102303163530719109257376916448748300479766054004927093338699903855052243509372495689660416164587384878565973620632101918405531843530865169608991757865043501800980256771452262450331633593603655054548116556962544440918917561549372606836113028678806109451412470206136420752983768337983108637288492205780298176875424998460316617809853455022280358242906853171387234082521942647039593166672171885088504974313813931547283043257374687362618653819105161348720847042906845971721007012070419141172632643848266020361927621673379978510357965253389048224800901610247617632287006112378507299996197325409452273688809291186400838148875329989974606900199228255663542038219297025284537381127457794199566266316308828707589572221969639010338171944876978676784149020898354455487423871083586938081255255217101022594572025083955992890366732288348081896975327729641886288354799290940635069451046643115661833661797604679741700039150313219751917858061398989598659933986355307128789916025325511746794815370044558141831652560776405649348602487455889486679298486453989637477875443811563795612088880613269959383130592515085642219790609598133350985688660001664759857683518341053707953821988495783584530192409090312081971561180437968908893126331887598540577978431625453995935565599711513836860902310170940067656050630997113250555554945412009155713956532783038033872378933100185654470228135717625630751477024013515504135482023395305919467822528775240772821778496006188738891485428967257249403701573653196182423349650662955487394150773001716359506972897166734358891646615484166404781662261912748126662737131394823660475028937301740308035103247287677872081389091495764892699600410663822813272360086074173495164799200361361324414751919714716036953651103125064371604503065084564853077549116976612150137543736745766811218053558474128734079656124370811114406669656424349516653570375606611418288967967417260732367640839279093416462653047577806334687872484979006841591098428849498378810675502746823086394235060178429929787472930663347710140206337405370605059088060654835552970330955614779021516804530870542513889710321763397917656292539865944629642993403697784008239982577080822883938637947325960752885244400391553154871159913831942014565014754639705915221821426690462621264913802124094187661210451500786726677193620621197861069399303103552557437157444683679533422456115927537146409071038671542768872516903744578038930878728867617424428363833038660410078148355645454174644774474868341203263806731488966762512279603571758306152181580025830983899846358118937884997393761030714079434967872580061867216334177801614307519869911138435621084996138204910786043118785491790702650078106677491620950279710764899662892925269952169938942140346140816669601860738344211212886603305290811251995162935893393643001558676439567814131879799421201710494212004032075810498353195081695791574014286626368237831202578510256497868684686870397233775377387786849645200261407946545356602681019175876551350747887400454294163752159141201462226364691544459183733869145405450147716594786481949391074890379527005156464425286609449293253315771251538136529151701071764752467826231532367614660367997733052764431632575597952685450798460035224064233002487891259683336457400709423510424805690837081323039166957469431213847429182409918080830619530744434376766764456939019767873781128747607556370326230877813672650889686297121178559971381977177584510496791653213144926757275555632099840304467480165157456294402992349771871482865502474458783867279696930297580382750009847188433203561084835983256923060461049715147739320369850467932553174955482276509934827438891545009587430761842034146427481011102654743037022334887657399418390104883886261935060726247512657614321224117248542536180577738521284124477012640940644100664153264839069508211351413586481751987300560772737213766347682893292317373952721624732667163035249161381543554729442507522486605796356227877621248137674703476295142129115807742344209005702826775848756549697602260332934681873136132663253684131977370434389043292099733256583202810594173035183137832740192334612645992718868878333442096358847384190450244526689133240723351313876061834107403674856378524671024885474350590789711834705250037439509396266491706046215388271770222162304263215730227951374279238537142624374725213390445112324078898572930083015288953310098257664108080310898112874528443911907921033177666517384279203979354083027300333414129222172794530880267641150188839994406853315280802891507399201136085242195337230595941238631927533916247972591366890578070806060088222163534072676959845374505146497475699303202274291492423807537126097953122660851172295947008447766843546699342063402202778592388805147563963125145234324893379865287414861393668133946434247798201256752488418818855051527387000096016205721421992781196991806259856291504558516656426251368564815687802632063007691706943048868002695869819997166047825292624339531330289370957404251408828667954920195137254591082750956337321606906690744200642797485464955302907460821481362580951627541920742704505582766241146704661496332020248722073099210204316854125522767807905732480220103048692345887474753747687590044239078372815859184271551342668910092968910214502337573272934960262131482821055203555923133357676239955532738596309708880434581690757488457902210403907545209089637444403171138182501136952159358079753223018640023093553340434106981883455967393544656308223640964429257362616110760380366358550872250201197691719657874616778203873020912761597833682973147541452753897571604736289310315456640767692940498372170877060028826335444708771648998149805951111450854665143659863706582223766853520794493351071743401358445646533990113528437287281612813013309682056946479528502207984530510609248685871377941815574667124659496131677093465841164166382036441252119877455239022431422427630406881532728175217488023483634803656748634745121297073276309659724794792458538607568632078224470426207515303371988201124851746928640835247832065702861404538443965223926364197503948029448420270096815197581968701618766122367686855040220897594671032723192618940939312818208598792008756085815382406470814287970000807675580768457867142242657951609007172664549921585297013700266246732322318876317217505587035406595257714510567879169370697567268585869809678634995558777757645989539699176030035866761295881784614173275522758767619928136815321393532832615053490968561530638119929507391039091236191308166535428057466742238974596036721925970506134730933042728032118364598781431660516511522693829889032362062476045290513503687913692353565339950234114469544498461668580167575375829907893693197653004220285073704669798232516667769482185618820805320219260382033416065603924240357913276262023164710885233131307917133004750238021628463177192269736182436214088916929874964412149135439830334538247026323161256682827177283028141393677097629392544125580539260982158308065868926176057568773158131135681361697149958705581516743045223605278730273183217410436848066080698661247175943343226254104223238029016291844616912879980172915593415318369093083682681409599455875016169714648071685885546591176621853181314361137548002940257313055829360828752133059984516159541923743556493941504508236487149720822194452988973164613737346116500053823999996763798367836379993495539031190662480366086545180078589569868402489893992503676444822582769369302119588527907377624198958970722768788951630998005106452374971690089752378458236273159478871747464090838288639875817178429832761028582229771156279384974756054416247838476102936179316590373254073966609449022586298042512657222459505949048644172602241875445313940898395155192610756227871959881755311189776175059353313402178773407120864598408988568949786238351496883596744764286674635587341866824054944449493786270187309143943994576840828563165650836620614177460975533672001672194833526586089238966387915512316124565451014213065992771962301561122758924615189611344324669387187035084301499833469143211538671787268806902063553614141619884867394876215255758317921404236132927575759388944074863289276529116822645315202354548910450027574675499699589258336741018363531262176233975773257833120613001270163884619571032615542956515072391616875896592609836817927681792930676890486861987868708899106775746156370912990649886582789959413992386688807045495759638782403827459940514658921181952105358091496471043912820737855283657400507081303151648416119350732472345092446729942775436232904261004391638422304772653993106936495574469095528173819731583022845148825214873842085420958816793725454964592380475778187264452327969953367823691628630980349521505961319808039633388022551667155189661244859370106005173598318796469520531456032301427335714430397939026265541854577694482331951081411809678241017955543600088844883504197635286476676153590706405898801130354273507013157401491965570400300589479274779986816313757376593971243653157190531197468222648332372419348981731368641404814647733338433056859210487145974775733350555352903484204236239284367929794251311489922138434220545625179353885394278250939794662460757563046496617335628231019835185813416331884867891722477073195866701664900942354552469027284903811423746309385390061419137071254899578798732359576327133483265204533371550358869763768234113809691927664713885815046574142914581252848550672875424979185496351282549291616387545948119011609701773584675988410244205644373039057104971498995069931061023908054444727134306397238939133131606420177336835171100675798244239101506446449427006076433989324971340343751943056898349243533932416488523020174410698159097164830569615853038283525470518558773451705124352439907145424337044800389010194415279943325872254221710968611355897501917298905506661079109776797806194082369027918538963956201715540893524208984765954895740030416731541875795307593711951433940824600723559811067785341079712309051854451259290677500249642143325940759941974032258728127603461159733026862745813623836323253383486590174445693356798911314285123730057708686284390617664926837453854563894604751304612898564713567460390175816072920748922252929951146943685350600979356261407375528654874757399053085167587694787710666844973530247261110733169704466648348176171203016121268289377922881114848107065536738558768396613076786303831670961409780555925598001000409763871070158653013059014891049493649758751034265434213814404061318490524072300887111569855161849672650072296969628598292799228640492629476985099777687413361011988524284502875488655944888186754818014768329678343590453188867514448249424009886828797597429113950888973108158479567433636669781256776185294879681206241110008559627605423169421935077779159106791956628463354576910719950136020141791844127972033421691284922706500197885021272065309915389980684186901900889746157673667504025795549984648519734836028778654500832124998581497046827421213538467515068640955504775661164695466915586277022421751881344294334802653281400288582781875707178785568884894222838263099265826264465376518060066746917362329905799345139024037838615923778613800936616857283520406070948616929651897603097731771357413332633605601835700835262211761802228371709136895423461652497912385190837622849945912097468302889543391442455183424952753179780077755197167190551022126601463037352633454096604597077880067673447420610204330749585359136483598087706352297999291668982599149026555068387475720122043628638658845242530603473633089477940846871987579137933902883809112128047074600356544451376142760248476513407671179344188341945355249666953308120228461227206321536908609503488617413879169102965952453558847490740882259984235480220356957885222716980976984317146761427594889507251309710167551199259158621484390155786263500870502422325131745698706507231233750825009320716830837725705010872943918282556016831863957500573914215935541597450000116824539580030581672041519329112747993906626029150613698350938902662311574313789589241543874702397179414434702020671135997562237085495245806808660357449837867995698882992760923292690697330611568659741254322068651856709678572046276313501264374111919299029859837710285433841815282320635339995560273992969539570395634254446540860813803331282932769043375167473430560418269185339394964536987974752508275453941121451788158854155995952109783945908757096953801822230080156562544305755693547283934217179509712851125664279293476317400479633541394752131522191717381696963306265119904090160867981746309364496671489242133770407152186113922384126238664818863384992812566646381236723722094881818528405395684306042923111482892525211641459490559581595743092745378357126117140134813453196950712109974021938470661434526628161051868204603523217439656341920229384265026052469809421428719994245958592996835490069713215129156021130958055169292975848848492906824352301817472241873821625782443485757552492276905281129929404733124908139497661927717586832431283426592708515555289204179687491247377864989109317529981726034856522540437121927470319651501286238070192158740572833950360017924875147241897066450195836373491486726694143787072806268168946368420522870412827650578510277481387228908567187165309579978890862516994237401962055046296909511236695852480153244291469066395393447195402043028717691144386771059349893280545290037893409065998878116420646009009405212137384698338259442747617269882805631233568365514097143506448840124095592834224396404789289909609833055655994264264718438577025324891393890710298218344575036032774462382524329652961613206793103726609125934534617240876576510045409729853087947704842639815451461760421417122320079370447641888515214288021554481759682837021890205964063017250190294921792926932469543262381169374717658099926709714177482508986789897766339168704118600504673220056789376662563068143362101747938522042089383664565323746869848807039324487428708728049308491133039622564087230724640947148239037522715268983410310307863515989880917565581386305700446262739164741671597476220436038500339295553832635807312037447606195009401727890769545933424591679978662249386219311629383384001847727991685891020489484741036457895957099045782966323517647755396916232947301653793481040043059189414708962973770051134394771775932708279214220300698465109853081597453868826624765942505467950509939577875262429093322815451509594499971883506426551957366810197589889158102070991624333330981935906515839113159835756272889394794426025260231994310374276997539232356213862816410141168974917972208196836771887015196863267267024066707116302759434691684389192826828188895003872917958272009072438313183086959006877774764775602333595645340650373206606356521778357678343282856758444244687655993544581004248525297174619030375835302522622670228997158855146807563372888126614298317511461946300926652489267194172231329180998607529752655379053196132273763982756288023799010460015218654255970492571796645314921617786948650264091967090199822966823600269002809334946324012678590369559634594881626371690016978113254338317716830636698930897666656332005506208021116595127562763700438726105545128166680678049759526052722500896899861352346335018309995367283247644803044554953911544991867089612971457693499839567892026013423009120958432478439824949439729858743957511956648801489870051260819768789617091313352315737979846095506225175506654339827383926445795192429231674427378185660791550534545550753655832131658434287675643694245529322514038081061832836907829931220367138941996583549430246636366930380425328577879675949605347174637390343972178330032021445628172232245537340180848183784711720752583839009053071810147404080233981896875161274913352875363037836528684885375704822931634786798301035835552911341218949836583925348921128665184012078131322685462513005655212883870843582935970758748675927290539620291089518563015941785427500983845086545121408647388881652791948489080035060217785545404216101590837092655209956306742048921924839468746731750812026362356359512040744371154464983278745073998830331901984273409508381954091014796780780554947275938619379471746875403643380824503901897295832109355988498177619930548401749179418708317690232546343519184695649729022977405674525776383377147001077627159262569381505791510896110300680085805288498280300550877986716119417770401949086927089032956907019946710272908570478684475728642311078608601476261588317935789975600667099265980682932184393483140601344856286927824801254781244094289013946510665277294945535074617573827864875976158370628726370456786261212292497864802887012667013502435806576838978297333008512989660720423831738400206802192156393291585833434904975188128235357367014901693865153798775969347321797296956561110958037023140754779541445582568208051036926296266484177111536164442347414009490847988047723136259506091648450828572022610377371269875007566846445198187646808580621187930758489814949113147455102134990656560893352263110008969456929358824165451853030323289645813188785441319989252969356661225762208452110756613155112875743167104754599167578445037999890901998580946642502885525541281338793929671724601082774439818412207878889439733548170378705090975868448135342002876371430368879153674498837898510922231212519105077057117757755011315300038871316839528562055851067233968209147921744745883245375472689971393454335595270149168739528348761984075953809194181352188462984747803615968364363176869360911411552697469574865167422746563574747343427666659990876786412960066307750645581074812304930423375339368813425868972483524294995756463619943690109340236509650043398200409723348135735122776093274458791335767630642451858447516366718343920674338098500276977853020657138260585753327557241540061296279400083481463007285462283523585961366078437696278836186422642872167721574912177449409672589660463895067840253103672450546384362603361338757212181483746222418110187687200781360749645602450491696069635395430627038932716698006651768450976384317927311118253405684772920638050314893481141477247258789214635102089551960060727851974751949663279607317686104532063541201232878550085366255030255611082531101227934762488278097632457873003616117921504874155661107267519642339537537563586097132077679828331228008758574597798316835236281494294124856872787160993437023113872928884283732508451015760734843142252638708235189102341725499894947591772927424108787355169447004209753937171231008885997716055216523232720303264881333969863725845126796465377575931524938745039070943944217431781348784466255968527770874370066071476870931285915179953154372537236175808583658475632116614808600692479259117599953867044028588086083287767716537344068327226044194266315468311040220636324660588128038653470381827399249226669875349470279241079104772878413881387987153778071740311645323749681259686276762106390764983496539701681603943971621726985333139385602970416401169654436147131406738561597245900948477901474819870581837403269075889260460998337248214779527589910185413588523695822253782483344991097185279328356977977334607180755565796202435275103046879789315956140458960162694061463898865346375790124366366076656100434632239713573136674015772077020342170327653284255129920320497670736438969857713352802612844037540848021147341274135649389514374085577782623451048657418681011877841398984588933477504316685427029082895787896752282189262240661382031491204216299432525152308877525913468088820494088556729680598230392480376386121051141110055652414092399127248262925992635537811402981882359754884246205669946966736871071875586745589265247693249269638509699578188398049096262016277999338696537261906028671072141268930246464474622852741620750238596174886424161331312004271700201093215055651423794273151997577537839058269116081599169242126637404187396259538920198544115339475388432034421169307817605096914680543593514159539890598098499439356586775210075141621268734933759469752419794239408769124381514574112875281876975100326829465661410520791253031925413076652311864862328030600254176178392541730146755085127185019867989581669512338517046765005198387223097314156471584855112194858418045188563453340177905205177557757442945307888208024530890749529702377684886001750033110359204279961394605823175992528670689132288280383225794028389572979094037918780250047413683912783591902302854409976490814342010591084888389338279966049439671572450637267576673043401192804923850742585384061223545214734351692479807603601550060650790818731983101881405718083294415670719645231972375881204808983555590921731677548971371161179914693681475551023067805512249392918757935342683246038929846779221123747565202838130675025997158501634010864935723549631190534893473244823268112214716051056835484966483273825618170346293042302281472794909503644020298254236161083361118877203199348182835910774934510358928597705231968137000551697123238832637020865538197443114193580383189810228347843094006867986747598453891092357484366823366405260449735221077988999966593650587350519342074314275330775359201909981459694421206606738418912927609316855252755947653258846753327577132731079258870529147257269914503830898111407971392061634485673134439584695267657337573738457206596643804134836050745330276761886204604680239423176884686754651910240541631454191885020968612006505181891400419483596372667995148515159272727263016791779825760283068854333418367836861838666561239210547803599613501132605113745463759928415297183757752501452968739294176543180649184020109228446606136308750387991774417628873041085161296350982296057204489096311432063311341791640303167131238038033373899503370714496500433243764792196111386331363607514312129305229743226715731890769987942795678544125412240219432883863343097937157022194452469503412722627386648888158312453816103929574692646042180150789617251756581248025610755300660511927575648214791297932742871322467453478705606284485794384305636019943201643928495877866129741246973740720777076852921412414505206369949623770100307207793908812271501420218842486471102539425271192626314429527823058671000200433988707514939537267932964299787504623185732332864893683058831652625856637870288317637211917319716138955772917325332161989472183241695712218503356507247302176676696560976273059163851637663694613211163853651623294448174820194844668796453709335583734562546341407390300536253059415522932755841250575536576544663310805115763601204806825477156321488333895072093913003392275899034759057131994033658347293199524961214415604978971793349924739254901087227702865596372503987515567137937585486180819034799261474609414597101024073967048637310592333631939737642451546804641555230103282181364981122119570652416667981540308261517605098313836085995157389442874587719574774281130066480518414886570853152976063644608616995143217481373450130954015820489198736949987148428990421910676683506125619290854962802688632972151022702143111539317265971363396487856646175413429908928128563061283395562764268715055321758822819594412873046195591120175049559491159434906961818591102377382311266410736744474842161059272936009907448222408050950429448637395815597189197021739147503072044732958034785761248268324473199264159485874862985004026050347996126008243472397556656328252149959314042972200874440946476835172363380280437167512713118291552258518598354747523995307049645767363040004614899824862337699113561387666045806931216572289684438751528644778937900246305322042565775896157411348221956741894565690104977936680915389190426844092561925120117560771991753376961108333561858398554499105584335669587266091380130454497856943306074570083945041689522992104204105341114758329387149431178167799869661436726788145235229798359865895807100418934499630296562289280545562479004176056985123393454946490022624578688072837580371573673305785138752525385034753875023330368871046380340248538472844469033697301168135190988647390498489674835175528516774969305079427647290668840295731037009652860954160888866867987105352730406844575691564844246143526034495056773024572058869121141405779400975063655878834001643293975051909913918402396997466145456686407974016248364358684714251157475130608764362581842563960500949186079677913439097904011082486857630277510084286416122883911854189348062988304218417201737249055694294036576386578357641744499287517248452318969461804359006573824018879516417368771933926169833122259453253704504651740874336999498337038369119614180275843956089544370810982884831546458106076484174629819311116853871399938804883594038807959235178039714656403489268969090525286565330247979927500675447480486138161258521065611071789455539360854200136866351107087043520286438643052739159186609174588990591102243763760625062033139751293909022185863412513450208973771616422345929714473364646025643877303584174656436560918194399290850742752423640570391294247258526790424016354709537761553703665173464884936795258288421374231324507208485814594093973412598566979856394940796378970916785799263422103894074012998305429550890886897162174086797475077288240225954376440728691796436399654455871439823840857769103684986062533065035259816854184707591892163625421815630062121294912494157063647991121345049583836157920518412851927365056069358832421704939133395868999113008167860804996607441203834257506298719899956955698575145602595935595932309116351675386184819631762349594888475304605153305981611520889729914109792646667528726680777797144303371085041115637809793119118507588706498808933628816982236956519913429971174110958741239673311770351110545591567038217527838596967187607156216230438858188343413018295351740396965075202932300477837714408703787660638929759345910699123693158990178545669197657081797898736868836207123516647646783425911472659795984872254116522543380322281804287876464576012736277180957011126869887371652165530194859559602091380746427675574354469441687281860789846825828320802385966585088438305312080149425594664992808348881870657195902087398932057929306256246602808290213941083455452581447512022200069754893911439358464139580831524727216046431869900792304840129367550883139188800120681839384865699805852457644207686005772218644315498505798481676726079820126955541089263771965532175111859450119449275657290145193574684311664819794749858039958953772700635845990763871089824272311174710623986071461344433185329348969928398776504069914773403497050635192705006450030236199440662661469584755288386280181885399432025843715826396662896825318099802608743755165195676769037483635341548088407374898646932704516583301305330550857123851370077281015228831985120562113360802682430790246778085149736277573360163063858225067579308898996913321961948519353982787178646297825429568601672984612269549898568201387829787581931630184112962637089665727203611110344116369603084657797931814313885574302039351897442043514008427138512361459724831846467190929745614501173428564747953096666323999986855373548507729031198066943911883961020710848793306493131493922852522779432259755437905652356594608602248300595685465373694666651791760711873422559534865258375559599788865220252018592123142508547063070145507180157983899591137967459342892332297100850596618222623883388452189823660505516390477903057951393298720682063797582456078752637338225393864965396543616992652983942735746570638267438667022362456112231329105022902264069001087424682310955338877558150492260114382804787288658315455264291042414789213688503133168314318361037867928773419750166397445848265159714028935332277632082837675594142216466360819683659870567586954089246664420525974849382949401884589436436583717847864312614908296207643941937155473460668550948296786944236879252919737051495597053420362072700476238424908148512482651456836846270740615903326505165909358535535959632046325198303380435060542686050019233813953678503801262932704004661708038860206032858914030979027610524440276492289233362783337082842419494210341628363305044004148113887638729511250028748628566784767183859820180549890531340575698706857605086965081497710413365451558965229930556172096242876518392168229837866440706649016910588537354464627916760173015181970741700239831981223983565905706456628632586080826611048497788680074832692712686738091933892197406845530254340326785078448762255295854792551063719072987781707806317464603324692080252852808039665449030197732315720424063212264643092466799502360885579648051476441282020713291609021809724431737050312815488136830327582084626195239677127723091582963607037865812701817405736901727915800838716479585102125362310697481421382782865265789747671074764628412363303351491582205407740464262911356565480430369465503220528022932200619817088088642973786988666654292095102459698710358229289408379325903114561858404615417344696689581491106826234035004893941245780583713853680569482029847665911224601433796960655740211009633734468973395315365607999510462577558621105210793450631480146149145311522868346284592316122426481253430582381294808919223873082121956402292208195981285897532015549072514658799134000802259082884752597050934639316267980170822952556717633757094767511353033697237671213074993945506560253095857751180483937142804740811864878069306559622733756880686697337463005260888151842238599176304345403215302505624591968069660640139384298241302835426085565667675402343626047835058033301750117275089192939781014759201078290470265863830944354034598744405283057619219988825315256774845435801940323218265539006016861310316393703598199426222932006750629052515303252161253032173589535184378990377220290261786662710577701169277889729325411806557210794346286280531012164654619496375181414542117630037855172675626439013086456042266880633007353714352110404824791706651769906969012803133997772822890750126011652708884524871175627162376396108673978099391178192719419471470010639524299429948175258670450223116486887736497444965521353685225482477050233894011363759019795098057227745141260936708407998349121404108985509700898417695246815440372457233675254840808904938184725143620687251670892048323118917315327969502833696872008955822749618724324629262236063972099230331561584441754679387119957035086193704667912722078573481910100673699057744113325106206466594720170776065511137237357625430505019314570113390528222487217411034638282822177905353451849937810535617208904560485936303290943126686088178967980371448132459011589806317300093705116795425781480527243038353895771639147088848151752451720456385106858281861337856263778708811454164082867310942103835449175809320118278490558873943911974431458768237732388751602189806380397616972371447511951276400808534632034430791558840149095801980785817156733337587595365024989386412382662191296372614061424378009134273017495260468397503579249203401832176794847642356797385677722482036971397422054813089383247503588369516484987906675701050349169813822820419502752914302837015206769095960840713229018226527843538927748009202315876800081448663504836349782825231389276071267512492183825608439993947737459222862753795412993986853665202453949106736835959078934358284400137952449918591771226067313483491661225681844726926999578114269436151773186592868506213765212306277298410808641134173194454211737130528111411525373469151306622391926578349002234428409268276810454765460499662291970079550313118989808251021371021686830281694216940677641019387964025958027511869134202845762429178582816727604881815563462939925891869108743475644493531277037498098943950159828557808328334517659923459924430548928465419402727630664068757118056507574304808602797493421619459937806068114008589415804558518716869428633159216262191644518023655610840707198614034934767790787274290207272301189263472287788117542751442299960398949589979415160494297076437552913388687916114569690280071601476457338305083869161230686018694642886206662993286390502963875702850365967436435527803933622951081065090572253426170993054937807162915519927404537488354858584687786724958983448654748394708568536447383748738009356239212737540116212268192223608430526402466680860713893710558206615993684176502464846740409273298886103870224586380164678265842625704450307450683166302879718733435564422003389110465956051988155446219055335894471710846840027987718503865508061729722439695408308489145336286756290359064122126833017715621953176449109098662622266270132411671801247615827861053987133472757341517736141354777253626575966934669867093113923703880516458192529134638079202592691800503664973033759975677153901194541508451663694378019702231851199791371942770106345296255539923295152463428203540563289206089723615338042220978030892682699308480666812858178943892046825625615869827743291193994605007979609629310355153596819175398710580248784833892044959144336894286049821704061867980904283273954901594159781923974674563840967246762650934619286996149839260062146520793961163857856725478892891584637830199114456656748104184099637683804798519538571266114009577603454922905013474540627697729873546326917965415850896058487344842715873176408054198467924124286481105386343751898423379982603048509058379809611871801983614043991649091714744463232504105188824104812012582660244122164232831055051540261110212584458121504379974188380077765000097474922982219551718464380199723970870540153827570610724522997889572319252318114450279290425260581513676263638519750587426088472875031309900454862687108685103377094899619972333457436453623549541248929127056593404964491575925391238895443764837147732434130455591610980062044195589130534605871317029250988314238489405923372720329146363242047768834674293458598669137173076167106406222148102256590847662758180675347101843740331701338021179579875501594586021474607410878992500975262957099948968484740255563031230174585604197771959776311854456562129704177482767851279242928927356503277001361212375068166302648341660984569132898687689467562797301572297336234618699484129689440099184069541862053785396870966920165926362820340490458018737883026848353374174663477267450021540641513621894802869939266294166482393395911476601789947423688612931315325153807822783485102635252414869917546150402507897347698503698516535281724756480924735860179403941744454498790470981795116607158635892313133475038397551247344518871396593762472558861041063340593558047570104271114152930388942664570335406397033510038096675163548029681976142286827328207513946421153221613439206448927524381339477915895393556085805930465564203964284631402980544754340117263920237887989155106145051205605815521663535130871445974267233284534651736123940179045659715978917806933650438625717363145107395520913925882646497622542803588448172101483839081657212932593154299490364546878622531668422755013385326206670861424729955267528842923690748397821868579022468398338309483856441181239137102086308768379050423641450381790401087543890371461449675649677486517190376865586601997651014750805345535321044567060646361076334375784669420370002090926690281370290721846791617208769403334750011640822010912067996639094403588478961823499130143176758743750568232794196638586523504904987752324298213713357181994328901430726148705888334812342374410225009622466721934228909499034095179504125569720952987288478271281462862505826598263865622046188291561181019167635719018575575606668533523553957258624201537078043349132454665925004299370436710478911218959235673126265273582344868955206194058951401635253963203884046194051689039625508346273925890904638224345773613516106454666211772290948715079743447360920603315106671471514696332613748786235530974038786044182133343646264931389469835146383802691770885075958608014974387052375118925969297493754977529608724054627108091653323780985814793948312281158192918023768329905149345886564607932625081101177291723315383454490114297580204795257983264645262808327817803824839751617911854842558168570598834938424322971643456174772247901434072142620529337738223856545246366001724936914743831327774221204081186636661452026907573989798831721991453364772081653727043232772742672947378668282402078190494545552315165206346979066747135118887714459395614337849615701647157785233967669591780795327898828913698689795998189243369607342889947962435015800214128335482079259944700894176080765072565218847429647135028187401455902341028772862955791806733461218173133914126862025405379313203603435663484688616043256458402459610721430903917550917269819812474626917901647260255530186558287653065425261742260825634152763717820566661050948747772291800906856808848386959414873725341648227045054855044881424541005944895384727951987620311823550801564410026619562385528644923442091354470101076957016402420889064021528523324319095207774592785843752529996109979205372477999465905936108599498857678096020857119518722920815024005265313810814305887818238574090758844988817599330577678618448743776642973172573818534698948828062519089486383443564773734814712961157056792859703047266061979501839273675354447071586525031956763251720871813852896483398747553080235150808047337027724556245548185475023206412282994321643874077906086021809679374055819982170921486733226930592190441410222647435013440231680838867980221488833971211333946041799206235565098160864294965028983188983104433768245497081223032690055534719038102289061027418585327594759199647440511720010083658731729161464973749203692540845487395886077655932981209736682511132640402966024140818938426086838207770553741369836846938195592622441806963251558904364012762297452416582621097754973163352819276923899489893545531012286261397980241250780536223125463015198559401328428328010803072967012253852729962877762765618847050662363275229055077138384634285278893580624140076755903349511201341783083111745955222520743421283723576370222220723061094386745949534328158483678049882010341656224201212040032786501481778466744101956442636135013330706828385798613409393645430814088633169834510715139322297191074546389275095883749941687653393065685002345553537068019735256245767675984324810189839490326382570999659932251456234668386414769669129003053569067499731579405424142711356615945659688831598570166260823766577091377790815174623106687992774167749076302972729792385402215643534750941028229327097144946121270898623053290279094825153139855519124390887893029070494057654948266379824756332098163203294767014456508872643551150784666221716506233745273031885256965011020410755395383105011190294080937021035739632727707228376567945232867670923308127618300221563783975314529353310406846608280488990806281268697622559632617060162274673920089877224287404981949873607051470967964132015897662847566105471509071984398757053202285990161235122779135141672165315943299701135401949104997050635176529331914783374698990619777140370093902839408226900739623732016635321303860020603631233032845203989248416780200347543478753343447599000802230734899979950256745644602225191248473056428685987682624019990108283724672114248546956878517421148494939315179285899684778993947403144659177266438755972391719214492229774363757486473255062208545080820406380879262440999083911688673136518253724430921822138673744073180416270046161889832975407339315981932161633183499010397380898760652583054734839488377714610324507871605839581787035533583342295730321501538597176646610636985793054838502870342789193951642519454442169835109034858416494743941837342311045752886760382302172928694699481757796911397286148445631191682861624733650933399520293986574744213690617806906610545711202099108002236682693873132157775227503892191278144029664946599625858408403724131262147066100787453819674619023726550474269574462877333722159486504990877750860451036630199378438393339136619622999644322511234992578593397809624341215224228637685552163917861399532421329447227015083414418988833704950210861330262755906919397529832815040266245004055235055459166312790136923918140474180107769651332735292133025586217321323141030160673354229527438516203254563633740489505161879660734141335813411644953721502941670909989320207830486465384432176010137431941476052383608062761871248284116229048674181440295253606167074537555464267572054005768528904798171691160144518694482166898095251526670833987813080572098316290884158899520671348803842980764518298782535842234322842513807305896690554677413949972249399048223663887408880568507691851034175107854349494123103854530114193869178168543119509278119207853133053003861622723314564036212155432064099403357541518364944373046295513563074388540901887139826687684018815970660947175312903446381944875889312931593840223497119983511807471439783988966136861324141501039527746045703407753419610351635579581918000109584059100909987965010312496355758802073917967636795846523235561331336477467533626846046203473258202533996463531842230357035263764232549560164312802867423150099105696173256871849993713954362166345179265394848140370541440205552062886096570854053031849349085631734689464100756798998986910900410763379544492287117093154437706704145192934135631329246349378338051488834341332696446817110913735907195546089162271516176859441875701175351606582956785384189733468115571579089271109796778530109376226500650220735424943889952797019838323905548118973109294570798879783246017339917968684895385973039112881982267108916267360030668752305485828429921185405468315279640239846563305872152632735511099792491663310243924596593562278359724032850294704818542702047378212835520030793099415610383737092641097269244506508481076412016883028320644909843422820530643991949055485997412850289798959167377981007784318842072533538014140101801694337203505684544724002308349094321693117115859323563317354012475087896884212177631317056595052243372572199705047361373845596175740005947902781639518856357362841044033748903433255626144106552862538491663585786892556783597754520243938396735867224667561839196634205624979410304921417775783226075701043381463211980251842944737500286938282880050817121330582203383551472818827788593119253926395262730603945665033342387979414593856902733153435676434709878307489017473753372971138956802695982824458573595232862200733493761359475160809017810420078480144030973178592732035177790884847924058394658810985979120583986054906197844842166932495020638690615069857061082898842869852052100982875365624576155726880116467691896900596648979328665263994395607462486749732677191132830573146975725518974092988265057191604513337424582837382138762171698439921935687024985835629351033635743794741452122463444187524521874611138631734975288600411840846598733283993135303322979837914009995368497959785632152818324696593697176792475582467850996445780720060222218711855337529835276519993450577253284511219147023848094153636060710157722011862431068200930774980659547843617166319503422199514824179179697674939228179943579176030062498731314193148510501881177960950302082143336042761844149300373349947415304586500511572477860384736856876453101310261510862176552235994143694166837087998204412366830592631302964614151768173998704449013878016839268034319829151108716110426991951677772153732426937680543366359906304659353121603663414411793239892902010722014033024154742037068187861194421968176241277605486704931186185316798678224975911563431646485421452590959134525017050672431436850815382555207607837032560259023771365071436402676977386687034549454499539417040556134328401488232645926018387467827110130529592969201935572135355575329759394628993413689955957226864160544962030308423934329843057040825609262263750132619157982933243121064698407232450060200910033475059464268531906867703456629167686211101361351153252585655279865788873547684429470372958104824597499414663664814995510894585828364222548275547840545326162591995980146353872238858548971496788421399783766120840100321122536501830847340635531600119281319237265299041952960215969216432010443836311664934426502327616132729055269499799488426670725748496071320465199995911279924943314381219664075564834200173129768445936936401949570156641883595826537919243026510442652916534531384867166713283431983925513820203613721444709393475620103954852340254574146213705780442411203215701941362331831597604677616374872211884936371403453000401721431800769655323425082363582109125208423718597227049702910995859411253708931856577397903479369897261914095165352053350139315410557991431328248124978928165053294118742814748002044718942707524748349590200949756039874597299105787651541352050426787146570695313229139230163535964396544581877911696670980429283888753961206233049589855097356927683083202444119252270449367740520267096217492858042371546519065296444231993162891185365213297040964717723649284645317614656094381283745309313656364876888886387416693783135961621402592729891672546024756779913935073024421974361210106931099060084450772304135458285489292264827387919557522713475514883400849984929460132901042506734385799343726870295979114672482133617158162689229362788170830662551693868356862242981414733872724056386853723971268077217520994341473566127566834994130002063101126205725757115618439879142700278301188447874394079994090187323635502835322561100384535131406960609522075124535608591819839203548772072979165336764629217076762902275062004724929264454991592836207141154935987259693041017664914662344250748206323962121280687018421240060609507931276842616822430958239055354891082117556969628599731359418756882204053447045886597063112305055762321141140293345847489484979559527807563123957255474395003498166226634605901854999637917180479404668067931317159917778567542949806957751782717448091629855023286341752233843383929714403380336548224862628417535631210741926571953308145976205754224471127679913083403700202484070897896211555375108637526441609683029626657848604435956371580847864530603476479384349157358908764474250421471908499057727067884921285048584325213081508795072445599277444895182092078485843158610742976521769751190507329858397345377934041373671823428547809189331249756718269736278397267419295453698857825056745323315579141989245784033367848668518747079701710526362339968031529383585724429583805036971692351922488922595091187160357802338131086200484263477195578282683397007712462624371957303151778036613680490840022989907194960239085829161591774234060628335737182268228577336944492049136526343481651702796097925495498654857063963970265645447752093818241657127309863976540255934030949060195914649571844541293124130075066622016635125935477352016005595700472669546323173153263341208294722645985876905579750448676182197188158901307513854098130540748054712592857512461136249669194580074183958454193598473752433770733002170421219831507809623274241252052533955321504874690624660652027857744132085154238853512471223187102570998769281048843112074344919947378141248773069555334852666646819048509270338529749639036862568306966262578890887839123028848178167698252879668766460666761762814822603108210839802665233252925913793639021045418102059379246075660366871593075320685336229101856265324408742938128673304855983665023568980927464237274462718570671855489735032931632080945819114788464696052688620443839229295277581780326166352311947743222308700749821241695900839290897887697525278756815936584810262965448421989577225332249012216081075040537356015653206305595202938356752201810856719033335054924605228030927827618185483918290969962582095841209531431462048804913182859528356231779266720084226707442194981615694554769061843956261542600675234595606194858139416538948128256596112160277508738901502321982298609722712751087373256845426882670928515504724561708887482825307150666720592113628301743355875643478576309437008121549653976380260210380114511272705459383631467196564916128237810623663587348641732801930953845473130429601628097468242721465788642229403510544864593907176317962928289017573531066006286763088068461888964418963333310072374481811020221151292398744621368877445372602303895955261574331751028195761947706001812490499474509383535711492891077882081031788509484781605835385002281884173738716757085898743298157549307399322550133728524089920243264480989353120584245515476767232307302944199488846769824542399966005091242691650491216640560057099005389959706818466500165387388860872079161492304282620873302390955700769164807329776480134919157628949300733338008496872271516494902051515816474634070599260853940041512500780826510104518227775587708393826193560573488725552165331748105064062672592950304140009634886241686466780240259166584086818628317955192326973280909659908169707560452282357108021574032104883991165684076607376269149814986920048580299030379093333564579332394292610006361652246851933370899741686569572587756839759300440893606606391989631158923450430861243148786795179259710263509582081444244250634994647532163015365961618350373459873150006987594404899402528262981471396049406262200584363333278656278862691853215185480123288905419406537125741554065131444313210761383127676501867495317530304545255900848090380333523707243311001905224267640394719093646914538075379445962062869434034607908269067709186840200621390307778093854995802202962888086026534313893702515369496936692723613323099307019939565726833374787791819864014040994655742281087886048369810706675492182505517461081244029149695871268148127151738361705881748820659193255505134092817293407228848408438127856837516670822832247119217417936101227761289249781373023497736244618343945708410464416647000978062066108829293437679629754827066441074125439430719331821339244018162219663428446572530890313729658601033353795149591608736980945974267636872739415174750306834752249914205509143857829549475206140079401395944252584747646806558675373086495499068279213117167254149147105444757180096742919264619175279818522445698786229446821070801932258759750565741097643437767537062800640817956088184337532482555627618700778805646163831109718231950450933580575066706195592410409618485467580633789189501313188352360935077730880032253846966645673085613260598724964533476524984728003248560017873791893679714342237527919246501580024567735084676434216563220365915813073674775685643107810413433898028739814541688164450173462908926309459023827393392778327343556885421484895300754610529273394173860841661433525881245245809218493254114809323112203900787871508509696599277608245724819118272348320619065207801725480353487113599957461281727319383174693479639378297751726259881800242419843131843950547626487846456590891731936668601327204700801761908318569277379746041536740148579230368916387283465285422104030048506773302176975362003028702863592049583154343345094840933795622534255277313203959703701040861752689540649788545907861618454411311857489020399720072660756597249124849245460695002591371736421333879578014039885285893053706769555595448607409112231981324363095607788433835453236073450668669580355134883436299100817292234537950872296432207669988894307653720926022399709283369714357777299194306160249850491448018014736540475369010046804607228505278193286950619564688437462127951697002632816072259924417257222706810221327266177254071233941029733558785138891210314874428445254976018326795633673634451489144264657731033252875616011016402598909787680823534601073505724320018382826634303302569962310769720468594200082522321149296564893788014933671496948931306819331451728171247024094279765320262972855397391424118745295814911180166903753728132951366599320777705671988395692040729124289005165440050138419058322295929823383721412391738157425847256883019216726236021081463028954508857155670953286432270547010691953898255267928504624761385689140056384468389548017636803953226274905447605451208962756578173082435011714232029705552203244292697217435504027849560834449224187249645618765631067586581909667223887543073918295558564065823412193612883636026831698029077222858746517424992304228747380141583808981885441548301371097854128978084704480129237459822178540557995027804965043529489351734860918645439716337546875223134013611953056084516185137707075141922695677408629545842669219434995375712786697745906261932472597018208410539298949656964360190615406803185823940756521580011112684368605323236210062907996255688411902688381023851712448099382879723467205792864855571718005440858122648639357481878804267011290441177026223069207638267915780964750779119197744756446027513483584078992395633385236697609336870945999415956857581210532469568279039777138876308359649374152736484478671621954117211708237061161810449377609574319899936740513389314121955636626116460102097789909128245709678044885686562423163959967620638246223692031260065262302327299119008728687021052827599948264113682450595988596842226033871615343655658417641889371253748981355153505725248617521188549901911987389595824773018837138880041668158820941373204803865112839506578896282472107700064283420551238496377993255711634317627384658520300970966567284153169109013841772428999101681575355882128610657641646536005092821871018754203860866126272291613025412971631652815371469337551794858260933377548831607875926340066937759504650415893457788636021480959695568353152514852832838896285536198116851786777637167860937376884957174698542591706825702686101795257793111300398853507868560000500184423066163666895240520689942913091333359879394342719077530332880548978415225003518199313367550377382830759726872713182692715424311487516135029801121385181009668923677493064696182947127514993768520411116333333196926188883908780525188382328257339803705874153290350083576235112880174358480019593643457344595094690741853328080680637921873907925136964380585538889153254277781778759522624543779811509171406589586260691073909629538352962084106205327893817929602739455039464850201933377473906109731623847256729740524832614493500081023571163577334762178235072506945564629605397061948532631192198943843684328015508048460434087972005972751480876447046330666322474385641830813803961833786939469624677710457919492270661087427403779348923481302727844584509864004166112119285951616923985367358809642342894003857672955577949395559094794867496961984104381381867756818256083835702777789270191868431675688224238978946175549156422198783607131384976661480552007483550225649115589420766702624412429076603585496189834262751544744584107786258898128483895961762050716369987667139258733142714477147644955709676320449828284542018263009143991720083792811652734888201619166349743862917035220633953301874723394032321302604625026570880477716515432071648038110259526296171826902788808977279500641929961982387525798330654310194724227096705485334664749677808238602788332644920856820436992447084372823079730029858001268378906836656566883314092860843115967188311613563842491333892336846446225295611280249194069187343146351604722756769644598450695648349834026484471580306173579742580281045367750122002983323189273705227629084095647144626012949801250914059779896073829441474473646240480068693698893750367809404061260321468187966293371061226728387569961344794592466470196566822987596589802206586131297670217791862224418590408790468787609161258473540991190365003243721835776878537966261769101777055035870786680194661831019562226887450019370312347851558093712209085566640732486827340967100156579315088418966440848015518530506258389322772971748502710554074522982316844103430642417220960559045468001495796867919923577129245038736779073439194598788466120822999086393327621129458099038073859152087760603337472835803863689499983533213874345543271642152944903025822601492534524740282103147152173251827262334400516505910200597804564413719690076928646349296235012876660180112757609137519204458046679685217472907502716364873344167618207347205598552534480372191211259147846828592526198750781422982364743671466278749541273540241438959839465062756174195094155183386618889566780321033657673788985452822588856297498693170684981187511840723961568989727711244112752922769601235619312850970432569752181345527499362092962703586961046766832877845302497806929051750628224465577113359360803076513750576448872548770696463666803630326594367914057145314671611622863306021616398822009879632326856520983322945382744559504593798289581412754049628062408092533687326804327395336223827660687389691735942693723819076930748985657841375661782769277596902599879153033733344578346734921531311818419215919309864413643925670593305215144876660776929822379347908747213006873929122040350846185571055337603263299132813435536791394517691701923682990001144767061949607649457799679397772606900286266792093506620012824312577910103180146130008108861853252218221045500107614336507394602816526826742958788615388000048006155981515794254892157117613936519530170659727928075965442805418474931208433568356792050017869340186697049524462398521718395003970924837328300667175338354067229667546462077722250615542419682904146113851229197159014888140812195308572881923921038615675860756266429564457388223380758529993686300677785884213451741153461119340247676741309562198052407794062569816256961328480467346826678411368728949128642753142815340393584632351457419595718790833115599102178709141755070526056555644069040264198009227048255894719824941544122830707477086751288166825907924332285232533993797836090473922485821894377881304511896225792285470752441017579888579788672448141642606186204682017898271018024614867563355974703703096616611849932287127068707670552173024433566601864162498867975529065467708148083585023025303341802151938024537600755634207421634282559730425359492286450590974685075526576040430908665281530168396236668352501401133837453064830124959867215620785851085190793016809390516543167358014295751420424648900025276995117091575349465936291574023428962534340067397576528337394452763125681289457242143173770085660476332739786833650450628686059722176794696276449659276900163330054437033966318934589118794858977643946609991585682804697222261633567757665745754941916050794243569853541845362375567463704627303540168241801593621813499820562363411582402730768260651714321057864807541409472466229662195365722609916429530760573488295139801441253434751324796685722063227178462011009591871002665763848468103713840448822947233762245204287200037553724438098194585795714162458547402535800496583478442495129600576749930815602528079221372216687421783912218096608645199748586321501379270716769045241968700153341916987333302962473299966138326827234938177204073726485350732107200170631401559378076668915262846827592680019165623016843651320484835553513520746373660166158698013235874910385789522747016486809483909899332201167955223835308660163573432537948911905332987322751234937667316110897932909676319454260643783731035000387154780670347040553521238088251244861787242159572301805319962953460461287708554950410795601110744998991571337360406646857853314245624352755655831260148795981468369944142140221895166619971687136121726767456670542221137482426663959392035833847963342090064430679565145369063101406292186380076922357679355558486982633963117393223658997337261264130023171962112737708981148896488832004927546545024832270390196482641714833324955139544170072354250948834597191821486601915830842130064582053615266161587600865338908943988254634681070473212398441275557206965414183059580324757773545374235293024402224298622751503708199981298271353103496229389287844001406730339195421969362943281333857561886754846517604429173248492433986785067403737249974990054914931892327918073688975219476703521068209904594626419543011657274931882587799257697176552492246274613558473885497346161801995305962553522756414086896519925975418451859142497530992634956992483658735816714627244890828330386550552948433931808537441701221980394181469395386741193494488590028517326093280919928865891647747903724405280069490686791253267100432794678824109878354540141146922222940931808086674718593785689851866972093491449105462891370329104855834212722570392252050813601771986422409139793094777561551563693267296397544490521018550955835605083698958845496931627237972084822529479686386352987180238021001414160272244254809736100309068280425288325914444535800089997386059558424533144632592593761013500678690068459657517498966328949836249245580974616753575710240956101751238052508327466171760948850291410607470698908073111521569940636976539353212171667596916110287683182232066244712289221820673696147745317563399404208412927106995203536273636373663169451288400529800707196747878001842990028926236267765669633746073571595220234656890507641000243394886674049977008172679470088571597242124979025623533110064809087402576639178911550309458844364636366077142627968833194401770507994904434332565244447863521399216135773538762857133040618747973709452102354494508883489733205777698164773480135715035457415590416261058740753840273173451577176870680434937062828417364301298310672512536240156857044806504798417140414999678738575438018695229986333596367474272911002686657958441601828308349499453979347216545327309884721689258257704969612986475126959682700411221782565764400780488302329907818393785732669657399332769765995778293512581953413443982106629605376855138416331749313058321354368777901016753947278018087409174783862553406846223018513257048879232064655028647096243597688076491636359149342921972637450855722309727634845833377312956551734595573384643008934862834533576661028438752159390624973415817305337150581506367248125846439759367087851220316679660875320868133482387316375556599049560193527550998786342650074085652215070581369936871956791722765146901713991640627296053041637319601550749251830021110747006277308395219717983982648479617230613263505639123032902488139931648627133439105350687795088934104889038940039382507705565856387259094554425372816330484307675495625240817328511232265567729261344095149838479324370526836120704411555990450210228637581992750892209239734754012430791970411206531028441924032611871206329023999874716411493137119167036155735791017394947216486871026520168607042496591096715727914444860672892799256885223569312568153423010973776375805390235695689098546074951140238633378618186636968167135009653030879480332997406537128587749323600691024314799807662791318921995287017150490665172071130634995908828223906951684271672651532129870007363608171638478949356152874299263029171710443677298449458481608648268411886826087697385066496768320559561883869109505768584294904543080282999955061733584801251720984283855801280496220449163789410058938573252878615602160083461605440455234607418831346161762710394509275486979786294851685938118987736640886930787898522688055372634328784338237675174234667236697058102957590545057547944735596115980973332967102212420998778607312767951287480825931437454652544183559250131288780221692245231248299297375677682851997220269569779286578902747580569658208525448072622216424429565441989108820845556319136501622121518161638306898576168845625272713307845667563800742637968305804091750154893018854924712754896833732288005309999482956324304826745196611532800080066699664413148256082181054390016615412701343544791211676210622866839512147642376718335848939229229009582933096632088953628936359173536505541481120817419909208939398135465968193736683119892635294128068664967532587680650700806701221899403852416972445206610692942951648382011775170878925516018998608752669765888380110346526471413216178013145851149383039844257698735580800209146355948632411477443367795339191981695819373505407008326413127190491306653054392845244243066395141846491780281637893273075889546189320326920294806259101386929212194881722734915055169936505890867001576916058811397319483383744959987983010552410999321450979308034025434904517177409133831670424381860195336253601606801906729876307668974166286222356818120436768222052356174346579456720320462847813192545580620535740474501373856898565381450666695785435691778619898017278494594352989082683340803632039250409462169517776348976767283226873492448048417909454364342548458446794990107822193473946652511959295882226809717902615968033213673453987488922663377709916716597002523756399162992070675562079494821909334620410887242271917289288023726200479287277574506883725942224696913076018545493847726735412637560771649019147577945707288532410687810586656351280771912449166043407092156503207070756970311583835198206900366924870286603473456245882198187983260654358041172087700254956288726862018084458281944542621265233255766311670546692739911430262458794528934459980534333470558465434487085666649173028769754514782851326423370774050856779482471948162740689041319275600881922896212411058621600124367390080440560660524126280907573576935132263905876982246179202121328467114262578559784561469590379969223930376229060094826336826534038056778227258932770934886912214098990588982065612269549447851389276231865261336255738729741594865910593121100431527324231627775578154093629020497259759808635987144968378740630835484367533901414089241479936997887080681702661973240187555475414136502012100410353250557193937633414513470776074051043613470452055944797358891471592746462965626853301260006455997536110373529793356721540493625196833423373844953010787880522129474694516432228794187427754087995732715343267352882894645070924856818012747648126357916504528755303939880382332331772435800344984980605641522432322477616742490617888672249947080923135383073900337606403037602608069454951133009702626767047072227337166263782674056400503179369742536504358005155488374333454951571561536884614694500910630458842934567497976539906830120740932434285939502608355390538980579098879223887879488295635991193669577276876469913101084585972805549514981272318615951585482699014764340433838626624324617697242727340173931474666310200351585643017334855011790215368419072062853909463585108773251404395676692990868928127406921769854943626715917972763655857238797597854316806838221226735973710067487430215832736821637145345351314127270275075779172276536812415668705197538724739415304233555931134753964768974468851786121267353388077473966051431373845001933756718733234559361428433619883859520660534918173957962879616646133385750206719936421329142645704347993328785423504036453350252310794702278511854375895518613125776688995069209778420931442567467519443089389016047850341898819140847803804841669350028734187410555721595195152702947973582127878549911016308274341796856012942756389393288105066683527072789175866446771868959084114764430239977705930408515839307419501822017485177761183367345354445861428350141360046651235133061346927201186726768126373504243576730473712100272605319749667730655497458864490837858642631415745359959250332709693016634749842127430174368120778797015536834344937056382425728681720782576067367100753767193265036938457021250529161692444251602001715022237649364462633451578461818991585645898746855253999288120680136837675832936650096402310834950161071393139646298781179765100603075050124785223764710100282161438084432006633766977558968729896014008783915479863059248129179483207485970208815325525609282347189095563902908322960948878248156141260971183307803535496568179743281226035556070165873202305377550235815654831504005655596691565373811749433748007841059159964931661412638871986200408732708386126540357699244551171216614213267830779527579595821061146297033802949794879049803895649850245440581155864030036592131853275910574744812220439040893160997418572931046598714890628948528343887811053372101776339043628495441758660252385314096336288759458412238207506175705661526866137676960860136394118624809678201353945850794469146085464252632111039360203993067344113800489488719695389296769418495139529707078486741956331226063427240358120597533834190360049762752735817735121736336871469680865903896828216827942238382002073319484480492211877737662514922142126612116401860192648544219344930553008033014111095819345639541390503789169228637885699529784326990705194901643886506200720346657468486710412886395967929471308303987988082925108136035581886522537757615678776811706713201134049982809480981825809243580990377733222886960357183167198616457485450947130459763463363791717825703826008515931200905826262703959319211929561130556397950611667510824889267501036542740469222197253450995258782545248173249899737174867572334060039337888716217879699046505102531866904186447120750303302348088529165878994421817458303302251664978906487049220506421397506391533800955266744360217835618467495043027602002177389297248470635283077152347027426053231642598521826229262130155717618591815924991594247898731587676734074062518109089981093345451582313529604803989687566493447118902492640385471818825755249119475613601898943413728428166873291298907234784518810361032472222239723153201163981732197570519099844331501270558976524673715385937596300922005017671797325186001194126617263577846902318369402730315524151195748533725805758049167504492746365545738282504304303746350340620370418710879968627893549141209730830345198034490458281671276368462360329494912554861032613195404981018750083959032467705503192330011719077392931682020793302677664243706013572479168082430995476850477131306873806740488926802602063415115379317044250147664126744378356183680400304400388667692924804060090160937950559075145542354519731744067631586838634678737832683460401209834409064805904511453346439262898361433596361838014698186322204139737299867726518401201244437496784452493614832923928023003132208517014903243494258434243112846052142757951897457363324726612455240152021994928622415186055713114836035831593483451226449577510328068566078332272831105235831295989962481670061992951912956951228138704914197701570660745012200233865594850566372019197409997409782868433326653931519263258651585316666617750900804936147159618101113386584628961919336506321076612049791550648452065662313752833239102177932780261510257566352202771121416320459367185026989007504456304750686227663846814964473597681450017098464483460095991218134651166125824734511812404884685297450528837617960637638117327469311756523221724878023508083036329655500092673943072528486603572226757692617459641555851154282600866186272209894128404988209836687177580848579402123347402715321085616960755811901277300237196456350905315949303205891484212100833339210183199410126384665337513556928815513221103830929071269011069744089205646483840067242886079134239604759963188238118959238973618941397088112429262404807118346974053797632924866588919693637148701400732826281190349406383320875399130816575866370120471919786197118698251724693291845211928974808141865730026836668440458046978306747493514294222740690185646580270125456594920292976130347599959284534351386965044981911828366473208159012420490343436037473494390374751315318091977399231700059952474523376285354469569472047514255424533808188098491723165553437968716394610998881000540566980320943909024591162262080275165205786263128790521377860259136450999977618587099457165784971727153326088520654647483382478977337365954670594533736988553424243837163025411340214863122993788210379867298368825239746479163735691101220907112609796955774355142141822398089508598664973655510122216251558097425872112438842903354806129993945463043288447933215728824503857587384912870303890999316267865613496747279528914427666976255752469761261407976207166234799430865709390748548751680308059955890496439516293429487318692905802579117754916132285918484148862906153396514647368808749763293684967705566967179464316164511015499165217343805199293854333061709523756737560898352823253076407663205602738426951667980920603328772065939096481558730173149764605143322240243538270819094965899798425051112031806533870764363411239273435788474408711676393761556253583363304113546213104797452890699187126393657073297257887466451052957353808012089778547071806383689943627005243896682544888403587401856837226282366645199007633340397746821711826563005867906748945935123979392500390463791401701186444378393190415768370411120941718308677254546802972076991991023472374264025075022091795930539418203256561783953638832396215959250525932802015167811021234997038019650157195286298753100964030405735198338402891215242555486972207059658370242193456686248589970743668542792603892918571387748860140731094713491381104650484623548608541424281087053121353613244263525703466975425481057306065556717241480625297640286046403367224000675399819634819476586622287449693565891096371650819574013131272967970374301731549747113788765042334413938434096436893816350121289481111538661279398348985787446911358027186939885626144469739566464652118059944056576069364167549046244483397167987052633966315413762803932897377107045057870867471494079822070656963607763074871753657373860342657167477517703419560149643171752529962312636878421818001631967694644750467133178786715972054782830821697070942893257791315105430040611815940896507175953972302051045182778294816382848561675624138190571376292849329992989166051218961491687002756064644925689794968430018796935417190144283741239458538141001524008828278724327096366704082365167520678291817053833385104125377261729977913265300312638580021097933277005654126513805739336400578832330002080809830937661163391310121907243536952184183533627615944142678769633836317945708439269517677003204322168012111817915389923867733639982780874184789162672710472843478461280294878173907057441916534605630697706527068897534626227866425496245004165675909944600363228878517448153533619613112713528365234793978926759026408559706589332322851370564455874682251813804827063854347910654746102720093296845278968644411961245794690719798233960162863457648677112728204623770787916110131679626116026656966943330296177707906511630066720571632702055131396712776989300073832230159547774659379627784509150662899606868612455594108219188395858099709345306606834249057190329118634655889417761851880037320667679962280850239867769906804886560054758924999671175678870844898739669696972479610038541188074322040941567145656749042350979333614192170012362712592212955582730859952869307059718719134670981131520501194608811421429014424620872228177549828211325339233600445098982623665749096124807780932767600270479661689013631236188010093596135849318454606332991679185997927741038643514253071498977559438026340858654075475175916477641102926250356664773750813078967312482593793033675500956699978016933886955107336503421894285335453329273250461199464753621463618063546038644007503033909976009009234838216397228491611902584198778814890969485233100123697167482228401397992788998871867437709929983697014435526207468056027276942108994109086380090267817686499577342011047065606649717700457267261034287912286835512393929329356041208384281080228951577114435085076235063876103526133743155696615632331572250104105418264202270865023601420465463877923526479167566443693977916414144307360315865213350675684303144971115518876126400856650748289603530510204842134960634646971272969942834652537955291512984616123608804767705569785481294634495193100914689888178396901261926575721158168980897181213488522008423065298088931162226629132579331689330257745179590493351190942883503068451396667783137074328653670547964434587049145089175429388628102354138828830574548509804217194556182341882585053810866139848940243856852706929475512892566409637433500844316348933855116788239900489129539202397331617304485223258505303303643518740781763047020297607512161377813478871849608888701565064828870193656926036500078757378360747979211227246508281287821498300332006594919157630347685037981717126129650012005971495997246564512386614279151136411581103253172346872582844833606508064293956053958530247506242462459960116134862835991405216125988804636932328893715179379620844365100030275312525483723027665795474592381447562779253159599307628321805002301764486336367433414428817447488872884416975707288830583745727253159924620837434818941257131944794437546031045001245583542708121138644881620032076211547527131503576778544200314266724186299519155689359514453698743134934376741416092375562615547357863967133244525994657606010561157395940986870146210738798411120284506117702526707099520439586434360115899222399027545052207092443815943188362528249029759046338804512222171265631704463979876636998898760427599825216536578826134159736858234071404330190228246832175413810307552240339988604630825928750035263161867836707228206839637148709740280964004538121152035817584358383903205999553741363514566766911453684794469326694937476994481270409432826698000318184616190648208911746839428986529649358551957249213975278501356827295073996023019630028511834553731835966897040912440366821630823547797690270187680860133338694622273959109488138612562314045126868448782361031638296823412917605929952114251131576047613834887699599227174064585322343761983064857492178682627887977517472722834266386983552114304212755497071327261083233261540067802515283781385441295135769615891722236631637578388123636150399259691568528757673210438560449289559040623644261477379477331197387247547758446355890230682891784754268264099113380506308517582496225663728509436970773616190790539664064346838422482254953600789872691129605717551128165830043431572132492620441055270927359796318720921132536447593233080052188162431749104781027532188787422613060743247919172013790491386624760762725219644126018240976687780388074196581204287944063983155627484252944995724866512640648511493918906871265523092454468155522267983326209608024620003948436754128746841802252131061689460207918667039982957179704268124403400148046783142550249826450205904742899284897675432311448193338935824150089332828606410171500443867398387040646608516165968602859180011809136951118827409111677227416954328003369094769967634732614740923726475799554373460866942961701302856800808760950299213373278605011005692745588598511105305027907673023904235541752050453285645151180498247435032997228410481832865100365196165816655170989603716919792262967405295948291992349394734798947815562403900102810863716231188876311229936449205556549657123431464677835982501618427706242490642619258049828817722634655831985441160200554318572099124825638388281017462974162012851620631519201398887678233287921584229779541637458816453734732216754566227363884528580508407310446315994068971894211189255887474501071140872661560727172739734489691509964226367130370973969089920258538004647416952776902866320690946841313063923668508048192543831980505667831596552756381847681432451459322838010726207989319959002367398963938774109421636519770016104691611543569653430413150711693702922249466880868234804348579642667412924042079830800283219287835105779301020181674629662928991818475982069028776422173232824883453671297499228186642098179591886638831818725469827817791436011526308381451566752750357500411034077135166353187597396317496019041420698978060338495466534471016458827188111483855146971412108280511382799577225932450022393560250132754566167550997944145894068650011530208035614481726634775121729148783384170074846849767390680950852260673148363204852070598224987289579043707732853910627467316401024213476724287094884767719171360160734561703151126285731242627448796557260615140538315365993165279529895405276182880549361030754368798827566218148381150028749925725853538400976841703508055767628658150570856748169412054388906874220869145392003967619835788030748658751191762615998702136225792461307063772339476306000773888351942783597366572303678125197443785850455004451560369914720762601658717023692732631918773031361390572071353061559781936525304557912245499768157605822197522621804422627855506324218232615744164475474128724494487451704061723802948867320598576206889691131288885060464238903544040700898812167177484838190632361027245084538806195459446025096351027572086031637720136529383790580184510571132759023135020921008575140825541003158754397773539695939870396038786584179579979241289846287047391853630845496451080989002959939535032694295045056601611133944528674628341237270191148352244480886873252799854829703498780751141216534245596486323349300846075315168894982471689077450175436573446263993191506859915618096867892555511734808470657612715758950234869926905755979995171804393108782737333277083015904320999630302734019741334954305935067999308861208562659609038030111771013815306290796930934662771614714911344831057739105035762721604938123038348596861040205199683842349929758028830222610859542215444808120226898739694563465122554794104771549336957403048733747617785569117422020298472988387614652655286997228274795437402082163921876508259320451691121015919634106010427039713381619377208748641063882241016437247387740968877145692501558003239834137943052839271005200165451199850292747468117648658876061694082561324904161636478707967406548492897037670788332393308894668426424507494052670614594908463269770351568869465875422982649940382003490007766539883218681405698162780709942370201948297368894713678313314418724626505623281016079845605221646992625568772338089566511460424173770123208038794609344320291495372019146609361037079026341515894685751212365798263010804082494926943408875811528254622996445339200502888823362831641837987080370590224368646136822338636146828284447005857579704114897982510384515933677717879935736067009053783816267986119871336443741873628247557477331397671467612367109240644087627977758358861358908691692219010705448524319155375468619310869130498031752166188852215254819670006615176121417257547079378127096821894108777491539238089616170345198647479634591027145314656682441460102019395502960944401315154901936198434597822744436908168584857399828967785523968288804314363902506879255700824917273438518908847980251574186357709513844823365260638187670819297133112428203200116868000339141298713513562791697893529789338652027739871956820125345133770445913140720249332946161427275430564578675927109240545999376173569848193567761885118408001715432487607108589126872655056403886426924577469950590921559165332282744214093442839175806859060568582898366210442596636853385766415700414579570813042693984928735087753322277213549366507781439994007888915538007018122656804881265927513469797327505707626701295526765118428814417045782748575244202107510181548298395261977996753134227008576119619678554864482266334190328404429578425952621044658774158938855979024940418992707259433904107507128895507290684230746800142616987505815525199807703555109087073248907017045141822340844959577796065537743771480713954169904927215531043279266132422901975814846423067421141323214934371189081672002910629425392461685385961501243039615724437483350303510267314758730348190242378271695490483892442567867987858426349490109307075049756735386482490612755990524854346090719342120347985098948473474145085746314266461310361939021078998813595736156806903779334875518638876431155241021559125636190478088500191516125820946340020551148384406406354830857025629767152133945178562040513950371881192866263558089788966764833850322795340339489369382436656902386598372773829472462799956945562253669540540513094642264472286306643520303817283244182086782393567436462943986037594530290702656897543907691970705440524471981005000908070217078656145358545089925516738859717898302438859622844468905832439990471872507379225777264652187121429644193144757398598343758805495103563281385871228986614423574191898695130018547306445034109456647848167925405161218453356249967797805846719303444094488213001072827464711506287896873814405844278490699520973666763769189925157621831489027861242730778784889597992083444708392114026723261757135788168405218654621380585919864338646422804511815283450180628901136927577168734244979175128756401919160790762443567162683813967941750694283376642330652698913343359607227291948937416643167918674273561795494596029339859263795990993985086743421626552605044046161806483431407881325184797882690584927245940699321615031800602232070229308427974551196788506354783183190780072955798262717741030541028509602361564621455306832836223968444923937754935872710401000667605960492445897805914664504621162758400988059133533901355465729118755683212582264342781099294511517263341520728711057709651507641414765648927803681969184907950031294208827138097412626253647160655080028167856422733570122553554105030386170349261392579447607720066070650294389974651477396782862897549514943882219742827955838764196977692470411983372828757929306008985808079565554011291596962906595043521621412463730898728306350094104975968941189993664625277300597268461710046259003832526435159477560424926097863675613853548711736018599083854750825143295035662909892102457789486032828109707135289941357865891316968058957369326474902968622013512358072990081774693039530474265793611487237510795591951509103123654198269443062646612954191527685059583580583592402648514916351916280268725323696248887843303556108251856483429202138686752475244359303677021363487711350121057690823188925557961385616353776518306684643576299404956952086018694875118174542963504184283183660899176814990566823222216493580903768611013865903125512681930532094455631761149139975409625970457425177008903793144847243178841127522987424124800783114735663622424075138389224195152146167143353153568310292033180919496217984379474313440918008960692111697629883541416654131468661897125737522187130522379265955562527228037028571701978283023308875633426748639512480991250434703363663053726348199932188628035498417422187338426318309633230474913601783936240377075497357180968517449633809093268139075987375572321079749323008210607971475608326303046135165310600315413359945842957448483413617487403958139218867934712747301583420316219272749315692579390866773257325952945872287842187958895465504779763331586967055002118775804596740489669619003299413922714619029364367732343103831354359816370464630690132881146251757418422342035956697531117971268375055551600742586975288968574537099927438872918227164743996898623216521504437507425172096615791767316998736877525253696899606913214016936446698842455787240483309732743776706342150660680800259646958762065275216452706371416369950738612027665928534649498444566319393494210183495865281826255363932581363041515660452280130644938446188959479851522399812621055195105008848740464782440377345629573670498328792355465436431516426352307008364504529737322935144478497982050855719769845203022774134274596482559042046469831614544203559665148139399983463179408842321938963577893161090733254656357353920327328441128137424029520899122188560264976668779755028478204454427521796136480922713973790432496402279643220449289016307184869601369783465267695985643256560845466262761351837638059413575989025502053106490650684201703839902152120821446421263454169868585214425934979180454920981679161310749743756992685455712197017964304648268706830700552046707616574523817492053038444866038456075759276049655785678911184839172334734647092227182051245324346043175992362703185753263656190650761498065666306730189407304061131952525069294967170033346652226160558866904932463095411505558713612371165381686638726304765590878831954707980530778571186659385803348586850491752582367542734214092934851688333883030256356535661255018018316942649018539882862158515698842339388036330714698908033937584465821781737692460731391160011535476609338012193586974800121382955784864350839661360225192805499243697539922124361631731434574506552089586770735031982029806365285211840595272181218543629932660043905082728490306860006794137838008474264092981265118069954260637621453331744733594607415213635944889020594401688672173592494863919497804965726559378628898577529359296200840906707616811559231685656757076153705543449761862071542782318795571976894932252718063988841578402449838080412516306266652624756267097755895367366781482851591956908709292343706085392114367897013464644242030076673793746462235587993586827024004854985362003915188382238691485944206619010191813636627577061158573760425560718179445819116866391097321213379672975096310515867970706768928081279061272459307807002406547364510990859778447934525198309265830516265040577496311565879755966418798363372943204253815573625758620832123644537081271735026569397054390414006964674549358461285104845290821625409986747391083225162296333756162290393667271478842833226278227814559799175844126411161375121508331172828371398946532968137392745590225820194854191152396531802142404490679794433092159680695898264809195636432474688192043508520127626563696039027164842332955002474866340908723482631488852157391552106665280256183963270568641532217575690861076629978247480670214897696960360668222624207753895848891066768067941999501201368469093652280377257755804533673481895574302009569590859821578724515556151583194264779194123847443614711806253242450145237895002072435971197783391394695178451197563242937485525830820797904346650298116280729986904862837190690803595134611452080816180202646089107679085490040374628671082438095512022314352097349584135557756724812615556288677592116173923302195927275881504674799738989765531406453753437040624722114667828398362322147246972370809524381788661117515575420883036629196871636789822276664650523295721220356348433250188847578334014556759198186028111183812000631597818178817524352543931037434116888209169217106260483317632072618707801912701813834859269203310589834747554613968568456436065013210781960870916879054749447591740412649291658476243414357119362540321655584915765044278030511266461676215139732767379780833292152592262737686610271151320535046946919980272677503146821283434400627805877924386476021537045328107150547127293433361453314298209619870905505618172249738464356248448256399486013391967623703431629596734536636471088435108436390220500289573226319067400928320437628277946724736770263234948411106560815121240508543866274189146344358109713104492791708553120061934698751154548600409701800421871041311410007619867407629334043901558736965098323110663017081278780973489677043525007756039041381300799799906158212971801578229155930042492409581373581227717978089948875621839942022848860814279441567072656431453338167612839038791221591361281283137824460597864393357551839327599074253985591460602925957953404050189712021721770284118404519505850604678654702840196305620858473286218409697969566277154269141621838512109035991055577102046144080894258597640724417605272933776304628843399330967703585382814515580361959194446108704389815510537221449521997977314629165727140300630023654526880430165511912389315659663595611422883317311077621676156938914855062238901831934992927767557072106770433814364614035108950965985940227464549557378744570616760893294705048352331895861373709403769369137511863470949051355157185414836433535722096435384691152361687204648159461197208845808263844214681861566990816732253779775193611634462990152150127932147036704653118624082346364039240575280091296145436444134138200248219367640229085165121625449672304777851641908597799830453204658618454662739534585166846847955068833541188490012745086021150766416770693660591121527474506946852977411815590072959956862479691749130430813368277689370845477558312053417746189143329771579730621102071234355489756211004410335589756216130882873331028103824147586782206413029358906519581649569979223892713687542304721683789684809768648365554629636964830021141720117506409926374681968204589572933800002941402567096726423418883834101155677133237527800803236125806223268783856554180403401556752763077007503158764087778139601440437610752840962948841715670730592293582469210125139456105012569272341332572370149208838605898846806414267261829779445327191675280690558821530527698461352922498456604003463562291228578729569698779929513425199430048630171388885025771054189323966215558114497095332036461221128330010583268893436743761142636851749152257310597082553886934585245400382108948389182712957515525399412518652527590585256129312371179402818439997224134297412417577895921090309608392284529098744102272793244308574887767222497085841121185310651550566472496614445862933511216292789084095377065300358903862512757609009783052720005645978938912865703468812694087786397429827572531196291017694532990659975005671266004910664455660253644393515333779895047282042147406030955210160664487975980819993551077034297968026177064953705545639550542893048261709893670606740575007670264091021456366695356504309340945967187742667904206835776725098266152273297563940388794450404218994200185942752305842986954674281504195243428357007052449100039215192061263502338521837180551240171416258949907101921405772156844942260030417577847993446043516765500816936729553590231348443298881880266933033416860720539799320830464966476401144072400947116027858367057887596880668473739145747934344838750457114242193333197686596040164947162379209279579945216090132232542748788703190290022480724423924993615735239192078757344368921713769320393775253619560924081593359798754159603669802551761219419778141427096347727722605708285428564744498269303616746990834160369630302090068344601820340465744049006834420732430623286832144618970091229665059029556822560826902983232682753613697943052968505785742944419285149760230431557347673475560393328706702679559053612340266732102949587090180849149340426704031754716661108368312733869351068814866689174054242402326588229893374563346201044702270170416622144166726728505329877719532843221660147610263058718799852674757479850135467978740088611185051593367314840302759227298861162577634765213761334176725753069532250299020281864249666668273524539050595085958816826564908488715145735056576066304841101171091455341178040874902324116897568401490897003989205352177897147074258693295998220569166777372659201234145816699526409104900002960345342343344590788080378662479297204055080932625942407340503730196621278173338237112570539899006868152241875266198401678361899795815549396591771712296568200443406057248142114525247143872329270207166951163558030115454136152624526490901788935956358934962250157220833557175697802351129545458108728122302371809702240649696111307085185620458576920271219818418507562444766050651813214392463737850896827070785674001684761385084398252591420478078446302916375190475823662772063067575821058465596545853402263574147873742626844170503581803694195401148085817469396113237512594771153820757204666019180698835043775401959784778914810439741606938703018624129166923006718342266500908313547083596483914091082157396185917552628436667330421922501263676115861626354991882400721201190971778917069633071600855639556120740999234590216337681652853515591659925078712838585439150347600551230266266207958999759405265129387441868783835139605953430921117805096635643715443898910606686863068587026098260904353430127499605180197236331023883465639199317786035840691888514811329451055413819462055078993147633868582359045068329976431407583359568908871007843836922731485045573251952120799599016710613200655180896386310973821352705305416198827717629432544198064475689976466192040900520831558063324648004798218707090709877612994060052571955488702145060600516794108780379439582842716156829011225865283026581878843931180091820019644039215090844156359782933640750549109666088684827566737204623703071033531596458088252406209210735211393567790766130583239676668856271276452677257798792322032346928532746168584359052994490211903093913262069760715795400609904997218678174237932220699856050666957481836847104107568675435475251811621096058881449193339957634518959615918443951457988979562167155677759920418011794267007619176552475586623215994187171634630718815889877175082571372607306636673816391451668363288146118088571422077400280302476089475242052816078511189774533432590101147192767067901110030169321818101979496401111178326481387695035006731587279297757384289396418657084668180795243942498255284543394705255312482858245786430611165691198985089400343877634502324712443084693259818787075510926234804283845802977345330595211297104768039013241114668783576560056719834414690612132303415116908808833051590774344220561779395674438663703479511360033046756644711113633499359127498396843569104393431030034153523946585070815772615935019408981285969269905851300162821273872966137585511456912834497485297557509184334721602670779022625470571473101647104176822892663580208545570366707083701436086574114214389090919314766548242304346586449793017175990806361928806821377713510858556566493551410254359588013779711451595103620245882101416362509229820919776413393739187629806392516270473487359426266918836584317489548116651055258002088139861733116470740158361752271711572557281890065255046823539354449668714454966061258779501833952647256678132751997435793311384676327694306115431076206127181397228764882665933171571479043714606409995573121824966052484376288429164962747558771538043317384622095237568350119567722483578983639392635803889686345496138596426762040713212915967997954356491271291412505225929235229250692855829526852089733308083984337783532582594322124652820752493941396096698843387662987319279049048694534353293396694608962069518810813325458742235356841114292043529872339390127546138528455206123319418879432777401524359481004148369580150781167130762583592666516224016194170084247752462057794866316495328683755700170622075258798359694716320445084280283648813413704230661426962413332315355699160272831259239618627978113353418328360258543567580200310029083992139379675057011794330774689508963134642139071637713394679475672798757788362082194367627633524802231861376666234725791229175035819144694271779552276007060320356264092028966447408867690329549266087066581089284792102423325428395597869065698724989026876484975033126188428354487555928790132453650284853048375946402698706818165648485838155046350837142459589285987419177722177404093210421702536348078200802577129528991397922819827031849136530725931488416038797989095100926138339291291322512907795436724915680881424876260570796747751536696903849100052595244253449687993536203812883457317940237634477918341606633614772723335652411562554136814140328902069693458824006734658672729748618544003868119138927382338111101496852696940531695499094483693562607214744594669163384226825343625857275988351346238005521961015394257201391154162634071028145827785113609112894341982195442621012167306472165841874582711160236952303515480030116872704159415976487335391248127393899467513492583451569907681968211430903066209802683804368715561085842738740839620270988818357979878701459709428899184906288621771893846986857488038647659297292586491214880021813842436142907098048981765274281572742223619914573748778019101758203531700377062717468255234153048506069968392665921845391260457601178799041535094215272979491673350386149918748239717619319221209028422843962262047717398609308840387099993282639505434730603168796024866507966361480186756500751275883711723257342343010096518960365308628978613599321478207214515483686874852901360417333838439597819792052428545978328147283580906153198222570699738154308654974905030563434623470653150120846445769036383857698282103277620371111354703448919221357285594868169646511941303471120691599267975160698343326210561824367577161449036019746051342082078579944544307707256566303328218392160654029307702432235743632729715191518787097353693043810641746130210661956875984513094545761781215984475138941460741582181197214862521515642279520569537568385402181952019029604716990522853928371184347895784888393388669981358672288655957646337258949823278387148746976152145283002783376503870995727877905155699823717769072833967491004302814068753450778087815619909687392868894165136601846704248577769165035012340338539752741625746038423169005978860821410518386310665332278162730119912442885108690544622390365753203811327043172554421702250402795487564696801583320061211226831790756586093140278540543935223100811206932789935694471065293353200119646438521627892147229545426569618703834241646488673589015622852020262149647997428145668529555718884312221759910184891664883656597622847352913769654016450352594736550499358415541165176929644246744613490065634909594186829243893794975179304670375483889975149865962195375217624368391555326362585613299399006631896616986744190343966097509633553320392202795108716312108472744837436149904786431381191895768596784342580720537261961819746070382550972195855614990412329421794358271845299188276116178472477217833944127469407108739109724952824416280658652542231870902378657122095223107520875255894409470022032552247490442356911955761640143240392529779848562110014724919117514710606817255675069743387176234200696975650804710113942702652894155147441313941414188578562710271780451344790143648927079618234322278681697981966156347827404367639457233372142707739352768467674324764325115230731776391418014444879225840859376017950180322936204902207107161632176051729708966091426178394455977911100247725613772338759412467723384771447895874377182952400342371945038130632917940370344979374326170484504380702797983497905829009200829735005836598155039131475522448117271631599105062027482584955095450270259831448169513442049317661961342656091124519588864681098919384391313436705785284431902347048188438368491463001974270066892060015714102503090768219901817459533611128209559802898920818954234747510830224856047752556340074393371391224415223768951135640782590030681894537156075292999250896291348081414236163236028712940263716493591869209419265333929218718747979511262171842655792316984728676678123085038751211628485080447804619170724550578660443016581097990496916879992249253110058955100897616104143794069722585064203544846317063869213072767352287567038065941427446220075060600540448067945283945100934355544777035288583005487699894711187178334413375868907297812572120727369201118866350417185662362966586182902683004725011396720651759636185839926484901786929933428529221856825016725318388482963403483227124654589025477932368508668623816385101330585884022332977910940151493601850148859904662007858911304467097096872321293613624203674218528644594993127189710993983623441296203752348920279819515715137985528644198461088167449485277540035104548769953221781517735877083597277290945444334771623429957147294156853144845517462516251333036505872414291372149570006697529277739094217152361158144569198254792245294095527791292865228059140931314572193244354264327691419915767845703652640354987509253640677961963740305051896947352264216815681592341538750816778385801386298689926586734632925922469693584784689262049053382121275561217416606543814274263394735839862511757660564545525445390244474048828851424006479514935665140372912991826308149035525771456426210554394381151502895068958575323379060049790841413229317477740057914220348950225347035000282242676206182173395408953620240076697731956596900626799821435857410856602958830970496017228265808458072077365394852298590750415826348960134428469741016498708518239226627486061927857575916851606172805562536741668595582466231655638913118062306731331266574883956573542369585456283654776297082300617400162505650876189575418489327160645033964976022350447659778604457227814064536554133904798813793669272153217609504742462475149980499653994224108280885403403555523555499512376622241638050257890958662453266838377126235028095044955525879308450639154965735378789637633128300255868000443165884936731747862038507641553205087020276444786382650379099084360928934707453212036175572521578586203470212783220374902359584743402900784328207423903763842481547473837915004065092860708500554261558078483126560153517919335698231617284290525517599517776606045140463810546782494502145918440699876894439311967485677068698681932171984584494066298261334719256971391872165007713870238959431503376835595724318969028151408417960035282131229785616589157871584524647190734427402904544869176669675693961576398894888229657794232718358220836048836674718183498518316763406651604863704528955897039042557485885339216192157906487203633068628009825833212532171477643879938133443567835358503516137604122045350108573659483436756476721362218837106664627877777545074061399515540208536060183266773076986056739697098339110301992464113117049552078638013976461200977077601026103250721517098527480290363990427315901385102230657172840373542860099312905401621431353122727712070412608152696325720101041219261891180510824356654181566561407860755281148161898012429839283010966309299655451143853118278974809737944841933633416835600595470472830286182546183728137684397081714174651600201785163103572997525403199325417667384392420338595099902357298069442810056485264652150042790950181608839115081079013947894368786127210947616795888048248950200588195740032782575018517934296366683717667887714923436685996833611057932906878247275691391327619068164947456172696890558936506300651267911322344072919132169117263428889413451761291008028067071861913982334216292998992082738276367395670787180831789501778746642245043332141673725942684877983663982655551159791490241671684931136255946071591134022015243310196485137143660192011735408698169304359666309116303310235382855472311913943927702579219205984740885034824100433104319394703079950551939075796357226983738697234077677881468740085896466012872857287044456042803718860046368632100604714677933461793722293291578465406048255790359076193229809933016987690116941602081241115516568157388024960184936935500639273451519515253430103403698438577060744484815721917732633585759497319373831044576414178267572629662929351110941363719864424203769897074469564985406854814506394239930722256570865131339609261616503223190716821305083661851075842445783066565825972256670940990388426476783449277279369947754668820577373588157234859807474253004981100121579026090280831476108717772663581008790837157658677609016129044938593691564205715229170063523331607968956980976739743951841552896995810004484103867815991557026264852249125255492206058780747408396789155478866372744811201799356654831518288912416942097367246183055192320294368423880789840327548360734605762984997527750988222798765275320002198311295339937850305147103251151486655480426103797677527383796483195849725772982171869519761583762864906763465801311811579334369670273517361691486354132810299713277707968821467054113687934022476201177878986836769377354936911781049007103846132615562382088807763427055471607990746283882870133094303598369755469206289730544220794364547316711912404572775779871125524941943669832354501341504176871916925466721905180159819139929740337120170634379772040077541921311706578443944490973164023107201129175030545362036069167276056502743543340599537508933777407203605562003338336165485113988100872236695790413539672583647495145232875625599174354353350885708213929198472754003481761621328168140335566415472914522169363038872242667056900351399402288507560764211039492085180823309149953342172457396966530629634532003813817068548448389695052487182634449504446550847947454895662548195826380294978571491140838676520570345275032102615805579587675716410722833143881313211029390778980606662198613809952850750926974408585174288028764938488607753892601036035831009225236643717591609119681873809930005351280610820516432103538130366351289650757836424992018931146757596311695331123090410461016349118760214312164331834181477749697908309298721602479047472888150206973185038406522929456794463896489415919394093214674027121068008186050246063495132126017810150911495448489381962064855651026326965143570130476509871737750774615636381790138802704829343809557697018509872189694234441607304488526653821399559447281890945018158584402330506891054893418436056428100045372574697225576427904375716353092280899341741803445681942004997701760675803874326069421385898801015407278403269416463203155032893220907045948366585894400786811826536333216220865232445026161591442627140805278944995111306084940828089522508350694633356514068770491265778222998910512359430669691700181904321881769454189614474279932151397916866666326686624470772415834102588941095664184372174657309496267856784593319966494423517414529530761188898184987954785102329649805652838629623873228034677834087705032644503779843268189947171209752347043781999440357161621043515493533835002928141121964540240981488799636161796875930084000035719048466111375002785965697911123032795616579012124113145847746711806949935054983531746783551387041178923928036800709765114816332723617566775047329125421024064742692970287154310394230971965360872450834748503201271327378945894333137947376364226983088009531782870060846428142893445076166410534622596780883789569678165836264627508721520377299305036114874565428439280998446030563759966978860237822492720873268708610503952684280306239929188158731442004956607804399228342734503805273057849593309117363118422701898243973069352103061022131931322734786354247430887837929364231867489585305171290739342257324688058057926209182730332974341703238668479415155610092397920096715425669875543667913942512070808647146655583192743699373270330414941534067832056360444636636430890223679238940035813331323391891258854485636646812833756955966401746878596398288050959720848521322109989339238405891781335142184303508643636705636182547672329295645178256174655620547871616042827554352257033624776176782066069784669470730393124318080160744741508560019838344319063088343023579746113112244078034348981371795271360409303000474038260223294635467022328432127030800532985300948886880646740723806790016373105844595797470382560640281601282490354453565351055542281602083413319896259369429215088336248948402630011851674485832962078120593169635444413511965757466565925040636558646407534232884281124641162146678172296689637340465872866820409994513164718995078284408920634166254297675397680591550192242688191943744983544976921296477957216689734186007711164841048996953043087937512783726315432801676355251110233514717444092267368650914183072191289507324196572467695223465566430869444668965316848506005511881984925439931217181101806036074073802973817439327730224932384157972124840494796686321519227386868790782178908150161389005794892655148024854900876474522785773415212679935627157248681763729620397534278560532687457574866172906099781642757672756009920687027888192852006676795187419612725125535055426261726647530881963776604712115805541482565092130441337160902238552111846091682086775302491883053147645040591719656612801370542678464861210387332259321832954476491282460466243517324583248440019829372805230409727272508237544432376597441833886556871809324206499116771359148214912012780125785658825487625936197317002056608708716545973432021965553738594489754014601326097734643568542568176808322701101528724286140498928446887934193459241763928237565852248175848261070329730389311738712964272236922447512531485023902660005510789599907463790487369797964823495367898035982739237323705991358092695467082238830266317289345938749380483815026866100711022810124816595397619758122615722263769845135964755703523384957468886808403601028023979700973083756845073061841913704439479215146983176336880577134435769390222538658982332896329388241520529828192610537046818331610472110634995715956167733356473223454111045124624490765857941247620726917067168957135252322444227799488749414324854716200432188983112796117626397682811231802777035068366032087853052245525502771325317233322582925487942787811761239854744533492557560835197144938042702970505506730894099016797032426559784381341163377217527624437468786279720820463729007779491909552278373577805953623627598496867450405516615591869559162954651018962896900302716757087657170541218876041560001146489611937415613211840553178890022734833750391710546257870509205327520499278971727397384698197514219017590400230722442935406355312432364893094778610469977756221888873665226249079794612005861255900551916965078273028016273432713126132266580978284775594154578952915975504087788699800271516697055366097684756174123466843207541029902990445340519876561888372866409706053447861870192197971386256914591150991291310149958808346990630972025460651940082324201908585801992499300932186120680404910012755445270038870130780147871631137004529645605110646763319341969067571841718790402813084177655966373048384644929126072618038982776200247014317314742610484387401907776946766639551551055473930788651596102235900479971668866016043371737048885327420585029677303612763445014708833176486679046493682808157776363651345062312896603283985361120274418428451814168821524522140847883256793186047365967693374513215651823529104055340111454729228796750374889083749982794172648432856662865422140154585048543469813244138067349015067185711109359925594365272294467367863112829285868334735247362809953412111144292651835800481362211587970606426995853867862235272528331878470343446497636960712537614858738603774810354438038439221283268551783182551673020384452866929572496225459443790096494991677411245425983893809389829299544666048988428499088891668567790364859202902929235013471297010093552922923721478214823909391397913717016209991498367854177134088074965309838525103296202523365410576763467587899567294740437376111113626359802349542298628298899415451074096734685191200029879391074470297211044321334023216247751821479978780676226195133480582589440157091065553745783407491884403994601038563050960355493598570518640870563667868593128892213762750802220522742102156737583385757845413801383239765560642993479768836747933043558362993846727013753188594655368632961335666672789491650441147186398367374178830719567333068542101759034445640511783449378303565020793003604864177578919036324174620329577147009128315368735537394565897983308163788595576715860366576207454381329377807626686887768926253302579701569416115068166554392186411395009059941260157756521533773898075268247618102485688536221912528376732359221594648378747858182798484461456638198620834068157264297394633132060073683066379839409610317367330284417830122304627568673750920281618642895274234522395444418140155176443401833431040355917166172544722378088027467718790684587487671221809028846825712540011406898068870130834132120689230080423776793440744281915187420622840771445081791579408607258379438480785366736097825614455236628646093072793688940931855066187569791442441577301381737140616887632060251378805247115344033204312165305625508437037295380308352386154420792893693607664404281002447054688911178978357067798306933645962888483514622120519657572414737209673921487254345483513457667437761228010398165888408091798329807782936854322399385449335458479232304810029744006372716144654554131361669224139539296275948033481155497593610451980130943771592106705596417559346292931709003365749375118339052122074822083361392931721463992719494390350108355553998232828414150226725069934989798833360950286811822230781044304698336219744602728126587492489921517386129512426208929498032580735325183961407724345327568087289906201513081462551050604537207056366984595682012033503132031593268233078072349464218736677986126043470313567001039958025178414751792592393042410033526500758922066235974805182143161233514644545933783632373215696598420920602044091558618228947192340555021070155372339835665544724536020952749672668488127540113909713123762526595828939550187549606387876243011958218882881084438414956516964508965654518189030472982618521940726059031578719878224304837654725089002081549046865080543999545337104401924373684858236402101123183134093977986131507297022579249519202561292848864103256030959377286848395744103499601924006167435180346337306804927501841134013427566539090805681495125120705834966089548054715454715344947075878060504588896888277204025138476165043401989939878782785025347122826362737647405061492363139239763408450239892746903673496822711657687501313332625097370235596081286919282483424498459016157248377190452884790857833947691386523717888772913210033571589107360604837574356310847093465458070468718332896151512527604483112279048471161009499370152767435253058544411475990305952257526784040804647595649841606317911030153977688501860374584098307022685846204248643724227726630165823581428289061457207556243884758529850016965403870239247991101202781347484984766504097821555248456454985355111472480466250365729093442327303018104388502807087641714537493735298752504667072470320027266497771601858483060951310462009241290275848289247309602477394996390850231864350757468261735871592470256877651943138099293575418027124807729208084443961475601208056952278180965423164464684852903073231847932583756182258302754168407026769605881553187462938888803385029843065740110573486747713584769806601011393275271877776787078650596373191847818275941855293506121558446222879192132094185903978946010515408510137773434563248602753375751263009792476994068611686860144772997412562257185645112350764990730021255594138337063395150433481211283654545774595261717530560688948827013178323676321379028619029114529256838221383020421433454074266039751858534357253582033322625014573609594261890338036570275229489161163720230378961959652683016879056971727788094225151781782381090950407046809277170673537571980795317688850988757052042092433631667920688981902773833478506529047512249617118265969987645188310651837698013300638612767335074667062173154899881439822112831059139911962502336236143073556905957956222739955228928702739208999041602841636045846950245222611573207717451472642828314009399023792635228429157028127044101266324501314533989532284555065845266640750459018433455602305735183122742020925586397522446477621440442476894478986468732436691824245039034929500425337032549040914554827617108891368213236597986607564251715706829434241148061123110331032059113099324351827843425894959075594075491800180067873785411325170100875816470996329643978158081089927338205771717739932992275925733190729699369133874996294879181454506617123453372914890251111516530124837801996634053788545150873073594902855438057981782807972303413227687713649282830579809298109889185486316460874539827366149810416087225317151686812702691396097705229370191692965877811394707875787439189520834335579907834199298491843468508873723696184169115896489164792274794016572273223514095414630827732117097223319560539037323215562326537905680072617992954224940512698605936883293248284225571926250614485141226120161862680151855521144801703905157914952634067976689263034429029043914497811956996309411628122643653759404240128907416463840772467734159425734690827539421681486184364906988496262087909932975184897530132964496027783711384308346142646285120660622628581892302303571393749060024663652954451590905832785741375569366983771935255863800872951037224426721464190152943829777508285620084277785428272998437124688634547629593254867519212714604302555454244694616667103102851635425639146820749286511271847472884926003847773862243232075278624291922102285829138532465153882207409231493174990196551996718926961922056193917964663017531085864358959392826499741644808705915605055170043490130743366084795114536321576875564921889773114341214372224164247875885933220238024149741592375873207750651468639864875596890404279493653140852930114995538844065941973277095164351707953688481004220737056391634932835797795270899011132012018505254724454703431720698987921115015399448673947058831194901175918754842509108709956604380147907626662083623555543518908026337382347689069582352061441028611059363129895026045932781813248100156214453210652294047988921858108666508305062277868117330330924901962577566020496378093725677932122556457166456810099270119993902476549716425762099477323809782349019690611151010095981618008558046399417878306743549028229140092524748544544216276673700031854782414198629762515692821047462127478871975952297800170256010721142206757598277695020720588273043270397331274056507673083941902956951997375548283510529407441652977127694843037139863228840809348252471337820217010606490888122553079631074771814548818804848151906319428716346924674630934037481572896191645014244469762250397443769749277720940140406632449660532678058799683681417238196512112767881426605914177928259819161799279271956608882987235201226073787626888942935732703348202477531172922798045525745855725478575217477535564492437926621965317576567933627306030390083138784223986549021128872831867834757815103710335500626238581676706137799679888073878759845334607167484462938754784974904701132266259097960894849341739461421116121524285423944832013923864626328053358560308480087804343619936640007171124727713981851147229702123985153446496536284154786909881384779686583038646348764037442416214770606552028575675430394431486776621768915482214928615975923763930241813136873278933996905817732296778691272248665406740227848374661545095471756192519949676263419739134228510127857143649083846024760367910801121015440772604329363951411682799115782931863123424273053952123069385990057529560958447165380697797079708187236086276820071493971383406389123141450495284508956336725465519214315616065760332192225963934958534775647897429093650592189708453970670045443617420813166117733248942560758116060160254719803860879373076679505082745053436573178763440733682081144348608260667993672345997373975114359629140316237814190977727192200107413142703559391010937899522582921435256365823115600066215885259503201668498077142838536522244996438572745295056148594292779802497729695129631972355411035434273746475493681238907449800261679625176222335521261140947770748053570596992712944189016291004521975337967367430946340892785145667185511094561047373855020364232267852498376802794060866173079487127561016870651392498169278918035784606079279773511138042715618900264371323541380031779466943752803084626909536228161377404854686833095915671699871456601440559115650836230192341668982698885529527773453297202640039017691339464530766322835087925168168036566268206010059160810273501480912509297189157680739417859083514383963035708127877891124471066906521239582335712466541427099366555827343566013569804410082614004899161338673359841474701289140122301058751310442460962592354960225078478999646614216541786229475920069538136387522198306054435164790470074730553842923410455073937200774169589442484648320459746941426369597427673937165184951275222086185727299474510169711434481144022846169385271683022832582812086146648526218593542976324580705598353364985096970868611297054759356856999831773623021928775166012146365134491829453660133021177317577111765922396656419736657692594423237386657651659144465531479056364265585179074667412325313452429986920767249584682673462668734089270044234884423907320057153312438847686614488174724577639974621048248735886353874787210734487091130411049900790323039541239694163067392591028356981828080815390731551482311215994879363372595359166821222899718166748910245704312526178974688680783117454132953841389290413710138912549759812587333795702468930567223360019466717975158067156511445130622406721884989940518620658760864237996568348124493795234312948840710852596526225274323449590233054731937829658831582373301257672232258021575677279366749341060881135558943909001612571466493924039874059509430693866408900708161059644522445697276042520260744709430330014839110175283580610654910119921930421206784294529427428369806279504801948462263217831487652298936123915174003193720451671937428772981549302486633662282403231314995887985057466428036334564156465663483980166570643758024819006400237221295929884562420666259322706069110520965290375065904774259785351771341157433003323636594115320252977465403067930319743986089342833361140222011146759181765130853879974651143329312390232925262147375118906897735124724397776040479556906105261896903802512408817170863255482132296248368490431979327474881356427182431087240935292984299717702936055609623079583991878799868350245752814256226401153589926420224626216453177370804523648347177844532509783597962562744484223613396223652281876976287888107320602215913666492556561086941998527917066305262986849192533661472662364399531195268065987716577885911084668051493432291046539325571410165327604374979833867087479380863964950445137166004238857102323525270058922506977171427818334166872309726907834283332248143125973409687139449501733137660512129834463400902640152301884623375557883570544915563893153506617160051239492241650755906510413462968117539715812850886317662725910765607748019908164251889231785218797851345912738996226290222058415171143303033681047556373093586174285148411709096472594591855930578269220832833769849855012610485849366138691856826714124185555936169077700506658680001701240641001235585924820592103570452773040744181538555272802407377887919266346120227570140302074264000043170833296384788255824719513382306798700079448645027642024961753784230910272573001579105784838633958407432196076669265676509325353413751585683786876836788811934966039221774624459525101730683734306351028615779087167381713794592761514646665965893134253402244568778161167180939518332869837796062969234047782130489504881774472470664551120499910439746680534739417833069458142709248222396770781498048893556038897019808007459426878352788469745441332088575943669825353929941612120731165791561798160065285917728347421428391073300677985496715755639686939779764885019116661946693417649787643273440995381835213526197233617697284853568882371016153970389735858209790483692841021268973556095752570388983236138725417728246837637004412819121027358132087332088798667243230086277557615921345404608544029447343558280462724288914158310788362045911703973161967537781339471415156066435346454673719859559950072431531487697098679053790096249616581653983827912381449967944033286612007970551080176373797918049473615661852384483241948555725716128007663109703840326316092388462257769202422003433599374906725800192677239945886035224180403971187042618471244925843443898610275399635335353290010068392046747404274545768111442424230614703380804822305196373938946237699955676957363492110212000184815986942304027095522184020965684212270869346441856165219855833260607614501388225271257985583432183872217567598140591594907520619820080674990793605173042672034714839724346532913121864948977552678086526576568744043553890072788664050606094276443128342985947513211822281946913720010380827438165094181344293474773678883472963683283025857305234615228174517867797907486275239494472674719833267251594911804682476757544283883949811464763267232911270568418674872984986476349126267601768481596533383990042941283020925522315890888142920292945652071419381993255905275113552713467493034017756181456855656019648125688244177106570450744017555265633799661822077799835510881261391131108567577988760177930617399695524435385925300591965185670814270163607600023340332854566534813800108298109266911099315263441936739808234721504459925861190700231461519928208078227502496982664243901830195941668885872499846810136026257034807528249824488748524296318789644020159382617693955182207257704088473859504150262265193766642422366982791708717847700036018461087301387491209706237799962191132949673985242392197067713890168686542501559523784440130445731234070901188046867655997538956152531110121734220340037476594651826649330920086493071203403310658274368710774880946241247830857314626027183651514202033490501688342972893440897921243155468712070101843403391623177821061075143657090525087203727152479445225960348362552777892325171581923477133934750066549052548171363117464192728089463614855387552387359255106926864071993776206134723128746167387851919062388954351116477839467106665080908350763267627530625799997736757528901581383969809115147555397732373843244920071110779822961672148888826740874226468192869650259565429822148002163522015796308513312898777069783441654718263249103892460506643670351336056443240587017945472626057484002506195943877524107429485294981863623584514655633848192177409502049053443130220270826574647919486754612054760516989674615679653235388569555116799198313707232167013805995064847137171573352378648727515125021206332065195243135574138109326497642447635955241461176836282557282275913669841970591074026532817745274269063727591211070800500693515606729995121608126327300437080973134195247688495866324356111461439356771189054150663925196238630085746905118070823895373690105827250127002702306522544459091009191681727590077883861502754965557244173094596100143563445359019018169478816379906520388631511566505578294915747843509728684199334444312406687918181726141868687804657842502068858365452140632339487423461650115332377720364480243171625301440326590702623761014455926013498191228769789998577459411226265116306589649701520791763739650794159566322060900516344659880158070173951494611047331505838437887651226124439084236887769306979000399295834803042264908816683767083050632672191716775951472704049416218527165743837381493921525528348343785317347597780837717695189569096062222595077300349561144478246725272437102473648077965076177365774577838399770915521410978268896831976705144048860948303792752397474159824145136866761468412284313817754219250633490382885257534983467556722967360736980855058350061128534872860468237011458580967721036347185465726333202137010773411657035395068059552859499312163348857749856226017747448001889445050239976661518958264989804965622649063958001897864874629817140784927372889794145541288178548430406587707657485518781111808662888893737521027758197676583538423169717314608238853213076702119425929734957000522828469127611385793241670492082751922589398452105421306859840920342639609174789101746037382399625218979770294184507506119371390554597649849691305452763048554545735385761359180228320199917158747068701437096150336537572568949868912503085173698743371928377306973170494150017758039470123475933433089515639662019117076151233680578420737195560479683344477643123033139647498797248854442578162538793389079190932611562287502531818296360451361410443370114014619848512321656839515749388295491961745663102206609697643897271629021516578915176554166316536227692293172073324381906699592534234070351679949414760485653287906279318824729401885526298478602930080675624900091346533652052914197827694017280227274657557104017455127738485065467756336599592458250042272041254470403874152518852706989117292687961169184831726932632303882585320966979076662971551565592147054231482364381958898541495221605388200990842813480839413493918530770193439924547838870799011593074689649777541643001145416481854116323048923054149043291189038053216830021918361478405486572549267318886860810671460121271047978658378764791595543704375363858430435390240792021741769389902896487697579809965974995603988183632730968471799673785218878951282234933539070350358166211858302806068072479692116556681878133317855377971094417905827598120717284490393255960132452985599916573191002643884001004742724252007282730486218324109319924353510966030539818255279279352243192117370495265565885453261459385493090474051995275491092082332068293141229790331239933523881386605187328768908269963739179073616993941425206838075584332913629874977197592285433200334459300141548618511250130136660469557550462914622981090290386942386155228322469623677235728864202136011025062872065351238370047742648058336542075678722162937347853161523916941439121627967714719949689139304007123243029357518475058863521457185229936634930992344491051215093203500049440724175598848347799335669605566110978765560838431466043061987165705307561899428190343157894577714203663660867166690412872141716074422090739743739356506648995481834355462787711436458092968997403170140831723297032785253891751062078557989571822528583550639594820632885421132493571704788507535082905395056688909834615589306469275609031884994630187575786941544033603855772394884499594422724462984179514310396379188931699235657909585511989863454468411290711491935559328200482519541847600086904929916306039635028627635101818948536515529741725933599357325056616219419497805982286783307374676461740368750498461452943088667859310133248067820060053027878467681347236000190768434684711256568762904164156917941981495493021992576252217187022928377176441382778949085023314806240101471014723008225279529100667656310518590958759352983950447761983489811821358184011368741982442013437516300945207098710157190139964011548492694694331860911348689104713769730710262369391653375694701600591212414688084648686359608302416719018644630244961369687914429610071237833224336557623464791659321082952206304380445921430290195845502555073276207860793132598288719069391234329849936301769025894754082592843163851678579200391056950719966174811475162574877806957218055055424382941099241444671369290001748768226772746728473230838389074326943802166749632755222713469916129134805792953869339942722687469207609360412647224535139258215424161276476993150740614977038185158675061628325473622561776365219397294233816912510831460783941292353276050611131235177927297023288268918838674953448345603829361008215700991168717677415230701093124160392647452610176446272672711990642863626934568539754669375388044400381968891643026471133007283286404846418491180997055507042863707876559197423111655201362564245252601745760107616655141723272184112697791332691143531563159704291596403683926325038732286423227762264846900106328695783379650840970842002155967511793661459002909440098674648864529979535433364065177776807366545046299579959283156449384871854504958654545573411465061849852021979233866185422964728259582833310698984420593577744730991735248309660278947893126501199972908587308111279230579954343605489558203628858228728918273962329607211361359319819500720055792996430856348299870218734523789432887812994597335594508190529005222688755949565285271147092546425124737262196009874637139743479642966220136463189664855646777149215748676353705733042884566387033376792626735537143504943675674003007094951331617360800393303941052033520120704507252195650160585151136823282356797165023719748317237654359876842154092378712170097270504781092055211053095482478668313976270771183590457027313434709760396201760577473504124420868290310831098945755368974017630619838527415699922520381621326143714123480666506639180764377433441844828038378430937008766886039980238358459656199623485579866540625415390947551194440933550460477217774351825170724355424911463528213684204358279165024562980462983075871448016258322834817750409527071572740159273780421842236560505109791279521652933774850692844281942953415589139458660308666026043619066520557377603601544833415356612979152077361469434635177015152878735725755088585566607967610771133328173532083495058717151811523224457327490306149284591976237950903347412468163022614179936833976341086039158346100845676615058425246212830969383220440896059158567056588443984973708888764187569716097146557702430547842673078766735039173142719888833681363307027405494920036241944633737200286563524038231800395744733328669906529274877753928633893304169571117712166751434776949241647058735770649985972244069661146546340508020151398878115999420225529266284004965908452309888817409788874907406012543816581508051992934045098148094976293508660573088158121625890742814516870245012957307906198850874017772379138811691119794676207371855431454474547749732905743976308826183218581920536341215322475087329516486959266013246625781719697336396295505545900494471096068318222018331980639569518173776722964156714168186419796982545593009637960385056534637042896630914809228199977616958509572467956327456363384072501163716466902408978247002478182922403173232831559299605590196367737487182579019382331960671613091869938059610423799686259247121232544119789590326031692113135659472698286059611540112634808050160229575426365132415153758988018219308027853495076796764268386830212409962824734681603363810078432728868532804365234630271180241357680017095111232203464644109117442088505613247807790477482488354599555357514337818130856241022632146269008778558595582777241428941646908598123256252380298528726739469711781362174560785898499773421199427557754481561069053594172762168538918502506361622759862829944039562254259136781713324500299880085893723529847783534422417548667174093879392370043898573322364238142703782371393084708957151294518731822306444956126008512327786252470861244712894631887708033302848056964847535262426105384203374279116592662674509329212482971545399473512033336077242761639816361080920684667800527905447729620123662450039166267528740691629662878083047038223945817130131984715465375533327986266394540447925714944161173272191070916646114279905964577797280635611892985799498825624685420850644507966693463984316595335399490492498751919185667871181538519304882710933891166542673338863117436461774622717113801450278742998373236655001587766242941150745126760962943995458903190042789709551795921479593660944538250931357968781915249541488279547228158454749565568555815435285961379613976944788696362120720086417450846504801166890607127666257304622729298798568716904414311704518941528917502369109613707668471557093613493870303871262511021234039751463789544309093632657407344886003764156657598961527566573629191907287564501235274848570823871983570272867780845261373175255841339530518701815519227265016419092530774417210030847162298849598314901976195963826097016145254740826406345004529612816462906123617716682665315003688825718742894104324036698086911600066480115535131524890196912236993863696103470023314087693347894937693379932787823808088745903533767596420034298712287555621532488286540349462528688016863293009371204223791587128111281353409298694482945901463212404777592259706801171697732995373461572146066832832833149247055785243573471278094612244516682754438277326046694208146264590045138769429488425875618024457988450514917957688443145126161396186018193653816364590847548100396426152229855483480734312621263794428412903790917122145564841183523485199548981309361667957340349748936416788916932146400602217862762872892045419442326710021070931854820590513795787259492008640749869938192602440757620609030684808412871876828230742185102967885412108500791478880056923056164730016988166478509007489266969672125915623648455983695205893006176192620187398475250169488467609862705919547585575066052186423393002145693638095117666567613794488502709994860353715449913195287469237246150078615825342785950032821946333867045671716365142171817815204096765075375134178903893578610622772792805424162468459780489228670532359712699735234309127136030372016804454740489317541147756453005840637293320941862093550960013709748066610657744144335461457052053396730788665690449530353367801449193953466524552144209782677523287743009283753366523090633952473498211946066415292550058585929379038586774932570219956612326436242260093898134446397695433411154603329118735804784159498747549604580216326560502227318514930810603487856526497003028301331120669157224473620274908689404610952786137184050129911649793565992908484609959867392689274554803331472799282041628089357817725973272446222286424137243259454932221884788701428086858526125032211461344698279441374263005007789655476695975486206345715333047286226599453994231358841614751293346083007280765735900331527795460345753576728283371459101982361747527860215093941415766694009837412462416216741559477843663666622832770695953287402750296107381440709737697412314917768235681120549894371943961327936852948086355496991746528194777463860847873355070067371266377816791670034631267698905926230862771820726795167539811260414818107618640835012238739893189817139673028761652496014111068448511617912463427344203537858504306541561498935735918404817734047020543788775902613170801032263335630122843215833063262249223114524281967437437963687853998934060389692639317350108356736633463929497117874399134159442827781663162099414225646074302097944703176596338463258414648415810220788995095954366492217182274279749279086173536561956528109928018463610595573070010114795115654413312988406551090515499006697378827044597655664701769896946190929689159855769595239804179571076557429794231992166704548265356656373048026972596783730885047634896691665167698384398616233013027902826336276793859719818804927581526324278685943916491123375618831620586731360477898316279211099258807560782868775146656109816817700675397378821966222023025682587864750793204364954825148796333499267121459855745819322618364745664739400049280349243696796735511641458839650244665937765352791320778613958833155967301244024451196167818981805008404561063354883365336282897163306644158739639055902497032221575782155533790518040069957143389077229342074420652943805463859776987184934694595829634828140041636382970402741335553834755043622765929443728138499736484798409540232097656423147791553125883443117508134067531323364480011215799719468534317969750363887768321155227525302480889630475617610803940833457091354156818973164843339063953372081583156563589726111504613463534964694545750323830294531711544767010772910422335440149860804638319771954222430791859864741156192394691777504642387244382418350590987347917251345464137364675592840975338662478828086616593152803079919701119553818525702135785597475677771318265773978242021730103694556012803469179773940306484920201609298810916256511659039478073568421015555097189356716489073073385704906300865840831184225137082906772285606780861219635574240842772883008625303367717482005960847821617647791119317532855612600466210712862987268140065738643800056090942203503456411856696586295316307505400199143665724013450608051082513386802335000366646235162735487196319345941536091321609690661150318470459171574702778573917575744330156470567494167768247260520224500860970711814896099616996339559525934314060689763582449081613925916575002940330334223914726529128403877419421582715117298933880398280897001903534367367375249065581508731039621554216369655620872059635403254584990454388587060247994016998220340259434139468864392947142205093361073658901927667279741129375971200381186403796920378346310405819359097028100265771441359983992449599943566668912696561523416109954977324112116871445926754423791677216466102402612059567131787311614383923184270249180007873593037746979538017170184493944474660063194968760907829172065970914630194264287980395709031322837506156903017402787363485361292514029597467638850300025752394772578012166823831812487404200369668942835502812636439224353791278121750812438802912151370165809528264617871487262653565415185863760013161473526828404019234110294930947658495595393448265202689638269069832807461564226663629210041388839376200240847176533107744915763286531383151908612581048765902299008352437860643282637430193136833151534904618964513788667216503229106828463535684052099204185912493163498491876666116839020592091380084088277157880224640111817530898338772254519238439617814308181464250509676484600408303014846399710901051626261659348497740611616656629856654159438885412144264496968543837961355759110847439188841475366694331164386352997456756858588778042975186593587903043207549394938007494279852887935600664591546285373965760336369750377823045324264274564827662165535527863242505556336494287129739770481079277504941040345849195341957007952983620281332986544859603202554246002525151966334095386173329931855049220346037236512538508891122732303480374240363294543331142566353277413281322486957378377555642777038744859595059423933515801348436242403565327318618715259698993531398178308594908942926046697298899274467524200120006615159118008241658965730915940397236321276894645795056189044424831967347054735191379445972815536371594958366401524520988748895492554781908332097037864436533765014469166545179708868880091798416410997574736457019767993145593893714109943383811516918846737032703474433087110586364145886948307105436393552960635385920835382885553608877649443128896206013013459068582459397559112606603340852974974003969977431459430024184871376548027813921592832809970750731140785724833460687033958567683965350050436458915252118145500094251350869421190003676530051012857654248642303938406729490377040631997726553636919996794532731692927266029225116125697399400812406563731891642085373819747140982818437597025451983887799709710859314847750056492062720630329987461380855246714932944919732067042205449946549468639944105831870448446226486143247300889710313985397926735044187908941494783660468914197971949262750677485291952350230997112696554893932764873991526354080104927024891434946530374716519748266824818665297374822999932316871233133298462156820428191042563700544999946980830055025540540253733888270759163918070173951825493073309480413562616656499647197083438713862303634080157993445472899961609128651030711395501078438601777579612098011352075261328744041442877306723267548376300293605353198885409396219312981746446297578168372788608002754662285182106411817442559960427833630718234575905902938548965811756639252035720025442130845418964532216189186673267583250234285553779788300962910476206295030275916887266731238373697528287399057112654960186974302166258503269074744444258130581217756855959904429424801062544788542471353639176627912020313262894213187016326711827485784588926006416076600933385026669440395653023924695270059604770775452540615739801720422480549265287946288647902445140594112516258026773388495420098666559250402383420637489212555109406535732240829068766163790230109261865826085850425072242133789791452741878053097507660036909627909108729741581294132975496292144592485109454345092138241665705491751659344417440838700893278591923665080016081478081321872872178628893610298168859815509407275881283123215683704759093254436889111790644499564342861743406320494814587609328705388981185120741049182391492595709938845069460390217059593469123828613220040309459250234696147282370834021738184023465784001893973037607419071756052840768992128710464610052790058885462301278849139171108454004291944291017194661755991051957458734917803834967311661635975376696017793826824881091321828113163781466213022282593544317361241047355093422190230307723548973310160188744268040408401241703075831317542306121639552168454104254217999228162985706472889485390293144821680854120239669005095578062379897058843719007973104455050033284367951458468072850270161979011990171121754068407345590986519081721729813291100744181890127803426186856947436985687831127616022494684774901856230452283801140895071188660259331839989817700907138059947891953258947968549998055330835220443103769322257949490503028849333350240224469968374248747151929096845802424571612077228206132460989317875419984659771614878557190573731906447645361993850412827016814599619532978776269998478778184509774849485499128946791476591752749602475715920578735153577389765763579619559069476509926132127750439864272021104169118537068988336084577110897523652602977980744822786828129431117296423742364053975454317463136182445800774785963116280491430602261596636426793073194112274091994956805103481367709575970288376968117381028173194896655795114672287316594268911157190493706350988887673326828928400907452339547464658395324558860385419145218911809878677104771220009729001892113679209792402001997459722736772103402391211380677882733432899647380553598385428232657274952335076742095990067783308340746107019979422648034596311849818019268179249958343000967109888524331062678578848150188750758541997484336790756793749240669063697171721194649203988717745696697702399694922039911597915510783947503328408261469456813176156083189604120324443618426029361210338672073390315169311657218970124070019636023522268884060989631714625274193481847054617576985782269056653381315660867147215623350217398481450545535700027500627439527643302211042212336084134491051420743654320565302465156519778560915385819792000362438660842314205138140864217827358733080599576232269512028260369053020267810906868236873806091620680633561033083096989037929984791417693763256962672090153028508751039622012945350398929613566469308168460547416613199104284323037607248707015094803712270617616351864864032869661777137124462155442500808269925673100069750908764550140189624581756211135672132960501589704343965051965185249553812166663302400940989741276185846166991693352327032286516129507072418638897752444908640933834778954596275207055933164624584604028548147661004559086002340576706073657714353229612838464439561754188069408673677256031547139924191180777134108758117332719693917980387852440457580694287524956677772263205275755266273519808412954343954192815054198500664270251035056881404820711040833489179832403652065869833514151945239568031732288066038116132288743170389849785867591030632615548413511465088496788263698585522503824417841010523471714756233819508123482737874901048857063388299854625974207292563213909714073500312726019092270404288408064392152512915099669232830044175454485420741379444810083264569996028210870976225559817753405789173097918594833246777068244592062461275213534579916117676907213378687687480857048708288130377519179781039609628755779162118518356339635167934552172213090403551159649576859793048094094109360574368240053657628245274394677871094323704941327153829365508587571286987186904901904541952484463101878564356761501652452227873300073254088180510068806127519984113351270860309320829084369198489303814317494235453844968205563126686650538092430868459601128384083039812585064561682368814393852989726811652996919189931660275774267849129732393511360232633921957631600390194786436266113987217018377814845745908595385512792679495326135966331954284835361651871804092777986086909269592036253306399849875979684869989119790418991654871863892226675672690271782642271975445200078129844981445169024248141066725340355453380835661963167158836800279327273521597251376906784205911234365252040259314840452414908978984638827545566480324649122879838394616620415119189794463493730747696822159005254029528446321784287797742956150915600840457733901565821502144199814227299516274177601699623767525002631006926896594078070621884746882745063202799051158697466212529424772462095727393136988589497628385370886483941216444167999687209915054586255548002288398315946149137152747907222541642573513703315227628296784818233754959452017040461744291888803442348491561350027497242721509172269666297136216183827093523454990788913384429394210523223574180823346274806424445095560016965579140700846000355974758231216488551693498472234851532607836880877386339025842127018323105619379426687073911802448055549990053151225200294507931229781624534255113452704982439201101343624327417587847797087857725771819289664815542140578613348888070039247404183375465660983771725826754752685951008544669946394573620565250237550437578219742553008604349498931574754381700558475713979504743892328824037696611028414025541477804117711299624288009245398393486245142328848782620474856874615654837381549491089886370478332086967128378593782615867338687013475333673483726830959686683794832141209658240018190185499237836282249107814647851120612510551018470090998394685278406866743942573259797127204521591767218682645398382347445557881675264917067970206446231952363059492831623005417493678310224727767323255269306736816955725542879162000741652192721819591011453856414271003418713731816266367451576712523255472904613065797505871842268621319852736709955240168372857687197634845697941117642108955528577678888593972608962624393791479223395741369731422285833261998040832117243199967682752201872748450798818705720269457255983872809682356076620272961506014346770060737210662020530767709427714711718039868862158707334914309353748378364564263459816187782370567786923816588248310281446528915066548804930881445062602676826370151491546173530598896108258727660090291535160839369566880695517112711800944033724099191622742821121936917142508126854496975392092528387042358298863236751467213180216592333538589892488457472632714914842652367379673486122321999741494605715136039769258465034879956078846394780578134949884115549392086999602824499957987259815301854526934740495370981880525122861916925491406669412388299378525524776063632671357073867860059591698856098942620276310106318842087846248380468324863442258447174690063732017786717074588748077425509836452276423577483763084564788693154860059341362696074360260850818419063715022742020662849605615073062262229432946437889546670328578765438377417594414650450137159417926398933367517490767644195215974124893703068365794033282001326135501959981771577763103987887198662662525706239647925798772143040242596312287135073356107664085673723297364704726532824821652828954127123905175282285259162458655408662610959382911888912526254355174799059577738204917873807331435315580293544377705981278430428477208976442266384014989008676340915778223154613455119748590785345021869314084658900900727108444033694575113558409591758057316514331889891480478927893145074336580777270632088720590247376700727109023454015208001915781324766379578997580479765027929768584064220146708427861784072514246363376605719647655711520482514689744998557837652793915527731481705017383180880102224525895892052915869745229919520954399031439754369208615653169690488643865450630095715020256742294049884816998634550621256595914880676663973756234549630502740180168850444628682458689387770876848519866831289958479461537974296142594323242182234361524056837423912663337304324828378852029616889902733007940126218137226470073552306928509292787277476389412064036388853459806321151131069529312783868723787524948372843767972756102622213966718897179767585146373904758112917496778113233394629111640474180696489601155833594299795300605927133953728704552567069492455210183636036246764880969155523578392683253663593515641924867457821203737450990607134135266482228414196912192369933505320770589072209711878024857464975665631487517828748515753180335322570611546996820327988075173333491606568059781292333419624855756854492157781121847931209240971184744439242895883500364784140329793755016599528464749934087464209671808894192650709979029183124837082243137551979977542204810979563322990219427344881166307635395156824107345517450009879845711710603183579893263534835498231164157331788162718679242081558295536786815066313792408295634337797270835912429195188960496672762410060691604678630988641606677612779485737140447968316251015580988212201662177934049894768837108720944814895564428774575024371905710255520107024184985901289002729900770104345965574207851080759115568760472631246548936460340599442421099473697067155264625500968656838447504850132711040397139000701940592589929391252497611959762713615822460719574281757524775916123660569834731747570635009969615002854964442613410788304226638067764994900732052254458292020326239175118464732884406532431922713608862486640120582811177595458218940715547658168643677190445462875265142897503015403224241613523634353424605378686677907517011762346283735340828135304306677882877893808606691920757142004948787794992084313968084369137437799910930565560157968942676451434367657162828406740418823868131600308487505024450847307245666264520994842406120351137654555165745820839788671318717743069457765092164895949689375177715601578186654841563991810285200357864354461208908528748102051875407696388715478297338515322882181491639016946158947566382265638173357254905437606465229578991213121332191374841204783524899777493057137201891651469012211665291406491921164910425807729923115763338929830472358650720595069735025298717350812548745550898861180649887466709761923506752803920469828878287334944682027379493401698643530960605052961820117468314081766309891443224545291681909885990404688572608041884381584522474531376897940845734757588407195649147373083025769178493377384257643852980266866637178898049460590826699000150207761471988210419807818160268392184131837982975122748826629419864631716248726112466865828585536890236116661091833267150527804617276225648900619919252959087343746944348324108423889836702360028660212400700006829101912267569752887306833385081171470393222940352218975032643352989199491968431267384804052583445454524622717752612475421109550268735218089284440860467703613980506171265370751255889074065226558580796666576515168698539666639436451031554198738444637466480437007247157522897138621971289283520646080970806573582000962104169381656950447177520068901468692013046857316396082815865645035354805354492712121695031268614194502359059429035783061607609392726051781775737863550473195089933289174143070170986920917649131622201990237574386750428371114364608756324998085286075931697427816698232567280271949667462282476647059288476420699514888291562726622640160803860295384366242289113557646623919710669610255143846172723872660485990090836797552654846679186413423109748312715518399287767274084404222372683661252064433199653165770857922689978632109561881490726578196542247462465086172554964821113069036394028514161935526706667371283115338038382719420969294611936425338480871478473484839948798702161745070905772808328640780258859094789669887937647041827207302062647129622895852435341852441623314612014073599565969925469072973751653611969093008462610678932342036593841160020521737803900431033931634251319899981599217947558945731407410689771401203039737658103746632504136829773536239692071532210858950650139761375408933351954996793838465891711493381511026419316780411618735680301994036666185931842652162518678686199790829774820078818314777250240336220259856483672786011758295492119708714246838227407282864184573693243864893842550207629112138567788717746651586124141428662471004854688494322534645887058156786963524448184087567114566475317526930181559479379078740128799494827856129360966787448653047589798743385864024860391694276040331895894963243087650030947233904658314427176777741471856783856954639425987658356601887873065937549425583895213597961005014729150199722290316405944900647695837994757941371148484741454642811114895491356647072870960090035992901503002517166250677834084326846287956242561535265298999319214260873663884900173345191344482458824746204922571119101867306877755405825503006842231836813775554175867156715254276151742187393827649381612515521931415268007436876573562255594299087402509620950838939691335229200519394452911667635618581275201408147639731133040530024353446327173740044217396208395747078544982705918656500785579126807411901765618990794818374283000156127812109350957290369459291303193268040008362702844827152328752122554624818340779171347115066499079883255835088377240571511338087667123835691125995255552313610576087320111629575182983339436635355001455516313070509256613334274449829113723541238578219059588078970751005128727416365333944953493236376016113720048927411877536377193214646623626834170182103843055008907766381295827977511110328010976913561673068804459301519743414556303198217950247716347628048749794714723849035973247775518662139306490081792563090083428666670779920938398577094317363794311538029584234880016692035881236154521167077016180631073278981500615107947397074244445909293344543189643275618280965063644855048965483040284238017429443542895994223173271568619852666387841410121157226372847557526686716316585565167234899487958443954220706543735485927546099323735870405234073212251749092282943986528158817695591798768609774074970650604490031553793599768271592538559605456578093350544585989375167543980806895289955996526974007339436656648043845943756812664606552367790640881087274589461251188137755727956368920634662232640601237397269980185742683940729259522342512947142876646239388678563666487606707021996349507480724514544782554907316082537314125309709210470701844885504883573468107162324730029554637847921485775935943318602456891195701514149393439608896953454266466659808106724693866294734141008086544022472785771900210329015041435869071462921556254934674157812938722943458372376305483743311736019341855987340695990630315035995685877573056535584901176823747375402773119948712861033773745289261022371766554658876611002044431794844848130948258517809661887512476179613146594931045937190053742584384564995912203130758762887639042643655547381680829909783181088913455566353682764481270066412854513563351515266546664701192697531894028114711180086807144018250627981496167846600851923395388039532000313979686647813830347205523378801256749093713480659200067027280342980299473361666018667993128142099059296532629663826629606281792693274933318997811788387167279673963385247727626554422837808665903997652608272103310162956025388054305555598112801795419843295255860377054085505072596285458276729214504833817656677252487968205785156885959987987797538071809412377303372450953540254478615391731742726567185015575848535054977855860768679278730243222411893042240433678190399178902969095796803548251771765809021375715538882061050164883530935180209570551462247226046952401914052518749505426961224328065624399620023003271208726581236819869719153723410452759601004631649313748674682211337275244222111617825471531587007920300941585237953606771805722643971529559970345947537677726298077410491249800764576870128189147648722874742389733109550994607137094494075381675397126480716288305965326214873480764400752967602519940700802990700349801208643011140833311046940108313470562553347131158729699925851184826686935659485489770495317075050344714108072697230792360467012310053181111407549209880138910294139122768486179186351807282286391883146623376465197022538979613174592276744290952386096050513393994189742151059375808111563342302907772239673422152273040691411150364290824055793864684032690417532589257390037757837005513100336135062500513188436467365983478138764053498353951628134340423972252897293044757251807190881053762016247678912966496477233536747882476822266804231305041301060093457329657295813620570861674763624354125580599495057521551120126051709948846942769216596928613961340790827768544624049740865918627233019986938237646998953370981553083291450208510469902265755190820529511285740054502944121195754644721043521936713881216708212177530862683747096828085394080516553779226151216519116479434209912663325559686706736750563301934687498333450432221480439490497000001338182137865372038838961361924443448157766846319233737296212276059779645119354221666166579874199683128976612689705957937615894670549750304609429279974229673473760233293524165367228324067278759493203334269052020890484707444460871759602262838334353745179180173662968669624283095373576580725747669176589370473269986360598974819328021876791231737184636747384835382762545775276405503634909892438196485002502228211302452506766812816063172935600244422816904040484599473869675698348125338115006815725066982227105075831673124134294221196604876492927736293177619338121180805424625652693471204584197326274999607256322812002623201544365452898799161015632615517476550732077919946658408970707302988304921472712065731677688924250780226550347998476913463995106794990989911205049731524382923784500596299566846358284496299502827783399559092805988604357001865403771523085443334285385317582894078800359812554834527416369362019873333353039443041892025888650934049690503645699219468821169768708451647090106116426785895879183385495915835954516127326919304879525553394563075149543804142270003322030640572791194877959972005851928393267950389880855768481592027533587377160156146449546176289341308880788689314452137164323441929864034896776384375939200543218129316357431068217675250428197729641333534038249237272010176821002175735126112255226169135373846966550313125854729323777556919660430156376674190582801862344435707207265528898882501799537708570474983614780313104577162722586962462746034122901544420108507265562699812952034878435603522524126598981842315568952393451377707407585838026388534488015874210705185144293509444811776543609444309685186874642670771005217072664805524003049460784123457399890162593021468992153108820345419430160252649143143115664110747419560756652594629198638344530976228702008130080446326049850095453568439615252657732994291894879989085533073339214712380570721252503159449444452203954427005405949774249201487131892662301710354407108526602529408271637194014291112077855767627700846393159633795088586463717562901543628603048533744299662370609750650140628929619083531730979995552854353706715808358959371309016854939901872146527736904289443227973217648444329133049066123595397714332486017807383126032753564357892586718481229910831886861598884559614192814732624843130205896843260753925505512568040793834148205204008349063901905562454681446821105068574994489868631208326039474324143388779068013089395969049904283561359747642892241047309858152203193632460479024887748697766099200839386872274780838170457682822934783854605747208259420279281512682574629907148509265889523727683098733070680500627352770093922784763642248427083533083502915677225950547914681423658450651668656792628673094481825973778147533120643826278031947242462384120452984089480333113485061836364152942272419098810522986500016528568085191914090265693129321916384532540003900562133438044601647973662703256151951136003080693031729557331202966146872604269246257472076012902918487749956974839021232707023606604374778094216279477164543089798259637045362211870952423780188395309589996886994699923537892786701000106418064078868041806541541686782218751020651705135427148456114357380854652899906412755539099794907581857003715674623764165355129425288314538471253551010914638082272382861419574320809822741149168605331148486076005302939527868975059519519971064960156302250101499716275514985462890089565623150098123704203563686653193231008232083608869883883617817925509006252666518834328755245582580238335964444278799899162400214769874236136439557568627050995605877158713739525032908769001462207650352897984263468290734964414829675460494517258779655456662864935026818349411631203435142483423499692397074944739955719357431890896946908174347407857615940036806988463693233489778243585037151500134393169827736808964555886874696927266893618062246522401354674228807136057389578685302956576792577190081529546467420563244434491628252551405569693210585874853000112959543032091247025122280700710569677962969581465478776429296758976471361033902839431801525492823851887278330652916021945675635750044176022067172199721211377296337276055484281419420734861118176121967725597001703616226196313575909866998329814453663345826763453924667438495153717309785740069354297567529595702181477459453813108181801187092024975673891826812155386760616417680430249462987199295734767722280506390313578494590160856474360580782649705499966604057752188116454329120010919894618562986698154277781798072484515395178416017889619099094117718459810555361460349756278046376053373607973789280938054609810371855117102644259024604637722842309530590388748015073299346180072348197888276232581814120294510336561152809562066781401260672529014682918705649913904901036454155788264498835913860788621257177299896302450396076987880258876132245952607337945583536841347020953249260492465110959343347182636740353894358811080448572494227693017593614855279628643112214267413608980555824795771941486466588695731766659102053556440080060951223834503190700022271678136110484611536262022093359640784744196359636128531052119869886858340675601400063402090617249202775705105156994759828893979527941285112885447306565747470535839297980437569772355906444095646151671237656011971829950948042049127867197901833459599047198767066989236692569595681186455773745527292425955832910016979616370528480636290357772344272538683267820942122044061228323920942720618455622052035531772985190603562557980768496363024455734227005877495499174392361813010581330902061684992521957366849691613846887547920344441212224639112575404532004592331756077296426464511008481220926305475831448885959694729132005799707810560739218920638919200784283508092966794196614408866981526044847508814646016847578101564027904914634487409417034901252645792963090388961427314727312315312296529680524124056344191243549785511553029985248618463257783549845815226578528257335085812185586624529344653863039683155296150422560280547139785273336616436567425577176352910723430485740117112686631252218758505254571425909082285631950351856122238564899607395596930829931654254246473034202759189210557374032047504478743893640862292254140616447758742081376111753655852808957619679033910918264430956807129319246833116031414931057295051309062271591568056381773626259223915771699720683350473831262259730210724388901563963493083746430935083017516547388439781238916974231847176108404330286996117034255631699877637237591936123222276076894559554548158617827358423738628617323679573483372971053349460093483841532418914133565709011199779183566991490245090080336666495656956666577751500825518187426123724880146574400929796221229859384259961125414118503172100042495153108968126265161284752316423173002935772386929928766145556543587910498699620986653658173517636059081483982587704941484604244123319514048006558472394023324258262290582507474074770111582001048998162165258561125018718794125411933664989936090375084142281964075805616317177746332418686029692028323700546985059779729597181109162022281761349061885408671387336534128530945476639475062132110286869791402722021227797362061677998857368514517397077594106456432569098308240331307410109670374799125596123083737666844348485016793840985734318708652149790755141362963545053263368255246565482611229241064961385471194325979993197834175618645372679991960123864131760708864755999074822450120780376851921836151902241169812237735398409566483351871287305773364890159438731662868354304316789198074460861368020564690150744581889117196046678934036067603637843450451569040313827911806947065336163778810811158112811196447040890610299049948545978299096951735140903437093249117040627385026924321393828875008367933709987131266077501763318535287661470984717089065940955294953371204803387655893658803433130726209323579260772630177749104633354703152069506622981439917844975853213788623535597670846929671443422104331725313112849603519901513094461051892743494581480683601043788303017516981231607023858217386680710469032002376874481710194362954915004301514257310782206731870597539771696964546520521613545403108438779438739677828478401986995447662929141424569035145251444309706496917053431798314649315629002887056253110402203262587180362630245952285661061791023090240141934186110784660650416833925231716932402995858660717679779022884157495071954402573980616302764496904595917847373366881607359812582012807455636607115955380717070142358486786940631337135864418001656890924084063629172396671053926235109763864747999128885803610291662434420160280470058115604782008498383472893867714091278557219536221122298927522014767855429992307793707902567416787315553689270570357252233061420953374822452242326358928293779415015481071263030360136752534278264614342795247378693578641568901322069248751550439936148920918995933182086527004421780535171113906775656366852026815106574263755833213603146910432724999769188409607762671335702842659074429679640201639991745725326373442816225390080927549042014274123810422207578297827015857216321544171905784693942335613193205633814994686549723201115556296375305633290662754076619038222215519099931609157204707017101234039434296095983663590642999231075254013243708478198123774340061256402717699377116035973155208893695814120632109128208736783816821147458090769633202854318196626506613379332738361055751722515217942098044015107123957072049390697638672075280107913032057271178494667315420506893719059690414498744034130323997476236410312953054164156873194879220020519390303438121627518989756476220764846859194771225573801923614063679885532901662135790743682529260824279900355344765765507845370603984888462576896629893852145078630238985723893819427791471417808255420815951316045695534193477530799087152568335538247316257589217073255575320385931008304423850853471157838486163955141672444518465387854141124931504517849414910288421935249598284751129058538813731048575510393449139707585498703639978832802820806104673662998712917531871843194889904636095803609045227090396709670060414874962269821782505408912386729495530686215564961909986008974019617769579243370149470870137967906336423794124833554676190940570494607970747071743620258632705430719202795083967571564432723319539868587952784784828892242326580144475541171827015311311572216416887036816435126238818855902058871000019427714401179143004154685492318945226924706135893619793238873637895857843313707903295125419558513481254368437642433824201925471737153214760712094583388239181105505888405178350582999474748225672105419535708701319650572506093074304270089324585835907699032379141638399848526280133311586449471826768255372187792047675136198603620890860600280371127269057672164954097922383936689289697172989000900675743516125586370225095103026813355239866906171858848954677738549955791334026572135501057868070314517305106893102103526633278497578844590890819262005599525723861125935121282630599084019105487202298633015234895262320379322178484559520167929614494611642244094984334721818009483083175989137095004610122478122201884505235642360745360901173399683075193434949384573328556232835176662648485605537161504058892792150478318623387485422189805503819894430083906876681707403590446038111490021720097041922292634550873155077979470593726076779889658665597371435176301283514159343992235708363827209359601961941813900014216865905577428621463062525460415544240881884176519245281938546238287617293327001582444681311714450266506089411714218331100776356926545848104013449197578704289514840241710793554353490773893068431414509285586069202125571857124308929383201698735649225605226732794756197841847357203096379192224812104313232881258982416643753562184186389686298098914440158079463300247253114985021149851271423829137084632403013219329097071325493461929618304942932269721412889799477406205633123167132729102470052171026003255190613076834231708293694472752782589578589791485059065807623121072612526091167371883408191288979831236462918406375191755469073492471469356709788750796610849542957402313719124197088148019902161936172864263038163280094620283594056370743601541296512797275491388509865940256478238476725470962827611028888688010727258107492638242462097690652091961706770735276956506995027088405810320575052238742028096688297177635661070742704083304583229759546745252170190240583663035330845188558069940610165220928467445158802479828268307239471838914041378203355565867630131332784174943033260057132445245495248897019117379112448466339338457658655855553064643808192106329251207142208538474160778918719041218973356394741627976437885926743833779134133568894567999010295133675517181101516528513187561496909987846475557235931111261218478736004502105888246591862392084062535787875725913567408969316974069034516210641863997694934727588021809123042817768834539893475099581387546921847412483116462623823424958362095277224517968526078854055023861836630829260525977806867268173042323650282111045344391825273721484377094389733083151742256610180799160317261345347287406510982256974257257234684954636426139697245095765039135562554865806828985872647751789827802626255478914776291101543798946195403912466686730145697631427998411734260679439384499101599836251788433863964718201833609948494947928850082254818481314654100719595998482980490335443915219349512808648717241655302388358805927122359391541011296372229205587135614118848749795932441422493228370818278686359809749159175730922757035001869122210800414645564789603244852286516563953056248575751995791046304519146978275289588998997691575720007246887536109910401495407859273793058246665230481925081429978565298241792369521147988945105728497727026640815942114799383566384235457150306326527522660403749175182260669395229728403873402912196676869135216705087876709166699863215198007172929758186774562248775942544332876321870440539079100325885632143678237724574098315113939964236886983097908061315165369268410158832751525173901434487179661363887272448243454492951501729780201122347220427197209936797931361459705070114677758461052090433145916523015455253978861779543164919900530520560637018881787693542291271892666829554974341052571361742135498336619357166195286435511356230417094198989121140549276353174517343630291406384904499890357703707108480589723064155477898271389431098569506846636611683832228139445768496034256839479974222374236642199981618687695462072008533215736272771447006271089506309737075960994729060365611564151869617968807258570538239127389033380880703669288612334941990303571019506971565857683615941669071192545470790004827577156298691098422803044120400734441785755015789560443297172322578197892560759773868134796816448199671341413080585194183849697206836655702560165555808477147867380088707905064578926803669107522992216247159692800414518868749242229018008708289047772149618573591627916837155388974343069537650976036547389629400003255452680032328021385874761865249787679889163940461937763618457394178312103835888022792182391165889238127870807833393472503491655523407699854383962771881597847360776048551861577205656832851900735319890406570908780598366939917691878394584650320525329055090093603756053581020361841867289675809099650930298517722797531780253158111818630043634622473024905403459669237902808619812911546214740786144353666613806710551209439474394207257345558401379892256222399388401943667743978490464800131952652531011155742841195861486697489220792982816741918160594901754064872696969589020168735145808160326228793935031755083736138776931479335260914495432288633147197881700243585766491067303467422295138145347636692585386038017937345738668742973517456927234372637625550103625083286245678630977623488688324357676559344944577261248266516533847660310548455669114511277786106169448771192443997457493710111609682769136654802950560198865254221955883734225584476130675482339558248342902446058439000803395297011675112483653931659317781005682495334787427333537075489021653398268747371935969324018607746160117539093825778761442448220068083440302462669871928721048710553364567816391302437004458750012558147584972094126151130011531229586547219908546899282635418932268701348395694694311668492310412620414611141488102212665500894104872957425325289292954077457472426736580825355873907244735403623371681356888248775407575875308202438912271824471543050110519332263209243561953107935194692691849535783633042653086051949357671985107589487288843929377310242357436014856467799354887425164621361921131314153165744785099646168670706822273518035945089333501900529067074719437202961976580488509271574477584641663719944567639963188431004551360826853207131558932279251616733085700491940967142412746100895422213688407448374548474058736308447378190941019112688517214754098404490848754423949756485490098572785186906704486628062081653523255149469800814377533015570592576583223524713437481653006691512491676387853234263532455823209092627195877893165659247558064640444332618853786406217974190048212797602629673275379002920413892753935498834619168427959373037299438259920634248750555691165257233367470708442723118725437381372550795309309852664488091184858820416921562782979480085869441268479525517987912762517175196084485460573281052208255718209033123968694108000362839231187338421262339680654846322129475720507100595196587553034832518205854573986306610383990929317519059468335221423309627309383648930777071145012959433127654449423086758368874874769833530533953385394992709164736349511768221322449174173099405289634447635922363934656820551776128364640224472134554407200408533835867501455734453284131371478263988041608504712106771192547578189550533364354387193763310135167858277496454023116818519714986221544224803918200818449780730882934362835908837155209082021434753687832327395251937442082987418011393680080258399936739914575885551377386182315774800476595482901795241040153002675927513294518151708575889463146924658521340403708126363096252406248513171846302543788662577200543495806187439522823785596808645567755545878343481695236641837530381686856282546713918260882491192686225484007685256110784594452775755798145648691879835681305996544589314178133419672199512334612048851473015378178749585911268296032242153547745233554839182898084002419778180694138343115750808560569494706550211182657256934078954462127309728806519248996511310009164436117734148207884015029497228643478421957091580281267718742966165599868178805372015438237839404185297921329564735922426082439590867892331394006885633141841133088888771657275904525623288174743671290042982507178221496507095822988236450932856156035176304527801985227959493717298338491367920685023210370936672496901178590858596238180483038448902223685434795118717764095002548883285390726028096128667737450030324161431528878495455058022647750383832812238850035419312156731351920991384613952988307741041505037724448636734281309772466032068255759318360532554815145180069586920185796347778468319888469530080260327751989909936496223099200045645956683707956083313828264979711434599049852194513551764629021913599645981749679311384572784425543544228963480933173012137523897843908808515056591389580479294539006095832167080481546155415905381767404590327496563962307888304474059890829223971827248543217095675731110060675059279490700070950982230590341679852553985924367418739131951453004419915069733332896467439702247392841450479771210243401715209822033307109764482481116063384358339260108841146998414281156793815277295755797277943403333232836030720512887114600456916536367024333451729347950517290823227567925789310493742317839147762071721396421395292449486733103252772250647598895878347329866671942043986837522531300038689984634601231243588009561419551466774109139960965694218297994254532141713085242122663076909450102584024938213962791092395009265947937588889210703006865598835489199795933262706020961731474977467461509874875179489791658901462397546068940021104036133174971945961038814189881336516654713125072753169777132060725864571113084251502260398021782625277877696848983930575630527787595593845872438137197652462905314484430905603906316922720653097218294355238081139946894992510985390453320189199799885502499623606886448665005860186770809802677882153250247712739477375576310691146600060137130396842346010370269775533687893355836693676878861374157947062172662767711926217130107515516087210504604210493052198135431507773175805852211618830227226746255733705812594763662308933705843325134929207448399737132661346891369743553181489524863652614612627023260851052179009737337822949628947731045048214249451995896179307943880530265848881745089488392768534196291681647307775514140059392386841229917106077678140296706841995342787981147348844803489601744751678647980573217900332368640771140922301136165108556658892110556119269365447266111724922241663904551194134509617668360140128835447664160612504392005083146930397884457563288973465604596148956194084100729238028112147575096308065039241979719080482883106019387903243486576518878352189934847192381852003843715599679690681151808965591311052745619505529645818160389567821623762629443487169222540347618016136627474351532789467133072195840504012976444940971685515797786547871068201130288018460527797560580105488986925229272490171539329247591534803953728855027865113090206379499295997437085845410243329179768068641358264925412834683844021480469001180739133149908699481721632982033891400105553569531749229836553938524662302826289770442636353800458128035207557491420801352959133907269380631180146285010845846599430218729550829106029265840342384995430209010345833592762665444329001488861376657706207224560188198737053740471218682135739485566515000765045897293439534727081504486322844273132431313599046167784450973594593758113399348301782934103196735593019991374600255455879890404776306760184219916459828761994523341474907548556028047513460127135028719959104644347249979295734536010905124973354683181840018019019352426398450124747163334799890159190123766132715656178091921374009002999106275664699076487706780505588776096050853417330631964637576177474239551373617112565805201022357283704669252646272578627921746881018594529372099391500900858575888319943191678889024283901251644343087613176998021096834647189325009587700663370042336569778387604823956409065563207182569149552044282996660262199866620233547464467594545078200396899841122649347940944822189266601487494456380766028914144608157507443558294484243989609136166082213647607564164071121525917674025026587146258369639345915085395497358492872310571121723276355910833555180178902778654083048999367762498090021382293981963602351209028322021969365879900554645513949861664088991458515840695907172686205705580089063497236581909124853628312973943005604195727757169175954228366441998424444468883879662544755157406918613018573689866896357896727526265675994576800421113173021206768640508333157572303739502395092453917912567821918636033603455053486953272138410668823982830630404650778101958473354348334633152638031979069179051275179522982025327989136359311750162960968069317662410528809392568414574086539156537062339149134049425464756008039611595870486586431553541335978087112787240769077149336472463748275958483023824265486469162360364442508717211173264026300402486563166515342850318195304347732217798416162358309210241499617026073723577383746822362179878257125361663793947966790096116872480130548106706353930740662231886900533497982336525691170229527814859392468196891744984955190544777634386711003421459948494892086593556647468805975110339902512433024475484316403514791155457317855864633404910785589965304518062189694276867120245708954616149587528599303220034624027690525308046577189451558992330428460087671177290627464940205487252137280205462517921962222314107118296723268133899580941835090690438241770061470138938342210370795462238587639893147414559824472500181399848434651967610176592050345661035497352139561468457950984813967190217721668479891674503301310315599889517926454864779118358135265518715599729817605072238670881163488961830908071425714004554679871131373659481567008242648952950181072335895410675979844464964050968611681698028473827704592069388976426329215378256318203297366187539578825578712662835745138096261681695662192016041888846065998813846153027708280132042224671835613292990473404378685337793724377821777341349683678535489385903218802844420831295479044559131136621515584682479101568438669464144079494790203350049696168504518690466515683625291946124707191886249199647310487948169095362185112622430292956535742150780825552172998879329104242722339205859045491656198284553785645105092101442154189167520408618131951885632161181486178713043518482330804046273939721097806101875844385299840471780278138279158029698476523875381855445324153409064297258951675151969881369920470254435394458548041708268314911629692991891280354887190813678699486587904333390170984417215041019465043792277020636801408031243337591119359133151952541576567904759369760082458378644177313572273682309109272657128870545422434998518550344610524591893094646500429178635821698008560381418218590527541350823779388701646421325276213304680584182062837305155328723611877790966432955449866433488137402308795478770191095613359637763059072377770640323397597608761518698127979914744280903879518586305119655402399055912338500850799754269813440271625033029949317554367922597165291029284784814359542422968802194753733387788269874129331903767608627860108337204259651539737238428994268189432184690171463798185636631063544256479455538913368242871613601138608389386804080189379567681315494180508108204340631424623807549506988802593964360624611610626906173854483670843749865987293325973715607654262963916225946208594274502902600827712564066042649262269474000158147367312465123592740962001587226758010360263302638230440216654438488711479400941185699439044321649942522905153303737533433139327870813268150110465796880310962723895462604141171639827079823980150514429553884539073098265787046433490319729962577241814088032922903396270977266909988795770846902008678803463372757004040776465838092965238320998414064745435671930488929646123581508517366898903052789852557412405717390015143717298132704512912979628689059809778235831666353152984643073250528172919348909262991406974946594560360661503084263524819762658458748216542254610098016668156095314227388335885367538241118438199101108003530642193423682706798896716601627022688325274219397281533266514354221682500921543050991041747242005965715042256897672101486652028166083475876124162372827638169874333273246160560798703169433802295822333224156692329427058136568132964274109840062689381476324957846757777809955596899251496906746441454413169847768472150910504867418742117255425381883554748268889322799661815157316948649281636875027743350423718872184863658573825933016027009049149180271212443273360333656211828582169198685331357017701885083960344454124653900029885912038527167440269107227934286175190821243476447181641992606766982251796978398740578310510011536224637010808272080413260750246213728771857240652901153039091300978587529855468920478040048683184951258079685684637941432894227527230858506753383566481768537737128394761069203587670542790048544516859484470347712154129733788683043980033653183751308414389649388947149886399445223214671659439806483949564598111465922965001828899192273134612221913190374428599973118045206817062272647726596048143688453562880523820216782072761590587160444753550051891130796125163121306136210877705087651079009132687946317488962462926120250309651486404014687662879046040201916712487353764531907028452649459191699185424326292826301813358560211497696293534241080373921213313882443171119651571237580011354707188975690323583037261984537524063155997763179394955652631461492857151362651514756618891977852578794769801345989598530796183582406957814338444365373729199365521354155190341469750743628125737569025324996458600884491409358130235220656922760251562528160159128764941861502637992255915291533734314199331759668119481854385385074607406423477653489983133219310118680675202535923148474865711622002445179976875377014071744786083650190432453455084413523530799702070102638128997837220938941682598711521913418567516029222907861272176700638838691378681383692339889017170081253120665940518419913078353641154373464554084159164443569530452593116685753478352248432763126477059379452612589337031632864228886780529217364789004247572931188417078160395975858125120180615288509866851922890782287192929136241822317976694379989125771322186283899830512607064952122946917758381748956514440570731176572443921132405773334309142601188855690171381192760311351991722422554186828266576787138137930405029284090954786965808532647981377292172275058496856282537866520608318804934093711277085199139949620299138357246440144540261689599494479752051902660941661412071596994411485559737572333426473425619408744145545863697308564609084283333547354773469675377571965619688548318710262619481857221134886610118710002329516352757783351068563050471622498786189076880367975347125680918475331501834514537227921510463708145914164940759922908220758565757301383828300427592374700100208311480793742894550588109543538643589211647097575918866754721298440010831714860422010264107371871468493365176158992721613713347829807564590696411032766416639133131951289579177122235090468473240228509012220793133029196411270515865088835552395240071169737910677589800219647036528433068178060585787760742713021940299867771377117170802219913308339004872583654533780402757858205769429868479959299782952186563311757500017881813455769717773107721540490218719838058147308804861602993037855589337754918095795186431861700174544108238790121635595301169590769558638242432151751276707126939407161596653952928177080473098941006172555654671171629710406874157909180651623521767686507560261015784612493621794454680304971570859972581861422001181783587653564572056591527022105438435249877708582351184256583016130652453912127827721666429102562321493015828319455320010321514842020387200256616685469648488489486062964127499777483294099683235477692983239259039882379466940114456599024148165100992125699404119052694967767528676956163703276134368634046240355745569696763681519042802756395460640952726892619934057772935851648886689206091395551494603838128425530890018035871634491814234037834197085845124812080770474232079757055453340666369078196421342043490616845121451478598180803569105042011751274741277551734702817759299447608912204394990969811759008554300683596071353049158181755820760331593339226906321314574123511621072879354403262624529246736484558218220274854038652124995177881672749376294680368971477794462381148411282888216974742378594681068659374937479405762811189596040643298233853404165770151311710105507368302628239057861328042089364692619376998144621665992200639318832616085130548800256165451575364505802998363482962717417063526599056898127638462022808583981882457333179971477847450710611312402183178279308147191330395994622763900579595491540892814085893608928439859263396648015461181275517570980537530220486566724192806486378242211107169052455311612034865150063481019050000379516192087832331623400715363168440675529470685944606552210844047394524771719255404563752437058624774003785502778686044957100959633642790419797959047950105330063134543140530456030765018926575905160793100499393427812689595165665753492538625564752464434093273082645908722104117678884924880612712074654913289467483602227845979832363487368619527069053568798366901902162621696424984044483951348011601793052423489479742118969967684227032645582733705814462415706663063913793432863047249911371805633662202911651536761600373126336564440016789281914880004957893103441579781566075934075931466281739367633927012684080649176264721825514533366281669724241363106285867403300743017914290996699594391847489312264826870800909093209604869298503907975340973309432722433250228878766358489826071682330332133068538522336804354772783922047943064364821211652762144077422771232626332059558506552027157017436673741303655951873970712818177547178567547470201363684382545969256956006426173538184561608779416267890895924943499301350573206173393457543189325599131026654711654330165211872236913036696121103041575550716806489841125084484431954625704678993660766976807997310739978302626516650032712311417184911258581251429782717600589618184036869768144338951520202007975904054472868766637415814834544835454898686725308773547212983058226409375615615767218574897839027594996933915801909294850925402007461253471040500075636355420849213740440041031546883778930507332299771824700028675946663906533374299190472122734195368407704128565083936991144350513865123211130419514280266318618568426416504328738736127905328910462132643388618525628399340148834422664446440605499790680856586061026090283414485229895278538410824881384913779369186740035729152027809338244432624525412872929980579841835776925020592535071743138483386072920248097940007566531415108636310715744523752656405269808536947840632563615433483932399007310125787119086922967454814487760676484004014532668679695313053702051978800924572628936462105712417715204012533252215227989609928873849615585690618309517202910596927514372439915858438509512819860678782561941369535302996711177884163246982725842139065431215494442747021148308657115254151602307277739346609516521785765562447555597687535230352110731164691645490342879512914292062154196341836621342988792245563805007601261500806401026838779161968224570955473133901325269284875905997423745215279527807562893693362015216589542105378607936520807791690422194471119094939710265542073163696004906452290515325047816742177235679878647142097420510835477158734336955530441931032703105529713005467078013827114033986085332547610965601544840125299999467645926734076784962623879575278372745401239021430992825501476215551237411095318414939514240791709904285115101989902435162464188599124036869305649805736613737867009785046854042971960908746629982411576285408185212312562642697707244623994953751805405746710806074433948254919481995393817227054970547694310353718469212989474010636577995458091038762778087683451103937792621512910264825532321528189809845961848274120002216202634821381847932844787160687482072909845485656635972796272382204554010131749195210565719749859696376985148244988167021765302642512389673272646188767764390473982195327181476457856280177748311801230113376821213023201268051553911659502043402372692721254070539057591228657020477852242466499076423766906932265787813236152501304826106292841360669897371298971476266754529773081880707420784357348889871553697381157834903930226111445617838124297156182178204808568359841051713360433705012182970540132554279388013398070636558958874096245060991828409130685271896755707606988427320318218699586015923898258454005746739012581648572662886532023392071197876798595489171757173371812695944869980387477821069677687970463431223120694621964407179896363699576021425274154121069899270676099524789720413618151197009783405878719932445675363405820136984073457705673276762004152578193545230376247860917966814841084336047898272495935388725740181736419299748659755070350458009243496873695458894327778919528143763608363524053498165532620473662349376630859896808650146127186263139499253004030757439398040401658896999127652998902001308844872170797030011530355306185497271091562226610131488246272810297963086131276495298074689288057446462008597195684334498031020371567734506739205413210138195273144431947420608058749379113605848479262725755444684959411775584539146614606974253463105533266649042798871896238348250717042369649338504803968853387622795765361040793600000477946438814824755647776694130081475071117452209594288306691601132778696512790635673421127290569632171083471285537989056920859910242504434916516971726574787004513786664346606265657790376592902424428467267135523188935690327881520184164719923695736018626420340862240932746813809811387278247808191215962408909977887007762263284423759236864315698423938102090274333021440040248473271382535587831114742101604295917478869340728027649022569333466428183936183769064537323074282813324506448601014613948390412412871701038577880811436487261273418339695335640215855134390017436362546231975870463070967535838573266522651015903413219804150292156765864914889049089174038655302228935238493258445368769923766163624321878312395996207248412368841397104645357766706322855603144572146971413357612772769485654815596774966287190975686106311969673879090902945404277752001520093157798227024673200460491283108539847629062624859287307462352031219717961183662200235751907966139603609607330830762962557629796588902055943059106990595383863868291937848499291283227099299615228028191231977305227621289061599331264923909576102772649131530397860019277070190952339066131999241665999745891629943099119336202258609250005995561695930979911644649284560140040539168866968612741867386100947548943423215410209856269108923671538554504887313208401159555465988720254324217485507752421464396625853227390642721211977349394143258339091997294542315330058641073637448231270525166748574008019873096728164877576689578500445785348998569530943849087269414353051943927250357475459113010912004202106233992972705210192833077861534835396343119599656941139149535847104267096823100632098610619673186308763701644907562123277656215702248205760977488725610176636164852285125911181997301548667072850799712060410362777794819248858229222475593025797942375409339503553062646993138424081787457519692403875388732496238887148161431699115663950026506620089835902220216598605559080558200555142094235466898975599238831743935337808854488887960130240620850287091792528362063031582744656556546580162395722659317887626303300080849213604631122077053170816967723623692068648387995190933849534253801540642716751833896767906666543497257935679738036131980364577873776537271304369465641197275035179396663794214105980615604503830548864499613639803413723876383360313082945898716702017384953872287713872327918633118479347036629104693637506663497518981301806533802491638648443850001365110508276882649824190736733721144314764406363345696717936482966029911200149716895401756520702184533186595975663451220145251434624515448842005402934149154390309954291818757425734453056419874780727299787956237684186475563523069176653250385180489032504074569549351297681167219554711041558389909988296712465618326841041978602898970546864657847294917899548209542249349932364355982222518876817950857421712426424908212132858059468253126302661882271608773906487497612301745772962607562941817566331338034985414174853662790375122934988815423835608429731622754412716876677621966888191284644973087575465194830766482294174300506744086451833714907243185730802732891677829280842032288584126864918837321046070498155246850039590713720061462572327175030371761577181796815509158833508408251102921262342136184151883000729611416561436564516441557329270253672263970216446124912355093839782936211511346575658636588109042303204478510671979903305927113455283608267667093941704468969086535317125372108078698774135644705675151553973631685223324404377591063542064918576330630600869267625052554278431011433555895101852068395193183346576908039223762714792869686630683595094655615165738073368850021968701652996356611902452005511327558848338712173999216986626811989267280420048063993738982159739990633940191305241329459891434309862149413978650208496227238983667163436692749156047597163069494156380057699930200341979135876951243080787692346508335985905265252219920459549548360983831063975001999056289858909208656168080529815850306642335430875824155720257283008351708781743275898072740320665561566338684500532016736014089027258537483108443674986443661620441105194856576549456478503163688336888461847260019736997183245930460615444325201320688734224528931189179963726109297202010045405134320452941702049369760437072371920195761496673601533751263438659841719771428911887401042442896012195516362639738759247719103287711871299484962816432956535613817000057051881218768325540782101599136681390465638724923797058378113451607861476132671521248094645113315112223674252017965206232206083873548895124058034182010983502476634187169997091682926512179044904564576379653441331430189547802572891190792741085904037013791676104991992283831737323813509668569363009712954978271596420859461946868386926377469437089096349248174520668650145409451522297818191111521870870424939841249322122146688593583292876515895433047316837942778704150971316371116409305875566857479156970898342815447556225736961381056483694999570471681675517302561604708697302481874333090759009883941508878132249877418364627640573189617569629821754834957822593549258221788872162254971262749704089864558014270206102827621934276663609736637459810768073677534144985137447382831741957535593274846802783109157947809777198815980558104117326603355166652152367096917521378531227867314010064316269020975290575364781533829907363363342208231868009455799303972394917151039224609188132838988574629150356900768480669620385189501601095072631778371466230994664645589764857823727083475551267141952441084316323769107264950578858555628523393552210373740415591386013956073950432654137433024777728259446482887208303881506883202016256094988759856806337735804485782151623862364912003132226451684748318787482084764347247729515491053103527121742503371585950970639166040416104695960795038428851663344901941450396153874225442287268555784809087964592403733852937202766731216557171899079851783529605713803419318963686938122808278329325874760840135629692393238595404601637972701393178061180985012473176431040197665530489281142176228590248306168565951376716060086202180762242565514980517780717599444719238512292242337640447753278866288492412385209588453804675770412535712400134912853420122448159730760838442180512210125318068370781098837974184510501688787197372834119268989965067572851392692684674959006505534406796287405038676336618435595035502496764649992309023340406400192828467692032051514622006181400557659122247765347104177396031501406052051356146674276281686658819181027901037362832857607668317349044532362925919339050919473018700983838187378639901952254258677857820334489632931887124958930175876698576314245073590089621182528100425599914920437116658792649522327293116884954246128051581667419209156711597308614052555067100869070967173045985322547795690177807158251822170263052840080768295829557100022417859630262780832169972117634673396200562795514377578283719857698910081135147372689896319428376033082972758497255689398152933167855950594464508053338606883318339169005503908486205315678535292804720062945519005544760784359554650127035168738860990472646325679928600267567651932710530200755528522152678930778434821198124531997624836202435657018026750673960599225659103666219628298950533468844076411880957708734033144354755146175606768663767153792891055485564702845470104090899837255669145481629440131815101762240625529629043011330577790927341728868972262125456968789090161636218639154637294305597196379675649478593356210378695722911210768836709704602355700093009391222348428338843813911090292834953203453761358763161094109119035787833314899341313112027575270973957926387838354220187153711309329166503682428024958394253522621455338207240807026188368727274990786015679906240563956766199122427486646923408858873986687347153019842879289558470740940087475344338572657299037691949818528513367792772187672675141696313710942584491558923111480088217794535746102103426965733013179041852145498654406097845013138231915251574047239416005162132900243858257808661849712418237625305349952975324174086055756650621272442676261683720683428232688984737901288059040359614117777792216164535318974123879467635875067029812432912709761348528548051793094327827692076989333724379600790152298139288452211576481040117809545537025996717920877189224512691132326821643016647805866050787686960199536159331060947691916106278998520924288255636442605319600673660735471009871783081536699204860833406636340706892737317955256342213774218750360477821610092463815379888394651167804656383770119677554925283704683530550576005182118897616096232175374649395992168780448955033105166928208314864962520542435986177259106603253070874483293961462099007080910720292785648163558372868085229430367611033607854277231312298175410600708838949586279573869376522264841617228337062445974696066825224442197923014211539175356599171264331163949522127495284697220014205146788216618897534097269436033455837838441380102394559840203148327253144947851016533922412251186581734926197863976745082311307259042782488461423673240831212934088791381238514235950182921590397207124177537177625559219556964184439037755282113112787305767392895872512598682859769856581662668879685231230209748164121853160780678830981879696088833812650974260346532440058877679492332156814913382980157170768390406738377899104756767622400459561739135330109097740859101092882371990633641978900342381084071404251849471260604065347241512896991751244339974366583485139367195346857319611416031838118814845898564313330156366962622809398809506129574455628382334588029270112859115477316024485602719638740557040203928836478819792087813621694382328963005352978002287497027197036942654595476667562240885028999691597270304472229726128046173820828959376214234563000256615678433530306724670537400490236594482392222889795753316953406804217201685436496865648292712416272448263533139292400518370218872464840009511159244591010200413019265035731650380891576325174939081863246393355946225631515961102973902646591873398489666905973557397581006311631880406086519130424040694273348859553191108507055885742134756161052299836722222759141729075030950217659052683254972971108657422818896542793079501593803819470573208333737688912040441701170351341859378680264534189555958031963704854995185390895981399127795727084750599589835404489723250798311703573765320835814885626012118577657004864017739608864220115114231014118674566144456502116834755922987283464658548995181170401695765810985588901102048338495805271410222636549433375563645676361078889698559670164366730027968476964464413815915259039328553047925212058225099543883780579690410088547861990785104265576382831544613858057838332433670011950669599019892552806113578198308509433583873294032556628969580169034823766204755587333927596455562831750565982597901854475607903086291380530094259100865768533315118643176827221461266193110462570360332996017154833946964007546688885705727927805987783887422124020840589995925746366246735227171923811690878477566148514774456102490763039644040071735223545494648914010643276195027343884386713375117688309362019291039616111553047645726556416492833630909396596426347928182678897028424661446668410864480431725784885061510825391523859111928947353346218995569153718489670436036632144662997219326273670342090773383288108549388779163463274513921012159394038642283151315612916135542594901722190583624126704870586584454322954483541768604316191475229261776415946158908968240924178893170993444739592928268094947291753740444980047034125641178412394954833626899711717912550526169212710223491583971321229838675857462775589242776914037410957317187363687079355895136877673633734485671851001252348741900546181397603082630273351634612880745424229673846047851550429268472877945137066326658746465352852217492809461062061572250821224898867462036609559175034176704954589985888987314093235040540560113453559802444788984899668152177656752300777091470459125367335289948330050445332134017316055210410966676275628866929739730322285862158400205054621737593911992370749530825722878022422670998787044118296527332576719428192061952276833591923789614616559790564781619325227607994155763626460988142956961770252795924524394532721884307086644905165066450979245241632825597459068651624302545558769358687953322074447461845919670367018538866510073952732124408101164085235567193969824409146241480744885119671041902676655270301618842247059121001072416647643482976372397125250319130730114732069292346000620675463502681883124268626656309697881530578726335120316740370531867266937176403424141563352790844394325650578445317447078825335139945982755846356517195730352938732233386389842594097003898090589795528937963803715712460238743150805053363065244544537275710262262735745077812388425019127856349742991736107960525385743519097089669322985494522204756329281165236561205028349511873227480774925583210511528697105376654015937108803071987077455635704608311853827570931824785796687619250966490898247644992430952577212602353830140291390963844869423000197820944354257109446582280988617863924306469708196258312291840441420720009864849524969484597399189375344426422859627257983604344503217702879065442279593524873257102022307117999148193375131967261559780220381020740680461931302366520658389532530683736509338736092352524838254525901890394016628435604191929158894774546779314968897017095899794071545072704344013658247417425924585851243357476004168171255387255682760710699193952495547952728062574900947579809038529275388362150738402513729687678692154697022639107497071446448962776626786363540455973793368481609576765583149466488343256694086882692395292870827207140049611155647385000862804322394654587069502034560640094417605446544457719559581423444757521956342505010813088929186715607847114194564656411929508264612697755210562186370876159708285593628389692615091387009251575928678078455220344074936394105286106526530368666663239693973430915428750898651174125581365113529728269056359189939433096047665185982408449074848611964208278122380310527940364390981988631428096504632780169642931249583729365864689129215986669196924573920020149416979921998377625977927538342473226629522417947038889754331562656764961382838272323710031459061533047284660214882951582691346320991419499452869172680739391542675074147358730798120965232483237239141219502989217182628608903416185277906485865444912363702804698637294996741415963337535712133661806998703857271454896823279881690203642047431805018988786415836636798315161689034963236535674390356288107210332976269647789523152813665850465825270633064087564540907161987053987854734426084436438192976832106042911532456003635397342598975357807073273936283001368016696224100264506777712159243077271036712974972900165379504854892155428192174141324791014988908543090124498130635844991131570491453710252780084700551619086957689962827292097902463995632404825155556106327433786219416702050101230167659566601790213062342809693543273752829146506247754277151095734414903380852860294235670514115005012794187806850478027494115047605896551953775051745444111772961714335079087587030153490446261222783385769193627318265460661000293288738649337993018708979213137609410918507814531087943942204694330854390990403334340389235296356849257318326737723292798438535677482599214455280078171195858908751060118177431599042491383188302151623879030709519577655830118526848671698392343522310574410169324155749050727604596045421177709635676614566919930475486144174124677944923694736338926968999797434782313336133135945388594396276502740895083878701089770756262645493780673949835619789939242472751667134306966423878131738272986112156870425812169380957961926282550255256072991247192566350903030927957380061553237588298144968779450950194780328017360401416624865860419986344464594336704462368438855587397574981170245944175594747963365640240834230706525492830373312889972671839447381053414499111110118561104640534566473509909687975873284775911361216158406072278077279140943872005079933984017765747615658169568756041466897340707935685827025401568207111777469923232397277986117894326883630192314300813782620162769166837257357633076243568482927995217004085428641430226503422850973831625659428375391636984540768378230559933065909220939810521717386742271629492507880749733189046779064497172982223079134307213150564301916870325657710597387809663429063564466764911033333226166941716403350942779805236880003053363791269750712318001874418847103626663497096641327358263859746603717915923703433321229564408453834831768937206878342052009325808543569394829489950330600965899365360934925148813270213818494327073578365979001692861460454349208434658652721045584661865260893122414115650565592294821594191731740104906666818155749104732533535605877088585369322345559977291395922401750960990527796777831340712916001795987957143148970039511608609517486878694203430685463450730481884220568278022383538424882290831564071801714230302281227474758222876739391804780045363655061254426112999747252028524265750572973209486678447378169364352327923268110647019148476180443282550792877405089993527536115658672832049428675019132775536923705378085592737072027083977207556653279347357037942187274423573575841075261653740779535603056830897862698445266139863681229632942653256974588405406238164528598835407101451447309540980341224154363105325833819063284371432067575003107745857936490433810524068446987924558400919263012933371314825503964719519022155249438706834430461144019694178936396764143067654009904807125382836217539813157582797202997766328181985902317093840712090098117222794056774882227895635310315639212502860696492368970899858651115738091255583402751148415898855885766702484267016399327896376698911515339771119777965751437858663847989176445178129925831029454639156983661059715480680630740949348852594951883434005965459571586134056299839109259487177414365019102315093552188775428007951989836091590241642705650035641080682216074265936177836867826671144782890011347563193880284663019501046096124952181801250243597310756541618023921552214373702016539791431027650126027901054541461908056691157494066218724206816453830022735978443581790820568252765515985053480581018971527946989751061936504839161079722356868389870089613690260687991682227518624400086784755149128413983389777757274943639919903443338816532145273057090615695386311165408082092950380202537175117097383646841711279389948172985574149291384930781571390123061006301970878489993913655683849113614910421144381199236685849077617682962158218988177276549776858548212646339326296135931825566508166183422038886968358502038851649344410108843430740176706517335226811700068784634490407903849445299650698631314205667718225963839988474266710741517008539558371113186413570073612348403206278657110155291416036344459097170370481266203189988875029278248707189166680799622710189063847568500292781655139165966444825940769978598180948300565262167675850220362261384100489152570055022578601105092618141223701559412379979300630758599502404637452607691391595179483673036325715085930047786147231585635465866990585835562938231538191108973505300882007849982768697587727780800934144225094566764693731421073893513428697128600160229962190394160117627931586077340080650727423823879614112209223684185941027376609576581357921228793589845947867075829640608353087804575640894478345544890670387887380002936608162342470427887662673852578055301829093673316908599094336357526086669512917532716228134748560588887822033659099484646733471486283045423610876329420514042524325342067249076376327815617916047995788820183801642471294973596988348586057433996595893801423189475108538689516001217044063063344632967500227647754511656692990193522729666008305165049897445106996833195321849078159831635291941796099632203080993102526817581366877179870933552625410152117742578648331557408224067081147082824199313480299062481005893196038404553773975728061682018810444960146600858114154534378246185518390291528544161201118716733250387859425951877027716283331710452245999314087019594606800995685872449315371141099896567160556813797665871976124672003897072242895317041504980621994445185453792535364790555340445414871736687976913377899111281556594400832633041942244102854280172719609631277091601705849559308593688385641362440068959790495430311016446477839259834701084117227596299420825938562200569396824811590561190263185215337109257352375406540384108408953076108732803917126595952528676507181783524345223514823395815662854001040211062542074587854993253020546423585381514936729592721564790779727774528677270024282168968937422709601661909729543550015346984473000076011396750010461271246828992173193968673175151299552463156835061033925057621022651228165665153759775502503618113281531963526526072336843049332502814626287206014734325114115539638874787654654413331162530342293746902369101538966600002612634903081187875653493546641247039242324345575549584862971586917689353065861598925763380038832833000725578977357733326113326447412948567526729838043078578830497490480828599085233710075930854959226321672628457844385529990402192498548420022510144183975817805368430497369293015797679942641854931665621658498494889715363235289245668060414997954773008861908520463947658692098172071112126942824217787477176727057868179803382071113082356466662911208658360715681829261407479332292666361336088089828830779906461048297558091248963249888958514421408958392452411334282014593467831076640613774768802494458121931549139876921026430824000356962248758150346573519848792852332768902348650947985281522375861222301942516117842146815382472431189479281352352397213872794391778594534067920426868743844871613627113770734936133876134441273661109763460353146597544235470065044487785918633909366238266628798634968262613241140938072665797317979926563518127685284256119185097401011290592859853791374166266762963053169908884057412100515337851308800220936475689611598533176104368270266998136769264301279081192676240163219676835768348568361352133895348114249970500219561126811116640386978474776183897427985392171333809821662687189418505453000272444465769807585119269338063840046563191992257919690144513790459078478127647117188286782797943251992693205828149189309440008148846322851017467317371775709005143984272419387400001519467327419751065196253108137838435018991715801797162729823762298993461294879372730973800504361865046111027024551523815329468132606931550768764983587980638404589497477507649343946521556489431451080188457466984253145717678700452115543643592161437587846155827245838656697389091010051104374131934541873729092043459345076954521417853430942922383482295258810605350059089422340646187968247502814512369425811093558001763497331648952129236498595332452925578404746808523978622358510669608336083090858387926043253142160284511840927131582555905141621713769803261096770584875457807744057896252643521081504190896609905546753470304059884527150479494523401578496393074493689972085108219896958297199369036279395802865880371203180906004182531771971043511805967959149708005667747940361301143356691412180970712413957034326376276923570109604635141426227223242405333817826360133407807665659918894527404318315635727224999812414314227705460365667040914409259813238260260362454048826330675175272496606243609964726309003512368562853426843168654166422452779394441370240108891586273621870797381013814629679767805147034101601701407287674944981782569725338506236591479758737525753670435116237205668807013876363397213353026739976311438948707253069633913597190892981811252945384539394434804661538749339741269704784850389037031043828359996399829192478005744376262279206315315336278426397935634093456868200058152352258653546045145206999995794153900952035103957776220300346659724188811825354912836179052064623014653924333695714491571416131377186695909504503582136257403891343278588978562322547468383176143693882804131490245369543551847432786479424848328498530055378974791264278314432081784082304676875805396077993780760769902209022403711721342601795850140280812790361873130492890481718863380074899231659570679669542527169975335299504252287647726835396503301247945496210078511222761824336961026745455505680392049436475846637432289191061451576590625459722580123326441812301259839071100571014690314721684182226078222184097992564002757465548538195301530022526166101715076789518005334968672600189761455585133917467881364497988772262854278094723662945885819593415505930130257006915175023414541491168056792373831400039801784502465148505418811398038647305037480103825118877461732332939781268656563216610849762909654438298960389986239563678621566562056840534015354584159914897830991947895723358195086453655102404449443214739466686800560661667861430477080780767076915382092604856233212512250355721886876983629505270903692454803270726739282784672286329506714159050804818015446425943296830702783915062176623512853331585568692383863460548954349457744584184823255653966923413268021458631417694411701139315513669238054867046301153668124933441649796825434735225742049406231945927813381839042511401282915065271548727835455809710271761508670545280051448615710005605244489885954387878648325784204130981793404219864239179433913445942012372683907868693778441921405501340904303381846611551295786618934111440238051166702032751871799895621072842769536712149244617714074954169230852768848681610858579741100034853893384368577451753743874997779118330750613278400961692964800164571014286330775089301749878040935933573297921780064464742612849356811194660943819047482107765824184985059607824512285759395316364516794141996470180147130528767292530244616169613107036269020357148242911725679208741685751079523162582965362567469404348501500189558413384076825586575842348088027253773028875117008040195358386615869532097270921651204098296292851809711816049079500227377160790640685876182601631051977208315786925690687086764431129119573215681088344482437024105188919656675739406107888311802540434527879399351234738432736959961003898437098505362883101508025552056673865601974987666273235033802450641687580845160445251683078707489904765082416574898253068513532683563136711909745811549841436971598507653037114783842915300131963211483562417213746550982268615172103764770679104859638400073938649861340831122443543579487765027636645228998333430813974672556805160147494104184986743594200571752718237228030506980661273656575946430993148021409450922249458717802721295523372513564823277809297456411412005714050617473175801514014902544995885179583991841190344908488674717547899752134911033888461730836714304873664450269155375224611576597235909231168255235237282457479725926303111733923070851283418952947327960051389623213837394451744399334425770718089142149281281350426696205282139114826442186512109218797671732219900419176038150382215368130360291194507672924604508060854012856182797841821288568451287817802247518071686444933918279582367300287669780444176861342105409297191067619000196004441738366867716688460365281332720782245638556805542841299609853022778961276691475810748866773154921161724435551919200574149534690110087286071412878562784583702411149345405846551128021689277552119915444554752060714327272383662867903505437589643402847192205223598538366804217166698110514589051857126273509873182307186990919508823596687181016064184328936852387051876332503804714832011507254520963618861939218279534668258143109684062197874058196358758653283030641749000353648480866990740344398623334875136231571433268056098121472687117976886690687355437441922735303528176875072540647839689326839832017274920446682899338888050668871560249043127214862277273996336830263576485497467919687307796850029038372279861269236182291320294169564952690759572740291695796526886700580356790304631279331878990742883986611287733705016802952418881116929685671156261784480892817274769510666937113169884986863423744210588069158588207958271466006886728108167660675594585962826488110195694588329851482863592023519389028744400415565866508023736450092918371012754692523787614719501837095860511352680127567143518366132810026397812771176449524407805084486347898039892797099251117893601052062338292434185203530107446500107781616565788225919621796185582735973820795500575843498986882177652488475211945498475315025276200859048693848443520127936290177763326401682375415313671131715823404303543224542291902861553160864482695063114669765860122319888200253866092723132237528350534074281401833330075871796489708369509007696905755080518864359826461056224153568232094443155879873705960062398172227725837003634101975073738463251313138301607167790612335097269884546985150842350778881561959723061883769737179330240006020146492509484821412417213715338287187005026187912238478726757599448025228556585260426064391049695817230032264721541690039733652502484728942458714305476253151750955601093002989764163766386158417962948813011067487130507098048775825619476617841725509728826447111296542086420971472014012334253451916528448998504263248479535506953801169530149756994961444090335513082327005109684018435854293360333469756750491832169243591012954807937689357628957357777924512792587794959932408631348194912086759459337197694299115090118608411173122267850716981994709811083696148872825300971002038747369308960325621879088666985156531221382774930570218621515291078790434591955938404951451264705244445064114058198774208954912986451206384442548839979655890249284590709212039122855729597401564923804730641700740402122973369055084559157651663114766405328796360874733472493301771009186689168531928431785446182919697260302732894212405278043372067587706031419564344954690897076970406598736387368618564003148325097866661024951048936880573095374815429455987811768521146174995898912785017244253366020109841368120861493016596479638849207471300444250747216807093223406428492211066687683040615143171721740008898622469628245153216128967451378516619251856848701064133110735583874839661267975411307411445741715881271869743523288653469622368043509656389775146769485483658720076902524141852233901504982846459711756480229323164918481676657514948905477166799205158150733961256236290807586013691128609363116399632085980651830167525946265159743964307763002462520867840599623469643632623532106558678869753423044595975193147159773677972818033548696113168684378529320563476397019013853932460327741876485325667352076436692250711897304221605550216477381663303934325936507795900316733280515822530298957066224435180179622995904075080670194229010877437958610063925070789098386148915539551600174918479935713891191533397756978843611239288372422518616523041565856506502780480710347778267176711050912999979121345222326999277407790602007827075925472481194771673614612121396295928385357089081825703628976370417674569854494703742473352277199108533282114467673637233422631750717215776690168763739681075428416703098370048720298999618071194922277105662463154172857068838184879409323487435369910369713571604263616014653427005983827464359400480440894026109140955345690818081599098778244105343237369590165873425343840506416705014996895017140428326234283654034347421717139095243156739733114138513298007819581547463973336583462193437143868497878752352933394979401539348867241334312035005070508081979987361879863685373210854998199816610801788889343070162921138533867163382758491936724946237064270454489515638934777004538271404088585389765791501141448829160583143597846651404684490980258538558854616924220388518990811800011719434907623591137590457655590198200816681318759682138588549886650759855558364889648970469000447298693102169331105758858351021173492758047151118004196248009276951175137785349750048877465747864567158173866632897421315066211588637049581600972702681630005494482297446077637169476045975685368296935961218266157828678610785938800379797076457425485470385935246109923141542608609130915431993591808256648936369474664007691930827591603364594124172345059348315542166933946352698517698751928578168465413270142580030399530870780187719506690329233915028270977406149158562890730586420947640285239262061324888342714932641664307872997654105728187003954303321023628317003102411991637665970896100724364011263161560933125545421449748669106865033905152310347557548637822262953533583806521072561111087512260513433703845479400205989707597906958662201191320504513090753919587350977745564132124219323370766968044039517994925924106055310675319535390943690111831888713945608161560902103878796679337586994486183981478894667908716064697641480265909417366516062099089362751503622322654569914381798067577278803247583780912542250302566896905577166609874175369706953617591425129070605518311883016513134291444281056696168177057736855336391435723307195524784696825043516819145005002783820154987451020381649542793803455487452137428041553833587020160914899738039606305919369562350161471797424963404330711587611645179159574250381998437944522055082348364333127817726077903592237043584438030986496369321178240375569346208299190953954213792863277791692447140517711516292039803352381941123158667679448412410011643027379783774887114115431388012907270396178002671646549351410430076492667445150655104424179275868261433011841052854473130380827033292006468210149462525239600034414717902093564463331679325686679008662908421905136437867125665223253097017892909351781543126729839845720212443588472651873738695558563242074514947174068380800925991100489679802623057834399957867372220271132554187712918355650180666728258949036344562664496751705191019568834604986435598508235459638154426334186938728231639291357804627070654976907040059482526343180231411466295486150823286028153450311025766905684945124897414965571823983348101004150260255148921669957353099127019319332748191105562945440493874539616445376176404703777514144297615447730139450478160080691851522685143348428218204863313246074054707489917488904037505566170953205139104999091679459469277262704868984585820712257819752443766234458884676405470991872660378954757409580357014298931751569718157890435018017359965196457239435559012936056856278466133862420097275718277527779781606563943274486212169723658480090204129798877098482067550996016434164587337032313941279286762779035812335701744086609696691091639706889737946276262040238942742905290137523381286158148696101925501017281058831166196639246113597152119994568040075965368961206470394883099328081214326021112681678317164596168948973641126841143057062838457763389592980847378274120447589434765594579124042009368854148198432949192870306688760675022846569514788758237857568522857419062504747746299839670733421003718563911993543748441108173321481253128820997433203866271194061203237615102053747629646671140297976997635056312646714172765703992810434621994327350974485702166249557017369194372010714452093043375238468074512442217307579367193716597793547998390371220513088049834065518203845839515322261702842841194162146842338701689597580784062927599847428438356330509797579334019850496794167220644562792745135903869391784923855125824964804733769510432437088356943723282384908166056329384125351034965131521643595050846332109860084405899235352178843345344083348605265786715899511665445787458910878155345007799711763013701789414353895956299165285644682070156823217033232192975793687384168040479043779248523840880110308726293191903686273073378754690622037154925391410328130274772566615020595434718438875265055228054627802631198371126252802854128605540417107496452964925908207728837586584807042992925661033841340710503887042859740508203136023429700082632402755603747613369882612401363838393326092043733482993390571978157555210512838030278832641947305606921185313727095052061831293848873839848087625752946289954485143026250706340355150256318259499122411329800181271646725624646803332901279264660986556053126866765697369415000920732953045782862782371386197653192808240258385629292962525276380813684306720684731486774503196142964958966550590198655947608432055670149921603351074871452723899636136687235558208355033308657130599352657472053987177314389506436573387044315907749502825912043990684275568191427853680192178195352986250243682593333176472206599496516624381189050409385200594781575117072882871344477194953491204715813360275484340003922610427414802281662958564350732919819532890350739517221341457662928796989165778331287725314419997046152586862274642619246988755088736525317147962367454728636341533908802084144697924708136809104178274340626557464152698945557927363111314657890873547553669834063768976641199627147761578089554203178037592071336030744676552122390255184957522174304625661056956873155473966743312869112113398107280554044745262579872205800139659285318181374329575187592286521616859702483534327562532791831883890509262539133470664104424521445044258011447906094450191631374552138239130375124322674692129307719078921605369526572579165010638937890401376218944770482708857647991046630479707629861637717521829572506802535521418552502409565388369716421880831646665159564132931640542068054054265283358761566636742929975832522869764077876822000208413504721154791306990585020053990295784540252682454030078710658284094466341666120325636639631242591296446036796949758162263839390925483583825012814310196687894397241620148339372763659196806885754006143353011379076791380082164941636605379911193035242599348847257319152672067744247354121393277650495696717860387361982510525749701497007367443292068545326789732474392497929408644056093624039978375505465572758944925666147191544105636385023633310326573978889397963015632755303843264006500977261903805321399635273339188380853170213080421786918431048421481223674020804206018008005762623237244253477747590996067807186004768881158303209296146482103405871095445854658359471241686242337320418523593458408510121012826999658152676046328138995991830541770013999112404600391477242845161175024645169349287775585978852641249559640804317652240970715355029444062652877253798457677164168345364226763297507889774465160658326909958798525811510428798468700691658147694013711679081771278394220307161488680061461279109025222951115833521477506131746224770576572754137840597126660308413852025364143029451153620574913722918529003663312484587085320095749841538655578453929139820733785494874181799689797338617894988487462431589416509130600634338490010438353943098597322694548273524707249314032588501192112624640912342541689839918588968597797661480853149480023876950564118002011892171298899311997056709364345565247564704473863388604247508576561861375337712572327490121086075501665857531665564275010917148639223634007552476721089560937169230663207048186306291003895558156918007816302731854162132161444773377760528731393474805711227610916955353271743792014822926100692376046837467312975017715819828281856027548103171185918694296299454499110261987873907561689001096607215516914177169408834129966080516810156932620663955598091690061194593458670808344091589205953460413105698108028375287575782632554414646729252453150857850107075983026932568844346843483416317391089274247747912053324982779849475105578559351889805603122522787772968350703729033610769599207838632325644311361528612259305773107744149270215670968881680753205939955987859155298240714189690466486640121795394358992488567319459932817546361596101120136394593557622864997344039755801746791310727695174942181576311100333783725349380567118968390085243235624820598667904380323550309002289694168996214179147205745539335923882265062633502570293044165450657562459094844561455262068872218344250110963359782895369187659808450827719466066967684566096036433346184776227958481955360014903742148424971581917085660098215654002099436881670108374850056983640389991005113251005501156010015668132562342905467566145612711080772214006586111655520482188773431828192698506120085426665043622855164331270791060268133356986164019939902532852429679671209097488285330560578930141706547412728061496620277487897286885953015564610219825683013559677189478150932673946221808768552197779477917982195646428304001772372457378268378723604521767151098293088935848918153180696790814763102317103858553034941753167889565793682722108697985862906530877831173729638671614739732146862095241341881357968067061585175608945882221678705435164563130018952335736360892771915926122136085194635486184582894131289134321099934640366059915956248464990569724472302893204629916008722125008323860790841209931856285545234414995569751792450001261850203872075019583695998384986512935592802108542319628568704434144986227452267342791366865755844733410136993345158517957687948326499156333881000197697950469902984090820092030468602443791787584686128304282152833339214802927439237546005905008558269942543432825012827944655439533754922892314584861947331907223898987286547827241459740491385582551725697662505886163167844535129024494193743547845270295562097717747114020835237148558604040836203331025492886364662877624929545991807468233046685468306455064648914352599886826374724071939889132156913087026435800259428358257648813475060822093706027904010480086545686278306687723250672319534384988268628533347123019483478847902668666340178609130805148807559179151197358213160306948853747464739724621201531878376261345800159563551997039085120798577536290427288600437128323950083018533001097223888960832425060414736778300119226180110520119648385456416075969832850958661441745871557960467137235012956653297394752142755185622230825601753633753180873169673744681820312472783020968680581675645976116840993178383878578382041368281007437504285347849652322073758978799064917289700698382240698096362153437195400856626490155188516700324486065919909210883176097382873090097204387618205981069722471226363284300840067738384895055424825966011992196927888620674966704062659408885050264389782145898093787832225992894645053566435316114768194240755405232265962978975418497694639399396238427104992700128031492772207748973791166616794660869324574945161881643600420165837846357616842134220841187825193855738776919414492708432983902059841989724550050695933138923583986397914871986469523881654661320205553280533183264925550158313239041728766749051976603875598601083708814280685919315962357008062089036612142289297096947438575734905378791530685768160674817619076495726841555555731762082714418494924591187245549367625202721651722756710957232116906637029422972928980824219593647883481267646916939692229256900117283232186815194100683220963942798680635909387138818418857903127111489293473593827558383899824091288110550110046405380528945548913372633303667853496904845569969627597850121104271550998082032641049602242423253150400166613698157049301240082125853076391943142600648821941022104518944653560253941174345787949223289738806971084228102569556490617287983497555688471235458951279370434157961759458930641472653020869308681462434716010232314896955608901835821220005377186201282447192738927776850784761963701784585060331550085871815875928178437469633308726081809325537502856158790931607953624209531967411446599805858676433205363335753341897468457580155019919433330790535994301924225158643365550099160239973404606599830096138367169684852463741492982603236936316163921871500444721230149887887909530177898883034749576249211037475013709099646202165763788637333055740008711448126606772246466984053597172352985347863609918099179370379431093489985849422452856666156116062306239867995612749481407028274799426916192209681423964066371051409188704355232569763972673359123265550537029119987386921172537235813419810963867571340358917646180457645663055666768346070160376964876020270420371081577195152508033298919139674779043627857251508067236058107438807091758122753942198231189347941043325505716218795908888911938672245253167479019422281720016798232861571898371962863645110689354522324189406460246624234249951856413330186254759098557876472346127858524532639574111155545430486471336681024192782837620706446495708236367410157507262070398813912015942138874934704503729289893514710258225166144172705825359023456270595658703446561355305668681802334105186100020534166803887359641701579560334246759525627258447053038754101552110356330769889212262529481600421651027169597859038976221773526432208886803113702427267318672974213532181178208468702640972612030450840545914427885665932358748728143890549032227100837250582683385180350165022818369096958616411274898053133438028308296665848622735195636739442800399687775595809088797840767980645299943447861410651051428314135325680747219127761627992297920717560405300300794099282498029447408336722641467678797785646147135798116168047785268297396959150584698960729009093449404656831343981851908882977472892390615776658890190727673414124909863037447548244787957592783844644755006593726530184341742027808319112305890825968319345857130862658745734928697586471165968112473468359445927566219693675611060492880024387033119284218334305646077941630048380327654788490708891467011306348707749214061955721263470130402954906411201535201468831854079745577862699310494731614801189170375437433821537461219094323195849784174127971030240325740989671910279410409230292030216908040843263845542830540510464853325519704139446990421592267825218107803139293580806192104582183792268024829026838035500407565314596703887202919155549828196221515473329830645978055920653903432224376854194175669791869001367192556891297251334450294589598584458290512534034098691326639159974506562002466520909785992161700276212770429366588428438398089448218674095558190805002992730019576000153891403292783934873422828199665554560915524496339865059657246974725522817914164312002863040509967855051792916504687707276634680949772364996962001875329032641228747082968273062983377617812637626411915963999944199470871871156336850847592767804519617585423480019935547420092427174448687322952350561386569361450544400328619569072220713723349812597796686033942816084703155600425801849202844924519020825215751202603037752389766133160480479202254568223468998202173963928777456059203355550508050255877894204854464246778950860346441170349304838495705110520541727699701280420877081365672330110934481148886878221597942749157088435877388203299430910678649172503954729763504661051126917540583254692558190391123769544948638361129617981269642553992059579792969733081194533465384828666877336496868893325454695747115973851422925065242529056312228838549186154890395249575601315417081449161329592999911325617999497411534360781412620349870077740903497666277412025814955940453612925557591587176904904368437084690889115348281305918389023048295828915028480131731982665535859697886526076532701802878471712723426385937435943848517715879959993170164563438561021773879681179165194181755290523065213252117496139682838865786982939717115811505440561273951121520412724393159561891079974724712575773977453051121845119838251254437923661078450914080481421346811240758559993615932860731284078151835858328177564544534044097764680301951866179807441065734819837838253834409558837176029995056936854662109868617472914922622205963370172846483212079939957768313094370627879438799436194009918095680761090381497983440878635353512622701358913818650093636152178004489751846483464612104849041450887872266888642017429375637873959111124166694655271605313294822198757151779718935985808017093704369401181476460794610565761682878001318602667690744578773096339224996860268133932893618691244913866168804950373950354315540322642177545269614106579125365839966468585852661840681239681926876998554099818261851846968513969427670578884930517054032220417599521754327236099850199004587882522242623224433610011224072721705601369843529889249231057610034619919861688986740388875498541356641629424143797694464427927319449196317033635124412490317039432946948077238116767254854594793658609685349490393302917267049806425863268474529689338299685316039486493010554867553634053934851511376978480140150124266300591126790365605080095564195370980009876845992228185830470203961404116234826200890167144384510816305416543519447604014592697664000227028446601429504887645057695996417646651037667788204927283308813559086980369524013882225401166604439134824510692591255765702484003173854644353158265463645319810071803761094310162779675215095192406422213715090351021679227345816725830993448836355452382660441043542526063329593480504088072403371517236179169996099337514124771630003557880105006368074754791568829925524311504272390828058703777851338745551108005458950105487347987245459039098515818802293149859043342251876896502374916734053611024700275440169236006875280806052964282012728039028103859467093436088811778512611471682856852306914307274898020598219923538051788663037941126048280361779781289083773227402818700946106913605551083434829286244244572047202086854630759436280025230455443662596097950064055322485981609125502540026275972502850813441734286085108490966696546795566531165115454755798067311195434241201751369973460261944511569647875119316807343199927036784185346020743074419391717435908381862192037791568388743664098941124584299065424167111318229176126640419002632604793256968120248647519305996138071023709206771268320532088849357404784511508765815563404538504476315309850075720956674776510551433076930475561399441094392628462638505867599535439903265931953229862636665346196687928993982056409036897672741247181825368941289347130105374801438091788133589714801702309757404643673864353047165997458693138451618868733644161234163129363117370282854227809619000203244070596592337202904278929634898630863917450891338486759980061915068476234526121616915670058687830693635185253164542189018690958105314081365436599666509406517824696411414371024289789178715399413591828623111799680337277479163342993475321224814828244450871598173810267631037131675715707804244003374141703245808129528489355851071923451903938871854392332838586012341615819175827385026698009137193600328464227767898526537859278188964803340661805346871490704091176592384627568034918841049493182709393322381942730218394583559474042876717661841237378022646026847635360228566769590036984893313667881852222118158286214042165923483705375260229240551931723025111609423878581191553220304017162243784188675509455701584292777022093734121370425554584117136012898633464112529022451134015959620212960970398742064322724827905498701017534463782573742517364395821690173951668652667549428087455504673259272370987962516836040692721316938925968401862993718476536294839982565357976398248356012483652484342843609420228249078884233192618033011364317929577798601186536105222749309415736451933152821610837413481042823933345168139974724341910234930302512734889133355931299431114937351618965543776479094318859860174572511049748341772082364131736525287167001774707338375200065211495428381482040856646752643195392210011530006123426288149070576485477416667093051133406113861311562112880802950012136099443287921010719947131258764840486039928410010866808885517683006306259910421312668863128346988402884537242846881057946413256772519986409542134152461131134936999192270908449174140256105465967363464473392830544834754830990303033937332484752815394153919826827293818074590782779775068021874015120290586910233818165418078928193564985686132985297602260268236457112973450017618229633855681672631004041570838477667021386996589029616962977506472234685806487375983227260012986686682239800859802267876848535440282277305595148761458351937999305035038418875227006259647427313432045310385057693619441552084575029469759572154336911279004728420053761620389920623978025745837695408512555859049356907452459316498545351962312158904076510041991631163650692550958968189422762968927012674526660136735021211029667253276262548235702918200686878346476860377626237756207525812674794900043237487969305084195401280179895023253733667635179256665655684560097447825199954739201795122249202381264475112673202468609963646365465171465599614419961016464910270735739089889250136660777234229178056763956614465917404420713932434488480094444470387207885047598908991691385083327735846276152783845131132420862904790202849826022208161595973282748899111955511751145785012117490040121963974617315705496138928460675777401311840831042767285497580221514107702331395240514973163923583850266971187864125838702204478017380935392371026038201688268568434848510515116051954341584442552138793811777809972159049177547468692654518506683631821785649862404091269509644745149315617433492467411302131614576146226809752606002463594032587015919789228040217882635408739900832873378680867711440553791616033499766402434743309754063008685574620828760197035990907672533782133756692158964001929217215440339727178520138131042251108161697485807770821814867176611099400472932163016573771376754677476866318508507392062436755766524446443694072666192025319631372797698958696243201053475383110461573225525798821770992961010433570095407739957700251931143964399380414922321747665778744843066612089323347359030167228007900475430397293901691962499520197398560174333469536208728732698911251141233485148242322837039295085398114987376279530154100833972760075651665128919523251771504946789810480909739465797203151847915409157724506101331646478464641228167669275612271644126255953933201140912672942887997410161604410933477308738598605711764466829306356243631058788532177737084406892903007169312398221473328687192313209010751594024095779970537818802235567174433746344358173102546120196000374743506605028778204174303018614397776982699881366712575456400446438451018080380537549359568234311122782368416244260246188503620374213291795282144641323366582312885953249581347609710030409716066607237865218281913711516756347622525136767519219928979396755511985092494131439672438919388328293340779413765051713680214841082220488219680436163974462375427692055551758696826113392769319428128851704331190050124745827648800708801634244938584395491518768300318237807615720796905588547827696372749106951508657858771093001176695119249750837323768768685052471896318510853691205189052054240773567684741484700503277777700425071549130545345473378275031884840987519829492966131774163542876779763935150034032008143279206662196050296227926218795687483778220935247750524805925063800358185375569975169899854029975596315407383461249273129719142068255154649916148941552816691755441472876140223457644342515780459068237869289709513935620510772992556690575260609869256243086608812274577730004576504865428436020143778563737650425882816958685590928600855911892543310850182749554670011862034269199445836892004509214109759296641988651875285922502425985234366367655198939084296961444461401484199262054320802571968154122340150216580926040777089184675252589376638260003201163557153016818891545239811787556818488844545136254006337600885412266261490760968595467304098915624626376409788110449313068064880119472401992906043898263964250419394853703873981510377829978136509714829856866135421752982395667651917756827031932184091940467802324634167868846115763262644223262982741734751469881276253895430966448220846893216461690471155725693797064247932088312943301569490818113237876433391554410861596014078916163060753742671140106086480190741459862852776559788457475515972951199905212697954920422098526674175962641305569141148341628731388037050520060918583138500713967523650767563995522467679808418774255739216033778980719888845861338365662298302798483937729338162091485165086216914969364787023514229408038663740115371266814696104172176340545023231076431166182195534222656929336776379719703843164871155349627718027934808841694530653367188715594883016358242317095889875344285853869267560914449137207258322416695924002137762086483237478808941815256497511130555537717361485018662035787644217310927094249603507686143374521970515232087662970624048668887853511671623283950210516341594319052582730941212888262511366198147173372063841983406695403880576548275031962876177437035161778366432365369662664709028396866402218845104493654526565432184757286420205849819235867029558250940301904710018026469324162114805597985851844849683880148572318210888045937592020710034495867438539031634646856676537200268014094155788692179650212042774286284313641996372540170372682338149728941870622516533714359534377348740333080520515190609350928693092361461928032793498467689957300472214976548781867109241207748918928790881845950563668611921089996959848641992434655789701539145068377125170895331525817856505430772209636257823080453908711498412624055263382127313918739268945379580515690411421863553084105591955750730012279071725985834257609701767889264360662987732106841577586995505112302272632702119117081843089520037201150542292911355759487791227309416541471655306670710681545331338779845447102712016601274308170257300442985295333694677941873636499995662139711106701500425229268973979165707663743329241120374137161897358758080406360521971962985570937166856982614807055123302542079902137136411492444017214167872373985239679625737418859510994925762111816258815307001218978493586228533322911335560504911941562824434168581010569227544954203036330547718058386071770314542092429647752207781754066888356076505277018328069748805020909356068624077674957404997282288087648671625154651223382908303421469155546021546677118435629135588360804409356863662480976557891970809135168386113156395752661085120228600061362094213043023298106762812845524319312013407517048082269466935295757655664121909454982915724930514963039344956756006462739387132829002275500157069824965277364085393441843672532395375577449316513975432419400557483607017876815425693240963768328502146661605815172683183220510370870993166879028584467071993819124566338466822662698441488899495444447821701178740381017268310421648049438619248185947048361544476066975167121749759710544941325726854183976373116464688425991934835752560558297929041701391622583872568794153741001161110197044843361909061955608799824505505102741478929729378783185503866640690224161019830969781513303167731184428163910049724845966323358500456495408607550274204084802019729165039239562483211105622028005461633646659147202411933929454666639498914091985162262354036859963176433575182922023615498164165209653111906222740091420385829061177242124736866813319772826874460371575627017670482231333206470286120118449282651460200523810444270713387224187088626803038870801966254278829661364210773910498115675770506093594799583055929679184510708224768106375252847327358532636578920673945453648196591448476873426005646327524523067918672124836958890075673510779424931578011505620599828980888423841694495242103742777689536079989281800149773352233137911219518684220799266686081434991047622698535999960880881478749954182487865652503742838894242737369902430566975222003595143689857114229470618723131560562780111373158959760057390688334024395730802571672187239803737061824507412809251232485588487697440087753936796990028861213167936313417412166836593069390710361215106303512858271528773706080209120048923400713478895636235367357799155886272945422271635489768307149356964649400992345497718854014534324581892339974174132601615423614816018251711808369741385339584131545856659185055387993588884747502547086677274311251925429618729645536380521196558325436565878369323103751016266286389285842544573927014023069661426797528765408512692564206105861161084760809828883239629882827473739541261701964249568703101774512758994862172374910585847962189684536809555541495321356289442223342253273341133567732088008154244798114877559624701443466331955227424787009586565922565535835446773921537599294241364738237996517566622504628177931333854161825284235692129700995872440372625613149187789744846190621601740810785580025887972675219805200319357016854407199235376244197281792657583227477013428636900778376709156900400112251338837917374709431407094972626498799132371688661772538108560831801887059870650415658497123981843627420052593811481004911360736894043978555899229915695545141287866085364175029342926439230637005403601875815942439312018894665211282628734466451928548997341511340019899254356284938606498761690015742817552177834666489288430384816089873004968347660206842144071668652630674841349647561368962264870067029142830120432319007301168219458421218661520568933650038460110347618022400863263738436940272380991035247752562041828395721551409813423432404687666968296244110888932873778184244163838238388172855768563515622054677758682960108887604893634158663230407511792307352149112560641840069481202274825324420341362508063028204625843372562755804575298828781411044191540507533245032103842132883812922995138061519992981084862919192000731975821482770997846360515321885794607741324983877774109978178014274785945686974214012060118392708300604570765319856497139376612862718632107624476375191801577197544529273723774607723330154913375628872386051894169633591878046615232510874814031645780869861489559131540198018045442731132589569596061564246018528301539508659072777296065161585290427973295684982518854546075316919201495447221175688366779185605274086289159214313235126520501620285073920031875367216639619418164222641941844532521919967171222964705310541221885634034444644826122222039881172013961280333549386527125396291699625584130301896091599102304779930512421459290618507258659056211954898245309774728694642963677607879044470533602016492650198129347526789669872542842567411907082439836057814484225034086573411836540709881128967996680682906885282378589573464961244796139737970746849402367210719743392930749416988870745527073612978494121214316760883780345459283090979784646851158935464598945007028355101668528423932906904410290668589518190913074743457115541364506346927406816108971967181818955098518085908197573882838968594894724732677805631879338614642668271332606439064871863520963936675153679145608035129599769819865181399241304202164783564929447213240649684513129125446219788113272182887757507417637300968218746600148296334240490425527055264476229526622075120531141083963973047295643411266169634112514693998690631531649060396399743791086202256996100769278152008584426332320307744016850394764392011203660383022208296165205479244299974946005007301413189938514997310396510605647399656085059297869612903975823063551592241778854696439228025360866273018400625715823186934573716000335947618089087767209048736770287877921243423600244516781789104913976568345886770367743029564297759070588028235118324049020738156806161623937226066294101098429677223767182085935064166033980292877080815236199103541661117642580791474643910771495172247303112353066311482936115661237558535897077733482840906530107981575349632834085991297485062044224508282121764007770966422670264531159403030998512685838432146893401899355796092124475532507557440482651787935831936260538235514108957703465489779596966585952644119085253132458371050943995014671989410320122192338975871070167302673875339563608868400986623152870868943690940850789320768344737018176317032200069785771261262801994002774845039343284074617457785094685683267455087466753280102173116744314830119493475408411643944387832395839407658381168194936681643978503762099058077619136256145095834963658447004715591716042863612393152084190414395672427950268152455493310174301539861668382218811934462641810781354748940526353075873280123755929188609954939362120579106611354436113780551482080431399853579826954847125071750446683398382573034303916882736222039601212431920327499472896267005189425689647287228349742481759762218274788578752917189467600630835879460920520404444469371438849761540180130126758668545687931173520440054923941207538059493505607603414603237380838997154977296328522789273274713138999366726439421953866937110039946472213581995861214440419720371837656278921736244540138769478148344106383372422721967334586688707179083874278141127487065697867284598590258218610398977387499128544083201287939205386044717103660084300312569770005247227481227985908801407571047939706861501457738794722422699001928369283988588850924546316250736559277177415205143406039760894333387355346118238866704333742781523672690939634266968617345401734121529793528206569537441543200121041596824566447469114294708295873931086505771408216886876424210929082018038155226752808468795202842416636793736109037962180339545419372352786160262122826865854673831866423326885224584626798031345016184848692624836147474277716730750905645724151481188123701449206765300830422184160638488451065949420313513612668914354891198329124377456924316526964998275254356567346498502262947214096026001685300817425482800933748831263898328543250654263850701453862737225801881369963812692902128057499923720264440484584238751682515679822113508919637625057694090111276442849099054732032861511612639717799373134378907630776780078882107747240071903418492452995907659334625800480745781510501667615531394824402075923805161039857342820397729600517351203098575323404843449946315713081685378021557299729522900615744998245600798929112587512223434192870753276848544278798939934089342265296554647388625474528360027693624382841157239713380688418653915990837031206992212411744347231965778604380064078171566458541793804076254983179239254235909710188731481747662600956833724260819767980435948626789580224456946154667033311792458406724933865311534114502115020437328784798947629033369137672919836788401759576939399282366617712012724451411219465558208187305364718358558108994938380045530779869033716787210871806229530860572172848923620373189660653288546132234439189231112015627525570535164894875729589238241369768681012033464287172241613519148681957807455149739174589472730083637921155685918335312299730232115063666733100173297857522757550616293384015563757723077483880175807194691966640651376323990182011169254203112135861586871390644516876713950949014585304901595103490845932783800495707411317316035737849352299449046239795653609323852288096450631734171188114901780947111996318589794157099060723896149730346090735359450421886139526954260030434150239690073835993593857996360736813316041119477607394642349114925894829976682827018944817958897278589674190162077643133256016478949149513625350468685803365969691788452778870455966541550788231880792668174811382337134255767154313345378183504665067558079056813650312351270432889092027105554554584249538062339448561624472157028525800801135044351182613516754216302303214036195254915504116452466818153133265204921776944152002282794118532593427940416454195389752340169709548290825768311884928599586065447431242300734302645076689787152166550039893650398095027713181197472658827114189971488281033760637481268431484441449192649863409203905567666200725468712723712591635513575522700326066740543378772861432544803660236546065912729872542225313048420333449469482107141120616944264581628453183611590905318857446192462567244957387830406210476671568698223200695686499649684995259588205968326497652781020445171281686928184737465779910423600185012683160297762291857108276434954962904057914355049558713099787789836408180277231445705392565934832326391606975023040006354017076494491428013699352088555391981876616095874557442109907718957149463453784657824368125049631309542978508789300522819482061886925485845428580657861822674606190034598081848912812952320108481880826655047018525635628721291680187469753485357664579146491362375966605250623928534070044640941227350111936839477092205327186015163940246068756977226194039968951886892515273530039513514053936493761731730376322553486773203559266776177234696345246096713767121361947228155995275598721949938582978720355433449019404173630960786315635528606387922825523045084128304708398721778090013613837015466611595496429265058466630305369415867888577298733013650378646404521740981435432868554532419363738674363425721013680292677980018170950475643712984495460788117088414053174308470497861977152756666182161890602914163083903367063507381547165155189443003240963687151422200149709469089713442542833988427832837398471458974813276932843638618995559127339085094122245982574812156762445984829816430127265445733111137065312565090929489450182661774413475970679511575379508463125449310000206944493078203777321376515741202623243797200939943872694142774454304001010337764130535739981917820249701314891519116871035860761478559385266428630965903641292642412449115472304915999765166599504008410301574046775504206752445043840485595378077753694157276305327173730347002347214114952331232981833065238959591903027901421368975638069723433514715620584832518846463413921440515837151791976146906874324883422086758979344201788523722112983608932170242464729352415604450381309431755307123300876631770609689580245434267682278515279103524711532455377333785879076155076969393779858240076987626555256231731308571494236483396354084249972678989253387672765655076002099861070268278527685060075768948588979449994663166190976342668077149563933166393012160946164175144285205196193862391578328976239289921713525031175290545251808231372926949377551514146309300404032294687751538782703373197710833860682640507799918529623658205532071214872870619569849761427977295447835521123187605226035529852936661457214865509267453737346984428974687679444870181061261632525546167622679241139432980813387132305366696332869444221367714496679942481734613728026176929353315083210906270494625605873168596193650857317451448832580539860651939757978825284563468344421384207471148877652721958621994777365855456420798344175644408622790134955029790987034413225209613698381359260605697157440514911365787358143722954493917853499540544090240627653313369826155397175873416478872597309184455505974365988926146483113948453099634389023333934201387640955015412591365257224621593075392981467564983526149651043320295765891082502206571870262785698440367804406283379707202833740723008963123135602762226814574004258646704264572166480429902020004358049336753101861983803066545040269528590223197066175838597515660160033093416404065932136530007718946811725848530452642173675371942859664881621715694304111678483415508589598522589369208091113660587679710095911840889211722022544753588291329042101720716479815955795747425570978004284766925495222312878647886010692044726034358362102019611955517645871532994476221164377115228181938236522772183250464148520670996393455539930902709790663314486235415159064301907677831121617401865076871600351685307740772195767993758080334671558122011946318228768904025154614197979215263295787266338300018300402186530835783502979195544326600993785472112493488015397776631378856705962953302386607196320256200834054910003256538975087804852359489219832956590909124895296819743900008299050975353291279835994990610182905065364291187206369629798214739744857057937941770864044916201919645035868612481657503921105360236723326294562938868398232195387987946685821438404522947873807075907784039247037803808270253380473235765581161882115368278502271450614001786254817685834799087433013641798630631295052224058632981571443840740159738080418068130691538230915753102144459700104240283047735655466795813847370127900758121797790139692024220959375011734798659888810560710941249414855140099425432455866890297987575900278925557656834873606940293171842268206716138974926449961174995061841754445450503235337072281235361346253710166069150044100323698450079434655120199962834975949177448875820721901152597263416498855052639073720837615963872303125257292075415304232412080830389627665335259297165139850776779479691485220703202635006260122107668792014735222985867870400781483131034777765793151349989568459549421808277761081044049179121986219894023408601683574644651755991517889791993091507949019097977321423803097853709258273620791105567938241543158471172681168058585401893252114787694240324535221076164385688548165320241081280397480860591370518396608878668393470819511038671753710185825732460187438574934936820272007363757973609633700813555822555082479424517411933599275828972372363549023518586250657302884562072096066136854906221935125595096216936327640946730732052339132228954348784613877933903406485914440638663438644297618318432677925985125544083687275999021632775871184724557535920348535354546120164273113789106948919777711265756109809493644336485487447809502430524193441281027708481156652890400487613528939539805304625991100674698053251043612434226157384718510999377886607733441911414680428201037928703482093395864725412858165494722249152291936201279963032282027572740827303896659728005837230724442810526633664153156680061510164607663010506459055319011180218556102729013337293489151592814702816111932750664313530058875043466028546767993929042798005400867338015090180379588384989486443459918053403864929326061562598053064110658483074839690733491421517736082774014041736551867704373951684691238991793142523908403488110732028667502035287900146568019962180652747846207686579810887426942519960281236880810320682705514034856808771910255293634342244524109073483097214906839561454964651327366856576268735884565480771330976813791512656867986234230795450055788879934384624265791179485470826220053344056632137284333008768731363015930115083143958878436965479553775737336386113204360414441406469146672039636182037706176252672206757571960959380149686410930491226734860516278817367187572318320140430678443810596637655257262191664754252962223771902991160152250905501190977220673599601865891218285026193653214750344440843887773594819234666919478206210175483811625147741202678221151742442827931550374551287402091865483337912270980460399185940081883272987969483491036707887712540526732677738838941653885877923015070983311258937480181561899875695195598812252391909315842068037085700551619495453797420038145478700575010194631392480690713968543054632917186167141437152989453247699881627559063934605267849876706858077631192708535391786522432411859493565889759556796883573036351883223339344664040840098326199007979845127899433326559128668124319974371590992641129947893173913574377114604964899780907070499607826303535433149405579736445962237974128200533307877944835543836440951043646486175934055730226121493447490432879477990427224867274869557352468665601587497787294531507654744398855788837353033982360327290277930178837513603306052636629697516691202781879501075615690380535712247003674427956654285488257059801354012733919450688432601481574819567246311063647031768867048558250438941500115724379763755959934260003325285731719885258327723279098406402001927143277449998777121849465578425254880799983565037657575082615841355381922601259639675435736289516124606531829127511401691133870607253581378715403623880773367476721273324870773190852989384102729498761949307666978321219032509485581820668781892730684143672541035783538089198873013586802979099519370604620806611545008881687095519060657929083352597025564283491447576691513197326092072368490242705299799820593227704156727858580068083046999198538796931409245632456535937244584905254109625196654189578472771897210715898434473358893353703636125285627869712520197897665239646626197631286901634897430162070341012612369948478614700720408612541832622914492894390053869000263794734226393186482398631273333258443482784152334377701466152355720704891489281465743540209969944410046310773991278891352975801976594068682875534402793408274568166018617497099787159816607005904996119646435902201561541888884729318657156246072451115714367562496134570988118722648879476174563115285907576307812286367786151968322648107742630223484704088502480914726204552408382848829907759117300968955771773167744848711526052101382160369054641283949328148869701269919872457799715990580699841668682514661121204706805445209378325210143895152599529234328901905844728344689161030478353733504809282422388904526532861803359994626676891188446344965043222930301591368274049446224858593120391971713493939434251300844555591813074943394411272788503752319471791883032479136020946230633352998902649898951035603242175482064042647623085732310197969488193564784589933459334950866702302259204627281319073103321407418995078792131162653988592976480710901943995345452002294434536730668224569313158701407253875532370668272228125612380537935889874428641140328678355058651268839172817188715048171780291060026773714419684997309180252812368674128519608853368148749478686066058811758331763649343053209068974361265761944438669288473821234545957406773090423927921615029264203058058414992580615518204992844214157788636978515011037391812970272927519861536040522180452634202663291113098246837058145911020147448969009796967411461118782599172048071213770657231029534082804994574721060829412094729112283200411086382722325188426153829734133465924779418798054201614729717319559730654907579776697510092279924096938700844332852751167492011610450047108249419217139646146074949630439332826451796102250855964801411443705191130533525137322802014599782112683749691482866053882514007377018541600807041785182342114863917508403890096832385016260535752123226086161065249639042363736087795720180928983586341810931795338690207988988741969927620360757003123235858913768105763812216232421156196620857820820125502099976478996064951608003123049380736634992480789405090169728315925559642717800393024468575720573374963200481513455305089538737771266889466709732827599588782436849261424309066915826599711599003802886385235306813933273949070893090071841670686915188575417762132368392539629656537096216839423670985226551957460892247346165607679458403616907414778937237738709731481517973816589899638668451490809788823374713429491492532974558535768775153333253464224557291436366932496271795562771292004148148998645673437081015803410072577747171595218691452027007333813282866013717996526473128902633081783752706462293108595208708349849332113806194651728679848870559445758774249704276692588910749546824022373319766230280907641798707687508103248665212453483343657636247338730928560373527804491439474826228974341840963141326941248392952269086178918639155549310590093258436531383702850557945074928552017760850418583675732683268515450373238282650422289396153858824991282368832318765020869805378058086868131092737049388743990027630886683081478336908284736378142073652215093800346132410876119386088831578977396324819273112044439898553617723398140890362036562707711211172771001638354813138288291481336627457372326894864372901858421453406992968339761350752433037370653321991256970823614849829088400049303972951789889352137691511516217781704792741151920751346559455104184559951795607850997435600376540313096120286729632995492826734988438499676097501010478087545624044483072998126671414957171720189980461014708226326389006185462782581961357895916479731406960072778892622977663668974523639732178090407230335727929341419477500765647842573025765596466803217427339453536415388162769278952507304176396153411079136911785880435644564012821022560672693389305257546559757493084255495499893210795137546600514718618267392753130703236500506060671857070045703540877593931128081839485566020020991728863096928009933583212311680406956920113237785553972276664703685054075477995000012149676975379663997044341917920636726734515464681959146718816585663205569026946705579974035993361705157692857441080349877455213282605441472156940651265624554840265093444891082060427867140516556378833936388884399505204660147019338424084175130932410674017559470836271406387689552373937640928384362408578410114337137342816178856305961910153483196473250746195208075050816045715063433476162007900044863923494458842639921110483284066900668037514408218976008383623028253224969442333372430372205313999065973517137240013537884016623109870779011409462372199867039558790820138846054387851530233830764537533228543557322878284278279405227920866406530496837759047866640968138320078471722434496006147879699014757182860094125131584343779333737753773138338905503944124873924466514241596790612416009529364111547072546549341654544852702314819815338884612495705640397950331033872287709002141426217268153602885109957111538012702111420051908263306781890330466684422080269791602951217886847268383263731849791147146858103600001237344256295094410662373751158479122519301066206608821763837607236735891766002202507208780603049166188894197341971131539156541123848329749400436868655289661005008211909256954092552277357580058515264474442913305510086170161460087430297612421320480951183688590374498636852563481172462817875938116761103357696426627760134638558444659213457880069458570474976036949393014736116632363758575830673600282211353766451842617462810704943689914318471604861241010499184628836103973196750317752426307579319143194465723506460201136787562826829507186789680268847275835453448004137059456541112985781708991926354984738608562624265153512182601347318334389263345853814336026807280564391361391237679324896538651220073940265338663827812054775399274432480234565528636443020440296175305851498887815599725665960803441325491463983686361549907933227202263675869786107377916026971572499584149833307701432039081656579126723368650664937800399670384452578357498564732521268036874969536164194779886280604116483066696194473943417970249325209685795401913888562181181045648183188416742340287398001246330924332034673011009651924975771807482912709167788607874393142856876520990160437460876880237676078539050490185704169632657207412664111952163097554842137746564928278540923658184263444126255656332223819290380826921805105780462727026559189077840496650453995562743010773860963436146277795738283391433413930644615403706402439491504381390768747992471004885725049093848832715926801106870840692670699164273146818642076672706096764634534447473148665861624072145129424619248458144074940591371481837007042613251403093843361886128240110077793899891587454095176600845472471972290687804064438761478474042724498271866217746002822084687343044236526148402719859646310210453839453224555432559457092850874385387003103654091848840834675989256950684957552183173386597469613736126527615157584882671841113618254375020688851211912976071171983973935758667223971978987082371503455032560164112572739375687868003032648779140536752261220363101442961984851959378252312324092628273408101459561575963734470618175928198356997988219452297171743075648941025845795870886376868735039425682118463127263159513991713611767426401847506804894590026804290768779216871848902809957262687450861903371611874896157565084613982067451090214741625564283594569119208283004303999086009467465461121939317028875640035759386393284503323252468276603739313106426623332773529944842572090511640649901290680199066466384788698548252613945951708192812995597497823332621145682752230294698128932212910476702706268763483135167504336351062562979771537797708938833619485003246753610082591234102556139615452660768046938368496853609076789454043352424987391400303494921870965187156829791595670379797401673426221500920162979329613234372579468975386641393555685660467148973019564209957502937402789861138862109485800524074290865704111538630822416795850646924894286609978184440875928289412445279479898781140970658070559544912794283729625077537274782255784287191776700433641251129363467296575867628816572082883974178419441725723005707825931094769195598507320146749072499277983614975740881069343798288432009940529987636850187479252351746763670691199490702736109776600438693280942504256875885633916173915100647621848084201886120249718342342145170146777184302642309749859392960010861482525953901659333193701295788202023795785169252803610585024057872495615385453803141240736715260791347330309765305170619398583233914275869390776538358480649347926409492193124159985523336472470929218741894539602350290333365339110779811573539836722128999816657924358128485750327069845440024806157056995591945488973158771153085300331576624652760408240059574890418805018870754656949120502703156633584013936179600175199083790723342824923553381190078435313588331945450637444005305511114213753633405306334391036723627303698887939040692915096323150892578673058983221356688193137794243035507257343352451512959693251024253365301655814299748999167739813845912830464272679741988103053980816702415434658665446959408487938402686856577021160667777101052093384744082318972019963580930184467596310367724125226752586309169695498316827114610192463603253872113410072245959283442907061328168954869176198817315507219956966259000243364855349268258877293364718958229357194780267353384013175612983173065471078262531133269896392545084671017863267763732235553190550354658611556743613506460152638869398276931174173382988707484891708578398299540030213126370390678484335838012917439404899677250872851270897740489371822253850430339392952835151459515469572031555041382872313838526728316690923582402341415352118698930412748487935555165326933796072717456795739405114682591636119960832006607385267556469027987028573189052690032092444906960359552613685313810773533278011035008106328898617377283892415547915428296135977704670719875620724308314383155240863673394975612157162433027368319653719789078922775758417909117490157416003841851992629459470843960652400644396255585147943747623857029485642676129883486499425450145414624013470507693926977454413057493434916234002762453677559884036101206577585539062600609461420946306434502113499165174856736070238417956418501289715171606281588490391589083663931684170605553281626725907399609374363703716352325407386175438973559482868378643048316367949118680656424629034595744217848096628579160869074470500694783332467559862324164233519525616451722060205415012170688934014268402462949505347542755221730032215313161753048266557477614948293216518616118176784336743455821882484448989294349965582617306189572263651484385643957721487932731478709218824671303963413064630317311588348284730588444429381230674851159747173723466948800775663972492285593906532497675390788257223023623285666006479190930695935191607015680203024119041340414123110259796895982739891916348399345332207655052715277305994094941170833774165074087165713018154312680527320786174112398090373517154155946468660166237614470266624719424188923876550100169048416492128809034024923989702166903981671104655416992605247168520222649195191404950124406594622941787231256256418382272287581252090552697337141601765568804402610654165353576077896183307166338045177143772884157508650895780858566792822614276419292072282484625522837908694735765430115643677661268357846461043796484430804608056977965430176428697590435469040480041483193305738368191772763490494841694421283906212638950790648531587012317674415310366264565691387610493845339263056374859068918647402530802507154551198135567589178850634059356572940205413173187047323773441535525125210987838458487504229916617056258181602663602778634720611079532935120941251746071586476234736431549557733041857595442796012780651481639469396384353458112015381156011037027001006979727610152396594566267665439127490661529828349443898501266685078554932197464127838645588840169536885868998732033086008953977105668868830403705899926552451240689892406522185543245456110951324610812003722764419208948661218778299615731332926724163368971436834587886568358626962181955486343626776449383950466893916675297286222441143498751821308137071574940436698580369074091990186459911049545685609597533584023406853302520281936541507987647368851477899438846814395364468691832412864536265620508462461913686889531590778136546299327535005551569589490497708939236252326202532844023335469881913932789183980309957930546760790644577853523426722865887488116821988287131048604729233220360110708976602786826618091815479083317455257454817335422199189641930128516214040699849593511787891634880752271066960478554125966537964793036210477749330373619737363916555474824570856324790137053503079838215855996977851406483755849757642979773131213001949275281455624755388127388641775050831971019788110427551015230337753968680557738406467268692866505491311186524295233877529585292011248472159407587707544650095668904463378580910837460622734523602809875288012263493297121698274940438062427652584475208516233578534176248454971313341045123883951714878761213225468476009742563802620971090859464784535982356201265756768127604761780255776964605796084744578808428529817326680817083417763107020235643891602045795400595907812070256029143125039295123529855985034209050820037734488433788886230501883611169160932696939129678881712631537382982791989199197471226864522511476062853262478392647492709443958417918070062918621348163934068213222089392171684071494944591835186532190648460307425765743484291735770666138402513737983604453859969587427037273959028404220562222967243975786322677299240444239934638268896250179958986043123010532755470396478998819886833936030577409991725817824122125584496162647109530603391164969654745053965359156252738970387104621163752197360536507075154235366069488420380549237555759032715464266347417063600379903758260742639323462871159768287065097895839096139299844050069673226281415088637944299380678583978372412928052272811376435871617369335810387062976087233219243099200801175545364025031773435927512680329128817793625129742598766285137381663989810562697339503930563010989260804125415689658642107149759596394028470088695248265906796558987383462855109821495439977328848026315670566731089752676129094147851246930239124250559045456047418851094170144056237399498993532608863964901694665450831915652203819859690465015962388086161011637825564982318541981279622172764073812231704961808571501231738312676921679106355116764176092653239288890551651456966482045864456058088163497358762176344914006027171500334278109408623888984498877793979185319682595482934292716619356132453550407373206099112650829085920971722604055880963943196936624627832472698595615978151343955767702259707152493284514895664318350776533076316699273605748797253015984564074229387643967618455661319945149401669642036131622061530581445114733107280353368523841925643089632709288781248207042793627299913811645280851444911133843607482564856009956431294920173056861851978177764966444933615059416331107037048354686813967234491357987953950355251353877347752687864889643683296827514181291837464834903377028439969983323412285810649870461751331959511181615533489795092794004719437964947133958149827653001098505920401667066036750345460810824716889694475862325812535578590680775552521816825428640753763275117136693479025152339966778153914811463982796668325157568121780930008733998230793517312845128766053491233033995560230489484490650044877153846381336224583811512751697634633632168348360524174969096879156228616501894678957263699245035485872693143049273993649223722104678288515462197141796594615747524022491625656067231518642024351898020485375103752565108464235978326318198765992371796255312591786970577653143382736194759247515113321764146348612208608978525298857472178188662249289686071592404082586716224512097996664118514572970860686312036424404363390140359738865526341638971731295774870997265162005503001579763742349141316009771826522104218701158814213869949046474002135500313766723736682115268487168486867603862662977574008027618480448202045653815742138778240378773227922782497073346905492360051266798711421605608119304389340962562718463370943204566625960379108819868034799294670809129619961348005980794406896038449201338669414517941081129596970159026053718504658270868882837339995964532747802011028994608740076427313263779682296129491014727502438073205132777825398462756227806073882477017196167254284715028682706688258833700662831976498013359932034922444560932316241426586711685815503606090267972501214209903152483895049336494666724376292380385675090819531506028209746761461228455172766526772000901340576524158971109429926607266952959279275597267597887111047581790863863934154480472228791824960445914676603447823535482788375848256704033886019193179233054018406683684661049155381057205700602372168445834896075574242133579791516145494426862018191118514372973398903602714486345394550798372329785739158424061612349672859003807449053044213601077799126020324629861517617241710600791298939395306338136263177446341215736259476916474363538028032518238401995070572580031728642860388433630832586795487347901746164368990292686483137563537363476928719644327671716382310724792788693484787408197954825452315372389402011372889016790063937418135779077487444337774497839091392730039083032616219853899401430299850535413811494048653758167440422614469486134601372485031934272984742414628526038171166512023279092070909864790461566653856251970079420222777104300198404789174192179880304972949625651511718944977272507159773444678259015294101166070570436417856932058802204709856658603490207975365939700188326931586159672687037478681414438388612105210800254050122715141764938419774030456341357932239427332816493113220902016529239173298152346012693276735236244025042242042515197626118513660934209806901533600985360185105960269312510861284143708113262285335340979604103671081180059083702844343856444322835367178208289203877386855243566651110845011846558207163339291515976267883786758778490164319694158540667251165196477087294907322658936546154079576225237151809289927658206028969914286683775883705183769834661401316785005815860350499130547582098544492524697028310021387141428660265700476194948427826273879031432082790301478999763931463038127379306149466489248180080201372576916286425260383118691718204397880928094646680433357991925931850580655086256930100633189058949860502471328031381510657897028588200493519342175954669931104674370307886469606657382099370750139601614155400912533665867384714012402604887528812475676548121729624454235583210348153848424557163047497349844294600480208058225131081417231804952278556726258147476166964329188049521906076292499713797091816227523766361718614564773788338952813178546344305053179664313334801442580584988179186168268451416475458972899744481930698222768159302628786144320973737473858815521815740083159051755812567189449761816754243037862083889185022116951231786626372462253253208409892702509178070489850826295332626401751971828271453576445825822998541254491182456130204372383559333572758858413259214691769891123816697470057825387698694629186206082408394198129555767446595510887746711183466874579601574657170041609799050319434206453190799776753427541502039751640244488614308883748502091515599376326900592971577398237960831998295285582916611764196151604294603712591499270819091839337323448873579836362548092408815928500829532696179190784136221568211984003944361964909066061465284332049122624839826855550181968589888013636176958070397855487923883605512534021823980822248826629451183540487541023014597597325346766555853613498602708983839946911576678233438359763871484765962174669975964005601414870327405892619685895949925853268602893384202419516915255336509627515954436019542050730789810692729990880043205677541757204751217761915153350979187679634606324777751508950059993539824317064753654604490051293899382423025452140581953964866028002640787641154744100018396815635431564317959746919488129158610656811936272750199533137130405901854869007855031748789738104540356087258849594570725249689565318306535879187723866571981838488086317088658538334933478667925704315464192910646336885848504224636467354866560065576193647834026378939430811327148155610047527265307262717499379441852288421111319913279383147071978068568435450929119278004152500935699051381950710968729878021953452692400808480714771562879564217116435219183288872305647331104847139721206841436623926616129865786954742477220108221268297582857397249035908867446680208177956175589248117205366946751852655291819979051083452165608851311219688533489927865806268668440349236892616584487054842325163815739089225644511925581785018256976334039530736182511736143011646532648009453361759151358827737538000245013181649988141380217293183961730528031941660942934983835003424796939443191677000514528223856885049570170142283502926262319856039793714319088476281453949087016078458646260228140580255049395346072820108262004579680746441906284690942461194968625109331553501602872912340349857994842577456445587659531395024902470741913345370754378671755870919871209222233472184356818235910887187878512671229057908191648140104655267419382665505485483262488191898493275844352636889382264418144385439606517329939292949677983960487285026067586915021518097243622169888235656725229718924482471451567736786108027862359843392730716090699669518911739375081931736053689675210064503266836029099298909132039966924628526304008622696846269622785101034502905545085252095168653435501782790815516923427640786079050856609934801895255230923727413611303256396760262021427605926716346546599982243744397324397714870320598306717559526213090044123766771310145663933185204455286707755455406011924936833565716092280120848216314269965531435712196271430912078775953517512941858758161248957495481399040990829220746777827891463230146249560683194325166951390691330359958180795934758217957133989335804706359125127961895044150768859674185657862094269868667391808911072660387498624723075940723627018511003147200592186659219085094991334884650519294472307169211434807357811646341669615339015031905483495137737936222685611524568922682019788475551727572096683970028096454900194535273778948354511345649573526812546758223224593261379737394051978517918721718069913644702623008874974618441302386366882257393028273379556557854990384500836088030292816674897432085305140170571653749615366199795046301990443457300279746538615782225795296891315923850442878331871269169607667323736279554172197945007960505350121404206335713145197426690829559759255386748632681232085125566224943090695867193433367832998678001162123553076587688118995810266236734745017392367542083421012757133550471392373746951306788791181957586237002368779042916950081771402312541537552559927906382478155757200458504878594971812281435313269464202926859465702537097422421142859731308473323793792541367326777996041178883259685411200608178940445799432120424471218993380802779785602795682699194537483521887137922807253146232969684259607721469244934259560317830274286717355415915560638348540897934266982572688215697177535960865955268346487855441241036790529692966620512500004807421572782389482776648455242756770749226817742230397997803233602435232487245276360926189561032510230077587444649117493281361442664062421149616857111938033937404647479263454655132425395539939795081516730196881769765880905490226011530148280693213884827629135040101732054077931599936867852305424030403380818450574103191469198825972392787937012420476611506298438703361276521148201386628771894922633902187089761349350931900347674029378703105959266944171652063590662511735717872071765751340221681815510158248752520334880245865093290420803898959414220753029165426274670340581856120766172667961614691624672962749762183530266941506665446544990902935016007931094832930596070715980508937984428132050680541325177533878884127827440151761663549392816535740456898917505364099566247732233809319792562197232819590033927442406282082892273365467334272442298142922359885233943398627724993079880603766531644166839954632116705924320821970321813347142366216672782416921088199537671112798771863279565753860119728911704082696298384703784328498917475590719634029824644528288402726408500241020878893373558875934869659750378556752026991665096342345358688624581585765907647939697220709628679523764548048304406735297930092003166545613502245848225506480941980037784642096089529226533344690491039020935552525458528565982935923957937251186938234393111869865219841278810749681238464399776973029419113497290527714497056031301609243311257024103419424851913342797130427575238957634662766817257009936645483009495396941341035144360951888300355779210020294010135054561408659417201491017127725279785611328847267605757396444426863289930759333749725676412330585414352672111101243776876960995493426712077286174479311779459765126726020820678516800677401816080100834238468691412969198404004088488840743663817717430267050899320728219800871668877315607403835668485062281805746973636466709735695267124997683221376613833173852844854212702944194232963864365276007924804874089480731820716579782313028101190138251570696220066301908049838566795796605095259071725755762089051493988215673045676729085998535466562773239162824879498717208282704660941754622427921735255623701444045213097390938874040095289304385739650612908967771496078992551664662597499937034145850818726388335604929560397218225990324689516215427738110288691499809349976385095384257884238715979884076741805962296668437437867577993096941130936079092673734753690283089067317405819385732562948381622825028522379194433820783334335567634500582214078125079006626523300527484990045303891611260461820690097296585911033499647804729981367843485554762784793762999394270491229106940503715676921825860208193743858979437727191191015924041440443743288612983788819596280446134475284950063253722553706428941188918479833295033458160449940542872389511709152868464930623942611302348594504275171764899701281263096366383002793726231423441160853151148978175923381439537171436478701006882620072397713182449875642046994048028560462461222526638322071211137626311702669245794154000175386050314118508018299474838981674951713076340599364785025075377679255546725599315027956879012354233969926838167518875513923150671809797138082970444337631684778503119284923094666694198212623096621572773787882586860846302103361066219078980475656583847748309136957926255913805082178808423513881368044951472820945350692453936606700631712797129462946919430886338361355212340924720611286505705009983404209174593257942394553540177822535832879847107693253457022814025951056244311730215456688200017040167072405287858172483385003722310640826755265412143388352631302867642066394554683292142156019310542010383266471461607123548467032208691285190820427457586290200116175481457843438517215157147581395650229568890592247219794548155622223039508807968457628805505546454260160981988557810905002633184063719450620904396252392766668293216675984344943455966071578352182919731788142029728483659376221324021104899527910791213978610298958576985104012791231208879074358856369166621041968514471321883841293750553092066719120042031773258785218069000019895594872365747192601170939475678884304330365290278850271205083221266131225673828265216121509501372906157274530815626759100854559264143541942327470377322426084953659103467733957930236736366359340090625069780100231271171982453733848752309124057725881946101453240628461115701613222868378154881526226676595755632300940136535039711868622380114941420117810160031617431976983531944331421457187667360839334705523526178468630935719657088294717332718798273019061749774251231032685900611833827412784049329699286646022767513940002670536370822673803731709104842685037793984620720485046213279872325751770818925112324898422228245539347285570701426719293719245087279270802614148617954849004948648338358848218328085146814297058283274381143989322575296467760349733118262998683137476392782244794601739174935758899964649760111200029874176590991604711254176579458098928560148355312530461519125257796633651805969189212910461919878052589964902890435189638795386636088627251772726343305621757702330026925315024637195552339460582279864617662813432110714726053460391018061435750761377114991014844553825138379878604677835174007948594313487617135411810329025325883903953075630399139997904314426634168997842202731277799970480183811786307342900287178410897630500135843723643337522574761842947831478089395756988934977671080661702145874688633104365474570348745672806021700305511679834590021427870089745735236849858640655122740890392070545768678497940153461442123001113756004365093541465307961310454080703722717475931734344112661002565322603433443566406793262386587671810036908964574893878159559400427260713826692075542441873638146249213256121615977610585051629403232639618420728217485505521066745853239310873394345632239180762645613632242439250434243460377774219152146334398599702127412135573165730454794369980024274348970990795414200544878093319676834493083306559239711506183869534363744381209632898108975253713135694844983334183882490297032662657497846456108755832740140355908800725112661049470723867116818586044793454697466243902723409486650428007920756127032291478524066614070224558084067038961914268150699705663320114347849842882053007290282685756574263755594534140927969490946153571883358835822038896985894518211467383096432924546887052554867497748318871063629702834830019833576518621080289941938684345819871903569869315983343722194457111611659446836377347439090198380397022274598922693430309021257584357849931210004100276932483412492652201090405003798777896265703990723899276084427951785782442666354406830515675297352741794715368921515176439805466489817305424207494513815289811644429776569943236168777554231198201181997421020086202308897393312326849144886887215512410894068593975071508835628722381933965781763669781126165997383512678842735544232293621408486723424539123207693874808804998419397758819467021303446529917732823727796218951245360514709383745963121068914883766964202560340046157221310934913173258599797433947839609854839529433609294346414690462783297851176363658091920727695774127360750400347902665531448505217714866434333756478960836964313953459974791819155414455592946258588452835422988973711850360696323370630856271365119203032961293716827081451075937136084801962442045635272472945580409205466511207110044017984733592446370363132338594908662743980187090124490812462254382184449643229119756032957821120751355129250163511386272730520819975982904036257207200605043268596471623760250113163778864453413956694474799448344726020168067954135485796629807790645213113156400619201394366181903300305854829665091865272628432692393694511752517029523206933594816982239017883651814680544077284950703057415822725876011053124970557548331034167376358881343446390572511432689243106812619539758528390661366347815353131880155178482841725057561190749398533479786119956145266923366639731848663010938399768702373230649003983434652208957996195261279302043576828435090020882046210532655040394981620188995161802487489655167223979924464501958024812680843837036234770192021272670028350953454031721953619821917730650475697671621436805335840607282471445653391782778163365949729762867782305274068912671059430123964404633839555155059886431593148242632344266308196066659222961693689797963851968133683893356684158881015127577584772482450007937748126766029085506256286793218253172134589944733679096856503655668346339013315718103199422209833211928189611097602381136003340572166033742951995139517918961556710091283891060376303560614820532657315044162240975460267004655744692831358169007531954484850888806265194586800392562668805911888856907721859555688587739479039605387302983337943653464364199479738844656166205523155593514404829185638879279061008382518080689055967418107298350036785303263759429189106714481214331771844313743172446941068254943630693028860344477071852277580767966095965059767862273077857731544641250469165016533764091774606384830482675359124215684836673884677695213634862318761668427418735907128348240617649403946045695312961994582179862117310639084611648243479873520707058294848369487235932416713523934617641567296316318161616982116784989430816554160370109359097259787835560639486473898058655526846440924066434511848460924934191591081187751203512862386775917024600376020877915371171900854928645899794167089214362753506198679597526197034390986918930957808822051119832484248900869969577013618620831879724889175692544619317655615984214576020994659832023665330437168568013617198528522388175011007299044072676882043554329658090184399380083307856542549574676110230707018722254336113135593838640066200545245862174484896163762242436225688938675500513085497707240866383792055553619441537443289102661586986092275625757889806965998575849044343573228856710572787823031952860716982603139247106992624124499071185374917853571296906863246689261115075511197488339293549018690552831799542178907988171194154630149968321615550365017475978566607866164407998455732499827215250742546085533477396771401277098973609117749356668759276874976490002693614062693107819062833980141875195453015654344533198014523601225232347846379019103789837344904838055336373883079374693718439067735523154426297523443323585567731302557069635714982521993359169133354975893000130120246496874939409441936088741990251001241722162617517905086054638241866558170416307720715798810962903347444111862908142399752650777888253823294267400152296392827942299691417512655073550777417466941727494744842034755717794948671479373043172161484846218715468068303710006874379045450284847392867082952349853424399737004808593072935677409687955253953786169550647719896929009505222256751470620157247340312943672501372169671929744881340405600743209252458985708180787731162861556726344394254355314751992675898701152919390560275304352908318575579478069511694040484866968208609617748901054513304485284243398478361070948340068072860319218288969601165797388312024633508792066980363297883410860354164879062161833721567790472482740768397047959158472164589093313761915941423632367845974081929953313085274607380457092964991499957938884959246425762636926639921462076793146917411929997167936154743624217993664063935680838247004588554885250144962230505909237566068778154653980704146431040700812523901526674528680011987873412824467224185401152753064330782098829600712101846047634388996699460658342864802913815943174576428809931786928028401908729595053373896705181738736768423588325126271736369766706389923416958419333225212472973990885411369707724084983109470893788921702164958100914193801998661361853953950155838486651984219149210107956546022966893719749416972529312215915914494778301724665340613897233034184161037739232058005022444097257974804535104604179530107484198552234252029099522750031268369091625588807534343279036102898335558889277729171639792035427289188335992783132988912558534161508780648483975243194506270478609478159277260580374228628775001364599612592910347515513556697238540254924410985897110452461240583126818529926576875137493364867299910045725519761172803091724019064045624485266318998629484823807344714138214035796646537352369269440939368564321500137595386290252960907403032527944239739990440857826278893507975639381676395526857609577594810491580067920373349608414810582423870039833560435637604461969038155006446102716099102523697873398502176331760805620170853221442283372223051526541683099774529435672112577142155631662871681908107738326600398151794741272568012426763593078468557419505442839766426619511224997886871820136878234201852634046704766099881650956150174473831748391615507021563097364958297136257726820142374044428947806590370786201679803618423253908235264453064174287155094010627916014044769936643547117517104591032313936299395733936414963265790884608009163319275984589947395013345720040144418451868652110422585449511067159340262741509232398857811436585221990481682526868103367401631202363895448525554501389544826219690732506166600766904738519143875282486991338883287022106010066804083895503182534536569119726771110491602707414443928280054652232073741107188641014985447741109403894298233378354153639345304459793954237033527496695706230852587693717443172622453155031068181841530132803302080167633848769470359825730051621706593074711372411823451702104658207149294869235516828631216058874642387266081539726766553656921266329874097448799012663381823047748597073081676143564581351793490635261611922520371016470974226841786740405599665471831827336751282288596008106885072642488322415379478624494118447159932368687778921084299636684115456616950007084432327304981197421802114052757259400348649457167388906629048594775563679188474169494502301233333494532808592728124348503477556350782966767027286241750113237249327805176320584810484589007355913402486967170037739070570626337513659357354525109382635233858646819929117143488155407027325250273726970644221966680187250786486332041706646075355351326062492125136620682160073682160907581756712918618492564923832929538496244566984890121229088204077619313643943170354498905080643657987532703465892388827352797545294261142547937178255783867909738319072097658212752679232709961301135906749912923365921601430225242062963567683033427920287871855727812987638029875917310499660674318285180596416727926408150187468830005139948067932982905516865598652310135545438611584883664062467305522220813434112913256033638016382263828493156026502840717515976830062005120147644903194166067427901986776246182598970752446315259459098856991126977351465371892784180660602672724169880633406556101490513604033439538990509190707053791036557321772162926893984230609005336506623942948437309291313751765600351091294981813197834138721351678095793309937644988003708692845440909234619807344669140574228577182961754784168297924240395547785764961326979771873160740651931095378716958728769344784020339158226128378280867675545625128988828102264772932641726053949566250717851449914944343756115077653138337563163614321325320057060283575253092022851280982446762159686125893084369661609135760434971596776955900752737490660646691844802866574777772057076495532318194945214579526837489959544392762159485396362502418741171729922126333210570586711250391979228841070298940923245461142053470634678374094561918211539474739328749784723358684658977701260062154683105865544283240360168730172106664020637636793564972507666123890607978085148661028105484128759592504022059429053007462804500709825236659113057096776738011787312336760223341924808962355958621262687872490352364709002134823746109566353959868582400364882875780956147622017238922355930949273686871641691809140476818002392443589639711754880012704866609610408360368888530516537988926456248145202068187624557108539954342399354948094655297096253947349606966237520956518632709653537609292716281672480570406058016309834262713247866191483357987565788746151495918563695309551531233113700948822389923724561002015573889063675174241655601546233714326368662107398225635029907034436951563488015396580665062236968484825642129287732671346412465117588456222205775691062690878864349055909197803158316620163832742506218581534468268372549210611002491056366244492507122565955823027312397922832245858147744001413030921113487341985430559169354341434504050765202853801792938826538593185960324867210559528596726618754237118050916798285425159629659676283883773259586644130850807104103791729429495072203752485108511075240790924948880522796348326909432809695957969703861139521894043421485513630668327648050932701576149045024836659247673835491211795058012038187155476605360987883082983814423474649944883892410647046730586170600529275489305186496924839023022720192866383382252001264512685811745367244274896331291662440259365776331497930366403935975159210209433494756298249105737829516281868245829379574733728813758875949300463434166574576045209979083119275471870787491632515420904832644433872981407258690630358542305429133545294583576655628876935567631550235471357315289540179552735034652053857182390938469158453525884658754665779736550175643042875924779104684104828599474817168669198543604518932289321188863553997478803501212947814072652240241759189828358496184989395169966288137934435157932227596748328520990363998839212471183415097976952872085760580573865535998951413316773720947943875417377382251871578295611631724450720931827641001026623249291922951160980105883932007791367183158220741662552448489419893308717694816311591934118519914268037070624552817479197870936012929671012440501733075801029405547249034570243843995882094811690930421753199761617734846011374945397697931773100756475121763415822597666047382987581231007700187048915609919792653388085219462810629934167363843136989645948012995128804934315032949144656960286872676418732293670474867583292038871397540055540698869367793508308301468197988443842904506638837025768731961429011858356699916278453883229925818264889789701055473284999348074420004825209275420470081070597471616936506086505783856630620928603658128300967821149782901445092899180659268773809337729143137227577359314112413177016653174115365097861239164165956063781360282640121374363258569624102938110373957387115055947806023345289438564850668366503535042755108496806190715185793462920043861866913875108002974806945249901098964924821878469572086979330466687041386656905516756367489329370392004537686131966520920892823041924671233975877332958404398174692969224083336129217416208111837990486600013736864887205250504310057398896338630798696486645126224294049885196694075453763749696171132285603004464144537174158392560099086048379532491258392699151123727802839561146817177148417226326101349858669558591877905353402443521430495487080532867226316507647142853603159377779463713243909510258406266318128553329496334884834788132170436960585801447431905437018977625962690392662978924329656462208423654922600038431895405009057980340951167211502830719811389491285210824657999762122281566598463890802912521857395649509300469831430013213442474793973751816007398276660270387720607088907362807642509777433330140120732510748498784001286391115213422463427116019323111256060788227231902617092835667019464811681450021100304643491260914348481732109844867293660048984105776289334335938736982196877926755847603589858645571178210721083900417249576348879237403207957133055496265461530994741033039007946161062677078824639784881240046437702843731517351949184906601665187074845389392522343070403557469563155836198631556558485292672304959195769549962743345901823349214037037466821247513261917323097192259124434803802399304697984408383010917248188870098831330317882261514645914371812141464334187975282620201931081006715190409233630434430193463674478483235740224204359916151050333776836740938973600100197157833744474828542225126262571070651366652559986684532674659737921955362080510589398755233579303720915325209711224630415559153184210170392154541260969629278024200581693421264436193138876059908347686760750320677255475637528369836842168570613623478788642946112028701695402384676906784148995981347012019775603810998337007815331279286962118498735066817575576489797358398822245609221117076143836672889402585796789570988006895330177204410982209277432628352246497944289817937022571189997459452902573681330070207729943477232407994639128632938962314299501154040306678493570494258106120331818065342699949676192669904582476636011455295417915867329153722548705086207099904116992358603934639796058256778465601134157040018281870185876527121335855646182982030234537981236847607845379523938812391035819568926212794745808287728546247375701874402441739925615022730140418413968430085683445824908102314513049622486312009445935824115764739526554601310857407981921634762175532130919160465528313011467988707820432009545344999136291006554164898405269400030441780253205865691866439468102978731302238523453684872924110025181128978340101208105911733590511710425840866834903987609823419052837406657763659693058730125241926278112203994818375594982393928727780458571647401805827561796385503392736763514950576926668126906207151550763545823383629423393159959983472046246707352204512225645783098722211683529326617024631420349142364577855217157965761406064058499512604358781986907964138106056790543421730354908702262123904330008755356807524198586540223389350871382162400054790342738569608666899184279698928701773366983573137872021967347757509662962944680699036450247351072248455377743949914437241649359633912600838149601146134583191674678431176731517704862032034967760455056569474972769547242993577289904846736865197702446015250816400602847969332387241838927901353728096280143650578235972079852860415991728193422728680139727763934098813470049143054725880368636111751306072905091062251204576573608873231344045090978938988610741894814487448488855397669482542255283321243515592834394724096749857370474084941686593351346736796398842578593741847587788753911061408744721371312370822247811793998689461709761021984267248703492920291375099536888103947637349819507610375777543006241242392662501955449860590402928475812181238727638871986643345705052944739243402520003901324218102921920535328000063582437166713964572352184968736498326736200474060317163790635122163838221914049819242639877424001608864858101762560421990873453522557626917650765780580125100562045480270464150093554761124208976187243880649877635642602760731153811022957461557025129462541545096340092802272686352048076091683096853323682543279654314417843277496908050394315309427122751149836213841189298636372340419146612307883992388703663169860649219423527035015843092436662653090089229873565211230686866938519061971707107341671572804894651890660712738345651642181158670294595601396432474970268069927201889580041847768008032018078403002741410914294228010260525324062411181657318350778224422568140622369787768384385661253930052607501190695602959606674361717009120353426133726678445041568775284620454098166638253413398574703611459914461689735038485651329030036785641375354062521238064849170725616465115340094179604466620437818346914453604788271244496765137074447387102079452680364760831964235320752729969793314902003840078504230240376782527787758963926117319965006812286167848037561542059300872272323342552734586883803071750618049380247707755118107531680926161279560311752637775700365846098844805421901267272967542512006301393755976126677578158510621382323833047941809967864615645362134655127813074872784778931176017745056692974798356543055590184000964771547906124761102804043881663216486623252785049077689373172822650053673517266418193562224875108393666352930512852389734768720288005757753188364124875670370500678609435637508472815247274270847030272649753778079589782601684923764863484100028570364932003476482511852443531324966054230118962900334955696266449589745039773076651359662880960488076349220285273677156448400287423637204587952136384711973929296909848208057035389856404019203788588669048817182775909262128406713229049824889373856692382487806896003685774436314397916215139756581891313628993709377311429524053323979127987542702451949881573430759272981431858951686922695814868421750969619833983114872962111421320295337933500511668531891343850157536336683232607238622836616866441330120163827515112505345305593329619669878093800224482967607531427407666097436899590719776325351521172451068909712290981736174866528085734615229379390348967181859216804759551075549775741707070652818961451426392038643211732701052481537535170575530038613107381893093006517063552314261533551212083720589244722249417529035945866168312597752206494000102704475575769718630132161658889887304637549087898681670294952705759450892570480945017832120115854314418551864662702202181683654852075178853417693008614764418995301171484207571682647094283607181821058458542616794028013420383040297065967960332741655885410785935395029546165847393806282107801318344772473079754063577063472307222675458547373871206366418422747675300740487248455732903931705701106439141161712601646018398897126101647806249070928133234048127196884949863701836238842168994110805523880413210203843579681668624218987909059723040616814984430142504902607618572039646499609259307534026796038067052665703561849697155096620368755329457739295709509668125055006784437687471970573077944060312855339652755520216996707903451876586994870666146352193708816062053917666530144075558666605665234861161345410289275081247797000877937869061741643958187997096902344778698712426228011545407421126201055235176683162919035251922527405099333980287504009564796651750939049285676901206743750819330538888606701661912655896555883549947529059396033848184704272323780155781610002461855118370986080745007236153212821377290744854515975610273004389180138901901541687809005838838760913623952604457158409892825691239123991121438231476639634614231568399175961724515472919440188877542128737166440490382786656105523953721468283837452724244097637553007818595282833614085976089049861144532365623885550116842469973000900967949296276194690350458934367510607077439422519963178247594246495710823964419275543027987322694540569139715379854435984840919061507036322764819733506319654618186480769881252178321055918090995033710206747293855934343219262216176739729189214492161330940033025390346720713056121310579932475857454816469367435825129474426018476564219372957256705903225339952198346161381645480492328967206937980599720741289396459271757022169602971403026935346037889594202386853529994626021256515314747717218380696781791115070421224867931126632293753303274475631467935461796947427638495633002123068540097920884533385980348677998445552555913630375693399477181533691147258804597623237990141909690704279475934846693214672154106997036374717307071843564807500533432183679824000113438462485602130301069183441550488867957282483009510524861859889486130616043774801941583287351073016030464088831548778127062295368892220784426436882004767240887678730284722672239706531552493640693437342069201299660124266641023329443579189373712733739864949793556251728522589673633817038081943053962478772914198863556830218302694772996067250568523442161419218617771859071008068788017736966085498358358257435780741674834131420665212884526047029011184725552761132480374464715617935338581468537437184172153084506040673553348389918962102294579351939164485950306572545502096298809659653862974011129554360220037919868111176263494150176001490078424609812081067737137941068465719451094635263329213412267859492143739768259142667628807360030530483441296895459694980420004767385783280357246219947748723967381752644115839466148088238881149026978867639958094425887511901723584192949503092397115646032465305336661390711274972885020028000742769366765594022677873371912857719689846509634314566853574465176195933846949457586858356049713595939366300823483649584170390257869552283324287389009115777464543805560267096305884282603773201751636801143335936739230245846582280279810010119790351881992638027465532937018167576507050564883861956501446507545604712388717826929859760310819520152693324793982906590130362634166977780038351574188091244801145776495234774760471063090303316457689940339732576396513690042721556652201147766928344213343345593409523804767246182658730802264962664788380499737230281014966393778207706730009726666073359648304440814739179662813341076503482610606030701690018018081509401124009511009636995081889369363084849389269278983866379181804255808636071867713014438683661142794408670522629467540625329738130994505122092097624922220292672414479713430969260917259016701779959768984953322291112177024403838179178767769265143597993762961472609048138195370179458106641143402796358585656551729030342029691815738729397734086677634971606706397374751567741183517850511427493335148498459009568296075877869983612060301011927547399000146463809116621161299253740017347932181028154301401339354353562251581441698323486823067775565838140517457112361678988766280851202313006641336566332155610448724456746593612215648537188927731349883691418824961097952757018194650828166764440850596994395376385246669545192899195378701761079157692807532445851216337438564937173982982343063802525896348056941181738634727953256801303333100066094911962877195523130082184370784321688724247051222186599335457366800656697070469862397428579938485217476106111862572378443429217674579735852723581882339004454613230831056457199498967360791541636012177052751483466060568270547642441018862864588057737978543889859088011269517782942137923556310994930296432367705896558419307222522608091397776304411321431577508696745217595197570766650631636389739055274899095766473829870704331974776922747218649288336176796286221374070297957775463210125551188666568778721178808764067514290154256237071259063590826654313003105979083980591732461581781002711399850190076548456529884417584131828328605193945103022473442114240852178592847129551680129929124146166571527506652073102405083549945238182107481766673594516140176910674270523313890872988063235231413663706407864128855052313855991502650811336908127557209782907749404393113584788714209054231972501818069893258354273513020180726105447052035909287344245322053728486181648725812033078542324902909531545084187424658954703339136581269712494869118590717732340888686119174223278223855674379289157186911938276224768744183479745311785089401448461206304058730596912067073015917567587426009770999978443920271552296825949429922899052411650995031004178761574461171904388428887879544061089350234560775500227853850890640545118391090360174032128756077107298186386744764816786524295696331033288002437400865313377903876155976186347811039366860934338524427959109785877004340574859813876233087307426726740772520822156622688279102749295373769176888756133000881051261264415576482529047861767442297247479685362951412184919686860785157326008643844641369581446592979501705460173338834677102648409666862495355394145173840629675666931651933435353213314224616859737547196228210304427841663515577562068963320724490779008935928928870605094095278872373446741026681936510218571494770682516784155054294240509637914629186563244036264665055252042816371107261271173329665585817500084405627541034518672883440375813681960561604476159043133821637517470476895859412257232977276212209484479087517161757579670562455323548780511680703616527234714995543133915942705625759990304231327873852499829826348144235243991488731887284356804579908111742479824165830505522482813722285083532463174448277649700311936877057438522591228851678017394631757933577387096582476678245161201906643803813040660121377438251125665965833078838808030103342620429680764614246769435448646885970460290492677683617337227006627564947138044849410283657799658282102956956561176892764507440429715249970126574647982256202017300994509570321347699083778893625000829080155198478260852827468039841979122697677737292624332530123534886835292718575890278095959967903267727245312461517397735813193914802319078596282406766791890725811865606766110275188667134029820365539696497781984948008445588289003352670471463391920570906438583704647544076793072979211356858488530450244573223935757553287391995838045317635417104901114462203481419190669032617657374495880570008780661335397136326668896028106173393396280660120489657067123660746622243862291313871679589314060800118717076635810815134386063886454077519284571399174334303811795339529975897101111730992569732213693302518584161086939288532888434435499614980152771224086933082686954350486902701492070981261471518174146746676338252702086166685168157132997069436716359202171615334891433205263149861857974662615507677274297670836858713050606156522744681857865164527407000067463575300471636179949052323528125061924325070797256818361174782684580653913298791364372487401184751717200371154814208754782090190347768134258440291939748914033807157898713946843069614032668664280938053461168384342644322709988145130014628264859296455788270316363658847972035737501861713391785460668653701827403095560464623837663542367830274196206467325012042844455757874933744587121047185299101655176289814111717722977806889096448494369592462289655608424948294628953538329892767209158916983133530421691149040407833951900420250357306486410973465158707416129042019021593508843260366337082363238217432953639983469099126131206724732417452319993424314834197523148424718205771871023294805009871784053443191495434214527750422120176675871613446016956526299956788585105532382235620348423057239791784899683562317699994502616195841065047637025014544046868844779288738353555508608598841312634767742738307679146065836393247700922269355888685771808098434706500473004835137258869451879924697245102879065833457863363313406584119702720525737515597157353325413999861528732084673114918151154394917796920359485823170373055494846315702201088592609728111421566778584208420737802633591025830420166446966532945768439697004927681700253198320896106734970196378944325955949541118984872569413562164776299557487091166712572853011417689647002932332446238343343628026241882226761070976442621307838334279737782656336341208730769258268718516185842626798156809549337744638597955738261543370822299647737137989107113604801311643205415704964122135974633517574586204646736041154314970701272714583095788068808034399343285419624069406347383834953808724214992764486636725955193108166715581146492863674057582534754485170884980865626123717316934386038751539931642315346778754920105158146744794506213403204323535160737298830633937888232343493774789114889235586220953309474895673341655007825705883901354436892233332807242748186831060498874265103077385288936607358019837590445292793690907711603593742255739491913429107875820503764505169039715995813770836096178049294001908737525629942665139722636562218189529456761532419376725880156507174474957975744291133578925076137108119753385997775737915191793856142794067256451780031492369334245832659561101100518419874300084387179593150942873330528847227319575908713529242971502347686478490842668536990160594931889040273146783547929760219430481677566584955919006894258099159212630675502439234951468736371381179014065429050576201643694485627173170182201763153140371355167833574548178265770485497956906899374763237483801814940882127602905163412736675824753513478669303877502417095244398073906149142437377580594310753734001144753617010175367336844323566574815995832998318528191120562998832993805390298816356185055220276114609971071697256216159488174605349399380856486457487082142045571903045214696146680311092864960261978362716818922579799495943187103873604744754515927709962424110525772403353359648717606519820121934705831440035538687348708628385745202495618967221561836034804565242525042638374521179293899520436757948819920372138779715973785213286999216115816913636751380809753630798640305607852277417413120447611733924853043752706303894637126608792608099802022676619781677642156075758306953964708429989304086851841339410239020415148926206434685436595415115502689484254769888913009805481778688149706988271916591627873308057000597251250534032953034585691278339028431880055416830936132559792791685534432383059001687278733243309250067378178754271749523734235498878485322870625234564202775585399583367765827348007449779881530400058291331403332564055105038768140830055968808910705364365598536229542580379190966194114019227690046026642389963637161872852896186429022496304658486792717788515889510734170437597601517281458313976359797343442687845794179291482066356462057796075283894514070205972547309814937835584283675065005163488561796313016785333362492522191540176400034956392766103733058741359198907686195151255642912697050349332966919314966512005195340374257580952862141969320258788926738538686764581655717170767099539500732315392835329742325516938554803287085334125475507858774592262420324637064107643954129398073490608991052676746353860472746871103558265092328016047761358860278649573204205402561663055180537747124768713183911994178687756872303749725535478317658573548845690911940121522760995789607422947521401504652781394698998775316577482404664630557819537360808103688404386450662966019397586118312612787966702535944061389157328359487361387595085211363459270664151429095608948550193589180280003916504600882645809039221166127857344747821825195892488713916561459530669139677877278957591618199627413966872326799963460950459738460397131803255588895641601127263482883395955308865556753932190798842103688260043866460464584841824449739499666411420623886244780426617880490659400991919772498385652439424944556337676623079060901601577198995469083799037849726657344664639980354262059933043302759457461611343171505216979678573686895866127965070573669301666417525177948927881905888768938178047920168550426590257093765354142494233277052462983668526457391458623442232487088652923122238500501326151804683531205274905330105605648141820105660346980508598344548443518804429270044121061778128817464429076300511133964548268616709645545294991092646139392859635048716811178369391893204471722906502403668888671843732912617144077339788981461080628784636573126677680984888131956809559350391001739216563145059532011781981043900775431603661221148428147215149591279074028625199289347181733371997516614435323554616693130448351565690225556663915675487593952759028862312542704871928021714854237952225901652335989881274476252184162798327736089915698940245554371322832472450923581000451224352300813435819213066906117692756424378111220974930752616668414027203915532370785236729264161380716268912144761491156720722357753160215663957550823259224474834837454713770998294776749397478600042623448367500830618413753006421602227670751573815762034414959328536448319632020437961497906786023749217666634782865253686125679024032070783739596099820863272490945685388840188617078614985939095145296336283609981121629906150513524713521840781432382292383513510874641045929367231838206538736999564282822145966750249927364136370348084413909177778271948706530844998688447836319810001997771453592300283367351794541685450739828408618229564412536227598848924339502202413584214974507756373898833715245186893239282851027623411533342496835154281357152841544991343352196294999231048736359695456116779834678606336352549790876058507355050783372804707733270097658227180123199769804431886877709511337081095021767436413281492986272841112781664342465353667279618764707815789292340756892103320203508096178216577836359978132999702015290142108004623690528546700475358730403527211830900542974908800489625630084026460477857349478420259780458911173702794954876255225699619221765870035180427367898099910825500820819392904107205513358351765601995523257778278139432271728725381770097549063996888931186963613479224182963865742716640773739284332593748120610343825527730198382085475359422202108454265396510756311591817168610682403232900753450209671360033126519672158621386082377319959281692413803934785061655156719655406830891497659276737183663342791910158531939971020274153844339861838462764211295053963870149190287370556337592710606459415124980294305612523690426596692875073339344571329784383570688951969068847325153892489792953911750625673534706779737134739587562580927785490315687110266088791554280433317533038651468498832156152126143942942524396904713224835627753306074232966965493173730559045298963136449137958582142147052156933422031372663315626758239155873032504358722809142959441136213289594847302587757019727105865433061665564621255520191701003445160819000135363345360557016896388163962966978752155873017471813928259701180778212212105206539241619186373604801096126017109131891860078210888335768133852715646721761710173308689158573107395010557293714423769375750662915248120976166074326176288976319755844227592008235262792228149317318959356265623002580610080053565983739613808400385324306047460647814637698141533280249588082157548248959880440635991174798444249459343729735097730030393379841115923855205667707648222579836150208811887743301238430585489903450302794993337919458858605174746675223955031030202579046070212689516643939370840878647848591227972816837323645109980869045458975369626812128890521354096294732430801453059200500094973103725720427900978320288557633992467712707864947262034612815506600573390184608056093517054910138806549591562163390931016192214669836538334844673189807625348185300892551280800971389772179976595157612388216085283559239856823027788173838772329871225316441445918583722765674070048812702654278593096025039177939642008752516040399346467860774444127983437960367442016929081804556055494269952737637940440950695386317419687396947468906118221412271773816762940060818921145945718853922416353621762212274959829920249461445033156269281138104003514099174507855716451400610659402698222470822185139998753171712295867881085171442551316410078142195310194050835278813713007165128068982870923062532339884707329544638315299222542119388901237865846065812336792796889821588040794782185037536293730534841583315371949428772533091526166887493438424303081650123346655052186788930840993131615521222528130020118204872099252846157654655163718300951328501631097867933651595797796282199106509440634111752450249470128943991898448162327678188098410124540900981757166973705639931814370260018500862043066462370099620391890353335988319376686883969246445266200567634484028361916819144750659397852649670695750582250956836743758027985835581047507289580886919632728851233384455489561867587271130876361170574405130602111894869848529638515588914928384994520918759063681414353869436925854388005451859354727419515117211789746083511877013252525209921481696919994240260804666556110338900324248437570820379981028072158450890049816104180128279221529783821053987141066702361926969329739293521153833564751989961234591447694169764896588049184031204336055925166714050914538132977475135373574366441121979873501410962955881035974526520295775858905163592469057361169205490931912077448057129223322511975089540959757818058208803646018061733694894274655548422270777255345370056920076787041140410291255676694131580928730239730287102482332121840055032714480742395740476526491396087091117519521201126988435358455502753236425440206224166983907266741678450271869017102186891131897664014280166715945330749019270278120390471014445221933540414118328691606017185900803827706939715851382572300031519955635024492890651209166843939548061575631696975461687346255015378215459735204692110822028475176637371288164476066354189272977862564024070326475556099306361356531897293562608116356636960990739589694874458822085477378909668964463476753726808031840542801884772534558049487229057836316965094475486287583247492353055608773059979509705971137131726693207344709682347560277604912279275597086535943494826007909610514050666609532732064973014723715478092386801719722973800771180584556827327206020334958622684854828713500802173502234201997492764554287009311427123228861824216371940420654767283459989510217722423804742631159412630295018641361419170388516253567654592306398398350051596390848354047876428035229902238794840376229795034901143548664213649080400135665430388164294922599952889660372843821680052871692877406054324354305081293602574361390638646373380967402653343336445883099464876123164667725764305794713810791898740675699810036745934186843363453679165532209025280317479009428573619729465686083402150987591034060434186820607690892317689662453522162235731584701261873296758215370977567760287390111880930159000595003648828805377930834095381950510034515925855492426712125740316217118400331146800400994537481018632259583369445216467096889471296451261330019510404024891970403674400657912590617075707236167793332995660026934278462978354580403275130738823632104190490609375525058784398896492992428644947817073285630077420009885393352308364331637114368667818529625296494840941782212004849102305531117568044549704009872714646316749208533587802742323752010785182539350197037340003661152441921846448933861211812914366634690345759165272160960773797838081917198827909633534903056665935280335333046486331922100893452315314059507492454510604584505483527064400603707429384406682728654565841787720186612753508665700728086712498224430733585366462352675847786138715450405628955545446575779826442041007513889804662629051263553213610547689651008973070287467859678906538879734550126950916851277137576206254367065041631449369525195732590783541892073997602236925089823561058368245701529931989077055746057325782507909226762312755290116857956564184530026976213992828431553434876404476785558516650604632492448830418671486956934667268502226241076744777280326325146624087593645260434700424324753724059616810115748889812250717886719394275068565809168091739604907308756107068448472268144829972432819242741245603032072510396383386577720924685239341753335745218556522822027970733934620395526303775391127858693362542109160856650162261221629571799191176087774803602911580880596344068126278220807331415811850340039363870154399888349915966291229089139547057205281075400122960810224307359635416858782851636344880252838451980120758497594800421868443408669178695564233797728287898661569976952481530930140809115285428777351254069339841920678255287394301283929038825335581688788323185213167736869740947954057531800944505280733148242213444958486258057913214526736805908081954100718462374827761819309717597636537032643409499754851455977998356686103866885287602508504668333900833536567295629223935819304231580717679860734802537036829583060692764176616353332714451331473211848824411859501900812742768912533154609207108003193506882804608077268264233010792091980030574612112456587714115375556294478049562183148265402226846800642547210730081130179331093122628302456056515958766011822337680981286503313411514603743917930479171807370111044170517954702688884449548520290817968851005647859528484466346501222106647431214651398105392354613987892041454053675073726620155220191157831964595002305904610065824695934752315942733084529267321351265565323588663618886667459513075346831191526102134548960537569977946350007987341867471318007802767424619284719640486752552979280415499000536252339619040137622909070095295875648483617977103115067618472946926192098277043227606447702293351095604612778239511350608823417018078541930140734081818218162308240976787797946794569203096782709517746187316273323196481633383381036797765348392199308874013373108873304958164769496319895404535448975253412161447255476615270181006711701136004619095565174379135401119007228034265870453140623952371049872372491521698166330109201898505345544864796136673965028304369393503390384564564803912955733164833188887225154708737956740918188974970669694264438934287547521186899223298051500823267971465004457267957478144441945736549575023643409861691365609512757630921661149642494731899631321965192300626167519555405689548420562285443572621660166037457752017908310988198125724570281528923003913721909684889896487860062647563266525159239726070908862333322498609252909492337641796166915807835133245577695340582228663745767287156449734297376926760953843101289334117339012849978714904043414598661586395707380039032014802297390079882956365369681447385624832809181728777067511287357139811587133582989619046158548348109888026497410144415608445389862181478753998588353156052810301247664608449521692554350360213968955583227972469550437075742405511124761549776316617866049072336326430645714453236762645976148467023434056344435037854710885597733436249845155269427909847140779389618712653519738081025819553080411390705806041481570554449088025481769084305528009160313614855671805012655819641162474183285215598204960830315373598365529590210530403422614969278222400671920821607842570920446722771810228993812738641078923398862983089863434829856833266034233748195255349783611790781369588633847826579155882735039889974743963738550355965786393031064587297069259954059498100416115449679819089113625514063003796089193353416092008270137948075902740856587938685561822864999133296617669261907263015110236231493093135676720698358759656193619379133826355021652507371286287067980031654246140865404751952828971711693226256178044936994649452477275329075079362961866258704344658686981356695112271685949585917798847454514804747027391551449890608461138950763416214770370143859559635079164377981865194506006677339078909490805955000552743460694125001265803419407048369669801781539211012688505127617192104473201654285743060349880427912283054702895853335871304078792492083749491753566264648191755344967530752192531651504798442542523989891582953032161681348938639597574687351008932544118830763240010455612009381678966322861502700714898868774805841694623547239831386765097210524765721654232889173934305739709335286958493022843128240826286969682283268925711889815314921063689380642792119832929740668165849540273616768543041688506983273749569410279213596869312882032255892247533910603568873554881407434009373420311066282564040159785069370725754627180687281837592238703316444229356790589041144065647961280980727671448926937387255675081178248013821756847961046713940134624914159342149651306354315388957010829876009674699059932502899931668213358519064962263681093791637346300984754471809014608396362468689342910721006557385924111641714042704233672081749507605168133245103501776601668168212820740995532619491839185388761475141100138824734262885584805988102464833922681716846437938476781841253720896094723740991442234291093563595814732351196878528341923240642914240774093829253400637529583510245984396557243156112390001602091446105934862954043064552685863857281679773153574272971198737691537916329829334731016471050650275132964564661716415255117710673469260737931045958438713199596087378803464670868855616025870557516227573244881027390144519880275712488466350714622886305623500925265046669216751299055609949242727041494777313186729784520271951516943773438350671072690314740368989612710872500477534387357138168670738614152536680905231203738975383020766993313214713084935567095060043991778766080447654492055061758073853808573094897769238722220560813990851212337316687600055328465848768008369039331309825683962857900653112881211278109696598245765599705575587351045798177727000103685728948806398279083730499973694705338682995812979015291332461554531089998058779099805126183563532258910906367865703721124453852559123670463943462593804050281680711860515812532833894925447465462052588610726076479048328119936769587395109760684844392954862896332554002840472236508592838661308085747472134925059221380132332026499509474261092495786624531864350795589856650637199235222074829014474173985270814123245402688450119354487206878487492962303605949872327570877351148152237907212568371632627413751424758044438792264567257059015490701116624284816884961435188941314910419198040462275415673131085879336137151169002576407745793904578337212245050197388773629593623101031178916873312018425090147571373586737434496707620924859170564483222837529162612712182337197160722000529405120274278216981398907041602581838296112845896402781749909245060318883142780945444383333293908082513834137700475079179331010535170658800317194362734344091139690348214130348176864185930625877446441266204840417613623542535285646494334986532049150320721674200933820239030397664676110435614559844892740428729592846741303439721031367921686527587656863543086171927737154678696695179501220149479333543064634411792816780202017211044920000334320895189193247112875068198528427818831374206703051279645555744334138716774973723282493408638090803627083315639805637354845711247037102818153562413239228354427724094094840321071615083381040360506135735826786244948684749941554332291147107974117020417776225283931550586519123974043605521015190450551705395350355568321353757515971268831515244146775022464504962917581769097829955992213497993616272017331613808284974367248332348007862818336190234796110652806384714715533862518514121251303644937065773452790696692173747395656438213885478685778023731998945101151205016520092846530572618022976823194800464834852040476563672190666038136967569646612840456042912019384374700520276007566691899143673698483809092219068128825138988358633299635116675569123549076420479088771207310942737886638404887724187101499721839288424924869568333083479770808173642494140475580897274408193372400916639004192504505878236684663811175399919032915106099213902436619831987891389970240979883433270929159912703817884530976871057532382897931836536062002698970791913579833814001446258477158690858358234238130530132179890456017657263361214181356669048206992187851972372913245796229102662263430410515573099786104605338889367310632941505307070621382133881830586994771603409105604946929376952369382122281100027526983730229528940435028311317075832004266683273429585864976808032352555561044320559021404301377607576487864978974153691206500366915265887990166727594874773392635529398874468567339147134590522182788410230769093214384186931201381815758729545348522102641697687543347171708584984336183250214168532026753421306407369198011039602595927991029580266889073501881219495017669051829854318527516349445668180759893640297316182907266937204168177019071388823026686816607351246021749974351005401997582198744523967829139211447504351257453015134746642147681955515802641423672299568377521168131502035125754203755824430000391948808468667614584865132124907996827869052848373552280655630192348257224450294003208219538026352380230112876761296006096370067536410853464561437068453820370038769516491466629523031819417318563368904774221754565154726888797998754405814738513483044582627632670459846115203309104309933414804388813108188946917176960959346877005947700045593933696707846129385037327760319799635104761405457171005390023215281796411390540342471085135918486587758697033114880554476591347305003776329704886063245206280700160679590423426544673272279026341425497981761928814834235409793753188694117682106228977489370047901799073060304729667705799365774738412896564922760256047319364251712920850807980614484044550134029810871666068410986821663370875236837139497159174991574158394186019353729872845548834232672870506015563426625172756202687290044798089860651329441803614490574549949302663654073230440544696936366742911947033936363413641426992832674261109109128360207793219829973028782330224986638279553102552281882960317605572420924534723395496200895906322277379452567446959276962950034452066066458524249341514889339304502279918382950471455455583761761986594601491647096053710478256640390806279522792575613235579333351804582841615205307651870705695719641926002632877289635486065398568848153606393449940142334958647011548768041546783581061557235694248770385415684680387346359340868857775839703129179501428678678096862915885877469992490197942189048393061670413124504184229268989715925654625198189835713437212210976550338350456045168488699647567497737013804078453867728191333568785308851455201874064199112095949918593091568768934856508549816436560050956022663426385006946643717308569839831801047654318692002825867014840870012340318319091682917157812825451605928356957670505976722269164871129951614708913701936926242630403356479741751787530061793994896732617370465116050917558148680851527303281242629973306584564292098091129355493527950805817639776881689045945222306429518662711982125266022290861490765527451477347466205854208094709794316012656764520126573242580865016582143779046606665435550034602126071817480874063181720796587327437310745637299455654164545950701405604375080106198942182710372011817094156174135091449795222376508152461691355780982800511067765378928868050956055642510899723129219591214429209619314516563072690486605691898668619178287025435282760978499849127804654863761377272274106077253879079085192924632169035386170343244085541248541022193961520811641350300991870604730822814639255250220935539582504346979333438726835253144741757743480799233804288579009173575906071263091033179699098388204238258288401224138055269094116601504465106930924592124212947769227904279163570701376717028148001587353898079330587710391894611879030492983660272547089186818185872899831544641581122019439908272740487295326977586259489879792282412769086958385361941493217894688517813176508436752157238921547735177410311612903581501704667437850842577373687822977178102909560843632066498830672974509692974595127538557857456978986444852300886043316877933224117087137955919552661100401752218061592291235204690657156758314958679736706451882141836289746362708147328365621565934981247157953128869969279149787554701162324921427191457464051707717004386945064173512767524071478125111904723308018942387481354782938964368903702047300035827294990000877689139425929214750793451879375559674695214188045172483570494231672879295659886695240942612543280818598168941858560722183741977876760380749081060492764922033427398918967643042393324645149390269718327717064117504613287903746129455879018324450742169846003406303463369481750444456773352865454703969119907214313484611526937497729474754489838093103242753724416079056901310827795195122991296435674705519860993435010912588996127120941070929695894563346234350644833910731296680621368647324569117683219883589281199736274560762988987084202737118430239284242189460062301890098193790893508157447957345370030150538669355957806994878414534013374827936422805520973794071833087648049019326160926822260773106186299381075910521580699953595741599643722496763116259078604266242530726574217290733291171247529180185656216981308993530847441875698093955302919134123211119868746671377402665561647580069515512314896313916927236266574896144597042660868062858181345902974856443661308855072335841455776431935892807339876379574952227091618807155762720900369851496844304181401421919009666817621432676425794690883058874371356208420988472822579118257869845338031596540334764369714957961019739059087206438476388093879083783982291542992223988734493990229488415434531780301059269589447151744597434517319344014341258344208070891885551545150813285261640024503334146822779535434693035436827514525388459431248537956902344270803558810268113049152736735409512965426262799906113184404096377381481393008376205724596403672040496103935220034089027816381443482888613324374134137439307201596398819478087062825649812071164227573142743794674062881366307089325985305129392237825887461911608111523801047752027808820275437632060094818319322490224440653984689569367992944617127054341895827142220309896181986136745738256146244792607345967401659575428615107489336847584704205840737102002733450784801644422249052688944985345182658735221905768120745949016058299589026839994319414322892746487105806749726653512401495206487427384590755555793488672700297641937273536186325622885465311463699932989360747229598292420162527196737833814387311160843637890409435791768266233332203062382051158882713628419728758507931725033968345046339204736369851259049194885159086005515738107024847159044410482628503734865723598487731567528856875459500543207534448252554017744955281063454305196500552545325636613922607018674432117282065900461256164474403636729038929694594461118321035092813001959375426043797497176644558042551011077589447048761662212147290214662835308696501231739435139975707181843843007527192228902601168004844437510954417111576519225826611082178322681800543574482501985990826557821766483510801617575232254849086023898733006913092214834845502865601096577874985850864432367498834106675553987963761857525187757646313993978033818716900082342175748670089805265903771259946193160967063151375033389207696419223064741300863501394685077861616995657029024323105210931263366038697164553873513323175387626146144239051876334121806277515560240975666711762291389228141383826328793341852828017756020984181420399739210837388559492048109466563407717013621380911329696905366570604051776138059537151218600936984793123795368194485375732964082846498007064828027593318411588914089900792825995753682711503161529838306387772120974022020926310920182608027889884746341549826920021308371397805472425523185266165398774639508140497004902885162135865247241023013026615341404904464509003035896255692194887032754688555585545796862436169918622088263846958354614524328434847850345296945071154257061484353651986348242502086646020060454298147972390552748923668429108454018513178513164489232488673394382928827411548887924991956996129734812752404680207084074525415804262601233012772991337497079648143348535385369323073224150201622132437757874463138364776210599779192709784456214934965761896246838506774678406357428215400827508992745982660160328077563239570672058453965120846255981393601830024782182810691401337924506164897050579546163283210758868907072221075627173094278015492059832008355103158085839814263798025596270472581775252040135316789145388373794148719185710708133417188136803852216194869316501809606373808127596415563826838459900616088044876985423630305523590520498573745448227610757279858084826603745637038261769459546337326077708619728211562125133313538734584017228711288576982183556802591029485543780106484319638489228641317119980887507568334395927680302066675338430356645646530239698088224075029089791122538772762801573757075215552369110713329249550442246126705983761374159140754802222624768581906999630354750235711994835892892350022893768730050938618719139466878631315562941237881467805756807893502691600351997081680307661982980839687527947777353502728872276053746997709424330163494939632638819099558179288896651330737747452568299157974827591429512040590556714660724978214230971062143626072502529030352192832029872452104068591153959188655228569533752044064317530393877439048214273679644389286819917352634712243082613013300908827760921638495864192914667811222879970924020885640014810362400710262898326838792127727565954702384841956557812321457169941312170347563693197131945110242549154918009638084877906010017285684056128831766587675596667402280827039466566263482814505948325291562227283952180829806276047107980116385888029246157162133361767236429116234156711532241269416276585640764677155674413626471203609473420811685636439283024002318201330286750531755754776719974154240964230668687140446803362212561548375523352651299866815544388874250051693545119373281871068324947796996326760807709149246176702428497009492180241633715081285588262752571812261734450127420054808509297173747377819429046972655431815024353280648275958670467325900559317663828472190642967338004103901304231982435263424876137839448641055528709391875454404112735584681040733969036366485341281330501096001524532822941723454041644479451144913777890077468063028346156123019017418200675279816369792801150561580727735873058596183263500505029707657546137353430387940170455197329294009614199797947320332139851001094885820048223806216629849731633357584028539602047275898261195800982942369260819050718081857555880039544431413632389183472547091669456949632192906574760270372404969271910254464275552060798958165655589717094975121316466354788936122344863949389969963389789076439662700532879762294865336485921933935501622690570820543427400234414483567510256727989388622599228126299197218272962247101385870667428528197371823759890386427046655766029690130814955229427212119310862394503657576847073290974680553745266069773962326174221607477984724967138932355831253364091727226500653442814903972475827965136332756362678101689236620846699217197963275291193638627903270280887890299377995537635699282185502320921997882124842697442291462812511901904364294258733258433991117312324325048461767964197621797205265436836842487426268549443292357593803115720893062505857538557839280942581461709561707849880943208372338433994303143389827243092521308016787159472572754508530214057874470636655203047943713900712167497305649814917945504558822880110481785612587820309132984429708458367224358284714564060801261599957175760656649242951353198857442940346095339704373037287965048976566279464696856603581432709627819863654087824758349295336693441162257874956204977806979895532902307736278839144606630236999286660078671276125312803166056040913408422105707104315762731878498306873372361650706495815103225440864365694819036769979666693639071422215771712454915964197487695153285784519611368985037574487406653630472480520012947072264938473191028462358114576627755102731408521874505408197280934389687590967710304682290733305376710303176380062157472163356770053513628739984140214144294609878075696274354639271478348122125196477989457904737839504932419740853084179652036219925668510014719336479272389131299170029532226009874988918909565833301846676718081588746901541294664993952976583283074880138191715803976625025452297460841854641738564132265797579251232939972258164174557652093998531020198926933465712542716189966721951291194686736288108993352751848323780180234296774131510138940176166000122743784227915519434510220474556300633667724855402764441473902161794383252102426475885950381681055341189494184124663084925845766760452194564507204632201716098311986752296592929708773406230343716255700636156252240398559890044797812882144761946147603830860888235653361969852210261463984060270804209764942882112824980668029689991676883196646209224470551105619493325372089565425491991512071599853724350019370981821489996511523861541433408547269606591644148883007449872054024818935695546939478836621094162246992685484554246260490714320289278925669283079298529660531062552594471776192544414388693750966065879399685278818151960432481717924534774022819157593287796653239492294993867619242675522608376455325240461398633553357311060926555525264157098936561031496712539873960224144433752852058217078604696950357546495273476969275569346586076182315543086264177981965483929483153319850882057637053986312873361490579343124596779171420648872954875464672619592050052284903208563017834349499126416344413896624644615469785724721711061246249749024203968302774014391487982989176186616989869345980639879149598637873426254195343635465969650912538457530024944862884980131451931481131204599675106005576999610775666042894952679511544563652114676396395711871547189009554334485601112042818084676640932678844807602935322952938893425374770321608300844660732989426210665274887128727924465459371085661761839593673745375518439506159548569477016874933926256822719045677850811339131671361524254011776804956095691431279443045286210585841609164307994991232348882393778517526680910719400495857411922527301027246800069636530937201394327076742993538883708645333195732285039418819233893458380789358071913068573877992738162864158339129491516024791489516753834049821907000786584309898292259692324254225180901789384450267436519107833527333605961635299747692029476110889210424994709552394692649704241222936965514666252943506181860978498267527580572606550025673592938846922169797057490564470673520547690006064622956637975979722999528510802385023798473200698568148767461281454363866575236686660624147387538414447499207447250404314536604465445641065920846358651768757850331142328769735576135153322415947773249916052420817302936324832362907651099094712247940635791239292127812085779815173537503371514472633202097647880271029197481334378332489191776047323843780578076526931907135675369047387195623149352634668348963335432160046735915037370296688010651308962900771575690819321114353916780339647858113367434118736988184907926076370071108661220722595704824362976533586541727310275035669337214356959512418544518755634845173401896614923229190965833889404304603105645199900257344487570287637053725637688615443208089262046649884461208673314957616460025753885177464818370616194803155688412456304142887986945176504058368343869030698327743277767743500477412881668633584753826887631347157069616440411278749254309510645516630298756947489854244352622017145865426207671048361988804248620330225799807314915064953635884250863179154437285674710104245855494001043406124061649809803442852809383877285189343960570132855008589418689614268543891672243863377020465475363857606094420117162947998264994947063132250859870601463042668310012832762703191181793516506498270521709979771008349449712983823285498289662629814704024871408319819393672186945495378026628863162670239261416015545846008023232654328821603099025635087360998214569047978749778223012889776494495762410864664243232658118449848039967863635518928162004590244866157233628735091775717114143553857605971823045132218818338562664164531718401587118842229560200423029725915448874671455078215367641363670826316639734748525671870867727846678432111624873196429759661749189982327251450672289640982372487315717073295081218599201600967416904152360712173793674514413009295581423859154983836000615204689022487523597400303318234489235645527885114333156554629640168052231870455642837025947289425703409251033347998973017261147572491297256494650214449726470508503851050904963458858476267167616690134849244774058491326200938470956145524622643635330967107174687840887330688107740925033448676216904737841924355194512144648645025037935431615782435283814877111337249856595504346314503354588644747803167460872712040591103679975509402265747152428977930143037087925048713811433657844129635642720035376936417408436862185452096173953483841457264726208322983027655508612349754228178075759057129106343654499598811579037554758463561877780431051939431421549145965129739409492011518019225263426344269436943813002530587085806117128744023460157458028983945094959702110276620929186545768897676277984817874305906526610603587611247669770240228335428431355253390299325152905083883544276298890938044419228563550839512751639591848771748264637023474298699079763074192548288371069753024777027307778388351834410882416865770008889413914571263596392938654449335358057916012310868471143951234874535251833286917256818979101289851284431812095669351959364699735768483304148169217259369136096470758431240175721820198278514420623420941132595327679714954814538986403550754880268399222689570050227823438564153815734859146789523992664463697848136437314743500548903125565860672528440796453479593555605162884601141520016981240753404826177343295628783770612242250572136569529940114326779419073864458564130230088076378044460432312002794218106243598195878446603069671847202662391692194456805631993884347045947166679744567499099613086447567777929444394234019793344493344864224986581027256606646863669444675873874024777986778949643743538800700312257749511759566006916055390602869921631132359109398444383658935630294691350678829065843737549028029881466706974659968196722027823051789926745192086885860394411809952334092551929564128885128349649106014034361432765996621370168084026387258029424694282667100120760311833610690021905023313938735990599991456947423831954619361131021564781190482500007163861819939608842623838664280188547205615322813168173582389945634674972894293408971712761135640413050980959941163056075942030589696164685531696367223314089386169457046739971549464671382680181939149302906606971138454709113964825461268251698624099331635736452596067340679002478735689326412715039335966460308596531940528075625347097868500779526905818633232997503088056461511602471474978574279465648377726901595878191118292729638948238220370007688581084425365673338556497061371531124264350431579634994358481642909697778933847207108609626182004498351636226396774471050334073562006311807689608803476612404946111362699666818117255998997775443087536693435804624216979292647691430535979968901571862073048395490688774625204495394938987457512464389500605085193189555220157570907550995198503385502582755460664589238520178594040523551359939959074314655983461741483447273480032410659088356126576752302975037160548345754014210331460710070097882823183641743173011125028271315587702828365669120472879648510577711369791169716997393590067402473203927154500764450711578384411643965044463744962260398474652915716741288422555949037956730476546760746453272483917022313534127770792268431899827867878746970316963754277114144624205588187589645700607530672478069489405049315756884845750912378522462666967146525314748078510954457339420626387957840821727537848259413557067755040881598377219347332077177109672229738504345552439912988194965055380906947401035589989730771204831284705424537388285854135814650848133213758014608728208988932192518576004437231752409334648281636053342620220830029548685449700923351525002717060131043611313019271239740976736078619341534996399709681283552016658572092138840804015902506937681815605780662286026954489797768300618190957947557253061272970886525170775981263822244180148222538388231337920590689085000005798626939841092665354704264983588873990239399059197311118914429088472972920037159849329484590189598587237826093951840276243768184994367741871494926998928926290210221676356285047652033798619548709190182889270988281746183379558206291092667317378913236171736074965867836053541150810038909669140296854432216078919580236338677654811025487593528775010157319478754387499682181792872242500969211357980291125408329857762589988986102385871556770868895957175338053011201902919462119626170292238617243188363986415909541867231541905805482523468894029102256226514275339666105411193086038590106163883011475772615212184571849569136178199090390118075039549344914619479155322560697669786307420139379646386761644628446674123148144021345646437841082466700607087161369890109291864182934103339747663052254374409529584028575830764532498892162883438398003688369393692045127735684396563789196801380961416147316745424256646581946362291948247010446643450291337005834499368730661354910306037525909846208674544163545512904715021144085562442024303175557329764579103280717065188201165753511124465635266903492826710885778626068134133142416604483883825595926470633249346884706650391699424269984023869681551037518281858019243253626579161022068851833246653264452165226094043120159598248871982619452399884764551508200049716650152850985432707225052527290772285524911054538457126620711574817424548517504081489184504728490807867517237822953713076244273605221070681034766860591925902133303626507489382820363771396767455642429033859767300729701517171205666250892161119542520207031972473413408688609783362797380428755558128351899905300964273016132324466546031389804533895435051776286074555588821938469734474885193547100330256331964187888573125836699435607919980459942509716555703701988111179202484398706808535340403481984874304457050334258324067700016028313771188218376956042770797286547977439247649660372378026645354882381255412415533609439648490340806001564396046996820059946451530184949512517750839680425750034544195584975176461334071067863751187449515201222600460140931369292616747248266103811584179175135683058596923063633728312499339750664862896193865207750023169196149576004737869658013962449829509531547816141993835466710186389277189655844223795659557207216356456472151836707958137093859211335099634424984563050373770418971248507152698923257258481472425486719890419999702800137933944956380655800864209872332244041779546466101811251199157938132488358317983152991104221028091144462825086626493969338190581006198394996404071374276958759923594132972357938805037522246190173661057265779775649142633788283859398313796269430258565833003821739122125640965663208126708136660722880478810727470211633988998166235648657080429492368719911918382266593216364151509312952701599965093154368218517291302361801649741649169544445709712891552200990340696536730280471008952379878946497432381013613285833726403859488769626606071003218022288115401268561846725779422304158997945636921338486741015786528627772978615685540360950988830659338253945657580493036590249456459895856884005120885488565391640803330254004218873582259307543647098428776023301720853569005990253029954436446179594786400205901510765471237045742476218172867676464634089569580021386877325159618124820400283649892680414600894188802286209553820641398513178853598380121770602989816120866024222905950117936339530697257454530690334511688653527952013875326668191778351824108036712089573826765010122428047124721217939147460740123126077013768166921010318152508111027199237721581427212278485241607962325498076921202771414967925741251787279015300110407719768910903676729618823989794354812506493432237152689369435467508319605707347753875267664632850748294344366109712859795235205933858870780792522587543953408720005621295190075788782256502548497047140665560221683278619222087803608324690570805896925662328636986759762997330016296307202102017216029429912182691607615196995069834873044534810096282798134777861202943906499105433110563806912759240341578131219877608733090594553532254993995853636872319584891112028501043265560308098225017850220635814673040295550242045845463095460772073514989200706828203541112079407656740614395924596045294866601129499437562694710704234014328213928871356929814381855013247238051976651478641979622517107146791596910981887804188005841709131757152141355811048973543513220283912263650282998075097769591554216560569385944718219350965719450757039509627146149771578656674260535703881983581303277875226953606047222998316699582239605346522665923514596012177104787699746123797377608399621762019072476686049977801871966932412965530648557939259429564529382807173244997132599291443285323870364231476554008148805773537181450630416747900930009179210835039280425800774389398759517244045046159191856982850054519698993491359897126580224912078273609121392726872152609833151761245097354218477911261160072975904309905353579473329420429795202194189337975838744650917084300283727818148992904759978347832771393744292286924701328806209020165698124612721586353973276313293514955832751873166598148340305899148187663197301744071731618774904053693737603237770244931324833238732249671170568922514670632107802325554813752241621043337481720585381114240952984499674377024150232166166169289348714174892331406332393685257978605876958482423739825852236415523435330619292317390776914787159703752437786865878983957642668915461986041036160256057507188801590658821244579013385195400814048425626555839000125064548115415381816606332309517036862128450137834778865216906244179577549239572696966431560485910138912894070560344848265974230575773684090708393214833851967723046992036502354011018164760078137226011535701694315383480561611513440307162142910530419189286308096464356528625767718624208268888666365783963815393838313390529795940750451960398899914386829475549593664069355052649398521079224617480651902098944838498397552786845258001416755205755606811856542840738804515433838070171424892885629434345567568186985423653710370385691488038747563967592267071903142430370150296816419095571343600140150190850186756827548330991544294717333655945371499181850721124422146113431885728913618853709063880359558935085262761671883042339071641470724726569533457913142976788857419959401659542337047502587659453607897486162057872239060863591221693743508039153056467234813174352372407135078353972235695592242070156675367202413695878939965364813747355410096578506821179720404757991119683968162055159221052941650718032270100085636593371018000558660769123980249830551845461558635159403156742135744380444441726259446785811103473474109922155114839684535167351645297131029473295886240691582652210691941700057579901438968239303980061583105222833162795200194758663068013180413488304085546701644021654513550330697321087747643292945625608783787754412428345852043243236820075746750364871448110447933631791334655121565551860314211589534097147126060547529673284341157057121105718636865214448725371388007191201966253788467029164637218509956697558128020097364100265892739781211418989469946438567869241299093653393436574284039708244521585105652031380896747221227661475900046001287909066856852842975314459241226807330914529744447786742739775748154823724942568173814778065690872202786737257914989779360744213395458288568290514976341472626325262046991192297426053641387410968177409820758558054625299956832601128979885071718113836350255510564215724761913066282295318502443866003848810643235733674233656610349075908747676419023301349994520363376191507559950621044889201381914690477310604415029101365949779001246883117859003764279394757497396486406608021628103343172084780141228142228855693887526558596747984144473273601430427076624065488294796431664674644854905073951852059241175096164981257720490204741125087435078718826749333236655359342999742007068744107407243463405346507559513510760319687341814041453005252514088933600445276219660546457077753247733638405054890199459745822807910929737729507487181060496735112003481337297165641030116909018294482575001197800380006623252822387343667091667251190295597776723444455158100891435117482813625092057346882133442833057934425718809769268861345472952635459113005069026170162093664524523389509550913019976863394572514202015572399392656565830644612934300207411584593893189223850939206050650403909392643296666657400415969614502751788842402559833447076282352027223325974380128657638802223366919569392798053087073427975544657808506181143480813131525314457443316723234209302145730737952086881815249045751267568523145361519134181087156294882169514242636476109557047054459252624238150672593582271950250039243612169522029376418816356229843675320950284316267934694870746120557666973445125592282584771319416537037904415395379949361760101140101217300678910772715112488450410544736993474068861128788300254554468417619759883478266459673436588952606198357191314698939454501976508397272962315561607651068056123077295558014880729674507305437470856831586220483585165449924903678879295556941002830707934662489460131974100985810284642995221357434680159995575471430607676050512297368909529553879569699222870125198378787150712153019648589144179042814086392884370929543442258217762778897938826928399440883883089778726633940777380206369717240067404771078511538948618056178768594080753576135641586545601888241024899291722797341019267888458237052338760921621107262153897830789172330072966935347360213657897535340388506707375994496248221246438919822003758415409896177663609232285130132120621977663978070374497868000158776648231711868623027580204238878929274395521343493202824234172859001957954316606050397622892803903375584106971090467869086220493864508653715416966833913655256095958120621230171997635823214000278693892654093975115664903865156184782756289065815750663445256249934235372736107686631335321912129470904704159935054795763370893373364304566510127932423390725152569637052266503744262394981020341391875413406489516863521802002832449966226096254242723109830359775259559351873310209520424196515509926733635790313992821421037240560181475778413300598253523528749924734751950532055953922945105948190736133558192878859212767900090263989030810889121509369839453074210327897881887451502156811458531365504587363524632781482063198909380717556214915522155995205118924402464312688121025563298116799969588094257536056118742791651122600548177041463659148672389411960569832754332333547695484876266998960462367481028187919674897134558153704015722993869542879882046982794629818906208361800762006629295471214119181788068152197804682949541595910901460519477745564752437742486422823745806897475882404192223655533288949158272716227239922989041982106525817686840033417603601649486190246822212963946582310106749379009288557946050879654172216858530155462672181277217244455912013603807660007287798846631200815114441674052661397064636488947321084780625196261999896846151999695105431031545854459923402888107557911129290725865955337122471798625035418418228230500411689883840050617937818631094909292443108012226699372429082624821861428407380384834950008480152821129316582530019494192542320007179668352545761065170589580913421215925768460507551483984864142120740779709914571618552530936330958480262537693042221136157868223593089259210232908738889466731740532479548804705628318386358983991296171012229623389238577786930767612299196650505431110424306119862708202170282553868095231433154386107910748802891914231285802553579945294776864523453381248951325093231723997039764251025524806570155579714200870295330824016440319272380051753286770356591848350719979833913046090136613312860982055940563568654537732914356782808947613369745642789994064120052246555945196720780689311996633772519170921620795407721018106297174177035742876048860864851024412365651710612705206715742009164141723369046981480645480327070636771839442063394324085922495432922227253507564966058531626336061806023940568765774294013935026228129132256000461579331009291736086521916089048428004125766537934301311202712883762618846714317222711125602212228744261067861707808751822140280105017811064607378553444447834951289232057261629838673258029504360775225720027198158173265316353757443298607874231395625907022191575410937437378615509348980204290693361775540668002296009643084105182385773763149882904833957213195667540744896558061053817190033408978886500733377941835794883660453954624640205581941174492839635028595619290149551026885363812352774076421726103015163454182078989212109410150701499819648266564109415307254147025703649227094715368182610662889922068038679212377392971500519749433693755329934678005071607930208626255607249697619101507626591258833390065809853067566260899938778882128100008658901773350527401988237392452277634022429599775180238098907314488102346168580402357012814269094883826367301376212457329738044004118717726192673299072690214281842362595418495125117009404265963554685084512122514659150144186391221214907779530717088618485194452938733758156409039023985151630490923213288747532290310959708055200326151298134836658274331516089417916889217192382512340013092268077371017987359020145363534786881323947232411374915882716546840213067347723612008835388788706286471130128432188006910177741996006660139523816332885830919410859669399839211301200798538551605598867657088279547186403015822739315053179213417411980039469947553334667616387985462074834240007922179703153153741073510812186037380056792601587436244548269111397345983091984259387284099418921257540591066426794802790812663803124823413649461648348252121151484976519306673243605243845316423481814558073314201978145188238467783354517713343676419681791995868536295866860656578899857407690279342588398516346000543767586081616154313046434693101787279665861043580903769421183358764688442518604213190601845897536446450149674538955927602576949582162991998755906682990244557693410498535424974016963475430322639178775513917822415504555602357480913159988969975792904662802198282114992276411673891219319683241509541566756246278121260440621966760276187941271444218903785955399834066078743134321865642685677556923839573720060999484658900597271194235932931475675578465973320195735786614256765104412818869523509388060974173033529927251588300411189327131158276293904526076963752147290696640858432003239733672448305667224134019361997015754446111470653187292753753967132924456470656657491795874805289668571245738215089843532218740145558386091626234741937994440676519055911305050186647636545451011386235647061459323046007546590053217314767128720534734032428402450328362085272801705065977110360464037313644768708820014455171345974983995492049281735656138301772788948189025483426241653679470526315729608357507665298849098932430637009007341118685506283834245810554991914692864686953550865526539315662952766639021082850508081326877454910227368987604966095638796798479220973984036923691444196565341444728338614746655919375494033201899551670638811485726395825566215007015602024716613332566323576501430114777274728552998297349823176866672637714660875975589606937422270272251216733679576934128375249994998712055515863202244325582237141509916888749552868825611620711687249981890294357408930860527149236042742246984005444854002473891261892240452629622406620411772716057674493617125972966311454186596622118144406633649876009316372600075590670224302180859220408727213462841745717077993135403124683798430899248673236945099211435697258767824212743407499471100538292461491706278097403012790542882603411497729575756171662510117888821159780129002901941330858059411831013824451361342781307128362449339454494594699345816047878835087803327679037489703036018535277235618417503298033779586448911042498078478669502333295487843555994404701083898261630236284016337587873549487463288253404772772538491331924115684142451165904103431496647126130158183967646622281266997558342837445339407077651271924661036457568703586419341656356548894000407463875743534124501854983267244667233804939578796528105744958026115372386214985225507427334333125886626857363015040500534445777290747706772390839277750641741664596053189127381006888923599784372930950473081980915386935937723622968559258145873593860145565394650323114003927166196004336595297929660636156903053599876441957100445325615341613336351073726622045671813513532398502774587594434535506879910065619534941845461688070851982931913237918802155486105471773379740560025915554261164954168598255756784054121501222476421954307764286076805576875252815200977344106710203384415799657508452060672586128560977349586070532187441817621403658523955566763922848139804564655052812458439937301635792085136412979991877364514622068503002014007092429647371769650330675829964566440349672846005709860505034999122338508676651474637657026867218164232331031685981937038010367294107418279990922139014371187755812099016967676696979588268335027585018803605000924340978666651168174921625132550614556378403027151679144611096456996129716145776066160363137233281417083579569138480855789788967480081705404852460748996935764309818224315218129139568080449567022067876025917857145469508698359417575160298198148436357959128168362525252123767403873311078074383380086398659797332699953966062427343950362151227466141608278522905050104820579535620710971587733177132736373646346396703231437756215042897286379236136421968533640768577359509090335972630757257615676210107158802773081024441308958631250201745228468258982882498125260833127965165116792837925711890226561202321346844083472368891938104541094308052345009429692745537134253906426004677835561844746511733335486462690206471827461553772536887852858704268701699305996824785847225982012056375440880843808157431671536559576463267737063387188774005707003314800512356912772825817948517919341906999624168145748037713712364103506229805377468311601033313478239261315356068649726401895373504202772230638890228732239909171002445342931969850999990595445264308686515181537945861773083421130354669155843192586598750568654556813003713110391923699366872856958461365517118347345952965407632328068121183454308224997634296481683044509613573323903783419347379534314808916570822723346894319616658886058913371412260793669496055598925333115723671688362416986666272171385828839718762721566770554052759572814051989747788155293801471247560613018199726431165052989193634634795826718278343269470086790853238769502663631126934347230232169868905880511470654436627327654505473360927907052573310949123172621276604370711987083736248227441655810616172079260141751099242829296689321651481811696442112350390878203763282106963550782316212470788488119373041402141168030104952559920192310235907149911735499697372240910991549903867268272802059251018323764536623725167768982053118895333092705554146016960663458462369367044834310357539622466612484350119498873446816173735040173714421589791138079815359227126802748973492102216782171391824444225545483524387630299410109481164455315914013185270362037888662616844086409671116422908817703408730261882036937223778770030154329185608795198858867856457346138366609154176361789742305632646130048868893164708988512351593825466458898325463045840875861623498080255184607860689906840925845549071922441388390952223524500441154746725140450076529342985079180687419329402794531141202771745108430838178096773978341645554095955719649405191038528488162058418248376465767683082961253015832210368582605057327512062345213663930162585260798718444306481636048818552733394539684235872482973701754567087210428474200653488160079548956114003307107413506416834532580330532151731271695092284724900768352868432689482982967460765327875569590083040322859044109259860792534443121568697337086257536746687851209256128318631875670918690555601236575811804595774718160345448247550819054327171276947173229768875295248508260991480636788394926941622315258844627153691156900310868012159311959270931983769979530682833342030763121931360854121217715112741534163547367539751444568976836972262105669852336564477584855721457837394343134156280017603412873571250242529250487301986853738021089383600773471327230087166254408952185481357214433222863827571614410728470973047297281826456314446631978822121719369927682065687673486053634151244678311275914058787754659157303880848177410918902562679437708470093787270603868642736916777903982331162982649447246947023725724910399293818316963353384268418940324824159215804039239095647681514470195089592123935122356358734731013314064233047333745554982416418428578772846043046660985867284985899333946446729321145231178287556398580754922028277918525195435684308836321579531408983857125067454021612877203968386725259215409038507831763262967445526817196519168458675803600918415023824855014604171970236886846747458337874862729197307283005754185407754270563034498891541413125697319313142922881338951227323815583357247611367348016600208424827468849921018271618937088272218258493035971211126792544856252706643215633669415663690147972845021506842057746633879505103668690320347083401677022079721133293144067738331985565620612999407356838904004347544068796112310288075205955175546324887542455584371834455140493738648462681199538478600419626933796854169515970073164910980818282295291932760845849420266524507817103120335340181969432420064495242150251557866168330778345353628929469484497795266663656776888194071390111991721830255520041630179992440255840823928268168943754989965630585171094311731477680024198628629727662418250759807817181643514445380633020372196394946392762249352343918867032500771466741850022076686767302904468601318141153970657932482553608035507355450551097851763121507902058931353118126530840943464870087042344366731510444640575699502511493625616320498545124891743263481903583576632256398935558793793850945280244221947472807137903297841111877247812878526947092139692662977462334760513230464502035589881539669626236216318946161805347347599987993033382862866254380691863055650698607671845556847003652838269356736800851797550447554395760138310037203349556110263834765583747674800799373596514468524374758858964438962080072084600433254871185533787612314446922496649219548208015050955607499309523412251573284504565669387377846564239931670116056892698546098804520863539998253332024346094196493368096958961604238813114675036251894138624771284094175203314405458245102926954882669342635819381219913252809473767464931497377373649128798023053903162141007511767987603532662605749105435842503675830825838441184142105197102506175721101297736670207919393277483725250952917287445753816579242676059727633316621702996621250044329179391225326535002673592908236289687415397579037142171049353269822234707062677084758125604925164170963018742128050827902239323135850624542537294830219584579626918432944351762628550573753671017605316015463105182750814915295961263550873512625887767339737211964887320411296528992682409608894664507242336263748014199535921113886738830141950072788020604930898769792798780201058743360698031733888478911619187089396299564772779867023164049721884651566204955727734995355107023968186693708935052675346257392066578770096112450359119514058091321504610182262554976450830507172337633141861965589234339773449001882003393529584396460425492478786962461983021558204828427057561397743090095958994438007614795292275563226566539893445561081805806934460454745132311858155530705301801343779550115416527895532325180128570867389385207147907493467639293758790304391803095313615843135813321766283119432816094359934968414842117496495401210526804380281344352511236915387443180409213768971414979201200130341490683044095964082147424969674489480034105820969531580694144996722505856606478601418080857020439058438843630305085397151158388130150996359698889269635749744652145957271374418360167324208703101987020633793375076908598872523001944531932758442052745986927246368743479646702408106928066145917261539461166638107436680198698746167260131318739210017275706348224218580616988774391021926219812462776041376813897347067022015569638746539968805672876795956615464574814084766220342294875859349760221163918816566298536709843306716338238796566086127191924169803192548521857343041089067486368454828424059490427449883713897623585140731208763406280695369411403473739568252830848151908064038522852986647332512624290906860052563811580249814326936431069358510485952126971452738799107720951024253544945119058366371316918802920836056666301280879627750418966499269402317748468153415974047785488044080454577646817609791064269470326486024941703174747913761276441189123237456817433122124315329714865608335083490661225717624057173275028231664776437202234871275516700629333932963094169310895551495664718905222267672273453535579816757972349658646041569148528241861589033309703468618100202671201547331128967862591183124845522409547587693614862658986419556067746801467039893668462223705582063558755340768705747058949435537109173443022265796215179420621060590958677777626641088059817462210022701065815601341449526631836752076653038241647336313828129801454946118508189360765936149459633214264446263136025365359499157765852396390470182523398094260389655210335612576158081639763708462865559116138211389203411437099539180287394309155730857104415505408572567751424218836871140948458655247142477575979631488351664305756644025732978914069002161420915278714692508467401180312473058282303182358494672865078714200338991344041774578567864900367558093083595316892020112696334620633767369641736745146587639383752876968792052174809006230347450129721685828065479105929017383294135614604226300421592782670091221680181370802270508407646207525206163547169829968378949532814587293237618937280360882691105119625161778550030503707813507194184200396921693558652570219758604317875482645467000483366650222686187877560944743814352449838840525157264409740178137786062680208349064316153547639708595163392205154475417607983153321724800404711195074749765721988742210827737306156423988830802946309025271501762103861414034837462423784938451287631934405072005803583679652348730315436185525792158783338947914081766549613433766800907496878775325305664805517513308619578292615429546726237641940063492752364213541730607491016900973539955851032043485727595730805335310778047645893750219725419534549958764620370381129175615496297208051658725933321339894325798715198042228401017741384944669759693867768401355026687774460183999266171407996045225631101387496447374521861657804944612177809675482519478183768913954388811884899531979238556673208218842575129986487749309239064201438631371271891689825503864973876463644615403590221205732904109488693994487221283195170547415408286949391557943077452823438214856698619378172242187358220958495070218269988272725068809521867382125008262320624483129620903784973706293245003070412284281009703388105287268542584792740761934349658329815018503466012219175811251541811612832669445851651536222741148575660130149382872043853486121381424328921460644936597331006488100746983594255782055727906452570337140624646197009682206088021749538916469770944161534570402325257541382637318645105959910163898536456533731674132568547728990329219726653366165913566693499689660004519572000034032271024885078499496828920318126809922693707679383844307078439197740842953227254732912532979896877121943547294388332592990514457878869022133067795696910209992148022374142464614709810627741521122388116777265678956290170284358789744174044554400196868397136710471776723619056606172779835914016709774720200116547898756405327529745158252289394958265664217922676329501305220590514322481695906553033236585125848911670162471560980094987484147639058346319748947765699655034043065076846124361383906383379536299035557238063778631049820109942601961085696015983394121514632443339092872916064119202347305205018206601827386941208346496388287496631664977102011431385241763595192890901206192438042371143922639398679803541690107102940360576824772615707338199441338408605396794831570533668314505855101589204613944481233462614328474291447140538389829075384613082175878127740408995781268437684895439505068028908263683750540756420615624044317895529194746425104899579104932695188931994948549480741921546452897561889792024657586498473895706884183783405980892517330270064412478035822759890286628088897859662275557906369756923603555761560594687264778549207331232295661990993491553687198273847039308925483323183508608832308864023240087135384223248562686322850079975277921381659325567341927341215423584188028464575789315668970820660269724903919687310760974832173233077740148165208957040051318770020868467565806397046645431063489861099474665840730225002605937504526820738657104596653999787406992684036212527359683384371499608650586812048617873747685027336287560926423551974282630283230639790977841522938193164276046051927947278449768085849948129476322304546180013867846229323714847425911329511907434564906221517162665751301453769851503635016835924466097111910212948210172758291509053594581312791680283173683352427319747931213999831464123935285247832795907802468576292977786191131956680525571974488966527651739700281848479534690379039308860318940534222133008987407570417886026494467109430120277637178091747589387449757936592519105590853625907011496108632623809093206871710802052382862739014150989654051952556245660083629810804117033306643311399910768811787407000828846699925319873367732633511416541912979806035860938748156986434050837475614526876641062687258309910599287856796727138943007421724270242251948720384442377975851033331201122783837587052402298997234707525378933597830420700888360070883860386231231254655889010079316493837539226326327581345081303595470779068094807795244767686261069646702264265840756591975139983056938012789228215388309786326441604891927415395368957021257758689501252379733851966559472551015709228992468942932992573751876294750483122916479572547345040180781156136759196461403147789451741520097245502728101105706281690476797427478069182085001330899744589843656753499036046270315853848477170796931121025326987585993432434380740953227104398932224560328080516629155528037255100978740099477735505555264123789190278739712701525748150753533378536165681872508586261253668277541035505645383702766702975522013092027252869602596407318587791547028940751060526358451730510030851143749263504147315274195584579408826716355387364871751500927350635122447320150109305809570467160583717951779206938140598436525366977897858356735763390642946650801257025840443749439641989745108420448722606742750338119400048478335124225997127506853694784732513844971123844981127532611660177465171601731652376948471023067475083500796709453523736807812329045648266933024547295003511319298470645383840520070419036016612389623461757568207980727233022261618461980152696024497793759061296478005274583221863150768502785342700783986750891586082488775933793348493186502292881177857276077378884462627263760243707198964276916049942501872178502715371408724995379365327638953330562558236517470518838156136526482319021270071765347661232825678804882695276671382153027110345713619109969094024160414921386137184086185323420372530756177181112446175136759726635301057213230652309219897505524866179085222233143351488296803071468477538904792630932978637581252033082415967236859376063270783432439125114801646020143892766512375228991886608426840238049684946904559389375286368595371296089684700544598769442636064695273851011467604634177743457019782027345002929458898984296961219266669153616763727601888760015274421414795220707674967818248833261568845956905066208715659157364667486899926059140783700899239458101931490283802202437340686853954248796657507237623261003405342818915168555923132769494965026642076723104195145536188279546128355988468495763847776322846452190547759591059553884220526814085095062426420610826580432914519497673087856285871544310907721951704576853559116679881085017080628500688794620296745132825604788040738071532096132539111129394462807248452902715999878002505963782720014680500089410683075156844976496329182392468944547876427342652319874663252870036627151621226546449515090474181423234559232481532638565760580811489091210225577007911369594904279041709414963007198765383375983394762232826670016827789609899957100359734232995316805810391652130064303951348876433078454105356166338617225767146052079123616595763279478109604233385114850230231089511810346146248566262979349305459008063153791872912993222886462453717091372205781041200274147584833403972799994579940057151347101039393710383191136961677369950186641370281675951000996540525037312060817862051996487811509932718581125557553591434037464283012070959557317365049642293351091814249878263904444084621963669108846038811816742178599350683276545381824361673893217736683553237645954401620997717953240941081201210041036574378277647775107745712020461362101526147452136540832589071796668999458759532963799868065632916419406978528533376700762285117738785958958465274837092007093880390977607224217180360036732279520956860553988562945621831138082156762614854739757662659862269673917102648687806490506301105898844997896607993153965778622408192957382285996258191522269462933753459959722488509523485659216477216371018312982953851883571585616670381178561236817074784366501539646092930676748939328736522081863601775960457989907501300808637445115286527999800956852123268621929989832909767321696245755542684897279274424826345201640217377888779431857787584363418560612963761839896937066844322054356802109661946453850481767327958136256057584703387036133159287854012959638725513380176761255866712097285696821904891994423484394625488466426714712032326292272158247574610579322988631215642407028104222290625096334903692610085332368424575982481832933772471955523637418280510608961244394463565524792394157848615260863705313006370898048327673701195245745381683341508488549908251090442228503889845866927962600986171732519578214252349233411762323772581751072630501287400928728514673786573488124055494015808537130511459371562031019373226158413062046467345539610551608078637116290580580821010595637855217647927512706483723836201231822029434560151871952950381246494093516963052094437143278413148403620352325559272868357384466298948607160255267569471998745209720953767106933123018070764388637105171870289988679227872168378456484648833431549074610765577064127447999161582803132312421030457732785122102145368992872153526324284317064446814782196110137464857499134606747102236724582081970396630488766040834952091943224038308964176090200180580472202512398532024319786363366367001494500356907120272987674303714998610039864697240004705396434249158169957053498914444439273472935172976797152360901289355594913458082588572472397923007107380453420244437486454947407703402535926989283409703420316330535008238885336060573423934229322395599654467168242511590483044350813956372040371498362734242209720747362064387220449716324450707540785830069089572577431519766180346946856716033975921947349717945097638993592703284455818284445828477667710418371472644356660625053976880002284754135690353141073062920357025755217667093465811137658603914382877053594733678604207005050983974172119946460741585237205366765356392572850340007594647991217650068855226093916974340041136354626509497929049906902180201081134490410738536045402714597576669933462342412579287711479759570367665773872903627212139368195322018688892541219265637951566705711048026508522113909548295485606330741462663540126755635127756313509550072341116791792151388137549204153100381583073413391373451066282856510268671570269145129304621174971969447912229225433961397433883944128643794443044503827511581476615578815964329404213511463793613178233943991270039237715376207038748481282834640939548479451505826673161413613667862701724339884457875882113027768879560777804744779378060448592943841912426536667097483507507348001108186323396382862743720080724923355452117427957133515245807969749444478677664593860708789182728887355820406049562494363434366677577995731381287900004226996071552619079606778504637944995811655664088204484750427274305485057957124348868486560183412922497436429934151391360077343865328840797122541560554929441823824286507926103701604828464538238153054931015170240176443138409405706470690494552335689286429751683991140495224710657745691880062784844297457170363136117716426914069618573324266737314310738792032949828654499945782064921399063719496068786226602917728349231756418467267562727939355667791014739217532384920513673463916428116322413691922592166427789743310643643326122165383185870749171784589054294546679435083197824024994394654036942851841819300084740157994667782997725999962262161564104232412482181668911320182070114866604196490277684963164664748915506130110744763168760476298329262733782352884203318792782831693058497495547033792411373727310710903240384613793829947628433599844346398841081040045448222580112557088270411729401499682107490461314142368293117488752486297973592502520894713635534505066122103288791763975860297985805798433579424251060861231722272936913399435322624732795506074968167930197122352096368000159962251476795255791367749066335466832682664279392437177162418114908812641635233888715663065828713262971999131272065710834448968006043168207828507722871937172883536769832866004596982196993090721986417346504752113013393190019280664524914124830980574203062668777091557673601537788152914218149016102324611091553530466640946819359979068861102941711529063556073644895589126858756595848691512976250303392004419616713539210531154426666855082695221372245590861657745030776452774457734470402660184384118487305455828142661581773673565681484075538108408211992719529219669465567308727193463510959291511018817729285551430292490061578080930884633731687230804140668040540322188863875732028470731535165735930639558821264942104173072757293339457365000426947279957762975106859153929590066907116908919736305291604873382221990045006523119603521511440915334281277810599644983075620992110679384913273463154425672746139721867572505595592973381512067047302566679191403261728159433524387574188288838884891076178171699202371341029400796346997138969555668226765891523911189102902114628633182109093272183308716012951606680225407849780474349505904996828739395440758397325805506723323652322551718505888568208950242599649453883434845416750303271366523749913677283567525787224137546315478707348543537929946178873460578435955127357831893871704929988490315049718234772163202482000401590440294820828570421267546830034198512553145489853649303868704602088596690611273320435351771149349258998241411097581296066575566373432519875604379603576837649004409066790804296380246853544200575921127388237566649844282684983748706421732223960166236625320476684736603703133598152616394965803729101991478823613364733962011567376462900536518909569080898620306009637684918949848859847757441913889975209928299409224212113745353078003486221571810045860251262721943983040169190295586742072566691982817575838752026459387077466926550352302300452882122544779493277003193090726337291248758908677361359682268659436475192457086367452683511369313878148828244353167768650710596740205152104175580206970674250859352808078132074573731495560176854236033725984313950177356383099064745631602714277075193525465212197074043738940702675252620411923207767198164516278219239632699561920486961813648852370116345388434486515401438296291865476329635376159056352794810357970118396773157875420067659536743061763696541825167610636850545727384006135678739848022790984469621106729193089798212440783374103659516700416483029615803298805781580030416144558635726231495913446509744736037232965568224691871767495105492475296937930172227173337801986291990471626070611191092819235447172933018326509590296540850801757895086428437447621077386615313004994549139733969740277323847861329503967506218769258942265048715574708639645369049727112973240777288795427462565555347393944333447411583628905434235240153748476471743766016154767852979303513267799884924458754874860802162750996603988519388526877924459253803424518166969308740302559410143381984419501931568051092541913902188059074980651694710337491647760861881625266487507337142856189742694544065856382311254719588743639589764792341255299561173347649318823506307037299879369964541951526858539640490225595320472137517349447491735575047493961286121458856860035879772777354084233548850648197274203319820594686634172501821294580803689181903599696411836121075489337583239909129088281190467055729525321473802910873221897691269774804796836003949111235342429992106544120744616639164502779027453953351922554950042951424712572101560797889245009922561003029672287211013926555811977800310053871373435476454948324808602087640377357432259051170913641725096558182620881308607009866534768570123963746036399584595412154571228899311655376319369790311196823566896217654382846607821305110695943642860337960092856534348500813298676915691610479229728543152683436880976717270498548863350284418649866242342083595099226037396517324144976514502169740513410679717454375290319242136048433762840070139049406364906130930801667338023793708929802861712919833122295274741391369725567885548597861186563433793879929035105276993340556343190414023011869072006879934156796298953609354662333058663234713159225753544927945051782714177969606068279296459481541246526436165354656882687757348326272279129864568664755598916709874109422756998830642355182118764828135571353577920033233033555476868636175315508201844068602915425313945529550492920336008647872030651387671686226193407988913394896013462416605742268757786077855455965264533886345045888225563191162368257859911051361677611671290625272490494251945377057694013439532055408012113974713803396317989816595972290626419987864917703976003623022219530015348878706307396960191120300123174507244265164423964207644216981353041466598386346724269776825213878609988363250539623559683849126741046808017910374569366838872546044715362356790057796815845877238065134528700296580763763627884578963961360297600981868397960967360260640038147486013756454984311075310772025152840767534934756292163277447510926083888572875411578647704594352902508965138350308705263598790697824432348123895100758399992065471342608760809613437192542367831491607985325404013708285732421985770844998665300697960462194715950600599765251962336266692829769837784893230858634517895861891474007656024332270224040412588041940847261367006330882953843919056672961549013511504170754357742260945385641838419318437267626868966767953462327666230253526705912304717212659255388683565358310061287067951305355161971878235832442301111288046168696835926646602264906235475392084287851348970878508837383846176982657201648100292050056667692281108707086791619827995625309544626588990219015754452069704399261524332652055247629932467906951372608443040509548350733485022267944347335102003060358428406601064330147293126363403847041360929228440763224376436794063926903229907545485669271323610318728766150709133303779070905722853101924758594129859921337091352980420025260638788155290385965130515019230372882988006342788587841934908929885426364317518720507478249020248835786170083149778700779194114686001797223987540407954976503073515513716385626293177556561541226063264300137326750240991726553334228399801220199508266800294886952361927484617762401607664024935666543439334635867360281290865607466666854639704634961327197842999295820617109660007620519387455453438230378229706629091575878817688989106393670875175608686159193960258831421449140189277276230349982627704839981106684259641502962915339935782198839928955524292359979346916977798331822409321197254827028359360072681057043310014308746701054564408468259362884853688345418183302479497131394448469214239951716108556623072575092787517192797264892961318982313488024571495923829365826966088019985184310923334029396110782424855018612073332219968176040547092407510330276623584373861286969592967167792229757243243906786604018717721331447765137893608728936529160996400367615859993246885657298769874792359676259807893438331157615472583287490472209963225279462086586335472479590812929221705903294225299653897912225579890053227970405813811206307925019246604079525167212663589428990776244378068902965757085016897898894188952767454246196870244578164554873853057766061965746601431966887603073852387420457617843528047861058908312734262206890817002951930872462623669425021073081637436852003039553523265811043556073834134156069418427216698119389847602808612526250346903544168704185660681749514530985595537837528962143788698937845392318416225694468323703272086541251024505401032677953892299297909004011009008819047007442139370965959213096027287479664105346934739760151636702466338681446472158939114384879252926074214067435015822166736186121440255151304295852366442832263925487587571944586206635894723270925778668267500040532436134992247450043977688287758408867692336877054183591196394143826851120183586753739361448298743621285405118963948466109007650685559849804027678009220762294396190558602358758135842107003576966485734809464727911918155645966045133590432166449448465585276107623170808224935969767611141754813106455155045931140839632124111180770627738181372859929519409279434335989052041580469958325542294536057607202490609756848020035811562401670791199013748819661897106922989251819799291402855556024686805044430658194591990786351159436731569822379733911572545421683014874025713963951583452047134606317275719814383598708758676421425662712745588394366053965825269025452868671248049727654720791513410287211716266744084815793244681770545061953451131414850707016753993295454194464307803009872280138609966425592075029139980147086788117002506641197224504291611292370863874783130917855290909978413770254563761061754606074339999435798739967226169079901753251433457174659355174106669510041716762379924810683337038525143856942052324815605750288432438681816878569203003631711890375397058863148733560756490936990127912433944062220134806573410716356362999509894500689533278180944640102075924979573336743977938043152459607434641253001190670754155355712553296349122636676671901199979812597486147504405711994278277762600404816754729678946313338900162001639305403289992894581275333962411610115871013112213661022557066982382361247887262915784072875950365066613764395727600395972132268797512781055358263372715710686649393861389884997419264090914989765897365072505039626392986963939160137529359919631631619777723100758408300710130172092973140845063983995625246545886382893507397261064798420999364877008881287207948095601979649627500480351585228674476039346265750679434573234604400753408216208228658616200948171478685720955059476874042351309227790926835955290698822879964347380278790925985068796873432752274159531272163506825900415608372168889398119471038104314211585753182245935233752109316974687361401377953552853425558212679306668938808615361380805899577888759699986348444362190246734516913771848923737426384890691440255878791735405987037344534769093948612923310595064379581059053579292703616290846891034307470150069149299113794934814448189076520780947539346043121953982898488528112826749409964197169107958581178874879751358639251006512143202695727596492405148981367642268489318793518967490623071123010049899730841082893177757749272877973844090140729627862894084606696985897242421111776726608688139007083340617743541148139427707176619564555504537596209938958450290137298147507462870736439381957923028597937351229148427460834713049565217914518804984357430215626126291758762095771370229666445194191273986992804441614103741690448008769546966314065231550806073113661459117313024013296427257766510096568194597089824965911330287193070027578248827190390777444589441163330059422026110392118926249943162975671241926136594924856512048524868419420613661625218181060781678587362100172240932282718758824508911337898479017909874657483143298644467212460790441945610199759488082072232308094546515502405679441817909582183828294709847361994796241967713254047513593431626769269183453650990056488782352752840931110773168466571550452119129832028742378316000086697342232758810355023856056880473581389246558611618081453770700080361590415326368001302921436098562118132038589192519405936231951612559960374820196124503971423222374420773306800926470996375393423771819718926866291593631252465719834640631091380503725747562108159357060116409662670872199407508074304805615246403698317987270736408741578007020874191287231868543322611494449298476230982893653440042890287624701838230854453646511689417529840444301023051675847460340890070241905740933586588323330447398340409941297292159903750502405495423568092448414152288238686514574245100171421327986031749649405029858363447888953027906636993483375858471104741467509553992627031118362545656185340659928122054075893643130601414076908533252039845412558313671727103144734480992469463756996302780507798685984051522099014661730236997750220243150208585956920830476190440731297612347310472086156032669383472109467610496379346633723271930678956475930418367656097762187723420391252622513454453644445427372546574351481329215458135305289287902192348247388247927281507896189915734332536545718661564946403112138673065312810338905275292552958377581032463994312650860266981569158863166249400993544962757667883415491510239390950244760219453833471500156636092209852363462206170704115436449625230001187158664972326680563892420483585492338623997422883263225784599934937593165480130392621720669606636579894379284378504398062083830106394424892635404225782578132099837966653354342273571086440980968118488653645471859514093297326710289766129741187914897190904312881674226781672158123889098356395099243752184412494744898754026910535119294397103929931942944009300133177008695511393709859058295544873863972787787812923129636835590104761718426215908593439231546911304764884783826511216334938154500091820378305545335520893198804384832308410709953397079876596994135413247799311240771089026758589754119182630152954546288612686292200067919978260649001146747500936547541891827725688751568618596161405600847366843232351696744641439685961797095982405619662572625735758930220080995406120949214226274385527088265753288977536054026597331838771447963037344252087116480117514792977004962346501641322830900158228234360866902549782549732054910008470638597658178094053400503555240175452200998380224693969495374848131499918840823481703450603070219382959844246669569194846137635790024299767650419474288461279457176491624908545848384613038284821386881292410633997834842160357611147423533038558185977382182579547324420507512544501795222701263354859918737964924489731471518659246783935024830123192130165331524091295740347950781251224296057831629028419775696216021789580870601910766752315989479105849212248653128373689831873254854159576532168022111997533360807167738538454660281269502577659860156062103417895796587786768838022077784913953953249269884231478424791663050547278489284857284991235969502536377608998925424217783884027869632415627298559092115935595236679603554352904214489266980280806120513870656962032340396831142086296437521500164498263335809515464976082478585706913612457341044353003401940116920041377467747205898380483554414787217200031950445953643302622493839436075911130382941105355160680205482582744382629268101639979186336563325754963063959822477785948783571971203157917473534245820921240399048549931340345032142897009650269166390051001901747179361621233747506489699322856230623435419139948137259513872072566500568523369116765075255097908465645854388063737974973171771226570026366055550715436751106744468680767107846815111849388731363755885147179093953498946194735410829137869160335698900066285103755095504335576563031713139971213133553782221029249733708297522010476038606632361022613222657137715317410920479315602548626968984177859755700770923429738642844578858737125050518466924153069782628978653845745991785005887539456861737927989059261190185183717592727378496725563007428287925857397344574201984857196458291016686218317833392884564692696054871866788976873581289021172593887142555498206792782309655597673920271226613476421092924307269024154250277302717684210155311788425974356118824833570994704643367726533146806814764436778020932986472667363184992736218515740644816796599672172270739455123435702322006435737249346693975296766889503931353231883744970673932808912237011618865016057337850263318006906970585094741038428912272058265190370393215578704487455649740975672978768867391968434379873149518032970642192520603194185483995688976669091214999168914083355989511396855120180016774264847315168348652292353947349493330292677926169496377774601196525764560512210782539677414639809060852320638875639096133120328237011263136920834549436190157634514357653142550459949292356663191889183523047171967405428030394727261931192678144972690338303008808106213876880631894736175242813143084022475247181752082102815092637300150675231659525488561266259744420655814231298835480333087002601415905493189504344914592982512788502635288531584147054076985514431379746671171991041872647702084555495465880266730569447018377364308656492235710748183765114795422655332228360595675607525776094623620740379680692079053018272761571760236773210937947331219561482279083992636397981434842379597464431274588133527239368938059208141369208271391297562584528100291991167897723329251741902714863018602371109284398936489383958123335783752453430413053184195139717975638215127325307509841995471277346475445210183883377310223787541679322627165297344906045752802248203971089420793415887055639926971561109673438204611907246137864352743015295147442992845884212476962974373803223316767413992437262007602101583234462132647350889693856821409829342639863888981855230107557145920821780314849494270705995887175138020803043144503923158748281780003498183985246741569394476871580619657570245045849201638293593952104010306063015412421121015890914197016053782857853494104584457888054194745127982971461932391603290255575779650192308176422218829697497495733632992012803253309367135304371897969136864566207966855640273460998848631859529616538918949220782080247462116551835026394031300485020228100700347401783814649670898366115692030108540503801502544029575550122113761264926554866561052862954027522908884329083429418598087522044535734297633007650651637778443678318600885627359180098579647775324098696899882213649338277680745108625841573784813265319829585591078128863217208668892673879930141856212381100855386656741561565998315351425678265148203473658160957133547993627824652646947214176802249890805277899773976473189713266140090107609200697758325379106484497040244318535335297590438684628932136998283378461519542883762117948719095958301216522538604085055139225806736587464208613067654370909063276859309167488014064219940426572149867769996289626789538711132192176253584900828722174157944886360318545407056181169137035337574390621311648268113239497464736493781563525366858954158182093274307845583194310141209148053612065486398221108453543596864657170089164016333275286679397392572377609165866219110362468952474843565286937579032309635848630531887648446877836127623246919475842609898804015044462584634998681341044932071784256234867775551597923351307892144044312007134902934826085354165183064807874642694930401752514105804220050630730526415787305315083367732237038702381277382269950788045708139063624133584205498685622071467620572601487005821870033256932312881846999709303573961267169241113705940292152063942446131354973734524676916888210618942499667137834063236014675999744554594896883686760446086168991606328712548606106518237078239816457525630095779123787227925106166633466788674734641805727788265214241018741366660306110950811296468226973867043602478384051064195866008797547033963804531347948857011691066737117314514020229226602976814488676083752252854369165708757902659259917858750717127140819736160804875494714315207376376111799770280407382182377947695324242148216455562361415013541005658922639268551605430843423618890850945582423228204579003906768321608124902079662044202207483176510805578496061199397713516947142512768553927915825809869299928730493569155180386353008386829833025939361714669574639549633327686066505358267404918728928891846930660332840361740583434730440474866238094258342420154294872522227376184667228285239571217181608103121935852390094994830494474894302339907183257996903043398872335366528460185268406927656308746652515387972429546102043554253594851013707680098296564848589017804378600526828971912001799907844013044801983762827361495686563228509066994357230736390601284745411260176383496693805835343439477576051931969078374891975266426559478397320249026328968950617344341410021601321494852919135264433567587327764585753011853237832474889730914319840525675427418430342625767850401232959733593094435615108457305535718379444365905464997291485126750117775193093366057643131148834574690168156075449702073491494029691537452769000137359403698079997732731458308037725121370868036467786330158952420912553603328456080091690295877290460500714048525477946046053959083790500239635616419699638523479708819971272402981713399949299176925099117031204085827072305328492001649313474287988244991421221980228867874252687436340261623955971090654681613476600513616359462469430272801048470015108976971492301462164223630112118575707122282169150437113406840207559996120142590687642947841687856030701885267915563239035940429935563042018133823591152566899260817624648482378036246471652559591150674852065634887295524731251410213577614317598227445535008296832051469084055000293937575765926196142851363822452899943599949709882988040627506062728332539538579216565722238189159059542860699653186174729336928853740985287574250213891357411397913444409501103623183447304313905404469611987565316454209952169261320630696057513689687362879341969710995710757814483600126225411698010675566013159034351926067072313099216518494384084164212475971131871115883194795091792209118023803135931720707854937143308292831074927736395742944340577586807759219567525641135247722880016083780613496303477132461649918373852462423413031700704717224028331649930937287974247143641740543610087882162414043758289476011013933032560010372601934213585694935266783167557753166116080977825615019538261235870044013950950383798727525833518643457577990822752899908585133070511162571227893392100097120749365928343179735270977190815705186436830878151413895008474077409492850067902425403766179572462254805859491538317048673948992784129221477606650332806583348131571163337052253388289738121523565189308911892265705654664106009121872635350942870455532937603641521956178164779888860444481829223685136707082813069444684254064987280927973729405456397284526103385297778906619420452070803966292619211803682618169012247532498811106899362750504272492873618254433322469519015832813087991853095477009091244687984808455736841578775636748773514814337159327523585313605332025561469046486865802471500550393741224121256401657252259177229381660842283034575828924857455811233811970714637874597666767244339834480061494776503869420047983589077620579774276701823000317541750511205994769329478750424788605781737596101757124242836061100015004012213711880400459636004516574570347211339266693816532085905129300117561870745630847473558366497231437414496816177027980726087237466645167013367507196783251573119440942598930626380179379530676172273191641208915243772590982968615293806163382815276906784692344135213936510682241582889168689529561984855285185455785222791378845072424769970130419631144558161757007120238179300780747340462688783852912078347099694563363409498223928210292085449417902579100627825655026460192929214693232357383045025859274662537725113772203354113868458897113013392884600926096073708971861010333082322182864174483715653313698988369341885348025503866082594815622509323516311854960161740658102307945174937783114357844644615573605071136191213212911832165424853475861920454496797812687054160708154322767259000212192870776946706919366135018819255158812607700849695832166708185993625739672263420968806990679815191674183823124525282447817698364887790080279847164805953851674643010455240425854501626506046669855767059579375496003755184427362040913063923220577819987443720226357303810435204558704346662951906152525162059713556705980146576847292828248365824719382696805932407427498475385445219368351878743387116726887081111333551007968924108848483484514535064894531926352706844061999689263808597410425262771311092492943905853215351402731949147158292756099910234997383211532080354271893773238725759586280706844542376223106617430109884861156710939540699479018967704143119913957139092880415050289094577671956384030712483847906311196763967885699349851429661927152908354124507677955395413876109605531929706151320864809228289169751173077159351935503944950154378826757963383322638693482025064033364903825720478610374827047581480262888327033098180997131718529789318701340784944737835414080845851675594317993126323463243101318323032397443259051952666287774101701677788548181286946107343976040210755830574451646464175617967433256001989105138696441934498665132040027658606530888792063531208182120112827768496840291676337227591957368840725326711065667950100237562005607263185306072996997738968528597532708367854981988230632367386103249413292206492182823477209242038333738844591823446801878619137107435352929335569617861058788028519966678139673137981500403702498855944930984647834952730714196296433731625694352712012854839799867166736887255451108975632478929775139255191432979134131948558970594067135445595651707003331935617276655829882757644302439070463296586468880235483913330725512620057737558442541489322613475948420237453110490137458583265651445099292994410678698135449612502096901972603887980138448864851955648456773650596597684341211254984605040336249751639002966190954914246274556063580566368231848174738738367404184542657190980869124868448929100658028132297898595822156504537779529969951206134981137295858627708502076040283953085171361282394093977489764372143075569313306249362284363190121934525929613779310943844642874919617398678242871896459794414134424955874091618327195787737409237920224799556066869616932744065133836423957465986210357762171267418897433084325956962436663609217647647742685262572818269451946010609564604992371514177368278753330432227785533835701766222205354035807893427158304112358193672424158491778538884377148512330742449427534727563799417400213864807898937738727373697070379350781380715210761613429869971126067412837373367527918957501726911776155309871921018450848358643091463518102947616134394798925264405930313857567430435395014890668545059900109588743436499874139574402800184643716675235650145877171378212766989884591680727328129360354767788146505105167371702922332072056686235927909271960106768929355138033872893460004121214271542055988121520849010067804241339082749153763731083436728643435923104881147481395685944085272110359894858932278958277086575305437427183358370737134112969987669943479349281991217434594009757385536985407940631798835014215473983254979432933386850650567856171553435882286399144957846801519206296378244061730627715752195370086282284442472555520875354984075360858631884096999531740359814680976657143047050542277008108399064863578988498453939978038860060457352387209295172068264819239997219607947547338822863368482032180138769968536349026677509460986307348471810962900631231848044620454482336198230514637213738876104550154435543842441857927604674278435557952946088303839009349153662132865795829669987439372155420562802613202328082401053886932072674918950829431183302928029618895024230003799380986809431173428025082434935390681486934656642319897796530343326312245874718873781716910193279338055975446621902325520852308479350949002137030601257397024707229301694890303217990845677618583252037618205278152398437322862616874959082371129637826426774850564905002876009974582900102143915745738630579035912417012173268485499602524013864575658958378208225457467904004785697834843637297917525614559148869449106844477707448335982914660764848973976392272573116420411272519402994798051129417472081330742572745429499091025776375204442683869311848038848405600354586492884713304619781678543088886426206742947709000983578642849387676659376169183494284688592512001180864880893364613550003419754659597533318580204136831892073238724700609745651911193606651925073890895754404447890465036699540278610964397739442589316965399324223821417811550447033408452113914608583307758466802142861994588931964502967636970598880952762028667684831378026572126209141795378521162587750000046099790283682172657879587060281110249582086407440819059664636740427346820971934194122484873456593103160602489066530070358855038349996813184434700167497017557600161784393285920296461897966868889410194362152593924693134646047512513408484578926042202743177227691251444725730817358901608145402999038954038573379932614984024097714059291163390680445051437121622453087563875040663558385324586809059936802973458740313797377828941891589950589906983400470070176282982721697296454570015000084673286150899907684667340217267152114558578717994040162003979148213547161141851742521640250462671165497585476050056581559537364595732667625145329821870630474654713566702695844281770004948762619475685846007676775750220502947145283790992129128585202445691364720232141895345754734997115944802446080905381272333089891234397715046282487674894978052826590938482116229337562520489129181895868754789748479798221945385518099259193641840369697989067306125143433727437383720364589568581215752453931568979342645240385509896652527506226245577300402228896548794868959926542546002340826496525992527081641123916744525793851324671394709187572702934306522150598482612064795630212966766609540061395336046534901405728731932389570541931258625144115524014023696138508157751564966393086617180945932167939888899230614324918050842088640608777027730757596699306147904621228665572874424575136962636203435406897085320265692226661586740147519459823582172009303785740353084788082242382101563152104633966377690297182885198747358667330900924114211528456956302200812375318177339874633875525946537403454662700105761280030073027388286519947610697665346650467856392624713648791489419521979794008566555522827289379775217358332558307628112921175327724812700211678536508873035826111572912445618545098407800234469399685315021968950689959664987381142341858681267252039048278327122067996495158081803105141607431634025626219163295779746570281331566685946188354045260049664774225504257106118441906330895423172238057470252486640595876242998140144579921967328044885816832590963477337336870880097345173662659543956804253194471588729961723212885313842043810129094592389144393308899785409742319419432478818716071634520429823710582591717290271482700344318349423496809902397352954627815885023793283233670713117889641553859480722442839449945394172902299913378171996208536732306496003150613357478316591885878791826126139499106392167681425561275851554165533199740202450020604095090610530277371904234051733530292173018839887161607801626475437569884635011819892224119186132641782911243948827309568192984786369186036094391784954536870575871296440226584308502191382770998683094842088212916238125345130062803411069354307385438899866707825914821510348462871464888085557496585226798340821844686726511743609925530989759699037569865303917504350511196558964953833857390720786493425413073260720133014848170118740815317742520212721303933222277399760589434717311015929005869096148108507652932214387205703157908049658431969145576126336980662661466852237560010527952670257945444809838680795607108217201078270389256291310387437277298045343315012116537113484858816067827292664636350293486761673585571275793745473980650017442324099651886663027275400314681214019091218923509921967998279167974115310714727737079891472385768853813535347556526624577279814511374804052646484021559267206315270600638214939664625240350402924618668067159741744162775778498350564129908856673088433035960592058557993043434283293380093747609803784109594612010621292522674875518725544013596770607123065088205348490915258569671221750019762036944852448414599598749331946162396823838521922394939180082082837572985335726077759869269936841792671894385801002502753065062929419863336536245622678063387599448231916900231288893943740336934572656663517156307451913338216261263868710753934385809118747154999360064608955660014840780806344736671297086468366921828721964335649058074360803453186545166936682475326997819263491833658655251994336567833936738684739197249219997510919329072125520054666952082453999621445010942032162104065578085683371132652325017470392768820224869740463714705548499297112383791600635976183160946440079189575008667106175645064656191825391800440782191929819394698167937644467844523993284520975766638785565925037977622452492558357945322890502811521581593871033087072618624407864936764807963313232596627174190512064439005746956832872269706377499150911412403320964548583271967627954133433833582864698447760166874703466577041766020223280385168993296552728393523272084005842383722022639960704029613612736195954014635751696217421553010546340303700351607247238655949799822977117791045644591137805660426137627974907086005775644395436669401373197257114929629958265040436488435767278388916558935244745086992150477959222272558539793555709128933736420404696913664887269619486524783852221777901035542522488084348132623969755859187250121032013067252533005915853592913744164229006271188312598439340592052096775348883574773704581270935568435259901362893695061085078516452931592909753162466598347438712481725921286650643980679536660913780879007723886470098973801946893208221804984661706892595492510118212313691525861805990058998291582241072558021271446366940071704235690236196924030225166598488258317425379852240287543202814129923131418614293833337378523757585979954441840744546957066998410923315127898123453524425259448557704183027372538864505552138222547442403423073927224488164143919098825592268493571379473163209929603230103148453207793355999650710158562974657547083452962463133839549218026910631715844462846955968217764481675784434546070937567642583950098261934267973815167899545963792569513224317613397594684842104682787594368263189592590964974906952425658815385021134438157968322487448387612641069402214802026159390549121135621224193319495575246168596891010777642213654565130236856823960021004481898862582551526872465588219984899178980416155956273379888984026694893077831742449457154803986317422240382585345183086846856140337430569033873868331843090275609002137082012770902018275328764054380970563325283811322607029462663552513813860080859319689128345847467126562325322097243955724821462913795375283500653187626673943143458455040615701498828459048672550334318505107270209196498539237363660502092459336984315990274334153395566422222263108382103504443826515145788547065203152356583863497190017251666679577457700270159052640941490390475618747269272567302734447215114423348046322072006297818825884956073709517604926421788380269275192170130481763708503527891253062949689198462689862512998834363179750450115209921209496858962992773637034011834807661433660384783658912399265625202448178983073978867469076783951364504913577901575003681514168518747856525944042686293801269183959281698438686737851282195240254389648419797459304072335431082498825365842784867586759017878349622266623290896129877330230250610044397945568395648231563329643472009093579479135066835333174609948181301590759300527904290661584501889378269778152280828773909353608665734456986370589214185725588021124192725906955439157824192520126334278624727754177111142478897696913286733542029955371023804513709226432644464648393521192891009720282798532783084680040951421682056043364169041394367352440932771884556171733133304897378086114753694295097198451592844939064934462137417435671704909709543406753652492736608536335647289362766747294376167727758361062758400454269984333567571280918994520231021614660129744012813481857172719846819540004996947721392819125483857537278185034864525327590151303867251360286331681631612555675168809950941855869161986979916947390319324822217604046861439430334015486388316752090197792350337107563453307394901948850957043834197802226114288304097755465461093804107206212652476826408832740241034338410668552854683758836839881343077502528423401949505283871662209990306307098851851221344588698248542708742236814763915503450196353305396708381066371760099591207760989975894456982619164691768786690918609644494171801644801222336573550395218852887869914452533052092361926227243189236568862901506825432565981096876702685610974975270894090487061339643900809642897332634872901353787586551262736412072848135550457257867324146059773571998473264612340371848292854438080723081391491076120613965718220740575458699833987439474016368401423611765252088276894871709580634804297236589858576671746708550828612263876194395563319223157344831246820609135663787860534457197760323454732483214403223694712849181557993174920156390236292646428963145348162850471006181422181532264187735797474471195155863776501839724427472776031682247270825594749882568537526390758092222717899613433600528494314816481175516493480362055312999648900568870383451670975200234750426650870243391284646826961115458000049771693982193529089686338268681464462106050244613722186360652153433035164932271462348361590123723450162361161364791884255772841129384802258086397548519138727439403524620889574251097121747362641201836165927200948193889187466586478248359552441309558445835885102871244659802155345474041275438235390186236506112261189182163240500089222060661777410531641065227830499094805409353255183423366898501747867442307273332157186321511787518582482959779894493409542735641147551059970108062651641312450767360646364210367731557894617689140199759906986717337134049153966273647336730147327832707282137419443855584211300673899763981441668517775252051780627133830802342652912407147854750795195551754788298897877204469157132278048683292517993284622360531727794254295949662076452836031704382033025035403168798687529309159381182042308778585333716438694745195275609973626335357758946790268475934547447226024413772705634512070767161822614225273085149608692227446777706456103704141974948493071695926729431015611472418497506763199181269573690136150230718674578647118535859855903650972736291947866372524282254920860594160774155734967597843637507715777458343413197441146758088604996205931772814178192824752851688037968218295423421538997327023576450649911751774546525486029686687283432136445822670380496931463781996360186593039472761783068314251071818175818430023444764947840594203757077490322975911940013718230266933713091329198881715268374423811623537888289837575138136743260405566708580272724118819475091072666963777990329591189010686023190733912086273729374332227193739299695719936011384323335094365939294390568560459877006034934596533802292730699138315066795602038084529994312578426710087233990473294234335338606800478053593503240961587420388412907305112764432528758499205996340357380699557894148081824513191339965418305956134011911078600463145884687330692274830947824668071377337935601749709992483439130714083410420479782214789314251182852423617743378899225341179479540377814009203086190132626536278707727719708287368494614342283877404171065696065725615515312157703532455350877469273629139951642038547248620592882706711505272081660757084843389322774044305143594086238966181574957754155814063964132847986059427613847808834546793867490120994896052466534891332542931535230637848326271177895614743234219040687253018797648708312482011846283807638971873211617398267529092664365803121080563972644547053733896885399975281153195641696912618315811817566291946307447287024263837132546380174149192326625157201522230015326470754355830772126481524901435476982313681437626439511777392164338215577043224452264289652341649036431424651616730438056431753621824970614763753892329136522341825250562135679704466733325042436658361173642269647427491690106474976044888150422666182077874121571381135413881054870345123263428884763111299295476229962612429032861589080173311267072052763013260131447653986731269863496030501537447356620524119639687956764368576362641165320470848255476777917603199666790517810754117045352219718012141881316531226901631538303904427850090035377342142105649733464643139584282056262773062851778330209478218804802908893132844673656615654599222880905479608293215731328934236960578042606830069658390625140391048286948011842875027066993137881857374151357414478454555007635408754511646631919632891233555376358828415844563678601454066659502155661500944499913896684413941993217583684286356299490101788341209021333832620544288783560342574844816223005643412476576115073762276618897728499815224950183202691698540752622577627023419065709892166153211946314938046544727802325997385457100462626704148245763038605693802488414023399823671942040816854351499995425709059223585414699675424144510452922902387568856815814901610982261249468248338297307323537905364588768143110915016874433233780923097974219302504841907084541926683151455588978009659297470924919817093622299952429369595562538612936938106823134345109608874626662290017614218301845459594829113975499608374821155485622434622314553120202356697906425643518598834324084178308661769831380178036661775815008041442132853029889674796633199286388512075746863095646170423494127768180615732485544682355996158790458328923625071450356789326988041121965661924083001471440336995672811861127809056440925887838426809758480129146504680775811697612780801284583018079346056013199606060265074643114121847264460084600341903988443837266334076264279600252298581848151542532429732768885697217640097771134796708362577410120105695610413522429521478804445568048712631904456343606787476230293298703219516849375894034966423361500360811213592683146195474454083931265369445976233806837666081765909036882769087403059146246613983719426024054945739856334489988474079115592351711370072930214277347872020669155822778230646069775393692314714016306241096311168113591670508242181058708968323806413413749357300099442078824077195504910431034812622935197805628471231954562273816386054262317485408852122663846034953587319046994777887171906155916000942242216943062869564896221660374493306043746469620595368833142801304423781645486055382507788222288005948254542611199346032906738103726856626600610556907596283490177377657409966548869238889280994115905619843688935565444712957433643668304029956296228541202245935689655161681097343090466076787610344526435680728956489852316789828954368581656667135195254178200432017603209466360411064115582978429785405939469496799167746246576776591075866604698863357433588787248957974545990638153051467531060188079131943056027239580434215728717102531803984090411101105006311923805632220277056588342560667774751615699197015683584814354347504857892858068324471228074131525981790696509735046495930086686694189190605238119180505448485032096908477862418474984569876970677091195202291858170414563357115739539618869553033352778864146134809168789595128854737007571197433149455871425026589398782252043277630918014710785345991349913636288329861238006498318572253809808654784881741786565287162662127174275313274442344967657726296901563216680218152960005575094985972106391060152238396282003584109761748746791136405414595337772380991396016568530420616687771053080956905258472532102478732668533466839800920360066778666069956005127914096400081878037051491243084252844561326632291964453803216204771508224750215506037434347519140412036906366637934167047700436959352869793780294738485930500162559938472749774023064564081261455562613341583282648958625533875175711826715458177707101298837770458628287609422796191440827033915227030294875604037372369492030069296955772363204945981719570045105357018907995487019112787671209888666202153554855480926930404412131876906657649782076130041631679663878452840012730305403253350529421864416929511897464089740007134035016628220797195499849212265126505769846685839414764177315321865929681285773943261332097822349088341418871158082345851093478582689714335452135771419142342547374755754171135876145290836349074790670469174471535255173915201270354793280542211475007649448799124947118312457489644866358993846194336542241356309994642677327853833597894860278406311285681828888156029166006801494947046062634383946809848285509446918145575969773526563929291241784809871979772167472446304535733580756721041066484161565984294647920221850346950044066096954768009309389777246506192940590018706509210798676830229709565274322400307522644496368357899614032271171988623439802036497273457712789905007092248127730041447311318267547343851263238073848033249281442966027161533044780455868389303704696864566946704412382074682349404403422142801132557793769475797231636513276836626770757662498680833225051005448760282830757763968108927661384543288829183666335904715770839651591900772168786746286230258312613116969423016151864522530009007008590693939055362485094853968448325914934061794778418134364777005046149750507447301301988216136609151543906097727473655046867612164300167703476148698672157990534142534206414898850739933246758506344463949584018001538959222991697040545276799340930281204608744957552940398397782533720835392680106208265827827723596162281498066142608763688154665842495428590914425541283909450654117511279930858996255468602494544076529578319223593748604643627822458130743058237675002094096873865700491430368634607602663467690938433392107471144084178890090875863020577685774681268004715468775979297394639041762752858596210518026449226845770194558523072586441122982685414589931791634687764088434338885708808238533833105091286435005704571539361808727407502930119337240986127475656381791759493867676786408490823119771957044289866935036759260034601557608542375378455671026796817288368497584269441048854910186220015971016346320416855185712133465687904427690879733811706068017618357724765286428713514981763096067347255644586493474926401041001523548321251315784949552802837495186083487779090116583284997635656479141380999162083866895914769520401952088804841070726184702614229767074774431278735769470726866951217994552494945034816775488701654020869170483323917146190080569805091346724003264002911862664153876094426475507340269095060923323339706407396663141563354585925181743869435368398292819426695229702272866731695390318328984946762903233695829657030108744149767264009576383720386717482235653988140138503663223322985515547590167627689001774871968788528202835110992486952131643731284157115600010231388475579781902360304749548381878258706025009611594770690260079814767221609577069115480504121134344275501120760854457501305593409538242837096731189063477796071337158472752966603639035344293336151567357020723692795044719368267754073607709791558642110888035523597158882903893094743672220593582948641139225016412834442577403388835532214366274464909764985885897505250371799913189396656976125316663027283823273067914060582412097825814428115088354464198067802858587605467085671254351605987959574147939780279380999686887160354051867633489607670401729992871768405387402506240115911055957917727809270645599238496691127031407678398796542109617719231493892655984340398665548230958305290721213512932161437974780877753496940477511883002572556685837495615492167381823330696652599122056725567069125497905946982546249028995413366663224385372324333712535450181168320859015647929772570934216999136359533813481483260562854799863375736954735744986250015632932695186951383589521478377327853695821855595150688329339743538090903392318330570955419162127875239514910844875124395345952142359903564384715497452888664490468912135981617806369635724526583780433241861803377394434372481493524201281654670833965885148856124204188609506077546102428336398106540438092267317353716098089808705172210363161745807728646505618198600158257572416021349348662130175099910257353071263880884877551405340101243610575676186538343904705870703402316945849737678240265239731654794801132643687388267755545359639163271775597255329004344977137115777928952805204841181306389293899050411482225208175274683856982355759137847804426074765771565985368080281763391865887633680018379949221852604265489688326375510242167996933601154724485109254932446550149517521734626659873395484218696653379978865118676565000732404852513381261340172740615504533754842838629069312810258180846855403645997407621974843311666193752302676165101702530602768405848432063421777765867613004675665422464365649226913097491024706033817765615734856315273226227774600194526584277620435199821786592902597519350104015919440057491320504892212023106769608871934058825726518269331916622170168254280153749270194607204234264277978520853622765730059917247838536040251434246169430935338991548893787574557513894277016184723897065438998073380619482645750374264034674184688529855212200181868037447762233037115849511565111418535701258722606274080296606555860968792383537571289480933728077173907036405898826396844918749552485709526101495777325610114297892898641697783587479073196858209499851088652292208499472151934203265608652362300988445339950686227307512778972916858788069034681522170729689357426505441463878625426102117262318386750323431178808488563722068051281075661788406055508949411390999705479578902202060419092992080791961118344306358291741701302102672636309019158967080563159043780834349559307354201758569603017028601590152892164922988334527928659577930568279708754056328974365781309421605688424619789470765661124066512132664788574802757666717979692684734479074822119295055787104243449107973185228626745186427680816626247082321932692030681716731654752486594450498181285281620212785262435192360448699615672396512790014343884522458134041046236654614182369802341358510572983782459996617432331893184460849222980091170526340056670816603907605248518866430315937185831745806238085355757268398012349066485103392568345683128705253214108051714054032131185010869398632279127131653385533011176162215305547385340062025745691663011784840405300046866373292602397001564188015700764777333475394292751180470622093528780064510955066137502126186637284984810878390123920676036253806391595304588512612873023910088622462374794717601259488946071806339919343051726466809102852517983050453253701136672036713152418869448234694209442141600468853646197033381433711052857056559093679364535855416624566409232880249064254536275524083469839188758852297768612128058587370870537770263210095345263695221409725229005630614431517366345031116556781365010059367458854128678708111856699306774461426138257758864262078547257039773303319698528723397332000994625322777231184942194269012252898798864485457058298555586454225085950877168143155148155918437217886605870320137032511360013835971611077769060723554045160221185460084325157269782028034356884557667595313792575947661028266376463935558599885928852265871868791202825979295784692180824610421545216720106836850469195948532037731088071997661503277321738367666196016677574974332388614912071872966526570854638998437979814075566734282120974568068254122080784566829490315542544068284364996224186859617144167968836242042458527970140480358886805507291992490149054662875110408883142849165815319236139063497116855560483090278784888609268876514776477509176132703587326170370683926525018122691700612191452230918819047453768119755122937333759731354304795311999084266268550580504647460038458845090359153464303880499434567375285945467424797523094593960512076212129072299962022007198936013655592933266008508605894244734260317830767666231871067628221808299931639999638673337967748933704593234868364766512158230854638018518486855695370088560236602204873555939050205095224438184065025967026106710106175531386143095076736248216114570160510822761342234096572843625976981726736138623395817709036558374899674553047729135406796067097568411196897942266705201591641092312778158124685369501481614915023994742307464292759789132319765436340159412689259528922349399689465662153767606742292509269234891442593070174186881785117098703148788987873071182832291489611496847219361731789862707540100014818236339062876635334849892451892699681959192953569195028821619262801169399172014066428220435298966438404924017948242781852274201928662736408907196182989064542693751609904043010697545601591528873798114084322924021056330479809320011056173104557734407128561875933075623758542351541832869629788403007009056128136923314188713300682846537121549942546934169946150256217679505129522473300806413981995744544194847596166446049358469342552435441801032913762842959121368401584735033935931654266680605253343183844872150657897874711175234560243751943116150623583222880368973279876181226304899543382027011756085807314139400866724082342370201382796577304881538284058099266206276030958897078913327112986398533623150648913402620733887810155205810024575322872520166062687707017773140373959601051079128066113139895095673821054614216005601235727665925682712775910803850078001871321687569529899705809840424653556018093205538360951137156165685680697144594691351460365868627314349524730542129630603930702154172843813671300094987166919994256896337204700798582846160825911084803133794880941013223133225623714511479806371421602041480291315924707099248250974173360178810599152194068964769029364895897645201144118753309625624414954294787153537292996176380586047147535095066414892328459022475733876153089205258318957466130780855697310928435572579505184883055566065091453317863576007354682909837748589848516112908547788321363465476563744653951965775816382928060036833020942894039776843446396825343834474265070673335861627610669295803186133274131657302152816076240269891121929067437356432355408615507816026269989037013502896265162217019725345288191296116865242407985212549586154558953406740794251333915097473666415079479758208901899700334604827485789643873473491580642069076961824830912393735058833869947387545689629014491920386316895599764809633944667034721430001939583809172768098495719902205570653984863888928921979745440521264079660929415086574164694704469329896516656544739832244591680291096960808032494377030887300937385327813916635337733626197498408604865892937502206815887316012400100735885796471529028229518781446827052871788286889482378213585871257610491211731476400164547522077974234453120450629706253785893143328226966095017751930698103937449434668927116364981667845938100989949489658343939632625054369684820719024017365100535674295026443109545653145250495206362325430984199606734460686686704493676222350326192517122786800034277213932142006730572198165180553396031632507877072464594104979071640511867060060557976703287490747668714973871478918874142197278630198966323581244749111058270224756696793172799382828311074897756309301674278256892746288113835494413815822933089021812148137737126396154184481698868141209971369813173834765449676464874301842274810424821760375865549855523209797783053232876373728759224977468487109898420089230567028990999433982519799116054097841150163813259679185428292918760941658219534681412775718340537706512256189750464215584944779792531915622302478712740483730197797668074886584937493270036242952893019830174498670218405744781752211654837400011144936198201018315812049756744261151678098022988187703810324078363615363171825459258456478395859102732108553608803241339836218935425659508824815483684917852533168457302684087106118638661133731246926243922043136112822608365855793008763532580550424365245004771201088630706222112003131989374195170646147557393200608295673011295082460378471326131711745722702473098012689231353427786168435741734955784828995111235659313197705229819583329370332291775712605592910010792261317952001393624609318008422951856482191686876022341211399503873610096367262234754983271691709786080746211610627969547873994100056672988482612154313968274967333691302192106912831242700397011539258717430211489071119913319928107825601994857955482898605462435479960487350509201060369117665715569444184780199802803166456970982003161081867950247910277588464438162032225280066907618079819042620499888439706758432581631688721464404974713130026323695965860006324053652126615559134767059494274531513266190094882766148461238490512856590471594200723786231173777477613802168159880056564496043497439976722393333682504397264021333393779762233671363156311883521177957372812259118219645761849395661891621716944058903811701653712016228637295655314064799107556829357201186951286094108151969977453316949953429643850802373198425455257048023296313884016306412500758205661058622552279485668634375258888865755960807113773161739571834318899171952402928963887766309322043319902449313356767724387420170689777499458956570238208770540697172998243647826144520830577031725607286621103043387624260395590809561379527950078304769783277463057447274419492545791302848402547935998872915757107842010547363321944325477729847747812507819145286244093824949516026189597091551597320417300766626520545138755223571921620798879977740024837552647323031451622770755906465513147999309905828665234134298128362397657497041860606877202492936239542144079723149022448958440891185090615159063141406623637606589996124073837720950912548204483725003454706268763771833958937398762500416906692799012209870580598083055245318343408774257174059481098511231928504446256539533973336884145056839369834724142924674423851700931651563384965610269277768251475839100622914990604304912311091052912824559837069408689143093761726261865842667417246159258880807604912850527358092327129702870634368885581799731380399588978016340490900897319040892429278605876270101385310743086722140820796504924951800740241896239078624046990316304877266924310040998328140511160206973865796483903850258879363634630878892746350793590110459244404348641218910244905201422799388350360362002321584247703714284929813651544561810606900779625823343235868273196027085371662976615310542296316847359756333872455142067495012018881225877336779773482048259789607932276790059521510185831307913203373701214965108887008819612574391379994590297952995852171511462802270418022676439105414712483541731407860018852622922717647283460596327358148031236584424840342394655257417466887705373915308965493859751260347255287345780214458243171056624831964172029569716521241697914315169763844000231736320803445314349880472358351996202440369771935378136487593369707162282976448455234604542148961159884062195628683409989026478454306087682367730319046446587067399730864493011887507600510596858581287889666936612322348731912226515394795442837773555098709811011556086229200059885094879455952622954995266776843246164166116995073923341656234740673526063408671769479300920704031643349565915046343454475051793271288161235813227428276818027287920521820450968880941239738786981612009354784667842378978330957945318656230024498119721416707477789821227564383754171130694506603041862447466543050900585370811269957103583959581520019114441100151811080770723953947181369805980132268573613078283199334029883033080223901408391166762872331687690193195768320132953593596737847553429264551961591945688607981437439978363478557555688115134080565137588845443363873403687030520467470468883573099794829392984784196062969265024822129436277101029916707952164060360760686908125340136397158048393442806270480466996652779152120355968800854525055700714753898421873745842362842438062986850316489196882180670172295596780223801944369675830367766085884108945878687951001651418050681508857586106491846357096841427259479981917384466445594952535960561945003957075416851072838895348412313981510011395127936755593473157519770053362871828537324646885983570711808418654176201979672805285818740186123086958103019950439154626693919689376425742520668053568953989084267594518752776362592591005945220169764222968068301648829575634378908996388879028735064986294612555790474638694305714283763828329804563868498354817224383773537697314412813503642740142116414388080385990350087030389063416594855037648330591458054293235017618397395937612739383487976474688608722830482802405707320517191602334108741858111054708241746513523266248744280995470011193462021210792169845165719645578265831341087055881685644579935293894904244354953467080653574227437756708467644884725480912258405664652563450185891154450652865249482634041957142285950104159946258571493775716688559387246540386675754157559823835253684296735905048773614983240759421260415960639016038391720145452399328820851816172189314425587503692067634792954579303082007403032880977812930726708562073220016069837718028075626753656817395186129912097973959075235484934839824618331938280272400625372587928875780471744761992896297570532567926922221686533593482380405756352746989319545620503413369033232065819577945996411495613743407891561644628512625068426719916031824461626588169862571090219126330583820825835906841307517755564393899968459103898344105643039349130577617741136666414097173467441097536594883349733698390779948199038439098975213802235611884674489458036184769687375353499612566634165031756473462701506892589391522132883897633814742481789073438720158979874535394113003678615788048413258621426009246845686781505018514344593778190505285160835538212477479890281018701944091842757880205476443995208536406913065407576131397556131387806632335359562154581193122319499986902459029818177134649509417348914660731917896826364121772870399662409540891011957956604097674160068698164765172625747478143652038634402680434679934769337403259467300622039041608600900057757040091533912538817694058354242874069609833858748168950244292828928509072519664249780582506969803153548419198148139371472777678313076609232433450589742701783467658933685336953114915645025418201077664754771562024613592146366092125049130163327574468123456576761699225790800587157929174608829685082551913992057509660414155086562160442479963921162099311691154680521380998620203002754236647919943054044278401944004159938967399439634880950928449361258659654657855618405688690492067232622979218139022793553543875025075454694626710948124590756230584169686671541147492098413033061375903112443851938994471200479229529617716670774400181335112951285120836215817730642482268288685599009092018594173587274975043180058169564073005138878478073749803674701698463302852866672549948952176411433195157611616469670913479820941284793294694841562801665568223522794763158853693293097173809826888649280738563889770523148019357625123610421939482306032916205093724088646127597048518240793997973166541008203788271514977535306292727891539781541470815919845168315533496664958237992950317794817146787959143442754304003991393679996560899929329970297626275630820200530010614295540395524131762014247948804887696713903763856268690624618012719404597421664626623694273402564087539668714880180559442182606665632916196442233222407683181973308545142240688588006575233018049074860766080089714637965351988737710184473961993589199364506880040159567022053798647982840518509948738495102685694520264530996034916852276064868315123019531240542468004223679810222174936338494934393881370144118099943136076044685720639380988665926707368448875133769678112523440771970091420624767362898516753173109418172982147394816851339316730418179116180285086830573658991052469461759919804095441911684181456122878456156224162457968307460039584596102513886471403865681116372973559451123396569515083795159348139737354580162356175470814200938380531587236967810617162740146762522038074401189507851350137761909318102623547613485570153747241441707495881658125350608541596909925461713160483123463511330109992723953316761354333956764058490908057269254661614943386138827088607349252415350801411908029053055239704945768795730955459351523315766177494055112905746109253787415876972150092364991822267120447173909550913041559137071034130083545132833991659040632094708339725270276242986302391406441793497840807278374472633095546651944653322366393884681866758536916546684096410140769420263989158256210758334797300199012916451260027384375214969789883938424101475894959289273140222564927508637824327670842741689425292856088316584973213932577096356353021021195720714183420220608281140327272199352124406028840910360793664734397653129703163367841831405733525066719023008085245902205331303088103933968600890999308667631727560534004445419932447039813596225578493852815970880659257815454512453571089580661664464776690475864834278367665503739968083507806253632856594258604718222313115790817187249987302825568909449556962731810594639042224840855306329973993352484775094027406031049765429592960802161504402210748690911554686829691379985549289689370753644088885350555064789383081688092214866641745822969964147702952997706395298318818977530099212558331105048243147965475384013278221269051255391609735351412862894024556906826450798738611858257875012766098463121076359455926095140314295745854865980762151057129260953147989300724029187316259601311642249025100071818692473921883709356093432437972538933785234943991859309601098645357074852979348193023105287609133670817765047276637245846340499058544136357852251922785289156111046750609465409885447069160002321437879430252357210829960496208807093982765241416711153683569378136734987807924625571916306402857289378843860973034820369202651155905870707017432938460627897763442784571135147518821801269259823811438406918652891315651376342734520424441529053490748398688586801830338987545389982070646256231786737459859442857034217938676741453381342101833013916872483019641435624445984252811867479289413880509013967317991239422264708737984196427102139652935625926222653583042345305163371858190441281278390552431648337099614215906936391177334483940091840149218060629851914373764039621594300151140556316713626508843374536041686413970503339114854488791394242504610699587099023746852521143061921682303250653362889108500629539795541460943979097676245494171495602552573938572095204002651220914439154759444510109693383165714464996920561009822624098254498686932897304430753006535748198784951101131808946357014358629961199483275311559146568718272402035657939988371689738615913050103798014599458486783765761840709943984663286144388936055276634603434445511829754028459705662249184424012831736513027569211312822213374807865754864366068338188433240333370673780324005576446236292758918318023442238124930589808164075977498973015348231768293851215879932801734157423165660255923031441737699042601585343639667405171738329238982548651195517681690328181050510320256971226069423957077433971709391807512776509858923090636189139317060108550331961347400515824112098506191524345915688343597746132003756934337984102305949920732329700199910380078612200614483977262742734992235454195293299277825259403895290263880191861612810065136436954499577998682659244318648794340221060771780300190543157771073396268335647963020315939543872009490304196658314983584959074754923447542544009354696008816870914210908322122206767530736479860972782368506854272233173725930399270828782803769272234577230295031196615716597319366468130405694152878960387480274414132579321325693460915080768483556522638453171085849713440535428624373539407791911862402479993124539679174483061526281743526327111787566568816783638346090751040857963483916110601472080893476306125422712971242934119987067471936670813998253024481471780340647411254987627931525283057966542550416304839980161687753359120024523609596596463661873113969883427008331569051918434354795196218173382141810291386060724086954388421597629444328347910959806088760534121265235176665869031751077182897423005585869956459820673749060405822269578459071775394381045952820803099905797787385078065126289982336226400211118306241664675216297657266130893196403692775405360343713339686233180149735608063583530855092673596117480873521042462209309570436770447814359732071328932485906819768477836053580142645508250184655602928549638740272729687221930208420076918074692103048713717364406362813092994918901870133879424810107533883189947221226555780637882393042421190946645514504234073709614822095577471147070676350596935486151532365563745644703418619861627310548220775186484307725899248979130078339760416366492906401526954925162369727309127594782333260296329394569795797072838280573778622334416995377958354836521215322349782925423259488173705569742669839857041970493412766292146460140205563466498743509479258898614251830387731569662839132804464210868863233979340372142960621181326484479975896150343358388145049856100170174255156064810982838204646937818333736778006483956386388884307948768604660548744297359653893274703732691224988490637419991768701009371609513155328066978462719372649527217401643079644623657860025878705684252808779435137752432236725261684105126962680542797247701046066674247530758052146005719632896879854413763351020226512699480795224761949841777325589839375735365595991075726278673013469523521206093578046980514411129399226612463903256660372241681298853582531474535452002944684641959767175929755883422139518758554476268127188189014696908561646105877907089588844294977859670698023586097022132058791962228909927664774146462480799203144810176861112451284607604487481852929270121144830587775934477261271640012549285428370085105478773520107822901217919934035015081523144920242248923359711802715646093704694254054116631666738676655841350332861594600205030036467738070023304911170455244319705467556819826690573287057728494747032496974237754761629020055602345364756729258455890184025795938267179145105212130667600552840769999864384189868936881193221948596371617667326283873796492767432826857201979448788982110693497209706007365916868009656544570813232030639375229611233822589858651737898375365644753347623008726327476196962065709439945926379713414245011743793795018094062112369771455132929194459778753429419382882149778967101734101508752327870178802610746243582632754043356242155752414072980931315274499356075710909971863700663425235135283645406274731813849812660203134113351730428815093324744877384675247394754002967410516114070544488567426256500786964652810173874529283879661935548712783830681898577185388062481501411776439285856935037935350270691917579297861225733403358739521198416241493247054336757697326829890955382758907176038662124991450524614819330276530818599568655790327855185856778621707022489320359171583989693242454016422026369254506813243934245250935900946805410500102510576562347739679238102643701028342201357826361871171362903114111508154530096719338028968742730570006656160506313274310418172959970926588073686294187966002972895946881305132574921298749003383704100152206568928021152735793385569692727416846317267017153660945804945516287297091618100828294054706629782525442327498057799211797402688032200349559945007470716738560359226117209226355662373616783751151214764841346739345055716606995401741357575394577726528099687154324381873176979704596622926008673460891037150431396450340862974621652189962992716456121952961914323111852958200293135522504586850971062142190789918797993297185545902340376355620276689641409595927072735323165685325809490506943703548064161580976691552405154791687134545715501661064483554842319344864395693520581210042802252739403106746827518574959078505690999021947568963471817575800358796848827044983988312123003587246478501853984203357599205516196054233749257084477682283114722127526788113177420159119093376576578142594851285457759153244974243501880169367568618029575037575196829413027800478373863690025673118843540573153500477293660333526378585284217503455177407703636725952837896244416745156029323731312141790169913005698609088522471598847990643862500041538073988426552424988163334463149695392034133916532946572839078004784118649080023643445401422675155771355239630372029186393227812555846627718100387248367785242553886867235068681369603795289774411653807466861631877109527890951421428397354531811360064595492565038471242105076012615799652589285491776224311719905044122531969794835498303271794728048888277524336670879138985903442034594198992959025530212841518158369948922793524420664240820224342820771334615775483600847679147708774925016392923548114155887340564473082807033564480768459729259213325981283187598049048538171660373621582013167336940657366967084394648449077666511712625654561045760961507120014466553310730584817102467905073365701906105548176537657248952920183991652530889732236947394388421944510511579343188434871933405307976425126489600805537750655957287261182440789344427279031925924422332102517629204074247994116953690652706818759158490774818374081521538285255200879714362424134890080862731084698327888797781287510661750594738214760157517316767454240842527226539852897245589124565751565561937006525211364393981598428778883941496238271804721836209731860230453043233774360233890573407179591175456603562700924487029870809575134616769135551664917231830308020965701264411008629674248516668160350859406138295366181347865285330013107358420038484752193871357077939103552835441362348823042604263974987366226516129667927819173952017227216498815512127962089393077482028567579141812793504842395996166907447045834707809383908794897341497413567784649539283752497121731966862044342105586882244435130121174857383035960427193468348695924696810256356382693186651695753428597963000765841109855914222507130853074417843627626310879013471031223358942453595443625418191550358887732227840826456222494807865826937002696136729894471838823410856531029217748073611803205422995221808742677865413624481325295334409735825944329477352184686311817389217554164962132190579749274243921856419773631415540813345476661531075809539973765419875991700924569162477465149195473227066016295935733461514769464393762728767742737403095053175576880128318715751009203614049344764045477965281633688310228583556113782376779816698723300072335538722966496687645288044638828674973646051032564169564050933505596415312433774865891705080010810730997099059720212233762727092717468723466572237582653003598235944308571340791720943786747879072901345358846076657226167891899921455313842522113026824319206330280902210908734058045714228584190998141388725435662386083315018813983317599534445278598199106940965915817436776848242874484614953762952401404000067106101502134777929879575055440360929316759905752211367229407718036606109975160254749250467768470405603544274605226724863909861763772566955973549013270957744021482470881717672994641368526008145685523362633583219264790501193935786817694784619917528730119580587545539076634251806381218068435020120932443136568777724684733659464884020123792544658861889146776745179336207927777796613376793747400146362432617323074731328397341962737759007413066039117467977025207488550817816917808271171648803153839303560597504612502157446467315522061980662112997114185745899404145864314837824111187288664757733949436101559732689067708318722145662547809019876900559974407386389422796726947104782497177436511116564606434916447383773802265833289185142070241657442465261772866813852386870327443789777757764265061090269984754681037147199557428324788544306484891965222006057099481088749692771565598680185936835487579581640308028655937624128231471636926710104158904325571626081620083970250530392814981518958196149691280195248165014518455722444791484840806904200753204282385098386873685124633865771309266828384319616462229074204117657874274112742334897761943059886368146225523841200385432280025292350799129936688899967107901468904156692870723266153048630052229313525900468039219796898015400390163117548725099907670601786475100477644195998196464026377405857374864135846737405344400225711449740725168307345661486123750077398077853825104660261449502316869589682025017346899813819637275201153846061603868591567402641230512244515074395525926695905727072324632807770457111299349989269298328043000049360391400948389568420387275372412830023245103483625598158959107377476217920905790378372026548355901275069868085756160396613052756239187890163578623014802307694645298049842108724459312364371251738427050855194384714774313165382291392345129472718737014291622552028236696205848815567812190258387375340343552627950915986658362196392353094252793346240538545745228675113932619309582762824737652144819362318987318919493728406072628385597163801972292027642089678063186253793798292704094304452770420347170806011400208007187638347781974322661525290552901205567437243249817844180257666451333528184921566982381470195791169745082562141612294055882628835004578348096944715349483133408990642588488105664943779524367799117045555501997991873878643897789731750356393262836646850613699011881072558763955569397144147570228617027040395410459541535081885150740323390654102811183036126709757518763611228093237853398563565320100209782146084424345548966202180784063910562061603117933166397909711996629542822025774945571186979046374169054774318351181356653602094170427377919530325084137217903814458414362428238843252432702967463966264627810545179308870193322416067047677088460659237684345535690914651973281918432686104407536908261297743947290448264041695429262081095103340305156211126732798078201018261296000856934833388748346860341905711420476823968185591783222924206468922333049231026000272221100743295971180684883956246522364940390703667587250240229129388558104802054808034071526295106710440389962300268523220380750156840837032293530456983926838478430855383836301030079021730154191836085959810105208791936414977516811676454526567988180578801922742746381926752578872035370604783322536342411700193505164804577853541261143989021019423241025167314688162696247357203565048139887134206440407720419845191693114874023687401005252126833981658614149867171512916394769592417270112745158909098003872831409565650274664957748460030839662974221178012280847280992991863372178699202105927545362995201817635781183592743109423784042368668328373448141665866742280003633590468819376513106090280335290159843599664324055810475834494119029358497301140547565424156611472570175782516393049971671840208355962172815217476527594316558858212835141601125160363807826722323076656691380601009843998809411279404515367332223119190428927205887874605045305102943460663077074921561459481931377221959101899253413143678013298318297869767085120131506320195361833726603741341635788406988113749011424182792122931431067397392694209277245963930624729803002623884449808533409525786323201420004584582386927739159034650660324243088218974339580382341104097862606870534977569019343764799729559263506875728022166489198571854265946281133274495272830120996339527881752844210338111558570772043251498076125560414246984694646991265982363563022564276190954654723757740318543198832332855845886830320322576817994150194160594625629318996723886031358242170240475675416676375840977269980110428397856127763345384800744628517806282833875511417014838618248182152290966218842140173664243824893385373604674444883645967934684150813725868589955118229656987714372413684521959979973447323383966110376887415091072268100709025839059190115413475520908446218896694168000457198574581217857951333056239857136755726088084777068144385613128359828435953780964513668423027880270872081998192180988204883428726135109170683789258965663563435913231800340293885436830281952474945222890115817513361972828462725336284761185278767510811666369777854000241752214434916908104488463199570792892602929831093144811984350014174419039919302577911944134733555534067165439320014903775778051262334387431353376984220399227386093841230241121110093266306799224974000989865445797741678227454996522515678029683973767894102163699557651145415426085569389230430038356869632784578959862226214583128835822863307672633774539974574212382407872432556574714591319275095165374155262323811283636344568574320660742515524044475482783124066652125187580781373541981793328346954353833505239311258381349240552529484367763464082365993356588541174822247712325525122320373745088865509174776807910958498034568833784532014450633785223956555887952368372430260828660033406917058582856739297956863832040245012071100833278150089438371333930475102906967476444002332037965081365190327351965686820318643969458095655683264832722271487456629011030299909156730150559031601196426468308206463077953731880576474908461928092155563423765823909927053514115373738485417375959506094698521479502692883214401894175709878770225274746704620943223163196584483078953285257022779390942645664924185544551860086792450605554244081471012774127095344875042179658818595852725472151265843158502041811313786383215890772880356741056776229873375343808911940626317142834097081445853759438719961621991181473455208630068507260394000514966719371700685138563576336682649709538988006471708560616882868074548189053669406060543695039158511528917860477609064549352839888124907059407479973747437410636314792944378232829426289305780528981353895413728071039961547266705290928665381829928100274956898516114485171473279302284634262684569930754491019120074664875750781416235261178676426726223706413992476783692827188888951954829774295907156844450691476425054847667918577110851818228251460266236096276547647862290336629848900208332167103210619106937672983818063942955867158872921313561423474854552925596293742246456341853244342660336856145698435475503162257762049084505710037416863972928394330172015430775747053627552865142446333858191217826209569720631701123027645029333496659952176502012210241981111971844719741888047610158667768630598455844546002613161288729376637149831994880130110283871636941522534623900380121698018778932085662795849414736788418579146250075241796745887032697808210871157794133470295237249802706349225434768233932736027367117646516647115592142759691873400848215931580101298715083082605768919690206793631073249417398589166856786385626566884482015624613625647019665136274063092756234938632572361522964219605193823902068945349996925444232352108910536752613979775056557760736068504447370160418946577462690874258211843824845749902171667342492171016664266474628346920565378040896878656549443024225661518736002817583438071667211855594456582496877894908499183710834428107584517376215393625600738192550677574658897598979217321830315418245452037563901998107110178525177350333689249880987818807985317829616548963074077258413396697310952055194361086438904430381181286724299100469618426332950082747590020067867208833158220286642227621003347937999457770878021395763663707316255386014100150713914895951900511151633378950580654778210729281558719969407037613278419345245467255843009757865091962265837740659679332211910077671028856722012431554354269362758314037455900545845216489201157889053633314853193145620652350304381639015171353460125305422675865162754096215624610285381033220808827359979753629682570128612247151813486940318318538171828697682158249059368405032561171896070596070783853262990740644185822413670024613093407874954358677645096916933012314704643925190882149601751908012038239265905996552918297895420984177854232145093588509928309281751701805482395511601563569499910000588806616932023631587977076541865831537589512591726732963011568945006040380949985355953862551831838912770185608790817698982899823401004124215077785862461310623056133607697402013418697441001263481111347965666192992472010198717794498719318372613651232911695167535037746433121978883759118861452453398820963300492888422101513139483332122543775619780222378942281793034016835882624426180895159955401307132644199351549841639190109401453327485312429799664168460557947863260651099926614288514350262391118129999268557706910624183975363485506183221435470626260244109595717087947734543733646146480897314031023428994838467069694916637079279692940104463792692473951843929431133350496811048646016734000670484454038704771220655503680744606343913051362523666298629137608360021890548760430513083819491721287352367980447475751415364371895645911828037397502795113862851130752879626297502824706130267818828672371458794868900277366113653480987606331303763079047571468047323980563238454716379370749306730833566988282959749856946919227527811617222721966891321054952828729403139907686227356370983456296379603442544443562817464648083373488290518901307742801819767893008695585142512522253071718303713550291471182805385267545156975879921300798174817692642538614319951324020612496169474318883207797213554327358183627531498757533613309017909751993116159117661875750550263302903660388280560275647304519759391252749518398055830395349336765495742166136261818684249000367970317616257896442914658986844724846794866279816195903078495269642151359497383653912030863383119450770848541508107901821151265053469088160224732237647189549272180688390906076986466189423027129680224806679531545925906869814323399580528530663258755866061779134320151274083830707156859578515033358362842207510057206790428489850249743893773059602480528486711604230670244352712247594837906966000175854652112867950451971680685721584430711100595604474811606737166998076933638077150292330812095325760901265105690524880701489921592712404574981208539216406942900054799554982055263993419521352871177910181703443625250304981486043293314437412629171696592767074717453284776404020111864963144288239706254325351547195902573203885264613894748974808765958750978653046775860271721217540062496321340375110848590339780392220085529687857013158265586226362346433257540248232229175011313602682576635716122827183400540078703960417397534793507012533130327884026952865571618674167012941759068893228122433981353622827937505154526859629229858316246662848135713230208501862042793512693906505641290541251176654179900217170507015662495827831055697115914555237659333026718022404882553866206169280346927765884692577236961937342921796440913533378430196316994874228240834963461657272368625285957484209192390167645170653423146330924623358215487502125238799301551463939097593485966614943464377437052562912916583143620717168044378799331987221030815303400210710457688041788213485175374551235621454077884301255488556262087732541279911164629069337664665839835255168615763504180345464276089029900177652696552014775101181900081758593047035109012289806888321228005966603415836536639244812900588627842648307210290627106611376737738476473347438275354196720960768264070137786290336870368125264337433016634825036777197176966664641448520388954367094606161318378823530172198133987096386070068288616218579530774114445834641647998080191179975371830460977476695786573790272336668790776568419912096532964258584962215144125175609420590236311160512630212248042600450621934216427782490283413459368101988042022105676246574328880998828625559246507380461131584674585669923465743901325998177220266693471901760196198266533702469164665512956232099627717704882539605842182605714792349422372348453670432565287375448264772393099291189256726345295111924199629245803990251492451803543857167071546089315511006450548639032070809847421411730442739005958061783323350919764900006589408731712393801593044178759629592393941984090963375734419618407857108478833182976120642322853087993050611134681871624124461574003355343483144057476620598007637779349608883812199974600139583044346068460958363804718559805040557772120453334899325784117369055569881040788331624957899149584769159831777613626257460693794328821840511877871940546550543084258838845497862613978046987301673749870568597675359243072409762796621561655426504765070245187591349972779689563713796979486297026715997960170710742947870644210409834173715685289535970934394000884457820793153708169647472152371360216507866866311815696144627867445390954111791097637493331535130110352195367620060547518874867549919037735850472614929179788768025976661358031166367962405225131411033599405755406015072413192005771525643921323164823210944999724071568673143164202645852457256747090988570738347806067798615364796684493995480101385539094089849620715224873009825646936454790983311983456830298648631713501572693714555767976447934737705063140856330719207111540493983143583251667234141420578622238049349740289382365741840874880167942596180571459045317748286777384713754765277558840129807183004658843516695150180145654323840041127471538942680312011239411234949849066242356757455121024186181877750880347290031169565458781877095065660999290931390020563154433331440496441290854023659793249521951737811387836663207368106963856505447969437880223686281930539091949478032178555346308636441606577773578781195506666196233449066932699900199287116040669655506360035031274239662997007489470728278064850545950393712582351543778852364590946547532272469921760510891049827685850054339920195222173929782239663794355650387971125600426076947528405043271862540330804426716065862545598130709420099424258635283333476111542695420684805889847299851296079313867658522985513818852810369303054845327762316725549706281213728879831787626836517220869632210290729494098824595664638950047494492913909990049315470155000174353119457495580443884111851878448827336919367978066649150818509105683668417469588063850291845352656649144778995347074084643428501527917001382449413611030680901182882655068735129194040070138651102634461384772716384570775175002136492882897799100018866972496502727077967418315815574779337009386559891861862857459831038334041697564135473890040879236593686062577827003075131071599302940270151893444246243076729054012512833136232883252336402068034076884668547864402630791948728282299780580213573743471921651912004982033705888574400905337404798555372409420507071655697870684354674858242750138067874338080014643993732514330430430575913629940408091226454362024134935400902732568338845742407245883646193753940184993262420503541124850626845691755770534454853845373669048963174940604992525791668974694213417572093540439313460943341798931757409143605762388955063161416529769354725626418514341672766572135698620362650516650483837309549446628052028219806179681865147279618165857944933575732138601761203715125739597848959390576255476766698913255914432534663316112299208600338989610553190538989056406504814127043324185723402182096682351620228490515381627890092741987520598019148056749152157308873468667088203030063907359926840788267898925583394540182651627586935609662769181571155419841272385506782403785971352544457113128597813080960542105044755800636133949616073737409073549552849312082516614185881783562677111124042936434438697259666049822770297518213871825016209169790616061192656222550021684083490660641940509256702410756347872533863623607051016647624106701216070650243196095286542175180039444899508592736855956067231027242791183814440386032032901495875084010864243832916311920346658439578843476773060411491432867529676014550877442428881674291631659332911913461494407909800154438405331086077824964417574750683375647622146797469063673282713298488511256542044313837647169360607997819397656391605607423159973125459347895597373292328420629749024201042014914005621646395095391307502176131577158887244817601575139362426649481799230614702950821497670424323051079955763561976490440660972506744958518954125378788629082316070497579314450704045006462573839645127885882053026323407074633021790339142017434578116964639110358204624252816072627853648067487610555244393032586694372337304942626436109820374258024160618050653406260704141062400149635971108288355576227031820382971048872529524097450242848682549336991347268978670988916037944540608537912941208799050631420695684713263758050162046623189460819235846514699934170498496034231001276378292947179676125901215140412202346357119450242453019061316200698141246393034464681019621287028121035379596185822410024562737993786088813043018894266485542057106257083607512895140800905682816717571181323781183533875613799759077612803364103908111433984733680038518831485616848161968398116381492655421371678722045407616577345123409509517168691780598321003358957064773452259971027902659489850593152405362000062739599768940620740959425346567435043318109179437845292327562389947321855763565032006041548659550441605870239976564383261025918217866155885259377305445930088220950874716964996245429243575184691992595409816877082451394030970702752136892875247196544400064703345638764067516514293944473102304967364614296254307926368792827159395449886057134569444019651483952351079900772524459744603058463406994933518628632503626153685206351392459561488721095170314730747594267972131104046847836223378702682939499815869956997493675357410873436606680964499111515391911708930763865204624599068285430428330325571905438636647472964164512812280823287220199619314968769729726447519485379694949916938513498938591882413966787370273124873217840454148342454185376426817106130807210970190798165093959573597525804601540125173492864148432614583751179397882266689406020818073796454113097967383515619561606818967360250362039362478018307108613039296356984496067836520396394557457088690340653185114954672634107059178880027703979664569002779520620532919268726271755495171461814792609798281813446314601539068948998162760326125260290257163248843206217580318094774795309907700079680795091658608905696692601071718086396069290963316420983502689050294283005087118492934803121640036246591178028382814547187642171846401006444747590284357601593228689969545734067532147469091588886111162312342393896840023583441746317345100792698763390216376755821726548759989708652056607966631352424681532051940002631841233328189686992088079646801384228520575699456466630067585877154235890326563457063230904934177049287286926826872310645605635781394647127108404412314419834865424622946529987009496592930176332404381345808357672053047083042115267139551368285167057191114078417804481009825286760866266161629840375614599208479320951108836613470476389527412550120939830900668386278238765902189963631046621879432356491845088277942297490170802902981308156500439812451116749736410296337424062250990292620287313466302369802381467564256192690126305998373189021956657793202311852704455652355993122097926385286219507150366859364198993412940524851553020102366346195924242307408684398237354860216712193074896105599858873248429535967300913693158090796989817798377245431663200547595162835469358485423432585692833386465226269413650637440104499723994929665433452340782763434441976607200976572137636580930439175033882794647259696699457813313717502859834412581059881551064200703284648055357165846875938469640373591838346423884405108055937191323437252060098404342971708413943480668482509551020758027448034470879609916427959178002518196986430861314724887717525320337530189746690340395751662956565997037969950552959898785655876015358466821865701227206894217953024001039386995851514014345817426848183083808247947401910464278086077014579597822656625364734545511941927447313113893386787522043902263048488760241469832174349994602402574460666906612577298171675056749105395876901214721942651172824863816413541432785859403991005888299343282983202700588627386063979714713206365610406476171653411168057904536676408868125540957943152120474730706132080998803214878363574187799149034577309908099334311302093373381563697615953930083164701202768470567211940517652450986494712050676017641291151882922040904235548650673039257884794274625834472602419446153500106706687466870932241820231280905950969840046676266457864292240186514502376963777786907797720303015176087387794042623264091971881693411328140083878346536468191962573362636479080649209432752709891762024595446267854006249705600639641896067745233926704326796905629526053042656633351501498188494700878230437554883954870504866796861723142281799028928626068139375337194077887027840689667906200560289590908084741969210718113153331753579065677712823056197277867008194489761090986087753196774442785490928271830859775693247847818227679557791242626296872397325303744923460958423291332054072921908267379552368820158428729446891209391422115342667307775324047650494940393794741157687123408541925156635913817152667408135850565126853502266465182518949655090479197571134463838137702269211055863751599973789340811182048860113441312209550075977906955180991906926562861202143992160133930013597575988336210520924689144826746889830030316938343721518321031928116969276032359117250234905656617948348642523965018732053259239163015684162488575163274790288959735070116338287020154953517034453109427045672567295975534557892476056469505120103221033950281393311418037232151032354387536410809929848984076045891456431500285874420224149627892417871089933453851089860298797272814203781580861905297974491575097587365147677957424972268364329685041630647186004733494435292589148263375590267019939011923498829952830348420800846810180023958864169152854150482647260840533026442696567697692140000534566458411507683391484835408540577491404033720806874620535991763565123193315426368478175573502791830447115976246364595385533556262526863279179259587596191838984775393492899139765263230489207909120510286541935836964053307618322437701446805615522211471899007156580368230704833921737200299740061185140559295309850605522977517770327356011902318845418406795421037965944103507750032721705250921289124439697977063763636633300183542346055339985583858005729479271179257379945622091612955321812188373729411831430308863011310404412365228358483484062913295930383854966230415595493764376502257747695585374273711156822344492699043222240236748442560292628845498489682929324258118143029295829775036700921128954603699767416461306273642916313526043991871669885772154521675428573234024773257878108537716239379927215679891683857972089923167167405335360398879985197238584276338119814993355677738382540788687993608232204251722151783116844006054763169981676725433726641793845124091556120164152307445733432599131540204692059646292109290198539641335483970331795653777515867296194912459184928955729271384230128321669521087662674829791948548042668219209900338054183937310525680828027592321833474929654913998201217897862208230248385299130641194369170055121329190196014674620884419475351752229628061125130196755040941624651301046610739761723114667948355484070988551040684176654706570838261492733311682013927237070672298260535119386974908104535180062650551931566784187913914202539804057283073628288485162948304943732383324157433273124522684716365886388682036190216876641791761063877738528979029013475852020919668237379800334187530898401766239803795207150351646955737843322136771713835514597455026208711091436446322789623270294535980224985777589565418667442809633091577784701133884910743274554162755592872399042795830051556227040164198177897300518156951161850860150185393676954246153522444064485152738201345568842886500482915530377269871328378177046024739598010246502056999814378793396552389168822721725911320141491143040561446340690452422914718402272538981804687690450007653471562070017838170039529198825998908427625209082164277982573625187551965815898172616887522156870437011241578109885625426317131068741402468828507288674375361793310811022902297807628616779605632313471525833775300504847869751559497301344868436464609704485303452386556313359262839781520794862561595750828219452619159456880008305390473524398350931375829445864519398699450048008614730757832389235143871347088891713776024641678964698630053557530209049512363429311150924619281617265965662344420258114984256017570912903501419626922073609289825970210093522748539241808293625158189210920661192568484035594830751924254099903223611362358575187611741664451335693165321178711837448399651570490187665694944127937580228494844989858640059067489849313065341301020504552357608509153947540247127093876341407374571477545120607637127128821100056731905509731160953530423696459631628671211517117550303389075828681931360779291142521382896936689781586219922218676457167708075330317969472334443406884823731435815584560430190262270910502677483966473725565899535706319577627754182385740451497117435295825620576556241769987671263614458018437917595141488188734479055939654718473382347560667851250947023307154131440398625603601072185266821841959147673941974091294915676141142496404879693285173514386734115841305215722327594092383717265236252119535231829213760561553057010513871648348299597076064447202808441341393504308006791773530313770722051930399448106010291637782313888411701335518955691920498461948998376401141234460498133887186233289696738438301284670452933801205154833157133411758162585538616635947222848777762880891613116389928632592450670884629149231456632938256289070527086321599601787247150833108512412150653856355878858487615386741129934394631756743267029762073073945736859850669968362509330029766823682996484206639852524766099637155894645167247897259533344230010364674869780279490422717016651982990838375854714908001794161409071836419355092654530191426840649877638711116439810151833194274654018510044276314821283613219415397503011939348093861201282925334010509885129628951512316908210817002809461449395773978604993674199097572130828804666941485016747869300076323781084044905893930077122870444095294902993954218062580660044654173407746360513164702334933507874202058686033870361110411902182178948123132279345158008026398224668499295617262275445572749866056539645245987556469383769583407258616355889638788832879408112358878148613545187344867761428761783690280328829077095382406444231512326705812021674505115636285268380016416815440967724254793815551532807232825558036447258095615208147275252272803682739449296102299687068174567896032695103939881252100228408486016939710016333098787804159534294347241709622758385101894600066470467974942913497958370606780916476361826878732877838447292030405367467327325180592386859390417467869332046408773166669256244858426728198897855970171352410644114501770568895215539616460249274707514891592904715327527032737951296064969376434325312110238634055463932291082106320360921253853424435094680318023619010026711890362260578643979574544154779603521920164176621586212004871646190707177537000344685249770676007472468491002722639477631538304046636823150247000978726772685218258003833460317279147918897389709437260567515402851408626369824623007364370150740905495109369335155982609775522731283106145164223598360173610015782025672320675639769783458671603932052147906937410702414366323558036507585546476816923433439955878463260109244853950040600561376942195577690166541608934922062137269324961385760361112095049573566967479835897685753434875318992325939727502733326383592230524483912707981021864310850984612960320904212716340467122348031724559755276118623449749373724540238957191721601066693195158065210310055021182357295492965975869823292220505397666841502676988482403192008527614892088267036177141422664320404299399760715497499900517438428624723724937860095464324977811393335115594668283814892052565972219430476593290012821925510438473687330342205280707137297905055129927153014106409888582724484102935324245723143570543117282472678291860714408104749704458673936947917735290741220030702275161246526930311356449752546482968825226792729758522857956122163561983720598429841252852857614484677230196505663053901464303062902193313034816094544023787368801219986261682393082368349861318738659398108252450100933007832109856184674532606632559523151611023032173703003078501170471615010925536316953737145550463626456155076349526003966323411886515825629214297547633125781483917079669346798028459340704197794400799391483426359592075993307880620786239764013590744171203324537885658715754959928074487171352299400879960906459123094533331754548509758427993625696754053040187953104519176971967921442288266095658517853393155448001559075311856599080603979800385165201503451559786738481403718903189900705856279375972615748015684391578830664855747856970634159130112473502990482439984079779535619970124667681012426100765052788686727082653548725832624529791802646247229846628671914570624669006778513817104476634299926759226939890790794335482806668112659505717703056875809375765111389456810263151610132352261563790610206134525304759638440746068511254335129553303043707205363538120123796992567520874927518008223231921752288890528212527074419759325007774813337861833856026192114900863668114629794533055877583995299818651293762157470782273319869927698937611124909908831824654400983172161291247161060570025917507054114079680824473597261797514979453889287468023985491115676138173646565325617703416259721276158225378836488191812909995370105759022418588285089214196763776128363547242902429651710804481361369177130004418968930922371086603463799924832536349304095180210591456663064280475814705640625686324614218903888060582812703862951804417863211061119839446121077283416573771020881095029862616438790837722645682341986259083329154513836685728814453000456210844503690815560848784883526749159680636398374089176410826999904811245610230332730784112694588539712593212489874065079177246488674839998420732775227354271665052573515705222134788556612252868757402847175426378628886591451224878169573205357131211632486974146457193110332585367159618081539995328165301054287784237805768933088748581618001192834849470295890744901170383488589219417672503956960724603354852434651556740286968590859401646597908286474090829608276928252484490256095909640745151099052517114439209415981155600043857767809931040964854884063883668766466925766764758571303519818617373905943843560705106276372044620273070494920226536949756157100287177697935398884425617043899649284755932992118875352938329619485413003999637689193962587119366292411872394371952709940442658531059656506650268886899844214541656315676964214778361333337500120288293690314468384645603903889148405224761632868784522526560301116259777508927426949615626024615475603401873144230839924056417817932678153825255456900031722160989847410191543832738858693121986460755873336245546227454175266213258545098981639498610684757967296548647817220683186308329582796603886421234014674472591316888054566454408329853751188995748181419649975916381294856852326779378643805319782104018484317871612782189269149650704546362055131562472489829996168367819331720046268686501337223020863777664498761915093444763426879998678121920151386654374511568353636049510435853823889514290926972825291712245926608480011342279150538592587412166518752777005869026505856352991323273584939069593268591910309567045516350809912535078545282316497956956107446535309247631236278290580498886140362316514465745622862462173487953834006122087982062158578999169410865194071417114639572510453298993194221884267621384930183900158811346072055731723904486206710655443607974536030430180959916798204456623796771930035255158963565452936472323093160988884251076296167953034542313413742591676801964279959693532397283124952676725396523430949106050261838213887673287272863150409444940487133696306892088051065026981941006228845136298650997154713126229253072982971528739894836847114168417501988819163470401943655037488693625563816048156784921613806227981200721408293089615539087371380079463066376579489429183749197195217267983497209410534303784580336782243980678104954230525523161630606143519793308910035843291125004623362245312833835166722065815715098566362925525317751589657836842816217257733454785521209430852358558560996251349189594902636401458970118390946185643411150343657031464571492380099474862762902968632783632786444603689076176414467516013669427156848997242478016461149878385116167782309669112958910213332415965040375142380527269126559273565626484609543188287616582993882167869015033064867710603987311029778493180488708227525318119437708146648380416042375926615030407109484278155395115350125764799253644674756050602794937058059132830500382894007715839040910051875780207429906517716628400750920038313410425554617915317728026238911455365834744150747396820957773159127670914214758361485717014071991110233350897880987278959908049666052432717166739523090793907467507741404279834676360406609479286003848023161331449434672609475707312934598029189332875881931720765077788609603701058530359257938954800353727007170635158507333299907288996602612242234364898823486551293989577800811047933083994265718641372941767958262384869921486573465912505102419548405453749180140242364394638719597977862461822845585817973376423163292542039725933919482316875645732660141344863743290369159239590282412602672980868341905557249347217738825757634819393836047104419247953924577581694629808551805496903005230568870715608193975455815704084980752858882063516378804410095498863163792260684431190940786690381954725983141425834539853444220393823547966674902553435266346282414544045809666285573930331722804525125523653422048979782114883947066044807758605051950668778484872073105801192301799558995513629269929326401825935438020835961849357503330540640113152088779588967197412946566866976193521611088025948455076156444879605244349213396705698225267097509664673635084078348804026633257919790338471478599097585474502886054586576404716166261008195381966290482793660827022581419915253207022569041923642396530821597670886654188526208179113721968982992045215140562935071030941396636775738470248191995682559359298380885491253196479188155335767083561238168615283858839798546218014396379910450978105475462927942764670225553406874301125781246963334904423534726876832436883191596153974523428917032482738057447701457323405755388180519857586638008663674182129569396298590683702117349945511471334097604787770199419290227377909642008448916837152683087753961199989937248561215011819451589486588398944980075831395714296721801953947450810031524432092092812400675742721055159478606487233760998980349662729831670231525791052194772689861957122603067241385525950704574650356683690670660072142414923264818418629118207299004763489148967412946321898964632472312565682866111587511630167822893247296269213329388480121634703857062105834748924729664774023945292967635671575310099229721527933179264982013353931074861591354708448743165126916571843435645141103919882701189591014974738167962898124857270292906146833902529625420325408365414829852100191934902066753146738404473193444738774445905386870728024806495330311263257422496488930862768477180660126880381161402558421810219039988346012168659948366914652753449505984632320199514922221127921501892561992426004965433274874746819224213448000585175135350230573969780502727255714616148136546677412584100804396063572063138931423339937387933251913714162090288549663333393262172700786470866327266639467534638083082183180367975510269031070823281931729649360663187422440228362105316945480609763235848483645750484257026230228115298169858502779142113062677180850389365655069914079435003897089933856931684750357679727996714075845637457179711803444187687751713000840185742437065758235992652321359510748918759268687414116427121611622095782000406421662390575865423677632372790588117981319141542262504372919691676564166363498905737305400869831949920497874998594015865412122354654156135565188356931096425787886070701429419025861125945690674927833690412646358400772717484198178849572082505571872845204938671717141040599594349598070613245786082660752820677334484265042787750236747959522364069567156622347767909763414433700265445998115866489219711653877102313962644743811203670771153303529768043692906136102229727267744382777255032120145626338529348941267340580818164928397746158558462579847083079864904342501844134471981448642720364391290584206878022181457442211508488757155643299684955568623478480934970551725818086742560739975124116435958767293596159319497018104778311095335858432501385358775682352275144541274585778899614274031568510725741282923598093674497327782161865697736387848559128816007464608759662947085847559523799716529053553849774294086208366832835438865941219852358151783014884922461154733414659426958007682137545960162665406849412830574014492611646398396813479698493972353013612300606364298471653163770780710161012061176403597211043732836676475117868902226839968001017295654026182761249630668311458611045658015444263766657493566181487611788575621419813261211920110720863070901320984517909870411871767035979634969991050091949048725198570384524059563389467365490603935289076381508765675759814112055699396294198794753660990753716744023478826644148826282634601809126836138759708571575374315373196306967231406797830991075949173282936176512225282961352496466013788351224290293995214259954967690357978056685924139590970988126006346072363654077421842018296582145385419650333617021407502197658325704461715489683462751665524702840373274120811499928977098128618967391321274887615815831337464708219245875849714885740576501869966751045872579102979006294106264364653330498251059551427970094346623575446466512004243784326790606954973087719307794124698096895048590687784655138628721120838317132150714827892122485118291847182109970445562565404258156768152648185322537212711571974752659503968558804759513914510198421799975733754508749573328134960637716179452379035641452927854698272881801198612207726909965769702942185830810891551080695721524516142497245946217303716540634810685182347348435501180062112590795162379142984884096488579162119579077044069751994934886535419472255336265629010300760485281710971456217250312449008583282633879638738241463738526023483674704070163617885114045822713381422028132351621660464428245210444002832479591868971652303989353114627659499928343095745871656276782551774805327584139421852460259726882313608290936907453356798698309562581329454431950130461060329342431853804385618994665201776840976056126535264224319817126253609381815833754271477631958012661322395308161402272932663587770794373641419882423325278902805913419501685438815272355018816400327062264366513476876673565488587360282314503297875416087233812496348270692433331718615876702222025549353181090947911668246976890268100923472537255534260882206647035370624636055342729073576064694849715145384076851336099458772291261144289311638003206652700189399543274359310529320247630864604756719357932910666897377647166699592039777867868381285583821605229809768340556376745026152396645949710887356580289579129178372137565193530601066652990715485299274046946642100754331982273854936175045379692458757433182062393589196934795238690199556014362546439384974222239755260237834745546980491014183319822879004188660850196318770876869580205705250167010975176333673336682043921159932497966673950711822114962130567285502011514338224601972457520006136933153418140149956089339878473945966553889093162571144868873971154550582816956538244666878083693982803558481604096670958437837462702421759722757880094094783981638916936696884712000868486641119518410268705151576933769084592284157848336580545037208251301820177292207452029206793104226788011899618137419248317884253221818715815189452457140333919495492393027834233415153523709340293936258585919029922381259006692151018330437691465997136806992329126215459165378527198524966063102228501532571047066921364955835948986237336863815439358779006551285422363823075463111320859169349794496963307367846843228951108029357524072240406973163685532735130021781837700525975340531773868200435359852235282374488552732331764963971242232205970384207374095117323062999316626587535532146468311584936094046602526820168564100390063346292896620704532557440468320933862390181404756444055719444045249251553269181108272975053529321090961981672001287142057468337663331338812330029543597139431543440107791135290807835002482657875785681189369780391484306749067298762270082093345910583282505535622099601199251380422143270605135500512995969701709758417245496419521349602803144129924537832566203237418286293667555604228161372788871483388866725496714705598480420921500988699820110868214113954374120799263974094694829470869746558713596119235622324407559571120405902592646962508412329349518488637162881882629603864043979155701942524770656892708044170887502051892922663425362444270293044751542709416835813218346108241415139902647309847570480369241362070925743143316219521745696810024118618119674600754059147569478783415476035129209249706333950000331870233010865309649110268690971351235007600745196889744418785698996192629652737501156164137737108860574231008646005951320184339333725358808556865830365220234655231838186754192883388618121182314511277593992867137143728714293173747451755045139174742020968223452376516885208707736998347926402798868137052538323990032945578337910893002091692481790875232078880356011372224271302455190421245239499370341161779267029674007641371096183755596570642740898356939887760836680976510428081259687556373454834829311826452499441778602413653276227971463115280188237370585518939164496565872365210754642980856139905583410344024801149283012739507063258906500954961780842680149695661138376936334613763360394555078201755460887551343403640229249943792629629047610244108700734605737881957848631600191532923623714490334928555485987618411673235094524882229698650021339138218637289471726386530606968655337245471916586338003676793020205227520768205098732364624441235375931070253245510451699408447920532654866258062622899197636781492741534214012940649128699383324155720378451563483173148202077345740566819682884175930222379509224273804301747935840435844900724004710009208053030803132539360558329518823907114481837249439571227472628697978754608783510791071720015932552081692913565053895340130589279879054509724518405155148747669506395302904752729608157058435124829228166776100624138879638427284992410825844676178059548215552390373577764276184169769748732207156528653227641523129098800303075052834791347445350025491276292560739558207849606404067181193562459505993583839219966893170699880507237824004837876976129958697285000518154363804213450369256896980572568521226770641521154252044632585675871434362324510597618856725248418840514015507543720485030246974558063653980030978313779325939432010826798521943267456215338492412134643554480072525426492873036718649557737343285530953251776534885900455395106517873661705965530640872734226119498049017316108832182965420467629802854005176859401380785439373812384640304406466888099896519979420307706850839813136301398332383841471411188132410404307121258959623817401953550801546651936301960315435494022000091436926222168215473658324388395242848014631481263286948699013522488162271635479377503211563352520753475714575549613719989827247970444202118681583483022686350399194258239480164115739393299023181623252210009410112243556549230848981741651385598310941100464650687802968280839666860661222532529892404054634847176309550856315718576989066785995526069417772359042924166085120930966923227023916088924156680145026203099834720793385752581197516721274262230109301403842804142078457426137987028842555055467492465387229855765762817525453697932619704287927315371093109516199045377721602752183525128719022270560079345308941952924149979016908422123049102524909812290942751658861798771500935572397968620633500327815144482187413748047738556247682629038202934893435694662559220823853058994835503040393885844571860557484102962598425990210248527619453355055376712891120383615718334006389574594665771518165567118282597439104912091288114340168976698584647311923372385078761944160005103888032716836715922320566644908656175854893629069956947118337507832467018405311583109399455038969731766220397898746345163274146858655261660238681219350280513443439659340612767143729908129541777687108999967675027186188105427439604332298558553064976873800087811524993777622382133656635817213067598630712695668651651074249429810701236665026481933546029886482416098959697297687140514508999082832982155391057414502057615487061339066682338311218114483045298986591449729436237131273745102745488528340516686181285936985348633288844075379909938244448794530185918870813347776388350489614212620492824844974625909518868951292562489843874433612064509001781557585125872954156016075343256757768054180973521756920734394610192489204395804468652318718477564695622742611661406919854297675313245817061188339190552753581300980926844646636920205835388740613771758947632595701330448664517174926067262710897567841597178101485471132975458410036143913721032623700798244994667461557408006861824108379114818380670826661414602380025236423967512726612171316378821638700611883820982775305110010363145241298749177725329634364656507896534948801019094590876801776881970791119224740205020387470491606164179318649564509348108514266050810130380866216622938853046739432370689024236711296368785624290859480997331252382265165471582592546878717532943746420371183210193118136505978995020225129791128467802172329175625495341693595277328862325110084434910382925957052753684612195464720605600673080250467431356647571505379372546833161994762750890544391936733329206373699576263545312459727757719044269308237863490998519364631128569130931760017161432894644614994100896790164287343976789789781414632368851387817441519124436955703679496121018926241263893573986089592441092526768065035948855579330616310108358630635865856334123899309800925856641850670950328699133130332242549097839644584432436636821223890175412873473641667103649671952952374226477305547504634526741238681111006150662729692142139136811895166266568898683197101635926194230613649009645203322943211720307005755191617607832315453217941132425961337711110068727314453433530474036286821109239863357865951789842628397981703907994486649330321251442505956377220216397958015274465763691511302416910838266704519930017084899862449850670684008292166644970304092282883533870321933170014697337776486321778920086604594316827703573938554850480268247108402413862254043350117633864317612927120335853257276017932364775787949163012455521877695980234884295959320475497919280489807936115778553336103628093969360467715456382753800644563777030095110320513951375925649645753916049134992137112188890764409112379801013206760333953452595892004901531554048377310552825394586417782597623899599040378333747621392055089910898052875745131192761886441766543957124511902117297253680259245584578358504770787206414183805704043594118006437820858678516374165654345821955699843470947219537601024228063941753324540631656373025946611165598830569367949326574766416389426050208286574331539408243661716463342692360474214706208102932324290888551386036559538297228012588575031095747361180303939373508436458507403686411314357244579216867072351241471573625511619492019029073680193564244805709161841635095833063568910657743026287023716205262449365107573685462952061351287630178674924496702696834942825826059091442524490419815633714960713343510838382215595371787880654804939950850727593868959122998425078724483198098822420858671185582497652232503271223019430942865509161233161686486623509383954072117305401506778387233592012968368338562264110297763850892844496241695247302099956541289028181803474885176461497714907941848025268901493741468023648335179836953809530091826332304390190736647840409795309862138250127147289656169380846140243830869375736629292929254781591482275021240789020746828889691275745141147261569703429912528081598551810154804110621119698831230988873991365509386025325987397540828056055422257879236065555160778713295418798754558147385804735633124323173739365983619476593858795711410976954111699064570528192370055722168873526127086490882074581500492542348183877381700336269709447574446626957214658351188338943755992456203095989855032849910200766621884432028300947242369097461688809288807174407441467955922006274468409906195279465250969270253518345292708983616685629512092641541299953707832925749191530840473251464256491813077010455241567690476600996358758571407300679075260779387489947867032473836095210034768683546544171352069365738584825269908679339558323698047217839826455991824774807041886220921026817810561075631443273488297125150327888280906571062894273018080038983402353438404516404317221706411425277728196309512597321948465538784715616863359817170297780935701148634499219801008619286424261731682243920321273539831941839022151730683630705175897545128313071202543247421771206857601080630632856580925904811043207093883039147852196602502193085419037717238538903801253510579693256531329208257246667661682697504324768575348861797157600315540210985778647987039596558523474729580121086671855017682725854919734412921103712672983170451217095382584303528244335551710237479199957385096785282898116545618156456470871372701977588427826327993478561716905698970457267050797746374113904115415780338704870751931800851306017084389455504748863757744577684940208251352440325209172419236450801590754985531267582199345021289929573598936093159173163527516072675240457438074473834249098932063675904277602410298470175522908024214262416907650446082069414690698956477186870523174410311142004443063682278534055940657936535950467901480030935798769852685717830094064606920512255034442024527762089398180988426067644435400982228022058565105725516283391353093997706723126141434621797017440250781631193710002568271443774793268871961715774412425190461266968973490960060509156650885502627147684626561656486743097213324002176802729672337319698097399610348847226367492957472926120397106774837050468150668507227973752499234800621319091865721491196048454661388898545032235425948274432911813319203459381151784664826788893916745293987434115436559407363905899461204276157300825905061274693163886686798439615162004858365867457646159600681102217234917363103123095401189947340065830837085065179996228046549020354461986132937376036992463876203986420600951964595771248471242977860857859487453622901861331221008193089210591640991127798348627198529660558654895667733492997234353824908026609820021168199781945813850155668474801580633249473257276244935612063966229342806718574462958557282339691064475661268270459959917309177826970458840272728321019288260093981955769366243038547428483953989313795835881550594199184875480475751993018641807379671782581388852827049371114173445344260260632100118612612856929630089587720958865381253689638291665661325710578690942481191040264907337307176637061478955629294799040366219821885010306175643118440921355504498985096740338241592919223130823479634631785945005875529189191805548896828589947575558066380483262895494099695382449179759428958785517527606418485629399031315276257339622587608527918588212324342243380192759247528309333632200371925391724695095081416722149730634182356050109719316803718482507525864334227880189391494093342083569879425010428891777931934551361960082146177745424562668677858691037363400412054968995449419361214833368824271630911626247364322075857267909682479741967019400482315241023591633256252992966422548547634923510837025421013234119098446156127884019669939993381157457950471706654342654718686877975205123209639037035317003897050943878578159985259622308378890705259788187875416514125821167191455964764219640308252366968574654081666033937136318353801954771745611126388157291891982572569465093696246784521703044515124079008958374072846317271469967010296778038195151779941437422084562296014685260172242570103248081629346338501803345897908903426403200812540585407478062699683679857939244008984449231872382913407043000425999954172793427522131017504469915609638536166551053443937408175023825919216991289802476120075675166079260349094137633189729670899611457859206306138921793838070724698960524658766979137190772880458578418419462467306140900162063843156749171147388696497848171654606168399661770019156273883046501838707964373324388398520826812841140361738294449218203977198151560376866267990052048661909641233237521997278674813653378186448882321764368272766420126300970869972089672227473934448697166117597584065207403131541179509219525107397612123656579513267999047311017176069005052109918564856788500109869099703202096792385943818226976361902930708135077330112672106615923228620319347297467649584902986482266647939869676384772213180814154178284459500667618529612937287835058593656445345500456641475626143250676803876476384650882321976115390726541697255965515539480252882547878228892163973372306958307029937340375208562695153871515622699130264769813310831566774345498773597195122940455807507880754451548204812357447440550310734490362910566603061129675460912755172224231544022034133799860900153564231547249704895592310374789926562557179517240276860437870830164370067751001733166898659554064498923656593244451763552766339757890912921444737544180213124569839527667311277293703079588712165136993011269258304934710799718589681157458682006515599739178991516835435034839684609033730341381193285475730368184414167749855519250640729499203657156321226602115925734061212188320492421819753168612724919466895780749531403584793117811097416650599999613840921052033874489650998643085511859162622194139989406031325633842582584097642621163687905003950215386788642154574321500582444696771908816902268139096930472795184857203632758297127593479402095501972767006228435223724285304915421501491821664633816178311225413751382212314943651458472066508100624499056087207985571393826733203484761377452267789731546073354823142508406247308233620048766785728292067195234660121736637743254263912844183228950436920903298385024873275489497381264500895818031308069742104147970504835716882684832989393498017995428714720904197730925111587586427681270131826074521768176225232101213203613940677576818774953674029562453715062213853983029020135841288715820607754084602665507162538474457024473562460358776758351760788117631262896265962952872650401384066983941814389857248627919498570053658250338301190786625569649860996558694567098212332363586358573595959787563554304849899990812820505779382333327218546636687191783718333163493162890757965205640655399774859201504310599818069273103152121579668622072906633317485999783541578949273121590053083260916714695319012317587959624840115072645891503425248828732802057504935490063717122915299826563719717144359008058748757359645457168502540063874641320658385248854261204097410401482329711085524798562287233091176427124531703451075559563860261823580454657970283446872725563054048052763765194143157901443463558916615469955361425552454913793176628868237440159302032963840224900346063573199912149055560792462372455060141074812434495000114661769903471086675309782971630237284013845280198963359837150975337864406655560370233020195168229226967564544493995989155963694245387900268321571621629005162328638796014431634730713552965599909236566178872370794754369643215035805939208067643493524342655515680964151678270286003721619475063153554065727727187901333537335399228057755591096712502747823572305293793513655136156133465298813272363578605833497814803080717429181326975536061720548806601044870062377588882229741211743437652294768440724413834558291868187209480217795800314619643217008957706676674035113745223904184496090458361982391467359980736524803387439107876703046225047031511220048073302513740695511261439152603135744473175485149480770371460722383599004466035267336795617402565803779896363796376870728351234577315286567335312975350737698338857212495587483392027310150753433157390224292840477740485634267313149359318974788648595500778310140616624922256241596750925303648799231418283407988959455022623306025997435556084334802952510932227560409687884944273223518909526897027954091151912284393228216287115483024049286499613399351337153394029592484372468824865242144734896617721468405611642298495551890989728106257205330414106112680559725503417577341332900495328159323541922180703489475026513948062879595255955598410875945058681940366599372563155124724652947479361136634314891570213982403398868476362324112154167646046540310304554237570470639598829703742506740427225856018301952585797165305208659779059414339156951346812699227602514506645447444468889032841051027729200788373959711506324976991590981067584118368451415042348346196603670356830901019300166314049807056717115385378429564626195131123809181501227002142454826819879728604383911161760550326084839628541305682352359868707877157269105517672936628409479952381673208632496200201767846173676798387469053188987600030086660478127651008937835813204431363683691903952145071535893197467372454160119493984653096161210455960025479387555416847240935461530811931386053528062162967576908126996157069217163748994377852501754441198558408386462660106426547803247602692322884982816662236818678135993270018688276705792799234918358004952787563357149547229169631829314037381164606486979869310925301225889270135669924274408930710479513852391439705030904524989844648027816197285401147743401742467010662599696655774072301927943413599160726170226515031092754743747247540105369295763767777974433678920499426213633874371365071398106677672360509684723878662413845566826960817609099508046298834233315842124510839892993688234662947521571044567788836269117909397317587077742900859893514453854342206166208927034370096624775855033944565527164571160562090153102562645639417575438378953846884229387525165033206923344929841152818758329638102029894041170360059491740456393951369217016556263049871313540206955658867843382348542199767208494260980887180590783955715894889215539309423086664159477314708810606700481884091101509179070624556919573641867957055861293166072244912773010124423292640300533962387243657190779930373991615405046643225556480845703313165220552886068239490804908867142049697982392327591871383389915560018776998404759538557121009885202269884514777197393687535990624700084044441760639529226851086858712882691642815170131771159829314627683816598473286588606816647310903023356763598681530993804799747521850421701478020822877583785032552389801276269742973458214724514075017901232267844078721785314576518591478301521093569652880637237484936830273630443701720490546195236893283227978068479010577660543512380679169382709340790732188813965029438724958798097277243202250206127138823006937565960296232742763410673536930417867402556642712993898154401619165986779336922664805565723576305273085021611863920108845923128177308493722145211022226169107185854908334897085191205139977024251894745272959465515352314993681936788635941341778387012383850946238020243724280893128448882012603417403105182612363150967290433956802238818324408924847259326250023047998364238585832276799975115077903905449553059198530725262046914373470946854455038240254463474949257015355390618212257266336955377640070041356176113634297160511795244034730652683996942714301612853297893110302638167878352599638613351372835904054402292560418590517250425587190555365625187529741263152672816145558153722913361029237711973630616270170193737043735556782805808311944117826599085080261876927690660582937709631668623872006530130901616002658564068045264146576342698538571823618928739678213733938751852440976248621240068361505967307638074880706675116118058358127211902733517960298600483010339069808664323186036190653529666383207839816440032020721881568333138120347005992248512974994403961215155146998229841695522252287094204949794778369925211930595669405820163590293531373598700709587881814021072274346950621364749997112855657889983997933305241173369659893803368305828072527124605370745625682684595948079077778415950159496232921052648852914888472965068829390503766759454436255440958154363540933686394928843040304996383932648534183028358116169009429216325320570489370517729525159719793679021342552307660160645529277416173724502033116742799331949402161834597889758109625721640387900383418286618637088468958777445651361976762556876075775725981281901273530946340649970177097981051303360283463204892831539742491822345974397489289584334245188823938362755813980150251987916621168405449428613896621239703909706239228052655290516889849154879452920640549710024927160524710073454673752238938001746019625337394973812757678784305751238908747442610986724924074919699631663443382619673873494518661205493070474667505902079633229963589791830630724399877228489182008575051247227597947251275390456257655813625216610768549691159146683067822989325545423798608227911155125376117036158680799141170208155911875148215787182782559966492292832841152871680143431456706431965662738416341460959733328746232745354656694975712373424869550230999531272930327750097172431023483790143895421294835482900274871762537735096913910350824212873516634086674412171450367704918797150542868557675833134290870951948064883754229199798755454160218632068898737628997954555915732123554579473414657892878990068400509964803825727824808155579171355691060401131428011375944126916938332767415785292831700667102573919653340021193746276064638489980102079712676307074573776131509683536953429097423477275912212368732696559923175778874991235081359461379783670370686445613349921525914695694858084754447696367559179252841936781733124969056152784244264505187213102008455637621945600632304538242155857776760474222189361785446159723766927919551266738010203841453303634419997559909395299585513294095578666496854996948423392714853337521393696857705302926226010368520691751367432665111708127967266586525141640689591892784647923095125984206970664018541086274216538763916258465386978460433874670555562857167993263615069355717982751489526768638837075314715102199920052929911600191032764215466437380408494993027371606663464635438646797330739012672520968900225774611184086816485460755805085110998515573486850209793231145097061395147477134541904517083079931164246089388520844004011770388659951679507549677812992833437960173748132538237450834796002475999812889587802433801035501007838831906161778682178136039990619179720089001526420523152019375919662163475390255749083346136541779922325346856056019404948407832760520957250894913723385686171032158065071317190800399334067278003975627663453544303561502325621968404825255001529816496069680313348865584654970528400397367526549961024821578388796751730078709392361263077629615389260229271848697402629924786159272172660629135387155130468902188485483890512547641517372357984275439293495725157301721518281322754391700969019487356618065964342326184251474308114605724385530950391849443949581938525154711159673365665860852271884202292583990714159243478090371320095428245823450176124381843654438657547014709876838340778313743098625997195126939837890152867388869507014607458231806356037837698713263393190282365520613782021347391097538309011488851214692356072277643403115425704447897123579742008770921507995423604111565545392111130953705731382966879064737389993242732025608834529157273755808610558755854473230666511785443011687340277740793715587298749737945725425977600699612450016558484484332521694338885705779691130628199391655032054075512635015601945711914704886700490382918985033468763861924566038361151814436423268125161242367155805341107093872369202105523521130482699040950442557117540031598107538114585865236600541885048733112544192796507062028893424650539146168532962799349002942738940415669539295006010854839986254412418411586696852974677834663709485622106125225886594468629705888780233333776285668245984978772084055093462205820993050116948283930489103175408623140875679915875666515448152297779386447474945590714446095157142724713020967060476265900870141717452658943737930478285943607246730749813636265112414256886012427607718676572122269707250969542153817541250472098866121208860694085320376924217434698418946507657896087426884929254004790232590064391156531352366671176952270916067251639893480673782199968908352899573897169804742916595952944390991050696190370944108870260747103819456224199268154165057245440982224220678400331808884358172368466926784833552649856569854019973463143415008824929184636729740212277663089062500398094986668088752377648445826688173315217274062018121953848028390220195364451163887722778045687109610457106015716332668645692983418840937379092958956850070034907244375387306032672421780260600627848520301890114050190158262639837766140129579173559820404390394733424826014500603070672455617343215072848297179453197129237931556864846693598156161097621077775498087398920327199372795360328481205597382150716946139101136945375439737176657763733365643835224375587396839835139010847558371789532994462825752625037495069827359618527448378061481615812492695428949582038575871215415696980387780880816206855372406402008742605654055806473242267087274679280587097323925617684041823228211866223292083484981313195867720543642918519203088439817844628562805192935766687514445685909844254476366911549693779816185443092371983171094395853078229418369264646985114923909570713633156377029197849619398020724352142683149064126131902721416356733320100988898102524163622212533419055153844231918809299473014105895242968396448617800533219693455502443326631659507311159840694185447899946916725083937961314063130006013171962022986645289520321479613920857990379925209558055990317597076706351286526249701236996994712330451162298637214305329414659923457104898493041207086910614755275309444476375802346001998976880398502815036697333093736301900359991130692195806211750921624519779416687094487589637677744728278842871829104328023690598612319296908175379673870716644456056126498665088492660835589081403077899055226339104294904245653599996328261570383600325970003314362185473477533017318331714427650363526152117254022621238500470348378878284022689838129472914337199430069753363222710208480995490515970140149376955794337494381482639750116769902531977145395010411850339468333563390393194750977836588529206472251516145744530941308578351203102964431545957628137810982475701076326786746648407648050597422182479830516947302772990677721539055068062648465553453852524909735263381584113530890491561541385679369650437288858835026751551297239595433644107321058970533270436461023412939970191832460037133134769920198223257093817563970846372337807964073681634788996532336616817346542893759256344520621157831618662454857875425666402244604095216317160928749002452254834947018099799686215379366384909308081820982905216573144821189237303289686163385505825674839897918216274629913834708622117405187248733925718179675425124077731565056556527367171981652834794510881274679345468067736597572630503536818849025032577599369999603696288150382428149740874877903884864432678581603737041033300310212808753765883094974449342417924707741139412277020629470255145697850201344163319078424527966927907030427769263668394732438261040318699003276386065843929047313447398866250447071936854986817169780427381044303800767266929487228380892233793196146033170843791532915403290784292244420512805685834443898129770431292943661669466912838362462034732993126123745497266406613515717533278380798159395778639058327425198961779891302502955736474774544688576497434964701622031189718940439204067966140677735261605760077734823364029404890032072493527594889062012435236737555435108282567758445809952534173880480080577483519178464206771985637320111906003280386289566001595148884897095645218143149777867328759773054199734371536028544740482580389118446400190149475221008454443874562177753615355029116635420527533351121905991043274821048550341834927976950993702939427883253840786598597250258056480795192525591687775465583281047799304812016153307284655596745471188145833531514928152274401430477340879651939091535351656434412403103560801102619871840276865747425107067606685587034312454879485772157119357708784627375903310730009883828633861599698355359960096437820739506190912820104634725497925307418812717293744165165867306860672480175130955568253136136187379669825942976573666545020884302564897892945290620651190605020397588068875279362419183743654171199480437907684651309503006599040190675792810773736888653920125525750158005795489567793942962233977405043135946625350894145240354075058880950870553473273823799797026779369257034812327725162298196901338078692610640038140503550742272308494459416623895148085888761051930583036916440259441578406071235260553537086754366118874796025101599119575098843356420190591938117502289229923239637137332162192609474148029647522702718151582089064517345678146593746697341552516346792940484788998926100296170348714564146419292175917227305441865324519104335249901062265941303494437997162631976433770963725532913199513528392553901490877822181127295174953505582979562282691266587426979005083884479449671850048081273513751443440826604705530259760941367313160653865657538694526419675032931362078130246634975691959640871420761202508747961354898872789566176486662373745052910949214927845989072698073648379262036464477485734238159895110723217584782006841000636947803179207904087303351783428870967283815457899215561617446162845296146225345492586658353240140195549684779006434319881607456280612800630752181204802522942489666304670435339552167122826202645723143640235812140862414302963309539202389651361931631893969668645392054904870143481812497648749277949970088674656547094944368460105109562624169688808689889815235130151946657230430539083617437644347454445362981763094222726212118867839541252270132775472222706576511072176762224882912102956412043581332507142817255668785474008685825410411658862330898581332782975598951265525824755151040576620738369064235518536829857278658901736553438202662398735713543222370147277742764842474749369821825068867308454900330336851274779273351770362088907140663742471930690381774829244971614943364035526525836749425601503404335927031547249306838714830717742322957279121945042232329135706416269736516527261810180850350017386194747254876365902237999890836411691789805714352325453137157886543301274494236154717541966330580460093246198479241018843417798059282021254406567998105065737347153880842691470606037300744854327108865672286550253375454129737014659508512290744531432550663914305099117833636200117177168180934322707833185119986172446921222403907217697889923823284939771254850735340740398504581336669671362958596986901660019457829700177149199864780731121424676157661575700666647151605795884396640598732071001315034451563396925593936666481173829883646167284291830273024167946217299255496321703029352332237376532850872160238962412862753385347450047941196807118963769546267126027593497663631805166848214932194960507644397774579533503331175567830834962287483405003414799534614158249774189735481757425510267638935899012186100090851138848806058397837574822713169421603010886063247434108914667479499417699823263065034555707955604780447359964010976932940983590063250263030589657771897056897536144843282291251764705184118087071570499499182295916698153354804580170703281039091102677004189074148774168551059612465253762493084668315523575829168903100295738505831732841819834065540956972593972822715607875462708451887175359785124571433427792670229434117473631588860460186860407053911391685163087478649516826690118147955862543612207361262702169767308102437976087934374375224752167751715370624523292680064602283274487372806630509874980522934346065797779191061833658017083618190509445798629747348488014660265548853805158412049341034404386405643370591814440421592045239409763727479284673266427843782284847243967186082221019423225098072933426713254052209593883479419057475355106165480683525877788045807734632969832972784408714599936015058261520514587272756643511629986110043276977092282043747927439141276250332148571061047308587337095050569554429547339595117208808234235073700984274871415361296784393326360773791066732070344471021332225134472996772741341928812498813585111783377468224570649912273516571795978011527303156846604557574619770322370827964111002030656515724444767975451075260192712754326892835316846790481766158146858784111654661107318889965277241925686585751134624950557173707529186513721909662331251643647554977443566827800493129991345513322970630620519213833080566947026220200755444807397312848085882020606982446709703342394970917366920942085782680756079634951100567207188888870968338137930763806545797667608482079452138328884258924833138004710358096789001893062108270247510053273414298665783154177511555476037008614000316578119517566761933685360481594964045882741725175158706981965314078642555865953003537301461688074787202774087520609413202998967597535673264473188843841162091411098334201585080758453436375739581309991695298236238964263012012372585096889094067076118618978977428018112973629953456560729836811853362176341588771302082777396424735983753589688243026597793363378980573636338516046282465599645959422567495869283298871986887875446574929191696952066706122153151340754607164299166514205135514016309282297037762672429425038062686943512687862787696266881603140246268389992991831193116858851324754214698661088178103498769834807048524777877779317085284724131739149103195177856920313219418559621223240660144823628750276696719536707492495166351098185066400494104389693370924674905587461210424238308227944067444989252351554597184466471452670404880629951090216085360932001994651890521869706441184588658480277728188100204046293962714479131817735647553814307033791492364933477773059871998630817794989062808499480543911286790917058336391196183590205026953301097033341769614636440271474508538967376245469778496365821682663024246265865377317462090500558572175919429062556720249899484226238093303965763008561455392316345559651131040906980336782092189944632030707922855555347942228841170593701120127273127358371937249919463728485403133213205204666241408092872453753439565456270930292524397856903148158875835358653555204919065725863549750509403004180977803243159596892384764528823026123896791446343724923242961936770440810339398015144076106124894770019173616775712972039357726469809182765879591344333689827957962173343073095847836459173755778229337349089269566582514915361496753275528682390924193186231691044004876512682628131567967255094655874468331623546221843874402540954642933758156047654185014836548790832558062226084586515484637966871488243631234914729694516601392273455701998822138247529428404288645035550865297153814887044391808648246284110434925488239713825767830552549872141623764571126251050598868687640101140334985607974045237524354201879097231933818590087158357013034721063624043283184589394245852830687914087228255793210123048275253056254635299216241298250014703129580126915942443938929987444629469734864581309288218597705241814891561580864331902665119024118457642805724726532349274144397211036145129374842386345500008988128535361483632087647138372713163099171337125175291503413173336490137235886012913727876124968359930760974277905027197017672215056867046320496801677087336599767359606341837712040169601495318658494408507447950381741415918781131314947835323883739871959613729108279831598405970174675283591064076576951287853834975922280906671587596267399270681478953986430676506360748635941415909404077942620581415974212411107916560861527420588221355613511167529786434042777877303383026901334928850234706629431141132012177726479091798298324030092021958779668281817654914878419725946902790107266179208301416441279214040984690063397654699120673477940586162915792275960772624850779045828654672781457341202495490724584756773618912840743966625100639052848817297830104167964761088875882974937929991862087906847027816989424703896767943453374080161155208514827283982454047310604725751207201933864918301428485592095178128761479736224974333490015891530895708378962590405307094756338925694591376628755914344533430812991041770102128711486366538386529010235248209834110476498715532421740233667968630779936382019640347338543148548294824044342970158846368149040167331513579175175636788905974854594782780271621701389788944008839764641056290022344470010328600636535004816335895500232823545612915549305175439515992731862814182516956614626521188037942679897390147930558973566672354528945052252887745670428964207125593624213699774256650242651245322639497997911805492990598314366896292811490272898447185404988877334264607524189258692181842035451780684403894535921479514901010481346952634438477176767654013141349364634242236819197011102275619506768327092665821452562100935934756946140777412345986679603103153646652785693154719937720884086179780318324681809957038372168537255325897329554738000242038238712038537057571108565716099051343695584831934535932091727548143031109525902727338353711185795846017174395001675652701517934682258594817824710301972083237647888349695751143047446360307345131352080784586429166230855865162004913431002528849107314294994518346937463977328510767282771485374012246872109853990781993445238656266408682311745267142843178653331973176485648084976760995223560437813604985754695771388079520917217407193392986557507388681516943475574713185340598719093119750061472278253039846420129745388218176121535462254922234946110537399173551422860942592416261750308026465362819380197409639406224697945076723711221007793590061090627421293502600548638224121849190390989333598704155132383786448438021882503654095247103653727727106063712771311652595361177632870091715623212352561063416631004299648756118852538838330121475723389489969795362483982707191029355383640305727551690507901775848727073095450356673526114772436349772388842533729053638999872270742688711958272004058067493925657905457165179962455309675951231715475592104440969962129688487359211643758597077402562004604543709775445391489321879297690894560660906348060668851490320341583011202884333512266819684018214120851857705353247693335159804468218844998013929755549956126241604688395293258232929457477442998470316458608229150237439854764326293415589226458526210378840886093746854877577575816075292644507560314561448728863686179784974336265199714489629354233834180301105298167995400866204262485355549758947443950036874231609862204017054518660317418369620634428348404108584963500585328849491349208738127133385477095918489374395117468937512650595409804208082347232173101742887795342427934829624424031530849173876377121309719699794819228397750057076336134432865825222580179342207803709726501978141110115385433177954945982479365523635510960227395096195918743416368666358757452277822862685406646331939176652977795571731319379441128594906859411898174486161375832127317462321337144488312998027450342266764016679890835567365302458604010799181533647568727754498267602279225650601581089133099812458661916386432999726375001517989047557246462075833147928348422221381659171116853808408224867682907752431492543387729000134613457948600240398138131320983988100359138961209440925099829969500926454616067881236586428879286478779825569579361783697753602555530276822280617848019340162171609736247369810845478056708210462951877290438224151119542338785726119462772587678679107518878700672123211492898962130003457859147705574673570297110357921159466918913237533182650708310524458334198156216303759012738673416083183698300843367070676821614640099012674613854653486172345244847996305827642711865323365717962077333868626722176491475841185949955873561372735130841465271082576012636035090550794316934892156283937215544483440853671582218265085239769736486003740178105886929928841405018928893781155773583927422872426843067148500754667473373563354950818961529984480020635051054409426723646764611155570238088426117315639895350657339515195018873363845422266158058489799540455083561218504231049350864322006368565793625460044689826675993287977800312357171611213587274603861118769980710535187139954159949828692076693293019121632273649664603317472530688702008408925041080038031883081442304161518662915962807193791180572140531650430977534426798748530933542266085183263764347421570087621826973999893682487538597822953545831663965360818820749937627158749472012302383692035618900134042613728432313334928983113796356471828830905204266614961508772639600710303128258854449628590430540703386343528558942256063947131030111312453545505615360191870863332106545961473790161775872079386549975598064672699318968256804604514801856514404854432614990329424810400823397397199225663460227104276146596703333379567777327438849066828087487067653915617629928936529921863748844776912117194930797752844134741658629728919155748975104127201770988475022281105775747008460838047547836916912917704823996940561490645773472749180098041273735291315993644537716534472216860515170575704891736933971631863591578611343971368449867777190525209914149150698483361901419942637451925117665245241494682332141339116392905861506067714014111968016111972237305067963175049320540473205368107468156296465614749457218302080135464733792296284070905482420226802278037636472508437983165468815518836204688797304194155615747608310231290533315357789350372803238283033431615229875214322428662398114103165573701952649146325490639826396288460363130771035136801896820116310986470944705439754006640731621521824868309954956379668306787395783735244608155756035376555588118414228247015207690465718092561276720058558671619455268800721231504311840267455329627229121881876215186669814054131290652779460130763688765599776244574721744713201937097146726476295376152121123312639707633519684847331762262020984576337608150093921133346425161023554463998731816722676948318889510287460158955374764303292008752757326806855798198222798073350084513235113314055178260540023128247230217025237414022582589383672711767579537209412997279840521252015639448667962044783784276834780139441887741784504585363474924371946717796398233247995983914718641165411417133218925692383401539966712254214111473060313324171811766330660882863662613227368894595525386912300405356602515338266023088771848225719729613320627371891930156604726536214218052885848321131058895612531228215114725300031615783442713484163874626103660650819493609040437709130839849550016114047271732608109410087501048360918317405854270449891331484156788420810575525283514687547073264374055880777948718860007387182814302261001879356677730486280400623174352671982688941677350756301298508367164430771810126915573552695642392472939313423921651669226662578725689252268831228120418213155374365288923359178888035133760710486568902000405482491990675342076830487550376280411848871031934330082456118836081743675934826754022915507352141300510921614771231029724948312511955485432365683336489080363247711608195262696351711771436030054206212422482611096591586441781400452114597014879961214372352090698886315660146035076057625844312031275898487834563687715654596423040487501899295122341918269312332256152770916135275557207969187271571807378652131991686606546951976646999636436791761112145075875255779776858791627437942780155719245011138645589243260802795475703143562942419509121263526913856027728454829894060565724154331374959984935416565617198880399020754088943775385251355232509950952309231119760654334675212456130228550797288074012472450333399053326222900055436941798247378943239863390041085568957050639939795956201203238629974314372634685497237644343497961573229215143292287275828926525024961243299614158326506508985940385334434529227824032529761112516066922580999237395525344853457440700961763343058479479308110465028836193007025029099229201021915513115848329504040197547143515186085881637138918868064942215306963239713954930622560059469179592250164624572374224085713195494571205487683240020423638385551844289531980425541635160619935224370039838751226063768249936595380418744957203117518715454102329457019972096940725591055929923450639508810774755763323935712291994113859259445199970551557410746641540000337946731068352129210795192660633970085061248898393833862185324347156993788151414899553236427537934047776442435869886845883531760183077003718385524121318594185155628089365710768038671774609823900013526657456382343695520499431468681940699595726178711618999567055767447202131930789378784190824407836538834761154310542543175472849956730832730298548106668253566254223152513672888590667233220710391551447918338611691896317511070421163612238426256993380576681346835328072009057261968319831803681907313920397290342305191248173813516762692560307170285196780736999325031183069157537550836402987985519329007120878877903890364175208675715868499197076937081406666782088314142904709693522686234769427453034124836062985609399245842813220435260814761883201303190221737550581268017608074706159276960888569253641758293102220916569423320751212633747985858496618670430308729043991296660233071164492381548054776850570389781988491571792970933521377874611131725447835083081189306107241004736518127441712884259221721413467620914396713893972250810347552840913406795563222041830785005628512938094386323762273651328971601798263578752656264260871347813664407007441144497444065208115190319829598340978225318198170419411789516429834880098527297628948748569679840728752751094417017181367263045363598860120438280605764871786071919880994628663916578357763282232073556131545784267039037959061617364962956217976985331406876389318772550060413183837857576810370082082494884684449174027972775664343454648218088769120193183198592271771257008409110279047907685714962972557473816425813231476926415913072576990611420378555393129206018174974023687349591990190167642736757917063708362782974582840700649731362520761375265796082893189193633891043465712150721519906312869990190231917580417465611800684843253248324964604245032036348591257051275132883969114090815151932932944795222465826021608257268679168969244958273986137084863411667725976189005553742404154610222085525771271871454305529274869017275337147118124498886698912016103489226081929374508059299797361514078747269881444544862601736820225130364992381747394777395268643308918040059258206010446808504668949512099492208533236575376815444519196761059115314450808423426563523163368492511153301293048424028871558193023993736252281051310223728775653692751961278269087805019509770483211041538620188392433485007863625753776166462870964637330217971360250319533068409434653586558003210355928791993154532458293826647228819822260690558193370548970481214573137130093182340282775054291032911721929198856664382380806771241317621557710959420272169328265384235157091066123538340469296789797321600808189595476091430932471302446406192183974446436902607886036488579295784514690462881075269679324446236359753530122618173127083182469904532031663206948156296034181735353374678975608443241894382272421256092512935529879099007857579804719302677022370672022249429303485879328297336354586346496685452667899606922369389595468374843280899428104377555333849735693855516517005912782481303657267515671846477431380261194140601965445800082402060175797555915971531958690103511818291112620759943421003967467430924121161792747190253204469900472830266126244987989063339504054283467716243812446906715029767999510247402022863670969439099989612454057834637220152005126805175412757804583955987221377170039791262195720970622729036519111817825592838874919247161299232275071669756472364965798487293154678967371858713462290957735478037868632564048665979286552934656603921379715549311732223966405376517229346806133410643029375559353667216343103599288610149171855622065789905845925843964405096454776679327952946245560147049365205779183124104830032913729414707798389942775489676568530439301419284935107853723379481480165826049610973437698274812976899590705775005047120753276252952240729444286068112037129386833112466851234993749026972854631796478587902297731278055193434992459081410967052793705678073923363270487700804243243107745051722920312093892539911345921695025449063092723098391220209869089627367883072794389344076069578108443441629456435987696149117759935658960408007476375809097918075138197781543895484648575618672765316673596079028854339779311702562647779462327998141527589523721435044750166871649879733940896506979324510256509160031646066055298965715601214701996622919016219429521748471868024539936316221625333572510515987896952165950110203001223620500946043253238625224788931756168943580923687868900933774957024316043892923749942083260964456907243790441778021791107702348222299366048511398113645212533170716310292894050157365277537946961292167536219356578584592726376940539165458142708259536590037606020163221773479223065496675395710295323899402439087366041073637481078842644814514732711648932172678990181009760487574117148995215619316848859138541732055188720009927678022258876967068710175822902763406933989205903006808088930091516005407605523910885750254842607946727993265388160409980018211323436216741907524368335014409995302994495216654369712005911150044968058339414729967982781132047151906194648418496583112970855690317465355168709913525579332633146069482068776218931184525161879028027379284763574241753617961069600703044268919293438244612725150178389305185587317457703439321010174324168431236184983734706741195740866803908474334152098731188936375969441141185166479143885351033521598819643822036663140423456273059124711276156606704663023512889912084485100611160188563290906640385992023955967545983640219618125699245351349256352781405874731737073350489520135047172500864657484526053662006001169466739598375038497676057957515152157048274168775055917003825723190061960851472201693876064201691835195462765469477451658552043270077055771423378991822291196468793757389506491135705539708378259680099538133822538157837120276700296026086825447164608546402932872990800685540307419601965017903381973805934189683460931316794750458608754813645123160563409363266529463945808537042821031801073586006472886892581299083021886931966950524951595491611511429947835996067968634966585720967619796668833456230705512629701973374552639408926993295754783195944780112942171068773972343793539317785046567068536759315610289294688768640436639466051831620593105190949381407494859393003604647375317204980088839566034972207243492671055733270812389942216545885836748535184872466320339927496171060616978834992808732785184770636925218851168412655296412437875823319774863210321884362887914998747190074284749772593298471485855437432011055380017913306523676130150186893446653280583115999309767779774946131710227493550103842452333031485871367632250711160398738630980776353628663383466420153789433712571889058600818589557271861211746734724600580683206706112941933512878735092504530226975379699424161506367481711597011764729608416136927009356656097259495625065998605037837087576354558946896950589009386232769453542329338167046713428576967331065958867317394418329934294395634021753626480152089865631183053406245744917930954197002726071062327335630917376129559263852291310501466977663500037602498430332344719741277096527733354298482515225248317391486983260229750132034765714597325246803314469509046163092161979288487616760639168174915633020925844444202316084779839232928402077852519954415974383489115651991722159333977362916407071655702152904975285343405473120066812108026545845642936336467727560694286820996111702159803321865589375747948993257028571986748988215371377861643158216788369998747233362741080356334532810985349535870738594914810620327065549922866062408491661318178215061884374441648354720164715843561194570017498787554395675116144205585950717747046899146545889368796536179033247022972835014645937321537267575600244112115064874032517747166200526378463305045128968507197370531015889382433230496360898193607768417363479944280145473702458760106337958204137970186892862573349190395925513223577161735545535069097372035441683852192447619705751262332656423089990956075310436204605908061613498412332618857625302171005119104155385460889358561175798374983183811528805095590612915042737765730251747107464836102898895183452053087067697704821642149166441699499826918992795885944529489185547698213635885002620296787099067737635068805691879764197078422586499388098096503686724086355448520518648564420331150116607262304083658705508869165985762007635601782223618719036366245157012608174264452784242859203120394532636626207285554192109069230996955340867223713454172234648312445933758752111080714057672073602392555290387191522161173974271131172664428933473023112778290428064121570591521828583627672262193845853142694479116303028564672751847228791034131380735547220787215357869776120322074198441689056273790420175642682679437518079483752665904435336501609660638584140994354487607463773348098964072308216263232375694787816587725695913408610073651234647331353742624531197947026825283393812778744872197138570176936727699053797416766741987713182634289214180843145812616891111510151668877853132408638906317317658848087237850245427113399531648401853181791118575835129298787109020380195506779252531904900334640803622458120371356635376831325166698505292005493406310818169642275737520566403316174671045735890563699286456940551405606972808282340833766795085606426811796226803820569094761826693274215428023398602196985288353081495439758006075682775024151376625442646266535902666973732876544932308616114133125215533207639262196205166120438416042236987733954594901645429385946411543682875129475703492689592094459947163285716128603818324755615648834728504111989295700047506343007883657903661598651351835206083884067415588473256587136735221431642712148209360786143855759173059472816037623630241232115118975087147919795824917680138796677356143326209454512261482595102781601942547533051640346139022866288494523117761909908778002456752522963178699686872797691800644573352248379184925774328496211315577065065162212556593961713308688065485252444962797476556243204841777400431165072383613988819400377950363963298739756776134675537865919596140289743750217947075799532704106058537911872588562878497136784392447268806058779915522085459688815262112874757692574834593943997603647730183175282960847566733469999440242912168306972798777226882865846309720624590390083800705854200505305946777412003480989610576703228645914555902765192990781175419727365753635936027956214863468227479586013701467709522248102135784897538243877114564277334280917179312260734350407435309181841631465044338535228767238773991185883661103503099020348597157800302002583968589144141423906253666491092239100896066540974716074424760135099413100667749615535844107228327983220174193297703450520174879886836516524673941611049699495851577432249170795778200932994247740852859845999621302175626639077071580899893468216953436277166768751431081868264504972780223007507115733741599959520739696302248706728322274090581576869903883012024300428471004654710942434131921019142718791007604658137824044703491495943758682766815598487967145311366893911060265370322264350105886212397614565836742547991963484240581516478052532880276971167189002666546523605815199990614875608336544020306968242335128619205419517636234149054195252289142937045948450884703855852371342199981670577307365778588763671475819600970674274300564233302590236266460138851605301734344405927267474137064329729017398307217498440182439850807676433311876808825306690858149972232704070068894326145268717285886250152878287456316362766445060579405304561125382023678745516976446990482662357501144244059512245603703082561217644942466257487285128990965082798668499706267393813456026681837307371168179125160171214291010217326599335820177470860186236935793256358414629662530570048285071671905590273736198702713028138122315005574526272358209260464396154088557454688855661452484442869930903550464355349946011700931521587321296794691969456050931087614849738936842273035569017032223892710373762122316458917225375638072563722284645074134525179738332842853467937115602148594501904923918973185793909494492368799152617651016736019075267865937181836493066701399477746419803719609890083987345258675304653599487766123061233719501436073943138219696156479253739867349489932808933909758846616964875830938792641679886265804545060883409074442162717496493970309069783541327517349080309345944067933897370589440898971361023875730735997311636018793379765711662860208476240387017443316996640194347221265432765526208458636457220853614321447026143498442435118052380788884744517381898595009389163857830984505545910118310792897034255160750027208179970211787896756465258623429164813228460457137110041737049318711716766970584027300666179337204308204111974168991318364996750766924857257324935799917970441359412749735920611900296157727297289265279064800248955405692931491723380309036670852407516967282112267322037807471093918811637082774521469040641073779975346831202571082257803584053467390928942372113924311901393376407548265513379544111168112374345431450310361114535010742576696385513696383522174703039273662174140356034654117383575706372632242449597564700566917091168462244739970885933373709224948282741263386319646691886594370245148822899237408961299308954973836741362775471121608505036545105488784206135688200444032642315540495998448170659213924532056611589253480138862436506869397864656024356624129253639141739126116972590400301558171410790412363564122964776317345647731820715355668555737392399317217839697050402533818454292151040979334729742391856204226149003624678565262649125683456580002196926364992274972509609181638268911161054836999975684535853823617125017089818704744011738533056055929730340505345535605172801523486884440118564441818394193493267084332836722101757090226622301787982206382133824658828205973486090420267813602165082285446500046403245792301315924286238033286520123649816680166233413465669231836209274377836479111928805726958506616773267504208899781347177920856073454592331984250610032855718341748944061314955857830952179348989627173353767866424583117853399218359152397057460971520717602607371829698132652412926155823934534070073709686826641235828073947090815192447772977703565690027100779772471675021817047151355684665990828434579727808473652467170414619972193400339334587408920232524061302717459065179445166166869048855632072710794100010024478115901312848335678860484257439211069435431379890043324804119734943066209774024054875201756758667781190753937056809330113273272638774776218578449095650573898651363040940974956008069169643786896718911497422709330002311062523733104707109465197330991641967527773760156272700517947198523531391917546473635076974691737070332385109573870756388545777843824426580462986844480587448070089934512667577522112632523916624280877889250989898226859589276889784096244519989939339856102611979318469943220010395562463698240206813437717474013078099939494947729633185656691483812917120327556196609335638092981428229829921156257184651015607330382028072958603327591038265666675474983475448631122325026704065284336879734495148640735566917500839039687014847510351540999352580816072380532108970726455357797392781271571954373197482936688260652910654588580658648161931885672143851801295206728606080966121933174551119659537601220876669758974425176027453822427218953100560412034924169592124666967201824249887717536501694576594207692923344349753999800031651202901556684868361803247119978833550057535759353107213160863517472545543572481573618886215568638622297969736664474096414458478508780635478780866431102846786276772372910428377931570988565455598270250210603158313004095508420483237215069413237429524740471291063565664106851012760139823043466078145350183219360290894612157039840640700624175705400734497647628097069760508309953067093730710862076665350484005617648969059355784260739335880975121047549716127051609553970192322876844174240982489562964819026173619909373675193286651207333530131052749229664100541072639471138755221836850617113348717604045771901939388392420312631645316081718540820707754558000118273160028809434946316913224525846005784184509461709610308089237756772061017835087132499181637155032756591801742224820353179001260156691653631307398346521880208787311187914797204839934472672212101582343689847353886664815256608671931648042489296944399490274036632078730711223961239407662293997787011995628586836002383897747453357439001727624496273345350148781241875282381265324969627277942282987873145139592785465623672662249293359352958979066052392699174887340651503027660193275487438025651556905648644788881677662668178752758611127719716890640559563357560984983903578448240055321259878261961847472637173235008578102531378098785303445365947679850410957358361340106315930341859002880932111646170891300682970612298048209580805051120605680961503751585100484304507073006664853277810793354623473585236442428909199060041950553435131202420708438009557393542687692836763284101213624558378842660350335223060079611925378949883452764040373889328695427639140339435788931766089354839476996912292185763714333008057607353599540475522585436637461840979422556290834331006871372897937447179277464299250471646932652731956658503962096667261124347945319265436117765663899539613274554725936201850827878280089406049667683810954266472707993264594243431871394368452839967222273006035538517454562921362833925500129646082737849781847520375852707007507645680065222861533309792350943060417315035542210558333009962938333460860010709790280931378461539600360399623036947803004059273372350865305126981900712172458511118283229735847350411890522823985106153048297593563253268586496760671474574423138330216116575453543943461873865794021022638562556859772044963366428359212046515103609994044922919420066023989733942045717152461806579061990437714778776783717111043393998302368687141135455310866301522097026422805742332158075213122583599081555168262119511266445802540660900276897898414712303841907011822829540632899639192799727724219390788064058735082033296030963541619555118316292780366190161665541651614224998267602048524590978967282028778251113389302253245378367957978494022478538904714277548571408557913524750379374882357091549475112055369147150828625341698828267180743139615493973394485601180005778149395958029138904312245483722836496094979260899069742380775738113127214557854709526115506546160363273984174546895225313513906480979748351258171024254625338146347752964644282959015868985201129464998375830360715472078522043592461338901805984310887400721714521952323266689404221676575572967491854629385915745320782301479016226057042391113446138842272483340916475221233771596873707656786125462311023329016178412776650796816355507808771841906902089283322906397857015566909225748475654407619027985274619616012844204977038970483893992421752714541100281785290196799805702453244107965169326742783525762600337972447439527417017659477598022037273043726755407136963645023341378979814106159086805711314246684221976878328383998766550345532399232466201456044262038616125021604383905981910579128238674598881844557879860747564934472576385409967158691117730843539905497288136536982562174382413016139390328841541212897062295225963238984536353207434993229596802717294213672382422190689415552716838970811674360095284463781573067819053318163664192002075325833917509518286787138813257683995321330922401251441287844359270370622897132052356099359440158851414812512774033853712405834193430497681260435924965739113253271117177342653002542728021860141109879455079641958969361592465311094734518066738328626375340194681540976384487425627305009836603375411387222230721807629925151588619369157218265498161939140381126248034388341679963083946094713326494792665189147478205842129426437084013817980601955705245694291263912711295866722054079290026419341760255392179037840619482232475368871224561817096541368737290959773016446544634974620996991372104523222130592448303442715030931841878743184354234510129844305131474851656717498324441214142970340790768396911565357863203892749528351492609513178137543763364072791093094249187618662579520457902747921429661019704303714254530917612400468578327498136511657123448065773632948849171208522459478969742549071733226458074016446116448223054343577113121865243905792007317598063393403662816393634617781898890812296047017767487164363190660230170023483606998795411024852369237704940501685059647237949406095073602422713608674144528278546071337233340675473551167289245605180724776196760981851601258809319799052175339809854961785472681318918044915404230948971961112921317259836550937817058483887680777745997095279196130306721100769123262516798484956173698515586191745467279617542388618649409640153214877157134568626356267242242310438539443169565386213469199621444539831706040281432124592069224106283691921598291998709236255708379355635141510231065950782364456964797541636700284217317634733116458447997914454777654312272577710728708472460734878769295362662812861298417480341453636519653649266559861886428525417692076576207509945141333424961817500739485475110320533170508327290622266981422791062772682220954438796703194139286068392220629403842817141100188252859965219814867957534006421461154414093312934200408681228998947614919732404983832061616698588839326706198465895812940718154118984273295560381361660985756468658427371937469563841223020805082568672304105754635573706764972470823692096439503998470747463904201278967982373855596894576832113409277253483559104789180372708250199559658014856161967268913876969999559673366691795209627657624413675427380870634567584007033715733025975892210830419669137443049785663119529408154476220482764693799545563036924739146720932127963692820582139954824510509895996193412415863553180678056074235629185293092875158503311242594263891111473305494516358621076463688854941047021613221707563496698153605070596876363976223346429227735629829167638161343677654798603952604569833191333487916728084342302990617082523172496113619973573667517779239409047853880052981638720934647972725474177728656598638508766516849092708931763455046750897821509502699414893205477786289313412883347591684183459313842898661771014324640513302379778179159718326291335952389011572681909423672343917758730875512060383463362285768484157029317337903201371256667132201624151548329913749122994249951057294478588769323966276523484505457115941817165277752289060511016904772877690859499911064187774305346303121004869202724777303795652166713977374893577098659876547142473476873581730443329330478282705860906085259116371782664986944544061777524084393917185473838724044941132678348059460686955406433194839503595540550178425182925487592707237288353759694610669462922861502181469416956741920541882289690529309569850794523018214748306516640546392949206090849552180299946588131498215727495558705883701620906012451310944667225129249194233594149026512933734538024510896478820520055590109489797744973882988836871082452630608721938721858879904698433430429595431105066778161768153307127023133172179846988337602543563496068459335659498092049488710176323249224090310533618120410837372472956981316307052715118114205693681862341468678116551874623285655216802598922085636267643683366977587850938700076149348274491252049380119465931626398005784256334996015366328872305470095655326586271569097439841894136350819559554388158859939746188401672058078670222802779922510408767914711933254509094909190780661419928364357140753715890278511558085045231102022327718760164227607766234708758290421298948555282128186983754288971149504182974945007407607667583254905101770616842622378303960475478193553954075879659347533452416646605285315861525208182589523133893605026830867957633715042486903578839325253084556161109517433714130475933965394751331749890429172685130516717881783224375089079072536319610412205053884565626117537926723600028898883384162120174220677085636910507565659959198866230895950995908189479532986721914401762737199551626906990234199369979087314549114349022239028364449630647102419778471922373370826104323459928571926698757074898420201792578783596938954511295395330571647869620047319159043260559933564110879182464941598076323919546611865729715159821030414337904829190277735059779463442475861664677719374776838887064947591672230616002846619599277031962726304709873308085464098800436379246248877656281423445527217486003900760163121409980118243823106416334023545751685137501172356448963537064944189155965726468198748225174833877768033214582729555523323506561822009708421580827715830406079789477054970171928063477324759582136400126605767971340065984098066664895534638974168589640720640149551047806841640101282497600008351796090046636029650483132807310120974049621744194747024097725910141852377550553460644075912934563589005347622005147826680767409871847254787749701681152066903561273344574827925393078069649885142849501468435810318693289305896386737696010218864393430811851608112674536668214683604525435827575460623199068085589118109499595220504944069925560010415544084772692785579565765716677873700449996158823719705526100242057500462528750228513865805037900256693763946457477877704267787977461952787449650434588027892488809773306525601730167950243081181749248075453445056845065071714433086756545838277392914382574420411348228031241136827741799736151264863719481252300455531417403610305699040799305737681939166489464495541132974951372513859217631261792896535645362633111636415978659155214883920203631932653976037667464991426149966179302415169521721910438777161777810324029945768463557005737191241730374991548661125668866541272319604810746938015147319721899072309428515683352404467001589766331842184437056226593527871228917617072775108081886044905931680433866304732141519369548145371285161599953224234564050906000333180001277132946579094158897801350652220424721490998354518155577060687930853528541487922895937208182389178691269564825277229651871736036143265682734092237158434115918319367643947165525088533410302767377800624364952608061559594392304172160994703884297497089722700989949552107540758689212360347466184613314875381321600964031930855591035984946460682375080777314051266693689619401245045313606141038144578707945980183312933165776563029067729674133606140503301248378011711441475819326803199519579613506393533509219826704665351744003700530830512730233443400083907547470549560168146876018450576020778253234773190602092815237172346772250744665544813915670113031865320935064003229389691365228328033500419974111301333230570812291771201045303988855178888666364773499908580762910961287545717020129402323544199707512498828751098517095984767528252531296909426245628333827016155488787460094117159036283954963827298388345287428821585989177626427744501456091762735095368232107044767609818843233335924136115881998074524592812778833919375971730855238166995733300533113468204310985376922321556518395156149384472331405961691948672370776861006001211030051821109029797451654419374346985752934228148012279904102410370134459245254313209285693071503709868498949652267011023130029915130819305673672124196414757488216001164021160806640621923322579035838702259433395415354319615382798102799486172933505270763266914739035232349829832652558927723435122958420038726949676978158301762290863388918111836491072827756822257740463652366324148335725482618490893078743293023812313331935006046675121866283067160799041891320096337693201375986959957501760309519001958613009125749915932780044339000904263361216438016104963177561315523768105746326688296019564417593419990760116748059482590714265676799537558011972856984138044928996801012561091830527058023910334304480829325925903325901658858145254357607696500325370274098280604338936492467796684276222842053666298227785521094315843824095086790366305343816739567946266382370930285042533056587256352192841265876843561026747049821384489981978593650679012759469718882922823129308643325101280601080671902852618287077511934661719626124059756897933964711443622455871041419251533586792828717122886744712200010804344099980451163530041677463916762313639033906499533974256338749062408392177390194465954720702823458368552421776753104773847585096050884749390332169863653533404300703942458303263094049744574023645680865176474876529157554028366116612331708563238022632495343924998508515057469297462281977089770597755731445261720715103323009638429158978880531178166408737898184023688610171316310166701070291153761155215043350688599360328216909430270903560676708745506483952618859735594933049090553985720048687963017436846485626142675027497473889284173080493657783871720019646210378199243680120278593542813588974824861922284659310306803632685482103527585848672678509936049681063984554355093732969030689590586728519916980557391335464270467067523827347507888897375873340674831157396644004598618808386887685115708449523803955616943129932076066587741180546575522450901184590257016379067861697400026695973723851795965506594402121616931666701240109523932235944370033030858620937362107187299180919138595432640435498075850423052787933393228050779688132408187706968287659285766765186976868621033934806485265078016310568504057162736216349365360372791255490241600418621397241341037925290044258206804517127597637462318249502819708680128830343654481254464581750765719121903562698602826702901141934421859393715549624488354768393648315213343828873779964942417689053508674987665533263158538276708501754197421557556969487931517913637601517234669087869332405761638679021795270571947614708945960892287192750805480132994268996650152040909172219208670794923319613559579996182721880619313324306142329679089761205072784192833866140822330252054196411367556954243117903532978303631612949612437137903802753088481274281913270777468228224994272081197055629968091743692466675532774363890266497413844028304015150471453748717148228786413198595179074233906089587256990986261585767739594895911828437782678534048255099923899679031849774799498466785456833270610229813972924317478726919095622477765272874502228582588238084846679211514710790958975359781026969236175089467378193507134576312165938711512590165031508258505960639099603245415159844320566912732089429383112657149172575358301178156830262562754228510022005231644236884282038482229832244270141868703484302633868582190940310761013126255307526122328693370438820375905231957613231434402915814793028141670520152473681748801568882981879045132414684354273057487375295409514006098842035647830339936561015629726084885964255277333059239569257185825234381942659052966091093030987524068133863733773814576063267398971746041258482291643143226821406400514851296029875854106677590403948086690643353097615238861145179575682916380646684203268152174703091942345114809973183393773790936368491002259696909157907475780477088670276978564444816064701129927552234296287700602213614176740203770745666444400716673011192999413356746460827307768037264464818447691130962598694705278185043300781530339208247959181756802112329659460111246841521380389784203860513930390228952125456541753439334218982918946300326515867892995554018911175158139615775526893361840623923626574146850914356268436024806693397712541750706246946633653139845303475514042534142725458620019368672360533780649993767662826003307389114897138518543405302072086586297588985149966210583508275379709034591091948175083537904879389945674229677801393211705274438301252579227238973250052414058551614692184440270671713467247905347821268756690333647231887311721731401180520265766792916118744946500592325200791670095475147060209267198249888798753663357896631658357376856022252473101695422380942725254423564187732341880386289487037803048111527905953669611190361216052983108242187265282316565343022586049374490830201618395100802441551897035357364959405454652789435089877339916986135352775649425032879260136640665147301431477598926713646600116083296118649930660733729925133378069395209381781820710181297364732907666156180717019447054538508424748019143863265408781490963189956599723673037669718401027986037054237231326984125693818807143586678011368762048940928878767404411846341647197417526905715048431787233186041762769450278067336317295429166402794892102291347781361913346820032139450289220478375898908306738668302059748431839407199002150097901371607530477272074515322792138085365610481326131983181630771156299680587327335997840752043751012731130402770410942478557952354677852847936306441086303122562613333009652072275213878540394237100364331703743459664411578572723299139199556905153864793062194059767917959005534877086110533536418146767152148652757654557818670284638714953199938966489360651781501785698729293882613670186668054623674514736904977051407222384470992394071083776314321184557756414437121005815547674350987208452832599753796518661110910924841805450652947427293616401663124322542376771837755456821078931469199774968820868417392286579280220343715466436356000840400813463442273701423442661790477461343874922403130145217440824980404264695361936699201616064871939514637855321130305049020092246135725887342950854530791352442326501351130239124726915824922671009693265783069589752516455304225548372435792610799016709865931143600397405969644399592654685059982830737843504048510595147118467315616196273895985141913325800735476447446443585910739046367002747928930083525354752533323434051749953307056949584966462479193931546875010010079308247684285943613401145786238440975411804676932993191259928161917816764102930486220818211289401864633382223904693367748319739650861217548275537294628652851943922783925817330752645283647847955772662825072545530994112290333352455430366288429294153146265040034414900541566400876198197581752371196435013681702449668734843223325741000586506606292766042303880137574177926368265296659085440097220850397563991207283090461170199989335599910297836665968289515723357685083923759710866076148616026499465104634855034373847713323543576669928366879821728267247172449562192006859905861800983739902677411991557431123991996478187205284468476780150477752232554397060464808272462026374218146560320586527658932821181054606883281757257721149881546542637185076618358567178174082198696605465021947286288922997746852863764078857185226283883213116777504984830824995234092174905048826533744236421402388736724053335631868914595386987247788952707695476564682564031997440526126188446744740409593468105827100564832708701449039853310407750627129579708272955505861625327201845069839363946302377705923222319521765400383847350167783455132501762233526339444602286827705971166415474865015167929021892330077589008695823254433049406024057087232281729048472489923723634178560957317385545266636367181906560036644999892303586003401880495417176643742058495592634340264706955280425960383981236775988214404342492837280886080177827209081278514795878797371415875130884764681354328747796675100851652420848624179098608562883813597060059045224143014894894884791221530989436142280997111378987450037191086220825039455842571282884377071878574800623241984075051883739012494680305467610856973807025457630915065611362510032043551556536152695598500774742477098090322242359886740056460039260544912206737286895941676267604086751457045094924512492725299585818532689220950655180613440845969116167649461162717987058126878799221172741075760357653637469567246798604450022533728466685245047565576521972533886002726105059873837563937920809518812350992751300522043276452752435112262506816616376554657602004651518489905644090435244664259275376946291858175194757186945639001174863938996702006256657734226924877203858400751126684700702562845392191799877705942193329406864737522051404919146510165940900512606013252360832392248668767283331526604243890829357032935698500029803611006028209071282205863972821052662051219035519007432926850417822781044109604069298700209355243118199704241751194768039549533047448315352068108564447338203482078889158212698703993849446408647392491881963705425017744119091147305369217821713509000074206592223871751486176715943272399979205156789619100047463492096114468712608584373985430951838579556729703491046913110584562657896560850253899569763795823520655273057990372498495229585965246932751493237780605890578583300228213622404670143813903688300587767844367083007766039191643230881644262089023312311048298580989317660923963650206287481289801573862851222808609511210848282260355961483487359719090435964718242723712792228504695557351980282507931611511565573765214646150942852099350908844287677925158222030663962500166319615299573123267031485608791402206092413451793600016336873275734192813464433653410397466096879901280150883287853797101489076799339601718434875999202879057020830683459954538743822432181629744763408847310520488603058950532096485643993285678376644300385639874994820484995965616566473077446386530987626594342733400757999548874102336233011964356471120275446783897314670205232888179175460358165457173412681242038016542191066150568854784826706256041787263591298432198090722745477807823923094357946398161065596434276885707970962830925639579271923796042448560863962336584753667082878790426763631315924342634897505338717329317702210428031682079927036602239610502650878525595431042776273952638679432829813104091392108443172144717162480606139725361599620926884409509106391060639956282273966716512524473431253195900201049048391377624457015741470347602797519270521122189156627435045330554664123663874607678285740220822269343204617665420411299368514755698638171664005817492064391221663443465681246356611809583461191833074642049672216935551596726517793186963841844569141769687944709153769969866405090844167660834876938244067228655861985217377402508130025691750044163374192903481140741069718074948457855257103416506206631915404168218624615354462192068244656747468043272718548956176315840400539840456239450114165136687714106064133763617306149743925584325743829505424469172792140117517454745766989682481694684432793873202361648595493319424584996762905576679334601421129583474372369322115306783284383687661946521083696976047555551928446877814512662078048885061440123592009044732639239291506408716333192313221947823173650665003331901919396727262486637883094860015072728749857502995816827282889991285622121770817558101865038770597021415242306637962043543084856551960485596823903453373787800249363309032683782647727875915706891668950596167498849137590296846226882612663319497791136870516627062349489324838531906292654668904617496593983917935253579100366994721642546663851430449718145296243409118628529761802035336190312117696987226436181126535664324617839011942424751968720123759563807581732276122029344503638742305670331919658798978641522338291858577930617640544209479847896934234330078996934554409932694068139849184005963524725459446659454314300637857363985606244182164641734548525129177040132531866321997172474063250395791302350562194513862434505631298482671149213627113654033807582397382233374709428206867761958512773545356576266497921206099059185550846698791613296024293734914107798592707308470170088499443331765688821362948225128681247662429730759425442555850165686730414032441365198368290877211397776650294927577038540270293884327708952199439390636706667014784867102378182555174503483601674262915629502724750296431346636631102518221175948692428219276611988610563807754292638113527173399269391348305866445127288343849904436612046519180010764673894023592967017528941329410844279637069565174755225429586418996390946052373008725810463967844743080708097243406649165381027312376082325080171338350967527711909298705917675680877251226842510264916226401643470465897778847706570229622035699674203065730645238724263168895636996867162713491268816488117989150147274047212406885835352972679407710959040481260595898635653839137182692568398259992525864589618888160819742530658480545921740816389842929170581505035656631288180715163641297377363373919980435203129861937795284990419861213953221566076314764147555937232461987217641435410065570087944212328424248706771748276485669070635885014942951708746654144123630524796473549325979649658277515037869216186371443171111806265131302231601808953896035845631563638232850577605094228386408957579474499205863590581353129233669142887701423633410685549449901428867365854350221203042101180396795394260921863844827066267145938080361455848543165891594366936235505537119086885906155525969577743003849060210994226007178878733411475743401876693733056288774528831566635364242133809541554395275893390960291013877292154175493015982720060459428883171633086952956181439742185860858825905991283868071919491518744487232305430632211940063839843406016889756835404377528516513396765241795207474336941267984026731959466694072376295925945877697723647319370181270309964528346157154829108770262279712678654749214591969993843989919715147903605300499132137025893179938056756914743881198297493398151676688286255433495473120133918496214919673750405285506479732640773471148351792415112193664243523674756311742206168179630248208983598413703028499683085773762880595849724963223520977214535261902140632707685171253928379080203152006274274934513198401111453257787270435637342248811847667812676400788349888678007845066788189520495730280213865024524548608683370065127137021362033251067354652199011315746142050337710179436114545490915490933390680969460748141466814824031719281228682878076534753635656635867446610209891487215673175369494700320152567196937959003663734200038341932134263786105607565774895953586387068124040684140409953372036804445220492125158439138514029674969340226064017891148593289509019273154204517695478780963681523874483015203948805891958100381658498715798548836070754080194949410715717904473486239073617072473929615953115203219846530601053405163073017194462590837498611117143222294984709207355055350304095602955623939522231403434142728288673940385519830012764598563440018489171055836843491992551410186853016915298434947922056481615874725883961051542970902453017035908918124165969598469714038351380976705815358492165014473086414852318629410312188233265514569999630298427544520704891755553240384110963688184678906702945855778978259944312026551153361510004299705959385893986873024291818724276725840582542750464198208239812783268461848738402492071016277252939143293279772483716302886961958240897979505937740675432764598174234510845692499813674781568310036735710570872509090118408006829605560558795412780412280026517627275194866021707546372427705616301857634987709653081744663630676646628152235650840973445726340265973865904132962796236715782231014801478213346623691656265574379776243497978717752402926894268607330083712653838380927685042660513139535288349487340815546910709398487942238233044356915070891566787626055321743186018219558194352398634555435290967755451742845282416769809032291813748326265471162239696755381427363559831531340154842466658796861023359662188076023221911243973586719873276391763115847895122110499316362758700259707030429967697560286674931501488841884955234861347508529405720946232020929051893481159964565901888492355034707858007489403522910758537691582453391032932904200961647266671409362432157567823186410786547578273476616798757811823782175067205146141803511816329942401996607046262637378955917223764714806688056869633788140792878194966046354942924714045952193477016517188480866716246078937481145690912184825485985923533684761675849392973790603693690454234091930872896213073719469431711287585240647439109270758831765234796566716748900302221743681728072994083183279453561896704950968036070292124028334936584847457915771120756349759855587990651765820326680855383159520072008508937964022843902997549744958121745360664318518816441079818717069213895771565413143071624759351777369639037804665818364154264559130463878869278841161125121229797178825200944620230126682999618695951259216323449019948548057231776745350611578055949540998221197850562397813543107780515766161542906274424416627832355766278371410211132172912879402893027922919281639148193707821675472290249190560867003675369523889194109182806231952482056684167239110885041457876202596104554203096841054366370492101826378349807737431893391838228438131314820060052565693603847142673618894747770769983021024466131583801102026708449218380498898055983074959807952883229600111651564320415313636339116139939289658425813582336051776457530878429115516029773058114935434193068829257119824990875589899786910548092550707719901044471765413074092480718519908085093903814117774512729155271807916270462358658793534901175706331500171637676641962413865071317859225924067303021858094157981035089926149076046852695330703500852397359803190652433944442884898828109968696154154684172543448380464850039530519857479998908041347505606845343722600126778586230749349602904552395248768162219201432330941613302976400451380402003095198223226949659113060179519498474012580847859807045330918846238279817091388746847809608733149585506191516273971455968357127954718903704602490190056194108260703958636663331297864990050852164892626510347424489633442544827871856935752340469543769900118190217162437060603670202718746656103328636809161627130506420879118177244623526532466089396866252196296228587161212340186673960705311117706650760466142781076122833421558862777423395265415655191460920733055614200077030184947072173280708520982536107026783579383997882524423855024194589616220196851479251270731022298379215690537871987798903425567170801094183736816198717517140038418889098575295910981951716372480235988840769376954520988865691000547137281596074860971301589937547413524133314943589471053443198286757833456692913378976217927197072098719953388535611757494493487939967212208072399917462687140927299902279081837505752567287742830302612398431718001679979661690227813226614417770040923326207829238958840034532259733139736662214316738493746153063049529577661445723471422156621676913298516235263036994350393046788789426404842435900959378814977365929919254432548387907175011979810818665187155160885137697445544929278168466719433117888626594285334948698946963653593182128215645064455115063407905638192204507836535105147712317742145061119349332411675608891184760475880271463164389923692581029951477018365852702581525663653323821438004262170581902859437354922713625302256183836225642705813387043610875343141414449685089659740555401942897092686265624632137221171520244000029684740515955187885432324477234611580704357008378735387324706945741870339768648702170345976467259117978085887662292704228041186686787104198330817545628539268268968115404089092210026243522165054933431926718762717348027584484094585885088738873306151392119388482761449859815172081439820613318928661182932943917699914437902912102691009504033911191871015747478955707853722277734827333833891243185608517711171671278297727637861269357396385674567076719241813108252427722873102833294930312219285961456759069064009919443786749658431043545542916010214457865087175070229775525040890992450918606040890231682656440179747751991779961871542332430037994911143778538545299885042160955865002686672898113634903471846110638281661650059503350341319560291177008480860119372246608872639774196739035321132040815031141113990483266056568416337417249646866265150555006925774452330472298376017104383458049611317688579670696506033154013692846136133620253056144549956748552141223708144984824472477737834086212784991249740379905311802069914129197413346072307885167709462413400765593647030695331908615043568543767150469803782659007259362796383146703503063077115484346153676439724799523859009673585334372322346444943218907614159146407671553439979673038486396476344952151571065410537565204209855348036461566575161539937975510602817070667681606004841562613619862032036365378532609554626950227956878864456458960121312990758536787485786119173217175169737053685572576657466841811483437308897489745762561313460922403715248848875093590098320507671392386584163366237495133501089986646400699149900470841731249508987076541424190061444234609215671944739095667408029519017762213987752213146712626687529454379787903775040305021199700381107196884922453729517967959521271775713484158530164399862789865777347142791217782798012120169727898893148844364238186590755317540495461322984971893338116412989357997081987727850907177471727262597054261796449329667191709267228297219951898600941813877944536156599496676352562601016602835779655379951581001336250511758610666455122061944765308327395996397497257586990019931226684122357599674534161492180591449745153531129710559995892963040496033242635550322399924696561151850136621745895146597667803604263915362447629228291326205315655336584419430368038984498698789950370670496021234474642826583628093800416467995661991748524196749651986117186672372334246616847289314229989050262861499998756638718540647974079894767101412926899398131029684239548185577901209839768362098667691079521262561178372417596846088298985233084090184028355605778193725926891481352782866747460902098455779400538658482100757727145264755706681450236174335230387142093092669951351259680415772693642721678849928760882681265059192004474016314544349436800558470292632631596925248389292898703468935591797931959062786566309484852194662830107272551638921845489355285951402486694989616476269931337843340510019969130388104988271558278328074982983270141633446136419911248801534965532108666542905056440215798470968554295710395696513030231766732991269707036728411577281137379020209162686711597138291032152357127459286432001014389646417764754318784345388069124860851490694955742874769659844487247571117620330002017420572761211437747724629939046903329851840837822869742797767139312416552244729645152843852115854817189800346424907602362360522059272250793960023899063342939672615039871467194333696001975974647971902954049890558476279071622174499405135807315026199646932312226188364633620325981538546347910475493039568279472447384974373516878766858433606430856176560059180692246536170499396668266700830382994351699204719282163949889400988616759706982325088749520531704048722221563293054959447630263092004086946971221311599047725743960130813025073847033925962177507072966508878907725233003114953773355012894243900187185798156466008085263805289795477171060002996210932277454475397322161143097522835963375716225849736372025832466892446261920672117661392099456919830904985510956335610110959030276162758974883824440955044483457490631024364207644327763416766872738230901406423013274512916766769135898010853744442679670633337475103515672872812819389176832290317670869845124861064827220000157217504645472005728903044343552781918104921781676541227819231677023755877584602701956571599664271336580027548773964693042072057346002163889394373017201002908918681301060110228620570860516071170078739179804172599169720973989347239061368880229514406610842129997839620772074908414075333634195018271038232907625611670074671556775546849997373705712896388867161701346483722352888515162477794342767338050589368620183521291160812806102381277137841887934240164045441291736654026113527335068279526207725376026449738334035408413224153202078132017741775172271055465537255867842508645522771264863570700827821436510631955859037685714384019586774795798523702924413572112752684415760236126801546974738097263927450910144030066739296889941532816452229302784504351393292819630392770483482393875591731249388845483507542272169708852854932028721510499894191035677539045409083155592709137530934271856407078945836298006520600104191947836518113986912659624068538031141459581311398773363409852074403729798149209139333410928022103027339990373462599088824658050685447622419896228206017798000049085250236514672838229886394075086904858452928020778324582486401573966447605703709217783841138991206660739241412331603376313675351033357614240911886831273273645747092375333980672917184927876784511394410496629212674820452605765316145536349901374204095995541894498467998698907957298683525254164775097499755267903876307592188677556222675451698820625136465609269453938079272483346954481952587034534061721618921208915390205715558480192216096981172362751884643122669085757433100546225906449979110106418903297528736692010979746843760018375068763479046709820982462165055350890402615134126160422569026969931352310951164056171467044527529259434012529561427759269211206567713578390658811386314341457222240496334304570153240393507607292152848325274743408914628471391974064978922689883874806439948370743314951219896811941506154272991307184075396024837579394757302977472131422768041195270056317497082503447584838264858150304787775288541468450939798937830537181486443023730871754238075774234207395548613801396127161215491182295377918569145143160334183092412034949952224348267770872656998757600264194427377458002637446309920778343239620237757151620368488256857212972528403077573992115956896270175655146595219005204786446925406891108375274110698805783677561398807721737181407896488126618248541224547779905195643118772700732788719677747872691864640642110154481315326793354798351807435467101866094940418828921618470239217521716357332159267861438037017895299250173846319921260872769495460192895855179837934588837082322318578864601202747969835123493672986260562403960068737910000797266181399459972402274662782719678829742967121171825354337753977649603338775820680831807783724558057062502242212559707670711280494113535620608010556948808452030489810783200524332292579951052194752433844540735015543228165204546214684885193744921700967601994798593560455361111159468968771507542231051020593003227079261469171992906086411933132141107839894594312412125113451780164139201354212583116510483002354159740313039938362194772426089564729334378210988479558252127779977023626264363227309805317694611500189587462440989857726459067804594058474294044181710070735141805088762833427147381220932319021219344841853414437586628361581962097435076001420420805861697337361449461418693766198186068252818308330867739195088753214721797180577071338901439157432091414666008056613266057147440033442963783615150699559941824645738748711605403514326891512655726092674603401246287828475522594109691306257460309409608365175955904712208901365877042806152660165030160970968442914233437592442890173521371005980458163629036009600222329820317195197042396193490721555178942355095018577419661209975201966967746114164934165026204751575858273634023797048672081392789738611852627142983825461136556913521887992747611233252059885111232542277016562383735091613507429743812965201752298233005422288092384202495175160149811900465269749104537857041185468931784295039013554004432789451522470827000317237134454386192011387567109390992121018735775658114432238690076136796638314473033200088397861433788582692746401999368823584689322256178188304595269826187321614252711753298147446169753338252873835513549866368864711660818607038963809654988140490070172929695253456425092497853714194548445915815624537564046881230636064375151234500498268663580467032434034780858261210377230834294787298280369662796826983498976286234589714423970726375794417121888824217604787368547981386919226008902186015633511116448244061525113283816043066513834579803491672122641733078512102963560711842959498829603358521591105280524777044769213718392084848016790971398970756695473000638274441402096886211688860635410733623876388793457945295913776519370691523336136024110396349037170377739657922558650840893337990284237006313598586912557367201527734041407583164473108944328183855528628984860176961401261675803021182311060334603882740227607370676018376671396054487650055515164669089853118196861940282900292650460955973490598065163799709531481361425178750048190937093248690290365146435886647581644771648277107667207891785105394228685963483554461015672292697686319309423486833998001806002144012970535401162014713877265744750305284519838720480104075281344075181957081901362899686692839156786564105843642824245407622272143092111395993638034118739735398611020293536842417795119068274775928828250849008997710294614745761310771312831928484053711164292596882620147892916857243603431637985840940469469891401449645445334023753720381408040186450376436671859716143983528979918175702724543936047483469822278277313732804077914598767502859025076833640863614890537208833563269636514392356768811479151372340976742206140453540978723345070550193427614959534082438139376083648721669640330743893266352006108636633551728654511427745638073058225798843702733119544446247860874599949549202723327969140540325062073064405543151568202693288266887321418111779410019331800163354992733644674962623557602684112870758077336951640203090210114935936174668902259348532753364130308870829650842340797372839592766119085755260398344167261086006206336737404177616923525200687236299230747803286319855360992017735669486194054503272252378722701459586831682150384680889639259310381958510066170080285102946020592710965717744572409249314039416581262068325947311996328709111466193220648901389529767577841623740620510191484815345121035973722965058168341755662504262538731284514896096868840660958495386799708983010757128273956119569053761991279157392223542151487114006931714639069187433846335305365892181926570641950734642347576191793590663395893578307780998621194246821146382049568410697034587819813701362021840650660519501178476865958570791579032987898030800137297747963020006208756005460326455348258836574868052477491602794916031694828379070392501061556689607708989900306716572318770739802428821744572568092088245048204039482507129349867261078122296153138388784758339115009631142152963539373642636279281219384320184073880293821382002075639207479672310811792610154091100472738332878564990489142851622019771061079291734153355817938332941072754584573429855739264480462761687449812557022074044401803810028246652580431048216867924184915087828083129220977465129298568832164236793787185502025041279429567952993486926574839120576180628173791892859345362854324653638083655903153570514866141520741484399497125314031298432334520805000222435249077016557768502568720054878453277928597901089285481446925954530340077537206520028621723018525512890014714729523126541801461110827009906781534288991038429626685104788519238367441048791961003601783593918202084302858843260795743765993720168348924331147017538728267120815269245890096469275014979419303822410040657908491324082741577471173666245854287774768107019183582606704220633538416012569809247815449563995353486393872002064951675939817444166820507139586378654103192153930575325361011766245099587565209362040024316363057148252056357177942287997550295174796655143678060293275242027548954865005219940125884773507445741080927880589649280802006246765969086861622293445719809320427896058481381276343283513287861153380225781051129439268026294108945946904788538640417504846799524617493253563299878181372639135940261123544555845538964705444487638669069674616846295667771474833339586727127519224613521145142941409179219825949476773427606518621499091292000178550466575367689077003424626652534669970954356107976707411438637006646708982457055269783011829286167667844479289028509335353976854994792541767341457434250024730847039184130915375313070885143107677936131989106410162959313192453216717838443433161867761528813203888463452431591592505472114742827679653740742324661204583628583712405359863605182276455126422941781188766723849517066144267646536344354110720864104584083102902588112225060366778387768290457608079523823395266649684054652607666472596669736251290213481696451049290907829996894008648437897741842008457456888485171871312286140613187491427865617827844269443618807826114047924954536461087041164729294997694861014905783141115779885761069225904560566765800945517028225246700625484708538592918742046081246618477397153184469612483327286150835291822679833582929906019329715596604276844105400877555574638262823939480135898359489729957580987891197062546173695243525962620757961392224602434358158578586866611295850759883351427349148912840213360855007713888978520837377337208487642525322708601638565826402658787389676690194116869595024783222224506580588026846749849487045866232028593033276990993882348647581655975520534888941584389048109444223563510626299970906680766484068003055003082720442961562900023798429559236471594017336913425988082855009567553211942824349542035267003496820837607345243144450862707247171554243128954493324911930227620375069534004631139565004417010997888357151939261490112117927422347431969949293513607971311960245442371347366051715076488163316648633645854402078282178142554246779325314659406120957190684907654735366846949121233851269625964750265261747865184570909215694646746032802937725393089647471553674801023080240434719729633090593762581112404073637430512500257518171998509688330635632583775781710713774627172753970994061647947223680438600444701311726958965026950235829551687472661529632874997100762731612523042730568824234284331384863152995121243502091656562180134787366408311882166137141544868324384573920423170612322578795698059352637872608175617409425286800739865920427409024932459514785207070990233553473055548358047459249234364211865688582371428124344872983173762166834220228999290749441035237427109417318176003070522249970020731769376321816961897209743965311542094770635185082822056709975583426931020594120439467134467696304596487183169278241497696178060736110579304686419514586969007874576640071411935056152663650617237811894325330169157649710662031647040580902164717923859448964857076486085687162044905296119737876377209262427939641247940385135278140383876421876068116325420553697784221880203172362977016378437459968266795033247101410646591527311879226230547531496257551178785741156421814925721083544315770360635698093104945623586526920933008581266448381120729537216384057210808111384332593841520754862325963232997655053246642372843466211338531738920969065017775692644939424260145417202207752344788163076293956531661674567867725012239200195155798986025504252859287265561048723187652294318811911228738600113476109473083219790958985929392949390666639157711987286889946845460933665589738104307152243856430650173258743803104847496293652873915118484192185751194880083072326073395624722887121926057884849739208968885433646642309254041518510175764742853201028365909607715626846814618988532048550468164160961479131650300319703314997826439541876585101402312721854054047195483527306938360492938363485928914682146644322046905156866064411881922141611998005118880353581991905618177039900044194767839208126128319773743193900726245762338218541160538995325375900512932443797843630274782138035756232935132046459734985528381468470953199513519301881309410187597887522311613388553488173225454193060898694709414633516206393080671827228741618560207583960609618856215723221533802372105674190554788675697956259655617439834390037594088887838802610794837512178608028656550419564016441330602391196386960514601334130462963430840001011825661594028205017548268289875480745849706864753850081931511810441240150989630050198708869883959401519228865993211157743754482209005927529466217345499421305953918132261967386023783093079456613680433577407604902423686182631735597245956729738232176004900224743414619405464735849857343627343482115813912755459781369717298368941139408815943494764770965187252088136198828495039119025086751414230089459494908596115648965684909776573599684431025167869482651898705344043090036027499642143762105328582280715901265521211342739125624985999855123535142770232448986723848238519837558113952520937699201001225455660781015165236899423459631295787140715112229504022117161635641063752544036910948730064653040328071429395018399904820397436697587042881926708117018424362954668481633203476332765785481113933817072270825193188187150022016078296939825909565940662932446869062139725741053846111018505218576172030241016289190685017446258152479009295877492375912421866465045452497330868471787802012794454570429736425312950388470252676096633595413201763481178484462366851354139590239955251920390804421733991767512214978130324895460945452436393353731457286306852920336153517285878540453458958298594279840417587713525827484630297310249049557050850809764519392458750762225673120688689661202706772299467753118660833878446946384732547608382186835120326415923284541099450649177438940879211135265243475986349984401145198275349627898151257892490635128774653533265948780456566442051227921560772998338320592519280299605497198195077734532496898265530559719395638957603939678163784277794372122065657935636973128675400482150615074911388757409580293092886115045028305773516587052798299662226022538786318045982035363915938024528287436599419839874726364630326763821773491377540899889476541508513817210913918321042017592317999948815919578948857024741101298244094823104682051359545281210981797537157301278230726690214464949327366146912837052705204310240436384597644664720653082038451315897913463428065492434078759880370864998543994050119381858383649365406504076850422137182100161656951324190972941335878662148907284487148763851429224371162414940309609490449930888144615146047599727306388465920592176984810595044774580388980589265604429084437934798641158247521699216827559997000101562770426001452676570670767721968036554666208707123821841370377883541772849402271718866340462243633020865702574615794003071421090193893350655164258590392871951724845285514987093189852158082813497915757081694731253669731306333857968115978702104400399922727170885589258266817216464890417276411603707128157493364121686238271405216329132410516748862803825513368892278229862117681195471385637199767718428770825176266459459762956801331959946097477157492200925336464763147743504463199515660901995423607825739163354047563692763565829218599689273525600351853231308403530189324334541408221903975563370397245592395308299055977916033810065245192836946751154630188102551686543706695878772939772656082760592863047479990011305086217364032933284573433935663874694360975097443147357840340164028399074001666964046778839224522683013176770116112000846362650561117746607416194408167656958348686389178325834294356093625334511417773083093086829525055736861069087376145924452976307184716734041257776830878218080249200837517930375130592368502630383162580468798953241004386746702811496871616680066820590733316654293135807187615976952632710507794140852698644717840906061320359733333926271905717578362339353609285332409093043874510806289969318623075861741377664454943039722118723915187842317423635223665835234735766511435592820363069006928104988385410330471905820406027891249973507873984206991777992647745217149642283043610468673533374899638857097192170690974340377839737217180025468456444622763357918915708227957683705988655376929043337635378379429453419455103775498127129225483960127859268987055914441316954075445274814377599683993682415097673571471826016455559223341959841619226277326061497998140849229415109227862689977733375473626883916075860822721426423709506786695510895209212905531654512869563979932859199669492912960487919917173217432144026388065196583710961676906634667747802260467268927109784638030136760150721831003570104845052469797541033912679391641683222736797920446109746331979572895592686858560937475404573831638972204363055381828740220381867438272864088308233013573654766874188574458474146950549018516230792399574424705690451299844890091669570136520456431653360858296032513308565201537475652275354676472539851600859083754123931016929741835418828853282003485430104825614125382596112869648529387298252072665778770796782622894320601194627237533886647312625625202875354441526009437084742358543290119772797074432682714487329909687472662384533705800424795210040301950794562759752485708782733472819416849371546933846917295611434517166871410930455171781909309687667996515896803199580215426694024498932498408107098626254433603173069838504661676956448338313780198793295554181500809118130584578147182576912239290012602629217564710656452161967031597234435065629294910359470745164782634938153515611523486514780273677906866500236560063178240244557614316548057527311458647358923748630089424489053465308755222960207705358944071294168087588551869385345389487825079742222858933436545007446146862581333627992583396126208404521172314040223936831080524766373836720010325381699214492923570649136475430700362158771756648045924278876251000622382811501965150184891640213606265348746363782415603980271366173198855965751655349730956473250608578697324872404913122725064864734482470532873114264547621945144590593098839331320488409266350079834296464924527199872763266402547964764983345260635092703685902721939707071041974752094146577788985427194471567577569051235362513561747296741952693600752784217324327989494541322101628874123571702420244580349950960202047382840287554500804535510994629058994666000718286408675795428194672204456385162458256702378856089998682976745198191136390029477619764610946549050148864704061626433822164616798789971610476013843711704398992813837093590127477020978875919537097909399434849869163364110351319270836965027798129646689858487318237265765519481354150194972605528285807918701885262597488737680718772284044884302684277974714351602467956863528202559245138983101632465084118910835892846554458810296485756474205739060684320057915464746304017951499391428269793927062525540248172833123688177155250179424331825509391488729765384776310443828691689084643606226793766131655773951269634686769678688297247882991530732968089027858125641131698343466230903991459453502085612205524484629456627846502783261501188370094924558758959507572830005886090389461247853430529236396513127336474694978714699167573505215263203633024172105235499464570775665708079715427963390618595070975539471102717638387341672683277105649347806073104636327252343086566741577218597870614247660440634745826812302377071880915728569945134447790571093882012924645642579731517083374291533137699290785647618134490026629027758111057358655661328488331233013886501904445140023862902059472321796965243869192985253859854889756790368458098971356422209074923149662952629796218958467519631144540003143935342949806737169695029217506325218112557586825786696182727016644815992113804567592051946922590039086496155257598118064701118033548331913347319042364031845623087211944612159125262577302858686121757353666235584910100866553074722865936019120333765181640988720323925799900830790040458439028886912796848122259788356474722530153574710925116981909487262989605557249180173125512502576820373461880551854448379986614298871468370009428010674024313478044032987267132580935533632630951577536348527323229929681545081823295571215083866597521890547371778616837505348167486576291168269986817222348192707134622350631053249464992296173361611155050560255566430375115586259783041266955368255196796324273327051834757596977516977681054457776251146776653964732318278120631289923348079057511198241936589319972223939461019340872130659978186951068341344278842455003852807871105517306620299278546288155388430314914051606309232474466261047364402250808108122104403900873214853218502808352058879382120831692520464785484123637484001502524270329120055191996859932910650351942200593428905818808997387927058450080473471270948377437032666776433661380380533704154962341437197961038256426082230809094973413483289744000997291821886011039823316792578898274671827639269863719041892908182618531200366261426338428404691901038924517814117913978423227163430691519557223037206082348287601762012816034880182906974425015439821756225387549449068641655290454182937191149090162851205992344013103103720531196815417704229179889696167700235969100163369140899264624964536629319413432277014914841391395461147405932835349369119187416924305190764669846720281569487851459523618555690625690894655333997914569762037486597156935007100591731984511715328922529402526343951198917273425487810211912207781273469595798996877482521726123393911270774957946074340365375172549656779339721391446216775113557735498109494599553222194380359933193619230768210116344419258999086791227684168615752977289170762373436896193932639857117924776860919469864453414508613602998970580075819800102272134198560740859597788925797547205383231519514853657399385392518636917640494804854362940420254380988267426321212693743114043264919991512690690804209990623268750654351609801553653684213440140861977927827661466455091472569206782996548648937484872095272817252527247063226945695092695955230465744330553241010626997826012995870017207846614379268143417624762565367044965782546466453418153326917207748915762057860478068599850475156407091384925867469598527131158176169293416943282434273118805411007133046335113971509831540634920584289630450064672434963324080731970659427945907225539417928567848364520888886678167947457507883903047253904255146472150951276178689024482354991027381379883660230798092522304509560285249769603189345982357257672041095709085373185136931670539795925718745185947868415818894364072212160406958440985859386810012438069775418242827888420294236151551017996712879145479390268898091027202427320977143068563832494341896831448942594027963411599175401787735208168430938583439154174344104717216376601277336200555758475091921903693981624138224714477167033914949160304168113461300526233038109526080839314886596064535995884226500020346549115308796420483391231115997055353163231714785175894182949208492867346398087373060684738319919814679571364387278729059064694160107227868078593689917193090210255872237325644041942688004838161716470656116729309244089843221930176873222020676462486914853634191813031690748277138976797363471430340457686801033418185675581772859232412857681640136665120352884424568070820173236214154606677057263305751769941144370186934391672002711443262755869747088685258341593738008513826836768834675431495785266722794769216584197701307579640756333138537916793096315298455752373953216919810791155981642126926425794750029278077869965189366963482577759627143199331714940586247492772489466749639050006619724864570920859522193574456775023345459009732623434433396388120491865273429955886292739896077875781288431226593917906668507506902297801066927099655646479788648193815120142594220410716341953947063005363693065558477765758946526835936071438465587026370010871509092608466970492575024295725403046081931351554145886734033207402052400053624619139472155040093657138272817700441848299955263814379525129689591635517505387778286089063915223011390703517154240714090734795667295588847765467449883133874823955606168827369959139592903410962561251653736721453242451584735360635570412149506179473342076797950565115521089756561518381733285436343631559355023315125958325177005599921815520446795749244451710429987427829068626110378738948763216722988162693207876489230632209695422179588786823336751244846198503046638797698515326010423195976485732247830395838302588894160674126158642822313406358016055657121581752568663478861253975565937578106398897668846319263197140174027581607852972969552043366154875255074583673112724704965654385891758764571366914325713715725313036167538698797581930907278174886076880968935092133392970972949378499305650236816235777763789071741781615290448618319299147542435136643524137128306742024657913806678528993363747144540891188442471425553841432059660629956171227230906716553643380462785552700550202831514770990754283432669552130484588496825306115399965813333239049916260784293428897085831512108541426172284961848411559909548642682085639152119397895348775306890888048194447633813590585708511285231034948078845005979925753783436855955939932930461886639377464651409245365311499552980949925825712295754796523896085655973845558324290831644592732233097596067726199748567633700839242264510180834227355509111022796262962471737030563566418550482042707343805253722140545820901797608963208359256918983321882509725661379334091216481094375659681593696210507739029596072203714774773117243992531444983493034523887704729839811612238203505301378692727030118316963399903034807147627301571250437120807106212337160381554275245505924376806207654770476458977063248327645267948340601416899128763882675801960429199238490480507286564990918006599959362109106935822482457614787704493997834192504137770816887773529272886083670857959733864586877879685526430901715410235719749628721899635726698975620377109863618962454080545635961854497525636934695321769445635310484258492885170078901525107814671985168920666818633749548461839093076134517903869306344558838883236048153945817300004280186215378270107098270680732296259975216901404253023059437016094857556047456732604104999486101001722319250383700921754535738861594903469236788754468948381349793465093263706154460657588728686789032942702598727974875974396390320527703505425769018344790839579115573211475104637540388648846934594073618195212598314709495716003018774272506228742961009721467507625201075397732918661908070720080084663600040671736281032441144464961256100006800622793609726315222491980137991496226293683396797590929512857639394970957827391035223842448952217480734975885182079013522059612869707494446036976530834710813508638802347473350961414995882865883160115693884670391504153484914139341419883181790658648743330593726798098672102308917417518186838207200165859869146232172567749058209215281539696810004817934766917072831137513305133929629133104972469972526138519447003221611445445004875369788852150695977039570577826884939111418409270691245105909219680353174624985541250603859528076059688571345363358927128849878479081218723236100866871510384378392933856183658861179643550056023263621451133453990023280001571816928055561354724880854667897468478815628550320623512001329108265683886578946916145140111137793723101981347019646575316971284446668205130557668102754095687519388776154686115958048062416715794089003754714655803125260948936906054439036857648395321938803236439346127977853893970683874182158752695506123687408369091098864522194033327167985430051843982280420142433235529288478579762069389883072763297741559166073775924168998866698970780452271131832219472759081373815859062147083837425085962593177518452380102856991007730051799386818216577713673297677554016586323272471104967373963960344566463575064993364455061392016334322764475896802824874165131318205347523093153979542742917002882761712914476941861968543942488546861029990845621082562466508645664403858162463923780210029285370333830607733618491801396133972809995406876187038618441759721701775791751266031855805630393069179827316432741741679908063615303628227591056583819546021173930800468130021460117689630006419025413198769450790592988550633561218442794167983387006624971921964414253901289093857481428120970723343037845118034721161273908206756969235050239780947107572400375080315530013499281056893866802124715706200948176686989445655393042529076930016256694276779507912823833288245367982359260615281405499884026677873961718582263080569523434719981912528287269665150456170364705980826288696772269051465686874677869497388129248791054246411640279408581877147765103407036268883160261092940229066170848200473396021459532478313053191398486223478855467489980335888446938798377304218374014033013535013426932401289955710550068339967393816036749109840951569067932089574664142345865640228311421767000074969255969001851147450426016733343627900177614976765666867069530191973705760418216183590852321327132411497830633412414925452927159855093474725601088994084629284752206294994612269928603031853910855015900609818357808824819307782319097270366414357444468903225765024266617751531889760041958156763529677433495894400984193636654580349870217637588176834914830263751130701810167507067731072129992721427693321383064493048380715706310547879549588930845529894489997620250359651420783573286309592896638149499260919803140047002836537733692772627736485810727134127518615666610143616921387471953376640496649789617049176843439083924422610599653393416231179466539704862798837089459607904598083004562235097548765537028232132193082485925217938547857493141330566410846089736701221070557215787275693090263831617800433555533153821367480388978171332083218532678557185000993661832728302791968669498474972096829959373532816693968363269141153734968161921919237933186902192347648331740563035344237897073569949145472054255227695031813596053034281036050410198779869058887296143503311986753636803473405163003102382896542340074555898512795085370382071841078261298607366104130897578124881521090565198972606732724249166712436320072621772079126896179898639082103981352591280941223535116777959733574597610059350969563419680429735843195529646887685673098923521016404875249879400390558629234030768004782908420820185025345328585581672996446250488626477392554751580037322196787611342032093691266740954654815174036587762381828642634553031136060856540684084753087269683570353635595176753840332726814220557057715457125510846800218481376715026077857380272097949717650059141222784004765335053346140568697774928659238137846879591670076986204536334939017301977763219329588907705942817926240745298998769181628503876759171842539901461618662020004762840558709633596455725030848529634217255958404681797390341339936412232111765642488231340345681364728771794127440567411762763373662599460104465292452433460916900082273131277815467876957854784344392041213064596968979077326465183016353916541216122731098063757719906991034491093510259315871498595478680318361591352823677071751245614480983845957923442011259517755566626504687024575099042915415049851020221224381050235603892276943080785175350229927072720161509900906500251017362535244553958625258284376925363939598968562419574337358755062156372522944628058364127675512279209797366576857288816083482610204225773670583124306857811462273659556943898461760208885276161511552095068714520923565530573568113251482447395539032603290650347879732320013446993531235157415498473603907712821232835587641854068733508383114540945926350655593527207741947795159021629958594111712712498659120917848770955407050177745728589753788244727267518540149827270706335242815511375488801842687527269934679229325866677635572256371281122425797071385057519127585489266617534432829281019650790457965293110592207499909602208004787260419852515766580691756412842057298813776644218999628881509642151878922191707123848910789989271804640915561425721755717564294381583341528497969532168421659798758967808066518680750668597282921384550446704975041069015395820741044181384123080258436374822608662603881287396718582764457616889435833016586963427260300425333301703997714319665465447682602071932194122808214279191225999665779498502498871112501845829885645508561825147421261674874579085449542495684957180516229034147140194847693311454178093692070289873675343377554075281512968302657757928333258308998521901517120875766413306936376713902259822115141407254237878613232809736751043814987936448595985311357746178560495764029717554212753475631103126857934602264219547164289830895626233312797362830570654879609520165636248351744696316840923421889576224727116650359875028270537033179993580710703174206007018868551891538288697485993491382676268919353392820392268828396809760141065888616406468341546481692685590480031418497786709467103812171942601784746099961921275977184762836557293602214840542996703131050590284808955409416576779013918599903790768021269827134054800079841891336612897864215690796777668460585756859108897284700495546244207122232874186715364974215199848342101540351290898786663443569375970533038678605793242347044655952471788263739614103505194212942679745487224530605006548019363720092351319324697230490949720927137146020430273930183392175950947618418114873125606506354705925961841164251016678459573235256100521462247719118288441388948866480011192727988996859107493218659528321623084025708844109229464838385845035831399865012770360962615777424652463458892704063548066738974195269914840644654661706576784435801327873166739388592577486057766578388101715238999467835975579269640379814747964095833617954249818130338848513242599500377776374698531844641644554503110160226491334499153558966044918155311113675920828296659715749768790929219640475518464222320573576468391615157200632109364476624902285127000238901182149161610772868840443835169538755453094251788756802732031797592516075528218384549398089271749812767522172239088828229667445804998680086039550630242963775126962552434086055049912466037684378404393456802016203135501536729087874572297504162418767217343569508760398936177514540662052225343152135468775463715996633071406447548502385919057428186430198599707595748109820859566030155092531391445804101278659011970614555197469980472297973013914430102026629174240725174863947316438202257066475322163966807886336911591013940083797289768471537985302396200666173351488411312290467738002582382025861767407632682690995235354908052507879163310364157159579884533399980176452061923660546620672339800486051177217312508595092246723541071196258819085960440274588136148691606258180579776140148313403949716924714174886124903780892952752564753054198492658177103994378770231476169486322324155401036373713579754100701213037873914887392430671147500731363571565457966433861163125857784905291120246925907357104742222972422935942771037662268319967912757164029830182090990574539407323285539870036704940357848377841596756151727447131572388364588475688754631288942348721633206511864669461276587315793388249139739406560428045583361624619215470914493126150428038688265902510551018770397589617608671693162298733586463415674835879456836704006584138695498452437486352792838004949933509090962609265001734195285049947900489792824192691779218041119454753402778604754817263160690031327296866121341412286207978117414552846835247266533339198875584960393471445540025510671073479208214454918614217313004267354039764335464868536221788939731841510893759687682343621317867398004278032154036416927292481591502812525114873758971276928800381632700775074189368833327067642112926207031295046685979997568478102222493692995061139321468581372939295643917805528053054507300168487637862032638641852205818484269677950957899913205057709816899079514719526355979410101656450355715920576518074391678622471554684462876139376312856796166629896209446246859245692299521913444972089506962511918654965177806240999139809925806937336808188411899854095805689050914581297985367061827415437480016327746907985030933104785107607780953134068484574545192688582399467071354208681844747489608616909119940771796968093464752316819839421211648748853487394142413039323901873996449288153313271328638041934107937137162749089234454328075367119970043192470198659910388364360946813863101686079979366550821463103435899741114891720437265256973079664183913193511973529678178030914906710445746989677012808737824865707567677000212337001461650122092858773886554202907007517345421042620870314898987071478663970246776521173033936856202276436140587597018536926803150184776952102446285786092650530006073019336978198854561278259176602375588408803778338175742261025515317855927347088035404560349045792091773115892043259828399070579802672703212046971905209254754992012117428596735964382161046361331543715891424872715148196428029725816687058744225886985584146039534121851210118793578055554596061530552853060053512882280655295835364001944503642446883829866095964423693184842072943824703110968572716479108722085689017880590300805843923011066332248953214027860782751465032366487106470322387111373261525372576435686062779239913013440104799836213468213352451857552679491749559701503858734000723346763238059447787920530887845927167633574936659492571252309316886467284084337705801818698345277860387883220209133089008844485357430618212813487073595477845384428854800879827631717667490544215539653125299614623252572685385536362402691680398784346205329961439551004269793858493478711151054707424912484512298787630090740650379241673931047871917743088680585561629462007646185606500728613843472906580383454177272999668356328391937677461014687106964828127985212732466398718499371808773916968016753187291376512759388805940942430057417741256086940283586132024847965131895900645137298976926740881440343385497879419926005207686206307323247379487123699655952605281518507304734145929050652447874818250107929057549155145875078239121447577223864554318194143721687645109163346381292426119828403533450471417842409243532799166697657502709173027469112296142657622991244293655702554797177943367653584367992369616571166781650811852694318214064459267148281498966866135789107246458573466386662090085918917773968785455510915483798674012342796727491284943852753821001950190947369473671408584801639062135327624814007908052288668188035816238445201094362710391377720218281038500116543765212311548426620860046444340714980908612010481598835059843461822842309475514246033091298005538042541823852458735991773738697807748293722133782664164515543774264350533416547535621598720768533193341323842042197516299181113911039716660824830809761758375207909127295707445801440112162808685723285255279288303000575799266230219707906215724130393485058350011083879819546335867454623805376502450492958694599709468449538613800675855337309109809049738565421048402895642680265991077996259096415755868391665569293458405645617506493108176696667141521903300871734814804928751811142743798537542896211090074887414904918361593177944572969745367008073287774006021157820907786373528860592446697304266826043810815107775894873173432093203163080226011207184036913155103676759285893642564938261356943206026657572968149027481706812364121596822185054324839679934572995358642075876814519811834660584150976180332145300685598917380357293851036146658045980557113874643013275682905561719452948500810637018057323044351930120136245925790560780437266242791222129499512470758379761451611937757592866527727651637672451706507503042174190293561965847314888980433116945703699076945515721485381786318179668317689279855083037616005722091356955922067566667427073974194328412022341196216871050051915760101491191828437265587509050082463707192470956684893128197352461298821062593583085740935407487730899526530508444224043620069581648839446550425537983846931738185059949883218205140540727524709830113484110583239390710948414457794174880072865275403242629809363571648327260453429758384387090281469317072600905615705886540754749387190471796915842010558659517940742969452620434794404260661885801396596793634217317075056064603746002258052330675742283102354734401870070468702490648695957783951874288136533799320404512551218366210511049669360310557263735930107951424239931681096527780508080968323980731189439623365085233846626231965258776058337144963493467681601880148929835758934619101096860142620662857698904908207412592147418077324453665316212513098495234059789123579170357220122649794730050015462220704793104428409114494842173071717683978292842269533478739679568854681239072668421317529684096551990933364039525037804964071770180656776181745366566075183921781736059735354875025990316487134065650722707752881889297383924745072000915054952205815012106475317507614818578871543190895620396366668555466361497420816095857867588544765617946354955659857428557553854358216914132602148129554613135666732190813274011860949506329678227328800593973700922169960875303583608833667909866028582496475415422448074596022576872908182023892492809303851769723307494067830047548144597784141642430763850566060019865495210245493591905841654780690056951179691658651572374244920906792625794190487567763968081481081766258634586806737357438155280312971001133531504343452728151954564659581738800702366528927734980937822005362347087111897549622015666260683178557103638835943422012335246423964840528964649384364108851331132285223949784721259111563841250079115517057619848445630855069538820949714380042158469717308742412306108756022637968506523232797506260180629194969912026716277786429383703009197738558541202381227412143509143692421236866929582902849663133613310325646120040771743977406789802884905676303289501594045460524431912003311221465004061370537009777567315239124996671346221830562911624497877883050270497533267762733489934160046393726131402402281953469060683627947410088492568542137483523850895101004791505526843634417324158279063381670513730250996177941129648940474472880164682884383915411434029605957410874442358565334475673960759159906737726902034276530000989264980931955267914950024766002602828336229648146534582280798587129796324540268019457704601025233524855657549570484311303357600535123763377754336030178837387254634150156951794218521896899316145469289716847263626031991822280379685257642894453775097186410707037400964112358387099129431135581011561758037864573229920838140189083446188511438761417547628717137603571862155040957551294591898901514001222483295097190941077997765803766172613746362783592159981279186253752523468941110639304884439797568765617313950737666151669165675942210752807069939074532577262026145598320513669424874299920207009201666524043734154821959294321648105633889934625080956444584296873111349571128308216058290480944329425364234882668738635577404353780093257235030782479714920046532196958030515974938444735024581987796257440619614068792376380287472442289882662629944405387503362756596262708516684453841748276507937103618253387997406789992823678786036994908885865751267128727983806973483070910179352687674981537094970923067268760747693455886434993831943647942987382570931722097783595970650715998957389172346662312105081751155080300896709941811735348453367495187484894946786564904049755132511694965062744616426195954379090723954651762645892673088775588001084929230570756838394782558003932531726543585864760272010795487242900686933569893951698627415635833805677447119767073197606021344665922387055690177487244469213095540700268332437022091164956699107262339519643838954351178348960546485059203138768262539435399651079788076118995336376436966132589127217863623327325965409420823676210081925406636944627832456869582470744911881982086740764111983165276472503979852498337398513800062731713213259437699102355958351610229943325557761297064241456927289562955354259137227347091864793140171827607734019199727632491250580388155673084632219301736262303900830836037454884247204218808314102614480355357871247933626139800865792631293189014679988604446091953003046248795095281286545710693014480502679003387387708308539314368742267155110395487620485891677211110512398552911332476448115714351978287958726658907996083802933485956587836724936154112299480938251071185735657134838639286204191206451450433053460540702873724901329344464269983384139548557151191232607643391482893704563059957601003840750958267088678280623557303660249106289765186607587462597282442204102141847858083285619003876493094364990853623327186203268479190456252533830451874086951495649688148303808195120369983851343567424193884412838640898537546852192719402922035711491172871407127766694539291791032387276074522239671654633838107213344401094451823822856343149936446034116912508684960111079121606407961787653403442532413097063289338422454382319576505689372718685462399594879800114086406612952332274849074410449222748148402612344831590566852902985319473402271097284538287309762166935058601941099082551777672845662979112910640146600271067280831072102016825367770083623759756216597079507589053686680475081015384897289657220698204188388067592610614184361905406847768149595230946166528496209095824633817044207058840107334089675633494511129283752535668770933422394635153502840756226867412902651333494182348694281485570019274715059211382927336484838634137029451545696556939674780677382240676379828526494113358685818541188992363933575424260972541981316825837210469142353747604363833124981157002134826607368877219268628769888184441972952624812655730717140899180965743708794697093104413551584160479665604764928545767333757790150252692559835152058147375525007822236633246118956731116487179894003994663293126089800376615435978101968819936919961086960136156424073348101132798085832759676511823737325296504680299228847244846653348234674431884688266359404860387582886569167204925185118637518170467519854242087339864275097715768000205333518056638823772323094430253851904884819153264860583843071046354066210124950294296164389463702818058840468765313386202143598792667430901438144576423404309778476515773272453361022986620967827505716698701924872411159210654862178229951198519112818605062098345480057477589817587314624547205569551952123796634962500468909864737155931099534096564295420101781505905723501315700922346763693580511748887906787306671703197375295599959206458814330508805998292399275330277447612121386919491162093756378453506605132887743573121034073190582957507689022720643885915638593569343677622317700553007686040731471299774913554171517180753901769147605648219583638207084902554705472798285339761356146053859090109498659182273636556288331163612210020349497397557254417185408465282966163963377485635372614607334555538433497688468382235693015662274626017792116322831237799564909116836193263931061715024329616933335650142865405575845743834596155682586971672164205385832769740497334049072858459301127846255095710753576062674115136967208704226486803000773223552052776051970486480183653106782903557033236732957041524567641606110380446462115805340755531476223081685188407777893596991004733933375910773550207094187290710498355253717645005455158572315169471672662469857487763044581970018998831608040599275657685324669171083525261592228571161987118829915520604251359792670897522478762919018711862878327922953011592111319704858216031217961854436982463195191924580366536761587242697542629974089975945397955792130674639565796112287515653246027185030701437152484763253682292424192811497622701367497029208085934212291791418953087575499610501442679272940803726908581044713947555770571024615099196825250042760564605632941153317259347547163180848343277151229366197612405974749096400018769574617928689788340001181775244683042833204786828634677479362114484632235403829909712464522527464182336064064771915531319309182792786944282466769453681874032558108154160792117761210229644313254549586339111779987995237558386383277413273677551587227983347190209290048785425246659119020939970174001567636014689689266183662191966754830834398699237097195567335061274397148306275600479053970337244990667444793462564028787875676788628326884647470250538784434919813036341262403991375228882462141658122204745980922308966575759994928033247087325709045959358651833346754928190469795406072734250522276842504853278223395124282085690466334976244345975184352975962393168624756880193937898796387695351775138241328633369206250546277102940514451897588533217685115890691661287843152968599478452878080761814911043212562459366620875414236087740387520386148316630740076550097487779225712061213167807299110313867406882300545140114295360654416780303720102304627847045339746262136234274811776356135605564870083988844207464130787671325456323872445947028277939144049917293230208270575522358408023740074572266201049603257805192896929084001526954757784444449829487729567456689923021853439527280931594040502932718705831532280874679854404361703405241245307061280782287206361123594629346296626165282946951814013007948704962326429305250357758216673682679335694933712509140013553972425079737950376209488663154992517539736067955877508285919138677317767528999295697021536035133904644484643285139748887189019201993359860876332662362759093100322406589208114446451279101497983289272348766257382463000185742229256377840356492558988076226743816435108434063489020750807191132248735361291961974295384609201093811473027589438321181608027722616573795485526889644590936406133819566177525247987658519600984603847524218150462731064791796624338411653053778435577401796435943238580939938759562642644857357174864783044167352892855891099431358875762567520844177597219033710753395655692975969162219589016358694330265830572793607129653733143563031350965875952108159490812687852102585236095154840296434121780549052620244614716224319276730240482533162322060214021935017606256972604186884433112764978463884290958406334249508262325414631430413695358466979163131309703231246632418680820858670588590496522202582071214769327030652346723476257446220025334454969452738169101381466529344361814923927282356925601702149115673731107145356896173466503937344519003047992430122447837996202348714809332389791148396111596717016990767118172705546216815889087250099412157854275340249327125155677922981280464972577075207597495515470991426877520102782676978047272959422737604176221644185208397430153740862897521696183711743350705243279839672051348478516643133666374448423804688677389001046722810100671166359584581244877565473038381459889580422872161898403672376915572075373539530548807928012260128490448924260634935338394560633089412539081404838703587735579764524793755646886709079959511529043931672825971641776190294579611496784161202730290509166606580245564138249095371899772384139251027959439327814551589278229624510761575583214675690443905464035789756250264416751565788247204150070387202836269944338481932508780625689888880983891637824067910160749596843355425471444275902028072178018253228120803444352008930667055341688163011859900620661613718693964688648350299512963822377410144752372283202758602378488059279596047361607204796243083662256470495829760316590350475892653974729635878358657194405345955741803196451937880899416685989184354890893951002513246999444651616405289169160357374734214162460744177291079774105506614832728777124735987097757606877478379649056422860934495904573283931394000222949335004057579699547188964911202964892070473109847895590600369197417894555791402817588187238788944503282718716074148563424658562654932736009611234720784080102689055795615918280949444573554721808359779479395088323542642434657504063573819341796131654278592057089377560219806664275288012038283824662443633558123600378228332878282257621265726887376818623968434978859807193497906754614252185955967296588774306977771863489820845877537098479670538734376510901350108564400832294967809744816022630926781938013418949007481431756123668464187454926286456765138451825631063567477507387722690227382104538244492951070495944311598987068226688252299826635341349603117862815844509058977499134399672123400951540321658687301442209715137591276341522333065975125517217022318164264020916840016133307998714247762068568449308073955186743519956344923985413947280778138905310366504937076320337816177591511149198131697275597928245562448311686210200761977957080222011586755240669506701492927494934532106235185574518135933987443685802143855626593818155967350029904734485227197035053539695305568186398606723975244190371055941660446861321003575478875042515442498709223856157315901020004861032588362126481559777219636204038060236539746568215846928935946529415558355647670856306113458612262308684776226646311144201245622771713328772557595269397223608661439034767856017173951545711652925963394519558996780485057343712016799376724786432433883386517993540813739987813567306105921367817241504044766765719990922346576878927891820469106380083407383030046208172278646275542038613285712182966773424225484582923817361111813066492546269249781335968941784846947778689063725889537985728441774893361667945304242394955200339071408314148129960963225452847939238102417711309410077353805786043435932193919256674877439024589357907437506441026559543744806108345080231142036799027239626895163000587236211123238845307344624058540079709577336155137916627387123219181149775990886919064839967148351003207382909376216830625804048263524331755322499899764224366442256956505788187079289474322109289248515690563773103328263013374745258711519994109397685664122243958370549577761209913001253278508760894790938924212333643087284057187374314006201458736014647502276996620915556709280842592107779180202506574016297582965789130401956010100990439004557182335180660963014145260292410561644090825215811340311049330609103225422834963668010843431250276369886681567462711240616601540544530683455000403826292905906481416007904374330763248159928545308506069037737117306241924551202912969540238293730420031477335479047813550642541310501325742559616028113603628437260767675224165443498592577236048829711263174823326553734494344942124850318372590568523886077448111335779886307803819173101053183550758622193702721056339343014864102179768978836168229743804729680305118714054876015351675871400855245651629850318409209393734962299497615448948055342080179781984113521267234816288081558476427668301756609751618883651857729501184496763563541793532502017311856080695386262334723600389631244251320299542148185149976974786244945642745116667923889435997790151429129508162053274773278049625591927906721510519636016695285935611816009624056248076963937431265104967258170403339223007174626883222063734188603801150498519708881544166629596452059111157067262381805271737336980141871742506642948182923247045185062934921165572211028497695663691028231258253413012760248741241276594675237439694328236191177276464601483363774983838996830277772740210990636573906070122013245896941906516292447636037709197749324373239949612932783102759284327995906866337433451703089636931693388073318313363603656197803315133794787788364853297223361052522753554445514925677457600504257278687406735434258911313872153307841239336965190072466414260982215160801093235592441662840788915089227523411786343627135269298089721544036853029546227693622046444383483484511554738271478705464728607690555417220790427548410191270306942174184553849741046644966812326086681092188917737208807707555120623756528720676469661368441549334576437692230507702339937981397616756732342497345447632389134770970060950872275085198418873064292373947414720704658798504280834808561996554883454266655228672496295966447430308802941179262607210870606271421746778700590220701462060790572777181524653201668924059264067832064778610501836966788924653264995200122117472615649797316264828868673414009889967457120156749271932091988590342240855550481004412122190118291835205990810719008223530591276573152040880185775121340279526244146964669197507967623507098052600700984192792992415788786973094406460817706728763514148414516150108572664505759449052551545806528193450819412512763501592508610561369795156220149388441400729172543854379126225766309975231992036638085873852214477958816821658625496851711601795657239805735218638357028879520059220950224688639350602395861699586092448369211869126091491249721360237884798009385770828828672685709849048650551118526226646406834692620829220513505254774162085875901849742446859780468245495972968752037418641010958764186668961744625511783194715334505013278682317653319000471436631335345940388150991019720615218328379697080469201279759291065118500753011440000052114355944145809477863120944329477815624625356215492971927505515644703122104570119042127568843863962597253051752325718716241611595385093982359469306226323933554026694270356458234600866728130693787587392373900758462421753712095360308619677765153567513684590210397595781656771058153912052605128341718204097199840955099352450674285941914504015552189248498863691048815595962733978213972006215957768695072831886592134543392317319270942279491706208032557477415704869066897646548298107424630782690841855478004497091865085494978086031405927034603147486493447130780785830543154814956782319121169074790821622413425482678978220413614489238833065452582878944249662070857204291232075338368151354931029974993970195412155458027207179276771446722318124469683169344838806272852420294836126327409223296156372475413914275630779387601479111109339590077800106920963439086795142538200799173509724865515336986636328781444826089496429934962035115282389483321551733130042916137936341798522865492140220550297219884382550500071331740602257510523833630082080512832471197574805373589861624489690274254430727886090930426683459039615067192281914906291345042886785759588807327721646027066170710035920038389964693681426042217703597486914263864950959009004635437520845655654236814804521897089574667957602820106943975470035287016930643379946498953053432891955336088468009050968969483809355344589312887397486393190024206006429571473555931687665292341358413100336230004365881962748124025084373384113001975374699139390518708624132362073591555737185047144228904644339395478418829297651540714623049216257174112829692091957538876561062919207725696695339108648748040486094751040509844643702476360829865368641323046488317808479137435173978804752988702804287404767711104178768158413868156324383193406376457815443888503001182246140165396845837245719377195307334255077662242643590944293628358026968403938537522187905342195392234000167095108906986313351746204320567903481579319414230977022957975882983014709399844333597451776356308417402028005155955838090686977347975684165060578709091705691758412883618411412077748231401766596715269121813496289169619644490403332831048290463889243003135171978561814905469808722385563334385786931058986020843605109138853553380175255442722482652777216783525238314267371526795712210847605632225841486078151108396764581740244293904869421513141315359103638332636850750408859772916684563846908763285550587249703532667806783971528864668616925652298912428480325892006192933963123406007735268746184094468890651036048847817128347729711770470220234354088376233662225157782844396971497833753733168656627010826251447013677368663911081287865027467767844278109674792478908712371155955506819682341018196894602206300111797992916210563615065635791395239127704986487364983763724028449743587818194767910869320807727228531117042938864967517695063014571391239875722707814231294085469017680455054855349408746535914664321630129514324872336955439725987182536276403618587463895268896050264308433112051754196582901497313751563850245162820152314971308402477800310861138124287666144482526511799835216437377315284181920714388688825871475884252658447586192695188073735395996195870800679840942271245611483565972014971645502825221431152356540413159776911324803550197768911936519458793230911949498510893529670486968793433688723826835775954614690871311157700117682549235550729283635327521055428037727858680345602861323790708610635388242290820721214276171672470112709295776300646861147108538427770702054194343447144979778451080456111677525209826315731999232474829380880434808577551400191259805808327466459726727340275622588548454013645726285462558521637579581473007009572030100974458600772982838830005991098940780839526067890122624485957477904491797261257752515196814638225950128614949517079489335411398376550124028148583653331396602547379539450678578768540395628816154009515869903307510634185691470601428843971026076217273486190325643864941378934062341274555980818108180031626693711458441732414934369019600110060710451245394520016367798379602514639728479984628022000375568429489255308192475840301972781138869014601274609549777752852239266935001704574015805829535383052367228870673746600176186363642291598096583165975857737092018700890877961903923854822001020630372501488917096488537170992095859158085425174160450548097925145602917188746588960675562555753015579482868219375398592509010363533367612178009271960813417187165860013534905723040223675763159873863489992057831567868541160193322050860402165251278487010289517565877244247614324105667335474550350499626798074400704647738418653404529968161586183928431698607903731837618068033985908600724756655635832152323445922421536655794208731848247698789944481417463426398673891950656678091947454199080007433734223660108930245017018856030184473260627926255535536515634440738158406063101513349556502937904969381243933838511191126615569572656051013350763725889434997710127619097742502642335082705236650760419686573361956046519537655142709842524453116752079539922650113686813482151917697943054111224205029950106057127453117274217524410220984786887893396262151628361629912742059767146118489192922114486310088153548613244049141586072997856662368414847083409234674823435837576085957495228008205388171578367018984767493324094757631145853358714931474200458880688730435387180649355315858467825151450965682192104759979630751134068384760749360943478385479742310066620067212383160184436074811720360049871748082637659201854365677600071501645069165353388498702275098761179544748852407603989837016901966543232988556403997267255419333665070992162518525389407261037320189146191596489763312241725340236519452653417749591863924631414375009348848523549878889621862189651274479615164410324454042159754769503182630204237663623140990563406886401244608979755771428944035382284833504918833080473241009163416837494567083421446874794025944245144996100043193691009943875230093270444313534421145331499022664121746349065586920525926966765011383890329666330751790600537794813530842388664086708305193626471858442381482931083948239082893660668673721612603181122982841830825108830103638684122271045598688805748816690248033946519692642527395229545230673634257054474494756772475242760598573996741246582728632584880511961650731354831210151308736930171496538214800644576423925619441860361905625167333625186220520319318948757925599879620540268340870380766187522839899881508813687127857438627382323884797154675616677604824634906070235439275517942743377142724374580432859733099848520972107555248251803288367738663299525637963967753442491703491395707755091219199972646613637383765578447727755380987907693848554090938667627420644379242625821053215528764643176921349486686849337966469858758280890565034964668896339372160366275436324736146613262824701952681959990930105550559793437475090945138739282756252625723491177337138479214244144445334992322832606133017530239842925574559103770270147178089102177784233033035730502033622432402882524660606201770697514079561073821749963994922756120050173405967002352699017189586020327092832456039169932642150715540596678761997193904288977426301280032432959848503027041005725133171267041230953774445902612691464178709450299867077152631078938919298123463588872345799677551564517078620391984969145942764245063190954388696303165773090688560754912830699773990363153835667233202648190195489872830984410703948404859665401593047766614105888259838032354450807175269786516964014367351604539813977944524780578661443556408134307462028153410524838183077930889982735942979451844668920531832179488053676319991429910463784757329081713940890571336995064842002039112391563941608375752448947477409880820634824616072812495297475702808753997057129965174304557548325633276999912838647741412088636504931361983330393979427379907350118148004845650282041074326170192955792128398979350320016435848369244877530155564388950267779990953890296028018470570150042418853438035187742149053094687233419221775805725102869363837501154198448236193976479026245098526958736858484103226361298588992334271568957918380131550718326901936669195281707279121214899176595599494423922298784875860627995568463509820790697951483084473819691393437678422620806668834773875548390418628937944462115164505671588487967043514862775010405576681282789684201177318383031164448891305966968192525422115652392495000034318534774036437202955607963948894756646568685783442143373949145330335478135756011039489432705148820857642831470885993262853282737496124966554959089694622106933794656575734215858842665341053306909680364493833418125164464796626891883409208408804260078938885095506679444005202975098658858235468956392700554758344550116118140323954042378656204813104511549845394249670594532971791419726460705317753936333204423511137657211713098337377401013816605470869043895536454604514205737404990980532936395204856827298048317468833870427512777418412734453884809967765903599125232872879754078426546257282057919514440174119490379411097735727712237981306030876125549348718243560841137427865447937870477299366237589960750521195127883679575035949519852946997189284834411727477489671438509326552324827086296276986993990503729883535478230659186448105306805184277879366133893860858176082828987357140921733206552015402476784256417349994428454924058662257137909997641949884798984441229857489861344353495069805928861034243493875698785120692164082864919295288601979059070915047963756644958348877124927257472535402467805989373142913339298507530388492691333092710815349408980620081735015919145389855379009956803674546405491229006328465003030746226421649715334860828447843873950527039327392473382965715975744279292105361255929397836106695212397825172609203019310632719326422672723186314644658765212611803231647697207433924608085461842175140753428432821704573962111843290845721847373272591291046030599974423037690244088012738579393685865109155793935401771704800945805303195391791543478695239905499260292164411666153019842864601194131541113125081313628930774794279897132266257983257839328156212163394242754701962739875289573522966005685222162468584514897956568719349606298863212128227389402151739186011656670115907334124580350066170052650424030504130065918965287002038912791079604026723771143210831700039517286269487125975430233039536491546116257841415782363655772046051172552405513135765271004542268162233377615227150737275346218698847287228676788086694593760718500436858795291243203772872649002828891098219055419700776372381671850877875789788789430207710002484460689245001643570511806234686937659373394992045433972120070096194921265990294117631110991400915444373520022970961154418002119648945180713689959305779967518664647145169756703661313808966727290342968256560081419896609033105899247289093115255081021143971644189654514131510782683266799838939668579939150399143414332879687306334683647962782608511019329278687710722028335373751284280265702829056252342217940706131813500663920439930741863678578346811038626742287747798092845265786970416676673399476175543360504608616457557655800285983356707529268838196055536985318407246521383044175034067058565987188295333317370441912261057165389896545733362781271416641055153997074178798817543008190076051352432123889413884342117157483239741757061043621661864481675144935806396693304504025205327743695167641414568897857027413377589663636804622928865318781299938073198273907956357025556688115163490555104895393315863455593310113073777676568411404679180902571264618457792100082210927443087587111854222226501460460447516901451547830941846618953692252808422047416607628912532905782492308413541267214231660088459141417555762660556202225481337665365192265935400179875511794309572806921833107603585565077900680955647099184155398426204514553531878679712359992329455349684964793639816091125524121362994403584994952610365366821430296931739221040100163327709878673967998721714082654266346957681982410120828147283201150691747605275121432386092967176325916021453496888253084066086357869718405177231871607993225381662149080928520971700061841403243780600047816218893400038789764151409176203498890205792761159051037283150895409578591760321604872912314013802057353700772684554407329918278418370758366308260262205569442334915711792650818705339719955735375126128952822724265710598643450317279142336439251499464499829811530172547569626170637695526395010624625094621653498944722220997022127722316547803411539755121416711272833852646403310586291192422451461083513096365616967396541095725028574557575993024127797047140249416423077831372669747374351745418437823499741803642257911766741776910059895598342064907004965730289500274073090576013087732037348821175549905098623972553396154567668207601032968380193969053670067957271402010613681246108683387921926333143099571680768860479069244021130463014283774377237046231202247832426117348956810030125240810830107927506103912586591387040524182073125675084635811553453744892755857060288308320192779836841447176797643121191247074907001694664303305601563885495060345618316032986336506391851938640692947989931141918689624913311226207226079221242973948685885054007905436411394468146749374678143499999013936621862726559330945535459585793100888445992344555601893543955023222849186313052163869160898788976310264847814118470733586385798346829562600993670103928767759488830187502377215413778462603189132905509359349798553788050313409695196921643504664838870736226517555125018090043079204310329666355700745965121163209403179883199042245266132224187929563857478612409060960701142869107406733412797533194883049967229604785308982540019314806986730880547798185866095358451327358869413295504816728728266894922035688745635946056680600038035962535674199941646002577017337575112371759503381373869643906281393170746133717624352870677993262094736838794044140902271948058603925799134595458099765529763160104950230486054912531882703050731542499077772208014015711028961622826149142210787588964140137109141960983756299390112046743210699678805750465109150022993343585269733398781534200458462550139065661648584237327197823009955883755305726578350735390360684297944037793692109461454263029662758184778840808894353227449550130559625181719815261075946104649678829127511653144762467964541398821056071537806483923814645268877977372739571900318819748488151746933531636776380002565433781879281974250199313191094159792681391876474822841809425697653240177690723991865565550498625003327714375189038447476182471303322283477845067893922854125008971906658131859957485116808808180122531893823719090143680271649464792951590025757380962156391701055403925059162859942757595707282773747635603676311468549391986439365767857952383560160858652411108870371182379013196215456364972593860084248038678310479869017564843102732386687283788750530806696976885310310548961399910515316753981339310682375390698071333915799322558164405866081457119759141110003579172728910596579353837212198705456917336770626447965965343766724849901910475358091197343836023988204804675759372635022764514599214693937149570140784700405304899920046604554168649903946725870434045423984740615583026608660881862312072497594264180306783494963654629383777717599617894122643585504135875111614719017361282297596961715454565726599880459859233582568167948204893013219314615875327001991817418597556954554702848360823308332586864637662419281188445443395704797250416532204769521241654991843022646769472617773836135290122706220898312824061580736624528403609131126029463437935441126368426993230436152683815458932817567846442183389066026258884214936056689194500787283311403301602637692099014044334643279563796098533656687654374980718396621955716681904286478989201769909820041836218365574480533690050079135560810288242910272432195888009356049005988118660971561630846622097250733153208091044239576332780822926082228591737104297591711184368105237710254836090958562971316715167888044454501443052301281020820241702750359063890731129273728276110302394778385471913563407158673351814295991969264576521910369045368174953854122677886257360252788340671221442580924904721731196962921568981081272103703555051272679053751878864480351551350006392465714685948651445357088521393800142870607463206012182385349115881010863364820265508589536846343929934209969861329574765466494540852973029652528759922070333542965546746497292026451015362823665999331992894179256482389706738185607462243613662457673540388293379076432573624196632293550590005490274048684186638795592484270461891540102235097218840154491638527038562592293346025477113230662317288116180391125863256069421825330456621496268477359999830300252246346181961884791100126860839149407618484913055674506224506710764894579325679435742419383791202516992061514377788552075037786141427539033557251929859073293719157822100736240322358851738610678953848529407230234607907753985393954935015416851284922961359155930550012518229247444395140656043848901465048391418640338897628777496418602743202711998894214798578848203708808344733716645323998318607974813636011983768653779991283474406131112739330394135723601460719486040831339110739160883161473007901274862352973838817014388001544525499424192502046764630925723202746500017716973337522866086843740755428941566620785193911686160557621219763737271747155328853411719391869317392423320824078994162333319284917850414031669683263824076910140492659472214827737375024415272434355521214291684548127352476483008807515156692882022871594697620659720494750443751392231785729349110387998384521413507223915704790514562419055579450143887063196501934423416778188516049792721583862296969735713908144331233520996499678537451483669437709340040292476857671916368551851745098904881136866323188183302582631260243195050697880547040224952185445378278549520060136066968569838518873877740246185141648404131275151221823179574498624358154308902303513859696012374604339077728574197112586309030957313054010107400621763191762819741734732537449992432177291725021685025453198612147988049849582462257667841357834820483739264411114578345293287812452917763311098113997698157915225948091258519755625488213109169358225451948574577643262163437104729603667290774882491150402526228292564348479580742321222905051591313121344306761091975210071057345771055827195465014977827691721677928959253403962779066992776329037008392321248290413760298190582015499457007563928686748292063450573067651276399254386169571263067680103625313444438706612582027614485309335995548825882929995378376190389367998134794086597205683725601723982606282332280333062673919827689877597402218827256448973928280873289795661039660161166127207138539183529736484607641593054945469401019817630496307308005697183507073476751270862082900483714053608487358671800813024688405932841603888686562686714676974137701986027920130153096272816183886191815317723228456909826638444364781673749784343990359317019863829213580207985319453933860534440732165082160639342269636678146741763424533758901989008902349939311645476967044760007901026264262320215360363013640117870488682917718216971507488589349865113504719454607083324617922260816119171806028326741738777980106493372291932489042268898039064195744916795199524390989155572545536674825910365331169324638365944132727810341461031106888194994363056679485230728505624023255152406186538940796833572431658748338714808912354620875503167047369763251491924525845068855035788105032733765809311786176514917178435090848415488161522318843289575229943538235823870643915595517504611844266247420276287683771491734557067553431891975374365753956771671685969861683925967458912354740427264478764575960558458038397044941109335926442832558824771641507145258084129676223164868880916533114819671980923386556703309475153953451602308294710781205524343404404647765503511662447818007987997702156387975349690573679724028596717410569302189615940737826050610762176814596119391478913052274459157961333014342958347163905626626513056479681507275243117595869454854464631354412859342818447799948858319851331267791233919369268125591875909854536606765769121192795436390749462994264352817607846330388274215843660777796886798843649008534031317324375918134592139668072692018711280672661445440552260759156093657092491071519441350611761535249263052340809460787022753286013718678446002244838006514229174209343152891885056894482910834456766296732877623184824106482936875609881651116726369091760557412304436957025527710308884530798780813432996077434641703706186675879321611510134475842888599292642088600396468425427336721068068235324168660216243767657367610300528494482122196312598913445402848318659488656955794039979492634620685290805609402998082410929435570684881915100192874112178850995988583092527443255162382033273602328085502048299904346056692271991510536837429037752835552161468710688900312414129837518498274303108820428902568551470180882381873408188439241356274111960941381373478290381320372000854055387518503081145011595482435536990797481727797413873444229611776445651759361149310172598941449241171343433772128388021968538176101603336502305971307698456767105033906315444017340496170959704261928016624610089195614893466872257082457558081367434372809124256733681933464016801006936059795894310488218044156497846850130232729674405841619472818230299665851961468034882420237569237188536872342577910950837475391265276656883331562953820338020377669101724892797008138231762281515917611235892035413203097064081300913738800919597571326431639179472246693898159920483953964970434817458654717913947034488578306951940936938400107169875190992050127573029023085259905813324134929269769524884329244258599377447878328725967539461181127239535027612032915929263063410085722574026143635238775713843124197912634789159253745623380571816558756193709750809181084382407733976776253333514532825475411649675812826790937087324845856049245783138558825792024112027955273030844184634760217970827901282432602382098939222042934274457062346818368291175583378104487341976715356872105238816360135511743418895886912956023709055126550562124677214797701563305791145884796833312263433793053446071557524753946981549939980136281197535908070670337073114630379979156372367156429008809681164934829266230720916765360472157942744425818001120219335553749710596307829997769111810045600647275345689611852328698176823705784873128703958147214814510485935849268391716493266205781943987468464153466352239912913922723319623055457937236513651890313957337678372103669048647593906386008710488446502532358160243987953549375572018824140004598937781850296369542095881641995872839437369570981010479126479898697426085896762792920191501840152938986263468960832892512040955471648834119926767499512480011983584351245325233505077744573373455413852525103983287609569336032351416850836480263714126487258168541674840182531873081287635464905384914253593521797705800813735245526353253710802703804334545669669651267299277858197274556278927888112268249465683412483995390372654849567066283860034319511775204298942438628712770012910360093814805548433418586298131648182555890706656465583678563131626134630330811899472953368148828338879884370888650921481551101523372010263739452662076174515831243304902742219472025652255845661058880131267041062584379043170964376924518707363679229749107177546322850121520900318861450157754460716293121431042590921951260660264066016206825851664414904573067287766135184237299267272114704233884514132012915028454377260599723246775611803510682482861630186415630041073368685373814760424819863647840707325292513765454896781007036718660387038397450125138356563809510057925980879430020294028039242039980773022594024338775502924667034641656578916866118212675283376627425146204516817303749234077770273806984174381978831962796701535392060403062759707145110546422992798016669401435693733464749449066959671124930270653704289973763420143036883415944883948525986654852896152750813981751558320869247213326195248837527700625474231403840059081393537540785406431777878597677393933502826946189739776325292069441712186494419119574569838593115784002658749872623345437287834425661600939979173428372701953794781821102664940218990107094502736458780706536232839884077536472600602635604235463645826979550705476898584450948539458634210787470534387533289533950995264066887435029628965948851747320051989851012288071016513972064905960981106747903997068007615436484852046537867050225118116449358781419895542685401594716350686159257436791297021603390719123907544395373173913881100006039154151965124223360033330025316678973625702294710080242051922808644307309117223447643293874557189121469310067764335463255644391149510145841918343955675803162312046702084229174086864342987542924848275648415258503032572412289812669275242231883459786098413814265772822203995806767325882945631933251350458925428575808678126131150410619663622340507086248574281715566560670032421259860946529368534468011535141637641025607547491224853643808695089489750097466110594509626642080460032905492348205438128460290097655388928964983977742495473374683294484653054219482756264816230365641472833567187743667491611444051406838090873527183422559999603352171206491117759158336516295135476937575952240073411465325033518954016951795498471028644827531361465543305407908057451359426608893707257944257551507000380857972440978795242635047346966630845380154887934225051872339963525617932365529972431884379658265402881260724634498173285197498829218733437553563554850656788862327626231319708934235818454200225627653854198943891483525097560525931422544027796150956479728366213672330751303532727202399434778121408683172316627066430791176721771908761383689993072794984951088489717750295160545181455454709404359821684468773591997541378189839153429877283126082039217372676103842705266698119934023795473239350612859451240882996138304012999649568736164439859773594919825573095388845450100156239254347673445652904132520250391696977063635516488220665708327644230742770359817641884249771021381134234576430112772870987380650248175629243835748370176667818103553938019302173776909819920220733906746986296118259440541462809348519239131399982957122886611707314233743061079797758940779546772646406820761011341276736681203685146470075347045709928187644288937225780802094410027371742212719869044490774223176751501822014783639327804726259312313111034141312564422040978143075021648259374794927379125561141210792263307706521582187064532632574657023743826945349726337772220616202898663264004325672153648085235658711268643370807248371204726031975713232187941706209941225666667445586465647321419396870243774662588836970799998600580342486769601027162934579268255838231259421453773018109360754413088576150481783541491687665842212783004290046252136261984578363647174618320973515556366607266772704855854401667146467480210688667520784839192125791032843213491655210291606581688016360070345662523170827013016206938037159962327153985343991586128959089383958434058224711707768883787205237127826701371554211604121626429074711711514042512677741904467605240218298579978935568241126437196454933913796108006769977511627833982105087539243348902016435117063865600445468316013942202392893161232248465585427377785359207339521591067971474911825485624576475170632262406208673096379407809132376791070486848696494069205128756320374130393661119971777830267778635037213419946455747263000802846543249170775026074727842175394580786389491012671904215543657365930293524571808733058775275537384014147615395142614569354236272073367563460136966726863347676259307590375262991105507726100077581644967950156640503494814957834479635380889755903404632497884916461822955761902791616137745834633366917653753514183374608416564049532976088794809277588986868317813273371550536207584555322158418366494157350342737596099009925272671713035954660994895672170375962941529325863068517357419455916443537922940644558827654540039448787361859006810738723823096886696596234891640295156233423649417483074127977396315892067520444091296873676861821778544922132444868303274940880943225182180621648177799024841780687712566263858664603915864997639583734527770433920547343041961216529914481673099414145782845570268663045694589540906479601491987605548597415074449707283499808935019785641153300845928080269886285227102168308052124983045792422705867514728637864288146920066508180281598869964459160655263754411463122364406270597274479650225778145231807598790731829021530946751125371943021463201282293211647337576034000094069057989691016017988291175711494164220727371044185081781949288464218476967146432116833758070840751803659449276267142648004796049642821770690658800038823290738004454318882986689709879154722795090389676125654336399930141918221127940303930528495258629331555461689235448658692421950941933854001997733382798398286137411397581660712824709659481022050999545575048196718884487944030283926698893373132937503409144474543791775755550731784652571318041823640771830537642914729060409592679714225740844949619245475547949820672522314899387888549897941440033451313465656177248257240422738345823349857343885337753790034092313793783886088408809371883558625046768468263182013288504775291774090812968464847313752390068778920214805979095823123430495517599278661936085869976274460480419815603197576542361268812610931883155801395744083731354969280791341449074072570854689016595183682256593459320537093383143265135528781523389171653491509716228586978206044839394356146312511227984678036296991855115004541935345989951005884202223572244190380658693020554419244116063355314946000362439171448061744152851437346446273483490052934693547201008865931047772064190676754416179131766552027596620914429801741169293382511470311203899842710806230949739717931612234687733208469235414126787300096536098252966775127143720377114785590800430832416197453703937894701035879442380381489293636449431459432442246757599473556272926778839438263967535584736737041574167453751630095448806384872735114260029899087220322293044825654548431052184771721658677338025431774279430774102161001733135898292893581595641327528177469388567896341787284663418827352341664313950456358402963885968224938056751342980858648130467755737327475000739691670075079901118882380711741836001400832723077029389760343202196814909014438207325878886664411571383311063442760097319581802299474901554392868692449049007043424138570895071371885196798253956125097109661154669163197601772047065588969663436576742442313783052211320286044520257269344050810413426709817644547546046138589600402601994412253804965551698639358499220439739183913292532400628160772028888030745767313259898068793572681648755665159360358884627472395005008435910710489960689685003270457710426635823621559961094657289337274000925540763508728688784449294249156745149741921852269470011013808563002076969129554643054991123000983259380883097369926120385559940506764802683102109433506397979531090250002788567199382536990880774076740650070411330688856255527230725133416746372654768585808587402869081573513619354253634569139717825654464099926658788810321609645878599180466092764832355400095718226923448685059522101198581814193127897491364817954866209545420100178315364499531553363254229281511743730485893750153248897401355624576644744820573887385311275355091890383970297436549827597078630272305367884425481174580092096887882998792013252217465731644203790869600563652876560324125541463630732264790620751888416338704526543016389444163099427735281864272997794170873346300049194644764505264064080411544623145785085915652401746873156490234017630134229730055405997614259633497645165868124088209649407381622192241180489459721070605489455569630006674216957798217004114251786005118693236183892923391632225948904380457524003488612669252357221024285048161182023616748053791045585196616819051475321762993163311896818549353036277910758316950490383828686683391495083076281152364604097497796553942556585035697030969505585504766897160192808512167004447975313256069761115632512208227262685322290061374503283167526287967389286758257660738821963275855565131849875971679360045936360238743960860256917143455273740962967826768371742444599404739036510919151860990757477893592288116610860277361613168297831379532152956975110855919434803838712734937886850814759135909195056357478506354375961357895430121237764485954880598528965513892245223928433964839465950452374320576309146905052495588878112955940391045386609109685351857686300312305947690037758534600974152462416987296263120116219007662770116019724933202261903073222485219992591296391763639976641595049940065735297111309452849845688989157899716439885633971122403088385430698508915846607058659609445922395320167782176438580702268684438636784425973537138644631369954250708878877570671524327036590910530165705998618783808525966543395206608680773433251954467551760476364828808360967923456881831417379637061981422142424226534475496032564612222775009707725047495792669713005651259960525748715190111938528946613390210929187639201501902495621293785336752407015396955345838777864257489856579181549370930695317382150287154388332021795520980663925952981090563188918191263049615497121694831356919538432075291659780570420683799816424169608479624664194938426864664800536826503202945028314390090849363356435427039568713065312123534169079877605542100501777823109583750931162389788424218766669382244632527844381844623008423747120920511076610058239921576784023055668924152276567525067251546063972056734504794010579535994700250110784345101368408686304907699538541176872377240209370586544567593761232175170107574798805692407366018478248010077000912226164703825092082071922970777142067999163859242744043530657340020539531505002933585911969761975022091558950659637198093128087942333908102564510833737271736201816978258766156010892425926153224063393618844065946958240332913855967423254336261462108787506602348312409527483870787884096041420127760181127802848764142990724412805427333712965173162184304602291309780376838560944256466086628906110254694610845323657401227513571694350437763988263522010882211995027766827451684777911862953748977956961098501574963492669992942561945846294513110030760784947188801454810397708990172615464402534621936520843469400353927107047710773084423209902953515376066865330642688777805763896386282891796778890767713304319544767112569779886152563836017895078534734175200986636806517513121433027341914442394489718874535112158429963759986280024133061148961750759627953881954603570277387001787208786820494762026606196069902249547518052017908835054428653954569238618011220085963308127308498100608017897704581243789260968124652467724432462713864818169244387024224035274092639534660958359680704314504910971254053749051742731866095476471935443384490220250807935241294931125284986018381078468516626906858607818844680902547020146960063589281707001200178946629722009225894069438242261929321042449947220990736770606851815562196948474545905663847327842282915702226273996075036949063641579166314079816428913261195033157627656288237140123085780207171128462303137048520053615098586296264034525595014822665415134167630529960324916494869366742802178574181495257897658802011468264356940079726655687267660948545624762609336563797687356229628298592797726054273281591233186465196934481287334040746816102182194087795302720874844510104225231214084995708531079976476908167032112554878385682637135400432769107998278892980519307123609407084588228890114980288405837188203325860742106319415998516013768621957705918565478428384877839968416407695139011916048174099326888983521266036885391757300825695333503383746571884722153255898506103579256189423124283834472543550738248688538358850797875277776244541328314600119580768116036080825901030458377911289447842422595336354601512104750297156918531705106597522523926846718895825023934920334681912642161017998168725106075867625986716279527510945681300849992740940971895443905437985448588169865509615072475582480287560500019120485856891877334505628620661015897761256533620024401651544745304486409607658543393658041195033977549790049169467934632803343893759648235044247695300084146390975435684755710858197063704843795201057713061552091213450389731153340033808901553653624460348052756864397023683649241408509112862733330813885629978405223776161796773524476551685178154800716551664234010179078055166591941445380125732424746716575268375588631711619404372031468491269058256562366314183144548565481385071249607613929691409752483148294198656524938844057818427304964115594102161765623944423760622863169716942760272223586759179880969629593632660957650667777048663466023312372153880500423605464309481916964742910321070617663671051734572458824088465809414515794073740901669765578412325612631969134864057957660629801554898454921716994767565131490715218882343709740060134642780677775088998590097831221298411482086417199892198290555177158330402410363420082053091830236063434399368022355364190650897875327199130544910196737138133578621667442994118783088676136045451774750114310529401975805177702944239509173807186304680637568501588691947830245713010451257192365320595179443914766285133925526547904356094071943830514439473924314803518065907211788079771395306656481240358334550964991523385619784085757982768422029758774279385425797638009429374356339667767858801940804014057714241913366369211437636180011456431372707191842223063146838404133437803293626242774408883381427063809292474543754605444774816693583296749945009962701905593275336213428904883671758662269921129137066710920289081392392387373750860534386828108888917963518730968531579949874126888691734098165362060507707856615088403376361689733189561459419028366581907456200206373022453016011727128832610715758980250319553469481077816675794301404687113361747516906931848034667703835988240306280063647356945596508178904738216460131147079823373419128564599901487460724440469292519371491310148838591914612246662354286831034628999199975885129442449593000549909476621167702928024587957229180745800675147387719293912322656818706246330223587651384814613555716789950385437262359516845140250831389908830881682964328990781169439760419954075013009901866570429527132749649701671573639011880588453305806712827079372520160768015477953717773622079558479462780136584187337740299065644799071478246211261482611673875561438543484336636007717813950049746359196110514523612494676038640941815413849186889722055843969911911294245315261288214119538172308439665766386663750325764863607529206892943260524546116731742674445768741156830565113967200582945559558823193719752743090080734512837717807428532166884785631333820909950415625259152352243756649733925026942239841672520344422567527249956453200865751343053154907941915433640145632904018402593050712101647937475557895968455736573504156041418021775216248915220702974082297724319167850348449132821421995062277584478737910208917950101579060938793068983639532669068930386523233329969493692142852991585079292906084121341251386720908689120112959459773848732934951858740233681820390623197562631317435014957256287596890475561485924357921553043199041611997065473028782550072872365764450309435210939919358477010101390233049541089751079616999363192721720758137340132463920163416375319326665378495046387082248468223417651206675652216702838635020294843394418455394053711092115047637748763165559975151844090304479208934371433487478140775264204476541300416174730889238509973456065517583583925531565320440378175441479662894873538536683098614805950021315892854784652028406332445255276227942123888023901411047979663145352265160716907184119255038021914216521504278225553475974032473661980048137421111778198273113763586896371288552570475095678430876327112352159029680259061789327807553538221777806434756158296447365700490803460705495411197689944008218666246879008977845752695228891575838239886954475380259073707171234116516604368401124071443582242613945966014567673736771574034638925488231792105358309799528851250737968885341121553597575258264809532866154888237932470450862506399204146291914765580988820484870558047479455851915577583169130214274824328536192578616369809328165085704711922905572417590334819301032067645910429915866302486271876737461638484987865509502704670725129466150410185972826469195099686551361780571693190614360979217659128266116525101419823690783554237657353865904740370442037926350321543044086977071849336129565505897421145841328808473323040235270084437969214453535261352693512834179476875258279225402124271769271468298962579136504117911765714471892075987635792023048271151182413988846628502559879716070005460473108302606896494705643845752221480574169275424501463256753036493059597703134599932613816748139251991168571028698821950438032725228618283690162276926764536300774454998228491322621951472784517865140655226470989437458767610084593816569580771069328287558349501291447155481588538838261015559648359745896968548327298770892787536235202102743651882431485819029074648750738251330525196841334998470695764744272514329122336065110344608877694641378618675365708435909942232490647882873320157947228803162158261252269109007743092316866505176270812578682964595491509506458368632821581741208152477774103132985113034365734309568578147221543187577575910186314100925250933110097750161772879593960755003312148899519967188366552208310429921595486014174853091799861013439355118622414098385116234930504819118501498243703377764953831167125117556231283672375360850925407170674532103991615602824703248100798747485768548593897020052134919402543096042964991697279147715756590088140109649210169586062125529069561976327772439390937785177053014898573691284872210564083464625732060682423608921399350537040483077903839327115695539432616076831425821382638727524099320876579836045469954286423881189412231204395974752789372259953910149369482238532223435053364728866019110764176703302071358285681582553930922490322012608844476294300508453951706598117484782007872453924429401806823866423942192900400284999907352597854481249197436356709166179376616468977372424183053508939460110337230346247556261296965877273462060546566061279264450359000822797268262900138390097504158673622951633900591842393516036049768950585320536791181550722981023289111285194063856538083249214297062994623218689250847825486067880703559680511750792217269243386953406439424404379078159466269256280517457460072418392784343944955747530713487870308022289405052679159314630560723788301190514840739743178371635202962294264358437712754718233678272564575358535108240342025417340022940888759105675020603029205818304387746126015943088096556594082085486281926364099115700291172183044247070637574169050986707756218745603757005755204101923254372777728906654947232567541004577883931524460644734653587090476689968425444889537305299130466116719018311793020591489580160859056985061285477711016676683434983347783653159360592441409969079648921770895305606742887131264821467501394884441916095360139568573097198382380230568363136251430784179611042039933063607970672718766441645211670212434112815203233375096153209779309322651920255430629830496188229229525628493626588885019441717037528342104359143206383889283877829041378533109394942545029731995375289258756230416151789730076491711090574996178908354826396311981504911210271682387217133624832563940763234706644525075444863986405750358831720700036487310843991122808440886521289545090037466807431578759866349604238518007926780301511194349742359497553217658121234121277756342865586021844158348785592038545077393553232754581467557773505577410346976332167907074193068162468317553709843968356555715799916452852829190953651250846776441813908340941237899957035417393357331672968132904196850769312759194333781820261368337865177375092253509038833137655072670378692224491638981446074012638191824021740512503028602150406290519871118298639397936541578621907224607951478343297467298883208128170162981205813784656029238354176137903651204790299020440996238122230939716372019777799723631563023492662453219950404511211269359576488079307359145836834571919154661380094714580384465737401740992609733859173539436105542175649431657793293986613894320911419372271494104170999615341852352826344626948632430827088368000701285040635861085486768995113112479053947567565309796620914912535782573872419586627132485343876682640959596998871019515762967285117464022068916520562718219907778445184246596953178114259412654322506387748873165687893548346708751054927996219827355866775509134498176825453806220639301779118295175755861218267560683650824976802638957958801458812449760101250494506660603931492624779474243140855569940006658321008234290996307895728831979459584976675915980027818265897883719140156625971415278376822234820357286019800950008626488557331594587622335688424328549337625282680977850853116745850796641552629436161530643265973916263679082125629246693748441009159700954836537644226128361565346817337136575535895731654578810682202030093568709844635529201658771501313444758940295030805909922893277523617970755290311762316584885550984776616869034319027805338168237243364290104415188165700203817159840600397087288681605543532181289172957299791856681489707706110929119122126289469260963562128505094639823975278877514462028615237832734299598442770109106290172464710163390844600411077676047671132490391317803850967622768027346194998052098424391546911955787728371756360673859499987102848237108194324382062294306819272418709427815833709817396697697686175779568740464464335937030110318133373801293217945090889614862031004851503437640877460289386541589478523771673852289710885771032677375584440886931636291823395800598521210455338659420851299194480375235668605388751288985930991675111814618235658507349755792834591777282392799864620409295178405357353914059155335725496191570114996009714055469561664823295210207708087027152412920476521165021891067290176310477923600480931570871713580529227260991013564893741029316856068154452326938118443143770825790018331138105232687496941183057067251452244421505922428743025988754371650765782384995318177967171808948177748201276842444568574441918011493008664619621969744592999727489801458169205400152576839782096972934660320728438973949114455033928449286361839766007945966926585442274457129571297503048249341116023075101658528578993342154941857038963693578741481503753706912013971303636223218654054117034302501331526823357638158568238561193606341568878690672910055167678237079913209639862966698764642598512230433173654833381993906309506375160610862990132409971415710333185054640799031075179870363611201655158866219685785319318930414027205225262125324397079993251856203108712036715988617246454342005253815615783028181236675822498776655133781489631101029747194227574031960187206955706591512847264914416032465365136519457583054828894486768261859543248060666488094320190314599990143636971982292434027893733706301792925035070562769430291544888646436030065062631548815890301071540432393514543842766828566996686824509995949515257036277501956458013674079987039119139521510293304878343938812614625656506919479625870527744250425901730208643289501857099671031921175976937739693664701763263449693941253582572851757970334538418471346920867594615378964976492378858013956512715029217032873768531167930913502512484232335930045892865446582346843411428052215916327473061809948721215247627655173533852962582886567688855966351823225498082244979756615645490293718139611889888611198961542280553121457772006387451573673563811277808181191713275991305939110667531163249094598994843464269390547645644846135654007265840718591692376954918670721833505094071067789583015545030122007993694876609172090314207538783695519186143478701105911486027813865397103590814964520020253207013691878101179589370937520042690060242444051154158179068125945374801982245965284337502706740442702794072295675736442847616818037161964751964284477687468786394937415477863377640568590788241228425801182427302967070059310070338709514638853350953084545120881934046451013536513873033943073327344146180614368058316004185732520052500957877966495431644285162557340135697017572518711602332499734244017418833997034859750723885095378837600647445100463792114124954717198655618459751015603061080359574099759175002414264725925347437037573328294314619065111715041524641733654187480906863886340214945808864291761020952663988588194429697704805608984699102656659608840622777789872594328565657847138207782899976717388460645828175868483146100477295395911366347837810069601667118701810646349681330502866999704937538707169337774182494585804492463360190859171069065721521152992644880264289368807134005641745937552149259381994978944526804896508327009087418648518135179639257795331150085252163430837468218172895709167881676109356622936240726616822681744890112177080797538032277665574952469569059068842638545211285460699084865088098015087039948994820595561999712516811943546350882569433310002757800058723161336112657943765605404494159609823048067415779195889083720868300231057254639048441486954385484163490382388041266476476652650798105062533039468928675826476168499365578040991168761668614199395092130253941917900367904731884829275128680661616407823128791727417199664427864295125545281804095530990515000512654673021912730102958396667454359596707417449897110143540015143019004618498963443205204808539211051239590896088227582553849493265754603637056434411578725036781549080892121091956736338637232469015074702344458675152130143852325306533050255912139906529981780886520359323057527118111143639377071352043668184682829831425669863487871308978945498390265191913997750277556337342965277427813321059030046628810427697304515674863393406183342998612848689069044807753076373347074069931911747731085451856444640073822863383332598143385800479788654856423482029339707959687480067333634962931118442387427122059498382922439713071014558898792115033630765846904868328808716632419122597397155025121239923995577970447085933731887781315321471988360809839389387973005307973718042423639985881631182929921670334480421204359503825574658558983894594148448103974923191626459217708619984328001678988874138650009190292840759541165867309269682069805259769171212431820510138129098022379116728669700910222303173932139328099445008654536605483221064649796521316678139409274147949724441701913194455767259088927734548799635401972084960958104525029920113741556712709424805423343913038687598842367129392622579771027664328926959084968199610680426492416701355396744171798474696168959758744123435020472568358197173197791337437864801295841411623856696605592357742459061331906117248656454712695314113714143313657081042544779609773314776422305482914564216962518064165124882639154900277551236019751959792985816942376236001092504402245131124777600428012766710102372806706736517618150499472245627922919451903254053714904323395173161901876107590262169417477808945310822196030623808106116793638295918667128096515901816753876894598137484015872440518832394778277030971752633737171680028814785060657300401843291150718940698454814074160419880925102472085980073942000817932430838303744545562403038975904639416171973377588740657821279498815784633767812061510466507945303372232337491697399296568820074597567168736836189035637215134090832676028948028113232332695434349753005590234046453714747576040031827808723421277461385288957881224205968967855373691315946864365515310020041228117047720752984651598387320672674980430114218925777057971501843228112125773833512588703222322776542807379424250788756702596396687423663994685282494744775814542286725829176483195132990479811753827617058725062213266768035407421785333552980175985829798718689272795185786723649030319646935973508415976156733970696141913855655675837397439713587857291752979504572729415693546240210750736854814063817390485635909078889281002030895778758254914682935683077081779012842177586688539639944016827189214180232329086266905093348567415558133471746674397760597471950409020122228093693049701142980426795624664814773452481805342396678196752506737488402378251291552102154222616660184199252958123140296236322241925980754944595789924971152096602883714330844085914076152387149692009039480343435640420575329384095422145585422187937035174993726418115554145164938058012922233104322103606726585121607490608254227990271582405551913286998030583977684640710902874857822601687606296358765438076349061533693078771540596237506793393235843527902679755314100133110204787980000775541513057645845521904502542724591868098012942033474092890285166610000211107811431028516178118399438026608809471445268399980073773037222374838207597617936630918626286454435293738332958706864676336021078107007485150704927545397746876285018084223152369638081892712641700218781796773871645825015253048430925387330873877792510910911557099439488361517349026570160554148274130845057685717776689691105486892513426563192811022832100008314561195057688432850781362950980319900300534187889185388443836936541167459418731514837824511938042354422813563330022310396823712729797034023758705460273689198688017482599917120041404791888217500918953808468539259136620079917119333855925673588655072338450682186303190929650158527461652943703242917270532250756097440553067924578453245493850180368426640073828924015980226206587636358760125195529877360653479105726020933583981883221161001653956498154127823200148479783330579480758055899991760515155842061414016355490938453374635732269705268259057233293462728105840026915621275784894912870880059178656584907545544383693746305736899033070658753993940012025071096200126033602489831624207309819491771827006638858480942341377157138199791538102376756941673606654537308037263285979724374483005963731229980904097967100322849502784154112551917538759203135268551472109579921009015058375766719213062704379036492524966963231328682940614664750050539682219706668405901252316966901319982277975133289738168558105255944683292333914403762974104733280690447499389064382741404043175403170919248851662058139042611485073104434116988574077715109112001026951241863947903554975662825313415128276711716619439800434002194775037383672534118612316819515610177566216513158418657010479833436495318648526765428317274885824059264835944621139125163223362567666764580630556986917539902902449683165065438167571685285115813732740588542838706044852807498676968844862794033327855169362874851813746974450370866155169677239610770828656852424900412785928377120287109434437424366039851183881925733757996146066818592508733706473842959327967879311214888244106475940890312167655590997487835659944682313429394136224463159534248202409091617605850555225009292634239612672601283334284170857685269257058571626633505852791140584472322950629267603531413200626441133376982703905921707221369834824314209884750453577409440084532340715489381946887666492695884562947028936053768775695330800708595634456890582611346793008775520521348703789237181809111494035197605256080757839172576077437574371632924837634098376999338407230720361002769738721582760250638149806680356595009085569414768496920535503791965013156194033338324508082931582407045020534358549400125612946317750623714605582637385636863935964359570474276841215365033579247638798539367347214539679935057696841908831400354148197260742298895140590956912027354349863355776185666124428482592439930646920783296982124504325072912596646008487476499057900124572858947259002939964257171253759367759701830464335743027083558222125933970887641284165424781682319949379114283979282462112623020528405681473740653876802324475964194591831256223658933272560862998742769855532247284042726011542728614177513347036110839160354975486565836230572067841759075253755511623193082632657307279474309671277191473238748511863182436570207335909021184717881946005739848886528151983526510945735673021200223568416478149057111462044159310044311526444953744519529527607983525623976919115767812199419566901038489107048517222159386310508960988690225376975797245824376680330280193235599671321636875233821818441170220917559030212161474577565946079585817996859151437049445266885571101149696957899979220706353907401121962634384406280353139594716114994368350355633364259914558474184845348273849536448243498904368729718127206790233012897544348162180388061420448852878440434017700240900522316417475217928609381353920315783885177579386286808632800527086467625065839570626617380337617757925960635075069415357757531381226571163684995338389514270478559640437102214948396158640523845409806872220614139378940175589801506380829523780877118491725781785438984021890461228881167053342941817799238228310286746595240932026064101879108385021071012924451549900905828287715456750359491740467677856001502657326326280230364937034783062126653123455601359520771389890086922889744892171617365941935656414576142849019860583529362114755421426981772330085004076807273543445314556238995639752844101012769286954393531256566558809834753322832872955837340886937323141074764131770214998172630990630663266965004177241436040178665104562211625361935459421906097359899551920405379822579517549573652866914897331173122746781517295520788612260966312609705970133056719897065179884294684580141550541337215963041723388365791766002039731472975951128092721628327736959891583524424184729198857746675439562317953092493044349881193495396429818730062753116861530142470365055422098899119335746482054959342152754733624317428870260724124372074534442753558939182927871729826149315056607024551953781683595447724333692700750526174421617605594069980523191650627672789549263628713627555571594637972923446220488240602463062748088782301948106108184953928888059493276912980892851056690891580643748082366984916609477240363751617642694936278658979781592546789865722198840377685155307921524635709933384515422809535075005677438460811502809794480669465441074428619064370115701429912922571495202860460073778217252218146333827062681688075130252464774259999746325453188339457945617597789240004001437988613898108266758869473952025759271690754980401158405598866252033038659508982616778159254732875666056515989930205709325299753679442802075712773231577505700212071587504502059455755124756781683190667451483409093959294859362369237761958569701735623512161893843701875793739392208116039634917891658842408030066762671123971790915327007134688133985435130258693209176967194429275196806109967705467713464055425371383599746469004651118815136933886543959094823852606164601736506909620605880328019625630319715681118848097805973870251077027807641632025959340471840267374380767030449024608720656385697510961325350780893851413711597865660258968338958981986261710032142027773015186595994796343197608881942146131593335282360019421472511048293214422388844800270806872162525612139779876050649713617742731012487626962792393828742680654239589350257332266647979167366892388834336343944944082135705460320800088455946120492761552214559935156995696943387171528919829103681077702476401933642472726501151655396872217266266236879337868040410862424245947878012565552186246777679222185255098304278924088390907849636680944434233060860055147311225885769942337315643094899217453086464825661083538127468315943103662243907777244714096042234372760630671339773352812944672321389601500151273986798056394124109084329870818129918990885245628495043687720986892206226346970820801963471244666750097580184278036822938263746737034617876779936866928170684813468738101083906501124689505090202468021817817808570729850666260673101031775345540616294897761847756609225919378549526230590096766533028783606446409691706338926730514141530383959556212455677634245612201813975908107185435306816305740042828795455946990468608477244906229963823613743503147244916224524159431555305349352987416892361980797798777231212253222230796542461900265066895353308477548317373171263293610649492475803277210472727211029396144127993267010248240468044868942612543078852026763310049690523318322861619336416449982568397130274460651957823166575917849020515157616969124443615975239964330406055856760096693762275712526149969776840251554207194384130760198694070418879664070899850827820772131534704956361220789823018476696792856976132420579750769551583895981905469754631359227840656750801254211369631302240143497434732124130006062836063356516170614716588783248448713309366723766985110785042928843385758728616421538813748863528920740021296285622071622611789766899368100450843560721476957452885472458530101483782301824553648255340745670283474454951118139659529977625152526524664421126384510371185451759363102488797924153008567350484790312759418701154504986873754254408129835637358604665793512787436091361920114536070336292642774104685738030315566895002772427997217508996692871193226996972392287763508579351324156685104853521298873498730014184822796639159361278800851082951694348960201770937636546204320068995119211190031182867205483735248210962083289197507814260394638902741465443675619480747136522401501031958618972374212464408933957059740416550844051789770043995896714705497837166904392485695346667234144489894944190493972370186938014100294792528185951642114742544732746047948822713286108911050333438831264173051939010124750940803699610174455835346218731882331415271880992744960409341123862587503645848579274257246334219303009572395611061572359239501591103950984399693107867528702629111001335045848253007868603800959745614981511058999305590860602274169408173915255168108901250841085286378999330901447898685261922919855161303626666594191508252492443317643969123172088022888599635244784689100765831248035544363916545402649705594375583911899316725419671534057168428045623776502211382127897666252721162904884357843298634223098318459292316247991868303017994118809090364109265922888550078535210609330898630510170588264982349456785878600418897991017024737336406879037283269886202840637777301224183898323252115643072298475285118210198985752162985298939609245619842416882604153267717446200904931030086711809624631260765810457483991052602433818774459795661082189938082291425608864047109554694508604509251146286463045631919514730404363030416671411111249648929755378987626375598221300474789404487726159739241171836272084990261124813166961654830345755754232001464692599308970843685100956069538769468853604970155172443573060100080996926238209605352655757072823981760344212518544686533046120533507970185146156568751209724982855735667546955165689444054006886959227826777223897905712244809248459048167652425596632673938240034688031168166904510397424228950305110974594139010167271228748729121661180813024911455743131744062611395511659737202186354227610252680711056367420910766844583438397142539736783066644743814019186974974020429740415882004080795448428759093757070291518106863702124331605709863990402405545161855139115081950992996956129230459308377997375272078433901146678877732836719483032506965807468748275216202908225736636562680891880040727284155362274453063355952900053810440486915106429125415930500521680548469038387621517294821061923768812606118907254961517289047977402774171748737856293995124183034657016099590221751703078589107810372238710201028168899821712442136489781485447887141246500143045286377024481621013365374041703314312841593141344216418942308430930371864750241202827367897575040192772019351124664765750171314760758149366980508435760006545306346702844536257616985743690758779634464144111164463297893385024087696908005003594252408249000119527589822129898132949242138866665353828496643192889934019831320521449549259737923572756381822746845865529579760852547380057167328964576369348353075073785083857312973539959525799629942611116986887981920167860613492496182032280206787420286365984104355069585189001082882622345066696690021658995703551362716353444521015631699783898407253006724160376438979004278450770865772362163660773229890041927669500179445055774564521941802471315769614445847014557916501423929068304028651834966110999222744905506271256027421944248162327079824379356102834498328017280930786642910407682924590513689288203850006567706161716894152438760356027920183645905137360914995916957927877656799192044832878133965811091519202643926891003638061159044423771813800638453809128797635791007970536925875186133587211303670242205649148285033306394880936719501579186457955244504041030440873606710226103498903996535214984796894097026431010282850497382562909872723011937062086762561911517544639400942197223066631770900478295536206470596940522736072846708299841643524543379381752064371207110769565012104519046525088704621138157024672940830900637214949814940594383083057695817681326604723243409255844069827008758541684235645396105656461058638066035660115504320040735119045012778025854388160951557469363551998834575466654288912843337839836501738891687369133700444712859949835550260333196876572115282109959631508876271717646219997973510860066561176392939732284541593473411287143945213274106776507382674536522299463026956608026999869043134280041502213306115606277061992791321154846428851589576850538630118701418609949872853773255740096359540201133940334206393437708203149148722019547298128888454835576525123733667235529664357642879372477517538024972528479800361123672274535229463176728163817729369405231243635954228642838761645074505894232963755081741470965854677391069299802406379596406250412315230066575664662674261104476226796472930133340713076683270205585007446747441905104424658162495387054962190715616025167064476829443005103344316062558312880877626051594768526360688953208885744685263644673017588699639181691146494824345115790040783275523587110062111212116200807155469417247724188322800211249550085697632198451708390766627373394421971250049807620486511667105980007920344728132727813658815022375400648887475191569720838798107761793663742536189968030199903776341613484468369399002736097774782206823059801538813771295314235732711995723183462995498829754049624873766760412174093874336089063205623313949842292683561823260112710290923291071160843949212931020111967750248224166806110067558046776492744969664861489435887934793503689841203459707873934425309768902922401085167986990178385467669109143520671289625382421201073851724725408801911045908490470837482714027091410220430645447213028984947345486912877144618901961559557644527824172301560303531659532636028750768171486342781680353253551089904903762271832537005179689359858055972202718922615004607684799987428796529786023538396861174446060594471413105882352439678851161968703938289877391821911413708720951393730299170371884096690678753054250985668157547781670466382216278999152879293530803193779493249123794480908003131776436169020871985274115418462732245186364611706657914782580747225561675196863345600031953227467890706827246588442694490384915418301021526810835363656838145326358983815290810313859713280934188802049405400682869920715060719317894834368232528901841644109563906934529446066989058445840366857956305953990092109693141105003741548631069488946441863833844284441438475044950381730789247304152178410123570748909543795170103219309488532423518254409285167134200358579231801806892056475290035305683883776172625780608127943488394802483410895577576566677477593899849375656470184069309740446335625241351932437012292441788094903412192260810240272139738570823849517650188878533561505612887396151444045821472608160514950796558043406461667306879889155201391210530154236905676338736447281878438061000919351642760310534117474693047951001369848465714583781512954102574981864526971661280331497521894389191903905992464296798924837344282186259871371127884573538446183991670649484637531425230210934246780354909174719848027119566992919118665975103972716759825175997670555558773395246117508770496637703522514242884611392828412055452959652956535170484973233692618583531669828533205816421888357002755802309085545911083626290500943906212601024329736454767923264439226908834515387518949941199928570021192924867140737806406507840483904342503479208540848550032900776247477774370670527530365982125571111469025548963010724074322616696287840040777917124026377378688293861348044596373683440837802198706998560033600110837398227698076984364551424600820428481905278054512798231852458835430310773704078804709705263440140837889329700957536904264159391386221281840340096120168240468730195385501876851335902990999099347678119881791095035015170770751094004612384609238837565210360872699776983496995030248156086416939485064844627047763932473691465499933645617387002883492608085644104576664518723120123823981840507649684297973068447323485532656264054172981639488742436978618522840227445479738616624110271435924863355102402604246607986730144304393818741762762579190069553663318419962739147394666039808074143999868853636270191578799112840559844171506177840375685579081036802179716647762146085660083984577899549118603871821845811195444169634373406513299383630771270512556452343572076179646566757285553130933521235254022399398297559884855355859377316055218752696538761878313791430693784849307612992291150013301662528938286653061550697389834996961571958354583529712354472071461198187577118199389413408439845705436800828483499167017454816584303276680357828637661411896294381311489027478849909420827574712792483374204924157359813066808333143631103140208087028216568586498757494734956183982250218433209247081379803189165964929948004590722295101005354605458185090206286024429983848035902795265772673963830945378911367354359186578869368852624903722745082717039563840862829317444962598945705285451643911535983295226793512095027433686876980833730895203720065997601779676479628393479842772827739018949622987423573700788402104862026169080663930952217181751092037272371895054813960930431668693345991147870787333510004734990185094774541753219349843893953235834058326576876326190749990179983850715544143923163952045335721028561375110306584368371321320131533490937277322504211655358130629544888745200642762761928944525557278033037415114469127890217163907168066252446096399607379649783282501008509704651756457412225366123918734802152319059054583975155419343606962738032575867713139686230501455459158869460108655100736098918211207156154267054766865261499967277249350796742885297559793799617539590763288608548222539285527147641782942613915829789297116923518292428126845912996175249044868969763161152664287877784308095528266350963358955676409496994389092171368315570000561455048710532542858146280124629025810213630675422005602431186431655966076034131252066639915350089944559179125767220778289909991922894818675087805213659628719189874514374744931963739088006405647722832157232083315121394841559286842815235574527003978193743548706628501149692177739257853585139832903616874382451751015826306811995564171693462085043744187686461723276423337700799280433923393506723468570405500951941734027529434910966052970078995444337143242640849972064963457118881788452298019996024001622685954302988042813088443442575592628973783443753630416614400446774557074534136214783829543058024512336221743231048596170055633380127514078016714106250403727524171064748719988118388928361755488286937304911508816373049627931225424261208711081004986928323495286295525595260002141297051617808089137290201201843156486558033707643135847541541264120199603198166233563001003922947541876093422424422550519584625026944061854289812145566039015930969673117799858828996107316981363529588326708377861418338608868285412478264969303427275958410059816567762962929158077583122585999990865095950627362135833720768186944452883828934611553877031434608577875873203983827344046081511285881598782290565449093864526729407552511016622572168287739808951590052431840571569072175191348522012149468109111611359257836000334175897213909121333916933455710866910692608963224544085414857947175048021663708726752374803038482223969570921970228578999587716247461348170528737457815116596761583089041671209883276133945979714060306128991356918521561346014854802369343122823954194117476775803617800412525775138207146856268870644123428404779946974559975474275439425928180825242693859249085709327238026899292654414900140968752914450450613970421165549173320752757983686349339341742674416425490192003672540427323990138895935131795212455709100379656375836879614082736777792292236167720071255401938383358377636693952970333584822292117331748597482028585911711112996993974713620751899105444339461985750189560596432087213142203865650451070553918468548896803774720968015435016407392610174401053156658734447124274665428261664480669334638686440955102197959480012560914184203054615109723043994049945678391505011064921669670489187963942547571322504663865986741904008483205946157237672737070700769740102722799891297975700904706397138577842263090754524120905901838437122685169164282410490679774789020895136915568563168667728377406260777079587805240107882590598616561570386111849684894247929767789301448775382022837624197424606905485099033405252914471292686617740393960438745769363185243880138302917511250680392895542216947971195688006409372622234005123638981967740990587973516518968812405517123902453572248783615607840889366674919666988101964698663719641911884296309917864263383651697956583453195704302016355803664913835264917512946911052400214319561349227482942180202313886948173818039620420671713624072497549413733121920615357238518896130848494612418063537176847736822764230721156189224477656223970042763016189115709051325767874887962357217896060352713877886530498125955458368071493654733853938392869221839483548779436021666382189392222018041373688916960173017899629351964509787383934089596535964420262234488143223609568390874959269198136955416204575668840674128077289150509274111041568645794552993559290344922689088590142023045145295598595577218533172336580449633707133637817942509084925116610191721708178125250928889780569717864559124888852157538943678714265005122613548754778057029561812112579820205599903034527626454979732818683105575466808835005490435297029429858966840524732972808962345090825485838209437988711749768410703167437322157082521033270604420164276546721361497122252940123638761175943287597043220427736114179742518376519588736193642692521775406560277478645364299886869199534247764953633772312225351895571153338971570316457567773758410322626380082614272953739886895309108549412528913601645726664785332203866115462140618009617279205599681094543004464838394912954062875856932631041659858920529448322060035863786562234660460602318314545781353619156130016174881270359738954671875391841113247971627414449118305589418918632910903649130946839224367294843523321631922562048443869131307586584668812655016923655351214835273141567647361881588447156464736836026579809253855690313645129238278399047311798334803154173972686522653998038092864896311535997653982197868749878911730579025234414678071502784522176784027293358188990604472885888076748428739630596663417508816516144443189934111705352556324826924307036653149206501363240667568781504055548341452157708163033256757691197378802133020678935819040310353318002816737894179948421744154679015450526745164225783929202790015711610665687138968759384270992904529502531836147669185953879915389478413581466947468003167309358458834684674465582588669020393660973260951421312407136122252718817326213222014419205224534897321997378105574226849443157445458749915953803966342406639447874080253689646511425121186272429495536128431359877532574324849563715040061527569669955093064894744511347149887409795654411966537168766924505767258926301370576692157337646372103958561260039735237194999583762586207350655283292898893101426820053979977064048965031755742047749828774193610218259294954352921956419250917429549870574790992479200680734445513835028896882038402183481694351953466280605522444916099554002179028266751684946239616814613853326581269220278274278098662185345380597534239268869110065693301860607332723215848138306560938942429910625140501157213525351507993376815777918808592777405856152136388735759656786270895196206021295981465258551143097767215186173228606420780642089169265695530382759260753240746327998951684459169955244653761262123891087016672298799956272622095285603242966840803427887947754505154200760244500025386634703025522376244891830616038314371650361979825429333814476765767066513751044830478409763557125265131056994402987275746018521064207784532349403006939759320718278814215892677821776619141972163784987048351916660571149607404845405650470752103997878165475618993700990734152809660186002401080926723900254103834902599134676197027328776352674344270403032535222543952714910175506324995072120419870685383195918600580622958954670691694154781142090768492052451743481194471172646847665411325549329079361732449455947736644514057451887438844206339812522973799054068150099752253606923081134652124368948899026313065248675657341451501021008574323222706534943667351498266021927885574413126715186593808888843461024012114718492859101591599078071815911396913742167955553418089015436262875887034958228634930653761729572452894114019066846139756977128567403619492979305999214265227656059207319345855659116005735077334070194810064883605689395386047348005587410235823347089836781342375392836650814392910660920275240873005856490433735661222426177857607274501437023622597910246610945905138914655976359694406973522690698949736825732051996549315396215920436073429571823380409185114693091121839576560301714186528874403408062735850219083580348796709563805592190708839604234800807857149629034983940077341169285161261066383673769439227067983574994826818769957236504508274678347812722153265194054132601229735384030335923073272296257106404516392487015488185089519740098293088034639689261574108035223501173559311529389162792491742522031336349321475992458562875119969584596940402272206910965934249697781519383167616753352883172180623154200206560824235134356364392809443538087850605697317197993574670793612020363791311797245232729224660203243783304006983861835945153280688184018972110892288048629073167976987489662366252693253215616469904931685174895090994163940708075158125486974909109197244703318940981213492346788971789902417827984705513255170325562523432568072039121983867122350458630303581365016830113100647229397720697226778492743111707890272439555455835977941554999643110572660379390525094849651618653116974432789423403688401912496257036290696340232984233355502759934396963044625559841742575639554793118913830129765021509899318741656799762422627147909664033282180124829260215153516956257516855153051829331766555025528435833468117921179336036031633545548139639141064255091412303776594848239817163530151388010929937820258429088114041257884549398317259546742613702516324246817735752875262999305825205495295367450219286051935778691089842888078704447098672320875351799991829175450340527143167786420470860609503113018517818308262477430687397310359410104498339115362583996267590036631225333195706118746425963105949386675483517780586139075787487671329928728783298613395867700280725253036997908861654925500046068975684376314002429095159616990121986817079038309629887991227031732071147896407697849664866880702745521678542337122085495135591593144630676151238275666617804811825511336298904355532312115041560862780836576286887314438519249687853599329124748236290711515652442985732752475010293882955790064121251860039684827747909920589831161152535046525779571818594586630256187166204009902339763614280622005201638227570942769417243585676195542829994079001730995836166964132512812620068593097602839056771523197986996893001039566263103068774763646210529003805802584699187968382530181121455346866023525832121623528569181488876120686647543995901281141278288384651970485439165473952329459951290711615314999551526305383881893334533826211608813265947401705552549352177122778496722824497549946608524162035938762121643134440121263630678416277692527025033898374774716002669641954879051396619226248602762271777994308429997351476492146293070452012560721453971007285515539290479272276523778489038331767726522121872874959829113179854418698451557794963633177958571101839754724506617695781521436457185977296781059519802267099023373439618001825349561116415648962194585084452173652481201341850091403398050628810183865631456419355375056792024181453421404936160876566793970284050816296080580345058974790067198807297162349126638628728224965319362275396321669482137198380623245359801888852773467656304971901072390449111832788872374974638561480062655995792411138260764679585318149599174209265452255302190552325596102851488081264344151172140670839195010299272175849158966693962080434275385245596717062407076841895160150474491842614142643021946860779226955660303374121574369378824170715314925954524650869081948489793208228982509744528604160958544641909098882869262096903638771870360477764324370891733524578538234969771207860798283266128470481414395314646592311409875302546350223680483279910088933013985741837943721182346596676244100643263854983175401178484543507737223087960161212095207424752588249410922676038128428686655539657748563810323884388842627537623170299539506671870655259244988502567467255793063822639746524286931702737782442641175335083055114212456151339773538813946342825880042382180452818097323778635917510819553087132917455789599230291901207731308648115820300973472394685466956027727059346180119171637932731313036706569371949076446171824608445842739101660294848163958119057852360990598050056990685201051509851736439953008778772030195230852897182184835101222177899753262026566551004469812734650586772923000919901622418735979389773122309125749866981399082505398058341405453122129485777643773410341533600397506980338160070915710699714060076363104149844467471579833552079248884331301144317133541353668145649179660556959658843541120940660619991201753192609634177109573356724459356835277553821037266046596610183532604656590114869411997613902581735171907484773052857125731255245987999994377766725756917268784959701114824650316678595130289701999488737437103206219552805044602044440311365815801850366755190233758122599923439470269795435335061237062339459610713236242969127612318937854776587101543150924895652953554422577331620344082277112248803074274031274518106394161932914550694031142321606153869071701131072643299124608186955862777388959259010029349072469997166831097684322318065651096741911679677950613517788175837674377168645811549992161377939286965901727668721857628739427946963209120966406573610551254067115374038225912456182598627457046151232011991027944144983152661052443066388021253000150223166305864117400451085560387169411975905782610533065302821566144584251127105432413982994235901240038157966756196284536894575015770417905746488757595310294546910404427878902176527394496034159290356962970317361489428901033477728187999274969772675829178877220137400327693865317361108900108828253168619932449935808966900781649580880597553653059392162831112501262764275240965037250754716592893018565012382412373466620063917913958845056156742619199023873083653527883289299355057743530033808348568425963105308880800473238007885397070651488652737659173441866715309147494669791864875060080132354251979773599783924450532542032890916247673610836806471485438813591773482322792769931071788233454392632104070947506991675593473265174380189637533106872644861688038416297854330242984257010761779528856929974569453022422113999840602146082101824158052411495404858206018313065708033888995885637979071798999335809261752461755458821828589245646885369668020367406367796520930520434769428425190839616759971713125880155730115824957696914414839685623355214502019898052237705750322698763695403709231850524082437748301579118997076041113353589861133757568099181328506394868149565350766913623458575430048984697450849622256733289499175927239047605259421489436429500928099520473791180803610678088455046234923282233458767815959467777120303588531301113960211030023400309071753752470571261705648291405012019707242429000559273616032465524112719501161148191529937324921104617826898604741513596092094521160099606583517124117759787344833899338433786852456594550054679313226977770624970449725517025096428553727019404657816212405493322878474272547467174857935412720018273603851155279770866454989799177071795726469364369102129691689218983452770517590074565707396582482468222749705914105872253504239723603031558121945236791166673006967824388287123001348146119843840454840354760824239422134087554745880926990034695622717544074686726021003495554384954559914939387120481268126552099610282607209490184594065987587530676446281522193305423360728875159694452691393399602706990969280536829079340000234869207796518257722734653331145415644578941667271780468981444883144106923255775332117702938432197104374873995572136417592166845692579604819572263785648206189245616261754810918689269019896873993204209700684563775261177378076159422208113949655942717649703690119060154930358460883658438007846760488457587176590419240577690955416528072661198711652994652813589012497664329541092054420843013897810185633431796026448142249154761201476377145344738112054922222143993334260927671164829906825465137225789074813022022481798470004134630683594491811104076761112871121342173641417490505791658349850423648023760823100591727532126504823189112783647102064652954214327287203091216691195843711017651231193135239662396201376789014539868816272814859827579677996272738651961900103129967648364578039304627282219495532788152950588239674734748928538453573931024626115928591373112066503501668987965130519141257609854647241314282802683742380783427379344726298320667260926535427101242912667649532776559973779154449056456674460448637773479051980740251179207009037271435378114519816211335400771198285654448408499951435646452190002584417934791756820878115715208562061420047516126418661535595761225286756322081807350300090822581437195133960361179107805062982412963943875498631249371413327680501794249891403726621421515459779440447078856393012568849215206277859800577014741026971045118930575392939149812902822446825056311499094780538977291072197496471214581832439355105858657750246990558922747654102322735932505875435061437090559976671734190555390082609285503963961651890730843826985590804906078675105980389005174971333210130942835215542512412331907726957822340689441172145596991424136895103503752103128585086366155003560584424032105910915141964424776277465740113559684665862871611966643506776203540294331545382281872697892449246620788579458587913694923081087604721023793008192545647632037708118312445696534595730938411293706636273849094486308585936238238771789473043648707472342216521689615936766694204673365193651887174621155161442010952144245544521762633759873100685344703834416061514056064834320083729443281398505952537769312604665306706519161064332723111299059090041411244065103745203400052320163127929161426801048432419964390710596761512482100325142557528077551376442888198944795221611792620030230361140670668352723746614925519862736321173657345155870473676187328526526927493359465641231587784972132651667722255163329307177721980967542100928482545830537725402151902754500431533948016067356763688901078861180243155530912065256497034709967390211934457561537861291882468529584243486780380062934081213715132557239423461340778761838738214739913524083946740860889303686420492762157719877494988652200518296932394088066132927866005885008511771860560694963232060496670399590441111262565816775599761861077225625978527162181755837621622931421225362247050911420779352806741415863030962967696950301026653553025862564797262188249356372983909937853527516838871029771955302498290293177076921591361321665173613520718477870945776071084737603434895686419498001697797744424398408194360297735134934942199606690180423743732443212004258856403966358626222695540747682224956761378821186770123870423608798372493138596093338687558783113856983766893036670047583628152734180241875126675681178111659790847625334322188119360928542979688816905596972280121337025164124874663804670670308966861206995190040776091998334165188499550876481918365426803029597416806197792794876573483084085777575071712664321277140384623252101981255512529388241637078299640269681474799125974245233088230268292258657163865372485715069340763463293257508960961652125740317926286094874398733987730039334944500733628640492365379450450746606012952198164994857088903854850154317169262793952240777236266334495234450448513640562684942069424913611118169477664025636639295358877246153724549963307060126988757540367522030819647026710435452258864908361186580522310965911457434875981450049271061438144676480844987912155889359928697224922714955935950314684130426943213056600812753900162751222498609651003279368760218093112467289588345956279770109426301531222091619163056434657520208383679593732866495427345559754961475760866548809324980394390329930246161472175899210715766427694459370906800709792107403043250597351630337300572421396956917080437413999499888372704198201798067827836708356004325501046848015193590029941117430183744335927059951589918050939842015641547742575171154221716051083084397475905502926328736597907962560948962707822938162617301923335345394478479446738083933317302441582380577050282819807987996571504643596507166053943153545222206879542664267962013849178296638033602182662070865267948387578059742694029127731792529905570338780743838891764944323429648147782728333212605254684863627805795651598845658134719402361918237783322803547633313792382713459085942577856840403635641152239948383169379264708265781424542896444297457098185942394838917930822037420349696375293389499378834463450537108077123196833827136317947053065703988205876541815237116277699745355747953921838928135949172240660480801977067216199446184157489240320093737383942477047386652450425249219736007214939955045489574257218614934165953926099926844488896194702876371555004012582841668304633479645449482769160516934203165314600423548704200058779810332910883847430412184755486349096441885272439380013627173669324736893093825019223527879515318348806876144398706074639047745698352832366871534281624625577744958221152390318841401301973021126158982586614240602737500349587157837964710712795760485507277788661973898417379926267099373600952337941799315811412624720975483099114081919953550271904237109762278260206718395236604600768827398082465273674962000393148156803574477775579869498464474798298550141100511618470084540401521602523828683109075321433046966815313650883322019052364865460264344451134949419550614468011988589666585532333474634136997280198232140663510631480047151977517728740597726453836635820885784125367286980485407990057547573305358255167666871441917044149520912816468049236976917258912094440016739529142213682094728773692589620725624624058855300388697234898969909105958914773683674899528248196582003446117187256287880812219831693370164793193991379839846388502334069188774638069000549686146352390322801535053808412436787841749971712414628286395750589560610704419989973784785179816532685834577634886961861377902588206035349214816508292256916787268004885960266318049974742226696487849360260842660767229257281519835943430372586033962828118610630532370772638121664478132488738758104716561368566447387331815999365673477185564487985910318304322699590458878446796771862107216754079043237134952260513410635400532345500335603499874812649654477825579225818970903954614370992190968189514437091886949007156455243236309273226292099119819685469175801128647971600581640814641272569928158920482263221201497313633718348202368396428290624714275760699964202953441280693041607142150545792157189643422774088631896965056178690662678359684527243107553934241710489896105540231740296321309241164444459363559759014096378551645822995563156841955608376637260855637503797315229888917049470538017568908116880745329170513985096717683620500898524005938346966768714132497968303381267325887060271340535097399803292427612573512164168247781464476888730107606810414017065374926148892502508076320005514014973412978121557698582246248070401684083691889012745012535730669499865090117253257336864638380354252363604639656512987185481102068832139911173489239821010255178671282884455723883371187145039971532104078725904489169331041711030150704325260458781929176092613769910815076829288273363138362038167196986974900621130394150290094513347666212683742830401889773339926303526328525482547861031859228695828027926484048987677322240316791956928061120269332240030390685112929030306456338421675305787012501837411086787745480812802951487622313760996506311591621524266457155331379020899299003953733725483021079560432001093287319953432244423599089365622067052513751895150910255855680048244980573581828454638587061149504880648145159949813590285922653147463577625677924574214152325493159097864244539271754679074000202003421860156201679758578648940398062317582456296840649653952214193901796830993800830651791181641963350104790055089545736507588806549211859233201084901051065527249464020098837884947866564136436946499447137443718801065226317271160792982186218663530952875819187600575507332365233853509266241035798571583929425391374227175117917789210986599591863712206886107648011952383569847251198086126918664208879146896167569038135816442572572257007437694361418904415448822929415641533620873667639004902160183907651612883044163908185703886421557749642705167550297688316855431275782739426289661127226596727075171965605410359926995052459228138962941778566984490127751899464461095970479345147535236287159040572737797702110015772105115053167184554710212346455501861892344769454488158500629275039850316917645181957753184278942373459287460195975061595165645578217351522895334674731431762547033845703707865854440905652130734719279965797956119150975953934437583181900533461644621140396353902720844055578914195313842423302462228792155357373422167139345692913085926984739019850661099025433425236602681532878817551883705841699619045048567458711586018438693951529197727185437454990129254852582811304414075537662082346373153780791155641308690604207703781994202287236868656778175482739129137506806903835640944028832326668252953550626376396391521065470428032577755172758878039583267344688136932883324768790214488686036353190943400133224875501177524667580104570905915551348009652587612048945823147179752123620480492918776766496218454309538027918383619728764689577283381440674529692358895195775505982015585642955992383692729874463439702013115600761682521578814189733276996467036119267661214319801249248500999805052329868844878149860369070048729772295053817213305742943668412089932669015845729403911151410906056095657939324613951233039792870636106575364476247935775343102315593412947850246979663903630510475921352908220376787908953510819871644590858560664945581260845494754922640689971904741454314917192266827075774421499489069542107086340023110280502108182448277836267662907680176861760902555878532003320542588854665931977560611074522750569063622833029803038010319037845432192892688139092125204372092832880661938635314647851921505831557286309106107743504462779547043038637054641846010349085072264804997947680055683516315267021078995363324046683121719098549827222041972849188843466962606498311351780252699803683518635679686133685559411478936241863085876853274235936780481023504939480418363883900845758019084178649200756558960941523980406951434134158593899263041853925211566851895960420241970618738418298200740186142816540908825534786596546107007579053441898263939933548691686794102517881195288078392485806107199197236048915728462075192629592843287366419383691691643651873478030963957313190180315739718615713643163952469070857839164871112781271701278069770893773148723232470541912114706754105736051997959449919496411935349261623336461535102103960601236808479076017478760327351685611272271389894909977710637505264289508495821367102900907838293462716068695945508986351040443705168625471353893783624662713469772958503140422324607935604050853743527929215248718657823948291673439339796927265687856762878863353898647508197195116791018891799479534627966128876538167967848482280766972002600155251401856061077496091913290638371657138646899620816636346347040595301675995679271724419670556952827373932998421896389095724076629195876884094191705347779667269738217837101081993905912105483511872910556551190016662557868679790417955692279063126105383713721231048720306739644121305894712044069149327928658868386973397383647944336484889198511088634059590735702046289688795811255199339881824727033890877212956356986483357572958047193141405976796071641708435943789926221675595647295638383868395090083018240363957304147185753635392647456692513487908716349627234934185838455319407001203878179825698116722496970169013373848867014098513859718985418926126682432759986153706317462106117787169031482275498185266251387745168455495397752326950062591544478096460957541238029427740068765647446525163043687937531552521519944083414169495488213603805898268415157467285131006679762939586486624482163063342365138396495052542440475040189224109890312245907848502494084770739864321340968758221696778644801660725281671955788784093791331802623443808179559870622761262523419907689385043394900457264047569359490145980980518853344871821137484579400077104593662854538131694929659926767443816562481065223778166306564906045763056974872997366179212123920417404570834495144010666744973574677760083814774662931359204247506200618221663115201637081008225269410846901234505804477769304823711911214865661739552483585982534482490907513513938684851818651561460406182950564905228556872952831260600425970612505217436788246851970165207200968266128316767200607589488355047559589952585132826679752353496134761260717512432919209603884754882035827420126229482170677057412801898437010209811164719671571614214581340575368066476873854457273236977598586761393299933274997226248165314630450598128264326049654795627945890858703189522955824677552356049001412602805258722796793431411039580383396214667473817868368248751760962963355255126698366304198457969868675074803665098130573500696615825814300223812766077468681377178811995859402920357657986970513587004890579662039389249329426145532724844953137840185141809172858215552017980571446111498128546558354386272684576486169063416206725489005865724074356705192610516364619072940412981437225598324629306418424721048066604336489761496906384008501409511586325923761317192481888108474702745073294031079016846136737300881888720986201324946099825057999673169740042350798815872410152263228093851043938038301716479162388981813810963471115543532991599897327245358015388572215011100625444056864854537726836172724899447042628205338283650759465309232928124496254112855507388575948619854063313765404344777097400982055967446057665938464636245236915258383066092224481729205411778900573282052607748702490242113199860796439559123781469894515395216027231819201162063419976578667365234249407048825703019904423988330411684070651786804057689106555746825252567623307928442967128983446441666364386863998250421280370396527241403118927692626422284709613926832221436920102969394177431092017172228909806278965024895619237853258784693268179236858097510361550353299515770134984320845781811187350214153146906083714217040799587444933466313124188187068827065236845752572355792693932775896501462169039623442795063809880513301353923929067091366947283051927806520570962349347304573649206560316659829476654599877858394007641817165868488123703899546645397565206024105906340283720579948207560864992505673577859145943295244316591618105334608908784148124210660112752412293637782946296711267618943277927601111464568871625097633099389563975938347623635636987625924968553299782597752132327222708514355011571417354874149963665357215406989843264102066615193711793238249216740564580777297071736608780146804994638057957075973756176712265378378826177070839080279702871365039480175255517173504077351209961698376064673774517155910957250559587343146617292442958700263334372201238665178690792957673489084094000021732633924388969237498513790652587138204854795685745840440260263758125992084815082997663882036160581719645172970813658626531152348988827731317590008749289652037996869628497789072075631535179414734503634559350120443012469392004348966639225969891860350765310936510041797655315500508930525559930721319552458566087584237850187767688950867267084461426156156934773748627324649185943086130027648116353289642371392416334837382515194025277982402418804348100549049267584803558063926334397049496211905715436536459333354468170812260827887119616563328933371588250187959437806822917574511431468715526491171562958589633401406101460823561640817066997790926468062174915736632369232040816059216817582075631735702975833741215046509583931916621304819363888443012922128943865529030582994623757505996764691778665583517305795211382717604429914719017872680158545990702430616082092893743703042642727509568383902042400874768868650366050770881443192230786787276177534791788993287697079591180479410375326778715726912824106456527681170481906975981775813333170555549447031078052123229868079191714581298048232135965046898709919905546850055146441752404202075489820384683873960000612867103455458703824557290315998136023424046071620748454764248592516417111021829422902397037151428488902062816219366761678072233646949774326361943966716304034893834503195919293043173297123470008315353966226722022518195420898863116303084861179058357187601354161424492741919289155127455850347241962787510491317778560402854780456434060210519687972308850710805544961564924069583345415121324173956703144394638059128546112818200841854014882120504747728537360399754802591989608005604413019696034244343221527035831031540971681785336967768519130955496372267679982339315010192115836069158847092176284204771808474113735248048852800534727108157423471729800893558517967243846316411303226948439836663051073670754346133650369513187607311758926855883976640088604432749412301321875356781172681865135241128417607870443864598780710629647651576175380679489449820168858033329214918579358037299702046507858495857705481456676152498133549566585729344540306970800516698645256366193930447455341892532479401385607636254411851362812126653150642253231375634626581695571560868421704871495705797054592450296227378948822868875516628429544802792198539308586065196384446368356789478184677730306344407408364964427829394579928135922054238278697828382704227226074054615365874119352083500162117846381427260161179446673823755922915837628784634953362632546220536082281740438260448157807326546367071397083381525536643090665563826282106115151751249222636849420985658449853109761471386036930101377891691137483670017383677357492908631317396181618166127054658903466854693702366811934027957495043136109880287410615916410960400935246100456000484219850227742246767999405807824269127521379603430440720922619656148942190876786001910844725624915638678079203176682819109654211976139269532176335209300924083925932190465259543251804326237036753692959398840072320880743487251942381662982341932068453272289685144370749630924728659683336907027422747487399773346171083036563916200746432028683417562336067989229649331374293985777574634299425240127306115346339675192985498258102955720277868720650450110455726086439123032932537399463961190232832488185001170922789822793414423022014367376805379315353338827322107459690071987375271900189092463805261980344961649536752529931217719666126368313359298289877555757172281207933874792631730882631750664876519550494985473571835584028463249359428326646183418467387807159043083290633751417967556947542590163193906390276364233696936099445067366057031227369609674013827920306926120753354142755236619879622398711475792850899148849454398543329404811246776286735776048373587028362055898642675854951490506270321884696724557467936477642529850493295717334896303830124225746523591663845899380604178042463179670186048553302236395786747929805557380139235564084716087540917241114209602604457874894596468468093115833707350055198090878125745956202523092439165846452466601814478498294806918637909473094041692372772990803354398335971616045644048318821802531658263929145066617666509467622198141512881374905829221868220181674124727864777317688158402376876623026172772234899963191324061329217666160154207797061854586134383732515125935443655296691441150606688248736735060634032845421484964036072276400729861957840958851163984584141001031938449511518420183173291989130433676295816439938325931224562744643941555049124425145736303670617729201177508646000969237220135586389733099141360121969615612546880405464909362358919119529443761245404083825661745874188439299680912960647289990036770031091660105595751789865552864152736413864599977669701138480792184237799424850140943762826363018304468722062978841117835616043050636239608053998996544766486280819603482006628090760468118092781334608963843992350261099381945139723112670797693273024505151043516772999007585734261684741620122411417576109744965132019922512454639079417783683051954283753370356685933386177081145168140063922913222275200964616596808905501501693021499995952892428806265541265096240203552795909679951661405899354324103357787262178288472718760738280738209124417736926832633419674012194402437372301830453706332433394549427083129193196769155174596397319966700577970681858896599341560276238005939849873075215927500235906403155185572545234123333972916094904635491701686140840575764706637520742312071084847237571419236067652586552580342707395422041133875437431983499383187572861102204859105167449250701826619616671371557312766940262028723533732787858869350722798443884583853954380992226224866325186948059775005902369090930872916376317237468208261529277128575277123514803015146023881093593784877370924624693670472768153313585680970627612086017542141146944042660132026802664452103483159289034089218755522305735039303047238338372521424619821811125736685597649926583367124018087894241127691443726800435447105915997461080434713520031835503737624442732898945725565062529096169758745776753855412782796813783676735484506584115655690721311707991188331426659860760069223599229406026135292826189417945802413074205670138234413147739592071494257044310101227846425252445854456871439583005610598396912163344466623347714814036835878693360713798542145605897508657122833057509196254189836030086468467188879294405775083532507846827702251639581831580563053421310269893266224029222002672738688820254006776192497454772142687597426588255886835953864217075816307594456644259266609425999217954608472705971630887213808493639691285400853634776454082335509632939000845485556739357765102642305762153564661371214211335164154339026091119739438298265316576355813148319293339110643268214901032949157071424205772722235517809899166769054476058628750977894302584163034702918788910241224493031195729970900194981686560588409949243968299471781460645179174711124321574695094947352099121376358750355230443409689797120639488459575971160275262184987013068421477489368039534390826698356342577545054237995446305516356751439401064936490481454546656622964252342707048590506715220395142583394085893974434090795178457617462955100279561069869048863565947877499650999888444031593242127412347479461219101052650408342776880632036330443885958657079849340137806657314573707854170444932109737691801176676719041246790640394411510979385497948286798864341789949630444859379765833866192623020951225333004540629393200138489828383759650955588670919699158155859314499792757489426271350180503821681230475438644326902855653502285892899702996790219265823381354617252995161885891985556925361901105341220686454077324054245817613529620104117636907886444101452705738119262334115425510865739487842513597379643265158932580026935175899374252603508261802821893844617594072075954949607286922022702909291308619509021948798904912187755331211783514149884317243744519755863579687619492605097072512892580957223541649714098317148430738480036296410856441110817947497202435245039384002086723696051800778992883448563039208932231439029045973162202678146462552150050506799210826443451402201629245844924442817106971577775655561405348011458912341294425397447376508138059427611191462672318091177428048547113688315490924525368220959435872091645277139318010224754818932840480535213655427101953132866050883124370833041318603739018994833678768952279499395443317183100140506209006891842432275566458960824158477108349665650700956468418457171160942608162604774160098449448662375400930968147229567371427321350329072047575417032864269490973724725994920453158795158850797410339620884117351412123089957026759064430063416471360390920236918571539974010581601137334241015170116146657265658576858697709238653858737052339940781127098246998452152879874212285142968330437077938394556766280908832725561473399379762181062184283450065478122758618800378480571188484413570459067601600979146795139820366159798226190388793318110347142678247932870210054545285248473113631340170472443110870618692962025308083294104735216116192571681861973351167061851289562449141359673460506106258154540114362936928952137618642767530536970022246200509860168373708363078977285490082296052155717850964979234808683457435351393978413489879420065975417050891167671480879415427797263592744847806055517251035762639939043563440056111565774605655271102591986227073482096810867435140751108644458907508571424429659897408106512328844871425715800620297839195783564628427741157308204423104498691236740734481566188435787517963895192597400219441227570864784312428758906927694884333987383801147929839750537328218588947789087322252177949347541864278051215038104432433686393114165111550481801715930165896413553888412018214061828254455643025070031243744985130540153602475218517053545174934252050367409155630841879564986853579924519065177973237781734553339721554412336047416501050699824864672097401674468153563216864919346560341329842824776077594494642910440822317345852614051773271019570432442993292732682910089613813368573944281827049683931091026107540454955993555231592093214152680473617009657408352347026056666972619811544648972825809494091060085039415947434423078231970060522492919450322066817071822238681832576123173192906189487657960962909604679668899056468042766740950008206401686265192836980293646054741596463525463912080838169979971554924444684139672172777108527733832107351223851596524640983512947222185271065388433673324572225000633482542810162651639406868859678375563549499600326268721592308195634456031386456137345669560105290734696948512405634169942697077624989069086675244515350908091218237126507605977079078451587345467407525879562064255265962706045687684827451224387033367670578553467434609775103108598891288575234173326562991456570629823445197694194542826214125916582373810106422509915805115846959744900103992922668807140222853342895097382884102813825241412493394476152788423237894257907418186835686865106616206020074745114343505129816094565045117668689262367322055390768229922795777866768225325579164297379173481593803616963176402099081370829074906991245149517917196022786131017974055790853061779118944238053800783968223525366497897140592751521332771960823759439470045559971163118658492460107526530034438087770238691630859493139835582232903032357910411837689660489732099301418277835023934120301956329837667444314950860668999131802878706763137745205056622090095945463869334823615817514334152250896179026549353818946182425578900805827040227309104968965176018274001586322598631132381575186290787746682288670000547708057393345987196132758833235713580972061620130028215980652741054907373689227244682167630493884355770175960759288107296098654806217670320032040397163093873337901270660684050333107090452676922744714490045697671170806783051270876217453888762145854511785061615197681071286496425414251133541246013599950614782932957282696836819201155011334386110411484858756253470668049593510499368310731959118510841097043959640065448021420025405000555107449521911632370832515098101702400919525505593376040275540935667015288289031771329084452638825403159336406927782730179275708714477830004488515589897555745335581555684975628729361743325396252089285499550054233485667673431234146554979198216091101483565073763676188213883642400858704128452913629917293659497389133271741632695027493792953136929313161553012505323834014590442944196426748666302215054562492678510212652651135258484294554158146479772122408979474614264047569979063106342969513822769233215282188900963812952403260305654604128857802049030418430431662712372773250709070866123705198265108859902049040645175644582879593992759223513599406043599801148793379354264922531221315770339237932875248705141827110515461664619326365688988913162430304414414984221113711310671928069822168450070938580068912728804581038928935660884545786448810727928047318870806779984115543554764785535576895501667456963179354869192089543991779121029858856070665320956676409348044752447124545005282277965332123142557436644466867333072647850490138189353844326832351915589178303177779510422096447723846067074140511109542002056392290208287296828716812169820243178049955127021177341467690838447070561701352495080441156154368441366123155982849421430734077311152586630703917305564194093768692985552974356847852382470240137780402371822051062530593487389177375724815242114163196388697444721480770538048598009227857853927638978998979247282822867418514905425468479320069732565552086458116934465185598680608061940693193215666342066931465055484160966286044605677727686189556661928441660405138140534041827726513649919868509885225554572000685865916550860388042544329076361687329571263982009595317155368984882652357506705390010296489014753667815377354006632606367224527958604108460834692355399913266791385265053675103065551442715076666679738649149039269308549377655495474820925650690871215505403056308860899170270631518753716396907291080105502052395588782139771401312842114162512805006445110784465515172183674931111848648990347104127113961875542028085170366174207221169766840634467484374960065933249640131595506397972642074282686023976143125474284299102638390985001314733231052808827384674876928284639535329142507923609293503372637007390869330607683862412614807694066405952788872697707826407369222784167006370445661330896220974204751003785864155949368765367044916157149738439427832227378395580794514171539569850375995548152508554878066890245888319074248970680462901052470325495074274949820086961653397907216135821606975164895270991456189013058032461435782545584253004318710906370447571922780502967716160859533595102216906208591212962642238550474871240745507965375067774819828136246447711031767175830902952509829339062165658651585004760673719610759287193735598516645245036246415227819109557860925041649201836439392092343038191148707771611619318502650503974936457398498212516139198507176639665094270379889478159175790134064531342137881092857694724858524964583454884149421132175091445769939105876819186090891816398604669644216076857671110636592675107370304110705086777608676410179476794591545872272666348044070625814472625166600006255256236014814026964340557591077614666189226371964665907082064971509652151568251005486098206798791889147481576893445510071018297507372618028515556023293250035986915796587889929378637386624832507568207927758043630077699012387924014030217400365054113324485632548628614875966079470791759737363903166376784472833092859427951066454111628376438034479749504052483943016942811265485002284637068059474706799883273015667152485943351908676289061724370486341813754195498488920775460126806601359905911562022725241486425295312044091198412661258461590826184978573019525091044059742632738958139894878543024247112206556938703918611726347740059764576523448485903377249425620744968942775118165014253544189069903785908037910612958241539845505376829302898860240293332267983486114553285647171735139743437183468906239529872898243774846628047222077100557939089398750536148986696329847532299536792077425067247606443830933476046824036925800832382829749469906994102035965860642429074531347422370172777873259361410372172499240618269678596997907021522703684260459400093452991454063174581305227332773035154380479645092197804469623973796827588752114612764086113875234640691716484019179547339789208210958490216644235658498642443184246311783704701001013462952953590049012907459832206624874523444797515764931586711447537413642250549968466533332761105495804017846494221175720631170044672275721531729108175736449085267158485998852665798155017458606462282895346623337345292223755049274530169727327009748782606648620217026833577896130695201293027809151656726726712872480884197265418184932215338128993596655814243359145187860679132958333054737254044063177186215811605137156491499971195927350441525455165754143273580297550539229354370482111029478381707945109741322070516051145112011376598503659929872921086359292152544689004741332840572953320501523143724199474074713875808117661364684331569263741505363410027993843390239064932462970276419765658368410828609870896142755675464070463165897802201144703147775097908433111013810078134277081786564698095659324942793045781233224366962563773437148665545512996915138334307454354378959557165284023087836861249374264950471968660214740251104709382456523211940294941281324754642102009052022422399224270060817678374836355754779493036661510805689050445833064736419633365218906336460864092972392612567125707101245795909408895526618356342721947462594606807083301664176896934884128444052399348463914359949754061605908388047660393142995448778260496753118417709435447100671776739406167395739072269608967122611740571165529188927976814155341626834290062912539631642869621042910752796372566959917538561964746409823072217702334690764119192698289360119762497642684368600033737578110557026908659067535376244578860792583111279363176180970923105318700094040211301883856382169352196003853890213505440051683069889057105499440910694196984773604806610647416287797593225534429155924264474836142096402738419991567059501333660197980194849824281153544286051973629500664127350851945254724312674466576254582412250343984059536525596689839735395424506259907309512805371457892432967111871352141066332240179594809057408612955980479108740199699395989832226639220201810884721322986980307764955673608448583470050046986059770729848417960012014333053314660850668598590666512328494765318413881378134926741859862656168317221247030338003221602783662392183342093550112225965753610817364654017758264400113192332076204296079466024330961637543015031654998043141495303855080666097405637797641488576123988749038348041449523271048628861978847852676542089293898458319248708393558621866415141532887929315288443868309224185670313763412935761756765428295951710033010507109809708372546097851228593340562841893418581253751254828003247210657572893226171915652935088309911846885612896284631094925667972650186312266610227659908571980878829125643214405423869239294456427791810692874365008915457921309631390186428586050182252880024757096771879288834347150304461584938879453251379315244012193790295505074087120471949616111299157165091890691035038438966962908982433651528919411496804488472268813153686053013685423251975000750516635283297833393051863355249113010263360490482212808871149653560138793926002943775267139491911249841004731783491976856042564297973601387057957721162195462409168647958714911599553213028820756267680489857054215229641548473805872369778658708046256747899166100472756064770231322535489792577740535002773148324573389502358672641943684148636666626566958560498822163834072835083978980303106921864051887581806204662361017965630414418769781798415100954564452421306901574180605604200051154961282351584014183168433811690739211077429258447031219684823212529215932356819969652022272972360009700884291080296172344763755546071744094998165772573235077491916664596000655300446542795874323925906746771049084777352875438139566181962948716631537946693313853685176894063566506397305938058132987733204232832414968416535599969818691123438317449995505339888415467825446352552819125947858602692076891670954527218266873612770179281559515376695213292070989896399388356329291427791494298762266947303590002906565016336556637808821941010718522538229460991356534252972541539095606495084699684503606519912845561504217625672476703828907199036703085744521472859788603445389519994806972303574192989979410270222119723738537031618075752818998296333096225744408031372019587158040758776326125037950567162674673349361736184167337565314774857015590698195787532686024931283250799803653444778015492288223751604982203842741141918636905364626262738708050567894002577173555095680081328876876474578575337197775065270819210452492014053274605351932845071909819341437904184810088880988612994995749814240934882707149033200987519555002778378361627986471135533539108869621531287207578306953120643956133886805464915233116080268781700842645831182157681691859336609807438455373463931049041527564162553432885043604715378361095301892389976233627708608426334925507727149584189054195737198667707404607978552522846637298822925853773038837222663048217606182965168335186473941293787530863257618236531128821898227507049247711687539079994082496028986843638756614119948639053065512333971333545654500742850385028234855156664137392534951672218600019096709192231714094394120879385546510901388623964686642754631806571213639732462442348421861463636157839525944231983278239901907909349722397208264080944557275431474204211990194842381616211837263068065033231147757883023147207128390044052510810380645805734910601605260531584336387131926602959680498537322961937957514603879117922108375824448453778826670497326502629583878173489335874978880261561389290619325037603640145572629517972941604788223095238206379295055503967089403207956770010613223516041179271393668799119902095256062878941978478276814610991803378208461040262071137883910345815283226808909608202817376460669382609623024981544657067519094838882362348018311855804587057337622296676016460780314885968020568414187558419027240477537660688265172549860587016446152288690423408701849493815105707231447223731142550640519540187203025818202154087003954095670312105329572344884699014743387264145654948645202176334577191620756251017368683463092490786744359921228393172320890952105719993231859390069769916698880411426196171408832013986905375535712994757171210501424864454840099506475899658568276411073906475181401543319496596541371186179550096747493251086689554515870294701267030222739223164480689128091554659456460239973623275994940744635194971843504148562002944192683387461105460732822044725639674256974060800006794062886798691937915191364362749503592383922129662256276210941891634797666867278644551745969208324254150172083881030384598911595166403154278721564812875623251653620111050211765897111189054981273065465225348284108917634498009074388851668603222254599792736089092773986518279824393965361845616255568987311201432776964166614287780814184677997701653057463572726857542818912769511891893761870677536291284955846577366654218905315909306794063490241289402356867262860420076924625363286732890462561453674636933972603476857608185397333499894953712516781067963945028438175385081641051876700916431643038779642197266711678595499425030202128201503890294016912068005891342812647613264868040225966366962229122255936321141774712208304632722178615322458942529348015268193755533026819221812808335067090767486064734271680976299444935180532265706747562883394499406433196829593201234527932847087014013708280611736315189384021524855564487155227740101017393749908896370606390203551500548865641452632306094714540010093739719133745799442374467098136446602712047110662082630937736006194272541300284277762258310415890459400271296580478752754918804941180394601062688323460086490969405572907380165228539497866714324328664779413676467247204316566280460513589949294415279765122399085534947907711898594433555218347859544764850005243967286167717709487366042326431974783895292337533245064905621630776656134678987607385869414056643314926395265622675660334735068387956317472550280678330237207790644872671757981485767176040280644724076275842581722613846072581398607919082905923926135021680710400990023021777203134443370979256215770053919149436700213022652770112459923845105078900182304845387367688957347437289279514617916845976621089492206427582674803983063523640491782706561876732110188202218244151424269914027887597672007735729166923917266773175270475485429495433807570240596227168857039609743812052188495151031283701375476956585500772324982236955669062763748625735878186236033005527781996287263624732655728287933051666775218211944635893411864468873523494069263303026718292954600603465834406499339000539520857649343049612608838926646087276830841017787268973583450358599074603165688021230470356493728630059825860332899029090599999443600053078922243986953974475869051491784432329702661063960904526596311512437576039293037454528381246157974382584574465864467305402759494535128431752453203126956485852787521212548447165058210638279245644030335896911531272265905480734966958789092340171233426213431627889019955491142537417665767855790825667786958693844637903686759486608072194651073322896165860127192225036039065990762508182625241649192803127269264537209012854633961297175780191057343791261085893888869599080396070721811225276995237934313771518642924992751409481877918984979860101397168107271661458844469208205654354490015036219278482224030043099237312799285804750897055234797656288844539767672727371758820715732832867814745258218323249468827550290601000460839673497660054143495403615021665795052407639916766070343832630505302270217716985579311905003476099616887986306913153376441758613740222222624649338452764114804883093265735854105244709102259813909975854666309683721334623307398787087009242757887502953131343679367616722384100696799050194674350607695204626930129051985817383443848933528984696410208592002293457341585105829563593408541606329434492043711691586517779740778099368878312130241268821696376042706251001287126835611889379614288914860652180765435753765531172447624066352796415670964025191604688653975281436788006030790683363780244059496805777661462340099682269130029606188498378940591286221932451219566890979212012114142432402716054525400041929962949582603481098099291447711960098398168730317064483667217330548133932625471249647165424916403759431154675249346235489528021199137547774918961916104934652919285029709057175800573092108199312310405377521261153071609427052600507470139200714735976912482166738598512951294305117083122727770851272967312356216354162818089730440501340300124859270017012378279913375486603459742572109261577768566726587344828705332388762667511705825626681349454860764384073186040065700330948085738933774000884293928210931342149021492935667844028237554999930454577703639566134174981881381782722090183796982328104281712573368905677827875938726933007945967348449489446404678995421785604356102892137916690355985049459527401372300734813328807384742085120454811680720144178084657742637615346222258352801225695495245569936593930816008213823929204718348371447110734924368559255620814274223537280007743223769234603478643736118551057308946281525480287092411764504743272637505263622313023692288725323378790290643451691969762179062278543287048199010329809444318910754292585788518902305257124879667765019929011038637236283925038011159373194131389120404754043152229433904615288284912253273786496734192741407863831987947638842838205064779200524655421391730296285020272102710009945626894281155277071109627487306556800745155071047330539447593943735416748117161468190647651854362518093648274887484139705726058360206411708540198080066004343353631944835574863565968475125580194359604947493861031792644925324079583544714235265212775877888845762703257828964978189389902703916367498210504028121317923723205696199664268581815134409629164601582789915059379548115885923878733949187685586105039052813878699952161154984884456853980716381891839440131612963279573060406034171684033193744567029778855828714563476245869040725655176217171105963477383477299698548803502361256626415355339809696663572441564596043757246181924227367659580924130002563582854567710735485135741606726714427353401008211575521074115886319527180491734044292999996609658589759483044497550367733608238655363484912524956243230126306637522779818058298912949086525563965462387185308814365710960863822783053848582135199778220102736142589312518008836044983928084760961227575326323802788007060636780569054917422291947550140787038910168811373716077783055122423097306903016862369000447766089050874921392725479979378666944590485242784915427555611930857997343932061733296211375407082116848750834725472299073558748659932896007808883708914754782053647431086524835586061745426254150868592996000966978428667586386800708711874852556919261140241937940873310993355490283975314016624935799548510722610245552984238699941671884672984475290414271295159146603229811759793309745175131574962452123424649817570859896834979907079344387367795097167664618200364747304597270296440324356094648534096799319926104743184263282337822402513157651908345661903640749153117247380042147971040288285723250058379540134527897070708404079597888608531958556279545734184632306231190528444536687228221838262479124580707168615643530141500199996325708455882492911325009481500027725301209345507653797305238826733983174367153945129341176267807283520391023708991526247492823205416297799179982450621346579707206650557430720551186168702414147435578495829822668478206206240281526589749003113666619718107192602797146449710577440233089369962402921712116361390761879148120190601226902068415629586738743363266610470076044447427596789914600139906013599957790765022487482157205934546862965943296435643410314687482269133429837456350514723375707384364280469021822378695812817044499871037054750103436551387026733669033301293089991331435550492939954200395568612227912040904066217480403637245772638802701014090366011491622093434968270879713799173568649745605033358538584779130978179276708277706187382414882181766713154830223977545954168083467908152442418288019974340657793590243509478262403026247784139084368604753278180432435520755446245101110631453985053219714832558948898470532522693045610033011330315800705172779389672904192597628477212612438921568031833716088793868728862571632949360436863779663470628244957016615711468490863088420255355778471068670544071722811961148958070429899925388380050665905861930589535878755588405725662105309821525884937466553533651178995999876050521639567019173915380315681369640566284474585647750466508898320225132085135954691587104415966716428046882861274184209959477759477684442700501123972292926200091140128975624087709565535055551391058544077287717360881796336873962687720025548282567421688775686019190504842922034889965496881620522594326294633486831079735425828300910543054313234562799154415251789083632798685155467489199072317690179894383298020237275771848188499175936584791102642462154139743927592076629953871332245088829719938441338231388198755535920211095465119771914854949597588808063189060301546988529099737837079279827823534483399719820675370743307110620377434704107182493113776233216832128585383799162001514703441622328929929348117042409492585880613338140916282075221184890691442296103658712008045780737381258871676501664600696898622346904390899858511149147855026630170835252046106022830466662771319632650514593471746306800299870475624506758003190730899636542865959139824573217587597209140249489678494123036692447306865192766145853575432497373617608392765758628899052446421170599687054838828338044731752057121133311998254320610642245409474504657043168488621116179354089136016234609760595880673769159358218452958817176540766491674097732279302892974743869843634922496909852603802345872246419283603172231203033059624011631478548704348351211327467087318777663127675958865221470027442052312070005410879393753400130412706108126569272444761829847994242704303989100885395026434609769512282249833627017417203741942273112922566559606536693572677804190528052348206744671674632046952825675340080003064293192757055781069050407795233213474838506568507571112302053721989259709800308891295240071618646115743521204148674892691654555133092041020090581717338737455385689847774891699949154091924953153223183672999803406600679291238166992559538783398444855357062273027787690697444511873395570906745176398196570158488880427370816401670350470575552681912788643736117896683186059441790344106506436139587331985797130546769567226444316810253537563172338140760293873039853233634663511936595055088490405733477313012285385240519937860050264142355610126402897793479292610578476948370593467172017317695570705922032693012321180317896443283876171646996201794245685579241932535511076475305309071625722379213371247521280480192881027591152990791956114704465746407197558216749338208509876174496292209921935757194331918222688105333633183083711051997192930924266391006809249408073437535085022859624459007459439804933268996238027334559398691791812914668577685426208802044668277763744796959872122459758506709904532242777296345561010889797297835401391297902692508383046796032166275033879203585298749751594847439925082179559622566140722899956374678771233997572738242092670521018711213780232217005098104081470738912353120460764402705237064263922644198035863750625572792216304328335405277510652041998615454461012758943678821511393651661235492969560758106162093159765995091961649888631447436411999166123030736123135873146393469647851250567414871719935348027683393820204971730147849698429241163153912511096655165242887109773859758431196083203237551435419291749584557108575833982905958628260682771121994963927704770912372659483332082276649108406597598964630904735691291255381642002619402976533975751251265279059020369592793341457238168660795325475933353155486047298494116861110283564410245376150350722823560008031306112541233256028246933668326968249437137561097405005567249303498585147079072523454178578676393536916762518059358977087323052459586797569786636915666886559365074423600864190797972779453799655716842054572642512621246391417499897462263909100033135953279153044790658950164217912768908543853369291312243999960114530549387310420355788990852953872686264001042474629469467992830941439838419628122472934728269851818894246352023458641313164493553991192303781327293896625782168559321902960018191692253882106748721535090356196471594530517399652574438399635942195001436556357614723521778004686662702442692204695696664927173626725982283654418679604958619343615290850429156289142453087169539620713342070787599539631676410203952178101007790789023676764535023938061575186197227445536621147993306352818365914507597783190770088810114058876332900061727834912545530614175321481335433653106747184813014161223317766503360747620086209834706474346881149025923566098104186273255416427157498573835579100331236826287678794736252181354268618378004879573570576865840013491156765481875510150386335792987393945916523694299466416628791659106784282573928556739106299853833139889683396491895291768802152312603963733731521191785475759404686335964633160918211866166914191488243714936014499778770116561092545776218402512916023133655829187409105973231830242111840083280871671953563654597442429635053278346264459057583357967223016470367946982963513829995605121473741758139042816051804484145036046306257264055306848346577619893120672204865280778270961443159164079532891107848367734014753427289272640125389052705453789496855200938743833188006159233153168291630265979803415353747968565578744167829303844169678276876597200582854287494645704556794091871990869096919300843678428952811655952549767007026867088801642715406249910713334608304978767144178276927606321449992765586438424769179698066796081582181932659534434126787606216312774587326876240806089071854169350061587819848173924566625647564409607791424901934890674434280058674856240943025539931631877706330823917760610316048076924804141451276326714089316258429103218400482797932204596573886310970474542161167249776144767639050589782971110370346443487354176237434859570800215381154807072294323993290593200347491401106041277378526803267174910189960339562091015373670804854671398023406588361946727321860814593804239897057895648419423000874611553966978138062047437726322963043332817933768228124383708962134044843055360503058609779186317964583171258321290439711693595952344992234278365552756245718153277089270108377209586662279469244796223582919520561167324531276382969771104116393431561891694679695377350561056483631330884685827277725009600260937874595778521134075379100892495891859531242174752259534964016281206892015985831983805001612138098499216428269786707939365497450719958362059717423077110755465418947739647597676090557767012443332879873541309115195947511113631370694889924746048376785926100173334683783330054885828968028544211352079583529024547627539484865838543196722505089308370937872556687971467118242508188839864382944617102049396141779921470729246442541704775700574231151782119161913948933487097902867216898599705863373009343101384589506434220662497941049419921360655314291425458296386432364973275848044828865369117536739490272067215058615611893533977939194190942582077169935818225579804905557641066095731299094432023649660076249358773463021174199827994771403480631325333435945088768804522138600852259806897065172388246070884360761412617958668820614298602405634361551591194685654657140825780376490707586558787171979819285917400901903834392729680358249955679268341774271873843590170528633822209030735638487154754169866795168072263585791298120092144902811803636900619427405794198454921271732453542822332412927360225858605484508095769520211428424541783447998687063954666406805599828703288421495484595511733986609980702534958837238033469490370231777526150658252539075591477428621172304965376306263542013703510778588777140434282896188499078034289778669504696485072997438466754979073998002241582527370382505088383387382830433562560184962711926340868263192898723084301268890070806387926774704736290530977546963277018106340655427012726656791704796280189538386110443832773192096357814530621972953822927540986421766533273657486604484489240676627837853305164113963218364821755550095199351706289075771661160992468633391233994691692651054909223429048843226103600469031034252036640294167078061133490766743967194983100571899603020793512276269095160171967529828794001118998001386147622713449915283052058604883380590955887538316299199997619212446770641093344500133775654716713039568189962084284225174348765961187202471437710611383402773684887860762414405661013187556976407160925816080587450690711112387653082870845882784385323427426090552616379788726855286005453140031780097946127217088887885712513146377596164042766474066802295547588918644358926348497443251687888950511439912791546094375133285872958954184375704801353387328928196526545676731586285406329349986073331709857011753170382064243707009981768797216536668417035174948155253963572950058062774106928045099805829052725395919858911376943751620215998402713869070611912976919763497833493017576560160368098372748760181615481403938114837547997607919958964784588644128449724251217272606480917265369530910634617195690299790149622486485339182815943388881310495876897772178397288240918654084108644646121365231814798778131363204432422826746567940040301244266348017257757167853514165342131844864796942287742897673190730619022100289375469185591253118148286687846741486057470157473270646320807664639107857172725302150184921653203963772711023558556470151556916858235520495425229640841084580383004679010742225659615757921230664159929117377729694691615158833521446671386174364758016744640479759509034400711576339270138247016647157553761250321251939346466646789389206435630610597498036718436829889688557709972103256719380624756795983604648761250914304315943039214933842779919758164626994336634076911327276743992754772211005579614344619154398179518436625202391059924664390167099520115902784353497012748148750075060301083707625203724862412601237833872373909645106019591108216318273360029712137208697225413260852690892190774299586033408232570806941244449364119801731768636422283324785154898800297018241547868481077204835990461768057967169743572978003923660368547057690443318061308583412899194715781248769876029363773569533404028040016397428988504981959162863365306183022599060027463947863899525507533895918420975092960245313804240795557725133020546669685245040966951392939701918748813472028821908233017605176920899838470817296158986234767229521240742586421159581447232813112269372881715383834691214104166947247652079020881514385267022395326702520664070434431338480188592303861873017292902860881774679661587630815297078226024061310498031357661836845605765403626372319490379847621709471171018546714070573768293782891996766083901856305721773834026617202693630852472039771176125532532646590519476290597796933439663394998120745449858191306759206847182128594263279560847875066687573663217955211724427612817618506592083796076779759229303892253741774370621558387528136483964195077950742034170810722775521202043343622055372983953267297237190270110351312242704665457518768497865812234569653397651930179028991209610686883880831113354756955847794194217810533046490904904736619743252536156472275242961459416503918257295516315953075619148797599988996053641569592796664134477551595975352585623711280207046512188051975911192119848285680080492026171200165903042686161987321225514746419449902292668899514579962935451398108625448113889008617018485101119668291683865715383681326150751279368233560717347787415050894057226829919581439851260847409151285200472472376795104191009890177461526905409037371160610636790262999951417492521450494741600737213504903064955219020080879991921010336181103608586895167979085901782840981112721304085843286986590405549083120031430732069089803432331072848408652991356288153590340288253823374318986336494042920515531252701067043720506553781745522436765469111841968043749625592046031755727631119458287799007869488053578640174560725320385438826587684303527992225072015214729178271717352813011678418425640747733772688040947447854240700890113774361509683514840690599595622565031968174276711497082577494009788448530996200054878681747914029837433842400751407098290272490145245790892354462171829718497523345637884773469272283006520580159532564946448428722793895993109093754154561639855589417554103651412708110842596742776124671305008036526168232219791006451918194495057401718074564658968132766693047651148707369849827835151063041563979258443322861413045454117705118680976354777550305636989827726130167116335426721363435828159376094323274745949271304265414013823659421425738343888203234795635115017551061243220904912832539965101675207134835218249429503958527514721138372910521433970124608159828140590835760193566734516795138484444434497599389420296281988562738971679117629374000854381931317091716098100204621062251083477583719498149403791262649457980400793023338839476088206389527924483359472020920886835078499731113360814085954300474554519335519710115711637291599605201898349396504479269449252828991981099259602776981095997805392910344832662939408691910306377399807897745322945774421251216427768994273696531047095309922053307944127169783651650402550109923593230399027967070118732320967547594593216330863683396778492191730724652015980960524736219117828637155984552562406664109915463497401088869877426174254206854343906431675486056536920830231682265483296892383576785632535447691843039131251352986054237869031606946992102452054656588767634865409779411990706873465061339264051735096356712435682880422767993038649050535290839743017252766217513001613364186340198331361677183796585620616237941223642402867664701294027013057512682930318584100345081733883238926361286342589192080210961993152282712839333001878378042437407728551927401742835837240403361183073730243673512337285018638872509216194715918005382334598080074744082338676225176768504074337934638077861382524791629450827872235226119814894715281911714741940299079399682442898609555798607727250692141850827025013837719815429072490848155362813148195767619038954895878754708674376075740434393205328804909418826235986738544792221511223831985430935179780302294143523277364392266746620467285250861328597325619955209546074591372962607745749120535202677385041545690741413399079044409459089157301430399246576885328844230762217405789892882939993384387609479976960051686338104247629003176129905252041497552659778227112663755691182346180350437033204861693510948887833082312066206935580493283198672232372017531573385599104548228821401364162259507040278306343619959074557496148480700156842921250665414230805183433147371960892459031756596253495968573668305405906946996550789031313941719066836718113139348795066018513230124768096341485418930545718071218836418036705510993526517882857514484897583940476769959568275951351532336336923251090575881563959675478800178734037808061396922243869308892340914656810646592449739625876417289287606784065694163280377590364509484195804039630261128719152345476580604821610953027292813711859659008312881811327097588509768552435648895829354362384975461056888181596981617942476137223910959225219039676214715062479286437359418363895707143591174511889251442342586044379061139123785164696338279823155399779092391343217386927559346239501767201661032014583555575010973459385975619385684474686026335493458960906711715879185752850829882740997949059233409979261599027137817168081572337960304811856435544978939985267689035899427546983684870633292618437037122188563210783568205886971092013225632954835261043368104895516641761586566645487391724173075843268235935763713113540415702838814300036698597210098791744900338440686290642111457578842290906672275003885411300107122644480720237608897736094004663612437299574073283073035798233337494526113753478944752938407847717849169377762667611095860237883484689312880624687052467159996949981460856035218135574973550513062350383961538834721533306536088132012925799958072761243175166523272427689978848723814382873357128532544485837898458629269390758830534330477798819259797125884653112816655135988176729362419985366543184317399839346298969510605507141603854147751615527305130571746877160180258121598534973925683886923336737688311278950914191320225637102502845171673236505138303284871066224300308989496449587575441747253006522745000502719659996185267126160215100644290960900637476570359276527915361312716753304335420091507673394766432441794588250172801295312503083470489584583727401911220050704517463485418604518302533236093969560755872338940588848280559609183077083699023926844073133010355450147540852525685909483083342184390830318949010869019764560120797021647569970739226353493737631184711230494334679824559563462684118928009227067315401477688581229347825126845410583055966647413264861193025024241698147072109694217342083956651714417100873938284582998380900619694381308069835899470686734080184019120090705013271372221844950745128415309018664374176745073207311360456862841323403398042867075076620940531388549884038348719029350520514890162675773560843502171946378342138639280296822030673616530410928183370322103488939905921068597220345494030715776084174014401677818223598827670162009743911496372980444395596549214637357081989360451606587510149739940848737969093492108335165661749276997037541500008264018566120472672777261279642712373980675714886749991359532586175939362420613229300357604055702447992515415824229175673858873026249768958582330456527597313102366520577376922387506830432332118728373400735918334467778222291690558156768687931121116784424722497694535856109649658303417155061401527123412166730827325156450460720386321136912569356240787199801608866771619364461920230506822212269290910237361617897496690389124859274938901571252563170162709526517725125887647779554813114230521531390825911983518756086038489895061254795522789116289650531601287388728254338858555194795584760193794291689390790631642378474135625631305628370931669057699084753186968871811075524778918996438265006926598736030284856217938758694676505727425492123454448817001448719658941568205833691931920012014212999857888471259035074399534686471938372986271309978066266236224968492316562598503869415579023009322260077539363852562771452889765369191329134115140822150049084121036462411730391190725242176411442910695274854879841051715037405753327144982587289024558363903175550310072485931347324900043549543668484063261669290458645745843360761991333003033163291600162901492042450597466243652041359742818416574110547989893885110556239854663926779066234601237658768173996207134761186725942467515996142009214203398952947260795019403826363138722391993945408564314597302918108934431513159218228075371776327165561454615734372138109156635750693078961287917095947667638089188909318594913835589493626885798022095073756061784800355231383858737871596774789157045878486034619280716213706958258670023225613714532651402064202389406550762380171396744760585468277347678224139830819374238074027071188809952787051748064907330095880724584537181580836801110532702612063666544346422307134389570296318210263356067136045909948500728151326287628251939342126626457884169770177532071364727647015066462814574777786111940240042054839837186129387866075343031088240727803088712254318338200111897929047936952600379312912599096828846207064313261495598133743533805727392831366021906277723670147971654982805698087681310390479986366641896990334276338314255095981050524733072212182956172411936377906316241528128872599866127749203546205232962716993256694744781727020925172043033825845833528519079092444549185483962156904137080054451903674027292762649753342638981466187326579708738085367061424627106048699234673930672179552788561869240481875772977043189882665878275463179237881736991027955101262162375993656887520884356510174019542041052037815615913541175164621653026579596793368981373887175992705004555938551494799976518050964527722187824648975239085630242086510826882971876624542620399272512305892191081507593174596259141078589704631614209690534574280036527478220543460067079409447995516568842637409734322673429678979006236369693592629388396969158131721568311624882764896903381751513752929030931534641117193869267027548820910738538132573959435880795365410332703187930120006065126422694752428867314164512009597656590900732479967508440458397802766383069855430470696638952062520536816279097023317396469408891408947312099724633834926147452836146872754419984064570276298520806961932486748996259149237579314877965242213266929704180072057094723558011438500026868603627894166919970707832028685584522767656503456339678676697801676030757934915086133446041862435217687621116548149079034236383059443047058621477354113717910910114698491541232001138366444088687882562054649723075209164329067566614837016248601485075322985662445681461751000838739864688922185470580082842104769706193565688585878630045830475077692356300259284097042270694680934611296401219645309413245845688484591396799617159219420890602260420615652011657095475860407549546367107489203363031518329033424913114571184788858274354684012603266716088146318124764416940701212198509219170389970816493504458244153195572569294406765807511722394305486071306434417921004170463031129596019109277744222719460940442578216571146545520155144147520833459633667460808027167171239517037077366616272415345135609954413517639048988299075992374460210647923588693214469212239384551663295187256456683317496431458204190447020499659301058390468126479855572976077987789152179652617287272655107952837041705766171932891529876948148261974454269241937966563009882489121583352080484533670199566787122717829547551165434575949582007611313411106946873430562971604313872752678854591712676090160470291942786344286185525699920642095903205062709609360976124066247839438683684562635928921356370623474822661205752075952050553495186411534207228128086057676617877854683938861302915608110331776359681194518905632004178706423965132261763397735973817877549982103906325403949139272578399995832433735448694091304740148445817131612747552659213639788381759529982551047880566688733505401940975164828781560668796871032620048276973664216194170943022882150028637151245040610963851587944993963622066788429625941640972272754155037090870462012449969410973808582194484772472492270618068812575746102411973822584819086574089447762825021378292704438785745635033444362698754649165548752430186415698996667872775437287200161443157356345459232544841264618658451399175076222411747429328316117472732906508266053133963543089537813308539470970022255800943578504180504058932439984376694094201218288439620419663033242343286192771054545117742175724275902790543247037083844332523604641946388347143771403128179252691292781755961884280366710784002274198172772689835997498514859720137933366189969495726987194518087375255380035993438480653337724442752267050448552819496489340385950698901079074187542290301233898310195943230140663837006387382572000986936958085575994473272688450460008070932693369453790799534854297616812359522022366407334476364907348244922295752498841417872300798214372577375756886692705068262065304300756477538968359320434991633828250521832050195095255827683270672393025796842172076127407099197367672140313234732522398651979149602428140155957703445191390583535674321114297508769498174159822716306595076193046533358577969193214332223180939555015320608203676286315286441663862370955161234128357951135783733886592937799110711692047225533236995407976758276440048511839837110581424991976026839336387116990280823834010169126032573208751542952560372889577327953221243800073319698468251732281707549799291778514628351331062579036341466929588829248760282182518590505990639327987800630980591657060948814845333662957953248044779882714214827468412317205069754667606029695075465270011181609716997777176460686710113510246662114573237022792043215685488314569397869635507647729440138787979373206883467887180288206468128405074848534767896321250475081448838509149864020917708044844113749797572506332357430058111025609048074244066311016004274320278428300280764188520158942251372837181239149393899296129543127629092153295373610858849836802233853504696826502792517791229775378847071728149251192835561560750256656186833482587450502932483435275261326178990264813608266913904506822330669433099385881810561805991588654573066265109235569001362149446215145023956836084953196998535161898509974001599211894837386651309401560310517079410826745561398110407160483786463534554853572574395537372087015272851272530193548413527943722759846425177157403781952173758680010870736127853226272431496492563527674038791796363735749132159491665001460840004010629876175902824181452757433411205202914695215346511547245679981191493228509278507317700684663318337211308674427057727003530715896797581413635015155076487390971106199963500082329590329804416009819964652709116778113964638905324681724319892511029961902637571665964640767187226681987830350120851821766642633545872113227683316139335913300568348548646500970613658673270391462846618404614812308129165249275175084399876004383105588447639614146597903958274474131196449320339804857793335461422393203127216655552401864029455126150708835615110643480536200806676692237045003955382072483032445546673243862924042697683635546857045581582089426343904404897739298211204944861575658723531037732365598612447192043582660757411444940565765281921538938771339058132912557514150679070820561611703690730217939065728114548012537820896728687424589776889364668860540832547715177781702012009253954576270132142511520041497894334701996707838556493572459294869610392783363243705417514315154786339799038330600169012975142648369850603443794842411406825659028194818123460192495247946694414299809564775714674138723380967948270432110482903837311115861335640227339418700978176890643665817007594578479923694577950996582973075410620276702126475255775002004346593236905671078168034592080506450121240160188190436289702403820325783752862697454175911900192324885096619221654251958610423347747057848189925203001822741649803076069216408692121696164948968487912165758403962136856777650327994908508128924626152975760152105931167589192385329179979865105251018022311020102510373777847395964889666043846890843906544600907940208441692206712341183690250252529041425429688855143473557434113883237620642149305894367840885405042040022586294601501026459438173481633781162082430473574537164365417071617821252554316846556649972218754920636787035824653807481603959280855455148163164874205941617722823246892837957290232039325668585437937329950706817595081550954119199714661907644647995947770371053925467555226713707602092579815904733696537969149659412245244096926288714215724433206495239841751109695736169246473602784916811873378327981841760571108278551773973338291477390450022570842771474028236291451913333541843651550843035089150204826915555084729011346420078575080539256445653302805075879757558795179346975332863413559998871718410647009296432064210903959167101375071241760188538230663169358735529191528084789523862106198390879250186384214174075039165110671799987524155020793320665547084160909877974680689965623449210882428448193748787094958243699915671902913869377440620622582393973078148353758861796885091716870631921304190648122601183735073958054242846994353795466746473696481009328814642355233794243391050294975736408423152657925286166940703498562761226676700625820700248778393066458924236962256086665078934489687223817007093166652318397516075377811692115963027556011864161612390261277267916256001937508700705383210849553054522690093390635824236394069630474517501748401138930687238205526401584666976485189316772325577597823730282795573063105408313018758497815809333864310317655936268251429698517773501871995930655064760063750042137002069676929723361973099409416853797918659773379224392654382855076439354524778578895736375732559351499138730114337558893972910264457553629449283645178255658562325578600917263890270955118228259480404950210572388062133644117305420961677173242697771346534364807581615189260900476894576532784657702502856804061931480952938794016967476997198062411389356239972382419746514917043148804732861095880294489173523644165667454554255512829211857894015984780923683367191035640499754469717255835227012764453421148144691742732443276206914248738239337282138651321994180892218575502520595113557234269355549792046649039188064835565906590507705216716952703532012953393065735245524514473850082395454243955718380134740991343223606190144805856803338717896325439596235254270972053020132359345622225715584921608426720420380852208860790624493472299094340169690451935516418633799198058910251245304316196940008769365299643974654666648992028539750274077386557385294811210064286612031759061813592414513219869262953580094808265653506719141293158503751375008104501267035510485653901281726972099773498107922917877797242044984813173541604626058643780331354029127598940869050341156900389644624232755393653131572701818296742075904738077167218257482579188336219592319164448900397574360038898841286504175859139008210945280446375968038538530435430941562478302333412133791285109868256383909641800767774991622949490587466689496637287371382308166353479241456377867582146390827069280951245055088929912126422751664333617072920528142326440975420362031662002430431781082446513238608960874389640338297800356460638389121309299418616314482528851752009819505295448710366427976469966940626419944462673203019177069678682693088870927773888819265855231499894279758129649456199909114964935523442429887165625528080786249578138210923246606589891257799076038827717781941277956309013729124371026580125619810932816784829333971825122999662878300987884334537770419538137575349126981097203216422655592375913901990818531349752778555432098142446286582896824879069454183316221813876000371757049225371056798244027448407520384617376203254839870693019993316953960698772382149177397458098472655173305025619016356039787676894347599770960293917001274341720600413451856864760335047386807665888423659296387242121817966816269169172199904135768300247348192428457805683907881970631980406275182972500223891235249636665964094417005717529732735295512835618118962264059773868678967068485357511341181267869470699478332919921236054780592481829647567678001141258406539810982930883631796046495699702188430184656604049529131476377945269717787401150226752407958197100121360988803294572663718074640634322935906335310196399347257327321472628021836417469909552564285493399769384576898986406173992269310763945184621785255480695511179924603416163474497499784681066543565918955845157256776109751168407720975094191673442683913872905597770266672645241965100691764432828443408419120165254750868794806297618044580834326821071530008968746725590970284333258836081302283074538633592171638490278899632712265565073142447004737417846571768928758559891352725934300701768156837123376139922541592618533733263620616854437696640108614375884287253154148347743991907662676349769692402203903508953624930390173696356857443214459654526054120594489499140077641324452247362935561901718030964516379743467091358954039624045707471730840180451481891305637473600455506736797072491411347420342553522392767948392084483353454798743767580623265480435093151063018210010648359936621597803982887798383273883973735374970781221247588576389291748215132788446925978050879149203713666763427610504533703695948587908476688013213997678661065608522634308267311343212623135892423859976783191827505064607987677658695032769543673639755050875771056876294367560440357419160119645622367737862472569288746826650268299014839178655951518751494404967643596569593306226871709151040064155745350643887277272234174897696801375221697118551920091309440181527770466475545117501987189456034604841580206562362336060063633816212715729109252960512593373521624475240044210686925492594140653864781955728094524671461092674947205669223619699491059104993917616121699383159829495582990579932715314908226695640750337636662549104576799421002753307519018242219949044925957009532178162789851089423425790524755341351546662541118741312443947014851976711293678162830650315874868337325526664433229929134932755191270724446842078372042479284593642541774917698134101156829718722712971727955458372831445207108390120651035533988281580233215837206683735678982078943597288501546528617339430108428344480852880196714811014225624032070624183265266679790084504269196977624719509906931940690066387570299708326546177257296193690121458736991710702914895061935990554274080030212732028211423312303247944060705588116196876074672380694792807375060353180899545761949092553671762864391726328582981838895957788436517572033872885290972563190625582299627411853064792945127888217386301724569401522582386980972505730193511887915661000642003953256138971024931000108453348847394038119191933673401173633313212160032056902144419693947725790882795917016107563798084214376682591087582101698518694325928737861770224793999617329384308795462068491958296731671986195300949376797143924886029955821165959211169092018963804241459853922817977988339161873527992364696715751423142212584687557355277859885938931144342759644961948225450246480078992738294316528513135808628850900742596580614129191796778001300320301602172347466316209776968875280979724734424676889438246255309860627297652315871592752089644234338101192311492109225271308700925515526966837250452993783693321831257827443658277342327864419690613139712922877607682775316801387803193266284332163817735761936043287409019330636258658121712584182717545392985339513307627470639086000614654650544081786204005100066595582617310899718608009443807481407185235540473851180615786661024902548318500745306351650410404374528873438236934564131697522048850998994963429617475887809034951637046361714425348843799579574046336790366473039531038297866303875290505862937538810744768182129179490178884540252771623556494418126378945863298731849155071374354106134740008129588633477662228118525538021206087115408991967300138041797576574844887545055475493828679749480609326322135802520017658946708674443616449061176099084638001025273789412096926003497674315431471801101060723839586902899288373706651374070925756851063042499822421035560890456642526719288246490118643719275571398157326066466079581439160606990104139446605138282252543524866558979128454616477879156849549242617511425088240015661744864121328731342933705147768580485160241428122528885784014132870283798169033696395239116236956035516797062162610476416105330764246614557937071219497481123715818036740952830053390329900714560993785201673337999612518064346931031957784871477180118151744489673331500392948292803893309030994072571293828129175038906116644972039305249713084456380070976781418522884228565711199862781404080315168864010010579186455168634058149451622247676199072500453524056068402136479620456258696761121228439527596937146712445645303798948556506786113841300334241796235506637781710391124107700369769937437600186308433787685175873950569938053398567780944743977574765282364266599133091346279940333976666394424153638443880974717001065343273735466165453789245774987827211373501044590242332210149686009788605182341427336108271536728307737861289979098849949858297339673332002034332281960640328487976094869548127575744280055118100348528086816279106166164926413103903612639149448394863381626432375118120911991955328446974052513117916469318471250364891837057464754149514012170856311771860956035813332753724816523511682707142185647200089755612298373742340942059251858124035447700063279842920971322193127634717718104918889708331491944416028631107601636029727663221166951270072593866042246455410087525046450039885674787450816673155723067540438365618131688191171491751388345804450457387624661087714661461901904426120825858915059819812591458789746962094093021586907282077649506520495518185842179630550424840695744341322702296236602324063871083412414987045285114309749716524102497989986750806551782828246226420415868418590825595895303362311766470325352261993931500386005779333360195780985277955641702962710018036830800170441611626964765614052877149860439666514111977317688650365751420541436231889933763747079393199905713149918853933060811127730249438318214576141533728105121984680465842783097207858305934501317762520633522693483367510461469583163387988511652083508106087235882977157281648544157707822238432888278479980198183467003221621111040748476411789155368045408620970249236475634385967215891082300881972324123796694820307391519400964275211822879084347030059448946549036786332456972149814933291864212539842267630406623973196908389950772534699704966624883010610094485003157763069317212277423372137359890558536457713510785595516260565037295250884868571922987167842113496073784393965445891775203422521231926639699281634041663720591690605374170960099714551282254426008978677887046987695026304865889243926682561569832002797655381710243930388393469074250969409579761535333341895108637330633117972405798457556460315567018545477612520160317185866159006289409148439690664377291174000801205801327520199458216663035330267663284294938241559139033551663344221749054730355056144152088035436465838051263964544353605222434028009463838983689046826763224050908313723190729782164441571548357765722536872220846703535976177987749488429590517461811575058322432014315596026629420005657649745295454909881582030509025038259619473935256468849696009793548744323688579889361030786873262794537452777464443404123410545619471662350365910404565463932490234596421749920672957549106260425150304853525493633712655159787165329977326256383870689637032091803100019881290573680896949904528006767259105719948723910701107464410810243787778657781396806244563338636042934285494376994072591457999373861185080361485161128909702448231541059337648769038152912590752389070599260099130687766864060354271588101735454228399101319648363486069990830250046959480630171292246138122415142412206737957297099272386108427528532828873216954344941945344052674413348915408888889879830159246457474653976291704861355200147955290041386390276217692920556854280870116216953901865846124912046744884246579533853619353070925582633994414455681567581413406516961002761395098401753787013987946597815976502668939818936081113279773690453718367924246807097881211140288313214655290722758904850627324998577466473600924815303784540353474041156975701903620422050731047178594011762575341786144559196367158535269740758286612169394669138746693021647572864595001624220860347374012575957185246796363386984474612193732877707820537628900638837084443600879651167870222426103283414467622457980844610626492050877033130843633250737075814109590269390094741045139162673591947693886977103479498573724940598253547881337537507378619800045087511851909319576639140149135657248832310346372205730703509864568894271970566240941521002175153852602628529399480928086711983673111515041805510170100302790557515150457345030430913352762213675428047969217294066022140274078771026495384025595275077838414105351802665894029450856277130667520406246952155486907332164306003611607548573741001354621678040588707241291159130220106275802280845288892037466370260211532093844024224007023146518602428883479242742618597397963562412480337277608924300444802676789763909408780620093586884363003024794295597129236333000517116326176479191592406902431477389786130259286963223305661901783504666517209065194995600579479200747796334819139828255245637961307896095760013667551430378336496229524207564312382809358371591345619925443013228381308537346738490258598450579536649450564399563705379662568799227846444241799793061564254309177582404419450061335184173159552284093748169921742835770044680176033017546050473609414876357062383008349742124852362126620850961677291043749491823337242818448190220624871633569582321595332873165610394522677095480285781930969041108000573156795012441612604306656577050049029422077573928821722082347102474529287820815058479038861615306604664926331844909908955012697737883432565409783057305319332217698153868506820356303475301544724665900264443918985351235969540383922629442475964558936667457028415144117863630607321113079546417249821964877059407795014141087759756329494475511911711963160303246183766362786969405600616941994004465815770876160431181297498966783384598593966455433115179373863355761217042358687751333909236480387689189047097754932831678157971093266794697025523669181443105151661839290600524135886569211350192656054349601456403552393593927352510530035046894038727512312506915655239801351974370652681219058308848325879378478106778978595275403471462956211500794657096391380452630763085135565296180221019086257298635082268587788924104726759137963927849641330147929986815609735714428301024042793659869353334506546840672540322390981985075485178595575994216079866509963549979727509545395354388902907861720643668603006172161124682425360075356672639950319179318905295267011604769222712909514767911630000139930460375636345535120458624257029539188175272555125733612552531742566638063796702980137177060119244512715691275789128602546057139743020702158252379656434898654038402639261787066781677268016723512783390683514929609781511741284988933872631164366482925385883320522636143428322138224384659407529332223126490499266639419565502799177767202668693998154275356746500068203887162920270501221171075438473844220579522110222197883675066725040478491382730116897109529051139130668742921820911681475579180855731334662391235599896648624665073265464206555113467409889499899843216348374374990966202708084406335076921947202930877305925781446830297047660337617103876375171109283904551612983748008622254619708714447305664840057107186275272818591087546096040675512771786286296030245912896806930723884991341245026558996029382987377533817954131913900651199667334734460950095172852141380036501198211856709764001277949131075130832496807373047261739570851367274349786013868768953801192539302911150843113530566267395815522369168244606473251720187009318637657153127085860846328361944691848027409984696971771379582236195049188371919282129237773615163924941094271732333161707721364821367242943933844338645340133537199351148322212003994861498630277111231935312634824241164954059154213652074278240292062680841267979145202605768789954600603313674617624385763464131158929419463894257711470579120179811792282874036335071432012255063504950931176382713117348653696408435877457600439884532899307117066342754596834518997118312382684868535939484200609772239727751950771746457194715389622456731326350018494931969858560008201345973765673567012841115631276114647239947933349637534392252317303670950729504187316829406419422536571950232645027870815068220366348898259578867413841582764526886656810063312359612146499161442734694170285548451704849670281330545505207606593178283490161890769952800880579053614089177445449180371590342532528018354333064991852958643874959089693762279380011918416223043249105349758096981177844475133021351605722915779077116950054869740540600589632127140193950956977997386231021504344522450418701270511304429507738236267244819940837561504739299337937604967582019069955473564252098482588697344861731346398859874714380484039203043014100341317271466050566974555933762163165043789182740691229119615022746253975245260153185361602279286310574203011495360423084185090283867292013741183032641042417182852054938570563922689831451390690567014395029865072955275063078828396108559572039757180875016589385010298185377038893717406963861491244700771738320215983954368976611928027875046854958904530856983081754041390871409697164045821005775956871342529832773045015272324485222444663158491409773339966450980259844676380526601189063021939627263760184010578232466665899412126736779896871469411255242226057451347541038986687403561090786195127981908850010971385651683512606191032148049460229375511986628155423794371198328338166600691224675713269259028383015032490085970485319581638102936182668828814339279302157212313846431006572789305232307183472316157003323950231764751977701751311984971910573202438664490982626060951805552715775048819758601392075612295219036360331581482642424747095251352793499407175441510252361723398306283299814953466501617876852667106132557483490529592792343902809275774586412592391644088879833471336542847517498522355190721981968437203734273642139642278643789158878413176374493570427820189546329888468907333331419620357756895947291237221740349275308711218029683669421581223008790004119886246078639800733396906289229929840852939423304617412078492175812738303689573430631210783648310616442502258432900567480172714407666182032532461051780724699622816368066656725287375399858542074132884112106239457312290992470714513868762994969704025972294649743358193779635214530197483948036848778293744351191627066033150221166257223108112285741855570201395443348178844634341057182822536995513649301332805373902783422100454165911112144089018848569761477854704663867514053777325963527265558366941821535107510242822462583589639581884372951929610083314388801046240843601927930270997211969387333650920540386043823128542628988369774618266793883009167994901450946272165472229038868788670372894204672983793744403726669615465575847567176452697044065113000409236149206880069891219401880448684171562444373617319048129025652757497223808415069359444267237284809231345979546111165916248045717271234277289123885536383597190463916351122789945490673010679178694905630968122295801385898113709337148827880708523855352154515444895557800063937986367815295018264919533212229028927610007036986808572982631636692036159061839564835532774864664687007500663331629096234015697670531642363765004813160860075035071159765378513565471331505630953151392589912141847480136212098004946093871282979841446088000833960653526707725901190550497695899281636012544003807379849375762171434398503932299312016557614159914966979330461794339085844950011876234959118148015370349804466579131956979156064991239882661900237404714906124949280938793713371288498403861119555132639052674046510632675044980961385199493763067772336733679889780536470475863664551268330442603015583363498505966134497053527858652020554579817164444235556443300422850133536053477945751395754931505805058128477789520786322428693255441158923057861089754022186082208018296262061974177526073835707724922619378662532024539461953934203841637158716658025006665797399805313368924690236916965508607513162763050084048605486953504378043437138728530589271946651163451210197116897410799545144263284358579386123487054605550041991720344869333358939718926980053922471444894190886281026594675361536628074064453958987369494335679262202948686728950750975862896509375617643356473803438588175609977854036644117227045429335042002887635802892499737426354271986062849434293861471698940446363432155210166390020496740033878391863976275943714616384653492045872391672542319076601458215904864231707067062190517363104422122610092445671553800925485084133047912398710806690330315109274826013000708407084076743738987574454741346378628258193493427067312224513937588147242056166411847558232010957863621630884640886314345577191034289873285134832543177455807448458413248387668231354771577377282007609374401013815166960612497357453349363412290655420423772522533735238599329312409761719686028605250693940468635048368519421752116295680912917470668659024453813267299895572523155937887041187725292460360860289673531952540487860307708585123898860895403262426004876347893903173337210558563111744864986233591209707851086486200111360829819050251536885077548620582824667872513586262496731366920670404143370393533912256585037978126995615376383630606127127674837654059240303099161921023576260298310201263394361477317723455857273551305867469644120899743397065496664669050851712892588248842000782883616133090365562164195085421706020996543626501795430636111368829102270792443519205073989169832657066731377560896853709504738522618573853278911283388850971394317872272422702862498998269618033982549898940226983925547476353691923553395950268953346947586827208874099018912901856406361398089358447875389678159944169279609762459492397528100139029020866315242950547117424096086465750702883200291406180580904912566642639237597744864631939339545428620976542986716868080124312568121283738655041168095863743495016085665362428358583421217814364982433768954164062161655304323876491712841674992604711648050992298508929712587976066160061523177541686329666742460039818117215836610807355844853584702451577331849367374619395780748699123568164597642387242587432045324482958115024605895119193286073690322473837744293335144977724166413431336978025077562287827699682047797923922269780368968242136763567941593205449028257613565322465377983332354988687325502971163907335171931126682706865288190035579976337692123346743746463916269314047519235764835146420676180577033600327860162045086583558257227682261671812967381287677847867551188343592770782805250011927286533776098389702114199366999654169289101869380154175022345404067177411023854896985766413121225550747657094070759974862270475840503618318558858665349045300595902026540284161997536578586264224738291586489976645689431290009995516622489686417199585290150062062123534473975215802858648373152028001436116756407291259795650675129111762827140881501296886783119233820049236813810197008835092594700985843071644908953671180149949163879692675556776349475610617962818336503408766665936335886417015962795717618842509443586505655496231660797926154207883950913868702910899760294795117642147301839021105817746125739716006810988130932596041637309781860114028349070111124823178787002499773337801438342059317012245667799875943805679064939974887901663362236525032037052889408353488060821169360224546523690547175799017604616183981911034193750052591355851825212813806014583750365362485511175252894006525242077438889064515751976950594805335207624721522530915079304186964462882589091271419476630452723899472178513482162028105076284669258807154722013586400607489022872762103581843657877419528082198852278180452673074134437251510072972057592937456464481080529394551935887877060618778444357620971241797649984578345493167535518869897891232505215769962545417993195529173215956399331873444959426778713734196522899523394240260025683273103663400835599785908457183507546830729047833470120507721668671097474015959052818823662208350150370525820616116163029602741002088068358989981559763740156105513766006196113098887704282844408834233121525087033729969126074691295238236338105057788885817426342301122240556123971027634515617665515186143864579214787211499511914215938607552129522857788975152368935172850950794189806166098236882316639357173627965695159515768573159334493846355021474763363178053303333521920170569427122490688667231076108189739005522801018948906321479399282380332539410011247249948396993417553926951848571319937176831214108127630779068290938478411251064351647432839929697362733495534453312919043594102222274968417976315095851347668293504223408800115502200725381824190376646405888393287043885675379156694652123810407237590635538040844573028986731205888471467469759143221090629721474475305209909551887653432662188506859598694870964524146638418954978876576083312131561712871873610754010581876645023481426641482162864039075341609299307441765113104293177052667042027345180650585193963013606610208208003720254556912686880717070546892981265745271190234523654627639210685420434587615241862702947330122937197496457322997290491870455108824343056118948216332444338578464066191336843913206910327362166262935579912859396872420129267741166306696457571912369562560199495145625101673979366077633610485672257840727094375701267341131066589617001058737413719270005343749018770560372336311012452759231381004196036882499297375280543756567934609841118189316811189939013893483293758543594128092408582271060639615010507542497772419497312919786563971872718057647488503623663057650722715942886900184364808466062979743768753754114015940950725618890031744505758418334867278443437750463805362857271717430976446614382311551350747189941250580522042554181188155456579428438656527294277744566976339199865398467770670311308423917785766475052063665845777324620706524150379607350814592767917471280694291350410165806876637468067024514386554384951488442014936186170554155008259274004420457101147959669077842475973562294902529938184678057921779444220918536322991634904917907825764793675986857167114894622707911750278514874247300522419505638062274751035145705402055178635501714783001004492006294017382808669408281193844354866595880937796605621022616688497324227613612490553929094882921645132614725555694993412546861562151924393855860742896764670602858020687227334584599794358434791477515789907862089791021151934427117910219098998435320759420344828641481645334973141853212145518548244398804011301633217785809756798269962813242804546010452793150135190938427448237929857219766852899259830824998856028315573049370938828803620312687662891524681672178072505192042923296483959281490960848042830800325115209101310108499813228438693485379127008338768034695893852395330145633873798374511123778230630213675757571519813159119544094543456380265278371276343489356895859707188648675960215867439505922377831202245401509904692071835941742781233850536546631539791382186397915436144762946901792161329524472143342535420457720279576853065062879728769151552385960288058555946625587764111381141031649183240824115599210912366893550598856694886311869197420583459348202248889988803961321495066775318157905609115498765709514378529064078873730640196000063116982564978403595560408602046400011166257854874263268939884172709587618043324509628378255317000493420405712122313986661717593593930031179696099656795137296806710664130418778757643644963681522968566485013040402828044962647317499688119598234404376083863007191576175999371256336250474799129328731723390816858157953162710457213323444623879972446013854942177218131877283600099075536663501294372889930900135839667531097460405992636427114815699209440854568666090110816971403465897731022936389182366755481026826187087878950605556804000091584519871896469583928017382819892268559732290304149399518003686525648513996782187441580528282164031022944170287818761444978487979512136555848409393210376867822999207041940557916991088237039645838152965354040021018936469580811063152182439596753643010779066225926836422559743955433825562449564090053220739170050212175534593877639858695094854428776679629022485887578211921256331713803582676535249616331560986805960515805848872560635648467188064609472377929844666475786385031956928974048858195083710799285701059804379778747516235927694116309994950534729052485328191658474231166980569786168926905979706198381016815974108984191696528124441489827990312166377194144802845642939444317829257904805001199874188780700834071565946481950797020422605010975367473944483003925605846072130680146109118630900673024719067957103037391474072910029710088119559050779786072994392562722222970943179550386099442581375442881277751855725725810604672878980550012569915038439041617251672034612944447769826126620122012723197790026868511984628149275037847647632227125479393428608695421628245693783383895874877967066359550074575558619679421786033187545866402892310952465288575579734685254196578774191345007936638828037561123451483689953771378122051403370017347525087690497567055531460225798186005157620510652197873949684182182590926908814897317328212157516812395577509062183356845779887521049685095788287144776692472785650476611567006154126179596410997817277329391314235990455393364805606627411580039603890383225070308595486073175853803729657705599902765047387519826787809364630563890375732354860817569876742677501294307132427369829672664076598924131750625393939555419923946239595898819693309320490215869813352589926071520054710167635907379175761883183219449221453804889638728382651375766807375190128666198880847196914997426324071966198897618268155175165110299745501560301749851310201153430300284734698392657216447575683352791838991572572606590700040537646403948182429163269344322380483369478793055251153519209105736804670814312433382912945043659414180162323055422670707407026814880480835701072439384877628435787446488619504909550950728252374708739153243662213275369371263882054813636428480504522764141424015967257566629199570702273093816282349405469497797738416340082088916924196935106269205081130326736421145752642256040398979843754485334045856798714104284267832079417528151575137000759171832523858765118231225708899739050962765840358812111868345389389572887074886367682304890576102277368066569951181633660875842455888939195633178072997156877921744838314035156100183801117015639785365580279852032559374099764018965714292803190109652332503653600307763777524748149537048802586129363528233954371296487668361399690496998296193829050255535234892269822750731535284744898466816377742912032829303882167914594780213754729685071704134698753477723778641901678715124970659316570810395807495130904877587941847910676364986252306679184164709977082261622599266164110126674812474199164243731655377736534637117961350434306032949181627022556726687430311218280293256176014405302693118978253668129035226978910864896606031731755641201170907145420143666501083612817166239373240267739232119620465483439483722953471986289671708027564051490156045374175912894517295330975236977278965526979010514241594488003001664993589465974332735460571257737670467361044757861572721529982764313596649502370960416100125607683758972808275658623438644380510691315235893059091572282667164334090756218910036879916721719651376842159035836032849763548155561455851564670561789424267755241469984292907640349327338682349617134206757916073655137906058351550419972391161412174042019878004307259395481374747926069034371277732831988786555351825618258890681494417076931191510513319926860248861146444491470906090948251204402690459993925522328880292356589057387224435338657611192387384492109210332861722781393271284095338066789061011967906075852849074941866022743854775299025514669189110777684563521293159590835035100610890776784494042946005220330091685818049825293535088766561486192782569690923947791791818621050629871421201155836080919772854578671268939045153647479298941294860026435714545208745286812132920009172591121725104475879994188308362648946327435515105809472011522990631974524247417931756855816364136926668195334829759535213692307641849580535594779604764273531108646421602370397486530817635251973560644211382585999689263284266291616478884911565157952206922292298899816689837332489993422040424261293412718683677645938983515528374343534844554603916034758013660307812627793536988915046913995487134251942107713952608323948987127587164913628219365518100206008643215660245989414717428109517515407175809233909166293193371549800222752115575085185934572951209094113469862458655702905460416371890189128571128058020714614189804662773169689538064896123768738643800984609964294218713124838177379314398535221422015974718889779331287820093096715139083858406811441046593678073836023908710022344096813844281876997327172234671292885260544454722602275456588799710692514387907299572719371259851734428991018525006351188745632366436410005109615091948497728684677876738528664630138906800812077073292337944161425898136368423970179296333145871059888083028511939727398063897556840511629194690982910755868628403195623183753496382399757604092672990410777616518708579698254214848685464330563929424243710099530578011861912400167622219444680158113857189656176364197208611431877472785609743941997880295601341796146447479427302846500387989480366912319823546631711630708570289220410246298322983141800409534842821832704814543176115183163359211112354310684482490290574085584356537850355562685067235338080787383390558515648599460040112325347598874587637259239566043632707971336730319998622632444719082245876492002657455140845947423748751172941724347499826413054527880749440286119277404163406172334393541338261109880300375735814462775189055225406507935094148614465870153845857987150057100845646148080583851128158231665198693755935078107147297198248023502016666613231781538423876561320705670497164503740321691352054228010660841499096210675771107568184630898878305596677687996752105245966359229669229163009137617672463239582916681392518856600448560077646223660976634773967251858611789161129697735694065333152169146193775914097330078931014382859019940942184236316815784512763526994043301180242975698162633317158666601426775434854720741749904062496825762941559596962934898727144438301514632946671226869247679574992520889073611408039031289256732334690705698397341588223999235540536363722180591136299711343666339960815712645225904456604096355263915473393414144427830264242081222095266026284001813739637972108737593671146224310038883473642091943930915958913434099101179703400943208244222334303217966342405486777119210985257083336565933690825116092637268008929277693548232838589052469664601144310003390669874998691840251968611475441571595914092180451454345141650543244773453707911538633186447284444021895048136875851256595414775023146923993767118314039571564785306079540121005624815244394850682528785756020084896177728013684384443603465546430724386409905518534390808732632969501062619508726622851414660969109463831492567793974279038429068074125956143438260060309994958435711772946069645419127621547358867552139723442970262043433017065865225469618144231585292021009910685595626213828938252090162817984935370810226926362551900523632645314993220211529800932969670741256935109086937538395341510333021503812994782321646421784250053756524247090073518380827132112539027419015370403795536815188849813510859720636636750262541797275278055519819794560492510301487391241173224386898315455243769543422303264877678886061118433450900245424729754525066609720537671750523044344526445634642138360509641251249384147851458844392667489031863034953441280009447552465535024743551557319745186365985711444563645737832016240333549607323494048611601364637379206746778392223828662437903836972137989763202629239959756931922552182963456136269542487531990872624811312488078902439110097753448389341289174967086091327515079015793155952941713995964315000804708630594058825501154327931409365650193448042710067279341894531164992888308337139787443322134972690202318416987148461458961135617904444962236842860558818621309472488472550829130041852671541814937040092577401016317441603433747837714373793754590600471811266263835487000226609020372487171071949483883407397937959388494563910176386919079047086451658251880599994846754814419083064094472371705971685205023753047680662810018898438740956436052567079310913138481390833994084802281474653516775730855250243960709564898771626268526319590884772073548195261348472517097136839521302443353589035700753679739437440305712592746796773166269373824964673499464654655423011200745014384590872407796882600832699184708057490857097072804645049031169123785901093178231079671794336646605555229462477486933781798984819919170016339122765331635246377404187696117010604145606766161696881838321469918521568804211059799465835906762926817335495740117067242812075945396286819659860913467554224403109824901754647039585191534123843324700962516125698128562667553593100275481048188401377444080512372978022929578820640167514340568642576699533344068505223507014865982925799769925791513112586379805299967515933127127875430558302678953916719361465953823698434848411969935734217198175399016321216822940741657935581876113524192539256267763007937757528122685805037324519703680397145170405171258046938572660653562572936970657316428915750372526131832984431787424324804960073151892719880890594275931744171107018539362678040085281460328759970189989913776247280862395669974169444451779745305293677570592125126518869219670960672360339072182283599735634979500876066515861801715102784682287170223278577747700549186741877997115393351650652657814016772108475923871192082883238795917652112860144986873769609054191416824446454325259634470261755735083183784609744503231375039655622730565630170449432910870258074295137696665500459988115920327297736218041169428218505684112966329421891702477247383982735305759174683704005424327682156534004611467332979010778982541320166091391885630150739734114769552263446124044865114969865091397958284353214296885422982409698380020211404425980240149287280933672133401974784457060794007828802267185453042302049884176834921930903653643043856828101920574162338898381875482170069627526304960584431158652643658994914645374642732358431550968004033532923169691266856402231767551947311014284520707045492263673597078167945117709399782400390543349632117608051313059040048518728293309452284528650993415396517019012716838657521436072241396627487049618340708888990706142567002004592912091071962360865921320412215795164870389427643763053823658548114111926439725443630309634125014550182009660729961889451544532851045848088483604964789529719466148715019007342014930721314402551306735569898189094508407995499779254070655262846288606141308984617439536057409642386772129652490239245063183483094303644739133978445271267616670397717796294110678136260090597685827576953443499576043972283332846568334715669139592997273323020856093212714867827309047300597473026866777605317465582792399891894779320030437250008518382608513311574744103351410667716061665939655707874891899983788325358821823832037327233011598536754494238305185599859738602101069738133548493427257378241991851680326533794420951212081874805545439961143030037016621737778407081498657975446056790406923855688878417441645902270001466483953612054807650592726084867960974753799760776574156612918513356197457800371769062098765988151070709409921572986372592223054042978766530741188623687985768214656572473924392463059001154240188647267882362656376537201162551708646169797882063702456101184762563287689647708963065528474841667672278067160817696579920945963011772517889425688308120437210238239648325945699327340844400988296489528396152616716625635160027856096507577747744405414345048492077838776893447936584256295043595800186489049863879546288949522940764610395510559009104175844272186107665877829645959071931609929683062649652324414596070314019491489466256989315059179157636541242107219681335320917456139809369070489670800027608064616827935417449137203577753321198990338342625673779324540835458271961537426760151844229159939282253932418979158668256489972682293203353868218708129717627843515196795870413855770941458976475118183398717186735534572738250800807019500282165020570051692389716676220163055748253192092619928852495215044972813144930631418230811708273650559493342681705066263733334575480317907771777064620719369690217961584878547089066895092677732857379691565328870732482826666196767589662365731945566149874688276140772463322051878572520081396483855721087808170790027915212637202269116312198494746710093422857631763607573943655598644219882216363323437657136389361392876571610053832908252188531019334299719891553144516298441030559659078932287217095717572252174036414837025580115631967053105515384178606357423340825089246153554278490842830373764517468280443423348654635109462595478165669260451306008173535709529435704969800264777334772150007625384687474012354030375827784399943816315774552287504065879016711066010761565588699600463327534853766196336869279602188111580038254863561394684806241194677400765011182211943279135809902815332062058267245243659666987988913438914639405228672807620460623744114816440107862514865360172751088680596949736054021536518984147914097817576068519847034097351311173105505340180415216629740102511623200521343909988238121014441164726987916254350964303436719914884631710441108042924011288017518290085477259994332733173676799714593261323748019810651060058477336053657929664948031476875525325495486507572411828550930634192959730860531898704008331577316617122637995103841692370359892940725103406880927129289612095453486102531052188759109805258866798675117384785887913464452057244102745851122447579278158611749860242278527869039425729715879172095535418238917610530923248539445129746199260511179387103876320930221189792379756860806144786198846401848369519207347294506533748625242307808211227972693489958314894020423514461875036998671596115462025957505799769329487618837193877872545569682048759458418620817348223266757859841798697150872538087006374838786168984345296950665798075383177984567385820626158915333027670246349979887473370399716551555115776718519646848301727752088290971013781095994894535148251294083324135720832008727517211792527354118036169228671582591698390254761386544352006914779944427655614151931016784003090856109708666737692953182869015459009762948187735649254108728471469713855719361366585837730669955771745230126969103278719239890207141076099994569708946006932565210538438647967948243596347186559739153885185575607382385795491433895368165902591787452638882882333232098329918603897439841767490535401597739201725648699056623618141344575035814324023327118814164776355288045790125827515643734868358707801348381083375366029736382228332780654595122668830005131080948053389582218391344107795620928859617971792890747202456378505884878076918272555583837737657067111883426718573885143543298408347347475983049957252865524936827455775247518831298318633666069863267144709266161506694480343901949914706570755556809381291259451825379397057271506355246044357503107706568616822946133148315672816577052097262229657446661832945236509231232579227157822962401822614616150268089714966819421026323413873155375106649033537923725964686448332805236506353027510019637283297148183467580634052948791196671562989893573802480670797783825622856025149980682132419654758670063054182155353891665238931827603940213747396781734415272066931767751728066861969043154215646922380519507253852650358779965215032206874130591420344523444435218748693199727475634059638796937531394698476760060541481069788206036832091362317646877849954255586105959426352931638027157729655672487495739454707903285565906278037492641172218276125908128941978030585270603782926228045706122583073624237836619060074435979261231052777388755364063506760500269416036281033324165221213333627252708967735564609480571470531998913870473588137548384779861507428207261505562886908128291496342813207997068127726819173388381493392205990403887303069587846304975773226071025758809033312439953513963325648703719566329574608422636182221169956516325118319621489198023769893345337953578449509875173427121369568769802956942802909070869774753766966459499450657974461760914854786360830307822574479641559217550660676010440981738670594888660565515429799436721232336068368534682983607116718890990888271137395174013178632963278169031376473627344618038160062109839940293552359994665209062522983384902670944253120191777814828004045723721727918402554595074256144227252202860177470921968790685384153986746003136589956243628785537794971213978652824280555359354691817339231825446453327397717692581694680925574428758239876759919493339281094446369064575554465712405770089286958275253763220111285610910208928036814829431332779937861429891187492094426304178222812219026348819518829475714065699891615075688074217302934390407434604049855242889498672130631620907883281137492610140950373328243966966069060031419696832162721615515304554344597378589178402634220796167679848440032142378529630193317402196242270637462456534811581476501647123806067549675662826431563863566388192158396299808595294487403747564494356186703667901124996606604223311804465156193924680634947757475301781686690459869443352265222608402658810631472669878262124929931078715264238804560797190482393128478361139641671914580889252085014028001389369414711267862661801612475510734559344416572592437081247138171486757626368026781817292733325565480510920891382445493969742030845160685991043118905542749174721488887121196400514720042360977208770043998273091119626554953073397712901036219228174824572401447618214174311846114366833219673181955030232319443969911524905814834551651030168344753119086503171913413856917841799733305503334942977509279122721693844853960133343292756937123227236568733169759261697513148056158350302290630819994749181024202175265167102822025613365306952849583897543727858483508147610727895435147249813382751688868641158917532162715693640978249758237639463558493603619684091468721755224038520161733564401083785657241137765348547618417387334019487553997498186940081996520697828912920605535454244828905574476286513011662344611890857832176786633688672791439268085939636974528614177275540685972349980396769420400238271092716045681693750730218199248910678764700700331050581230139065111674005136875724586460769863235081741300422755993675361337181441358245717200270399976287389243007853469738579320886006894104545788577238244209446591894902492197368315528941162111719438655792523412248642948527707422004845063517196867229945462765185511559041499455553495263616986947922035853822995663910866340296095216208018434184361020621321744396217202361037135675269430516071526247788959593918772214601027924339605432560387431624405427100430887033142356402025027696868251315885499849120929345140867923766068956482576472184911586760208092696413069234891095389492799976196146349625487814431711583388811226817386858441710029954194371661994771646039070893148237328295937112815901152870585078565955619696858495455012022696488904982797223322985643235975834165563608420239054617795351528032562074295090808125370699964068807436195832909570368835673680332827109710716169453444372711988981977361869932874028961520034298758935064752433167993621975816826101672935960731679791550752453379552389067872299757063130512269573674941097742750783217564150822599846899811454128635012367973704114416885243209575134508117739073561589347383084730290330179327820255904078457645185611442810354548652746262101430216240812219591254715449271165440548028624917591079513703810872944114227822305183666202545278160153207300154299622263414806868310623152469003614433741076377516591080750522793747279712721693216081503836623524710353389546674323755338774047710655154267858932040998207719798732840981583817519761779538663564265966746271851763347704662730093847193946266095706489694422172523338805797437024255641283020566507749564432829039195687682292881029762321626493941773628880360313603736824677899072064599851661627301310791303171052676307357788825886530347329832410203056268405602953719566102634923524656539721838398859429996271855076063360464203741726972956972024177371606556221354233663030494058953210529619226861713879845651427748528336276548012201414274245725001884582097373293819882660497120539938353644788930541657804346763116579450271687987474986079494094556970327753429938267063142349381586701919152028499768012820966006413651159064206638915127239213505741560302455678350117798273542814345740976923526245150630396397123709141308698958887485919108571096653922275199010062355409729774093316038687518400522961581138448559182774377344813178188078711643786250137235520407885078766791006422813246633702741514261482723389373607512757656843826732300121792550626119112897252738992322192584140311246276604426808898442833268604682797818166698096885451117335350488324541263753546483658752169507153744724030689452614211657487347798263912207629479886815956671691145961866985915746898622873409767907204527363289972725364501711732611911687131300855447980448368092159449193097531933728923481375549959035594871874410655811839544103084083399593153878349043067094045272385734222917797919950851752983711458125773215246839744214455210735686955071056246187332868555536013488613915049987266833533597174953736822285409080521053169171468247825646311613068103681880523555715045681081107310413416888028591267145901367654813052916268868758073089811012908687049965044644166716859790488848872845659786633784895681694080033123977028158841595232570215137081624413850155442255885542572429370471567029997366794411106573623646771310562685235355615969930406127166307454734935001676093289457634028489140869459666106487248210543522207863116100875017870166804833051984676573459140454558216464151366727188613565956438736972486611647868535346573252303831481986625054962137470186900533424526628434691628779556671951256551233386929972097892731543956609999079169348802583696848341365813299223672593874858469672335088984148320270255147636432449741941124788064217486015479551958786110264450221105209463920782744453313681261149881481890435581928241851674817695718557630161993683318212546522691055801483506420119834476755141503999966001039605120724614787992370413474234675513610686314290974088394297394501297589315011554588494669149586350405932596447673666796854965004978165136896770968360062962315315603311557909683921864328106489324739703530617456964053431759729485885830733361400953462437289540076603451406747042980423875462154664794809724643975822012899222072822514577793512599415869526767194349885800302765362377829834038957069586600223492602429932905653414799427436507562250114703357786149212419829465042792253595207751738009484845658193414231742419173679144446651999712880693237378574917958077711293212664398361577123153974217593854628966186450622287603253281373794902701347589555403753606566589288136920581295433374790449082674336531225678378363278003607514685769503080297069538576135423896678373142030375888236064208285022187046285427005397062182334903343182238926722437762826502151108387637378854208691774165258535252279594942402767091533701537136077033878013083359023907605440832010108742848268876387178551050182133660383055781335407807339656149953965254656767702226618902605833796297036875735499072695912573972756406784027470924057290724337830928902785227098326465600823924170257543099089665513289221699224103047018887343968547368218124516254094636122357403264799535116444183337854609076385813067477431503410733026219829645852356126460834992294392500883142803938860929084647853721894811512872514562497144342544844413930888436891384648559953338532615618297372669780178902388883141719489193095563692176792676211395859700334327953746986576430790993733293942683792191651137605415262059353379908633992586987551985644328236393589109976509200664552511789031100697865493379243868708367233186528998829098223410239719004687071573822083282268799250705313561886634083411336106968207761900399452281596097027691803980731187419260817566399298907290001380411971442685321402520654161439620275852049159585983745399149018716190983237581544601532022391846428070183375190288573564950615892849321951705846046249122416413242775720349929286015033457759599124965510179500980983010307703414461884302963327747530292264332441707497298782130157627116539184082580982101167261809261577543656400014989880973481655903622351084000661008368685065183963173709886867513355099827696802501724390976944230587418897215745691740747288241926987064418572316067826067722191670257761226256031765607417479948827961194258452768746730849213720400546323031018739449960268513527521347683452965012048731534489201247844713290253320712932359330249472719399614876738596635619006960506204612016588246317795415728694987677422195475973108947150464522696860126148875603410451150388393604501428153061157901196930074474766141299467850773869892300939599251582400472278503681258269974453784127056516777697740175341172279896751990211351440235121013335833259975508719913790634584258036133831808756263776104831022911030695753301060733839232646610084716703230531871228670600998840292222835686431815425725677197513752658517213569802152465723806047965076590272918994525174614435966216639849665109157164642878722145594351004912485221254664782815105796733302635412735465940780922402834003884412563308297267304904889935814796446140306464778806255496510498020420133531056501305251089207319746009748889388165136812424832457740187304155470256222405575677053532035818936049912226172086929929782087785924551536298994358065145686148421786930403803464896146144384443991365160077609388328229326557007900946672025672138747183739967414055523649597008340035516375417883935373944627862257301038066736367429464580378675721181495280889779918778077094748282045028049725088501178712897228627523552295013047248779328778419303717263271391164700586201507950231774672892693060711653038581160508956531296980848391441718189180519221837229080582342344400789595237207982210202256638109388810886966716749221324463125813950684999696439772010716102561400647615331768392483750743602794432235241551598521490453099437207784838369277616618059516018070714427011825614036453291368385792339622953295762670306762487043571796537772763331895509851960905135327747141137977584175236834909546300760093274481950809926725630931876103414455697999482672763605509186928687784196624705824664823756864506854495861675422156950824127940949020931505356492850193148655393007517591368731224427874764698734399028543133765399043342887128724810208747154109752507413868694320583428444703135282263262049827598101876888265556206580448892413331291008884753602464724198855489647452083054778572344104931845160079218439191193130529267564953650837193839511545557449254914475068050295226563632766425377072373776616280538034311988349241349035833452889986787515735104336065374778965887266643606544811861610490211890684655504549687830862530187293640288203815522905561451655380982104810332179598047232500050088007751790661827487271766339522566212651822430537253817985907174416722731040538734196470900316102358509331370557815443093178476568505283678382860218208283941051663646774394793090337488168211083103630891248221645820682635589754524132334873806389756402200213454127750270882500607178373792809417355988969038364284568799056070278068177464796456535501967869628032132294224789839998478759655678720275156042101407646828198762578722246221911582037503478618089069980542188059230534687067768865834529970281619599428612906168717527036960282797886957625181082281553301112192289412646391457843322396232937506002824823977425278324963403148790076238806001826613196365499321465216616706935759687072289635349975806420571553405416009427518435705496202705981370294266413096648273588704345290090926849756861983249899528733606217930768514307580532910357575845658334192954607493339341173998519162363740863124146590890571570289724302775358625107877038315009235607874156874161943572204685277293866880112132464448115229142963095945441803506516077077279042819072338208904265237909348537218085144130495136818370067915678096288216420438501749347612978296288497790023962331180140764178537589479364563222318724528774941179162226609250470447776650647537166053118511513406674415070448732173548633678702142158873184301344780486741008693398441119321019382596126301267996273932915623850443137479183653671245381368615975600365888013306359973773155451630652625863482420190980453985913340333040476879108846137155702874986907463031059769342338026162844860901057752051209211180541913600113122575144361302378294731054708991594619882801821651995663557156782419250172975921112733722111454941675099478224098670500620009103490521215501467754384401522066561466995034311309753568189770485542924901151617014339000928830009218891617840513776050757729026275762560779515466544023265235276498093166850352456361903344670214942771274940364325945714803173042747538702737223466518483224180745644726292673725636738206277529550181718478582736073368025269739867038299851320873515140687567016385780067887763081431890959197743303476220945868323213092982184148311306202545052703959843731962982902722194598744804927273232538259268235997779931862995465081075144454264268806334653980803659713909225306453092713512221836747969460448931960213736437970871840068575243343363015127143177583771501438885819148595912586194055776664686822197198192537352640572980678290209764899360956108478048393821982010704808409110893799685287707212391142437288327773039444215950873097901727431168284145373915360025177103876348196924301133726401984284035013652344198252617817113392559073396565267155462853499011296752405820677457522504529041466991957774929635296071562603037994634739241902570262179312829864302183088268151729305257785972514954190587986385572015233696766642179175865474518302620779174509945124287005712249316008950571509492345348048403100350837934228237683633848928559843649835265976415522948387581558488782505253214721592752395009652387910907220837257034965146530857965841595229427967749461500619528176540486480658602430952603783002511564283007555168762718842322511111672281596093005588884856663843707835036636653213508096395719741406226670920132651428180409084252547639700750235817090292160663088388551244107684408863403811624643089029054303784824095895723913425221758045120757630411775281232747144437964029316158382590492192551829804217711752169969952537782750069194046198512427402395388623527965376615362799590019084700010295118390633167176308688945547768256731957841134974843703937195250016046300583241767356396286194345042132925217700259240286652649672290598143455460211839260346377264432416467298915963793669022024262905907856974996726178993927298918495167066883200832336997868672042249591495432376538867100460126746911363783888468591904186590582052649957621102550557169207216966445254712831934788459987716987917176010025483821760789164752244357989855452254750973777521856676768307905517852290429272577704158748680944141739951797611412511200258805713503451532277143835843480203952557433391210647889532200741973502182480215318790999010535157123724254915575995467892780558624086027497375485100377536202693437785073518613366684808311283927000431118678961423799999072852747513548125008015977421694476186096723811437216635145769876200535124248047510277847219159123431202780534278046525971440081852925951439479823047875876337510970517352728597003594548628259565712820824066686266498192090096514220503846513256967850096540032385873483093789716452764735699720098783979968844256975712191916467101287460952127744978481747565882868298358277762997654504679599001366405505220731034743399927469057012606281297695671427149512330229788542601732633642969288326485072405669839460334176615560537830833734171899717793689812920217387550313666425094993476710635282004197865598865281265945152403164419936049428993452951295457875696997848635313387308635171365751465016930529432455292364590090896619975620723405052354657985175610712321938934995182215187278554812195550825781489805683742836967767349315993873069109563979156664653217184273718649769264123197449087642601934245662682638228555042742815943812502760065463956209771017107376083418579605059920012813368978824046609608247308955577083388458079493675356806865908207136068975774925898760778305676317735583761180220999914057372601939934456457358197376034907580488925817767809651238257962447098175961389419945008510513733999658906490204794416072574737331782111634977021336521813515042891044124640096921294633249234509171321149277696902247503359447261577930658917215452611256991387605611340866770042744763932775189759799066633426370713417130422684814029581468936909624465600342296694585478392402333955465728046857360976014559339669039319153982722865238628021698225655742965281291215892264318433447441535560182203588458079366059983535933690736274342620934811281955026931733806739919431707113849913115242898465036378822536484328890947454015814486242142572604499506604468520116321622130306673335775253571844134166553986562055402664596964969966154208433813431137829973508953625077981721582947963795111991020685974030498508408098543417924487181454051921341879919154287279347939736202741934439506809984416527250051949593150543566229678404681181188614554312526457497067269494897792813650468160449507954632374900203135841915106574070764547847480683964492521361306165123927068151921015823215273121409076822513310648450608733373259179069219294935171646905131181840603641519902424369018484100855520263902607689809636837447198487976549112744265286535065979848351743341744085870197777387588921966025062097393908025017276550532534140625793488040547337511395258603064579743788242655856786756447589137521829695521196684097782690211187681752995676337461604207907879455506541215156875111365216728573831084752087875111183209451833569858720229415706395219839473498886459834866712368256101774720685864732162931532159535004366642079835390562781642914434006666378687388669393658187292374071135420936285983314337867604265802863141168937434792251540883359624119035087079564357054972370374077654895097077393039309138043538059549490941897635596453947919258811896519799470105696560841200535222404217657583915707114886598908369531923073819600937272939745003535722649106763655796724359941954927621698791467190772700555496098557283919658282650211536592607088099782874844017297421861529386071805994189175300487233235442063146422429177908178468407700801412165281506240685439670558935722432128706515292393751761964458963167584554720954940856872072628120014242108609756590156801016403481339894720118269269882219934099838540403446380036544968514730693120759682532142659843433448809763358120850647595401622536370704522115026856714683483463890513015624134680276396982291136164674497071310283004591806878757172006090239864404977088246290406479194048755339445190099458610827235673482475350077102511217661069857325366187100823555607615880589717678639550798125417132740864708211050204937184524284013960164064614293130506192502176984783574497204045385057066735958706939724964384511385252845332035186726432287044195695873117468977403071779684816744805620257226143907603289443001848477533446234165918428375020858373825364957902269191388688493070293563179458316404867260779381322633556974833206816945587417613719881549264122094414118937206564479067036610772471471639779196455841956820193109186581895369512975978069409789993392531767070811308961010304171438281023691364386467754435652979609669848697278780839557988320508438474723141085962039777383019950907405545552611627661264808896433636861484067773472905927484654702926054814102692721760683841476490735553900560394133616191379125678075695234667154828234255560317601707244833945014379281477498261790274689570910634526533930680718847464657280225338545297903006219711647198806421780772426388939830603092936409021033753088481404573961909618443133897705280411383180965111872484190676841866424985590833358968470617158829062491435352001644408865869952807627671958168251617702559474008366452687048511567910355551196526191879909660873750713628469515918505912559240129781035120405330313336306371873529223701028783582045328646551819609184198488073354967657628997076434262520882580191450685551027558117885633632856090561662352971861029365958191252906311530827942011927712181574547953303226469761826890025621592869325923863982327866161167274048409362729159872273162817747713548886063455252551399856448650230564415878848926658869605781331291341258057407376564763482839177068651762304094110453656967034792984317399743866471887345606512313961145493984372098514249314323961872958445726223670377399074635744297299537804949373362913707280237238804484762367622794671365884026690228881989381838831009272134528290070043492788423749646158980576245719973877772552435028916964014833119507026298828617794346712994902521296095379310182345074959557687980279074613349568582284686035388120170535246301633199107673753815548489539999963214766505745968689510542238116249769485708299022238145633358464460463431003709673087406858401791866036834068478629548856522022756187185515253861688481079170757785248272504885392112893764163687079672409115072855851781192116880692409195855454167095799773059061980834416724290717821319733175951482768704101134660466329974420226242729884756511485934929873849390005386846676896219670136458754529741059019364708661932062022567868388615203863933396915779449802179045597976499535368798012505291436559697667446147896362696070254267892253004950984807001862665053144878238569089457723144743488364307749944306709612621545553671630229389498064131203240627001140747074256467600708230510533383995271739525869838924644446537011416894026293220454541624398431483319819283765611307145589016241329303168120995329833537883720369040670099230840201768219440915031820991925674144375608044123825037615270828454620635901148450607132548423721852206503059646644165017388052680712425152102397940204972902462418244108530119422301680877290213519140626315647491820759254938556214053666053026010241507292754330638952109069867374905491829120309834468872618038091165723382063887640388767467173897104129894215001969218815220612893286799533099326553470342105301626244306963406244501649182116456611985159864343936447103510119912094402741813938047913968511629420561884687637609797338900131197094407425582382604063606932328656021532140941078455233780973546225877672600624691493611475824997420375188207309921811088672324105423427557686917314101984699992852785266087988332386903685342383078426892826544416114518327011546608288983942386010682655623124554410378462287685145146549612987910349693180478935577670001325498515030659447888950730375449136721921621066478668780388911487670132238637374448150066218929013399936183973474738221030445262819902074049161714335129832626155404899722622417360450950722141181482671082055218464456341676152865204679931571178519337550494741891670535410501761361372413384537580757460129661303653412137871173305881203483044120963275002667040315610589717154402789444900376264927392624569700037063899841168146207900750337377575391675550940591727540889968398923173805925273737675660559365449117047207294389466413408962291164490182258376848578123701609629866257517589027524044546820029921958193002014533907943822058250237226480946655262702481453276386829865945985947798812760848059982583167686001476815846989173686653764665196938443150688850730614267022414953911184299060996175404526059378738208734756159290392422391249387901620148612868280227963313293798027600802369862190954173097354492781928841168140231313392540094793627614699171442934985876335604879524267582540119499288936447451533592698859276505033456253174160748153558125987301414194359786870454858861861750151232767322734095344957164402267119701564571874560733414541402171651356326206995017725354134660839932401729034182578035466854052181183862546091202191843095151379526415726023278297045542054918561484644980008470555631965824658515085839467977938298847944601039993800403659955612733668898915082233396521057945219630536056462284552511824358847021314992503284827792585956082746293925844866929468826375412190783780327171067225606706700237218164388961977463625935775558217606990280880379901483442692267439264178153046111630312602588055577455061123851723067744618219719467470515836621804193384029753942275504470542668360128964629646200745013742052759728984763925517146899613192735908386975406949043030221569869002688478557566638160917314836714381847455792285998770366166018300309688997843382088037842714439554766376712091788804196066543814193297130143188564159085310847499778290974644582687974825159749244017516997432080980782457042899127347554605816667858857550410859566550284560194161143110332482357255400925275538310393701734359669879076740207077524906084812836803916621332150436540005902933693276893817730839524326844795236869098621788317213624016546384549493325498392733534592047085787238594136256091484458738201913840058084874277889132870684715084813590819472352438004702981801152107852427536297428450498750752810730969860996108107157615356112445192155276588637182875104053555937437693655962039379697889215232211181600761848889999438560630125328957469533919739687395691613834458630695809466488976251050562263524636601957769007350080818945825682587990224594238905101850696895525183773715366030084851955218029471212857528205303358430204466912406577989556786200814490172076599401346494462558397317397957800378641698135081126838025124729461897084713863720451185942898256821864451898063406611717772994465118129884925815217379218091418012452723668337082125273534355431465178168465581462678650256812159198118607640453832644402781036761659433422714430766484396666013354765376842782552164711087173050539804733521651331388537236927497792183421306214237236044980164992280837552425883991094474474397777283734539166416929220556537418025843193503101956435450139103371403964419418680960311023825784313799156005149089835534223882973681158190278753058072242838822081216550602278856992106497671987195961028020956955084495691411615630807190870005637313261063558598202009766880438457057982079916160859664159983414884988855554575436151531542078438705747884728475428641286737664119350262751063126899134255273216835626123053693540950722343159356244013751121998607188560169067448645266193309298045855077301324695098004604516102221109767584527542839722796240201999814677445302734100710339162150171240775738503032017764522947707318571298435576585566290408633669902200202625762962372307463744484219446576888283025951310681079837330782225817299876284448350878075488464836849616003207656185981620998172423849754061899342617570846684362978987173304697991457023832197236494691253933020170148448984738056591063405932256781002235272521770676256832766824956486809073303366249021056007812874600431053617354133176030179626269793833478168209935062472831973975382041657340308904588946320063720010134734005882668920252058989727730995392425233141083790518322198337330038462370642884445838791195337787538878862313433414454252400605772519269936439001527983739472574382859724733614273421580898574193031015218710660540823868198138497629401248005700463040607992193093352614652671182090861309041501694491281594298502858983026510463471865896611203643121375794837268435040757879628614791592507781423367687522904880480095245669156695409411979133434850962513307830131564324392340044334132825097766395145207672222515671878271185233051036560101937540251623331220726079786624720308269514575719050507484909188657915724245788978779895996546634753328615815777805496701794074581176274941715905409863835213948672413574646463889911336317243928804595665961978544455847459057531908479529175166029437375172973090321278960084692424001510619772456107057378348046337044366193395210408485873529535586359367626195561901426887917111841128702254898448325530365041869862146343660234729340302397965173843815028963902187836500948036265747468200126458549747292397812535825062100228690660894505808124671585188219709297788468802036065578466894261425260350281011372935487033079769469740816927779167814715873193700922422633377636930556717741547146818140786925681981457141988002328141763962713084664840010582890606397048006020448380276445992912137051490663795506517746478603233474294895919021081604264748485922133267482933869513298940671684457507342582527878837523243147497618497611321889639917177280865766310697212100511905757103954114743173767852100712973236043453642570574020677248143938759322707321520061714521152703523111974423544618008863542314320380147036163487488464466249891425337113847061529958434899644806814732226958770118507429098206982907829816469734928046665719784012630532757141395548593707519585628939031835355228162907948172773439236172958723282782702743142134755115232615462279111236369164539077954291963833230630382549308745896885213536930244553814393716402781955703096329419698610878100696076086450488120386299128943204139040988088064199005160722620113109961848077502458091764542695094473818237568280176316428308241516000933824587875311717902383363502008553765655748720096119151706342751557362235235174891047039836307256712364643557448994172587818887352052035894243437682701904017992946803107602704258869403340703044867872607343988314765749193401422343150872564353758723102711493416826162046310739703693531334616295644542021298228261674578489716091929239388852221907200037191762235650994976962455678334918937906056187043628361027180773110177568526075046964427937646604553724345966750298739405777754115318046197692187383976040870310942635804903367345572938250188794979279597664447640925702677404596371830987643735382139242150328156950348357584223095268570634196482209494861486414406008510540987855763626854126754887663435032247440393703962421162810831911189080528214786425723120238518054443945570566544759392175994541076177685993189402711140807161945238386830346301203605871054707742271518364770089617137414455076762942850960341113752968801032439240640173356580622496626443181446033875684960020777894594438653054473212899582875603755789108044217797230216243144301083253398379189663226027973125681435487664756393879669673686080436414255913318811555325583716108174659123893714565813788799645673699103291225507190752604033315162883958934144748981665329072020222032479765466592288946168989262317143909619730798172968127265611595516486145888882743100012094208405928120008262597787064135012111202518321255617954094927433860618770495949795139405656124209385284287391491982160069957007792048860519152689162147784548582756646216330441746661377420595552109924389170060097388605645590109421283730183612965719297460549744305937082276980912691258538285818184475832499429465172364857958508601976228495751772724938272542269885035194822437690677067862256813127133457824283823395220862158692390877561932222825743914904866654380292347477234884686921196580982474794197035355811411315094079108127142136417306356605827872021315681670340068304775443497622861143415065583518038884491198277300841943550624142760492892293991223813293954734466095004402397670297013588282034710393093414955118761152192175306501391138571260404420829891214526032629427166699649089409125278984594748849328454181902558507385380892705053954218961751455780262455096647307900856716719158290095548674327313802972061598959338801171727699071060344404743987219783289228597751519153142397624563570426963390897874146301374562680978251544985140202243613578283230235188674842061914041504490483923003456171147163888019020043593562407630488991872578399109370913251395547130484346506777159619256472713581450250516759935895215802298547006127717870372665320967968087833475803362395039140679918075161304106519942336127917162025328380621569157352427567241188544672579916819928443467875494176455046904024756262786656004458065299291806744207608135332277363452147052752909041773208031600918167846960121602051190030523126911892328929935285724605704934175870483313255042967333180433098545833937609768482194249661321345162293363393040034511997661264021796814389366898932659160386935736003283427132545230743860793432808755324908297215643709065662627956763241451977523255525030104334563226168403895246034516707049395370230602199800161750763149953196859461840791802954996855403781962348219626823978331487319476617471667258899953519198797431962698466377723734506968475476299452223418708175333989451057714344467455274517870393397361725558113761808971838917537982763960708949497171015062585370584960479669897612593907520777613447094630512787087887961713067354798142614673866487245775191727281932916277850496384600293649367215441072044224937557410355848919969091113256443391024461129251591952151144621823150292720270862433944585134761456560605739160021576094467425218848204715833887963093059474408225964333988004022375831450762985047107889326977064176019399469796869408025017114090794619856580630838680126101758334982280129142714367644536915049651981660942781472391279049174842613722573273217033293801317556221028627748636545401388833645875721448202989323680425934094130649798710892615154354874242531114955790423666938094313433036355879445066540190641978565261821418723948294351928062338280894218712290627907564775967945582154163933613098997700962371571507542580840733968456837159672574602935776205102443088204752806979547191563811864142429686701654970752564175099132153597140224777664806905216752351770540744600656595451107801268960050251385323518872662768491621334083641478950104509160912400062794107472190952418075736821563331394305493537153457045842140911558848898113033082868224147152367408406674329054022107121178226128136546693703743270813875914399542511332714258166573034871118566447472449453210100450360459298687631026989496311432724405794865549961632049829031721574154611624629405708497035557117405795795007949947947051132728620043402641053581255272132275051967554121078607765542016314905789963946197719311213305508605393410158122293186445419848450470842270728490583192019403161720722338613609890506737923315638686820628350915514933773337340004410653445481455054626867276409412888010743590796470597762475534664959751050670665368315022237603382570639663103873928080130865945603234152579768589147164341639669762228651629792912873345049512580373838715490806023166586123271121033445391434636101051778142780769897033041555898198769741880949119640703142433809659675128120829124573361310166302063264244252063738145737558059763345297213759057386604448696028246585065436680291768925142282298795026139619762948613653360185842266338851447264696116892193368191055962591845793169090987619268090688361859775499864710199556324172787688985740259304211363607428045965294070623966306139822771847467585308475306586157639547936067114468156775081691395006581286501341029853227067365699933869968541489561276821530966572758689445967881400620481727612018742404188313269421433486753863232728829112225993411464210735968118085206617681155508389773167064173717821499548317812198954955374468764077432178848734149599130628924619017096688312592119829783213241043905763096772327684267582021535338738554119072686240006222088721570399487285389118767136669187801596992748738296652115308735045879723929215403296865699214494591023167071502385868340086668642648476381868160500339704457912128767422571739412486040422214805238811218482387292534211547292342459352499245401315957859971362315875797954618456432257542848723944764338307377067507072950344163278975027631198595766504561154805892505757732919232720687723024906611056778378893259371324354160243720414850090497997222132446506308863601535895132656744305818007215491740738623061353920106257019977732889372772226750119344963973609028590378014676324022261890939342524504221683451943899446357609674168482980489504656818740994979853167904248471784928657383142500431738092024102860580339088652991882435302379090830347564073030129060930517967962581145774922428223684158208108211226893309535041398211501924866588417848864432667191821350544508085739331046658434153964608527777527507016514233910970872306960528783079892786191421122646609105011888139125123021917431101100215610160820447031491600314336592221971536643814916217073064455322013772836821919255569991684983000850893471000042667665359062106255830880288014960261704461402984248946088163982595069806940453195424820990666526804919540927409767687693787655964482505974607949299862252518054151502437746999992764142851182332583231356328101568597584651511995301622382794879745434786277976247614762402687598510036764568896074074329246176011056744289945318425776056803349098724902574772732760461042089073501872184852115890999922059269774708889513304005879070234573634571127311962656186310646577508385237999148275108415656332155890472502972806322902568002004193803719358477356346921558091494154153647585412678581980413813815801929119948960780439654841073441880634505740944391046992850135785960778823346198826881290566772005918704878890949867106927877975542668352316551728283522779222233908859167089014657205844114044535061750022620810900585937594032920170528477702650016084677254790157966521511977641149515319186901351749561471709986964316202583212548989882723464261706726275179366972107540283090218463435818592600699994662798672992473574030587406944182118896746414837307926187495054709272933992516387552255058229748844425241479334584838647187791810926372390340811221064989997306688540720370418852203093208085467103071570664148262196120995163321578854567719824583944917658334493484600453212415995497199460084367512822921795285712530840671854815894287841899049843837846290826034829881562343349674055107011581708308942800405384553216262463403961113024466817927824247805022726435205229713300622643498306846005267498030939444616523410031096042588555127047497247533377247060378484220255473432511765488746425714996251706798539789025820304757877135461087650986905211481834775086120422406207927780281460325706266886156475933865070896452819227739290890046965974833995567007211817622035893763579112434613148030804448960090569734981332546334981248841290374027176457715305687559174857046913033868427041410945879628126230364140945801578952234790041264525242030458636393421165914507432585622998351359361884982407586171889011531555284230784301193566730867321839251170336149941091003561969806371118348562548257098041238092212720070197394819086974475973503564998715219678878535087972323518326355597000618787312916617188864880435796785205233476624894188018855100660656723288843603861137345028812756952607548129109752275354351975545095227316051244100931696001161220962798143254217816659963631213599245758005020880638038642335344026228088092372286498200156998929804949188711176509706513940980264991359442828960959144614851386637056583256370247530828801774428874622656287918457958561928760662021580320943943596285063034988416470739114980506257725409088648199032960115145162767074739003322235167499585130858695302475069330041632458057776357336654202525741747520454319030369344508570454717521208403734155895446608293503072212869440337999354507982723821215351841229697648921544011082429647314878689521374296700132400625650761693736377433448658722269095202303049028527084154737110327531804768131999048875888409487197864870417777622241913783844262607933965278099920141060219654249823515323210194077929939380701226244064304339515705655183796383936738783485455020281182781899625984515084410573625439611212030881990924626816591238716004489211907399625892484608601862850720283472247645094444401214822505272228270287182654918410265129316187285462045984437087503575372519736676306925945933621247325767479291123597181221066322106595898961063549020227078846002560934449531606853675943550295933523618886774301517507124258555521794428713260787603467743634302918039600471646924282749188980972616663557092310620012378284819066367792739418823247017453623762371215863118296707150442508362036522977190518798709950178585675625883744716617510723609199905526741270469150417896508556121721788237266119081293963828436289225042364582904246270123316704668170113446231707571112929640996484787494269959833039398342356209112073508241176310692511422946915262827900828075043153726314501667029402140952454894382743166066608058064608864360585654703854868437150120794875013316140322972112684020486937548046054527981913237596730769964977243365751511492648381830137148706430584205510636977438696885924978834410172148968881419753067006308238813456601528398946021219189217672353398368091168008221103831142367943772661305446722022138759367291713211117617691733100953451070817139480383945572587734699369921135569048085779494325522605181707305573783676363302358495901963083409548756485354555302979463528081824541804342545134063789882051498352625640790141603704300705830235671722513603929462114857427678334479030407624417411340702502390525720444979274709806019403745213472694853895029302389745747838205886567432104910659500527842418032572818154254811868021261609510633563549198063555714144042000260947618088941522809890696247636236401549846712612012653999900616267573553845428744339282309421115811135412545713947957303792350741135698341123923428571630790889767901749886532582754876279197482502915845674598386955186146461663104153665071096552408294333731719726945760411655613888516900898903242746714544449597732849848932538513350969586482709014393191380245846014825214429540891388796229933431630327580958023701892450067339449573831598123900038275491934910558762896807460975151337376892012363767760309731914150541340265872509384141024792501709374303943141513828631640819194685361106457043358292715787662771414458049349938960280250294443820213915164410084387685299086247578312906590000089817206485693854446310983333566156080075381635215520777136918141626144364576051815262530265600012596812942732889395402991181055847340323206039781380748208263944822221005196268652234104921439262295995849429575150813075709860105706693259381397895247917547377289132565309864313041773985663408148817548009451167903356160631057608820095030804036917932285601619838167397385551086100823316277285246879891810258229221917280435019509206539226414960443418806864929927027211892040761846732664865895709765785979726450499753787441950958296772050270171227576189354588815698604663020231807412311402796745926788833587021675139584144080492694727038582141236768537601179775936193403250017070612127268424057139126806926106589124065891762243209507534501775004158357717614837417463182824371708426631379300860076541833608044477068489517742866504241484867627105342043842780122813106642125796617676253217169821678526347235100655767436217011990954384684159884576634355191939041223548924489197982851749504858628432341616772045634399489116220838499488031470539896102286012487675726146738219888199714466253175123429337327617174188963629480711281210196761686597343611285301680039065498449103283549794007423975003241645230061184339725663729542053900018040085702803961268379796544423453895959230183125979748050149041762699020967731965057052698711032894865836064205683595753192895607380647875619705217572002314246427248880278500955552402121368811571811298536420218227215687200453644791441620323012360291300923588402437623396167402747898121557197767015167864826265240221835470193127180867029524058460253601243412401137670319936319581533957062111575978134174595750081151663131478713155892265161653054172568992175732963348365289372850410661416058402383163715387273392214334244982639725653671445586703971387092866365788941398252633938072090777927754604745477884344287806149933769295177813917572879215798977676035453182233201263999694669123413913948393809238603033036501608262806822876910891032404404669800155993545165757586897573960055083656597613827198844761125801603069834926160638264743739760301394500813192548373121993090388719797191426885456838176926139196449054998759648305716860577900114117672097299282971992875871684981519833991461459010778279128950049891805898686694275256951667372713637040543710845233462644232331076309837894645591723325306155730904765316031246571109544377859516949831858893699241332243239663338603763056622542920374773085087329062409224455474651406557827957220643874745743742096174495382643821594911855802455311642137508730439442526552909509039730145550698499938386039119528046156477358486493650960589602540025713563747708210933662298145171253080341623631867910399017859385502779766984084284235214771199921137838670234881459622519350576205919284818703687321323835314332317399609384911379463146665229227827565890799127394803781658912782661757937830050765288423288942352086480700115956785658957055746481072209946291251831793364159738152229558805720572136391779756582529663264445816004130050637435017153703893054102634232575296533561469789987756193405349489197998437466635545740235758184006205937904746782517874743921636631473847700376801085889494420129985082918416100638307761749335809813532782161782044753693007378528599068333636424406837609108319041999855750885782323599101311123149189802168238610855109596059184650519335930757917189544252981770524768791236649788352543009570028599440450450153648132218913812326907210976073666982507310617395609902431155514659552185782198489909783541994949634926035421667259589689747502815507897083629084656825634622265946745694330726715731478227214083825177504107256996662361242589527110058320502333667698094325999349273806698577408727208819926562500215618278933510923271820891979298448491893770137382313020084413718232372751512264524816500574942901255742612174618742070396363095017344880662835191117605096361544355603303013670667005205166557297630456592000664261125448545515499388670506164788488308538044356522428681268825948865394159148459283625007744611856743746524635663570375625932126982858939771697716366977982716110585621845149711779528258490123644015183752659418953698875683725228285068384641644190131194204208518695690885029775844288257010938589242535449323693287218464559941318227657304538061547036836661076116329636155964557589562126521596434502297111660333843392344686583565957871852515895555055285728606529765390703056923119368736078019050876391728193077169084298457375302750976069423169417333276011099402283824905450828568230776066663845357763714640989879375304256084156389491613585333981494296771255445115283701802187648247809153338321271894693049560491947071493470702843571957252011241578277034497049037621258475184703633045487988355990601718900971298248466053412961458463831097537048949783008471024245164206401610019543227915144944786380531722616085804483057079544416105269171023001931740061333069462061676950780672889841600759455741127772078727325436607039317961290895545845812173558793970794016945414320641031058818036171064339847260230325951718244060009729499793796546327336695976975740977794046254402194071454397369025347831715048948418903621687017986684631785172135870935710366633547706356765108981659005152489600514646230524331344914049331787049799990353812181093312151087051040852995809828882080383480497765269477477147510308785607759611617236200088293407194991298378541501630803509625038953758576856357507108041070949699588242840576147902726389628598074013926749856315751074619932753080689957233425588773087254491696471843399804506410231718602281589714466534191720628298196718690982934677629918433852229714781018294697280665630145536889201308360314787857145375967579534039808561474755563125904255080804716943628931151694099078472092355553725638257292175610431122610132317182050998222199482533410824388275863768192160158087926618970813958999521495354333995398004977457455883219177251391872900813202911187685355008435036144510993016852713282209827822510011755508892585235438282427902499504682427949881039522437348063448030778221371779474995613428492177419048735913360520663349401265974472660882731921056683793046134669791209553002737217079681641478795922383321776369676167872905522507904626313023439108540609707870542203882536047995453960460295908917926666098088615702012801315941558652749872470170745156333385034695417828964042477251496073061976503962568511762192495369418380726911211949480993786836123776206393726605553524154620682768377096186850552208031235574557331210564317936923620023952589583522551737656884771214919337009680904867228678891658021686827345376344484571617177006089604373561731711451572760784256177867973239807837347457082436857177723320142668736201788504869801803601488228058374589138284397624352179640986662709951384888179687668648558953966750187043763670388212606610957134159454602974570967565912427698817164805458265467715759516713338046617586972985261666942863991866147091418263505733770825821170691476133834806712884966212299333087825678564367738397575229082934915189201404811760821774660883767449777019641801086651077162319255328513618455632677198982286338966914782733026974432943055693614650176015915572285018928972008134836252177458866618631689061211154018056222165155124013837608901270179697956987250001100140765153319502374570628338189384148624622960506889835600902783967055396004248171243130092846540759867771048918418177407366966820587431751568104256499631528273563147016240502386220326503744906955918184964510508415715176849720721597663503465164627660611029288042189840942468341457538885577503608331557611076525046670184222109056031918846988606585608923360423665485653191595589491553925391038066427661544995265040118071080132436988403068148167306754793227984604661371354532914253362038791085012524960327095132067573972141755244881668223039287958321924779461290891143080150863972372357551012955200047903778794018573416286952623892329731949941147942585366452356461027327208836991860237458855203473651445586778003110010563575995934483764909807123929682440531532625657988933116807733472564280884430429862740791718666025523778126326671803677403100040711649325552372831463060704712481797676471184786378190691395011165623048558885184045052544944427015847856526343502925361974036297727396355820754783736967561479284701260397271070214586198200291816238088866824304527670301151180795375543581883394235268829487388568923434198810311502581317005448245079064910789563166125769253257955265974744767378170517442571342757019728476662977010251522065388423006857977400907367696270113624504803487399735678990796674895552859308780792506558080644350163117153138721699390647410170779999598552350996331818207457806968478502369722744479055008236428644680866878584959829085798887546184495818083078009752382420504639054605388969088321806280788109678139070506635251519475918950271562478311548434124040557408806404362828511972142320095694894564002395795108203631255663345623257550592064340327544780183293571672849413991549333900032081157086313908064331565074216087321722658238971199045758266168840211134503715669644435043696586359631005701936494291825499035384797214712319686066576491419808354380034818813946217177906317354511640989086899499604753490156699030757583210950777711847241776922644380011721565296465899938549267531461575508899050236482490920486307706482390157451524568001267243156402132547544343084019268944421909831643383475129113321254110893560204990249051357147992303797464727646109699255317045531727338512246212329280355850089563685234759101849852521103144557636364255550120883225681265063002209556967462117441294478078206259300436758107671968848461672450775884102779369627443532974985272307333103147010380937352242472392590025803990582344372295240480674272995058528791755234250697872931738198098362201916697322819643150913612200976390352295192928212825357256295139555159217400609952399679524143477908230671468338217493120154579247243680465234326008802323059721219809194405497916717938798237264878325488994750258686995170635263790365848837966503936329864893212368732909957671442897558539603576904592893667927963925155540927387111885577173424327927981736123279459767009844466109129360366654174065860432596958924508806468376504316876922114109229809154597285054975114285606978614157806952303209385889978847986202213973911938778700892610098664365717875052291597542546550153809869275413955079441105374955356789869521511382715114726218029465181356455294935084023603825564038428161517649764055132912333486973567943237791193494507275232481560030359989191442748945315865778610290886714422498123715861516932922906784410091482934592167245923829820717727008091654989802526103906689469021232395197022877375057286725287454354991236751194977986096068664470026449816656616540681006071980138468792343365733567481107687635053713512103848028866065251496893211640900150774270881965046623209219469218100890858668724177081071620705468855941721844840291880863690188965002216154184675079431100302205633084755567074645635104584284437601915927143797273977429130550292379071896015920232945828199083039820912849396111536434480144149568287213069407597471986880028951691138898970233780732208662465136470856107325928840554935233952393219176415538914477152006211905017454462148291348825282727336723824951231247045689673095179575838583199364717658307277681922896467601194694068050229092281430014985563009261688000838833376540334723761790679278856674497684278678428815100754437163670784991266871879902672735539826031896792611799660982848751277521284392789789941134206559509036751292030064324148651876894584027463405804864154006665539847173964504808274382236607470780357408697158809872741223741851980110879525031249510061675616343867383160279520800478170623661039962303851591690760881601330691936512765030456029502339034667321036115518490361462002489625043466487102055573471337571411194297218015670159090951696237552687361601389339070009874242374253854126253249265229384441688049793693808896457433691063100980281537039139776705562457296886238777938992561150644321151053415081729073666714092016613794333234732836285865608432121512191809549706094594028908049494760736160048314890660675032236521486770122290986997129329212656491869893566131308191165724129587853130562947847818209485205010885817649252238184851798132915197580489330930580956850508017225502642976605444706855347035869979209928643104232985742313638358475135357919380012820364095038162080843790901138016161076827786249454303351984766608486331281485919774854913946733389548115832631000981233596468616901157386915447628377089656257756848624779383627387911329047110775520033723580924646951272526720271004594416074724967167250461951664947683123972815920104393295335529051003968505048769996563285693000640138384738470126398790369722334136149837452532359747291116861769735443893999786077770394259414422541027235577442056245436165999753752231414582071819208916295576119078571881030132009080231369553002552595231443970261677313842367495491919320119636642794971520330319535912346972160159127242277085616402131635776054378129519503872088763138247205202783471337195959838462269936013901634507100408625831680611498134040598225475603836719003836996378853596397219824789929384860601991299314396910372475531670974638147272656919380278354683272343469672359938927062663511484744665046171654160680938553393831737506349709260365218690686066687960808656756267104038342573665663733788785901239410121079889682494315236672316775792298821654564572895133003097912148514959242631912822730722488190662561899477659263650347555046532613636436820943032520552999248964289087411880096801470293619097137033988762062999540188502896057180810826164085142085084428800218595007670793446039466619989657346079380556764333344314444491924257893204607043144133113000018326137034533550956478335630551253302922280251557585675734651103050764098576229930319300210089474340340172008948671536410797632721382436365842058251096593076137494843308987850272989259282746548623310268206530456580717021230154247974038324758500082790466102649138699386663451981545979139072919407580800216512778694494378567826606240485291566779462531101563069151096659695905781911614199939448823951423029172740098169919149953244182597166262600590833837627827230486438979904094180039011137210231231640233824127631820106785554549518372907792515575735089480651448618760815625829579852030671396303297328932112934566783137983498362377764964317394430769766157418853105922497015433427428913951036323570919155016881081519979167931698669241497896464977029693685807074000180709733105233367020503814188257490251504808678677245854172383126941908162644387277413847442938606886665766837081812856982957101639151863978202887120855343628579583617863046928912711902297503543041191239493764957008523548542151292016308132885492365579851069124771752514674417920818070296998052317850541107329784800724778108044008037922187087728382391406855249540189404233838257911871486459890167191091219724330481049471544881335359053627160840887848676209852980194795805665955896630606766247662881166743437438468641463455039842305213587533048786682588020893167542854099522473888901062460911754174035037868028676438861369573613393262198348486850876114469131709351654035905484142382935282017401624154088645414531736185100603558171217724158270394467537864686793142046400312419738683240022105801680286452128105080025182013584782614283908306300366612666577029917257427430959140142963909971998220082213827269699956109352069536613848970316686682786003974682127121151618417573802901066436508142486237620807411040557230882658260386769927776531602867978844023503666390763055452137235380105752296667018953331926470400162156619667206906280274325248058656739005578837139519041624338787540738638303881705748185017530350763302165709401283649062188080966019547229947938547935268194205958609015227659515401082984709221241200284467108388852720080684252699606328121534986000813803361646604291102572966258373051533022404098832748024802971585965109878404080251883277029526230672498704014920329390186582604562371293761619724569956543509963887494944285349848736718818252232378245913713568776204265122653026303155657181237027749092483666429464974859713590974101524053583353780644417711240235585188160580635409416363423735040420657060979490443057171974743450395750213830527264609272703540250103701160174291115600099405235630882823852454432151539989471913972003114647930919901753928075038917166367091998991984401183293557221916584400013795996961049277462054679053918807943688764069803334243560010831121531547687174591910704177907950041138310473540236009217988614415802673604821246589394616383698201376640387041139427157564786011743147853394375027290948990012401290150653269857331225956727936032247491531145680949662154982761881325293633560506485146100683930802623469274848542705524880337573824174036406793768520710509508108496360022552669793101322743653841028366226084387740050167072997580696355870987285912309350994894192564682479326071233672548952635804645077485054554091011151603986551513691319454375566238423570078620319580318989864503279290882127129370126567966659073130633108260969656727152911048272838588843503317300155842406274534923604586721811509465575571697968719462811236469725197277453683894995067264818715525023719058509210061344759743407443403203873122697786340238764598556412786529116629270919091390180807757325683850821342719602748030345181518027262477502468143100316446268891206118370654193551710333336921719848075095214842303145738024700173608686008171610315610914888039588217039205796141140723038630888529463357743483962237643112381129513219349835655231571223169271211874304364688521754204211582999542155018568310977497315950018911453760663975694525078288692694192502070530414773154904889294874722416569190702724801193748847557619809063121539900429934888555629513151143060631571091272892018307348590235926344577534730983842103555842679760595568253029029122152964482939112121988593372385232830600862097330964019979120290547624296630574228611917904750721509265419206365716246739609272519034620044575820564832994883426924628884278448236281832054845066948704863650545274270178077424866759430736061702634030677384628051072166500734179597622669757309846620642391988377210485566435535277021540128440396834691657259823339494781389820555805675515857815633962872806740130357750742407706493421723260841372442738664292639758609597808831804212837000756885915802263248437166857011626839038563814136271412404742155186185392003242990671654141104149957004930163407925362091289079286387906508226343053039724545661318666274908834675954024547783802941348826658328628533365802172965387388761603126804584701306166475581730150466391986976962048799174565389171553716901672993312313812212920347149453344648680517823481421941987814019787334356552414574882230086140308093358924688487750641504765765939182922269872906213295422351442026327410753518250717765045628885844613962008975168150375228863282264434665935913732312762963519631698455269278179363039925828483397029976855366922747760796930849891910123399759555321419196482597883901795910113527561546208511616382558984407670799279132072071951536159194830863863117599366383692420805175725226239868416232013337366619291660442721000070159394618693132889462422756860209287771994670492241769697339339525606409468586035670879882402331992954062870779144705784954130554000957636157351466728217653943630344200144967370002124013286949376484762562553735727727989432487435343005117793235968085036995424191916335949760651215034373873118189824654087209379298779043158435823448286600602473832246881107698387513673776567032650171028428960964235379083318870699207833090453275267367001853196220425016341463751825222559912819167074480018265813331506790504814318635659217798502733556526663786138551567256215047856013948894778735621487486428978104795566111691284651880027690063574986392385430502202806308517479585317620838919396892568006393613407391973749914517379528766812883153262768222502285006201147680244296829198101131296556927787802421967715503001437609265837941185251985841283118630216051007585610867219599243017006782380868341156869149205303875315845174428735047595769095835003569550120206918164817594023086877065902147888187738607341072743873102678071349604017990359179771647590002927728192993616723947960768925821167697560870612297094383226858160884872139226795523406408185649659120476653199673603727896935525573061050918584311483739393244728200225670647603980692984027625944576143922890991396350545689257849840089026655745632744699492953085566295435523108516959408543490561983978881190400504322535717794882841568693255422003343362773118160428949985878716491590172062740327438534673739582202597551300245380097438776569785756891135226725777863847489508817452564452207594387119811470351454836349841256108128436461737143734796403272879757927951863103012805706816489391651512611138888925144716899403849068239136125324964448585922706890385390063194987008466735173533908365365646089280470627288567078821530071322266385310244529385580630256650045631993156353246574479472310161697531535537922321335220294276401969786256347342267854280372396572784679964512027708855913467412773470084609696241518214135274275639186684270475337045340368990553091791652451277975533370490077736677950744983697881070914734416988624906828766146508279736068668423382211714499731171655337014747795321460174600373496608000838056218771311849483004303303468711167027328334802230207789004443760701969058516847817714887798190695396125067274540881144859992091151662910558817433637776661939387305269590484740158002786643772546104536982552251120666621047072027244469811665367148993363276902285019500129096121956229221311718201331601168414374921863122307189285893000334853636024309649125744202087523113211361267058225873712716141625296508988998380661198960547498757322429332171444643244741095385728982913686358261834773798756531746763785421694166025547813659972210592898712907358498242926679490472120953756237043064413442837511774039153185560088982920583396857196094494395317181393706333674650621048115429298475231388174346381464903130421344797859174121175047518584567348895836475585421493405178133616358887445764015455306976639165114146669041012884335801761789841172090192404304123573533243813766495592254156718714157331165321946114748236589661840695803082817205937916213072003110592648777156605307656136412984296665920786155957627782288974224534975734324833008976794082355068851978460820009018156287444977601620010349961239885201196346985034850489817079290857640072182599318366891924890321540575683164429154973687895594908549173339306567384419868895738853383028358609912629430021329662611591057675136021019889669755401178087203957116937380837038556781920031441941133986194070790511493459722108739548923125816946048469709520588709239237180591920342244938726044551718093564543065457230971724502786158120824338900335733064639412521811682861516520563495746743421133374411494447646742553165766046220405176404686442665392518059422994725055062950843611453005983433116147592147250128762078875481130792584341740594246234323519046674658381638679246866630313953784163108593028221389741687533398282139846812236991587920287331923743788029165321573657700116621817387126012783335581876180181481523824465902097436267006501873179905652922115764175568559991663287316125845207771513380421040317376927717276657783883614766384463006110651153844878259908843001871545834460373482021822151677738242314437972649204546143133440353847445991559495303702357187104445981646186902388717536309493978143132610103129755423845253986551474035613680743732747073316953175507938706707463693081736293897674298561494710002488307895294445990174564283045389086346359327123043421534640710442364143621569766519069057301942036049440837936341053106965220054572838515064206662080891651836069399748583781323140153559707410350684216444237325486038625619645782546261633307701187822128665712262585146896606249375319208988360770456977828672702819372114294545029668978658291201571532649104658628119789492838010901595016359409299234077652697313977464504481421501921846584307353450721928266441885651028773626457468113017547275803979247634752306853329920213661296692161432855835668553244224292774662140262543137891963036476934867174342547819902638691247550158151712935088695777356975002213834388639543328406630768095168847959228714036300154453885508785081445655854550082269522599995744068240782984090920619268444110150016867171439598248188770944508663938506714714515193961346096223540877217028453901334631027135370988539199234241941905836903355193563169457730642244179479015653072350679593124020351212883148092119803217972097992960874738131636914460682356428703970641545554215206647129268210050879803475572203456008264275512964837523689333280442259763660218535775409775102490374451220208345127847446855302272865527389263901017866649366917419805220149821581808073199108263993957820251328876479342175323438448277045152571182706271849401051155934540178028210291683650645945911588209050245435366530206790628564631696156361458662878693576819822594506601657971678714182244849267139759593218740722574523894564120037444250186614956894101320798334877600215634206338083807831816270278123689987591648702658659934396375666764262966998634627826638905120918184284638330959638090495797254445418640472869932463863742481631304588957847241216542223586208559404391093519941953155521259530030010139116278446277809622615313199522817645816896319109413870300362430058242683465683578602322079282364880020940909729084840847743440873834287417146005096293836430531782788211851886663375999462801151686021316697702587232961592022457852536853102971745279788279454171107048519425772301021218554899133893359083906957659916192445080776693900801574775758453088918670117891700954646606640577561380292135119650216102713642870547733688059144719468750666656041354118523064049093856567363522491168442772285558562206768892329213932189456161269278425519748496189089289842059319901235925718814874115428746175973919697047129579439923759560486009087280306611685725608400259613369225520027449971265916791408489149169800554570102724388275519685368359051519478295276609444296064284042130236921198629123196668539955391631928163778180146857831071943228044436280993923869125253081047062263912372879851126471819681808363533934227863428308533439633778933134406431091752015283784016587373989796869676880268795145840906676498042375919901485917399656527986882002530735338570956153321708926849424631843505797650966406022681314773555199600098339028574610582014135571575838657333458187460665366453980901054671218458205949830847794290957448402895483505275452749208031627568360711406065147160368792954526481488042759716144693544516058241703126704525463800076874045355316657691460135651533670175404669184809053731506873631361552976640677478313852651554530323636986346654759333233331015260759317434860565359021794826730961611565830676373928870791830383330770971166099370067091975342176423356082549487333907365112504529994194418133559251314868887163974913343464531405016953180427697095373147044651572882768198034198902075381838449752145632960944033314022011062961341874367989581493848537617407168996348234354065994114713603418970435163875769548044655766968174302395609700477581782752911354768241252805449000175587667589842006198491146362715839979799116660677524082117571866516205775052522176289014890695545912851484564689328173261465945316492590903278845195724269345496945891312935816793332089369845973397113484183543020816344764599446468026319405966186767658678524238930305915416965196128761244848726907888859608782098697567724497753346171891639877315986888909352799975298937162037809846542196448832426607055068560619213143541210660547934191722128053766072399348464557461889161549049764759187907273191555594357887487364805921924608058952094264589230126996902253497736939964813218363157499364772634106791416282273117344550381181274886515163671891395960417041523613408155072038514914709483542121031111097615669278215303523992272097041513345480317009133826233949037246582250238717238881912869235559609569590171784634850550865831718676126900433604875173936152010724985135813697344215251855060848985442033207082402513943033911139018376877363024408660582234451614435002094010968359444091195510406024955593512072615616711003184154539179212921065931808042520218020136525191350544205623937681040613004650777310970728954601187067909042572982065619352893888249832316390548984218746276230763724435883795263278061385627249371448455496475685669917538475432763846944831403969456708618877058250879585839424617672251488699868965134278362735146862319369863859897487738829807374683412319416929272342222587291087556861423327267290357001142222995926040737574188409793290359490301382418497397964146011287675782119908313448291685790492729163189092412285918721300594488017409091233760049111400141139474223957968616023517559406716984490933254451184243620965416769832494004178956811867412057012785575765725946388618341228905903331965798566339663106776165342374658632019866709242899289871577183111306553578845698654634122478543867284098782398638875628199981660921978014722883662767896825261156921112701017835987236021100622508934293318128898348287526178196498373842250745459444567218868364090094930959171166762345195265785028519981924397506311259217465881622424374801394732700709645893872884078824002201371860705219559239741198744186587471653636450703952098741620215728813962429309973353209783836852420817859683127710040379699860699216335981907376007372545983658040505820986113211807163869803082509821533972677035574443413364836980031078460594205603676633884053325801390168651081623648348657494526192962328498641484608769402546496777788899452038535338204685985800549626172257099203019662485862392417460214302960441411045798496360753457253490773068058699033640663450914767248579734807336737969027193450724666025342008920206858620876899578728741399882575857749229112098678456686344370602096564392913394264888144692134812574430421959953825081912994414597223183566767603241742866043929320069824534869565154643713940868301461530502294008533438176132376043842053501240155044411375388024718332175692614712521039835237667261077811859436336348377927676475555252839401790281603551003478669924268572225159418066937221754127975767946374821082866337481169020354574816476377838730992525967408235752699591976922907413578083012784515759500630091936879102881978923609417774525227980069857989966996921666539261009604226503479874358208122027536534937301551685568173197403234316156205577513633892157758968150766162591594993074840583856878262868270014385956372414956738765475629817230082369532168780833946044568775383456597083545788750697980011878368567107778494508076309080059979373763315558782132915354377916729376565747889271574473565817664902156353843088282081457710950919144657883916186149711522608959782432167042383462702452083646003146123080996693578424078483394748418997936580091604617738294549404901254568313883194949165119521290392540195175151121703909325524809981556609872426320903954868682402751859381125710296010601964863108152616272955344800391989286813796235688801022386966742809306291101641326349133245858338129010137287187477456963928967287521061105933568813540529078977125449530581017583034882490787972291965400946003087454040683348808707912173455467283280179990268230965569571165452570179433308193654402755122037743591932289657070985374415272279485789282019427955571969303779000983845643211371032828693284589585953846979424525114860189090920069089094624370450084541359325197409924999824742971597000618207396963819577188324906513852606104508927046379501310829438845638350377835671104392745365396243721602403857494962093192622816683292969363009532117384953696766615407717279943505290138746488757802867195887422820454778434215085477762896095606550604631103281583553460010298465662707972104849982301393443482310385121554511450192301684568905414428887517145664323864228412271278137938960173540213251780776721966408821245419708711118248730821582370729140460950529451090384363063492858945461899874964910199557189565945992311221253934272126699896537067532879736672208655802218862733535005599886467682270291925006185010024897773524158077322562177257525046677395528050790490734378787264980574854705983189965215746223704809918055133561166875041570801344926809881043117862426462872218545814680417635037957280803400989323254199963128605850144619020058077163270808287883195984880645399098293409951275468086924271346380017885417549927877932854856824384714492326373511078553094278600673882498795855468563202180187820530383791265657113141727337386536125989509136061956324974843636101208828443070952686820598316712870507951641397184925304701869153266687820161572046331082877365661988077436861186539284179208475773479013605324056844339198428302430576509577392613582096588662967360395768606468658674907802142583550838551310314822107836053606350992085540077090381079349165262093551409919599676931520551108746266935741070948409172551341691744949639207283666957796822445280589645460884875555968378171186293853689717186246315247478135975294310082389059317545170247390499204270509438987643758846555830735815465309156437372161766374764751843115224121118413730027541500463984337135653963143775125783772768144079362833865880200382606508704446815048132763772952902731571997100805899537268268005449198858226206978002814492939373889082077591281991294915861006450558925399909878325809218048821570421121647210320031975207382019199922120579901206914281661631163002556837434604339158679300062484839070396118699445072877543441818542695791486855718331558746856372746346586610459744775318660097039104268740737631454447933107002514146088128407042914262450381078164523258553697492059997891122336993907202597719653507120322193712993589081134989121453893338669153733785039748223624397748570478940461972033235177128060394464977399372818150251347080594181842910700920106060402902603043636881895905226521643883851177397239215628750112625916368298500339837056798091775607187664038184337756196389138776565340249125613881399256577364116489615710079949310874433057723584787085278494897071192353200879955217798798174731495553813143483560861892626278260374862477356212034603988639334436144418752650468148004369363964442155864156136148377110903188473868686272003037888188825643922988494403910706336841980092263219143624998348668853767758935338581334243338576107190710899769186202190895397489978099117178252809826169421797468650638528347761320301609380741275170040638405441573640745670071679473944403088828759841283002371423286829845604793533170394825706380945883752572571994625835079234987591533379654743552112835671537538481129563566094977410094614236361315207505779691392566291252891185110362985702882444812192533915571082462873338715244693421919962407012679174850608221666096236667238438165238017788538349244835056619224203209637360464182107318114793133545153793468656662863342214861728585666011505684870974768689080549201627718430172435729408314585465390569315809819310926715863325611550007963466225666154377650161612000797296626553656255366219712606129362910147656699643075310309112390142877223101996229754310298806922784827812247351957176793643025544622308929636215957688374971712927423710456283450034997469084978228643438251467498680158947417775896650074434234958084289587906750619724763856847038921620207403175212188732259619708012500932980909851091909588155906607608953529516330704526345814425314051161183882120193930149039647600587484867260306931522257529111073668993780873782490542242288966829426520503613486026310069504422624903813469624587656987294461116088546611237139808272456700949759744121209389948277752358874627819623464167926521055125340657315487061815441672069203638219058602190005924418807273125274000513275561230986583847200089895887932390121874088926838102675769720066868755066581729195225244152350439319638890676800206874270277357196103744044118881753269838938895562932878233343243150129487568616997451012212893252875424796866541090340117999287491919548099036306875833117106329988622485854159668109877193950460934708898807847442389908640687567709350544737966034718271251216087109877573582275039163762519324610698190628598571237234633266589326669751346548159762923655300353583720061563434064416626645646637052993090780162656248238638347272475774757711825075393216833045858067571040672799022391829091548580980620121559787757144334764210593384325809345272456146240643488764360276248649778797012208185148974981368962463777434760366284981114455920736586691429792585195415628843118075651811847367462665466324784730677779008729662315942607878389928322768296199309081286019138781479567557592593452968513718905609812319297688963101035149502222160038711118638008207517859773747172686238408182030244520500253525696240173356364558356640931253710235608298956649668518763570939920281565252102859476298107188778139020524203247302906233986385353571019667278435882145814779800177109400445454280202271506504109853689962806749178549554406519945390055415697771404528751506525514359346198197213192824792598445840765109977259001342298743901183540622435319976768258638517339153344018891440566677167954443646984830233542428127461336531423530973634974840978083129516454949621985632389031559537116186010245990726205903799051961112771580172565585956619502574741871327444445232986637392389998653962523953854819686347626599381305728100755479585992173166842839743387535627254884342280480195087309200610901697541191325386120859793571554022020071177087989091574939542319688284671870514121635915652404329737894547010205009513819801638712523130862212077749883379100715098231922416057463017423773828410695699935011621901494653876726948611206606746964013251432216675022345461762344544558417922714962914294317882871554042939734578206450479958129436770379072225437748847189862166952570046943072526189973026663088334712119539027340071244120599592216941919310720093177782362378933358169184807344544692801336599131521953727075394043748990999951228941501029727636486635272161530461059905248080978390127099883183568020787381521036622805275696902271963537593901173404234685492090718609576148788352446167198378545598490794533308510997731319628368771788932282067375497847028340239439162863180868805894614626779782550175585445197695817935619101838876506460965951841704148766395514296846603941653458213091176649934392173632664761001252157955982673495979093305826691176440236885081803291319650385642458353023679322567159174045230898869443063425979818631188634295905962097653574731210577037912136142652032274739032579254951608627233630319464923139605992217269109061817923513432143389645643862599759187642353452976216314195636759462930688645114397445886355283243345899236175668865519813134279624966286006777873005241061011122011028454489486130630681242043626275261787071841361854253510104012842800645595545968809931303715885223917393670343313616904232340275022737183558777166707465076551662777090572431768348697167517099643242352274509140460051742871561200560838883894257966700723271047596107102932552646933279844874208100269498132457173115334405267375968859632609068398343240033959589318808394274186335321223971046008875282637153529819910266677069094492738362436343123999805264860572990973534255251044335214667729392785556367341790202440711751011361005522025221217860161918836401645342239437497193938579854595041305619018799395674836590180927139118503662267663462890551477380683348929192315023808722872654709607157410435328957062446155129803085087458975656134046870756952538463995829538474936046679705151403376877008004401491937301958282863157066640926100053735635926148268295895487520572378916391647285290420724029864579692158213660951159202534846766553349071616539012332220668816486500345684287790982286411009876633982143337399437735604185439886347835661762571313676331911654002371544694035668967639966948113532433796386644209753874740080089738923836303407256003191270141009721840484795567439127303392726038252624012382434299913053052196436426231381869062203040359906684210932386061898160735132805565137525153283453094753874884010840134295873046536704225916645467215216950343790731381360645935873466554454419416829580815670103424934419317044413716534274031081440247924657185057102521729486112522896301384617991058779422090118159963386635541628798332646975983093438436504152654538066135911987923869603693633346456001430443215557770503511369502251568252550035316276960252429698131061242311026527110442085484710564665347636770085180780859673616146722988595508614362632261799314772222511115466831474715181488195993815677374653606609076436032098014659981272913942499844586851848261354461393064589747774614565981834514796966324489875841617781702849780189642423471278052894557462889843991477491237177925031510844937327885655734289157076186195046649285094009657863935447162175180677177129877971928476416111609326131676804651817133870236901743997573085117290659867982701804854018995293260772694499874752139885186670313853119274277157832786760935770297587508860515562203763662136098115395411016738254904675528167924736595150516819592033551441520494025686061693048556359382648223365769840223076379994814546927812710441988852718742280552925820386700768855379222214193464281624636774658334457601199654287835620544907899829489409112719089061556497961653436257676071847263880694433511430522707289410431924414762552053128676967848625928179041693923436829140283004028471656347519609169476823403652485300007978548475477098454544430322348077794911480717280994356893578372857858655944463902144397544445865178110043375600242470034302153079901412586091809213504852424739442423650703351693552771360911471083630849888636524809674219308936981561676374980256993837601966842654360575923403652778038793773872247508792951822519172006112730519656356465253598903539430622804198613313657374494649311482419493011686532770364636997951600732672765036654677382921354238918994591044001972108014490659315564290041290196909264559929944820108260910452657737103023049880481611567939344051831687511111362301549575257395926727730706211406469561945780109696195586332515196887607072295145521817527810064998824193408241031455286913274252496314586930950000660812923961079438834720272538378918729739808883466971330277552756854473506366347551415159315675247242847267745322548453498370374905814352974812507877400592015376255821713861748768624841088211683033799462140542408286283396636947255322480242650083847687251975136387594843444730182568489675752073770113566228880729233771432707969009611847552997698501617753688574058716602348888592654519828641939777862924324163086504009027318788173498087880574608043689724049813396578014954848806372713715673024198107076308155284501333319470405206575769781334587766723163603572852626918934800392190949981996694493710786592998135935310662277401068029413288160487427985447342383444614948055973462152600991120270464381985045482595841785287794237249222651305664195165168019051420394702058268440320464607072846754528787289972110521120073785805977107043074433973110373349529855998923975540874312268565191470984819093215626888387544323892102999432714079335524478489881039114335992039009042167393456502964493029599501539660912565500055512349799071949295886813638616729436348043755341139670951338971614644245649190344314980481701376321677234821691097535526522527508392608920260026447615014393834876279348286305608427103428977409842420008101519910392489915231816633890092934564298713369168743443717102053856920354409223814582649371159998454307860116542890439798024739509944742372691677633768106180644081847180177695006248518838099799743773761726798966295125061045754787391867300756576122694742839096553875634737916255806827086244331798325849489685008975489583220901219889816847192213666531983176089682517260590752238555161291490789975817522711301678792973259995134282851378527727167609789041865793470355614370929318740155826926128888673514228110851224610379266926645322203612002074954024897232066113891822065387866128492562285258557623191291301332051218508272271760503263250971133673240510442697626507208126527379838509183818847669762469015911648176969536986682583696234067912271316689538115109902495288556978231514408264809309053945807308271115171139123249381525757547085711586380626548196916265200352191252452266204144877936074347758504402229577740278090335304346730466485175638399253131637556755482444140443490470816033891598488696582510129238052445172950671902675739978493843044251029178057705334286145170569472351513508558379835745303190926475767514726845122985515080306847374265818907952901755114432551814243772992688393500822613454962669766454594053429703938463573333797704688516427496414357165770853171836720449843241545593078707645415040007617671323551748772794346405131341688423685208268606839099485853623509469026820194842417351072164220175325123446155382389799950502072532773080279015594039174519757813453869529632559539555873037642625453281860781442447241013713481363455901080475560717505476712908003841575653373887914259817168068693750176600254454265444594408887823375257506680849041014696394449755506823501274036986535877686001450969484034454035982088295955789848266620862138963739539215872617926514580637375525720353018919558910057019742653227457199064889467898741602288889819865523403331708296143633578781021806107680220287074985450604583116806121115454959832471214954964692668396440216109594715204705010431256963183059544123100677258977492586482468439435093457168997239491132914245656130064858937409331381185760964379158945844812671534378477284341920897033243887226696942531360650329845392384854388099482943107295115065841196188236697141981675423193537799055627104628704035557342898252474744671716186735950496614153640691418996257631318902620706128268922808485028739903867897679657059515275057823749379498105044957777339386084833164948720326100791388338102783777837691747220103901049378405179202257414603591592491048518854810296770685631514435068075881921977583017569240047297931645575330982068858418837106420343005659499148681138630025467492188722503821360979557056834737048701414523123239043468271356631777037547129304912511661993048539225879368129663632259206386319551605662940077949102988265499385500437490872746478086404814550375548114428877277625882249033000526082820766326290166794427296980413278100147440641292632142321270232263691558828137964543134826830613954719943696837872814674506588991904954893097134112478191677955610235407698294769250069393365645991884307302328330668939605682847954188805445723270166279936753759259968789971140803050086507505957763296713848267429006691428766848306565324504918053775907831678309193016246725319461628807131786936364773208937886844962123325316783305932964693046099428429234472775887160656346735482171847575980641582928589195683396234548131239800091253299570168751896718301802960411537369822472909700616352163511172499366702000804028332356597266709267460410211339665957595034047570188574997399389115255641357597046066910691977366653582787681349055360981114727480046098403240539383826878744617572434930401151578842111597678801601339371554113252659084898255464558712252854125649852370546553688245126974679236840938394554964062323820883484342551402304998786869942791568326273374738822598127043661737842493990128112761297420652104310641676220619566440139181959743911911270023038344416060215484043183384397789211478608027272656835019156040349748115310139436283817327523010711135801583424009310740291768285125026386446099139775023426428671785599880946620585873147948318688078188059488816612763619523353725158876723397396435747208924030313424823288158750289183444384152280371514728582979126001844387819331376258599886710715280740073836808810479909236040018833463845641900097625970980488835833155354685729354341180861185698992740640589702716598361223218597070952860476920100830089746447120409906394251745524959213554736074826611598865341013324167462759875797935150654506148391193229228806108917127920326473213059038232621989439057414804393035561563428857010595282085925590337309050687788366716218706539375569240186304771401126130931277731218957348026402116781810838193549362179730931478592785701420067870359036398612670821547169862623881698860031757217117462547300019898257003563264285808362472447285581075849769723173684077925067686515403774763755244091369271677229380524552117988816033793709392914613630211328643688841589154841887307926161223439124725599630370287589663901723397795508295487409695883861955981163612675761670409388049278621347692209888378213511073515888943617131302262824222598983684818576423454398821846829087880438376067697670907535903847858484895815558883979368940617830920529079333011455028100095865877658728582469649718780775526756970938791159090480039925561014407493343159989585235884509323649644922745789244807681544050935418908104110183366804203650251346311811046288777673989790292095169515462985230882193784924382317039766356044261723296114577129005717363621486698921090115398672220339614556073786355864362483966479264303893484380663429129266018018163290417329625179793087877967142884575169289951676281236382523423167043613356192953198002094170062154685672005465150134983259802784241787805622530709175716487022459259146057432860470392816988341533858926913163451630333975118868898757643888144532281934561996040316871111297636232190031312459898762034575091570306231492270962673565167867868425872662660325512078384221746789582653257205161444499590612054498012333169041685183216234416107984758143170345469079375025623369187463275635725927423032441537894836095057095152002373820298816902672506650726881520701549510787183904816099181242602573685248471949017528382142605457339722224078179706172013983946933373801044680147223778732188033310894216343948926279562085754567093233154358843429159910466065032923227035875719566977468854743207399345342071016057473426543855324205055421100121836803754463296275212251654794037961923153746946749881206398317283359161183266858350323988829740299305251912464570211626806491771248441454045537932618856069925042974710111710030187204903854532370514622184009348824199779119774594699413650662756169495475344287767543693241124189901369947552576203699760932998174332587976457459265770355859238772798366642143941408052886011473689340106509927305823363881003147910765450373893912425156938276751639657358644297924706906655142803998930480814615825286879828218467769187212858176413995817914369735989816316058828289786685030278047985955101057648074933429421317334513636448765620791702255737407776641348465832989708835249331099603013310851480741695102430606327849662842155505433702118482338543536958079536257927537391649217188425469844198106859281007979077555876996697742117911048636465645197876091163072724492382758804363362071351585681161853778874200566317856839060613515950909017291714865031094621450231481926321293190321631752846358051785618365961973686934295244922644558260064569415538717233279505468609444611342539582568793386339968453892349083584917843173054210471460497671595077638051362144144753377678998623615380740592207650215580311805238062384954725769405452804638408645153446456220061497668418182725329934636089134430921665411348798189273191956270408979347218003903489938269972271501668737073382670199190308129641195308696715743937500441647601468325419352236550785993840193384296194033768804697215633391105667408987084909110713787260866815546570081498595006798418072561263543201390930774465109273286049276880358701387727327349231339995478692289930611744686183224414745649137025152238954528584577486753958708348085900857728324022372022382164003259076962467961175732354670366455394526196089386015846129353505642503910833315942352534017836974565505787161178013482840610742136673164870397021807600602564696737851587984619976079115766835622555986964895100700860465953404574789623269249305746639758396031785076588767165512860354625133484126717349021743430593753910905669344270078879223365222174457313300571641146863287405242945369288101187850259629783470719367174180767198939966829495019943608986406311193810467330755887954726996369968185582873972073429022023508138403390911539701719988148347202998766016141113365937169876580908228841251866431091384938596149669522461501191429864294250859813600236276742214888015656577276648316347321754917260200682933422112227547098344963236096327384434273287792081688903916433992241055727453500270838224410700972202744305676632049566122678227239059592010419991984275111671057202459743559007325690125518352853868757760337150712163091412641007831311227231459888827050677108720763760206011479773750753456023190331467656425587146691777775161498063092712391757465349074950787050653321040006072029800359984131376725613318700295813925520019656408494813629442835372603555858807772499928920162500879738049005740735031690102826111884142927314690679600106934889230666781564074395412838022329685096658246568722339118937878541830162774128217218581552164241625889636579486843045360140844924827266150592392483960061870352870891155479291801664911784166792840305519041410668592820122068225832871225157209857741351286623019357928091622093160466351330353767834275044030601371672702129658522217415675243174221146055310475101094367317346939870684045084535072861172639773337848076799805110236733917234753906243244432941805179682629857943033109041553296883921522111975491018941452559157166211146958306413895963128587386745836116511617951616192695236831747726815624511475046657966042306570499010812339194424114802121389869221285206732904133799897369853884107677017404250885581893461533548781298914482337517032415236287705258678449063538933052186993813048272946577437818255224243079048617386825064976421748213266432901377477446702958865142569384630975770599203969505766618905027901661265906897482153768807372767133315649124711763140271860496779490838018829237218169109233803267875971989082159520583881573101248593993804689332743576632402094018386663766558783110851074693802503271646713702672076984244686265503221955178498043566385480063108480028246262424892247579314503006269887878529747424041141360630175542001825797174682248728941167049887960252919685447042323230910307664254622873613234282505444114794015663204583477815564559809628983354854756127614169797687616522358614568891499898933403881690047480109227577404381360508466499648830278757573797311783959734365804169003646234550760881110155921062838233409050133993124534158867991055711666262538587651829288583497863476348542722354200265697272701464768639594816285169459904208049502447991959572886051394452310667138873233793489491864413474704063962216455327806377518121419882114628998848859715702790323569806538249381748643368587249357075503243882742267013737292395318818819250980059630134266866190884160040633657164478244372518968958561291884384445971682078609118011867833744486933241523467454462523861071207050627434416300170502600840169958307588601098569180178345008334078398400215917314932911199385484018726796591798858016287248863455694086529010977871193887946511309740979736753659093044204838856596233703826284743821603373404958106494142927666459089860098184763328889900924939474564502864204736217236189082418995173393544489392520513534171920460645818052455971785019568052954669249961031120635152211381184417777488559387566689480298507178769213021147395239643166501640946020179221556277825100839668899323995992735907460688368046049795825496142516711092354632034703393440859625943400866639671635256855015402795979634984272411314954686009215696257130343214273536966171548284254120656711991024602662002264166092454601526559344330743052133407148863266402789640233709403189814083301380719640682745973601048211271347488839655546166284514559214789970602103704229098100981796984524751220196852804438394253885582773862696579031373729889963732477136270572943111233015315022889173970872488385393124190216953137010064705838530803041327735828884527022720210422971606257162343524158416239002509771407932382729654057522271757628873623150953028638497173080869397182062579843308950929747365229404596940616367784078309224368910855421530952977965724006814781257970748077218300465169585290615250231297815739890623739764230794154285663936779364811110176395635774450676354132694014215229525962581439419305667579817593779386919879841761832280905204747626780635060110053444225355398959475710483422762829051163451359029376169681209344342198936888535617840476390677288108774251301221548654792387384008328657347982053471317646404168225866956559319846267472223708013884105994300372886684097479400324956437701984912982756960411388573770039652888444276362342135582838161097647695529096276259177425244794090796782265904490360268462167029280414474507033348472920547221745491203345464256095376248649312750963861586919822074410652400857630206744604583211648257181501261910914474449538483680319516215029454961976268858561137100281430362744553155735274441369727507358564528995274636910534373147175530275735224621725525339265722963118487990126034757791617487030390264442005731210618844074521442042218284446890684380420425874655015972725744196997920758246780959526336119672104606138103735837146476038993514176377990571959567512130462570724473018409679057156373596846382488787844582929902760689306887105135572002624252653306831606747189185521507344004413109368588400874172934113558605175793007568528498077079742084178460888305673236732901892856814597023753909238977647018175044813756081152517169261045436275760417689442601816410147729549072508196962564052465070790079984692605145944569492065809986884041532553983508980619115688445984447491180859447839788367076363053093063424558699863180009667848827658092931648991900677546573778863617810189073703209225860308264103154420088283232842749080309396894804707692498313868220968594952613993859386245628707072621932174347177951516069790807046216760411572435626410431596470134973785525383659008278668422954350040095170655191837507610267985237704369546428875462241436248733949407693502196533340136781187876176289160478934300108699922443376619093288067305779265021586899618426346465825842769773650408155346636847532569861065781210378267036699646210771912861687479708416781015942748041461052233569204799456119711468780594929666312600796413341644396469513722124553534598568735069636542061783012945041925200267397023425282963580630245574879495376874762084131369117371444856861352523582987473955318916239442749802986925583412811183836859095005598928030074397651130708659234991902862809740341720897092857642457584254888160685995370417168624593366226715898562880967525550688524561972639610789316861483788224467559730017144702801425882792733297138916816390944203321047048262729002031978008200402747087275916223708554403896946040602069902993984669945068190433061525883702530237814011334468635115265146057568141328446811539447725271062950958470367074781822938550052269499929533651361755428952516450651318139426042270737124423231739621622677857964891766746305829951606172985280089342860975705335413982130542673665693629034743956209478820928557443007175810942663941869644322139640471203560583696580626824862764176013812415534182604062434098971896242117298909921014891521406283501579790569349388250698497674276657617635141606366026679658604759513166338162000111209895478136698140980708156535637046287692392813750832707466063526481796730519523109881899542906088549516886931674657463556488419581121610919846449550043803598611488781232123437258964337834419161675483355188477820558313507781741655226109014687720352537282761450631547137980152973383232988562848877743777609143931951632930874259798305287632567667766500057486723751062188483615826623257944616971819665434437413876677088631787381991687067786005740590236423890089506542183994676597254614003064610266465427003073784726294335984511238518534869004887875502005034609434391354217089972587212608294214708332217984473765192660973938909838595547233570372394112574855691674248259497377302131098442900992940107635371476701985386488118293867739755851877013018617837596533021744557282660994046241592107628133175044571677756582866677910343793237224140715881150329517768387793657231434161609561182343409988923385508986363579755844987527938054613981816279924366714858332148016388095030743055403561048066492945484922139241499082518816497633279164123610365192295767273853330220938168710206240690266230328669805837506147728966756072039845431402189197287850096405933158297251374900362296620384274597778671473851350276881917793005076479154040334576150094510680946476456850721653880114588287066196607454101429733367762139642705311759366927377635298040072739940302713794642586565257757244170751923365882996356726206434406048411954454824522571447556124985443084923594902840516490053910306150944068365496278798114577115999600524991213970019740774766467267965605621945365281560262384628877373639636680396872726744153414694666966539118587944795236417190140517734836717687720621014583769667206693412779675337048533518009999854641170795660042753874666746790473925941143627250165633997613212659386352260780347136089102044695180302187059832464477174421584156967675376706297891124147401723960259906377648132958850451271358785265180633434814653292690580451034447398622438213115507158778261554775380377397416281295181704168451102527262114466924879661925206850344460999850175533019609825457993959537837214757530825657632432361579606378548207888799482120950824194299614861416737505565239001753999875201499833141848854719670554495948376354599036111286752268141262796992214961833656408455683514645992089987862940606611069520195362247373962571215002816444765334370058426995328772993888715071435017501495481153197198397106650316422594510583780722402183112861917911283090123191691891484583089300295233846461633206678327391844366923689642455102028087323841596547046913442257085862846449411730448723036079756534874737625048801825260990527087676408260057705186288358848826853733488691728860315203069009249929410477862928605936365410596764614506077740773793272941970820461247183320451679607219482148274481118022059099914105049715551900557695325968745644717055276380672155004209488996919434722619722357681881201865253668919495448688671565014332390327060117321077932335216152844775802180619954177809607484630456166014364226729109131670443143548004767553277392129915736236474982239268012425682112063647510745227634321155468408166434812717498839312994474338094183146821076955992460933639426199730363832802359636468337892895909032872743948495186668845350649230663890245590438412419572252829763241548878612267980086052931472059038255784539626188987662123077322238458989971458439614548113782382522760624512245310810151592776276193506311774268286525473259240613893145820450621753882051784256525233330739480851828579056480317813888736339188087720907713097335721708079550668999442523730035578203703609712522116510294718290045197885183212057580780185703947256971254214943381412910673061363777799692562520698061920154278916633115270549115312220227983056935472125459482241457520078559614163660044535764523369753094933743912289333888558532350536424459218751684163086126552287626828516469759211705355220180852569499243750054546028043079702986234498863144260622738027318036590014894256340639217980490080506000242573257530555928987774434966633557318923320895345322689814960609795461449400241668695663902273612968357739842549154607011209617618980409745826316382137806571075978096167217996973238399204620037399035730315243725521333375713043701002574745534374733944797652414907935289189444030975839981219946786170042791448222040724950862992800332671872565375900007643332582157516740190182827666711419284329174496256732100682190348847331552136694319110773447204554278566728272913573350166469991553771512547752312643345412612154714954393239423616894130374061447635688975403845749210930341183584481014128431958956795113287186655393286854960957045498168378565272895971365619015559352271721879232669194748512315019466787044736438947914978966411313152178993785855270651901843991585018930329055916747101047875824814096958033356835050353044235787866667505624450294661824217969179971786615649534879822146999169580947343481314229914517084766121218335657305950405959065183749986820656634067681459789011722750023151130971715884694665618348838044294331324973290199977464943600478618063841416640367301066954370989932861935291084511805937131974134857832841800048203023197407524401843050845169555683533944799963120321636673021452858771308600082694411941389911274515708851891520576747482137628861377830908264027568743308719117548431344125257961464076635626246061871627287735136024110931081549470261034054084478561394496964175024623000533244766187040356379707743211071967280062588896347108346311684974934916460726750370215039375181249771366989720017222279115688402542191340430467932017121556781113566329493487825634485894775003415280286493369379209149365983780138149429849521825577222278174904101430563043982512643904836845376572942117262912922391376088696445118630671404285347339617642341346112795321518342156558897836440930255630892836984454664566254803290877497675275572088631423497515237143984886787529206068057670390465588845042182849037886390114872380664838162169643313950355032514675050537946173279357456122313866028378086540435597656188763781182137085383848822618772426718682579999472588181755712133751128243638534947792590102145778335133101049516151482644236779255470470161596445490863992169944133500083372733536963555275173420022032584556560232960930050896814539322771456683767631717386512775831724943536155076962848522401681480479745353103130266215088850265555186205578314584864266025495385560764676822995581931067986462463998096472982089544990237124978024287504626662551347656909101134213178731700999504733703968045911558632862570475310662999824360331916089717430959304852566456462422113872323077826735077939428307192731163580044389536402090239245797917000431106707407179218387808523867974232252155728830620938354102267423453820940575294985404021637331070135367670085031077512235534453851162753839245944683315887689160649150442915086823265066365616811539095349686978684012924852927714014534310756585346854907449000292772965471167085394890197478390097888783013866782053225607904992398505871906968818405405331960010447745728499616566360158841508394444174347262783046675458787916766996045114731271157786894696247347287165014311221536036841518248232253908979566572869627326223666892526777198136030067305421943435116179718905838179959286840215278346268083774782532826243008560445423276309578772904141876413314642641657727773429519648247536449712768396216521471949507014521500368553535427340274967535256692631209440133503335963424549037990127684545579537528732553120325738353226145235887605823790649811879970500628469337749300570740124901402689964968162428965704198461912502618233372736508537172614628238712068109865849221671643247972981694044803409067683961846840475824638701055760372339842274264208813746832911727441153833677240262784883237098735026074311329734212485982457801991256117146386425887395168340158873865464178424507416969318507692040203264045399254520017575435974252987239630198861331575468375817444503218841150213676758626523076203597755452269253880330524011841383913398428374246068315451213972165090572275130109636457771480274158666004391919827030096986909445365891629782942097868346993370580194264003543009043588698180667955697393855681412878246269257968550202574624838076483637358588309622945657289315456383738679703378450798720804117135949059089565315915938204070749314046356281812148548464894490303727537224318869041893166275705986498190492357347878959230289133099932678495250473196440778298641923557209528999474097036928958683708690841651078408655201451813374539259479697250294802905007196272179081389028421825479991786560926813259346844435334184859011513911930175384276004528644280270782024006130840035932614520562337955983893460250963097419523291533353028375607754099129118296085085265461497406976452345145205107900409136473282013935822775450988532777702619586298302410808428207023291327746186270995449569069577524586465945149371482940523780030567720553876541275455672820801198865757530592958556867535026218821415262870451791480591785081320390071629081124047349043062027446813653666729660998057281023567446369186530807938395947814557250552192354991714974020798556049796526125896294146869190414394249641164534016623993998129843749627123733697059260766929516937778766118891380237056350986010649563471412205627230457432147306302302895865782386111468617917151084256600353018584367302808069805227054480223310789732975936375507247868308032528686369069575634279541655571727276873773388603142209410532319075142019801216651357203025533441078928476987958646745432754903057438600410478192168439474647245986963176369771766395935453783200307853373066606211557263644538754269032260922561303114717541805797832204634793220316386645749754529660533778343259457769816416589099864365764534866044620727463382322167633482942807459271924834965656161210099176226995776978796922376117105365740158822667664794539100589406495081099065435821390787529018156038052521325923439398899411217398919555253292008121793728113339614907129270666412163015281462585722337315917674088917700564126188184025990510480665608411088261572827700472545219452878054887084707521062715508472461831253126239414622899513103468732368874388393786995080344417463157760140187870599408672245677298804895721227067535700200100100306306886060572401763592069010175375964763323918708998023237698027296376778201475187571869240193544261582901683846997401669041380411350315219044649637686776288474048357679392198807222937222109438386951691306788173988265168470034270232184222923910689225995066495998859829482884959296641776060377667248768109867004790441548694307852217948742635464153939884658177659132835884340763687122953105769411062449978798004268026476097346258910439993119077131770887661336647497151209274462593670255195291146169624279474525838051435557322448010557896621340127288929272143453408700464246319345170131629487077545331725757664421119970812534931768904949889087365242645516794112362158520268679187594934736094150116952086596031019711589595856176483393805374998269975814488066615778294252192132787945333032325707688742268262725560659976275674343637592045318066950740252834840674413105965613837686818142111058586401676398830269719543039461577579593272448832487078662528056037554598001820729972822194464943746749555878884602043615738465225970665546364676352571431778853710998765567005154306808156695627448421244669619848697270114514790542399806392048484163592441343351984474935710878196238387249749128400557171116419996046807737698293315740675849570512812718951613370672651621586537275004094329192168909613308584848576731045690445755923022281918706468862987828360568727864703167490886624563046512585395401927876276265316936006915097611566089409762251483586390620460068601122793080666392291609295531177556939319455949823569302048194066373286075397455788387938924431322294062837514924315355725505879940761270383392870791564339480279255189721241572856184724195731282345799481880080053353515269716935445189505037557103588456304080650139504604528123241210773108664702641417889549892347798182521123756845801167116898419328267323597203068545241540230239166503449077539771200236221522363410463260600915006793053354963258452343582841559557575830966115429453312248218634444904037608683693489784582371938497883314787581645182281290859989102488965352768067894827365381573444878035314609681328070894699657535288446909388679787967845093527143149061089777358637650798439264787434196057859677131916333628975425715526159431761621067387721413362581582310486683558707553475644896778656052871306821739991988079677515173122002553820132630716912545947827409563280645971064826811023526112000544195361172126282295528529700664591967117028916365393472743385181860280441239078729221884315640529681475990318934212085932723214948369101399396878156777085911789481131871126614338224808834939431247842142307195771359193168703364637574326274786882550289079523446913937970384372832158441192315502085943830320319485116486356459207563736614160170476664544945984832684506500641007658837396335342668485703023842487689991245968755807417550433135302262779125494846615278407325042308465733761403996421670545980604502298363951801087618999209728419387707946245282645186883118557420346224984945090817297905138260110097267860653342556325336893485124946250479870896168109050134685924073363719058011320330063718803807640279459015045733308481453268514127434212419620718491912461983011364952591528955967347728446343459921578842122939600663834356553742457346807837903007025740856160466080723587205536662385191294598828005343062036992193614761393229679599643413980549464219876771484451477377078640760870526894067533425504840649836939430853911872648128150799309203065733771981963879396216662898392360151094320479178282108715753799561346475767657369143473220154589385187123310874572113992323345857128993348446012011314915076669429534617513864269974354733922632982905350590071977976017260965657780129053092864936715686544045966694126410569621483282429043212328166509656404422133995610797924654483563410813723579082293536723807342017157394107389675728612747188251795571138696326034889993222938818082796364466058520535563597787181238996573342773588597938624289718035589638910415424120155297494255847478740140339261636864255915886494908615141520361094236362334976902452479299764717310021328614983011232617520588190269850226894838415625882410567464841294262841057704634685113028557101627825137136687461851464203218014227568666303705362679971732452538436552474937840629531402294181818164857237328389626516926144504582256355612726517926526709974762512039873541849846196417449292530456482831952917152389363116581956968171795347743776224856028247746242778087193985813414407136403201578837239734078135583388812311605340183926282849663641188338575988526293245722733754089834844136074445049611761431446529696291368460098136392925583744316012736966197867424102393500604143598087752368713800495452765764880837215035152158277376983332545836675135270698613944510301522481482720695250955342717508256276800435410567420006444744775157335766302348550549373323747574961122034294747899503623422955712572520281146440548290486479650584657169685742979384980290169673899813285702266641397816515561696401290375426986196169547560237732670698853742234070362617181593845197918557016085404304610177632890823937265307866368779053834376281676073254364434692844516434433924293440516829393202637076726911526643565983597298274085099388975774272498429828879415508020610506116662190505621644350996108674727607886765287236017168007140225049804632870034184419608327225346779494241224300285833545194826818902696637436998070292098920008277025100640838620893825338965114546218192066119013713386870004793404506861440801302155604210091333387961926897307998868227031153079556142145088332746518712153753381506983028976740358208746716181074623471602599607686396154069062572168601903732303260199239325979790767207410098265015491712903928984882432456500963099299555342978943935422815681056824818391032327237935082382900777824224656503601773691820982498635101454692781728413633453897008703758043452432151243688055909403382157563282849874401201183956254265818176362512699061179737005297105024300775406917038016502827849948867247642367717499891472846836838689831149288243970334708601850997420287071454056132061370063680447021505020454330951511725234139882515252888568259005339738221707237721590432026892683816457083717682155584377604136451357056819034993570207584707218958368233319523972698871775763915028914530835245151601043286691374912408594123477058237934122699307079882481490527083381924855643647945953323953573244509376061652571980457454898067518712996535254775335033673418165539432302791227623783252993954637478169127507286320145741163097967168895549063363510933199214710877839155125157870642153526038518909229171267216977288634194270392255168191486408724782057883741677350875378082762218594488251381433465975512235092106240327430748598082456242451527235309415112431166481902524738742160703259976682696743229221090279769347900024811074097988904627591561336131265704347564262285930777531926728573618111274623640551226397958521379740853594943972847690246139302305277104753137063024703016608870251825236728479404520630447217128766357514091885512210069881398781884993218810496099619936013219573914429609186431920104265276991363446051800999918393208666678394041767184798040452681788644676204403381819954726162030622244081788479664655428668601022239411895493155015013523941423123503840423714889600229319580426200954061600202535010581756070253140450902166743163927333011937654842389986225466312325044697875015413515073871955896040756099386502368124945842455704760460898862530878759955355957780724339509447913856153549915770214718011115711909877592675043169775293703731958091257041241364021386400504394789312066693546551684585009889616454367567847101982923858585957785359307763064725070729247347981209715214455950770706572132426200786205965819318995537439273721289932190372475617405853797396006759010560430606396939541546529526086966142540061397141490152505564445996789699652904436324323797331470658308627241773534149409178607641016956582630878802036071416824715268259793060183152846541080596030314176523004346284732998031119772699626949000460174538723577035044921826905920104945095065634145051662242093795297893439019999204182094306558616468548814361367304517321677210203434379562490336918492817715502395619835186894431569142839810033080144036020228482561788333935711466557300572368489252524473072725237480307607254522231038777593345582329602888202354590400772733863671428361050933786423015777692610848535383436807317470876824703848994276272789711394684129040489787313616521538356027772853319968581548168662133527378825764210290852019352527570695050348763747129396941250496154132276769355032796449247580428558838749654558012798847438507588958758435321323403074684387701787200111148830919936014800005960916751624427974045969765729119596349571156758741619040951359404481735463826574110740062028721965344201122975888737937275659486509149375977979650926206963995340550066374111672914002260530377937575909721533057631169840875883285936489901856814236412035671809776615649713734721630132067127630387367643121122737027750493162626070513623318182284168276890434295306881712415756079039342684744389032191008755749105025253649197419504913372262350830540792245889251886296834704836401282134231092961513226711753474462962840145898004514539731716920940419044132294069972071017572626640234455058771600860221239406728944289250448578971401527095665801839527763517903042371942001621682916426772705402832474329814740681052392091023669382665403586969009719347317716592092934163742994210974228559566100290904113557251986120388526243551275314678451490027187582834405251900287690354519945436641361989053196663944502117334687501058267019321760187013862573211539394146698704804466320114643241083284861128440673705612812116999209135971865138755283926689762221619747846728027414937193764942394750057396129911930757493394358281134787668836306465633451850428680221225393102320783161431704511271243149173638323176785556548970344350233994207631150606553092206000616398279761107660101135496355126316040249254845048194835930414638776035324509145934671237619802233219790654708367583274723859932674283858392351228632414065371589056536563644708896411090703918433819423028196363110011971453809965175051138930707456756723506897856272166344735684780377696758284114340164388272422581276191636187039954722761820018653774938353316618906145388188082023244594369304761383196326474805702379259761427089868535212535273819529407971813245472878841021528990056682224517939805395093758932566371325092215132360256681240135853405831284257626492442785536081999135026628813647615564368243781707866665139941748229493992499327422198818393831782071404981749928896934334999766861570345279749982684929993493192066758256364148894365812438998773583857878574053423730435520950305148538208750829322198089891993370162241254385592434997673447370524232935913102382990675511653411892890532157066628171751088666346741103525327589443810591993762414313301877696478985011083802685549509652323707500540217737838025478638232077186327497979856160815584197284513360363787202481405641800595680558874895134668854267611131526687843883921435996423473394189250100452318766385645143003798799561360829855624089923357260205831127159305173265317819646511073002888191336571786181675525333150053732390760356209006234131517949265372698010505657653465847710601251920260587553169846658561193972038500956179726794644548751892320755190941095138315461018459436026516233696902873024175523409856478521355841738098278452212938583539032685783362146276785408997586585331335921487398957149467957545114934761693887015636658663845895710255539275534208545652964811524748469514383345294450094777609448908853608985262602344590126530725715376859193433362596318181721640955827550517982218573315636533788618433017259835139777033708858199326675456903810232160579981010003477185666353855344701545271629430764380697933243933074753437244374932686803033031387113778892721482607137582384287084392612762192150297660722663110587805463454375146688886731629717280078182296459055033021113367492643366137311841371191281339160667083492368709981954003195914730797093717402748313726050321001570504519690395653422549649716653919344380385382636949220710111175959981507525766389842033216243638972586596171372718871884106975232479731758206716417231394502341560010602539224009029669768496736416837194025145276847518701961284741288891215564657520973843385344902658043950469072305452581139564358611946375873435386299798015043057451426532430503971560686816896444850829325932004158677878317225578851387811241983378118748261447542555935921760396465087878511297842370349661301104362930579127832158458051481026455026471388719137983418390449535607240935689940580409363233333531401448126112888278294973423520884551900538671140919040954917741623245669161494226754523463016304999307458381135873081617568263001097711814942094609798780592849531692117705789531215752771433243645519881183916103401560582359668682789553360140191802258513201687099213212829767735239787512501662660451202995407474245557160642261967726055503258808579906018307235384032292110887854253370974912959594255512081866666309393787419187960471612269212539391769669928347430022098788877532355924837704456996949844667145311799350047266180315454754586489516762981189404006227123885302997610848953646547786051498224663653306523904777649956938882119040280784815199116442907425898812233420270879800506704534306998149096692973229956751258175540697622962298581619340489964172210638034010162487522080085804813907627172243339763989055982290858220402915270722930737290393840837235488580659912486265706062926277970765333324301709912142472509363399785381020991026828445192476281338380828885865263634630071515105482204885233836517468257383879753160501363540122308908341221438894354687373200517771144617661285212867032718918283099185994819283428842106020024123211914920551009235804656367017990504148776609621244768652828606622012938748880823137674796333099791533562220242800411995572249793067940386443290112541964555852424925968901200642010099540330988650851708230429875216709329927118813720219849045230979787822675548678397828509834011816200504869472413836634470060854146899639593800892849938831768391363379192118411553566089816482025079730288115013399885892461833493275412094995130905570870417420803240293126870662308055520590167386475754990113033165978785054442167878618104237404954961402768332085711377036006337867228545610717140307932042795580242662880964364193838258742867229335553568822464722605700485086345756719991485139774919707913716233663015990050566824953951133816369927994182580904786286273875012210014465259734964161284624694406657150405961067843155082465201153135460935712632123472641765386766003149716167197456316470627457051241420576028547428469053188755796235929876040072789982552410211533735911265050818984312744930209036747627167247753079288646102505605431147547878674828700180499484481933838958238393828433477421650714815350111347234733343771326276334936947749659065624351751999657999898321237283275749909479538240809728377857495539129457055681286318880224820603708788407959365652908629668406690551683160952426054737339654086845838803734407027115799232732055480428868794364796485532331795653945622551208843034449884387295773756088570203135870106316770694134814216198490550052629311748500505047815670284921503670916990094590610391848824690924419519139991487438139726067709009511867380438370998518813383470767054461192473590087524788778045469745995681893287210708668826508451976400414402322567203774923924675335282588680175467294360272758607327253942079560599213247204416406377941157464138392587747983412631517823015992572141327952364553572972353125026800682868647190789038410196393055793115503378471917054696582322667513423830287529898723357012438986780474114471911154882429065254750337673644262326459542729627193475669877524821429647806546081869222340532679323925795152969760524009984600925427455905698715464897611948152037428907851814304499772197631113079078990714881310989467308686940307045924804443415340388110707055133026833095787654150942874866760218471824830152738866380332401277736913838476612465913960770027784058817531124782098097946268725067259296673499201842426830601455528995107943726764928849043468932327777557390986244015484631043460741166963191000500918735516282527291521112757244039611079499334134546869918170737466370682905199248008069490892823717961820478046122505534410817877182765828778825706608556857359196489541178843722410199074936589381114821219542663224381558474703949800963043591505026765244868190057576067785446642875991644235758078439653685595789468226105612875130334048491519276160056715836741397880248926335384431822342246089002077424963705269352592152625727635847484187758103855000636810137443521163617404377769664181734675223653098006160888902016185040161361540137890632085940201390724290571121031542697972046130981186464992402085972436976183965295588904215758701666793402994323062313170530761516638576865592900666567551338642039698272494240837146911266961436181937253719133439841347683435787435532129780728984886903597152060513367115718441639505959214167317211442992629856753374118568948956572301747797691961952818510451549995798164204398501279716180766176677241241995812182665848036915918800454476715048072700212475871790094132928337416476538376830653746124275980196790515017619615907535827423385415091864774406009647821836278238918359201151326274433748193614277170106679924661739726895963548498852863969328475288345941130376826191818679606587153410888896887355688641708469977486182642967636568296889745779930892275008072377787493099524497539827188514781342801929658806483588483552897402033300974400863631690186389649635017646565263202272322438237126266303074026774759933607737225689992616178150668456048862365669628250513981047781068854055194004237299237005615896232068293816949476337740102443125694498875620985397641255801234154033705997777218731678004286684812669791555022414326194814009826627380152313314765113970802877300958338882792711083018929380862574419455920864172604640521368703297181786668444829623235709413242495609010539240525863196203543496002988039902262589515560148052578675420130878406798239969493084230078680810023213114213011642243514057566272204770885191859819075787271472670529209505621870699953984902019026458134881970251488545332231919537573905523471444163308875735901786051552495864719994403611531207568284299372008795228500151934269204821069286970616564397706372876109356562327728577808338978128720385272428537076325375144977957990379780415233248607287386562102058865989707135288119579850327880138349973239508318615472256854478315822487372872497688701828186278004976520508194426323557655726817496023588424848371062502370015429087028374302106056953472763445433060935577831951265545669435983852819047245686758722565389372795665606589034930789182476768143744404951844352345112750027291668175786820047344749102551387920753286252050238420581438862858048586392971844470052877826226072430940454569340963350507702539939979856134639389915155449795827714144431269574112027363884938822270029579830833233957851783330379413866519204746170004906234127091962554397712565977214551271658738442874326336893825502655755088593644405173001407360648559474514003131968670232997174457819613737170902690478863635798854641410968122003913092429686694517476005043654107665533090925335410669387947675025786427562236837413850364590078564737854496551607573693232722309896537739838091252670652341155826764783948252495017800274399124474484580225976012917801017381646304922363288290573072873336453453595025703703221806178240357538581632197000554277264225629719749332650134802460742526711917892793196880827658379568154205869666372926551704343091621417863600465393946134706251445707729155018287222417819177738180728836460007129153158590066245313744038095851458366810156075301974645530503053729409320086109887027950528776346625943590439549619338769014415120247026043854233363105021964296180385435242792017670190211755806468928768168668433090037325718198116758194391345026746606893566347611243035300103154494233986494700797533020025647366371978128707710576185019292679624982568932853255278752175011560472329053202708086998013572132971989026776671022712344541077115671711811517835759385062747582894712989058648687420800508352627002191532637423844796893273047371130341638668014943442419113076840223532698590671163669507517111189172985951481507946676884985826247487349018807618771691808632216691416023557006791997249337853248037866884336374675588108848147341402397089273423519253553992995305464646110259798631863769453239066686687731359111630392048964998785654054139296539446970036644689430102363317179303173595477860753267928432415135387696251823930895504190615159319188446129246538563541756723782325490705512325753300661012856011969451998844689542458150879347416626251513940081190483199758715992684646643233046225534851830572806399380688026471226619967190863513196955072198052574225364052921935532045089016685602668436831130619392952245867802423282382700652918954056056687235828066701222933126017594044064292062770807165347492249026301410385144070958039904664813174505448208151042219061277111798263349628501020771066950038364156814981556171582157184379400563973648361020740303758919763072895188698091910498812152619520358732379078150872470235224626284304264005779802739251361878472316537056349596586546362430792404222037977943034346699129840592554448631186946073315844304881572546586494120604535988395433622884458648856683514107131257956244914251462978681821233585239272912248084705309226103452522316136874193448096730509505691605308852337940634456915057628351003693343877348153796373761280739031587231487682201160759577104995988894329072617086002283088214025274937581849307582192721512021461641799642489367509204370380332803404736524733357986941592060588351720721436173466551119268221958440680390730033754175965498915233991180778849601539175801986894680570478804026426890080838433422844251421692195848748881847118923622932817184757904589886783595990515135227759513366281763665066738341728692987386726237830577973537710322401634398154045337928206559167895025822741484839765185472770230000470816368647958452272989071923203414297718781959548461149945328778679916741182165965189419706452567574172773621947583902844906169580715920419836854132249661714035730679188353149939734826338725219730170742199418178321424852912596312773702587006434211246833901670628530177336131294776321866283464835349257983112183400532257880391243163515011274381491989841067804745863224720204615748288236554528934985862019430578351317419296322200928384723678338757172516328780985538011729165329959871320708097759507901348341058036002363952405026692361635624257540476930588251293919071913739755818328769865410036922838089339370324577949397500073974748015733529219781218313284404069322171755387263029489672480844594700902715940537547830935914285634579499718658479379962755198161911402406228228427616514178753856826381531652627945643317226515355404104521847721188940609287643085814681091172768728695506356358370070014109016293985311165110574831415576681434884115655291061718802995794588648315047907892287776581533179089545123654663240036340235681647768825762538718339335009751852174351460161524396094765937563352925725180635343835729117263569613708921530567794591810626407300469752603505494934117294186247158267076193752296346525970096418081374698228227574106333463233952059576238046073688728949761821744360192252823293474188245323720239806688623152324381640902663624467536453118840283947452601812457654555339779921017385810235325121157597563413920399360586621567111480287176668227076516819907281397567470899742599364122655490485800720534765335897516061136280613349791884491410624358483497423973384873861925594642784685824745864283823068232923693370881876886082977113551124939651211160357038163610035108633664236323284415789701601281122358206176128453734736764078670878608637513273985912309445634649199965050762691634282616351436002559119532612918636232209424450185319748252372712568045541217157335173443484902065099634299632171747835554193326222725152978333694074574141931631316159854850370713711571209708222007798267642821236126942953409528712968066048408767956935193550474231743911735212235678434681247553052144216369921806420694465516379216866612148736696124233918522119636467055950843789450859534412158530751916767463910188761861046679183771412615397351001565996604832669632494731174711560884906204302724284511711844860243994060366758565930127525131773778063783354555055210576080236094671217383357756774337536697608025875614947942075686279909220010797937412461313350000926690124737800905279182813443434592436753770892834789721056003890521722828997191299578599591135297445259106584924677502517662056928438543367151256434093825008796746980247185609102717880588486213110087422904277212020032560995042352466013158393807638226471380538865710454027541535792139320391628329568032267255763311348959316788805316341665790069425482798778168673018476817728841610894075852524158992074117346379465546336526256584911725347462971948852687512919824509503897603153906271109217555280170839166191757591885782167709616762562072429256761927695045863396025187031796132150357136072810313372199187627915714920467693962616372472067362500595326005467541433878852844448413838804022213930007255045937628597334164728430240674427709512175030157647166473965357395952191001515346969473590295685342973139509117311948160565702053575871921111421735537949909278258547492409281548646561745681101787575426838736767638797397148368423082667067274816917406304848347415295362890309222756811801703640720711565157657167438607064566247617621793807193052386485624060028917126542760780153123411039453296502687074588680391794893249477925405548411964129755390370339864948637065680807480087675805340764057826861334824669763090650943734842301477890639666185962045403420928211177989816513728642999579118332612985083237438243511899021452755493862001395033171232320343904920025153919228967216730451958648194915035791773541778260974655738761647624376179978118044644564669537029307346839750598236804103023056800799033661697258589958410766021673319434195464887530079218603253206505292756252156977536254169291717443754637017631141714183176451135955787316743167942248027595658060658277209843294283131158329539153937847479203134195745048032664110846290667536152040930389265829606950873816688760146229862644879104753184499500215509576189187951387574581342976987472731588026250335517298413763949005442247674925945889329592661137483048516207701845214121446117958798724112606919357240403023694387587546904530092161911326480237640855447706759224989695770146057527831533713411164983304714394646744287705056683634794657545870871100324793540570543238899246718757469572547701158179989858010658604991509972162382532965754754744862498841292199176327953261893930439437977577908865881462063693724888716073687793724809229093168952459853386414439337095902860942743713884700003910757163714631700755700456021941823855900496809477960569552476378316583134770860801552071841306983278632258934556423527743284220189400403245667122075564842858220880584680880651874217291129489519010666021189835772750069028036470334614776543215670217851302087141837243312949533637177481683984102493375060378750861885931874450885984418309508167211201074441664888736734505855631251205652770681387553848685879257418075279941884306632709014595304201451265803297015124690893902123399928609826640638678035820633340278132485737436310566739181715541692946037888279247684058808813308871409656558301713663511808391906816469255091328560017905157916315082634901125659175952635303228918902393688894798174817776633864809167773015911332906936288414829371331878187452160736083586426210362974123581219639567742611164834241035685948860038367823470832496735853577289008059336321135017542612599269358008520022372885934145136316948886165269020062461088711641992360657177241406241644417355796697935485633705103904128524707506857218822639782859150524621325276620798367802950456688593863228991488792279411305371935001045270849084977503511102251729632855595943984041214913328366399130653154255059661777036271073889838579315223739947131494970523384243678644192475895812429457322492980089529887020083558247012937256089458532702555919196176478420628908329295824815041667954224451236518660103775457546504004519956050434023866086775177705682524878296540577456430224507695201499926127083967955829845273830034687118592740397896390402983767135270673398553356365795477873035108604145188934430768179953438999967846668580180251751908236858680537012007287451456042309856865556827916412977308027872720076925541333930461358455405259579487829621621964504830125055405249843293892293058280630638996291975486582843331363918390159357787590757207557517706554460495317268098287169008772969368539871942716893864269512935487776085279935693040867529449884091203600022115400017766739842792346128656668214717955527872973220079395871976370863659113933946217392274519768933634627540139287896396088308805806258426200054424200788832143210700069095529957822299885069682461767837983243819551025829930743743990865196855111775652105683694570465681642592788566870756162464463443816160933330849370377555273315213169994472147971057944552096147171662382411952258214112099227700397832464215830995745149874695086885160737090782937104585222767839459416660321753398837178761495010736680938916368816975180926615252004760533430026798057004652608707835670491299542995665901960091799363810742558453841664859485313114029637688820903559499555674907802735767593380152194756448989513782832539789817263744275134015718540850833396728766948441444830050590131117778874046711497226200547993155763781496378211167502709303467406423937982995245563800148207865761062171646603150454845075635055357152597839893051628767750054668169596289992031783001549212764433746317525035239289761484506384675423215250807914280334046638007536852107916428203614900461496588015888439873758878853167690753486650370591238023794872921387434339723739199451609889126284410801568401284805083120076867869291505470665658106885876400678990476180579240447872639812573086191241121507826590189691275498982193409015469510644269232366032126952636176682014475808540287143543508988528258051865530031681982921245321306484535968148306299674607602877680833341330326589880533316870187865033735754032821029125509147976449015598982606275082238558377433951720650451521507652280987780456126530675209857673226317804061695329911251720772606496912494349971738685107922674367233716021668124312587975088665080546998975907200597750333724342810291349964763948565520781430475888161169748174212399448438057513737926651263576654472315347833357332438412274210243809132781578277713643637461177841635236063365825030442021603968257210601547743734376731599071627914927793417375864321593689838532967305581828762201023693608449672500041245047739745099226116319962646512612553283142764460255432004083998757647586879174633002077128430868822071320226387263751896090611458544481007138786912408609900081396679971696601514747705797433154460198647049093351361887840612006959484467508803692919097285944309784554848370171152458309369584944160427306878607081180637046716689226019248082238727907012318888334498310621065305756603652026811983136255896295000160778910192433262889363601089386234028785249838329497219490971825434539429492457352305617356202271981271471096045237119291183983882324544556204182237597205198572899172274800399418342461844770823861104325095020673291451941897359912860330595295535573532708106803747898565485254140906507224973957111546774114207896522885723828981135537001526429388506245908842208893134540332750752043226982454572940233491244004330060613981507718384103513651974565698144239691010089241808916301329175862916258634237519186095190317916679532373294593339992038567283107313853363039589959686070090159913916884617676603271647463259273236459320095731971727324332692376795888569812251658714654243704231576542738391866734724840288485343441971700929421371781970886873566189283315357143323478637039716416449822238020586021542516957280237332424187901185286300192592327580175711600177285510382838944363140640400353568889308169179177751939789198658523116525630222913991616125774866418954941851366733862658066565512957447439177420162856051057248329856269592578193603761827604046704572085444898232675563419810928839839415508827447129562056455189962683622405890548384325170695598628727790750983262384725521053774559841738798757610498924052504828768373721827043232103757339549761302861824149342965379610262508047634632024506253246675791760842947839734423049744148753592612963577628821987880753010056526751709566916285868402613580784783153172887727388211478581619986912254513915471580230536673565570090421758095490004818984428087412137893638898455461819281271075599970447626229949628062936440230840415259855635530038065751590262409983097625068930745329689570793954318905651993138037381414078604628021154529414341663744271017151155860656890408455227911547714297532614731179667717815735578921233199914806565353541769437865334081829410909519088007809608686788890627579169684479745274765733815176026437174932535052486343110415701205730447493665197153760310777834321874592070475545291235821691668435832401026594571186007528889977206017126340819859171100962266967870263817266373551445587623404422350976213814436588575026244464841414003179260963867953283048240522992818946450428080189320096687743886584137683970982226382048462011639999842944757969375033793340838409004293421126269413933714024982344390902064731198088815268572836442260372974845461321946982164852003907561010326499487393437183921891871580890634938973978792600988301848428908108003066628860007249840191578892679708888142905602102458949867556681011889937434907317937632855126909087355649799439547184650475684672574794438471472387017244238238574262162083146439212030218061746723719865642955041331504837531907872368129266462183869179545341218566836081345568734056164065050180519263892556410350783110180878695201026629506078713631282670806211220464020604540086115635069035332071676989290548260567485689247796790228175629921817923267496657363228933015544431934444896212434004220019513485999426252541264565261102374653570541368486329030982019433686333894427952521120254290604332892499508911834681850286940044097834150673428501779547754659357947567477368446196940897148309941671618814270502170367333290043602053743882377325867877374743067698066117869610821376842515463314938174643305870333807956269525115772629615614934610795626266673637895589023153949126553922219895467132776416767286356813905302273042423530474288966723310142428533335173159442338296174802571176871546714132824387166703077307889384075106297300137665028092616850873403840850367122608216934433542389159014473955672572411507879885658048524381856091338479027468532044808576532338372700776876519390739395613302837375616921441101419077726353979894704705086271195690420008862686292741801101100337000998774078902760066779985989416628977162777459870952152801223011445909864598827779251801171709402430182926363461734193047792943468406525295786277780006034871478043062406801895796933508126746915480478567979442398122960317635760452344139808368903011362902583904653437941613086863606553311124174251497941355650175293838549034361426970084024123607541106229763659289076609347791451474966467075767670165517341402184787691112720674985915659929044314693032661962929836336345579855219969536690365165709948960374414703795821266594244775029732833794248062285242675389434895650218447050135067308882201986668153039003521103704583740335338394215087011427160838259343149581552936883944718286163725120525975554675908253801970874508050635870699657485406941612232626367805002689480590179134042826487943516462539546658202310215491613014501413542732878991285142321751404611626075094344761971780500209067212601632420259875846289063054802535410686340898269407573217350420680957254819214047765386567255855243738921503651709035043461848916695786764915864478977154801440266613502830565043564189990582218416583690698457273053262302248961782014936939248437665467600932272842933344829138916979007936307359707477799388755252090736903777321186040235384179903665451939096418573878246902801022829317815307203841204301188814417654189451437216001184317231855918866237559489899397080753435099378817791316677067541272132382480614834994508881726250753036727922269395276301677156169109537986084958023365277338573613341767628632695779435686867304306671210739169258917726446817490297904046395106263165274414661534728986994177916024528715404079935165811481738135967063112602789531831852388626625014264776906227237527347873245246193554401465638365633276906903287356448585334351790158963933424684108051283293547514507930022131999354404742960460389209688721726439928030975546963670155104808315257783267603960935076315699057911113019082526032009691133646300710274115937360804798379468642675067658515608009170335186670853811226621466839487211167342297161271809075304591851074497693941928029936551885237464632333228801765911354929358508399075785562266565291753100684784657242518808239394261273081930713068647070260105220579294941956843357778587806991254328840224716267419782884640021248519217288772090277641189407541936901812928474240519776333710057653140580211044306832743125867539005777107702727472515093855479828872546285953221747958907116819383582668809416822966850034302248887618776186327467856176838947177336795495730112019987389679012477596604866677682199658287126529946767266877835075475146631340854872960044515292915820205565023402314174122473502945448501199807734659693088432124902184391227599593578937095489729668451519434652087778776930824101220992039249353529969526316449448901302426732920882515262424520427265042644332758901461709645633125417569516219104996372033016720543273857942768479949915106012147540074338737673304327542936025647678798996065376329875371948314509068401090833639722307170501874785736300314787127627926905031108146296990107086759762717143539651213835262722599291752928750370130905454808033649286372982336884946485022053640861487516544745315084248425228970548021764047842316821851320952814135105263024582993125285489225163414067285375258644857794561312826007318407275643849826588098936748547797325116045989849270831214384962308638378113571260282704719275799143272530159015493576336835176207098538116186475275404728943921805808573978499956901844498304806024715298641020885235951849276792704348699339936301546499668206731331245529616876946880505790305038506743862662389073540744802267074785351192487115631463411654560436152107563170980319139292889347653513414245647194158758863044638896209838493207044093753234086648993936343758582828706758624550764068063400462360475488371974479713730692067365351769652889775202187687365277099252838042316516847242398946229045230735719299496187481443665663900165580616637036923645702297357605523202053731111223649270897948748681782093855986835276031243752803790747457056572772637201189968855249367153090694812998462525579485764666953758709551096663825892238837134219825543275693091519881339279609431623683252156497143741111718493180794101977732760489009602214205554470280807283377532144757180180033394647577888630022503057543256872454192034604248311720471430065097724306074042862096354679327883456702284045144721157934356070308760343016511258146867003658110030012370695973340182382370652149267055087237643966118444556741549960875211099966173797430460594004703807278831101679754386029105113229608506143673140938347307898801688925325490590651460259259426488318044272041000310957379417724611397091587193471743500667718301343080952066487714720827654752404821050148425963534974801372722914441305512708157486278399104533040542004167737985387474239160840448226256230813025601987797286799371802718755969810290524974565894735249586266157579947516533231916945321277668366582113162294053702442383679323800300120678456852129052284567817513950361456035813705316977135646599314723649100386274474292981458562531538389664777672282695283585456095853148471049206483054261148038760128514206319199673317531593759127785119771486471523850872456716371781503475332208195146992541428396633027199304389775489271624670373355003724022255900356257602100579556200891538103432142733940324865232350178083326196456792389978117831787884810761260240421034903752456301039852480741268198009532241246749133320022063201375624828265234937178918722846633479566258830913543849301628875839101891490814753994722961268042987779464967619413151605011825495867886658151681838536513870590758720424003999367130979954224646067265519492649497684548779482829172937662742421860073175701316384133628830852375351991033946172198909983014275548046568370976868481364663419586051844579478781136658770874410358783873476978437875295434083854747033896466502537597744923047401904169753516359182612889088916851792892669159564561263125105233783945274609129136634801282348878739077973331408757343193301864278715657556629971801719652441705807305257549720757369696265819068274436535794014721036357097528536180426694140294903941256158762500493729504569773211310886369392639283600194414557757792989502154721224565683908131510056010149878448952820464664602588327087849557256437246935993884132277860677474901754027725786053064801304473953405039163613032392437757955014438605422543380895663712237249582987523270285892457608718880226936593483399890821973144456539977307452977253389919028904075867350784878349618644830319259232212179913333266812612248577847794381380288237523746352366585807160714533963672288675216471600791728949587891193620692634351669582743148742720666938821059972730797224390057529991576354329762266264257031153798279673242556102026098892605408340478716408009770283883669502965049814555164819411159719372140993789394305735304245413256021143558022216505229676945272283932851114468422778489301639976728857752036298727645164312972798581150864124287166498928635530460624855397698935818880720621164581152545576365716405637129795480679849228302480472490503145471211981272731269396279720130494351909078190688986659625553733509994234668424697183900427382759219477852321851724510266691238103491717444638545316480721178889074840613572830106049377719732523924260108737263694430812028531341902960465412182695304125518754205600177740521301192538279466623961915573363104740993374425415791398872628751482755375947987336786709187240275398419907055621382981730301529623234331544150901138488992586809931781102407408625662980377406926870794084955700245231972764554386808437990395113674243566058745618655866157439852103421518312236332893522375411205096906413426411302695861940008375298336663133995944993367383488365860110760199881454305008133769575761331014799949761741484548628584045676439287056506790189563277808544049951050679357945978392915338855957795871603743305939934011681639927079031402286048614968615519892870275562575155071860688187356631719365152144125068480898242583544536739646787314962591067860870773462506378078637236305573612019528930886926762018548909709176367419064370551977537386341687205957215808949999935267743874956426398841355645334911670886436386696431642794921088466751246457621139152899541694296966000088987645786800280844071869182177204400694110282320235016895908540183951244841745312825405732383854307593013875657680648030242319001845325459056911899170539419268566292286963829045728439407834141397058719511117632791709466284621588817278490971822793617690100719083118178997844136519020692449540957034182483544001286986161213233513312224483096580322227697869387632134175805772994233558107562985940186727203217380346298777338830853184885862554612740663524982520805162599477811985784688341523347398256650979207116474813868280060052173006663161852795229645487915517321241483027433899541243629564265076658178487447775179100574287695036856044255052709818475251047272507093787437238802708499454497658856593033417064700103294015735088673941832935962352429023877285653959500227716544211217859780744453205941910140773902783835827860600794055266319109175557766258568182900574701940018093683249970873771684093820604390827949729090609980471260141125611002688987280592328200493276886469981155285126790220383252536622552314587980307777238054878795606404665198166947018957036584843103191025965895613730494880128778682682376768640128133150775886254262639761684896910593536206778885782584208118880015193916718835435132992999148297077746765772776407674178096517500166443441230779401593097495406634207272498617186673969541663745453683368573164779490495968782815540283609415382914283153082208783140619952606149606263027666809574953294056974723221790639563931569540293410428424998235397959508905534090669475419894828488559772440410982689604746378920001436731734106642906419121705990002469081757640749521423533442150055544234659193344700554745446762770996528285858462375403304472579469553895008726457460679857967150279483159206595619866851124573252333165198298777532698684576528599930015082597975558837283437985744744336095013097646869059709307235341666391812087884839086219937234145718177523813994239642568258144498876244823872848675901411322369093769008785096681475443289582306521333135386123644566460406979981715559238129558344094980271494182258504257584542209299327031771779966023004324927787907039187382014931052756863791846895033196984241371802216991522000065540905560306257383360373010243992797080103806174368031454553736311124622798686448767590433798342887196679071803827529558775331018667499063947090532132707616201609456350704590345941074345619317590804326378695278800997276664113934610592477688673846315837766176720925018832429384657898332897414480556815823749487471624154711110115561440568301402233170094417318980800191001145271407241366858074497952527114307177162970596990043541322377193621209617406961954424208885510531658128877662113741068958812555526468297365055736173139631359585127633826926907179688602017427318216674304148533111238969490828507412585602271054337912014671444793048858410526846903703786719824755686211476333867161874691429839786132900795930167628167001763906020957754510885851406287971714552910580699108606075873754355766211040106726153179379870004549102642224015757431272976152304283642032213189831803522166185727283075048156412402073034270748425499511689308589841631159931687607384084083587462992137943174013324512719283812137518908750754992631739111623867446197545238315475334548525431925974952930754887958514877045059224792294421805954723953587669913282657657307637837060299621403802117792710496380924584389589806197149954031174610317510514061646794568427064169203555051767494524736153640245124088781980300079565984166848205019285571159041352189430349691317878223482446049872476461589226000965202239447534508435791991622213436572858573886516223003994625423796708246956514878690985623861634793015593769049174358537865467737940635347771553879291622090426922149030667120023957571191780191756032080464849312147631023847086714305852002328849065910626083978211959069878185017174667275292611125008753071864753738135845797897074003947662561437520207616589041575005482368587747264778326848977297404788770549285186450314928972540245247075725392692790294261773781598578104690340802149810047779038182280576847297389825880299370562635466076355150065280977888041484821492716797743471463394381349061505964988794288164247725234941869628098503291276744768081715768309289062528870369832595141970901189377890451621763835154710627449018836184538375965106291899559942689945664771479716475096312178517135187142192940954371600671773817635846097634195910521758760642653252954438738398182962826881558649843960390723731440126493057273486590337249727479111500698252054407965040751542582272371305322810118909140733519966832820059652950668868848509812960120410765925761359012423258619896754385888133764146431073292100264184484939272645173907678326913133358749926615681356953700673552456943693490238094607414735777315488126663325039082494546900305854588036531507349013476277039671169702977026996947717524844665970916630928955853712686778574279596773805415710505198567790094523677045127811545987601224061514716077827710084667831842061344123480608226786351023651947336104146586426559125273775991799874939098524190106656519592168528750854626409792423588820369527427151673029337532514130384718737667822108868905130688116532056985528267973833218273033873675883407336958712472830611477636233921862098774461849989472086874844245348767227134550549964833505580412297724607789673954779427431564856889462155034847079160410165658034183916420612741486712221081736435798538811676842915850635253403557517548751971064751147729317220588916120358342860199455036448078580360821865281217670513237435988527550841427793812536393894476080189108881973093888329499891477257479724679284256062701442785716778771675215011524234746288802810982041330631023975891032412467877905953400787613179451567246336789189573234329779685810497123895240346432663766339706436933723372895202763910655169350740487270290684370611881620277946008499862049503183092927603946276786875043914357231727853983752721410220404269393770363741760211544451579793689894591936940319705499911461377019346076758707223170136801404715519755733840414675935921200785151042914796566203490291491135422611118366608463529611891615797628080553630478685262465127588078107125980963425578819367003982005347145583870950139841408972466273950513511667219974975426165136108116454467412987215565894247028765947504941835478691264230192733096914973808704661752017768574059562338350287394404742524603380460155940861378485313099642715931646428013920051986504120979545482721282973219252040053609148720587278276306550059535127517559730529200329442194445620025117004901886294899022024424951793866919861349020155779128948591417557009496806866913490485374450039335952918263263051264945881388843128241795282213900390992979686211847355892414269640478771464636304797102548540079216420182837271120824592328666296379467456653602918899996840920981931154270275894830131890369643759117464905775992941750751340642804419309473228328429470500381205329186364573742113819662793660494272301529380403736449498120769312587330238483820196746986176490938898125088186322658368649753507222574503549449910037393370438105056174971750755812244053666339024252472698167572652415898406369129426696366044819714381888513716376163405679237698862739214312651415182247843012579939050839654643135200036931663536850638476291074036497157723295490714966505120770090947302765139226330707061268107906476063458461416155412669393299153118113963272066655168093322082898221088455063653806809524253696173743588495765640371688031649286035958507429040572544117383548091093992908710346891549707777436769465733716534471783855772270730963430749749925514479363086628744056104207969219561261981989794656204568554709951120362683544238112597272225572084897573817047352140670614778667454744345596254914933884860954539330333396916062700031123352406669528862620370641991366147919321820950912528144144479117161177044049059409741262510447827316849972642607807324589727386358752042794975145470942282851463765926642637592132198953715282170547366748853366030641351892046256800972710822982394073762480877239713235631571917937333370619574116258564766516546032139951833391608138877283590477182192105461754568904056137264473440917162429305753601573195947188873005258698579563488109025248254701314006491193869330503551032212818291331309121217380955470757752530928829724911499555623012621867469120092698325166539028683456969766620848103000016915325369776919017066537216525000804529776468262270611910508292238310724020148674087645211616029444228177323769399858039169372922283090014231408978734553671730022758679836737915252066687995421921276480901706411876404884305752106337139763769192466856966062886862767624113635363400521007153226618747751112624592731503285492544232308015912569167585576775021597547135596792628549106272512199772814346779018270339828027982677445766240639483584606023634598892416861160007110317548220207294827597696034524586568422892088614651975731606372090303184824598671975848996813825631408913853054592660397953976512724135920909981696195583057020861155921848097836874451199811089247564597054720886301852143651572730642705853015742314505355527744623180636640478468981002187978024523936697123046081262788473294951635092687551237806392404920834640113299719332396536633446633621717685574038477148530469534662273586353978603586889346251286967138652686932364009423567041341429879861592217727339349195620939101260228731859346899012827640205226689685048889045259692627405155874242323878470738753564424798795539051557814219662692767146031018977978549653537458085235023318968983432293167628415024418774146956937293854190871837966504346595882454959726716097790137239059942295397083430683160170206855039764644795422045872397470832430198284826878730368549500381277167436533804833841635231576372119391752347373404374018498264657278202590572551036063831635241292721391062114303570875860170930770062398032338200751934810415831021944657319424980036174505041763383569934736812021660894582012571532873514562824484322774110071729402257591758137140542501888928546280790663053000648049914076288212416887595457975875058368515969349997561198344455423587567828263279570393670508680621458584333536213616118030716947266676100020978685741033314003612078680837925042579440782600153955855753829480275996399498990097757763838222931337863893659713709105294560339628086833176270637848257510080607965165743167861459990449788644387001203120598021872255115485556320741315374463637845261387569955567121419122137790386803852676279032837720669151148179179672979761422120641412575145786109782356350920067626716496273594850423004593063701297098162332292093980641802970869237314519097074255085752242743525097783062863957857569031267809655284405225709076907766994202994312405343184732583762146418074792902594241813304511524488889046919539664385377865444549859255746739284933204065135418475940539808989426296342993477031175909883303716299765479664638305541132935285732736504890260596673761067010828648426001914752553003446215311473336859646789822570291032652436931564272272107072774256825486529177650638346268637752033390911649666861600534149187765903222617975849031135344111916147143316173554039241582940092843185170386280263410326659026715932932822615436011746652412842634857135906856916096696678501488771119325508623566361802072980208533528250586480513873278714328228104093448841321678400486567662649532975978829516038128964299714180754109438878241750568503633334132266970566904803991647312684954201162797549400527102885123951112070525662430182858959968873348314689206727269932615999590483461068149806771581238572374930349561632999720519708511810197351611872965234812851513879613132248949850580913429517913510703879656396312590761479099428642147067428346484419357433241419990144802039028298363906254045872313755809654210523191436613201762902779855134875724298032968344818371624532121462044792839362408758365077859568705926760489616565725935190990421951202540507402735622139744329828756133015249888215393215579714019598714784580847796159337550141015511551711278093367778101566257314555000975070902405258634383064041761876265578121864749983739697231039568413535909405378323935765226569587555592025834535653485638275433287046040802002361183245262570204586446198554368927964549056898380392552821060155453047233305029672197481894726663677553535289804940708579846917583105952410237404190122435834475998298774000661919660963091712456461510394801143826955447764702361220086794959963106520709414933552638729648707472018027774115695482340409769894018376376330693797543058923067880906644528929910530096395062316808009898147757083250247784492034119708554272421234370456862086061902115703512212477453086548321119076892019962895277960626656918140177151659628601641834571871754131753903082864079129981955474970634812487910517315405366187215210615567745098050090125516311955073342457892505049520234207438711160406729683306555277918381964513663234126630331143539718948944286988798634975151321502159878173908389816300192135619652560837259496850827437053887741473584440685987017070523293363312434252808554054066990830501613884213047307181163787403678766469248319564466138732859124599965949475678711714128077492388236812259642789654944704830252825882797420266925407062926863909695185543709821695956547163997747603256768645507907259247419475957511983605367210128814046998507946115826580011616740104032489156129701809197927335505434705544555231527803008986900236841752116615929509915479046043217931773947060238022172656782848084685351927842623357925449142501530924675565759450835798708094511736676998850584217697796724596412408295465467053275340192690566146970538626370962199199258554465296340244837559384299456824945357681180868266181839394556570302390280012090725604576599646835605541278823275221324739791258814631733898255393281449093623344893443721900292162481872782268591544075480916698272596557754478003861980130568325244321525212055706847454550228848078738232561171206459948745207155670566557510622081225969630490571857150117858454727169305489895473611622907506403280835595341554373371206116883106170670248331036712205149840461559972337152722897695402081737492276551034562011638018635354639574898618443125161893767404538041342173703959628043974577318123025185834922189294320214684744936549314233774998012954685279274088587565572213538445612822626840727839419326976884099429460492698772655417095316075451535336802716814950105257133642795740985246040051253723670008422022797983550693379855251576113519041648483094446069745387678405531555981509053107803892872196241053636954817779309073875419847246314118126923323185115554652022435762648231920729608325302065212241870818628168391700808021184005039845665711774832464453086334764650490117594103271863574782415717461575631482916461072101948980808442364773318001689216197075947104870832536484417177616810453386058380200616771262220085182964888760254946267169263135263725189501241079381890195076984748703162585682632077425484177801399661089626879948565198639059437741280405923226213008300862219363017101540407887708638279249385516944899826243116611131912928144587522826403112390663006800300259585794304992159297699067718723951695485782829994073496299582837846658191468394184250279445171099234482131936927523995256998181835264263616038867099786798542885809615969923557223121404812814849201956743757876140028856622278325653359530872144332636289621410304089593122874365057619205584911976162480939076673625157427937950021086574069397592236608810567674218283931371023593084566577528286391253529575632109347772931799014522068451767350440984499602371377115568877417167057237199513339489854504514127988378095497468837513663900800816679795075739746075329768672727670375454833019568322968503354797627663227197874174450708628919787926141070200108970309783178506387171583653920901209929251962140254159996360034441412501409957977268634394902828797741352748798582823425422876237007710438811936630542657770332223973441687227894846624013897679769450615228293072391130202216646857533603306097398412264276829910866398337415024708290847204301404132874388870124105834949743180787788418413246964657095975180214682986546156582566057683213371176212588730070040998414928489270989064537240298865113911350075506795440897775784448143059178150174864810926882502972471142239607620433931684731646584597592776350157681291215475807457558579538910900898263201802321294274837979625158621384887445329156274713500908164681646878378817768343731321514919969462721958145761860159150008340909009581777330340076602075698459682975445766355106287558751268913459542948456879455357981011554646482281705862820553135890981121923243991361550067621646474909163106892908005611685966116607442696628821433556192119202719369819997693254196097609413548487866019641527953912713478384807040281111037100073209574354988247545302603311686280996623821039389592923179304574814953446832604369085755522309548200369136190357118811826794767549007509806154908114914622941455646213119980931540668099107479445987159264711274365227656190360141698974187959480680421205318426074142844805728795234909334073903124614674418219145104071848656798030463678585202320782213918410252593935068565000468530434427512036469347717234428831735124083094828191311033571218095191924948957110354024083946145950899028206764806629503142911480207937634002951594009150986842571685813128597191342102932337215983161323437436080897899774181509495226601237192958340886439190177185177842939094276578422663479999576084777682801038818224357352399719056932727225381016376265360715217654877402814203882719509231207653875460673416579909715141915613008219099997497248170637308373188557863125929700314829904484262467061043719168505661880861575500060422503065249795847958072869911713641698599677089208862296191900130751015964367903186304229537401619885187253546099981402874109216491456149071192817791190340240477023091694240636966773997994230873864104575673900715442068458823636267464990656186138808511425671404442975933070859174342119012844016014632889503266070025098896950808903426361959497769448120676050443499035954045948106803786060941314916631863483250428663307642100556903417038341966726840452917379388657570362626814700939165116434512585330957508758406111027064343704054396930797998612310627712359950775205875557577806026853687282196403967795544033395218183676436520477179676289545132487964771551282664084572606623682806269252812091167028752518413755025043032627576083780263340016193146390501076170277364764217268490428886753963824117375626643475744450712151845984924160646874856139084660781153048308805198692047855094650772270031123411321201853077180337509406500343045235376330229173299443187107393708072282538254982619779301171604402016422922829756411790108093768177769176286093239468999581396703587605734612189906739297870527839791985846038165890626725618788226211237711649512128641123360253851226391103193612994440930739428591660284590119179742384280793815286163924363773981848718107859942865007299200281860077793442361766158631236270016871190178836318984072216614511197801052917449941621781375655909459976245486143959809770504565733339399895394906087594381013312233023866788594653814352433254637344175864612951922699977963743317957077227569641186550823244477962055992649964360301039507715785967172555217319486852474742470231933884805655577278022675186118535199821947844833574904542441277964970855538116868805322104438080744942526481299937947424658926416010187936028669224877742324172650290480726836546820365428592903498743923374706363436782754353490329234142489766917234583676863161295620970846867690455269567623797630457142740942179637330503507280838152887400900762404575647043092997579555307317851267208529359726891294764300116118091603155554717162532784833256384933453368564241983402467559236907805715003628275145998512796697709154118181032690130073022263654309556677699259115203227327182429195507247938204329449981740204402310717146821511522140420396104454158448865697658993339269961458846883390346774321872231770769531999465872982167876712008289545494419119236502644923030054545318647565468115119061811436805882546520009667744719879475255684334227516226478612621907537518581684698373055367493381546542328563643649926633103838908175900288160954756574483015153748659354977819592631342432586491236995532125226832337645591885646647352812262869887020352644778175958237792691410509984532472232864237474242346884583923864265934149222592267203958814589016098293111233414928783524439301129991717085600858123335349043668722644223202535476175789290946290078190560435918775053685522764443179147215522975061160741208263662518280807553992715857440543315208436107341297235566960456187852354554728876781578542114117190824862227463695680459417904924000073889085278807626846433683682277961512241946557175347899096152095329690676979059175476024168845155239649259121541088303109381752533356471550553229566915323639422495684039347808183541141297791687569330489123659653459545113894994995956514233015881382316045521672032652673867683348729278615034800566362737248878762039159926602527345018395829461630745566594501417346861417567021225538217955949118465408089641893244661874813146786496682259902446792773201633072422435059859706154265835192203631799012034752618707752929032397444248553593533545697800136797502575264057696975651511854521688989274013459910584266137608774282922630474936402332156240117424337732874994771318242893034367634185602343078671466886210936121913647739063694007868198215410040166100963375323523510736696174928315153212542877491738365184027926737587325426677333718802628024717360715460328552357473773465640269505244637307386468331487416652507277378747877281089578174792051434945560489984822111766566852345232159568373017353081615579831820010772111046654469754593829434041146080289963810134643012448530246989710785933112342064963435661243590326853810410254270004355715622773247134114855761483913252828561777965655818984973275509457719583267113344169893582399951988657842628691375019474786951011724268900346193226766831642750160586531180321194310597268876240374254934230366526604901792214256294684572629550481775237577675160569067670195804501972398031157407674687976757925308304536976615227055340792723491887617649997684178331756801978246912498923743356363571001563491691078485599292699708723299075798031688878348986645957277383737361529056932415074843181146392720443044549593341467515732753754499884347776834811346707216705520421073792780374324550214715293849685945087715120460013858854476302478351784767881057715001052157503328756825507834870635437142243271364747011656286561926781754604077464066102038765493178457952412819250766353339961389795731415481407452606383386694847664883739041874037548493764107500424401194711115080452898602083864804517658216410437555894824317917545145788233991848157937691501156017440840743011312154173125043537507628255863572142859795188062712818711501471982273948839311604425842869289182932129409928331237850727195944763532224296106228663696853433514330178291063216930585297225874925077170852879520837834840980860341587119968683228866339153666827547863270172248655127778904352702703400928787566829761812033953704224647783993540896115109256674405751236739091214763834460438776732991635056742170406341565455196064826426381590928653554687808797734828713631505696583441248918971025912871146427662004401800235689308710815080496966947269471364226416953543039314486368477137278455569462718612750823484885543900781328346676542286416405180998038527953162376400717934968502572570961857383925664012003181703168200709935650508257674854682042043127614644273852528615981782448748069139181950119876472250177500939252006082451607843482287937282137510663158837354931452159857852224803444116192466613123233940907590424432618047776075982833845198987547384770655700692341016866656541528021812907130987307777374848647468449148184886204363978606485546277965632544254926463681585055599244524383684177575244151352509739248837052848018886673137476194902808825930345223255853709340566191184273600445980081201567552740124772901228203289138050660590725871666918222340429902651690840601277327028958939025100059376940475054314228816641288627332729317814053699547754189530776533408352756043641056005856307487275573599456848538755215110323029717940574651513855018228391094913336053591084444012208571247950089371303165796909599336989760010944835856875068837132869396906627791917678589961994344978104056523220016590601604278854137018706674904052897454233556415421532725014702619721763983102526464310155852047810133686810800219264094942020356801853121965585266321075262321317723387935805889688259487470255034171340803938984546868811166679196086315180899089931375494480649494461905313024983538198176175824858699867966352140602115608356374179153528063709571337999412945228998021032657104448362982133168449937420838436872423184033316213503633740659794103851969675774122577259628705112274364368836221638761071443460052199919959657353935451809804787327418842090913749402019034038013118159677706307840381734841341726910127288994091282789824083183148448759690543480063634748385141599853853850885982002426718847285611198311060821848255333705946742121397549320961694296719764204802953942787224822775017737683989342814162509758775508416508866557717562724607845528815797040178651701320501841520565443226576148913101428311607434036135455476723361234441248679218288668400869917934072146505260076778366742704594604249570813397577287119338020590064317769265402074432166770071065343522779845024367713974220969036591725331095453310235064412960140313000801971560752482851142064088215031708258730861034932544122700593932921842767636048505087405477468270258010855501972623027206485621834160010259446462963175850323595412485525683337077049204029822915465250401093738981511071421286885444965270254667008541461097611351140802086543832039346423510524825998680410711822153615341635493050688100333778639723595125621198220036992600357614071624071330258806231778910982707796547138652297716891424976308077177548486321547593192666798010944291309908681572946682207917188123627490880697000790423315797274974894698545793819486139896640000225450252292015341260109972537963758482330436417255080631909900869901579103212069541403140817666792552803068868631755533319929405949061854088949717216630792073915493159349424308067622028402025204495485444967538266423592674795145430414732102641910717957185487685442251497861315139418423566423967873424452284199187147126441942814603184696926481748686722537134844712792813188769910277717095873815200497287193835212503138782185244859729451170485596893830483379545531905741305495878818385817777041927846232206985983343297574818131914904667440808400195642329160010511062198504140833682149418578807582437235265083354759860352500270725900867916101591905014913825744481813342467792622789482341113277830325606698657737037580678708323293690236250871907964012588555455160015117248004537688437378864367677884992954240390588835233292095151226664411625535880946717712168010960754907455107406925886844105072610779149097085110280618224624311914303299962893306374851464336507436735663007503527894757806755704246765071347119940978739164015571716341529062973816200109498464754053030335962625010092277426279153319037129574282724727637708040843625129429937070024389643353425768458246089186535804214782427886446967970181464242476891558269943583973501885927852483558719730826338207952205910775953979175931229435192421662815948527713742249208952374460626696097951139760761741931665431573598803837377655313838835177747035923825732419061666017026213459879794422624508260800968362203942610973312347163176400484619116035504406522723304913647017842993857958757554266634746044736285908511689574322045810498124572751051887736701805936916693948244859658740138251302380520751700605492220993727145859767634866997155048890945571040885119969027863810902011786744855753494368120643472301617878646996431775410930033177219131076472374861807633365885294406910339973345902993567197793978806194604787326498034657771113634778716513202997908591843727418854571654996178214945023700450845258279784512458774013905031374633455839341001638625670655598339942398112683326885471104354835462996987828321140429182151039608530382170539860497558414339224870487488569388741485328825310224863292119228154683500628603525993610604573026463658050467041968439078943509771655075025031881108337746389421967017202513186240062862884343918166278872082009529378636342337462706697038202774043937324778089509816268437984651102261347291229474412431890330936970955152205785426569397522204971303220444584786733880608889770693889606442399317569174399343038182809089598387977894564531374582139467106153438353687702001002452691038766970634652170357249214150846063120256818207759304271174121621830875701711081181412124635416401309499247609285002852031202089722668589926045403529392571874120057835331987439353551472470499401464603066469555562119897314439583220999143599439967886969730564744903783001329333319502409900502502741423576904624867786210352798779153962170456917964402315875944390097528386108995108318209688843089195382791883713300419348831964123321386950799298026987896337700521225634710201395036792067627318740414303468556582171894928474759751077898253026170420023101351907935706943554617904952658183398889382793912813341540175731827804678734710442405005029535977757539096800236352429587912287200939414609702072189628535886294624112561080126250626346991863065960858156603694254103630457114456077282201189316949698803107500893658929851992028777177135327721266481285328863920949394304905286290003051422049754767998390798940945031053930881033465567554471761140979997127495744660075669092598705011049368159538685839248651634820022104015937906401438424032785543068481835837327926481067757176659586349956329778307499841169519833592355139286033103839020933224980705837127689013830140987667923436540241889499977752658184212087417967781032300895246180877048794837055438770879023621233389608558375780603376765449056469366065899216454566964875612676152245355400477928940056699549681934622760432942385697919486962315651953751922825293317594333175375466653571862401063903418022816377413030101349356708604672609011610810986425560722176945366348129100295036364474852084797025341906417508648948319984883268052123589689262808807402828798999796813596253952070727471511104261965449163904798671135653648296950375583804612527684333352303889963124863074390344398472593573064525748700257059603277051089392047626930321798835232556272766674798371532532793111982287721259403047550250708989305442280387466673206297526561324936400558257447995268245143121105156673449583433974033360149398672655445513710685969035849861849112182443345276521854044747422473082349814784857350998852263709857742744990292534136640902300761884225024803701948226293543466779574551200873577833250419054998346558443252961275780719075094383140779275871160147473162543752212301933813867570383684055620228400052621993242331357619134561756345571257455297357344356121361956437813197120126276005221340683179629032791177102839259495383089225385862999129198659094885402104073348026182452905115874118862681377100363929811107347886301634969821916095932602881412951907942619470075717409318236990143595288961362736487996257766144988466075215576357312673247519896802942522887277465716403642732781671046493607377269571944189657904277823207665624820478415284053576925649550568862430808060321809353929970373481651331109023531703395004532760992914962105165145689945167724037636674396506736552670005804210804827278100606131220835323487541381454394584992375833522440012070255201224663849438037317412676623675272425997548784496601447439946668269361054344217044020823232314307237467701615067416020394429679660810725448661835573331063975568744664155923158063587553277890721392764437418714784259766358557803029536419729846304041661574882639215687341410992658001976465349346939808244421332839987924975067132111202827363566317083805720969099698377513899532891072899563459355826481263027608695410841398331675876741426745413702998193754528258749107916469237627583053820238248825448151376801140725971801753235554365748006472908838611626067668465427787732255464343250119252526833452178366755793064042347772729773077473082211106183147223891621279414818036841249147481141902215201971541476743417752506367784940394440876558028335546641965768526433037098336246053374594542085217321379867344977682905868751020503783287086782627170100515055435046360365636112066694280252912588321066058872832737545144857109355753134544778659093133563709634731538897613744735242471866710802418594154638988310476086875564735578701379110861704170179439823092025697745441786456439626949965622304555724311573023559830909505130966644245383487751998413368488229903876141329862849314283426449374376327942910848702576522386591596308516811183594798167737904883165763311622836801115907620417376248169352205177568116840331192443177192744535663678439662329404855643768065440148845768622139456809713910760949221279715433446142071732649624887611706451805958104256161410342940634029735696721806655345213399844757765915117032327568177598553272071688348699466323729650821829454010343979512845036238610994006114998423449708654471042639692560875565324870619552243994162910864448419041869929244467791515819058302741313282243743805092983914921947085552138589163840350716943851015124354845926659095289827716355052387147511732671985576684073788327601735529770518442434063232212014356811221618864520362280336945398163592865736273017093442901179874717386077563407449544190596063529112860256500421456660990134412927211335045340110297856680058231973312827385116911564958570245605227140304187523544138586884422999499802634830190115853220538262523286558330452474963317242691167922362967542452300856431682237890090161137866741527623131925807185373350587385320600810140386433623600504524659691539679225361814157778925929669390127220072637886514214707522089776821133784017985372928373944936454444348961701766492559734829570071010919712762681533503782140284581996268521100970530173049907341151385576251017734167259838972000763301621141291355068440183140671976955433836124880744277498292667325964191872627340350293544549260579741894670648430734809506238218257100406703728985155565440052457585178876514547158916063394523528523050474224479762911672714310571442958285919926496006376917954106056953576182474037951253013087895673385813862113136086187535314941573595405555288027765975920284169844010272324728474337680963348544603149543065295712932107759651501397753945714024332166316028133431195233987289144828402487539761243393623269823229752196065203284770834659445670570051445516105082007998055494209476055755460786209648325306389204953491499367104065808820970531869505630204592647540073942175327898251333512739781893345243051974887840308125535878465080656717463309141510268306571956002594906813367153739755215745501358105622516827191229344151441907739869840244212134489864324107881104650122722060384799005767645480460141464533864497154368184362109048215770564243268653059943007248850041281768244748088194937891455285075061349199522013784232067736505962139115275698692594409288976495804940076625606047833357220485477270793580023949973309717641745088799997656883941371547055933551231510711027330977111332109920868084809302436873893933840794080427891112509072916339550693443374716647885998079399313204115140693097660916587264696549698218399166763373668597389643575613025597037037259082542110375104782236881705390597119654733676456196610165087526284691782343981998451590154858918238277360304972492053512843934097069347713788145108074504996343225408116360634401950218450607254869085543746836909982683173032645939126832855263179400273953627013644644750168844324900817554943365044869708408787489764955727986150294246549527630139629929366874797078316840811840753570324300877548372639619353860227513048613776232801170299288177619469565798050271031928638296774896565559287041294903685476250350885822199271065943828218336036651463008749880442900566721209916459506915176365108010395769489350055140092269383572710476792407521249943471113322441420314000448268654252196924597358450491012683888687832434979108884432719390935463116017553158740277174825844501141066375312777384587928805658511164799758841858602358265903949622799783264808879835167558510781838356733217586229341998688084163702431044435798263223577986633824069200822727659228831410395841303560902266364701937078234684607814621069541760657150638895081763289600704150041411925042805457164459802966639908120784287591167389259666045485087174966734407135284239416048343576553692891868088127904578669693246424306085873420876341086954756857607353981097096476310345870541442851021314447426557029836565183703460852949873233088591692055046452513622669343074706124278936405642367956935489090031236817243229440242087678165520383567459917017659139519248511703890873796915386941612889875674112171216282340759885183019035703428277160767027777282604839517162427346423666665836780081797516354731214113461302933821627004733886920323506049550905045556632253273116540643060969795105099223067920630927776971019489966965538048035892643945139551540408949037243150752235936339973987601913902278523044441899270316279600822585343675855120732113918140529358801740548550882003715852838431630571419331638281289768436866108970830351365954037349194450647834120183833123990844047807670589638270645683195511355111668247505976797248996399332849229198046377023661575534248188881349802345078632322401646080828360308004927283849649388896779697447624953900416686031416070816556535709008497349329981826371784160598366227644025994123529502825360756321273622374786599089284590733597447772152103458174167825715477961777294353501086262791234243442219625845232464473639900377465502935383090170783996489633278790499435537834333217060435122590829867455746500977222093594812598713097918458627145523247583448235848501437559503151502771668991714828321915663812740689469156215343319698530658525892833820290932223549666857093095914986536386954390588229964952598361011957080232585258307841566017855348949228352477811605792230202778127455138251862618906946774108026380920516237582184576575514310889034153519418982209261378404977312198392883158067753514067388103003933043310723880726857005868968836236783693535804551481180032506336770705172758622359400894525274764082238665823699735367826472512320841265103245120078818535571407569761357350034400810457529458209306693390928342523392442397605947806071180238738728107167237688080109152769145757718817629935368435226710022810078378524036266343627729940590932899313654583137487284581019889485556021319681642177696345025850734184085683194310972213046209308299983482626626943544289056828176483289061554328078032157941241059662298327576680332463218049201094976905206916064742271287950436665264009087999794873654505629099805624087598464765127239812341913394234693226154023320472114082483862355686960037510900586903501076053573320892046051849620426358689282848788640927472041563377411372426964391463394646253834106310177815035830848723889050789638850400413624316961669549628268803514246834785970515067419658101774780893094655862209102543708952249925277731752033364662091116479926167050575995395207666880585604842208375995093740315884259703063417602094237007462842854974453412055945098031794944684136715202396856885794945460118667296182915694227302724916324123259962224314175550327157664190875157507628132239105431893837582298447999877209517943847693705114036434124339066696347857449411405763009187574212610693400193013233134446450872461055918573120707963346139974705933546455132039683291938287990975128992688301354573559905796513571763693415454625629757525903793996886405216449291899187677482629032700817735077892453557247479755178128533074652180144454024959527020328439401666980236851860064091072152199334094539553892719417751593072932827940096991822008845241677584308013950530250068284472530820910108854436385168172620054899135517895191682007144447736785694900770670048567710964316145463933948172631927732688433150242481194224754532002044180617896821666830590634566987691902143442787552699310459780610302105907565300166233527485791562205703302698350242768466072452047947770047194610445473251786376925283278232812091758694545709854864357689137585026463989878473783561154835788886626926452585024318315067917381411536334959420348477935815047935176421799365032907972669278698759079969229560726464020219197923185464441903420947720429316901501943349839818551367759228157511347921289881232992708828289567156793196718707972145168893670917040154318833942836623402083268387519463963569149862945763556171324844226591440326909931907812099817593986388531947601444534845953283256495080615140482798617090865710404881143402967848700842211321100133681351474469920744517342843508806517964054285944004533954536163422308162495024971604922881508329466894837906663259281087644850819318682146574213487081202933725040749146071223636858303604728775022985025216272265716602535592588033563453376160376914277750594060442021527385413773219550307494743154318517176138401259520730325197972197084440978514011263537996009680044916112648929126776050404429894574829803615721927446740098698672005027174057306313077939350627720614233400900967067985132300239060235660671001665513650361988343360529346186034755054330304974075273476431192373620896352311865949507000037266947108251726920739436153164893221373950503469966862758105521654232575897716864699766278343128587503712703059854385052019770222678430418276416456898355416737641218490270238488882094639269509025335407020288283206997655850242475234940191177193712133755035547817514929000835615251055372168547981781712406815271606749444735168962131710128811252405749228056584227808131911271371596501210769217354995701018690273675879254858183879178996264628482438149930503601669225674272867627479219262513349528998841964413927312306339043830206712299741835319991151561738639282775392213091256856009672525628187219487445791013631872483584465663567995756377293907114155148667873278637514407890803557088866334830190175103420206948874668774770375323020548839287363282881364073655226422535293368938519620316771856106402601533623376889278784595296651267154790672658068200739443432489082358904526485210809082847448134977384857061112592943425304626646204520974552065174161752024849485731008643253686154828115640972257658834769061170755834953121980515235197894521288791263260533342871519828443042741038035284790113671694256543653491794459522348411523495676413818225751787940626836806071953846984792164797475318705037852949951206856137717838363420402919369347322269499115914282349770243677051476206438885008163361119981914043937115676438551975636664634807254984089111836237231339576199260735248761106295922197599039665204826392806002116677074854268023066672495772822539696748516295905628281537598088205394924494557762211600081217614919456661322863726840662125247673152698071124236286091136528060262059977713908428135730197829002599223231530871737537190098366461172610112488916970947688341990740491770716311197232445451876222286386652027709645781942610761575831977149588711554820672319157715837659242772952663984575345721760810845228782645305693231376507290285480075803874814380983091667791008586002362079452802822240168599284636329415908802763665705140953427956982947608325951702218080870357249655135997342505799020022598773864980044282512268077175020044106529179734067359933180988368481330867379282274686375779690332707607732522324676419297751708327249300207311647246570314824991412493882195602306204198811936780112703561115881025135123108963437669898623624536710537990132179406421887674072454554840117912068369523476404587261910739971559666039764662521494176006322538771626360318072719446878981558799038688411068820304173444363878742155551633286858264297597411592465987590086995133168426368546545281860690167349110386759719734564932384282513259210139736120867023325996154517252499026388313932238447641399402466902008694786656873956609162756995645600273302727624464712669131317735570424994495058343645337702862535612305229244428809357457045575418289212379835327503951134951412172730961914871534930401582193318093559992743355760346542162457413094613358504347054683769554376163194990977825080630821211148399566096707361104987288297240250755142023982750729949536005478616406553468465840167284275038280888954970469622401495232707406957104553059359143071762131451193486957994746118899855282945278140941728281446771286968351480810234000594757207678180251862022781879124719542285854802742538196308298330395046923152301716488365532557095311989195439949088899126317101378858815821347357101892055660465738402009675498971643940668083144197973700398881784006784799196914754427858246714444973451698738075097296707791926813324120956834484149256654706522338341650537443059353102004696563069794820739803608777614300893333147785029323307175993329136033071744871704009971246079885729222580874804747582026003502162121738136751503420511043662470407685792638531824271201181087849526810177133419970690388738270569863765596815576038391000968622989813103703335440763338686153468690217332778847086406884459697961978797738929371757951711767441845750551473935128160671621413658580450584760978473815440748982567484507819708254026015194818430631606669947362960804936258211698453345714811048951470525145509657547907620307384240733281515635742896956694655314380104142066342588615780316862616696097399181207855678121512249153666377664037114607761737146446762897897910042264776675096725269007487791863005689614737811358213668272023399663331605463255007992395328631100249183000592965647296175063416392149271017570658785941697339207210765796506092827417863450761806619535190779944770162659750956481372614756000671959215974552653386298541378808369604512480851171490572755599284744397752680217145400784016730241290024738863001829994338346792219421436373545518291936988814636842063533738563721077659218684642033401574114811073540609297838959191871874771802952015423105448846756706669639283679453305650440940752676741749435839288108872672436339755640381926620750819532119076522474867324026401359505014879784105096583026227764938650997094798341179803499392741614776513958340368011019145774751607525996800573576095373758246827724750671913911177436258570014428655287113792017434459845680248476345361852554174847138468667612049772241766037727637735701888255333462766296185889340249827232804403633921984074563989275706968849610456034526613526068100805011511052485076455068238562891791443530457247363876911175705918791037324612614811589276853323323034336071057692269585090104347766285826696234457504808499196192660143113129873930361655098156345242898667405385701151822311258205499051085583653584827740330265125427486784496707086689002949723617561972265829468816923534017312731958034192548547143928071164970366639320070165194888158394023076013520368525892530893148818871748181574774942686053164082095754696564026383736938689487070788592236584007228730140529190066337502620259681571553123861507655794410881283949217348065778157414863383899309635749306810259898765024980823243912199415670654233201649432915946148467736265754708502517884498977966124444756982953140688811957563654500762400852118440779839429346969920634805366400155508454836560550280703198079128210077421865277530715210345705719309679342638722488779283807014738780082362190098284640096262819154911790392284107697179809942130981830263928342236913840473279198473702779610960840574612790894241128028841506329523713784906878372018907654360446217686920009053324987574491302915122953661035355655644241577686334729690126123558337843047771774356166759052724753201943542908387610683345078163673368822970865233777778443626632062791843541218339785548438813570243374372705554500981712302652275823140127610631660765438262471993787639231546846018994392032446969458991576516301211044693550389753529174741745734688294820430544671778168941800668369149064564815384596531078746050771372774775915188364887001238937491253705572083844912253777314669213600102231889081537836619444807617380874875186722463932087339085183754188252562640783856539739145834800459528343599937645768173716203309157864535617473122634991111029813834963144375048404946261446415032806752878335764649550896266300540125330887752441217471253448514109356460566982363665717026740977233767200841418163460243078425091706565668568618565055342181032192481537522579837861153685466692051733674459725200487090008534127096063142162578877423519118547025636243480256173094274313750116025573513288671488108553587347970778091851307445019973850578997546137825196636719262053235110901823921862104791803308089904678861361382767798365686735463617305147100873774577350361753625020582229514501493936519512650816700144601635873739916146225782456634116359360192659867647976378567471921371632025717099951774482270370962745178224387102430298971460049965358582474129198519466619319396584507447863239331018708410099100170329550053700837870255234494982508616457298414899596237070350764308296821756557281793285416887059605266942911163735734102459023144833994406969168816263575280476371269758784805878985330620379647250944667133582188608162162302541922212041434542775316533183774662284268146483476455821814903547906944017326544595411546552322512896327467156256624408977148386346569248827024183563169797151810715751345373693931191812096327553887991847799015267157763334813151431947371267153123912180435915075787152213591635487721379570267042449995279297090801935977614229717356772354984810366673974872236250311693663591528669998210990873604744134704494630225736965759050139326189021286399766081951195982537244703213562116405784709611216022433224799934399492154159601080022427124235160221193398253626429883081086298489565028822531046405389571927755674011922040642532370473230254012267676292317587650496108851114597883274656895359710645823314733473962705486232517125573973364887419560544714955385954370821998429967438084228129211148544681285307861260221553901421117746469433305909149509782224773485409860303407651372155320170173589445304075242391630703325214495517546264452310269013109195330631160278724381791497846563061558185873522509429979711987817682862059558164973824835088154681637458540232235321203064628678847069501573355205330216868811757104164883424662744002632572488876301163898981987812932076482813002281718988070797068613464335671878491078356885917452873187222214395476013456979189115178459198719916537648364013636499842414793170550808190604931944939051435989225007351604137274271151958790236485321676328398142524012475372532539491148907414479948350114747510946306073892099159169217417450786500173155458310091997990361387422687144192062718306006211106052314799302717328804811560688024974879013974748352809429877705008824778536625773652094677216034667749802517290302739614393739452364403714472605278885914654854147875751784675126577670757369256947745230574963221513514495709580996018462181501728147977817848639454853732304227086648709140777744026390113674315287020433091103859220850971900732111014475059049284126809788205145526877993773208827504804978352829346868597346729731115661602183273019357822808581436580557858041835408179963127737222566229523553904507578159341756119931838539207041496684398327247237779229096195911426156044098736882608573766276495803573843125784826298518916132234507856463453751830697518582779432809419882937043797748395565783730718563129437473843883667302720375385293206833422939498373929167432384127464272824868202592593229380764393060087678774096156148348624959135540222045803286257550473074286371535075629030532284483072623431594591094446309161939348257148337321095893261963471628410825191136128512247479558208142498590974229923584375504009581987569933274110497733099434021699508756087817149432283595622331250791288851367949662755280386808396441619556119703880986713858397445557425588550529257785515855112988848962548821427439857510068243766269436886128531660908787273355252853786355901827187445086982271708327809996310882599622309844854088333385811781311364297487207948996704643570178019363286199287975243202946949019117985341190776925796874419260960983744812682575316597690736947278538205839447615479585646330335122402090027683724352103472258836179699951026429821040446430218667088909442117973677224925703890456913088824801991510042108495183695000314700026094436408062929765780726551341328816583635397272371981511582407197929236357594210641442227176916359674383910796231673075332221690862701566713268455794242195935113714618884803689033081071356059164798151524518744068022606241953602810274414144620907083759945085173912023140818887538486163973928506222258895327634883517409934599316599572074188844318145727864892474310598748670514548981438575998106639420751170782850502257001112530136508000176676941086385549414115743959068506598787015970311148000166771747548513739972017798071513293947271938312579845774343102061699838123628931407736062601394897627520768679034659607148786426899863608369051927918761928565671375195778129526585727832922531209561042651324048531729550989521650745955452143207048010486278941690782513918935809470523504092270878939764172295122647116523741824439500549270991223216644620807323721396388958878983834456387090223421307794320988946717248589457680748373428163216325991671444830342629907703569026126510751908121449454551967607467520675767904710777672255992406872113484691208471324916414238048799020046844927038036379761666396527219876046289313973755187440036831365910048145674380967695092993927603093916840447924374788046288209223483062469250630202166790188723437782175026779313035014604829070199325919900275723751434754972752885495409757794328856761466968797601315625977886181508362392267601186712193733551498340110817329065948663167399393102625720695320767267131969184100080627918586512677068206293760359713419939812578552162042650234576248852446538803268359601428942250073987195211229455812051983116391228952543271268762497629771483242823206501737074427330490289538700329009443393579353674851720221195727112993888450218408155848048795051440614885868320311271721205913977328055354943733761229869333118970737176906688559514796679729158260188607812652651954803031801725242342997281643832158243175621578490775177834543745308310963380309960832051466241925645233290488201103029506094555595707976434989288706437533480198277101869321811193878750519115817249365313850057605332022598236095809317162845311148043720759885437203624134876302536198300029433195550152229492563680122040255678832520509374380807422195723307034150546066271983168210345913257385793558269516508333093550025479824324443441425126366048273200827587580675430561958536448298336163574460853874103065712897573438651595968781992594363108573866878291422462390596855063801517146382260399386889574171092635252007513848718228538578987231301670299819279541919197366699540348211015852341897994999613488799364564544547853536932390592434020603982126571382460966174027948952467501849934876061618878820148939890538780004346862877070642551436388505459210624331893335751520967314810522861098149242850726870026918924086645488413578312553027290655478857041460989062712663225235486504594265470527710935374145003801070919861560617067643331386721986574353272882546209290382410353377503209789941513643062038640835697534578322971560814686322328417915925439158599938339880614556169179194189295983770025769915703222253354588190702055657980494588779620876385415208505643633838393929628994052946603406153118186050440746127353938313313086903102763134723752063710306334915952820381809306799484295516579786578511708950887702857980468855505983135032461742180747628651399708735836759184975726155792715975543130037976720017933341766546131996644463633491000239620528533930075725313425890132333798831717912318075043897131871956816043459794794000219802586819300311788597830866014817912254364134479300933437714811343923212583641949799490564761469722849074076221298591553560132402222931560684654162060224918419597559376824965054255164734660818024106989657224010771795845173009933524487509300964675885273989623386042909280517369339253231330273504859253948994441962133870563673397710402279229603082558015461733628216140766295902597576761120586346327993603308329246339764936883700849230436726015164381902028864820528688501453004700305001589568459648446877026063007950510835819098114826420837844674899141979977252966717466324317691160833177911392735471909372665954507746941775087163411240376255970657384199187807327641596219544228691667565809746373309807260904693645190129844970955737851801816872850899597996961746328009356264907561962566938513173578971593337320037194197200962853542822643170060987939849881220872320357023154643337364880052168140232328196635554380773306553355035070944199361679137113364163886358024248634366687771729097711737016113766756298380124532858159699853015590034552932979604722785251653511741400828880811115714313852212985594445828385289082308493810390943542405994418485512427867765846490156887079552907088924281680854836344441515182239667269358693690283076622296572761540531517034746281789148520758114496506281796552957663213776430229246029340523977410762288511065887296132822911394901449852082649726677273173464707713167445845091441271427150425925467102795317798705319940101943510545581375545092719301551715271345119869524488885141086539542946562903609573156187669958146354705730555138430494906447014027063295495801294016460423891633093483431044250056009173925339628772985140894100461148557889367654046798918336429975019986951441463294771608495421500192744668569942835674552994248056355599339718073958028783673576864213692617933526790228278401113277046595348970521824344703294700711087019890918913999357757163280174883138661491570697401727775990737211656982948442003367019940937104009281588845079348775861830721010977705229279301386544304017384379907262514908496577571873764046857492899692302444065458752372163408229749836585614415092427325083079689367206940368896764460247525467827835299907881098362056414255827649314500619110442262987916182969706306746211516646798475163901918692824634316111884519558601202505304897329088670918699662825055743582734242797222813058928363757383818480683178100535646360057055727606911817936315989610383451231399405528846626367399796153536176668051769330516672382131914368749516521727300029345254565811070903726760005547006348719644103337534140999552773425200896548960157686719009349921677522962434024789648389910585256694220966547159005842079597758631554435587184171632512890015438603591760693201138682074537379511945581994494869106832082495720510491641411695035217791142109425982083017425187876791540749838811884190713448180697246177094132499953912799468533804282094818288034547737823809143779614802684540735344667450621874750571604919924238544012723557225158939093694212297913069014580638577108170641052773552310659007462543057569132035380562237190418593895422630300685620375728995995060086327845925771813737299273643242884817059063343664343233203844259198275302187894691148295019477072462092472606311544824662257844803125012894816525256537875291335979704219993212836230132189449196209292367085609203809888887196777074792303338639186157645011323807638122020034918238002062598163527950721746521235720277229907088422607177883899755827174232994955408275205839540185889306341529307527334664254390377362285961183732600940737805695050594412812739844206931382314384679342414510929028880457055965827884236645818429038216810846135464726819702346005349980068735159268631477410091729853006420322428128432330476892874563705650653467588885764170578296073025927370034083633612626453619451162859168598126720790154178176578069000282368647104079879240802693223889903222793812432464827057168310957864021430195392088420394820543017755932016582416160873392390803047893937935684784994314771323541509920615487952636134773619221657481985784632165094475454075579452686763741107420791561487916996607409613754390200889346577095850782913578753934258951381845023202994046476114796776934924823888205414071400600599727567808197063007593965822705284567767071719211682086874747426898542508324149105871515436489751156961169593533307239064005797008950086809475096067504374509836595661773130982527830344742732820589780398613661602704447604207580059777143199918974702127204861990314767908269768311166427339397909770718071807608160002545899895446247223621698983470226461690049668783297690625331752810127428678007875383906652115178712387607929418115276351421274806284502664548063944808648409990541612930144744862534998495885681054408491193268287555666975361154970773139316332118907929457103011219086016373384898995137466937163420483725552648100522218778151215495694925272704327954395787508279149966300812003492926187870373398421438098124050819905210900578380184065100656796808884036394305862839971325443533046087759528075994274520474660104650208339252118263309247707211868709718140188029216311138484945144458146646364113829856134730146523595490781092447811125075267790662361999683950648339426921863662823511106923059523585220300114285691338185922122317486183273690831751214000944918730705952058537396381531796511792208010414369733717184190189982738813806981401376286083716344789327967052933055665768005266437907790625865512346687836049831497457560154061908993097873558635177829916018231779521430852885011514050931798611765279861881746944770805285600921249435641817719907780773815793476068205303170696159347771160041525283324501115323850557532150526942601122434078813455758272935177371573247005759101511557178869372426458797697975051718096656308848945478203589509270709983193862011963866847355287005906502425811072843055081726860716175849756974508014321849099415581485124458681584503511156837110804374495323592486640906108862191064882233450042779450178587227014446570969551825736196380442486302424028715571199323780964186981239278864820348343060027136672464381948475889970577514020064252417737722849604641112808002504764066983180969724020795007567300779418769464995390523008714114393106750333382186947295807638595489482369679489607195037159012091665577943035173623100827577144047704894302758734487222627518846702074754976424112395157461484249288192056889124809895208350624751286417785419294893154920688988511803603254017980324084275213914269508909252453065328891286947374780832703932500796180934385624179796865924074111961918679989118716014974122120597392038670104074533583348196871603828112281027153412340608167742595652107464116523953723753468441973839632367937926612502914488459506192911133358912268596145395209695458067091027710163116895402092560512533192766242723504496416979127543509642006785123784583709913983759845742237401570126695577718475655560611767473903952007990715500685379566741929577105776934029159601130829331458282052050666658067944288049461748177878110864145078900757004933639438032774882552263439703331082046929363297087247330732404780526385135730666943763331678567110882786134273183855301263395907786948527662952396370081854027038366493655051440001041835737810734378505390363455809661259402108224970199905579161204155454700437651531496418005743741339922780669817586764023892038930729023177533310908387475522420777334918574267074252376851882286854053822548070002731124288356217670469703285399054533345152347311970887850775286283177806094462338373734759700748269696496189453526531063769165647701201751945853967021451943798733972158131549127951988942649020235869689773811008953897531805108972798018007547282316433051369821280697589725510948788116895917103907941346186253736451894261769946979034611392585202421079783889785665341180866926277637063472288270883538085427746992768453539585918825616531776136661584702176464580137971396143462744208497122392359620865339231318629994924787899773984144594251133440707145894043989325777276243232768628925990822468948832856516064396385237256285554744813529660476796391854552681575837403442667998349859315056463135846948519677222535764194851140833117871990343601456499672226479885904128794662181920128808626647768108356367772318532764805078446724106539034695955062462735985551672751902564273866481212199394920137149948773656516628939293856741459836854487141546791565906245040700070760748825119153023716795543679229719940143056838773017973178760019808548478136678175388593267738595969367552487116664563656015402769376351060438156959118284220407518991055569115922215062536443849157122729916750104155616518747355526306939145348440039281820653753086929275586728791765060831356550365391898319271233046085175814725343673203758075123223270196703162245761891700696697080684336576036390583328515117596110932630060626587069853976424845863896271055489817686686616929644359427775921470484444894472345215944958911378927275946391818736595382884619247237274622234263669157843623266365277636376197474664276126942007913365160356255888333379038643773383921184481411112354806143581995279236395835768663723218069652002939054065482639142953195092930217554831112982694830932678901970010767009775733500031190231994474240905402690101434130055366886108190691943772573763996435194183615364625908153211712891034286777840229789986369364204098982390089513249611300637489925572405419252270247546230692671089251372579267158807291157250207151174713551793089115164396150573107424904745854466501454521258047347506348119339822022966676714105775109279321115894115044167475912880638823509452245446362493229659321723901190367022721470778592596827973818441595446356375588455747495001733340333149943072004316680155790284289192724494586395655966348736453671870591870619092296641066894449939216232280150341719169975714897227307866432395389236502158383231020641922571280394177732610346960889865870767169474748706711707977835902661484713780339557977205976960782278651229531309341514531907564297356368392849510685369738046737650119014316279915994228936803186098312646792966708350536291728619733043788383900935390776847816838834557568798898069566795315520545210132937585115168777441124209980305957653724787337755348716430373831347402521065003445382612681874072320559714253488741619903953706766128212088094395713527886218205944660034836197456887547482901649414776499518402230568519366502629469515291144146935638334240594539868799675051877185228367210869812501303700679650442971340913812426908599856736145159506572165602463537340502886643398121522194570868358531455993573628423657014476192592334237049888482066962057015783258137783259625307038560680533888979096946815132378560640141893115791742284651852863388457732923103186589010949542764429798563647456943672309462355789898403750323515280369407112189001294660936160028096810143751438867347398093119063939725887792622525252675089087329420533927822078442169447155669340421263078185472083188879205977913137336235110063875506340174095378592248419984308002438293078890387720539103709758894938196730034168339160464620771811408988213968311959478948530634036672801456835408090477138325541451965077566036861280801244210504262470524244548492778087350279042931120852256118352184811325698736240132263179635032053558190114780003856233041510328732449684378160558989822356196862019148360453650222972714389668422695858923290464698560631466950822436509293305280476546932012927929209935379450715375929338272562860131402765047865178885171680351510456321348304528182507132672307933690255107016632854698794699418361431765205199965307311639681297453396347950119442800584791452518881516276421883242331666525154252808888273756330923132826975440035469945539628292477549383298308677998425461033556308174770782418869980692454386226608717137518689068889720566633278605491074626991384491593782456917546414908110594327501832717234870249435763133219081907030112062756443165165470815607486713609279888903319386070121652743894406995602863677734667036965829863948782770365831218431760805769693462336460037787609138745349603629420993483555447204705029838547750739342556201079051254473253490802611079922692587145822905370147683386624167573823901969051420286180269614641258106711747820303402426294747162824987718312673685144371252110733106930998258310120703208479005789014695610083825901535043450037787659340226332681482503858223292835269218065594661009374263927381877852857322100822498172577551387311715613783292184956265255214331772839522230520878374296486665311299458898661370030879312226559048162726685645667968146856756052050330519961057636910321511945013509194872415571381003614327475999944086984488074503207633791389283094723621569365385090558229937903991027496282295119247345813599915986575072870062632155961973683419399075662197287985194198680858012995174825879443350918505317439622463849772471335998231953977791031913979408865407938679627843501023202272054312373119123352653152321476749180211387531800543094377061234436716749773106048804059670569749017777260808699338969078485750986808733500150432611289680529151669433525724318967921076620564566435363266790722809461687596842716642956436031483641526171571070379094536569462635724206399396920139392889990560114237178488472124793274567791582953145920323171911392945444485580451981731377413888485895119902431743687333531114633507880958675547228372153260738149627006211303441608747532279522953080361071543717210245474438840569084727858132848285431710959326562036614647386591109719857427300818158084563342275951645586593913569924797119772151852896483586661660954788580543262675496906274672720818895445547796271072111292414940025977659341196913276878550677004905932961252274026172824424858095569935177614488316959843562926103310072375817988286222436977319937770274591944200168994774096511575675328089468311182328381718390984603652016955288281584264099908735954938189755915200789579777260462301869400839913989745838011609558170072816944832621242108217723136249583919800029701429319041948859881887358529259895734659124773792100471197911587664294394279832998145113092080362448160614326330634644165705520928325138030691528861614442389182715457143099242619282874740082640592686131430727431616423243833246179435062151263303728764528915272540642108969298621983441069795454569202647265509579246430046478855616623816982440124236591854662494398292369405496774393278512534295378962734325771422896438231079914501990600542556970010326590828206997179103000280992278046581262225244703417878828833910221961437175997936120914456998340614458172709367894428577273156054685201878578912052801860497812768847803960450129847502877041622627003030683144421672133754512142736307195959224032221961093923361367624997360670418432366898382778856643548505992950308479440639953552847929979146717326489314415226670402936745951710472477053968254614789235364700374673955887978528467664632002171068033630731686755141967926698681772665332952652345063650509953462311632344512554273215792989540794190257064810236204911896831060053107426004534943562384265396868338836735002030050837798990689035041652060824449216338504731039728889383124552656175512196606525625290573660105610538014170131614959778981270783147306194727282667480415081537065028125446869708443492235623123901794580180886712187582028267400405052265120743335091685983063802249056109583567219506138336665993126859097327710086606966429194883821981943142963926107932350935645797142760967610632168375259582971049498651331821871037490666442769294128797374471535313907425483181502442672575475585452910163518868803134497947655665609123995830051461600469594137653555483089750427238061537327253079225220969607507398641514207631059788957767117427812520433960087264614425898518531141515400116506620934427026902493539323544121628790286975653857082137933805283011022308425819655879552856026162082583430987410613777003065095991748290769916305660009355766179084984331684651535334058859578718914487529366116718848068681867918118832561338008541518596840703151076233575684609357548489148204437349956107389726933069475018131486404031058917089119509666665861273459404715383481615495111794124063074935529719277723417779399867944604058390153995171316543572300059646023446800645996159780367439406852052291546831534101058176951722298112635515112947061514741930508075855307140189503765782696335076690263611843249518417150309351972188750010596920645035557651235897239766720575557949287385685450434912788064568689039511334657919831177479266716428361006668593114699127335771876339101896843712587395900759940243315138397126457471362592693062800283364660550174112710141192460240433689172168036936556893356954992988534619464567157829230104310032585251737157688545734382396684980110286380438367325706089371376565043213681245884471382480144106834957020752830768901564013925639417342969416612124742401403412149667084092539855226837539626514307816655658610479887062760099113809301280886256665773198289717947122707608793013945923265585642881445539922396871225754084641018504879101079194437263609523407943007399710713008673764838755766760280181158709679302561074871499533854569027809828424758461523175900168676224856889593419681275961067852834534102704512048059638483870746072043422067596534225526109794492879885686661702475187827631954881722895913481759209277732989616743427881427156832358152880909613376880368315551274361458676801433452580787772648242946473096613736856923021712380957889859006517757679866546943049585089419680539881442529218436886545928083979915256755892150641919111036779758187831487312817842731774035519135034229911919320857994451622142763597353015312624993929844174287015724162771844275294457319600235869372003953766489157924568248815407129996053375029428876389437197403732913502579171215113399526033500375379799622706215345788753473546652323693221698400280275351253058782515141484132854804820104596730248980917634894473586088956705400902768031525594143443462263315120978949216599045008403114219779301274952557407162100598164882943162134665657825070073124861592039083849822387283993570869032975015636273894150261054010063379365452196830925257703316549450434453123444899663405164275492620155678289982425776504786674531754817309278134341621961506025067039724850223114514513240498105816883723402818146532289770899064043661717989532291888356250793336806772441060584973301012153498863596835896566409657926317793562551677784492060812774712659763654153139433690331274853365663505209676478208713519848555075154999861045579710618903630110201818485845139247035291206866611422071702325723878571607634454468646062923952418884063418093910546659339093608136277859628478966099392923967399523133499577318206895820432178465643334040406542408210432327332920440442810372754150302018035819256078617139072505152511017085573028024426191272526986449954921160188376378232197390494677047787328234808686397361057956205901717805181732483146263744259741079984644268319945305409535226504787630240855846474543237411489011660990743897784335145352353870801237813263194068226144130436978127709625155293530569752344956292959254003768140463556688626209117855378275937165785203745275080587303960057368280550035292704629510309173028776358231789685303997070823229104638185431156245533983114838325109766864728104856579188874453257887169920384179789540649222387726933908588350933000398787528127192860955633106340040993768137810693169940312042153322708645626004960873014830347271380653329709198745470053402175773963164240733951185608582284973653253653801042467359505835422813455296084199485275059428172169582961540130970823551352065313775659262625996522168325914343105790329456023697691408473031332189828234807024086638742477468142691029116290158290410147616551245800238844674886121282374425652695379740788091939953177250317175494322953660802700955927113465434998510035974096535037670875017499844430627904754631627326866191912504827441405872664145329997345192653388480342234092273395802257038741400142245366573808620697320435002235798641045647002544626673219683143015653763798247790859021732954857755140066370703267116240265627819793333732751204330505252940233381354440621742452309400438196481152959048573950122316652376070677874774722072876301733768676752506320389776932736382776839829371778183610107370737359146255537618423709682932429933868529369614354325256531295510744519592937845350711655083574695003405174667264299073512594937783506404521094329092845872517774653164132317933481036480636299916100514738524125353683684166270775116869581937729451467876997898651389208195397822678477775414212393349900484696571757257218598309338506171559985259515683519199120345932759938335907309044998709391774269517548398936390506455130453221828593430594335349525808954036137363741167329169397689940999645331382593614815941114967381558197489399987764755535557396351508515903951527654038041337309024775138736743700646094184860785205321553474786406092008154534129665553587450221643091231486086815772824139124199747439527167934223845926779687436759657606281813469760280380175184199016457142381065481006716384273248211734133842530444575820010897270697464894436949120879073878782389121870567672121163572781368967982316539810700419951384080183107027890220381647393101486360150498264954465551930000235110845225592059455087747628796195464694677997334937286013313206456670895546619404236802739754683258197838349894098011755084054944094203255424335371841715291282338785805807325072914125094166440279461249329971462494030506701108217253481663887547615269641156607169918549571079443077109612193233854084660336453853405147777336538861172898188073968315864884684527587282781053972605831253803390337818737593262661740888530468557629011675955752004627304153733057364835850364176177624677333647327577873543616840339220094096740457269835871991779381398946463480539314018171075652856699481810969555482748361202467107454558276107435470909413905881955949982211184629950840218142788669319909338322109171804450144266740253232816198042204719978603810892613836316699391378149051031927599544811935877087366998382068831130535511153456276375841684070014335043519734758403589219025001080012266293287716660507898560424711227827779097847931217561452688944305693538923293410832654328782829071184304467080469827630944753205837947132407364732143038665591946361325508599903337729619791729866031184308396294975146778116890040891017737923942789724122179550010663135700852367205651003935025432483348938542337175824573990905363373523737383893329351778091961676246759951488789934807932318765236106307039828137387946768541611839567594542004686137998191075554613518822446168067909681259653451567882846758450917905859632907048281215217413092704414539606313589265044122984593639680044633985423761798465302723999302295740627782229074405560296116496362877075843944405991576194888443480733290817544920904242630121973753015286187554877115317120207825893982229912401767175174104624110239256038377193488075416077465732365063369988309348626594543874655164000267198404208741352097997064982044766619574097048294311829698923870419094825617067797089049111388466061011857720624769910455357599673596166399412362220859086853707367133866918946196993799545607082957123526483115340254764679513116436233522989414266101396223379464227378707167357632796687713872200448725655203143643978237561687698962580325097502241958532884792583427669619372274554820776094976428403167814286398420250909978230575371286813523537987704296102531226899091712672073304276305060646594559338681968820902587071127016626879522446039087152012520178655111327846050309309775010558266427087884389286251631238795473115565936013072946981504705183905293384321527840113086770041999735690294252623489637525430426378686128165289384519643699816043819583805910341289292973257935015438738394771236690776679205024439377712696101101187536237249053782317650995710416621807478967319854962735490347035120274925571044283936675228263975773160248679221221978119467293516908707658875031721230020676456906797275998572823346357520397979394039605697920159625105532666709654812313184162465749893219092484285619230977252414375486103758797280542766615614563788678930518449545657698815966343618314419906077759971933578020634163266264851557534050334078716603877142687365445922676031334685010804004249425124574125941653217653070291960977181406757337263768831471113149913763145075876667126322202866914172604453794345913294958510045960108639481207862034450075128177937783132053263093779063080463721347025604050744374942203524480473998701385361492699042787235541227832854318377445900088530415287116697279557081259595853265505398577841423315688918950474703157332718522190252481091213137977807816051948527027479095125750215631636327240761274606284603141691927093578634510770296583639398525591547490396681778101811360546996324220997192709082474140639780129655046425344492606209992568264520289860755809717265336371621785971099787990920252480449247171083423929051720352317934312719574610410889277094744730252733920723867257749723485497824581588657326089045036950502930244508435985842955638829470776879698310926275610581437548710813903501120460624454448908691617496234868724339931865591402779710523709453048603414373577592646749624708248279506504321384374811892398143470852442882529521189744627743669550132008819432538277560039108113565791454847720215915766365502691416018477658695573690004553955452666207087436061993850114020762813938881940843613022650417243897882469430061407521118526835687987051365473680872103986364001845182556723962883230091450567928658809330185174432974782841446265124036791187314949111822886473150606767894745147678227924319476942754327769022028539460198619528587887708165263907413866017795627310907289350490426424706447701683495897406094157198854648055164050025621949687483243740370129503311017183076541623534413066927904266331655646160718017054471670929999307571826024846100769221852324370924374941035716208603372141288739063991290732976748776455872686806218491622335532432356863197001967801387009593435859821402067733530955384368919045392175182807940932486149552775220457085483692426564248839128041144824023486563672122963355010572583183600950932406229775562603099633114696587719699545848782788064326270754517057841856306674105905467930978608207802492041782174693157595494974842124585019541269372026677301019668420209714843041121347837744025376648056759114985009347817833987560497001671602709129549322520875910562848082873904703680893788820973607301833590717803608726128183185707669307308859372838874424917528159515996153162394429732924697760154511307462024510075647679337864757697114322382649141863257757925029693560773768926604353465073703089107494025704012334235765137320915515024726885919223557411137648222368960141870250520443617213470605089597136081160094021689110998233857993405717938701665032827283852539967859114095201242743549976363480300644932874570966897283050965634535286738473539557120158775332613104443532875922434819007298719617339608119995705044836082507516266776772587003285896294932458209944545669635545590762905007903230678164696889089917603949972732925038698932808322557757795258659471462482812847254799064211232125820096653324454363268905209327518078596056359120719061213913465232185762499745889468287366909384701916572614539617803386003721486348210347927853425661613984502261041155212650004034011709448959293110454100914691732769383548630509076648406825658270863709019220808405479043408764674759269002254922377951768339617839309613301819555548862639746341625813621627571803235964836586776102749992583313426906774926047732269817743167188173964963004138847798828123926639523402351304706117465934966467028061201989163742284763564438150481809333771838660158760722117544486187637613699804622673922746387679878881864901433885240853779326128415565634802211301513226634340291163338318026992988307496797269824183013368473127518314598942673999860815338569279320101073347199709285323925649997114919338285930107348570008513172693114678197030459658820967509803934875395666177520074430065901041314049438491470533646972664384490926103895297043429170439496937623961024320092767408533239819459361225106623118494944461378651036219165156899267707313707575555240437238848184362509554374499885000171692459226858898311352402253007314495583574542931294637078412489869987292592543578887235779848603025844350450269725426902975547837347555228657416848098314425900794386645911958339991993841554821268264147664866658631544282894287859958561278223088843241490874307253251533520796211132857698444052297419128160289894411072700686310377041146351314021938099608449369945261503714572780962119265873287187367854745605968245035356542595050219015306339375082319209750381104104354828625406562905447481950132510362778497372471868406283195686504112239286122221043952506593223509562285564063478600287792532677701652647435927253230439326984135385969334391329633890483388192765607925714594587893214790824556608127155934565191612156745986219462316358106063326291711525277395476074121301125639592260432670318512210275830394627935236928817912983562344878593952440468895991345225947527543584926270465207433433439016647751833976297455790480377434322362511742521711989012659213071472695848396830119393453946203637483824574624565297088273989955841624406908680167082528418274586657969048148647056150916463264901395082908573635915707937827528333248922416756018310288437584574473233365902500578366447343949995466843451029006848961530100509761583059561776322147982039143337564830970642807880739382832504051971373220499678507889882533136012220830095046897661818653918037086253000412938383612788553538690657984320144252706878923634466520990019715125036282525828043254841022181906806192285730408943466405627130664052214812320726492139176760923050688221168703529939403569990257962183639423535739455079768172970799441191271390430633034164255815192688584131119854043537417734273499388212668662561587011089699053381638640400924102519341215771254688852906339361974253368165954441242757042675665911682136330010492876071424445613131910885450395676289211239511378195360954306557545847287000690935609659396678412282397749853073898734476588506017770129637278465820436118318813106372652920063325825622339843553396357594760152836120718794391734095286127427099774792564824977502097389262522360747677606475802574150594739198216482234518556979643974867444545451336879361112673956351567081786921705221193452637312629994070812642949822694790476749616523568863469268747779806340149721131522097132497474642994064284406121347354174322521929447307784691511971338298895553148281800230823081311013594440116892440491908324832937447262112422032700048215854031788746951751620171004344402019104251377713058892477457334315252558111388069684091473156015842366212628306378797400055766903283672989749917075900167571704202972215085302508226439988121910429672174618443913373161138582655713075041556992540214798781469161237779908160047354421530867007935404263703918217917521542604347971459182664667970345306877005372574770701771715623462634743303880201374641344804133369135341593557658847395174326189741973200206595654587836918395951098126059778361538389694495079893686418382710525598932995675398905001264739607171453719328309159938591824113281324535267497734885438444771374505365477604496179953631126857486246887533953665546648642420751471017272787239730721271052180556158756537442859587807618697579527321038738401794635278070868383359493850087516899164496210930071790514145102250487787130493633189289697896768725736586387868877367859275633393063322355909200230715331185814734370666669575357171973181045183993925822288862034726536891148602674704551403714247658703864476314369216410396086810411606090397844788673866274606579827745291059263307643227116396790501414980740980481585788059639880982464884737446919811020974112852432608860695505828958158785755106914440346828573845407796428866286772165861731941934534602293287221501203305276654171275983497430121443538396171209475421567749794376836403123105984786804723017730338686924096808517021280432436242809394438139969302999019105158767594920542556779398910133631648638882086442104831842213486697396834655457748527951693286118061754371405441062240848828732481004116534891221609593710670415826093214775827860454970433603288492331778955149872135001446202587740044262675487895164294823481001941867964663788032810119783593840236723660477792708930885695730068083985434094528558609649634045773236392873337812844316347723050000395206580334496490271896788990417347968213630220216308646482131679713332909951791292497713821139282909100278904078046278262332623211838091584362939470599379787887643398442741902276332702069056231945502569851558228327380695282914359534115381736718819687375779578350017975816433760298287439457099617659948283119944091253585818997227501734806129132471432024741370288322046057718353900933416977558053735337490076485828251011650214639937558360708288218335973229245340545185852714531513135278863825170541400175789361120731002981146951410570458061215787026510769415466019556494040132369031875782490575983930729152904016301063794565531538250410797810606894570884349312568142928152107642554136653180142322314451187218281954437768261979646712357158518267810417266067144827307660339446697504020044266667770896257378799569173091106153004492075038207635560845651472313073676194050385454460932567669025063632785889498949898797119918366735782557951313657681823180706860448573225477590989311590182147964825236290522772216485404321272089889490526685685055222390586891514220568255587414097624494967617564952693948405539934326115032793753381860287728033147589286202961891719833642410954381653949362622660670897272577943216389175774249679519111733788868500429577020602451031893691972118348542795642731097170344556736477820027700919632721546271889784986521248604508792389146529602696952863468858626231673577990454815910173013104235720771466120485538636516917264162500191993010306523866078649056006255172231309230013820483602102773256259137292452616800854589373842732732807116126742800299955176418709355700835065052635626395776841598039078481701390983956704338752083535160470362575595094726508140195385870485206707747087892494709140384252245630243160079754518052055444127451856874880357825126067272108782599495665972167877509963063430514966666810568586728529637258455000416017705449000234914862141911428572355588244729127395906211029522407615327790346364241038319652400055656281206339502649026850737081108912854796999657361196665491007345787660796775977495828900702410451884821543250079676724051055120228169156223338154379369701134712137206887968521521991743911619855119051837723635149833600628515673233534966285250311306782890165437550480260283925832363301854366156778326425461635161058395431950851714624133739213400935625957075209641957541376447140691861617911530777210915311146838027531272983952460407082145652833047371685680375166998348988145736374863624846933017771296921745243520676278476176782305031899897622734294152281808469916868041380707539968790308406256687266545630617279838282026400239623734060275340296701835179162454949839393490316523889032391586098342371705624458480224979994875117067800164311723124717072938228887579628702130119931017341639233768328096255851150626250028309958612518126682580120001466990091258335276089357263752202721189553752114413816366448294183365946604146505664643465226791787585854230205002016170279574462163289097771526274077221093511396431152688200692058145408810596924012564065498573419009658490024531793435733000816393618244081127540100048019355188762651079219759085192110148187136191412075605736378838099821936700161125489434280010181972427798854116116914079367979158937783057765635286134607745477207471306281749717208047807917301454458085680003452200696989889799628807314727290182066818971066803943738370004895949288162766507409135773749740459579015760279545084667368521729287286848732688369836037912372229771959000778610701903273349774462491507553091054903231157909524011325613795229916531221419183778029961595987751969727367222356792425725602767587875080175588932469534656349765972035500706965754305236978570456138082779459796807421238963892396050033040391339062736531945498384543562297924988303450065378116676706123450017482657621031949480565725536730953747306213725426767650017952798629011292590124336156122475233764251278412701065503154838762655684067335052143024174088535621138575216823045228214071474977126879720806073388323013160241189512128421893000582763001336486668503277557169739015729262304590113597343700955117354540969696305124055746474105587614819355263813074050102380358690822523256800609188571963241386664113585784933191367922324612779073198644996318383928819530726907091722685161340752589295531747990197900593659360947396801281916245427565087030656385130131502218267112287639183697534372340068626150043441741274988288842271110878043134173200135656188747303017277681178141653277056942463020371562321615225048484158888883479111601625656221758063408899334259599895201149994935975256660982273429860796136609146615546045814314801384726350748932218982897673158932073734472195159039324446360470742016210386459193068293547296884518788839446059479365616333911701038902401533590415002962113656105756618509664321317138926402208279149256743356126117921399671973453336266351854330462128610375068991247932756047555004572633941534903248635512493604059723843697944414649342561040725360411302861137039767314119599720534868359171797204497502814431603831334218574099836104350999575508882512633518140926977431695972341736485380691469915934044093726259930062414226277132431718730994373808933562717433708901119345551291738704761124210748746462868044894360559168977776852852755192129882535403173587941408508676624234847516495542712704226665767236687019777341527772819051086707573178964146272256353347643567702472422243527582632734858444906758863833602363816773092747665389922483961755709819339636176557288294830306969044312424010390234540626974676871668607200142411085900280006345493768341506398756299120923474744226268933456427453729675976621270257975628618960783454385743740625609262806975650630377004149140746314713766922776727032894418581217998645810648786171801733391247924142471459605339478281834562910302935626418806803175461557049474769158121228411520563566032376916470928851244726885639087286521835636164370084621565982572228969606704721127211347720215614868976614607618989788029919399528544954011826009754190793343464163200032281906549261183676335270134886391881884501880521798033582377985679967865597968867941284232152621883237760550623336329682197827272616937765743729764494398261593084424770196577664740833315004325879369759179759519356802789530358905119649071693804436553018653848911924797907239361674069621365850066690160046461883077505342204085908601310321517316180522740174993523706721281580845890977414677269880558958653571107903211808405450467762993899315742655213398704799660111233144163698950056989240159507857863382950586976540151526309684275865582150133604212915603160616560258300053001415425572048202022076994161176373555940428003865642761777010194398038567871641221176189284772348486023801315133617186025258166313737971882059614228483129669902565826601550950970629389211116528507404048653933537465289935643137787500429933071589306815577934010126270949640211100732057241671435656230960497827057414519304526303836574256819908930052635043516025547947258885915893448787737576368814373140161776826318987098127748285972930033656378632775523260072716532631183382590637789854141275417737582611655831688360545691167489062688573937534020353841034742613957742816212254770611915942394102743033442118678439674275944155897664955199943688036133081824896127009441690982971432083331523833814473521498084686476579785306439506600560554983757294579515027422278686437308605739526124606736582054239639855408285142261935426715278070394747842690145902072520872676906925925793277197020545592728530269585521120415225064897412386953437901010730795557151874932576826175044020425098663803799673282833314217623288797097100271867930978271241981400217907328142307200722157533810555840982520130800629665987556070680834814027509432586640814147528676604501603940434006513351937530322204317019275836582466857602300728626103597166844757313245158276577640603651394061475305056448405840047102562332963154150121601606755413764634425186531159463868360770263828255651459348552462877687023623217619221890505140107678514867177779208665267948908514008838783528286155999010955784933615990129369520095384164776141834645519527800716257320097230898372496517033237312257178730313943327546949957452904741990230752457108873916654660927807065402692510505548261098345233246334161893979974787305237245428680740337669018910122049113886857725556311290408164568924388527415543422395662410452359028810807830791323789270048769456339485268596262294010520521689840172198422586381924115258083336460323678933901980873719135035790101355707264004135817306169044772574815155749452607547153539715720896745356806999427148891804653996074816295753466585703826470573866218101478761348001462577025196822752600945362618178361099211992541880440509800174298805247748722991768216927609924518765336671833994416441362689037862351127982455273402491485566109839791958506201212794146603075774231806941117855957509699639574035100549581772517064575169315169599430183377721894769254163179194898541442825287514815151595459467834641628038564169347508182447803439559703957537669527786572920987823587379621280324780230791087792075139035422936700713911945497130759846886601137156945095181187537164152717419556770963270223838648934091279894989459973252482008665562765568446329157837331213799555815386853660378767915813634637680647341284197767846820584592925232537177242607478939610459939927335247864853018579123857850495393200747931099475107401103781695793709117348860381889126513656501543058830087206495174083746179254818136250375661363524316694447001730285369176055447238140835631601591474876968735720010645360172430109844928060837103748862261718856666517414861077864189385204375178273919272670094455740163259562936735338920849119413651647349185788337527472919587381745743661480926655732561790412408740564984297126527421797545287792387218020173937065763545446643139796025904428061111819281153374225044246804368076879709326423943970392273630135487176304994460861705424827893650063327124842570847874088902841390585771235520806284205969684407656875707125010006914011232399909094081029272408992459399616309111911886670916212286126918923165460147552146934765711891498217448023936994863937864257701275539312370613211201480703149242928719881597870990011697317920922581767594072618915558565802451525649316920938673642676561979895286786453462857276791863050160480043403921325771212076769740975262134345284073668811004457678807593122822303555314258553557668386950373134014628903810541701094076006117927110333731728869920646584071533706426809590050757482547186474910769865400194756758700873206935443640308272096985625775909291929614836501247384457184876609999356852609535776133435752584481369764797604821760867871883720677477491594757210058003364133318040762813736493595999912914012522463533041810325029219546484913118908923363735818008821932697515349493741236972468195779886484239925691902648610538308664088875042774706031576733384210528390572906296283928636396182355673637238501796425970856670314167205122222270431164310612720941640039854525822329965687719681223702508558293863114521900674050436615610727370322742563799321765058767126472078144791632180287107173584782148441352637222025847946687447707399342580561927985167698373997652187402535909974281308199335390839703855834733097540098435597282592480726009845122617031036172643472137077827839973164710725451517044960156329682109961282321766727986129142991635814472856761468484431602111040627377400266442945963934083788453146976206783402866754762805997783000828786254706699578982371850409231048005197595262829694150003097497819245549591005773497153198443812203605526528659668727716459750185205979251670122145840462023465995245812733903842939962724599986342614467472543899326298622247812621631334926708306460901039298174308959822065223950790928915516808919991234374495583132003405562960419590813075074637731210864998111025192750093487404800599381888884657453044803201353241860874576750282296259414285094589866519163385454027386567195903317346360331370804673250147422515423184763531065485649492919066761805112129599406797974173751203537561395181633126603367955863424036316876694524995785254114013462243981839694145107509128276890061526620415271634882175702546697449462882263631260815223623177071945030306160942387346223359449552154900585427504870537200727000789743944451648826060806061820995994936393226341631536548912438043619072356021350748906734044779435442159264939386482120309064866648059457790097401062832778502766213485162947251786776548955132096704843430335323024078485284554572975454082913059233633496385749718294911471109579947159159884285512600004440090650592230891847787494217102397625708110378926880760942196903535289426650669284274364912358087640267581363408709906236635883570029918637075317336229734561347750288431824752998539260135204283245920155219777062234347889731318003605117257091501031008682489563247172697176488126437016339925161602020402827117278133303097770208664849900246810387925068127746975512365629921842269625363765579101807939563970675245219663557840140175819547748078380756312638941875384837870353308579567959943195747526132958881625876737333934425572042266807592158490956360768139503074537859736657480481753831764398562148371874833646932864399278116166846669752609010035125704461249564675556827024089804914946229511932643221850425316896578368337268928074967818430449484480044594150209241715550972350489256706150502737074522188041695958422470034708958268890827114035174956229022910892689745474409536254894690274789813578112458124310633189794207683251002610214035187612845606681471707210697548248629710529799808414679617150583013665137154732600857427543427286826653312587089926625072201989850041176065343958745139465633972052237111827559190889231584733656580302684915189873547570149633395032870842121124052870815953089104058501998841702082569424730295778732714593686639735864792447257881640203305387583339789546296318666262037104272052830988518544091686215901285603646289842830184450262620152791488207246514174132958149955115146800888851726300995854373337349335469959037667870753079739326691365634497430354493669283246465394807308544926638172650981302979100074016509753649681697971487713942658698831383376674998126445306655341671333630981484158518224419490658527435188835242229397791890620374602923014726931819565160116456712463889166733437161224916783971352200390040675664511318176727866983229676465705904725118793828063427859889039448021115178954725850998766735620325797651824364101593708829271103474331182324522148993790649725978628502772612467318904487293582713758134924069831052364285478444636141127601562336515709736090003550043216215539390422441473215555693895236305670703984303999516842568157481067073572311606440154014189047069463410676900773523526086025309932690951443865714679876073365643105001180127247197420944613042911565991997801795375691664806351531666640331143478665953238337395374922284885489980936308776404589468573938053172749107746009652467497177874347401593240739506924163835777114061217208299940064222575217456990926152876370740876294832880250604515962201524990313642341140017954003820523315573676219094371401410771968956395262874066257350391147214100440714980124528223430424986178355478215154906254825820876406858188286164795597440024634714359533253721530558013778020599778710137893299279949781591046006243931743946532150717872412868302718053562699651385082026007249138939844982768734429187515632596519530790332306692809186764425474611026527272515623774988731543559620027099989535604927826055275955734861676059021365233892520311685952133791109706551547641643980666900092504744484765033208373337294446053674720407734241768349527094771930220203976342676256719613874651654479361303479655001594038316289580157424171691445277318929753027134833628164778437843954985978671873308068484109404358985136084776381156533574533471507722048783908181064711946087917791402833172161253814687467030350357984409401887161834471828910124594613436954096672387372993823764404394820510209349585656113355568094070056784372840747383446258408064407139072278589622042605177933709901718802830059396076505150537049352701877084661353530866144399777525518514104432331457746837566765347813874895478998691539187170968858931129128797840141735246813351180502257055856096296121808255288338031589180875032006983588422528377735129967863937666880646708903297879628320044229687985164662901320869969705085821616053828465950168365765952024074754664806261225868887906530360889940463014558859744786729129448842903577871797106833893574398432105283445396590247393756989205226042641946940830241544117648269540681091674247280322799649697631724082387451989280538751542170899342397339415019231084643351887182056702142123530624652685909095731165648868892429895750140461625810174413186362590676708874367782964939253588093966270427304857873312488543011485774690654170591954176865270245897673766953842894607277053021550221142947807878410553418428585384560029403061832790184337451448306663836776793246914030809178232191099898476047659873441574486735309757810092346998887110533444200532822206960477118077939160106827345828299598835554641297508286443698840447060729600210094231236100240948805128853367480805738880826054774243929751419403627199711168892037582552529140320302918478548667358553558594387217178079827348916617044486015503901528359640235644883784846106824154762980424737148671675872483777337118998546342581267971551971331887680399592750100774111424462765899974366037759332321604167111235013554129232455574199086960409589344592696102025013248998248872014617540755759716899942070458669530616716940551205008766616159847504265920374798434958195808188254812671161141453442540952455627478727098635876094457763586774701255361548224508775820280565176094814388156024748374001232596150543258770456256165750830777734995761477145336301413283607044665995108692893118910012157368897007517981580534354498506668902668240733346309570942208749077248952498982232584124775896121328495933029342333149572042467545146190139013374423463729184261924282836536169165055686442304251910003507740484577831448630213610045008306187441890422772873736027478399313056204029079272957979390462606172486881655027189539508030635068337720746488588539125040368944353797568190111173563913457016581697971785038145853218528589345409178563538754347857929175683581267366782270259511636885549562245820989391511056700343586631137733611074991017582698965152514193695230180793995930164370369066703094974781211840643759193840372582321458053500598679790392292243372958853731295923632983748741515952366466292167477096817229970049985522507832340155222459862026661249392202877449766649664846835258218041622970906261286602175294027599915132883343085500389838114396612769878744906410704644459121312780776477563851982409855746873135296243232110437378720522603778601897040329583918260554474700240340954025278290703651422237778974411605306052736200191534722509191486387898274622040546329059008849548033083062005596640431654753677151327994760569192299582961924532037045836872574610480346801421182523880228136179891111647620734710085458556236407424314292578175353926635769729872941066181236167039999562027194651268800294330590352263495571204127630411235744007640103875981369092705248510715953671083985970706232675258124398211299059358580385032916262159738334799725879959583829319355311429083437308159979436621034069089096912216575931101846478277115087337504486200536444768885464942665609540843207977434131867417420463265379549602813146591078110411675906909630344019673242046190906343751318946825984174516668246062576909687934280998855992537883886705680494262850688257778662315390369137565799350530714010528774117611765523099701721065396310152856947424653320881187786790401137257004742415795113998603705745011979354880058076047571062632613492539402244870478563565584500839011013280496483428883974781548470250287376261886531419999959982810240278352172376225007894010200752965225526832098316447304579162755813104484346475154455659570963283764108145476738640342510341158582874949145285561922232377883288386765107866481865190947320435962030458319626518817422751033589806950922200046247058254565285722507964454582570394838920099449648669769369394665912940082916673453689979306264177218814451878755990791140198970920984506099887735748245901060892913703855119603099055595512016256766884585948546784255752407082406041241314753220442515154654882723647702339554854311550779604925185989072940785790765389347186361451564185115889456943299794056014649696355002108383141356386457569090103711513872038383838134778787090072865179182049428087366878815720820064164287890743336823466445451233983059184753818673106021381960837204798098368113849136984851797185536083938831091197602559662738258412133461480038384643952531122291888028306472520318887264928055321799225648738816708402675333012162391701164232993715836652541450833807233309091248143543080822768130538718729170511580619605673728060211749051658670491510496808489242538651900328168697605487402889890121431073114719878546641850151631684873114711064256954905673452619708825853192277896489188128583986370428253104082616558136553867950933692361165550691490396195213659953723189581756981480953057317879604421650644761384079173475991264741064624060726164204757383038497688576578427808221013042533829619794183414253277960364929422922049925697839647342638775685661866318266552226791340921394161124779898172285176074389256386534968794497928028572088662608880945907809330245846009357328817278125068238472595985613353497234543392524175890376699528674060163269238785501765114163223785977076696892069054797249214663949023512691485135747188192419930633662405456935413621705341664981912025820755662211634765377692033073381350086903616187096227086383568474316978892581173497650301582934149559400934292140789674916264892959900727615369234722672001175640727495689930908483524305266550095118590963018139562408588294342792956789357274473407678166728624058990012691819272925163673134438026642953416705307944030784316579997672967229719194019300427307361301681896574389876626105664421826803941893738602841888471227403028725886299330338758803345300407952069285000565064944536788545381626196872166135487237388903106397790776758224760133017995956794519065136333478567504579227107808368893391323771512141166150407255302385411646319998640951493922093247899120083986399407347955087554414288256044449841300225667567002643293473574809373469093469834548556662162931960989292731615466999029030036702951278237346187999856315778348151990439335681240887849294865792134036864424626975973406218552887773957218041311793739732759373417386280920395965896877704583775634727560126534169924045572257311586282312009186297267379882734540914115199773488971463550730541495546959292356928252487447395479422493509712131084978995865456469848583240194999895556459929016004249905748908161568104209282691803548515953837303764565771048610407818232752563852170726270732597487762205400582925521461083674534821634989821703627257791222369410041701505750041719203038150507702493156604642817397566965612221939420955740040920773589900071119359255901710860098669773860627824008353641219645299176052181268493782501326919959589687584352674054801953208421793093559309891901903817649145598972922721635285953095967283159305762810261949033032271441138099212131610466440638825361645207085719342109398107168902573722055772770317509229066743836888073899326593827360886985727213332377646969445872485578688686161422492236815676404382837526483251873141525384052780923320393911877761943338461444533094607238678912656551656086716990739745256252502650855903852218880136573625002821734040935260793452457775475886613387402203479768477265510142609710699279920771981254470924869552009026333043854806114296087110597380234634989716171138277126918195742525233952017303617784762385916718073495062260041621083103751493639840183109223990808787247416205958210184593983151714024138970343794652042182329944128482987808421904149951951334134484653341633607592652852373687214265938355077578276319790765411586255915846796638598821725098111633375964315072337056774051398303300114184431637255061244767525413311272652764023110141118690166081682612261464098261771351898230304262801869809421179015813419651293838227577748107994759244566361883943538058641092544849847884545180883741386734825244110463967769160979377719194275901204540629341909709909680526479123299369780972643381122583454967562996231629925059366637332877878125694060839693665898028019651446005680662444264508085231418804240263043228242941489272096293113436713966015112412898030212108505978929056407881465659095098736581605785565223787338877139392760554786721016356254723695181924533667260952426888344360736039894850023992586244079623257726093232163106531994209441880162153614516192174348059451178535560804041641765787479814332406819703307140834150510903790746501551498567794645788716506071736256125888235348101025524892761927870927003154311756594952228965915612583412004895727424570971947482604563279237393047792771185280788466731922908600547676689046472421621423313966835599370305872480765865626832840992352769628896329425683395846447201050979493838146560562288147697922852125992939765251475754374276363290636905151009242292741266415794801789576016060337796562052705989106319913510852540839760111282512352211453020360416407887868419168844968245549365398515823059322546088170506765192309630590684641943270862662878774584576358457528891028201291557852026871401309047300681860529578796926612354024523271390837129754018153705793719470268895822719849533940756500119179155485884411302710099370240000129242024982946520990601255861966448350575185978483800926974598459424894965156716709616603754322767891983963165580709189478416225089556615312104458542256812540332270334294360674805230856082401241136397920525204967396305086590157397992917340518516135759038733162632754758967999226773955217224298803195048918763745390624878618117749307030252425715629223982102956666049946412134719000114752545232554757667503522998959976202506430698221219975894666830400208411188784383509037244257886616262165220469188826505222984871600070251082883357729341150508877155806803650979921508587839115723217626235578096473493127664784146525497123273002623741644933949978004170570140289127542249922501997993287429629516251516822053116777757898475371322158721042811635363543589174513318826331312179671721235870890525082563460094873924020417721935031152973726278195148782640542502591963742048091719489113326122831892191021511935176406320509761339767607240507706106203147513240241792893911671458110546661955534431360867831836914607332923911242333336740977936350595642666121047207112453511351199046155600914306174352553744542635790651997507191104926339860652348655866440285710307619037980951218977845724445994255598231397076481817641527653387070891373144774337789423119527783502714817077437302422669039799386675368576360525308001571721372230546233366994143331362878181229220259224222412707522285150324374511614466097226551906930509583247529184607308947645805003184694610827871977417254940468813546069843112016759128008295578838578395656250932303412010973776607534036246953290706330588662894339875000272425810174032497075656725341294779947199454371464175177440289542023515148817811429132483656656182051809541787966051902060389126923943798344574329752215848843571702349464478413742715663875402773176485590016515542569139898805076936086808420306468779948971986808642023824902527394097920392687749573264024045680130784248247381562956320995223070774565629024560952387563408715302535600458115650354402263415071561062530723566739267074064743754547596315162224715018094674183472823808820195539563058823092879729647051192602981114432700082813330307513148886058114272183750977085287425034538701734197269392815626755138042673392231507673112488200546033070238964019210793802523281782700188684538646989530115588117752795087744698483226964505128095054313760414587230353119786650118396476361809747111874635382451534519702691762335372251933273141120508354776861592684669920761262843521283659526866037904861120374779389084324116250872923563966113588755883470685822916332972208828902702962457779355910673640077879928075105869169774463619951935866148287241463488359677340658346478933138534971504717348383188544631736968565104165792673739855899443895082241263271228769819749725979954443108926015482283288081395185926250046058998999753608183810032891501293790620472611671929930631135319002904709175936091577490233132896630334992354582695525862168360498782155377552971854268546315628886017320202963062240035435537270755784663377331379211666041994106979156254670664648836681391255009584359685394495935466932412809840230763964997908683591902603437745606286952492659551636351729432293564830663209449490758506446715719918541790713936446103317818419556640108280339426103898098723252265357178382113677300593691176882995238481274216784806683347729630763342901199518201793586825439338018200699010182958546100299007349027447796105573942211573404293834933313280496076037624517116181111601047779399640063517757588829371637723424792511729942495920682693884805589184495036798126385706725324183573566169804548564762119354958955384449900461893227997774021117355380429664069676372425322428982924201150956627335241616005578042587314734750542676311312763148888385102436881996069607890862330220403401760733411605739991599916332720183232161447747733782549763907337274236358502201997921689716097509814276873190353911976110539396884909479715508940173743919686381372003204187220084518336153993932497729659804493002243594660674012587242389168493392758989308172821554127151366196415104357714970432522797718851730652190796626921153418026094758570067922861032575446648635476338408252636947546139090894043489057706530967792893758692285924545815577653687339485719227715603047014753775314388093173409584251136641702213478273274632221018707234445206268750514418130495592832578810764315901722399337065928926427170263386838818395400117936998037819390691025181436983948826365530682189990626046254688262475739606885022765072723709579203190246528859428735682995710036743863450892177019075502424143444905305963872331854996985241442540261066970865227846257693826927965567573474587195512614013422533698872519799404259632049276554096239434060935230106720117443812032073469155067962363285314215238720526728060684235758977427847641056687465240178745334826601559808090395466917803206873071489701029888452907945470933603230159946062162093813519351651134053974656668983497968137881719211371230463284559930229494173405695700744174314405020554014049873666583555131344218214973252013034196224972515226475769754807332421550766371247626136583112380154631724178463730956529445533659837046272679971701095385813859128951162765936226061218081930229540782046195365088505121161739180366440593959122816706470499946127998197279381517927911437550677605219416393900731282465463366558385058582053831110584135516572253108981932470129987125920196947071922284068452482704726704796960311676777537133086693025955103140691872396905416465822516773928185455276405432702807724792904381569782752131558591839576309463573380646495478238987879444738771209881154909136002910117544590719879117308288467701805004200979530472849710955223698973958681526179404524980680719682163382714620250518421200475786449431926726510916385021297179673489850870692199583162308048516539030307583411082111525512271619116368991978260287659496151208659154596579650454230051678410382498186109311793188353072909592820787100377919550356884341150106306585371274506497822439650913591588347177430585781620584172963374857241139358741891090711598944711909802836906664660570261138617449828266193022651089583384158201423320589867984796320125133938152320282645625846222582673583594261099111932254211919172663280443855667624739997035690840099149120619350949613505968661580244480126196143610421215094092197478292370534286032647316170531962891076413364699632187900109278959127238985000372300775740114256249687454276989836290126648948879909313397760160891275810226742633549717425934665203030883160368463524034032427714822789914308050158856215875686868591707689188646859335505863480382211262104320085572159694819073803028814789927504256350292103419450210922270045436762047074106910236834528031099116605521242623051320818514681790644680284076124194624183918504225959235991279921814991448385522874776422319664620083597926377878768267037940074612504622083715184223968671604260848855767297033919279523053161485869695770653062054128088361590124257113634208847659412710067321187957882877352160623225992899710826226909399101769796257795756498996230932669566314806091262122093386989843832849883289895652830058829399134545533938995102140254954420316076614278148234906777977852688691864375188164666324870564229328754528677118086280211354888755252499103927958012408432882068558808267190394054030983012071836762438404397293979766794783518095695884396257251363408204481496266228500231718952563218811839070136430624306344736248934481689543105450164484494160124581243856325699161208922074778106895700253451565552559006760999705670093072541330083980219397266526850444846738937587210156217119394005339021469616805932420176973055096605049477181644326953871763772870828435817151467093263382996093741929099023450897844878660993473767088889595896589514709454233684297770409296623914443373696037621035474604379795393017343568301733901318184642517884285143711957913709891374550428011031295406196770634461279869798467271611829411157159732866326835174844098979669277752477560293576707190391740259422410921733832988040994849051037688876068382557075120569679169608666423942346093224929539161059189551150918554995415237733992952981426622996615490908776267757742634426747438117863946156365696752499884940603252920789121411974100338837313823210896322609751171705457219271231322177477094855274254972901516971694308768651520214814536231264524858557263814303409315195589192330038268660841178395082250098537657750077480808268951377963249160310591980697473587187024111465073995873478730895632201730358960144942861110828148068611760725947606545258949094286802071890973842147041152095963898828211881575528998325899088203749909045584198669770215532539737310599889026391754753706387062704174502626207650944971071589721767850805645092903183464197820521799603307300415118513355575680729493100978717400235295676883926987242986027734170785916932928805889753088809696527283084603071957753020077152240831650624572631688997197453376615818413501721463094643557876723436514471401849252997875914426572229753840094104834218051450230763816192684076661391955961685776863535511244740382721372040783733177802741627657577826473620688942473804518854785200138950962714157206283370850013498816986546240435342459556729919105954774950553260730231480585856605787866947946370714456952918244130108621614693020143298547350617340261330011997104429246129136969553146499745966008581723727236472870733875757866860419518264491768535865745286805887539955935624159026229537435581002934323459851598396902304352846028337038437491791557839299148329610464944300655418727985036835959341191995001607622885017819999871428660651482645976818617654381524734220306329262548274810087528293384440703132445940648678158033037251736047287249561498216657024411878178662814688191554217631207843937966231325147806942204216861446654732464580294453479129047829462808335949563623438547280718331619703290747040441937783348284938977664415637136865122379331607079950475698189917808273484188575492167638178393210910438393121938419016409858110918543428398659254720838907655748017247487363509306040947573526028914496266909918681510286771186596495289087382222553669937976938390394715278028720342448854569730763665388006395368170520899815097265000177367411554966177695802560099677064805106003830876437582022495511483081206322500527067248815694108562808089197104305092131212834785899716203816754955118955021731927590836429076635067453569605916474956485327624527873719868214608116736997235278016646956104444801532649400028946141709583594925178548517696875392759596603525043009084117967936049156155308963867099487007875546953904547097246550442876403078496711196406268614941985825252610855614350042285180618597898979130034794534567788666412492625081742554102536026735057286880793985639271451989223266096076266695501806961547727571524859617150832638822752399989613518454479890005289002185288310151397083037108117775002671133065068980094791530639699070302991793817826600283602351663332218689601508414537816310657996993087251009094131191718004249164820853342436463688871791362062507974682669118957556702574100031706125683245312816104921603407033467468686921740083351169915978835949694720667173913685649563731679955473863524413390931390321976262254820596859251108070830891851625088169257908323040636308133476879829337183491417428274436539595908688090442073646212900877013563145440089188989379102359583228231909968137657632371904485501479404615971986412675151487305289441608555844384080394636351259206857612027079325730821474871195587710546686153107804042139436779685143034011596071525804383554194093414045948285496730376127270076846772689798641953983343974064641309552985708736135186996781839321192835124894848714928735037136397560570831037198398664294533539557891326838086844999123199372075673815406334957688259608128769276293248320121800415001421670611410689963086178977161593500883704408331084098655575979977599139234228075921779494117335142300491013221316141009877040633104229466358339725422527755563562496271866364528099866238159751845129628554357231778827715453370567263778348977192377819185242613230436306528305534924281854285894826299857821315466094319506820999393011230538693804423569600272333639639209209140421632446828138899482191114764394517495169755276276812424076630446952417282668086760143773353403751730095885425164714580389795748654024965679662186471105210259741051080083722279239700018040697979317405826748206612279102141538566786787935931855695199037512723807408461762616762079066137628658563706533076435577346762747321638359076047201798746191834152341203703228216164208355554898363539803655281186713321482432857874148341294973428470468702632664958066226391382420980740029193495172707331861076935227927125608707324433848677342082265329324363192353173514673709482953174856770022018014327063918845349773671652964049613932981785462285573422548529077223077690459649669850479544027504375403414724193552029889251680059781599465471263405493945509332760061437168966877764969177426848726890582787852650670632623786991174363918695590072867604499643626967377859880802431975093923543018563744351369159730434058647929045940878698452671694126163066359388953077431128204927172847139541466339554771181734507884630049645379970540387481874158613670203365443269449339327528154523528634534082076624046717206456819775877430581042935767869661023019912138213578054482610031718103148844547232722245982659040956193496662130824832561548502699265887208403407034692505124097841434699244302457904087264071120458821504682453409526451703793096540966278576399175918226735457213771366595593580654921895803802811761380077129749554348175470348922925970791394869435474107198797285798127391936820016161919905161267558549776879677748915249899264812319659519054787843397076719725653896231619584478068456295303306436486828820687476972790155662201514139314564615589823203272554908211793900903237098236308183450517800281470165447839345091068882855692023056589186250319540596257841457795766667788456353452883581113156291214091902349241679894709824887791719208878052807995278055199171397233395986931107815279568018045042450408646889049561378671843233180433771348550850994892971668087012505019842638579206231877007561907252146700113573186788896958352975898315542109785724265814854377380482921317731901548863844079466350580124934917726117675658068281167060798357238493439799704310512564003197479360552524546816056382259648857359214660997027709862367606944921063898514714114400223336511501140801656440541443323551225022062443618345923243726074570989757205268866477040210477355124003426102464757439823847011607870254792113252754575981631493187671556526971562995068453129813196222576403456112826779595277987106896332157509388026202487518262426665325381334273559037824483256454062376761735818786947289800209014311036233785157930136746400853137796151179987219982912580838757562344168596809337209243916934663276386119525022154511706886435353180845430595063928510028339851321930241684204542400498611427753772873056091277068307706871604971475163067793552402553946491658954733225209958384035106674133920133866907881981993448347250242883737404641711484798973705259868639460603830214609441497143144188113941665124374581923299304084463546215390159991891733435002822465700290317547885162668998795760527249053827589576302391547948233366866408049822655404856896044214398353203364790515747762333635331426434734654441456097733508846479664739984437174276766518977149993722974393483152186469585945674846237567570759044415422883482053538129686308057322509119579637205756162184899975141294909080413158828077414553401275530689255359857702964177026576815011359611101478509600806664195183864662161083783140536317587110264439617360126447293603795554060787606397975312696468799373061612774396126064692276049380437217114133559508263070682597048845827658443625643363105461483513826324309486701967579981670972017374495634812970039050672890477507080029014651534324049598375031262200125099800305701265075586345823545206441337075906737420242132606557971358750493053129081927966707625125355453300950804769600032080714707815664806421613156212901718226745816581757131499948464907039285840821059142697258484067041382414442272813629061804667748352639781849294950965463668331975531109404355949532130783886719546119030161209364668262352911162661153902021946202579599182684941182152301557731563946665427333116195270315291161847858975559678124357073894288058652446936623707879808462854226312347960043259595378181541009931073416035525754996061624352399352289031039195312772584496337756178544265200677444137161468039862147054771289475569763801152058749413814461705928187107903907804696625763904916663573354966881903826170410294802889343821904262033541218318042065803409988693180465149797326171562770310359329451179057098651437955255486255433394297135388694738678657124347785917980467133595402233743074958400352918154760125351760660508641475744083137852934358365721588999766801854150698910770152566707345396787558970471779587479662378169901976765760676678309873226182236921331691787714756077926098492306715117805767636948598866111630983266179847772730750917390644584745903279658780289712412335843466262108453337019434529115415651141866716403954091521328334309862404720925706224792140428756168537390851585129345962891229299740731632369581454029674235060939046844087806616662990862431837829216999384726654756954156548883350344742960615298778776907950387976906609428871865254913523214102385134632087612573422624193718391905627788690769835737222091684499162435183376102009607175876977959387420908900825251112707068850579243781231569117707338159026462708205704140550826295092212737726284787118212565264251641756286880133920475940729537803244262812478324150176010359795160309446341915259578517357399435851703960342547973015151864971222650303140347623480003068744553310407979801704425668790041524175027447181506619437964281688964867091563585214864136064134155760800490459853140763165586320281677622543421580244931390397864117578814038097782275092604454199955150474549483003919507220362507194759190761997815361181401043021218398588287497102845078251588291857107978023625415671901697932093438263052102820217916965741549984454891902045568768225228434893316856320964336700543288230424413578101787588900820394285466732410873583486438402847413186422547784604607673543480308498836083783288706935152411543071569650830120264175876983092101642570076675425359739737710637803363042652328909064046725747935204493093483957788233663321677220484772115706274618775858147791928686773741293752214762467612846745350156093273445804262467844887179682526240957470445781192445201220384679180011681689558116580324946642372048887312911188248305257649337824310673004156754635409529350980915067432879434105170067867530496377931268327299002636548577074205601088881723726467677481632587074955272596334059949499915189708567019128016432238367701637690693101645360439362823482991984797298152111818347986915197052436777790772944576752038525276888669420912782222727570823871099434351078452783491119503582988182182405968496167082466901225234184741249607876392168280840395225477427813523342618370510971146564175476672222797967020737329815901988358848468972323459811567997434685019665522433078365394125051368786273587502634871279255206296596828299381598547553798073362326903795722881352029585615925043374685291638419200298448880462286042341083409303447022764936405644865132737197137001048809327650957050332334053660704954058056137589535771462766871279500595852708186019479939756393847498630582926348959375464508231538092009224819584907181944647656491068129185345514250163230432591479286258553626271011660500261464824002585792585550247688920919526527009990658166958706886675130282909834383254519569218287097329443796647818172783848497976206177364786002788120336708127340950464835946126625032540398984744079177943488350680604630457118810290047638230006426617844336094792143808636137145539434942142987637011160475367756663915640454581887233216253111795385881048923473703937156956950233298610102610384095264204687441723729941360848370814739227759258977986723909961172640007062169226592897008556625847939312245419599780470185147985288770924522220705557267476466514870256482764375818119346723282762251995195795771084558952195376909385761621460643415140742999340119453022127346007999125239850259703530456512771097631703619039767296253913863491194119213577786624229793873628339388926534956920102116931361236788858777694574451377645108448156269072663289354071516150764459215202276253234644867412773235683457508260334251185915747232664181906756703156207468489800510628341712810028986125142164861115518353616999440220401320074535746959165612095151781835719369753745953214783897725724029788976312407699196574884133694954764531590761597765636862775517193668087069716889729126268610900881336180235671920778044827122534917866370478651966722862640582156188698353383035723254043575500781598621714175449898231615637405092059770721217937207226636156082106563822920007470613188828373493470262873357118424361120324967589419600833669301942771142226776888006984575605465156820209273771097862501006284938479663836660331467835486271544112358426691916666576367112478176013546243660806796860850850567060109287649013414573063877797763368848939874989195365952516104106231365139542947187621905991080908459182952383719173752266544771319178842655480231812286447988800177491313763395585601262724316516649528206260996662856142945939544512018341490335805006448849902853748300104811303639345254894972240301617741356232216463268988827490926138960391771685611112512958565779936820201776227766406467093851677804872997299433729492569002404851499595793687415888156747806748474446509997328920941979363350130462389877350657079728333045237988216026167489301651575876516836135588477454857086833816541873630924366153800649193450479137440830599337819240363410425452629074612897353750828421880532466876092077631724245380925194257901310133075473645089379556018148774954197394186008288285758948088934571956582323600209599422066138461439060832636090998447287674251267858439641650444098840873117470283230179775836652209905226168178652432683978554408107370625380134230275018446471614394973139098272792316109064086145139591160722573368173232194220764239299484044814732456219888767897248698761648157660907185475580920828203447207428202417378543142618623478970970261497687269998576195787441638798130181776012875549819947338461631061745466749998974542342738403249629201799186158435558782199202494669571087643995034239650793401464096038189556516358414241320514043270182052975807079280960713408457757036905240057590119062480267762399501899841096299930225321698561386272738121486219820242872066003317716354892633436376843745443937592180850669781343242651491121016417163139542665248887974914724283307670367379499825790516777636215208527604839356411206704968269824300345368256059992806738323822793682158621071130695002775948675435878561750414472060728972474425647974609513404743915599280267359487725179758622484517786080109351220420917996352622090611607757762721600116225633895617387676067583521347345625914799624965142463890413390151057781141658934838358298374152547791116199181572331357266640533543235714342926707212643369020095409469831900097984748172414588302825384891192766391277352894660451909064135211827844650595118845361424034557179780910610039448530092151045345476921042944181454161828013773833036951606225456668292145972290635526546237439334555126561758904205372929863190953886575198965931262762444800469825672324319081999137690115145499984581024080702816973192726991436114058467804671213808377980621890844300846542504579659079904009941591899436833485495687676685803716141520641780458379507034335369998371360212285084710926698354633953121506199436954259642316777467415450752740694698017780020088081476859563364851880693840549959663844114632041490587366702531333075827302730307887428785959235450907442844216357450776582769978353312081095934337342179341878751928706893375501548165301629142746576422393204614628756652118597441198705828230285179442795114417601493579126408487942489862405180919480430392459983355223929224527217690170016887739638762494682361960657880994136397678364595613419929759544508947773155169742199578697923988382965252790197826156499156963586584062171427113560841033055811409743421037793336616172267917187518619759652292040845291669890751215010501593646800555538420928822639639006346495205340945122864451732185080581904027112381405017443086957594314265260982444808785742581535728968606841459501078867656949586125528918560091199232676913684233215229631514749770677870405008170335922457114959038021494087901397641718942423536233436859457010032522488479675661614880724012584748547439066127331792536609692849791991053596185193170517533074706166942755584080714739385071024759470326852042908401725572363247240425196965795133526480981591743661275773000838895965870829821303889375087827429388405719694699928997381667909127932850386058039133860613083154113942387722444699021048097956725847518212193291620606929782629438917798689779327493500421623054065010117095642342074237603542850570398767255156195609279714561814045885117501874775993889312341354675543664957173357721906960301654736151974891010063888528171510569808427507691428248977238882246751902915920239327609981791930530457308281501828387665360603716020895233296947135322132718185373583810194486786353545469138703438890544244202646997340944757578235485975920130692386926113368779586655355561570115718935295835000594253207462797828898215251745055394641468492733763928351968426353018618122468645068517079235054769980648326469174354941773981663520263813796127303870386957368418287876151685761860600149265835534322595361904343570872287644709305676525584537406822794300958120195946394472899806328028651464939791622957025267271303604492687470553342078807755548348297588456879208592655307095298965010047779597690450778541229222475414881107217216561232290339632372431884304830800420834915176738683925326347453313776556485950244230100692701311110302765991688375782233359246249829712559635013766299483196886773200068698709799179645474179650196643834380706862028626572449801587154535847510267095433732614571707184597439017672844153591654101494109002587136670880432048295755110166107666354173681202189464314592913224413593443975934392517004279360173376696578543180689108072880838337994066121873590765493985432672746617470177953520423010455295892040293634000776138743089851664656638920789191956463329083587516478077766348448699527998331864387179510980624357933106496053828357050408339635407731449587626521517203661013828720923942142330255898152411379771104206975505690018601130033911929383407773780798043824875844298065723156338647973177707914986505225499725617423002734644699915719348004366565523010726868594254074336848291683094076014752839309090594802839758458662937248055090094978020010583214580634894449415631179460688437703243882310475010989916716181430995929502470229143179291883844404958043739798254177170350604429922595628820829566127707921558737619140361062223469031659967404186540347791983583340071714843958977260790905840036508531428764664457834782113196698826484209803504299280750197016994709212847621693611985249966287689817452513713934769480737303405641018449445114673765297218842327951577248765581216068228329334169867851432850580233030553942466666691162897181894426550403160565760952667138417332239858461723506798321090056586835382677653624609819527501561830139884828132976869303264191375530010425643702085047671086427195329007321799140249019205994749809007765003684765269356994086721759781535226508138936753888682821090226889147371274611076390561703250249172509607987183747852694682786183649472048055856047984854394479237873799259776818054213128355477383319885685092917538591012312823372541406491018352265432738964706989170628322571573832464547935282106559956526336387354117165144301571864275721001359798901205681998984816974508628398050104544146409753870953226659870402088783756116212739607841247045393379742440341732107019903223305547956402981114246564135567105943232504335947903868374813965073068398411959673241327757027109902028423581737333053658486061687459627827211745923511990573286292710642357231905737524797212302890359914380878842696002608129626124808043163366433386360926391500576580703603596238689752967554806561871103944035125618381758731262935825824515633656708069068977256942843560946652585492371112115827011566019496223223116624823011323422132555036751730699844025750568550266559789789530462677136664509921304200763791640172405407329730892921167427759028945951649015118282293814252445353822805190223392646122159232494377130141938844372037089544530223428374972228975318103280938986335253811147819891998366413831568161130148907538521181782084707498179815255338877090719329340623908821684149812245763076281706915529336781853969329442292642598945330230582968276272203716248092449061280240805015833455383895088222700146336844251068431190891244192566433845594190088669159078623893256880388389477187022611748873454436001615799246207907773793944005463520111262473753452100480673489190568199641411244738099329040467624907082114924014632688819759327709265126037277324491728624905075491177059226639481956416612828449774488337301474793625245247054821275042882519310630990366745894369416519932824640012711255909223337923283053112914183248888091330873327773471674497898210584979108363245447661720582226444667601779810785975925598480955704639407059824139100990595125062889916486895699680572971198996836263279085817378535396503474305437099847121793206646137736881598318574393803813544923720771453609193482787028524702540464595030618535953886616651979955860052984064441765099521966852573883882441021350539088130188961379771378980726179794016729749156392999626586236715527398190286662104252949913659218695213831228624033709675269972704775448953353799667067182870250613510645540087753311965961935527895865813353742074528820260277282757608271486742949065418860228736822016582325304613954957221075507120819296306805484409918891618938605681042525902417078853780234682219380264940074065255455517542512865746900948166675346713219503252604263013908306190510456473395483646177732064939437046449936878580052162216702322138919913389446206407928736512694689606980389853329286155261542974751786648157294744853132088312731240325275693423226178193008376042548824168554094357653191336397169912874471279908948326828883031766358302130614837124574907757122334818122044401898596737952929889645905427234926737738367991795355868726762350327947357121220663054373007781046189451773294473340006097834499054314704843224745861291249568785940244359688470413121800665553377387397294337646085983874676908017386371518437210009281174403382606122391377797817900270977398880386435971660540349397780816407324899213584036472874654819227305800415288803103564462732605583335378004861567507734176019789411571789124382168646191728283355987221535844870836440683198264298934934502108650528260269831779757776522446245568926775010040549776602828283974004456349613502153929917617833836759636396215998525567779551169443840944790995645420259307221417830536943667243214024191293432487583867709406534118743569952109338716416582255475143186827757415160211790670940004265080133488522757245736392421759952454762079600074981789893527181817296175746151115168515625755715634602981417446088915947466022843146224646575345390992051787292526663203324465856147683581450309513800117222616201342791093290872900184052530715137774558607698557636512858831198995831133886995634345349808003035409016501123117447053976016991412824570416813035559803740630646773378240379758764870742707009859832544512897556971990315092917251172763848165914650834912136444402088168334871905739158762111662632849460450261128217786565450472363574602214648511093589836912814920851722681171788629840088734662258372102322718577270026145297895403982460475233667528837990479415883923441193764764289953402695607370951438307958745574090171714992756742454852039339189201756813382384117998002740068086717291526068515448386767401948482864138672089069649635011027902683601076454125656527660204282448023566002807631344641123354809995740040812753751317421732677698735649671840561991305944515508274210983067309793724721519232763215604301740734858397593185264322610362447352936791990919869519013796173921153411734549899472149570149073318334894213138866912955718372383225363928521236996336946541417928488871292814934058006954949868523916405836685410489059973621600333140527966635684507391842529549085327710879725639888643560301876910946717629624144291697279665468591699629211304742687713655961808728773891620439653409960922291979393997297230195671837159681354924260378595534905701875108821279259253305112463156487412905509917029675740034156178584647664984837234845591219154941599948645703693452757723747367264202624218413320906581934945620510810269723256672385413327754909465396320883017852400690201327864463327860993417824301800212078474468406372534580435101886750617962850733951316218307303327585785954058129645798967882728079635520078294420157079806225711507630142135091134327571518652392572811313544779886951849965015213749530787448664553233024123129537331455555642108269542195498174216831952983893617891893851497316911570261040631442935233437595278791480518199470922514536816787191862594479944585113205329540205104292930816362299217200784974215459187539786113426623824216266153647593445429211691296632075527032302886810814612582588896139355223502322869427159284626099689779036760041049395493500953991600229646763209862336895510795118115006212819036212442417635603391440595539264795355331996780949215667849424031146897411684996983011192396724334745069790417671262996901208129498424658993199142601537779441903878092878547827045770363587862281537193628865713999020945989790546835841835791591919038814219784543172163481447214639050122576976419781711621274935211603542720542555115611984413164807609380535859326337041113682502799893143856330290419153030534255214277244485851837362210078964558688855632816057150234306116791095843853245024666218918208911120169834361427149119802154617538503571496990125922889325210150645623612629684580673624264439514296692695516064300882765945135732193663945649784579307131092981055393907870325778338710192472583775276412837431292844822538665275784403012359395648482959940852391838923897245716849809696610135129374765277518508663033541153368158784984635319059939457228197679640337532229431533896351203794354079620265274332001783491839436214344096841554127678828989616372807625689041758889593124647000433905471481627126936917455659677856050762559156527576122864106177625898181427380771833462928426432680186911200115353712069672548263344228698615139765442693781874843350949464688858108113301614342174491863251984286153157913866568742349125861529837328299932994535046906226875919210511847159278694311003522551275778276282997935241630544896210934179030853211990738282163414529015705036273302552027150433983569966929908943548836847702640591677346804127711498289982144550594148892617389192464206175711055431756034382996214645924858357697876081202485099394608983054277883888310609141923912531107129561328696502211445390925107582264555245207307560203407727845128540112778984975039416118707388047348720902956246037871100143384029593610482568566464301503749161217589610135813812733195577862173669976563496235421877530612428077650164302990914803576461978422132364162773263845214207995616612712555041385531100785804163696848614002116360237613433966984378638562420386413049313868065797230990244765982276485742498251404345002315255395967159891870000966690043133765672122365470208199045700671058112075908660442007331212537840443886486839987628785459966697085037387371813876791918617494992164174817064476076750308811278965975358244614283245077199388018501034992461225649698009124874331820227806778940242952139368452508342612760941444014024371597092641608857495782589707126133379550237488028023613003575821121601484907998837916726931218203987944026513163572606882801948988998225248861564177818210634898068899096475219703902075817658704158736002378475197288474896705992194623942092630075923574566342526541486651918637288559267431372298902929610663945402913659038386400980548340415343119646779718931231148119862851411281586570700539903392185574382283732767334135212123753180881441320714139495306113737487253089938899232043713258956788490621915565902389500836487971539355442901816231801259084088199361451204592502486570324365846279629045597272764863699024431343388691335060048259192567333357396254087968041160530327245323330562543366276416037304926631459678981273908563445170931974078015293032373077909557994676185656465060658848159401033999553868015982519979743256838705626649570558449049191973747227822208926397344845215721423435986926490872852781898279841149973434748806632433681491568778021219302877266461826258777249985337164831154997568043316609269165953466638139477994442701761008038885160937055304559861898354573194194195947904736762066056925553926501818154241302977829363563336777156829849469750272455150496709298369754030153839412209178886386541049240318878465092017138760330422697156746400282074839832031492671048376881710637644595989720160584266149722214719129387917326953645111161229483351112565163432960495524366216296927962144595652801433824931202060010436381780453829825434749591641623016520341731373700482029594901660965250531568058763033358498269044853870293734168271758731153120939470802259899764291466613195302402598192205672022064084103070577787792072396442967063448656643572202814618674268111474689181598632284487779356980366703848027242101851948110147067703840927887709591202348816821893521162158396758534832247097946859390565172976920942239793457200719756028962836954671332490649814846835870874537272410997024888286663915810532306523013147873781727046986016954783647403401241126221001507508623106433630803171548605224224936164072658229312100274204895472887775630568583937749810015999812868114166568984682016156932337346685192424578103419138180055946908629774423508347979848982225579866423878515251857366186295957533062223752224813938034000064503345333429484937585841068435817376885040026167469063480936341261313172331656859592863513726253834548597690363370811449203228658422007615973348196121360030049143257759167031893362622451048402181601870797765329818515819379376426018327307527703151875840867436487036548213680876785166160758782118693710107998087226224752692749195815129587339065596835377733091433183649414331938521433993196629836563532609902678031144387096356514247716492690447257404760421388318242862317051651550430638075550116000972464558494110700121380434264401958483831826457479860920358526044702750356527058718384301981436345914272566460489224504737634093538150913313987375981289611801577686372489633092076933536360257419311768917946963578135392150429561562902658107169737967465184929703523777092335062725243775172801357825452022934535402268488673967048740046044198878772330010109266605430369513975408379145195045191302257812788916984500876883455166141332271448905839610050040084661872353755938985380491364000020726778237750139194043860136267527191977499886910666222325922588373554119779452689308681135171927918842773306162156868163334534312951191307373562929408897725577766577962030044512451562731397049373106946092576540544762987370290310204334362981421844289477318817923169144984907659035467631147596056678090928124727366356595707694765546276559214913383888538870523420224198416750611469559282895521282508121963563283386861555724685026963028215513983564315272075934330585454607223682475152836055083944985422191131312100886095757506884912286079116240356191768346020288053870973521430460617928716188573535960759827161562166193527336755354742629827464656989581190969447617908968440403720298135110411143666423087336166809502278149893051331674788539564205218973594351070595343838041522781714071877834980308267458257823174361971930387022528045061235577364698155365670563534115892850427545984250672626120022789891074991921697249785884004777201885852902417805472062820637087492789568020521913186900056007350262645330188603244056829789586949669809568963313621449386062929790774088561694963827279678641518236300113713744123416914045021465835848024565107642471535562706581656136554087130349453166277400094363936423028019143106474963218880379828294117510829036671729926216004279918941629872528937217093292689759026438794312144921878266023420573468959671099356210181339557126271622473768417791850537319135648566159985751064699491947954132788289152627677039071890463442509063123325951625342685800871493346620035812293045054533002365745803230765504019383454908590892963646312551702232113757869131408381772360677808950126612772125704447951312707961004939718977680054072787451103408026579033294031475316964492829095511547949777519807724188131980430180910106683450371185281476894395489176414448286031322711881781489825749665793266211320176463482652762377161890347013134048802736227788484145660772619867735870074923586953835752987920636578944528479929491335078810918621661646216035661952755391461462384079011174165449776575775186210801037202808531426025945961901501215933894023516882477190898929438205104492603735611500205305452393312901839192939525598217143757476465217319489062060029568532049436414119838482826657588356934928965108705582563405274894783242059207660392201908312642535516449552485355485471841208451841332256792563376315493147001814479691506859814949051376540549474700764918438885808982263674323811831333222058466061268516789179652748558987320708407623579107421225726628896317404642143922981533632635838210345722248428791472873895227223294454653547346913392715752023285498373801398633641323679220558407720520526615570747446228362028092501927731830024202085112145079497478837155799180388755706903091094102380976589209114576151026167623932188787703833281851745126051647584093438692897453471485519500072301417975356147356145667715014377457471121970271288345466417887556226572895510752419903689413099023645265134403415845032180475935968674972347419110769591648490487382177147849868970360660560254376400033415548231323986079950124530975164395993737974766787434889817041308236584944637079228408795717802870305044463898266205625038395345517298324974767535896695845862105525568529164082828482129492416023160233364358101792459397856162593754312795406777494068939327163665611989951034214213197102634066724814536962963042162588650404423819274966241371347168242289052583023261740497355909039003327508258340687241388036627673236709420754058102703691383158611499476099824370692508724683895484075522238124088406630773672182494976768528956640264331567114258290412523563701759054427720054055277053548999988725959145677156227527861975982754219286486820089711829838821337799588362644041440031284190878844079179794754799966348453708936638187298742551606956690046945227743684828802315369238157456381904340489654194237606309472707644197436842077799530850462174398971097221270885252426363052828601849833553515587715485770993333377133006985602111753888958659458683493600665051906581429664334956706781670764248400190219929554508046915442045096325506158570038082685986216626376382905278240417095994547511177165305465659748104251125297955821288345420652850828839460992035177445564273398026802736062199961709117492239330307634506327659297772522075758730418604795443567187057366584469938617755594802028401042792124467724725088704891115011691925880818358637023743691851316066354955908190212423032586222677756784217458045624627382324464642036334137570748143534115937936766694940235697422861801369034546380223008435188602083135804884646117455598001067428843213202975440570383528348533009667687539087638984941895183228657131562523332187994346698049724421777439118227164909782068138671426534902446493575485216043382457668194243888554498623416753437783364612089497588782876459995739466089031912350387493662428197409712691019810153804990930466437211113355620777677247802489666028808924521538263656702861203976403420134124201361248352319620817543725829967321133161184119863683199226467481012171271250496548564206347626785403340779447663317584850806785307246146250341207283062053833581401478215976608952046347883016269629217714097316966132364357956815736923417862375213803090974565157806350477049118640091882554044834080499252356952901426887179092695742504425572867345867442405193462463585318883847725344068844397292445824531454772312232669984594880932424412652063007611890431400808795804496848639399546387418600917634044942634620400351682520791929592912029738102999174922952635300926789133800360181445487936192983689974949499543045992023672439881293292081530932162544187164806994540522143018574833234159913209182134218462379902595191681223867861595231218542985320876575554569317180798753893664739440124530102508139907667385217592038809943667313274996986145598299126061872465154473325863698621969777591139159902105282493855244547176644526945046072465818765936345975274451408574491959158372109406886951193796288258498619725943765903551267970895779807468071184785382871735206887187340622157918788303860775941266290780200494527428313100253590666975168320989654973818307292166970778652612079293174505086082810714332105428905525299570513126004716091220423775534049239194625526387611258260339697404741812222273467774696298283485698144370359942827626174415973281769873596293006502720799566863389637889145498760262708085120658900813036099240798655425221848078448673548231351039710286060385781202163891315245527932207106486717434680230192161237715173046971772333735881185154800217742867623817955523395113436163258664844542652848866536210102083418097311739425248663311997748385147335990065197210717549315578722753431908464432113893087355151604980204038731900724003607854290151342001236653919474837075768836581782848211311269230600744171967422538827596717409662422451799739409281395912132540425786962074281528917271831230918619287182734945861240367320423925281559041781927260543091326179042869809728069253816016721064606119885348525997893646657876849904653293926586360493118798524626539962895540079248699040624450021314014122034528499954823756950443713031291836312615151983012742774295117730157048386504716858800400529206376060713435164172431376989948517072963460521129988087745912197587172573160215794939799648960632652595661766315118695565677526120090566712297185267767690393268382918568798017941293912460619173655331675957446488339436405448351101916591939496665978190085099727837248379476437294662381609241051337282010459840705294924238213573570778902739757526798596008762848362742086745153253284295030743503416927334859373556785610784892285897706885554224294024927001322027962772863829967028099662870727304769355875932455169682889603360952115820421734043032713931260486053178584538277621736217166392059344532019070781870699529428472746128985609426419366765208496155036391370468398613304040200333322105710884355308829380500456320637603334388308828585336010843774047857163165336212438340155866491372851580801101806442785686313322846253493045586369151435407728890331658567744699348450151964446370014411353926247001011323224580714463181867510056385755772385849995282561382641783500528482594194340878915369616238567732279269484921435255899243208930519040757711668808483424191799103898875457924513225037460848213872403442291356447570830246817170542299271530803053872782519842197727774569380717631341516464118431371719878201637975887734956482584563812972436703694687317742835628633522678769267140179157786053951178372091403917333706936781627784460348629985382519306240361450320048360983699328595426685216056665467725073668333671458086033057808762590494597055494157662499446103083468007895013290657259865501426473665779463180016459332002801226569625038870048187350104842706139650967180880051233122915809584001329214860412856227323585383131412882452339672796251629539291176588195575626855723795389061999071272059237468844523687533285015230982905542985921725717510514103473558240167309879767426080166114572332381442869854748648572652153300540345123101339961228791292152838927753584649105303572461459870302209242740726966955837681130316624265016756815873812626571879826945728761053429822607150408119013464386597210180441418581305728879665544577646748194238705557448583450123304301947390673449362613745215516947060115664612237836860489091057979573504957625043268134423435579570980310035824242584493810209105593055937998842084364058204535656793394160061412740948264516196717226275818300083568182317723638454180138000330037943988432607061214121381295308540689433034219687358546093707835851180007581716898839228220238075066424722922855890041605784747073703247518563514892033207309988262473461120489829600508002745625079373983410156339957997770326436889072368927116370387198043334969259897077974504334886548274135861674445332733647340435003143535948870607434451391863819057045850564255774592779718986935891020387335552147585506483218508287430077637097852524948717733279471491727630985411594506295778312178391694137919115444719085266657658438572036670483131418330002086210720211493683384124588434197086638079191640679512471619642278455652372445228311761182153555770674418665804701522460140872738475525113001855194238037964236037379463042041331276738805547234728907192704979614989073709625313280942667684228908908760121792227508077461681533487798195458836698533882777756783250086579745852341987978467257910397118695691248070255418860589031215911932780630269327162289571561400501067188626764148604116478585202231439883687702787206688792175272815690223090728632964938704604401317362115471877551779508348588362098993355534705226814505610563790244277577625947904728891543590136564893185363345772151789043107870060408903616123701905261082835589315415772257934079913131435291320045859414947019083877175396917090308956568823954184570551278999818095630795358264203051556339349484593920603775645894567871943829797061844363214297458969997857499593645233618383567352567459568017797904248527970951781104661649796030627339046020704634330738605156231765867841127296347922036302292246265821908409908357632983118765964711916886259109382325915328925625487384956862650390125615373098228572794705289861923524949259773328625789348964922225422014271897236999158941432230683273503626255549817395824530136125962941465831620341204097836798169734840993476020492220566383701007823654576747126370706215721260588431863482041960141214600413249301796509695217382052456359698324540596118789905329910249709337917245408473649475416953133964405431880913550399480821769903635449035898349888044815589880294233417746549513740911667296443623246436835560309745147700322608729009493990635271686984773902334121512438685533928095055987599666712742797105671982589177161610883249946351034319107577516519089795130421586554492108386920171913992797050322871064341427700752197968996573735824616195214085252273092596951517687718769095447484264990489268953706775979562806803159906144819596104057063421001104220511178868503450777709259548509942496640749092736367145517891897591145929330977110485048863712460197237586850302592139921398463872096964046253462153500326563004760414148692870761029421427517101699990328121845171310076745495985363898356554966204646066957691748825924360899210148024292216877365316054586641210989119841808495707626636900085609298815867376354577367941123576324319350572733916100715862984172387323914985684294614074537116830872647176628318881262744133173062826947418053214620486959558817193769546854583009852912412379983924991310476808456489440516336483296429617890427692161333073017562616267504651581726333210126039682943160364689940094298179486970909475044274026115620331838313995553707992773491634778227274950646523865114976858623007880014076587788848585748055045177334199196579819921276731736322823457314649401762777929615419251672387670659071874430308558314857374867996695976880714970579877678412351369732439514726114195386255524030643496692236310734067974749162791921156807094369448603022663706731441342095347421140963611111380980501518739208904362505935653764252237364598285218513743715559273645937667951425426443828090311759756017390397413396565248770755593337549900138376548635152558215697785121719442414875341359568143408120774834722101910231679420205227640691808965483483991826685633484331329191358114267618049832480674108138059560207412898916027143115283824180907554076486050954915403393693709381082511219242256867571860352859320322725955132289249693435756735479000229957162844444932102558319429471015835821807185471127888537811421406362566010272256228675195097768180398692551177339819861193160184772659614812656129310711329051218885115993685515461022025883466987078314377329561544936931102173934889773651419297261369759504997934671969882082840703379653253841628687632747018275787838684327464690672223622963464239799590914716940710526228226713827116222750890511317788345537209693364106698116131302010037453777809956335403928672710102982999328424428845264019395885388385062969575977875785910530530310937064790316323457462905434463406655217232236848271239876421748913349064791363845373703706847147010904539084129260812318083473811450485883725003215346796282802238779819040993703108400345329130693375355774331176841983669399377400080821627799473777970165873364275045408012318165513703852740130122646200708879662747141878964736504070688073079744755117552128747821066423721255579118112669376292326337031396604864449618682581981196557424381643797103988773705110818512341891897813812508538747190236225701770288145282021876509651688528363610765321524865219845812452558419588880671655554141531194846787022005502258358023189987203256232328886118600992541380840994735228015212700930391783904863789935556189905191383812149477796052737106796473197627471235294045977932630554239811280517264409226933136160498770769303994189862119142486212512130276967501707594550906969957436818444588497491763027410975541513948008537390240188699714384404561225593444846889235026668408862282094013791727927148582557224348080592991807069113965410617117823255660390991357724405526771452069251985929612146675856750468978303310208473491990560370142534984759017032504908069252578701971156450378366840812754756943355743415535665625207992572925006789930838568808928159782929852987621472372553401045621777618396451988299414237054486515989039394008839339399169568684853741078991445197821031952199258146614369855790150891167498512698195145751260433985907150973215985045977577599446959787855793600832492130133356122235636028362592735953645467685464954232122131740283655779049851164471201182004221275576989427774542316531311530294743702093125206458282999352677838723683770912160742225603183599529991047737264762815093736525604218102921292418254562655886709051908056578275490899083467716733266541712660625555664964492505482916691420436672909698505131447909105966981533093043242174566823556597286853102706408735849757271447481054916794645178453061232965751792640524612988535375888615142674812122628121012865190527285488456939714841598143608838059957497270036197880605221739258777007025257573952324120270739562090888116629782061642353214133590319576415395182402127007014070597375606832244719988639837779345499894170933407806103823730741049118005641858992647007033715246900450607371561947658507096384888335169580240580308471378691725144881308111091426781379902854436441418723929737466083630491189832786988425180539478076593138666963417230333930222575069761120993864397940718333787048790508518664380055099156341788161535421223354517244105629993788003749121560584231353720525786567097011422405450667332109066971629279144016159415525603901973467866248923346243832196187150843831746660397266331954900668848206091482334701491582373102548276482822428860210668970552136669905634811358065336811628632406776574770157334079407107239458856406603919968600779729192343705973032779559812596437932150783193152478210802720962614418892604844394959634725405787451345198256943547120997277415510504764967262477158316673460467036345492411357184292474588979501242373447168215634427447644553902694984394474553220051049937464335006440975954205495493017122711476113682981390078282538807105422752620231749458673864551768184639168439276643511377877815484285635105881466318059115925806958570751567748504460222291629820594010770044561575322321686845040963439475131703948945442456636458464679126253296181883444961486351357624939258962820688685490327659109309266213275233824873839231341569846246592911214827725497832280561355278220942031414619554468929820495242254954580222096224405033245911747692713109518630891940675450871829132603066419965619362570667899717767906217765741169660644135948972729878450707447819316178296084531549310326337148824462592065361475479402515336470981128339639777745795404170565106463241074844486836970014219834047676230094913076291167746730551798957776627934514494379695910688611598866514382959114310801497446822301225947556906078915087735398468609975754221519453839973763220610114400983742855686327236578251340303693109682259855000313261933562969690922929202924636012819854382468559194300311616135967944949828402343910656815076205264765382607709334755670723691599674086060368414824545238403842108747228138664432588848694267818580465174277041550869031974163919453969428448524507604266603729317232161727649919398603007775463807490525903377210425204171570915747000188262062654693651986285075362613629734401557419212105472771314077939933299870195281695039473335568916720641536994878384999882822823076126190846814111834725982821516041937330823764576828216644500400110251836973555146301260646996912762630434105336332659532733040676280716268276041194597047540874169979447773304269100514441424397108738099336502552181085432140037585185977184180724235339729562665770707135184052467190510321774103542023267631764813635788792426808513979045478400212326971990056947959315613063114086683429798042170452047375558817753782916449102498073540030303053964820386538256032767613924859954513679698231605065798488965382370950836281816653709478742764026204106772878204063743163110116084375365351103715229832695385635854947271685064877970966115731279569578546554245150098433576338146476451973131883333674186466091468946249233060104733787668539905336752254308980983431145167383935493055373616508809409765328485564979058606714446509501465106598397822622472318065877902617920533863028559110696982125967207729630140911095788022326036318313092356184757029444393286031535717252471561702400159514354187663370050245089027912073034483765272673689894226442582249774533413003406140739787917867136506714243710966069424044140503540719758565624511516749971539141043515944101552157299306037857184115214542925420093562568797844021244776971963968511972296669401317214823573361627252667037613204058446597093258583678458221963756576719118994265577666371212375863790638194653793886338670444294668711908853438628986561115449293642163155443038778177762925116331628782466029539232814613920988770457037658304986670627476409848350462236083537288813622991912191909706984807767048770449271812894827558791108990325246884024454765892171437195875467491811833973214063253829786868655569615106649634545326622812597529777362274882933493134257607243204126282992911201203628919097080382315558449382045982252717847976626833045247911654144455846900245499986421527670376406557966945487529193963923756814361501046999159997486643198312851682886643704139815705916478816842539442538694011583169703800622721941685763630357734013392682954774145540667978790509628555491283600573403040834656444961719938437059751151039652853983995897180994833709445662586043195995699112680313347015271742429061482871309698493983085921681372293696390301220652699394199883412760560130862587428586497212072677635733377494501501963459592940456271269052819909494544400991750732433436174861231686218944525436802413500080700749623807446197808827578471479471128965443192952447740564385595007891427590736288623652236717987905244177475027970489522539296812222948572266359018426265750854797372053966676978202853665669829875063775414214278915078531402203124588674725246275640177552553988942338466740789226040846988731936367988369923562303790521775873436700139660432475059945872658323058074965499882197922828797588576228794272261785589013828193790833198722144324994249729440725235735168431512739069790681607490003006245433211217323839196012850196793355437228578699984390609433534918100541692703308336849119516015576997878603385406160222554482504694945220873064566857649870051304001049827857730726435775588107261831051520772086980249169198651442878996760249483182416198201089142572927605804427268054548749521066627234691528224053655177099506128696717266870460718146191127887052212268726204787507382294029992040486457306773283825690764082549655974817460941314737710536875165787053225818039202869110982565975668437459313683981708677540903555365828998881063736915914842125877620433484848875371295330182667163855974296113526919499327790982740608519306431779535595073665049380666328716799017257798654466488477309021646237913547501949917524237130604946534577193866243020644886094353382596232054876709053694366352161609078398070392401964744022786791591648135317349261983545597103717722523609550476669961041099941077574264235684308597342349520584992837930306723634022264690335573831126529859246060687184708182158143251230278080888081560400651229819774429370824242537012454069209414755027623717597616691221337355654228687830176410530070083069799943037115469523078116709590792342508584100252463373816485788398278096495711154183471627778879318312950500950465224032753584639692121721347537755548457670265402915444617001446680791874688179385372850729673081381163011938586333424906669378217244710395570810792993922690697142951283578469199494583343924606672917847421040919796033987275390953285987448416657033516183218288540329037297275235238266429884771141721479555090768053220553698793747269278460746938743196279000818392490267681196736593171798307640047929440023782863016545049369267936733909395346336930019426138030481147617253807306465288327188771981461275984146958200618716806826937499421881840054219448076540227091800131372602175328298493449596279390757105000301489943991775835618019907788893652227533567360987897916922472054366521597893741905644179249980380477589699372286364060849123659553531987878289892828685675260332375813622933366849545534807420299440670510701647735801523743077729748860475400132374134387239156354472773136664264617339374751977489946553186777965968335616440024626983557290286107895409454598838478907227122674659424171039138116130404122954532091408507333767284225514679606339047730110139484722839285077011721392210244829333050443244548898605536294677816492899611040482244769080992591388972988739243836879772558690003308551398548944711337295205474710458530550064317763722138482279367351910991278672919652025939009571185182122520578506773739896229639536840037010022118623797277159741834094874637336864316965643577123797148245827956859034250071076836105144463167465916336410863945477527531775667598571761636674049900170437378676635750585843351091096971590802007955538897461680219139398447849477880810882244677474727122007024349093346704884905088894391678454359729171876061799162173258340956371469800926266041756472807554756288300703496696319335135435412904704271254507524555891543241637708991221432037448664530033943577225362602080971323621198515209987509849360391912956081888079983965245319760447723908933658560350327121728823181791478625462135105581628073869019652080533577136827187251272836732277409811201952170762967095567519992445927427875137863103373263866496711249782182101477361419306356790319645904462709972836769934916599152665497348691584741525755498184551913581596364902857758090102339573150703029765556569216360854303527820387495559472642030323518601976536576256760875589333429476230254732279096544571360504050376645718529595359730265289084011485167672182474572373972565695143347605626093326230021325875121318789057695601949559891821926723728051339385706309896120619703897476477603527924073253989307825535052428032694743918899516422756340786916610983358785790789162796682197534551588212465825474965621562109808286691539905496247195214101317312923165270780142343506019507432489583931336749933261190446195267309521688719976596196222687939316971253071709775627124022373520478294583616415831619038220070052948137470192009893923410302220853802353529841566720482679201218584106712214313607530038605843864590475152091307528301437034714423939505139180056670713339144485293837006052534434832987275031541479576918816224643968200725404395709287719794231955122250464909521967573149384402841745679692318381539120498848074158851355029375299062400416378939840831373087569962044518263428799141045463057668063251161868265947063782205066185990608281586586489983398399976323027817542391392009374911514198718122894044436513437645757135440859744681102646763417892913548499349397819137791465173493301237652720806263100196048697868529915452425204463224898737886490286556143882192260565768939861690126063348934025826527562856904651566989173855540038787661701936336392143204463135100470290753507357106833067072509058281257043348759234248291339458728526880642507172252643439823776933773177659592904635174598440441510434538698957852491260574167147992879106303024924111744731027310413950220845595609191050434819092497422088895039027883172938693049857988208191428433939621134632941855540127337230563517217562791918630608216612799065415970508240654732468430591743156948754522317172921874708814766781365434974467907035599772967111290843149248371335913711046749364390945678226930138575561581720317736754555027368744758489455365711586660614362764734311757007781431075844179220822410373282968418666387403228406587715169920835803053205617392029982134618839303876087071023144199948424490461615897969545033335877243436066981575214288426396746138272791397567910070046023582810445587812122427824864742062242844544916528007020531521406551366196715306610265879670567668384695713291919287978260013400617736220773084425609667470087452936291066330092121239152871732856850477271653415239296438616370289025686712725142601669566125032180406792560851652622163668975266557001593074187076223475089840292730989026947656760189502883162404920154783041397533851944537029962780187004611897143403706745860384451760081981110555393125955340855683497669500393462414783374334304220232973337086738759874559700938966647212510430622874850054330827117803019721028540132685804722162334228834496788690924007232828050158257736510600625555977443140696537722509739235615203888783014244983606026777700126631204769787012295221898593308002038336673805756803064760195949417679829764030681817330076685153283029153877165536243319573255912408918748876016240366469158815885489200696147919387120718039881114745537323345721756374394931230072773255653676869146721147732768659278777123658925591289618620371409092260547562649096415776862440062494760104658907869977712026747501833184828083441735422797175673975665373285547382195620966121465415279231552858976523884135384556291400860021013507922786173015351291734044553935512067331773093313826242907248676357476405876973479490438038571796068360303399110894245329120266583432625633777216877111568155179574975590119735082473444813000955429063058756802117549315198856166830768550815672683738887155952419369406269417861005200962448625651858797577073376672354259132673168341651563196767458055559297923877659437042852770611436667691584988772107183158255443100019282699202441853928785148693945403458509238633190922434508231940618863297710767924491298509570713124038768410749306571371660675912874382785025083219856393604668752126539679133384513248998530615461378772870462435938318301557486583571398399860200759078667222573329353650248555410269930813194486606707151681653050358549397671241976177968009916454555656875894304789163904826054471225592244849125101487706759116373330175142256131641104107808595297003890790268996835904333353728980836579805893648756427305406435221209133844629705002595445145976370468906353788178758425169180970633297923929510213117996503832548111979027634799123189460183237976498062190578723276806419006933365720465826337520392913643086037483280172808928767790907596196934039222132457767235898536142801095131037981391342546177502398801198867755180748780064865593199448493734035532095701269356658735367314491496981662792828800301705698270120581399262589785245184628497772718445279329482997308915392993442604970848305293764541645342979399161512740848772241245871636325509750910878325018191902542689646208207741952170850476263890891751368860763898480176595894553084946910608900200359538873781728665855451457964052721053273150539883356390256218926941498999968947486279767320434301381947632322031086926349222949131599783215798900555175177399011219900177698140065102632895289683967923203323937203294216347563906706977867292132767818808833223598542142902119754317406610804648948182637992479959420996884075802005690426354684348242765602290574938407943081181577308944912416325181299069252755035453501790563540796084498989228618282780202059050540393589085890738856934281054921474568580671474668629679661939307672008174473177581921089871316019625465851571328300883217565468594381204924633671380360005269551808044914929082687007331732863471424941885996736220820957245501898028954772654769091883539015755198313942478699295838571658654415991485535419336956511358256708374180509537256171462733974084326131891062044071919547663449422944770413063005517360627224643859128751776473697151776106230220798776068610309672578176876559717499776528467082295238885034442656464131114753786270987759059048053502792730985875919541960161250745254968066613784759966025575265144953398278056333272157369900057477414587388428669579960348306612696681824408983154251966651204170909362277534029363706211310922458200499556010185278329047808716940084037646540749079476533617410385195995392850781497299604144312928601269747191273417213154977659086373096415236011284954944378218306560519769952427606917747531396100304093900452678558884082248315780826283261818834002040136471090513194005234199441026271739618098773734410309391944478104881887741014559334577317550366273735928681197826261716586335869743043030380276454387186649438428330714476851115714217408228020984889798190341539618027120482950759234382656627867078481125737734720964626557299543929699341590126590539043225853933419595319771749007468837067429319476036064275716651925290966143582530814096378811978444990077265335709853136139631827634906587057106269848921487286013016736617594096565647957561798326010602165872490987841296148938190945151489777759077222009561762653949143751045490589546669153774099200417518847411393866723713240311857481728515802371934368032117476609130518341676228510560580115524960514560926197621814617894774899988199873972702168211214381779058027536177967972559748129567402709759757320422833563828372691036665064521092677732476004008446296241825459915023425311649395634256863948172510096841405799053714764212111432645583737395562602483153283871275466375228949901319171448148840581259745281495609304712838611107286581527808893820458111257916980216410499886149839693919032986115545955157227075286330989142819504172984569272486780746530010765797051738599932605927561058450900635007435107316484421582645798740928418209181093627445008913290444399436317719732696179463804303727844102167471505269787593830468900604955665688648562659027808766786995675266153328719579241548235543836771014194232599778233531704539284110250279703311889961630953215435883785039547280837154437985672103967961980262745108777595248349196140425044997999762333316607296461980884440523430062697894697921395538924395238199044254498230473787973608134014670540505876621406592017451935108050252752751724059474082148351365061239879285269469414740443129889850989000900477336564094924296337383856530664813982864939328437208233020841435894903885040828870553532710937744369750087923509264992031528478383743417492532857259887111842668344935766638596729155996876494085616031023778629369304212788476562492141589205624466260753911985965669554416237995973153809100507426660990217199419599855941557282103352752283416153524580098190662385996658273521650524921841609415002495999041259918695248459517832840917090444601586900257476013820340283389978174015377342669657547374820010260531520736662264025150901034305224650107520061749112172540653293395975985218520420295433267686436314892727373278913116556393645462521322377647580854925248540966972625770945807182712986372650434741840283942806837224898606691201245347323508012223338699134038071494379324764302851875755222554444796222182049991775793626613589443314847612180213341146011905984503745885828603773404705348708813254466662207621718754548452593246600829259326876981052360455942327831588922790356056113631592943042071301582510787813857671711338902955108495311587102994564916596030309415715645884161004464501584496376307242544976010198056705304254430059531330562284263937504896611480330564061980425163947542510273103064715814043809521941262533355606837991803023964830049176946906157988395154273315058157559446630909415907131825277947018036821887014475465432701047370477806948035141726483362987530373428805994270296607149357202404124661935301856104485642363768349729256763578346848720373733695864272452332487135547133575576332118724194656518157170778933003681622208521687002998013179776119922378978033155852450732622689707155271554172089165806192754411049905885295147031375689176042267305626527464880459491411267691686661681342289985893631010812650558402912485107602972509277031147310475757281022191533636365084688507179424195385718143071091916937991948461889845719811777709233332704963879823472599077432515405327320367260653662872389502847435124625608858029532476912779903213084788249491719846089653249235658663232025050441115826508607550345657175963415340306158493358588892451025547197307601034819877197874247399323431451698072656913332539212887683917862448020315529363097131984237336640310947458995297213638663451812231870740385057127349990609426186467967923832141465225166426869573109951578897998709995103762784480472875501840341572468868996428216110925364695826519368430346550326100727247857147899602554973131366034197395228276569280186089560275392936942238771394683493702973301815270481731931391751707094850660342976244856048512405106091931628484487515972928008889420491535333063660759472491707719924783859159866422706213347563661165622928232991924007084198353987733449527829418940612532825268044623549632410243343081791946746451317030288766865542922255233038541178670166087501138916313025282565180631036164098032868114796649361318727318800637537661793138569365528997161621636166533393028038026608984562821929136865257806906986866235936115714057454242732477029296723643533009342640847639396806821110901758959866748468761829750035472853689519322555723967573509250260907143567253168189399576716325023126263835416998020557957440061855870040195741965319284927528807717327518532536306451192512407820836412457276507658879034945803210065718236835091773259859785752583494436684154094175255966107793903819394720766948318613736242359880172426251257764733634731925142509945416097345330853099683265609687804128543517676281044288405045709922986000935104199652055379173949625724202072078699028818172159755073754320506884764155587226281445229507878528270558854941785986849120984716098060543040754412497355354369227814836908510635499975778309174882924890943279641090372838020424354775234177615693377966920493108960772522227287312996702367941920130213939044526129057793742150721398475390418865493927660958554404021086750326624998696579163707647944219894691158781899916047200448768202791960451991392971664329033054409105864877967165341266079551228844946916865382038140919514850480276981714744936029377920809811070909941551074086948110598788540280899834098605899007339623114775841264704263736421206341441412820767003745875867237823756861940998978269697668787348011390621878036079194920202020184718928769948261062039908293078892570743643869461000868454565198427149003644226211794170401839531592571224718762838770763361739346066299019220064642478007088746980390425110858692565442415102268278350749660013986399342189836256779800011289579640267036278783540039803640244017713534849845342878662274740660327300981638839651685039015057031823918725677571379234387819696864603546111341132639027066958739749585213809634766006559390471330101950309310090358321646866070547221819954932310442960434914206228166186428665605085456727972040480112939339809982411741495811696039761782034528600103649183244806855598970480769588083750628139533053760036120638307500779064505972676609003515583806446378364759673476925291674722627107617296620577151571316176247521550372245230882242624903711942729189389515700872005482422971935924593392323110687729214457166481587685216530723163721032627262661501241135397942668368630688719112614310887215556252747591221834339217659128157063258881099789285752057731366729826735336509980847402329274771980170890276797351972262469277339349040991320489769531941969223682041529983531468352610713469752926539732716892611450678007550089576116383982365076399878293590176716715209598606341656057896552964066834377635869763605068926151486249368269325711445618616302477276790965093812950202330917357342160685720547381627312263896829925203895696470653544557814610048339818018686309289175578129911782172013306562080049970925331245435700854753180254769597392346945492476533338904405613666685869174201519847521584703288080831488329519720369068720957639272793733541199843235682774571514633045196852231729708676124456407390166185281663005417641236415877235512278981087305303749502926222321290866076768727649161195070279560533673329339974640818579487227571370772412864360222093384469748435465722036746261653498608577888721118372051962082442435695063055956962704031427101188451937094206276949722804339924746415841302129656690137075588043978760855726149226852872865811245687338007742812855175215745055507605242707784527393192736229337752050308906451613717994963391836167112984496388393514064987841970304538591719601408886911834351642189436619247958416906538490896537509184362668812423548838350767844705957658052184794391917201785728982360953537342592528474089942291415355186558693689825537469974235065289835788250657441123144166637508779138912374022492727674480065864938127004330498958936590499395369769404181700100046633319484805931465490017326232908434906137377268342749987310643028176341414010232113239146037862724114103441490889007942114286421907446142462648119815670475684497902683043889085372184900622543148463134497534592889259193813353796954687884892000203402216105000709352895128113067853291403963921148176224788167424483538750994737254649858467204922209374269649958628742161183742017970490894101943778168872029767992886886971798074626993659195845987766684878928963117283793149869848339828032305421837429701088704422646154262248005655448094885922073034392816098762581645106951205339152586599090567546080170601895559512131540425227146256464034945671150549242933460317263069884073496570319220134546210907178382547081618367143026134171764573209567821231372682156800177423449154626306296265877033746146808349920702664153322348178199494227257787558252826016084298233108706310520226393096275645973020724855159776553915004679135710489101842317323897924443546503298773274443069316514199572345447961976084453680519934241630890785099994482519268248188031753697720008140746427176013572390883896528376465889627421729961019694774094959564022474469766766140809101991725456678551201306402721979714775363689962302420951296775617600964274736725539068621967501218361843805933384395354788355888225137602278135570087888408902387258173191760345431011203716150311099156584096117616399585154191102549840140798508002861649162087242347574927545048486223016872721376136686782778966039727138292207205249476564735696210629671549865009117236055984327765625078456754743153742516382519150523864994321676157992400158254684001682184842348827121634592513192386415267410574230267776251333210991547795351019193478667047255494395357948098398759410902801423232603540678075638307874420265160659821958373716714471449729799058487555773659605688514567745868352731276750514312105383843481013326013266785531256729854408124407509183340289243477741675770680544772409876503810896301423476301131086136321362655575613244334785350933706838458722191407382316968058327147860440859500159256820790221300152565762521348444044123165650784938363694573343979436540309274323707486552639972110825214895646444367930121376466758820369702721040703750684409475083851619110576782334420670295355351849428903183749307705783757026641718891812325027582916412165779551782010846218559024012621370281555449899042385062145365877235119423912509093770996418482601303516569453687603869991103793489240683357250916024262567817376558405857128739923598176633540943870956374534137174420529344047376029724678852418343588258303151658511502528857012050032965533413372375712438521773827798625789383642626738278594530134677695701655480860934389869742694160579877499635865467974478773184894383530295702259033347344984174960123560211486316513783587721571314292517043877606754077033510956437875756036142311183139241414788057334212506980521454784856629867752139514784452841426428193895268326304029491662983891631744457725624315435541425884087867848215519034523008601111263621173368499532086834881837699407487868180752051263245109953431556927757147460284912228627064395262134135890601280523414968434838709332851061686135574089986410866221642685020825837807753195786754502313501459823249208164122331349985170439432113213905514222337948324235649614614149084529190417949162266848695498266157966611659665330580015363280536611461021762859788720406102905491767507525802352966275865081643625904367406322379225707173917856500716403179207758585052382132174611118417653186040817268596447238918678785440984728449637910147844258112520532206200624199311762615961891353499650848275378155498043099948260382503110930504201690080659480604202308279908315659634686764181569366780242745171288484017202586616255087275350355845601495039044394797070340908828838062765957360304008358330158713330748589248677513140337282116187402237195583828222660382550483894469489655401782075321047041055671785092160785325142934311546721418075878833186718447608244441871523908532407749994115050314086867516449771421311108095671488280084405475543912855115594203330022338131326005094776340879967208432016005065278649897406100677606048729495256087018622814816463565329854657540402425068988708147873370209575159819303232381365272355056985608683500447545212812174256196464914440771217773450936423079908590251963104861636088200384228250097624826628566742452622508895686486534342531493236537869659294272495164009329439935560683016956811929368349977472128097654231624444483577633430666429101030555077352897874757929898120173333238395653090069871127337344015784586994615122635071590678682485076465068187470653913541240099452544409261515055088071801665215704020786284122928430703552399172455422523577039374054678391618073231749613399902519976967366850184063465408997591908323136598457203806158981163811081934890332621024190637570403346889546773514690339808889388048823823422593713792567527175159812538300640082651977435915123889858986154636215249295775902891613775550695864001625047559860641554492753796080568672497644943319870744160947297871080165228874177124069426566555278028265628300749433589102861558156464758733486694400962468469202000257125359022213809444647117085084441957276651947214791839311474580749630628334378215650202485237390713600478410982729011644921390943498108034447202875804619742198426007837083919803723870699633322599874755940603651969617988310383104013970471452131543345820506282957182324828686801836304795230636347410422821570030724009030423846626755483118976212685107970559967526246418175188268408941736544619494758625475332664098609488240806379840464356864913351623442859776697152743598080947540953224351387529702286078533602557914712694213048000327448126900997355558485880696580371327614861171128704635599842851671171265189352854122169424587935040799795551469993515895563682909414156339187120322555941669879619868320020130436293221383503935409844064330364043663951897312371727974089416290404764207738985687937815566774509346576586846897905189171495122038539786925951642471060378154262521215523837358701164479668981553963842548556814472317010370427878855104137309316508643220133682506089827208291176016917086112595691704376464670282390615708487773609927035646283583112014441534591049811736980308914188721202471691012411988366054650025409847822070986257197857977903868488033530577706113363023801480244163860076094713344566131897900257440423648145921090350332692181715146351062753221918034484655950837241139313071139462760858703173519904968168676491816243656047283503441315926549570623467492081087057458926819700387826997708988540268264275433180599007110861935043301624578663043995837232109329349443508287618727563100481043083609220338753190257902252784019619282793660702199501886741087297360333643806001877893581811987469688379204125801581218060860393887954930718028702060066791451230542493734051770791137228721643185992155434439560254185516250296484719508631179355399467760623349569597858340624950167244848938027694520224445218782208855676379084273400694965847140809096862300773598502118020191838387094532448079826540994257824849197338065501741467746062501129279173778219146480601472167718815874399814711027979288998735520955144573731464700588535741960099813662075407557344826260383515677165785412102425991444360869912707077611465637144666129329110910808602497676275748965102001905775219540591661105314769947249200675002059108272222601594404078920962628026845753153613516424570995660722582077112845894941850195689196434410304812542361303870469552705701591063544627998346560135656048537459702756858636292556794413948265415722112082044002172988407074205354815302935609822837081028248039145526058260468724420593116372881107376542128101453044416199363769327463661590053791080920735310910346265472195103260855879156787517395520287236045273709683953272244088966440320232647558872235862547126743217333321401661923042367393552775844238222761860373891993484456044835426227040750676206799199812903599336548364611626827641416144770781427657282719954473743899100202950046302361021210020208085340680015289298827001171612505348499429695151280126649769477214530171173202308162506403333508895661525987364716460427166101976110041798076952257061600318807915767590734034904359916910546575549671894370061864901219366127157014621153361555522535262225602675277564701151374627634880709334910301737697793686642530512962847586813958572361142629302739566458987110732308065479994677932799779561425120794266003245190859711460741355039285757007551192637021115903572808539039603334388698641066668095480729118273346927171025433672877962847422189421059755194690701284085301800476411079777092139258131484944628252734180225382090659829351884249327982057754604720822070286616911727312467548401189444421705889113492224516788167957368494886758088953243076419502257860767505137390224540469580018185464671810677490384719361368733971651301970063790461930136008814069745748404032017875502867644762786806673428563245175425716477587855580913653283216812971453264941984463097748440534897747452930112832247114989863079607969993544064335638082592974164529915000102036786313691728045349104069091640384480371623788276742387254579657586019137010784664674209197604046551231567786235577138088690232674725820260441416410744436931521295731681347692709031542267248088945870355035256836370985402639564885495875876930081201554684816891459825158676549922718079018000165005400012969921269615283747549823027509919734825218221130210026039904093029738187095378290239182607406678697281146474026639805697096361381435087612938453847794142842853623844999794786721419401899459534351352850925423631258327856482954013508231414590446535540200786914543035432826326230135813717777024040404761053973057608821710624985358364736443594805669205439533846391261924494379975596969453192453537128634592591809659997147149759401112346520563503478554378640512230104299072102235200492624279425670281713514317234717363239133005461039080927103466886546067497781802461171430517233315293976995153152037434139199816775768984466051544655873875012544651247908217408706817463622614584385697114503241911599663933270693361957383236432400346311856568952395671243455791878856898134599796197841721242836906319038496497532986374122522694122717458876642133674659190454403241655176150966110484806864582355524223057342822725377519007049936297197196805733844149531175096493053358635230431908297283866543650911653009062425104239421536958581607575347711202504088503786283623690008661749604094670167315753857839724146668950590729683984191509456263400049241855452775725108972118168588026429115615958597265748795162794245177880557351867351853831723046345536322242621280591392246029675458948209538274592064361732505860583382551410645774854182530613647371222933987289508121328062299017868332384341639027546916798323150539104688358806788775892241174754201693545633388285177492939583348722502514990065421924521116605901001920885646971226114382677647362555924530953208165254869060053891594841095212947856429317623384618599334257215146745812010947322293857771847103742272562965468093497719677293791948321201799548955373855297407510418129288439181245160593215157932247370017104786990019235634165227793766311392952402034598702456845023832723698571436252152719940590399296627825464998525230986170646903564466815164348628271627362824090252504414165822579525439436302097621656659365292754245622593175407597721264617503517734582290017150697811396062590569469648762596597020219614543546219222672544619308313985046366780669541340454356414965012163757863535733318160272813264050729396350803351613976061202688459456773277069584821970424413866944589354536401107182855812568362886011376567039511846476508124136460370025353120436507777939766833992882167288752705318669677629684491146166674448215739531708085733317828733292485423500572006518506468876214642813677084466199130168280890395285336844261711138850931764029827135868254804356891781892313765630054596300943873895419949335796737651678694204047380314288688245598423794407949996769851534691341973258469394304670497815161985009796305749972190969589149051375752606692810810753564927016490987632449420448600083341163591795733620410787959482415572454542122716802640061874055275833959797243994581755844632331623460240763210554794574503412601154818569923268559864908753584891195119691578642241681736265644996003641190330477975912435631012844657550194413968852130865733547056837464924754307578619588387889953811455780648566763501395970565555366598836145171184683332957575791979597283396462448322698564061102740560521487637834483433874491257644194268100709399843563933534053028229587093037256360914546225451598685329409559014730267873724690067892040929550366827795275570259658440312328854588132559018859317870692363513882043365184028817493963237121448753188003394187980243956454649752932703450726116339701653622008512860958284139238991740438492030555773577506664829408296253659423790630351671324750941068841112144121205650127095863540706797232502493021698097093529594395009079401112151765414830121309420165012923496744779542544797847104344120976459651525558604330842705097221942934809902084374074728101562473048464708804507136443487018438536243652406015480051164630395839838383263085428320701724382726030218679320450855934751945579009171930107195269278167817417667405764975669298203026621042550555428208425622601978679915009106669210819386691276790296180483641849260150561430923311351984822112916098233410832820463409954803467273039853343764203358821364211429393589930175811777008884595089111468749439060856929093914668951684441788720750062123063017222789841357271410450685518938614078662644168859843009643390203006792643836450640276593329565625611181476318023507153803380695058718802130260065516515463701000458771499904090878217759721049264139827818564722071875529843336726418171419118060917902494034190507696514238544451411616443615947132197356388281658025130446100423176995752528375055714187937819357622671837812131251747926976189157747292914864385276008151304170704408443697063284109186153088732604180235171484966868855349243740563630980080869420482359952904059072947788961310647412049548575889062980959851155916223989451562598204786024036892447634553231567539323729879749731697469973496713501291158338957997891424589049005054459492104928882099529447279132080305361463286395788677663407911102390210541797803765588931107883215731403504431795107563909498944645346094936271090035014582774225397442429138578843196009088387585320851308799801504926708701253171440401488896870184145498623466822239158291940862799552147086233726015667507706375070048221829575689500824496702616901701729386244281506480441172215484497421006037236391380839217910556038811619879622184339693435927197331316366210858187974096868762550863448191200594397622253142239735651090151306811259842363501045229593067360363820562190870444015365312355911693663964099288318935747347926717071889167807624449351561542988159897198708789522303190917965923618632534605469093241450811844569022192640657229305770804941665673298002746310726301876174579193844882150766194440341975998368909072453818340729732438323446607237154750175065831951098492356134256402281737575579055999078241812358101955776307052592170717964824268441669718138840023115535552329842564093494594010309788991371732938982492536186803128131999981831073976138943040370449371134082451426220425787003170650576270443135087747555908995380828777193099157664341447778633981420891763755458007391775671621064114690586948114333659436009553022549540290547947055466251982056378726664214435148227189981856799155012095693556939465108535717086608134161797754754566244263991225692864210207333100920111270574801661249144576684308069657860579699478650403088559932102463140635346988943159782814597519388810968141241121820952197055891891089236140099767628372532427334605390025277691014421737229776431589926782946654267244304175760074358982938371878600985191657685311567910625176682742375553041561621686295376315221887668693616413913095688308891938051842887640231342170914261227143926080867565258646783335118551251651206188654983426258505096083911099131074370272233390156463346943171836959535330707508039310759922439278519918915931099014352096692210091888052197360850073957299030837619449980298389719434826719033430942816696539233165410780826793654656461202520055080326472213955964088159142988409550315692458482663500852752267233125298200335015544875287991861297785504611674080114150865798912869236507101172601818669480732356071930971774446967459883862448131569214985013344837161115635929688858702516724323763751612655582017664850389016408135249622087713029860326587902325164181196487246485665541313834777469122850135203521329224559196561739281876106246772288206248009710618911487781591749841336911925235199432497496129730280407087059574403105249162286872701500516112428022453306245207822382456292181434978583697986190570690268479452050397888419610884446853739924322006784710869696802363233719561665387315294593105794330391829123289946642311774861185525928228221568614351932907970283091297111573053435068653489071696342364113269372888285922239633018925806999314286765085235086875441884863927766413204996442220427054166948487984920412522927215001406426904536931791427921208067974578840594467362559057615512447428888397902589666878768452422877263226156818076247874030794925291736501975734554518031911976163902055776101367357316473461371669904656020067960418017698937888086171053579299945504715536361266767387218407412177090465943588881667677407838357219177983086902668779398486015092964253573420612426791410883249296081624677404048873327894550775493640587001783671660043619707369513669296114618874503066828303351959819430023881732759945101405731830351046519094362741401348936132245538431473172452200496249515387825582957339149340913145534129620702981863802277165311164917053185265443302888085243728377848035601688182317309638953277378473898547000953009950354663118181734149826220084569248755018278345831554155790213193603999204794646184180212668284561387797302146315415921891423918798038749758914479448646554343891283535443954824702618315463815885611458053620697996310443287507064472204743566623593365845990310368272752479278891580702387408316303465120294413358700047374389116686633971819992426342573612291353088160912968810179737951005996254123273166353760775828953224550527892659807110457267067559843647791894793324218214095262154675766325303652217079923046542061715975578199532345964209694695749346753608411655075318139829495354873514191554640004889639659125367476629835607536165500192790746589682126506055429449548587185966549060493065014759819231111608234907991972608520545635994668054463497664088770544169406466811736300989512474614378354021752659596674529315777353556524525186657592171049076107150233517784256993746733297637256471291508157788571242456362254733248929824863598531333795208174939469898217525500902627680729200542189495435387963507233329985363112073444349694007833822698703942237864372126400120664072406676805948187458071688495718408445098759919728121632789426437583109143706381290829241556467602405435865188152216358555227913122628086544112270801975866365505484710562015107917001105143305157731551044311972330515076922262022157147720676426627294955231757175134363330479637028966945633276021026073890661467627452605150228315659937005154801121555911791832967518968772088613805726788022673174635328414506436487898815198053682354146632329896421175606866817387474798116046689333033774321724670649100410491741588659510679675053550876311858473526104832634164346720860369452247248043603937479084310931446233244502086955154231415346060810938053821974461349082016884073842711483924386485483776916668275700907616044379657766606244468810255891175279323165361222635236092486080241376080576277177737728103289005173588031535553082556550032170462310143661548105675632530960087833670104088737571264837877906310907707695600711911275532101715418840752879817475795503683882828116425335190289292100529489053069059019883043121446483900729001507458889646827358422137494035336874068477948326395265848979669514233793620601347417643236245363694816537487044096027869947669732640108313521208331781260636016235551163096486033957513389924720056817715978971472394539105327903086440907882201078774383098071196604248824177834470622028763218309875893728970911764977945447618108475620162519804141375437089390161526873418927364869439371416838191448342622939192012691525434366918315187154416066510994265610177048923721605827318610364880686087996195820679325386480564784892085067001521266750900700626414628833610217972734640804983757608346516397637168837895887709138171770502213263683271046471857560211286585287831616631175512632574761054133635865492595416488992909777587803156065702128562273920516386307803478171168708458968223540053292551124438916635656194475626363623278980323723790126326992965077340798945348619122675166417935480987919341448467435913043177526274395130130477904919344039844425572685095826814230757852072176273768508601351554811692657746796888444156650739775408696295896858932619867355161458399007580663040255110976335832305670793934543173935468806151943873885263031221354416270264937812003795632475493876961161203715475439940898461427347451884255674042976394323847630017693967858303428913397424215038100390910793848778776852233656488160696565247709809712253101437297096695459849958669000403334686991494360593850824351109090654623694545452303769994591743996124098351626928417494973402307713157227803833404258846343691063169564900385172252727357266373950696334176137466599346989992076162808794977902238309299939926783219926342307460601008562787170255963142090010482923068455980615899939105485380266361316770783247512966290984169586075897093276435597536592947619036260213554312100148517382597409014293434356991322777827914039582231760371433160758790755340206628135030575407484785958931923951650773810954479169852179327596970148121375444068040761452642360381555524704123154694408165918800251331324063565626302107046575536910716212458926222663401827056620209433820901674650711484983652617081112236003359599722305611084855212152032596932318470726636750239144203463545214562314978008626045648112716790807250840731244187020434906335020782821580673025648944603037233437129005409951002991233772957107549456990546708103461105763435360654291078294226895977042857427453140836703709236441950895241021998652686202190956217487193011577753377953891401508088725558017390520502329023396172003339260595046561113013869725062775767207650331246525897931894916984840770530314407897933888426551135937787147225056004545912318785779465073309693576170372173562118977328654174617671102068753650833827848031589853706584503926206744602847456319764420725763373485981041716030680530685620662663689373826695870951560379950976871848365355777677724535440781551772035581960521219689767575086278580842029767515204858620407608224995132718682330568148687915434368012508495345680526615807955696461248366216383998980789775377570770197731982901133822545546634528436869881931876616591320868921283293846816956878244816181108880002363914343686287166139149204848492051219105856631146246783387719814235459044686226225362074955148356687877699348768923186858098016120048992803124457616179248632414289718636203908366246032270274358157279776024069242887649595367499711238914489547500671267545575671794497007079788265478156782609887466613247936950084965621776816066634590325387361485557191826553793905860049590524904851727632874574421039208383462265028446169965191793202032577832594668924463067443903608324507940349059786396048173189422580336729881929836900094857054748943746478159893673474918347045253058836966007969039059216108787815999981464427566735045552817038450474811250390331874102879329373735554660019209605573279323444010818966741120674389341747567122588789626389576679010627455419487790769796744615453306408457715717438174738302895255028989983300616447391037218470018462402746844846643334679030541188913200221420535885788582610500557243781293849101570186936945685897008888211891401213491141004698545844668011833011966511948931693323319961428378111533407074381730163611086083491391135704465365522569211766329293103140125526509839908097616452635341082201681609168952973683918914961289712471097450444542969994503162607314890827620883962401321556880034455038103003842329183398619119798381588713961890607835182009474893134627265645258460114081823475087637743873976951363683952575477893899947499509027111907791480680567936639279639489358053587615886198808208063177693529360293116003299983261210368431223938037189836215696948383866273968864601028680474006685493769117661663940573188096908512581117390791880688442802175911970597989085098775202732610120274835456618665117624788349157258843739634301330234730912307631221389466176462506051899708016668500896105897406166008309301683866163038536090736387042853217764571344292904986082666548742688761964689170389296901453016771149842554428216664826425020884737594768285764334716185135916013654862258597199983369203732717398762946546736329239220181977440221027864559099963579012616108579227442296238657192108578045629542555611238141913429795564767693997101270631720380187864698591494243907716487505917178465623330204981854285414032479361205006828910945148502655628329773847704863687430784451105439701229581009926897661559336102902131906707838055582266206300594359078445572092469395403668804307734896385305781628288341045912128170961398826219476380371052819590717543588108968889185545165549105404285124700429331675962650602580470785153635379411233647639890813942424936784303540156827370799407364472147084090888207182211364401943806211650353885016325358114643878475212156335646692643700609385655361944376566120098203156105069956677179670552701004473235852954362197647189958579569004760479889242521432575705438513226884318355460626273751999322234359432363808991054892671152669227986875802767428661311265146437465768579437297409528412055942271637480572689744874115520836137911144936476249955616368989462243912017513679333304196483414901071955821688606911210677179537513843983805488883531218818265566953321123559085433005626292201063383245553112622229792618988118024353302545017578415754958068463854906593036142136958638855714138660088792693293457834204583250860183264452970503072410471938011959564134901615009971827330321568011087436889394953926921562880537473170131592981049465985214871649196997043470101153816243773786153333917535876724308335974127041638434354633276362094970384749944362200143675484480881485624913221212489466327565494460870601097050954512477472084813670880835023845684514210937789487541731394665679413572701627207414574914483590609649355799268405352200877702050315755915373925472219943409433921224367390066425995995023791788944229920657655190940072080923266078223694145411500620093625718198865849054532571683304251362318018618280570708100723961220443817976015554273997417598787850153441757468174135750307989792197704570937626570431947472068793244726938024361069774136741095489100116941738388542112158280427762330269571901684461278222329125038123910965626707739702815742894612236885273437497622872446135363248317804697190896345504649612825609810043005277442276448417496936839917112383590002461552686882249752648832456972630391235441930004100180998484328885764034284555773318242826957835662352635795005819348810115975608373607340269416060077112321518012186077636279516450902667750623278401943969647706917584340170431622019332395436624800775693760330005821640852422264091419638358757670478030521490711908365626439559074342729473842310324723189171743783298632999253248075157096331032896252078124212854050719680001481903032872315462019897967142228706972121884432556492699576379585245899976847107799559921308684203478071282607503852604365786338046352235703591940686694490381504355502980189197652561748320352911080792552651327948818233924141499563304824859152203578501894948900379065764209545743347595092052203601032030417399496029483520866727886717938294671575627774980682566453915259551410357517458954542553507561001870434951793638589717625410959406230742019879118142127235661434880452811460969213124435202129854365390601679169154757637021476197465082089163204343091460063006652894836162060063519421015924064405548445786018735016586943794073196024183105663343696444651984046677178447486807014717245510402828909187140270968951071109848104870243129183787539436641538552001842879720194401647946065399543509026554899388071621513392190856027611888853964764382488177661133289801634232811150410461930396632534931278207877762400482263073641379587717032646481304845098233421793362339716909216979497740156875529618537859729678784064228363615822869950320725362898433517733646843747720010118010598950643814722258107313276315363215374850145372275296819704660366555908196196466664872995498862375064989606078393565040432487101852288575136818737253693270978025758683600632222063458463098108392538557825555363616290687554242346922535415636896942378766741434709564061736706864993824491116404867090029581967815412355835141969480758735501265313483139241861327122686531895234899296439307509914287404196129709708206190298817271650812711572059878998278288087743445307085670770516528734178463528799340302977695000536093656478162773225027919677435779725977565900681656626291050811618446673148986300982314322866717251099733833481149274327884345384370711078557351754793180319428020338316971574078862466718856937611721950422911575951200931503236440872713132173935849618541044365365735784573790236082613321247508963370127972803575621990304662042689589346990583825223332150424182784976864995434267922402610617279450627331104383172302295407343009445655646261067577024678081422529914982565371002618986835089781433441912830508862813764614720396879506125749419302425238062281047790930467703222966634222130700952115833875022567736626528739160167361464150072870186311206941035037358754969689768248299065179297478911977979206271432368536975627066944897351279236509943531652512075899651794404228858905721604247507477502994586043406086718992211186088032053765469860190352687986997486872384545732782870483433379738460774646812396702950331941101170417048394871939039916706484788130375873315920776879390800198609109290240105255961645414262018473167995438801329296274364775054342201811539754482412883964299349083673196955582084221967534597358608081453088273522778225615014999319394866110465600553743755681485072540616128251508688142214529118983159259206356067361540045407192698926982688419935773852127003578177040014897768066196982090416110931624351218673001844979714281708325740503567704941876107264662606017154046692614299930866669495647466370969323439542400103417991311368530020943701931733582213811579258101189279784155736775832251207176930062978531100248948546358264355428854831744033289064440472314324613779681806951244966474286558263582638957561195852938412236547215615042579624323599089459186451702564719001596390019889984078521286557457389924912763493464827654295117598969292977291752411286977207842429113826282192696738477029371540999675847554251735317454055435287719811597431312757727360814244108325397628082006905322738565391354990808183974512770957941059498370020995254305134895749898618983235633137100999453253089838372896679939482972432807915798616504105867358648948731789638480522120256166652733151226406006316433342028721071672339482364151013445064447069508277054210712527037382982590315557559265368016589739750957073033483254766570152041929844619133756423950322991328685309246430288262691634328314917405944080417121334974525937150358552476933466295445076872603535097452671267952569311023563181957173272792890721318553516129790894964900153746158868261684617934382804354355094490985695048601168098848261288606119680081666403024691898193005464224886726600640141649491007828930375023841395192621867178204142115066969686062827469280587234661080419573746424806233270814309321573820352487906379672222239895070188969004229465526504413434410105151973080928010590398154925669507222997812131269548961228106400313988833078355283894231885694720533888243552270161355903916769141763351244384509909156473621455944331178930441181724294516412748555686895576128400486692592419649166333285673784471296592249868183117825761792862579984390904185350449154776312960864589482542389293539093608702088049570677402778389219934125743216611353585618350379903986353409822786817776833120509640677220338091954882209012901673969588717538013942678150728153219873485615839182048631213868906714051171359880490603659625303015316365777860863754887951289972882998010234491953411362871506273976993600934864067309178961759271026000202271573520184770617131169606431744522586242819350957864076173671195420106544596156144829225011409910400641895564161335779685604206488048428750907533955046798485134311915194666405862023834840853983679922952636267118323889354493757876638750982300826564602054600714203527531976292416235762326666486205309455865503961652497616283079402031216970602641632036302028172619576818847603542802083215468609081856430790020758374549069743726271845677792781160554348362356811392817990996325710313316001601214805288834133910223356674333676566892782211665860522483917335258834448102150119235008576213707446804433091139318747217049885641958409096570786557184266381288524425652044312988752080163195953131932378664937779746712616830314218868856882411603531780630223247811069795086049165518337643473939230521583959905460251910579351888664721065469712426310269484536624816116115019066342174449992342466910274693929754499287619437834550880747906479339777520748496646601023146804153822252611585414994943243814797865342466380615312010831987951413748657525417925668257461692501647372554225533786711891383731134722046710443943059972650987335784228042095028033491032415280828301408302873986299515419985332456187976927477841373763663970007274798680977648077495858961460829980821736068964811243038211984455665786590812156738374817418595956676882548363220231757111127138944457179123069150061963121300301493389895324485877323540762483822238860558318148032986406212389916600720212878006371966283620528339800669460083391637029480977658154706467175774587820864125496063258246197826826092730151969043222463462137563537411777604441169539075400563866690510126910813199175351055774314712535328601489022300035067310899501574199524871531401582867879370042102327041834509176746622529596895050471351116147410278721308301938730833304531266122855432671333563813521940432357066838217899449201673005232816327062849366376981706723065383688737303544542937245981436333682938248872718920606779169961734808276722027415926184584003518602506839247021316249290156558294509162606562580561751170984986095804570568432019622700851067200503018193397742605879049716070546198677113164332830466394337069045144371176783837451861362235920241261038529555132451688093963980060578497100266247605330057933479422934712421465624034528072110458667632456864840205651941571025601501778184096064951513202852737636899791591591829601569961606364280707064046841422197327484044438921548082861811240851738998582666522171698090896546693477541489125974119610080077406776920272814402550451249681512680610880563013071016392745939213825332115757775113317219538476688955583003240541473174873253531227793036231731859193615921500767902034023641005475750439857969181937511589084362065897766593380596918671484000107535531190857205336270252607495955421233915256479192857190397059840259043292032660605498346028922117382791394005187131542974386211749494410861282460219424552761012406391973240866716322651616676841446150681846509249118447046157253732527121078981299824785530843254475450167777758751628975870150710683469921521182921197604724841172117006398611069358571715667261370684895053642640232173246558517740603416222659415129270097860644973894593646884503229735745445441808807371063267257672470062028682640672427276843034382822005427771448851153028627299960378484221884360008210878443902292502449632750292278097596166072838444707118287896655699981131767660738451974471216612526284952058588873119659670278608960994426643846042685748601954462737124088562667856948199205299013813837402999070915713772036087986391645702414178775189315310972041979944042070801427280013004103275040786733094475742492545473453137548104732142672131662150603581171066598956257925013489998014958961437151128112155608684739638423123035512361805048762926543267121776259965806567483192471580405331853577339216275100639959465130466060168825662112333184957809016541886181132450179748751587720349373757876093668661117128996603528738180311264602283564747876168252930356255731777344906987778866376532916991719506855483108016704062915515044715680448765472580425568814644987030985026946593297046795762290743469998675535279115388238966489836120129767642785073583459062123632200726263946344766121586587260911457842687964146358119532858969771005811245256364674241699312604576616053293707758417094421331880281291829317115012027174958892735885774040574645321834839141049257398970666192456793757429351199252309115130397395129125212358884250159751076117997846076010033343061022459804578132758195233487197030386659686198408468558791306904741765491499094852136963437086825293292827397066002182539708292493069659050563572605723455626299911557785201140136756435665563535656416288889256854672492279403705218508601962330038037375579005636556711855388730801091816181899831000739753193253023768241293756838460869251504644824645669134918739692554748632281015363250731658049885473428287926835385758283031304093160403001996057850062321738885405966260692532247094168822073304942935509979335086162811757765753557787287896454286564865731687655417303069976318135766304979143643929244205476518283265383150267494306191637282629060340066843559062189699375082606823249043540255521509046130496119742543121306731469622046861262687237265300795864736900190604903682041265479142020432714277802094772035757987983718392648183597566485636729677138130526556828338809612302911933077339211363133676182367345547776640010161272530386379609306970692792902666408316172250230313756927165381173915942187045034824394726342983498040239617896068099693861984436888515198355110607063392567737324529331785833237220517037718754029834136478687811507624599918815430167475790473453661814657585253429900105940222675437771535728936624819762561828736728090380580064674653495740984024581828234840299309376051877658887886156267645123065332173703802359524084172019535335371487575909433710610500322854143190032177635868969492814480864770746289745882920417931453289510641273832479216431721281034397108173181366596440568452342570408935066951451837364554118187705438764159437223258724586420693569577860465515630934921004643939322573286036268535476706892664078846937160959053065487345465715475884882926030464032686308271459163580681942165248188645825377896192317647628508864430164661725300810075819072485335639346059824025843777297602786557459127880005179848134950025031263199061437598954543070701135215642338164871583394755970508707041969015253828311501409059313000200057884340120042353373285108293099134823497749419036928799543617758600807168751679066631963619533935202690921542611641013865079990034572360504255029967773449667943021106600470105945422349851347601334450472131388331416330475406486205784012806029648682687752967602158522324670667070592058371085942618637259180405811862475077591906833437062868092034694332001765434030565185975351355229234396336294940839054595491225683833291196274093751044787888764896074967868631645046078646770936154993695788197016614473143295361275893813673661634337013784749091320272791737357978455702421602392724911121280836930706352796267821502075694664536323521338693938004198010544653215008682168297133509150906921851731015708047124076115047363604958191257735443973785325549550373575391558320906904792965619193608754916069059984349369258454863313756023553038879511098969220096480681575505814175774106792633520697223257883793612945029443160310518358404941051858152050912366271147974616999837403259289127460161983987125082132164950197029343689537133096994697543863449778562883006831786918681142048450889503580729448724980503152482986303035642596775677113282555435364729981684021438580833700876448812434682994583733157022868367600503319133179961329989590551204601711064411330142557581489113486468828993872723293564528897421991735729640697505058945064499534405961180361961196023080019839290020137010931313974327706493561664828700346932815015428622918179418492624817858750397763685057358744807148349600972934239775395960971791932947066291687900857764183754290618413254302188461502967795899100344867466527441832321204649992138794668248849053165974745517614872014495877456660682621386399666666264621009142599915638290588478846055176101823556277005540945402735276168628725598046300127660037982687094196625049858024716335593720657702952426059777657620143186283925037214361850038464469803079614580909370507659889612601529770548875364440790732477946788049626443831829266537529110552259153934380931407605043036822855974155226161385335990182190614788850768752985137312354385810883132950624557919003050781702875174590254230320784101950441990613897641691885363360701227998514091956276194087284149785459990208198403448032180089057901449515723441800817615611642261592703723889549629231420815931289679422209856063187621632276098557198725114112402696534730648252112286545773736649838807388518665315297404420351024797077405091800576579309410806152484786864443026886651503081973580431428605883659447867737578481458838589034884313976251335173345460013915150914682890666839120686433061593167439589734675939719458555094911943737787665665503142188793216301346792816086059514032744667263029821008473504802203067382127113029025555283998169813891329792051901879760144633464389102633471531877569939045098689919584449263410434240941333540095993132173955532927889962561855159217721684644502613807320922563188519857768341809884468716788929671441602915589457973658012373924562627051338380067232406097472125618821673552965791922842654504813042222652854766989811692873229027211987981146247909779458780065992856794240349294526514041740888891202220186501620912038831546933485956849131798917876721454587299407379631544191184048542545685444761374331330953164036306915068129296237168953678114200325455851360988780758579983373536448915334845189281841369249765146659132035719894394616130546361241725867479589119247940339503531561632820678769050363825373070674360353658057844576191737593319317900019431230115778864985275131574053731557216168124045994947163445756407705740330283611199200649270214004602365901192012656285245134519427051573955370077259635338314781875774597867944330673880103232027268091815850988698281015111607533906334472148363361602823504207044138933849016739206406489565896864904188079077547716826344783096938929598711630598780992731928358340736045841643330174318629218186784678991958753593564293209958953854512468054477221159198723091377872128218766785412676301029021549435952357873838372805646579219262815233402022591200035793673357656737926281098066976118990061124424747938300463778094421631554814744759391403769009444871245508359526047129604646113766125556621736350514747953609401038288434762809712476576291877026094320025094677387589348512392274300212093115463886564674359729883600606500895775738879039823034245974056829614016452049021657996935621106430735094649158646920088711968803753486747544896983360441756590411461436552710974161404024234613490147966077748429912894093049007704847869478023927883885971803493779196813631952465888663753601066361542850778781258881119427893541362463301239215964954926606669640744120939969128400471565255470905040064983632934980998378337178495855951373052475385778131919068303074948152443685455464615585231625340907886121258594639576889934963758458915317803720733503619311485008416797508692040572284272953039872412252031381241218992385771688515895986120577585159273591085319003136763454666375383044175431887974760148460668599801697034687869016784619717379119522600843941893322364400794284890830916110536296211025988418039720892762940064319594052386407351376692463101150669301153918659850899290706466682536812502400861195892794070604023079486232827260695854783146225978299780053879079845308173381119834580481420494250593986006258290214972767889538734106837928524829933220774234756547805431759310798592158017032223281061694868557251234427700098447586769404067170457227409179549938452190188443946259346638698928043775384716822941897382365822548581399637688243575848144543293213166168490884466963709839859582812477159560442939163480825699576930696474807077702146022840347239766943281711163331958791303749216564975280171986426776634025689976025123051100052882467179842755753122562799534894165456135002306741053522794189247438231779931282339168138519626065077523644874820901715345799149953922686066580007623444919965378025518129763892380348205510690302232257518646675078805730277189139107584761152311241024616454255769536212002222113399721699534072329939545026646574307838063086802281700346203192317186401944432977204560395109717617018428607329695798068629338500340944388068422305503792342096216532032282615846687053162089485855455041408309199049348827401973587844178378148741146101954348459561345157742978940497232516918506894732733884341860000509530000006226857001136140072034054397192854517567375830684896459377842835816132480249376112735901777646022795959837010044837059258787993505775997637828171545379329466963446615585614655499957845981457778646833032337929063238342492916162701190748115037357909667089064454004105833281817361429494044566704411520888949097356255541755862434040114724558247599998158153435370916094146094575706781425490429524601148237842242741884391173535739416036136483400220848173692919547234068257293578345588928804892199412360183441938127867923604031395638748901076876611936868944840830954000750540460358218379564557754834116504457103821841130533731290344210318606207680183616897692610112836926863281950704018188604797337377577054427022679073789306760635061224992536677383167274421053287742691519504471960630667748262130151104368867388728890870351358604938370239404612140452737744082180958333107406482793271378137660153644660225090507048858059790485836125337948725383009516177354315831253083731285350849880770270416543927947960407866414995286900082849373523790378347616954046349826293141030541179961307071702119127117421523333151160627196377036336175458607568041247061066624057218737623021076094948223304225712278565539222972318810234341511459604658019227535017585663404942210633029241573818839020954654596518496231326877609807983120057941756684499536855195249997835800874710751940433106517391399251492515561810786508899313275951247571584052837447737348755586240761178835008969991183632799263882030215766592197972062438270098197746628733595140976274891917782581269029316711408647270678801447930733842629604762807840844793292772780339873794179327932156420979283480072696099794292852577746234037596788390422514970538913623924296652728029479556301493155549304771704995721627078056719794748352527490922476657384186684909381330246847190784046962323761059972415929700460061268287964835438573547084535101401314422972324085629212259115157105852272965178931968716649633093888629302598943211653785962893856832315554395511831867087892606881044240294239638820605139898288688620450099374984507558186369773646320612585791295340044574338907617418563783630830105720358350849769871580130899239368616001849263213911710538599723111102299565387712493622187082833712127522930085952377935867296639693278207678007865833172869688383986598590315370404849593019476869434574151921145464244936476554976368749620282033512520558618199775583054065363432909857283605389197088009682542929207270410234041357935702254163666657431297667980952576685704268822446688628342267261842049078946531919485836036994210611152208544327023585755717957981285825037321220655079927410729046350606811863301218236211798420163675383511371982946425594290738185341574988848859175329703174339722426637830607603777523551761519040619712305985549294607717466538420706312143998103461996386520963758541823663009535066959680838385534976826374315390743895703275610032110656515898691974894290405981129104311518394279245330107220881928490004803054590995326028511252965747788915318684207034112952425158481910472424381108343176548211300718504327781379350140023986694045549361449316625145352318857933380985877925702557338862991710550150230906822914499692358967683225249978706355754072919383782869511854557262648649130497055149168951428908256269810188076884963482683505203719757693786964392035621577326401499142840379775041665203552789624114494770399884750624324494206861246724512909712688024169046035199466833803882764218729906104835412655488545150880152290680921743232676923830084847225207792147068681312551008244237070603286290407136726059625189138026623026119265056786410616169080643219111731926314039732752555791132097623075538586801811254127259161210493791653569154833962114630188826080272532696934644395561766994737063963249884357603026438586668974649372188072058150684575720758580694685496270950570129406595722603558737351790669782385739331859328022260742454642486912163279841617257358373143485478890618435771041865048864054396082224586382684083859792008273422406393448564344204351569216948802163814044135106488007995830912218242939619308371606136939326386896609614608907521508937182356675988520614460481258269478491608525256369356254401687468643426733284019587956000326087620873838233488672813679135688391134846703944311314548604008530311536060571768260863268605755239627397641649352281184381673921995881735530287605798716645280749421476724190705982474943813474261866303297407557773803347887874256257106173949910047380683143298476956280268743797783123882787566202158238669912144344814760079615989930794203869558807961823938332017111529303264503528468528744818049976664762818035641657795660489917788621610879389940115134786043472683369555579636484432812759940793451948647380825051470962302884209299789478540669257223812638553033302072821988753488306197909100640292355652684089399218388854653553286870224084878317983870391446866511214896817820869881231964191340790321302320463164253917486566504092046804161304238268702689245562222921191984954557148359037121362565237403217597750979118462476753517366141997616534553375594491502265103967119426497040781741001881768123654770738846546796056338596570072228816398643810638551183162300983977428998992780042294200646506190514212879953986485160463388111810378091219277225326364329014906065667924377599465042630304208917075465612368814812339130930423663696844722098034243681840318765813645500419513638358625500455242940873290336628226808676081441322752406046608924423144206680777959485749046074181216134157798789701181419020069920278983583154398019890279312124590567944531761994088856915461816313114532386192362564065321073158762798724921946759182835928048355747440552171782191759014560303570635036297927963645817550370107082273059544604414104260626287664484403408085521463719027947590097146512834766278394086921960152239216634776947931931898514393950074304560864385389029902266510265789036079422738897304748515266451663973084745254434298164430340529763476073741217974570888476698575516083380416852395579215052727108902195501768189721088620073299730705513341663953224462030203107299910556471220449853563675679304698098199679209245464814183766639776591557722867663164422770752681210481326864766515206144120501797799069413935811900174651812738879263202578732949314588620887035028003540247073696419493809199107043248088087784466929528237478540965919174861718492884960739809559288697150492516327493894449711894945197669576623238061113285591372927655433458232874561477563706601238605461129021175478019416415131878391257151936986769473956193810371656577184651644488440137693991170679453035422414656199719016736887935412099542430424057088057320073878861129835467544432544492751364314633226746992147772373657614872573677110981851187124738034737164221153504204134203108554764613763350188862398097961879233751662400236415430754215001840659770704153691794189440725004328909177969807707229538303091887551107859540548683267823325025339218774810180329208078970897895199566152421142441498382278338034763656692583784069034436502045964898409970709685340000859082401206095128359219598077862698570040149434723893262945288543155332784335759687116174584331415900545892347841084032030643530830851379558410609261873021197943685106017952985580028014953526271862637490854281561021324505434841934193399474609069561311647823586512276859370142031197519635249250301058448285002054113804596679852365362825999229637827677153218250073387536988389205606791749872564879312625808748660855377954059002882313532225915036043173550193111472316770693056527123877525628963698171959323048529548467203318170874218426761832987810177161568879630970005442326025553950711947056665219712272562807457297712390687595647225775802169524326449026493929041777176022091693016840904045248674799190953176188019980625047540558300281811549597152083286069595794828864948184686041472160925047910115781159406595797588993687560466974563081532232630942735273173749842636008513433320475319511168630477777134333672717340102332254678558676243095464700139632857368458141944834923993541281710040165963021036026608879461210542828554207470885937238135481811157483287481264567055827439908642431327279216492911542037839962244218055699396752871188116501573967689723311933515520464996728888592440825398294163302689627490788235795301147714854228346168801874611162070410691349628608947644370016040913773282884432523097830641814738044057535815234040214012715592837989605533713886485728727774989911780554681296057631422389684746172055132732656708642695944549177163095017731346082502805528375143241923224094590661034894928281824785772197989670378152126189056115170081705997475090905359135977444351918442855268376081320508686511411183667964446344691565819241243930113429676616421471623008402934269426706506695819338794828993985506812436794741123310374715161332194196160102997570139678254859738338244016513530125342218895824360299762720301429922508870488018324561147511714228696272559797937017216005837878848989776714166918295427664453729167175156641613187097906821054773991694985503539465862553533219465116697731081790711486452542469622644394896164478865937840889318884575452219883402935724520344421764654042264432205244300644267427562357634037967185352656397555676121512103023719406595846318489825768551649903466420101086334791782410072727073773142967566462355240967579354163864550502385526376567621657122583931555464017295494344328988835651501261834598644585589358485280129317981866293773142548797611264802122918973225290980237108107103805093530980912226948955016202349283774706030396196539519679849767876993567350190009605718186667089440231403829480526038579326828730448900461181455742395922809689203543725767040141810175762763989775628618998385252016611889940678730600695973308200601644102605153663712855827076934493231993402857798539746966669833550317043028345254414552841410385149063179808997537722845390366751677781044498261908911094150609649993011168219542286241710356113691210238767670694701466851803941384636937937040987888495157999552391365376881963014077904690197574681408322641991457476026347525745952623944894056202006226976028106556870236162790493929953625862767256452892736638595695483447252289109891111621190920988318006529040897451806634733609246372663098044559313165894482199041220703507733032736849862659071510515818659283985633386302826382845325558741516360015237631322759860357264642557647244466576169190337983132200243935944866543244549905582368269331573089464453624505392290658400040210020060826158451981062046034941754537019771238338275597475539909257311733799118580476271988091006996548000233447984068138966934614035443409642807181406687907033859902243516987565093756128521017473448370080344087228459118448734142301431858609408537556599573204583176434303893979075426396310169482596410326181767699658444394633184472547882837128454802705540993128632376257394767433691996024990413254548133228300578393256381436695422078119303341209851813787210373126599210073279169214087837833397519197716391186464836705674499062086231533343706150970520982454821782873242965889224680139876740109124764239080780702360762207207799756323651351973774052471797847727737665156272541659704259552401176260042858852294009131717609459313166299112051592242850051330022437168325731519602191529498171319021405366622573148135435654961234897406564431532485787851509626269376727846223930463424276193780646686074135742722485837115486278182638359816575942531939992974327690026099284664141375020532209441876158216771039366263654737570537741557536568829306683163941056952201549294985686795183678108946149113079400126478517667729421475219652122832749847245105259847685255364751884065554143853968781419901172987133200226750882298935901544011899443131457877659244080301623615146103456350699169340704740116925419966757821604757401967234390934743193272469583286736358304032099093732838503441261499389317202385417551130019327271743873355866471872703354752500439319123868228896526837992666429549882157130214805850624968393679538634031107770558104092744179207538580877951974814587229261574633748581799181204009394165837186656932670370976274786581231696280010962695986142033524987348135198598377302869463947922207400687020535660431594063355231654940846566894533754417682383158038110473973156948636814096468933669538460892352827548277358040394157898925266085990455926855895697457740152172460361865522915604235795906402458015320861483697033711076731588248858447971617771477372829318218277909390268714187116820828429128394833397093862828576115451987675717203863872465774439342143842502092249096119207839067177954564209975361932969675268857555192570483828072776535764378588710006605094379251790193698801300618882135661800149786869543393392219080739977958153384238549669026531045831819101180341806742846632253519450088701042226462464626548194489402933452572579647195036816951617195186341410112233489915283159094206403523529484961158202516933387073365332529373343696328273194990821241722445764720922753584297186595694550069291791838873513410377637751290302905754797437379240660656212958385002925234263204042261336188585360547391099281414626894771361195079998804025069020595237710873466030021661299351544266055218045554208887970350848228787583094543189814855747641883249380007427275360649861987742410665194114839292836360559719589482465072699243007437527290741848412762819064069207037163028339479864336243286717612107047506186621662888537045122536672900375918387185448306042081949491406170341166068773560757167248552882575046401964825924314880210579736166456817671272719734602410899122909999023302648971299007183424883835378210172591690131233079767042366996288870461268595180932835801579475302228204709719655461891667944168648935982714081256274084941422997334611978764909332613819662041620664655662894166875426106151507355354810376447842352275484323946746749333809291253857389460699221150913777881440151457791474705566527134841888574702112871511905595440501591823230420794810845987760521299344154735146638256954954952425093926161812928965886679983288973278567750221521101717897264108435365605785818829848833454208174812564203287552411659989720608025097088393207831237371801976449020956619115769158365399627983249563598664704383885051002059348172954025710605215984320708398102662501578323853599443683882396293279358912703137879191702268385985538517359730745314260402903608227538642506068169987179958462542410850089225592752005883643194782961632025417431717470399859523218510161887551267240760598680485062122306328901560187169919597381465562662723965139087348712558261594919493768107834849308698529661275870463953691153474608379972668967356209506987645167977965261304151395502203197868873830936731401127192301685049162610968599255941728256529964446601274898607285319924734070960873569870617951023190948818979887826006724771536639434394868407162727580948219947965267509474371899865433069803528857050548684759038349874909232654638314695545014037361042131678838040260462934775825674461817883560021956830280010776143473700723621232567036759626202250663252820745099817420496135370040948621956120021537482485847493771553728864593560761019208286609924038109323175953276630729190395558969972981031542957247472608479655120158327786198492765544954225371210240269994372792175313804200527485142729960207170312880783480408568175588593038636311342613954416834060822731500172621254678573823455847575613693783990335011986692279695435892158801477579503270399638115438815699163669412683016906474462274567132666061863832191068139548494873620490621965329068616204184512097881357526551539533012865909548206395658663944739016836339168815181565069006637772955857535447449926653772515606882011931094548118743614007698678678124736653794139772362344783384847211627799862027436012716901298485263677131768457420550228389651590645107564653645447793806928083570641838226150511961245055175094192243870702562208259750726825807729544913072160724897139833569879910073159746390986819241736928240816307329079732849606258810130834767704014572716459665785035229927936072672677736490724407499693055333534954959557043899229784519506159448475956191905908996348523031789489001622422237780680698079620346788862711236450241869597994420318570996093188749678596383520379229946515050571255900560870759417981693419733054932727400563498307011317668199700103514802536760939170380920975354514981082724053172001339729135009249205185001365899733480144270578629579297920193530875488213887842586703647336494072880812128023963981874096229132126661303725218658916090711152088230581533365111155621864490126753238542696018800907333318941149593890512162174171376784457670081783398940596235921133239836638157113927660966747777319136715143513828934635761925593447924643362092648463848328851130368751747430422269795824794768985824962658052763928558888703391922826150338927268642513461073619316616655419328119944477177027965675916588560270363642479615518043641440882584044198366894249279423937679748704031033042154392890533714628661814915136103271097844342899294671698260228840880786654378106769900837812198132894927546072228521869572586542828930204773271968346582654202698841085599444102117599432553810769986072583447495546669719381347168614681758055737185953047641201623760751935677201437665912892073777340028912993700283969455220047158959429379790908974031902212437131013253689405920934726002026960596138325625436214477402576347511358275008686167990295572326532528987300171809593218457943759572145132888182328399170204556806554539168093307293956969002142186752426821088215381495242963711109720150484014737488931466125576615674272412399707158731376080496934019965835991646978129123410370582345518659979752915901680248776281058890907415010331638542664854454683487786320772827313418108072289081184855528045918819868725118685736768950306581026328776640613566837441040041831366652131831584304577660421618049704193992803483623227169093387622039272026425124307436260036224025414664677003853013823948341842741268505317794989359514093834355671439779857416550616507580771448752748924626436770704554473327820196216054957371613949140525790263538928145114116926476758502804818303590888264536882717390099941674350609015837532723747094080917403743996189741276951879983835033060433649199243939944550793726614442373166183994326045866166466598404099473235362563111036367535050651246829060092831607044634315467549508314121667907754400945778054288082543711533404510184215147270219940985752756614797675529772772091581385685472033174894563368331313216978353046882384028530686230551764043291890908473147215379514861613726402993259250558344140365380365819432275303671452646411872302970702990071252504707141660005737710226322024043017269449109560737345827823243072536002620496860148092885217218072294741595170311153349881159020042364730672073147010258884407588559907638357401955747960489984328237452288617822175885584893011934705091799700226251258153825488001592635240622424288584491895857517502975446786795333176614193883540273052916350814101735567423453379356917412118719525440640059854713141919088289954751059223109032586400415950899650131904117214891812222615854836668382901729906315467525836665580777093426211114100397111238239323885763444521426236406655747086093992788613814880529298651488004802347465639632331283570602355206101515106621280860429552439568064316974844253944954130046850870532270286925097790102545806863566882796466786840686686383701789738695521126590106428436541245905745501290319264186991645625892751641435436110171311668464446489471954627674492074082852467953978507649179984432322324104221254340119592477265247610704315036429217770411610316998526365536914459949657713450414377342263959628635145471472482090306386989278132885026343709598011295017771821977890891814733622397981467188283730235993535051217293083349367525962203178747707999793286535359497444702840767681927880552528333302726991915576212675574107786309713823153996379823241979348958080542555500311353605289610849751373658157405592060691028719062669023193211804956567701175850779349160857662096024079214318865115810127333983713303003468437909638590879320744475265570103079770632642630728001253097506422134367581528979225627182767970900863636910352075376287709356535666054508462246453744463723616391021048311066262906658087811924958523823947734728390311157277232905392317757714354474090883229300914900284445504716046559033894520139502375782198289584989215156761812336978600421369592672480779468328215844409673634426316318592947116361234197176009619972293091176692726008590083471600038178613598009046965841843175496926721795459668049798140216184316947710694497191722304302369702965338215593070949041775674578928249219697206458396078205225740398064293648403049900963916478304674164637135811405435739306401935755720005138345700557401472410197516519208648148345291781757127180481099412556737468965735415748870079889020317278588651207100978345764799370017799605157624970071046932932034255658187958152767761020800372594568127794569637449857312546199457374334999635906486151749085353500745260219942405195161286329057238436581178397141165787520673921552036410616650915190878815819383904934065254781139405966952026877364945558363082813338329362654446201257898075368346528822570501485546588734971245316384186571675536776541618715230773657273488827495743545266184071897157722913081388019325873533117145779489761538195294547079752458791307276504140121471395369580126327175079201512056065286379431217018969776951094887283357156505308253807015515164160115233330018412274977517221225221990069237576953616675047692483600576378885916088660802421078624228164964150344668572940074978893538129747229219883189309690681948717741273198029979392767750679486340819479443128175942206083016032676800111739223837873387168949594310514013329077925840581719657760671776990685202233832241100490629020277195435129239648902763741607686904199498313746799073166224783826339266310060508702616601284071535079853926048624606612389239587864883351931902465070538418962442237256985635904922499288873473875799408412196948381600394297024263828675876314760670355536739617988301521775278317507828355528147250625172743405071890152753807598569259682831934394510213688276828364638732265930200220273958101591547667297708179052561081774831815636002574758500451033460613010386793072353564695259090077129356627773386714131026469304041367292010290553540895981090664049613939985781981160631993138888073376478452785359538439188877362712361251989422393660239903698075246067463402311587207631902614565571672672772847377136539913304265600272304692290695569601098480536408540065649643952933493259718917466232689178996462918301101606187781166303765744384683449173441251948084484581830030666372897441675083627401448902327297623145806119006663292353004531299746038299364562917591684681621368008142834434505696145955655913337023089823204556399111954172862467050161026851869183395333533317026530643474038616478014782769106955417175679150907419937170155151666782188924670021171938462888883062258280268282041208433024974506698712620837979190007031672549791352852223311569215815878146919524483977140881992018658833620248953008596097085554049068985105348272611150993398143301280152832210306902740306354260673569971131945864982042777963106279229845872514811127451648913722310848774024706638633309383619603926764859118159950831718352962883375676578840716559603836431275561936708399181698378909295041576703333182035635221922031978654258613197184640631749197537060300028629766478835103303460285417499696779842607777506988329785053890616303541177180183384134227894379049608451154976915437860385863216239984722951318400368422920746686569399827611882529770211706039152773557706258203012084412520319053005762602226169266371899825960155106402136729945577261061786819522762224175632270864837630048425166567690472298199112576191866158315274467289473341075213178535661564069690816216279722876391610401925109288294489397123521158125703889792635074970447458328193041332878319025666292064681881469666581129191889470554886050167211898287537622899981549553163316406095987573935793315403235781208421274565945827187910202750262167419376748913170611427921313956999344795641914855449098700809706544310442926842301368242147331323113285591278505539581538065037052965013067435913441600226257629033314820780324986217251247531505797684440109123238339895806612881312180542192606118164589436545643195521283215838386755310585155411581085893083306043391558561695935787562295794385847404066064246796902947009200870021190078577085101162115094800026320396103271766371763760708642823026613124271077917133972631971176745125223627841921933736872782519955435022454046007406733966269838587275318322762440318956811585398590591025985976348682177089349421613408927711866074159185388083775124254638903692909719561726721117599303550430728245105458498657187104025037920761975150009197840266189903996118122177883276638204509587137585236697254957068013085200987712155666056438429910119609454170591666772348003206755651723429608004367857462360925168715684293938465012642730100144584376597828534524554319156097973279441149680563538935562556838845702023824505261394305071930324537182887365685786081447405680562359553765863362360212862042788783209088623394286244854485342228719691001060895203031329945885782645206857457041778115850424032255003814303152132654467874632680825998673881139666937082760904866216509756772692402414585346322275871133653165573037571857575150319255598457140347150968534884154724805233815259403012534973968163756840380147522009073871213762311346379757614153737833498213412703679275135660374274970238737258690977383047414277607340749866297341499234034839725284640608367881157072431167512733355922848015138615661660747870540049389657893832338936787606947634282298416049335819499826839891601942054642961957018398384687992386175056249302922608532426996637209614703289095520684979480990567272075702013718604928775529136750987723316765648583555699141952507644116128803793819782929115762236254801577505062583263481825072913655021507719080974577304363248464455155484531252083516497026418372115376632946599668928510048465973861753341607393436499774363043323191229493014977102275806546599636266358160761904821628231506476981813352300579256048467745916943690289934444340855317841280002782865088699966970721564235130626119750436449791371953282786037031544001664531581362488623412255382607736541386548588007112238247346744933376979017936564200605628903930189029737813702383083442169515071754687713938753063110568266990361835545795315451579558203380980877792463798960444217246189553447423863989529439869291871447413146118098561564341192879860836903148479346720830561314047982117524075132955433941125985332808036797430601077034387841832367202622688278005877042210912076926663269630056993343089071750206981321098589748319010085434413024766097693540812257781258001656181888129606424853597103317145153296187689461378784318657561526661904799462162015024962029843591913225996097347522580533714971971553704099511236621280758206281627481827418558273237268411193579838046593742267705309103945449356525554960516509396938066951322544829030570088995111002469507308772680636202268733299006343771031702016958738241490572740350457391656578470141591320145651954903373978992817752473155869340514330285135605584918884251973904178745423290799971178322223565793480836053033309734160638038013916431753379950070700504354804983824966345463549787514518794784286880078153149712373903415153818548728049583500267749810633179625620667073691717927943710373626638279511076637564707446531749050485462380874728710687235022149502995800122041910823520931556636532605012899373308472402696597259155099240718170604344940225999207239163390267460851844944378283249219505086141568486873101322859852250165494094582270033933271321783242730009784176794802110198381312635626728306367978328479358421195498148813345962102549277335002112132444349737979038650809364517152946008592122925660112039274228899481467390732871841341180145124315292069612456990326317488171730390312304089135958450701489175823796591373264939296964747150960029096008256268521230795657951739392267686378452278200025582856637271164142949599748633968083927805682937507571412986423740013001710957388216889903947328071509507414534148990513987722224171491346109745622267976168159940393207647140110295724273204949029330397819793631135765182282135329936124477983158533787873862895638392553149736339239892996263362574475603723527845191268828325037488075453285714400888247252736993599589352633498615719218491840799829852092262209444533044726365293915697320840875064326671906938090985990189427702395645009431956646605708312404718783799171953568010529997563270837880060014589948391373050903989812767349175645532369730862597912225279735324773887267750075930992053660436135345069196193847656300531182015826888122823018143773617105696811548337138367793579019079407200781018200893216985466044762854503144573803322918526515534917031883521451379328863952011887716306769166767469091735521865617156113799932078974662868531399824947245321434948624987580257705881307923562967784341764074383782897525298673931526300122683417658030711425010176644955987428590450982222375074413181959555524411878223588508959469547468675195988576242196745121771822602417456057656283164724871638995747890920331617209032062490092429493106849243166302176249569884869488368710472253025361484544769371859505734038507864809882384323784391936044402554601098817369863779792510562991868619056722574774399348978391290611420497299166378823806721203000916163088597927942594893689988769236376011060437121446914438051280916455311175658182468994652726921123363705069549918013227798623447325586224331115117276055512081955114723314680503157595989350625484397869936322976266187969588322989122477346226155299636314011423593187830329749852288460281413600556193492502388264001261403526188593752611905035425817488397794103241465279755751296010153963370883697794612658914440260012528572573368700994172318097015766532737821483165482125801712253859021666499769699029160709581371307439039417332486599208444113429205382066287374650255471736383802488842955740155274444247565796954681984610182297496883049970010827707325140285860963500508287288159779666547788717461713927766329346271975566552906391588811763519410058911968946713210595354686956302303294588391219812781249286174520599025820907051533711002972379182668546610236397818287690312762660505666219659838754090412898669728995829305268322661587296976506610189009442367065830786726684856924020903934960262021344832936296649175436981748004791447935629834829900849456098522033266101893178159656654008688849454517154531314673733419343715757065426164591862852895628280865143488398450296932578706509308256982932608832125567869685654012129843397381337139146022597222219805659849209275147906928373491219760822485884676917247905680246280033900946094124981670178838279284711501671458006316330187829498116724785906230237570664465684442200504674241939414675757316715509166370312038620073983177557114666426275188523407770729164493087575529363501787321241986161453006780090404954901953705724764849166682682249260066489534469660677948714744410120492126218701215727340292928593403588337868787597250371358395185009779914492259349765276536280807542399154875748839868470270136257292654422316351770277430702189871231167302743192435542673950400547482630520333194179753955334142315318200874911367622734222183531206450031963344475086102239729596309146447890651149626938821895214376171014850606275164522350869209667693068886271428649071431719524592282568499258520897786609914482291315177232845441111477473731102768294007158813627376310039005059920640243027757761960639105653792815169882709481886047753151943400935948873322619007304930632858830826539150609948376877581247183176095666794598209119086455427824813551622263499127535955776088766547323576050158719758988336553673348546875769387292709871307961440708238254825158999601436802608092749102228473446040956773109903792774522560755951392138500005596737564627277462179135464817866270771255279067426764688584058000798274477382678252685734884080263390584304199114800333249217002633158710825174613494816904275187204000718275654922725274603273290398897251170802151088594128510086024382334826371060878318444434279467746122095420560736749963989100171354744635256083405127757793601202196147176583841363964354888193208253667191596341872001945035566245660519840381354974857406043083973763701773989645536987869305723040008867811670990145235807125344881194536641083147783646737651344968550351337163669405379343317034327785666439555422789276457821217683541594756189750997068772396295370791069489680547104129168238400415064231729009828324314907816030357888111261140353138698232149881475458593984936543232522667924326138409266724092343325046278828002357823493182176125288595179424970438196326737688787635455990962968539637504858293367444438787734742130423404418771589706723770502228778750497986773697725468946594232285081477114293861729847743171612066966381810014005847783319769402796845538556486092603376677913921060235050398088483537258300849275182120731238350556799404137697019270913149284258041239251720625427497115896496240655054441490610724449151122212660828058745433628716002107900038278239178077635047459210352970429423119417051153793280230838364579593735143212793588141754715761277174640133399949193796855653285697963172354539922434992233194349544109771971535016988363930006592204668931313985887026354082013835120899726550511345539513952166603332978149663039432494512361918898870163584716071136031554725612271055106903452173265405339664180765775638827103748307485930007912283282244370782349719345389981373938089618309041092670312637599283878272763051738080144751879524995880371087044334613047107016589440160424445553658404547784953255176167959194357549615576886210141494646297718150533453427362060558167068307621187987304750338748936902140362115871533894619938416270858367321771710320862802572728977665954488073692663579322378196594112902141067104490724285005581009485245024777536887496865199931881718561519075236537634138973487755712267211534407670190332014106143584455975771358016937362853856455036988628825522608007974187523126046506824805104373958055689747831558452852808251405270333180612223377848292819738852106728284233313486943458626202372563084767634072595307391999238423425882868790051877231203856509548055466162026249611691757477607118653507303689502266980025114268499811988929184730931783519227703953418787116127665730265324922649750296877280171174587048248203832086593692202560535382416977309622183898992992633311644516786215144726268392520267061730045998923731495006480235765814987126780487492888295768820612052512636590208329397572906934258196410414992871568388458397975942783809259609174662913376609707147281155816673440804542157772943406062886274833010658087618807511889778016398353001161728562183265841583900560559930048979330048097090103428881892367882356425849993776477012395607296735046337921545433714874497901283527132251406017599984109801799500150815165193054483498245857484636057117695076716953862554069237174197158353935866303171491757144092932979213066901229968759343326550190373147454788444303173052621116442898983061102317395065606771959843508957085303354643945904682795084781221647971276911889883532743727121308494098458656070425546361334436330059820197296217021307722750236372525370601268484331475180272518239632241085494243608180145613737327290062488292966736758530831389541257030032190784147870152933173481669154711613368667317182337778831304109054025473344905545495898576197576849501939980051947095284073672459328394228371098427496694773243723623736441506012102560661696591759291874925837816458149636987501285746190380146860658041697223057914088482109006218951804995669689074590945793172413255378246701642081409373827627501582902901339652971999765090504999562143814696312035020271249562989890276973418088736424216486094802761989979174540485713542369247660180663527188914223071469208772565501107414678820470024733152026620235662537849632552355138601458881744953128997753018133163118524648209228685353399642945187231999407471957119985559630584390525061140370709232570684113504922908378995839035380900047796652873282820017439716452974511720922221206393372035392170494237021555880748429395984786483305469138072923254883309424193609305710016269325621692872374729472590235803215154518152062911178216136576755581615607930413086774897758385702926805627229781248100583392700407013719926062648429015048434568874952627070258956584105721204257525386967592768512801934243786968288957994408349796123964468920361876650945621874741759525543020645868721584638670805521730869718536526462788739860404359239024960678192126852975934126031156283287897675112574245349426487022568058479892423783600296672554058735992723776380941099730515118956465449336550485220862028665471652850934168668338237845753501177468841017205117680996914014212184630359500608657226131282885047045602538949087302570743557433303318070561586557680477878980008379748023579065173898567719383581723396508686423200344786488102125306976103621967448687008756677378412352484186641876096285929601605645423842997260956815194931932226292572856635115079331758182416222873518088103166913399972795341379137249381036864198385961655539631876826953676140660440091965454939547089433005801581936863095702837626098802837943828050270955309433808141246424875025615066482141846689643355763907446921809862725860324773445010806871687204508329328174797498561066809007878192699617306067867381546523295496533698633182668354794764757064319879847461666663958858993156510169994250628460837819593771407822435558545113414185779068753052827587131792997583631215235623980700982505254316008279098077887187368465246506971684514405231234885698575588890791797837471989961860212951599735802581446913685020954026805310248715546414900484621267800857919748060848917678483532197394836843603840134965478197393462166922420297315041202291572006968522976891615354767345965748338494560439300438317056868300536676499534478892930768229812218516895486135066259375617692983818250035888182294994231012796475651711508078500738244629404272243240723011915183805456031798651711624976706772512297397866078662446371930519505706830594325697023243993672994976659118192376706688126767885686350332488132269062462242359221199748532454333941327249776855828956465442362598098682684459693535169343952360801766326528192978316102082685270648743392542751702957465079140981828370168008766898305134946441747347160691344963224164872495175988083241025763179602024146093194410492820186585034317669945766812369576021150082219327020229808558143141415120018568523102527314290280744177862095027598052150261907670498690840863565249276766302319619272609864663690383167293077184787247179556308587824628182597338609895069468084267856830461264949755556099631740267871081497918648226886315949797152968351480030055658767862167682772167789670606944055986400136087491327856724675778197128603297805107650007223031632377645692544373864282982358677468678880320858500601726563132218088074250570337023322563946522701028234170602600136616554072063929349688696154435143860508546819521293574923726664232533246645281384716837034728959523429774560803261863845339234720526272850265100842699261954642640675145287701381055893280729438318831740494283155929465482375890250411303252989368713124433308110966777531604485029507765386042531700968355331101559214351284541340579671827477903314529243268449704091701028340622752777021459485646416872484581464042542224942824010602040872531867400983708057464923260313335954209474274736521706188725749930849258343148105290361448188069139335890493325696628821768062780688608838939108309181346604030436968363359766663614062872750945434373403846863755597780827740482898611465897899740995289748244904943301544268275875301331226645365936616881673876221424563788977783866966151026341083635017073326912617434102734269752393925464189881692123781309055169178003721580348053623374626123123727365731917439905208193090300517837265502128244844885991019363004914783949039605855371979772218490177408178210361753407853252576481921312824552517774629147463792336637943623082528021930645259295038669393641939948854948526804564842779383137657581057144595036811505449990936468367237836611992112404524927165681096318347273706667805804444272770448246849096883706004834399881314895386411474596763379404138933674576823780199130725774367740002921648423541537989003156460532224218406583248699353654596713009013354072214152734839900807361393385188524162603230788758971141156194149066196850087687397149117916063689920131961172058375621844996236638060733217645411928988835081131077142627072793543890869793064845829320595112630268988729499020177560611131609411234844083401520126378718689992546671608565491626791671736803194487596829882179007453368049512029033399120344121866513891194763372706601429196944244550119133827168494346931555116729974234434702935654871148645157829361743546874757107748403628574213859384435933684931445613872619741768699375403443385802967026164620912022929900677182897528573194241480625384380769238842015193644241491633611914722066057443171698214310539690185830301592552199855941918121603950941140119014376044561430618529316422497988513326498983901022830497005233027510572378441551541653422828936166652816801176902724390893141558455418149927401587836426671912317397334278406987237165078780482067525562158756868969270939215897237243872828487834181084045638214975139537707359377351976949301849382344757144810776479948488131442531242680682476046550273097523180045422110428800556488102855803776407027641669264106822998353032531546285565410980330465885752850093660695449381815531825219904957091018633355372804970842507390914286193593798968425255998700654635417256897099436512651534246530547343197276639780262565055809580613963296060305398017660885745953178802016208936735581010658940054026801577613959790194940509114859807797051082148081232923185311727717326080651901517288940412751453944473526371461972907655252325209144284302752508727135026175489061056873561571237486714504119871553503831897945615523112190403391822887020153740862606326068340952431381392150043460075280661399302666092215572648033330116731281301341880730827764293552888709113729752009057294802127522199864754195030667243702773822403617447940590865765159689523533117179270817406122223377149074335259463892237135613954446966365953944946633401633548709215225769581372915147365368562261918260724483230575816520015955153206921665867385453045778387744080765460148705194001988826985239935632441997887232178191420148895162427309780364323612248644427378802755736869728158232348185203531806698563145626920913953647552382042091805952387937985429418711194197587757595090056819027523538810082149698176279884266971921871325710455159908925576294666615677861958835543178541280751253166472354129761050240347164171802114444634903206662703837936551190296536110030496635523729441883418425205987971670005277672750284913379100009797092552646007190160731764349277387387411296564261346668554313192148753307048254622430252311360424942028402090245885828859851534385518933068816850894949062673791855952537733583851693598804134347394222025567084083284363697477120515485459387311359933176984764982636926602698774077552179022551917668539600316334253917232187174551335570181004351387206920211529128728978762951766664782018713201196694330724963199381161488934892508100612011766418886364533938183883364910587878103764590029083899859265991440829598927409157897922766365442488709023919132090841488197820161005077632155425495520388001563249217232065616265394743902849377149475143801218227344818003571807776029529071900838430720596471372015037511535990916518242401109676396755550168127016581840916872855357253787747481262574971284207730719509680830986437149300313393664982138046885742020487149652659307684146816136223364791501287984051822671208949415832952509739675200405075812154839959225173187980685920127566359712230699624078378976166033140611673371008211885086045636901133824663588164836060677742342294910064734645469042173993850132710174252406509864438949247716319875632813618259481223153370713466166797466128103846272132193217365230103683042205116905019258466106682588007955397236439960081623980814048338999709697313813037398776987460726640721770725775165187469246305941627901296878843468678462870850369084423821085645961516162905397500359904934327471081077178656091362169933083272236118498085499442756398941768689795129739991752548386794980800540481770962578564922045351327933727388855944659937686319640374500195471631693412925235431395565028199937689035229840020919824090248282050926790541295220308522481780261646301463476909326543959455377319425010901036763961807848425171331138756029967714615617991062535543959382176300220328606576929857778129281095034404983649640400165697379448665941592930630825883406907019463434243341665084144386212756852524785167303784445271298408544900316974395625196274552407384949649801222445394578407659529675401265651513491487717897003179340422371682980976930768512761905747524269895779682431239546511588703802443300987418513970184928680922313726737824726669711254773097941587972837028063631645079254864598784146744479029625220057016821277202601481394300517408814049600995087412191089799416293092500485840836106800870613366009841061394555854833107291123736597736093343849040035829915047545759598398680453442953888836455505714731115855366675079723915352368142667867857824384462004730131725096038706971950823850962307990273424930792911571302437672922316142419770263980581083984125574715238362058374711301438459474758378225572941475198157138932061289220483510630367431238398019011820487488089265425728311408061986539467310033264472454476665003200914861377284821456506305039254931882362052354942751955068646442058815066136243495701845353171008709542261407227020311235146528789157096101701741244437293386843928692238570062318337549036917221670707292541308626700787212593547462048609854809939905509250481237987577646376863569151528378619124221244845530521815797817923329613831311739567704023105064775299733977034747157887182151743271083240060733893728899228451687405814949220112601705575856549687058674132903812889545652466980915376526602057552964259371389328718237136113860454089473269742868552664485184293019648967294188893143637047988890950483585587840385739121588814364227028149206442594495311503368524329527993626752776960390456561345121777579279499306371612104429466210607028594119893896989909193874421534518490739327537290945606356496817381540720347109253085791893926037965757756206022769784119211981296722755197810952501530989020049997277592387228523678456379169514864279987172783949603274660161653883428513533707718340804098371084367058251324474433739583955309124725475649690267729119366824618544443322148468252871152748901436649113863657706238819915948178163382099912203938523574998850018200300159680419634066901290355543425359121697275696320625705569462273986480696107990396490707799987905026685053289096757018622869435882759688646756030850934325065925496150399706989130880176753894508326501479353560692878636997338445737164739849526512958790113484904905107660029111838270999242978570347235345519466188320895048682898725951893752075867107406072345780593372939613409756814636985938194971608455159112746158250657501007883367311071752814236846525960924168241177678723599618854295327868215821235735217069774300535129893263564279043390580791622930289253011951570315508608862850791004610856319273934167230807905715117550434649581574272119389001314332114462473713133728074127821562875906579553919055926029889117176375187287422649774446317173286612132242894291654967282716607578446503380966951230631560127098720663017014538414931957735118136658496224745215489710676361579099858228283027408570190459998008931342134991812294439881654453912250659304086458439138668549892305875231272189690549119251239455872373994714969578606978889048780618251072061025280121723294958559178727430508530643606965596180588663048568730733528344771803433598598552792873002708495325365305071645691823014837395048259220399939874469920188935624715966197374424199013964443384302109329996822868274472595710569488175482876582843124128605415464757935352833530730453573665580177592251790546500668233658866964066977491305494297144833380663738776800559587351966338427607092037642887742336548212343369967619946593971762319888952197469381359826279936251161125523508321408676367808544892141535644735546035564232931778367333331641836112714287881079347969587058133292427982495455602589496151660819392549186986446902716740370280891160223172142805582896369144519580623215113253957297282214940096401399741799019121875231859093080605837421950885459696001505114205805764058159463301969613756135091694826887388415918862146609747910048866442863867125078089816128799698204714281179630888728238524199524818199011435395280992753914621931284143862079594052434966260271092476574899457089101852098104799725528679364944351336512633423889616372592255393873789487009184351706790337738606473405939944588255101653931312995610037277132590440475383864268876039711846912165288028836444178062970374985299184005850944397326908869029326054348506947175247776453572776966697417513929850329932991255666830549197405129094335586147525755455529052018924453578782990873918027673859937154296394298864386700382185288307176144386304220029805835343944553263373178238501627278525523814236123189609571660813609912079723518722544137049860360782245718176959413392854516509197712109684521631361379291300696129451880567607421363703566313311726760052447674951298288566779910369288880713021460564358446354327092535451566796767801207945558822210850130092302815515368341662459655334879203229346932212796260544403911798962903260470461769879817801036046957383449617743564408027385544549694233108984824198929277680196513804050271258857035991111339396822465235885029621458029132485316216373214245740389484968113711936841877348404914190854969452935427237165231832348668731432486082890968640250144434387824966475042955460824475356125949665879388934461203886877759450197541505810418957523280496479839963120163286238954205965722767910368325902040047065820341786927402421036419726176921961601407869408075892193212675730728299148556538236073700968152654198879383988493548949601722143939745583544849620427532553716977945637311736342162667606168666732361448660075847024722420739867707503445156881229210965543350178708322112017728586435912110968961238561638578677494451450675644619386823575537240205122887948457940085276355639141597487983102979772040397857898219868078610889334315364878976743931224725656350241185522531781693505700457678100956581263635416869827491188678984258196818353938553570758117824297929893833906769431056451484529544878785870677575993617250925100001632304338865060438146822068741160593079144716416181246755278300634727727210470516200971472396287658101786528971765531677232070479158001916798255225820926412686282619811506126405322439869529287578215183492053147819263396393728032242487321857631071433772744401388399734062746264227148742543780941336793123740356742864081746775135478965925688876041711178197245207571904223406211257409632764636056078908517041503423509782291421850353161515732823604533356270637045080011279100824967709420328342133308972588985652798464229471185472132727812027001958591577645569544461159058671393334827152663623060967251404419236818069001220052307074319277026343377794031190789570653060236279377271669059528177302010658187168686363678344731952273143694112215307733870784454451227079942299020806939806413928401013744225664456611287278753566269309457890235068675642955613995353280095735919949175873201426729561841031636253222339716472119585760647803787864123851601169656895951791143308149419424524678498437967794237184527342810750128957872677944916520403922189687923928092610254548514475705382417965036024006828401698522363682455397493591024851515020968942216186036306034458171894932149883597390966936908424931576651435456685242029407852335069314599013068185020089301087463517895290516382697228432600875682663682527157319127190024614328688225474109200801234636580816523277852041109804321493979709087872408170530087590939580929054168590572727657502699231640989859873159406005195258914975644918051621281452870248892525125232604707954496188907390146331212020440315267435497975226682826144759760885170247391895946975177294122031794234119499583910816818709385833105821717809011824753703573239044630337082621408015792163983860160882401063304550092797061227760450084292740141821816865242157442951264135486388120319181932502084978605462587923513572820818265041460147890999370274482247733265766877409806445670406666595999536774790931671792703057521352565138090041784061355350207384155979090682187935503741971506253528723251248054248134339040629783248264465090274659554268993905377683835964237234639859113289960221327005244307809862005695115631178834752774157393827916987478911562815950673962215581956567026325506684732424296524690865675521359125909541798705499423528468809217461671914833374278456674900880225637685556082511435761225693289852830673340829183487938248452179078487252763486558274006699337987454553742738483181196156092426019349896263667996239783660924200469269025356390390622778944092173822088830775584372440651635280048915649523351352385255886295174943127097902310450833290868299293843488289715519371791192927448769295375413948856122281651715640860291938985668765800343600892999906014748552137843534072362022970112126295972215513177208825965069313942286941496302406434351773078865738783586360484999611109826785593228738115607626798361857107719742863210095429890227195008223724028082352491359296262207636822153126667055864151025070099007618472809174621304729084675443629306555184689503507626699603387062707056700851915365476015804583334646393974397968347739935709895694099656210488380530834880510585040870836936329832263185652815352435720131730192492265011351814463645614715944560666943451049891544683343181777272246487342872360376081034521762757181597642192484826872563064873728716019097095719958696725975092044580451968926119819673408159639772324694597500226540593352739568584786101542184850570327483866641837266542659605482313497339313247539796288624571696040737471839592828696863896788150163697430097070467586409432636067671409201415005250847224781112875919276111575521487952935246895716886486625155701351218889429184608959628584602688937173911849292006245615613471600497610779840655684298114166948066117054565362828731361353821269567896515196363385734598653321826793823299830250281410867934478501531680123866253888774626325919253622682854052786666258388089992306956979706647169508599401773852491302560745058861392558696740997065609663689353426220365722135370713122686195744530153888907546342394725393616312351736521689695499939343061264084617107292035235572284049503692063815490634420839646885450776345707890498661488881939317244386843719228905415593116191635644709619540947718602221689576807527080084035107655718010873643460326888403279179496677463413890805173822404662125772156239017513053784639257959097529803910542883402513892129178267646688300768521702993613169810174268317559581625238827570147396416304164462129277689203957549234490652753481914313858650829373823567709637926067822873395513936650567902477701003598800157573904542893181272020787290236993304115593951959530793111233787240595770718729988777324694886294639286028512660935294858516405038969465926502873343498393825588393603857458231465082376675670566994062342053382515706686772515977405607054023455431796770624534795984371917925858832563995271434271467841885525636617302544334254690217489481351873447432681033263540538388577757361728007868616745240553985880609817903545066209182682063793120269528543059374820304983354994470683698374742748645824655881833616960079052292321542243441439373400062065269340587135146501014672378630085001106968581373430761767301154719179549016769692555577838159512570801189782509717964847014742132262400049567661290086952946664128963784984091095302499469335324402798501285036458649993800007160211839864641650515728179405772412811419906480298832613326460436660055243621601914334958283362396742078006787581373238834102310184935772085155379560258063509044458059489343577970223300043020095475762636884761292231023284606420064713997006334442309915662333168491118200150246053486409050819891635200107343730277084900779303752198254483952753229592310873652974360984095192767402243599908520632826260510472125953123810692219363183237423509279804350109754715295624876368747431917228543416730182556610755024395341694614764531810992506269037563204253617198707209899962106948121003558659928066066253102856471935435340254527473538918251753588265236987166933224637247589911788293611611765141844114650414119815331555750101204947249798898002637055045310611729671066437235587829926939922342062481741100434947300492445591119247508089205867969142166308536135014643807343748101968322050614633589283859767966805927513628818956943349064662068488684003352382050044293979488109006176766537787144957249106838358137850500325882239617753813785809407761945089937972575283214297760739957337248251282286682864722601887511270984614467054904621853340069517676792210152667994682364987930292359596103109306973699917048083079083892450551198624007575087029114220946564830568325982047126296758343312869309101758081158047828724137668199587188396873376764682951047909943338221225769674575921886253614201194694601881602515450338786233305325054906726226358647584227180198397319901447375302762135402364302748804189721809016368184331766770223097996920024860824309124932849022193538127818740736720333124189608852965943811944355913115603864738987575360055072111910664847191163304422785865697233804382374457602203260721109533300099331445912609228339167569219713836347214161123970486865254508135718372132407357414205168196458187622514982043623721473782852626731600237883950984690792959094855418214732838516418297812199790353167407601036811397559649503863496767440855830105368042352251003560431652377531866565418425652741431294277006674484723709210925157429214141274201851244626126895140942878565164519781838897728994587910599276330029414589204810929117030277997310560998964609648109708528470115106565894421327113765763638151695367831916068863375368576278830445965993934135949327039749503982933150784244890507665964100880493540667172403754971039157456657177871101867532890361050039336618334185433475954145922548950348154081070022462515161218553465296058314781650650932355802340107391206275807085254388535992982721577182501141482991315605806224604361855226952329927470499713465433641062758727748874364674237619468235541253899386649439513205711269447727115485427369465092600652622550330383355078045887990194445900009656256057599806065934601629178749828976550156566419771262737136364684442918956786496373015374579276485024527163864205023247511257250579103615717205341594533823031247477552904579010754438702206025066712671017954085785792415791002131403290518312080077415685098104754160351296690656161666107053968284681240921784008850339483547517885808372807212756238450204907773046610947095884623220207961331199668721080300132268592265215643873162501238647554946892481115245141825256812283386969625749497944654372677325554548750189452200090209894827127956711177616301704019956682093373900061885561466425472405680674742750437848041282151408840060257034993362290459241992330424243697697824125970860496187305699817579294761745134015433739932449087754390276731437273148987346207715926173285549442573804490553729145243673698124492973360166380629769697921399348235354857701338260376313870130466332451892299865023770749348949074396052472463772824735116905369040846562811486410071560892158349456157852536822514383386612499261938336798187053857796470504312531240916182344300231532546995288764400282813112018757649583894406040316567845503796218411892911093139995024921323568772769606481815564602390422158659885062690661407530400908732568267784816130317195591838505198993877769333228097941326555771281700329619070728784746881301650593848620865476989407021645013536789790974424496843749842126095137697645595541462128330485155200235192095496427705971064146002987731656794024106781260167492093675809514694633429673461134287303975282197682452282592411042412826644352321368628325153692269076527004967457380932173453115729811008631052010316859938777084708427733588005281945677561062473690447464263719101673914061149883394980024631878071983798134690355018863807895188843283849028746968768804837729816777043198608074642056972814516535253296856645555310685497800199665753645368277618958293197036755722162808593654532489735705470600260972995403591080802579548503001230738915144679669429991721235712453738983579938762302085807790235475980916523148818691727670941418822147480628923448194529540767334269881510766118300505698801252016227470665617301022451272647077081145852875996500177085231660289962257829773412422264136723845663341606571121094187989132729250597054103774331554462857661317429502024825951380737131424299941662318292587218810119986217925530025971361235551608726530795506890868513556073297151502675983752505765879684155921180768561767377050680396069662779134901908555540148787321794804572528606887877487187408050523418036439912524995972836789529893213831899282811407186857768222370879139321262816113066614368432453547816189142126132218919057386611746513333255707046965352440746819964881311070097803442077427315779409388990609468137196212173226437285950258753506242758709647504273553220937859806340098721612228557758832935427011469898523096565099594969689487036719382387653712323878847963866206946568948439271931826163019880027567874481831904083206622807122597757876754423212031261118555915629807043896696325752744484511254155515583250276255152621840856034787394223006533624560981065062215405382712088474428165713431792961772205516206129150063524876988272758317856097760984652174802728434340125127375887823777702084197907069204495866095763576914179025623447361448411677334370244626209783111571797924456030427914318996342669677309042381554702266335686638344869825934259393210985558091691326316819986867062006609080023836313855516704530114160595384720552701733368903410716462038844364479132777941520258074926151938960363725103717631374056084905327415405834810178179287554166858526034048120996031532687572246988968261634881425406800209980043887914094419735068062063819986748750974815718643531327330493773943132865210507000681467226497679987407665942686736151587540362630557463335767467814215996759067222741760681537241526211419666201202037167729346646312414076854934255304463650317517143544966221834429409798945191076294042342670163183479468309980663020280697674262075029415000500864197911259855396563227006839296558209553066994076902374200556068230110158410025257784147613465939381933354491793887527164820370748208905103789806968608726471217321928694778836052751225046011567857260023231835098573984227919870138706528255421477363705695343693881784332079049740290634549328862602137239795546946429450471673605771048598330522210181611846806228224990350391971624931731315625500434243111085724143293436949679671745236882662754448906436661668906588849029132480405828947476507143571599204597127061321643241241538198607471018434770973424288044910083853554392944023420100899109994461774819620797835312713340279269482041453058300479013025411789076151148703942243896836645923778311165414015700716332994567516671025288582347096458206937540278863148261927894431673622838264602875328894076172409114482734424414431851938144017845786013888630842646877103705825098482401355204758927631180600588451367431278868495198502828549478521236366702524018157976339348136757264704946403102435774173658594384987213516940600292936022332491441100597314346384265300072713959824272589639404497039635806669267328863964873323989739965521513570359448201205737907755761095207031628018780974588201664648753435869797334258522611233517474382005869463052723835455152290142016733250905072547509442558791827727502978837167030798415182001764289984593003015845311539630537810178179152281608497593048443194124259974289999639016262371629757846744435089737982163821453248145456999924779706273564174176235922299138300476669275461015766527909014765781408295349014259581752991106918495670414233428272034867623617536970491922550974353633032018949650937299842252514953251912057163964779273969569338451719244991742008260709643170370707429195573254602374082028929609852530678284287177184421862175767208743818790499244293575598729499770683381611946781961758117419250609051627577416936547497099317060512786774562082294243984708951759128587818302761711870121119161009507798319231458622064332343993847956608758440836212899693787700806588627611484555233189544896475402091398158863377071873269254728193835438200677879077817451844604943598458735138799098696808300208854914546438134843359828524103517321457838015469019946254282669746367937699134180893835445237009055927496033138817821672729587420595744534125799617317575482491070545608356964080996040468094504980687691845702218639962325189429173059719258326380955938780150362634931180785320716105407946993978242211922550868200974466902777256659848436325428383737507953427101209981967475419830175183310478175504155416121583818650674583192531332109269042795333205095930761962852328923476803306083943584314925591507689390383994541519300568246079854937695230528084004653867502920059163643103166942959970173944813726557086526697330421026988578630542802059445790670967838515297860865563951387238219250477807091384782177305532522398438202651394874981067277814745446129743857436272381602369573726705935598725072958201391255347819753078815343157690238710215936347157592845810989958017999970348017665791435171165675821390497468552150954185992724860346956590410361490173536544576661273493513575179681313112044344872542665456216746772389070522077660761928461247324543596496157126205744950345582268876072150785065450474565502126235702218870653009207393069876864651245489042210775060790658091434835719932951972758648466250126282350231716005756268242387764532896690936046698907243333366284379886135428721503983365767605395669545634043271577194005931424351804246946432674483427570808456296077193927171917330934601298836128712430138020200327214136768144578818652725643784807770623459401875935424619524018926474934987824326018261712222997461892367129907091861813377164729397774960360415640531040088009760614124159489473420398114569647695594757289161702486281725444651970769017953080512077019422372803246172113855584555268486296981378546222343597059740777429232694342964063665506567775660881519246626392949887867865759847430226922965557698677822020391130751023909134830694876976187043662161500628210319517391744520715847340526409620419041817980923406699652277671642573628860874520930167159111893703024329506056465057954035044663627672829338435743455359528965592201234923395726440523943549138647806661199602759415914540885652527515886877033797727317847171965219545447803940006010281833183090755156234661719153169142919283510463964312357268712904480571675393048490680726423510535197090709412577302394939397568701933242468898573234602882534523659043986667974915990613876926828489763657447197060695147658964827577739564150400938387227489383029672866111527143254709598397518148131375304325353759501297298632356242069322712728476163903784961627601866114025299612932114169829743027028291937307157012059554555125860583024316991608993374938741671756450730129752834751489408536165056327888557313152971346067187832437357418716451425937361375547685043125161267361477933462331898632833926398981613109620857646952213109199015929338467433985338231082307074539961606460952159975812936526628039728350759091823274749065759568030853766430295609605733540736990371587841125599389287695927166056062438731341925073014644064462245623083811014779293569528401400206773208205780096915278769473224202918114230525591378027588315879508413040249986354201981797329758964823650240985489640356967953431869348747729700369647650115320261351301277322437927953536447350515596362874459715962549926935189111878957385223174176550426991601542705026184989068191687439421335251143365562541555746824794517727647843772449134691386514769206570204787069348157952411263878501762477902021200820221117978683166822525686771967360895393741718009218882245480768309753761997816606470001020422940215992908395123631531928085446263969246499339221584756854044491985194909898419939895961701455497720183677533474131621615804483885550306290869488345160376331277398361947130703314025986410755534770371041005616107064372501545420092562796753393062587729427527709010310848090274535737527297051054252349029506692753148880191686267648224066965867103962948526392496517127195002311418481053370444998365682696411776194443354856631881931487827795559168866619867811997932461587768175367361650671996078970824937793482161395040361586531061344842961384013168513439812546361500178005765090316548213301300616039214153553388585649098642780461708377824858875859146732806643625497995112486540945351654705446074176928033392695802931490960580772992225785170201962161894386432804841208976218605663837304808486934266910324812021506837521941464180429751468223931924567313432859912299291298040227222307515644217253791717434521559055293431225329526941626563049169492803114327176477469049647049183160311796715604933169837103806674280701344137030343329696145654030900376080461892413785031795652302770869310260178159935662232326041545544111016155823908269989783010959065316448633604253770424727604121732850946709154772841756281221849002406630473791695659810903072269664577290634436440007697226197252732728817860337963549327630989394300955894239948746998541811902291811104820266858421623895619085770176171209319961422703381711604379107166915654163021056368235664616773731600536802606190902700376009114211693952986648680926988486881426039780882908223488231152383333483131041805601801588130129572680126186161489631150674901682656098071344570536382243272816659230320495170431616840171531293187675974534496742330110521936806864770031494368490852988703025793424843650540259846214806405125129844740343536438574362885192283138622429728713311619139608715310082109257549115977376552929697599680322160790472173596572810047196842170278602374181419371238542844901453380705410598271120694903537469387079992588063985142379193567930712553077717578472530224469418932836764876646440307838577095110375892848926132212155536605016763305864956560914144147345870393733240543049077912037342328873868349030953461272207116936746246064088332431538368752249165811574009415990933254042688985318249761061347452794280160653124068102550910623655574498547316549062363681610647812191463033449388391349224695619363472171151058973710154865318762917843373411787968179946559046516289636035375919482923849528689401722048678560610200538548022267920470552367931926482352674821800147457428269976242760491654933237973112669568575463021558508034940618935052580395392418861458976957985857360496052234293867095829313446579489837574191931986051266763364897980457982668354441640659419972135735757450259969882145449003199910178035864731920756017109519806816043866323680632579810664126507060926452801875415953788180810329153948703454218339771004354673814505076845162536837660189477531701267264208659776940032993980262809957029170636835788293650864022492451084146822012578874086075614581392958073006723554425456405516979109106795799367418117592288085935474643614028476185703121383896072020713573127586685734647311017568440421126855343268755915937777197178730811596055210275002797117518584110649797753702695860129307328005214062557829003153509474976801950703076259683593465714657629246715037033781714334595515925901791156996584983697107981682830348720715088424081147721931594562325898027175639944289344202378255636335005774593477076552819003309057198441525376368833175378256475976183979017904517757660699754171395204625809549291426018409296044944214385906091348462926682057859682353021825033652901204391372470448001022606738149546161185320959646369584203579460031142661661528008823594388378133892282006254909204934977598988272682424248822449790875552424031910134574289346957530794856861198578795206225346125180637249568480374160452621095931520694871549720104841042124592521746351455155099434945007621490561906226037269260655311287444958091911289909512815678995899121404666786134873476823372103145617206952720859937216734527109857114688337662754229019126704622961509021897009560987626899905707987224345016420975913096192737689877419196049381540323355207995473729726692567622796608085361482161668632785278503631275509959302043530962212470934773211885220804450466024271968451451569117358416987842347796507295197550811734324106463814139367292739316592157149412149282961324101843641941943391209100598489926336663295037023144773180358846604358995939843691647136804786373388805134791561180404849189150766322319677385685362012538765746791198502164093083622337492541495692579348054432100881623788823787975963275119559920326370575183080871995286212643215427332964323533204363056172880987359025773882937807081112588510824293693097320216929749388683628777226764113872763484735459713620347695598656722488487982736252296623817268056058234083724496588690983889581051784544522059125936608763326640734779954963049265339387229486947822371620563177412137604105555622918932597722266205822438661139473480693237520901611948360118864442005219296617315732811040896583627329220039813097989276335406808336338887557500845455745974030875377736638349973324147400619394605061275699782531654417535255615336052119659238484258043573861953832775248876213042049917889733697265049118411714951033348150095079921491578921740210967013351661134438867782012127434504004898683531708968673761293478554762587018046139022967572952506751580000031192868970072698024377004866749286278806384058483778324564701143034773425567162371757126174736241613043154502371692655338849646001971112726419457419129444586343080178290365155905780539425621634874503479045743774525101727006044365153533962833105274647196782108910042332618588505938553114284423013068903865184976143074905128500595967700599597617081119332165506009652110564405411285221089865566301183074675084296239736707816485005553791567393855998884273959106498607773915627976920765170479182339454918737902722234799010288397810194570827202601629338552712951256331523973736121743395394659690468941321454653466102201374222675256504993072737814211247477036522214675381897522635902929066981309594120850747285016846455293460702944581536318493336564186635210808853430297756233540215866730798969795431948887489846378261764896288171732702147893183807728965045108825065704476351425542747493282345669622186206439589709296758751584553837419937816791819730095692574586992804311549570625091075397936042258031103178535648925688121786624520458167399522992590496243217629052879863983326980802106560436961066141464715964351756052155897803265106243991272834116960908919488481507138715092906998153383951650992116974217932048318488269995924688504932071278773287495864207698183545385518847902776303198324250464626070092497204040030556040087306675393290975750238673105012216084937985489025831761870186369762746505933272865308887671024840020577947778068722998284397319542478389239719673095988203964038893881967336033202408244177527461182006680439385202709735085788837727457931500663952734682630953163518769910536103635844903374122706824033266266506372345423013494428632589467276098323433256601402082693867499262487044072423622234837853613610080432284874339170095235450326223256120888645712199781024468249342628286488437385729545270370300914391953401877633577353378360725541275316707943587586109809880698760937396111496416827339523401022819620884250286133897672043592480924658891305574652933388311632014047214710658937597459521847443470120769897588000782481955202489754256142166032593243985449734468764948207527546833722119474648317494135006578475747020376018552697906114574361615985403721390197016540508970284382085380766138811629449120549421206403218815835114626322811175446490977948931211084601291551104212095961588244881602267720727813561781002917602572600980839014873259237639244946040104544260052163079016412539704113442176615220294889042679153862974111736050543570349722469828405842118535041137958427360478633342338636600034749487486176517624342454375154505346503290180834727332097622930732661460120277226613772153803070177746834988761372474181562051110286424969101252838206273853475543323337761937687681750857092917806832068131687072503408281060326833993695911945012877296586782901116251009243217529849435839707284747715061945540519026821968352414243584869681353877038127145349549993227218320967888886982723712725830948257815112204096050517168645272881339023462198865008533103138119495593214063492133622886044322485459868170381030245276976511159419480177278100370964186564827343965981793586056340141473917753531507778478245929945172245417752464566171334227749111187784160004830725574149191345974795767984800254894109821978419665440565143955215913336131198053317554094597968449291676187244820542754319267110641594887179547195947511105698449640615226596744156710815762917403900014184306003611932586185614749018265176391102112359817722611847960537289373495549453474376780508901044783772923667896896295851580299785925308756863242058544437221408348189787399017613603652168501306619454102468154487870940862816557108406987706813822942277701232629961773371290269528379696982257186182127550009934228859278244586655804098095864175376505690630740515416187892115873414824901581664756163545065903334045354285159119678264075407687571652044037159891719036810414508156753377802318650208741931229307374120240817470339978607452082529360908470678451696093325681542124153058764516082312980616538878703361136081817613070841244248133150015520076218771565053616785940880187441750077448888941347780103735327250312692496117922490576281231058882811137946941912014493366534250422122513326671491113044720169142138505690808931348627605567824180501748995209652630363145503454901327899320151154353186848836899671101343642350933999263118510074741491505509941069832586182923512279135345498356255347714523732300029395951548975173441953823030036724374795066993863894654563756071446944561106122049338320838539971168551781687489488114163490051894129997648949171745250909719740853960697974959083959131535181839116129667543152179826398674528004596781587279405294725437807033762249071522992059359001018006657104246240842669388765194137761310240421655545452684764146404614132615829226632255971224558058851682711556005121134796520526580088705133477615192366198733564701130126651316933501284046020521591804204458988114922155962812778953547143892170610612183550071225120113144029209508781396882709272787044662619366933729214797156059496879951175677653510051874538405553946944447431665066729693261459135399611793503943167871388650927513124383765552063699686917447515772288534375351638313495137673924574200061775250666633593050263716731774129709193486550717559473982153685701502816454998582461726454167453213269268181089859153363056491920636485060278228572233015313593921492239675127239054214390182066334977565008881067352706404756738688662841881904707747778130599039704435094085355470296497001052032085342892174590595018110465035150786635146180360713505131578458342105449194675846364238257955654763448228988037602905293350879080198964503947306283215744877034348063080754465430024690958553107265124136890049810524081792002122351456085741925319840130259823041340524085773830128079602238065007822481247616337632876831233081133566924181344641269635458559575773622570012342290784122893736652500979194527989841605975324659562065113401028578117591875740377554027995041535921709873944214855488795818696140824754077084215099810368574747611347180395191716467277405216531261242893565552432173047616591253766192820925548962085652695972765869096366623720339907930202724238003863561513861558446266865574207107554336755487447450789861565376353039996216069790208654194039731318051583271902513852212863594038520238539594641002083163380528336992943141249497727920405225103542964626431013039164132352024516892544742280101893483739519101714466075442134951558322197814703190410313006579040979637361568199479704763061488996743733197371758955647995506220057265470080948821817126117101547732665615328002235083939611031207687308952956183714410426065549173768811204369534352336527953278282679583333194462324924306293079152613452805238462430242456747993421383532839827517085012359660022700650170300806063143864941110010267234275668421742403616547553734091749633534669425488251143429320904331954147586570081680163185954606388061414179985756226467546942110056138233449015852255926784373102372183439273754583585243005314852376795416168165893482849411560784914267577671370645520249246896368812905875404919703275585185125476992807478319342556767554432632142416425048349250973573208417174999554294209153161878130344221557666925234387945816428646487562903827419124866540183255255086690084065327171740179313615173775420296334157343245386002921397044544682263361632710090053687433487905606072743082272080311499842234675449881714856725818055506955050478894311064165579599042540494386487415275423287604864634178743369290360444775718043914326775486084912447883549303041937960859426943155133996679682978790250834755069556957315545651988485465289149657251751382457497761816961521438208240245277840050064044385196748158963765247462674275379274531638619129289033234894037892130373720200282104159883736879936281459524299412436946243361323795852920407238318360043605996341734992545080205476250734894012312222227161939363832758285796118607217964817068542780189460683729554506820802746060797525514734263750611056986044925528989337210257244685732118208181309385667245704866803447639516081018425664185977308258856476900284180293233252613641361934932007281544002890504155414457918035878490262823995694661958337893452205121224786681946035331664879414072128618946244564879976880491149620756147757961790253648199905819899134394169496437139881731114274673756033057827954510018244115880377862509603945897806892362277553915568192061042899875776925362140125079780681087630063799147556872513847979078769327242884225713889281152044156489245175050826764912684550232026191093033519725852278914196954787422515391242950576596436219570891364942867158730855153379339161107177573371484189909949429377597913080433712036818745888814222967290350009744990938525683835558037158036132226320531317794198038069023961569534824896212186480807640183975425776516131627759123661286900412279379311624166726716225710287586443052921663788920752985196954829524937339013713436461970949808100778278668021591906855959365995286725371706835018151014146047616495776650327335487902109455246733725448381137529579621888284392021274915115306482301633536272474423682477990035074561619896589486561791293872724800217118038851232777838008843957986426892263725596695815502298583294380787551854405204690398478111210155259115110999205372572019061227230793786413852426454501568570309219811402952429248612877687117022127114550409806849314492335733728610033204556625858498754994834841773849884963392716600933053967132846101929087479834742842751857386243937483932708726364398255591195432647087731742724252528710161105628105802204920654951759141105352046706972623803001182407152075144188142236924571322788620852656743329954976898296831422689551995832423197479813369215310806576675051351269997567195253529096195775272797119744967598296485678014144175676393083610872848043725812764394620386480365353138357295741652378499836741399645156177837121048789522459953236917203764391619390138594220847702943958987146036512611660037592049185681065845610128658711703410123890625595039329190587182947305952849647296141371898486035440246829084529811178154908483952470891631990402583927122945700375005156798488260910546174651219863485791463143688904433147364565493180184549590872347604802557592548115439030847597132430011105794889333451468390148072152418692038779410880201298715975430310954449663706576229502639631752543301557052018132375188228250515249533082627738460195245484850149574046373059495568362934610075675605112911427695752021134541668714129477242185607367959485375041583042265170968868862082683256761110803968574834015198931601286832018898026720017266200746215784132754596755636570065960693552503531166140447652762020843783264424149485144381197347746866231674660242559191707949311110904890080843308072792500817261519079047642327565683807488194077353158525686198385348916914427630143257503962053414563306466059210302495511022561370480931108352288451888110113797295031811060335696593232534948541428281198212862666373733129998916994280895710730031862745983038773172219942231921293801139233322594370680125937720514826174587549099248584728485678202383058657353194818964055082501595875842193703631823169025838278376188651357543900926646051368357136071541580309019047297350608825140966237092591394415486914344526926119402911329445870807962701628955128060785087334373385114602154993685769769995243705195627518731922249572579471434116904764951573982598656082869725703064104224207744246581736567480678349707459313007009335849967770937338309808861984683840975249461198954023254943247139098397651947686596565465201131989529836388034369840020256101300920280518641466228746745530589533530030399094471190544056245853575849570757616382753756123243691049166351633133918043493834110675346078444465220081514602629636745546411464132653197798193948673874900137895325830972700706404178166171971013192754625246993228889400838617368511424852281678467990595400826958628812439646638538045095290101327097685597329392953859096744666645317697077370733604967723138694312076386556363416280212677864385192800638008719184614923842286999525713988094088595786939757775450639525624283882650820686213577328725647975779163532241061017014544212783235561117100602530510711895200259664342271279072026332914016531823162140163176384728218114016009710305150115486043378466117716462410171449927903255171287739906048088568435436410040643195513349571613221457502166394363540987169071978142413384673886801216287800851660051898272269588112600512331857842106226282303109036904219412665054952822150301844214126203303567850031761185901520689197297743389271271036691742852274994507256703239254282466521240826269220044303692770007236069712362263781860937646080381344342503935428611231939273981763689714335038153016276537643528462541690628738205732924182480997701511542082378424687282714013930547615818910895492262187034397555844373253839531897831206227621481912828046428583252210416503865850755921127794157246278360207108956008610741846004125446211547703111023899979471725143212975655860204753776611255684747433488422231727430373908855901137616573345543680827719447151320731909575415664918698749970943218250383726490760383561578110676918088211903345132777214443289159836018444402945274365474240438161805324121846401745147840578116227167425444361859109482339177201504965152435447425576880987693488199596129158172069648124596524299930705778465571242408369492985788960458870165584727178808791958448901379478606056858612273195381018712982188596777428959668861847564354874578923431750344619188642277580355181944789163499775658087465406188190737897581720060317282300800061282830690752449693948993335430399944004795234329162737851126799923764631448262914923746916840380856275729931551527772903090645970605077239760682751312074807584476597040162932403121435958588132367162403795921503838222723431949059069638712583648598570745025697287848907641760461585486888971156518035049320482174475126370262605908747008735329822014084120357103166843179812142678184324296313183135611957767914920955925704541477879506365650917406136407384626251992322384636080981448833784966027241757836682815053497817304102263189632647317341066205992038973392507145073865004744556488381191974680983416012849039613957395188819265233873325343284147688158443973597683097730362376715380897657122834127675510375115215662941232761412151301025591349259487640995407114149821456083697491327284584523616019538933610273316492456085037053303518579430008681148755075690199968462101438686353516746060010029596179423654098434658045797411202802418439036627675214125931826848679619430815454399625248682976386452034289450996919066702365828513178486558050262376274502056043843468861727646847852343752398874705365553265961802718811361957447471372614690362499817613348148303709891765024041014696284644240032626493212726928544022395647217341550392314016214021246324154209041267814283539259124227181321631221117424186261274129865328012960488347691266927447684856798783798746627661620819625784172092940268819290387235552080196330229697749027750407370204221452597933313763447373544338228772417247501926292275275725297798292230478430935300605500488276837249520816602618234358712322001787750334831150061456523294427696400665069471884807994397515411118760225484251495555390658018647428854596724381476397214443148051953252670060683500542226414791557314949827427112803917180446073115705224549458778282286227788158020386833544513866278173829037640425876773803727379421745776850618509776709061166789635472339599617525637284636256646505296128455425398368471478924613682257563716240662965396529943206281385703021744576698466312402289565572988332167217587575941319603610084337335127168770663645694862924196612712378121921942311486649367343542344305662322349047871157433600177978371160667771932542688721930334999717357451499950855552283125254958715756226634044951905799936673878846771772047351220865408417692886578752479726395703170508098903686784520463032481771847299844515562223104811174762669752165161687692310103001026966408856526141649355892275528237417891518416949952352356655603086097759955921118041401449007019225787907539164136790343670564623529358823523490859073377398118254293700188835285882289567099376549684355312624496757428963015117087739662320453882852390808244082157107437257653037409294101517417644190965626246128880261558281621749837102349385549700587431963430337606663299633954480093795787621518951412858105033240946588371201537209857004424355927785629538700580794601517363632243708544495154531402863472836340629968757388487966963891857921342434086575362329705735931092063631498636674150567903018536033116966116229145637705050543586790568275253454305189598238720520105744937053856526773377635479996741076073924144076229936421330555938467727171548998932611221115563205800574973582736493722906048913793495525551292871374164521014061453695921226632790561525026846230131476732722210606126947514592806487151661276988011336516259246870376423673010390343054119970537134834287228222507134123566386611999890060335254494341066884524392714300014648497780075793129581009741047669075780654300056534221858677364774360128013355248636420383816785566534982037153345973371069697960917387052815832647975945795100938714059840207221058775539368228460669888676738601374919611325036379699287691367003129286485503938269889882909953444758807079847914645662437419100914856089914899582009011268562442720273151761649394967911011999097194460917271682106782742392038508059536945279023402869187573340379665019127707136548424886748964956989649160856034524304100977758359072747390099235866645037275164984557048900808400554302172707908064586531622654131679755013862145884819697884542147464770869123677139108019131600454679144970969064420606904656096712989654549669053415255007089911134685155959449649839314240123627113123443742767907602836647073973919101376433827458764399118413739982996874161111844532133612906370907919778923744653651482827204058688648144429376782767254883818130731496414454948081069913059711276630700777563716994094598413445010289584048765530863257960956040286270099039641226415554793467337249366713322618513896132141939162407519506171468117838510853180412813679390530773352601652374132205048095566634901463704639734528948335946095861124420638746578357054659364708323309263189713349581479992184219070183840712712053403606812569205175548001466804318818440631757581317432458913251509002969580183448635089087351623085771135725980157971810601312899786562877668870884364172185518952671228069045402086049816834507006529298510124079703163377938633529304137787321837952282463678460865835962732844539522770304530951608877812062626376567437722420106116271303102174318415058506086181901603408122504832155025044860584171680367718927192040337367500461971293793929933791327287406739807113651055200717091669708590068728745970496668410558985788067067631670460005796274174935975580430593261657168979738445559074686384286762391706475889509433783826939386027153575528008937591017222135718139123808575626852924921237062615738167825192415228099831354727384697071835518171620269491562682016622926896793595336632743945193245517269619255861149668549892571963436672126622560409361114807793063897941910351636132854112001512263968193814949417578896852332129531549278754569557863822035698253493545085097594951602893712275481392905546081004964467209426203189262403228255428530428060091186545505216731990483030893045796488857572247346328666477467617207582186308387277765584956005014449784916584974347836388895476952462365306617958640952295777060464682012220287621991432206496453429584645379769556327285694004530750737358927078696063711602492393194666096607159458015754244573092229637251064567263778755920388285131274566083883554111521718037519064443895545676570711236326521455601689163366922735214816494531447296881361253750291093650497591007480268280260178390899526185474630682044602365433558983686509457642948435188877654820203478243476007651940519611281184761872921613225907437444693174720505428348832131246326799617100342469086003463825607214640506150360517720026328619448484059412333729479389361589238084472281595096599629483515696900172293205041428002169875368640409332196035938166128370460001551756273120878176833297477013184713040287880152722974118512026084633637521640472319271717590798153662976267087018378951051480324674307523562709822524582823318628610383438692044226189432171049315761293905273944223781059163219591903557763011540603098879283275873168374113156870463025818996868624192886252146980388848982872654078742034229890664175325641639710673244308946311784097705995286786652589811687217339609439835285905748690183634589708473275703468494705271182701741292208895759910143742550351320858009483262470870465576557252538825594357883174055750853667790064239995872001867577636397208145832802606870962605459283469048164692808759745925427273568386653263570339964352555685838237766700721972145890885278825819128725999213206926690293305694339723789237725371156510030467294249612185803033781024117852937039069246420507362018989644735889108857370896938730794281157412801787852002053809687359958395210200970050211787264120425261546550003952387126556354466844588768908902759268126134647439898438865390941193427971560714272998844939029281954532511374029919361807370836538028189147017225944188089068764464454877304246781500778712412000394172957147851468942249645771727823822911665672880638145208051378141409433290432162605787464063914449593907142132556453280390954832708701119525950511771967150519483238899729022278814131395869067915471585643164744325629075075570422142346774765298014510224020431904379377767874959594225315147206953548330204511437924437639797918912434067938590348558407321961569664987541497580237505208359605256283631308769404026270757117331595629054319386331193260683198112886289465047278834115778982880704865437472230302842676495523595092056468620180497290010485556203256059974586510309514284899016776499685056302923728996915773121007338314055151724751158519624257533789854298323498258873652050160946760337553937507044471065584363414449295765094645878188434062138334308176638660699803929174337874353075091785503141860211018592854085074811382187242282564200307094240813575812362573556109966449705395757326576793945340747702978449458935370821122669043615191561527073919306305632381733240647247331501518279183255449111529653523212928056042942627341161412160504994275334119342996347444867455717009635079200240602640814007792909189072868134917504532069429878701443063828221411393898645947560189669387482971537318250699982192698604226376352437121157633735567590811074397463922582824188130840201769568410793017530270110572841272650374237646108951893664819997414061456867640943458293896765574504502537852772191136218858283436320345997139725390310686368784983092514397486008497625692536449713242146136224422333026807993610438543662821347775750017136687170158734781977955854202279034714957014762450639929682790344721677121822875873229027198822061891617019015185360067459214280183327779401387690332588263274741639641711733529259456669132240259540274501411401140546331625146199856891811014293932863383063535003054918017736945589488667626933435635481531277572178956093619493736126854192148487150179580683219095150463679057031547191077505306126183189946718971931644403559628043378553069882372451826960259772808705736158757195479166251290761150324484875209577334708644578707196725770897478255580965506997013433556452050638565100933541287177765563651426773665542112153688421571480405007264967088660809644980293967155706672527336595013993527581382470890881802597933913264480808578305545224743105653599094006878823209212862430627504080001359689562401770099805026059640306526431528486588755236534392277496547965879574575570869297192263877958203296301591063002731544667320360153972507706250027429463412967045234915121756742682414209622203247099248470169558679130800668186379098414285088587079546624680077653777254107677213841530088391748349671516349289445198417627770443179790438341279109431704213053375184770638083516537900774886144760930115045925089156439117171154239722609730615062650427328501798215649209440545623418346883750835054646811909195795342677418438164877141382537334050663910320259643161604559047466872754328522823024339389951274591606440743328384927285316673883843141876840994244803129199351262969238432833168746284894637267765531210185442913632016208368140365119716133380849922040535886181398469120340214379980421749753395533352482387738225014211152855935824229217850396816794430210102448697352016989192609564435631080386348298966977901714029922835133885653317004854153438394308145680584911275190139223806359846496166425444675883620550407376242253304303397318323984886655805498846785199372820852852316317195641839099874450772691175568484305893188535407267986304835320779755161570429783270155454734645828322770353026167840892939994457090358744629344984884986926773059524367814060704295414494759901248706404682329343536774060385005809609858554136192318344178377979181860116818302996297279989631794708694838843017507924757204974453852909074390037455986091662320053482166385191059985220319712235820438616370214387269460020162803091515090781617086311442417857556955445413704511044593210025312609711135746274491381164375176185625946938385304927010342545029820900144576463476707726075453122608197923206372217016127346425398626872780189200739243494788235586051536162760448731347782046784279066447218196896897375530611384306532757572469289022072167442343145658153833372311117710884510312456857968765796545861525967220257052504018191103914381474966321100007585156516902794530542675889724048912581443486525454883936008216575296614950283948391080551579981629070702517964130090476074764994895777889439393202219329294620459585288003570933154807318136398313601828511024745483125300201779091331067241389069943410890177924882238269137173439872082190568661864653704406823503328681512833071322969742709822116650189363830479131893330836419912307444612726348182601725252919732369204257277863669856904684187740900454709213616326769032931256661215662422003599478225237916121275799031721401722418785591140105823086925537630162327863632888229432826710277461497139867821944524878459550443264726223911257942652335866937551532830944310684274749869543224323909905344537494071399791608766177946910772451661040076185788009785382583532240608001741037731089804771771284219071615450612269477833373121725143902612634522925499451161016056207387284430296683260028626931697522466174977172169133391197872414587319281656833758257573637920190340427169518923623827335216871428132223972828885750563589942323802158433673981995863875567267896484350165035139340779815415200691178103797034700638304237925325583312089031308242881822704527849900053692234448856815706511754395111279901665986419204692162864603959592726573914575946245540838191537458142057019716512983359042918341396183208728131733288150499156681362400518847360417651447850780547104676930899642153452257670953981656108025790631097792640655953549265209662363766020644725590731626222242342753190292924572408695670852905284268397402776692162118169563064474119040246675105939707036924584999426380666788087656012184217783821153517513491227086047658186743580072811594299922369174495098644233216079884603433025054350899046210854388878578286058661867258324567372736059251875533428306678204812242897634404269576888623564589654861402554812306686599121097039379078275265309487104637402009876144505359870042432281394263608333995681036452840671751168521912081238741322693115997928042247273015179824359776988869385316513085777642107589633440364903976306458330232734477950088128192560993444731905501204193426296158462021500450577279538662840337720160329169532560544821718871044352320499291911213322667749489912143457817472121894396880022451248647058779939080469848939898633974828702767400255745743848767031178119535577237721160376428401452068080493814331174580649674678162806848445351558114578780756895182536746615722497380734484868116100483512486502865917994747892718073884241251787121054722016867401269617704206747425119314544726439765528861056695645711724354643057524311624609954207129728024519792385242058737572621778356349571039713820746901771780199018786955454476065473257776323128105624600861440545606400926067729154194083062802665609967655936582276934401932818767094584074321993521349958022686888537271738067030294464055145792623696796782205451191631603078090914347831602323396200443482867693006515698714323109108688564613791277290890307350634809522723072796541129993194166492638031303520789756503700879529640107130308570597244600126736484666033709013424010564445829672774350533294523296947391757690231822398486342176738060362194105903478968247535165137236849243104042522320174780416344080917925313094042766052431674889092559646110315230416356231178401503182145907691997012954964764249393983822194863150571313359993928140070592187261587569465474299990752406236549364894187081042385824927076539588885732349661995199225933649716885170129010250963750122556006983067211861123266673175887114475901945836343134530532227717332366655169216169997694891263165698566843308103387104687843259018986862818535878645645092202146182506077105962358533182792828194680290366356392566234761546929177217510885321639884836614930722248140041731034311869349220693462230378653444538000880593056431052459887809936901838232117476221105060256091841729914101511735184689625824028473281541724604409398295101327364351067231978146473908293404094919554561506831747768644951134078042390331388361272911584947443243760292859075773881953218600491995227620127131965365682924071701418337171467157176154849800052719222694563264697629258326729819101506047283364776452273921821306465888128033820156529437901578175927146738404398310333365629255398131398214040663410208113901852011089779529962545546308900138332419550103910347899714196537120531210807675652870678433716990430279487208627517080635666200767211598674281359640364942436406877219380170900856393822183438107150993599563716633146479558775911548298484594231366416234398605656368911478841699293395095659054192665187892098736056574602199701687198521645231231300966357559062549003915849162424396904450913812421917383105209196505798757743001526272642448448094338044490308870464827693334658413314669968584837649876789465223149945961577639094610273530277873529301063660494323555350806872178132450158362872059464268113854780577165032008417988372253536645879725181430243749895368399310842203912816482654439567911200405840084637635116758061231471480015151146926888047234796127685452136195946118538664201636904761977489206785651916104082537836740297017107220677784138612481136191732507522112305365312749757775779131957233912447324465970731021036066518158542180094006504168956384548211739123954159471478865065088841841790440884341161364707878950720547638530014589045606366654945917879431200003790751044250822374416776158856036954774686432766904047550682629505438587967248641699722092403831361396157316900240204149207685317114880385001491073541723617790718105231266940554348289475139761473184502212642981289166982324317528635468010518896111929570454655917870409754107654881970003511191725930722070411020607721816277595968808568563586530535126370095709816030107425107503928961316949954882164703221694278049052966037185063768924304100235504218565576967539877310515185371149453038073043290971498467002814990638750058428578924486595120707137069552712682725784770197277004690157516934324592064143532773589363726459297842378739195491789450311126314426104795920407088401368011069063714070754500354216131779698727201083897506471563558334056212603233847315298600122434558951822488709298106605039076128964802536373501921396382121033975673528429124454871639121748721359328928555203459928247016090857170976336396174597720018257366642379047381923303794107047227642632001145031259516146173766339567967137885573495475556775354656720353810275484513572814734729940583699616403938486912338599373905182895695502330845924065536517107107837233078237901444522504720392827487044428281584268659321050130020287174492712415690265014481848058714816479676790690612830649939043673013535606940728816750258494000873814725950845907100873294815364373121945035663557750599045636404132676755601471395369027425036944244668009063635459289872385515651618706097231283619598577427361008149375548475359942882979928807014687566392503448299217620954951336059854544706314208230933749123012040919037909365345464861549288965919848602725656209686438462086471717284237456176765600279462055935778516081176758005158179043842104519783562045191974448571219958286466120391232899455124946250750485129149433804727123117195524889839217572094623552048113249566251100173097051982750721271037438015521266053501210819973037909684894790152200699920411521515308818438561489029908634405864150269966159581646265193510880588164194260051212104417788096955929607022605930786883669757761688723055598573154918901826170664287944304415238628853869588325229056338234504464561237895575350556826085120268275946098938524128147518977989708988025175461220478784499308561914829970981626427607609059956754342952132758837922732791186635732166112453617990649148731876060881073153346346828632325042256889448250232414327729404497314753122933469717957049103017609900556233546814488964152810028722549435509838761688275953349140612161297767159289899361733753087954090285605228613948806865927042919206478849200788790141805409285570326421868559722379488367331933822060080349349321804130473848348262347398666732423758538812344607548571984021631897703782470138878660986066237251824090094809814646592370029192017905593221170695136081420489414590466922514407937984220210663824143647538284338787164958214413183012627754978187136232135175269509944975749890083981559756586228892910618568457395232871102344761789192074720714889284117134489992969306082882427411433448915190527882372848891382579210268944573346269610830556655074948174980971044679082143876977543776214385276651574166492582668880160360329149452295324087277767966770971323650602381400037702085546056417771498033201358787282449779354742701832006017436317917730002340501847179107187259499343894377310205789449860706214792773605129379710600321762629874941508727119572213493338752669084811735257144815065484046819269524257074498777444605938594272382468470692242208465196239730185967678566029357120232594082799984405444615678749731973649932376962621174769618930950759931333017086751178664026119813336116997706760012249615407240956169070708064406967460912367345844585720668673716309967203496915121821831312808031844841336936030526422446935120523556570516403333821717815825280798638462165317630675247136794451835510213797254413905168211510449887962140648526454848428470130684913647974568957827328226290756592061277010136299237320488210911737310918341564523574025698060783180419023471062422998263066709621227250870165938044776099081461565130812110385587348357103779619429939716466949480332051572233115919139778968493311532851077041141688703012488818121678462046775107260080213683201552001270645208567921062768895627493869241502021193386481893800058639196633918032276141773506997323058232125882998876176080553977324379993801464917062280894604044607526495297041230520564713219179389971315265765613168800523305013895817713494447795580433237833544037410424108902891973066500754789471565166396108337272171546753786682349535168269381234038256866096041124715971134384336773281296975062139246541738965398000396738290409872271068676843779711182492904254686794677389519951353488453070798512747639112558142322413386285121540152892536255114282282232657121257846852877364209601989088174178711349760362265061042319433450117903185552177355181806262570106237941845054768335834306453946422886905969102040383977157228068877185882862851806373044322397814666861181281491476321910352578180971159877443794373775465513754184523568165227418093386783538583657420834865277426513388845935630285850983806057768204075093965832983489891491236110331602947700080753277373510686237109917396392261649627702216483330620246664387008944257546254237532657571996608816863018426132288511233134766058182709737575390914872759583179207844511512746719819992521763247020609119476861658836795771689626039143874228874419096205742801294032715637503584525600259100642026854170410730814861612926124568132650896848880119441972627030802596532261249735423382361487675806895137571807713651157510356880770071411614524077994251402265750231223401937045818883493072143540919517331090055479816079498250972701528330120973755771125342819844297753339721981564254793142272542436304828511749071621606952812985674486641394358236311044268524991152275013011345283965783990644799366186766195175876221738906045796795647349512429188716971304641898054667352192590118162444602089084074477093256878960487423501757777853604754173211734705771486495869686736789843449642318398303847293778549976145728851792826981245853844069485651500132731392037795393712778254940841666742566049110504480965574143347497753700083135249017589118150417827076372311788716898413059620251550203804808893168349570925533161800156039720988830907969267358879215375942118121737093428863057677418950798004009553946139554965022593518320700051135985145484810512476666504756850116871589007207461129806910528821864692933732366521451679052843654887518138167296768175375260340987325853374533658328659484234183584224655291474860597341863160168829670677084238271799232649355050770943897140082627302224770954320375765799445063812270984709996499292365387253674275927820430724713877730561849717126179971914113033404691084168265327811013645511552883805942737116731461198936476298246694431749749123847489600586198126186648428374319039987099219476018842776287599658080671566052183403894734569372243784885343400673360648966391850430088218387343259014716940952252724533221727722668214032716115646325781674921685641283291802402934367405137655382031461731162657284138839199002854438108169935045826787842636033905768591796942627810428358080611876322101110207205232660345751954186729776706376905422271128134322653289177793114816261575324894357043994841869010083882005185329200737307818681024989249792522172139261124721466184041517556469082630109008993266108465496492210805157431209402487990576525923229799127011180740124553899760249906995802729587266458925572512169240888833995808122351345587152038454345160573803824707144924469344410526635299223952119744482359996362846048895316888487226379949293832012165207660957300308026087638934052393547606387772424052739121066686634542445206554648477344448406945089971268595331600629090804469457850468031388603136337988881492290974140098598796900259414218703629672925391870997591940153607549539990921783078791237568769970227256078420200554083009555992146633120476090785904586708539203186397174728001694920640854927776015908025784117104765245227365355163751265941890634998640224309715672169451929438938154710199574591811780718392150351223624325670326163538222181122499382028220266313557755054056725927988650821633140334194657495103889861411644509489537201878262820631324950305306084614862180495637739147871495524208059468929293129036537415040990912626894779627807987072740845417086378725109448595808757806461874114920363934388560391804627735900368666369634859276552016311400599111950252324231030890752077531304536055856889528441107873785112889036962196762882059694003068813642264305526275735160647833215254993451559672285999059783730457357430374330443631803529268697897088636780421207628125647996284817316499275270030848482013475628363856878088591177292050181134116190642464043091715158624590670334832241122011818628348734834377950955456942153475587216165787405875162745949490529958675323764149551252234479470515332869458267274249299097447797524531831622841655347157872130033548832444766259573551755887196541920859247769598547453063383445082618201276677592189076236054451615891385899803524355738071471734882187804903209752160756761487666655286151724932871873043864267934277643368049812281418538481601073138049625178181797152736993883824088015984561320332208001494673611688678010960574552555222263537410439741390106075750419769766364294056153046744137654903364848000560174748792727057559078044576737180033575234074688856726598896167367568763370431592631602452264713064528627854695609924821941467325871619232052602228512910459794730152839071416189210392224546809522201626800043373377631145283689407698428903320428176585445763240531490121659668363473054936848543719973761890758251183603620287747341799284696450057574765192268935588109307551176920720553650853233599809672795305128686177024745107452247479683535969071607229096745100041535250621818096306504877975350344695123488471742025009524396762034924428722944839461867546111581253937484044459287559355151406259124955030927961361705246701954479813920148665177671173566561963249632608654988431329931168079566736535584691661281315786233439710458655796587801415238633138707640349204757058434667900835927941165268840239747052535535239314306534889239951532561403011355059423649751850279788286163020871285248319105499752811549007741109697277270831415578695792660213478510761979588698528730897954241060769524490710689476693451650971434617877878824160470918242503764904042694129052490041434214289903116220802503884558424799247310583138531953100832682642351974202784425284434043121850072642239083016467714262417339461978625322313899661183950060296823680042009208950486711765701553194959746524077781788016692281450168495951040129282761310416926939809735917734750116037711374040909731216706364723992180307616255655695187289328546849667493455483125544235015351466439338542582988692521724487215628813679039038368978193428502991351950756258770921203424891253741691458112315358083846206823481678132452979607986114760826136854002477070488639225996679209005570688237882131264147410156063606823039270486698606795487705329662011724171858513458578716509781450568565301070835440843443808808942601466735678735999646712512387771803418647653339067995612205617580442475885948356354212358833285222877283281824908735355142845544984081064745595365313201068332332520367544381064040871859420980184200660310445758824683717777050724504162493970649947446117863817130926905249722751530686836131519301031817808607152656682457798030264567606250550843340815059172974336029016011283289420325975900191260140680279288025716231832303889159555455934599365222832547572471247413429734057017316292728094615588068782141058475546568397465767443256289174156927234107276487987125857781002279472059682848372359273052514832398262208598836020660180912225378232170543953767595898671408024199784447707122440569506324950016566790171441969633626215963363273882829797193557697817061704112912788916507067988494649250810776626864007792822083859449448798690358032857078326855960612945884997544760549252487755278136526078500133394948790967001779168775210152814286175437352523912893935196754216330711490692212952568091683717182371454741227239688533646469667981210312288405063493676466201815140257848570260435520984045334988257973813193775281808499649581435357073927806012675031318802381103783420623669595717242096360747793358850468054958506120626334910118746017703999889578632739320580677713487594639448113469399020934617577750991382900246789439752113260355191604321514526815047031572132936414107499995630728910390855203363849812093111125961467241997897871759346251183897615506329980046078409786943653227982169844680720097734035275959544252012992321242774427203775517709514431734660263313597667841949269852461849584398621369422785558960657088136641120761536279828991926082944378371969562748876945425737699462826830090504724840001332544887517155716874653716702966779099761497382206659188457992586174517271488131066089260255285836895052628317159947731815501851061996551221773802802171655393724198699381644671877257680476656711243623898982652876475362111417751687321637716687727216863345464938481500024233095451467923551120613239754394269198799966418426713340387407353260275814463316801799284347853712003146942784259084666765684873428821345625829214639470515893258475991513015452405996950777505240318875852134861990062370836408163375207550697925478244675671875800409142100800587062339829302692029467017135541407967318083236815682333328153079912058075081240427707898200575770599235019564593281800063663665904867077290416192762764239658465845228435910304297663215893536428991148021812185794663667303316852745369203631895997225784388377669983806795722097312459381144685761533329733574369849758309930470344713751382395666826581415368867822716791359800844611963723172952624923683139588021368972942103076979212999789669328506863698034882401737859796962610188311620427008152069647617571359224756525714239557895926397338739901306375327831392678918562075549613950042008831388635748227838536923149006908600730016891926165258644800727285884350016925325281729563920399722223270915144438462183314771305266367048414088800992269303558906292292677783122662596796196335011760714401226139974238553104235101407401435579314166538453374164865976089206678583222316266992263743193555726735591699643529185048449126576690984013146846927716008038950741104549455509854147829843550241734860408327575345609426255620085918544629894506789578432703321553924667102826911939726677601338154553981804222764931636069944761667280879045358214876516665203437254000412926550621337131882636056246624969295172521473393724605827078313330884301691681330329086126727193946345158810384101180916818858734133153879406034691610373433367529891735579351142623651189383396298376173138713664589774445675092203983494683358874350385543451700779407160398724333158054265740813918137877653075931412705625946813251005411267221518925897802082695121097133396749001634578042084784398873221758140447394365089019839635960069129145764542566325684748775517620170142515270735924134807749749282943077023395278412789782226082309073451600323515242731497414369973392960955445750424831774230418517207585941651889749886510697648227852327245208900496707028083139816095341334764310744818048379061060128101670409117665841505960976554567312139605000753931754977087406938713292470203279662650096187385714070197996761129993376998650327169524282167036235597321221142370566279655349104019659509825572531266908045347099279069371869042472371100016694354351994906210572629135982606480967437609626367210861846258028170085211266479466636692990853748232372910673582607070145551326044849063439154517697248610736895755240440974126304668819180595535573012897040804693637632108820900194540760739529554679494327604961828149028290215797271781241356076508511809202274629921249079365041215175195319358534971662947310188512098647634272899660205299991616776327208839347015567209822091500367972687240120361435885649982414435163749327040413832147823054582349065396825324252599432745043713803628789645283672717144937054004566784876101585657699728687583139806748457691493993040415006004432344156337529592679871997898598883244568243667091677001337291454669457923282529112939748018313869403613525432944408694804444370925558673743990636463675449081351921794916157722369888635314778978929475650995294356446500442607331974667868746070114569583338310464514985872602753698390717753410845521350181934087885054170100662437291428347699819623565576668903330308349194958737429074536630259522290395104587576059785979541910463205778309933776319083359328753269991939186706522984888648964255672807183391940008684197084093467849198799345100609531063910858061902906377323319717974698074730476758830331329616178632174578625718894162822117806785737157602005755820424025154947745522317592337718414911047648711745970075738498377870872508799154705794243777925116865223322655255614359467485007751845655137969739516447883177368348361999298172703045617291021394763441501082083182926689834976805647887571296532812643026988816396141306553401364567697853626175403165757951823374772730992301938741961928168132395097671611182121886648435565372840270282907744171454494368441823327646026069224330919743512288892032062781080254913639139976956369873445574026143790234277904359803616453874405128798643053014309906544192331395232771449362752686105707658695400608208728634239525864044553356356681643363359025416884113281965789505757099798873908581782300507937153236320986797185532439605782926355488982125852109868990522356518260073584315683468376753005877729889708190993931474225411265531594066414275734115275718532173731080710279642922154464839364178697144496556765421904045331408973896768445879435900934425696501815050530228351454981396939001387301293745289123105738889095724855155381654616505390805379803288660124240858318446566299888558133180512043768554360650621784256270416638280186113627437888220910754440347882103454341739485145310533526344229462689467140197751294020634761182352069034763032004253580663321829105133553935786489625352884647297729284603790943270498946328193279177344339100765849518278585723358342285362950636251102676730601560794253475149665988392793954339472896333612445374198176077811579065064936665122802827128709205975979683947787503599000534412992282721184250912849488086641151697672067143703108678703218291143939117901492072356277313746502546116285508509293756187700690490606100571719923606148427041335152381675615234489651182649171168995779095334631757705679381029525658234581009504984394418210755588443139652482099571046554753689531948419116850213445624584079105111733967477703918450512863529857929495311298213350619441345126056892679260185764345245403130074483874930660585366334110870567597741199004565534926434077909947615970027344514801785093712586078703952832158126206645105243565397750104433672946454755827424674739366068835247162524058669808148513855740575159626946648690403385382135864034480570564026050710217041495157922628312931568810327454836800766079390315798808079633320050511454342132793950969451631615894180522475409225693207500564211418847551828197770950229341557764598592276060463398044916181020560451754638375793457688490339778050355889407285494206478100479011941592810152339389560295223229022770919605309366924543323296701840484492781347619908748598215491978004464665359709431425496438768608631849788343571220950447003234665787198303678716024202529360293932391167818136514273601014398056117415655528053951182536105916149191419544954376835962345950886284476284915659149999343505090408457123088033241715331176004319953669055149256730303570759991630168066737739386200332722393621084354814493720366874925991641105202311225433807994961862585487066520559774151406942043333440307861423401778431806872605273806336004817120687941190707887034181771710177931763367860362223622178314252922990714444723903100484493903753702523035017918098504058034784164741719970809111777266095698841472084060986305628531252030344302708892205899866223977448380716433319238021533983777757875758176710364645237927893231106608767866784827884326723090590560754322780086535375992238254176765407013682041826874862541426716928355360586612863690252530159672538296358800238056729169774166540149915915110362429784107577698460409167226641738757130702688927308578106069518267226921997497647478189390137515717302027256783333341286907201645528290013982463814709592639400960649569940617042439497624314936621218281006465459526618658360257093330496305540905559608750462265024857608463167935168008072148488244184190593209827999458674382223125889508333935281883321205418377317235722534173943614808997000076290640097632111895195499271211538418311976758183608211665421013670287893909000682395965230254226631729403938042580828416924677389477239433043208258085549949964034740508491345220229563923774275000724312578911938629612726536201684375408940461589626767720527277414326071556711509139944750182263831754217674458495448235649966104143150180180748718161552754808759113633717433388451398348953331912609009239001909274684518563185079140963861659408345578141008476721435343002473756972999693064189712394479738318834588343029078783533636534349288540782008582760384563187055755951229152850839467718969284866254605410785277727491242631699822358339212217334893840293129429668214892640207554054817311106430278491166442639765733652291412609372072156786359201560358537123405957248976764444194937587643823589851624377986348499762566477202405953000812894381025329926369979309918127287626214364477475069913238392658468678301301139584330802852701423243600363532038838457047826135259527943505877787947682627037067764085132567396918267712459450418032713308270066317011361068952895468210275941875553617566923657500362433819962192058161129708079383838437298090792030290932222757920963659253125856229231006548615856173632562258136629887792017123032465274152056593211729663226215969652982441878392820785279853621970560786930601323693459771216523606320884381296739892265023135520284350461215743102308306829517818719493066019156858271489129964168723596837978321080098435254423010323371018511905594773539800383166614665174220008922310042956692257924695003566384951661837038599105861517722246006471451731476228245115364245900133936640773282629234452680093552343979737238694312164890862947306694070981990255639298767038628188950974697427200042498849641266981084264177911686307429547443334859255909722360587386840314660128354081308682937026469265789868687781638202069505275226155849468538637350212481491358134255093724371682765115845136604575562216553647970087119126156568269300889214404205939066588467496165273462384327507263793525946772024977366088601258639243965276907331380304039786202372801765862980126212727217988556885773956523585820890006225685632953535034706369666328271120451239432187486723437395853808489885980952864838396871832488783213090570717644862803467392817251385122563881469540683484799347424735229553561929687379795760422099432499513950117992329144877178115251296882650312090592948992222135884476735189912789354153515630307233532258124960942032623258531879976651089113103566807121422778902169547901102050261841510818813975034329171766704938080185257213155566974439224847159309042422535008622302004277018505494862620201495060172919669350088897390990310950486527280276049088927961386370991050245801864454606532601565886348432890857223914257210906117873116881471685110968937983225739408326876248163336424259860016577794962431608594083587462041225809573134014012175156030531718123837531043007230053755609334991607892947855217409371196150769658407443440869748380352041538500739806997053117182879732482093191044963242715021483444135142228429184004540564803374774810058531132475621154797492892057665843595794392367435834703026717205347710528427729393436828865861878369505706888868784536872396096962000776409768132440340242581556304721951951110026332998880262773019264953290747689319970359770034008783328585170353937680200106491160872934154406148786053817081349629792404558195983273127810403673291379493569513169947346734576456032092067277643846818849771067571789191835135499380623143952825777628861826215145703797565776151075513429060267101693687865973886505141445830743367186249771929369204788056265403543628603541566268680620422269529140464972545226025056167731450938216928486044021158898273096859277890784065701816771426900872870288232513367161793796116885654063459977595091735303665708538033850627711737827533692077447699238589111798598654971417814923955222423177818462947037357727888299895969731894932936230235802104346780305042699702452413955187798618290933658823410129450878893495640352799216855196283767391912718951685211897416271058475586464039739589133680646300278649436865545414384950180613814822721259775309825876129507496308937210592231234197252567781500735322308869798580296134237419953722418147972339533800957065433606224763868866930277148885134516876213589818821126318940897190630478393196589499313396836995186542153217639404191193371616337868905277378033720275558336653576030124206675791372159673687643463958142787741012894516187956293749718442072212418230805591387148879738277039661836107964525491562292350198875532887518659003678782708717139067600481801865756852922203768964844994766643693573323594630743840271077455802735772773886474884366484642980733035887129972109254876385311685226334537990777128206436883384463236540349160875000552431689580200247424005360705150252827297855576492474084034442127284257771303560343907028679398152784005120326026984454903282071371143579057586206439556300828962346666590819718417392115497403721298442997003402331913342284014093537553707479061652465693536810246440398159906658082234348381524227252174658320434958448964826005925563838910237793075114874813864096892355639060853161472094555398892548176038157997651946902738918889989666253169327884055283765250498919370948827600713169327326177182967624767595336584660307404975443206623348362053065574165060097338556955760559840465381833413573351297706261061566066825025356487312966946233534633066737494631931593165516212788771103361696677259487062511266838416650799063006553153745136679291648273707105644175680538014049348311890241841009446680116683247925652110296334685887976813765006285720179401870298274381331087285870285427032468075139925310540602291660130068746189529573627573261251182114294989511696478205502930977325991606045992111319437845303672962320029017061971411806739244055212269653820513729601066593365269006598890290722620106608006742267809032971614310187607661920170310254724919098524068802052578878305663405945428128174126556724461258269126352149279742895245175640747289443250663164203701680815080202944204723048112000518182353320677663760201810961527051875513076570710248807769466867783143377603980600216333905451427759648198553042138536376100801412358314817161559750304651232389040812047285064045886759853343293549595041105477295679838401505308078456483314535756887382315836871791762830542016741992387112870537582951062019707919787454170109458552087028368705868054635679762650858446920363238712644864362324773493332864411695391365680542397470433203626326132466637647358574738394420795161188228785895359234192340665471447803022195234818284787835387920682873039497887400015064095516892700067522628251356737094447368602998327590262695599895068345417598472427112743342958456187566067271310978507404823573402663348426754076202417464836612423084846389620118217894819742104477723764083351078790665090149012741891657252353778319668299028984878165702450554110614348992957002925603695465428949323001879391046202728509914818132157938701038826238591476132161824737013482715038748427880421277457816229914413783718991858224290582975136077990572517927621110873120240269076218591709911161256729839037921155732969107862896012266035439182913235209021193295161692237282968860938288706654589862538647634281653011060544457062949699018709352379962097414738370035741381583637880699863329751267915725872678997756228074561084538257507072423843253313226380490282174774846271930146908145406713631243810867241638829331138547468871298583242897937806662066167020208576241952322649188448168585663184499389060117058330842070175792410973543579644693691731471414144348035693624232237607801581229624337049035807906143146571956288540210414064592418269665503831967421469740642353666825934274973189122905186670864453085257320521229304062589855638903297738576352516068354358387181668848205022567383549390813267207805813727710946619177357423495078511728756929555989008125066061302031866925971561598276365711493826546471420680884482308698844795106285291494358518172513176655653488758289234117952757324596892708613477668132046818195930867666578913622380845419200470052396493847718271757554580617693205674567938527032313471688209537883930045598630771928611409872226104167349585070409092242474881509987451082905258389442954514325546633833821129836412370964335153316350144670908784409484960976444052608988442868235220752711112619355149759415400308141299695133272711651256425020619897846048917769952962681342241318822719113175114713551166144255453263396430877396144635951703001422944338719871233719999003921364295852971912162104252011877475053743020642371108050769871436174563195583207622702894093751524428102739394133464449340141594644469975608660024386880806533598015212465746505381097879606104880392704930096100958074324415271474452817596042297026053524735971110393405657242039913992600454896124757759632249260397114105958634423767289996846406045289251660422235251272384229415567471654876348159330222231430634027188295948733718643039145749922108829804580090991510182538327304552844192990313433808955747072487896379972105160975881755147525755315926376351061954325700859131595508469148124107515643827698406002490687309168106994777378845458903099643924491129713284359943387432109399755040459335084495300873074577513913106169407845521699727978978925174082649328681944540282092211797599358558523348667389114774471063916664826468736615376895465533245160913387601986255636671543363785653222545496796498285031453224630491293972576016133928634857273027130846929859029006805814221234955385101132002260860077256233529413866303729714454752203474312014286929377546446763326782244092805863919398560476173432060818721429889339364194682257045108022251885128813624059835762352096086988904129280470510050236679507676191350472815937354334978885605287510621096923421895307583056479562129155373283842150172053683285787942308872989959253164710662778294005269846942003848496812813174631334650224684549300034259403440332560866333522456254998941693662770526582609369630236243194829022409433290813037508828316173254042461853878348873523274813001347461432255630603478497067632258617298435056926050284664963451178978916511966289114088222041167337269220932291240628343318917430177566772301532325753428229064832695979442217756040808909632968034398195634776893489589317327942894295369166680580986162266406895064249818284556657103481243249614951668493052962098356498886918541888952284507682197070047652543509220464487525759301523929246193617729713972094696457948430464042757698265683351003639141702240064392479195165662441159310928215981054617366559382220970895739767804780444054108011281330154418638454986856419874387145877019420843866955485488818223865270777516262385736441698928460810732997589835186851673416508793070831577008281034508721834194425133664336945259434403029810931715527416529207229346343619764153880821797268508298337409885819187267089792187402722519938192404508378957126028553392217481128789296952044918622715535085585965192677237021332803790651838011242130954774226705738274837073964545403123888018235992327462903201460579875110676047757103822441946220207533319917318898306062791500695676598135741652802714379058012754489888539034003625759046696095401526917756640987400641070962116768135630574932311241118141963482587378313360776423242878237618869415389584239190449767481023163002731322729390733380082085683536444130119500801471236919167953948858650768062039264957709141270145857427125609199392640229773771516931781191847562531491593740406326139216462872770070059994692264655042687833432352322071621772745417398568760872136766128651734537550388314173562367307724795363797898165716957556722313546857432704162260888445247223093036150403607664504331445934924121468240482658815946456469575662893363676068081780777474569351187218713860523808788384236412309258470418324897554036909911549003796874355274837639314321418924228432798798395128205268605294339527297532022101887887995007090233233760309072100863844605873224655649489404590065005808558785830436643103930889620542517334262524525776159600156263888369971281209077457789686566590416876422134776482555071671911561565002706655408306669936420967790360516201024828372946105156294168236893091667946365934269769775470477492958878346950245431868181707620835218673486018440981549053642388634985227631644532472820163156253381479443904117253784584187878276549162772273703891626757181143726527881302918432111173815850430982253080574370388815509041598706196514436657144007803602821934836714933917695990829786086134560251985509281037433719687978315895212672829959728673169999008217121594952757649124630602353980280607870790993884050055117417731073131812219012400942784324039852658522187331376901369458417698117130084483832328524247007054087499766521201762716069716911986297205049142439192230191708690320119632050831317957725614500452450619351411475051761790633075413641363873140629142557972615565294052500107895618070125022403653669850339652194370740394920226000750504722125857764023037157012786199254991967857780540524653157905300068065730278095561485101052646054549354678821496661054079127844938731240890950654504953605468120396439788019090842461550591349214376925289657310906753939788419309887670808800576087589602017164171925245903350075699783937190781061509209952547413521498863130414019319681551056287593387706448457671075605652768042393839538893569031594483028567825304611297640125107820016065469636985256925051081057285080930488683131423661937398936568138216941164219534537628280818048041138021313113176928525256205160192241467930724230868338831182685395866045518885035102689456228794479146439186451784483885821291089509216381950076835451883164085880816900291950603406481971161877917615401426440194069832945928741608088564364030663905552964994250105414056651944964728723338693894526929263779955280777697568146263125008980535398259570866906126217147815432027677706163833669520316505384411910542051995287311446667080241413724406401176185686605468034016450651146274376030386157513181641933635091712002183131343748379342906515502933341085691616064137455084959087755757369859081720531202554015798460417101327023387204477651551840379128925978537195736283460782673882213801578504420748966452699554817504174703456983561467500597766349257425737616951439626227525130803538939768154689168723464322254837054358180680806265079920607593870965035169934702612620889550762575975566003052197937940680207507315888053626793942871974063543923463432106474316997429007891952793370486929120881480460827269360629193673335591387065936463381711407589412903201766230979694181960878615469723850421035587959482083621492625155327280190650734559651354056376019457739087743715788162421765104663844670903597163892486398024514135361833040494626703202976156924856932370697003742439847762064087604196594011758165285444823570383299392785190160995998161305871951755640283537877675740389370468378674368546956278764219793735089349975901150272540679438773339292527840554286893247614470138783853405739147086701129374252838498255850100924555457551606605447910615982812358200026313703118653730752798010829900151595203100156132062753164211572391669415136385780437693197413865324485487188571759157865323659734040554685298012780141066254499712106286552176661714828149154673626898627802801698806763084211382766757226740125249667744090842260097895285258435474026772331685035827981937360685388624161480130384651494692953132149558447611171566447898552924409219897794593699175407561328318157402351622454516761858751942254824772727026063410957271244342809865626384660759586814593528687740604227790161742818699579013125291662492000272996531378247914727368902276813730816346279469406852195346426248792686013046789594232709641096001918456283887403416057427873064449923618447762324637302453184820992568775635120975931838497572396191387299240424533254945472701436563867499979201845964510391634516380068703295961355040969541089802155412373409321184867179573856849693473386459653695488322049972153231041183297577053690773289599719963543345707604414349395613260593333960386580558596092397482075249501310999577610504256563861163830986427468847133983755156522541941422633595510328446848063070844887998972904043534506494538514680544905074443474544409336942934000960846117652574696734182857084218777838937271880178850413417341387000536236997045970371982636639325027355225993404133616325745371287819024361155895462598700511936521461618135994381245067107801826804801234935282061826214337422108707213450114509036760756949553277077323868611995397581159395337029871634003225752867206073292181856218665941536439625489911187189451184725398704626552412417910562358655148083239576091361339468910124734869297157582502403888880358243194306131923327711562168961185151613512684117910916223048296652748891296175492652120602867036591753325451705443415589913020256846813328671078813560024453093867750288168274656079578118466326790314329963223998288999949548541608201272849160763426606922995411111375959027045322871000619166741851294061695989624959890159430595752122945448588930094706037824882533692186723203869248921578812200700370825645820064106589137121358538555053226293125477676430186315774587397247975465025377292984760117723621042456507823080876641276747529078588879783823902675509775578404441936724776299007246979013053003957354473767320310234561466325182202341473810170635269965255713678438485388622242396848375299416555523544804341799865935178879092557006784526969932778719358162136568771554723426547742270946621867180176075239290280007703359543762858641550289296284789321506717694388784559964496632399647333650889665017578966479393651979934008848144827178336416466274849805343017987525415409404795247112086136736042375387795222385227699608249450815332711209280540422901525748658625764884351065848312494130026415762207241645241403759243155100581681772702438195904752003730078534628315598475328044500156158235938820463118655548094745016914637042330578062567986530049373688909576941539436774174808467522809747973590965404355853687563510443388481429173583401311138829602199742498643017362104150794443396933576766656211242352931527972074149889145776446679103942500094726897609556851229898743904237074425045897281646372982540839994474822550523993428207311516729380475244527870493354906168041864186886150158710341858344560754623130496019570027091332010825853412243290150946256773333556168395075993678504116780717742624692722521228441455542298170435363372950010030739481688941873742426503874266614497769746708395451076976886411575222789938207018446608877417564089775544304937219623462984655148082731938174859568046496176802261162712296115752421228730062987766143689233453729389116160305641406950247198642251815759849346019259329675465386050714191744728537539954537777703396090794158652219879126914063376925018407814676125406762394574379437839227859408188005911637365510989968970746154969717536826087181211856098613788229715847662218077561341580449875807183615483775888660949958894982328630442098604696190793744267708642493702657436156422602552556420430790480068007385128898725466372313727276342122947575159197663061345920750112303660557337785625328426099343682498527156029430075868131488327854069478189853598666046435135525996700270955770974986880669801141510659341877101951257669182956321612862108466409149802593129858481675573552721376820423369641775430066151259361294900221268051519447815822717280580004022410405266630926399003264052210542503757507925812238735770172410179186239110410627983968692178212671934302234408650327524330226222037406100475840570173251857486948248602348297620978039441288461377505545721688074740904900286193197152983261661203776106869613372728212771457220389311497967995488061229213937924415246202388946932070127130283876763935921906160011829249434270352747038950485933061391866083793442156457479135364908307940032605937941959779280943634170907614432039201317716141780447515366425323956894610216348083978412340268010800709973566138047203619651060798794331413374268786443128184727776869472808205209685125923976236534776186525190151504621889383281434625502239703338945239189402720242723582064295464388077308472953192218879357272245538707639581569879720321025239492392143174464056161785240518881496417352612838775238008104385016415604698656283073330063881989964046524532270426647971023243499748055760094923889296276635268819276801262432094010223832983832355697716545857916161034042358117486320060004888206924911569882553986840741385490727190017736838742984450791654563252980582266949238968019518783172572274500995555148457669122889712983687631435919863499522558289131725762177612339220134124211162812007816339802749905144736689234966003457662059463958512145773446958633018300401932467602255736199993010042632742830111390686791396484624159687635978853791809057450801855892585422196403333369366623771747158693215961196960590068639121354531459753258442037678267785253052416497844082140826492685839365750282556384490531028466629901575538596890422475327703291965050455136995043828878420277015209310352505987921318005253855638169465588367678660255592299344718335040767399917831940644840141729569785615351535826503716441086631376100226593234709705372873652398920119463279158160612739824398796690392359814501311900799850767833556123044001884824020160200826058005860717575990568830117071722608907284922924998300953610602753124250852358307820779471508592227084329936903800558208671042746282164730104505803477527239939406413504887547869107156949119716973531480508601993329953070798937001518183953467488166211524847529675617564545806158344105112711001978213049974952554076013194213206650665965687687907008921759527838352620651332566744043066524514538213828521291977628039419490566480046011266922951981343714149482369131506809323259477547831178822472473245948149342023982087554065775577109393606002629380224190844219432671616941940605885929067866309312028970586034156814664868466649292098973289675732345077820011061538513027155068594567588009090282396927744809608784716782062250968039848730965952204595430027205881490809160289338338770910730486952816980344161973241242710613725399886231390482399945770417184568981440479202058218207880046129131788583786512230999575922429155956901492818571142380984237069117248011186218217237317442786623846036034714138453133296366929339573329218229459217975468638676528476387170833454511015652644106211472849034056581664423721670541778522491294259619053773450322568991725000178653481258062915004346644608639840556060738229831561724192204486803304563297604966539705134021991846553184419919920080136448148399231898767615089007021129837347617049168220992283598283281842912513699426082736232802476039045243395319375186207836601239960142905118432055074319582208524720797783058573029803249089837571626729778672615272069742344884043077110798897993397815471886490739503440101674413230490448812042106355726320376106340663996113483472972150900553287121190665281654237324735658872862631917947087327732671601005736688979206367793339068448178678371129905139729097010740476444896387560282227656716565409851499910852064321111760283760370562001169516339942316648698972173755840236383685824846075578704198707097113826304600293894144867311388716604625022750517941652024273504018635100267321217684502860742803735124099845446474515071519125139326229496188931629273591340353343456253446607293536738539019841651091429959758157377174781274453284304736742200634297241570727521304281748285258088477592236414885125440447299587141766351346579521900212748311631095035527214334073014651296813982367467804569510214453848413680966641011970000709273331917804643577874841002567563268097462094664310182703560194563661749920490165137602174161521936208383920086786770313785862439031904546978534464729000503825598901557490596275827758570156004018215273336608057130801953118483456874476273665515246631205184017187057332123687319286877963919556137646961473580924159325574318316622766298529596335300575651937978933275967404365915569536981393830068577997645625765998662929474847019728136171398151799556202263053693942537888196552895783436110463491681768338781535731521744461935758419032043088314904220874504779510074211319411552252166453706253056684599446654582630251725109919234840522748973832191679213274179516345890715636592139014422390234167478746485776118191904051523916212022139763551848269885403923327968253932744939862172701636996477961790280313366259519380752768689851571951410911907785257721180939176684559243674093239754534665513697087574209671078881631931467282205433808367093588452498851899718395842017098586211715170043349867825424605732680394571679765586352956652179890068406872051525254028985465141165029044214983097248199150509334657863091314069176606803918762069591668426012263297808729221119589169714565945337836222899085837552390620267369919928370961561865851717850535774963347278555893163197349561660437634450512886996342833396092151516675825059554350533171893564354220324248489595319756314659273333507292368516156317026979304190327601527273587574145171238594269741738069803854904639868038770661463548686148929337788980078023124510030418551005470566839377794245057919887947375835184099697163316742682215033181753099306874598522077556045402416676924649546897754975066283582860684735853783117042209072224232642309087348736276645080161195335877623326513412962179397954889618869075268101954776604739706256017548435103562898313717671094221462618302485800181407674868709592003545339399118510869645009610723047158877421990317570534271920848467956818351925869209016973938156006730281184249536657157614582048092598151153360237048095827671789942538852516540019719214463578745426135813544984358274345151406186904996956142784794874415223636848951794908331454847590944992476054403488488613900107633411299802075563480868671004129284949161419969144277097276450968474554626483837171680550946684493615650451543632639512125837982744955421951205460795496913440001627680437606542019086427162947085320604723155288151014731335281905596467194758894417348020544328601288322944703995582644133988419750353762392796886710886381322774034976212242580425254556781051893530602263906943061780911824028647768852217969396761997458721257790096024428168936672364237365307238283169275630646539868326717080297906180537992018749051053144634630769752832742716702530727717445746237515780341590464848535561755304266893155972193185957079644844899814938622463630758665386693087808618435275294479300855439659147933359671930821152608051566916699490154478069418158768396013919287309258047793258928607512104270382673204076444837957805374125595469900181196988860911036280325747714962172552910337552510666722260017368167221565525005423259642697358284514760752712196545270722933369769313103210725061786295235019154331117137444877254348915680834528690879498961728510651045228120638817643658622093817640010412005703951905263073560134335657014636552952682244217583074102629542803130111341584168842322428042558068382880512368030258754801337868863395876692981245479650804445466383344222499382043973631202486850480028854397076261686471728086247349459546963694213697350967352972171659107229253709270694917105298998168724927133468893111347880895748231581280991266088483960474844910090411411258373617469028629348441931373230487553178783057106392947340188059129386865602901907989488962781892942975945228330237802809671256087666590899214368939400999939042581447662329365835607222309237641825750374652849896776295055156817492254645924455820123964438024684865411025115792301746091356133810254519116366835191439828184416049096257005552669450189036727411264458100076446829397966915805087853228492011605634100256000683872603291427608170545088709037435439620508932221756426684861109120114572569499856848953995932302660213189049397698183413796938159009459102916887374568343600948654357419094138851291512400572672093866833796461781707698296004857354935299056647276012939203605062693305889142021073576167073741779831121260545815066434288447169935140015811710067454167921351270563353820368861018793659144582447387378840854420407465542419734938788985286590026534328872883514063943834939573236780859982632531027782475145844161037733086005196443304909242753337995319010475523621805029198329248834339434932166505713609252902647751234214525183731099744186085561792386641423116328822895530643153720087869673328099412628173721752122568331409029624102620984512725037513450818812255067411239415078060581205536856243934818515041138533071164581381357603822916060858461764670363592939530687151587305333622762430241333281944898611138847067768794418919852179470787931710092797834915058955692902446393245312686662127908220468057603288395509098800112535187028059365616705635865778535926069286013599065496177186953176536014766630635696471138381557922033821226069024152183091493653280509283507269520550959904516363967375763370949282720175334197190725543725456631373621600435273900893726902178306394274059017344598670384283558656227979952070209044638720433570984962008198609637709969206199746480363248723007025405388767912660280016050901402198342414053146720250699596066325534334918842323265330348340221134233841169229790623121790902267883671206827899678712674728664941055582603977294197215591522161622061057303852207411137715797947979345756513156009116876396050442484966864901271815474138680068507803895855182456686029274726290082907299753394060370460829740088686212020789034808699566824710998369578939814119255091595135394209839521216399171146789043436720476342918168821135566211213808391069073868529408196663132589213829125061094715514728400395742893493096097798203675786118491024384985193084900398342181621096285386420453398923964829650043866111888223379594064158691814239510291833884538041195094019540322896557975758667836419866684197495566838629941547522871280441123935566854612241275963004001225915570122043362984950150804437800606635934091105820207649030070557389362677314931029080556150895934718388925414735711072746339313650426299238433850294788690930307179385208483276830142273587471021863306792040065520754103953578248171142511162612367712285729809897832802913790376635594096269281065688347923452160102339447362306161004716095403751771383918144912296591679056606821991435169840522523264957245682466425244722144069553010153785423468212200066296002503311327465280942301826809388452909301095455916846669822399269946985668556269389902261821613035831183928406468009151066765992581050970563360174057073613112287124117192611557302575064459925054528984492106551137374060638034636832806661454064333695855954327059799660331476953384205194901051061851878477527414491012643186235132039978354389547684552587496856449868651258136805037567896297157934447905149586509153280890972163108754036338670319928197293660322204355881896452770989984388027470443168198418833734405353427814384836484836180597214909882506556163768557350124293910492372751245409374681188741667611158066610509986303761328892528926301053787182430244030404903481168933918984102361681133486435150443790028157331264023917413629005303134011929498233148563216802733971296412177682342338067302799653017880345483010020502583677532720065451114596985630747818444188557411319152225976250503679598117291187201567455019906808021822700887905010733142143113215865922236724628511747814942205894482373922548472772553267530192396996009406147004251990935057557449660755145851363245809997785838435014966719876520620428165077204211146066161281576249548036391701021187989142163004993118525872134934210123325605665928346422193606882540813876728680921687914578060288463429822619827220463696788543354265067511705644856688883195788043525439796923910396718142472838433092388150747874537831020181978444235321365481845559656754299190386169368466137476236126795242033207757737597510972483502649261805556504026526179686183971080195831354225166460078154738942641005050674590005630754744228793219155349980782191390561830959510912304236510525104976235579978313370326183367733134637014519747657126862235175434001223705502460839699445484947656198149217836839905450742273476825580173927463671481528507936646023102110735112134658169697225479901997024846936155641797180378595271419704924639565322023793791713835069228367422920934519214237550727656498679092289615114857627237913084304005457229725919732616751587961977124422077462168538027936078404893295019716279546709598860593173412171833666092545621546667112360941030112246336003666629164983022182801158928034424246469062013926723963354014243313443517423052848811601748952676095976288325850799592347651283047543793794461856638592964465086300485413924260940925602095187677931530435549926510152114292872124104745428170177799479876790022601949874321030556318495728579798424101261573543303833682442168832140931931113144839139594600406240783951475704106323965201169269469156047586693340015867064145213563000745121933240269257146021940161787858118283740201670699572580046551066141699441885414654308277267486863846679894994499064931855013542137839850769758095171765137699253725647403160243850591923698718377321247174883410194142409837199684261117206198122761866864762850994668765383267037631159923020904064553790171077731541502566553350000533157943479497882536185316378850559852883418717612986921964850970490864893652890513037243203086608919338917592620146473809816142341455464421474020556975918096980726564113485354415780311824820807643853535618257948478211621855961491768256808886690859121548820217902736087875554430969825830491094265772939340954977780167706706777035334390312016314874132720087052339450147380610841684813984530971443358016151649072355907240955562887289030537799713063175058726711166427699107656614896197671254112507501363972555141753321583145164428477841571126658839415054506764700090587049134150162400877579422048186793197546412757222793270740513956885843378863673030814058432182950033841081010923325671904124733117500498221983226604555277394449720466655254675238479482402104131859758594657304976825369919757573577642115203194004215469605894000372268843540705841598372676425037510328502115651245604245162550555716081810162559367944772566350369098015451741596722423310561795404097473268898865526451785428282808105257837467247805747375821158782062199434115405964680239347782942280180525533795298361364144812794091695175697052328386280987530480944848675372918000230528480722378235730801382985006309856805814065310278886233393580762413824909197385499911113466851718211342335209604738071991449100563703157529404386412650356223642978797824151406623781219836963989931298450184128383499154121318701405560877384483593313043933143148604762363126403704037539004631350312028153256079604248718624853334039697077924980397952240229934815716300010184699229306128842719092032001772933627121204791678482149507422870116044573039093029625951357794487686785954051053756792714706225497242322745441697070959044609682649272679520496644199205316858205910353979163636800035929105930600356752262628633987800447417427200762112406691947189573458335523150618960351103652279355996239063434747404682114781623217452844139422634486205646493596084463056998060968640119358048178509118171982023383481437448783277843308753071497028811438670267931012805802594191218238775898564681004177921486133063802598637802643241023188124490683267008109252460542151850976766599311857414553269399498476275783335076216313029937392015527423175040517888294582004314353854860053870759606065148250046552560752827688410979695803072809630156285541459800400612466072240176867344249499970841372831319218141689100817413605549901567504489442607474201017588559481285726430760712190860586442881671687518548072065847209262233939518117241034662306369021633114182159604638481525367450103418953149651890789308451655317424293731003871280038030076378921977673158179631395784878244546635945580460993962328535922222567834792884240452904691514606910207066944820525054071704400040260271459131951643223357980499081242332113095662087188968262334788292030175144449102312691239185077888266939160951402434785562957021461187791222591510428673334252114263690877677832416045939427325264781045171863139758842444866591603571307435369821331154805444000132902614816617636902789677212414021596080687624082403640379832371492667109454068546018146502962887777906764353407485623412675361345150710359267333445754611598833105617990552961294741636314057171863860281774499610929825506490701146129211246102632876255075857967239982854314565569254443142883861030032779452841365025274640494599781887999840279443014428744972362804322785211477298189103629857383165657088804671499608537158213194988051990989887968878099547005713392148838852747966974146658336593380941468979806864464742346184238878454232183435317722527003381046168943805830497790501921413131316261439091760658373062822216482988978694891833307367502723277145509463368703793859564245080280159649486310883642191232846056425127092156032815273775997271646565966821128186923394170222274341681516261311768003797024217698696649331680054622650764326367632331596076760374435141249116078583440062894613144900317690418791015667478861784732183973850380729846436222939967678236939093932901107883471746465600981749393736014251683383513257247057961325258168029524978172321266525770379332107410288146441295151649799779106682809814372913900531786698727535908081334845222554452766957502761291071464229121678721950198901388965130653107803380751262104858678798691241636035540488963044736215273991742080107110198703842433446153594207078321652070310819649572220613002762708934457646027606114534200406731399803460093956348666285572533136084997563900920648407368833828892582589787441787582615533687713783646688774944814764313605025312008958148728080230644513763568024728232571555448849930694004711352228315416841372125038660112962732693144530432846229187044968629894490152129399077868991699034174484010229398070384866573025225920726642051763736261952035799910407361283499782604724170919481086595523464612977518777921245397219266646818837208352664474378164364719841458150105973435012648822749413358738951218913816283045476970084157706228136294397733887251406691831424823832965493692552730855595366063264521113884074248974199215605546718655759617560115627105394879009969819566481403547848044778870793805477573375392737134933813463773079537005531214545685196578045188510908207937588013711538584260729918600533847450928870942426720139020796161129256007398799674749474936236794490789497762367065887478763977847799266145878267239495929495859727314016240405884242755316098071689885113545244577588236966385886189613655085871809279339776099892423646285313747193133596755701349088417813279173502912890017275831246849608285277370691926493770310029311591287465365614021364480114811869921124610416183067492834420315367415264760508242295473588103340447076757609958911729264408224140815672821946611815140685018735442452071517994836196267504088137812937154860060340736029343680256705117855875327324361837339205464883617619051927328166410545927306435570250404687496814089353168024606747159363838893051621088315194161120483197784427658223666622339981090770130141732838289809914239315975427480295025406158748879235678747155920319692579948759178419431630181225594639253696816783507776512982277880854764752862644155445569145572863604941055684553263702197183842879688549311383732457721655898976586813659519553827370449536409989929653407526122551378512009789518028131202576848046637193481202684102392868374627211051082000557073038375601360555988593547493157715541861956263887970212120828714387517143230091275065853333478396095126173912201507316761605535519710225822210806454991870530859398218583915865549181256990284475093072095008535223846048178867489068051682770382491998430594362456314638724248820424549450551654738006301333095478095141168424350983758916955270790756093035806741982962655175673148598379328012540557469269358438470995742726823176474706815461798951810725608475517653408673742084495563866977176885077793793735879442469741777928287048293846156045945339707200569910541216802586962292574076247097468010878613482023012562077034353174944426062753069901855580313678348104822073268678704547935547748458726683252455812132217026969954673402786680773895148883941889055796623196200895887128939131129836211081947931562041149113968758802322515795925237170851733146738727778373351746989217054550215667729376218461092644531811147426164536853545921399625361429648760015560347350905631942133222382377694468636140779880804961894333729614444534897953522655199504585292325850923342894891473433559218373893663322220290560427334326203288422823958156478339135185261950630327358782644436278409534519251113550391928028001653864633293223606713673422935078862935100289115329609477152584333621124452515967917927453040775762433055163465758214627005193912292649757329796314378908718419232594551626028598514195585147012104155270878362278302261520813753342900452357748787675843296017572846258360090624155599068513973265800828790263795207908926385795987935248228695541123110569927439858442841643455416734753324377028428912901689027815026153385709288492640805977732042951976456170781087831595933923455598421182432980954501014232095650392465115275785743594582482136356608117928791510698553321131712286900619477601916786546769224739228961924076953592695886095431301505382915297096404010547721993682647956016243144491366013208849480233272776571561025550384794054212056116333667977580995805436623459938230116913478714456318625028667887853679564846658605650712645974666399297412789462197340096524736149946376906014509338216861509812229148572497980950906885966953535794780302790743809779382145553742413653267735157388998196163420461748649135018597575909375295319560707696968203060713271234170376779163333008349887757745113490834409671896366949771731362874044085043399207739928355105978076155656976392777318540138288195431517982871595532305490904614082028610036448208402727794003971973591114910146005086988111067206678927746024488967710044728214466945302652749544694520508341424548529753955017154842213479736798926635175827513427658096960603303134042758235217045448720150852673301366215768383528126122440062453766121472284080077159262878128732077673247811606193666005281725468384693291118047671971189051115584933161247842894730042273750999235538653696066582510173120209926222190124652994560635598260202769226098360322175232220444412964214677405637364143497310048559110426392423405539373189641073173851410030891605139202652983279128932532429181785976353442180438032855466999223803003840808963174473739990311839025258822961153507527912308992853450011427203009291862426858805384164194679881362762792048037973877279399457722823423971993196643948998787683441521188479844409297530791607196653396730571668269782362249924981196816662626410920965853206280013112973758143692820764588909448586891012108433148102870157401474893124931027787860376479815531030638317190950688930318830070086674256204988397513693658704344166097933819029961219392534334645140729049804963852163421775659648588879065168540107301613708207154812103422528472146057498079907614034934793454829595732744594299475759173831985183250246563156405018105804700490887392790775204466238384378284361698339823387201349550319876534266835306895488355096858959979396833712086576946563395356668333271361673273772514783796923367542653842188148262490403111496930040085597281002292828795426156352418903894582232227708279977804484864620127558562603739552128207011508890722535162690929637227823227227722055171859882440827202733579425531921085075108420970779210316825834553151353987735113024711855274599052567673491289224405845570420302625819263667298776692958160448838952750966210840000593079694571110936709434006207029909230167186539058990825093530399758852720716129864913249558043153996879867044132388678089101916525383635403962749231502419867267172269981243819512761759602182312680155072224694788398425114192418235792296941921010735329366672200465861388028075009170650375544803610704449513252836695842963654321216285409820415910478514277041355450476431054944485719024149257851146614509689780298940274443405446795435255804545294536828161439604115090723695032077326522458953663494161955786433288913278278766213089946903806852803661911465253785211479346846995128345777754483723185914314730831010156197801483439737514030553190270866410406970128757121382592658219509299507213749889544333824060259061324746220287439808127780272240589577924387896786295537609009733519857090302088413443215758795605220148100574372486302331976969169668018548648392577779438017497832099361208752106170313153641693387634264219180645707303950687171999110747008110884545080447535351737237626609482564383302105040981974662772101286233806000970185597842987679510175267603384844820024746600603471306776011941968912572590402963951941377343336543941827132521821694995539336184751018004222256693202666616182610732820162661344720820425806025309701617212105709362630924355236626193454574106149641568013806767960159544984738882571847687964081666162029617479436923397675568649023177939737815736991795293783807111085796060764573025122690848570315857069165790641423817441813704814362628035477024056385423865741814305232946850575884348153477678670931812210865500840163907963629734144537016360507708072814439103176124956067250780253434746445538731367154657619856316902218408612040310891167409830891354321500250747978052544362600220212098432273215510705088283384940635778269147247455196487462502648644052398215780440163346478608413758138258571672782294348690928270296732858552370693855489412730940710337024665326148028367826232761667037903066855144681105183813592551517431811588652863921581257163361514135395218119629999382231882874644771330163705387972338691739369255571421062324332878101558009856959940910667573575944024431345052842408711997299912484804052755525466332039658975837495419151441872572436708388650484905858265928030278861808815185092967596590771903425916780158915742340918743212649268425020634166532088044654362372170651906248091189011504207981117859476754497913224200687128862741350213667465099745552301596294251585643239905602733461170126482412755871061278382392981082341511054795908408518159898401439876524581697990387259969829899570135554469205836018728584043174136442639096228919093877716888478336293084698432851423094106597579592421533670262837501548730547930905495844802304888606230708039108744290114230566976091801992478307793812200030297960701240737243378466406590581186764279270730933377024828698493383462608373229964553639538638582389140164275167639158833472220908343526828479298989866655355645721752676859809755204904142800738267680109468227497058418264581593076873764856131052182251427530555532710184771016179597107689248376149593460034960553106486778106500810644764873616305707656761318211656762011384716425417570697789629931182138265325954996998272861708315867804256399666275042923614537134654375274965480062146244622019132123729864631284467635608119033754641229646659860722304212510761139790651836002500117456925206705481298109794844245228378888806692159872171046539304183049943557561517975820737994001465104787775188148039679792007802063112096925427189047379649705511729517044216694158125479889215788879147700549092702729468537816510315439807966580539517469689029064976528701920324365651984414618650297680832160294717325410478731266119330896809885705715097178303554830735267780294413120258732608617739767727782946166441869612157832162469017601265383719255773349225809575647033681447057692557405946477257434489058256623287975734888027648301174947171356964853178359340265648001736376663723237476737936846596609526301017135175258075461617322218916849619905146250430142427108238952879826702134308322992093228791463792391803794853452783696638708612380876797158158524757118260984851134376318649679324116265103261273554065293202365525649103634965700807196085880387295688198384090495350045869547424568466694276195196568933501928592263474165272460369840321366182364625638696810106802314016373877681471914655504154077329868800827452819102917093403109181531084252796619320190600404887411212231370343255115590081027070369680558503642102928365964606473414347669827988476675282460745809200016430561412335017057737118446062660459394822388649500677245384555537929442203184098434202575887068121988380174804577910069205956629071322122458009118634522059315716161822710805799040225392568330897555685573429396869168717020627877414964311805949321253402213418236467950356162962755671694908584024370218748435831158033258400584065699535276916382308536678715071324987305249433412284120688318387838916160149458226896479202056140436833609022037893075098087730765066688769604873590477069770961771412052062307111126613844211162450491478226932359264280733612083875906953937778815257145922289404705074512967864572332237340688736171781392273064491527109127641259380571793387990077223482745961375569440581555259247874550161107016161372166654276797754296133722981443602203572412870000256761377428825383741430940104276594739170762466289458473616268435649517233045798688267297080208778676494670208043857896532274249102466572127171312795902694127168653317544714682705708802573298542163721531808426794730701831065644446213646947596793362216643360710201479492126876286775736330739736367624047914370540527608352058783982428286164522633704032499390884153398196500477055415740346636912200276804816257105535185491082907005286899345959933296768138513676276285562623219333711287326590415731994923864083068529019943379969206969465072045005152239828588598900043917239199012494017071902866567670720456343971714572681728085527247698083481929671042135016071347146404314634831512077132389977802614314343598114535362171180899687383925905393149171035092077062876085893630988880703825286138639493794464328521841282066625773338116836291194785686924252649773980061201913627567242636016991415225042407982649214593841358618154550136712695907573702339779977171336667258038898279381752682553521956529321495121486709286397315341173588813119294642255619180242143225087191713417411988245158310841513547362480004641635680279358591037131210884236005175765653913717773334514525850282213752991098767617848944125200102984098673932332661840212584485815729947662652443355360018391621280440032484503353185847966063742156558974784738337976935957660429179976231578422798971748012779740980673943854833782137702085531683415699823945668869196467259357039837107513747290029681011558602249149423464515596626434452046197690857042916636223592749300999287718149638704167990314982856598860475210714629028197913566978273324233529325837740875689589060679400374916497907006378259292500937821156225610296007373124715001662487432040738388718374112803701780523501595372999725784091360798952123220282131420709421397612963542672263006131508779569737053802957402208584785325304922099374226356962614372182378194250234610932943842228025290647526501252821906940013675919908006732074415853929637508261099379953348681049006223877998515329262459947750793749265725554773810710722220864266312262354200688192949286996414796140852445293044529438564547580920018771705235287023400381327365347213219287876618760540487485240071586811012609389136753893387216213299758212153709931256854307881010073960444967602763242081749686816605396839011509351411935425354479427932515375103253225351268936972271402013137939351504959264904455698244315315293097693236608209597795453970396257031388442927714657208529781496918616741327892452870798646050099129983142818701052432576853355242505699319677894107093307757682006366831662845806346224673687633591694744558648455185882730906036572431136210566644326405754631883803387454781216673376985686857472813721853527361261296705569405241823959054305995657259616299954877782548112377219142076543233296300813080361961896282817620288196145462066651095653517226755653954505713147598992625671223495237194601924918831894503961772743540339530283734522963207178026338219284311935200326466685946885389209255323758289825091780430456851724525318092155121277876239531129798840133389526462557046650213724179336728805008146485520662312199919861183957585650671954996185945874649483183553227408074009139147911964168821742134795463551949575204034508925058459105737168104564922106945683570240094916129694927082401382702385438638808006890649815250193638069378559086317955275292233316931626835705166052167524198127733768886430863436428573509680691381098392925414136718602267135389669011263918691804494756301164782309709211688509616936909749913333681246841639965102451955651600331683203853675481389959601363269565918138432868343018090645781538941892087813380733350643431743927164468785174107894391048475801764912180398773453269227598821099935646030104031958789408515745746980492275518435750761811299558233882078647408617435140773379432478164299471528171391124006732849481948590243488820482728566393069339573978185139345359322215537253116045773145996260170034753855509834535107600657952862678867159083765931530667618642169465549611008514991077334337916984156910085675066936024847077570511382981527024704060823178905692383749832177233200975994607444416228777515866289122348204531500295125869586663407815189370497899857887032662226556456865409955065451757133540877857326153302186042926396879884576812058512085667158405226254792550765483179768486759299704511995193542402386103052265875966696101702309456620793565400183558891056815065740065922873251520612450469164561182273057701697361577753097029707122444294704140222805367622336556009776806764920323526779255424543418814958402527306867872034639994366525442574665479066551747589396853765955146305131356545696458820520906802588491999799904913449738917065609976162859666370186454971273286394974355769089177257850377076013282931008375484542646872304011070432297743778803476616667340550122072184840044278382638369360644479981324716092132932578238321766882613418347425710036899339474875898170634510688769502791218026574960575589683108736069810194921714092301283778913959032133212111771155111561390555088450805557234907767607705909723158000463657206384047047246608493298787234938549881479062011364148168238624100556707628634456464183638577347066640953603308517288688861412707481438235337557266047901799170019660590366780227856892579222926334454756193821923278301933175462399000635087287823380230529964129850017638228184312735318932054079613289224619296633286949749016079502152520198042946986432850223757302563830216369698288307293524422812785428964472226938194060569340965082258045804099626291699023004034528924158596617398086924664255424471361798810937508222397167785889194721576248731923676529115728134260124260124283405364889790951985628009492136590402553630868166456695621625984826565984297566368918532271471411369705335108034894052630146376627179982453437790541008865884711262902216367966485049368586932109027962494297286817091025522026834794517786213024131958510012631775521427845822461906737830518585036033734126695959633596056435835818484205055200206558642867646426995428575407112080573135103722696081141491914906734029172794260896228733714544613256271793017486836521735767067255308177718379147246602141929808137942969977765793735690347353448331381846112622521896862194408221399816026501922864888781815130297352138090846398043916619504680634734521572048805746033803336341643142374375880230594119761396173447578095277530286209641585073799807615160986217657905742250678481554335311612255084487426464926068046758708075521856143033796206401059011163016385472003332390303287826234729529665780073514987999268764979948271924398891987814699640035438725627677637083165855451863237781806807034235452790594093296571916982329327973786521822297474327352163130918111064232659051403958275056406187990555225568151314360327359621875846353802342513323798604746766718979366876060696142250565646159754525589013063324367822377856459759262464834953116405272423940734363190781112956256746421221403582427973837680024663612921893623637361392265884714719233174723844061297365416597289394333793661727754630947881287475669694468486248989983285831155157725718067740909139543843702125742626070505306263880332694098354805428864598588857778584491388988178153365548747617789317009708852954779122748135706805819262346795752523830645010714131022515010407968569429317727915392095777360620024678591117330555898392632532602715460328200179904442615268755003124753616420074139391832332734513326122102883990560070917021368043402830414577199403182117055148246391815981851964382272152639777140941359627892790940455955837456704486984300349067165232770932753877607231313418888935450919491468215334642821201939213452398124496883769529945888498719645592089136368785617072334186313031188725259760621234738101066646085516167235014602042379216833089624439445404133773227889213939520252988942731660516467641081092401018580081053214556108163507154874333788609734358838001835542126723948918638479971818017601798424828303863410636493970856235753677498621971230247629612142694449113387339900408167635745963877965571673560672572953929348448642550945662386973147329056055883114435061724341092094436055623231658797476275444704629979833789117731170503979675347745701513253649833022266557847986479264715086770766240495420700301857877883620573414422588850626696218296333734104102862599383726288037984747997757971236573408278156869423374140494593661485583733021216819815126560449198369055929872435602418755636866653040157202267978617477716945452239688644545041348477630048053916802076071175764603499979465009699803805598384551500567405308905382254337121464753820279674557651967547971624814178591596372437678977329051375608222616257361911928085128531341136992053463510475510504962422940382526883421514865526822362543162904875844600149812127235058092845544680719531266803054005277477231745361794585454354005866313057350191214975919025101671950578030071235476834146494828754841820960168953328947774252266346403380304313806666492266028748277933679010464243866027775285983759214226131626412082682305763916457826038292776857547104063715318212312725551728694643481947625726784625948189529858487521102909727276187879070962956064943516101292695387297437574941854798509890881225161134110999941656957005008964258172409230985432110933957338717233478251198800579252740486877879619722255689481404306722673602751615216398000667032648949809854696986134295224928862047477007373121797046224130086064944666518641272799776417210269693253737495126677918628863565576490753428640981994016303228163339914264248675050671259603416421445722254133951371197060544412640498427000731114519981572202394033141965748667293706133370123286740932544832632908945497713888055234768836613929403438776064374247019881441482747671379836414876251936598640478638217964281863914579492202483184198171683142006974190108260286982676916937498798935212325356126527938462494840664464500527328360165629203918105553236719874294426926432892687933436668338836452289004715640586702516377458055041945949941966004730156099910868663393785531254818118400264791759217209578320004082034997887602538463732097567612253451533769051090827108132718151033269856624050181307787784449546425543106490704997402740974457346347606586712589152770354171831685362529609925151976522991755839289170487154852704188275800207479588356042599661801873080856336371358299658867890537040644932242515373832307442407655748944672687725489007951091130564000353942924198781990201675657245156319694457284950389518404502896859821636231620366948727760523606649592233669793296453515556806692974589691124135657882147318338981958299226330081450199467039952329211132833352899796004869373274185832332870917025832287827733912722048077121504502699732031624863498036582005149895208677116082984391049921075925011324506113125838702517631418982883186775821930418010858517451052846338976132915145349788392752662961551892920676572052231501290610742489236855598268872319703988081187922566223182524048768085534716339638712781081285229769832761364876105603347077549449285304481460844391426508455148488575586402460008354429054049846572728444463765085259165271086340426232410624235418867620888149882970506490501260883784592193688470102836727115255076584821836246442697999437739682354303809127341191480465638594125741625044228672717829568573378770366479819520827181014114792901948780945086994409131943092115555054802733587466328518490823566505423715432336214361712613763343830635078298001733341762280449697923446035931670539479035752212753094841101311884063796121563207241716852027884820352714497328240407997753758522588268850435915009230644788187752501396958543399202472565267809991099438321088099892608034642822741869989769599592389738391799778471950337017403820246386269056528535921999455945454238756803872053338857896035467582844645367846160269813935181647089629714043173915358088135400872059148863149722973896598090035289173047913300369419622697259220352911061844357777075214057083418838645718795526023962670375248591509619338157659372755444745072266707824607914412612944014295115036004359429433120293619756790884944918817955847371574665589437500525163435331847966373553684576705031352570293053369025401392678926711245090245079606344656693246475576752811725784113207668634437096122451156586707274754047981792092029263695556990346913917718994111953093659531182574208266997244823176372899796507559999157879765507595912633837818975649998128497849125120452013998317286001549931138609369348014907724525789664478301724686836981522394035171697303862814487932833499236197987981945682255794756673981899535873957272981115907457174153524860950387889457939943017212680206334530600830116507323713043804674376233086181256276674243034979418521992814295455443464445107084419370540090782192431569233675783334558479169394967676728749373891764339245478221987623739701337420532863651346642140433271435371363880738949800835984168788046151236094000995702125368159821869527348563982918469193304583857197058553904327371203936103728706847384699390071745965979643361717405004249666717033347738758425186875402350952946383868041999251503207958751417667354972012749562817398163063472342124594687347638793111525067648733604238015321099059200871097888975142086572789759165614649818823242030411359444956315647625880171841066591742131072566606912621714328820063245051040595588030881159824614043985783617634219357097617299882182033568309651168484595230752653280227942787221832861348961292460295544938203500377712665109916868445613127360994785573109084899085789378883893267362252659954267365822338626965219718083515958077071948903791382215195518910113487905362035112756929535815955641420421768709604241514063133141078941612502476077919495220996391780345475654233995470510421047815623204288357258866929037357798032341375918296455664216963412045700653234136865396258382734426023977544655157807675244637895270857885715043318783507770462591820165835298958638025477786067185178042696684822767572452580542870835246214159186150496271607186186539992974237253977801324846506583667244739662410511868484694593790441467399698292896506185731888474977456298024054380747696514129919816786052361444811651119232307151277758549274482518223950631810257849746777344389960675310674705870475795355280781706532931252408342059207019276474474005861537738480854999928568273074239046368790717666006725086001627263167980564982692257632059633295146172750240983479497364892131257199837523568118128980830743956193656377895012238722662920764667167008576917266453436362163089589669614535750814289238317427322664922324796645284096646311823447242199835047709675601647997353159828133637128254208636547517136631397425352087725370504555668858524985258190865880707826254925301543422906005994251553551412379071800409579186483022518670458302929167760554500416248535527844192657456246230663960417298554853495704458811246161026504930020664852108430540905819344763064046418084602430677258204513324998316072007767870645360559012109979405264631553786187810880919395813071155576123092362079100257006562246406521083547042839908761889548492912198956398700276345833107085871367539724199341415039323151500222880656875006832588235922700229230290395367301622107504167662213872467482984779284939789758360482475033307573036901680703636061050123216030767537294396371214189793631940551608294544424611612552358737049779606369392120628445647912600011321994843214389309860832260122400872230056153834933290747233616266056679283231372447344777337811977166090598621136188075396418287186860856545198839522603838188379466252115321442828848703963318391149739625369440817001545648443978049148456791323764576926520404708032972736834902277542522769697615457829346751227214186626129106974036479128904797934698456755461885127756294759458303928505676998535041087848242028066974826592403885751094899442911867076705256884134557226497695813467746738970887664420862779894336747313011174793864391748882589110124937966090978272115993555724497266049896947495128467142457797362155187844121959275897746136244277412087450452054863908159354936091326785586581381590414414033242735087783000685176711498679005099581782921830537079783565295660769267972565901524225993163260308599936095824897011487164977744516886405153264188767788650642480044515433497267734974805187332359394327547247986455623843361515209077107136359844060319805404175992565298099721676715193825036994091955205343564161064444076082010449612918318033893352401007227806452218808322909988089018104456084535337171320697157129111014748919484731032640092460312199201796679205433370246797685444809255169547771228336418891620121659806717441926968756300021465510315063640088050750316732817063626493400778659158562768174152980034755469884969926493455728682889858943506061405979268745521753770486189909898581608409506352430161968681380430976383784352141857553979067273783532361054180812376409265730646799960612198363041677570741572196430978832271854171856012934921578476963990374188444960362521246085799389606186737127896551485413568215908582141574624048173825821103603683621907427996601016922491534244587064349758890457860037316093421511083655573812912607190869383144843831443520928497385068415784171701601275123435778011079412375427994721278386713856192980745027907998242344211852909733069077933435984416129863120536344091149173484790813899450969374232086838938973771157312536092852192778177415744204527529625378488476731864649890959261692516645802944725041045774144113473122669980843215305266237373434637322660632974635904000946819960248547114114775403265983231883287241244793525428638469812834760603484394121440190813863403762850808577005067558674904242011093483021983591818324958403487935567152727293130503054836140214817283669606899091290364042221481596361453969193375530912878238171153892716206269070014762785838278282536321994234670027949874758120095933018682853380871374069427979051111966559656232918646816015547657831306050503954012436633059539794091273143310524290944697613124394605451581570787488293907020455029842179656135155367025188758090816454020540146042784002309616416030087015842803605510335062028385897306542090801165985914519791905924713222034432009611618329112089762779895825835089426772184318818453489510021778244320182612643685371949878468091530531799212904367802527969457960343953972941196237045815359153874768191743950215014843968032416926828957322547435427562175017779588285218734625211425743979444201918957990433279557349903892923861126018706264770605421449964093441949966579378090999929815642752347225920733835849052206718065185434107016502005491824985532449152323372446503869413700949291964266797168036229694735236858396048016949450732865200914211915100361225303573787228870525082536971475630681887044106024218824207561007867195321005037398239896966354977641855251682290474872622077192747948848593867820123291638268906636246206455961114795634089338103436057184424584002641786697737726228824598220003474861503673509116389428716315207684588549695918422664186979880899729842081181928474646313050200116828336446930972094060134782892655828777266081172583600176043528640321582324610516566054176350097096087543789983045652500705274883376285148987865474642430235760575688218744786037614827821432299388354063614675634307198952425547350753769356918997667315570548557986148355895767550584712428200454077451461869397902806944792286039329277077321660798000237180517906472597815375693869022028267136653532043758512620203323194917605133290882841919780906453891107934052003214125594191697988309631643772429130746830166212672010256090453654934695400834388098300775059244532676260057955973719660760472737553837794194400529434007909902061318012739899298987378320611217494875835018559764039122952327342276965564039803792964871930512131695405892605245599220666563550217490189395441217976388251370421874522514111811999453780657472047719593712902647116805022355682721363337761002764558151327877879300656056305344534102626878675090497555802111266910883258247629602469564082889726576210519498686892114225652849413879305883349974571751848747943921476986268547537589687019473769668771510824824012319811061585363185698852285062323803168052783973234158327125134904049689268361327663713330927442220919622394525738501340197568312698092639194565262080759662113250003779982623579643704540248735705793596730089882244913255570912882587891759889010425195361612360042000060500267431819808129979230278893654781726094655777100589803523556283174267983941832816419014212705148672690634122719357363242720798666297541149199092180190227538871067818651024990776941349444920319511397698953089280238729543396951660316391986936947216899157305120820999714668323891362432707358989178575015088890547079364887031211280711544265211018985922992865727332095678682571365333176743577235259498812123629587106398634492034868461807810433962341540011235007929598512933243440303007808954423199072410771972924773758400753594998638306897361571739318565715589686257590936922222566496246216080976921203025054504121937474880017287447630298781112518407506026696613277867215577371479818341749601946422840655210719638220258863737746769700841570490174473137311628423691686055649893822280990505610464137636480464069294310744116036727876691111846233833910268145548269018770302840074053279323662650394240574869285520965048686766007088485589034560550032728536103967938733408761158129022183411243337754541749730273552234236050242496496479712876940959281553246606026990741297792858758688625332270336400633718911533946817132088544357212708212857730226942997365668558117203268260399742104658447221893240739604507400069904505437309437326748330424097139557129565885518322728620446071168866397335392325166705417557811889977525275221737891517063590917771194070983719178783809289737350466721829903182471936269392467031337965509885016137927183020661928818187417322082403229178762795864732447277883081629260956042752910582153729844743856139188342265803596582523020885691999941797590467508038681881147938095890633911594466324827614211856745832668954505425687331605090616756466479544876042513210624531002214313102067289115607139977476156005551817548001210786984540039406131842984825212574651134959427050127250765855812677613830182137149802255347235313705782572036626712580557953326994537259531750208769254582463781617779276065191453189655958941578805285070357522685284207252535275089990755762939601465551379487948254613306775565585601619198087775994435953195379907086965219962629928683057813075127528461001109301907848311826415447172587235468801987268364380166768959870507562460686584865366379137944680254497719515779310369438619840533443580216554090192321829357175353360181839070283367925990409793665316877216778424627091255004898372839461975750019641006585510969509923200019296432728556588724132749827215172009556426051765190196128866962117454904030600966487764471017358638856631208261726064358189493571723106197002348449662358034208794629138964194223046868645449924694974694101259343855447086267984335291168872861303204043442681767158877347837176745204740059160781555798726090784915772833028221459717680267179268905870202048028987481632859237714386494248269770916036100763151214458365833549383501394261354917092567359242700070601114099197256966473709589089751633508690390121577163844941590391370440642501623564859985258293300553935721626292545517386190097431523689923940211715834978271598624287936710960823018132872639386173119046020190929733357537834854893635111145327455450675459229682777390427309581055104465627715538168103868003458515420629876859473248732712521043740247510560121309317038776963431621732180691786875068692453066545406372731718631423098688848453134793919724969986585436305169620224252631296384855696058080808707239275468728217802616010845489599624834485900634389407755263276182669818520348402209530058044296648490457493866694765198842080357476974483037156122431714939162167870642565590674721988185136577595672340725659907367324786038186510187337054536136524776160624637718153672347588658735147054276530318669204729177439889279314987577011658607950171281265919023801716149070622204022387128982101970606845767961551896072891217255475213721353125009230380605951625545905367921247339068396191422022110043259037920350486351119145558395931423830372579273963353475297100816975050136029403771100140213348910754184342347428553415933061118468198535361895333763305898555363273294941604552894835669057917949700639481147477358807690099398925136258046339264665478631602634009290784756172400444132853206397786643797745258366593654192376277239735169704953268118376647452466885404261237374800063394679634658827459891109864386022052025710637434194863559936253665799329350421925116111022987616819982190592108294032700954844941119883030202942043338616642182250093805724981257286054253047997809604865575954312738770451650552886108202021901576791042195246902945836850768168050799521433760449009118447521798022676290067618775458004481000338305095721242326037800193238788551263098200504562919856575575176677245430151473609387410638015053573103951295202483797404634030871531719765957415109668137056248362061389352730978701567512321168656060758985351758919454874140286012880687708677758646562332000512481942513658079241267647809968117454083921915983062187479890725894391857744350187534903593166118452887050437997465195626323103366899064468555990679301781312409074017114187797710425107846316857293538410103394762579252292839823373203550610106903673480420779727206897648045758555425875400308353197911855140347854924287676921471979857263939056748129854118249058488886733279309660314168826196695444718980308600332831284419205752055406114200987522148226039285630101627687386875164855200019878658421126566910749441687824182271498178162163169773263130630602212198251739323125146974275056631579132763009264625959412917595149328034623372185097814350840110729023205828302138806578685623312574145509842940415489848819243403194412174292460139512698520121881513831011565970192813001506749585340133853780376590051900645362299928311858857317379115905531584711679074723383037877749223153130736815382938693174754428274296992079493696133737175305688245779467068720744480667166522331167151568501132266282720787715880690457712932063100720825166888603181671577575233601821324888868692790297591360526928629087100797832535352543806168896964626267897475278517008900111405240154522729092285129594973701187981780107526635767574753612519125003592309284325131874830794579706821987481370847828062149857926163304602440194014036863187796130715678043477278303576100935049669369772682623241826650355353020733402806519495600519154264255124203466410901621738340916763345436543664997911166833824462044762693481469280447376346949603056411528241632532065232808134052197210246238312225003244154852033811071639670703529887935255969701311847522596945103315892447936487930773829608507750393635941092952492260060448543228492392902501999266882947165302005854806503205527055957357884851169675682249797170016843562159628751876392744681462128372411426894235813506608696336705515138429920423930804477375708526032567957287539901667724333928328934135491870208064077741263288174626417356713857678535679817756767342203349798917669671444644564347216088206769041015676131068710619146714637078900533987738266524573684357348398895380223709156021183754876992116780122400478818588944752406984361278279564014691112583183326239343006030622620584406612964427238430380321926493619968294216088845051108528395955546167568425133541527392359088798990487647430092047961788616162077693966171518502844163073036780410764031438750630961164454382809479788302899994530665601314332347229533218665506456478865745421074310515190286343962286818499597568367568602747218267359600361415845133723130516222979234224749315502466589846595496763238329188732481925381905127701539814458137061292992158315122712997634469551098508101724822154703945971684502880007085841792962727947496796175982210804926759434157449178911789724543657019490316191895718322985818932227760134750203683720398919398060270517126528806437058576975637976386595887974992962701374850344375344497411559064174777922286987644332204546666298939982415096455140342960862390783945841524979207273682578553867696410339888959819687024630790267901638512237153149130155069439993643631081533075913368411642111132716665648780880533344659057751696785348517692959532095169858689858888025919341973502320564432255045145630354701220026571532500626302324960475359636835098741784148385612164924112551305841397715042513168075266525717261830898856629394794680306365708746646158215442668968147449610496722535490193873847467631110483373398797633592451825909323189909767931898464352084108562313514869381585238330793685295630147257060702473364216587490777454434028868849669697004738657545689266783941412961638953641956161467724796228682569976128823694662003627090633669158106319425047589058187817703588233533983822259378519690746320843646626195719211275773139226102617445878008846270050427364993333371214706597201971256848267805141539018693305382342891563632256593179114018454503077178033314072709086837131008770977130763197625310570415971759214066855931194903901094098657521734443251801373070386875898741519333562778908373777619934543726514578560160149704930755770982778859472984502786848142408514877828047526174198780783195244889321212720066184458726958839009944028121472427240408947825112231799923504703809832192204702196230260392274417842356090847583671334094143034101394778313722630008743012120469450350275269929204356222566510467798012688124490658303610206237902544679488079689924658635711364555137674090539507098066833053604487439492917644957025297150222787781654110607446444767678258335698919685049339113972564176753884929098418439307651910549744649473169127047725740815736183152248226027462454151541386804863809751536157991423821651177464843115125589590887814222564774161804451923278544820807634864493283650742500723787041213016099589161330786978855993292170034407416521528624206462179383006430197756613648009764207852506714165524991810308141669475780391207246474283685607732813840702103241888039560209968108547169402905313099153604317185321227171367001516810057390334594339552105399985403922290561241037024308595487568648718152694751229368162749790611442814362600524449045381130952281916975236288537951223838583600699897806467524423483820100359830464064865901041201698162909330747882037982527541313843090819888507875246127826866394337272292746435097922461831544319729113770781185080085643542805779154469277297642134430298257947118713331316773321099834484407480554569619415973890567627736486567927012312614525442636335176019607631833335186200801676610696236265512649845205390252785717558242124177378175039043878999264717012197068557270675618279120919425231955090238264342417194885696030325147548842831454871873763878784446443040957190076358773245670942973827792945927071378626625619351448107069565521654888239020062000670741069562553612941570314413893985337068577162823962488048802834259082273771421832117956162414920259445490482136738490745805398571738238587203110114596174199786544661583822208364489348660297219783333417750594231413654210998127565013586241284804513080701755071139182571561427314072485491382318141115780841253256212446451215229306873344579296430989898279821225140002906859113511780263996263242109709572444541110860122157424808406117808137145037816128833236585553101709675258712379467733153831908126938666624994312079664870096033080981466914572691761189966992184947552330336466431293897555054537618637317755627393381021653257959982820192574978429920011173724166898079775118116566361920968116539545882075522187912041236795191597042001972728269504909814530992036079411025649791504643923818893729505161771686536255688778518937793967594579290005588702811503735858206618241404216635115152352922394164818663582755267364932074263545349069153290926266205029225803300294430429857788918426332490583575301719765299646658957725339773062509147103938016468711165327836561512691548481708084889126479234944068392795140516217933433313570562095743894431372090889965568225535717515080493336839360307376445874865525709695492818110953252438215935001259992446192688138834557045004204318278742462895810204695100004166725849164496405649389723415788604634186869099209572056792454569792601982555127325213430581543764673577640547632903517938750999604362260884201055941034656625832649657625906962700521071766958392142426342261138549536494741276831269009584004741353400967564896847379926923180454579993448543947734174255302984652929445537830889377554367260861403663422487456731870765204640899507776610395329573991028498865906158197636897816568472151361719886134020716204854477464122595922275869728234860211640683116737077298769558521618610776197054175910913555236561599439541102829682348918319956300524368230329914273682116004256114512435249712326892606988710373072104785503969242032742125449564543548009726342345321250659308433870940615333441498194773862652267065197264641532239592662694882444938538649330985256770525865607894774307360103602614119768326286345394766382924411411996038276781127173568036150553545386755771122638175011221989034048783816080477847542854762294092338692206756793298271417985114411547079258610676401681802364155666744944755968012040992060048328893617173641403118065400777947007447755681046307825363139726331520588424082623832619134348248208352915040762904547236456118572059897454764964893679234360218080265357680618620496773950012782843613523843288058158082756651528535956046047707678739969553982438107351871891498721220844191526450011363695448125220855384975675920941652580075933394867692008955760258222104388036029341881523477151019755857710014636016648454348179788459210921974851980087411895555789128358370647197660264766116281502130226790146272585681848204546068869874827491624198315288477953890293582490544417529353390019634935698900850508150075812464052338907235088333414323993724980063893411023514541828691463143475929169294928167007792076192465828716246927188342898146060313130145832803766665351197596578901825761570082012755971892228638402518385110100524941665522983066126521013440241599504892273151009129990623670848158670821807699065403021481363493984208571098985208372712016347822508663062167849744293472671825978970569444013490986111445467094126627629970757410576239948856677122742914206250103549538911087963394952399929567642052455847975526751922202746101282965123662694846528705961669709690932453057132432180422365371787472982148352064858344162590132011694599625885688931763573194116362677789251676530163082140296904477008835246242454428232099446804824044616503901252597078943862303314065072117201233780181270504393426792363883311748196243438866694477072907860606963002485245747837337350245465073814142215451738381341070838139511527580874936093499234729678041240312801800415625605588604760811497095256128532855215805955930799042949530694111410868946647965425723777076432678176686247952787469652752863705387584827673532347591820123367189193046289724945188731759296601381003282829170968421833708012384787328417554959149883219088508225569087796727616971659703373128473961690210372123685533893499585309069485806382869796737643802284649413620318562157504226334102715135119877167845324187201998312956702798815288806154329819350231789459660088895842234451357123758375038925235090814936377045820266362503755806145607287129734148953609378420149404068990684474029572935006337387256860342819365862783667409972950033755775274173201113222629140132519946638175335157182731842497558290003626873630348986702316071570082007568491319188078770223966918142321505570047185870961222918687919732603980975958823936495485053662160122772815475239512994296176830288704804296909756667218828418484318527553158370700322954889669564284250554090477210596718277038521378148589885572334062000589459320540647403503222948645177469065830970516842302308536393581764246948721736694414499307581990667407048309932422338406270109789931887062081482152663041902305265813864158920847335813095918620449210531078051444917879903283751142469565743444214744752946301787873163401646423821055350545572842039680499722392459214137814641206348190899471153950274400753200709861815419896140078437495755538507348622830419678279240285786663595413287899988777180171591486536256773090590141278651184702309005698248625552688860508765687298875016056754573402660752250923871223899445826144422106271914993861549302752058730401985415157100632220895802028290657936355578677571663806571564656011549714583317015738665649347433348569017797319235953118428408115992283897802292454344046550114946435688253411225879053304131924016534567641886047582227707414859773932454262673285295869233844341043233320281374816581703165078128480736153456939971857324185651446344520312148075241401402408723359397937156237812389055102296236538811423483066025744136463752145413300423881094089439496088734356977802742957876230018132062263152357559700291680047360792750468947522227025429681499041733879165631569705164410900020632566638848324575645217735177058894633826378535728552026165363773528351231278523507589933114562810932057810468426097715533558729393349507797725210144610468572864647061485320065593628590878881666600078219262101097901885142305807967274461156761339226363408852663713797179522231310266407293406359378370090178794820966003002241926627378600540888649423669797151761045503931601796536449741155963663878225234421673999683024610489605142234874463813194909800142969919399046620828223251279820656570383417395295104129714553983301080843278776858038611396995843545177631083130238694672363442615770818008513902312398391881035679484138307468069480576324434100152705038648072518798066051916697320826096162222858148330598043548150488491794193929436676563162141864058398033565785790304607458337386963072528396476442641285992998228859625600768063690058963346215840081240653842661484125563969216849130734376099260499109947816984547123712019053693763025471565814913183054178714967910468251685926733920584340966331736715857990679140919176869776556008842351671891781259615746982116380048594900215552446817855138989170146028819875077624814871060099484717682904613281579732097409129500780423254933874436798395846860079587556680540321295447996108068071886660616182900643174793585186944058442214608179683855442664784012621009971401830977746994785516072189407038163461440171557134703994281669183330702738157128107037710069190274060692628945161932766824529283014842414217246058916538524566548532017343017430633142790789027268436468808511273049957207804699400334626205560146974130154525597616161549929474875844429824094644033964327725500454127426752928501531893111871014483539429769763859339569796543329636198930180190543492141648227807059756879240230255718238436202574320640840021321406947501504575901683210764199285093283413278449078698915945856738367359449364195211994503266958851656368883146963496085854031500370749752429414518934429442073291388539510755291138295550722126914791114324338630198504046573209313160842325151963582045676113913787865667131445975584585901223556229225027416143694728699596047751484287288733980451383832139647801172094836564501888961237531568230585844371305416333569250348718297959315348586358437349210494170253899225468015689479136664157226873698892921875761174813469490653891274516265879741952674480870778151994570018866493407137227357722696897710973464347766250714648147691652632456994363729347632030522869802657390204834570107311556762360060129701643888239676398802357852319765355590801487095066955118699939923100522025219698552306270731972525781577064161355975363195422017524554180083832022062249363551503463366061323925312307745157436627012414960311497617815398953205203121193488020683565572915252091560344861358796900383978649218494831499547439914824520127438531167085254323337811758794304959293674700541168838470279980090936593531424305895491124118228569702862737661832347602116416496921738454586142492212023093526015535788552194755664640128459775420579478176143581243697560915918568473808455487018097126044654040256303559845146499463685214321193168626224411601314786241230163177434896088595135271283614203802010255245176506412940628701349418461597218891483298631295180241014591150134373205444941988485124422171621515015502843518467826006635182848532443757050444362904814931263662704809345952371541852054688431301554986222891256433255836881257557687837860865395708599386417763944781853350939560035367229305334722599383268035162886180420617717848094889999873599528832607197325636729750121780669049345805955936231239925692791967987769938796641688743088831709028111728869831227493969026711193739339559875701875396805042502131582485241477563066350880495772816391294188320034331245398398002001348849385441764001202143319238080730508073490855738450270553807350099155783212810108036175700140876771155245007048874515040132981026685485169803177719368589548105705531484536886133512113741680471818744715595054983563054459843697063252755648431234833312095651623274328696056429228631871176370541889204875424723202345653401301395029907962100762721995082481110436308838087177925880143990063248696237391225319439410495153217459013257289019087151096884784432727757926453488365312918637504193007530555641626353905987594893927365366602309844547261745228488933416113005946571119648412376090507916423233830664024509577605184042453470579014222866800528651969443229018929051058321456709778585126045607632567000413177551462230207113256624100758832368194573732031306637587620275618936390399152271801638528273334912501110740191217890641340122429471316049043219374862102858356770225665045830011694108297109880995340765651025460259630198810674773509487188197250992603169622983640211420834117850770718173988078950782822637671936202298049160006980401212436464681748645999339428993854971115669387192901364259550609319258563875436288053380411415369193883163794788022588000352390087704982980443119931183170129018193526152764627566127648460717279342168666419458767910798928979128086356951188583898516203313119609083523695554848059466124158718177603697902458872927227427983944544801816306759332307101952915124439137390709031271200838088914639708922001410753307952526357932630862538153842523397113691453716338243641038086597601625957544931399837822862606644016836839845235082095426019955273903440406406934922304045136417726460387450043628551144756263152454970978943519372037983162537426213043887884847751789583522790517890648686918587461309549684415822382629034567956830371705563543881210246934802418963327248604484129705467233212482244677139737024266529303320108917764089025693954179556382335276036292417914091898653935589129683193353607146277351002843985617139346565453926874650793846367144881491434158049959869462639977310976304593527767659769841101515139190579910865277996714682720799097572412695765221436861095784818291631504039008296304890799417052921655223846590826359669407695849913625995340446258986174140608197525605147555911507930727282305659502175164312574084423093728758490711921136339549584239069062187294566594480664632601642517744011273317473486173788424566524760020100181143808493771906532750964812347914153129320866191621582706295367990486016982543539073148913235967256266985670893385054401045124868448158617070923155617542160641308944111393016366105577320298487872316584336788530849477555943552136735718697544489642357678842906294912317969647645572927856302358084976320651299503023358813971115906858081321009058038605264013392503800959370269054399806117704907210323429294173825474217668908106049207587248182060157735102319437894013018559832089644738154843371788199431790396286133920466820528185756120990574655800988128265344105054677398125728819941243356935331044256611238222581298174354202901843764995799286063987196412767101465759870443130333268670217112127484713728592158072542048051053457174788409368786520814652084137553319034456939348593437229326719017628983917088756734551425806165330831371823914616670046684371657416929041123241086364682219165557212293366574361951141248338319138386608828666967911980297584126676075240349622234906486147365814864509551604310088763756676772092804971159490589884711328410843096094542441060815789141846843789540724712944492858594374834163058804663230738247677139911951528961708782956673909597952288505515367393204912273678885146942253865368864544257781040042668321019961869146982531701723366210666719749494194724370544362571839692043839630052971881037256832407836880620705643941872262812373564328112185631779466864652975662018583556350276385601279640044483305394615600869085130126121538429206202150368010873726546127022363907677717711468338607618958976934488085709830399338667585383854768015651957909869574196900929299419460655969847820866709676080890796669218904590533212924876852773486267077026145708842220208463675038407487908021224031363762288149027515899647154552410596350339033875777132749623922223612782777846668990731287300478373028603398285448016285027750393542737983772038914703708224864743979048024095563294724820869670562702578617471190034661315731251244812190013148794975002831947751696490627961703228184202535982943541667188176199219186610469357404328951086639075104366195418957347872210865727694405447940624547217086850070258700885414682317855593318401725120803203870418037886896732033117059282256973988888643452926800653797302862859650713306868020434918494651183445011523654273925880120829861157670457006870424428370153354555827436232719178840769436335427868831367199782026492105696690127872459163056157411623682874198969180117338397526244386485154606040692335330578793901110867723970648194157176556740794066155231958719522605694862265309030401172744033477282227379563962902881960660912783570194424373797679964160352402734115064823263475720693278651331535517686435654875983181557699624837093329088464861186392793460559224722085393201401407713947717764692687101861368085450998023230896267532452596737851764391158956830339346905955563643291947231149542180343210054059174897836170802063968779730540758316038055574118589436730285514511210419554351255319126943447488700704268262631547746052843833480628196218395891844100607423975473487997835514523978291649762532402342465929070864173930337522566323066232982753888250210521675401943498079972635846593660537419242778795310716436809574287998546268867248136340596405859912992258101726378602814576641695627020053909140570636946091055812359102289988938449140997847963110987152771105145701484417316432375659102348293230096932080362368271905710654193846181787377228418410592562283878340813406172756644811171788882461090264816263532633014607907005005246971686728241816869617133076668090002494266147531314556735725504912731783752405300090115257221454908704191250266551951439905612646078638045101954082494620254680870671958893398691245683923060018386536655604304742174243835590114852791429490255283057670442848639900227509805501592066970727947910562290224030178131688999793614327699508593919493219558975984707438559864971222058355761388439310326466862348918420441703981776844688462765882567118925058896521878841012780886249186586735441153420402480380208994410525046086860607259082762284653333587463823973724640734800965638111224073514381001263682713410200981351310267205834817276236120067797982467181502897053109154413613421144101899217465701481744547498135682329334732485502914540633776302289982462086527300464226808652175343551518655082512915219766923596955088305629967750189532434174539378899282928904197728109421885111236577697085220925159310144201711878836818258146358342752736006032247176076144540535727093650293711770340129413502736389207837846271311955960717942051475951489598145994950141430786060459829483579559226953642618367964733454162060352493786016934146682781332927174849841565778399299687403867482802742784209715245886171070609502905707418044184478930670453085071670068774740874139714512625935175764093161126949179208787374906655534619741657709733804049591534250984335861787611557366301060703810682330126270630072996807511305606096253457933583493480686494301069348257560866710251719528030107772690716166355901123113056822586086771859436913904015854861688647355359408863394015167103264942579051483831428280603849728182520500759641335524767492690268014359599160366094517329735642556783393420940217434959406331686674293695507583380044625199780729431696515625327377298850043408759690454739370733642070159287739663396812211482115145715796883698495480045127674019947953655892851387079823543626896580146391219521628724009611047064004878536482876005332452450371069655753015082036221428129895440186863328216191701373291784562464573521736111500215030499803995536809660802964256435591574760410170623251645931769542164046308468994470736874175587247092148755784852615856510842155411431127714649138599632162778015526123261174521880717279918620214299292627432950020383979583023106465459449126692903444111678039792336729234452740677977276744352514323949356191565715217505491840603136287117962769357644380510565897350283871079444180971063014478141529603898945900408097986876213671002906025540284901716330666987372304778058660106656762660489820978541385970191588096169714994530778875480188356666058658364718083717100810194684463366089298086936858160064486226112212513619272387600556802292149574040463577743418932043675382549024680192758461934410839333142220957507081835483657588100747917722514831329767608859895878978717153883977420640470992854983256474521816484587689251372362372476536108398656524442665418361555657301478895206334154808606545823518578251196492159557134498279467798343235857834164064119165048532325934993106701326523069339883849627148275578269681074342406148202880408332627778431618762086157627523660165333891356137609810840454796235046663992410112876524408663912254350246945880016670200880501465520138504574986820079643657986297789304884825230341305343921933351793805737976084510593959014236745845421044166755629980205866324342769710437778961691820648721296146028391031914532910922424632133619055863200515655333253951177930174954968005409223250532253739977017971794726941736006983442212180356905763146255818586735114593679294980390810470111154523234658127352808117482560086603301521893897770677756406308196406236576610053789661332345284853555497248593942578221409683285958141397796250718384825194535261582378364074351157552533566210899007552537960244262184642977009126409464274736861498823561443722316428387323899888029454472538036290158164508344895174920727352581809328575198203337023123108504840723480558738938400243479379096602245357524402241328106757481333122384901669568116139676129509581497732718984697757308336839980594821172592268221259520016793168180697891268222893190647660863531248883903046133619255350306740569830446143869948955455685169813754975156924414534260204377450020912119537328274282736675069881377060938885985472919267522335577046164405170958848914305288295203418026561874465432114146359469756762903928486002494289698097265007736813309747435676942877930201209054560386266203846822254829158117133485034053102621711277402040980867207296121526967548752062739706792810288428543764429345179684523465984400873830238194151879580654702008856681377373888693357521351842944630472157139876429420263934515686593184773242113665635854258941900834212105850338521269113688870298233355965332259943727206312531017492987686879517939673210166501067655959883947407093060842140790580268918638483783069714984330722803373565158773124482198294898625803237360947851301683210758335670638517131642149105127677479810946819381215965854392412847996789837374669745421692066276683167211431030145915581435331906214825742769946710993264984978056683528371115763577381158976462205871046846495629399014055957202303306485695462919000166368350813723436644062173813633610442336330829985024206664919320732071296690225074290291016330997067495700467476522591982726377511090463509662657025501673801096016407464457565573776118887994220371753287413384794052875607625116325333394723361430538207210653970905253960464855881385211574600072134480790401965120712831631747231808152644448902494748323959646407483414144941611879682330547471244385340178028859047987131773926034134985180934137411863677169584994098317674437309743742308494728149258820307673648695422874718524160861918597380561395011697401802757877775932143303151298725173725564937923369523467320350840936036016630135411971276372866760719277493786419993479160344339774652957970017817116794108116506145926234921858439444664233258884831094764461467151827267999428999217305845150207775554263150499443366151084995554780761914227978300551807630253429795674241889028981716589486199992337435613335462171928615975643931046548148047432879911260011465445696455069737274850164691544128896231929177562460059164039021417922255022341988014176526241829966770506191300709758921655911363219279720518765361327946024712244791128735935383661834113000536392886878274390820512740083253591720593178351603820526795485782137287415237889011732581772713149148957847372208436483260941242871499785501533598352591782862548693736682919482186512491268609749637980945838207110588448193204131458109528707289416909129292399269183976616165642990054457316598249549072215401100508645970454956502908894247102573632587207167862857550314923170537463905573567039085906539488999641393234893497913426659064406269231720149231922547086558739395852972012180856768933647092778181712119735325692716301597623433635292726505937618791294677373552552715089908828991737446183870613965841380605116584174605893457728110566880089077540815384681540510929158120284909348225834879328460949612930609580092219196064168903883542503182460411064482271779718329417403344403171886417588220443250532046511440221047861642306221355605293333339572379735450992067379342633413785117613497218489585336590040486131477013799629466507823173159410898171045560704821300581368502445407441099573703030997681376980923609277024245854290583908010915097730173834867822507441735728410190397974342793568727795795566280432855337325444622641086880630135520283085715293723631738045364311731797246180369044915193172492443006473283328668363187188996231061368269586177550796883073023734463729635573431613964129926483719207697847751523547565847850258700746423861401466676279060840628866290624139468216694825207167908837308608614659079846083214839790349624340384854820576489548381968948804210511792053988704316578001867578087649316201543518646336651007659936414923027207321117053077930822417339832702344206843162262246710720204041226622950911725174634846352087887806714952131721642959880983411889693536470688567156584207660024255126509817026043974577589906645313794698317801842815851162330117479895856970986074483901939542407800506754156560454010021748002002553963702182054073002714414292458807644923599210383911184431806669515895006830027090087709820851311393266991109801801873367212338545306121394621919232106757615219110979738855681233991351615864844824448357432651378081063664289137111705577737178922094566271359127606483110991102658486915065068825869160635838258747103523582889181559867831483798215881655658910987678811144035407793406255064721766240457029000689533096857012685947764829185889440256467217158570266123913814138757443381548317812127359476500789910875683670430912368553827436923238873299949663711825612641706217185833320675699576286909266331849811387971760034996504551421444170189449571447189727803226903991650031576670939701861174886903562569455030385065664441769058584923866378079536701133339845246877510276556399367788439356483829232334541239208472694710534274969382232476051199636800582909675961195524886442864636659894611805184049076683068978494463767091804806016947206807394797517846192813088763060671867538978678064661849525884417395730815622067405197291521406050907673393038675821080118579718953945865436280024083212237117179755057810018684698394227044370621732694345579186639280227818196724614587438008555130584454865326273038227426079653889575380244743947390203875851577186340672699919346696531704884263720212143202205516296133268367842446865804951137391811404852401458855469224714643130682797478758274247531037230381866908331455070452485780141299035137771821154903819187513794525531454760300589081545522906444278954749248957239581331941203761241412391822103948328531160498087490055758431962614621414418369178358076445536087596365772015251887706240539411404602862423357438826517656390924875720368891945242836884457800409738718052199655028983329358694855924894497296234382507943627334903769450290931969189618258951442206772470104475477449108779264073625477074386698637017209128676050061747995556230714783397136052251255938599692857230573180956058381730096019974031231268682476229181066278839556265015447926699667847588865913700209537610344152021569045777399437967758231010550423929100828249491558031120519970852790104332061789780504403382122242142828525640725754167385882649497695940343846414982153818436232580672848002130935585470735860238164669463888491783403834789303842713594975664479707152503449009643297150407452801069775793666977729339776910520448741327597669354234247864941772342576906625330416788919733767126805894380011335243126159280392281692905868044023082016252525808237258184407304135043120049716069684259584797829286533350011207819770809955691321776051248107567755745822444129817698670880748134607148099755745225138862219279550796230133408260627510801344993548313782973337707427964675972132125285168173173951040930747042388035073952683876170280887844718648623252121000513168104914749717278784718509723409534464788417167572771737082809928805973565208124929797896549963488193010742979363795070418922964969186180072200771805007692355485199371916107421255097548926364431347211213697632784993879584389355944722735366938516611552032597378298121398675801786785060022116548718812434917158624618185341515947803671614286733997848900255874870647833479563001244566930074022041356482572623165368364531804011073170604131524711466297512448910422624766296785867176325460835492908342677137278867234576765310267592224186562604411633762987503512929940388863880563756438638979705803182440677399140092180502591964391417487760499662989187777688519664129415208191950375130751328921061962843167391129788171497716190507635737290450920744879105006781510084016065672894708893367222314260501290402420469069089212400182783004996049774870433033186999781322201004781987878936116773331376279380170763861390172890085570182636934471263720163528236485688591389356718581014220732507832300738093317938900085508955787927985346101122413530005219287627754736100739909467561387493828512682420758072567537731751814358238030866840396507506867346548073280590370642824419222421202221483254287146690538110638324280241850712428016764595744705483549718405491646929728202684700048126393361862161319722136908360605819536138217483951834544793122760280061945192442955626130024022843276109972485753478241865955456356440322862537118996109470088006171176453501589989714861331808011901257224798028819114717237587151209129015456440634490649453666861919054541450066524213507959287352777447792777166580114645205467078875769609139825926007584687562286990653722806856789232974545537200548782068774883355454418617935265101556221333970722342172196607656778389307017857502500347757579776608560746068880811363841937407938023866753297002610797460135161247210441033324515240831564459621918683468891855796495096905183736226454373568517849069868982487796507162649670773106185259082860718274590393712029722313021560226437712070770800397983353262249119188530720210375314801665533033363610194646891283847032897039862695441528882752867579584679821328679807111414063655727668257745949541950352913663746396709049801630007569135115305934782859951372270926137669501797642780435144722928783720252787729275270321826974106934010748603446404099838800538315143239753588709622267804504547739241117573147398775329288126076434902159867375561809910321522435238787987304489910276985106450518684354360700485082137786093630625515994935816062819831878396578809936994924253289272010312036399441554031224401697663773990504512474465098380987983594344471173144211862188407328292529559182935460634592405642689358582484525497186327488693406171329137733872177172900642382203108723963362924045930528823871099213128981505094785207361628865077597594957720553423466228516572457710678140589641705965029120320276617933693213053476087542595146830316361803026610681311886209471544113896443760801561275573072709402303708803428240341281164068304400710112784105353890894368110686102701116068136927633951353875032083731718442381419025648201804704589361981702281984034319034811731019961750895491648134430128476326255137772023997894128671266016738936886451227405817009482791148450931059342761364958359405617403280894958113071150175637575818283200304524242390664884269707401900824778111551443036109189899061839493994982504079598347699216750144066130717902679656139864568071703065963581605099349160943163501506923025437939274862364950976535842824542140207365952508032187963920676898988663923527085424707620775470177903661767139998404853864992247078275768596177340684896334096038302830528217951495122853078345310212198164746503464270723433198205635867554574908818299551292259320230930904388618189323367991650267112683034253699512129980053769032309112473635513493586186698621907385208722523998420396720088023331803919107810104754856271421128020022919450056976588620387493533573676381886145735700781263338148483662104315286730712868874147955532957906008709470846435074746211497011913510551937493753998780160423283358673981323853037772624524238738239235792037479091477459260625897961823050323026750861597372454631779240718559298578183308777436728212242107931465446574833955207288533886924422939666924205053403985538842868067313210888754272790554348017627601840190571782396336185720470167483161574092371280032524900849366567699014705660341603567026096698433831819557199535684978969628924813036137502975631493966343387180142336774977822822085428297051392797878028523204066134899163109314601689251237141196958342089421731853253808077600139734147844268967720538957696298997515579812247581642795214065228710510126007118290520644894029561303468704216175290306602244527771117074629294769879552426440057440284928900222487280760276698328823294392758473984178034832086871393151050029989800071265973185766317048800710585894102090040083477669653634041763079916512377108459942986806095525666824300249820355454078096700362821146599766598067000188021673885988086788996258704760297012063881915951070235982410063161725031899795628225830105740477528613322013335335021599842568154335374850993124671495048617450181438900660755211045763158031364817354488395499750477107420464761497254688378110983379395643178454802825375451134933040731269374270602737178209842547874257178735634048658239850394186001897193813139187814493829516993416566072274392495986676038718145451848395688938622681891902081415174906442868674880129475622304254654396847298491101176592135700958763934194036423365386670164358628540960084927113728402422642470669243970003443860728830135715385165544540350149361625243628945764286506738573735924370481929306024198300414402106799437661188773312080085043991914083674848305407055033076100811945928461593536983452587980803110671522292742277243456559589517527785915411775527905673147052201934675512020728016825315236355913273264102069796643973691682787311347784023042978603808550404789290106071037634838439101252308344410677291454660196417314458274241530078803492965519745076236405264439503565331040332151486558203837294101286808316805480634114335946269090087059191819127354799368857700529302863560584262319963666147917757301383026299459235171454111143064141471357280266437845996008769642910800124252034207917180644506904121251243491012197351130255384033543702332892966872277204742887583626419071769925393891588664107627495992941921227448087719125748106477131016276706132924002486909104796171427942541902852874795087132150310840753492085809059104880541669520275300341921905654929494953289295787888085559491176063323125561351014124391368512708075090897518704137435451256827154701201260632457054537782866820907933004089811133948186031285815551929051895330644966874957977366543736741254980963819346417188855389444357727528572350737640735700731329497459350192355289315357236444629023908131160282167253135477583266026652627242064991600879523485933211309095272346473256187265512815889966421151114650795454434280418193729435512171821258523256238668772717238836831409134405999159660978423700281178006283263833649247765550580363026288876065483016060324666332128770128732344405450450869239798433765289762449299669947044245185582818729773082447212800928734582063862957824623809197622475177120131314942936372594128906748711649567098559326900690361164208546615558251985128742641393743885163719775748679683456601465338146945501677485995429390164732170498686124626048433244644914987398732073041248440770562575025494117878586573527277491791669951368307038910126133000177281510965690364829844423290918141115507160071426367630677429136860487729458669858197417834504078198852407597570981506524203790724324598354484225663269938543881769498390587362057787933388850269707263368433064383991069265500483631060999344608379089327938076883202576286035000011384108607222022020481503133824776815101642553686520465181487395295098338231292850336114652600611653933992977859839071872039421459920354294779591560429248051048258219385755982894026047650480990404995014158447534398115221475729525337987108180357829580537090752747548053503037468343391826668496983046220454742780875895548673899795375081437191646096047319113421634125503420798598380591387524642207646859165373778964722519905926563586858406140003824893563422302323154928120688164023761545614914767725171091127775927608822459101645352195113172483874657262183861690507951706410217065303615785384496423110236754318375098129583243801238519028879033713728102476618765043648963231684662774725410007822817050195756058862882276747480480569717873498543908180428973832723543017392686694997658648610868882844376697790177829675117629281999353341691267855115481116899992880588709184271182216541775103998496606921128632535789832598108542927714255270338363968139834102235529000568991958795863485501132310668084012630588049947411859229733134447424966839308897389806864470711007918940132680966043962013471452946177042389285223445963020543939478165071785675372902655535042519674782547273124221334149933573841905460833156329970005774188268128434374932380484134560746212692812860193260628329660747519397175441613173735705899030228664521355671656203631474102823437660232532857977490574492844841818308993798041319137377240273960578460881325090628811525758882419998043043233811009929212427279042564742170078612704702297303559475250892665751868250477462515903677839690342735208474276608637891233097045129248671812817136814365038784697075091014985771975938828275401943499219053020893123890419565689257592913205626672381870310338507824619271369877221556080058934245527827534313255184668773317830191794286871493067815253406915064644245135267528595769957108647033051161094223772966440661058882487980432112541341375332316055231583764750815009522138415813359883231394671670879519006403740496236224408698573409722153662624037245810791244699100708853796754531730563770950109121487575904028585642464362401719276661784125722016490025727053257749085235854829954435009126158832234647768355324042240437541601368521559930111922410922748412169404482333769329662700377938265416885348997258995347747945380486624890055985997923563923748158254755512058379653490341731721507695694766696518579268570647793187928836398032023750876978934028055324188555146853637802190537420280081308017816135499538293227607373429846784732984250105647468688855540239154399573651772860436910760968415522479960707017048610413039321764752095795827474568626940455574723833010557004759999797349128070003716389631439533082545648454610842425471496635999694419207073303029025559360334711153446880191580162335942900130551035650773844553468199311206722654233237505455279722212497039880777106914064221386481732406305362078836329379142005136249639775718552490441818189485745102226020527242713889472936977203618210739862760373127736254695544925738182198961716262110417082573416040206982889864572043398711122160375536195908832829699546595827776945520660285628167756216379170418169569300963180960440704368328771364093722024789567291379049950106873237035866671856322568135247711812045037753601957839338630896904547480323319456787401869198881643590491255212535618218293055226050811458494388914577157934520767692517672724374771517354198694386734811517925111652410186918365223296533507919580598742080978541711969563489666225981856328366711832342877045102398830953859686101920943140908923331713726525347856075650086038916315277634331375400952074655939420735783400939914373191973782867002740641794043106030686615642135135412781550642042193985744895825026972632359147784289650022986086163359724252441895952688317912189139263414933336303492260943490464951986624972126831256908852523980292129976195414170390765426173233623155087293857635155180150103422520322957047750879406967354134844399387194114015495826132763462386309150028109517410405449264118525812132254913348163751235916966722796016267344871856860149442944131126190295097700611886643101647421653576408567429273028093500279175843467636729803380146387267150440372205685780693387933529591307115029341522328576627395991884971469755202771339077741469885033381366819620290703111988699414994520689189548553805254203590876106614135651584040336568782279607795999293201796645283503286226222357740764012234833500537780477949249203047865343144499080231393936901468057207310316953122339533528268644411592096633577001385855818729420085782994947147634093338173977142033640265425704005883960260203251766145584308215861828221261577243085065209430378286114038122852091411140203220904781991483429883492446422259123545303721035482703147894650847843419329646526477105926508605480137254419572472404964344393415107597069270259149370079546286542245707921137201752732714968515989062108052395006918986006496818220654606923009481804520459890022208016303129274176529537080287515173770180632822056579301091759410189441986646942662927546716771245021094814551227183703381845480980065296529760999121759313456773692999565481911510820640813221550574575221900133661005498115623619433347898052393855062713306115699623767997030502981044226061622530541006820722952976600979795081061959191999092979666989332431167384744507918269357650653597916741396476333368605010805942718694599441855390937367744940040297013574192340945627431168692450221851787481442259071185707551405260653397206011969194366536300707448757020944504630306619999174335629547833234697065669987769184158060130446900806085377420659857481003692737752893460258184297374320120557513528166160253910778498291369732665828670755121363358058868487939655248611491014682195570678136127096066558853409326366028555355554261684782536868067338215195490882141013595414554584047389472968714739857491544059030733117033161684617567310258763353355025364363497265104272628218009492989065472334942213753401439959094247660577028609883767073907419901852219141865228851132696092314704239030894538311243853459461801695940108434505447467288602309984497757288906609255269843408101948455526422994862372393023052462717548725488264209269370093220854992507299497549789013940910203266345735529939337298008134544704620725159711160565612265394167105788039258262648609949353253714413004286875949520286847297415164906967117231266694580226673120129615224638044678441620486808546087365737289062382464037468760850409131288610938890012394725920592290511556112192791568106284238025594217711187813028139298294611573855355800888585937415431342216469911922484262911172657663266583613186707674132634177124919963564113913730732504304110639828472116850878859007151738210405662151666909436373046318102963520247371642147259728478964754701065559561570245327305169515296339797027906220578690861979197660830903820500126380679635972839830410296509157747953539410650492518365880323395330198601527016423722832025397280653553470117198594104794440676384144796274280948040721093113042261099622056277742498227160222010967618169498489666251808462486470610853865113053774605533806586569465290637740388548786286974866607540471009599707429285390058992537584952279003554420318376974505363256058041563341813441379861461419561686555259309476877528393447044283042192181101313595007680554079625149927052659653178233729567212044446090893631822516351474773380108711779881351428614666422162125851396328979674985800177406730493039746327089959285984896668799405513946225349472167839136320071294435504042470023605035392149597537975885493926300686961167291862740569606508675675977189227917155123526241749998841309488363489186591599706582812929945346746487115610605494031305513123703936169639079689541957453832435685530586559018885498886740786244657424796572861472992696926579848562791842363905647662978660858204407534137640871121693942392357578881395733431154545463259087758765163086562416420547796936830369850429020763316251820465827988301860710247581598065371510408744022098093928231864251042779914930241801217699706707841080289207598037297133786200275841273130942756135800009357581692274322428101383011678176023949371113543800126861518683415920604385278066503660144236004828900012341606490234658834862896457230724884836579479957155381406894269270535554646979737386266173601689702424893019704398000638488616856570680261463048628742539719734372747937948186016944986301649200006956648514522254059113123779669607140904430016630792237166747646430945666791457906055492231724861311657472714115748489657395141566812649404497692344437995333030829066023302641862243628892787704095940430932003680391497084607644975345670400664987133680869131385340437519755613247817948202191596061834400754944068823008033148973365081599738336099030995485234733805933865843697243198257447801420993957106995062763372613249884039191702723770646392632216813909470643464091843286452305065560408520802107401589836344391551858223975187578838232617394218431244316068173451172275641715247287587658109188686350743351342804191920721584251481207001197576388865746760049089108787930762710765566988454676906502692787492203624723373838685742918049449731231646485418475852110549889555211192539254791439799619137330118889627584503036578391213401302422968969990766677174436643468960269495677429580915795775807274157660027398230593030969900840843839529275372954265556299832714748203253263227006100719348182651779329866135600489819801041845313845280323648452240608111919022201729022287540846665613848587443228362502433008677931790408440371791721724369122678323973552216673772810880465679655930778362219311855088834928899743063669180188345238832093656148071264111078507517829594042863424948988025087253191909015515090456133704079383472455551890493346373166242342466182288543037750632208747630885367349924158613524390801286148899851649218308558771242434821674320838882706891123905998109599258470610890505128291208189642655509402211683843936666089052983050212203545348844643109168472024411159729491718427593079334920352612541148411968681181076494094404644022438406265695843144108886421893277356808770811514612870578413746680798623630980922259936285804835181978048141991752630585482111634454113497816473100988772394572019647033141853149612823175723756246787190226724808743434578193021334034658007370518353386558915790879900983918949220265926298241693265893873344376179317473694452331721478382901659314655815620147114929708176657241182104501974169738319444627906435372932581655000832142500753768027647476033076540512932558470864993703609858127608543721483018677015056029885242841315309619194854955810245869060933944040103829877097063247262559015193323477386986087021547453418432764014439246663686367903167315321282055470119657013683012508180779368395680918994036686451580092057501756703240430255550317677108669592491012438648655431645322272529718287352490783260690999887924682412524738747535959705836108135839338730519951668625288421451211833820961495075402870248473642869876698200945451745133327994189795071395869072244154845210174345698406550087301260814025086575436100487494248924695597345317702643463551757342148586100008141911214168042409263284404245227696413260026436239612620081423804691022181721874298792661353495538924768806020878479651126353722502782436958286246786684307284026543271842448846893286969850675718299334158691999057479210155578985831389075326868659514797192788120270920008458438210360931593201268857337058451545949217937095851018162279302413611646301077417600840704735401140291045162091927227632195082239181446788415540998199120821627676842284358041012559396744487757163519690489607920032400280502471911858081448750196788426706521116859775114023422972707156545084333736809954372908021788821407468792669708252996160051150918918670513048667732910290867170926352450441604315183499225996728559896467012412155856340120803498534959195206392188605258831738420873635977167831518334194003825870153354201257182527334720830958717689538803557422703293152169566728743596340178904185997567750450596760378162712289336144574807120135159560126069478233304871617260036559393119527637362546555272319393347126612110409907472007690416866137255624276450969029663183544233786423701527566204374878937208153509928443300738268847049134609426401736004170616852122579766478483655429812643677266267854729756711270720595261016161038545555651028410286813045572244159325908931826125856573967138183628406950987911906648892670442616369315590862672746681290920657203587672992868338854063220218087998864089182764234467454830827879020352498390780867964839104318460271954157403673150104770353543352883576417802770717637157561247831887694101317149787816811932872003662791469431375389589085407697372802932345136594526891531571014477724944277572009118840093765530895436842090274253406593756360980497554859545592304369428305795672049755971543413388647142580811540620046418819684307957566269865912261930745836699917290808460793736222961241210178045390752023390887236399422255319867037595475914531748645013450651360584023553168045181943506549738476853215041355651682912252226261904010424525205383167354972276801927103798292745021892934270538794082440593220301652960508158752983612340999140166253332092538130266923531751431616166182422197449148650057148534509366136779281279828174664507027095258829317872648523718532415089265505456429583653663837409527066557769083044254363041844455403435259386993942591969756263045811994434618688235469672686492491813034552145672712327934142441199187215217967282418226894334062683552766563871298218118917120031244581544972683093593138343432898030205185867552399276967596906813928645626194635056679701921660251468965284106828449108422087466092911568134369201621740471088266049364809308678542983402492066924626369406648387039462941216381982703455326352687868454669824195204720572718175758578003161568058146021299043300390973170807299023318061157383843439835524058502802760204420650537963338263982882470972234606109260305990353398772313817813402930598459682568381909470319798724252803338426229089234588287442086603795495518193118829398109409659972866448732840670047576862960827778645334620252244346766366278200059456372660402387343759368080551205258115512912290013459581587610742990706122917584913687960946788785169207612621089139522056169754107387760595803143020838232229228091561146873530637141907170518737952264829708024807115065653480821530283421842780245789708495881981191602095609131463915013800026856803334834861830316959746426753173380343489833185626644864969165550707081198897567083022760875714940354968856967430433486765478979241921929073783899755689172958176262787062591401010594375303428428985002853686793781395778006464526069700743250306106143577454585184059332130740953509003167860791988313381407931676618005609835289631909452631893882456427335858320742933653432995594684155793698533815719043953492838515321317064943730114413736901226038737932871517889296100171137551171736103790394798109119945592665659935436829322767224258753489386962518402914504250887459109526303355634548743064762485253619780605947942558653040746012689589912263087215719286062354228263963569295751085164298864688162975628423855175038714208727860543746120252457331199289004001336454697990617506420917076383069338427496773620498762818613804220594856908357143706993403636329031117856871486000693363266405976355843810457329500830401516221362046324222074963450349734590342891466087552868504493971544742433641456146954809272563389335158071453494874540774514763743880614806135482121268091692798854570712272880759479059475614915266463226917144898248883729085065280334300039366524749011649901945481632929008327194990944766902427926870773039609683203279559690939516727895731030534077533387281335106899315708539213181945701655703954217032682518694216453726861965279384097817795018078116890669860759487106695960412218372665659382473285224030735098823805918001526131686923590676421376957431305564866307443346981581233290975343029035749084414115056844551998254896893076880131274730827357076026007260158878503450575368556631434733785641990022508939330550683687821566400000243061599852854442836864769037658896083241076357715496038823396146324339844685767593481441312202917657590238519251003993218112560004699221940217951650265776386896208521361206441921757873074685325141440794436459191112848484406293328496926616744608220570427947257802416945505676598166661975598504579171930207608736414305369259991036888606131363148711880421010899202926371395804948180383666384356700655801977270900548794024556046873591721379302143372141734904640799793232369672265195884512076485214182568014594000857826680424778502792362915991629990335250907981055605888064901438279393008882887776527513309755389307175315298133400658550179095358336748353294346504278591765991070088467475097967428116382911921210206195781227714582922447663190116821748567868789480662743646201975530447599756598819583758754095436156200641420778797135122418249712172960177973363115413730084280138605141330697509785878984936855350804536558167130085936774013749305252041086605814354183696116019467912265744441260587586371002746332396897235782482728418356038120466185681851534591107704949461137272335514620740967471673980672123194643743267894181953715998683670655098700412154870265099733949848317486037530021209167394168986603159781121102719330649304738935962850844654112606392507914707014672196580585819689097108778912653437632162427990548464821733896171444496183642578471628101416075814471309115705094917252722438888948464665123481015695970042089883622168001087361595129844003990613621448100777256976025590095815961272802375695361179054162050596600493893566179873258341072835492661954009022966446171738957364341790613671541800247524406424224184223308356825360983106373191824781139756604863702566756578366615774949373447509568294678257596399873278759422859741879543881239978728718105375399257882517548123599099679612375733761585582261840637313564733234326078007793284459352506561703981061347457517633782332864213189529479946027164942890589707546891353945329685007746391558037074493323425698732718246924430679163052782388474199574047371608407166659739720152326656100075558911986064438567735689975206796595953556670335690474544090933238105153054662828409931653943081496457502579265021980985870096876945826132620001222227806293250645303872341951141302568984005317720833751765525964219975167741192763312902465405711584265955540251499562453601624403750281821210834126281815145266843037146194904224015339770389534639941616553598128733082879337749029205422011036314420020421972196013873969045611975364979421362858593459973432078696551762007633566949235293372594594366948709027811368708481641517604256410000356070239729655631533569527103430948254221956151977199734859897589441309412368980755836443653604626228112951564377353310334493855807789547528990974009455606406290304686840394291799349061725190307844927647171294984611498677803483060717153215852219467213295521515578286320795988811505350458005717101877878630127249693177400364543796771665458847914261620982679970857958421891492219114213822593246861565782857653750312639459367811842009520990237504350944642655509868189824275213456127611318144039308623633701894671861672071532522022559758594219691719219220169840291414786465172906567050979737739378381241059330962352389593188083318686704416725317941275359643457407899627789538651620442688943062622913126117133261658682713866862297646115913530024694185193709991186772562535632391411813835833231734797650404955689645163897812684211195007006059728880785868934701338683335991409175043974944059450823812069970177764625944720479758774663860769275168892072133886369649876463831641950829664444060621494757956854660842034377921038543513325004248780852657110381832478371042594597892736597566289073862053863958335871348398073924669568123545579292861175779429740837960016318521864911296642340946796562613049878363967192353543253139488974598909099665991115975016321746199260882952176310612781156785768917388606730574554153437088314004397597653056620178868353764825292502074091748121661298313014280513271416596848772746569714044761915617521789122976609759661147224607131596407095432993247846744321527285900974160292131973157339024527942842692910085277085757794964647158965758513381266183988569250048671476546687421665730184585294685093059498589483764241975701998814216624687515599462470145227937410880186238965826800860777200613840708323725738105396366639636873146725475877622036483150412001701759670024439861712668158507639522973781402055907190163027638717782283674246371636101464598341568115954532763856638099872660139156444065190573031628195875520021379300383523411705880194449348229611703407161239692173493023504012476165447487954653435879416339951321939401105502854263851580063675442424289829017512250760153492625561708060555969526376981159222420736974480624284427272931205548686083692291632186638708248860484818974477706872923561667544650263962757437673800364398553466564311944155707220128376645996885355973226509737898092233583142854494670456007750130654887400935254729049109264446494654786740713410366017559992589125819917396924706195226816284386429123998169763472654914003638512089711676130082546490559231233850712494743726340013647992432493462546682914526602688629977378722297932173272706692239663131733167914511285732739159069392831595766500202967231518391389381069969169460975538795244324107337555309709398159492328682587027663943115301413703368283345437575824933547023986634556429901659812501203250663729957907055363518923172371839840851549629117921625555816531303765733751610239403343255654312164632524213897391233609985216511067473799528709062375152327874044507398082499891114916002533966864300875472362207731575745022120809826209166767032428548369320419391737157335684364715692352838634153927784552872125842637757729747554325149729594217765351598958554966464128491467543763159581237288133673792213372332733616667307463354562634543818235236605335341468497691437647537425020495160190045774409040945331859629922760129795329856595462193129025303503587005040214473299962739662708779832475924096178994326529716481098952936082250653888922924254388624165091601760838495223002685091208620871204409867724455893499297734723722090169599651446963335712639531113906137731486764611861789809982710629589941232775101801660954113898466851353460494669341125838503553438850090273213848862794484911574959092065075395201408002244231342702129623047935775361683082332763228485264529364270974533434321225844645171923729987152252123889328485871520549706775749436434431634852112590159100820760402977345657102044421764433253821036784262445406635169489268311311092679972618938355487167858391699845183141966672265668140056801728096389267080811667231025329782705985221949052464534940045027176660708863890574729670795750777564302303839638617030580134204534443511834525316656185742949806800899429243421377742919053056241220987689155312161709544641970909634630354502988451409653243930285511932908299368756113574316207729868410216087147805409586706300499924305382624187017085998110316343808741990219078805417070423731479587925878679491333498230651370913049755435107852251683656013968727267155704939611804444888422829188988257022756523111096572785205677265551385645829576580310136014308683995690638942022670267657500286786491133778885712034593754602321535703160772766231509270821882598852944804784053112372058441741132926581614845136491099043735637737797587062082451354313635822879904681424648845191241526480353477083130622381498451745678760680895723272134883723095693656069865629272277868673344765895973804912773263685057008115954464545220208385894224050218700855976763531157452809890557081557892987495056180414777775319076971542045639033418822819780533636108773777357917291106912027974922309582392644422395273560246546615481796237434257547907587746615459135675894419297937478139787111073559437909408165650183368925862819567643609062771366801402188702272135246642067555076802509463584021511051024378685691592755767267023811219543870073955681084735970931573595761224975135274651831562089027942503183725177093887702716569163209263878679632715080661727525299842912728488547892399656013787716077239584832630842348873502390529855502242390258393094166618503987072555510408455349994185347171949799989143741477396788174688419367568187220761444722750787689550781033539001097010679659028227702828539851712181951532087848876819818519357128216215619713368832677797823485796305309770179796541383935203842644343622960742133451959795898682077457178182454504520785563517683088595830825358432761515959060770709988147045912142234853040096225487752103061536923460489982578605701059551891879989955288905209984164642475760302259884639257167114763930804947754280639903993639628936216344110197304577435974411269134710836793478195756694047934785782513566286195506476046739292994454487958214892078995220651569403198986709325194368547540101136248432599853377681396608191517033529738723073464685567979562489216399704762073661218341284888274507536030010646754309554865401212060096753848298106042315709286006074487737373819143723800866478613293881577794328381095180171590608235349215282998572335294289591812975892628342134320777756661973795114974170473256152895946008156819248712898710060886036525316600515971529618681173217616859636926978018066857211559338810090233685047994387340833136658167483345187042153261179515143728505595770190316461100083771631316576521321828816696570633570090317769858394490380609839574009336139992785938529786412761212430817176765779153338523342106161877648452376071946680050461075921087573532973016930052445425133416346502830859992733833413045127796782986442689005371969204629305929193896285817547930902599448619519729456372285826764916782034442028027619551336888395926131023498040466212398181304490212904299944881972132523700190618865899339307937873788628465818949043184915063953511950339130986232035275115411567960986897952369367105042895359234962606063722938762307660364748857131859195450818144959648321849172468625830503346912327627885437909245324765644390813266031682288158906611873528955458540297123027655500170788636972189673009330580857193684781497768072899107378974829947433339312780380138827685507372491019792106303868851674083569296856110205899555838573564898942454239080494033659948044465634060037867096902633487436620845840532628423658329214766672690096890845575949225726159269783648093130144279802427903025954858447203630050297424945979332192602852703215886104457424404873152927627101053324172591125347289950375200420706877845357192408406008781151230922921072120992786860319975994321618476365085087259277908731396076268467378350320130093070766184718890146113273945538501393757668381985531268633005852253724482904786109150493060465795887311289498942908241763033296805785121591589630512326643921658137841184185874578359876810626208176420170856091930830576890059851938461790496189296391429092800636994465593225233231125476491296909796375383722087615642128929605398929144253240458993661453407360973994190539282008179319472097739514644078123175312878299694672105408070567118084183966838187996374841021742785315446159706691849892101261279401288238239452815749342944789001835178657093208114691218616075532352098760569467850336033486541739181101839831265084697761973344553498502339449619281479527602965943592149498140110137709225102197430179917059131244429171811976125178729595230301067203874202368251413665594300772636609392282110702050040756488744730924082324424086905558637905352549857940573143505790067765597521434404462115426443004120685131056053648613762441484367003613259678721094422594138676441823229128239800852996162229816084092753030799589721523932903191371932891243861835356150754392741346882033480279611093479937462244417795738991055141160517614686698166908425456486518226477828238640445425050140010919898343339537838145275479257217208600634429363230085219781989729532000604211279300375486550017689148853175213436528017918828859126522139963654940197382671582987792691562779887599613348883902067048926130475465265438068326165702940231387381970746473021566570463880142080799934053998131618767140681534912473434060662601035555462247227501742591500064050620682040789795549774267517880939883068037048832939190736891683921014109570902371188298022924839509182444208895319813177959408239320803689857254085865236587572141301057492990484717048489709749316708309186997512373203371591187720585064607059127158230118947980277161461477702909158653942954242118671999009380321746133446640844869104482357172760722036605056638667616385797813210154266893209233162985738703450253134726738396680634156102116672911620443185771779731215587440745060835574378588452217406201775129543526591607378282676269374743035329737679847571474266269602080134583446047902162794146035000856069422580166060389120150195715409265527518303179712926292825983129117329510445697096255867227812039793603412016546804091571452864033452413742425903199093730586365864513729511788317083252936140522657798601909387145140691016588277143378862100052730442732149789096847368924705376961366797871963331199429054012202205275559264061327516129327932463721077930066596633104644002558298553818292865133387989759805508007187403173826515321545373240981878780465756403300972425576752465954579771392992764814624287160907254673564805788958770338720925808938932262161586135470297161862647905795102021722022568714980868790080637813256569300555836766863085087914423157429880702607241198196793406364388007082921531259807257034844629358094043163788215578556457773833169225224980547226099204377634932489460899655962941029168805467650193189846198181957395643502113969854642918813734533555236744456574853584024499736110575183038990069250769143712464679864742526700786996755498812136504237664728888180321488304989887879458311141754500571613776552769536028807499652385978660808117041387107371539885305473026585621368717718162478163125303014742581964206427942229708989905684868390048062636125389467432730006445215818484656662272343635426087857663269206282361446916098555613877558308072674481434570513297233648486955202258157951244858459583509935901301151878808925719038504065722697283844467203590963887640218934822870919959996619399816040981101524504380557801860694636135415526530687213392384475108856045187444849785407881593121711611505250470253201355932267224220841561523133877411375329378145179171882259386968075070541912885452612949438550936758914353722121924674020147842210441754485486413759064657636345244540098841207181623760989569114537692662125943354615109241472607080475457865437983749028320378265226647675100232635217848672453498659133293093076035817902624019014814045141614347501559781263557607100794590570549974214932640122494187299986500759553078640526595708159222016410373579317596572731379444268207660283717467035746990071433504514202749525253233641324673367368032620958024562959110582686226452568517715774375456057691264201796744216534432871348286500654380910384566243357585474357014080103534213442604947107088716119418351076245479819207090828677501899928087652664001897327647013944036849786726413212869841020600004825751268402743841331813226275320988092266834906551051360596579497901420436018699860110506896502908371224423141626929820832373273613547621911367009403335832110544741642013857968947658940341544882040843578462891991563749074357541394529147287311981043460363077825934659858871129355579093976120397013379002672744331887669081360439941039996521290806218276109547844974898097816709087910027776253725713588246976766195047782354970174132496790506975021492143605872567073899423554419555220073617853235220518746871429786653370073885033242187823035625601772857276509522697799315993810316850439097789007366232126234660717164717538914763337487914056899440960476854203654670182650374734466819177386402458858185565478332888950641511633864084924977467744291747944118483556061043861821101627397870531795979938468305996492460129870723815376889910837100239239559644640749836706535133689174882194518908550959797137192652152133587983867135928260446028709252810600918508849293781186916909444724786640272128773053388444115831040805100383862630391325202787629176204582743114436638800121637217601976564779263128163203134837039949086041228142779327984145060398458247327891653014075550618557041004821771494338861716347511092457408555675085813353947903313101835300011804266876776322072040922425292729016374008212622862060383393970971516376343787647930171175682863255193110020691096716511568498827205859353126140128796335351619261784288568990907826135854794050025956386380393239901581466796908276315704574126501008438686744043182878226590384915160089855470297678419181068273480687672171565035585364896780770911138033720933962086516173038749299297987055262434314646467386729681999170721042520066766235919496640027053876724022488231142431787878593627177055450816510156286711394902967974578914299539690657579618151715900130851401624499865717977734503652230036770754041445508727166777743523294266377966787870770885918303600214000451449727742124998295973895421456477510305484125788017921866254181537671570716552993526021541176448918393431692427508436545396579127225551790231616489703025585861125621751450926815598470039183615069219471996638947266628078266359531404374993773324192046877870193853581460418354669452063906986200965823540120732736787473263341407018832506626118257540230907649928868439318522877320855296208449784138980445597154934958382733296607750820932541724545789256900623665280941663852906559554091579646915582667038223496163601396929317771526721346223347183609060644908323582400550565466237740109444335157956869436985298178869560832359605662606899094746978423915551648882841896525414076977811469731569238144509855339076304594601466524669178368670691255514523420050093084093557310851856155914409317082328060313891835370610397084098055055717598964329359585951248597850026876361503063268111378491490049326084190139596971219230688428442638491463682406680923845522236083205099895751797444227613856068218986261637736889044746191211996900832268830700288423572046290727067043643961114267155710719567254181132396777797310048775377704522177923894964773153883395806741851333637860023863529077068216324989138087028776358633115101946190355193405805171943759507680680121223395335014680662960257270679109024336789084410525109031566163515363329084747476932970584804954557905958806888350388482230934526051619961899897673600933917712377032462993728609486999463049408590918155159681837268523157562376295938159901729563334287818411744550662804204879087500583196752776576184376423678629830997177143814109384586160020102630872407536410668665233779813447245401165205002288643820040197354978219260212168948765975994138246608782370827896121901488346265297054246899485558787724791001329836855357118257537656503083473103457936124569978017432052152231351227586000678731075351459897188264580604142065581824621913460978419645226996286667413409242297367040887734819821201958133005778321450690757936157354755996623672172605934040909349768407379680726358102288838334522294691492193280630501929640154306158592695282062453564837036305905369495402771639804466324999226440193294053462888203435144400889399352712483420591460998135027814025541533061880477892262061475417257526600664558042582844745061041117104716680045504566396825959759577848340046726859049313617969533704616560595660608020533689422866567067301100513820328537823463619675525601428219733554863697358791882102360692208318196926983003544932706356400254574977622796262016503657018334618924775215178153384720870700248179291065493078010673195808450813196105442341227560152482762270709762249705719909053786916739439265294467581707709674563516311312374920045527205563993831837021110979519382338372300808181271080799537934196141834522324317342382708374246209835333578595449075284687626146656678047721427689116852992195559876355628236376125333018381627595852423814879083576729346128794678862340471720725575386814275565645498641509185853484241804708456625117970938630942715994248373305547782074761226667267662760357054761340617176638588138622406773111635853413322169694226602952726626685913797634443947078169822998975240537728901732080194613934048504293433175203877035530634787204760976797056381511998165720444609231818387788658612118122656559269283587830210757581796227710869610434291751640892738944513627226579516309745507747115526688231670543662265506504225499432399681674294367297399378248742603203686944381728303985480195473179494486810197006463277490444223027534595437121405206268315958944545899712190520574582993130580646479880714181125918962481187613238103280395970591460832473062691187265340152689569507184440608287707315731381326551222109141349704591107823206787656083626486698778768152879230879415875279926842414352514399274570121972731989508922208402300975141138609601405914519789005542844613987934485909303195669454947188047168711872502247407735865553856894013685443533997931308216731841289992019717316729110151107456956676899326356571367021305931475665306252402691484607663227259556557392419783497335524128191787057427423630360595681714987082308710092985819726087419581846412257038454428582521979029771485499536780376547307286168733364488395334050411062846200632556903478933817934507672065094893566705642321174029925626389336430120714997235649734817178354336251193627515659065012055643285927574619252644777306424611227257529121342236530569098161196880194525100788673335298530574266564643112631915371994341125870337480603073403494584953862816526122828636336140638057961719841480343304830640394043820201283274242731558291117281721146996449216077985993859445644363621253139962190126231179269595882313543186669716715284759738279301813853891993172255725710042845688155978196224831444556720541742764817808789043755461349842618660893885771501235360627533305302466505688765514423470487078793507126075788756315231998874658334091291131245201452834287611732326951312149195693031881556259457930958479516387214644686089156884023488540082769619757645190861769050261303329795547441686491036233464320260255569364501980855984178110142476185438511891410648129978808891705755194082782543210799799108618602727789920030892397655586100338639170525754500957802529716931882352381437117049349443363267042637999883652990922160994921854845031630524645690251177560143549271832807053481978090874931409189065607667965312884079830866843355438761753354672148964201127813703217354789498056712249833675539962114663203595227338813776860871224266889158624822745843725897676184045901113008750257569900996482462206347180290728127750712672704947856901907901070269706750327667455235712095917134061688732812259811467407158945632537744009171467637403675943218185134247416919081607385448416454307876869082954413298609655587382096500191699086678335632575253576798696479473291107512453026660297890285813987977512471877675713154984408453961254130744900606847374168269214178427777168909348119448467750018696858492716047593758880103645288189989941656759178723600167390886394521420684855483876754927787373224289740570288398856631330915119392129875722537039526170567894315790209367325278527031462614951289464567800726379624829235405556925177913524986876780370742701175938860583328172836678341552447468527743040940450859097198640068505448001619533217568218490798919012177858653457991644053306692262539375677388615943112695267542672448485588961783808293598526341013613120262763816428330572060556978184966053416197682240049641748137539165768191914194896230963226532788194481709098116829985980681061862332772744919277266630642080664757741145667478078593094515300883854091676827829437720895183047309770872814653801427994870415465424642134455921623580485124447873552359610876744130313544022026531929608757219440990077041875642155514322471198898602879772426576355109754435733092625552433906633059596693188037561408304393747729673749362124975156808956244105473133374233561165071715500479264752985425450985337776329626928637206047179274377466763774689321269233745869827849944882248877307284200743422438285647787620531159182916877381242019821239228833894827470203327662260342338809831339227966109897191902483080104774632220477149298766474938750709130534073821477600785083035357126724587749535296715863483931827144740697401858578636588675405694556936131384848736632580559894684578766320368968440788627788466795533064326303204469771130159093364614367598014409780761391953213763827576535432250891513588199407782025865660539585910666907159199797461506689438228913742222827540650223974876810697233058489437678907489563148301413794527700887958992168426115191443147384485154300548597747747067738372550700689986513822457291260100296235180691110536382797318059710415752694173244371146992073691713518334098368365016761313210034787508593821019536231521905782366116243104100590818130033784310480927337457428790119391388217484027717343049878952960216085021763139705946302060869992116214893001619939316443445439310726771113747843114543905813926195859725747445416364496659833727846559353249348379643103700925588352420183381472153428818844926873537371340073770669852132496927252906678906789324055581723212476287066632192942694906298672482674000156246831802766124818913475372401213714904956300297825138306574341423155960063460532231519916776816873615979137895260771949732755024173973114908561679537973467350990717272571056278925782816761829583719247917520245382459793687326438613290891340224659387908020940945901011511218823224581830091578695944469236447571900031882969114323550377054788018206904441502151129302492179701358531168388728403618191089115314762298923644736899688755667899753471483040805877126769258492349790148707427061928091734150219996078744157480908484627966702746729899602611367434069359135889720795786268021898386821478480192656844416932380327576167696093665174223910029851434539715547926948146399810861289056407359202276395165188611678309796027085606487983973249089449165542548412116038496807257338252007475394418012729347424460846097692775909785841767142126322731804334259386240149040859349870007581162761452507455000644898130834179406320663138989028620758107111732213983562290664431147867413224188210034428348773329898795169684778764919330473436012940912557876098578524171912704732695111732972878378853755742036203452890506005429283145023462370227089485435717193186207706697403146509746868161936498548103903890435790209108693652185049817662833001855765734382865658973330055789388683951907635124034824745567855254948767523774373696574707941033709853847501246105246753240469719456890877926879306142121066403163900623233288795494953786065432271595099453053854044027569250973297050649301040597115727827286968700719409785363729241508722896528771452842228331394550864257910468410891963895453653759180310539955140100279839582923355321132778260568808121882469441668557407021986913593234894633317475437827737349526486190593994503007325860890405599197088245861416984696925723117984541053209357884711495281925903058092238440114211677846113529384787787359524227897639841742322571719543510469297599210489556546397327175835159858914689095533985344125432892574455511078323156087910673651728252236953205037636861027453229014854669704646572835106147495362660051692738834819870240657633283694356521222995262173747718747111853431143800268248697197236904043217545900037901398123959712013947776961216864313315114606310982116855127762021436745004004724275701815662032223676108116439086516628495251114433150679330604192118776642437749592788978216724102859886060209495169326218615647019780929797749708078404360941596429403134937181250449934410108398805413455779041659757313093869480407422145190937900007318297996877207826361056556980338506045003473412981731940850828151075012125791983539430148838275386478775408200836007892008555077306537964148686674999627158126813966964865227064060429408822419593021945690297201229546727654389102416050705146528737842729936509321194940900514604853814394241769441794272153042657602225002798632899965366274441253347106709899064145441904028386053536477184200404679816674767631553069171500836115490022337337976448808179968839146658679135575223104230879704381409542980613380434707071693901507716372030338439251412126859004177226655664117033733161841275633307059435964904027683739409349854215806589087162919543160106477428487851495289067649441332522889844420083579190064018083456181537921960197761940922961630847250644939243946482262940927046938433164378663730569833373135694899471574151052654602366734740491897189608878516083160357812932713934410448940397473595776509379906262374424949264255675196176879046747147783212438904185317400176644555337551757578182551151359786048252119168481045110998613323470429079748510494174810518314062169285053837820213969278106254002510748247086906724782610538261356725837807644418897655691695964946655006078176531113002085590241229565522524690465581985059739315919038407066030140155877823418759348343999569966529232093115400412124710003591732006984125560354826565587800330194946888308793537774672755089516954191528853179094632036482397882332814802284268153802941849689362095580329626781374657919317933364462170594192904002950034563221454698634900812947325786863977930994438887876056279110627424719135247106790000523239764829721712309959657852102954131274299377770449042721757571562362173655768291919517930402604013028293265007768545709691876258054444862171945377859310383817163639357283243847238060869019167708088539678673071954774269936659184905851006278778749682550159638585862671601551267954890070958954157654676041504045804900749324825104040026167930371172007495872844608282571299924681488700125351923137890688716243962414705076163653223111735666366986090235394432410139200158958685809345486002511888243627425969362491400316547345831035031648906045308089890327244902763855427208737624707270328816824510579800840820279208661841556880049941104910497338046519264600747067111658763648703864591152380101211320365520347026651728382440522926815120146345521794956342963196476657111023485886873816003787295417044496822559096407234347783210976587833062722586557139026053858883339893966341291782242051367526799631869981216123466096286459521892380443009671337194090230228100921287155405005681960904571859244362405672487159654893271299986268402639543705678007941371709653520243169130550123407937886081164508068678869449766124372671520692288630190828036083602365454185748302974925727523664559971932418842111022176937145186119118748008199127033902276216118102672040768599279510855687849239803842705704443048488472589473410237675590494305951296941475296849267346904787723314284689703636213852000740131324027443296181195555722299143690227309277065980408197523551634481029460669374660529991187514270355073224654914188235671157177731564766207639792730125471190985791969591114530461694951917510138674911366397911068647188105655101473407622656632541471803418173837168392066977220400360399899831317609383103728528801087873593010951552087571100453932626817842830029275879917914536174490105738343409728953232412917937083266558349322290717812213472469910759355512603450766412379031391645893909683284385027362847541826270792136320142921220594478340006156747596572337359285159394724593339094223705269291548580700880090965325339330997745687494298050231702571330430908845748595790364555017002399625821377779028024479097321017600021829644511877354370233949385676914219602323873323385534002416202242695458671188177083874120400422900443694342839845492283739641651784200857040756689490218819568315621839641795305854778596954556236703584069349191019243949649740920258300675607867163867708863390956776123918746441943412132348494919172073705162072632249638568848154660636157111540881491310249048577541562090423763683599722708574208511972837645439690262487385982792147912487472873076221895850944765322405753847937128730319605119819249077505607857995862204385000948997621412305372555153599134692296629787447289784877429361192886478894185207193093981862851594188314084524514777245894109295920326472300917896935628779033819846075875402307412483264779478008489597504988543182349495586285307901694447134769572725115086451519913402558916240551063266013790767853306134985093562222701789418119516783451534202763514777053657644613052231974985220479018740885003041367047703747489245251881489461763673191801326277688808674714534652239847448280314987853676894251121242772949516252669626211207228463186020452516272672669983636893649429316975350237255824357468485203934938996195518019303163337563175863987077412607747102799319972648300331295090310953669722788976291434048011819961470640956560708889636359263508384101580732718822631857733302147960301356668114612560242087621826016033028228910405224873006844202926683795466433606110786299679771984731648651774874858293081990294514432653648283797631158572598636136960293868840263165031757653945444880207867340592807308655315690443009997558184918967153164989675907593227937972938345378641371119563724599978682616408495633453884182954402806307595399917967673443878053958704896499827664429142642587178821623576785564707635285516819551855994201140947530746082505258635287183565989189872639514881142314716250170228308858466182441326489635116055209399172283608457881780160620864654628953586794192672031667027426605993989960640565155519921841078167360348148474072006435868083395765152697469855177929254680315142523281194922648070773610230115350123534010596716740029361178207567989612295807254611561233663254257255212228586790836749149597156068947409334754559425085325401716926359930279466589281638760169569010486320286695979392574961045546128386272280112863496999060638365580963004588211136154914645789307771357249954901063522236434228996118698620750371672122915004424912123620004014086025703203845653931624821413766493498843273097609109741271500749325407181894272004066938075004574949041804782419457600603042015550878188231412519386076558121671161004779523476274367420358037328037940656682226184801324656761517517517845098035131810366735676876947773472525605533537447389405546586069841114791548746804522846513742024582288031083507085086581505263096535120692022456825204141078214265095283027284721324627525363160774647020562329800870332313897226761426253926252408355829110591930873853972030916284479714538337411814168640954025317226157145719204456342740019452545316404494061454519259525473695355425826583270216123695930026422654479470773531826758487343234022613324508186904265044378996260846476271048106780523206000152066623002348624546784664444038152350307156908496762175807633643083500268123836089357281365492975345252702371734479278536023193340676123147893140915548026309976412142810643677092606194045468882082359631904976228585184552234028214369495438686249174879831668750469051865156942265244365905637098912018081379226434365725798549117392382829080717946532661340596803082312235620730525932723066466649759261492460153368063938951194217312901154481124414242160931798403153919778374743559903131479319514510837958688373734488163618817558265047612581644250274709607050157808841645120486499786602431227465539789441714294727801369185460255393286979689911127978214833419103799747608929674126022856248569137890421857701929730340109205389413130439804284809438697001588228316249837713446280330685726195518675956875633307752657255134893232282108997116451791150544874387135431140048325883047748368994143434391008756026253760066055841884683057214899423268064900268861997109234335354531209757838631321989489645474873868483173931527711320670907199137018037069191485523202844851477344498936936505881435265845160240608490226879169809512130922446499995577068844298836297562915873905598619045937193212015226369899873747488619754915031026613239346831909472277474113887922782322158096081473046858762621558849274217307664424318553978015370858146637137608793229798392589283261597723660313136080378134089656003163327531388516491474868092310023647943105142904284188051132497715170380504762413608312702311461321761771437381392642115271831142198051539159216623530378201027053945840634046213480025594474296688912665728604624205188614940363877696952026944280965566390753307336802021418445339061425951892832994659897937277906450715510732670840923275233634777296418485708389302459412182072783993917253949537834786237406008723091672682265367657631802353110751622913553225508727224297805972463390926761072783703366344830634011031843783749249918252885570912047119652436521266897782204000616107706390023178428311355376041320807941730497364486608799494379530357262384364496234602181059979497910462265913735786279599946502383806472734478578026865230114770789123506071517580656739821687958031240983782240318258877671002354666807177129232589072504895515515774600855848812947874140612032369655320634729131706522368468406646054266299693096207052748321972624208634425715435671776764413994916147131354231938801096978140829200205356647317056318441703891237187702529251750785637912062939744308032111578834041993703130296303848053171510217685746473934115060257549088519631284888539439448149879471936402145797963283232073382514131474642358385942446463170292386412065043464880985397964580371082338328688469253919899015844939380781730247176668919886385757519014912802321557393201720488617457799528211347410023537120343044987541195774569471717197326732685694307076002542264091071777892777006944873464277931040392926509439488108589308787842753231974740478332972322543869198844903058774940844681025258127950420127105549995216061932761668072952888809864382865193785324888034175184443842712770595306883950884962162082629169494276439633362125301894402342554832555191406035635120184397006843876567533506468076222772440983684598901650580732205882720559254232922734403011743724329157388417710743806733233030152396523047823026917974713331952807919610987145263101187793121260810983899203254460255669214644700853375174231352136387279868163693980432562536529317065326007269682891986680142252534833535394691034066248743190304304636661161821679502412844296084584814551862784413176104815344681441111189245905332183855242848724776507534081280080069196166424345027713654646843291076913775803117109004744318767199880024338037327999270711570349028691050303166753858390313773696072968850531780843108186170040564576107313685304090273230183089006101439213868177528381355826900312775873101385488154817104484872606637416206738694212720338402854627001256917951937324804919961162001352742689252763776714258889472640458054795235332623149990431630005144842029754546710859542710601067054725132710023248375120298428050431077384052355515278181235561423923498903953652413521297431869358924004500372960036428760783597064419478248777957254937171019491914138347297650062229410421933812718282024599563367934114783014922899967195127784921276249986393946996201391338108576843366564041660006900335284885426443929243838210901197468204756092973570603027729900254909389262875121919435053194476569879734414393120850540960255018113416350922691340760076704154184119497667434603985197588479516228898560185213679837690444190927289689128898564900139754352200368602271221870721965007942891405010718823245138355364943124072102655055445110544217354571797419425797537878614403893588532571278425411734560737179339618735704577938094244358771858750651410659665444466065675315197670384714147668873353654980290177313679107171405371348171818439693881047434506435494354538335505480552764615380016428956304548719772475751549803013505179706684672321985718817041034637203082804675104936755177288207123712067193477171276006267993936597774582579259998865863566171758005018736593517930740365193808981624238469061012180467082491423125334608402061108645363810567621933726072816483579776943063552813897217237845215515965473044432308899648971328632952334872093571794692057605761602881221410618618659856374874220530341007364052175877520701391122139481076754142030491788256373915179914029150473566838948067251455028221352088961771922660365996177383293659696409257762068968779690784775289332042861817353106622428759482039590586716568643761247877944225584485480345463626251528753243820300876724698008313056134428098315569802191216008865004240068048812785707991499051210116860078372762883856703945013607797186846235933263135895519900508606203452143287290921471369346641862633244589827103576358608076176258623104776912158085100147778819798672797432594205599394738276861009437858056566163583435125191756889545623845458806519899058257556628922984131063075236238533214681593817909208990708792614253650889975786638469724480541790580412010444603838001237877442569665548416778319424630120938153212697595660965237891341977985209226304228932732534366449066232344703896637306304121188796825079648367728524189575280337629734436983457137840701940500873815809156367770843167629738511187056404234291343985162921030469955865006504569009591856008355435232752367753409559128007160015005970928501644587950321646346339995563858178584820436185028768338871470080033746228531074376374761593050942117172017750607588897516699618497271994788919997467111253509581250545662566403579518973171151658860609130611854760273102235084097048073252034903492790335902881728663668973271667062158053167606954503925062907554073524133341084368453200337203362495457434442102077492935238167797691469577822659213067946194691838588480175282660403168349068396572586368460734319306864133909588741927894564282721627484803813511646913872515920795758233985590784364981617172997984119550006668834361032014260674236302276584674661900528351567054029219340993569487856036214029916405032474677685865191076828988203611692503292279659793733650425242992919823692840720911704773362162744090918424572848680208778764480794326711159461452643107912037471907784189737355858277838523945007442001988181139246271612690092582635073678715700436914401346968616123221803239263824703239724940762143151414173295946436069447004480436863197394485844188371538131744422222728400466495546884699884648261470385815127762152641288762083798947480912364265242255643299647286215367590976678100635043927429269660196945138569053257974717462113196521010702589981280405839353213404492542348746849594277353121788486743323929718710189170839849917290997966341184661853188760642252670485297738188459734678371553810189508663172579208753563553032945727339738019317573467719083233942620350006591858306536275772444185362594823465001899490902696333606636091012361983528753261028966655276699820186891943138402920464152742052833427948058380935754006848670594438184298346488018635360102257524987360781746357950178653857032177417669330555660364756193974231338459479987879212268110358143220981369466558958202186523404061849365618682005873286595326436989311258175298047909517770690325558867031374738842493592401303747542087380368381761582012729373231850075189207760958355629727971558034178897123075372386629531158060031871415517131938250100324598276282466485442980486960666182806927111955962666600262033301906498269119733457085287774805658458932416815846156245142691721523551287434301252442197859007763597913676871113200001278283555221762989712679772197125997315734796268890652755166045093629557366876778231178242613797205183390199875620055802417189590431335966592891209180333449480862316092557560346143001682125562602038314730778982693062529083581124944285528096778980180810046370556425162758460869322525674640601897874456604985053886570964407037934063672858328280338858422907962430083797283858463427852772402428054868067638511858011778966297060612451611555790000323547974692783205481518798707072622922358989243464898920957837459300583553918466653126070142034454389077474358966790002836453487248347308319455052957040007342100419546892620861048037556299838341055735690161034441705161709319608529317195782936096344336638188659759926150749162090835197207200508429711583052095474846989011997061954932053358799195706876270784975925384089375821503145173435994195312021000168941700792448355865570258725237607997533614026966979535817455736976639606860870991740754345416624837196406792159992865437326229234111353255891783585565042575499254749150156624860713719788042253838524955450865278333498666213731150541168371867094541953576818153994572802183809366735003462214665578852265414503953518299102003037418703575833747772007321409937313913934841250539270636588168697492926137457540455560168684627665716066884625815642875634224745666256728764414803904166041529059486759536028081857278648875624443305524221778828592564633299835622228841141770077498573973976363836052985870093644071220643483013895047482910413301427936636942956762639673280906960299517427664131550765973545003032795135051444262564342226850724906461410773985530718845869243088543845263109020330367140857181197005005435350639253989270499783717525941260620295791834590674501299726725206785858914011521549705649523023378924267680775663029793073049932033935873691307344167780300170902631166823157995098685309602960725246908008815540563855788593596952113990127511343788132506263629372943632595607613506289596061308074936170540984942030099837317032066171181141487843516760656626419095324208891044232009181253376264195574562860988837847155008242945432116663864180818783221947546764364723653697594207920679948269630445286131900574032221295425345250325739737981326449582988095217168377709066513083503389998414536024021460160271925391924983873322862236180482956004356409401342728401694161790413801306300121228449052194207324390887573443065724175478176191208614744913871392511344622800845501711331230867200308576210592123654628778320288944960626537582316546009590603842512844067801650518548284083059197431704231121889118710888878737813243862159785897651538379170754044828625257567068865281223077189850802066377326447570146868926370523240349460538114975472911726515782749215792578572930796897779940969447115402916475689633350042689022882528445290986777946649923853116620912504582794346530475991665055961994655952911704876485542025405761602007291689232469084048320309847402890220116475361785461190821851212899305144115633135951245435751633591085072072374764644548216208575869307902281922395655713238679038856352391045086991018074505397139991327753787256406333497623104945438747663605269777981656025926021691854609429325685665591230350692030066799108283138249996811453093271357989293054020271200113716485788951319764523217747827816246366269014277577668300460167805207387171964952917246726360884459417622603888418215161867091752475229600218117844254495938139020306182745694396871877036771834924461092601867954436999560486258277761527616579420485220119172088721344295334514542026459974041451751350767058276665554155484338124267447828561704936962404902646006243550881622528049432876999650091191211515333991755837612436222033228218096659712730903160159099281577139132401139623432782005440673950334283003767547123670740244303785647436708757151596232911595322023428709109661007768843090385812895391509777610624969159542035611225379166511943739921803274676237581562525464804479167008392112475903626508647484321581041572813924852430207264191538954323139124497529734415469687293039383619981118577869863672556079089134554154441899025249747996356783980876294921645790768379371460019042897051967648813939822725044853716296979751033253492141687673513342304670518874777472353514246903300439759999653889036818070429558108619053432471464191662801810738689918437089988460719456635142587358047759923868653516318972422799919356845129757400787082229686328724380027918674958449420782861171373533583351436037591600035291974314012163722343856990478756597661912329760844983255055489126077835564240775774263806944402815888609922999824896634299764656401435269136827767390758010336508312202585999194228734878206855999379495838159494326262804514259870378561910316962330552571713464472754310781508721404150654670173374682252666887204924234808710513543802232349474402415679003702381115353333919406873711921262035900845168380989411877597090803465227596959651546460554731157428876431514532497994260808525021630179017877983926742079007972418995671438683264177687430930033175024783672162029584776183778245039125934580499207912308438132314302367750783137405022467780955537106426907601365088308472539525114144223687875806950364096309867819829113396947933757908407851483835914819667345842885045143181927846648590794549398857887784688842374657179833119630513583239298416251489758126462511346842882602712618276782016988095191105638354801888989222889367193205341607649570898592969793668627786029351282854339412654776455906287327879137975141283208240097565659485765753864768754771595016816195186582573340975674892965444004310868671207345844837154731774144728913298810513547742668499957530043396525455570379492798474724316696057204400423921005247774816367526649453702768321804518105001740031078651898869041986323950096801781383288659586620700149718494983303613829955359949356974088533152178625834388133146160537697719302562488529625014764803546087569609707122576828841325798739502117566193520955624310535778203626545974204673673437766879279179739072167202731273405285873635484960033915203828980397094402071459287807029181136794896249313522178965489518676778719244558128691249959384677470602070436806938661583845448517392061293580037216327339373936917551722771168648985616854783972290295836368245881616653887064853120534175007382449594082859385508075269463474756512679931244773541425189034261777632613894165121839690957085809075286554695550977257791667824826911863953007527098980509789449999411075461632246943911698692651920133212720292833433267635773529595724475094858670934827797760218009631269179378401998563672032958555876142791218614043562036806503042216089462273980257418019835356857434918946915099185468806508323136985751840581366584949598278283436963494206125589771484070071754628554061076807775655271036791172886973670730541082517215087342066603235392715300820673516614853129021231117329494315711542321044348627345774607269143936161118803650685219263009846749005659273957846409283141213029655527448452508322421217151278254620336943670332201670329667980089333152108020623115918095278600672400910332201037939984914995340563615811244308927509915480297087327468774962619913593819049626373426704640982484049386098538107453322721186576940764460519330774369019310331719867734722932567056605244768289438657091893558319725205959336601013623660135776389616411384751542719018264999648010483656178826086456226266387337002159879020316838617608943313537209458648507236990322497299422054725479189824736557042748981604557009130563768884864136950280636609504910341319799515665583140763477124685372026876696499615113672753863799258290566503773824348188788500614338071060386864852928626923133864421030567908205088278344660991973436518220690715814753918361272724757263619794863593107954989089281718007500829099597965766639053728796289500969110090411270211181135524791595636345835371359433208060668248263266225068763955204512944164506943605606764541210371959503990155498162405521938153218985623031369349319696996768630544325557077767298647520934554064462050148689651355950268792791128746763941346759915186325277524585662550689100532971870496172185434959428597215791279665679987870607573846083962948105553788027756341575675330841660552658243683818797113510975805227930285819552786327839833226175865498710171277414811774032779481264247249101310421869133866957240254405221381744228476530319719012221011737019222906320905624342767186664443928951022778350987108021287101479487187039890250772966435976362019247258822693251745304925455628025505156964710424184569675776201960677587804019928142663857438700423059036398325249066953118280595581943676659483729780478732448431455356516121205207909041571504294292004318188119904461994099115725696486263727882114213308365021116711386470538165875065995166033744993164965897381742493983607320360063338927274945767179504497233148121268851009708052025508816817793582894940160484648535449774497637003575814433989068592700673218555630603585586524267449888536404668199583919996366105132381138369013054622082700780085939142173583502292185218414651110504663001509924750260858010147087846573790392884697210750249862468075680763137259478853066907667326967982306154722906637158048078394813131600149669504814011598214437363495576499713179265266135748815767872995576528501501983465264038137652547997429575215460946773585069003880611465896173768595507185674495588665419518708432947365699662040346420352290891548754558930456950771307043029367285054854141944848457161953745659343824092126945332463584879659466025235745404527566356758807354155845277717671566259414941399646368258403385003569354501486616883590520655971768840275407293656046660362857791765471597102596836997961938892679604740796587910323926237526661723019058925181776665371431675121849478639082171668407639587706596439106680216456822167334086327924093941544014623430566024038139728482307906316392757985127718865714725257761734818605405574813210575243047188704690934099236794532865176410785107878270344012455993395411315549569752669911499983173930281430691119519498506062882855403706625594371021291554307845186467177640342184886395806415458107579360530051677019609134010506549079467399969139269553678575016221903184631434025980868623664458065755707608424280450578840901852281702000257802666063628969998399864474531987724592999840708080452575505293492425567622443314984241495910584568222904842265878186734062251819996472863053817609553654333567302163679635410154997636769679487523223262686869921485032857238374290204271014439649823327101294837260772888036844743345026182687122254327339411918478797252860485446647315337051654278504713641706670600216298753683511486780792919483645632064531890294293028746877430456406429806307622158783247836899170569341358071368126831234284745440336317040079452792619143031897355322079513032374443182120121577379287697188859893816940497500693254193408099987572536705714289879882169661997738961948764470100622558901082044662852002581773051915442504224866466816563223854951943606027550153188311522118896987182916971780833661566232529422568985474270836834968302478859627089986165710927459946807780813842975815866279764519772224640586871937783982912867760657123578593225676851663271203780427492396376494714540329697751174021304604572687530225983341219586041573119782220443275014973424186292246606265842522691846284858046432242197795181706614518060844376683307254490384772126080991344121424647083748956620333359499883823331403860881666459253103241474116472528951978718341830587796902674919317781924071845237947462135179758079839258866038374170190371673842147571593181478804477581977142425862796118940444255610544799038327434543992676623754334938564930090805822127366001100002033109812191944292024634630594251638191797673351003259440231130702560426852359172599493886209993650740783729061606355373711277319856398893008292844916201090792958098115306414064989605601702609024689364174432863637741820995785119191646597023878488057091466468920689747674481277321508310452814856787384725350953587156739378020230638386895265518453689213810866948855709425172738906039661035968900380389678187334524744248846804415612434823127650999061055329723464730927919974328094818248359275462358448757894118748423988182645759684052716015205745869748230781647283288110398700339598399562949415339628313975532785490977877055101347678383457712515460941864597178516578694934730371917351886602852474699157430222268308076138401988308747247354570223945794255027754259228420228037706635433505079960431107951585458969869474784361094131086052864006106157172610857568427563926398045689372617662709384947754835610428492324772627602662846516989036954427475284671403743966935017992870381100291363343459845061854392969780560471424288145358493727715332457658509511689889828244963675264262155828397300697399265578834593009488268047777716919037839938658790018499274435754174211523598885115762052523940225292796422453659044878234899393301504032298148315246438148329534872768886104054626485366898678821744711891991563445568436269121661266525940232708394989383083213636283607831360798258889300656820697401010996266786256170474222393969888834646958958545447652135335897968005723505100055042165116902109238629460034948234575377562833353313065606012744177499218474456886799102138194724229392476376253558377828249953896103611018726121101798742165253411037319641652441758434027943764598278924313724339610307987370873667141665006067289659785310809570830753402225766945535119949161062797552129648222329159862455600963598853991210711094727468490763096923169000264537607928581124662908173591875944577947030493538996666165429836872846699858654565536347475301717118259862294117335173021728752095831949727204730168510070565088795750711031451283634354641893368703041987447418097184669461567036687052568440585588464768216768503462129044549845899621102330527395061671737646228641652123577080549318932702466455092186708161185533067047723879019939085122050664630108762557685573028154821024442583968160786603161118425269559609637571999174210813221906087236351865684966419208448613593930471323598679737855018470322125061148129443084588446249186810316456040294642007021202666258991771389012411336992287095206729889265033866400631924256441990691038123423677589276231887918637400958827076747685053973988529495509000569616261778824444270664012673998376537041554709094423514484160016150617284579304927285703235051180269490943870503083234407623466692150987968826903025161074231824618411263436775488816176561421468097518841605868570897819564167644346402429113449662660295929054194561134585617264134076847380116904297250968047254785561929288805054011230377040553373200667655371480782788687629461035869719011050036619835754763339272454303352097009942680652785962624159185625085754149105373678333326693754349287150964785689336726511398410462872733826417469864078642593043934194311198890198565202296186619646332437761642331741708187304001445695889857276133017865281929945965076243088950166462107987292928909847962043997251303256181709297049869642167632423349698920589839375131465312261371163642204209929415161732357575794532884659011888828149275710444855315671867481235395241800610785164378384101503349849847697341958679846523509293700367588280544851911068564364012920383956385361872242348410991199396990070530538195214257210050943843670719554088066252424898120791328278872744652967857339326689579478522153618025322909300385518211423647720181792406742124640124129712194890382262882733439445885801385836339353276265844761775241090169284357247699149708148396270862980653196811257239946909233642236377227900706881417251920899188303765258120527059718240867649671338162515771448482194869904599237157542544751902478626819435735975536371267118285846819546103365279690712211625261055296849550196596953154714824356193767384924336746854128949573982866649503533079532543000584019722256953213327866533322477708674853889036982193040313445918610799725990568708474225063109811161984128916979510731972048671180769380672154854357966321800162771074519995812188845017597720900976687686209552933624214144215684550012157942005712932941063505154830717062734781293417061826349544484052330107845678412813625657318762670528612729334383766964283358571776997074114450815019398401767288927292673160004741346643591355589387962643335008242351600639697829027728384879065403125568169517172925410832159610019154991944231829660337154875624415834758301366961498800808432535155913477518736918731416734217371774207422581636839808097944603261667738004827181263227967328659939991664861952517158393070318165588711948554253693433779119056417226155299938941460191264585138088333802779655534396406428169940552050788676282720197122157370227343395322889957195505877828373425558332707523792846992711212537745364901071254785715051383205102095464584141134314774337897267687199372547154689935329506628727457661911816936062197250496924886569923766876287084994632394604937647083668831067258991752700853253754439340613664836723308874695441934074973528592459600388174753961920800202327595304508330538553670858049568423242481295569466307700526965126782031517812094145990836018675730949286605666938606770550025142079377637221842371978934702353751023929628518438989521065109911673846431602199153641963659074278455106579864300872615577939684260055536888873968535390311027139088304440814904883748200707828586505235852444740352230772558354139683220748094770661113418087417677389083684043712220054745671158358262444956501314061379724062434549668086339723846900622603304545213824960183573241275338030353874521804496781779845218865900269199779744536049309501617393610552675106209017354996185999906757806319131201041750738905373602203286285469709154154455197170806322956587321316933127424918667551476647002742228043750520989694038118547291378869403018773671195431812019369440940450703846596172067934281214394707663062612073733734337345812211855893482366324443569095724936375918036462754374629825846896128272603259616833397901336431578994846099170909336207647144231045153625752698081691959537441917806440249086175775665061045869840081803028010922467347749499836718478368083254276674265273062429110127809618631012485643713711186887277533999374554152401588813119816762266692155219088833047782273703076650324124822050016768097115550808719497610910038614224540403486846559049787711253980537204080405705573548370925764928660986936227467583787642096751595532715174957014809314169141982898563078966578033926490825599470175793210293178478811371933577272910712535765264676130377994971699548440438890150906566469785017690107660517931429146523916170149648968363914113229074404203650759702700099441834743491074272849183773560450623705160620972839190602310623644223221267148349058744698919828989564188658528078094808810162110349624222452905137030395843224139464524044647055871629269564736201961824948375863521661742249743464240123295696722903398109730829905310527983623586551093381667700343870585836627123375956430732394280998936825089378859817515740460604005597474086214217323767333880189703647042491866285499726172012797762608729868727395698361287561647749003399479745763893993907269214309890929538592306334537546921396831889678969746396572786048123557573397425221890969308039664622204908891667314784126618830357517917432493241430389556338422336462522456969906357441012959076712065537695495428425932830973157618489451672815736410463169756445344256722589850058748066325311739020677404219314675318237904157283374180457866940495549147662874163683384706733246988882589402566851017464423632734641929245509211377083915882362718869777156490623659757106651977423654227247701552929496919978686522106999924034758057709651063412284668263332112762186299665564416251155412372293611245805990537132716770332672022527009185647788797408910069323813461844475503350171642380329168755630277276413120467838354400571298997980600825383199984370684164787215142991213235319706668216961642959006589726109784303563799479498435008324948253098013504133531558219876374529005456641016116488873650524751943182025996720360047787452973692396007060176602874182055901159151168522651340373848500862075232060921300758083353242096910719253366417451227297077912781534855606978483241362035457598307280859470923154542714916325456571713757036206426909806675322629502548417451498577749192135435955476145190548774090145832481105792124799365174497573509074061259431278482191775674690668039283722931498013818730237831194613093756009546717933324865297864176624440081606797437903015196273388935910384801966535712950654476243248118977678385513414589854829538071162847987092725614830096927338565975398066050492192941630169853850947567991734124865279843587843071788014953220154096647900018532334778273630617053747268268717391344538086126742104273504604504338465269152231032429691168418594727542238708223515251325980979691866623770234497550152110639907208619485966417854196293454275104596742743587314857455332256311439170629169566442914380738786610758295062490241979162709683208337072273472410431456768111773960066985305224594764837824546301563279354296991961339010522235391411702796396913241087252265635524471171023063344856133060887577512736224666186481879549328972156890377882536687327180272929466470185116704069603314214597626165670406142586637356189240974862728923104795007904971585587677168902233323715520474126217757354937456837247161837634470640809387156396055974849253467738383668728964266866434047279359193796856322253733988363649554652800534274643778985584344067209240092816976253468534141751352700069882313291103728756602971751311413723192841176212992092786218331455889010554358010121350992699589944119349566814401300896447203163412102819523430961221456202272872163379537363458116144918179373119855706642717086230333193006075405481277955255257620493299091521683816475523058233162217995367455469114147327156742234261240931466569613794244642958752690859783280307511929183018637913522231423484327409590722266410508021226998921481861342673570110458214959927649506712473568364121054408766812010508811307812924626645482196710066242973799698958916696682993807154826824294168926961527428878067605083126208475046171771328488067016260103176882558968785471584232639631840532989544471354943223004053733789017478928693332482774828968516164291785868768132742326338876162826340744259069881603156334470727300550065012106806856348533785121967089392787712265268643613822227174856986815230282240073791158767405328721716859366591755708841492365072408523091334862287775439216487581674872769943985248442501303145164873650032381011394118342151134958335303099539049953629694323127289622460790370486747379607663318121762274789980835002905266463334098522636896714527177317413444928262191269776979837168911622698090660736773257563111394431035543926648561684446955937313515731978156518473050348131825981745193386486296845563862198108613889772933542927086828803709764004619134074975326846419453915946230745693109712025808821654734358943212877925643810171038045425896431660791528017569672015570281616706606723058944401044342915238093333218754046902662558869380563563801987241827547083636188627731037747755054129111672075984427676125575429970175786669557822223436516152204322402601051365916655628121623324116014017461537490460722610342553781052792519969647417826001259320834277367901724114464971358594920710826225758608443894643973911032939135065838843253878190542507231128643004623318539832787497147979348803102992024994210716311001095852682513622303942214419774131574408047347087601923563483746611518895467325685377372428443407885850891126415934058956457231389931895984161614259827009537229292258900055450641912324341150731255111219862107585821672000691906127339227282669390798218546225742787976069911655253832549791069736289657117192581456755865293541864653596787671084878861505917874982961871006676678438819621925599515302880281287194569890379596929095650702706715932679952651021553683845858059567168340470874497768003603527500178390035905846228670428593732136300103742498400589322959814667115640153266170397125335686787835129333422019961289133153484449738798345405393920484264586420727174769985493224382613259226128484624396485586252913492227524633159148810595298520944290998368584390401118169607427787702872302418197791753366647308937425728164028135260718935403946482533593681511724657550045356024318991005709067655685363106499353720417992433287192670573745255072063572789265600489413092779110815444246085437066530823624855669650443357746367959761960262537544655549812108754166445121675199767779111912885853090767925853320367450567130858442611013954286591358941132716034305013448016713124954462596574916186051245254231672547130087698128237682764488694244237785217035244456707851738222863894005872519061150077758605723448336946575388260415800896647016622203579074269920597452980580492459432905589917499253698534330910770897228533261549471695437067150447445178840426714828679605674087066869100835716088172195211197815013593844918336980610831649591990602226417280849531222258511654899762548198595290280768951628083467668019534669656851093759032814437869628015312856529365588475154881735288405290240249557774848216595228313387075034555559019844109936158321544106568802262923149123731431992017332823287304447679253432625912395817849369253784508844458505985653232719803753701184337623179090588394932316023449493776768252052322155072668276785254327902779456821588665357661997187463497282748432365677108909733808965436493748824055190528541472405065301721653178686924881918487343165219165556397492511320359131350068775827281973708683904633525446431980876882579134164069388045799807089184227428284988366411899930036678429730799965993195875633866935281225932958042501513797228352178625536580639697094948619691090008072420179156599598353806117616082104417013561397383036507506982936238914999384297719446706487003570972190749699368750714225065376827918543586248255244832435705352658904024874052337134351748358582326716949460754080287733928664336543773481032981481710102952217559160983761133859842216396541423582780268370176549995483389835864559479497576774514425308879365391812636582293582450758139956228443275855937357165248446307812072156209115609473077819384078115621148294318700798972153577323261353013132017879495559367624470347494778142991764436330072352667706210577598506779535482360249180950026172046429873972519165477690298304670788576310470688876187426771747435962410086711542202472193709317349752002362302534461830890846298391082738553689464892527030938407472290234361606871954957463039016415814160793246851370796691362786925148453143317871402872630409318088393384012749106750810273235751095287874149740549635218437778974706640952215906614396229509100645241500750573899179437113521754304670591326142648568746729547868536536643564563448581575594596088168998455710488976954156959907095851271523308573388434617037547334029713154752581789531221369281006543422618444228591974427378207167706730901016864932479033462833063211232829551206842831360684928195563009557334751607239416897274109271090748766640849359734856972733521956715208731238342097669008364673575384740331139589846003733901180533015082138215567038618312239553632953863278398129018617163872010395410598298618821692774261071127644219761175098944359738742797082269297956166360691919640006960718678586167838526481929348600719810124979776707379548454717884856136590224013498408022327379031836284098913018969883364643141999433773916032100031854082708305046281922353057151742035915036179101700160654486212774661972553406197023549713257143933901339465626943540965977397229324886672625055013535296186667628438992278039849699003488971029369601390975557009223677620679356166438835685687086210934002636398865533045860093506255196026981346787523397749260554645200520789375694186051544696041794270949110194714845016479065036357878760354804944229849153368652199075936803185259521547804503576333667093110170548648948482470533806472937160846875388502848969239409940337066147035629327486031918017835907922693444315649510041667179802199256476383051975975495767850636117820204039783966123835862510873467973205366092494701074934031186916802794320203784454256393561279743717858012699452544296031226431246309184036567421632249774319406128111622295348413236551662557212832052859872681188194059231020125687163728680058057017420595343202873504308828766165167596682058079928973891462899812015062053583695015286802080607084302257984770030974061952771579767177851895851224875473845918892048504411367012609427472776819309900048366607047245142837376472391874146035929043155687716615760972740943662575361659636401257067616167833603886806365899715372471269447129308370597225929426068552306841841885260348828877816112642331645650578989588036256014012264919379798046543013291450304674823030999541840826647308543481435252150692705264495132245731398414483064310079784507220096671083334172935277084868234066930639095780083435384680258894361455063914684956280008208973637360815082144113297602581676382748986171874031898654957610573589735513043084652851719862687751384790140009507598603360737437490561953793872467440358772272940039878486816815476337979218525559472721638897231238461838849959543933609495595757138616447849115875305895763269886268113514395005802840064562532475579232851827956374183863770238108498340860411265986249678518900570831675486933174137330756867672311441872888755952444120545315506982356121286454213741747155046278619515575565862350590519506889383304754639395909114446653152849420720956310884640340480395571009615305061415528263847663822704750227341043793824522953016520023202290682295855413874061937347550313001759406769913756700348206598798758432686825828800800436249018879221522389097590336020808355783164884690840198861830164346421208003640842902817152886842170946232126006383476530203393516195541010326763728532901551087125152439136432858337347019889891662420372689244863141605336436978337402369660601370590044126647992466876655112586060992515623123274223822938021875457144911307758789604634120368585496233285513958507571199522003378728330522836552259770160976453533343688687866568536602638311569225510475253950481773492740465172754593786048364208329153461106263906480328324772731187853284165359072647367587471466736037690412248958441029435947723482792553684950256234741235108904203332314356773173358850328352648711386616766287363302758164032874667871960882824041240078430980207906487694233207840660732058453379896728991053799166756760844129587581353608453148454765327980673599243745245117777947462034798189719289636381419651593982264251333210723960344586964172119219730427365049146505585946227358599905101590010755431118240871939796262980248014581386077238274850446529143779481601112228048761710673557179515150066625220929348080039875368406111107283285273928116039460668421202170505558344964524273180310904328664240169997789258614390239784792087857723843282788508514196772092222094842032331391761637490374299964375626102251686568522555156892113080932140888177193209136181541476048999671347308165498185099331808532820653744476284302977609089696023982242879942474377511525940680166889207782095855992916825135080844438668551842428806737015214736651437699482517025739776774136096615351868229751068378155108806853887650618915565820516213069452983255071110741863222042837244777059975820670798611195731997802830422949019727762537628689846264012765746362950725496352840851246067979870633638266240602759352821346180435992409220618092892584561160386601921898876778020719780252034115871180194799717427065802862536686710167162582078736198585540306827132347338988035784974154004935771782935947816588527351542012594529508395004758246371564676286989226614565044700968844548467958989162743115910127879977633236940099729450762948666279362035413695651130543057226405348451318735399369661139216616577467219387260191498635109596999663610468004898080192829091234529532466691386913360442860963209165360552714397519417437631824807047350845261964017870848550377339757864231073405946093080867078924467162768991269417016895425797513778637527470315852817471029416818291074520251409000384452928372536200140060601719372833312294358668520325671551499233244872479317453200370129600054943663119720573256185159124442462918045594383178256955444822620354024829649638107250507546121116996362601411736568781938870365905627425072056689310948761041762613536036537378167298458890160156219233250096687803834499160533952368123267789098482473581244582147144133315683946252907346263141794033376711944987645967508631313067868954651986541870803918232471534726052902707667153221620664447301560616327227135862253697402921136542643926938434322585113467510782812782574207471668157459252414666186243687581153741780242434634373809783390336064074902406831710706140634708180324844934557300909198753353639231323791537873273267862365309059116193009196432709000376230266084332278415269061372248804593260367247126941231813869841733642243353748373367662972316405470070974601042726548899917219903892160384078437497937607806382517525516798436005609097382261508053441840510567831481782437396838599037471683297063496287352462446536165358408876506627042043222866848305737413669415587349880424112703914030103084947108195106918234879584439990855178914565462114537275772490064595745470875180154708091164608278357180583297234214314840205856461938439377223618257241835319605333753310161171355176188101023463483313076706143404136818768943908433815948318726740527905371099473623519683010687054809451952592041633824110251173619074133470494344314492582810787419905876412363256686625965361459318759601948893733542431518938368319430342186325295072443791929940481839057921040900680223909551380229583460777876832698355177016668530830316409963130353772654180671246788764495227929796560131524598269668238973070949404059699350360348154892121084199607048042072660793403459540646816247705524289528564839427124560115794182246780855818557969502411927726530061936798814929621241353144119832434148215572207501002962392557447191319334485524523080432209443370320646201606217723646589562828366959793228868799286704753547108350345878383282272980601114446479646310946083782125646949704434579323459686690381328892635753258455942480036188125739088426872735328635208667119740697573347228619472618224496519577676835891615448942717999981892346315134060362585123421538153165125344028710019491562994397312061094611020061812473487028966447958197839099225592132344568661940843925067583734449390581901414596637772888245319196949005983095045775181893797839262296036159405444190191274478902345606972848894025796211710250161287508574422430172267102455446079478806017067681564273141016776118978816310733403155577770400713894503281720748511720623008490633229935506817768747798008445639215207231942858638971291166740069201698686089219098974572404702580516427608961132933789091096604605321584200774933998784412293730996002274168538683603210205652391442940568427091761417687764287552380954627206951357366810793376534657999885029573101173627156225681069224398624296551945958135007067335763694600190665209761198829980296177052583034898580997725106439264500925784360715877683518764127579496582626886983317615190838490277122658157853302932930876437277535618245055498188054892641172422777121396177790362342678739926821088328148507051938847491431252044831109150496171529773402945661608683863928952641401676387662198984115196855798684686786475205556474592547434001212767318373815180130668916459826898265974204049217387941245585594784848157041082891582897417036331143066383592123285146922033515084966617014993699227044720689992190499953339181493811589709557576068246423265937605770183439092060213740169515716255786422798300180810384440292171268678572483402910315753720203819686506517787395317220431717961459628275530011590209629938354687870526830054701361193060322235845117346096584291942242449209262882086047886247545431409307889169585869974458585953342361305061982657880878235112127732117038602501826538201730140452954069410843157461792649321709405815778130823518960341877761532358312484665477703099772799357079821036813042127657531709365414514065290830805958813848246796008208964825523669272943018995029300304779866105934827056157976427307977659489449219713435989051883955999452093595395346681396816370828273991899115124450304234875818108159714065003875723174974007623903873866983669778232756682405168941447420801580939134812237782819920150712660032665435964937559851969773302501844741544225645858939751533456101723280147532574376896870815893369281978269907248233147125296899640764195353775135860931931288370690230150637708263558327882168462050140387659376708237085511377332435748313875894219305870597303688251435540995130017219472749833801144919864817914677257675723117595713381131231302183520219741623795761735984704258844339874702921533510326026289690107937940615280487755578551417429007664938248068599631108831825239587960825254293774125358217629867161078225438569486582552099219847360124514231798455996516957387901321221795835101110828190227873621128065006250811493580509988224330362186819902089321077109862915151833681588956727027571247870359395176472026165151726106551417713398697442712170967509496675422671156216752559977738861462462746754537947419070111385650235798931920608937764078463035869551729747901767907001362922551593085699088598610322558174389883262514419188086492517964963083886708756030898459970491412895639920256420848842652955759113551723741440053283992603958108083293850905025303668303198115929490582332772459916152458614424958029071621815562191987082113361411452338364978917977532752620356714977790690340476810076031765934762153942107471478445678746053579214980292462125034045492811381764399375685051791758396456024079878803779994349178524271534930217784717250219697919781059348277437211925837114799039400318676682478459695299627126251073786792188983012525897063908543582866279423692517368238486020915701562535057504746125432400698982289163866045024354269736511172556744683953374011259017695216500700629839749641971276724109951357895192243333647945481852573348121430203383152399928416723182174636673337689982676246185518050355809148188778991348041174163105625505255338603021820765057792747436007786373632075885026838754445479114905603677316055932742954138329255811442147046946661103322224857751289461903867321122292510120838842150380906966868461909932528136727925990437733488614164663162919047372493450219246219399780473770696816145187714202758030593540876804727698485267789349491817423151379785825432563683732996457840500998301341717862289970272557093446699993862825952335455889481026842012388627615965895014474016927271077451106561416421310735472459870116472436657047292159139993687477821516845268103844478791305035951746519872188540526221115073280386515290296014847764607551901453043944925166240870454196322759239927743767931821800608630456226018254685418408749922260698553457051966770589295582125423605408138018723700444238387163655947152239563177334230783692790234014941495805117892973489524518455482133993165780983511137150072618324628334896039826781651091610163759618465261694057779604483259812655357569458129733231769830435782222618852889885503567292509243816465770089850187838259965799435826842477437487502392130679641088437722987306655517879683113658770774765149686783839177103608647415066580235599644536564770982256946132597945478626085528271303942667672833874032588635836765782851241323015749221911681589297257358936454960235480658671463473045979976421961314290762795931900884969953581626057469258644227283291094257110134214919303495621800977700375823106755335017089292244561446766918885361602495434488107331065026421908403713218667510869961145026607577418713781306868027707620000909775742766542773145862922189111003314012292974030768686325719016722918021436223727472430305512217346392607247781070296557835750240882724421182346511673410837365205625626751417093881422480137056430573878292666663246931007859620797919132102296810908281831273907173578217627344141594947633682904923002657694421302018001707901629918921478034545474718464849223818294316726497823880116950319840166497432848302721179643368069104895218236430093578249087273377976875128555292068028913291740662287436742342511593156579810397446525698376348856020607134030638082822006326756883399981615201842300814190129972036127521319401485905309112250308890414429410486775022302407921351847259549688132786999717428388160303222578207568770913112461711008921783379223823704710132090557224551090485607184731509012557753544204869786375270368908233218350297506197255214586469986268724336502739218087593067450753554209100069395682747578919752097250186526311359447139554949988329765109368164774969701169397809146125172598864278093053798963167066266811305183353559762019758097741030919490549998295660809759416120228404120603910942819825070366843076083383471000837623099603180938827441028358974823166709986475713020734807278563804409004843453397199986894680218098297243520558187693748586273806797142842522388010803344412185162966868558971786165166458595610376140955704563405243059554546990382820812468253571516881116468711544431778434168238258989840165995006742349916713877158513982259278796972991902106007972041364949471692827554310064909405714125128924632841081747902921561762173601111474927332588183736165729050503428956331856326944462724367783060137496115503687059059960156410850405665768350416066526996287202951416143315432034506651036571548304898998304630907233273522780198064294441539606467503882683641200205137870220318007614072689656243613197975368959844459473444828955872862955219142210854838975388379124389808550676016969008542162943207404278485419291403210857796794939608029427611123138951398718867433471600570797297913434143606071119920116644219760248191478500491766310894364455480857676269333951541680782894488593653094232735276598341504747881635687341109128555635984355624246816927191546990571905128798206994348039751401538333710527530465382020403886856299494681792307018897974822694880634141459439075216498423306753191722333116050595231641082104645343015841466325878837227099617322729112883087242770553887685957915669103047777892830438900116552945392719403037351180423628853471180577406739020270141132279528516949593058937860492528023313143609986442762773825603907181028252397976442011516434152158104623603067485133700414077779903897315220275917545011043673533819551445324313633025528023884162150013778755113361860003708899088625302318607562922308366327223720311818689735587122426525516547608787951499691279344515771802588418486042542754024969862449643466276038099026552215769311872250500691275223109279264337345851791561738802900395082285681995894979768622426373619210849353798640017760087050467340580469756596608038934370346169976308833150814203947787970829222126329496731128747185173799691029462176488176771183745892218364886257032903175731453916875175433228795574007937514889221725162355312547261861129472452277211481797870762657001535145716479869252011100557868532750638720573498306555523684039019028680211088774078797327591428986365731122296654594143495213590561826644416419766944284892547614613417161261098850212990876196469131663407782234693625397738630695360656682902362491486969236510472714244185636485292191349613892266769034605182002443453577826562556069691870555079424152548343340950218796970420673699636365632598046713030839517318762875647963571310025943097625830609439435263621489026716173749689737398935075358370057386400609530829613951231497278783719818588756101245467410919315684139142421424712589906773995161726416876675051257181410329253246564014580255119045791759167915635634933487954458813814072425714444594900906669382307791224736535152119383843684959086109407309641315589738300595575102467343033793365841100728737969171896718809229286834235422923658321637508767927206363847322526426613347212955535174690430572227776701930887729623164047432350400909096142135067086554071892180901616233075766089929907080009328170252183484242026486814612709541380397694687409922526524060426018210423148093041876179846121800600055174010269425327049085075813640130146498120468535482911139862755052569742098799306737651170757128134732127123797386840809872270249228243675003422613132766788999822493661043549949057614509080115728954281400593474501956137242628550714868541563323867357563891573917758849031081193659803862763625046134767001275488566020173535450717141725867091869081506061651586970543973677614981451580887192379795461683517403264721374459623805187291034685265505518385427406812281609757418220691528340349159932203561471332201273778483110108157921739359129177383683006238979119650821868295339575026435547346634895008030690544892066747578290907812089147686059927605984091522277031109138730561605726456245341174960328828574448527234188820131577745017779823568851216507872809875320537186994921760704528131425700343511995429030595460996772655283785540264469406931839821261028778829939801452935592297699146728244811766454253945800613850254195761909459368923576724504464574775783632627761540575911959778905718298464494087295038331669240848818656145086963600164816401631704401224450348719651804628291230898038875012839805182227618013413320243309694712134229192517667650495590388015106052695818041029126480853712470443293879580057694384713317419669750419405393168084785800488138532126632704153480608336590473035623952087988918246017732246683866225754704273735663490019946794548397999664100302660450417041709912660004411402716842453397215412361841325699073106665813749668492039619636441382531211732788855086568806082725625248184362247940775533779023208531954733089588956120441361807491389658706105685203180224887236290963614233507929449849478826749670976351074941900321218972627045138439263426335287393771977543896072965944893192806980986288140461681005938955332855318455167119151308287487180744604622308816220950244050599195765869897598694216477982911725892507533494492476562337505208903748423967903258442218589991126529434177817795142176229889356857267063305400817994501549007016707452117541035229937129014239905867896661964493562819043404543293954505106997201329453344608768078558177980436962837468996734848316960566225586809126150862945598737117255308641487009808633115967015601173180083175899359324286181653681438847898713725450336025011440973000130232778490916045476093904412652168715253192887837270423994846781950823800559625741344669095448784480245240885043895434531016074520735998878175002362175011913238643166950692420449682599745753793801654677866751133623737136379620835726755485509663313854861832126382617143879025932237354358845218516750307940141444180497898702334174974776283083012191657590794098363967515458971959672296352236916499948588885066290107025622407283891798533761319323709714200310835271144638525149396424651151449920610761238775729424516476200380005807431810953819936221395666761902612403248803609788174665794502694563652458976023174530723591933465593098925073062680683136969211573046310711920571746527768602975149609952504147938830074837336774655310471011288601365571954634180198277379614018168825054293145564628586939928384508050853657314018349000729291974841330376439734716390614751803179903138876171792660744708365611458992757699198131522914813203929783274297363716194629671760894980761771359221993557268339348238789995920283038791435364144617419597151753944991167913594865304876524246593508711331838798459384335538162361465255174160309343973724436702364139698448525268261724709843967509758276855540587217946803282698445136341811710744726770591180186650763440118181466231262953396390530006135431663264159953445545392125934359593135268407773911919536950523556565891579218800789985842903806457337957838299248665879250816948176641384962131169964360097469837438651924456283371977249508717004887093486811413180545148676433080976257247479696642327145058843197305168252831174855771872073171580409498084492203561938664142245402567175689875349496537072695168631926979808058181557879928278218610666740137276107642748750897481785292807494776002893727905507378100090189833190201856328962043716420204521308325606255809466246070515517196988321113318651052514869990673240253374897177945301880168167033283254722162883230065990861113700510260259915629142450592451948476347041953459483058539217912773229275595359207747954962793895659067521273960333877292533152329384368265565704679384556382441938519956841619015284135568400397818237372617108684326195033456691637124700088201813348777073564946201820288704267950538818619628004088710288779951777087364618719428482714008854771185603052535517650975639012198133078110201329667754552769210719828618872331432966242062749102098571441006295743761977107344511548047811050191103789508293756333793922681661219703044239132224206098033577815301958326896493127308620847949528196786864923610367060575541254240404304931897684608734973156451549170074897806831541141090053705317043381322120848044564389663961117026489770250103376481192049260956185428530236537955724517153988048505213521854699922090576797317405653070756397572216808093083614003595381606138678417321465767536633354119163236738975151028905439992246062579944264880694448255231875637187813941644999415682987785078418709802237631112120220593872227942212777406976147389178856171186890665623563212901192312597953411029856346861920228046626862643825416857059311530449172300509622473248573465370186779697845043344381003962452801478588582949332798987631265802117094767929126534589393343963080196680711377068791523671283744344255410122449465978481982303568813998730812377293735796454184602035427762216586524089289499699755478910258377830118870297684653198102853083452290738421263246103115498522645321161888531760376161249681143145084229910740670832000770437439681245294206834607626233795027477011773382527760771661252006573031309104680574269471771370637194707522705560980008367077041234988028847516286117558491329469267627590742705444194475734112562002582667443842129380932641078937605597774060334223947864706857693413725192917252192738957888773644699446180570223310073263886277721469081279030603678729633493633974428336247275295108757525289945627395770756567803345775576501841016824067598681272250491594513783850365079600776150922699262046375679988367868590521918384983572290092536018920315252671292668426229210848725140565994225460196398853543022262078193743643050724686510297236540098111152229936565457777162287646906763536488891699839919480366261529424098427491481061760669075802465292215957943302284552951449658963456940345271052286412090369920489332884191087069305952324911013748705697559647310332341727644205714822097047637322515749816159422717342460462263140608172576577672180545689700377573972530821703639711064105306707381893702964483735932492070053421441487743518313241633234797528703163132416336155707456567435711092284095058420467708309833784037711879708775919452194692212240591429737177881266254642434248231553780585221360597695471953006832314335864342211033705239283894931195149688211131281350598849147125262638287229805327697933317320910612756782773718628009781776339249979420615200332785085997667741052013825628299077416164013489525137707772507034747266622313851887901383104969513128534980086388884009993173519166979393744856571258036981678742823513242014209882689682649708195324073145787296281698694858342262816699082608725877941364537878332745439926678983228684839854233860582573753420869670855613342282341393852232711867504231792210722079191962879804957412919686138350680407416013548469562697350293794930712825275657091533326070951967262962081792611726891897771402918659587149336891763940706207132312446884316934930039239933692923081581188198547354977196978535809082343084765645780779507659732754384012664156082119540956194691459326026938388985500521514860905050280680830285126654716408148876918508687693287854487789764204463610317874862011110742615878732271162341069766688302307890450459793279189785278083243419626416757511320032471161702764754104898210912378471412481634814788911739008235889498862838122690897906257318366792441472669901711088552498356258502266269012326697235336887355160999413274114535452229614420039108692467078902120944275264869651719651404762434442907573161741917043022539638684135705610931045610268139053087465385092263362047420763594941786711127577826251756138561676044770764370026962131509801782788595022745764251593554861883186533481504907768720726446819624901679039449231059807471808497029917020863907114144519583085635089189610762287458299206486505871328151869263679089298186820429721729017071444547947503257577807319486823899373088217191812264018117740971071998219700735653193229025810837415979966175416802245065705964673006707196913896086162692448229853305326948711120677443940475155571863341568432464920798698908540553147013078717411275500359870425926191842224632983601205941272507591457421878263925008601307851382602235437538103997025490992052792599467103512677912314681631725635112715852600823610551032563316387033787177007802537967064010753173556390168643590209603871581062042325093053014111006984464553546070149249368255009489134542424717283513322251848652124645210820510357512915423627090413064121057697420632106190833858543165833008769657249436954985615253944020154124175111813064242441884440442272234861352421271571395643840073095762467088059861338138346209834968393577499677666901783448036228833559760264453471661682472651641072268549146492011213705828142202329567869416914640270386651372177189023921214787666127729840801329622548296393650359019908925072696781208647306475504989269988270142256195845769084888493230944040572971911769699363641936550783096344137866253072947259355315561469121063621054080629692381687298713709744052409458399264016197742911062721771075670404051623736386980358453418794867766797502441267876486083072058662942935245416515531318516772645986465120678424963430806629902223466539392973270652461926267235929479462909150203760951481053530310986434132520740270546025408361611467374214451947716204020852448581866114887889838611578211238362625357279835598104268438315902556353294956241471736442142216981769880863729546933786089385008568852140517943415717030442176453661889723124196430211394581825185775928857525788961196881164342814761323387859430766110453558329709868139781079707254411318764436846128762945396316200931102695644503755549352970304349544194934261308584180360545923272978747768224385149492881191369551502608610939218901062768518257051346945113122779325298971907188298853848982581769730281496983876808948759507153039807970990721808267065739767315014096038922336830319115387717384358430072008582254097590681284480747202880391244321185327016603815887395822732971116580388744009343408374278636511249834209479877290826392410078802364624099578033624095089328015942882109184640043744864889285345456552073725686570255929044918718252301774365122891316397541423046023250489000694990234856028782799967945535951994115421417387960622444649030748021233358187026791189256369121212363126662135669217318253964325656565660972315078844158249336233491573159468478770177223919848337743046142868160236275682908957741206008918736837997482679954715657370037092278000417559377197735191036940306261370686999647314353990119343945038868532278619865965558309247426305546193393223886701190768144764998629674462064134358508911604191622964182449075793079580427598643777149930986590432508526820628009493746678952137377737403424177504044715581531956888740417230543219181813876500279409311664699420492012419366460865900259617353583981820503652893330323601373941730043876217536915343049547168182740371550097538424090260820062562379383791492880403295079141594459559919764580068876728907787625838403144574269038108556526738685170758150911740216158781292188666714202242794614063899346300876009688632842375354326957832818531633131247318621817391559706228978362820139450966229866005798570181058520139905595008644853784888215172595137570650070114673128306210526498880470802284893603721919239259257442333885227053491424493306664452812304684637291034793040526876605788950934443166475076130327817469044569676438416295127885168227406173176168652696542644676064218976392557895313285416076523419172872636708432759423667968640069266563973933380385594239891978235053155940964246462744380569215029114676863224384494609140162937163471303147627204690727074656054076760602533740845101068641261079426208243428363005211890491088222974148929465973413063877865192939261552794052147818537520682757977058157772940046239903169352763425245544770570897096279591401054126488798188387104881101610514742380991643945300652852745656916894504065659920166601648833723837381985350810838472512383957308967538437524690028711301736869295403585723054790078449791848517606957266899648511505099563959198333317857738130784322042341700536365316748200536004651304373108556317980636623588322398150336917668202905629134997128409097963845634526108702855839427621332031027658037794523975883348136583458890084415270355686285197592857279278690318724998799822068860469430303845985138013963042101910629482206913441673677574538387996505839748470681790296652140254466808085242586983960957706640081271315961315501010363739515216253400184970116893111677529314953213121758695765418164012608351319386762509528547890953605144344986310605887770020915863037923088434615483162572982370926296367680515181145628103745272271714577928141881156735230511433740766510163003670143417485225144218527271188272315866495280294269972634874464028147792880506635023742215559412437619003584490752075970818820469106784809448253370554895222654324363576022817099351043654475698647279514546872876892684200492224144065979301241470118294952351120829423049298833458812460467927308653548550926316483222720330932788576516391661365952681282353562305594452310679795056785646530547761513465378375052421419486598997434586322392512440795436468968036380811516308706673296203330268710251072272341666552170752446396523822196116969455944206913581575688609230438786221906882834181067898530726481397435847656711767684545109846076714321505267299656349614900597873561264448359062305615558708690794131130241331327042554984627878242689894410969197035502258943846768170940887501686059445345915559366100280804323861923618371744614303025975624488140902385298261365582509121116491688292648259971920855576012762116346427938812240097238202028710650158499011532425038170557819407531503832062649898196223178982115323875598169877953525671955881055490316205735585450192834563233669635849981426246666331503863926284072683479983258190159614221966802867508652114336666977450690310849456210258365203331807303918896886604861699152015460665419256938499069861804785880021519543022475388368297788720725559980792007602942040835817255001577022431209688093518771928368983178260514936094662193929721418130139750098592804267705859151620128027330287996245427257321815842446686692053788610614335083136110646779812270108235426279284932793857129504150133025376773967366592815480015758466258256247083666472691799543277204633503675304513018696373791060257211208499770855876331268792216404515520275996799062572626941353194198183388587755448002680358686674180710630465634928935607420430221440035613717086711227034826280371953822559531677273263907294513566817532829676334857675229009299404269067514594427213247531873501178629087944365061854563836112105833474493950472085796798060403063356676384416008188408482645108538545360358035306184866853043224593525567845895918921075824739178801037700905621114857033273339629891454380222490559397395858770166297226833679739102231939995833161685892109934984987747269472711423224880139213147294700487103036005667318302931050124666482343509665160449586450545186321684413855118781496715366818201034276149338858062335977623532907627004663995968478437380343946062917098986746284817892040477646135696172293918874706371519676981689067293379094238383011535008091673231910681365626257823197156687924923345986268495349439689931886149697579911606593128611937017586999609032859808934345984885130130513168207363645386202279472491210541274870751338229842797642193646862092983722834530260572247737646095211160125597667010915525991544133636056126865862462607734156368156315760790108675187748805242733742445335626823213699304554806532327850590307813504746380816794312069756487816028445157722866370558892720610295690022062313794367112951842837424360287372252925399513909748893783449610401695852719978631131839274685208913708098638886531675566244962776433106022040004461590265338323295691868163938646011564897292394494703163073697461919991348524763714233339480721350605016888648059620142645455718857593809828466849872567404851130728325226894440858382880668010754980073428511905609655136858371465746907181225025199397060051133982546298851665423219416751208359090639994720712195354877147013962159176366786199757922762271671710865791245722632669752156867087282957041889901854139465446059196497935338904020408407776980690506865589796925257567054963004305444569121602343818381926000388705731298303832101014900907661362752498074110533069559877353046745966169407810316477249694319684822186986036372033162683725112276121741139867968670837512946065683130465052414779912125899172476257229508424610057394390576417863402330054865105583287411286905863808010719665416140608368073511824045692397282624224583043242851832055365246060661457203863866958113968971928763499137803306649775833100144198149182782569887994665137733693936535515775531731310643851670190644349813430704535492138209136981269938643904073354105935546336288134241927466276521836636355031428691988128800955515652015795908765715193165167079873870964926868776851398888847502297579279160367526537572854614725972542531477155208437958246513938769999637117784008935999196258762248149078989421389528715938041418989770039823197820473640187856066357464354324278854566388115663073066756031888140055192836118215155910573345992498555243677378569761098162148115741463494968083045280416431960498095699605187901474197010252424039427690129593776329718961660984961120266893844581767878504894822001838289454616282833269117667935330241878438335278806941840313368071765537811364275405937052645796206142234587430795143263107358887439009676366710972920942807858052668384267256897997619957687554485107321970875522759154837892292974822040671001170838062661193437231265124216266594134568777538873352573213778507916322012097031082289260837421257824384605415170749055292487757137427895125172091828845768668547362237363081713007921049505489174958885260710399320856183219178893848714639973360390432458179277022695219427688198480478771039409018742941336622667690278725363419698543790883194434848096830105168263485025138350223583237284500092787025435429777425595800329013018596836453716912375122344030728684336928826723385330145474659538706199759226881985168720560134685191663809915922247313370463467101325926443809364851954149127946450228108525966371108859666712626133707441635228358600869384238607790779729501481379625765247634853537592664217979857461544531802939915357751350487513377403117326441004449295926723496522560131342478492975205569625945109446771304225890044154347590118426982721329302256507596952752640763648027344648695088138706482024099964513178049967643065410364902687096338947839554633801212114161844045915863200624660271494849147887900702380564818346462686940495393859384243655265420304999783875400700499733726596981961117113341909371798200349864556204975427393509667510836779948340247877767502666714075435899711114635506801263373929285613092731098971000242626409332806397802247977898101481559620425135131917167487308783363754986836280687267883496414494770621757900790469777237307378069831911158538386749934147776871144645319056789824857020059300166010903727119947911463380070086961731621004175438869944778519652955462945318999267053608171884727897259199514715346662539464816513566664099456606132457160353729871550232622052945984034015581908715204741209793699922506280696738073323700246988387528012327714255115096044480905427745581498350103876598714168897104965429117343544135970761054542104182591316727341459750468483117409631047717806166806616099843991506297137132321235970866332541327244849220332267583079858927654314728418762216349055165973907979490457496722309008587494525521324176247202282959386525166162566932392352804950180898434286679665851591260751430293633721125463143362540339949747691316878731759615563906032674663786410067585215540666249017590004149562118548728846986945305986996290640249230835553126681563424497200200222417685436013974887928798354926076740246872426190801927963645115074022635958137137175024136723621355525499133902774453347562697456717101735670683168527265366401045901415267720936451757657684263902661338416785435854039912234113383874635446368309743454469592098265690500432720967979194297959541516120807027567536090759933463129203802300353337042818244733188730902515910217608478287315775634628216641543420587987073685637587701264304680554779847896211403857625394117318497764654220793827327892249283875146652809419611503935199218857698867345209064778016716142895951484243863912281331742385053586074099181380088428465199315161700525786804346193920848481836910741424336706573268107357210014104040510444046059787478013758853058050495783469258881936158438768017926203013294921460180502429542538571671154170549879913974893231323056602315750819972264458553961990160258837988862661337299816112658270678036987588476703874630575560038581128205114354023526177002147469777739903964018367368003534419106825818928073967469654681243959049904047760900986042091255287308838390665292786984491123194022843595569358657638938817314559146669158618239218057290384427251282737923873272883324697522167557871836765598849956414675066567418052787608837884827533806904909599940304620564179806841100918818787788527044285193127075690765336355673551653579054452839255336306197873477072459037163199828261756292571468326869075848728391786603589788381119689771288826704402647764666153026992131194673238152699023287308821803118282720158632391696773465437014124121011480137091308168043676242862678445199084762990605396646431611492530324609298672835932190522190631624188016330328028336492709112353000599847757084048273201096517428069706533221648891584636887353395092745987115548139102074285741991953840451662910379496585516195397842543535602880982438370177788206334559036047814644061955593621370175037384529110065549744453576245613035336029794152807140888753255981563736055756441645573938601472732868213250285197804524704489713152447998916059236710655607708789991100567793072302015793640162973349762266155120247303702479985341827574009081150264140283250063375447870982858304541024380585505008660750465905194639787179869415206205870888471484999486997306715381152261465616146337412783674994639235802341782239284386541538215850893061862555358892347539934124902633937337314941151380129867054957071405844165775613859393985344574322994282862377519840923274064234722284110592296022446296024742919859974427432994089513920950656162494562929841378191088804695453222998374883620814142050643316503147183157089398207243413606946550358777617467586320574256191094916641942496683491480931694083046921575674186537812832149459822574331694136375862146509207035852852490482521558692814051752317780891062211814545075126976543524575398374712953716284860605781229327211557243690960227477024269661687079786558066409019365337410406198511316077821779101636798221120233996631051735850324231530617302621564556774260064042729480411366520013655675414370383496475089188892620965533879311333595509765287756268488784100349923835524045143145297952071088689073835346095903547862903095675678221472363262675239828690873150843756659400131265339981032437306950407051696264873909666899529610114937908946640322703972906136976691110149846374430454822469017063814162811893055767343525687067496027328726964598302585748385992609948843101203894596745393261354774557358624104770750566776051214863041003050579584262747234249568956753383907838791290144619294075565986655065337979587705802959816645377105203221767512408681399772536353987858770114697987033342534243760533432819307379123191986140567585464735362499817109047655701457049974435785455099212809792930619603521683452259451275886455434152132212150942643679821308364960986235213853300758071709045868329457131744837179139618597197953334244815345107608964528357434713928257069937197084873554489520920207315257329019536953397604456781449937287809973452679359712163431583452286764756661207796261354383634787241681636089721267078356091747902355496967647261316922431237608597237117555155511818175318356811246779282703857149868620675837444796600757587474701685139206721166178186647188377219773515052335720866773605426182300832747601458271429592191520249916635629279058914050997655208280531011173358239287917692972997202800112553242925094962801462773811460977471034087293453067002643065091945033744052358770860258094305032404559086083442478558787380543299808560433899796676194469470659709947495161715192428208681228593482476594666573072982703355912110165510505627018671799703054117062164018817555155883165038060996747437625709672272797985926187995206065777652031879472321071415302993667479092786112810433635206883241266781384193288375737496172873019743388709773943575321435888318704680823383738334400618316239692888540236133542890353009381031904605644213532990102408403315455428297062985189055623931885785846189249377388604687683617258928654402733601127903673945640258626650729624681974734150889283694619465841896889943702133126601907857178430881281448655394966692713396615140037791931929611451455859004167921352143642867421289326772810499277505698743780982688550694981120421923285649692811018935113234993978871195754140958369140172414131841166739752445704742411150386546773950317639573464409137028829714064503771019218312313778318315900385725355774813149855548065297005162418732655550692600611091677541799767554980766958771210042601290605634859324358774048074409917678109575704377397160029645082546613860535422850771369614488870687315253882692717584818711057346769872016669950718494272858504585972868203736240246581381674252216462436138720269488882144132142560409896187698371619156826503099451782517691877658188605458456362050482508993062202003410855506464808287653924962012314038746450351723700069690318823421874388433747036675710141566231228606884608553790237149116877214381489210093605825455304094835823686335834485653568236523486479410091756095068417183711537474474627305610300608954366251596318524005874921508951916378929781407492978438622713791911025784632652621169037712094377380215324676543086195069288693381830771537832820833874984750126988755115669387264211331708883869973451693537510664173073581206154509232713527182910850676812776090491279643994665434507536271554379193739311712916357392204026846464427761441347028070525611040544205939625534321613106678972219213622866945688988272791585062113407996091073515948858088806574440028321468164246951584498128165778616962436376400157157140804104323940107862502286645877938035402827314574119533052552150516478974181413779035988501146416706671175164856112692854020467358830572417470904573448035978107779234488166756951568682706934234793049786601623062004980366950034071680939467100428893011904932748989933551584077480278243202897570174916426923529224623808248548848671094317979879241490780510084865374937512436890113871481677052493816646947565828152697977664377386158458627650640797480265696526110845044414878661002511064775882783307076744228613706674843250414497939659462283602280543724756068418129208558092517636829326809294414563802233062399886899612242927154453844111302950878484249777676317366499934193487228403604348628482142928970817780939059567657572931313550507690575390015272810940652804007197964417125918971538918818585379211484632502785002063643984571293999870193306773727095160274343659777024723585056551026620909152708515199398682131802040021965311813429714486134233149191882689130669993921618648503407176951822967843718438840818450819146011547346348713328040862824030377302128898598972470835791501184531150749890264212390083528188308979047903485280273000713850165623212574161845317464495915296768300893958955708058554374337638016510287030008488489349937186676503803924252004607459078618702709590420196469558179075850588479314401766868490226611276485991397399927456869435185708620220835159217004795053890807615770028036747943997133656783419851176946865280561187734910464721078578587515174581548820160731740029660453265633369841248181789193761839745545796719510663021248586456240063967689588572693429084446235509145696687150385689317524387943742326750861156168477882861794552515202739362571515753499421458619537935094142329729869162338887837318883625876529020916414809199601613733625316040615381532177230678460142061969232757323357979958924300490514592758174926984988000496929552969348016361379702358402336542846323434866006674472128487993936316164441553988442861774852172805901842587599040211358489699728514624491271584616117397881924541723339822593672809413735173607751725536082556090858364031253515310557988725104875376694065157310908843813251560123643444086026913896307639111059793079623556470235145559407745471258342293484106058489649243236900635890780633940190767988066021956528294169500296869265764764598522020115482129838281028899385558138553097720657679065979602253291349051557265996425492034304566529025858699622937536586808530389937001585734886228099527892435673358742606582912681577822152714164662249601359579393738511119920091936047144604505991548410684985546922490661837722168787501668833691479360679124506685061638360027957651418122562047015082595834443572494209889681864152204420836841370496367522212378404246335721006414952947203062530412736040487179035558992307990745227902158194067083144820058519774633764732762648019761959957613900023758509649234735546433283054552148543056451488833323008348376023016082412315729602400471833176787471324022672123201162376942468527455786004047461849585776854620906018925510608769756107563367315590219187653883437362138397450174194291592072011032995223635142455978299596385868329330773716236847199973812831725120567872835263588749225100517868365108998405111625937426804465899308049550387315805269624600531132802671307955305078191026747941647923164891978500035092806544481653505377543017360982735325279634816594753341106224659495292326237508508358582261175288665512759182993218039557328280122123846269316957268454064764019385287719435526210477154719445066517605887078668624726556977129997223617763348048091068877426451311492814296177366872239712180862166447678630842569633905031796170802751099906812349507479506842649491377985722112889284383609196214137188713773270140851523338638069936921730491931718882805505452408186026817191606077944350588309920274855439987560346783789170151407687075665218028835136426635951523707550419293875206187559769002677981426079802949983999270667658781996398491260419826240983000684396212052383851825660058127762227710287460770530115154522548714481234147437118884858768220434496835720537234789300743647425070835492812395841675624868852335383151083827624053869834925134907699590697399650469874515299333475973272709704008091293031010195110413602562734758773057046613025148609305396629430250309459307493047019419430830957817701914300561195483146008319892732541911373537886832398207250780784700725673516300650291405616414655527169835270922063449829246194287511130441638921031313811426555096807427338066907536818124805742088040307092862520373996574183763431184026935358648510856583259040851963113696848812575381135785462470728378168861314906320725131468512109028457083084763576905377162013897890481064088783222358214062648792350972574499586990489038794961860541421925857927202948157088188454899224411594500886565156322629452638117141139155142641484660406211735353942510450372027255134958701623712794602056690045719203212838548061525609225659539388617359480803168003192974776845729405499010541552353970194139746162314820261652777383732096110642242218144694826073244295591656991473093175645399801286090000064100828463463926805715071461554952170672430728921199094185003514847327442687665837859929995952713743405742848721150519675429742826987541049506129737181169936101631674405344815132831332558389251458594106907699250249697701433990418927879276703642033017550701914577618269862747426438316338301881331598780043591670785484981247696272326297259084317086323844791678516382619939789761623322784104362751449904752170567558532852110383424158628975139750134148255147635789514030534765678691923158033244428755621558621571398456849309663550568556380240705997084023545823929088846825803410691006810216869108385475209423524399655467299540459055504524209155499562158313461880723688971996008534162112725683331028456609849273475547681567237897969869947004688867191806529013834085772421380215552450380773554080744470225914646166467730988843070133138706993463954700072053362748396655904492070984033662080804347659316710690064208448489011367234270539553131598714256615628980074397263110414186557917002309394920977732345590594879600896338363750496223485868756982361485695702936007083605616471978942332899958039708063223036361386160368528848184766077951909617508579588069933898462195146349248585739012861466011851753638804894109613884598383025751261541435793923135114515511601595347920716930522323374794731118919781180426947335705635681023438527914697375371425284064429167027278951275640061456041497767827549339130200288605732164623273803098942892934342610348081797283853128588292132033803446916153787315936722516385935024233375233788251686368494495190098803856182341225520851265106205688891187734187903207504567309579925133381789861704301674500446692212918492651852590468385084948199896495996323498578949031074306691824845628143634863430341203662381708452744193134163184004101862625118774745223336797782480630827971123173359713327343133104137984091657099166015686244003291139070938443003740280817412789043307061457517241597134164520709707454842034061628634252215040303310657553539102966649119029763003993260453869170806801269590813882745935679993342735623266465196481407715276288633673128092775556463991500704824027586639305926201716534282854885941616255864545596870198281682686337335829953886866428033398968654296172083505512532479281102856189767801427402536387987169535833089308023236770383579360346774498544812255786850349278115324455209474977391522594250172245801666316246013160462335152882514714688093241692678823822980595758831455160516539302486924145552377542775185899415198948129902152086892356567142098698146726800659058005895824191521418536002536309371037761069858494690048267943214381002641449910662061627014170614408850134390709359551583835860536717213075735381681677031194768613093815957396854092403793365142964016226675557010413031636036917871930582064741692292279103713796573287821820670496383146556843803351563656168640741008979466765222204612514839165193242193234693815481367850814169722610420623165988125176410292786813973602227947244197488862298727576225445781756716770676192179509175635808492351186581804887536959872861249959532950948159987187002158549309658343238069953945288070098596774353881054135488370819224585840252229175229555447755777848959085493132872587599227208054658999549621852824978685397941164441819828500385679322066538611744940974995038620928552428539070749061811770005086669014498631645614754101208105794854810678551120025630422458274923684003657259787712192412219749078280455943859061082298173249920642721569252636588106397037682111442538447537255022459849406532858903808780620837842934101683236505700674133371467633754879627836786431694287626565731786863208035457917827213836942487748767322630709389062756794054971373804901781541124992042892524155413517358018805498311837574847567431219170484184115383758846306722066618771857576016862717680479201368561650476816763709313733127780034398867519452325302477072422729721282832215136046479898999435326637086898915265084895059518231397738022890391429506157576395742161293260732673016265626192746765875420961525842769576052843788430572550437095727294470102992591981366748918698775301198793384008611087154165003223564272544179649361010282805506530677320686643641744771939796854017002073136337272640783087919608358863654482946942113432368446540620696279752217680806681230719114438844287151361536663685297133977028822930042769611400770179626562999266085040856773823318190618138377027273509609984975826166035781300929150613184063256784325019900241832230189162008633204597065183390589561708056458522783273502807345653232747796386366216196525481429229085776593482504864245942085402659593881746451806579887312004871119742011641652802673730601756651943650091928252139533677799183083324648805741199298301417644649438004052842172113366792917096310454103491262054923511686345198960637919064290480953231485781935221140504834066105917927821172518419125072605137777286091003135004385235621157618428316303395856800767107154960305092570281590247430306514540648890580127108253061233901535525058085482307613349636787143816124293265320455944104622604751304725528364281832219138458524602118216740535004971086683806415905071018487183160295171324047338852481499331152405561270674421899321000629601355420627265602281163387045716883221994731713635565151668264655037424750075250863679665496347009298471808444139334923309875475994464133533616808681251069197287997631322629569989387222472589242397532404815045034638423658238116180335906494679094068039160240034256730036546338728281493744975371120702486975167855404391040854199715662193515546293851058449815956807611078081535221185447981411619152926705767264084019510618822693166095848979629700942490200113229173595411264128749618857973329716646435581770526725180589432479223020373817260710129310126413896989663206649223159038149956954399760223809110463191051195824407278344549039172429830981238657746129833761865125154540536663497272985127074882495964039321580984387325511065822083835115871604558638082204774210785550882682749976650175289485756517054650914264972665811285082537680423078615274593145780497304662348468196235604760664376174999452392324628758558506912847074592896197234916007118309569640104358446844267926208523451300741299390864259465324175768886038669631841723377164454052988013996945318917161956143393564626904803636071153253350252207934313700082329026499780233857738642910908243511678843804082007041727602864932428072176485151714214210113244946290952202437342755605332662081091071250409735960246891187339340142943548175380552219295215387930240456244941681904055638810857457774124526009129447894090535721784393933387041616220815534243852040201042951832985348924612393189969182545182641596030325369217947842256625173253101408606899929859800155002587044963068706678337511109598656190678054785631890709408617593585582636419924094402665637174218171025208645279289258765162001100943240919002990544730515516815438710877777028153363251003152003336887930456547797131384419638095091230740074238577288633295359412153220891398862623463012233094501541286207140969848176750459609610204492612026430141209522640989457671174277830816059259671516541836988560488475580310374995148593213999783855327830864845838836891196995302975527082328215449818894622549380607388336566208078822698472119758063269096819778939193912732679586959866957696461329233947752268976610824823734036704013187497304666572605742391106650907385416783521618303190889041388756648472080068626608783117384306003828988514820008153062543711821526647347422895793686031766078920663877430396410618291957231678025014230300424279435024607552984918344857018653554029983001381636258748233594535335409420784562409797782643359180293384311091385108574492096365758720599642366237640114864513392980844527692511283559945630288678459008618224512856587348230396942747035560456920782709602948714053726718983992607213678696344332780975252261848290599563741833216203394416059703401623268704916195859338029703818974624280416143824194648103320324449980410855867623996278653590753816388905021590088379667817750498671407553857622173829222121466768587741230028785524669255510708274972688115332655116340305105627528093964705329791866437884346536249632321607729500522809930902864165923316549106552587837515790717461418270501625489838365023754119612859165264691003373929862867799100403850618343425186031866008047747153298016931907281276531992202162087065630915420356907061150138855167857911951869803266860034748620548740088536237259414185795245701575551709658898047182691371522135785467896404641930466857813494671629401506747410261295657769929788801768172059310336017561173967259340500915778009346255638435187279051923754203191592865431216753827204338391181535296614744485850534076833331022925990142799296690000499463884724708742445701753408548513971350011973986067629993874117964861672981880584913562171105955112978835205914674710907103218862059127334026987857504207271100953438435369359342291613069048880475020169446730764233911362751647684978513388738584431156328279211066266734677615233872554604981216201044545363162190143163447185372567648238637764704195862428353468193863014005876970702049590575613268647180025334402104059229199346181706266194863845693469197529210031982079101836253886858257649929155990548761957320305914626715981508329739220237555241044975877140777041075053734200462035222877613610171967677045165063668880891490395077753817807351060474873163777370347538610198714115328006139348467700690037457235503609642820869476717555232582022104858819500679849809175531886677081896436041177924944672265692530749916181470305533885188158201620960606370378145352143543261706653551881797483986475993102075540845983661028059455584393480850989175237930907017143942655660938901269875112347172800269870722075444810667583421992583976264498255414698294308464432931144428639185484695858767000648014998277829434207438296897133418758420631095548315670074392020984569769726794602407695963008916359193602137805271619513595300921068785171643970834831557074532391797401888192759044443192976611583689960778430346914305215388282616731268325844960223865322444406654662310815523124775702637133303230017749122986523167860909399213234119990040775299087515088773842597815649985518794039282999747253012665987044918677437715154177623143419107503546813189849027785617368534954764361284178775818720632706765540862704188584192219353646988094818767058904464484937400967772325762000421887759023743555321639719600881682179821373449519131197120642072670754259389172254462576752937424886962503508231051093402174564396531584770335514360785929065689723126394584571522832618416088714369040390178360667919884789709607618156708073891177995683479986013325032635155332873836393044991667254291289564506551764458349963202820994594570572885182369843874933010293967517348145300155474195595219187508625775649498822593684693334789374046532624380971138416875287329175279634472727624015651628328184965063339144872946629168654480982931671605336255911228646503477216696341207389287854437201276698142039279267488354159401750176121628403664015710859442954039392235548039069489816313905653711496341931495620444456365560717938963315005456373949838435484592869347907365548025685087370462286994707588639135187699789673496216849128739288304981345642834097536460686682035546842231005722114989996958671049130931761787645041458943119191279306534450455882539717728993145745668414234337217102784789718133139848653282784368847893894063044304798871698157783490327032293820644036537362419962249788341492637073253050218919655959019418573405740408703271820107129325663289551506709654068055118819119662962155068850769506032227732522193722254099901930209811288091037156375969513894406754427876143754111833378189633572454348775707086068569984247386793192671447880067247848719788833654160973305570004723570534002563658119755395835003585116217290060885477831628597777391618764311951196746415720355464552076639088373768240093421062184636114075043925079163394970552090127723670324900366920957842670103704398629624539518855953358819238106268165768744677977633442998752632723437798963719910176864523777484065424023238659705985655679962806635461614595845617071709359032221787470061835783676023798122955957445799800809388524203412285206792859761400412038088953345678911928439986894326812755038133584033604255131650329265165924134418037720689170468690716660900463904416477380047746673378193586453251428298336984108517850812559457961826002527954418929090718451431194695086169242705697723343433243562319954163559373777221566441723556908820899293041022294999911907224304350166331423487211229496457582213961402343878291255125729806704470464061356788427952854561279826000772720542292665319290850410887572733769637366657875923958768800026882081471438043337242965996611783208734210699652682744018524711185934384639280304477012250957147083646702925133824894239961964741854595083872393977113992228559443046675523480256086262477724312038947704933429049853018722131750894952891310629192177006451969451330771808123272499294698345258179796861874299477216685901339276124157456695397406208410807698015165678950036416434187661418201602295266184771982635584789444770656897844832700494959617040416453363744536705444050707758679912206339725463451236205846181137100725629467278383573721413990354373341429803996277614267412513608626604282199785860079013712474746459870305208350215303224850125695803504603815507170887134362562768020343617372840918337313274688012433811428620143044597879658831571795954337930807718895283494194371258177014581833942913307297830809647553142134673641339799642004491626847362473598663952616109530466260806469102234993306199621697504089661722273387742557535430437377409194246210738391869412912313080373971513123354386277018971101753626142563695695516188937052954766475191630901984066523426135673893800767589910441468772848729397874098301979699340504120942033587914019294836494705975319709467542093828846289885363691817804941060805809268992120605108308065215179058481997337849704938166282594506038727447523547196393730815506379447983488325903567195735886858209728444675671539474983724169149857709560906258604175239153077149809164329560129806309341734687169219583049436152843620342367386727527685003574339336946427039101474013543491538520587055032398538052209001473769778452582349724001642047450305740458125742350543101027012342363831052081286834061773110054704042332432359916901894721263922568271014268888286947605929190315958052494074133432547887568311357581866001193689694302574206641709096314672028151554415330587234921511934376083384909790951086491948340620215777937594071756676519817524356078839992398307124080431616674676224769855355999665962948762127651208088685760663251922524222176965316559575269050738287549925247163482813799035410868796707770295380476401444092544258544544075148945375272527633322604414214004501859079076117607609302368256616447147007460549488745706492513358832770547681892673004589003337875579829659520998904902906820336126564121879048288705282313169327362329617581367317754556308578547869392229796665865769621917655226430190961022456481590844849358022639351578481315934597009038693771188849386356902273575210772969603502477816056207215325703484669924753433580061020220465612601763896756197377316086262430649129164067420132590801067348523232222596448213155894457068215562418477980652016380855507891820169764716609747841977820674994547721402719547356722363842876216865004039682893100993575878052988227331484406895649940030642064862406298691143964954990954188649852284056143943093808184644068560262958270287941176970711448126989685641551274414277490117152910341489959993315989768367655455583309176111286592339676901490088209176766166518806329377900413997122479575569418385143542279458854569249694419213247786044306954530713090947989269457567806497256921822096474197741077545251909919053310692788050247826463638140290067820460236497921396157161818858404387993270590612466238045271296236827147059071607486363962669812743783601822169248486816591228507303028940786321260825162710595076756093025854511408384041004761032303892325043480587539871729291945936915778662565395726418089512670977007589731816316683199493241217461066283219270595537871849307271965389756393788055644350672966845672079768835087638436620044801896288253904893793711222554702923597513648714599630541986674139663443010003793429135169814420100796706267849485816061272936276773277089580064938426893462429771164994237196503156060604063735179158311103869514429208831090477132888299275902640828187838078286053291422767818427967084080769864012682294001001298850944754244323564946876964601009883735024101823822505783057447335995350144776529799910238203648441723256721940842382904353232801890095827406369461859512213131489243938332238180889854823547006031642713660003103479811017872220212086524220593475937461407980488087513003172859088691079340568899007956619508632453546420158787923039945665723489177602801872833477115607037484070887048214043292277569962304925320268169815330119377213053975864376041966209845090314809960502796972514338849722367069314117434433474598292473576826301290462397036348644295996939211979648476620138076341620958708169694195760652236801388570747016835443905520938073611932676985531425326265248091128714424223704722765080858755312381892264423847347851647780858577433007853348063889674840203754791353135972556840857487919208266223914950279497807253279770525065420547295102424881571655868406897488341364517256512758809784344816724200113644523028789985763202319135008185338543938479326481693914671197196054430296524309148962351882674285679127910895387189757710262660253525021225890296623537836819088294101987148247732875625035002625740796867589881783808515378321791249550120287478913821033772761908284841020748553513282041580107810229787818378272227282919325694634985671425937609939827561996922937640946510389690926412347505957955959576608330066340798926641084951073046866882978027185746849814851500317707004546366426154773394304616557463827607572981101773925452909899639992505889645147573008100963217750124995219983404466608229544262233620159775173569548890039357034993222215638421745066602717996898015943499502664777714308963553859549050547901239321041950318662318540687652134838704630095009242104375003406832129727299101666774457280800748441551465883582266467211535877288880012324235202168699612036126399366592047514209366988762430827679610555788058107733457981339503927681981429128791028970428230155364432684486329838057136443315597832469908876615512873540405967307505185782266076613206799416158456847358194342395765670631815916786970242312992962683178164241553065568143383320021050750375541191695681850391327100166218302220744667560451239418556469415639826481821825926418996240395006567581346938853515832836169848725889768335742434555861499580798147140484081678095527720787702133753941929987389658203216228099089328900944523520518741460592653695299246496774635815428721216527691523435816054335311807724990393808389382836221024799022874561695424347176345755094767600632671101792475580435526905895572799879758534398249138047717812850239495646350188792953895352337103797905657327100401354227685595901201666102638141531489013409532643369543931713311430430310955243132391721893456140204487253750887223538839553904929517624938232483793830859750777861040642456536674744520215812462952984760215157034692362982696102739328980357759259279759171855062455831756775592022529312877659001093213090963296997279174364049787849056440606659228433092067037496748806518465947789395205780732092485712044774164611314431681825704632731243095718305463798446549069865355578756012863711364626068407506836609913045900873788213120638698322057180059637845110320987949768916580118294745414771459713065382691490658682822322883824711885929570821146428992041547515529285765074455226215634799620897077215950260727073778412704541205253763900528285542898440100190005997432371846874569783249513393258320510600892825590610196451291856123840137613103589451042908970739175736757213980331676437295526677728117731872244653110899435385147544445476835643383668520083670519790014046030327846743044741847445802111781741392550308154149540455026580153256041606725042415550936246945097600805859938370315295477447056669014195228518568023242997924857664823339976447581905832497366666996698703852985152428258251080085153840426148849041395427410933394133498672637845651696957223623044533859561770753077983353946399836208545017676066311795638742052329787125164185261013762902902611345128360549644758109098193013111134999179826643567198397315646506511250478486628069784837172435232675806643140832460910832723475072105730333365493541492534502821255297684614619287225567170566534734635797922387387538659811103678187917354625178735896388527033174172708440608952575772232646723284633906468848993722055207807419373256429138341498601824319032053800862399543171599133186938101712074521557784996589247403112227577624701918824293601181982952966932325936131565329948151056057672823108536190446999448044059221494547526338318630141900591361972356968317705046800353078385786425593500814254623101769582106729001996886153768607718485367075680571709805071095461496459588260585146157866317268789072088402679993636502503446138526286094847749354629916622871943465475531624290215769410623421442476719496455360753523624711256083042898082534853571914002368870811567952215041564372726602332405984173669332165916070301856981706355691347572343611499842437793337819185683432170560113000410097158506690614289569093184610965381143942394489356608713930619471512616785409976235086522635938956294198752514233059677414667461905771852899558305738714045199698040486181339158911029058648203830331409700166204594200113302750358933689834091928212730966550642515457860747226259098112494482518485205342624299539700654693140352918578491176592412413551926382555611016029588293851781838905812332404010855393357276114763692207781181391714945061272623830211872929698504231148962807168913135653599349880254234891510455890276424209142902015730446801417995633757100653588530634192765339324484162730570786845213615642553443672097833819564087253241844189825620924076391842123636408343184821049992101592275562402029410230835888627772184595619703245218647110314289733911002872235033260504001420873557757450927727502871818692195704296820657070825495529687623223029524944143188120910002244608454146600118623811672373006733627965890196658712868780078067682191481247256119971492688539513029263998726169473474758743050508959300098102073320628498985710750832431967935105081611410564133264680991041920213316885325467850154379268306847609222532143872369077483975039979678755464874606933060291184019294684961369331555412382423423109220719715822378187373574491618580954595475556798655765129669595736217449978850722728590416732522711288429546816421297024511322599014393464243093723962442739548876242920189148489548159597034643737455465634534618277565660692270224582212768118737212590690803009543756358581267879761793941552852320381880730563753570561220541638676937964524319309232742089634287400980014636001449506998022229914524124319957716577178475565631125427962625987722378151154474400728833112357315967418803576686595247770764375871071732656493713228009627793831723770627150358725126974484618383129338632029901081819991141652430575903181128225550369491604692499138512847647172318627054157334338689792053238535866971639502201728201633015568770951081574627312856368933969307704752524598778334278917766490363467519650751834963542836811383547751303018549258053811624260129209212761809160293148005276551717632259618705879378579948802784356150634328516354382307306046486700166607013930433000149624223060289045543440462087080796556786798639781343006533424226931546660399014771788876096048664014315556789485576002826027999165839857720117089704372526087891059131599998423179316247441867399789600308182082272322008311485230524804031140844544721941137230592514275044834166335935893872463212202018335720415997576319229954629420139204678092043017356729563218216536911595250083499176558516035424504156336213911905935584299660931275576675441991742922702254623027580861888911968613220543602408038679808244456997730556831379641608609671234538345885551432766993833540347728820053365224696167164291987491451605653472828192266190031357714015278921150084785110076786945494635174406662620800458851652821213032832707656649196287605966262135721954781175973717660702379194591717281924612609266620539085528971661424136619999213239911280267948479738034025589419034094501841818899220231308894195935547495890362119610467906386215319561551984111680387195543739241348046616760713209726494792582741039473174752203736932757585804422871478824145922582793696007358186463177417286240792324307360369807382155458827100237498524550203908862950124552706869114997256472216702729074171236493451163423728768044593339428619457265135199694124186063002432237515357850848180120561163498328752215714750524002884539923587341211665771771040251240732554977469674545312348686389209697849555969334821973654311918710029722817154951931043795979707548652247374551825424276618667499916567534417021653010502315656329969499831764167002630775272550762719300933726834427848187629073162618178711668952881143826101309118761069137061020775164899786593440742937644744909584486533725201472644454129832107540889597617968391878606521213043051987936770052723146137243939757504909845645690239207057348687096994136181714255102584724130057275106539404712616714326779683286880670089959181776627380648147448700197975002901680130121631306203756670669340594415377953166020763999533471556552012578038764669784092714226973985884195094096141069670365376975035037966350415439802949294186284440917195475398487361353409861540608886018379366831737473764080587253904411188579669097046467401492198816818496143219376706472050934037007572321114067503929564387524863151698349906356263715588431499926406056809734238845978390934486002258240892065037636893866156211268977175023835898834501955538800813767130990116186569448366423814886817569514655533527797818924888258729350309778835313861749960145127358005446941813087051580926531007101473246941586476832297270330350623158247840089770323667018092245469375625267448490116850146139764935120519956448515189607732820580990869432841219021960445812416424978719583663902371280122192849249769500748374820978476588970755380088952906723298864951296488240020841768065494067453670348918486782769356796343774830467616209687516932865531781936050317712268407048416724902231407000308717022148121592190963370406215902661053201650540996040918990259770948231737633088307026337964561323997807231391047891009201121480108849463244948942953865506534192985068539921037867148055823095414061277385913542186309455435343606769917589378379982547377122049811773170173921293825442014644341928605899276624754198594965572594191062202801284859598381193252984525165495355280467820976814019622892241103143282741203200222628959888166123973511839569017629737065479028757279252890425489496163888137931477603189926441887357769473128689070881664372087353791967115006463028683067590253786025953955729028038852901823105457204420214755661780490153834590888963369627179176041683893480581843776763529745891329753829588678829934908604869163127691054860702522322299555812471349972268481955502182050257944210907044749601911461009166132072801616185881912408490627862989900466840441907926906798736991975247614490503012860173021186466655837983220493623338533426634414660096472118184444855973166405481645240347955045878393505676841010150629741915047362982754415574722085224428752149530283962019299044032421888869931705499988190222553908556174647733613902548873778383566631426652842016241438932276501277657346138651039999654824513705080319438147471139113134877476647434706569923840647441761783296902677456067404805634965895069395441571908668421741095358466659162354426560977847768541166868772468434673073006843039399083409182582546822552029960697689196134675936298571963215678197023251609206966221349973221530886008053824428236175480053892656600591891294245783371846515416054359172250160776721461328344979704841692397707137217606152388993614421326028421513675516800929978856071028033420194130121733475795048731088210822526148520333379144347531363926811180853353343001350482975237326006841049354627453659433595437259475549425345878238219683008099046695333376723789652649812959465196747585437082188323899719311713391045232586631789269002282587334022949635826194705812471325699775933047765822159964249354852819059438444967196850491426937610741787941135990819726467207355504648400584077143485410561262991896549691334738128553165967188510908926777581958085962883517614227640144049160264183593391841246188866531472445275860660237833698560746597144583198636941224136358135678273497710384070913403908515303770217764452182277582430285767744295037924892063158340981071577091447656955826575502194033900140942168823887268797191878673964444226336904870456308957962438755360090014947208671571784776626029895643141745225956288304564334759578359190165879459154022203127088158863091907709915436094915704407028126887840239256519387756742500654912903840061175880780798495186176871376041878643682100537269829923875945301468944562431196108835024890047315118851006369585342847278620433963900095101757288003977002020706497154633745881675639658809083156441433910193008398033334902785042271434091165859973283980735624477474668721379689372774739952646114705036479519440425247449325389794031835106923840164650744638805622175907568885807790743037603002115941202014845376026250894315260579983814407425927968182953231795702726583689007897846012891871363019404668273100930784117290795507322246232303423144514309694044245931938084691143521314169120233275525403288819468078083874372416834740798355594369896732182940308143634188653526276733278843066342426280361205905368859387373384893662160478119588454724620707425892908517260441421557073391644273939195495053952132610873229802672479518053696743297296238573533439592731139983794156443775550317714637163561700592955097801105098925712813446293367455280600008609271523063039109009151752927729304984581126203576495208938713067951850903859752476298996277704666865394448874385329353604633948320892320061199109162563189471560462956328310757795423483309644858088666715360744147343748311790773593481963422812563377343142155168536201490494585234464250038058506522120347474885106553833829846868414001801814549445798136415541031073531715352372484895168263923968178009503305015350134289494129782267609667383509239155220248647351959918649640466820022903877495888249994175376789092096235540309783042209225268533552742963780322314786562885643454939420557172682744868507175356307190443273826443977328795597971744397602430294990787782757735409505899457816378867177822312984995049155914572940140795355187016605420085637097813071752435974977819715688237174487493652575693031934944455045443401967079759350697097705610944936382591837631598828105923527486039816167048175859905528839299390964829736267715356263535407765702123532434743387870393185802319877365406223344278513381840777081799067030954611777003730066775871510383377428323358641057009030660771572740506320990295774387981529906541238869507841264292349373037932965350640822705987321265128574735928166281435742055210034141997588651254485471166853854871590569244697331193533920523060094678051318877959514955593668729032894917058713980460794517034022694831187521905945746828701912675751649187270086605972104245228777955258772234952743963869385691070518467102866724490275612704272510868239144666033048519795143280980093976956697994009541264405896577276143143983622356361496291102773915946199353951810013524609605424988586622729646566947339931531048442865285232430007070791277607263426120605225251835979034097024754251428526977715495164408488378943740441103432720131020079120664393746145308222674730393025582954489460969973132977595704496171479843561870284451217879217098637229429707274461244791842459083605407669158239948733762173615985713269462029634436789668680883610850225728740244501205096045033206375624284621300082833871343000677962002859185584833998832306532240337608208123791645064336476071412198208475642761450938370312646222144642133324391063617049890999504862935272045723326121356626577657436706377496762984605234617938790729418410785384890299099646981725739861025823717596174400754569345064505716438379212989894881864736634706519018625359148645415379459356449432066112139931779823328297325532712132662974785331706585874511118516649232046938831299540691346430278237788128026190085288719172705850450363986476001973262352898796358978249589307773321431390099780270833565109632902166633512383593391786542276812509762517444171350859638897845482631488042449136823534012342224475991165117201277522785940572818374844456214976124674847855135941444442340292763715402607363162811311560862040954274925989779839281278146883856662302909444790976772065827391653535181113736439735522191295705846671215328920926835514578195062029361907166894443167996944072563395753066342137756150352220642542345771107150056183404275827328879471996671808104170357265305913993309007527076553275296765013697033489626230533503782409351760699271569917829646560891278041188775831451618659319940701714456447349946158554090832087528879558739907576482950383319660875146276375759007319169284972561443731586158385832337114092567095135435779125982733395734003808572757011052360554847819963947783136896669603933985395839164116738667528682221613053589187772583269502779332607103570766771041482933687056906844659067201123778752747936325077540161535385073702032279965948720709943029945174390323473405766707721168004725289788236577747813498619080025943117350558687881033455481485820380787148260301223428592406912527853384283330716607345467303274930312958705404050407159120037831500988229612145041221699372543400750509160279677430506519672419368725678352839424120880908150189851362188787885712938980531781671358337991857066337748207732024586955258267363101399809274424726481907720923044165702946142597785617205745449746258789393635524741159289060501821750865689270118428595473533358591295398090282857399913789519649921415845704729457676203355373123470133910168518395639299012899652522484960521777387743438304145888747905461967790576530852859496303439390106954339846336021863790262167701208407321051565952321458238849353412292015213119491373509482589318308766393439015194253412315272616869920074254152465775448860013350771989834078437758720260824490486845425124089259634533066041129648705984059041686201130405145142087980805861391471405634409887618335272679827343560271371331394914151967252006103587291929759610730319078142589443593425326337622242500669951002682200644009541624830629347218193346030552383635267928012878220447287600048977942269464099903584495763328746772535757983627525495848169585196921523677472647505168267609316677154927359623087440302121158075517310943439081470086844922892266983259706906649354632371615270984133162051702739178554994329775072553185234839441058798981425646928290847249721359062604112786285084345922065151743689350006943884084722780478470537383065379990982864658793971039130583391780830880133817340069272640806068513141925145987680055668414418991130740490354991048896705258872733172227565162577953941159161625384331972723734357918168014589004032299108987982106182539975754757360513855971007658381224843692213924962727226926648211338267698937195641358275397558386663552770237753253125642066443046909687612161053443125343015977569525650467608148242687951436302265884671996186592623278492705695689515541624964088950975328187351309920160461960934500630732519650237371053792361643161961936723349482638842472408949086539562116734476509432240580294796603942719884518514703925970812681803046956657093907978798532843808338860645219299231317442816180738511662161630163039882202321664714971979807511660904581000486124802699660815603506061870320095861145975323507372217953528693248389507242043094215712976300334143505360688426023754284364864716995243813281531971474203322624082666431347234959798003299695582736722776514681266570544052479384219883221464820581250133267939454237702501834284793966002946048026263536249237032122395770703386522513345523820670273005114327241116295835394053548662211370410668769643648274301595967697613475288608785903847670395451409563680140112552106426900237942436953793542405579265899547397218356437903182782874924474848502113393418685774422191441379907828211719952505746881909722496679198875789293116383157929114649970222665310894052745582475710408632650784121175319140054875917930087278557811969236974565965564703904749061264321421413709548019827874598637374244421067767131795911957775920618576474907034928558154595758144910472050242121117454693135843987140131205290017519231532771471357780326751705321578045827731871221806950924451816556516270904395470875471310449793600495314506475254646730696638574589667180744071370278964602539025410202289004056660240650012981883078803371933054348382357161557511644633935683799763457499877792729234668923115769841002393134332851516992951101768939434653614115746421424373672063202625005455112178726432412700763548599870339377139104062902542235797190789657063165354492581543482584245410041778020502249260588318672065950529874760687209006901334473339053113323032993576064043664848327158404275582462182539201409853059698970614747720822645293676750084532203963422541508659417225825251526243652569763413289612480986507873282694173781565878792365575096281789480701564909291114174631577866899229306276378653003950637098391821953390456356400939600994437392213402636220574596066965449789722414101627650615181574176659009059696025326927286966718128508573406530589295745589816996542836887321095952809919069970691052725989368287697425414958374482757839658397848150150974702051462275159991020612568551017945152550938399246331542926577344249233547282399602791676562736872981782137129400317370087066665178322868908748589025972158001718071491722533142471051211850127098197488027106050052455189817611189562387639479090451024334576914248983409098752346724205650608483857576442030714416497054403443840555073412628911973896809143545504161417987865830608551075800362675606243915044939320329958292495251346575103653636566959322034317482920217558831229054691335553074728545200101116949304413288779890239611814149190663980571248597406285233892320212029026376565034007791996645830182874685342271042859399848641175956565011497522898111504889102413303255156634682919658789023063879868901821197043671381084893871798774951067886607084547544221553426217069776652266612167483519512496133984291468369613859559792553395642024230981924756205726722382639720378059311313871341332013930979308553727139450619348021972326918348225096387488442350844946655196023724760899737726334479014504345132074347752132856684289097224553207005859402364128400657358324527375072427736362111001790239323283021393166951666980137336290870499276330104385303368548627248880146163446425425942771617711173041107706617214988196137885659529083222206035868709854790232752599695681079726176094265787425775878037756013311067948352110780608809073153107839050821056783244602029041741401790903779689408141738926694369308083255260478208578855569088302021003256441559772389206668762332383541267714733626648853340323172523174735149656950031029887583964025189691604475791969948452431923537238920628846966977446471649293296863257761982430164984989653220579581214552045450097818691976694995312614209106525744515020815374602636285825459175960937141345157802306449420860091887545403927897894050415214190447498698591779040711558186052516185398613261287599089069286705410457146411302947828753875867561101453071421049971888259001635700777521221254321558555495612656849755299433953039994248534874949279514029991093338329129432578585201941333886451462216970538747118766923684480153050430869382588196148885512553151328915213911920294239260001697558517098145210386762298350364284668437947268934333417758883740174906411580999903187921765859193305678445100565657148600028362017410061716467202870025580269969045042295297236787614873594751105083945847912321696049338828425814924027738796624450220803220280603491680807010936933386471752106670404597711712414505405601472264410195186143914576764339790622341268920518188520127691485523010393235340342710346242453898663204180992125134115729228600772255291037803590544630489471039181783054804710860500178700037253225807329998253463114256632265198704375252430853655879785290059514906608819623782856495183882356328817061237626067327117906455137855069508709646247350190779563876711863818725626159653052547200278782630703119188258371436818762191958683720861599945415732143824092655308058914772579737691671306175231913795153979045562293738570121784422702889714760730849193252569870477453601421807385016357399180091120094374502413366136895913211283535650399722442576375296358336500600592964511407020250668309515898415780578971952412179828817993440492605834030942540492685127374224435118246816431877364378317569631340052455046856478107182322806444920419725952895207824145256808284786009355985076046170766946890971290474577844445646449301767338182597886387110679883213953765157160567061219775982743597535724092162460640148758644535827290240530125619916934403223942752149499151894036238507845745017230144276745241635318175968519443644896080674105500407037359875333402898718181227410474669306338647854946536305731361798570110677595803008918235224608458727602490974235571435116271519877659674674174433719056720619017321401894667318534597282825267480376738860390654334337661420479293403380160105766842854953416628303895217043655270267623183883479751212832032796742857809915461062800234043271655207842284345671714806515715091608418690352209739886038184373870490651336977807990444784467133800580442140098561599587842855453715085236031534022951715316159027268672582189470892016422417622428354507104964279208076928638509075849523648319449610928736517208881359911196633102965658686663616498936319640915460106052592741319396205571182647613155084650339454212482623822460825205452382331520061668428972175813924327915433491833616049980862756566181667914010946627763155572859919951739314312597581612369276350256255134905998653726518010293040596767806147209405003748086401761905260449201702401481256927532579736418971070192307811553234479176674908683071127861982169293492807760539423915665327483409497918742288847480917766336512175136442135060329131591556807745601752705978123320620334605440300979593221535835419403155134918074910577886460513960089784948079205927548179452877332522494063118247366443175441843944516954365456235922632143964968939098433796544861257767477012546636650717219403746563652747145889551821650256008347274754200586041402824762991078911344855835129592947176756418049464219765001823009070025490332708569235663067479248427941769429549117063639115673865323329334953205001011715364706116458062910731481731423352102932838621447279043658757632910474370919476071751354336085381973287127635897009364192712579078941726028320376464158073524684627555988426642422778730168350850921133484963053165184354107631801682696662060280682473272360426428462257943682197242039746365650203935890514540265353112725105142170310679784734061116148278260291168250905932055812133049132126223080976094106499949492658481158825258983347981437426047062014082600238889387608010364382242845375880799203113674666659682700216985593969192289905047261098345236867115515053734969221469112855565378553590214960721286572027011392096806192255100851407886131112201090363641756297288161508637400688662994957617530517087693671055382537696245658570026332302284628900168211400697050366117402386797540582927772745439026466765854456817875920012774476830263386651349541348236284623205026959678722429180587541714316468957381332552931699168488634351218475728906628222447445441058768351902708570993185472350489594162986175416124281613140428836278905584981429238156317020684781911689395187800461056438602818078807156988140281990191674725351789974041887036213556345483593991761849496319940041349888781968741136130967313994799490235874030982704028465770308242770299791728214659556732983621583714284500707396936625443621532122225032948749473728707403484631431640254145998286680499194264213657134578111626532304206124335188696833880028620761397367866358915365103132757117292494834219763418995867271904612385949633741993776856681279598847092074007530475717185374446070400151465928054871411695863150491805930638787600146736205476286690502077345824137380565086149448902661379437482897875979271735942879507131045207262696280433685831905151466712060567486333208530481348733417397675557833237810739114399109076186429136493388307573297656718869225177234229514529605034334608755664672653634320000874589017833475979147915682247686975256173586615145402910917322102863452821664306273340061413540897992646375016490360776669172116144755902573372448711871239463871534244947528702075236010929111971756699296462414969930446796492325801465621017442773037420995002995703500125664663665866724715811350096143870387405131253027008502086278666320899217926919720105774000650281544182098772408692869467005692680123696818118832358613192680565905302473825944654451519055396194520857177133540079179497485693638402226001073068489217864968167252615458116190206354626424143227412079749529631087843477219365760746523282085735981542356172135689567711990399240745953635149948061295580112254570337657284679877212535514581028312157595883151015457877892657563747638349453443683189962837588708426008745859488347191115347477088098435884094973572173209476503990573075659301326877159969636587188938529693683136357180196598370256321361424269720424988578901567510454322205327809464998019871726407280777790774052892464632241404866127226306172116628657780110374429091501908922856059930460300810574265938723863664879820719994361571817593041945136885495524010596581631254447479735966158826441068386360186615310057143880650041017186959138409128841631821408099349646807395415872792039986794849041058486466316120773375329986292770901752874895234229973998577136800688511121468663728222673105277897735040418538473187456676088331063346474750352696964957438522390616013177571814065316603732650633484178007070216790632286308416637326191583534388204865401525362337864128440650217763318892619564666137236222674524418318727602755906650627963379333005842999629906056329496501226481579638847039843895915318935904928373073119901263877587088381575446415744557894361923736231359643574160586445282633450008847914193000867694371736733508769943825693486002607559558909263784352730468340711608240702503073846933227568304993048703544838088423165459325822235557467324060047957952530164759608472626335603762985994372573538545881568390351124030334459881846528163013473973246977747984015158669324508664898412237996078659757027950851835379589876728784630553464093199407509438438613077018253016219968756759059925700901510946303427161312669974896223066819314054534067581794611329510868996859576457589799674014327978411922083855082634823025243629791780198877588516489808320998516249836570645830454318429777489874718402854509610475859441241422944160309534015059124178708352970799305643176175751736426844788848021829383210568405099770612967433648024523039797579191264910054474733534710390348903544594913341776720944152459451601126926935027826360781314740747691593826896910066205593333586253155743598245203925296640935793541995426483725173172436131386294104544057160594424097186258492603882389984096165598421101386982988670997193127766077189482521125314949058113800095928518245536835114829031745869083347059560848808291185507849213642203999699275947210352928134023574614683472489658216817096526679076961806074759271204003899484435326341156093986109009289318853171365173241279417660163792794717784956328827836562141218920267509578334550809564218605552849982421933486590880688616398568521736830371226225559468032946281584901451745195143917798961789800816913763387564084730424294666531321114995821631148143747426536173324536550417048335731690175945478248113715244199800496604698299386030294564509803124302797548871298647676514484830382404842480474468730751126774794033852558878832234287362181372499136430504126264902978439923892874568867852483000809043243610702813805625877906763373710024071988022267104112967339996223767124997194674529880866504935292342381325410818569689334846022021544499350956711734773510662335922779585236019664911578989254705228539354422398691645441642634740378971583355296473449191255309943782892085408085381947973977172901891610076890259757524587779267147668139264507664825352853618021279194276216870060416428189379149506709832938759039269438861123456135428842127725341520153395342112720585174109764897612698670759054029639706873371569830177847346258792574968591723558341419897524602663333583074970400033096410286309374935382251811204528798832956367443693811231520653425480188323395114378596265479266782108893200456096307971951903563623627378508848304393055411218659403305595025707767671004714429059623740924715220443703652755343239593561490095054231201752030481699915772468185538674675123505865720140480497963093153340843029053796256865843009176165943719183250124791720418066309092536474316956134338938342271619449504012894174502815278815377127456296445979040509984135217631136885319821159880197553728471845501524429951678783432921557166590861287790317650499720143177980258944109920973146248860327910834861127076687849002160760198781115582276598602525437685421815675019816499175894969473269888689936357429575505408528121636961658560586966794439542575489709396395572403196928955998819546567034623019663134490242584931494885660731576855563003882292709901175230850372652733058971677943745786842440555641115351774412934040132937385709311750695762725209740913265172974818091756623441449630997542862605084577424324164037611110400262754446800197968102930845314674450732869787453280536278916788673511537837851772757614801251163980987705948565922066344356034991691975616726606209156316693070520440662849033375515587698389602079002593368308680410359487408080006234284908528570141953523007844622383730115641758534371907458844237819349592424520701896641167272785921440702496120877581855035995147463937400738144850385808489416135217906720966306333772754741566272497696911946959064065869406923424030602300533634424363138953289481467095693385335876944384922139615208903762982539556309071984122738097861727765817672541861476184641053074907315149672880590768229002442129379935607622519279331757844692777981418624672639718007677110548247855972669794149945161554675252430817153548599885727254131522777461280504307597150432270011613917744790044472213527431462654353678874493864554954055933650474372286127804344819378150612645841380010732360162075288680613211357730482430591716420781947713688127193442069270813217663816034427378302346270420236851958594378739504130443112253617746079342503520257921817607802244754960102897471975977251352961271469201972391971338536013668654818104096066159491616145033505269139217071389912479335627049720397041293321200593278459543316190912971797825354925690467649544566394892572813039896576933176404087586524025822514484830838664139362945711248011960019954831263573177330663640062547709919979565795862487409100759001906570247655709274272990406148413015081900314285001815098877479213953834147983317699661457350219496681021154406801478246850508834233873461265701712446546967263164157586834368133779664528009989017939749019570037712888654228001489397587662260192119736021963877868961827369411698547062737889472569038234427631312542833004538764457950752712050351757581570786628278862098585848485649728979748024194010959647777889064666451804107276787006180363216147197604708869584260335448833410528110693839546364664549624665320109390914618858529333862740941930588470194112509494216090597279997384151934390453745108171703709837137383458049577456783104330569836683826435426241596318499655120307017809083791915839638864553153189343334537141141976643598229622782068763242645111027240333507216044609460504035908492877904197048292501390126460022720473787603673745026023894766187939978277174306863590401384276429715568067771220134100602405885260254357961968336313797351007841629492937644169073911155585056778797843365573443658614016169508791761233046724598853555503242310538526590379333808820934445647737256389645793475282217453055052384013558314282447846110140414914559830749201648520475792795014213232505930861404505178874274531236363229301107943839142790359137563165953861755152319419873428500034466409321003129742612727650533837760649805940887348877177343585725311908787562738735118159754160045599035685167478553149024937944624875640749557560953306687688374354645200384076746066117822949512286643117905876466900593174609176064204298035586806675633065305610394591926059111662369986808166592968686476043300894982735349760351288238838935553512934641140811427227047218568852683687566228543796410556924709676157936047466209984744377579085682502999860727995434413793969814224315239897551278819689536003312757901571175721838728182292240783589207797139619541803860478264645687661999491916355412122085341666231670856255863084564768575658637079493746358047701552179759639383944022593205507063295429913842868257231228090627360860935900108494383801122561528631974732961819360568825028054181905368334304230147483930598549684484882776509009381293808386963579952075783310026345054814594911295844403207085382192876390576035087392173102289738468802911183792080966549071297330374087314866502429695081663680402512515592070522847578493570458894548637014730093272110993243653717908629196565011062468205009870517850129768531440549322937248134583777088198331314526167911382750515181711733140228350224757848353381720875169479060186472480246318868744806568302100400895970955170383406160908322190021403884847980960315006125396557122632844255765661313265407847965773456938342836738799036403350819938927878097418994791748794954943571533323675793232381653114601008105622312524493655408117385972965438898911784861620490614616024752103027331975599072085465150148401866546937328579943632109097652320976298561232982453406965723456868924007091557841681133309457182158222697019779353986546274436156510716851117471991762723587052757589462861944238874868861010409867107135404275894121581252986645995086322265639397386122119601675525148048139123330428539836671996649395255693402827145839196352677650826791616591005139206183152627893442485314528998932486484891038999673009415171107091135447818451211196690541861009530084907353571251440788805020307723927729712306734383903012459672775577833040718158775726997077058691646453700671647604981129945822677404787116547676403995066023217439339721106156758853712455976946318378381770087819188032480473426526121735165489257972498577859132209321126888236509364590758274955466230803272181951271087979394238829517632979701138736353609188274241603520251748914681625064720436097002457594063172354785099480444154657145779151076684834036172482225737773522460497321041446006562081962813352785192840506087819874921604252088435403403701197413412334991861951378916908399494495613426507402672391199601748616181199422698430844482097782639765548019470840835098214069776310177970735512993670358629325616260678586916197566873276461966832522174066890801778337055525049667182613674265426753721725436488944700669907575629267758419549304377794704937659474204709338911986983189634372024437547753059855420966940124492344760119342754898677157325103120952402965099524624770456339490990072803726011739606852228815109015104439698992746815740417358097748585981158228456452975553495360854812729621566338670579930757978836234092581416251060982839661265879680575100645723602892325865940846717042239601625467394420870340600764999397867410759206870021677554196406102229762239587530085510140830800577347573302839395164841541318397686967646853949252067177780660334827468079034406637136291350076503264252932044790217137063204975924334063141930848790768580896550917588343690665925677314113459271925548992621013457237725461115288181234121747005032197289641570682948442057767123784649476785475273170570761623762892817481871335650670220046302637555969405093055766211254409623545065375261405308460969794001797642136611869399315185307499866841940731374576849451216564702722853417805540824385645643960278822306357357674624253455750542252701746675102580185278193820437945973094144476198701706978601227057755266896103907891569115784568382787819543212613813846945299885579776170774215115778597178716488792784244803958852782325278590285868260045684112610405117675620305156443899212441617695118947127912131874315729461238687702493908102060812258380514978274670941333638919417835746940091311280176955632759640294600744627827333164810855905765028307645285402740107118516706571420598277505087916289923141458163363148167921828512836261680724951547202560301904479369265962617896421421851393671271642351133100126401393388659385044150340754986775674022058005612818314721636587972903414743383197005556463695874295757712934010677014854143558630363176097174958262696593476768297409746623394624134367023487578542867533987534601286910973094172488126018731706095364141981981005943832545283420268849746222882328847159676980213286482344337007994331546241544900655224581295798557930682506101079800509032829953999950556941413025393623698383795722158030394714721395048394342376272456458283829251252511408429814997827046719653338197369643960678943491207510713316042108528172095329966527171449936551492372879770955298567118931510110876079588310777246634171599146574497876333043951524293334577689047690507723950154439806024047091358193410475215858249055522330378015974833420503446634060083601976630870222477690992031707286791329137707851370841453382696243243035834878907816547300407290153085427590561591477930704336132614545650909878566037600141810022244555117415262212550962537785710491484738897366227475675296769209160540334668983613968546730001769667406256255438348213276295641614985334714595962145873543477210162294091407931897345674782843284190909982332012531820734031696955090920851337533651898273722544336633930146667061393157456964349633162364035926784149068610840790094464203047276163966619876345973790317779332986921434212694761219050965847563948837610849536732304543336835915536734586863271042269109847665797628775076121083547753272357862525409767969157855827762196707754580785102528501838714698337603680727497299367917122259985383838242401319688931728988809634073990654182570348917938235162436389277129133626142987419593953333192544666185723536945345315339304003013745919974731737303132403450727128324819014900104234961440719853695659728036220456458643642375354317105362406124775715614201692731831469904128110997069103863838320212601548928571039481002929893763877719510164280482368119620123168699355435352800618042701352811127895424299753740719877892560054079756444449553172134595316005916464040252540179018705957343653857978313465735893370475825428766276617808805670168237173112204240461370024497513374299118288202718484812786834188646856503326220011022130051990499784721112390974289684921576029650785810494477781038970631919620699440500951584578495687979239470028993978602721390341521108267588287506133534033228492662209983603973535722189155039726776230717560109349743356779723700941707692491202419468288607731356964389475802986417848010534799722562873374338344572610944540559319949344957034564280760746576707373837881860336507385825279244383194226328424104667457755424108364384949125067135675537650325411916449806576245857902010326893071751616739754664430113066748334498331949618068821557419132842065016850694876634456241978605021346464861029288123310134811413417771017731809879275701114291702820637789100186218164775899502312612187833155850219742534421155384963113896990683888248291951163977182445524270700332729330442013260911595747812440770334833397290475413323870100396818311306996836383581932754392598431652273494689586424762666639297055695449653866704214486602215005779199886018061163390606595856803986921432291451654823447840669724465861274923921103340174261853659637198241030808881314591229284239809561933873865514122589135561401462459317006854820013320792745749187014876373709526221108390959864851478581229734995521514402798852068310605799674949000669733504340446181540551165873232994449696359173146904733507386812245392785284223817184964407179257059299552836275499072326344921408732769345402833578881368802705949681501686680723725031707179683356647885697560212183485912252711781152625723839653956700277444543244801253994370350922615314398066396845973768405752727744503128490362284550272326636993073943030564312333661451520474197574474610538264171017152081423130196245531012223900049307922415163999419677894605481353095190506570040600773132635079695481807805496794634662101194140333854730026242561842291094525969124444431739477259319501672470425716775271861644875858045490191731666796912307183187946384854450553094520446131779308455897089817419613376954504360899589634567199800006429505670257623073220809405108559918619981330418723584046627194737966471027455549136920151109392511760109198116662812558173479503590679033763860823601321268627738764817765667098629977345916644684243496784660705746167758968008436306418744733770821023188605963658082338546052932007239102046296834690425642154109153484617633090101005941340548692454097191142970201960809300629486988933665598738064212573471464395481762134442172255292104506306409077239435034429794230562378017192626641259883729291299008967933930631190334740534542700079949333248139919068522916140202213624558697960723901040984267224175339009121235392786506372978335245959928340269700057424914786517160719775791082814033138753727437521736753344281832924084371094805883375204804233973569848805763873422810289183163775964021212197922347658189504591963123806604469121701202933593445516795830224372433127908368697905612607682778211201195751588307716268846180604098472927477841452738217531564017057806851980218170782743583757696069839307482784478266035378127782907001801425569681922100428253523843430876681343411649425086944986151866801102921928562753686809649320889072964568259978161645138034710074560726663321004447685446862696700026542582093143442811342728674465040284309678324173306393545700228178253063851254265041135805965233016114718219913615098248411407716333573296569422832142372583115379154238705019126886438828995793177861253551506934221037782031693933032672920076018174063746412421024944915279252501075078491773609911455583607869543520641780888213523792983890061928140566414641395427173514220109730367778558327180136648276054544713377537426869451390360467378027505950561126526157891612064959327068162526121368921443778463206813664577091791021674716802547888171480949436360356870749663177381169215798690686336173292198304967450355122681606380429101695755467272691366519678729842115199522934206702871454717617280965780412140180988424580019370369081670222185559447698181695963677886401389544187380868497755693672925607817477545650149000189255834848562793640536565607540506981214295691369292528917067387741067320989748660812101241828163713048084229355391399660096910284273421539731643364657192447698344328801958525989044139344321461667416478588222655337864384925189934099186191138652801222495787828724781559544520703004382469094938078395045211337031034539940837538306257698315584183918196923442059733375060433994409158152832401051970650723478193391037386508846251935673236401281993322994587383347506203632539726843351825839162580002323979177091269847593001833446670795711090411534969438315331849642037733552496611654966925147353433286278109981132178401238658973335514547254261498942831258501062910518622746870662098772205070791643102269604345227340277168130558056858610779821823193057840993133547831031091978830294412955821926002512467536240218118486686399473257171437772545018084662775345556271499179740951395931934036166789139080232159355675186164952452910498619392700288812481529302587218529603731493810050413898309968396392065767935742976545129200341989538420897644384781080411553859533939586691953355263902282358557218927532059054998763809998511553525416536087179285128461855094898243257312422780553029153401819239921220869238010272563780524188925763767527914719075060136744583820789175406144851209372638244666731284034227379974734490379918600498821780382856565824640554705999464455163122237455443664722781147322756915555990460749786092198585235709224381504262160405424315248521909919745843029485699046896675364952075101136674691785056197115334006255274735510409541353349308542206841760582129241807782618248958099108346385968466733218955850827513977978313980936624817063820869243736069013344959440334765092694139713433526099985533891774556911252918473431813164699029073744960159759650428685057046170960821445396104967586591865296680691619585184853574184176357336630545242603092798619375047475210457460178597290946167640761168386118770925320119172216696182880028853266486046669124200450474864185135225383889191178884137302872557280609097733453206864006133430320255928004679634445362263421694289535632775028146626118979926925549528352932766256489664613299767072900453205262328244194236366649211325997818401206770740021970279672220925140811853962373326630168567268276127252290087562164404085467312982098525124710799073474225065265055156333529177386956706543074646918499638575142022807566392837748577533863792581795498016835300428369995133122660477590243498330988921886318563107110052694768883620736191914064671595567234089335254337381523276786820356685585625941901006400441499649413317104684702059737662141837351651216604553218285285654756475888049781192638924825670209871368009735862510356247633029945312896404750684596780253373778749944964130383872100512838324381279089947736793510673279284603827475415291593760124887878160750702377475567950591425637818147364130197966994710860397512990123266316288521293845827981050085552494083028223594166879820831761264823116787052470064050344046894537875525208064618327495021270927926752967209627748334640880015856123852424509491195941249508822921010931271328263507192076550690526909596844217483452331009034082944114958316206952337970420603994425096525841365428444814918564766863778236854879408282601206794067947287289146358985736913631073706705398060429638287263737701120991528800788296078345297182492256600913273053013772747412481530409708931018525026363756590795407460160185654765072657369976675279781243338145655323646043437558739751951324359129388638490105952219928438952677874529681881295545361585952631309936877529049992254347635627577938427576951011954525203509546890076345954361866105507483552832884097880962870210321165437101465820703089168454911842347837231614293585620003182382645613835030832042396740743865293018474530172216247296253280746291452583032478472752647603533089455506374305223126400148795275045634879555541151897553332883318934113732362437788626159029274407868922373227623676888526025079678521270176965412508025154837931709699841411040227511683666065239177207663392092143651418099463247261364723031873627985960062611962149188812872853535344179521710005483534228825179376381828348800394472163803696957393584576145217672884830094481832808832734031959752091084997023497026139054002671586516323003226578067211118149351919920870967814258924655175200905612357019320765938419890298248621133397647363113918124129131309894809449053214154366396610331059527154116811656496383208583193029242373086167445558175260492343173943705638444089995777107896771055469618739921648654791190260198553460784226839297649361403034450470361203788295192682918191053921735448680363594167792204659096098454128956586646387344681361665510288107920138008961243365889913186092488458538384407678652689310156068939683119404421876117063393433721430315586196619344667202519477747229467818599800161727657835055425272875676315598967576618130506655313288796787443017096357764649702507871299937936059586387307229278818939556842894447867848211881459723219750390098989099271511596306317113994083870947260302071679171502846400753098025885704459678539760330221212284113972745241430800117180462570833023079154809249589166577223416972449089800986271685337999281537660852269424983556553560297756930836646683236414232828467204321922344149796793065996196027081239661783547887593141401804133647475318827890094696010242837036856112869025217260040716688231032861647166344405063764052453563047025566366687427753918338234792537343932622855481630367971335522491979151109712316745984467099500623527064100567180099628650227863562491648723169424348231719796802982488038742979470136718426352952204228072549102932256164702553890328702253975181692611244599969341872064959005661683075184001372934337096191216599047220406785402517202341264322079174511325554228382869557523427062022344629012538996044857619918242866376036916700685170238260761931504191899244983851565325045253227254129761417633929759544260256506094116207247066926907972665380639007527181635530366307953013849974527430426575726451210402521283530400549169078058707735078947135935429329223303502991808008303659871971138717395486939519011123244583111323611124072253047746532992662440650561201090092193579548068829005745628211161589505813815486142430573211721727594872393383514264306472944941735604728728580901761426594224666615091185938342499074931293401120562940986089255354382517892759408146488250420515905628017842016123098418866951207523750886741820232899141888243344849062439068336243300467687148144828552518812902232272805920482345407233185033354743301642285345175152097602437206289323698595153471017202287143545000353241842421731210321467106859152416564982046082094841974822656265335651843884207740252617575953237367935738497515765794968602227905666879136063059248765766319280317423127734218898558875356721175973949958534596250836224704287771618454482111182002390390920888754919249852607944834267199178932431662067432580633829512629165505780676244283574313993765158267994485880392999719484145097688563980229136361438613266691152381770677582651536842528293460845471444672995652647145433054327328001827479202066913774141747065758532111660899719168841984826183722237714164808262061927153082186321902411137635813979550501391447155780850805629949307463634140602190494389897919696144419644168207121096883276692082907021629052608854187803866480601412477417343040794569436116181675974805610886062838140741528216621773372708301434889164666751385212044918283120293205264404548910407096299577817469380599793963802054835638085629288049492469148740008268227194871428460084871941749728825933086048835362377123040857417356014819903417920103291072083831073942851863528251550493772445472187832047280483889059643140014825981697831537736137736391821551263369302763851849118614768051125045872192686533611579251378593149367065740109535614436227546205446880049290252081077374682234325604460280455555054250163107245964602699642699280683990174030895217141978219887865534545961269673891470078625831493571613665212321447907289838703294095750335284129673902581862237580483688609814024675399302736592364122573953689841467881211235391002702819448706023220265262730516183033192047889864342141711564857232574426858694299014745463473337223571332594249937740037598426723654520088622873172136429382328826138090462047942537453239259130697250169907671559557586798858793244162573636696777189773768518423601610306721853738564893232404226920065152363585202325506024252510708254253083871824198280786810208425796527632916835105377725932106926301948144309446344940963325685377639756689086871662496786463163705304296586574756845182029305110599445387649991982079088980298382952312589938685882873875490558289925654821355597041472507177195313789418331360040315783276375936043262120955699124456680086769098548473279310932381369825346687337463840072769494250180301763533151603832674712687626502501743597071331046776447668187923173588561808888308083680806565305139327298844608559318890995560381832892862664322300733094473338496360618921945445236280874752144852609408072091843504934585341744158920390295650166052126928726897800352407321589271274618770494120166895104966178972551505362169795057104581723744344573519817441456306169567826731186258443593115633306516197461837820026518997707012749283610584594265209978467942611600339173209267875458500552044758921680094616057587484175613158650274990061297869500730239498369483070361732150772159715091649084437495124713347296262771787476511378762488852390945892129038785657048683431592810458542297307974916299709038213426634661426090053458417310218249832368369009795801250659212349440320475267846569473304370335118542480458797816725105458215142189968907091591354380535207757552936145063133753454398877564533106660805573599987819362391137476386474448825090958254371557602726251499872527654976364417559907028157306497687975631719760245329616720852103588372453236775497316046106812855595270161027366369497033023225888463272455734693708522693862662341944981672559482293766289581177281051122778236796936595307616515098313380681225269322461278726270547662756597307231592726756852123521560841882094637815203784269539565312093958426146920983586447935090250137592967495538107929730207291717860310263796995802956256405197483504641123638296934588731902889628833696217242887133302066401538520717534358323991814160264523816244806855915821909607560028185377878781912062335390054055800479925721405968731577571221581586481531095421165321380145270795403373392890239242112379899788227532625926750195809381771336064114580123377649511298529513506424903442248024868290942038096732412813799050972371421563427134264840701356408864989317155259357853749786106367968959352247927679030829743058710608915869697412310581046655351575785584709669428182488181278351649474078994155044421848434179168602452475726457027628874492526850737935883717011750097563424534333091915113772309792821216045727246405111614996584561847409901128785354331271343882116265416849531334647431017587630650991717861568174639359234273695816208019416080156973730194388113259033651143940105372298416268645710520113973711754777406391862514741736248595008506481646269778515636427721168675523952877064674531437138826345603822453946025463119529714175538481959860929948322184532482855641113635068482126370373776874765493548368463743341381394503720858714900417736609026908894324996930687034744182580936783218208800097586219513554263849785842649140327724981320666995405316483843546587118364692567342111239659242467426868731225389544464273395753207220936260029491636771924806130616688658582870233342382790177527081598751272591632922221506779776791675079987482322377503239951502176232793766394564339975734346790550649088755154659765219057769154403173455457289772696136129535937642117345867211584475683494746455050103031089225310473060945014410619899601226392427788615691006665940483434233877025532211094009113957856118162608187859900381060203818507191846977444030692276874899791812287461890321870890685616861159992826775099447209527252360535656787608500685378979693951022198701933584544577562194365480435796341119544204333276668059874872323038975163845007383622578631044513186776569698330267973470023483746041147416493901428120920477302285218151596486558324283253883287649110936506041106657137515311117049416037638815983009432533033458191472084972652340642154064593239181636831222999710479454624106509916933647663082776299381054722271972401501336253749567733410489758363469225167294797852685873039833590039396725048694084988374569895440536857782673488209574060682190112510665539759797903590082212391446659200942749359265389300280052108563973250530204411818469813092030247946156808819505536230488081414756642662731413590154565987611460404291427365217701129502748849535181388601763541591050551732708929332794968252761210747729102525741804982028230699122161896067149568158215518561284829367758231070528608575278530424550878284395912609234339374224618404113774124626810759099707221227950576132187900253014438926237409703987385995352466162654649784920167237154675102607053395017289011910261978320618995271444569032181890258935330673366383367755666047235991443169597800840652137110716636498447512334686950839920207353336145538643956195518782163744355479080697954390421270590479467530958743892884209592409809826706275311584717817392660978866086593880680543041276469515173048558470648403312154363346266608719689083835986295915686925036907274946543763710429291270777479177861458025812134809990127811005622188010159155789573500757344998951434282974164005952359884583540054544058923333853477252126276868047765269438370488814049887971447993018277912220660783044306659342836976008204961996708884771581139837253996777366419197224773510490121120799845110735022752026184099885581619204995734764971156597792160659243926500595933601158102778520615248256050532683533193578899813642181535158414733200431711934302144872537417411626096655745311964372796242540420766075203617591841813314250208077670123742954619998675218612865485226345308700003757540532323623520871797312801497035648091068479332578999847425024584178900611267559014993125925477473053514828150644493784629122376568488104566795615840808488896622165609930943517417068029428907598619596847053757594425103871175245123690649421439317690154177006450948148719475284175366558300762231274150200824738934606963158081830985165648758763419981689091442182898194886538758545792952958404354263250863172025220986652548296708344196669751844536791293022858719033087749232052303558810143481088972538747261394603535030967747271852595461928688913967386574403840448935404531937816398505094125517500410129571274783947914726434043437089984787634711677632839931765668596389624101593875993679687565457620518458194663667275105993005240104952560034103006873328397767553114436337242317422071873071943358630072186307768928833031146927935828318545460554608571390797691548588191356017428418192396925665354630863987462236571956411628636642512293714967304144059231922233551433281591862620196670168495255266756213624895038326758101250475560299467150951863606324080051775350772185297110446370631685339708840447691562825806833688922861382560779894214352307133835023838438096105967978848595653800916820570418575914193882400779012649063656225492481182760392415616714095998115794436038580494350116072719615089666016393441248312062802836494159228046945523466343263602695382693053979546169132165776674686057174154712289552807942678978621099340821498959358857751092718676624877522489848921177460424629155645983750973698848872054990276294131457159339022408059501001300338416706767434001971471279723250632312951844771614544910644083262617954846606586398017872813078738654877802312761321143140695022472147182731085264104996942967660695468434755423139345697069371865652083363478871307534107493606090043273660410767086194756173167575286165957765323961007655459826992374177462406037803072538926410544677915416492944276195136657275574597043045661401708463116564775408156578130564129789401342335129374374161195788198817531929106375688625483211234313835178554608079482750324468327514474686340785868581611250576774434586597628248779819107065978729343194116418964945323207034496841838818766545704683943130161220132567217376060150077464372534256471574828733424548212703026266076735099321640174123470058061762409322152785336651034425489687506305794041474673272962884460099642875124228863238699013191890097585877449728497903598824408786594654076939839569221875383249523932047398677966134882353533211775316389402296497254536019926568676959575062753409582997471124897720281876471115823458488796696205154127257765059271091223867501840943182531968390868679964208264750111429202765777268040346090930492034399208732728627375013780762311183708069995463498758929535830580281486762761672684788957513534961999338671898139830588312957384063844270937097237193246338797578828172957753715451315954893856643459234155698343444390171302470739077031576000435991035423513291803295538065839540063102962222992849696192149541971659743081672064967266434999812432688941573732842713130196437850343694247664225444965030115107167180338428074484413027006452699781400348482759388097120230399229844146439463028711322953889987385033998878041915431471677290791919963598275950455267576244396088400110808386958414209114702672530941849578024529019707249056141450106322198441362981479107330008637605812805930873178324987630623337310546263645407726609663506733924872612605314974502152130238342691649694992929292250120540705416670526896668765904448580481761060681523484400048455837250208376755850908333407831943469547728227684254001424588354835077546820800694268485168178260156320318106797014027934050772522669789739576532894999923750326534767767404649969562632646850153549186346283908167790482274398008345434936367626297815101656047627118816008893706228105130200872286236195793439548030064160751070807345137909434747042458376616550643429878931084721830331787784000205346576233472533856725675635372976726963891439000891082346492367334344158991514459147622215797716422411955661729856256395754069854237568164677022216159012580640730894290840991082514905046929875074450339426681223589638696479402191648466563179784894800840712396760380751023127504572905030744456126229949852634810465671082981749636842422052398094264640845773632229388451118727537813207559556728346178066342990793172819559030351528331630257205708748646339859336975312545625570020494822186602987987055440292863228555422076017814289985855185091641669643208400726672421276216315019531321604368673711277116099208081815371531162360500699160704832627905778996194097833635480471571430415309674701918501847227764178276018196377353494098800327472605738205067505984285609082602343008200844655752409205199817631145940972522393126696194543132207288778485234563354352712544154541775510212480286467114474628301165089452370163543018576282304526317465571372027838105319346585374671388496662072926905731650326587605798888811389898772886802429547651204805589776292662281857914509864371253943714684576004131318063266036789705281766231159839049669401154890858712592310665319056060305222834665775769081877833904832052876798171548342427034821353063482587899384511641966667582545157344681665209245240302963419660313164976673153580605702778384637833125219288250907693429495652010941293429372785390273227536058881849040184126345448099275370224714378652611091793673091865911564159136133362143624670886041363268522288526508650274277950359505716089303635537464798247104170749605233177393200886021971608823143271915186576378277541209658200565255085496925492383163427426404109358346881137292639137714236777142874645967392118217437427570491171370796532995637194498958597721329534081279446534666893978962320788107339764473088385734608553553062030191367467723672176661475983008433373189424822295976066154474229414262345186754737981455904395556542314774379144097867788934895414626914300740923832446532903681125682035313391172861238254887091196772385446729236233275483495138142411977046663853259412396110497162169376067441783848315862625022591898458175765649116879517204279465644427385221780179184883929738916015084524040099359863608692110016945790636824222947419387637067461917988617282744521016610965221552035426157055673409108088025521269158582720736580310945663608291129366020176460994706891781474859095390000458245342591361403052675923199911713327889576382785932828102755972853988240520559048605486972262948940044071065639413987379018493196699997973603862203636795156729689681828122581667040940659390290847950478250786482982726631674741700052965082210371468977252162843771190896772696661323712175618497057807160005376422775276592867366250634060767258515437834746598970648906840448776415457640989165898708620764125802268235638218309168434390500363631911284029758289862046586306444883445709699016667392642541801357531372224570445649700669722372571919239441094131041390836183109241615701561216464057155496742745863170136415431437580166512622020133210819828437490703330990934746975660234300836540262564493276975683664890161435523235343539983963862112798572287707556657838127958951173786643898038490272113692047485262583500954704865988985037976299467468175205431050159127000925290517848150002315436997022615657972129953579087305268942169380054017885234593603220950153426206524687803336657397940199021238297115097181898907759570322402382866227502788055612513753541968188183851648737414297949692520509646766730767743931677771176268567591031330398523570817613868010515112226520237574380564663872689214287883486472797179261137776876277648106587368054950909251436455840997380241219589680046485945971141763593049288119153952019150253630801920283333480677105666487191173182866244721905649059525560968213418618635465098380770080603094333100920341920081301850831328834116941726250417316370533640168286711793238573033918960751385445569399814983769824065758248699292729214745465904033975761317529445422430485300143897155631384847522827088554449472532727874788803408455342269231720378834680698147590759721288750106959863584091669515436809219543768839550936386928776051859731374379850387555571642240450594281977985411020284353676088479703953725124538281239040327278749918138541218721085050555297368424124793609862384933773418666518655184608401859393371821387745917113081264643190563790365528178299358009088459474749079434069137629916883755969078064448720016080652877604065939934210111963268039359026482030108930846527460237385718943663080415812197841074605978687421241965212159953263365674346121492917869079442105761421897761337110621764123186626973720903233983544604308828736271062046219592072064593984739740980280973263492994220149459175509804389699122338894579568589812830196214719260993940703188431446786443628287685095291055877257280599443303545498803071918641519816941991963278865704269103962070279942792423399033478214689902227399566921648641967708697221803161047774758603622641940560297481618078736144743367304967582896032557215947678167471266917832156212143766998050938136231312921791477148085680316142991946705601319313720061942489680827365141847168071290760765518914570171148154596636583620464606752121925361591467245633853783299085044285032832574743985482238640064145031514754467418710077983360257399920229954290249155956170856304259656693327097232325236098815843459504432480362655763512213536041855538056165053575191330309462904015672096648774783975561170805522872033902825630786487515997573493206840959764506343961811499063874799180918941392993129799952746279310090335987101501311793116975769381590482807764415439560964935448364338422292257924296783442861496668926425611527021794394266728909806612392366872352145827502734367242876746725104205401155650471171283922799336116267574422635427105536113721654388499621038376672886934420513500167221572139246844598176224036096156775406634399592902981927289916324949475990520668173701075497017300276155426055110081614356178782770906935130627197253301872937867344550607923287670449873649410794547028609612432880640891800648314867091532247667588630643897688404385838208020007554450334955761435082500759206296412348119915892385229215188907696458108711457079615146550788070384042154859016716062137048289410602978595814647579824757342065417444623453700836804190711703909630788862863539073160290775741765481131665788787916838010207415275755302276845724478810163033474487864510086095626801133600916860398238999514288919351184432281730313571648159743991028509724810661274229887667036138397991923207202330292031547006207665765939162208539966291629244579150993148834465678338838322661004797207496677643099377396081249766467815402719646875507063338519630656816919006693515970785682507923748090083466122697751928390942456692793741894338455378882965272273922900877305470530205568694496509221634263244529068688233325461141925880042417323424931315905740592990161362852696754932345860628172275530929621748216053710571267441389271216064126831948955188667121103310452425072322135309028535463023948436426309055425125383805035190774134276399500732988412722032913229742319119627961721605033180307603799219650459817880167704142463962238101891830034462879476819891144020723715557378545327545070355598192477539187620600858000619582577220854561675618015065832998583544570390529343764877882939847216642088421613840750961331723201471433693938703815251260130277276547601716676442271514526026757309930269660225145948815712316016904844855793275766643404902634322355399828542624863808662782194072460050837905726920489101259428414956640462177147743568018169032033538176679530869135894092586755822003433213805209574363267881956007466995695418939923467950430929404116433043339008988355601041201968995578318729377096654840622610323828123556985525162910413491884527059176540631177328073913016654064350321282737623469094029911350875421402054772027082404133139130908014825593217967260406622439403368279926375223718522517379528328413755282704729187884370395764834895710114164211200260603872053765403396247055893647465714922556256674436499340186134620200904532539415218573856194332029992290879223350213448156986220243167593326615724981504067286897867694329801605641146458045579838645247612537395601115745113464343764847025157878187942510902281313077486677883990393627517704651754958082122742716501782491165721446760961221668632701897235023967463638663208625097342711410474530468164519623748465629208564576616517094682097068657423732679925531706817479194445998042726967240762710186153374600835469823846967153691601930223092070505059945894689176183814382044590725349268851880022234941000439498651866368829640358465846009701787519976988782698342314593813352618336024555791950892432300402595982301444028552165731859545516942244613222141939173951797722555412566694108818747371644572566812704524951069316477335214334523862995015478324203146678477631427744407124428047406237244735680840408509194841385306352557575378150869140352463929853874685584602381866755371899997409835563156267426201898435160064605751591082163011858084257634453836536431618361126876302745600431747436370529834681299112770669292136746827915963392716755074347928945394595587155235023538220783594416033805493561916221392965157675130002903207610448198670524112430403394645680112661807976658004169227267364777717236208739624387817147674314470149019718168015459462111274996866138710117985329421979306332163542692854085572807376819499990650699934356955484239581757120150370546097694208362113842482271794079394031664477382263471124020020535918662220277553422881784497594112400365956023064540141187621846623126577272838715462073091971432768312485128506801422551859801177326580036236641308110632917941497305769149479279447355297362573970459546923725626622038233762616178269470391954382026895862549563440332874932981606088483142546850164693050423373529081575950060191310662976106973635131040467393585914492438696942141354846881360366811658718516403999519048200227492094496339801076637663919048149224227662118117596733401368312604542303855688561130798915876291404403394369262960809069207781407306381148055602098680960932706489779643809611934657645427279347204751168194664752745494895886580628673913300116829325669177252307852116340639957479557291604961327240689637443260240897575135089663777236014619346628444497129719559850353347520007748949378290310557876656994834151438326165642937657417020348007241772620929102964482708420024012584983383438851351777917742247526569355317958470225181099624812503469091144862737153661838246160707918849753622099246129838250932461391223809483756335071181963770774910861205853000962640858946711665710813836110620291612110763633994810806301449286427552663525951369518869845383332618059533457682827002504542563943361551663334299260029672441829894519117402337685726217750474807073897214232719927365040642892079430855808020647469120479904662675940581110839799796576773874427695988276670867551391916891072218162361249880411248637899949239511604431666895694421005286418755686971200465304249497428536433086348534650043344675928348024866046407384079770717921785852454840592867793019523875853305176202228048935405000802976360759698836095252753014503742088272245611587028958606150379216801581735260650578018413142890541948987451548881167754394416428739014221363358604680865149260709757800061495865663800177906903445473960339994932849432702925939928794210299376048956449500772326909885474097088515462620534567095297520145357075708631546447779351111111406319045985720980103706337943046378502339063514506248945117295205487893770080389156264361810781855517520483520435314688406897157933059089906735579529495777661767042667635894742219114916097871870848851729205046113111955541710000532827180993046168461684452735255844446551949336760592681635485084966506556669322881928462904862691905689724659453523355914163054295583667019593330321196894870448984121730841295955606470069918097313865990358505430598252908045706191614103586237504722675954312270436713363021270387211022830739097462076429957678664513080608603847642506754345423542687160487316991454964776758340250976731490064779293130708084019549994978112786632334931441031803449514414926452996525540732435666740655797689767106369409637548572389706234497312851166535578338237047341861821175458206733587988997248611596699621214602621573593092461527921700206101611787214542986169672412112458202601192032880860060470754111822798923820666007652418018778172223841869356804533593227890678308351526154901989533732039101313617046484834806251169072003657988323101741886679111401709312059630065680938609050181958224693396732592410790983384040610032316287314171690905131856731563477311674553784656764375432912784655590592344175839452434366482849023555494173525967261113785018596390072141494014921512017824623709797136949807236051962492329509079135135926254750384424579022701843647592171739717527629283339327705504553657861964376321047941715902792223067313564865334077540388486138222321805646322836294406180191876380699055292529689112428454417846812227858528913268830355527696567510056559467115483521420166371300890993567637326769262719032491799944618609132056148725805365673043996260454153378040233178387259174395784724033909071518458452057866087647995983476487244340513129558326700295903157964615963853069828382556933695525097511712352435954342143038609231894108487788804838474628764812787496727640567789543908275011838952301369374197618554649527236060425164130522632805522681918283406680587445744345023585442052686752507391835473881777752464813448760088003938959421130901905747213531354953562728810979765200868152723946056920528113829088934125343654800835513685711754790291686958828385054191141402354419304540481637433974530500885951127244743215330155203880916056822363312492271562166786087873749839235854117445693798681732802464562234383192923192628837018519906409642392200858646292299798715695536651519463461278566786721700221964317942142482254938770029230888750938114942583532592068179678476093562476704359014980062226346448580543049972436408384557079644070777097316748565431745563330978160659484052191431505025267606180543392412805802523367894868959717696849155313263359458645766063115449489115805991580581970484702707010062953171437343069381380402765947858773904255720381300857872568434209386908873456068900325381763027801788397095281852532054423452555965740735002605557892236005097337691831109339513513244340593002188855815178560460306643032011217849294830743346504797684626273593082668257938839210057098126352958556268455731060389932716400512401523396505323825570023652317338725138771907808194189747871024695567070442185723649531425322912904636819641591269843981967805080371526677585395824416311932447842228028195318925681503731827505210010440695639754502085866486367579538753562666601692899815712080669069472697513940527315770827649968113743904147117004396061842986474776410974715095407453182351251812273788269642604915681342025234321914969859072405765300034532919843532610771969231378925680889571793419507866215460282377253702062987550040242940356626365046951041666961655613538963965833572956535009127639376362459326963752957589907156866376412299964361994063003065222674859527782779615348595859183160756510658463249539575103872433373061875290530618762961494131041824475205280865084349453437670658809320834545078930444409317472716171715240394353284725878673024309609133568441282465731541484261667634107130818930013579006468836088625090370911704944635850629596890047936643804757811447117710437436545479272276742381709859725367953019803846088497565551441176584506877094914094476389161416887836757172055477882101980201575620247571887839027712067585949732451796881992330865343810718734911249953168595879390488698336610886175379017869839102103737365660920725664639189693207095288503067029919520514866193702001880156025414912179692618981342811963378208579916211794336685668214670284117823702791405224266072159358371277589481827960757392382482784645332387370298490892644317642078667760200449693037094954393483595111808256866769906375682729358905238731642915702318899214385213574822192556522078722850879704381627000446619753438365765499626438147603924265739563442783018688537014765410473879096279013521783604448304733200797649184518400812199556619324551575579151169243682932547394545472450998413030105435680669004078833169573353969386173526887938071991322149498517053696827124852247121745892122568712168175570748652562598400911397683443381527128769578827645773133501561933578259929499780110903481232463928903087305319629970701307730588494403938231634673943813518140987161728746343296211378464568022299712235898600565384667108218616815555853755289704939636328789268529441391385771733248562843684756757604403120092836091015949372622331184383293466729910937332908821699878974439724377237941453271260872490632456569373024761718731652715019352926169692447314146661381146758467774893126670602290676326670999828698347542282732872950107532572981704198411626670425167992501344484168467648785324786984442341786744554484740308062100265760550473928882942052516662515043189012287730997227720867853095389414865271067880257013438280535552037013131691456651696753953874353030321356018005224473798235085649195205151102539404645013573039247903742768050026210611822067514727075368675776811184041303856573657881257691999644647092188916275506642398585473311999147329204908827863827168043006805018543102786670000934302008693962767762362892568526967345501646107084782004382999696935155164490080976518435851991726245190993842061979031746782393900744954912124846507993792692599281529466933457021922219847892052950375815665528053129628625817970953503685301984413278237095651884344629910327301585244993394971054658016884458799693781552369337178147889961149973683568959102490427611597686496070040801679133250463209751949558568390446250307142165360151370166896289530491414266633388613746156595492630630117592092450376525777920308679936740025204195408273117057831016109476100339340817206977297466056383852645470058694799814135631702924813106247126800498314383040623994936403441220506180966856236202894035073484561406885900601185938096440585542930445093627896539127040016390474067429895966070468697691798651331159997688688253339631188165952589820060105351144258277784473852686718640905329495895447500930772889755527611574244661889537130643669232175092286624366127864258261894090327967157002675030248046831827048672006934113597287473881554678853476336038847879989637553405497812848347993947722684070166229652997877839118414981738356652861923215642437049570367033743673471797013158122083808486958176044528291949748989801155655639354897873004338362945112353398085794695430774669952485892424529805903419502288975460279008680827372775390567404058846131822046950263510487504978200950563399348783542730627683684515270560784818784520766321912214647508292488554677816588214955870842798618653423678555791966507673500705124722456400779273649233808037458317093707660319097789949120559265637149327416210049130440001042530707712418996750851039049242025827578881642512407863849307721294864740821724260096713087821473677543004560026948844600068660436343011293999321709788502988344744011483377490093889767002939815098131257628065747213087879906641297720020729811383046137208065499875771305436272612318155507955328671762263220267369354139920783519448549662614759658399807797559585818602195956044196736123702911869737354440705137239077570996577332548096160457303283790236697271148670093320791700243389519074262087973468554544564714937985262188143629673601217197531477705585389359060464793501527777543362751272818056918068461127417931843334032700919796718772357352097423864689337226683709490556963015960075913265061911565280168574414279739953970524574828054056624237004629795372711116729141898872253334644279047952672838945763662002485451757692207522996003783436663019886151243795040738773170275337653835221476915288703016678784402349271263347663936188911056502735782844823429899929122778895869564693339050471927013929398862966257533190432309356383035783304356508325409035308425671511326315478918749715305502449618042975888197272723063030264134055933032989451759165911953290609524531373167509416699250742361248803370149015109590683458353104380871612401549777811298570407943323608254685579825177382729091344479658800742395515095814823748532593025786512525154276502417815325470036764320001248773017297224151742230100624299045159642916629714369966594257111850287652056057574569247651160753866109304291262066965638075062712464767222810931772791846775961974081955810163387879476338184388939289859024213940244896347316962897503215234129610966928998951526819244457859337566021232744844279545368775899048932268074076716072772586096360853614151530490083706593973137546890936930065482590563172078622865552217376770003475940949312524784038097983248898183710971565674789837703621428282275568836992753493059606799237899738435523290788104046890122695219115214272452724504316039055445703016085107381798259555504641113027423089261087257419566971751347939228269998984482083501432973496209462136965736490776149075947377161605934818803316908762382068057531910655951842511464145901838729121973150834068622326851087215643328876158240126903050113276088587670275986821257604438091978567489899973013535125560203518929917784059354770021905621410563632126200016897244483740782442657713448492202406832004409994412396700142851257167285205785325534239938247777922488947634519726583977907700563406589973654671179100635315338848467991554162856565664980877275356390055959179612120109633236350008317143913488521139499777626101104018203876799101859381207610073970348485915270144189662638974532433499305246134217616144236851823372262014321409168739846904560458074368010652174683958401504244172442802275371973301359003260511176049394482373678362763334189936017603863938814003565679817322376393902774112447515900373468225473004980447219609323611310459805353357181824648944105249193976768790356355366228438109049017924363330998700601421103822957091010589808897179452902225397109161120247220069112984637698382402033133600814702571066054792476315837459479762499589609235260446678561150806299047158988056370125269249312725725001272768441027518478200027488119864445421685305848962528310288456510286868006285112565264889663418099600963582751122930372814029167650539510826816023965894902687203776144718511832668902889986956510505432530070842619139703393382434913207885534196356798496487047884174144311225638817720793674469524649347176645742138719882772619701151282934981294499718838284037534579354857649881330325054742259000136530668067059575776143841824631901049765542400688658138777203790280079860749367807303600144722233056243771029138156077225240060131563287533138280331573665435161922227682236619677996481285762376476939300390354544349995416483615745525594689089372819092556638338149206601255124816425414315551654972532710938107213140052768665741032992355582798533698061556436859955279810024434273131842645541802131265478032852792457275909023557106922557693243590178112315865581627677132480362593945017305075890346152009010821764358052768329559737921112403404795720270738219491444390242827608946008615699787283021258904725087121503669890426343450660283453297280313336712913278313109439445717799746761242385893513615866281154601542709692915505371994355099995669966953106247021170842002264567777354950572144476226256818396899825771367543332464389611183787931871001501306926812646774276954991310286778531884417021581804249695663225603429954486771268655529477265541942995560966470649020675475893893664548920311426716344387765679109443779046096637758444619704139120405520853717974005744702232867841128684629388721130426045999405552338899717569294921228208478124803322120969497614297215804052474384752356453030876915667104120527309949621323291025195063716762254064065870362436275768023479123842710161646429493930625575745033474115609757674042979447283402898395701831958988525429343219273241598711705994809902325350955391338835316058697336856314110813992078612775201781867759253423911536248591654965172280293465103305233823822050817706654558964175009404467156715334894443600264810258055295147791696485677176147434050507191282971007845831338674760565907869249689522594790954571178035485611074147799958865517807103803687823028972805064310484925151402714095406282903100623535905400273772821871894699596466985244480202745094581581481297571381997396925651062023293908473448168788598235281553084955083761678767987660907204086661778671212221157055311557238982745762220326685487637938697698605371495204240556990875493165240972839580077622451217466838394449522922681445945239746048807596118803081193797088830784530542296677714097988666778742723220296226994269107743489060659368616083117190189497598392450833553986228233716436846036429244038872486151240673790966422124738398821122949831702910073347810274452173067294596960324474412621780023293275774048792717534954682899598931406493577026418355578534162959103485534561354702691160085397360198538613747159081262972488057145728922745435318937605308991904098259048909272297788295327361769746204460575694971022116150913869859001989724890876758962085789229879934285409820051262163319699045163181517160046501229948561256086420285131859343495887089474249238360003364700167860316374734306225554141758580121841468552544790356322581646327712952170453629874052046704109328002052668546274102519579897194294720694848598702192459511407606487873081048576765158210138063250269960078047609096162486524047709451901477941857291117037073446383226298542578168678166228620166627789584925989451304089042315170058365657938769769530143791198382647560170758416207084368140641840504393017076073029460377017464837153535819495871403108973941627593402328687011902869137461506730971090103459691026130512851099376744964165922646343154834466034588340544493776780190069242100670266419094215405505761651429652727099961257286759882344863748938509536916519895288296059232232373470633356482058033904001588741827422963257619278656489557872883324988343225054054112893428463469899324431925370382436260539570295917003095466236043754488372035310233096638368058576806178073459243098536983928780501353737756604256325499114758034318175145032893724187117241943330157703600491866592629667840708705742314218986922517153537748647296919891907423991542685303516700350249182953663882008962833513554669929993827720042818502896132868993073632784422933747623853083964580583893889697916945916185676990332315442397959416774987854303940508050325060000909592971398433506783604255389591654228303127537588342689643086287763472149214216313378457527258594719799691108161208089598350335865888193088991042149417046332617957342404546445472788850183788482894521909727845569756232821740827877525107855883092582592983032003449353575236362917051125301659850749798013033848809265712915515096432097324767171096298259617233303742912285837779232319736577154306488561906385332693191730212115648646959895895113593449071853271569264530128312458369340374063494507073728097541306422883974549816343956741792499834434847828450056971686195550810848994381313431670333772337299893380757855617480076522557731541258340952635252846126310385198163560437676428126817544780288829912422860107765217095245337479695061082979004264342864249536520341452246689670092351819443905864090303078527525725931067091184079432059252610705014284465254833248956441784065755722870988413910606229551875760984633038806891685053915276070052252706273164762971309206357933278790414538517683919836759651723831780867868867176808489465105304883667989666843113597862797085060816380303898108167519306228404878742211179029147571123411447356101463059246115969229685919258391867056015820350929271593005907534748539326030200298794112481898480711620715106765007809507245603304307114443434566287161521022329928458179269852268678386227217388985813035169048310486607995262745356156430555587004929327757218414346973934341633556929249857975029872890960576313487902983169281752941488159274084586966082320970901186121986564494431687383003969214558619295255263707205839111489941771947576295805249122635936478494276566968301303970386764378942453400337318169210685760476253796172633011432978353089189907188782671686810086981575229484315060947799605528479409700317996854497493615266798678233329105591054025243633309341723195531521317992958808688266879235730904188142943385426884919952735936427857261689275577177902840682316917614133537994570921119855756677102103426873130847339330824842996402460858112585536102127119214517908673122586973397549473631792045726841757474881258992543450564313028012974884459707847725690604081575851836619175305891411033942110417071086625202986271176290329979317661534459604374219760235673015460007979510817907135809789673616775108953844743624048481937727741826615577583155737273537635884189483613281257460510188759604041959970514995633101512993629572067034039583659817335943965013589093794131858360977185743793422541094261682765281705688177564865741482779983931952859733202240202875453316963010586866924310261336467147939978284897779877940022482811543563794049160398967244378419170863892319867942645254889753157105838428896897519180840767944264512919631257054989554864963676888003326320705082102489388229271936316016595432754853464421252874298189023987436822996164621795263349839426857717069715459704689855376086059435616481823218857164670991611080450623479993831845742567496605830419189586094424567982913473827368687357579399074705592756809117683031746602882673007811917478130413148494297843796002949515018221804904047869908866273506744144685316545702072971923607541700552799972695611386056427381044858807805815536153318584636707147142196205889093918928571554055791670634807499954268555432210731452362283559705303888377415886097537572474719591810201133265818208284641674875044892888506821525382590214049470024339774884669402389224233034211516108639737355955183243419625676753938515030598141219332172160827115148499618834499246790861584284796054212305383826435996765589435914520317400083748977108998586814393851591217666667628055087321006112360267162689326463358664297155901164809742908605077700595855803159004614534147548588140018190240717271892784037802089040261793545785566172864832694667885458503386856670559109255865365709121939687730771448885079768314118660473163452279305919822994439243696275205928456592372903912866460973064719517184487803970451431848619049841503420703081084276429650153019341239074543438171032670616794527191273046340354998766839291148018098472565894871385342887368982995710449480628035262158952053912489703228322148077694149627148572492070295683276929465866007871518100972264523627791345917331184963498630240873732387918826567097874430250492686301022783281870055837629904695143926534171757871582527968956627718636037805185648551692615245629856002617171049450377418846367650173611643617396188076110960887033265418620210151620308910772985741851332659126234406210970226486501157386195757777654536540996166585135240297359569383203726859845564831340800036974571376738537646922887957191980179686616512313383054324162857810128516685975682246210899006399802422957537647959433771514672566134586380114378257663860537169220661408753431489237101129952954643659510871675033358616587053555303515735975780045088266693741181103329709199178225255213518740349212856519964848003530623871102857844160416576389313633363164518628647198764408423757552800545967136423284912909084829344853834138757344609482682462421689514269073143014086043795758918815969049264974908259902740879512985909808269472632364741740840187326277410162201017019056198804532461559228293169747450450668632722975954850874315166002927408840252241613974208049225024607419601304417128270304043604389626951138170971630494932371025523001208889137400796577815065698032146378570733342210441097045070769905630651144461517591955602378677896718031488637409367738005782615710894005555721371753202646405281878146989260415918997384152743055379354523643603793547478026643111798014831328561416559947649322946889246110863886056629360453503121412085351354064161145495088747396856417809905811249452213660883518949044666617330348930064265407846882905440307968703929668422599102131172113374337646011424370311287695607781298820953786604721125905972570668570803369878208293072255593614032714775419230067307638062530517007938877547886946343677358336782169827343913733429137198202890228189060684078365990233779191402991462397372131322966835088638421099490826029165400349459518121149960043704510351361847901064150557395045166815732510541411634304470604195327103715860940574304658048844387370226379002394649356805063065721016671360884723164595422847933343466994188224103588545922235826152071913933091295186742948771844548648587717112170332402708973660353515609539093104494152508616884399628604891210733386681766486537159983866437368190673407520465294354655500388611109723745432135076572677589847654279070987885325594828205350195813139498060841641437366677097817362882261449256252611908392526261862133384887089785000560617874207400666095017135727569482456108038445955522308737200906119126613708318473663659390391467425233618621772577416132290214068490626459573029876721707062003973741006869370882210503811252475166451395424840315883313692508138406007354106943123360786638783927921581867606469488920057482911410302023040686359837741147895348677663429779724513905623255233497440920020104850251073775365149308646909846590422551956076355517105708715111328237334462966313977797580564355564753757615647421774602608429098853109793379772683631886863937756294863550215323932533121400572152314726211516379891648537151393131657333623115949854766412384418047383679987078496643230149977459837842597952150410342912611766350272615723319022007486064583902244757208746925700498393083347043826690326503680865808740137118393795295573831647939402741985074486607610096814709876810638755635822291119097717844259414264567693771356473709597790762487359466809224174797312237114484504541295358130344281562051935908383222475002138206875074804640480381482053371558496569787029931949694231208657702504295817956787719765685502810437315709223137581438653648691427611970274311000545515425702919117295016919777559886599770698381648107066563840447859993440864673081715913622621126968719098036684267081061105733232047256362086668450716632287514820020091483559781383831973636992734073899584977212522835860420109289777799533710610678553290924109241402943315179361665067728047612702498960940345980025561041515674321659088515624242952574516729957712486229813210696044311299354058614628136111795841528120225975679775943746202955967121784314681378140271004994636681376849718756606851377462635235864682769380062431856784827736787261907580652047101660619179342385968381576396564071911818135366366253823039592009350674317302916932141588972136318823630799979931497347057445911642089040454475999924958248552277062158813143378417864865684436393296000596339759346892115790691416539846785274451439884666772550907450950019965289606902390897316350852698156021533897522805140903285992627237587246049566291691913130169630709662235777400645274199578293868405702816809508460179603134681151399000015170465622962126666138830941674395147018610723938777455501797027607050761161289867744221735502834537071673132896606078941672556924861398283942590848891613045194567891869410613611509451956408935098372391456128869629976645648047939536981939741901094490451263044231196593843350935483225554647765821572533760430244337081249277011752989806206021392007910763898282845774124939848796533695904187086825300353112725366677662211475585860446596885685012834658953489295676877486231964339812614415574681777784921116096471367750289891527019123957140180774880997019563282082733919389857266034249016237932252365176936066960459815316950660710405007042895092048554608393581206606686396087227351992301013710716183552560432910186667197791361245579049510925349209163900821613026214872319198827374682225871129770069705616502259555289081528991287039170035062599929326564399217218567669826160334630717572619320630546909628680749973941799248662902480555919379605017321983961486944569192410869632467917136108665205609353366834722900976397358871173599150071752703224404708280983173961506018367153266995661334802652820410868220070372901010325693555743296378033713392408283631176836091836903813911719347410336660367895152512318519850769567648933556305346818363427026073111717240624658632921715280704147450156452811436188047821132932687047306582803431855506003142834396065456694820528052032631790774331568381596656021293545170464351643567650194071610167725333869390276606613546456686180007706542871590136651675622615765705967686513308796810369602667056847476372510236893661181335747984590893580042987981285218441609448836758058435215987325046317475074258168540279801599761704277206096962714688757360092650925265286013242710302193341645913594549694951632232389367296788930748069371503780712479018411978044322661002361353162568442967881467180014563770526735256812085926565672033149617191068944958405164992720507925833937008703565378866311842282611741441214326882924974428201853526463879197011808512212386350048039822510360604120632022478904443753692143489692427146848199587526612544405978537842247638188074295787418814067299046017772672809927712313584111989574502651163011488370610090810801069215822447850059487330336532560390846334350385657788312685357312109404287705422122731869232697947194704879906839512863291840862614610389971548846915118051908176342073462156592540268437287354429593218715689501129291984618671901007082414621776623812889393398726442159950926014678118076844901915539991476421722709729545271217826038559039672344506901035532369947592764294932967897557066163437750408954701766101061342536525903639677129384069909695566593418168828991242725269461890214891443071350692503408710543784570302682179167700806084740166317013701053324517875633470236292653003139349473796279280645027085214236065471781829212561725659910742244832998488185911708764130089285783087032752706737005032135113752856153776346796646379400164881003100774086016318004102678831293086023730984375520094400997983448783483219667618861613214079083210898610833851249757356300151495652393908709388001743745869120213260050849923616500464968734126551790984950584194730410146984584697588366418228034509826768581538096652486943575990145105296438920324815922954856907797306052239623221647914603349685305504298479533123497569930620349667252519620372173725841820249770719205970660470829503021625671160436499543314328459288948668627624357197156533950372846554841307743848843217949372981595519204892759040023010395516576211577575315855724471084717998435593863526106108928591978137504685227021952421715074025092650955249225005395115823899667786761376472619950686409715727563930015580219791291377966844070280522511920113621826469222073465469697099117706824122754725124863987130450772717561742621327716645723320606343598655857513202313997642982843682285710591823669719417198959690408988667326321255090732839937744274206332315440635803498105140720670032886553891551902798551156802346784178410144385330642773696596938558591520719731074272246389943513122821082367135742449792000307350249041080495953760658376510925130412089021662410385694893087616921475514002177314198208373297830092568817875860774465639265502921785890461989995628017319460352792133291138453639684893559275534372198802500529133111161205024400515796689126629274766858898260282180100674288076686073091085505978692713651882948663765298416570781104254351956946992663235954908423569898662938513923235738266200571968181055768978383929386335631199915222181255025485164207481470248868165722773060343754288326367730713086256441458397072175719887908979788950484631966898593678324605627627133947687125758875141682915284337496118161529266291897864123294297358725054577259180390686917761982166586962679661454602803953903560558948974058229740777040343699562638890781406787094899972415357453054430724955636459725163338142521590670978732246844736226807607669738947712291851608987115531196454932949027478085561272443553537519674155296085000927195215075061327605701471316115647650836217167626704907833037887326258462912461000105494268284634502272959769284504347738759759370013951472713005748849109267279949231365929937294531270222908287383269241103940312464798012891295018129377784110754045842922963918435345111353982102741879478935977253898687039840755038204668183580656145084485474688161691626862967841473598952056330534005159113145353596866167686711251291601038851070540724373004826358075419991056469139547978114349886508935626009163970740258898241982683355230454597395335399031695005378947152450748427714261373697322582352292876556667755162471087968920688578730453112988375679902061878327801830801217266279761987340630789533977742917894646108373096471796643662562070759802770460165039069137076703572558210743890030398279742828001271980555633539238280550635568135821690575093181360873510992419008670861160491626664750056776737827896188983528851752558723074116339025378849749568934312994121255632464011024357217350940919621517658681940637064631301332913708996592771543881959693583504838629501784987892668245688908957577680322485866050862830602995048674538019683674556475890833607033203546639055609395630584137453404539187746690857641723762515005237709259982645809026081885525625430138598744438569044113615129649948643897416871204061762465495879200392869901196885054477444885504641903238210921163228157363652618344962733743845071088507873445272477720448525708592415491824925394743217595411901022203309636587978087029444642128834007622103960746412381850094134240642552630362108733492690057062539853187385466374994806203375902347043995140445021078004279982240343416238432191670576589435388886529524334766676117517363959461263662861948727381957792035308652560079116097000896365300833882858865450528218496398888448602254812419624941425163533439065410304569353003598895526560505318338482369584660731300984401964599243726230338123886359209289524462287959938913939237916714137471272105813657647335749256651062377491202896052297377925809421731504085523381975161245151306508645779964876140819450190753523281483974852580619707757203007753860580767479716178865978499921893822712137552924561908958534456477857943714822101668784132717891515637636964269972557321626453753870182526155247340099940237629635845300544562479326879401852372855669794546011255886717709684223071461886237201931467533291127852474105110270265623410803569938604133765391243370377024593621851957765008834315012311382177808227688627797788994251593843060449302964257575273290504626222602341460679180911214007439756820208348284979605557522933500303435462021042379385091456875239573730741022683980778171962799285492025937261539645129589480562305409894117643293328368157981512449958801998706655367619715262520111832690093090446086132583468651326538926428039730567588302992499003025386335174402246445816248677750271567936753302589804440059107535224711675339429320129127033590535506342582379291987072869595336142152381108535406111892134175972988212499327777915496878382538856975511383562099985265906342785533302555973375855331403393281307225406501989798502205047986447063726907986941307783195952315238723215184497006319114338121087683590800933382478175187949657548549582055754264458095832947022496813430323010868688728631117382376177269853217708002898336786635687921037053421314424960185890675890960488620388406580387053316025651936771407651970332377880206988974895100891977900943174801970997892176305395612194703290763429930427328144982960158645881096533133236818766332830327854415906484611692532973501024759312670733543595004682775187687114741456093998774754206090774169170096199470644698466973417601994838140385759583507330017092094591613952556837725611393860559894022524762467417665347109768134794036788214324886542328446149856302790911768755131048155124446244474835848369604282259627785223067140926449120807311394520637004777442905878550115381727195144083508409958986788632883820844670225107988566477144529625278549972008086420861821497460142086108019023564610112467188140347200334741294636303596086338190278156074406708118895915480620016016734069989433895759925648055792306596974181299182053184117547780626609216900765510068160168269685069983264403761369708280622906941081988944116159723815064686177946684184629545377077486581597766791302129477706172398731575754397234607854336491279591978786549770602145519972949270860044841264328255241437293440930054660047940469716692788179669321315876782884617959911988200383108971318701407739640228536977754951180438501430290674270357655633154819489660650529148293815871261045986710338135046864758426680010237094424490449241792989623168535493190893675382887052483018081032194978409582991455208754938587553396744087266431633071181268502133173796576044594306277286190170724405260830681484307591544296386214699735702249101505383193066389311254609832914969734749462501768958191624723652568704281237498066150642908437607917554514761303298727878486227835098197063694978180393629031776458041540221690353762688542692870274974495769800046670079340597705604313773550432306773314002379899597833228877957541774529154916810261658737587482532365977356626383167547702423909978969623372132069319610254683799005538945667716075507714223953272654341751672089074037434974560192234515762067296367136737934348804855224916560600806190758461825339257305101227394738244046679211398871644801926319373840464210300112202677144803348180081212978569540064804604091824987656071506358452666239041838918624905835399216995561393604495688581085319807821467468229274074972963232713023830365127711759574765658039645807209108417436437410244895305192927468045011658937865168455335149854106545509473282865741403228551442858479550556264473759285213867417179558232224428174928632881542504299440412474485045071220517788845158445422143719494799353173573968568626671796568376220677556092001073375959253437081375444134216815679068033173396996612649358130163367164128846444392871526798013147781847741492261541721969281109408706920527428123965113082543142924241173957728157986614444184903425047711289536476239261696667568336138615321815925222252728433475370615191551458471270223636544569269962523923562591581790450522819268595022751799757206778011342251501179919203334035389063769573720025996179225890463427538275582337314893246476316647585599533201716601976048077245279233786306568445672049858159946832199004312668554058108292485737426615499665685170482571624073025010149979421704689098674446152884256132002557463198046784595703674682839386335276555099075475623602071996702881749410720375197361050682090903430424421068181590511547814319465324250208817807461202890533544013073639363834350132730363402354891747219684088622223599700512222243118149883694295655404235549023996591405349693196344878034766989821738859649423429382290084173491928265238560959732054923262095681903265384425610386714432262246756770949275655384286319736462330433062843003779648766838698593157898666305639741909660467639136635133538179069722244199197262715504298258317894581432228403364805959496898308749312301338059497668603102684506263307883954721294508237234601225572233132533631872321977094891393131646112425830591364061715601960334097035031256500593402923109360239216650141132083913619766628666471095196011070316787056517649416016290604712013847859302922067461982486397415472801542164622361003672826835391864479899622955646237581771182977967455658110490861198181747665327599615316490398151321717443148249258458961415660234536351392795472437722035942122937182169361401459917043818651734375819043461514289610982497617934654604976611650474799801166033479784526230295444258694750916828852860835558465410616818753316718984298536437707404148188166566539313905773386723457479391491717951641361104201925393984882512498825014812316095219660222577492471173784790952731909744598562345344080618173663931724605151571974429766172247085926248210427005544886731725966377297973689198729180667505863209943157893833135289878452717291233683911508134400230161428986449673775258350498880912309340954711377505772650683946292940817117637831815539020380954466924403093134709077267159129408723609162566126315318083420912410873080481188962569741066050904516986393211695821746718207490288641639568143037365591002881001245144556267053468350729848925393077097420024103570494025446131749447608184612597565269198653133188051978645126400297566695558660493307051632813707701878889602169798078493722217334034631104077826599668223575840198607847581591850094808654881679923487655590193754939294605725688853179591039645501201010881336087343941873452521943722512097134160671716660839224192761889520801938742238570399812632309382424361416385212786871208729452413141637702414744848530374413463832151750580306327588153362226080735160370653879603180508876519043778820779524253746545377913870444680806705242594003529174657129757518701947193495391007941182372421290178382383361521218551484536791707713568705203388705320389462121770230164911901543876188874188771980474972850197226509284816261313744403599492420926354482679270077350149616074736594758964139639102542209406158953145723138929378044090584248506158642560634746655902800486644522185844992357693306757558922347779849999201558386172860048533644674708974285501921776442878184483267234729825143456419888007816173717987053215570514635265369753355145612935020537309603290088963606992293662291460982442208550021380210856967996020666789333873759557371229929855154881628035603586349812745352277549532983356473668018252939098989102179118126576768155553652433782026433953496238434642718450633165874643204605561871167155383954849474838478845727463207861433501295035407609764319513825716270908954819285802100477219945208415089818595811382217739689012749173471172415148436776800916209055061733930976891017449197312477633580940881108361684140940466000467278376483850183731369185165218041569721615454965622531186959298132450100177626440969271212997277383584224935016405425284883652367913677750090945917899634449929387648950024656179230637437629234952594347146574367898712007558661158267134656647934540517168415644767565834111864401339611839592251853075146272496053726127767131754515286015546219907584552345067268344374514393477152657144823530994684992429867013394554059417515200974791910660617351753390051752659866421372843708691038401453174558335707058712888052729603166828532124107702556946976073131540396424106323230216183170862196621460526997470946843017768825813788661790976001064256795646070456482525923680524879980648749482425872256365703936629658919774301305750270408665116574771127719012405740627276168576535063332139549975463921129828233381966859208368940849978976715574130705082825420763256340060639055209880977317234418682604521267272217277759114048943505379778815974335506364480865906006272851121064212286509704421361840892916998291432250148381377877265939934443620297223625291342746932985941296773994018815093070528880098904669236391852964323349700833421972348719961561287665348818276882156353901308690604119307787327773445245661797900047642499208500735303736675645196259956787842180027032081609398065134137295131138191702874790186304597000651740761635456057168137604367590659103059975234687622855800267238352879931469895443955694616943067760394220910482504341521769637451358680949519913051417801334592509905310988697653235839193068286537282088272136333724174792253319572622023528439282515924121730320786310947164976719317818659644347521976780064416172031986401572336084339025261697130395814518952159077731372447513077670879783571107930904721208661031151546165692486167348333356667118048067162485250686806481632213672886569159488854477142216161945566403005152830860285300408525878168383041029576245571652490681148144146427938735945657308658240151881882713235669591181904019143870877787495505855241256479293208914224333043478121406475623558901900030060062251869806275699391287921682106180330738739017654816901726908658703589632771450747296920661815133923896093610676509410049327231302519779593497113009965480886021456990521861262862957626400498041628710808108308614358112283809830289388676403512156186080882955085534559432525122290418771604663917909813144057337299654014682328212650392403821522326511616972634495411927367892833318863981575235672335605269559531335598138861942542959428708061550062365356025557968670825966597658488685733420392333866319638616370207622292727799014111098154632126645278517293197474741934096278088095121041568704743452749459230606733828650435305834664775621152680340798732951706431379859965475923551637852618032653486172391988621667606417504305114132764724908879769501796505789381279497004064919055897850244993688597506911402274871972201807663423591740751783601228707997320531291979249759988715801697021985980734507143948511805792475646965296880120157387401409959455308327450086213397504172279208010452292544928941553635031533073336925547147635961268405991660476287315151172751691388904525058739667824728929008028889299265449478327827627443956690810626748957485211479593453400519918032338139822698719632504508494948611991633931497834397841568618402002809192001816487094163684641489055011007240678014735747926233026932862420267893725623882389743531874866608297007562125366571172504187855248199848741058032428139905537516834869789678405771424588920706575679137946822762798095447391473347737877197021795024739512421115956561760640507573508341366940303295092531005419035794440759040109707271339061688147689813591443163151684287441967599328404562649595919957344061925988427353871744572587818057301409214648270191566679191167161801994023008892345894241829602677451838130477156850369725276184514365303304839875694432580024993644881383454651581104524328841522099749891689549941397846222010071885696577557107260628325735459803553413538935011757063981144128790751870283648271039658821534355970964722785536915024662240879290601436471747806011990017013492977130153957771094396197748508127317280805594866270759719450718848597813053580301186111532351291653369849364865018608787863250530700250276269729059669764262864898725721790645799919145444819936016275488341756363352857516655256851546869197854904648475310865065494795801180412343228322443139971641493631149459285248261508101853990428051584285262426606835591314239473970212764107308519455563199687729009447656087212930294067843739137561434728406757155218021769110862266896998291056203250837640158899177039202717796614518079765781591935672541617404913904809491861239920804777644842890712038285566689607367318037541093161776748383877214545166542065393296636379982245070199842658237824244876801896927341173539444000084675315847388012565335923820862483290101337390406789969743276719719660035181207525330088209751264696244507292942825796661294586922422649148919657237773936684723502943445794292101666383455087573823278607773068064540946179959207457277846356573808308376367082101364368927324536082840805399637733015664417701435043411860442162198072178734924388933441121564701895978378952453662456818785891026907797918952689010281490671339073584005864110313613863212965367109453610858427440623081630478820060209736590370002163810212707187243783194075068370416030942529957657358154366479947633618088288745795004371085288838569157970011183855288406829330771820576119737138288667872264601301013437669261937019826228908331638354977419588722776818739687758952422551395743311435361866694690694398671608370365862363486469109563690303252601505541921323246306598387678093126854481684886316266482019872645926871092040253201007687797715045821611097906043868762259013085647399893116312927921930929459651209846940563400278922373602751313631346704385965832675206698694561744653785952885660211065701572485567615619525251375806772177142839158278258560157686235739012936621103588886474845516329906006528186543775030137823163840609584351199445892673856052777059492084036008016042279999790865138949199412827825632478276045599360308130001551252626590102102799984734700604389454420290989210951354159432414852101196576482849814139369370397670212532872905452746500933911603645487109810254228468190123155585669008423912163908220045324823445324692941302078322736184553379118600633685454817481094818207099201026386442459984271892859180629280500027461642102254115504724765253440654806447520916256924309322844704843776013341962017121885562053343256990418821074088188901720834480216999010246215755830520709029448122258806547021814237853598843654167225577618341916367886152098311695741154896269774838952104109368729621689342916664826306594205690940752087766720389147505438288645500222851205318390686965185164263235285003436131934966125533675900073841724793948203679930328801203401879791038175447303656842617716448761265883797759116380291973950728744319532206981623311764267272075802260753824259646817175239399959200367356332419535281317194203547917407145918758087414768674832167785174213780622569112908370049101172744342994985870920162224786904621015960485432440238671219441267827018117401731335550253106573684082892971905796907679984094954954848712701006069243525267084762687757455357605936046316527197144453483087120171357616706618288265141629915989470328028755421527477966070665440395398757429347263192537275409328784536075064310673735753355037071128105944338687141370679415434491445572664318391225177323444832079919719102048341774540362759459022461782403899439248808088761041233358248903402941261807413809172556911835012025234149343804341072599450784919763984589201516108761833327182132624671668465695617483634359112276210562173945946522589710492677769996886582008047805454393902374195249455894979249056555357602417732628735766358369421826734713764691393086382760299152878439354603760418793922807922014296162584927674600969869403815000134311530883168980388015298362097500765911759534724604187256442193575418556741463493676007571128600064585044921654933951356450616837704095142180184686245174443815557992356625662545436006315558555227255029064505702043618137683251103631924061780943457947235034743000782817896183915174823051581457216868889182215303955874368718130379138105678979760213792646972541320824321958859179762692116234956876304906339362905869354573550119691122639703181963962244897757491619875200850597786158130433881512578247880664326476604310489744847193939909891549810243416409845267480811761824603814208769110829170790178321076509935775946370026692007009972180180623620377485058406419176301050748890385921416238001971527240308730465196411214866621457113873988507261973049453395426909940282629506998382380713819505258886859366119397554627361942880979967127274107135835301677154574564543781061468368190076645202290141543981833235373106364848321481753546199545569703845623652271972773921073546746956830253728170238432160595144845967476539328022098407193893973626921891065698336049849654294078677635307350991406196942925349036050034713746612408411850962337358069855825050765687612380562145356055874622339731271574871735892209989941347946139049111082679494534948586386401323180949959158235671567467730996798709648212682051788701622121674351403806698724784447857198274476836474028504507548467629970201107493301623356906930674339978806474935414368457709489690977501692444518319889415344545250538667527889775537264816996358394836298326436467659366983767128346458250899340762751974603745909419563437352140187825215023139135381899420703106828876082634658497744949923863494034786874902465812829662028830935272341034501965207283629071889508814075895011324131554936714428175603310146587343940222146656073700788434162504347344728123858782342625239613642509653601637941534324733316144462488719828206412995552649768425718324316764960788383629653457791964462261226557580283088908854276868716916606195454502455500421732638794247673735590769206818550772125159588978556797744088518469950511773396522678816909091734949540861673267350057057085957473545429130910632754534536808480988615309681565712758498925102940183252482185497385261019478468683989064164381082116000563224636016602572273930734002416597159774178630736897380128803864442876219256629590155732676686294470788906725972324809950530884070909308941921088684194443865372189460092599498531738991127576070192724044543176036906902147107471234845490466191095731102968289770400460313334528319412165919819399289855784397634870433942442087572535178394147503644277291445272544829376732656984722349661900793051322761471185908803599793116982697323882824856085424815486900441041798316796787197716558535308605318441974541101297815601097114044988191038482637473871675111281241090406776007448676251940287669373620530540248271944376293918539567983029954153638480186766735856586417643340708724218471267266273053075343300080507233509629945089900034620901849662463372463242714841535448543618160140468279392332821532389627544340459883571357181639470922908760967329459411163070177192935209559588629553556662732880423290088417062959570847590568873250252663102131764690660320315487829165408883978976965203874393516295693111070034046085454346538113273658780505196369452648090160903337901085041626645394600472186474275751612964186542831483134923637208436019603482939594917835296307062579109812208564222262753248179565798234984282966632749303111265623769594861877866642544846719761788007343529313460968038775220708723622520877668123355634087498942877605899037625726119130205817677586273023061119028982707276660544997822274165253338732566450688431473365740130668388680832553831714080376989526187843685201074963941040659852567454092475035398814223063353250910093320062785059058286952512972640896166779196335401798761960308302307122944322585521505841009593383855732863613771223711186593693367895979323591652042229653748620420338935780264171295783192295148962854469175770268749671210937002462476020567030305991469773856710940252711811056927518795280377187115709215212057743148475612549087860423355547506393540875549082261855801381341292457198773017621616280805816131448201828979373561938605304702559890953477229755910490886978774608382987608954878584857703201904259900462811354381246720911176595381666242863854969436283061517121265218799633871120890758047445272848095042600103660318437783593309085287223770768910536572812297351607442757666603999366830795512433076814386312636286858171053176594566908839543085756197700758613876746021587637928117685250987182378859275789977774086074839425856915923863943198518021334231851272626942994667566897171295638007841921654883420843007859786383354161310284766257759947070470811945099902548959754379009589622568303245750772845470319928318929645614666626775065176598393631939065809389094968137521685771911675477816805388340358826128118748106896726497901510821710772823697029502063417131193573974458383550446271119236861035788009155653846949403329685674169271468561805684934872513038413954261280645729817276876291574536245427494721367686685378259072374389604683838049413954706217018972211737677619998066958361040112626096329677939391575833755572101438662548388322755050003600580697066846088473250231895097277970373622383889276564957986080205747920552367003293537345360043314805568350087416722721275387693299886853329953822608860614606689856152652111436142764003096198605012322588165636694838390935971066439029248868192336484352308303876036938194381455979659957307703545601359132552208899713319862082387917175570928348648403609062832461543208339341308206647928317605690658508705761890870954551410277639784507208173552318690392029397126795975130003879062329258351816765593293508244288799638336322105406589589444877616466918431444022721948603373509085597200428161504693919647942936596946884250537665210223843353311443796571832285511927257967976785529225913287513007980545181684566165782258250422990124339508835751453924306389173739149673563691722953134676626123771767854824091404649246883502717340061859193586423232998982033499820068757193423153691078937189075100091697538366699825140533048009879115506483555116768671371551159051015495578095506200536910488401703971582580099852704440642518840826097318696573316225603304762118221247124190003218324268744734858510462295271951339519979105573281678753796924808596774002698862992028883242857361538891553079115091742386006467458106080514572085107412149292981845329987376594984698893836154047662500055003360871789983993309377997964121028830980096264120191386761696834928114565213322731776069707380733889307152334474990495204106070703082218756168900495927174187892089271756767022593168691503596188101471454029507946404234766191755951833699430379455134262168695391473224043001534945268129376313558119712325839801873288553729240713437258383334104055899312723621344032105565915822269590723280189470079320988376707026857602924645782873445176644588563090594383032633165122282007041643747920325774818878733166042288127154926131398987956944319485391485145387100061072919151778158711385810997895648647130790918278556304092735044011106180515340296266441691184183592457098923850403268058620226125485871349465321591143273947197185964113550729262988058165285571438996254899885431649615822165717475716776982527339605565945199296489169269585193473739658095935253462037315310198156989826332464974640577692749192373992866819614803332081804259315093585636856733963991226677643404223384692242603595453798706339850863339641952778815006982368163788095744880545028259561946051642112502688753196446209465211482051760748407838844660399925657647388823712143747621574951678219489354310072770889731939530477263858259725096982763142572463851413737728080954637516094399467366809988662052330575364637121458884938784431984290795363713666048312840860747791216153306122167151138980914562738920330785085011863526481361553845359622191996770287961364399829063461675983351766762832211327902519190402080532618353882193915433703134471035919966968143280477353767355518711684975568834059787419027892891806263294884778562035639124593800519252188115614677700695312077605046632347077882410692066560962162447343616704712094146980844732292981662586412423687730358920501396804695547317407044319352050623601722095665868708399764972624936152036864973364119415757853130657848680602870055578427706122520150588932976086409417701196044090494668801981008904021310779516214467071805380155933102655584747138767840292669854818004143275254112489840365002201215429123774812338314364006812843513365354992632562790725026434823349683714392189162308883426130704432599914109403922034418379035035104314750518589230775882254420304142020024360584604695882998375019233446125240365144547008453370592031219202689334292414646549716148571163413489526711927219622145134960257175650618117074657759441899094715722014454008847311463300081119057860390686925990534057869673423042416192691212136727305436877899300022944294381945155278345027437961852769876392454588341627196801311674213141195364380767301784796311200822835667517021901873399102469835709205288660129673388343391726017348195855553338609226210653970186881268650578302494127138639516483916667427109936564246441947934811252751867936283247001701989602690586346468846401343199650382100958546085086209494784866536134497503086241586929684746424303343784958342090536757105974800696248524447355357819185957677795192599355674352702479701786866096159574527903485050263629937745232058663129958519978593897691015992869450894123116770753976152044242063878924672253385486037646843826083039681921535972372250496061763597512676206060422916456514414455240172499928962757762703708847904044915004728741358414785967250703746685007320467961691753786438718232186439554876010361210127908603931704489209612948493782378836060035468544401048494815317327752048315753495327385120289040307681189476310176154178658080805996028554730459112156611443798484929835494272386612640072593496719116088753762187523191806371369667184136705550499450559141482010736749027302671767932635404353037253657659573363535125898508868296288063284193659133075890111383983894987508720536027583753906256884181135834264095690605056925936941463327811629427828661174590486613149295738552390638304987317803715719248025929053789913340249838595881655125701302713690125244124457016660063290731535757333184239581195851144475552174448733640031081244940242573591066119093617993671558360937229535244386871587036429669044106504515172818631627869953756006996091518721773992602294324947936178840635939068516364301160658643109138659426271594105754890181102047251605828387200077751697933454527580773077940176551256414287313031473338732657489769303030722553452818223315033643783864629180823918805961032157719072440878647522874479591035249238296938026635087443644445935419191196712257376319440778063644198041487943956980289136946912287792491174109683079155095502496136227507692637685536556284231580773110787826011340242936706472018949487001761830812689959584949939696902266095250319434650897410640696522804711386623376399222202046888891819466642011373680675852965043701566576229416450739849957146297076176817196016341772563020298762630417948275127153347755818208677300187365254785440208815717076509528560632851193345097678988248858204180592376085874149660592951523252601788392665834250551731169294514936096057875874142582220939807769266897162605938153445643487913872728842227651607461618929615213811599520543703194109612576547524424537777835273950194668389950754931656610730027363535141895812137208294072147828410127669906078217947778728125196874389391031321161614265578532030822886261676902893530314321312620982124264028149122252127496217700842542369321444224007737003172968754799419215709299779794080927902678725496682543110760458389286298753118413875613762226207814093235820212892362216408895122212036766544969461856887781204717021915141081451443714163884441525851335350244590088731078597155216713543491625393225056662917938141814239554181674421033639830868292831205428273142287011553520032964354564918752591660479055238469189600969000266710737517979928156523205363928803315420769240134258785976827241151832705481171519918315178219279146354676279946295842490421631472891470459668007402889736816146226165246631719452687701400349170333717960529044838904627982703165202461953902470882263428871576669844496877373243614694314438499311744078810146985220124260499675042843929570975798412262097212735784066581595570127239576344905952696327132040441995767501035582845901797877135977745464037949724597807192948399438568915868849176975780307909713279895062304135919894371851337191572073825505595996611845926487417139376832623767539848636115422529707888178777031673459578577473549572159761449375761985392340076263345394345551507959459915481290501079868264671891843317250420199842808337154496634994875338360866402625787824038621951909262857599572568968644367101780271636641343629129232486866393319692645204184319120115282175223083763206213747080054472400294271568930806512585532155953321240428810285424904037150123888524842632729878632510366630635683080189736355017100101174360337466213265837047595186479193190060439192398519357183237634208960402181441263026483937713333602859953229117579784026188566229302278023456491350516833812874717111275865600027158413890933632024177971619680839061642102851082797126807381862615076804980956170164435421517441573261280016050481205543817007049048058237207544019745622611994291955461558465639359951817757142105027734486443261882741204232526350171812210838851388996713607812370669616582523412525464458325925326037420425409347941705378599578020732235322508645942294621856936019658510341044394950126130782891202864792991979231460163157768702555723935518839213840360142557164143276850555730360625203437565194205618404427105319342297402283861803779015417392370550600815433969954658498415589702635755338775870199499395389054251040024891086735099735683729464552608132978609289577997244528508173853553108238341691147233660693980663144484026751252508476967404176353638143426486173690905966226075365381993249196489158740910450625770354073827198726425734927367711011707835514202373562921638241788977176806155563129742151035923861313247284173615274257397262493696594768064852986813630544640703697306148955962487977414102366206709549144214443511980660393116944999839393520864765242478014679021516632076082874413996506296693633867284596407708124280356670558374991672850347866192863107871135042142253166455506329692423222071684295485256675015712979870491504505281762722753222100028072975722096101540227586168307368414816692056570378715423909221907412458941603342529948577052053970227107824082656607637451061435525044097833335092616590055533564435611130309974055091821534037077814567800308055044885837575113583638873484098360969717351610865989745888394331903575687252548121568865048762209598452860007730377291585538700224246953742870541590004967700585107678537095737312824045050010841929343471082741243625756753287716985199705034100260934246321580387562828760387909973407419180508401287059091356670102669723543605059565103536756717511722804319630600696709562521235308720818675849610727245471073403004340719254341106637165754218998528959837897127884663538478543775529742995420640632282880036522880011839143209713174166599623185356003097970992422775658121129784590486885674699035986621396812584771249338955923970703105334921342230332586803245161405037792592426259033042059903116099493026783158442093144244778948047462090621827988048375513011215865340250389538907073556444508798184507343848247689317130354436657861217599565359292641857449967787693894361270170356898498179965161464144673368261499815009813271216540806987748459338703606417175787324282800943983927893379605812421051849416661887156760359713415062895409848818422132508007232440836680847883466774169104204152996563668538282937312538669450980085893591146491277493519424807065198641123965364277556432559629385916055663585034995282234336948799358662542237067251807859409061874240723300226778064712691485826883264674986975781921431281021483395690154892233409721004719088169760228512519162223553616084301787946225590062553528316976337491901500315169228530795798070723687748002380242608645806852555094875356020197802548646027635517815553186140690815194320171615628335163620567930869621590734527492004800162416314994762585408486490014339693540750613744696582703319656656162388916403467394645216678496806293359080690593519031038366616979206499154850351808532170565852792553417542263039601018079549214800393034516963909879582170164171924573960169196938278675999260401863920976909968902878984516976004377177880445895672919421400288257893701407557186218261542232054308184691857055953240297659349720752682020351531492410276929684325567321338750446923707270557606663221178844434893811441465441409544790656646855467987923328652014295219736171791362034743165164334516338437644764806887967101432808881178926853346550513271035676651472234247778662253515136589247942378237220647261514304124286701724905411778997440168325153080489633542188794897384683500428241363439524888008879484629103611443546375206237900478330172522272845060816344403382434969701673917700307630793470497551676375743615178437291047555216389192240453350299404403881877548185947038223796763465827152432736123297638116611128553700587838554343272795458283268476611581010969184916434938775878863072277758568114387945371250438708747924271875495598646281543821484058542618043703956836128479255740562821508364535804135367037813565357523750372824028465270649760894657903496595530715190228072154865791344215030370822673798899436207164462184455801265537476094951368178149592311658714916938454601779000204472948798482777217555794632631615463051699218022192913745760086524167227522668162137446727442219744421254762660355593750871077683093529787168839116315372937689365120220461587367663419291487917476746922166466649492593557789109663665016842409498495105715006982898305144273661633298804079513512026040361599679137478534470067337771985004040008125374266523076830329444852496345015684974256911832642905321449398043903004191846682364802966272885020466728448192353483235472518801442107569702635437959387078405085359370559399204093404351246194540812057884439390097936454652389201516398385820492795027906689569821540452284295546700166180388195724832956685672080646505169347166407349262158091874006885228271180858787618126476977009687235225916586906189211550036437637849809874141277016122957681008079804689455289767245604082486781391215827770142512220887239573014272523081071762019557388465067244061321553254405560307216879662596585666948356574517050041830785152709570535119407399672029495678691452277646858035096752915431590942456222225453779160325492316416610274898214439257207084815076944608297134686811128956942236354120177020835801674432135911031912185175712869219536419166894195605780331053477247290208129029561144121536802479959219237661268444719916293820815622464405086012744237591643086234043946217502620583699236714976528232727308135164212828965581514145127694356528028279633090366938779167961641738080040624641175618140211156206665619433731189354778424712315748398082493900910558825961485501351594685465727957012258642237793019551106368590194212215421526633180208741894375212438359342863937672389995513168172985328599161999337837853647582407650205543108520204349958888258079217268993447634033650386143466869948873070054324301527706346712814608597543122210815209563817664747871057226280227658991586126616966735536297943973301471384624033966668569586357216471026117636341068479910733507987306021930522995032585273952890564105630667569573187538541738721630022020180066356886108133049649855102931947026038050752101383217786797888940189419396202089398867533891745791903498698708038005466067883683198808061894800796768935811871652944201560537161739490624469617596251477444765128510078218571645143013470251358253492131963373518869088559705632150199070741899332423061033228794159506657658736213914836253116446538602489833770020649776748678978223700719399192247121136922306987310386973489262436694657647253677229908809091049048719899141913504728047768883450293613868604132934284495453165195314871940762452475188866951527792386969370610642034216097121884265105514949906750383160618534583212937969940044504133395922413317102633781729964208294268160664587165077747926926537083888208172358484865179892883785232901540686482109102509353857655308397386841970227390852481638520806483031973172601182328564535940300993880029495554729012000812754000487315130069392018934876871256577788050793570916350360861103244902283724350972869841419153460881338318871104751120578021801364320108908104256683627155519539661347275765820267069943146215914626209444190825486552742744850127661841279420770207064604533935866316091312079285228706628375600558985997237568955605941828786050250641888713223286711489231035238976144321499158430031385258760971763663291881122677469639341547185901288144705634581268502688974059996000517482748352153775841109187724338172674017582143987447107913361067387016054914999869077433913037428267982342229782095373456177690994301708070366081920111431458507950347774510610045617017933969630387835445040760752032652554795593225999547080621499584740847251642009058140576668171583232968966345682234772715635641634634147905857551944984350915573138304666140760249646134256558097320765228745594678064663230640270804468083727831951373701543445648845187205797286086278647559754265066340578633839763910701371920519870941576258897988324731413008805360004963898030875571749642756606243160324074043667076223646913401863177666649388083590427446177997150427025489499128081282638937505902651623301599977531416339787563128179023734138621534890341672035207319648986840017250974317285360144296898790992944654153674224530958996695291441082050308950414043288256210291158787780210701483029930547104197176723447202779227000293044488457186332589003430818659881311111718085251020250504424120058767503457585499314886754834051076542475538410974158065822525333582184459261295326435967946915273142776631712352378868510123475955761816661919306890125843433140766370187830318254092924525415043062211587500818526672615262249203348308861425785357420368833627612071052923608386001052141466345195448357710795182360125700131161669630788418838263568538758533939456625557652745296205143721637767158635743734260361168502377085467975785962551432138875343947449342561543058540524961274654059536986198692787883208213887126091366147507991426402124500632787438979445466619766321242879740423948334305509532707061358071248489597945192277730671585633335905167805483648536629305902204765488423733527842463365144246139107456440110979901728213245895414439385241513309024515295422453134609851690258895986604101318773703930023765927415807256692477276576141174858536400235699142049245024555751213606806796829634194784942318397227356133208878924468728333456887563495826687511529695693539250621857137341214410644461615897731211528632739669924162479636309569840587472643350510420712895284240376579522914885423759045283458642521873750086536698486092677619691942166020899226585731269649130649757723506788461607919911365054793403858674622665202469872459944823111608104130152184392201084166892486330540527368254969806985835775895246285066075800751434895329484371553542824741255806808491781855368165790659442166687052891948874698147418627849041164887594188744257319825760171563495767801274529847626293414349666880195821238644806392283169131151754422347610127961250966429569622517275736603373760181589238755355470204506605905800292046770283959237171637890703381603459289653808982665483422313133873811455940113300888193059105948590291938522546732982056640426085847869061583608043815596478657047375389869807352476324250428305016050677529403539228880732485009861154404602669254930179628955417266490872945533570177181491212920099268841219232307005244292658289720116899776722943089631705172657615535365633277905603680830874549521179358514908081273918327942014339559655354110685767594546775555287166641814309102887127874133199881098580321188938535100452729534874529242832936966865063364611188903108417486543971994493978995008295404657867082364844767018507396290170439764899306530180769825413400391356816920279069041246035023432513464989346373582216070133682635039578849949786572788735078675026358573724081256923921046588938105599905149745520748877420723567157337175228236144897882550437114708356201906072523777990523532174212829797035556495957100794073629239340694245989848711216784081892550846515597536037416309679492931623536623194157319833653709540117419520921899397816570480827535223591853892883341972514763283286455403565097283785398123721666075993487951491246502860194410812928185046510916946634931083815436604528193436339935459622791721195065312724159651289207003144470716804663424700629011814023364950743204022566385149202945848961038247333958020626254016820289234314517667495826651030709627786197297314522749135924854794834062610369496456978063394555501251378868280608751377510610824823489277494235327555675472927309332070992388821273273055889024700337719462425002947299994001299516037137437646012980109773337419562203928216068809574717899490618445500569672505979571492673116723809653585841283322755049881265505008731283949013209068204019655134995768284359816451861638982820904171396142244660867559396130800749471318086895585399321772962008600935281399673968547859167708008483712934388555137283947436714047454220650352725497072853445348682213573846749302970888207761980847030179903334571959281834226246090971920732842182111654234663886575043776213222398794279001948855247905192389655769578279020529915028846072823408410080942922076547294507656222480376368170388738299376744439239379167652263441497320889693569148901798307625792347010458480101692501627508531939708563277666125791372811945274362218907737835362786704781374536593680609650776926116928132851583282151145573075520819286068690879656760826201423432704816773361258319525758804694386702365247478058693848636090822055430319050990975620401225510332816515537326879916844950232914955102492975221126203372665736201638622349527150617161382245489423216498890065253332885576524493187060152912918005639139277302273125561454196622651761497263568822833074818674217456890168174822079215630902338997717212624842838134241655368956935912675923564723801264401030678519245346000986071428619748789265115047622569512726103543706677845174415859215464699221521132627319984845946266996418587814544083349393754369457825873452039959501862233879937116506696956580604063236946321501423644870435052397817850516189313791841453598797600914762739005786157025627404619613015208963105962420697252252809884565463552987145474854039783636757892311962785831192035525025295968406260030740118921057739423596093687185851124426348414160139901051883426339970694609619243976648807925930749127149424901608918603862061451430720735050150103720512823920863585595962605238524150293723145562138799486444325677525637841723259599616675708318990892901956015471961680438446959368857624239742100306393141555496535409948667797865107682576237495548251958111321971648716333685994572374155092130441472131651291531077298772432634905748172025224882326108497520141502527287267557661945550170176504566662351575505947895065972978177721805820243833834945763698833050633390369314285819731148225597856737216904260390754099225052398303551391015087935516495979734572979806110974247512137374977512749595404842576782460528781995493391734661969099970427593405250682023177914908939468407644518001890953391741432428562610834477330244155737136455188829585052176369683358252650972967916078661737820494742465688682166525493894040406933323882806193455490920737382631076169723396271505538823114910544332807335458134134172505966346285718021054243363221582422351779666162381034094337810093125121055350823318882203547182794216936307028884981690358411556783684650143963776428404084789501667931418758404697515652809940389617737804661084462476029861502593014733181779268211230212588705629645399499270868200126644522666196694677676139889074643967771754484079845654648168060785036335186445597328468744495432128122368916187700214469541589402438114113604218371557892788918902826463782614397968257219511417919333998853269278906119874594787787610908053668758575142079945585407827323095191198665838379338086022062725275391220041650700285588400370959517017335678936307946149495629636074682968402199669007136875655516181345871769373109931865612682302913654753971070878526529254684111219634949342201294144276590236778352886325405040254710447427505518511516159997406885009669013175707240309196201160549064329939785205098834111624334157115513694889066166537784747972519015148155233950575481388242441290573425082500481282432815244708369116684767554992568719051354768934359643445477530717234692733712459779936030448943025719639511720549977230959731526376439019132944563388109736958333878143231166966141130659598295406301021578393809659539633697915840718033485690463190948197276666711483484370706045500268171898989040336903176116715790650076937281410425775344341620258447717425983494245013673091692785713365723083235105952125266934302861202593183141620355534523821766416420403324842187574955513588146638584021236041618921761780963909925376441120016742619997856520047758230224494590535358057217698778376123637089329081238203743025075380410374746171387799663622545115621560660262014623043887448967118740715134944768335537025708937868844240930036461251338097302323580102149473424489657713612255459174157633756948020936987014453017499400805222945437031294406641535400320039367296234730818512988914011479477192569747815831601105277203262549335893745101742268983051768501839861698102979077655526505649497911819474088414837903357344361379793997852906791483205047151933350172416514682852837058445583674207801675058622662402632495544842908294396187851786982458799520217559418640346316874376823974512784345201150560287967207148028563953140061061192493714585472426195805346181893289724889667697592105395993665049423839099827661210073487372738144293107318313081910435448505972923811551155771626725292229536465058702798721063819151485694000416912121865062370435543109339399436475239646312759729641252857931174442003731029773659158036664263657909986633526246100049420516873479505110381242646728389342156860993755016042988488786340628451551321778592545549579689021380512673871148146630348283386259949279294506909555394595978525666135229473600029066502878981438777550961986526917444823934763256623166428475336896921892460879974301122078025274926887152250480649275528509618032772584334903319540641575155865145906754151154709838661278727926261870329200232980886002793843064782693923072714799011060229953561386662243888855385679691056957416487306721692408232507094803201121791162675989363658469898216747251639904772976910205537147624194360178834384277062001338769189110317791797792109901188735048259013786680737695955008631184000941531484088596094714534793368444769360865675412942895393081561997856070953854869542453721513157719592036197603497880175476541871703863820002633538295025373387591395873014909702509085629354712309476419954502327906391774468927974525641655231083680858459257389830543233082486168937910124965439010742407796939152202710373023782807348805574353508885069983639693347845810959072154297987637659898703177820376129440589710376669573655618323124183047034963175095433061532647932709382618921650446914397228695236603497880424782198019468625217225448478459242067816666324774477002097462060657673945055321547619404631631324319182450201585354942776177979299163859817829158842340197725291732112047178158552519562072343038214421845185024357733263384506439271746266736290364959253347346246111424059775396695337931382416946116074333299669347134307217634601690392587422151564439195918105019090874360548046334661230471484020632756146594901746554177037792440761605279498441579907058486321743367516820397734111863687430712365039037661933975277619489390696681453267139725586697671889396107782373429365565203634640908813302639247636623061415066158253350297120456499341739817791569599941431177494524139320693209938649068980941755327110150574495481029767509872084152328748324430493584827159178273659642722783882926554640012718508811394916314317889882396782799069602138209405488681082172845308521083103455175915376966133096326639262414883416831635597921362220754193260940470557369782999337690774607647915450431385059958433369202100955299185358140500019616263396293227775340914258127438455056669192661414610796791950279292109418360947562031214655846591478332393099981261300426589555064133251614151211825335707441441463625638521438982910720416103734225242451096811441394914839007898322150745031380958016162817929813292936906983978151743668121916726528936396794696308111095911011584722380383262190881548854619431117270261480378999627592184921390972941734890814773470252392211254576885177380300751231895751394213992651418240130050735447341515680722119612133767782630486690402181961548620210798764325661381416362945095865408021893226577845643829483234085835056634469232307720044088477587400544273858819466088352865657176116853613874703701512165124253794577458703743157323555330245919978829117166150067906796813983090287265675252601510347986234190057630715269074075527894710206841012557316725282531129591261432237622043708184378948799308774353500334989122709183644652829390036423775823367260044415460746225491562223614302925186559753842089468399246178980632159128591215649079686531482840103951483746534410769948838074550862867604100917619490046662490745839146804452225976152494124365548292090096386001454816610088028294575030808166210700745275123216574317975312069394820988518826465411195279055937648439633640350648079180127832720104700446157282949696045955626402643065468043346684730577437809305546881904309741690808527586230122272151555824966990699538792299850864281505529344095004413384308856487731385318991121430334328571676304276419504581281940708062555881746056097791707780326101744601405773828779785261259612993207184862543530474947900886070732122546142721992710354576698082380590074596420970479900777305743246553630621748651499412915655079495860052503943694323244161551709601852990112831943887319683783066744819075260557423610361088272713065110703227464414022225498708196338231665441701667913091133558135036470192385988442711153494293737943769370349022863420452387208019631400659279018993795181347689891766572622947096483002985990837027807196284091987859750898765321682273556274783545833579388531605918637705015614748509365706475898055662309594706723223905615822818159233657522650564076891826088127875919658683939757609702524858541405722899021667720505448649634144162407530138234058601814160531054652522254286758014396924956259182296791297294225974382625716238546530276901847764067746211565769418954002441140204688183826838605528968838107811502555408351018609107429471278951432352732568474523476767820091341298941465486754408012294159718613866298359341138984023383186507486778798319907961971652820920336739305249804478542727743184417316804976423694526787985956645847367512680446489826862693025571572910467869561416713816022315626893068329895129557614370476314219328170781126108546340356509342613748110992381459757544993610176376833220378472425200959074960769921517609870093995473295535223113865668583224180446123128781622687495904819350875272299334017545465847528401696110229658579733176519079937307952023681461698924242399872434740136441321351581552227605436755503529398082312555906815270156479784657215752912705251968344659157162592716743991825821538940112253275695615811422613570617701916542316355543996004939349371583753012259492047724341376794911317980566266882625735443204381809735878774754583695015101391720655430897512365808830814893175838930254567710636349494293992252786756884017472735593171107762548842984865038261543703180833029646945967107778784462981689745955183617831711523578892900733956006362396876815649796736639722833112015725823129902880537047460730036116730060975710536461538440368760088538634642497623424418488173210124514450310680015458119508077764358880234243898456167915435437705489650357853362249192995178140739715954095179702111603481441437565693048901529510342186567763098795386457564549094095873915516713074951587540281134898676035196997655378667053426036017122265717885832208018313056499347261568561996169364746494446207865471161102167862570223606147664265687930106723460459625897649172552000040144199838640546193152818026570618792019076298460355808523255854508137815096187535300298353020169937411739902219496773927447609969147510994619388923745924191192911647105033700535788580638753613416975351418649816812771453758023057316799573866288042723192620658823488675311836423404257220704973697226515500249626858020543620713009569447264408296603990496644964889301960451774370011771695757257082514458461934623281919995404557728755220261311900782503885707366978053775095117110823630019094228719471896123859660864180732378308831690940452765761730441200926189949124922228133295989389846123079834086691769131391050281172637718767630290827583624928832853436656794340105856413499332767761407770349020704722844223824590828917017600664670192558686304115748687835740975489615472495244998825936613762960272221967521850123992773060113633172799538663916335458197830435303500882840277936566846316903625581022016274760829429105156014963424050553747717591942204578831466633532024940161611728345268873484763020151726463895060258027903446594641671428985263571959986810561247888615064406719944708758619311499964571701793779907860829323658417333805516644010893225119357529915561522264514811367309916239920973839860211627454340476506340328628723366492278097292114941643786658769858025125673551227964902456815021858713250849140050857878799089041112797622641258171999919184483102054667411257819272693406567343345617435751099559850632649230936055570855322252113298284887870957038219186575925000148161539401633645970047988017980051628464809053147224414496682310834079580518786894186492257369703708913161828052785165080591177260140238495670293715747994859367905688070041401529488247242866439216014391424291044005817609692769036530122575119529807785501599994966049524054070448463569620129847885886456740812269793508930597887215209298399140446138591959356307981527906600835986357042788444090826285341051606674893873820710088779413906393190138440532715283702249851274089351291829737818689563013530155986421537545365362736913721462386846154677784319819307551535479645199784609808084476966264595370019086496221453148470338576561764269564566928249165327894226016773397286659276804237250819325680406466957992498999906009305434403390321068849860216490175380857458599036081383999095942666888842090691114727581999075155217633490882232021365604634687976226297621105902321118163244999190865074539114358605142337502774359921127472415989352038361707886766902007769752300355547373229828875895418078176341701036368503994619187723491694195745490418835644910551715626452711809522694851147543560712202247457684063600764166900744894894399947590386760241481124422098509661084980369340480461559606108110428143448449342587261793722658087330361693335819194261323744442908725423201183833042366663025485029637539478289467829686008134406373443406314316719039747028483608686857702067286894598198825734789838468254492858244557734592219339894101707971846303839708619205723375528105469447209962157345616381186880442224888758581247114131186891966444892004788226240839728925131956363329501789796668480489563646378596919930761750481337005872108465077661085834651557718958437184407902333766450634322197219808926207334560075898580018872431227098936097518477536485929827604696320854702928124828885169183289203892654353150930463616713766261142696302479480729811581699142531293924662617926468298055188574906622657292668343008766308941059469726573692036917002595202450749609895773843750232286296291792126559356807808878652260901489849656631420730378400647556671276966330027192750950462573578275635476663722515983436499030966951614346365125647575227227870780969229826133263665477168056255546310856373032666354383110697349989323919156581969102902190974979324636323803082741639840706735230324266519261989878174371516650997063798339899989823043236003060076547857395261690265504325404856919053903342141012812661244218213643538699555546988517180651643787432526422855055785082172200902553455423324887660599559996457438068321115772549440854472819340336581222056677348565617758753942035539344292742137917595254845648095151069719954354366455867891268124413908014592329410404508620391132339805594076812501617675401588302932832835833653452132483517014924129248365288984214044827542432003547215066946893360506457324346877745597707391428678960889641936180172058767542207866051495482547868742846975099891974844766850946776367597064944178448887405089248724813858176273086968497296900759910597830092939270999887146410573944495584142586053523782535417908038215407031195993582402952846795277587119309112041049262708550567954921360318542377486607822252454760244009889023402433495531089338701004026235490135871231585229096653712219901203300411274622247067206486819294526407477092505283566760985925351108417281422164865001892307589427545224755371845251516315204991782651956806733954188018031766488866078731149962797974452473665436916081100177632507648433401201586051081143961690319302224050700343292478295055899753145513497222925279746652436837927859444545845637188464983417356631917491484992687615684724813007719557328012667714286179261749548328318629000990548246190381999565920873373285062042775088555143669743795949958252923901541970833523204368518142929206210692706857645525555572901617263028377970849104350465626960405474375604931015100442533925165049067024507445188432501331849470843339812259544482979531753796797793415465466976806108541554656745968637709599398279706932568788488698185393876731553739200149876640400322862967695140256983153903368312857649339006224952021368123364186420410790339911554166040325113599042779081212455984434715233937678476037780692279045646967115502147094120016216146756334239428456989645752921537088125200141323682034741924135703576382783608870834090287020940020678346944427244049419263027812580828705907491645989721399714502684867543223088826628291900933853485708752574021891324662959064693021276450495241661594092466642778504790094955296815108018588313015793634172835974629402707170615312163140257622381999236672706296156332346736590765534756379822717442192074706712707885293903541556322994116150652670463628188020356102215051626325306620473673480935586876314817772380644606033849892735215760819909228906704531978285760307875869439153500296254318752537569033543462374388171784989066598218991073286737053758456622628916696979249678904005594260581083163542787098421378619554952317895728683719256822689567831140120196328981460338660047220013468040104014567421302815222695250524990794639600915012521938746415466500765831462938788276295276045318113920697162462130554413118960664005760342060123924560864264398950994155242659187563768022659409133094307111655462735078202199270592862550564225858098823730693729077041105772049138261887561648003480356930144264308428279841710882009969343620440323516687436701820949328646119027598335706976655913603187372358745933998595607870878780873438562995510899686174610068158611533111569342531630674158548201785365427397107793135179201082522013604020388486917628515797286303328454575690829085307429028624351571685692108100121417685163297881295403141998678143951726400746949930120411365341687724840006087757884725425994911757754764653703380634891643722836363807293336111489112350644886116507351629726499796825284776366708620429818549113938896510523420365559255757123405756902961730191802469339441367583057315923425979719984262496687060790610209562507107803647048603889627557812615386619080290417990885198969519339003329681880855155451623561341345848989827717436147804715230604873555447489797328038433306073469540895357329810250286239272760198779017482560990189769247275741483286247260470328128035493738030700764793676043315700011399678508648713210663291707326112261410631516061848241969919859619051376088146936576294228616666782249610600561586011091145282330889910191516717634508781056647666714847960266581496350598532122617338804065751913300035838655993730257959404309802424498893833017405909261651441619587954810836600576239081771957241392135485562327557959017392875726428356494999390272915248933143075489860627114362143818536793109609077752802339706258042192217589222689932190729330739876740432364035573214859012689077140178259138606489105678993917004972209121543335067383362775861425894874503453117860983595553654450183588307829764734193270130957163457959804667926791819968354758738814925348760284723697217791334445945341682050705599425369789425122053886784096384899462818326368416938061715464860364791756279958624314877787926789224050086618880738209888603402464401589119562480781801052906439368486474518056599215097903907801601806171150388859545740298887655852814238502856084569289717433114048140228357316206620519732774543860722927020719799316638267193001726971464772603400547369577081914883898621642942960018254287195680123305841444049965975215708835881502215970882829940354834255667924633748787346048511710054810659365428723631488673648533081934608979826702981703497913708455956526277617923783767950353377986218048046729499768232804372579646453872148247953672796788673758428974701888689611086005353593144010667340105619304595183352180367348592380025086324451324514565434860571964045573824845961520942164106483189571892319723117881065594671800445326886262014032392724950975204114082786125380566429012541586024257451566756820758119283691372463723710993520913263488505246652777571937681358611148108425952340663365358927996658932332687854977195667166160983355557059681576356773484648932944283655614977705178617451005454655265597696977975801178856811951818987976023672852645339312305129432736394304277257681875381015569501983262202433707874932600733052391499714620407256788932535716923213988215586776603877653237674558651327891693399487474919233469214120448505907488335708748008813092548841161532084698592128699217718096347457701336677889511041752337578797636403887585612382378897125228535001786180543887164590782358195715566102623381029035705560279527621613302314462696293409943345748647592213874786111861215741120495005305131651269778179040724967808290669200439537960638690449830336321384428410216931123004197538818348033248058257130107007265027212662549491830968899746748469827202353011691045372766687605870891213034684459131438247866333167868083233372756855485799054733860730693284019083350449184518450812307798370438380660940493530252049769144793885999825563162599598780106712751298648961233066697079616085406819639875325706324654092293639442030314820374117797491419342475517834621999629860151033791765515420486622292513460004451962299626239836352647702345652550082486171475535735579622986117067944119920343887210509350378590824276096172406296404118597369038489266015435262792680437934063312060236706203918556025761753484562926977690843584431389658170652812951863618318659538915221711465411818301601188848717766248074297156517847061248638929297910848972146705018644990932840970266114711827208463403004619398348465107549772281224144807861513593287952483160129736980699025149366144954923571609446089742117264202358365217137001937020230265048905860689962342544603188179919928910214512448063882812825038298778011498969583287690352245954230223640121348521628415324671310756161082036780672884965471100812498644868285163594734510768473449981232571911502276035533089574928691093486286320051998020442734813332957023059543697246674354952811996020683570886331670842320106026655559723784164670888616263150099397073206826742935075054748075042558934088954871728451961240625828104066018823757801312535729956002301197699187361376469863830113107099602780141400955492764490177611643053985391335870554390541468039757538606946663153177217956996651577052887694904902346946922957243527194051832784190492171882696410727732244729054501856702741834780107060635274782755234755359019629779850807187491378848061346455598534627324854951946904228999580801628809254254625010335757092686663694023860258435514646307563602150026544813783560119046098935931550049801291983939313033363713373900007995656348984753318193029993766995615856170639234639924598194689454447796355747028163198489044296942779758357419517428621003021265824346125707072158699120702514242633384173938615774857419042359547852224071286556457043056576693960553536687469385250760728336218407860414032711119470177796220120214106003658898694431133889970434093879970506302019535430498296517649929753397761111795630427616467843636933452402926627341105880867756752523215128753340840901082636029480167504867588157464695319451610840579426101742945072800667518045997550971399146397909728946050601932798819311474838035074226288547433399565151733286838652012526633844859100157577467847472787740161823108015718784754702311844499940625658534489839113850360401854665018929159122901363881240156441409383689833591176480036821775975176234196329272787523225341636333722099537951895536550526648548726853342052675888715697305446746076431389258794312904226051044395399362511827106699936829053482849097041369595128988258629204332436050774239582350972134838609856579641856193479276987103215877415683547386392692466063457942275518203357002964607488071218111248614421355196316270148722144452472965643972232468040423155532763853813209594718134588949173084565453062319336781737843545432478118194483489048283586535684286109245451036359680063484462170478918584725309665681814255298952373545998132326603345221677794433769515462143965005803189793169637750351533920063038066377603889886523286970935450262522418094044179619898577036575567885229953060795742161189409161345861376534318994603615673449244599477384446284282475785947493977580152143395572330626173301902878169496548624532174126115778350081465406213124197805710984428401977737689322669168093829883412757967208993248596555983761150601639577847306110908905126800992682348229883943887485282962501573088503729798977614085669908929501906569107539648524722265119814488619590224501628961213865604634521721855526486142346113747289312297769995342310954396406213418861843181067063137876988589414079062049473998593895862645400330356002806910786285405158962677617279159019295018505290397958113235582935354745032525332402254723823225244424149543679161691371807025351031043269897761459824931177569082934806481268344179211607294788203204746968046546098745166943922731303094552679285957307615165225348161033780203123885300752616042207503852308431300975153711588350757523585082900572442338879283648730608533550557200488928833760881346076513054456228901020084168492398561360497459026587716702901825835738355480209212328829672961991542851297780328321883129791374507952074924741922672455857270629453357553363912851281554818052610811482163773081924560471935805717573005054329413354473297520378198122580725429653171954897620544316080102171097759161958646067918152050855040944520620064155433182666540593243441268150199065305739663752857455881666978143155903495007432265067706549842160115638445960973135360095800449428380376676443497480664620244919085291588530393308326759792388340791915424068001434585401379466084614354328531608147017601177490889013311387788471558823950123739172254587255828688802239541708408053142001035727328479756933579708246135267443601448717205825441192951658608863995759033846214830268537259496424362448228500317885986325516765140573452778616732442076134193521613587123049361560660530411501862488940460815065900499367079771030548760940241116542564076328896359639664375854803880527000961952649579024795549272399405619116266351170471624515029735651865815587759479890698059570905630325905139522745984656492183012816905665217221761038605815380994706552199404297900717974189760700571994621473307728778208597252966095538553601065755629577460179938786376473761941114425864881351205432491943226936452730973720339274132650636663204767431009049564131600151887724792547991710956767996701484545272500805703083127457336111855460076904788531018641313209787105620857132119651169804464146712913556147177973062132066371783893454953308790263368952190051956147103606537720956278316874155966671136351347911177516168753457401109198210268804320724133894668993918192764691575421828686343948186831055870509483581527254553537550995537351975933746325362667564016686068500844400054068207498520557495987458771664685962552379276370597413180574171794279207481102625689779275087839070216479339028065970009794634880305431546870281812011040250195087384873970748985681663595761499447890328991759664678603301901324446984863896451111164109511301987173497494095705197608150321158706892083010985321359952774520515729632290024276362181808591335407046243790719929107832363823329576265530023510320366312766789854601558711401048469785632434297028522226373966616162294345061331030532830955019693471228246162592413985674635697996429832675215940915223836835930895367128358827390108949628727101809226557858316795845664432712127492695579446833035308295219425100619859071417273383804932832112946600158001183476917337308615084035189204032045812579779043755862559126027289843410136504904948262788808829504666867573478986179545291613792509988493557612115087613944407267117772039876172311998956082645639129176742104410483779861608261027182583588190071789709047961151151055078290261684272359077144496212752939284504098428196143599958201037358770028637085327681493935397474747957375718939490239086279412159772787713552810746699093016548752354688416246329211588974194379813314673693206502193638979784729813331394902773483596779006183894217940351203128238202823300157999441493993618789502143155827947794578476756334879548499116101760353332939422010025401569373666693930311934579403618266558250021929528573693451087973934657308398770392679073678935166214584382322318228197431989547116664985709841299668727111696622823215359911552655013850506131800159662304851966814061251258632359924886988849730215621901178087671187149090492452078999353639010132407223276725083514970636574685062967870760482848931941156270737423734996842583679566711659578980862512229288086606718397899217923501044835262282671416415962072334007170968193307246047852438051206240688883798690061373766307632796622103247407014978129647265131995363719442378050477090421644936940574328609192459594981800094964264098988696744732167582678118500094205799636392464738806633535324466634407843931372704773623934354813485640046104248189541532251132639619340982249236003929954372418371625882445805287420388829873497506065125481685670557906964727309398933184229129537864867882508303225947068462472099941530100057729161133903479103374696743110168032885744353072401289035455913004026043009106741110620515544801109663665729220600639593131583697930753002927273492275096835991818395931755385180843470687584835793808581326359640309048340392603380667124799762746375850382717787767162086129023222509357828400112731316648506147921116226382516850596648146847193554099853038989268980296629040566025115388620629026664780677276922399468088254957221257175623522912026797170443727663661355365301926953799342147189562584218486086192318925262433888913256369763823416187662808199165147402722446593945110494279006059289694729266863196958976016569859366760779132888318132072053341404338091881248391574732188170998375052080552118902752877442984359338900710543845546286708193896675303264447048408517952383982289615148262254746899094589136261878603522848917148641994873672433265028542153777105589696902563926497866222607150651780478416088118541823423633727355250342321984719283128874814080629061514726853439900593819633882326790942430731700210495428184268443114266008539029119456835005305902940217809388391899382255444865427010783499663622645228610562991686833394055115185009297571236192781497309412488528274360174750154100868267014126374559324820726386613052312760711207249730575332358671892643115354005117926312612321817625084982313294850636199175046332774493363095849383530660956494507516194009384863758365004519617158695357971797952732624254065790694201587663933738493987291683685292972515373675008082456932846818945345645605423984726487015781352878144926864725399667226458933852074271012240437170865235396820038648633972370237014624359767572750965019484912679238599575106103913582225952310468942569246341927422933018445433989750075928289508830829551092712545368339398617550135756272908892364806010420888762241433373929388550296181757358033568791943776184205002687969733008298366041178373334929966180195325514270386332453613382022488626566233786654977876821902606734100015551076753183451993184804773974534346102496091291599245392079115065404859410114008299732525237946822163454919972635088533436059345320932783494096760589501597083148031207582036235313534401150623211535941648926072814425100604890521732294034463984105305465403213650697615850411217922075238955831020319335238421369772919783599046792122988714743167992511598731283874665676880840034527294765095992975924623028428611518244287541950106141441479346226555130335672063743359805500022570999781015057649190608998406272656013460281441986422061081924337316783244611963382667353322663244427024268507194757403647078645145238774368219155970291069611516213566041388501516752777798862790578158488261752256393987064242716293596109293531200461039542643143278960153410968036602644230891634724183282759435797609968519618531818569647772397241113475769329492360638913443272519448496406682146167989269942169396234494000074506209713840353146824960453680843146443813433170549746723076865214718553978477990823752390914495626597766989601073374080724235941663001570817101774035529068681331253685091686642956707090166266504341588638890537287157458534514420309914651619921670995658193510851191421256605244646812014109822078432938243465888074504357999765908896036721941643634168263523402068814390377899939603418238068329579428389381600284430549604820990673974905202487970819502791171686991005229332605312474013211277966423053063785200415608183574498314423572090030748165963465717600421315666416293030099502454372274786849685396372504062027399311861658517060863283835549534998594617204698783694984073048126080723019457523986738624259645792617810251403335255253852589370203981456512548884627793787110335444126647278601096838859795188465806511050667147279592934249290691432770158544145373879260917374993887378487276996797900913489821793429594010454281460092298064363670452976458438101790293696162773299413282299044997881003474209411778918203415098079694842580584961052727004409670306347955031482726516309489682988065329424825393649259970951269283013141786800134332531090160641223644393582591320434373599532360187711322300564723244427983386332575360010254469793564610513089840464021556656085562925254338646179835855990135353981246422647188205448893509620171748644188807527245010114618626299459406588481827596545439864770443290398036824793189490999980891965042507162041022892892958460814659679661357502346863992951952697790164805284468760695159437052733732471278241893723282895219611585393207993618566425372209737501122649458682783101141828193531202280862292667529755576749421118211755401752744547052404982292730321454315736784660171868099251761069295268699941102681863399269698894853445839796455604576977255034594281461116756421298799040860720956585814898409997721613537911878160010401401758404063447026018877922767157771387362203208236522339124120745194035615902871243963131067787995992734081788451110557780770846404372165672591391847646837627018419370117814025727216358490179415966312796652580658553870039325675334805401797201235629324595087793888601664687726678381689581222845480202563240283950534245194341499162892352922170234156088660603350175630715884074313399606752427317001391372432632980021636133035467639852160100367096855861203652794047582898626699739211715682144871198957204348016604057402729465614963998152345910008010002869668343771151744920217510512223135112292954305275871223621237525695751580237796992893050376202431435651141057575433393710232477037549757568285556241817082402073446848446823426130542940314133157137728216151790863473908806377699356179164599420010271385015878991561502983608104177487116186082868757015692832903232088848676598019064888950845091299655193641028404116663684772454565397746593443080880093842711833080349532439859778394226070582597587398396991282342727876514096878222635917932838988924671382398719044041972116627404706830251710913149713007077740404483141823686887182164325652764756028117847967821432217094468454302461800545898350660900694185982105654124323154571386033400507994907966218525167958376305076009045822550420974407953055998426622004066556354853800359126498627431027144152150741244060576052874562977605163795039538027336609550605132712720162329228488167353107659409129849463420081547046013755880412777678192123527456641005774209085642060641485448457934101678893502849874539731952963354660190410006708388341975523439528863948033298996139603684281247881782294870192897221411834754339453610387342108206494931681735424411110132118625631350061334533036732348677519540324080915873305539912050011883262539272166131949832814246575235092223356857602855299775153493990378225813726213179512548432139593807714290392923297815991332867303863472300824692961831777281585260448249281992819932185430369265589703901217037526878174061466249404423512752335158880590091353030276678600362977396987440167267882445601830614063778711219837202731833325843347127114189841925660952182565384759046305225283007057632716817871311552365163259668012323361097221966947040036225770348171099768423731111131479968722935254220308390918760321995220094856191367413474598721962379708332986848246392426718019209379960832714178397764074576125386597206030563731381937070564062406810148255388520673165620425665474700535396512130869379471826200233543039795253854232770359451873579911725176840307390415769713669810223079376978494322389765641834152284704211711696671488173310671968222441363038308551795531207171899339972713356133873038345083332947696596409547798320392961049916681004402124141555270689752360078372565277906709655230818925830318605353943850293588885863020022840960371888546725062721440957081451884216407801012098943830567907195061881207482598687207695157836296692656734349719147486819785542220487532255859138507919891896118709788881714980537175053682172437347217891918909726006112992927201891969396472358603024425388084738314630659537841107748279349320144640430636317522690056412191333995536587026784009088672749817010289117737141345838551467851541378510739272138084811152080920007572729861064152951872360401343732840224485768939428102217300384832641039269533650723864682290302685352107788277565952439185357584233770003881406758999347406503850255086010330519326412281570772084502888310994783327825293003469070263565738235255767784422471747806168360011526489321209874949871120298131843112344663431793118276282435382270407052139781407486417150091426630736741176716173774073135911986211006139744293909548739464240549811927514440888804941883599498997319284116306358757153300935941564810471963598809418747532239779127806589611963521421522218612281303427855434654881668332383592696212780682735799496055927697423953241769390622831683780085599956465333097024193099329152958426799909046201110425414356451085972171061185519692201687419712948516539426123764522844003784303499527519540173658668144452778808562632359449298785573915160336943567731774197694463229023115121633295104402052386065388817407703363922720654129330293991651893435421801232340352680920423964765853033777946356440525228527739330309618495016503742922118254602211108625372572431037795158560178439187676654897535141556390481878698342359650621909018941147754278433614617033184821167160732514646037087020818686921372558485030755308622410439921629625235484632977342929332747393673211111275314680195904221037228324807921255894873539506118758394930717877963221234674692162051747610248837876634580581514696799447489391461929083935395356909668274976612366945842341686126867387085826725930745179184799477949247844899989344277390136202193338891459574288662535704538612775350304196311326199462659372445926940695047006792625374596541300834192172694798186372890695687724083363844853719208938025087898600769422293555923590723271923944099695132796849093298231984660642566726199140632839062938444258726752169856546433775901325742262170516438284089690639670773389724334515728004172333929094995812861667858825905349463608340133499629701352533295017008951922283604751298444683933119611660993857530039893585437076789414840972206739769035103681622625693638128128596326212926759647574987646447768759847528953420898742893158267547158734978819301481848677714162157188827025059974854369057521383302399174708242986084942844088807250690353405096307614568531621508839636312727820067273809276993659532331089261528110876813257997641352228450866586572923683832866008876293471296294572966288682511420900967135530999086665529970196955607237660293743334263249772910294941749312389698586030876551928334682440563253916451610652297131892443239277502431740390396995402720612959926536555944162311801986176248538350244727760891121039462607842551064570501372687722324900984611297963111130678610147329523020484447670654477042562701675227981360862431701664825228529485820962466959363827896024669978413299056670131058600170266795256899180883720035381087617079471280804246073016723248333291828656106929721948734909572835505038845654701284295952108774956989416669569246543996174056364071529831637445692785080398894130708924057230510521750628918619541940712322523986440741742837950411044159483793626338419287684899597534414388827798368365467867547066282528452606193399481694580696347127439327503268664882438799175232071126860716805469821598029769771104848762278917444636932741068434715845956162719854116589790452121583407204157283044114235641526488862115385065294509519516267694559423793813731380914051809828967126626910990827501060924126416497921433204261605899052169403609603584910479657960622876186137182391561599827005430565103159283854343231767833018692843915068110081461090749764280589369844974102968437532116089572759457389478222755690538188054722734899947261826016215136097525630288292378243262068400740532027368539553854601818741329698557928416856510952773909486690137305501835201352471721831464759440536741741476805246469447006635831056137153777700721252562638814942614535986281173068226912193901488604053443476568531462917730392318994201779052051228491877857089899525903985948271087906062080308484828505267356277951165337258500145972770555570243850723930570377610005372561942050822386808060358531844692997592553328625422891397966876302014192311694049440424302740013455707277209262618246487897779138914958911023100813292029122197981677079395380833747992435045703463358897794856562350508387059715429373780265758276483359649252509889491583481009030430028028171322556191215126740062490829173405297846342808907871367422912401260193422304385090513183287654703779526713497058474720624046921110921135447846486739678055268388489203319227756537974858957464918733262925373955115719999167344004955519462920957181109841083631551725705582140941166796567240674968424569052685269968019035351331468325991557330556121190504303164940674376821759687770462523962242550486851451876114431527310162654428209844593240257420374495718925262192664277104181573150025911758367401939766054581153293547998312976218910397308531737714579560269484393742463054795026476813494522136596702773077820153124895812208158730847914374034887308482250045887159995353140988521647580773521824078838065781020122058464346797167608272322543006744287054508035964314365919673107439423935502534300794788190010122896282340851595760173868224529020671108371658568173143433307733116666257846147038891004818604934653434733571164143405670781719872996114076699077381085464273995434629204670289992007461882890113787956528808408592722389531662539094007260913604236694948462392032021400298192108855611695934897264837348618370888062715999537984629040948131820571524287360394441439100728343824832696191373811407751466155278606101847355205357229366340464981515247785932620562296092258203552970616533706930428343373635914497602686454291542686414619396309243429336344656224766054302165273414394679557372948252927266692762563474036600963035826788768583515977797631604254655001682516536653704662620201563681297361650699840799954783526537677662217807745512444657290392907994409219585962856201372066760581848462903528294619356339003276884622235657269099558473127519275283584110211808701630014100252034439568814014513573130023948071374622208174484834591225392204576919237510871055018418468544011191728213106028623135891277373743590431651380439735551707352059382122828938288674659301737481603099109694800384154995546191471358586741596926892993459660827052461237999015216804519170589659148513650450786822134284161019624652147236872549656479111108571286762395192192049096706948620249356753016340984114005079672307886213565170551596812564443170041634743468923814005169695843918326986702499663307161912060328179407743182586525255378926834779685972801471293843426212689859528503523398223269377495206138205019922160826286229082511607219484441534585328314453509334864795265507011390121206236422909277950691370188678305788868771668734292155721845602259785107046935753290432420705590760946269717212257717928876391548428607351662508972962011405654145380400708631234628538317251304311747847656558929170330507343809766814837733912597189823946412464957568190712059273093849473137649455278107607795572258178372938140100006895022573346786488363436703624269864984412560138912838581155067000708297528738235069961041377293015653830042855034896747930078959270950677307334954887686468133082864346869960044994511606913249301287287335861447676724801491306475655582715291012323752950294382551600228645757906063557668424760890845969102023165016038349107001903701261161393738123645878098494996149806292484912104919026523080620932913762410766872770318650293069088721652034055377659797053957481629158601976953503864400877606309281689466612754686365981872060618814749458405638933272370129991861123938308795933981449091242691202231993858794770953048697448906229254642594313003299367921524042916879223113546393381588334897364823246583974280954776213002098207703555561759421772599051752913658557850759935242247385371483696050858614307952219145094993847128465629077539290810227253169857112892568299092305182831895709581092925444088130889192872263493811105046824850724201403004024025299230555023774039975206751721257694992017323512234808778407610665906404066055020210745971902102165848760101440325019493415054889175418837392711624569848616267867122245831871451284387130946237909698783718448113329700797556963598317536937491867775464048335862138529325095589002860706327015203389070113245579982418869929449491662294440573901749889326439541016673201008437450813951854431431038785254916968731301888424571531685098773588827806270916231321450395566069053079529353072756889409388981525727024214485569965827038459390878949891463052334124823843269166026060065456561074552232786797322338243066169171911440349036447481595464855000805976599058709113234021593552835337835369567737543180326265607383533065413790054677929905713056804946798198714011510245362194731186936966785008311879273369527347231711017793975565408933996779382745461126168808899054295319546481892805097036123608801859246525458325754106438261535331381554527987818404671105460331859095009789483820448510329443321047314440710724412995492589634887380664681081062659066591800091869689104322267349736096304587754065467212230759652309021810537550815481377703472838371145399210165587517645062821757544128323978550140626314097990384556041824996736456244692372352677256309376283643583627505711372037458240182447517538118200877278823176554736995973904640786221383741275410325855328360221387921049142991914898161601713041142600819667919129205345177041546514340122655242985036107060924483413523959283600239012852799488140115247780672947471861632477208037091687962727859594798412298313358654020623810474458971814760436690310437802410261429608747961504218360615914335073440724802583842808230635991470884041965849142762569347962913071849788362432209437653648920421973804074333011961018586479605199030147409613488916391552914941844005657630058165041274535534531588246980025575248853825764495911122880455649851343012945694909021047929021192279398108357091429992723964977984694928354622728018338430594321296049759778760403083650608186186569498294392617975281684920063471528399085517982794701327959832024901533729787239359540162395582061671142012867403926432920132476655683037618285461577972182189452904134710081556762691241170715225479765181657338387233371280693478856294310174056807163547657049803326762981658304957917998287440977217880342803853376396332098433001848578428002254938344482894582862545873060072909709871080763889192158790751869966823774131128287134742458131522126151111543851390535465870135460064632495691235380601848269129265961894933446897755817500755036183724646567916589896471837317958854131416260080988078876150516853279890193664349954776823007950517592057012381089321718389752826071683264632676194758592002433897514774532802402681661375570197630443327558877192423986662785104904406290711412276014117267993389891112490875939207313543318504752366814414201631531921822967004433321171999143301266192358453710643935229819658202167559207705235244527882528492624237176312551446681713601109284213676027378134363700506179876488344172828833116113210428939637394803987449159359845556591178517585597386534781432500695573053034153545857669746321325492798402408173556540635541414482901198165294128344469906619137996203586339523566533946083873404812107985278649535003493966257569963425114576270843818554311806270737863469746016345866491602314926317752782405313553188960830069448883082371010379545770773723785536019155236598365214963920614515184318949835109596900798732044343922114709383218488449696089355184693476063271674645074533994834682658049675093284444786023207206771729578280684693625863882127368488277311976621481310152238142379316224706392646817509037704419948279622605302587751395452140835255372723397501037566177566676180918495320012760912463951567522415989546412963173360152393764697454969007910370075209177823116938630326013631185206935187253043183000130579493203470234546929961765663570236075333102641764005619952306732092053830465463496042613704934624377843620786631617932095538595015912640095806206685831526152576707978251798791404734372286317016519169142316171573584334259314894184203103670260351002662912523373203632006912395024400892665874421455534322225623535443829209724568381130878188402661152342622823657005329299059585280846004521769301647352581149620005924854320057963607967029640145606011629984375393587366210746456156328402424221479413933656286092783515681114761914002169299120068048424446975200764271630919340899904272554958887514667039389215398372387150489088033155701597092521565368169964480033262576572173873748025542824569415613031319780523607173085149689811235159034183865251010410855353530582312217994597840454960856668056276936860558352414251467957624280178778776891947310998717485771637955645547704156620364515400054403590053805832297114442121588944991415386518989901624017774662426934742462966570926983637310976007984723548131467579278128119201541870421300671434136853446352073822340177819733216684480868793393847691034106872081093419615617388354687454218332435360184783841363536103033160642047391434180587437466555101824700648839475376915944705658969977519234822613296408417397433018096344134911960522121312359393700480093645702727571756010445252880726596198647300507625288859142150727900340847995275915431306528383605932904736767694656753154489026115912442986017300026002312095729171123527158507798155627245428016255695488180145589588139782465672816814215620012691201390272021552114332452206841921012227491202860662225933823611252143284027950593095120591905529572446476581969723694073605488970931949393816663282462217643326805117435097474592989648954955689560260692256186423931788601669852074509777494317649513163160666533164993679063264599402314437275143598019764600075065344659031421457878863150668879513220086501326756499142227426162292958351827314721590121755918213387372757122704482982818285970465299342816499464717717276501226540825324545741859577740894712279304857288302415375015109274501479511549382554250895988225593782179920483055117694228971905345239292974924309181674906405182904255445099418794823533529165682068071685159405404235336645602662354766266722399053920428899739064387736720263629748153798258451693660618515479995376582395398290568922659559313221647159624581914692312906695162688673361635756622000502455272717511665731357009042904370971527142138035389959656893114113033132975251459324447104716853506077947582594862918816138155246920300528005194339574752584688312015907228014127597738883347986452804099366370902763847068970800108834863691348535696484489130449668452076378213082683345641072887414509888249894898767506060224065636453495047060099451515867152704492717205358762243806103937614413461946794540628990146600035046130613081247532582781961549725402583440809572859482683286289594466067268119321933424518783371676144704131305021902025810106224554581790249987221235463046275844725778711705612622548177579258920288968063266130154424093426960389820870810442416432874347110157579793755720742557118099494770202971546457806496292079211116032243507501795894522943668684512846789744406880314338158911478190677241891850254322571315275742909571422605351723287089038558106530284282247813043244471738090068754063723842646054689488632375619685280798847213640432751942560486322273011250422548641494090861288002789695341101782509078289948713590070400543368658318256504124684543765986235129032526941392651549033520580781070427125437921835171945716220044978937213097748323451103960112197466262311694937961011123353081178123327229947139594723741198065768007703453901903295278351758062584500976644759599061930027457297172498843945989429273321739552035065190135738177396337613120035477720219466374656349153661759141908700734130619404420904094856519114638809413820518748094837508576695344033512093196347324953067992997064815758236084801163159541938943676100690574872576714017727880712156604910192618839250183011702965746536712278721662944840704809460344605355486441162571859601003929081112062304590683572380248461244008857893138395860395976308556424943660567849549316489673749013579271220540477221067883223197575263678819657132549917737983769660617950529799661631044001322079027388192236448191186835656948138769838606093077392705797852890403518364157480971672299994702379378272508801069345530518959829201232824472449392789613557695516917705011325013135084521905419600421809214158792169640707780066078759419714028760318381590502093793740248073539778752262687899693910038478805347335216798045938037060443106886569074928505702031776853641110639195028388658539717888147910612678267002046968132634082580102771993193218787221056754502144155187254047159173165681811961537060615442540529406326496873063000481997017259171696059461748425262762385245155801885221414909146349195680875606581950709548700010318912177962537556207466848821421330050917597263311000933659232068914184131399890367307958918440680286787536451999318469335665908396934656166348783192375125296771742601036542667737434826033627056010652313027838247202213540903532865333227221922080386685430372333560549360285381753998384724476867700738577058207711915537219736446407952052929779892436732335481566925149261992460152798585401773341022598454464392332525150370179399908068040725554082393925453972495894853981774338570312351141428393243993743529070229704500226994252654747951928735143603140804916902088275178518953207253025143721122560415427040682195151307697882461387430004201158656809450716487114042135126308121296531203675147610674222326245503292763828328661396512443195349052649197930376411580505942952291948103630870042569722834399503986680244699361590626437447649586978319470672069212494917623158467724152742082286673549567156464334274882809561685297877738878591229868671193240963844766722072628114097149115551259688210059052349971519371268276797458715633833363232014889097709147489679739034328291443684456355553901180918641176335646906115551712800920636722546131949475779147458790473094219761328814181101621306500367660313151451852500449975879380584292259789420468888185617135419174648975831856041816404381918505290338175064420316349476783386160411629779727267435167143378268920375217762694721584800828763693156636015149366681331221965043141894996737626344612033693761089032160775168317887432556142612097210062793712808535112751369604954981026152818676460508360157747218234573152860931417649976147136971217620481723963889118480432203622592062238113524405060181153646137945454662218929854970626787780833610368407927442869224710483067422126837482464991718628174550086700018440641352855237401354615287267603398651504615891253587559933794760261372844964358761317437935492196722323035704165334857249815806417865879607737939580573974605929156243893324432424589533946104601631573946483247235666709025197462476643029089189196967375308073572431763871765870842791880467605553456545342024377492744935566903937864935650306695329706572687825350156231418716606717641075928586696121103668803110445117423163855103753142113011252630769840938434359579434220443910491457463833358925644540547185314327900200255469951115231997470824784713357953439560226030403815444521193132024242152534497289003040230778385231266232897405113985804890747230375852281172810892657497082372125499796444448931857121459021573217497847554272744054894871424477174472277310209431277123451776034128448395330198381433699892799806468281458252703485566869773799829214296617391891818794897250759907103643090689985697651702417017647928661461415379433270238260947948622882850561716608032566540362400171263327945994965075892588227323597863135529412897233931101997746460823564985869206956630530276276268076257466496111645610535714961732542978652362376360188515529906458959491724273047201924694832727640070857421947412676405368451040139945487582824279082132807830578504054420267111814052532178800281847149638844878536407408844269913448788709852735407839887153796540706564789017967732341490719934267562294214709274792240941982032492534616762098501517483626042591477514383734003788285807607302358205507680391111361547453915289930821955755686936557308302537626227424141995382227933267945654743634975203137730469262252779055076063462947162225353109113071580709149549620491053635206584662086283571434056197911461298856028025882378242561172118606240857202834261901956041123856440568021686691589424477509746704178571257637662732055718907846538865570822010007288817328208991494422615726187420297566320139664523247897384989016244815178875375029067740180593359252653918251813138754797933658760770849126670660948405549645130196192117475400311158416332613718058908193591681944979788300619709728533961477491834238995623310437709931260353221441701239722226068887190845660512732034058301436024458223213647961866471292285996685940637227930297208218680706656100776680493018080768898258042739304484346977167517894090901204114527547613721849532966125819620460017227703645953020764156122468768688467234709843706357340534026073380693271238809442142297123156634528437587329238473657712786074791670425460510970905255917127329127275456242754888751710287279917132073721901713960856541756896082023583381516484953744467901719706216934592571698620245588207371987337817940285550953430322393408879896678428643151217744667447499410650924525651173665856394387592244656133836508670992893913129855800034291879091336649258110407984424409603177000297292719489931498992184756466748909624887365693675535094405616929540821287018402283000694148891256323299549839038309895484256165016864590118053368943370006159287836025019412619873027120601736258782144960639252066813707925540193889402119934525867773715024038304150070274869039427749769747297733940755280925778375491335558502541013338534180082364111486527949932531138573771528088386065619532805292868337899513807388163566542812236966612047387657417289814396893007137642762458797878193387589029863346583344805558337533695001890303628804940705552910083416014825963034759854707232825144552419863948571517435239629337781186966988788407889833695161417915693088209459012685803698717996187637276424703289369162439527716155594043712223092018728486751025152042351135889757913411436947194458278584709414382522402142736982513954415159281363582134520898612563370702475494096195971605167827878866266980063350152950884466126668513051738743147238216219319349420365372919771391715802637820419986984040493131536233692647681741351015333145641314866440633842169939760962526841554627540699574192033341133232291170398502142251921224791124707835473117587075910697583762955998088996379088902598367617434014723539593601218117386686456898573736175013661848959504499211848309603516479060694299661858053256790071692568879124070810619894098340852523882434472580157740184461123397600175718660405232135261363600183438988310052279625115214379164351096618105918330533371177474245150817074291912648186104072149408035187747465195108345975102403625386706868850807419888492245600981204001436182196250983582854621206501138716713432866899448630046879706258224393684463182899130848815209242791549057054245418963285818139672372342580144928266257570477630335251382563502294639216538116692047520274556684831577685756245012907013631653791547631556700479047908504303686336859239986942863255790541456429676564590034743512519450053494878581763791942226802035772559072423803847728424633140756811652228219760074222221286398941750237634106616629174059623707828470844175274050421829722845990436473994075531510911959328525624627703998175577690981152810556920671243677859174147423524906232792898169594294124237166569778415522217025386404761512958803942041716341974521477495898776257388237304274341252256702165641371714172999102808907942490609291206163658684360651386901948569464838987709542629559697497756922783202022296241964634149532287937737527831110094122959414131698419054782368788952829705741646015775381814864120207282593059634230557042469959602353905377676119841647162196533410028396367228492973302706560100339934665677884769634765599606906881569977787793640910472366218197652416702791554569192439905528898939793481186125039680567296028894347653081687212373131339602378530667955713590059479149736283423395147234895316029411675182110430620492126480461639237375663847470223298546711945668481781523923011517240215645064722606541794460685016863628658578316927085325488376533690665495386680316910295756249626949342315540430864590039893424422479583141472984379262226641813262290477235589800449454984194472271514925411759578998325070541886296286360593587989958939660439094932836702128722959544271463281129551026083188889049209857628172076468591682767668521858705019103825938523555328538194491201182199041998499370076241972973318282719275863642998755920390145377776929890063461438172465633122525937526878600959901146814761883567378805436131549428804416642171255960967503821879319492672144204202400284579569374107661756917712946904794133356262342933761485147385643066354510776938481916356165728396999933933803080486053087003644605080495484829431344001270836823751827432767563247472606033094754772309962156581119749058364848640131934789913903268012298019549031605781878376206053049484735074152674328179873517293787996975823504607650810013572256148070071366751014349202389591470174175198996668946259825151493800604118139913517487321193687018568079590839558288934067840058688481638625790513955954746105716713697252126136532823319713119310723326256196877053381769128653055107561224948519980723695862635328496839750027660788859236952273512353814418033246753317686479316064129785027269078850127751271044482521403629930386111255064885614663715080839897154674675654169205619786653992554458755256576874979917175884776234750583601168951499972648469557309500476124180344093685036024676298125495824106901763827101282882517853005893904481757758029105290970689223933642483669548476564155164950070834787689973264653375644181181934159151102180912658768398855688608003811972317914478177307991742271946153880458113563232894672963615784055813746761794402439768763012509833313750823982270046661720368152212882067393604714015006856456813328003632793796242997736050438774817407549432411101341140372717036849703727847970264937306273323719441182826015213866983937236131006183157386562858997360978152961355605593263950480448807940235328637660523263500593832181462082480734485202887594655662755361315454436430066775294919065414283598972350856090935833138903073874581311352297187711066436132330794759387256443758673153473012355295875805779555393967003163135522637361598279715808381166035194806292127897345341823491967513658600185276584880480329645819859505304972665021883728027282109165734221183156785892551593621925714721341078732893648008903618876794865386595537589434230877201365798495695246539943037928091178373914420916181434554710954988555982462703573434371973510802113216675570948409538759788766491209990106878033485801541074370394660029901975703767260728849295912388688655474391874062517814535603174002118339019792814614497803714815593241116870534622644343003558368202112087745501033810472452649761881703455646270994709375372645453493583229590006814152690364830131213153375333635636879055692240893907603284134018613567293022145654624957459567047143571010978590634191844409257964889115417660936667042384556388785350480671792483333988967758313702810453716143475618526045282543306869932215095884074503390518895831812750827575708887324383732216262649114805216610101522798917268657865528960061509681920723658221963064744030839619568033351324206199083500028339675916602841900089230611584773534064152061110519207359779027586680740137950585307171182534363700809945107803750627194742208887355551831105579135082548630335612196590881844870276487022492928597577272443129784067480914392978554229075385138527821293157670831126263077994388265669433205690827267020456449503887922005592343972058720128227893947125477648393192869807114538244493027451706508919629005422069156598549754527922980088083155699014066731570314479137447495039946258671135111207173044236720476149486223579961273859784569148210486385173667182501637675133358695982408547661837113112559340495735037747108304674473441532384100103716146792538844530355748636236216535366991195860424740829936509169845194047802551041121178205690683382751398003313840530286070668699809273959757924858196906331167071613248481995647317392335241144728831724374075390078980952127715334847166138945072669216586018760996778621248661443449815741026361338637113881199898189682112484059473552506714753159903461967527234813481229996474890402177246028216882415513353746062161230605353286118657487272911601365819210370290277770042546861054000739608960795966014133607252562322699668831709214838402758196569512105923976083036620137277273765783891254943040878699845910015737248116804409923427010206409305131384254207988725722927881080581987661598490892518265763874133349083272181599750791504305413262664326242223000276905106822686395091875075661617589886274667349581148153610056229301020868565841394624755362230576785045593078381790257130184043268412062234193538291342331204119673384857021734081479625291898291426018348837077283319000214856388071397172115325346926851790701413265017240961735873937932684363335764138483390244885953805879787882836050743931971678950276168276931944856396366359778984721674023418199288199951980052363097401169689914562001553946414193221979342019643567846940273495044087895479656653362319297372778022640686249539461297619603425583660057200330531268920997242281966006224256560835191121892968304618730570286274517425862233008653584238741474419823575855048815284534798855025693771806312128888802674983226598263042634891294372420624661907420568433994686110345301943477295044870845803953021760129432298424570889706715827473461349338944698733667772407315169067567776489705172852275317690699435925197415071001236958696129590486743540628404448757996233363978254453357323496609948225355339395668092909490811135640464085760095985009503790989207647770379769847306774710501302174419006433414200501350612726756111186198831176931607690596977076610186205188014226672894030506588776677941371249877488831360597278117286028302733458608914958958615163931768975413729236286414369252664084027894088401812558984930888226806011546782306419020367176533643109699584873397731400425902239243592683986052197023515883097914636216677908529793653281000064477483021111407651482075418375360288804059765324431036624524531986660844052076590825976384749686874966505519475805958588104728867965758141413965880567392017525272646562025780025825891787893332762865696028833871470909552270599956026739783419487477413049360932308007616497563130583715919000748483359006104401116498967366454497939686053916437485667720385553116042737660146194481144604116682544287118264724316935339418491355397302702494095380370324990343773904355665930988056856749027896732593142258153258443517718833724015403039879778924456474019238463918427460052790082615334739235062739978963059581074921222644748444562040489087660468900454101418291242657382856980494555753396694874884566083818245817619596565735612670323069998252656948187965032951606199662364454739023508989990040712341287661317295019164506175444003643743420300352067648080032283883480803630199358806558985824360815311943508714757219305813201582630181670501792075411196537604476012824380283509467726084251139805962607518198677169079147912660114944327144151799962492715008073295241947800155377217858964132288650112829181500409315581480659341569506536225812889826383883382755687298255896805036402600635474800520732156507515323066600293724523482615577151139036691872614254241336453260398301724006638788550906538796670736279860430039767017189792274127798935495484685334474999330144394455589216301997628773687570755310646159391455990132083649505958458838979149809733453266734040504033095186493545363946771886610962095492226161869861413810895207493779046543952711104253998910469953816222593436939611723757995589801090735628292047619844843395069581349356145203034450505453532194949475260797814386005743578785292238897181661229258204220067888568850293133541220485953292811454548450126829528368531368779487020277464094986012922582921049514178694954198668751933435966157883049695744451099065371672051617886177619248038532654662767382508524086642919396635257219725189463046667815552560756722311610035046576726450592902479514418398065773406637581667809776269261097389483623261152590268472285721144617164217778507410700838753303486371414176851940036588436301069713236950427113162214178550038743329632778973074381250334828834035886564002851384359993164818097280108290747918100415562782117848157052475198473949937646354022149352251802494222613462201951420016503743156360939087303304016711071412759328728268964157296747050142430227581929799516697092321418819401844314013050644165437414305632805394904526039105098522529857420915691548691581396027982297486128458103927543952440527703088937025087086404863722603276895545002400833250790057048600949673368845746984953861235183282710677168063269494625988501309871705673462324127427178194945197334163144488967331765887050099713731957643906143839521692457930098586919413033840299181034201057709000231860938769891821473604968562571474599119497161974552903538762246525525076837456774200999092343190952541997090570936350585869980289332428947560795916895373213649904795747482086259082360508743524029487650211273495834788918082957786124849673679622373960536950238876958330258410172913745992504112060842835833611038719668535350696888826622013148076913017782599546891546144867180235165223548274484259267145484163966948322930793766567745829977244321108506701158922792271687440437482125789698027299582144846774510440306836717492263972681001980821943823688585292557336080342571948167422853124638171832395780703877583435207152976477402115141816042070381545949531205672145072646199868253491566324082374250359800727518830671209105996491920536055320807506501137542962142150382576934128044112518606614818304845732078486137203131739843872296842140458304166536362646490384822639712616914920558626783488033100329736531416242772394341037193869725293052337291548025770552112558413438343435784667928960953326568919811309461314541685596429202631194196092581077750357398638675739623972986016951088974348126350057767636494109331362691029783425047005007690852173935433433156920355673378836271956067002950691076342946717104508259145627464116281886291518068848566308991848402242149231277505187911128847884338854283416507154974429518533653316588487421116351196151473778438010962132505270955302798903017933112660662654462879560808780738416356238451772731402838204689911844823216044751451857620898932796896494022887723533726545841459229533956983002114222885263497088536458724766253822899287622754279786733880592304277695044916186932194374832681471962479636512356987063415486691436329777514543533530604141301160397515039192376082298095448135812172578317154551549216668948908873650892587729280741081381677546252927018091785660173930682652956057694477873296444707318717062375149045489841286319021536500681647147898765243188417122597552138251015569887596169293564357031669622093841065086365098792583109474791793937736432134046632263259182051789448638349104422229208329443413454310865979159895810257187636418653289732084547406363420156987592229400843803088540086044731665596372634807337571660973531622213739270851826201256761092343339116338067605840845754504822082230920783878549985118500840142806538955494659693857302375399302542001947257032744808336355302030414761166627600471718315663124214131051997134792865154610785228424712706190785631980721856747555662334528015353311926435202961146022608969005112082707162817852833719383297926594449190869213206292111894389297366298012459896039009775462507028420601266990785208075188077181970773105375571227519538431420313260479831858970790948677329181126005306647739717789475845528301004796155133792156944983045395439536709239363696690359518124925401898245928579135284635543557638180311824158601309002099955027770423185719121583775488181672540598514759314697197851663454932740668830965605717398847982554869573465216994859093068526375335398282173382260256918679008456949159637351914582035923805130592208796616678131702252649600196702987790629856918106831956121205364726242114310530139111584335082303706445024475215750115336830085745400194480412305090386883550837379578807817925685760485448108610300903737647772803929796221177156929525595416954689833202190637668449212495051105116654978115770784675871877769558995092445368666724429212327447326809108453515762554334712091339955151259485858044701076383070630807189319386432005007584778150679328028018834032298771019519422463125763697591049019807794515927196270057857863663413891704682574365414600186418699735047057734197696569438879771374182981508810077539617173883075693223773060868008751226004211698748032896949479571645384037678804064946584229616233689316575426048400347526102108908267880424443577482352471033013434949687280012143983853315961213266810045646240084245495648583584501783445611146367858046000982734063470562133927398194039966758178716085310211946761445750041358940080377577272436958442138498582623729950415958674487404161414263110927091112122878321212085534526595689034375003443749036080310221941056436318192589307611792625459249874352468040610368905636538115125281564034203742243100594147808396722007654282850227630135814758438351897883207056547617618451286780316979713103026598250285695933101766079714849978706312987902411144431207888195997488014883421468139025671098723197638812360738404784096293314077030178509957037320486201973577975921761469469696078204733202617999704017598792057706620805304882372521928988290892515813534821622691691520099307160160629073549133403838604065224259259069317221292223042486806259602816194563835305580165387151397825981064999037421197275441797473003070704777125149838909747143508397002680035265070058784599674349007439280555714778737264503857215990584676805650391586056797945649776697442919401200480336976467978741187319736374186372139742194520346615140750444013898867241951927981732719773223745639367086467031029787917349667974739040630469939618032149695450010398687222070957840504214566303887618885157662788730374813167016613120068072335828256172896700439463299938553918488543748439660217444573420174713322342173155073540810673844286292918548425274760588170251274900904499412565070541621092761663247738325379428479021707813275116972861299128317269327363230984301356283330564685639693471011687296893349771696304613419599953662077309017130608184593529793197462652345783799494433543980536136023547153981681845100477892042403724776441804509461201496814368813646799665250427050689824377126414879721865567012634175861738192205363143930674191696495919385380671481480794679179099281471412878913103402292420330963681309320488952275856747214654445578156475557962847248192504596748781511391688214840340865187389789570124683078928270076795555430172850979265018058630003031031533998407924649829422190237302026448858786162160828773846441397832105136959881945617908316066551582715184538541805510192816468894087538322080647332195322474905304379016789823476816808849793161159554603128112969741241544229330611722070262430745070425013851095988569930609548305807840609596942849910878535850428975813814289258220467663489704069308715579435433750468839413764305778763608191357407987235130187733662362563990522250040474148790278556793722894211272203155142484041104942409799840885163694233807734292942564893870250756263670160918940644408447671119468038061064109243731901295444799377903290071210723131534659683098665306311862453136887677147507062765200199381363855382664303198987526063853441787753654801117682784728722353941174793726295421042714783768024311255268740256138133882757827646702819826906537909510533656624563519056889538368025867041663433445466120561278661214277642387864625805944415285099978590214562619316617545410424171332999380909643914603077151284974370692708365666310256997139755889362386634296885593846085824637706189935434918878328239529160019926982091050546548584911965039800136593455733018890862690545700595856409692331165605019336758377868516795384767548045705956347344488140567865811113808239126852309113217575389457137767947059060018775072248072909668804440764895554007806949054535025837918708862819752099793860972524055124504680868986142033929820632601377190065825995786317882000770016178889389867175246622216824306212397455089496918635685667857360517212569873829582300635737121419426365239759142440976985079530924660640751553231188507078466556415759279603807874477328458023954736000309873076577613614602584355671943354648790816335367153631716388816336096680362342133998129937026892249973552282879358945587120842413895130059147331400144949944265124339535692384026293860978688019250391020033315325201927806899728656553620552825448033710850342473722702704258444609492687791684515668106901615793696066473467811842037815733861304277449623700865077974451515010574931814309856974660572090449315951196814833785907168015463494759055776258694297756203549779283138446554661124661075947067315947537649694017516055771850921541156366796230524655123981138000433924991148637259354583016519510238507031386926058167066964463151005809620078227302729138947351044083685246597590774584452068748908148329433579483171334086541559907708501850127269687012337800585794051712152454370805040727120943641251362944352696420564942536065490094914555326655907671701358922738857248809391715321614315069995815122817544193826506732594327504559454714402906917203387676273119848675934288559883580046964857518519966078992308288944805212204041610571219081003972337515768292602334643690271039637494948757847164680126303563928887131800098746809269674822968332031756191759383826065286306480484640376844156653102269263515755825189916934859076860978243259902959629594918008933050652134232560923187863219605091357580260569111665188200162873584085142479958644238435105881879183850739693946148071980681321518747672033431451657152847001718727270616167007704325413790597044757438334181836207963878787800046222645044350903992519390742914544112532763242425986367564688615124141843875638715651740175927620452363590502416096862464564085806087730244081571485380192875172418196071197673207222518110474116336678399605214787771454833371069607156278483086931245001301564578411062008903595486500584447006877778384216222376217069848478463129720060065576662592645882045231082805361862876811700604998529450000685598111619842855788397166686885822926990396643840707811013122556089307821156186433452318091095834242647814011855304480822634535620983215339838660153254485843648895848287119016197188708434668339904740485223884506901126946293743545224330141179423287743393273180272397443774063892129089319833375113591193619459363022017856305183385922923613810057949562022380154388217638850204759792755222565078788458674921603469381302689311524352584401584461588010622186025101611405159310196827800965518915011048070247285685503886047949735506589857214236911171565865865435620477607671801976059641182874118708941199958798849390798493342526838159484231059780563150715345176321145643480620422076252489837995360992666133259989634201701527389428415136549487816536024944961214515120862184269933101430867976497501661925483147174368821554146196953901760885242097209106333974599206820207107198598601455436191919213922632958581907480540083945529294878965038276394945186950493946853355733226011177729028521347941888664142894714823800710951917481587951326884373761449820029404926073772719823025458554287018930233772925397657547287427191716591563734360289964569026513017315143152105738649694287490823081124408836164915299027582748365258070135175922717114806452441252870893251507892810261469260809444641016827394803443299025972334875178200347925086145257435606176414433531781470463897506960421539916416059601891782917052405671870630711490044746644970302818848416403777443418575447292419276386587258850657936757205422602884208946431720275679193477487099356553756144475877055851773839222646002546135929058051644400098607212373192043017593890456886523911434922944907842615029517123585789429535125780648184452670900871290771833863144963763298047592264274379836973202397371935031282417874244262657828628794516654169133952921643237126986320980508822975755176156372654223830571463275256039379831268123728086221720316955456407478070026857947299410109519146157876328789568350679931872945557643014924451350309226523685361005771836003687101013500868612447570532791662753427202215988090449919397692238004620999376509188723690985173186259879382474572712269752898467608475600106958390482787972328244762215506230249777039638671683121906266978396637460982604827433413120892896121888666849224911996929908405371499846450911442019988358191323905029732310495389663672323942344416781513337689083732754555170486004747816856243576805425827988692432281908631113433662160263295566478132876177845538862186500426232073858141643309870046250697022787276530287527230637378085301892551535123774418781593966379284172417687033205903719923546055387250344056298459942733957934258715168609618270494175081773397133723314015883087009525954629758245809366054772098183458986832812863258908650871962982187589753591383351805891115273352949600281941464468835363431820003226542583054927628281881776557411175443673608449603626879828853478597504002022779493618882150531682463231312930481746105120064036202298380930000667743137660163759131105561407778928366476398117350193282567202009915887432992956830339237123262353129458515318558580235872852920649599726224729337632982658831484764976082441060046223990251383791672100400048985449442887206602410049591335488820775412133987309160049604893625237098934919143618288851190380686533877132535367835488005508961117972019386596763098609318890228644032403801199374302817953203048206476075112620603354309319432498105553692036491714614433626151540840109884983454386932387196074191141711889727019011577292482788749675903696975601053372738237017698187222967287705898554840421595949200927427335213521189120595921496672912375813920330025275462074695587631606281078845272369408128995834217445897447417324601659040062471873676155865596800833612532414582201756559023650394699499740504248288676022614340534960600563480758394437560385787611019394374804162633048025620668035826155521370251718894339445753434369880588008702717925986230153322920838711710110606567677203307708663469641133854887559936403726999115263698292153852200075449344430365506200735805381066445754986519421444003115251311018345198959549339373311228311657180148361935560985307092283724159452612538928717844514633474216837475488496631081283172126675113985024322228232283913988989979581781555316087640829304083852935486341888651775114718152217404196695245212297693548958613355630075125564440401511868792284249284694443556190576864251563179875636703066084494862691042461231226250387251124922435285171499861196112822416241077209174979965355043406573745591241380308723284575241964418356799266329645613997143370792101882830300616501969972154161154960671594473264696035764233638963153232177635792972091714941324256414402465384166270282810970002690426751694790170293629042441656217297334506298756896721510000378831940966757654289335072022995651420152359582325605190159561389843021477412780386280480391322620443981860130762948869921679241935716526935071364535740734113014184811887506575339922120616695948878160850375489726746959971911290371915631803025569023296104132061152330858580567358649349456424781256252985400896147327495578786935214469906311251672016725867601061459634364247717801787688628275882904045492804445708468465810549027210566734519990541647520200463368912170344608583773695634920756314992006653284315102067498199774903807751438818769307536937182681367027169277069987004544879301379346202520703902270445562903567716351671649082463735549578184895181813526591279361184771652888873991189800665847083471938025350797361056600051949903577204588457152079920774171243822870494960854690080668695171231256665384816167891511529303032629193307328093908859727023339606489217901894031468652711667427861980682114097893336731852977272041010712175173057279246166158071843666289483952755267415262688202258700395561249990129222366204911832639303197181408884121559951696539871084146134046890196725335243162688610417203639103616937510053924225719915264216099970204763725043201488258172912766206219110171130369920146873090088780339401405173730942970162117426984237812946767567473588429618332375611076092813291004965519723133039381175973019765142841192627964447966058795731235639206930561163812756281843261216663518235614278776822850101231885906291331115413111333268030902704255437725291748905168468543443842877612756025251921617298734289582466247135713244047245230898079315155314194117536126942037813645112944451725381829787892177096548869202948019076005188874980282310660434467231091886605725913183434938873063924400007920550736538827142310969436313408894938149283555790468545091923936505323026201926586773589823007527550494910577349303817540587477124796510102895151867923958042932647508764243664839317553667412387991812278316065970109627664288739903218710544955620211742590264483825485864531337418836240890747221732519049242946241139809408025780125839404331236781591302044522406741741824610991593372846272167328025697002773094987343231546580910245547188017327456881275385820152948586146294158453407282466520106274801668607061847685853560103939788892054190056135642454836873823022635026255626449565230590355132862616207994501289417181061828479392888008020745900163614180567243049419917320044242982065047583217738926376746418231819022086343377490922711065284047500297417390701134263998951549794553350563690846329986187524806905558164961096109670872460932683745596292586038877750711137118806700428567257309481827155823676666237351216423274560226758833290133889278782831793907172157341800829370823703655985934824376828287101128374978444513735173930218081745789145968492845421449799959431229925387152040302540861410028920459709871121810051698067325544197270430862725521669245482339133335915597921705236438372606890804117415630533735506080259475806939504020867294114826516646359903699082386872716491951671335887755018586620268574017616537226337541356823395164077311929157190387737267804619773359681258483110479006956717875707582216901957955126181696642792654964312845597895065919191694848427982995857187227357326214438345439784758416082940477628647215171097382461454199129420674908189919501733165833981664627195657727254452648531452987456203428573060955648443185659593329613646223934376317449450358520976837481089502138013155568420891912824347629576593552444087941422133134271519020927183579867590995764242376035264734527771637769639615036702428952018576048670935748434631480153951707966496214666166533702959650274920172723696468636173579939442700230000214273680174708850624196294927276653794963767145639114979755101305947564128408989722773489058854980853796205603972721910254975041506317952619834812305360118058828625361472554078704139044902313727373798800508927297504874254467177994682777101975784795230854096203321524456252184194596464757538128359153417066026742975687584558147009605010741044706365420330675181751025935965384214988677227795172845204101199251122915308339927992072174061377940954163849579723332192744918951213405555858118698738056638907102888479159530468112963557217335242514923198133542103026597161788494224792958855901443498952468934367905856994694419898056065310163793874326519491883217560906462030222280809553724476896811907160993243991633331876885724251950674370852201050053021983102018946471510943168321886039138481738433406693825147884145543761425261668851832707957252282723429747735585720263650568619907929079057018876661436098871036674317966046674024840155487626434919223688756154989814392379992139065092354431929009475343300789606098068772336572501428548526210742373791067340391491642655737869228204843791976708291034165515104547100873730551228743717673156854483189604636903298008687828162437539964359356421641282932861512868748790439362909608558599467724645550109851547877658709064256634792542921343146045993784164100919045104141541336450431159159722765950154891321726446021188923162026854689814071245868257012756121248605658877195978305069557257345685196673303450526020872292769526508996540831367540464255314447668781136728573838089145269671623307418921065529265465061337993643617596432474105118255768236698441661880679816924542757042582991587641135719396113285086463769384438031801427548569866759785009789789074759782585448215883944821219840421085075441723973727417684543632042931193360439372870658385148620738159730452618757108526943646318577405642042773167779628198244572597133020078401585030456499453397549776890448764402152702059427572145242683218454804489093510988602529548976535542671988558638716250203346924419244606449700228748485050239854264534083074707969282256204079119885000095611016725032735110687750333670815323426666433189612905748027096606945573735178040336759294354460544184992655338169613802410596629324246351106663288539979927576307045703951791050231473180056513953573521149406085082816764897669362351322517347073775063352467789586843818188877219279678610800585186893573646273665859375709919159906817289600264619070433025040784990491709747396317885700579577181044804151617410034588208273332127684692001267265935448640392026020914112043949579456761298303011670828006901232689073233474387260782960455438285914470065434064370468065094048092611102277638588767019588150299919479210788184239254630006258850656830599468068301965561213155553395600763654423891095009373685704646726596341077034172956154026785649879729565469856480752905414898640999161579237804090024289159328699968045237273154298274247707938589118269888224132301014771290291690547585599768071545574879845223306434689619951272864769862749791198837509427529166493282432098214749449726690854782040578731202833636057707138149260611932433608936721485996247387320879586246915347201502721000230631324923823332891418700917457167349202694860517446755667859541854958220309039671341460633934266205424608187756280355418793092049356722357873562869597809576192157182090377845199900000901013079800273526491188861438482594120063551068902775555001413201142360033937598670983626618295562799930690970786861583479482923928870830040222436896349336557407471043730093074190075255402886093857082416065174621963680488860207062718109833145545090352468553751873312552126842156983224315196673510709802836264977824342037110938456249788427797297738785661701774780444773278221335256249652214708553729949389698928210612511421444159538972087066858049320374895073849317647487958329140490008552189323055844687562930510536084022297949569658776977107218892761496627261026784429337393716924406063331095960224345854513090012016662628324764208998915643440187878972967588572733187446921331127317322167524152492657790675826606801984425315174622974724065566267929370665643631936621941695149290624376205425777058250452578299432064542981114515977091685359135909933409242721467985445017826349767197927354977661768287380461489372463953700844699785965009546861202207332674071594351126798255424987836673395924923162577385535994876960094687023426013409660267548615137558232455224045538982720320603593732344256149918163721619782226603932753229155746758616986289393275998938959649829249206908234510562191890808444446131149604812234498786825038036021901169309619765298959620575140007505598692491503902191811196886341385618013727440265379017453000777578416745969949674557921490260027965646333609843624934180123536249485361022026328869632578856400563248833326146745872852875509971946467139598715466395183836753036439422801288536599999613892521740858498049668070353263754983302870688835867008411137433400860765858125677575764603278388959611000839260429563409920622294676725111469961481574272182910565751302808184028746815827687342279473982472932468583571806951670503794833623627982888493405165656100514756291720485204344128156888211950035673735624360151232626780952140960721663371939964757123166374065405175233070402740894484419332334753045913809976846570632466747814423124082279800080965404693180859821295113622895450013772849169513428103497173246403466743342091872512323212418355844392766300797989986890852513907641311071077829946543294592757819396108989442903611983836016019903883227548451371464756669452816399335310324208061759438876421171574494983232037229054003829622947544901153667063142469478393274359970719737609896282551204341656500557211027390450593870924233754493584245555237035301740934183819303900929662217944365665379575230033376045494023499624328913190385389902657651092803413914398299023546179156978212896911612878170748898815236070046384082146397247269822580562598570575649260173587681995927146057394898364059031937343432214608471431191764442657184281481156886643165618967192755005064626910832401235479874524828898428061497168862357787203360483132021187242881141451964111938001539783416125677957882263917616508016436014518030041481849303540330275028519192424448282744178966427769045225470878790187812446376558061351521233139517731381203758989367671684739172738948707143816156240137461247088871016130317871567200773500658694290797608798145561595501578932262312576855822667771830996811692629318390477653705904323659411040162392547089262555905177946160743989951124677239560471803652881769029028443402828921287567181712477598125238954278983135413963245600381620914668853700523808900361391632512268223501903928002341477351989893031005318775250041576976775078773300872407235789265623836962676496839493487271046596516227693314494670021280390759331713565967985364004028745309201282169884799471343848432827174158449356463492543057944076216097409464129814021425643473686675860218262013507633973273938695252947392405169493597968313610242580294481543299749593378641210038697467936167202344460384602969414189029192402055198746637017206384327797859092266868461128233830548422347799204483949776194272507523960028556914818864414536510082029841956081867072590584428458931787244797599098776041733898533707047820929250079482768833079113326378990004751433145732522658475949658282660479615218836944582293500172016095861117831448558802019983670548895089029068996874754743168224391713945688132767819581780928146951283661583210254375796208275722164116329836478665879361584003567498931953463926837001207554932148440935155360116226841373514572186757971467744288607450025192248913953162085115705988785384445831677890095348779363444298987593696600344211232077694246654302826238280577714908764984477102348863934254908152536143970293880317573207161736102504136036521336147618746085674642463617575049721870363130703794244398665913789345287426727982540573811961634326135447862056900956545332415985397737670258567524392650593033079264477244139200293305669451446325556952157593739040651392513914108067823538907972882444425776819699586953832004847432258362543424980913625053851930976980431069154163824893321353049296746382537848397621486177450552083112235633357157771928099131340214797278687467182219987781367280660649046907220087314623055630820777866459483466530773628680402479023729367340113772914517451644908629580095698845392244647126618066116740380025706090227566338247068402794873096679943069795530638228694373808270866295835386652069522971300073359919778495483974889599615567394339327071298283304743026221804252439876651876699186496525833959508792735814254829156968002231940584852298150749406110227869290479977483361391451916635576058830067079097351208586338861796678504807266433163228617287589809209777942678295448213705837461585485604499637730468074806331431246590597537617583513281930743183812179964241134676195984233131653167141899821203077742799136480217425460341354218594522350653846131731413771627315655946902579448409591172040807923177301283213618067765445270731545748628983512525660549450507225270533191664635111852030788264089217885931584181478407391012791941271103726254424994247954611506796251792125049124966098266532853360144877591248758483041166807308775343368217128399015739811159358077698905895947776581714899387422883776067577592046148614298956969713032337952600812606831252598610338054210042832844220745143023848984093390713414401929304522820292344382133482218237639458307005586917249038305500958040033706908009891279706048184766550265905486082626008229099712812980364135224308615144741535982386776703306393183035982488607503280677232167591945326567963437101982118996120412654860070833843424586611761817694448006611333271770355007813535939838351860940464827248487249354120991317636749185174740728888523046180052667970954617838905674437183363393478119291999605012303189167543235514369234978342370463144610745601966740413738486266967782102497930702416640317715612299614913717254934277608039466532126863600591314234805414838201663952463900295045806006065180202236200386862509103495194145627037126068376372691941010339571360744394024454642831698909887498440128078030553291557719427793025880727678210127421694622553770949103987902603119328575516854579187945174826478289467248808288034411075089446466150257485243286835712777676015627297563748713729320488411978625581604985186654119435480567663454619139420313781429251139157790678087917362492193401611672383633149645050864014116869779601151781082071515486108978894222253502870612924805563717652795107563213004504583286442684128282703090339918974166224850590662470381283431281740882873741921893686074053645956935465644118116472111685411151208442659180322535826655629852923920331547045671424451862652545882356569026206823036503083658449380819121804608346069289614296012837267341045782517366723739392784554105756386414123288306919450026913471633133856592337839364220195869597952933648135152255813363395196157007544227189808045458481592932088362433901219669495939335068768660082951911969944624063452015932483879546794644071344082116513871850864100076775052013301905326226119537206266481795453519799428746959831814465493012604593770789028499951915615897039413832644840371099248742462311506821350600646998485394711321532966010834361944754890086588335458369711675711074270555692862259885907565614201534415331409224959912493147887895753781422129932657225250800441781686350816391847312078256416769363013325100824315758211785973882871339540636475946138381364809051537854278652719077740613712185438637860717646319722072648196693871620685355527240638882452661248102049052905688821605402842812262189233110375734917830582391514422908745062433770279174617953059107569776502056282153975605559403186820806525518140347565459666790692231069470831827175634212757651721757618357522248532930324090561360935798943849280236583719978986852707981570047951790550614436915764601955934180949964141327881859465322205750713066501608991993747845441891190775782859259474780940705361658904518333257004111104995916203055054486901196777553946165135099191808530743704443759920397138391364215786464767347487050330904373687367896020283623712855253602603933298227989439666556207229070597866602248492773755393812212457292887922892842893033932963241309718077916970464158571863319275320355495660774846018323139804473535804535831764066873258775936519576049592706110821350218201579449216276144574659915635694079062078078485369800059059663376955108387073137623874875002504357001545260523718974371096474718626624305996421324648378200711858810226369335512745140578093607861030543164716416195250228215774388558564922285232492134016244310028596605868733178903951729678348934698362822554399782762041651375584592687580040908441352785746138624602808390179601532840172178686854949663782494990769035533909578500840986443493499688569970754177706193355926025331340984401459571712671906605272351310008791534320381850174540675206782120288650462773501550570682046633516709800816625531937367237626610510271855715965305986557938275822295283705964492744231701892861873682266216264024229913444332649540494733943463937401095123426713778109090865613705232503279223802241100904230053626364020458516827941586011188585153896212655820737734442755765425977815101937775620188365855655639581260004396507511446789787988506745346337493594617975876892703661759523405252404817749655131297445057878148055645167309768952997479382698109776413148991480660969141482617635034109078423309506308513446084058586887579886360621945354926102787484727484264197917626912608135395033737353654786533976227017075096483099433972708407965827825886659293337690590473591602958402743122926419535876795676732535693752602850755846962505532731437339110420040808303144177366041189680812629574892560029205376916050092561655239042277184860407438316764332439353832404793126599048543300368902380344197364296539673420580689829874218345858447109083782087005370838943462929096499138880059152456630204114336339214946373759405415330253490405999084403817073433904838392119449043143587943610811926775278816746558410942028188127949697989533236145065259560597785765064169356331880160960278944307553629918383820846781002577023293796490367158987561074599820795412863912625661475458973444976931335578167020830367569779357091041219039254969355575511765622121981209537192438282233220317032262613789509273909006687250165683660466915741628643029188691987530429904068591798626131085982222163050680823453707315488865149284884397175608050870089329268446330861762977715717528173900218804958944943415219162581502242684010699208928766799170014719288137158337474200327509694275010087918457686437968639520307304019820853981728621857915394658222428395870401448674208663897776667900212020547549574636622526886243271329646004899683261552274096268320251810165112110817050865958813325898031003043014754701137161006452027712986750877709793315760584914101121495599545140848826130135724171816241136351910994482448420412434386137583623895009589084232287550300754386453930587376052287354311861434958047427113762497639837081427659685798837537537462516909923231624701263012372990824868089660987040969348922828689465219228509569399374265484406799400062758495086287628526322194323138272577007356609895800541893159941935465998508822142901466262626105381289181669415667204770955276466020483747050770355419439788907137048738229742071428798997405834816194144991800888763213175415483967808617905044944649398054697070544797401522275605254478609937140255808482499342058251362264705692600609126391770607704698534522359509332383155423757067684060442045535242325941915189596057895111412431458142865447828824696383755708631062400314453783029251419595436213542787873291739940482922052395771304672212222995003860340138435277478672019881798024432866722649274939033417577028748640074628987287242320352250645587744616721132133941217843637997349591609291362655732038810706728731933092584919678576626378809403816377004962663022495380145522397085994739981144461038728834613079456145278087714123349751739227924845432596473738055761031880240751477083731643961990565243576776291773898722211957705453146546019510157934935363570531454081399269397477858940043159125564014221537701355802010849724219363392962702045795077503030528556634151652175104533452104551855649807736509015651229647744161446056898135903069403309818997795759900185306373809417089230483647554386586384102434630161980726502910144338913239087488198056763310079174692790677731375341719387429752875590244451435041765107895613997607981808018819401530210407966333305223879205021037404939603295429428451430205874911041283846444075820435388509032022368152819532518472434170628155334825299358292326455243373801334391614246904600793367135247174144279731957811270156872660104428744783794489779593089417885691945449367258701809050193207194366568343560631360257733763559494837260708717476819980130346763063914856938942252802130683216879343645631739474029155721476578971323351471321305944054825096115699499214237419300652654933606298878119159019913655662059491798458295821016968877976733007346786227532387569483380180834052215923609634922030509708261335632965172989747332593743847524121828930785170056435241847330186075661815097534323799411836615003154814246847987346383100489830031335022015685683940439464085585458738118673159309353995564914507555740907959406349249903383854021421372670770002802087936842081667295523453939929054516842458045428119910749142052712688870670185358350354751912313473749643541891625225359138662314838357723195340455798990510842297773600042188777521339765488782277069066011953712601510175816094374768035934430417326025361176438813743211570503630076761158599859942382824882812936498116565312609445519590713625528510307516125538444044977755436959833270277014176931685368947010775478185562175306839305865259437307267023978558124313615873576799488415419735036840131381436758968543317182013457447461496643971095192682683958090075900595328071740129077696448439025883855065360580698921771846422318718547825874368520003052860059034492396710119067801645204587750975736618211810081580698483792781881398353451065103114801805797617380996082105861140674707118349315256687687582609749082476396987358236950456571493475768978109620853215526568550904374871546921656726522395811039551617116755988214751197940750754855247813938432433141896556483685317922125899673620367940519480338130577506806158182464922972856194755924255951195073116274400064325077106086587086145382011009270100156155263098840732017870522042454367327475931233810711600544479086438725272571817380505257613831166963237664069998097360823309732802078832308956559297625386473452628166157115944082963144609157885752228429974520788430051095012884105609904567157443956990983726565438049707602623065626845589834104369438507709485737163103148227192363485155945755380598433092091243390801186450173651062617386651795651015309712622707716935686401904465379305673960950318764649540157461365486639609191781437080968480333184964604835468695154869867891350411298755748983437138364901167598574543873898824345159577978900730487328666957288667369037374425065884694178674168517885316044682136234459294235901161383930509129891596550645879286602899352172338712630980802984579697589937364883838132785651578172398148776140226903916136167717623713342510368154171557762189396195239859517140808469702846383793267700232358135745792254842654399060959809784271486463164397468537039493368596741265030844163898194523624949808735981135934077760529744603535247112377529643733311511866382576961439970996642351654775714989267487360061196419529819426984731111830564656579657053048652996650273862149176248215965339361691026767070150566774862889392825930714912648558806304225759903314979523237828521991080654579154847134400349659717347424026895767461164133045489896619016818528056825406797132242006238412223430692982309597891001821635299028160559299790293049391230259254645792668346810943732931231472570215298842512564854960440775240839205461000492068118513590710868814597383685994500070968426768330429161832197592063482779562307638549139658303828433408374466093016223268123242454782967909210845004734951068531282552049675668147631091725125714030276360119409718749747678928503347884061000176606389799795349474774604121574289707418248925332315059519216307991561535331679451406793347206684736100698125425218416495251737274660756612237487552128445300609905091980493888340525538143654690105037715508552071745051819402424204668728857618656239966470962920706397842705138795540549815882334442529551480379408861166021583269128969113510435993549204147565508757222269607591291681149965875016164844374646830406758590239796539376462627185470207226957368816283420175391585490666475493352354815972907803853775847598833382897920803819280926608420276503654429096185435325097391953616137787674171221532003018716195599225205194787356952532061444958789063111047852216136246328050188673016544313014992000517134549575035387746583327619078692901749190034564573229052760805314411057000968735263935024975360551976440714186575254138059432164863933694958874502587763055019662753613826660893919931425821032283759456902363539682878388664037514494079821823849389942669271811093525638475017756942017194984402970430346680571240721809093916254065304698203071389228213394786763951085961640262551901176643642403674964393148467072671920091600176530375548454176140122876594621700804190315323247196677307340316290281498328910326723290052199781392035175502601759457347401192293129416938523796846255425861563016432301041299043832756993133578056943371971191581140988285845654449631718721142618129357572021440848494744367918272177987612878066872753094256472533473723575306062292877231849361751724199926723910749558855840850867509603479651602345853676128716188678521010077511853796332294203268316051406368990317055876004779707323726748565496085856351375001506964328738311100740821620168445661457688587976311298772077057179757225126544057097981546717086331410803470442320209595193361360454009209633346286301092181435927820303953941636077816231758051796461869560937588167096623989266824039146638243051153338366460795231534085963367041008789879764992978624797950528770071420245649141016180776543606737742693455198929465881740344796944588650597257429881133034616125526936544698247056768999221509102814272580225024332563674073506405234841117276172943383253788378328679493359365117010479852603501567156680278214471810744572832025222445457624201425738358967911738630565503943996870051686982793482020441398955701241628011682850537841105116112006111532125988923588490877475393391580914453186264407904387335012707859408540114829882787005474324496950751208785174416705192436438661449654025160903897812456592870781965521479612322752938632430084573372959775979394029453418929381580876121939466716221747695624872892268688475240783340317915448620348984639868061620533340551034491175044312461935043486414139953773354520862338005709819149609856409523442293750264983694450748441176017932396306664167362772251200359906733832368816345153310919160249593309023420248548883691155508485710874125581603142501072845595308624176459472092043600376266993943714648770712113608680465397395916147397186164273442882217674861964860455374332923505840800874537850159217240278407726563878755792582638706001620431800393311387049022630333432365047454713259855994561704907260510686448897340782342506519818383123765665707687654494484795600254525337283591151133342719800672859109049740841576815381152325816469568892762972648902497397550485094276037984923319265883223770062229651465306434207019567516939839080147858564213252252623545073735912094141044361227783949443798298818811907490616012672542131949993960141806993907554338294115464072142668183863034619022217539954106864914761432606085669630063921350680683840582375786065974946590181063359125992614708047671604685664395481096650252429562978814861996306581761175066069976646789494088335096601388923821616241254031139039731396819723962144012472075085475918792579665744782666577721052105423583347263382597971191199755951702824878997776935831436538552372563612398974576256235686011771473893553709972924684078918811082812076540998165708580841151297662266716234018946182230702804095706582642574101933671186688505226501071633378366495125124140620764467476569002601674453390385339493155244618168912614808190856924241323791539794782861421613198532467738085654607549106210132363204492986921626157243395595233973525493180751363078266648441012605088386529943237864448711262854025257402235093374887925414721791845204165664881474006075667924779722357901171858022548207100450015878659638232738488667516493965476723958996703390197997234076078611625884509700143581096207242291591817443179439555993324188498050481526545409138622209623598514417008916162993046483163181772041478568520333781445501546309707065257264151960998462636571907399515623603206444452016894038787224723929624884550245227811372710541519412782694605854288353487000005428467278516892241113505527787853585045452522318945059679751357277508604311961836592960368942815567210376419670375765760169393189916319841736634869471134149823800587954900429554554830955775556026399451236883458600885023025293721793913650491704315972233954151311251076817884413498735941605769688168266779356584532676733038597928821345851753261945130330173544315837684838087407331775930357957735173114820679972417059204768863436622496982553777461955564228315901531506973373045070250252944049791253353996543576356676162049996116328738550214995857336552631987656094444910507093424748013660867331874870748780812131001299699622779468985646036330699742236538048119746576296853267291421019230206504877001505613717143002180610883934317504825252360078030957685103453525819047768538073950607203778255959098144003685495954063660445176605402452531608536719685860558997010025674863684187577706797960957140296688957735186253021709446628980316280043960262597680737759497208740840249696661777523154864298965760464000177990713274248379599301681098165019379549184308796503014086737826375291461594614998109803893280861924794577531166441352434363580587259724765909383524693660704481665147180391807163035385685917362093566394935126620783131636787437378643198413793837035733811683072396476921094633270876802522920649162555713819133719320061461639129679798323211103169978397502634276747967738733730562590291360614914094566614383022716952061832308877531280887991004716510091017449082946102104929575829897258812960963455254457810211166604150457095073149429186905463145479227082630206777127186313231705701419331189694192741207532569347485276663262411449490976478794855044543767243330311174449938991860494349600187764070819209378331332531256184065075018906839282623831430003065838425678086903546268079573884926811054655109303007745433641979585643348491843082635371196675426731698574828646876708625844072384621899147162386048967199281335648508634593719644049940105574204426387912364651630246714120239694812536865223646726290704086695115308311861308092641212669597296899378231090490461316789458947877011245904438093945749833537481209995672322046380894019241208833979574337694850858491571836412978075650717590023882318149243773242590673890751760982310859203588398516147283375075977947881173726860846100662668868109743419094922128782530176463322524867785510785614442465703749384048474529653318949939593173046649195850123050559737948484732565255126542718459193300001553283872945655738836938757868328918145365669453557052449917995693476570342308391832915918657514042397777064223086453242982122165071013885471402163965842843739336333266998528962184535195944838552335017226841712495108045650344873725711636680764238031436521180237163892247303265346021430605743524521408777101823105065313706014231135516230475617360299444879318255318686723451444789873034620167494706160389549995973840381331423626015890116424654868975918253619869564418331971932115094544514455635919951231956537753940184355847946780071294581114323772051331488780497627995034197439985693991804421646850469025379647743023465842617445920396137667471522948094082856713291259303358874963233230556343196410554955152968265585234046665838205779320720924443811434058378822556082921286562327901980748589139612463275139700066643501914709190194075514625663247384198512117972731518823865501940781504383383237263405332660501856000914225422281018356493468937696327879122288447676013612080148516733048017151651313152388582591930873205621227157553946880537571577759323113275957429630410430881388911748498090936275799035018440298529177551247842521218047112945529481608616823436202687272530126268051050505895854269602104307856131646391932241995695011142213564998883031504887177098468218878896691372192444335068266097640925753819553249090281509812191434544444776161565004203869762807997586423807765944956592722031009215099216697184835643036659914679165226879567782873648386893298086611635956440317968613937034934358518122457336312033506002842905320049868576579395705026530064831433229171762807999660782899822522306122499320335500514855302526258304047153102454600950507512931683032068685455391077328006789270221629605554435731176269239098456444627683929511583917080857788889380406646282505743321547529545720832406952168398314651456403243802982660646367150334180819450101045488800767181737759784843655077296448742756570609811497498998760963124361369384319327273422851093467085412651142007011183755974613765415450122818864136336335273341592806854289136805424561835782649091813884039197117713098443804784595199793367526188080754541342480640719718733691712173553497017100077030939281464720147382716912782646126961092347686377364605481941129732435970919077223115039990214468238008135119605808578070714564921035914217562490896850757682976370673114547818780440132359025206316163544074041488534983462958292755012185709043835933039585292822157805858839424754302046626569670652948983225769437204073379314994917966282650355416546457920290952310397986314287717836574629594692901122559975368435088927091947490771041541300920758671754005774084646242038230647691881499071293554066809668528122366123986637878759253877405345372849771485985299570250956315249526782077555986090345764391159204200975046298924571298491435398812932755926377016014178325493143465040699924320973979771746044138417925519586984750730304353390168193080408905585861200615427676229431350299017736866869076684962585368333935007102616610917770628184755177283127190811413660614667680352002092457681553539378869656906896136153214362004590578127841405753507851378536691811288316851960667833049378320064350103403069689669649855421656536988203041752647741811569258434951585878961657779989540035470184772735139088311736321627560071836944750269675576240188867819381391413420405315380781272050154680642326454317532480000414290222585811170264941809597730355848586645914775308718045609366768987485274173384792289620221311054669132406667928940237894212096177562447685020165759947473978726264266925554461016001319935805731272618544097547173000400505090033901569744435346234849796680607601355793567366325812879831222187358138471975841442446102842129602916266335655999755759784730191103884409658100618868589379481109415564466283421285893051541268676343560473375066441708753961282092104196887663711676381784570526897334492654260817115407931534193103017055048880842471023202438839151169504303850720649515657850163977065744056192450544233691344123591835929185013406840823416508469589757032559648314382511104811154691270708180636008075154278499386987003312757589930618435373413702007086672284296098695680307614317517601193222500450905911348902603305958971537726790734213445335636441040467439215032242452411494231456384376094974018308046000627620654704474287242356547857661463447492053026091481116314922667739430534449450655940487121186424379226121250981440690916333861112194566483450228116915924595862924459613345354929262263104888381072340507804094158451340117804426529648869907435383786412008276689237641677907896863339272085157518808027596524663697365425341364884007537859123118655497380146676934468913455579845480885578630809890446207935054062019075216295420807766084531922363971152302112393334819307811296442462934246182625318279315900062850478919969935560628223791297737333247292621653967948808661740892401954559577632493702952615250979336472704918879342373987333671339355591344560182510268121675404209768122173537102112280037411134304502459002971063154443011012390696066498253008590033021933967789672502192137500706885744575827669031646441377584331213368037216103164546371602061980234975348088105539338918343983170160466146340968120058788906366726777726947922363667893657481638328963574118657954218459495760623884561139756532171306957871516410726141097460646219290714156124422253177589540561695351188286474633354138194368375099930153130711297918263147778314301324335157714013114187882994064958720985053182355796128058291380230599256107059332507631812683616232111741462056988229587489074094620659016637022402687433285446061286280410761428925979074433523651737903762764476415733280733234496193483088459422206235987096878772096492948883587681148680062818988885583804714626816390485207455946820043405231071829538196270909151925481281924549891997287013727844840170637685987260879536157481522853612978554019854188652104136636444434068478891503898715915159244293997848006338217886636843004371990774535735380572818400520122379105669982041372602037906698447477062492312284827555717660718112975783297550418223075796394435615150943458421562438686629697620567606334382343363107748463205549166982878349444846115008390596583959249306178305580077769700430604749465620719934473529313977299479018357522583100460542591523902125444900918695567083103683372668214383917256651675776031384350702093448961949177775724557264128472491075937919453858549110595155473402108665946705531881380197734375304900558421152091353251856171802019037973166710606843302858448408590745064127985599241194122046702226416428860874761129931537508214843054344148475776759179226415949023501760018106986296394064064067589683100417057602289603245949532742730791778279562062411508944512588708778325029416783084636187833438118943477904839065878754042767269306177075507918609682026868685423513696578969506194935280816947960725667806457031423469295380245509136973797456681291412176022019346694999837958488040856441237550795288676163361861442004731271624261381026664028907250239194322439215053067607916379051072378045409473167333479688832357299933434046347407431494584857056816049692117346244901553114622859480074656975218930464515103615159590453823538669050004118548816583141910907084335477872309529339022893937658817231545922996609957194744273210126907683287360395009408595453657262172730391491338090736228674967186344546108744799210932435640056179542661756197900240990101630141937062993858509560547425825262292108962558230990316599480829413583845300023071079891924642827400403667022712594053167122984842259725762533004377017233188615066601001265505846328403992313759635789297014165293681206408044712695674158390548461482172754469740714597127194019846830921385341673486916557136599050465363644938188046941631753928126168606860110455972845206177574815770253877495192127552221327716858566399450123166514238548901594244910372888318391094288774102853754256383399613130911944818538416750163474540326138294362526711799932421892081530008748729691110233539182293749167161246636925705840288131833302427934021818108803710673998024112636142560199919703444647172751916301786217571275989019512461142264570303116224403790871077355252717225319376159365621701308349804295993942279498927540926331487814405820834976668624623825384204818752453163456084269789516960563170395806595493260753715132119890478750908205291720300408308898595452354947005596211470238840682405104358330497547803612303937693431876090403773533958232286642905471144925481517467294175032812609879660953653580904511847750163915694440834464067918967357719249540613940528864721505375957686174514919460899978922151295771694040475677743710756867067115436776600466676514223796418854378979921708168221019695835361679084416570405171504589442338585497688518527762930454456012778346273471910988791516194428821613620801520272683099673056458688569267207637496293761142775433126434438338698334066009360797057874745548616252747503984208171343718805676736367088858069959207458589069980444845777145812002561363811587226652770146005528364921817460723930404163392006928274721926247288045598793427294489474561489724051181660475592612890289214931608349397480741833319348069449981187112114960263726644535367054951473190583788306311511354283877499697152200101811023460483557563112058985154705554195783707618827245732565385492245376361640269682441858083195029981241892872170868170874603460570586805029195649539348161489113238504443569845954221150947159365502096669759914832627987738745634492686321551092931654629896573330114946213455515132863009106876895484743634926291235334113723891198106360297188191641788642710742994337578585751724540695344210249996926408601177407080493843298190125816444695487570551712410526500752637027323213411879873015279272975187983089378513838192050656934516585732029794005047789635903146146338617473091370804730513175692649276620238556724931813281775914894974576595392470053520584948450255798784365776442966674986366593245273567861378255662143829435419540361155708612980195664648598110504616096301732476307578500906125724197941558517666858507179095558927750622576766872609092671742608344313041501618592765708443696026554779255239015856229292533084294351460923977784452059390744631498996323919880494820920997502934345845518539081940127335513999234364010307498010626689670911652215478470062116335803535991671925741978146786992462566469811230895523344661322545773574990541657381024977353646910989037371823924881123733021722832830717655620783306314509827863038605901837478645490352728512986368140158094188808054178046527407611270441522523167811901564702205652469969652793507564045938478480077857407403777483735676703171472417490139076691674636993014015929758151444436781397482631541432651202625060686717378188361449064079427928178179975181495127883177555130073385973042833603373411920017390234669784095557284372920894139829078922786587708382014376373602333178537589357046425248407268874569223235811468767838267249145386277230751372265722298528028319280692617531849670117366734344168930070298453907036259293491430120638604888545643155298085424304318570816264375725283962738237277554622487784168328750190158006967528295183131591624845817526320114054626839390766624350639645669768078905340753429155912276700567301343270580404870424656969882712758129530729099307873183612094936329596746581883224259497907207878243881425570067978428864034609133116729777487944343161665777064066770981626339348138527201315365271343949939354181788340880070007086500159407448495276971809351182705224430349617590510278173471333774720690386245757820938733696146525444695499245409384393664835624225209266418922228086776565473435241615485847122891426535895640965903734357853364015391290276780902955444708452105675076087934048642407794245744599529274013219637131584104802851478886351900496273447788104124786562090488847940322782051251761238092088548937432123580250539805517479076235847032349177502691589338914822320156373425873928789422508434157098949039437338230291002168125232651054444236671139081118387224241557399597792556099770542239254183079775191017248810655286690661110646348114214973793757559382522130508338585562650688806203025542632282942029103173735948667654216400563098621717686191130327237886443849553942690700145579476526021612898735888374231096295818558778147803321712316500426478329257007068937686596053813258711187134974205753792176314654243402440523257599518690907490312577366790449413416544967302761707951698263042475967050222585166650144474368991800166412453977374938416939573695469026220495096035882411278184524680742395241712806821551858510058274330141034684716093108890597819777849514210030509407327257462889876932727201466144234230990352788524819314997259745409755740294092562754311439208041113844779936536535452154828648580329020895256531045847073112670990510772095762110693035412326627626511951486327487809484378599352038070743901923494471125192303043757599181992780825185781435563793606222243552790399659568259068944547712096395272522847029750992458421224479068666163279027566769127994441325704228354433249786549042236376393800721010310969447581070986376379899802550671069142073327839822539964047085791024298124860532063214497464139560582580463505184846122280926694905143389926570169504133289834697063495633659842069406558995550666161556559002799748945975472539866512568905474160995244790569691043305645556684213712433258367662246882395424594538723134885831860359624491991878124841627745015429641487971486720710832687753126108251021440032167748039129989901782898029783051081871855195296362340309403368823511605046321798193244504165880289992545050378081270286551992859168345929509306389596941213622428564436477346195000643852860213218857630304200703932510913890793696016417137065003419343194708512572997515122869829380348794597021320249099235755531130375805663469166912452450297722076296665204617944574229621498793527563901770011670988669818824735423853165312755296938387030825812063448192860503391311826695787418425697703330205536398047805475058917716603498102577098102541065067564454364773815645287038469408318893460742563354421993275713148656975509687269650076087280159554393939774998776300948900872784589153338335548978945669943776812792431075740266714592696243436288741092280679466754646391614019190293435680835789281047132452848640873790360086441999167777027299040147132506974690993220266152769119791911828894045184872512055953094676941331886004481919525143575067159026439542492649680290149141334948556231089155816593904518147376894301940631312121024052342876595412517358838615448634620273423257450963002330673717143599562438381898996125198042709366043767907725150432852383814991947415076818496777010013037893818038265923849039952593337122333810093900643370121046662075304212722012630954067024952958037497868028066680670145768535853139077497422109842932300411034765543615383756198218414494814005841292642583106025215717322525588739143671965835170250830006654277263342292965132867123692032514507320747033162044288159328853804796896829176664986647516530414170849720910736939912294837311632553161040998444332898980715341163086464142708688923179796793917364777166924151161363736900135055892054796534545929508127011075402385203922043594123185370000991671766333817749309418441262595701930770447179629922297721876537193388719624239915477354031531154054053968724038209334244512704031920912537326461262612411309406369653853599747243979086123635380257030834821230771189649996877437033901070140792113147430672065805723531022239417256846192521604985715683877437246148556503438394516369364893393583017680307048281832582440106741266003608443149547788042931427493671488795349967344593204615886328249257503914950203601791696517355416016641389777872235146452817982149938201716640742680556890220563122774079288554969115986274755084265204672084572338715418944840994308518485296445693482254171909214177460456318131983701570166893902431564934877334919027119732623301856440798756248157297124060154793224936606105934380092198029339630540287983594829774591431122494770379001650097939624315242408561651665991309437018680398408428292831011774608737264580864705133757060293020029572519481932446415953232065861802937908939051406688400643375996875914306111433338141031166379617593100932709993739120640622717600432374509099280253773219370675787405834365147990469596599751920026509319471568568889492989595049427022089876929702900686516217312508384862812328913353880250103624296544104629233568342851361641331337063459050483402743295738496934433552536356037177108375961124362828329595585229064842074122708021538104095672718265523384481572744061697657871394197522700493494767798841033274775969052614830925495937542325770904462495069678343352263450278376023521683508546693456828037613053562907844162409271895344279696525594373103912005250289185236335651825330096557668252526737295996206046094588180591249246253043018928516206298968705987321236453579503406886043721472061795180277202567285894786762815218207706440011279586061992571705290825753922860782637006705550258279173155790181817591241060646668113309782490731321910187176029729584011201572150497494744602115477552869097429609513793303862784725767128023117685308141916908575704989590834564983824091198798104295969494744860941434397846644110529246376087844564410677122033521245417815828762282608217268366075027168425337627920846512484775975667237875155726274160023718160609230930838819857674517390111741843628392696514790112140539080065802822946086592655956366557584171597349832218000131881701525447080127859865275426015113982737888348014949269730767863226288455542448072080570029218992827672405779353475723442978007495210415941982529242145039649395488665794704669625664812964093053798237176470370106622780321341037002757140973839376418834881635658425124647732072531304377932475341098352619381364515211513616026553217462009474830666452452295930525926172614400346896518326492484340070340021331483291071234234742677211551773051294586792931651273943992024597456748302679853813913086838179410575279023507047254775731818223630633982519726590997450922319921658766191266361234349455724421093715752759175341638272192314882094516016941912697007329210547942959534142445455540146961443362187081761346767953147693046407135666312877319890120973996595625761633938727181942420909051674090398788619992338145501034093183847640340415651925050719993754227078297274069517951544606684668199066036908561062683470515183475328957476852094231534056743773018410478009104174133972732199994449202671033087786679972882167324459637132224173375568001809529335072932241855586383400638777623506540428641708621321889322702676119587832967055780417269316774881271632167245468986513093256608672258567637527750145193026187850832240322884762138151890580812156606831230339776876142816349942467446082585782487647117414858571569197572904930731288885686450741046943635757598038490136181057788611339663454721706056025204128894184488524742266574571769005519797495216337281731024113980350625904054464434821120896642253177566852077398908518814688883427907145034438995349551919858281993873624029895020649065255847405186527639116835596283803898938034021046977187345017622538248459505400747572417849989945862486979959672005230031922191609300381033564533755094747273264496842351185931618882476067995723929943003229666348160555401628754349762673220160744796417246970279617471667203392823669510982176678722989452495052838880214085758631292342052110850387580201790365407513392536671873415387640710564305033854614561211710550332185301835877452138679809600492470481880842221360230745266460377045012923891323220717436556887703377965124963053101651408788541106556140398073486650741264274443768512188761484903464866719224095485209358445975668312932555205930596124062950427054181329261180528355914938486610895327989453354264361924524376792045465472542880703961576503278552072667724413327273485624446047348008523462757863197959028980348967121862590304608527423925167326808648115109558687298640131156897877999206990099344367482302205170216617992466018904994853550449068842683723820451494654429538803710596134456120314375028658269110162215907735457165134580280401173659780812357679926554287625088032687527857748229880330300774692048992786445118397939738418857313866630321636110731985221441460447242535064910867584529305761238586052175631855638061612901436769832706293630907648494720720843530837049357342795186933054461941242689249918561409162925647471613798720423364254905029008150258524773293118320944032584152154713015618177685709796676460709324729917600351751006912719895916672336475709106289805572351108414778464497005271772474071714656569293760506491188656308343964855281478696710180013145638076156429667514438180713143028546044513822131403638510602356157530161753256777549096649392979199985861313719295331471118933874629852516689613523403651362742260681998639550507636785948970305241888192879028534398976500920735905643755650797701570830816996371587900917661993598263366252627345834469660583041064270968894707301380193563352377591061568756998546457256082912190511430742009571836727776939926048459778687357742073022245498539218779256973367377172724118618199182694227887270681516080623317181308665038735597513898082966842233650218317026406255759626159397482016157989675079975394809778494398425703575001434565216982506715828132356621234182007021556754413995755008608573280743833004999250039645195715575062936573582853140698686689271220155916975765397386199456720224337666763017735469549450992272718968057993474605956402562292797857751568390062411538560269231903964382505586654745505403432602244412334762396499505594741578132738138682653992871231344305395081915930107164080278346059420329623128473008478018394454462332248904571652010207245593946307358498370236365027756254032248428475700006625450422185041133835284719630949886934839690604906324209867281864835548688023347488768404229763253893791221705195097027226149862960516423687506962959181725083581166309305689285878954967363976727566258265449049001472614223199134909348182296697576346691502238132701567257083232417479884239451188310883477002302829464115060948387897557726138474497373871425919325751502957250988251337029360462608092924261689307206462981033857513148890841428078712666954627230910069915842603133954288924658389638227744669596633558803981663675543259778271742898224346617483507768227903270770535865206369281111079032779436731168429985367070961320337023032313430549684299827241516262195014024129925403278301484232813276971106855039348646964137324613661532332634572969340105586547725817298774399628812804568806903631067923074049463156840306164680829727528465558000476315121310708870312210288884928094784263655107318329959459313720126868507090006008972827738262789207393247272362743943415261030274839887317313839115780933006736969303216776953056200033994696204730232039574911372833655697871756931556088418536670817872598168688073714580134182324880099207679753804722588096158817016330560779192559077843895837490677478257259288154331730527642463910057500300935890979317945481843438715611797803579004643584065352860261070942293479094006579819779552041141078273772027524901538007170593513458239869259417823925742129927506652680369490870519313337174136191247706171679815223092182941593431680528421955070734785283612396357796119307919511742481812710239596105965474416379547862783506580524607560519629162679128681805990120800369257562231246018751852377629872851552574074705536954750454210859977416258533673586971519197991859017889214718188764116239659636399021785988776533886022928544626941703073692625905808697104588935920905094036788203415673349726414176939314759558442066481481641886022494759452583731116228651263079369537098683024734982066945418229279516520422802733295282344980363279716834027028735372455750400241860842569069811220530371803098420395282477902249177536991542894668724971842807645552420048237897430451826016736770807612374396466456288016614444982084300059425141337693270467111760338061899745811283016630665424554621622820521248807393538386942799492794491449086246540646930135240548286087736595546871031952073698243403384863962028509874626024972757495069060218843850418336448530241229240320416107301887598802877568607449412373809343368955361396538763007411330754423985398751070704013284551345631396392700135316203123182007186929586716452006402161525512883892556001960566113255845185049606251248880443496810111490379806734596147583989298446757813867330701012040063893343409333667982472676288194994893647705027364313338876953159210197180339184590614106238053753373965922297409460300966007795216474970046189420182093486761239110652817130258979276271916638445662282867940847328440853013755600159069104911413450996356276373150919146697642564401434551701335426153185448750483801488343575800177686088016022635718346557311717622399048459130808690361335104422555109652300743613639435064565522962200191532632987841984150308302518709004380673888156724317294534839250214421775731782160529177779694141319651858218933430928409498545861803953420528186949572415751898626981360726166954250422234876541562767948981396221585593281623038247019263807706373717081909566099701440685899237536623597185019097617597741960871594051863061982132830190127170965064717191998736682394267263736935979471977304901127487529847492456502195097254815361542820501876582164121073980367004736329968035897069613639559055888022391438089697796786693381783162572380340207592432829940269632104965615006543898592783368343478409702335812435044535004330165732282138249309345966143571462355799646687252176593251516215697324043587904926480776468800270047174422803389503040636222113262160507916323920637875436480770609413141403591620998992674677773571395812936655810429156583196626332901548475381523532129805375398405247878892119061240640545543714127315769329871358036199296890820959646402699938094573483942269169165576666566220849053561492718384764490946970195018245563004445058166289112731789314361679665931666288755326536959855010994699570355774732031845574145441409043514352992135612669223321371902287406701282426495591791122310801107283510637962742141854430613436961570201474307197750782585813005605757255859867803913747709841335131932299665320527110380237983425608592094355662627120010203037998484487977040708832758366769101431643223150730438959973343026652932819240949774718613658490763878521011409184170726110374393901994699264119119145264884352907309285924648868918102805621866815866333423718396971997136261821333673906886391949068331186535683477277221764487553411282915968806203429124547002302243870137538394119536503962386128592170753998303397022326936607295209582684762232039149438032607949605311750973198448739569146239400855993423636990081909791348491868842062327768424882627978933860283063759244533928808745738700256276157470727681265692625140264219144120330741725496127537606940581458528378406213694114584485157061173562687431097670966746722657713878985611638814636064323652093491945543603672065909756470793449786371029329598460447900052216348832112010910709819611378150831114599288078330371034657397765892648919908262876445815347143946957868722844497037861982409009937747930001353183001949665725181446806963426646284776765894397891044492377136559800576578771143945356913290469993511714227503031979457162453509884020922729163200862996128468974067897241228100328282105726494921035309299774375744216042468154167282482147129703355906137556583884934279793036431809925708982921430058565679214209779683027182621667493052039246772881440109011845738772964651021576862384527424420065386622433477884755986360046889897147719965664466884918170783164443281630699873436009578565327755250133391431647428294048640887063908202937304994216658875836824000222826670805579054733026373288851410800867951333658375537439002343738922394430383867260659742033586665835612226328897772330494980825532631027959404332520597691906651907770261481944144661852886951637602564922125604818644041905803292111103331770700102671333245695195653736942860903940467145770979072020657986880064936161598406069726951069754147226859672713808738721886598283384254995743740351158955491201887208737906337411083223798062084026584938515879322377702436044931870672098626979680097202762753872079845447954351047697624414864386705478244412948836254973740189352612204657080077916364714657986270559916810602500292326661005244020251292382630948459414521178115698318902877158593272783033471052417730967178690419584470847620823678747900152596946906661506862613677249620663098572359643605056229552422905270141567912439845258533994888391842682323289884599385337137539497004979056214415589197807199068842247242079335367988474095632376134832803215341445828388277363119242318987179934185023748247160993921307356665280522264005095410123468364799358892850377482299404235977485877026303578455902035898200506906372535341706479795014597228690554474694772585818123432365473997167241662017201899952150245228971362594292474268291769908081358332317578190162838642720955124211881718227496064734592174934242090611352525002366974943648096160820264316871127787115669179767427728300348163351280055466554381642218934366149786571153169552769086480596553016876489841044194817973418426803953711884405859563940074798434516111343271440197486718550469293948861206557960876871487266835357180678486781368369283642202231845458931453958092432342100022420350002409082319029833042260383649329646553464457726178584419138080151211347277221081899912596565004057609782482907033841353382191086273929437394355666186719722657081635252084541042369703268137377153124622339597364142179846140473802370104446105656829725772898141573903322507018894496786916302480909945055804695544931485763275958551958914666158231549028420567387620274164045705549149353986249974581908661741439610383851168011408312564262490953261177980943999345508903988919457720396737544447014362770480900366846264427213236981573322464234399483402236038635758571376390558472822479880797079518282838999682119302561216908343474832094559988596150310281890717318800196427649835336839508517424420741510031983138974993869150188039443807490005312115864967576756710028932512126603787733015114541586605780429519547617879776379936859002898594012621949617981160460964368875750720925686160221969243008219437770953829116541799417258561955577637624013641627894314292786042882654605956706268816857363512793752875345586564336352293902089802999286188047958679255812024891977072307468845617420753556562896911225530720378808920789782466900877079787520912911464076417136034359110755628534328940202257317094461850254029297425070313989346009294351823301921298159461166903521245267654243415668875478190916367886633227253400584860697245418170256291281234830936334761260517176531166847657065682721353464052602114975056448713160498429434452089432404488706945260375988971749252483777066809509975163523324102932590939816699517634943836133969915051388967040154364450150698144315195885217514171712126186054102790815221457972753048384852286377996135763483590482242974256730790266313755373803987120616274679587965300460772151708649178249772489495133548999831146507966403595496630363052344224976919081717516875262312817262980212295393082263784400099833145809869287592540635468771277071217574167429929983428160128052796975888635559140449669691843411945651437346502276014482556692677179893901557562658387178145939492818894479954585000754101708132844526784854721317364115831743951066607002641938881748531978416221251656390338205695468843296151953396474102529588144783822267377031558118198631083644513624223377847947922058272677033622690479409179578467869720933704531419740384932025817515104054366602719644457172865137063712226693132045863076937769370910192150218576517047494485970619519444004813997003249748048763468289275614288096363686011729514615249189160401384619561648984730048725043053579008077280109523183164634597433364914550468756406181067490795575013942020286078604392209855476256555873419018959953722264676995433194461990380270252958432476220703200186562382660039298366237870621170252569693036848810772913176375943993042442574964356539430011627235032510275296157090384700180796605917755501513271304111751868213269454164642173567874760787178397825161024465367051072714757540856484613482659690394211970363167039479765670348533869612681520622060201532120064437358173150476505674940251142690408065088806422324716975145469047515233294625192470044171741553032915041078569314950847245897936803662599553940673876212104410130963532001148026647292598037310045368693265988239302925714069965299578116022579416061957407088379042281295835932420416744911237294968468935497221673736569268070042072177787414437299807169686434567912074388395945074580205613355118022982990808953279452966064692349306903243085750688529835946173339907561770103177990418668210191111155355695096281050987174220408428809149138466558786691144255857829772463290310028345264840220316003774438022942159089126172243414731483472227563059514827913783250162129499173455869435028571822608805288430041967563827139284399835471938943322675836780271648077867267423418140896916016020373519440328029965583110627643407721170653212229343234833428014986972150397780206609496026903066776381404390677072081264237823008744900398147752057951452831909770479293367680148522807042774102223910121418573915341861304115117278449770437462758394688687651681273572794775545101613543191994921028379573649213248636893202864036164631854328470601529871109899204515966737728572613689101039217034139776834096897561500293953164634301960093932960933782925998722252907576870776138502789100584935524394433258586859593740508077119499792500427976774023392245998545997976696749077023062152363119000489986102238627618124650784931110934274535406435769759374431512291764596339065492035662691989378605625342024217733198402953730518519154230024834577960398686055946391540989873324310385815283751821426021096553982991189450003971022619149794917779323179919053590838786406982954112603724232840674616166645627526686584211205434190888441329668373142814343995626511225077171981917756372195746608361265666067098483820155628153756921969269602680587136389188150863886876754360951300440613049053063539402422525161349954361764595232084795670541164245935423540946419660551741436804259180901271994217285271388068852804342012737252062751956053909669466948596121850034267974323662932998719751844502541363292451275440962068560435198740361263372005823500108340578433940673230517633861441876857491087629461778304565727208680100490203944396463343663357624447493725548787304230365175284332133764939160782371715337264632523074573488733149561751737460003120748389857412673126485216655333888676903749598456641804069849684118074995033258741105265875379598441530946819360344314193184660606256519628577249391963892147819328889980151373249671755690866900728467711015285450110981303287062647139414913399872292967719692768588718633941594024161713765190112207706892386529244847845814196454119988857243781611974655242578077238027803698946467508910207606880195504615934273289426924808540509799279323278958773758933660901404560130834023675058937821748067520791051066523149278412651308557505319855871057841081571746552728180859550231085265957721195408427207743642870232929126746065598889523582402481510547305590391889032355043465132122151798082335136742682092419212311575246249484347607244557439999865565618356338587222519242830119347145532455162205345131565706041433876631320488895402146541038863989889338168233604122683777382067216975002234325626162429229518052831485308348306919197944813098988755558875506900630627231503030865196766701489191015352193789547537259056258492598973029831066504207709857865661341765006748377599153833178948736039171644683340401542906257006206006448144177406314624667330687582706595962433092357824741660150520033216472535190307191825920609237503115414309178370010644559696105829327485199276879501662664679080326196286079060860386625799244861436009255771745533964495028740189311801002806657568352324293093299713053267063208759738522062922433176542988402528649146188349845269433922101859267919022320914577006747196515308248539938369770257413496988828682824043949688486297532288203109920371299511862453104475095998637822046969315627510164962949619925757430835366571094222137024174716231108100527679121008778123676006684804432387196643048238346701042647341828396473347184209465818402829140747749493212528900099139006082614784010278259416681900090184916228154762637813968125940791971126808207732134993252372547596806233862362481265087596646390423569053639209835613277439442265694034770372683626902929534689656949046512463561606474113310346301959383663153155933006766762312894431692833729384749377520146361461185861247957754203609396897999255688288272873494236014305226349198585289073712523316671031251881772836687826997861080755071383558814168028566831320339066242775044696895677353545503968840284523009584144851666059848496303282538689861025137740878668865851963855763310016518930731984640581623641700200886066182987646762017103574156034125600937600691623467037664239232855678636441620526016738974958870159559266381612027745378257157720988325519956966935319872245581922657642097826846103629784269898772159945571568126263257139384439867618769838188333050322395226536108916014374894138980068578612364508507227084735422461041153608120749361429575060656307158789405273072877785744283777513270627255975150991686753474168644806013832383784167077054452132642220567823120517043402626429810439485282515610036716765845684388815120320912977004392222586444585019440582685430198538234441838116978713153573842366248020476924016190809547574213971768835453133655791923922089885013483773221440980685935213835102641793526123088762743870572990891742357369339798530935659270812833144177943777726402310841617288748812058167139577931306681460772454662527568544827538776975599167233179009065594398712036121018565913870224221281770814064118323298095653410085131586927393758570155075389367813635687582655914363910369757410683155003414138005430631217173538945453372091078169618414319862769972530663539860647167529466121522707865370652154133291447423620274517023771993642621741433513351814134462623939081888398984701669087730595412984314281118060980408438816591881532282975568881039725471626872767182226886537893719211823054323052024417052621577110171389790871344004040764706945107732635178747274452087852944708140362598218641395236158957378426911660545371003401969890047758123045713707849115742780116826863150189538125035318120736884496145721735423970630413520881096704524424004040702465821889809522297614094794328826795787342218715347211924200286466059701066072530033687735955817557584366826098718873659297452281464176348974874665513335026219233405506595037904297909893447453394710618391059664448951012153907362470344919274234358099426830038424165615137575456285855958388976019917304324600418133947782201963622184893971945761242650129154375825378895200792002686169625057933675741063448836638176396353254126802363977201175208861855095331884502539855767337558640254351988798624035205404255428602640977394641696968198216620169484422982050077304983361249539743000000283830637817065031491596632308950926316067862749926647383150566753246484180345024168846005606622653257824581809655887085037892408374083501732234867621415110912415261113316078837714402606041131645826970440145971681317994369542706200836503370307938136437583773925924059511135806218932802731514417045883347293064084310153973240091962092594388173616264076839594308167461566473673396951717368103808571202488843235781177229654939627958644294634938469916880846947583097490794841461471751757478964498679796541489712354782823236975719692891318757576059962993084551369264393618544586678725165673920462478218746436520331280870128939993602622999375879865710956589243988478358620190413959961884746662366555281871048350605474507752677307427344149066556613947253946288261681895158889371947022493923768477349546359392769870665351112767851444592553441150418763124503873394911161351614199639148096931126124620147564513701758891473697085723788770648633746931469560080309626849260613462595581736067869135864950377908191057098006300070198664216676748735205847210751895583600870757122678470239508861323285767699282833897404014010430971292772193067726898630980004884286075511172820197490968547070303296390864327771997205182173634051275976440682676238482807187825303623904225204078058854346204636278803957357377571785188486453767029813453266272035707662780089347979046391104663618631643596582774592265206351667814932055455004928717171713723590161142859287287103731585871078657857517228444224471385011248344809643655056329293759482216597978360977706277693406894524010059080874450162093146429810241798932323930291390890940241913257635919259517380833886874557191760322433158085229631444722804103373458080723933912655424072104359129729425162763757363806833280942241163700099368660422912140751119239518743504947184118003172111782180334889373077985880443640202643891032482571071274966076236827283039235173678452385607169824382200374144743445936125815887306600520906981603724560029030056011710729699612690508175973524101114261606650129868490871133525430719698734793439542131588431980757246697303108825698538280761216198183995605908678788190530493547666513745372783918800333725578281778396606814790348417711648236194248699303664856728071168827204384608212525991943022144574431366639280285744953261608805083886544014837763473201687326810907583822111095409821628400712832059355536502979180269213950928761289366419707581931792324846928543459195895831072218630143716666120407639288841713164587744929335331073982853899020995705326216161915037508481831575061912789958341399756941423564378021230729998926303141357908596574322835285005384136314488576062076565656883659266479987202441031056742734443374349560673186452656244921962235479930066130481216586370550282438593506867109320064587020111201151452022643093903571476001002314571504310552360312989119623755608563127423073296255627118477979440832678882808853186768630897395710946026512043608367196775501463698632228062999920911593846492622328587956666274717844827158241534334706864204116189299383688382314720389195696243937473216087510391341797342329014627063328637427390995080486058296593440002161117042980430143284950692025182117754458572382172696823771503411856691434661070370912308935802542229291704738172425508557178089423526529048175416982720976701403526288947812707088180136841340103775530237266163100938315788742602266858044203569329880583889974971996901781373325655182546380062220199946508552962707264530128451042740272384669498891126263115198818805043430448454479091120758527462093347704542955926837755624575482716777460210668557643688468987707299113613140082892160682671148950703313543109989318653469624248069670693290266807876101902384915752405987199169649444045457362036844957322284863983915212818320042041688551126287907142969482120259481228543202914301273882209616614627922972014113721067609960534662916788115883556313214123977015901470852809616735710013406754086293974424125877010099980959552255398878517350489784126918294302647979558251924987200914908834909081075608005659727690736095699932993818138079437217871693281598614513488849653831211340293328270606044212933601577848642225671707513314278059690957289005557605517886967477119113568949521141307093615530710355451721979547491882391645391783610443255174770557445028049385634426669704678827415188771603020817117063561471331356948243741169236334275383348876554882135005773199728848607127623063771674402477878215720712181900554199007922602194401591926084581104694638399562138075426231154895945638562738292974849724974943012549276520378740762651659485136274990776765916903400806910383212132109525603667718113726973605816045841684884222333740279600917306397563781820038080084976941307731956530385996766248706480549766310307916465222014068724484058441589888911073071229287037013460642940045141586895634273367046131408533108579322874705803303948269426969813413197326446997076597396459769176801312059814478064275111662799816616657927445029917566130069265437357062673136779576123778217777812693701691917319007067526656766764656184887454167961459343246674651956859501869563653600125768035469597245780217811324437448435607593145839959220480201239189771910420287500247639037293562256623940993673163792568426037942994925831021257295343721232753821081955965720330972424044819538543875030878065318939192540068715062825703148495429064376502374658809664253494950565874485515359106003780458953326086580704826178868492982412295924849007430488146968477537715367252853444916493793642419632258379612204471708962912000646263952752294201286725561517185159491220486485281985429209016542067585691704795225514796257924763242487445044574592686524474984559927801663079407340158315795820102616608470115214879440159747229314970059718561170132267464910591818320576083343976844966887026345200425565697905108601484973391352238615449841325877353817015599278240274130709169576293017989552719313290143520104546492465173987662361597571085903089980618698068638041942078651187167673583377742561259401414072766944788882696363207724229759966619075970149875813895970973004227526369144502832077407289586951774448492526890786311994332548432675016896006440287977942863770425742646353078905799678869591453065588327574581500184414515752468264764465799821962917355745993274287966581057853062400170423539645591089119950975264005251945100360795273453158561183311955640473713378120438025753229871836927736041582908185341398488212135605812256807818141691611612491054415357519471537857930433190130763404273283334889621976167119030605373673071940336569544645127360911950315417028657426494490681439673688501607416859712075378400385148299370500566513669497012164088554083208295414791062471568094793661374447497517184722115982192556392446066790025483769621716727715333242549692217480711786709191144352609058537037933264735993306678275550892480918751783232623647972312763937388175428022254802377426235230616155147667726027896027433789569051987255446604686368579151350432497699530341981463758820000864213260213277323621814889583080723038708957321033472439726530613507055942816590057624214371823690643895401244995137760165522421971145504313339666649178248838550212648578281184965105717552230568444048610096779614848130931559378342018586477862626098372067173339784114158647329556623025016613970735682935182526396517622418765069941576012058120739947233431945037206479412360072412005028100825880234029763234363024612842942438216772452513499688847177460399372780675130740540778244037938152381648905695447489536484660422240310824342785404001571475652350704484044390116001046804481425159486929071195703877056826708994994759786875666022261223413564033709467241089512950234389719474401321577595272239447887799533795163278278297382330728930063066293204358903342565771781011055433508280466075253200321406714618454117595527524390394270648372964254609984155876574820910588126624849398705011779920735227138343031245041306278793688870507898062858210211797943676422543360090387360483471361930695002665548239845969533347100311186267930427931721567758321255520965417866897267281630254342657003030533776932524234144839624025673572011000740244195708969948746634149365586710640180693372871275860861784691348741951043154902920828649159820165445099508663829481479910496957247299383380158634891756616824846060846513093436146522016125715274741104382465062157514403117026088056305452348632423289077855924519689648377149802226499787801159303447641068417649983488490778118023213186977475319531950153317089652925955502902682680205611339987912037553439301343527666615326663077009416327743445145928523646700915637319547070220825474556977229443471845878257860330317752943448698738477630421903782519263777759178810368553908148134861599168924980487987795835913877250092343752602542922469849626205033357665340826355840067356884482550748659321690547871543452717248592076904858208099042483085283287585907060607764687233368675946022398603962471112719641508578821615805710006285315330944531072898243369507304975148365358070679224714734360321414109848912808587062659513473815401556657006091428055039652578105288975336052016489076723112233254373424004526805896785670360757604785978512057881495023660270988209965241535899970435978359626465895902376524109448401434356331813502944248926062717252092973748847073442304888064644376815720128193624456738564196674096997822210293630320423837436587627614498889486531867915357094088036716233082323628479705857694806149387090553986375507377909147782295532176899353573715761233828424014581375372497000279032034022987514563684718229034409587451054100966799202435014294474996799572499443928326426673933203771913135533704004254190372065392657153919548517460362690031032950845274966999415596650707628080328337128873772974412748519427308400491913854886036189320975928071471258112782372814913300555437062964016067427873377702981788879545785763782279970408365436874928866444468080574797108706242670668780918444317188856394704731204334944706543395585158928106040813760323138604794166486590398453938393035223313806637870759682313085969640491643690854714625783925092022395579866929111264964337107283861589234907512216010193024690309645799347844980045216250980348321438012118883718016898067819618451220735467726689034296146972184264097588724567040610334047960563162521297501591755392389643458508740890692059378597818899900976956697382557994964078208168930995514196800262632973769401353005962580734106248084659055952231201235256823234969461326622398003931772237069420469624865202208478740733136154597232294037141282943738899953650773337608581276229585174656876587781539680495148825452657271460591393618965368711058017056564578892417911016585268818761267413866682841647591225503091901755561889482641463689616897174899429432684410473685798746152967646461577077752201279454457019413602527416642763718617333636935865300581076024234730529411228441943799351722595164172489365309727085874986026763348264807661126036112969251579013540281554737827829049501710500647202178005560655022675942934994045364974925821024649560334330249718857862873976810365898352179102501860598108169059161666245884638439910814734501763266465177324504572709465500734716265431662001197530133012653743684695753741696097627345136425308412720644695377501315662644744410347414856034820388074842684055660384100097003801429821034099457363936532101354880892143584218152147222456363936953054991723586583591404188796851075562884730001449559381674523847600814369713971851894943042807170010537576806586650138153945032183142515600486955044564889893499646388572995000040620808446121367118133326434219792784061570812359086320043476420023004716537316654596322488448294780108646744231562074291698492726574416682182839473194319992234523857360550290065072442121907981265480100847779020839073291894698268218839459462197450242039790524979365658554843242013915231404172143340855616112304523240292299117296759436744807033555341011839548264480763548029662175623757077329729987415641972728811012943654626573646387371136758397364070590264747348943280301725677164874175312003633761999173220116236341080099290109483194658662262683693098120252799847028208192257818444137649479714241503101365128756477264542887083308735088971057027761047576882930395418072106375424063134861554535999418060955061113270065724532208347594973570480859465899967590920963751409915340067801231033581067864317526029703138499306387967325933670475831482678274643049250205944258164000207044010128464894947211775614411637433949558034878441554061443150758758089227748376278993831670399851113444890308011176653426475027673757365032938273079688050826330051047859641866725599373083166001544770308866321493923448906678518622972448847675518039847254633346005989161102191107855249705360038168187682624263440171120610072735036946597813802880474960219231597338194678248208220668767968381728975282877046364008811228492197369982019668188079193125251899002191158434650379329755783726511292372929266360587850347076800045870121760185234810675206386666140680894782841211492039830575332024799310551100077220818535495234719586905252944542372735352786025201479061345668581577803533461096402095706350592769590429797724752097888560943691660651766075745217169165042866180288360486754332053532949336669599597659993167345344598975677248084887177843660923798596273888069880994794983148675546107811914116842973964797225542732948766668960491544404294180524625683797532328566320542919856721280858680142075312882981455838843250583828211554284449392740138177343242527874906644459594353808738429210141540329389916061495968453499779188575148633211089470986368660960563641177493208312624505474643482021686306946972235637473742054549494843624339047864992647399853640908220142133064046432351416790348730500182587713897704094795697290300728307367372218186628102876267165583182528160505993146579056208569453976733855375730970774334510645203336333695810396134564359102191587869496884589783602662711351019017757729194871996884016875465732451290753663923603466775700483567511410045484797520421312455605951422826547906913870865211608360754841230272219875190266584459033337813123787936756767140041280070378579070331805409974913523523306094185811946265508309471563221896079202054880698388321785581764975289867467808165328374042460489867266482126231348854579231509677682168810468781787598857368477951302348021999090484512137375143025897772624191940956792789481986731025655275839373836401447984726131047693982504732272239053164141464689682844363065680529260062779397757775949772336990853421087302008443192898221864201782636311208242636647182365024455144050605705766682759711108052098257790702921686208548589759021617943075772303800324908940487089858318155377256781491378649035116962354174879831337531126400907463876831988229785097133001475208414237602681646383401129425444166385472979970954578621672923057155425259961667077799172018120846141235924042149059937057750690200063956745079187709372617097115730259128189349753738758339140619690834594293534573883976982122023293747925032952696276322602279545942738841541440002314046328677297346818140457656010390936719468751228453746883420337542932675972197966952045959032342787326825620213986226943701339332646891098106686376199029317440308901981244439370790529595483093774874669385115231596102200032532455453110499422858734856398529679299444050350449209012642220159704464525921249280370265109398992394923880620734757171905261367920053394035453084857297383526859163886656194610285539679818919713131469529214150403040937844744572281094461637738245030922319535408459081727701296524264934760282354735831583124982721643471939912274457457999042876485120250801173480605523105406802507370218984772890132306727971746213278795372272849017708757522712938480717927521949006346639781558044629081528524104135892286765377227050853445991798297223386126966841470938995666750308448576166384282525375456614787959221789080249138320304457850114317898122093915766739889819832360739972296834249271363099093360291816996740847777777441055892096391337622533845425540171114678090427995585233862642748483631224916342715839171521941858214545032673328235351787745067641897230806831698145862659768145972692862793049025407067285363507237983563639436267769699570009837593964054972591182398789862137018259099878044341424446049837921650737016275592161440539612953031017600573680327051543713846057449761149559018649391684323969604395068404200195729797565271209901365232327447707373004021844827252133628127787223383641835236400177847815748993483922652276509976236726502839867895524197681985561326776074943418138248675612730996330480012540477829877703395519390159073560512749524762939578763572679710367450693231342865316279090034173669545963364915870110127252463535911545167493481572790246625557863202602270139237304632963193829456221360926390205659709362300908548681469681409322443874347573401724341559118484992617135429329025742744259416669772273069425844555757473757899638495946552919308550318768882034596401708118332725677182926831372121356650684525317856961461363980926228894592235288904806122200181413213613853825450297893497358631510746422510529727750053300130271159343800360395511383194924088407092504405367950744433869882569438327373899975997900016157564858103382909638156987079817745828260869409933215557764463191243146086130737619930906419572111944780566451564916540621351619587422031093687270293308923423239660089551869091953217647249644293289991725504506437820181745833401565231374168235292580780621418531670748867536875042676322372051436184140233444459887846301733670721643040411789101765560386545272312021715329150006831993430926646109472686061802401220907005419210134911594636306396641617481821169182487902109649485345897640387212244567500300096812235706981729394071495431643592284279795957598105997176564320345441859848340225980571385372002962646104195064886941460639096382607926172582251214265745617391973927665034358531114387944575481587786683478637182236541310982506482515751718415907058904175442157091774122012238162006105455266489926401604365786789542249286937166315564089020970669144587789113655609554434327250722616161540222321088350271279158740394038401419599491533453884270383865755880433633432939614854248998843904727464288681437370748923787548327313842652908739504988527751304323442676904819966031092040975703376597719177348745494779854391478224571018879176732121058959648737314689412842942865928323024675155079135007694159563092225500853878853236714674788754427177124699121799396329715432874304125594706586433301688641058984823473592658868743280637078766112575550459197950937224464868460538020677341426519608562986420999456145520038739321033920422965241022080064005791284153878685688098724632447893632054369512653925570092175710640831642791982188620942893418592961553219517009237329288988936353200071193576716895923198508981273893312581350231324893345350282868362015899325072973034192845190078110563295174329640743795981288961662969862353689347465230525817323219384046237772520573203270837651027152957990786646403013804579792332040680849585761611462068479937210354236246091622798355369979511603550139227286977508184230760046603927846595738695599762819714791961529837807520246098879296218929020109414681245727877031674525101079243217416172630330054041065504065244751890469036067701695855055503947629042196414907206837267655715449982928927458863190905999139179436505915867205183235572601870801498195222069158769797788721207691297655092622083855703460997155612448811686621096328773810127823629683284089355637720783167805314811389846714293159298139358298367280081213307264376771807307763015349047157596284232003207612767692939300642212923180476570844425588958929216472763561261557744044742497061830278815711378702645303783384527070460458744182746149709722897862087213742901830309609550666044595403764958610659402892078978964140130602059737529147070253512181611095891359699956757859889051135168973745633217178824059611707442243921898371002179095122269687431262087697223210976723551525929949415688125434325400118118818131655841902576960574619716839959131579797206707802028138842387202500191394241571610319766222771805192758226851320215276939931697229568140492183132981274652497657713906366217347326782460189354758981721190889129847189861420001003627935281662025550212491207342199593341185486128158118076489020977640594608108167824418232657844626452585037632932415503525755586035944888669232932774729522156845721340025377652664294163052825430480954128374375402904244968980587798473250019899656733589684776112220641843985303297158686852567519980946345938855891089686664994404920328836843409718356936814848265121313004386797484459056834354706663788503202975076833972458622647693655628179222737032260674103296958098644026356745889662683593535867422684083318414024061066523036637519524550031007021257813359656391224082966055762558925833586920539346279494213583153836201823041061233316097992458320522594647966416695335519825948783965029899070105789596051125714341490208799781778318542363231569625752533253242089227290581848157826686317771634322066749123012172849772306927106240379707099434652970429710807172815251584679634560385549574355626643120905125374988700279991139865750580366730938566442488126324328499434849877413226992683174444871691345565764771137630430195933621100497228599452787185549508915414710626989250289936651005913424673127123151030728912159002459792174285897682774199214252355006486785021999746952716339543811716024592726926501401381030693341870111912893675761349288788980420286877190356339052739850383859361745724811003224122501727074439487080986523761378078407424711614538680236676955793153480280031635665084757330458272233403863863464301185539194836178573368551299304054014871032957580359095991041726518979756788768508844367696227980933988578522045924595612461633638071262202606259430400764879482660359764359304354768101030756547063992097040166863535444872687264133673746538725086334294462548227074973880366225428970205648803053503506483105994212610780211845632484121934040811680737731818787800248210475791167479372198087282308125938012208989586040196798604525347074357070287367744354199370603734852868648299567920121991646809779844985164429985971946092665574414853054767895974825170178813909070789764248820362315192914931972310836536678740658526835001007134355446936837041798485344400213098574986037500999927891477578984187162259338674595547384311030892296662809246159993766255058640157000992355737239776183468982567496260811973205973458014090260765824794128066904958630767137264936878157142122687708469343979307209330742556142220098705918746656693012117404336578777171009505487669433906279064065728287292694298487738043509227438536432421412818950880527379605762845206892997190255803591833082266417082946087061775789429830117088433943467197907547382043772215294395035946012508610285449150862855413844065480251503567732719097345093719012109464470429974390210153934631850140523278566896649569324928646752124903458278532715263713744766865310127048284060580500690498545593484625832170510642890366895990778934314116520511356604232287845423866980040684481292886182027048733165408634906772292349761940641850550673453970797542880768116128494223157583515820593933260812667143990000797435946489323744481098384031948151085792807134577128182692238263982572243072207787096564999737004302805091454586512751707005501906239201139454873972229253079019484927711773639267732936412730577852182406004573444314240696165430096783120543299919825377840048944089936681510654191427847483111702051584048098620191243068306419682687995838690467013802574276652484499736004058661750945052575568722780357746198659310516805052286058012782310932057185956201770008111622530630271040131813998391302872258183227011416419104573765805602659638314264631289452278746540719061219394904935546425314741402883118754391243894495017166858274514866161038168639514686905263294285113873714107397924537344832895348826168183168073657040040982446693756394794763030886098580340731270661028695866832872296188506990695330879860954815695158917645364120555930860686777955737610643385261623588999716575480976148975288213709861723754922406228071196868667035115902786785516162008069672022894376352516714785895240089297431640730967819797164406314972406148176494192418111950980470996234476785920211759967228753678381514230458861513419450414481119529072076770403346177738826093812809846829290589432420297094371050314843412686738223764875769380328398040941538570818365105961781968177893140301285529690984630132899613556448875915350962854479187169497389570534588783815753786895921757919470316911156386429606881609805302247740701563845383079343537838560582129566032668402608416415871310643436070651623613268726916905628866754619242608722948259108649011842009255795348454556343368665300338997866559686735285309321731690799406072103675280213602613129831790194168331754663513919038939553336897002659132746983151595518242947722172008448192284340759659195550257694218110423679368396773631192545840497968837863947085465594677004189958145965018041868954168667258814719608357912969115855603331867703343521515038170311869901736857330202792269850761773179209900709666539035387404064984695664888184274182312597664580292384308092373437282306835485954011793813326642842002308564073712265480525046942272591789073075773704007163373958640752904425758965443882929309414446054142682245393645355126593907150968473398996754467111588770360885580034146614582561557313621209032287624842091669639842299190252537191067824863639448161576446912699581946294193884199884586315751900855510081812544528998162387039532388623842219541813214136385607630445890685282663547279333292841574043784588839605652047459619071347548295085202789532258749918402478893711438687249965080194285339405917872830889450376420332725416837272324675262897496987283781471541673196609505950907293589238476035501703392434728930330877798305414299836618216664097373454227833732125731794642513467336074921983294374975828991589011573788350513777939796135160884314269239578513717916429524069968135036829636932623619174702144245107472275516344017139907761617816981219983586101402168084347374188250217951081804898382756411048050332156277247254083946698392211459677314600323080960976368165020218181153516135535119046240009495053188195529446827402932681295523399629902570152225699221030898608623235704384800109983940841455379053902803903485352189922559295879073563843929063082609594212009234251413253365377267321853883550137846984432972977323507163333101203876509310596005552538391046147995935998343278101750680092515452241173253701389137431534413117303070574949570986610700731015949970761735373044134761213875295457741634610029047815024230784711893317312128511325440026963103955537553902691304996912936506689322157595588300257143293940088417267019875747017754348032247260158836259782532495905104734044660655864179049538248424133795987224581712179726202988936780501221247018707503606538600640558359819048394950903721400077464236004359018721071388828871934548132082927976886755734926766209464382002799841725122652513767374558143957152888214839903603745927260993776362386273227483141278851795596312071223657147414479693911242675564089903164543503314662321686279363921915062583659237639438700378963011510390831085206732721145631761224286424633421478292536939160088259968738107177021442709786528046783068944159605739396054294126035209084447903754753712796498105928760193093674680874949379422187951983833734491206526763814495540309170035343799263488444317718912989459511640105555423860437488625564871592557896271905993092530333925298269264015034515534364569686296888747316590108932794389713881694466477470244876606475317309388714892285096442352960210846876864693965872296204971947040948366498045958912796781681286605020931236972002127188577376755943917252646905540738197561264692672596462718157972702003213834463092361505551128265210008054352625691446230617716858421885613982392462795945496710674662129378881948684541179405669912368481063184048350535731011030589196537866129191195186560202741502795844934304391728793571346230580515526942977268964548495222029156064329230026035310310909312648417244772777147528452398824056096180332948151291723681640936416957996739935035290176101940955531170991621201840671510173679555015508130027199494943252886503078502002820554492633414209482701568130864663231757470835152356016936303153661979856344223759318983942362994966658154600943092569819492406877200594525474367079289989727166796064238466106399242725602966192314690300435697463104902625241542347221261348349379065958694816731403976713459950096122581129105590275248099852750409173466427843376681628263932057245149710933281540847290141384434194819979357613764494434979410578345993239191263470233445055160668168217667040506988242577080115798292271830636626836979839866125565194142936130172455164523497838049168256746382662970400492107577387326877764660263761161002598087255761314037048680755918900883829658701082646853666554267645124112993070562195850430312076390614439663574329155084149135314635676938827879824613203769150799815619416240286772508604414371122379017653148916814628118463302377329193203056193252807524275670912511974704308868530621228282447367399075804668454364036710393672367114186317764785707593749587453543500807117253004040881089053189916302929895104876342143035697177014878041847178418478613907981597144388509845777246361660692397396890589034485080118356081490700233495400312850013893863681075714504537899442326160159682752320787293525784608339161964085337305603427397272202843219333299086656415577051708215060503250974077954473612732094109639285941592100042555195459775065245975053165577070326337853209556189613273232567029759889542208889839245938044119802065981565251445056286457641756238530517192189845401412635458135166992896100570430404814546948660606706415010515413432973544284608419389112524689563225844787011994827079023489975804794295845853308732436597442722778667699447670571053953117624285461487129374524118231682103968164192711491271893030320625794922063775998169836033458100643294679203927985228973170786939519170349048910158175904391072262279388138394482103614701404133405744571083645801800034078313650709054152775845643370638600892759958290075169723668692156008387945858824506952531057905214235141083181815190082068796239476994078576988198391540033225397329559518063826196678684442132687115277873616239737849697303897986975910134479467063703827907252597797302223609473076710949640062397573833070226753987720966038873974565651668281081322845122066733965778672028605829224998816089724776959617839418406660782722060636916524442436920481963602808304411378346365326890358692001184850349816495457416166415505586467044210525780578043565115020278009355897466053699283652602077400762739238089244614717825779030417483909166600341089133047801983626088821042579588860448650503227719934066904790694282787340064655425300455911422409440927404031909067016384222002608772154479564806838133829427997453364087542686956669969726870300964922841741310672685642496037058929006670718969471601208562148811793103976527725394096763038528587596060454312484137536568301709108439666124291834924757345885659996863414596625639003922598493878997231834891108036802036276277007196264181470898011293255252213225887059459796250582517451864023097424764374938485742748241622987391325580301600725869354498996780510993521478521095063501517772892611336620710429780045495065956003241125834921644928273434098176415342126604561535091958140289536148071526192976412218536312265648300149038458061602010756836023608238651556483707834984647643985011391043570552681137240871418028551531751524143278049915301167031828278085833743411558218849614748481297593793494637857027345281697404059967771819563474896366402340290245933211675959615665171301894690973630180455465343430127186747343875902944525320270572703724299545314864326111169663092869805085323765560617486047812912925468723622059662109839982212608842479325312251874119387203359859764887880898256663005066289962383800800901665662655489880029797128723495361672219420320802876863828655875881421439979815991338546813822715228762569384204504985620927001807666291805136978120303182313981460533934505956855649545653494657065142805891247748375563516526629696739701613171369003688924704325187299811868644715939853399668166365900293212511332656764557865068081630019174763387678496232688786483158898277982699291771766669635881159475189604593739568134791456947347799431963751346161185024201974043927889922407842645128394361107876388052691848799683452176078850888370326513484259737012025825586041539979476036039206462913614877785463627647137116682309752331712922247684798230754436225205035995126335930334174379400749218661501831561723274853089832986134478568615906418090603066614123548483765848901763316308061454760575671041582722302829306798220850978588115907536689059584403177643496502073335510787494573760847954470599815394299554978448845553379113004131041465952753859414758015781461498206038260668128244923225447264043940284068452204444916860473541704661102437347699145624619623873518252057623045161462210208564226554272406249475796763896543261346854564275849344990801670513347836718051738908518344140936774575277471725934918511431444724558641026639947442140601536685090799072876635873071497254555765751738954322387803250979379534467661830611669915070067526057087301316768385806895475540587432879594498647683571047251168600758217843081189240148047871696483932360951631186505450468580104832546525104837619648043142849597992743911780770091603574851401692173553252375516206968979141322073482233005557813389664176695982186876220201466649985023553330241682330434112892901605111478953858402922024621606706881257818689346123478795863701196322598572307612756165665317142278880821332233064709239220894100841329765644013651478260820677162032088151842486522020158941293371269941897115834364187736560456139601057407478073884204927976380375776384713289609454595968765743269137296548997509596553210321332588061636372679533421251792710752703496646847108464400564685511130848867766426150614886661388488599862836001589998538647162710951485937000833279118069268245805261041864885159139975293245081412255052647241806315187451910301752303022505356024555824965162257613943072629829874283240390412296000008469819458957541276841166214831336917007806407368776807795529432119294803935031866686812865669610631610351725260578584531428181006975227924027188912640660832250510186369732536983221018993001512322148338741408035431651889051783619749373829416309160913743427611716891874238387377430348137599120550614515644565500931723573206875348650483164662900515419456056908194728959184729109514037611774552757145155428252917083673306013915582929354839853208963765071027573925038521602597975947329268261317001763972632667642758807366012814643083335349666131537053290990722459099722960214362498401549232934485065874824720065811373229490100998898026144949843942988747953894121651304215476477227915527656372295664377329815139595479899605967821851209393145975593329230120859904839153970802965836771646089234469880352407518672949073264771133765928384532973833057632572131603110401310197687723579950482136964962950359081532668699809571704520126702146400910645091275969390966184306597345566943672133336392991705057557084620467690207440418675577308252409635016513821984317181848863428229491581467166265783418839330871570356715305848135958414307398036302394957244455131964858297124775247967448002595327807914564753987250938287857705224313344684000425431195951575817455669023605519620291149330127292089712810563585369460922883962836708231747056225884873227442077890633871280303736808420728909604660305815305387146989733770587297006866924179243996586556452780459678482112997833303787160372623308187614376859495270417766136641742429671580072746091909894067018411396077219490188976049137420734428502539721254401957829619510560697680756912029996328398839180781171019077765248971456054723431834875663165348929888027594453571545781977878790786162374810573321974249119979856439133676830779411417990950283858360605807502938866556680371385039827365364946381422760005468847118769608644965633945008113534302061886018624241188792355449814449652505191628073860689230908112290495690924213966044822076347169852171777675328275747409422356024498478701472965020470307160942463963464035664799815623580026584334805031116649750711609155004750195001825705752822843830594647040573100525975704228123000013583450726276586259403050861555584223569741876706068974334183989043188842274030598093797609630825933862930317906823617218257561315353664106365406971249194702236639303788758158076038894151394315005788636744891613504863885443698273428924487894168711593151987779009754343865620232324725796896693143586973611652924854311489175212145953629823553439485379697564493837649642215265244572088277110098630490811203122782579966173111500040933077140829532499199297016555487644750023786927014261254459778282144540967017679883735364687121607073934729381340089784222379790962695497088358552565739628441561442750298654424528881764131862094261480598058857435007898494944184946830974462804497219920321664916324469926771457592269628839190897362047848953110589897513981927638947882947578827792608704539810403356243792739320526037673654474833367819529373219838536239474437130011310585948501984178639243547057800155120428849483222245885653639580709056322382911966457431882866569249815054455173740974846116197182336564498610989899610085112607552260450921097840394297670776180470266232976910618375446493433963079910131898817808912312196588922787083736951733478648184232092904893834560337582224860200598999685687625519354274081902898834888534749202766824120844505382176706560930945108396093713069081538537583274159992955130936054490003458572967766811938905238408461611082831293215287629338251782405299043513296247367461764181695613037186356787985455308281207742944583625585011043048434740535741629999420514023762357247027464548710942842964935404846001689799196735452892921128200342202885761118250375219820658796591022500342988753744747255448360891934653787015837546031581657586443410325431455850619516599512363100838724241519673796515758707041549274260486199339392916194926782255177476392636701253307116538566456369487832818413965695180810274986304090429819234477587289654798417114196527193345412599929760619296643782388170426043267319124846879496694527802637586145035999046322677433442619196650258037248935705745183428029478829763765281490735157780552051585991492954700003354414772767135179783345710088564667718742027189095117282761717196469606324799017926260045184051975940384831350598001149812990408363643196625269252145594914579273364618745223278893136694868668118200582255351364723874631286356793399030025903339248815818257345726218689214556159931143620371687681837507044597633334433262309840146701714749057379342314517962844940890924525618925997114540357974313723272729933226155540116366093114999637734934827802847010794704975131806723178794377944058908555712657215504916787386038005694550172116786113989736119026526160043133481450855331288494030144932833127832512424064476012120316276967961918347197716726126259439332613023341722410839041540539562068869356454570661398507903661515795482956104227089982379829661558248046815136607537455762547052494025349068568830606940101518968835970455567052217508772810776626406290155084177809760755486175760349177858138549533046091262611522503229205006242798085917162198252103951998570924586519497549456264229648867157272786348028599727111796312791476471547786148154414762994779580009115485907148740225955483667291792412579891194959280089131235158110829704363526967905158837366148310763798748234029340432066243075214255559125121613260075013572734296608428449410482679431792076584298717182503190642991252002411622038047840493193417751607770670317900834500930257124132633832753311146291436203522167982159132580670398733829009534718438905071908452805968747841441427986804442466322730466252693473968884906376791251215330974494870676048312826389236572568904805296004443826567186293708517364438028725185831033752981305266741999517586714684859038243269050307343510692723958946469311159091561047170378421249013235606051357985726197663390228124946226051535968344450525531737608608172204874222562656421083684799973203537554893372091303568153080470221417937785707000267802744311495112959751874112040231420420450020125121126842266605285327300286851907157479651042829174310349974942395764591954645906615823496419456534343839492878871063618977654916863144588307645697543474571693295579709214302317034450131853153786908170194315913326395696210905353719988117987794773159618067833884258140953906049021633326651816437614715219751724615775509927304343372843400811588832522999616971769088971452313179021069419012314018053046506036185268750427097053208177940061459530989750649479030473458205792939872686593765771311670436952599618078961227274761158547984876280217507044287575474257937127813014911069572360501937876842068752650525533484635874427555838488056259684464629442184441361011353965182610089404302675981360159184441489289650734618685382152974409120331755606221878461662434201119442733030386177586762761181956326447773418990238473346155618878917154660954153436782447938189542116321968992771540428534299960768001773551081015088032098994078693976926529338005149092717235916682264621340474649348299015810110730106533990711528198444129368125102436276451987857372385475951736525706766799039348482378961849070775822835142477658928144420320563740002200914371123146948188103440599755012524835112269993831933751231048954104790074299939493100696554682037565624400688340895128475509009882876137852942910192095177733828143634314123785741858712523742539513816337992464718278672181910092907722524058751408190072182860624949098233751997664067010550141713722161369972876762350040898750409708517950268143763762034974550807688601650362452513559661213604725740386268082868159897935151304190951737125521972074125886342503366802800559968369991599384713639458868143362695484254124614622024734769748419697197932895048639648793708032002606146989625461111227487075629228493930236421671816029953911684495685347849845503781811660015189574683467583447591636195270282428156939101969464357573225570939198869347016995522660475652061894394678070850068932108966546543437707660249110055944548622904244395514911136243551946216941905260394242280514221349310645119273135379457140104794964344314948035688388045269571217835684148968449186204107206133874565398719341229892067596599736225133434835819921987300272547473545122515208371430534030590805759294870615694848141033606802058009203330663596650250948964932509891012246925740548191420537540970903263992165190731506923928236447638517173407552930083889513338875282511101044457575901638602496208872453062911403221851027279490461732215897829054995610225322098270789559551396359238160433801068620393379981706830258339364095294238032920429333450329225124368295379496573781380927626646624905605427557897755236850229791759647917202332224809518230293789287373834347524968985571257103740588604524787819462801245995200936146945714524532124380940280426986862071612412129987348829631245052372340299423375556660412874030535452047024200909034336265452818995506247390167725909430799120860918791147079116295355003820008575682974568815528170388380106176264825310535945230011750269037133560338693198134907035786099930535535195333680427347871339293159880579428146135017953368594313960602683261031063711017607137919270203401499565808112745807204094885175745094858342241159048739638755999829826151502962978382681100483997980314805136633017179164956313316419442448183396494757948249197705079607081205016987547760402618968187113471798310413706529040021294457406059322786682466994548808058762463015461916129732733202975010494712981092568799085082517304300630075725128085573020301932156200853962666908747787152517837025423223442963813074518476912874259220229160230122352256051490740774868937161991800949215957424283729044987086418911596743270763102443586355962287456949606747262360739114269951802001593997841096966229572773978491238543177397356072591580649214744517953348033903030475863166578690141181289717190069391892961182178710181192545953658798666771512331714777647371809414959702155406227796851340084632167476303717245381191385222888404791780764679786415242604333522625721979707583889973469199749380833186840353329002442400062366320313196578643192826394765325103900882682186445518316695380805035091658063563781801401939643721910116025779684033955537718461299816013164754803806385013859682419108300919029544643090031717258529968401518348475644755141153197597335726522069253590547536138438950250634137884269517673613056781225605284265050804532050806439722953908190902986185578101300682765578670396405536118774039808678478646939896085845411636277084548727096642894835872250283289921414939032780314406134273085559763541482909577393330993278602055145023665319406762510216642516574909954602897060819700181814885941904219705185305251148400751171449596297710459574673496310518417004220325103316070787801436917450500767775767046941683238069899077893533059191667400603722778150414625259507812964166907179980299306920468410893443236432032410297157990878683282295050777096338682418928448264011185645581348707378419402340734733284216442431282060106387503736272457819142856427031736337549390323000071704309250507835484368005256157324184940230396667239475249886786422637076270719357247269169696413245878054438401944258336081848994090194959610513174821146006167504500497939177312413528366006870791097813651419941054393146064175906407974915522192747334122771077631370995966149323914700528285144751185593993343621030458535434928455747107077580941119636808740422731681125659407462784960826515528645991414509450513069410497300930660081422060003860425113402298715111692501200431175565354563694734945883925612160408519787292910542614860933031010250403598532635938918830004843972776263725765752123499392397932795521615519603970341934622153254044185928025001146499677720951818998791126655622551642278289909962624376812119601380981721368091701635722339431108030417256226378195318542525818177806737727161572772743742532523353061326085049672908560618911660929008344654310002056904112238848787695548701914004559690584886273928885493886332885464478164376527337273823470842813787943755997097838893272825001607474228525008498528364435030811090431926855256262829866061480143203829913696861839593446101095269140824743888843436652891692077168834239578100542526905392595971010189359348714940704882293199121572978533519267513649466442876054397798011293083585399627146292856452334447790315077792902466147399477574008092554874489701492515958649587206901930440286313623351409325514110161837066930220013165116783116905303336535978410696734209002752886105968662099913439901587017745993789358993983946536343053870053627360773404368527865645695980265159471766760215921375205214663098843801720470364181781095361072677946898249210718006709951017323092134164461492331973437182844330793901798844622456114218628179792887154079787861336008373322659372722507497039357068480185423331329528551678208050340136222062329769987425237763474860323912339685667421418847009295905428967605146206915194652593424826609245295700872159311251625841028913233288121050679645739172104350262258971277855259353138287657374652746730030205361721789816487610379197500778585789099871139125265708709795519160859798744219748006603654099972366513031737048493430828214729848247043324910139961556375108267131993027364825954280667399548950785139007787736293786316188785709837586548525400566672204479119766719947968625477190811335258810339150029121650892035124200192875200439003586528614295629986694032161486595900365398112927867782096022019936943199880538833097125045573290135923852459077772222771748619032838388407559860460211237595498150125915650516566397721917425146092693574958974510966990604106133275832301257937326270286224824449385643890708490290614912593851191537191479579478874278848758085870456063597067696690928050927123350350847515000625684199564550171181379040864443695540268409145252060780234789715996216011617645660667384867652814098581811445348137444441646605446361671369617163713518539319003435386460733345265967249329352283547889313645541993559349627058056725793066818445231018163085309764624560537800596551999040944180300303062969916901516194995705393357952702889462356481475150595908596773218651456592915731301546726438858549626752616078690887802243983568813063643475214618873483590496861555868965605874853003996496714106134038685219330529793221682229911022049804905102974378516697417979327852501748662414427647221716042001012264692762244435111127764068509636385443663582302270159642048814866426462408968105608100255603974051341308867592313479556134644994794334202750542185000149560689036510948302208370717291217238444153717639872476707028553238096811199281344547362984493605178701398446608983347655418233950327271051933481121511107767464701252537052778936276629188368933902507969887964610889454998591548373049434346584275848885900421459481613206349447088546494185706670326984614527247875342585267930862273482772754337374352606304749776352427848838686031940057540354798275092175935627470943293684316033747346936494669843021678680988056916982027632917418932512849647908219640439248641415973396000703010674341592804842595118512005878577302206472885782835887100341934346018190453041205142042480064932498844599906757162368830916119469812638022237355115550657964249750201877792346787336696838922218913733295745602217650757518250278308240632002479418709158021922009647713160248602032689976655428744203305377033620930829571542562015211296124751372802953820511740638632159712211273325041006542741335490302781059911202636603172836813885998302278381355344633380803612491441198869916351789930810305840265689723907940047893460139181856652626545535692195491000439834609063143635131439019089469926301541245280968259515185608013412161375649131145735950720668425715008258972605702698284944486083927424461801914507215074627122007825972831914734462028787468893601401264104969197425014963310209271242545834694799671890890871692409453465833234463183288674249099404796182016980853923815981242594053051349909301594693713693516858036263366787370243776391216659559822483297464414599803833033013394660565834614917289535323988733802009587557610649018360708383998386907201232363283436465337644061070902787152815413856499694990290295841194929252415882050587944793718856829513922787747670048419255247012137449777875409833377527392340362287942707803702060925654641819009782094170247080104026207655394075907151398951433587588761319158997930137134110212486359130394912715327087578693685483274572002269293923015866376300404266406116900019975086861975139680859933669483050760958269593028697332979431911593076926777078542907618757512368709294252451295157008224475030118600288022153220436956086989792125826668897337599122389595303269865084412802377540221892598939485967817716563476831597109673079323281132647856679434546491479634885908931850255609077428078832770223180130725285867809022055129254104900461233505048642214477093615066069855201221661901166622377502161931294172766033399067388502542240579471395129822118243919813028728121767153952033238036132748166097006602961514744061191368660784057338925512967480068119028939086984079720208455793324132019534473774062995427765392000221492800463975157297253565503088004705912982990455238432666763465597599555313403159038723728132897175101905733096695331280028579892248310355860879305049737280422865859016461737545265472299393425010084912736477982861158407205591069122477508949022142127867344100777406101755326829488419429299083305643585281586462823386649603497744200616392960444704831557955398452057576212132060711933352454923626499158252121082142215183196873839995781053409480624094479651813148376003200003937404517428076127131448051939328092601788477946375270937137866037350753446771656933064220674620329090294869131375742756959048614845807457712873113295559100944778044650237689766118341701167242763915276775914183651005450427652909486545010918356010533464337398347406306520305530966682634061602727870047144052243536114049897705254486524952316307953519436287564146652586011850869361242135041997566798748162972060114588356038700182756915935391176689584448656720997352484204544109219685529960727171725560719474654749949083174456487407839110916208293612834747628029528602547601241708806510257337205352548401774763809795775540971318249583381783278486618555697327964306404677544710372973667868305878816198965879189839313385613865196315440524359339320695377642577919553805888309989518852160284390590529018698786233984346262815509231162042670916374678201910173920907148163347923637110984197490308710662836797481968283002508030469923184405162263550482047787558392364379002048408352630495257251392394837260368478036170198415587762799374093542953236475778437902632027036255319536907558366717099961650767877464341925420638246486427022341692496808776996888825467817773672480448119535515059919085696689562124273324204156481569906532486089617347234719756450882839134780706215771865200204311989385267583154189032460249837455732923225935089089289435005431413128893696188438486475576457178524219826163436475722796871477763857724659129934101371895383707112026634189008914328309541054074645443247694032421159071794016673619156313028808907051558380068217562766276307208460372630127740601351847644895806475659683743971485507565615068822700569815634523391202605848198584306511269933434219287373946709675537118040416225962437381206125233186945618839294093998111734791250010378045266864923731042745655145860485225887494573841854398920673088109255848739426662819630950045834232630991284904350960983991728578185666098175395256345946181893669748971049770741963499787584302736281383685316757132856763787897986830072927803058716547753728332278614745012965068310062680680755703030369366439273447796275814422108709169624315122980441443380148539619970896139783526628544922589800936432183609920749070375648829963378830875359565563943101036296228364412462526525886910767291330530869598159112776054992654847955806197511948899702130429462921256282613791603774909185955010642928359665245206656327791106721751137232558409024807981034442554934811088465013276219026249419945216371472423475645257354663334436866073979086301551959636876719645816341162089172627290925642422068540968158423091275530758453398185195567778592162812661854083998812379036363755290580019989491826448285074574027503681685315847765287819705399751967597838946898123473171076297245137433003779088486208641430295122366009473444995383165531646072989802425569171190151293298979160566648404677020621970907355147710902540293775222385993222435806060918927473011298188480086454709796306103496513747263196637301280984699554484573134326068157073397383342426455627817645127582556717778117095044493557563094781890597654707737128913254062697933098903627601118123665631222874951270716840546522586936064574265482012707114964006520261565253189629501967839408747320305879274350500663331548878922685496603704372749193150965194242753090960733716805127232876257318601074888836345831239443436138287862952483266966275350077571950037268509202145198875280645878311472333150338558303546786523988875295825745487367274583151649043002797155403458250733523641778584879332194458814790650696076724120681407004152739766018273537085636938602776553207017031528778174533247825236995751932519403864256040561418384530414661510695683405916602449809049541998841225118457623759922047883871128075896302543861657408918599276102881598523522604086542218653735461224816347429132264393090159796678952074409878137927029113681369934314048919194825997137034825964524945124593277132974435637000823942479572903174010762572089197234213005866811270398008525808260308221244812482227782407784373320989466013951258259921600967487647593831721317810211694449460531622336647669046797566669557857838364913628062304413448016690658892906261686754234129514123297764248682464707255247725194356565398225423472158449825551198262159616386351780181985644466744086891729038649846375327280519580823939512073492502841675608365652742241918362852339745309617212507280771475028465177842548838274354305306212646537106068304527824893862947859234922452212227710301089262610360954256666022589949886621247441192258466574056475008667794656418546191310431858003631248968015794189276637823709928166316549377027610917654290872752838416330332368666931871698942935093007887278342548516979034334313334614897456182190461754456517241738959094061208557245838782021014393773908133550830718232716751172364106482129462368767055411094075891021925660672014427031719431535841779851073161530629585894852197357941708764756605499875606118421906530432278473612629255915112565114907365033278017933037430153772103507135142685042630096738585530767875260206755655514441566658261509319701546894247422190189982523560814674780845455152676106214211517981282352835426891752223178157116305569171079810490792969860254967608725465055571987468200119872274979992229265337645881487566915175245274828495718207648650108358268767107177919534671170130108270793129567327399107680465893856482671386013266805406213098527882486345041836148844908933544916764283808719679710948354106512334467982528595310021607995318377226153298931933191596882090879807900466657695439940480487337811839305981610225121252678725849430981408791909716745953350167204424276714982980867276871346744177560799491060559740396643247477447542482978774727804256693751829575583611522640695937593663546247006907540129023869266477845348144011981215105136895350439796877592010164770559548855949985924501740297005997008046356174265726099305760297361103938750407639047374227374939722021142066570969929364800572637933335371411262547061204016214875001177450661653199170145568841689152399662195570094748750717466805907837620155931853737072834226377970616312329551996413774554853145019341287144053309783958552682494005366598990100955852593606569176168970620061966670367491874656943425381080069440822253086191592615234296269689843769438529774143260979099974271283096135547826832697346275885620377214222783510667636467321124379842061767592823026573728370761905192529369120521982729107971700447905076755917579398657042672680761298358939801963937812856506651996805626973442051615579274253678953129329521930148345789590579247062870823689566483896763853172624906807109759753048837163727064703709539675173602385385152067838722543169894516862747945132700088770802125937760076061474463939204856895371127784647012084731512549375829675745497108820125460043862270344244322052769931160695708477967823353079310146626855103428510212513946608920717913367250327149817125149405433534733278693536883019916475087445920255605914210399343509378991898186420913883957912950181341434061998556499534295837738386073261686463445098970500546297007030758363225139565578798339252126755933427058040267532736069657559188771287214278220875217814955189883853096054663427772844937101008341521847536552598123305074516894338770374597467574264484131255241529277948045530706782484202072230930118344269913250820584098468993898308755554609643811229765505533448096288056315160286183801127204337766817660412583231064471672948318786165088952979413538272784584812714167142994638282836604715236971140016630938495886945595595371398594087154431534661092117368426609213451943828333536607793361486117500505450795235594212239574504356345148171000077202537349540636947830288767673869468141789349723348482676539502170945953331379890159828143443216970731254034973407495153638539415956187625571833242222959491981312099210829444488380024253294748120493678807910637256941459994574972079062332441689393215758574587432286862141837981173712114621596771284519349868897662516648129282596849125704695908583546606949178868655233619145895233115264543576821786767185514593998393080112761646642638015652133373903873559090541583116585736046301420886257403704166421200475567318464256717311617330775872178159871536100097020703613306384924487190159679651636076575998428663026831968150738762142910308053105948889163067215189307407320241668962741809156481086928947223436219929634797763893132760590185199468436267400010288827609732214491589014843643387350270103652197539056729611800591833637220482156443853022684282869074539655310308383958990016538667497119224756875832599104021803895649843183409747825285038428378136709901147609485246819090040587993038736051526317032480772541567547095577993734198383841951972374443192407778063923924862635638831259619562706848669413069564132004322644537671766670998793113881564225473856785163059493643893959153342296859525823950992202906071446448548805176148923930557207884610823888113774534110533214938511308594745430438724232602464134779478581214060515444002175119099607859084246576921732529804692227579914502496512168014892421253388126439245479625376211292676721577780219879787774643128100568486681615056307085522411543594323206612416683609299587678889472873602473663683501476750296067287018081962804826924891368893041309593939428065163829502739080284704916055333886955074666624881433329075832495530567794019655401069145981997162101448827295808723570490552979923869561181967136150943116632521221442302731163607049096526318486695468899265003845609449781978079112354309486998346285371719373225590901447473256742592472546367340303090283397174072433286356683766918510527426943807113516928150642532673062887659592972854407657587199963405351067209358433250696596771068014246698179374576274825673297062284036059612611339221286642126483682696357863368011004078217483432821396380681647543027169381666916591794167243599562354951638588999814879986559298497174168901934698667327863749863234730178933554419489123810599567926980207450434762466714952649861478029888439097941081458348144782988847337162099183016759426576350868494598136779337149530704148010084868741489243184559432995812866190254539868229172597912018018230027417299949947986666919380061184384011519677698402360051185113526369405174847821664919595861317409420881011108594968517920383879096158261585531212115294712511153714830646133459742333803831484078878645130378137064982085167445892745154620576278111079062879931508284661230094697762957464927745567631600714321859079003788089207905997298156559448578491403364678380760042173479279164257885414166396978515340766005895776851946001313154087520095074397500988552979867396449754110998528950249085853969814052086960856960298281073449323438634260549509224235304028520589691679178405519965708691264181524645648628818317768153466941944953265203717335795298193217220160373861571616942171651237494547080153386558105124119959602839125876561948226545319667165998225336928835642618978704062741226027985635564624243976531036176067565936686486744621558464268357772534688192043723345776323371423204596580263961617754770450967709266994782713381684482543293069557400559553467940329018286841308398398470299049430899919046008004693468805781013241975139967741378777203468348999828687645596158547611045222634913328429694628224654131238283298084396806609251401354223448484031691117109380796706906913780999066999186860959942150226589617999814402532395731975267396967733518243486326344035935706808472338285853681168835866020526829062948151880857120300628177102592605003653867107070377064199591225221572330450609316581278595135279332293575452794595978397128532145027687449468186971210357884759107696596526168010424433466871292863467139803320870416616262640815257643972338105136195101818673475228618694708368535709226098903405998182333652202856288025356782085272343644689936033448749051746435206004941607848874000971626862638469977032972870805829033155681641734302176822580941097544787910574728480375752520570607813065843170860582028165795113405823645681782518487305915163199299783722243099122869028979565462945234238877566230843828167771542209289216800692678875693757901801193161386385688682655683449155590986837790364240663147931540606052333371624587986269001589563558902610946352752026876310370760960240266201307144369307106961826860965398540529752107562691013726618351805438793182878694007018946496884950985743659865857744611442572537408409401984291590091054677041404170640246602465129540685530130323259159870148527559042476837532136418796951793819111233454068009650856529939289907318965365913970445050707804814435548061196583998076203275257576457663042216933660947797386107344833249807551992397996769629304947308170354212819628015439635953314190895470964817758518482931794856507781348853533480761447043381634765850340772480552405425748051650350486946367749007449827149797233052821442062699416810245736546959291742219041093848411749263678023270887177682657615073469679044844405947651196365366095716636618763586315317808160509510472060506785466438478761460992587903970006534278417490239066179602264892600406435107459385946837938583948254651728583721857826666894590569293529642373165697301282619387966255412130291231837210926951237491886903737740422615574780675703823459054447535065081980503890517867538600286904055861402041498570031741171515470961011696484191863260294802568922129259995733546689099675502363627596472559392326697623167112498950145075694289744846888350779434718837214379220488636208191911619231257439769120447731952253633357476483308122721669395777906695646057449905635340144396760834828851296102104137693693283151988657407059763364785695767634679222090229699900031507977309773619620280172664423584758326226884199218088121234647905582047451201484767445007789149907638920314131905190490148758616444382617692390795435719612956022542927512076471282640734036616415926663449534602712314206063612635051388484713773055585387390001861698583593376329516086061716545404900259079291397596210472891901326248750640086166655983942096971895574952388925938545864304804948290229090076964182292376303753843757045569559744505513662842245173141760436438507650930950697196211378481567112801042072387330805574727890471793233887080178487633687533947343722722893857994701375208290563431048809563516809100273937078608443899495240437821045900896713872299493613274454414668901844821331102786930596525855556886406690362568871096926042302809403309171188913478052809777507561565079089091294430151548535065454642708770700716338904453923271028416507211568452661731851230095293616312187645532918406293759517943819972854671617336830606499100536137534741919451377815143603943144618730413506593093870914816082810909699836384611450281182474144545321279149339702196415522520775828524178075149413494849174087956914944092640774759150984007716208393674243115110365227997405602177288503543849011582658536274602522541805715693653420910472716243365373604769265131702862805462524129633039567535314199642904731101808750704528271006180752354110856856529181631859488734457450073330990753350762086528926348366871017958181680985274833448897840258291455904082829703393633691728325096492522112746847804979887610673210699373059866473611088154054778449903177280919331938036891713493330579159439833700036727430986234171031963048904366492987873930870237728612677980531307819351393970282219639645560610328213562708371192308760565957773036152960381487673605469039147608799968725712322810193953477708927018230013819950070300429704743947269181200269909546999605522259863579324413535881006419261499587921382653782878296916034386739296785242798851629413820125151887049656038096793464185146898917806494281492305603190848836515856678015946498443982235375833049860753598205133038753593006311056517655671036692002467402846682323405345515238871828603083556172424357970440526345410787646168693199748243085451238843504554687936820257929202437737176781049771373469137924241386586124211271765828509470126688365495754095313390966230271510701337288125034347689646032237084311765022197231995481306632124228927206863315952246899547434755372555337798275596697018760662154563881886121832314443820532253689792014660855482576242912108370164482894542383306450304530969502720164441738205689424871966824592562918970385313757315361944439700298508318985649640992054085556765218367383460596170285434135287931909214152910759176356062020477696539941438116228204786411265029096536374517420303012664024101115208599275261588938165497654064113389672979757155253685614296464706506440856947473157290117317100598343948709941667217158822024859546670938214915124401033581349751718982535601624198970401435056671782853857307696550390563139967836272292742786620175554406860809845342997685010954551838837430270523652256121021094367117007179086546100765272986456538729277121838012275035010550699045415640662477242510615979319049227450103188113980997606654917298056745232259342449244310751112408164642956991269779175741228107217761700272129817209030246591651594541393997342454066181398740860866069749017663862064265201347989765242315616617774614401690103035580511587115197276647101219772103627004829255857924709434439987351300536426399618192370191952268716873565770029472408619889308188186535532834740354286063878302009861409321474625259857314094667729084300634562546147067133024295259647150974537705154120111884016008950745365092165556816281396756863120870650358231179002813777464322874592288160897731904312336125273625586676478621372357131482775290192357043008916379985696146897168494638151761848708995480304407966340776835240098649923425864868530924644185537339186375659333633693565993680898883736307273798468958869608389882031107262016987179795262915684319128196931724337943292068870362442172180439104146314811130266781998937086344297006506893052708683796147644450972318192291449744038419359207388338022418480750688699696375776587635477463593367268392304314774251882580788571148068199783872327074128084573441094211198620894617307429192296298624933703861414095491785070239181749985673657176081799759210871361966233590814800262237493316688594001563953476320483061459374360892750948669506314915024404989988229763988917492266631980458409176604934073537361260908766948550860845899819629613879982649383604654094604851375804490252212378588201269696878181640218652953981008167868931826644295907558112799731348352079978793894204517782964294650905326838941565247127894614655631995651771667125347814336254056142829970228637008364803972007135267224694488369219161299223985093832352016419659225208255364035406508230969487052306715935028978822838513672663820875852142345783040026478290722153737545167114500392081328265967086629537778425988341349307219196508616107470034313744338125625712837511855371702611931602743475739012150567329960510936514742090705773053867299441590099303961251861088715737313066486075007132516352305762932947179814207317531841554263449590887218528804575171316995088211930866414561750003969212527926609620144601889361628886306824543910228152259662456589695605747630579790697833813252598271138973067256991526792974416250511531981719461974236129719904148002136231860750907043285916732192517276130121028099227540814113625758151145508483765104520195429507676655134929482988892582300821142229104833676708318223471780001419162959274698677193257887185041382498350628752222926380476883880171904181961207026425525619223996917996577938032809059146714920522527876331840841124538476062404654076927347210251475278081505037296523567461286689856926090005509227717959618679883262986238159443066384361325044306183271717495912383206393215750694005676602971168092428925489053364044198759790631623860814434629263735596462679400308250831814556347054177675292402774270852530295477622314189800755347287227533981688496707074139015845414538875351290485797982490991477121517511485022624503396130460475658068928158454872533734408477329122780940801349242241385410057345085121809356810259464822526086288720412765882085578071812901221616728149173649740731524657687118433385522596825144279132704426606730542429253569252329319033441503480616376516627874931668511188356638923168188843691556854104435054340989622623477979335780982652139421364655659111576244675011499867718158053540794842072337207395608440346003515949455773497929594401975476966332903031629400424620018858809782150511965304456523230533133362362145462170780483460930347835135067814856596573337941067565019353243667658570852510329216696531718506801685619876271674194237771909777316506921981898248398366994028157505127275805278702997987844583869237720628367555451368175482804823011161096313154838428585267599632745772305855403247544882167048096789665521434017615102419567539810763285651199743241988743475565024232012416066354530153589914367080964718042061140947498971117367350845598738983694862185559841670533777393402693928573132897458650140814484402691888253936131952518994201786588148633641252807683210053119939530060894739071085155381030260130792312265974525432911730461412080300895735646282384665215658526198781006314387808631026035332959252842074868350685728309590915300994525312838043085869592749795279263160316711632170325796648873968485844518471706785897691817308031884656374465590007031037510513385174286071674209898522584920745930019136555816466647458650427390393730675618932134799935748137314038956571879932412176587964055793290135529572506912538253464257476630591913127616168445720584347774183577251122920056614482202444912773884951695202206264847746153673455936771142392171692815104988698835632571345195724830902678527914605302611855338613499135819006323661386701583792880416272061986541772345810924181879906743360798284695516819864911569564354428640537517677497379559192324357761576855335762311878619307392766063485810149097416284400921153970604809271823103016278306409942997647872623396364895892028761581013575107037588930351289593133057401337198073486809920785227264449691590604628517375976621249332395290822078070193398673406749354824251563188144502058748118976132246651592141074868070768953983695505219357948869290942443496990349243395370015650029074013306711482833788878049657707894079750774678540817116186255543300701227795393586374632583645203075535163019404563385418907061086577383156322887382935889071922085354196596581876515194228455075235377923009079688370442349922776792410497197037128789235280412156030673334452716595682318796768514086886057970206315998896606408938859159655706581936503834496196253573183918799329714432332126798469072172849794324355728383796012471714527663106941962422153627035080422532803058230475180987728157320782830596012638840700952593328219806584879944073825985663503339910044200610080720950178069075855543142032094913634926041519311907857127831369281520133274993564094114011162743599775116263723029901230543973533004105081605104903816804564711979952447576489087093565064604477205996357990385257721320873327967907863187610860861609033604891896508149659969578672409353786859000802257800994710739959189376592609761949109472291830380968258196282976150549695079239765159270404900845672049362076591060994260169093957858348705962768472025579037292724551116988928783446977335053620835635207455779184175647242923760813727993928836815743440073100446988403762928595644989168579181191745154755880363088530188561120586769000807527401654838483619543918530855643023835905271676095615472046296775411147323883958577837604845666615543326331936861784939169895792521075525672912929293880606245191984295907965861863798471201294976783919579625939451224214259213905982052918055523424871055059769707383956225068914689739308080416663254218487341616659178864967037696564856231122491127583388160143296051513408267918323972922563764034724988809298641281730169745476838376299656470914466971465999660455168824334929061751873420672645506311720377042526691334424112006458330827301806073277156134279351781927506350574686913584132552838556261956001583758425246215956820677942469129922823893953692392661307956033944313424537742328852340071040374596585029122888588161278651909324077179734566875541310786245127290753788108031864436129747513211303899087689364097381747491971298503596732674856537349482750822811898365680754314781915279627757407569482305123729720985778215057134294711678188423425219105693875406533249482070626640787903918575399223196264129952773006648470321210164490256774989531139203661020969400868539055355383936497890911819373721085632985399791253956967992554467296725319466188046127828508887837419893223479237188884025409387136162931198447214609301763364974107493688003005491914846445773195587158925441391874816813772078616170508236038767191835477392493046295853963214697043557577197078139245489225604535294557157546303036801533010491596511906921530140153761850400630511337709352369608277503787300597527446546455687583157010194826839116620745895181006065131977779592270842072491040726722363549349533855772909737946816494438871559952410169752672164278795436666950347686618036376841296497580100755150513933386146565081517678095881137261099829356766998010772780668630236923445197996769040050443335020709880662727141054847170096741174796003842255626098434438610955363643725795647828613784534060983180447567990931165522732423708489808627757735518229846912863552486192905998198519348913942944126100833221720869209076014890686306913329507253525693328465227844234437441876396295576104153112642631911826433151581784631343518384470282712672986157195367097303623366883261096355122158250691776585170033113925910059068304778155058599866767893804152170305552277200700998249987990281102663133683861486350930621330036557279200043818506016781831810577610208462813710591357296332403370682004908311960878225875340094201349757119228267035162830047439130201457960739325295549846865024539160690522054596614551839132435248162204928449001421677322077273026906576385739940594119541903995821987297174860937577175935277218212993339714264205804556465289666654065599359930658340112432577358773692785532675070315084232894570528200969546933273824191403790630929170853927706561887496931517186126508812061758123951504385251762494412327701941920218626484403183094646666281660497013007994582157120426434822248003842168281577822166496555607570041345821238112114397186574616575510821201852390529795913588096847989431255234984734335928044455581442505410045275658798200367178549615407305916544958536182757436917278144892087769310295227148860221729454380948612661543184990737883158031832754049175934475167369945012559456878269038497131763387249999395734717677405157613555357210793225795216974000678214508735942158497169599385793655900996422490526015604501105592486433858260780976413675836245522891892950602825823645425709567306448001277114202824941566156719305545691752992139504404995018940700233647636987432610293887989318931225468852598415253602290414538375567225226392004820238336499695341950468097378722864132801004318850137482098598420245221671761904790869037740228497843631873785553805767855342486246585193927989353259717284851027475458069500490831448205244374731664970604722912641907200474097454561891446905610178059757280417709287116058508761663645750557205962337582215399418887162107396404696774870074950740262969378398674431025409538042557005618715643606449371396995444882406082195165350750160422460709488202966998848404965496569471223990928549757688280932575048215766249418573710319334826743665411234613535080674137366873402528673186430021301236647580166861151925253115833723153764600253511844511042286575729322677904914164084371625155011317497697354232384602704473259569209971934973845990651819052859065287521718877797752004456229497050539015573786750998935765873616114605174331313451737815251454245938861655572282440013127849307820867664483306397848842726890802056215566934913935438766630860364509859683086385644499479065218094359201654352174622126523546553205950617350774812937263306747044263042862273839883477359227817665799213331094688802884010297685667698316546472833026370915789651384517883659358240193043563045739194391034212061345990997467658359260484255813023730546855679933545472654926780775949407931418919524881442018297960966548719535967396402088999914977451301933560994409735189553836949857309267564678624095122424967293140674853685857013174179386895419506788007910519118371364533124842464572449275587014928448318333348509452893832053294860630049351520690742894522736336940748872005286398492114178259243978763925938027679672899877890009638151684119623668165077335459586288801043193704060431848181178848180306522625092977370571023799418246953192148370478882850331181811930185187227042061770576185029590652633844664747012400503791439877274997078357058077568511111821475959943067311164752871433840288278772702335613448524090386989322839855751756890516626618623018461040576582131856577248154473671240066641011062984494957702112220701348761949115021947218812192648337102880893915148988678000319479361924282266474211834484171032500124590936409453499750613782988306809559818599647609722030993513118949230427949360051274722426508390826884274266290320107107926259846227424944776671057284315048578015155836673720883177513889019937912317483248231271633465639402041945301272196524382387037863413728147176495184850680707525455433254160737803286224160879087798577784291177466405347660252276516730883445274994497944377623202630622178322903287266502121951196843178672573756396184942081126380473103477183328016715917257629843102919246425315531731350442533865147936353678505755842119530369995428867352714245738667759061597865457546967492573963888188678904882864383660562253081730996926253149406908921539271740263143982647241096462280365349941126097808820152619230694678228452439347342398800613228514309981528221818880845771349421821135540471661739318495862298516768226878652018753470806967439411908037094591348507558184178277034162985496713116951149088870433145414179794477995158182365376801959324506090930225035805423648831110179502970576098857043921273483105391351943476029010592528611460581669889670070257396843831497034669733096553633317203924690016803859161859104514527474838130682287661240508207886360499939866358430999703371069986478998212628036940532342923618932762449351938387155869010670029597055466412522108516795711982017014075568312265385130535141243377973916889979811490581468457719508273276312077237693168991441894285683154153447301124908165265369654992498636069667410414838198503711136848299358443372944927848088342020626080978223250850110484181107067131712984764031755161121276249693133463039239481988080150768904009396592486007638839519334136365937926391881685259052212967969206829323213792210427081009983091777759199390900338977019221362530011720989625756420239728279177087183618591441065964099757376516547730321950124124178991670712336221719813173672736352536344336423057592122492265953959560511809927369777285449444339539813867986258362825162383412952485552233362793654360770851655405064829434005223902971440874909741117282025875519608709260951561470070300351527385019617659208280690638117133569836820445914179048383311805779931740155669448751295539355786476185088770240657467211443858834869227089634342553039671772440284118066284522921114849634534310093512299915813110491608542164073570085065403151130263854481229851903134827008852070250234621436174208656991976421701358202978638751116361723165701484114349785790669440413216165272560230023434813753651471301643592276935295554462797272930792396411144344742311432435889501292323085794821320195810228700979964847715403889729839341601408454263995110320582232851420127793736009870136943702510732046191136537859828680032387109200425670159602704314772186340521858208479542124584978289865086602300611261183521686418554939132022112655404818279520224225566739508446217916500263970551184328884896164912139154278926269353364579182028170495543186748779220944948388759765680471022251198358509080202831612842196821390325675122703784135291762621530373725108790333253891862272728551488184039635867587159526235764902130854214449778285449797367125552967813656882607504124429107661004674121192990508009559361201163474298374302389779171053845833121435199245224690173574524139633842918779746307904682190223012548659654950442163693029844924637815672884223678133068965661645421705863761359172257987761351589954051363504178923470272939490290552831827488673459338029126004157705801800457881566701745866249769468447653824058219644833046650371668614031010949677738845514926689503504109029635523133897506847993730813225993194663016511916070292032100476219800691721566687260969286839515396206637194443938141132273197808023076912937094646723747049763959523061879892705636280010921539496602151875698115268653323140869674677586851740660354007554688830583239258971946436127799525760494775531393963473231206389177923000323743579492472964209320832377764334442173596655044165702521700585539275438779482388148542561663418101982120584039001207755743187529565082067971149216908000812726258471463491453830086172944795981424782406150911292761933267306999833183791639089615539885941165368723017432408136032584702342211506510838025373448786381571218634487799913938181225988184554188792548289108175907207212719522305002590002222850269479107778178257836857539933804807561791066743037791598102583679219518114799159783533912013906314494531835436571750489366456100740858917137717585661208962679400834170712818645112186088547612869584930085631572006629886813572816396452073944771793732535662580531804953701415861465931030666255640285606739993812542725418790546227780228831555764580658109090505092566404307110067759607573578865027750008518046270550653338276702374221207425052694222588815074707307230036930290000678152851480220614215371826276794116740208172020392956933992509709263540236312330645842203890726435143878636559659544245596117019413834941867642906741238253100104528789560129037797454801545117948086251729415469833027583620915488518849795799128115777798968774902283890814021379173446404450194387491921519896708239023453998392056661524630868224475298644145482465061129618391834508410579926737672311587078657817838085574748734531214236278370696599728990176094946688727268893040654884775756263938608599789357320570472574528034418551271768104603122430819789248511381345902014505719507382023021604308597198007658413232623953980716127069755616752873282926907456667602958249575954692256357054762395557414201586028832312953244646441772093968918650042131613837900696548170178500495409811972163741103424651945221933675869772206767039375909921412481140003801959330357996986919170275358451247655987223092649877431215051488392811212842435119047006851805553401877408474268789295241628324570383325783074315719973927595670482437971158808707394304243420872826570944467423000344243069938404521063901425877391615406137503239025504153719412716756907061401083394763055818625731165541346700820949987667522646948814309239958063368050541257182551431325634623062330768156032321522942482754793503998445144119811192643435971868788294635243370238767124642974002431977956105060145157287076590830465938149424798065474475871006015624380299680867210226617918417025758865623791033546108407449568053190877842541907579055103287169441098594868375857949959764439954768308567188182326490921989942295657313507061277234455267531293128967124363600647029403508761310885170418207670340510144399851236644353201282842066212377015038191633395120433564648898289168615198755510823383052717868799418804051364297785186333684937890613225420385420461445647911358919344149080676374831350379587163143904063602580522919608199742105769947897499740803892345827569735008851962763214254581882728120789140193337772971667516792315864070135470394324749567594242431986803504272680210367155950281905006271706898577493225610366999068326197459272321203776065692671300206196870889495972909839668347329792607308264143023593703600001863852721072545322268106654064045326160434943958937182210377023047193997135373951008961832366317288103523897500780073302309859029145432598832152807641723563695069962650029076370207041322686694133501793341516392942417253251304658354162963589930121645570074751037644881501869968983273109421117029737580143198153760277158580659288085180737634222990188480920404731813613458579973062648239320171303888293523255968575257729210584679957067554083639988635006220628287336903584327504459549273710238434546572617754031355037452225345152256415024828024663510330394181995563062915091451266117265052905940338510027895772032626874824559414599327928062029148600567078037775302151449475616495826232816574380383664586951890572177153681850156441528975783990067627674907035681952455748933012117896947015773161759657640696713408051457914481558902591023633144272080789841151967215888949227481686532137116845320026660642814491777934556987641151851741299564853588436959746511520962026567437549218834890712993773664206388468403861726156710447386359210067503752752592870468816261743785438023831819672875504882658170192954049706532268268357140274726571506595184275830526882346850858937977821277418714321632985559640123703353501053584358549509378148095718867403103618459908909912764248386858048936208222705898728841204149096192739629638365634343240412868150469563981055671116930126373938206202655557248215436439994269912330804018994155260682092008949604457915248279163909065075333810473428918783353301957291848629148657682366383641744090883187861632337925979959008065862900971433057343714341442854403482024905959902146818380253976510730072797075231316757080965558307118884228087027345477569292014456534712782422061321855905521935912758836788038984978325935460423877076118323534075045273788682466795364516600244129647614248929082123322461007497195585291663783786959329784018670623477893448412568729760688235889622945669830956650003633505238464877647359535598929501348296787323658446219624025105536298607108942196389516739435184394426540842696411240633388550628004671437071119954000463322476400013987101135950527209816326625500516188458028213083929059993851463057457602703249645119079326937212710692215662834428585211212693012778094804346728873227441408340743011785490425166530598971525310382143183639717596395076397527713250589839138268702954503356080734714976698115486753786879293737915202746260956307959784744550648800593789810409657641173868495454065854015985636161861048388910506172517830317629825429210625079937968107006035040995225617234234941625293996855735275972473855723390033240311052261699733552797090950260566875725306900408870807414197178192093144678715304654940901255540468746577125704355667942661957609882264733847938031511849661496449631956051827512834099276959107047320684154147135374224768991255240318816443074978979245515127656602449241238514656158028886751270087690459779356924386143154231838951014579909028949104827411943791647830075673588301232428668393074335565551738834044428630247031258743254024494528221722621496188462955909678807857349688935643706984737008592963351416121506778314457091962558105794685757782401301743820131497785938893927423183754226119360276161332184732465108917016316057160906803154313152620103655857649149160877897697023400813141679325542494514210209018440594224675247223448415566982876301486556150750510854440145995213462678308177461095461416064079525613649421824792681775004954317200872132296965938651130554039764522046350085646809067064132744232531047222679747722072513450320015470736996386279479070411306105903470887373302572085527007745560149892068518180474663885201632681161214451023052224971653488370581874108740941577135062615757006930623770027201682100061049661070037816429643034071406423118900401965848804804998601145560150602028911898537444638400457188032231784615199515281825798345205297866708771125694129131685898649594758536190421353094155541856861982944648551848338367013440097602098218276997910281091176421400886293956841645527841732118060627520124615664429008152099190856527286990896086442318783171348669318546942715572542270753394678386364528288442261776481437017695208706074609597972765649939861092380392577225008148184830078825554476259919107396283705871539954097237703121911515091348867035625131058642454907757636412599359323473620884154044137613430250644798691789015057913716538294588592139302476729358374357644637954337968449873472176257183020340036427839256007560601095046219218766156566944992633427703154685824524896200964289917348304237431630704062381627833188878581901977251259267155995510571840880875183114156073445087992259911925258016991608143432617215610098323494385026460833244291163034369279571410476778212976880954133413198761528829161966895015014608698799661138357612925809219126712986772996317957690680845066689869627738466615731137407097849509402949914090411503596187235733384594216886450493591110420329570399698905305485038071320056373851006690704908569406815494038327812964026270719375638013372287597901206621285913996971460744040452415780776309154412443063550213200478737203481158722909072960305845551918173773217337845182237362247828009889041463802569263524097068803273707876314712706551492936650557740292013313730595651074033856373989986664701110634690847375541847447744710117907717578424715648123676034904030381526214305401665730200711984181425477853453836803668801528347560685555894495926345723276156493849366011450051136264073886512436319478042945546853187590419800461766337651892979080715880802602889883203296310947349637458990131452802067185497048372330028880290731087779433664490475171519243036812606195782752692755268977330095443642865750144589905473814002201534785482281236607276978720435616724537324523814910491654554188526044790479901712214683129263849138686029056637167442360639250639286864802173501498816222438571735865800447946249358226384421789409630096526691576558352837938075965133530585118244365037405567037346460543306290995419886689106193418927083564630188710033584983830599642617732844551374692370004935214043926970842051969414263679243330133883051929585847443623698416304642837194832140965667280039502072607941258977253687076391610750015175351622604002467996051463938011971542673689490054671951094885321460221399970418882110431071222645254347543414775466094794181505301169621625354751469244766475132738533259035680465188439527910512639223254751057424019676559840218543860000162876739399558011176729574243894072619370782836836035039111055676163561129324186247301392531683450802799748226331250188821194935478717847645060750413089668337746237374024109602533284441154860867958297345727957049646473067556178665969003705017204388552360598738664991431268516957770284293464854179571091142524436585957960099598684044915460426012514431180095833978679975139369554112762025032920449358318574381880285981780646802640837727764671657988998513117823547763222116666637205459790201017477987941064286168618873736138337524170565675216100489287858322083583432398051949748398851670493192530452265270200769706240725705104739843904903248684255171654675055476447213441834827090961868572524811990559044141781584722116524929991735505178776343538372431924819170213901762118811605542389024664105089088243891840541194635254053974029494979164949001562168835000813724092843932065853641704609971082998577684983252377549712877067537036200639325618243306221361740984657501036689137620171421335366281041276364889539812077066789553646964211987670915794893442564119582145378690934802144502050803470313234116426022320316022785869699755360489626548286766071557084952161699944024538510345913855311134913379582783494752249849164390220748959162424586886242457627371603915306126857051663564774669171445385836418984342542203469653907108512160189468481924868898317059804264788347587315470241174744049671620279082388160753662649268031980060795879500881575775996837650983373142683329158005606817545653631341416196947565813420925181427908721483314978413970856379016220937420864448265810921034576072763836003975274550601517455728616253217021655742264683965886908433407460267077695109131014111977901292910687351799022280302865275962405551171429639361876087399004436301414439369647356637607463438780686872673833545188767556023250585185270869646942753754503315656492921676694937123544368936173784964846828035923439721553302940971918735356113701939272637662144299935092295668351980700095146712046864080373485581675822825832588437193048109786633539016322158119266355008169130482899879562512993915326554641006439846768509007215817569964071089790186655890044452135874615508717493954251875655425172555625680001926072830033690602626370896807808687930638830001345054938749328568242155578802447510968648216082550266515151475434456241418053400210437898239095944845057770045478002832599654862072526625836944564933273158723044285936204349786485824971647952112431949547860690853007422536136228196051262478928703439891094438380069170252043254349674099544779999796251807096261182149826141459551633515219692971636064567953938774174159479215969788606577146290808925104753784338671643599759910820369019196117655701548801745939162984339660237944409235429486992741133474472839208484894612035203480083411441419162121434202935300262230175422227600312382884796288371229769873198362085707078401862581959033824546779517702215691110607604847024084417737820694853712707975950708975387285246567274753809594074264723072847627846868957477556201959727970364864682031739266189960857172822132609443274186046008767896000696366218871685003762761582324435167140492107759555912778531319117213469677549917685606113251995990779176234559980499992731729446931980913767955001280462304513465319068490833795969575889970069521955405305908100426960119193646332474998542589512420016163578687392358496584796554946294891613301869025850012977388021192152343366476076316103786504525327723399912706395520816388176173156939193050738232706134757756516830361737255811137229544046972821741730911355891263960056208553626699147668227099322673170211109893956594274455945040939685043112941224497147929129879432055496323209834474040002954815207898835602155953157597935275741955901176839261021112947800437849286296792094730725669201018085088740921847004762888598913018882128696074313585858093702051199861396366462237836867042806153607713313343482340227321895441297066580729526563419436132468415014665951850824717077176820502853780599946744338153770138415779732150040926478758439721250660344118369498462055440908027713582871781111243193401897384303276052837736306114938405616663150156281548289382492332467013839740417593032519209303107115291370810255428760597836558781258547551509838475140057160881084022387483770849378591286302897004813836046376905403537423979365574340037456997883405687320058524272836276856781918882932413871319307052032942875015717530283432054055228255465761549850526987269739119972789430676395429291453992284955344679158402380722641497726653012040768078884135290471467157335623354929645486228473746458246699058799915542155986088154110760033659358644369729718795048295376045168031790647311161285198261754893145842998458769315231834451798819151100663760354318971161003055066643294511607102285678409752062232365386312801034908037314668952000017527515690429693055275048405281576888717919475065358944381746304277352413481393963587946459072460376820169597372104570788463268038134273672144686375126611802575550294366502857316003170548017423412455608066654038189437168266590859215826217499611961741457875651157034473137493151536342179314784851525692170564992260308968566625310448816735596193534751608970762702456867934661955808334617493106228472097700011888583466163711779658608816952482931649964714163888973498542062901465883321567259321580403240106154732145834468826258049574112795325323216400337341813781901091820147508399938447413871556301898232413752234659522206738860642556731684969681869575552620215429545211840682856846239691740357758200315409864089092360972911797181520547967583659973575847357591500207042959239065755949460123137921996270146368082233476142403332194546019617671991928818213714139609518446418192621997741944400248756999968023467808951580810333175921207545418329760963930342525032655396545392646357317748675564798473560143160551074919267766910641655132228917380039264969042511953478289016509266547479629299736175177298197493624670161317953978688979754170444278224229185873847446236251100951790255931232933968087022384692724978763159440232948220512059802764901513863609389027304962601985594450327908963768221015365681730000465865098850224065612436525653714382205823018454080732201417689392635248766174955152535114943597368705925686919886853254109856418056096025621343051426432357287356149586580903760774109267197149885862690483200198104914174146727751784485846473005404730564728423604472846321743268722306292323615702322418432473323319039247873613426159222029870727668113949757762424263603422270107818357507057760482445732324211444791562373565555999039487139755026082743954917173630579897391178127097194524816459341173005298760401224253461435014797382341687446419311244804127907569940440081092525400468803937640989471817298482689898047778301413198023337986940162412985890377937255580200449641963165950275747201223848489404804874620334394986048301557590847912702839267271087974329522798049649396697074502283253914284289767741735802355558401214716303257539139547650696832485880712616636945852605713357841058024521828162450664413939144094338282244185177948624992000305853455509431460537341041435195709598078689087311047391716219405857392009462021867085779155855411023365028088180479493967530048057169855494783879469541328023946943107529908600268105861390127268866392256186583147372404621039315161334905987079106461531009761990626022167895211453657480308477136974975798118869186801335872400106701932350098503278133724009866578751970047878090730643437856756885350100347899900163497449764924495989878435347870624808811800674280284021811527482094718967723976731138281653724140695877110250153020337866112000218781953872732679242804701228611798499864707367053940374363271212539219104473543836005602974085360184784592950581661814800818865136980620895567277244721777829000712796766625061647430448965592867864334720376064344476728966799551794266100632655278853325851959394027646825113124433828245457781517916844965853811357410073336989160884614301219159065550701130998629046079396431249602557184927000124804224910641732048387254726352795329806840421395678056211928878680054430705400864033985366890122391669923799803951493806839066505251396476306273541164222516326032502789947518228229800363733816097228802763672712075084580891727029476562035046805977590660563268509442936333369513059502599477842799975536883869629339021241428118637386855842128827700889928416803307542378574904283285131525215403631178015363298671269095651531148433562744989145955696263601097703834017000910297120720014684424501816306845355198737444855912350294328058218464530753602961884493939178252078626659384110528360381338331309233225528696808955337250186971069182746567681102593898935639921986501597043896034962893346093625024290334406145952335471783209986995372079235502735244433941466263026973073705914824060125684126436594789206576105370384595312151387362181229732755586985679226801871238750277931701924432365352890780937084762249143358792461719839845972934014535745198203481758732202697683198007262638570719769793879900298245042879983011464476221672796537221841568182656034349674792984461237012766526505667461287558448678868233134913901064092753044410565164322359300037123541582884502072817993026438329986428336610902644376010861667424552112062064758994391928221162600579742923424002411572225624770524052725338159205047246785976941259842950990734063099320332997635116019176168217038810157805986864965067197345288541892813404870374556808748288545833414029076022695168671508156415545568625119462063113545486677038771852184659474680369434126858008253693598763029769451837918490777110038780490246474845454709860822519678910329005177881099487466502994588005618596644564687118821214723756665835799018264620180360728536339836790936415857620278208908452628544543473834348994205173979659880135750844002487810830187654932085180957257182130866550093050347291886037686144782362997900189369822780961195689698817390637658451302437975100510196179706904075916360763400622220906133256052648420700566781110577193423286184482696769244493807794174404113220612915148472345410305242134223448767107432333196114324266730047987564443057086656074167852388106666126725367457514313045122449494899796364083808571696373779040076303979515122008140013339515242954057252235115898583692811092297780288324956507820009561271561002226418262556602089067821500823120915882034299239470698089849604139759718504169382637341327820724681601116977091985696336996540810360365567853881674384947701968771010014927207380896758535248233754546166401660459150383093298257006784830818925766188046381925907419460773705624883939132209050028975115206919772546199405768798485549351758507686286332845421732418661996300277923747602635365274349277635458411606919082383355512778439875037207012170170761063525421393484081620619088798002912183970142973569737119354571102992896789919691839566936072785160753964777567118236722902629418067619788272261570305884678824232912442955325812029390841120359378418075238734463680779530339457249299552675411081380907980548136827970646979146870490947338983925416021822899266407023702473544209140843182152207327848200139736143187139322047292528962687381107992846073031460750528991117989485276949997388647264289460496571937564806974914812114963606942617752763376398984529437774309460337091023040802811980632663289205767446102791320670420669999424285895880018082384256718223428634124290399280091178814439629918223565264669738642839566384441655895244315509589905606384731090885267921950000203566856194887055585519132949236772975410609908882696950473312413349690386282718925595763400561279555455405797751573898498206281641474381520398356825038004389021749448568231018057942813508038583180723451233600866423253989072678569053575882028402435423579281827376390948742393747972922706204234421082641944755223098016013372766612829592110773393780787844265956444496960344141616516574608815925823952888089850995601595681702990691404726089274611659609926454219565572434575070837931568615378057469205961282546724436153044621889851016808165148383542068329132530203228980801374492668258060232330478300793245746598235453424053546302337134940834092188719973638336001832111353869353707417941060069373675792579494579536023938212313228931409646647885258881485319270697515629353084845735798961631829581541961526690148389522508269210606515302542619603307684080646990575605554431791099002840643363582304241899951737742054690908786364229304020859399011548290646614146695869599687968312338613650014476009945081684605782266074068366522861336032831335765858394914327703854689760201227788755553535618423446412570356250858410142813442634010605550622951350460791956240660126606581513860456422433911837005270567222714046822298278615548829880697157064323885267359236839431866169801928885965287194429466459736631635485130819447938223107192532001922206926997556874001506184091567681417333967018821278502961466091295980736711749425526470830957211746614960137930260359307129446088606600898257151842375192527927714419051616156866717613911840609446423862723308998373530387496621441493824463417227729070607700892133082766522706080033109414174662445388529050351858491689033742958050526259242062889520654502876938972961130189695011270379744364855162353661412488048602214649205608330932436662257566418822234218843945857435502337635843209369779705169390172876075313852210477084484583093291444029832478840643689049834283407234745506443906439646858282078871854759159536245578122763104717266708956380622232497874489053364266751150206612109348826352248688451081479944776408974905997809202856310835679080658014321440267809426222998904761305044904374142680452892126089423172352030051245766167216525294304180313195640774662962917407156518680795381350134550484132130913244540814057689653574574314582556094717779572973792340619803177288301307401166603982344254046527366387746790381835339814470718180119385599742413417799861482881780753605754909117646389396281639950042604356191757247101546643102522731042034406944075426386953259849025410239999689376545207488845790937712323741338050732086719879700080527418251720920750037543912579507326472441405672666847332061233855799272561917922326702266730156073064790705749674274958979080192504620824693223847131352935167924891074032619021378942186605864831735591382356474643125880518526721786420484388322387639560058414879548776344397353650369686508996034904528208814136998882015531225669463237713395281480414369412157060225663062103542739253453628442422995911740660695485015558126771251580695278511228100798846629939011089071834337725662399984483041303938350320264183878672375269912686336195510272590432694422918419478527648342677993120647005896566117109022053341699360302415772181299777115270561816487723395443930896706516986871316671112470213610683577420135031801858349853415761208980596555210487725131068916088279916689652570568702636183286591956329186126041331671205235335229181481237208128077579493939676295453358731096320792000437843400504915720019997569345090132094007041098017244409426225621259340663151364335942153315159098327395852984536151766235444637745082773660775235363934560501043572878604365483905091950068769327180866198178566822825534215183972880115843479886105682591641671579295712812981427210225129465273201877443575214312550328244598696176070104118263242702101685704862662086854411656410845148526131334293964944562594004645833278994861841998705735879430579294792671140091626677533306060853635118630972927840466168562560661147950787192620470248941857298708276404380911259358623084129223149214045927067530622024939089201381011175166964179756475900077666837249431517859392392795338335946399817490650079172221136569861657937679933394125504051025462324206719827874197720159863163225061775261423440164566093574015659701220950104192313916974649429886666563128135266416816262660128695592856663408582636020150713175790901135573061694681369465986923203111934433096155656926501208780554978013546046776766783405924525211818270019102170162059828732655005905557042521748099004881297190560884919473662035190933620581746926122921218353605021612287186281235969516879768385804231083600686557665570551408480911631649342547612338187311389306102901717880894448168735008122619612620435876064768220772119225110937437162731635402860736994596716356410925637203314009812601002788147578427931674461989704412064026872969119671122157100203429962533348036353403371409177267848472800605740324023452379400924581651021451325457027334508713946166058431225336391820735863224718515927238711462989256660361551513273919761756452450265756460642206336308145381348728467407578581255916645307723389105641898832484335454218870345574556941796124436202239141652188216758031254696774972962020439893736389672817415656320518248437467390392108445079304625417780756634791232016949420087771779292732165746753019275670424119400853905950687461729934535968329624565344479640109878442198971403646033837735973364933163769776234625215611567204304632510923085341216065590209680668516933294574038412369013059332023979861858933552047197705841762373567508443189277584122609885351082406985972724821021477879651189288767491899659673438567967515661384966322005866063519718564743160573521817738321983384552275476229709927499179165936973325400323745060999810712496984837475260468475944479173510201228659974900852105876813768884117845367533820932376951261671360520692836604968271875929107363317843931783317473436114737595456993897161759961861885067451473329541186678114408954211535963781097679539493436678869789052750047195259500551303166454612388079115912189516267258772132702374277331102407461833448931700757492951603281836490971599503829259150162179655641237602429927770849820885735179460813113872555281634792465295617076543795284096174985441902987591233329319395857588468646262747283710773532319326186061751657707731720670798854998920147446706462157395113073991224749043299066020551964321216517160574370935371853853011266068471244066591403381333825968644106995313702513524875131508485008883200614395992542360707247887512203217394409988348971927303794055277416379892850786475165976542748965812358304676292064739399358371536582305200421808315781983486058261820580999172247024815948730515864138592149487013548681728243918194800897878548034643165384708086146070850018101118951721000126287445660770750484759227404928306922596402685288624069814918195197051941171966753507252277165369880055381836367119509713799474962854377200054029645511470435389284984816607479318715799094984350385565551643344879098035051375266157991443970186306422053801594459610165111147700842463562794156543653203903840416046640743687950861427142747326961585166156058315446953720143952604484542769178076111241194940281260727295248037084885553765859537090229001396327090902357949199644762153898076515960382105406161708846870233087879022792034357677057599162304504478789982010367455856201760666332754576483711765728616012404156896104002918809493719094008194265137996559447497093511884980097363268157453625645134928847002248799127888131691472028911844415146788016905702279470814898889614366999178447048470604153695884382846375014520607261639051213654844623977092568839081880305752577764131786681637248453623218694756544231658795478216542933630519048507502962910392794070088587427250320667067380813288856425365289931903834306968062630088981165559487920038551269723327842126531730874135240168383581923455764552075873431922640493677130524831502734003506663042562700521802448580836915651889532126119112787846977317544228033503629155427067473769467499985317073481313351772173567100348321222092719504268058917014454795578540902418677054287863121383537200302146952114156579888872064160453935915797049562206144972504600654083208288909415417827735539894887701406829896972386097096102662812601747698226506599641535968510714896815135713262020722366075608800962053152954503680988771793583730339800729703161089926799224358574609186220247363072518146930996086735963015516073293398399468218800770490472991921821475730609616209586787139824156026174030330424006646617083906051959745246795673342268763706366684793588104165205798001897477022952326785403732837676668373359842076305766204730675265097669060441039034268390821816909441348155654396546916083718487767377803503192127608159462854486955722440630561773035939624512561991712630841353369558911229873026756774380478377544950380356961579436281933892234064632823057781767301904468823210354134583575554222695849344323161489598966574948335066473316510783728227224561383478693879823669247474851455350580666404222284955156063027136891789160637122946348839783795040431865306732180594456258599022507603356843584316554307658318877889000581858207355060262430959620742744566139057585595201265927997711599010024737883724247617477584531588665597250965966200926726362396693109768118722418809259249187688803221247772781323927833092468741669183140492777771598486458556807009118761786352904352410712925980594923900130248966768158115949301724455966344522536836364760307743652226120972540117007008263617638442168117617921044795260657614743764155930837944567617463448114857528426986140636753138877557015150295588500217657670388074601817658882457013761940774298481683821977551472904955685485408830362691877710794668237784606263904094213980592420478463516378584445939376988570768877402735784072936161955733808822369227363707179009472562920940592784702664861191603139511863365721667237215610456570071340253271350808592733867925064054115803851601878536069406980825407476520701617165660058364046467156199725718888936262677757279875639088519029655799969822143640337513796570370269336418690563558037026024689743858673662170464702510238796759788744858118097551178184885398264357510492726603661448108875803608172926076906168445275364511355321623403413262913717544458826004959633996944304514973383843420679581501180696865342610213460428345147314953552371995301453999721753923127016492128838723505014898851344748993191804225327320574834621921724629959825718762472402416298655287998526421850051763128408286001612149475557771106447998686642427112057716722316927445653734136180537846306098006675889884432290368514024171171197089854314526504090614034185185934509219737617158507994487332642200298036351507164920125262539098215446667581052265905667125513264913191061071753955632719891113937981397720705976873778239202981739479903041123748449894868466812782302592616176211746980198189959001297586662230720624923959835159266986816246936590775603576771559655535904406012597502790907401279964954967602217502260609938707853384477264951499780255590876234642109066975083568229307237776267998404138818830826439743769540307181158598526562748977875205764829346141184480429108408417659570287896795135552610389232413294801903000431136425654302055417035138227502507495593791559625413305230509431433132467591629014211690955288395012770863151557659844105439021160506193189914907574136891650090208464822832509688010531464879848474826046937057575819337746106112941916053687797808890467412804188683837792058825093288339762179183062698354749516074286978027910474839240404876953707936038275998597421220706995533558711025009483476944317696304903747983978933308888588556895870327514216778932194866329203901826979552480956102072232339709082585274357442426212605301380630619592928680063348744954295539997205043009395700856652466190892917526249290998482175413025795363179474492593751117235154990023365362655668644803357083009488322291468833478713225023793189128548398431704631833153928551970090406488259030968119474309996306231130799550677651447360618808417765224958007369898822239473181357971889127071501997518821535203676775673208811479613952820409239253727694287264221964586534845656751633355417150985691850886659497645099364616822254502580091719292374426571472027960787578912125283536881399333239867958352534620126635054867654937467539483163863488906437372210769088493924108525545760530572545345364704828282065887692013686756512122651258629794956800778648857738045060346805656658866771290965368326495191164531671376030958439356286750942199559937667761110805252630878645714606603036602659243339933755368747693322016250833227687912050469349789950746884895496638664571419546449259590041038595570110557258810393929009337170347433945061417508992700343619425881966081228549683822051067918929914293841112397730210896384541283724495655069362652126244727429344615663197358626737470252194741766507849306829305890495306628431510447699558909097910852330032204041142257889265449863673603461708607165338612336624918930876034302850623323076478575348967305642991273782089564637346727375172752201331094174403778152015118422146750609862407740000526396020055636942286525121162029178049235188143027935929437056902774013061057390749577844895048374371720441951950872409984922647987984244224168276128381743965756349425502530547460843545302796655961989200652567990631572533461081096183294616809331857295639868574279718873466749598657561105322297482238707761811052309205011154711683340785366578995488687089015709490057527419177416994121555437155455041498954876657501844040724910007718495101818368093524183155291136547545344580026329211483778477520743281863057732782917580179382504907232725757372220505130593057118615219534355726526717039504835527009038782098412465770028957447156135280411883925776632795907023667678453701671269008887881323333121775217358035873179726396606321668979681494779633469418887552620315680988864162936367656183133089436472180608634689139727729653979297075330440458768183194832611692912297561955571936207941420115322123703461130367492345552696200087211019767974439705332313790619655143787295627702741135069788964886633681768022742471389802706573039087586902638496809613572856534320920104401599758789939295663726321439526696687154945650462238002327694956834172061861059860960329490806384311674135968513044638540701854453521561199276476647006440032663062348054136866393962376307161668061065820683436152554960293079798840815027844446218591456387791142938353099040028748509786516311877166041078961355202087539182771517699789145553196064506516128071977754352275541313312433457399097832307081183531534112010999497753730983210068149685020033598561043742858880499083548587932966959636913154841845450102154516323989702160033989738759857399237559117454000004935342231769841746259991983370524592123595172073865210476558117623620903084226047497115756013163650311821722518714075796343906391893520721459081869042289285099324081318858569725184624436804244493627377963784970134191044791587906355197903628628924799126930006312636098644156234351111273528145726143985760254319373627849585706575681785092022345034123808520766054678038398523878861421510232780427437124364875242955791670040145845241183087585261810971243139092931909431256608147831256587918523416549024498076850892113766035465652832570584827697424608334268728064129839069007078874422659274153954510320506438617437537102915006664861039446770375054304157139873364703548129297639124667744167349518921362871594604080154338127748902125292505879513747773933527160114682255731594395490399362038335407941865947389170564459642573561359292716299191582114067293974117242182863131232376943643312577316160384130567951072061080196510707272116544186761616921604909616686854746685887137732398734048651567051406792556434172657152872891217229359446579820068712138651163439465586617614771514920851083616025081941694830568635175675056739533618647134699097799985789294316202605548549799320060374453704343663068972728835424262470428921213167835506267041905710327593347087792892856792143070098944003303427750618545662637525341007389080531827972592818978848586888616618317033255388350106226279415909152671644962163420679550076782455287943520874561350099378205357141270401098223753529685559893402303446337639369168607496036587629576586614405147862023026508790282445935192868360595123632548944033348295325753516067913768561666651600440366720143585521239063497210635510245390811080154970935842744695703193635239617861313980928844661968487092988704863735990684578426387312061330668448723955777202208048774451185968011641838897592044816476479768715259207421511203909820352872975162653981022025217571964743211386854079679561470728384056740440595914401506341723962639988414237040261899275949624999279810401360199494617894883649751092560434130023756243057641280967483775312316208935514912251870963289252294604492672652417685797573549111363086603508194571574384680512565558163134241196834106098331069455210556274800419316660192312907518529654772214438035466674862954726433328727258266511880457733157755935761139979042402750658447422437823225969778707085085221707155499845709360681327989802451017912562077571588927836379124382446995492217435159119346326120739965528345958831016836332957739849214371583801650084426418739954331883623573948136861117131340526389804269801008549713293151556983799194699773086392740216748792594066941261776359747505813997167838563525203970901391745186949977370126967277754752969586610360824525692239936961628532562348491813380384442846225114724654207184453452079300541602138601216199909485414265352128743383736528702846257005391156228603605825486444085907747195851955341626552012277027030157829802465656681470562460263129331831581006293352534587961419709305217202244959278751921115125527667585208678276105337948078520366391527786135462387553741796535563352380057047856174584166882189884184212753612743094009589073518020749060863936592714741069387246064262184578334217763106423247468855685216579830054811633024084452979111359072916869127529877525421746778657512650165434264447139487254177780928781971029051509735015002947079506563254173262342123223659981325623144064121985583187361087206553867816002285995034075973559775296352543256624397354272608248816557483674034285390272543420741408042492665899281380733726999155457777133719290447981161705683499711027550841926297265170735287257161357175163965781490343708170170542712154583875012863041035628707233125532211620535175462249369700913572314062560155650345245191185943286721604106249873916762474042118059693286202935791341023992456210991317217440119920992743097612621691817279944848004441789590732527598650354137962290854708110868058035826186826976981033392016752767826118096410711776382668011470519938373248308438632604299551094947452941129228296213294992866504944972943246882692477194737529512855817533087797123197348696366884143534411235911489389836939781274552777883677076457612659512104887688396458713588641142911426589882804609124352593812144783084349889709180272157298084815412410037433114774968238232322767306857561748176982598240335420776113359276983859805290886648193183635637183822380737985501716793192987499347812903279630671634649595924238802768514633359775513528515646636768035674611602946174530315773581798325158265284482114525454580399695036556399453619578012226175256542092928573517738351377343466723339789909238071654261157107164277452461151437931114910573577491890587085043684055672043675544434339710206776813553907307479769883834855368002706813070196707806563836756152511087624240683278562787294535264227113665372507051099640170513734589472590868500689646301292195848563208118385764238977316287116387774742957879260909221168002412657001214242530148482202224316025670285151179685924590424331150959454100164517259497875242359628324032281668097580285429435601515808840609958118648002243562146844304556409546022981991068129873575652919845040169045090178975551391200895570999430491811693722822849739800476014152526901128659132486534222054971120664615021254952782488284147086800609550939539598997333499093795487511392164374128896800274880858239516829048310599650111615579710437262691618085515467418001640254758108193290530214002026724663717847063005903226964700510817121060796086215745884614778029722990882542902623822347279443327335243120847625775578099562532290440558846933490495213108971093956939517479688423346955110234134799867232259999875147934513952448707258039871438161224741437031849517492271718049771558748455318611273776723272276285078317410630070549735073931444959441495860347144177963898301692615019652508798225551918571661759517414325583045438551220556392138690069196983585493812492505845716011997961484826689271754828141260074786046158344388560891895780844930509184899589529210396071754779378669103247536004581104747258343274284300614026930226265933506937184260906805051596620966813085220529787343348799623133194334303811266927520015319861377725949718560807886663655593377564076238349685924108200403625750044311654181582968804982583384776643483410030315057107378609356822075426096969875995928495648350002939170730238731618570366884966993146067372419662984112455602407030277313383098732670944272005468367742057274458029069808429131466088018197115541239874299328023998643988529459439697929710951293419583820398774560920267795676106200312022588616394316995866045974865166536759028256552325108071653287745937485593686070102976117511685625792224597012897445547636661986329515210502539142058196566231576759725132766581028993302798679906691484170989210354181047457128115246743919258418270916783909206729635241378282857138075993179477692363528494723783067784404133716127221887267890095405739454132448345621119912568360608016508881884695015828471015922458001543908520294620909106837500810832700470485472369718448491001841933155907165092659195121048215800924800594551155084684325695018193082161420958648219511527367541757629468471904133443224775795201219100235783500883367778771133694016330129825504918956811278581040148653391758156591523403766190309738913329852525767725624967828443613357371543030198008954027679276423368485147148489163048483167112941360538176314421064829431850017316330910002398354107679147930895472400600681580645406806702037475269197036568515785084839252069895221851587139217113178790304723576450434407515492962011509096496189296089321068733844612787063317789384762085440661474344571375104633591759935221624609360447857716827355246128797031263279120175324520576752754622907455190503847601942460237208352340894906485745220429373770334295703360683581337828151384870602934165976909110472827612650975585751954127219512148890338346289488766940593889235625138685071390856075179368697268680975993378429276898282438276011058678823044915910715385010738675242265156676259506007169786692783147028071932812443130539622291099996997578866971158077102628077777011327789204595215356355738183068635866107261403202354756109767395186459048125501910806982360268247867347825823943632625648006177026845581366860990566757101385748038427695869257418490897525642913456404636140990432013348795250217326970158211271614919598842053762027699509967382561599100671822374925747913398744446668307208873123911469605070574752911402311950313719648606369545582477049225824560157017020194422302154291637328963035695918253796648527993429624754429310642369591133052534689946628906294969307849479884292600858929539317158570302963507895846968004157507259978865710948403853389193792273604686924742065106273321275902062511966597335246385439156731655621095365565456831474884216527464613202595617509977617620035754416998688973742656478843007035955467626449003737066326373743369878941911815991996222848118577367201099662949945867993608639958903713859745721011531155965905150340851432883091606352689682426113857165911823112345008505272541513100206169993401913211274845498634646922813047134927426152406673904053810966571559165711655344720534577898682348155594345929765060981556799716823384546199822370427723194681298018588211038706911219032329618108073843949119211389845505746506372792161762034149792226241500023917956019451982888085859886094099022724469105962043193613152447852633349795480411109432813416018847038354997499978075819720095958606249488982951787955021354598174164407157761062326607872603630088071215500524938212544838622578145467609063893082743305813772895066709857536511417991649357547132078050243508785017389651630376704043018723358752945248545551901410949377622781551592188008682038188035132643497764466348302125212213759808433886382507709104197952746281958440728564231093334837364982141458290373669146759512059666413417105976969812391117256194755940586073666359008934538746341962448569653638093309248090503521281971181235691257903645136966349671051524661302972407256949296316265768891076615740469215935784181657929800413319987392087171813292807940400754515534052566661772260555309968726689892980198785659040852329538855199226801139216091042686002568231612176507317666798158640410244269035389552710836404064535792551781918141411357641329834401690711090705480743883016417715500922540425898644824196374828539886174057893889736953453038191979862562782475585964122556834062465027482943710954283791329563197140312550192119922794104025700958921428193867887976713249622690539373655066624992883432175023580524816024898566039365335319020901709248081211159757679847284579392764993795987708911014255096219003421255162069185409441395845537805546586804183069709026647090507544657388623069751065324995845892182361737648885937699065480878348947968535344616204194233490415997165415114979672222514984742059590019674567203652528457911286378775638314939392155036667273654198500528288624170635252331882590714206769076778048285294463241178434229809437190605407735635259040960573473518832009351520796783798494449859380985508742452427519149427353741612963760638175480774322180641766964919246068026768922304622484536051108494592615657286929435181561329743646432136498131126863765783287815237755550125329408384504613054265288931460183564523966553532507783307850844715841476603479406732777073863547053289715923581095465671951717334946729207327040489504337317857728655816523459800118507242728788333040524474196162878373811001610758105361432867599812015399330544371722560464006177924476254559796787187738513191937922407203368625321739423053553700342339522004436610157006460234613173105879120867193795879000605550546725419557344638236504413267688389288500242851067698785339829103007700018707034199625431515881799757609183266855096915967261508219511037063317317101922693940255960078407294193430401304069311777535052209727378938221465247185045447456329065710453445949959164911650708184022191950629099871753604381451140119289071596898216388312503894393181075421123109227057304883607985826058716627477440271729524801435175955497589580758969215979452737639764119402688211683955199574571350991529472855102622728083591070046031020278474604570307810522586198477660948042665767320314734722792289316023950552533481756428739522538699759036399398790188998297940943150601432570429195566474974782341508146237657848837015612033035885736373626196528447766927437232050697573006653149372182801392255050518746329592001269933088000779918739055960361997478224942385166000962250772565955902317776154595219480899042223005013947685156004441989119655258630103151639565640314842722452820026012619380203167269565120265723723512936027211239414314790355337468358044513825728357343451202933163665559409206205438457166628423230860195056027327506189346183076952314967009755376067771717848431346623332241583264638821441730429226272649526205608808733330075869871515482062204183561087182421989786472961785374699856239540138986441049624055282186958144621238682375802077353079336421197611486369864467833026325666114358047646913784178248853717625919461086608022189533295513150960199089483138280166791471961126884823861159422425333772757960162274205385273871199480534236302716766348121633975755440920932873817266890763866634275987713320510003802217797708016356834706809879186146458098738455583851201128314846914995290111398919449786672122481181368683350694432518523298986787348636497122710205345120474104639529510661989204626510529763976029500140551311471153789536311266489509665529627854248218437615147798134647970566595306511923270279705535506204962663262931553335623309441037555157096478347899470912101344173744647247606477555821650368625550614654253976870158243695493764111854225142522848744275765988802659125913696988492501612097043437930665022858322455842344931995580144130382229827703304690328434477055458004488443757063664094130693655221870970496249109749207687813111624897935996089332911206600549514376390023434061236555365336064678736266538006994747991518745421860482616894850440111823941255114668017242025558723994710306917660652016653377230116015232085091755095358143827713324643413136345597696087446490413876228701936254397540195759954642579207309655232723973189113510988487738986922740910783067160167403207581623106809121646591755800601851579044958319024656456066924827557478993798771653592453788301191649493670386477724238661853569337248951691292350071919524243906497772011951564162578392700139270397779769608249587377733852272390314431204535075581954135381163983405213952540540066448261351102336048994889736115399976853335848193439454081993160897772428548621728673182975840799906280914155064115188252357422388134783898256365549096864703369433564308992085694613935379239382303600731100272920947672512613881208185231830055691935859799258766624779810298325414573017237253194311753991149068402468584116644541661835291986384943627871414048561182112166678007034326611114473413702854068860407938647104943832180437854210039603028778090858427377140807073914591249101914514243252365833583179640710346715037932608857917790322985919917785141619871462992555356720568301601220040853564431481853286809953496043180104159416897494321557808726150597643264940603589858655590024984742801163509136685889751083484760954837631389353622884122384422775970027174384065453387605676165936508408957691918039583858727429187257488662778700911196469749373434949393745889065889629425868646021592848634822646199210559560663617750008121364997528521877816976483807240432809025176866310247634700159179076548140755531401456980835762257087991395952039326622428657240523253597923549164941221204093647406585580112808497157921640241224013452299512969533585594691778872109123230413517864938392955927567569715931777799350634149035144007864538900569589028447867406236731166709067041330535772299632414087744513513949188370951396453721136917896260001205596224233053421855407312366656277745362838345912250388951025241208327353866607598736808814440152356708256721924232192567158139354778091412929994968545898465568517132873724878636305662729336347956541858657968643818340796901009204744147932593927820064225970064003323578894316855109757349771863748256432215078543591347794419168363728933190218412767290541901564585285175292311904188546258827471242163701198785385582016659762639034407450950025826108308538663810037355022560027882282651315660986754278833745552733782674727265996706896173313475025213246801532737139257830289762486217814223696321966382102972934066125112601047555677177028137330686963181842920755156618614386873606636176853137595077925202924616656155999496686106889453353089216459732469398545113059876418910086738774656470885496893805189097717177654737890310680528098856881096348498639601456256268528343563041246712379421144647799883170412826012330577084420761012887542994957163346244418980339566946426136114446466333415585340882352293586050560582119892411291695149093701426008751750153122480948648070358445238486420575087045433250548731957249774142554550628983298721133814542306608486794954401756929087195859525224652200167855759250240589930715307253513078604307230432514822793943648289880004353392938247015932266181635298798760746400302082178497008795375787667522091303678138434546974061000252702074884093603067419252708803600895697132076879834759782192004855447433912366329102814776812720083249420714610560842384054978522603043298432084635133512470311762792406302680358928079613148626569580736226912055294742504697535896549577651861510291700207208989314031463131623433538514462556355390191277312306200303296555332484572689167458238502508392184668782870959347227006325445684469833258931549959795339680239347540139738916554576048548481556075299773510120943915823120195251220580044491716415495334911845179874590295036790881394559911271526944183985076872732372640655075554369389049643543557077264598282888156739539699249466321624018170684862782707562005889896734920553101688900837399751967893664096254631394862723929718018081778677889407936440734039008239348278545261894794364388792733795855650854680436639573991896350446371380216392046031648822672171252098915118978114485716268094587084454795827038741000998889144542313509182278991688769099045960682020201343568373052881075931642483406085462552649835828747317721385682248979525688463710703338693415435332881176617956532630785100421457111561297538143048097664275657579539882433874439908159508242183184004611780925326898110085139218726994537207268849586612554820407421599690605812361698271718442447105854472724197282086540931124235643174438368704021283627407634504876554413210591163087587396475641282350794391083966796621623291091339604538113601646170725661366846872359092232956031811578029423808286742590044075403494820415107844591227979732747097153313796758131805086530020567235916328047671477517078493782724191294248743004932161179579205666172071142653108965376504397297028401088233363577956201521267343593427748855103256719735405348933084312885691328162515970785914604755647760545630803735198329570990333527414257918249141546626828119684290127828487559950557038899280828152594118232995059732233694941898866292571530564109208070644227410246644173880386282244869082773072646965984001739103431483703156123649088834622850537244974876759347634545356343151390174745074843997364723756927955578318260215928836921525981209481852776847220415429471561514470977023978195482803686629368567439237585456147664694817696509247049021508982800721025008880165505365009472315530431308065994212338155021592924297839553974763819744207017395332196470766286757806999902184027553512247499011033771756697513628608474915617985347498076699501714330832931836687306740433634702740457611421613370870946388830471720197903747501286075105743504643155154979494730276913006391258109237187141659912805375067895703907412551170678541269118160129753376908842413877910872106655239816453207104136582246096187771903767969452826352711357295407082021811869590655013801610288552811232164200455292005871180450844018107604959936363847972973005579921977181203100424355508390709568499800516351438469918666819942199846059705800722024351229353085942582048324150793050003763838818596514575620766464109285819173381721719426032743545887730746189312350552299986205328751133988442466310308005451584447245345870412085106756069277917531803652495693617262870757074260440751084871114601976011870681058532150726084633198253456467579724901296813368344875053580665240198398946146282103718416035122044931690901085570832689739476290119115736893769825749973533933426417464696758837686368732014901154923688018711360663677975572987769028556742943608398187456333784833228432845129776748407669265859733341829450231076946108236500684640305903029842450441323429942668299712506981912890448238376686001318806798029676473361599480217630228023667164340662773742821961877817035044034406340581354458901840043432191754434786726398081425285159874998717040723319087424737206124554010959358178861031639122356237724711102203871567042416666050424859042524715886260879797918019317673003987593732790328565573135573101575711337796335978250890495039795765133845542321258651000995764729531435615822722240448302716586897107725154475745349235797000891248861194953385343575831349723246739218298660800484214076587664796166015790431534830170470576584048319802164786724927181461481951535836113225899167625491633089493285532842769375808428770469449619909230174291299701808585265667262455429165678871232415930017993463574361925792603538942862369805940000434627496465320534600812151437976426332073001774595146248414091166192127239599133902547077996681366625198807123617054725139156869291310049218007526946864831700122685517422694984290044072067764646524916644974802275587662348605407323870773074613468877419477434106113416488298212246642129786360792437408673606543663647932687340336622422474398809714748883833909519130875192755640482967946223233619032532940200611157746809037742715670046386409693073573900609410708754559880174556132071559037810555653643868948365018346036120778462613904286331463625355426869829813069623924115177089826241692982678197140844482878646411016057389177713513283158807152437988572064663734295962078541757652272268199801292138482721120879803935249582788176166814022369581146328166099155302545604223244724008267184424241746434967582527699331438980961964939765173189886883476931725728373853491331943380903729106743529395769872770394692747379218063513383857881895742358990748392333526847730706748770791449275919415356261048815638637517284184816650714846520961484420955226025357159856226379249541406603782773311555327717435705543498016198172693226638602685278953701254343047694451127979011199867088497283382565790242593636120041090550556431174855904194184719014093211036778690269686001178180722347357651876158325816011195677334254638878208280403633503594769965539126901890313813452679706622086672588128869252360221563886559366461030236144919886374276950728681273747979991184085612444211457040767314610930311109657798492658575727545389468690997641277061019266609884119044090908506703673779078836165163477480798438377688653721850947289746517858024571639266640579246729855374862588833217827604730428332722517578943793085167017408999564579141911954774010964947848211478800218560215326368990767955067011731832526525128137229462039203725658734936194144554501745088493962043461351053177811158047732886948511095935175540037321376440431913849058826987472354742692374574870784567842658217436887459347488105995473315673541299533631717659100740337246022922794038577184859768282608161621316236054148523997399037199636045256072046715933017594069345296534712677300332272647080700668030346181633947172373555279180889497049003393349949114588136040259883611025079676267957462263278100576178222031858056841420942718668394347530994578534775329985266926153443177633023889125567078431337846177759176700676577954847319607596319962760494423747032498559610592213464858289085222754096107814960703735241311527995124130569673097782015205466231955021436988335918974421805780028854247158417805425293808084749454243124886590557632890424681001976346915642017168055557981357297457301188591126283053268337671195005523358822639930701199461906395900146104010401379042932642467487924338827183407384856449998100626793719828902179174596326791166652524039895409347022164653557023887552620099362191779238422344135219183103457449438669397961519460114095196238358556032976245963957785768508337746168311318426349631497600974374583636357819030275557683354669971099870180447613395373240221807491429973917909671604172594441204722726864128019858338156315191391797919992511236383637885659261798227495319279624595158109541871538570798345070888008725623225791981944488951930092578583174317968234413296487181918359952811929090045416889112729904650950514479559511277641100867351112755808283670040924045614051625738252947166646618015916153316962724691379853252430863195501595766125877789093120432605626206330230704771344978506489706136720068207977407924067279485179039769662713265224282578579353783442905935055894018474366443726322165279936951001520189564424191898786490839217285039338010334098071237449167784443943835929408848442362953548323606226611776952641654152637475845768087140146382744992877234381258232888180526352438580575318960425141730438779339389545000139466413290887304387760460755951346916813204819197083863243941278625363169023505832776154752071685050472590962648237793977560232467117986776998300914312121888743991659368772184973951916467741893892758014549711270039186734787506298781501239994921306972277473320941744799110104121814346602544701797041888204113532006523682991157952035687638780933690932765357673712180449439923688236768857791505720306920955584920294389940641085017931614250414542340011997809046084009659476412615955465378413185902486463233892992084167294165344775940015875059931469104861947163691056472103784764235246794406778237089256454750877311546053768576449953720642099725599093786921000869431604459497588715774956562705082289108237035758556536407246082279962871508264752012447896327302453367754560077473340317681924922182765774503906021032901378994896856342641759089122307702470542352087884278163414937168957344159022039437416566053800044025214230997143967136786433734588488825765167906068762582454056847742886835286685906148449209468297743302953814083344432659997045341555164194090593760215579888491984286152629809263150069428012932472290361766653076793657310252421849671318360882538280163725993987931859413845729512743679779396363615872425893443631344324797548542055505258126908709309112104684220387022974917558691007309137572050996573101965946440675203545864473743491946017280292393842739834613442908231695144921707746772067299857525417531924216856398986007973127909071585718949407821890670443249271871785041658962046934245626573940039004713109151014510075167394391785533075435084532518688317837635445125247100330855038063089763308729855584025190993441834923226586460301214573128498638054131719890812745916504434532755424232132663610885437931616514752019808784552088389116714369526645754939391996628242445596326983380335068048578379778492498199319184067248982010669127258659174475713776952189598404687460184844415366803715469765563745895131239427198468112052436995210126524185011661817970385171946418612881944258791891139547257559347587229111288558642920003381899722780094715590090036716852395887348481709329234765197939927338687437057914886627967264692877301103089056507984434192584859327335250040068206489851151197253117130433688931183474469589046465119033812273380375487773011517012929926124366590883993236352037744870668777458958852146029354170497582422536654248682794844905971852435780564564831493729079502281989831306706288171542720304581545509615500305354888776271101819228134097439003236327868865232097374996332421289498840889815539401768499116806058234000911776121677866188059235828745339147438291820361224378621516868460208262400099872253540836768911735584283796594410161154732284745162591927003333500006293595212256853810262512353649888423234547678585984558089190945981585826419005362551263545918712114977072628007192139784940269318673947428126491020415776410291524044286813478936023051520001446632330715454633266127504634386308702896862914411893761645142837092501979348826908478091709007737618371999007959991774920132668178373596142693136934649508913845744067854054059233794844774945556339688719135604506856762084709551646707155129699893856475347045755800908182550460213469063112425759409413163407346771451088626236503682271390328167086729950200281772202601061730585729315147004313716156919493105907189514861993394143130848788607428571977685444980938105708746990474049289168214022066409576529326942731844080147167235596842969365707644397847123672120167654173682655930921047217754123315780670159359576063064239386363458596529048746063784648448429710441482726884601057748626358151997788453114179845975840689202630893918202931151538290856319745198730505640934854466837002788894013321119122148076091296937633893581044345514250829165663439142841238280521293825331523062897837716399260005968378905146143481239704149171108595319473477286283718135966083357776790855986220611974555811519791503035403839325457645299451495015549306845331598815931601154950589078524277694010959298753601301044036513875842016613381296706355380967210045378578740039058699112630688991721630985915598376105421808255742436783258213208127874974601744210506758191625714611879540690864644366247449961678265329158898051718719350415085534763608964120653038234886901308765617755570096409911699980963831827364225447402685870134208524308573997399405529720534032811655063899610745835534106385102345235752161989666079856736757549651903041669056641673658911274697064006228814836139872891757059243723515247415491720583598226566911939854318443600040334696893581211872873894244100513134401678199074262122130038874411966690482400164093902138330039805612413498677710423953755809902269616776744568279926737972965262516708484529665694211588036644062769222067144800470973575441188628217284682740825295631412830485457489126980064674511663170528700215532158852011082703435807581583155074877744024930970751050296922050738489212790860097099634239669677549995719324163377107854548359685127600692141262353911886305195606344180214773170690523918907969354103727994116631858734092989000984591199116683350327773455991732373812255233158513602534828200591859080871433708821508771296273623006079224570571899503418851767603752775266566708399087819827757331371243353512874797877187007428261751268284213148222195185401438297479949103100722591479134948707822779387226694980454587598357799038994622344799682090832053778085143857024184484126481253748034413508312279510568597097394646119993461971880898453079563483017423114085857237550741622296849653851690282657255834197795092236422483820212629647917095475983770677476201237810259147982824403774515624208511051678359823667060586123747781168453058160625178747518704190863600079122323909982500469810864433519316700439668385273229607411804287977637177883747256530297978150295170095357451326666085779208246640839132471549586412141597909463456632225700230541484620210859196095374241387775657557116584974130178124104397321942944987042331387170102371860086903865605550117960887521101622642966804339300406370515824224015763938994131530055584058229997851773804333712392417077335379587394888470857233656421423053065524259610335502643025103553802939619511930153669762500171746908345225528279571702567627004388649601132572270533327539775850586131344687928302429190175800943957937918202024800542294998046229715369231723369318697026322055038959637275136155671922943577056490212317143668648624810878111182734184046629748717608240003148965452119286199273515278999835503066105150176392305113360404494974311597328942528404601618066565097368097913669162641732093631134760984332499734474834502732178237373350672883911112658184231650379623557560308326487753833055358655058062274105521050563808037525157350977543115885272637543903730638785177950851812011538724323525213219748596105539334034877964620881629184053094739311330621149004745290163890716333579262557373958570829447998242703977845982308994190401366160310013664609475336978059626307124605803647936139028437664777639642293799215345095375399522045475842379196523188489417957959654841319295769291038150476630206693771184661733757844432832879957675181978053969049304816729306096255426897148503619654703453174729838877594950158896745787527707550191576126542850112262583755721974780816762493380684136360483716510349113639261136252188587694562230245600042960393025305758941850513284308356569334144261270033203365875095402846674648995743886860000653910847040111361507342817645842589911451206897722919410816187693500637112320553481420619950840614930697674342660112705972651700418305375593683250372353384232565105899097165462037021829669074331876546425603296178824191643574661279614163505557818271667942672725489366653984584924423843385586573977919291053070959067305757595569559944315177881867563758147095160332725340993914099978109230346519485309418941616136530954399481366289451472732972113712778631279940383131067135042189304202406268144304753217243641269181693453970008662200370765629103923170372657687697702215350438856023267327193290972392139655969938377784505705104027523814114186314193819349843279888828394810770413047804345902871666668695775640978491746606271177970383106140675863963305164456613633195222304880485173940757466321910245817511578773014421136707187237569765179232764583424126229273794536888804776428775937830448688169376742568331850740744628177265941556670767018004699498514474125529796513348189592155821128535607122458319431381034309287358355233194499199205633017392970367990512459901576670570385002842837378532387969806449443863973669464026185984521920685399288898224251326076074333447022512816580974670614261296029680119612126541796152848383899903451523280222087389146380938774981689270580847824887520917197104459254675806374888239456636697607339305218212137967316082103461002722784530094537416494208113312639401307920796322148006137683718705201308070827886386767258110476065320674936849897691035315940554513012661676322417244652417341759873084669377815387039284027685376399850652514943448792335027202338807648985392625584498203008840101707446891472212629678379338247563160877837279132661119899139486054510429226882331468376358713739175499970793625883262723224327494340508343382055016691898531157313845970172069714072910458514934626977135676017439765204961430272825383516524764918990993280833060145602552331886781947719136360409833618874118129823996736094004211762455633253313539420334272402096143618284185926419679272091302701749024641214366633946364633986111804503754570629293464929419401465104775381377892181227614884791998002031172648953262280399720002600168348712510581566549768536853634790227402287652642617186244298891520505382778180186688550372892994608659527735627594417544839391821677026296068419065302160734346550733226679684227323406634981301594806728612258684315170053113992407451138779248806452270744473024914532484782677188285192947263209292878904971059664627960550169975576234075525193389360425720818432885634552767689378861942378420407306702114495192916595664792591137491181372690552787568061213075090215491513682884732198645418447679375471961427945792768883226621088248341169622817614751338714123378362538884288248273620987131116941076525898886897820587910763283774385186510222571488487262940211929644752226988364769871087181981318126950158895650000352486071743817746789196786847872392740923359024870623249199568393146668564637244537574158227457173393643975815345810998153955243681284627092421928069893802517888206984578488799346657571113046009082379989207822336385706624118361549045753246892908213951987241199423354680757749866095010195769766936458516678711054141753583783966779890619097845038811338755726877340201982567755581452938636252182384749594699433386820982626704252332727181726276476611797746380717947427641590589487640869571819014755050103005983203973549282088117704081969630312101822711912120431420715671882403831761695837451999011432159239719481010122102826107507299373783152464804076681142417498700865587959403957198804994534985007622040697668209684428805261668308219293454990194772141039187892529929341696205572286968926184530673236435728918614105247832487688060678363409777538485252124262264222376815666548654971562504743178884390474620638047611595275275962286031699185790505126612574994070530560619878872243362812293483366854168278098361740206928194758433126167550449525901724220949939902113176341364496139763821750896921791010621616452602326857975850816329299936261422316009747103062548972278072591694216499307059844964553688820739179211360707347420922244349725586911653233751237921383036269048590912215196598262408919027227104972375691154122994382481889680068055235361327889841488724022728850172821188033488402767910001893190362120108361392323560966422616736196476407520880737891079376660313136809835002755475534605316218636912819783898144420509124152867633589071847049047075876612656161971455870264300825635857079884344355875009257507868890624607356197389062254207817283440122037739197037753377118058077083554597627378687316566671583844859758626619698905760310227422864938960296556088416811788730750693918571515466091017458652772371123348557115075322589651176241459016991124593976274232045306175251240772879082928080246510250784163018208545930949675798024258039719645628425654740345407484747592162562488972284942875925854809861817351072436405722956104146102810985013186506445162049954536967227644713674647951994667370595893948713560038385164919961737780417025960134170173717734218049856583192286398860285745681492646237478915875945764769551219421745174090140540901067802233887290874172595370335141802545617236257028139411265994603748625564221251805594681425261351749929661404283398457457268705091754201990712954997588752325571849856017317200061611476442620761635217522750641684890544177497919278664381675019053049083361876151898553296719794330280707478031272035437559218863267259132082341981834084009996314142500824063324463666924009911140936253171843463036411014177179762602630865334283331430699932063904614641038141420003845381673898736353312155000626196422161374814494182989869095741699440068283368362811825461243546497990020850595005427154550343718562521942865112335835574062997686896923726589363719778329483472013743483975856740527398415915449060284893813776179512839998943051336770993740411541461894409905796326886847396402600258514783061439553195427176904704028306102250462499816038418814414258764241121926805115744830498227397404010363329981238736232403889563563967840067026281458094062225827769259568764029209594118864083254080815758391605898678729136704684973008637881920736244226516294981205529153878506200638770364301074479615237798463254359278276894190693669295054716690445464438602870437126364937699601739086117765418835771009085453396955017043595150800740041744298375279333642875496539066647977758542369237335335698879210444132707165388844242503982328027445946107595264179141227156619106918236533927227606761117815459135363307277052916656578780078629365241844050564274042154327856813640661118985029527206165520505540309790706488111843579493772634616820099471161991799308277421308407173583596345006864681819423701624592196180960268267403241718014040753324388316800781364264444695822053786752505184872910513108903164025817049665348263695483151582382563224245212682932585476772706969249588975301954949813583097386944080290779890890235029895415004816041912972215827317775059874353803475032462416163896268680933594168418499311489722118987023645792483988301507110536916000312892548268968920383239437728060177150226045539499836910316123442395116261618972401070031995293331657395339725834054128750545358855754248876615129951353498752506202577184288892004529380336065627356735193293562753572312144687248120668210097361879472113555068197678767121950904024936312868725713665419226883049543150687743149591938363364303288300139681733559124886858994729684302850909061906802008873082970783571801201755524788508475582172155318126672160219753235167402949670953326488815356858188053459310070070637178175470473112093870437866474328597287974525185974404511712129495847756412534896542717977814403075777105094091061716928112177012372401658240522885653761653238371526873210494706336986375698585399787591889377070441631561911488642182637747381169703206393001137945127674629086875777404192836501696771646295729582394283172600898931426692939587641595411731991053260969885836510531353104675993372202035394276779029633983659660338131201228629624503628117615151094138340019848111814698085268730366486490794993959353642037279158145928470120774987360194591073164027347895822697920024777017567345571376027622589227132593956131361819923869728899255995723151102013682184364895351603772227169337369661380321609990210246661940451884084384992768164710441831297782341296340925349130730135340736674011171993085266993161518713654397672781829398538948004298610957973781649381642717569450685240284302436722754565134922319045450913705967979225631744710469494237530608129435143001800718447283479059955774671894663859676087535919496922217420336851927378789503559549052990179707370269565074559880194458465976269499590284149017073924681582099382721477984128013378509728809148668517553269270718585825060255823465520222194152593173840689566737673022279655377780437563659865173740730744013766685197815201436943628938069393301087369247997099930370386835439116593745065232923500852581244834194343586739629971194899461774406637141327273494291997781585548980024163844997811289110812447097900107003925185834975206910781632153326293647810144038771431761779415260066208826699217946102289200412826360532939234744114263771154954244407045757249955916658957771718212487783578749634314518976329584990885645519598821116554049137984529375986044617485751526586170029873482395433190425879152385355995905868672448890520072434686576637669030349704852765529029986782045491829133490637212626717326085051817298476698646982424114538823960971792424304676922515539799902050045994141726493417526142854666474084407618110626596306811076133806687017132278297975254639870032777764078410547420025610801935938742905074784623558375918822208124918247471825918636087733621567084199989158977235562066057746764845519487018462900214037620768218432797726853977545292925777958250290020524539833597578381135629965771882679672874259168108023307635717846235115928686496582390036748810373229179317258160538467124034171873790381748162636863274571636749234733781994297285828325379106948945218540801241336035530133488247171726977942034003335353274604877626101602262084519456554443457179435663204413797905723259542115056024446326045405776149798691091525845308575562332496668093086701515151220474337485859507156708589706200869981406803153144957719811760866810356228612880819463123786550470115346010022438167681520266787612778499171547181367144024220485871717709128168632513968019913770793340418372952658038348770519786024739792565688287787816189363347281254689207303608223420935391489770776345135659846997014513983719262468473816236682689905407086881295941567716438830970222810696383272000037140304423247259331273283798183769664333473710065996128631324665570250726531488414027712395494771119717181849444625942540814361815768133337258349740126202990351260496068248706109295066586890583173463025529237780791907622487971631059961771124877441244862370045874503517028703831100742814462207130202673695801260888804447099967077698406586342712595860150166334975387265088584681088492800716664433172263368880344819467495101242520290797342780977954030174625441287234922063664533115117847247421272059998291366760786386909603862428189914488659011412744880927368543727238417937949464752883815139898660189401066758357540727209809096695510767166863042556518507253232560857200912588890541933226991846979937528947627881925146607331689943013197703993992144438059244390672630220660436253684745917772591785975895157427194488863359171591044710995655074744843906251129802337658402682335606269694422976075448663206369680982474646060194510877408115245932790349585689642114505018432892442547025184342218169717802556955212741233510915157369805766131762986101002852700406356843759147795317306714960113278128999271505499894545129384801597178647074255841434841173519025793298221024890235563911053131848532314021302007039182944689496623894242168149243991794281201612670372503322715955559390095074902376604471908634617060530847043079245045195231737389148010252232844775014527440568869928597273128071625770494737243160281580946539614075240415122632179495825881833957815602398491172427309297528202334578360552301748571388686329425871607994330701142986624532958565880165006907656270425968461621247876775849735843486055787031004590425127925399819340257473742155198268287408276089344264646541338559786407968544820442363319403700966956896460370454725251030791536953024535149481494435669717109218308175537433701469291730235890969280416749840654880040574535385251199739401445170890162921031047434003320317399610419625463166522522891913940551411627058285023701647724044225422783182815706974643698982977356256522163859026051009430996898096200020249596005264663036078851842492425365570670652335269898385756320922738682265966139547146922529937602864799871822281039874424876235344176460160961751272218709250288825575539663007775422885448736845344310114344927840800200944067974514843977773214567654248194433838964442619824549398823852756279865539053127137583554300625471071242144786415085542127182695743736075170136872596713824585274599776631840529140673132849925210130500880787843796918564882522066661828009661828560002814121391266817122735094225009452029588677199529334657029785069446428197355340538046211251333065229043695793372706861883955768466759324882997684372039286429204445884460343951914956376665022050874389482922529521795181841989286657651235631257534486943914968772728740987244132832878292401774333435293603109745288809463961714600508172683772614829485645723541660839849983360047368454545509201561541562741844647570979548857731215164111824959110583396299034639351853017455948814093127918902585634277636440945765640741199529983768488489831970382922406834419491078734013060729954988462546795541170949810761044180161668026709524699626453031441609283065752097824465893823865409518884736698244532954409333306810449691299025217004712667781948946915813918562874101114432656486265267845306903225658283820002345736340431320508654063642953783624258332397786835307993919012746610969460052160682217480811739876081338486155515526523067063923798652653788409300803130301126599046536089394819226087639503578925761370321926561521827793557891711158416483496467198667188641407592337889269681943142470962904997910131456831423120241726733740593410381442645474310813215373171762336450670596197737576058399648820239921850119335498308165153342066426178484170881243626667563023815987758571797423761569840868951606730747371966139712351033549376058876111245464796288534145217004711265777312498246978987809248954198358731280469432345219492441719393031955630029603239099827513338143271158699616283285559950501530605233431027699655589327064369708077043540103117860525890835505692723254978699964574144558589430785266499430965217380763510314950075259169482568190898350056565235624008090707986486431872293366430057888795720466864419564892316631872257622288367663712837130806268554101861133108213221149850542268517019537286519639862021057646503759772098682450246891669289601908181116550025580417575477049142191786110316332259338241252602968175084838663125164278976300685620987015541433092849267375658246837715732116011601582523764858898183972626946356113140089115322775977583960223784587789275137090619619893897074716116865657388324073426816540539545005266024351470420033312405919126195013082937441311170020908764106231217729861185402447454937748619751777192417460708479829748744377111910821876736301005043121561085053822585141245398890196771221374369461448551777371920940642629011385106350570193860705564673768725085797213101651002550712442331875155832967948956364706018477014778942202275808680287411010157580137141826142062292523368588420886083698274497873384059055788640448412198363721966539579507850286187846053809069104843425309443842985309785845692826861463922945440695225746084483389121217294590611516457882317881358853357882611009396184006633427298524869074501708387133465004956096405022559313933416389764250370550398156371937590549536147072647679664591047760292409278329590785160776967706445760569045895845004709987093970545942679942071521088184817527831081736471210637121101031458141700620127368608043753405848533069581470247884517672015055677741487692703487394903446545392672222784512552618449072539748857765565659519137632658347463840907103756667762118944631291602163379766189476111198908820738700765866748885917272613085365429071729685027400292554643430304551108543863424805289006657618045025519716056332152093261403039404441676541774155725764194184270658049169156912473723214049002330174673489885432938366390188452922080029994064785812896002971299009368741225970226535047740606483559223144178365696007938920142329827427225951406064146889120741069812392549714611920689016530366173068122509664889661521847650336884278929162678624211209820051982289983471272167752345573785548327873731930301167217519132287797877318918291217210038691229860585417617106801514144699986695445363884511012879839883911360324341736992590249249182587421328184437561517628348530632647680719071258905758244181012011136449485855565105422096689700628800120764752079122770239555935529371339884037738658924000051745674311949830726952588849978087048885233435451427452462685340446090674400084874285865471670609807304793136889213507163228918711352255197406143125309878056329636328814426480686309799283244049372109935031391405394557149393787367633105455021250003499614365304337268207986484330608062242850807229211650246219883045487572909711993121423183233736339007281330332429718107563327620254217941195741167413819510359327397692926900305312812974057277146747384562716910737247832043587391088455308966772844351423270357705140451130783271838223624567945424205473891840992095911948976852152708554872410129741785153910233468833490041296030755335447079220452600551820765313812380745044383156596106682323864454022816322506675961682053035529618494534299972306559003157124616479471145209691891362794337834577585020451815220725290243864158303706651666505648904979335341750096172631534118136858532287117075977352434816112749891744877187789320787736972161763557366313848477547440383539525335519360636610977500096318918127186872120219196779932280494825402835049003089910079471210518746013318432974813678455132247515045887918891173299646817659665371345388923102353853610353307518406745088344860380624603302757682186084827472672393285371223203204157432304385993453694732545645291860614084802415188658519187769346539110187697551917057201568428481717413271443521905567151052129988711529670696501392752717311928815842596265488262694016915021841017974248951553740692251598822663686592239057864650169193497062340709937060125994421119589555043301292744762323222121014799834284994364245045694307078801649695259864466250102815126990641343384832964607488827558072743057552585498571488353901112987929146928019489669575889127884817129158003682297460203088146981362476950076722497078968823585124296349325458764764671041033433179340391210606478691698985140898801827566613563552748383013605664277392478698110547781855959999513735467171004710837726336430107853859681218945297403806218669424960408775279026284152345316992117486112736705063171588321584033927769271302550504591781571590370634822248592509276912126811324995858133284323048690477988713607630906398282322427152503104559062431417106570618616557321309541667121168958239087399405636443934792481535733874399178668837678751960567627592361287599600952693986761321886793017258470598946737128302976396832737363738117267958888222057326301453387365858945932845648008652956786928591672946886535550579000665344352250309090560673669047909612193714004240453685554792477872332352246617025975682439291687589257789782938431487378486303444160915939074739370847516652103145969986095622529016534607834038839147849858468043053279067949367719821460097475369934875422981178868421372684847319961224482810840477225866087037135585192311827928509939581908356828254154321345798842452198524623445975703877859315235945835004281736280168146782808766084583661350561607364810475059995581017446785168793738314934242564288153840413420225141234589861029020932390024559408939184811170091255211598455481159295867026913811643900997502846906804425259540788262805510006629936352849196863365359751647326729399155109501782192498715192079198104060850719420665182249855959166581000440040830756263338392540760261930917851775478017451631109948477494379293077838470650152329387128345676722508796414765788887967509585483378504195101290586471811764808605519774961032508101326601670621237278776318243796421285899634293639253132079638100407993027843671097520992993378034421334143417777991048442010475308839806561997702703736811009342198069468232877514507264808697142377732333800045030408597572494914664653298385623180475698970846884215990987372931796854185933490156534353739802577754063013392653708949642890591062373280535895721494519476470870357779230811554739299293323170322042716359925858651703698317688689244615339757606404726199238722006342954280209019609112890290867830308810889890171370041000774339598094285504350082273032253393006575202752148395928687979603655135362562336444766198216196779885377120978032593085616214852717204082553368905789682426362834858937725146394162095567818641694740910645847883195477130436504716839674186501585446695844316433315801585759807049941681306657400025423485586622060868905591923988460094666124395818914046122781704566728317971577970443876929401783901288636191262257253888626930582410392118611799918720122304226611238662453004994988134055606854290627876344497847472580585759292807644874591923382011267698326543990921650098640281785486019476706860446035769132215903986065569166643226884470388617931664476690549230613869544313305148781245871337812546832696459057735038953238906474195281355396729060951636635327950966689151159622572855036738513193011807066828540492823571779054436109772249354696112355779980204911297112247834611688948581480904127147800304572950554020373355827795393769121453679283810232928270626984108937745321241953222231866535847428133841767307499952273835795221420117174383083937803295316457000675997070176897594016207021962070133191788941786010740229586769104649725695109754438702991299176610781568990065654771680216115576715973238256749277094977915498287792887312088068572709113009240763251037881914233543421824791467777173095436353380276938007990870445665481731339691689790079244170095105425581874478819576160434608091636638934521814165977026481045680740662813829641277682612750386494600438583353079912079099593751587931226150093190117490517087177063385191173726618825126460494001405611326125076880558228975866678218759433103973613983923098496963325681505378152138211041490368001124159143171517146512234630589186204765609840098289405717838729952568731622049943677482211006764855665660486316547064337259602011506077377757051865407867698799517232550362265186459939106802121213649860725655225847993177664073143445341291841271616698557720555919598836063658646451228798860513931666796598130538649116504538176099328883849566759065074274671490312488563638055410036435984684831492339904638593119837182156815268906698145348320013412181527690843698264397981851207808363354278703662763036439843019812336371942062567266859838187446259109764669828452645822476566245684672481895424537534151147607244762152135436493472685270039301357105550729490502459971733479438445557094780799143704160721259467035396025373861505029063518060765772451611818010433256888132934832071945850991965677918110255338409368394070535619741675701812910107293365716459343466411080881676232301832738367996307739138352113499024305045045758627748604287940925852430323822392229431229813171402330287880301251513479534737174514070876948263147364522923720528887547248808979741358107249695742026605325303660024016855145306636056020491893053866393643090034328965326200838666592519186313305461751884624223219138158227323331038971901991303980565853947322714856224215816479710495133409885602353761644951541239389115337460295373422075013102959679789871597658406293630580956801741466658866237978626033575893755543031851678197007376738968997532174517463846366060265341337980063339121458884070738670779014585007711688871066575318173036182852495265688227834342946319343757700877156161053063813806072720554103471931649604704662701476049530734430915788938633812014360383650507857892051784325860906573541924519164053581722500984656125545297357576626819334998773894242194176872974333640678885717349077326638153165434989978332606128686266750088491515296880617124888364775594538924634131538578715301370570280120261755141265339856757928417180332011688313299234709298039029497678799302962083356536746866872245678247908587532085757555668566930839900474803091661314463638088811157294464437420904712022470338903800099844151989933168146947552206566912699553388310927947593186908343231665535584452014901708738872860664759436999149803397137111773869327593836005020413990316268730272132550602964006424599559474081618004115353978006065294868412200234985570726699292555397514730864830023859293961391527903626824140233173866434621740966562457673634764001003583726361929033219865421915659346687597606368335117321637890111468417497709370164892720873468463798327651203426917819081111522625772596745699910412272388840409082567334260508878572943308255858381253200004730212853780731329975073589944344029077000012890812539962122499483682211481191539832360057586871480386182428926147349585844962908526882226724717259571464206488806002970075448128610253000226370261746639170516761176054755932487783098887535052065847968771544008798491412626976151210932209661656069208201207565178581057685073270009782324648318343544015037925191685035872701245122000782008801141879376031429864075525367371874674738453161655500485903890466079450814511613573634566500585687297073503374678471961976682957988099018408792187093348436454697937841213696873335692274641113059468823315189335429255692357838167565108227284236157640360361494583414917556789189167994474647571811801703072718879416744679756038168754095459089318050400405952117066287067782584085113474779814207823520553641572622575398938597242410290465040218257426039707910460357281256359466909282011156396000682350891098533808410053672354708605233920447438604881694257636661522290647831538563093519830675617684657842338295235270411935484147030260959424308556612642741467122211411393923146745233161306595377514642566568794023633463423643276683506318162531661957443752473600016694492571164753424837007307207533524126913141386911505007288749829982257253107502860179820166673589173898315841172480359904093429361530703576238850805161628051433929719367461529510758691863608394602215714809390189075940192531320406177563922343376647894402499012572018536203922916237849103520066774432719169519455745548785591073226170824727600730295533434451673006604199642715319806108947238213752386208449196512710028506124369489130985425304470169621239401707111049979618238544865996086389513275271851645392890699389623521378096117179020651419475187143776583330365389994673965687144140861324875755150252190446587410291568892807965237920067651590041577741817533234592580234384054598192827239896591535917422784188945060368457787020495366496411862609810043867787756942680028632793996092844781389535962282132857221010992190889705709844211058491509903393287509190317239481315321692209595134877978614179651745016161095227477091561292577053264908886917716386570836065343752869140439837332993824076736896913650961511219112442715085121543133175200112521385272142519677512898946655760735532438358858633197517066635402973214963148597633914212459009096412555922776982477144167726254493957863273192308087231675774969601419975249868718919079597878562594239975760963862271965727882885369900088960376224018247713670559620217522504778936055003865351158203147927877233623984133098439108158036362297615442230362711312253210648246964179405278393844165977063585767397304156873988276124779051666139234147878830379971701451472124542002966926518892269114147642767929891218825775829046145538703093471252859235480141954856387614455251449130621075770502428282378688897218668166218688846304665987068758454549523189595146654927658400264301809610150345217394819052757524092643802008280708281963814544706484574477723613797026701945798282082061036799118300987440571950539836550474846325028810720714967527776590925246038832854236062983527356620586878635028992452267418600573220291849243249117484030769809663798416198932500651685010967356838745022612346858642068710226484377123256848349472874631022379906095050063536936608126993540872174604998043744780985744030579281434692159490195599218009377534541589059813201482203341878358462495870300450077921298235692344674441351301328303888576154689598945586044215497518396399108127675991717788454903668236317922020413710927423020578108654177021164280053291408231629449943089953359909261151723443425094217606121527408049239221074653144630056505832199609331844297426111935084131770931333315463039674257228346820526009882074629484618697815136537515952631220162063843233014384001487800474102387067108107353915266826900759485216827461688366348612326171811302061161106125155041408403449792743841991692559771074838185825483914379237550482740925596206231305390080718796752144973082717851968501823828891679003065766532944155609029260544787288445039949120178463046858620215210535514461030080762290804422972471799664357788897205262161057306831144833955453147114183373272279698200983064755507718102380797229284747101470676090425197160290583272990136976544405075136648595894389813899616610140917916992958540330678430617673695785987205575692430136431622198661013892722042670737582942035415745599217573244890347769583126443650526782900974872356353425994388152303564340308705529556288417146574403910745908850503786207679172643219379100237573716996138675419779999807470248406208593617038850874440797171765704969611606408880876447098393534724108372712536047187292749354745704104727831628474260192385652267122399322463393378339620956384036467501718713640703854920934413804598377014344174834271508612822827084234590263971797040073365781949955130311151589257888081562483055226218493017546569515568895885104710246083647202054911227819791471347680616714102541625941476825544993469445961317020298571378016996412119151239259255139735016736772558957937398855586445907299054810726858056378136841142032408989772026712021076058886647682600906939163939143397957244232378860883291098936273978167097665172881288872088372340123459224713966196815054179734646868913579564717407061955026045776734885977537340302778666618160975824929534249469740944261577501914456369493340795933535467935021120652382177484375494136995229440148744735772651148888536098062803721499499576760943738337538522520102405171377856658507039532345484234974140698242633293021060740230625554043311565411155578009566420665355846959000862583309346917961349700356791519591617412302575850206386844845848073282109041851507587415873467808634354862202295999435244268151369669576894208869972048626531739261111330307258973614485299349693653263777574764078778993893783234769397013744057210100712102994426906335729555069955480275707587928119004061693064096266749687156861600608481953048782078105930504206681605069591721862491018610547669827603494345196945234975698357684062227351989883139977389684072195612565705753478654054662602598278698341532817557613715803804359289216922515663518676363703612944993914464702022995509486881872120044461069627418729511325484795155771973887394232559704744903538517784533134806090268409863118452059838298552684192137571433459585208552966522905777853391794042981638709680666112426527477607877232927983072579042930499881398320671789943883305736142988316047058707511497464794115960577591257132281535401352658378963576585346941900080074697676705650876072058932730981270850651078331577248498879471220992059843693544920413487578192601976037454162573477651034990602331852984620343440266033497167762995074430072285425452423986385897413592029127051266538794191782651069176244119678196209116255088884113171553092532501171348634778167634970765425499913079755781550499840660816879808410755336793246310082464760709049891709755096378621493748629622197002607440984581374610623071504877508723994078578644369360757622729141270630265577655290491342615522900704158606706145444617416806088992014400783611096229352627727068399905355832803530630981509290358322185484219216087601076966309968013752236438286223330372069600385724227761422323611225917082711531511386841141468057402799479485335415146605409875421007537280990945862954389756295978641359652095853905769790310464982069248086731055990769635275017567813383815495767771714272758080653666272613222794125558182485362440739127686831886657609438836820465722969726365075520062425799868357223740127716546941038466564609922625012282886604486978952889273164022556067125358964269547309582682960451688239613480167009115552191455895817676981235895421578027757894087420883378344050688003299646196137498771126469233139702600850975580741599655739564110653612445473371519381165174194392022538768456603425250822432717276399562272848370645950530099788463150065016220780453436848551864674372947677502512598730190534278511460939391678837568079225010804364410546661733931410389832390341100491449178030641785530314686816064879169968708751413226438064084945099439656658816936424108059741512349459120260552773666747096697389898902969194409563929767571639781050683056456578605197563991407178425597393370028499303700069668792538289805498417836226005879063405571863099135082825743850239839350098416281146976762874429141083406915161507094562157867634441103607642549477715041981099311528081808538268225203696788130605775306011612466346457576794436945675723229274706270542373065437698264910118501831622006909339302843375280628633493276485898280974766824769291892327160707975092960961464268007319702918673672923914247539044176724658693381430976458235256516838474110302796015579580716965250604881900154545922669433839769762594326020539194543094779986854439387071201569273024329722158929616469139859100547563113357182348431722860017986832466413853579012488937927510135595620847616209487590294502968813762380279819356364477201228730735089401398676019773192547504437765351199811494112107153916173670345352927531129197275102977931325963164892545483522872852612928817451536612423330932670753994460052572508712010395670800308299737198142061809141418861336101738045256140947815413966164563955152869953116717242174837225155923638865904649079918406539726765201694222592538922782007662494155826124029740318825921007747447933109680942064918346829613728958972441959311781981570554466883938967257717098313996313158008973785996275371793503257175594762479895175474291079862118688639417559516471356751745735804933981925885674357742366652103809110889206361791587374307399988482750258219118104409423297332175596215534672496500163873105701557080740252224748492488336838940516162210019397805238220107444564471431615784484075959067565330392069364345335787992889292165160983989660880437277340611405061708557033665026111648718647088514839464975752088063184971502980573525318982939106837416192255432291269467944508464248937366045148723216109585256579549657941614851157176228738123764214106591009581023748147377533212357633588652085773520850216192772429709471556615417962268632235638183147416552166601410257518053835726313212766776446232777894055096218531664392572830584049932551857420306178045064124849420616525846316416296726074593721007055838420541127246534393818700140450881973324405275544162862945929212014267757745642406308267337175816186023624401625020712127888710306502853686085348285359219039724784495375452699317978563007795086715319840308287344112223781217414227049120736692236543594071886657000149517159467862202379771297063360185251548374817105643748818863849570254115031357774782017706966309292268164950260491385000693378691478298835786220738112441510073976948851356489036503204948927043223102473084365392635927555389406822004622989377504497822391117193950111906856108306368217366398467150285997861781167028381405518431787936374898696513683025678007854368152361619625634554459599523404783459195386484786079135617878401396497386514414849240268232843208125883277463570719252179817110215004642381437157004492399494968235341895707669733195702266107746097413566935018430301596563084815439050096532516882501306189610912078313265556707967923014590941681804755032023910533487564206006084482020604086493576202681724940515622585051488152454760291944853620762356738780727917325716916089224512789964100193693793980168655510914076505416876138496163089409348847625544007486157803976113982174478555909761057396175087697014987361436626793449807406016266974107626620220824324453305365680697575382825532371448361437108830121090051310985254766612166484867343904919970270054382272630873310405714554726108036470913263834100869929481869782887948185448263115491464605852405769712713224934298909734806010877686696837415214677618347411340269525883129951165678233744983621883058999865708039668882324346613527822107217104909540430232311647652950861951187183999836345007031057280507956129228958769686649582603318736488185413133926364303211692941236584246378629645940232890180686918273140561563108550540587380400287654064191339288787078294988077297399818288663441688580076685301762436934048692172360087117110135193307639728868926385696476088396146704031410620894999895511204846367845710384700578631433320941565950738483516344165542119670827993423084724051505133432859079930922960905553023253556236886009658672149716532024729363033973404047434691376635938664004764428561647852413045341425014100155485650726459710622633413187095649095389925165357589465631878697585086943617573870577247597376982205515400924995525675339945902209291991106211508274066153796539507556105387949114320075383470728165399156807905391394493221295472633147779398594571246493604830401984373518428496421721885209308161474605064242232623660373619165533333164597748813156452484800578633485030393503053912251756648006540476314201036765265708423491886466739616651778232214263555339753483304067647170068206221701682298566249524808453147482737340827613624455224838045090945722720443038054082776158518556682616624534368144702047394742692193314537477097523166445951179026278836566581499170698005467085821204100929328293783693901432142522032753657834627928342954384828772815005804117439331563417370961650329461678037060769213932516801251348728142242185250203287253429123577095999044478814453840649536222833271870273227459807090160936299400643394970412023719563039964940485695720586915042865397557976180249512270777282619079376104236748602946604342673276775527115033015445444960408334001089135486294025009251056503543773375083241796423885197975014424690955633667062371294561905091466893590652322104079956454663163328463448461721413343476999156760105615824811415978602031998342087112289854853239438460136882870753614136719527025652322746382898487769079169262495272307235437397002141031828554078760083634261109185907475327140655499786408074653176022315166142209345934515675229046447798179112661789154393288210817814361131338929602727926644485536693013905773002626338446350894300761745238928078824007652808158635630986471625721314721858491879591328492275127310766977958919412464221405465370979138482875886203217132594543855881952503497450099519226829585055488551386973068686668644065211537615170558181678482530235943901536416630754338940366241307121180639847881916019717104068908887497741866007532732768656020262926109625525092927556201490651119841506139866213478108474333938904155433033374887594106217446791114377373699897905654778723648073197850694510286502525838128526902027595148165679278497608080642264569889941819308975037212669385800679863431030826852463573380649369010108182387068523348592321374116327851434456630650469736626592441462388595141494399141474821931773013641465049233391664040209308235984946238926156180728106807289224129602171140282438175992150389768352850319256650979192158370627809874532695173718116814349433204344083826937306688955297921050107129070494007000140414011329813325271369850206292950257140733994201775901755137938370496624840253734046197680144131010975409749701634639170907591606402272855952013771754442652326943012566705168646654636527210861419778403331303866750844393345910268661501116660502240056467867116425086635763018081039203016231569360508412431651262874720987619970959377519915207473240116696206993601308091021051074568189975990624989474208623676934735045915446318146803803207238321156917028569628676538537753605926407700189361935268956670021046935397280512477002441564374805235976882668833233324018744958283039395897334274230959668226720416927135880650146735119712206510287530784178236685452072153142108076851688283577708567013852504657275094640876443145357597969892178766293236104164880396118118342330010275176721313309272596422833512813594707888928509887036394582959208042234520056289721306379096225306699521880108839112765250165875878307206315797639231948255096595598299403954449133417470161708684311361571644193488431876375264497248756331899549397227133078710973299984716374928744193882141638744142000445719164329715312148777877084484558306489159739292132795908055997047418063257097242957523471920039485200051162554624703477287622089367954889114218292203253820749380106694620630898799534743417251479993012727432198327056934860037071992550889609336168314918059668494566259598470942925282282938102856236303612026712147706678898435235327894697077655882835090374379356696923840449767599666982557818079503433813905470176532022067313808753774542328908804058565106233470937031713764032006222358232126877010870397866164441610903521163626617242663724363763899658882060634357927829469406780302774665567543201904950447722259078535206078404911490225472244985646020549993299359078671432864804689037479857226565394795734362345886989285201588882123189797294210793337750992129850763482712836498417351587573589129679860552863189825235095315407279931095630602924169971548217529578426266197132459611553867554055811262593344814381431942920075186460435892804523849291860305316190815604533237776787474640335285110133136091124475221156629900158114230092150223108135388580608377952279911005708098370517757070329182500414294760869328384309741533184111069990271704973453063005273901656009709766091294963290970080556253977944721094844378718081253336636189882103092437768348472954332408438162985036275260440207353664290629784574448200488950304664290178753181266816193984816660238258742224001317913231765228553428430479682535637598383906704293757445882980232312527187483358247460799514158038806710746154261045437040279893977457670433678872288320163548209311967992874795425618203425895055743358362372518148232249934383850221814332239854267840765654356764658632200506357237012830477911985150154052469426333977749863239037733092704373952755586344991705138645555125575150399976963395553182135855328259470150862605831899796372469310159933807902638586157031153863533535655120583615774533772230604635187719325620510415559570963069520362861886659613918458412994359913996757729016256886915062889929939016311058549674771360953886188868820332170079658573272853896660596561504990789176261344065072769688310954771798620919824973370198200411890666023538615355812388466895168324638783916518952793207890711877632815903821121289580842606529792268281371164512794262839218114035274929647285446236239539216718793843893025962215066640808940954461604591995780378816149262339826301587924221189198453368344499612029217862904290204855548634715260517988935410289930879271700181184925098735407712240358849131392426249362519228194541308874069987249023155018318535878972499855979138039070971854548808925195147147685263450940889176265481427429197037162092586926903755696966855743441387571635400520220747444178733462524181527324747476696218735991715390606766242111491340892014562307934454536267766323041678224356686925365735571857052246558354722758332736648983380410994624114369291410311884195126946770354878532952510180280593332754999496142585539989181871958120129789812550240635336349931774101609296727082639064506646484110641419583113142115786397238537641153305569598556584730312871668541131537426108844468070254731010467061425209670522632269606466200319184784151242192576633294090322721097784710523920961305970812400692156614824934288368260648466792523269905372641537924013207155299971302505957351797873413402009485859262705987780653027398370251689667177397864418464822753567289150862008843932042511818877784868240044125376923989736727827478647915813009112101855529206911266190796608131803709818154469862119721395670135850082473977590322040684261559361018485546453061215593174338010539377741216492061972267011107987412792799618582553732171030542890759485662022848069032136142450868852031448196875575213047482142689524646643261640693498551697270403623038084117246088215612962864779235564463139703192190054252971251194894604374312755634789477438270885442554576292518176854220538514762284804023821999436104359946158138765188044440451858549339908703833785989659374046815313445616156248734082750716557455106600889108146924479002984594609985096472530231131995379739308187151318630829477245198241977774429547886064925777072800097137303531383937711841037544812247563296077458203546459599733700751635021678191865574761297393970300104714387837726258808322703479676917412047572349012820952570324130726366189823734866918171120255776286076227834340409741257247226378302072736305544961164674983106759628208001447556444558117641925909551231509510715876140603905865924139149385929681344575288406386902057924110052123627287111547498345834846858880794862668207125982936003060394581054089566348696426030584854605590903150807900940039500400613139738832585543572057124981752317622313746906225786790426986649469384329084363691663867117198230468689315033075774365632720387482303124890604946727241076540474520573469308436380062119961479346449039301398710504606455817450582957724212288162750580888913239734062453353802505915964880213140280794821149333020919866610748473466653309455542446036142476935170394540971951293569036280706553808444470212782305965192598949824814852950290856121837304154911672814013758438077449696231971432264835754550424210959427655598269124282583968944262769454236480608435028477405664087985770097472815195425065107035208690789882787728749866929493628827363925839906333667270304629607436457975302897731219316760172421793615572983532224719102683525682248250279918038476889063913593476355466679922049096996878249463805019897954144486250088139242793336133664731597172558190583189345384163917252668760119538211773649684732127232266028136313368233833347438195215829825995035659871827247388183584951623333484895263005201257890635918317095228101554769077148574871284825322958946032751905531140677864809478918918126650702280655470023896636858729177305589480351332190599349648576087140626526064239844366203371061214370924094272683724687412802120063106983856986184690307996191989831832205660313358450184778007753961226682158388426956948697374739052046453462032917068122811012265653034610675236293671413857898979583893753018274463470567000331400949829224258604791656954768779935724408630809024656803534839831970922728062133131207995778721792297845640670005904033457376158100719834099599207264393592902592362007931992322144587433646708828041104672861052360498200140515554401724305022883362282445220823922569421136885884106777611313314348511935059505925259242135768256861300557089419838941903677481867728049276443403333738914507951638296579279718034139591545242559508792964439093417110115501088077841337938750409187720177803563509754913217085368144172223445236473622621404637455726700212637603422000006828855383018045224017139176555525127901466523918821896801619593352578366002065197659293323575500379514403366622673575413058330950007308047457960949282088840709203355700824244591555832906489423306631917469973206745146812420794658605038085490344758772926082252818583524842426868560611311073716323981991150379803841091383467636719299929787505861049932214984300602949652809506226090033250942966576100708685753002486637557372678384273495981601442922412296277789024260924711633103158794266210153966846870563563642464306242295975121787953207499420384952738344626284284700604725901640607567055423974982156901241840624784442474191225709184652487738799910838437586163378926721791403902514581367585389368550998676459507990191061071050935783931266962384600218503611063851283710096113499060745431576805590010139459733473156848888390789539532690529963427750207415740313668292559625333161134695127130145504314359577065936311876903444137858092560164877223237537229866185335093390376877825928882557037264719362753443951868776544937805507294645421013911426798832070406798863900969263868985278817304706630740852311096751449330740107721422354398170567751917614970357680496703235295304814220256354732194098735634324517664607111147702992469504847381477053591263828987314842251792182331409694107301990969945354512594681921101935257391672523131879459714495092024770867452892387513890261411759464701824028774438187523555124019079769233848851128336287770965700126260810737226165234947923380796586969890110603573009321350475072147360852628656975894967160275325569808874138067102543769572790063411731225053046513250756175204554162785582820705164854792774311382691877193619493854378576483638574631726585681055307265776261587549432160537445024922020480736675550931820343661696370834851369216685419159226616843245226987662388797176329667110366659446107393801998397765928008149616093401093983869521658825108609409915059653609868041602383720758622362391395827446767841007883263821188122658204220399410652720890697570820379504828593023976127547825088884455490598878693439750446669465246999692870119790438914928696937206983017336285447163661396398193315671734470858074795528488507495167299894719769188107087028894075598898690748409004050321665573455559166239228729872112418512705179941898255864282182943476851284502247687922847376159760094835535707419419692615699984322614513878941718256530084222924797708584739984003487992174202161054133679101791633820434732999765858497761930182782087724408144930660437433376897271744281862350849651129711906847754321865307391152961155541736533168821847232654592039824323931227532658825513742225403459660690176521293552378123849431492360407674521333006083522737138510225064757274185838478312636295969375643464929780316663259059943810360661089122044204994518070040107630167872727624291144432602073213188136832540585533036208290737787221004820756330433978914259389374600554383447086234086175564749885635120054543601922125492378662780926195286763280791666799826938415971958429093900552068888554706859813917734148513434103268909171980842272265687427530629731084701024316547969014262559266453252689201473403992360603515539973595463564286822578562440654656896681213949401582551482521589297798746096215671306948718130156296247291653046622711796006668792811541488478036813854524022183767643697280328622122007899495324832750024607298874468930407614001034182735235438600189409668289801180625661929027995294349545775736886588902330475616003255904407015803116102883818084046370155779904619342694915517301686617734190801694143907367526611812721152325745894806127324081620911697853035387023959150801137580998026825123809979836473435836450190987878583299100506872257947956410103148532908546283846469841749503585656415926479261345383146145670011630125469258341283593481613467636542995993349484231417577294970183175193879415815395723537363827739127194069671715950455772890823302334434062390212386650843383435053141427034145241778126842877978447317578024807257511580948491196586419215646343788075465959562437679477742917855665632589347596231506905118867336388037350714637967121153282575550823523244928538423394404855674553583806553162133784648728094949373398410785346426484784466554428977895621988805524896144391431345547979047668008682716711737020304251864697714566897337864234232912609656084074866479530402739063380999387576593690557115657970332888026121085208199130340872772804117864014513729497525135465453637812891949452354564366209184745027453036565858142426556620792873533519706810693828145476703601203781782560367390214162909149368326136133719966518361498013810284714740606143424881386635697402571968197877570493578226670778019350061720620195415926171972569721075718810845089436507551839567689556651426050656672259100369762613811260979302156851179053258781703849626604023430329754958614893250458538907665992088396174087976547297536083283832903641304113281884771237136164547244373163195932621504787074455361853208072445681196113029193656048699740567356524368748481023574217900684467635519353316484921081577546275566871416902548412476679897398309064544198876569503229200763021516085096417890905900221239818646477125512364368530758880651504080188718977403470693452907179331240581306439472228605816926201513606181767926149345157598013672813193384115114061604313789351961266825720990756581765608738436407776977067249496319750731933456558127755209283367440909079079838687538188747400058192186440813650524729479723870789691968950691899216106866109527118731323357070537852975942597826797932075199060498641632843731910096626722487037837570369044258995584443944237078935848275954840087856916074369383449384727173606506202820514691404238359345638346380537116137504543320847145509400427185131511507173451303672442459168698349745853922965968661415099792020986897877212537354297297386864913720507159462728447219006529524568430510724609880026375746999716744149203536589147194210096674986393900072309400881515889553193355870328566337182992125423746104153255659136742792948491909292147977243771931766201378485351663906990137851775508559336699017041119962351940347320592384015496767906111533424349748741271872058146526709208907391204445779181188401054555871646184975127424725378629640606314442941333115199092408344628861770783720708862863724230466995685217879229956575623173885795525159998951660685417191215587421343947576849966708148795376046366393917600190206758450296854725302872364904082566679563375297378564883722857966546368766208801051244321824562567086412574191849303698118314050990474611592470835629751297204231641611951018718381315010494178804636370753153027708567049625874635241371962980198905728476854674416806973256814326485534197102859134076783883761060157125754516406382966873460388061105358544235170363835301581313321878363440176928915724242816068679441827562895857323716628142065825907984368875143820781936205276320680588452607612003069399621155610123539163231485959038488280357067413562461851432678016357615036691324698177771561939453142469822514388241804555462811167096715378062050215385133175877004118712396967699455443616257959567209269114530900701314740566094103311778713268255811169859806055944489257880736779294382648820692108498319206039357942621108102529038902133362537579593472653802946698653738051448284527196539273498525618786304137880148461449341277738114681367076148637094771625128504341777856678005836073855842822393924871649229100845130843984247683788201053689213888788727356673742968875624610273706972468811472715968132128672361791002442730021869906910527620002990876989755091653804660929970913104721376486877025974846622555002586376440525348109979414301373520920072534972514331630781947314990022078387686843641215731058828125349984541627506101204542677527949326421553723551374331485208810373440504812476287768447167086509769493014056636260028743571114195269899654196945749009973977808374729044173231685779921119247472691373869350083390372711214888538488390576090657189137662347784357744590358479227483827980454303235575203600419151731113905724435058437478581980013355455073052995260354939630366516044750119347757801868820207510539234263329372785203454010793353421816120856750919398826310951265878209257100655993147961623388855045806263346298774048314743012813149205841631742785057486642098479266819298616505604485298862049812854655864192382947489207786579780757460090748174994774426511957087455031014241241045703337982861653402524001767312925812428825851320283254563331463834473556746332579594715324432789629369081234715267622529283537278494511109230279040324314134209151817705368459464448934881817605754041635498537621338665954633757731736929623285681870717197920938316250291733176680024199869858129264446339663650165713908191377267551069693937224182723325150004556065340756818196185340113465830660366569105237026881361322434787061000239927032044209316157486332989797735648605370818039081348497522314698350402317390167518560678432263926506744295509132367870124540127773274720264748585637541395064012910860032289911498014674105308494488869857798588134985333452116403507576473711344434236846031004160975212498335967795776302637772040952266487968450454163616713177273256995463254420592305154666733678372879599914222130325550299029722155950953220805235018039808667191452963843828063413779813638706367383665005979389773393323456914316994246863246959168447347485144479637144171626812811484819294696215257569930536157738599183656148768615392604771844222878019285933856131187736519325414193221030878863928395846565425468255828798642482193659918562335037587600918892065033209858916558820896743756056671057254440928487221300977738279305244959292861989689262327384156044060150744446325760065609376207817043101282302970209945953359652728393689425778306743948733778947726808150341199672716969267575139050746016711939181535712157855578120266579934114748078199621472954621575466983750992257004126297911987800550149322025228581924425037964756839207154804504577314126956051226229137373947515150174215075092984794319121461425834347947093233399179745535502569057119334413645712341457595428485913108879533856779056351415935097499200007207294666687960794521080861885654242808445998738682071820510569093108907993094034447227133514966677673903359661061307613698411079862322709027277761407376257656696203729824619451418573773870271071413692840429531359849706841168777681634127396786374065674056044640560838152160396459070938478935223837023660734768047540908604207028221853647705737425860837349094262432284675749756819727227792339133484978470390428244251423030240532780133094761872113397007692770093051520980555900763354560624671903566550773547217339738059297282964088928410443985055085947719449825120424769837081939626987489402055116834908357487754645478879490517835913922336182790114899052123796228050569083286494683166881361434591915992330243476604628884344105724097086426952919798187013485902778332762953585118242328936156492714278237787644981576605688329682855571173692743760498188289637757894230339691717407953012400459476478140966965527721334370865424396756345276690460062560865310161916574648601876452886451863679332179084322179627893069736050265247515857921213596507043182820971432496169654654020015345594910593557895950733736316711510632790283443921382475689112660850788985436361338822239723991811490885209860358511983285926416909103826020720270954398551295249973467344294650951862633088980250182142508079425544334826191643202384395352573177217587994492633306189880805877547066227890088742139772327873562327287252379773640491919849982086304990371224965965452649895184608103339221203913685468776328631472361178962162519887895856650376041255136969238326390020972296699285148919593174795491505664584905570651785873610340349716645133768520715254976698601057423197858437111185258078242517181269804710822848007214939527937397057920761116867427328547703043808345724774173703897582574714706448476316654092301159773658034450494511945491612009313507349574730781270324966460596939095901766479711135075886749544128363129853800894088709272043491654356863422907739327550307660337407698168374031401991500990131152894994321712930715136583217889083668448855358084498318853802087805348967240594558331372547042490888429165780899327914282084923178883424089082595633528335892655618845476438256986397085509460989746190574240692184859351015723553922719661095428737023279018931005197607094998385459387528019390737087835872236836432156815741101540565837122295971096711112241112384901937032691671127355876594675798012648866912539288818126331539393514678336283689240088471474720189913146079450991934377131376075989469027018442904997132919597814514179626874397640590636480941412868204830788616734899073983924261357367979289428157032065035666900875500499687843024409241085513914770155608220177860798382522608843405379501070897910949011108148613731403606526566640337460207041781176522839359915652534956637667814891452466489058230273982992424420792645747702235175372162247841718714146165198750659090985474700506863638750318494167603434979311709742189925587867662491905538664173700197587624873383359897538331352129783278443343212442205677285990021752127774790817782522974170161263949519992803582770565786694711909764087776437070819528589159994063454909037440148730425009404905517777463321569263980169672729380196481192936281124174287732154738507229508514816785529626037176862540429690327280224168770223066470510643734149055744119030523826517615526544758614277346354018084218702585165185769953952405763110325977127447141705662145301344223084357996955673099485743030003669621206576868307162405152868955839901701684687980185658033871668408061553736234933848733417910064118473988130486614650998106656960455747075864867269467735288468743414713889380597044670064156603529292858627108666170330961373636788814815330206296619270945030999787831228105072967376058160753370088388353026694974020297369209507405934351108070167633504086068766399044499379023029912090268632184045393103755948177212871891689852551218166971120483367350063157988092078854820245778027074808862222845690092748922492585584742955450919025496142089273018340621723730830566303207048439788008084520862690974065771186779963799238880095977554626901945290433522468365204957013947232831012756485795757919635164476776888420061825581100879868517901028460331096037503218157320794779512339585495761472259849128396150683604211933341496272899514608987942104081230763886798250576300481454780965819197106916326862878210951418412018995584793736960609941378122518222740086598013544587487899811579269663350952819925796314323407714603047699771140227013762999192617863766693003886565223895237972975282826231389970492767096840308798495218070511652947897040634684239724810627156703510746727310246938256567776302242475609344425110815055076123962075509010587054506329643177631860998337837021620399100342014011478780437418658719594864881625435419345435998483378543520779440512907180136987049888066760480481624681541107539656843416642202082808847709850879292353125994279864807958994982026595152859774327572068893361336168403833218650212863471878530293993528726365003401956194499834080285784279106924857742365977536974361357303388318825986955999847395590782528230513256341681490326005350949581020501620365011725500523805142226653442493873544730832564744844334689779759485063569893327603695243600158336665253091330868527362566466120265809300452842885613566117099696055388622971578980993900750816964670127733949933576384302607866717581671016754841588463404920602206004090062534237033713237417012560909930618595821543229063210742832479371679696537405277049420272369521562614271613024128838039139390575724423549124154013279737865504898709014438789729872306617750984742915683499616317347784081313743061695951306260740924357413511013113693311321976982760080871296403526259290771119059421914644374936645030098330620121582993926873682491458161637587621063499448676896894408994700266004929423784219224779781111740393252565392757092556519802773296560578649648564997035804971302648546247540717354122227120730133932340019397459477015272044899437000179246746383280642220027929692859545752287127893332892926820295314590373570653912992725364976370477273924978088074419660775801408856719876543332880478441964190463817138542720430429435758672246876498281104504786527552742393794441449969446481846040426744345192568457931374760088360443073954471851818919046149732928570381905887326065341963943468339453990235580686549394493797157232772131632491354692801650712856261219417663214577121669477200153119580972584427018972805305004156486355642149475806738261491504084870940169906082467689969123278665708656041738577339372252812791981543939915422221367644122157730228761129334053179923147522112797997253328712961286515918191891127293014143906108705650443282205910886730669926873232120244212383400863919438253355523416508004148326600952007134852827190062731901606559925673335207351842255162829026982392309076427021219529134499220030742107289888437070714323335955674391326226665282880008573841797723326553454488693960196918474726358606276683282876585897425830625995623008327457525771445227414891860747967753658084678381657327258560545263371480040700781283291333015673767577544247383988776874657744584915308533149950397831232046602252328875421607852060216102334350127739754215006951312479421306053040612023811666048354932671193213684415909178480044850967233172304075823171465914786658684219799194710572221040522811504802580308801391394785749365437982740006313883287937632028485690160978151802160560910840138749539730514659305540327303130814854854387826177981113039358283966889124488011735046234066995371847208512375555775377244005784570339108891316808470758940481645760565807103256411257440157292363448350451790067320149544767910684665847839241175081532481132936188331729912735194391105212407095829760329916758600006915877374148861561375891191543916397503695684170434388025802263014270698857588685845964021752439891071077946752011661549175786164831187083069679377400804060674469952435490321828792754902819535921578220154424448351440309976078309574018170074901924445410048209576264556225167888804728421398775433847351727750790758464057965327816074248424690416949441961862393677961226793919397609557132902560996725129513176344732351097195780792750840361686039872630988513667750236116886589047557126341541910370021153093914178318546103636079771627526582528576786816991014390151400614900094321952909851984261557880103767404076526798791606997029633054184405281456809940364399081696752975151057304934733842933351313469808360457345421680892575178310098362156560781923652524646280078317888024532525921248140137258746217345289298466913317357534689221735735676296010093979477665909071767669715130382605947622330876644522893372454360345591179172274498007222642358400548333964029149083189992644284945645763489167646004785783914906204952764657668158215415286395341761631329124035321759731211552143829911764948301641089752428823682558561514264454651115793067677787636497572693606421844000358691505023319419794108031446388821563193902815130684992186102332940089236146917597209915578963200586686072454076284530411470141131296827427389860116891802034306754511525967713792317251899290457127568535666635976700564415693735234121078688977656799432508166653089802412135363280209380629301765768352077687214714758055800669779080122295180698183120717320198975720022791434035997488509602021940805712493378814609005144618850227835558090852694478338582006895760318656926288937006737983648456454925389939082941739308942627783799439868069189495660390202688977094700895661609162039699272949801938068329061869092540021072118967268191965392147171194135844187690093025736624531896786362459271389786359837320916416140655063816869892430230911821523745237655280375097336203903949942662181285247127545446869925376817792736065310152011180899517219382403708065027419430087922801752948681201248202516966716002010144826404700147218443044046844629964087891723269169886475913597332442781398614335649920913157840351842437168124656829134272393793204770830957118347506558567625444051809905962727375060996449474926596093710327175870903505095391516977881084442723669892323550884599976273288154688168162772277118399618810951565724391520207233372074876402897285748600964427388094165679271801208382022885200482602441818411464074210912150840276267315013214261844273088811608622624840231774236569638977403664931470358406228647726161363357596059178364050718974948746767027602125441905361649170854194029290416637209726840749645880943716324343943351483620871408498943505818834279964890217431596439413782851108267798273824942642499044534763720549242904073746082324210863787702521707133460385694700974112586470129377059645445767665629432173642545841554724016133650937093423934153110176775530752389515673728503803796114598578745608618483890556831799924436782835069826527053522873298171449500482427357114430367966920472253112826696716957303615295713024036157870771829663766534709959250748280528674955107423283442585250212807016369146757623387058307619411710143563900841019395163709023195887721242821029259096062557862177572573540220639367041886006734640133411605580039574556001127457304503015239711925902893559118530421751317050493653986600849249201276457929227785790003258695737167537370422414648554281483635708929708616583393886148756989746208810438198710369791539033284414360943990155361730130169442126741167203633014018085373654306850674786767903643953784365531827591898907784423422075109842297927212528608115474452663594153363006741687094844219620243557668388855699135307235988341099944584965197771908938411534225862719388793851963817962267984472394440033751160045829204435325966993883535487475615705188585838619469819346091399237827503448811017438831513814664066096301509851622387965203735160005411680007672998276772098965529748456511912973005104599217296103413711592553980741818048513062523764386502475160948688771371694629529772944754488565657935868085512235821282165562443102515675692772660088499565282904165284411428113959714956188644668344529384620508738113109876183954683972567583772148913128530011074854850472739610314913640211198559654413623311678774483300536444153564268789947801821878145689422792396006500321672111800389125757178257820291827674513959443849657223421422264210207236277967695548618501664492576526513354896695234038473232864784007287055752672449045300172837297084104665891917478247641096161173897758517716234945874174917644283723282770277222904572265118570800358814414001459172556791714965544247338689834664025904230096563875421155626725121021235586905670709939351510837503715834311783355139598725432429635099412132271258084765974112939709790544055055190371815460390337893418301972640319550207129420403870080830631217071687805773454951382782625837586493256750078773301965073006367216422576422650935938915673004239231709672317250827797732800701253340883811680046365424136183856832533270092216379293381863149212156539310720055178678516248201686344793756749647348326192928317866674149888059149383381655673793399915666920547983663287557796714209675301804914530037286382523369111934072701741494745841065999569710994732643625522414431999748994661078900021554956620282872469725705038757808643023159691365294114325642636060100244212964242261890765223796411576534668563218680786197274989197909313698902060804003902911646408085829412094667295886719685878623326209366449114684963862438611861338465003132952388354255919680930082939481452925028962582949436900369015668501296509899620484239528109877488691199432310994377755102564495093577390668798909941353964090580408582407820360455143310891983361798706732576525488871953709758323281419333618585903221753223205893757788628341855916852690930379564617702226684011804776341388956774132794341987805996230523713915519017594257056981952164637260496464018434709296852730252296551032266894901050213526233689502998041588356545645821936263692899977759120055946630975816709519346863512732090737683552545322265555738528663018379190949774532931755551644219953208688026307665972588302176498251239416800966650694009235120873474314621856229244996380341534734902597274681719942988058394641138582495236406014649633530720883436873044563037042527954538417667841770388200421711003936740667838224451518600242061386539982115537351854519972354648360031669829801518215953800727430968427106968051995863706708148631163808807227918199541736290898666352094253825744541787355216471675213506070458020310225419878631407017793428410603893060861207300752617190544592604052775262112581395264528665527704362425931767172271868603817607023933879602435211777484629359762730811576801703162297167970896744916006046947375457489393011450632866992308501034823269808749861945785038464976156179111919741285108042232549531097870184455377280187296165063967962303638539538792325320549079024805899092054976147980394375522281635658662636341685224881612920608420197777821506116696218380359435654956000906084144838456141561546178276553484571873210764940601174315426725851707465006433623510022820462292192933845134078304861702531908627763769494211644399834056855521919845918699415390744640530148593619868417401788921464795882829811561835936972011227002817109082348155776511674365062782533257628242737370862623195743184253131779529639545224212152742556105273932137682142724492960336896252479520350842656284155793156042388966110100795385923372108106914914580783002221147201504841338895379867335694895495979519980175994393210409265631036855098806430081836398883171488176816773789264986521737464916181785913702410081924215720933318776048134905596611928132612975143466089167635725201104216688741612835473476600293951984441634527467287232039721609478388345914879708181992812735716612244758685869610469453222342149622068914667777306751569516658266657665023949112174239810575342201823276436569719580721815817848427179759329692852132902519272153381831134811468514002279640430283039486489867791272565823408802039257277158996748547256991246250993074290592246249733576375204209709969544212502702057807841821021500038925288082087606457549673531606966425377270918580464895215571240628590988505840666619092814672674461857838300334435127974041815467468549328619670857321441933522336504373539678647338688452727097420479685852975528078588820154626918165267023104638166367434251443088117390561003567400415898679950192625972957010408607257827227976162987208948620031397423660088297772302843769424557065590982135056657352686183963054166103799498807590492823356888837688787037158898750162447558805502934974179559445631028518200815078795232670910770561825896388564120149943674293418672974724245763320482602680073692287763403352770706379417792657159539932066790361371634481283076853377103287103987916336514812632083027958498045650652661856899249835132180378182557310402677517609527320506371023206126131272648797621453794832048762202136685576485945903884540205509139262617064280738020735380255496161326871956279565082887023825963236260026614388259094909951400904180621356976294316864955160902373861050390670510957517723395086768822233996362912020455665635455974603838734399733338748787161594702376061504020615610219225039269662527003575490766575742607054156936238651773114098630149014862300220107551992789372484454764730069296519888611603533786600182641246173049427036900143061091478680998147711895664482732992139221534720502784365567973999706734677536796758316105927030834291338612566650991852747466799506092411504595762815329510992466229508172787299084795851200274199861255309301372139236883551828176084242172023512773258126350521248749168021175527046839527428268963747066895287557498467316948966614948244676504397922250321551670984252669512331313208023079360996900311515729898155295350595185537962738542036085239593069241286961159233851890586912771634345530446590612002529512863895708828949057700971534612955935650136376171371687038487268606479631803102716785797806020858964052535579226547020509524961881810871550150523862093235781180304249270049712804801710245558455557821676750320446357149953136244570532508943495925813354773309882550485274094718057077672657158769350921976783252774489764651527692556950023300093013213739304118784212189401636684764636814425162847593317248305948179368342448535753995943181499381513622420178305232143113525346526284177529178793964639955583683989405503730113225081234406792857558685599039962462011227710979236063765815857863924152761457014219780871296634834344354074769091243594373037757234673902691116961530939329103171584593150824207476248102719700028785825084386904398587212549747036966519809189268374677282866533637218815399856770599487005751834700478807203936679370652142753760144020470792552601248338666800056755413978927949071497638918553580903674104563718557246060521953492388040543088128452442980494869418100170269159993713080921453806510437570683920754680567045647474877195616612135666988580121110089176696244533649282602719475749717577190336978118243667295145728966842256820659184744070361753362414279275986155566953402894780099716020674354258748080329202781697537116375884886075505923085592094002591660713356211862684241992651278369127436705403785351363563905465993646722845967864880420880601428140822461477414152366368498370664827621726411674370586730322512721537081398782994719132568087671488616663936569256645267407986078796001787906088999942471112571118900802369220910341159999201685913759898679933489320759346866504122153431567553724493597974864039769902891010380565712060439641686690231647675470629353811942043356552352519931570855192761877027587792050970724359606090278738605459165690209134836438062742467482006393424659510816145561128785909422964167196937381891620394769464032741832745248674209593582287862936380300212526153359522282400014052026729233104559971428422224523187446206075123947506348645827501485592111766677166683923628553087888688654802467192101947599200901003161595965014926434012060146082488288787290239009064937412606664840958865667519115269017391400672082577934849184371052837916999442611595794616730441661423732159690948322317895924949788168601851696081664157538018242242568247512220146854644442864969651369511998822855288072506769041617795810728925525033664312638653634475872898712159020179210655666545841675068395676107350062878262428430062214632546261581531953088416241305581568869936434567910170730416718684046616884507405295411161957792979216652870271077919994313711015659025083615816547623045181463986071133501700989601544852229145833457473764379197561412492187581101831660344245371793544712561354503451396075580764181738702427221552510325834697073068786902664912942302049244343377841205082507114801540583161884358774369785615506935967936472453904864602820470787406403444001553960105850301661304421410314576595949722701365695581476397405458259494846503011373557313148530634544907439644268194346616021607853250342215485908033891350076530065529986927708400214862300688665675678739522128013648486789722587706500350961346862884337686753758921379229776469071160586404442541860572265961068297388149743947555433931041785464266635593687739143270186805525247053514609202437340798737725326611608325938541794272390583208734505121426391959489693798552998894579016436108979464270441663497456713997929739067027511394091149918952864842149031607439025924202290434071321007488528620010002232623158778493574714794713271267829723350997513832459826966952431342114326899594043397846036329589933110961845304842090369764656459731106439666443504486263926989503856616223264519530023402357445100485542582330124743368471935776326344540911051385958808517289521980516030281048979213742595565436749913097202266346001324498412788809205430612588377612374460104737560898825552369535603800914551878588899514061187414516167160593231595763997657605079404393909197647950543765463191318339998207166417017633731964281098272272483014978347168789181503774722178795938272099816583275908785527562488127588285059165741155082728413721199288389686162714634215652169421061448441130008929232745049535629857020014536159386548751227874251908397418914439362585020056016696953127543506801139867767634596121652785577167299789254979945755797865017248026909790069936692670377265937323709558241171703429005920124822138336767620742948730632646888397667827844267284567859769632521900209296574808920924697725118289746413961190856743499821653251422423455820080012697597017675240985797029386515709909379408789396243245081604855359149417214854995709343795920734771915296183801632071299017485658291514103402700567738020087569204245642069553176685697531965890378800210060512487104116655033598669019103443882578403800810198335618461653103655594276979118381354040786911430390358819443526432430032237644475483833622710558416673076405703745055632890097840641930916644733178860102275769630549989176187411898457778773747572162976918653492746876038828065968817476516865999028220442810553280752786846498851619012904954394624304032945039641383355664360816168619568605704144020578062807625470440935209638555691519239242948167274774672214726198291547193674145427452985298225578213292130084393199137267675001237826322836767099309347922432024690213446750109047512121196880302567983902488022743722558972952668323226675792224410559094663467710022714482663809770656733538333763451240300135934057494652874398414467490900507935893136492711552796354056010574459967374398481012097906353503225615842428828985286694348607261171557996100352773673480320523155100528863619763276972014648860796127530445391450259816074316134578766711621304437362111231262456498345712628257945619155400827054448639125811170731835859044622492139261412909257889601787013966256598198446991333959716922131063063660301799716556510268963500292388085148475554894734836371826309056297120644215334692324656922770465493384374970627047329111537895079625682166381839084161861142428536789641256333214367408790608428895329671782444957949951911544083179552891563072435845338073106309091546965731368869108424325248906867928428041244771338199985143131495416322921192288315622700042119907986531779067380563150569653125471510761792464820530091244936961607495964128146714121554301327633150786888584480550408617322069445514466664680410479013733379928388042012478721893657076216737904174304902719877285583525969355016726789324776323038543929602338792395276359870693468503376693968189112875868192751814976678043790679858966597430659932807324118978104061248516409954167763625858979694730508884739682738654012285329454882471844307449354981459262246789348447173373663516531027234892450866904911372138716078584012490910369703034725240734694648289735767933830173591652803312911123013733855504700709843091930591039242400163445170179783834830094807251217142295319060445877320195323276805836983807539443147089393641432708539260254420226590934616831984031618059919567791367090095948671196109227281655420237911576185439589650744950924259250492080894779275419059566791268836426696746988602150041896321920663655724898146659846597830441799228259120453381680124070009935578847992974480911743854593359046696815481747172079746492738400558171380590310322494082333913344083331766843745893758285883137188322770657794472300623960078109669988249562060926567176587896638095504308881288768775736459728551723764055309117390060651657848775786099652018633140785158491703090105846378387822648256956044771579304017449080106499535723141682980422223790744614146600201702137341073084616772078916431607260941817928660830837880157176311432320209775622170096892704526481687732343701961995391716292476053430852786402668820944732108074056696439527019660370087256149599837079805768559549051180399981550269179829712366876108151600239151678807524575285945789087209281855220551485669623461910805583189173185518748033803073185958308088307683276958964893300751261207190981015099763553822679256958626340046009075250527681345604810364153552255211391404924354546232990561785161049478558463446179883102558561565597707215754121422558446764574051925722351247296724219936345859844541377559842064966974005959224685640224060827532468941102983618398146582973030658620474263673007896535873289379252856264515208296338615022395709822341952731972089051524163557618018022536398791669123618801749197080079855348250649688081154760061618278363675621462203485084967663558774988472771025577129479915488134932525427402328729176574656570097068468045737878299882440588465486384966841073941349270571821434968407455486561994517204441837636182849109747496392466178939095921047168398965099272444465234472830618806972974053246243756433959453425707322689521370626063564295534793800375946977672940229585075692765812935819172459388378429661481657958912975273921738324696060043743618109481875815510227928493830582670312281085397382489882831107304775476324917524835008071505076725831859204031864306814647757314765187070376940221400554009062864345566378670322721545974652891758839749987185614048882704357700267719590614459482739914694296675144647993859282168957453801652268595745868449905008269537435353342600800594049944333057125516413531604380967628153163659633114282861697097790603466181226573458869524563301365992363067419592354287173883514233487725041217268536735593306426899654995258446391428354395474608157263829015221458048312135587884167893791677466274783454439918929611606841701505289214625256438249436244675816428240159892151399887006738245272035980742584996735867970511443624509854445922530757826828094176117227549570217721446586595672667635147293221210140589390512002981486419770277974504630504578632745685092734230785133023827050774457153212827795244835041693397172326801345719842278817158218518610007938109386541978435672012898427087367290126246879374672745162949695112531004314106853538605327856696179661936103215935847046032595119945025996086730326532317149192332453798653484977318103469666032916212036611043217918159587068958163198273457110887371687081165190656180981831357927432253203560225278286539935732603455588739462025543082796317480434903159988582760142456185879434357748390147608053563124162649668132788483729198214610607649145950562440218090575602449946973679416739125599281879267138997163454479618878044203267093194148510574144195672800761714721297244510552104417326913675397176845305320209769240628609672912052705506383360883849174497754364847258476032429020413058386475041923981083699297841342824558531088861775608850646122303613955368571844388020461525522347964777636390463671007200292036848290156215122549845095680326217438458430064916209769130313700124084825444210876403494361291924200361976201719564613307236074869489229142091337637767928796317819579105043194792344356485200741614208374566670552138232944661588775652814232695564725280546920531985472101340787365096290003946095739739320528477790034620028979590171164829397200001003154667608616021656753719966111956665340150632200801615583657862076827618911843934615460618166767098717637884964418890598098155995710884359076642819271937117454059656037237600007096221862622585563125558004963332995593905070928253456427548629625144180059926268382490548388083032354896842188243487046780862657555128311535861838973354670835955462375105939911169845395140540395337119447350179497721618397790676724896537741603955758771474329201576314004325719995459166768773756875115635716008464245545395250306290453146994852969559908562521411519533482398108686481872148086809718772429849599627059836144717103418484153203597142279120720487342757890606828188920772124127098985121407293695658170415847367942564445759039243730808854971009335179955476560499070835300785164787985817159744049652396116720604171063458732917887205747353858579962668493324507326652392798248610286935955417694646925371971255223361121668489864775708903602407780370419271814868458048048776833970233572968921511008303089387448057114851629320518867199606197190548186660250678048675527086018185247529187194558567968275590019911397002560002203197406554142153603797678994534241485851533274501408895247721713718335414716967696735051783904820257789577864860741486322775594385789511435054578610933103891096708887229834703943478906722498332336800650683041878515631737353761278219044848849585076953767689156727759948532064085915598100337139709145349757287795930796595704414472586180149887219873801836806935346512423262425374724916364978880645246775048755761152771103278411293667973936945150087742284491811765196084322780491866959672599160862809951214591981416190785152551660419301333118254706583602718376811523668256956703751719119548611359907693677587443013841508669326014383415255767339609754932764165412684802329374885999414140195069595870272858219125519782756068355246001089843173483870912659259964890682945700714413045818142449775227406051875247687296393376692032197297076377610585721556373057458257407086419132418790342729942834872005576318686381884649340546838917487354423208508971881820673883526817776393609020611641173238792410281070079481160108608676976577557792542326784710509604422738684124507798051180831885614031545995654784444664296088550225719405879661674935654241313509257304652197745959468460624242284198922583801902809867504100188998809444745180493984160182199369342934980660058942361986970789852482215824550950789839551039571439892045763234268442527741673601302641615560652254964525488278737520842207581513150432269342087078876690402567750835060526699620167873668801949582759621290529903044935640465110545719171655355498850084458698866221143158718085508097877650830077316088152836938746847338954121795644075389488375767001526149515418153796849319503454211850007091720729749170414295939769332606141571123392915215501605042228268744783456985591550647965905012436068966761688943926637971076182519864265584837513294360647057192355333605194031617752195035060904418109000765084164753744696073798894210822394534255038411616332135002577149571852589122834760654124542133138059593513686775766171064198370513532635224354984252205937472111232335946823218379108154926802096616246034303477908987722087110994537505758564763647223226752694131423249083774585209170552635006248694326998447858967342187832987501565948242655245129506079560709139645532607339539323756223523904970478732666451858807076907349509232281796770164088239814485045763384326576126868891429353207797891350712420684276797408667271100209038504435558966093523355026982218773352254153130349166436601783801030715811455139962557249929420429624648386741185127027963090725079355435684373257138879064764939093953904157253756074622178736107442138863489043798560524021921539231320480860115313052365899734859995548162967486563453899021803166910882774842819932606452234936447566371285514570032742166144738646740843393721108314609508604012152039239763318047897980589688488139541360403170384990410424604848125703955055111552885102427027320074540925675675384114461262312980824779010686158826057643580531955266089694457420957037665343126766480579035581530361286797230883595975762490399015350211596244793051343667683248476278749822702789808417372847006802995133885006142246750731689455974681486772918734825146572954892556220399213847328811990671547941725277039641269274763038659690419966788317745812487033406209229069037258563115822559212308929043358959180883216717274763328285445373597499549090918614419902883113746280703637904595421395850165567073923440959402681368248620500262789753929252158716794336316817428445250704397539093580316008675704123851347361984713062766385266406657879738204802677995780584749726275033355274596783619954388778172172075795265616741154152316952579854638666227167721056500513548664064823880137477917618605868445570645898170774985723504254113116094606240583779990209026147920200970140211964823276182988026069395910768560732428736989985397748955067810710777299243754251980079152179459545079097253984038780036607777629033058244764139025718721441131884263436623466832831508295380066325218016440885037964294885223837833213227867364141116202854433589678236931573630683391853404455319697087187744525746522589972757232568916022635351978634129578977438411456446480997405678376871606539064053614205120572856654027266508941590117549319128322413210451342134485058747992993655458188404842527799892206610023085215056414334415658916044268398548790355604240818662902099346070884208019439305323736828976161662260479721982582511849905252137496154181147314576676282019780390906033369375032585163418088791690076391800529079079934249607690973092903530437395463773308162357831937333497322746573383954748900290647901640947805920256728940040450699737585248659633882238953106543270622309024094375751858640593136948578977830359206835221868043819082257677033336429756332983893592485180273209130420577708307763315671778819302274989636651889859563462270878069033929595904404010133071818162707581691200730459261724565969070320853853462163579402479898034913822829450109574268636646531985423037542537891017299922964374731459318701132272600009107384776158433824937573087807382706223714926976174371260900369124883150940168926631900758910109164399506106698033149567772028511159402223139854457646458118186326352686911436030766535868289314782599251301619232829943735278498881881500892590329150037003204789981296797309229920925451471120314074996978285550107714121268626226981924730691061495323140091557957288197076400113944694694593864781831008551433264553888994468260402908595836385148511327403336544867832332399704567540990671104267718739895342207471048848850679846412348228935320045303880378499398645461691060713638989367361373609171406418787147254794747517188626371378555928383503077217071301663533828775422998988305027457622159590905502723627230755056127910641883307678108701909297748220642065485810132857053140695007141799970674672308522633076678437797800766898564623439096934932464366106188494789344154945680965741690572409123084388533193510466411610014774511719535992176322226656510227928180745967469597602720859523317993232741764654169642219406243631169419773161309854850838955097303980934674373385239987695347745039549311644316165139014803099303373533097989113708582588615566593164673116446938740046803718456868604575000247865457309793496191023160064423977229008679379522960905823278797379697202991140609750450702500955582324866191730061074433552484253889429628165808699283052307044587490287814855548936335155607569715945213958834554790969399914416492652055541825319039284697655568815564974580909109553992385816060380657288687442260240637513101025279117777792430834419247774059977383521341060824382458362089055066581667062181581669853162509413072664441499768427693583077990407235042018669219614139834827337188859174814607411657668271869817102457438406077736363694570992468467123218065923162216307869334855215981174797985659917132847897122918207884983415284909475460702415937579916219420710421422412186700212702460490707399631513092457610336109894487549048875594483902368942778056246720259065902278709594783627324398600214540604722347276317471153083744658547148644047647007899860174003444276220024054486393583689559010978058523967963948908908115776210527828289811670901569111645988297230353135592110702626834493683150578648275426325216052854032374858566349438751916178473571841050275470791030171180297124047717450722616839410992680278422740906015389214031142469834702615312594087350907791211742763971803525380203889147163735230795921745680818272247371622584000107835962814010065574453666579503901500399924692280067140229481347516821974669005781692800439918023142329148663039721107997418706988174400369580350855272101463124507362933086484123620324579656752302535205820479028570452790182048980110054267339697885665293165089833592225458123312214037893196720730367017101675058003989330631560609996936562710616455806524447974694547241521850381006639301063934706803313925176708554391773370872521887773831371424636051928089794241626589369431042719969997635416892973115927124880963728061639980835691845559867385109389552233672524455188640975984536785511856726776711030976416536209205182871470518416294178755845588789734522501480268328882675526678918676219939614269688418865039485585894358357063546364792669018777609726104305575516965034128953358620158880188042240769801595287218035188388361139217674656575935758169405954939912467858550411228722108131964546376536825563976784563912062543811785511522925128608797476812309221181332476520272735606543757491124249064644529928679457167598357130372425495703871319939859061791726350561470020430591205496935251349276070542098721919866944032657415108414636191658519903850286167386949827216232009887283426100777621637574791233500535279654558768201586800244424071843115530490427154060346171415631276443617060131337635168551690985927224533263102721265759726240984037510030801611604545417589929929028178135530154981985916483045172257290137812758096158745536743225977116419504428614374428698531450745552126784924298308606224882906032630557805826296615165389372236199809159376253640850723882754629590321967164300515218904720454759074546356243388285881067701466058758541626946169017150281786825099099351668304262642818090296193607354396014085191888616587573361581218959826689659013587404161520418508294690037159901459485310513939505481911292970708263916184207554194871579630025718250013022641965089150033848604702264904490352772589019087470868693768346247443260112789797060308027884637957045690608261600171589718422883968083455374426366690049339903904351939579278829782029282390978495947499783164568549013663932459011339415051886236734849813500421909243575097034019910270010521446327871765161676566216516287097854645480734569791960997731467054792363790251771319593959297920838284241307354901810368271505819147325962915541718647381925018475377326384060371541969233257240079148333319840067737967344037545818030605422418726068810060466201110510198482057029098394964175826024265827377212075670497730148058248118865453438870016194957542688167025428189232155290261904058154309432208314342326944777879889164472715514999284523791123257730491556120736400781829189381600695385039673779060391511994850275819113122762129054938171547877626649495874571190255129316709289674965004516676465043498572446828805541315819502482898130049868767279984962196530519274963527408966276920858543227347707079517655736647780887041158487259735453771268230384600573891157103572568831543866451885124556784928456379035737415298418179433039202428995275352612904432983081944402184089970670847507461630365321104997533351776034404362039233699993192047937664418275688449455749177109728608344113334546999852964488873332972543481172411888021910719463574449994731227516673407585146449530065247301225019628425150061726880138368577935048196379800669111874508454923619703025398962070525475724283009039451291201073375620631473767523412797451005250835294855019389422503246383095505941714684075399268901530847444112386475302841146423479531328866426933753854976316277122671174143921043108588206917937798115604418709772014629771224299135684595081457255580058158422420496865519890407722385924583245604791072958790157530677168283659122934839700072801431411902947861028997151482950402129368117284984042318886337725106198762591644741528048415410648690729807479342218141988620480229390303642152352183371395354885254136336049425166660429945555440581916229242673501971204858875568268979787451827594233933679903759574824506087369119502944668343936064696612017709995879232991966217750861879853384385768649708794333498364091158036164531871518574695623928161089145825611934688128955115866007498629719753433500863823808908404692513079373605865150270313837023852530113884831909363936237412379064926394705736342062040400978982936038293385413724317252400398160182357536935618027836085754208698216112722392656585478868663825317591585246056999667437412720097464413985723385635788701707171552053934730142660712408757676288372458968553172177718073420065207580432338280304813899520415994428400111941987501603576648286375339244272976769611770063878391572664139550113450709242099939243902892384178734042686330278854589996147404197256883388808630521313563805130078516099483693486851695476876827484768302277119302747998070844941521982727468203791198974276338622423988384535139712775689361881192309440046405893583487555495537684370645200878983240653245242779158388958226386943206380763160857377361240186607698079718265487781473081544964624660317274409323406986155633538050383888891039571418421240061248290989452238591000674976963440317046367228279906459816908317826584409405398863304951702925444128101924975137852352369267480725923110862060797733445613952942928917142363898128015489947831595676523137139228093657339262565469163649557545575803488812993788318790074572248469021020277654190832159894744756963768348841166868362815990195376966395765417612746629435024941442529515440779769668701199755595488802316091033268944745359848622850463611635812194310249528211182829090395772703349535160057864830806968719140659606213218849154393552080793991671459313561776040808222680728755940182621975437565119883834266067621699091612617450893578895452233634511482874897207772333131160160031832415410252514800320072526758454549894341178918673289151774449347649978451523990977173511494769016597390647495132041051226738268631032002897897037418363943799463797163597967134358875708625032210164244767161588982826661910340410773437042123179167492332466670148365080441160276863718701836160775121137380854893936742845284942415460603870876395076801347453135528306084996907196836348307269507851894261099727634905559084009145006838612925064752718815669405186314521306496790704792427387581789067742424447522857980316800059072628634670352055821243368918447515750729442460054549114460997035474653698761537824532712607607022129326266865052239204930875558145108027461429822198710411885399200339545427516238258382606580057086161331026865929895526942390344473504347854799506646945085846320869190645862846188541791180472819999929418188319808552945938777275640576637560439094928181727102384524388168977631914350932331988391086819178977348940466628628833856562324482155314381528730501524625935017688245377544493144578441140461840357645782658826784348661583944366259299072250824525462471690280711994883029294221131438577320694428510599502074141207994049578599504092478278915268649500324474566111533725309083652770438875260968337983040721504642872583483918204293790329579542190404054004534748061850806593954907086676541872061534994089422107304088054658523956424373778356858918647420255780618731908831824871725932952169434575509470946024593405416873277936339350084196314534737509333722526082467555513840628570799611268706639745088774736571612564785057837745439891431039227712179931725990517996128449237370356035237982744484058847218135618344357951428885298816572736245931189495446786080723536343737547387443401572108596883838478930329328117254611836224495326911508999841386334645942844581328073009712204872808673911391276710337089816449223972105503749842839730799879509867979428553901661448614156592453088452005820465045850112180196175547616277227311756655605808937083461137063756444228140964852534710200345583691652139848109412053590742926309266088586110239104406338518189279524999303158229330961358263927292069947093795427234965740598242534487129141733276441887517493599398411728344790614405986789638451027237924234560523640158054768482088281422717093043457585469906699958864691179530421707828395335289641826166846283763710174258323692986640852919322540160956670752362010494590535666817746716009777531344806597316350319407308989695177836144968217328305003602208350921616695799114120214381372099734099164365762595530711257774786819040723656894688134736550958901182304342500991092132574542877311646343398383823852516806257891775672117363596147595512741418148320768873372338185144866593692905032261263497752895035085914651469536734680883028215345665319709156227518250478704709331724420459739248247383694132915874127153101864119456286571317824184223092927191304050381445860637286030730293104426015261872964084191727375943737469668575929403057995783724425416034838970201945559980441875392087987985627932955955563330624121401244640671955177402770529145050984011492199659387074182613762958825899355904803881702585780771418272347577260390969757349835065963091714586079443735162831345255025970043139664752888405665931150353210788932544736147850194523873540960263258580239367438588262056560938817709894290612541407858633720625203389486195608045390579448358494528623236811550104254129214589686496591836008622692645972959577140719485151307479849308063461135311346464123920856342827958143253205484643211026586682972239200456244125905915554651464799279593135080313012412783907171168958164059711336660940007864741039648418214569241723137182998560985179138842196481804373162002876914563855953792512054984961836876927861749489662373557649568078565808192372453104906565390962800776851167646359212813867683354802824841371490943567415559807700451460251633329799859868503418273580017778975144156060557537666652361853805930195743442270741318987134255100646812023234564585329718064442972861185875001871040088829787393307173019841434710805068725999776255452748017753117334296605724747296163133733323346103950759553793640852694666094022476555070930760984336053554449005643522369525880285223091331131994222613413125346008157196154232420559889881221835845342174941834337622077708535210200284174816800787270774111436967525124353670814980237181815606934289943037610361946880389247325991536690467754879720028769073902695303546789857736190686807880746349406710844609807566347267409505555753767335947134361089669034389065651564977790409171132775225667879213264479667119707692777222077684405586332780604465849192600523640675002306762124510610205961543714986823187921652710113348352228066142732684258820472574074797617683388859663771951932875289914431911247346212921203893336467789805834031906011215615028379896874666525656619109522394378126440667915827169791547754538911075703558760429363440614643007723132824563455565160149287730593189268970675566268038816347082601283172546314186198397744699082268475768502790060092799569934917689784411853573126709688627200333406523018608268508722269754357947185937788885153552947669484837673964440959081975627432594178225093287766558362652339131728619036681488706841189594569944431505490131147699665108300727597707401403581937423159503543420463914362731418471984138006040669769712179424891421433415927855294891279341782798737926186425254609098723188502128126412394419123706320356309065599462718762296982729313700641552692160465639727847249914985600776345592622099614054990675234157894504400930008283045537114677012446474309208676724827777921936466824944336141074755595893823216064453188157690475407570810412548547369700375115917642930940664825641997819058154044189875657255200444919534079430018593342890148601297650434667874316467548841131429155000299515061248763190173474730747880914648044560552685256503053352674230692686358460042197517813882947688747334166023462662764790192458543546303912032698859738547289200006446817882580558936990000100195890472952331786792052620251572543258599285707809462003286832833999756650394402379183571849574639042010855962567109397775274794361298674607013837770382235801547981403071634492732385166442043412002667785286534668647084341023413939280899678407404580929666594794212735388354867115457953295604519296665964426903213790119827391524437614070448697940810143716992823773984989613660860661614960476713200235171774410250434680934801779929449575932460430788870841736105204569741398066699560882059919942776329485074251135455814841610903347677608336296404243398048564346424351021270660347613059254192628197756332276107208608396425610940794828830423270400966320099998889098049868086394394904048136637227132217219119148007501981975891490319756295994823638791568166944672863379023217311306293236326279294898054273646754986553939949020005394480644273784156551772251902033391991411559097652395697930492945871984326121228751075606162313348304258459187273319537192531423948736194065700661209931413668956805114926909900816841772993191495543756877292774878411023315281391770007428026668146871571638627041036659576349037368506596176138052906387407128258259960346721207438556599842559698813886328872790316325032144392304557993598748234082572143058543614309191528974497025733079271253064825888026866006787099770636830566383592163970448934159042975674540005376221480159098948941413167755121987624690890413155322605581557885994422935631398377171465558220076442176479928133115651927996869197107375161607888300437461377470512628872627603615628245882004427326355362553312046461088767975281212737938897354244698913176750796376971094661072797236929426850745536465245453545883020599009450875274081275222201452726291584729415969633120918861077791762515443331010911334927135952942743417426178382695117161280334239457548533517904801217900886430652682660879601891162941413178802087199460379690822228017459893881036951083432280771122125474432469325292448556307715562832334382582121430604268179328407314274741021706864379143563831992819650854591741789992558606428897090649632489885107492764818712638620853562459279745483804518335406007545733748208329356659864283778758596587246481371748593871029780732991575264299979726120588641962358378238385492729174169530403471186108230055512649728720549834247743527235346211090709765348072748026897844045344011711997906069373732543078156294557843217285715023939085291421721393641759303323463154944027458850399968209828404099892578509568759428087926266121385322962559043347174732233353523266496605576217237393633412652107350709872597519892091058439878362931921476759309691167902381910176114100818196011870515504354028340148164948177839745354442591540418334403126246053834707213826215727693890853720680688402073990513446965379725370127369028691520520881765520223573398748240806396092234790211652875351672856764796258845697324088496672567386210265862170733082339397333624910274560926989351632598876895352579894272044915030494862388636850499528198107036244423985347661174551625061701548023464662651995165716826741454078875906408625831176821135419634862884434848778508439029754719951516915151082883729674296677101385481770869657424914181031077092994045521771213950563275448499431446619573080619744868082838111498609964537581723517658625088944502926201303613349840410690812263251609962794606734985213320510802562497029214482277990854319014256066142056415966510667805050241861934110151148081265095033679944798537098858376383215818690854680398264100278739556810425868912331311200986749192487417351508336783841363328057459045006709357975835141006439620834450690532766871290407393573918338214518085673947332015855001262847691027614387985796790231337804719102635552674072325819853620082893748252223179603603763047467037290531034046675997778800224441906165509136865121335037905508640246225497762796382632492145180295072864597047211071348392953000760165624317309813946214576912281447180114755833418846022777557131126661005687327598097761814932151280192444451885386095869838606979579929495967735908381541323221262228349737691028884888059523998874109531013523072367726784730241498727519654411119400422228049285858371164488752151852658251612781131102483725251946132562252878366272884541266807455537476344487850194671110765664799406175158817981810175486773524858507565989183108959858841906454222004539319560504149744870834619159163567106004233043178285342481716236872226469862107104037418625233430696287747966392429248491514919606957441680415924120517134125795761893733002766447442052668657233292906464536061094621124106173101349220625878824891085581851788861921557553736154871053261267360701843771314917254649137303236173872468652933108347255252499388577618133849945008966521039033883772463350733751028759315121151137387724495691031681775674707827143641122331286544381966535334998561344284708905040691233471882752505739339907374401080287819033040986148383894688935330771212510374454355766381753260498723788326472076438357330849490362099009050428881553082020772761524748147822170508119392746147787533170855828970871498612816514325725960717079575275509383099837281625110752816988191250347988070400807006419219755340790582193605649478724027050193732649870916761740135698377960974903788672321329606935295745538713094613120745204579082362984908720913420112310205754006544904606332649572307553253916308502862706954590596040463859061258462477259125291990368277560843522460020407297186473071559372792836053122288798114923100080606224488819118602078533953539582757025897146281473402037963115429603403956038863592902238104538307970705226670324016396808181457593429449686719612610926853132422327499026381443550940061514598283765175527186865767030830690828330574599617973701354863603972517617608088453096747721266982027418515274887935870786572879460124671624981407524655335700642741510625304988324404329099956439337734828515194716720852395726379091614325058280692020907220704963101692016766375843128513242577321258143403430451589060988500507889177786913099965511418823159427489327274079742701173794727200009789076333113194933538076006882033941320310916517860133317247366105339036637293735850462874939811076992883207203929858867799518431393718575802684853123020843903621839909558143155211201574291500473267979729166761926035179820230547803250248080335723931389414184995814105911824519290308992742885251922488642491011986020252819626167907169202688360184436946044599896077858916950925200771841099066917650728721615052020491187929338297725621676862609406643986923007084667560684604072084002077001294546093824284102553446004350363133042522542902392261433285834290094259185590527555288206230128974110621761158982945823600080889747000218324708814163380341455584252036678350821575369190333117562792208345426511022275418424707766904578558161965854335175977955726172259231332505488068337435789294150000181439250749811547702253965229178541639708870485430658785569085254058026820086164131386896665940026565378719164527851876938212127952725766499577500790328377668024160763543197561836023345989995443004555924608929308683680900826405112696668544217901923866231976338150867419286367455215832279674991028300436223767004519463928012551776045145284510191142758076652722196286733685641900106439844443571693915946613617313675146076042928258133050631477961777905346131279826818335757869318472381039601656956558662752594223445710379613953952005303904003915523066843352450792398834689237432020499711206891025091647529656112782879401618272086445074414499541203632906506815400488127492239705882576620150548624812046628558908407046563646486896876829636211680285315626305400578988823358875912299907514464062440197809263007061880542621821193422293246272616976448637210939906751896205817833983829073491786796187162566137568409749886535381414541566121002571745184179443288639522909692364838924282567969813513945898212161286786571802560627885178696349514731172331098490854900301544825903791805267352602069504001249579160031723333936785844567667689189454001387733548462804834778903197521726779723889481536835157824448954888297044913914022445897024865541485097777695759636687593415702763446410659263830213394532740491255192114107560601145987092985098826318870697595713696295136153726915261941862754376000801524002067037385426023354287545441250695143642222606157852660472601888139129403655536559624409771706593720130229484655500768085563138161608668690731278224235293062108235315663827198864089987266002041007641024522463972350258548411152037949824853622060046838388824513957985197581787094251010196084230226886058804915539767317549051126556979393656398283121481859881962497104486026191390270695906326867876371268625906036242182955034588792757153009646175375491923650889961127511565105170159800128665901601602246313747449895994589640034493343186385598213605894527767552513008585578297403254203969246548761272639319377660212612499903268215866177166985434974556601603531837433834393643494325721622975287666890794259027129542511223749367123177377663432285734193718333888063287918517936555767606199907739146980371725964584046544517204797041590710373415408996129287561273145372222501200935406288647057205859173878646092005422027760436301062846382528720836492462655123293218638568358469033860191437268520862456586042426888943170574608928354615450783955961760542899113960422553474954571147527976496509145460163327729951063542800215666600531943019149040594481940188917959275076644571581878387261837573124645342934456788315997769786131733597696203509181335505848760439983540828972851331574335397114321120596980621171326566384708388082317305526494606283413562115049682696355946579290841949820009366905124627233116022580953153223626012172937699001963103764947878141384066172318315425126549218432605024364496344591983250037636920169893922276307795255071821450405093467953935071975281663647649926359327506508330425445140522877131529745271555477444158124937104600579370883113804276535758326200553022545325946050823491633805230030020776694941666080456336028997258925709032026240029584383441132869540290390889207835071874959034626751426581113828020049641581318164341482936192930444247991691698226273842560640485608076080224275952556606845851015802605325209778892030800415042165330981164331700347140139655267384160744772849419101956130637424733568593814346792747565141491847810948471092209143599624040690477114653820381432527148856284605604558902035257734732793343342313623837193316770338216231320748712752674640962555894581476120118706639521048359743712441348460480755800995270452176717826341994211578693711524922139826333751249792782171842466254178587565081641648510170630493398307193461910126135840761939608047212147865378014385877986458227702849400547803421230992729755403032703688876650437308304982046666124731185345652180507557240272918243447578875039453357022940431579879761404217625087508955185148614850699223163461982280819149757360029857430718325929257263148185669108685867781909949516448978177322362711042641596250610024447593661996897484754153414080891111706121023155761766716357493962624558592712587281053196943462675981012823941621650076498767361530533405815149733393663714342206328904170630129960900528169756326083953047134288327150607018269186673539547843994952145824931051565762994237983392463142187695476223685177468664184134047178513037351580887125146828837335600911603838413379309564779343052910854421941133120682125343307185236493339599854855423150941726517662812692881290772710182440301780177814093723087706961892533200635478657310461678085082019143594106178746872517144036045111074954613046892880179097897566623725807575162862910403162722787260370269504468832297944115983315072096249834496707374266459583093239841527661730784371359339635929527373328799746382752274286518173565315666136448452285767950082187982145886640486846766285457673025305937819657981927649463544524924728363186524311203167662444863742436212749144026933838597547940460418152149046873071887484038737172860914296680991348987895084145506038136458416567148452064633858180355916167721245354117259426266066921258068377542074828965175382157875726012954875054093478735431957274699715499914514951321274789939888585647623287720070542517625679894324547753310344824109225054380845055662130850081493213167273946634400971306888624781473633775617605566651998672206360442154988526052950173164842279035245513593339024440293553212858576674066983906569015452827561515879298840713693349095705299132361025139327983288101555027070518069578965185946050434660720735450808680958701038941730374516238504770802797490533934027984547377563122339182877315185957334772104554619449683706892419980784205074412212385396347827575193513012554989931568978912267386209341247002385242089227240227337318730815645920983040962025576617735785722339551368704165042383466871652018887359969006001626803070554497513739361797084572329706221330724674005702173062939018321586682732546172819465111320851399362019903717759204607156795258158328215275136086332511296075738302163662917057381117839254531919248837893738342825025803740116554537206817470015892553913020836287480724875494964644971782091933063771657075436626069205565989087390028516379719226779243262225972919505011828844654588455171649857257311750828103949111571999053340300896493991619194201826824318050083398797315655319239742513332034072577412679581375662146113498633383069100084964734507102560287867120771706754275770249126296284059465716576509818226557300524426528055002590906426352882005873763303601944269005549280161185375670241973170768916577659288733920919551499100869998818003753482513768526712054602832645485119998879742361701837727305624527707972554772453729509911032071852086097928857169606644318802538117273907807886079790932165190080975730742601844946671165323843441881464336443199001910068761990481450840853183513591280577346610175622980945990865603905075006174249320738502778298991675811070322270102784289097376349742338619507224629514988522118281642578201980379073803036778282034753688071402783629027333070797787649932454759613544380287338437493364329670578398155571179488275092233484857462810488886163840013002088362142467465968720356024343637982532490867902606059869736022856582488788844381098830152662877048425461610557802992783958079112018887344982738400499804467958041438319970982493965411783655934827876764551848399757585606880377801090328514869700713423757157932797317725261314681541236672653839892091948772196177135858993814158798935733948619642223065701830108989394833859605499871971524971334187875894228589408744034087827702970473984957135521323192918800604620339150594303387657244365121029930873463989296133214462438049152967419129122716123518347638703442162235384554831575409498492224110857901257692998193157020854620432992017443283883196083226764027538603440942603391395113856138564523971684762198614561385562227425901276719925741029637561601523310078654248793821908205398812609119405458118707741448722182189318444477941497855670240911015607955624128161085324484901780729682669431968831807586910257324367262319704573588669091313471560333786066587489846662683180388483779716195638810472440057376093915467654616742273812664286050389187911182192429518459649752363875351138125741420165278882135821336186689773167251698748952049085361250725039967025617193927866933409814133286570879859770007878467041581422832899887189827042332502776845034773676779799889183157531586147238006667820191898757596362716179765784240915448487601752633646082697515355099379437887661015848582007415279645806031847151260830388874800168929807762028174267380660804067421555841658811968255787541800796915298975138656049581890391406221760904446055673985889066414280849076097728843251650877521694918607402324847534862280017635437434454506934543348304066702980053845743969448550190396914313910134561916375155994493282773672864314758477439523111341417200722265127554100892650066004383680267086872729035686429487502652915061838253065777600597857418982127666727766708041893641017174076214747982599475177801704876834119630453984661192272010618313023334130016640155278774523373067769803714365029829984601470882777195265483023985643927577526066693840434846613235195454227866549763817883457175955097416509837749507132411107212747468047413302669177726201341768028390747506862443493062939329350303694646912310455897341055664137915843129059115640924134732145239041604596533214594228672936001236663069095915771492975571864071873074227945710554526792508973474920727430400895753631522178780275193946638893545880238691506931694724220953169612034269962052056562840321870061745036530707038952124199711623875324373107256108627840041724713861992011160963375476287777143193726724592572117182580094711277562906924849216560720797735772772937103445132923657986749532401692744478866350521822690272240605280474942899061982143932775873219799483307171364900392644132376017404675959577226418982509521016100104882822611175487324524433691821562264370235743886867252010428995921605918821698918324268212976634103717337340350718837104331742400919652681156968625670371180973070953364038896105855297582085136053507424826185672888413810571599072901129623356219939800380409438801412695898844278750334431126436398417529347809962737128136313137380267384754405682338153978404451756447182241317910318917793211549409867619671358824762277730616901234889421039640887863004987606652394437571634237748812889921380794980747882623968104956667048837821687450073654848012097303814238433812396495702846601762415106086365551166023897288091840688644326451236052635236217664170665616629692976557721956868068039548679620643719180816462149357140074031804809742017024195911477788871354816209395223929956439617323513909599486869254803755421776346104887443004270861528670299167116531900845444083531463386646534417332068541187030677763639985978502665732619496025664211133745635675190459623554405395844794110020152676237057200877486947981554649000868636170443295743941118405127997477099521199319384089318024079842740903229202001971868375921854945575782344659846477984704747237960161607932965834567984077582237445704252210078753193589067166916436773214024360783098557387912432681440481926886835002590512539605008117074147218965992547863485806223884517844128064998234730791027834002069186317518958525005977115750699831702250995296918050496648603214829673068051030503431896178304599989280431487798596800545236214962419724805298059307188410012939148376122000991908018590270111652477481819373987956511028994780474796552939593511854131669724498403757711606923452125898593372203008650643480744388292458904537911956480906021955768786787929025417597704233298829326240418145216266865563525261650919510100010777339752747776968381502257396082506359195432914410335950289365372468870421752373564787905161562009740279824633252618263026613483252115522231790185399741557320480034466557336088536972285316031881377446745904544196123590710431246047381452873655097369376569441116667685043775392934726997273470998108788194490971774744088977574049663389446649290956863990477322409377799752012664278688161376747959269239390806144663097364818063891907884083445579551159195059369784803170028673401514013649348267783320240302361961814459141552798197476098607123826923715837638052816556478194812385237763855060464697263350538255079317044232102595801763317660231548170733185127022842081600519716482512968756918587554044087050869321440338094898539822360950909509774097101424087733540606098230623011729144612552025170605532601302874921216937903170034819523893124640934655491531934926179033194517668293947133617131583793308159933823531415667289379499229294333167232161159539979330753642053920558456924205093735033633028493518027815525481759999100278071480108451210766945617066412553774402876774694526756612183920327512966303777301308139721713625286618918686344470713144450533137274141525018273592319527940240214637003991004348641362584388849966147760421731532747461708500043662747514559033520739473486576865728937083286360535105369142834969040385268980284058039228180153999620026398190736709240681024702507624716039363070259765065781201885442483461446121854484332499832709473389982134870885195186529937993021215999188280674907799634475934012968269310048449368706121555963733201049944640175243805764320643278093931584798424032287742787320494516436755049488358212556557571527802668396303167498159203857556187122952905511917525131836394902692470063909264809079800052619944866596998201307349265033357913666934537218589753720713935120549001251059829244277760252533314163333822069282324552773100633525143009878983926259703207259017894706897868925220240785815750809480737521120768731849737301165919779226743520208545566411786716377617655680439264849175125104476760612209215303520120267662262019473458437047337273054313242997469106856857552812813003807596994874966288690975385946620672224619494238991255229928194471695692587999160534375518059869579896991933043017317186266131256909357679057647560716022865445962533320525552790642395012088809961593793660716014103380406854190119343897464710567834837116263431528608331773627131134775616366578404677766489435906748886075199444889058135018745465508810547835805281253323010252827139404045114229897253835736839789200999330948201026480581400295518224448631270167055366063190335310204097323923849956837660666857003195587655785320151450497742213007777528790330569404638257313578110228699635955397955161107975577262808081480031702402851447104980139932420139077861434680233913139793157548463373963680729330549534691490826662181658676720253497706460770766034735335257727096229350872959420762977589825298568136395997473971626681409440502691973254331762639424465321846987755857608459893268165498746106605515783538890862108742647804649602468816527122856903184123727684838335930345340545614445614404014672564725647324468404802746690600887168323560681025398504992826228031201538342282668942334390904157039956384357446645165704800374874577144406937431019540793347145138870856545083065297260375631420271516933858176188657513464622087736412023114717859595395029341096619032476611251082020113313492508394535364265499396978710343256350195042330434468898183401291954501200014778905368743667970038983842535809359158128357395505065763279364110689237233704107495255663683556367047256504179537335432422120844561540450052561162762720391149744548011668663710802652655135524513082230636928228807365492663795411542198528654780118837511632007862486673213081243734170963668661336317896697078789535849578957589279755746719361807549534012621276804822548740601373445518494005118888124024821051967861858873510095919500306916903141916239045459892806691107292363543167848008628788701029353414951283978399433970955319355262440084048319656993321218949821221541520041596210120455993174687331179557562055759300916783754565272775190927839789224373742768380197717844131695398018945766053071475927806822424220714091154416516289258911938957463500820623318560695116840723220482680150254365260648078508149091874106613505275785774147916081292576883736808623803089816717172730748001833464420737361380504575591652580207597058325433064421584031179483123191182289316823157498540265046993839070862683080520008081564536043620625272140577993198986674144377625087049839208969194363845921591428848082432743549985080787151160976936647658934946830022467756707135390645992519007401376112866361485194475520042757777366917187488616122972639851056335999744265449698897931525946900308621751349584985983404146714570996323022641340478970463135592344219441409421501655821600961006189692726764194039340666338658816813849456978767283958880307652309385385967888307304207759774871412995142437861889897188079779807305272248415476381754720345231601054542724299653601581797348209079389117630887871728710316629996618183150831620023051050020146625970259383953471537904438568489673992915882261865011657828619584433737174448771821285121758212878722202733077212673127730360418315448102018827176335119454255043286957131212317788293027062188511880240311824373853472988280856200822488047340541124900384111753750226144171270859951677050301815697779507438911790504768545545201554798714641024999718359103353037206366983867259502712667238624713076934671418633183420641004774995821189111262271454470761186488817991740263441612912115048551062349266189818947887985123688917787694901959593322766805658003678938919141867429457067787430135203241178334423332749856303198692594421926017193143517052918629681401609723415106250413967579260451944864065647527942887024069200033990132079285703449859996491893751266777807788178570143643970329187965207128398266725585745807243575543863476429406715298642733871543639638101198147255013025092688188258907924764300587382055126898311383320502495417009291913586866552771337611683262034189999147872697920000480060925910317766639071077461903110709886219806115447323068946638859402873652204476229308478037466336652094540830278198063574569498722561729454539244572897239984909422391363773999334581976517325652566224126922370632274213869085198343140352467737254317940707146943277352888126257839598287880244814279825428616309196028417269101733024668302721009108739930171600629176318139881854222567116967068832621416090260956648047324565100307091677724512109667464483530486755143538666137859174370344505575521487359937637422272794209028531985627759095824139869409489303531438699583114150181735976839270207782329583289260880288326575601339224043335629631958782496204809934742747934960386503419988894680295213273319302594671680720558784635358349117602686219153925966556708849557636155045250590177558626294855862955219045336766859716593159184270299224321890229415610502557559460412177971802604553123848572641724717300576816306385634931168031051933994697881859816409906230780032714389232831574212438753497800188062333139819317123509932701766897390591356622385111525344528754155413842364442631773346580799546875151888087549739500509351869009328336423600046755916410326167401091642425376592691108253334799498917123757862501375197081587215528591481811149530031276888190914230279329868414630517975515801805246392272638056278212551904873999362934510899621275095609511627193409259580929266158910872369238094596912682164317101611622942861501082266486360654980415854949829192103369534306972660445947388955428153854150622338135127708178613795206414991966992838597437646452935751173298728764692880050598142635400554911004712939658864750414208029688147056382370823203818668419582729711644983204063797876183229082364238751893983234879902963908656780052117038983694002965623193688062091373243762498967565172729435578640468417089928035797381097843227869026626513460179131821146028819037439955386802423039586993353270245090313558063548343908281132537245891837498690130542902733725178440818320055720824694731482860364881965810049947982349732485008234298463103679168967908630025595001848573678845429416649238264982745644670837392824310741938565657263868116579310756489666131277743814333714866420184387414520263154733237763986118840280384404385899767375403057038085810740457490890603157863564225289320828658557927691498297156165578748719776934947359039801336831044754726653866626367185469784894029976556428352907525999239455902594854072011842230457489381184899387874275877942468242480955688346017153486638908010665621096542871015876535779961021796722307064062687572421409436729580235995203026053723047357391554386426069653855144747779327167545927060986940919170630270470989263200077068453615249306887944812165950264336599582179668804632799351421657262473189642481652210720860261086298193802894711534941779513373507607632602848136114125366984224774098596617762443106832532747268267599578629460555957708177537328180453172324656512907693291179155932548996941713727225732895782501867635554192349132461862279473092712217693864979687534107402956236940428580325170857688661691120152520911935516048700406791132845458274918444585034489790041368205411013535832950051048034267599103574629586419313173467498318598683949085837554951289696142810256365904685750791433848294647547392130549175904719532454563902488756448193266080146626019325058533226080788221572007409794690048160126309997974170992205022195129472093894627729319475389540187749942491889718304225052243562166356099314622037212740654019887505603669684762599815083882070622906964315028474174488074251375518334882819958421406806347640669595933616485253318365284839013526076440666222739313449109483178916033263536463259216229997860490680687055164407227053688023866759583237378599267972375417889098407751751156761348023632589453014738289170634326323251200321876264820032795406863029703047236736111672271846055398350546045336435989010937799030189915014421289057501510583339750520648775092712477327628351161508206898933969922737601764639054038670544678215040492083612555687656258418055879930872644951988462209223204797455871078300415385409813740931706513971897207436084909144212165319486716337152985347045252951373050063897762019456497222893034733326628289283946776365484359318288619304640474381886365444311467889597498230491238385080145265729619639556294059696061036042980929938530118768526454990743452364703012849254896337367504458625813219085381238939841530221961181953411256868544601406232283656253649010274722112316206984089137758647667893024303852197416448533516657228995597430512997514095131753759765408320160685162710652347077628047968962294890952978153872562935102072831982873912608744446370622950070826752870825258278946702755210963651544110706713518276774205596036818616459511789459999297431585760628601627339662578746211111029527592475663121057969244973024485805276701064746381920557212337752361666234540315029965732005211715358008234701527399783356927987735885488096164509699873114237655469733207675514253299177796938729206291190845533616384448408325283868032388829788597026590348164584631578539421244268858931778730966377560700110825177398675888547463295938892680362661104785557258231857545340605799313555009225310613086624358786732058245050848724460997240851153238768764393751335774540994176581388325635020400331564094708993656111816190867224058856109871699471054341014338746123087232940276616277114798710898082854470955610753046030221033976601724992174430320430369224663841314999427678931516709170152594548774574409444803339866916625815222227163980258800754628340379358283481161092957819939150675804341356794784282696716372685986766353861786927356353199001637662334370630203444333752615150163074446570370101881492344901790801058898082660977662732740633469138231710607351290912625097002248692091275032651430009579373292372144044397884066593634505725444287090525932584675123376216979932510311168839782157517030327019832990984377736468048611244134074244614310583171811400900742751988260281159635237983288516320156808791460046775706773424337154393740847897529916840727307434877735763703644553361918269950815107955546312165218262599422174746561938188437395904419217913076186241769460874181931808711587990613315513037468863859254337061669912266240522491176281655995334508084682185547648627284565364018446935452824679250369627414928787902882760163919122775856892730443668851576213076387384995007332823904752069947328121934635395962902697687630924311816674573164106781860609206599822558733567525739090314704467135376951841292846268590496637419188873994219070291808978247731456122009270297931237175298882360175346833284773967813705136137193237589666553185751322657024848894264576063997874709777504403145455447861905486734174473889022402423854724972669202669331723081693771350199236716193881534847019938921899297525277736795344635379045843464077595848926608105968279418339374555395806487115922489718714399696719504600667194783639093504020075265277665539035203564995064188986336252042820940208917892003509906576532970112764011348676980801992821439223171991650762665461797001370478253094910522193030261532177487147877054432790807864868603593621128833773875455685692910661269982276919825007381403144828104352356507577249456125223848063753802255319977234137862282397611147537081721413765624201246622722106102825353073580171185626838566889720625370320233552032585939418575996667363685518701225569206762994919354292359650106971036210116075260121438395764417604411943252024517443947335332092220544427655320897648467286088011944690438969156081763252920213604048142646289391769798181736254913670540492772074044287900477950408286431330628343479144462278173279672004453391390288834721320900720283625159457929021427603263822123770471568719295817660380914608672582074527478925373809658495679833367662734211854256079326086892773892833103273628775030814220901734777162545706592527245553542196376841786284722738054469974022050440585985426002624611599993010553228622429574239117714454386722880241440322073039497650031088760448946833452831413620073510873576906700506622693854263559499183861029021363077218264767402434970171762310468143972221048620396627189373229474040428859309346589570436780979121096208782170396893663762771274585517032169306028516711504432857570905686753003064362335023626508535610231152594189803460627681753266458435142245153024873697008688025859734748325781414472164378660447762457583407774373589560790075635274974758488731710763092540490589769537660255388079493300614677542938853985478379216440981469600169414795071747814234418371845296895915466542609709843010186569975593965576366647915537081065369540888014479247401735491836868816060250718289144917104645142673590504515458327274175016155120324487188815767730347909170871011159069344695880855338005156538175829168305448822364056549781551445275398402158136955842289761123906949279276681228163222198852726473207152607494888362324876186087945241134529438881152385892911439295752445486909375048745298556114899152384442376866347800682779157150070870822991741801969766932358914205020109142327199054314118638535070567304842001302861548409151438178974641010340837184815588805826314863563934884032497372900629361938988269937426447607788228919922082710093316857551576535408694485392917596282052493885127023844437297424065224294919133520375065138482120543603962272047522045448659522908007409645660802050833996429683778196074194115105392814021656782751741442491490192708319694609970792789464736529314718258293814579390255271632753491653331821877884273045877601983861941186558322603606715059963995130681350774697863683232383779041698009952576386862379150805715357369647312838059028082821360074232068437478344492964335704091044666183482006793511894319450951316505359682350722330585142569654093301329511781485519932477403205752582017124091465962846143037499492515935279040007663829353813032281570118088944233673065917930979749375219607567701590636140803908735156178791057962403457346005266198467335033293365111751967282984701212729581661523845083083536331677887098075577829430374125488275416580103441005473870218577539503199347029918675013878666854357746373310348246640362909431309157336915278193991343496723339915521295120355890564659310266506416514774807136509939469317227542415900992248049425511329281647018105187075376779052141323684299976760738127711887567054641432089083145490847823079399325306823993144853278099312661809813887755035547743135937027476024362074089352990074114015518209630315218376715310029294383355313230432768511072305800771411300290855660270006270990293824302904814342924156860939880210414215971459198205493354091106277951050995057882342482195708271391206512281978410440418272568905295763452337983374694225456538309209542796232162172856332765187019192468852830810022126428363704763558317479134956110404022409653976837464595536604368729808485424235234167291186960274463597262640193352258709166997143096830893173407471969232266044384421096126968574812222701340621165318355545506624366548654009737673460196301524806921690120954418739473724183577196622784885481314134436206909128081751630012941798569074490140216588597743428641959737959493423896637915153527950636929549030657116731041478248396232638297440471788340978290388575544878301569553025727937952683450862174843763923607944884507733474348687443829640010833871352718855834139105868887287296663995380559577850389996529219158567960927349544162429148060051471890707787242119708543518601014404201754570682325187863990809065515873999358435854100296787500239169704759605559749703573671666980777011340120979917959059023599541703540427134832764196194221661847806378616384197111159937745951551192409696565457419509230465361162922788149973516708382202219994286911557327189759000577421052854213201193471007061264487163435856663551057518616321928304573317099979222524913236940208759995000695425644054393933452462418015363991873085240654376738181895696686780458005457565212667777271358333833159018854048826278744587142653365501414759531351982074528303206312654172738865834705174274566828534013262015526068361346108753485614760782528760952906909499869738305751385060279493069327336529335107339217185555522661232394987255221694025191705902705186337436985495065430684632292041818481704786004672622516901134859800471760108016886355650288331418240146328838043230234133361179503889813551016426115799557174384605083111294785118577463687437506535756259490996527408571158331550868662989543097602810464750830614865764984258367797111808112731299053961804808389017738503391242670314228118094264820935016086593184126955619680126409992969457412024161884042936246607023715791498047681476345605010237835256302881368208888982736198174133341062146001986262210192609253324819573434704440591221480449032105242601858286962446846387170223738687459056194241942558975240227266130023065078151309774150353316818609720459283790577679399774716809743234945261668913453582991113329926450931464609466014782927437859240975721077396839748363506375756627191279524413876534289307277697001563494501053913759160616345875138394470878147083124738019354383088468967878297720477510963757172819125639137891296878751751327906656676866073958905263120381882093874209444072298430835389442778358490704750479759694527137333891970416294494108665980547197276546115521903623016180976313390366043241545716974082971346645552614983410445970513389372211760111964897446870610344185419050432353381775968557753017910541192774010084053660897261023388271467232474629246266529831472920185562693606631130856530581678702283302207434262809694950532001249570846849051375435686157785932855481394004401445180028782894591329216280808789052804285220877448700458938318836062038985902954889566931672383271043811640263575267489350427397613296622905479748434506325280373282074998185290915977963935200730238812799018496539811051984803205697448258931619418558526234691889171689115079739150368579342394954015107779885449927717722985357190622231729270072242744378363550509437978902665757447748157086452044026833744192308784113082627898747157856675785911074319748911714775975838007241033073460118995861917120429060038142029745497970921859777081805910794486551417715225240186065659911146245887912609714144828653308606986000679192833323773132297277444779996432046761559982374077688344477211738493484677732543501755205095308693458987448253621372093666919530019693301158625841889825650650537544009182243175658731986099927558441132656344552583701779516752878841004355038492691647505007416321871332323631440134510221670400334990122465356330698244143663421750766012049416064513257290367496085589552635469683319220048323975206237729499093188013987085999190265648552137830020840475411534157648755551491560657006089053526975720222264379066518907130630867604952285553248859428014435431480986667754265444199644322741439096820787259713371366118996322187964035651377600049767702763579039078743654525777127892892410514767546422415809369938368108662848680808740349709956521728580881885393460955364327555755326145278072840708811457103005903810642168164965556662283812049986809398608095973117784380772541060332189515333505410533919170265681175022701925209232338054013410610102431600852621272710115630160162495288947977191822495037434970476970567747507407404918293865526745004355501207332331882558740853281760538863930759173929510876200191945257997322693017184964498743394235795632033805621451199344304304062893383015382355027075336323477381205569968183389683887551210208876906000205227374961567441143577055190393470713208287320024602147938520709929750097986323451219627470579390127502920127308648106213468820778642133760953090192551369684602760264492147604344130463582120631428763754575837829444628757644492013079707646598023941384701912156473792339408147331452871768705876062751470904454635553466126790376282974583205503725040639148737124744916382680986608699029913299432508532422496673464282155998850089347296148555713071839235683463916669844887263056513769318881262982219323237777201042606943098450679497688622246890818286041890228465744120602560728695272553296302569678451372663237075845524367777650120486540720645117955462862047578766907178005136902384353956250186707477880046579897090449035765702724579207524102902741974525708428128900895822554514601058210148595411580931616462604347966076574344112327287812737494609088294912058299084175530918551925782811503034532192359322883480745182598217501775600020637879427590689668604656451364875264149458590638188492661781106877047767844871070544792972439185191387249657023756439682475987101136199785524847148706794986094517620607741431439124187227422969379057817765444108520703071614009824674926532526658816561031103130641396818825341112504942261702988944603403516068209288742881059469570422149922424756545997312608354870353166893768460203517856093145023275476931732281340907696583202939071488293854742559384906477140817720196449737752814683451466403909310853553586635954288580565112602359852824195213540803441658039388289479676809404283454036551017991098902675819685633755383700529698745025493149219871869522659420040866962310534011226701740071380349953020163931400747871699855155472938664860609340385419417430111184768307066883189016284043536422124799727130234277702729065481354670983413060485656032100114504888648460423325703499555675760588359175393014744050265205704269166084910904326819303099064008162214801397016782091743701780235940362056361801188544861039665826017578334771143519677022043634035284590998048251141823469827303615196117043865368966697579967393615039961551482411694183818292044695580515957585397913045281248123565400051519364096447318740788242248936679073986470669185467609347336804961473838369773187544913214606230009643694268228131743115969129558785520097001940235564472440571232879757429683976355515074986701576102870004968122275079130158508320085096639665157741981749801811072583267924929943344967212882521051294029186793279067085630979345794940818296516435412359141792913372541688146601550606542282275491809370765672126428517464065301407881230213802988082192585458869645016103400479273394574475656439927869536827034281857780131292847035888806094212143772846955975872191607832340519305488874452779292602288587686932975652272317830615282045572490730320578440804184274170895288409629831973771361096141511165359372679437380156223040083730016384206784772281079110491963213823417914631673276790981123916084020141540544017203525752432131940664100826355013172700039191229985448031221143860542856494418278836438168676762768103640032168045662855971584188590019821610568749898745357031564996913796628470931844542794894531716021021777021059148399320069100129416188568726800761296121046555512156689229154817392924823472263772910483843291637224465608535346901093574528217950472817641747271029513987678402504002023904757975642101542529812986036309208741963030717264261597602277733798879777704092519592193174563945942592749474198538852683371502045327983320212961680553257535073490359646634639430062830531397671156205939685353889681870125128023742348456647446960156985514003381668221136223622287732673036943369680510650550414729911969780006368248975580056966841736483339777337181644460308006009389500976848241129210352341093238257593242466412021464289438197786280473576919035851946285124231637857861739703663255156306872670877896456747834346827447470933297352248028332299796193740135061237732044257303809635700969075864812728020859792871682346995271725159688967908474551305515801561726908089288708301115047698261862457209678789932340991142066363024114967486460546251439841389026444336390435118749742856227179809105674359015781092036034636424802956116410495065934949383925058954849872345394013364820150642103685609225067783242780303044400252492541018223606850379976799100170452303587593577041423029852688263090423698097559596075385821548607484403128332580369398360498042548570415394669869671079133937143327043559034384223221418151699286874211629189058463493759868230714731595579226401307064659682333919782060768379840277139300620201849682229879160197153402399015683700271195678559833271400603462031472979114882628328955228075486945154643003202858717077311874244283325448269174324894066865350483290279137165145289966593871129452769016581111702809210569954475852158757743721709103995736077218714702340761005620485691683967937589828954572211991116494413934895884690288171813380289861746138543205481690558454019434672199282670549280483532533534393553505046534051078820587955525223456959421491236716209621083198459572740235804635259874505888278122800361651662683774469619953266176603245326283414026433154593890676024826283129631792704960762389838608424502937373794667940066800340605039070775634258278854838439965157297867917574098664409287199356896558450780218268889114868516490929391357152844582967667243072464345787807623322116381309380411486229506637099321759274439552666423374627390792348499582033264014371589642564429891613915246221614096462718345881217276932492786684010686799750664070856513488018882424465577828239903762446689199172275231557295757392292000577842164664726047254473223907562241582844711519872804448743686030515561232228501960332226090314487554183389011130778220637965818208916323634025737835152699083163495082997618638532535775416791461845697860698642853124114225009066934786301207803829238034658748214053758331787041847223466498889893059950653482197945233782585864308681145062114088955279613527467571755785096390071671423465801443372113572144187036372070507446950713921422583340311294778193712919719011386351604745794855794408729693853819012177806172211079893754344063779936899233643218602973434958594107841502872790374221343962150416034920690394020575871549010738291439234075943431589469777773537643526930520696713520564874021606126162409332991209899385448536271634342242081087138643639517527292068789721849953815871346935269663456448505926782152381391656223137798120691633245005067131635671215216963342558693470010104470251089853926056859909968845414762496522552460997973467660107108541580288010366988316873287181809464148034153521995943502848389485525972356160454843040301903751210892245298272662766907586656747437278856488710464732532662204226737370259466047374596349309197279690205971278022928896244417223669200276574695999571251653339151946587002904956155542609993978789959559321228578864036445655347105799628717289284947755381215318144086935865533418049337222995888689411456244149397710213569447637886822813614470628247892639791052218440683865764492141627562689133238030563752436152561945079024932377790112278670434516010858862748362282619842664662534793030182068885206254773604809727033810544434875908550237344193933336545952213427083532049150503370020969330511827425249649705103650366500308858690515979882337757404018507116950107541277029022318999074066865814005006618385735848721988915922684388100383515687453175851242019997745332133169996666234664930836615353087714171242687004070292014230107485378631689895484434238401999379181185106866032797701724145960442362823976221236561492029039702717656498056217486009641089509048169610935287007262531997552204830821910014361638011226201915630309627770356960944152168725370838267233429068540808177136186804025785558462087643659803656433587073124782630485355162298650146761779487045546032434397662873579335244751853599375943494635424542847088982917550740657043266577018956838633153033686936632076469750728654028712688342900704221257816136887137814006846098674835351401060245229026768814275593604067226487395209728173389999340826451884368686788016626419852749785028416508188708387714185895556788680008572386088337606015551661013787977709531655667460114213969605245562688376269604635570813171019670603136088926378092465818117644413821313980113255698559595444592884408823124730391368866660873718518961545112205455089476928447942708573098845857423604608368237762459453703105771602745599474300293897076693430694021856610029642564711739169769544602407596518120812170245525506798452521851339021635600690059469855727499405045509026230373480712702215197729819271181026090589357494260248438034100131465434490484455268665895231649870609632073707246208976536725425036019414036256397448582033020041112435619596747006384778254426299245179257107574049980342368487818023194431349717085769200630825580560125681679669268740675629772347195077746221534624395657338036498937574538854685745317537461135908364746371295738151640016813924870578614169925195857316030929705898470651460699146210298308581477732209043914691749964975181496261456908276058659480820846658581294038159003072915558988523772513987200919004850950031744573398288902814482514312068707263937072953585675210081869294152241424756691166433683873316839238136206816923884637019443718456928207379695614877376927134795729320952177934563617481512734571299501788035628932367946059919616985415146005996412837233794594069256232514975417688585391272758557490296544380317011906167855774352970193902258533870343752569335432745398818502459231207069742306502749497064588428951322745218304300543829292308321024880780320324666153169677997790783193877359725006495233227039302327786862056720035133120859927216975569146428456927389570076329169320769276518636724430263022716719582040631544988446432640894702306088893369976304660140146296396119112177150830073989422379615342781637498094404711651515224166934592814468185755383990831118039354242606171476555556089728365369678712827197220731677379589216298915082995249508604548353641398011685449809759702898286813075386119583081501911627945148451241994910075430438591597653559799247617963711618001177590033865835645088132768347600821084239551097174704095246809283258285298821385426595476349239467929690090277513702282270467256804815857349599564610935774134561573594905148993424410293081375729250819502752947804104936513032687912023917724144313707791066437752021580522662124220703002109307656625312114382227762399034639176767175244506738445483431226131814010657572005848976855845522948005340237175807343913970205381219431216236697812737051606713509315732458232687051654121195023273912156547841263148100608111537435920235539947646724509037562968398323111890598563887690739961049195777769766070986784085799133857062662835782215724507299592303519084805504121592105826131894791049817820139584497924654496010236396108926294495822827697122860898575947889845736230948657666466076976986469050844749879192535780963977568490399370791413391042872433591859134858167784125593195766250510586233366126629434623495803123328570994392338939651865755309504940364421991161540643323294845852987293409880937508044569971764662065721604411194317653464703581804256501037311522857658777770458732782774056916359489287683681233129170633754869153797328760561861952319842810793342285188929794305555701441066837168522250266279242413705215989352037507279029983791255325024957300786612960106829632396231789826155033147734048472414732290922601244986572072929687757385451707872415715998236565140949988527913193986393206223025847784053659359505180257167947543678794393274397933372351081922678040384410864499854026030436801932412888038763665782507638650290211516787219413409266466204723487741916778138806260853608435706206455217042440272350572684491692262840235866555502379557220266353215690277498272020830013531654854917690222534011953608579875043033933726069408113206968737346684368911323873155420604858626494384698238336931697980242968808236734989098987636331851086012264059071672042452366504371250620429600974964143154519407167617393677499925715154191092794042228968365584168225348065317760680970205829414686787539681074402312067716625055144085281853424185902356724420482502409029945229054593386410537155377318556735732487444409360093076985458398813243844200407377414647362002180118549083299052420523960288428511526786689433582486482421875788197813682684444569720639819106739872124723449229307662194860216101038005836070971458763614770480045725115358133243949300549261455583662772347159397483603500500367507280277774843119407378391119224890957237013135004725062298128258804330084570977297042817088175825113415178777869129174205327223189296136314168741206172364210805417927707649120567510958668148845162062261875063317291289746723224911460416795925211967842749216329473532684647278156823932693030804969651482987983048872914226022245036983175571250636569555770285511098304727039509621812721872408499228585411043235141337493935264141270793403425904276723463975860887665732591052047042753779162423655780074593193827431116735063277775194785324020846809069915256152075745581115484859334500821010035163459329567653652152709942093061252018349341622353917483228321668549760650288603617472319689020940547347979381587588369169725528419206058712938904289430245711430533409579131106832085204935136955940879298724532390248501999266780976352597176171030195618348871303901235401491880611839516736959293293844207907643128404430011815796373790969345912946644083826935901369103468030456811157876000337312474027528334131049542008120875422246831325625066775258344458100470970056122352009797828610481022462162122523830014997402804986966191387772389309953285267718629160006720474466593761100338791127569060517121686503165061756347536158811199963257174552865571272006947885287978827386123179954608642431965053649035169104574345013442891207709085386130815943401925560700577426945363110080914876500249841178746188797220788115988882367470463835127205545129647874940670825947290385918536869686791529848899170735660633349306751107205685366533090500140133218698715660292921270661093376445703446388021690416517372813914355258240663197502624093277250892773185103598841553969375502894103756107172201648810127330842184280498711461050274948167646531464931218621451453454077864043009931582139480853849761820828819574660094800520020473227525485652365015445124784247238896318849879927799709695086519999806895140989393414407090113865772689766779662040037710227766269049175450244199712633096124967636928186377544948589968365447070073907190203498097146737873057588880289188858706009001977535453063444008020259016779569849928327127179294935487341041959942740182256690742458754052496284708399171086147700166596555385011026106657186216296036142361342645702276188683450552357683500188708951892417113542734885433235733039656503383887505366692903361296486720552952029567034302368540303166868527240551747332278286156769846314691127853432646646500528558261361370264778889172711510253810616319411835665546083982934393876363869819215296924361472339361823387414006132497231502651902885090564293369454121572500893482185889737649868828125042578475929123534796542207168327331348186461216573643231023322885270397139459339491401858526084883342722109687939166645668783345169730549075926850043054665531045426856103463876483145188031532243272514741795891031759652261224423907170306799086642704539836548406416774269221668999240851955086577758563650640169325190370629718714948725508316351863135493849600144319274177602290035230625869959354554928837119324894401364280687125472342296060998284118103705400991832622908406402367734712687045184040357866795396977575962556272759608058434895212535643581351132583681441970493204992216559831589079884308047332212456221938767838681310147454426694598900044808455649734006729912380234478464682677454102097853755135176224051316918710684980688468854843341860117505994856155844392844619417334580577755731879056575859152788163697439845505455595982581122078798599710707364479113841914112799404698285866280126409756934300133518894480959628395867159641007221343403003320667977964750917278340773214754914509131818540159071931757051067898993718127332093000399695052177168092523587348883252016059088515821604346767840240361209728414544904657827754138084134569212956794413592902731648012622620568043092994611584853317343634110823640884295351129673809300484841433107871997618159682393137942599178624810577491258883304228047520010415758257400539208049379442834032699956927909911067680145532213888516665101578023664890931074412217273526210136750940826444913660362537461885273568015481646696970756816338207787318108169301369541635698216173223333725244535353709558293529965139271812507670795375436074546513048846049357830079492938725750671863961538699719656466882474565717806537335190041250547968768696034877566677008920691532846250840532795060609869664306137096919482572169522903845347264504617994783790851497991113343457024550797268118818334138096339693603305319983376258692900034683215915144643323903728834478946199972687725060498216400252188982898722710889649068335502911442004457480007936822320835796652533420694491687154781281249998738584796355138021028725345466515340520275385502801767364379555823220077703552770213132197264870226811152612627335189970078024588915562853897416681213819247362328210941967349274259390336307726821052122578727975313843486473667324047030499436111852888582976353159909962439837997993839252529074099001691974938769678195312892858124492515002607135943095332097642792455868950104449841753944789252035261933232520885744936459705657971089402707796893881237374325357865845603176221510292335936218357480782816096424944813571925477547865423082705944653514274778847884056675801138746443759718038182475799295649412259430586104349391183158075249568453176934094162739802958642873241549995280143234714442087285407426043923859882787226823220510136856640260286960156916398292966279796143434277789984472889624764978076842536652695037583037387295460482849736369073706515406838459293655850854073387409590317300186325728665744467017398874842932520967674161214733603909756421195525889965778764384205449789989822471707548446300306692758376332416216160570957633646899145690497831800782248273412835976084993519627236859753200004610070475462243529616909542128916968463222753622884933225430537451639155223432770319509634569288959573427173700225759561195247133513571376858216727783496798639894857286804594665935211959650932053073263665099105011386775215556182958985436753370864843227511509746382095353796076510318936257295029722327873243684342662965379842912352295232116279588319732262137981587302180867647752162487511916543148703368215792653707159171060353331888657135889764832868100548928423033451883548958655984490240351813577808064200924726245257399267210092080433710929575684144607199580486106931153691523255664312581022201758466300987690340371789241695857718658064189790597938982693068682183790773510330862082086431771517797559000806465713458629341436662240101671415631559387096809355866349773926720873848404136830644053050073374289688640751181632501486451314918816745153048578582611091092723202302446396360944010616650321964916832150509168591870244289397719310599124280823664841577701901008494461852475547148479789556348204724829583790030577244621414600961277071256546839752607735155908230778242305480452333359307543061096009931814026204379391038257756840661184663164950403203634660061113903346054417259554424516174936914052396202914728232126430627203640430522237846704527472137969215351390359870314466893594243518227669858313734995747136264333165984362309765830664100406409718115006807938072604856151976843762179060001522842259467628495943270281611857580188676385035059490284930020617944004632546715637441180939584025422997141262146052867135925696095069152911359263554280003860371806719855073942390869966547013821375944862525760727297743018927776077771295444253056874704247801756360944657559441692536221233596669040385001802209389041572179245619872889891038592081942958457971930867838069270212775355589050015036771836819545535608732941683103625757386530239428094054872681338323751315921671172438951059190056496435635068755211432534866246590443766016016265624222205887629078126012327597537148409161654183155688296160831898917283684161883606519333923694519983167144910636507617368465270726535604859255602458068951656571697684429107347925977413968808927517434390148242385488729897254419501335341778761177142951536624597464660893380096228868493946087897648990433668094217646882976439525827173551348022440762012585312463291539151027667765721843496029927868860418567878141342951901696896450361263513006101748201948172805919346888526179009698014633046264975706807854403861833776488239086774377199125704912214071394207211043519905749760101228769309165650521128817181820697102839438814284421891703486230335491737453072309667598061568823231260997773343554837896397705660631440732359742651513770756940643561847687860963824992991546631141052945728649348601730568564179925941726778589846858853768488383221899053998984328433748729277248723884041457869955612030936275781975581290226466877043418846868262769654095247437239795312703259968751764931408969172263437701414858771527654933221016176029851544174029151650622129214757827736831778754477527934080249062876909006597467344789217739012511619700105582866011764302653549490449611867481795801378011636216283447877783563378196787154357193113491850288823239652224517389408074413041046183579218431893395748444195359067760685240021082645662741100255168678939053778935071265450843218610518643974393499268335385051128037182805673582422146460443732714902846294484180441993239084846783472341622210425988689716024004770947360949014482501678130531029616580760276327093702560030676664430750283040566477927696144228419758093293509177775832779330370728342911495043716030151303046067499060146622272246829454943801986124013128784823981268270685789916344999637262061994660415929711824191860121899473715624490892738744598338791333495729423544248107860172049336634560449300183365522440016926876247475866796620874741652921349133502262892012065790599204118523644601646812321701053105937532243784681652721819834210295659753841772861257234366724418652299901729850031275255085915805044964132591272006501962340803666226323834558319794224541195273037475768164020338086191660911743673572282100953691407025392508179219553949063505037460709899783012615420457923014792726402738853104278298062628367003581592489476189411923065171180344117189985669950286190069936473833834115760087867982533285438491530336484846224917442487487387978190868974985891296911669722210908707769478883386713325449467795919093860605215781556970927369153617244243675988477281279829022076236197137207577061089453184101963824441109246774153975580011920741620255899270722792485625075618452433749278224473951827549000824472780454922890840829667653926758611507328253800457702605178218700403895728712655920620353526351707310829377704119685009449532969862724296679802649451766603913578618212186465598705714199817839715125383058968030611953992221326827959462876791298062793943569514085990920801871285171322841561655812728006436996485412175206721287951880496090104982766930268301270137072216465259997495982936512611225420153421089975053004663124166843375148079913670095190890666761508148673742174117823795974155798304523102199634159267745787189813683993071308155878197694462027829943679302160136407652560874605832038359191412125166475772039205881852079570281207360248617943427256663112514584145257966986067633577947008046309475525713530723067348901402410379402275218798288307740487521843673504796816642918355278637336110205052601149007225013558942539681895765937576308121149875527469909952703475913410623421922228950618619203084751838155843851173367952787975290151607977271422446544237148542588016085498791581954323290251837823359372189132534755109598301816332729919017900987242001739896972619857032453341126792653022594774105786581450238899836122474923219038231924388346493567027319397698265965157904542350975507938613667297035388005675705909672537134069677022866641313648085241173905382560591345983376807746061493815515668705067199432112758442549124960391931107963280896910624845059669890941133490194414780388820927583270959657740118516265564372156514272242884681676606507039908446057293457248429183535293351667603256977511735398660777542904319842898620899772787097587582390944978039048961112375693804159717378909441165261970109114906015095299339302251300337675353165308964589574800350366022989517983580632546816994128539881508654310536892190386274743259895241856981693675783890197607897244525837851828028932299414158292619152258191788815935182685345297745409930138199350454577108213964801319845080944803516840002022125789317673095712205859696675832236086817940104667833471571322372377274175710209891942901325953639595390423847189567944830732995720572846196400372136156442381521933012780605737526227357293615538000643260722784881379139634872707411566696100216827827132294232072393561133159387833572335708131890566457217003425736728950935151195313009797358518778480874349679419725524728432824251013493916301803791814349798201771916371176981929744593377015101013128781764813424404667440259707695357248426530378590743800819821913316906039251161745398481827068158570857650388057085981389230257219108494277244934088545512021285734875317400156595221217732435088172399190124927119475860919661729653131490077520113747066376912818452950843167306777365515333546502346960515049262276235960042696216476803396712954869347611730890554580701479226703111087953602452299525230126787405851778590594681982862209694587514896365705804333655654977509829328219091014514475889684431253485844099246554906900073040220888192707146640661557719502656246708035696474642502748114730919472979581910609359434424595737422771788595648322723973595248259567708086301918435900875032178717143492003348657229427111454585749739666062469395491800706879655610195237266743190536982783545656259782469010642762985686264730131556269497599216638827257020685667543067540732773225985382691172939558458653991611445005123303034717180212477286125403329997914507798500533716154738283446818252025926863764474626335092069130135730805034693648303251026399778849452011752155225463761876954477287541090580672588325460959033942805859843994237048897218809810588196588903688124048642054084436629310316322646403741696206337271224097673270401382200429672472613036255980472045479023213365625202335391771210417871981971497340459481478676907177497982918005741224499072078290520535096741353576817555473592631043603746617946005969264356727238192554616743467713605851727909865347059899805527855681772411310753350690264975759188410789412048724688533104579977364484935220782009316712734820249798679215025922386523431497383758735007511449181494525362849469992360754022334095875807108424533160977154333684556302443708459859426623159700601348675190667692897218664068517636105593437206241527370448785204680663990084626675703742599921805612921921160204435883572645486415146699047731309904618470820246737353619463582456485429407811164691011064292176133699192183584105663348300287121237920380637917858434424902308767984896592959472285983208808683739166358143202664845338665891308321609848153489462203882752422491040537336300687090394306273949346323055430449838148112194790638544822586533640624624440372527754819374597992990656277729073621719694687790704312034097224289811406041876702003716602645327366738508670204999533079350175200643553106772969163481681497232340425429950320425716161957937677311510728872403850465540835279801146886303354349508545525300525147753848737270786327239894723712128185825942646004050884607243136521206894383159374287672191176753187996003726663085453649577550893601065901265075662242865096595014513133682575433966218017310493668758973512914156462772313229694655842556415868594765294428721621474312136337768567983994935451961493536461383950564532969381868869692130410090320830407826097886564940762072270007074146296186332345009480111446482590401104316171869281011835818433414737682750513446980944814984018569923865339347663241223531910882812507525315645340185424992096057750171095515086927061154048342133425899651250047620552824570972010311769157573523243130913821900282230194292690624791729284812695751145779214637113042241069160882970386317738377699022300692180604542468230132346042435575225727975609262072950477031976523141715834347341978444021900444225301086083253609986730860258646669188450248893363420349771022350368412437040219834047819931498512409263593545474942301087344498033779214600754988396760141417036496794722084704929897407066768311146658485321508214493043010208837817136645836275163814589541964471970903077661922161394753688432924860291298333363374758456345496522421655218073762390762912970790890363648427515466990368087372685222122249567453147636688836145393168379925197718949447816799068508132122400310600113688415759738403253168359284694216216043506158230083297046139453993356384181206641183283116585416036779512243439546847031528407465470573714875882924676248377487492039493020728523798000386750839504657357997726694757288430644404143565814580849687964647136626417290889324259497856408100745505360746592211799404186881092570595524692256309478903182688969107261631645872320732796627039413383520897173988464312490479857144933242294892662540638254592726742796117695741375404159327461929294478222619556145496338010654679011751099114481994376709064002336295806558138150375302723511805430424256414069624949286525039799773722478901931096813325172113896474667197055592617039426612393611136999539819082514597832107343752094017061926734431907176502831591510602615854939249576021977369523109807502986552117108152663055363482977520140574018574847884133069649819538974927716466804047422128777981239276831346641394041312650481579160097843134325851682019058095012075447552349469497030640400266927119131308264999675921312925396061894179458440291470808051204696826685240088806263492601808776310584572219611838497803040973577027866388949503375632818912488872461307971501174656307865074052935739033479179209264060204356290916193282491049977879868302292546200495243823730377266338650022690482521035373664816742450515537878020274402944696637297700390569762091365432518557257282900255204316682561011000450732301322216738059718697900310193711840026616838155025851144722861090678532660218116793505412489130846319785602409687130549701732685298292266191083142325005568649819862049490791454509015323655606622585691336685787961300756362221119271676889915074090791554838002790451004913230507362177573210460005889625153927703074786870877568864568697022256778054600100989380411345390414824840247117314030185183735371193183355351451791865722582786072676020055700089883022787661326512322566773929005724913362193894790345376808473671486916731900387472718417345142989239428831510548245151076121312084404863623725221509154369840792069825825058767367143723108819787811845118423228451171969607760011868458798453980282759448475540574431952881209173871048102835234494792480258982103940682893279606292653770248879767437705038187363510406251708499023406938621050785712927569825599617406449879054922688629857108452581956872661728782794438181335169778740447956023058608652603085564608581114170013086302526359441544382512635745016713999357488745569639379427680103773849606240162837871150337218315212442079717367970874558517520612880818394305885009661994188033248366138576170869544836480450860581599841305471551281211640205075484589579290217142298860696439065236144954937981215755465014816367018525400763057729937884759186040466027575824089397871649628392575195803486731480995210940457025270331004311483918402250517309028246424128642457889523412834065565921961758156255285805146703579530359313732789863137077625941976817448490474147818978643371418572397704866999143201296784850473481435569320530095695719590262144391000796221109563827769825370865275468076399538772137546078436288797814666007831461359196866818724174166880849675778826888628543543089183439953391490283072492167350511928708611723604633308274700107202998738120272178864584910120849292515565813288960884182829685059370786277626736771805208097379327953593015450076188586293690868340951651605416884552075967813102826065214882118044457927468337547468721819980401286768281480171518158131653258233664306796057723850091619290829702556422528507455254062411089756922693865297562991266845373173456497527044912510921851421550101302301915111321710273562522411479172719964182895134402943547924267807011270406287940292674167544048290220952563734061066875541475312953172379445293720440034420845820864819845560480155878682323263406870816985347465313075106240509321320532139116193981230426864544743899042473050351442574622821756410135791967291004022084064686758336242442716668763652139018672833692732320922737380215279830881040517038662666066731190451580075814966003592364525939722723564194736965288485484011404691987990650477626992954349154913687837521818527778682388895966684954827552938042895628947531816951370001426932530290877154019091627789957315400747444397791211882143138388234686064987495824278963084585805288438361987322080064720318710487525030159587015373871847895711283128016032962568198172414785772858647959299832509613714744268720867861179876683897280634296548185629204678684595517788476253141382411112447331217038178133596913287087730676907054418855746998847455210866551876793077865188459837123724062693503116835499220833579402843474079287141944733353957309278124669738108201588607527702086984166083252197882913326732996592953335593731681085821355068549134792692388142294864669899547869411826396851343326375026660710028931769920087173767271516500569797520787847726408978424208219938243822199896496113097363781930953408522175297382491115542490479024618173770528318697425646901692373472811877125969947832216071467389424942550610425210173978987570612662370108029622137176904045439276983688476834347924672120436513105718426004987138300920540340711306994800578621288029894641884890385218061037465428238989702340415930045329805884699972090937700960254619510904650445529724403706507721796132503786328167061929657120623365776920828307401701315497940263693112352219082294151024989067295091106891174169146456126973932505294689393690160651653395689829651886586915102108732602208393429289647831713167798772885125163994966881904098540005721117765249274644903970423318198148836777137653378972133820173090994999914542051161380103175904568138555918400402314373859631056310883917590127132382669631867118788103485944820558249217491345864332590095990708818722650169670553224155055613940047972535262283249258812349975164643353062441558897884882158646623701716736583286627202717502386941066881792192321423936807638856790835035841150418879977021846500202547601140908219615400566005369197165287856867613155389047347909981870175716436289655131140894066218130810075902835552819923036059523525851279850030024102642579860598578262438648871756167219971213441565583895547962764304854283130464453717692340961839815340187362232113331351171702640029129523513893115141100473533960504611055643251788016670064746997322254134208657382359826860995126806988263452420117984841779409417334643851751313968661219991748197515511190684092960691055017520083997726864431151851691543835557435779311644019087060155383622005269910665980056424023416937714421568550915798067524222317957254035040486860948223134631270806240454769257376311717299623737882096778733709968951349312022550963979630475554901190913656618185544654410089436675196970930036600424110505256942859527777839944040537497043356180526081426675125823574604836880165137677321879532671858119761531900895926317746990201762884453792778536123019682767537627490103884499836883470492402620587431004811720401864418606510263768723102869656084410226013042750580444796504869889426879982624177968126858709569205388633291330067863140326760474548321606626412847597203933697527867462224389909953832911002006462042265109191623751693195874213686037054983243158066031507593757102121209092772878883000954158076472725994119613607179653128869692106060746457656270189064977326844459768668229647431327840510101011352456684329494497776825227597043512282261587439963652914935066559530485052865033467319860695583980061430714431356548217995514243573938784474430148452092203267482970126667529192165425937192642976128653668503281777664046043778182337843872601490520657087515132838963092592925855985719046093171676010884117711733541935336877747821661082815786211414144920107278434992503888328456453999545534701788430700105858730669444144740230006990441823344462381540087191458637901884104187197142224553245175852448117176280802393464596198245141939077442706574083016904552428005439964505659128769229583844037965955097419015030961299254800833066530167345544451172136921120437302927435665624701190648244774753459352063972191858479931435568542187805069762800882288164310070714146275918711842253739530086954053779296680703188366134140244767137054360418035542099089705583298648799917387067228118683638177375417213225625020384714908295202408866071266827935084720506793583305053973485653733343891521496607477103158736669879002188125239543728311583046530499593329746608983615994193659999774079587941741611705695274851998711501704048208028234234630787595404579888901436384222613936861174931459412835747452316689778008452428698786418320197663230307915123872982534515264073247582944060180685255090060759929929108917211677001732103874716396122770475070657436941488765844873315669000312777849855982304419102807693193937261256946619943034878050533118001212070562571896007870941766512935886505714187787193194706942471866385880351808741693469408977303372908100200399215090112913227514880382492212000288522417732572929867536975679991194536503807838352586293983794086515708041245415501491074047960060156763876699691549842522140148774526521603272200522306436459938136975393277634812055240152826433441071690435051207190637789955967418809076366233108219380901766987169889325312246278663500773794708331113625642954989215081026187439113414723463277517997804478419157944622583072199923136979886538070634284239250436167831334297909651854074803197546647349080792782935877609440823774648134465964844691983519527538343899571893089989544247449959052476330798303375086782458210723695319078122575044084075755937080835706903807669508980231773748495086260364233264531938861344864602492623357193310990629434513411586900502695811748958057515860941338699977182435283070116753220015566812883586221817657477787378863886360653455485803650683853688590055517799852571509601872023455017724934052091312668772583399479431518904580697886007924783419078557787145750424287171469465763788737231500817042323224233419405697758117532220031775129556346092908788971392771134572803665115081014006430263325554564424968893896769046843641408981883743305518341307505798734719352428388205739440097043809487626429439519408544772341611373397006595679404806028649456916939033243675425436895373469149484600108931288212724557522150242840804707494747185774054973415239174919883203747684614932667563346481218721985240543703984301440396295399010698403233286006380055242151765468551800282555340605841443680595288632261862220338881526278396445221876212044446096499071268692758228996606750913177997659850325802701518847591443330680540808194252741402113260532715461807798268490911048922470162476904050349131115922222563223314317666433514014956129583683371670573082571734606029597804739850288142567058878518826496026835997480553767108626840046967923277171233726772016353996014768452314002188256325721290305090388397033973739616952431797739334425363535539190949728138449155721586293972092040533870596257373629781422755280287644498893261312351897198554528191971350299034082323827840438092711455442957539538349733945766933928400741950301402250409255033940317049501497772975499830904146797109428717645590634429190633294251320705549435842776781466422193300120237939045731526291155783236244139902825286566550639444413905425011592518283834626974062399453245430250349381717978316571023444266716340011189845422119836107821481332511671446562577353440563873542797908247731831749116605473446635257822773394389384490242672987519199639127693083722687066776338609924634843680320082965075329547769742449815327354725130747583340683130112443880058975993378612558726330668224708818739810456646094801701342296966824134592823987665069944985562200077417670529205264092055666500482298320067142829588294294067143850474620761366725016192107331154971270485902290050313949178298907470147040767452785833048221305368031921785885912666898108059113522773343371407051697796540383213630826695923234469710358966820784285290893913349720037471581249422552000123219085166598860309248169128941598815492800840132220645625773477121374856156594226336218219270718779557280559256702382574126047686548964846348908711594084898182238349663828665915997892214640464240843865170319641419650321187283025708908502352227248218329464744833902416485523818404328925896351051916000538381732804525764805196510503344301890524746933473687929825278138630729768585904501837571216059135863169597777982763420644574669355150388654699642717040532163100239688425024978263328316221574817339277569376277230207873025499858889925870065393838469965099409657538801487487323162823039228333253528053856092285400191208061640920645065521024499261549687530884384045633556250400999683476681350022032675628502903301562147683607502406767324632349941067892138291438433948441847934821438798608226790319892741180587901265953566605557041068353005799159248112026489906283118870437845003857686015344221706488726525933111575019680388390481661733642642877311613774087063516838673448083795429944679422636936411689825439354410112935449667436257608577454088664081968279637127558554609926182820688539379767113603397558865754700932290454784989008633381384608995218916895667246871169182861551631251771123519764735889029869004264218657742703526610942374320496502368742149689776273580693545572678794235086405824940353646780338321746525601304722668754124843193729255701045157537032241925129260790017734534888840189627913208428588971067979056291465791185101937813830266283202908225250648355819850296548502503126325930375736441303319213122283389001023282123444152923017326686716059327154449624911500340641959817627574582260248829391302635122224166397259438986294039776810298801293854686101442171937788407468579028400859927712389720046685501672177549176530221205995780134674632007206684331424456282966768970536988497865347304380428071946805461466149673341857136082393032210524760036672088755768921211711319460317020594444855399618737816324525241333071322736334437494545501709171832202109358654720348121392379064136600752713081493112387159349279082815136216290492969108070627784717179967000794284047764863588052991102265781976785377057832722761781333897018822835207513433932259088065237440456968438786363482889334249868531474596803184232547380605343598299179810029155357657714719285598711697061477615355842993443121821900748314857183461325070288308117727671575400063202236611513098496200483827782462579466585854728708237552655717028676531813018828274616117886082262909167192896069082586009321854656495536874586499738711765562758634768913034300463903093160652885761517360914008695607448303743946886082942832959678108108767752855659523609169337854251889863736098053163982505621871551763572793208614668838000592826444788413091120901289334790659070790735999211128528642974440570344497135548805105700778512936564076484188911607458529267198044807375642173211146503165329936607484582149837931272062083240554092384425429001738874686351943517017016559334767649353484432971139965093761851212731158746193409682913313167063248185189310897098968317826204001931393301243807288316917423615172765364716317122271829003350810330607010336908693111066040460761703450922799648253268005355519900280131675012443505673437855281555874411618749845804199742003405180400396324242297167603063240041245000881167654403354981890450628690228218307717617825955046932209663112858593611533482927127723171622508897970954730070034730026224892785797422174065129164540791079541603389923568229368691203613651367825160744836917131897195038277480045129807754291396998105750380778444908746072099115953967127829055587404317243424796353517878733453280371547374081267058271568619928907025672850266118013554009426128981967530246273763936420131024297947662658092270647383065388174290752343246164610852665370189418842012461012855895300222491070849228309593580919887846999963063434501880874076254550519222690336552973362262150684195517519003787815338049436914218664737386991310163595105417496858544464220089133119953111721202358948831315783910856532854035284740702751328838850654257932927646569166709898096109485889272200632497923622679800383484276695422634949966171164581997677764036726848734516005616450667732427004531781994499381619804549387418596490622067698308858575869638935118756131346468649980788615468434908809562582703186235021704162571348669467402632725629571188725364889075908143822940261365665000248976325872765426649443105582921827976702033113723666187532240414463117663712290803758909943439830430406328153052984185431049759250603188631362973165286197144258177688570138464515565505433457752742788935153687035754829737143661741140799675718038557405039616726470773545383336292116872903153926303818295374352796712351103711674698906028159651724867470585426842568717237596545882250432384077645741620216682061216730822576334470083288813414559244165191541433105228562190561440365887392418284498805771620640686946823558477147780336256289126973684961263286624580613360575186084374456431764034831350391904145664219730742072562694528550406409752595349231397008195692088035988853550635163133890360249267386789340900684120020995569023008537473733202072471288507738054472360430545373799616839760334661013246698351711241330527853903279156046852700736960021573506994504548005707017257673742219513935861161536261169328600179844245512862808365975273969438433924038492816418695819379453740245326408569232844247815025326875441252441001279400360464072431839996679737075898775485247677962369291089580133386231546829101525155454699784994558941715654036485828502638628283251985035456724468050934808923840444825963174479824451966265137265093011196615482528271920115788576353837563390066825055815544461608719897013534680740423807026045043134464137185368483857047509845208160882985610282061466957437011886926679188451559886717289889553386771030586372468847793775747834315692753480331240160286894018030233426681513570144929293769068877672906366241294514070472824811208366672781058836692229242057979153948539918438082182552398936936937991776134891421524187281602875454307921767785554532840893036294223587467302406819593973403084212319651503617319935248963422677412726637077413193589549578536119416560165080032031061487668748472921497634388425040775792194593249160336718290771619327185433339449312978895411544773352799700876600891872761845228827709200926747158487220775640455873247478906739856624348287157378447991777417098713609464336921759843887645282723752016698088355578510148820566502086349368802148238452304953211190274032545751322409526143470763884772871349032355011061784969106004208929312545203501761255389148223909298894948487277925949494755868190390790902213942480548236781467674875419324756463081230270146050728536037078055341095383908610953635885720793298520218017859431008906403211792597196185201001643135468074645576573846122616338751094057469473558821326041441557156367824189663330416109572763792794471845861214173380961461715508788619753710710115694409176663451628050831494888270582805009499161817602984591963649376460626482652246274223648701767078882456339601489161792883823331696596781321835354844343873957878732848982602752514529821027734052247088014746929536609832767026329892105113463479439039255700066193607739870007118409163407691423482822129253349747192836469352680962066096599600008967729844176932026331659750433649563670174403099743882235241470462192276841792119470749846426168196013706758701195355387544713364365247422374750681747135022765536048828486197978995650998890489790367617785352080236345405588060248598412461673517503925922032170187884663084048016917673155596167454188455412168522129741373715395330207002763063272091518531885747401144890606341516241741281278634624373846338166919766940237751926526266648145745150498479029696411502739414895130646772945983305784001015329444283634650510311821580038176273999719640485758492212505444274019944579734615566766604259855108052786769710205325955810538811578233132940572967087376644975485347210321459174894849634449184815653071606552498973621348931472491447301440192521030463606263634723304540758760770950079519272982684055235854386165445622048856776704155644756748880579754160087052662731975963729267622453962579386388618112755578764879864330733361546200333824432343769109426559027864251336852186231984463447892085298529847965623532720544404894902933998009306069279750066389245556945660206064636241515175505028475672092916737082911421681522878421612392788166179649273036314213031504481559885546584258548330797063236105294692746550141801673017635022007452158226002792902307603911958547316567868122981528341002460815708805621020039137337761853046597543717586119881016195394986249767626891863608305046134739993261548475655385772481289583367357499373808526438911334590078886433351228372112803552823215471388696486818350361574266118347696250278647359932454591006701408417314884383563926658613334296838384476779008647269154173344030947461825280829014373912007983526738963532431316762559310682532918959359659723725910880925767494119184948663941597318731684270243392170319699747578788074319360889106655743842005843335392934080827854415304885505370909881927297029960499254680502210214145413531801281029517660100635636030945085946486583369002340315734105466140569901070248847599182905567934506142534337790040028679428727848112906924021018698975525783433301914477968516774517602877263985463461579242366479210563011197073496353145705305324484361803254681773646890432177929833497774735998126936646584270503150948825882230404965389131007676999144279933692057214844683817178316195823007351295993461082440949997465888334480998127951531896976020822106782611280124123487497542581596779438742364227835633053707024307379151621429324567592220101666470710437466672112266413290511886485442926057831525774327649136985725774772173006935064813128769893131632792845849645674212311685651822431237976921789311570649237794672608159471243263257968074978762413987984562493588110408140633253375630366567176556691462271938408343968323462075544987048703668184188430563242968744974432147766883408762352024367292638003865496062391108486646704717057881094161058252235983515655562350434486672719710293350713544503251902079904460369847397400863727446254001196183428598920031965770539187799994720475345711733185547409401450137485827011910312170748569712584830080856048634017617189692737011574761241656447537463006177530537434034104654151464411572481247094996673802169290210957562467036104930529359037088466948018589655871120194842920169987190131211173780331108175733267727152164224975877397473759091659283537293287486617401449302448788223728415277756862750588170484512684150148806528645760008268225198444652059471787147691778985429143853105349540997657384674235762368602501170904172365097146083537181394090578178097041078167637422785588469759753142596825642816605995025889047217633219343352198613541679771540676650118717036460777760458946915193100440010384249611837448155172902875229678990620005115853648622332779536748565534822679044299274943883779339944661395134848886955032682927335813866859057291580423644486602504619847190025786778819432731655357329257189456134168159544500713588099068834822279464201319039347532316365677447462858583792798323201432200736107892192035236879199696232676140862281462202586915234751918681751328102278641061262837461294682738615150560352230091768541217572641150758164288170524036096902681989557452543030370587225420436659858802985472728132318196859609767894989413396212365136638924987673157472250572189989455341755256744039777690666712864075006954124188083239900586098982173549093047590224609533339984577636838463679427866433037897327822656486726722292395009634345448732650074253193350879634820505485702552602021038074385592715127935259031993136572498936524341603995179587392064726141257849978972830142998926736954709581315742267447008277338942940831127101556518364130655908436350802994949281374067978579726602750872072853764273354856438179885936949959122689904184072418755893168395164030700392712538025377801455510032884038750266007936311761294011143236511920210794236297896587290082335746518723510215325209226584850314707717827531256741467334773418284124518304421630081674948721127720507128236382435428916010803687415864954107213556308987736575983078633467162017919476147493882278850160633879983433467472730719885313095982691437688995780493134670030140719391371966001098432035435254200636844197705797775722407799892222307369485447153780937962493769817207382469492104163313489956055392695029885522808420655787024482485992902056800290805007900861442303106995336038341943591309875701496035002700183617387061180857032221975648109895550699793059191689677603501171719926846612509933137108009361501016060775663524675114328008327305168202858596574962128788845215155087572014596076540609919431292774546007622204404067085665266928269145379352142513902765423123033210387795253018518347134612546487073175494685075534273937045645382958744990992097148935898610883010623748115356375486954381687062918057785003546479954618523665148546025401745728705522495308219138606982905144446050694124174302152280249013837389069224172552440498623357193108614757266132440022416545389991065059246664126983469154522738171412876261703618652838251690861775818218251693187326665139539767676280815055054119035775357480389972628110433394949203364890983018368377456534571527169990117384573106210247049400226618987163983681530395818684327777646802890399590782635440485333700794193849936551114995916541880164561716342591724782099530937199845325180444640138462945542129612740231877772269840041869911384593584519068734450449712330068657290502446219195559616791199749059017085935625685730670989631898018233609123224660375266590115882728055739606661677850019797900022261486104104569887706016118813147022929311741567587589586899091139669539757001502789878033787549328651418690893273068836677559275746822255698474712225246163827976009567027093350207491085136077004476019313260903584996657356702195444669316538820915509380279599216792827821728418658181335335484266670774406176760878717747508526538300968019407541109486293956926579610321961118014816803046392180853006951383951420478278921269867733935548351186100146272389646217703548408062825974524870755812131469734293517582760856356526227884575110233673994119533079059481339829137863655043052776349340579998692582885877036170773971781315128127845511678274534202262422780420363329222766316962726248619334730573427332474775918636168757201535365281768220043922886820104077311454689152110584105968419110105794426942709894369138386446435449813463285341392004782530674685709582238939674151636570414040979265350625065241220256643638843417378638797993131668762743681493062728479200985811705466672027379310887902536324989386991193301179661280132752762672617883420965769178628770766031734746622547451547657966826180689386213921211439786844596872178639905171861918313830326692563024991546207099348080139451693519326953036079723269822936401124863133132073967849924781742047464106026648125172595968520951429067149673749898180556738159047896467141583615277929207367110434502786850978667748193233944901744786526316519418714117777367416503319073574928946179051444293242676856294871986430986037304894832914814154986621380514533520774753968860865720518604932510268513601891638077051230547593209263505588945781553158665367637577865693871428355375932083181123328225032870503620194260842719975984331275318190874641898482470437628674933318566608255961743536887268333530130487943848331532428041804526416126673956572931404619314724168470685425123481404079335764271956189634087635043660257461485199405859772838293461534765753646268310700715110204342877181625945177106355528844857687405085459232621383536141653478456213742721671738359970321686426624577532897407652721215693423999263597471368924674096676384599334214508320553584670181398181033528878442697793111739432628737608431575755665687181964250794830503149563443144012745000623895647637406455838013781347468545766339546098640859453843800719349194839980553167803211554039632548076193469641861153303627169728526517224682212528104368021149683307387823539270380752693409227987428352878942691643484792724089595924617082424286818221854080612002906394496232034073369831421776686889992783213434940463715816199779450030525081224305382737078273037097616910937288210211923492635917896559322427215388781157890445885840275936717236048185348851072266303937703962455281075372803532970009679381461758812229278918036250292445190640474599098980880017900567942320831388283475928407344232988275903803745523553240785381479539561896832410049767702099246304934167308038204335008544417023497132750153900820460849749346280270690859384735776656532885225599213256658238385479894236347920446303813797086215082630456080395543795510956670848048177760222969128626094704267070588496069406795821622336825374455851643882418758860585683256202572465833136979100879245322524918989945757283265409006327870440912859696174901837270701964683500838633436254715773055495462982655818120333495901920292361855029231288294984984324464116691752571614286017809020951961891750499180022402173510094963213280187339235775808305722853235903330628042765644751559800459709240860404787148093207728479923217116783391114946986166926805775423411814926177922944802313422692562248146923772062190594405621689227157559187112218190396119393869181754678129249846811019005764383137810996177348278352859008272307061238259465366742228911380491630451363711419274896264539550715231572097714829592740703735282633837414484205756572199506720858545362808817736217496205266919196151643989512245158210348350332745530225324706100817300024389305512056728745813569202512238773202705364277674675559761071926989844124258584399363143570014515308704609109079571338240121654418588508197847233099691202707859285186345048805149613331161809029090785531641285351179423091961518348670256054179151483585088970919359497127807553516328753806033031781713045553139670856921492451890955516866181176652963896926413529825152007772529339886033564949872540297456678044970810769182097834464216893723296024231324210074429913203507820242312123077381162212248556419520825750481323300220418976984499514299928723852993458733693624083985114984195146481822029657032776503659226075637018168993975599477302671143620525218660821453562490028264344442720278748242558850437147219646669281775704371454852165397830032955011448286384209164915937117045444583075955470186012198964180002188480958685876330607764692460339731358420390490297530082918076227825395688402764561745220327221519956393178340614951484439388659633075484518760030127114961885343840146145452366434249511639895698745600841783044657050956846232656125828618112697819643396257903096902106620462146361949482906675685356791892304938584287618161618677659892135935922777272655083905307091144460170099603611939756752610080284481912999632448018372729396233125770306918918569178607143828959934947955050510464551622795044691498285433983995182043177445718498989382256898638024455964777365461033916973206110793006646558663318311366790899233560216369650220321954982564600993099468046925302731650383095625477631800614495235416664955715443095015027532643094594412779039010455083232160343957585098856136406320698300877537390606119533959550621191324849479410889199027286295194991532571307650432887224245828085462223349612502565773080298258820208917432014694053111236531805416905470367556652694588022187479885816005863572748209831481432290624705169430039823679143879569446626146484329764069608286885876198586756992475682714990490300499796494343758544816583033602335627101990543189977984956557113958088543029143497133017979355233090167251294583947606883322268129587246526567785240310826662540960226836087780650919468045791816864528323909099350687511819964166553718239853123319997365039111118093890621143893716050467584061615257855048197468388621741306044446394857979982901219581675000418585747542911216643199001607176307506784776633089995400448652532759627646311159086886472163924203598062006744991246957808684744089699447138315691954658072559346817960330644488607286014711718648087842663327674664829824876968155622044566174430725817272557201800498117546661578281370887560656573229753964613607254885195575263020824667432935530687521785692945877717290228262790362795976406124835994857509575133823460191197059056997095419499809445003634023048840038126322685586373586202690715395285931656800285527553082353901966287060005903136054590876789032342915199902213991827860999330828479857520837813829244272222302352192972412539035051809322446381480789727848206981929576098834952570033778540104698861552744135114034225481882092007148147126111148319394517797272885868550413119369797565954050524529423738326480323694149712802742462321738133936291276643799904488038738333511506924645611723662996917342999139074242234137369401902272736411379005724866948852729321350289987505455451014823409469859503774572439152939177684253201746693564200279674135014933420501580890910687339720103244447339703966341367354733899190174559508702911926361127915572662723992435754762881833430876995792326657094964092060596330918678560818338521713169790719120044570712380052346226699511914423037461616111627898146148062764437977823851188265727988411905136095901661868283155548494737004854268008786498961764702795198161134183122527270071791358862612739200799700072538936554329523268391019200052790870355541835338429627731555446289777070133230604533072738759335274304238466391528135824681302968402164640490043911860807393830862786508779583914741782844766286980349220810203291572324713512584664822228855570846919143426948051787453482975572147786665067118749785866799489158079510658829966847235548378193445651594690614595049907492955388269644275779722008202255889344973047475050810328813282485062908790784587548497732836427969229853622955494478048406283998658391019966389990970911219598262733032960907521590852263381424513595850666277654016685575630540429764670074698634253307651455625509042610987165142594886508368879027779129986876231592434157803506896333071458517070099640470381185347160751650853466334117886176989235742103627653307718442773460791724298067457857513549061183755007829630707389660674241507133582473452077002399674785228114295574810495297800705083446614373366035016872683136301859870201186202668828710215193113568193403197669981917381365075149109366797935659532117584571503774527816021517833596187999527020073610707784820546615364773555481172768332685517014222099071293662782173547382279412551903908783487594100446185092379659292221084276508785372700549796493786429765146215703003966107585250922902583350816485221092688834322112429650013582618436657069601968207306851963320068811240098969280571807223687941675161881030081280622242060189177032698742629316097895512632177848833133529587456534442626035477757686145974884904351106976313195055017863902851051564284859729706065088099455445955117648999474376482323890966869000438847582060184135261422776815839267526856082324982928259953719411291747654768331578151613340064538920098751465644580803003127705299282564555636431539043024021036513887924410497868842772410663515304817440491766830802723688386307146332670506738751765470305897783148012485816329516286294370973894297690442993361067995065909805234929585234050143930225698390268776060548504885770685421936374833422086263698913814920533627605008507396416732386060484171586635111353752777355274578466564064648872599628183221832175188392804633930530417327026978160904521786581739589786635848497860560382190037937375196614327989071515853053199031375791046532008547808350274220173441027743604370653582961352997168046277646309153734391963386554477949464344494013553800559512466602573077150496362101292400892052579343993986356699309790478258731646453189760409135880211142787255012194042882970402869903025297967589271624564884312775001215788178454621533079706695328941841147850230627861050894034804930990882475551461731588966284520408253916310471065684680544979337843776927251379374492729667311103383523341371424843779205268410656917039243587161876413412989951644370787913701468054888628184145929199970366225278579923975479131265449437784475396834960032116154273368415342069867344725224864617651301340939619527606366632191183209675356461001092180118306846434129126832150526195371855083055548014126387400975446005600741755099698672142639170568103577433167969821143103966771028576147391664789301373692262834729130763702627052342385361816841135134839135181535085604642422208770614152344027194539918406466095467532511586117015303103132220298985945952052239335044978961364126175533710019058067271014281376364168983002234154250399575428773845413953714323607203962848505192596099103514409335057701170910584924183677476342518439216109449309855151694242402929107486554301548742289107571821865590412167656417145479948200133221408533253043735591737562770382933032062872435816130343506846839678518945018291687188161514614621279052334898268061945668595985924039538565144903710483492549719598241563224984115139485106906556468377311141041405238503329385956458570393390734889796162675454535643541798025901632162471744651411549785547381100894389702608935262096207773738094541673991955762660058759546897957546891299560024627691140053889296104687685614784890789598387923995675326131905728828235981284462767594852319609379443599730633757147637081420366946865675095635300390883361051529424413913790830902791933274145974233306045675527963652532249422392622128661933761255078133951870930391123466347556547257404820461619887832203588842687971273568037334518488551305429692955016217080753310476633765693545541075019387900201156267827313065634430101508872382705554844801956359574642073363899782809526914213209710516795008001744458260069207725984803927399206054654764993459104096638150594780408966794445639645666263300554964743120782860539697331269802944927927004899412353228236911685746082269455006004276286092778932967558530215089671884907020477402420942735913409143185277663962692924358029438205545104903084637976599474170789427053991312380074391895069033645696937416989536545093159255240498336199514910410505931359907603616313756912510380015270090658609925248004134265282851974210769128997693777807532522531575750322727551767006357309543519012830824430137213502685756625199737445679396004027995515590887478134179460011790548541366251398724918950386142341917207409974981490334239274863560830194434691119234799486164853602833467844941894056249808751703248547156790718191278911716546986846865589803998192345615432637637482666989961064658285990360768211617638181098183177505160947113917602669285330113064799325680261824950110292761487944094215302243789232262900590687804699828699009140777107935551901383764421886066633051147704277256977504793997408640080605748691113955407155476536505349934924823886263596863290516116907810349803693558568080210185377321075781116962492271704967892410360743391325174317984034372909561215110835750656071171244193900317065139215924741323109279696522787886802410781072644182973652550926208573033232789230387813530722156765015254391580044274509962533020846972527959239635143552237591797919964244681231775910829169948191981994810142244941193506009833933205252453756572234401094263304208495902455358182476100357396208512444205029018735510227393029148484825095025277660461846904680703288289934962040657464704376798287234721708666164704482652138403442679318743826594423810216246370699829610551381626400055115480993210711203179644095023995217421614550862808795946993200601766044974508250476093757975880916160499549505809629971575375424519149945325754775671454671202800319991407860507223176425633407470798669286560587962380273909508493904907003502460993715929472073318837322185743619330124506094144373842686961199514185726860479100704194701406006349340577226152407021282215259676311209711885734705140687208108178422063252914410442531148956565525263963704036244342049117219851716614268636322183079518343459414558332403921391521302938940602570972026806565659652644968450998021403083394343643134989272096447042249242316813289644343449156376812814949389981004055093947322256172693113748022588206238514503071243133926139401185359403837624852312226403386246642123209231292136911569935211884242544100760524594855363798808878554281336174997409815292201259643564820130728431618726549256149119378095286178294018494996057108720213242280826777274648609097862177242780514109381490198043549642396061253103295145654333137079782668199200243470212485626184727063485334052036026679108183443822475574272070185968822302241845701139986327483217386647838880688930727890143356993221534934549031314323912620732601220669124902227753336779097189004852586544397870080160757915558352646967964506968323370290295141096454441453166474504209846614066797864876428268929790442622858124787495045882030920855720737694531993214088908771959448613941555618310143987768968916156986261316324899217987268212341766264768904031096215700918298922929002706952457276078671642900360355227217149573861893533635975609459559106301899190775599944810540237181412997510022328851989358649879269959304004027375739073974749494995422626301701772244920096001953033405965808892841542218357750139386218278997110785662798499686862924038897812824577907341583810992880653748971321643128707372343342863806257501783906339838471338194165592528489306253771777646060638120413173833345821494865140052799069923579982083054284971999165278573254048536749077631181986266157972214431327234082796853652457658825510072100764172048884436000532565530094174704859736073615212077358220956205924806512038323026461814584998349336848564616542273782456812683610798813714013454698535019817827497442139176302521331284989901885785519159779474411165000921096875178083945532319056237296195395068142948920300652700984960119036098867427582638391249849407100279765663181083450538788640656029876401862555119099552992193632499375431689455034198446425208415935138619094322877922498223179272438392231283483530946877658549638581495688876584451196595634623821709607107115733228841717287653027085658596880777301020279095508884876403826919505567297727239828759924190872437434649891890893945673401946783819887171775161130431753446112906481289519229063686075606590152828332746686024873771467231727491386496789636639294303963701669571062639321895878213773603608848776895057249222088039340188969632038542771897023042600518438201230275529197296147198161174039771360602500934174427146618544753585153920362392677320947287233208203311181098947528328393818006321046460603446989141744337250387751494884223186247640078860390975355622003892101595219604735936542203310006914601606245170556805733835614685544179886454013061760522376659443726388343275726120532898144966398871889576804993162152261433475058028674614427351418340329559352803177678114257051364219551732508012161617667712998293848388601276980823685708203887890868352665746608187036656614623650900397355722718189288111770901925493481464692351305558348593180086295134097726549637221701532562020756811825446480049812301606196116491337450084923477907227625457110059645716930625812783117787826782063787188596651589879073189254448577510478130245995391707414700429726077607617868722896202355930095047507881549339872663906054089799722022260418186614523392109492231144478999943118535691812903635150618216326780809955036655767069955304752714885689633025469194745210137512728118890831391146399226413763481760718037736641745998112297772945224605899534885573726262673684071838880535075481224720092174052832638642152082377941669138606108382608891355844710680250582728579446708363537079540181514558214358267124062888037304890671661157925141492376341899967118722047701501573720779549214050597350305177901165063450636741170914368696937570802048603844680242128729990049017911031879469114911517034519288619787215857647694508761375707672945634605630210798473634250857701906877468325528636734447464137482590981767655477428886655354428660480512748287091410245093857110725001042056876326137026686027667766722550001759929678625255954266737724630788012332890750323929158950642168037043195877902321608267061887727591188817579855214505538181489407404956200690846003857315063622300303675462928337622561694463294660187307639863720038867753222374102584217172873054200199608120727576121368692414019308947221187515711878947440832691994478491326629195854237855548944101743328160025397996743853198406461337560240626722775561484606188765792207076378676404136980712541475981966880464725148638178231476713357414729198170318270989926272561601087087927851467106960400754130325015863415665174604888381653195617540942170792405645754671554856046092747307190795169320631728370233191144399791836677075319162500153955140919107184755697937853539412003188721396402592696646451573942478014420471171947858374720717173125389798450273902128601434519515557557069917697224292151047695602506913403893764228574079677571798198473717498180482793036010086108122962823279220576933308134456688924152019168276120003498597145889196523768043448477514232328047415639541053592899957559261801008958036288704199062499952313859172545355942899351853260467527929546814803400781583237628824195586886350100209882064526591935097691451624647858362796420523990317966109158776699125216530178673003630726644633930117149225368376974797463920440065416186367029623686764137482788722113212277360334488103867404843439174512471299706424261079710499794076844232099199589967562289828434876871435330595636500708536175643722421963008120865610509174337806267809813201557282987079058111629445349733325682857622906211641017486956202762298904621137546334079465165547509601576750957036842985383051792074297248492247929382225852133920557441797660968363320891626184127741635603166958752094673006202894602986230882586787128882018423956109236211748218196255273151186549576718508392890671349894994079061252408606874339209344972163560860540835120551339302057901139475686425255817940980651153743744644803125354468133965525975881323504480767603016772697403160444401156007310654395330119437515378053241838429756300799522954426631917230799915041972012343025805383834885152910657755146778614977488625901611411431616798184562058627820484330857432832600548917342012942324045178212559182490116883724683906715783988821608839708146423153006663429452899017516755471808728515058973172260894546591932638187067662413359986925559528747388468961428807886003833736514288425296442714764645768767696248321762062688375365231497623813981200702307045072363964497715710971645011085533799576096713638688162096150064861276406460563105856554926711116561430431087520785965698397125587799678960327149047802779710396331525122979192629927753117949201788135497069099460032643528742421400025473249314868321386759746450074791820116545081636190628386079855459202702864152346941542567078890252822773845244264165144290543005965247667537924657893156263429880921772776818146713759097737861445985490509283504319065787258379393148438611423521046498149013129350519140623683386530714684293273921507226007064817811639199783896190187277025671382696958388623617790717035591086404660410206639184148234487636155313059339059735253865594547146654808417493400052174496688812948830898217222773629489334748284824536648721958478934327879524497701431554388003434033636224240192633036346624436293060727930190306407383886736668954979243636405616663395349895604416465708913106324277292618781424030159601128661928058029966130615775280583829128509508582927554791957805947067806468112803202391085287321762994173602625594315946605767234170610575777864078759770358359038333429814322718052005263609002587589663995240873814989267803640574568484622945331375769280535102883791349763905937537072443083836756008676826088671739315550354163668563127365679092443098301815660966112051419917354921391533938401257822208988237727326209550805793207304872068936576346371883973705157226949888255501502526970973499116239318586370070556658355564670002054049713389207266092723237450775585139825446190638609976039600322527842651058056599836888161110221287734184951727026172684408667801362692139193755816502439559503290213647005146940429442457773571579641307945731695843928814445670198391303247440885913838676249931407714858257346745637216014537012997689694390203378350031446887796687602332111885689107089992096539795816604641202035939153182756443975700943248760508039690833498948492386921464320193003207249997424212938614702675624753352519371093405156474108724585968144450543149538411865381381369187507038070700767590428233927217103985425308901023356992833604068828480694279112394311172124896977173864882081269775218527594891875227985990778421989889926942664243482508840598479929669724928149166958289828515387359265124472165932388410606506907338890145009861578381313972708966061529333490873163009496601925699193263926530302337262897856317431575349618433660612269040938851005240685083511599164962407379288055744042035455102183440637797593059605133781865598704876616754682873148585543926417150919812012555744947609847597456983164001468008780527445071397705259252603260370655712067319837065300547630389554998815439313406557433695130246320107558672933619060552745387947922480153836230286054502405359773014079725410755104025420829798420440077309859468496108951609361135837102128377976990179077562547953032903284522756205624891971833285090886236893467840885940445389960994090110861829594246526740875376464600363452822870193448707514452362748438100444178820958881859285153617626214839941539610134296391179920330338663222838223576126171770040809384819259321981888772865040951993510095051241239437320407508482751497694653739141445452545886669746548449645853180734125754435223494217511418840623365005994433382735790538874619878234550160692267830065840086073620609574164844752610380996331326372159992446377536767395592331955879711585249224375552012806861720700614987135401871632788137399914747552003069245478644433200283336466403323493275304640733228425258074329306275497146591404001327832207193560825686931359003242634468896602319866880487048018308774645401540649974679830060264192259984748430290158623334106489775905220410851054275025262016624897191122169567637603996912554254057942768085552670718794492858872875952270087314309661365511991308822695685311974467069570932752887926919532657846055760371358683852315432520936240288795715162701195547354870898027623262394974735848233968128191772784362690227305105214318369025481843752154586752473403849130106065338512898237867622850945135873077440075200785341404723180417513090669408611604789405552452334644132362234471116386598851607082025532882785205944942453324907647796216182421424829275195272744529352020871303334108678134577899063834591373643811273372156178872663435264657638565191556881317874306731970651724459813862373455892767578255551204213389771979906057745294885548565974323418308659769550878867961862901018954211456384589192683612237162608124663025873248950285166657247885728808119746875874192161484390395595198678791932250038881969105220341225313005664718186428195842227754491371518879974077301593161483609388928440191924803272842774506021561812566386343039876437046146460761117919916996210260721574909371822414048289161799225935642011763093228398256616294559959233214091225988522402670127191226725516800361140208619497702719662231766506735646912951608365572566790618028905963276180152960876425703285857188397211546065747346693020563682514422052199972974687445961809211403158292026816157950866969060416566276991974797780711435122893618234115118757373368521805943239531887358323528960233664737390084654507469211515444554998320421985116010045659363258610794039131011132532203611493423504275712619016570768074906163464896135740334825443852147441978623957933040761790163868692588383546654618731063800065754442761621313994268469167883914806418075085117815431801053428705760168792281492533218804495711087366196910683406048008267571958914819949484439805415924290406832145146871849254856198049186573424769456898154434707660370750925145480443432104698536274919915028169154508759245430521649931127753646943144639546355142389021490022443856263749792063513142735691033296489187813080897700779933493757131286601019142314644685354982204816859105607864558818608307567047615013939543361730315968577172327005465688204771956592793471210623666515974701819128977748966458739105268325569619504746571865490353699219999484992997585417834600821207420707063699716120733749054954673558318083728425008275936968482724192504664898201892884376849688390622703237216174395773398028741908111997825918701165063051107728654536159394670505282756046934180330538687876315885328154421711300140839513922824031243354476411276721382446219055774835643776870810336141460287600539147679462744883424632479488112356267738842608292995210296863768053917391871252935567595304821048840320811573841612333403693418675105941426116632549376394076186745847531499351349275882151417795031744588658543772270790920255775984290957594546886872801584392946626714053783117752989861600701758752272701429763885781896599510621434820527061621386874723740367747400471567131455217109166664072421592517285721197616501798919947507773129399024316808543914870417239540834304684885572888347326128410463129278049369044528834062627084319756716933261270245239374955273639303539377092350317126797352839306231804011756982477081755497883937422923602787793699505049002123525010083943256581377037246853664569546492462388860988355692705120132344163754032146135444877336262520647925975379448244887974072878694180431252869927270696871433237475758799174838179834735622995342595655419435912440700893898622684351121332998512040173538829715470632602484020427405645144279841579361448832269592693503654566167186233719120046655394859521044337322775550602700705053846150381249733955610208420520458564964699725998713150135386434707042593385121171886322791635878698129902626856040449952712007676959428663838944011386029545213101639597025056145150232820788080314966686989723151120846189275206016024548162453536699111695867542661573094534813405280196272253171676936907792753156923099453842749157396870899230261727496059698052184478059494467715543755836122874257641904526950067228064115184821553442076610075277523527011226374196324662634384284730531527464164544307031875261185250313240601811783642812564325717906576673745818852752808882526128521967778932635896609558170193048830255138439736773895972769623914143612611283596022751514227394314516373856801912437581345531818681435049489301303523586947182430619339636185225314961320687283830753169866144195350130382965817971929031380557950140393013665075890237100947793180671405969675658642318090358699787759177392598691407123057675679277773502135562800441443524622912067267271127392839765802438299555257940789749111628620766297430789209898737073198084121615106945316418084061896578414719361026547466283587411882860674312234733954850682352240360978619497062086768154118316047887554491210854002603113674026717299696228680525712883028788338576719869519711254472023841643261673789474752621636563968244813735966037164065464439234930021960435175548688117184153515545278277142826304254370407566667709683051560913845925413558595590026667542572232610816907181160088043897845926859437342537302731943500428594685587895469082041403196227412858929975609136777362741105523343964091987367094795205568328862481128804993965356454821167709819632148351178033871840389589757194543269106540618412008421869240742966144678860852745686559990111617342816862752345209762285010576429998539643453042740701996568765434575159472304228459171766061268357773775901910394668967596754284401586623638428884666406291206328255543408661869952404580034890626943942498183062399527468444994379171503685186683100250903085418325547729513807524623062565799029255555116435074094700261451839522458403055010073392488519962486366103686321972655160577555838785717208733821168716649293963726806268455203469204456299704204443341750572120614833783985256406262715575463565965097494715449285008381543792338350956309937445270639494105441549329674818250223894057138075950230445557800661603305564607404481670428589318290708117686423402966769825207562912585048844323058911118927686165265678209756373618293101602636207335261077219094581250482338982015925801551183984391069406267832756628097674602458244023091834804317364621887713155227265192554809036009767823527656914197773353453284834256729933696224609534986754967573316026485929092648973586891901220611899918907049506574591393445692761255061935639995043127367624255639284921387985709420554540408642275861193229243806996290296832083795832033889464140855075662806424716675233072980337179613704670038220657882334601364649271247236537929199009386579808777467610866619966617102668492132715472967251853598118593063850721409989419496010318542458049469490732063990120933129691183168834425408884993981660111893841038900103085468646978526598302472424706338110236837910080314787844957759459177268115106862825180249629360699353567807258540968948441443835281155929226021868252546923399209702399891298385437420769526088678819629085008401243989448072917837313234477171119777560095802405999556325646823622604143466311010593769020357296315160581626143265270545283557847875011621458634384812118932091160734466708240779514910077358638655023533726872109191490870100549100837023852728822601528647878684982288673891912794954325476331109312213313938927321195495946161784442045700236335486584656644721549762417622422539187954021510010051936976147350572501922110812190654294205594978263938746243073041570908595218593597115701617981723601429706621378015952703765078890437372403677925293504709212334332386682184646861861314648439242377955693636914699867813981688962024859042158315811654603615376508002909150582023786395472058000936022318692962428682919531946183706862052605615331206477935410992352123148856623885723893834375939960233310454778802855474819271697138901308467617174151646980197377193452570665746460818607756352762792242675274635087764482138167152735339161667942805054108956011379889253737860568044523942486246914829135746385775483606289856964604620563024812889548664818202038498999069409174105542009807265625772906973941614892274264444719927542315436126898185189208782872678739524463110533376304392617175744528373678576868085227964877628077564279198197701588895367621336851847006978477612957320451532244480020991117712524670005877436480003449971816255933188753170047421597246250072526741722283171010874091049830153442593905792142658899858667669072725643859937589322640964519865068722430140415851282183620584365106043488471344194651946233180679614133845338378939256656158027867681654498017016620727702755199807123996196901227120269642664360386055288745848361096201544290802553584321261091181636917739229429367331142421742295832657211634283791315781991019980439575171927691963482005064610697318763628475261792174347989064642430461613735367396353015083543297419266662710137212296191244221279027710178718312427068954631129776873814700801251327056810386360245618484432849412213723540660582980307428143026813375238827603160417717842313378630312013503042208544949619258766211053303657798409620922276015106111126483566565049516434432623645901230414791073951251915230467270305154284123918870490165870642653227494307964610100866585317475822310424311031223252139093128274326718697908499094998110062652179411269868678515200670252244896151210850415930636614785515147965783135013575660817821899841167440395139308048338772519098329794645189678809419287050682732718869408327274259646448957750632889893142792049813000921022160654336594247118443439230428957760873905420281588290126231483070594362123972101646602177052722291349950069025825965601532472535506414066252341104543791853070086981332290454546572790327802282472513175104730633274157954646406390487717964263126030294038347895005077161728711015867328442235255653924769388458036296834153246677839563188676035537776325440770787941137296864628127780473319153923027928209986190422312260217585169424181113950397415336637706778402741760390600958041635610554908911887517007404055641927623246025167299939984636091233701288507687205403929963581680559102816370217991435341246373263203024704450413956259951500035619644182181238845491472951925387616155160919697529570106513742761702961357845884516125099136311793334124010245798350345523583079630555066240145990756102221486102223698812893961348340227843665471860326105659999423825844854360119768780627286861824936386201722090335128460470407196091848110426375447566685839586919118497720508475743435807085705171670363768551591438976890244096095012180105957536502833054250070557985563442866564200496408294426654121698256655713563521986436180428929095150104412125767593666321132923547423107237806819498023911024680997037830621090745249780637715555992188977096109629026776200609981076276728203617192709605424049907582291500345060761357292684392073938038081061380581050311769797233934476789395249878145736626220179789957424655717437199368405619696696558845638735102103046369101180111842489170191154693831128615743421077195390202622504070276796438971915955569464427731763607853680152829966848371029623538630980930136876729698596150640743572345725081315771105198755205259792157422590931930437552813854297336840195871491167372875960532954963771506916290614679422611711021486559240081699210647750208333458685838039399055385694749753968259514097141073947915792565420276837493489163358201008423433322739714832281315099491591725558304853153341617080200275575815818550793733499045558622906087483012956951942666230481530274740512274926764399665859363335966229555041010268242647372581979504769513745410949904197808243488753878700255301950272989473092965434767868205865484995683020865768446802287085978196528936056593147961902438125490821327138160871887323067150254066870696519661400711456506201215251906853298636911534865549218232937944192755461282826176163765069250942238048079451036809655723954618471574970565424629959768335883938222486037080994391672330151519966773205338186091803316561219905907156550873309076373122830531082278279112122931657146169862255138901738658538373679604722824467573988398189575703096302204325723266695286912010708450904088833348435916165315131095649926779132690376007296895148771615541727633088277995633595932495763267840989243758048400634670360713326525186982589646772692156182413139278201931331240958633788888014294558856156515248407860608460923667671979818012882103841279079026987838020897362664830856204919639953404924968290846101475478984452611163651506106386711975849099792549753530032719267727128752012911636813693364773727324657380048746439714435274843227552075140695090432465634149735650712785218603950747955586831583023423649845529447085024767651988132533241004413922434109894461316623114823376070721703615719793293450516658447532156021112453778463553689812160237521493845825137966385170051270709164798331221345830832139685086787984864472007468286495275057964645980790116328095483694392431761422191136346165965346945770100454868534966267947348430213915748202012032026730188479162265662161270946451690209524962447923244096386327426360493040449894265438896851638696569103416926010146071303406753834705177472457470039414924959463146739083031618025560465729129073643772429874619864206801431158404335908670094709328150526690801887125954313010213594871115686579465896298791124579080314564948192658341961006251789422829058819758533069606806233525581473390894504557963939961922885345559990478234898231350629731276601242809424613713771704959914212926535275928651503790867284360336819138842938251601832340339500656909887564620796018129509299149391396596025411227157787691597327829821488018691571879460185276037350845512424466230495358135807803944265806847541136554712815183889528068841744899228976868920333251771828867327351395497490281899628722990562070686671703934571131568636166677323154532383847481908993526678062743256542087574165629855634897805668978690871986661587602271985557520788812767274628695512598591408326615776182925712845026433642320057168224312769849810082536755051049791293883830719671706210995247714117125851443919525936777354847166872964319997807830513682240241717801157724892047597999778120652351361580378446649482035198047099926395690226486363485844531883593600613986992880970987975516624841449423155407744674875522739991864666499045277472142081315425907316160218305545017342235595585954333905691953324397811833477952902287696565666488373557296790576036760115599506917761407882676132690285181228575226283928880904635992366866869563337348388777347163861710700413063347502115088867062599204639572871910010855609333240361391848351047342151679112695066158013559866243256286003459967598487170889007555421931195158147144419349517276175005379134934519870609341100430870903916628970199871429381410952511306166325013431208995879064139048477849672073061479987894419170458759400888474059865729371466328739614945667719208440498898129197990776373651292647702688349624703898601201881126630730443770556642036018883329918233362096302382644457777410585620245028716885683311136671432830393567306323471748776514733747455435471326378397055488622202546066798318690686576506362308484440782891195255972038197987561864452712398568176125218303327095424289681324677072839333838593438884561890627186038841186679602805029651668009910591030181680032776656623438710579394962124941663922636453015096194520611484290414505399476671085335325144926249947783063337252148653329482278320289508150934833183961942912571830225548110461288868989097391691308677473891023923482657484475240582163208462429230168332101779957280382805843069070879173141826263478311518263650864291488920454775769084417958544730688378621789856019864092619090688429649334862255914578071948610995475918343870267524202568398208140029578030198636357839045674415725751241203673249756963966768042744506524739235664770564237684912684447941609155328626862337751402011036964062491718957740082755743338375499439442655994677719945042843748960868517272343460971379724001521726758624341583258660171295441293627650457621223725909822401592655368996995945334588616319292726973713577367544340435510824556538166926901106550003276479962462279633641759712207873723037120071791277718153841343843650813939638859830553576326021757060747847928170957429049122016354501094810110541691048026968141939415074383512819377344170825154296661715786660276858450681497059023666173629717476162425491519419970777658229657709151815274721576806602406709567804350332909410022775929544974564553852126782531704537276852312747008275856983842524400006050101162199240866793340268210369807229809298446419958532574486472023492251046272155961035949924866580606963696379581525728655601290555860622232793581022764028092089719812133816573589448170103847665787330156472788691920752277802568842329859743697333646350100834867314252412394001345452265693903900712575332404588479486530735424916829483470071591089804118504645263147043813802316887172259657270450207000367906488021689383093286168658960547446143322078996348613812997732441948002296079387273190860507213018934185285030256562721838573617544603769197299813954195215774085718837746171571932458032111800993771158833398927121253932208414824457557206334969448964606022879283416592623862759396714745501670110870626789222067038638561508469299993935476663687897377471346020125288413752919576716691214949309306390342716785680725542392811049964840857604865158566580919926124591141689369792855970394084911430918480851487721979301768538232291655259518005670748054453913287531203744942731267993164029914149294129535558576392296728722542836939098956233785623845751638226517745598934302757445756775153851876333926328847320078354438450253488715638907042551027251658921857613121184300223087146071171019795199454563540015990827954338065737192645084155840929269870414255934688231340911566877465151365256735639468374594793120617830347423960150037092315687009586833242635653338827915503220483352858335837849682259884781660441235076662162501500753176598665455577572330223481643481686521714151397052752825131107402896424466905290107771805837396889413436360659778553870955708695952906292141406569705000772121362401816095371288491974898350314959287012045073174732005078451129826143698999476214067111055084607637066977960869042769016572822637258560337620642771983644141132283769273075699558376910068932122051617479892960159876707031691461631554623982717842196534238034909721869041854187494240227960529354131110333376970118917455990197477128096948034125532768034192573736357293045612063972612761609075088597998266793510486594234133882942511654924233436753743253044511059470664474738176520103907869850562407124076575403134287787659146456768073380089341764366384288279686468724433662251943395697878594027699800828329241800518116829761037935615702978713641320267466580603735404983429768870627961569906374443598799341659366629690921798406179518361925660019220169631964557846260455600106899310089279469990091885752954853357840338602430664211627893156629703321035356600026689158437866876498572536121944168925198087896110519347540389264139383330264266270267081175544992248824564770832940911032506264910561667889047313692974265528887672232683532315372664654658764789478902100583034374073488528784952372650141735750350160019928562312043357993255057149278364221467875435271589714604158688491784951274256248636834839103777033878683144328930714327939433176798592786636915200238244537482232759123301950313964819417089152788010768344652832872808049049872466310485416881068052062400550245132451425153653003782620613450204388510479968590374904468949488540156682538743079473629628198239284168638737936783657634412787540981343623665976463275474046684474143744562712707107090195550361031391516039970714618455136382675378075121484990373411108054113607341131402128258086735496078691839858483223395648552063846925131802451726749950223392099067233324747105118048121598998003426624839149301466395176853090896102839103438227769873870933626276300209020479975347895871373155443309301952106702516555034298460674215051092909213580775388209212378153554674306459313874940373602057292344240419999070669942835919474793292207079729315478320252177982645036071148527557319679913962776609549306944452556697965518014743616397527263695460082216943774690138808957278699673737249077384506791577130093150562450050579051074506003346610927526186654593808738146632286656755394685502701406666221786031394644511995741225844703096843627496579136082743266068149661754819809462782339647460783078503071019515342000049471869340362133457471855498648372040302068788038676607407390933185883320846445359143291132096158298581557090351635145611219602256950762639879934061732621135924627002387620364695856673940902861373381059987073037479456264705288663759582681769885344042526001640765858618178744380969895887686220218255434674431782000988820338694299394965165082154867739251186631217777616833204648781159092014983587041066897990101098972568574274484327843614884327297804203718470131425739472469856170310826186951289248123042510730783210344773567299032394009425461202789314283541098553726953815010880626487688065668922097632919166123440217167054925227564313394333222504116239793379806047795356410806311123709346604086827358400105895972794494458764657985335773439750958696904869572997962120479361660009722367548672992514421468728983158366084988428008962424465805639989299930355554531381357282985316013594582847445380591412788777262612912732939459571543959596371104328596374337096672409799090312694786499003681209351568547275932952374558178345889770506293574921842662413878539796471859098817704930900871100978403494446979979719351320364572797766567231380372926111163744018913377760314344085477898128598797633563661926269171893430429037448938860132740940998547038884450561997544212811977293155758887202636681253910157127224909704369542309587083927233900773325719723720327414892181580335157632242831141789003742059382951062949268496840860713663324661229980493242559615299212782825352805333405510022469254318399464033720975612141742027706372962368052703293579575695257866472033513687944607602084980322734267911015999141272705563425023384026088594604656719185628695114421466582490244666607882695248480491677812468979689320795533970531972482866991127965501467094846093280308678312444080641788460170897441441717844922720520608123715338761214575926806957278881416066141226839662723096489895302530363221372944383523342445266577975771644382692243768755879852776401316890244516930065138529203221842091671089843079363015233376552039449729055709318645647141958797789760336536830370099709664318106420012948190910259541606421441059053699324964360245346820426297063283370298416156827666591931885207000830179974636031359489141609057650772755211653913999625249911246132836639446932406982655462529998234871273736460751282585433295823957964055058567231860108437680069798556363812736376885649169836609310168083544989799937411423495073598029370432281073249555446000590629889692983320252705781854785650415565426780816583501710895038222076609073493321491942753222727776049390946498977738646417805990249364175926482750081501411919888547502830954186615122770049761811571643882406146083522619029144004603526056542321322056238705873642701754577785239921866419414532533822935495619489011780882446817952904367926008059202511887843539283858278124045127314886221658911125062777531173528950019485534876951043197353938848030101531958478160270827226460166679565337096596061953295798590275121727642823639846185668107271827373420679794539083569393594752475635754081218883231139514939030484911788800969118590236953247437546114638837261654228955201996369976788928106682964599539347008942535525721810349120677418338600603400678222680743126086905885663896648661650220892397365798094122845054305116417579605141861595491247988926140570700891349370914722991159555960287846429950381810371526071285182891869738581642330873578081260289484060752179330377817914561082593427183590575692749648822324921010111264553110823538913832865482799740511856130235458325470317368537567556572925364032706077184727481228015893815691684994723632956795405383599757395329465779079774887860963884869561769330705879229601107406567070319119900852335239500465791277201682209442328540843428568015613893147256090101385420278822937192938090081608617628873492817435123866115729135212875313510850908678673416066249883990267776151404319650030531330345668374929418747079896453743999198278365515553152185758848796558618463089722634634250661242304316108217749860741257714291613831802540422471547392268077321276205312391072041030017892898062988200949179071735550156805448753434634399833709781796418778302428633478934246463264249567959310349803494037961327662464555297324789709330675475806171105539166690037856452223498510069560203715505869569627692635942422571390963331392343477438052844208330520119494367712848311363943362693918936659593196304971026682145279244183170936758661928826402570126129912277361420492854318752571753106569490964355599990431306993743090580982806488401428582210210468270373438229030183961214894584828484388582861164595567198390735070903458088880691829371931751111976536930815243659579309585750050245317346841141432923460183830631391674906777343234801771644042461335751284146064629797792116859989369408762608991524079461224981658610340605992027213177343768192711574769115336220229750847833816665201700150497412080278802284057922803142033468047601789961228024189420221481192515842088082475332742114282620690171230686858707012708962569894707318096403748995243542065759647735053178331730882652706337600534269600828509015047048981052941343909803089365769676522083997659209753622512622487208734106540535485706257959538498572349925074169296372078358152334354114176504473039493047409307962502089179188104579179528569667793221519415132810889339896526587385736756297321270221601257539143795086341557698400394080081275505604001158187997833167916439979434712873634441290593099785412710391145917128609209153258013746266411336319007446999210750839474621316068198214644829152462632246477156397079052918732495519907271332351214461747765246925847170936736518351789727957703796533551028051264109752369798827224210356768062483868585885236568194577434668624282728954359432353829972745585082617034198827666281849582177071948030532779396657848652663134836162581499530209336583925090674256188978482531500484860343004550490750400965730413303363948115989703326108116268577546370150940005481119171960257449798073215040127410671209133981895514103121762786035850678571719662388410613499204368437430663345088250765839432112328521566910587939766481323189902635262820076266409142639582841739120304643563820197525444780933816121936564486064896993678146722272155553180402159212227394931473824005839212677080677388563191704634589733681099486976903931098614898126431491426463677427586918022841226321581822026285836104730392107354834534071377392228482592503505002834018344369786287620323220919030094163576138602703141426447209307604300875494385767395208547570569881725820541043129236310964534723835456342054905104734824593750009643237068356195729249261921119813679007929383475270493199916145074753562819213845725885898195857433561620740764509641087556287289541653166338671399198556688865929323834394618717141716347629627763397077540728155392874415226245428056070906152492566982102379206407145250275680134255379211906846608024913245140170105841834512257279291407786368644435149382793860719237405165893423359449725449915346889285024660432320834405633600803099958575370317000635465797918229334768686456296103196812140931733234763275178695463382649667988948877507648692634461363795906460567819032914538943861333396419993934463392425035860668308414495365529015118553520365374866871664749358280237316530688135280283309372219369118232142230694760599170931601440641049923803863186087440692489967418731010658418572603433964879125692197928695005151270089367671558302675748251805361147107969341607981506329765214799204809070658099482064329972633940595186643392219024799999293449164410051225722874932295899595346557709470931097326576968266680110868744599350318745695339356552343597367287459622245913091790897026606873280598446396710455641985113171016351862190514850983803659593306517266475032438614049358665326712224575961028198026654528667224887405019357531737649478783445807722718680994774965095634682162454465135956137948508564647656668158925025235869606105765545088714463886821483111021641572493662221883670194605908981365626700175816510500401409729360266806062116735421534905681684917019825692583980506844777471557028090193767365508705756713352096860072165802662200174707338939934142121737994175770907098827190341422645471580863608393656478659758757542557422545227584833395733421160713112847007914584644683865770347484702845150588088862291261361774827041265588464539696505220310482546660175788047194885631257176499109872656201128933425334694445681060770872676726089633823973579979424685867876983685970751093092322847772797506927682395508766123443232627343865105324173398382990286581839750883154304664838362635751913843218836875877701066152881509623836924543940694499343077464347240234657189599674904707323489146290563343494425626433069769038183115793874158055250962426907664719993715949266326614825300948379690159404437920544535702771818035485596241016731942874847417479094935197889075100636108873685254103106391294633186516218926949327982477877183645815985480888283963648735804145527148833456978389939133459550014605207523894269447696582145858224038518797904110034545997492832386857410191996395266767780261286807987471938891410049097232866346478900671394454909642479022535074327582870169903869205588127227093005584201594240446967151918540435928454058855993666650148760114498302414742460084652520198797626584308482148164453681574517124112329637017700694518657923495820902472563026163626644020994410348345201485125677289202852366045883923030370733245354246129011964118085828797456634723300853123394707242669417333402117728208337344031253933219314737607164197501587572375068920896803905410478079742696750690932681661907953396440853398672805301585174941795497895863671953191238455647326673299531926426064933309988982710795232381032669314536795934966524957116681923131257648840259029725656219301314711914152500258400785813722946999102424739792344271394480623383492488129268281285527844885241108596792023026859053345238211145592645565115993314372169556118971917810076277678995553832898558121886222515943782759630528441079648813979132765720640488374490704128406010291586430620392670868570527220734576945794516904195939858507387672373024754638672193603978050212466486292281151442694817969649177506913447455190030722680048030553055595013454257793622491514511407163214371087565870750556004980485561022173688532558595917342960684178108872743704144022787064242361097003948961379187836681333664124344683870113833523189951550663190013950291154921926486970428020960825791188732888898615403243047111874484825962391097677766672136027528584823865994633452487577488296720820691614221756528684904209921365454543373515536427393178356119116715203022991233201587057521835729289325714876820418376513896785877719247810754451766286475822759586730200288848398514020533247620757677229711580678983145754039614421871601112148612243940324616418536589682401094341269583413562040913066223426901041675353236901405717610023243699836726309459966498666545218739008904125969490979663899150139363377390476408627331221093293483617023198913004536984881961047197715733800591130458005801954826176642462059793791244207868308005038178315106921208852338999940326376791685426533599948433159721016254989558699999105588208973181670267509752943416261235302509832267370267989120177750192425289801477102498312816614173003801627569898671834517305651862984375712711616985786606542158785697539144152266002876861976852790657975883386526883047154674196111561244406732557804460154528337161351530972496654258121865610043232736127379081855958470242952766848253946581037687287260007840413597163191048134499316857503764110321156227869897906186651211879679516785388882888997394599841847816893359133622887858280115433149531541518058389952829617479794717902579705279946988049690217308461483984912747185472536656318745149686962034708523343400107104031141379960267084462674427525745664506341598207600800443381196037774354669372506471933920301116621005624687393604359383837267987871286398557155893557124415193890420885387423968136305646979686865421730927359637908206169977565994896189633684097724362797917598596167319021474286954792731793394289600355756869880669799060797915930886320179475307979058221212794906313023951255842612102141192063322580511684177716152111626736670298739914587461840389080000966246180273455907892552244813956746876766201629451415983413575765955964264521938311791663605883945003445948380965438694997545793646732946434550602645718301055421727286350791887258058939079356950114159159027737941998249713904708281218414242696531044940376521815172045075797072504014182403081847232969240563745651991990795198710017629768555972419486466805888244326969222365103124006063618066082096487665028545514218997300227182773710042601811655406747849359461445793982892694659946584445770175154150092455283882730719862121542815786284996234674456294458215231207065998649881730883286022103407895141996190553794490784518357903542069730297199646482540077276583809422345415156488283623290678384886608364674882636316660795198051922461916398737310779222934837949469805886998020928764055552669001675180305162832049368048883417709960449023566586250575947312063131309192824524288595081921381421985453962734177654895441092329710350791113070409210579513729431243633652366668552213328849828955622579388214781760892089762427719849305130772424933364829849923719888547740214722708150508347343776718818460581691914505952351417296608438264061296294005558520973159123835459271586781488368961824758612668380563962521290973247246692517216746416727164220115990420117293252647868012724357525391356695790973001072569028445410682832574456694944949858729148267986565204851703756132998093716723251322120953434062829737178789836111315124206836576365228121198940953164904728674266315953346812867198317153327105688583799806507676128362661638247045790155051937757755384803795764152694996863309791349782652331282878458482005394942809584326325640815289987530522270915340255771288963553550302047254979930173578321370907744027731971417649735269828739789256824404030860629508918964805934255748891542235036323643840731219326456563763279003613591558290928962314682084983451500762319956079889712372034967723713225414847090525782973135361498196328755387299054863567565557680266270549783665035415924961778193634189224074432766127826995776266466282160410409920755718132398305040937148732866294923356100982378672830634175922307939814330553918599333571438187870275747933476978732921975403046367723243003451106655477918668064357003651373361838631317717223841124392461800226281922802188714272164864686096511660728223546179096076203063015217282659734759863190162583926955417438659241730478826798483756853072959767229150469415580015664525388660847291340188646613573824007696429375857490055184716912999096682486497389734570981093253631440406143853445789049198761114447459475540494600271612939240957769738516190842780602654895493192527319804961666135673498677334229315015752713037045886805356982891181499777334784565874651088083200436814093798911465946420632499437544463187131338188872927528151965031622016911587011348600500244583605284902592789265979032527973837522428904635423126897151123670783907766819111925727526044549380892809550595800071618793009071348943305725240164674409200016792384941246601289133547169096570045153493071702356884849113096537870499999359083884820114544835018371216858547004183996073939411065449475095035139885137639172052292974427696341891705784982904269753952539289327281216025928087613817056821204503418660005590664460084268818899355412248263335558177759746436596841843768702293232369592639592171255503207763128300158250439851122209138019605370135614765416344150780816926529673380838492125788089313681823501256533118785496020431726451958722466186372861511120403195898834123558674410789929995392390440613040071104611564431438128342225789042727610262229103469306832826942752346711154176172329909804877804531867727949971339717236382513283707209253283821884652020734952853039050727765323126417325643335748832680917314958257808652772381858233062651942446230237314554581495110392936036362994512898140530861394852746376807466781257122399668480202000412825360117101884395815887460322207866730099505657658411328238623426446647017314398497806123637036240247146452597249710616913605729476966400250373323384657758519930099355569548859565238430871841815059573663903001562816280911385922785763959681462997608868397735547860590295992022844736673855406277838028199772296043616556478917013376377434832919798189142175453606647814437784388592648340840789819397289148555791851224185729755509333293684388610151869706290432947476128425733947899710132401876254813758301586469929624430041041253304010249955689523055865951412662732793260104208019363982939498195348689987561270880808734528499195323356447370950622026344320665694350855309517079986026781142375518824271284022792467205080896145620564081762141679336557325508743979466717262235033645095957803740780031831199665438982207182619891941184570880236857111095592109300786789269419739342955479372372371029922047518070143661525942641173923366818392826383038935459316783997167447622707937165764301631248441457806454812402508134183514173625212140842208599308061543521622330255258004424644469215806802169872304042281463898793741202956478560240293613096930400600607817566372105085293734534700813032150547736763659735197663360426665931160854516927953081392137938172063163032183053840127800296714352661369676655364609368757091198186919469793042553892027400105540087861094445576280535448238134841061684929366548041789755415310822666010119404943609770865460253831742641683733623711181210730636528052840205992198094084836329840256991224499441429275616128467679834592507320946501401032650548590734163881608936018903232605589639654468263497200919349407730982975899688110980929269141273159329731613291137870298039289937391239414116946857886034092427389789237262220955626239324405773627357902629505720262615142082711535315273386219574725015750161121025301499779747925093758587716712967721060195413700062171933898954530366684875474457983862779540946636923941455449407324653543905646935358582625904398078617542448922500353960623278471468659401535777138083583574729320183912880773211145563714197770807534625647716029568413891955853025203916679561666946366198491664371759606765295264074687062616372162246395283875980523255110283230251274885976451013270485076697196478553548579726336223906396780076117530316231307795690110648784130080456186937108846900253697643304151303935540077971528709063001641112701439404460714281704431831631726542796864005703132808956061157606500975223425580850449742520860492936814804492325492811776738895037316881916279947520924794837915975236026144470821177408466386844458437361026772673577404086517602934435859661343221815688904690361096776587557905209117974728874784979279107787435572258879967963172001379526719154454259302399811957727651842354860106631036146715403569965583982251707528992399998221905607633682965070531322161413786664212787711826635591587067864745733232726735246053005630789011962073942927056179212266279786065332229474641617811007974039466263189091235053610829324848801362595825826953508383210222716218823376908154625212132157985037783758315878472448805962311537199835760248691002433757645047064937010450867360423215139764423615706927522482912283756971907903707197838865645634468431821053647705888123348222416512471284402044008720974844094813183981938915563011032034935544251227649885823895140948292254496335461763057389986171526262656663111259740063285821432110267704847671113559357476927690879276702881409475439296545911829679937764528749566423490123700551528781005627054541303289484976863837228876771980049095486892572147586954658150954136758491260529938160607237115089040493185890690566531947755491845881813584876636642219728222485938059582036475380319346666447931030536394436896219549776503058433529916100969845674057855407618821664177776766177874773653672555340586507844182603465761274125340906402270879140448962271084185255357356988480506867244703865115787595514280025511678603289203071680197882647296579214495929000534829377269883434362837980616990366006011826695236755623295184086458783668252713232215838806933148686412057233171992982102016380766105301894924301398756313875363448561648339007397788726255879753841914785837669736258742603312694330209943242574814210888485790431752600464233710107518591961599667215263138084240975164289643474721541736487967079641293148537366595602401042199044157059286013898160100507467258545152680522779462833031554420014140876979255383244112794245321344177972314240470514462892180753613620946250492476382507979312254692488584996168246457135346268985997902831209317548338830179767363621333402041235715960809898885157311708412208338367480543438927744683364269237839283285355596505932817790146081051646971303549399714467204406564477339116302300243621073191109018411884418963690316674556664004207330832285394344969610086331382642770189159838748872641247006160160979969073850633076692690093193448912333147629494211707247647411490822997456975167931433527013857435569646588380434824931906370505483061895451595646689909777633641644561782575846637800411290133833496864794235250213070548222139114208221947290450627440347104032744739252641675028774083857740054136563193790121028669183453466304904639871320429397800744536938122700836001160098045663029655841803075236168565090678339052494626684793169620721737046781025965277282326904062654482827359396256454062793532670398223594538978554871528081801116174463912652050703360506593796529380272877078242240847773287828486881941864775893168274370063794674422047333528806558512322451134949737382285332534365802038908577254488246166157895712763175619330590680071607266630710390069680073398622906460452995658397929822628694526438979925591596518244058426669863811829720913731249060453264301453739371932986897092434332350823723145377620821276394441645511041769676455563854775211287679507695629282165085261652250648157009738367714983095192612936511191877184609769570572603621162309093359377176155326913518146337488811748905525065389738342248699389232788867437265693850376724931838802398518420336309758147794189395950199136244946047122748456617791594444056008444774875836812591312824919869782299312812135408605186888915224043974052016876442177151546595113547662466223526391148095139740230957185599237642554703048732541933701851696709306596925837390429080697054106175851577924156841779907520248678652985910707985561346851872664362358719649427214455800355140412818353845951835444540870519082678167937971706858039705515408393241606153920589064016066614524282066527521357290048722675363985913686821314787804959707676773776587684493820257819633200922465806148974371281557423115111395880490175379347009078588763558382044264276055336978724038191724070108782481333664463955411886358333858142420631054188446344759746076651257579530065706254337937962932410162634910477013346189738035805307450310379423251400394589926365605784462975442432472794739127790873307181895894895756817426411610047681727779927872347299064948406252770750302897024436516248698406167097317254272315148378310772520344013847548222933158430376677032139506476080082489591185654046781320347384158965612612585383716766648117675650950748847092359920493170579934203290145553218396254987204341197558975785449710752432613692152725872643142473372262539263663292767523117872478018130736864656692318069504861607943784285113670728422452735795887497033194900680920983592072770292085131017062443238225987826548478768357388265192108618850682639638382843287456164459452795052255426823698981896233151599827398851442257804500399378420288041191622601885044220506503539264474952555111306219655384625129691104122889378765440168241116951019374736021180834677859638232567393422552771974104619430735015032491489957644450454353264391986389639703263608849839664046489492402527975799309403816998987404795243200882422407896839965892451346899427583974236554659935313649724925353102890797358032176595359077480937564828181814419142705646735096400037756863686377126202414609717296786127000449816257666909406944481708768717535841746220753602656510452021042923825377356357685628695611185315433108627990520062845640983202720744398977001028086231289312566199961580805591376913517901605598756238610405700727778158800588624662487433227522088315973142446390715897152917321900423985972226332324275779054216445986865095678381670587044975352699509275331351552391836899267246626110098525879656241874850455338733279373595570050319019403758157200658533475281510329781245117800407597199891400843871397219156702479538912267907581882799356970227488195046410198219280217969272254665608132109917502927603410563840951840325894152595428498440225920715522680966676489866736479241082526906369455351596550628631792307089383935038006297210446720088120157643515644589932056773679691417216480652731825557905110271816234613476285501044352498826832520929631540592368765391381660289883819418686016216277694734344566282116022874447209631337554282973503670547599305557861191904329496999804274659000592380335488047679171696697337659828357680584222264185893591053495990509851271294569838524287782318225553037268733852560441936238073446687106736013654814092376979362830101525541606258212706413233568529162653224511294762870438032976034144836740995901661460269314804735073857582202187195909372936189899743557804701314320690456392189499132579856223929333429981339978530861246131579086006516503284884120935483464825097873350156078242016054576676777317877403688467816092772224211116941164325417546879042589204717447774885287124433187077405724667154404092650345965528135703052931351757266290085538847867959546422992426971761454910179739117990297323043391489960843050556611010853374086608726318277931938730204165903352727138456505562480937400189843782519634704016014526104598536263322246084591454759204633250423474222352479335984345197084197563476019969620410589253167559878321774891638307353266355423005977447695123396135698475159964888807766864883472997577943318410051848198033402838936420972924654870941969591625270443501212950849183714021578526211248330991927111090356855370433356046718263007445826229005512062789332763499788033696379966605761231987821712943009541000463719860788074864111704125689728936264863006142593449737061285616366026605795195095006582630783983601372684894089054131638837321942029006965188507225872338102925061453123671308317282092979407420778488777453828424026218458029807157964450537859147134338962620941072451230744714835050075240712989064620218596304150059232459537598963357194409006679354034473869728969509261778925806305952220547154664502989309615615829260050592423842184539383992755604885346624844206945591580073149191188076328438157477150686227182222667122603128845866066865966933510251838492283544926935491757369371902436771654263094724849993632473058534957840830293737048840497918916145163484648738376072608293912002308823866306171467351384777598027514918818705546361331414700251215333538996609203477913943841560443139110098104330952170561712162160095491788809040803365772758783559700987669983867097888383950771713012135391622798569404701349811688895057260223048562551651834813572878825593868855056804294583910437878531126166784535169519331538962823761069553118589710920683272106991917877125572327305803209494257731120967569098997835857382892207787599979795867629860805981224483339335519931854545857395238725919400830195912963906087287802625767010475654195743665655980567908904867091704981291201844865502070075336202320400419216514800920689348702308200619816280585934226287989939136137134898085875891490624568560349856979656081121411985012348009892856544440902352884243676405681783783726542519463984332890281282670765386084300506110238258123042851252862213306964813644617479554593231877055316996737499442591425700519953175398247958761212416814788617924982722300294496558532299355560633845064649567791190338206362451645202787491641273180577354787630864892342833381851814699535922456622035601710612491247366335435999591972035313845977538062533332643557654608382985509065365601697401517492123330843523985250140133409281436328749917500062765439242418280799612159632267050405387213148497864689199036037272043195221896843659253320748561284590670605118792513440360601651406522479865941291791094055533313961451862019305193721041624192963464696244500150249067374749755880341299777836715369962225874779703287358122074608717158474334375957463031998150038869525410814178488876196788133950091507641391810214114596274708465829890129613758194336851905319319899174146879766929467556344441549895833104520464889617239593400482099678251821379429030152519040429706255184481182234799704066049780385806132884087584144381080415697022329470397616518001057478301852466086784605715099873723425596867317861229915364300370161229429321011445347316051845780746749704071704158798046536378461157517870984734848096196958148646806451367791956587207769802320453867932350141641745721019517084297333312410292498163514877336251350227243129487711674511126716442631992845543134029947001421492037203281716776401814754837214501450399091667830760882646395022514626919245138717092572252114343414456181233191589619099170237228147288588568749080223055083550071955141095844181498366365748940741002651094254606225175013214962290732480772487901038921463022424334972364875237846503824401915187485799667096523919985143576618254777782139301089288656032871476547131888246221823352823390206688727335351741458390269515681368805433298382965042820005214955065193581067287309003352347174825180097139203584808002431406695918296358949749040167098928472882400100322677276156752573708641975612056634829634081742616133268931366016887618949923103591424138271069663345544801645857545260808111931773468518602034728341202527448654558797144097794705963976594428196502974523935445514937349805707364959077692308951405525044110095008695795434018933130157244310802496709397421265036322676422296075512019587982554889596361125375085649706158136939413974087636348382120318566780062209777037349974881906850688533745544373051733506486869738550434587175883482805498069333969624513756871844395010237570343035278710303103893371352635312875783260286569388699529562406322492770285005131952151833233694181229471805227692568181357974107204147213378149714436759915281461726772771549248919026677545530044058293039362998552495348717363520944626421880714050730234996896479548453049853948586168138070410022723071443780253915701406056787007109783106647107962697724377725970589273482102347379603364401516182008300342372935972660912970799926547089950972741651093348382427947219585771788157722624961060706289255172587926958712464808007437495671017431307410329262467018176746181435687192016328106951235145050568797766992202575562453385708272749806949536699747066846273321749950904636319735864262544351610905818094110333368786357143571869906324254058838435579469886926664693370726917101300407427577408071997780219395386129275569622146442747498978405318603644616793743571527128734533980883111774920501426163623070706921372092793542896794989869439493302171038617749612960285995440341828350649682357131581094443269317065693276615484887114450719622289111637246886617894613826567738613571368931793943293614622928416623149775374819206309329085926380626928364867909306188987751374809974344565087335380032572932594977030108916877991081821419442220378694663039412434084668948910507208709997390026179101717367743820412991287360321801465505467877794647381183963990844807206260178236483116159583052321230167962785603469641354960698280060475435006940576167445293390881931552355682789971916572666601350777446549704491095390962815740459032122056244501811101890160110620144886439724325985721077381467120425921443807677644872997642238627145103765611937720134540135841044627794128090109754167436088308403604084957860839010697142828368218419736913883875692884487988023762877616080220570729959964990460037083855539691269684492601776817475561271294261414306889830198273754919202647232684823948133022675169785625504477317664193723406582453935191513524000377702132687244500053889215757318914373126944913846698053842376617245956327358130917917549016369347278274187752119256406840633700765652875674230092690997077402093097253280266606496019577126126534917002450326952664210473781263160816727191516335146585685823335354843243036594938223021702108102399446961240196135148088345189501014336693255313906654452294713637956732612411402938240606149581434740572115939400564107033724935239108016721996019002447176362094328089094233568180228894060023773633260601842923985110212885632407719630812260198277956752413267526973611769091300971382241382107978923236781880132403646470616899136982713873179113188489125961348130150350476307756690063795434888746995703378554542863569840336475475725245975360299974961665101346538459260851036376383390223038874302528839572556459689299830682948760580538133491501378783629532724518586227065476365310663988426717846392124612809663391515672732052386579425822574929874247763036532297396072684486158927177910386185225773648513280909518748519343003917002275097149411743280239276754140846067787558555845598983759249347270612724279499120067524327687903309101336412655783415408318883649935079639343817048185864460573015020381496707822114496957717036712441728364943132882505140453261812790438996902878239885417432149119928574309760238863122581863429753941509320519305450358258863164711897880799503849369490998391547014048204294238698644577709821980358367764267538135262293606687977434248874582259759591664588792065246152304135354611011103926306421553136445956395636249779299394406338931715536588429589831741293264995350712953842524938633824108906210069473143899097243001174454875784255220991693868732169384077006706775811941749105143910484433784133774761042135531578446384453555600287900503515133350504468948644198803820773485007253779032457251515402000714125382284482949224169390825501279832638504623443801211730653569633629622895915086984954640939355875776272744887293413687751295277183161590940691184752556533440113808577042181519173495877251793181507187984501271726161843370186386862488743622751366668444462608620937055490913695775783968818886385341636284142623497710818513388628831516877687651991435703628923451773824253403773302160890818153790485720214214912326500400964188607873353804231815766662182064461626365997225225137017986604365750932952861052468266820289697258887810549028999655237639971100669270618057597499866124839217258820525980626209918434162848289781099684340487650563786765694943734198018954042670300177301465888882186056425715223980266872181587997883491813805142680631431500193191737769516370363451661117425451819071027231815409182394727562146564741990747584087563344934446660178047446694752684711582569864448885048711364483653957989732322907184491174445807379105013220466105520850450782599543130548140981298890862629845045402037453919167108246910571020929396501986484539876488373706540595286647941321257217276203661605722357301915101500818567800583582245064685850239593223682733218582395472292615853092802028858155700388438136168119311242038866752009899798509406417219188681031839150778678334834331395123215735866992580831315855724548932075457503713272727978412684053218535110940793322497574408672258029976421945540751299909174626490794397497170448403281756475699714525982049004296071117299557834958880946907763353373133208228962348109773605992489622976696188093280386800293633463607362462305061068927522315908941139246695507897572812488006185308319715427621385367644844449825089695036060204750889142127066267369988361138921114711334374362762709194644029189448211863726200550025224645996201203245912069771772523549820477391878446760465265822120506254840681313735867508175427265203470802841366309359028174619836316480507322382658083233178752259563191845308690513860799494388489050829856594034197698620073458160109099053690928931558989111807062656960269260096666708081699214071968689771274254122248206202794624254099069715174551840831836964048150527893910823598018672609301386466551859147316451985442677513336867666408516721576124802531471609455398110354436960274994866072072780675894051172368490770581278776721354471986400105927704064704954758096094423136540438692206188840666695868248186196418632655084689191253388890443968043326650778156000404858402060798920112968824231814458505946769504585190007457004444300076542473081120957041000948002840390434855361277777749996304637943284226423364457453481557687906542344524547096451432904806419560440155900137019309051782752808979631239289369470714334739680503155410454750449549501229371003520530544730233107897591688174797742344214868346822803364271228277913455738287388950156013677622714475885714316502051955785185402682110213282574531512507776027030798558933687166488466509253598662102441735030074232869997092672071661921608008779293539593383087456618544501377646403784664693395469250896347642662642189903657184615519381621261367879856687732340335885254987345689653392355044930452935764733870312870313996866033488878537415432211687134344549851219947381357794068823760118225295431280849330349502766757731356663911751549956097293998813493436842958836537187654652160191722852729917983894473775985277710350413974109629216619943953234417149275283171879748389050184915729448759501370767511886375973077963987915943199524173898979903780712367123145836597149374952098426756291551617610749359423425493335729432550141496167575985254303075807621084354347314645163088939755147377288563807635938699382495111452280294589603647816770695674674784722434666495515579921145204470874436216621583203411266715846840624750581904220533867353334773684627727305374397612687683693036031445175096942678184468798067925734240936633420183083253769498214658166824440110619869476763876098884511267543224767091899272208183324092272958177413906488306488724481282152835461878666036688579392266491078417737403181103284809498696174867051322904603827059123811386916374316127003897152817472050804918594938866793878631738366324109032971367189424795898832055894626308158015944535192719536653461665001244651839925559792311311839500950713314083328265655623674570730203944968453060663055432775429416066931593993075438931269069337331234490003374811771606229545847100630175458880556349386864694851159431124845377687163276764005265843101220249225092102990243263030932075754486191689862512091680203854989186221573841196142963631143465582604580508314345479029295071892382525046004801852712646012874919128943152645810024640380128586344134965190988574166378347932321390492404284574144594276732218972752522710394785695280017424918693400499336918979503585702556755783128283034803844131801576643455110671284753442752240907910607566344175914476148262261440642711337174965890393676829625123095934093045824095357826531945643769979029321334543249794402869032242762953755260715347957116981874936410200782663177463017352913962034035461666713080837607238777174934389941273617924644012186487508062424655644710744803166521815212918933532043626077288648361173061599504818096422941564225772452213491769665915431276745525079279661321789032466231440629126516385771546729572531463062399228191847057052762187856634240040819554845154966846123713071198461259874161642479069049557576097925096271536062813502262032402310820639974796924698105724110953501889088266139427267664054281855841784304084977970657370394318451910269083656244191324958190154993670383000040200729577295179097385924189447764310135812161470043173481741308880481975042681625836237136873856960155402201548676043512814772877181556399007546185194076749717942491597618786922097965467772858069718290338456596874035242327487729192987257447474545524694415533147727321627318741613618864362001038470380822788103423590204142383182822984643544813995065904062058852747491990426469906429178031710219609283329461929969149120485483465258541119935121967548126748605387650708289665872412900080557520154436876552155295049767235244620923580719967032515193507165818007476681023308157622112980203646146340551252096664327669360835566443358145940783699971321782483540125493610821539040962489353120149363932936338508813228559118387549658562537166358393272061972971406808856288038837483250159260765646057231386411943767540657563729489300094438720527732508181223445648986468712072094142953848676857908886884478044451411372441370958327505216862659430204438447330080496628047264129495070317396802624984944235659723461777762419571176208533046932236864225556141367081090955412248952346844311640777475202299024796894328331147472336720031078382444793533481022892544371124628313066207707675789966538742437286196829560703494069519481845461330608406481810011872516452711278071611354947245171056086142973032280055491878828132259800968585826193144228678639039320944417262111712549911257555177461887554638196873399325455640747001293791791304255074362338156359327824506291173321846651581520726907826418711825032772458172368843434288157775278082133150804454794208813486316300723427201766524714873308993479205267761542637382052760418269651152499539621195052317671234494812131038056941101201814961773126188073986921855280823692524765351014277801674559031661334265189162103635001965546079036605622421915078730483250363728625147158918255599163027981320875767427666653795012922455454950523128827340669524460890825220379822689042609797701536136586561888212494983190861455865121824852397299059518648848856977574923938061198272358808995009876912489484844632726764108965356420312022267438981251071710325404684608836819989588939050266018656658680028356378819125825819569898037513468424533729221397653069717108790845745713256697602758671101687918097717870213417990805303934570107305747219047075043504799878818471666335907639794967680942580362794933354667472028820418039155990989793204725491025953401282722624163189504079351620260801903635012572767108604002524687117040664530891334320971692006800569097138684919607127313686341289743346869747217130985123226195662239815273896809304858858921763174866287567405866349517980147665660236263773455109275048296319350018216941632681049787196740483323370222296048098793337212972771922562979479369802262510391594228646874341695159399192035051388150166038860642154077549875814436666545750657026097752631797867025785470776105789990561633199234995325856945667548180902321220801749785776197269651053090899511058390744134975054641723730498409640156078469276247498768023089539953974272618234687633058754553638693119289070649532080168678839032034149248603258203337419458804108005139807380042439446195365211107633099352723315136085603249101895796091520647281365604291594022445759312446394661157398323415709201469952281137619643050719082711531568230588296188616723545889466403587202025059313029477070993002544077787178326356828120338722359024202063789623620689344081162280792887729425504607651719092771684992514707436817501438356872340530531961577745235891428972274701649639301991573846694830814295759172053894185643834084882912748646287909010555923678790119288085075870659222683000367861418430075802187730103123528940300963173798317820172048797545659827653938654854850531918896857899104620304797459376616936463169506744481771671532863909027113924269522383492232518225624562849449968689893733779153497735384706295661085375895444030466864730049312348571766645572443191007315614861888545196914830478770539763415717964339803400443809559098106876662951807547023989793779465330081669424663602649100124482614508948367282797133206284883287500934323250095587065263102159375019218669188099147031702018532826214148270134558230225686214048094516197521175006085929689562664363715834445788995269661388416528208369377171539044143762658006538000445340474922385400350951312430583115805405520728136966304720105286196536846353459577324162273367615276678236472606024198345985240599497423941187918830786226760348960078666503253614887571500264370986137530689396879298049202695346573698364684293752049779847884309556647088862407868535310282026582419967525494044275183231673213159616622592525369132511897956202058856731989795055757650564161200174743605569736843866872119387045355600696354641974672871571974910818416507175721179070283497078008109002646066992987981923863088988797120548057977329743985175907271459030316469009368076497986107976576058126584644530452499286597303008262257925457761478546963158756880716943990024073433730935933379045880174888877796554176947234084318215093637116491264426144059727963280838865919045092691644471772536373445599797919425458566676072587568134429783207812850664835505760143438061843217764230165743602066119942172679027152342317108026685182137850169253688053919646771346335150139942314495201518653491366229055756132872063862976105289560014645558853243695138614179122607075738532820009222289609503204949388467365256307603631127486932504854876761345852043246274387612973228201807440997212687238647175577742118231256573843218815968670317025029436669709346938434900435016300307360301307102954929886510623943917977386894870759465073756410855025938879321610989489660098653076713946539392154081179144027678872229030761139199836553000364822517759004145731566032051171006430332416766416345711124864002628266865504588230042024233510549315327886370139430985227393482555602777308614758297846378258595872338708965347559902439371861727461316438106985723133393851216134954473259309832997134021016812951938538163431525001468131306660731210494838402333678285325383565276144256926960395436963351749102336399109205943200485866193852358411047184949479302437733210029063965372788496860292457734547134806516062429775143348790956870247610681299851187895680576988493136184275169325013920326932357342902771124021941223267163025045209228584242349341608155489298469440380547957626658042617500676031625250187008329528781850918233878066822290305205737095143874627808995128575651688022962297221918140221413577283954936664334502175189421761884915059984452951865305994434520017690361009960144635580795165925607439970193363182202201435534219162824429024906687028571590031718340101336004733696270813395629416245075885968783440075883046136683118758476210684407557604436421315481274730113695187524934413818147491219140835845316991301808393624357831760921414667202627656576531431538487553348065261451343893711928666584623746571925861953004284526840279459476548247320662560242504067491176115177290993255231645154120323763551186097676428350079270904255683206437898947570549565111004721138342223626829876479290670606718947727612378032026567463225583365056890419377767442532689668075242283274413157693071503675390756851944794867447989037556010607271336766923057565320955006291825363958710637422914334576646466719134455295574468596371614398576935647911762689362891880250203276528241307457353447800008407205456881841180079318044374158096967192117832695906963487211089397108228516942572282138881426077574677595403409176764949576189550432572893669924712666153213559533835029196123475017285935006718151837120409913556341447604883540748430525291822118300318971489431828198827649585911529956582189206234650240549436993553895807120225115678183442096354283910993622870772380217906410357783870167617758851420704411381167663713921672993075737745122071803651061824206892196598970067832793632021364076587795006576294004392260186310193562154413088872234788451845987803280707157382466214692273220742134349509418523945688516465927514300898832707100644957001868718675797999061652923164473323726742823742081083252287964242931854569982872799424577105176713603341044909810298978299873534506613011902074127798814552292566872014657047304375040000234760526151875970409270972249594641837792546567081863182454178928494331751472147506337023321346409973373892633239298631430103681558915577510784891948395186324026886411454018875665508889468838371683091232682767098878843148189300747854686911729740656733064218089224469036950844765739506544016942364070366602882437341160737054960609167895128175929235265730579655557868645844626702268903593382524754159362170029363611273146839654316157873438870532067679600267770003018060445058283056326773103312156730383303020668863454409008977448822404627868089714534090176897209933657847504034628070608559848846709146697611361700225741101372057497715584170830610683626623798582538123721178870478630184808730278309613807767343358614296702898725063814594560828951537026586926956398943171489349095432670070508249811475249632999089641225046638970772882772913610982696718028465871687353176274289747651351761578477093768432810469072951798761120514794450788958870505472401915433809479850417413536424312463269671074447871256129065050883255051240332912035537895164272490823706490477946734250149437905107103905962965378367529545302375623789187065428922321181847645579206369346396149474441765752483483235438673797520212514437761097060826634426769741994821512117512739146664028412169711724749198600047683982784577144108060335055478627121279924837292153110230477778955263888700929557951988163147013692581992386236168338000601298213901138840769482061630566934679884646183134926166600674344188814387715150822636571430873269753585437086795393372570216125997529108065939555956245945115912008143681458396261297593317110720686171362737767765407703909253850429726833671590809224929358212104769758931409833437263521467048768603484727948800223501747660027871101004064418307803136546696425667679347348631651582626993947125212852956631640884396068110090783160770044361131723882951528531747104698036110613855975140443007141803067659190339793698027306144666737729222537694440969241343130202432141985275058564880656856186992184211684119762226874965898728986884985543110034299503779359468635411371137859519929977767417922738879186259017551819825715353463447376722691408610884733775983108296633989136577842641584417465417672105340420210698328549808980425787340173696832087958091957417483551229409620869184332240624348965333670961716568281732825404556036515928064417839796864432803058281284154391545017421482947857139514843319221702973136535212564050708031761271154171016918850163043783259842555363364277015427744896395504605873957332604230097382386722430610479160098518905748136673945695600117321487578406864821287638019798749774505877201562582527661897935958358619540944365003231468916461365171494278850181940820686965537610139711013424810223530110509907389700948673047937802801397617535916621709989601303992931521635183997604342709460368699476385024963876961974288097842829142515424824707601685016063201354806044900634000519186565465844122731512985152461161313900184303481904146691958293846145454743150129860518896461135708556297924574589842217943254068532385038752643635844153320221654983198219449970827709171836791087938158147703879956505914683049417731625166061818026444063135367592042377482872991258167838766875277656981978334086771015282640893247904754330937244796642164717140607781271567124981165307277248098722682553283439654219804922605180604465918300641535966678766109562837279963588219383793326829076467256572786389255727027249212914702448029742330694645975252895347994558597313899545057276796090265920678096675488052764261529831754419080951921718936450257524333788696743006042419362955648959767829385403384323733911519725989958418280706089295142586459405274775079064519569862594683344900222642702479686267083572978097147404262040744016362064888116240142429969148955932691988421925055208274384522466288740522611218118396592085168582665574547456692063056122733363630556399979357253241041747922732887951189463819903618982524359064867969820387110327373595806169992009896750789689368443337874685155338848959387969933650791291829938469106716402187722207425239296030240809917519737479518264299936173026072082849785351821492932479948576134008010818094311554665401294445304221371007431193842532775515138967271989425608046320363304159525154452600301064206595623820946402224511788702222419126130206717231720565994021816411949359060838146051200455744895452869979780762740714729025791047957399157240537505080575667916557137017131337881079138066427607432887587304721566667506697180934185775186530350899506960089614230943540837748396636587860901656677181979037421334507119140312124377351516393798626406792563163199716197139160187739436532309947510601582805577154891908692955239792302152002280734605440480656465203103505987918289776125365895573514326662283942516437004275150069485126239532873547083392588400470895313897900252105964313154577476852897506879637225739778459983157991630687668361473394470346540849511392676224699928342470312399635330588036970723563591404346666129376631033768547414019108752700930215290705408552188282424347192911346642943583173847658114388756583171559655898617368095337838957284581502686443837556557925219660354974075925309437417082422840412653727457263708504358510510872379589223856063227664782983606683396886681718294799880974329878672308161415793929848704834228589251160312779274357821268323163397892292311504731961436081977338651901708933486827105804118790651966142894125175446025222915896737017938804792719805659016802532902124672350078120348562235857401894964185085554237341140021558285280314509017042176948640480595881102019643064903254854970134879876236911264593270754394639629480844998865045457422260322920317697707103881932652046152787909217941981512338915199852014163433324777634128021500506503238367539463682758438066518381887819398369614920545553599329032761625014005092180007172273201749403315189802669065113261874988225938205670341246959317290081450271630374182112147381589906487715499369550432664862554044808509023551125735973361738307880142065146062956297068644386716076329687042771014385792281354920484534566472913801274234038095192504332997196902751440364073635229579570059177728318268918614980924020515007641166858421482697351656394301554691977526130367791948298448296035440263621303287268528677421851608988193506045750486690004825415353748156349448992428102912335834568920614321386224778066598257458047451565526306204540458383624417995541714703345303119859943067598707028447975664888546535095953505761784960075904704830079832939574319739521975699050986665476268281555613340145577500169669322584422883464705509709155940942324415213522984185676703055279609540639888362425853993920704292100001923930440436303363120228185348513371505871135379080018956647501868262780665025770697397853643043773064816866017042558485770409571006369898053114732145858203395353184280488043756573394785843942049408841900143779889834523103096691617821839500304331828851854272853964855779840711400320307300128074295454391673552721218733154327867751707561855291987969276468285650819180854251688149919429171123621025367546823257860530574888644987062637120235944228994532733416898723089984483027256716676760207708277411216462347904580874168473619239431187202445525016350103009143280840480695791529437088321680839877181856015564568233540049749092269613378939979262435238230238305764898427178572980209253993909843315307005916840231038654610551346485447196711643320768603793895285798208136605856040749139522381448387652761682745227490344703193587634448953146048018000426104964562414821915848979629423107414828518507862278201378269411216930499276913467358674246723510406925668160671060762253460526288826387879112869463259202032664441171214142714888055364970322772036766248057285562162008732846780943862542919768681513222866192425362538733976234436814375208035055447829352464033532073666928838475951460225463225625129992139605987864966907400203105357801784901696989028453003888857546143325282976153151033808903874108297032974572502998697881880808330411773879025109810836636774450746455110292534012864536194802595983855296909283627928815355955554265515274425419195996987634424959487423485678561027184422858459231098295531592063974986255974192975131151710673225638641335214361113549178353168490170528667705615590619714646544107271241667953029203538666178232183960585790668919213166788316384189399439148740373980680320826193536779319117741510458453921754955593606074185315778840623781787412493306405951389624304160668373174308255735960992251268810087658092711571973067922959804941454806133171582586750407179821275151101949015947317200528234776754522984375464815122850692353295075405862389120435319786145119517279055462136569758246950043417324689292453469736437741457443556613898776848961543915929026456466626608526924765789952521220288279869921185930312535415335463602755783898094830550650433657255453301926283534281317683327139563168763981566491408855365028543859542765082225921146051526674451227171718939834898660828018071603945611571862343283988245635449793455570823779165979456713330397429896867982925869068244588930004280752737521566740785847379032224977157492109566794708277290209806418956098252836941586061151035337215235976882427027043867863194154575015439263641726416024014242879703377000935072556035995698773942371529573718984555190889509287161140112620543509566499472790181495390114001670216733711247843446438372561975841880186913414099831582814200410599272322437154324506160673866824702094605706822690986883017417397968203760094880544250875202211179589806288191233982764358543413425998028785543381623507745998295966308497413676548296557745627781445148408868426543251040051622183256245962892242829744614441642825007122630466537527509845991896651487502690727677480164136273834678502638276264651270860206030098203631611639887195054306853484174749773559859978867739296525474329003794038423855522251463881168056850525390631439943197866521725643544356805274286630754284144792899641188077217418499166023603726504030896476195683817333675164603409164537770695756715238248328130255734882886502922041664872708110421220951550404819712134729649182636098027737807224785232514131309157331332609546706048559473075363499880642131313677201228336061141934445159527751940950894135125144353701729221406270130416053213105253514267740503940996575821189094921132215806886369283229317627472749094007065687157385111257496177638462078330683227587466728606112215857186554929656177879410770580473723459116503654084806292440069755809248689651229215638106379204066010313471900811964131972999193123636201013680873595145803329496173558247873263394242454164380584068533811139908266705903101812950211016741587111218627489113148444258690903835818353780211723484607112062459886538799783304186615672964724188819744367901830923098943495226637995331156169573450467226825828538736324680441189465007308140584205280818001011488902605249678680286163180579107283928915333708875855222493757031599480156486356763959210516306611073977769668885832100909559420513503942279550027348502263370680343195179722290537194088662269445130212639706311053605498576853042038116907064410036386573729498280477708668451140611500264671947631554323658284148366530652677067828626792677439517741745942719425766261410573640808740433023074291420658321598526371168037543650460575708008851771022050069345458617208902572614682718873203999554124353513602040105464764385354856413663829420402722236487542529230949081241819327701165767566031144897892356483594597881801929888772858778850332049267392676828510048969394477452382531979891566616488063729590225418311163816966962295038159448149473291260902586158265325346616746614330100213328045984142922506146553509199097238234675321754070510581367199111302877818294216517751638349329158733640286525860668186442400688929126731599959762113788376746675320938036572338518395184378455501256380380712236702722774724556423227358167696789589176015450017397558355108913180852816462585413967458216843467070739222612432401905929438485818199346566100147083733635007445574402067371787561713996567608475948774118009019733482815400898284133914346727918398446591493268490525928210800265247720652482440503359775319805325926349251785260819718991456787574419293095616720131912662822961317832039329583857270626756879426889959978293134163885929175387696724691198552289359481870695798962235390783683469324596574988044842264277089932749663129578830247890360737933577058019694433096987020374204703263122641834845083471618192829672123747083328776876443015991423842811070104323490113427629329441096274405902707868282349747348853975023775516752316765003835509770667366538386277090266377439092329284272101562094286864240300206430389613179192401000755381695248963729717223563207479689571440921367743568719261242406525335941773335649883280275332224240089215805912425992623873153584283349930350174169816334380992636915443290937358677461948444939370304603363315432955061646623006032421423733462261915195886061656023485446164375397982410173758293939321240947554208019209302969443537229908623397564347724984895153389111004741616469827956022953310395004182937396511447513003145653229878340260599605843724547732465536650371225182285878182538858358441754259252460812028354994119385065127468047957530384569908272985134204545411195173571606390138857593855312968448609628693782463916298947383944261780956454179007057174543324271977822272819567072824248757179317545225220926762542874648794393834435144030117577624273039714622659771546056901416399436389588102122489962725593593324148145135670849081524579528382774783001417587885760384224797050875834638328066227107507640251850291189791274088718094973841131782649312732656112146321042447252816590574591932170222462303577979872863169379457870269087808694334887858935143120819207182484601645117931749327857306639420126355436797080977833866558330625930830333650686471677093926000185354572147755397140174008174862141205964707693187353172913498936799744160992197211221647449459113189957201291166152148036816847934022529453494253202422064364244321321320223228548639367842777414535062620029162722649310496816847490654423388474410892878363725099112704973317468112287136515857409898554091112824868664290869873954132291448343028142607583624290942751650300848880058657810866580956551497707928515999267132528626235571423892292084332881924049197555123551571738032935753670679876008406664086836285281086376742672365179415740169054438107961121379863535403069015254443532415615318145451843587992224620366305018667508111181797990412857114663099520931293884540858457909623384688523819056010714640611357629985538507513190812569566806755721556835279413848789802293563308521665471138618684314342292663422450180072622993959271917012712376678017717942333534386965466612743626904973141631552015714221056941175309245850257225828162645744038160745494397854233830270582895066379570304151095208508835345444396325851217677832693391953185882753798157618931025832729115067213640433596587410322905080020198689689523234505777329729715878216519960633521200252830822893808276971118309831844520395207271029496651017312817377114863068613969543073587010020230352178855686850058405321280474447765580659516079767178452977085643976568127390423767147391692838425959486852133740236530133536701521320790571285605696328791028194081151026334283642614406459418501992744275136338049481933170186794969288323826424309607571529289160519043227336099540095578157209675733826313844803084676641622802414596032117054168019800354349060103719425821897932916306504169834546958053430297131001242742294687877365257594786983105073373599038869847416745105883925676982560676566453237956392150654866610646283666667103605054946095129560839987444024633284282005949743418462749262914073728741089131138723863784246032437902357809363859540858044475674478372364338450995611370146665368520562868764721573564426351083392457212746992462682001429785736816817546011970329583739250083434868628320570545328635647898774938087055343358485257449868198853410094796227922507462475080296667305466480840452257138490512364601438542126655809163226671363630616715997077527590052370990253125592310879918278722529020422600347259229618422416762791167133976206677662274482507849984088960614903700833397457166391703084433895619250954225508662921165053112148887502928646661557902789041658460038573437521832026231027973381358542095193336293795816945639349431269315306408162648322588991527306031626568344831356478761585991064596165072488555772928879447927308133386967840016217640379072017328400922431226863717809172659874936336016646816864995190706069015206462411681294738558963211788280815187011204989093325248354404638389805886931597195075273883183738034027612095357286650052661377639529706067388023335108728166419295061830547002278861025550012947848784331067139168572342718072704722728069104946273047205794235134733796623732383360547887156824725978337793280931861476874209280767536651332662890326555976118812731043644706459789469856898177022816762178627984151989232995758970635941878710597185291720257791339271784050726400713325589106519363604208916394641707298132600655224834886909370584085194788648596478469047713979125707889831290240298946502215607496549681189241841550007936260109257877859590811852987829216147463355353600822864041512029158217743747727499937590282563089131379729357652782015214885296833788138835995636628061124998532742325770437222789934290941213806873161108788284532837219644067257218964257336513934151493482674285868514136875541216233225196584323101353487931782476785728179485413411752128764129577109790581978751451058253755012504315288486497342120367734983523444972922223343532572651315442401239215894546913536812017595864979321985477259805545681831201976022170182821490432277081454217193536447763677323286906198541314629274911843025754370220642131987276016095907601303335447830687274748872082733098888911414861821720847206341566346074091940548658336969011061901281597544104011946899446696815180401542557194592538068989188275623875356260222988720538803773241926029087794603804179800835020652283046052663744789692805172649507920514321220263442783691749293996077253611200057803538534466426457559395240361653688922189028913712560404841020480403672778326034516400518022700593313617882468248472509707800491023585817437230528319411754815902867356584921584315085905366207626530035714971643714013257527121609217517361306164613473642257796713497314187331607614698746949696397584934065456227417633090965566105120349088061579400626890093505599309728864291379389331921620099786098423164935489614511864040832674823243992633475318740638559374086375560563852482319932236801952281563712971608496898466779712981607978472454908629490145513856625735480000508776628967723627955428029017223688288582453090042048124343299164714738556504922211298033667279552768191228116521690373997780894334138688486101978824991226869353241256033211415946415058900353726312868643121157345018708652394326988445489029306196227224891064782360534192479773399926195474001380016727592599888971372537285960229348174369707894126126160990428960351847580120360011471859389359916054430172457315272684056545392334106086450093865378190647147675611782101317460387395677281879246149138844827386268027097064599198180328830831369679260565371914334956985728120352897668506475973401962632825048989780277462112063540182552557478219508135277752906630343378860971956910719850972533666559498594845608630509437167378329095548471316537454871058386763937937527071995592649648190937253721476460936273965511520971827055777274540553372456156640687892189065623151147818189569036687389549106182884133881060358921043128520395719235353988849402450809186777011066353510604063407253869343215135884946166375709175087954422558076162147222897093604214597706463935560420404248221187442323197513739131516799913852465390246634299493272874974490498496892253861502318804963205196245227959385724806284236257109281253465286091417011757258968878056212604790517709066800833805058962105435378457296352562365490950596050553415091977131439570536392122484364279882988553642295880810919228618736224415318213959697261852019192712603873420862651284703547018919257252633452720623058264584532893427647786175560922555928412616325189490180662794033619840411659547823623981227488167748591693249288951561536064097006241113791161682189068359511029708320464980669397435542122156718555186111110374560405573833405325603816619842576922801950091145959092271789165719436124816875305635158897997795477314274215515676247209160539739277365593527812024498116042117030009461784699083960344513638206346956091995196677872190679487567932870264920167191992070314629800794473444901886109860117579398084438827955045297504097870029765932670865393345821329128252156035778749672142614060536947240928953289220998284979365344675491570279664834730708233866343128355567175208123584245637255298721291159172510573716856036353602671623607453309439231141093802145302535535290150906150354023384625926233434423974684342454449295180914237442766171256738246504844789807691413560733830893835886338569926306770869470151954911324572779969969234168285086221021468372604863345152026180585622565569111674490620096710316470371491848681060542241824233076811177606692870139697322424941347663123603394696232799474957893604886472322911530439223558511334047730378889740557480507157932079447111798036980010307790985039528360457092121980187719113694038851579678572775268250723363608246574290677088069122576099669836169579335871661722737482284030263235935393474455791945695146443259678202552918199169421253618115050401073968702312177569686906969200797085198830783850950252147382292189304708979965721657934236639774709229423983178827155626470034831870187698764592863383065010554853754093897814672591494223248980909202373612538311289131002728033512775147248942326897879468934399458131753282910783429285969108500201559313938374208559045297794853094858824873632627180579933652113919766993364591219376958455970216868960053803016157629039207535169004512723934432268190394179052153976115540209218646768381672458560538475720297299071742209256572091174538359411820654896917229750567060539170195811468684282069712820246477490941487664124328320017221321683882250490617971400591874437434734145522786337680234846992029832265566953706391202900328569438212250943352855630303491645540901391429203400334003951231630510967970535365241397172913969570703707564272812256383933074340254162889548199173896929053128337040242790144443015341116448353743638623225464519884117249829691341134711811862012606341215704916486666163108562483540432077759888146292419590789546439489135612400572466271348332437816860385043935497527630552356985591913565378989131173433925001243720157689412373551863942931695063072509679379363644991076047232591150105552727692600625392804812101748386804678721877919432047939907675042405982208559542746385190344891759486448957623437217472987974325673979403567963734675663019368239350488845246862503799052818951249714781983404672363166887902478722602006654136628005274661906289617476801395337367135565529736454086760887594342540395199991997341235425367012561906501857583289040256538397864090497142323776876349944587759575444238230612633107864001578209442710433900883090222054052059935867165696052918728402645599897942363542445411645906674097891700912436078160595103518730096599285367430356636182093587350425193684622502607172938237789285662871822509177273583268418757385386687643106432534823153297926696873397963448185554395776660725170345884109955611819235617454160176850470408524200668520571606683299133465042953389991276120804737056612342951628581059538629208437443849560672436321857436197789910471461356751970554406263170478401426080161382677264678958074579067720866205188228325459256288366581541688289601156663868823692412298459926990694679578608886173333622758706196398252374255387888117430092604255491939319034968443770852855706644859390202486883127878366336483803422870209181126119289648026125042395201533004481003313063112150741216321418221666524545428933375121068381698550339364761919133729860781769195323245346321471113875642948000419851792476135011455647019459556106365228833071784946013338104551895820729592508025073892714343659742863433029419256875910922178575124142134959925327239486750701622430942504063926941347029238571682403955074452294359802767487830195975496862269921404487210950319071905238728404595157142662050478545050443495796040079137165066064646517358560391860392305635036787151849421494661139618017579909810488114810306220431849114685465966805829487591495500091128642088146510435164942829654024451690322647529642316368497347397547839773959602644167997869088703291684055930391742730768192558622439480669184840681743182385832842190345393577850410597435465421297649600654079582000624348826528803671009565690870364816032813060554969641357502826578288465442128096150867630136698767228231719483698096887083116740686128201622606599398915530404439285470535681305242948355912030053986730078049243196176785661564999149535812809138129228337630797979768071240403372411823495783578921652411657113805370227220612996199864661522508010843540116628041085524487534509244183731187599173745973284109269130509250364101205004721689805097417018907843914831933231470841124486958718654704491636566692777414562036653357699909992781296022436545380368890217987503977225022035569280409930255689532854006028356517134931863806358157610652001045780032691778255847636320990749172502760015384201551722766646411497359407768766744494208522717049839452444432401762919284697513490658911644823147287426377100063559288591203995138190220840669461160108796417038201179928213260810375653180568457440943028759377258592351584830215138068853035864195462220998238576769417126114559638760373384028159039862881502539399859673185565238966298546905771343866689993220195501485898278636956498256074900118424132859547380561784937329308205849356218453444533046353708010706463246640491935055043348521807145588205690785750335490341697963534559367611200242692121692084026320515202101280786526798143727857490849473709130258185997846515384708977398926884058207384003777616057230362438149823773080951366007369692228803026003041325010731105494196085771318704136355020824661840313330679115352218729656303991584420755811967354205655984066727078144904491810661455098532339244371370493159961083579300743912041596616570648143730438317687838318674283727237988109515492314912991429575940914010674542956967250165102389956527330346771672091621016051561207645460811114300181356803813071679090036733032070715918414355757700750324245775700730682915131858691574635692963087561587576578732103106039837957010900281252363109551586362384576404457214399757723765252294597994695420238255767766665405735390542335324235303128098279362041561425209810191294792562507218694849673237737703333543627754579641383165016222295151404822608495295028534251835843101273129925877728172684837413168527216138370433431036970822803928879034823977127606286130929221262916767402542157830846472535620258268622165959605340840087111025463107806798388883339058759121818174808622680032433379829141900684907901825839672720782122823384889419219835912873545585212718624590100020377296594542492114157261594286677123981684997930036235624850519801632078228691865527212194793796431635871342408724869678505414396712438539879899610058963344672429304481266295851947918756266002701676264704946456223039120553747571466434821715348733069880717971702561567340815125193636409605286233970497716038142381193274472048739815503731525334754944889559968543709862286397176799946183835744381198632921451183140190879277899854883268402894450892824082939588720917157520083179315071771502735866532034804562116916518939175312689912169101482869380599293162108851793677100518348666248872667430976375718076191208885950971956579629108190046320245543021332747561949569740264298064622852024501931565138897732642958634645505991451695724906688353142486505534477244620611085604895691495342752269269549325687750408574071580021882300643568282669341085868805130117621416712110887832489887855838417538504420280057972377417224790249416234487830152610487993356257437053336672092807105292316230481679652793435974272010742335138471299201662745982622560028798925136257474130612398406541021823786636312313808457398358038306752996964587497538815057928400513675101575291625845332679946764462679214234810091220317011951598214736504870197761709090404553748849166238543096916726106823487085517312202157245479953823806768700718566607702990854105760029730221636128999999359872224651229266207834819429703498981250122794064447954035539169695765520067950070439675092697770692492592447036259932050650300778308050409036026491068836478719091430693904732855532026901318629206985283363067833151155009832881034246811405000972021736920033746847197116653993232311362548295393397289384290806768333568842866918743430007192802601983330257216322824038458886985171649575847120928197960488488897897951788056429866199662926194333084107975133919015623398068788565383551080785791407889088636226719066566603337397715991495662391047715407265164746759258365862882471174544800043102629776569116780431142816452496392727922781987117054684645616307697769879640279089714610062355548275595754715093921005087096181683104352216842046436461884741846034754538971709594077349093729004305343378224794995394538527471069674472263303559895608682398880901775129181415631577042802614408403962529256533870892000015376489895156804596996111183228541295652828812175910880916301108892428545817112805893189165015166932665822035634078548573966302438526418556831924299671961297865061434060161907669209592325468747498260527323550260259364041137902007209438746488510085096553238721244191350736270800046154989757768227595702646816510303574829039208434843039966439873523690247055541793134261089582007426609121936277261656178525140249910738961997885702973007944145306124165647072478343054249446164998664489379365939085583345045572731004585378293450542994895648076060251750664476154424402179157344787165196644630589868265917499782792023691263695764226252382045834972900290173720893381558463807506597037524727137171709203663154208668951985553381798184492858954657116732559930966220359956114876744175747889192227904718731810500554677291863993966656310942727076796269656513112555840728858284793272473588152400554764689349305193510211169954869296729842742597769740572194742829274856715893477646367070699119187916393411014503402130476625475890022673228328710499740921454814602552908201827936435549454473827699621769723211423245958542337928954468049596720160228473202554218079920737392669016953748367723093295636422482814798902191548550034003654651978811866812371284133103460655880344225466547881588315657171550067490430416614448195971391277694302628440523214946379674491207453306687660682854275727781070103815141733253725027185432143780347581148593717841546888188677765091632742270679540366246942014921175503469581748758510452014268288722743781821168346882462501543321871870355109602246204672189276294824810177533615385323674653485833195832258245483755709337674586087772819040790905918177756231121674329678633907744374140121782832388016854503096504412912226662612228570264923250786345032124036768666245503759259970854873459921950891518473448869102705172698663050000490759468313615134612935230688642035871917838490571474316616684414682548141609577959021560905361728668726525610519773925571228704719952629106964811317776432408825719960489221899371968887380759381367050685454509258701796950656949131791869889609077417056520082611985206297212019504744280605209531866328237316498735738637616549911131206118426745040050345630331908039663278669017851690376118385692960054265396422946687803399142721751195729424914045992175751895492404824273834774952942610894494820695655083859219652941925775509770219772834803311921391277344145538553296481189256261194360691571836376054122272585556851461973382674415389801749439595992638175660588460794540772003663254916590824977893327640723995476870901229361517742449675634867594541890275913889151328352792744282190244016645664372580050026088101237478924334459489749483530037733940939326451928943611691726360581029669998136604451359061289702658979988408629662041798103379137673994363397534176756142042745746276030229293623958402050657342368123609732631775713106932699163484002832679881968179070229630434055550740379997535977422512734965524015222785695590932362023224377765418955902833129275799370289623944173415681528483681111734849186702713601809203322167287005735815649868175231670074616128977196021666763040446135857744822228284865035388963438395974536126293702743114953511353956222869425250311584065955354891400720370324672439603011903151090051689014786361050127008977877390329720671888894366458691838751371139679038734307355040634597481693453114172114917191789989906873892123966943503899712462491105801483066214605647255507767533884535672005441868144565010975312018794076663791561945245405202315109510945417921951545382209128631757888624890312858908793809118709890753614343844209662192629917878506946658628559516182841309606354621739023495168932606646408064060044030817716494372478814935371832226457713613340935892771352340911467132859365218101385610723825824108376509213752697860711878946916894357401636896217979026552283738915322348490602478967790530965019982602448729348232770158443483884437687620022878483626737600535140124032201984287429429961039287440485871504968526246691754560603351802098747925189111042281906090649730774761426137340642706626601598057344655444330380306689286541035326835489648280615635465558850395681416745813168870147064746333259418849112722222633519893640431537034593534823636293781594486373069592902437401182573425815943611989381871003193620917650301279652040284147481271011278827421325806958181033293457137827671460877733176400124315040350797604564659778582733055665373972556706952910044570229978711010204955370308378513161075537647462096509629915630420968578618064839365726642399376837856437338942187140875155792580803836164883223167499034564906153641965144891744345923333815119916453548063439533382764346835264859664881954305425929767096271300694615133087947430416946850516349244491646785635632427915711845642096714244277253271791542982548650983688331018350306928579001533091694424344458635957840578827993180910948854975036861138350723706409069572590846105553790039925200661404425516044004130876416520918329338070017312282263187958238370503398849509229606117658111443665036608237299363472080041798211620268276104363543610901871652509769189768145414782483790420355548668014316776271635859551085873928603658370259258046448461156093534547176517735821177592791031250618962214236205042389312510267950836723597985961371463267746352800540532965217591905499035739381403627794014991610924047137791324306184783638723924362277717059994364184768365352439157937494810008949298820090185119071901926434049902085764923253388734856799291385187547872549176564153477576816848847382108303052409589403101932438880954292098060689438164884909450603251258057463952081199185948099661576697122242291127626812646045380547125157259882045716213931581883246148274889008875376516249397517521676694848491613602129787165776573896926640685400663662591149061981726564802076527583068645700849159434420133645099424372958346044448011952440861326823039447134209229410979665380325082225793426653270052956236470524132947706932460585016810780812568139361422625501182264762981071375797183817769591293068665170908075897052416746291449745969378931343497341404483377972773015392091746794793024862730252208792104694165902774608463153126921481333359480255514223988320509891016151550121161398680063886577942959920637808786306241878067614405087690976591836491298969010697331741669462006197970151440702950987750392136740066610212801466273056573525807907270449149402100985816743503794151719300160005424206137522649969619184399650699431520837576654591222138997960883771395748202363562759857073719530008640111502446975564942579874031999151412034260771477102516491664659004603912782137762264625974702865116332470569064373419461421295011181530491107174190823160615319566618670905505655806936148302011639072157068930984868170542741925850742237230325234606587453122199321135785433514478258406591138141054241843160250518376666240026261497862006727245735527973440904566438732747434751010819324790603064969981895869541817897465002101545970198174333818526242784202373348452500508961608699936226859610530748918115585214365548087758931203778904093421473684344359878975656687191086956628007925042769180157990974527973320422732374850659260805303286439364116158198985517118170593763201631818472428218414950860772852736101560909182395028547360305658425777212998899023254321927388820053808143294738788006831854901737991154632538894759246866127947486081332309140801714872448376824036133568035597346112325966702470374520302648726894794527745515877374861322643272125898275537299025007495414043700094348641907297175191140404245454912334134170881109833209432078600012256863848205732553382293211779253437138569482406586424215152558316583475978824076406199294876033186140765570091811119170192019157376130063954112585940724519591458539125417462333691913916247556439163374520829749752438482244696622647776227935140986897354698642878066173801006847186532641072632740628264668384673926894437819293118923916254886663413537037533665498626742624388911082946845933351248732580173832366081400150035710601987037831090413942489260657328499605379086360174318463423486436673616235735063491948032939441785111711578661568813291137432521859110558930522681984206971774116227808113112636489011863550368220626420537873157412477614635053701900384467306275450327591716915954056105185714146107024693492944893303733742899973793917271126156393221938040020180153936986672255970459526840036363725885975085428651818871494882054500213193486953925117936211999302428860066090252633441613764837887030636962597543849368603904858035694318873581447301276806750190055019464172294551646647517792061177369976451461285981096954086589462513265883280962782319201399321296806655803283185210384381204770369771718100537272213033935446660015187346233957980300436377970310728193406769554119757593260435591260290254220016126756708221440602018646643415749779996513780365699622933713509327949971043618494924877773783134433159259779907086592888953730761841581938457683800830441214135549440175019335829835693150158392136335179701108976700732478468804286764839488281992880421767829767055373066372633896947076819330109507006803399603301521343333302668567355564493122064740755265316128488828784060939848834772656917649622730552236820923680548429247028989377778805116993263045059279323438437222414142913208547382349476925029063237670169041440243254179181259891974544349558802036999319940263932232764684999880264729507669685288552505993454826841506772150534596120937730314295634236890965665550281487636271437903819223359128350741760819537290432432471870284570042804678213828723938095514852310030516700589790792826620779537463319242666352986795975390674820443017849227913102308729374107852572940569128590726851605595939652047631993858284253368038591915311663718973318358724356106233568724326478793660604759725559564506506745589118784979870171723168617738766634330532546036742064710575137868050115072974291829736345573436812687319948593203614619598091618778105097972656279284968116545179530315677357818055910737259552617839027357838940336499719873520956816962290852262255717965218671120425782663053211585232785157704556885092158380689125179115680451495609232525145710081404398385647683827722726857498602101557114924710899466823045253239324783863997604863157880527701982099998828397068686566278858198937781961115476739558898853448976933728089924854080884065435714381564537912992810692637138171697299123781557796390035414122128709117485597273793012367915804126502615011598510147309181099568245841452158817027651448691084384239102984237298651865679621513846996339507248514895375848993142081863156349760386034669033966343121350789956412121758878703372931987744826613971086087213654761503297842203094316758727321024676420325193834437403201441243124519908533959652180754112562404492657830035029620095883382069558955376005350158009984000637577413180078111819565694355434835053594859323838231700325250531210593855388758435081032879893321401184309169912159342510687794410726419390645927223829658486150365392190363012377577269405945779660123189830085648348149352235964746593219700260130486254501793751024237106407781649102105628645548631568607480707496910439635509041280031529588485173705729958583581190936839629782239924024157085583733983063113429884416732860291699441017606252382242953564421400503887168473358547519452878587014069642968259904696109392484749251642733970085429721598604208170323156331487087290955126114181920651215381466783503419949972782680337583767144827056194923433032076793828825193497330331011549313230157646135487810961551170285331196633131927371015019562434579320065554579491586574207000184210569255079562461839186583056629348043153322517910061553937167004693307178044074994938943238107132486920950888717630098989557868490517116745487818627957557467236918639453991816738872720394610953711752140430886133627901400919889869968175675662616935763242808121029683324432581599371116768359109884142931393476373119154122656130945936624729810119801288748697442012081810871858495448978746883339043067345732102931647280669193186599350991678446172531277032585443170917450041984159397732841674404612750773931929360485848250208843064616883014019864933152200503797184375813010597539792141789950414568971051975556388639607166318216737278756384239518986150063810525247357686381175285901600202079719841712738111500703994714924480935491444166647830362936099721334889270370048973751373904474589024586124940024114687047239922745322220195096669352765328511614504546721132087071110386725389892190155335416830219489695141434118953618347186293999157337186642634577412221394480094679019606454559518783995700366986454305047176414874259246322636548913916486007979497214960138305484181816100291439343378120875458937294023019853177317850594375010608389837532234206856204953929071508862822304470056615362308489508715401037410479253946158727520473489108397878948212182849146426814669108160760669502111206700703978424022971693099066784065451364407824503493037769247373324528039420915553240531968770733773052030406977391528871310961433909568476684470419595374989047221511627334100223588043505739647423792074436492632617777308799545470003713428675273997225506429846125502386902352894825713856565280729865791569905334920935207366877985678258415333656536802237578539263349110654935273919468985421942132012867988437531393668002084010708748067128885344793071999003810307237776816179315779140764556778853443689079872997224107252222855283003996144372937770479965982713229529316732921986528518751948139649262935757214020883928565106438599041450572291647687089650716480195583012948243552061715877788456003769882524831504933823982782300580845185677962520197677858662095470281767351630945191417207925355765646332555049451412531855226558513945521998172642282403624151491963330556205819232447406680659141385840921476521065263857069851329216783131190543912148275398692207302404376446873887083311821879125848142147663973793976526800209572504714527261092248400186922226654929933622318938028293339987772350984436135381191979369114457049002890672654508292006702504992260404557448835583751585387994536197883480580303035665974471653980319272942447241395290628992899028977995925428365964125477459214205999801728351523843182637043284536417837253159034494780304049646786696789502172723272645726834847209335429069017393229093208505971563188840175415372462035391003079328052148801898164570797710107322430954800030194952339578622333711756320481329701163341304732093489799160332279756687263102315209568029539746824607400887141397893031095814286794493268052340771635603235465571697339618829728368904116696788256801481240975530037930186891941184813156418646984268808079447231460557463232299141242387658740367780740746279967855484029061716432571263975151581959839803908013738154143452913444455195106280983628719628352712893607124625892448367575275727247473154284105896211738746007735408715293835662758802313302260943029132707695041181035244286349597011254537650727690573401499103568192585977852375018506205913961722408661240307325474231179987531520537945013106348474946044575438365744096605624087227750332703056136732344322103285346025616047424779336641991097484910489258561389962390824768130914742469469262772903918841435114281091297241289705651825241445671180554338249254509644521707127923412605430185388625035412872890565641778400202776493530121146257578157383442218803118403622206439330738756681213030296446661307129457639849843399939826840535876712307031175518616662781418278479847241518339749167668087453495806482177389920132437396466717866470650909626680443764217711529810874760756775538180905794319371876141566459378041116668886066688931526814748691883910224011842882844339046327588072640047690610953419203106215512993694825792537125475322836217803458628982649137811142384324329280755653748128716601421107597156066456312755465634190256079905570974754574898355694953060852205513146950173715789109849835727772227044175751088548465802883607815862022960466892691229783071693540693026193447513456975816309136683457529303710274087234786727056372970274890699328822024144376214750115829621953225373461211084962741912717459640151817681990742424280440005176350354443448462602402737425506593474398715468283804339121054812075648231707035773892844414103339685015765539808890199264472659542749045940180543281770040853843262434783155582598605479804702109692304599605791374031526451699120524401814453370574316775289450351804406531660535921883972031923639794183465099238095026284998834747662035939093872486067572516607995387493735697732871371678197500680090673708588848774406615873561124290467579750913205682431563780194381997002493276307719525213009202161630743113526574845022143311025093306491749030468506059674282017835265578483783435943962705956750026594463494884348156561972678690842425612271957042508381715259513191765712377371232816406977471768220373336993972500123997842102306307126784318848890553113149280467476942720174793258294820077027118354453381836090062717992501921487258402605872980963940363204659267653388805548916871899422310824381201489286882534368589599762494183872618080917232886727009827800082250541497845446631288016928847251529484714900685464980458745865193342253246096461419306052504826461764937568204646508559101724367767429026827537477350570234498573877228099499986683912466550048130441307573528062584939833263198405068662934709272288361663675508501296442256090627850494834921992311430437218453253199133494003441374327348337690073315610280911715139055931975548698848355271778301532564385215259192106264041387861486784317455359693968836890503695986400808569283540726275890171309814341811627330910369986622823690030096293153953028967487974321622659969643239249587590328219394690043734154877141345295691636242592386725594528922580749220793946301070613635388285186042894818116651146734694700678577084555328103020333724692653924035909436713830749279939320952351834842242664618897108638545780346996032837421173741015556849917669557492721894646819410056245162418680431475437280364861901707720777875065914887305801822146214955883981107654835156224024609358711333564309661640571650282312162975492253506124386218941590283755267031903028912614896015558159405822712622424034215509133676410321617327872164432131954969569504067070926626100617167927061787115049029090574808581115068725383997410469827503990854385477021112013660591586179348823366851923546786148137323630400627838532485664424927988314407149409669845513563268521768063104641129473917926837745473708077791522290489589077985271826782992861384660509303594582871915399083817092849353010144343657804641748177307276546675191268353291416257747126246790513163296930495693752121473345561707604027574176466355729811496660245873472071458378039052495568033783388559853650674641879552474658923530065994359020300865524966745664271875392023452182155751616685103372638573374616019609748466509717140525676961837438311284634145091385161923694842906421603145798453864359920103629023482719066731508343829994242209510677814766920370478872174203802805050999196142678955829468668422712766894622345879415019345821873899466264556267764142909777289896527492851732130427029724931842584848956965739372253360016484822719344573661503943087771033098977361476338026650610332081501439803904335929490716999399183031218521525903930631438216298007291399105559869390936719221353599089777684589037061397042960024579210248582189962256806177664060430093158686736163164216423591147073481778848684272234079775069438217219876706679040833466381149374848273457737705582113914314862268058672463276413304099265824693235844277380907297578310216823212527262238770141055268608705796161073376685598458328581771980761624921933335101109149313981855660929025915188966036714217526708048133819929932981234208996413170395970232903004694895026802771573049506524030681021121150233796635297782550668965896842588601604963330198919145979381005508255818596242268357126466759728891643045996536327021468928181286054238643725765057667113709992242809978980467682523754323016933776825389962410055984495055514150344514064911570040360267940198386813667289313219719081166258088764984252808984248121483155291634716464958212251315357011606399962979457125865072710595023095059172482139473845110695209021174938149867419864693200232754748836707273693764800130352594347692996380051553351317766261298480589709858992887366955441969980525147745171421782323767184930430393076941091196954284479732159147442686142941133251068293953729540066211907554924125310480867571998823825259776000709147526759527230129904365892801463441280749706761449619125295005563535144292589718234509393085935208911221505377149091943812401194337001804948125683715149291788279964899852500478150570229817230266727001336156528179727909672177412626568226206633992680501111372762601295908597110236142143950956372488333547742735811610017936727330282664351687257253721936039510188269226976181649344235628310169163948159587991116452702385690501492335823033059063758923520705119664324410718818121436901047237365526482794500712914110813308865678515550631553192987732592007370172846817060506578862591230956708193381246534090466264740756828863634155826655148949431734362160741751427553626274654690704795185307824410296317266802867576734834777602721295645401063577761271988574970047113211505104754232845498675676389135044197246463287069686378303937975412749594552869333563881899964643547429327888046206262430585173629730402971289118183589712615578185781167996367433452429364536416332953786203960624386523711447436742168884754215345863610936846860950673618298165210103527182965151729402391305792283668249130274341289106639566369309747789988320427407835727074931549140623604765025057639977307242103154205679513199428470760482763935463099400817362063952816466591871829397084545409744418506457148286804642187278872135767057576009575847636300488833293994417657874231460849588173213636418498078895696382760330947627605986030543268617463943759925154108411733568722942527782264041251357123407961264489644456621985247345762254382883907549027260419193212836420477457928673428497862023030476178002885939406008608773838156757515238627014326859154782914283818287703315150469392951173055842493169828940916184938260728607706968401317732128834986245737815394109980215076923603719284995278064096149232829104368758628940148378132524770217970836712534819969745913705170914778254554634255516639753778864686057973726373382772067900865180915204419927864272507223316668018681021536123565667063553093711340927570400282220634079220113262999961835734961957372051433498746582201308069433088129674765784351610998641472247470479481541000979567492283093605790627195594773850169320952469124144154329934096189917664725715889859381675162552763639011357747172021667410104608670316637941417947551073113103967785428783284770595556345880591912470840719878411157549058484773859805381168607294427378674299021232196698859849271793955551425631904195222608347370264154677865308323547227185609122942371150010201431918766117172034656584016867121324421933010155960551599484615198867982358041052465552019965913732148387107242370425316629731544058539923811835655640872845251638153841759213915921606443688680605827733355787569291210816048095140861265926710142926148820605313250754829043836913514155275834886059774520643596293126728833350030549519539218354110542160706405453796800506336605878890899067382598807103744888659740772500475312437501322617977397775239485114458351187114056321109609601696203964000040138315005373166577611413695102916199377215518522366811612535549437685350499936381759811369162063160125204794998376668761460941841603554618403702332608133561232338658483867909590110464871341580800331202469536496799626647907241598698723885015166405132956823238267109260828152811021566593024053873865330728178308157465628761010006661365518012250243889059198416551730093250636014029377052475473220565367616585102081223895714777988999227457076433490989690396762071661355590576954597013872173121555470589140062683398213518943965314000314605371967484370509735399983383331627717625681404674313487894847872335928066567266496965880546007621638643275644736883605258343943881711040049243236145158357048095379898406079503005949726310625638817676074760433937280023737004348021740393859049989240372272058494712735620530351930752146657434915658785739185223287090199027366920702092079788275834327919047466487795126213085778183732194139345944869626767947709953824581987289820640525170445143466277040371823785347768760351766412520046100533253150938614528495603931542661171615512201162947869336365012159860925209845156073750871279448694318086970041088242837962529434186645203296619983604763019781715721051132519553112220319808216198080654263025981223703698653099544517772080815108006779871152617684351821729228785114915700009080248917696421897346288277027527382059893708787162419100471141623540743643497217697142223860933499871010411414360081960576907711327374403370558924270030258775047589328839208755139874669680659058230993472373353679293356898373952161421624491908051056035123302379585729276997544111944668027319313242233138738054080738960391084519174041865054570494048562002100196228953906359205773600999315831086500391599388658118672033374104462414343841132737244764617154391169667016104730068603226724498028157498964413121006134398285141904255893701846508463054582489231365877367337675277254151549289117698844104301998494410898890106423030843609468416072131789660701344641472121071975293215139525082583909471302250415862032228498424927467419830237679845825625884962104727317426847358152708281072393164749591260326858984550266029570121806851844400995474800104854911622794965663114175843596189257092337765750530121226978089793095586577362737093540693174625430434016854613035678936217040705501754340285773081092706182543126506963373578933247662476800068465947541493760095078804590978024732146436201478278180602397023451443859900151617233692297838420719624232415007913320193682160809018683633196829372966894466434113743817800421896987801521978180298843019673983490862825736492033689494756446993159815375033635498541196701922347766915158971901399783561161586033069087339867234545577594247205149652521280658420534545816625168602299436537504735304124438389258502241470921705229680303120272096983700163863325640496212875536543879983677722730052307007861050014924748239131155526056489921074405606109345164478814711319956943578888288001592971264736972573738999461947589731341912956446076130807413515487741968494117792827809419812962416677062336009595715617201298221833906092754525593554965901449753377462259240322975716333230349110655359216474474001526887735240877505941158820373505745879493709813895361110743950736958989260853975286978238664799526586284225611993038266469793357253986993182053209217078037929970189755759750031391704434678188060450285767867684903761517510821442693443307806646647617878767892325100480509182284745097632211467842778093588148175947615248184075484007770059171439762812078476930368855736347691427619706489121584683054975535727785107899556524754638257303893121098642250599171162711584498162319673555518365441777868598083743918907725283578603685227105869806526440498612024168684583360505918402573889567459735568962942901123863855996921203663878485306390026764299010685506782042440795635284686615524233768624295719363800996937392666929091991913696456880569567913487759474231011240143637299120132046341989670566933092909629384322840617287821770681223067135019135870888902529343650292637237736690017825762584982620944187607596961191081121744369518587717851696881450968137057819798120684435402970359989320344339891297493063741307024669018622615553271282828925973851992077923666600043244110596641057994440622299767279804505830845407051843968972261562577652713623303745493470612563646836658034765308964066353828291374703800106321847028493562580743519639240918140509481363984073939423619857948851181167656573409930549700381126161955656444505606489661287901602526145339799549138314087912445981496129986916759239384743026585586642966648794820989234530933682951062219653944497514412282906754174488570633433767935550386912198492537589560319130594437280822463394102094306082584226767398303748712338892773575260637523320211051499787316471055166194606454573965204327204379662253839389439805079928472862190422296949203563662504116799714449009421973102907642398007473109955181998847994499437860753202291612069909548555008297745016499908599293926134213247654246730442129300502915876846501490146791695858121805920585130031931220834189752505346496641948725460808604765917675379398286853968842265176591485974642999443976557210879275030094969626622348523937577686396649807941878928373310929332784732344898451202438592399072352509085270618722739512700991863917312402733482458172739681988076609604886105596885033278105394565099600977747249635189376713777429692102001066513672404177695651987190465033992357885684018473667022719022650918159791392788480512073530399376943398810195091514705842127713509619341542964693100626300164718203218258054029690078006201450523006444219506101921159985395643968949021411160093068197553450051163694814337877360477932406818885430516601181314637731811454534933873056645389660874851298512830108097706885526892153816422768842224235858541957203243337208327102617790943588555785235400861112813581564385233992838932688258609276825611703704897678274021079458398927708596696702021369174297549254112156925117666710296119383322985731594553497900024102628573283796961009458567122820244320925900577205392795344585649223538955350747341655472897737638898266973345364588771030432804906248634975563560152796880924690798815960806064810486395355968737932013209871135641123338610718886220674484601236190698132921020570363187328163054360747638052161160056774820219351076859964859039876765797146305619274796366447418105022751293232002741407358987402633355457036054458705028856839803517613138798779919167138977979512566077990592010399122773937453913475225617814571824132714615288591364966352057656291809383668015416578687841443939510007981620353265645097859365827420441238160726665938136780013584743641546687197922570693377181780548793982915516012036817212119461844284619726955670992165679212934587543813505504605280827604740251025123704202636153822626284243491702455927084342270301707144320917964233807074419179499689713310883176237388573621893308207478249642052847903872145825170495562134005555461927352234506474172558897560603921254399215578309720415561085136666585934275898140362266117744413845306752219348719583617026256930334509043383052970197883211670572790240418688191647886194520750233693570319669703888989178363161912933991195841131411198283141627260910819609366225039488234739868020323814371518416445701816500107781032088515649340822456314086941655896249455170285598801370676132767110857222037483825921643619648283632915523377657544209516279932639079136049898188840203472762788728599397898302289527730130034349996139600977649625290663256164179640395521962515060410161923802889279788394734496160766608203217301433839864397261339759425818037840252168298268622201913670339545042052984192108895394812596124077718138988927925801107991747393629236076401633426698352005896759776761993848258149114783507332270477095559561203640956289697336077470735918679075611190662710730712681558799381691085156628252585148572455318106236120972284237793814616354329730205454797327281774511575745248872823555311337763207477301199879416691275679625588623359667465232343346058204083607561733547263126584637746831983356701022989092261602813197297210901977140596985008682533994091758130594426913115984452981458755167135039398953935425549480142224913437753160266130151978153827685003799331463671727208988067410592616096709776046665970936069214139721914142812583418916053189590797959896174341056693998621916663835242081653155879366936299472574903786707284303151453873765112039872871471575588225316593344559329892011121397164602351971535727097507197967856606392313939622296889430026656716903630686379028704474309727681972490023551171883585449846463216812874966036880164130982067406161356554226726723200050122878879268348303324860945899241351185882074656356015602027844950075780448450755760200279222836758842538520417415949485530833975161717868883103556308949022338838803232236625433540530453744919203358920236070919839740956297399438158170621046594209131268416698421390882274458624240565787734840000670374928787638432838639133649434385570798127864970380396948543583559582106562096623552120763434887531529208091036653182249569281591208173055512271688852414217596631680593166162075022833873482304914916844779620489603747835075377934079733483452284176765757652064066257238511408224900693564461488277051936489807860510583190606777327142026165128528032866108026150148396334736146238624546756055786183942724828093278171744294207016178085677952287818537437043674308318728516243587983725691621702404888831365943081188918596132901366387350225683202255354038175356708985030858947358141194176918074030190213437013119414495735619761419082976338127823336040494777655114186638217047937695830888500839901574599608516370929516322568377239809399546589871483568606680733212656433096236011137477764107055267539284593970033717182188559801578428882833841627920825566546710205270252867111806216358222219517028981600442141335958728027035243690127527286782180766859868264322626198984505866819978738989472928987950454797684257974591766629995739699065386912494793395441357229083503029977934302449664668463937626361024329246544615689757596272776437761400496146332568417534109673248375893888048649027601385034728678060900950472323611887747565317245250579281568902880017754432650316633690582756062215029855267535409104339710076107930792975094041338406894599592330474752494986166167288252596719732670605897133007776301976822618489758949035483065947777486005520113102957591343210375919797569456310454728845005316187896041279425862291161078327609190345976303229674253363578787344698211415303052313976919962777810526323733480368783397666958145755667940774121834821922510029274391359436055732208057240471348604488425128608090793970004244329147391299612333844362203776933342077978545028728791419871221612107504694169733630002688819445957414216733455029112827767158156936296864924565956890809046801463021896560962349549470214563619282272200652333178753927657440683094242557634151170901528373302168594685742327672472299789797056688645293652244670533713735509699693722125244046430926694182627535094098720676482290039741742806291787529057424490078118605702091011554554089087346123212306171827625243373543264309629719213824136143458341273259100168190314008280969169961158308765512640076001297223540933420018383495351975653020457651045679299674996544693004966096431913120809379539299264156771791619936780479858347884204027947721345031015567026340581393428204843436445949031120467012139586593312755175083825287597255825594881360665236195351330439455584247514269974502904857462726795597787787986620863180361364069697803799233133640754193530244002807647728884613254657368505543922117498158175127584747317746494497213619227901982177395524268615756761431569161140420750654511019262053813196515860560546618036293728233525809982801332205816826819239626554211992488066637870237424156333312528495637015784808791299731202663745156448144361899146708668218150645422836491926308299799842463366279872981118332726083371006673235163854731251756290315710767536451168969412338145611662506627985949363584621282816249162907405970767321655421384823884976692777653233724661710291035994718896318227444964571220079409027017030310684007543550185596160017725493451316846888622825275553253033446676785792080700222785287348569440748384319039478069344725909024814459204500492781816247676645736171511551052869558330956013024074692595838583020603480390456526443360411884150803838832229481652297648586061505525404870334613099166849876439530015815896088741126096640308202236795494813264725161888366928410614097663836504026724416631263475652008932095150997656034332823307457599021807135666690277258371473575994403904137573724495820687650463081238439417222181571550590858524255716984680219329460094764561246640542647709635234744464198701775674646771335723087506946389473913690140212247378754815424865860179487410387295390109191060880502524103130040136496655526506617703492416230337558255771566691833071741186085769724902845064424831539407515623639722659215306323667006813720409475764675264070079909898519353587098405803770922290598506169211585873048870212267639292456975842722365206896073800810977687297867608322062050872267956195324801713433573149326364082360271137973569599802544081463215337610692326546834905571329075475687378500184179519371506877901417221375993589167692986416549552665662012555772236233962031888145496606729445744551598985265899562262082598247422839025120347553418788248526678273677086519027941306679966497343541059086853416804990090872705044297711715030567090691905397313857174000891506190566535527409350462275251955073335511917081627806429540346579383102342398515903111404379341413047720941112933247906510319578844829823917747762520901075122639415011981635071199621607753611383241598920188253234763991021242300925120050832252187510875973821973939476511277333817955042472777574742034160010825404142354513376516406890440649141109773015466190141183828301365909807296434087010491701363135359464328012874566789652699365247000534863026741640833866110374984058201923706318164273733160148551957910453202445452831666616187305507966870146870337163334044335912779416068057234041389721314028762375318572827157049484353840950863613478069106586883990935757313818132721371908216582854826382514162505954432361009506771981658217942223251704939271778050014358508562325686895121154937978044203171761003906624319668769469849717169353262625678616221272896959715059104409843402311323723110361069876052977978877192737412988066593064241111728754360819070486128143557040549346227273259864614260642460910610156022831461311773542246864472946700412459175751668423306473836114213512770574034374725298240562394777486963716535277659654726959456178422054133374928207482735125744116632826139907757958488808017854949906008436690090850176433304038768783725436578855311716073748196839238498125233242989633584681590213258761036654425815922656113118244962345552634707591988433473983546446223797518910732399912720203488954774777520262297170489343102265093347259809861114238808542939127679628787421831336913292788413774238017800920813422400623409658021462945819055556452471824729611233403130364602699596235870350239343483544409877966385349898903181569334969763288252492602025828622314559246901083630039663007518447039891472154218832877631081666123143362615130189171072893630097041647894853932983206084341045458386762430088793204903316506153665147493689947425163381655450357897886308930310353840244920632406534540065148483009556512703045160835978150490479744947100551936010319395662851467533724432581546824860948431375525197127629098451247190749254240202892387538870942885684026709318111620233309658299849724113847322645316832071330672938942458731484384462844615517535632746909425700484739391000248283629657979731040354137499042243707101041443284828176563317831139139877268644468441275983339727820784212866271940076667464715674238605844739189444187835340046834320658561478930713501688328869502671057835023859460504802595213844318579359904059864958613019586640181108225394617586961157141472295195498366109790907430913778853503283298869390068094853655853453330661790322123343213381212181429843057100320243128103210735259081917680018897009100540893032691370175018929921283081112499611610718769488182057376637795206831041112517462151932249490424564821481539659835243885134879257611917066940388481008466840175680019742276492247284674279098787477699708164995461521698242949168252054989427152287010331535162933217746683671031825970616435753085622212341060128469052466095661922706442145339254630396993557024853224374890968599050604764123944403600460944397493621018098285145518463710129727621588059895222837438393104258649365986732490217184680839213399152468292160287209447140207875256935916474514219727489402461632450478232638961058619268981047300241942324238993338127940298414832831219312445324712710660870768020337603312028251143652533944823932212858244270373468121127729585313279915879190950354054541862756200998436218046452484483833371970726771053076117258875415537271159253030333422862560642100504903087011574008806352735225449271840373242440342711117953733472263560962436902499447446206169341981376335490963230753721853057216919826000257398947329030570242230731969467877411192584111724508455197640207717354565022694129990526496583634209361567547384474544131913972793232240489016416082953634288086721570643256828788011889510451536660401961583337084456499847641504807590624008508068158915281615715774455547549211118032768360911190428775847860192734246759264663788192749140480771352116902054410994021772111533371430361439044007332161999487858408228031187320065720179820872592710328034190676235255874345417211864382929737558014760481070301978296086623400221083741828172159878442161092811196084173095032213628868640445727596123213163740821975557185669119909916478400332258928533933481354692178620141692340070848712854501188740122478325095460757793541229389098841850614275375075612503011284111084372443826937099280146293964113850032397248053870338831596801944768790032685813306375304463941307908606827503331043504056748455135540696471107528625986000265117967955437133280864938882718207899505939890292650607248061805264907650938147512414625318519362603642992115656620097413865270475400204178586776166261261567220236308576897379347374437359194265285883309915851470218968453727710638073258883247885637922835998779864179986148559598196720432924936923215731998570268551933318752456547285654935724372551791085615920587716898339086996629294104991413161422734776867898128787107361843143228385815720091719514393696048084507961837827344719247405298871001610514371026171043427659931632572856446123620236540945180917687711116882081654548393626927968303939732143475840643438866745467375969668416314333931266649143936583092134111180971565782082947245439399520129148009817909248119441182331070100133003321193510912002391122860371338936210684075800186358279528723643211298168045873020139408122112479093860837092638484656397836234172824914225745003661893668686883483076292978652703761370383561079622363079927199677444303752374477511370463362323517889339213978885663998833497681613504217784174741117522631035522524899899133114392166274646518890789750741192548316734118554365418077172342771122472688018160577543800835913519527442924682385051425439902410833836105367686419785933682025978254546435704815434524266317784176449046782329049874747707127342710888026721740863226164892850809892953129442726580112103411329070851287122941415920518619991337552076223606750854508647959372430233740193396847596023817123903013960778001520831976651347162895052399009378213897341651490078809624379487034987555868417344271609906340623968023932616166733142108355726440894831947093707605230865471593849746296522781840988681737988772090860085534569264246277659871545112671475313667700626873428112664865573007467386933071965342993224455372020328763243505757630713766332578994248642070622398055858004747950610808499089287614305148486643551729846571207496177796424815728306563300159885985904526612395363861347451385046686593756613860779189387134161666929465631622577303165397328725460315739132101306414305544770045241824526981589477213321378526266537588372691599645941339848866325243089348263239895778968835736223991158817207100498210982984180778427518239918979871272377957412086964933847920051242399451290863947337549880957596817189940626757026248736744712328493844973943571140702281944503688298713957821131257634193917656018680112182384063930501728063994371718611938925544570627549098812331611237366511715968497194509136721345265576376274558291988268317081335291855749110643636990584061518119019481349123421688811926242971407738405452097644696689974726299908837135137598068219254369896113409853884411578608798964101306851759607677526540068739077905808040442311808829994586756818969271186490329801458988110321699328536814187647304621547186531785511345375656941467656762577937254323695871213862978466635293254067185725001504503588024462973564780029110805231878179651169815833575572361538659399244646792301132703916888585818916525755942685976539636459504610602880026900715416479593138938721553398726936566269998261868690798315538285494166310387029107493225336969246144321274390185727758645398046967666006080994071150883194032561638556506835484122524558250593609052186233935813422278811558852922047309615033654373289319414052735359858594033909416949963936774345637965082847384452499702056596611882196175544743225627124124932397868424769482095335654412218923867304037226987961701364365752453671205873734496046346978476497526328964011309661846068184766650843072490526839145225352864729154901263565922323405126895202784249095416686033439097017768435088925215781839390024118299341177628076194111846138934083331899860157272411166787362133546981419659859624713179598945722350627716903740289838202215484021586272326370182663428616106324786522027639399389199774584688596817813587985663137898565267075478314398150273844606062496522097409816819503272084771569171585489259085642166954490572587487818216077589728136965854747144563676018798792757058977128762505705977146534775389511575337304520588370504412315161123081978772546289923483564098021240079007469237155805939866929263487509277734853144394920469596802102079876506769397408752097173385296133820028129220595437854080553174632853596408081732908982454062142922282724608707586684848269565550611545722858276616509004797743052947448725661713277588139637554509537642314556978579171268724760419661381750380460752907206997924410023708209983305050868530023482330308057340047946175292671729466862575470369347122506463132785737187683587403034098614622593256721933921087164375318647760137469914413428313565755930095979414571551835162594752125255767898458942921742914181170368335893483174200043867588188588935635277383108178567300328513029178290738216634869595006410215948326182993524501624300581501806322891460314244143116414942080612268743821303664634039330092923000004172461208625230930625623886589441550987713441304171980153670239582846720009847219178656511626693557613571169497893182231367182098852627870928210497977949566410832153469857612738200489308768203139859777940427225521297582651608120241023259693751295458178167337378854930779480787051861772777615070976775649015645576090552952045333721086664179597036321951327941601910667831683398664963669547089442570579474862471386291970548052440244042238307586098090033581398065339730026735928117776135502295211642706975713140749298564274821593972150131949486795873690323319206856280883359899787193386437984016683241681231990192943586460680503577086386508738186729556751702736082416168447771728317713477870324092235552536839195961488638960163939654200141320547027523089186279467663797686495213476192629516236850251510231531359755939892309733937951644313213598174762408532118669062239027551664115499405714704481954980259388189619270756200342774912544520917741923238756753462762649984056222605844436873602894737109081360644765734588150529035546893011438308836183195338442087612768924112013080076528875082459827710153007693278387985454388683025150625414557091410602202317032438112433138708882708000257105835311171170979971536973346685942960900153283082476550743176215776528461497197613616798889840873609731147820815542555238831147751399096701305783820203739687844518382407829466112568026669713857299598454748993181844985416866180087728966743418269259813928826998884325193065377156221889114274790529294435886854602827019450779530285074496539382664093372083866223143115696878139599932469268724873556768435759434712865924452969466819798560012303295185195235905019824291026342081552586316097550685019456181151201094056628922808558134924171849954245808695018182819235471886306281494904642490236054025993409689132167570394218246256308309195087050475998353886373345053127657165806073373081056619277240706963536672227004749056055034729313623924057528800561813742195400201461633049387684415642961871282995768392836710253559192725188108423793010816855515406033871639942938005247166804757465771914719279019503917472458170935358733585947028205237328529896786443351886418594839791526931222801885636273134490679741544773407803670231838556250505501417570052030737394210180178332668574998426086277903543693041047183348885924921154067966837236686838991599053538011032668408032525522181507244004124598569998427071616498439575537531989877108373172969093481833812873032868257229492200363211273317041014591216015727689163807920733555781730098729700418114846537381701001932274708148846173919231156798057235429319289472086993087805854911449485618207894644130758370214950441495279333141206117840242905554297482598682717375744777448786107425608105172705398438251536443642839971102648185671917112716829939362338878373739181667178548606105914858462318474649483703026867307173963906834080896268260283512834961271874476027654896163051888014156228988908656560627822690927102413261561702820908706424372445781739697594024853210128948136019007018028103572843576051583045295027925848328838622957823376511420888619515827880176296290494760173046683226734969517181763064796171753972751151990869634244786111103653278205327461805480702041379414397672188357025801556186256236605845274292612746097649292835414109475195003390893816850947968437857232371985477602456323322775195263431890230870923054458578483911812427536426121673578825165082181898653171017015691232751714481854424940973398902999124740157811581187616539865563401260194127597586341565294637029149756959213356180106300473639865363635070021397496353954560088383116997199518570067660772309178424455702636514786739944900185026188569663365275426488584468502337936099692565322461660028979209429970232100556516435011677534449939020774802642882852488572336359091891477319885296985257955978004096896316892008140940570718513371851546614146501668333149688999821701490481767040136593487089676960684640561313060566548360959375150684280078240043373751775817706392504167035185591849218462333033328240030810825328388523958881572877186336779562092161090101452215799018620950282004209627897258559193494874441083627640409555781845900685398589610831423077823149848197924048482842211151403730958739525867307151263829877047703714713562977440149736087458384896929159270760164406792350489534528660115854592300327193446972572931792872380887217455193626532349626718532698988248395764939379119668051725889855774981209638997133764031527398056610393607828770425099796744556207778412779680825624113784807529778326414515037380101969232616414651869166251504472400710399371112795403067442576779088262063839259777630508235556484317644218768108266088436454474987370982840318191737790677987611086214298134689557334606993915923043705688182623706317215885424763894984276517827569266567272108778657859231507774715097942857593189696794259097765632862496834272580330809953233652485871409988346613683218267452372955248298449960167684105775583062262829321869696913186874712516627565382825449173281522703116414683107776017344895600908490629074239547278120869296359653250157446219323657585900055437133183335298502332524662713684764558149177285935970419839614520795794636159288395919570913977159231090659771487555426934560371746845245850020931898984188843712877714625890169799293147206030632485637249438780731611610097673238990752223444804851109722896274470816112073882291693305949729580116430200210609491423603469843495347520881729428608146049952684386334244856573441816455179495489330252319848701818168289579036028214509057245312854709217974814287130967081567337766376112037563696437464834242410411641573290830918880472346476886754186410186092556132197031462782470118308134529734587155911609587663087402134655909610613512928542481829853273533862984308750108015958265175092941609230586881935452335829325556042882054209130497945667093270147384415685271084304024707947953529080464300369460469353066839154520470183843773451255492630747011416896950183724857797613041601590693674123781228594092524033785670984950085026838641412687494928024788174424717492621370926785017038267150458336033977181510927364098676519111481923442506258631489657339563337726049217096625558456032614353376590806924237345356402505008998686274619164940760791344851276849679395361562526700911022723672311775733245787333315659327881094306801096824393327528403635675877283077120126014475757220322884095937977623266002600202802144061870112470436718565029839584868086334227720906657208605604788158609658653440485210976101567115340438525632923170267163515745684793967224843170340638853479373934025109587934203434527319041896631282146434173518621687305245162801210602788198802526294008011061671475083378987372056556479029551206930083161105846989146964121165620973580024635288344141499805205899192417151775824755157910230425468652125535249091720599305819178055709528517974815828881220543859456996667394195264402471724645192179524016823104303161741895729907809828481952805570165081851910399971595107560210229361103948791048188696348733086901256377109081831642725994539005842949297226619271397894665038661092617012159173357504894130553340329108313986425149589438874127905960054592094070488453776374107821840297019601272254097479592663857737525403583034206353953985571764531991539708403306096670384134337794429256061320234417243360358582112104665793210002938665963526813819229558533974997472512576634985236240356768970812210100333515914294670513985566436195301174661885632431769780748719601134506436051288113264179006535169834859882617107525133533973881032217566577312511415351614073808240577678291027785212150349194889630691152436536098068590745124442716437328022064975068152244778368857440292314051908205581318187122075340569320823019671218386639193762127604507599266189984852621212222621291698369836371880276793174042912879164067998443120445566780927372294576521339607408373812009502874355724730877815724092239229015870939548370588447919920306007199064433102502770305478740552433732862652435220350487995804418958490838535663648015502353891068903852380183785137130288172881866754276974672372008383664788266200598009488867349925238486066470050528705764350509503271813742191996017249640095093266961179868311925266299427822172048036660844651114896064980556193716151530789253728714296536526348296943147574663826854201545824407815805369832179173589688832812074472343702919710973876124265222536169932385602402376651952499690536041311089608879316032667833726060226487910092887641174923404371898936076148633047795141683907282373561055401110463357514031223642269014478515786409961744179018914893877175587701215177062977384627195728382798587771078393218856403064874907325298464701673256438457770127113277740641637279472671191630461214796471234958825175704898247200846128773449044343656726924026663618183248943511583496597130525794530281461429693404809165010675193854701272655631126491159962620023051624140652657293080043226595934375095549249861779279143517760671385276557117547536112976862676265221512421339550422707451635620952733154609221348908950465176216108222039720193598199241528215410612467262264411163146526572472349141104364804300529715985379383779882279036288279709880897583412001954682925498501489200503273265160277107768401516078824973945327290765080057976876601416373018902098473111077927661772118299469948018800123053117272520848010318978717474744062111361597370011396474569330440972113068067814286154528042297267583499274020474811210951948262917329068089089812768137611203619631253386208897548391115159531005572005136306658095551712270274662249440349514513595409435531649644755345777298881928223168058008305461094059447123542574035029642050011467551133778080548050412737952680124799126688332073051212255079655442177872580580504169175263616996566312692014310807160233528621423757096445432639864080044071858388248297784787363742696865433232992366558790342674820142841674358674081017417641215938255692268325357464840454114895060564359687614706509644624904188745901387829300899097888218340933109434789237294274662149259583572468254990077752438974904568219536714822740075821063207850504475278371602054624521311270182850356137857583558496054453291756399218230817943395732041009199280190445420326161439200228006961065464017854601960004753592319762484717636404951329590238755600493420976237646726926194999023500264036070558552728820434189975848699648434717502275370602759374699418932760907758771061590836562529319672439400926256481370344628289851156729894058800201247685872041423103379625496641464831398692752180807247131061540826706365865072262916695786147776266944092193294800361166390142480667167628911835185023360530026804801073646510768302661892620888638465515569010507032718315476481578748503403877579399218883691518409440736601258686627683039197172088306924610281961236101172644510833088062487733758575880471978702852635911852447068029547394523759838233463529943341223206029807495258793892774124839877021817279400486396339792962625897177104533740002872695985820885667113543588673816335436382732929038330791907453535722651247056068312770414667558467455031463786611909141399690563139559349486703394722518919425141037078234477361039176900320792615949095176297629088113684875712929610268292829609270636045449824035028300376155488584289542814360162989132146683116967495099840530838738583198874107416417685318676640549414999679848366225453318631976830862926426048240979317975345338474956325906410162619666067358511902274561673284592871798031784866761029423568744135420297791136000305370908457002088465495071084024879108061593872467325899904407672779581906621919620980957110109327151039021553834421869084705369689705539430500206901849372253999627178141860356902779641631462091162533459241579837425603046305055622897217102497776547199451091813994186200228966962430903776043723724213227462272756885501090560821865474079731879650390494412944469303279344559684581775744304873508930028158290041422388766454082618215514845208180940604544024956175212204597308930581877015558643591884202773721128670696428445299503865357537631331957096848136265843731944979168199305862817815707655023788323105984587792570041939569451217055293454919683865288924627062447179396411463069150201541589413387708919004466019419910128929698574980763321488322569997961700966699548189008731987422282081832979433923296204302208486540519543824751114258612131947466557416452471021242166158373430317945311405012368391446645903710108606240339153966871210372279415414216177859090992841795365675985424338523983910352248035515276563095837247644043677726567856753328828854136208053485542554014274805578894983004570699512502960683330224221227713291997221129517801198241794305073141174839958757171536479032115479370263193429293484143845172313437062470763201198400622256010137173941594303674968110565841060649618528938444036747707907664692786809547458218033147847978031701188819655698155477683780502405904282552815575021409480230660376812264128574803015075049217066085646992944373895607343835004678283811732999647077471450144718709097664594899167252354898782991357053398536378962945633743501848806130627138130055781887440526243377162145241148656082338545235740270676416887130578079785770479663097052252480391178935231774508662583536970694108304245883957529062456729652297867044453233155354656597349826919620673160105124751287260147425982187517150831870810634412320129586638217471785088598458886330353739738928961222545537701325615341218959673358715800212810249355253125523140617586179500805921238962907653347629456918204193985197873455103377131232492412375278932458798459506819913732550865317053532012045875349606301522243895931248035436775139783974095288074899052326290075624216157423755527366810397537906760433873515823830331376964680591361024333050535933579072967303200833553640194254981899050118370763466654413893626007356055060529338452707456594850362064309896770034580204447217140802382421740448555118911621344482674819321879445790369307514919365112308058498833701410476079888338665609234192293588353577648156651914178144524116040903944160135631326966436168766229926745524549730821371100018549621438640126312975777514205273023441784465214609453433927834558292621116211233257320374519933940697853667712414265361315182520751726294529915531171187424402223442518302419392125553734301886036910475763256121339402755075034281439622096741349715953300703189934702558634483223036779231216228784200263586615635831729653653257528965215469140444356898912585365507353860843366858276643004906744860781999928748913757176612745038913673603494195691202998341569068629024334288566557820458049333811220831007218558755528069093186680307801459599730329001921768077790320868592117602919508831830865323221685210186271035782505436054596081708262200834393905603569630494790853131103913051375161075547405519904607772103871972280926713254825634128592252278430321861896434157913415749076831058862540227440482291095273360585066412783221443593222043275221504847680194787277411113635958428206180931162614686045906572096776126215851170991635163823789464192006020183715935017701270540886473049065257472158429406277692957726915446076634128271580105664202164098203323957249044661829515495356397439451682800508425918144559578449610924785042070324645997396579316254516699611753579567780285745683012980987992373095663334702292762333193275667487504266019690948686011245770256572491729741681391482003069454991652633265463925366865848894088287114217419463004026410874592595169338724932255796517601385321525527448870089903372297424185166238626117184469844192907381392651214729199122730016249002528308174206871794416239675330949322246373028021015231158653838972636355950252988039743962813678360318730312604641766486296478099553489188755188107281093740763326159937538014482914028484099424695200684032471514817927093097185288130505096147408440408440300652203897954142918869987046062009318759409816282017856461813170734833552434928336753219745098443019076282069957231528109757167923790670001903222322944502573153282111046275988293230355709808106915047621280854743203478542737616984294101502510427227755046143008168946717836488565767282686643090422090679297344294564260358428616798712562508221999091387728597556944127530907062488313829110723037656969583858408305624229686509422911767217967688463328000252434022580288597462147944014751692359344736623423942881272789838919758077490587954807110336288375365530151355696238982462037338340988178174798472429749374536629035512379762974577655892682151948358860824089810070676852181979097252726026727844135629910340339920072975248770413504256655829795289379448460655971893216311548274212850446073149176815735606431652292226670806215685851623084910660263365260964090764559315625145861988160772408110584082095681444232657589075422988798189231266303024963524314308737340178685657800657012541098889376055669276025761708177724994278423129827717988671059466055546322760913277700310321654956410489681253030216023091629531006315946225577334571790017902309209175187253208404242255052502691273071338181407359740373364599686886871461883138054410306064775122203768377086426213818182279163408193475046595229854212269532655272193487678706930462245433287035742250544073894564185213743972848092487644857644406352796485844740005701959806359817208757663692399529153314640175927966400503387496196601392325365368457554684355007621562428059095055012861095760668429956576275411125479277644618193723613182721078049148909903599492263831314336223031080527233836937349572502726165664292177777844568133876050069431030918869144529344650193535548122691847432592874192177207059185841498746103132996274716162921625658660872672817876820084137575097520736454580842638295459047118824472161334082904439903160963174804143170309121897759049656104574269308751237005442752254567238475467679430380887935456314619987751210020075958120340441006996871888978420050527655813035979778442889198159636017132113951137555051211133358323972856101788511152433631922009204006813695463889536777386357359131772916818032573259399394425232498952576509163371148984591744940040224150590949478184196537564438452982288700446210161352843389568629981592738175461817735159524063808862237805026023998281394149870485878477743784559379373829359709537196236839778895951329437218810504558796974081738153145971728866678822920968979376570402923316024827348637725808888541084182176072658922669262725876330266886863936844270062747082787518229860958720349806662337708456436678774801035420396030328659017731590254439958799809580991026385986025014999394788606183363188690588158235910735480798320693114466602256617795840202827928113755429869879958305955968538295544940619950518895170151040159597290549732481288845858332296456025271549506209763402014132556415625142608686700582217785003435801494380198523073633251511731779633890059043050759644196544484989427559123182074990221372890715693202119577148914620572419468738429371003063539254605693201984647453947222726968733901202353595755425816309556067326503895114287659827303162026286030308763629272214946824328872605634912490629291403733368636279375574202189326715969421713046540098733454652454238749349031053181472607485273506842151165396516459941751300246413890218410666419153360384230761823066286806502070229191753486895480935488208423742284471263748500842934174649955489337512497571234331514029441048774076388669349610775766315792496783036225101956541977749788844336964465035322385256420044729145855581646282320627228438560089241021351384604109736942663249545778933728199813929964103182189085783140012479528567879389526403359436189899428769552256424670683985474857274512818823322631531273171663802048242726686218340904109106675398793477734324903751927239646251884415904675027799719371392017054264493572310830091599985740091199485270270027411183131301532106146771570018014721744452543040180109702077304213390731058518478502165971647401944605114287446471056291110119240066142168774614117760300561604759376370408679484775575596148914250632249007105037658667928649336455271237419355349268515049245830108612312410094758020788457403866672828843107819396216739958733791871927872753084325842943856124730547202439372861810477048963309712250442777054265886066217358312198134853818345098252575125745300016956487081542001991880408388645456346885743501589785912565771875277198456145051351662749475847568617919977037927170626020320428024978998481881121540862501700369325328003863443401028873343148691553672886825062252427685970683821303129334208985402328374053346534651559516511997966161374381918489931569239032320858556465849228473706245329372802578224612879126249694607389607436068093807729857202845621851741708307535448270923487945362354240003767224466831984850612990967008630687413835309472087005567760368938346056073527996242062064053695651499277899889059750431553465673006140205474508500355718363995652227961449212591790537785874490308292793876610139398836873023633614787774638788541484656823213286963761962386219486761607896274392242863670769925409377787497221444085252558051338741004915342605224443122597415667966954899907820304112323956573241054425628590728061940742848586788883410153049984953075081989460968753900229258756074370559480142710592059095281261865927747364491811944565475012933598574738346971985065160269889034199150460325244475331209052379252402788499147026154425075824663621435146948485166243953722093816823546777024915213398401469065219647844702281540954294844606605839286783686180627453883362362664255420179627871519121168524318438153431188448874225172114508925609119881140117835474541826469265170836144357473597900679144424377259960083576903715846533668776058956979958920088295110916536305590187024403937909780782871827561831711582285176483322102753205676519814520647950913567643091677667689052423286584317282128754393520938864449346608663714709446248281592163918311252843723023343000007672797015235184618328895840756179881871983600679274985062742452839061906742011392560558621253574110613393818829789703790648345220032343164110950563150337875326953852997627085058789377472630673400422194463711006232069669764797760997041791877180485220048329118250694402074725737196642946811740097505179302464221228171303959966730467046147788733819164697451200014005774940137584691341329368460176549240668303469636645818595088745237381497314953663644837345291579144070601945405866401473505179128539541751391327523261262140224512477989016479181673482925816294560893864786675638718833853626934291287418011569447083485427081884812919268783699700681933217926295593022957190380880748937253234411926635803449654343597510036420279972379360710136007931305548128245514331698002659486078255292742835786330276666265949464971114477288277084998886002276505461168700928613720514568535224437555521050549494174477867843247994637129841172501309063244044430224382541231152706588418675831104390532463604331855925677671059060244727409962270644633074573812896029482267341084199980959239068473100609766907822837335724286909941691323587937931187473423468976937200772680682061915065190296227556849773775201498985676625597504935557743686423538245875373739053827073057430131725411204152627598442198395859694484930251844644604172780137905393327466504839476882068375678847385559729510469291806799579625945914097882743975544317029153712958299172255142563284829255795630178034453604447680494203941640032689066165961409408628793845236637676392749380140888154025370778830414689871761686006297470889201943798769666946515120906587141685328553620629899225698634922788816519983673944921090165252716821849181226661101723606471981667839185313681801007619212528438596410943795753179171142705104627428700992114920441811570620435064381710803594023398334606865147634389708212167046068736534778485073731718989898463040359714436770417334716552139631016832558820062772132027227354991069032460397757943239672755217133869556865794481850176111634970742697196814097778273239931816265329524771609219419982847636335911580020123593808919573150855053937935986942363630264292303184562340051986808794523295240722105681174489592828250805690756652582494091519154788587916170946245390749265730485457655736878220167634575649615658562719795888824941818840144276664273860266405722957690305894065935299182510401094335658909531881403138502088809849527050433437011852440583532149574318672227776146265582446005457715818070624551075803201521873750519178703280571883369422625732750512853274079130624248551952136483386018834711577284636720050599488622383157705401018640949866755035744861662247712307972295920236257077150167475139752995182554896661223260267248975234659550491685331470473769761403269980644746015061517688538753742710716695247698282488412258244119621013596945121947961759283666303306302411360026010512529327049545422897362677965176140291938527171466590034003588292988099046417252281177195209445356470593741425222941579394617231741405094958074345755427639118524061549626460707866369347777740601585044476008656697734841621141859308203519655516590275970768112067795011856024771758630930350343577480905716353707826129871274745319539978747707307873818184665381586344232439184407421585146958716953513974204459194574971556866372285166796302744488951785744335934568303538674428660567876960552628828119884893127936673484487158811363126391874768999996114413078756466874245966891744802112718334301262689051146103626769497202009650435206304867901788324029334339586329501486100678634170867634027516456018033830247035732638072174512185558796425240774026466449859927468139786862777671775963344432896257248223863151497328853543180063415754623766529605331746088801760825982185695402150056009145041284628723323091066688314060196060869218567853329436669681112678420877363231909164643133497874418219652517631785129240589274717108349684448576433216719682066325600567496017127179519119379641407192432456199647663393161915937085559364099200923774769053855406993579045561676857255461680328317014482336002635594220377191966718714977824264188521741726984774933546542294752852174077140891349134312357771852400362602692555231532538052072685317739607799331871132650491773304331773385211109163463698336439407288295823756682730583402075526667193836452995345621551281044021568238594308064447921635407850428592975091922160904566243539811802695118317469198719191612477538429758018156919114648918487500312566261537443261372820392731113036178666275249219436413330948351548628629199544007918851220785238773075151543800677599680693886262198149876223855854324244092731765912965379679479435521290664110251554884249574444710297797130655504313711687360696071109000880870516279148485970216656251994762652994439580602005393922325230539694618632244335997551289669924962382883317657059103147355412605115432623755293095805761803372791442782311426861148650034395800972484842144938180006662023310255302074465204872989279573691449886262716467239866237063683942507560168261119670668376247973355633782505974581581160397263618285073143105760366692308954907379879887552443041167990242616073074478010520658242678899055792108402218446286454158922990822687618890310949004420136664741978781765107607999074162504853405758568665121562704352886731593676560021081924354498060612188409117139597004790314268866535007521395444766826200542188015768658024872070681830045786541086755739993699975913941164090098667488158716321980789913749562276527329838211526324348568478660290523381632199234362492863539732808428639470998299562674089261969196468941996236009301565743545491209293198168276995370023489911909516391812789200880712702891528061615996177023240646951395830067171174694767851754826473619133877738554984623270190513297582586854524092022242084083429467741215997457243934128605323093656720922424603327903427459357323345033644760113348886333799594345195857668250896167010486995967947396945231889780903100075453712866742935168059996706971026941983475243111360007415313212511989032978960959101393967135055746974496562787515538235340106565028365491790446775308968622990300533718568320992535840706246866820132400005565974447376544596839614944632229331817817634814151704852651261734393449004009711795679421544814880291785549124003407771575483794536041692931685329132296785455607562018002872132978720853579400323241550956617524551873722179610087498885424700409058395773760659688592132478245840265855994519896403468147671191653390621177741501256754467324419601162726237837011562883342450948343759322138191730465368490626754032056078628552004754437273763393382078844726000184697432191902723942730041017136011895271709330521040463916731233344132121757514650568570597703358371609554789514207789550219217412794754940302098262123372049606469277762081589245746479533976649999694677451476045134387747458620998248282629594100227938755880843576712858865873535381030928762422028208927039984090643716160037340623853061865037934593869747753156483242039535475789955283089474345969547200025350655032614745724362607262552912734670313201874968425942282999230372394301684336602863284810197205622630384237718218520743600324416530883904730067106289725628389704029156671609094546599466776507783063306582049510187619972156611401696709157224045407174201734717329544558851250647249603102980682284418973555663611042809075969579188696452664086759836921502440629762451923750502710776477800398385953953240668807496111547361056226667551608111323023753126774633029497653683400276210819135193615658194187417080802057534182945427623992847469296332715599594781446716433002397175224752452357001975205969751674135107157109450786763269357944610640506795972007596648072030627608575462462068215353581117244746439922302574165088689156401321089394897503657409841044981604792878342637572782630540547448628428084819721884250620880100333979769848770441729784182221057298250763831066391617911534656043051022268850521101877864854848632774926428421044980687818054556876731995402320487193750464613310683562666833231067886051840162276585907182180829817465914153794712891208588934188129727953792494124023825937289597480989895963406936154368206851597332127032346317587447631308790466443482452536386154210158825538817513083592716487826926523403625484979630319874394531960839657616807985280857486933721606348632782403542716967815094950994933218106076984288763494429429989553290616254214797803903124434123813068805101216564573650753267979485290302437886793235589907940770911414561675150118502292518892118283344878269215631753984589058364202761811719605725436471302480884245765513739174419627970835328675371075018016568941109802623901969611683641101628810968564607375975782743490722726681078131210995269286012246228950870535626776637413935075451838991808506474034790129565174764750458557552859770347067727182478948854958122693112146739306920193181313192573919501155099722193874520623246952039238245695778322037670333438848162375915185180854637602372637994891318114489108788946889387992772234025296277935991791788246325932839898901314967113091113229527113505581156351394368445529673991227395331836779186232966388589432039207209344051808279595637543078986111347113922231112200024486946829657372261534683078592385710913051919322745757918328043120988162049282171918632490295009938348661413182346408933862672037995891937527618016270998632672477181295540325490731931472272722951640138154901189815454410687291399724423640786326700184147112548255803143529951547007330608426764642344788657943328215332818166065169399897639093689525460192723977922878105218359138707530764304997721590406217556547607142674143092665540797132827539012383312492439499198463944990384431566444392402161520781197298483040828381774500835816264870922668401107903641820434787499930976757042574385449739349056662867735057052899673290602670202905596363749048519336237368351660399952742344018000549534625121557553551355188474432937123346841291527583861149030513234555741199956700521438503442190151917106156450797588538667467313560225892616358015663720382961114150451249551023691329023969250548623974046154859600444800134112154631913884721319102775413507036943089853455696169333653248373493776149139231814713946977109714915211840477974943616132935256871403291112161004864563450848690620734905682832065099146542911503745162904917782244579591366017536801914954145538855039863546376978883237749792907517018374529112257742637534446475121785851412158106826010675084930085089422421033919731715735796283003746277056745654504326359753173815528247972659354324610560185848287749714423753671348843471889530787100257755244903765346394058386296835642638266941746435214274828470342893748128294782779163628847745035317904661885289782452661068115705196177601395473162127158774726579376657939084892539683315445546742136114139370660397962188546461057190680910265510400948238950143713202756375914839107015463989219552964785800871625553453869921734631860024494997066510371908353336341131265766960446373143604667209827229955405383551611864788635495717093735444948010909526044117011255205338938502467327004278542173078139597575401184456156182115732348558144573518024020092883185884522805774392471092421579880256238397382700400530820850791067866456940294190602659741927353362482579562528917197590637709469198777661493463222133360278108597054585863035906003608582808323826537590712505717354176735880241332337334906507694529806314212082379106245447279814703554847583351466787624754471489023588535769821918313499844143809542251740291466966520745502175539906464214053578135866476935674659684657464283773659779085708067496448343973277414379236768527595948385164281736420900329889140405048226819711996134086141043103037109773875261208457416780530374412116945795300667162943195315204019954199593504314411065714592519001801138675918146611780916476982692439074010103869200271811056566967560342217716018743504710298009890668671954700169689853238200780136419717968207954705662382791696669313581892864708111380190288078176122645804356064226168539431907977899913429363946354827803268409372373812079681997089938354989382353519637756124286515796818521103974804302403067699880981778381042120739288790407679767479743523573472578688374815813918852217872663639627837607223209638160353782390236488886147329946328499052056571808982442251089749021963067767883468784603869230957451418535946725179643527461166826002774839722446560880722520653756691676282773338482624978199790744324771986322556336117897259914843246890971772927632559235389432900326065852521157199036322631705646477132604721076337674135168414012699881682310317388182042059814332783787511288631523986767147025094392341931173091089533007068373161734866537807160145178974254950640741913548401217205491381568740027872088148378455284639141515490523707234198262521535646001267876560191621605790277459326670331719107214268979552906716109227669533866963701145244859237732075701656951512274261610704101160333419969043925100964900445036703129417628421271488783999598710008411844500324697585581633511740576929492276896347457124796394364833399813383571401425919191267813176746085325469192342702012845468849571964457709048202202087660898756537500069325592396527811062097817967943495863017528125719446426778196388061083111161018009259996750816865750937524206547204698356930278182367497736444775502069845313737434391049014293213775106578518663345915709970240901539678305926828925921738849022508478057301516250426978580504683896452664733535164405448426611533196244983055554110015490980422183116678112962528496404301089111562647414865914065481711108765372835052788278760120875458986504987242764814281979065700667408902002392896405313467589829871051487091199364274852986429956102942563328814666765667945688039768263751126125802571141207100528030275760684846109301958052535685539445195040193923637094475577732310241669940862547776640140070457329752200170169318659592501745255025138537058911296393395389093097852902912423296507894839590545529120081262721841400643742311259392619721576103583524432017616145694149210663042297399169274047584112504059574166337371841886026744720711006809324303123425286514363763678644566753300567078315789442397221622085641533103981692475382096182386646326212918635357752064419061559381454899124808389130715232207527601613494999492740515848356740498723673432056215562065422876764383274011738686666179306663356015300872656015211041990137946515865291097645508621573462303819188156814878914219562381354527472284363272639819892162065139547729760099480306614425396842165489754970955846585230029166636262393470802162049824992507372709407237223162402678255199000054044984165955162443578282317933427116501005356590210295510515648011752929305714039732903157559921341698245172671145491761812905463416466011009605005801107032070077182484432090256310590198547471235010070004325290937499009799796544668529212526387619498241230472614301778282337216942908749209952190275554422605586754353685675350396092903107498248390234548154331512201226303124645594437181189906234195363200938962854569705665502570995084847344795583235457868666250853237988003095109671560974146882249361856513677117758115460730459337431724960120765873411032676146601427249829676304611512541455407817476418610479550665894161985307664061047229220362295936058379795068376443722007827820595405296027592670742778507331453462311296149128043800883067252086929403673297198623590250752263973963033324069572870552783270328901611552968810913372144835254922738391466995385560160234844654132522640514650079375357237676859342691392535560320029361227325066785905042300323336972565883578952372207765100810008027186236614209516392210331477280415941123240440604048831179785031516959163038344540079626544305912207934987335209360480882105072617585977803577378997034359584654327501187823119856868967731147052322415408057680668476348454558794766503754133451984078116547877730084897552675507400138229760862488031104023262614938319661359870664300275347167765848508615864510309472879538975419249164471585034277600315417858119261976014449581282873158111546433889832341177847014316090039935563351437220894263697436535779466637223765780820767335278878986637849895963900865878715374632499247984354237455286020156861978080978930861633576045016888298567801060628324094755438011245681819064624481689888117924945598117918056748011422991277254028063431187475161353973973559810276640772940307352730970029875402647700676236418322964696212852812495266388852782679810549739752219364860840757384997944247545218870920346621179982173387294168604735252993541430625915214833245762870097431446608711884177869492398292754764495228140010796926400128641291035340315784053408585759465853285671713805602926957716118529585975419573053782016836972706871211826250513804778242206313128515493286876162525885490605210386541818559923248128835789497312740076077306383418700510672104837083382326328347058574364740208955160313925283957254375576343038948592233885045885886567136717383043209630533271762611505068048300969042149892864600208686522603596050046397922600064172965557800907153520227631328584901243497507241213737155641820511732600209516234347856528386514902614823341549698934711073021351197592508562510361489387694186862289791125144564932060142977527579196772707885022681278890373153828737289264587717783227427611256573319744171860602260267592941085931881326003779360875847539891065248668269307815703420714382967726674174492299959952903259799644588251772190844696366911863061775788582809728570120577318711631218704921212621749219673039131467218807519155802217305452569135500220424772965643138075159644375394036959265157310534151523327505897813798147886472955232371135565337243197674112108379242382918197172788881235578331612069844260592811139645054516124378054595778602304964795727027244231467982985326705173097578293986941249462930577277902829618099551454635071389222134001286408532410860885206210359263214119820567511848173174842550070970260664064344415741543138619999044020471650324501767559370098612073397385903833915923553093799217692489949551426941918793646995425815151498393067970772269407905477326966964630942823463449411973925670044956712227919059984609084175989352142193329168819787815035367068371522237916577572200705144165226425394967501544099623716619674830465050269643825812778270181308093038484933608163953929091774740251819140390822178957739257764477004558501114478106731742740604357002268180330593279126896529973534784496042401400457450402088186038382140544802431537148621246901659882445922093720960582194380501460626832235789375380644681264953300901403899758818654846001343157702314887566840601672903792672717945219268877220531295262966069805067122822959099636713867007021596222900527645809407217700362548719596775788772802038570132668575839975974679402801110569280885500360794042374338475986819963358801465540933818974195757381271222116765540346641014110843025571598439221763865168545522853233898451029629781305810357175841990858166073672248307476196661711414600399790055502336198285589818433134935975583470078576063330653748557946460397419086733909334572120588158691744302989942150317252643492680361605338213670648927470530414844349136832566669358945352205301859631813742557835578585220799296592765381953909546281619613504525590165848865750379106053806914828498635827671238137247345362791104265670012236465579318084165501581878906716748697706871236441020834882064058193954884228877984637643093471121607687643812550911816808476067640682395178613846221752255798912131358697680338290914399163076626162621246557641397609704800790950016435641629529660176965091818777360612850009437862734800869971883227101261009396545098360856561537779788163334769713357027672047180361193191872314843862228910854429834830158277200471104041609381745034569065938858658673697206828556880879450926128361772412049705160141413545340598736686239411723792281074379997595907209514208356518490809309133055780714445250268327287351412045047655817558813603842213115513057728025989429734124099777328008788681142033784521531727444767394921625168362836470041348669252835017637204220651824743662160050282193348800208637545376119538983197024243819672275350359514936420130568730072655023524610004530045293948897142648422515754403793786328546961231651505835468165969237296449581303941780170900260495215944363169549027296648880792029617679876347906495095793164774027303576538967704785605934581383192558526903223887931752518339925318683045855443920352719439670820892240136439120938326025372121441455489865611810708603067682422838746617728478772813390264453796226551923346492860859310413115662333047904923477211447909990566501688019797980898347607299542177742173503477912021297875181830833274323254199756191106350262904187406180437364936398202065178804662835620796960158147502388145589623902252545500772143391333288827914524077611499270500313313756660146046348003549899164331974122211645539921976971918214534138454517307483148440706077660993312462187463119843579577261758524456073267861856112305638646692058048326689968054282885931330420346256583325704781044689243278410440728353536151257716334065587415125441015514341159847012625401310165675339888009657651955271304755615540463509392125180705771916331732183526381441320591671044939762120256567878837413894816877098361029833803725198496040627112356159907624476754855828577349567065612527266645896531730000365413184896373088097355087239819553110258027819187405410012122760368386538181083278318215273995566359615468784771663038397777496138823999806500197428338064940369021368311823299084619243640467959429374661811903946449072788769710495647955201457744868519353205194540095246474086839486986964220754366233640046149609927412394214547422397875654891011669776696684716313460788492781504877012043711637724592331691557619886005178040345743726143149919907652384868056804263084425221640406213928281859039019516950158196103517753671621824731640449047706562708984021435991525831729148195907027938699562050376835904970611635870862489405575876968558712667643995175719757770748947636683420901913824144795609252046481327583425394771143640504861760978202161937150273402819425227854783122833995443985877779723278844430589483968620866489406515268745451638461921905338434823386440841356537772562655336213948594357922605263850534585836309969272365049163172656982643926838049741174713457166769936324097503974931515758815616167854513735258197482790655666830851026954108789841472410067878925288114133863760149270413700652044812927339017250891963066811124310752085077150473004060932470743925943980867776209141248294478367471868166017638808214484365115844708821672756056471588805719966381304764045303913641922095538802816571307858483868596969633166561105769237034264376176640600859455035161299901963116899356833545251378226462756918156981002712202447905780013823768116892298827624783690644184468538057416610545691853235945011575914012214938748382803171614872382658829535144427358961474096875866691792415887919548523454178706175029763321976417018981238304472067355081050793590275062592123351915781396061105338553150214742275082171804440805971459289391303007006092190069111081490619969937280401887766306255885761464171027824136091309999168953075982689629160774451946947750100765515390158015787277172128406805841391527129513793010622419988415562946601494060614564775612459419106963841918524576930272845881665692399400850370398868374943635408843678810000258167339944428314685092363195428057999076850640710052614973167711503554397707048470680375329787575728820494836423218586745021922701220322711423542056695358806960971980001601342515507431851182043811544780562030978560888722638503549387364791014841357475362427382508309364457726331774695369340953307697090675316849564995207101657119507540876154011800174839532368686369080840192096163422142172094195306171756417743993528579611063548798530040148251114398228459040852610811221564613868087137150113878222367086250078566558673003988252387207087423507078947251924428110001434218657745736834946501845504064561267845644590443347420204116245942599591690991160189081435632310935136202977317659005914990528121013549765430825917688486515702697502777030181082834600421552349678711656965945299411512171613841423632476402504777948149838765155002400422169016820691766845877326729532196631480482109734110558359247449798210576429497742593257694666030179973709873056663101304392292660640873527614840269691044166927214502322423826694199962367770024526110776783846373653614919226021419573790134138981466183587104788813981212430912817222853502810861965891217152412267651756115655302858481321603027335679534008681742216657488903651747028827960594050739922025930376530894117434704706203775677719429023519441360054506087242970654508944063656925309815829117943886012307031263536851865157232066997928448843223591074820140799866517104366058079909168601744608819517233717657972417814690257938866801360592206168049744226152353950770892962880217274653385854991835453115962587692309529201269785225114846965611632456820812480849780235940523191488413491669516072360789635526179043859663167697851318853661968561351803976181479680017855820797420926156045648719363482777932442845828172058725908363631604866838511168065251945611371041579954974762187128967423574549402769166998703965930708926603702617558270295997610741139027130252898354317014231037832509664986470959713061559230258741901194703775498113218534158875588122821123958368257149385629250466825847036708750625313004229173222930538651536838805777424407914299509264403548410527760099067269592183170120439647919615906752093287424173638860404394404878439894482204051616577616262563364530303387631227375560172474370879135257709324914106420472907924652444041942042717623942684097335682386297689133779157367206525688227831954221003148632983245656941998960649236233740882036358590020021977295999705009000158432739758998657594972582503916078154974212924032899824934448597856983719294292584047348932648794505918480782646580578241282568903464724073833378206860398528339933819677326247721668820346766687351244540912843985675865585598925489797556591458298927596673944677753113853213262401115169583946939305468797699156573774068735168039159409696214945417617179647955526205271734445019565352226484169780346311938980523883257294953352002990284836753093665702034433383809444671290338566333044318348066865178877437299737412859230147493671759544504001236318037888140196041499808812040446413649868295337559402208403644164162790847556265411365767680032442360939614753777701690795878472478799664555436430921287033107374603204440573911316218457942266877411451580216549657260230734050230465499188240287973791481893946265378948706508670444384173906804433317678659026939284811547734573388703877220016832850033349731822217802963909805953818786988902843935634167749911310449431474670265220637581772738606376221204996431675702605439833115053567955752382013260261442227993799569694561572365545407884928247576051658352730129660210573750782114767772371138470054793777204110386398779891886733852964399962878539217964847924443271339752199389035294837387419688705338709974780654138589973874955370824074753001368720340490452273881772228181733880021577191924224614924146868587752547743079785722687456492592100107404522636153766762552917402410151330505485333539860749880232772641111958177393904865516437208249007626952318052004003443482487795725656264104291494254981819041899526615874355536263613951494054930332809517064503745535249991413562639083548267113886075875497660082014601440609313074136823989938222278612925263291428739180140130172741801865276884999774002024805649528024932181073799458907333541808338194349614195205169645730725448555695952058860326992445059683761795920852648100185067060538287860921511264963740735062642445594944237519632125408689029277554710613670025181557324444033614493191811572844348435997340171880780767215143327778564513815478819138727833548105193481134361213271205779315226164305498112543759134709366263885072027591995344832732295826038500888477297346385822507624006625435508542316581611764429903762477619475458568980710884326319012965080408036048635533820642203703347187806454459569404516915798297490422814671174832146675777957942247718844593732740716574259820402978798509862247034904649755974992580981649172593696380445207441610925367766222241085331304157478096398322357790140849541662512314362631765526071177448692639732093286810270759549575626217380074319046262129919683158317876667434443514780158257649064310287729527423449031855384266721171221619220373030496331522445061017088905467417599322667394644380117849868700997234737457853003355952056949402241574289893600419342749804083930308638927739904656919670209559267596918909582749474128129417257099364343959104048669436041496407518460014099642078976736965918630451762763098707550603076144079178459811220789996468153401800216665542473130582720431279716774600945286913393776231327432817171032770477879192745525337065617150993846912652211691372775874719824215734331327013220064356473879866393888098698504844292881622107579143639944896286584150199203305835696186822522959821796210362614073109963475070373598063331342026946022620126953422616472007779040062845271157616906181982454897959361722036335343680188099052265150306049510924999983711432495936721200398015075082250209312606936863843231812589482912532561101876265016506745586816581431559784825193415749505888994281866954843735351789304360907154169030627790704157627227789824804838266821047571554660258137501357970952627997492081412673522366661068357604220619188525678193252993488652307608750091574516705914207707896242086669356558638483800431235593603476007236503852719490807152692479291980420732196084103134883802276046107770050530509124906882134741187177256017268170126465700724806884373375673703954011608144254688794871669133683112213078745010797461238566509453107295084641156531314655801551205972532959298124639072158302725698796896436155611766155169455359162093344854926745167887850338222016274724007064787559067231871930890823141168898106344571779616423742078065249053713636700347577389688467969423569250617131538654472909971014349154069401793978327565395151501939631397471756278210571109821556420162567758175384220670823649650155832145829119109701030551135690428836702053395310098669187839402357564726333689417448753049646434836784416074669223853672350539614207658491364960470723473020835501199184752174863330414013068369005173811279474958433961682670509549719739175771839580149863959684387115419662489199103773860293132636929184794897560384997354507170671300324443634947885073460328209926147977631878421444287116607086157505246469521324544790575456772673046742963599994523283929689839664043046307300982098145272315309835325590051065956392935588817185400318483008431751912480216275216758767043544049716165476781009326854451937883169135045717610596299094506898481773055672396138706888719234030619665290575847510666124411111528165615873862002377219265355306772649837219398734725356349519026266912850392885097252511264017254885476287868594536664382140524418281140019830805899089333417074752223826816657644939931638301675735783100521057777614926033099769481610239094713569235525061764807596314453465997389006416408919203784987567348341437107913170566297618800260011965873702884250362490114725017410355375254903683497690569031227107381367275644354276490912964165642944683693381996883523327442885545504783665475816254883727683100322661592190290563276910524184312341015799878498080319033027781688719297897057050877965489012588671522720448261133244241628904749661965895866496620747779482654206451876647055251013247461613995469065615657964452731994012032551453142457005059253298316367533817889476524554214057879506806005323193689582825529389939633037500765182732087656928131245224744077235100703062217600571211074068367214745424128793003111756565989312774254633923176591844175254779778436326200641642134077703545001198189510001591395113270835455867447568262206418327119984980853383378889514609446537437437793500588908431857830307541294954350152763767759958763765517489700835753457349638722562508775100603964840893713200036051307102163610536723028984514211342329986686674800562029524898803631577334031307832771981407611421444719356503009106021040068581586310700644924195548456722934113193184098862357416114247650139978356410488063612011334336421589830493942143360378693753353448557550297393612803867336424214644308754005460379471409767193677533302432786443398760857994452825263618023154101495211259604185489142886579138528117034020396099219254137729794379329078839032982612440096480014053392251616308179079009545261361345331461736750847985657807076964521113672497763597209167370269870207786733752371293043390292591412851915201904647980264539772497078271249780033529547373328858100676583399243434087937796201021410769591161543737528605761399458823910935268263441007994713720828201463600404151511284396113888242493127385471091255987614394962801001094185402169872909226946036254553169699135156649186416744837439005183769709181525658271671448231826370371257743363634385334138343222546340272239496568262764940834744425282724910705611493767381524299050233191630495339607492352617130923917574548292689902913876313001094495418071819875169945985821586596668400661949266686659259509977334856314232115541421814261442395962957104203063158805116949519273636976032948662080937272072733601831382888382257109011629364475299227411554533964791654446680128341567366668324715763117358541989908995339625906538813268773872421008255510799058818635289990713368357601143455400526285776207070076142585721997881828093796072315727704475969460203896647728824351734394633008405138999450956309304109011790098759077567872258214900088508512908902408601381174342045039205961154108114067299564041513065176278266133625375653635868552434539604477838438159924473666997596466191587024770221660165332764858775481457000208398599754926379954825476505151479583875923501183192896566947436440665963861319227366165430984442136095700060160094296365372424885088274310350715851862144448893582719391089044771269187491534206821515606958957715726447927441442309324971553355173477264151659074729035026436680698144019433792339835326064493316817252082987538660892759229369487512349956213192616650785487472375475381287153815759852035264646071802829660085227690099661532102757336283946230215098449199057148450164674691342080211062712305297591386436328801586609773776070580381317033545611998117603557592890505167041651623657920148100606973991445743637186191561673422628492074269057362156917635445490076572964525884938940021391086357089623518648543228833716956372699400706386661213985234826937319138791816406125067346218054197612196338316019143224083797891463053106813466118121594139272927433985951711522620172695289781681231911644466638507351801759268913138517019841042348984484616941939544725724443446869708686818064873030749064286189669861081024833362330640518641967467946869771606636667455625826131676078298906630948775149246977172603941342128897084039900373690314143079041619799790734083970162571877423949689698018099964337164360070592911432130883621776795243696328900402271970308517204002915038346527371330042449107636672778295697930458171529485056261944387346944183110652674152822907684345404552183566662838489272191847118663148277854572093292272545792415411729974811223222836984351562295866023301470587158044329904489330799750607807884691802201222780943340798643506468420180981092897644965697576450599403656647516819164222415849847639758344665418187914820147907313476494059283616057173956310887063312209812956414966369597839981236899660446990765828650935317028692091478228127488830471664915137332342289864523060191092178249435999141316686627517536992043256172927050976208216852112495349576890517331913087871757797183641397278161742421760517912378620616912614467659592396793793786688093327621591787681233180883873449975907735491912639165720649882774876967015643127186174707456261868271812499241419776017566133214947350436337370263885322518387035056321520780895534000397594047521330654038395384398875323721213412876628288837099164150738569059958414459488914815084786943946122448643693093157276584121220115269490278916357362980242281402782726783815265346658497252579238408212343156376850804501893439697252217866865406362599757907885360169871382603993793070533606190402621134295165556094312205936191403874791889832511671538766419767209216192072501826116522823020569378824920177726760481941493231282014371858059525074521319956564706762382109729429756549210491657786541804426429391550734763007229513834874307396891149034318167995906576260156621749620699824012113654871156629725333129801354582645237193934272525827690757094952114469684855083154348550889515423113173831210651915485145016910014786764431768408248023029438093423683694045596834770809704705180523277484310943564976331002540506191890566619587929168490886799618113005247261470785689362336573551282987268418738891731607462710881988444706224325109206320125018766770279321031264119034041538379068980390671550373574228199280657991793826454041968190702172561435065130042297764866681035681948752424426623440763579064151304913368682517222484816714871230740649209473329295065279090111754010056181756641070646408240562538227290846671210449772049519667651581835452756308970604294294779089259640127446357208225315673434518996612052838897206205697963229168050406254594508678439357127813431361067501001752273119980141402854211550375046461670558125026828909015493768900380473059680768182102476956138147382185431334925798356050522247305231483249987455382055644528654348689818027754907668791356189890184864888500014113267195401936436012169952944448616809558643589326816221706660634252545038596770781411350923930656040748032497404662065304988834355310168957628565266302747596291148946814607868772258797275259202317651861643892786126678513153222834324332511782493674833901058684074049933010523045836358401284289370778112677739127210528696360222291271792610976357824136261173459897898850850727425747010482931471451575315119667503738800644626397583452756846586305407774903410962069819951390411049540321998339356085043431654589044090908345881753764662229577245057684635788521253384384115883038765822157918589418871378157399693357984940762586878801064434159397134853970503791862245487169335673681010054908219998076594075961516159780562373763292968290548499309698880421601689426381546774543435042944408090171874780520019244688462058281796645836499374769303940422453548290884772036438779750419755231822129576206957189783791515361145917503766115704108771630597318619244224238558015809698381571274167803985806793991748130561674008878327095755740839724726673503251435532849655794821271900666922424541429506828700982069887882336506736884032447392973767737662433886492080804264112990532585825209788195958579232783440909127609288991149642615025733877846180321535257373321924492207642757490282126644954875192541840331324503412452463562370070157999849255056158576596825175943141292470820527562474743873361064957982527124937379459906452520351288505882173693841940954225100405920070512693502830715938382882167055299965673316091163550714743384035183652740217757654775551727992444133832529122187105524667957443451034183877022287136711236229472943303524172363561562669685086728541694545698178918510994562901291230055678733972742155114001967962324668632151152652114987458602071527700660336549586559841057053967186221463247758946065627013445884849233211080871619211086331537985960355697875023673883347652981199333612266978411451519279819552929846592310876573935465406141573717675520307901171509121230742183198858831793620371150648678988754012439302454261380853832334164594506810376510360310090722962318329608828644945067033844413308482477150427211797512622236118477216157244115867471692568801928943645063736886125287580139721990367961751631951987273416001958085447072853809995930417384858364366426412330753755347274276939840332909940273482232523972278228774710491064182634024554108395594362899174133214973196853072952093652275750203011086973060323019174213273118617381467353322702020493825656540371546716479310731259557185086811924283780457907864805625532652018210789889958782899061763746456368976692520917547684376919361332850607991545617776202073560317515693327792596891155736801983916408873666648774798529441964085209799147811420561948737536559493760509016269058362499611328228709663875132650786534106049009111769342456446812686087329661568336049093120774707790472459312116618277032833258401661518050355857418525307577095432939273000590439719283102232620908075644346536847275819470796593744261379988878423315919425780713506894773320918862253429402401355119879578003646523136548528454629139560448313195082397523916768023998849638780211911686236485768540473353974972628054594152258624982708454075895757172742750028847200572581696694312771349372718778631553874966298508214104897119729073333525490743599729707446364658822965505282496904717710348893376480813786059062763946174987499163443572880484639050384831152429086444626123416117299417719373682715346692499500164798427608922569757469633676660899288151914373728523561752841137511104436544096088737028546204821243652409935118769836279128429608302321180843827901450419428533437917348781144461959311813934685689256787949173612933655947620227699504703593900076453307213898641074691345939376523567197046967709240303185321161580337784589726554891096855278739445403323314495883481850941393015698572489337348922435517513327557007926695113381209870073319705823139177535339985856761191213757851235829383407394115049357142850803213029547177870767374820054994544116142449012706563606227688454080205305818905504826219596465308877188773502054123950308708874289521650396399895596285995479052025940341985491388352316110736826772320254990852952213758019462716460868343624961793607978607347851649861281542954781157118103277035712753592090847816215278958347168205837529483872655697338462354974017387803766610556074477409542763832503897491884915515567909694741779792700489273399568770174768715896493738048345992297257123627351033526001017355618875974751818458173004642879941682217085719039908766601256948156764722803428097402118104166099171855796016856962670403815526685988501025621321880106354361110156005277303513626223634719543647141075636528684891360205709552766135409251417222961766666965286626621923536923383414296520319464356687484501317783305912187707402409555861126594345452038568694336253413705532079999613278346030313141333265196521189289983145725646513975865927420994466490550155928554442204045325055906115342440119478108584701865524036705161657885347966915194174757991643744730037852618552631678541037984126345821983100797435199119700308639705186006078376625760712686598986344156928507585661355793645903156261662200981151226633665484658388939139985966670783320869069401964429080343124091454158268312055030483243479417868685225951656642330191287034410825491230815459476412156539613544740460036378141287155056980042548408045785342433239310341925023960657929927089460149608553693417911013729974108067646895234815847812752977662671714852550025513113468076206473563135195699960003728425369500653689722853015457855087543745547519406789197709233428372312010630909794996051847622740421826482993316757325731443156629356180128190868111877347661268897477820731972848353955412782597160847049524127742292282352686659588801997236502049908670510505397871070316323261288074817183721370650694694005443936844491969574307462582577380452172490953145700916732513283117822672027296199279716606234768756352685350651330028926737861318192394987853871436374754199887327965667242290732245868332947492011780792107676891299772615891525780663332125941170608508998290844332812725675196471939445754107954434038032609896335974262109922987781440903609350367165059978332877110630039607406231806933508773334460560299136845207483952113885242072375065333936697862034628222315502131664438359138691036594132683487733205734525200804790472148458629618617334890370799606934818768915971347738206911196032044873354835721557611444930588650719087762636608437563247204863247480212098577029367266236550858905427895998675285377900607157452044917720991636063314949966294475087854282152656378933320258372923616108902259054650573280246197070826386584977827536924426172963306913601300721213732715055921047141182988490620913647204942612090949799474853257873837193029222009279198048373561612364281769892797388736648365662930816891701998815660905189052614283322686604407782788311996965013305586825592748104519828808849060306123035873601452664447028999599928076150013840954913817758962675185176507622099376366652632265190687793840732483165842403659778211648621214471345185697997025750546157664089036528907354442220247573394080673004797219119666450109045080546385330092151847668168968347788595086222769348610942557333976389067677465326054151605723754529392626959089234590749822017731753288782576489839025051648188860154229341562058842089173409558816230239553253247625697023137390518869379246216425716835343398017881908950375904499909811772275185681506718515738313757342203117731482741046941015523779880264991482342990454586996715148969959363490582094254269639253150318989624799343957857524533506770387608476593338164777328525668399667966076887318399595544996187621394280253029416263710571872539923796721846557734478436365278294626903639279393674285545321020852140797660702767141691629402753218147660219615310747191359028968881629621143304777437479264193628830950785354651786237265820615665571450953967769278987340885553755603308955167044390365902559393072937821601411057970974721646670596770418493416344398744320706966854135396672184595029473193938630449311365747902001153061632447139123330792169968383876960217058096726790100613292883023966940573663846394986625407284799800961247049297691856077532552785872051596724040533743125718552985873233282498210079010379059945128237611469747630012524343971231717085226202891648504939311701006516347934133173661417701238698825764371135616615379451839565196225454212715985336922718024509279358309226860179790887850224425402006665427099768935517230140294219850761438524078186701255289448592163542908730672301133353100221625397458050227903227304393533427157100536038926687975469134746371075398725119081830349685411253859566728445887102968110570250645114549860017243637698364792063809894072774849231934488287955552439806657883826212098364079986764918536400158564932970176516521511281154935531079946038318357026009817191484859657114317695963894634514425125598821580215637825094854468551483183708170334505747157659622250559739791866509737755947914110571082966850484973236993676045518377155570929845656346791072072943598283743966113252778658370988269266861808099577201571057140429402648883796606069136326950499726834957462393151285695721305323199340163743542172736230282871354964292031325623944089999517752667279458641046265293655236760388336299032440073034619004828732595483174285026987550741532482376445346925555278316338884507552525003865900073039115468000956332700127770587194149454000951145591671680252428283302820338139337148281891132662498455125827295012880494792537945281544245181884507056377404000008144464069146704723713259906941487683376505262193099032083155718310028703978768501335485901698693940761415501783976223216302924630559086120870409623976796877367951594066610818473380657214755692570780392870316927067094857948389729565222789552900359830150115614567687449451226798400604683674883453281210254409411287866215628364133556822519776766316392575400534621273372264013575948475517549636468441281112977135593049147870065274170584432516703582912548564875573822652387453591348358291209494041213040396750376840731722587912991691305666143161604008026742461841374072704090534864515035692005439027972070300607584315573943305067410985064857606156826324299206656153932122522477665346479237141173462374387476515434981342949923712443835381163410735380804528299343150622658804463546485368142351945661482816814904600089125891766469696276009411499238199152664582990395437717261833664728612211754652058274378731824294110768336646022189281266187559208009390135529411036063959993348141574836134555546884353349140260060731845933183124804886555723785967074327044639160273401227003384208395060295503510818495980552303905743438903335970425495411649843455631949255909389345212731828952026187732652514090769260799652393497357416557703345555395539382954804488317858056035507119292716392159682846476495274044872442098142258709299146273903396020066766736993598756486967004227576031357141636291451172842004454524862800515013584891584436008401684774372409743787716784363126815073514316188679220116565225255079169058949732642643482278662079137165054624027063134658295218456705788723540073700667338150059606854253763437654327812941096437392271026165895266594590201388369436895342720787887668228648676236125815056281813160681518100162164950705480770682635970246787799199433312892813006797240228275829771423200190250884747813194977671032082251280885210298126092221002080338625059385735902464599476475110320465576764101999691900406154418829032766288759618938103928699492705351094838197452059201592770115218992812865157064776867977468134122579586337779262490143752804746841762789175007068840049746547980875889311141812351462897913280533680146327855554259208954800872768853655081985250922536926999837906878865126480615036333247285326278966648408266816394517182724483338103433908130951357502159467051527066888976406787776982823236057136505841912368406039481889685911240485475727963167684875030166795134705211620459535068800366696324474681727858736430745268999276265423341291263360275952948716760803729221275108992379525335390895726725987385873214391733944646081649739286471894369685856142040911274450003601037947852410645950309113164541504809007718304356659781265665789576798917645887738347637228454221413212186026354203450230908744003497379120653911943852384608584468480457244674345791824439841967075927424181760473043528976446979100143637975212078660503746144875014050779152158548172455917296836009570303269226110328767055453390624576975166923632209681097247588884243904936885270896593428517150688198239673385598358750365089107796752778389378211861779423063542311187372786918158453645950272866677723650799486514772427368553524983793037104071723478888530138185952699379704622868213112913779096266969614338713710071795304787656132622900559771717102635288229092795898767292719866805830605174338925251257242183947141815275595954826056670587864953488633547041562119881105773999931428595686599387578077076923054090167241651071611044659540170894713010372567503776984188438931095290697811216332055155428860963805872336626157275052588693943544638620708723070132119565699097805620617701244067300864488444555395587185932754538306614720356638092881859859945796790552898514404175755531497486607795543940677146608704973725698280379918413297577643621810562602658932130597810612353760177435035527455859891781380656400726164239686637238132468389883167852420538979916155370251179834436433004055391358893244356409681596020782915603253690984242990719169710122831085266839373952628887450162075392192307779298425351467600812123367972689819188371743010872432398114473980713617456692422401768502622530198645130107047439002135069335057114162262865999600564909468197677203726097569894674482333755701522204174016836063106457478209885382381884419708379427379500318122672435278050467972364201793765090430141296251570086975905354206602010120881662143970423590596760405177611274503764285073000829709802494683907875840189846692260602927904740786601312118420860502309026604881397573815298094854674230138477220801512241617011702313721058087919678685517342252022189650934411036572385686522904847539177725834764971043281538302158706296257297070851669886891953564747490214538857102443127371296925678815950197282813562318845326540906937998553214551950763695970220670470441611341247401009627166634728719180913260422804513887119670373833535012950005339742371299452437178631476443390508499623295482902640483299548743993481521763314429847191496215713033584752131924802248602814612984113550063512048329775270425812505627790845095202866749979638487683973758662389211881868580267613975185898548719888330829050744422382945268549938419792893213583790456582307190736237625564465411142089855871298320306820583190672641933986778313478229281764106389933928807525525420817326466507333291872085362117461363409223805194450276182138223452956564917316350877879254779638777358613828688433553296602768244505336862839887281436512277879462770867721674478770080300045422367925731037949026490268804399706169021769407019653543302316386053380659982143910691933011734503453114539545625851558842278381152760111059521324413760182900540610589682315480385190089923173062171182137323018963831885993015641945332016189473265542228963082124815188081427626153325015339675914291481181873979773422746395374860152711280243433466685082956443492082312419851584559370675672202416865098036194489089344300811019914009085065010073673774443272970011376189240126882781019359328900189877050727918167654057783127094429606055032516490977043010291043688712654053569461622447432227096510185817502014817057257900806987538974318393403836088764747561384463217871433051828227745160890354279550611137037611114811785777615211131067746124167498978210903339755465072916823748601639035437927614191427806293754558838691149372139667142702415360148872088906787945687113527276465858438088057684437368243042620415755428039497624885577770711560579984305076466277790740791071177653254034109839790058753661577280948363103703009248199224723678920675985108023884708486118146268832040211659699103556978663700140275320121866336532615418252310181010261771324761178295344028258199293132460813111737030392110818342254859848530783357960640783787039667476832380744721177512635825182475298772197880345195631818885245470411005340176340724088935538583482926833066790530517595579483029406088887412218365724772180562779982599928086320214697522104322268618018451644631184473138362290376800931811965812435279342491540056974453928965336294132352276149765526829597662897247981431252172755360492652247989999099253600548426009260853645127941937193627977424511788098125722103810239219907923060624110031412568207438615917324447811622518926133102009194016838952581263534012003590874342727919398815769571612922266425873697668964748692272106346855802745588983935627429945112572967423208250734186951831915810836502484171290916724267138572918536658481944135103258966904546737443988067763124406230735281342075591774301161468857201982394866426803546917929335148097358620487603809337802098009571903991913010272243499142051910501997563959639055896090743564078569031082243435859672408291714227022204940784722773056149096583711081408531222136507188803821976889059157773724058966107508384821872086855348857609201211829725196400976131318229432175016051201883459093503774945026710684621927055387170608992767016552931139329100069021690318317419140845506495504628502135126583403877559190043042022577247817577247026224207596242912920760091504291556085116981928759004419170207308360775143099783878225514630156973718952646890434819656208417791817335210761374144063951519927201363056784133114207618602563005553120132362002256473022168154003004200512918300365304593334742041247951040520135785202494797727215006347652471915873993872280636843085969614916739880517696960575002394979397447218529629435218505366371347026518863479962370153332580427494126594170923229886746343975021917383230561178204797275568291571290408885246818518869447756290785804733733713407449500621866733836763650678391410323473260927558551037374263364854065580921735111864993256426858154721010175761538668904230986861156155867742100973246855111150291915945012511116526763421377821464754155398104063792180296488382027048363812190899424519104646666658099660642711624255464683163256698085749925756767182782008320102433964147630485218843306949185316351604251532055490416215203888080090062223155957839753006960724000107039572813387875202091904993915324033515398678312341022726344254553661100321439980721057308679131405801170763774864908742672587555683538411124136084499065642851010295177968315985865212590003768618110934734322277545440462822399652424305133601262693870697619025707946778790064569642192460935095149813155606026183468705983901331181921452684325528451673646172458877193852403801791625118645270379055325602384665540489956725076244759335536275691984806116905613533305000735664786239494098725011727785810503924934562862713214326025930932026245552268120247493190242283229373744727938619335699507238549307543189391126907794421168907160087596552173367829947060249571202360009231130712848066082805903507106537148536370990071717407437750787927516110237283672117354607065631891328284905888584816640478023209602510518409490483023950345051251464418854936374865499108860801147886279812303317349518057315126291531127752543440979021942770249905314376542186904494219742159749745157438086675873351907222407225225833735925796526160194156817152381300718314625076057672749316978868887750398613353233448093626220887171105519214602924903290927918364980024360113571423663618744320014184987366701240700027334755461063004379949692645202080431057668906983035754219370331152005388899387455084010316771520693995926641942898316998933074091721009142734849062302453520384458089183821719718514649308931085305489653138179557959688476785030804483640052499353770520947457818789107325619937936542988926821204992834682239103801664954227280171097964908383992202901496899397235601217862003926429573847095816511252221465063673632721093206882662959549817556224002300596781210664063425271130788899434267152152532009235778100946861030821112545048001754115286683045767622656714233197694569019186459242218933535313403241336620080073366175425931464717118807707467727994020520808914843278292507244997107924913871277222666145544211042884273977289950881789859372973952948267392937313712802106581763788494207114821438680516278263233840997053410765658705811602287051650705998197883142208019177640489597902390609692432630031001609212244480184313275666986268660362528565215217236338156866703686331581051165876478256468898230698324043254772466572547240873647876598285861278062564797333511446564166848120507769821433810887781023739481792115550522559623875499019414389400869781020954594551196327629075735921676627679106440555966512596564786322117317930601550870906885212112612811740667684222059664035556290336250193051083831084646702091773867668798204548028856095246615024795418751158635464620475248978095406633380958490062379617115313828006788498594283408576393172896053245606543644234317398534150981243221270585800542583930064891811536799227677910725673657853205335924314504020242773486229452597930573621157639057108738454327816896165139877919554997183871698613264251406044831530299744771090217014141809933893733116811536539611540969403806704777015585474721280861613475820225342265007440210232428257650554039014399377684190458555259429557412714408025120357983336701336906720283436725970362969509103871937846745133924622032717439963075826586811362226335620666103918770492494580936844632516129896947855076515103232705347804032725639048678527667405875439521125046100187623584453879116233355416159747200812933545002660637695984701116621711840665143847788540485867527473743552462316263373574315810807715470791158005949677215614979307315920855956753891472927422292020815070831237150664116957958886454329592112669625187462948248556300213597747629901328743642571838727771800261747396571873971417465461296574162110298096247159881772627607807448130359059494077244778640863720605686408884967807483480435394768188176231640991857096875244216025537009527946235084587769504936866476407304772133400123347672041827578361768901558502526373019259308313074069955159226516801374718605877422449062872255445309543703580358959695786772216594338992928612884507119337242590427473123620451744338949808151296529538705205211849396763360658634486545596646674453344100892355449040639898606835779393315733294970516361504310504436325674489334826628426710114268507525992560961318862294777180800468921780238352299213032028411610800789553805135696557333788890267953699064480902786751107107707285989649479772348523899755630258515859833317964853247366002850031974599359034717661706285077595962192012580219182750261621898177106906399567420973453386125706578149907337714447253940898586319593736038126914415799657841902971551474370277213758933355233103218717494362701736707859264900433460160668767807471321815420060689394567528403924032602131057904280883749892268542229608390398389030731884138956898642814904752523298873802374736320605957178404671966730893673865148683573073532633357392859214639512763831736765384239000919737377902372831061599618861083462857412608394277291714760098538089924715853960191943757401953949556379799830919866699714559052217733908368998937851786752717935545885097413366394464979197688405653564228322159817731662058153290069982103034118655152741875287885595700120583170052892070008920423206231714594581653935967825840825725197118187806307629732229804788849889886091682240978841317465953570860400832864192433426303515711978390821539471078533639932605617186203954011584114905961033298907634119684171767592307770078077319849712033680769810875769081038185463555535825409328376601470392342722935182898836744066250576711414911069203515176970852657246157726212899674778676885361603456705284931481822693949701459699826901287837469138492857875713497355792625044832274288770200041851079997520892703042381224552115417262395010875186864635078355083718727352365532773119722195380152448196664896101890837265744406021282096146316813326627327187359762852932888508514679632366272329906883993086314150883736793565418306428532008537884298788203830318296239305627941221327267503515217252801544116062534105162814648538729461310796468064105326243118430564138285228565013852370914626653323002750949469647424911599204225341023330531691194121030694585545339864533529669535415487576888365618641717062008608677533042872085313825063327779635191852171469395841846600213912057240014422698404406014096538702710427055284990154355232590554505963015932448717963375998393128071347494884225495393191956312607565512671663416612192052148816548899144590130795524248775217491455950655551416146526995046389782641567100839902214804853296261137522714896019584828920594438290562150666378358308586295787456236051218454852958246282898978329790715231154651619958398707034859318277542082656434169146542180732720246097656922776933258388666454606208198908513873397968727687866824357548689858280243939168378231148051344630308856084266383642029896344545308085960409055624799376268529288345637083778949215263245046551005015859247309109554215008880198984754918963037123525818092072359852680572898473614882944036225242068923401168460888413857400951388773002243367597929186007532935979115305600298160552253767037629927906306597448530912678360625495465853154653721634954370887846432526380886624754630675569018650745289338302976726775979411427516829733699362402482885056482553259151078696476960090942520666922331166462314534890842264875550958681868313578569851751529416430924143514282337080656638250677874302013366182896579775852301182223660704145204250918714439393498965788330241198174544535427185865373510828712026087378016528935073355918497681192008380887536854912401088061283221038134081002103235198101008421667686393381826857258129776510101075034898449418212761524562921851916652556632902564634485695377064800794201916112393320935963803288174384022166607540457680020115258336268113594938816221345167592323336080564532057982090529183329675691421946573822639756599462977809875189407966318530184427790861791798764195993966692749412780404091662167848712960309162477566273382972986077528161832590754731088439963332593186934875356368469881942739428477312744740639031389406277292770719987928066802220806859037610394486250422165786462648438346939839813227820590083282521502958742558561324309943426206513864222884904940772914677981016759254751493939987796956127535428711458086537212538305056848702716453627730849320173591606370722661421707025504460326335526951908824568152534468892432731538755404701682015455489768763752919731989823097949545423737834456967634648259682689770999728158487660151425031346708662045003908508759650926068139959796899344711330103105170625391072160630073450886182927710286137587806636313291179504621928207408948624715513247204461844361504869987515641888826420076889848803327685340325719009175616917006327114042241579313805227987189853315234489691498136065591049395769378488390560994047241407721317403102962930507198993500090009689362524799105080747205259820746896014161303593769793229996342926694969937376015551754852992268588213923425437046798581831084190665590759724908362741816963677715816447453331111170155700259945282923580095488137193659852475686141373622702915965605531330714293171707175637577596271212125454600963683213469862281969236923671320572128480027135356005641898436467576734996519642440679293446087468589160968205807452892186384937942848425425419468180567013433514794046284743569673438703804087730136064136594092044154657671485604569049037910017490470284423627067109792079393191198507179512992425062798673855983915442364613214870789266618213634047052122053982912516939339310724732364111873947137488784833900881409579742623582590025149072720137303308742229010624060600408815065456028795838991211233765447954698188182953566772790376238372662982214835486374652032690449704971069246555671358892947020231418975524203319100587637978293830425408755076133588829053363984971586020953395462272759543423637683518739086457041091390729547163232559759681199237211187755319597142820819389677640043596935764369354997062143122811198156170999809732444875846972110410506465488543096915124119817236127479552985828818090558212284887850504217167550783352452310865572597107581688633610616851059292095561510162451711225546055098565892594695135135237415644945301527599686791917069154703426184154447051005100923639563923993472373742731327356963409343053296258919016056171638280122797623086892172978697915922434998091860623841825754258240985281558893885477946033450450939887407026306460132197601470601857475187633823020124179229809320085843129073474595511156381318475743927363435728035589978100051116546711973723034057826495296522392127136852045231891511435417387899370726727088014072197085105257213130164321424687071284812415257259180948025785065898081074822673274323351233782735977205560382468483242526159977398273168264742713587472878689967540870573414299202812855460024894744358799359760241898783773153887475618837679793142359526055410467357235584856726231711831603128283317403588120095289916473913464875298076003900679049517103751722088671112372867991397242399428007060660253262498683815271995656721145693055808859794128561462724206760985974286498973764460243014675820756593536604166064653116806014355523384414109169885302402495544422886909076876875165251882920177222681101390684146655606394670655629729417924764040607208332550514024486249032279181641508737781790814059135572282727876821945987645576741300097922383005808043632292309563272708640639204075104949655413226670396843984311447487637868602056347501928670224152203274640716192036096819637101990382242180245582064235226516450956538090134219125073309666291618958319490330700010487081293866132573007814296821854086927421575148348041735908849355310675588539232661193468536029154668385627537977224929122615407532585490791166378506179163474839642629274973121728447042353258201117689273889208835247009442786613935933658093106261359951443874292507757084967181581599541665934130233351780484531605253542360393600807350175601045011796775695783763858134030813101015588856314898708635551889324441401330853423338678930154648514284544221375942238563916273556458922542056380135125153977303500327659389073710029837754435498260262401659262717732063088109526902603575649240228362121492053396957872719358995504726399818552927988373120045608918674860317310358535185382181259519125411707360077485103663835052282339882483460817467874428851022238138168247783611892854322279446170684846189479094499417125400872294461924300115930650843282241485627579974770426152981111487865763448052448478826791469221836382374748222811513396341048851015854173045818102788793532865714236901996021780177818060867360730566208493521065365622898872222587163849443915244151933166985619501524444231834878208802929883655691954215068655694315146190876432885173670254757375279511759192454499987310253386087696446074079914819833446964525446782186823483701855004510242920081530064924164531674120201301384572021152090645082184228936361398508260177373345531842556134537686292485520359586440617994809992945477818025235888066585648212007894438606998292293627989979666450989090092023468177691457771775142525311534897025701467451652312421255799617149758246336682433081820848824696375641053884962718013642423588105229067974725523801866461145477869659217100102371749487592854720876417821836356555901978647797939588889517809392979310761560083118593239567370127134836659752160794765418594849479227370714771441140516216465589728202763664449486602928029530772954513897486033711388111024213954622669825743932380032163509448205170456757162020778989474473015897848389410373040200353102842437393703160308437642645997533594549753705613962653259000972913211127856142122930514381260603842333948815828082231947363604871550572120798133187761330046250368321213651664681982756078904076772815706374295245953411225881174672156472236918623252336499297551329928144239489819476510188875787351066508107842841116795140433215321371540448297676355073266927128656113047905892901740491327328214945556775213331499918614474369635165335405156022220013442868989292087198912628533609172250500106349951874926628121274784352000128959463345609262343387994678771917169830248060721609789625018993869805490448696605896178570385757576790172663986678349290923657534812283621561990809386968978433199091169505548430961505868038587849140731771635920986274781910932952416048920123596299979154876783648022872120356084348688212201337048551834275214741382637044827501670294096450234006266356552616309297254247275689411235773758820122931531698239008596665336953664743805885570581944938523067937161713455159795349574039206009118421996614089790413351362665993383587191986199197480936540847196452806119687830463122357658170999069610567121102118449972464404770408725908763746257720507917243468175445852399449656539510265943160244472972949399256523979756627598294925892768940479729776359064112513625300120424213744002822787715823864429778921064992603144418804592852349732545501687788633564385976407799783407076654088005025309014184764065692514199174424331884490532480011278564654801696652561465016751165068507983839509239262144787813911534512474768937086652338579749954233402136181086510530905608019198940188506008616506326482773430837670074717984823481621292806244291841084228663801162881969302451154511488115987669985444835587530531979108111348966799314191242549389405624333424228545976382225383230360800375151388316957046232000824712974647022779034903680957127241025209822490347719942894380072488510282304513374675549306521977626235111955131205402781399420255715729278433293354847941899169524193149871292679073946648025603482863211757003768172554219502889898499076201188812974044923692766356447410249665731379803823530406106599299840153125711687509746455543204958020907463385025093319521818950224697283157692859067757902493451000318921029423568838748637566634814986971725401044282172998557584992820462923541847781094113721336499712964487718040447462240008156655085273274392386168917280043653510485955944359039209147493086703501050563556207474741615138064657484188757398196594353687365782572639210301884725118599638540427158553793229192263261808241488918743997015188361597052192663807651809308301867337412893139209142660950509527263827321006078573756336368279358881188602839473124517224165517632903301034528890897000065648590546540068330518821816038320789346565689818633436215878051078212339013324695235058694130343931651947629715704364296111172159491583286726586084698756439630211003948674159124559044020025918284924555910927499328962290490786775455733177510069265367644813827127310980175365528217466342475248856334511248150002678764951685294716328791724553312991373650965690717462689164596578729192182862319658080761304980140671439238806797384753932694421683848036716415302321145247459465732813256222269440222650891318325669699857803860313622506566028524365849737370275350248006998278147333438241469856753440815195965216768806955226704023882359756024349980364367024158006135318564982691534925257618431641795331551898005379078059720497122301936556964447276523400829112811435834063059815758682160088603770537915440057997413143420238064749663405020511140097819673401175255278447063018955726820809128104386216561711879342941439734792494591049696615957542480079884208428003992740276815886506013865284154046404443756155270651697937463512661750455741207745153497797977137443942938236389822058986897473721427671258058008425606412135831030916918625681609927557440534195091750041784041246173804317533524668489785352679719309512605387032254233642575801918911262376871732361729372984443406046116313048974898481462700400941665260980479065556705262956602971038903030294521389161478615868137958054603318040563286877425932462280156470644755187300076264488317008923230493217783328669136887301124336324205527020129501108496388205058674123651358690283926281271303246372352646418932197853774746416366945720481224770142870232246600764052910059296693982942429189779209411838480763335940370010508050032698924268688817168287385887651702806260360598250463921463278914566022257418998762894385651133447984603390323399777443458122673887993395391016226464188648899448801494618728169750432251479420050130420193844890925482222256166549657208782829440510905753775262995355637025046907067781020921086848050577486547715714703377722142980378597341815647447918520959576529368529058239349286638560564007665282566407513154067308530337580588959899567602876147380914708840683456785887619583727371610338931741019784364653758304448594041292314460639610981758094542728755905540807042273313904731008014146670825399089572257216790675024329935307713965047195687310521586837157913618116746050384300272625476272789853881276878376685543488487011977562743255891213235317143670081236776106451749822893256412588367295286435011000793040116802498202004181608377137170491555432315619085122378439525526268187163694766993848214846367581096245621538260662361163943996872683548114811572804265335244718530117628535367612686428728237256489936369714865216985791563949358551152272934326585436094492228341909348373417935129442421143789462270970427336189877674380369159704106996183415733093622001805742044397117629884212641465740445587588494302100163669767151962738459787342731480313563472507705379816311711781642195266841830214556645875866176719287349255300705474613066538521994591979241769101347857593073863998161160081203059501476500717985253938311021564901499898436731623977360264101119422605548757785615861883643526701284753830682539605079076682182416432507157589698577294290034524793318208015656373808177611232472857562897488362278512303844004964033287433385995863328294456030141177457089406598276218740641641903839456082776591642689936479449101050184854319567588765816137768678849684585644429983183301561186006316758831034473863640956595062055318710552693042365643904562338089327821697190009170132730845808041090081989659187137229301342695871762048720661037734163580636744514994651857645570466483579041258624434056666223921684815405292349242827240356754631348623946196632843500061618543848099242288936832678581413307378660607580507882910458029302846923232670292461731636429339040491390503731429441205175310793546345002737646632876651382639955206224415590549633268211554145147418645437056023381729136027670703897581210433601529698764777373117743633627073267184734705242477465830974091664902726173501238136445174396017085424000554832121141687080131559870784162226686948353254677061259255669665534004620528652441736004399882780706881545068524597859872991755100396391018579644076152916534344117098178660951968958810711371067255504147112766161437174915656563880749736962768698381110445839506085834208143164608787656263523550226817286334498085052032295865155292644618417868653041698269774687632189412831668043100771935766629709952613825434917840087910488773207794654335118516558384703545018265709173846151514160614496317399641658661871979871173265648984788642311273996310839322951751413454883442277830957001322099468137586705540758437370393699854194572127458552142170747433180199064153100852440672612919790381509800240462262775753984332844669929450153037847415214562259138594211775716754517840420190966489380486481663720338554748386832616446465159716655202665229383930510100505861397907815000198815279581832347012108222892669529434380671909223194534769326288448429882588084122778740246405951805505674350054499163288158201321982137342976416716866787477153515035580671646929638445158054381358400688820660075785662258330877879666728938407335536353672190928178859663908994721368011648718256985767473781742820433264625903788630171771390080866832460844578296397918735443211821557757478594303263269079121605346726657199433676715244419586254628066448139119713061278195172371724213553115833061587549312045065203865891286412100700565698558211827160612151342297923448811735512837632096070716155607294566771710239230669198882352810943277487391895393800012967979811457193422106883407604894289746957900073125181874986854635106230506693495159755678155216900026363770384574319249590266309347361523801403842059299675642716420100083997803422498356203968417937155485900637553610808653840548339104262272025335003585286971445431976548492969264227566447915222592598184820362134480253909067675936011578359336971585279211736085134078348683722998862803571088927268626629471897312645698855910545761031594754729291451643587760512472511340118681813173432009256227803449125543976034788146519814029733914050928001687718856710654077625238038072946669897325789129373997876488960371033475090886933334290254374623447266745214593921568037238923530497435713617963604990013184997207927494075072938529807964940154356513480639542440899803631743284399056737694325020769896809132030351786491931971835004469348410939420090636202297859613126682665190682041739258344873741694639960814264685610526260720309706825952387724387169083221220123548279658476107184093720198256842996177365012977978317671992639153097019131813910284763556358510815848111740161662546953092164344525844866284605696024290070684850420974326885025176487137400554033647939950737872443824264197668547420758198867865370026957316360021595640923115989390518950791474015238478053943038881202811481730702951756696255960079737114096112021089752161983529579636961610993283167665019833737647365657380377654660418023082289606911100781510271924067838426265962275069038687807350740372830265501471173336211077218394463919082550655595437345917735959183005268325319443077205109609833367400409822200667387330198937838121479101955170676588785091232982961402176321651307440342516791495749178841621845263636732007508208437602443700545208302768740691880090319088799580754644889718011086335704294309850184716611220844126267561637142874800151731762104139266686373184214608547737950235987223844582815415938333078622828329858550461770133162417091368440308535174607600097198853625694735667466601252146851211986324666276270773371054401606354839100813676912266545634041424002595255854135469066965450901568461699380787484708677451812314428215758139101132309997889368766307685234386970022589441984225664847123787717986342982807273951179646680911447401611093183953391916135825760580441116604942741791268742226627417974046271641334146088248186119217858956708927179745867994781595515483786020340274630557826715850656052629180727743390089856784567903016650447263438304105106416895702775855745465753479890438540043405400522953242519341921591710408086046787740115020321647381645611352196753745232553587340389102129757273910520213474228119745290057439272330795608598181799905537763178203867727171797128733539483649415196551029933194593529185576278131610099926394312449036943215764059186734175003602762776055290321522787016626095372494128849645345636546680615045376813767129277692363427068867490720861508691360341007976552655496439570295691835909405274062286688369853004788340482628427253005460230264528679637133100000588608208466138520087421443532360873655631201097070705822837934717791793263804819839325553965204725739713468882168619247538173232315772456469449176462304897670573145538522789762204029508175751207516298945542370504325428143264922736980909485917170848808727985140909383432798961572439683593876196649241529234502907252810518866506042828338377324022424092887716463791498354805893142616029087025592282118288310391344027335669507951537189343506228628289786991337094628634672339083173365532309318169567447759923389681754128747349186210715474978095875406907816972893196180076343393204387742397094782022596471338496207379759339059765669184805561486390120806251581408821141006008791892645500949971548652663158627764879301743558978553656249985887097068058011505521295332981557339950327159419244273034907261867111986109634692519363776364494894802487246184317771882828027853993107112910977251915585759760751905458975672438812959393106964506833050188675195578264824841721180570745567255794119439382024176577548111241222691138120386438908568337519816699985801979508346265991613563392575185180014489638702541407714139838554650983515872566186411537978888850084377454482601990572089301469672941432978687690447669616143882129132371243330155502741643296501352173083458346008153255025314861136332027403036382161007407006972387235822073972103514614287082743475792386061553743883765146565730840375907354563160189404208121734761660295060563285286999713013986859786699659746443946036347929659562118085140303341881233656971818759142059420030346224573187790969665339301529042092867688111628693408177277157572685795046699973321234140523213865341715016967242074415091322181896766671464470749951947114883466870460471313563757284774122494244785384684827555728140702762881002878212474810350581342007851428023833683979025664922543307085980203392579388777251985407807165050726487566248878952171343269123673551771060841618621966483560745860011447915012724169384759963004685564727271027276853383898790184377947015837644584298061037203929104109092638325886251486235317344228138229038922473034412427124548203121793384622218946360523366319818668816554643078226190254277211740267238585378828854401789330367750097718728608863654333308018861779710905388172070096669507783126930342222830610070322125245737632741175184450761547768412762872489064475512026614291170428893125084921634899474034416927329383439807608735174859317124384022260448345207730744221434722669017115581371923218783300002362191366832783356531097918128992505614025409121000646685270014396951756834771088076838910699788639430568378090362923738405860516364403564586910398443169276375980225281224693366698501147428449564069794750717537487078937770427732969063071994971549445510877659718645961350837246433435510194250813305120962427818117855917997027047191620002197497834794683311476327042352070509611286624327982948022117241104076115859684618149316403493511241135082132910912465770606253948044327378206747586638123350058662976537372717236128739572698183676082153684466317359568571230520819318451118718354499223574551548400989686238111892561914377678697570610451788448791054265173561115882841077534069158415507074816363905602114995571189438901517016055643661147157020209606370453299292253391133996775602815824054516069716873043342587780327346235970377555963031774175887015464490439489148551068044467850378564802578390158784339583394352101052451121552670129554200358276664308203666792384677196997974078520877193038990923292461266570459521943568315767013047705888361042985142977512750987134673298100303011843857547631967073941149296271543427110447247084056722546814252115081885200491756259951833204206030814078548419552710036375513027982926018607660463306758722293977858195080388363900313830502606990963760745457716163566952618223793291076784624865293950285440606420739941953307759148927027216007981415791753982422367322430146058249268071864106145470669574712862375759397624565185448048823931904876289629178917242902857446632752168306217000477405819071719377514288798517110359328670554477446549403354553895997629232539832091514589086524292114547467421096940600578165728852249549343414069440332115975543344270243905812834082337967087679722614615474354974439407986068700989711393751332276637692090542730694108675198294712366445621126369777826088160136774054281328194736898665956981463752470659055814391089671942514149688353046426230160936509543298199195805042197073834907821652814259590972423045053201710043343691156044782143592961138485485478261977946434389379301051600751375969585689816284746698689133085028751837418877320189744955319504642464369883433075147284917991378496416017471688912911066322507695761198222133219803052127697859854691240452378123350287796382638548749671729860264889807851638078206816094874681381993437457775170502653168671429812184124030677107808719046282133294700993773280848416541578321680449636655111023817895037220012080721418076745249417186994774198778615254767268548122851692130129556521469716478269714170719133388806283043660566090233627692381904496038398417997257295300263937626659269832809707083221740882707979548638502662090380444532813980019144504596653930136215798861220335828500353919422425043109534333583027464019994224332684808930266637619132037397289470144644944402289555906755890445983812916055745671668628730177762306739328748836487535158102367708074711034707870272737193729953948743442270922087720491392581731468264381864188271626138386598215660141904614585443181273564405103664717176158904649925209572653478154289130679210663412404239089088454898737427138697109149024161670787245888035259187471369720822708824334634341324303637084150909759849980341456383171943730497593231086163758840290009745701219671073874605393056586585511123889165574496144051222964637090222662796860342504898729123342687775138325751124354438626326594852262954981562065814695227510622339165030937835649755155808658902482196642768713799449083306131231844368761428953892001865097828934668847764142331746498469970094608621452107003367804880131985919676047728179613744000832815150373359751400761089943212053853426012356291713022642746756678885899367687581897919302774176967696166806964833042608700630547702111474841029659655831742044790504216747512870059896383513123712653884101672759495196903597493417295044965252786317663352563604433973957027183868919160488390773102778361474749607496747820542935281718713581747751349551611127319832301336111733279445168598913219831359124889675200290616993292279641585061412285689891755634889224245806920115250315387577042337844937057074702779228412337421332474767365070879596223443696673279037483186568886815264982402831426371687189500125387512356215971762785800046312523551407430003593706306080667211798331917483443277328932310452375201337173445006201615226831766476467031194807180976588988877154541918900576221873771108594840015882671739969755921580323894647882407060371828067968316405545043481448633094169991018322048410620743474428445784398903440114860349203953454617860511018305582843629829847469107936251169972894457175655032512434880162446856076137726563663836666205935564527133638087961318235070071228552772332857881386495157996867714317687482994957202964273703292641610742928141157520875820924164570610233191753022198671313079858786157688746868809461643743565134376933915958912719290801753285464127737239731705744999605307514595894394545002639218977177287635537468577425367979825945630477610719045472391628488443983103747266431637797592160977449485988853026412629649532549967868855436339058205535267493049749779421870515088241369012891172207868523735092742108574590178439866198888677554981337887133119713570318002380894068510960928091739480871245150825807865134302270710408339422149795627507635309677330630877698510188534441181038783376750769819708451362584870118971845035106010703159450288195305943156729545913569345919793566481757332342540517468837519858495846090037690079695241322203859189787229592100227791822061953165715665632396335113292309222810641182963429230522371639692505287867334960483614504552097823949249980940175512325054591320681193608258075835760814905243648702379954541353857998428342306683856045596766867259642637175924199570432280565378749840889844058065656892240256343567522433979305876410561885149583771361657010477851851881419415097416229955567590301020761313379460312110927997808904533290793008074598121973491297574309888142272941919314850165662513660527064489193534251387622592982535613684133892865878014365611335268629012382561149499167233300419726090678304601518798181390466754260711814110115938088727340853096494688528890554160366687239347354032771350553945790082409401613218065923547715366567164016096978052299423800775552481635703544829076345145579575495684128373797143936742448526000627362871389971012198636090349987671396074430783430626995975315618539516359415867545836685461065604154109478380888565084117133201439306577358597718424419059798832138330169950709326267821927067380685555665280180234436585600013876919701768722849081894143514317778379964778274314097369864179025547005921199618633397694958094748565921690697541312475254376021843806211972906611173251841618262769743293989664846872706193176886327963726202961523109618259628262393342570688762484687263737642186689823549779039194148720670793431354149142218189702029938345586709639417021089291567034020174932309745783117246776377698525072624012170941756921388129545536666897005401338325530401708833895955737211965291460360015611533608396493393512927138186636968469528229157908617941752275740921392200628887564588108028577521637531055848510433546711115699557472392628032207551031687764410303475601331983972357630395640672173073899358117444435765211094513842288992826232012921299401428491666955840042637104254225529356555715734777093742762024808403482380067546265446951555396873261761875301274124211276336748771689014186164696841600255881310041534544482592994024132246975955218307825027362674204270671171548460371871871488196746054910351342038981891336023365062105317095494247016581596504041334688257229421363498210899003413945284112666466993713502065799732566307503015858983675283048429214756755321086535112978298361723124791325093696383768793466534951797983278180894378928251842656629156914089943092514226491370828520763210168640759132196241366626024142724860966775843311218542236666179333776713585034945558465639155924267469006166595484169231647594380237167356178008499188901515233842501668560360772104576774198796289872916298655280773095556622435900661254896271641659998089718258034630340071194187112036037698817710145031319578148601734958627096902684444195354621055898203233411367837957102426350167310085324671330591435871612036016713947922283044596619061402003206052368167147789899353047213495975587160174308133177108049692223812371145542361830807645316513673569402940272439113019150346954084673401151486365757003585405324815746475102659658905734170874570652434353604508807723993583991085104309542921387974566697961556657937687189460256873313941897938604341235114137469672847401759035056507753648021425020489804564348989361457655727669723331334128918506328350608037266786819242402987666098498545625806675986803395578269345119472304613997479064557668564188305245109776903422255652386585068256409630123516520273840788910377541556828659471699726241615083825381959981590714197136564424556672818994649410095804322393137083782153165221004406444759074177092958564160904255014418286725683966596921552272045816202024043090278629152333631358386168556261939418416474334600147391034175016075738180678880874206168069151948711970063760281394623653194914927954644302994343052679499370437149898346602409450980420875961986667775703286283255775344594330106210120315788761955756585092838571927282364846964077038585829454038107397225091045573387607569327779986056121821810946690273700794796203365011958335647504116562732991512522435049016033047302661203830747313237070434616731856210463501397372436218379933753353001841055606320082292885907387092113166034179614960856591681388800741092545356370162876009140501821546708317997840011935188865926083713377686128528062452993100800074379650951232168378765388787563001061569966476943381132560962569795619862266580640269208884117327795442392340739726429697775432275827740720671224306033234973692512089495617574011816198539460965586215287834726811021158860806128505819879456748366100787802656909020372165617680850556085258335916619352265683379949532890825190956594673511395901863711479117083039759047726428658949008309995278033724861177866202322516970286598158863177228743962494037582622791151535886575711723391413795734416578787166876361597476667696138578811165851356034487029003339970739616135646703107748204610391462772628335624468876856106376682551970162246665769356928279774817581656531873073193548141979472214545251477357810982588901396888933333400523499817524827271341161336965320811065766203983422276049461346828071874423207196925994474683071328574390967167473139082868024262066277385384688417297892196677695400986618885194212675435605553204038156160869144764300213474725671131107183266480295395749356038461362875115109325023068541610647861988991945896945574483613471148923119652863272513058429114027972066742104227303711076600933836746249208509213663707958893792474508077623290365977568581393368382173818624847823953215332201882776920779086867206304183397164748104616159028929953333963970833114115717269811788918997715618665413524368379395442421598772693140879137629774307487032097921653151853461597192664692975289617923831378446281455216474817676436381254078445997044318805954907059414210450678215702417441876021150977526511715233840272404577364336831679357063599212180952364497024817366075200545096642164112305450583200509004903286049785141877962837126138660991980754279189647165965297410346976345204972338868790117223345572835589834886355542873498670983532130412761012848526012448174622064573775189700832305003731456547926050600643174783329997650236819629690396922289069815758572730310300678671997304126441512462231478910611001063375972700919447563174276187314295362733468510681013686309118060716554837516858884360292047948922984199866913496095084183990632159472709879971400409887093049772993534173595125474054000597606015251961026955200222960810728806482625540903431843891615574783557164806045448735821530466722411464836099410197214123670638573300907337762918550700982828161290971326976155089858634722679984728725500852715396025227836557572757562408821778214368280908871643105120341673887239945798702899419957353186752918723938020740866025448643969374360873356992059170330212645386509459024226143347035644721597469235729507693414675608160475715256924710494933293762133972145435076070256805922135854641159925715980543572764468848020358849427666630971262582452316532934868615881409343731046219446198736748406213021862855128050637511061534008067611466188647088830567529341896971070663674829018169359260677829789568005989963344218529699119925585709599592684337730160484736661849191169054584308939743236051870636874176905248054801494575787938366484133392217140619173323521796826024947312441611719160760245027166705688658324767323334561262655308561648155484019601538837923920868663560145843931549155680725917585798644232786660902176809565326041500702527441297094895478888180724951091105993538403090270571479142849521917486317081516440535780081349033138143977192999315802732451761588956398951993046698692221715536113922396873505016902625664526977947006447840141382066571751821061897313725868977587419291922972513416822948974039047665032926527423191953548360392874513087095341040634813433215367025687218703817954157744872482900759671773488217561608032075017407837595573228960753343961990572204664707984916147089222499544305006561760013556117811954593710784864406651420225111761466218994770651280518835773603073389795909212919038166288998744032428084663366865173690223964862576837484083842177540559696731245228990277604272610047660764073550875286648072186948607794988378399556175575113422440336657971361959520336130808900413844538080291266108764829795314770158407380390490635427238555380889987283041071786935671980257275335795706666307951136376191917592337311274614973242385866659006443745272190421857670506729737652676500934003564294530667489885383554316858093610264946752878981945084480704431576283558667696757559090545131940270426008312130940329370647849668911788712949934195191146584527537049150910050909670411723135834153526518593211501691182157452131574676676388781294351104892690587750474726629162265411798736445548994139699174900593258322738708505299286602662316024685347341283041160543933426451621169379623378237849739069596839235171968916487037309658747903017339883752248264793779776850410470109875153103306790225858903228669977130891333531085941773619988099201024349589008259221843996981998219325329457603817055273335773587725378012351773947187262007768256649632332512179586926063245381428133247437056306744296099991268812787849909823273088291002967143160686629993246450817549086651026871471283215148232201997867732402217347811004936806071703348964880216768041513657601548571011229787268963637056359654646014518173243945332942294346713200183192076893328363453046147218562920128760755129354454476389417224461942853699389942028550480336578139890542531517996366376871493247521868768877276626897878453553422935945593144386207901898554535645831982698672896038560626823397749614621597143246798103627352387893186551476864562253625167938939341150775702405153351538074239958596312129004887937326493257726252804726395617654285724719547713095153227306659899441042269452532456804989546572443182129501196655959727254550767769837542607740353239823104293078325215770528338962899889088710607577940199093571079717555518699514412806410607531671333717046066799462430180612386045084733885726405333774003309573546059629627442566022789723989780024987140689418317824581497980193216080845986901160135612117414662232918539412941572437125973954147311160926964308550485356106488833120188525617986738211848531136648229241129604526223825728122646432724236589751546461806064852747855370012648811976714264057478272727566507282253763803815652866731137736066963099373494189558492191651830860188410329349949313003791172775776660906041718796292502744967785473981692313809415123489365549763775205560027101245761148022914601875706014959224301565951621555065460031747385147959740153111642946709691081335193164209993973190985103182315256101884963916264346737880154317836405683873873995551645109787396554533567497691070440442036284991004400940423298034797283960047927936389072156337295118039194702431671634883407760816533341173283003167078837767893754757551978198193657616568693971662990265148541313468122571211346683905485314213354602404398316801486251887502733329396317561574112836654999137338514733982657673665735957359109261958248072960784499965909079337177771301159659190115821159615971907197511664763120443778409273474352567019881027604841986266490786822958420059211470678153633759601385034388124713033582749402841016804582488395514213350632627562915991170104229078093831854400650456767882675438130856496491001869854922756044501985766730463995699224765501680612057315549583760815461941153299314117798471712583661312751705866084735878179809488535508421367851035540635855931951652823395539689116685352069510651550131586203673249980768555958013698767325040360768654044816052315816591698184477264662883600314792751752666579154545353511907855879855671981011399686273137373117442037827105543916887312997234784383073578448273308687000170200420075445005619841106924824941385841918186549496267484598947171427279299958529430311038842250996998411293428160251190408931829267555670504383033787780421761446924603835382129458147973486537543851941641588504992991967482857382959722904673661211970749935205731135036821396233649145188715770690682820534529010070455739974510067399695040626174583550559984566652233747803029422970734359024703484238084163550549966650515841770274095293818103106589214161065833524601254900023101683948970214164522745643562643394346074122173663549173989538141670599257594857023566670386199145182438228368840235650918973023020556732751583842688226183263261583375469657895730073848132399905992881914437927322171088267740165953671290166046219312510227071012721186934831395051181593024373616240483604197138273892066547988062241423914899101715623188400519053694116357380530095737133769370173288441516344696991930161066353501751787582819616057701904005325343231254851776477750321020021146076825783432637831376616909737533437415793989529388357570207191529610041815551527760085628562608729929251076663547546888630500858153948234062348093986843614250375499232296144685068761042212359443360141808393580549260004104917359123219966380277290757302386738707307519787432982645588467144671286582300773503431675636989267421588721732709884298545661060477450099491074844394103882290257607131385635873676199601407738432666244195323943091872666514375169295102215687883529612145486557292374784881286096854578983808378525196645570731737233062793223392649184674815716174708493018309169638983603325687940776098606346455247041615036800674058507659591349260477280833018464967599403344513869871030776019050375631335906455376292255564825201380481580221257749567148719047452929711416001579074835819956193555578375765775924092352573264738138966914820583437141581341030129760446475511402521345516704222361311849770784733874620969098863532841605698188418389871678065766489772192520210180418810819371061263402027117285566176432403300082094398075710819018569828476588356294315769330753299917262416720469513916297973240135108157555167594816196316730540076195853995879435906508316173934871511220630539937989889404915251726458674362674334167115186301763649807867272204111740912672178264756949642153665086410524151142371648554225487175620262710378320575145296429358946980116795781625714882595787947360180241240877446483929792699509920052667287181173487684832421290777167209138399755590525510269958104869190590543597294019536901767584980330026997933331058914660639232881203078239513254142284788414924982492675426077346012806969317265880626658909757947739052249640202319531002424642873269257006892882072032348281219227582628985850155606088167690314699083890486862637070531010833144748604488048425464727238746305670831405265629227496611189600228508625126713475551675822641962371532580211017452059546171537007018987181041969997794744036366424447551588432259655515183274817086221423252558291802707099811359927368243243670446554885018414861982843207610635816479082749694923526809416777503999641675123572389776951014499752217923450664675842121253750003966033544812504702028976837559920376043624016740383864050600259499507343978015813261824631702333896515365912022456641199452398639926848115758780348964498488173847611782490572900778717994226861606766988221334433334374071263770517308554837080228946154932858475922157190445063547708195480453596376592100197919592895013959179333082333888205581853038147711760670677264709189655786821106426001931900208257133978320945345125978256468271067919859470248149206967015808343211029884580412251040010490996539845874511651964842080803331816425361041326798313326559960747278806065190775482351454580865679161477144047881275750584792521069796330340370938405001034530348488002196601275730859311493781500492952922417541162398740250561392262454872594514402919344863779806753330513744514666242127258746572508427661858906480316501733018558271092576321892331041860098146530719958439626587887032581104122618396868891964539634702959480633987192523597353234348099145172219288507567541109154200756593276771307176239821863988363375314697017375147506557960068702326060765435931533078332225320413964027560827771760290920206265822164771190659583058370211463529248437012859654522594806350016655639848193865466427028317445650971401965574996558390156153021479225576810372181980265942963150325551118873296023655967635232294282032092352642135868144713266094182102169374018792788366515277979941288339522389067366285797239190504290123469997855725990687045838309190980692376912397218862750434376482057584308599238942074815780355207627835175003384476438835825771692056801556527575649759329294418034867755201674397488364901901021825680368953981072980823304760068265286075232889171727509165464341578533458601820024129863553264253234484763800675748671896738263704956336436517432603569938303770713973667170866410760316431821949684355990258182314053259222258656324468402612710072427059512826984908081491976925256835578413748213739320013029564856153682269410657022373241307829155459399771826799137412907367192517086494313633138394087595813990788745655019162288036395664818950535499651497655501235641407494441804553596728219738458082642653364032065679438593459500509344158152272882509788666755408952599073879120456173228508108056797617710171208966684612579254582973228487085098077639527841798236071541659948412652007879487414411144525041037130111139524925338060455205550768035067449780735489271162931331117638373704831961436653890916038581694702160454528528790206794522381138157922684725639700091961660036824381006979632976828036826381156822627088327437799226655753499221548494381373391446227783092084602574207552133616241100167362901862683037933807985480623730902798420514419984091713614529789713367032896704494610139562449334045041652250814578769254911948500965929715664646266426536509443651733560475098274811111473425675421596684192702249127010631527359402714819241408959670320113243314219695651994446948337571667141816056745232837001874074907332099687049877941453787057086744311173162961673883893007353962804751630459646179578702258415332848380407820950487135798690287198804626988765002669004447753205000256130633728197396439373492741641541500939827406695587844282276429659576881541533089229190583173119645593566547547136811919639898483898760601539551800694859376020266357501540909351324434385583618758522735103919873852910483067236947741391004228846897573892859409435998446191969142249296248314205547058569366938261514637660016375798906077540817868783331456907305104549030794300803726416767727316441169580752847872665974438533010986837867994062491689797348629339046745910824857265256002388812260571017787388060926391794839423640583553008550252528578684044162993224991466256884818660988240525158645065408924082428451208412610058661845348974274074599242432141863426726946308229727967385024509711101072711953664166094135851202921011127685135743521352547446172536691644784791172938793026321543734181208344545330371971300087247705128363237009974636711630641489830436286325286791183373700132731790318730064838524250086599347862506910678630669795347491387542694196407369895790114540864007698029700165165638018848469985293835562967053471049818947703908879666391922064430452896028296351244428223615903020080533194667964290916230905302951776351050289887119369342949835324095253956687200979972956098408710282574921154522888500516996482816212197931662254749175078236324468808333543201740816416821794912719049789979574978538378261952194858524823654727789266234869736824997655167643329292487831060594251742271422203952182003253630517119135069497947600889294496951078818487930510613024530151045558750005901123891223400472032193728766315085629035385007434757750589234010472958510573056914610687273450865712822135406900283014498887805393950527503540646197984068626524546601390719503998011219531014734375180443508219339211004919473874196093098679040124640332549987738731135745764397913702833091031256811036842287658160535604505055922967297485938668720168747846139820173044770436713377240523582572352154747052632026039273173906071278819565132208605406671294956553673352965897214834107701245023221816897997438774914362606985190483506948779173229067828722673405529055346054872305092410858298028038511201239241766879967786032143444866541791004618221714294043969951752113416490150067745895654786178725850092741213922035340600547772074041196043858706831017589844942208540313253750089233960154985111960510769147818090761130986263769031127879963711062952145347736597510129088845956121292105381500840453369738450759391455096136655154368397602425006989066593001256168289279597977194740850048122447880059974707365289851962945165031081284916505249878208509548427847212483889929758320091648692937161738115745166732351994595037322372282638941728445449626496133552029444023094789909688832086739267265989137959549535321479414605812259776488897686336679905901547696509629072831977280064507031236397517402442097897729299600203060595186616621237974526375959181024681891382913532196842006410971171948939268470553522651607323575486906021450645030653025565514024781841974560977031850737385653624493604483632984697726799062500892039030518214913117388466172033526394228402901227688473810507643437581854904928597330154032780161551061254382388736661186578521384399449799295859912878458191734110781325746724931195668807486454695631900653078135428497096777788366039149043095168659581723632686806020895703960961393101958701130482521206666330508060533405349559429397391587193775384263190675009366951158029038742898199708011368437572967489419991330737685868668337677531222680221281188658928595474409407162005563438289371261251988427000550374688734373415544015718443750485818181270339539251105347502990935282861458538482108796308569941568991836545548809781532048805318364135787521815064890021191270375899955522918651683841176307564339899944633547802746567704812391181972990762802150796049590251166636922758142182340363209862750506146841857590927957804848973482589958714157269088275389874119405081218277949781384587718640729575022214504471613893515050009599067392914362087084448527980873775980754402417656551942073078816485894088657976260355355301189032003369923585616906714535648706896444965609866419424593636245278517614253106159176059201092837525564618309020266198619195944612008496274778051295939123698471137479490261733571323087861379062730864007377692561596550846654252568439053666739605305699591260103591966620632569348858691228731201194352395369645236467955919225823778803931144219935569698026242658843142369984726957506506446741989625979386319400530750150476584369383422594956784205899925974102205254838056823808837128975674898006581794500103124789796271367269174655144041479096004756515828770262900121853579622648721445212175725082925425164360311112213211439546620163613707341199412214644373617119735208106054373266529000257620177347050842037046673562913940340395268585724121246269555986738633663675143622130953978610050952689645482104234318705910719459721175915914425317245034003547524110042600278337657060477819205723791907998582788380430459493749747431935491152241064524084470511260235086766182305217233988034204036869950132606616408967971170016970820871084200102827818892933558630589132700876089938448621357098851515874152387391382957993610006781483023300174309220305611075615212393538696462846729969194556617898580106715239503942604539014867889242265846739921683655811139000774273640785047444224445187211280463889654576639482968093989014069723531902749996380207278306719644413694411195125399492815908350557716604604454739536109129193613867830372657972466918694058134128591440378354087035228870686253187504895361254986606329446383134518824292000094426299570888584977823978461452465122770257607472973172641229323438903912803336259873785039207879590822064939085615739398497570412419868534202528763976643188666785747945631976005988966326489823742255643279721434031136663668583610658578959438962729593271122868740556113474242034321923383025479167092964890528071685430037637211039401694996553210436869555021398791471523181566710483633788449516422318743691919191063078274362516600443960558288621644021479604531690443132737915650102067005130731480765192541157844940044729847412271096525276199836394262897817884317798737229852483809761919359226614384460853068761869785345148919147680766943290329530835693304808020393428296856905496800468055893689536975922547046666514062091880062589366571172336752949909919001803492222136024434887276691893252913959243579322529780941895495649418004097872253837242031584057426097491956866616284032475297620161853240692275011258789441407750413415797841230222295215259585586788437870472959164632498472678247198566366065225923004422987217640133160924453046056629161992616283642419266053786764773841287946875697178930523940750137502062115133044324295963004964026466171175729743377475630064726536887689073439164865943162061296199169313931211483210519141365705577767640807264603647856833736133288912793410059807775624238208228199596270354576918753163351734847515032905660952706790675998248908805502731246617914295173677313141316071344440830183397519960406508528789460528845719416865601930387707200664212412866403552268936110200237098762070156183452138275416110960759987554804304131798814683322362307333508127461153588715209397519300083575889716509532769995565113501521058161596653349695102004271947051848159757541429645048417700615084614904370141080300899130767611304631819615729801916648023457154369476203196946328413311004724865088788669247889255074017046603222026131594109755101428975494471765690622250492703690679013540300073166195580374307269717095749391100372576323702684561223630280611579530585089791925968669956394660667024874269243703541525706972955266848088289862247709783891436939240053287233754816599381793846654375530978668186751258325046436327408808588980400570686950378249154743098553863617309706791735123863720868144946665996648870967478297740505815484294020148322828380395208712419512337862611678018825922334237864691442081269333750016956551837369144062020199828552311571707391753351658236369383451829405956190308664389490736182060331650447574918097545790848300539788025583651915872287748057818056770918982172195217617725796047067527983011264069959970679134251956774274043834817832723017601083054384851584202883661173823651149340867733375255202915914994783054436707547094645927317554892795857370078978653958220339353634362033109945347405060019772504358488214443688176987782021004493700774367832227243965216919600354864389674348090334175364682054583940718168562358284452714450219235134095196368101551305397181345624866900701993986428188865775722009538893172765239148998063909718036963643774224036544468401819122845285917562916886634841061999921107508800010999326283839103217686097038284476280185896555636149329932280475740535457136677537842725946597218105965826541700000738513038190635783599266385821849372448339721918371079125285292574755515645602020809688186888828720634446628500415891055883598608004391865928049523560522138122415322692821906028035793674918658312806307399942065518092557590358528897858146230424517467176489545656068750331066562216807289941234904469115673008165944828563750299857523646605317248499119904304321339112670292233288494892912355575676684257213870761772590534443593543045131371622745492253764423124308943996881889853675957470514002357973480269911511053714207958871618577197271952603588901237385804838014247612287363243056580962799788721431214625697708896689649671516011782618787570720821526466187010145362647821267879994474984094585226685822181748244236718370114688388823976744064824402207640873271920267360614180587443992425722697889238828834468654125132472936584876615914963144031849251109929636989160764796101598611097659166234071463446657284083316368157054449079050538285018324922645946217851621836823932555399686969643049076755674736210316394491945679087104036156438202001651472071551347519648280047002137538667775393165798381226866419265488919307084313449343915244926518794138352906611968723713547408747225514668031949273258093017225424131299637979802896217838216640576654981610543569816114972072467607289675377464084468250164616887530466985256454516163800009034692189033604591588517386604964850449280738726860370812408326664591462209159888894454256423857505561912958058044324106020634376993328951193893542632956183903742028882546623257057481338208250389388723303842629122564548286296906956228250229795027850000215949061853356240261641430773638566154288313685341723861947159673648082145810455797371640535140311575426072887585947576333942871195476369532330507934196739918046493599010955611141270078909617681014999525749510975578468687436162409510613175996613235548748968184688161777298436552052906440265850312757418789995264983329011549329411804667843789156334254438032230893090776336271245438742894974774701633788531402845487663833330151928269903880171437582834378664269550365336964673367430217016375086030100309106662178748390159839528858986474048424110865311200252553220606805035846953706439078179124150025144747676909022235094758233361426870832094326937852792817614262935514576216651005144888360971171097967442941377694603201640789332162429805423521157366927036124296758820725471365298327816204051298008286979156686157704842676198144046272394436302626554452359116746164467136525712620908573362729011627582175841234142423006435074104905373276396338322155050468862025945839232596196758418199476955013486081433535247330478895000119314221519841677790845074114407285907294636816647139772556183420288826377217093889882477384757398876972675776032821567761080768636762586361932355864108071388802174515511842967521294256476277210037864174996476396337431181558092530359324237389966229955134662774446675246309835760352234615256378102867867266878260617352952641331214811585231822880202782057232153366214100336483005991450415568014269587370481720943947799672233574179294041246060355914992942830173828210383352412311717805905318872629704201145708482536800199711586289068882513312864348358043892081708064091282934036192770013865176520604254176115479284063124383806856186264327095619673139195138072415224587041615213355047106496435245172703697044665256219907158304634862883947326974505395551450016773692960471151145565204463402269450845473531688932566688334293372722458649789712939513783375691581312992689360599363209063040676177512102942632492290116328947591137334747591845682536085432595321875514024723713753672735379083862126421688882088902265190999930160535038487249950168948281505273945911189657920652111715629933224777182591954197738924884418018347661012363045965430171640635785183250856014814637574224972042868670854853529766077836375993172605758811432989680299490842022425251088631708286201657959553092192125902876502241166996196940244035280816055195526606234844240911098330558974464536155415675373743952076507243924200354626726308491533865835091687853304215753223157127335316914015651067749034231133195704821378438844730682706741990334598452667157831167774693593092797553919987078176363664346447200319096275642634199426131916047508378024175756440786030454867803470726757889093528170658966609448057899100143978011070550586490615619005589161236475867848738274681917282636652565274595176653601236842695685110903504074183075784971613758249212956700703478368624054577844204890065330508018985102572589177242253723017137019324425973755017794071963748307111140976794321159083080487841107727655868121718476434894755313763781145314069755966611527965822354250129829414983538078192206573379745345367378589098844857157293313532365745617070254629677681340431467656895666629215725772115742552499455838392428347082930167935017713410195456834215835420775841417611416982735074937897538517030531535019431098899299778230878126371056846741102600272333786499451773853602814582770323328656852226656729748057827195257174382010318697790897882874923060310505021195401477578104150549616371879356463413863943385218118027138288803189635793980866301743866630917241699034593108135813585174196805642107610715711110299325332538153648709484784649810223104979082103684156397667458013526361875482644228965363942653758326819741512273075552998045010524808545990630937451193751237103286813708588210263834918325975783437810588573660973812565786657230470514569786868155414145539008090741620920842502495093613355312706695662835939990134838590552416256272073491358900626580968099603350856643735842626439244120277114061345426413411979526593150824707520577071866387318580525782418032501266950262854071976632395842885785265514893262240823689371515045511488058889188547450606460982233750568487211323729378656790197441939526760764722282936417560530931089513943645752843905140931769418028023624765950007675695168779192546586261238771210087535809967817466389188044388491014121761127029201671836839270664986909703298354618774573269578045024931635210463412997673479493812071978214703099579157814077395722698050737039384030353643321267040203819764954614370939390641826563786998298408019275384418882777935230395933293045915174109341662017199415239577782298440637702971142150156207260105856992322976084557797893244143741700091431928511530909026975737319168784256190520903167780412903542937019253789091812457353483686047950620604520891830258214126619289081768618279093936582243486567018251589772292049064914636340538664413778289269100933141573827391489236688369043534854721235626477680470520400320136396388514519312837324225542288338086941408583079917140621220291314973337590215848090919175048260644826925663363445087238943090872847714342361041949421958672493164747753939058746720823576450346865846218927036474704153854674723470708782657658292935188022211497861786494863332762933114856195334155101359887997976845997807884073130189017704270196955020092419771767236365529449973381721948047809368914474241212543685994413241902581574293689449056707521852068597145201895992513997383488106807087618209067877489429668293698389624535614352365166552683414850847112496829823004492603410950615673465627614320621657943393062108259918543958057389537815312159987180843508037392022772758141116892790847935004994538749495868987966215592655236509042480789981859250707810415327004077768461683055928505400317864894277172658412191881197526731458700363767525459909601979275597959241322850536217582629997090907957958261585036208175955550561294448901403288713358155128865193568480183899762746978734879902825506222725605959771345397130306277986464100944867846605984490330549925023809881878233748610697923856624634288147354604405251354214643728022982112211150965349309660985496087037541421403343255223355078342885480724023920565540446003340755267555690520228645360344202828279657880997127443051117241937899442376170689023814686776701411237918619698429076587907930270703000237784220102970859059950607884948925296850811925709175073574640646475038229247121270228922203009113065669448754231378279114238166127000408499679148556657995763365023296993464840851341418605180924802085389970942995974156268542907200142452227770352753949823756866669265110098993530304345238217698055312601552160182913497853969691683938281904639144071333415411453322332809520623687618019093143803205116571920757420617679679575365051541641432137392490599145474753241923650490278104044651852423736978777173041249336374855868600154024551493637157607446034821617339991353184349814546582353177717970102340630114285113738076974836178104930928854333530377980937470317044936529045495464506333158375349379682328196992497028863048152201451228134470814102801624008121842383800290912738170247028530495792083904348766487066275313513693837782506899207718451549899213067117906521031862739949032137810083904277975054879881994284378175469871939014267343499843795546843991397842874417872262583893504509847439482665295976122318747686914243592275602018182061322470690676674174461907537500292154725267387568833964927377563487483638817532193132527976734064937540369258567365635757837530445426558000564381029164869089048458154195908649451358178369483878173841273512961451963842701271728017370401288778951715549223166887916914014129579276058598119965491573508628433141435264668994848501103000444252607858547721725200297455290050415755415481421412644268541429585897401574771174926144944659083671684076002481086065581623841677502251477669754849076041694682014975552904545664415776147319265217631805026094054240005601452246258043749435027721850600898574973005164704174137711486062439641715411770788800694577988886541423965568516908362057617513242981685039704169668491114528992855304984070871646999856499000797160907161032149029661174347585040715429362902370345783861438567138570550003957788446865913742526472326876010100990697716766048841396225416469519135130860287899380788968505419101064769814060314403736323110550353768106940102882816551147966629749278846311438999593607017128212764966014627341771649056209444365801455446371326524155729363368404157248167016053883424155826260456129985471478716055476483415089398164322474613261062897953113571337914767554426144261254879250943565652727554253454793573459404909662157680160645255467212388446563431440779222630439059241849891204050186194073349109253964436722461964304085117857729663861032278471077746240033041195234862032774319644553273832347481784711426353954734069011101906795634634268163152791104006399696517111897289949568560869827547855038534828224192402189308099535083137134896751030926372559160240083560961152537107978320652825411520729699805022871168400432066672181060661227058939336191621229280446231343660948482397892892909626342245174714008739139691735485173842903290879733173801387416483982361261858030323558221467599367695342171217183862323314642033271223724804685106656791748551957054014355144717706859481821708940467733807510604575324092692115490539431686096193480496770712104281448142817156268722143529181539539212829737330467802904402917572858305365232293237751498291404050949236011750313418475825333400077575282542622015815355455875248177643821361454281944769015310676155785040068072047346259666678598165285685431663786126762267856664870750322115906526689769660347359005274589779224996984816908075949694973112720640758591550285658548017717950116558940890481793894325709979673869339316880626893350105017868507129624995148936620526084443293139459088000942430214299767838285796996526369375562017714335537790937744523303944867524881251438088953969664254848376685572538392688822890605244408838831879083091513987471601584851329664691837604947403240256559250036473501955190895941813243037869239841124081663413212635379099876798830347636778434527013754990745741968539450795605601378538872368123180515784761024884667413052705708246262853978885509950131635680659438085680971618806977780234199424301901127994045981323410450852739098694006232858261723797382050481162904304450220501098051503818952042561918183172154654133294441689237668115511901305598606465114080494873609697413852134613727083225178668908538984243851521348187030366597978825519544806251816433345213737744437444290514505266577242416931644247042621550197471169827601691920644700004971783267298380175986231738277250740505176209754370549418510566903949701276284464835926596536830834869568429458901689966760595569976245548723759963647113920122908639687864422451742556924633120391869845995452292460565830719052308627631106776826675727837211636218394828218063089680568487164996532735476114500345823949526813390892561861968739028812047381558007854602667562181833258782929320480039264257315034325276730581222385028849511223861088048546619887455739705471722567737039349123149365394081450371819756894245046142470570962847426714750655741604914677798613639960121508490973187316709049464522363952654571944347190469979568195189129206915897022763404676129975262896606641699826154952108320691013050655768973356233897888328335197058147005031340049500169466252156082370661860022507563705963302871634758277137930425745705802962412338583272272357580000506505174623490740233440609601928075150856163220139296553442397693770735226446874298545007196214403570871401391361623433287247822338253313471767348165961695881916204077682808620032928117057821045341645180405358187750738468057354713035464939064168699922871050543940768553346339138182735606305218194260959581654067511842163410693023341738106033213756763116987073595176719264550977473907865895142679054637649256790009178679678027011986468374885513376999430057788493828983557288392055535700364844194405526607546881162447666476745977465188020614944099838337632201497622833371691348570472878934072809476901144384621356242440080372980386592285569563749051976982071589828365666888927068359220937816046789039324073973659503601313794816957755109620183713728042185461499437403742937579600442362712070765149901854577649033017180822611550538192518114312598359611768195445467049692963089030601432658874207051767705650958499952185296486946230256883974406896654615506617203416759448504432397831637848602707474642581757649041567832084272349694515280340685714556969045982676800553181739881190503911805103621977194076521517995162777569732087255440132802706611260490273381217228878215553684440780778507953552216613686961057023967990489047158500848524475529364697650419862415798172767154627986429910549820636190691084469101758826665515640598560317692094161934464673450611773061384896212354670608693370198525469389954268493550009890754915722678260394624710066458398580620407763364444188407559913225940076425794454630711745156682151218736627108196718798973662482534075433613680356960463082757466174748481512219331116006281105895972776722900429567129824029320429350010527910399143713166950177807186329634757986922905253878147566367270505572941841684392340034332155413607647642348163240645895952975092238467950972744835597100258455921664960257711194290481999804998671597534841019144248039125910071354399554500306785077696669229496775639977180552960537535018516436661459308296266714799542781800160925981229901749021496232377747017907204877556970653724862223878645386482647221727092842949158518395616470737969020521261097230179839470387239540356062438109092030440453585544831496450764732977297645622753034755154737312274516531200160310212583709089808750425525718162894014176839146347686692084237031175877680218061180146461073476105609467062545466398129154048795079440590976036589816194470410640118845894525797628743430310352935282661808028763052832381645247420487531048297528183114581145032498912292760029523740664014674323481995184550945957816571737970311351913978751435075755992531326806533432854704443095450486034718268064946426932010088591788504183178583735870551064756423239754430857715354939075397361807956090521382391378118153888503814285693206650965875818287511763131016383067424014815358680949441956685503175977173127043736826690556234126798458096776783271920376822155597334689331010786664500146095894912535627680187328198768055665469108715892769866079029053993024359722425646284495247166572102917655077319427903970496775415593520707650087723270467165437481735315228882668267911915893661427329328676265574336769784344308093334925716377084383558574120819051047382636926836504136927512076491006757098182405952102032616924736738465454533563806406775125368282718185129706200431735215817827551688916067863838809537877774009378269780106469082419465193072564361934871725625018014943568952373529218676207462202234478860359739225039162469949851451351768297944214689666754587455258301070263961500138779218604827336579330605889687010378200319379970690534355222913016544495756092608343724937257897429009529130704330829663466695130853459575868181036605651832864455082923085177981875330921654853265424940596174829201491381331962325900834466875564885346285473687049137254656240190129779471369007052012122956377494435123491551278708964020759811548905351679743878924527873478399502845009022708212249870921110785564955166453603374032762889661613368037895136869297946965308755442610428050427389924054812750653874586729915098871360590513339239818562396680952527193740127765064197529862459932191697494428490863041804114135179788224531393663831947743048346914731191638329106634701735807159768802671462427323864785302864671486751641080794834006256404808996408100694838881488180180284046692091497644472608919005262287015657230339190626139247210414672586761036601259304715920280611112179274146033459758884296673351858286968515435336535571526500777902417016769157987523759014104898245077143568791707024388668457168371177498775858552306872154393074379784467895912965723615491895773223853950840792377492704620476056604002153040710750659728297594852608150139100157101702512672661824545228407689462571240481351401496039690947258176183072164556692551389097266454778839702905034971848957604854993547068030264885123323628929756801764341312409928043092305814148511349039322039393293874789389210885109104717208639634942128963471100112521750735744954007898677884859101019531213427045625207691951604561962881756803841758174462656194751361643442141788931187006537476960904953038285262164857075909175959357836682570811077975277180182787725284352158277861539414748032985009385001402944334098947297883066041376850654388767320536431439411862968260447327229200366552765959030624181241811082646813463906904700230711032632141716603561187216895347176707215801960712240788859410935797427974148997077771372962209362535371727897935635821657201038013803778916772224680447818841649427903343416401544798280411878365705869579957769176556170306024121820114916079917869524145997457588706586505673398002759443239289314734136773874445998312852238114662543387881522879718430925150154408205676517634627060664229989207219649604428854521451289614870012807477431608615801412469433329988075288554309677105913596939454797968377360788649434480224926268302911773841767040450379724484473119543129139122758524201604707518311294787878138654002598688100581267796593224313110939816307672592014706592259847633800997819710584002763366728410900600497609087016958331311484158479604407699004381013402963810603470363945998482071298972341338400608702492957422846072434036501467761105896801336639983490852398003581983835385759097070335459369571466475251046644185014169211250827123593875345391928978635764744907716573648129826278690974089999259558725472285300135397788595662368252408825037168276306473384625604049989785380001581724588905540143090387496498067310784182515000994465627661780723281132781877265935309996217405083355773662593375879266981796113283749305675498567338530329573793000442705604549190715306904665504122861155612414992356293644403299463171702856968677020321845066143466948885685454073808940056853349939709425291279895276364409606112023633792010633373879597986235357985496018916099639319689191705958777062933438785554067244776655773698207255174098535688301131968100452349163344149410532808191304437917725422292687150165858826447469615185442263617399897281945778185096282670239417900212124168941380299814584754810165211456341999019070519258809967631184332077163985597389410582464883382960605467925925461326177639508195584206661568479659518861809567283019358593902464878816119628334829055420935389794572224354198617551053061875383437331051878796532207318214267232532597761110379772925725225899134260902406730998359062989120965205458596239659037155996082598844988233203230261368209878305953623691215434519137953506553901611756805818109519266155430511847588963285171887877345414426062473183859394473311363633133453574363092148276588133938837915676798923037244389547035220490700192440384402996441348025223417842675239151653703153542836383227388511758480085517832819015372423970773374449743439878712775367817232136016959242192832120026081987410207394828287016757678477202979733032614208210192425307102105591288307033805188037956244810621123336874361414068103554885718796152785049796696051697600946282646307082979063744643721170974871714189928280354420473391150469699509796835048785232646695913124592697580294418743446948040050949309589646528482514187593668187147711732002945910059118691721398917954457184927244568912354205521555762784810618451473799149951389342803452623523072457332687513405442623648417480373543745681312056823182718811223851026230691230561361381927659531063988325246698629958874456682485372600246324903189366417071644253010352136980423959374896437972384640741265545171828861653616504249949761329176507086671296100450147088828895005868479933562920784444875737710107339660806867204324791423282504207954749884289219340848565607317116491619583449132746306559473927338749501413215869138589885339517146938636498589044054040897820980306068318869227086508276915071017345086714142447349799155078115256457854894667865415420472649048945256014518458173883877169074717983146760695220005994964924174768678039426169382252981060363549116396413922435579818688819401920653140212277927760034597822269671413652484059440300099019515422891126795906706848910169821914382706960979205834480209141396262723950983110647665103556380794055196798361815709847256453334238282424351715420402422382332443653909286025984036906233479842181607900112792537161189366338834956502384801416108072028784097319556991444548559925257689434001277553864964802918967508207374932193401244800187807129357453068216408186666073316500279504817781295924006118527854913630326951375136284724399549808900493043972101450111983326087444386003085473345756367667278230474481866151889259769663027939473740016881093376248881992425728243232160682724506135623955838082936060079040962039386630267209565727081487566351148342858121562609250317511727266644649558460270255166654057504028147574893348413244483812606921166326960397180718250023170788670448918270238162377620756497428231730099780894909834473717162301228852810745384464507004545150308985072963247870868526280718715299569314311457292712372567115517803809447231585905895482292998561888151778137994253449359449822856739615520444980810275278010017998479729353106146074400982494850876649845707566416132379972881818786081003470578012755930312167854786070771363601066760432590184187609065222827034344736633550472058998623846461096775272242058594904940093293755882099434079460397791187380340930658051421923458067683196919639736856630103227395940513938542519111331368145128655733058591365147350685084785037520762636277226735631581160757961435365394860646296880834416384320863610086677412751553479740683963308742919491780986527861453558568800038967407799737308811329937863724320103175424944674370804790730455985336949177494994168477820659854837010432554683703335281102133278578512544978602688359492240252915182118957151021904968248860789397808566320167761321277117631570745489147913705715221387715766457818260341928743944428325125472570139441198775791154807942858201370348791691061188922794825160267390495270552413109844048103069924475898805576143679203944433468225808410923176525063222564155487737960763318220810785400243213231241397823984415270973734644800501457206406189971726124517771155431268588034648725087049773400624849161211787896900519904112404404616023861526875962432035339502375244534477064379097039402606068555055060317916572982562731764961729726496883061872184265914691554208580194901985444638495125900350975610443820399840357260758707054848911691598412746475570783973301211102325169478594265503857291621488953728180201938527238470446052661335570245629752824253838800750251142059950601370378645469121347705971228634480285938714373945958224933602006015085349161010886662446628841247830273960003183135919368696953797174448464375812205470754217508207773826328129723435118682593546778612994186634486725113541728940818010078582859574190099924455523525018116364167717777839573575959751739571502463723734501616673176923469191899381235116372209170336285976909199510151277851009805072065657889546549612858383979711832494447346533266886920988199248979407358832315945388479054101510436072809471239603925521211702073346129958352392410397673104596767962029905541611127740068124289385592391384144178192122075413310338805498520271974037167547863924339525201400758009501215626091049875440595674575827726817082273922203598015525245731569644924453635571836916745482396646114613022558277884971747029652950627199104440045943881466895352022742247774162759884493479569171681386024740070756469035883569845085639134516391890411015655078812024193676888787925828171075688343642740859768151842212546325878502143544038385513569424022127516437699105791025661187760367762198960695637521402106374649188712998104028333079325943728616462775202036040825029576859463571486197676844056875306636250060043941546724356491664491333284458713991445508492748476430973286913432470377422541202210090292411781850119810046586033132918863669623909338736097115654514050620934932496459140881589950348831063475254293249145811170576051795468507590813545372007903678639461508572665135801881850156228365270791687222647420210744162977341148562210348033309998005833490261755331564024662112723220676342190233861900813930280176789333652527847995397162302526305523589113519239768132535168000269771680899785930733150853920862547133648373286208240334176500363403935342563502754354787480858466567932100200527611930251605923980698859544341302914828799003346722503440818659589490431052334360858935617668424994061546464446403275736211080648311446931981459147509878349752387036434405169013997339959643945548105031444360957080332684051120169335686496897998038439856654673109411484906712039242790066807250235864710323044289321232152434840757296716260437687790122702902587008912322348971465203644798547311133035164532006888656109412153497973732949558642872480884670700664188768482400779728268987263375735043485008884839418087768575791418098201019999397613083893400075917422999257182306111539073142557063518627175287016623399762744889490288870568937367547751799792972082444162286303249454180357377279591771748134139518315724857706147902455292312272667118852653572907223829593274712319817240422064220633017096834031046022879845920022325795851031421419986771093900040281022541679451065065689453490765174676730438625157207521509512073350902858054526673128763485500648607178940461386349749322150226103332464869527465129854813257525272759168917767227309050549815726799029997947987625931746819915384444217192835556486105960473623404951207057778151572587965162510147519598204185379104070932407581823171942281472427734552875007300138383548899217780027207195547939892916417255451004910656799940130075212969869209642476796372340276053278080595507967143010696765606292176416965306580474567191959653451371102786592181518073966751337029912935025648452759841258930590988179170349789659237730771572668026065666332791673485173203625825670843658631977168516458409235420758908322486442782534854614051890677607955980165477493243784574200919263712868376925805363879197665150852363863171621101258132054135503957719901916847227574896627371304292596870507680557415564321514419508706302909315582816500555377983426012159120338322265107412222570058649143556193527905372304855974095472626341619062454201314900564730327054524623526010098488813265132835331674301635687113344767749166713303733720094879787145329487972821646853563713431401815317302417727802984147148903944953467902450508261496938050363287623941378308252007713959940580815917728104601831425482471046335031096339895862199870506096351980445736641648234568599216528807949594064318620748145911789731062358996283089270248256412484423180125528064820312111747439200647466599449729990552565592780496173817438463557761544491345894974933489132823564351629150507875339207589073758591737125277151078378226553222814116294516489060231721454346152468921357471220771470077147886373856085710764377950763659349275930965463966630495055671973885659703203058966188414408618695995597393880717028546132397665237052018485128960582641093309347537597348176309030566219288355054508283866983047905333517356409609079949095236065884929141888386062603336153621342143350827169961882042542279373108952675891601293462377625472251837627884202616428435289707541532797761722143289302442518200476934098593669502259647292362289853434863378120443816391676856849161163164482566649300113761645150892669179153108444603205095839129545738459768429946759877738433772515269133329836569971760941762376638792326932441268155152332253159078058671458702058435869612674230117523624333159818273033752788695370903164800842612971964307484728901354799481988396464933221670088575675164171819416408054555415599532578890180686706047534744465483579373715025976316643047429854367144252180657942788427665505790199761783204971590160444169220062661098203394941510319288124556558283176631641616369698497458059772349459732140293736199621532362879910562154113728424181434926805016891858835339812175735890564030726618626966092971736547029397212740389091151644984717667801427085866540784646524177262960332837338589028851772851492184324880884452498132660971443818803340133138662762667059307347085284912035010831321228768969500775665260559093684493443186418524639457413526368112710610938983136319883449295114493472205175905393993791620915677118704096698148427183835324783624424236592460617701020582903709948254429886931526113001071133558903872368973074575853763231043416351118786344945260325798722276716016949326050307182684341916526568619210186009094382655760170930769739399012353536115673674995439293259229172464608945678559270393438497508470045807212858950681121485064239980730553961352009770469867264354669933196421471241928728552201155788424140924719172255391478634632050810526857725793877794404344270204057626186969399742183350385764184877308224031800136055032484243142530347556996443497397243378496766256151794252609190096505501753588466452356095927144422051537155127058916573775387862015470410865597698112773175555402971320952065460263278825293249405017436012788173878610666229641240355614780111928056605303154666463686550266322437373564738615589661834911779371584667074530272504955997619425820656551705563554341508493936562239850858411010545008390545583756643787895620847244584808478598927006423884999713641847748322889897657769888480608750559460116209838362980371179759014906167387673264415018312758554401111728248805125059070411078329379449100271324427482117162488134491997232766034516530664107264822267968203034383333189263349584327942094174623752242254675247446180539438515066261887062543604112981933109800868722054543326588016112099918399579464749043960628732003742327827480018849952300504239814484819906043300254627258045866412584923457940128988149769371015699402463451823739448674556976132743873394830834752600382382531974439157004838892915851943668002639299238077490179488661899879755352216161275349229141410035426208581581545108486233842660054806109051519538798560298523480599623537421471615169457347978071059029392932864164110128389591091847090931508653822547241537991315033259957447581789296448348882978536630784512630511489011332032745127299310122544022874003049104862525894797228404714801056823840354289676857380482146809793842764517555062558830765021748322651866414840799230427413361572468770310772496256106874944565427125855275946709817814070908940713597156961903446474934095145403978802166257702499010717925773503720278771486141726970623070875192105602460080456171990191398101108746452785811599757331768206708161046611024102696405040799517413957471548007876536400699887643351457027074880383322273348698379065774460973088935714180474747250464800378857088920276341175742519482146968717848774331078510366572071098180549018133532211484493817306148769622626179773279985258148881808706595828291049446028592576845086688038391823859522333892010336010803152783736320316199064034554711294149943384145097085375336910516333593625076480577868300869367356418602346349316816342257301312321368724799693747969846815616630774946200669918670541550476394635690444620827549941539289246031041356448669773733501195945548775015847858030121425141232373596196249243576805865324163416701415475892593559283017862992540439003937070295309868600679230159861327524898985828773541785182261006313337541818703347937060088813212153164791323591203388177650467931029369636404805714974732655604258673530008589663034995252961282665412849037166080354918230101941143378762921000622613752189632475213351723608337909347227482268224984543921027949590328930055710186672340510925362117304346516626609173673992259577556882385094155745911366734459006376578111309092125350090397846962188782087855307278725312318083114517339312624160849231642001086625696811779263074856800502329980399951819218646033598070046576960136932071671421304356592332237307936880554970875638364930532554840416537632046423974129578107616586304278593690211405731347388294509053388885088734882267367975589283968790521259758101493778066580268627157079659625712068863067269433324714704469031739494920297563943746171316730661837409737761929800766904437164106480855666533754634094115961696472142433361159232775172800321599708677115898604308082091188785504234015591140090032747684014567282631194337890390167527323136482846013874070834762277247131607147692779017403101588318681431393711907908179469944278315702295629223042697712340461104158145401546773320332929586967789958414101004132927008674372800420937174178789132852270478983032175921800007133588694560238542310817245180913964016176354590619076748850838924181779926696170703123490032765200473293716856816917185891070568836729374436306481221707238097194166712103349291303002018239669862897545022969144115814001523152467923548094754790368616015744956690329109574184081650157974171736252955645489401452679671671192100097414865895232821194867750733188889548982402672719044844745622253838986693250529797856497138442917104828281500877609421494983322640304540331721590318537159497195010375653280822321301280740582076497806496592929303897138344915317484651215095027346030984170935096542221942730262269136022915413602873176348805344047436652533281814309026058472861235986728636114752795079581822757097544954745151323789953996503648375246107771388463992729552209672020881335809160118696559451536643135734274749531276097572914415269945824493906678403595003156850556739245571217876710490668023461300443224057158766055307591670827456455744135264615239300398893292858053347198679184204739715031323307832366508568498200645968376196943465816801681889296900656239643934256931222282432078626941556068688060441907180633865766404364307621963475064539303059004816873068249597715598976417445787903539105045739450446177565898288039845134161964720507751795886488611739943796514017590542732701920534542656026768802123510885196089306305493164448783085714453274921600280167366551398064832138536614279887027301179020328844770207561262826836969726936984627444293655060450763619542662470595379805629962238777118368331874706917630218418379606649950360320184510728418921499468363401828093499035875105753415713256476570441201446070530547430931219910052713249676350942556573242124701678491221471614709042975952535150320609270575996274706585897441124189444292776154826604388774809228999512833815203705346380511904654286766917214173401331228054935589518355376652776743009105782689720727941017880358950988448061247558693398905184354774800390461814131143670380012029399851983625776940840719620319947622758242912097019683209327239868994684115107236692492392768577077386156436446881832871070016989593904487262864310612031601714434335527969304461625087588476675685226748836439867058079027586428120024859811835904938251876909313206546027578939777827724583326855828324636308934975413424259659163674030994686956108691403218532123551143656494580920915694177480227417049793530158063039258393073270947623730606901308566016913455772589816450254490515949892531990059625994159135232244065102837546804876068655751803645148380860504994523818821956955223337775406228197294164287914386898873336901875261623038944636628529770566792569257488371113610777776144056449423092320352737848808411972646194211388657153686412280487001871226411825074088800119792268827571120976656009894474586118391506423856142339402140261498620194920096016463703501151798396840805028678103597910559160292621761897179858835895700068791800714749159453788298070214435581121963755514008331044301984762595335731300774357331857244583392162872619567741056299183963355169257088162495345198758299975490416767098322043036783984005044649482336113871258828654565893870780941085760694432370988933046144391853028813767323736816575284938990625538617593320176066590361402767157765139313849695783759875453763406631545170540689415834846815341049660017698701795814624281634482240881206089645163915187934180482112150167000611241388437951859071994783739646513390929086984235319311139486134587449716611383333764782586231794921306646783402249512383666316103092208964754539460523964438703664699519529088199748661580166502146991208916395445252793254533559036212355503567997968436331609100554386609529346283927680323176676863412495772738557508101402561700057201293889283176535998667189740696765891264925804633927475111966875411088838866256308413248839999562793146063168784897313690846896905119627848324795953353543047252478043524122729835748504624413372275321085750177058172845822797511900342487911713294859038910474030112996702843638545071651603856853572894829527581038246120435332144817963131112992137223379928629251972481546518624293480057854744849273406358212019897226780005512651942603166845155622949402837498295994201453368130192524245674671412277172344619519763671119422688113068891455793317796164220706028009034198413662979972604177188257036147031258685744426532677268491342356761889267869583542977312032571008702380896524570653922893906484623429187084727761203235509312590038908642288809410775907381742838167903224845828313283970267298498988279914514460203116661627327165871645398496505334645901047782124153467210534650010637951164230845705002379187410132858740615122961327162084842724718647601250922749593075819861367219803095388015745565242899360689575447158866134241343422028784701414304136083522233341040810556683213867472529852250972242589638693020627268396741955139598368391509295404491635587826631243243689844670261853751107601208762050232224950904955881420544731027524584844711113376850759377551554989617500457770357499631780834181689411487819429530690492491985715589423572141753380148888094831156252641785062746959551955199346204227115756406661881061654015842744565616833392693243228289491254869419031882422191380993636940664917984857223347787306333707365505726390102543194535327339592083155885338047317696610896134980164604530159226028268146219163768349120742367179249652336467586671907796074196310412903910718251693881385821328656845980865924491432468501545755141489954405604489907930329076138503353290085149297651215316342350642554026106075271111758745600591457762635574735919738028128878702330290362026029491429934144779907532260273160416581552288328609254739490891732411163466732644025215285865600829311268253030864777542965384110185452604496291189398355163098980718243229456559109382560621491751976834915277934407488895569282681198259107760355669853694971619310700341118049715680739315082223081746394768287320313243845404380183568026749674332570755556506857150353959064523179853109766040306377102083297671136976900855023983155925243452380498173388748760597228121422627997495588041457961132873455828048667093780538981131118849238822205807727812082244312538707036977651440495029572034663280109326789647255923288289203528056061577717776015074396121217010139756705849073165589985327211948637775466498467540562093161528337835888990394796020783437453307293756224800596897474783778411134649864652048652620356347040173226420516875917372477478310512836166701862702992178678786799300291550581503594636803868527149273353270256052613572349894492501053865063329536427167643897905825051985190491252361814457540655528106317641839144101563347974359087314029047094682130336639763424452741157680062147329551668942599942451450208326881949889355789417606872479436770169595758589905210576406872137218980107552571594722579609973005156823129794345309814643957170927681765837847849123744781065731781224081218576498005113682616055683467495597845359986426431627262123770160429599259066578228991650506953943980600302126082149883264100441161426772022684861619029137534756624481956567862673321840486712067445400953223177346933396283471381050553682728043390566282537516670872069601449165068041738712230028674633876618761426165073629483174024081813069758341354449216082092745707652508504567460071469461138545982226347948359209431101173384415526211836088429297252171638837182223159466090686774031113895673039607715058906283501472949486737399803547645579274802351894260197561280959876206732939563505988860774250380233389199807444635433530350340797854748352802512478055784107609873361807377399451257366909697660635501525957518546896678000969667590739288532728356081505508075872603850230100427060645367749105940579365963783940212713491439648072589153970439575395083134851087422776226665866219064312747324783169506554477289666616516857421948666268851184047897950273000063147297578000433181819624259200384250683419632705414633727467766318589800331766047207620992953299363376690675122935184129594400927491920933277114860472490413442130142890735863060535543383715768202142645029565690531333090975815367405767137682660796023888660364481654975664653238238398177931861983282869559032003604741465994143576980192492052375359557701358194110684062348835345942148707296255490141155842915543899451787668668661190395025077185288569697635935805178012844002168315647111812549377409901122772041385044778042979781571820405436208276954516001546364239110245703354369097537367017325468239760409488411657088573873032298121595801691389448322257762715213838920567303669873407143231531491844293329892130699806831133486929893906620870653843502792345441231820356897439382063542610164144050240549838229977912382894052982985904838873340260307427951268231780437355294598658610020369947892873998933422961873616856461216980325451312450574092001055383928086633128079567160485139966754943726613213982612682609573071876635571578829854031806768367388839038179315693253558877805207836459623610729556136531703413750521454096280065324154651701318215081505065270062682767597065604116529263206409333483756900496291517518773720057999901568851290997016230088456864604555262266348159798870435467768794978344668180213368396159602055503649355592705021049922605763400805692285648042417050237100799353727424769874331770927910898070913794051441752481940628878931242195350732902549057076476445733632497101684783397854705654123821967355484701524191529303085190375603764881441953176137454549641697561109091009754470837187498226793494068438997479891435819944927981133775138336719700305313354381428158591139006670025619353401432274791137831337498978643424181609041063248190461795409292357175497102136263274284782317397050350820887912107129219036719682360156840187833178732050882663591157956561940836863579805990039187341120472463583216366218819491226514565378663066459658620168034687339072174712894218923460826315966949666921284353180131275679533389407078427178925547475586561698400600362094303173135169722999691250977615912990792454587586915808929444771370389996439392678515745162352082690485351235690185149742239117208360322796341398670236067816110679878627476294329317791036905634363571196081507846069459306203158632879818719622558814949642004809248730258572922784934517311862512020370134257244276015220504341591266290077321057332185629766497129889749213202158220859751646124012950860750075515670742962481415453123092381111426772659785234210147778069983797910771483539263467108079445382830791225537317969392591580975176649431158883655634925744744856978468308789685195651116891783266051935628196430416643922145366870661962282592393404608891557696479974966191923580961884439912364017195103554899173169886953253609837924774980992694499687036095272438765114406105808061093002137634889160847721475361846936031003256384112741934479670342326031715733915002072477646647267516589532059799339100352074003931698687580653519089630864133968251599431202829732713750689800800284571917752680464343370775524134805698900689484025576713329867335695686782743037684180719086484524279143679624078324328774785093626314552687396063027275732542836536092012047620576943581326621533583279645340051352687970048605120339172846900852396346464474437529169824021219659912610982821795738750310383065312347022491857070229248122026940185700172147166781281119878851374315293359012867420629296000895700257616973428750969327437546517190141702236807353727810925001775315256578098665881194037422585397715125746147496153129449435768985054648221979578006729518008688179721974820445137242417632962186227604637587922539000202902168824890185222888626378991755002181223622148291751427926315635093696317163677087240457856309824671991230080916246430277940164360656168090454157822205871336455888131253610106502700602908661330205145016093414397244661750970119033788399894055923335816474216159621407298202977606392386438447792149920650407687168484557549317907840337785278425547377044334417060543366259839855347754121246781693721422928745395076487589071164834016796384764133188322195513679173783984130050862269008873053900102308640944356250190243095230871980365589463927619814328457863491221004425898988153044278902830168292120883204596562862299095736515688666958945225837216309742760731098664116287761297152988167141842024024964187073472574142224823684932604337702114751749460151276357752197557561184888058514659156200195554345227275341750451413282961205478575232678626692191107501556777717199940094441181495686137554968108271900716039391279820034089475387247733304083463812410381281108313278700706704025794610680371950049024670140929432432612441538629475586868553618982058476885903896424062028946895192087043975488441150173029521035998367258551535813675165587813423762033289782574367510294290885019329362598131475096313510915369454496015902778506023655661323667338991593128178513494096336289595423140301833572458119445175201202209530130461465883812224839921253295912114900301028460446619739926941350331219689609533703048849697563983218236611949510245564842666370910681392064997033452951998490824558513493517920842021328442526556406232630219078841590481051998824705289298314865597308649905175809735599139056500923356850923639356204209051214009005882224931734324859517891529838981419507083493546283364521000162415355591300667660251086479323430208161462703716263863751834019878533636121799398697711780535288859491246165038177360497361097918972549971921342911540694305796032087656167157317135882400093814934441831446520591935278757236406934296585473954591002942260797031290808913450100493419334067529030037759847730011498745061529204775610995795626958975345271759945619449698176982001568351068244826375242120815767968953573773077341595522945365084575873884186067296144510100570511636140969170318588084719287689335861704901960039635636785752948994333820547155338848157674219906963725769781558070739497492996385784576119974232023363114264546545792071175711128809146755304303804273685391022888744927884271388689879403281004322674812575939318439454372727819289221279893480204344297310400033101907541493497744001859091961431120024048503109417153223813335858119411696627113985373095391314720881195949562813685077733230255901163513147773809021381808250276584958257025172895619981662722549481778799048434007324359763335303520753436397473388903567617695480483026158785161444270670137196073257302026802005300718198096952455777945236977014848594742161719478414874470081340450064223811771137168915700032509524902559386362691967588291807685815666828568484519431501584255540694479959590023268627314923644389068341917922973646363174860593245691301311569826264166691302355172906523159835197589801221107301265112218469491811195149281404833909299108233255388850043450686836583779056689176495425135527845807255223327531213279758571394961072048961109633107987931083189437638415996547954496619788123278092503225244304872840033425580161366233473276328686364518881275397024547011086219414333475715784198569674093935270003087640547713441866876516645727241405331027830265240061571878336674228275544800219971790486030355491153426092678058802366378463090315665369753736830226600106857659498055225475416781930455925707173696597992617643830151631852391592795321874600981095209851808667727895979140939245027532090704403903768845463374444396043163600441287968914253833215348215071254935490900657096349474485053034003986200958581172463316009999237059306633076384970071235041544757305471023430205988159920480860858805391438903097977951438829200318909025799351068596917424322390292533545566523842105932796616110374051853404954851131961953591867430662333409210004604889610661044791635398349089745714493870761220395340454684134147511551087862400886928141327725736627715850889865628109920073405226893966660860761686693134417466093940181536875494951866647991080870270911494341568311315547299247336893456137937519078024106801238663895162907218527875839746186280490420449166160576475988078895406461091275185936666894150326891949953190839282243003875034362696916012026708372372015500664668951844423611009591360010759378573992900013125373171576525793681177970061275429540104254607578178047199784571865125145671521650488172274249611660651044122729022063792591509189372897767053745680093306158760586283346030754182220898067717584643510413020598330470204756549132142357999827705206649866590612028270455558527449984355428384716115940359382508511247212496742284377780309855185477585502247366450914352422241149783355601082414602505593840029844000549981243545380354090532238467824753598893352743349263880154678226057770626576193889461371743453355307147634524129910797914942593630625621895106984528183880825222419245200938536657757898233434709297736830418906745270919421682562757916009250402610053509235846502078691106294173504203886654196516860041669124103840372998949241247721474973195978479249314920480890510169298139764135111257940672007182308409743292509741519563955181885132751351742502951525047768648096471449769670982278756937413828795194351320225437240424893359555492257019578511267703660579105647246517658060867343077540562097357345596454311756542177332008918677824150934407141594193943593317245067785283660107673091878206655515408087950964716484162420491931168416987174079211144855334880456224336523459085968787015242132036510847990691179787529665629005165476700805684199105498357563508647766570748269761032963016264306212394217017135665003938850632184396165135225304593004921824472481864070885376219238031744531406323156272779982462409764198808232063418301684322410769661009933528141060750176880598299659324344983986100981323975853361038144244137134301364165293313087846863264986418664979907752724193539437577162901014832738065928737830492216765636050035265868981486775849208323828861958440857522417281947164083558536813717967120362132603099996279873230453131804713851492940798293204364549730213534787502755880992758873867063372772945043282985242173378107064072240773101894429842136808741095382700570911205634944616681524230703768287952131747023224783397705208744968350428337467388465685291697059716200753906340928613972389425375261315223017636980743477164410411917601528934336802731510265906614174141438576559263722995191925402340429473690819346382083160423735431096152698576559296694450205044569525344758605835189536239170753827070762055462303727744989669829074390500046979666600336621924236308518061240261169044153056950519325218819272780049245999292293733375789352817481137754881030788750244958642352515867599071723239752291262238528219124759404784223666249072277386092787424144057272730668659714209469231964045937122389260106786629513868554857360385193809798012295554198508456874192946256014045493805496725614627458548668189731021050813662772589260427900579171548959538033589091771043285904334776372500233095322554680059627472091353935695571272419136768273813651808273445432742769718717390623073123468503263917103845471667820485502521317027977757750784356737788257969622967135325144623331563553946699874409230451261481323869167524964751909186988637979058589044540209354060298013560158893895578734355420999003020437403371374950955840014059998380187916461619895995594630583136805375512441596687558286928420785501882303404707043514839050822960701829585740887817425478506693218116272953930781645014372328284998614309292769517521526770638912667110149503377721349093037587569252410248838997023422848404866541853211117117051645974100503003940256928859594317472822166715719399739340617296579289708815852647446224031921553070805096756429898392209428415954188567042425019750440513649656648027208151298698651578778186125193065275177370236954479279637804745372402800566551657807039814919197064099958949801763288411028111048253230786151739516344320889799126840452231000011903630933982008498428348184577895317511602626363509472089387107023816605449471989022430044522605108490290481137902300062277753605737545812509174119431259593700056514611564862808259256986288866851759563184250093678354325688495701971773869887422865888385727799692495692590089014026388217942002321316970760790607634544873588538456971696167595725932354182559791488586154091210476391208009982864275025915190986850935142576783338618527654412887525774589402511151103092827537894786139019914814960699270760485298149167650995169358365589552291085616727281477440215761299460268870678764033718235934101852392689937945318550394780782547850152393446560083907526622036777517378420900872948494056153480022151560382897677266840237889375676982122583910299855192345194090197331335057878369337101717004935929335346609055899832539705451728340962046085639566269318836824256740661731416993978480626716842011262818119522542198824009122045384633824187755380074110365259357749577122368058299398231933154833495711218659411142493404687056580985705091749302079672108655263753797609152211686624954728318794381949885480111525132702548228142619731971817576162379290334096716751141989530187076060925286798053465208359416751096781723133245210010396168662116463670345129819372262934693711049528181012919490021744459032708621492762524272112933751021469932106758601505164061543124094254482887869385188094271950902889498020292112744504363312833514122539819079389532466214111981655421730154189893127957098675290319444064658199387810648358358300888519413451563093967610717911399648290982198941185582991959549829585251153661673728193009531156476267794579289871058785990110939399618135636468700182302011297077325895716322724891101121368493674364789342999851043939398051191989483983684016971316143509385540063008864289986999057809978634290601033777795230231853589222819776665236135262007730119442228391013602868729538292784555177945345696649476730028570511321534223989078084358254503749815175330390169610126956465303468654777159974054904330059984930825308368703486451056614502412470102744743025860065483334972854869104529209904045840287124529032457423579504243975181989002784687154394637765121349850640463278607197394721362836651549441580720190878699948134294772710957117384316326094267502682689154257281476839516556223885331799050565051284009844425082094583363503046209887856301152738009002450995419753444969149482412655527567968435444968650280466049245433213476565043509668171374757869212168142800145811253805857374020350251645532312755519760380002229726489389510271934554381474983260333057929956325109737725297480846801979188984587820869698093805011285603919319382873358938031390280105459145817555888609092430755852539995410365129471127474222173701051802683954930767843280095082221291273137114009368864302717022190204781726872725629177552479412020547035564505830163909457836831129997717490448810753795999756363127934517272044775137757384942660800676586122087235710370607717839908331133093381092337397133085608739156990624273871084717857084741560694701770433982216179094761933548724021550814720544824346858390905079914349607966909198475827452620686817606345465591936776233237915139196237359583554750384327671682596702708285014150798793701406744388686853083379423474073716020328946777521579076963618355183141621801880951827478014200211131425450480084918126247416108121903506673017215934020953049127578554876251039081797693526992335231614712154863651783260543244891671879690365276413548291361998033715239970919678831166862376563089335041219713164582103524006726123061224181546028823573690170844195838461234470411389250220447896180246924200915665968719466137372244966957062242079725311910727689860324133019814015263514376327854447794776509141420048648327996934500713546672310910010533140243884887783913434313364318855502908422375296203411844961037351046558233681459264499676736168105646135167302758156210183171145724607144733629305273013716622795075910153368262919362481557859986307568242205514511572709601216266074441430562201321606022932316890062150005223627866902381379840651401136314971372448872010233947371089696778899791186181275330349218502033508531610194543593579213414765579163383885830180876751828051196457554533914444569727882586700780206428513569160285416612810183546809044656821974234452139763496270236455754386359964301016528191262984703723786089092218481160412006791859884558622674540566538870031035086193141505363182457319867432108801443841142487065669509978445434308081181981446465582286938694777087754548292301507952518926299625853170257012147221167839933267806866564732357768187956292476068660305264604680579804372632092810561693355571566148668225985081514152195793542417503721360942910215867612521669340728475503287478957876885843624651111948221747026539302476346448480441289548386219546954538968242865584621364658774999152408317267749155917296921989906866283099912116123821918793222329838307227766171148600225915084716591391005853811515408049945432752545268249470156056695301650099071205497275752505261357175425615659595112519877491340258959757593517419200457753615716442550603781252208276097775959409513342294169896467664355938484341664187090396489664026008977741289271656649109479091963263541332472450932060138321149350217738572864629554030266945499932171161025194774070629189198088712835239476114464024136137198897674172965375652518541163422135501579237258640493262473147409338064971244277202628303020713692243856126980606305266259476180375375508358271087991559483634636632675170712496765215266502259881816212061478402057184025378433497546745642425970299230364925769764770521667216039663666030185138404620393085274586706038370651490169885237399581844499768251294961664754384486781083384174669928781467406949403569556126924531758822696465084326785113734885271106894987891352320780892597203500653983681652605012762266715230087717577474641637328816243914975147692914581110656061206529943994416244544522388216750428800613780288768748887304632313628554700019492756801311879820813412681561141203968986080595161479184091947553320323867896523326409362911566480139599142380903838709815590266542664477185845952694920863981993118000732299243161667504561323620231698264316471630429992790514964866083671823515188333367561094182246028676688782141168899771767210159771786598059586274114753603185099438833727929013944799829137222880879474635211839823044581801656911044781069567085466594262935704313584740857018860418214556762370919969499844506524319037517227002665870743272557495204231899638938849230648773524905060304533731574376853283629556556608292119344824932610540663808025323443210953694263741767764891653643081593746032101325783401808746284420568047959731209217707960838562300368675731723111983345115694465120650677751524520115098439994955256311514484965706476684579690627483011713853489896916482903740284930594123895394426884421205861068419107656375378115689708281746236373373197964311165256710851527623307728710147132829211184210573156261074124178985616389249813420917672566901098637849240444922236149686122627785149553609996207089114947452768385039513095003503644145847716203400380453817570549178806292576536988081763947946420663577785031401716604611048068671855971870006842411021364963505905858248147573538751305622348922818753249502820703473431129816252245003207053083572338666370734906874049664471395698427087562331030373055156039620135731220081285643949235732230277029572305894906104106266075428055204910733872575854550149375739131834414968440441828445255396888655759949200371162784719192221909429807091038510651932099094268596275605648902809089115525114559867882920841570319950765154751763737168427289920019462940482934958502671413751358898371776699753497354956987945453499052732679071317476190539570058380222227014921694661540990035630883277516663710226208510814874701961222471148277820672037102761568207260533069310139301442831466377000157626899098520220760203875549743896354004080175621247192853672979089069133115849558792546344966429582209920127692972326809173087486262829861043460390658013096631813362704693684260483086185585430738147343527685076516519658727471950030828513558036974219517853450767131492611540968194195624793298344289938725178928531507850975235497543220741346519436994033770200792711821508574758590281675331808929882753689211323593172588945129269230369849176284929325497855928772015579076696038471524525276696870856857062008149802156518916147752620317295040895819707720050335016107666095814884866459483583711976906094591011253012599126907690094859822892285455528251649807981653431584932354473804803681081775112332739568453266446519835830312190848603323686201978555042614929845872517673717171351850041000817386686530963939324334238649733922002293239744330269876297371348749802088046136134583695360676722761190696105593239566489443354094788413663356650018986533449811457806425549092357368214069055054610568169923659785653405612605249156457398104468639140378366031197582162611840094170716895609805638438725491125448800974823487489779733151312160953148172675988137736067625543272754284491824505764012532431283139283771795208509394018411303478350314950534340560292223060388148143517257883846686209213823284098474828492619288123379696250560739589524947298677028503168718161432156136844828400736336104634033707274148748903835247757123767269027476694863825071117965872445854947549336064103685776075961182420986577052818218973995596323792971725886231812657735631170475298280028029141373850780826494886686258825034327975898831058185523914884056706682836736690671411586783851155060704171014014024744546970799755251422321048516367301646887395137175541127000160912324043436039067137247617587657815509117307001316193166010572858691355828061013300414757459647594811335993560624981518547109722370585495102048673524268027619038488101690423887871734876910364174758059012234604949076836460561241506212516934766711947925686014270424024134373184112497254603686358226536354636373954824444697036887307160494379795954318557488650732820117466288236870662004497684566328870743762797714179599588210460678544339394032425348147811994561464941408660070748451376251093025613975674754897047077447512964368086416496394420004230323316290614091521939635956588869003334180140062312292137478227797705377712191954797949239075198676378236533137265676431314004173824077037205283136010980362046583168680972945811113916691904914779185464997357108251986337389405384503966723475430982856561836714000879169719638047683957728682418770544853361284708502431111151282533660206532548731941018204945364959466204727076715726120552104192693747615691466750789436789343947544074013934560783502468039886626708685545510014173627344384819064994670760338037147908193803166285664840605480284416501247400770421644700260002777805186857092388483945019865575587833341006085516068295983364728924729265899179269176290868229787652123384824366408660160839927508014267993014551916895265339566852270450789462915882255572687433208610952216463834912485390318306501349446682941733947204656899749473077689515398493251550138676338071645425797532834773194387648166317463026821980971550099856014835055226606438425091269752471337622987530427181229111818423535092605135674664030425131883540457952437700011615423696271112018178911691704833133815857311978204366931128004420749869476882923688747621499774595794451161192963923439326197732288388707764820539805953496134451964125740496844512434856904221332336421594589760538322061746184883640656148967872554780456506006916443065595767782767332132810453456859086830927747792640831714832796180248021876879019803627524053218394862336538220007215395264770430622604745342627844121777853450279369563313599280153534283784574329342153034444637086136667605738394870298065473879012480687814447266879126065750905359297618218586691746379846589321330253847590910561623500939606539199239074656787470216604117695914392351952417739615758757758851528385855265260804216600196564580233947385392465522784789671958538541957672651687113501155626650230601399063374805976775371401047953573535559512497245257791704142524619337645597160763066002447690336628973531743354441164175706208453321936596904602032752627051005813850608243063084834541207106999594791868292864515885786822001174309411835792419357447551079719983834146374655822531744109204437838256920309212858280810073695471891101162471599019230903605125604536541830172814131253017756735987731761302035122445688743141864274567714430962847204466612364788507997444601814094311824941755839533531839231665524110818968291862360556006272382241526257569920625805855557931898960414568257384809068015829272644698436851349437349430589563841282473580848400928737545425054400900611453232650373674848075570956210446274388838947646275119668534155126519053666371463123758355359333404773130505622024599378161359206217788140843934569821117685870567627046299392542873422072902865096537845963535328050407692342233417872624571337920230448338868061504370697373338459379577719796590060463059585806170811841970027823556381258541645017998842747782433132975467930147686909625369299935446915297176022240008484638226798592219022102914934615995752709210535603625656358945038654561705873657385766746961245354282257515481257755334010584091625766603827029195331004979024716925557313581085989572149837511876037733318729903392892883050265055201602552059903555716154218101343522321040733008463904681817361114431020868186907824710276485824681981901798498132060148515715447659858928455642281045485824450596974529482984922316844373029841768460999440765356833349119656866635813091716432978007305703764016589729973129704037034609638780856924024996423433685979686465844394188954934370780387533131312256807581143800056749323316155938567083765322516497556763880062629936746941064680353081097879120275192607425623942622388846841726458421168831627069741403565123784689276294509893707669673010169720739761215339993580677882492735085586554530836494249925764965098673616255194840311208347907956932731124133432172244207983414350457454428528705973525748232668120357567435405391335446075579586963297786879697336053436351583346957235248219899148184646939759829443767133360404762002173362892601714341796382826647925771532262655897804881782109850264134963076802977439814145508177567021716495615394687387459169212292536102797759233908591682424452308695954185449494600686459795597792801749346854812185447440917735615591494148302756532970278284054409640177211852191280665194051243225357034617806086203808610492514535461192214922444525514610962856943887982247618657162783874679906058807984612966391141144364052165655876186320953525616457288309479412559983961458258610207150921399675133393526688163596735514761785637442761523809490191176036758230261611964160594472822792289414527560326594489117894274660233582592018956093855574349905160163740132342501160891022401067487095398312683878775610149231775191845022336597885846555797586085772996857184032123834729138892265210269931114122233429600016988363309189574278174936227061491667933762696560539767837375077592959257676461882889514177455631372634604300217040327957645928742762103632491956898483518193207311540057605682130313077557988639568751134912123328011560459133250047981144327442979523862541798510042536326954229968688918429374954880175667869303286379762658486658107300887425323177053098561838342300898904029448269455792842471674731254815848476742988344622755886526227226399210936787544989678029498385765407085223746452388015931825626405732433670424068199726621462508324093807823317890633484186689403276574703828843183339645383043818449647677877270026727509100724896047400441555686210882405522922317550436249983120492469216217987763035589869731192312161454359178009594857665069124863296133881538822079012512195467124364984421855280244877948561242313827605595273146527488438143123677378921891315904939905077034882732939735839552461480111871252459470010519529033423285400731926910023499193438680452975986359048923196905869373244057708872219982791346610702159593084650236692734539694573618581456422112035319233142979699542920370457938583217284053480898114766390372972884146425647298486849748161689927124657329056550690697236642754858968311113463039073764097618716552935822102207819186520279531791853293346286993468952537573496292692268174633254987174255450685859454270352849722582724385562720077056781261133066460366813948177484447053325152590747692494004582165198614443471014812877438535098685739801188701855531635991364176888642789905373803522717502848826280778192916267736108745773984822365920350998755831455768599297839346542777432804927095439538019791233237472600438062426442283080058468403728549176202613758227210939902404269359697303248979276680870140629963246477334719917621383517290348467944359865313425980654952793255987051103115493642571619857373901382520919736297378672188358642330985377271018039446484361892118977900072463854525489835802972080824418819455317623967390772405558781552806500384622635142658359840752063956260584961993480831839344522876766025703360593622551373517843542413121530993374143814148285401361152171174658036453226055030190221877253456563983856044279496506696853089713372844722301895039829404015388371169683743665888350266710333029014586053041034392494951326416181182084143998586000308854514226455744852027745390674692224901998541052949007076392660167500164251849382438992772601421669937705419979087393163860012995962038067077365408036529687108512994840620288558500385567428268973679445580087069804662856649642325737553777697138054581161087334673400360523933044767180603125526929515203015418730480548228659447368333892272657441221337897044687280432167009619263595795073553577877994087050440491426819433289393887862524241998998630261423356839829325735942461467641463714468078718395931906587428574433477352659792967950953161061554992352263737508644208143440211453048658869561821110232204060944688400444181409136423307971824528057266093926427197560513460187595682246323892345969859244709765062290254275387473879612526239208424022880317881188416551602185358730245037114683907939911977262980463778516337788306777790993815712455058056058626382853889470292900098390960805185442694400626391681417676976149393188945978915692152484272823630898742673177233298706270076707317759645037038982069816129212018494647777655467160439853362278797900359311121900051748493569694561393685010951420943258512947779126882933957519667057874419955800431522479747389158969357850804930018974634626619761251972010215002604310758151216246819122336114828411350145718385565343029962599217776281444689435934700279737078199354391755939855808297038805631752848436671059098724206435708796334168520534314313896503169243624682724463253029914229871774490952975329841838683596267631644536598841901116888204777915996736466463654364929632482966699062094479854256353319926088271342486545543078025416055354255455367239892637262986269393456917475559854228841957206813358104687619451631749377093700365637819281477619838077921642659270470706759660738732623563387078020324454805499204232657887572381372974373893534453453867749932460191401177173768040217906506963929659404296441272299668174494410045038863448585321500423268243109217691368563668503914049923224271821286447234982764989424981670091148252283685093788757802463097196789038375599962482810729046307423036718499271850025281281758016488285512713361689249882198934433379719391556315694723286539614771318779229056996939544395590995875762792884626197205133886865652135269443908070035505817508457144187788507154663116968817307919578593922662400072803423170216962980659292152668236239410942360735727784646914628139654235877761014074920139771114196816992186290486458325837854101592405716679604254795230206598772024052839763773275478229911559963648496557957140219932838108751671335516363910949723484456860007334459895898182449276413326274031089699880120526604848280122774051154281228526242998988153025718199868354444040485530042794278926931386488082069361115627352850083686572759445392899854489258076036481848275646312361826091097532632215225626902930695939832250002998164541564934232396067405234158635813771457476199695649126834911371786856774380846181963606973464898386628663757875590102378144501323970174248982137838396267594557289827788075784655488099507568737502369125541122645752318659656422996919459503118717585309925163831511781767866145861704126675963755750301948254922942046476508140570770459356855259733884726562426945797431783281057503511708305464615040368364198152329453962674336066305088279916906312533928872383752693864394282338910525738576379674960913766144491628945536432122975158832418918862213186857821822772988913409897069496818171912563225596449535989727697596295009749417501917141095940150561732252216164654210282158520924828408182982138787856570012894786847400356493121036331076578064156342526377095107160089884736169395052367178632584341339822791146591151988946416701461817524286932432236887975303432418377107737492056630419153222418350438982898447799100277212046921737330561589573635817860403256670785463615133180164855904841059893634099657810023192536098643530939826713386690264264331380994099655190596913411301105735521726622152340120166973409753280442321668581142441073213496713708101328707674855658601467558857799094306516924235370649220191047999950535578095136151358187733155630982519432004406207844818355041572446664741139694203760807413320604337499532064432221899123709595605591509215036418194889693876102636014023434512265261037867491343531747516287787924292332142536804456640093891165420713141398359638777341789428595600482641002116901992191527447351166273341049215894268952071225324859979705126258912026212819715982085129971636011349246079307715650961327115407659928874559346268879610054144922799282631812368639724220307404090466325417338397226012080551460095974228968207716468068084537931016350163273693481898147434051302164365926625879940811526032994627693032824010085423154401201503062402735991613339455131594226055195923730496899257811851588356296376494231052692194597495490995146921830900412772403568117290348301897392727613108617654447928234483942508664707442533742628304926751548025668774913365147708921406497858499823278376475847909693218402552193706321550836805086120183063638171847012719036595324596849641060591782807348745303218418956610438298720404142189045296961385272181442779706062358496964730412675249946351204431169210882819660015872077591759878738357506382411019954514916557090744241469788511268368883536185037168373102887442271816618907891397628973139502114387923547315631551055135213192748668730469932586977309007898691261753476172512039850048264832806493389785608597041349879749228385670926245098177699222477612293020133571949911516166717354577850853225682616207444635537903282605158919751623772182660220809366328856150478117726168745398096440998219109828643692309598552125153028771094720576088068604838701538575801099875196268296066808230871189648342018739191776415431268480661662277664172419802294780946065688393541801964256553453538702939621987054362005560989953773061230249810226449629664445886057585654640181233971280242257224860097298466099339115758464197101307531191790229512236098013325085794374501697888257264020137033804702689987288072889095287263179461542665667966016989972321908558675994843122544992274071119144052227518037140081859163455126620831811855383194573180335368876562631241034538185895509057909347724938054445310287453018437754677698856726193971813855642944822390719876990158010404967019768367765158820998845395285917419943059813589560883699987554792781718034918418472690156969295620481563819239588650294929189184186212194140974042425414837601398953138312103066197366267907888589611863258452451646160145007178629719269775472047391004214957647448068284451847877534006305508713989801332906173261501395341725097738750827067394559856391401666984295302265880613617598482948632194315079205936690970966252808595699898667268126876109069097588270422300604966533536046844970040087154918831099992808736778448831916795389686764509203650006411897105742114649855741685591899079355325517973029138445929925841192479010671909136950168199661398917386449718341317150967889032416966571918747861937615126307347387316275325949129200163504313832967873700428158306037939832867856514983705681152114408434128945227576169134342527144498335637693599117627986015767240381573945531784050959096254006356848846060542070203015620256200216984190722029590971909240383988473780657321896811058805977188017939754981755974269949942814938729930511871142940263877856564206329103554217345217005593341291935419679607574854504902784772756763555563530556280420147077854558879535162667755982064806512158680767412892819825323455887915172521799493893365434943484721282619907211847047363561062368099340580777919192966777790842420614168618676316557821690183095276892989183324190899759429552717533604497612334953626192681137496650157990956553227263774062036672386652789664552346431174168330461778008900452210289283577655957916467110540641075857892891222218765992661447674381919753532130924883657542866712448214517897515705261110059522514742841620544763962329485412001293602465530664267288189305444338816441099865862289407571129208464505703977860099359990639886005659769717004250005694165431913585983806261685800701744441108617834445179413469608813520681856385588103965879576207175654783743866306470821939159774317722638704423317632944501412604623685433379512897858690657167495018231646230812190274745549303754794353270492822729757324964336829864314258790559335250964945398287322685681816948236888564176529378573306745598669435973745179964975008808930803531058644029742268051951760261419479174962829650573517684282171005441946290510516222867512678417660834434435965737835666218068570846190775560748252241492718160275340933982607128147989565841676440660227000310066619286226242107719067184728856460236255074170137332915551536536419943862172935750717417537252936229852071932484004961680276678314064363704005839304600892745205075928192213864520693708569740178965801503987546531706430158344135973088114790369263342432808728220602798022085430843494625129150646382868932374691871204900434046961667132159122710784200400306902332123713828698968534677189540908628106308094819084750249234157164005157515574962879738662665067020706913121132751547935502896236564590426996504218542965279294560655566579912097746628943484989835651115390839605003513253371427450291494417761742375836852176656024718384181772329978556730054122391409195918607093261125313093089496719899852037406756420273211487920157911557884207491842689492868631013367053603098625809540409645365944075235320771445221984192580592380213461795414955115697840521405023771199251552400060429335296553414703419064259399975763141422393941468406301437911348423055442528371735152068588218384564587493115597911446027379863723365339585750042031503062980945344675407296650394403174000458740534313655631051236769510083477845680326894572960411084643876208666845384549129901969121475839140395642263520686834104259280569340199201741457764205194429521549259395780899190986745626328842972642215999900574769158158385650553954972952079766571316672838611531762137962643229152607325140378987771554091467213019695494294832130257406679123328709322238933838701890757084172995634620372702975119209379794315602877824893971369890604406993357528259051282911951475028149792333328558416239543200802113949415081989062807249374145822067787806869686662945527301658957767827365261969332199383727214470256851603972225446667753427532224343024158180384232121965272473235156825329319490348618302929954488416129362311334527417412674334897895378316401685642348133853868940932206906072344727519933774334040681983967092538676446146627821123962186824495197277142661881369758712699024966012176721901265894747825729369197417721918990037719219969758805855755986288596219986536828585618097304400006861315806158023647766008478892411952504215425832947039083274240563592753113159046122412919149595903915915521733622324209795834803607122828780863760507000645251197729307609602500675541504126113513516203382882061242231828931123977187806234116964195615140777074740465719541683133369105239261490260571528621334241417034956823074275374270560506407051096965059890546832308043632666560885756250617489160280900657517175949295614835243867672898368675287814617996243437009020219549448333553171258678796868759406858250457164211653296728037772591667006360431568100302733309698398814906394362929504375033381169010079679403606310825035870203565337780274097312870141431875418388344078704805714772611452202459605624282506978084145362816283768460149479050045261818684910018198438450209328458020545742924419608226604330678218298897745907372600643540859080145274580178724646336743200080257550500874106717523183422497740796787000264896043159031549946866968241436711682662529630740847279494126328230704399078348103969362403679283595934270276238108569241755827299831195204114436513399721378765885092093287381926039808015477640562319256952135530319691082985697051545250809769008137161130727530822829642054778327441155806227145907302138733034669999128979294441470867719842675118918235201045309726331911234508986267747580509224861745460670765298697126276131135425235893896311389399093114890690472331704290033579431955401521141121419097989116329347432543154673088656953426719069409715918389420023552404935185062965404305734797965709330194235557299327605352373327777284336198140617849383621260062663710789848447394916654738953834098828781889845732130758749888069316747091292267759206238036518505355372339380322074102554885286255855635692417537002613480687160024372040811137220327831244543730291084670964245901841974995286660535357442108859481466820561808663253842422970677142500587172616828837818679625547651247028703043416914842605268136468096045450204978156888062385400008546544057168193772156864516065440836547130168688605603750208162247473484538850339193119149867263304468303825142290605500909082616588355015389088910898803078347334079635687924463017783269406491427745095348828918577421645265451168102703282147804554152346101619895053911089023461382768896835853246059301542548062486696013115063046092317204206097041633618409185849566515834903629413393432610934556330434679128217510755202564754233533563916615539488450463483330441096010364364601497738961702314665861609584706423657352903393434851864988237815703798465103308369406180275377237108942532916972798967634711074239638147245839655761283289760081076143035819714096599396156223670214869183394244329683211485075969328322197402622936857156683211613057415079684745927937659961113254978804408281719840237793539315733580685575273180369635437856422266879664934610678249375339929522580441672616941319104453435023217987707486070247274537860131172802246832231889274014560228475558335299950182116709524015603717078548257531446522258729959366626029391282247667828151191132842558930492056040589791725361835816436765916892400364381348150601170984901285596238746291411208098818673956970280671845996696449755955417239815085117065364517169501453902922490133142302193801420013983201119536259448749110840683618146493114381569278793192185317868371738345620920018192113155901836854960677754075628169572044930841152917364528650301198347196386258909765618208196858971383162073880683463028707793492302444764198740346325681657229626870095670590581154028324852654828939312515673434292942791545743084278703629157219241722774308455197134706287255337134959554704047370735779030864318257578632945680527213343479178322978194590878800141699621307027260066895264221827882008200999261048132243066818417344845216538260917722738892864025798299755863583832860600762086577784986908755703719757597424301941871706149016091909065801154508596766438361675608937174401126702393912572136409729324971444580582952862393483807843849410927893265411925381353830152133719630798688050480993460930240743050475130090671514997378413099956817739751765053387541671426697452690818643616683488832565334315411842304879978839349300359380777278908342275091248918688897813966628497710839341629418577056852789673329189454643180907847311237472250483055034703119088984885622163220027069628330111162764963331061329995055701815712807915487640493088266270485610241678422522214200358967535979085105237780544331509458617139752606052946968991892658667574230234226791925747162722851652047308371741338619843527405072400733431134575975872227993916110972840046258369707621552731864556638715339428223639707643023300998083536311551234311747613206329425077801100015414411290553270243533880808758271368467587991374186189165759018158791229024753960785398545064039230229259654215403350515829772774713978102276500424442343259837500113298619627175317453330061893214017089584190123963843098922445511077168264638602049145379293518982248200855422289452311466629691405901303020544933768004540571591228279752750274033260216995913956115868226044892334050476010873955719796240792513769384386604731498913899596684176555965201392926146286076153059186006543842603048317483768231317639211944626802093405007531203933105165534221008668514663927553891798717871878381002782043457190964791600996584594274125708468526946679506818314522882460738953420495933856123662794043922152943855852342203951778845194941087780166085254636839759955671518307556920048615754785673209126861851666211109554530311036317346752659491904070817654886382096399869921987501968161668213772385191305133791149643977795136813486163052434434958562597256360502854863372992048273658847929835339883162910104266121012169050020944067863076340293149302934003742584994155041507034537999719414056652380330291152544386610799929303240885613607667180011427300497011010402814831305327236398534573706603959015215328228495223480942265132157892670079467712573147933171695502082032989399310682326133091937115729054981516950551707676406191068868378216058130941750880630787948618781798235762408960784563728841804837276563160209740943347630741654206535791657399374213648664677435646409698353902286468477075907914112979666535474857201740144309081033698889509790000666771615715568430316224576242795362673144794132482892074544260099078910794417110785419412560538786186814415874959727756030968157909153478405551833744440654106383991716836113351906915281511547339174751624809139089633779383039983602592349576425946449566014394637789773035974300065790735767047888854550723115031247182794786459704588202601350419533294691087143301585360898045584605653924050885071936630222670768214916820206161103427553443466348781938356464659813846213245024118538273588066470627051426216328590702943560252454290703769109657601265154476856397320752212983949776984169713511545258220672250093135919221475513951499361527217548366742868752544040020887328882687120579258705016025809266391877424031539847995320439874670268954050552570608649863532652827997995327071755441721143646213022025435557280028816464835529722841943669523051029200289364559293743322134338934511516962228127915805286521493940447898860054372721847252665502531260558559571929384982143379401627244397384941079671548263525741749851378462842061345423655223345136200867412806921216833710604819208367265235210626386505063156582753777674395915138528010575118222672436077038829336359927116107541493664081441357125331655378072693345279745506980942653333207952686953106606200659714131367276403681483980944888353125059558215644557450902108619039418582149059660770653766521750180249077356507772718147572847564647542536331821230845691977085572428926875195895226297599915872730782963536180436716051658123148983794732245537870710932080708151423603432505804423914697257326229996382007870554597285034742312895369583623935899755571496995914221324715672604807274899461499742453914018706038243746139075837549708657417298671753682209301983855422316069878440679791106578708552144281833928335310015661825145088421904522633724676362373409349877752648637561065773719328747296790978042885321225802837703051689565672371761346989350459888605630007759246744478022004097044280474564967069810740670163570152761225072372753141558884196648059735047654976062931551818369722973703824691988480149058991805042324253782237782417121512060339371772739248435168302177146874402796700288776171135191683286458932051363034283395984509139180978140376406964409853531692516842164070098750914397812209464977763157369217935777779845770875685504919555076110276376513205230228880691910781689610941314310822916123913254947202156038590507747989250743060129877679008970979179065906952225085000618539544923487760980485648902079084627996329090070687185654714262110321611511948857675000699016268549014248108576664164424861191221509521813470790320439127550874010617641288699929755818995645532904541263782823095741199265795653568573812217935799487671865848763809534627527053749205552307257879604304657705758307952006909288165698188900807353487827153634874449009697202455929967527324753893151858745159099533962509038493761814304432418005073287455832691630529780647608886139095556951031338503359616431882312712508403575619806217310258918588210392913948964982691533457647496975024017052848900920542603370210479005299597026294050094100221069670131927835867772418619565102166163156945076983029638185536266558115517709993580890262596821908430104538117894289430906379086631848119181688668601331295325032599572787084733194855127876072766545606379635942282665551167392919986521054263099334197669105768411728281956020318857804820862923014070299443006612390081713176170560330890132833797892050571009109711474110987216021667815220576576111194718121911404825551506408221922020930223110922461920272305122445750656477117466260924190904579112409273326264193558949901438591599844301672721467606587335034333641314804140709302836358474972510953044286981919485952093547100087938332040239140263431773965459028573066936696599734359096154588641049080285022268650744492634677622352280900472054488494325914786149140373494488086015925772155018608844088506083417108904573694368722147145751039306343464126141980198676281248994307532855395782648863604918467764945996460720612942131957172804650646664240335911916005245119299492483077641802388490920087008603258322392890605953796149577949989421550930674369575102219199489671240562647047244241980846648398578726670657928322751299114060937068696694719817579152674165541579097563876191265580116142044718672926842571754378947046471723958454600210917465874306508356169362887547028534297640585665441701206736424969631986474553074294811400258100188109058555402405029416578011216943174729270856892031449895450350299428971134170496572574729444360205874539563429733373231024002483688489677538632795119091612592905229313893539532208262042951106471107016358876087710437783466456663881193150162253084694203574515137955010844328522685513449872082505477790243671657095072379749168169163851413508758084960857822731125540732723821899926163593852476268196972004978026124788556037724914583041794471821556745018487779768691539864311904725139465486209019047557505583609299948827226935058968428353238226672684015577743617707293777326429929639463557993016592957266983802795011854777852431237559602309220686485027407342605851912711765270962288670091886386495401142783455128702332931917017541058827878835378101780657060168585617317433270337702630114320161738494387355161380798953139406578489462437560385303962827603903163343108339325727460005122031388115074009658127755987173478684566512425121880679343644535150013754687043180010034763911725862083253800716132333388733570299844216095663049759786139676023976209937898988287491114349998919213341679357075249667845481058122545653440895921107266345935511208057956676463381717640239187911438859494609417099326206014400724644400670540103271837396235976432511829119858965111719198289691894028109495695878937324462185214499381418756496009676566557270495954350213822872810240852179410127701129284391374637552104528301826905630923778976089238748355949501133269366506516491325995694884610712284019981896035571345497612861711377197431716192056536219461188090815286819433323552416498530848646962820020909797601674587514768343092487478651304933731517776960608633861866118537359980337412468915501733586813460351585799496480807009560914819163641791366844786885840576201385760183077406525752018408531280367945956232225533472634597900349145008068655150689162969002512320024444049557503464271615526339524468519644302858529544431065123822276600760518192038673545153066606241751306073129287296484140250620861391627876502574019380023937379881602688783987466644075097554803563300711657000747061149258269834508864706230397652927451972983702269940113674255615091864732752168559658444590547902222773277593989059886699582488747415489865937354105840471426924952519122071249424214383563381520021484544239629176600595803023424364499322442306064363925000361996869673923611166071527834166253531422009870527977697309929162416104763997757235174610794819632242632979346056475345850086187159843153782884135713298849917975391641410439349461826816969245054110125166496696962023725984992787214175766275172014878976648365583309372027758970265899261539466829726136058131902382858933301927247869902802924163284855399411895144300715625392659281776824681196386078056482992943947746666862962544133732468834351775604492865540405128171727012308037842823526247465753031296223481438022361072605661326680280669511297677467519348911036220050893621855272402736613765632374448399173075069010077307615951494416349371004695245748726556554068854276469139202375962445456034192828896425336123141896134567185976863963473192335137052059924970610054412458744679889253974217537513294953645864027974958214034485849487084563581493634526827648382310679951085764905059647020620975656063831874152442856677412560758217935029043032000955721500816955087027844771582340652982738355101981527758933381516607313651468181019403776942068183740845836669688581914351811800163767046860842151423599030774668428986715227280285519437115212668487711658165780440337674975187665783545153310231930010800089878146153745855311742181805331724527890886249570883323866177967397652607686549464609680442138393454384296488283901478254184589748114239440678627231481915702197401036173891027815186844033263959248414568130001813050853443035162194281614479383036915541218614909430856683266196974052012455417642491655936814825226999429509237850686851446967197654369462954289637756019431405849905056110212012879646443886037244360594378123702144847014797753146773305580008633256022596681081148075840316130876465284030262256900526754507564538443096555418328214198045437620807360123259541878481000970192037634129791674834370863366681734057782311529162501401460665044028919416228648496243781190830750145992999972751342359838402001366901891241580090075249727433707075045323813055418664673244222305640399938053462199008799119925384249565290335478604855465726556862966955794044311945637150726460443465733985041557895674484389809103612521166166563034491445289163460272035232592811260662155250671096620634461281741047463714800073279202779307648928797015827447987743767973602419544877848285723143959771412173740228497851072680718967560801073243353199471455420211718545108283829439595016590530278109026967109928039646468585157785391030125598663564825520788872030532884750698714621170948467755049786013610095414403315267964018595448064893404226547727647433326693767317984316958899645716716263104837613948655581885931569172684340570860349944210225656702035806513705946027193611540837908263024822630884707632412362237926277059809218030807757873801404068877721618256202736271631214568711572897561083995515787799031941569084432874999314154043962926038968571740176919421838894688712238618077454633571634509530160747421766893489215294793800459373945477371198725927783399865512491592556857977884948472298931574363403493073320463047380866381459822487717060339263273657350076291192258761965104062446162984698124110681584052210868654942236116487779697821794795126306668780617263524636971906470323812281457639789939379456166868973808046914256864557666784472456871754771601027555804585909105475058107731574189843562168661534585310056746117418265133961481793915352535211257143474528673292336008896258689798526255657930333710355613193129643432483382791796840153293503580251979772860314108676345692652775627065699720894171348526970631673310788619433840530835681021449510533480905252760583301757288159151922565183303274924996164111603302859596968997137234862186286627024899543042446490156832377934981388003933859250350502734089425782446671035843387656530113952022974420758779037714718796027903097384773307292697087896151048869088997134860391817230782582530902795111125921830087228771766909262101264633018806038990886382281652068922624146665876803654773256386403527026555722997293973309724352132555159265046763853236846121106353981265940333914278077483830858504347660528380258448739580968382670228100974766692810280928344462252105259237809644737682811352473597001077679855858877611275346778327797170780520361867080880555878177966373532387304895777304354892298068878646686205093689952820810690174650019909667689907819880845411063345916868851924258238144559673682456441742816327384664000121977654703017599154457247601783044567814323856081086799044737145304615406201551536736455701598854061396721672661051730560786637746807487245234265385395285296904167789991437760718676172474961199811289795759415097880204043665368964034035466473126717339774826786569583475942432738276022267891758935077566423216000508032429251585774097296871829269714332532182018025067216721328016400896647640570637876765074538460104974091174980693166651863165502256484386891058544633214949235457087120777467783022120281101962383092933911520734221146578351944152835954062030337437331441052491973004741560665424852495836479586936561515161177723321262889617221539627474170519063045512520275353583371123250940191516989305347729256455341257643757021886815345141028342011972926259127189176243868458076326760564271786884718018805447702216949797852911724225128844018633246230229586745251286641298450813411941197302779781085285761390615472466074553720800443646404155496207158570294840572735567017632632201297907920521766897486727088792041962432476040491478232141237976603886364765619804880430693802345915124874024347769966265701826240647330031872944732397940226753794989064761605007394182419317669322211667106287866935340313014422941822335212538470027258319018522886341000382443652518196177436861912315114859344566630086171182708669199573469844075205989470792758174223733683843321000711948090324987191922314268605642595529380207586860996493444238289318863507230862430652635162607797362809143968288984906369553056785026809022876702925923376037280969685475355529325127383043194437483022208272668723783168939897509013355873255744954157192038600264251964807257616103292299958621450409370421856769235866552848455199931758682416494268934913715187271010648709767136826704432319807575298966712520370442214733779368758490924908997888980163679410092420121847589944642119161649130841835069291453148883887521542017340021753038080530708086037869835955148239704952703383617506241223507930419346917709724995670563166916718213874069088154180675579698988056750929592463650079291948474676365230900401827722982206433780593246286730500927190416889633751531441185881623500291775855155355279245955517155820072297520474369142053598206152119151435010512586448284241958198305311015476640474267330092914384795747932319477129684109761139490723116623661367157196636531319588029784119748682420734562757412947643958931448700749784762751214516791077005125076923129660001117823475345137608752689501543452699159252634401608639461621299833798741642376098190595010101519347735602613404432431474896794389500911763048528288930817256877426165022477883768353201833934367822141628336372222484856903167243989354205973089827945299255252307561952089039192842809331814076530781620942436104287557885387244913000573908015022721657114615725760049506746466217801994944295333448849307226282891271230984985193124169000301150452980449540876535735539582755917400764279668084122020046610434249073212737357723506469293043453259529633755663040021418415723646449013620189025562834865616632338281263565527855409093174890071569830502391002572314927543206067911869650201370155382534480626167917103666489132963592488151346761621891669490341058025097269632045596980212936231159128633108463775677178981293642782892073380896178747368804122915926526895005103375088748508929528279358090749699375130766186333382710498737398247728396499712641894016602031559981568100318936322798481373522546076727496027345697370489451766181135152446474808796160790499244903961798097383514028070813312246533010114329682593290231008103844265776802252633985627180117568823136292639489207343653260165998827536728570653348558321983650131444551578409368676023930252996920372268510880699813255866435207361775144905352282204359594594129418708162728171144902278421421475355231060534295891502423201073186959958589005844973666011124753330649476175869842490892931744393155632935885266843714061464774977843670552081485901382809307262913857137572116254116894254777540301974578558020569354217054870889060918195354432153840554979431417983826613271488888370105535484937260523855352915598877076734232468827275491242651385300590432128772998323794786782520277889887140353880071067281039442098862836618156170681680380404097732700491572280880858825085218136216858844559512125601867926699011117687659099554380218358417845073762836554804762554368509064737091298837336005633188083919275268192405226162882033506653961359181463527352486894503543141946592057063848690962805643711486012343883763438312073977860255351213808821293531585370444891475284093128330379532946139886073040299328963563788739922139272559105412048059129948198652352478710499241948192910678293625688071534728118299907052552647499996004076506759358129947798699324724468418332168735130062357275434302993643493922426443577492863591270959686639418629365222485714070475961252580135683268185741573321874467573124628897655230361997837203643612111810645443369011885973767803138256375730838097474647820336279084606538604787403188353322502210430133197433652844058588801274353559485594490652160958185177753914896567544008622261734430709332099052693729068958241537354240299865084183504251825972451250658690779940033934706966687870367674309736478130159826095173151140144909208462618527307513402264494831002860672580100779409068232517329348505662203014704573575116202614203074127064491381484010589357112179449599880217448627889119063150732848676277687839541612612111483410329151422016416290717650974454601363338122296784788331450633385741301848501276181708718397343805395607932722099705284899940382962819285130298369997740672065362578840204403164906812066920858701977663349721900276301689668270406372872574546529725031754971654615630302630942015692450981207052678157294841155600160597627846946515047973699544271425100337527031234390965971277620390852149131945342590400902847457255396414155171615240081042666369316427630263097649663666742390920656699140048153527144948700617513801299008609975086970102616111876912464697713688640735064115850990473503391009338887739378979093302825227703918693691855325296842008108782811253535624979822582134558643275678886275168303916798373020035544582358446538553084633706792788033482155241883568343804040145404167598644857729720843226802546060154914850105801212926274022310350329711499920357097637289156017350035306067141754305643183588762439199914763720856203909870659321550127220983749745978429224701903149978773617968056232813187455882005286051227887677353446721107522968249118784224283610646831757477719242723972330666956655370494588487816802913332195760064307815996893163562418221599005644721657238251613357711483611887044213200815135247298184434257137819815406376299910399206927723419956507669382158238416171596104436646349766392303154166059492713359280613945376332417662571096116677030371720775846461118880551482527529732818917391407907008036120332986523826558979758578571869084027585868911314088196687463041501332585338864372594016591166415544140015119881067155059293226622485145340073578968745023527329182253547509042494543298671581490972666951313183784574874799338101882118618594008606459842561896814927854347862759630535160310048870102679151424011552050075982478549016281551521171592384206268194356702044121782514285325068722310506875703140897549074328184354585545151131101607297811645266767481949293209367110595530804631822659812092540192485034748441303199741705855577553288960538953375313619127185456745865468227951060736386940127922698436914272793427896071125051203553130105323890285791530733589898665366901141865988827142406625589548020849938904879604715262784870958120357157773428574346922072523743503763832051867587716846460479160056692539164984300163522810430174303422925686821769445074638868875000663848111748932642349261781511747367292690107685387411689447216400170904398961675016248631299207105943136129902560158490286355361581603912781047336768895590109374290458850149161774322307121803645425274536931003513548513699346640500793694809725802475758373732414864906174123906928232075562149455250651715263099253758400599386649684431443797667956212727769361958306045318191060330708779170432971715418975556505754308216415142379170859752344762014596450878729718841725965564105159863645593925487282934963905282075236708092595497563495076883841967531087084206540112162173059237554752355180922590144425057026717885788620896809140647522536994767552182378960639119458255539806024441157106206993848940187092413455781566018135024668380035139100418842857661220157322267192419570115402100626483757950660361149830726885074555678071618760825513616045717579017280535779885524110491048052084042063716764835279822560949520156849943979254716854520049077276075699756448353133707312340133317190527037265927200915382718021779597998768574829351240161003203662570424049157049349754672728177342860119957543542751443782584263486422926674635924846926491159926654027313437954951330694700905957168664344105464211205322035188822089260164955130975506833009641831974198243210200562686708248247393920880658054267739466892505090511199460204396790616798497312747937324900466494232912199440130483831456955483103512071059337834489997873467704828653727454017243048878675097589309408649693503142814667577015057116095439239076824551359929549733353087100466893640697355304255055936370145139544856372209492525777414757566492139888541331131326638637080190278544705604084735766851776639317679915093423832002748957650282101732284474588812443853090516417638357926393853565488204100951761958096244077027139170418236128412222152364762958494933486762771064796659630621083165944510189575723710810872263902036034961469048852905585802270988387728874683118624726946785214272814840767192169519648339309949848256859589064418913214554005358235013008327297163076291850535092499984758183970668062507366935798703521831526223689048947817976974740611697294317141834241847915000190855022420375124609233504667244002773065604475874595977908121891885679836293125331411936822353126091100112327241558459499055205907170325824290032636752914491932675584258161728116165396984470909084358507074115390978212415363821841954650998448968610099445575467026219461866847122771216929190808355939745325573050569288042652521775959251846713405108516494173648806281065181786828236266795032190600660057677234728361840249958968629656808119877294136955064190913297058694096088471756796741829261961124854800645836621243359690724835667921390526501980530325016126122377092199540752664980789381866599403468700437837752286972134422220841612408363578675441338279904016133901699535254991802818656164465626210865349299105242853092565925575007161735852958285539872752186422092439280225645248348832748072184146440720160971764945696477725913254107736163046773786655435808730679609902583010905487346449948932449664392989894361611853341631869789996201667421378968257800555589414544828562200254466792447912796741994115980625845981856293136820062510966533805111475971263103127322983177122315079757934524659091594688838586791837452623090155859647729702522612724838745171941733501304283661357490610707127300948060638669322118295899930980706820824885591236990501251197673480852491263811481888860597674257935179329417691921410815676715191648086537321212958749002071791996935211664142980715570346849616369439616873217457499676524025734950819533117563213104509358559056588356914689039559337447850638034488214689526784648628139604405377122335004126518531508730378272499062105661742900186352605699455642468959577245171301980657325095918952839711986412324955007612286108006981187173015319045258320945741204278444969040223869844819332478324439693700787847844465244981076740211303100732515701577237429119947353678389698430086802345615607988220725529103063717544440264367695641162442048383043067754930524776007169024912703778392164645366808095239570113268534290073061762160912965125051757165275107434568704268174514237157357713326380012369364592754022677547285665665292330904073388137522495491228093707579809860677210502592994943396164443330337687058083012709334689369400262543631984246751300537452811109336855318569930210273682792237206921197272765582086641566065290898796091864922977374091450281670433267773066974058539776728750170661066578428970222569072771633321121679374427875910014461251558233330661953738267222917274044980313981573757183517874099191090898060911967251330056816901187936350436624648660027659632122386230646473192111916585816719793001369758067082457674889841567362804009521410360099257339444971903729824204759138157830944346519114323411720619111654470957212716274106672371043730945977019646928329205614266419234746282940090799539719428150871687118883552750252683744041792720624745642949411647886163563569364579130403668809872873239274900008511342517170035448042155795423424582127873974232463659028406464071187804444803391616259719659948819264495618789311849057366932225488040306471798390679768326661289307479443744605935127801277774259061091536640061675927675148118544515140698830219805731831322887784537676173373339012827851756881689285886138435979105974347035867900455003942273025103118672231261415551227851773721239645379322856705074087174540338916479810874964321719936570742985098677489702043579812090416679807146916998979636962071304977936899118338279210801279494887373143388245437927063359652805128206960417411372369370674170078085875332827285133879740957131572319656621426215374616234516597617910857793432003149290575237395633152202429612732312790664687118283100572249833927860984138730153861973265709363082988036334383368130230677725350202319496884100199137109330799449054433008136735337570529525153872215194426575193064945066466144352098248846911150876704119084576910490909765593641365133345390208948048067761436354543825978555387441319345546876923600284574606399106930886258123901782109837431642199538598339462425128697467897245430949894855044765880311950986570678346468844709345111930638473205679425071742976208398767559249755968107978258910067528379755641496698279534015783165884604760024740774708055917824500578010529662093707058872956006579242911285015755106737507197393074531082072158643456748692362440338221995107974896567494820644977788822362753183124083235012803792178805697718742263605422946374719018752512231172971916815170994252643095624345402474491822988959894656070892052384662198923554460496361037525137681499243599224581382372103945828316757894034570846024694270085208315385173610946194161421415049614584506728763189337102878465070507627045086333446862990507008567488875275231747939173405966079383913502452012513805930936575596214723113973924034629829645643538283613983634267584626869349053061265615226571853821724429008874232513921596562846209679425319169665107561225874449081130532715258173496934044413689623878786276835469463271583791189985429375940098489335055390827753909437458202381027338709477933018388592764867957605759203351806483064691660162690788742601222281021278907694885521152182616731066368743434896185721983050819707143985731058069165718522207570244484150246898902290810072202715471721670887580843158975942350242287726631711914435803584979423241890014256559440378941389409716048170605393193988004740553953537729784135755311299100609095292786632601927134651407326858693927350159696388257420728031156353016125637776715739711644169506832244187544850270670499022223422783985715270756737217070006538286407680163448387060198235779934321886793117652863214129161639186686912495551464797950170114771924777984165099506829313412956936885066134848764225556139943495558392202123544563225605486922860766494500816084966090454285600118700767522279507234501336827151214594957619336274774844898652053552544700161930165953314004902584906272595720533768404001578762099406762451474391900034953605274562591310029258353703794629277331711996887797172753004870045828244873836379347141351523454187844165076276335816775912967222575054383304725003895627815406316633180681792034276144645552218306764617294859650433922450508026102366388345074785669880799924921332284176325787813516781677246233234404897610603806524447718946541934888491113723522861028254188893986778438245416626181316811441496974548001222425159102856368569450565640188732683552680353715089277848035933268593497363607957611714780343491874832643108600474822801390227162966461862163309403247332752699355794494137890872372422976993395906789347878938399034924144343367153794789213515617970227852838566578504063900241310677440162900886889446504294089136734314352996944102867883366831950741340870464309973686349926612830564368278101194604888636083539036067267376181600251809957974347607116106750552752652231213194380075011691152090601594763660209508626466392052832206661716013929568266693243180136019556811017786777760297266256518154818753473010424133238403503785424187708552461945502283995428820823384969088311057246461673833107001865067406062281621011226817343349833906020461624301447001751343635852537892094927625901487966628000834444690139539500990384893362866828523753564499960144872827504251617240711285690029434317020419257733096835513190446095842611071669355130364543086985280682496718306812168195756593665846550048631972027710674182000062745280723715853085216724616427729365730016301717154310644478618743792975813685682554505762090154594284572564391114346008036137905821894852747913879398161863160937005057810563306292732437125332613109643124509046523684974066068120140943870593496019365165433255338174662649815837934970070917737581564555902005836199708858547572516373999377313934804939293860234052550363277578254499974067850267869068558882689847958951017862792668807507128511513687291329939562298865281669333967572286959567707847826165175160453982444333994651605165563595336814829851957390199632715047531006266868648376141926561573874544686077847332405842524543077533943954446199215492892784648324451249194480425061118404967426125749603572935984051137937907026912808341450894769378311819649389061385757423575497304029577334989284362064741917495680491724878941922080057935177376640109164944171424810970191739835169146384084239215245137063558658969342443876136859406760107653631750222630793397846822255576250013975713418281945229765196077355192331079506146651526647596696270579710648771550184302176656490163534961329972363231380847077681556474864559824719231706742098204510275942716312952136421436238450924261129076738653063250189815913538024611196288260572951103080421832586245148095877856310182211446634233282314344430142044565605403567991828571620569125257240252590168572838496696695120966152495476316311890660300891647900747817525693722124861084772316637022966412867881530674460169098603773091792634617796257606778651199340026635145048723591845412980629101541519072001184524760587514022788410305677871759553718038339700517586106560957719778406262616647517368109612172830504220557733181278508410724028236570036724297898711931214397807495041483317050880359616316822734027537854293420965055293158948668047800017268387306492832652503930987202999890303686908093650669432270714291068062077920403533880736091029172375835499269608155883647532820062166418864755289446989753499444644168947615713209111985985054386366851742334598986064390583332468241305533992502408809427293184940801601653527297779866526153011625243355121397217281776133528178315118356937789664523749560777648618874938511576139736980711369116259749066046485861671581124759913205501169406610730027226763725295725583799449857185956702089557638774994344969772802979949115929993012631884737961500271453844059176142691151304569881552682977027710856857297186834026715035688478520472546071428215589854609392683301040171990673961478819865564195921870451447549407551488146622055994206681838552254110079892548837695966012075261252491379698937272078842887527603438672478871059353539408152698494378793607719516758349951248961814433094421564858631493379229432735528806943254124019084428975666050640347009932466526669218728650040991342931536131333281024521117862386631099475194425376780112276963880621692987607638688945340674598188378055838122450838433539776253969301418598456211038615536734219218869418536141045008583482737538160688826722683744332869440057251126456371899577750796745730341707715538418123220544088093999372868429317410279299183710321931896061315400671013118860171282562331891707347006546017781248913342765149614542474014904765874157242283742682128926119512682361496748470474965033266908810182828407022859101309448316491243386182428406101167870279881412671904318227438283684328545328756706289477239748578293404709609064706446378578633831268431331725796647814203213356293069713532789683943410218597324040621067248757044109956719632537364415765228725540089418045330919596183922953976165396463571278762146838147108400122300898723868530415152608449941969456445766467708668245078601278168702936546962138449449056494353386774621121722916909933145696308579579073875619099348543026972719331023409225331995270574557915122959919904637771813675263569439436737133518774321824018574132573252812440064340303316861976582480140253310632220962285712572287226250334119223164576881995774728560080686067839860717313848919999899965780396051112376118095894019876820673824830725609253124538439817928388064180343111341335606968708159136789269248699789560626219106593941988304047707483014902500754581077961517786405362157976758310291542347098506817861538373078320350257004575969636918333096966113400847988067787574721692702189511818901999627516730514230180943897590182539698176602962472894254724800005421590594511494909850870557633068934831303620978372610731167038648704265883516775219361483358514980822381350205953093714591660378031385767216420195231906710698686333014733719461869126166816117185609748445856598994092603870390778920473177349747646034821887770099566045650443084307323316218130632718030117379019072699261535430449974629700676045320718206000455905849008371613289758159600629315739360053621940232309791871714838206391427456753258414952350025446395280177616739319052945063032680019990131736655928739379263133845126144407925398424514703704826309094201069026398101748739335661911947317459136967927740855602828188133461403766670906510081206885093581750380771562393913314827785799245415748955847108330414835060336895712520543230378431112826733365049213242468572637122712464093684526645488879878726192616121952655477704768374360096161786979891810303124997431135586332556132568198467950559078642694120391521266330806402256029041410511438594272228271054034902457959883687362097351467400168267820666053170543508845947491377000271706461280885470013734394202415727470258184770035864384003877387018930037303772551336450857303515962358135936648282946202005960763980071414604967738244628247846828372251180850311693979402914232711070129795192865600846051869498811380762127660056936634985865329252071755016668417842245345973796484797601799834840828927665768720305635686325069223260789809262541599773601553345504686809042061349563110944113663014100478644458277637361352018651311246768814072395940299551992453773577054925309621084569384664157951913481675751980289417391934511642006409889931719612209969795871708444937932895028209143782181684248395700578242274106448299512598158100649267762883174387531925863890294322984110479409608701931214574583643385979228372506944286374149397448505891750918242207006166340423835567565107876488208509945059434880071064427807958111218849910615274645313940223211641663862265879557869717057304601098052229812967003626755133209255089351213418280370742412331742031390776482148656706934454707471886149967504891405878281385690111841178299344756499034251269583063830970609313507582355260680840410133825892163391119564422146213245075332048579127640474845725103695297519356858534594830261754772902549520942887729240538094978908420210787921310127736860222703517578853962442375457375190241525131703341266268907335353950653923493336359197897900971668027926083219547844949799010601956084431319004003090381726386596916194496943076278955885154235274861424212152398867018980899631943751223001852222535189365859898421242461932324456321174523538412487424742667317621084471122875690670269104241967132712397477197211013900717814065860297590678210545376646599818191527314083749426822153781089458375520585110162681622211230827534924390504311460824522056328662296563263990505232010544410739794250932304851405388669723295326218322068730191505632323385325276705924080561703988760415578103895523551898939072266277290538866108659608120926164852159796838096501856846545070315106874226042356317344024415567606247483745343751970416358897588732103766867696678293423310280158663952814595077648929083636425782478794799046048241784836772250760566437759899479972022634113690302808485091598281110514150821871268334864619212597805642544713852759874323976448347227383679635472984305032337989256556184165025487565800049367186986209595744968696266898562850954876342876130046893407242903742827363899090623324939584758594153983023164275823319885250418702244402068990638795361120294318349075959765404541736071160628286306187916658462027784389492464443640934092430032598997961053355581225641166858194420631274348965456978338542705047545673002933411100939605360481596693195999657654485499799570307053686572567851024073034155572345860039126020828807152550834662205326086914446265487027711306100682993844375425756563245118401039180751407021352975165092583531744381977937575394439707058724619756325989806345741368031447060840883172329587145591018630673084128277833903253102009296269766202476298350927645850100864422810108550491570305656580979681198941355385143635026139263432016006182932534098690456552972980527955443869554730865480281398363504371389994953577522075987045451927873361716112979704130271780832893923548259069528933328167026398305448421501678358816097298849963771075405318873943659206726877690529014333835801154284409640979880438268343648959026741200133125001973191382367691688394933927086104064642018763173085015657496279852708352377155436421709077119835804457198327746564973346048311430062280220063683988290201134760168019224339271292321310967730881806072457591976090417967499259523441926521170682165704637678600790579218047139109915147143838145769505120033386813740272446476277839098333792766803110183292237562695070381822561551351968485938992872673951286834194857431145586670293099843996506441736238424247384130165020880984385931723463648762948238336686449158243846377871029187174039751776568472798582556313124160163773111662122466502873239163793628521058511612662762010797342312833685586000685170913170187043226330604281291860838994238996915288438339226218480521871954144545787549031523284459674603841892394760690462186114788753439943819764379240376752402443282136742224355933644492334712946297886979092120276171289353397467419660845587744556650563706713108951956378809894255424803948440807944635584577868656642648682213319301359206018618656420421100991877664773534406493206853118981195734435025766812666668732027569842773908275717789723162416830654287917408771982544796550089107358948905752899444947222454002708967855473183021233137081405551280782227676719616297946197494036373686080722030820893048352980348112158899444196465908325010716247518795293711469829946896035519811143563602834834108997215420493396571059663249517136865146286777549512896445649922341386647714141455127727352716264715636030393230120046666189391784492964195887188216557503097735756698394384525917072465702055864323330423822125070060494744473534041354675949497017616298514229982355093834595634523544213903466451562996926428738452276763754164123393295229648782082947475825884328134665995388131147628600927196613844390027664192515001790743847809457393758931760390187967188597282387659288760165825571507808379457330595449749551196865001922946695950165181903464190769732434536239622045300765411936421066535409643167355642609386826540869351192717926260938681164489146444813898947225300713213635612521162407524437810748769803051606134267454665026169474790241888380587594981678220516282198017567365539792276733527608124800023349797530037117535915426469001217470044813377478170638645905903863774963854145199382229479332372489083728581363221661807811595020003614818097006124769974871948993379768184854036274071521896907097474030949050905243239142674722145467723818439761475415742639171803801506030019849993716675527282385552221352111115851553661000810267445429738668742732240881578174310953141170884161869946311055481334156468986484935402773406365958331097325275607538273480341373368899720282001091055997133464400353636697355256175776077359392952335048295035884026260875099205348782596593268568282411763901007594077823949022309352341432897686930201275976105762079030058974451403157566606238154095886016962971839961945292417294333715010942841500749805370130521705657041001502408911257581299290307237347580893587877633131073044524324115482601782621460783523249051356944695276827239467102665645404689752619021379784573272124741864875893436628134508113484493088584747045663460977027476558838967347527307871718138692237555268507453803181224241363735290410462784099843860586011523706713654417264009554981468011104169686768754061482116714801919657638978510673091209801108559624531489884889792882445177220329315466495088192243630308296805223874490372669309469266937858029801405766470280240468738353274874481257820939269622202571488835787199279179239298817555927923448641796912421322750096284810010098234245791502925644454664154810003735555924106272849218202933772801447323216758969693469526024912120379019597621681014596965474382742639560225425852800553305263826932818013169233581539787111811985794028938028667105534015228763249073054913100532965607862271485058437475875639563083427950671746086741286002106397654916042804682683021234650750060406052655754702986557272492491530880713559098551750816064086468997344837453367657861814352829696454884472392077875667390301948231704495951437385895297496823695868782685894849979138909372205667102298209202222209838868013609735624147469565971610966403697395231220248379862159317992836319586444621842687756865116520072217182621241060278800033216237298480399600771125542657217428010296263325182865569036781258381561557864480545719232444669888850237713174602336140794239037752469147088881200017581049187269296786168344761399135073148082115768889825911257535131978623961325163828757170959616040095552399492378100130783138747951113282512420282295768611698789608380754890528614505371312698967711560387461990236924680678586487169358873080899739544549367947051313200700845594766481698382091257882813112446095833243922520222600429465377436053449019860469950220052613318906031482909069466796019253277626543433009236866745621454628989628268729124525821669022020546183716454868279198877766657313720690812919395669245598798881765725511420899292336205157374265917365748413319749937360522401450532713611803317739862299949508100711361779801664997909105454668532607799961073332446536075505990500884904487132747145766317368126294034535582079543186352953794415436615772873586752922150275578234570976909273888403931566915311949912622257787254957463323291291830973344461886396730918352184198103045292623658712560571497130939740429399076097431662286360350395295814550871571258699338778052767963809912663824495537252467486667857449807359441783736247780928943707568675728023800194851268115843776340269545311286560438082204494400117012429440465112254813906990825515541273355116504234179216452486583908304365230598305095610889705092487856222092425391586349947217525889769731823818752786616643371859735994885917609032662842436174701731669332172239050849097810345574789033565491880785760364668433646186654027467266738578751110650563509390637457747297449296791168528258046678017695972953499567556573176253139810117147531283019382288560159681344273224202416786575628520643294536867916501741181585037475721457512687586979066344989498341095795447468444192411591730714735203110726667356761037729415126377340895981000335065903796929642142268469447658149393832647847686945604611853560414079462498448076240922538971893425996014184929206501878086226091572710649089082664028446593107674250313254142869526470129027041784952158919799640783460773043432944218151638093103570732521371715326991794785020277798077834493377667332921514201676896452876761838503246010997730857450864446251528224487123184160388082323321929687927313591513269167032308788601778076112093889291707031686298919090635502125872851420086468239548342659295528199759453472352067705010920579059392478827958735475529405710344589407331165078391265889666522232873577669120165188895867760649256300379082775764246316874622893371707890843266655857811976906363782341082554707603466886989073956569831640424198494530557662229114292991008357233048327539963069445472387934154767580790583121465436381310609436593976509210577762649962223318401969772927088456671215959937542787099524723489429078668087365874380806131990526642538830455299091174977464792201881435361469881411623139332694834566703447521392006928153078012958986197155866269569380731699022356541481671077040766471903822654742664436786537040849370736954031125083205821674065389621687497253329912961421393205813029330487346246564168673453930991905911996558590862420451182822304389236499767194135133762478869950166355669781259750073790126195296217011280562789245512477090102242859308787247656985841197656343281390468909314799249002818900173602856859430948790719418296717333147530435319318007641143303409303249857749925454799085558714297859773531959793220543486118629844240475849659537678482948735803525677073591325615003274816787666890441044056351657986331364301564421482870693213811291032374047711163511587943318881778493146307331102836907998325932127917166962623654004758808888766836675289510760989589245626111696056542576399085687981171407829122175240225830308518599171395772024053086277237513725179950447481373106422772034690612043290185953187841162790285538665059751329220236594694767200577198861507971496341650951216045504701566554903707244918807532526317656123277809527916554056782712505660806461823211240229566028922522889366584076615032123627766024692865395689131634045041083329623916263310379926831950563802776478043351412011169430272875565383141997304431957081347284332328492364649167898666773184077866543039647704851452466763374834535735412197820344017455636005008728158217968733626512109362712572671122006137119324531919209938297362478777373462981679648366844858140331645631299204772078383566639221506143425948498633957512483217972760736308783508163642305415740164780638059948647145144201704428320166480246427520163004554549364169440644087847875136732522205969140649493538895073460013608220833471283684586586115050468423519338865701610269900992301104045760194083473137035960006965707185618833131192060536441549129313892639104794616547539322904185878671717018041017956874870834827763531854737416434407285280600621868589318593840152301870968966422083095731378916457834018847813453190252078997046087024778850752285817861231440246844641119118788196784934460965829254480063557931591202396478421719655951772290505047747122719899701713598626843956837183549532750296103544917190842621391864381610208872641939490346962672241437225933086033362990874296021425938050944668639621648612297797441817202772354815234573670167809515730742004949655698351509290843738010277888167480397209148609473759069569333294692184971848804652911245795853432217476851195870277222022992725015050785024132002645649411439973364481887873799800038305422975401128891999432048943717752636197568757102611838422858767685977580887815313878978208897034999775664064238246448071255508269022064551102217558190397082810210679121514316696466954602357554047381332262324845804617044172637912149365581425737755862962355129534406256350465260511846495253945797428999541466103009411978845359435827619833459871181494626473809630738405782131690526184865357664880378439857816206980384330759944174819244141445612688596193623300498387421411320816773951683493883889051453088217470118009327942093055216637074411611088506783623081382237243684317803945823730235244648986745332575925152758352470803998351165568992036588467677752843811456140525417258256892968408295386161046385001855902809434050694069496548808242107368165071502849750375738707614263453926747142820133598254433302132668575730755259483508857499437999337777644782524504633568935898350756821117723532883510876415668689121370857666676650734151280477650190002075139212236096581221570974998886368616458840351350145959451669109623785437325977596804061060889373780119644656782803047572720238132009881245794750734936972997627048048114375182258021511589839943499328383257101050127598925770082603265894660474853200099081587264061271711283423856790838538448257852972352627796322085299403662888082139416472104978164107923553596488589738675257703170834932282279320003671534603877046466257533200411081387770578744855425742562702997225299089956414204184572255936102615510870574787358064210135271501762966395068503414492534338315728963288457225690904861126140033063627660256996472906670836696870274991305247693579950346060377780056458085147283888495018568410997749023551024240470505152141782048873448954078508212458847283803756786780694340998200199791561540177973911567800026069521862958802096949321513562699066159470004547123572752490073512519856091474918963691538939039408282771631918046475614813444274416588248621717905671859858670195122259359068351398199427135097966030391359120192011570274509874398681769526366627752062638656251466664835366539580932618827923268229268315630741081608898015671171250181090280699878688419298032190245840090749096838806948933208303397040140978383097244807541137516412779817638922200441305680602849837219335302592377271767959159508669955175684199875389825790159594106537698338925426195236291679069188298803588588837771911301220299787623016295596320442353457731246063510188725648688867887798818655773776346667102957525237049694467491047336810001795361987096062616819142766290860841370375183274928063113525522181317557284015746368880443779152903687306308872787142990830544321340970956090778750395782463058426735683290466101065318733990310703350685575531770241027082259412101516311943949106206993470886160523845850169743775684077735547799115450896469474752051315993698349829786084112999136213156528061371255289438885298842088217959149759614450286668829994102835013364973761462178052645662366259268155329123335368577868581746650194100864809841159355191554375973157219100107260199290026071953503913232557430375972790128373463668530640703055009919343827875165069776197386450276505280400664260885384524551425499782623675523064466788877880741320969533690997054112465633610493732816606215206486272258658606869635976333523964837972908504204265741860723266279348129763875136661587374973643128180743009659855434257613213951980760575276336584348891230391381374614036254784950781847427239030976209952090211780512495973541718763068615550964675651871733380987406820048637461996541327497137656942546265866195606126745884473765384052208521550592407507003977363098825569261516251443198217285021518074158948619313592879274302266051556994801494506296074275538161702115230706978160565790814189214123250757102786474943763765221077106256944984195485087044015494071461326755914537456877420321728063638718878205010047500730139215851976196603009589006291137403652956548622272288996819155757185434596318124827187014689198906198303050246983746124205636135124672416734562587235128668980322794917993650449884618434237370756355253046481340284636560250088868939989705979493816142324316337534106307482536898231177553870145502712208744610098316719027487578746164979523894220048430506791534204651716190450110478861249869443895973752774501539839444704959483153686621267382881564208556865306951778908151707139424284335323304615581091175545051430897606871239088343255225313048129158883031131887962520437319677212635109727403170298642526958721068715430764258842036473715466629205455022039273441953981591542893682130637491203526054527169313491801989092551831859731430654074539908674962621029770726080662804465502449496822514430106692861096400078340974760966642045813135916350436192807422144335954503434671978626643393164979073800652183629552550294754323936481896617964479625787951455383101317224563083923876471223412038705095615198797173821457598780464131536773102627294872472813095991907697353317694269629417544515668304885868420912550006725957587088511231803841645601269285709232529223311128695901074757173297931642154449606830921568426244905216814149285872871600797113728284047417114036209333187429442283071265286963912838508198085490344001769954906465373921578872055352560022221291140902758605260804180335376369343513092405782240788522506772531055757500643272463019098063309811567220234816744645253243209297185141314964225856269175943608156754787193935456371662621189617873407313183787908411447048293328620120826760786919677241442434750163388242760925096775808284881795773501210401240640983323204022523953359615595552409212072470316436533277912076276507107083186828910683856161923633508544485015151973079997544130741298735903937463358996899538315965960277207187714351417738932351627569060908595357070359235868551025561108777337052820514784351947899649975051820845211988436558325063580220034763831825326195105047939940889514839540344547422407966555706171692295900831049839353872282101768006849332912927618870317239395011098654016924187922706683982676248169144101914712442894985108542467583380994204307428211590655081640285548390524421561728301701797080722392649798673058387531128719409938202466545214447072166526866540878849226240144228118738330287582655883046795662766384407615325923029734019861322918485146866010006131620439298560711978944953657401794032945925168134426673574691202880180611892646312318125617503919666445218713650266463815286815139176150163803055106908091861953407218535924188302550677453305220231641267183278168788644500479053447830442121557983779197366946973334112812422057097694141016539882791049760931671709728280311558360440776932665947475009480730571232145075408206608656358263603095691413123780340832374000738142327836387368744905770045828431593660935414439569262339761075949498577304780853525580274883031116434425617075269626191805062308144348974249410744890568824904242144573537425744964292087448134826976285639468751037213374751406057698084929509572473870604194783614852032894082131512968324567555211552846487216600878882352719562530623867450479388698005973882939067855283594172449516141930620381045219075526998616331527074338875271824578698536905523189963057565716429021199360286473239807872870027068761674177283313867727128405489893876066479294227019593084421457894437947210649857360416055198317887605082897505693219075647851927661233115344201654676097596851625983257071331247794592868162861939278007772575752019370647952559476318177864484732011293945922439405802660791496371225019249137210264654355658291848676879909983957121035530719382311498813941416569670217807147710540152954412670314050993941067506439722181259695764085346623938559091351817840324444885990987562206844918959107513278476992795734651584664974013589533128162198384741599950540145312375422544193963488031171633101913883960823678605238416082012040905483464406916823026884494524452484532835997106736775161672930500518664035937927937597439355570170316340987172906885979892838421030928835877638464916154626368479211354105018244094675648621085710222172986182992850647234552636275845852267912329431530853171542381414983682228073783815893485801487402739886365801023897018787084735131760139661037726068337757794307594280260789197354496170173460774329020230230065530751373682889029330107322297049219420705564496456962316827890395466650170922771635545424036826727551710183789269116477324302717158546360536623746088752349285234703727447966642877756694183661532121211588799590533801361129736794540767255488133761278976694530831616963588406425200523518410199736890513840294966105658499348493477561163821911028622056290108178342976407943132838624195920895606197981071208420348195632018490244524575168985082425909504354652449055817528379204582967906713920896626979753984516917233592756331744203010494265966515163878108696274761453940991349123473231057973186171423414099210869440798922858368320667286422529402435015587838488619861741343545734086492105602532620797430780409107804023730468675559903896964709724437213834226409303411603273475606852756280609219740051844674745716064953703718779465132141266055140358258276383998859742403211810490535590588069897733182841047175561988881302535748988996153594088058463930729844651171500521520532969395158372001932814192009568633471743508309858835290189778608265050852988293279213929119354441669958652572682569641977436887723766880857832344775507261398549719398831896723119322684250389156369403049693866131117928710334898977842055760723847962819231919215545088647694696387574342323788689542348475742432029734978925518118168305735203713673194346018935313559517920292057101330788823696426977015952163516920639290649294646348094534733878654522013348962259044632041345982495777853158080118419488620808347104290974907696812066866615440531024102392525362978000350576943176628168944525938660237098181424080212966000211907412259475971755843540597235264280408448302698635790365149942380362343072069092730444506260605234073314031308036972642210108297978764338528342215417735205405322205538020214407609232423677781199611913400638647079302899283783660494911331110622146625817624682976675509661555850873116715709956726478687649150505894794070507275083653518662939536328270241171772038766507315104850653092662846155919132055567999624526924871520597148192446895223046274477577629045091061861618004698782126541330712934686995363191815243179770719310502061421422176078316635181998809285727227538524273472856328269137718896719914153993899979287583592641453495262290019323950093367077135360686279573071238910525189860434186822330234933258085219918714492951619321106348081503469486873307033092258322731523695268721213648219590792172380573073722793169365906826797667432173040526768521303351682649966991608363978810353847181154519180391643333645216290902873460902747931808118190034403359378786730745962557971647560747509310594885548418681751267411154938749256767376294807197482369093070658816308273701630305332582659507097170264087577887268239185057359482948035208465384824099785522211665653245176643141939770087260558269122381386460274445291270501455927694446827732922264150176147042950255465335678664342959325279625904921814944915013315965850134962671931155028349817455844864400540025770383428667089773848882296638533584405195148502604085617539233722561016302300063390610473005723198990492282654140955452719336301154800497097902571494127737653377609775300961842534390750718938193649895518140683989416289120666622264626054657616521514338977824382778934893842418015658282681793651936879989545784949189062375517641656593082857277257441266853385782501853071295506996403933907686123193666146012103014211685557801222777076376284194355420698520247209348886479666347603892350524124326096991463718565369020855219003216797694033172494567786960608248456550899414210221116067795263349697789833146946529428348734001071774195903654108236706876103350234856687565631269514783128494113395390111616272763045553261806998263202065927464457387309978001446474465849192226028386935718882774091105855690934607489613099454682463717064506260195555831500111366505518141487815899806299027232686320788117203977677335353398153467219876044792334430795914586280796703228381062439945634795776511606292754933486771917745574722031340616303929701102095434757750367974278476981552008144324287569822032547664399005285354865057774902904933223798003500058331029419268560020792658115767961320540252517246583123598496636126757552678718265258022922215451952559689467949589543635028551654280155391438860830076262540155076057808731629152052697647089335787475194173801692946593238753940114897380984615150845891599591542209710794853768497134756361052995041697419068872089927703109460787016168385810943699634497967518998504519979348874481903378867517770409951274759114675342083534708551345531004878316458998400297026767638846355192315033032949140801208903356652866354287702416980901364086932503528981800807862521530281766779754513438326607699901152511643520695071888526472678947214737411950612114409914198959227470397639160936104222531036522667611810650523508942360113568499866318140794722607740519423473260593385379127205188522455126011182832887310236981435413333533771035533450871092347534544640526461025516783498418961371992118078471075707251806940785819703561931790053333895487597962455300743571932329459315291140312070187881996128730378574739908720887876436888098056434529860814713592218952668237769538428289551092280069726188828854213880519498907686628321145550026735179189938018956911770305787713552553640985386167642871918512842467146590942492480159054618709510746664492101300597220383436732409916936231926645311312364562571297225169891765427232853543487552263178659876974840129111437240561450707984605765386888925945360443523934955698386779985785369213339892941511167892526763012307135459850861745410370033672428166105321845194335235059786580305733420508218606231707220200264310635000368848958795752739952431306180690739794969820847149330405223442594634005645045802014210445489857916741864833534080807278417253795200745851670154956707068655571394346025247084606566636230430981668508865017372295197016015997656638872291301288455433056244954898283960031370021865626253545040284234045073735370235495281677742471305808638432198168163442068413076837594553787619977723098746415930103697268935765388100420972604675763572781321992183393962978595866076203461989311900670439625092808490241586059167803705623807218967797184801304218494447852794724382066507320433655177931418973532499146669298368207612161940135179979699547476008727382998793118859028616767846915359296939635848670602808857445374001730718466937224150542821496483890777532089314492139660214069027823696839137613852547708905867414514458557062060959912101335079879041800094471242852417210922762160354976062381384975699617322877876790162571444319173088288981497392663806349011812269267699208672871208370862506155598967135232573711128421998466488515241243186409485411228825164977275036965500926072770878150611723920882113329530638315192138831156267374021679286662615402552419063313090073575481598746066487776176383590392656525999637516779263320420128383759519196283868592955897709981566141643328464009333304361877244788581059937107507721012138574842337654032262188712336296642917773812141707635455515655467022121293588416488440970301040756895552010111109373828600671673972363029677272776519345677810504386033774467921505351601262173526637936537389452053022997497869754708430483567482236647691370862573645035321334900097633437604842435608543302460322371215985432549516575273907934659963230585057919366694461914213036807943370031066347155103901574591977841331039715338071846391260172947141910947177475118185755533135517728707543217832117654334645655206476832091389352484425648856473264936384596033505298005072907807120894079448742504658649739908409527702197708657725247658006388107343818989558971039196090355660759908447070863802726975159639233984723813998890451786286058509784875745856712427222820736266283896921187921232075303229445094319724364824911080366138562608363258143189196569650726363309817745554799054719239896300243877403090019484143308421809186259154470263770843102142841296574552047414644891561077131570972477094300843838355554623492059427596561548046256507414919412223184300011157665576536363675524770876898047168388923163690256000315975858270430994475617932224031484266897095898672575058919059220496280560574895847212812868486391806219241412281521338187437901020689002916066118659991146774210929727255830420886273861988768014931432206002582360089605162913459484778843531331099254744553743898640273381269823816364279663578410396021310964905069669195874286846549224185914711084612381672549143134381769263615825908194639075702237084848322412547411008129763077380131306985342325369056322070270846926605942036585579473055225954650608309576397502329159708652660392506566750114837282755213202792376212803974412684152505487982800359479098990783460370884845532134231653320969524298027348904146706419211216122360773002043772347475130543451951718283779399359933339540829762800254047033906424084593870388626698933015397818810568327214444563635063801297680009172496695739414239015598741131487701225876940189508349564267004735349255419100763034951424802962025849102820613246149812818741320555682898041195955210099715103079946965032109470797502213041155942969918355363023867742682190957224636945495992795152696301181973967657743403926438870108885560465793386707902971309038294000314804628161205457535565708921614589295083107450034749773998086204735691801267771134195375922086110567273729550551646070598290602714640954086842752072665097245481499550955905675817618649195835535821188196236259446178026883186447835604570039207745530127797456602702181825412757071628997368962224349974986030435923363212553447079171219169829259499128506700098401929882668800669298130321980258777681984362506209665807804454711763112228087674084334101895987754433430590204051677855542525561158793399130045333410839538755408665941102418269382944078832690843669114640811270685614392730431119624324771356076663258871992918490626451459091787830344400562893819705444658352995090995960928525912814405734209496152419993768104615555077448422933558167443300255684438273675433088165545366319772779975907698119445099567112667606475301130263522440392326437500916957047651006810479998400525738057995006289907493714393002723265970270280213836611499383663636796401922562235105770164809324266556963089669732530687463705390679426566756604186760243092762027608411351705607441015551372946255332154538281344712164847154847987176880915269598193792464213283812066884833527749774629262381148885892305191614302133473427584550245398685484736841058453861340994717209263303874861834976936763677072637993695096731311924873366552255533990362705709497641631327899789477738818513547771215000455818676342640701010294581645346455574673057186548330533854304843336416674108998981707021937637540218346103543729510800733126740415909658009013701490177424422679783631606851696540435585181051388875536214354662310467214209238550586341598807822878026604251304422444158529813649545563039091652254652404103185589047893691882202628959736237645599489321355290212958926325365229029161289919399437471948217434587945480647117155921846822401495743965697830486729787501375249047563419486615863503397420412374566062149167918893475852549331279638205175253793543145279527266127547125087231520876799416779072214258838810729108707574431603940308398747321656304515958206132779888193983765426151461512091302205312643151827455109636706388932917100587854473317876110805984867664229970027468277924908672276726366166212556020676135595047589420623760621939851426564070382429096817537956963416161356446093508289071440474945910914773785418320805694679102845245813071692026790619843577625118600937966170326211203310836716304166116624768081274838427458364925578849185179008757909918109498690228371539561533306714893252679762938202112722739450238587585384742291404104685691993417815556177263446634264664737484532270270593191277710275562382827637558030941443128627676848775928277400356768580431356809968956291869554869646664918425683718269988309215416953956736106908424584237667341856406611737524796511771238868272584326464299829706471078778983955997819510340753171123269030562225948584172411019123022816870174948252474603153956231772786222061613553370641358539892029422815818401005575145844518514311050538316206052970358026157372463412501838382459513018637382763813106055693502874743289394577817955234832492044658081329583069834536609620419987121624199850620720086775640207428513007400096750659101440305608318394444990073454759079605194577613801331749804011418025412299186082237866771327134686112284335373732515921212734302492624801556484512071032402512292226722352746044140232209139369603571890582758349256755135351416825655223043651995237589804264669867764702706152658657489906163871468576297170214690031587587581329720327575024287263361617748598680524594188899447098895417594888635351470167903872781607838175484388391045884122509940057250263236703968900588970791539649343084581750984939290183555100147697569516174823758418073391223097983544187647421529692850606450935872943311104931442913587778050511383652061219057030644242986078862137850213002641558869774412580358938441814736948928303383435680142553075378485942544144639908802704871417759893476033814612741297897276601848009378889784002749986527406188031852118721296337952670282437840913871725980009174956501852238692940689810970679506920662809668629634767512886819687007880730532849369175796678486300040532801376256297845494633515319043318145901176739608335588979300332749941534233594952641114615472380329871891200008278002332142299659875940086226833694390651402255382894368393175173629484670678461692619250145258141145868642128474309568401911555426230567923904874625214267664245113272944898968544481484099956245725766835800289097038782554867026660141661101228264320619601976010352532970521918285891010740693055033053361930676114785545270075180762327757460780303591830194459611603766194182068038364796124207526699976313486231314427641643562620677870075128634680846061434890657770738093659226478849987866504348481831312074483110051338407420448887891767570695012906593041255630502944405313231755649177622635228229788865942596044124133480988444063571537787956960143512562332921779767172904606926195893500008183985138365189773820761381955114994283998793579623220157457929429397493065195792694410008912444849362528724880306174373569786440767866168009806160295899614710109428306345187427588703832360271875218956573436402314888349631545759178542460150655884096006446242222968383710611733030360978526659403168188423268062896087316503837220858443111154959919857143467958586512133636987863037919125254825798747075764156275916589759123926549563804882970235752738764410097025252336259922670714791547157614527940069009983468887088983593082155302101267386955981047207423997439557277130178071542098634189095711741898815237419047872082027675646577098142518422897915063939273680459289511571383007406494400350166085579396486553687571782104211651447953209411530334042747306521901902099109651380487134240156770659190612761413487368561629110171567667640591599076556089497572813534535798576145578553458557624623566287343548348283197552379021577600317853080469362308433380157046786396470003368132113140165117420979235012482387877011784642157724175303135400938418464581219643582828295406057420833360075488802058343750994952776761193900088351200009922832608582197655782052885833959435364190226846132172761781846604940445309940767970918489526535674832165494597744340801271865372788938676031925691823313512331328591752984562348644805135833420178484436225914443482505538421527619172660139465897422518708748084065578420350126124695074902792996322800850558884553604428059540575244424662916412094130845419183257422166086552018947255938581521826803621693058742232462541475807056582260905071587643461910013115224584033259305438691792499918600495838312426304904850197431915284697773749995995162993207639213715008608354083670519979739759023583243924722501753464249669181006557688498136211596643769284069484171923067991049587204052273183159070365656105773148353396835223137921779082640430634487248871391311295081351077948442892237289108197339864103685993323989168026362321608721943088970785863649440767764086745929405234634417387359515685934384826829609013242122526184854519625451993435251646504763021519817707469347566254911920571954220804299565813089175516378027134583683600286386773193047591162066789476533533173703134631437949299737291383014684468304090948077099912112863006722120017438083855281952522774907327123364934154163601813505711865664979371477232509005300377355493601124757206719603236882347744397261178913600207804899732785927920209728629670396601877437104880479440603554323790843817677219455800309050680690727289448817904996456783438098980324750658691345370855912578375667751833626418028919943350474479589691882198137674175391561618733724091819883403584232046743646797444721374014466042867829582163599362385243952828336742041035759928744166331194770480188930164703677998932146909057002819597143991596067541502891993296181373030506624038168223103429564132105696307542851067794705584612035550485135889302064842509181861464823103420297228112373450155478460909443511711444031210227035871208923900112404049356050576124473095745225845369523633908424178615203216630225767042032570169152858352219900197920935829077032689758949965970146121884315293575864783653731934588715551134863050317005617422103265450152250948098101468747395681004798357631848132805693157836156027060992305920514235586152874461613237346842699541076577704966840692994683914784710415801611282755600315359513239442227704536430509411685994776478597492361299308540180090514805168563341063353668814790950318468278481215179424167845446153632419563791134723597172364875224303117116260409920028671636994809282853084317986008431414508008418169307253934032560122390581782866502563046533403851875071393956803233120222728490370983326524555690042455262028055003493567978256968621576501685308338738459941592666890864856397803685257142751977714725177118043955201912410215444469066775697302480584708503124031749618849365058365027943843904120985418247970898298678476983967066836788512647728517801906873531398101502452785250600304708101280325565459322711854042746281459347925651304705294717960989650885845925701706546873912365631486420290410426820141522006525244077506023738059674066703485011517617762257784646064983658610603674716507986848185926454953645216730913397464501467848195708877374801934270933384063877642419388173482417708679994860811488876330288758721055321412658625364764697652961567600971411327909546597240491257054467018019629115652100469535828820206333553601928542122250089454792414559199970380298595802835035266500932176434652816636166992843026163086510685644450431760910593444049617793894272503777247058680627819039901001953039758165098318179966102047610156939750191462144074422183267757164913757875189057220665332539690198641353775986413899511516558151500322523683111763034687342697815742135609004668775453305248034105847673978179669095083582427986077414180041738983361097213536916384821384898371955059352069017045586015015656907045427363739277989957307388390770676856424215310384758349604954600559819119263517831076576496249730943404798244682473275112659511909981307006655852534070364128165758196024165417022476993528185778464130752131999585992870067435148284589718370405889968659933465915291347441354851594171865819434889053130692209971287632626740090910601322167260858731283588768372743127229772906638314503520296165590844824345562239497963639623301635058456606177654643436658693526729835668380244825368508412710200338531004974612404807043902041517333308904882913923181449851795335055817081462857103001692091989862958055686934957086854629763445256199571238373810946434035082645424515648382842861479753718835662645875060439348349957231113743156929902097721923206652443169437074357774845874567769050151543879766820291997289287911727652212913198857487526294819979549575857692967744608740881881797146886775900896111287737254426489877053125702856126814085705415467069218989391640245595100641137532086243307216962569870033846219828781925741143768309255006015213090765798831682628378622016335112286987303336246666520569285203358991378786967315720881379942660462503008374605703564536235709705057798886002713552044092670447128925918181063015840783042067128755517339653285246731930624036530324785892261118800561343672385754800130178108741822110024414146260119449491345654681134450027046181124766691211656494319352741075542951211696704311332758448182825948370303715800715970587301209338996122292709071273369886593651256077693281494539591018695872895784176138414216069815120122377274583790110854848253564832484839571620488264775552678103593658417521378464596258569167276688960489967603934862884938165209028041395179940088642153881150842651313694418090650457787780174290542429323910910121157766447635475491961615335592340827584830285853561576411267299487363370407866345006498525809245384372021384754766111557239052235160882915734353023220461884684782552580258140239667629514326567302198948761416391730144694756232774779086124280572112923195614874646004792348920185003103912787200317735629849684858168079171587409621872621094451391381353861532895946220211510085752593737114949881010855505409940597116962110446048371309303788174900954593191256108435994010647015839399771884136426538878117703326653498167482686644145745101039570071522360749008593448405979388461600963758516478770104290449476110553306545849331077307141901452836269333866215656745760121883474848464336950536771269394831872175633304838874501886824152558853938958341740855367047195385771959622014908922476446853207868371854627192124381771373707262579040334151584427507028268407606758301698850046059127990003726890930684500162885144145391447534708476547124745657831545457153979179645787994792863360133460247945463855500515474020988808587538837383393678268933874237034689862074721173581226831547706859283510263196572673238975128290121428126081367978112382096696229117175643838481363393191139918893326022593836741296387953755968823324537772541348415736974424729581078885859579484338535580545247439477314539512269510919099246169902151641730506827672155576063467462612476415059029541337568148377334343224518660121640280077691966974198423008347359363842913079904428974963837472493594997609341366524047922758817759277575299898345563324314761577699254873931713014736682493919130606369066860895617828079051367169810674246960459787793235715900731545160500690745974005459410664742908846321422019417374785228214202766131813086337197503098046834501727009102982420068817087819597429011352419590447658972990501794268876450936178822978633014686788578570288386929344038620940839730528019036378211095152829743449000149906625993111280384389413330458253425735196648282362521570853247379408993708447596247925559436406482979547345202142449216779458786758184915141791232943262117531361780618262883186148984426044749971172863404944002467847851484080585635287766159623552054517254984088151977475591526523949146875797191786896931038861195305483410618228909538365667853902942937753653291450724533047855764991318080945501169473592810722246344752782664808797604245494169092295599824737432161430715559460967470336809790281255050423692371527823239753963524906061231034831081699147568610156214069186571527183148794166838852124823241035704602509366700800718570332711741784720536616781309660049871865748398853830762629860454985149118608998528755281797873673532427891405552883642528098228138859846959523009378887804343394175201434722153191188612213990803503604262496275023388001182385062844500433900214086444401141400234589232612484622637743418878618139176107664277718247519961356063553027353579110621394951880334284728581963463068126401109029513453540692426027058803010606889365994896592214574008733539033457393463125499283607143125034005715120244220696879576091667732328745989612572795331811448166778175919395015320010019854815279305288374744852766147772369629483722866786621742921046228567554824387991421063702237857647422687721560512351932329102625744165641995308978743407094029930564520109050639323521927420505906195486249843874129684309177411339157904520374935169323810659102316590729570199006195862312829576365053562299654951543151675649782593028707445070507555458200026957065686878254917902044605189575445793231259731579505246110584980225481762946222043632288432493075380925862267011167211108080905714254112830534977090800587936950632141861310304762265123225246456298883622510981822001424472518201189368641933119370167444294587819394076448807357034410916390616408478503375889545009248640442340324985910480433787031640524110960856076202517816070227040789263557472659540084848393255339711046030276813912733780280343486753595362848903788800220340578132900313137596442477934482649504737592966500370886843288716829579671490715450423209358189446736631940763848955296335793757270869965522246157246830631482208559162588436600267855659781406223051947894866832100617927471693026018324521901956435740227793457970846611236446865524066930745961805605956067628746724760843406461512759685161998499384690651288928844808935289918956074709190035106826436145958476229321236070277533194248249886699088262494259281256540243801476161411458731391876028080083701064626273111726776836569479894098943095203274375501534446410605748204673344175886242623913597653442149451645706420375470384400797744738944865240567061614812048894051345516972606007988872474480273961839131211423520262834203060725368368186800096586628893343874800088439345900286543071712175082605721939129077141082402658535032628227083938454903357951115453899682867243764477361125190038659087647490907397528477057744633450838081853256271913913003623938971293230711251186228960597230426873384451161570975070681867292949279758628764024926875504926363905289635116561259844552208696222312068921330349204428069876715165668967260976655494569895405922717966662206100069966932508292617501672429189501602410255151116725167689174090459914317401925173586832303859565379494131180748939428733342770108341098206092825912354817988761753113806232975196541676529786158889403662097645809307269550957765822917371057195741856696218448521811845627161648466847074516382793348502226953116713982572349900590793113038745929964576036041995841291477765465606939449182298777818901927278128761182928515955843186392177793475908360816002565327568069127423314181173763949271469673176107848231765827211010358948564705351504999186651785514978122856299714596466555412475136376761670302222388114511010655323086927294669768608632396611452949983142546602961255871983008172323106913653614659979408703258291539890914661123202762529992904481116105748086438245735162761109464374007600739376713698185596205240801354003259256255622164906647343319254456851206598690916570383086915240163890364294508347203126119145085642067120129559374562962874968477729633851478970011195531446844631209957728941310769208258520678832783302933781638754612912265059676177034839975151352699295131461473756096972702929835037600431405079836633255829028898886051104209405554750650055557686977709736926172404701328358530076006504351118798978632387425137209981382104460929999736722587437469238315462452385224322200045955648755014947906576402254679973382900515965665234259339223705297210553750363445593316655140191878225766077621855474130402596109076703518236896859497136630481110390447415364328291876163005428869748696097956831257020332081743098445346636277463916507052978824591179968856898903117808493285786930921487916505565289992832458466247698217439280909134916317096619602267040860802428132936218243451436268155110180984986697131666547574641468212197130900710530961335444174018623824923753386074125139728233027562459697268975585095362743793932306032810122211851449073191730030115314865436039019851260313085464417059247776473888584996916529090552960475934150285312732139635391751424216681951744068701316356338773043598938252708664348639282592373674612287962038613311225336630504452641705681724545053874629098522856130275935345974599115510353652653997380489463014374436151652245509214548911122703265918242913720247003446915079922280837120473066671499534706229148705030944281587066196631978160058518444517556351611086441349424846329740199012407745305921060982762190344339535644925968498148076860110235434822137561942107041853144527625826643905589784461753083258771127265265225143870225410174330448384404911009272330268863305076922696515583129804824127561519773703028492517102092326608760670921306420690563287791521885204002688969923668107332348838019674424771808994459382465768304728746573554813829966586636411063672288894028803928440662237753689975570816612892330345792668206373058835964057365250515531536566750105619416361627912703339364954611035872955450847436041290942688729943476003053494033846646569993571605633245632839730255809845697821516460208787660786362436226725560651438978657296316291635651183511876023187970646779729969924219485864012343195702956622880722339221609093603165137912962667865714313546451302801782733934623419563492583232517974179068851099350868075388051391469382784594855567095624683445814491826909786692924510083681708908400490702068809276385773953289649000987514473009560009927929807550704656845315002905784236163257832448850344617549084761066722021692137630101654298971775554874472897962490697076307751752348459931573556583984573372959667362899261055059034815674362821518369424857551176681845882616880292956338227038136281893635804561378141532459155202335447334908725031950117032117366948488827997453778847124902927169265922634892822549377968694672853499569888382523141296293000877801032873323669425235710548764196903743676427455817393372212785680113547007103517441960458803442508115151681436360751819575899274177622858499557184537337873068897742362117507179816769988225524269027853874391935978714078672478512423797254714993633885224103303806975911949469428433603664112198539603249487982716493164085747643041731710023922785380685053219617340072021729274193505773335496803985355942167332830844928558564701601205760764322649702291476713201483917463627989998756136353765911700152301147000967330893955355745134195344912629029625731455406791243736368059795813997623314758245010660615029088900859493184222310699489624065782605136913543627653201748242494170046422480007796938559100212158332288083674453379160705140204570103659334417662361592109121028308266505155689865887651769590241440724761523730871164523427148093698286038018374059557923028162197813777248828354391701491046519374432289496933688006871453807678829741342151802986743153162588732759011210335050247003592789971072601119662420693570044959803866862050511055091658598972473566118357353515173618444951646626934566610856396101464932310871920243198348401163952904003068712367835151808000975365145491048480275759694470866030059530655300361198982673435460501323763667461288314916078240636372268498684800912248471416048769070238506573499574015571688577936496958296437183242093585888289546722188912506237856793264110910217868937334138678624609675611611739969386150461108785741748951269430309854849096029182071705100614289405296160861406162141042464416906295158856763977823614931337644688919266940881299292868060958845440179604031153972282353933038464985260517982570410684241502891571624076249443622168893047703083031683746407453617315892029323908959206401641207403686641786621306251944723469824817967106385019018221822244921336532861589706681920416022715594295484541902337914100799863538444893345204818475685720775216459853262928292748243881377270747228797642241973890867138270280661134641236069741830596684293099523754156864129317482992411660056064402389545214955206719239570660769175383088486469355363463067943644393071716585101651056878176230932580422809879202599332132851503258179814383798952613171923627343973352055337573858043897166241360136384377687517909745098328422337347863611207474006991439322011095032721274657260334537711107698949229253364744127155923545750929362469413042655187737646467658031520872601509479351553981672092624747703900028966911915933485738689146795024377069992414908604267704750010847965623869376743923574266310684897621410916184240025981383546744855759576105115688454817679626216626365600482805637683328317692027262678006396197894293664761686903217058139656069570078827145264807911618914868309469797033400587931888423572844845289209738409722915238399544376004259408168717905563841003540559407326436953231884018069151509224642021431065785770881574696074102212757941157667500876109356589526583230253951696730928629724643641818931397239551993918511264218938852267206222771036036152576756310296339177485962932017902977188219379067858510000946737296450972753634150075262092688218412846831053379871959365991754819837533046221468285244069953265952520614532555605957945423693507544181857669521618889382832806898849442581479441611382062290229750562492389863083420010304822498706509463087377107958798887962064452368829074363980162956047742837300837498489051863738286918681876828111986081871167255787647795479237278831787325324260250204413300593301988675023439583571417095654995745993581606867864897146437491427914894018849150759398144676296588468948911649550334612996456793414342628002631775403087319485866317955164590509410915745627400931108328486776844835748606582991738057983403954046685810406225020226499501755561155259789603970034553684008418135251894497720061841996127573847951787043310057144797859652043272652647408793528812578821176743884859026137850676373276261555890549581404809014625246196388332841319464854280756167302000966124119858210228995119859436981089820962781335285692445165772430974849362722754247002099238233453817403074880483664005486061888154341956572203716327686285727085201309530290783651144811173416651437626782399268255553279124983202614843130637207828889183220183032297012867550466695217200707103627235913841159425034938398203831511060986317896073834199127761669160937784049909923248206628667543492519379398513885927603202943754627217353122067092666707792152217496659389719766502906480292861572871713561030593799898968236336197867262112445318451905444497399473214828123680199067047818132111162179611743624901973911619245181716807455973742800176708000216585046946381550845764594441225685466652603654764181506924717881435030776848286519674802697054375543898059683614872895591124172537190088055404620708076954136152827121227564379394712984095535705731846584088899391814651013688193358146979170186829555052184631415875917808004985785175557934035172466159044100534332790154137092759064446323654799729237209488600178015173597655736255116085626122857629923990036628590459809011588794120688526907050649650688703145478065851480127703396258236521852919547749091534645003327708875198253105663252207194400485126575047184341221568583759669227222766475673517535887469347798698315977991117300976358208230646326449718456468168591062455810412011102635211946797427939932143330707231485005211618591885012301124317522845582882536249573739440650255080613035396023108314467494364469464224210431868261699155160239150970532961084001350656323630548954388589249836719099759247712992625741780464490064624459977495881502627659275536646401985591591195430809744605921157475756670449026658258173353755815786327909492078930312638765272186125003803428169819076677134685371373563569349459490126783861220987165666101722982287447043540216443463355669175321315336131123727816942432154301140346868088824612982946913488194103851740143729693097763110372534092404340083451816900085745348390632984408948418174886911573777399607730269311886938911399716110280354291390725092250832680808373676098792917413225857317322838502372323443169787034924784693223566674730947509878701155738137985696915721017362597928271350085330068481738844105110297464762199609661178606947158171291375115801721324989420920487511997260811199908797999781907966808163394282373031572854984558478542231134425935701596894707948945629231200787394303330653861286453652571684433262632404284033423471599953083535202018725119328899789393787765905144696725141852747664463475619151929693511417551160121224740046045922396241043490599177872279700738035600731354390309227551818793278479657102084544285025756249499110206378152860160291635585874865173370490659832024569010570309982713356294485242826229211231430968915815575621160629647660891928695061717548078352876406685599107380189623026779592018587021731690738843554016277635332728390531389008759677546221341955197055254325963370226111368624977206800409615034892317973738539255770555772648444101001455505742573249998660447736183993115917606360435428779099791611410658723906852052792670678432825803542543405370414797749864356623603041497660385694369690021577560654191218549494892731020624152635172466417408887504417629439988823081227674269181526396431567850661357466837009643928706158199059565440138685959680527768492159753093052077674747954342759603051751668398301444703613288784066157282298098447990626209146329989834339035131988009329709210527607846894423411169973512134885156349871870045225186847798597460300654212206491837644772812295916765396110283329609722175286730149054270436723400162995437110476070924224224523767201414980361070342103382299487821364271026817547291769593958872582938224084107061287099428888237662177873774130448016509511465457486340608732485861794881783744274514023262890191081571677655999420486565667827575006155017743260186549459633022570359649832381638060814381789730216906145149292859239232672514844151725536331912936903223255773320337092642712708960785482277849615976374266741311519663302892599777907267238633006417083614006058919898776810117949130814322172016722976727717902184031755904209188929723706791222603033253524490951598932021359505934679696729533549934998920212995045314642670013599236090883435297295087704544947784816345740693469337181703161136081600128372784355099404091767500107520793965100926505101755926672482924883045117892543491517878742744454174606468303170928603221920422358078447437304121920337643891567119347468830244818546322102735794756886171049252649883033465332342113498552830091101201468112456587658236442711908475066855280602413387183775963014958854778586354325915421541476424683654839605969359358457915696636493943295176894201292551876220170687809273004383230381672193882228624774401640350478609625818480282854683619126374042482161562387165785394692448269963325530562806988856874921751118981693124252323590072661441587181691756873810031445624963293999309059564256730418548329439496172569667004294330047351105211952151453136149190705636568804209023582464012874168887067627558387385156402649027982494793848305294757344453674405859131707228390046420782767422271074665817811479692795289677087901713091967727965913457270646707411168162135761760857518820976802601429005480685828582602423146897655984178029344877521619518051869550333473502359635488022968720547658499350483316398158637780464354075747379716949348617914029362305594193474873178801873434002607505108190559539632624917861582083262444103004309994390138462954884205447945922735241908263573669300028667418086249881031722827402838592878031905165004991129902823853868490082092473948317515100291801513156897584197393271323843996421628352572926288356685713464495358905526235698701186929472334711821272181068248767345826896120887269177763867456331484113798624151811063942235986482328216768405242080161346538506203333613332757100553419479685933018263365958909012780007152802403925738804821504713409968388595525621602868354455961298388563174141158973314940668092002667683477634151114353792255887051130494763672574960750237890737903417054233810121515513905146997104795526745548521558635561192027680735287611827181581664046714750979612881794831678510465001452040555347002496112780785676292937493166689849863429766900055588979996738259057984664118103972736922207884279472681323062311487916520673958555485473629906367406331645986560865275656118162387128946607739796067022173318032422324962494866018199412070352230542098014872350248295572809723671416007709432397127152801544975805664917267069556859512404763064091063212097366576571955683264991564306218121312963766003207456795143212746011880180262883881658981683519327287791152676306797703829036492497886276129584030214898144019085323920975754284159559977218984483095637710259529666145244916838157353380380210286523738726213283589455083158877292328941459061351387363655211100713087576693148128547121072898275057777414045222129075489846362481813865663671813433401614397015055092456686014851535956024385611727828666973054549171876620501542379557993736593201747089019971906977477007734101747761994107491027191659189982889599506930626756487045806042224067200111947165159694322423015970842839982537109680963643032830497347306114728653911194682675350423445409664320493852779456305665757732737794328701066539396425414547655003003560664946692342958270386882186522747414507354807262202143916914402867086043897549912592006167928874664107926861782192631979263542190624563524730208059605974016307740257166331207867830199202890922386334691305957832335715787217730879486747998097619795560357750381715274139199952492167090535287025833553462133217255612661710349849713190323707097839758260810591399738623000434641093781850470021169223902867026832614160659498082657959126636847639955453818369646783774453252840084260639527545290911552532609366651279017564940329229485307777032926449047991409567925956533130019102690759447787043761875622980617835902543544239329894977078001700908548300567317274674528910719011548462203575449729688588721357513432943147957570970539234171101789594644830544828293198589861604330917262132419375205609418623299378724083433957138332044085613341274322251894622197061120189238735793091115652602375407765385780547235670866054285857977771970453132431851267849135031664367155838582510518101900330414734442229633658096643519543585732621063402121500932269972964019731630381650362636242069502566110579560031109432927293880158081095765127780131158183039321787024301710555271854072636491119188501449188308932632072669632954707701780525990542244231634828560968322111290486666356732454576172313978579457566909364378176838407161272802863540922843613932716672835594861467283078644366419848846395635562301918310879907548501217422435492181013552384459746916193503652933622831600401282538482764343096099415919094776845742525483059765389109192649995293448521778541941117438201805742197086213955398627542136876509398163687731700174728104983822565991806283740068394616940266159558526771364945625536314251833484682644256365240918582924615212895345863194478564405328073640279187331828925840345833943640211103599664611049121660397167007216865062554567001784259475747330215598220698758490498589786934514866827204777564187454051166315164890854920966916792704258071148189403714962356533646805509518779119228762563025792187633718510926383788857422637815153194856108979209561256878188799958883144526810840862950951017098760149315350634153419463113498800588152269019152840828001778351934817139668207707699858343647751263214541743213982001547230750717102553177372811107049584012831340003070780392838480525827569484553100484489175285860218197138860889845643998327203897252998392065129718178402351934534211720456518903635734936948869409240783002063214317846167739303480520043591559725215496436477029806585619637127763116092569849069434537003083286422082533059462791094262663869845639215429757217660486012497107582542410377327157972145897841347709606471153702024318052930040942337065162791383350154983980772157095980238604378679018109791830806374809121137356726192483994137207135697033604560998493074218440853719769157762897150623418082832445523814188714758869584506320087167455124651764465295056088717672265063117678683269184130498559112565816458813910789426799455311025221613355969175034336050132129944305907753127766506454011578592652649794788229737322502562242881014955834384226200223937637761217784575489095062111429603040497305550814775740466975976103539209950841858181345431177334282158999441124471798806985788950321284632405286608038601518746959937700257238549699994690779900109282754853802258613467673209283260174961494057620445350731832270726856732598307098013112125935195487936751522306347762733916594458331699598624969374220172498945948240020419502924607702174191705279119937189586497746723715770244503500972467370931870320496793275953477453044161736904465702239807844261707482843816554043638022950481066389864682184724364335095734195604052291812419860102078740187868420124220082602060428840933763879897078810225535974505212849875406306218349192884206212776391327726131536560780087167021952941980594889853268735603090781111061344213396360079568254848488324649913330871556796959323512745473944498132866804116632641295654241820602655109828577066617682495017123576012782454405878980815896241239183769178339324875039403606902883835211401596943727120113761577557306517118543520872246077463139126266701070361448531601988494647127355536716008894071425602056958796655528152578020564252460841893291192779262623965047774735848056311985010117929615913346662993496705966407731696340338972258325885831225355581779038136960179683031312476961627090947162892549299955346411789123735160572288785718169538122856079573296731160809226228847814222840916753751651311407509990052736811029128672643435012917289524813624654536376495225269562548712955747940947808274349452213117156548770654444592958100440150511712939572148339347612695927435886491142315076121540686573609976450956513425751927742593218956441020193982564307474895791292925901502029503894408585596957308411718076401423399344997623213799965280607039095857315128826241888178587487873233943204956968400116226930433451379337208697294284431233922831710105758345304719742687124505732925027670466971528137013516573467254193858917708015920581724432549475643569559842472535906254302986980989148800017352112515926849065366826768444329067700452964100810771097354422380907135813367560023777494580422482920042506890870989968644088977120384487088021264723193595775391820900165408915122725577205273092802994389988961243404215588838863323478868951259656641628941839629297012577303176393588240292150413717000707310511456551680935805829208423208550319079442848841919345573847950527819784864593113052604541858381606846566074475541281744681494384395402567691984977934505401757261085288088071141434963558449552621350730743388500334632991691998764227517300003223506136445618121089763026995623435148904380741280243519045397098934298480065896099698585906826316435842749009102937100835515971348082807333161448907035692196689362949368828196753117840450449827956402945743437382310310511915425850101807880289670852204154046095145883673483346398547877496992391544066649712691004217691241331620567648537374549119394967830414674555002605160070596132533705649147784299329780868612566583629902430172374448361628094846501950432863049257525928450053332258939144145715632928889749270332330046367916078825290059428553117451725127237874890422696312573496849082013641229759283391770669721815709531774094450144525692560649480747810407872693611566371207050165695802434767649884054970275258395586160906095414037674880791553650790978649679594073129242243230082094861514107380237465103609727323033279163242322074543001802900485169820576038142913631485329137766662954970802901032100847938067215634587159828787489489990134574071768138024811828921269064595819359190070802788748924432553913803447339034255426382969112903089116949567608575291080927095214349722091124951664060973439715488557730445715396279283934195793111300938031784004307012721794770697817225489560807520580608316210088071684446149859494205076399896152580676684823741676315105194123452501194930580080830477506372997631527699315899005788358829500420344821397505035891884354326479896627737392367095255130306665010888882221638889951993040869915317376822231930504199904372990856911078982151664787874537938627061339841003234586055076688713399026870207317740794870094254464326903525101481052103859652485354964519255658872168473083489390243676300002463676733625126114387374883616317172331684854651941810388432665712947551784118319538535752558595839890461905244632077913219199501800590427117581898108815266354551952672592131237860603932719334005933568269226110127146441405822735988164345857290131976197113209621415563204732294425705195363067938298459736586397524314777218586466864564891239887691568414702317179945451466615241315312683438348222691690206579502097654103703917911068710048858106585208365227767137544129817108335110588095293094565872911721826412211474853254984909802220797661142337857684688138822962944397101505030738973512880311750116323249674987951459411350121288880343333251158182933739282241323066153003664645707330598310656880039930892346162528328459870270722716901728252556962792269417195827793307213395630913628124079145962698952294049203670007736215557712324431830236144536496096209702032561193668004648143261202553233410592527281892234609462078226677912808480365425240818608278987876368915538047775524146603955687137301311633055625471429572668062380456436560930604946334488491288119221752812517195309643335482198177308698941488168540800036551475778709681642352934939190407433360380182148180653878932051379021630864040933449332818553890982609614702758189120761749880362970046532448565681444286130903652452607946044641224639507325114304787998574166925916951886623945415559914631581292582564400596201645933134120452431376451511107290034631661673176072295577846131918345819012319975388508797542183212621392134799249029183278998689303202106816629242768873145515133105171004999992737243382871780301329264373533957198611597451186766800234455357519554465484265372368775076382301918417541709104116097828336512568453718278548838468834302811569751241166183764007874905964852550913243627790109935107719142954276272287812657040591275742015816790363443007767142045387093684919903988112095597474322136717947219920008975214017512980762781569746192029257385319614160834155787831159917751897692431218970078701194510692358180261190529248280938139770218088616195227011450494584244912660693116590588309370674721236530876286244657431067578817296333678765619451015652468893545039391358398719419382391897166730281089045855543220282484369785221548976388002056046549974219079533908600345026368883872281263655668085676908174275074649351355335586627683323793132254490205393550869326216392107194998015353507161790724985611319745175712562567280699798963445839378914843089544569866045112370930722456227531710931140365989496252640101896552042261741080969119017820248015642679017881696838567500225638204869555881812236467924533245475963396109331036205436927516283858904365913489607706208949031472928013671857582722721272778521178316881931161647890603969586320305468198775104004938965377919496582264423379388921186277153905549575793883970034452927679092447600442332265048985958322675268444462181646804327024730925807500778860793587196247003986746663090204589438760692108417516443210870470826505190385963540002547392868533967377841869925296968649638387114213527591093136048834794894089562875143631406795594348883841734180586367647214944063270044316251489583098878744864848862403665444476789505484063521916530327637993334667432695578013517030945905919003448699453085013947702640908199560859587029954450006164100719964828200343119117919578074198609984476829957234115077685871875304088422610244569939687364088085793836876193388192825131028786552323824252599776660903808040139808458427138374757838107106379337697066094524876301500502077083367464900110895575699758428878607977008477122009763301870189304580825053437190220907658161658962633512764930237360214966900521614023604656368823687693468764738349417767794575730844285774101611979101321996196687920833927173421392325682843718742580318256660327737473573074947311688885292072808071552818637655069164338574616385249734735979387044849569214086502485597233429662796158042709249836843611117837887401411527148631641373994796736490504323389773555039348013425571827887528101110066705705673604858332468531576100075001127485574248528210605656285194056318632275845775600026882378491618488413590819130774412655944544894633639692407509431248089517478347708320056687803239297626915798715428213156463454996023551199794887390828702463659196922523153782310050389511903797778970362878802727894561667769663182755906521463354507422973991721070430925674492807312714042832990641044895508976227918194176253582307496286335644893994425043060060840730193491034188599239671653064399316080508082593675646914513667160021126967039455323627232628717086093426200861345856352958204048254383358972609045210134362784590144439141819792292718882411758515015113288581018759563663886525847035488401703188245588104545176285242544557497226153747298042226253478856130350353098933283500770475813370066695045785764992492600436913617092304847507630179972292125692894470505871999100444617559292053711649675578446716127886077071756579641697562029059640083842705851494359290385450572636933654196388218488886421626594290994854443552869297754525185297361385650622176081755142788230999698647497252763444222624478601564838979506480663383715196658409958887068567369516996391207782285193421530534593243110031915418150525491474080218560089405034248937771814038830039337309077934964807816335575010234110854182990033289935224059479927733087433004253127977565964099520870279404515961268652423635162630429920435002395260961761617747810042153629138314699099952625853493760025237862612641372712497934641422242034760039623266397337493329777259858474105015325829103704247660922921813074074635185937181007025097528444912869891060725596750735740392309635959327776400846858972070081166502951776791558467419271579234339950708780077130923439649566875215203006364318417126488075208826548091273998816274158375835227515639547675171822379390801885279239067484528303438810253357042083499100794042059921492237134896240266559130959202022204019208331330336171202218975187506542450573711548143338777513459213375927720704413489999272350148916257343244683412819958560787766201017818674612319696030566066621462062903476876980837725640595216564520759530082877736323575577613724706463625007214773044995075225191503857493106187182662072586584692657282940816747558000313981904235713533389063346356545160105553220304735104743392386981580393866473061073968488765818242957123907224630812215787065121463115602171064794609339477067216819119767846726118250892394381919239429542839430389588534475725167081183204587909109030798004176304992719599307905953794138982789421970339481105529526918514089900181024798524012422139789328582478746176872111815621628226111322843066910851979670122020878305707058238575934582892944902053917734176005987464813960306915889832735218842385099615602669552910487266348450375116832370764817540564521785030165183244320024152261723709384476596224177246436708788309665571635427335269818962049650159723059603777020161050608647644296192274419415852158120971451223169867184686057049694818303228566246064199106985606124701549979234003648100844472621713272094453711734735933721559874237363128526120117485948134624569060434728577661130071289876706922185452456397393760326011429985780805749031788593329534665089370411236482094424451752569824734960063379539438629403542210896379081301019898137776454483360092138381377542199746964925218100532922261608085727478213780712778613104178327918969867921943124405830742659084762674084160517995123304634636285600613311312871678365381863061511401167711880661656165902257898407560570630159975882861772821217232531152759630523428833622727656822848203760225384189415698971216409867029632724120185400688914598119268993313129872970456553558232669427735159210027776786690408060959967945603737838582599692499491158585094535532092181533141686525608570963339637619709509429840201548667982553553419189047557150550907087584208664363461909480672922725659544870326983433808715173810231793150802826407591661074598389867032545599701514445454016691862631835602318801957917874727333136772227250522181046697062566082011506582566794510440663749202857682868573958872481309841477867994644987735781470811915443967226007295456384854159876164711449632258643808316217280958681680991040452368993752295813738348021943829444705608060648533447274152795546162008900216166014901812406053357695934458243780245048155635433741700926292175839717394457743215184256366597580240157449572353539249710903099745605314052487674361019782593025002830913571744269700665720206131316151670743580819772967816249551421150138170477346701038370574249665654594713592551004129496264511242413369062733251007065609866788160665532947538186049090751364645875703135610574028463626029323825370827375969290109845155853253735105774733192514934096724451253208296716676281078318526860097683854942950749551991011358453880020759972411675642519662614821501050662897486924927854180930826297560316212136928982186177658506544207949996127111853097567242251929562168513532306238597973774805936341822956910541487377805298609748160099965631041066214357982926727395637145123788989446437146141983785934924180959424503297815125751875721712745884662955176862822190286708340681930699568742038670692226586185396986443426473945221659491020049754457651855584014439135947398109125618759616529304590761205898952365192839770206825591130975924755103315990873640621683360993756675399314975215989864556132441566857926476065010533203651885987329097072877485072692031744717473141915027692333201536037660184318619289706825416762126242077557874236188535135859270839505684054731714416898374283305647976810668170805097063549315894368411257946216699792245637753381063718176926365602819646690117494025486901757683920126459504963019617954781578348397437222967918693492360984929067979202009592208889940905230336795723919772094357536624669301092230287966684506710370340605735877968796174559547949275536809929800533638374902898216439020135366884978697715619334303328564039609785127390891864365488483471653603724552868331660714897314302733187677420667470085357268383210515246846334101581795773054161862237015365605252947399619184581359117931181629356373296219660449749263070413205361122518128802811997140328941864886123768370454530705286863026434261419740614376322467056058694960333569883138550345500002426206666895967776727965396828866799676455549778834544830322266681444765293326954533330154895468074424176891565003789855023340081818620817775129413089913258907216960980854296658962712813489248137014171973786045820504730055506849398603331688437564644641340620012942132093254511903190856615913099558022503536936186260742497378217227222711435704117810257211020680238993496524548213953223658753635159134176422034422094610276515549279797104114654087500673523067242937207455762130653754886406085434160316682520702464162244158500645883452067204336101683065135501181179279942255440698469041159284029101141731788630072285749283807178993936317928561607051980587991164370071774540275101804249620188778388780996661663023592635778806984097613436214296704149804047382875278904727996488566155614413126502270038492210109482660812637982433216373987025762399937188338223353174886602490094983734458520185422479895185404572419369188172382071670057036162069813685586853689149631397654512547444802551596221205410871588509973710894844111441198661190029100907051899002439079716257491332264186528804023734355868766890148908555810146511505278952480778060565260382527087962346980120366689613871585418191201618545235343968267387870810947576340472358324941310388816870429258193975241169054924690485919162453742591280695228401936016516012414150038596598248009276000737118249222170396994502013613460330135358083737970018871266936141315863375496455095663917314983388431692603025118703309121837424099801763317593776101412733218851855553104778959419902932136625126543659062186558195985520270390124567999448549766265801494204833876324121495999123504451622314796200846324868764852284585184953219698492915442115669484451815357359511883582758022088428098833711825445092868700519307746168114693137562749418969717207061621552009739691070284538493038619541474124940696128661867954326654003826879829758769539573427232632494652839867313892018074066671428305452125992563802451775709638913290306117102615245829087567242947922009918774905089663589440875455096045760434243708994986409204363827299730367326134508453603033562319299516067820094510435584815110305095343651078656248990218505343631349030862591086866049724946264113619472264730749686220309211788224232301730439610084804445906819103629215424062534674948630240662047185981085277773259260352841450614200295517471715936420061755843393792168071920112521054638539136243035042225092545480950136715099902630686230969441038977882778046490767146925445089068602075249682027578630122062341127396678392296814033744717641013209945232729036188015169701524940792250515697317440157056425045145005655251892013212739490741572647784441032348895893660500773919653861245663343190380375871406857415071662119513723737370488447581279197481376586402019300437426660643994556091688454986993350073392976173153662876326353778956935222081966747423575694755319584659599082195708667640838456574980897705724633989322472629892474523467546050678970927242887578678638892980093469348761054500800811884513215337113195227817986443838609731145911303644833166679448393253959237430707770926822866632988809154053401110562250905044339443867636460655078700565865944018673507962664183967036659992883327700692360519944914976087432668062146177348809202927321323342479338830556683008030318235813726904549462957445834379668496474450198274326524591859185175855201178874962066399438578758754392034108111017957116616444786039931964571994462911822953167794917208761224740817134202327438109113239858466533255894576491509323022794417391810950875818686384760833401013811160279609528788127753188979621243950718343701478623994822464974123212681174043882046126093066947580409972587291470953332854929339639911900493456300459470278056737881989188872021078739021164520999056722001996936686279151816181316114745512049354402280128945601757756788754974614986136774628366165194864220423253865368616785061374403551608886671484932777434097496728057610045966142405520930974718390662711575117492015436297195678535948194269160850551495219840186213919686376980243530490910950055008868252994965656581816263205925318886316901493325935944158678229143906225515947993890570766623056433590550616600161597358822446696815105746685713388915123406880587893611179521252576272125672293169703315542022147332736424005275683281583498192615791607112926670304912316093915633262077149712625790313585332043212873370074772087108116209594287068274181101380997461080705109915844844901216788856214585804204989206077718134327027133263326838986640950420547046966416415226561691017710502153940557269461539012016809947393227761956514418164629875869125254616887748079504296701339619116858734737216838387636838945108542492835272905735089459534809653121046840722223279590708315806921074276043072635994942406645966301506694674900999814382173190562796198569974367789010282521817343607189681392772831058685307800754132144121946417950514702170896777055231559062748055893124965546871698237527418109393357567428423113583518782307450267290292298646054620027615248357743473273551706375819381158480902314047723503340218210779361783439235968962585639347160166123340479532468314119713670027575297587778668664861766131901159618641450675850025939713180618563230351913743843062823405820830780941987390427931497486318765894043066407432087814194711407591316807284288383949399938526481958649260595993721002213515693226501190027964016737919799879257702116794354078332604683580600156264522845104225212995233010163079368613533772489816739928852874984382982146478600739086664670662433967098332246242832450276623286629030045324512353323150733195509745111235375674432771507476204951252820029314162431005948063369086357796686596440094784743520615889035291073661334960855533159020895952199283172270481975070021122830356799225349298168715107193409956005447879804354551768019262124190251002413869828841608387135395366867137181929393255605366417595816925988923864212351708077365624087120174951859333068007958033024580212502197404149909899326963781038538265566115058549369295471518080512837015059072488197885334572949741053656896741694671310501077229119878934602970189963595725633214223757986658701642658533081256683970760520659396240980439281787183194976994904297383727769718812730290113186414190509922527506368531360951805893981849461985898880493495031442983991552379751514040967240431123570986186120669928940497154974935197821964772534868142061381747674537228089572134868739522329852735311558625379504240413877047315672359668892023306023277154827677905136010527340821244067121232960246176127696714683518619361812806085265361619328233583102086925750684813994242060058119020790461747995794256193774856370209077890043470775190344911110408346751165624813417847016642834919605109689227965897839587639712164342622049563853946951829111749987178950887608538649742016457688652932634850205281430379396840943884460285098835102675574899411181434093120082781435350916039513579912227826547824770183083734381697675543663793746202632223005152587560129324506086031746513723744370256600201434188163919789640082957420105101742494937659525699967488919739897711023034539934527693155907405487214013743639841020910502789975883521708501883042830238568483495030327833553105210090296633169119980030927374484322888146499969949979529879425867415228020741436204395994025893458744875602714490495054835173314087102542885950208442981768679011373254562273724227218095620848096690735585604513390402189793803403332205105940818630205890979472412759079455641196319332985222315499700631670092666684223770275302447917290788519954117894221787108143881452115782024287904642794442365078560477161472270989611103649872663474651005018276167988060019454499409234591221227684968237259533489568340575054001722710376513765809702607113464495248752060856592492565521819337985686089721184198588473743426320151129278601843632528889289001427166265649585972182715954004981822286861820461981981177456957258315785468752950487419847430137014693099214628035939760534670349231561138568789510583716704505944184714904282838506658364422805931222791273942521687955863327028095954831199330178949784116282766207777980154719428839967882309146308644422320496092718606261530739157603686577910170365391205906897980820821542116119180359414026445215521905159641478932212609896814965145013568870409124541985049511171974439699619626586311969326419228980018054614376751028587438818794940885336673598302377751638652289267570618183907960669506630028187832691069222036955618464539695620394151187410792382107405309473355339931324282674043958023887313100619050165385106460454304019999400977740512172438307606473664415393807743749210989800169200762393251367692900941275005371542532551558659292598152829751710687973950459944289463354887205643998311931803969760968927059575475514006865459451982075344287654077532755184199820206379676342740716948960203886181558790608976718210381042174485735035978644825261327593817476262730026609971359599031577782223904187046073394474221545546935400522272610529587653241622542120665111240556282698783828276881049460086406200684056639713818087551619050191265993688725116828028188443252653519815092437134500760789525428149946888684407785138903897569121179278376790235703324325404120927483423839829564509979934707960487513535013684507628032281057435389040333542931751128657743398036887435950178359368924488394656777320022664087971695128839355108450263535210921765564663282532751125618821356850350757835000550889783371591611810251862142632349927060120323706801702255144171846676632645429628238812184474222676734239739435711445202278026715211467842449281543837023423056253625115550651219850048289723265307450053259552726230368959722406650927494897807618226482068758729125375666053514503400633704225889589094151532007816885268354080026736718912539071905872454444257445969562088376919897581065934496184783267985020820322808863450148421253714482290476910620480615639297039269413802300281279230564523827035576926399987423112462826285419793829332130389441846330805311890028442854350246058024969797669498265218238554405453105767241500911758550536894815255077253410135796183505296682779660072179007225100146936256422082611288290545859390574779072986386043154814754418518933460641019364102865457750878385848771789161747507976527427701303651033763663716364073959630590988938153058982657118481518011563522443263485433104311663210246055897828236208266643658788352035597054898751368515076824851255461359386018406290570017115596828845166326527772322955430974596160850860430363890681394356220312975219908951885682586874821327182119698037393495008650857271601479401793773464876141699213410264331658660360419961884076232763441674459534791748445764009647031365599715215169834137007990739962663396830086382527290076703002327656148765558646251149323519070648834280005709495259490856940337730516575349137533964712607641795695291618314514481229929810039105996387574929917937768020495781716399957702647869843906239607807165759369210473403639428129067300853481943498954925454698333070653688585640756035482085377555666437112917640166166833171944598959483787427950603138464392499140400411597049326464745615981774511766272369631909258290315440195950487213521734325623501654554089903108765196729484364557213106105263283587131644625713089933656387740912873775718015027297576920594225471398962216221965407685400903177477675342693128303287896223509770646757555887852873378855422223199002712421284086792649629774868965523100918323271095727123501548940639885770979456955112015820987836510223107864001131997670231604362035922733480360296147184770936447283585035842661116806886094610772767961345268059964074234228678620696460612961587549113860014830402265760110571575256236149862329990374912396771845992207777681886762754198096230444886198968822529752015104254962646848522432369642928743827252252272415848830289539722633847795074885199162329842033229583419802554536744693271685069640447289521531055197297997582466411550493169245005603634286753569681434555807244750270871482323984648573645956291821775089505140889035955664639132912122419816503739959332753234060172389744992125536199343535909117568818073649894443515769129884035296287816466771504117746538663563714405713751459424566194338451508640478251309513477672743282616324051486494853488789194868726941659961967085728439218928504592291628218737613986014995538264862478843434177592867204045189711085327538809792635297755129111024544440265874815686994279542394137123028331148899803182960785527665064872537220272085830715720138168538444025339377666693192881908069957586512367386974671188747000471359082668052899827807070783451099774788904172832177401234077572398886618157465180922832159502587493697743333468993947913976316194738116269086816073178301126059184481166983015649350497145660066068696672723210557438152989869745844367604894417695405704625284752902605175105743086888241521928623239467143259787621150199791250523996321394210022075155046710150530034389132988669446180630526999325553421587126182526518198121269299726957299586307495990545877211662107931012185800354984580226065687305822297829745702804303101464067616553281267903628664357172354847749110592889608796722260640900779620478970084407529078400977418775813196921627837108131873663481303839879825782806953910952336196066716682561732936398363799033179365070243147589032426885214379606919933189483948243875892286419350963851924757833944405214361960760117926692805106953319705028548463112332423272968872000056758399835249701618521234870696031669195719437181791652462735828692565623382362141650871119366252512378996496589315762389375020550243756414962735188087679973321325306367055060334868356978802610154865657771683532110038723884017861036489796514201489471060889069073176869910375918692652066528492749398643914838324943360015548642249878263608197510208397750332978018029118172304033553972490090577445239999060670484166602289913781754072928846961913800439329891411141853736913046895753765620910032655505174602476051225641757731158916897222997839203979546970827340743818995383596035041339892749427287715798922231333660289647171636467162874450698305018625706982714442307676983256945312911627288449794042800811647014108536825035619934494747813167269169238967458943530966156709546269274131802297883429008882597001785158404312607053783324594262722049113312786675655099508950431087237239172827511111931699003465006778641061660169045420159324796786680139530484033406121805026201618993369777001591663595998722503061982692206645160630588791352866836116936302798097277985365168261409531625650085394387162682248614999433553663302843167844618315500803358865967080957750872807116589019116926736670859258994274595959351370535893761875092164403339142150097340840335901473229447861255961325781212245249904761949078780178596126876870424125572827986774550951652690129260918664438047088158208362641400955708710499488190069177228100896114020043090945945082213562679664857317890849332256040849441343257823910293888663852466904187227543250831856182676740693617060484533953163665383115308853964702660830494001398423440712545144881902350094644166804490497906146539126357946175475402295990605323795591951973578997391943582307244887285874374464202363047434072569245692335212320704611604871191641956631163165556565465936116443564238609094694522677807890510296474170343563552994582710577516662382982952455347921290440323461593228502213341540825273037922959860990549152894692955894458444996308302947000623830352409282573050549485654100989548416496072837206406228879367437059134775545210868291755844984896958241885065697686035038076345763370054284562824736946341598478239767520510986961862178916708431052143880103490847847488911373719745849363445000852322250847522170492361213824063991106646996186533471205715411775006837829833715896318883889412272518882606250683406965075606972320174441099684070531463751149186143218140073187916954901014173436930681560189723509385654807173071562464286833682913702245033663339641067685999220738708824909198933742879554894544561693116182587136202579471101003704869211598076105487169025673330534323148793608840203199223107239933601317149135538975391575212452421521920188508056184746100956870932226698327382550944630969975911287851012281657321213999636607915714528115706064996368036755356014816288723552568525411789501466739570696021910522212182972302121336438953246481938317354898006846913825501952131623282991223137005883015670407329191200641947157472735353008245151121154658887465330897185349788088955863973551100798373668927515041875920798188454329007103454672062223465044518239360405074900809351394505685830942036982860985422380597839502166859782782497149398436818192126815018645665656526786545674302797519111788847597872678519242172748316970087279051537503819973535575182632177396775524763172166112001989976957096805233823855499610310083594217032912726754878923140726248575476277168480206993093621524974975372162696596050558828610017159916769248318077501545431121247003914863810401587642546092914246147057684673690688976861645322740477489234253201242259746667517578439361979161315023489717349741278614462020394807569259847689205720775433570386646699279642348354416779821704232096154181387063201835546856980144634108180907773105798876165574737517599445594841765920621123764867528825274997504653858676319510961813364110365797329505372686187205405807923337009247201944371469331631076283971789225517468478984592025414143036042332902076929838243785457467483588092083059483464877972185222022160453693823942587592832576718915994622294779060768531322544435692828827721612777052126067121355450853496376469051048476537064355595732931809020077975688978438435382227866534790343391742456932862998640605798433662081160724025932936189314538304244246036683256998603284987561336308182700583546818688177740101682486063377410839394288526430968381696223855046531934018113085916539516746785433174946897749122375179790650079020253754174473742569628981051477025199914420530458171170673158184566416970173790692038229805288336359176792567173830928742689560682841799170786693515483171630921926784439146045232960504410950770706683835893369004730298509336123853278690222771941444397985179959236285634700139750285373585987641757434407950936165234779445379235253729888680644493116328601258929794812544494454515422001306695551180077242677026942808756398832232300702946114766768157136578876959033940075246436922566891015239819523680402735730580217299617030032921009474081472905316896594254591575794983817197841639340000381115055227783630440467657606592580191515162135742398719721224273296546428643003173912526518215760953972508212936258129040990534596084639191336607200784198155645401218716803670078246175026986735289880751392150479031697750583172225196655387481527414546028862392553830239797733773147172936437630542748461166192470114719347356617624534166227989646654143267558212648636663262827031186449253528342663721069285130339704537825065083983407181262042261489127631047227985881862858469935552555919467192651881450114445931669905123989678259480267345174587250366316781625026311000454459603632882910161622136336668050538191888363576828260633853795493181629592397349147800718473267865802604175091770073913671302943205916365435608059046578216203400345169401221404247684396573225523646167617935781958017086274183829738655048307603093505862946567139486180259584586626315903404907191084502832702453071973337081276924033292665631458795142484550962688498367559703655366495821562933193338204282756833691998423254912580100988259145656966771298133853535765619505023584302317401449512188533280720056668175819737852763550111579581656619002724346549862776027535084814050723624730897264427186683951721296350768253336613701059463667543866630598538778350216282773997309129581496842476868992016144062010068334209891067360854150227582125569290771319922683808228588984140003473002079906302689842545478403228064157608956750878409355098191885268193297202253976223401567910707308400115659231430145139868900578789657013798254124717852467838226445254445209233207843159229066675609794877618442253724779589501206564017820390856080200219154630387182900434381475937886206365533710564862854678028282135665958030516310733953190444326021091549729622354860495442100941507267838242817369428867350386838645045040069549540682836883837495736434801819967445688181698485462708536800528212762053025022792413452526173265911629283772071768446782982888261786246978989036830835720675575698230815813286338863250285232119082792540307631548060204664824012505552073281638615580710150344372238009010767660519002666640129804464670204108182555668234857720822595743015209022852135010308990891417976331593879327433628238242383753269221810012462581389922128510482433887063228714501437785118655582169978409268514918258596703456143914754668831221886298018778241687178076480576048634837826974692139834663042817107851532423352109803177987511078506345957717083569180369008266199894673818676641100749984160077918187177090931079422300515795197637006946691806694955878284528390805958428780643615266758908277970366263289929942167063793376109074774819752329785029634163622495669523088701536656933394392873511387118400213202271848626108605156860034089384934727449483838035271251087306334852131202467490990174855188601218751551079428234913468287106230526715319118234587455808705251593691498673409276745974010953484852216353967410552915660399554616907312104531279128542257448663085815996179099836007909852634755894032574572174924859422926885802924792683567943167334367460268324225460223091521041770009119888029205984085408721640460576272732633849981781326813029725046940629555594254866440773792194902722059355625857358854215638311215871932761565553172249022029736451395602846018148930453505312063403264195282601730552496488239219779746196301871458740345236952978062928536935571037697239850880346639837043187237809533058721868250566319954725652660252320476190995347941201975958224495153902314271006304338872647456213606654325888078620490710112641148677378450394638976504225579587643589845083499784407930798303732912670953804480251223104434527869981737937096771547461243588649920268466366916763710336742182157602247263033537279474775044921847894548067455911617096236468500640466682483362573679086211402714202839978573050798586837854941704694518590867184117306189546397425310717220606010810732146622961277459430799266687267484566916114564627464377318661143255323035509847242519903442929318400496877068029373266569799348029359732510573188341524243998684557589303232244951761585163432897087129215044509133618035571489691954018221421102175298806824677596401337388441327518101485098494249037317556196315418228332001673542076294143449719676547585857598975108514056217773237586696589458116122807952694848449909464871817399401699679331877178640311291823300971080197980551543467895822790773069621037817428692015349337519520635859353605534122803431991345729667479902928013014673852148235264483202905146464793662021252115958342917020092251068004246578139364406027847171658419099150819706450102503046522196346163815163198893914320911181836583888283415652235676428240622277196643398515116714575348463428939644381857148533972286675387258433131640861172541576919648443730976397845941300494331166405240552457981512107793251897608737843319583319446473583367738467755050856416053437498159768551111117963449216099488861438472024624987464850662520983457266870488521515384309313745523949845864708055375615780101169557701252428442028166229117635025397838851590699989638677122277443704284484307362622791804397266858893359145998083331044147056375637116006843795709731383899180141568727852407709942765955571345427436435717942467912649138839104327655902659125156966146424356597091984903095198232652700987317030120990414595377100914005288912576228819054792657736181468340784049870596479459281373298574358391626578185766126066177023163454342818406790070096382724222409622980999357824929222766861356388994935229697889148147102610953086394977405638498096436854921977944952166213751656763260917254056381774048249563709433537181834852381365667042892699782242527634598489461811022720385759144026723194154137099752180948459761399824930142649106377537998519321160832942044667248508270137568202031310335223273425674275837578547168136954667286592018063863936900438126791610296760609663801553146218976617105020831016809179748332107437007214708487346704472682164528036342141701312816542384735617124399091443045197075320962343682070145973111630446642915609183310439947409485653309335059841211357861001521250346935415479631124940072276443368827218562577693339443700048330051397391669626007108011965254044602813227885320443282529648658273782593079329755520614489818086270389009978768592445131404902947664594336452700291156890049458628918270570537340906713341062115014745182614432423512797441567869365914246641848476211433302186304300205842133489163944471385870738395345090268473658717689339176181870945456116858526645828240250911913583349041286656890497217862601229090781335830087218584237444658373908237979252784120324277493232502186047970228868584549115962062623540032439642509310895596566292072692616222046041422016020576204458670167630777720959482437998505589387973053111320651157685275937971792743065754127685533087454882800306184313068734850324944137710934850145771522201004312048616990570297403562287863607873502283651501466928791312743001181989648049724906552020233785812907640935421629106213053590344137615001311218959128409587501945895889035458642464148341042651540559290292733913433668492589023269965797301663690806656255677623199720462315097784856175397197056541434347889575825337400889025341213291270598773361074445211926159164164757975999656528890839461299107133361300613526404839831410925544794568456730826326646474223787044850620407265560576090861826346943054932915555850526482408465018656057752840212094543137691438993781726182550282906346210061867882938079574958401382686560962448175062420151670487674429716159562625555062184387402457552114780140064523239281642707676637583275676597497276971077354762997623999427600548684814023050095646416936817529262926051788036673439963951919632179747275876961384672560542109901194680931655495452393298437569309187209394014468926529284450649979723036443488889811098132329875888013717109043129214057789772823719165161973902186210895139538442916535998472966917767367190430316196662653294480213092702518362951117871468073528049086556418657624427832630147843048612671878223406918883456434521638874142356376581787242952311894080072811535728462979761372198916459670477018765732582852048850629988029315922941930561082018906967241848376091788577914964054682076907973188807106538585481860325719846480750870053304211069645657289571722536441022611688161638426090613266051571418950736107895859811037599285046003009731707025112239258519623754713961525158045977363520949160172688426463549435090348933006613275438822771128200899350428502562480607967934342901339042481510876233824488299117598354540134575481860867172184280573787562944112628497340642952935178374199377799120974409054809650849115761295755004312679357659067878343458312596548738292570577968795143774766209503718922384232435537232242775666367613412687886416376412809560314313927306608214231050605906929778431327274315098899462200536561363364692077791043815427163762425929054651865858669124636845815586842090725245437545063151642072977543047431634284328705562629364750898494619112199899016225862000283948877029567098419141222699952103741418620037046010376827877454290818694605261354503404419061059848161701736984609878812556481405355990915173451521507085375434913245589671843597563878221175413836215165644925833709560252943523584927002810543591407352608606545823589472512811582187211301589699270840036306382453723686550072167000175998969250912026561139617824488876822732479876249147665514305223986341756784760213667714640037828698438802200795583463508583366592983473729566865131924404335459647751520727447083785190306871290968041246564806484322826536263857619103803930919878854022902980211406945381237461404039111077738980279452506668106313392419759390104599060076483636013349923983971989794183367061858705801731137862770543230023060660662908425700935444486996006900865491521575041149046809453487134038531989208489410072690010210158391491330321287960220931437530531997019937804247525258713453001733644495582213620255357464094227422732019696341915674073817942687050258126708500187575530286446144382876090365288614229859030740667430715685327680305267260033601558051951331884665507180146696409133309680978205845845824363472689383481573924494936732849301961196784817395379053964866825628403447424909963902809434240600006007773038185513795314533069867958506651370169401684447650702774924395436999047519575661798474970080472252686601038966096552867422862750497989860989207614412901542220483841442873208122350248690033490402311251501006886245038062125445771284376960926262710564003413809398164442998688426974174951077679672138625661896526657809300874200949805133656833225085828079133446437275651924845187757862940145144261403455568710910848252891529140859705373893478300776072150854863555565805961712880079716528145517028551613668601675017228099039744824230194770096681525080169470152789012801580216923782025132190430180395076257433421882528210331254464061968304317256553922192298824340231605071547120584721302888613989207784497168862022848987444444185508168183656805212596090592770775394351866640636520348678371666414796544449846414233200527059373204603082108522047056291484729952391953571214370815581238414167032438297773406090104961191898370367243967785805150793907249019409414677917629724406262662331865324408322892179852061716890615602513051116326672708376994290904824865534975244643947522936810059463577288503519312009703970039199941688419302963394113381255161741026729274842830832984534207502193926343355866653828950942976134220885517695998972151985884259930702297064112070073061331974675241212103520457765434990791690897685845940065906433737969437812342806105470334633835199683742200083005771001859694375353656661038519577829089959250279225453340920679760460801045059810174966296814330960684110235480054802343286380291179976574761807409164914787216718613593429783577108780341967264689247438524266220361966971752715838420526572993775092415960694273507803122325389587483332115173814943174618280891399745259586323329036834217096392447072141135189677239657566306721802485044388363801130490571074907103575948123972130424754021051376481958142613464204941121707209924497819602884079405540390074933397355894617280377200665502011176728343300042920412619365767325644283816966641280049824190889725217000164732734763688112437954359519855982383530457569258216448419328992775541477927493762329774331813728264943942737391967888195328711675106869990636082744457634382859947419176241635899267266446608042475918866166164631587953161043768358606588814571798571227007939163753519977525801702553613381596491968720290528851059269658949178337403993364986502697438732081420762472995579332349732141680199065088696224965307440367482830089391276811086854088632658528894336605786592444895882089698244620235899978642649421383919782090137732646634328122518292721202981602572003059515467376622870064866633754173215833033155261468285606984453003995436477976430243707337360339677568709189204039315538206744158170867562436290497295346200710131850076368702447388280557224563890161150432171819497189713083437193414564886773472063931591104149108695472932135569736337580927586538062603542630591519686867959922983821189638630040790943486682629552202561871887162552519955137479772331983489223071542186172962919858850567908789059358576278280742365138579793588993304677894245463172000480576187686023878709774945439024929205051246906722926213259573691869343753015557220111127845528786615018627391577759659312893308895388241089808457260122204709540030594343294327653551241258388510778771613251963547435763524788429956914792575892349897747688223108745195532682406038068340278883934399841209188771555929838827479247422971569667533949766712125176868666913982431102960860735468479710841791299506438660912246291660348706466705167011984000746724457284562550916436766672196935197043654229130590911309784832173296139919438634687541745131574036420001099503252916396844648594438235615624238218788895766753127841566740519660138429687802302091741506121017887879554280253479804782238108134142919645577670069180983689636278347897269085313770163283295571888902375535340675553327898740201149267482140086983483730531520693975865688910440007787428729363399750968593346984795880198145550287482039434695239362351846655705480791945069259208967331075647169244264239579528364122566211671029774908161626698287146583489197508390500846177129805576299278478638242910714559810930935971321044838313076148595049161607983354485783688519206185089659016488690286392680756418324765100717005331234740754228949868967765030055759104989384110123822828951012024826754777974360595368665622803733928768426862855309932336911905802281545424601121618638946984949313965476915107257114801234048431879852737583285969866873450749795463289738401183999004002609745420369653601368402771349612719915656750336657725171166759890213372270385072063599707695935061373784082076375355663146241237852903140810083267076714865419671407716211506622121952394743902479448268564421866767480053315973822090404692201017003188777924357505458812914633245404874214559038035690539967882805758888637870560105667163941380226393570021013865693617946648572262469660630033145194110473711633946143546672172960811058125153146249094287469100965502183843038892234705869993045077138059345228816181153223604183052437488782724577659694172055009537825357716863828467385223057646692859784474343222398378003916830871952791658976603093684956327680769295124350071338173409780919596627336511590112779967664450193280914743132916056513190875571992183980136963057211929010884269472977928696032776341109137349255663502844676980931902962418025436475979395183597031161256686756037764618271066771994052782721896390890886655196909798324455688573960053005536687365715169083121878238756920446295341032436368087918313758935763727503864316616935536058214876064326387966651824957028313023453575520497002459249749278512004317231008848475043968274318576103061216502436070106079248194294992151785902078774203074859546992292011701057200906158589019706833976540298268176076652482030954456106578013234931358882752028616734796562535239899375198067807652253174687669531738560534501695832421783123864034445586168894888296691568367438586843393676763337694982718340236405283950679137531606978347984542456756800546615869959349062877067478652442078704911719814820526117229611914289347380043037649244412032060060475181326400016282698663584576178735345789218672643449041915332676939214121473767913950429783779269026411526558505885260356504422644942945435706000912028085659048772721492301612844607113746627138656419467865695210504737549488812137707086748708193500132582614950582205283720013262042376667399897548289443288048289027623155464262752047106943666044096896384818426781980262307133257256490985711544578848178648756343600548572968479618762029048282263706434457773321396564154380243311857514319087796000718885802643829944011218020474315491753961821708169964078704938352342891862073601056695398067371679479349365972501919905639572834776103005059690272795876789618242215658026170378985888954589860522536189270380148003014053482098190260929987196789732977963954091888932785920936951091286831620849546552750829350548897423290954061449317114692550892394892042260086162700280956578474497635704139321921680736219031605323953456913375545610738349221564245979653466724503152943348220734242462910319121792794238535131762293936010344937760409022830084515081218395548834116514513304454281239661199750631624082605806236038889400909189521278671215717927305995322122747303308271438270560206572724922718130543630753008282446736400842358330363571506592770022100267777008769115887016940101170996746022502569430627209564161314710585936386285122245383388542893366356940418616442220901596252078978267641693253265063894093704459286320482253221584377122659427538546272951509518283762589128347313767036438778273148551587846106172511327876744062717753839319423948819535218544279012404383592077845046400867608232093158837591943752746444145628806027541444121053308155313347291088579197894736475583517558097286615496305814637081571244037095164211163876637246267910018401878444970542952894097018338977528908970291987519411317312701333465558056478258976552801293009087509196926502508943166454960333270058340282620374032450296395025054959482531581718713896187466314156008685479802366822044057181420466793121625701901269926283515025092969431923786523665727614142980556353615166004659478095694762047955722809434661146575344408817709092036703027918282637454090931334958519663044900508074964647568051340343583729123223394526868876822592975927749276557304886107602852020754113447485712295552702970916292038449023472940142409796483739837782130196756572309204837984052944944039254659872459249092411717396576349907576513290460149050035952260458312811931109610959214030005497765854545602302268038795037970546520971129474575412374604231804616275262476322500096584024430772054492890507994132629578428086700878376492849636912446576349601714850989842399375462555598430099294383408302187525630997553114341064182827770299010478950612219060949095316882341742338876873339968279909800578205424915443143888804082644500813336688679023897633204884090544167524961796456223659239879292449336954251981142452835436595249630130089352430261534671918464179318117665684461802272895210255574202424892221917203649208091753975483801849416891132018236187159532500378544381641844384995031504616024957373715801109016356232274619837766930788109439348329901783288361250441301471405873656539787647639467100419226957749112194852382318355016937499416162971418355871327033657760832237530252633422310379541806881696573680412751977588053682898417248297759938195592652256483447107962243221566633784529659150397916049404189999080348898922829615013571670141125090077857697261434590308792576301393231619438320714159398703519464140637563785977163761507906071665250425992755320958801357783194541752634032134302263092790889522398830838280449750013193048504865297039887905482292853618850524804191863587176105926156487318661262845022894232601586740741077603948468384229119866519209014510340126008895341486795597065829785437165345759398234749749194343808864548829990353083428289769998001616684143379641912061892554541118794825841064284179885764576335659946960474619838845955046475279101560845387162367919306885719251825416690121276363766794672323778290409959910940362009456446188509167530811509177073756520498247784613649268329557937729975140309161363565205951856571669769058710536095999657363746600729321299601689388704180820192535262921476440248945114353787778883483479256145727832979347402542578123516877023926569607889963893631371106564738680996327964717181706677967823925890234100122630764250725499235098487270568430589605296344500947496156649390871117670989323802736304958095243220354555339005420382661842359252675191688739814792114009034882243032961165883208821515158261413606869913580770732045069428883254647014864397041544703634427473742120482388893902823959761041632477231134747442310665611767357116718719891302220885306333835829906180499724856893568107418913628582511005140811717329803459187476349416740318478400634699394665190478503302167884658657047684077241755046857224145162527775664338482429629180635810344104098593817929701198123239611533589165733092143948185194855731843230867703628145502856106870519325113296920624656499774541904037620557838388958533571969577234343793733244124786920212945153930444062558781654678869805821616693258183610605748080975836920143171854140037757843215364738728560758046398403774328772809238697051740103340149148397972187424128777126617222447182340691114293786140195178784535508536503472771020990394110128152140340335235780769031924571030607801120253605334348383193647377013533138106451051305475056748700914727056996550965711963248994466036995266894656126934959340963770848673503771622338518415129833679423360970304130871879611363357974952264627689235644095918575168165685550999604688656984841133946947445060380908242481269703766638634562412835945990702013579272102041026159321934059465896566815825820593701573162907742052307730885140217993426644884786198680950640426653314524986512767370289748649092405498355852271828062461042936264098687554295555598804030978131493588701538498235476072698319734861578220519783624095693759084854987559604841666691802167171895257109920386426729149849170981533851644926168708317142816375619251466922773421832506207101559052944981110370789390621723674694694531086999938971827501837469112140611946512455971408044956164247604080051362565177978432930550773495483071148305596804752751963858133189829585005750079397374696797432503267751193927865240416903947956103273255619007014455937786941600606885630524747603981602081568969050639320489603895966161097372172877672446004939890928154614759428223077709326374316791975247345378241673485632124531279422419444866371136334629106080253811603780680304486384438162056676098076977676918424519339983737420341018267751796290142759105368464167596738363989161507845414498115003162769767796951591002395886629717749197145031215350860229965344948062280405558918526439115307844380480903157730498138369226923863792391376813490105207397464764105224311433790650248136733580947027964600851512356959677570439053557687515451822614981148341768358598017513144093052770266885053146547175189988833674080576808049255461710970386399879080074970681783385166966627822613122890675364530298280248825169656685435644817386564188555185453619791798590987808355180594540487598983655167980235470483241122346426466912671984072019069944400786406341821327973417482856410865804893520031573577262326196887134662881838938899520576291628702115417267358135159039667787413516594502192972617890328791157480317223224274413705097173592088405152647016657826028975150023561740503081322363566207081847462469723386815726107125978033834450173507240260491796122530453981921508215768090522042006554065859748855377397991895201610529885144715420821727943769618457230849980362758387340183418177065311096489018411174467702568360070670874783511521767343787268499277506809442421979879353785125627882668223387731282458412514097233285100208503366695807756182563380371527296777731959276673845215999618725720742356041004096888200301772453902930227051839072875330462081769542166834828980168008038080351130605669292234476460489408081849964577552582514934365174882656029613255725613903130180010813281460189209313198220731172953601674491956775684683176761484414821872112478970198521048009787020774283502507616354872045369411453195870436602846809715075365311108038954420363103829203225718453533688777226114607669075564697896086421432754034754770337930043278693369920567760174966385941456039141297188173042653399680294257673006202950517421779068349330531579269151800018493217979113174054928459378698914464207411405077467526637596924957820586988770265203761642870200292486469825823811921051114142376460030994029979944678166577609859616840336005428623998858379344788968350264234109698813039365992567298275413911230525993412427092246727710423100268143680897694534174844989535404892625659656111554557663930523618044461321710729509991500635067774086359145227577521283652400064825179394779924433382649761795155986483359722154917091679351445130147101223497119248187138240820363132424808954977393847940301417006760164240544477989913101261469229873605468975833949972246662483316644421386492089254592597773675728886880043053289069557744113423143315323391882472204704559517871828264817708309018211789166142772599961167524202264132869583730118813486758453848245938725877486014924267509227187574335618536408183570428324919893616353053264931463717183647043892583670946260801427191177478726462241467181304674708511943585123984677010314801438460463580113992137179251036466598312488345734364216683379388248631527778508695276416405714194251997646740040547720657237357626350157900512611461950575385080293043235971571347136452122151048301516527639024293398140757496229024803651074095228559203309776444500948879541742058675501840741794963692339537536222033241277867066641468731702750352632040820327066035225337375449383439631922289177176234123111677366606092491753488733842620237175039541332355738354409029228416224020289249062706214112402448612645646238315805557781609715650696988766120812803905383932512324784343450146700226316158563393055141740691204665817545073697940017591814505719209657836098471005376946946374994653000357947956726572245773883752386894415655889154430392353277219981913501212654571083209521011714937484161268557763409131473466801148636673319390056431695836639335886587047971851520403735371628461766276811711110954195042154308127362860994487201630254211658440641167355576161452088096070093006878727022315391644138620710624679239994149751578304996490371364087725268316777776635909171987351989390020472860673441544160795633721087606499571717478147243295429884896979797925166413302815665309588614370400379407492289851527136715520860611660067718831264138838173805080299367247694501467631223432971664079784835775949953636836824274508396188015674316590516057351090977604134835617627240443930926375301586361500222085447347952009259471947638037295417877056964075565118093399188055079562129384485841940701476381855868345663565959652263520982034974228076682911954346881563995724857818093786015480056787379347924616191930393801180513055391194205712921312002420909945622617104831540887383502969693264541765754593619860149810415263637545434188230624402253131880279615890023969047206387232624602945478055786128442210404322470884297843989957649980369272188090854846401268725618869601853580302053389329774115529647730013974963521657768235880774417947524412337620692901424250776733051285635766494749965664130666426046638686125897350394086818790040425136697519795524573421549096556829440669904675823556646533852490174630089488879476117125459808325127794148424435138306675128722620701546423156961006889092206354019574619579845095670028817846935659222142934648319478498318954762874015984455069709822296701939523577059285286975912876334518320667501256126835974350782748113320948502664948250714257555255859181454449133221223334334554113407663629754590507839236250849486322567158051453563750306189168700979050430175646487194829033821825696154002063378931985281220062218037012170626299281041570041987206075391081985891999766032155473232128332401986720616488171550227537699543927582268982948655245597248747154923424541400002261071450407445830807048416479143918726352902988053046776224943539057865388282055813714909927242434189222737290812693672981380044606096798638182273937748604418801089194411006919471018711003688359674161290010303876782055570372190230924493983075157170279119105021987355980664025076986135079681784508406776846438435956154134239791510181790172331735469677109440736373237406091197205049616101405311925350750847280659662612323798443929869575003921148198385569341757837119762804401079276838423906471806220106790606265077282803821170566612023965841643640393460641925913197185314117084684180839394221902560254816271066333891863984436211210170405757295216681414317100819826042189251098240904304304888914171813323089739393599215538585688719647684802169049187541578178624990407351663310346696549005756414666996684888796650456403617818840856333580248378742876501744464648445739236091467420389809320237055542132838753663068585500180725406745120379342915319861097889564651211232042185432320119693170549183731253470537622295288201672912279842558959552894248227629773393961129423482071971982404829522060200254140381497055341174510988601241528514787508541015085632837184907180960313031539352536038722219442814741597587268403569072409106926248511717423624273067099384033548073319842832363026746936495460022109392163907724455692282135033562962021495718707140329052658429549722848639600195045429462512928371018353194734505538079202026956036510994857870500027150437669702552723257114948416538390258797485338692956146666319260819675026648308153096642728772812638397119304909710505884706449443598994145087925278431801357542839474439067398167786079592641884609152440657055335285673928977291034847794310966999506654881398778642235602386422320722530332685206975385561277519469617461495924702452836840074646715585512429547251265331551364751798698745455442615962384739343456652842920175179794184794124249034259168907231764272267176060876134319757278231104738127814390685045857665439071975815556575079794178893195134376705140624594866237064674289372461071894775521068812269197682308252681269143142739896500613467232195069424751595469583003343500677329117916104763328365798479974160944701543096484771687938542880222688886460212316569711481360963613967977727460132700962193522565505651740972133211017963392123004810828128411376632964079081902022723236064542811985424329531123979949784356890327304980600131316677600019478178948174221414146913070214551015636493437463531542754968381513610483494822126709075518124247634273997695417646698476265586353251029098273456040036096983630620601699358303686993890626089847096253922964128973936011640012668701843405946468647182067809339885877556128310506695857763977243180213979340193997262420324634967615014363815886980691457424610903599354118365809333302908261672113976181518217083300999241745856676944820260991869898399387809574548734433150136803275783371563151674077644245237758191749103698367863468692982583146360541027133200849640623879393474054719489259580329031631527483707544708791465503745833249896746980920104747503747516790856862519957256470861473187840725191441745166763115540599838018642721044708783652854788952467653236847585387921764800525182782393733817611009780216789726343802777308319319478919021607871421319104594882824936945865392554888601141199854771520990210627013436762027099358621954658570419138437974481317243056097826110761061495562760660098809693003562729434362987108073405453534850634237430753289320774265803788708651965810969672738110265374767807875908245675096247672147478885807197059744756708409418788842134675795256857247691052448002143961821692744535513727824922304246550183636740528406243643964956004935737777451673572537950829000565508274629628586235356403904663652087783392283903918725009538157068346951231829974685892270822934331718407364097539190518628194380873153758804550259623829270470307570936767502322931613159595100223836405205544417192107132512532358400784428559192800761410492891798100065903701538413567833659672454735969411576783661387662004211819333557918994647195548764241692593110359731814122603258906905394938233334586942994661917502744346126531196380219285752293612120437129966094946112210832840806397997599441035688163327867487860624745593846394699485766652098144608490524164278802785946260156213041070949767949484465070470872494476585834574574148552755682698687613904237614376758193795286410399018409620480784299038734875665566695786345970954438657950797761490851828722032653740715198344398948676026697457406092571841359904024423386712504971929890258686302873199854746360573809505038141871637611554087061206283225980450608783257866696054509605606675336154951386954493140153096044747913114788207239097550798543180029606204246407407144959034659437240606764619416219070325619213784657186174636710230676373647364776024678635753656542863187461313837824619721532869907774197839701327755020397142845741163552511492298335915039649085488104298953289880688665986737225448842980658030501917147108096606624040714295214337810992556261244369280975179044730190835434833210074197819896975650104663940548857467008212513610349921641279676677305454465750135520823120927478366681249894188336696179140906921158152450371196340317363845806922852334549384289003714248730057763099615075348825724858937959428546427773488239984531648028068303736723694349211020904493945693179823807236423941031743579341505021640595486004630017046524247359159357525126427014643313749113685920857994146120631308914435706470371732090765278861929078684868303410734294877741658880347401382832577949720517206614768872134926135096615012115263308134934155720834557471361856435864534676059813244903756374637919930424798843652969359176842415266477658856421813867083660312897814405403209475417478064480230732709989604362023099770322530361547667243568321466774152913395276843067837185979745528508989573594553074257398001056608087365401641941284096901273071903031085853792458015142463422353778556642510944897248542246859069282386418534188265245343437513097684349852295323491872741982743888739053707908266098652697597593077867406411222638601009545036521251123177246732811448174461582023585819480406128482335042163661267099354961575632485509072389540994341676528116281254478412760490589137926054996730570294799079392144563694127444402724006458309750311606916493238765698695059069046440246734440279591938158543038668883286578934457901796533585712028273596816034421690158517462215844257668096085378996429927827526137802882808319929027053785794531796912780093799313048812460854006699074282906531699611796403803649832258779503331949918119694216248046061051140323202440702920916452059892239424729971239768870540851477903151867091986528696640802290879938119213175476808982812670817271553162660180174777160340420376663091448291970827490583826881280736254158611396604929765359925495240687609124009166525284037715449299376645427970594957676150841439865407969527833472308374857529127224191293361995640412903221865848241147236314547097595071705746931378467648474829963320375256154915436577807634483923683059260517020974340529995726493491226619750992191820230494544726305316091184810905379345270672428461326763679829175126234495243029096113753360049706163101232573723437632955344021108576004061145707301279122629386603825837946165748988931028562925801039703106568714679421844014378473334675416375729337245142208451254427354760064420529695790372159891233030856865339432519710685171766580376760079846634294879630628393845435868558395069374449986483911005330878164746884783505925883234224846229846701695295873642343636126715495511462731533610711908911356929671896366232206223697513321794848652241522856105603420579144417552148372314219069935790724505757987615835419211826750870260547394453214970027740712102968378097152426143778969930564730241920686118311356056201523273081311704786556290521524241619715100119870538010032023205339009719323346476352313370571213857358045176393779480675793965474558104202853782891626041557068839870467512711626386680012078733770183223075255113482905129209741669061485826477665508384420521791569598454687325939894671931322010108458661135010935265048206394092178571156997198664365690054514933404351144088676216922250866003018553676415561160111672812570056808430024203864467832953533567744730915086941950190159976538063349686515820919923465152304848871978773605862405380320602091627486212952252781225600186160585503972225317420218451698726152072924892311365765909949594793856884789286362509390442885985856791663922642277636806499901146259306187463095821372087783991674983206824644117597611102077345585600676153711094626258565598491912095067926936025570545762900882229925429477645439389086877416592671934936537042564424233634449653002925418632315816840468740020826089273374364444174084058548805260410499703669245878049695002267833359879627052164258822473989278333578509017301711060699066342999174840723866212142399959354229487076052879586697263940885454534231761997132886476219932974315483283704101506467562888901339979789482166904455226976508984507010461584752551749289049183762301988392451318711564069630658758681951779964060002547453345806055747598495124813464203152561071318396634953497451002722520075260045442733688669237178923072539828638775594981318008319043987425181808860518653835613610834883923553249373496794347102552340411686523899945656329603783669142587862641582958516283939156928053307455967963754131452201698671208711304137003271589130290769460263029063217970606244967282544347332511806400815193371942107161720233097171847738427613266345759049635935218450504984390136051288375862177463029722032177762540669836019765486028984198613078482465014364933803185282036879210439356265881235138636712936273690442870673525538705558128429733126680591619454814851967782540213892164091217249231327660447863149054667335475072900415446792983540067875541001911591665369804486209248957436702118710462412258932064905028479874493170779795365861228777573768854729108106361487744535526088445251333896801346294562769119120908372032062704569307016809015272105388075347143253103322323778137709214398374136237773240790961670346693922598791041505726658633926883680761215340521213314587944403872385675226652460906386070054372373771981436125722794544881379593535591962150776539681338680590000522021278167667117837308089424379735597928249822473194264663337046191643454861696763141224170483155556610173624756360727599512995318043854592896162523688972622750030673060596041238651520927873452631061105330731456338542807834315298465794386472892733869258185856078785184475446175041284333302118782568836206811161862757871131866333899767040255626612371461900701989907567605838553996712135734630132663716321063453073554182531386051442580093072740921623942607261922260710070595747932333603703101695145236148522448998164193416350168130129943025414531620331259153112380914528294927231943072192465365667196764147757184501440909615282031438842335820958911668159202424469759473507296684584637850347011615209501430552879067061575021317394229786171925807025702897271980113922335801411962031091290858033900357237977271402388080843146321275134936757399879280691733909560056578316657974576531192636170383462282677907181901499129976370286436659623033285270153878761464837150011677793049973517395758866797690017232594452212299357312811403962836746657424166287739264316322243303290781757846460841606319144222879224773197065734817940647001966504549302228468737952840597112859824773648860702289159837833462542744238189459026846427065803462739257873012441554877523220444314389137072667824026785860547453749830331755873970739236745172758179355829594527667716271564686618821991858564135653773773998372649362520782448948842798879230469608473033003113016493898783078488379723881276139740804006991786422081179732562500015626901419850503164345942812326664787890320724862942173961545871478952251308409545825996359667510683216042040111765581645022275162378284996702136716503684302889182607156405068730728760274580414732025548828371084309128591621054955595212957405443064356376356493485188860878537395077780116928583916644364350140368235679136713150295211871238080231514598650523127259246972488588330234794262152552779531237091167419359478202302089282574716006932515952522114328092651619087968851605365526541159389262052668239281194233866647201399745752042423312561189124408009468622544518609196318107109527979519857838758669170361637877705985150269637199232401388329912989372712075716614517121730786868165003698475756276370823994024725236635067782096762321747417578342924067203384280113879280657476027410354908390063677570663031119889932382248422004615196828153071551422391116399570120117178815660651901816048544884427034481130983545222422754291511767828820980380247798513402502698400250761850353696245910828197346943155472164013458837927324745477240349397872242121699942962643099268976347128733753026507794777219269579178939229547940753308268392861408331285940675467565958556038964766535713721253003910095258532710275631896029661825326702200755335003015420253795826277884401109484805693100909372047022702690015058595474276675048581361315702808383919303196433397781633111657267111182763037314039314973019692428213005135878379850603206938652489649892278940860284889407980500221981985720031078808334622507635738469644736116020473684504694237635409637325573229529940642061848272667302117194180717815804933730218155478565245469855988830491821768827859717519593354083053026285676370772558150363924513895844420150667850678933499207103746508909254701109293382629706868171255034669340714912390438862171921284963336707178323003219517554700902864760094606597771490403864155404136080165089809656001657345923091586387385718985296148344127386821505632152103069980144392130702121901425953609158285264489920217646137227243339285209827844243999742063587345261078521365807706606542365052270931695305163180007888773151415761781886992001559910148407520973758808765969241015915108702458295914782657013160503345695541496867003245405371826923846132260447931632911467363298801320492132905607453311812321247312647332297477406649884430111431103509506931617985158211679862541262913723041139603330117437901204085775901734272947475991706302884135000189504948862640759526438666915107159760087939112963265848017643144906181180076052183978175369810907585608729379953366753532523559512015811259697228027473319189710118226928949830318532085813163587336413699816844266845674204544171653932763544692362720698403862669269161629976839174795023140209151536044484787707022135020289630865105445477365152191751838658763773528355553196531140754373860630207991092299675923078554891634744804366794476030379360886570590129202719975149752080662551786714035839026411956832754773350751075228664576172053416642416477594622980138196176999190615207283550663221715316501112521781855013333593271385503467963480627240745270980369813478017245152505490804217589721921328707238560668876394743137383300869584760676669249853075295398200076908789182239480921129549745870416686650887499128366012604866515057974432637225465003212354816992211692942285276832245410591454086756574807960335534798922620449840526676011659451479489786662197406285796453785476368513686052230460195659141632635778882244502699814277293808003320702756104959153798241195658971453885204441676706850228788365012814166281633189548271435640487682063326861827307353179732767503607862689207669069415631125409175101448981121524038074948561116801088398177492362728249151951722479108947210631975270282402321774737017743374823698068785490357431495604909465114914349918369499203102866541354626176444122790748272845478864578760666408046071058978882298181682397688103333545290554485364894613649164395232589732452798651893197116270068008894268085314461802571702843708644301393149448833513334368113709614472528474835778570297920841141066392175390203182903842922739909101554012692541810918092085013628571531704714263276540589196017894216010880123359641667082897901142360010905490919665104204123537539097427708822668540793839707339207609138547353837003823826494438726513251871061538120042945952859507926451670129253870742544465596130335860073716779397584968075239868131369516769537003805416225384969037096521125366494725210215932286725290484390306933659587437267128826523300985301559527405799557154090426987430339342510102616227666434012056493155398524346618038721545720490856196755098546113946654883635334176783627866961269515241483411750627616237663401169649314046710639422867484839739589183340633222721211655239970223903852387810504369617113854320629390536394684763514542394138565397656830844031000989853896178727427202773428736338311984171140206384288107925202047074352684409753959713395944022927382837289118078502281181493492449495721486437908860493206089108753092804750080913505001208037191231879948503698395399284432028874031623689390898332019111986581810821504078161032046089616755661289313833856665790374593783293121186158812325882277068209631056197477703105130960532462394460462364813378227614423308647779780252823001273829528315218061492474861520226503588278336373024437885775083202316850481855545098630928020108459657851987377108264255998794486892871678788942128587460852465035600648073018496287847047036216370661274688888098119228490945800186195118848880761747665673542739575426284857064488521731701103698430835637954982985354205837337802910585064550108970634370592517105497962269318143352356472249761324881396062429545644958014158122234293457886029598284804521692397893466686200361496694841872771084837342228890314494320381547483857258862699884432701475088721505386602643303570201884551937729104800677012569999048507817926552261376776613519365198327239708854414042123144456203694930947226343267226018056374135724721644745033175069538987372496971301089733049190134795139786564858214521820555690180413944725207337222270601872328548522857039992646558984439211842742846793015169014808002342423580855974827553675882662627338347150036135683354772940801152786207875822912231312749092974539359182244062191528437591945776960525182834617714179173877359360574803229250562930918675692108545919925242904494410924287898861923926568959608614387188457666172561993150183856216672839430178079045732536286687451482423151466080876000628919049755445371257477797948717989470264198555476673775919898362267476468462193881060728843776088181281718536455784658286242296092280756367687608243456176890595950925854236929635454310127655395131180195038437991356952570964581469585801798602929418771311961858933136034348206157013300881957322288714889668802101696346909219006767244076186920476217804927427494626094142411162821868543202352495563914713152063222011349682707992810016577845040200545508912363228832505782163650756019795170625461357246856748722727020373102980682784105855951140528923322065223642625384393866004356419789657817339084779601183498441827772953788146005820614975728390853719939218043037842552096243187988526559366126271740059936839478103578385141200750194112274043569457812318280498528886396715693043726891554467306922953413255980505595670953556094824730252924492688891627500079011197960574290603069458800517988622255123850169474609786479677311340556871434432728191260351441958663568585207149869897460922560070716712514354816647841005340433213933230889414815326184977286843481948737171685313967529166943996297233612813944621331904315317686767049882665528514440808909409964332410395328990299232527770874570071560292100563072841951105147077724799481054942181259411655659327645883631699365544784453686448452227420269933975227524922163415563265213600192364076698230880554083195297933942328408611454745591132389161991173494958038299988082298808392196972142941440582379178519740170491099306937826881616098570778769301432778318932702174195408153774071682107161884047472546560348453545954864513934504898933040893705857753842241135367114128135015588482326607461667174146559358778862319520566331391391064520304098420992598796483265510962765831933360289946611610774701274761469556169309378356737308320870085519876338596131510096748658910622485516883526327398070631945925663170569874903618460362471315915592090977853456892465305657756543547715587507541435149988070644301576744162415623636627302312410092532472201573374782439172997576153821385445823918952754398690963696344522979903287190076339298432207919626262068240540726413539182377222210457283562041332785358342020013459833071598992230287637593149864673498484853123334027006405326889735262595600660576644702292809353256772095819296488970621664647739578004651712667945851317235865939447144667145455711911700136290793436784311089686478223725665798765490819693006447582555117832987509485594228858654870046197686809679494027461512646940992421490995208506122000451956928169278296527363890525172050563875648741584447635661282189216388638164972261928620914593107412076724878230319901565487931752854423661278878339647406038614136013179842047962077390253859236898445367899271911034013479194473341032373518060548909951409647405565816197094096404894483284637019543317534570599032752309724918022323051856609683019045191520996869343615081527247226474885196995624379161568189925422804143084710925680005648016623122638848804961386083246822066887240585716278050292990186167054426392161939170676611470706555404151360623115946707901129475312434601457683463398629885910820403562552268884217401616655953659029064128228085757126836470228980761482299461951147966431157652856266362001025366433572870471029774029102558410033695250711293636719215858159499074511024848413965907267660879096342622571627544402452714624027051020201398402039067730074032247012986526839756908303506727141423354267106339521038359125031281658760394115743724596861488978184204979530515352195637677607172538648007138505176276345736606283878269378049952480465946157871752878238254951529176013363266683520355627913515371146403508232409752875049948723424155215813557676614429006246628543184688407317018433685011879533290447662333371813332154420086891594960111361287535973797266226191578892730863592557880938350579364734724231774771855950246932976518971449965384233769928122006040068223975148294269589977967054523362601553856369140925469160820149415592313080920176728544967394806294442024092415485505544167929571488500896393743549412158552288659328583227782717648986132948946181964216464278208380625755890450838765733802055619221684495001447666534084608737742402249867677454941410620497800456579560877273652791713056881091476647246736069653122603907511353984753716412194526296787796813583846369206846824384017200223677512129564204617297758384397569258206999637713210387933611390733511598656670282752765754994125497865342578054904521879934402479438051308878462157390172720323723183921150109679909127541535694712294346432827304324465615363247987420358618860867970744870519017225058094427903440161349652306534599305701558007531089581293136635519407268375730599648255318469127105081448370302355166567429475647373520331910891442972790817679150864014972155230898160490304304324090289002641538654073936625550860291026751526127628952149061529161884100214585446935254027952948425856091416240028164882685753019222200345390041157055853445539678292953189903219027917540209709933660929824720205985080426629077208530225319652853665311043141732092119109271329127943961647770226920531105547083099642289058295218053259325051377571223110815017465571924778568455423467688213831068232055058605120125327776297542498534926769532253403414664668705401171828236535641003988520361915009756240198781847968827750370118469036562186339408948274482755539735163916983755691664311686118596225372869426678340818545002000541125576335947865683478280941995771343504793008673655259371027190292066930846934623984350365126294494871019919329439021703348261293012161632745903476810133239446132142204127738426002943908832822724391076880920265667955735842966658629427804759114211785102922916199901252496171367932896341627936924947027986898240377493871554241981481401297234701585261373748888097017394396401126731268737584394695059065522455758388753891709143072110974402536597619859160893025917901327587859564229743438616399781981425836329886531905362610055990520694411623013944713462013341896022754160743854796251745434705390807365569962654877053338400219247478158393709992892671057070442869530713127417601175868488672972256899960357080632136915870881521793287306560350554083999077221746193384772208056745759852995604492028037002544357112116899791133005898212115347336260302246349276342672060473621462705815604540799093085169239810984536024437366146456327719642179353838075340609989786776560744508518855662861681978201915481916491761273668103945205762409054025283174189236049318642095548591098838299715794593987499745514047559739146835730824892353727244143870581392840116923449448147677357483579321590455671230357693621052855931189625091507949688054358630659962115481865403657125755115923701069554062132073096567302792965033902919616158837021477530169610540529164745263859915895106189072425955691515687467257688930891849622311791851920904721343746389089439537935929133126385608200180000735211744357757119867462050128970750674695581489154596476967282499427018136416857133565617864441150666237879011199114902225918932841969081121053795724712547631847658374948135174085895530587334207958520426151855667384892125268465699412227880501567853377729271684088602384290020541255694337538004012503491794192520142080170487926655116082628447259678185276066561669537282369914847491128565047006949658262629270747475067892229141499610938175729877940301556828315095031994989103843365959327465965673303921734012706355463526310789729575743814091936861440970065599578197100291616285916592761324951309025076834245550308881150156028762594442271378312916333435322800393901443890688619350008130573021918174229635091548824713791559610949966894415308430026103673961906021586451974306590391671170016990145738191695704522045049283676524761582752585186476596444310443873077827153145182243889528738998201431661273595789327181680239876010654902268336574704622188753816061260886429341453630529328511085042426830948984495473016045206956933800313636765840020866295442935040966648004693857286656885583780466542423519111991494654588083885308742771064340259841630401691276116932293947888784506800747751682651089375229948724729336068633465496533335747190136083825314158497935762595307845194018737303233561909447147926354519233602442341678766626945891125850587682924996145664758903519766407775227601018112507338118210077708202726129694559174625317133971449311591519463996564930397768257662517674658898345573157649667889115795761476095652688193530870689315692932345670629572617084342118125682973407028670546603245281255722116945818475240284941292476687157185857647512901014160954135032261383874183265604182846907678371661112057517651125406370539307475820302939007339824730151052115776867685184895138003054083964361995371458461273152874693504551047469501545502760990949012958737305306797730459698323537151881838274413457662429451663464616436486746078629086465506837305803480216503531947829405886390399593933126717774219551300101799841961321397057141778573338866445003429727743762740628990722351311449405372849308741058863434128897426371207526232651510368964528412023262268707874331360813334922343707834095990404697225696690599943858343152372550117299621797128428260260425792479941197430114682882551792978190929458173432951196296635589547620521510607550251471508606208342416022000339858254637180125053128861203137001367643487430173163242148399224728191492314365605197889038823399272565071038917947281535628632513607501942345619458015550885922174121103282195161497871798578896803798347032261669029638785537958216915666412066542087643119428914896383761705649043799743523767582720351403854127499903242017491626012360602668065400236957027280086777352550633168755026432726275654262853196292335345541015460829157545538048230897972837884578980766756047824268991770614515067278406075606998174533963564396951202423599202121948310708658952851933822867075975674857138029907564294585302684731114285725039954555369919863232463014100717371578027074421097632733871701549662368674820273402011871740378681614482959201233339659164520526891747411142732248869626954199059794162103645355710053856347710560105501077932937138112700280106701900888795671870047120831009075521243869991327349417458086307500275000567884007746945987952984684438149824598011313383360026976710028071618206632095970915984415951110521680179255960261569621622006081926824898470526661643002924749753657992213005176685535090927967485477476868918330920043836517462588310108485426062092731559488532679613554598249181624445206811655993749072622718356733617314876086463965741365459027258690923803189194594040910092246870444368176996701757826660251945260213214069704780827990628847438697550613629153218079584301005275624364453045707459729241756111018339330188514992928769092732878080720926510175946389224789714576686955393927979345458295791909810775552385792111436700316138307159374301561905102725473316573566838839831966922032313797232261170613874745733728433025762405727379140944372927017996653583351892577427525071600725802033032952257174980173545610048450933422180454427369419328642264208858499949268593507093129352655677969058409676858718383302539348647323943481349698388580912658541632772387123960932251414613663636758443801236953220694281224000613465953364798366170163408692981277700141370871087284226351612785722041529752647756510032484759897905069463702386740064727974805486669831786103795447056808291675684550026143607731456606832679494791804243362836955946319989724670468748918611867099154328619351232682839268727403140836184016829396906772751900419045451823898440608185984839325690456017158201336125093678467753322107901905276317849326666580338900182972628956958345063042476842325616322412098919138539448578142891107234786204132098357320501155548815089208798423209751538450674791170234726967415643805431584220997902714336849583763876308484999900555049495758957725495580823922079766721592834057787535293474864972741260724306796077502444013287636778140560870536974220773329790262366275724707061198544940885221995844915656306409112280419751270441677928408414418299776798525332209198125618654773560265476155497447331673614040317293161882442033088434746017841955434601931196437876132184391723884474391008082077692134474688703471223318438897884794066264154231022140815595170374287500852013707507934947096680781901860720620546260469194997955317049529998966493828095648614248875934311992609781852324037104068931779314075075362394827298162675525911633723778848182240929359663250024985163599365556213211170068084358791199539663857569410257242008440084028731554888724811306921389966142633708418085133902682442703625683803259524767804152467998585690170072504937653458721898299735856858155537501486058168639416919174938477700513277159284789025481391703859761325659280281768193807558200126769862928827045580429367431234558726790683766769857321193906855593454212836407936053223367783856634506654059155434930322646014809390144199878782665201083970343648565012708150466793778893776376946786544508684746903900069515833833311778113657840033360690139326371805842835306951171163495553729274882930912815127607891517019917243565832266494618574112573544885531949095642638425685485809005080077352292579362206745494727070295113435105363023360672962495345966049502229825056576477974194520620387899633139618869021997187951315274435030487550485528796459871813348779907165704855026565994136606512418336783645703320645230806207561023387920164148666881473296063554695401429795533492557546864968180991442199056968361690716294925229560931376694704082366061977888552024982640217478830182929922016978371039765327278212744308276103560942071926103911553139011369996600688278090705661163730063377703573688806784814379038565993989154629939695343133460946603558474087364884178706514017349414266887948085398138396345620419608241509623228478010997378957064541292579167568660462613842528583258292805059716379521282994244339660635531173172090758821662315490768504915381725018131687094522051793572075393603866090181757324878530136059369086989676825255062060311681241733287689410293980611195811358562046073654667276654651709010009916741829265240275272609250891507283863756524980392488374170691040508169296934201350058269857628729454258313613609307061863104732936548223542187626341984406802505174169464933274985868290199695761894715095569452307962912974046593122633990355456255782517315661482885372850025991893235825569340502019679740335224757774575865161895556526044839633107706705673505825921990427951264621591063006478559280041899835517081305186480927863625778542095796496074249581708561691254028197947351488576308264862481244033159904655203856407319225684239847334320105754505265770127106423461592199184150283713384901312592812327366236375184528059876290816249792058203725824100976349482601040615423895150303867295558767509243068259203382121472508690977887493770769907439098598143973375130313288660763920293372296130201439631745796921789283658445899568065194162149784464697180287668563577722940750063139499592050937450443384776394747573594214408435146002772599212515902609527580648318103481267838822912241110822147995985562511785334802678095919546045809471956277863307659182484563982369337609023728265650983392932307098118690343739253461329654277231630733823803670835196442308084234761047345060407783402135202972637490274083784146363464237525239919712642768259180003439596158241716478251747487914678562565476487777443992011299234902907728674908871582922894125324871452240608845478300047778703514497918912653396879153798132414758533335732181597817696948885007423997793389197246404098182853102839973028167625965419505634076660235500430855179617171622754192912711758319784241038146266188783259348183207524708768942682747988191282535727751921942226877430619259924010434128981898586233518035008039559582938418726768537791338429955911840009728243673744177972988858796551387207789629570385192450248414675778701226670376759664255289011684749615926267628615175686399572225752922587936269649899191658763467101729335649404591526299383913406200974872612690763768725117186910762823196630991780754730340036750284064971321093254053447087002639333131997250850788853746942819548265884527710408643059351158213284630930144988641967963953956235530349631254431788559185602216719371333523461634452481358328650993605601072919680656569855746875559558367525448035354333572627225268282495510352731227616782425004851697430845231171099737151391886112337439526841500364116693103171800044552061168331448366179879138066349652782582952182382327299858817254174933177664734941473459899585065033789282513277031490952936244279526839765692503589886110421230559921282419983597636551894187920721711426503523565224515763299565031751389570884689263579601713023104206582609062360409308569529821939589634399210309102507674596707094911917516587555845073662126367987915976253339166487235395824839198272421277933692355425902052761318759939551654309653554616296694801942133743099481408492142475449962077749957629315987711807976202223923768575238115940556612452788265957748453651739292036844977555305192141373588050332727390149527424781770124483514266356942308411959637470974331806982740684263649080335572159518348645057330974085605112485155994621946476594055518717034262091245372841027981981743718774140764637881232920361084575484886870995339688221979714816202111802485051697205584620109100623852657545150385441683513699166394987771772528392308479261701219932687452824764402368936081628768758457608068932587370606102649910557103664657698326263683064024563857334599321285592377914806282114529631617623868046099450335682147298573224519466778528860861469169070093096240598104556233303277731475962774382059501327138820167293431654823270272925528496808082175351537165784497371073970956983168362801492247336521240632343178529786804512655680165614886166552876187387924769412437067368909831920071861002106807366710291078063500245518550244572815889146206753214053628798312837444938555037960125802840891115309736992864083773715335839608637251478025621034427046352099343735972432479444625566385812141504085759535319681689268140829159399180431133061675415637937433471761407156672187814155197213982882412852503165555499155987714499676622424496806212616069483169239905950074392292130132555467789336126576638452281402667827891403662780463080764180400946926451660026649290510069323940246747156320717818510602669673328056358911701254744873768563426493098905195560105944636284740281840532381073823122546066214855642254391945666764326274679983121700290488261562958737163920523796154193203266685606310631622653714008009043151515777586917174755860131303823635025779971352798748591054685139741285904369624339928918368115864380180755056257460273807743960998854635485482467907492667315874959553176205432041591607056102539636614873599245748046330164094147375691087723272806521176352746004465079857209582108498447703900658404571070270361704389850737358280626886865813802288795752281496122552052971685680148944041938631154769169630531143513858692959813171793430780944338341938182327334365537241636740250578083488613834144549133443871695028122652786965306834181968147344752523490289042116586315985381328819627439584004466797093059197361409445401458258844285960453795517321344489037920266819373138984325633008062215541427694118996585066990202717376857782616329050150750743493615600404437508466467122821784367169435013059777180727344115710652051149062154824890170012655190441401766393275160519417042270515113402993370409169686392937739787606111558751029390648300588277005998173631169086964439839613559026576216573717056701183857830500708495180507811528384234298779330983291521203793764471577358172486746440607584720419196536441876775776873210469809763930841254481385950364382068052804386463215052087047522662812910508780020195866728876063952689907297380601988537738838691769229786273202995156319049432591294104176505385308592376686965109584704543294660706816301390091227757173364951008728826104021806315952311820686237744621991741000320083860258235406235611191800977814230117194682424180439160152282614042346134988462111644411924946297300955738826757903728732612412889647848887378441208294032554116155781556714086594370835515954133043600902426094137805979514950584689940860737674029571498552635187300516127780393354444440915658354785122225169404573244091642931033948640934184677569847611587338668044644499840078125221308146134840300678677390223279528123172201987891929720944728150456829493221998583705680593384129236070039729618103519012520849360927312761443696977646860840435121239046930390274462486386224786658213645243395711107620912405915053296713779806352520180995502419292230899385941314098466591830810851109654460257480307846246152902555613239964104419300046517539775106766533902647431347773239152873355434003679279280182051837288335294879505582673311990778760785912960827712037513837573472039272204514623010611254112751644387058939880981406113143089284432584506069799024157630800801741507497154089395609958660013131866227564514625243892973604288541886224883063908775836441164193772391443347754118438722585695236780968535865107666080729806004260480462522767998655178688442533172104828955378999770545759247213726713874859712652577687113894718343840613151954526030662633764705096188584785256088076870969106123657211670267729008877238316216694852685706727015277508272985040138406310018089463958350474936719040700022717084567759581254845964538846151274968574021115965787986719344802982456578152916537628474044461199481587683503890900150103915830777756504180642460480144757166055968932314730075655829415103499146570154750679644614500854635177937188382705864232363394436318430034544586522535220611435155337943722042533313327577864498751885984647833997293190939919918296993355841891062376083025375579524600450361099403616731887255614278426241144218866390851919313803032679696317020647927605031109240425389148385670983233808633701674055733204586444978800993397261449526627548193228261569999672289345046939939520282000264503018434239945290821293205911848938464250261531932266448966674679616338328552676671251605746473168541861094770793284124648394957148798434719521082168214204887195377947658847488657933268850371822932419414473040900526511740448213753007490170243296383614190336578365409098179447612725080865140884360639530159647175442414390643824362386768297591285966715108151366468374431112143866708714704816067536578942057136773153110125942962851354942241967838342702285203884064210061435819182648779478841794520220011890188803432339540318450504734573968994270414961717216246478855328495977470878532397664971504229682664902428363243649058861543772850810932500830011041586693687943013374432791577889186354753324242238444841576497711638723744858553006233052247167544183594007608434967293398691650581800814388114742435412552981368061436602693725531897947762327936715262770096885814180390790806663039531936953030346411912844687071217989200411961674629273584420645146813080896330624472375857049030001159527836547275009219734941625494841277223088153678065514771150821031069308358079453508272429861768619560834124631188808978965556014686812301213665111681082050277288497918831680491897614179183307991741898387364454451124910914058237687008225831274451737282795427727960916288766161857287614511093465154608955126827015726185197505791423914649807970267140358086987717727389514651479577485088631771696402656621541504301648177265505656929439015042651574868493844886975879727208408837871457040953330458734842998692341110871300508168803571240293698712880302106998664449138907523318568802425053651136897804397449522847612266345631942210374258033660980446056011996422361859796932676633075768464113789191955227781861820232328585073807100950971322121048671066775905341825844763034461219877284931075185718999440240788509459724344833207078064198055920403503478695444863696267931222169973262200900100413132031996962587696723553761978124888457015289361846761379849572721705974203596161562835913237906649530401681562673890493470689538249482474463066567469128051626553407600396155696274173869261801099860060273283039294796242912884384139074216478854573819972748877226227994207483003159898188432460020393609815349881598106686524525189613747199532083451284691094922357481340045248164712976108122129072840436662023294682022019768316440836815874488213749843055283250742052383312924741114178052680835763387241928312745970495925776876697823738332331687514099078871588757594840348968336125878884123097838122779518676049365288717843957688843370472826216666091129983211590686435093621945536015025596720131776733592074757594043064292131710026413580132771355280486266810058930829870180415126759205403285754614971276178758354592573977419451196241317022509757877997832268182831183884998695796989710164186616583762318801039412772244396985566293743445784561949713466483887558455413506943990314338423718028781253237640421946192824164164381324908758832061203527814356484917255964622279101651528655482081794407974175294920670517137350502642376709154359840625334478002678513528014638114086328598196419235115640864652757468205916162430689687880086627617931261693136562436218396195904422266335587128873672744152620578333331176388505552642541777592745757405512871460901311170607253117064583196216812128595613729483243060081120371088529327959007780867655873914218767628840206003999963614919054617360582980045113892717109413474245411549882974261132478026022569885256260668968573198582834173093906891800246709541604310864231461153025803574462232079356581840756717292091126279271779115271425421540709181141551648826860874320990648763442548280622757676125944970454635025054093697901387084678467013226978785509934368111012250226031973817479379143978557531421729445025637858679030496102632109539331839265777996171585378792580701860677486291228387369320348614544316341555924166021853163746533163335666434590986410651519185323303349752577029838435480494336821377344439075897363199727909518853652831315671967234705294672449723798148471775693135593579022579839640465144121098189663198864528764219999986978980881487459063158696538973371554473999607887754947333533953122778474978541811935605110029148922448100810108984859872912915680957121746204175903224186714001738860591540787811275052516241925610280286476904354929386237369301811646934815212870284112849619577432542508058887838283046980140584606716054315077089933236256577774303021426035786583324688879091054787215921458378863874024947835149257548810180215293710420088452228332809235104052670293724330857558521717922918564075134075286606815146602070925295557267046201649137807829363540399093779948400531355493537225058679498061690607591987669625561857742838229299149565736027751533839225885829860055694278585522712059958771981683825864028108198673817455908343441001428255727584351983832412243092629419824997310747062383444772202456562244361454452665935887578853478402289898216449285431649791126463145636660050637166295585592670320091041195147458580511976478678917557745609271424157446079092259579004786384036756202079032599005648266246706762251544586578031075025087504031329996434511067547194126924670265091690483017775300262813374352864222204255760105449902753836851577339610324641559547322066297374407601731539372828533904657492914664594202432875527672612738443886307113778461848049312764490362431751171836573116851304312554252792620930050082754718923554086284402420038493739526789571528357284537178590802593750261264383270096253753457655952692685810583533676505799455115037946867241643616840341525767994247262601115433524220779777016816047506676633423693811787188062179355348830379166765952612172833131870084980620383445198382111142120794796206128956301852927666128957827256212611305583715044317048113979884531964911336745212229881521706234923838201947008573828101211621267644147660383099620160564297379069030547803511772493123607882366014762819206349701112006010834859506222369772043681221374500091076011639026961935754957091252894512435129030652147017446223276160815839747151512723867053236808509516890252722128924139314281320871644002414793616060454490298054785139685226351655348454081370670419734494849559771105051825379028179646396715012693325799746828675471884856489467623826703384421239797787534792103419708325067041062814217235453538211120789741396475765504100222358078070424727062672005790438907718890324456106782429066954855194705945703339909634030834479055458341656879291504561155060571922741397990200699990431362228265221047423677758451251337091105068690107759159734194690913208033800164146250308228004393972046885335633717975465506398673761443011799203367741029078202019507693820404499810733144135883557456758834092108113950549512190437427889068608278775103391429393371467234861333838365675098883370848592007672444713976791261899997342488590070416512796300358775388694775502922594220840080581643257927759900098131919248360032968229963830059332580468379639787276309849615940405597783961381967383539624684115049469328913450977262684766330215622488717701709389358482438495967324422006668861044636143500842974232460902435118713344767481186959266101306460540557824415682305669955436530517051249323556883888239086757337072093920375473681907482477638243766061576884574452728958698508904818176460651838585246217867387847131107399772384999968217740916709607658950849457902948700119570778243466908993558211209155801392075737661879072083717285588629392878992885518282902018073623602056944636862344717089525618907104597121958449733984268324770516232875891259447044814684359345146471659748605295782730833522930285024119003109526646963336185141223056369868492869603858303326732706709318290296860128591006520020573087465165329944250641245292082813198815095263005816208634755902675679313001478004957846393674523251839154676351320329740906736781331309173833778532949063073328607766260504986450582837040994272722414309677822356682446514113844619776465938445819518208552239727297131730087436059096162774046377120087367886026981400381690635728617975055837785236431366646949344209307213036757905090195527216486789313776021465782678122892478892879874022275715772915349873555966659483682075318809961955398844981651126748453559769194822373091443871613720431259285053569291125982456905261534261925780528889010470988642020294447002803928053301714658270969077100584402165943574409362339873304557523100266595748790994122699276751097115944084348618753951218280509007274272228999119552117522022600639178770218921534800410828782535795769535889068455181729097627892055791519651699594790353915991434600933989913624515126808626323109375699066989359738978970017326723257717034169838475779452960113330655181862042163071667324152084160114621808883358197794344209588022109138821264862474113606820297733500391491163810211751018222766026148694664469616421305711818196791434423395347255255420799937484528021434117017484646074940459274477022908511034287681187245085690379106856532517293446698360466871892184204279961199556419669530967005606105686259889244605616566999274246047742885562217059386655614214501947899926150342297725771387538960827353602603481977210974919074606103989152078375561700474393990234243207568781671545791866684339700443866064751701345664389044346591525999635261652005507487880346753982006783496157394929804021834117300113654862830781885197230571367045884078566006954662356224178408749083034080833986951892872212032721137725309806042391471489378696734731020184371254470207008924622931935528333012173749617412444679909431252700931861754047999493701476235357865335648562272019297339386070563994532445699131509634767546880241581936793430249513651720423795703204410050221622301298108652144752396787840814905154885874079738832648482070175746358529595712069150595194740873101757379869311563400265218395470209186668846394443780436743892026889397249162090371523148841032239864013989789598950565502207887613658313953658984812949829423022070125318423082454049124321668631031470875783495454704177708012084807492311037734187206025935479735170133703694299206310173396708682270675766814415547257521889657141180967087466902903569568164735163679507517585135489664507449595520787288888445351061383763204548052088526003878052101103308379533734111013149018544454852438360943682947555263973459969859569142793563034605964953401389640454672292627692001693280088449582387949159289031650042258079172922476941353724084941507032687282857507808772013770519487025243619741074291502284819197045676842657537831722227449380642614330947031609803667420427287104886879587312449699951373529560078269298069000535204417827007937544425653306416728544315173076623635085524824858363277012325961611220673850420096572150260907174658106326205225703993566175589760481248540735070742239313465618734637836118575791943210141711703727712519825642559920631340933509440962109629767541747337044638966857926353194422128004489860969079509347564037631700655236948123685005840433893349755926820841467398537697408790762612881142862043110602234121491947942246194105144570827499177340535159207159545732306438325524007447194387503454537734810902062193749659648180264485465893952379179516503827959675255161387128182661574884079720778891365505402019543073702842555718890885698030942427278105881907081943398001996812066572207394258846314673064726950714743988724654629436866378910696086638592218969710011701645083596202020714234319602389714645492685341417484436639031626712980170681547788383335219922523639781236427894258371237966572677202176143893678172644693267198410273185300758168433264690693692404537354903505605147384702565956008791228628184557523947006640625638690691315551519895383685345245170226774622617080531711915740380596549154806604517500971298071994173059333861171645874999691868482359613540491856747832816882848118524679575460135464421120695517386780205376134059837775324189198543933302240012450723374158685774206780819281335436165371337072279943202418311875636801138156559360882106417086859910905556661589394691862990986090522913785040076030600561426928534750609195060786090663091605936162026938936882666780960216190964891960715945645092359924312772624741605900888990445479463364554797145128857428034817402367629270911506744214584441774629190654641948357266085338936056936225404737419676029238892126642130470740955213132755433953848250289224564713880969735446339199079794705538836699376700758713165884371828000310909558362438914636589470971445832694644825896407703917030774860677316815906055734246228066728319394702518045704085755627419387684414901075375271946645677089861230477993033467287975723701729939447302044790841268581673211351244393922766236796161557612274556885279073181738683593156698856375820561067144383243596018400285809743904204933698798287931871835290685397029573854785085940698700575708855192186298148816239340204882810880590520881018138790867678313684392736791206378757970219337928908526105284853003808745112228170080159235275236859098087817529694416094678491646568024517739242459112780538934641454395513719527304989161305576085420639523688626490861836379156161662481411484945666209285983659380663114085547527500804996770544193098179542653258107338280120854469067446260108062907539571333698437250259603228203764173778486099590558155938220911219958021504290018693085756426165871207819188899445396561389248987875550392715165476453958713072545905366417034304956020209172291953238141958142048750855043767625990377026537956413695777607961511813654621330708259946239800319232539674774000412709782064745823783105384444984393155573467923232821657549464745114974292403383169855170233263652347972153624571497874306804756499099111923650128738140496764278948270246903545748034599431550712429535264731801888357559081162931209155690948010077040535459646852153136991432650962620200896947745467474707469671492731861666741768654725393806782126207559043313480392704767574587793836419797118514835842502812025719550807976506453245481729577978489722242171253563337215447489282468415655014240609603558584712204978677804811427163477809311160058731105700655872562568727597346724487899389113708359128871034581779545844384236046561072594752742188016543728286908135971071921343127101671173037998152692080276622535310829627412950895460780194804809994039434989229222151392184362895378088083169985258622648089664878518685609006480732322762418889941308935050834435321558809493579963769301210266462303035741834324734480359879755381790387418281836235751449973155264547155928770926117160145030312304818903776278555056096678097301649026856968395905791809853252514416322953240925213586415968625222444832582957867728110157902576363668562860866090755663338042803715521810226335460934189580167668222052666904810090363342892912187252225061228321071447258283885152176264504309890788341881478025640334232105540907073153726338684404379014824301471448692313407549680267573293795755883445194918551874822291810237489731638135973748821658120510064398295080468973710966682395860761181295985799520589248946543135320675912550425409229666932767254430963988574117880991545831072384703862773438621669174923082353734225410261582664451343947874272721281782862177843857360998412524111198024565385468430767772493206335393194632838125164378065949573710062690938036182745071574558543888878308787301242246004220892092740477051849802957367057388675010623240587442605165558088079091239169895078521875336048294843229651654233617662035404950055079168971401195761429275347459980489331993528929503396920341219452283556712775765153120810290744854043111966177677344678730145651573448547583994763268268759396717882181019934215308935148935386559051301811166341654311275657874588331701887830561099437004746154598846586482716057819244438639802965231956510340967964137600182604198271188686974376819186597189719617629662103974907132650221894723477847728560550650867769434952928618568388894190232903895933972688467260266293586197703469587963797184251162676304353358128606079678315233672941469480463750821193418425504100360665834370203960185074841462933508000010813124258367393156885769672513980920592974247788394933154327795315385742563045505917067867491982014771161047230517792247887150464477561663096602704763691500058689042571546405946084081827686358508758804507116391035831629150788018366736636428234293290071538702246883016265406723587509072424104610850518335031171021255258538836197850402830103384108783745801694905246747975690547528348977890273824456820156668951228559889733045617620262268084626039227345975575090249593533613579336085966462834796184548491215775048859975216130376584081434252034187044294454246160163192938981498516183563212168940456880263748731510952374399035017962346101695279509989325303105013787886609158679273483115530308806620956266526433963941934851426249260485338848106136484889243677885226153089714667788950310607262062028957706824039608774557362807947922817765383895229805445637818621449871792704732064711272378800158180928116159264666690643649484005249096519188610899853672932570302813455490777979353373040230103403928543193838554639077411453410659699014023373914729470803740868330172348380552201324092714051199551974561577581541907893618262133725392581878583848921181649268538456270999733651645576498727094787748981988509730590071919181741623591281924037405169044187767182364740755130205772341057477338159117305819562243642669731102401090684613022393974041382917870934201879211835534619795722800195150305218615617749855653520344810094329208490501797473871029748352060231896681898986813465845561508663840291095602646868805677135115129586763829547169357003456678071966811059806542641822120103247236717390322807298969225209809786759924044898487861296119963234419584513075625122975818553964893669292318435951706136887432757968257261215191492623053782005595087211326574102226065729581294446478282644150393751760122386884329620743869367738596236684388025530036593186196529072112662361630732083547394468822499995841763202677810322927704005964682021417843602043926208861290320146773309080654695738765307563943486078668981036825523617287571062011562241876004582898826919274526948652400740824121283621400153344817043842886206558349527445278363141400172981049232185549444998857422760863068113393831045093039259168756648926690121134651879602911519317033695758896627133273596782496570029780941484382832072252477582140449958942916329564045948257129918115068412051244141190056774111176613855075617693168977528280345766036619605442470498800703264590344821827779806502006078021268709286761725317083091246746739145044273542258801720284100219651891992391732804837356674497260466952359510212074309964520394691385117328745945888719021711319189907756233741333401939844689547262723441468697256853412821873274102599227551758834301413869783976308016221493951901632032593485513900793507016379212118574484466007445769284350736558922582929485415416318278007570824137416138735968047829535734835483381941922337840045552090767585482567258691765133632400000883595665170780593807021228032282239127975524862792132635449382890042309015261406594107535795506827104282834491650224593188129675915329888700703401173777777196381383043473770823438004065633550790045838476447024111806703723164619566416710703769574410730433268864700891008593862496515689306740922129585340953614455137289912105953344196253376945115715346423003957000359715977774656423756721949831820032293872821185949020053695122205916899630313545815493561106090357235385036528777517053536805658104726033622161119578729143235270673442948020151399468650386800802333964140673146221243818530863444427477380854960238522793017574093277098078380056851270586923678603049078924849481068555688907001264917588998869488427967934406454410626534013069857934685560945174504817802841821809666398338169311195274940616309361844209187824734151650174387431658482180872820148590025367781017833764046780038615106613691670914099535521698140064043901418457937211435173896236241077183181269627955807673208264861922903010330326692910879338219972236881329325565413620792926651554143759477832261198137115966819408772158661588858179884433377681046978592195861793888934150267345060183894451498815650435050181085642649360664103126441906178623931604185903751066163916105805402665773832738884301802669256960286615317472077405773027868793516261056437950570135124957476171133135093759598431490409636832036017171106985719148397265108626766277113947109120684892130833970385614969074715199331672876789208106643712227926683528530320068280648887036344613431682420035071418451959449568382984548519558726418805096542353536483349714559840962402686932049737117167426852547542798263812140189384848772297549743058373572922537881090834675932855547669274638101951155595906655960677276049599100422345482122678209372356803676332279664433458977476117897822004630230173251333838416236026651444097919649921581424102309686911498767375032079013337944451928040589084322959943111297560758090691203494267304261355197217556553545626049869691383546554390260353862768845101847566751012621444876063494694217393422914647812452110181251511415472746755256638103857779244922073257540688730914637072980826095376875681950340769628804987443343180364955945808497460825622476305572735019189666246029812775141755355613166540956139776131673478749476786549270031521265750992402588670534419288155296963061006361767007739472018372140272053208834394941116416600160437978512321369781435241238157395647768967921130714841915689852180233974422142590235996984060632932241321840321469678831003059397757081704470207461503797187305595981965421489661811012819803328254213195897886836273170419463149052833829616801748375551682567155434325181203633922598235468372009933463274759506184720114915051690584248250926944874775754228799989035690213644456225731004172905419471767089017177808474821499265833043618021841408904881768337095430384131136453705003111374244254587772556248100146295697807552063110147493991731739180269211690603570484890261180129233918017275195166630104948644091719169629943389557094281449572605667424469459686019123572596039987924721803253081908019357429050124582942227519510809130730936950510771625420379932664529406788665401963357872852064784148890807379724346918237089753914816326841196747909482282337867212390395100477352239507109791367781120076402861326561054188779650783745845564081153277306388019844474222588776796045058831030525411476627299477876149423899617673821309043628978051706628775160109868954808726094598180605371772329220479443935341047450017799171573450601261527747448090295982024667258448136794079068010909017344901837702753976050913835289415393217943115181107052057438468871592759363408718115653914226543153186408541241912761592941387132984036043676295758367593780799555682775862843833473723808967902516049836265947863409292159880007481047903485604172093239357571619321702709782784627961585930425344852469503704029962102918690313439558257698947961632431840713738431671808262999558308726196461420266708374883466860785490432524685808016122516316054722327922477150808491952599859302436591718164706840152840923759134510952388755430695793327530326938368709356770369123880485491021177227273052374849254605883076082715641976415882302031949438789302866008104233177476341326792915836585659461446527025432790788855616795443126903568175231195916373196218833978588105201827354102080172591024934137678551943406501241449742690338146285228007571440520805275668291889170477170390836205540502554301705431753736851427824121758869443274881288426749752107290837608316347864270830635999003505957308411225498218795910439992955931387628193577298239964341483060611591443549220708616683754791972269927091348226424049873774786164907970301151719586797031997922712317275576045022297912981249790693362658105358689424562957308460908440145311742875787128167696060756718037811197366530602206765794130683214070079447236609602185775466190620810350334789020865039311232182486300074309686870347294447902269856221070619458867077196893570501980195947341846913976056009298966823106630573750399290385448465519213666801202893103677592991491554292263003415614046371909939934458823887460555693087933216643827487519880844571132326215826046323366101563178451572581954646299737075113931528195085144587112247895688551493128626858829128100114302268068029722720615498566157719177858563551363694182925632476504466067025196800872643253616865082546848859032897215504316489417223868916256977604057302804757896559143537677350895832900003945142093570925342984427482686264748104044110284829321451233298595826604775316293341436017866229838587201359127860330449194074945806326242495084334973247954823596710054905856440890678668861350489519798721252587808621239813072345108925606400954385624117245685314327879165164175031778078261442548246704329367304562654700535924117713725907200168472610631780234225517200796212629502383587341359991476661337141712870715534577512512999984432287285403020021227008685804003824105025134040046978458865814861640340779472541121139441368298467425289474854953563640009110794997953265102873347533690160994397877940050790656805618752837000723398188898071094658791600421113441403912543333067534865566077326175569737524398323776824245496544630350146425095435213450520815768011216654560005941806524199695515014584822892233813928770665848864985973916006254335670990988659496925168782828809861314812029167084213732204780362478804383332202270373307029312117877147799343965295566959731036894733931976597663525809414566116071064514206148337187817571159592301196141257100325544109093789924169293941176438569474262647993666644160191359277018861915014681041147886541077867869618998432290091525169100199124763807247315839277181939665440564283186387314006663219325223290516517522873496531972502336715639455613193988005011197352421919205189655076233650833672321764879872792892415997076415090442168673911016013217352841027459815538010653924478264003882021678856392972405820092626795944237175498531740127982743762758516448810864076447856424338703084106583330425064435041764736983664238515806432445530519056350493003964401104825015966009053376647034563449924687895511090174664392905665990077449252670289267456955246628985525962272862275139363534770308925977948892238652312560885148487265462051317564266781701383616557130098886490126380512095231534672537723325797599233756156831588365913613966637493320302949880942177919661413255637552601201204045308138607094337494393892679878204731067678050828143446373418997396317717079401194080654375172229200629587008924270534984236235054375452334663855267163880560661792369844592138355688361388952465015125775538066999628533030680104870915305221242169128258914527630860037092280950201384695121009536550744779406892980895380097217635664360199630172829379313469676008033101384931996294629849392048425421831949150942291780526547077450223411570709061228056509920803095757145362420010629101936058342496089365796613989156336656528176275114847797898514781986654972851860770379619240613555920321188748296253334520703436583858836991682465898280824114915141035165085241732926928819026423255380355708575018538606041199439342946534706219161094865445154728591027465688873968919529592722433128624695077531940323695856710129317093307813448709673633137977704751146462395010316847133306852153418888452130140761746338428071301931755866903944945615188894110036620195667699112368940097319526484534192316834576959174851250151195473994202041177573578925186109269603112304284175453899625902892053556863162207935985021993528404328293463044798928102540319597943041415308267395369577636911519915098085507649629646779849869570529341237285917900947711529647868309351743855010820906511213422745085153158418410547616290690881065096561416368997053184082036313126291102255467040041124194745578417658853168655146905826777927953115782829858210690482621239151185233627683394623134832621529361808444529013125904123829908753333595172114535155646364204634409202482981257979233013186622419922201510645397262725339654406365136877853452868311420661209349619891652141440819420029037064719022170510894879326084042908530227934458377200823866249712060525394444018427310395617844033582962286385106276123754495582840464656299455415563275748064982591704833637185617101695294012231382941445250891707738613866994810008027036906751250867075648069876636860683500832222709127014424917351064303076265163516078072055345182510203669590101609412709855490990228508616928349891046904010670833541654904467086212540245474041901113641621922924745617780087262578018587298859247661651704950845325874577262497325445914298690733648155837042462449805267518598267775808445995648646763060185298631019958495168661148840440283372075829926017291879951541230472538222616272481546802392115424681990902461801132561314150185535995602917294177001031466318427807902469133918761160642259210633425976049627219303275760279948668634874498493876162174076101666022652900133339169083165718639276598348739679306397143230590628919235561085503762815245876238430283163572147121573143912991829147230966561660739439510609668315192719161468942298205711933409307637648188863277879347501890056824990786167127434456160889856199122784217494945655739949626937983988429680304221944889724971678055176872535294790303132175863528868944961982874590755382535787074320573116005966929614371758695345375066869802076126005326491295004106188083459264482179669509573870487837681578565403239276464670434893560839862538414961815828124621994851750234321197433814844753928775598266219575881511672906679425405023112601040578786441007249172484722765843107284568299297885492800450003944718616592276719303174108997552958281146619867895935752907900615119384937645352221833362539597743640335462498531082120023388026249583374984705150583459786800614128619383758250171156584926561350634189813293595080762584327920774140896782292697644880168112098844822781976519658216783803298829855495776202858824510212358956684500525831919276398213948566885515477499618258838399761984394372405440828553516305768873802499900391418727637882933282594808103998366377162062982680262965869327412861750508814630639291091482076514983540575033945549437984535075302984887739870507048774076122720500317764560073348512448101940270215694369735843786355766757287496312265004302481437437354874280242475138779941889410955351698231069166211587963095218589666754482716888956383438361909619149776825648279640492568410079542120229375321971910264804947934242497502133079431953030101559023692386122520119576503380733516855717850675961708753925098527838973996831698839662232157601641360399313381862773984748729289783441255648583237179561914186703675580890542265265064238949487547759962762286133331986174888272578668916550205057225593113837097683789719839994461932732614962845243230679361017691302884276927284960164863394744404941665492897721398221310276711736768567787960753468276911983883813717425400695064052249864348122230222824938577254484818318282563523051220232549825821815288967715352963838439413481064468233679728772551103630793420032791525019249032622669693294928309181359000293430350427272696862391348620921401521127454068086278827087797193287159954647019428887454913983335097485232715223987978468162610895640338490156305304172271884370109833403342098732155952768933616383025757607908467170943425079874151057033110841300130509493682870627525407983814909395044318255310255142198179826384587057223453750765295599506959753975929777144545019006613862864103886280027688676366677385601921826088145071490059778278088310344885059503720645076541697883763979848754335479657910835688964279385049233896548002165360586508109737690648868668254900116499846951727517019199130756611574061768612764596449546933808883766878392356665936010015172848710999627652075518112491163828267872131024561766891848265237361045427359398050916150599060663843054473324586052228434946157378973422254404670003376543824668147013450405185027907037606552757552222232129659414263366439339121011363075328321166353157408215869817466456219750817611565674516983507464402338318528751081661127647486121848425459844244411450640984847637668503756885390745248423013976454286733346850508722331939675922595792189413438436017222738148155680493314936458914420552895951423996489371331512340089630480129539677055423295134027352476685442613792528519199254023937896990614568788807320249847797459888473698457645589211517111127991069261591055662489349708588669495170344002805727954308166859062865458920969283168406330580957614655066661677425825451282637979402418833221386445679092641123202886084153094365917068702916866314931937118248108540661089172879332019891168019918505370778615510525631009993798858190637182714190723544754038468072236725510602805199433831232840368402369220942982660462597189512219125945414654351763079684532954149815746944701319323555344426546774886030530007461262488651346142816718845455846256333753046748390695427166839917884699783925558745967837901550733220328908062610432045562590034407481819324476129382878757415778241467736640174397162111476448000811497809079799248863124952156893257891579665136884340487828409046798550382156090704222587461751892037699502822878453122748771233727154288771654833946592069751911651971748524821638882569059214484431076499329211666222945263681477305740638777684446495100122436932119536032355897214628081534669070402330155560374221997558165530897153182420468005617492280727333070288266482721168258898454872466996351624972736759145165289512755693290310613818273848330779602944371740507465213274479882066909016145635821270925307254739461532059977613522371515997706166359242631143132262458322237672976139312695373626312270500012087706930475073970003768809582628029081149359648087051801399686039816681470662357690436632396437041505254881246777396395785881128286875188823970756219745578678049916746812357436970965330989055143078963368210009922389501071367907963644417916711480403122589448675739834309896158044411936018918892573355334420434493780369036162610221825491578262640107136563800709857897833935024443551793555790999953482186083735622205154555791319600392389924979290176833122511901124150793357548289724384296395245887048911765571446005547196132422651309205138627806823367932318875034996334389926498883609972866742323268328358301347277780124249022509094150177253515759781307253588589337277376335896117363770760105134592656385771379875398331243715439570150463538684034972931242557124519688089968213465596306128839466039871531095865838560780251152313109079853033313181680670024194184984432276064774758276228881756767683972774675650205379221574882856716709731184915768047590832944762515746416917912394313965103535960884500521674167797413261230754719698216069477317603692033567998374544383218626186654677079375912357585572029291308044406500593484367040773011150168228060115561802986837368836038062411151429211957124018555328341203148217468333173132410173758840439872101539065326986028851668517034165428041087155103698909365070437329799970632800878079044121391394098852366053237506427786838341983837292330697710257213849814986268767881500575974058254026798933793462137887381506131551868104447028755989136935615857502362424165931892315207270106239729844581869303569957987460657950235036994284303342521540331927127163574416843478622066981232411348355816936211132836902760571533033120579329003845719806744291986821635435516792504204245843343370802530799085693305274450922804778237238126523868236892859143396844697389066543509602110134971334323814314928594994651096262078209599237843312091717692061329783010793752471469187290086245084140409279474080342034946504517914733253993047524199373620903613692186564046377151190448479023017732121501368307762719702545499784206229525260631566036648964976711858490257942377339656222673664527945965253302107675027592156245471176636736683270676384517134834209241960878305454239022342507139530444514265732934179889406467253313766536453258640251360303298386332403091511061092372087942741348327617528002560196996811699280021924020860688449189732185622298165627651947930269450162290345681600137695562045414540720721468547119758192073792055928368252733073189894092538961188892575953430087682757674318245785287942223432089233352144890875453913857507132533575534172826387025769121185874423636288615707671341296841717460640205186757797721772297101474908337454499271002596201310542324779204987678777498572756364701009097389229491313760577555318890730540552407600763841164667524600432993806296346348514028586356812570991752281137870856688920974900309041413576745182578246856769244187603553268900180243820440829337870582578625149793969105507869022294353207808106954421127299229006004850813777451662653153816556154977861285332042429788052617709169990243321242094698161152166442396355153930167561585446796669293634491393334388951765435660184228545437384834217766589396497634506826626507212852582626164609930997778487376738958777114010391467644320112287220094049965282810529690513794703983999050170283992672719033170431472393524344982706287557390493655393492142219495112845531935566726967699651669795199640344220536563949096078637505135956824208013215058054480664893963676448680833419969124588872768401090094595183581452300713416279180585836916488972955726304791597681164664382697486219111144230159100213227402829955366423653804592761058892394544201950065630909723494759808155021987583050351198338234091415439528534824334631723793203272759510803620334124569671340049141314628576800228506910201548112869234973950622349061547434402125856115144778941840236473596438384227606537653211591321283565800784766446960779779539375834755666817639946203406015916980878595533772459275408076180012938497413067748043945295501404404632766582768529870000142587661416275485238071103968509506148145719820634888343717082164625690367694595580998582588341821348674025295264790368140942859639442032443324192924592313791950033520237711434895679641923425988779898788906817540992957225455928891106600716493069221705819814021692603080022386537356631018220597779855198314334413025702383692548067610787059910843173001918798905498774361926442089723433030181803151964567437806020396764247139902417363305449047354292202756420586059196872079366794131601887529945936055901307053803727074667006426569358277658545935130461103964193501542483622591286645012818626035175549595072090943651201236016202212715398410119302097540950485118180593520780540412338940491390903693726279334690706417821268461716467755812948128144626429838131657663894526162592139912679024707634219725028675395669510691924348945444030101454195760572759574266734316584286299367161450139487539706885834052431682261740887849322417567095582070668558446084027074312894957090899566577993527006003067636932097239201853668622141528773925218887248429652892463584377293419565597748678673246209232860696462293215257259809769209237203678616463623356249229604940872579392240458645681832837918113291233781128031603367700966351581473895662392820580192875766734858488260998390529184153424193138489668523192329429426324332436351248564694795728856290523407462948845680169760385822178300994427872213204002470815617965473742496668230526179159945602187456144815246372848046502051122194760352253656402032723346871916045039012698877446827742053807281336207480273542080377871653034214454355853356918953881465493669142446443808349544553230242431143207885645044706595758274296388970704862614064853004349816715982695157566138628462666472811325529089100038022488974708336398754774036869591370971813929144683849431183528765367271951250099956849970488828346689498736473154591102705977133302237873622371639567203350968278176902390774050333531318797048215120834689698268005207644687925221527219175223816871009101586443339784915070925772861339213585519742827941490294077463881571507214576501372410654978365641337329021361813938473535038229971390924384901932816020417283755139595503180301840226424419307557916324220996263040396133372558831355182905340626811507110755552785599130995866315687222546776067395834434084660288375924360797455389884306973002759608594827800534070470072421303305768216328140255523373205403466100912663566698025171499795282689373974191839740928321218602818733534755583530321616800935455021847743490712278498136035218571200402419170433261586488021931297045839599970935338637247284169534263897706406006126823289260374316339573608741770528865294516777288106411902621559855849147827948398742643750288244586000476895962765231170404600528737122836501736995466669517657087910426078027212988451549585184887293653351561658434060747653406038858781456473177103235504315118516674519955994999803704134015538854895384084651004443301359244369268582108758149185473938178077408621335762309646456226104855222002203856707678317369155148017010924142526014059857890210418422549326725154468502583204982170362645529482319839851685838657307905740801248976226333489515391289092527925463921336021292067838168273538721476144415902327281599275069363417774456874128772744675957669915948652449270895257701459318816934047296381065461155390727802383668271996221155007876129926255776265001203276545241457960449755479970490633391078674400292155784928092100376762687570567055879695523242713505548163571721936724314706446610861138259029082020551241756348471914364905327721765032159986649615937856446865407611515576880076045148793467656125189001236470643346235957951396308666244633182695582228976366467494787104411824274361002046265574089850118286783452350196353508808217360151525685940112641531975573918329743530980639212853110762419211544386014985159187423607483839128999644638647349893322134217772616976507043947314384266271169957058134019298590932106351203385277268394128360488778923057393985975798696218908763710725374453946606828751391947956643751784690035241075495706504275200729473221454920151101083052942184095739760900316314721952432577593389323908109376095959510714573132355550582578249005614219424828567754135495470972110210164082417335252744894139134532999453482926648359190458720328205822683702664390187330742306966754270579003343557159577407189955261409544438572384369124420465601809064658408164140758976476135228341021562744550373384770659241791400916429443965164208856678469272005786036687788714810319987296782005094393068076122938585956663114484742693271203005410310695130736516307788004625523245546408610790780777084602643736970237382559451195751839605265353766543312051629825203734849266684328375546853594253828690157363723987482758038427660856363670415784533834180028481051703687911739969251907218598466539952251240274629278772377951302634137774334292361433840377328087372948296584649014961995111878787854534232359252354486259057377564147865703337353274825401353512389847390274969631841458505537895703117610679716756406038916861571896512521797699614218469634439602036819862274325995610371095391498453398720151319097075507963122012886919103379854759660994307002983188964478350080679550173151868666273568032150330078486785468711475401290590450006354695899148944471386491590662940356127017000158146098858402552434408519605947684081767919314871957250734657478229689107930863246680802450891393154180084975908158402316978337289406934997321492534418817217147773563493593562362483528790298973983411366953625366994945789823226502299782141839334900518174277319846320726003808971966744040311598429036995169580379305795730379305556209719009404975670138212247103552287336214236276828479840610971396975361779145798657622786734424414847501320849924682875729742267219509400702354393711060840309653003309159974436181733632974695144722943649873720079981820286318782132548315176686087602553434585235446768503299569461188478783525907669528115248962075453805725849397048747530407277995440610082866403877206281340982436752647154861670716906340843689811758974786248490987472245695309573310486336400843987211966965378009021139632126159787180969164860272260159781680466138662570120382893258111292233603515668420533795971419041538694569734093037872508414992727974055482235293484200650464216701042133231957099013979211844389333153619223509717081437794202930358609478342632774683725904441378880845343386802408496432016465886335366129916242750621498057362481528965996247515148545301973344119342911110277983696488932972371114413960058340128061837329480125405901661237887346158850302196879351103337977589713320311737653570184402926873883998594453320095434752183267479271776114999889765246978975970830412527512720942206604073417608994686494811119311750575059253367955894468520369146671776145437982570722010691574922951032659596515923391574129678028728393252649023065854984603226651664458114403047340744190650449319630581641117798871629766165658698865266359674856499886712709443110522850234383081664609274574592410736633030911532640314326140577333366061328018152239369543432349766666727509241176328671885013695112895424855865352361718539205239519948770503503960714170443998121271786880930954140057966827324703844710282675041835475107048643005407675016070525729005824380856563992339979607257800199359990820487832955998568088743971301856458606871971510447303555058886635707877593111324501529337278879272521739985524607416757130270094518903075722334741139651276296682738707724861507287940464090032441725457782585695780646036934725924786366269746288718653884963747880139969995680371804927988284947116063024236896104743911079728812019114386138949382427253255563064728078162892362990717146667953713631761666378662698293333381236355889000152413805317646510106259519726783012795765590150871390629491065768121270071228146031568976904751269322222803497741509598663952309647362298423554029174505008008393502795458337827940737194042245189440508085735177086277775597329223424850627885725195621053243137584623130381102575530570512733233357280638275496344425975451360112596275990148311095088624616693187291700926201110703427679810177104737887770597885515931850594514299110942449704376255832884262101020499959442846682177468936598416288647692849454661501819722577409587721799914294896890648061627533934538430582703375306846631108217738960316777627482693126244410717261247319560571433712110117318556692268752970715807901078782917706981709789059028697063866640280738723213471705202335110007732542054680218664946277251946350711357327059745273289583457665958442398111065670856383926115723881010249263575870082852848441219025379738961516791649103315831088237516445069317583769428265756821873057011560644621022209324213576213201206727124062904686240072497545132842856374799482628020629501820767180977280635414448526477768836578230952553096858801122563242806084439404837524888297131318188821195275475994574753765988973535536988198091133515086877120266444193548350119597924558605485232478351217342607989544685855995003934443896168900931490502549865277322437523680405580608590330749662796775845254128685757720633646078663971485506354304247357178213992918184541648543880210669640249237266230170830383520758921425110268186557493654042409486133546714208219859842702672309612156466643177890202261245717529423984429279203884967467598084921554246643302479678250316634726437240299260769706407558247272662962417487648892752418261411968071004433605000874839491024076151619449916405103652739827516205400593723387758219002029941723556513101342558787878658351860253773595307745330531276797446271616132165003713631184804272691879191474019719113109173614423985033005771333966122117633782867619787054738915886476284490405472360240003807323738974767309338686311363450891133523122403484920246016636514979777715285518578798788862847325405543984065906921378259056560065394630266529895010604474217955723573441431227605096618114537461522358450739067142748451617470097021652132477867724783257523061493051489719061111546605553532248703924432290743808438122087759191225451245640208713151800849875059106045928166764709403944836665719739853736199448830695086609203683772350015867203575313178601023856649968121338278924139055380426915074536478327684692411583999977692603639388097092492542607194924270987435731603545878863138413410592559263772455430289214864592597367977122457483631411185095680282478546817736239837288845171432457211960413175698396617119670443846455488243168645828701979713564303038577916668844117215152187580507914875296305362493365692203860494012057868864062856079936950832922107799976964234710335137300877186754330547372130174227941642186261244104883891204356883707643174674494971785414859996577938986680739150339924594420516991961359990072851358508375770963545513492655587677950666107602569489275160789540354686303547172040705503198921007208489078538069900262741567070230359355246575805110928478986723744913412361800658577645512722734855569157774067164688033634879315888553485577557111061299139195670989957203216229985532712383981390104933919257380225976304604755123091268740127061564261275969924399464451892020516914281710392796056949772393862669911686372268801930627446420238685890634871128792888235050816264693570234300309296718011669128966419517204965341794824886605425009644758486917384279238791205268333769232986160181709466685828156185381175678218383615300560524705051803248650560740409297157263093247501224686067138684826132740846350516799020921476518125968135212784441578787329640535617199963280485776944326591041564831706033514873106166130260867895070154244762159476787440619808952614377030058088955120786375205571931193180742840069576684974768750044041897072484771380543834531473955075236263660006202220063400199398164768047906465464905055386151335491832037864268634857883612639798627291765757547034852676654534763275281162737168794757826286520310413495059100294524982819185017934158377332422673300197622009189940693130053017669682423320124794733040548349051743678645171534747573324221717080280999889556159503893915017131983177945672828005344770947036420120827900531226778487975751255380328747203809787426147575461701844500962966663516284839890163669853557069565906344129854307624355496061694645017076449311399275371607408295284907050168389970659423714868641235250062026786621500915182134421539604737531886047530437374964730798234171411333808064055718761989769510455436338004099974849104562837562972213966141414552324992019258370138539997503255055241099314868912210677348195884273070745525851448862887374588501563418131325097181141890683320012507734779800902759296980232735374749468182900186718381782279640710991245076908062189513457054128983559061945618354401557874198893591704905815782687559537934461196942360628787240233164487923960015965126686947666630995332794227382653092196560297602728329255256229303983295128577314235160151358950027606109982313196478865773342394670331373782692592595766424266237769099701606574981498482909862544362247800778049705147047570675347294899387196946338602221313828746179789296998933543981155795371673872636572883634215148541812322061234093928795669960919199997186417202565884312335132250238706053978666400704137118323102340522215336530260786645064931665808589690014811025479701349544692458538806885524028246673828149780541484809761725222145674863218752132560227822010294908816272367977723846827199928238613564332401396106564918167616072114275843182219993656465370729801894985400267195979922901816883046629624728605706291472879366099158814754807627044065509624752096255525213397392197567742156194197805163259253647150593091388930668061100656219038376982554520030757546571039325714708505509099581262258083011857718333319683308867413061830209231502338433776657582604126649249403216485617176071015671240793862406814555788093207956318750877882078977209227531295160874066135192819376125565749759520896182935010949097740318099863670044385290906456792500893445462672321478819998995215515024640456913202970542004406866503833206517924806364246111022854172254664052540597650504919430518309803840114487613055774456679399979199883957065471212822950030698023060673697482401566627404603234449642596971429519748465836091026290227355114799412703068724605376325838330022958157799879488182462411580201484691231604830209139936106902253559050143876708048541547882593375477972274465159499002435270720060839109572500139700395088831146203883499850399343177492329010093168134127476507111002879010582285687141903390195048507942941508248079469979737794492848122150367254369305376846355515794772473297271634425388816465556732520226248801123882782614309564727548233268713118931895374627890866737895303615318243427224921695758813578083637506584285168142469203314333192373590699309215966331674733098441463164857093267672887119415332013656619354024219284695181181559690924141139105124445363040098066164563025726417327623436773375800674286530483669429002295548736098846078916974181592130850837746931997441283125018534632635791162983950072492445223135318355520972417330186521365738849960283987877401605842134084560761627314921360784296111045481192758150673891416208971359752972941067860469023541297922349026870917445056973189744996143415515839883098964437031838908720045900266027337820146639114890055546426690866129399276665385054694002781531494413409651453469270300217539809818306426686846572558521690139502355427581873144015769001920138976369328092247183381831592475871826444676272946568206549811993989253885947339071208630729767054865692144183985436365761092004318168833092794743032602607400750458849088663741457574142666611162697775394038756022701584623399231266672041390059033160607171480658433651981414535320116438103873555438094796214030273328215849826565969113106227676547879961993716771772048977234849251500135012349318178272517073116685383369809358631711243385607690891789300294978444571307972206736626479763637564643624294846374010145373711005741836991919477177605829884969633038819210036980473766606881017954196902340137897876539480302802742178122869732880036755001590774172157021299249962012489441891960152554637083252934308577452990757243983497727963550931479664137946535788704640857731371816076467639722734244204080453023562675458932367989410715781486092707750325174044401895726818142939129451412720967968521413966314104693712610540850975878102441035219087315254364423893502140692728612703143052867560654673375340691679164693723155023658188746874135608912151521151322705934142051146622318435081811369216766239703637055600055628702258481081575759059690258995427482546094860794038597903305505837024065883022148799905047464884010665877925043985249742401506216821448778362393352247833924911951075689598832882530840806603720674319461040462697231442254167047497906601166538414298609234849630323920250534127363310609744300242226893255901446608901966663335908134451169887480425291294475829321142364495165387990037189936305037550480023476610094816519716172072837731263993442048405152451336137880096038579020298001673244552376612317965652615054638931637157708663172103887545424317671689711941768273804837024725586387105112560485873875360155852382701448415237219126224878275912650816119550794259594033961901183839877979661573125506219295542040118980656667567849803959364658140622502495001556587893415812456642761087559426803185228796043880032640557018627137708523373466321602761530202793466545990409784731087670607878553536802138819699348409190682706225069314453491577836741714164199501297756638103613389339893755779118448780296484285877268260089781647808788466091032036682276194934613214612449675596532083170351785935695275795559243840485697949928026432771653538810151922491743701588796238741929576649509428695406702838349272818040870334968393014697109392882188546469552315366666648433472161190579827348887517435075942873545692320667658278366092654145770279431294590466771067924422379191374873794670572689154928725360948993665494780374713896258508466806977227616765938871615901964627739373633084218627397603437564533064368018633157441612160916221095819371965256861128061510059455312965498648870388612787323559154304015352876379411922252886436983564199272155361446451068552739394796306137050496561116201203396656694513301654977509661402950083441604045619226061114792160430921464922416036179946345694618231861535680788749599294887496018964886173507552129750204562537647936716036582809343419848952749922894982566021821047026273870466268401979043338308346774999067644220931012634887960963446838586805386040854814616076769483386957759044142998375011320556014881641119586568892756986890094230117934828217504368969941286908731458085332285591894017524171275652017714140965725314086161406835291184179502526932973540634927462487864084780873213033952586390002538692630289841000345202912045497121811642251759005249864859723301202973590292156293741132427998039806401593340379765877265819704175167020016541643702869558739346770605221912659237792229479816003321943237236568613296722015327414783141878434383905982772234352300668427248250368143436252058846843925543687056550143200073638909083095998071201113942189402266331198335524240071937158184160045982279683574692315382017749492086199900867181394154590573838384586015413230541192272840092911711900083587815333706973943406088529679452691114192470048199001485714732519637685662703826118010945801966474155267463227495861315298223051688208344898302399839457262148671649474579811204232160725350966518245338031522308251826803255967306296515614558097933121696984493317398921210891899994711839414403983799452137350789187196864931493549648604625901753416117060356421581389555045883550512697799972280016712703103136014854259411333196262849675860348743185661691710888203724167801458042936071081516333174360400840512485993055026831908061365560005517611232005844840370558752079930537183272472580264250837137493527758880002536761841075815244170881870670201188364630177716686745102549987167664405993658963406411993997672641065464153191271405841878258650369118592771336300099453407317038212433919182934973931701799410932434589657220252654736404779516234733732412810787034568536102548105916134975252238451332564473814523046590799829019421948448026990267588166836640691397187808123786498075464341657279446140557623733031697472666134755151867010085323993277750995487288968658287747605347459555158423496739168259325674946359007008575636593323502900477922201151067602068916860126143804688699371526833425631096722261489426205078175957064570205385036028631443915878310710623721268622283834682462154554855882080240351347902361723008233315858483473814173998017643292602971697986151105372361792048920080998799014964738901218069979702871307464144638252890481198014008294979987099856016923515231620897968403579471719536741567666932557118486924114306794962823831761477464226348744705601451312584505806751741027057339991067180839795492012429133718549572778752001285694903094743539296367479113775639320380637106885990885000351756415876618738972641026926686031093378080291201946994469068623266132499473899977813746327674883575542320880426322991972644658150125840845253312393427979860266596154155370285373846859549318134011312970703838303077072255828424769739594792602049057016111977938593602232437335799713555896925759153799391284900829193395805868802280932659190907906393380075090940088791644961572480679345153715289925594696219741120907391234203204727366551323341935562703962382598891171753106118756500765409244304662519475896032224995775628644012785214563846432328585307785014523768932628403088636905423842474613234977749270550501910143360281401866198496716945848290511628800387386296842916378060642140601733544620129186196074568485394140008517192547752483396609253120773639150823736054041239413834588740959723370396565401448474920588729685467322668280785913980605426594997490092127643552125818153399596939776021002002960144563542556676105581701307376519155542518484965217633235311881466127967470420171971908768785391235411311076720003388649475203791149331432481681119788543352848551254550301757816892044559508541127220691336507141835420711674634094469732115354938497690618878209570387664461815701960921857881752138718567797907914140780534739908188167354808491737099897788628456274058971395326686427140570939855167962407977588497134994294687571955353731968321102914644240393904859905591789629224191948092778679944631088603099700592838136034448157268095651457598618853823372673577041668179537744652837883655690267529048778191090440720317481019166829669756930455680826658252943805028700408812284164486519702587115988525396693328547953546049179593013125387537148440015157156857772803931907722766506298948258437094741740929590286710526339688574600054865150860748236696841432004398035890285436125144159257284718135217704621337608736964603170876987199894754633259684078348052896092222630060596809992194520376817549761547404799414718171394003229787075340352923384971542585177227535491195541807816565977714751840755909739349742193085630363532715032498072003824439931747112882469717192848903411366551782663031482890974655236683110184794726457222552311808088606645393292167448127690283077980451706763478967265494210821977842599876570779245711711525388397077995305793256178255359925935473144891919355131430920124018307461041480092888114090471540838948616799000705843926982283827630964410539985859178648561595087192879773561859529036945914889556153335033337880877380622699925633122134461514058569643033867626733812153646550896481402495816829698359007751841917279344808435974900966468181188987550294271154741811595348194810201848186224397840213648961378095183884543929943312862217776578085441899049248768556089242694536658848324921661646665166987953612887675868075404310860350632183577477528136977511451603664211416011722723333452526156221503203760536581776260613923349421678740921661892726737139818604550789916017757516575542108636954796523139688075355895022039709237036349932177803299708987179139273381431719765988393483431142590676212046328471505780039015280776336196593348833198959803762610723142488869420843209892261975194218953791417697062258944186597217605265332445361162156933925844754526121445488091995598415808100716670528208950292762982065437409682534336580965348630272407416493041011617350048390996259019778645164778753251583761694276623293531846379914637869936707386930210385594717749900286159743222262244105446160046128858841149437403989213830672462412366812431884146338169804443691501810092070013019019928182841100901060630524795594752203944421120374711802878389607045016463608145118469295693345250640946690007452293792699722146046758351279492146168869102759091425305844846399202116368783324750722348896728119689038961187812916458718642821638808238665568056558436862560070691884561857646805252201523212195202291138609115568473305163783414428567216746840634692195754781772180539887103389037234659047617676651964996466401777538618103492426799950144181784323949359479139890323288393571798354484423419645935216627011400197923818770972210780328908362615727861362159707560617348801341093444180941397719997312220652800642636834424359457655883857101603263032462532174931341542814999591748170193726546879813019637885206950620698824703646097202231327510240313137612370531600631672594992746394443627527639070255338815388522776558613328872218277337829704362555167658718218199091320445468396133722484459776941915756646084944064851782821434577639718484075021580223608864832528725065864461863930827955700507320997392620691581280887200875647877740727702796677547388354289768569062638944459146956603484647586480763928939061277501785462820838144629373496332317941941982863448972519646890592368831499316424006732708590341446214833484845317260623144051532281638832695102918610347078801866009593581528318414055225633252139062013583931739553815951719118826351948236693641635387338198346561190079228002626020176622883699216523620694972528334136480917817046241470294544888803162549915213888952354766779580832431744501291728529161157363801396002781882171991526855645980032619153869297760849513242838013141938312582661166079877579228664723037394968590921516215670331804930294297667214534695897274758064399640225955131255423990343033270149997571100362046540979792166935594856112407480041714767694157457210982412868438128979168253222160189010898034339919522856381382372479312911736744337503426493210848712667609701542601186373275599861939122691177405452729804139566518847518993805983387454015672304336332236019382558216944146324394074826135208767589503259429390343514077863472336405591573724121509840330853537123171988300352995277884093820634975145065364039107503714162216917940891792484992988175551677403922147747916174532820550585560860668361765248888917525765392862388343795310991900013501268677889141757668896273913510912858038368021909714546643118073220663457197583282005350142812303855474054116426146210804723204240835500259980525950206234331378525165261446110069417889305163246585163358431896167203865387125417361873346442869613163293703333747620701224636461824072643793514076940329525339981640341117383191478142057651962868928439251345227003707480531289492400588933128669763211527073171630822637314130229384282535607866290499748860736477936218322739571834687026976903942144240557217409371051085049304368849843750506800232506901299414860332734217810427172028576244289688694770218496387288510038894528590856006038811457599095230382502521266381083915436252310421943645230785629892984366920354028487063930162669117530061999547571002263450126574966473371895512179801591641714911037336910549072350045408615209571689715075742714268447153882564711915549219249767167990465753925460228851312247778964703538562865888593117137072785720375744632959993519125245653125755609089872114713820606626712851894887545382639285990607174500512276026377378153538327815967613137758012148134541846778574550380454633259236827277249409982392177293633461892555246749664696888228307363202339041059906659653754006817979405123354378517480367187552918104829757514789090607795022569727267246722867229209382198075900516528566878832429639376990789830783188953921104052354792608421658389642067307953875818787818662941702727220822469550057393572154114875488668639417479396560177348465187698392671356607644115412019337456862809058980263554180074344699058799290227173863543629811372056689047048361177997196408247295355149621520169437991206537812765119327591827676258234058867667986193075641886006631221636951595680206934203781921240211953245583175904694094871479863142284184269789883522438551710193605838324766448682769965434989234754378767661235572147766884481726952853258114948884164402686988504694566736558836710159637572482389739082551082770745056960727267395201426982122564891782039413385716910676074906992614241761525856637495245885812245761643274247672282123940813496141956370961711097731009021949166364491062373493336914294201409153926032707353195529905481909665199641319830809202839048911433912756988449112474690233489649374638061184119769146504742921732002568792946895122928900496039818884851458532502848245270247316712169850361255991838548839590621733426012407734858795092860981977869817626263975066102723093278168226356651531940917721183763653558657974315973518555145700166160608238327626909423426723453431729909321102233364624642325977818112957513960730695354714261564153504272240256280528165445766250672580908452292785504715747461152720747568986364693783720623996245813878984425489411395038914304069333919248067172861879236909038255856068849691057575684841340423283959184547519560608585252371862871928514585662925869430567153918542052864956093748686468959027943715059649712603103766607052101882907447178499541209629207565299704634659090485309851197914256258434281598720474238944769919162806840411715710027828215843592283716794405190584849091596206541637139429115162258648524466234572549568152743949333573338438782139469174514373460051282640003173585751529639182802027503959352968496058406914113755730486515493533974375355272237376750604744232800940644986252272880725452640963810629018680308352510684799222264189988934079560162236517808050500787827668342655418920591255502221065322642599960445308141304035189103487807691236649588813625097142288099134340120232844358839453598649418090019759171945611327385332774561937606501765010778524259857313296397779042202336912390939531127913674134815037040777362247858303955162445457781676744696123064455117914947072568400634651286074264488445154041528038278563823246677813919851591050689412907190327060911470508778677196293087284492506746527638495775760038085173781901611538346233174738675361133228535016516202869304357750782800059680578485322115386852073948343797182972663572991704621000582653949876019496124815070447175327821552625499400593030928811383499932413192069918880105919327957420244493170252905870124706162124564749822911875333115994438350615850317848378877293863229235275134105352821714095642987230142944374876131920524874237772016729696467186929523368144498399897477012930966270987207260351692651895723620976822292300519656062914890920942647803888960519856561151537049891900194732139911077299844091266004695757331668941591640072265733239209141923322276614748203334355759100553989485107524656391194565484345682364898658273112214096424485423786014832869957105091265854225774438908859087593011401055208922470511442995804338262212948156209370958569111085626723279211517738663966687970025106073377962966336344748001424287079018670239675825979527645984577415329271502263343749284882982874651593196038153112909036352220132557011479746631770250228952329733902958958584185678269177323704862166509437241558377556677508215087021419450465844562361189549670442747222873110723518631130473295631752550807958004310016316275072823043472502733260963078367798523110617274597758633856645031460616615516510314192479308241114222179809953574643798763751887971111606774694794988431724417346129748620831540623359110032058920341075396334220883571517209393059963729322043340126463021730603445200604230355727774173705515408879992923950704172429500356218804245997900682419882101377107985460148922078798976462186254291914140348464515991971999744271858803720008965945291562971015612815130759096377359204905550379877219566452797995332820689245181847855093609360088224989406204968824343423356251106543059000356393503397577351260355922324445522254719836755369665030637252823571241143271934555527784745576269006703721111000958305168738879706983592758695275488120667296380221707430003474775528377347693569820118823442703621071078680326236729981401491640846420058842953326665281081573427622192508777644335291676148026920121315290805340315114640620613562722632617244603919621587131555401162883276788096306755134400406198555487411883881350944805083931428032419895587946364103466924839299080214062005626791990737375884192707463725846670009614048085747436474503468271414892302067736362663757915269012403889001555498520655598526347583172528281356496250881964399490761824917740440398548039949867841801139651390297302162892291239262169944070356348109528629721769882346421456326589380682182137525314646758551934856667894800394547832113878504108659828185503960551900916664592337541732586419343556782314117846745218803984695939992684499983612798416053182185685585998001624721138332700138718512162498198474706195382021638168483149002050388398019435463751819796587611079970749317453717567515469214912515144530410515173261373070328351421201328096859094440694645528421916064034242898910241732244678460175318408402598413354980534135205623501009554542906617297175947772549611856317107870390781054526327690336301635743166232670759860895631979271240893432551808235147657297211287860660020098831481513876563388648587205700792041682150042620793234969659078820383799277056408509750782224859663258893995822483803903275950815696655402598467584363915786286712966372563151997056783909030510648859118925432149329722764458362901388207945731517338349569235856494366936340976223357389813877052585197719825530839688928071683250326212105992231374408921510759371230418014755205109382874119348181921475842816212691237715383371778660302819164115663681960276301540398709479043607525178884371112840399916272469476560046583094864226275634977669188745967765793097754108449148841005825159301873576593704541662100906624741735300686421523819014147321360944058435565202398868415778321648597340206522782377836449986234259965109272769570912042455943460877262826467387395567769354179688535703107047198854218630056296387447444111566889699698760065838875665794243922686886210525785667415152129906697158574196103718802427022055062459953534635496718877764066794980367730821920934628199804913772924989410427395206714221828536941465655137451497095145761368012469338195691022429389477940263681705250935246352841561635138370815158714627640113964571763106529436476653904074437355564179406821052812872302483524872481638123150356847939393545187822970420858512276820201062154535040526062375805565548826268096424110470238761617935624642498724500806257603616728621922256038471678583350071242694939732097255412259891528272958838964007432224088725935348703503577424781610801703632976438728720261795746075320972855807990908893172578054335896239556245055096606828221548246453629182423217421608737759819508259865471082861156736693485446636042821290180549421071811223511790901846870312339903256378424646145196425291949303725965965061821420930046067427473188595586972977110887044789157506828847349698991257095215358604916642520348441539500360215514852797656284192758786097072616026076557496409292126372323223977041999337554767997009629107116541816896871153108902383547977310751560925040499801899665377574546160922601813569491228590976722914814329170494117737422156371737536484741733194048665268749118391696214956019383871884447168582330363924572721749774092389950258013596357984159442078025937288810928789236862783022987644926267604814292771164907819174779176090850608007621621404058750451080828055422139215474716591688963708635117692911615540378157427594269274198813912922097456069710955952659719580124017353623848583902833389477999828697220922006432571026702010510044435111534963785430529974375130578721207219208957342896991189712484640684254009032848017006585452118698271952792905045572009508909545320532925225413352353960016137405103667303772466467717064878739005493884805618961090717249439414118111241461894400109791306044983239424752416898892723296515790528453558626097961815267501796074150100037441078562978640739964609284661443108568440529175107287216598172803209206731399379654257472776086958617196629604286779813144756979298127625710115029307794243741602984995313708425484843886289302962896185535548197480089470268688542454559951337019214199108746325155070549249537522583004400078114790764392178493155944228059428460395404154663166082930232283771063242202557507375344079397970472120190734350591114092784826270909715673640598221647103590122403546757591628280053461674791410258088918436425190542023911611538658067003641490105779420697178466107345659043247874694305722086769979807697881286948640499115076552693930880222140682559918845051752172818831689274703618728849830705031199923877562396114291520842859768773086862135887927194313080736646330358904176650105948985783769209149808788976827223668928904356490597314009456097247236889593220531481707571020175890612116898593197194702974828845107324318148201134524598853033789901931803719411945695002455928513359106216845168884043964026935093295670033411779656749073024305192371411604901332838387871745832169151921035307807806582570178024594633792033462931673970304853413509823598846334391549750573466808051822134575030425678561199659264320021307629573340180056063609347406246415750487605567718753961924701483116671188042581795229740674315667631997269225785502215055096465569907445193106302860884041729071052182455958135760029170704427387978349923677366398959777508640564578896352721931063640724218154448552598350132779768775876436788018687662667609501286166406274563474788289277680649813700173249431118836763831258402422912546514530138674456138317886658444593998753412977583224556392497340401883320315002725137982939586448638643604993901867831319506079932078863499144305132323442576932311706401181295901556720884936768325049208547609421457458507976149946070914601206329091800914648519006508857794486809196526461323326281621386003674360917931722248319228318810036215653380946062566346240395532537752235450687792475388227562388964333203321814274278680622980228734184906546231245997434557036195245937707464608908120994855704664018696508797895429840822060719714704481133557436496836219352501145016233186193656684598465375494415465884228344586050800205157674626759384493353099588095625964045875394204259743207020751329715261959011555865952298072871352628108854246167289509005112067373002232671564338362762501671052723228841279202772174695110310025091420217564491018614570959760855670868314129397303524402176583075582612384463624674869725853520520784416876864195589090664774810821549756320892136556968155799820756974907132911938860598845032728218858307731408934917318639722318732995909183168228202603811891603889393677944355708184443444675165783963641102866370789449807232559664696345284676739507720220135467156808811131113708556893237170327733784485036596386997412350550887107001766732632954322442603957405774907557890097701194318443801153055154619949360801569202923176824451422246665121185428976357486196846424583928518607456449053590809295825001945198744827496555608144591090677626898813688573801350744174635476822091364747722019252263800797562677237136434410978537476466079816875329253304610186092590067606726503330479028524307736328586340126943035059086931486464518443127181061101913662583675635972225996397075158653681332862794285535385515900666971128038215327998435077329768758051081923356600231787356770050441377707759767333331650801242931523506442426378350784401162251686372339613222146948179991483175425724247327219935860217736166350866130687709883045314182229997542885969717273085926880486971170837118132219800016827635612135196742550659674813882006346580148994784915101654275679486758668002822792608888750220131326700256531238826950128965062046815347225080125102738643414876190317010830553891514816169474374045230849068415966081879884905938500634964136030899574267411321483395850950757756345234990583206030067060743380284068707277108986046296191528161113323333338818875841461643909912876920739324637654692821367740559730659763098171204889175115063277859519980880365589064901024935121570970879830082050379246241591147490055462275564635838351811974721494023817804696282083739872008109862741554319544780206100196466917820446003908175693280713373781260123725402277607306713186676485573607167272517808023984180935646531989682025276047118332538383207827254907015780885607022261171274891434674421127793655597793203437105580443786875670448443002473526652900456208036704288728142555856093910054317026889155710599747587300750194206265462895032619048282530600161386382227163915541075258532241357334313228469924419697460115351524883033222158128129818327019386650006195612518105969604591894526381272717947305277065868115058073676615107527189169457843540363149389058828187254645019151730112521855725708364869841098707944715480627521892911238191852101283472399077085912538721173785132675620317280419829667868743885016004699593219789294607023886072795622436139319368583845643271172116002753572411891307582756593382566988744355195377124897186743944806481963333731586617655618968382020978106041972151992729771213474212202500251866610594988694672988653209796328378657367385025889752736337373130520583189779127881429758967516898560258499716342358210297584599152927824921169726163009794143308769672756069544118914570172739446182418979166098776086133708305794759875973016976787471098882984582367494300042908111301743029440105884225021072996453492264474268180161036886110938318222621460037447611327830258928190957027459689374643365482874691663661699376807352889796629729813663056814318254146825274183975404175653951288263305510087009195662834139195799671295345333386925948632459016493227746122603630772243347574868322101557787073640286040710782770734484389772791416794516885097463372978813978363055037087632986275697818798304408859964165355631446798856720651807444931478721383533360842814934774615848202073807383985605950877501569599272562425735550129114355005903407166579916271944622922920018380857697884816612320184054473708984612685151488456634830649045605647620529042163643053618403960475384992838078709684560112326213622791740349931144017832166538405709194159616867423903925557975978751166278905369041979441637121433262041064909668015308070876828001479987570003830449342575765381091836006382898097020753057978658312160002389327956336620724875934098249069121762915842420361307612967875260147220914971924005355146082139718222031594170114713162543157795356174951354524167926844462077688679617224347938016882432960292303967700470306631172555756430738921106282127266546388987741746339264951188434258898495963252336396430603378775627105572859453331717472872422247981130909227178110342516407191415531452720510075255897950362903812961164423193636064425483459471753368513986078887418004852755771462782842769070965987330156456500442820795415090745651216712091474209671538684452529964813830921451164197432689609420324469836648305268676811420686242586138699146791042065788625233863193260220159838762320718175176516133409990272639225394004864898189890503129682854614895965286548185760436568054230404825957305157836282054123127086096285312649031024016095293742933866826046033392443509024045206151457746198914881375863403991343322603635382944383411457495194656690406565406977538168213306553069440879333265446657610533821215297024106679100976098395445602221338062346452433927429624328815317150491591728581801269505686947056345431289449729995638551476906489834969504607212951212047789494237478189159514147242981158839377146013707582603944436318195842830374914103259829738506749543596847021638396494601316500790102474193175272056069817429587990307958001846282007547757474465915965817383809982935894168643187487513705790216635947275101848186320183805301016066623314875058108171202119448279871671947540348361074413960562995273625131388804277462160484192084183832578613947139730767193301336981879823672216474369594187132661280109186017179326507413298577185520719598984925126174234886070365545942817361464544999967401922888980717223341247181181579085543874025851783370441919604911807804025571423877652617765249753265611204504529495354166259673779754167121113595829844855583382249862033380395684853518469965003384128312987955945691573208612990998846367003072070798398303439500271290802543605201546841695145552428102729791456894766706722243826719150281268289753411294579202345921555420595404259720836156587894382001680454421891005868696166203501440422317420125632677147296852886239824765962247760278676031409178969003116492041445243888351370783866980756981950850161420553499445256549584996284634098173040344971969995837780970015223794412366462510089065958334605007513218938520209100038882267908373466734859201840909838893285778076014056388314888847007900780250099474035783483278986882530143446358070868076129959181012154710513378766142883571313591354930503684106057177589896227435734771084050721188895830688609658504032943946520263410007133160536536200142669010593942479597387190448592981655760395417524381822961081577810453832358362462167066261075079691119402885367365167959116823401520779402058052801687852708406857645970377269538614344660040396742055877654971587543890790227003890339148527921510522594656476418334312013585384155886603548730551885275677996479762638752460962387107685049494667534024929904518794710390874020195818037621117203603214443096248337962671394097269123288845331788990695580781492401767673007047247463710394579412933145817249452985619809949762713459679443216908138283574460888756023205244113543159449841789611368976679118265041216481912711875142050713770388086274922598339389403738996664158155909535990823860336045166831256524541995605115537183527306354962986091112101390262676474974713274643516113782435651919382193958780726999697016728662629629218120292597719775388926855657920911345527834172992875485197792953959351978260138290591446598484617415117818188227667920656467211588754530327963623277854129065056729163426747385200788194180444040509736202483961962802240958078668880686524262702753252718517562770352673679097084046241538055864478571248546592585883822951988127661698946992954919484803623473120854888745605925991594962896048226603857393899320974515445362823195229218700122291461318157049470662819897800446238252159451708985513784970493907030478240898772935250769868059019135882775346892827167258710551090800831839191735263071115034888352944429409179337647055106395833821577179094562989621648302699797725338495340653858683432043340605034225410288332779146586098705279632352525630682578113218523601194350906030734258368963008056856299777937983841099190188710363089824104955854144758965058445943784911372053891742471072481650422490249415433292605333831532107465203714747663674459762155561150602257155259332506051099743907913958102505900422867601851577496207646658530102957668888183362782468852157046214094856686906252767387778265426644684886697511406212415664193407875317060785549067085217469201369967270892971446543973973245629944357727204825274500379988940288608564604649953243768148421372779234948803804502793439276419117767844584257666301935924931595073410561194342052352972203750690993933034211603831207812633269985177544362188251898757607401132478162969983779748911910754296755417611119082190150054851095022911766182924864959473134102790321642309727051960191083961283889855059965972867530422164226107639933247848182024362970863984813655389440498410666153986661223006344779197226788649335177037669193216011736951195044284021261504316678281199119942679487920581624992633535263451100851527071589305592397001138706035688802574639641418781022990965732614001103189555399221404322186033473306641570582972609815055916016513347439839659182997427605081373328007505972370096740892292553947909286362247585507134079491801138963257377258349487205253801587880760375953189019698179348421226186319077501940054071589149597108358511742112325143143038717803626299967127988454924136375878788381532791989077194437750194148264607392402965449446195539655407914753835685367069213420492802751229825386686690245843821101877509841035556717035509557363149174953832922904096372807240048455709992758732942560941206609422009813722088724371926038145378475518510001942880898622865252743080389442305027600055253959064312994092540663091762205618227446834584789964882358554518295161408593500544249124438762910337054571398606020582968905266231326606872627876446145514390927485188604867391300967489422775844321176498186298405156463346267069328396564418312681682941691111026476639572971935595508123462916620410395448524277172164562193619355897340863882575569802464225644157310418678281116511272714653249918137731855548929283209169245929143362810276691053534248385174908503247233652764970701915603257945499357395427794357387636653747974271673989741277212308323007668593887454582609062939244711161045144874931914067115642207143513243699779639553999207822107360744769839462690057603263184823787810485626489903432615491581099130278329131765507374686736776189620172328987792045340761974050012817011405178445365357307594512213828714280302852457366948930803268233409245920071999221961979010836602236273026728195293130179547252096336258612936632553941167357685972456703405061039514233184675669022726485657794474488508348538703065927588932151458962465332125961775438525220898168512030883624534542077565138492074892444977650874965022190546014993418152172867627057829071754296769208118363338716797530605657803375924508509781845518931404484117812822298715465758379679224716583919635778683240491147452114502662535212324187659148022370596462630710635202975260197346638437759447094458996198458168851131994536346994821755700378481144988750994062844306357769698675625133612746413216559304772730119665203852223836691446318154269767028271277405507270598149029186091403914914522287711475841091756824655626742360538029652718879454700759570506986033745803846245209572962217624951218856362049679343005319205288611186241577390051439858235336305181291247215262189073296255116770380696858119881555158990780695507072655584124878614092054547292760103151245107059340359756385901364508500323569248340853355560165478881407801988897151073521119226401621471847479566655989740043598052596844697879985343507027342160525123539507395384438044080796250137017808674763955838129736351318917005587721509709676100767519059849955676021223478977075210219861779839227953217643918482346785275087188717286684585503871540785317245048210062385719235301903605789511740379000697110150674321318746284167490376754642613941542298860892689409099422065785295517662926487027491909313848624302463498523265815747934393696366468197110959338201600483835004650911597306057591886930536237934745207442166362245099749370209059542449497171574274265241714621004337530374472480408508152550033417373356318138818937119351375449726368826374682348015883581310321324249262051523713886160518803617135944743593180800711926267602073904236299068100236231250250151600479688708634775285210750592961423463982210540906940520557801020995164742755416231415908851317479528778831477648998183827202470583852098523368550402622483512254480429502566554729787823258883430046854939388343305089343136013603011878283452716390095311427227767942986109324799896119805650217816836143395110326537204182433947685668746991610139884876883166287321424664153742331241684530834709203094919977484300443518981905044999178000816617013710387572683580835159018690648700679381975373234165357745069715764290153054711563040199769751305578796209294704578255178886409733029973583796835586191768817749657209999143136222965886778871945833541767349997984570809673384680035707184370528063867764444454560549935873063960553421392128795811085906147943130515179913496466114386817488897964198848102933708026043509960036886098255530936413509557482969553594957196686296561005182034994051921893529291821009193606370982645346665947665494015399295438927339501203174008224727777803461772021781583172833196724847439536032847679981743196129258796799665127237832036780274206863492760383359114516413674631838175235221457790727969632916642630637533241076187047877020934813369854971824777354906977845482124103075983948778769592049820476996086429875070801705435115345540878884845535870195496101588694070395983008686343044111697003419730139620418509887199176156065455985412500437433304611868743246348684275313186395028647626954318212203671471624117700714150191856266622936900036510990167884848358963617794960685266682934944340565331592034203919290370172178331173622736670647721618052852919320342275315682423053267337386140186289351046189999645908483041525301521804445219428156059082651822513980302118291152543853209589810711416272767630251182476473556504433341727473068409761959322432339047499892758051206421522691030648901954602010264232933326133556403627639878309295496971074813280393738274277121650991672910286846914608941956718893391523693078303988513144526830851396542507246182616683602464971909495477983096926515367650358038038270189097987419459953633861298918875372137175127695588016803037311233451643119710703180114731722328385209859850714056455773794350992850890142377265972111614182457594232546924932578463561725073347740449926180412141961306058866822886674894463586312110974738015087726116972084520040242934510824490234966199435137492836572167798227214389518851145234090954560653259181384192427732234791779434620298492740934391194996041459046728422928970454678039218992905340646007376767193317204787066942067023720490417083618793660886490557543600395255116335618124741008182236153495669978658355356023219402360625846498984452442373922500464446800798405983743172256538354974574680407459128653043370184596088229151471994299884785437327735044000345167358705955497108565865284787123028063259193647024907544968009262948444356281721871484628831186989372193104457759591143339472431039242917897224329041081627197994188282480067576300863756979131604542916881038346553919214130216325109707796112067970721904539635393518712659608955564037633797777505918056440605791150534503671600963132694134835917107596674811031412412419587646138269683148457897278629804469289913647851063051344217724102391085718948968498260784114416066123312817969335487665263469829991310610917459947953898064997740661534096850875761578401886216694640197407078334474712805976358373732981331185757632318638072676422984067983944241910151154254442423003482926276851401687442071529095757566767067370669655795858899674009644445516766203351035406095669990252434590209090879085852843292063133709134489272967634452429109569499121684895135496566113336561664813687570050295995329554742535665926416888697849282476404140544484834573527253884157615962399592448659218209707620699226428350580195407063922346538988637520170420513518963857664575065639729547257916319847372711390489623907855900082412822918365819211310919980496070973948188432848657205046730745075228306613078389293097630214466740002603516431541316734568263510820731601630735957793795046009753856699724487045219596083766202290353141480730908039727753286693660788248666256573670969341890968809950436842722619795289051148989869010716085318862852546431199362592423796196185430068263017204695675218557230307753257929539232465885803174762233651823924444610353778619664669825070574580480473150213868824794997938752038523708234209386217960652156068158961098127241106393974705668869747897249122478183728475733049410772463862823536653166410082558954429922302939018936809945674668137908801646562690169142698333803693653954343024520860394342455400986735076771828226162597467180822447734229806632607541547903073034056832236655547463200082530554000570788328265550026197963635948672160498630078286575367720528235414243584003644623895111848250754695221036648018595243522646313480471948508268108995404357921616428370632793025626641570569488545186225228329190624348634780060990787838275824880444316222199123558197478617456586369091436933801666235344041293643318615585378798827412982941498258293432471218354750969531695787922749116296349679418855872381336840307726452152459795103142068693518396699577345459962274699582523504140230613388208743164018390536102010319506266367186935542132533910246242780283501836072512701895364100606660788771268882084779360610601226778081927661139098042407415562288563103525230569061249713342544606798025761606512404083950559463292538866008356289329081347867356694721150148003926493195296477312838194591740631128664132727014641660197971900481188301213146172420349883256275701953273961656859472215279053994036109936834064005853981889180382452129090326010312384105953026055630730789422850461250265571147551760618675757383951032656410281513604858933500111499944342639671841015455137336302330045348215238316567204199272637119288281485144949002719922864469428909755031584106318575852930998584885576118150723812054833062909079389118858751632177111408396544386328731716542063014957950869673431290313756899591567189898000337483751153642409495779646875118637084034578368215300516157490336049530402187112780585512403250440975460777249393993099516244173911854681354516920450948661541265830721037327459700130213371316362651778754150317513031240291013214657678408075331942150804800146139736011713487241196922934202281636557611048401032452088330472265532332912752996267665154113840444938170764516141348348070743411639859679507525698327887928139105606243332002506866542349408417552823010829269526775683473134073281973989994583075938698583451737360955770609967173631616487104975722596939141742597823559989639271214499903210791579476738095014817625795607541063015366785592347468274598100909130966080047417542334776305169213851782166946864187777453215609026869265059596503121809943967000062405424327846501211683624360174777117373612017908511599788575040028195825264728354910561414178012806512648449914094152956962645496125533233476901777862611053955306085428178647004162729348195370564927485779209235717870894754973105331983025663661982299935569583961019670104145160621575766704402649038335019307471618927462152546692908498541692838208604240354155031401714326363344200726892633507197636959068734294767906201647394111749487694873403595148556243190103533654837502458800228750388612466685898628988812989653700210683275717327872274790683690645085360989185108227450299390702373923899278009359773453434506199120601119133229691103601733439336516729388766791771682992264401653490143810842418772700121330775015325267026095454128573965410585779051425139691410498130609981645706934200991844466648762328916051437035412427982893266066928814864909524156282126062644371305760430839109103473623658683606752929202752863393526487124650604830201503927483676761778451898986402883896798853619100797803341278823356494632406715895937412435303592166751186013639226263903190290130301263197692499412003821747754885340476023706076282292553321511445004990276765142550680067905240622527463281505589052811575155515821475833809290766323247305849658186664986996103314542740696578167280257045460689207838125647131912967147287911293990579700702126606403780233205523910215467888257678358120426936648854052788748539538541100516114967642342069900958444498716354119452231193206767193853691811110431422343564923115848399859995182151186775068075779911183352881148324996330501635463355140306638826940259416581716837525139456982475600484465455385080914883211090422605717287080439017681366787351539858115153119690700716631206434907172141234899209255074749459829406439060604094859463576262747149122213774172999761789855546285558148559853238612949104490568053080516491296568687082374229304517317392654621319491806690966164653712496094646090431875182061697143330107685377290139098930962331015380360468099482523051546363727521239592814465982255812199940260416093461060093846367695203927567162498483235408172542296752619767241137111214298980485408888905735343225055797020436729357417879883933970162113353208722113445547112176328446094292447355249934033174490291778870343100779909695727238876358097561520082038680043747293472716116101496621073820947928986139532524677608631311996416881320386292659706414778042840344790993571072445729886554317794208208400998616192883765909540694610279078922765067935482447348023485640450340733436896644247521173020716030738482031311623688360497662599051226439884106261001911244571234109572950458092620385957804302444519684594997364849314881755623004742430111797074542204165470344283896288452714476664185564951892494759365438895083173279614997013970833420854009645955001963192950203725585753755996483546687276601697876393850465948641852012800746284410821762669895993962287832445854097814962249943027259972335611874645266092477477606789202510119660407652247098756136920473210141638012729122849816796448484881757721268869575510924445716406875696984653508009585306503358939435627636235443453280312982558152331571224203414294085796092324030984311089759010463180617558453385181135969814059024567686452582631189276866860826622998498150187226925828374796049952880665007551390556146079069640323016300981410919057007634668011054035055942006582464020958126187019264262507018084899122213480417446453870368967433423965728713353386679528055775921937705305767743147929964424902937427304234757682740499267171633072666204629625475649049431444775651395344063362156564457166057486213591586998691697241605610068356753213889402827319974657012578896966736634301694735109932538932353409731189365647394344549014199285184268869843249062592908931829761999266826185285698126631800701008319840342134271117582663591733205711070753204857405597431691662971520704880976309133406287713590769843185088153684461243291538396386756854005063965865427367217873408395772662647170366477386475252060642507971188129227312627468124203395171987887551231867340246477204781280300612542743459972179311757784749123504788307930853220631553877184314422595696748767507403907310463621405377212518748600060695077571319484582845700337185097139503665023341090347001701710396448367194423930328691035812121034584940313841016710773442896484078432228722531512707271914252301168741194566782126345347399262155838061861919695405265642788303537500560614175643578615746859221471960408137407395496321994711605405358839983926234291388654068182519690966036836794344572767898210843312596773770236716479897878379792168919393010502254540292395367642241087974048294601476906529437136215453770623116511880774472799623268831939304116204159893262392871573691572886298019765738244517312753046592916833244536955338313377936200891865555781222792819408873706819095809540943562388525053461113714588398017992540158147578856655327346670666178868675290977088352389651066916380848012130162903555136071514637579228098648553290512674877675020469262903369745725247132999166669047793402137820590462241650358778216616530334613160323115184478550369330037557970482788261032200407027648792406015062233472969740039453900101046931941196432389672669166031619556954088324666295869065351153017574092553628714532401860508289875362184197888123119797207979790527011092692176253072317674655565265944696370000554549431185373069267321074075367807631459220049839045391433514179445124158856361641070689627584704383865500969099412042624347393279291790501267986056230495432880404277792649610241323615936117423426675024808358823388122858890850069126723631871666002034799248046458516584824559280546022210621613975458253229021891639852296982157883710781699500345894015756187419649381411557477461745306903731175525802044072531065264354512849654091397420043184349222216603680504900970879315880140893125453283926255070341948498824566618286068266360682680266203231470356261841914741806292720733490865917787950808588874608190498178409726861398245381757429934238597748808706223841278649216688787280826651163129271492137425389790517444002332705308146756824509060572640489757926977230732304575385529637627975973207318801626198191979883413884481333101131883770009269180817981727140045519657514084584802341450304731186532950316419323518174366958197566133696332397100192107508420430299511355828270383282007312425988390382282944334547375242751759949726998634821968347025836872050939766104739294040435480902327302487598902000573902380888985678707722909861114672890511604875376622884704516935287652482369094483964047855826325317870269451698291072929785683048632475501335592312400852037258105681953193044470419565947625733177768253031157984732103337997101594569573217833989162172156044189878592274801038870257967804074434120073984807311254280930223701963725632870836580608568103887120672233461405005874615180010939353741946359038211766197312664861085952543912826439219764859984251786876315068199648189196956080012739628680708686578944257181467683076232109418143580249474189490214763436107308855417890380735984597769040968885127579756076556121371064141221841589100019706330670193494571008537555465509217790820243333376500347943069029891943272195148922157079332393389227684782828218535569127087056660349260756996777084969489489175971867410442710174180012247620673676960585586290312111873497531312263840486401387467746859672693650030071694159969920806934565141539187405407818884714673239996008911334058946766444642995625320201658392062147309745240723258782247221376751645786248214638289398845028145586500430107607141714731116500353840277759614649571039989577528370515419617698379113768491775898369432609081154005929840214287434979791758343174225837649664779987031543426457036115070162815343781016703149660002839543235349454098653754111596201267390585575173094381128956609616925227753156237056121274313883001962222771739540087630399742205030964703373602804756710220763689248166610200297023425933354322658710716160917315027844660527243832702113379056574682755764094883431890813320832582907413463656620787761199361564237237628763382839071100109599278487514751587519454186217851587732245773117405238824888511107950243511227873943099875583926668609294070184865628183199737698738006207947447689173149671672621851861195671057764259254345020631650569913937956181543988033186174702788802252222522877874947991049955226903831196355655549330670109318576978984778552435557298909180830751736439966128217252663320988920521943796079545080098532690287327008698924064885299715161534402918788830281265766239602939447124977293635854572981446260186337339564110705064483366065172155621230834041827138882685128408799982720948333368891287655554233973227070772634603368178716200474280172822840998510535668765828637489251082559346897575223276365450746502727539665366438481555431507660101015797399214030729725004753213331954018178621533694614151811530658851171325878087287048959639640800689615130404895098579235164957849602491566843357067922173046597931929975131712897952423354040653499808529929980154152341696097240228430059232636181362710575785467636230868339233372789190568045608466429821987530202572600843914640448029832489857357825229252693670522601126950988154325421781291027218930280175248921395852546919583894255737799215772593736016468307587763522188011388286428240237756887119773143914974262057056496984159361672415007578428361017417065249168130056774718418811490736566313949190649791862851668823729120366160822115167376534871643845035652669519724984958859497957785143421953127800027376769877766384234545448570284436143998838771768642860350706605035880443221312432379369299989963701887694605004626602680757080878252568100621153974797114075338025371574476289739790145686838085097116643701582363197378258918370485804693155592680601180760972701624889841208237128649995133029212817282407010126057581766844626448676967424610841588126390247207103906203804447247217160290784801310953422248440721098132875506330120332145298966318585989246783529127661668297985713626131881551717556378434431499765306154542028249275115098872237342084052709374372648001326159415201488709066557402503848392962297022468854104682372938052665898766983324325053345085568729298055264794011283721244764147482290147026394464405719443571626852345787699320621142356010513099073268082343375004740498098004751805917721800469055282022980482575295580480300757062933860064968658292987992403369929369062466236254705820346685382844106464517768090508374759795595705981837756214996242499096488506425312630928590538566147829969319580038992980006989039053326056999885990446620174976043665252790302423323120701041593628159191569188374555601114797777568559349988576785381754280239858583726639271190951015971257572242031739651101611452844791361974706248510525111730717794827469507593851173207642200130763150128672010755400257517437868727943778377958266327780365696374882107553795813741414036693381557039001985154540047324337485840696706785888269318739324474295445790931208680147915203691620236876121732832281153476517246466737196875745532038676505078300284778472128540554511552128010033016584348166230228883644055394809653000627712773295194192444981155978715838804082703502912240834601078684951312495254719739273865195079342555978136015574271987723685912101808486172808245478056358305111780157761102611285677974892906736698957681430439083156258124623015418694171529495897672314666405339040000390935993750070280793261629964895874135641591670107294556478159547212104865362857478920448562968283020071524200217961557632217954564084784353488275377950045652806842422283087196399832693320228672831478990335981458086480414446289144076770696965763442719527832113988499736761032357159347417298002513956037337445766550853194636926456328837920746508475818559293247408337630830367404844054906984396198332852193593933671396036392170654360201093386122538483309811228172986186208185638765948570754728413327380436885274820138423824400982194812347372995070492583003223926839239380705347012500504169296258618024905840012078531804702805573294840269892721413491643901589269745495373379190862589743878184583569434214573136716695305068122077324643532170235720537963245376334448714721104434790628728263020320429653430407149669179998056039701016729312420765694903270169655868343406661683759338949602545595652067079369905365137646848903264888186452047661937167123198990485685137680921013669618220267113608692107827810246885752411893822366660964083830544198014884138566932495707861560484993805433278734937554603289398050530524793504219273270442665492956660456719919530482279462164599914262322341668416647828867244939809108402888616811616358638584414068954021999628279543872957060790866666221440941684218832327823363370229205444350286574360303127494946322524674467466022487920139674877932561696733912882248492926857953267407740925934207921564186686041607517149520476482017471952011137939080824994997893982171194845489326345050399559754304195379869758253280520093577179725147146541893506324156229738605718259817807061373538952397618307094299241673936647234165398384132347525781043401423123761324883538864706167508015902256571896266775090695674476049049877964356335490875554510185712489628038185158713811628744664403225909809756907664809087281216232158499523077056714258305810259358432234907287846363226461285481033082825461920567819278888160727868890064628008919984962686641255320182179917658626996068465436887596073908000398381307248986927254148037968268527399919856751227813615545322101268667283452459838786119440625746639829219590672322463682721408386595734687866070447537294577280894580267117697868602988032347275857264452110793531173095473644842613638982235183918820033367057075402427731233563521265868183244394047650256313840829167203047557882090121533116893678993070882124885137123345355072551961580367821060606525651358408176649137338820991631128740915645419349927865814682080479569120014567346748528591772634131066987528676545730261047621644304308716845560066602442611151810331988121249404612930939157733299620255625534621062951249663274162764573394433723576862190134129207206690333147551588329885197094634174454349978268505517172168854116886981303488198559080342999956053862669363448703267408951303501376692577983958195715953159611865337021717849784857936053959001646725911687623772029500061606490517710545980029005453113581715224401139777928538147254089759551037762142976543831099362934907861491834507084848085645321282012634236581732759321658703154347113184642433573218502937149659995836022911718482728501369383598869089770731586635506116027414502388365377113203144078645914169414030263689105136093717502086549724030731765391148863904367823984630887673343826653625301834549749800549991698165466699537055363117121889480787430911857969518111639391909575745441920343850000273582877934744574465542695630669831965645196903265438498016287660113562039696657022280530764784702320089318305699842194940333973578841964396898909686639731361932756265199584259957071020520783515545444941773714270914325076159941407321601952045245185924262033674949198448215355460023229219219398876821774122551139396000286814028514852275773813345128892555498595559072814102747147363156914116672029817311157506599254653095350978149345256895586707456829524096449593965133441236577134722983724126304704939190773195521039331887157258261240545609678756258294636497039972482911253943477299390301536888501372637291086792295881777853034497336097495810532854834906410278681700564119153281956843303421717204013859115192613864364079944821295207904618758944913144905462513576784587909754098298883088089811958777928410191668417801503555209901266138103882406855836755984823232233457619983341199002265915451733143784480636401178009881796367675092565395549196894557590035711659845227643161215823803432509082623481747332906185938583168412076042717520898808320666766550017497525659983037937790425126901911663070515506023139375431920838669208747375366905014938701319915012089207391694779470420290779363678095091640098317611964738256473192709640414155305555004154246600192573618603576220267099154591969896357118743812511534178367009897312003097166504851742973684415360601192936522514634658670416774181263786093780665557398380432490364400585358838814169957826262082459742499512362109421573995900041582347917595356754519099484385294244172598351474310477460824908731868670055160503469795898128520029685775459259758646754723032298241537689756664028252735779354573601586599711443489976346580690344218147495098886283031372482925256593968298176532059398579361793014491820588378314474039838673422793551796871786453678876735009088054410537616044170429242345301644480150532025561391154954753146523452440680968314226944424268368719528759319823371555031936446015487351866535505742222550146492313129490881779241693233586798155612760686441973028962788254507538178772087685783571217356600384437168474914037353811816167283276924044464176661553001815979726272521888147471847946957799403815229533078110400576888615227375507654032457990949234350266905990278725578102931980051997288915351128861452791852048724541735958122467762604690996128446087899220224580475305077059341391734805280100365464481545007160679832887523573298163389894014824763959699672786305073668031553198205225573924799097067788420537163020682526856657082503106611177625015776649177250544271412273692252384271900298617879120218254044214672013451733097823638924144184291547004074194452792773940953250235748361997654728230506665655082330127257327227622699709628020588343007895596050655507121641712720288715319513372344555436453650235903149382407682997057069869277463340013581128688185893094790777455214648593639479047081251563370335091550922898327999682017185970574192660352060295104885128384628787273676508102154434866732086395225119343860698920346125378290636686740501449539271973989681462544565113315253159789509995465816058593181809804785889070893726801002453716239405400391295548954814610497177893515730096565848737509082787983070430446493934443413575197334863520435952307694619712722394499928553131540940322250823389842600174282785799509324388532181900092777625425355826520311403207321753848000423382840563011766721026394294253011105881248283907603533685248848103619431853311347075621304509769628913105789536284782740285180920660556841713169826564314106022887169937901914330126653782134135966679864874689885959072746888467993581925296916582119089792479770601941807197268154990012095234424714935729730160315526382295075233450679267373454091182608142383819849063202371837948817647048284516754302801145327342903942971244267669439223316857414354555334316314167970246131326252907613326676032423882316359970334382401628734855239608442416252566872674926499674367103888625393324212604808262865353644132259936524957854720624888749914534465267612923386893060402201606885341676409907214042419533946614103957790497177169659734621961300069108178646504013222974701324260050076567938988891883456471998818202544823891232578886062977087792388658285553780074759770980019848885661692236572551315400129348912042277257766964726963012549976106063011593782359806808543309096907865837874979875789792727191106461005829608672548707690090628693328586929536301834126833462802773125675295141546031655360165445947856168623903959567264082736233774300462097444083948780822426652517291019365188977126144532771552921517360753141008425584405630026821431846669403998154625335134781829128638557020012759962724349481716659542425906667607998427603996744983722859908420885329906685692369225867357235801608385340225703717689118300356995751460660939754436443089512484759964093817441113395835319401737284661957631587079393402479641197540300973262393244111144687412727926050298715130131616047180387237187562902229054612714054967902044882331594277168072883906049224030644005632424627139365071662433345250731423232261962075690948254429960037993913868952913942121715326287290225873486261719841782815244655121005776654093946825669985963873964737717326174478499217807470276595049533417743356632256804079368297620243920204333307864776699555590897685922034772116983650534523745008526065830218097919364093099917438930744618508790492407988914933334159037419926853819146738624602632205879580487921335732227431629908790321070138415078718983185047244138818365960491811571322257589418205110002973820039187129073754830793417998018275653154971345656907362710441281878109380866086108045326107255310003735308474683969130223820279645247945636337759066724593425620178422351636448116972141729354462522227210227078692381198447831532240212421710791839766650749426730503793349432111079811229652835934651924758218358063325923770515694227041457974799084416629271003118697053195061161194120031040931805102020693513857881602384639871534466505988829255428777967526879276387120686527553057625173685125633776880065147288083403321987725703813167434709890594154689808130888471194432824756464147391198479657214734065354796489944970306884215695665752835580186485894833146070181514720346278030478989333802029513545330428869912453654871823113363736887787342758420448694838632202130597399047617172157762147964347875006720067941033939934158906257654712580858780243001988457547854087829761397399700252782805197531555726235542170744254282944127508395720619036705184758617141067954485921952543135244384023532738696244768705824053296849734518928646887577624563872632713130716568832499337466791127720300313799494978607348196051202593538084441756060049659848865560733332171423732680564998342568549960228880783675384195069811218703441650930040023557207801506206013947730057704003354958289331184112747316795067457303166910841422247489428191413850117989176225359634498696485248322979996002703436950060174675010995880863296669187839189667565207464537407759754116218431323747772487951620297567378164373062099724383925205848328299246658628179713687722808073035231840083300940972895005703634530922222914714601344173940022908940939762830672627510371103480487665877502633383060060522370810305935185223877471872329855069133526191708473678973058349486755797662706672938218170039130071330454674382981181573095105647653007593918221569675940648967192264033977045210997893048061630049196722581692822772047030735641322467306601968712186355584472975656717167199532853309961494059901086976955097131130049486365541846005885834579663313918773536357110445654454073428919154959197927062029112618912793938438245168107531863076633958463107018573884077456723227632481938984545037163032492682297740962731811126505013616953853304252921606280232295421420612864334717510968311243781215760257864820976023659655558798056898387284647662329209082939392206788757723990216648633988978332074321372581771230846371385467890281511189526408541318762578094835827630392799637268320038005914579997839130770879416080980701957108868807624887957543705002122372047936486087785761538276584992298292178244386435613381967402496550324912072298168220525346463145402231656383039867804291065334153748692560287271473879434780446920055367923599290420125891584568060815695191680114615023148452482084669005656675755941247994580560822582560872647640906537857515967574250532754010445410275903622954304215363685529994955055624253463175654158698687919117714490556958967844212929911453942505221621873594887838848493934228430227896634858767887421005632590403945805736120925195273727559826904049591803297532636186317550889543841179195170788848840835376228347920898168710743565411487716513253495522448211854715783613534375057519554080599183858423447419101656035236768053562622636382623847198756944406807810916915727900303347564820712878272116378788585614324659606873370226988298807221201290835043574170363301795389192573817070963846192661828927791411193704109076763507883717760360198246509177408888682924729444075736838121941567342477276224931785824841444372954030463882356712641937163881607474990667745520226640901751086494267952808804531530253263669854092313160413901239442861630410894205516897451608379450670711466065424552837694837909571489566572666615541172020215768060713651470579925387689191572125912051562557650755327133224808108294086424228463462780543260127822552945419550892756381154219016185429697653316516277983314107315277571693759508644057816282804364050446536038556031588927684278272037477648631929276404514545133952856686509286174578205261463694229308479966543944477265758852880199194536044656286012393362703261134688939785565309104178862464449719650774946573192734332726907566315291206562676506343252358680341879382175021217948855380552581082606798702029159042185319907180511206467432156979140298818793434760920889061033753654265694650333417638711590968788354163180698189255101033591301888106994994775897836833843037472590966397033850815531208515495436496524852013740476601098688916786344377942373762992542449526826818230241951707558821297583127765264330259300377118879443420082058912715511299652556367893596536342123513769127194521292702494096958315114831801151195631218669517059932805554394337602647231611572903993001107919276763302766947348790151848506034173902661124400776075443041236352111422323277114684491341868628960206798321488516436648158414131237704177586369785049529320732257638646622463077446665185270892967234380063223921541191752984971055785109638807657138753809691651220133146492325653470163834824877376023117490468830525549774409737932459995498292951720312999970057900925187748012108479728733623971624423167130073511574355131360605002201927025362517140373398855749510917922294428771311053678208628450602430448079881900800798994894569336044434431089364658043348471341465149852649629459167178170061980598591516499847352299232608095211459639243115870691318477364203073221425623068042328513550669596762953381891437772667343689501605715806379102057038092101145002169916666182664358339126905941350703076998596467387738544373684801067979284199995689171965200458421566120430230298201144802966926439947967946394577484954662051368748076927008194383457124204610997114675654005912006505025519701493509675093198363408428961150672085628357543668663034270111976104456253070675926201659244039962260005669033306618695433631293321043320376222344503721794409867239922358316165425925696191769028074337580003411637082291762803725070581368470736827478303820241571051080517454358737477875336526674721320687781018540833191945672876168264784953899314813747891074867194274469665373339585216395501429345471144497600107809161177371811792303055731138232905512620161093445483443243077508587261738228516003955740137597624464769763019746969346041684434227665324162896921893484689255906265757751616688755272389412619199906332055016472096456295286373226366007219045787526919402142570268174584708275801686515225191685337422548036996627627174706973950611651592262057426552400424924420914123373868061408018042558540721786779490765086409823338084440900217271571183565592403032114645694723512596412171069596775088282775875487252606315619217903687095480051780086197999857112956947241376452472060008180260850877400896803521837422491369710731425641765923704266027038885487600975804692656521327949266663782737171201465905340354571999898530159754222513604764542028998975779041141738792279812495914002665158564324601029737707525947355139437143229985991551300029909136587815331539554424240939213753017139720252477276442799101653212776196970691666935957871943235998792888721784823038603139456311764072688465758821264292833018338238263054542105928965308623297616801058214545390818001604264103838407149882566779735738975386734603960856421728921036757421136592676623937487861445666887134357026721967884106152312711340667098736666396557152273304809991913970704051703661864408420934211199676984565125047306776348382330108814483430682100343078444068932201677887090443034004113486279985566556628302828625867351332806476010953656829503729498983521278635177019008551128058013487778883149300414674412444219853986832502381794458465935400876275416400566465219229860488199373620730939451283658073912060997477421043589279507435662114898726891657323957554478462350833487231790216017665832771224997465005426253369586434056068926489901132823497576952210941251198698998636495213526939925304412050592419087042902291850141056330741435354003433897061566757064155321671910968842620470012458281857891831010378910024138642314801655072038617599249743917958069365316804935070258442256860479239178637507117780974691784838469335346737163197296956514246263720069570406754663459007849747301713760687232020657393151444851290389592397529177532740737629831736432998841163952670536368838819237298062650837557418401263960785128711240404541098379400387786961397736706818042929937887628727984330385923266928018043226592896311941869062090174604983958958733430138898440977136709699027787891506550031244766662176799941546184000188657130974123603112297241608503778512635716064898510531604412657290619768233271818008869901161784075677281914922943079806186508730067567313940050128157404420400722080814794175154820798722611283124734833937163353539810263664529845880168528499136548650892868334837043139760891502421378218450443422893848945920540361239065045073148038311976026394336216359654111783491664333696188963737677056886513468862412494691807351040517819391712083327158084112334649522151668964907299522623788908484006659376986628394227528367233017721188648291048713627044066577827450858256322284354784947638486626275092531082728932683427438700555623925020042496490457430323349112421875586082328472963352783568643063888162566672575293968393161635727070943505301835533978172466308381943087045590488176377856217945351131863483544345459408763917039076177477632799053982588663130227428428034046500620382098787992088115516513586052520822765609747394567243176842884672175744614676438227748237625902807737697117757116182573550379886880752247912611056845340102634509924944285754830636502297287992863280844089875308283976601669354420748756674359199505186057354322995495628506382146454070670391973346068339055513527952051553467642456696101080319729241556404505259661174144990951866723892639780012973951763955940977311692240875681440909161229560421007130660207079251150161404770123694163193483971874558179835168194497042582774746731942826317311283238286043200948467364399272923842605700834672371019646284721891547757370225028808131712285941390478935341322093396208212878507698115198251939803111779789432364333966443825483077994248359612553229926472987605452629651582526308461842389770634667104028294027446006107074073965863621412562479027383735418698850324614079067027076972791375161331487108194785870630893359141399643736110075276708795165609484286973168472865949173445944740128637952352353883823287829496222390060160420415682914770477934300080874463864827915651001623736270475268614677201085510866241097356371236526170165787808023090382718056878733542108582708275617907727938692958977837387717428857195392501290135679884796684168084893549470504260030397492818525253355371731575297444364204598325610167663550040581713871280976971546243145260273194974629815590951891226584509934299658353638959698842976953981483749274032430761611411684315275630123530924065071501409795064068036755502451365975876411838142496721322315579073666660983845747293571650930310673503455647644502161486863330702719287642866831735459851864232579721547660874744762804681546230566771853143825783095183696203864309103971663069206902762092600557086832141560233502432675445568295748777331493043850998102103327365002640009250653794451248134428848078278854652032606020476994317713364885644565714444388560916587361814210584772323346213327028243020348879351313282923765431643208424878903052149559510064609701754338012925420978707039219975824588127737896570198678234756562238373247883444091984685746684446945459056743302187178957252213328343239462221847013666944925898780203060114008858016528912587108729897098184024356186492657393370948149739690101310213894573674610423613817000881409317473928926836838394587129947736978723870589207492548812866361312366078343795514599034018711710558747736885707115656854217368684771116323012102187678633877444983518697135335808685561620635900315609649116702164877883842650218291102150210637107856139976990519475367298755426692694893263569602480603046552473918995028381189531027631227957249602804897810466782171157963087385597199252008489967176203929959479689153350612669614776574554879492761712455460076222119791540987339236406483511468973671456423684036118740054859721693227683525100655091662894289211749195832852823055661846282179602496378562444157331212418095689960629033260082176594094125189962562334533986729046700522336245529407482322654553940175444024570754134868187935964260328810923750538019791090603157688331570856797481793269568170794952906023760014463227993775510512946113100436389315456357957232086072798997118351718847872142009184648921483402515043968368034370130487389736482084964653755804817070966888621507953946267672361276004639211200286801435043542033208573414804234027169550649265919114271159395817531769624528870495349889020388018302862761701138905920763091513522976691317563463080049900860749209042207530622759879803698669387863609036028269778445290675159267284068702762664877347736023498245150972210107914056841623408982569935537478405766371295361873337591692722712031144924491347137440955375645217399641588095067873761510472888981768738134226955501288842001870531031348366000971763357843260096685781431168563671751181090614678596618305538351093058773208956455763983504784737316231512162581452395539901879878983147677126359345102152087943063793385208039067587972602708176694058793512042732075000953531402008859109568203959930813129653787144509601748695174559281870710112297945878287022360560016639630559761079928266033760108451717098817952146328275041610068756963020865576415670481259873149121141633677435139173449249370019131216807778867975985211760220566092402397765281984711186623086334108428586176241398121271517076009574228055654373167812006039732399276739613226801934850000720683254240202926097024954922308287516177190046300819385872278734761279506507617162696278819012232734624585904055444892851548059837374779270642980126582652707418726449147284394576976633468444878676642775973422359970380182801332920590054068849164750124652693787794074786724612139205789762976134665510129009627770633773072264590328654586919347572460470776003246524033921259882993857787077893755230990749942614137344135224554468224933183867769552661659872930011949919991735406040781178216799883564221330029282045858196522409109465153477490908282496618744560054282544253939437735652145397468759658757910279409753252935746280638178642886493909497499204414110356117652509095406937255747283060899026488111474481155110109841262007182487736978530802591925654408732321672021753115626915764861218415140547627333896316103744626147372760908829090212273325558429841412925033068567010174649763698174408603400344990456862171637423466926771612457751429311191725257245282524181199310613679601908931422807371638590421713014665637974410364717425708583454202973927956436577029556417042828515292824701195464833674789580534821049606428198988074861236625950032673059462329739105240607519358946310506403851529507061493608577975375709357453835407968571225591373617335052251896716321382293485097427790529001324386357039689643937975664143349359359956135714394970661406581696234518157268486737860720813927526257691344914264794384993156370048930664672728791082648042372281427281694071330511252002362766464189221462401720022541532861164879723817916207793865265178274934299967166827139975764310561202234326441463403839685358811526044005411108855916917311791548578997671360168173071327473832565413509397765169180789511278799295181373854003212455838597094869325635860846192258754739231867122842626132501662537239843461349675036455798892323663462311809833297063690384251064362988862902613296787969436041599876183715574345824568179148092200213299259278039775261584440487094064404295016758916288050870968367806676270870859688277472335450000709510465086802534815556382546335767788463145792518930035358238651074114068975928735973140152409644286660102838144205203158045688789028484629976977465523012932241307792108905176416415661719002680776759468912029096568962519631533561937188535368170124567806290818087273687144067397900136258513310561174688273145340798940081182711595586555258723989563642635711281537026783618485996604686992552250856439144989537849181077049654817741134414149188386031376925401755295280191918957409908033863849643621853719282997710799498334239869853175658425065902245793043579099791151998958958342570979937698483412635897794409531193694103762008079974443089819782748487509541736205978450251543907467840291547126054121778867202837717265544202232272553030672994617817688045997848342727235448918022540461073422186945077171908681510615712255251445719649989352003839293537037757532391040517671484178417965969983630876205862584973499088814923255267485270698856172964120673330970744679587122395287693455309915315825535403882900757814535991477693859265085800810335412537027314377856817329264065531464027329444654375172161977201760634017659523320301388960602824657600405325365580777475052469761436726945097549056553959105426826321851782404842301511985596100150455173721569256163935044321472236112211301974939440679116969762443092706148087173910761829127709016587939759765604475628547418958073756728897508498458433686910451441270468527393861788043802100497627209605456047421618420109071543292546201183620901816093588539694107690739943677510025984744887105386886189241853874593605336817166244885897618613473383858657374704189078739411796291722271621288234663844763702522077137532626743797156967787040511143019063924585511387196975107793440519131058848669166072363486889416203698372745601680647884560149991531209767768178362977483903992298031791952744316989860359101734689367054678838186922349063172762010652180678091346011243919503577497735190051695201698532696868519879907994818421685705016288596298742760425282273092220626682483257777295580105037592227672208270898624131711474809285032200172661927290326089516038443771899019015012535773560851980517322984568593793954245003135280830724525076527840050554595046161053047317888751060959335405719081547652350960602295542392350525112624330898772914577695516833716325737004421754952076688577472698749512008126281525557084466049569982457946557694305869860438863892525113335538381836109442963265732165459739762389643310852838387447858970934440170488956266181644392046233027486917547423434215736543978081776037473198656228984680756713755382153244767300520674655386067695023150483225137033381173499229127366456167334932778097506934779323518246635915634040779663159832234752198089192042224672985920978366766343147548206762035298618568364106084493134282713020999086126808397615736206062563050779289918791141160495823878564117414675921766764672848910143190299836914287511773326230250206969928983000998377792510585697156163192508367192232579024557301926660114422007067127390660270502406866805452116235934752335792846465415942188197823639452341122579228327163990757836917397511189350977006133970997948318441484889069779763454810543248789838883427423174593745987069167784462935931076964533010928546073164756314564928235849556921943747649075998086193418055725377092063617843483287920738085258095052352898370514965254572005817214506869897049621153196584841615868575413525636326743729068955018221471214156852746147118194852092619680217411760192509790533571301284323347846543968805507849642540723987308031448477319114893351523343567576468733957483655335104115512951220165468780816470719461599713754823754378376612869387408361030000756034357043373830462687735376213580396425986017822699790156771151806246505773039495982161010676713287141301998386823109915806738701407515768508751607585909544482458356456050141398296959155310647607229346036602498467334385272088378054093390636722637275433146581646803921552123751438426761436989573355469030564245289040427712523200639415718178946293719111323305241644173404815367161287148279242207901468450999270175109864227250548766750945766085210785126370064605875478954669566675372325612752054073860567090551237564928512347402368675372067730809141968348150858190736824936048060211019344094410446500536434198791824333239622373584024567106849610143787299495531840315808843190159341384764372289391736856658975195670950336621629353753557027392471399476301991547572957736701945708031471560869056909387727377299854208820400769523649224330136105960221399211658658214811997851777056409276142778672920217344755356579161690023646051275054083928454568778211634644864765705673620063995948703859883484546783013596368103374586874160742507731051002476961141560027013653726595117486290117450728235245924640491704682386133819751925998624475981184781147384642361652705409790107659254835053039897947551261463403099098853945261509189507396143155571805960468359986587467708339413018423684111222378451458496278024178457080437583737337150411818349571491688484054965435610824411606539471847037605834505161607286748910395169975819050730010401475504345839346190441610111583721808860149809074626786316711502665325194816808354045503707920497387340567034796617130007474357682752628953695401348543574788970808960366212842838771451778673534789544699109505538181643006885354932682931090902419662576358863393248561849654768556972841854023127124287289752791548740328621159907802450191514737565123954591210516115328962213717062418325251925543987218353073284695777371069515540381914696724380785868288474486944417075063234021613045369342627443290389494650038063051336278352614572475943337170797839097499942869599042466930164010403071696632758222122890969735460989525823968974442143500444619516122925983464351247244993184689925683656531531169455618109420496569715403719575520856294189256078877342925002094727965372107766472297417177179867794728997059181139581355180067654960205592895212948685576843406541054226290770333999931513035388398633747167900904106170838965744208074488199696392466576519400324878703069209241893262221905412729374333209665976088746271638361793210769684191518490629438753919547327050151538959012312930954305058636739943741689834553985295556661732056638244212990665804323743864570832481489624093048278565932337470823280672047006274658839176632658075615680168458129855275867303238585554388674787851984903075242435801736338842454324643435074218033782826851138841871206699155869186914550522281628534980919877967243515310644420135804234653933126009760421043504575467576075870172796300649059660064852754307069222057161220632373632473797758433778963952624479342113716926208193865031306335111553232582800957198320511458747645893699909286261554639750304528516579139532440254048804315791470585772238796931811446254450242136920184775990224259453502812958039243011976062922652926811310501800261190675570315334064843114683024183679450687872643973302361750271603800749474984349001301550538090969164020158367007493154938698146575334142572595115099452334962121663625177117976764350921162022686191171907143994380177662924789135985352453926924566034480216614985463664939184271991639350596197968868332589221999123117733490221945774609306062925066166570252655229091691233134131736485116067176680501137592633042628212609802159762137235340654813853502383581596549430303753814640295538191392511648044678191746659608292781270310989771835327538209920223486784306231506240781866803149932656872521661702859295845398158823870107694995759145110746485970878202207423338928008712121031461122430856096856993249690742424915114039810944078558492489370495768834827167812523950411971614216658906234934207851365658836012812406444589758750144302942954147343762425486432896781608985626394307366062641399199124814598787628555656669842961333495573852766496390525118752030010077790601555155149978295029440025977768241771886293852468497831873387269662099707857849662240413482505216284367181586051702483046610904732840683074138068457980687217508003787041102747895636289550354894010219260126808924609846303268367517362701063148277514148824425255605714808660171344069765591811302807686763522281226330707266708965829041131199229514638444272431909171520656554918574611223500831565788773120356873208179285509464447861221851301917529860515415998794344135693760956231916295881694156825324458717321804691749495455944153282657011543964001742845712573885337544121919709190193221881442406912105937809246927572647434890084081362287891245941502351386035938100054443601655761250191318187867061915610248244158254687241259710267520106072968639143918024540292571612749491478818012997111310257921883674145558399434342863796838761748847264304712722386291414107945854978187573696526285793710606353490922889704650572487426902008162390873304814706071169469700149083966946431712800801994157386016761409951935815389697931421863717079880322019058598255317361312036858289911600629678041262943236480982575699461888713671846440015020801377558330209123610790636193767144896814629320286864799365726558599879435997165319311506373330158831169054834960439481070514076006270446676775533827170490743818069402384929353245006245069210213101243350995655266295458662882131322530597900028956651710365198213286643753400855490637876923277128633669630918058957412915329089583574843799598761259226563462126485717885041417568914513512420227089953762206603771341441057376218708443884690951800431504112616305731488407330561525262518863718354549802662113441957158595501966622549366989938872712973070399463785155959980973101441015025570436695731172877789233098800513246891983290052454355145913142292867321652002826900587342780981809812031938725992671839713874039963506915669993462738827013398125446059637745134162957365536186685544152189405242995547141288208831801636325332940082593974966403878582104224783238895259273148906136645067534724867557297986800984329868016643178863109457372324884404473605800620734261691772319651188253274802691113393979185858462465869821824214729790545579127482030672614222797982164223229585354528710336712082436507927138348985898716351046629977046770746306484104568881899855330715601217858700889286578255309354255886564870739224572431628528742142087596782417835924124610101568996233638667628621353954413392445429499856034482464867551039483048424163051713632747674456114082079173079998167522087612751198867318368058932961634805754425562869416533608163703827240115153672240216528013565865665826608058897809323082617558673403036138926622950904073126390415492057307975810699366659886441966392806066024354767187907332844192543698519252301295436813601808873524570311041454784074867594749557841627283898688945652744918257904633158619895701773828698337917836005014148773163935747374743142018965640358643306671979077275257762736495427474217423304706306886233101915670770493273717588380888513072025924738087590632516923533069058006388101137133888424903322313495491631098600740857994005398187670392825193260456841426782334944788848324603911375582573393607222628732248163600815678905409770339099642470087539188449830623556275698889346262856138608468771892988423843787454775535117504072980195885380625524878453634342065165302635846567401002901004661154741054918398221907525510118985923817827109589359476319089693149813182020582261635836638769348256234192561667009192480583105081744336113847498794881789019985213940571371767838718435988791403655916594679576746875870045881149436622527334889693449046847308518839373290512362913754953550003829889536167736944556028544569473328243107843731420674354731282792847300848392894976748788302961024475883755899521147019222144508473430381232578726027362985519979043235777158036536342920960675480064151070200334213574996952154403609928105089150763900058857489602954456095830818513210421922444553926086879028538418887773516360796326425936706706139796692773240202441918497410660310097111669969960536423290935755271187326738059352051718236279905912628217414044985478744058797960257048430178954924868430733592711890315929252912383000797874365430579546476104963038806899858589587463817792796001794977377050969075161690308391626135472590963670281831065013664654513314899303163369125087004295558747011753360384376496801202654952797696517593242881214248451587518411522449621281031036007671337592414698482550416440957734991823928806212385765600894637793320077047954898083180841311244100564400136607139668964508000074008974967138201492089792838751574004579059110008019535524775667175858839899173988084952762647472363308744027592472449376024970583708682448701680643739828823835846598352632378402633867504681821125917013237030082667994069335474141693173143241576031468873376164635795583424308288091078844935661169862945171387079804050429505718374096237203344851776030335776043114026000671677788419656678278142168676558003235679619162121816745951558933832429946961257803074548127935939824544849943935750915267382727245981029329304554359009754053195841425319085938876318969119354188489260695031471672056779899704308365807672562666431843190579678075171837151845115673270525109739396899308052916492558075196190360979896710653976602976839886114518064225316991118761492947884369409130307909828176068931393559965645653053768841552666822847941375736116767099281102426884391743418439272055437813581114762541237441956328321071980848112494017495854816975556547075283835976976753816705347745292989208009959254898236699975403996784727904773475196652431214913752148964727279606405956564345325690085205433907231839427507744288967845089455932695961046676426142476693878064628980581452169749769299445048841252382469342949176001997420190221336583713321003341754599869803241483029232442895275362372808983343462781922905610948804535297568321942427530937312725613160621589119628942277112641497091991893561452908599451893292570372531084183778469670040585283218700006960110831694202895304629533736556978268075988310762497334944024680958573114553535165460063739966331950044718062148506603865114587032066389928638061443893660396222822235990637206959256798940044843725811705412257097867360966311600709094970967178412094926720682326569313620003652145281539977401905330591784413225505330218725212828678976374306742884588277139545423218383422291348304573372665258952415233041926989779543956532482670055747440360534957884053279667585719454568469365241627960093571134835848788329127601717095376455383390717715464525928218839443929577417076623741652199205461002858834085327472952427891598095023640155357406203972114393483233983637548804942414558321527509805321212960570274937342656339659923474915246873966849165407321774553742507961106171607398288486351399433505419140388788752228537754586974964694905092466043171341779638953042860816429295765039926437072959688466202058604719969556886445736269575418623499199153722520433003971592873838882226427278127940240412439089845931741851524776252979544558018080857730104104712588074135141037301249883325791274154193154656466127273061685296541839737668825586231439213986780688494466405095127954606324635184626305568538219189169501411528991065741660156512670223188023802993464154634099665973649577495005400086566678900434516800985914426959266324420941129240140962089137975648728886554860797283045675196048041382681773920944114202720738749287812006968894771277087754068317129628933644822511990947129526338184831280109460147527387246655296111425402444855954138090564174525563132041522450616999361212727724404578020151939344979051545991417979736284418667816635980273094308944397732976760549887080145203585803838673347786589143463504398839128755139971667499025370799888925840292395857417751787528031616655420349082427708167392605042131511876437119055979126190759396112452581715224888874197885520014772866282513913133320602219619642649116985838718387538631617759732235976794791004412080880177620838671328494024757113686955283613756714988625572450559647420255741776721470105290944103071496324901011603596841991407670612798691353377562069907155765733263975165190165572265213343221483328628113523770987455489520006384730341147926611593262449806292456869556325019620694358181054544824215862840834809959311931493847918564405557186069718579276189839238231848209985225174421588471263599788851694129831456363675589575872561236305717723461687326125681512579212539262833419368416279452882267893289217837836730885567352697929342809186140978111816521666189832334792452926014973108059927859794500221027915598563929586907137304334696424771503923173369073561735752319572015005197241810702598342810871218385873733357867616113626166931740826297261868765553496905375835020551389887450660925810430068928234061683758413686647266615586986534395536335089204393048235382789186728672029412596260580030289132581999651502343007356747492814924941437630708122033146253886996157775332725312722761579188569378724921818398267105608831159439281584087507477777359252316058971778144061843735575279489394453601996501814212662020950807737669249112899076845885312880054315618527432386568718500733033821645704106999980607274489590845756768139660871725867514000158305607310839960236359610302175157430161036219357292423967182058889629499419378678542947275389331201913398638554337817930967044382838132719485245105115080489695993123257116381175714510476108608948008396329994847125103554463039269295156426140654346279971670934806375803194622091261000421618009798997765211222488854724208128362994216977265934438406711218801062833735513306024759181733302304306391992201621326280320846800280058819466157475262956364144238652258965474434543741480276106889477281212116323750666537323748898511183957473885283315503519840443446265838692087859836014635402260583924904197178540711919247324078353402566927451457377397697630560799130286594776759588501542415703297120602967323550493689762371296396623976586017642831287442729599464060194739136356514734021092091310810825142124115379967102348059176475558988489126992077236813851027725781621283429598925929791408711341479619615915787580052661240712813386527025712164995112321129094495853041607204935996342963655386564033810040880583673588682773068755107929759686096192617388280141023085307083065950482613393491189749053162601677964196056133963026463439751100092273625089560015636133224135327672087863860410356603483892743744894008835855380151355288464753016816128520061265262197840494287885993510461047079043912138401723356149730311191953217345674872947943885205131871584757106361767411497281095441054070896758109926517317325081203440365276145259161737140623443722323330838557057275570314145205346813688300800114406095335238152764815053667327448666388009068230331340938594239636556926610911949269330834653443130989025469911461147956233148502230360063705050087878425378990847837906669697558852413811858131542617067555374649388509390590038984702446220892139840120040122923856273075894568535730673537306364299037628859613085184262203692752954415444344086351290420701838305802532870182893257021121567980312731999478482992271524342833536823467786170602820712476181155569921542249607599758982527527603364721361300503627737174932039395183131165080691931636365792299515921975147818938384445636906099052061669423722236571340844804178337468735133148199938165784136940739614637570380829058298505108217881687677354882218340839356682116282184520220908267877896764483314180920876159755242409685707142708467181693681922333938745875335764664116174886805476327324703792349374264500415490861964201624025510283604196437977668584695571080794735648926041936546547213938116050413789395966298793632156782576759965783651810828828676485570008797284860774205608917316542481420877387341018533641478478730017510316530623931459774447830104205644154543061764315996835858342180463285691154464920187295125025504614642741596306999123797455490811308152431490525084954256452508532161668730222128397590847485670774135412846913637320108988989743942521542318717848926544108200131560701933417869329157881263277166864280531404307903403426080044658068714490032575051545591339817756241098632696391098358755980531588806273740510094865303315166587502296368372739843699638947890155641784045930825768706771036326494639679045055385893528386667938238984349508943139433817643907306263270569106519426127803487629616737167206292556782896955332869074274211334212020227219718905315299443675016847489353413224937165726268709695631316900701677919931950828066318659032486173269612962038840568962074063166972363795906270699206591166344980587538713285668800297705828291589460139327186257917161860275721401050118854418948644035087283056702714729321800713395423442304090096599231215929014453989002417999634337299735468786462283277571832781336632138676733639732860134685886674911607227897852051288952514603662275179373107499133200373247927156721506547042638916479101174913257584167446889578413913646265001916268048854376033311014875099640623677837033199019982738027634921801787209577469171904268871118408571193237712973305267200777727151034800392573633548355632429643612248787291375037965421044370512477704344724673683512280291997788391887696444424417925905243605285527339650871721135851405670911253962866396052128329486066089156689672467254350570200436924792056201094412475325402500806905831400750424227907571589674853030119081384264031498443999083432493764703953285086867114867498099422371638422094225177478547828211442629866969798313802163401663325373720255201399102818428787662771949100021610590798098133474509903977963348621425605554718913436677595649726977466397909058607029363847548698284403144883581927288846390291620847133757365397117110979330453985788458906709392650919451293359091255715827563005478408366953305351884337490329671428860178465506375874544471495316217207196918561185357831040871016481642648736966762207299703117946168825184413644645552799750081461046204648340921640673231361680542566882633890981811231686608727636680779190703240054277710519087815401018809244154601946685806213539371587689861359798762655582410129517247922304265835230885299181099223786662818949350464716049675417333891740764789246941311912578103555043418528026824950294884324553802927023692743125403882124339976879644238588362137614040871998596602076922976876302416776330070540789346349502014628551239679502692598619785336982619967774152260625856097549366586860201229754197575234583876181406027194579886161833411637594720026156138247864929000011825047883028794683590166393627061632613976492373097974645027753632937664725724017983853283588298644206748194899108552297983624968128699953437047012474575580309523046469827577092749817058370858756045788552074709669710310339608993098127512308630669464980794327039251383550897441950727025441116469732291414774859485314000942348671038660762841817635023079604197482412153225324790015308180244991467808455229198919744690256420072151217185933539342058110605256124056379698874823288518759738595188378102195328194013920574644778603776261067821764049674562674920224262062805904231909898554997945408732355729235534583481976637238993254008476365715662634008441272560869168872771888651578384092143546916093987795924452588204901934995825497639350162046555483789744424948182695784644571823758672873160461617058855167720645606379299112701379988690543629759487699541113177223531093052960525812037973240134310465380914973117112438739035029327995278794130137836588356177596556981961019619108514329858652028380475159830013264798604571839665782669242325286289056608575217609741808117347898433280447843362873868920889812655521488502190196541150411679489084956179517433112135819062075067855450328553424871277272776117000547242227337418317682751251894014465659740658405726963088515377080821087064499778040162342692942938672744837894039137270009318066949682306593252404672565168187388227852841714771561263621620334463992228093851760980149492007816083663389793671822520626760314586824172145099975734627657300417127730720290481500965814403846494871341589841603464137727985727144133296402562045149952882031078356543207412464547753257927669829795246689005383135416742591110417707206114901446330734780556420823849625693730120232024396873614301435631574952658673474167314322920493496034494246336244852523354452506049422789491712475503228000358623782610459595440666383779726713373106759633922646071389910135861466874890468093710364419867136664670582733455184980651754167482480292359390548160650744872532823927431969491469953400901214346854894704755744292052929755077451609578822281071288718790446765023320125117144176169432367169866055656812502536225569164469489053699799965549508482547605468041742424456972120264917111596140466806925795988591848596938805918597621326435293128977345466673164470119854318719444106775304335249453938436342964138088172605380405180717926255502229046143316865962846942235919493949534094552694661493071192583768933939058824708936652624754016692307770263746615226853888180056433272711900383736540597047450794246502738314929161149322690489618014670642210515875227331928276480140393337401624239412043267480922328114933569694637798553183630014663561475772713746366993130982426798519106920649622846622016711804455394927604287028558369334882850299154102848080640535868497719514640920384478715965337813317219113561427359501897470932365972911558447395886970786030295258737043652131627047872658005640815835876907032120817587797762434727914891471478289196158268030123664337748419102400963016681718480540171426176890256502603473842055478748578575833755681173148575117430791659660972065317558590567213706826831801796284260849936596295161933414320263878520387051998802414429540073748375126315025479692128477954635759806485282861044932619861904541993115916166065893751201093501517883782967222896023433103785221364499145720091677079863430632981958800592648528177607292602482890098449737407323359403910597151656878331194212891934326890226904177608157816190427563924130694830148377160581295381072582373328834187878155786354034543569144281205659754717271508131446962633844233182358126910284978677437635129617890086577305734668015964023453901971000138450838346883400029264292861126148868603696422673696750721788990289563396435380495092350236768585019160655100191135986360417331832255302263945225259966387660431614972986655535609308035337305464465405421283205247924977783027033676495228023963433900393601550784990408316398928267709498456692140100229846066754261731054334901759033830632627859322230188456127169348104052501770111434058739775908200685428062750089452295731910411854449103438465166685186777947620854746557535154427495007441804407240165213738909813167130295076444334869055759898161832075740324101068806826538969393857622009121862467448275250671632522638152295220873489245832614121864591171677780548636203784495216014358796905327426508399303583558598255367034216632886500610962511001185797964262930232080739858038575573622561078530881482539716068735443633684063319940491577249356074149590408055323566102544222317632881925236027589611059265576163519610178127153408274308589522280744090164613246137804149215251704855063262432396216028857742356023362077881785488533240069917610637747723730085231092421071692619079338680179813127368595977655301488420265395833408062288081361928293093431922100398785141047573239605731239667977623533574350757916022177021033822913031387284450085565286263700144505282862995072724159094597406806799981235079843094841454946367169816452605357272179679203467958858767930047700211875319944659761530098574464328609359366721995144263363548974693455611439792572279151684896018039669937823052698712630568503839612292579424705685069489150136433245727022730267100984304899019060021840353392108834090234182352783918955266223026929002496532271705132258008783798485948592289934037579604332588523804653492739480062497832148520389382313847590660453989418853653756442286025532801564820130705062918934866066550764120298484566493302504395665786711699160829700577842401068073478742278724449007183479655570683636008803673023857469152392051818062428576948914824199575978956196527057931527222196774019452125308610032420186525993943154609145047488758579870075450249074670905959004672909852359322463819607348677316004610805167515621458414079479294729114858208486313814166108250709534479746901458746910475289148757847145457632421016952965677051687576902703607912250916836594160635092933232398320285864058954421553382662185042529393758130626564849343305267752028885198647546514369803953983827904294183199807433711292490670047677067668552329152144481399997798400109458515341259199004865534909045671390668082729884595236330697620734016397334881231927983440430793670691800929076313251442512394611778663429221844146667324024284488866958216391330576292672327548086545082859281663905019412956996295198634529720190864527445579363701808997533101581722917364414764816232322899209031449443357850507535296438159835491619358998286967969287922131993431470544044544351824570098192664622105916868058070882798598727143846164008212854452381829414032240936446330744540311939635945876676973108519828480070643954295231558808159182489546533304506195024484404568432037599631641824211429161698257150744112247224692661527328177168918945303752627047714897689445947406229040183101849230399189556995859585086028145200275155548559467334328466508906138433511203583522482475428238155855161495008478372992098888864970700080882226878770113527241153183695117702914012635298424424890212268521445591107322835017293366916721679187545165665356008215351256391208419808110416357256228112908680280069437548423679212434665293000129583881416798391001053455263312137083337466960088175270216959985851004188718644501694909723257308657593430107679659328971542777098121641616029529869530774398454797688814569118815362276994658291589565455390337475817909045944275911807155099768381103190419236715232919403690620406679762899356591118776071979463719976118100332766346237582510624992548216803051008402245159480706689860389641519071901503489550891813896241409336717757565163772932785205195289296854478707527427599620342689473104421479170992757371256746696674377674787047214009330576402243977767202977744893461401723401791603164718138472296849585280330494750290541279042208515756652407789592931831661110316465071073883638072508077722839968363539401931602873694164692376410390371852295818145640081596663617627841033295433663725965333967496967537300509460565232768663363901865870946741160971964692007013355829144355297950130841589332872481177402214142783124417337872902951971061989827746968625559834474922911515649529499986091410168724148971815103073302203570482602894950684600910324780288484406119216051649124785457858145370345463438257856822150918096701029676408815885346854520117039330965752867906722472751683635365376749414881728005109397815749112280922393510583531479036498728595140417683310622929859138577999462081250484674455989070183599490913158771726082069535393123509518541288192652119908873625269408150678879620041534928253275111837234188975625013331481789435688832283340435042046098757535691962385488228144950597438995221109461761203367026019180718932421769120829966115882722873338422472468810336509471321828854136686180780769241617318970910843072537436011650942236493477344466200371950401877055062196402558436092145829212403050611607204821912472695615472487032620140490153245661114285774456244750265105977172753801587764561343825987390899908833745680931741791770337054824744004502342294282289539374019238268283382118688019288802801674257970656690489117561834545984903292202734965730419877316968702206299835011626525093568623956787240955272253229308882800638220118983827310112108930949934115594735481366105778203913557870931236144609022958205036388883827857522328632442329794722905493991571739402278074016656562138973120499034163512866742084776928489178618833667705282408040216580149336914276755571013088272375449282681686666889719097931993659282190537618236400658015530224545821274104313126934166320805846775539961946055978672129194548539635561054908409590322524787265290460578379562281662216402115468745285452208885280510999465339426630408688224695690139621449340701621473914947140071349880128876437561834779456663828458735987187150196903697593331304429107173683754873862520514327849895271461692380672032236745248481530782369928909057386802206458576700106422806599995814734570059505185770487082834423646641708133315700385916372950530476782485691314803952084270750429663785262075719786519827621320887887243692456812589363673355135220783279199309610356615362882049964612190208636875541405288154758999263341697169367733900616311789439666951127869987535692059668753140462124223377639924045383990111421005788054073131627885672202784948742325512673188995597299327249987103253438145811277690664524802835597941833456966923395023135101983387857370510766045785297558868991523181405058176992483511392109005522933072871834764100086279541824742722900069265665245270860136682160007168412712307501276512698747764094818485050877592076609658968863650412328324328712254532263216675905202478810846567899416062642792180074135410650403445570916738334472527235092912251912649498487954132128001580335433230555427491566435050420009066350744975617435770644923781767077487464906229072041183308865856357239435198279907551163549807649884434537742642664110351703080174228320977274048695466273974000134702850615614594205318674179919337182012025371905453622279592097626094219271083545769858402473439925238556230654431805234502408357405595075510708940340839388972865314262241592466337631431147493314613888446516931635112714068741865337199752293849513508657339513150349345545848650302807341117641207117139511370940262590533625688846984500503079750846627328121372439893795797270238874798824188229111358712774731098072013883241536041391603982449164444141030094761645496268749704863403016639728214911389136383632332630361703541835907105598430626853715261813673719808465350658680183798263204888238685408010797689919331526726667341064865517994869234740504655966527628407736431916781975258317744498050344629197251504731217435015196559249434400886645697183374053347715346510011983884281310603350811386035288502199210325897272752223474655482729916489808063204078741909325917645146688071331551429513757416015086630670117238347438411502813639950924735749942775406538151212089847002742631350410729057221132228114664190188726201868973335373480280415460576449532501321619086106651609681204095257894301290846164805555401307839363631569603512117880183265982129391356189106552517107596813171018371596244881475693268220363179090620384857424776946517648514530855905068224655863516580457451625679818849626576515656273288048468572813881326546032582859629923692795335505599121764393257784464090531868428410857328309473481966741944645907588046084241317536330400896578386014360938524595575159756794235789671080068726525056740651700781003505278930444291157756449624147957232080261307094796250157145623100221436510312067983098586913325600791405708730371102060787744212592787023013474089301085458667749017966774431038428289314784320617789784274971462785159269566036418234882514938752255315035118322228432643408097757795500657274702498261629609031291244702250487165350124272196007406773423658750206472905963343811418799996897643458023109944067651304470596229142051999594567800107613202454811988076294827399865966975245801813532067254746281961600990611777686598053392852827478448670484894353485204953916116460034732806542888607962422682039708054155203263827781460895708085321900151435669716529157498685298327182393923495368709198753435238522814326302401934915193239866190978681986877175421131546386931104536242406423926417921033467961503750576089433097400215357979365790514436192183168132755467988153769166394286601503813190398166115217201949604939728413639289660413947943242096298045854579613474458300795322888936917250360398742725683035028630438148798210140574316172694499707297828672556803141637069672189628323258649406582508252140240989721364700431277574845937749770019212087502285382464902424177504951175805354108683480632065400003500852090091354984145742103169941986387789508814911719013854695690928018802163289481594552759008995354856836156625325666631407067530513226645833410512809317687320170810523724845076540204931197534212420504047574246019987748594210849081175307120111645836029888150960092101006032637750554073828969043836902542283039221049520933521185290586407866637174354177136396826134484208611593865204057671097902013492423279527223596751851036003664255677884975690873440582010291914132027324495872722980880056589786711295557065530067136962570585919988106714342362014720800705764677430635041057865731040753571043667104318043821357118414443068130928004736834679987373924865473922958513605404126743041252056864077968798207193721462066698157329089563955105886981942944258945743433626834762781330295772044094862589686543857788211954552896995981875067743618876948455658889991234559205115301002745605903022167769088175294856002347227417776274218195977079059971743046131651568106753841776472466276039382863310967610933298813701742834914948209651672647349253437452377123112255575901690960651911198544956871646941061351136111253973250703666725948920348600842322362361220118331532072312837663527828579972073066950403191376003951685005156294329235299426423970691616182128411589538462341337437529552350864423219716995892884172717767737606923350709724779309507062748195808859843121963234769444930519731164325286885209487240568424830489068963122021094523771294003708201216496169014052526347442717896136920755876209642395139708959965025277291675878741549761639048939922434750132446753782826926050466201871737512496654336841560445523597784582048266723971804660626732917815678034748947780740348727136487638787338690777729551677523974217258052345802179993462600728384205196220558507140816933722617392167959944552986920439464539566443590666203891458467800525606536707595426541067550970804931738516612929238089326544437923083308612715149454098912808735168387500106023287039457689117493276463752616544982170822886892300496231210400498569571235141915286865153189372679598544018420793395848514621440793628204518432455847288741674271328653559090544169826302994402110883624586844836555842279465942149602456598926733544628864859352961964294168403106987329090344750358667632239098208575115895890737104526872892084138633947647066695879263379636916734265313007240067452501623232945128878764922307691436059729633540782311299171690111325627674430411828861765577818761770849389211962049621486289487553814389561055144888177318100590431470092723502574131157309768397520297285858261181503466285780888169939662925635803487487595257528410122991004699210143915289166830179810651336451006335810907958559425227378229413308387508263894433295915856095794217835756318342755048012961153843328300372241782692807750981936108779848116744095307973753690993492216164498824065516905371535475734411971902270609952529598287690877244346223317610847570328197250467414344446001604081061939544209378028517627595679253889229822247890149735553134498377130831344088238685023955014631348836388383963406622385435039261375897023864858393037215280487336667277440826094902605339804401691211783740798620790819941046936199207680679993134227914491344680973924860587876778573241384178985596937118694344191333107615326631345358292281421098607617544399545744645213258663823654709840098223857026240459785792947800956780169782453934456296487699493572097903800417228758668012863749369650244251422862261166068255544959914449654184126387014295253288540579922428382668163603620666049854552797783705762683617549192256422864777632401939624840445200626932421636333961823074048728165112503553744409593712169213717622365512438765835702800985345980998042269248415497103906712304791966904497436953967382259730346806679633608433865687442983251813382532404765175063976524732600701660127162029149438364213632676169323229597075384292885309121144069692331896402266806506106568649532526752360956596280912870867786171542239847797964409463021691646475297959241216380068500780698316507305713768820297462596455912899763574717842915784936905296800408062813520896288355030771151575400467509971024442422514170875446514967613050693181592510740329939071159525257767909401372020846087532876935894081236209911556098196242210518580140471873808953620814179066455422602492185502096649897699179492248162223562218913245160098376772021868717920872173379374674358777551103440823058810613882111959722687864126558445130245221891012723778074647039047763262974221519442947853693086079276400028899081549738556661455395955110385060367182551124805993361413180718452783065240757355140115874878579417367967961396000062006087472341143480451878466027554741829550618244479125395281404808730853228748147525231114435024336498474153855903572173734191669934273642941671855712848318865032413981478242793765064708620910909407746807525495826101614390685447785506530451963218592833755571426237596958773194713800589821686918903512167326478613514351936227222483641811498838870743397801138938611135874068496537848269001412731245697739652460945999418808425245671800927597685337546248189494647363590250629258258017429824738763302229976486170843219448218595544619456429296706900597892559091668688856200467386695266491139048082458740009456991201805092939771578178663930975436985973803276806116034921916628894720487985185678239804902432672068149453547323675641074499422394998011645528837944157439091945528543057439905300844568918745015010520625990045337713370976881642455773697127798089787070574484814353651525427850110309017423537829062578148680492077513102034716025366558616319208290020355662912498131257517351172201759994979777760612851691779673775860822079058591049440626199152402894341685413363798035316088797862128221680293637630135795691634625067469161955265528520179196382113245144338937671912020883218054121949567342409978340466809063004163131326503456925788757274917689465503638012211231746780888368564089915587681512573227814813400858337151052659909417047970053312361313005955647878312803182922556640870385558601010881830567101853801800284050376242572915742037914408145647049864476458245159627868476574920773876900357475401255338568641866848167214722602581483121124029249629015938846827057671806391673686833499609241535862542429781106152212325430824730265028962883474204050631868200366840927959992321312304422493766741682119418645434729237188522349069947733195452423147074254876837179602369840808744021488346419665250987179059422659063556297873191116046093964633853657856630534937287523370990809062795523797094539444125137892051910755621699099982116962060447718870858376583441196599434265465553261777665625773472298751349410234343949048488043042825020235669352950224292602326992680674902182634513699917117351611192230842346107711029318437459437842065996566009319226623682753744223543335128246652550672069439937047919637305324996727327952767916283016029727484899427006823280320464305377171312781665479466141581461550859016495489243741433997819155769217793859030271181630343152310784461514460610878879478187430318076440256881649375094642814906079914359224475980169026671267442758643558383074090913857369933739860887897813678558827926539883173746778775631677254162947557719795356753603178632641525602180552203839216217693543499229057336985721275453411897566594226029715827999723575130161993101141238341269718373971733996011766427324756863859000557395078102911845223949709889212291439987847258671001143871642305336001670379308100947362511374408486812122657990502304373574516224126401536204138162879597060708688620000312527432384182443317228689692909876874368646649398758878228800053064549222363883541090764631348834930745657990196077550689329675235748283541867882002971865602497851690128039767149197681517793133056297980117723663957883992177299648023507019831633140445527551337749185608015387696758973840805457316762036196350047595571832589277336981201069949864729541455630836274361142204706302375414026549703872076347798710481145744924900130792828235213085968868212959835005887383328926446685155888737123276387697926362823208906969322985618102346680729424770883917158028107484173228895980682652772509084118810388952932254184931383175445140420825019733068516296783206903057133086899603889898024122809729102482432971748149091239103195375103086121644172677661890705724114814843203720846064825894877641971243249460662820912757944744741681400146752671609747023293972730956993102096374603945047518902123267839171062686217627033626262912779056110341141635118903360814490839135294127416064880727246214058185233072089458996079396284581716578342584449015673535493232228289228666438101998707049410669121745096668357237314268786404355329382065117654551597367221801558511839243050146257414877063483887919802159926161365425121848296666955404122579900442480561562874421512813450819660039480368237017309508772357034337495918040562890733423825863997097271883809082678812125267219364601325583268608142786753053466352243245086605306883105184693228668964919925723518424810484601591336706392710667719063890409353594375788959686817491182451383167230502142303423440747696315517545852974953650044815478298447815715352445014221897238905593614180157628836559172823082391549662358825244065257984728817767728760622669220263836708347150958681937617745389277711487307014961718841581676925940361001365529151839390480212584515398713702706812566289851103088037847468549129186389480503702975365007868173630046031410933367087145294600657591199268773377924686145241606779404573859347262815237680142843962910823869333965416532974832606985820471035007417936685461739528210447516548433472959174661777870847759241270442778429879341757241380735675637581182820508928207138140407361250520656508801543844882468448586657460775356661909156402212812896346397743900254894869479643291921691384071474393362715428710440297577011573980494794892323171122157845392963327136342199565087919140668766788752110626749118324481591988543147182820128223644845241857311180785255131333696204194307082443036085732437615602589658592966899457273964636272061393089589663179640582130171230962031949248422404104806993477335720125836330373339503611037719903708001640242101662268793266157838670066454144719163161686073509805569267630118423771936020784396255419966940776399693781185894044772557410440714222527389283687716269728442706752529896333395664706099512649134169705638356396809797499042569355528903396578538632335890818004083188522237536184772362678030363369728593522193204830895966645673137897578552805458373482892747132808084262708378316536391092830747301309531823333475936925931478785472899651179869911036283003873224270134452859492985974894230319043061044993742225475100970187597288951155764435458198108337757238324644166837715997173920232456782515100411034197800302340686213698137386153626151476409992692819335246703181633186854211995097009508387347377359215219942592640995859448088305290587998109688721213679479209074322982050802453820149220474315619978334434167826390374034696150465583529433390418060895892943167144509598275894736713188747285100104562588391851840141824584409238422242023749439970297857655433103725883595248834634080957379876343119035432283291171298123935007530626214659264747047991807523385552300470254091233632574855976782638413383074401523907296552114354978320371268404448011148575345239841452135047840726530645497591166284798023129985664175993773811717525494985433593995139880210822753130240447261892699298299319535285774836713326896749909132653944142470569303564847776104118332880221157476085867104671998295762465287690063069861245915395709525360071260288174397604904086659633924035715160849379246490789879083093043227903526559129869274585840487868470516289302072320359684911982727639390852891789250785809581864172253877650054033731931359015659899977154289594649517830601499913794309500792270490551034396744614754743760000150172759820241435614676686765036423437931208032931093157596891473942192400554598730241193943786724602032005231119779513902169843214890694142399570376697323263756766335201200033057266168866445572582243863949545988662765196093125947216896016364057894508161576518670039466007673635917341471104710539625018751217369375148744350227435081014586795960906506107535144397211639884598516688111103780736584564394765474116419137420437821431411857792147024966224139398788129403158856766650721905791684396359614727265222180196169349327623173961320855995811678946356429945542467093686758010486473689381159273317305582247284579603700996544646451135693389153699250699968069430317161007261013406619390947058581678016265578025806480455017186648472209108162125061454628685414155106727253433377111766395783415753276666749738824313509220020948499912888399965746078862717205552056488794190127431043194275452587946078978959533152579323926544408284844993436360901535429111612468826690533117889589723510278491844605952852314348191861046949502496244654041600351523032251874008921154271504327433114501529465355481456259816430433926305797205361367287373194700029472959455646063049342761600077888485143176087854472031780694959391710024549243215390130471023631387785603692849431914282920005354603157481339660928983178377262905160393849707132589528293505825782596000932175519303411319793629611590454972519934854363736790606165777329951469149848808815284064264129536024353987329245492816899694925255832439172095256105541409653278619907532195355329434045371260283516617322284119100488093651217688674120029635473576754376417721349954069026504194737463219667179754787210694148031566055847300077233015078681213005906780239576316500974411033038943446250861445531366417051392801720508893637021030097432354558327518904777037728548261649504125193229119780073585021437035670891564860081141347376223542907731776743142469309207914944259614468550794245531737661629541660425254592096055792583035984240463636280535243304605026076299940786689598310702188368539548968262471337700019828528884271902739801299968001326043976779827481569437569882658214388301794495612566449881435067818063462925600972065220065001129339530186317524919718298311066526355819828620864063491688280830169432337673316891960237315570729697482221162667328479157254885219525322476552668137821749180271771167562048186098064186709899225136457333964242337122718228777827075388591097457720350805643231594289245948381440187422984789472862567322873947884271982130514045170492743547294559294447940777638593586230589363951907937975703968392875805752065045426018403660243659462736788925220342936892422991983114154057300408903472210362247509162520845845709322870975202616837741306781133224738671095734435426661795702783118739756379941846316632574499277098857542668462240779709688996634581600907438930792684575859056717132086182092696115111774705273385024966822812745699931031069829553483206710768255134646652905120914762054151753327731991505939728517043291708816574258259737962301344079364640511458914623186188705512103743137793409197572560395897243733022256688772955095411594198823742832148358141335547918659298890168059921812660770854829808613085457235527405049762295838318658867363280346175144049326236781536686430537728622277355702661060258795708791962746301003532051431325266276944695982600548466202556018506783740227996365949081752962465954526699373821318788343735419420805635688397308458258336683878570964158211197463104365685231595036454964811731262697587722865165103127295808272692212871715284307987912741068771458444266694637413305380064217217393940850176815185378710558942926287802710607576649998675672707798756080343529528409047417756324460163552918582793570374114340083364997038746501523735233896713846891977201436815218610980845386566861988557783118449409629735729811367941333129840331009804140496749492272057686715567352269895822617951309320684734193246534528724435948847655178647005142765569615299399514568412533426871335547145433096943367393329862150374956204772526368989798596663113104569293921862317067636422917264199264723934011200712101571422550955177969132136567666285463332671267772292744860636204803671697673192772236349338864212914368833905222792787361391075313458744480523377753656263584151852341641852360854770300190764836265301143433424170821881159514050787684213283908847220589196837858107644883778304272385772417909780712941661900400712775680805298854543778012389686575705063156264788261237448699502930382868983809407077809222390687049716245132564862240016403158236275470305327814653995001582906500320418100617957285563210606211800262194888189236718142507785750388120546739191531515912269191460957867896580539397382823019656934684356034808663407836799218604977740471647144927653402719330206844234950877662987586476790199930813292523343272514456416489985667774476744746291248824080149363743126478703592610965622033338147773039155913708630429151660777776988546195145463558960600346384173746126345064057735239545391471143170091706951078921806167535666873443699898718584025628385134142210003795840327182758862993781615592390590038892903035997709587877137407773690241709593467781191581453516240876886598521224149064216609135258891394885053582267381871702773847711087670217042902658094517942503206268317520110321974598247910249044957087030251541599402216814312791179323429586562247430446499449967844278635523094289193393721959972401805616252688318794969687612456326173075326302164551767470154452157452393084726727473295732424115607830260115307154557913680645897301716953406981746552503079415376831918036262765526971716243593648943850871797390373072640951364387297395708344049111399983678785494427442437820794832340724282867518241640120852710744555596373491993593933502956619787859399852236681622102700587704460664203341156191871899881253030265915936216950565896345929251046776723419786851520462506109075498444931843459707259637626775914910577180191700136573567642379753930773639758936347454316195869987104560598070946307937385199407331336954953714201605090107806150886364878171968194567116541944820975718318547087414280478443052840727129363807152835259703206796590542184949514866751908767585692783122556001729116757771543097211677076718317186768356013147999236366338355777834876609068060534560646951681264347940116250831830632228998239667319224512146820904377350358047560465173523247728930946722078280745218978158267221603039174125056506434402248480751247744293708447694510465525867472349591494586328848253820359105876585542871097999832006347542420201049889764873708785869638155082545238514345143228520644552296412847977500348729836259526149876096964896231263658781965239991291101184143887860304323693582412832205637851873682982944059408940249203854454671155887430801583956874925989463087764097573674615447315708141510897595150764642089511845154974018375802140324075893060722761775911849675081817710680648215320464178037288041326283767438284456612423239710515388616490357771476609360597454109045822084883689594691792135687594180163715438765765093771938732249905056832422015839364273309626674614221320999654319836139722288614642523218747125624938716659490228974838862141001864463673125879133002517487669825577027572003482340978507659970771087546392941222096344394113520269554831715155646577699357964682398052591466972017686731912987578117930066923545547110793795558011932177059902704576293120971985516623435189988452410984341549207787451181078146145345976579303942832304248336272421127167442234275730401661167041964647637158495889169387731976658339584723332126001403044795488017651769199750426643831336084502611126975178411580792004468215978054417214885795717632016327899443050718616460920068102525279678072072560376328942111568064007361111001508467013866683620620200072999515010592847462683978893191387082559433038940182386323012093124501866615518833039773148436334726065857423422545465803779528400595285632512101002929944537911983433050386828888631121012547160651390133085758763641545980897298435841347569975354549281138616729993459276530602908221685198251190880441990461309596928669839867443412310656591150019206740572796433703089834731794572980714119984163535251786645189185438938421362599897096663362869003035037869595136221582373006055205225275805823918994249176001992414215036570984614440442123984170817996566550703871141245483036689258821818634950356401750146861164872664061637293520926117074084801618749596111578457632792082916622246865946051413269677638141022638982309945670972661313620599037665049803078166649728544741700374735378614315745848765967304688667017802682970745700162499297431790704290940386530689978274101407427472497267822647061047936399619735014609809846791822186922153483096912832326003189123104857475142512007191609485051979644181081407390050090102903623682914452440153880051358043140029482794252823433703944051882081869546416145153944685856069302955754973768976836068163375115955522087557444021064582730267823950160158325422727476295337966098834593710873032528927667794226313780499370056163948784110033913236192747346795552533002552373434891753934062103495605424815194778266640482114142402822520835861642559366885314150060948224500507255353237773684179062840976177292193980257386149581615264153732731102979742236902466878964077672513895527947364027003342991802192853387805417331118234981112752465679127930265266288910547790434570262037794481884346579635403454135717654433131531338387465294942161148819411660729867750146259188851482417546035359914047396378818364507753645380458061102017819004101721583322389210870884451194635084618642267946311035137212530673258698438978766745581043735509447154010503559847495306312970877334836294115942551793053834401417987165968507110333157199781055170364538118873103691395990556702206300647422469740114404899210304421275158973124012458080333644778646709250009578563600343228276122462547161903643281049532430120983172514083783615656677132000087301959908914234184796700763464736455323280017876372253794236244805786780249053686011720697354878815657480494197356347977617858313638548463293559993235865366824382553104045030729328609253012711166591843583975123794553541229257608740499181023684593534043129120741290189107546304715181986227087100690058019961356859863553424738361364996621266244730318298872321537717218522869158082083524730535849615670313005011039174786439265452772526913690878909773365169803014898653720014486469276530833317676898721937647972613984090722657783023155054019924159905690928654554194503196922019559671260435253397866055361501027263473948396577920346712915062171002366495881843406647031485078315748956299020471019335930212521151647192465643935858961428050865744965875432772684081617510367920634236253547384014500629378772468849936359135826445989445312300576512818901045218088803045338498632743379214003176991881366248896280771208190360974279254602551899956148430045683908771944453940270343285386917831161086720516313129210984433288217889591126944320556401267511731128564303845583794591450801704672111415353504468705707826004099711243633219413111347112003981680263754748744461944025314489084521760442706091453202115955444047407979209116135573703026161913957945427775437157443872813788791553841258811666786640491897996533913919211453958379417988396469928171942001637901754445269049191926620339836091127421046571925431282295657342125903686888523522463014414663116738794665221901257246266314414437496778384910322758279526401546057692347057668412509845495011265468074067982718226045189452708221208142941362230277033841754981507500006831197087187255883644169225876152678162401077319954841410205929480620937129787726803657429441307935648054778761746955532879600889646844039707212606510963877025917889255503660725081976797917502046602702664678457327979972051173438154045791241528688245371159534062779949517438318928720969813489523191747858008084285124659723727384164427806512329613173726820915727215813768498540952250568850944887377578436546180601846651679817272701981245150763656092062050664521763488564613895430010432690324512170153163086975587428730439852247118573901479151304670299205918255959322781426043169687244473909206638768479260313159292750054283262486784858824378840790350671297379516063662755115524775316732779496430911878679809020665852126875535018763518591165006681168173697900386556503351666157322470745512028580678208096376566414703558389011643424659324347952442686938200748564916824751793473209613486801385325510981283133927370295360151963239394366847599427910317178941745724762478332074643733026758353993909781163078301378476029824205568145133184419411181784965634538057458867090101559807109264749241897493223788767614408485792726077747795912660282555353539847926199644283083545032508370223552472128879394844465407955457978052902543652755630788980584517958172358442181120786680113756747386147850546318859719295123640172653031675748481647934823119942785285649029079530744976830054899100590668454861050622885224563108642386387138739213308144670048100326517959776997657390973070133607263985030499669284047364848433007057179488311205247251439955265208977058862683814058608259363995029277241200785150495976797683638730431597583599317754464265876899178538805362788401696902931956820754180952810246903502739474009522460046585646562157713773792601734404201345889364400630244665538246046283721431769977679873908978796883588526213164116372878586375574688313986959474612158140020952604364029230117102133458123520451557384197904651030629740029211117457575679000719864952752347092641583380513684340360627082026356815766573745365370872016450058493154552047239042831493641109976344571961407663563323936579415447922090938168568255007658692666210287743938787103935654102269836965399202753006987180489221917895672753031541299837905234504034377677997433915494280764077022086633996568771672096983505911622074697203815404396117534937015683005805441920188734864944874632343400033389206448955354220731582928170015185978206732532755696464485840513078560111333079727800961538345826831374079959589636245794354809335067140531890997619248355567757887247413574173014940378787862506637667329093547417497137868112094296830945381263135272838138917225680171714929565875853353453619662943959746204722471767687369496248368267426052084019220951246391178826144058588486912632818394405953031457875098736055228901603704015651991854591333108517283107235227111309714373937222054960871363165417971920948699918081043050463201461667030791313422504147658801556627029848586221628608802275823862789844742060436140823946747377986996538750627514639053248882777741634405676333043802965761951455877333058842058499173740642887784892391373050668335324775863290829082252583971896341661315292185809842384934906333294423077071814652318608884106900377926786386951339976666756722328554151612957079866992969469567220157264479944814496516057169321166066216524524208711379049068603724952640623706619238774225275374054888066852158643546885391029924637089574726817385866437707054008568520109873877983302512317583307689742454384644491015925663905263769444107428321342007573580811578503507577119504258641678058127120804188904380566661866103660645340095607800764951146567536734196172298917547092855632634133515589042807416918738270149797265698517675270311419722001702360743252176279936188069701544532799007820530210304784542626723077759199430530105509108161488886208006398836303968980699285671887774110525075830854761028898007534039474174402835575958175239402373033258644592667325910984017223464661133992985150568950026425656891079891562207112484082060195885365885349142696429044367729581347933737854124234055263695170156242925281000817755536471889667513551607696854521370423731461263841908907652582898112109811321620063289384504964618201453226700520074740426777318990581517722311852233103246865574895915305883340097862627867966952987453136561290615490776730690008198390538784050805307259030252899401220737688156016016344952416293777178969587947116338315490805211598437337908741749773801134313570900156135946157215960260572459844720571975228983180518480310397857428505765855974802615155844939188712410986533159881574708634096969769541695525017184695693359299616447414709741212778993599614695512775558171003793766974320440624287226121008270387382843315899389910566817935666279021906716785525784058356215608580988458301636042645151938801816925824079460497500616146370262809589556080243259507305542294102265237569268620747116369357980360177373845563734293729395652383658443847715431290792930437835764856394758905329549136233794738014627858961544819054459569156006895456306145664668760125104805859258618522349953416442502513418631845553229916447723159192195164417452897121388964321292722613335516446055142353627484278349321599562841495578088702215582927925642775134139304965142198298748563210601694042922411683835109430419385677277576258724652013129653627225061173199018506300755562272553230097021296050220795789236874153009368554030823475453219134659475404991339599784973848364189213808826876300387652855295720388125736100550364577122678455180448012665509214575680761855559775874143652582805227786627007771236168461641157337176779935903067282186254374057640224652182180919935684368111415167477876707372501961995649711293551706822363999811901363748352082477623354632889052070586509199654855484854139481599140123940003899656172421923114170765774476600439833459085462001601583794670060898457956653539248994872878063485641664150090512301691493277335397696903506589845996943795104258332186723382513271958060685081521967195945907621595766273068238850392496326805738089608686106771887677092510224937016054926664373783511814917164971367725293279908026007414190070331865765147472740790338862186748719906187298876126203745318029058280946422627993050350665677171605908774926632464819825735115389691634626887089125454570932214674698584992845112126378064423623382484787099992210812428677039614527499015116048645309357661228286029188912276749481748727443465149772003729326548099831289140610978886307498454807061599384918446616681980639878905680964249858249530486732221077602720479959851969280516299704292425987545864305513682883929223794122120080783081196621950490225633360926719744408282915820882242000853392988007018946040998871935204817414857959556940921587244794326892211496643283636353450584522429570561838131196963535554894746906049167908180106654392353178527254053461302914461349037385136687231792380631182887400335509238269854059120181947623449528398363957650908361402357478024673079908798317178437621793699927415413765742502991250776527530709849033863389723315383346679406730843809956236322998839870902185299586238781551925142495563671733809200991350539747298655925864421621027916037230148726025290619978128583612365494551982400487000215117118606088361526680007336323546960316947981525571624595740454276424076903204526728993083089968984774716131874492168211414043502486381856340116382188269387846329701781114044548868954740930301369015525734742559860065486993648065790973625535406579674804517583810825117060188585709557320918717428371507054710511871831054498281394210049529952161807325180615215961986897824132582267560615627774875223935931868031483782245051798226383366786231329670848397496784734690916243112243738826901680683963258865380417137732258236641655330355977765909076661659077242637618575642982310499221379689419477279449886188681702337835010996370949745020214215734170663604787998688016339775860353156078129599685993971531293000524020731516873285027378428797481936274353913513901791485875445874236105618821436650440761216200196889567271210672262989766303516405881173095435996057806059204359876688490905184000632009262680054834179509272146354492560198351276550461272337358275115522857792438009617399162907683330936513532334836283845496560421733194800366577550500966846133169099800785971166577505595362738486712286851319049468959357867027330934963984137892475235233577610886416381567347626587570963048531945659086148896795080001959991107340658354647489590122024208932266591634851634230157946846269250133611166642710381274708414701811990054867200089183064156538499173291536719240567849017335777574062715947767128320227620655543993747191334901806347479952323223517560965099958213972785243241567117765641054339195537129632360897793270731834817095694713604121655071854014548739536577947232068871378869860720388675123625057633756479140425457042714159338829913113730627717402575219712440565971891892256637979484380890811543943778469424163131702699729587460786297602783933914741995506212733929097739105410266629532390236471533742510962211396036169793529133958719498833911605496283506022041846006004814383087254047030210960252174966359212665463331550523737527904779799578191823785646653186671710579704370911308599668585328257092986953796609044818988266869551869553520928285389324428366734523297454463114455346129046301170736487969526414830138760765904055448251853465283067813860849280969369465225491438337597323619869903442157078900161223963833736311339226486370176276255093332091941202369876993311374977702174557620684196591151969184794966095139426505808134412359055635166639809932638915665518051510109437629821472207020638918367415061378628585913462151695894368867725120806032650005284353570352649190282444891703439423976350674436143756391115727833084485195267806333727245243091030592533445249643267209419609134669734920896676089978870607271562909167154975517521357362208716779545712585453462063261713070486835281680992939948756783197414083229858522507514419882299041713592723837161029323975818440052084452497247297020261692098509318598633257698403732338277402371546423387189292305177231754352811847636418595584730537063433350210189231426611148291583468953070701357289773235208594383790334932912945378114284080112612491783786874758982918489202648372417470898567613085223713626727745455490828721800714637884697848427302090385743688251219103353110810142327217271374524112784444631760965146127739211682043514054562512804879310870554004423405299546351708218400873857117830891927209885403000802877417728379496278296638537996084893692525308637932182748675799554611874588710116782640011605461739299932940122114216411536404702296327003825125653023738474816017893947583157994187989302324824776565833115389802977248477364658698140707052525404147976160568621247687997780125615637795626477847946618082611479716691815029901221261750103134380851650542024046417211259483114955173171219119070198308670407493881598694231789372762758361003540401582866785142081303193290648484876193071752633485582411420456975304889781790699805547643061156687244727590051285112792758311143463033401488446201201497128695622967950040137141465683072588817112455479664696132310467306297951533785515131384944732470431087762642876743096416830867190491878910422642420960996692563259501736537846887826080684696611210627474762321130374480768799756249647842619574969667672468255262675038453416137488538524129721297734543132426821430320206775612957883973725058192937411016504487140671185914370501822063209845870231581382438377277199542576701563671247939566993558290101209548681361237940408936036881147709646155957765855680296120160104707828540502682113145975270815944030857358094508280330532552911689140580941263850957347111970073983612560371235193574941055441433806215637484714459085741514905846203832381906691830339674326918852290174276537514584938537535115749624330651530647976294426946600492772887156151751000513667351230260108485612226950377497350720555044095537668927415291640936440488184714473805854453801896726406305090302207745662299909745730934982753338935154785293399242810418091745663317242156719529017744572280726271802930141267607805707240393094850704809244458255327435619854463494571901936800421330549539159196252892288809349639651990449022245830153777099628093884488269342558615031644891138154033650231505527597272991521826145681286426283329496140962851649819739577275278832329762829242522869263080977800174496980119580505186956082557840922801189191006312446964470152693938160521558153091088698932144192426843182276722051450731366944383717105355614812764618386960999186386847162096373337225380192420357477395799636346839689742577578586783880549472225129130064680896482789191844887113035317792427448532861128719695887897766778263223574210764551446559952031425584913977273596883878882937959271968665770072571871178930280611188783274213204978026073012857694060985740151368993960990246854452908988291625029271750699386849805397396945367321447139102923526574919024417335128104937486724459269632868038109493785213526925028683420367179064719924694466148311497667113520673802709883171121761336448528138385005840394935374879644463095258229908986620518822452336867890275131708123385623503527383917601111649445211473158424075355669677654425931547438348166970510827192859164991781103679009864037572754556969393285809031638183929077355965970449499337529727798067328293866338531487017724404386252328256165588316980610369621229914124161050248148036722039580231190260439741035480721325952092653785235142397256442329944374863900645781645470605264384496468271942537324264580896406569569993189173423827630485694462864983600441494122184144366306805577700792241114786658099869795464897071752942519141514155870342827394168674076140867650723714806736617677271056893729923910478906689317186767202877664395956078538098140812636394396480897609438556849056507160054168698476596096617879179693811030957117175509924152326469407603997532110276488034513214202389519281570522624742201151548401065529046480519152575522909074819640582522589544929485702824901400536449647552321894277615786367908368726445100919223282695542774778576469398801864852228212054937437283863795922609131168601677042204096156659199724795970343066257530524519458531792832582363416557737713051911756172580772279190434436170674971911100057909178769333425789047794053324548522126232821448021219350685595475266910051732206654592434215511790876552111575512803319940950637398742375091313066100833512637803860618820288010518436776708305156393842603048442432967654655059151514866446025724167644354506511099972822534022494701052072181575849288357854630112974628033015003283515715267752959070740374062683424234168347452504843093664354608462628619260438681930639415975786669010968764912869925085760381272826401324075423564239375255356957731271521936104827141417791844867933624057224041500355152371870876127044379955962594039574886295261640508849260300034862188802166422884014561093667285453342502079726430155357617966847877297345860688995348578191960621545845717540992256225821242594240787078525380132226592172154026804078401915298083397504504754786827786127633622877978561402583168980361866732986393689087564670775946362893388071259627944352585933151419292998086855029472225924189338460863047497490433348374537064621737922501289332944740274613649900905402393626953353766600456858875304657743162067060997011161949942240623878625882610600963222161758530718601092145742695951224623377663330035937469140556196004267026734634152957553043707405495007059797712719116875907255645007517538102153099410365505966744303764580565305407863059818609700652608942002739327082898478652727052215639316099391279506735044390557986713332483963361879782607441814194420827948928653094124894038139073667083228333993187030642522619170911076762518363292123966114310033686875514978487684667162852892943696916612869399592795924350506137674933937966482519952450522145652869416579373281600233103999356533772915911015679067451345521858389701971198269612355592017385278548505699823301249339587254693266290400462354948710966447401685094915103140477377017052900418518935074015395984129654919290085201981398693546257079067770369281557514756340239894772953338541332617077011134148822700098258097227123081316095360082391372571117942891211577924771015225388691765936371377930134481612762967697574259630042742925690139854631512228159578907600615154248032355098534741492408204010078312159299402445447792587636027788692052130308853546011579681746003644167408167936776758371427206382762774925378133226842705706630721916753067851681382583591220356140676272052188536908960418648438029077918435006733120286495513094369873338334628292389014351756914729945476091582735190617067921552498051087261469022967729648912409459898306206787918082556387413069123134496843781388186785795232856032903382190492455312678803292420389438083207360581037110408735662098135647508547368003765424252353795625896572035218414523339946083686513285856047085086719829256781437715484565255619487491782792635923602348759882867311005406741852143413422286845587196246975612942698543249967877792920776600991471756167161036566359215079451191350449730739710098059623683836793342959749650345342483166846122125053078439158209631766706842212477565810727893406696075025778230077038117554117563384844797777481221310445362472885216548706155719458657942323219625546851373591587918504786381978197769990449818725918221056368821613804563096485238637006870474654074788329237737752129589558241324696827092307690419003787166146300806262205875253177344944597685900692583275826863249262777499983457444485155478887565476803881096060195380462998241173747535490751015563689710497710339936484937370204782355984411212222345676104152858588354905499981865761977058294810823142331621748947730660739198216396798389324413344383912094759963859037365663117162529999229669197714264535016471857570001180073495434788929245194207901129170700747309547161776150629982693171310747442072520198476985817602334487246586268925220874895089854182267083130897313779911165299440341959133878729824678777362987649175667365211243318345534084796208569843950107171794845030798730826800690139062510251726452508604348737763699638241316683435534176362442065273840296946232865753675015976090643899140456148971860810061801816128688468876610983617584437712564229485526265969859267415930303704097315140920141432671170124898175805689588980965589604694406632854861864127095482889514855647325113599829796168940492168167423644506127686606088764898248900741333113960043175959149494054373588413634657552098275617854022940268990838043103575662983584082064873772811053887227367701268901674557601126967638606473286823166175667378904401318004001585412665150898008177148419625372540596936141527907208343826541631636525481543689984409456790935623103705568893904532854412281392481227149249767300108444005479634919529847759663498324002742386694979701703016539630278039732177610818485167297918572625107745922006914654200893072937679069424709079194476523556805622023802809395224517336413314820725222495099206249458867185535761026147143757143153591747570929385980432874902204683299997326797246508569296350188984775380469495896888189984554836589208555417818111809628059190322370631536505489950965773741217025325060285295308201213678273346784910313690965181818858338157022628302978859730502859095988448423323300606693154641445182334162602188030252280321213649810790659801171321672542005730994106409467080071348628224796674386602341130217524864528354068494607459389962796776940442165701425055976670937490593371543336044624998577078344226490538932038277218630526989391470908119245705676739358431473169778133451704054157464643989000267970869777784619826482184004697962400585895110955352354271929342315903551710690221842537286492549191697184567593578056141716901589934447064884444196458038368147454985049923067601317878204999817322033753370089527506593847479773245092917394170094182942335715761097233039453237915314856263499393607028657992921213191031237962171780191481622311014873845511500438570608356647412487150316296538427705905042062686907256366308438362813658949832227997713189806569896165946086169592610944870979927846121501716412182779727382274295689369124294470459458198142401894037524114166034127185870446191495015684591027890831944221628950052074942298249207585080478753281274496542228122800090165056770466363717328021432865818719488648415441038687828592072815467846414822675438706482162065555978030006998771259801376014923016524232838429638207439151481131868983969185636422189390200975002351711755932115171726291849512103000939362620926659820743244582397444323787883746260992678836726863770390664382881842685915919229184718522585854024993064995530185674949741782266409799151237262364491932061698563225337945307096681983970297606170361285742080809967256511797812915118687128994173736904085678762002673514665288951468622399300327545949536158079394997296652640928383688027649325159020092814362624045358330506892877735272852989575615918187212777968793839891902365283308513015065508588047541507178156419268642231236391786094385013860089065134132360861012941210844283603003812009586807942709610719417724225840121428046736265895966680719234317703571358319514312772557509137019627260076806290927822952578280576718421307461399417389191689806041752444545942882196039301799133911016191693327833284107207713899791245794342744861270916036853059208659002738994705167066309650275169075903146307933008540287068102900008661396093278012640478008770272832091415088435245809323308463258752318240634111380021720835511253599929767316442739253209028656154726418622261213364960548619611616611160826953425663068506033323568035526582823266506030164153707178655559193379776896955724857274002644315338446506694046481170294214239768506419229968521456847556550200113257741491126462660146007283326229333834526898329898709907364672284794350309862256600229565411578621357825457662928545510239382138448650314573592513707347869404973563816675187167020058815225678434890581745435922470610319282952409133733643996790073286052501285469715369908499322447082053000244677784108476804663166107359916045674990565432574059871766852185446684258238856963462287945902988358289822166107880342069631365134015419682333408853596718115967263071988547053740661541519559607630914341795255449817477897901674115754991768488437265272081364694068645744057394399104531432881460681166809204843914220482722479937332152685974509862131821555020668135545819290106355580915952612307078943128437146194173383147462662465494482055049450068440155375162530171084255819096726419534232925000660272320742035438393515960700661596126802978378856544720802532325731779983978730197573834834899811564004284973640444774300605906594672176213100221727354074675016162658178488554375570276469172581227391466289373296078502310735039609627571361619373727654044795042471632111040934193137245226514400127689149841188341155193770264031906058904264020450076185577062817899641302756113006976534076231144328304210246157592988067099910717792671001195768571429111213133825507942791001461807486791253006710588606141378579832993901537024112494539116236050739670677351032877593022899540659365257030390872444165246936284204270836258586755193116591589548930395783899203523471674270780664758283514956665919528010015338674798489250851790498103202650367297429486733675494552252203863675755340884713822312826709290361839795321912884775872530951437011825870666906007883152952529326926457658321874613031501598015924313595202917954973346320213055164854412561839873979210915920921996823659677825061874913008225155756542852382541260796587286281712786406572929846034913143613704759007950933137304168256921310787342197930076852404150428455403140303634903108104072724925942568935553570289125517671296209276371635671007619946701109332086890370025493681097996182472247080784957922721532550030747668284843916375059621950373505274985793941525448918261083679114242499778990328722827136866007808691772960893175809225114768332489066710124204673487516821586589504217845397637182741651707388989846701431103812795506894126536193398652054696217196799826868386680644139842742994345908637951472260770620925350005304359379123150626454668893738868473577321328240031584317773317657934469685220007407812175421832379007148447449942202576502056969547288543701305302835297041227833857610472748596387689078553944739944904613620011295351339670705298271107144658806081807484239366001303985686173450314849647125836877606312733717708419037261893641666476239572266424845907303520212238979513873623653291062380916953264407299267562235854278025843440411640100015613706755128423548517666273625269843667802152879827065270535274357229853577930992039601559259937712639554764352717424967656508956239630440030616225706783769216461289306628804466870170133155457428470132065623762931650240230515895937697933759139660202052866027796241111460452579182639846774733138837155212731267409903500798438841040307579775594084162615233497273550589031934264252274926985762532080245316597523254627573271847297261628927673542697666246239400918415333633844291027799586829305954388535233940528720452165392280961467289178257766748273605859623981486797309571000917101166590247873171762120071836814775612605012255592398831953046564151379991921707163955033608100968407592087953635502193641505589352825585006529498695517669421094187213866264978304518465120933120811406394170540088271490262590546973383487726924308563509419871612586867486209041075462117702346261086911601429176891045092156952853021333503088150139798303220675061495229897185728218206770984330542219298180254817510595075284298549783767493326837841719637021421680181818655663208245615437002202857739979787765121680623905234171501681477554270207887491780953672900309341707096855473796661350106076002388801057441369502534580880472103390567256421254323935382165570013139978433589587314587713425284181234676122843175000484150512188884832335763824554473649958323119393592630696192480753303750485055136183807125646555386885440115172858925337004432565214172294400863342553187027921475247023292901437716341715231714683830286269428913287239782424571938670067723060151104801674644215006388336232011897927591554760812559879738305862577699865718876981228250072191692703701147959502086036186952112132857801206648501553752021268526910038896611651421337274893838958366438020152852900389536908856148864497410578544379069875656859154512743534600172271658974416710798368136463159623883360317433631857575146469040774705717104456751131309676062893053020083085264866496136365280307754448097305845199225355486268401090663410725999868079407754105576497938650839937327899361697973090270275118728740396168918105841975318529578482558677604024525412050537709207465646126356994503418081731458496466322710679392979750232604584367759518279516000423374935577822610495102182930087302090025181346666176468996905400582334042533880241931767058659459773609379121979611406301188671057874287742211238671662506312282367823163976550700986516217585776742358848631683431884901909469791456436176203007692788482240833462689166540760666783126195308854167446072214746560655568257191434216054782347843574191764481821308095921925586738343185665452099676734335566518172751862592469446292055345264940101144336813251012948867906360292209862395862542914683249211968451209496597609057256762117858611050305095084143507793609537487050855898644817443497699557004604645610493372148722158088434634330776111683597017116236246453143404071817287389189353153243178005538817076895905651838854569294730598490107313981377283004737536375658812734280179450916391663344739050522823552523964146679342534037663549188706918672129537458629532231461290755992744526681475877627071332218091133153805481189622388205201587057263677436358698348397422360596469221478659541178340504612201037205843498658515976549808679817496769829414442482492829908826345662415265786289344357847185788939739197853049962762714330559607826127564283031141780258068051798658403376303217098779957930684356279245349517266523472226586495795645590111261883690391202484126791071691397110871467849706095305739579814727010170027554580614210379161596596655312247212974513447534590297687241908912854286879082713392138150000148360583131819409479667389166690918490952668172623910570276258550783582215673458750291422471899070511322397369792200634818558219769590956759169811432990236435103148894116301265927492467995571015715706556383034432220676353549360184634703552493793539209089671407068497206241473905700604824931191440755004855384644638865851452369256339734804338760998379009986650633378270474128952942531977168398542690027253608755928803035915654445893478378160909249524994160690855453075935429953106586669295729210981998333310917448290153111739076133034165865997284084801140395341515444669956756126013368807751644426808373542112809129364143817570928348658187079441473601214551768180761211572094072090631471283672132888018570929367778753749010921864279927795344842076444985354471960639143229811945245132494276852704225844699879556463867693797236210417051484222188148000809341427172860024839628936742682429757376017821003088498903387228208391982838496162497658023781962001202294270177609135223202126006935583547865894153762235737135500493444913794626905862218090535232298734142994274976328440969105953633870544754566228530063741768771346755790646398919689456116670828374429391984785244299885407145317907056800102761583019094983752041044405650828758425771162492242650154449913254172542035146869464458748740155774674457329827504721133793869159581714225822143388512111074176352118433885921985403534697039263489936549876606566372646021096435288891573322787079298825054830761563228373754909269981382784766543702206553366063891301458514029725779128859979087150617678946557732641229593579725137344817245113766106167127368428593955940966854859750463925698554513634944291123898659179802715233540840345984597841538199202751133236260522292043484166820273336418091098155686430294398621356965889744707121050977877702157110745000116872013319550127798421155668917152888262765785813955033655554663372563036589737984779157746413429173142117689240869849821031281104053973769896271130948261514089514497531610627863232461625062945056327010879075088357941113571475714234081172609167816699520290897511506146685875492079509160028289260385700605325681109440916189121965436778909274069778595018966923782617560278795854523488704462053970092234277829010698602128414746548157565800403199312772575172845545151283004068224473271616953287084039108398564587974644694942139023730360643346611075696272511193012451382136237390963252842760904372534112567093433591785989415877933334844628646115955624573332677292913567056655824690318027970003852524868507906783302330548091282648186140660945085844216083246993005142150288337705632288839936984846490417036801283254257895139686534941845139761989471219050349259514939252278347377583331743075832661696521512824829021616253869154351610296534785656920852462933281981677822043786000529527275878831346656288453607513129281159318050956926163661099060021881486424087008243333106054374935030697319065481794052913389625027247129097732426474831490821299317041327183675195501303503911125998961289689474992970898281299690535955678759256899316797899895905438186710845377674939159916911441923202756916919557768041444351682128887389326410626110632083402192158547005412526422794040525362517691297506603540586374877220645202266469402585408654734633347908696169756265396066563901943258842649441938080464092848095936210323500435289401996216033125109800744701728307739197470672494042979867995185742673488822740370042678937434373827676252674700957805686798055420449400382267162518866451364190919939706413940335066466906567340005504250708083474843428821340651822827150434262047797796574515300630522996191929453794255060561012493349910445391640270750445675313974437342138905818380330470900764068159941202452084127059895653723401030877245882165683013485303136667151950768193456795706377212116074637174614887996545340048176144450802810119481218797604203594401109887713833684524824862967440558299595621352259385886135806843517409619663635757657599194024404418062499273871372459471941573603169147455874293566238169228890416580608595345325747827996993431716852505241344417594588529530619788425556883638612008033794311234109351611091629947839114271771406647228436564889854671297760797134828181810567142091186795133363725140452080365773047485379847921246719936372784188640196964932356194449792320574585826835856813912647273949662341316511759595085537088517001370718392281720171358506480790914272307651808175792003139004734725821225452615180205548545618960123256491233418303294938786146557068343833917473608598589269044646475291689283851315741326115224691602043285171345793947559414134311812936333299763929554243325667809217466703459365265821941936539475082166708448905712540183232299560576444098601034545295324873878465497025148237709852904377454175599014785373520925005360332943781726245510559689505927929124618063336264760019557775208068385871259298289510815013101111996986975964019279866545355457513069213622234950256589055357978524587936394875134877186292012275612337550663249455895828698581722794391672931407358328524571562481280539080263172271898789284168929701623944392415549845399565909486874572390942453327078577799425290629005760483615768234516159555237777481065159266501297132927753022387931457532274456968768601821550571730224949376799165528094680392208598531673775614210518053796893294612324866316995905657469979921476834080245416523293862872976542917863860572660038562499308317790229650566932182389357347287981315744788113087612584738505963844794147096609539168650506398657695434971719028447657474654879857418145966015098992036787702840472956924993610008810206634521041201534137230888660525702859876459144381622697329719591101883867702144471739050114624924698351037768743018126223272745728704890055006754469013336890857362704226656724231987296487344583480107009690199975918053545373145044421419666563408441856029361164474498701701972923602089530639667158722406746459384153338623608945429684369563689395728865969589777628119003795294745263637219882161976488201883104601990203155146976820186691997984364453277675085913045832462366638362057346282641710561974179826671701873151094097385753787215733557980482272350988777128104096453128256101998924980630166763051864702279272690658855008434095901564763362250820597403518850047419361456430371090582667790869205438023604620735793395442781613954937163562818899962833948855772238774727193731844490395598303381655565835197712014906388319939485711091337207132425375770541208788431287719670172736896449660911064562084925607410059420478031022123726581588016045582753764948334538810544258288140189872077436176956104533376543760569407435984201274258637606757416275334254887496176019734874905294475555326542869607622780085087967945332863581846472558424602642457848319977491418570532153132324006457158258136390986278664039271678502015481633682188305853079368346833729316983548272227626263032012405640400850712094005552705622580726480604034428411179645617633124185423818797528269671905255351630828320275841154137735166235888399082068759301113909999976112708098003026707291588961193100100829368211749822881527893962853439281368427303831797667582079148056198897572815147059734105424730605153981596072364606523076204849360210384403891905069682139115461044629315545337950041962772014709413285777020825693710863932337562778244707946416900231515456530404457887523512177674094310717707051910820357724466363094819320515019283339734298552042106349920018491377029274854179431872214761804646529573975308058125509121125060898559060016545593403346994102647420504255889862585606191559038895918038246394274081810419607720616381323952715196633897070145413703571693146161155439567817310012028501262791767942685167219991979020196681842750775221314618745251847516638400755770414136597091154449246064990696292702213056553885109229345153501683553431622412861746831380977738520137942613160701298983131464115454215673104791143989203396229840972032841217353674212239760406484239174073871129818949498827938447876708156124184378974639163497452589355678469118592831537140643440756388505193502238139094948590595714559787238052281612292434349176469836221683791074062848386291718563008700528732029784528727482860777023545777556086470953345204729585323270366367517924477677844402624934894133038027348588232933447122193085153741686268872855906649263195529861689117553407648590389063033314210850067084684672659827437483454734935207623071513421637535608076138149472076979112366056265869770694263862396606329839247046243840908806571605830905898379238939145791932534858809179573170425499197043958111181261426124795247593916595111779187330153830296138893476615420757894080957645652006198139167301514155198870367718587832078370766975215261859111777760011918849427104732139390373704108759561666940198011804356164700474694484513066281533441233202823790583750983384386230924630317412131285528903418850813683646821512627543288587253769470191908781706146396702906188952974352506815583494535087963333690543150267721900835630473540866574325877219878242130271558787013738852722423500028950020890769861435185761192490568037510333050234520999053820340362475079783336206721196781038036992313317251501948759267570338708526996852601350552690893995320769617516990199761013164501244407191768248881104332644574478926945796762070053471402209448491773803397157402583445564056878610745874371112431872877629823233188406889317429778773068896364196712613686730651552325363561267346721525851786907430558321176050363586817032830773916021346222815724117372408137179904985086755723534261188646426716070218423783411714477627781865536567309434921828739158177859234632931695515644224358278695280249083215743093422918372714214524476743608354445092765287569465969646103334307550306593155877556914290183747277756793105756355198628880209817144030017834313850410514063253991874728460368013628261455640123413531137540813537467350256722788614316499450803906682777782037358388062790665500602035069477286618669021110667537274174796580684596566492129052520978240317475948043607929426265569029468263681367370658975258618535372090040463013140577582718329662666427947216456450409426241214435726421842461303036888739282629210337267411591957246801370821977496019774418508582590458207221490034983354437685176400184921636486820914504165859635779024209167574372981547122060141585855444166978039211853905636293137551821411798765378841847250412322601116236271512979654217869934588320867447563967023767221360101546202748742170993136292566386123532020738342237817601117687803191564534393656986690210150244767080575392431241056763466684962036990488636172948143737328822443959619662293915853663872343177068605214403520256741313442441336222806770142175699518817747880343776882781491686727226868781473323030602950244767722347858851797971406161788370834616034155346394323306202374784484658073960689393222541835694670528529469210660566374291592840486505302991716167880283124204865090509813874477744756812086437353065696981865762272020265397273840072018368666031575989204806788537056973444200460142311129041688321689445034486222726691138115019301126614171077813597897841191196791104790948614586189374022098933814050060060562531061842031006213374511870459782364076767221553783188413096976786220365160925346459443314686771084835493071440592755041057935537108076607543544180213879824877788938087803058509090216165985879484086213777715486828322566698305445947682806032755254069320237969345363873862238927362377445719635552156315948159954135054193686117942404542337122433643967834704189829473533295564208602197138047916425540771874053236576883044542700167579648130036119027078739084959914838709567553069369497761867916885356154991709026204311740571739870991250239806614626384752174663463250075748616297459387936778807147287519350381211260858738341311915765895710887121211417526711359438167334704408830578235873066883823996225932874310531623585227656511455541724532146178497439000147527781895614562816041437987960096911618435415308922923639753748352565789012918048578889285370856404268845027429936296620780182102015139116343649995884294643052602647473391676216902271752568437876279206295138871490097649701115815845476122513937923345909786786572116698535443453413941258455555629961304689647137913820376903948192228887867989435598638622223209089413289257790194993472314849889016515805579795634911039151493897282667376040865690375830028461125985051200268912570311299558610244528536056506657427866099066785014570191010600872410509313051501156341178826113314474074313991197527359944687035483181269022270368094186262379154838682756956603378425563132938878272894528853437864620873505918189607250210773344250182651889421547567742216607507583733859454524972621177779820450014043579417336542546444020733598600003058242509029388025395051803293934562589427521978392498837733965780488331599566710121791752453835735406583155886343566637261512630369966394420353358815085164263919396447525184433309782467304122184276350486396891417652590399098041313504131762004196179243371120600308306408781766877297228487691260342839494199782959514162613711908317307398507017290429239979161632464425170645923918929123748350093820725051837962215293396107845421541831856059778871218731012933186350134040719050707551652176257368941326065409011630353482228911475186838835578240798702267041178364217886705621700588806521986416890778037722599164711162713805037419044975496391085746429239397344095866646551731372536889505915715851889746601055332238370464759391025014812184538496700548133082458299768775334625199401376135983327225378169887889928931217476894361249217882170221700761738598421387206312108165637429086877610972660263623111377095647004759877828469805009310399320528794878233224920929861251396156094696923436493675745045007158249757830653877517277175502013305351746695597821519390869682546064376106025049519102535799832634187501828321818309105919752105862737133729983122659760949812003431707115547492649806052135967339495101646164613216623928072924288031116871529577290945090803613635645104117245649396790742505533298846563360939462757192273597137539618866877275137469506070792522885303832664544867807749787058610545059284542808649179824571316207731909594905343787064962701730997337544974045793132715143860059853940699759234555124502513728296292772375400527086049096554031884610188976956411568849509911060576795634969080287797084439436995704128855383160250493321665723799951124213397141667553281423743557224104086035219808321828120370043813291613212743509526358352251225344877856853451911304640886962128809886720102243703485022233904572348615017128839317415037980886235447934269545463841816886242094105134362810962735930635031809343644256698331670051271592343556171317011908454868234106574162322136479271941660391846431808365303017708121640289147568439747543411630819755355471451712685853713011846329849278790791381063361755812720314054381544823952341250776110576997889339594636388226897339261148505634081840253584772287119819716081102597723943801559059600524429558132804203751396825556142351538663147688856676520757343135036987636586041349349138267643822855955765584380369444436669757202347414427827934947488369552159466352502491364883948082246733690843579529861549041989532236975189072790082884711028239972828896460045288552045564206764500495119375507463822791704020066051392860873598981983867845772967603001279142572267827974989535227450813506179806901959736752127634520002439322881055743096876937500159986600951437551997303375966127474262391472348626698291220069116657322128433942930685305711343254128916500314920040447763345811493023134478162156040629171348964529058433429285561609433528285485444996880009544382885150162116689969965596212715705765493081326922223422661384153247939239819295197635572800578973145566157458147384617768442400632949748006861445339044813304432243826953947877342730818250037545528553161342637267784834907792696114546024802356801068676245539467892539394476894888630797191539510943520127431256015280032390405176706863418979901740685070020488473161100633095329314006867657441553546017959859511036962676599013088630951808625105758229648181921127994228134629839541140934469371910482098820312997317386218709608600509625983432312033728241667183853558994575052045978593647248418830160243601728058854429154815143328557810840057641674576774314430831874823233326470818392545085690669100366561002785001732805485281536120825893492686940683406696071275220720751516075930258989211723152447114189520083850175635760664962935084893371266161252234436410128022785229274906518355374638717753231067801064512030721925557325985397241296468400854915529077145293429596207441289828702475174897552806581766104654233576046619271084582236658949648649722253873537159702323896603225992664991262104819690212757162037825925741759377161920507428552466462204898443487688517271635934028560016429264955211928538088060736609559305228714478880478274215323450363642691107030320901205843043874673922589996108889588480707165497678815641637803101737132587726355067361219339045829740850489927910440202658406453734294648828890851010281319294601128062615654710121771506918697794474851972025033534174848224939309002980906880868871273258099393998340911760529591355388997002046397603850372302685892963749698482899859370335782107788753437778991657173432722787471955576728457726452097922104055831853729278498362902158014469186131784745338635816479391573538714456656283946073113413129704296076350236942474006463069102161837664909633510215532337936407051375132407228676989416286893310343805359351095122341679722567933687787265191162458710014367765385398573094926951181970731087027147310853281971207345472172286983818904230851054591716105372944443076720724875468481906915676728959313288448454858479652309809695895769469401305872693695768380691472586318658108180679452079652567229388755930494297991893299609580264445924216300035655887735367662013063669114162060862458018919562123432332262313613240270451906764745730840628664900292858356533460819016528374970037631765375214358618483347351481101905435763234823277497108544444936268285814114848013852977370838123899054335094795981220485279345195321409293574021604138370708316174434056333791538959705092907560217003013198969748055735151298606738036278086096440321887958225910549815626951880049310359982062589381773260931913865299914095638779416558361267325201145205247702669563418148405131233926778931779744849278599298818807028363954188483514722588545992181544434629773474458744507675276435338198500786091204028653642028654125309580447948117353406971661145458682561344588181152497541885621396577420694585465785661602009992431049681615225887767289892494325410552205765247018186253450423814840852447851974154220755202484407053642027963960668061302421379821244194926710800682402198696747435181838608463764328935757898249332021353996538393820596331653612168423705895987921742503020164806341506477114836389203631634911730024753336457340615841508950493231303056416127754486588862330172104511666803653104848793509641316490607869363448971356229279267397269637647907960494313580968324267409475845665307631393436646549694508383652350540160410274239647930044039610930556540106288539933830860363409459343543288254177726649430561632650004369911987963520456437054818653871926194271899794266236208445174563975197520025401789887158137273841952359331404997443256816379867723341681918662440931737121894717892384536870640342314942394605448417159803013306292107290246617638397540756225631123148276800524784537016340501442919359736502880633869900412595790971909256336462016226813894170931042914083791765906166950285699617183029892813308185303042351337535923935779921674941873970404510931629893351522383230615990257607252769530140806550601744899349784460423959248987042088591763601172865161229531226719123669784877573659210232816223179713798264489947924429076951830171186464880857881934287156006309204728640330160116608502566899969643828203859310943345052029942368314216170972892472595160287065861472256067864628735222815961277301677018317316745430164215947008412797363558586412470044374737013061134384054593596210271215474519251062925481857847823504329194304217262534101953137069041678091593675673325656918529610836356359327657339734912089132377232408373991574398156719990627523845534337477615944547080639606301380211920408372422608875727358550777545471164642812478253897416703474995664687477868576980427947829338722176961639464380123673542081472472123322975640233467329350464459942314901152602028677751622048303221509164237230798648517791486210222764962704568584251762448916331270998439005731487839429998756565815123874030908753340785263722571941397329728412938853486244561566438316035149900371232925646798667872943176477909474849377780441923844151476110049183866577430212126701277711936214745759648438257893868996085987662140083325429071984902783953941399663624297011140902026443154978472852199520742560482327141483504966600952799348872282518176705273411070468526009686423253665228479023995855871153620424670064402868227532589777133452493168731450954498629514493762114706214917305776217140222575945047145724897943064240061714421172493841947836008531317436805608254644935980144787030014046877484377621318206996405919853184021955404734573370959254182616114508485863397907496766404566304010320965247853416968658320411129131416035355299529300893488904875600594576069012768929776836070973540121166398465636945424990194601508830788608745292880052757591538084163970477284011201656067734655414264776112209414584864062923790809901021055531484954498341260143227032401162575122107863811147910511488260452445221305341062433999512584496764301675801263442706381640209767666070721225590466694170142503713662532135460718587902619919138672183385290719135149372103761737181654262371625750948349202314622568729602288905635638385047257287683681596864275581870518458277378356655496227210763330541340727000660169138780456743859462486372058108507720513954394639183566735950272267146804444151572247729929322355943333314327507330356338438076051169801426919775701828117820660402360718696603983445961146598142386824693489469231264000947129338487669052093471889649191777053427297199361671056736229569958138721194057088472100695602030904053075852026845983010841715003608045478032836285476686670402161378540574078973525233030478028421269483149038601763300988409989911556938575177541545076580130150526158850336081922489991137776629904459222602276857715096378876750077777470767593338402938201861483059559751868788008336222570018780513428057220689782830153648703228243345542854274335922066534478111877689078698267353820722979445328983577697104165747528996709102041379255678692287548269823748810408547225670754141369429645403980941017850960512374324960676808657505391844624003756624660430398371842966242006872367327429603620765013522216098726179903329567743018821141465120551598060906787775895679957216577754917739911614265403362659278546434756321384221517408372322612856781251751203882977654722898305500084477658836719678755198576548610062680592090936012317792884090150011073383760242831744574210882599847773421103554600619864293085554199540824465099577885635512672832201576828279705750216089475742312811844644140072774882898083472006232490011560226838107789236957757604589557920599069108463840685971335518388711490066883485788489644562493595452142158305541929589936339212882934785278645980222080317812314851841238965828476473989034040945303540142053119724705049396337825116500521898270329546404559102858441385940377554444566623849098248045785755091866296228244351140607899995565686116960260166506553716183762137377436919080488201229260789416953041840222761436863337250702082582515182337858756268515424751319650733303803407421007430947998696301832980342107011684082279088024364662236548474491221269419108584965681927308181815210916678563071463432139299955656292350293563556929025223398513622188977235511117150846923821899440299303623212468983536942852266188498604457564340451926811864290494052231058736410699693412836920412504589341342620983315034220202098366476948638307549727636774315867903970621325806838929009058725359936396661295439276916791892989935764481917800487388819628802439854933593777355299733974895171752283584455056911785293304352942637857482209663616857073006543158802125447070486025746946573913610901368935758138295791396270733226279200068245837365624804825694322467891766340103671348466641570976878853472761057354496886156334264430781090944919234007731443486717292561637717451179435344159289240471599550927418713562452034685899631519475849402910333926539684049956399152063560763959591661507117298369311287798553140398729476701181014440978631381745151491522341223325355583242389307888941114922531019724607647130967115598337351225260899559726989572859708790892344196032557430942625249313880248967437501803139919178323548787260134908921093351360503137167192730740153623200646846117083167908528267925464572859820936837832935058268014177672145985326145290407237956743592213317946048398077780056165466055069957617472521450742196950712145589579277328382756820220047173483498714687544337990274117208945594888532374614543618484384098021094145420255273540187595215429480297059175248506625661719304720562791170334987568922637205371920051632844104155562408459667384367021482254197242015163521336145382519244531159043054910864932087445502174768708199089774059406530916954286476272012242962458384956434448969515162362293685067795138855226232618674546739792635831375175070754577875779352780553898063849418952871933188645643509501093702656481976482811988244554690695551734970081674826868372087066949368252865982768083512024147031887178894838157044785706829529995101866847593564101710823924369376302663848456739773816306316653521514836851181856876429157109219659336756636036860728923266545752090662618718638013242041777247938585277929638343747494960959061825020590896525623047569259717164225651606067643779351334931004178006458532260666357120831560949338475365987610978110253185045051554003637445164827188436437410230508158179863476521928826559109145880468357017056608638065042133777952933756313535677091741831558220990877888474520016667771355552434339305580060215589392399660668974253233382805843154662893116119912441993576751321621845105337887985150399697487095008842244989345451003319352490056947419260300069066105936323403503504004655899212622877703691380485025470857340289418205593586244876787963515680156459538624085653671758247858523746722290759209400078528950560929600742421250662536519403316340738155791590686889912707143660327022429504415862184016884195229629608108376054426160273949878040406745301039779372420540960528655171879275128655143728548933514822616709300615389507343177644379286991104112809163988750642238108744052932997135759723391123749176651473957221643492546362012620913781356718309032771321660244364905554805937421170267288263380900658173223409575575132945846693662826473612270230144595535495167212702268897941320837016294118422045606827161219786763098993032336295570412670141082936466214442533913109548205146046858053556979012106099540783989518343864331776307604267411978526723713385089178553483123143244639007676690917864814610920918402242132329182549049250578488842873984148561521273645625824467291536994881313754869097997539559404967463739353306081812692398408526906704763334936101879582709849771559565401156595900368888262637489450025072570938052580152621729516266291171248593864091182720898529676266325101457268083703038943008789405390658853101512231335099422491149917714936058230715737437762227648851757246887743088250829658130751989139992579891673471573542742013808765069878126523623192520924259603522811927743974358537955098288641143079353034620823427903104718763919090204242996817900699261937698207361978886518050481967409048024428129822551547843554479954008305259200112201265085292791844416215388273310460321674460136780236702719767860747726408052710387486789141111424784288420079280779511437345702375409500257966645708586525316149928898166497921161323840417534487983532389025494119871377777771745885837695154643377733758069116377813394113512800122382318917096715860543669846546515090226864274527842619571448748838149492112558294297084323302509235092415916276018120932277574536132039264177206748010641450123780208730495658343053917004623647551087167813734177427090321586511499589831023058296751650458310169498169848051561525967844563312506842905444035170395724019544708844470715788320402536210711872696159168081747843708210657274865841261653905961223042519817455887825732175477231530341287952709323566192307781612510405649045110134897175312102471172589533638188509619349055968364846234520663865972173315306548939251976735489427698216859449351025587234552588280852297111660988312692565492056739599596458858254310347024126124171895925768860165898428238283215735037118186332483093323775315498087278394765013438396626418694821858612259749371817766429319671529484884055568479500004429097690386151226647671247055561604900612919611905132993384256220671110064178544897098489456923422251598570921584896001655218776486663039173342788524287252393142340256222411944793451269677659786762017039373086230043886129994522082106767356034033058506882737433391127206567462107197547777208967652912578116392503946651110831527994813041737890685855647404516366839531016605651021315078801557365646738835108791074975039119546256231333177769317429523722160319802822839198641541201138450192899738313562490604330207056861090429352573974696793381492171340767139340023942009571724665727906557564646480216598291293085647657558756894250349106341389610817375149887579784953893528235710197712059704436533425697745291560234552006425490765060629449165323649148736148020335820679597319303572547199329536463304689946621424340296528780261898412025128363512288348141941844030455794882285312497567420609424387979478787174939243191253881094186364146078774738679144295100918085284437048786108232827733933047512922629872860019042934396358156476239658238910014116179621180575316344208412059341826222222653601409550716393640562852335774194973961159128249639978667688356152728117471541306462758794128714775596797775732946047669005862822385057185924676289493733902571734105962069898658429982082731252908012835122996387780193200132728985203870853111526618357307199663364312829587777463078958404920410181415341457759345714409587933255866049250273390912812096784790496009960712526266625811672952591948594732444411069724008105660136768186330090794615935014743939625439958621161203725583403736424286860602132118813405755268817722238856195511073460762484795278986139147079461623687268222388424481821906045477107470373479716599125409767376804695741017067565969703490878751456744663437488575600979884160545157874589471264538929117966096866305979356878691151034453492329821600660739016540084021906064111025336217890745802697016899273410063911005529350463768023923401745507487022496302630912249803482906828540362373636602208284378921543148633755914972239335385812257383276199888276497278508198854801937700931673950753346456904744297182397786611671742107590071779302995200706181382836117682119563802169519372184632493539752444656254924204432515602392683728507003923826208638208809260254777764196244740158789606818305010667305227086353773113669529560242645502236890940511650306154796622955078074458704948860715975855893266253499421361859643901254940108524669768591108026638181316105232840972663148018610100750884557535491633081286694054367008119901549626183267782439902991970713720513616986464113293959036115948734314740079921943210634403920580773527545526063421041392941224760058363686178025494183508276074245492465754527869903100869744515025673441697648458431003445550150589846080881445462999332224896817240365859613515169246074470855595823711942364604849082544161841981825606238413019815673021661599477186105802492055789999613815791048329070317185720626787975168904621328011508074064462060812661734091965074269091045765833959378020889400637371804159181673509452072404687110483712890812124431407349084079972139596890715233072559697250892860526614179304706551443501406952060402666108089652105680609784313976339146491980036088445918049905394569294570974110523916838325934621556881757730748089035595635983516427445254291462287771356335957052116354497952207903836195950580740510820075628385065140741239185768848182493811388387972779472153392182075231800102017901871222973416140406232116624650634976184832755740359898423204959424227035106652281844837733866853701781592627270871873557269880652406545406563479757733794679150119419532360335486079894476378260061921966105542293769149253177029207225847826067117107530662982576705316542374486669366506232664272826243922954740287473657865685421362786943552990762324025911228169293838867489172525779810320805420499143559407732907245336923254295813965358763315277591693412050381921117510286605755962133045298256055300786512713463677510926043445761201679263786776144321091344237604845188754500292051592517899040770204098805248952844914317611099915895987331886056831683099513039154148782229208458892422936997224556288378336278069689736189616460142121526346550280443142981609047081011010524739463348859087818930318876706720692179771056370468516133753066309093802327428079805109531420993565822306282179334498794288933257976258062281969057704598454647257467623116317477263773035001868060159578570020997002849594303849400871821985518064291404267437656750678902686256160328776673958384573524241829408211243877766352647633496625079621826693997910302526833318995250472565870185429969135473559186402122463146007364695117571512934114754645516173976328337370474865077312808852905592168415827730773697903802778382286142092752188085304235314311859684675964684809723196993373013642688540290409300804320024325256103582309949826681314429538941272596806515914882001450326342101553462446391654441557976508197708606892009038881585060718734512108540751074180269548606327192390011846508278599017683939320180599952200036337920129820100296707295341947401410087417684475239934172049791491246911173135448334883003178541423987176353339748535537717484772981245090646225492386048767118855921172753189895453874924480984066279933767002893403720828272347555141841229122699137143658070596478093624113197895438552574807099695989917332982851176968640556205044364922313951456992314280546131134337137430918851702130187440329311198935341532115010401932195539110442781340990691817717170041023644538960680332215827361467170195934477545085427882760956923291780777697147733695525442661963114888303167991525896495669600399371684556703381438023370520649741510249775268603855726784764118956765478062686955709777449927206055851384640117727062367505592220079955649437444778481591538571443589322837191575478045355355781848088420725657316710830756083044090621474629016840731939502876857994636391937962528567298469117690678741117125031852801726474864050823744690730721159421148841410098384077880240705103326301592061307694965653274121899469712586124538942848945977203460245858161149442954504047056454362259204128824326591836983590826263150843226097481709116585902582228383833211528304593476150243027846758536408981416875107520827884529989627407469695480663780951558052058780415679743719823670382777044197682836911739623924675040263467507023837732604440413563225602949509614295230692643110444257753075785091022295706493214100577860279274617259377797231040981113688036911457719043618684169360690312851094809406706402283634583765775725885253226445059506143315855781806952954004379750550954065060520075853346153845951347720835711731802479042516333477621962677792133203832140318439165847006085727561224714386366537911565098374583205793878154254441986818479795263743355474880485345949739347974372693874960225523148341818393419997173549603761672981500284673101155421379364690185305357912796564607045389996801966613517470922503887597421376815140513761198515138547411104665592231179891943948394733744175683946853301270844300013193353656926498849204186438935659936975361541536369801758937110584650718945179774793232139709021452022855792492738390304779053246846611687989041804540045843231517662184243395264603658166527539536958281373662014541247176206901275303458535007146351470272942862846018100922643820826177298212762840252956895593115000615746338745361916439243296663746392542120629453846278849119366763615705561345364369831229406239157250903461887547228840952227893860409844889163223025508536248069166275279572113808397060031305474314064267352836005471842904327727855209358264305250838116762100822056328983333628061589225811975641668220627063484086712563663956464726223943641103630931731443969109391901437092693550475997773745753836346867541582101928896315253502739787031613699061320413345457512161231915695888253116596898844481339099784857109465008075837711581364157725042664892462802597054386028238822993825642638718944136683958409965759809177501849106319810437000221222816118007385122465216288713713841160336011147014171232918483739416419014341611228124649967488154021916103894196279806172543692566133917102464443087406972779931967419132129784934047388608573334192217007746997163340999814456757380124193107668224706052564854832243625090976957895588360522914724827319203726883836815493477138408701945854700607997657909870417257363823977913049123200929794792490543137235168564970329553531069102296021691648099742230050192885031308062217123562648943656216725279550981516321050328875627878162665771566932765633645864604191841930599438343952655733595988097077109104572645048735499641132167550257227542628311892595439583985559987578452420816196792989533934973012921136437786171470636992384271289159893156030157138594670984656211789224140096664133736743954987978652518843465389653677883856303784177361035195026811711036097378220893697764640954084462428192315624310726619550001046498980737303416063517631990538103134841786426047058494963166167641851794852895023241048678357442698866754303346305251938048443770968033675779191242837916437889570087688806962616373145955407058613361397329384080987426648129332036366656773639415328739373668286953151593667661519878012558991857036442227745851655040821873226391471982944909091326473851642204270614788243302849321293951770303886828971010016606709747097948786670572284448172270545049176198957676946567042616885605992916109870447658683318748224888153874254971276641385887070044255536189203922007827794459868550023436316957335973557433832375325040037442309772706282052707655879726332836900299226226210152017936946257296838459924015369679186958312360400047851840572195519290476704320447849291691770066337804724255950859717101898255268543447182277532794914037182760517149078736100028536604310379106273750180477662472662943152423320711559872589187748233865386840935720650602548589897128797083333265388233901536375856332494534426516566478139501741245833435572800835561245493329562448712401868432399148085318191708587124836758232952371697928978256741592083926587454165269181890364774140940423819775236252178388582230135407998774580005074974973917938833969942812091997393327861753815598167654644982400199414157466839829372581398085350481890564699653206505815413842572831001373471881948905344039588216539939230564495301140064163453830043707540326382098665276061447714738484909360788905547467780847756582901315227003802401915156531058771865765641379681571924997208455234106429524517428217098046527767900215378205512681097956293025381579373867359894886501115874821292180170558492799488004403548761886291819481145262230751043233453195196786428049463374698191710097729744779829866276299965220587495809053145480315483005708233583363767442190200469725524489898908468624219648288879618874981815826981761919466303701230430584571524226142196976331477118877886240977739871129910449062002010586949024330921480385493515857616070856260653222504982160073866187512480078463291553030258057465024966210208112405837182935174271513520732151041515948570450034784629555624366335362704167232552685637829948608516964844798604691572334269351923325022286492619871491411383857027367573694686336441839785632923011275329279650559118679756030833731967855980455391718770681892232264645563760164793696561132838176652561158746438212886922335992339386393214147586871747001108633524716830841981171905473863044180267712756116871652607223365810017270284526575537787047265925743015591358525442312285490853699006184185430448651294379870831072444756266399476994928022202837630676918185749372799877987504224613628995524642544765414184250218516693796955123922566702499617991033048257942410062441221223276324584781017329906974314063468298190834336256429859768038452007497489999703401430560849949933243859634612650655521339471639811103518687761769344259602187578955358904201639726427362037173779188156136442878025158571821295634911003238582874648074289000420179125525176133858273669488595561080207192285070810972869425970213946138600405908433646884869599650153299785891936888787743586142060709912752146309008795974502956489943511191745161092479324093306775220147640541552663844837720358666183196793805455334928225974255047132614690618670732032440024122031544318918296750735374886406795200379224996589166350482952978314154754178349292048240849739803986939002130954271738574916725011083854407743347616515269636798936806253730115274092733572575950626130276351977593845864687379828586266835785281475711928233600315642875941304438277758360536677122752280822301075893711513995871117926501579323382552458887894000909965983852592671875296321195358395756831264174613173808961348486289289754466848551232770145704662622288758960513431489868141498408137906344281689707151218187952886941531845011629264844678770187771901276307384266198025820390114418261617425085408721331142518573361806599348328245425589721573476169171071043116385485513187520255691827973905741712715098584813281708227224632044957626570891449498009443888651159377808392672756199122005580257844433926808032471043487037521358928209952511433257996869549078812688119099768226816640376013180605849280725498675557428091017157428188904567917644194023631970137863849649618781526570630219822458721161663374633624710555779756017457620799750180798579049715247634095312756425638282236053093750053395269270720784604059921073378938817061226777681259504346709489184115774012732327269282212700995015028226371210958904266846157219274752649691850023286253282439206143743573934628007997375357746805064244779939277932722253385738255051592024086382855046211272443502088155873894074764774649480158880903441084113151877224878213078684882210359329805155004599671886952271090925306293757934255334783952277242998840523378998805055096970156099358401578501415365330004501241209917383411510430896785035913436529260743672867244271037907813503714067309343947204766510244804165450189431284143727529581307643888254016841100170541854091007396726122223040409983459019887976851400385933370127535613638415799026218781316295906252349427452674863776404699682275745295003736656617568192333906341915971175319571148140296187391028218255348113105527209671667248116698762767415355790771730565715877496084573685429383289131721480416869651548464125253828587449975708069506114772846670529520367355247886347104674670465238039555164755454894208792018575418975966540074692619185174890550505720570374520153205403663246386757023537624022778933217860203753224370070932348132737719894104675473680205507163761159085059545446060780322653537889276803835761930581138548351812289738663911515177084333914236160470147872415546456931692333470956106728699527783410212058346863651947380275304229840890202608397598913186052367468386727211214358866220581280482547044914425578730835778962939987073627142184985539843369897299302401091571759935231167797695173951386964084571560684892698725902020160712018779830979109174507291655574153214603195683906406266948790573313680832152942034086700545018607622346056226873299689321762076480719452873222834909283409489510261480100387311641091643507120443405379220815204787646096965982968054909700937074245295766995702472354690515513986399069750453014833572947351553975035196017818949542405688371468112721117059137382361466139111315122077651085695009783748617051673736346420998372488288312366421996810812564437078781559532166462146127310657911828980853134035024858478052869204501460156401053776480340435013777578956347203889243330255534136903986340099115834220863071746119327295351794690221943740818292844348803893635528836565699831555327303313103296056617742641291052610738384442593102620447808747575439113155055901747626084644921238793547842543747653860086872224535690289481324432956889068007601500624042235289366136154938166068940967650673244602454765436112379510754225302115411751892402249809151333777775413374260607484349885943430256888510104336125454282757544653035604509851814892434447730682193478583831697570833867160582647761588485126282281259986110818265570083010908109706081461196179081401476908920953735986933389834310144163532547659645624098871807694937827913479781631405013552899545402691268349011489976095832694283023386742337751911539760807626018765327817925017230788754433966553867159689678344071952125722029960065522738793563071400578862358107724351970121662025868890972622688044126391786260395362030301621455726947085097008686286725798830509700776327703643902183282390761953122348014477966247168979517963213917200964106374086392365197621354351434406624950083971604299290528122724551835379185392200102658425401085541919749709982881156184130943973020732661807453844678291856444456226640242944400057996185697105271946332676348677486587061725454115203109819441514766445567457000819202590294163093571019837125605382306666421634164575136586205242107337590541150653316855279560727191269613132352773327712308249908222330576922715705420576116745757191357988465803083266307168359048976601941770671147814975572082955130365422872155894854307067046254846050882936589824793388920480564666319155425168739935958704583688387686239428081427219314137655366488619259376491067821641313864128091346480746969200733281648353067563500355826764385920495143627008857583464011040554014932458443536529044071896479112516501278313457340914355746741150959541241592571138578421333493275024103277547051894428220212915986652535643094569736632742216815569201772721217341826571232527476226983496606764123101463371001219696070645808572208552201486450449688559745616000712760522084733246434284441693093117205893984180882987691394575169092329704929403233552625785444790825830948078506468863816510603154189039050562844801237250546120390943070634093334235731646713594728089429018134072200727916587242537155462997011171488626733239089457279013989524619442417082086536643946455280338762747333358315586529676821704245204336072047016872429009995104054152587957076407757112881334074853229928935489639475810836134759552948626104556693355601071214835839346453871371948403632647742664142020138338820564024231382909579035978841447122950716945411574370868544049451226208934873262554642916450023287096719035528911217873669172857293803887994223221211236827612078172692260950311707865901736202621415055164737682697802423601976985996902533255101584021155184706757099155512801132825581256666552103953219697181701094902713370536485661191434581209691708745815540756145018253687425964449356052110632712328734856488399483654244801168093525232407910074623846147031354625337030359862711524462849890939397804373606729616827617162997571505641630547738004790371690987982417350366221408730876084026357219510998721321140638638882628724566980357595888970043360190256967824731150979205516231342729491504581363051245045006498353626900514576806823219384947953578827411125420167523672242947237953035153266448368548469998003915478941986395281369963736685134980583770892842324301217728728713706678669780773041624383874347019138819866359288141919375031122197713147332614240328181672024974844133439776984733581299454112891355768609035914112990921388845588689818661226192872007151254548119059788372030154855900183130585930079097870859444175708510515028346123710502255852503788186182548239213562788377606757348477562826390377283256085341946983823723109325936796531242850759077902055237037359879202693410803225921722390689917442521312663339239466541107328874592519892643931948324319382808913316062897158167871723474334562228688105515881929766516432547784973055451068571543730983627468780361699393482056948785890941079475352925104365259315076944663261607909899134872199209376152806669077171349094720597664024442758002676063326705760109085940124154182429618501194541737998158680615046911633806048791375749254781833978818136500867375547185600559727432468827851258550049774728462900781909908033603728718704063851364073244499840529688885233859711875308899300730035690125971481442669469407544496641922804591834302628304735048678348036975553832457067137510675552431432350539101988919377205240512431896551681009390165591878965893401971636807340723946886310925531807747812682744747230339380397377041462192155530939709145824486935997740020723759408096728170737604829790317971673308790638807181369344768588317532238990866695430545978644964309529968851651486344923176629116665788347957934595859015270861611518943683587287087056522332206716301470090209562278633636509186954549416672337100276548911293653486951231057422149447073345890762703281910633005534337795897102038695732231986477642611491793052173163822895525458442532600521516568893902849066744048705840123654720146513567600783694501169274686557567224568126959637068552789659143006320546721087982358929767024082996193393268093374415477396081444304955365516804974764495104018544218303853277578702916003933319399481866288940873546569133622574348523812974991390891958871576440371156272039336801792251455561940656573583140170408317657938464650005079950363054494651209066755539644271536260696864133089567227095133846081447404077728535583952115125686814198408541645595871805017204684120721320202105965194877682527131437310885847155597832639300711407084519022903249032587686046910175949494878164437556577359708485208658443867559465561626552953607801910924723531047622180225177336751890723321644792206421686275490671703954156626696639937483261944773649685094978549868736645494306816311072584903504344425009365687024125408639937167687673826996039605637201707916925700743947370876613977744320500080256646171755693557152795075334480698857774195940729363434592928982015709531119672329805163689116763681939187042801295028978521099733917982046425749728202847146462621075890979751876118373010000454056058414695028180686039425544410291683197952326014476079369388776823888075538005371382525366711968281089221667514658211405237692673427644152012602257395218770805977410929394200352155969502343445455651171479380631920817527999380504340704249474498437561380668171662438903817027378973838935132053733402017282734504521289844326830734150796879161372409272424816990012466973342104621316013670543705066712373657116650106173779130100617712789780318401507037715605290146688674132687634519442734181566020697429525420419725034412776685191049116120692526425152398943417860881111685575554568784809583281466561943121588363284006325766268599764330210901458973411474528779526669832401082869253702041647580280725415912316755558268062616944868392010954591128493936624793432917948560741681970903629591677419804297941503552253766841194209363411140207880872657931889849486813933314785170259246195062228067299627452514248752834632625527189913795373727287440921415239441901408635483958524301435094914506242701113541808070272249662782072083493095253772099189907171143013131185699081658563840262923537127548020190367579331540043037622999293344481061274140851787460146306422584870104671039031456706760322239998523357352070738515071566589468718819631144329604179308115262087056955938095423806116461131652391848592715502771374450628328991107052189006318436106863373898402563319530882138504986293481326151826061656832365896707623613008490775864904077887742023125768947910889371629972664783023478976387830415086171948645779675138062157435547991161750064404708267748307530538335429885955335913313329514341738454161588358919743634199062492712618983516150123598625699562684150754750819925118178390078593381236951765890788478699870450228737415463071091009533779250381471811898147796471342881006271601544341811261912004278872846617747081213631571829269145012218598246266167824539564220493673251431147128572081342713692435632826728469624408149322869255012165099872297738359035366386343240223945949809723020462984259264226342367316694652435639460910804004704181534327973163150025186462744220947362702025425976013158406950462986414452397819690022267876192320381335092769128553996460464503889544811866739121052669257092153960347527619197208743666884282887704123656015840559273457742777902262145881937913591700138884894207737870332751897979713756671805632413682102689183565820692620952268236065647399821257915002528967870755817637843095171715373148152608769737583659129188507888939194033003558879763721938784402677226028841517752650179184082125249171952896672720226795983677600215259731127649568628108197423953338055486610369159240969790994673450239958159750831023205156903150589098428995151148443064661578245645357304400367793879090175324166191906968857815944572799157353793047212557861953880938346248843789531085476569176942157769070885259600222838902757534728777954010789568389453028680555666348433116583564859149821202786705840327650840166951402360360007970236395783101454043845869529633146979090138507474329409246823682129968121254736423647043401914451371991710753393422024974492929580118899011537582088101510665784167265252287594056632778709385788194446399848504072208055955117192380350274647665968237120031310536568210459068374682569963155176938561433086378055190797563107297047100304654555831217676896289880281148553900623160695917901502486574071240033985305571173916475067830266826884500032123112705028368056005264830801453953720595111176409974171067544663703299202145789779775208526634977114143560661536064983146630206519351718985854095818652974062407553389182400392499463781484561386213362946536339882725760651500429168567296912560664736311057274765643839934044484475121872552871084677268261620318173557971133638709236387157479965770715166535329818469359974965553652073786056583867011385731326348030781022341603119248604234690301963033299716508114303351174527800141553400567869487422092457160210609529471132017625195130460698316286010789786044239093481273828410242266595902759514570976873000672803646263431549784537839330357234640941712361265758536475503964588981716859358431628761674499863797084192456110437890755078859290853669264903560504414428599485591442937038705475387123314494868579210725279202303886260770224534152509302854942618226602957221803952429527632420264895314915968668017618128287391939423702342200499514862499593564821068006126567080344759682104253725903722322502693036417876040162852748940736492172473802137011291166965311845837182588233278076302091347903948404818758049299651156889217512246524972457539312553435874058233982815095686967304829754555079707586660893953156009010375873249636439966531526894927003742597989614910724741643308631607235107428755439311120412421199153591859901048899382082844984994978905993547715785605812407312638160583046505460721331941247947512571551640900788810568477438132388254318938911335957997154803538624664260650493424199880488164156454517450166140385423330845601157272008715993028911546108905942175315107090336330763141406303771225028548003204922100256241318854379576848129449565402951596919602629098698286183331654218195290124494825338951151683071661745848502491900302343566831421514814169437158936088828373693214906211680021467960304812314376878599083987430284278872397656186754435944968192191088704331696819306319126411124565734964122603862755746621241771801087136913274569696158792788715291641409049485423775475921972905594268887183358086068693636448505672931354530217286666536800459316568991679936286555516214100558353772039543847099267283560279867377642770784999522960277255268794793148851583384378402823495690122525913957895532816079159731907866403287824017228435421233532594146905257432688967981291267222607775557097233320853810382733912896695026388830135418862420686025726624969498365103910337998730584643931341276414338804205668289343934599350542078161856098609895299091181823107327133126424332130270887830790159957281683270515200857240927886029839651436903982240854177123689333274201567908682303050714044579852465362674103561031882736352706511661810369746457201416789431398840913604949103242845847626386208099389305783806884426812334033235537831131747633739111472789460937443248850046894262792847145153997963481120550666982660379704878892632982756180760590173504375586300214821511702836010467133691823002827391093248252930522895069288379317739687362799765163168827738589894834729214229817809224827289105036260611826206031590944347290104927806330243703996371626092994679368117510969159911445836017025505431019121817725830087946652835528981415459343471570156402305543112243289412355601521102335510965758890573622980558382651989778656152021899069480167405414947225317935604298914869897552537861922771837098525812645540512634928212905655137814134523077670780701077502660700735054864911634118591278244979218379197645888930961991434140054520845770935841876002625191963028034272717637014007597085500686543521433029081243115617731014470206325331804855824257338656137020124339277845804821836031223902085116424809638756834992526124417876880055172834781264256662535700314293538496397771938979082099438888112399242162042534750271098200813604655055366693796380679372788092880620792658977766654054554598676917277785184202976404055276705524307587016657917791935271032304281357849734858107579492469147379307547161883081719815853122175554151093891864593834722330670865082932632576463662778536257216152152369267792996013501715403674640341847881498723328615394209927130679785725064062410493966469911015119751796671141469889829113306809922333205379757429631873002920478087728417352593470925811660193000196741473075312372001264621142379456972870502571520519881391585158265687483446656122422535559434074011150899383521817600351049032527601598328784760453058564739067734437631285312345598432216890282753084031179891059261217455116469589222599394244912277635427616757147837689883457936761520743014352635753937809068302461683972897644410005145862523134490076121885268813178382088554267084472331198936090366333235163032349488764021697484092401996627758116134143855213787462164815495706957711055377210616329869788390528348752797349186881523411328020816937404538111676037201175421816956575405184290023621660969952711466543448447062882564074384996494235715218261125056664265957239922830651684827340328311235774479856635333865076967091056036331115723520892723506932575053636035047323542073865220792950656336415250049339679438098282973945756809064397978354584488563661284904839879295945826783381668886135335086004333049345000772764240023628993182770369514913386215659243002238222150991911648481085158893395439405495710075961915433970536086654990240907388615474398459605804255100253381760807736453869041559212955169327764840508216743630905158801122453987673212740929750992970726825796500595563529585224036343018122829126485550176759872942937610109961979819255579549259557141294326153771028515959977275522447468390151980438542638752900433929038689960869707337801754270278529776092056889992960416027479382337576908783620990369827877781165786500688442964916866598224972810272705747913452692176624267336920248497282551559523134725835894641481366797608613728031679157395256387732567505107690779787994436900477366769642124172015025233643388496606124395182351333352966009227401024413804762155592639571506326180519299951203831245515836831373015195785958824651554660691806028380882163117986044600481667739421542806984922507216614086089781859463551462824062351591037956129921973895606753277939853262478344348783666529348915900476514404326298920743348943612502526150797322504333296770451763482778823814864191152214326669897709537000660934771989568245457453537488422920637402744717189282094679368121618664228795099785330369591806444436467503794468717120628286647047616564384085883228284364748675534558673082313307882056942684377831211706678401162489213998682567996766018765549035970133375358893902285669741127164200717768327571735376646610999873731408714396793947403197057821693114086627864651888992049170547712342140459882868948661938134158341782478856812235628548001800175785217448991489245024217968497083625163604551728773031124099789088237864644590530653984497616107154852142846470289118516791378073033965660704876157639006351386688146137465572704598184443414337465733641092026200038258873731323258412307675696457632272840410756129058916027239051872989028136707407455463629413652577655539453552099339940360008942262707305994578145115821817654925743811074224029601267190090086589238602298567426289503959546599920712581249492704162855144047363717438781499920845345148164537772782869971451214884926685000166566093807780204298620433550572172938195481193157219145578639698574566886598886872930525734862880784845701574081312158498196186876096034613155349159064410093748854009430430763344973732776196153117129975654964420229972001733564840251671652784294881184246860122628292133000043407956889839173660205999662965439303938604219473298690176861997326726571433332080116743345689704451349478673133226801935167227391604957466340910856178754608062576984106136399863841195713620862276002899590840622993911529332684834954798563908988008788535053376879734481708157923590447737875343108179866444371767040822222709270624074339626018589158439847542929884231864401425582373984342477213251197275953549018227751162016657138904381714915343028088499186321149801003547063300658055898596384506566479747482157567016905772724461821774333713039136443495061058290300400853179009230553622116200435743635823908387077662449549483514037016438027722619153165015367181188227961102994447591922633348320983200530743389238660491441152130828250251077263481489455924570425981767876408324425811232534509681360658028262920518513120383888987129785245703431080517964986178742733322562771579733545961580500848862155052630096097672034715456816519813634379709371545068156136547755212186324144036062031923933759332167938264748180964651835495183786919269105986171288974253231686726469273592005935844558980656998745046723273325122196990479917585380445953895881553642160903470086888913621964730586786704974377739233815247954817908906661910197061490293567591317901115313427541065113010235304411955523601566424107609435152374727819390208236297207754528784736391792587748669827623891904763306497782999999475739778507876010718985285488440717997088658877653316052006629157409034811991141855190499776147324260282403459964219132064357265158744052761529109560050292194355462117026061031384728954102482579495722646860484552049865858067086295088904675900103334077570356306027679446977304238253789979827681769699800884544737609377302332674477809864760884004395134130888999607270961752433032537440509725712588841999078126744605750420667225239900566574665575353073898377358785297721242839896189285673887100922385448350489787070447166294106626865103490683539470049488862154259348178889422460983039956771058514386570323422283599481073462097664826872468807593524743533830424680185665443907435021501918624625193286428215328609536048911960507067416371047920984664410924523187948557779635527294522855565877840772455380285688220127078653044151327910258100980299042547968825634004314761661312315915675269100116103785041199865121051150450224239514992558694632626498753292343673906501361130245427043095626991345449045023504427677134132853139782432259925467312037995484150878477338748724546414231406231252596186224938522070022107673716703814950355202791138677518245853157149125407261717724020800318522427071254491408369162465500038633890368876848911659762232515068163780761869998684336192706181765600279785913624374514703956971926173098373555693726086138974372089706008153238604792943912107751411037295297663853455752273026651372820250901676549668823155049425545115796968547376262697152271161792834688119123411769163595422734751404043708739531029779376001014973662383083159184119585946436387244693221876971446056446096478767161005775337880111374907025518002400220048364135107508996361155848673138048680921664709346482707837436108173291891622113217494135699731731340458490509633803038172142003901186190927279913178045237779052244962940379880533088264779068547413492872436723694363746772506736056558430820630852748315971157857331119682317134832813650809240367368601207407492402746762907058731907291646687557027850080406666294797955617286009030358824358310765825847006808027053117222549868372744995488332284357869441706727410883538300057872269294382253164641222414442815090286238592370094423636612252249846865879422292467497723373696112735331782459358359872064085200731166358872223103746345278155871451515023977931690231480634460310982981465111698904389449104766839821390040903292019430140504858722738669168588321513065239511278301299737103732600194783527256957832309504407472179115610646761810102326595070599926600338781864854214814892098900847034377789268265899589279748985277717129486936758309317829346349049741550544517478267843738774828537442004506112467132150244456413250837287182711387556559976592029531693550221068724005323772095294714799323297197905940865117552884643847989367911102410056197984435476685130366197644324610855291982634622329917652226743030960099366566493318421815635119553814334306743478943753735481432232340774319289440975052888797900763050332236551953727348001555582972835668991074246652432818984060359080345363481475695982088016990458429134754219541856654709484362915708407752195839760450223711526682371674808645998220526610458340748574767496884068788477096805940188517660277612710946405102675323955184445208740010455268497763818761816457099745959714899077731515480894993082858544349609272717378839104740172447165291892756981561681826778201992900446686921027130845466517681921622784727622473228759169655330667081790772838684433239878077785405709487065249423370143105147669894541280450048189606796077526293704903456571732101542108717552488149394465204009501414528824607902248059133723913654887800603967448865348362106129256843013956666009991868325999377622718107181272101353108557267840863730838219074862587087043387631716560331072607989035832602456995822263564790453568724686481824888695407579412570199909570632708672702149932825647667094445361206664168961951417337307786733604990254744539969601353073925208800681074442606700229641784577312606964597334685366722280549103323117402058226167243963872891365310108300332171499970735224255964051866988736325335565773098805861471871337037535275660831088160464678488459601791237316296349488870589783195897849716571133427761921825398304484617849770798509284104585616599495410692891421434873711223539112246411562893540173557006184823331919112195472142557813078882439065151524305980232957237688547988316125568907146896379040422366687159607221035671283197587986511489918086279823964316259131474238997667220740559093933395025908311739708409119414916102586228987741167692447715441480743860805897401438914831261918419813460828660414403777785479227724264235963414960824871382471554790006715164258575509658256549217660888231732475461618570052372100719821713648022869381828909782966607856496564573379665655451371248888751752728129223140708451873398007081881092020831246018573225349942310577511493341428164526791379560778277897098602934825284705771696591347610691976817357500400685696380234842602213227278737709833470601046625896582348851404201614654796077532681486759096180582680807496414595300996785149402178973180078838701075651519901860417742834953217032208703081374753653145498208393144056437204453714965153769233393646156562366815609508554060391709066969040704115494823475435576886470398758352336349009167050192004582269301532970432024139041719344526879538212034583697797892203807654785418634383327137865513284862690707944121592411667091185184933342575455003453119016533999836462751398932057099561630527237357178060804942639251541588551920096071100959038582490792430376256395355266348470109488485934575059428341734188738176542653655349432920260439478707300774914228809962622043641883732291617334542745501465801567430030475989501812893234715706275092107895791948865788276251276041334652273577795937217705197811794141192243489421987937540666317665340191666100833459946630920955965045467484704149004657817929619170830571582763896697978608557187588832348890168113501370796234215417118233629224030123227301235932707619648500245130617949197880419632323873971774443181831253911528859465473100732558863027474760713560252293234685706391604701335164641536205220548355352970888967454317087828222353079776871419545476101521845888122014366675304002597326086566161769005545741870043032192948760246781774221169253960618396268727326334115229122910067182024615969423822130720232413309983174032947272337566672364308450762773951497915999474100836844026851512214563168867045582839692979910896534557584104553714922295584767029505591677128536042831656798075063936818753879849022868939021886714583221301681236539280304671966383876767869993255176404708423537504221497233201661514606217831624091756981253275450858031630990746810660290344710690093436799628696360030004603550088618904446145922787619441423530990489642181473378611208979582196991530374500379867339598734886645140108536274215413664995308715933390932885029391665227106767560224955184520292451507194778316096941026637164352237031237702908503834677514985313567738077644894113076474364734264542829912124019522753165330149225855193809538114380470927103661666588684388832278153245815069547697753257316479945330135476244821085312934499854714945568228111460705196217416806234301864461727314747140840437967977348183709641133589014424446712677867424130966002685465131157299182318382872553123921330799654561386082153098307279917353100957518891506860229739980876282311146315500469770047840561009312707282277027994121516955038940468186172610522605193191829786441921846249521992203624966203597030121163807403577851226789709854834710352485132413537436219850365381196822062363145724433148834454443143348937640943668936003124410089855039105044464543250778831609224768608687737266228555840650790280613829723370205636871585960207366930121622688401739067201226578961724672147861123870702215298591394002427402887105950427906635006337225770911260676678565550512321937532268010965067146963655893517773606459074118331824179390440521937643815433255130284879360687492374195869368020650994704667058884529694082643012669567147503233406641906382228432933288347325505907218080739315730355828990860208815547063899416926211350741341052865644263888161121814297470269476662006784643362906579665702272818361872500078579855681994559741433747893438876523564527821962123415935973023504276416879639825036629177181053756594263122348737879444961738605705351606298073637722117940815397001906199771931400000433591542215255707778358942444614126625757645474933812869032964079641485565696791796680276742703259114885766145995368327904598219068555569042789706518840679181647607082275156003675443930081201708862436304825074943761492469321577831715232877167080524363521627210681082954988708859909457731150414838537806165261259490104496708569591974131292583787027092954552897514618675047171137435353572198135226826141090199583853499830980158356152168911485561472535158395448777220850083490354201032518166022665389061882083730620510932093327071116153979333588101672524796422262965725442438465620940378815400718777654199843500896253510966277292563983345881037579495755585365912403296987398668370889939953242118190016941905330006146787366720026424690681708182249701020124212069783349823127773857499686791059204380024199152322123342022668325916687208288987952532621186484687745754883153217278323726064808046005263238914084157772432297144516775919993267042557509879912666628575956310599922352901051332488921546249380711667793170199141748214448802347637132914728420314779574163088197307998135061395459641909557201588700370087915458862280351690310975257255682779159594562060820721627470398927119441607138847394131144884079888600554981458492627505741530050857294528562247226701738465266820064270722446714134061154823761001976044515733406939190282917988119143280102812273296323344080491468850511676395644597171867955782149062618149813679072719323604411601429567454845097541310832034698299020817588760687680627883616335860176801242400114065990590511511182287811427818567558514685422186613697474314023296667724143827026324201621138802236989573581713103185944085555147739874329094130086363996807605782520517766854334818058863653039652028812069404453334253713776155524866442564514453842747372672052455623971481520778231306212472634604390641793759488085601974567028458518140980353383200306551704497091532565534444632811557282585862734906235889171043548036783081587513128910196923574592632003793000363959362368381674574932138432518094446101384347042667176709369067523179424576049413047361917034564562669636584695419254131363604013346924200197313946964177469833564261420611201565522769922745181155718759413543026926692332127428236186028771984428516766207356472289857950392674452088930752400288515611443559888067468969363163854493116566335237196112026487860399759424514140170624356209208082900461481860240349275971475043057380879447751368754685371774788758550722892041498293250102212435838929996338357306631146334740187945501868659047724813536995299438914542638219308550709915019879469847488683015829826418033953826590500725452489450650269636711590773631477049208249041767207990714088604680282624860440388762972011337358891673519981220367193841889825967077659306769829250299834172857067398150197582071807469762912583433527436997321226395557430173996693616103165242478685385023363715995237402332743920104852742062369559926931408246447462962598673504782280472997467726428471837313890979159992903880050922003483682875343850104699233296800952355112740901181714664947977556681200425439453406759867511744656131244555631742475575199888926820305445218471487046039602386935324494846915831593885420627259228986820841360310753397490580633762126981987338937219250504976126235647305477160386078828442407706176987351727959891925356361902045524434044313199454137338346233640596580728041830257078903309861995942612896110933231639844479146742878119999629036013389733641493071175047662411549071447751461416801162889631549605551362151354095316713326522094120642483492013047967769372306685633823691247568858687751229261881653899091214901455583261543291015709119655900549464806595536970327887322872249539678071066695204939189412557408508528897644207585002538478560834909871778936922091874204444854934071720076499453492216310712836509894718918173292305486901434129490356397151090008423467328719923671950096419450432229520277172647571540104965991189124926216243970910224327754175667986922802194810991165316558073182072220797957988335423519814294222194059661542956360664705172781897776621637414148066799978167502746430158388904577551701764464375966604392860496334410068502999588580999942586036769465204651369908674217363537832166906024457639952740623485556270607717548674189018390069026112847527685880563427316093418926760284352712761457888369816261020305663440703886010968946446770375038352469997199194774663293239822494838063690643472040821439186512694954168595328913373409435790400047035034190934731642193244489805469106812342287204083158544148404876151999771288668439105817995403198203795665796422122414997711869441430247842578782941670346235015374107736654989424372571504205062526320532489013312471128568710133407873199938842608974038404269827562146708989418072231481883893830027645356035315806179852677290736603793346099425090532832900968375080857956051027558149650909368389641168199187065032481116037588445839535169580640527188203942692392975531767684754814862616760317413787163582462539540573437103493595134107115014142292403215780981254416012513075662725742831952205836482197366711836992820154846950366361926240208346227199551353990564048420758699328667257153544618798163429350587222553720876580698097337344929583977396430573488013421499357465457904233362618377110126971313001661438170946313999472666152440741302961408818447228490450278994176583233147140309670095852797674257793594836003806415353633600859826851192725670062980238826934492586827362226894068672186993335724631258135431640316607819837940403011643237908708637988570807263996259686276967047294746080232521991243401840858817836885833947942715894352711946635617656081007277895940294555939941923418613732420822706275874790861628858802466716724544806287838516452864501558673686496247863358053414686605571234960671749410394235168101125007519416045239000619425675434254971271602891919272352295665461392379581244615269782103132588398768330778845224117497959763294861033600890962351040657019489843645197119736123268338121234786869727676841162032695022355188727676294420819683700465937896253319723142518874716695555501687417009950767663105605005887928472002788092766208880919640417897260340613346652163618003649648890036930740089963664765355563129259510001074088955773012366137417887213396612961098907161934896146494439713743215281502076976709573121451747793536860267545578746254906883007929568917580333406715252993429487117731263263242517722721238757038300991158317384916430082149289056981267523610783344733464744195374126344611764249857105735188239542739149533323415664730566780175517099058075799650719182385664463734279586432629839592907649387266491099399364663681834150113561868963750609270598179810843040803994945584456549932653023659662521582463449461856133783457347184333696445794892696453019923553773901648540643614999740526082216907634176316877389470522497997227152205781049862493524292907084530977601301918028943245337085556589203707482919348505206274067601091551914591455144308934593198375823908074874067544367687170187466576219324709527884240016224419272980125562417081045124427207544771094833075510900148873031150865569253550181614833774069358157027372570023119873602060209816042226894504438299735045366200430095291624146795084653008437199233421917800255226859477944764239734634315534620591305960932152563413622643409045544379754738186294863023819568092576635475678013457645578371548851815768291748150963375690726822984067755179640815217577273126534804692258650889199579383774540446306355116487682668799752944478147033642471214460151652317461768469289982820856182790069448929740248803163104835836297794439850850353717130604639101692414532434847998176060642836786257798571707564515203497992204491108707700758702414740706365931849559815845910128713506293236442877901121792448417745760876662705581307540878973143673859109905686047347848555597082877276248980998857970571693374289514618286343580535924519607025719620565879788702471893439527541442437995942766473729956803163441784729526128370484755923372389381483570585795974784998535084458300271251988158243544545401893467005249066708629933519059525986319515656562024143470602573027877485982531798517099310022822410530757333991114717794261655072216256512795346004125864543546662565024458991529333583635548664730016926762773589114451246546312978003889197355472010659294443838591797883836993079300639992990464673742520638701120968395039889266478697392859106872787214328489571901614207975145977924007374262956239540924709709623367448960769149035036915680317783954969729107832645991167475881961308928942602245260245486526560892566547202873359700593431603770249602438350825052989622901968213830379304334335166057110890438010761153981291584927585540936510578165745928413825967705967946530179540013851162461376438890047252376030107235238460888726387190484451533196672102971653335020747304811475952801120035706483729069388881543840136611609352213009711532759730202488356158496286015343049653958479815058407254251135791698723292949183655995327142087900133558441670135344740813926049447930907870640513738679206477356564330524035647501082824176034735753424626552144145142431095778080801383086482285192588219194197244292801996418526667405166089608001066925807042868000069427141325594651550213439360516612842218062236797668068851836828477084317154337101730535266374832350962499300577389457222295138962886378360026438726042843123118283217796510457475874480009019515154267029984317773946152951604884409062176614076826725512307824674872190719937709101414451210263958097941722585773235509457234617453304851935330313179000351738936832495551497078134232202896508551107696950801649578223879027582760553579607733678690800587208879863968156499036089107254094032267079768835192791556640646073999095564161144405206122960100245890858982416634465623675069165456748336668218580851787209025426586829995998453534092871853252447317408839947850620869875608295080766750866078703264030444669634349051320402884935786095421396490213403312747606507014940534107683433543943435303003745889341861371591368209872119443719253640845065720723476302035264537129186299720997289167704112474289353632799843000659865505455336097657306197453682826651458155280907833981682681765166326361995662304386796050865690564301280944068409369322354347525513990876758105438394929895433790312769545610180033390550921889423856166175021198875256143548124518869565243398804198763899683483173840139561895179284195901442938133949529631713493196099549725479400623758679133670363643461398152182226714586031126067249756733628583050563821776271373915527184908474164584659349824908629113247398385474799385911778281138114132412340790932219383403728410665514658513433978827889342047457097502930388427097522986282279547578640944898070014505491244080299179130985584530571460275814423699851540458661956116689825452238809119194626173724488317295185877277364160107934965844822679802471403608674126517247345313753561457665041571800761330555929884032091529753611111944792406656874181198690983218993683652666703598960635243586670993605075646267707335936631859246822061770123896042351555254291729395778309270640671413811999564738860944660465780351317094455896891606791462378529907277447057975107692310503498461722166302269726345350742093493231745747824397241010311745712155339731398129890942929960264236863587571109721235835207820067789364907637749673133522602449191369138380244983241599304043853451098054868847783635741810225440662597206146281219241894261336766959845968720774717571467186019321735176900614153632427786187605814988037968702791966558605364570740400886430525927380436414011777781803487630819450370853944442865847740807905146614218037720072351853079472009381961896975432258127798630602415656990167186336444323513627681988089471997972655199324013764519661993032223424569494602345452127374644691262364893055162824080976177382534471389817617011562432590333310361129142987979847566682280112196149337853485114098374248009372218053806090779839833777466168735113525497524782113204070971950784551389601509419857297596477077336126160335339020365393225973911316836688450612858914512935540613745740055324305537584310441853975147084280170925859965778288298785672764461288195205754433997418648550198597617495090125628562079801958844658085282954058151535412829517305647899320837614845589030265835775238304217244907829079378989099890912933283703031901993081495817053804251026616742977617825538018804042380795707709285031477702345658755552992958047554787802528218477183661479923374427209745861884428628994966509471850473469829226900963153712315022280085289895651047174368114546483753468491722928856481477154325942081811909540857484289988724066452879357924297019667423826133502151363684611715929703559680156947258228284163661987091492691472958366026495226698264934085050932913537675761237215625529689241185736413997557896435213772114627774252376296006935377408513109133005688320228511620758554646158427595888746193510490976691381273505795437910259215745130510794412492328091279971948337622162514891932319239728162053962847404081862277790089427809695868466103120611064943671729622814065978637764891692271361709414019194697537808298176628817241001522091805365658786263655003457697209184822736600763422048554353710036562902857251636245580040869327826149574745921516637848874923083135227256517816774115664775262360752673147900868506947200373709120563462860689800794234901434972729191427794802766795135205421756753478833966152869352002801482138007251741812546172541750512624718768596170353495555792708173389754155264479542616160115398711998261799459968072220730255915400693264988454932579140079477009623726680320723068748325905932514054983560829098264441726411968706124921967264927949637938787656767481206260939362710871103162670651175443323935710412748709797033245410735740799751185186394167507452220907614194603067106889175034738403196310191744569334073590942021387173241779700479601780005926847746084991537288923085505493892908183810801872834530760901061062756435997649635036462430678159299815013147104594693585963986924763887188741877391634988957195639740999306702256278502607581822165107322884539884522678836435586729278946881426767364435167248891788921758471020691838104815890139077707859314499911873586108745573951868814934073881103202674804666579336122028760617905606046420938457819171237549483031542107910795200614532386529126122972451653853384578750592894900412888670248534162556304685388921770509950005157512662241917128665040597678761047730596081160387671808729677848177753596454010324713734670803864125017470747456107039480672918497137552703770548167115131129028116769842980283932594516177760915480361155230358104881168264062653295172293848968393846788515015125632843201737778434648300449823018183085054644452459543826730600300949795675216801203388837820548193453969882537213097563950689423938246177026407614611797646020365048458828836548014641451437173391582899230454567769134091365510349837886048616018877315332259683767228998789866341706622601947056553623178618716882734557819385023486721466334801319661414897058345846808108309766799388122259950797923906761748711203493525313486447511092938893920437558516702723265611826820850990017376181299135315844509917666482267152229338195006422315200620776356703267889476664175690103027720789771718556999305731543680591777324813337511537787251476676833673251059778999612821942785328450331419265079211787715576305264271407595386521402586980476888684660854205977358338669895015392669321520596151688490673362128915072670261308813834361966085942202318211314057396945530137162986112601080721293218083371441746464174916409834893635869177175586327836409271833943243617423775850310316918158656912851092967522095709979090957579942974124200236732088552517296004980990930730039946561581139824646497692087746422155551519138995585425026470166463234028521155230141913400151297700917088023037003505256291684363476962529077116632693370841797035796669821450964122086266315221647604568160782978949013832307744682166062755052792260239922643118681503199210773464309449824540362623917054295721560963253461351304545223751698393191965577965674622800536708934225679639315013886223678075136015779281365331899456890617826710518248154520524574359388307137615072684795033260010244952693581489323827510740074847957082431042100834325899010792661871711171332033941339871271025959407959064746310749863245729323790433028133089278103194582363925153496809642546180462778287186352584101211146713708468118256910671284910021597966880290820418263968584018316832392066561959067306630746458102570888069265801990280216781860675110339243986495265337138350507177532077501895179219012366604614374899298491439815875575951489718706303292400542566563366759675625678798415364030734971814129574078427164406922716927406489387097775326283386318775755979022314344091888960937420774967418890144382807559317188283356592730022634814436030764459812357748933470158169982893962577939568256217362639277595037350871725357789400323716372243719105844425783624256240880885405419313279610815730392145741660849781376735651479854688532860378602238043637620820406816411694121075379911842120419734832586058043263468399470364103753605554705736072965037899125539689329210206939123739244762441620198707154135933510463154612969082653859507931350114388873632827286063318003613180719119986589620985828232271807952353267486445321988289538133574361391474297793664409358441748520059702832100863934902120909483504045346861291542836951023055240100955010739205491543130700091041178044593077810522049992085651175285826961275311239782804619296089196545520063481623376000550556385669768539552566411296086700673431643587478619960364502841213031446376596506381181224908965528424293534050505929986018867176739542530955409850812105913160339470008519439953628340153491142688566555157873900692341350031450828784257294867740581789033294119593410262964686648003843809123013750310815870218500807442748671800476004631744153797212344912781499611750299641028432008060484882621932879363553334683441994975450528018181318105304869864479990985227243846333383182345759451822391824845792184465210770359404595280101126083902289321362115776319453496452817549218251088027427391641291541544836283884607040332165429078854785722867147734421037276492935139721101994487782096730870604304559909506544809888954975500165944534214501196083205268934661102599999668715779923992466266810398265101422010932833303426821341168165404851407158467918701074007362815363896695962501488918373241641606473815377209450789645922965635174625944870876825210090923858244047581994293428937877593854635770473343436633836014455122123115091839767484188755735813444349948471719149390229439851960584062015961623048757881151168624664096132480589939298835833838680466092391831378335613393818497040720903014810103764482233984058350527662899724914522529357258338272043074439176314899412264531215179574407032620527759663085428588503169536080626093418800960035571240151101662279920376716351793109164082455123576602676663020259566712564117062663181690806607447777596005910694471634042406578300445113274402595271731076663215164990194363084830994477567849171114787243772020910381446073570072185866525537567762674783350037123510537520166050860725221834954295743669661642751232362842768396331646394539990126877892545986369021688832057533183625987927295624556654167365680328459193496809030038096280375714521058900809989969715312930078998021077815998749610520701599777159284744665879977668659652083968488193720927864615555845467682057696229638392481077049463070641133644078239210955472198180720655171524970387283098295984445576082305620663378047320929518930073861184011734124673095014734277310904698570424438087553987180752996953641701468916881269769496592903835424627831109661188970470858210823298392132763469933200193156766209025390295400492731829816239995984321502028503174440354209196879635429166010821955644921481709403835048565611014671391412314922299556744455730786088688349169550124097169591411426445580302576939334582089941895022553836574128765198597021529396562267426934729152739013717709948205399562794185357643046317499208473044314879848279666893361883900662493579708609910144465022111741269106231221687649030168952155503788636521656263899899731403203599154929873275130551670278846023664979943636738100447362615947372265186875233313287125902379364172844287541736073124600849469212810982858912853865177623769741149749787004319621933697899369981168302881525940255639178424747317278111081775907596172379027004006803092325970664669380489376380179337841666544017987751435316660718790980931344977847117598921968828823841223177227560035472548311238904656587993898736491890159419179547204295465294315728421021663770054227056485686575054124858599772258588544282666223177072118755765928094080711123457767371139890136260648702261908529092402288247028804950958111574523474373220086267877469134035194392566903408112215148611905326697824727798877076819708570807640708481886483504438218036527047154472741460828188558094282849435787154505525511735656827841897622285450159510778705098098005541113524747526983358013242235605478260500588062454780789800919010555273590889955187832542712923218755655684550790309104568224575601117181308746282279679678931426630174279638561754055173187860997351118914304916278725495330783915108014432120325673802656455644891899105896407141062852269775333900473060706195570645222044085822736724390705623185437294899328019990619082798357879693107627182890868863501084137405038465588882572439222505723313454416097633872751568052660251912779373862770281480551873357410166876847594235651960588030519890492937524029798201344042366571456132461430049784526121044407721417013601441379870516811869415276376027842886110870644894811048992326714712777960556890083209798427185410257292144084996131329882905320924955407616891357010441284197224390719574237721313300040288988119153400693002126014600835618535204678283818756914748758034010575637371480460177436071913228924056103362792780443438850415807898979470389972904946479854008682690139530053162076598124098145317678689183555776999563804542687227338361313062607574795857594455963453589828637304113833219876094915503503829781037127472479475920197427000987991695996947912777786693088313901818817217497792206500417218038588523183358440675721684358389614428567107260452427892171613084699844957833156661655120867173721749899003528016144754421558376498447799788627580626101551048632986151126069330273413583707362783219554818249879323521518114799780465598573669713048385006356662394904060637869084303469685064779954534623843570445728761073159949402225915645140805395419841022425139449581677565832105956966847282377609871366600277023848229255412518179634220615755854554776533164868506650736400100945995028528282209974170938928827063585591608339048338457348403177540923971473470620774185025173780832234319244385268761095199307322010149283322553149830674587324765068803498292505908329644027203504082990145199304922072250129262832401574773282064809067278271851850732467212106718799631783226470353866946181790071565535482098211849637521250055942834435424734715002822045114119729797976572889426109798645728684914746749254417884121513385394873355225195574163094401110995838774934938948111735778904278705590356567711921276303322153217704836471346144011892672040061826095269518639787541161240163579174229175952147129514090160949862648150420376107110383377262751001711988488760913147880311304571584239307609053383118322119594133959739260790440829951678712361480319049545861243046590165140194894959436105506831580436643624999083465752196661078200231994404340546265367465424986929424481480046255774758073003074858123241083425651455248021609987810542080144543179205717081521487595687706094872467416833786404133312163182041719610650336049539139760107166807004305190834401541083122819340242500114990652078556999140762488179528627765896167108183816612647756961852833067421935528027131043067540348269936110025615952808389956353719927409637871912974751056713529445909493515219690227822717016470575922756038094510248402586594924284299483118199446278082416372672309206226062863111563948662189235436498266918146556578385053508986887478057877503356960499445898210926942984178311029247831181396671610465495572621279468779564547784580639308126873923169821525795902919342906873309554636246972504579277681602289485119089624509334443053768138060548540765869286124229805776314290197274175481361143113860360747553285020627104299751272171096823114905848487552346119204238757116612113222675809583726735560700774890635183263554264228188044097194619845767665068201317857706323023687162841493374580795671829069349066382013300603302204808127824125001810337896638466323155013825014969063264144532819850541666173184709681419935937492783287234464164974502400674330574080057620473790052180252544814370169135570090587753799399298675142682663609397182989449789033508889886675660237841836290689723643639729932825745430811303289525284495854248137318213133020830126153427112856262614110220766229571277365108368132632366570713318819966527957548404546050148278643860659371757981626132722656530013980738441964683372771350571118560947958021372167850481804256292937909448996523480778069980905823236699922982718269629660315789265715009409611576670605534071575958214003013411215448597194121160740761120337658943715051288834590879231597489568971297648080826967326591123302471064265333724086777685407686868981407537437419804225706158180365566884938068910364553965834478341973215853307895304450174594786491034062142248810109937788666676721021353986227053319879765748321100273137156784233814517563947744614155089504375199404815987221623285385875969831329844310548072607539485263970367517703131865715255300182840239199032056632392859962975992206676787120200262968691324766535155258799834360682304486013419723142532058927792207066670203263477113229633832245443721091165068081857161122401147474456384506949042406425478747238274457345319248214767776339282364107800927989428176794634841516872520270441269571996127373750269050322774707502579617145089734945777577731272694285440937096510904030429772653190089399599695313144186048040645139531678253740417830766432041290600348623484077298591965321353062655425985759899537891738050378105480522194900992852410816395800986079587585059018319969766027560727811630184455575354815060570033686897409369804773447550161771532218689154680553172311806742028931758663216942907237358671059609491011793463287134970272846131778974764129009993426563401067277239265796146047590613157390278278311217339158434998265830277021862504168706469730968783609462492770550663701578603563720551969470973978295946326260188929344973525190849337784813504858650954840206323145883819824417109131777932544027044624600915571594891158442701811218357684030804082428597625269680975545607915654435423628306838529472542750038688480709701962822752523885160610295374973183548352271754630047097031309795760213751768710503718781331242008159788182383609872011158799441043515170128179953325382958976096357462232028728366306932029935623692189103834756262449526285506045938898409056299037697605698285320391383499748653852037739171880168704457314789706268244681029595251613374837364106039006134071834400605973412497286454994846728381600352524411103198764172194957488297026863976931476388067921951782449299051001721898826081769609770189823575942108474989082544408132459538518694354971284405973278876472372178320471002945343888817214777657360764806237562586194817978159450246920149079675713146649595503670427370584591531642551715595490683421539533395378656835181925217926802393205701608643745731151155821091046266041683216832117336578857243211918995047495813834199913293559408527738690245917158333968405664978484467435354775034240652847363699266472668688676171054562839799286360453431476026822591050630098805616840394971211308686273699470191341368580414284916503018670625615567054322341252736559437837497108965969331696106376108105106844132602814327067637188766600456997732954752840891619964361238806578119940609499324741052144537687051656817843922459570004143347861524502377143938687989739029505611645409571321425049551082396059697849378143310085711226671290675888504995585757928318417587776383700892025663569464312091102906149972964871326213377552359265763059128586976841258647504270568517134455463786913906992348842232868822675126277222020471663443584894173678980283189193604405695639410780991133371168965809205097543449875453861692227428529221094182127532898529045809484300448156027454930299926937569750607078326213800262663688184668865148533876048212377175698929388091866522459415441079552885940802612163845066921582907386408229954994152902581214110017499730504580482627096997745814520819982300936405447457352340624994698957894247055987166966446288608883610830420430764321537785209921417896649349272417628961271516657609229333342194516971202594081013149944035241854336798526190062341138802194070333762334474248467756607467627731711942252045091117785790490813927615893956382032805064827970156426729374775154568906723055130252262536475039691242197914506446354552289057465269120155222646565040527316940350201307152462779148691882263330567065012342058420658392185119327903732279439033413907466334181222689810296965123253045269700109042177604672517927810092974139878335728688553636327816986773864613437254335018694810941708824766056971108255920507040228870850860494984298213357814709218269855653686927307288513798135205462373705347649672384847431664920472337359582842394253946586147773623349309187463949890267136464657592052383551397852142686068041563921120209023893362895056389092413685907540940170696010696091385864916184880894257008045901513666874509957287547347156281365182377185553476560684067137996706151541075386090110001474212408456888976749385658193795226593548383250073510414011832411754327757816270568937527978543934339129492885470983494214017711473104305762976497257418573560308696258859291335940881385199581067718451963372625142327381109363690867492495896431945621453816694126476581518890449114702797105834659170440820648544808642450739031255016262923393740579683314617937165016511085158688186014181017893364403780265792753113424770915089511077863560382616109160054290194996975055662232367217263172486976447999248303554692664655527599080116391741527706579071593597139999227886546536794049782728498934853874430411504020673838190746974889735074399549867554631812084274082543237703242007608972647036046169935266844678231234506662924829212796008431437438551887803145613758929012509196298669794472139590946504227022716660082185514164300630233053574525082422068363085528545862896167331541695856962811471251634558039194182000442042795130833449756425820300772976648262691105376776797310081971228705748692118988309304876883137800198867968557756531692696176064728662879653917577082540363447671010297237262284494941697606078712005470288524400839524702053871805055737544180224878469025111623499891503864368694176855935484388126513206223855557829222197835123715684133798968403182326210813377482336298791702487780784655723049340664754546328400160241742103258075887543919470379924787851643736540794773774622580058143656721384517155731179870157711099563852125330480184404921571392162814228234872777921481721240893653841293966391864047853918088392703437612290397693695837074241512942314787141586713565037399549386518787472268374976773791298096207108976525241929590395810998034588566681898387083619736069866046421480247532689546933088868183251039862326984592596408869434765534394391477798994520933274394102089066741858421533263423240326172595993671698696328185994683661078638280437139540593423447865678094712554949277166879171910326123657897600947310991867997579583253086218855108117103962754797312935680077214421753769445917834188043459380895232152444698973839995176339533274698570138518022547730761699847160823141473201944749207212065649830967544711631216431101062555469113958928148170175161518005127797003264274127514493036603770875263266156234588966334418236393732517989573610848426364887118578869392064079243915791259007021244874325158204721982657262921817150629475253149159878736610135501638522591415889092520116705314792278001843654884534610315160829531931249659762405447821150040920888771420865390103420941741212163525620666859576259963041920091862194669921000057565397950313423611253908134270222741220225653915952975215177204081963010263699276566073296182790590105497624544645563199714103102929046921816892666757364868312656337039715309533497461339385320906656425102575406930472081073273381776531721596371396925230790902457013233927385647568772852715363306484352534494508801911068711002247487776867870653857674580708186731349059559193495875553181960860410463098006240069077068157587307056403672687673562346112066550715266083960005387130098292850971918494941885734046445385106657442775156487695345869884218509912769624311564855223176823000438627815541281351099670054823861558556407222615735109543088723071724033522086852153787390168171950605874180889573784207755867314319490395022109343058628746573195183505482828818125431233168555743848464434680706574374828825184025568334081713604726593661742877754112374539989816461458890760691636073337922065498271159192069147177656644138505642952184705967034117992042967126775024096189694784735934183742246401828867745209032816277294104519863615632737358633341208544275690225042907745402793481566556697941858702327470481085203028906326329290143155184174667987352801692541450925312104632520406936185239603584506547559087707657320177918802150141317097099470977693987974120264045517709115913288673041537805860790703657789489087405001293040573784105551652930841648495419584708576293939400253605009961615690223052211750509692319810874573970226858388161537024852852920247270429093867690291149527368243832264894668408607648536081766363140815919079759864602187084089803675599227262610657973702619771981048084880822751556330842007922588008019842440753509309601239137379947965363719286538707566240106369090063898583041358392247395492007442396105801840405112232898851134612407891797165893953912491403155417112404749973153154052234840916947354997261500883021660323867239591203481862797121554899911480932701625574147223873031254366790403238865502767477126100153531472720000277968106523506170288269702881480653852427697720064509531373274196763296778671496981569989569881727581660618563115285464394464108886953734314013179324132173291164598514036814917074652391079899971041222282030036849218662258689464263345553905007043260563679155138346749903107049202619808221652802410764481424407829659649424180861533369811600140637084326544892529980554988173620763522994938178684497560402926035716626521868973207640816976440758537143598684197357841630252198615227848547158453259104174910713144071834087349737703374661392617663633482902119451709238012307159826232300070356099990594596651863806954199665722769880534660437260794070853004534725194202135306141482385891666555325232986095384783163011438519732248723078474943192791348879822978761124114178598056059639705482407269144259538928859212256264586607364551277917304337880528506913465735569609238472646907120686167292615696117101319207118481604820993782287005352835467073951964905927484125471530198060457022023183688478465255570608393829812518332133518281623154729730302457497056051012263000777048753775892626615913596253629865731002630170847766278150765299222174597854305628503629351810463512149964375869508962340742122278168464675549778543674064965777304199416997692463543456782995075515943874630937887742537747481611926096556293054877491235071911293004903875135297315728993685052412438792798780158366295798757817363806632693794574819987609221411811797395611580681817824545689515207771521377827440394714020114994105208722766857445648808602805795020087822766118634421965531665645097711238625646949230161543063018969017984927059004833387598479187470113679656783480289241102710949434533323551690540714685438796026000452028326472064244423251089730143836801638602157939964748888052188666245022125894217141432140250295048801845395501504796538588239900444601761268036603676330635715200684130370944876862290302288381796008791251540927638466936810112192410882990026255389594569986466818172547028867344651563953630275919025336550128949616091711533574376841879539650747249388856018992272567770417694577949209886827550240781418950618367420381300424889646021017161336910750972562667602354256527699510557902844072931529862337512942628146111710338580845674222014427864895637833133888287479208846049838873631295593497964586756361144481102527848643505097224174644201982881795791076941890767274462402114656074606142650298053619648924284315006049067542073711415004527237202937633195339145087474881026929895510844615842892000395863287700415984469950809358821822807705662020351545511497061743273529191707371520975829758639797618444578905008542885486192993508917072513409237348250267916303054377410355736518948240530009444175484116617004683993898660600326781496147777099591487777038286555803848308525350044669425173199928450327114478697011856163409385956371887105629297553286556661092479986951919162889527993838744894659053532676683060555132708904928252153083042772630130431121731934235898943332745455493891831997381193692356560530756680195089382963583933226190009710788252666238431890683195480454673945396481091568707002638868425683598647192134014583651104555644370609445268787583775429641066659759599140481319862956295950400902143675812509268218403937219294930587587552562268694136777191228181452116824633667625378145794068522271361371049971072122829199020527490379844025200270640959217097250170815126043730360136424193291718433345960464721048642197998992808034561635511849256283160419341651554672793967973717359731097776343567040286803387436196490707230909812623079749877289045715214165279821191870121549084091582204978442896756271681841837935039347289570517197492693374545780905198035156276874894733499800102346570825718858566389544573041865336610086354018839323782032683053610489957535603469668963882413664391301813822247872360343772925206069993783524227256366199845211540923880648209014489311932626553059608492062057171404424284662806954425850872245859741448392719348279398622130194591737687749014875738677643012887727516386468995538577863418576793731841572876300857922480129034720936812974596804050841322523255490299604383421856996199363891741632962392867355551909709789797405964079155646259764889836682946499574706396713949451855186627591006772047269900354569425643573812529888273972720132646847933132384156010886215349533929224997713318501198776725220122423386981349035627770304149590902411955845491116430679435916741244053685837403402223065969699220132192252558068202552589814588199460796273034457349035217867059582313161785720535597587150319058539405983188748126870069534812462315332756335018770391515199412790813019976992009582071280238231678622306803714661534986348855605584460533502516425657516244666351153230032133963962224330828927232339444136856000075933925058838076627371579252934223847331350266176657962432219922260014495469721394086056904730910737467502529206720129513172467677215355641957929668776411223391763294415971668979971928832271460282685470008805850501564839211459733147947027376702479284772260255000922667950829874769485789965905093954937674652824799039686841523716997798197955814334109716216304975231653730071938583910702634338873943150808456847817810598635402685855178882834320500445986535874124145249998536927179200235610497104441606753433816350866847982472251899131316920477089559809160660009094260516053001899500379430297053691013717283221140651698940255407513315720492800095703745908379276828232534955124692792658688384359811676407891171912345965140609312836579769446042192446621024633628182198083042908404457799069872144857185066435468729994484751103611820705158577419445831873306087335402993319576159823877572745599614062561057645203708097200739375195238743861533440444917361062566698995002475856846564602708547423672491699477851512856645252480318963036335975471641809667070366277679181411343707808868636861524757147699379030935924219139299362670137681103766711487862270051572411546567345519957393885988854570325431211069814475075267015939280519954915642201657250615039572349041952058214331212133321684486518760851802916409987884376617653252975652072698367350085485327297575504010763590931453256649318900502122600414739445311048458967658777131785673791485423318876775094221682206775202860571297917178062689189009529963975804948935678174430947352286448251842808527469294822410243825290169633880808954860887032904688576661151416301958553315150069646794731851607538115127009773133874605578489087010997518854369881017702703685295073694250637547092602256858393280117299096645343651172063871649597041075146771797908380339024488291650961471844744657787185769300808705268143853485045532882347150844505871847337739325034132047058054438020203378852424759021222758456642840290319395824856735604085905466273407045162412765843679285571460852423693329453228380719755073366175328332512117666808097637955782804740440755928596436382459933632621526784581142535346942670433294692703615774561518503493059424738791996900584551023632012278336878042876105106715670189414401423537337858580175636970524589037870934258811884786096294860854681596025193538559556568029874315836203295314807738511985504311237596616435028227798440642577235627606831944140287318578153371337715857151875744518533114513216282262265035476148284832579362745663137392880355198396989238842752770102315498058860271216120173630914767343123415967536738948781361176682417219389572398182045472268117637500109368837948748707027714874498833873690441405624989673193371135698855678585599694322803370706061175359670129926650198447181773585406518804321070768430814008371590769575092648722079077502302091080222790822523564424255470212830260423425684429031258237179756618632309545104148598981726845999324758207075976985950912628492739133881175491345059680303051637525297286747457777197550301635943777803477980760568132427298787251502216858745125527268264688329574080684736205627106837517100760058520760946383617410692936773881746660727215078911528919465457833737889263790008887780336535983335788820829033519265687326302991868954364004396154612347641270889527158007549396560336532028311772191474734367467910857424841514516298223829467096735730881892118487198177417616790302457484809637157795302489424540368498957465968925438639297496528968640957299846899507673999005315876297016918645134830094734911208402830870001719653404378420758492814628768777251012981607098966750895520233408499901926446157801314273578722629476486344925519453801710611629424936429494927035367858574709486970362722199723472276181989225163417668804869636380430383331061470578856186453709422356035751543011455494642281709947262379843369834902080889613260844652220811321170173032572202539283018377743138937544551838767576563648830935882370075489841257045222504640178893138534797635946597243116584160205347475838521604931359061137998364586480819805571754491868818712025233732940147720591763236533063317502004490002755868813598138337293912919606715573802760311050433957997386514391860165356602937150214398232763763241900880508379464228817339755737259665275619147073922715206938391275242742961504253523728285091199911108711100648119936048631293614287695639959251181247216234426421925220296022120329405873501850468474304379625680056932170376797236374504733698149687454455418098969625693161878953839231076828179294034302460352198147281587147056015172916366760274679531623609890340459987118461639350685602070937605947830396823203884707117326712314361958983501569477189956770731400124065871316379631789606509350436625183324281048274900045544868263596711796227215939829414266598756676701017962605773075051395135421150196588487385713114129928619764633826762773975267600502812342734100235470309538980881619637316180622009934774478465573718408512814276270126109067645773330764386708771278088703705471286805647276379034051220371340759721525489211294302093165687584331725422092770884641859492315623126521737902768255504618506563500363766817680666233207326459924380249183513261992575974163698387691492909811156946657136118791399482725036589605886931000753789303843713614395862966767974901423295253570992203556455787079523548369732919268545582937826968540151333611949356336063953014438536877902795969523588212480581126915082463955832038186052036278900641067835724342765220571559372543935958523739417774893343657788098770948547691444469035573825505937730027643989270574094343437738153773005821097482233491167341294133020421045989561415148484546646006736537101086945425516653152709403387388022697402818407068671758757555734918665330851809725684726657541263619000831973918188503053805051569587087890838506235163322325436767357173239135196598981109934014929538112622178096445898452195357011115194470928982885396461397884867188254350376319588381232471571125518670659905021304214808100341817556107657615140280727236276106322114718339806757660206468809505682491182225116206491851867854063260260013268128409300880110627931300230839687013940322972740324968630044513595523728013898782077229283238481975165179805275951749117918475738197134630217407778997799929130118855519195816234471619393149424126938771531285378594381017248857772473336818704684566865122915458470613371070011573103845029249569707650504715214863939799555692634326021935430541088773636574051856574487951119702523302759682261375303860339204622979389288124741123323531590434542474514312654012547621413445574148192417079035381644406787821634098467883504181861760247105533077062112035926557682390928349793403703840519213918864867733547013827435147503822295337833961319813353453153852443975585741509169533220194092838499642047177440869541198482348736450114018108916657011223495507154405873819999478428087441594672011270874174344820384149173138485645498932916908231443162266413145673740029016437828515397140803518672087322617775468016077320560898573910412987202061057592836567102082304193122515305525849175288221294137669239187653156662672721852108213791765334014737193492250767091088524789593939296804832644493235582854115600254168612458296528645452981270594422831640423112336496347387038246252803711097935472222191789912484879708493092414608753065674676726243272632184625415747808588088972699454105399929714725934373987434867416977366812139590767730994738727987199344716797231959777469535265626739970745372564068204279033432732841394699767261118001099228869679835360525629437603497062809875470215151766416788869997931016464817869019533091256871230719685850924236854139228264944329558912939643862342815492723988632056622247304156005759119703867403447885559131014341766460566973156254964922158537450475239400836402410325977155093838735072701239436845401397078637359326734835397034661708985390562068640567563528493063717352991498049206981861645042126650023707296396027823971305559789214563399796957064727284338768581305144490781384373933343388140974217909052004918723914762191028824358715691764160397072817770102351182778138214064660611681929917170805545142598399445687283987231053386602265673384441624313224940916382382137309194209276333491259919529771321998670909016461193990196913183599960527343167918037707999340425010158958677259127291954068535737686109002151424980268573347937446283316864104363720225727805506676205167186857360163224494523660899641952461230135433827832841694111818421277322828380438533749429519327518051482547994603264104696866844878254165367907964607126110529787675673262088553414047919150339049737083005458660349015987178202795306706842615158266020803475137535043308256422598681994647098452065856013670249652989140820633993065540816663614977474555031731312524123124401514591764344237650630080930774023203473740432547069575523129471368273355968220403016069033011147270854577666417790429317914879960282406327019333043471310023689166966468697298722768931197915069626672598262539210036729978618518373291359032762784349348147989752365792531272130226640188909385203365896922316185757102341945717183908626977651678937229013426676367286615655829856685467945281413295352514229587407368493000489751827966789980815055611343871604288312907206845274551728147354310892699021883808615696437989252251067996831325538785930100819422751232148810454922274735455550606828100210496148361346828963594565196098616612345184200302286287667018693182292581053961221686140680934291444465440392057517583664864554711433968130700906110851188450334385104584360190332867639509789964745312273312555977011237363117960736004956882963646832056305019079024470794478702643263719186986751947818495307389988578152670797385253909972254175774935270611903294686119042708936924582065555443454210572114603259075584792795793358013984134570179091749772534049592306387150296463683107628854204936405094476408922332289785468560378050080216904102000315565529061652196712347122494924976815581140815249014820406747685348541582206568674779032216829507377946050738485833173420129447545651664166875876201924642702712441745887413721483522500833647536360900641837415017245437138144952197835424646796599000108431073407357890657417009584170364198396355274191412796397445388709718502735755297295502564844426305526910447142037426529428894830931489442121110096684059279447920246878619792926685858764574719643446526042656542393695299258369758144006604767834859270489389576303970615226440463404942697519836627414641221957822264217385271540767185401903600291324718761030893525876385986530870053324153231008890860540393958589923078065105496381256154913915429663393094153908180574613206118696355360730503924859489454274195589638734946381086381473997312698266970871164298889436619647458555231976716003692022237549733999659772588960489191812685159466386216216680919256205675208191039790025298167545324249743651832844320109935405462011160990727141272965302298027487693467807255249720870299566284202984409496531936047879701029583835288178766013520075827198120372300969815260455269293426455638941263791806385457927549374537227806009131595233674028492435600529441577210888687095520925201236889897265306563122101924572448506606979658108768972969067099082854988882757580285632906360764711690733616494519063068439002004098895450341451439698102000895827056625805516204209652545164114774057498223821002331910787028304313594428424235319048165225553543828835028966996224237884109342041885419298777652177488491634031605775587059176920514423953879343263099418662064155793582358041846542572334179342985918733130137469528906689171051541235208711483327129830685791124081866460220561195484530227608338962160112450410990068377890376628332372289629763614675989253866603217875612437793740193430027889522045017604143331636040672522057859976117154643558896662031562967318531872700461651326596224216191675941592914787483522345125401064690664619176295522682629160614266905442798264113841162262099729166228605374886155231974747625532640876765197046433081479537386539003845850111581784879389383306567607975420840008784455347598375972563973868571526450513836136908008219935490299319407295152194185748850441939454101904292838151724195943441507338948123295206698312416403400475347313283508273941583337597229025742590314767513415751220831162482582307793470060992342153435419303829863761790342514456159651109773240554142405456626098962897546859228956844971793891770865271161786051595008985738804298753702767650813831928910364163525755602478606682766665285519834386977262478406442621506307358195519428581945192677354028629686174273201692221163773546413103592425485956945878884567390487959481617240193637344880175861542781721697748387607285273758310855028699483589168672558566036213752484381919113219299935269047643459668655890148978046798347564346573590481490797508013319565321690549402098658494728543534156303879274495120693019178749048672811927139613771050087758552039820295924994968980680621128376518714969793824997737843354460557634873280248801801103425048843633827469921509227657974459396588011357806475718628671983143523655849755889046397157939903446289281967560446071578235230518087985852713420381187603347758055062414575527867438440401563334199346457464622428280909479683419825903340369143090733257631264973934516551280914279125910673198779329607630567645598480296632536004768480461201404720274726648226415289353233842378975231661728369843828492871201430620288206751709007723253487575348732244434163179881062411029941122292805721275843081196279436976465135070774004503876345202354433397962753135480238514245221492636232998355151820606014369502721860645088871362332106779997142606266236445241469802859352878760609815358311223042109109157478363077114139974919326116558615393594786197190074314385518167410363886018180750482950375798854168098318513619504247557190951875024755995294300706501370747217172615312962967169645440055814723071379485362990264628402828261363099054122068023338722744925897192131704747398895904724200389221182601006081177452875969533156967812143100174478667772027829543140615221231409231156511593767649885834496207854075310253315750578280392758538957036715144296875292837458133502413629668816349801421954014264164772324842823856456085891297226518566232374973311661222795991943981354903416341287109224238424249797342546129152146814805239680845249441437992840109001275401764064118177758035359976514457563027594057258049309437402413033348851485162128202356136310665866425778849484248310473949087530407964075436660245574060568606840177306431325600384774040998424554347399586102503698767378121391883224096721095305230909089285713265777884318417378264873848915426646585153446478582162467949453233563762050946579814738887124386372052200563931134099845366360452277579574299432873974503010796305025310187093701287696899750615118570137868151089707462622717492318397008903228066723247044969934486757872019915061976657031225995211473582359705576744221863009215972793641258579007905710015522116223731157847875967888910687225797872521944906793017915053990079586627550073688588423496714985600952791002359056408825380980900601322035962367073338301248625473721564205123294945826008375969528236507354502820413533191571684890721891084238118090319729102384829530192856038042245932818717821226814393377798541894910182467685690272990411518308738866960782452485480768501592178386402470320737117691774335107580276505532630323671886755475750929628803463524993754635721694565020815143020220581676327630777700092194544942491133281683080757556543069304105131959355262488227296223532050491572707025105134606852568695543414176081038500269183878607213734573803335517495617385298687005830002026216772844230184058154598501171613755992017761533416466789942910415261904274474663456044827609975100073312098144990687831760260961387181357802610826762858463890939927933653516042039098535909770942820155566799036447835694917547003243277036594289404142798503740540272730301849187257252478900773468418163159235308391209872956331843274069904942263848948190211613957274913824542929570630697866011749733886751901881062075552055399481630465153935731600312550209001155726266261428773722078781246158075702107851748482693933987711060906697707458064476744934963279401791523169738097323142619097912189550899887438290635905645217921918431354492129939493649282747171991264106979569776760170300982232754243145836752610255718559648203844529414370167864038675711149847124020185102324369291466109722038716316093552204456164938732455406863003520081580984139029109835997883903773781342258023663890931256408255111602411988826415491328681886370089459130137300298819339777010307254164938660965544215826001277073156823378561556531552224151738747889885283803688442672427312097781263802503307707272161846480669792986241494155820791588979683576844994952989331370411082202078787186130487419367528340686122566610250781566555417721400194209187816764194548920213101605263215305710312636907719758205107897883991337958314458987876302404686598516272506101506888448697309281124162514754758701359681123124579290336680408787829826620433472853864645978201955796807208032598135399033637367016684131959723234379117556687291562154063729542345289782654979633138431829525391380288636440633878202739623413422996982125414057188117589821472430002036347843596730420666564648430218143256241329938937799144606255874001785437307066193281669729707647054088943323879530798596785278868290836004942878946514969790705470316092635783376347026614627380161575778536232731122585962293362123268693915681011528471231778830373486618861738186082309702463784038076616810785155313652261455923526942177197242167454859830677180413645821664802308843224505284318207076550990162981674796587015986433067355997562431276936065820634552154894512566810880547344269561100081500071127059477117236345055373266477703247262070027719563763715860060007479861386389271201577251631124847947208683427773867508745611094924000490007486089276306989623538285351900954675467832073963219512092501877301981221594075464449202123167098588853658133097527793043949477667848293231174917017564274277704656506583917475371595463773903765070689350958954729334808981872772182727822950842443089927225416713114962259552401588057395624255263263048926687078510116618248480549514753417891997954796201244561278297541190718812647425983012246456414204480421095830740346768509472853117453505107257938577070719842147514715582841537657639959872531276132611819819012645722440460198986374197154968622762781606270352037829095516840059248859477888652234348460742750746398058526866814971671302274359002227544782346232236311880150388229766063514472623400130984294180057901792053658247083601156391107442558266731399719719363187716398113609197495652017028627639877469320661110929540775797155059460306611640630647348998120296960962284743985595438141138005557196259414455059142303423297433712894412941308450967562579631019491193672412632324675458942307197691587632311703055369988126508058741162622676108332330713064834347540239605001994532607858552223059730104142804217117161010536976308577205510508497551321960180845732792604799908993875742986146436599855042921894001451599253507578996361735143169699918178488047949717891559071590255575493888239112708424401595681970464350125037014361759169353470796430335045224068531020001563308270358822986245268246748519551431371095465202866351543146627754221185387546637193019055537166568439924528741615412614149180025768786089276858742522395369693871011896077994328087114580814507368544910182174675498016278721493257224104968630612137395428378598391720616614609518266603959757705763575637379383364438390461406711760474392052723383845445248706362114184626463826729882533701991982763370914489256401971468658324925597983033779642210999807165549821667510476386768293196077324950710617819411479102162099420292456531896913547776361428240305310663585355751681343516971881845911219922875337514114452592661771539713590249986134190122961384231330685844757135586606252648882245710116435217548053657220626629634596724300209358548304343468969962902687741824499529560120165098418685130964304946836513183786548524003506776821680350608222478022415328485517958249083431980928777163840471590516077509191924900548041181588175293049579512517887845586573799016892550545371918403652070647448534647976604436715040802771206490090219120919283317030002359125845502638514920084391775574366230162229687345365679788466770680621133955548017033725897159234487505394179849784014828324191783514115008460919255545443446562251478869010759528268849219877481543797662626567858950028645654315000953190150149516246866014714317461853284965535710543553065953782697424201600293657850398917655599074541597683457770113336765825802510430159924625107796920850664500214954243568664221717641989783406231453201230867975129011685835652838836202662970884074624416902218117251885836618135249641947343291370001179488229044073399085383266859627462200368322768353910686124081948733232874178463049878985781901657014498258095445371624707189823058306693603720862368588374039267151346414425706420700997655105880655276331802298880984320848664092307369851774741507056642335023412334158382588702454603205553362656067462508070270817490528836319159119675201547112232767464794815415676292128438683508133270554885187299096707889889844893285508447177578912872074598017367445125683693222812291874202202279548100000286817626670603387696833460990549113156475611308173425889464555348251501286719733099248559421752351249624585038735237995479485591864604354244646749477606900814297954869847431328812502368765190587302304004227436055293632070090831371066396547226323803824907140403330440042395398452997541452339094924305886965846512090955765641766182445771852793635392614007398744434706125810328665380923749708387595072194136047087994803686160453557232753737171358325158412184914292399804783384637523995740791523110962341977829501412057118547968101603107224784619396392423488296033440685689994004478439985497904628845322647343089534662557017109130464917827969001126557822968708882520881414661586296865141158697565529349921351947964374684076602596183597744072526761434078528649685726004823342107732495076326755205478839483497848542567715677073508815942924649230146949362247913721165360865533825240384409693432429544027506482043982598822758560311539965597728329367658635221454736320470576916072452703407825219272927408397043743426948276073596149811645339966316880289096447404325333261297775975346392317085609689987321700355533358397637870254091388650530363666520701992326752387334311926677298216795814137775653716462181573720094852636645367716638602283784800000321901086564755297691223884735388194515949293644595981745418353572806190867625100286207990820379000383792095949678351282773306684611835606332636945639776988255945278315536253019211519594398858067347587549184736759686402917519522121830357518138134567073565321333675630897864436769007862808204583158124529968617850211381807490211990379582313570368825450744209727852999709008242257823143877802536043386754336093424250348320187948292880637242182073399321923702323533937774596442337670631774374758604086195244112217432606402185822460897704299359817029850488769637859009224045388719734169899588430856197944107379509253376550786611982064650231141092302371003695296480253603187404523353350373596674640498884634786974299154449913523874664773365914015334645578264313968073681473279918524015290814974330038176487230232985988333442457299321186927840112782553745020574182743648775075824013954537557859545725875996955237173261489883499764048530343069692866312790545136104659581226326970368043978644740784761804411755563510066699988692312345428699815412216772617020907112299473422224344414045439840776172735308594217477163957876752754940923944006903182498967193384967002322663882124112442587614451301315904746500228707012694108409719247047289037147528032366175272812484750569293879754240075002533104624469871661793212828993213685676562238810073736049079929791440967815639634794855280566778114795507537925797199312806095372180590835815364251166780447863805823118183533991297541757625937716218978152165988487691249708951725303907407810747072789529031101538305904066158813150351951912891654401210358055803835426587472896894178881030344354942630274749989742998090409047757996331709014994933446978817919267565474272414272923764230603388380231185136308066386522883608898731576958128419825406678363580299977107116542821991586322183670098138426026965595170495093576080065541337323746475098067287527610843985283890343942230009354653090470268508851563584990648203070518840992864694721088502366955445093756311827943495737778954829866005124375212991290324950524553335075467606696087377619725384055102760155366610674861208578814911098947629187068771290582164968981548655228562688495687355294093902255783843084952497012084330618276207180033778490286778370227794534924528620683774794446719772540198286702767704161242457392961900935705169024560047016852387143144375847889809700133037031023513188051521518936868563064676478194168968484718894052772747061417376894160274051080124180516596681946747001904640970386135824813904552254761722763122386626049745811874074772006222256652552970593640905925625064740522265109221286988311779587398390965399536726551168243868915431771690816098840608655000971423906771469521472976033830868065250504623748819012440640388069115845512865257347108374477842270088394158962098489484208151326922518583061153599092952018600319194326324623230105040549101302522652360933667677864386193942094583698930146145344001803262158001206694166156253975859721006054800766569105658629175355632221750528963267323737084254108304095921102228765279191997826110442942173991368205830129873227361354980006618673314902404503733328887068766092560290277540022451788845034939774878627215690626606449263478879378113911026925569077448557367071834002009817172758773235403194022743819433671657498051810414377095273068414915169445209441203122350116727751432739580744542609798202723018930066602477433887718969381143417345080176011541575071907045811463304668217935707601866391035310747661998263192988613399092599217347504946128158757796196687309269325930940243804052435212465117411757706521183084271827360118284025073673611244295404506902913256916910508161867888650855789949971337430596267308677824106265072182024230337891330036678104164479263302237691310408845305317365821645176377891390648519468653591372280245778609103652373892921895763815735474858675276142797226671752957264747382339560387349546670437281520177860060017001524610619050926229650917298067232182838386851190172289982084833642786663647850101316584310255655522837315720973914990142119746938027189637898025338391907519954706903291997925492173256898133401877221494108723495317880163298333098212419024867406239537342690660516293962917764534208911885549728632036399627316560266332637620808135113492157881424834059080728670649345088659641114724885669988396033537411179737606671466833191249603175697511339571977082309805506520960308457122399549977578797154270357299434193501683936914203143830388167729706562260000059143451074072380794946070609401730657743298887189493127332152421475562897219685699036240807904184805910193138140320826958677868546995428068916430879236299667145762887398676886415807374009760376240187418606228668765150962307435744698858290952851592055282311377150643083375066650560659961927063205790505925644295140794920111591513859600484784892457825585654760884630681973943960105220829187805588724181274561772004554660776524353339822247531861192814436887657740287313648074953082828087977640619049059999437555646435091235264810527639585916529146109761246389041117764529106083253872582824401619758435650685424046792062008621059862651799702890538193223939459025575981560638489343090182193643886622481258604637597888618819246575706981864731913516169247588236284119024361210953581982030093152293090000961901440484464897952473714890821819106761828928808374108051447260519768454619812754239451482591490455841934699992244289958473652823119748166829112671645569829216307636035302639114145743560712990910251118500188462066765149438903070072100864157193509537521035482971929313477630683467365652941759285255431764081662621401929337192425110981137008061732189599189194140498793041793168736520527196380223282978451669363520552955055586670431998033173083111108447285272262794478914106489030958628552749090305494272468129097353465782500002402184145296301824448915285257884242968349071444980688566525857901242507376142368092970398638685454948033789671875316936021549559855697476317054273045621559640152859739514953693921993209926565377896574787712025434638849328358643777099184275898224914741329998903475040321591791073414199170888938843205854416682237849691551450583799476139037431009862731803117256520614780459309141212425737629722252483927418544011890785291279598729523043658759441385924127599211461117802269662341294287839851911609533787828685163631579825353819601155186464075821078332872066146231784376352621501969742353335620855627849812260960625668537500566755415899542052372346989654975146793105660934326071569318510510553258841129876190583346589407851724722916635085179088913680796674929581045630685156624417250993921008245582502076803572316950476581665889571904359099209440958073936736844898392519932800908807768407969199820068915789708985603761134711511189111306100578023948301702337557212183041832457455474102215876075191396539063997103903325387882402399279543026768502693269268220486381024994529384870253828171258632265328183564102895623852827806578189551810139471057580616933404551870628385149808537608787658957343597259919643109672715581042244070908213178994806059953589314614988220379297295210590271098249286809215902215319826330899197622587092125171190013483382439681363151102341426894078440617386499039754126767109675184627563962341584747768547720612237044089417263674317030220922697968673351055248374545540459343907378120468992212152247932528290082948240229055104322928444375422580447492860384609072658266737241404040647085518781537465284009234648234195594904693560489363116371421455170654331465917311181830217293800989434680630794386844810166433741030912064256566129968120591230884988036837066566139919960561633042353832024918448974728110919498685088218528174091614654844117750448247294581778081129627323397006608760298340806973570797338845680187029743231715830683820875926703210600632706336266127151090587723737311244037496983251995973255817514005810509142243846456913157964407662214506084749585329565537448108839343949497298915925332267912452905374497906529164700456766507337937250988256980584657528423983921943734470783860229946089206833412932869895784185513100613787611045773780119287806049467831391085832525506982500941195156225316954772829466740915845174154070163617521163244767655241064794788158224016470921241636596692084281707680597654226418015488664873407541118374409598717892964606012470039219193346489863092825902522626425054487211419172120347597131949518836848799037607243853589769604371690073725651383745367416007505831463736622515168575832544524483369760848703330181607086657069060912072654125970377350964342725498086563055470982784943960451762462186013755791898280094048903101121657370735954133429175714092500218542588760010560248530779856068134723247563697064664334253384968355908634270267350395290825354513353012281002944189045884739058773930820812490550802846412286034290581626430236435861018046563643069533543874341941578803021776276397450993182841279204549293960303704240553712856492686758247481661158005425337311852498999668533813583896913168968025118998440273809662102824950732155395669577757352354052350429995264749150781516494961085880610474299847805317948556368750253621437519980665470873779087046665483955589382028054865271951346428953413751942566788308942590442391707557987255820491048241594944916061526671459157910766572843203261753890591009379526324192469511755405505491569657243357808658514165926477178974216445529965683379143347249530463739059914633803312621201777305012887876548876832719367918294162364407780099491699621910310428680360655055071935441434169763143976497954818917857554298767871889420340005809172010111337989770865741000694207448736200220053790360429697053351155963728235827129653419166735632926279812933027987982441729370728450557329987909989224559655582489272556330285472880068716476335135285560952820099540863578049805798713971447426160291720352101928400692687106237050894722050000360611640460743096899088063991546024150969833094352521172161116804162300800432002228732180402182038090277912359089940209486210358946595142846239642888688912493980905107209632856371966660839155618520573060676277553913423875315862481681762785988272602043466914137020124948699139538068545080195960368996029268199255797555947860278875717984917028142748667294011574021842964641525510602362743094040501294898329654683273673798030258782177267790208191379216083790128196785070091074642112815120326733388551550716118056992881817049415349087325824369240034601690889878286268481916846192245483748703800276104958569898419712465715600783458526552133022021733963103057086350696500763043701540639851482831250707474234061230400209789126844740000755386919848751186750396989123984369951324719763526419809104512961051593100843716681972154190412002672254909588683616908905385670789940642489000342706296425873555948367969808638027062319335334621111770977022707335940456202911382448476199951179493744882938991491604476541409294193837304971167861432120446810485435178972077955171971105590816311637177580312360463519683232933358387666563617966339137576669865258704939397375208489158489951794680068466718352590906356643966234090949061881714976431915412353931428038171686652272348525581050199387014714446032723450631520153723178434684264525421592453792133207238727485919554581704393602359398326352061329076485162597668280497463156880041766279851874318591809893846536800655483416354686277246238258040509495814783844407379556672918656705895205990489812224961669333317740027320739246073255651251651138797336304513899343688134862015246195376016874502822194149815046409878183618490261820575538909039041296485774913935031747342068271534141668454220445142069202637666960322504956042274558252458136332779071043871928839612809869666528921498224157095133361369952455968388026160925533263238830522132345217593441557661350324962160215545441740316154414618783667744754914677972036396045627064980423426079369367725705091915952075984945685258123603126050069218879385618238657963783446393187515070949792356816171286384378099577280911511906015942440639756114182160663968031025359906457854835411980024881732578164793869170735250354415415655333049206419227836958373934898690405730901872584886335766868804716659322421903862378355868303451761324030422979318472344630485470871535480855484130926861337192300684125874354507698363621492258856860797316578597393006322293290065241072177378929416986628848939518173995332149976289437156793214035417163190879628899430778676249209001606046820815545969744609765172329823588241356524927512587839274022272289112322866437862267979687169072326040644764875278502339037841017002667069143103362037742367477712406100270551272148628356512597120431868411695510119573030341594345060990125810645499187744784023372191641006056335345183840479150392134039940976319152051035253801810935736920638469852221788534459041627204890378920856183607895249177616986910325419519853652572314320086056564225038700449530952111794668281273548903784039091460800286763672162137584114671644085124786675669417454227097809349375901341433301687859667408855950246392389071643603411560240167167219657165691113940101028405312868365044346562020680989114676459484446499584326935090365521668900137954207574691386731079512227116845784569358651671436958869940887347903325154040405726001154641760509822667040471855388946552383124499102395497730842385634448421037840431097594183215919515322995534859429351910073415474782895935997063136198564479088024242697013018243145590740379482623648163211052324919510975442774139220672895316333350947621145890024550028718525200634603824342810922179250511888252976457171320084418914351864378755472280971937152036984424905526190553498656991519793051036967426903955763338940977104743028334087810909671759728322503522140576443852243612579221108926410156877083774154061377586401492821614219674543079138991712651514036316488315957350447026204874768684346411783407534172819153509723348002356146997183366187307756668093992323360442244695551575878119422995380460661839431848853471769966468372687595652307169579225429296290507590381654540044242042327984298304303207853287800744809398745194689395020322114572692573957755378106109782305636508033148389181487326939913224215537538408455559026465158935702043037202205132177780627317533907396057808792810953305894517446311316276451646326772613645575735495303268690139720684306541597340180533462049960912365615253554815152693532887638874079856658512911965603858628369545648071868196494680466543605186811162968789524190049136941798437942378717334337315255423695759604048994462410040883297112787340986673230243941240156649106399337092221108022632399511942550364013275832267737285595969061954095222248866209138102827658690706199985772288928126025360667551619490640818299011403939872192111348200075533174738330544429160237687516987914325362888264169688107946799890345649636829651649164465693997648205855522857866937472218275311790860690539685050694887507419644479285869241926429674862179117303298471344178109892334272925990692571271703861406688136442781875880295774696392717802779920872197455500756021260634674312356938910300027669155504232398024072352367197957067968026059717980017514414920671525253623016537126086607009534072808161197035104629348453352798761785953022060100132549896846840160888137598215716213067202172785357568371887798820913356742277996642659722141317237749503158338539142988247690746949194499223187956213726041468362994257205007680081358075729490777931131895679791255812006148262885509824391639769211460419307570939817845970817042050334160829759600801609413460398545481781308651473322576478186593701821746131956695864058725794645224863113971398096300329339920571059914658341432783278537387836157900354785231794318559348439675389271557379657412449009964101429236607722740215060126422371084567937802925271173664428630450765305048952634692291892622787147053281665820723581318129508412421506775033430775914724394798042770734581573364795272568740393926152437289121051386670204693724011185377679319464237506853022692986635403033812166088726114619874171200622421717490316015392627112903558548808620923953009041379532735540222756096297736390799179156489895911368514807972676284577560066507134990938885999645845006563055857189111970875509352258419663305859654286517913884635145825571030337893006721239731038000719800160287593199867889423516430039796778227203840491596275835033078537267867995299466056455926743500101026211997545291050104542010771742053402772772937816644810610522441439181352648553933263967988557236390863550369337288495157907970903854046941060651824392738335129809373177145997927666292520879214946561515453771226721607441314722517665150859742413051288063119922764893980964683400792311559259367415955038617154501837406030936334143889169959366324351521951902935802703238978076687855859192093086216948079699935610295746472441248195707700868161529502238480537666061139166027801702185116856855603204544119745785445549897813950341450705867366659166676990849259363744251735537241370741728399231175417111262349793863932121004997061526051204088378413066041966877949242246521299487368585693816293971844016914070917575524249258936154628540239543119970336331238907650924323730367136228865890405357217724789347171095903202214149186650356626462039039984460837441421734151738593467232329900045610327772653858748989794252200215548941338881444267135308296900304566315096509476673599032456614965830413866175151520668860548910926716968959647435754274592074218182751929518013987895388852722546010193781094993130761581611055769356431733377521809685519383728545032892616394041059594171418428949609311043432838023384346642875027908398431571113902401849732600567125587899833133843488117773936965766216277479595462721650355662569811133463469702605057180133827957895984725709971839535778385880097525960466538087082153763157678327010732369128029096233567260811263866138962843619839290713603638971655662405017498749438182412337162496949925056292438237710417648586324305607151842347591302589986662795461682127597560441304658202351146003353854513325610608089522429408644064846962447159346154753431159485538396441422605391026844224178560111156686053799013363156184162005223309692922781838352309428646376139502120751000561901749363491390150172898930371903755048744468593540881542268981084547686619503488571739579933237168145379413256878555006477496539626647638281212551019344894452731656865842753751434775193165306018365057166411855216108616204873655940536571571784230552713920510202719918222300624540210394933381680879258747123478806583600454555478400391022900621315167730421232669707085927160668187563834634582200604317702689167322627490786836927099967687387744041682569514280309940155868381906348038873525761769301597648245160757795559660288523145852469657169907384788583465905492137755561502538250653681954570499994384810854425889864109817728639789732688839816303145142865710996262883736568386614734145987221645441339764104095611787542062076185575022346575089108742601714195343836191911826736209557115413081684902634154212807846809805763924771522068842883399437529100770139023302878083648067554962926616712653318942756327586863301957793856369746942703707348539720122328048538449459578361858820926165938373611178945861282426526375065679504407787709279098476898364134480661586712374811211530721366568923300140110111502568248887222360835231607895021018506691374687545496974500940458563128103639032363717629383176931938075921642578645999762687537246308362924980107520991473372219352619414381201186846498673282185297762494496144721162757870592399484373162040431842182463336095520805647877899698158481911695483399432070987173405184842906219016061097057960932773092249665268070120054149286621013671213277361201219315772350582335741928136080247497491798601355217368292567593745370317929311143039027507974478212079630836759672166698016659706753786035592625447928959426912209638298635296099678188831031888105208251404144069020699332362227445258737903662665209331101054246492763804642194825737751244462364207437632002282822905650141624257328861660466474164301447094188576830283338368258547250841292111106858526828669030863804798768694872561676952317842322514686947789056882956706513047515014745727226776727946324321254641656965399572668427652816042888594162211858912183384744953894328992129255731271437522717751676116736862002960275484998812257021875825213457153230658569406280853120811086481943412780409833945443837565451852568596351827824557240731015428131091745693279673149361264904421044946459383897632968196139025810010020636732429918649740263080955060347698490839587259702774377940181868696326524495371369031525984841088370040635039132723862157914335094039542044081270607857447095690885839288924626075352364865614622146988758402560002451975919207794581034253491608831077661448351870250737071238995012170293811435461322187446057456317779243001862022616215408788239160143805311003596395461719533004183925420407130015256652824220107716539814804895430713079327859352176333601592671249900548722895956380686409765812688184542400964783196180006455528780982097757435200916326730912196871265115212310593561284558410650987553205416245247630570775933810282696032757694654052710990390668220215227929713582595393678150076472797580508205379276167534993108370343053709837616524105139818372898910097818638426562151994283670294195342542458114115781470774921514250986298389420430619937294104885796331816779252879158694042589077305911778017765642468347347970758653062022865624665326897080071089095085135143520805213536079542953721901847722785579605819847803474040812087339178902971556857977900231661124560438895356080219487781924629669188171962921206728950694585577276727411676603055500717949486273970541354947477899706713009869556465807103906395079360872700448456200791704261164299221104429193459448008320289154150199140764550051697455897918203556208274414562232470857656535221248070306537815785392154716686004136927409549413451823049070014568294030074039195516978872967901727179690816554860357523102538117647474086906105213180209493970878944808606912212892709986696847899909822496143034282945558134634367170409213253456381094129835029032130994412695931765579479249289542310154865831637693742022250869849757117232084699357166622300064951735660297802405711825972782553882610030142463901568257751424622923352350092601367227007334493644262483340733233095977459840983525446503593522748611304439111011889856695392283968395123257636606129579196259330464163731820902272641359544512968720874860753236660533079955641886323257982374252921379863205551166260606455470329449814179746935055267420481429498832274925549436079669726715609052688772423238843697936168237376532392171944676562329601485615757452481104440137943041182348470179545394220744862219211267441759332847824000662334404741256655248054654601693447304328977108766574311344828044370000706948828871324052180349675550178397388922466044807488954255838842918664296296976501003297922124024382373245500762066998383664504080647967398064093600331918996193613848067867483148474735077258077700036199033353220404112122914065893436752941724574589936801239754045466905128529711382851467800461337104210094820511307844745408189217850063621646553656403858525716154096858663384046057594635127386346539513151514363029833493731064757980019574128869694531103206355313134487490271028065606469076828863227338559264602715622751890718057718383291208995235859221815187235708266085869915983519305895804525313170669549332405057155129686503645036958261763024921956597267134393191107900195786187787674851251575446444216751598494492518059123197696890507368554361908859548362863043568851750231417145860967443327556789812443017742540288593955521424228289112272222635835745648463478447941452144667593442212960868726067556520043328907141423226593255659865508371324153698553474041554435123682328875914977782960546286171085138770767123654769616503180056028922747918304188759281250571492553851298871378611494946744098798202220838314278600565801009056325819932132482453646609913718819598392448403101869601007296409231715744433964643069374236452003914747303666580827974052926255597458252375998233926284119658821043926998077706470072728311642176146164328152529718280488037697126403818382307865384441699212422213969275719042001275905356754520823379754166145527309165771798104960434487064947837793514552754289399225778870560113773544820580685790595518165877829107210891582601659735830679517413538146107180412961926642554542606207263830431040406358906391801138001334567557863514184104061664549711642655023592025825629681947057488085552128845714018442826481620923722776760741908170279218939365482499116993454385380738349665066441625083399842601749818355922790875956403929962874806930422395966531644858910412012275228726411375549050433942185355653173621678995914956751634011570668790743579344184478236204767225601995524917159316129137270553152748808297010949219831123816158156695861646515344804712954545858174507263493982777553271194948270461490058444725992288713117967810776272151031337994996908822333495520660521127250966309221110730268111192306108786362489901567843403412204390550276891184614920583928049093791339638539315467977343059355819840454943132742612143428986907494913826333814849676652409327760640076300698249774267044733277759817020846581591342145628666960165456179769700061956795938612344684927845009603026669524271252763366091010625203132761908035260652217079992197944059459619307583698028280646680121767211577310009821260404252537492778683410452734206917558109476385789337402406785064462871384971221591974030236871807180450414035825668728225581823040179550595161805639492317571855292659914923477358726346567766767218307300421243753737966718693907126571489656111861782530164363039663483216497967898512684698998654233221920534962384165726380187365533418469564376340212626752076600200427354598081591585755603861413157964954778222862785959152679154667914003217454240204593726733661908340266644502287761051747472422521906088077353899509030297664324556520122379655458388782153400945761204233895015419865164392869390019791790724406355408511471628197107033505560868180948002674111303955781766388401085198589914081127524882672400156469441338316392326964396292022822895703039820630134199074534006761020097840273210102108591621521035340424788518912633422363622224230099785175346357421066237882724675015533024504913198303674201425647425758935562642572480045012548547632495232542106336558017608524099165003134776939093515764021334216638968508837091216851102110346967593813430561591314330665308125762977388120395294633802363261490795491120374779999724125727684236079219870342824878543296506713777032775209402937338150666082232874271060531067578490836994784890165088046826190015540722624559212143545413157494654413519590756275736102660584062940958981758425439718414802362528415731977037756902562658071166242455706434553293825122583233724775763816837134193208248485464517375347303955385569537618063698741397201455218268832250461203368381066872732396528253323411652945416878277824660962429218810899698462871779373675625538028988056836907921158179248741535269854380956596821402123965862401150902351245601623154872913189891257902353552178621694104237331888158752971962353048620657007259862151136730932530973223147933412034144156036732759772325903134889824950982819297643110477412501188674731466977270888441094119801195998057053465754598436809373806496800892576214635080043857681467488798952295173861134926177215217900519071876745244989388976891394236685253468063627808550986155571953672543753317827670120005645486287548989541864307141863896071283064233087642788925210285705425854980056458410142911688502748959496572135801790511841386093046244065169461066545875549272672591610748821720647830105670224155380141073149687878764394802246292568121873177359863403882291131712380664955168711329027289218655470241490340058696887277616307647868682403169587416868530926823734675241884355745975373743962577360156757155341976401517847167773500944398705418675662115998155381456553893092324410822537118353585281433364846630992890632822124072319048522293122724120605146644710667218910093220379242062048347910654099956087264088434819530167730527088297589633896225323753415874648755252081390887413500336210071829615012639336892784278392330820857446243662436112199376117536615620044356823071458484448563871887271737130953116567310977738553106594299261610825812647178697883706669852835175072837017033437142457777525307526314464157985149498115780716269312694524729946121378716951244418941986211025698998619354221117978119352539114619767932250729749310413359656468206934183271336203177180902346328190397674456532192657499063408804274888535711323635683494448296191964381344084115920142943329500848298919390042777929700974387418003654317139289606988419987395564550068356419762627900050154953358511460642057894868030852022174035782719372028631647104690713262841435174255049950375266936611625262402417429574551785760597730148437631784750659042216482807027796039890746802135963696626583936530044755827382394296282445605421070107279193911842415346210319374239010151204420368909616481905537799313889507424993355461875636567028668274444567379121113953811164857296231446645510870780098533185050994688315441503847549675567624155291642025673194770570189472914094822911326052936568306061116656679427117746717925059172262675703215899475969298150904673441090542710049558503279532049284245328961009721505022505561773776169231972923174314979240878398941470885562267171159527221363674690984911953449864924796191203665716669235235059384978909572347771692655465568649676470226580247590066296640552831658940201177072739907617164747035083135946010118985996832924638276576311396147584050751689077494944162149350345233717389091829698185553453123022625842657573721684347288337144574590859202277019426243734293822700296304984628154647813230852932859799652580815078864811864847318270733701360264614576197050241144397503932391338601659575892211019760763514776561642590179702459451496405043777492560729839965909648591494271873126001339251799000272870905288738275982376107215492750500193710270865120015509163261791121373016669264557693407745505877309013539709797462414878914708683725088379158830677055118102451537922941698502630871823203186308998531633103682845814770142901816886525630353260692943539267798271083567532007837912799042906065299903616829019297187560680294388509268745725681782539404337861519118108607272789266336907144202926010754830117690392509222718792133568915217034728844004449044898029481482873573405343183916590810672754885269063160143422068630116916214820528330897533754857574472803040657337234658466707550507363587147122578660084475239903974728398224473071482929912150001590148193493132136902888427581761287111650703757155410228415112312994270997042275386767506246960707839067845320520692274715806562751600739883597562921889135776424403284644782075858884142503428348949359272091938555906009745751558706085978968806510727869481637647050097710874176873978614903448894348332872670782995105099309082166620744576099485931302602167655410980519620672303071371901587587180134546437941376503752697038062395201590139218560466783986636396442416816592512802081887658763390220878986019089484837019439846915595776171851564707733858578108178166784698622381910058508077793848771017243612247823882759171081986003955259686309657723757812165799008650330979544037099905452328528510417089797962658747029546962310263062448128046538511140666033548435370997915392577481169248621692415758376805697074774094137861589268628891447365994068454521713848338865553963293959670730910418270174721935068435901216963660166130482211352287283520283151855352962368889665161451006159185409028191453489638976187114147650709380392012708954524903324322109119685056536892090190146190811178259527056985505471382132960944750641713129548284782225090006032931025929995284811945785954815543254029694103018254608105515566675925421019894893952449962302458266716540146326888021055428856517965868404814782720977208258680973213790868686195029647341600480452285860202907543910321414320343645727432783169262003857931966212863461447909486838179780155661665651948218754483962240857773793851722780135494306485599243005778977962020153454205519513996623556963475706505987271278984849032169167612195909938848503234969927683681580655285460283102781531328016198733482049785903579042774362584339217055957021266930680788422335207500970807763061212610115806266601178544472101098061513186419327127553688184369293012806718113225459413908589207567565654336058797965293635583346771088610802918352447583068691937696835068230900720129618861962014114739103403495411378004594726598633392443573892470048608633075787204502592584703873695544743246342602708524727925522201466683810814610418368112291533742959413319160016987672801606681884416774283276607306753232426239032264899312030342679095432284299868228066235086849647944731516628197984413198763247638548746835866288010134187099450382158288849068342986476496630485321641493244886036070703543220297836863062257839535009122153568884953998877354375780603116168975030598014323777073903572271111745294249195587601263265099023602901361233235790850914277651020635252470228594481438512771351933812118155760021946205574708369451738467797174255258249566351396840866213074602158752219604966873632540701343763184738376618189440497886681966177327895424986994669805678718801514563461178283723172525085315177086757859073086139028003984620321097542717990727430138853420996009284045101594209808075416781434691413177242611468232984019341797145938284435963451350958804530570586118434673491377438603690197339469253497811806032317655235238334030732701792573418673802405590805786281229156847199157679018654637325859291532004169031065323662126992969052057387434871994299091808855772758506399653666384405114752698505495487905609421274740179846427730185373822548251992191438122749353156168982337319070041763236233299485077210626950494836925419540033876495321626151661061640153397526777538139568442537283482827088550022475392115402717905644275495970790479404735212859545675602080163718579572381316375046676618536179308086652394231969536925974011048975067295295982029733417811882074359566889820214277180219336860252210849054461661415632905593092335247804350630029419239659317321439133846509462533208140661681963039409006578750694203011995326448506614289277829090351048547330174918545505118794355585738087528563081423897437264093646321369351609969704405663207181491282217938992580656110558768364503019136779520502580329758605675045981218719485396208571621282512508026240722819229053595214676617530473263427683192970628732899753825900730899814550301472134916459090812703013494615449935954338764518927520549625897486275336243849666551657109867126697740040955021692407715663249423756856542741496511474791894853071827975451349647606884545228762686048851268793575002742638731163800422803563304598889132562649081173975276789997471209942261534640295688703553704238740964169355280467057578794361963204052778362759916995470862207610199997135778204154977621793219810750173209864318232018673273656050211361002403293069456711557708217116205646394183755885714136822573414040160334018810578321363727433765851315384031837992695114879592895017927695205017142602980451228488289681833827413166167467914946499152625032424281516761889408846879799126843727820907788486948540525477268170452766623649119160834675866747425525089424016293406619087639203996391424778475726514319732171808754323142310200625371625515070189612405767368552744492494524672158917478211522196655104434210632463352882929589559928049919194909670746696933914432899262369480424823970500894733147046601296950303130795926930715478796567912972827761743039660936914202391739063069539385459165519798471352287568232338084198101738558000813649215310532717929028064864737804555302837371434141704192881076886707134332679343808281364410281246133974918051156693896017973473222136672412615029086553901832478636366755227783793919606401439691842973840556661097871043013033387348776248087121494759776581145942317222948231289849650909661115716954573510256185867013740258436589568416386072049106221774076571539848066954858465742650704105574411760790030430490301687891819892152751322411005025868001234974038893514487365954580860534598381554556232854927821258827702649922077149972532555756907654997338606462017890061577401166637088684878406773735156945191423427176562416035822750800659351568155967388422098049417117507269798019824250642969162283972111984534371760357293656547881384122108996288506371023283158482397714098470380986784980620435589553822519856600357398070401113943679627429801711820694066412902380873747440087996747384579401656361642670368623947112451398824709467430389043405234238371804925587279266154336462231906895056620561469309339924365730781178885258393637497687650080638985015275113418417253897896106096269327614689256947439281467540437898038445646791121292794226409708634985983081568278376143652947445534899782249008132949886482080677558693293771522228360418459171685912683116369907187067668482841133063489556819403421690419847131339717425664421654188513725732041277306291702092779802448810560125160370771812198897491941188483227619973531527834495076728613605795219602374229648340279005167964740989124725845537870678585421117331910871955492298771390599651961820002925447730172081070264518029781153956946910638257311459138919257130723930910159783244064227938343759495084735073593345627410729423347579730421481910544798036471735655115535684868220244807094333747403144619615516992654593910547821450424409629760115284101660052872147475095813622956516693139939691674196009937123329211783917172140475693538663965344694396423595151412512622940924668542354571280472175103310948830719593999071965318808944047963211264127161599700130905535489620536436144705327729141157608314873802426550356441902531428231799758280359318936156496282909595852241775020713373337446747002116334660217354465340749929569970058111509488717632694148820788438088629969423503878068061154325135288542335491677313780782221377189924701052449404544847313601635890168115980084431636704534459961649497855021169444083209737522503410749204751192320674588208185867952039061285287253822945974315723432204684133009195579298012496995573149331494095071449849583445133699949834957684782330077429218729690864369181891722376812997757028992638079240549369525903294366253693815572667190261899766466362635420250249319385563864170262216384727898094895804465952433736752890626303930750790933741640910308318342970322319962220439857580811380670153183141967558390395637587681502332974619540353880763226096333874494024137450133833885554850983343941491782857100591040998275719721914571834947656022711186378420684291751619959298919549363331348921123948779427180203190859416624237085515532255470566751179289820064906147433818387585511953088558200893500268273972582002022249987292004732642636826708265360306304568752295524097726376490033102112170552812693206696155594288851199796422150742884781789581774729676738229884739767993419473720912810858217310902805077481326712682716315171796244671780703694551991491152191745411162898636356020476627039753496913696180652428151536329553466123711518197256112284864577107153535262462510983408593299239074297001620989343329080207430093223278982873859368791230064868351700680744529791986859262560450573236263597207703580745313375590788156687900961513794131122294463977075878938276227625760477873105484294913162924682090721567502625068703832270620734764740610961809939900559608668015668858896471631597495940078983897384745554678063136258911662539691701230882724723115047488438692064860444160655963274774573903875571960888873974941764436096248347739982041193109915953129865913022572230137882493015260308110689997309306192389394651883393188299736854623022182392264427474177450880962113074224536875247308379986133765194102260018457571648329849878204310019968900317342407301086587652096569345371992120538857033912590851294877706957445635604750306680748941090833703258197852533767818930968221742147519234588250118508333277262346628953290208872208648277518491442349809802229260739287666104756901306977254164553224255102367043177536332434610729486147535208781329126713560201489128858314920683840822297273013509411437842863331878956449669009215271406667145173023545596988673900185467159511548751989763475258422964994738747471271203579655201368916867060774307649330808188825597300041427242062920977305358955932294125339615414006637999848054821773897204833166574883465263056551380937681578567263967402497781149778601773302237140426041300298292647078118853871652412903419154972010334936547830490571738189546487923533725158254592480309092535295569259935827900911487563974588564736681948459853874508987637870153347044994508637199644273469242080151562856084919866295927831378352246309070552716821666992754779534234477091913279638068959498488386230150809612454866686977622913546598831295146839416617633753451900288103643893323185937845398140772655814879684698680375626437439941306542147987263934041545880772741591744504129463275165312625919659588847936839446028634492195639989693634714151759544824434134318608831909673674787505701326201831132955355058366670171295869628772513511373845824733710273054632133787534952475812005332448415436420448704325587769285031727967264613736672336793889153968178872663939823758736011542805262749545760966814786863274150398770122745531221346896498643072266733966560900559982607195568129465124405302723918890517193527916675223861187278661061225205608634164078634615669476953226138820840792353319190096872751388715377867309894643919279406239049127015097481390686865099291898648341089645615193925797862135685499563026661020009070524052690684186864523903425299326820244855581232518965945578056871814717016787984703715581191581055983702898761260805938169835530874751491262943641157181679093573206966656647587903570011383535564027385498779024512498131282711885888975380476168022375997151554325845107874711694864975197986281236501310467122017567322882345263642942861526976481134153460345401914867153675701775045046337967194294429047598570393368502664839758050533744351613973447730592408390014842668110566799034202933020126297628380838501944555307243686210639543835247342445064798941643387831930223889685798597569962451358473563195509288028231670225584034591459392876073170611543564578505669663412756669760041713647165454740946990816305516068415681267378804773989580343012600536012973823248568852038107314092500126592239364974256130132089740212549995634235606638744244909518601949707857917636443313826183164454127067577382586374408587684708812404968987483079533483462515680366717885080926640076123555564852684332228759403976940071421668813509932923744711926923065463869806171582713430990479740876012253449899923670088525136124858731817620624893981815851177991170751095678571713757700393813191743333030079749089987337941438181502985739095225615202969637457273635096855111025828269706041910014039449971838620818469439259410817703693165851429862018640597718931967542612794080838582418112122425229836391652712489489157917813491766686528841916774223073491110802176472866646240864064011795838770564669408837707532428523340262834800320447881224885006256575535277113799743677079984854439096611989823489329708631449544603262761384386569195749665275754871868263823009976692100627619063003258635663603082054184168913171768294012373740117716794615000393324051268525900184286755510350155297772940660458356306352912746972929972245264567380373529216565921140775662247301697589869084545975922558554121707485181764444843632011247905995173703228105628530392939590186619506098685219056662430751392709908027314895103027567494337411462621224101663910316468258540254562479417119304557922928417946523120201362945374989961169930783983470807890037361971225885480785717206086413609658077063273721789517742285637526741943034628068998719811191252572485500762580389002065620291009494685526838995801718983848015362065070377430861204487463982048867127234820573098079686381572210364126624812427495060264052664583499807385164487959046804945727908368800000544989931369089975260756679910069416387440938884475848216166383012109888244173817484496739316681957662413429518815433480363802140025038300201228594331148031432802591773260490142642813526737318526707505020735228399975148430871345361062395240453786623689142349938904038604290418944571388794240058440832684701632296289088402541504763107972093840238303416704676971785267041409742646832545873839693834111590073929265027630865857829944767660863084315969508337647775953884723026919925984330045560309979233035341357204625592721647042471125206017413115162691833557171179183578278575065388015838438559268262892137477424836662264267241230402127709225822181055907852217015822140475188602641491021698453950217919615090510655443933130975052793653711521892529567627160672340828842804041483052803189610379952355959254348327864418032837321393667210276047057158672549185139910759143309906478198585760109752560509138642219132123015515771267026643638710589493668815165324108441871333042684620176297756549695841337542295307120685576381238568247278953150676623330595240464904100779043887323359455057120909182715472690679130953748505191784890967625940626930954273354733742837586053182210133895705079277169509527347575864038596322837082939558455253268554618854710246170152152076051260767327847264735948596840456754810036261050288261937205421495333758359682226242044318735057678395743291873264349140753354417795923735799105059306872328675198108100339847946588111257532759744029316905650557868160570014175749918369192280011954059316473513772461808089573727088618632481457404338569503419141394025714605744107344583122724516684007626914038442121098552991310502292837530998221908762371428532270417880179780588353166855628148170926171599605563531067750887944782996896255312663267444471014477592977978414522768024493778796386221204081838075676878850998281177598608030571266362681147239295790715656924713843576363421700544945865780496019521028453380377634224837595251428616033098214319615109631641447563496414863563454222000124162661011738752510274856110544275277746497848722428136668703830849531009995106106450246849169943275566163433648450751871614486738867546081247561733370848552965148468997073897157735024319790197427922405205549005733635547384267215102618883098796961901018165849622450321571724540697846991526695778936968730832427833360189698216179188453501692483895817579668624406058431738024536516660248482806986682386241156492335599876331910553043912010059793547073000648397732715768145266289252635773721963337728191820368505886807609600971055670936286923999766566553084019359125471729004711372111360640710902658728400901789901694637147556456911098871601197160380713299517826909466147094838785357246708043590088423062113510864904631341006566730219447659778784175281876371342846021610458386711718282489534079932009426761643687663845031649446415514061582894432818082166353796072139450375026406245827525482125973293757589201336003866402631089759581751456164083687114027992327222569533618147683199220862567444129064420117437005593056943875993370462551047719154984376950165227325261715523103360627856625742280533903465978877871317402547602848000000152711689239659734247995549028866555050291971399155234510432314037950067850618130248248082532474292913760846843227779124849957155682204328320757463108011648715610690208996078138670865616489810173060945833458897753426313586815152026079712676623951671946419455451320095266170797042739798091153395917379895473975557244272576541713197126370944928035736238582602023196278089709731696842698619583184542587170279285653411676149647627938245176373677168170064214386274918487055622731910552177951189989573398736128747939913799326901400462140178665650959226135112582584560785760495795528140111241345590000281154838081689385667828646214926502738789363478668748155915697742664983893351876266969888919140646521566842791727343189489561712733712361715835739971707789374899939976991817908013399471527356880315953569601938952170920825342775867440135699117830683020860169411621142328642025823239641552811924110936227306692400433118154036836536560986733418008689419033195516388099515418133452988304848106784502360856389501865248774988032235029328599638896079356796937737422368962114304143043470910765270116047499080287185035132956548583115977708205860999484884394013384116112830014846803939817792901933776804634148715538279203652639846775694130017574644742619199112276711697011289383609604248270446888669917080716789098301222014150640391238430635542373332170093159251184504843720259290759371676907221879553305318544496851364602648635857913152721952408220151461851602796088885867578370767599163168629019915184260742920506286269852890757955742491361842168399915651236139874918021293171625622580797270539576274327880749172779566124753304436498478471458285924751529237630175872138152730435796778944033509203651005959673136216476927436655895514132751514368395108037443586944023746678071583592329455185369128566010233965572941809652397134449732475287324776704829934809113109789985327769255642014232264078914270937875430982517931242456178709880727118086833099450569585855154271147511523141865932384565090818348289077595384922274840477791742517840455718569846605933562798060421496137765276719840600910323812005919403593285650292955316229326831576586705219282483841275826342808136975588641897746267604515506374847097884003824769450868700015818833769319307073374962526682913843208764640647067899616551401594540408997061315800476756496110402011784019326832378121926296000528488856855662955504359896958896512627893061206626331641418862577503243976602795214058323921938717523673574665006545858224495872326643185640194612459748566470593225868648778384676967897573425778529105992636889717610320980066027647199063986500243595624996558907823663512608759219345311119375467961449462989277691881229822274100155068174555418099963168595477236413786826534666282553529819370316949778512561808710467626961117048227835175050532343226792422805650123770501117952201201772672790764014351211193883506501474092311002950570194992400052109996337435065243640560487940028600256459301193067377141265055889673351413410720564378101709439412817442295652952707526797473106699507582544134198251211827941133894770513296706007494043502465225335705107230276639029746132531250551022178353899208883078373285018743360264375426600916532759742859460261625362347289353018502789221547140125346164924726057882005208064172395896594503796503124661798895248074497324935125131797672470574357283248097577155212697114059111492931095892608892943738998979591902810736622013227017950241583902283593483589618622712021932658671323790065416024574011866687407842104195317590025883011845901883851577708971897586052664645844094267882452450405505512514659850359223611685491253997332744352670140115943670115595952415183895672493027509002936082550048673385601047784661070823894980522311996874848285239177286864250873108635873945247337877225005454630513528941592840369499631492421968159519373686977685703782021496232033993299976142398789108380716211224259303256935809279770228743617709013492441583103232060595719520346019602985489453053876259694973385495440243582349586229126538672422696563785871729996901400724922917807637596104110479256673016784106566164217674137464735511338975599946979872531773408489107353389478775486672909190887623097904393459956493606747156652837351681115015168503523946850035611405411401950949870683609245512720925085207088215936033241973607765353616427202289287801849004674234303862891638056183348409649388851769895747570390251119621936407120798318466553147009090450275622465748115997332723038489669148105951027796186906318288856814911019065161412415020473282664522752899395068114433097367693535120649314637128830879940089874227606400756712416688454163438084816272357310824451579362602599574510748903530161501716217376626749280563974490055584136117000463642732132036549422988697881561036856092012383303430492370958186373900943826993721499691979692848229729477339632887218343150970606182763347517520697914607793652172263931632610240889911989384206333222871243680234187988042351485465712021082969322951141552538731203871603636074660290790589139455907282234342518219489759117731793720716847679574546933350793697329833862689528525860889157280291643271068903824298795156725647852492617530797882837567390092711717891425881612007454776780955533242034768475366507712872566264577881481370686685486044545938781927926818848961512399249393244799263440024470928751593268627595846024023346099381006423536850654857741958433572773925857198687250165175988542265667042341313724251259260704680023368306287050488149350246835534407132150468062543304728537617393282474622622666962567094657449045903428481149374698427973298667162590921974960230013348617928491194122812041354972895822149200467763367601481554071787805476189020524061615901947538364792537071200517407148960922417661701529206820538138459057088925960630327499489956136577988020487836981565988150512073007732391155177394283223826641568681157553648276674392440271850852118981767992920025006351097146039412572393114717916080454023796566264842253225266959821316815326436291842110459279237404920130626082899253519547512583347438959961555507751089167673929105040491238617880726886421318632964421917790518202409986885109258334808494457429928550562177208416181441268293074055685593573441791049153129355951971762316745513813764530366439812431904100813326642700327476216706045470016057801370086344065851910646073841309362930236600597124270710330589634426829611218677754964892745828261132977271547424753658628176555919846485071059842790434553363566546041323412875969197896401726828559056416650081213404746312647712680647163506217955670773378388736191620282778807485337641615931241045893005973592661600569820555306706044065752018326230739580833672751980378384207376658370005122660296156142024834075756566654954210339282718084719009851700512546637993842376318895730635508877009847212242940812384917495426678571954762664696428230013109521335961536438506844776419186440049658562989992343914957486017410029778936664687187533452211498916206821455398707723489223643867196278634385369967923831840386603690795657684299172360252353427491030870689168825741158606201830523503153358733918393784805574726649212140475666169517216889543768964684434464916474696845252852191693586069994422763442918442868685284916766231492636651416319459056118939420650089769363347810080063088037629681065383263839991179384191902887486334859754043377052502664027472837036368847868012947185319780974271776213099554708897133159449977972021920598199158291169771970556710668336958142889094338558806646696773142442013022220453241643119831071272774432891873278286757983523106457097004905035524192524926057181149976295365586897379374763015709079410337377326133215574873193404539424264219194955536088297080207334109046164483573393705676761654677912971328379264332102452208103733970246465354613706632615141355523016118822581560831530179234190159905381531060744182390250910326727663832629261186241901732177897770071941672751696219560359241422201187975431101092048915961005870209860769532360386181508007403369897993223681388162553912167382556649821721283146421982295928184564514117132214920787203164257669701058079660925301817954898622313727604850287497035207222866739684881747328563192987484330821073074701394498049634198669490429146271866128269804253218590373700653657713573162704139742813508793639722364756205352156142727837706668334650842205047257752657297115303513171684715935203750666868085521596504882509797840952642129856076362126698000893171189413332981655746579423138092097759855073774285581312037311863662791168303216724655661501469996539148227820893583014776286220639991965264905302345606304517708361078746271120341054465577963274436993962850269961500238288877779336298312820639474119636264455482259585322982169897676055050604475085878715443277068001655406082417121118971546475351077288141619723271436939866482124290761612222280597897118001312100468532200604490449840800655326222391589954346470414196284246424021899160942177613144132597935360873330148653571969672945290275618801374615176785821315755699079072527960771878613232710273489693713914598765949641080257938849409614918027536451471691863540366611450972966743682671933853818465980169771416851560288405400160941206053307970130521318298833395264324407598529858467719619574152118114608058047355853410780599877094967888581881409948015079174867996959457986303212476261701720287271098316204858220727970407803589326892449348255899908971506648065240473326604531658912636623587032454401163268336277829749690456242304187416012070462582921796742762527662906461840974882434380928921109140804700955295380514386804463838804427501840235064930646700646728274858889995159672924453423058134828732833353403968508514642645055558314485886649097885772574239062291910597687021185163592507089207372944081502050357710607454772276933153634585808725263419513575891215463123978943796639802004510268902698534091046487742306841487880010595233259437263672217193188434889647568539437694290694119087534218579186252032108847646931754846883329008454709367386342479046804563671586423777301706830419811966320112510819855038702271127277127091547897369903998538318287875933231738183931419229294916719547742269177907342492971433532256580756818307070610755236666514631141055402504290023223298752354459350662736499798273691667863064136497322020091116627566981597849329832644866088772780468792945862780170432265973911828414196979121344557822727977231091111083654165228230787890827042027375848927869508897511806354333469920583099829368778899907921181611039267459042362515078943947705546567769610895083339452001843304275461258294189955608641919936717942511410623332284957661235481106915284083423782061136180559375541906307883771602124798510583894578215747915136425894252643186372237564456202177013594255010998940477091464576168917443305857007914786427738882950807985416322833367607875316043375373810506871985289441287318332142573194805191914741192626517995854392968030237247774835319916049746900389359670303720077854326923708361807212990755167553270843421958615555321785252184653232535730342730861854808220666378167983168100323249810102579026126397976395404342579145982361240970501863814618543097747649761126986718658839178947094653751647169819064793449568706967437489213386031460656661914788784417126458018741422580614187555574167344905080017935507303703381663208046413535271789478215357478436443323691692171032841600312120426039882651647979541644481672828172513230790242475555678567622955043609694497493291789510859238513437025097429559241346947608074338701005026130601079797157145070777646824286239726934723862088370495621931119846501098027538337677269193335772973006552006317081186332984408744305366646111952868168641136893649458414395819618702814924674742998368675251334879751273554257084562658586514608799642835743429528758948616675386663334394797153481494213303847153552107631997548461535363669540166973095822131376834069792060705774396574327277519504395704405931605111375089525829482063767727742259119083430489216805697554207064749263905389048663482162778707075997547206205831826036840539712262383013822753113460912063667675045393799132144257141704202165890140397603901504286942393946899508492576148392942066133887084481070827912181393283909694950011392893380217769269483485819027834133987704812752075811510458298903871249098409171278892502900205618881889967586876993703361797575141451316374738234503094697526264298883260787486615623972384481839235546322090884968776866092335369988802517609127127586024871877848930800722086489460560333049896286112805889036990564770508420666308727071635615442132281429862517104591306589850862763155691077013400152742590902364945081563803380858538574277433161909342195720245720440253847416246434903852504253144603950745636259082056665534354609189960836077698467049653401138587595084864874171120977468703422703914297193873387019844691109760942906335692508273300639296374187929044311565706000678922346489063162363076468536784068116443506923240644305555891086165995628386549131632670486998179897133467221668738269188301595589487704004885632019831920065275791744552698437675763520495324743471263896964224627071095372257238285697598929173773728417269522645088650068304184400590278245233801596857499224968391501414183345607292467998700178311164298875253271925950278233779374815941485856560225116359640847610253699579572315776855028950189173974384558166834459459958110492021305455203757373419163302560895033462598146240278677045077441011246188594801446293658323710255445132285108412879027157736527116059421105952333660444826463033913585551707989156553756580642295860301940405833759068259412187483806638776296759228648794682161875144559242347715157681348800210392638566583969699609711398674868587144626871605855099525786980751403643429648734409221630333594685139995507754519833267153576216299083515153879882201017599213333512594401424807815725160084782618589777688453615274098914917911398157656904728940718544039986342746569200566620354320627288609224894031011151009113942617157000387471428375814037679531821563622101203903051900846904925660984548427007473061141584710507322953319332100109436154103571224516794074451319470304658571294272032082783496576336779672680788074386683631974971063328004820781571570877679545410484868539164363910384582715956859519326206202016940895814461198340737611530389863444067796260377705894481750075434251803659514254816774616120775784005620454961259480345849107085844441922008591494865755157668758463650687376725500028590288193705958202240477113813285970060952644334575811881778909830180458728744977939223290499783770715756356381119923894830540065875581635325879037042214599167250886024819708287402207884837987714708112688057113383591645040036628231668962825405786526454811352660022621951137350564370291158629657332141392534939126692495168154067773702852174788274327583359697925741556090088093299126978476195946812048927250094603663362509500040539551624224950538137938837824950355591591022628756336281775676586731422208328026365773855189867241488071085525075957142573079502813951747818797268132957512109697913982119263634304095873255757766918028616711113215020946160088505762255554697797071177115110676130528093881271841458180922443257742273308645116001991016777681333569989670264959943329045651238705302762218788847853347223674936138462266288579352732718191389207592722936380375323294540051030573929517670966414577043926454634180059624327153558569635363863322291000095409522657136090520748792721104814144474334941111779361067882639393455142122232266243927016005149959518854652640318022523356003960880269298214663071685278435260110030270757363531143972762939401857472847681700315511658666781390045297629231525683539112568852931189359160050930479947893139239834861074531862472464004342168573648751063805899618432815291315396921975935631592605373899106794569341762226711903821659397984945132509316564509667110728977409395318550472309479467663750024913712560533314192976689112035817475979532157279804551948545142309735310156866165274365662360248789350196624257324195480128388430372158614362365893891077097034978983760628080755165915687446327874761767762721987008982500033096318939046240419580041839092161701513735358498868336116948015134747308511665336449346473355923394198313129123829100113245840356653928489441557740942259589557003342300066571189176858578696486619659116493948571589895260635374249176305732496527393616680606419892696300812110984463989183893229488621592823899890755293283817737939489290556030337906835438895254264798870937743366246770165672835505209398645478522257491004843584239918732083612308035765211376699593126014360252684904787505587730239196348756475854303079577233248706670179510339727221193185648173839220934903423157917022177356770352300566226807405910326024730585723226877708541118005767708590392283497375126231034703173526314978303219901469643904515896524987713435053565999382019553192576126449755353215216974716323999253627261746747761672514840527397868200835602623610116741902643276346774441565485251710839620224062361351239941465665275171829665998488162664106275081382450135974126698108075037706527451977836492286208806808087393518510018186205790351530830802572793126201747694391998628567179732901530784623384695595568807898201337785062298277128998223426001051436822846820726926114503270288607053085200689040412557410938535510151199957697740654059662371159184266737485658379937733213550284073416350634598813652781254827243771774861631665572852631677061550856737738576538768184979137528061668797259602847681702904371645095233987010542175916240483851654703379343222826100697792257813864674940078771030592657183826882298541939350784645043342794350816239053871737608700955727045982519703865943914103170702511081328341797147702700085897001630602747729127392925612531455626574893786215871408017820077051565453179303990383541081180078667177075307953435706552564096843142895801256571030293642819742747820085185748255337107101628956407129534716454943852693752870745427166727311020774674320375804876232852749790631393918842956007046806461936071881337459107958848437079448764465001550874506319728770001745499702519474345154953403679347408670939358849811720017385687243074234764303143190919355936621849833915689932212208691804296406577213071219192190859440026694181610211877297819883024954437563515019163491357589438538568035845596327469225949638862420645295372659331822072243813489425478186938028748842792694809195441945156822197376464920679213917486351233894677444712041923560457201503394621396752464937276654454785046493119422867225614691773455695514998349449151919065086292145923280175681893230635110688523313178724453372493177103778128178914395695240183758068228095808216452823939762966568844713207638923147244907654583302022157301476601206275900034902574947576893408034694320450863294806517580154743770226147894046588126602032720001904280510640383846984699427148423761037981528805421451491126529070202787570501913283639372588586640637395868016993470977930656979987379777792179014261878690919868966058470210631925021512230902705048547177687927937753112237860135376018999607117817538738709504230274969914969130830733197174036777075472827202770874236670931007807057857313141825601981077994674364442875143899000373788665404317699814465852713183631215485998319909328657863481189667398818383053379701731351977369708041129248130417929733287862334383898167336784920308012934297726545671323534188505813638553194257111634691704389048381050503766794480660702460338772555254223467027934781596821674865551956648202267425194048672197304368962888182629428035698399837830155881445666415515098806608283113877725046720369546399081781633060780427673165537335231007233008377178580949241814162317030364412686539246251307516441772010138999228990592713931833242491603673185781615616338564503073877077606761533582372269764254284488964743679769498932800506498171656361032830373244417611032848540567543774273165264432043330186849869765394821628663428575910671562018744104636629853992648471240466679964502287150496708273237070461583722222274446261776470781798609487799833605200504417295420243917324318407805270667814848223748140978876288979514802748360404020776311382474524718536456089748750930875171317741652353664079934489722675630118030888796946375200653807134754170783943895414502993412535539152825076033000722969482124328663860497197800233561684877437100993519351044378898644284905309037335691178517583003713230298935478341450632685849787189470274113742476787717120751171992114587612823741292469407886494662055149241675167949849196706378945046981862566880707011604927957967407532668643683945401272351779794292166678958046410339925661658081638835963977555762652954800395688726827282776859408496883761211214113717451627066088558629380658914254885950103862387015109546739001365596463463546145370855367916513975297431026745709063874456778928627160373968564194997808910761269452498954909306594851671817573106930643272604123397315616896214677248355445774458464423963523757032402387653362494320026646202355169221154594597827668557533754465898553746011108456686201109075193909773034554967323697959669570354632327378858524324514177162774291616574003844202537177164073068458995494500874212870958957965676309801257106867549265766105820820564700935893707659237373523266853780042109808391903617691262172736635229399536513152995462154314776218137635428992538955807630300520487901739555921986553707590926615850017859792848005740842599833769794953511003361310894880868108322664636811157044866450844848837418727421609403244931364950099636756248131851244162658275647256979051579560068880943195580418845344604321176402236022711758983686457117081001396153634868790603638386745822161664037215632088056103362453159899991708184014104787388323893679910325967170767824178274685598699446148072216955175242913960877244507630556423908347990681470243781208622566044362418584720782110732121730608900779267470479291282626027320206937187696687500583451303171304498627250499033594913034778613632894214057181721335899839482084116377962667823596646456416226660542138939623934149337723340104894824538587725567250065509252217409142647372525204289892170074488106858724271297454937332366222389369920699865161273053107965795004603756658957702101054146205186328921892924933655468641905757089993680847742310877248750870099246775439469023522603961310756124667915691233878161618571783739559269146213329462953791228603099310103618945954743019005622970378583415317600944087358692453951012566431597329952200679896552302964200388854187682366570603465501442970488466314229606760699422406316469975857378208164493660801932642416530790381240200438961080265986311104681240376847950909415933949240441258390603842183509334136323335064210446237576886990892330869781455561228410915625617477259480901330566076425504084627113949074396261329243505070616905914736089560963962591128673986791551915849012073259059823723004977621582623407304841525611606038211428922766467045445634275181773856893887584093965376717857980032873390749150658783882536347956751321036875784303452436873698591828809578104415125010343295147265083625267387696407505318109173081271175806369768912900285925269285103139181769064034608743759604100658574980424492122408789978734663413772267032304693618433335693982307056032715647384792953974513458642354952021565960419794820413681844912727664738157410107844718345135551316135441435535696407799489680746695255642113617252817157124343784968635582686070167168045660020930649873082072402073985603317041984559959972189090948513220861383872754498732971984187322254097260258307388138296384285901996890415536866548551949196133903792703822619021395887981364095467384159406051904216589226184164699696851586081630960230524499642582982087096489123902098455083319934589314527967856965640316118928968987613825002214626301536279801844753473691497615076104137841964670387961975333523633243289662481317805767928590815840522261351414717601064505233772137680465406429250156229580628504509865004717946583529364731138765090982810458932281000983084538734075362321557130141210169056665561772480164967947750189787687683121075494326019561601749887369471899265931946623011313072579320086723406653154234490401468904976275537691129509890770402227653416295506630919935605595211854560872165367869802854285332204343393415496208346965288257377167434168899379924631838322069910542039605893890674085370779401685421943380880989976104113825602338879334552833643237824712829432579735270870795067246747965348600645265247933024580180369214709130480826910911793968763776106192144609270401911136193795863827518324739557092234287037247397554263046982385437430771930688522368781586819665719703857648671003511175579299478658271043635275558431813873817656563431254160814173203094230001508720753305346535709391055385347639514138490596852241851059579299480795336571556659816523587840509793711841163731999081345683463437456245895347039047353712185295107152500151771440704895680475577934271939904171912811954055601451550531895106119536493541533209938416838510568618136796243844056027777255696823868605083880968765668813149926834049564752497990118117837620842924144524364356351893242747566581855324437160287290106892110671805510571683466876138118575450704259780206004865169269150830024843588565034787168431820882769195860703431055082296981451369737448436331995650097049695424517135448625660698456955281142237014309763221995928233768740236880071299763041697755949661513158092911548521909269386455865602094277623697370254628755904975015730249164606454582987125607131160727195024373012962539179594043602133622766188535199075974081177950270394540777842454048041931491530505070663864657464893850448685680631964904402560474086199785589887406066176091321758164163018217803381315176351472880400408984399575199533364159671928699693260910940288485237503652333017977343073982422570689238749616841304162098582237691255766576282000077978547796316558467511565439246094239620997676476339639591938197961448442440004189189558894260728457266749720533663802557190995121417319592160925318181644049279117886502949264525964771144886473335278029036218099706967806723856359023303175876090771314162107539612692641000676922185582715436004579049738893473252323791825629038127930561603128506650132218628741131023257998211520191587644939338072602375358169354749199164836377703515535774245707060362676917403397954535353674184339844108997433599075015927591558080775011949933709313236430094250622814380543988480621311486314365607819702297114324140316586764274557394475109042037763134818818160393872169514216929646657349284011058734527350740151572510215362111986484087775875821705421644189106662828913084586620499972740799758360963496197348046116717501242904521928054012513851294631006028539012188194671361676087247211493819856519968465022484109638476502939167523313134054099655166371534028448139442624218097675271505459762757342154272309736874226037373105863434629017373766509708844731268077206688623644741927777633207299373526980550594888572638130310054478238349339806009706352737746827967822540113279864086845619344244635415895723302402596050155917686430104628898697775064325363708452373005035837920718349999587998666419913074293310707012942978045830347279742058203650051769552771463685116789299186593758937142256185406966988593660522892147916594094374856167351795750982515018370064717461048550577851235119872673337285684926885393533785133137917963526794600220600181701362309496183267130306337296672562936531731959469312430874684925540051792135068025251822161562870975705124661737011486614360200863870619359751440917999954159475307982320589658961305440922388056561513017463064137681633158740486287390667473926463529810887935559156396093119432070004295807104605409560081992029294572410808236568235142230105035791761067799144254522377707528838581162073179201180149480766342769029550064005251415260400062091659345819841334872824425971981876970925900555846351724202087670969372270165901697374111087862088497065788979202313925333425251891939203708314038758162927893717175467408596460881479332661445188186210070182745587006620493663455916804611567221441288735076911056952256923398831923872038333782601331470933938774114726981900184427554632383596668138745779434204012921459478128481670184710515862356488026320505940357510195418294485296915830479650755044702588656896906649425465557905390023528051362537421888554669915532677218670909097743547596050747188828237596261216198306921894649628888366552812725130687956732818203644766639100355595510187503893963363001323212042853223463861004619947119879536528958947707086743449404747418777075580569024901572943625844063173233330672281278790615404716320392675079432040051385610720298227018561222687713992164305032812914682322539207755671270904651940013406023653026160615743092435608282497862595860264123364333018952223562807137326587836649257479811409168847644946986227294758624373024981591305907435305040552263237951755777196309284065127993538684947771535253711692635292972019670376319680363087786765758921037329936496969918996529055774832866297105682751965334441569671177484622701854520766935388839319044478771307580792630000578560869225739895401721722197364094521077567535483061290041391223321390147090172276763659167228852432325400698842000868964629074083487082685141815175437310764937836184673364924525708817960311279171126355469949093860642146286219493876049463188481898917297301902158790815706162961519923736163180398553259777896611633422242747766391709649587830480503836187172582297350392950968448673520144314466356273405897645254283263026108415271226557450849340008464137361429492800779203693110254436646917732216031305067745716618243918314680367774895351084592579237585443282682777938680026429069515805736716544876373309862450834506200058079918604572414933952435515969152577983274103050265934550569515633918216659839991187672717845626879015385795638914386784769729926728832182683053736659457384626362467731647763385434293717816317563269390187811466704545775375019848851580172056586954471894372237790983311213188131023421365087295868356158386615348777569601519854480527849317132077793185933524770319835159193615398157159439760786733413162836096265261322213753632797680385342522226216599408022316345198585416586956976564633577604103458289403153254514164772993657273952744302224687804731780419573395580113565740365524203613421716663005965662602680322333769495905340632475755609659612190469086699570801334729849071272742377530223710844509386052615898268051845019084214324671981850317072117385235520249848447318502864343728730526677572645973716605380742517602322375043663404135150721539600110531478291362746051520363009839249072893878733355261836630422764517034666710375761227016488659250607538148306958055030463093044826037096325206029011624894909990525525028741246630805520409422448746142247000845789911472852645470773684604879032234075939899337311008110198277363178881852507543354072097421372887680944486793216742270861774588471425038261145074040040175594536270414436324754558444479096112323010141171597064066058568791494540194496806708451700693715868094384968097105279288353790285022446009255527599792656659421718317029103583661302816869119535905112915840485985056468141810613818313245682623057558102830718234717727757503320661144779094249496389910103080379195385472341974997193976305651436211820899267795493905124449776490734035738724791976915561593510844801880392201122700060240166909271804927219456556314565418123929467897170228335739047050515843693548084710564223444132081237918225959866904806685444999118424833052139789884442196772964337209213133812955687405347356743911825192171862282396425951664583026784936459858997627480039578813540746512787604898871609446582054512397504556961888397593776854980573927662492399423687698366255376870314529060134219761887117500725799737714005751699882475517834952996922245072872759077674040910899449340343404818781039997881087593569966093389288677595312660278335868976196268480604736354652386267510951905276395390864355455505683069608170398863530586000115415598360093159200659998373936036554198103744800050713814404546128257963894393231629512843370416586447283827025384030820375588595831746606444143815195137781149046862932210050663145123509275059159684561243122755383273762002393740822548257396091328396848652258309767622468860178110603264338451802496718590791068157364633248136441591399567555338403503415391953939351485617993159867566048377129644593665610759050026867700743811525851964154534322679069527873806586589747920040455535752966677451908318793445774211168324175801113304204974984990068106025247839245657460064429870341283551869082973744040637461833394818457803744753434954581996985425080132588117741944446953711477786235754255402485313947610318002269383197489342869045618054844784044782030739971430412499296538852278216326965856155947186093654648207989615140419527912843769091948566915804713892727114490633813054818213748471538855773877426749430227862880404833423071851865005879162613024522395479638363641542171241933622959706354003352239666234871028460353705907390371419612400846894016982506700303001573850145538028471379864347369045122349883232613194077377694753238943131306466755660043551146826458110212265980245036413561961052382940385966470394828770974927779663488813253523115374543480232861121694626263015380189022570430758456251441543308271932588295341192499511633395710339944101276731763424226908091573323986506133402594421809027823371631507716223052641950829763283563619403085384310851557561961543880855310426406850415454257454455181950817326218070668338291337683161118641969357410979855698840315345050345427282758276712755447233725869959355423694127813864700463272819703938380929926191943416580748461044058039278160884267067772628456934487065580306081393362184224209102793478463347041283911482385817016841652173706001229128281174303162060952916740026889290146878997787226741242092236539611162620455377431081722470568270664288829099080673473307092107767266585466465427527728670192773048909031714636321108978862161686919667375185565664505712538410824041580545600953695060193038323113766084877070418505138380634281752785696873981985970392975146734518303994371369187288981456330516633878063774395957078235162060319531359797150323587640422513421745065085837028853107236748420268870365048821543209388893226679298791757591432077158718224155624018787957203774628706854627363612585144875825789713801495797020867157453385255478296639400357685029914694061260641630763602002525899017478617438920060577175640088486341618068144551855887654936169921671815521405327161714291170249412615551730237485462096865321376159268876908667564037279708813103444434542613317203791538303213458178593252831961849758609709080968375706187610484104537046200668970933188316884993697574283880307236006357884577320481879658127302368519870774948468078172628142987185531129716722566171922659380809346456495213257721892140134918754090980276169909046913671396483471087352808320499670620158585029308921727779834742315608862198404509050530954919928883199826086446582650051767693611472521042818213877673599287185267462823039889859914814840230427714077311688243574763816075863772591016128714013604744561960875204957048893036136410001172146989000985701155982830759902645798745144736588448132510288389364534034232900079628110051727729019136881870924398350840803318765617613868548614559006765689571851100237195887846541230925711545683566881415940605593187306005515594472124412520141339217261754939387582763978060788781219664740656097221533016689095411705586359930012077132482565469257960396136475700392470434851781543363776372312464406568184612944842479884846049937325083726620558162747004190947142975647732499658203247591859332956471560119260904585929230787161191555421291576241996800919944935773541647177148177288935283107641939102840205023776319305697701628421382288003273131237452275014183504606449779969428239790565535651729037157472684175339758734469216367619239757838914599903686464002768166188480576558677157738036359519368211278281383866441619395896468710763330252523753090826074796942066774240057460642849134738952188754987902070114788431439209565593610705250990558548115081957234300944971546716416773789648353331141055566970361501754196705436872382947162574789139410387044310667229672381262629816581529933159645783475633040107146317226665340795525750621174346466856788796746664426707218621321903767440799781398431509593238006157574362427761239546963983522418846846216307370764508587574153634423758685745726123994910655961863153129865857050592015371638313566189743854558677055979194763735638798532140969523220183105976427621331954855055298290368427747334492156204936401174926061637020285677345526884934890337284503831338579760466912373603535527949924667917745984734862647425342747685063041895323054047670763324020275089515887346881166829207415868253688673483077698911732742944176961485413616512829197013759850621466843057179891761613406710977830246355275022858421250614657809673381708745041221215384148875427828344737168761516701440848244290662728432898522013011408192979349206988850057703965905596669922968459837061560109250560785244200265269150101152207124977504098177607210450853810719621919469799343699084538989241351660533324967953830087940438825303396980243070761076985279961845813069507660757452340044966409186999796412469623935635983483754369309395014544209251993087662803558463143788365736624148930577913371136740542241942321913987345865449869610921896261690498483106357702951210558314066568273451620248916120227334938225624397833327099489779474027236034531721469108673796771134002628232634666433392070929746655377047430635787979797752415235055929971795897195413444143378068751972322205925216066685185313487364238430991602249730319665192416182662449130953267467399955050113669918735370164636987637893678536096540390269220143695979868493062407768160448307728256559546589505062104353820641637969440517230132901671374150014344874564494820041753250204423201189872656345233908754747516549456563595019387927718317314270833933445162993612248997221741468664238304122111868027392310666339370180465403609002503126518568190350828243868996283575060820288484000333658902450062602645410433809107699179180554784008563560543224971906280208236550716484022692116768344124753997154351193588372792653189420790605130515452351517776157284058394761901013481620807414911378816415287399024672451238184663749024639585633223181329980160149925051540029297484188374996154819089521714390401336783547777700591277434234826630420484182167846523562036410215102430763853892824093846579059454089067922847690687205835692827436714121234815894885653846950391049571592385997188366745488508695086948877069700459272490074716401484763445888870969089978449515124567665328520260484723069206615234223239302380205780098182052042600444967557940526568542209203333527551548020259558951552829204021822857478180385983741924312408619733494969011482161017422279230116325574539730397705515153341349940791386986658180301323416614151238801740213735174550633310714793314314923000192110348450708005890461660063102788585602214812572098417528565431011639458001643417648138641876996217012398456309636870060417797167986635265064585414335875776203711816955641724485990053660427302234830516149849346920558440344271375632791888629648472651659794153973435303691849929531716023750948432257540120847628873954704115422507989994466131374733189147851819674635088227068885995085876854417086088163415425110676008738512686305105367111011109757627750788058046831567921604255137382034906240183837108724868316547087171692654486930991265088715491987755513294864058123223430107502229936253807482200264016758123825357356315249046885744520994100838133223339474224484233804515226744161999922763998882902914268928471098368873699139921852174129941661214418563859350035011999717595334224626039364610769606766353375123403457473715913978070436480167823518172717961243724278480351810137659614149532310645552986032776897758771386467628855960538441762543265069917929446609006952868381626067852126455367857052882874422620026339561885093704740257596513895152224592653968438671191013012131888834458280305814430685999334420856529456446302934598284984913296303448937896667863621982796958556493963601102407122199080517405181709325884865519835489656063393615615058696445331940749096568976496797900517392457564466757326754951042840484091866826692186880325331758246282744260733089307211154180238584680096288347146675787454909467476694045323478501007157909221636512039226382080580798971830570979513240510807807567072571963246669276487920069068147938914972403504795671815342557213048533376807793690838368836401164735945313121732802644027262494503171506526424622312619219364444310245882590980911652376205427971406239651988875923792665413277951316660306113417276633026681790478347167385814649945721376693158479001923141012803967362186798060944201881533205542961271205951887485347780884844590915451428417773519193073829839839422116859298244785326112699587513401623092694714648891022342109029562624690954694805767160617045791852510535622131036582185059686670932896905188147503161748032091281910237157617574113296418899772517136041723711767274975160285104522589989704348905878261174808218248358837704359184453532665085190695389004705875331529518024143945715890235208141595021413600640405345235436566030988448963855585073869383904728244207447449001508719274137845049980939551703216745042685876662620325192338197885848713370109514422746142581061325760173721074301058880524580285258860964245563089272233621964647259874821677921825525113570401829562276973863449116127791317179002269758022833716530629674977499379975284617354356428302425238894669683169001031917139506991263076983861522091266175360617382954230454408753726349589629414113604579449773614594646207840329046462649058100709115751484854455327903445676292715996763619692654632101014197484612957858562562775555360492757926827331686205292068389726909083323982699052613554208730783136017416197262997107335486887713989986940584658940793913570349963590625739806213389253471861162610629787636553698723297973794523834752438778357993567564321844272108045016581836771393027194067935684886990261044850550251724556781095640233014667282802803411379001337555862673803847961201823784220220244710919565966693391095120596303046026606529001978282003793658789769698705761197346034344987781830218617728834694442119414893266553100097336828954823385243944217915798483178345251406590153516871741406397738295841101683506906205442175315961823750908744630344816211682820998228510756142338280705387955417112444644316004047435717655840639610521402976808634810160935708525770345092742373675546328879263238432338827721790309119367430719817462671762906277435012403901580178760909693643048298803182545378542768058709925844085555150671712547027011143592312753067075382510207821927966266999690013046498287370348652657794495226518014358708111240619843249315285840270759622938544789697921179012933816137440346899818980437400853662985534626572826851695913910401809284571911661564367794584925905750634156053235242543551440518526621968524497449998685099749726628825196198653051486425990478186256378110731378886943832292757033226649386258235777643780639574214259037885256342421822698945685617411571579084330412137478376958391108008492283580793057511232907553712166952582727096389703103141533697097448795279722149069364314552657590610622040339502450804516129392896033759533409070249812014389522172125629967420563305189854539958079041413635728086074076520855209565958011310039492878442092700995486123664768089159017092986781645601758029003988171091394182981905141277596726129800908214401169310345475054992720404789142794509253062979741247865513108176721396509021121069592322318583365964106411698067190149459486629007696703874062598649286565579978154713984259858725111464385143562459395172277321254738911277952009284581731034372719566561638144369854531279462363556250391945460353112536703172904174030957289131497072702988072191032841990490098825899743109617693936628356524350533971882419593626334556728190133982114625244791166736303644321920968827297602657002365282171230068901353158656420159480738755819620602030808480682989067210898358111108664677245502999658667372592663102214924651522420301831158405015509611213641105074772013813046288424182612445701931659426532876871610191611808622761809794194855939934557062790539537468887730698496599474964193654134956255013244380342444251148196141498796806509844891273525355500629679528771475657879940528854086689526676926573581948031518815417815234337906273481180889327535871660188033990173365261888294057014648281132153971812880317211721425885576826906589605446723638165254021915690564046794732377138813894096539739457656374022494672229244175534655727545243818021378786395393158559196037725600305872518204253594528114994774812349654120667602733024842384542858101479693915782775538669085235021695556257586263061149821061364391230024266047147300216138482209855839940774726162295827220682563156248721892850602595689455267142444693199694582296759521745613694237234398426509374005295201962079986361485237778752911955950856998044784566988734161343029348593138535260216528024086753275181887767696755470292327946441961170021417726554487709801522252351407708208997319115185602676361466946189515212487545458740821792143068117173354005588796835157681246055144877372762089936272029384062263258482468316261114258067912106438700565676831725394978883488721875971051053988227384877798415567231516959209100339955228563031088135070161772064265035161802938778125542545859110987090937600138546247188444011426788864521448482302240457640204910226454826729184145734958654782584480934110598362200956135602450730558867879148728980772174117988630444204944660322058288947207015171426916783041489958550005910613116887251950346769205941431814439298451026815479754266178901726440445091024831314878780081122302105776825016882303045272880718917962793482532554145940433408059738443222461792457467049359677152344626070334407015023645445692105454127121470622280294719676134886518564074911736699766333356113534832342243374296830711095755581259780233643747739023425020155779891049972809503611690624953334216884693203085325650004873309008344451777846344364589241986014870672913532230817952367675651820453833023055206853692487631455540919507896749281029212792951697467679269263653502534012532565086949158097850603712567340760429026196048245936103865039526257967550042513492465234171693304257571437293388727765579950221200119570631232679357364672365293604130589506102123359816990562989439221296868874982429505395673442021730693617075879678553343018930387282030821695214725427662228849362524438471701712877754110923453060510466321400515408170081065080732617093325462911182407765287711347235043767346866964652749913498857532667160352752366725690054198122312719840556798204133777084650306198945661400387349751911866556509364617492926785224258642652600996067929637570828060837152755809606137238206692069329265149771930453892268167317365350458957470790107633037415397127808454538157809780412403305524452903642853599116238043219252754695738826151592687121981705239940367533514317597352133487238209532727023038433723187883403780385136744053402158895765333201945301230392451177603830356346031732744997162048611626921006690339255279902612991681246143686060586089568978079407821253983271044276477641024813904858623950368570779959105822010402653051666569246358064364564361000386246181893781742199188063741709912470691624529854047615363183747930844497866957139444240088781585894984123559573482342520591166590321756419854241703945063321833130747759070229256939805345869067665610331829012118633517563046774008207703992916762225217248420289933625457296041099776112800660695977457156490859055009405734835468010708918226740733993539905022559147277549944559897826008414816590504546154231572475901105256098260959455062927032344817319327015474379767464131910857156178607890843083918943317620906499886873442265728187729267447590393373774615924748049971962217423213897444195519143631814408681307208462998273554873891916817994213807563544719175989789329150542407947402567018072699947379385851658743032719396222393275777695097873740340156179177491296744593792464543739783818444398516458177179619570590803730844626314661421183177090617810786105013308035016287058409434970517143229801776855023438618890159913842145824649758904525782893636387531418476346644830173451576150824086370747446665617054966288690729773843447066113001891846181621392441096097177947400427763891615361525121440603281582278218675898962658079583272308282506578815081061935832054838039208288390721363660392666747241307810600396836100783935606931365582710716561572101076841160530051864165804969074712729336340511788315168761230129468605168577824926954270646756281558298241860545257010587267172671704897855615290024185829887931557355725930587002578139392535448826908293385824520738952795344669297743805171289636685703380337692591759669264215363304506784603211351938132015042531019774710527377339048945651722800508848145366565524659459939962658449744034433512217332267473691910186797564636858739731110817754724210082265476778868314510121621056133842976658870282364283198858612867480363096613220431461248371054865496030571808148922019284596551512381221667711006015977957585690545307655577167050736548337232343215506651087886789945340909792918764557224115641536260535938189848980999990920350870847113370552277633563906502303041133358793506529325166891018810191947688215913201779642985230915189233848984167814040792350372345144405124996547377753535897905689263623450576296824402013831070986635179857974268261712324196608570741379855570499751798293337910910498663834299289953632168944472880975429877622477533788224177122676947057373484078387989720894707347124588968681524568081214129196572166461888776839489646024820360547593684879263892033474794926873806944823446366851042518846971994329184073862179011020434727813247584489254968358640403704027734458233182607353669431503855417706801836898599753883423261750036002028434802356280282504911639887496737599686327247784173738017673184645198655559423766774885858701833888759946120190018495314051723940074851961862723331665231248842053968976481492655468789145211432427444020581668439193970178914261897350304860556797123240632945731994790088662313364669899460982438706188068975581625994212228657157926821081086142779054452074352437502223952153059652081687464971838369712834373486343170702619907030357775970992210904400837451340627138768575011648205719999748826864372864326528144318812679726214681441137536044665063395099599891150666066364133173556346928744043509997831431196632914334305211178601147885948485994929074271926419074137446659301630436456931548558025571131230046865205279872666611806948627333826518370435868357123452606542425581421331519893011103105623969686774452485890702363955841994376313360541100429530021941181830856817516490548676083130699981547971613693125381799048452564587136886530692761018557548274788268160057279355793204040588000648101949125918263688363884242682672702579982118525348528982518736634895979937703719333320465983807528184368916426653357663616196698059967853692104289655139572465351145725765271160797712416198246328640578402538891131036354269673211930977578920083246871575960970589438226669139817042603894201035768510330460141639695046769327362842724559948838057268835177227253460320985087854255281130582121987548127413843608569615786535723700270509852858906926965282201992492260217704904560495253483155823545372032429722618882224386766192556411728316741360859951306416119921567208988344281060378933849617088083934198322799919841833629281193748322380118490517833331874732521350891213009933100387452065820378897479545440941915298650122574149363517976081106929116842937986676629851897384735359264285418634178794490721836275455350293440783199652223960130855437993059154395496176627028160438554401292915614179868145330640635040991374857581372098101778027954480368869636971087913569949274257593126681178432479202882155761566496191059760115171767085874591198639851023775819938636685201813358411571531865230123478108557136552870036980438801442355158888812649366467309425972191443312406693365600147887664777309828807737996195086904773047026014295254147614872120225416202345086153374476364982855651785302073419979983333480996788562876358616371832581355321301539486514320207526455183487159944975261209957015646133385462102969892836517659763483159757008904751449883630894045562466289558907319238214337101534453516963607677516934365408495532240307171842242340737604042268016941505787388571403777243619277243744542984873283302972143369545507797132065093967832787762903831613628181606108050127503640444879976761568366438069869201634644055234650192937912076449899081992121857288339094208572526933646173560096206730643498753406766011884630312365953291355857242675599002019604042518652471802173225812933075167405292160636300199611520325293426707805952063126231125739349997419294496323081757459592054920471632957220353892701406574640403190059352066817971528264638117813622367686935262723493636651538379110995592149498255221123252522320343399097961682180907036202210918527953253482109807543181641436331768059350273519344868936791617601098733461143037212012042084754637884355095929860171521931808958172783306340374846721211483291587472492303752191223555977107166726055073225434676691657728124609170084752571553071336558956609729152219180164037398546908310817845776681584865761886807650074903952980249224397254629571247810408668551681599975861455922262981854934013052331924925938976551566123596331974882726852395409895009806284540032954904217445996359244872484275851477048770546046904161970012366725416275659555112380187489411820859150066413266406760473305066642741975190645564021775340475739238380811759743771336282326774911276913591156226226131071673795097526460203412178355845063962373870839028177499463601290079685242153024845032794859840540849843428997648743074523578702114128804238442546221151670099336265261371273897658698417338488172740536440164026736295163981356791230143412817672439068913135851815410440273137908503467525255279015359585048690336283656602764507383059138510336924194654043482070962704953293771110049749159975848321509615470283431597274414666523281563705520581730135661347838439969828946428517524088903774590096521653679856323454325265309637080485031140376335969971348156175170014482374237840355029267864342728010229828625823507321315698604784049381988905629368888277338221889107293089832606567616521733996865525584741384848936987095842085683389036819009703183988011239004611492017724645341022909829269160980132998516401005377535458150229783465344619676593696820412675679786456003062492872070751393698292782867905000308432155564248298563564615799347931244487864795477245647168614298164628470360984329835764143981045926793656993458649388520427745416159095398766880840756090534997562935462855468454381354035975204961343654784514230870087109629275499847684491979312449868441460469690382268016478458222329945308134333710402237617097502839195968656601908405499010341019772278077575322068522045688822037956564768481576287980475962254540999875699961969917077298485429557867587252946852061287426617881849381543323722014456838772399963379301375105598133593818969482482058536962753514348818344169261295774709663530895478699395958383367512762130061819504604851290966784942552240271529503910221524884665712267751002377540327309600790204596195119597677424565197654711680653311935369149505272483468272165930033792052701932863338788655005130368761784690071669429635569793157709272756505442320806181171809586171247638364586782584970925946788347882868717208394683586367245894956372503786620218027065385472138181628799159134347265089894083341528311963850291613444617402914045429183863076681918286266191252170527691229010629394076893142317284251857815011393250666007674726761294762196013119473419985984021781573141602010567305158138069937505008983634659217744785092990795143167989497366439043566126362111299367683547721605803548580954250912548339784939430554392803497166549555315183092260540563950558819791587743345418468113922706571116953167654726632448142433355302590847793511742969789805645127761393308248915608853782393311163019270845479254887957501966697732124754964801653295118189149899785193684131004348923106469664468808324256036772959045179402276439369949216042752435680587568350836142725081364887399541025126599470539346666133059390172156632159073605951890106536210126982764570414911311647108680195488321569682184900254729350694990273189790474461264515241443533902682324913809740232053891092197340391878444943095829435112873562215193910078115003417587525988916252000508511309952649331027787142515915247180238938549246907095383996884657816213883317027517850669376036829997696282595184439076607076162868145122566553271888866211029111206526389939566374237619794536802883153216775430633649075643354462110864456122993189190664123105794347019545116400250358319660078954027138520251700135824708481625470658949874600092145698088197079616382220645429497466836071548324726836668685503807201717940622133515116441104912208214982018454223930603324187722482007614370184719913349070438748929439818241525908062700142939145088166408615083128992201004291649854860160400653553034220524680801256591593816200416777810545753818371591718106892843859849288606677922036492819937548637926704923684713939760539629272217936385728219657645434232157880160343801676436652099993408990088131644097786476244341287321343593536517936841978502880283909865706946760069273109765457251501300691137697504197451970136363625237997145653471430426648433191041506095069829378785706085119380828569395340179046644517808254103451543231109505995058037824692673195108984793821487205606515445938362787830688239067780008611784643799603160879371752924382999661318949414913177310786359774908569363401694065097101343338219728103352172788774771038776527180002327470869181100846220757640919471643987691105972456744027139662694367338027578369344345409118212318850992728476886687069508703786414377411163445763840214089190694819083284778625415071053982057642951361602014360059818025826492804268042241210330763454390348944264914764998078688466569416279705276042083913196998427084892572822690985014876188469683770794136095919677764126288925083071428463624621871872074468608347477724830959982536154254228633647162164779079323790057422018260629716111289582077683857729378382569626134947406551053887561035319724422808144301336859166343864704869928913225015059900403980548343915835421590662431212570165436159401400182217645953478209669493092919519323987382518072981408232855810423929951510499002033419842906251372308245967461934341594050580169852483018117795414782538875241874704363382266506813945826563523343912365755196422621946327417404034341374609512081306808109023012942619688385027529199251141227009159286498828616982003130175207899998187562228758371678740834429779656065438008114032375292384859057173606168231076989802044153588819415262423923929877159693613393777028673134542273612291487051464023495156060194643285689608839811058455846790636393028664153930085448106127634953032331796226908751621366912448448120983756658805907281869444855549685112458601433792946898601193219196569845042441167413226730274061696915568488790164635976468545638781502025373425581461087513968658644729586770288305097619746777006657612862890766684082311097776380537211273556944306174412803435936292008285770145714942975731610325009247375445287040968466887933967626122439525703686356874233662086991404309346550594247690460924062884305869432882264819317875442052262473528056146742977062317521736811092905269642387687238832284517757398454853932810008036926113080027286645161714142711675461354981273263892018560349383089985385680880997551777476274710833779058257417788377635811401362399615597645851435133951468781953652687830099628300689607331392110078917819304695208501379823427044426994001309251618622306739334660144531932715933192582936116086870636833671985197444906028473683772663717549186109273697153156015381777108929664808052995122148285264793012923403221491781473969912396858133392502513379373189640659840927611306469960320950983477494523207613344931301864394237610930686062383029026802453535482771994375888516793663846989278976339367119012142145214463364198439490503681539746470008062834072879735804503980815189812134874241799035052172996650385476555298135473719037990624624248072749711598628073627348868976196993822001059564821534308293385834713465071653486608603588402533481269809610108574765389360302999845065222192270850546692712648609429376172749672647125528257705926532933848598652354500068462513942695698036326929132188210747011260978750797145011179107363932647372147474923664189945952549968278910940108794176585704067599972946167172407365534564970152692141904451457065911371276016878384189677206954930897088518476380086424534872582883603604978040421576181957567718177446886743601038439466795164012993721683045783325134314224844347493058780482540515889729701557171233917759338179623977125916807322206063808550539135492960269957923883336403052264855555975022507974918467986042735421337056499230136873599476432139893596771038288854688151040490234181320149239152407477907610817843993787750732619923718055600174564444149355678795955270018586765896254612101926071741037928204352523217114677195893452840841804968712429530702195356865844426028129041063190055682807505370756494716970210919911589801869693609595125946757363487734637976911123927458922643887818585209099842682928660656669403804452644309408241302425244227397958733359026756977802367273243503059200657016988050004744831980371034944962074231603757306208202301215112985270650544385644813460656186057759999724443913213395594043186176157429739611122289613723296491937672194319478242805555022557678971261204684196234314974686381649982754797854573359128903686281933419903268427352968528916367443126126746204740017811403885710420553120559354937853414559893166221122012321182970920402281517228218874585179257791649872645359189179984883757111169419493339466479595955872730592521240276441781621879564686039677678588997020047428465959225286257168220475669074747946590830017176218087452362746488063214785889358279440365674611269947955529512278407633081868421519190299786202310665167463015585168138288164318885151191787434543717849261451269568282052588442649484785006008380012308256476524523049347614401532721102663004395850807662241095892464611295827404619894987514737014762689825345044779621000902286398111746527935794166864254593339216482157061080542826717760310980906043634789326706108963847529358284120129138137048646373520393878556263043254745578957979305027037337788499096959534292022507983237016270069975160290400481518588041877770344807061831321114351117169750659476554701029973259683719031775410804391947358131175269811611101168766002240071723852646313555153533430713978260429418628360956444565903493090902658990073036160129813373110714683247476104381974430790894553195386982028146271716925950003137861638757657435213939980094743690080824568731901274269528418258863045499298930967701817612376223393966465286328497650484581350757087802516174370241600063233738336203771876175890999668456088490105287822010883218576329917878712034552114822146248158632673644676352022613222893600288585659056212759198759212184761832640740568316695208130604596419451317624210806293410900583175673390317597025188827097794753381045168735799658217003907744187099212874906770716272510547634601700393388699982090190703344819042149983161058165410960219060512478790059428982360208402468567331979579652010891424305148928442542257452114939655847849948245201048308107359607223316958204268437955241655375542793778406987498128693226095739346682589320761533623421827858609521226307824416917834367862812938498415010280192095140524356419948542284735008246489678574859575271507138297599204824096172310283830561087335661987912265777587298195853049856501848042469269917551665170481458507302723321654394449000877599823864840309623622288901648846931021969808366431432484211508458978096029386632326602574730029676862314047305795997959683774759377216027437689874785592824686087783284718987938523470963153352639776674025167326464735112114623137619356513413703670763198652873366110724033548234651466323732409618880250108016227714480497668924032904069127449542473856903622354887609257129779606907945485469187649229011844061009537081876051952603631376844967650182109788900094228132174692063351804943022034440382053363938316718113786225141299069730549799017039728759651716386095622764838207276997497102358187268008248879644172604944928966110982946137208413576727325122607586953543651475013234833583407509934454721413579746562797457937719803533867106644137513914452817033976455217207376111649568692470073565573521898454830686946365716346436819672632825754906827235050457079679807228398103929744827375786855455721551413766951137194886021288223814896726775619165856881445803092979742380551450752190469517980190352070407306612714737559298168579301859507933022222774872597828388668947565925483635043163117851706587288904194486529863354396132318600216740239578194740288844259473676939695742790915334210281132277058562230766695501883982710820558345650880343528845980694770824148533992231070598664551577891479220892553519673280627818351071873500246819152428337331721133921672682044307063224260953790355992395446741484481572621932960104900344137394288116720893284940776026310448881757669394144211370339909248247421146106607413966547223828947017038767833241527926348585503141979843575287501910817537563613329843733532616286685173538689279720779299637055833353464554277208198817320866824576740426564536291413660253939707227195132332512180949213634972104924271323748844768966104905637035611480512107566361989242960687379246095141668649686759012616917099758481161103750421596422212699557669480257135882504468039277162614147049119975770876104210864875157125093505236965884444341272266356757478894430268084254963545001513689332269890202170776493865685756621270208466450532011598363730208497893027204348028098513968517872990415325870820545271314257394768550319291716940836987689794092158673892380404772576877202295824289767821361204808202641126368828693226822643982227247875357009237081418965957390139388725288481155688824036923369044901512117950426337689555739006397908302100577033502473960342663851935860785353526574449454902093551059134595832471757024624906900908247888106431729855405966130810751556745954594481253979087526362835763364371696433636937346732294391229362403424070605304042499946957945346942932940187686014000659864599734713644921724020304527033636039669693039082564899401989683729124333042799635941572168248524432973770411685112018543328573215419266908361618394550013968600660727055408626748467833714583352700901242116323377101931543735854009151304177554947925386709444718600339998670858443632142734307510876013537468629074569986238800235871511212889491304857747287647587989488403534067655398660063097204257676426043946912151700444598166450246144567135788337598671259991388056377452707929911889850774623431288235385320636400948016255476988288621869470841842846952689049600816825651542853844280948479467449931802610207441330788170830467902638932796879114190845189953698668583971078885425639242542235619821364777609624065704842150306999211995895829078407122630892343272670760761741064322146371599507199339758490671280380379087944843180429787068631888243321965294039131608193365434749530459459633026889741460350282396629072721159866401243052527255708834973768115996989890390614117238522066610551096544639323608615929387124328977613500334534322519012248583142475272025004807166100022674977086044154127086827544015290287415166552133370786484888683186989529119215980451149303964698444969167400540178850753525692736654367045659604257413618532635785157014441826611375679150472766545615962992134652386350376769693564447148087549614080071180483435635008253705665940244686590379218670594675924636152508306859297145652297510360155673326434111289762820358888140195357854914872464872607686852027214118852886177166123905405635402795827531324688052950856030464345206794669816832234505926723569486275609808118364393593090271188351385931136389314354106615346616631870407197938465683102688156225490951519942365491184490351938928222460477130326706170092805013310266693736362162145135470873223508024216277754583165073343393375836735659471579313104131227180218497701507078678720326291995618453253399210161899405103733281365190859523611375977761122248120724000894416512797148239623859131106253670924384341983687238529720326998389814280529814809978873206200278709130483272085312260922119731670440039392839573369799487720139200668438636879086565090250919015395694369878325092462224796794443678224587281902446101545009453211164697094850601483935414665623309096522289535589436515964071211001904747429709323844545038883258685672592823129290592462670512047967252903412353035331155181205802034768807728797242802087501691034485111766489748425035220760256122202883547247512151090150082430045717981210799319777226426789735957011243615089491362885627111494002258146393689279560566604770332901754903279452574306336668835463513705145237671858577955419352585275985172139777027366155097080508304771526153153018856670925808800450568429797880405290502006741565679398726032414686962345083339243597111625458307816774115906898526916398370289709135704048643265493711928081015538651847855369253802440247646698778771024907463011122654790245093105991395737562713204282082860574243684963110068720291925197939290624059624710823586456206066702721938584744313185550433871015913614236382669073769233890676832742808275893728132453394805783187634265738784130885625528817273903048175540751017270185078729781750750639752347300906774193151041790909497767958795020287311529385936405463574303576738566018666857029083915726277612370245809097581062652537546303095278408693409347773956408965644845568566004964844416117032486673271308334919748496028874516255973719069493670609736717466412120178098225530977396327059519270472104990290891461848941059589843165116124488142964789963947589775089656601463466828440581335944921998929056067535694646900459231879884659679824993437494335755006322775799574769826892513978368693928891106976128919581692421855476308343445812429226839621478002716638023776990131521371802636206099479632943544000958349644134257996422995655326685230231975254326747503873939655761262382255635864347881465318626380385443256461371254332096214886908542033432522538326782032959867691443068749296466030434725436543549906222744793544347974013430868667421090555975199404058937314224501459576571066807766990648743140613551237289168392318943482310306941464789353006060892172120319165657500720912067342450696996791401543059590197093616803800017826165164366616277768148798900160122723370490606684106642233108069891334201465244028075491852076186732836659005213299554103478107632241373697259170234991164048302311063694571533898055070735721760283052621273135042713654258213422100441919620555733414212256877116787444492407958275143094427239400019410867986691522062991449275435694009635625128012284229264307481337049274084693574029904053245838915860445837441273440290018226423675166830143370983119604734256753614425840134182213634099022498701570693806685232081631889872713624139178987978686191262374144167782083037498499359844245715579192270280530798996069131620061772491426706612483328514931243255154430626705126709289307815755045223416925701219933561760302889545565194388155155471347298508988858744712608404596675624039763316407289853206791093835769692136229001178133418192237454907494072508990935483703972689751171720805549022316324065125028069804382077026012890156911554084113275478682975142460935392424142615783332893205587048564678646108431281738962476186778296293240513746534985645907833190409173704596648726953581643975400517741549168536174073410199920745234895921796652576238043755021382137152928146741840049239864598200485720924664799229731521448220313080871890760482303342699247706693895442302647662509743816556459091779970693196919445138535327265464304375762569566647956723499685282397703177862093135402194320428917099544548434479939656523923950349499547170355562646343719331549530629825805888705436107086560368235016926071236976482014998391772185417456894703636482816881723542469307529383766571520929246307286189761494045440585319372531222223696227642798966869937535510096567603322299675859127410495685051142312504848962336627925283848234903385075956646116857912109041386000179687518604072666756881954649960372713194519697852603801315729531298511660141882186624125580868685995248674459243546627274578346321831004789715871462736331467914951144214361298217925822686680973455594820493094170792947365079241019576166754834882097922684141046998759845493581196871442496948287539796080486637741518384550207235112610434926628878741963907577578438749565841237401480662727962494929409946449768936828244066919546035908793637005610985973157323851379199197692170898231861255426647360655191054330148940758839561331073075778641163322804404906166634891662876382338520290967526394712249125361269078350907271530003333373886416450276947213258004868934896406120229054195885448636677016404624286900785862633113874964556589099947952222977394443066388865810864377030890596343315095424169686078930293404424041878981189347009196972141773973950302384055665719731443005115638039635717812200446237824726035134634994785142303337048962726307497192306075490083059686219943684924801987971245324735286611421988772958428337616332554387493559780821144049759707777697063722170217910270639095450367429116656069128102433255676973916156665938969152195724235047329677044689833127251194069717301592019507063515462284220702830022970090245051338289793146598412108695961447331448112052289587965027945375740206802552590646703523396543219421703729393298203021095221346419393897902503828260112046884367426872976365037918348417295574787379968323208732015117490312548126342995395709220906594325377998200520314938362093536442564377134196492836114438380552828187722188092271994420524580169473219637967278076336595128240867581078720600549983098849991757872644344883533165921531820343612804719659679357119781947426939347684272774377657953154957025041516896682950430750724830478531670586894484935216319263969876962076910176681836054417297026148303642987245525264784376036681866827153129909117672538744620694202966220902796067031583550591683019418584837703323585167239003452022706684536207030962466215344960349949070325984496735168506934216463223021649381669903504337020704768035932591688107341475578037664944584522127243402483908408654704495387827107799526764335698541426363638609267927468845303967428257008004988142953929906008423579204922207065838549677657872342784949233184697047124492090866622777899269375888386971009202967828300294173898237946979376269801616396205112974753495092153763689903040389568936805982011067446614697551935451870236284556325655459257114403828132310950437594981180808718318726262013499032876691801428479145051622406126520281221707725210761607841145745981406335821140465390994044318543155432497298003938387539504051695125799698750372085127543517621318298394191250889111515688174344424041828240316188646751682491280504987957820021355250228492685910204743315743542003067354601642634210529828458224444288318982160198793788331905473853030347534040534542194871176375628054392521674302893312750020452141889021187678665786066979549056752218855065087791023521190324218143760262250175639540632275160829503253029874240601512030217306623515624386815199198476236208208586122947604925562587119598372982612472600301200406999713491998243641243798971540530105020632703035299148885640991788193357695693495327773392253471854226467013770520430359062345446188799460267047200838123895787317210633306655001285973106280610102757002109475730048932812876324762350911649038703557360688034055844056952055344729554700695869018243013703808784621793912537293619860082349940555114901520318162263667146824273199792444844627324828820003281818418228430178560217902399757101159701020498486914693280104613198355654634844778640703467361969663114599579744329048990130323614320445923060517296001108708548481041446360324622783565266834434768392399820080143353442235533463746206922395922644228542317908039495681697936948131172804835524318730229050117152017828217616691763476443503132826143108794525510942203432944892846844226296932771362514799538900007835299531333939351252531239141666595414420503509088016262162240902129899678822072667498115863984794252637081880590425927073035724353595336902691527556142384082076374523492540091830882736343203920115541911420596898538365285205140823109483010450867940691449064708688900733411080299061491264666105637286152438426362263507694178022871581850707012713288793022507838795323807822673796007512260395999852976656789541497074918705787728673293379092407547413311601913962509925992573288656691685189809455676060237516989850541870968002493140386943681572565469692536873660444888563278486505373027420412198050833019379911738658863624259633431326020364494175801557061172625173614802387009321333942936299500640204396348834635240056621097109787654952109129992440224144667294399433903125889463388911241181966715770070668171868699532627005397856972105180611717775580355820683829506171894844367146821517588099024701585252651378042569388488666817443978787716011656265980935399575073457633457301437288559847782025666340226841466723773218956391239109497475837234364920746288315980828438248410078086268868692229243706438121910799516087892256433201701455156236778221759062054035448468446882861743757660505951406915521031030182363595471049080732814439467622821438496621215236894367518106031765001293738578651493828361010128609518724166048570250782764613980441318984303288475016314036266530576401430561004233452862035350109371979104124845394739268814690744878388143527921598167543671679310497366155939201557925561500470401011883294764069966837150658637886653141371716192086681927054739362289025194353112856789621880921294378699481139220625636868889566575273863586114780680515535565339117673019074739758363490877050811760894587347324900712682362138138868369570044982764818999967267378408613186979758712290091873562118317391541598213636011588692819423852151467205678646655145709658205718749564521598432869623006650479874636675703193244389337834204952120094034053368050292381101407593994434561002275963859333924283836465125812053135679806724880671453841890950251203738825159372196741669005255642994674711310724486169650404788986242558981514129986413509439328131724369564192843468107838718648067538509006959040830552776359795707049697343449541583936250525053318221968629136393601407370963234176254100820714675166374964140914971580138515694999451299900356234560662921201790279486278982555998935267569730955500307329266867258594980980920663074467789578359268075168002168458466575004744125205240651659974923759272479502820440350312903635800765902935642799394764760123576262546626921486133835858675785950600830107234848883242710354957443830939626824018182623528272227813128732778316738333249381576107033042944942740232369466307730957842547589359577553476934563779896566804851466019000647678490497905687866237138492134196200649548189505686273679232181729303555050606621423336930362781468068862107108160353997818562771577688862921906155100968715177793177825637280834025206935490100118105100106501328596182580987315803310127599706042123493529414812215764018826979233316271019881630927881750841747183460649771073394887963196685238177312497182778741152197306876697600172723254121257202795656203779794751536293680410819770440045004240750175648219963902038068998131092401738775643209437732253883875434206555903967637448705013953507708334848703324187452674522392610559648050426227360550898909461603180192845569793021308184808709695173356266628055933858355087507181386229022073178322718284762306164257250048215576710436041396039321550635279122219069965903222550579886536411762315369451168412857680635878390685581504987829929354153497203094724005206469513462753286848289752711794158295301728945323640681878049286405026376486798196431902763992293149668149864381266947949556029475772745003753265930121117980163262352376737806250096249998335747105214232682690812838344557850476427568030657006609584801720379007192132894985736260520768296123932226729734591228302391803969053750583548779228133885039219255702427102667097525569209646588744912199927274625852281233474933012853310039913191928283484599908678899507584897302059893862346584391068654986699106774476968828665650862817852679797387483564331062516664581707642792851886469004567926438296897555519914813456238878522836281413441564208261582654138395026421133460098042893287491525276865333658156749184586808396943128392663986128037447896951405160098007324295258545358713332861373763085557332862583544275017560878427774162267070593916811498826953119358080908996426412393829918753096290348663572019985824062000912520495088829480503383505337933150325903025354971225200383882876107677289028378686347884847709785046830587140351281189129092820092039380262332573258006254123784593178821184831493207742535285051824229775702784215718733689754214869472950405773825066888754314944851190507668481165569444495504704613168822923158434032561310518453096136091994594693412568356354194968484027097614889333671801510426334943062075721923406451240899204300945302271534023000398784248504561593400018081937022880632931538051755016581151879742299465251902344780607162737063672280350368185748268112291930960576929854074420424381712192604566251217511969899861483765870360285960092741289774274613652925383686622698957989491533211429636182298983559001558081911047543438414654482426406586084814478051389436613254479023277034040455304207288401303678465731915992147398381185270752124305530645559484982255267706385172971592437325601283957753019200592891421116515071548449275372997731307253724659782080505333128907521068396343073775742024951449943311719514233293835185649000211695967811767612565679611804682678208521626410696679984060265524181689255796477918290045885461769089626232195252692625496574028828208734331504385400551240704399757935966499820608380182170553628902072239819096596463024156510420242024395431793735227302452760057203609650932277480651509470782822351956903384601005960401600123212006416727352341809783171009548969930457610747728994240351992542699379806423352768466931567521352098345742163092730015205937729884212397888761127985600001773613467764856714740689731054928137256992620530075809535656936509364239470912133341605941219220059197516537671904853347740136537650303156230642232096137742333392443756278906446200193762254244943873893426576634890210082381365001979156864741950116099938864094016302322521638979954119753427911038260999997999022687884905389174291225121400317347300169191400869385913683511824302833350323521008703164778814242323265144843237768436394249381602596176014506128440448198030089037672658986623828962705057751117070319594758207186274336002919525395965042332424593845813860791535912034656048157564732639916624420277964112606761275485147429662347386654356387826907735365410130607644461099349520129153890339777193495454395464312735043644524421831655685325335052749426658878691305512085197667516841355026465467820698625669587638849655785918015197437389585595294631036503910967477335393737855419131873704655963404072283282585541757133719748639504269802989825224045342855987753321418463285427120417930134693385586434193751522424037099527132731101225867956222550218882913322616974397161683774321530057466954271730755052016132472016130361895196614412446325915107407979448260792720258316010559303719395542021006334979642020892405469551895322453229070714203759774458498456922336048720401215102089970392604094071668354322089357099375342932664327981946697432347715080169377686889938290790251470512624770879035163479684469724236470908707727004713081389120256463314144720895853551773898498463625286919177033232239393413535216947807541272789106838242367239733712421022774587533770272325330773700216454507847831810066126550829836251212350592817566838796607956326025820197609298658434157832028293121619568193779699406461820553317450801395657616038523164709637222561689546593912831002925300653314676355125813468427526450977327968287982379251320459839583642897365307327196082562976713737095947159382947430215137707764841125391299527717549327148087436779513864071690609072065724222447527329454337243869279355154735750262207567310494021821354415708977668846036008395078443136438916704458091374109686765573379950355816855980299052978479563767767034957834879902602814894323124692655462090737246887371031672151741147768777228919087695761109437936577552400663774833632032074469399355872748386394488597714431590143301017719014654277972381817486966759755509997882128248804349534284826378691698288712677518136617278766655784742853105469057899246979386802936321900285408474132009601945312759249948743697061952051576853235783066273504473584450063902905190483279875574246902883387213740945839452374898731623855893637612308096626072911648197193729989971039474384530261683825325384655258679338894725884122573527243535373635019265375138427611329482883532325345531477557532045735640137771187241566691754068677953014934726464900499903913903095079224527405977742928313241370723860916704968410626953359467973775925995327836362659993560433973124967677166512657226463948883884783438729918353813458892716653243309937222588456591944638243774434575326273487027777357310825479178570767076879462663806312743438895443823013181271177925788390052482178254086874751706080079913944828626473090280124386603505591363689464820830337342318422071607150859880101908744223408596553608603641956073082096149349807852408945635990123631930281617500801957554982265443026739160096392935555355451235130699967125015618653978700747087061112928963136623642793214013534343328602596453953153636534572046338468747750634475184217123578850942593824978010969249616439145035611396542386759969562194583908509516062635520821818771671225155568577012375560789275767196697220192754727193869750736519231654187669307306084932739358391110958723752284249344496394146977496301953159635478911133166162057216536645688269623360046406484469103058663057923175021086906277996384128742337709155323558913182564894892957721786291771463169704781434868132045998002457977324286500540717640603298030646912268383472067676179486989456070818989871861710457302965055111341904328885364455136691224424703958634175248561350889293619380377693501639970196310424082510764766553175041161575855884913327023744525335177033892971267713620305538817146860216756153849257714248205919484871920091236852309373054073630390129767533737954862295287744889455544428772286925999891505877527205393263383313327068770382204508474545872046988380432342276817431771412375608175017401562095295411571854998229296587209044124780894860680011886247323447673201623219794549012135178459125219078470146430054216155152912839977242688064966222632107126907480120184853893119392251093473308407018834521450025081524061511376877451153648758824699404564826461667261662162557440121685360461284279696242689446367445044831321828330196449230273539223061644914373027485823485622979619751262495896257957196731740453912465523838099993716316743617290192325937850624948705847388221080416315430418877747032576831116498438058745193778936183993091216143894846167673532511718186863578823487517120877740873145151517990525235102513032458967057148672634138985545060116900081016482354047239351137379402157883265943741221830226426517752743761818402017099712003991434930600558816150736100293721546103495512994174387361517455701792580545862864121813762072633494678101263258093350939182875690762636666079581452159859682836022872502653877670663692795527172167395368404542190674778447590178262143354489623153148468499233697437718425019247699860416216646263666597906148271828830273818817855943531316367705344186465618111419049010000628793960257082478267842192742747421538379046709766623268344554641206969949577472235397002553255517844360694959581778826405722093948438813098620818144650332922842178070200359661419631421347259145062741179843692870610165757495130921062591788667951080329216344382234619727338749452506178765510983529276804414107713937290207077933172875757735010010582667591845383153203477167294216140922990100846228437960808829392872334949849459396625329628705392074777988415440006217338478403296807241005213549080457323367811565747315847765087479014270656801493270048884843409735785059285430223191055953836888482439655407736449241984070247006801699526686096670549409789923874440665138982909480026239358734548456019176990733874659293387043978360307318413478170984318093367837239530649960585255216292664722835703311468706341388490626034327630333746697467397946752514545788968751504688444198154180679595890343982089698821860814302912660137494758625281465258523532723769205162150467406594117874521516529113450327062325574015669580887604649086130977033400093270613567468753161683147588148007312434307806150868213132537150906138869227335361193459180923471527568923037230332089790942930637911881902411869012596154310022887291604856370147706891765587923014288681163960570636136726807431582541961357218595247985584682949101154829658549938578831258648045194349541004945928964699361050859360550523545610421968719517601685375120401154809726621984045168966839804131642452437465086550082378183900106105720117318711573713746090915317095943557584172819927443955194806269496780758066442036904268264613562602414444450165387272062614968078298208114114195679267582385238371295400015163948444511952258160342453784429251704071663650928142291628570112000750178713819055815730575756863732071939576284167028548471332374403378282929204663573587018590349592505009996683898493152200466562345562990166691386964316719984248403624807892092184987840373958916892421821808756312583398134050949304647673788848388229863110851392028250681796450323870295134191652416597885338108848445848286698279156590138584660182706353004196612539728357186622851999949085196705945113109483125642971356087013666709962572795626324997709586157366056280878282910283754035808558639700889060871883672978630359998100627813189046620410120092258502934686666007081095282813284566519093051850340250673763079274750713636485872493610716400565748099285819264721061802245754328982006993720052674402902087736988148789354420929832255292030594754734841909062308223602446732621296990197963839811767444206064650389265160227514263584884241947406525919120249715898223737073114086948290515302667101033755220321708725739857275991580851616939355262225683562187418365781906335171753955758521519385765751001037432425429870053284172794819605047404466983923305029229391468453934657387891159585924343062253180110030200491612965548770212054022708220825392534300157325359617628951737700816752132728895512661258880934139019252099107336902843908480010019073216761261912075394177046357724736662118598186994121268146224902808645217776751930459262267386210243845554468386393458797328373633189443845960391505004551592311270670014553579878425989075155665069711632012518072186551410065083077707294313501733511499888967955327757624446603022339405442864858259545158844478381241403297680428406685612079006776402375293707155469341052150437956070577603800723544278563179834479485770502031833599466374102397737873029903804626938066275428695483193278377553935373367256525064229012227960627950412379463270786022068617464146179064801876311704873684492887953547060494655076953280485673839854741002156004679376261488339951349889218670689066502677839936296131372529048725343457174948284588558785492599468414503618222706118360466507077021894836980086090542012876508272499138881302278994693149312147195317434574485232286806617150487024895268503857529515314580982911800603630634825136834678883322096534159625928939010041884830250247668622138437778232102631954097295338029454633315468165955390191351877309325898479866676211794999669584359588481748109959137252223357591268978923313104791821823834441719131188376583410614181806102828826015507969219308218499968528520618977061756802267161798349488890189878044273924888751845673056679219640247509521442946453276210121774974670542951908469754545502125969412284722619973190449448268105786021373666017436422916227026409555985081128236481953524820189911037327716042131733472516859516890211120589172732915649646123282879393813382116823100730796437455008829987646850720339055643271214839106908535783531005089078502108283455541079121100923757873763435057868198806237825461866867547408397725199540300676283749474285433599548844466242649214576426313008802407778089637929378063099703668066789084009951361788441956760598939311697390385693711627624142528949896667707444389452198322959333645324893982791567876200180750741381278855332666368799224251515440217158745461286583794442259596025478608341953659586281510535929208972944544004503683600282853007615807194413947095878578461799975987222786668711573645375036006650394591162052540016467319053897310390378961441297191333638148635883154964157585474833569699885412905947654041596990467101424930690349172807614055178541181746704157249811591219875905442352537463371587064110944052565623377957734615967724712459437686005917311580272285657240869748493540551043492328691746939624675325622569276992665350514289422651241690394953148624199778360260944271731343341304257785895803577965790012452240760168688877229143832013356682726724679249892761080160113308651219384048140929019462815336662682516190686211680408051667967071455135250484109095201408932380123028800634670677314580717205365115516171820674726818646309802717857057669950086404172040020361965229501176127469857378600132282147533046214812792411405866814957995050623401374419150417804842786050278479581450181880515287034974555877913505103881132590467198097675469038784004391755050031917036674172942582751122769520356311279357340482446340335174094296421188905662177427933806129935780255877397878653606343262454783207997265232380864590502972742165403890501293329751134436346801164656102371207927481279424129720448146832640019813650284103739762199166688479880777237995018201263265519666248298304607004994783555435305739046262599995841945681352932703151170232404648062922273982059992581143345737164149879735838151644222779034140674097789806987345337827194722707292630955797081696718718301966454824094121834511566314806205878146465799646958900825486388589687139804154072463410081977243313587385220860581115177374995167112376578071379357970289650035000524223186333082150197524975841368459374334320045985035843544044280832964534256878763308786552717263450718633692011993283988738784719497897525286842516052766839085001884010983370147870607000158769835790378954277689629868053028222670479723118698995217859699461980909705741490163648115157035716473663450431757199615239010839732073662630136885209301376965146380528831836021829180151254652402772904008838220484896813766550068898060965789120399293721249974542035048226142858076842258871030148172163240943638874405423398700065367957651994112902118182627778321929956850172130072030497684889123608087938043897068919802918363396812534136637574978228562101291791785531458545141337432177587410448800287461218220688263420583931970349010742357945299186809678335252542104816164671940159256588798877882751181312138360315555875419998565439289879808848155843376235738783895446299951449956613399545115404890307048418909919643733928363503924339117779804633689997780568231684619833330944138783507949160287611589863097513038865693097569793507010405954128701551143801234173368415856219416486692591108172381241244115755656991948484181474402256411644551798673148223857155199532521837616479435212960409418753700067460215396155365432798591389858991638322478630012957793309178720351394629811709423216555635219468075129736103343789036147406759306834147524756377731766697845451399461937383081774986542912288692148673501893393838863539354698845826701285238190914949105660983357199230342482433623262318552074476180772226411228387771676592967381933522126365396331124429717123073490319324562178874760516807813585865448749885720639517977780287124597463849704244895764625165118851673515630428087598564434180208298123481693497591269120222051030164649034574995306842575045770202260953518595027637746710336059480004697527395167028603567318316124399073596820765592745863074585302922561909140454147343263289987454277544680141318031703371846299678033734322978532775255551621858997403000393169932287518043138437269456509355798437512058588864734732851383673476363623799086280707379596460384316947086548556166554911215565151094925268377527082645030941753401763362320335359652561805691493442521514167276775568693109109830682751304280115369065692269944142608170680810512695685436296087275942016621943645569145695754029142911851270286296355467995453609653752007682244142305277901855557844863211312543289947242675817500309645893974445702097270149987727411034877776946089410480039819854372045026529398014354294266663455894017378995186051085437227504849514483528136804653284564718227422082067565841823987701463733590070975236327704636702424162001005911903789634080987574750867554462938706810214684204062206877115539452497457863308897467528282764619606600258772524996064180814157052269608110263409848381378327599750434434334406932878353588775735194232178498966550274994019106468171935097949738143069158310580410595614171771334131975783683862958116281853903649231847031356510428386749555032235816201735883608747659217714994572725049730849423141672258195742138372803665597721872382343047024055644725214901504843970424683485342652684564158424288854147939387989281537311026359527291754503008065379292566195933542264150632030139345006799494754858734131521186109660806047716724408554814294135742841222924073415251526960620080645213399906282498777386214043079789572889379662456081692166224800676995172129635110796675448968739320974635596501829082976478526590901812983211518512144557325400990948733287965134583275064203739340403476101994084498998485808483145122014909909433365251126594344209089001073598386678213076162933192504658762992987580951281711549455805701805886966982694684144622971351406366363196000861874830643933331962162138333412194993655854622555197421823791830600757028711261268474136248217628927324264800517617840356633599539341329296097606289295126440620893974802991110269411063455149495456296371008795499927111597749341464477035039523401789636366892319919799639827595698663990560373248872401012432922334047344623192243497768732916168220909182921205996674518020719546279210773528148113051136524331322464688379452190061521764221945748706846864267013687710247889930629104730230393340642831174516821052022022002054841160667442674908359246316597042283942982044989497596100080612186881286350772951300093273337537760535331798552596153755781870328004823744691088700670305485217724495812012142587067853257588971989923395892190620242071962325363522695807109132858655839803343555196803982715045679084665745828900704726275356792585144359863321527060056748113765232134410447332743368608050909190253571111792718245780386837502659042140108821400260604292787157438450828689455495447293402076869783889338437704878212490871197058630652744238376652636679437416298969243209215593766774315770080875166662453917438973929111044224959182637237008936696787822868498389118176341938847609498241515007894412197138019136612606844588632563150660337628267588052940477233739258448241482060544636387449768413954634258150674363614214679497429216807827865412379882936745330974650187039554335211397382347922947785423781659588742780791979332064635041911295013644200681848048753298775123063922209070953254939384637901722173174690923913184593049538648060087301062003560042079983827153331554809511335499518833136753277407272362872139276129791612315530827351735887527357500851357740663926296137654681286927422001550497084604366388934952264380289626286971719984908900215065150272437096762675108682270471665230206479743697114401865824485579737021096972577789394561782606762859771903819088582839813948085989422996532990787071434945335107247364715572205064234893289537571934381092456575755452784046050302790387133171767402375508498446519440691996407502692897502727862904894273605711076225638374825464479985180425765250486647573293934155319501495257440179416254962591625044827638309285405713349854153169821112949774819593718353861257798646945157759170487619369720797453862511326211872599461162594498361232734706494615710067228564874562683995912451398953704423223253488233788329954761754141104225404456434324395575686063715282173931136309734468393266272873340888021186136398563757364388735882109890922315563417889949161876189178360008790343376389603555546356858090873069580920089298373004052584409119444275935856243029589616265540600243305384686396481920215609582337776312201338504111705359030771942163148019284618024153472083422823399670680683542959899497304721868515528235145015644936590450271321561620164054841457791839948093896954985932691381237962081760585599448973015641176354474903063014439828858471961300116305348753240428751499599373222502484031676746571925892059264800648115048888746898841332060750727349398221211001976398943991141690432612901510205276995419058546442720017182397278033611085002686465069703965760602208707844835109169266127071815114169559283072290031922342024869591206225868465373115658366732114368450161904159013016406294301630830524195721828114047778198581111898123092407579185762239342071552689540976545491136074818798089142010668096445007086295727602111223420869931229665101376587390894045215850392997512984185520345661637719773651816142953973839235950851655098216417783359068639993111559305970104725196384689706601119671886699990261183422304654075337349918525984057898132024450504188871656949428565100723767620333898693319860016442833620282290931967150315785973852170869082542059789805719483208888295128318420845794129166393151599635205191014170929109437992725993253214490236502887480536066142837282275533903646055130033467582116915775422551786015256481769338957539575464739731003081982260750763519105735374854421907402567468560902846278445202305561044341775462379101348555697512920728256337826608367240300735657283424442054145143646074060470898856333575867676868030825300301407219065569870934435165498604738360310579527153317735754879008288459599267750994611167881600782529784519267915467087537656596461496143218058200085160649169411400833527645693777908238206505482684282974033856326570263520969840949303066168698470404901818422657753074141803325422590838766257920307831268385281796495311724341069779402311521302200883365851093279346489549890855004892907092709185187921094212984461391910507713570075215332719604567912550497107660678955722253038451416376661143992415097698165534031197038634473411319902756327628999030785817718550461768043633753264993645369452178049823510861413661770689022860473888799950649393235718687403620219440710317820892767524592310133936805221266031153081464633462433884747935071781414782015207504641797275574107258965735959294083914277739520529963355820911038882924004344150732592281799931325963385241173599943754030656921153792405598150608791999049581654668763821840075604537319792370612702458946815902915285344089182453213577397056600795809620087093681226595200297348353190135082890986927159119444726716694910723649076413469573034203717628885019373164083964273347990767600751401550325132274098704186541649965382943033352542156731974050860073948968374320608628272104351685748808108275192925352019936492213576604480565496576159922445472139000003652280486854338012837129501536962040514154382628580567253439998800170286332953279873189500013405427824834930251019647223178270153804831551978291450359311983522475050235482299677188457907741602796204880503389548671092095608785505686997116715454728712519737811122885626624315887202506504481184560402437962777798237429935762372182804882573981206092655341806084949093789451432193094229198879954003028347347854399357661578230790163024479412014212396274035497487585933760538464319041681801611652774408940728790344629511683999471830763908713608840196665998071678841063119115955549275102616209010618304204395558960098876798279739970365004627567984342112391552927087492446774174462901551010038820318579247202319208024430331262906032337117862811285497207902012097886031462750680847060022236035603148712687843316963706685626264773226727531590591955099901268477698930592431406678046424864234152853950765950489831036481823730286044241999223253808673625644217014341179079496921578527470996796736527880833482724120796091672910604590087941117057360665023021325195929233827074969570978031351987521268916049008856958517621488886292326860077885987028885645517596895396151356663689084243583105534821911679549016457661508872509268689457729120562448580941890126167984269685166784046835437547915379751283477919499427977957374573345054653195663438610657008849750628255041641806504453254035203119529151007608392392667140371751869806397124082495209084140490326453607377359239897503785568791837358893711633166165250214255419060376480962903476544956135275036933111753290176158810461525272160528205422657870308459160345279421267017820551189186741846715251594695080953652943762464895075765563648001897958592107319541384535847151777325929364193794350009860681522446042146911443692766225061112659677453120233734678290543952075739064955670126507885624468728503801286791028184710545063662191653243445445690223934692621200136586624598118378026046913138718369926571321807447009168337694481624052072146131202013020497212374583796305465963554979632829671971624459268473713921157312528424919620974966819415920393201445567874260546033209773146417436698664065714363995054162451024503302103252923500446614327695838853004754095853080088386590942599036310852491394451068548734152441383191066809245224318300088231354679220900176736517612341080890796906701986617744536976272644825752417099119345354903182136400561552731377615237547020269464640071911826558712126744530638952841011444204991507172593082679352015935509866205057536645793874043583170895042256996290282976898649205468519635076460089537397916714747869259484781351613274419928315360536478537863644266180589572176188030152207181932447157392347858735447072403181404358232059299868871859108010210812249980013172277182951535798026832458767469954116788578285507811618808285382466530484329308241105854850225921787507434404702775246561698075588168504899769773103933711392114130225448038666768602779149133786301092233012735480321482967984144183273093493390374593649337511960158296963736441996509553483804272327635107659422768074233075069141890366156546463997999241490982748356456637968826871374973486056479585257647717773116965430962014837945964125118098538587154241415471495697590742743169798623056283434630292856075539634014269411932190579079100013493603539643571003276685911784821396684938882728203851297583821934204086509668956626028173481233451370829164364507466341452306370233584014662739325187963258172992868323520812981085145444789739636958483214065671169700831055632746123823196232194105201606931808988680988952740367960027510670024100230158212108498991661925666246619851759180809803195916811728449436895977484721503813637845009722294738848816842571194845991982701650653816749569219030574728170422457538951559680089173793862279107877564576741066291855299413280479202502594884493662282737280378257892233704249908231156071586646872784573465857140510165334987437490184826687591487728698942558564895520658849510263521800576043346692194793781305608175438556371717907361082216157441179176801872487025390880867442600814120918103346168586006504030152821973368801729201788024998202477627821314960165085067255285991079095547639253558292556432849015608202895540999303950441916688221762178275260767836377000878358489583165740536228396856016637340530898706108853498665571289825773879150870000049768528328882057724163099224092934358906283159631813762479218509016865306526712381632656488964346480881633727146293484531230806534400353972696741163427014682743909776793245378857138905149935566138615783426837299263969646939659559396085798294535631334808478704645078464413417365913593022965055690400420282120321395456217012859243209461970640334855123275674621753677019141862088320041664604053483301016851959321593695843981273343805382640685351252277466020326950771619036544050479682124203727889713791361844880254481578110975053065446047691395270216004571540373919213933820876798024146687114706246113514159422330977753907440935907877778601897994507296497460461172866577234301291197189888827348804567576128983528504520152345853586663463527854800562173184454115496743774671127893354469489308295885071882528261735009729236528116353055446705405118913794379421730181371010758129109876155794986684597950755328310409782517180261468397022167489973779684660241433132906133618491829978998401739465464062553723920469860023536508993205924469742747796509129802835627397807867597122147319995081856786710144229916356486623914624602978042715377288544864610342666070527388062983518479524035157973532015797818731529469443358350563262664350328008519074058930359607514602444017075984448659427038049103939932917771374082547816074882707337146068827597370867125152082458996851801379780704921491455858670722088173957927222450799724531571945831723599660346439237391754198956834276474616214978825764866017652890854732219843895696216779183493211341074870873881694288693260762943752684163994541604540111725034340466420548190722967209775774905550508321381597118938353868058548608017672216712512207841559786363528388003910628914679573577810606221406613052252644420743146048247491203464397331418485601637065643927162674311584904330279327428715283164835585654415317816217533562463106560971406592016645856957252031317172453225482853969972642870387082872485987343908190256641032652101677216931893286985608390441886368637915019075917067960948432954587633024374513756577819384127162839143872723194085837578003318413280514906747367031669856128927087796052108874820387468075558225461462445954846379866468622427931658215114640023922288144911027550995378771985946657021629196055566128858831493201785090064528284579845152804815882876751789020450167718472185493988982465169735156745437856260816099523285351223100692144166581974829854009725486385059001790635986292958406531335898466667193686894960992905489695927241774184271480219049354574855192644226756946940906654069304077044834070697969919818834907286601759889856619057545080423238823409281754680226768778547653413020233890834782476808752142758120681484096743252178147228276386565617561235737821215620501831289512252799440633706827957037079068071617639667786527697096258903260587758055594542124484606617458302718467074184014916528757506725857417862712456791881933497868251894167400459380210705924648206064592695617627321118338457766988467513803915699077974991918331304880882346782945797788148472492012220018752382107657106438852115489853568325459895272322596546806378871640036221635122926602214795599361573629289567589266063813143350260649951976066529955216535052930893332722197962506681002761822651602031573812531836433278546349378998088042944619073866846558638739108233452723751000839674941020714097063646312442350090563598040181338853825218658029660426037973829707411322923916334137133882786249010640362410559123709704118861159875032582571249569271468458590513273315540386225593790561091198601100994349765341173860751402686445476092074161085928190988494061967529220893380474167795094321487429549765982452579467090233452460389284756107317543646268338570362191149986691416386178761021002880376141617873348087531760892505882503566922442623472400779195524447577368766058200873029519337249244317490678696296793964172213083573361997600863102991378041794625179432024059901086682301449417686288528023977509972022062509051514580287254180817425307752565220515546854529555853604886425648298410655590158426385962768483233361712967710290365197506435095899471401719343761000787076136863513484358301593808452166689382247586891102852526612710923560301040283040768318871412316183774853358083330854959023778048442882930534387882680575503916911365344819009004983247253612393571714493798617001591648304466197670776482210996292368755828671117683801073879445076664870035886071669802110814310314289146082754521425746480312198613794484585996954159430578230486518745362748325645397235718130876888267838156870407839338136310617804143978657891984998542475150029875812667978279911279315007481417152798268642177162541759469327761663003898603602694138307239233127281471423692957752642857559038771303173867522582712061896716895483328797987516131326223785805275553623327860910702148908221129442715660454354061615415470564711858200449248478997770674681935740855319335000562758094536493721934271954617098510203337546661030004225944842490563872657809221165679695619207715336941595055284104324947463754921054641227198839057504953083292938238472841134076309828698458921762882671890598190971146620340130438160387987057955245245771453700134687005600469071077181459521190429855839137457180229064238669616862147891597527625212221607766430838564509811473695831058665712661813987103737847952969783037877342770145512503207965907871090466410760055350985920143943429857882269782160505256228270309117822169493378306468969381878886051259418837928219269193942512662577726878928492899694547657751208113723925299232803745323317676430499691534843587505174801610264259673222037541487240360478512517283423314402129275874649489941085388586652017518593766883601056181440255267195970606515942241964437565169138264639292376038136940754778807856424846450337384504315161670831364736377717408442052417580888651291716659623105289941826189444451483953054991079776321048366614156696850214885234821696337658436274741468695526869170036451801439487143780149226587970295164530026703198881603014840608540317802443696556068424248027889021785145618196317315336507565765043936652187161854125296002201573116414699420397595468825251458610437519130340311511444875636031228759743532431923418882309905877655373984196175660831092010195347212762489788784725479382145757807069024084348086089504805278467157170230621504673710534939412516526722744690005196680198699233284706411812438695983149837909679363984488143552852348164849350303056974343242432765657802941964212430107974876844492252136000524147241503890568612106292518524340875345688995764907899420608938825642330057978494026519743299762561103072622005001505006468260537575227616413291975139400618900295490620998644106791305780561659641978734053472271830241104446659232529128492865876196285497539790653445215554162866808974644185423054230639666092188894703738068888429712141823429983215822357851748570730259119372552056694490579253953754540585716519569235551463599704821404908449119014164889490420148844603296301607677182446254760275531180724174627532509763696425430651594971839228889163040072714870369625119248539547562889960595531121638321553813990590225653953866315577164070521522739236745586819549034136030882844150520543740790060838358859894766435968484228710370949261589731713720436577654104987364736218079424585490896449851361392860432535796120579481626178971250766632474757900250540715068207859688588149480692714355810191124736173329574049273643757661741619955588874806354838016370505501901263750243814867555797198109468977439298118362641143866853042610918220116257037436092587167276431266321439077692148242192085870966860965423813500227710435957052539431000304480653900172506852184346975512689976188096832194785398203897475887352707061999959710708874504790317485601208894633136875056024745365578030269803935189458613835245928842192323282965682087310453593214646583957059252208964688406987546339854373966791084373444900064870851010781963196494854520068801602542746542670998297223929269322137709417163035125601525855166746055171210838863004104891651698398999669043932387646435348753071221040052750982386376167023095535392331041626759989165322763499161733168497260341344640375141564918660514959679415454455758882684638134485472547028398414228582949732975867714863096985542415215712674202342950712773050378364161427629245673424540278945743144812203579659810850282767293747780084720474593773532574981706345605818120939224343080353834885353709687243408988000258037776089280618180744064778295284768039354939466810571782606203421426338834741480535156677773061666984251435175888289470373298142807172631137409978520912222598302778673360202889823434105496981415349904562897993466047953864387208334991583231539981998168443584809845664041934792436100793934786937064447221513204082995078733824187225050983401949637132955030647944953477682525367950996681008034200778559408610003146739580589360442790976632518115005629793042263509108353743889553705246694085166419620068214480405199887065921941331016629063853402549910875400458170729412603640629078557071321313708258605605305052386727563681779547794403661447138698000834295093832897665438025049340627463097993015109072370501783621344074077174222966523846636805118490053479527937145406326505575335117134467047504743805178132872573152688219019488588562700072616617020873688127176753833872040652649252336974236761975751572427911350651886715082175534347675466858565058772098561133507423265542236100373517575225815647780971471441220820979320472652341276548580978244361643829519615870054771087008987388470752237974853579033799638117876954059314178840045353768473905368033406993781642419640632842835121214087960435634596812257340226254295052049738377379397402050808914118442493258861596551099018331585687665444136037477528797922033731836253922170572783939476482800544101923490270135026119514990045990079537167296468288863521075695099515099471377323150396226117087367702041046647897923662149463381687294913670558557478379939865680074904223075819583154685244466242158885469587983935880568569514360712045539911226357159919353166206632343847673178510569599342089647312584527548139015918611188897422919519229270213133199757172728343613816348321576061162435952504006177580909510611989108169248385508254565066291413478020852837635429045938012471677801369668278579651881380407904662001386917341141552496846421275612199667733367092050121980988810803499158647065974490001089558418545154318505404254306707490526293527794312905286279613511305281568363450005140608411249407842387473747327875573499432341499162399953946547900317598611739112321813898587982383823965381800320398757434946602788093125365369352738707086867457284284322379805691533404618581503289595826878553576922730336069499348608971623763515855240246983812725004330270157192695195280449337590708799988043674674131477371866866570938320865086329211356593258754180372054986850098467045562875483726738570727219569096733399098467000654352676220031478287701993284994585138204103339336651063521895453965494521715064880089283606682844609443686126788710486686193642549049874457549041458092358022358416767208028373072783088078625460443473852867751822793961880820232735833339215428735713997883194418131599062012802102475030230888136994754997840187464369028057632112408876464272239504111187023973062728963585166384027597520898551182848986691846314759932078741899474545128945514889303572066969866540243749512746946176691431775485883693912503010572950214914143049374879962180602768367955100638612439340354608052341712683721181502970672656189489431559366877979240935554201328909991444347973797244205201028905744519585993921499340318081168134480461538943911147056344178797301313963740572291166122707498411615362380788346824408676604402622166395170252294878266809798544963875285315675272640906445400865580544712374387782689297008497352102853521507188247509596059943840280309724834178102684191977386361408442679607092867076265799853746658127646656131341964666528357918151968772696989403965755260699899378852980439970022826986662096772929848090551089164567573015088029425406554431289088320996202264134473103894988247611324203995301330721871923103302745924471957983422723449238711714298469814804516153694236575060254458202861582554159004488608426015702236874163894544987865327415443649974197105326475588060951883568917055804291564915758164038179868775276852187135155573516575496418514643165497770625456813301329162817193557195943162093071466244910181712328153796047464042251341754291498931277470415140652505064629027384020331682503522643364656705230176555710663163408205068417476771177068441427746316364073000497044735396143806808892735149428802846821235440695760435665539074239212683214850895423793899365806571600565575880623370224088228055756886555471451404153789949580208198100956701069784618628553435767439938527033098493374024216999743641238044828810885096893655574682944134291667804631307142281742189436684746215386941272437842259323764803615689162167880823782127304359353172756348247490541197763678359095388688571852496067568890075965800655158501638285294487517043628460728715181074103444641986383850918072668185633907911278885320044213556346404635031332304008330944403425022465140243308693600838400632871675639718267513132689167618089159562361112579656878632578830284236222512688171487299567208652225684592440147060409275840209854125940431185849933396776307124981878748712492503826335866486950001328791269299561260228823059152643871134699684554846734226930607420850746042592134466104843210323021043928832841632241354814308266554534422643158762566996845014702095492656277044627072835047294686971433721880211204490839065044340990774098247255350366720779409833197384451237531106002828973554499486125196392581344781788898852330497576807989340189544239699622721829513745292141272202708373878445228882082253201166795869059434196911898191987599421263911735302230410404076266171399807498152342237785344567039977093180308116585962619121349271051541252142657848324007204491735886434827576819095617486717255035613616023162575038902816802924577835242219050264437676134610028186895894309418761778035186826710515548575191055354859687944014695982478837477999434298917076246682431652293470529077467033187751651907427130790589644756751070832606662030407920525404294878360699728007185599341817747411646535765143059509248611178732119875616190021955581572373898504585556206347634538561729847030538666220260594034952827699665562025082520276192429994303936818066734490148689627137386892286589574431688915247096083645862572231934970030315698872119741937674495414652728808182931789962513884948701036540425426527950723030287964519122147586910373086220959934787853211433147090848817931952930411355856403277879268551188623034042104368710408812981972396778951852440343447436395243616229703597563401345268429759923266139873517837412000263885404649620858166076520590433632066343946951779100116072630318545371446041183014267029061192196571305904806961511601848260793723476867729385721264797248223519241638344050114933097545937542544058434750780861378138488120487787557468069883259536183534345047428672766503851870825939699143220444556838557351842729504701955838661239976056739160536841222685592438112994846155518673458704740001019995583917408550724686889167719670310846346416743221570819445901619027725760298515421468315068031660964539572157813928940649644081012462257050656767443943254046467996192696094329849679782782088688746080282727751029958270365293890842643442109294382301597155618363760027112535554869912774173020391096449696318048898591955884958470000407710568487988852669332636750983147562797401250345294688128435377595121566375278323095040829344388712050715020492772384261367825965543997235426066077305864106085462445774644810853409868568119403281825570633139875930321809056655653770502536306799765235749665003044477199740726178730796760804391880775020010074621479239428393412997510180402959102231479406527826346329413937874028962817768207497399154575607097165127313896185324405259495257392556697513004969677425786336163230987965456439546526423074687162973324934382123794181803809651642593106618184556579131846897578262980524072700295825765164619466417478830723468720191579249432775699947846771827175609906613306376795633290765511948959551891341451058178963694159761531747643598698828699760434104799303717214594618302787047527043330225159259224195462157812801859062799597363570243644584466806945925926958570456938136680698098426118449928788380185491384913848732813931486477755345228498657750047733998279409667314476512074385171593280827516573287611865033359597346814700833124192873367260094774042414629139317399538182852046862540057737734539674678319406123631047700409212448524761659780086027708037993369531357031087117710581843108786674756040039653168124766901556211678269852548534640033644139090286018860982198745964523281283783352109106915589885987375421726055876523431153892719592794414608977212176041003593079297701319790136758038073733191964886562315634484478151487177499568054301294031697215192357058355804080490006793279556385470415246220827809578033862063822415010377223324768992930251237940507649561427537661557340597221016028473960630621682167716401842602014343211734479228244621304326571029040105340751948086108442598151903408256227383958867013803066024905241167465661262147722788503175789490766036659233333269924138102895033953519534726872304428073969341732048539117243293459958124771407519200536311604502755662131654408010433807483563657944861522496779687541980762454643570258747283646586234166916985006392571444861028019790737378453771308924854154309415602889592390091426542239101293295593794795751582126866788301924423283741129496091492924139358925048544658292784490850142944405647941937362670919822458454565972750403722937480217343671925609107547261566937300282674708578720469527805742582966071695479019580611253240930549666433397648589050311530028810795234011163876835162324144704359251209155323954491470919369219876184285514025185432158755074872020474903947134891394006466850914406661723508897383138967158504057981139718710177199779311368569638029392584058047985975720604247959829732386836623486629145553287195156591648795009089717716850995564448047890115617694125972341268886691991528407704030406702801748017432981054890054367831702907932417071012419126066344638649130604600169226739891801958360797780349242330593654372460403664966043532194123537650290153590988559851595380051313734759144066638596356748145059346104818555025224685355063791085800482262416216514842232704487833700688448475324745423889930145821999803577352240670038943237990866459412001106333709761414717019570584227532236142252390306299494988390292763569235926751374830558792495874657829243274533543835909419650605165636474889665021475959170717223451302035578480843745394087025769848250863396574923919015709694607864850517914965473492719778125896303477678495216437648057738096928110111353514601237679799462913329842778666055607051584009451202013331745813666962783470405245961080722150739549458060707066085386124943654373814410155875421454712183092693686804996199525236458721258467695977457680408926115296487132973452619689110645395122382217369825704254902528413809229757548545223912621871044435441359392884178176430299654783539404863853437141156065591522180477879548823161516908389638016713039827180418871034360155471662528408069067388009552144674381794691763516598033272428392808175543358408103507571117801654335257434817424456197397696667702661917893511645381702597044223545019655977678490838657630994664715929022312930061098418042729525414779670212736028599098248769178829431249812602132767194019697411344583167285237734980939105750347795207594749904494423220187663913505582734101648850217238268477807691915738102088387412279612377748071126668113579963222950250147267044614359531765110113940136621613802978290251479670724464375626241620893039546762660203560777806767494789517360961298371544923061071507580826215797993218924606473526105218349867229033495851302606270693082223853441695381263974438943771100861993587067726567429420288103604756856862129300528520843021028299834444264734433998622902736853800407638818068319113559381454131657783103316255087550704646006353625455894156988291698843139948339797922817917729038549273326489587352569899866923542463392676554629425322009950758266663794104335587855692039929394626091737948234248992795374174733056905204138521811683785434807838526513743253807724535146037319847103819736473536022720719769611832564141379003324339369090197330977184485391277458100780994013406809671024345036467034686974668881151490431106073370731094747764135098144595419467486850781657122084055564336810584106757000801018660104450796542657817248941932557387986574680419286802504965006074491024843850625302145161072203842840516197447378896888759083894198810000099294116581592755313602706274395360410772512146751472150861758896590340040951935188429607040217084750290886398694437456256818430254621810457490208905225279119927627001924211311865399169135585914621205589105710913617205125819672552805441423846842480404530344482475843873221424560244188851712797207295938634191871646792771305660815442316715673263910068595658386762619334367612064043048470748889763585885663909543256903801924952814743717304448825219355658473048509556569998043318871667836465007689527670900628330784077237303435252867121439205777079788123935037287696058762930673645549838229328240928871353805912935688311050782482286509489593052146250624673159792218038788173315696868484726812539128559506709189987268989946556524153156049277880329221815181106391041413776799046537533080532842047729924132012399810963482517803186481343937905515144535569383995317253953315653696515581837894984152914167670040963077664926123386857759672248944387193637793727236504449897945581789219266648276907389472483848941438124737688883987539566970206362442139572711611353027917620213940692604227130367607258524067320706386810591246512782592564946941523012477738525866577005206723104325927354291329200361821914395863626773302969534434898522196897349688140612277170732189336311046470828000343820603976703123501907724860986236685565806733241346976479296880863269161993250918303019615011170244257286876427010347119204992544842799727622676870534488418831461524266435509661437241038006388013926695355534401074597986116273167271797828340110930781724528125846235107917403727912644536146355261908383754812359118372811607238604076290651329998904288950442132856999012802194803648969175146924308722022166688401022229178518967611671617048784269125036893795856259894067376263190587035475224494017387756696180664192074407089454830453071908824751178074563319686109766562751961845540291975617588705988115153732553089989869696163736688881040374429907885045876869337665548765477730912625487056285165802960974332058048311962596251482949053289472928041895450961442330180661483935917632163647451885134952556026296220688740242751114228228578908042415032707009587301512093304491783580248534393753511767045842585485487397568420582927013886785185511456243310329355822131922611807028309693853145930207923165033212240873385001972738211263224268801076335820606227230323215976514436412547826620362000733092366568117332798128824481225583247527317805065490402859297391287921758277890469840527315124387645433192721861346660177933464106777400795436466420717521573035865892608649264095922036127479802815544712329237217865793661319990094427411836274682275341366414796140434779242810665961010891340299420044856491297839390585831067153673175603732794515116847347466295137501676465593294167963121910954740130752562864274447346137088240829924446400115466693834176843481732675909400054998621447588112753609778275031522114449150651101710611097047669471616849729545203607424347859165097255234403889901043471726896865789846419572608900444276638062250119735036761202538221954773880023329146417919177052581065701104410647905407591239864492142076312871609392987341589999474937007272050732270316531452412689164162335065478721907967049898012933854374656301488415105970046812137217730822618256045686538078020723566567150773182029076385859126756178887138197456583789468831726108948041757497383439517261286105008802690974696315044863314754002581838651856485552977906100040029680310867189110878643514902383159774431606367966258207799663803827382699523949231460374550880642990794862683885034080365316158277549005687657203421910171511516231834808997307479415989688242541874797920896438035387948223005847553486427928433903700461624783097934028120810503349234793181084143119699716259431678870447768386543448486762249069422468873671839533193531476825788314752217170964178891633939565099315680560194261376532760909493178511877868388415306901176508208521812571517053897122354014892513233712505451535857458297960143185933264112145961491906195065196193564514791045771253676872224826625843881733059990575608176065788806208851506930560555032707127401364293900412809103118863925081793024722605772267028542267958738387107228764366906795950130082684294391082145003824026052491693840221305156318351802001691899150052439031933177870048342507753607847559067378547138971500276156280690540007711164272869209522406084359090263589242373056556895947237636765438340973005050802097403423781982272894068571910817756815633270651508573485414916499381619573240522017681059546514353109855171692542519523232524373386789263009831035158521252192250670155468888461805231589939174505666458288618105519630567843608475963131648765417406327844024710498530785982707841603900663654963035896965628479766189315174581893497520837457010333296116245286613294363315841607107021311125080735636399511376719179584345891707084666963561202530306495666015953677167740526308980159946069409197080869652521292681313453889831702687890331426710257005059517394235034514573073796952848786404577876686325122457249296535131417679020200421974686515499606419445561769773615677275480585861569846814448581232241542705770763039457037502735756296398163282389138308553000983894901591255834455386061632885693999944884012994073430363457139215199673550614088741422491136507755141249491999828573420717531883841015488549871328359806095033462831458627190587424259328758249719840997386901504262122726162593700482220861461013739554822610689852462277753791100338352512152508390100039525983206595217437199914214511119754089823995387852171273034008626465276448644029882331482411372475722244122619742805314751924014328474785068658605196488139859594372544955388932947719954890224677162583996858424995427669936201725420321061844133245606818294765056670435240600087487047224298587804422032415911896298322745148336878245204615216491307580527625871672998913076338086734563547717247653682537340254292946597560423999569704542696027862883008655767048839262498462232274052348006038374378351399732980393381063274912218628697837684502410518989337890882126991769836684009181359004330447040053014505762642550807487099353167092965119472119717753506914204867491256138627338167864204655154992184932880654960396697359978080791809820938823181579379524356876181265855969627834058621828196824884607461931354418449216826876428763681963664063691577645023841913702114020134533055691925562230579163182587050732240184697958308654426748834625322470552472037016130796545204249520028254223775224662105183926915835126830857024076190938248803445007138807538907427542937616463386916648145013791255936973251799107275719536461477502464254426874171545764825040526901551969515967079344867198095285704048750482063704635849279231567656145903035933334543032470758881013988915501919311840050761558744959283825584577802251367457414641162805595868017101972941753685298418085660593318472178818835129592652955893842534946880339707473834581158126384643051658595333110592989659694514732128665649093895031194939733987368042139358857274160244582410902723242790811038991994886766772682893262016185339856717418420477064936650666442065366752902834161637270220739197475925477097303124088219491697767703591686538048403115982863733967505500031567885348903231879340983017122641251080799472052701755096374528575746483831217047644538884634560296430397239851336058773447363744352561116961054380420080379747608254044456947531936993466231935256194313785092745897182747721931804535202941350260250614872670203805713376328263681220646226059540312113140771921681838985613302327066210926305244457745304660641688547967330440042303832501179974426229019655463488526953095483831864649735728463518506446962250082253895111946511946862559381643974915004761239312063222374632116137126746633071747936807882578549825040827152406322305636319135268035266972839453574867639834203348784101220761155703345767361755392881133095464657440818509071864428231082864303151375311181822487115069459430782282930233285397183399458686447126548256936816780491776117608880479947980307128236873119230778886153794227385815274512840252683063033799949563224827058750368201170049547367662737231302576504943211006042782226109360209024605905856880437534814322733489042195536899048173204814682132782935424332413674151389697907851689950389412631046511094616216323484352350132141154833827307784955343219559317618403371766276456366235326580995773716278403105321259060066538002563858843220684604130697492481504951575583219858970521679139500589844484810188596318968998085772431103019777774744543024936113839103758181680495827516813046728465408062961901722434918586899465448749013060282342590114080044958307140480590381435927671237812897729058128056585005617300856179493435464254309725966455488184167974578611243335426238327346667681992448029011067531792192581601021034564287299604077602721519732258737746266053077918630616917291728159417961159243949962745054678976751236744137506373121818090420359194765169908027986998890366835231998706898653091597674502679696861712370081309804726977105898773346073791256470481620233019180821275847851244504236661695147084093854640293641979950638121372301009475615658092025260443983453156289019145156348188748174903117086515776411668219960359236548666012993118709003048489275774948981541213188431347840128744598690520411168593038901505342073333377659316122321210031906814888205500840417109791516501269241023640045376999259249908833816149555422998372627493558797812973321543574237984039901531410971509011792333595796272971788216988825660311760234351085108694460177642757260001880669255311593741147801124727786081825633604490356148056442627057526226589694337926965252922505561005902602590059965165897006959052926750930760398919157098067718813130653413723965206613213430349416389338795275747717685093770046875604337343615127549830260938368152506341548610565192019470929855086752968048007700988283545840424777005406132945611277280378507469488378473511233452326507429580556228623418457023991814475941139159663328687782580036908688935115198620335472437899132230533530116436909990574234757906477999548638385584086664106703966013142516211844676574485666356608315774761091328473680068572448347789264421214042825970714938437630356428013235847974057797786257170176459426311670143001932141194911896309666803313354717795464212374821623800898866957558882307799355320648917000090525322554766952127167006965766961095514963462028645766920093477659750861439917604234259913799013197957802903548067129807439970632993994817510675371272546214318996451268417796572697829545706585128932712613928373240562804951404085732637747539295716049592655308251926911502805057906514547768450607749413269120178207383171249384576229292852725568343337675198539868168950604889769818868271116336748430662594269332290323475681940345525385848841899239773291158600476151547301320821201297708447179427827985623829462679746216213253808227266829482895276100773787363783926536511248793594139975667994927248697557681188738998735857834060606425940696063738765585103170284338230063754554744694842978808838325451267692857087154418131208150726968119391023564502583327015373174753612681027867036706780273886590281401206406998339427936957729010350188361684704519829728460147789747627266921082602886746071355720630830350442675691098207695907243860643207180237250087231292172546699521960027590343010743244704114204366512576472788428193496134942847554250762146401275821723884834667772902175170662512230369919382791300685275928486408223007443087932125385752057785255838856949328471550014900653172096793680795700423195855483544237873596134474993656101277933310228291182946012771168037291630371559213207144587139578548444059862865207472583607727981691593835688578015308673887131368855902330319651979433115363834384832535204635039855035048950577064223873112113192496946733338291586330500033818211767014206211974190695801935338716844910824379801626888356285588372707229820378640665963919504941497809519266890794031731999034127502975462930241021354343851809768640660650747704931749307425852491158699320481766960222121244364796561182683520932644358609703367082642821040273799890881758210797294122433266602954633058193848628572426534733917187848169064772486160402469546934550919648929299330628406579714353504366073858734612476798960402447990917433332162428223910902077187662404377998290684807651283369652078980785833800729186112703547934771448977821531387912143683080086284211379799064896868115416408711790637050384698594847724339663778331910140818660863026173372117413549224087474376294958835334905488281706665325514730581762193951476167532771055970772509285844158795950227948502128807584928117796484870326666257539913041431174224491004373643715952336930350263581337452092402785379500952382631387009360789176663565458428493733021825032939020230192092079218358766846898509985457651173030554943811201399824778514306757998492153606881798182815803367416653971001700907435497718952655789267179057993338968996049383786891603478704445283173549618481349055038870330598839387073175362820158329599753297121222612676160154835813678777504493192314377247173733249971802627378975348345701311904009931607662566568519310257045850640579786290115712731558980328860099866101971958188636493141058775430050988412041872513513973532194226130885508529948748064215072761357320109954187356841121569706019656864899852575997663178484038296645487925579450027099844469284296665256402279438701659836817703012472974015020849254653420099452401010085240713368647250038087921673321100216292858539889285365778272382436416037312425007696086843788491596203791163768298402789073216467371113344580256123313028850091260301846427141339841766235820296271074769934024975847600027010831892131049135006355898690207282810030266943419317819160648767447991627977267169963487755187472000850858675707377196887637549911668102617725813119246194530670042701916860962866293509842727075776662385395998153623418365060564507378211457257140168766089771585071240812073241576513032904294798326303006697273912012715950307799923094229606721743710529676859060645830509945838556705345021669148422457995770230239783372480711491887830777551755664137964425838006481426426077368338489168787921415219536857603320478779016062757757739432360417113356822913128064735771037537654305431371449136777565130621127844705198284354691745802157794100370216815970187135455691273385538147263262997227027657783633045491054249937119458097226117777226145091855792647065069548010226807832306273731397571787709167352962199557144086479259078781295640458650419135683276853090668871964411819155318246184469324952794444429586965421507769150223219281104600367471017013041270968056343866657183637053663716701765880566681058456359799407307829577828079295538809004726723695586492278820675794638159600618601755206212057887982110724688060878706500970116885464969455083275727955465450745070325723947054438456399941749248213180472187134963165919501596608861959515431331034459692408857182879729297808422874534400389224765151228464111896232170558697019267201555887780165809691676731579029992724966780592212603387628944733487384510686423880094632304206186621871527976264444814460917915153722171477961805512428454808255799507278084696950083208317809227876010957143958741620863877552344514809574724401007630130400233712099973872866012927661088065802163074736675924802932813108460824825964368131196100652981995984414415957108266550343867569948587166056404075909427131613719125211665155917796043662999823341538885621131442461193433128135818455676854733080273754069149676847350069928300542377652726401080437382237195459666610817557721272779150348769548931718666436824583535900712445456721976825616333593444042021175721481985459543302326038282921086146773859806438039648076882781103750568716588330221640079088393267555271335588907844662886297189561157442488556786090211928856335427271524177902094204854559223097912275412566240588905932824458051876197287198481359960158647866538747532435251882533739349348532001624500930684097065237067368473056379706096073408294710923818701849735957131049877518797028994079287315701484745434802413607901720353876423091102254633903394807692018012451361507591018165269079525221476766436071644529614990493116649364178760053191498759484088453865353350931877542369265016338705439237376620335825147520755572633387450163103649982502926019355505810839505366733190063445314697546258654470917514209672765603498735263352860804270764579270837104625318514388738580728888284187993089646054947092601558292900214100489609962633404761674326428178393813756156109924944482999404031442840606613131582959459002402721846631579216175962353546826600570158459364501655227750491288721009171495836285317107901850877598600076060046682409559025304472621925363041309962050337324432864326729390460751060814043662469594170114215198874481593459631884007830204676509505369423193099292308450604055187360064896204491553540539606748452538228922003196063604313724889150650363864552530704665908152518956901546107569706491911164564929070405743236804131263237224049866342146565194209757792288098856246899875734606118627100274709306700571426385757101368626190129125603559990197654105575955700768088824228868855476484092100816568286831669954187177458985292849084863390589261320627223366322644974729712690456144982170704892459251333195209703885731681390422466154022263747696146965849638724853628006531068341618820330737573042513579859381098915687775058606457114387926123538793647059053483621449098267263583920910027526461262287370251197191623150660060914862294276914633334171446768772066348421049383283667765653860117135788539022945004283208240012755589837523564119092668457709539863168038016126600312368352920449355277358147595151178108556751315906344006535167588049787294223044590449445308618021116124509644120763124411278724119645752761792712263194946858706231780877842125820472213047658027952608979614665364886106636200070472591207776407211098458893640953235186015831540531910079079156291794732793395760355951454943014837429136939279878297560293351976972796278533119822895703539873493295856534351305145523099797734783091634491824526713175873201102471806487513276110596360929993562260227666941532112199965345912370373222474934190624618220661627658382436218045061543709194371441619239409390812035260967334093544090885036651361312933313136054861900888120580553927139614394060242777821074026382253065029189263694602498179754136801228588286019579088102194634408383439642184342973700680527358089086517879071412352998596076270903579687096341870308410250826577224727081350998631074160679606498275808735627530997000781240598846390382798578566584928833829127583616765141069230223888806583835169142626923836255579087335097604884477895227128040961317698032634504757623601382659426936518630206330046179166337239808881998875297437949164675442814605705035678559518275434633629925477467948274219463186234010927671569641965483861733750962265162356114404182088654659077074800001836634498436289410499199332428301986510666737429060714279804479682082513070045833215651389773605412355434449700137094568285753116344854084287852985090638529005082419034128810089218357443688057134482218150318643381336696210581604961764129729634763114379790603185253205716945717248966200966001546180806572774673125455937932535306842312265897914530007149149088074794376184725087422954999345444180672978989422709328882986646507145578194357364205958461730188272022201759597710937484671128633418974822787496516520062562537526600099526568394044523898193006818763136881475696309816041688510231227106443956977476473497532973431122093088913383646147901472687182914240873613687426789411867496926882634472794670106872974527133335383296283161932932991991791857767241304085821802399540068556408045123062187726278333017746645534978819938306536605398654575155470472583836001881263449071963492457587168535350168919207731026174670453542104894868291423667266705779491773470261782545672965139188784355194075110867300222286260904101879536957598782140594044096855503278462673732142965999793161748468443514670319039218479458319123205139511097705770499607484017800849468627605998142314568848125156606424080664500106634191719029931130211416603631002008011873650187910136041572982818238917970398590880755216297083174866700123829510375234744341811295875194688992633164661854097178007326333344839940335598096346600559393902429289320453212282120192685034479257466684068524902889044500517950273245010387488616754022602959469332608752376204909244750898654277383888808115005973761677465644068343158456361056402193284056133880320936830940895909722425219950301986185521362672966984059104988740962038526836907648060121655301626189709805440879678982178258792273183555163752818557570117289686060973166747149366510822155432864287870842427391103334997565577486854104224955951889643086670511750649066981861362455252381359832231150183815035411822354731008488937103702234015559505499087411913166861310452902097269591990599892709613527044247425633225041731111092688430814261078107265554158261596568772259452461136340796030404004734081656187939686805822458550190185546705668981253235343924520435605022391751460147488818642278879092113794547420127739496800161173825742847940666114643935433734387226537950344302938859965121833043309212061046938174174885647837485071479727463768162781616337466955478185883506904448300961841086804295070991632047756770694183370703856629575608842346575508131914165481917156606493918008653537386595244547849315963410208112402132090234784678634835648106866879603335801246636572904592047107927453962483451131797595971062749271721528433797122771632992057745851999115845859730221730656203286382612045774720846500910906422471793192802065859148206586618421451433265895772383712603177846109480896337696365554085873045207035861187775803464390882391249526732369117602180660684304355398395003781785902974370612877866581654658765687169417863716508695486739856575198199730520250537566178048367719002568811174703387239785824393151518476717427928533891450170949541874922558953516592265142250139475306404611127392496334351799582477284620265191304074363952080193229617404196090634955657361250169085150871151233921944395190783381881840592368995702565815500940310711359551138963375013948768346238295471677424789421370394825950491729583917951225645465827653623120158565026201411465979458340796220784243970668847504629150256030094741975856844767522761408299806783277148005615779160576978539351319463528830917722606936866364868266372785333929693067717754317090729574892967525860457523381473704273133293229200965882055339843785651898227416457538939729379008276866872279921466946412282273662791938369530832144065295131138006596223927254731115219654541749959669032448701133588765595882235638086945727345405176197061321886933076857960088729487366067795089670770563438194786310688722456734702589121213369648456679997368051465318285038434004111475233438978438268473334715969599259560439303287465100204544256267196229946584720109070258601119548748077886687076555205240848737788571666204160482272342039514912420303315719006574024472770829088975404607934011666173768663994622100451814524231988222131768882087469910276762768076872356865698721550601556048659710787441505729063187258542442141643357185450449269097695479406865871667944563202682477771909300569225702306929051600094504866050738289303331716044425824494833395114414628348361895890266769132606699329959454256425911955988969070298073999453849818415485294396256298746332841995401432459777255870679004214855864139075845374905367175141232246361530179341496651214815987369753662183395272058163977163203010397174514796662725565106603694341536035516888722968904096579808541476311377280361584820428683082374117814464601081702157956357956602420412196807882747698897296097956784650456221773414519225251312065279211885579472839253579762330558142457875167577637976385658259150351226959759199285605062426209961538912501703218679685510799355677462950942548404602387473284537814316432505852296593779620844663986642441354712558961284817501522098077200713075400283040923575590730197398153790943343450619916924886240503080705958396658414418475832187961438624329849954546171941401654013742058585860607976473644022639717079564934290573056974053459264198852861607842479977470627700862025034531329977845001886997695153278341083204180611684417825047147079293953804800143505846933831904389088430358289921406648256495657869876867741703931155680568626581305345036983351986070139820304816667011648146910764611520426601495522715035212553715370681856425839574324671436865918933877324851843975447251332394327808176729854904026885173536979847183796084712679548352764953916846644943753094709613122421911913223733179340626370505943591832867752372589966016481783743196898391224055608841821718411422747021358132455216996981102766665606356856144860438188775766878000554669172255834819249071759623207319172993002991962550601351211568494545260004729907648693339724179148162291044471154645968668406950250856511790139745100135384163269972027714491928788893597908225435851075388085532137349763177546455275305375431965632230704126774824753555405705278632416365334335426260119109817067820393269594659712873551109343883583927777120623943694295630424765039825557808684690622004794254640628310554584019225543800190296839066941247250507941234516579746662313449502521027998756513991469225814476255234820440546530445597511624075495150988193210062318488514418594672085219528791335299069567272473220021356066718518623033090825118199515465534438403026054792486419088628570917062311882590091572582279386472716875580515277746004177641418752008483938272908224991883915535505635996345005599486152171191458528393645250631487174808057893052863062264448116512056167113570503560033806065281416156307255016218793278520316595549042946292725102477901765803247262730364043750298222227954172921473740810498063694491148079698443550624347722033033429083742949041988998078602047678511691724987772639621598574929819624384197391104537463872180668042664190008250842867050936299348709790112214294958422780160104481729965170248140715748015143681635089564024094330222738523224749737374106389180781974486037858429549738928547725075349687717698990196565797750964048312559534241453639422340150192406745204769007361915790388734580537539711645741358646173879037373921581420169012880389594006760318581880872431700810715766978104162096104041490306985251081439478340205276892862685912226749061284355281663040986434929561422406384702367900699832488885079976853023352742692333816296413578469169973008259874798533280061691986202577763873721264478008049799300196979915094287978802146991437750619422668763198836339270884913570188823968628081948078480702020389380749461639789356020752128786665247306639428376246707438196507554195604847303760899954975290632835596463926877954048355241577827772202723790026182409874827800454820928581157493308585710575177171228372874410250613912437273309956123269742654361380555336538375882615081474024120923388318747907753198052004186760008310473192667938818007606637886210830509429481736015747143403221511040138517381446638407500399213466947206688884728064021180059487270968450864319378521085129304040064504524007453949144663049544458856483050167808442595972557971710384438370284752116786528045247292867864074984881713560930238594933791327116359214206905537416051379383518106912573441379016692793509790210800458424065832304170843563782128991936463240355336939198361990910197800849043073949787289602582895637250514989321665468816543460554679963531306288647963332615944907080171518695446009383804542809815545117966527369756264511283331818548292746080524557422617184168729871911897041566064473380130370640777183644644832650618288410299181409919448012226734498834814617476585879798090634212931481054499445740308418545122948356951478684810780833196505522520458130416259088360973291055821897063198847073124920995439994460471780048680428258387640625980808429714717654900614557328412851729454204942430341350974349817747170860394166877181414119808013031542020601236465132090149565260539967716228015697867903900826827969374658109335444942614147421272835899347268937850754263868986539293028891524468689704074721809518924197152947445184854998780283598758917204460315903569024726767201617737256895764000230652580371366233401387596402061652050900196141715255603315707724089050815181237524765565305881790148134102456689331533335036365259872084268785703345587997314793710919683372670240898068381049747095270680973648717963752980378628947471680318140202689072750082994119008551409505223333186686109597272217530431310175341003747900701357897770373581617367336018978606364982652463508653505511022674450086882326565962719576553569907314863043435231823973731864055395932563876904634933318764948765095343533827658376521643881716483836530527908915730096764714097660085298719576004383691875826096065790728773203039967187298742877575925812579786595120429587402237374668212020960220132688681921723620648048361617410720306965182350699366405179998181131516705922276260281106443982253443969607139618565295162863814056866666851346302948770635289156191329674976554871611375230375565093980328416360695642933662751040889960744631661696851300916497876775437251450165958323800092290388829698301772925745766360362222206905258991379954553272902789940145279173549973047183328913795169703842058764784082390608732740072857820100162574609236558036129691435538492415875618892790224626499066126924177369501937704369907984798709887846179093435719439938568468387062692290536361036361066423323699078846801823587046831277452728877784886590618912709288715943310874261013709170870198317996751952249369215632663712487987362334274411912993128433118237949658511361415781999765022429424662678514423413954990602501162202387907915130880693494415465171513773280038244502924455069007962561770305771814424060436361149069625078723102415357112434816007234646502300278345585698300055811508570166878824080203059277738306723102230738743682921147858511054218530485412302305370277336838307235215266895964027386529476627257620638641560489157851441723234096568493351916632592277519254732197074305029972721347005052748894166668207821588823611902020587029336591987413435578345629604793463316793146905213581721390324013826595160419279449699577749330891764285780697034762287165882681487535360365292798524662121088064808477890773693319030688219453561847055933696177423367180748608470431826230253048020748029098621049160848040216070469150002120918062598796086497488583815597823045119894061953537487422525162678384828010101353612878199867886321636080380151976812917259895724762236616794079992253950659500784809304468155342332862088326040692655851445308315391273787534811482146984219504825275424455248821128416813572438677168692617448636998956434960810009522066231226361859026517939054762200664634211214710821640697811712696177197871268450142334190222687860890040156594390708323301835719795554579123962617086149979007715930818420699091337022416076735040171759167388871543478927852154291270583282007113905534828014394267262314190552733137934965243388443515702634209827953492699197716434675443262511821060957061982093703054683401173602783723211135381685907033279002993199204725002512998035056080665731004535211966236044168188948898246232375783614051143508712644354867359840108153544053164700045534430114253714306953722076303294621365284852793152052474909435218340321798919417139380651627064678563244657453696406095810788848192809767398466137135453832725487682378324367235084661781343796671669622956470128570800890862628664910532807218880486412552517980600293057512084585044159281534160964539560891335635725087795990301113796074893924185931152612683985290535238637341081591076996134541080366785792072047903702427273370285925323133410016952065652835462997842629792445222508963344421338199063554146001059719592682915049470457644765662500070054638341275747156325751342614456895054737454314833083429996069384945521192386605536079233394055509367104548286930742552818454790393561757723728987814964052060980098083753425520176658550722150179520891821623963949414380703357726603089212894732474570022810910665132642270841564157836254090420376365476248796476731982788075262869048527748822189687005768662901241641496838636321677910432160240446157417639085849565416540991811018383886520011448218094648170484647081626115674904534883198598510665186031594800341425043025260002965228223524480002289608458862634931270657241361802258328454778663026843065843105223547216723228558183982983322605496457232837486191585766548847047073629500434975838261626002179076444440399502700154199856155402323099266028286241641031629537231455072882310193993801154881681806385034479322058330610600780104255345960140664458500352841295245506213145301970916076817082918381726976185190913477765575687571190574735282287972647481322927815123998625047317022554755428609873209158878253000408663202213721411198069756445221020847351713018044458167850427400237116279390919831767018704572625756469529146120290301793618066601123519164663394030156408791776571406753501533525623041102090301518211530612259492983001613809810610974037454852910784559284245657485773802311170391656633965441512308517516494758873983831415677566344690674402828971632905363148358118994858600990692089894430729076006348009617900338652109924847702969492343143911652053410098672569865519146192489851391150004134192770250145293908867456170390719729132668793401767835879277172189690070214549056491565400762724034900377262577588104915197650409784034659877148688521992032882286674414767684776639207118783603495630923115404259618384506151668746031976636541391149208139251300277952263532576703462571953392692629566012487354161899591411765834563939446938543859172608892449003829941900161851840637948681893098975491565455676627225292985648793744885885054672059032757749522048950210872115987131038774151261096239284573700142131313323791823989339161226216738814396239864915606490849560935303175159200314060087278014469968770605422090392328667253353051515590548589463659887552239253013027575195614279585938247275282941271151566767557017040271216606076103811518259949270745460577539418727000608803536048855951499550708783224614905120449421083491146189984499159730498494990670022245049355530078963494311321424895949460736738136229961634768061397156996808757249431393636940161303884303246019411776245545886292813463711822646812684322540272482759052601868499068223942521823230592383917978841837270155903165835403479378546376473777808328072273600581170443726378750611926264747378595734063944649508998280170654655591758472155361191781944318204393260720957865838557812517785941066826160690907573835205398916858963536350314371743187161569498922066366412395318558846664701272870589993071588362356906960982249301157662217445702302714285895235841713793130321256974134390805731761012573404813933362406765228894308924136835765370039751988128712292152391557879362444136279279792531758189687730523501067177827081219097685743548848189973422860971435096023658830427063274788352870699776259934859927602147024346176255285620246060595283925219102462793867335313337683131393481608824628031364190693038208474180888591769234498493864976751292873283813620626503805336442079680559555260766402407652151688281355324009223161118941460135512051632858442227253760499811771915696456358150066309618365846827696968482343099181538133036762495795954526223388318317058101492334323226094458011779438193819892308658414508875522847896853330467862955178725153894217168567192163521959200895888786290679112543065617285236314789458287608670538169188226412468312961980027292699002614301842647465934826152247163868365011985824032052390821657667480852553921184104635120689753331562010383479635571192126436405099361719207336965797399944701353974832631473714719655956704027246821110225143514746095749505916386493417169166191447939071060614048296638210452023381837804302601452722653646588950387738415654667258910753933447795522698905200716150365762536183687013657094646420636683223987117095944151025212401209553713207573306779638624175017322359217548327823939005202589810575379680556312421509005926871506713725108756904886431920767209945208454579377605729534965666761257082190264771793290355621530663347383467938357170586433286769947857525239760761253553186893999383446261046140474924313665023093762724614776754161086590436447573750223918662554113392414746042945222291004307887764234161270268108705319282275652955710944634271108132468578765262470219958139932470733094879694272468508611453216011665422609433720577806686250556278318225226053193764304118972332753345343608035108708594691644355597551456081159392033344249842684850552833396408247689660873225086374144393964831940913963550555516532398284651833602822005161489838057407870979441452420836644022754395398178790958241360253571154499421139429657065458973116951714976704848332298997559591508304941400873611227514581487544284623980038538377997377956913583627616043971713878091079557538378027510298189034372420659439135737009792515421487024295037549381162797584805789445431599070400239811379414924291052803007138966195675786287910710129399821449253796686975969384324287580062058869835791257292090114268688979652155842916162953406040780062352922863354501382894323948401032527675763253053090232804176105447296751160141059091878643252928731537937928735932027876631256701599778685499328290672543065833564587082304131377233317343933615095360885981130199686240058891212876156590198941118562593971807216960712131244147434039879332244127191871722473972988781638369113252372388072468499592903772307329928954366319202485366934466632607737868430876381321656311437638956840542701076251780511315337911569135384782069753052095205046492783102628948210348055396823079881170245083531673813480293459941649174950914448367235752218405389733508110319779772310409064635302540275208402900204172879623785564974697783604735354739866959069019046135228105501131301479520817565740467011901459069292815053030407052500511586993326767802814972279596495207663571598094442578396329940949830194720698527090840233421628400558643573827249031567686196785880276307482913419783403647625468866523146113662320238510693310608710161246245166182389684063757346779923481103540105425409724011925295356235188164841662955310652696235304119285446372611526709685158214159409388767562605056461192140194996921067272496932479638573925910771028867851237735901419665883781232398121200901041414933074919823317017002753276065898727434306673028461573120801917010086609852161296766536840236950418785942165858317063476010355368080906789554445304252931849306101466049577167013162570887233972719878726905962036756551880216351145957560696991258507566958949744397969179904946972867394392668503803163734943594440603461031051294792495326314784411921354040233882639809782441832060191824269508438711472255873090146877667731854322167473953552895153452133647714266029718296766884047498114433263173638979128318343385028239109168960860444019070377118293753763729455109414154867602265923761707418020645773397102294634477872623836986239931968293777050536658859736804017531261304048864227106210314122397975022606572543320900561211495241072695641386519608334648822039516259581935612453041270497548904521771890381661787990421612985911109751070509292952928500965546681686734833809691920423835808280675094216582009486338827065794823513463246651128371474288701692556314972777550491773591282959953449432839035327143143742121312116435323236580196895033728321990583526768568385935352135218079229117056811728333383685301705645153526423404740345702901768552346159642679141095198777720995843189535276976487397840301405248286681543102933530386776932440923516487464916918096970963084050815153377607684986355412017639154253762959163399391129814307472628005006064975018126992730668873576411042994642685914814281051408537803444160093612260163234924919439972671837171451235073560673554192253969599435558087834176003961523067887168116224633827707844558953340313844237395398375512554225586956090280669877436488801319182814463030452602953491396335141439746666952514213807988485877618038216910125846478729995404250597444694962706933904132737078334248640921318090455390023545006876169263719437936862942028180637089108196091226179275794795050580888943316187748661287864025130805759981174800002657724266276828132581176616456291156180562670881108894269130608990854256649376478653091982004627022471239374701966515306812148276064826125981944414745418552796614247262540054582439669218626656380900596698511089486462955661623407661802996699857132290261743042934447742406240513327577079459709990794894319962953006558401727837383890569816346849198012747057890885221942754755829093652928404825702471268483940151247679300258662652636533471733399864301382559835912616657011656829433959635476450065851049421087954238096314835892159570602038469064013660858027834678651577444699382988449086411490098798837727018293299678503637902810683342477618978292659873871657805123797554486050971845228948026476663986842571443548819670202916911701554857333876269965572522551652927444363762285095171511648776640878547834222340911765816492152530443402360259124230619878494856859194417704351360328711929859755346472385264859967941221515695200592108164349569603210428714164929631534906399892421640569825243535765437075022038949756820768987602999829686786591480128484320539054739290119783847321056740392001769903934649852274993954310327588425169374359156601464934306813224556248494531065116741730994508359693697681661332957409789859022658373664388093720114891360927078140558692401912110162305792344374207317650035201177343252160245848125048937935932002395404387440623209454469416359348605712590785820013090821462868218927411960985499173562562967395256060416951335011046594076371712760424055176099321803869438571637012246340059548631371928982067083696364651756828392941070687812037579165474341946910448572237898466431252674128524525734515770311163345210177547069465546996876840070936778025214046323816734193766904794631952643594585231866612805713703383694583105692481903550672210303527838321998306996596737184833053968028862865053623998263262532562968308832782606269300456964888075263925868717330909183515521057629137963703644807844284089272686750155044359472985623247219220373770425833269305063956233766090359282541603862643709431928420798721983335821255490579431111664445004667895982376355548222213546239184344089733802731748344960439657827814840126550465702949188202650710104246626931037947670727270907469821071096648901719136480110926857611676866834989478174179006501278819070306756447704428998845052167422590177458617548705716027227749147436795350600427680526585272822896061191204143729187611848214923466317554737841167160151040279423130250790369722643392977148713246935841048490453078379686359081258056226626032426529299642304580869411339449561892714261524580044725885332854889299671694483720497404926294189568076169111869084585871698461133565391029246715130976825263712578002426877437331455414411354547856139580790337320128341462065370168505485643353329810768275002324120762012221618069950536156544742033422328878726727693371133137233664660865246092849400189721359365437398906757418935971813965975638990336252188976449595804311987900850786273805410605158094278804103188092732313257664161414504512166577532442247937109082939114749845728338952285688145644226416003240808842251392473930086127546162028319139923706490267247724394969940062850014155225036785251557279285293454136632265396582813646144376842710218324993441140222671031211504589935959025386805375626715266020598280308538625160670646904106621446413455958267418433180726902980503853478572815117176448418059966516471338646331679441736148458099539707832923993552348046310982718742220799226889050873816683045731679238959261506359373203828175851622672012011002984684661279488633405389941695977305183606620279833789430400752526480391294873362630004451921082902162805726358577725623353761695716700238148693467928015045519186497794337814175822963523256696652965590875889745189703650048542595823708046340888577149822614023263373353600359165328326152067121733417392073505150559271214387915088863176922385726887846000951901700966219468480625690839324640903607402076815585697917003672067538823388467272688129286979245929861608458187612155729542932704184356581932053176290984417535075740647495588012315458390243996630848118775781308031692875861300776209541238910155663021453165296499584388529973155775800463768995085969864102385599039969551276676219379058825662663354437191659226955385568691504572412399730693210186398360244819721055631750450701274923475122251476974486042226840098411421048724456494828416043715396183177549305237351325319258386790918913690200036164984835406092720049779615229258896952700979689123006214201077213002199523903557490610899619814686273002098825764148782578681474591644725774769137877160121340226898852922962608461395965812958074536376188738413502881267854075537786469143785563457339777708427781005319041036814451237785654543931992779485931228571470989204436970621247024883747048518903003761528175799839526326876086024396142356915173669666713021440196931710780843697886393297270045777653559463579920014263532288984276779113567626421516996276026620484204542745417401857663028081024152897116963755084336752756712640234042277838402216822113643531464694131223325615068928318025412231732734589734156845427930551831051244547285552089011617585495463160481203970560523281489250108649054546457053111665377424914065004761690061981483581615137569920666184511781146476528343396783267548781318389507489230424717811529684018071483967673356568958849445543288588468147427169893215187341943185378742970326626637855396932257930395706611814815122134119121603012907257007883989342448298519412546651204437774013173700349544701456115626292166105577854954648477780106856927229027354642889437055489604421898555747350715375722042592147168766969802836823943428189338646471016134021277978879993056168426550915841851020008675790540264980362028184675248979430145689479548134119061262997082998457427285351700538803904743623063329978717099855760057519072528532315782466069590823590253465702279127621639866745064968623541943928518611312634089771497675025526007727720584444781424126149222174871719085886330199844524923872829221074753281438696580583317806135123954350069579663069515553655481801627851709430644941943229950339892565158246382066445854797769091643028460868909132484093758525222583149821303223885350057825500529520361451747051357412090983169792541176230950193569870452255814476719971438126798450834790867224711963613056231461074436646378550274209504055496608862011868072528281407819768944106686181156535854898461257015146629430809417479817768195093235454579327397897150674825207245699698299358228655862888827040346461349436688300130461010475311223003946984110143163515255431858162390511735104606482227313036167179969284463224498047978840487390160098867024927539125122209261269441104483234290970381103636288441446681886610976152535494510639956621632731543640814346722616761866955922543517581121623745009425648848115819442586106996672755075716358947551570958314712030456715335877516289530205009426149900165701754868258395994073505920449538978509940954271970498887456250280665520469143283410196507000666032052785896424977651623260132848726927155072843493900094343853724730553046861709645663616859043411560861829276654928707932856222954209761809860141341888348303278325001249374717301546781579697024740109890071488212868284017025512556698018281061984052548923978135444970077032954754906033486192441913691703602673839924623926918809450821015639213039103346465912235990186078913945750640967527319359448054300160898672796303322213548944815024131065988453520725091227118065662070902301091654991592604019435345902254563551581431089740602898779593574243636935876270866636069652970682083876876479501314632642341874675215104825231094882155855280452937988208177229842417005877018854623286197807114687702573229796710440169693691138496521026584395727345485119409309465943467686141374175353838099895256176640920170144344954203518724461527671959665537770963666752930373661498074624087615049096331314902525333870192099868337547936328161680967692565679220976922496794673489975365429829326568343128030794702041525383326774503232860995326227580588406293921412660918148894866297065089185355337752646997637403486098965844982581341522021670509652312102375794100961800363230770606004493737218132049735524442261888461895434001317846905670513934166582905294372265516552578455699311641095367934281536148165462292836200553112037702730741093401957886448197995304001620631239518244731285493188838928417143455652540156301899605678305664093410743449776827035337203755181033641069776476727802384109826156368683511865841006080494550849607069546089865044855183426946084703965080546656132325924053787143365912982064951106122241751963126116261030365261158327015823595310290238431713200398598836022256647617299154029302214413885997249273291127619868308938325869641395788773901398961814011590798258960417586010225272382018197356391707391835374180839063738470332700493747290520450295140360587021920856136155273759800817619847728605540207742753104748015370392385085462616534543142429114662553785106435197732173006155147756956689106907884838465072428893820060931411134785971584104545394295153053189199258482357018676827694046712312304504224020464003617074894115384085235251190567797179319930324383079208187390744318914514461247232643699474200235253609257399539159192916921689890302604842476829935833525193785485164925842710022809839184425667281278207142580565898279462196519564915944426118430253545288890864926887672127434186311375308254814158860980491979258060638764960374620988830867141941774299350239890190704180485517162960637561008780005593770171565703805214327475657518774835056544028815811311203971166772275051657959404373383374989144767861533731074469025369665713512631243356919294813938312921814908420564788868995571190668233263131222948236927424501174853654973710283359001039066988634699163018570460435315751050191338786257127728352367530848729064497322539702313384265125633577126897853592955742896515245304507485514367625295073423738431000378712563719136297325861745397211205952099461156940259092391585301825170355815687704028182575008255105693085872900530131402384221168662403766519569813138907017225975218509338476196556737610494784443130932150290234459030341974934208601143839675425606157419664743185376030362399463797594300876117562885778477045437401511238585416806857305869744144353251263539502842707861642609451317497547077031312524741072135915024407108528555395913195184803674448958128245058700581006468024095038728629758719619658544722976194795967889388331138731646443499515014703215325119109949865273664258333141547613038186452614807013953120806388880108123607993062431438852108178945329242032746371296891464171707558550190983392017994082388087534458892911187158371219319676569820599577070043140005023985595811299042487331801420049943884509088257772866445157319883616670642293213995941709127413945703991072575759583154910295594452991973003957371057578557944789458123357358867694713921130529144381315493406303741519336756505391213951683919975176206022098612192771428961931847314109123423573981458536749489589677999164358865767726262897339751744538967291943922668684166124002946320956236485110178201110514614340390369314843883983523973074746730997225122875687645070532788296342524158367562463496087707324685109206886737958379982275527305623733525696067601177472790176919902337620221238680450049762632360868486637469066678439225422553024924078021583131492501300766328989201664736821680861193236138808092028264543511740108227752377376497682526715121239281598747767546790214855842811808460287423469784747889927810459305362507668852064518706411172974836208333383288073577928153582775800173116467485057205308831949644049755144690872567367516907570555907394707695514432162169881289839103951094219769467168441742643868909082434175974747250212968772078060049734599729390852328726149035265906423238633353473781344748551512901684006833900722616142142234253120732266466832246838571897536455503933405001392025528077271807726126870535761230738863238115003204141481114786970834507104213540254167813025465258676979041184095005604987217964694660916641315345782143524397231233664148220708477283136281375465806183499463652458398060591042802614682576279026401605714581774604663617567987844818030147496380244408499364629380252171415462997647221051086143248820301472827831105905971007484099462361087625259947262591911839546223025994137438141161752919821782737880993330736057658506881478257966673519289093640072482792030076611026046969035730300513124980657165696292938447355290053719704113321523247332724878937916167197672398084750001692024511756405405569875122175827365805054746832509738340756484114610586518104275633966588801597113972551401057721813704631545467900136456059568126633785079814777608054717710647701821119653854016621900494553330686757847621829269073235738713901133932835891595748350624232735014748069632894258099153484277523850935871755360470994607660029798692250207780420344267888534052722084702795233962105304260948581826179798996866389351400267066540299000619313719883550287828113868628626620324658234801380095023969098884774233392428335873514791847389299590448375200790109611872622541237691385831762991330138757627204261481233122056942719898768967950356016007413322155477446417330439243590053651487628778362886365710809936572988968624557737920913073264094385527723473886033330582963996181525154618426276480627642056844853792065026355362822069831900055334752784386518185683142829209779192660220490255702582145681679886728309254715961841267576578796235329420881039872059754958631027979798648548532175375010251499088526777812431676956864714101071422857368867651303612828114659414423945882915776645173508360509751953705629572442187994822238204581463690247201033104551826654421095282736090098447858687448516134771993674424292624679269359837514200550156474335176529833717283482038613545827152007875877112204766007224285432734754345520044199493090016845697433818925627629347684969568653886006396162915080073188923832063579538373889027777869971458623065786652956164150508269929897785128831158428160087147135457420826507321930030007492372370211169050898065762145625646541376042388231955623212170655264720437328128734737909124242033417609153021667938463376063549254889480274568006971829421055109098973178903543978793417267507030739694113230738038434376060672049280096719645659562104252649016751776130761289718929452770379848101370442991615246953976728925377328933538139279396594806024110874465398565204100793642020683984602367935872406844188854140661665557507637567742665644092807551602070038702490857456588888474101032833291071182707196661915408373780944885261794000843933540839305140804113334000050403937452159472985650346911650361279682946138924014680950363060673608538030836049076559355182819027174928473205892569109148417550055220293612644768161788415438808542349515395951604389117370568758868018889150591770730546333234078367092970949672419600380004259599525445826454044038209648828497786916599615618673767589197930752569108679101529766006947916650124592745896829534399300198742027546734953998920842589552021308387374742544172410751981362407229393734186234684527118005143075847570530961630204850379317903482511144559888189074638092229323972603826005256929061788994982856069367682135230236758661475714860735922786720555899059779613039444663902709188387871141999598105551912553411866238425195236047940148875646969872751930910530221328978375986373985860390408953171319699296971736131536406331182962352973117308118959047356747483404345636970466889711755292792156212380917921291222763213222311402779289345977471442745476920863041831641956075332040804659513822177476234536476301336940981819366884221318302303029865420551788076641708434028002451806395770500539904785423189335173990537586299392460219060594520981827079681381687579932200488471256894118746719537104510607194457749678060674858217822518129152672639617477659149918756564122122082348672955115358260742740202219804920803038209220213673889221122060646242210378098906697223078180883847374229476204283978607602655831863178439720312983008292145206810132695446955105217696699618570390748243491256250011675068852125845482443201511693766635837642602458464341035670549815865613736371409454257274658961906646385678615803909005077773799023445907117642042833706510592596055632338773544257060173625332082503740364430390300739714117480986036255167685413999279886579395906095448163587906545279831848096377514263330619838866771956035074853738765525537577133189418908846920524468071264424702705132152646508874176685158783894462449195441133588110957778228868674840870966719647772141227715009946008031550069902558745748445899928740685299649375072720537155881043793180336619561353571837458220725063634195351173434738395772605886232234446766207812141294294935152079433661349461318851851978967342196655871754661961552326705073575310535313403175900903685040285891106571987048925050008238294742926208468572393890274612932036365699318192038178110734093503312253474223921225638304940768276478958189188686975375438301467946922759062090861238845840154924290212232601372213700921683210143382603480421245664151962530906838564578774696512156212540791261098030520174973986242536489383328246103935119244155569405489454211563101249368391477177577011838192232962726425804904412833153818292441063603532424373242437519806400883715349242113355552415216704811607238427568840514343545882936774460291841558740078490766577868698832708467223601425360796317153516951575088052717543099495817386961229857238261556146818349463558781238651549968572316845985481492222200459928591575706761684183804873867946778453199745602089559572300471442385486916233237955085367377706408996693213584182931378745158406352786248157584196277884345800853642663173747014933310477534056554819223303933562701322424134098293612557714821627883246982298559817937796554777549146279833252208001555972946004390339891830141008729253608597413565421868340504287770613614351996557869812054037522932097605856492305844479273407688649614066130326702627240895231394057724212315817789266894979815699336564649308443514911281833628198898520008756325781045813656503559558823939635050337937029039557389718656686385648633960957663030591550035043623917158780740220190952339244181167079145299341803185549207965497946618462650844712968892673633699506466330844543133030137049666242823354760397109015834031940930666500018037132727095391840572342169600862376316796743093258910733939194478621599360628000076496136243352611274828378038485046875945598142830847392745740072338855271880477993813866194096871905177489994887078848798673515514653889517443624979393880308239513404335947898649517782309942848604417627234659566648250003536018347107838590473010791738652342219992930445518795460509449706311897272293623426899277523369456220162718345995940128482163137508661688925379299102433569884628325959899837811353201051602641595717990151084037564048820566708627007511405967899888275362669922419572392089931512310439656809643216497855739434860909618254062558647334620188846020108392553514385264548496941088805166648805911202712341265240330329614412088021204653158943582913479216356903160240298479877747821126399046564083462372410587723330291615807728133218661431405572155523808338022200149720659657682331536402712022954644160292108659359326545605163068828199610804875115821024293495604624226853054985549657984315335269732915086640912277753410271135900989627932290748743013810101451966286998882072378841933972083201927298986429004590056016540096333538677753588833488542871357430021451656493260361473236235113365315031547725883448961471176272188783681476805194802808853542041679113290372992583181396093647227204826794762955333753075622727069976772334461971029041555783412751229308297962760900020341740032616453611605686274621148071165969679583221418775373673707742444671707745280188831141191899107255656637907091207428742126262862404696634205084499126977233473731098913769362719982641121416303270731706219305325620528556318763852054230508485742737127431323095458554591086904537782123063168338927826891978642460572746149880282122284561666287067668607497658183564623659620773071272820790166215093622326689481846856905297965502444623081262084194866990182569413299897564420688003095631206938012748555577500258935122537923694481436736064345900801124968460238312209549294160905672282156467460977833737191794552937405768826682324959887977023295364928181583949864357876189482810606158357115389423127852235704206752029809187412154564981124439715272493522539430174880500749805184374955592616019966936391551867151176864737562005920741290420319357258819956357411652896317242370020907117828383890034582730894431334276868302754886913531283965317739824141568005303345809734099254624899371030848583643579563859155301990360826100974749995530373738176407908737815895612529323208933660201011095093710202796488415081500848379295727739067905950004805642177759392623930109982750855975341430068983835571509242486563998276246058226190905154467173106057565229096439015490371486052930332827404698988090684830378025669033127722276172436959048709472980409773371419914760401876665765922081525573046948868688714937650345657178834204204942339727771988739019384476856008726655190009201427654687782521893899444692370026597161467845332113446999319144689748624012038701032877224388168807960091288630019798635543137246051960420182378608592752404714618665731798178781116565527738909577365172696413868228140621179321479637935274086547760011369379998720656115082872177710120963524971989302166354281031887990937947192424573974222531410874153490793840636003912333563630931458025462522149875901189584246705917148129115029931301551074669166687964281046498898945783568100177114500140788442302725582015825272669706783335009128663276085432620267611836522788994373918571398169358733068662075166540164056265322613980864155993693072437160104064400553086418779866104936117667474925584410479923142534046416140990659463528431872827509523822126999939844352824739916310266210621471746604660061302106931614446751453265275753880174895658669942068544459807229388585344520122086854211678629152041332360841612180788394320549896777246142307768893666867166697029518835533920395186284662208379415940393764989187190231907206197608792153914855413304475841955043170746597017353812263370966129041829713453697103259390842447070753098985562106636469732327755560417677178609830756298861709646333808019770555193478893049212413616986583969639150826689981476870702259212254164955609437458689666576586236023369095358380359037938372977813006103346649093238154412180004232562714528637663734829217805000816411954363049071721947331681579943680257598076262865984395389444081213117710533270252527284508004330723006167414697837055919146060624789421473391589988911352891266437956607552735346422228788938022149308580687342896853250966510724528523596090307171642707280662114298596161991024914339496010337507335364819196274480222940963361127723811229819415624727475934430974153661040659678730342863055926454426901481954368222493884022941592404586642723557853238665164344422544648910183379718051578527094799443686752972799705288110001038910083857208824474525569772555454128809173899649012686223294774900930191082141450878094217295258110360733425911608657212940039458632600690872234419173387234430671537433165025881923387274967421921390666580748368263782147512800825570334857073732357743799245103117808416101371379899753992915559599545682131499399863743342217205520266593806791558813706473559591916802205509254462532747528861327205747728344881333298293612194234500132273210757741599612346661503323989668587004838866631842868720171477454872620048307627066923817502185316441602330791234557809934199613697499777470497954044104276227378728253722465200895196734783579183502197625709685243567380986563002356616896782509571172231835373341687988791018507695711899443585611033613730095004484225957107224479714603194188784061603558825259912695674822386797946720511453020582686481410142870474317999381649326658162906370615495746290704758819833986593911296891501506917306228168183167045913827321094284144525788701142921126806964169879126714301625233694583457698829241280542075534150665877947056473415758842212126496779535305184745128635798326552716818365576977451457180021443021980640751396850007524608568984115430251438313785185970751401637271078953099963208229020665219094329607679383213214950456922453217125855417071784988892558292206866947748764181310228716054446157499954997770942667762963422566575138512327147706251609037563744646409098559546220248769917479004924705216178852893942599741568155903789058352659317155784140199167768580351559678504421086394439849721659266046208736918779033949075500265315734921348485605372210002407275199724047075381772489439366737165451864997806742544890353079495519841058819561570188484425789617101465560014885541243577316948839583017873769991729938932386203208508355252716737715037294435098088201101501968658212815034917970308571640086632995085923536599706218579520014807481919811199222603236034528895569927329223348138227619448730189233480872115560672145464194735621997016787485975109722959600849122084400861733736885014818876244112122264194833776022570516732137436018462134255723056026245076101619495019716179702368539625907003604189536181692231643553543667085818037936445691671709861939724310116126028589935538994124686105410097564048507110331663465811771622407849224842580494262570591344367080469423284547523759613174131928294077114898330397963217829020019218859167430750049946148295072669474658984564014569128697026971699852590470613562914362029617270579377169203405360389895090621396398721900240453470626048219854210941816474972920679747345160487060386059374151954220637892455913034414592430969023460976799794331903672441081044626819859166130492016508843890498832984434962644863605527783705089144594558374180814986417846039714357211284705740831820414239868906687100273619820122009440071545587767109021099191625053931414975544586064803292338133581598341640089401018798309874751452979645915361159669247484899218787802153198512525082439300275390545994757042109415355237838127919850064904697439869902526287804956426096782857725435329339404887588184242418059162508040192653368101455086827208727956835597060125000116962810010482430505388760021263707544208673666565258897496950616418639362928633187706964214570547942232109478757754135623708050980464821299780515929746088026621061458127073213287492565594826525244198389908239035436900582616624050134035517710427400016240926854485382504814780060232644359950363614096804063080714939025269165717408913252712365477384531226699025545421945666639745779958355633104031958963094462703736266333560499300758838986240061371666689186242469680799547562825498618741026140894812157689777320701747384228074367432639193677139541306957496031125514580440261815469989741072114128951280432690667313180193607658534986861335708890165219760269454085237638383228861103118469707070775595224794289583618730489091615339507664621635515651455366542155009505180735631302392010020126229627782346815418463487031546980068046236258529406867657858347192339194298831040697822191463733662439517766984498856816360621022604232631010980710554240166352191335022722088526486060280595769196428918422200912882340155380965918002911842982618626940089406206946105979481618607501055073207966084167002147579389478258375375657630769327340751701062813917963972995111167333749918239621323259274086912159089051549005595876467456849494633847706206567951953187270376968099561335369025480535985444176267837090253668305289422381702094350918079059726821789534914388089801223297328147279281972715007724018910374268121552292317333157340623557407568567940637337462614014839280426093504866227838513787027243167611739211911652816513813376042021491955226454325757946220150639728181730939893384976913469378696910618657129136101881492030142081947190289824768160684880610931689896687576054252406076063031681116747902361802766126898996108239198965936369826744688666822802671275033703393864221398219996234619951951041979957273682317791374572182763945470574376163345372682583532635702569195561639370097061671805851158613520658117447069311589368717399671020732758945237538150402117917639731291793536430885974188385269642004242878344774378856168459608930937840299724656246668838743954572419710676751737030533421857495704236923955413126722103455949520571522863917950993307641561367471146957066725287629125773913070141654635931977067837392908068976227744341948118160789314057569970711102332906888248375899344117149580624479942040930571386031736738139255605605550063428862313706113345420570558246413564533081914376526903442019487805146492988328320916344085359069336447634058850114004022733812373790008855941027898492424691910692304497395076121474889179975574946055270968458348099794863280779718569036355082326700984781704290554509959847251490262238162990438204661786584166614066548840320679168135046480113788333101514115026741125384342453733969435735963616898888221955783986421699171136672578311901546280052807737062261741048714495574617244262940284207237800268558952859957023862387248438222205166149239256388402997782989083164745247970460626384662133527965718898276913055356094026717444305137702952449841965430424857221324711575664993111540020039878013338765099931775918238959988559439914010894411052117986696251149714116148534784081500214739856818624504956437239052561818615205981687910712969645808101477197453287987688851216591723992137679861984911682212694691581073780701271514195246192727624693683575296805198423834988110581065579250542447751065169348943299933050972004814037945742890199428952740755410346150032539089042552496349807545530374865986529590820550070001663730864872661546953305848740739109975306532445087203994681551493933322816036577502025262602933782575604354857485170970459081052005117938088673743957119291252257749288351037302224155961272205988399855041005869973877007265058882085883855703898429199831550925869071563516322491964176462292738071383209440533688266670856269205409848154950144467524770203833420136457160226994390662308263610084566547049015976013816474037628160478552575291379270589250093588377217866079190539208982066692470830219504605979921433930122760828007728399636945557433260807873110573286448037472385272729025699765425689272635953878866072573238469736690730377997336463531397227550260556235676825917820326632379793920979775142674545088915823974193483177304054374911848137038961528377857180212081047795889786089056642336295059572908908812688783669148128962407221592174674268874989123678254231034554001473980928123956627652787519933224174060011713615896957245515085449984980318599964475132402892464101440964163489387589726619394529453833530414218945895229658838636534963545130913290641627065881244736237936363105245665083075256678845283781354772317591707082691459048588671941203671421599434635668795874859295259201427070296667498881651511570568725278456092184830511249329505413506137585949893482221625672822350693053045650165394112502217987177155555959918715933901702104453280853702327702700599615032724186434595005288356418580223527033397481457739585184714239833840002264358583571307477375874677907926995313304582673311200826621728876081122687024737705464322186137142672708604313328134735936227976987198972818567669172677633767328912880491096151856511211886233141981802141588441901938812174243712564039403481538908993519589575420930877254031466108073014489564118461406887279437623520426972948996594888076845389773313596978597795426381552857371846676715213156560045697852093414240397320819373106613753078449713922602384166293241490284511353990310131986390300112911517300318546469427240451388548386179166182509325633703714691514778099704666265865736371588007899278369342053999045898664865955510399203396661630397586855049176440964061343638359419671399990487572104497185853003040082158590639297115403518849097386621058059174627900179342830200026729000211450666339050757388093211327837981654165884093060217380770353542521770606147874208652370487060996479484815620735353596768884417432003201813798144902657376191007986224948280830348257210909306564185420759104097814047012915793529404442537300084488169667018529890343518837697661463560460720016403453265941668367209759876829517149455167212272650962793857853922423946070254309851325929471491587110748893847816225299084351412061995166521605037847752786159010042916408493748561860347475878070077606299393303331781495457478369912346945819208365622922816949541423308993049356317522178554760552965215535773718641573479564202170365129806425644529066684600083326278550975621083232532190004486196965373679116063638786183048462751877680045991949229012460917346755318290289326711654803518059076163314058901070543847789768305203675323055743464563698693278225696283151276163891962200037017386255497961514353010855386156908350017438344392438143553124435851893459243087117106152468961485063047958148048037389473889762590177785312657447982284035658013467019014260888978384534060124042204124271581975770092643980372865371705670225272532433463161388294782721283365124667485947672295697237148779460672916153175234539764705934387962132932941416315785142358957165340462431679352355541502794776178956198697805006749083109771931224720306963794234368997006509087777277240990156076638890886048412878816957079477631691691967148655003519450071758633325915329849333951827350513802806166688170460332644046017097617859718001027171852021222893306897148540535199461995897233734278344878997993131634249720306605021007064146183555280464116360485766948051304102980910807584852814579883649153291091520985854033731456794565993597056312659918864684687474068643746556309820974813052785978880546046337155111408825312022029207102897719939665682192785586207807853826812191743240553742424358425139610527096214122539989862469926805766403889644537103416615259571652924249703356722121632034748787582970725844311667650526643116041462197271917918411930668162315104613119819506684723441766415214316926882998968685705111922779653384300790959416305327861427687008521379299917886012977373594588492817578287179735125781680092892549387723101300974681131156093037969694292418978758340160118445380192597535503501493477094779229843316044442954319702991158970180191062728795686235112671261352311040479335814769208785153423414785547229079036297115297061092393582915092014910003237358971726606881597049772854040292331702961799374085386922155108396246349057630143215415044572871653928111448259127202628644610087660517438164184771478901270875540599200770475930615345699701621556935386566210200104657952893536237922994722572196949130391128945143331942247628735024214461115736279896589462085911207884953556118236140733870244913514324246295603366818721806606071806579282997459358979930571177234569879136261191931179320145705357657114009875210570559689863912676019780636640094441215928964264047653038546976813273676797962633073234079700941249752816981964279496482374845076607704757303536371577720654445978647780338256731637337159114447011249744264848829386227035930068399908606226179458865199295784554170188541975739480936801607750201750384058317655248794746480652108020483528235704794094443949091652279223540705865331339814982252899278394405457109697047675400905903885135228738997616837054936350201090344610393318070658516708020022166558343141327858896829012530820309041976493744725901670567730399511630111316161760292681081660979138449778282236978600155006037323619432991275279298027728452124707395617885458999269817994920836108102985301448931678432887230728263640167721573215835626376461336088032499784381291895082043096530838036412279235876439354163143229008639062105820654747894181681780371933376528863646146827653997240728127855215085554932978755141789145833568017974743327834363407704070643666598400037519082368301213043011977343547679111580259496781950192968459132041112741454818514710843787070940337251049616600615450624334193807453993430114846544850063407939982585733328935831714953629315314063799645608399391831591930479685572712057294188172833532000745872044033577883983657226943071574575002524649698455364682811486049287248358496229083246213422707751653882857070535020670649855149678042865260273868361701774579650090672117824296948125313703844637139895821652166098933929986239237953893444565543005041009206874110328809488384442752407914810181131507965229918410692036873248725358787598590523073770385742673325474229256094552491890038272955780121835963545942568636521341451305101992842089770652716869651328530542252334316502633717152550213446385103682748323665297990167060580542839179147759685819218927391776884789723465762831403667729131902224684402240585315970257801600103363473094684710299205576180181992398895156431225277858324462174554390666790439809023112828833480877240376894074737376543085937816678290343894248434238216731003038240194389776904454555091243359078311096207558997259712956616612564676202817558460747744079466798910338524596335384671216214031502116420601238499507304549659466111404610412002271170385925221144763762844944880985323717467118903912868330672589255911686612782259140808260985459906230098005133596028346094914364085089218476969640928284986108285996690814871368771259751723974727251080270105763911988238693499664370342945370952106729486528347446733528165111793843208140081913462172025403392419218490211388031828036880518144645262472058674094682361887103835399804508223290017022007644406314326368560106599511880606698972241119599947165277433863657492731022939638955644478276549938582035204508502639542279175291566662932692940708439083176251626275038455211002158043187760663778170882506813213398721340029439760084396322023386053222616713241157769037711436739751431551617259098289379454897852785349265404508739259826964460878392944995067988053786130578883225311377480986347446867895805964440689499014416969177136195623971051562448980917121214348366135693578281826339472517617533058431071509479518701417649107057949249239402420203186815036449584481955461139872291029580947005917723412973813133625036482911278470206231258251448615426352795341787604256317866288133311861295424258536652334213634827303891572256439919633263433247536162640646533431207846349567840212477972327768051544743901324244284570979033506437179992156795085150250043896589462260863815829028070991473939192143820045322782052004718923061946740711478505847760780614689109322180860228615133762870600633400660052455949741449423351644073073031658776543493483799373852536235860861191666646937282324358826318630563786040407512429291806798542290389157344783442240224672127732406470310192653503027080243478171722015940181270224367591732972321186820264751953187835305982361279267927011180553503285804224917697816523067210561136480002278203652341303304559710084808310024231332961346041316683512506380702285046206998659675989503048882738794773927516674379699116520255455867082147950142609053653188595254855285072470849716421876848460557667441385774849850639724052198183638544327831039069718640912973654764982743645242105757356469508490738229875519520736314693370615564885377903303050238031944336504948046783436743963660356388777468032291737293911927947230505420385765718660812203991360238361949415263601252848639988093912943698336372129303754681568840712149890487352616562900349820571772528779415163188286749580768018573750049458314789136916572540961501751617987002799102787459997664198620552335572682377751368286956243882028887532955750578821278105536067644701329388019219894731954321363923534697398515647666245976852031465873605353502269590431806881001118592982304821772931678708867933122337236001270078920429557936537623424243945113657613018809951193442622433956773803093685745937478043443705940101448794818844724467882986560439159473243013973592814526040118564716135207377072971456811812269246217319256729541005635808495087144211781003580396518158977255487032242835668820928612938630485950350749494729759737816745846021340274112494932579132956253852656284433976907356437174480822769898033330323227287933611152948232278063305961033968604445738221817825496593506781049162236574549715245516908978840400181880690936000050306298600201512565299964939397354879048141310191881823163374263833783320123123027877919686302052383034599744092712498827488013957111958775876532262938072036352687338809174750102570013087126965310126288759583182498342405154889280605619694129149890886345809277511759553690552329790170174971414894994294033004070136211297451327521966514959619756954785865044683856364984845016985733523358998149228548682629685200811688148703880908636626739082786705470340461448117404018536433207591105046025432082298947782958619348930442015563081812212381212507843774117959502907430456797661936516825577751794639510766222460477664202522422811387833185796403125176630866310442274976556417123500013066843554002957749833034459132127608176317233536874586743187515201385840102376220700377476926362526706077586836869759923400581184518404615755340541232549821137727282345953982583729717486899785176124994911464178352887397531056255422183901527716276939602381079222483894565067562693859201136361866228385472678178911325075082681688228318847963434729968165883835187545732280398668275560846306172997759135679751447084345675031267120375234672125605285673347992357951591876389817987845856876815514414892674190748143417211794828242687835215783866031089947577477478470618477252693632495903785041288654916988341428714611657980474911905312076923514692536724190652544795133349797655396025454849508716698107630010446473442175416264723548809938283418470203603566048079236253883343959310113508339517606490971290751952948495627399515276540316917931219807847957048108706064009431765985398965467716890839809598311300298338579872458880042539291471396130505589092100591166037366596171674900836388437770740384776356644606938735126045641656192524804348693574541827491730593841802920244026392571387031046103326698398319296576094233675870636429699835817351601128474547792456412001327735321138447409993328812153002069305705776127123814129265381788591963693040751213124949028295904757932366890756038357097538900694691225026645920528370178983432767344819504993953584086841618352364088335324962215580092908766046008353060418993056817040707189185980122780101483199143638633674180684949517241186081565635388122844855336158234023308926380411946423990187010707531112245762093974671544064154399968208793788379090312890050625703437655853081674404519457961884395250388912692981693704381045454377456112088837699167302713686890617756310185274948989309181730213666287166937428697356916735723997197834733557258572419685530404765747289443792490424027250670099096425921007231698671030223404111741199028531658574225907819759265380436871055447885918613981272431280834457387089534778994794034049547566729809605613409824251868177899227798363044208554321316452356080750117987017803073982186035486100203743582260990304280249977769225451427854474764629834756033853390928366990587258360183244246631905088525890367590813926934152458212658189055661766989334417326631327764608548953943029020035532455273077316442761945569314894618400066176297929007062794722527026679019603087281211670792967729358542926914067100125896096670076591089953672606094819086532648961628758507758089616516904024927807793818290869375945429417724019408498459391145194230684773660625721284958560252775426667423768329320725855476436954745905598245988869977714363175218508899318818661348118741257380238705734112364965202747240032305935075838304072253480312472895146383363015783975134968884224040662695046800467781675249738369978560573490736017699804982375169341460836451051376612320396835667814357976171141634038636010702562547679701238412469682809167470954447485942751652264855274512584071726270069586873278134431421748602693838974220019778171869124514235085169672912472527693354941308226776385989088919077411003283501738302662561368712811194955157479650699212286143434586022857498144301710890628861488738159437704957409065577146157255402198776197194938329233982376185746027999959827144972428896262350827344005061603728363758788838822642171485219805183828511164557257078299159040462952727947713666278900824418502398439056930114884354872983175740064384945792410402206650122839174531939203903262632657359695926310735562285944731357100867702736827581465240445764954179297609622895324374271045651262888381165266440626936210323824240022904808742007324338943631888962952686785916407671115723628966570190541712920949228612651484164972955466283643031913547097940779633937732171211582525448646732082190085358866847078263206826400111879696179231837197102430415239518990766537812607610182844768010589211302889267232277996465509157516494691515232345158332132355534999510201217462192651437473274356882313404612539694440384970166369610599005983655496326918107215959008076749577765491138896640769666764916318397226185968009503767178153160708636822510315263489713028779195372050778281005271083018891090610274690078790643180850810994748263757817160501561855405128336296336106069176553093363517096790345788320558100742699589628008249757808238334542126067468123452260902358580905329013106462992872424045715988567217417272846823891247690957541596349819843649494026170368447014862734809452384655998065262317263547147095879159584784717614941246270383006416454546098685556445512811598239793320552442907345661681501136687791319131094045285211414001436212123852960395738066487776249644421293863981245932879140641838704366550478794294023928744469153113694843071502499692270037508322277024968549914346489845798405371997378896325423534037078154092219088522397801028784724620090936619257360271727327670351192371742523495553546623066028117765507119208472495089661408897343174915450925873440883826296966400529420252214856801624454522670354908118292733119735623452856079170217879438513200173433386888887222929033695307568008177276999966988361710425922936866016271073322883164661657436625539822488930668997411663028886236460217286728112147477244933969707820190308532105102930122737163598574844371557014864350946422998537618446134733462489402702135335861864891455586485733724776398902744428513770978810538167898296225150429871224809711471882397398407159585713797097982246634051817511069732296053378649111461983889799955717510789203198300670734862463971243020307812954146675146146188341842993833434803486891229700918878494190826492229416692008954807041885295549901936157371993185390873265676369330942221035069233369403869736511549660890605356194562961932942311189610586889193198853278906754428492433757462291928161396843296524987788991291250126533508223102120189743025787895312109414635998651251326346815774921557624594007521958639823953797303046876743357559458801339805591819884095344139615418454412425725693792776058367572531208980259678495218840879786403344780633023371086989171437753459828994703489367114718027441962828601945047768813907976853930584658211479415143345407457526213813555457563177585702858569935101359248348401279906797949310879825932893913372388879741461808635903266329948175416028752670052873045623850834974065636956798384013015566264007658675904707356791217464404376356112942351423711569354322251214403137317061525619793066674916377532409154064846064751879315396461542258540958428606955838222563357509390272372219867740937968835511059915375343102519862889397212020928384934690017949928407407464317012695540641307574989514269442193045737628067795092816385641479691272581097168940384045679079304110028314733506853922769453950461696019503361025735110101380197177066928046000039842915491593904247287751758148118526963801269912138899966210200225905862664879000646961239902548766329883913439508630893146979038859097849873393158389433290011815593377884067815138837452675480386014551267208518547723363983229426192858088361230042672576367589700401875961841850768677105928453003511457118882040569285602864967770665243214671439879532689423320132918872115022248591327167774400199696084274482293940182634243034386728352101387829664509156502966204060421587202028736427894636596200244004048844501368179662746476100006788834144293783480486075254647532930644984943700570728599509241598976444718860066347920888682780959153670382006830054975079602465239399538822200122064601696029266008551798781083750329952957606687853364005446956820841186506288335707260863661160550776570221462947531925182661297376434309140833659753753946642404414999800521358793400759692504304642177325980521911886710807968607112211089217367294779976810206318203140486528925949568645327189699833877806663076135908257892715056340387924218399996086835870310281647943447885282766834681261286020873223559705184917118854157652563944980764925194094686769752829310421569629392966765835111116111852540278825149731948146212583365573643006340398432878340298069361631133234583327657399055786519248392084614857924162286409590031408648274128401227969868750104462982210590841277697853962760579047483678882046888214972202953220339051031256199436121756711654105029679279839840206002101507962789770364557210773392061085137540287500945557349582400942635193515223603192641602401538187506755831489229950805896469683307367703177148432190055271172453784136852672464006584607496439070899960825823265424665698937118305676871403647747969150429542131119324575731401148585569702800515602972934542337686850539870217278843913422697597735318595535982031270699992098301034113301580358765959906986989272287005098659792477454999401278602934912099889135246417119064826913019298091295799901962734446345236785366265968717235482149537477005063988604611419085258984132564184419064678622016392510606525271585179089219631742128145285002806392794682314654945516137084397406149070678235462354364742609437177323553702363279407060779382201737328843854445955154224546131553153607497452362478734821014167727921090562332040568257954846516910085742066195278619924046256808740878888871915645756540152999552281913137663446245506529064664067809019006780460120475398018489120211839593744444807285231546230079276852880708135997273257231613149343568005207140032417292026396084295492634518590957255006672830628448604308760339260676811219335616402171365841070513259757071621653369885254013403316847349376290653923489315043941313217864354255797200071722308640683145979822328095601909711253808839487474234765670105066238122661325117843409903838093972878250319198649722477853956040680311403721646737679286824178536159944894343634261987580901901429681192308785691613090166304384192396737855847627773358346053498551255842429129232803728231774547380553475748350411782633801294620501851305448645992121836635600688231226827147324324053865650577023624943168518871987399623239167129871583097947591772725831419075512733097749849692108082419854870047702668306485445256615892499256178263474661688319888474780819196752016031486450052154790657915225996003768732389350189196557610305487217295925667340063146612147726808984242276397993143736849695807151215456133356876494826651005243262859032580909393857280783252674607303651533730712026766657134746712682054570289645814321855357623049335265378912201675342870508979176756797468797920102438607259326217211297708923826846107485063600242789785950927964813262539829893880049360863709639334657956566708357344578404887667772460144306019645411753738845770430764590542371281898137363763876270130835301961426376231034183769991629608513714088921677421457070754688395540735141046849143551504325913780423591653121951311181916365418730658470444181686040580516329138190118395154999386127270181573986684204608670258885449382117252692776046583025436051174172238541699065959553287272783826673774518252551207720334814392571881962415661692678783127473720383258109856729976441537297535754616816367189245734398113847220327995537747469078425646292436979262386457333933358212715777738648810692911795456306090906645159714959233816638856401238588150513501363211383918199839810658381621383367659925696916605731534006234672744271586562881614721879054385022631550895986926442044133193806890313198781992801252225193497821276588194463255073754511318165884074107680790681876564043739892680073947253265932143259302318092994288157494758301697616162886963457017598553422124933288772477761782056407001883393417783489862186890564723046973863923815155449995938833075501803359487718658565808462519605637750633812485400089362384177357557795174368865183322412555391814009427660178488937371508535449158590248817428207039616124880848515503167628347290923790967992500813341847036392975087238659788027252250185120116537793130656238883126760639656222534006467861592396444453619337953318637315592295947394110172264699369163168993168889606093734735388086351253934721775574267443988886496132583532828705194142462995890474115104157323789470171720407781024229517056110439495648422567939773662231706887179080951561488869668734376482736960222746474130395054148298686555438101766150561315434376677145089119674905595859282053921343977827998811480366072271295069689088606715875149215161757265685969753548869522588447132290712267999259455824873503558710970734287447981104988874794948643691761420318208899767473946103315414800052192408242988960001810576769882470655047116806313532884007389777405852308271180053625591151008077876946700577663445736172000156354589902350961328763787496927075467795612424291738438431876250286424235614773059313840706094729347201470299172117566140365819823251133212509968291021214973736944397497241926053599013172346827791017429207926039189591015895367687041560663725739688361175210119154877582794843383534920017751322168612010866292787863996872550984296623789663782611464762715750678332780746346202183502689695070585853880304982253770001511882655989209174701575975816975992252333585674132137298745077193621429686113768063416056862977873080998447114704751897303679840793558836133328258792733163272214097772424876992059166229752923067318411758897616289877650194868226952178138062586893431632379208670622888744085710918157670779790354631222518498915178784013430451041919976165615545761967258883340750691028841868540130760355462675167696488237332616118804781542904138100306450080702839161525483746707758647043620271319709119281094563847231106885764162985611161891441105919397514757712358663937120385943602813607394548374884972523679176470083864802811183720053045860243988256263948639720123743339412309849801646797246980544668499712432312675984350816089395579512963672298872939292909027454527714656967045372107895010053016697352796759542876461170243493217787513190167528876735183503684672651567933711816663023045028124766917759266744585528703234093617441561706379997924163757088492621943015791130747384856033260564433678900583940234743050148097497625826320042517547724398556642125038065914342883241879834487537143804892248117358265944233473423389433354715256322471642384853235292988415401228265131501402990071521973944793071678839052533049893544887716670765882254093189981687025518017438694905263134017011454401594827681196849614023066955406299908304856673764892548368899288647629278272333541107736019306618895389938629804109578528630105841728524682202879925841576157403624783164039166736041346092449286815873897638929679165556823375841145931079368744895777859830861067077244901952941145096109103388424042852241982694229575903559281795374667315127400211505208953787723834816116676777883086431692147350394626884762729427679690968636621268650325677023734137469927271747932706290851056834965892119012944439440914345663001442873372262505946469588714554947793372833428146070468787584456954943488046462471105940800596440959737610286968221764809809714358412969872681820860508340447140412030294711268377136230319346821457385017871671088081893007936661205850987331682919626601598232369477150444670840109666528844748428658738038506919993635789712334291228342383900476006955722530307370030628873745428800887754888908311090817139816636454074624176547732108657584824971841501649437120540680409208461344352977586826472888780490464478474743973858099564565814247171550249683869109611989453888436759153818034305988618301558853937617180005410187521447147718595519572564141610049818911438211148076411777232792497219291334564397241846606411794760011891597506626615317649767016797691920791092072773571276316453374368884430951609971968100452210871633031227947347257146103777762350980915734071759967370253935425529136529982309822711447869483746873638976575582870801754490435301350947929589586646853195561289798195129616028574838162921669917046253408511692556272182308498654500378165140054800604801440170283554749022734797597914414145781493268779871150707188425458637418605467915086032169370667378837976241135198985511010334711604743970495018003797726431020616011059545577943429708479991894238997380074812792063512299441971204027730083356359378582393625028477805386851232039129330458826442774362920523987926245677547053031662261591158076296121268672856784539766077857458330513221527310703548946137325355399243022350531110569141789432275527562871331137605523623306212387883634342789817860772108096998855144947757394927988800659478318431590893369650383230270000729686287762575322231808547368160924940755958502813977887722874879289215369831544199683709652411885851919356492798346194519591906052795541013151709872694643279403154624939056329229468238770773648591335984769138006923810558548952912265638691892141531546350930350632429860889622793197916070165077659426376171672337895992636372580862075345847506670168959691345959377341310098128715062581411635708277824417862898937013953694230797622605798538080402059009848580251008724457031623160278222217181975325285368924213161056494751478757266920331078884128217273352399958954897083590393234420860677336177387592297789045883782278968480885527116849117093026878867691432018906354079229055339588102722824904295648426725769695392289957299775992586116982899756472719128220121544853241016074914122256913213575171705080512474947376700919748525755694222937007246524008987279791569042155695978748450973063290270856478459195518448102263839793449163456304224005571395956377361118176068433354067561460225903556377885671441967270623665168113330907280744645847701236129625872265912692037879323605665350164671688224379543125151841897822179495771799228402652521851455562795795629521418319537338467985922847887242792712944701772231998392385597940466995137072044604060474613827720677674252398471046761806157381015465563373624423373577021143450623143137483671400627756140021180280469967653768890822031043851092072215459573881735685235392720610544441114281848796514111075684625659374045024680883105720984392725623377867534819464885288055525702842186656901809674212293748492209862339096717890868645649047526144507869027766309308227882644074076712443201062170738686993619327410978817613117686468969449938569762811422177189228119480189848641989106565710700288528743905928983848501395797970130443080827344584439986528059736605986358165182807171779220250410642873462721301610990487714989733151073400470967252928659024215250601950203986041492029110929089476169190060184102896586462739323389654657641473113272912673951590965968340008680423551107138182962718259507357642716185872169241705139192547977248650713546316529540979330387709900003622258660657320057084726840309200233403847392486397739447050277223175948550762003293014019456753743655809848904104511986099212883795720392801159921799091898449871989291371130516576060908899790734078724078198073942934656334750286242128200593259699805450484218708735958396587639692378954231458804381783357404306102002299918181071522689436914683105261071283313819801940817559930532041283707037945490584070858071542947066006811660837881082691803383141778233476325748824797357282209964495377444860489617674113314507341955901621544132104201684165281216863858875187327930269837988211403401754777874274704419048592658673203740547664852431110361755203578821611294261391699702483412448781874981669154516120574533324049708242836991182366014150503812412795433387340665558843596837281071507185792134314456965103910494273994376292922622387525664849780911529104749295236171070328489012944896470114240075499596394250219396432351669030353775391475078945102663623504022441867516355008801178184201390757708030322295114261063453002280787688299581079880980823309189739569038823491411950659623272885009007635998745037141017668511747245256681969084615890529639934783013861822105654844930742900878099325584148464294510327227032613435787038093474330111279782075099271608677545834688059100091348864902605856868430586507797726771958399544926939013651115351850880146401886758467920059647548005351160617752025486018682636175905697375954573982198282062571948348345653006632512203603109445162198668481144685692016950169398149708304208625155158170756732880330823472170761564958031237396003751422270155075610836459189625350165530338039824710369356768410529127991684870748489315595932291969911448095720375087221571287936333773365258684227514889678399130382559259802824624537925792411848116766085943049242291501183713194544272700829521088331385029004527141691769542500214685241626436755202132266574646176398670375565691945860490568662364817639165021806851396377935636531652366427550092248130984828461780809524351564920681332977460800441911481670662864910758407960565785528518917996296098074049026048943156901653537855093959226358388916995380533795308374892818233313991548277555791602020802144899419724870175938440456469347476547850904282196167867912402531927655381107129941935436780786629172080364271204182684755272263810551009974504127264762096056750573819483615228042261888181680959456025621809763589180957540451724783313795984277199635923662178604245295667203344146744798517892570529115382494531850865662711634952403161509846533357049930806174103308701348676140338021172422623615575485648632661044466186350454245303237095908364406213069903332103149890245156070869165653996864110769290728535586292581959537258382584416548809653204239899021300566322858921783006690052659561725445776298751843528577548320687624205657842175810856357668145682373900650014905321767747648899240307243031031948851104786151114450975693220100776022956713976924668176064247003135955577865301207712533870772506336274192559939255222532315579830117763822354975981397792104735898397657790569571028240042405695030887413366613802574521282392733720183700732175392952619829384649880748968798994561220614849378365106401662848566529672755844998525077000669176720806648648033772172205867254724501021908521185267907458193478900087928980439864706452140020595865336079000831808504316349690768078581416524563751171381547296441459874482292507645820042100826248839566173002308481486292857901084117597777226047221924840716679763171943698533899546162503507466078028763377125027851258065232421549459869057792182546047252682680590384837288514281271834190659565355122220941313853848044317126166538838471589975154849941383183123743168280335555833082450248305713881068720694803202288118342157913180125992436568919678496297011029661838806004976432401500617459367894990522819221144338123178494834703102933358220494676931664675714772824977635280146535646957755353396435149202860359573195001889372938610853370850181788952651537501497888275184103027563754625235123116304342519567281867497796813982382953522186678365414373918537975264260341975632393521218660332622131169732676079264222784713811217799637866750747339360703498239197968506633156901341787350115744313027997118968223293709923171417888083539374943690406032188140508405270929943202930936569920152953111280771164305575251783787499712135958215046514545879670048235946910474688864288292806180149702323584582537341684988876932647357540662869749329403484711235891751590287374010371021512374493301809875802992222658899727625242874692002340389465409827866140749537479400837196838543798816604799689575517068396048405940437670382650384347411982181352070375140083496475390959672165645310936004959827371849170028960307503482979167471221021343918084054442750883296803217482405086145325169356072185899598516911994453794294558554836016048321904622979846278952100423342681234449022900484090334169044766497339208419675850054997753047908554001252714325959585515385233911472694229329855086110126812796259593106196357117839933328292613208331652931520269226166502290697892858192603464951794564329743775533561221862885918518086092368393433669581224462134767485348290125172931888807878906300525732184423641597491233687930768961771141497233425403927201057015895475353134778304307190596260928924337167560728955277352679950777534421253344915689078140280978313548666775199109743625655815412624845693657592259442857095630282689099986943540362212817938624903946992043257927455351335641420022432016791340984189926035474420267416097745302152075439423608067558945337438385158465307241097482285513391659092969361193824193799175504014190999209571633378683276948673713358862317422055490012729961540943254839496973936746142537663321158724990328528445433026761504846896170773540040090835472626319166771255476981018008954714215346190019957123095306411229975358348352529544256643263508280623017402219928507056632892043508400406720675898123220365776156433333167668174955603773303251003949086531860900913568780104306116010284812553541712936206369458189705592849516059257076525802120370893781205348323725327488017205365383272546555667648895403709557346417961417310232548722625400532420849779989452983611930823947062156392853174914918927448179995318540832184272490864545007178276806097865068819393674855724777861934978614127093014794710288488155602399476887377110629430648768755188364874935648147857776213899624951264580051587712175332595149024614004648652612225793888454005379435762476652418680611449019077461213642504933170137637946804731384606341645487224196783274157749778029560628554245457872100954286829911647148086946293339981163222921858651923712392319246001653671817788381300766662094353556447740896760592728395540858029650717276688414724427551872524581086284115125326186040044056984609770761414415219767149957465629431589873737521058115782623122101772635303872050654280877541019184284473586803190924465676952950240619898210661347554754098037431413956550609934108092428048733723836629460847376048053724597714436320860885713518183808148994688720525715866334375117675979074391861912389187512736492684023943581384411480874054508550123020228259616707902365366711925921671009769921597588260998202548655245112747852840971740262163610363877690400931324464683936946015824599636147051851597822772897806257970577947373431585696285222267872384937111976050031244556640601221886777488700420530088973003864075554801373500708510553512594846664530601607390842783281366733459245558797038659598984618781097508263055253560303875928976096437046399935686243336445947933628685546567888159197561481946325855272525027637403274677107973255231001416748835409487173487458574543739707365615099208215486881717046436946401043849506857768127473300302909222342169950058595135593732039076629811596749519821859682974134785515820985637935767427493979643705436582204427628628999780170432190055851549630236480747948767232813157896476570751144104988522703429389713730453769846137516227228305280506606471854627555283219353090901053451575575401221726213247597570185433858518655185957310523640344213637416507481126322301692342013537997832986545195286663076680426905086912042718196970979672917120864816590751855530129804268106963518890337870786493820771742323114330972284824871419672529741486575008749406234415175618661604357406652129625734062240945602664730076964914536819399472656939710406897783982255170415868897591119221024077003446657374476623300878665303030293275429984138123993168594226961803170902003989248886473469850491071294275996674839927699333455778192527671184157633032688304050025574181022732141471609045845730103271733524593111834099965363708715091469842521399453223128162176027281856038080000789343145140513830943087620818703394865589799211098066210301568113801862523961000606026795551191802931660400109680958210899641675465521247265480621681510692015239710651759336995776935662100319875790465925228246371750750924745569194509228468918918242522402254801526973060440762798035066413014558958208308532369760793715855722963840000158676960045023280279572713556789606096678282883648374613620864663995217164122563066005380356051628103876629552446535731080173153718402144660700822165256930107903450972106604634698024552236758280638281511890087746307222725844555988523650458025133246351410605933525909355698983598131228861362660696914867678081329445569244117070437625445372853275172780733299512189630821900504972076643298486670521028870671951747958683677476126879807040820771954157563087227796678093629523319992221065259660889669718857742597406787374052319005171940382995912985910689735444992876092357603850204597335301879211752205226852130706441943767012979241249931450700376851315176476599496642874135005917179032763840235458023094937231679711204821494226092877793204384180667218706450164257947173088333215647993458679946882658660791988361501740737265125143360529904703397057688398632307810626634150537274876971396455329975883949199241418824380238123108702787122566247953838014047155541607139787079892933434267922783083410337073326882434615793453460092782322373594113688281666759764693983375506856209644966626969865746796697536192256678892399932874883654623529781098118582619872504434396627112903327063813117295806035669862699295782903497948976920775168314146503930270557302628783907347929594170523008686797999555248235423163836829854220647928782465737651434356961626697074274653330633215036292925958957771421559605358635279144132373417854343968303066568125361732207493842156126065804640467723704900595461351180700884935114844501584135036383669084702546363135318935363753233365176962511687970447893826468738785842043303118548070677865256028394491701552428379249333472193307405265324866775407610349619526528706522936576895242687594038836201342730006763897959900038219636687823373090462480015342084817574387414529512399969562270631590763247526720330284904272984301237663096649909594204658444787387971928891272533986633190156395185241599152388934024359779206594129892666784939435940619124955999430341420658777830330041480062377366797251005211727380346809137262202942207443634511808229633954130951582936665404355450133182998782134253246257428788501821943716085725531619535510570309890236994287915480044998341120563185197469984377874204467600162525720463575356834354130279306624410068567696512860671718970982219224949726296441719712174594613741099238599488411654468203379538389969780412689318062962999270107318565284927889880648465023411079091919590828901644177916973707786582151357569815381245863496790279106336014223439651276191229777482887467115318194391525252016734289386067047461257602980854593690049871242123808639647899505284062092942040616595434493144213056390985178116271631352221063051547911705531449113802151335009155086776614582880412326510755937879099771469320205403262655386380699950300274043355464168169870217995872377909833292281886649104537153786276947397926056541503453424423862460158053828233676177096426795576356607785504062341768927898932267548213773263138184012284699655478478849988768287566674037394796368449852154452338888353109996377896362896696773755114025609983809512824954437974333902792244812565643270074788921169926699995443983646839759384481892639364523887505064243045958423299623932288544212580243513856050483474957946573725724708777223070355122445701788396764523299199742951444661052552940073607629646165499942884591793527614634023614323856036720491085298020291065127356655137886326218797537105080057000093499334221776332907797600242641062516412205218846611154721655599863852844522243940640872783269998338756156980568221392471104064016573131003211372517350248178384823186168463516668274578560591787403377193528178099424537361957823172630620901329495973207266481623559668683883563322408902881892097798612679144282801735070086705957612655020340346151136685929316433303470348793082448681770834581742728371683297768124832638234101031225121603864014393393288408911225200118290592778650711758501146474947221459723586161441692400909169889162040631434461390386444586794527643097531672407882203820647712034038115856673663530978708082384889201544040713926645853410673317932229302813429462672595832514811399619131220711616305089847848574573830255927970627232260245156779958309385315680565491015317497579307005055562675021485679782038395273351792487623320415190215680138735181938932904442822569768107958178477376421055155582859948026485362796866279809710440683475922552986148179514070147248298388784622965247139744402244883765211631166128150931582201524815562242679313668916319573650260927246027570650305543053777564382576392917832932008368872715634115294613363354492618943729068202967774320585886098172621256326575618197725341386784550962893289919909026640542237335929558427817660335527682081772466608988293634532739325388663359443793271946852271220779777964125339328647649059623635714816053086719774225067782141925940607824145508845530440075675506842729702014233383179867364317560685454629979696738014675386271701383193661341667298082557849549060264305715610851431368093982951962977481352294775152711772556456989940257897415695936214697003039715144654373143096262650278175618583550144152010964624326803157862250065346902575029163931256967088733006620005489487675440881100945887628794063144919053055298456406040249281166503363685115158524576914914506913368283853742794010318539281247178514109307192174319878818344296781837553228671412407215818897746210257444728047952444803011345384699959480233920880324386747441823468082135298074248349943014451349411251691499698621272840494684625753646928889196611170749727477463885072625566256198723837717655963759417509572511571027030785995886168704875869971007222498332658257516633249379702264617489811513980197263503783757337516903793274616302793724719548579054512915590026428522547602507077660040231791972880838726692172040350087377278913733488778445663566157749620014387048830911797646893334557534005531036167671860086320216915772708418510663320837252286648751032084260997517361532651644377950170714514606822777170506823427009998771095907010181860646857686780631488373307656748748578739979883818509642109266408294312035583351020098057321205159145524407682739007853800272907501915108611172132613501442105959807006141172936814025926329926371013203422137731094111076630624679617595774435046963743623131118161877688916354950745540280456910758400548411116817809634365861141131739007774543995545998816592416894745947743825293865416120965854550297116078189423092345931094861316496666289917348375369743162380989012569880919779982560492849532046069813666758032698432635932879487494849643129031219188248523227115876819455067540065250862865857574928630104747706667163841192731492859791193098644978168339500117383576326715196833792777793729729407728951997507862889331804895742566413192396068680505875711026026214766187033908021381823180204412620865261531178753411386308967017594213402224057451534728049832745304878409428355233765406813249063254183464881233958656564326947657047342117190642131341733877615613525211563049794474409079935422862112271619232907305575904366099540798289122612620853600679463307896075229024158645963357644469963181806774535303073839862687845091970943123697868438879857926363323524031622417966320523388037039547539717255915376530455713962072534237675785284775979836129068633182581521143460384191299324093270900643467833299978640735512598862593507351248698652253017260328907806046885708442359153084251279941806777240805110183915786779663371614871771666511333883747789311617525668757761929199267624064886978556431743610269876542391033082186420103300646780061142090855162736312807204149311520016023276053113856419337533623628975379550640108156554517288429706475968024710800610098566852185044129606572455947699054791879808600134936396877261699008292005580933504029797141545427099223185277488410886005405603759298125560865824323859691291596683019218843287337164767266678072414567881477556271629689866710703250246716496569212537522536524576719182774237180456621556766122712673728199462775397681121613791368948285396538093963001655031860114932669620185750096810080201884534435989510355024273331547681865073238654415589825349704139756705526981398036264457693409949663456464485759958162314081097529264349158260533948998250211611715611210634581211289236612479506694657368647673165353888434185061512359028995594399348242739878071026167077819550267300363452147334507860336366767893494372880324385851352288233777862016658064239002375811488819146274995631397335325462101290868977304996007506380267004123457904758952923155263584798224428283127391440456478613045511526828338244968811173833741383078072486630387643953091644655873720443550979016092488357871635898660080561904464595883402438405958902443046060439481106763559758700894116108758019882988613033013729395519329987964806759070318871061132059678152218031035801652741583345810881025016508382711735888998751669030207298873749754684473162087100450144915375729898159467661847221400641840473955992903439791707288942300215261906181707972070338575250723147936315824153876437575977336627746670967566610676772957514135945364976660498236249352684307193414902358263651951983997656022878875501150384204444315276070923430474547702609366491639118466487641368036752537247650418018341300877027332393521208599263994100809084688441584974939489369358124682299192350023001963075825777799596640046511044267158288999160057603402794356651297340620154142357387299428986601183370504822047218191597748746551535904077476987291888282605428840287676783491817683673831255848511556551415696784006398361306762077779654594964409349608988254110348360407192585192983623550238874329225706177612919186974222665629622408498975048324304999059136299225114524749915329099448492461176936604502995032121428205146800196888968845403343311814259427618121962517923982701587537689612970181050858581363567393360928914170532392282334487469460670007907580671977790232746895131444149207916380385296476618286430461945870593409546614443874996097816816496419023743476520169540165701044902923229827947036078330637224791845203781030688853176625294194967160990014427925386278259865250635613415804849878683604323532584222596950678145032785185215542929398838055540918461748682617962462319288536568639828438923907258020372335118107788615558811756296044431878678013662623378147089103939757522029097303039891374593838646386738386204049456566460362029702791865919404689337017618888461880592638644057598973094780654968468539481071201886387626594713914566333962160712858580356147346985270857546055161827282075386881144027613771116473815226650132412196154718478483664353552684897837797806931434963447213361327565200768944871474421312459119970263639561212621249901059969558076310065064940629370878245759105894798384627187908996393392315535885108704221428212117494335541349305809349278990969771423854576664218187744925627896856165211779354200859086522360040063853389423757069343151801328450018630069731494241062889419604253854065599899538514097548378041612254530349380676015289200727259092127885703647783413251332760740088862611101655382186846403660919397237343075656340547464049533516704766113870294922538223016840709324163669998683865143889402473833325143648854814362417452535909240746445108333626405379451501679126208021632172017837814068050153206029378756725736376655078682925326993367320159035276645033100276409742369300070745842133874984603936174236985287792776455174474963532638407670721590186975644359425823973095156239514956256498879586577395184198969251207773940460698758963296061807307642507811275332904473667297992599348603041120171283208862931645901203383350535270917086215523282583060394412077688149370257757952836122567088176721721841517936456909395670143692910054407893076529608261329501686110845912080195471743647858402027436710766735106874214900184509173640929899138247106708101104357454715248674997272573631480133756850136341802929910225461618482415913684032590302222307294357035017846529378780305893473172768091029995857225227065875045013871663216231891078795005087080067773974779074996625330860311603271768073364137582120630922006849018916310708515159545931694944480144570747505823504503813549950706981616977061028239815840242414335765231948095906964495189721523593220831432064149472183825481523343524375780579924489860569342830808274524419952125551267319121251185487662153106686088201953967048094379181184678471967273125792211979948058397065928507152428583600280283186296498009662081712100309655879087693591936956752408391081154073366967916466810921474505636070910791960180427983755226455096911034564834607608622261624231300681861038625596864236418927019727828799489344443681024305236531838528298518624882003636535467053575630328362247066551921180495094039210037960538304148454362143850974849567948923148943494213910533881770048544824983202383549424310254624604714235167685987171875209382886407952631532307224496721178546402193106572097034775421462096039109349894884330157771177145805723219287676929575767045086091576125214716930331045567342939967477404531503230123861125558032466045902338007238533306128189711519699321676991548239642775018049872724588401687858567492402809370573382545852400443029410751236340925335265985899586242418920900869164314795591361615907597061719151080227884899643476504119595092512328260032706809744884570676044242657858621797898572053242850728761144089783114171203070360593706755757997413671945177512874966885408748026910568872445715769715084039818469910230451418980716150018549612011256377767989293236022083412884034000064030028388716649117514529968880641152830576674457199743307622076465759547514876079747714168602684198135335500022085908235647957928717807752320691329670699126709292407483006693593009265386724608164074062669950947466677127844112735004770091760243879551779863046665266589056636208330213599781240830540061552868422256636770591190254125997781181746407415249869272207234177971583133884078229244877376883328902163126094077556266852655903199085908614954348644981397782880615888564018802606133859540277036307144340073520569498601669142004227399508945836698230223743977924198094425425124435178492382133645389331890858069468677626657324732283920681690993562374726045932382376706377098389917546183810494390812169547051750343633235024422933363738060673319349572179212231130267684720988524033536568377470775870051988405739746780230673940297822584996002871342641260240281352250770634058646056429840278971260571276138690829221691038575394582614672722151470584414566395513974822939196978067749966744830130458934092219160766607262063495533526574014896554962983598732479819717133964543784774286273911302538666572133431175144927334003314020573658480649061571980839475477063109138809445289576130790459996877262058229118116949692624341113256793651920079550301362848671811966219097195329958786681426180695423571895759717943600837042488628374731849209233797463250607704494255671008245887191394348021488028045695634626158854463546951084340320282464744599410467937347296668152904342015657641457783466858832264321476347566277464747118734739007407854859402806663342458868864006826877052637320904072299269860451703707609111297641414797973176657719922231588314508681685432922284956303860716781216245996983850743236565998896034108021743872245772402800441818942012945055929006305815518490012077293496075306308185155157395564037799413587838256963173907377976639509647731490311819832827801362207238643982717246450075410051608405844950435763902289638765130051169680599998257442338626920991400405170061535022279810686973333298007019726681100665029617261938768791338457795735959505670088431822825651978550526806079796559053958470110385401276676027038966550428098015998377098153502705018496659982685772238295949264613420780097601950819912645013320819448692649488226108046081283806321400323301355619399555691271340297030026414983603580590966899107524190688784518570307939858331992581124189216409775058856998149774695600507115422713132482227146112397373286105323786266427701675217302914165106261164474406821770525225565802391165943762833190914982386930466507816438911455947187813411921776273836560884171442335052318581985172407543877938775092788978305283341379507306575724113454491323091697007354995847115254637675181292452401328224550982819659585340703210980953775574644061717676864123280488921015768494026487637334284126658817636985711378308818404568630553706714803346866940788596551130393993030361909852022404730134287112363118673670223054023846947697830120846368665521554357451057074153358243694820539352768011026021842729495896833475527699716425005401719343307589921151720345588655125994207387624094802700575742329938760050211208038310282350902031638076935183203195905045436052401473276069705497039710607048205595471893602327861597422332805119545055765930168987375972314073709589987138676632705040230721350910224757583047429696525564858786122009766658720648735808552872242576755764072105755645914705552976984865421168933994742337651248044560390252089557229847154941957490676762693831430809583876641427507777622717471289546400979988555042631686559201571354874583142825299612035859904868241727922365401267702830455320304052904551329708568386845443776378817839977173740530037618049025539982787589118139616849344088832806382168108154818386362929172035668967892849063149488786624900065172884956719381748097457689760338675298172837232835756066312815678218199801916856088151737407440954325498852306645304229661778642173140735790282190720319896505514682082937346581350284489927292625038159707964321196581076280511721138162547096704528400011791160670310307205936721168452910432989525600322632757658411450189860013860810176633692791623226502362667123199378850322048611787001927647436721884697016525817742097375713617064987227233340887218822067731375522751038318040620396794020277667993623254641932217828864366582913999901589362409998249004724332632705441026357501454221348574906386734609253382366228854839840135083272682411580290239589964893042402984173948620999025629601322481046183606150822808918765081403980265858981069258777250110077509386629242375090452458252415173944547724156572553093841778898977708929139794215768651790282946320693971462137220965700771280718875524201376662868884448999901234553445063919737870532499431035742777591382167002534329063639620107335435817446964980104673216248953093337114850095219182572700898530116510608294319772200062076016671251317402827505881981247209500931974963824989889742654827999295792538440034704946007566689230581699065974906580154159148423684614599670503054066556096254658046990381641652849167009590832983941463966356563392647717681270512852699241011199281428830247907058225568813295530070333875160112395299875508264926734824807530206930074276278624436922059757202443202402205201214257434197321630205769028393020585582497639253762258428989744614520719752687320333898699727286647798345883579969760046327083519682145603175068088210337830004186514768547998745985004862713059832049185839347923021449409092279240198502029978789430593939084577398468320797331941783868514675030128540228913222813240534264007617887953343302341849665643833209325714621298251346624917175191448097288338610321946949693599067746357109485489158252211982239171519567037470695576000082892437670244066284291406901126394226798266683623202520192570513733325903365417296248160454772937947744267913490096481297517484618404875765534468409919698841730813626276227679907558411604310460797637200265649267257147267255955367912140470152388413287953415828774344363501830590793620792136509365555478883734165186323340622341045909146458672129332762729999067093965187771097560608913925479740531633912717893862780162761772087335511293629715139234013562695489915797968957661125916018041625720205886916825302599153282652257031827691449324923309288377943760366385336027446608090093972831471891571161599183938267306621610455689410869033303181200553449948206122843570669167464903191375484542653420850387731985284232583694439697218325642971700309696885823453554327986994057424304360332997175552953263845164972890560545051677948849254862911381300065562335614458282025006212141299782353803333235869616384519311580170095456810975152726168828024454265089810647447746007254299642769699169564958228316682741411331618110618851880114432207199721847892693538293878356224227694532083658823987771256896825461202240484706559564642648057603286642220851467024435944601856222945831193421002909981176756582452268708339134608456023335832170915506003481761032567275894629182682851610530644462137093914537140194180338563772493349167404935870032471104667729118946624350959578842774114227256412931894116071092307561821318102084636107388835123462982793966678130647076616149452173878393227312695894767658541271156225085797390490419389217514222769970710982433681337681147320959325635189624329024968634577291466021975677780993204975961769196092434584807187502409878421759685099459568785419782624793466166352009423278087875936893657544419661807096053472433101755138133084135766179741282412910473633220709371189131053241168115282879144234962372461179213780088582417800781615439338060835945858179190119908760553958211553084704714739538501535860964884119714961172857519274163627513205645969906049188974175043014332896366722165633776276488747641667013625720862160150868472392799017882650544919711427394888649531116397800669658587127507508940862934555366734883193521107668368730538575157626297985571858845793371157410717981450786128828149815167767473080698510896758239187951727465166956033385243243700796177665694297026493693316852739991677130832377927010112999919502985865903330627199666072312856650047898650674165569982696798814708631055249737104816839957587466012291378019760396431165973167004019938834985400446232911679269295443186699799036068781343930801710207011227754177302674797505856537975946064663442800684476701246325280734286222971943558284564914534052012159872788808751746594502305314793510534771339908909167234051526852310749888248899152645796452438049401851713111633365583608770527555374498665948332748411359223959424508089063980416975154073023959214377857684374377269756214351067450108213914203966212168489813304858808512657547830297531393274520578274812383046400006654471417907377284331165904291083920571420133851550938424727547841134656796879554357571715088612833572056044171408219689638791266085351798383494295497173619191809318128577133293141983380661906430556109483338992545600781685979244563844567094753300441802064111911509991755150701702033447987157543562144144637194366616139056116684597028250010023519090597136087772796525169195513619460616213549073597618619394795631571004913440223290373279786056240874582525425040620366795316368381960068168611481978408667590826116630598190648303872640599849188602009226310200555628989476591216779976829360782533879171794039130249725957079120625325031796045499393717244785886704892405610862473485710919636101969684975127566593690711554736701936170707781293938852943230744746617900606536997092168762595332609242657863085328067861310546902318158627977191838587233886057354391613981469036779365302313447047082279898741160067197937019067637434826616133399060942567642767422577164566246421038005065726297078824317169052366993891903993882918631036506276054216753396022435189164698814062319471320422700602410776194445877030377680805812618164615386963393794113667721980354940640622059211770852804925417347566184104498849612963178934057680153946539712998496002526601377809092935576911855563970728902986570291116409419923244055766262883548824615903998676098108203683916844762370774182859380557656674664873929623655297601235330754542941977538557197509325660387739803015988359679078710218916701763785316952830405480803201038652420195522497774495213219694306458746192535410525123449890002852713659247971821737701705094016179391222809574314997189958480489830319819412829539744165888908034372561187073712388621165443754760348226918567418932679633283927100490578171780779099382167800032068191707262845541757952689192046643316783664661806827339013710920521349400112401102665105857397273252467524917755258373551939112276023918458021678482393870004382878484412160760442234638069868341737392659070381554611784871054306586871307500192263327488520624060072414281459368893769787749096553644021614920614011118726155326110100620756028523884702421865609584961103556957241412679405430848763122790087157582113275576243350661522471316489671853810137186412799011077484670736482848904622780863473991225783902004559306914434363752666652237719272584187214181955720086464223061564393885199757645896575406288041663223725793198230640169127669554404443539126202722467465112793452498914184416769418731298260696009156906141675178046988153295523279364080735225985239077103638115444140755070203690258102148869512759701234662937251165007154102217281350179753246965413864617682495327864330813086723989198983985694633870924872996008623733671692674018375965042579013820952097836614871101313584559936464754093292259856275407781951976552525670727241824028799303008760187495657786698829040369584303579782423115172101796924333198820806763029824016242899211580790014737644364231977566998928316014172495361423862851112081495010748674866095382280113919476677405254253945331830683998872023313760005009489412199276671668618606363874665401051023008478882547787050770055041931739479455551304480297830869842217465553494128322204680207338870864012240901646259422915560345455792043579259795700123733236227934639351260845202921667454732504827186928606146530635059000719014111888506725894289456227683137251601961451799272749541204100450584742367620304144564920621763556988097675976545947413956787511074939033852084353998685448662855151204236827014635849313779692000332547686024261942848739127245560946670064261559518333542366528679438362045592840259162272900613654143152341408160887366744077648346072495460229700472669829244515200278880188857088816816386967577622881350062497687827713189385847424027948110528736269147158922751462010729552865639243243504119251035136942113504677680306607768189262307315786561174892290030606800321874708234310528842541343845095319539918688505105164363011029858246486777180220706773318752046072396736740744473261061397274114853983361129283959168507511104006024064006014885229640480360300789914057650382540899830393188245556373531318037698307952443345617066927824764972081949321032435651358965375209852388525328270622389055251515730278220011516115211474473637375360027126888044834875939948769360905319909960089152294650450682151484403264602774594599849048384492649948046798164962464054028328324559470171464678431522788040193367800317134478533275590111218037301315628059793039285289246417667327911968851468509744649137704119556380282954558162932002369661497643571104833544305629640343082622540497730997804248016411505260730752294783098146352546411769758683139858180158726046709109772442381231399978790096817281619884632398287147068912279686544821907587858344186084575921561903308047302052322422297465914166084222660362754935081619693893499744700692934786891984219478650250793404240674189358993740190077407429216328620026596572030561229964919656334680320411300493523778169423617284878829410912529150890505389623966962866467222049887600643174614339540484566758549098950114501769050869799158073914592019488510578821231919754059017581757378813651931246492997063089974408618785226941218573199370335278502546376235769957890282006077288695545375480046750972113272327312907279100771611034705040328436223270267945007534178567530893310492762552341459064107512910743004871571708771278182087067667852771130258075147235014923553916647356763040321765061321047037716985384223937136258010461284636724640219788158063216403678138939862377815227111804607541719087275818630899898085418203958186678432276005500034056452674850571163332600032293937360043188395957687705163760410435901638230587536634319561691239713619358467071351502032615409416287323344789563053188749456408183422457076146541503048854603733422403758893948128390918700140333318394819595509942345249836789061917066947359258867574156250635101047309700129604004440339028090697539311840477302225641373660322252069741119167623359356035282539622856087868871764196313643831359200728542157684116778658276300768845605758101750235937762874845731000441853512330171186391708973671238304553977068302509735374641615998559789100131869416714889438611346723045274171853731573451679867976019410178216380517201498442876585751931621617825206511535869000178781960966332732551011046278673408333696966862142538370758548560382320553005220016039643502706962463262245397315966554586404136251175663942684516509753787588380781933984168418826070512841265078315277393142315341694140856973432742517520809636398906183279442552829199901847682733179407521219784848503227471355856972411650910715559015158670099963657413886689729516825682309790679324817421210543762048858017052437363397264287832058941487302905927315494329492657052868314443585137534932294508138757167466018871009351040316541422883750410703126465620231141221325762558325510823990270201582532410488520143545236840173408094822935471418448066554785683956004181360015273412835044938766757990696047160374804530501613381215607714005974481890244472607108659879549571426213993615063187215699034712228313918857588935550932917242269991509553338774960001738220439114221038787559980134616455413716248143284075887553244391081900912748795703388302090398668313704103586179251473171850237445338430693664369412729168828851739318887547318202171992879713967524660313925576329504729366134488446703886184267700431469894520808922990601104960496556151949216927093298471090764695045994812462995537991758180771827715506574941020658295280482139058907885066983307929132569150676218200977796066090055438076603856209914435292901601323164876905675449091148137959117042989676780199536860031208750766323555101118537260704984455500456796221643340265709676746478837745169591977299782848314970298252726333138211792551882805446403955621072191033957754763836354046672356947193394126642107372566323152680123412814522055830087996045998739244035984566523462412413534783856267392180597724806189313547986038627716656445523412652424805364246171127948255619156710231518752286399624754030900259735386454745498184558316349413736024336632422256120634347865450651175710159350400987900767101663746645847810443777435952833675145191855672594692702805791318318752533038306820357599689240962319292175760931419078724089473609414120710037653758132655683076932469928502592548725774705369010445300277145663550901265534765317606587447596430080879860653425747653477730859417976946416850424678152569335869198788161328554173249777174209582048808306629234230298115101884775654290109397140784563284144723230526288147357700890858236436944232415109023267644336647901076656328157031460194342698582941324044379141179501921945761523963563476018508817226388964772809622990180417477619908898291575443787138108989813950022860919931612297275977936857110954800844475941676374263094913111566519605085517116854953622905195683966768952622691669805452360286093733080594676294934651696312803316584715666987348734519530547506030899119667005952449997314602706101487807217530095507049982258081133703512831179635195149532380674096159133389101929383338636644470746150372037314823028863773897588328680222124466998276190395567381720969602839164455306239945051021861193823545933016213919580340000394819480653401724010702909787890292836629027654751938075853166833784238174900042787463775172370816227181546865183398183359977046644117278065522936077474137188478983585070224483948091535073906771838701922020439582330441334394490819891077932275490498482289667868369157560638553996504618620946986538820614483922435507048758543819869241111745229411181193443009617776983316315545219229295012841138299791841657643191586324081988831391799586445566880256667460136397809739108808163347227497529992954006434411028910418261367345226580040324287073630482819672944244288642247930956443487074512906929606001276324317722281638818543825336594888491902331183790198802685654164493204697496029027704858835939205172483275141514340477502452034830911128479161623182730386698581093701251360462363143075191458345694653822713043030766850655517848666364710040045389345458363647167756251420910133052001819244797213609975418334947816263088210237051366247676354761235225588081876084986016857510351801679250597005633948726635113930199922784554579991019693659389779410683724213262804328399062966996018246007579275917878912252908495398716658844875671132604611235432064739863240072987814220895541532338678730888110207484254184002929732897368798325112134783521451668089931325230871920555325737609630449160307683962483381335637170019636276856206684036659312170292632197525682860278991856245300496950956643257340517519060600340544163269740384967995802829147170859356162634882518484054661875154888901996438327893643810649367596444184884796534819352409467972776116277061335089203513143559175183727166270829727905724800284218096871063416671420324558981893215847272695440961962341308859302965884666894511479087843253721450305077015291460628682188408947325949568738924323527732444772798607653704396672392407730849517429529671896461996471864272749808875107911941580405680116369607898622867862349160819433799679600513637411681038645923668928495381793742137499000068621299903076620869753895779258297881061663175127060599297261772552545322310712111972648441204849892543594519474382667741986541640403606803637303474925347695969031918832803624382268720189868588614825761183830778108904952895715806687860982272194709701129210455492185655804193402468678475367048745843296387674648750743727316568380234033512612149849932125539494454798916409824346888592376328865339723333747339723235524362858982527335739503408644099173499808701872564206584049100175662074154668806830826014864664005789905126927863442296177738377649964401173231468767161487109001365470013938482968110114715324734949677852750492643800297159178462668627682911346706858906872411242681573771889327058836348298334269722353795917825721053453468404431975633935292931959992457347225939045697907054002420018261628803648025515512411453548397160178335119846690667977318334682985823296853161138245661503750139935156786731455672372352840158523419084497762818739876167126412464047103027494622773721679075517014251844175479632281351699634475323080693313281964608456902705282023700929693096213438149435916198096445765334743359181893141352884546894450175670802874397850227035607090106033417589080320800907735978572534495194019567918697676634479845863284553356623751698789663559418535370966155312043842547501684354452123806533457365203317720405859139686904945296749203011596361089284117668515702878963289511233322660510067003801123007238149978092503661074249220131767389625467199384324499790703735903497990581254788460270756735551293095563877262385964255375453421039842161675204936879072484561166616579216352955514292590765610424824379369524818476048196597555986558260995485262627930027671149764299460765779896710869934613626758685932536470107850371893737438911890537825275594875978358523320937194151382170626188150780131833324544981619085379128924994119736338533579855567898935952872749386991052252509233086422621075942213685007434857937929743042975493046384706922647063727689100045532425054580182475049744960900172692352545177810841731727677683735600721840386374281382586252684062582746580126835519819170745374540268820076175583502701289282975430100332297141839242886436660071848628195301986259367873373291867032899829048069757049988500827860036640800083943795560320707122774631766728169193015695826534261651863251299212672594033888505593086387643901249101618487860745038048013650454767737747724611806565230481433470861027709377281793391958314415634705036549323251393955856287424131327094655528469374400445153409724271533798479483197618279288442853288946338958939128916753135887724728828128371478240163147331494742486640208018140007433538131489401809461299906958920973981394832130642285048949880960715297978647858030220850130373800755303883382775562674177152150757377837694084948368851281904480943336738131960928269664651529173433724633718165536882475799188579825395309088383566415213818769595641115133247661127482317841481021276335658663881648433028852687766486355490339806770706162379245459710627652250938129682963022146182961614458756089106985312568217082314369316033617907666437957057302997142286475993916407694633102725455484641585740609623230430287886930137090181402040002606712499153867527862375757331600246922725913663777024188251491204753523829573212880406689331779214402238970559074547405451879713700073774159289588826818837573770309751459284628138525922683326676573527357792201247031950280032858550611445693629825558397004203809137174265808534863567942672857334831931116160288933927665910024275153022176293802307937028774643437755588197462179992189763491532370890926553572494726401842742928709946182203843496336810734772265254950508778365197676615957948742564844833100691146256534345081550058350975839383275316409343867084780221409597881539979529545662206386944794317579715537759602549825934694782371214340446976324706642943880505154097807254338638959693668165139647510851261033480657597252806244588633286618684853562662363066731582509753676608695872887875341906103828803227668618880462563571340444574034742380923060889433384773384564332303703142430882351372222744165379138123862078188017223718991261460240038155821612727195928808118606227966568485807007558453232280033480557038614943449710703144231766552462699186518626640311058446475668146761995639963993547345450356203967485233267069241194736066887944487184646258640442271987552278655254300852030484391676676497218087554895971224918300013391149376252344642237444264863464095021158162351849081053488340446413564970178691333712573789063325224343415430318559204897352075135679090182992634508045965759561354356711353049987975290833570994984807706074512804017903463015743652213699268877685337176653892081589383096752257689857152449496815444167942198970886702976380547472529306149268515320147874549907777902716106360460899439366068153549610704470463707959855260347660751680464441911380638887805083539261549549615803106981502903108434839703916468527328184686845202464500227126187431285790053047351144876157392442571643029238096824622349684358870417898161296718281525270801346390049349352832035885367580555397361711656100812962270112212962759435537544727549869935301775677014837883239224386913737140491715178167377221603187781045692546549571665630611145824295685316777541156123428914648085202594539081239361865041943038170629108236477428901552642149001491985298359652025655891441342110550434684363474707131740798305075090922042415029193345643688927901524094425992583727910281084032178035271842996931642277428347116825590835400714163423803460776467131516492635788411513291875387737402591201697038059254154245914744843111921513258934799644538585901654588277731980321327213541590361822850309574019078976973736365368210495032994943353682839188083177655516278610598653685178432687410220227516031700193951577106506900642146298501126253367684170847426886121532152070283286434301017369364080747255327924563455179712658702429381921762646256031679805960830858448621473173907037338390622732842725016588579242961355519254303824530650608747725725029056306717204748836507776568791496509045069015938818391304745606286232549896648342236235901397523459778149350310425723603677654862422540736993270746367192238072718975798609811489966090737016920659281794616857545821125022254193250643156596729633935708098765176844438253121697866473180922000575200050579030369974088083661201277134035019179923068032181897299264039183838678840810030873219136892084773502461307643044511551596295850851509775896679316802075823400577419245905443652181034770402205816255880112680230486167626820994321775215804441738202598116485557635311612562007787851654163211367606357570457369674744804312699008820108828196284651849644232793509822252235644302639798818748953237637026571858548599105671935087553012354173084081426788207365843276245965008705348856631390501737585480981136024489877473493830430960750970960607743857250750454919876518667348989432240412121453818586783861542087765464902242056418680445710864930193198307749894851504232996323942481726524294322733418215908932750757789620490584064051909852638961596921410607638242870061113474120618017798290792937592132890623289991635916508727622615007519657191925242282543041984346882614059475252130437540093765759867113149876355982892528426362841611262123077947537253223520172466344901184657783089627484683483009120761585085575424126729727843280129934094165106013230653974152626539689111769620702348716022248026931831301406387936498157755817428165533794997306757113419594562409856205249664842616858163386332157359896957600136433594296472646049018573946527085205336139899834765831203089314146882538376675220503237482355086760398931676864783584540057624979355305227946006447182668334648660870584036223852805367016482374840582526369643011016432791076814177050991539483563294130068325505029709627653089506166887464177620601510940239364894935807685926522552442905023679572082521440458694319986318874673889871809189348541097366574205069982513384585079093145358764637453638024342983834371035150547569715133864756592095569171065150543990138518168606465064624851617125166066223873171467880688032758893643303762030060551565001773062731865772898306833793194795776051574086104901350912230242253305353838555669455467296422171658361841180628209379802788486013443726831333363523474550874077841406901434565829057366995855075998931313117429814288244569387355022787372830589554136020610040885774576749312448528861168678821715486892064568179972857783846669499210256338906245576945026758803963636310600054573461231868295999095465998702764533444950384610088452406083611380438707814922086377091259561637122613247709737787785014875701122617255464337853871132258465249336652549123335096604747680886552751555895718372228040774898773596771723867277724245212941022559857904439782986694226609466381058482886321325109595945483082351845465984062662922000067147687916737241454324220306529470146953895665759878301257573841192770488499145161485341757753024542877055329738645672985723452317844507433228317619840874470804180577012368572898321142177471703032213838462016663773167256482815239679520543458202771929282147811131228115616128157088697608209615804691609422558578662030919430029251783479915370940508354314611790221832087493048641809952206328509007823580923937123788477866745311300754855037628769452914776789686109066964182692482058412311481553556206731678003491549994675329404189796958907528536070458280421096320414313531302250774680477483778741629961598749151759221498030654400421144220786902043917015055696292044517296543872980619312459905443407862975302255101034646968419984457807053237105462996436489781277781027441891779807366445900181606587969990401658196049328405585324972398318222068116173728524932528787530073427982296694053106149057825390944492226684487867337147220033697039433080246367579703878578362576536238752529263894043995610650467640423274742684478848640716817242586991002665418610649675159082313671436314446563229881316105865784212477481862377931855288501247615551943448749444488071003814583196368888583777588004742868771939240617602737553713611897061275938015298401157470752443589989999173010246858947726514738286545761596416622478158319630556932557670574902033639212322813374731465320882347351222720275374795041486016408331758052892620303109206176984637032229799824494682185220218415977229253587821092584948714093723419999972062739887505938811611041006290859922752645766655968770483775252606509890544078272155278011271827070368089850456794588829463264392222883386320609507946909493492296662867313245420208859036967399876051020578529653862692237922820616620711462736885307977093141433737529232099158976378409869597785725750246409392575769416201846910311800078550767203286353626279704001880243155933806566750716001902140125375331149676567085271522791227385493449025137039246076679588260019063579173880158960443862759043705449573355196924873182402714959545202568616657200581997069152885680951427416722623094828846679517097755268988648948979436097529883607820062483501803003665319318857775131311881005884709034126803771245410428776589680037399475654132334991500675625236264185158511752556177529946099410719966496149356717819270825114929881844168082711900782990872514579845744825960536027125129908752021838099975707220329105660758371881490522302659994304898504504155981302168758618131121658786194640511407480390394415231287699420047638736627216759902585616880488770668529777235164878002877439149986020480303321916249539472963161768693517815761525043075106193705647559419829075675889558410641090780081969956997666567734215670097552690634047272913100229748523064770917847968037025702223858806053202524992480802467562110130719557590880559150100495428837691608599106982273294597462974121993455975277640472774551024726868500025930046214483627152270457061248801341877968393600614469354921673438800809206367290176078690115966195088930993577177017404767419223396866729997081256885477361530187487865879075880977120703921084620074836991388538848213973660264133575949383740867172623219896274513713101579672101341665346947783970984096312893933835832964401065259413102321962848991696067078625251473918221292765471919578053528107095032636479865615187048152848182006184997284814796366866507782272597603189362090122416996804061402729739401855121936848465778008351608059529595595249657774636478475375475766174452561920726671911601937252047970599409001569092109928901756886299283438772781432019557184838903104489799969304478438881427600955585903309412054134812970514614093497175894856906994650864240393382416552632566886966415608363702080496482203546093504216501632620118942967961994899405741247856586444603803435143639681675601850955112533217471239124829511709830634344824614051769403087186515906920073260263628108035752394247827395005785412588212554480193615663153058031335067204944126024592158855145253042076877932611022147077404679513709716449630956591649130882231277752636484266028834942495849147570185664317879127151934898547169792097473186084530371302284136374157984618773285460272825827684889492241591421032032056027005496509630788843918596866736482867559645107675681791936724544978792231211023317832773649895315127439571733033167337091003678665154109393220030277749402355025614525345399706666842206206460229546961201484516006793422072120707961286969809904054371635858815816756777283506821566129709774904211081134300579499224261942283626561343376301389064257304638137298231037985441701061226860342989394256223245795013069320853407355510911019634202356067979793797167681192492482685672462469033432952601513839279041655170280263485070326260674076066460120392052621695973105784210927709062752576598270335328515776381750443935930201513900515527335586512028250644746564180457537802463806903082010521322136064913267927664250265528038599190488497190826331735411432939005307693565082456328935804091254638446009271050824951854951932746528289069762468821989384951220071547995478682240478817526392147798329369307167384945767071881412865877613536260208678538613057292351713995406346225022197657297920566956792408364508824640217070201548611242854263428997903457946585633637815203119882495383562580373773207198450087399303476417879197258514385091429825973363829006152561977302096511896709918450579056112540868027919160563243122669756583271680979460380476880834919007458769041358100229974829108631416543075875930214932660446587747910160623376462713534660804048090470792161159626346250372937386413579618387438165681680443082309075948380119754733589715678419726938663181697236662921701103827144008957738058483706210384547439659700201070412214450854186257772547729838816745318769162571914345647011195119817488168615967700525054466935772180701271491958514796536992389273792227266214928219167955938291177669494510382202636327375564862384861827357460108943761038869249584570511904528530628395858281424453159133432837832661520474803566405319187024870292389322998485570860054214244182450500666004388121853443651835987045468830449770327961987941318756982135796710205957842881449014679604564374336253083802435581648093823683493387066255810363514054037932265565671316663750786630312708228845863815261381935364106623930720490012486241565246237351029765813299139067360514695770774437280296351772564601821327320794916704442499766020832285047146774540515674402830812675858707562521821491684141165107195850336672290871239566958921944522215877608028320479125179536142624168353840673712335154754945163973224237231923948638431803674933558823125979355543253323778208803814338872512542305146606464758698102157372370564057543629257737571756843305910651278032234819400115169828831655467919896247639890874512365693046461577140087108468656561077718655222021681051259600119569923254858405968678670200266934252067529504893535739234586829832821846712700022628179981090335356886814191437529814167938340423798117953238687025935459366660208487009108917205953276427868586318592231229705732837876474343724116709454468931941230327882708818526295634182314573123844472457638573650805890782807505971153037226466742073105555678407931114094185696154396259239214218136792575210949789886049175960508304070904317821021917197570159623324535373581749845795766859224489851816757229064776014232613297282006439550263045523296162012495899159090846613029727424341818292977989093985477098075844976191940196839016067711001408331472926825329390250567671660082754003275353488735617304309258190177518950831740088997826274443304166052067203283708976914731205869950941893616965607542574761360398321604553607637597072557147741379510164728461421199407800210631861840369007141476124213509209990978428003405378794127345316790097935366139270197289306786303298734994601476020956823936972211871992288612490031943726419412141339328102351392201193429436007279145598073868648332032731956372131267353572196114916952015498898948275639969413485693138129999062499583366663451828115532217229223680480002154231230509942282959838631722099304554740992482794341673241972837454235280073459993373481296570813451103119100839320362994276239103520462455354514422985743460181636204652281405483249962585044934301253027338902685498335128747054323752432895445473385284731135672502518505329735711937220085433412027869591608514845587469872932105415088397206060815190735640467316718462652110577281266594088031867587637905634110443171682882911357117084270055934630010863994683330515552415837728235207922065327665822120214686910704364391006886255800436904761984477104928739574581831599406291038311129490719853154195505083921916764181782899240716212835985784278433480695147371278350984200106857609855684847872684586547777362417149780447752381236983947133894550576699202445798738183078561262874765761156339005525128933101101252915054045651344034478557607327453508389480699211599265209447765998231650556099507441458571877604673735803870641687751507445881178408957759380857864870766747048800240636666836513101236143359553975192636107188682060549212343852366297928906872827489330003800403635756585947954107010933324519946742711397885493862114403173552784856083215522614128521016213514416646541402315856158847222645764776978586665277088926976196274190838308295673275247778748015784519548716140596857554309910446615051781065195933098360561174698371654265587186183766893239817199656235915584019963428799350035268914448002695750627524598525070549286523717979525440050983095845212417532011345093203910639726722578126025805890282899173606398989664207376522672368659294965359307759150254153744804800376815388543898957177588425234559332363103407169737163010292762840864363769926627695120169074922825310159243247684840526593619006600280848217520908636279491583366670992019440945266905596908709794108577173685821470200596712417225005810865815266427694601062127268241844844026136465184236613135678650131762953455676932281957768216721651462024279447230051637218633216240810970240983805007814028517986178576307157619064973704744401913686351786111886359785047916732158252858383565725482910476518687755934942675785603875104471446574370590656353238130645839382733273747939138756912512024142814723442512921657646860548674378372685153805384881648053518421073621538437584536334392813651998306296064571810658168336140062441662251044092948133270217130867440968570252626827436759498400436759778970759778250980564066717839438930125053746976755577646374803619432979335933635978537456655815139853070491765611973156517572433298546039635940602719926150878306856086037710947512452803709213950941380741311126175112913238643005549467668694940562656711024728789621992214644735207664246663898413417784960888598727161340292736431241432737052145134162435820221860689364994460479144105246254656518521362903550128788647171534981156953898911532217304686229182158287239014273265886961335840157653988559404080199437620295517385043864694138261810243805672279745401838774547791020211962003302320402288098832946178396864673945720029853332498851970361232982530183163855733658092292826985719796451603930103228623791919796833353461844009387023377969139322134312672436691551870569223977009151021668182616455689283967266857594607363493363633576021238706394315067308345004786164105553798814362291562608643683688636192976649876778485079576826786611511813850879772399344900617266081074075614825749336284218841676597282939380048986089181909815417080775941902657507937495170223455684199442151761420284008688863513852322995277201056612783354108689489287497380547801764523564424960128531860313480522986196396958079128362984924110291355262080927556760313980474253322388951588471173018127196773759975904837366095099695777069900614028400021983054776039036765024688435018181477555496733351151016551368716364543105717731645362455859552229221010472926394513753246843641693001273452569740487167747032724571260012182511358360487224675815393150680510731158000338368144736549971378265725171919818652603821036373481843532295723154134390880001778903575300415349443429757796095160302073672861879036608309483711332071514522221447220805610558129176193594170257542758423096090834004298284572412673502513250818965427065819724534729643035484923209330604411222729360419167727176916541531189017390000567660748449859185192925512221638270722000857907311220700193869933112432776627601666963021968529911492589647816601371531950362642325813652317691775346468593969579625672994038115898881001475241897489624914011051504410591093706206281629451646865778976667657541286908211845038438520311379418683105059786112056330286004141734226376123064647364434508578359336247163294466484289822177159385837640277310107530745056898943887146544241796885638808929908622425560177094210160090754893977951927065888304944531218527983577463722985173339668405446914404326094126274258957154203699521769455516424230681319790406585818720531760890676956467381523325112848792013756189551180621542413987636209236852880027053696805513977986130687786880308212696612247102227622534130258501755455381087455898301860917557767249140313810222967103477712582929846786689128203059677481728955618621435348099225505481464423761264871122258139577139858546026242665292346027673077891374982589706288109850048870366836722051687576606275693684389339816401772653265062892127853244295252524892031409437905667190338837204367708061271034604676444535333709368564065579633459609905914340743960324837123614653347937870069779768504073400839954471247989654850800540597026373319319584391606285974299705220226130270873608256261803266912625788986432261338983999957946330074677750592117605479547335794574663598863354513106685806163520154046660930680296859472973942355654892389177813757493147472057433035703032008967670737142063725156501215740412102533730065705408930757724856539241087749344293128374589807134542954502129912468391815771302533542852611515684180438658559901882205090200009079767330915386845969643337530406191389984515517307228859856326227648005166264132206229214935076058533978673738348357927215247167005352597330690946849454709731286114899218713323831483875776332728890194404053645725907648020322052556306708577308364384451066034266565250999878780666747895822146792010235876216759672629273802219168981397021687910225247849006153147762497702234269314497808909832444896652721016123166777319046335418321803212348324986740864020578285287854259091860213749719706683150881979164834625384311325198602907763084471748306305773825154640302696832491664890202216646298959989099982325835269022466828159091048965606948273105115248524497602587362195211987322879886287219788892101023954824822910192998675725345732310724608207098927056209222820185000634940935211176903631845253406618144905906234372576206930290533711887989681510301460807519659629004949557032147919516588806606731964529363371136904574313030081207671230841929006550738710352608610240994040511676137793100204526841496453747910023278702571316243218170828447149684601426679202557704059558706980514315914812330379884704003289683964732423967785487436509975694683433493644582977399971766994566559503893682976723962013868701310928326846400155345073451101564780333316474190890598313628158040241591966930908395148060694788584479159108957560480223641432327524938070789222875336595794445872609175717388273084916253828661984577592422262292605911361892225020683442801435655616145366227655229563893449874199527921539433995358650135092486014076469876352283451245604222512666702717233845406940058438191699604506358151147698063181708893771245167420555118972769360679762361512356504913276104007933947617732957596839867332913161394226126371206323349089812348773718583065186046844085285755915701543262524036316737907069154683746379384660287493745438662438047165407118853172596018470061136277326169472165783971176308541856946121609868940069734656200564242236288675537204951951648293529992339873408092231075063026420029737435631297992094352838875379247191592985341006998456015021196311774359609686147468778079158002509501369128625585942342368818789628077614601090431957958614864816065330454465419776046978641485932588498087142467958334727494401838193817887660774304896445975635929173815979683004554730426972348066092048592151571635162192941680149300736602330433414083024786598494391826535592547312556498561823667921717243780355352676190399180907857823671576836276049549638945109725391641300315339045497924498683971236636066402928049174879180142943047615515849872038627876225050668014788602579354491283836875508213328704087078958501719465798310006690166763599561986595825643871225345731955996146223479075132456749964776387704221771488768887970606693360445913034317966017663773008945357248529978859298758721983077137249545186923386785230577976139906619966754054535133749512827209146754286793281430588026825975257744679761019626693350378801642447978439160989390494646100809270320830230400614263656800027837988938587376349169037775394188825820128998558796528414466947465601115453622449997623370776368324144055412377974554226212969286426377404755381449866388115254862056574491472955100547441271274460610067978530571149484271449554011433390338731407334304305943864405870798123100083102355638904625851745740198253206124002675198685237054563366279164796341959156761151301036406928295212775439744876986270435041824289719413243176480183411070205558302201840158974485280469456770563576597788568119037761478016603413286700376728394607320065373107098341670103489861836228879399325059610790054008325386029231379466820055116616010581235022375006673354581293277358870445273157186491013903361816672602847862485212345547840940852390484286871360623509884984975944379874245972967142330908608701255695510483074962947509915719187934212626507688467951200114115580766611363395979260856030865505296307813216193215953197975398127087408015108744286547141046497953320040087908153147651535712391882684689353484124506682280905336879551103661730848660562578031411629459545058014269903276671772896223720559777373398318925870634826506378103828251012916111940212259718886819743960967227166535745656714879281689559343770375930204958207927634655157541604274334694970440514949443131924732868918081329231043445957350229672048132239173453203727793551627211611599824490751074872690543360536088233324919933174550257944743361197494511924359536915563491865342785029791474066324825114130786832881477413908075385528306186615069307846647455202741589613766748035416674997476973916300039017231547208946747675475551163559111206588071063951340628351526786704249789636767369824863618486287537455567503545560767931454418468589486316375959608864463614890862429088708795753837865130207515748258676080154475566025762008973997650317785439656774862191388222749898988458847746382058652872826526777667304588537405278735082324399727337392056935429084000668541388051942657169822262690700554802716971396239880864151061161920940938078238339576401678943589518751831635086678063495500858626587884706798379672441824740602375781845393186137451213201211524165879351980178999258970804057720498269820392259594287925648837020282237229150939179945822869654491817686268157111668999893791855234980559025714229518121754619007355127186582120942201451164930015388135527796156293509049835424039203523772196305524478858937209879315432343718592127898385247292055956974151685845878424525408676813250277574386446281120244605253896214853974827850456428463539391073293089197704357466307924172487313598272821040982679586895941776443050690469415761109500450147419038385220825321113450277914534063614758916691663445026988045889664192026340891347690228069927137332111313576270664104801391570840235520826038988785648591395393479471752342094581776365074584140892688082291160631636692146128366357460660795275397389966352920994124639039157725369585701552025498433712086590261104711982515520787277614378106227783706913279059634556999285077416629279593858021231274137062648482904866741579391591821387588769670244974308051976045232774022797297927610978987527588087905408851775343250487985058894661679369322976134165003226326755164426433035039034920838149387969006026572636664197081421236998809768296516481584294686873689200979011840549436246379408699516859305768958660203366065245700236410048904930446627538922352831493852936004031255565158588708865386084600734164455302796243723247217180100973348689121941922244696259151855300168059419480692822373754738275661964916650673741194645633428789440176658329658485045976113407359758123069482143882193234518768724218312844544458801229666677292785064011841950946499809655095536278920683327629495085200615206394102438758549185671830939822784497171489446630571944583567491792433115422418493280514500268614565875424610415281430790489101596312163589816801603167534898987901547493270125448505912375622287944099633137484912642887725823116761289949829652593714185951844072996276291273684039715503030379223291152437285163316389284487205733145096762867547447416684957212102305715323996376669728284172099848154341986122929807084756180922448554468216245875266394677652187559186914667579017683890206425832371875965228349155108456739692792761387476427730307704124451740437757005842823265848192780665411836013130530657110649045902388294657685405874711132811676196426053381188048959415626798410070896873591203249068554120832020883492193492612970117609899806420871288579024260913265067066661544756629820917585845661266670341760214464957486819330886863825888699160141049804134385675809988048306845743228699337594637314763099250622668872567783463803013388927389289941099758131010066131231316380298409800800930607593902141943523925979414607703982830051238997257829461294265160240007461303664660774705015086865325075160641537210678216111006174748824885101811410130872293534044861158377354087793861526036296894284540013869632040287463778366535074218494860216865286866429439946957613479223589950939042233648879073953928693813930328222917450058213570438069658199066645796248638422285373996804428788923361626658436910668091897772397817956686301705080024822124055276416665266210705591867260872509865480537707525192380045988549601125592571258673752549486497098182505123491133411489863627602589963580478792596135127898428127550434361708405362424125243860561267110171993504123234259599613234726074114749844408264939427424238030120696822408594027411952606174198415222279079411346755551088539523060459489507061948008279761338694593533858646424741268495319365944101115556708154232599874424476987611926008566105713250941232115831882088892541714756090689688720702534645411403575384908600739468085399557670973071539716234145379385067613595513868209346462923542184028212471840667374975096941145388520271909929219196727386181792496274511466845123780424515432578505567180071162381342166491853752464074955395229583334695027857291948538083531703882634282572023993241038333047359639402805582813761469323818889272261736084930438652839358392836617561020824276492107761718232473483261861956663250256743243357740452596675738637630079343383344269099535283120646122328086095783699959636063961048439542294612996805834413430344657042549017542459921788377929022235036180580439581801658596589008222920850964640759259307908718584947396648600777203194965593663178412025163883224999680348703018354067040729182064968030031915134571438335735400201308174494320833380485287205534525240257967333773743135077564889521039969685673700920260774696359600302631789667459701786604516019330433629408335164675285487104253938026200196221774235129526945528502454058017878981047673432353276026785053900166581774164972795540837689603688097464119941342740735388251295681822142935137733930515029359898263156139622456571465949884960188843452658410686173509098488991404269326137968756091940694379938447145572136842042284659124367919534580275325022416347238190483248399275857412359552925591690194665313293754375279708103584528883440129417210613875825140421986222399613996250544723947950585840537912414150471034454901086281087975764237783522028009045796246728677341541721602560917290128921558882579446707757757423492733298827062749953196378688336066580661784969936067927497004263150992241283967453733326886328039098169209051209503155110657495599954008798156696634946664303563040600699348303756622573783608434909810542165229532371235639706720137628861021304452397977672006830313230545836947740827938960463729353369925367629167061915653175307533478539932361699661708368892942482173527568224914610135829367887103689075697889739122256264689015679141441224727554040648120398100833848067989320192756503190070979969616103106905639825869473246366587866276480754294745007366635041857151134098695494596782319432812151040021408304534013703929129890894948988423110043234807717964074213381745378439008572712485005202670007033088723898998895779322571295830363928874308288642071736257170757633544414928205451124345068816233424784501611963165985508114665534082217107901543227902237933178323603082110885204858955584386483429507818639374315189993025030042844526316631682173919033854416678210775216174342832354951983169191427068865251052218083691072620550676644567544699795432462706433178352075996877918044816734487698389642538950173031524248158974975025039653573735139934762582321800446407093918990475177532879695093100401732030233356002306493111180353408893715393347004006155725730197290673881469532703281218664508647817691177901423254206188470062249957211520347664432599797773356175157635254806121765902510120660345122342224892224055035875017535734845661670812539833386709534711917310865374343060910087888697632886519144441924735401586586608486151002752370929095272829450140181689704367976056426467070156344001529210493317050896164371771737359656991515179436650390095824154960010570501774509196804505977109664658124824125022549057309987175550648383688427646129258305723002989603925264975139242999276565851673690098336036690859256417467666432961291218052974717200466321426668348742147586868529026728398302382868189887422962526593277473648649421769154172676710781392196901283515853000932241934792693665531325289639800437556027535952230142484827334326082558263081142404364801880115432342196336474182652326362031188789672413094684633086732838228778951856092951766578924736386123367709375459771481684226462389775940061493418960022361886998169254268136426294328762271408564200901493714395147139571973565961138687148625403085714328607117110919874043893930217839227381966275670682428115706097628014400481623317650225691812637071515560984139084360274183002058263766884580533562685955430892635655574856275832620852121246034732889412209094967457820424834553420654177590552152991530712575034927108261219777811079410091891099543820426127146911840667166258730009223638624271243033786232003194637422108682505831490547484966677083716874191691494054751079282256386019326830957863734176055888531245544668547392556383672913697755223927742473322603036349583480609841725400856506999649410493411502873621907141298716735677836887631563307814995516395618068544813046202525024629164068396403623946474536320318602954116403397846211124515304379962045247064172089163825698650712201271613048892916283205937639787292442356800751658168722739798412131949962429393490326595483519698545497342036881870097637118776041743356451698509052399639158202603337103258627815798435079911637872722279090659219980840982536081081671453635856731791632648176453970634781661858031672102263608090604404478463280481306603733897270929479106416634057633478196246018277541721000581152310565405057801677729625577500794353416471408651797829278111853904370480143500887770563171920202647411812184357289211931525554729074305573978637243600366044924185493313881050980264869569874555071493232504771964100197191378715589256782440687201990524549050859725545378795375843583111084139406250200173151408128619868758348208958074650685578750813921937611326414811249236480126775822962259065700769469582665479580335458235694681299597287531804170138542341757816882000472945813464684197344749184786757170392773272299973263345749334699891854128182838813416814322351325760482675717624817446873461825484653492130728012332550591593891967659147838556166524476025673301625308836446615662747415047244201328678615779183935885601665620924181126208428627144782489815250864518419291745957432279385870200781987204474777788115940862537950357123656306725696795631804235273263598642000207380471542944266835749602247092217186405261493979576339548215816769572316268317036931379604474043354227461376757367029387589545269618335826531182448440851910432101369105338833039766348302038657931385636847805211742351432864745221795604968651014135822467608067502301685366196299657822253904706315588612924450310051396268874400875979882493133096472142835819008776070099865137430788330716176202566216326544212485425872462043179847361717040993756448564052169733700867683758418234918297364628569909159295567771179475454496774273238872983842483832745242952576371472238877073631399152572210497612922077775022948323607701859055036604257617486374794420709177956662337998898056787485078541654483663457728020546917780470497577919318878875845027293915588495026226445378817209299334692586530264997880983706090678438580185006754183691733745775057838659158897294807966075307498305056561945135858807777309342156634866272589865191599328707565694092053080764573860729340951684857909847332001501930206242894820416041533639897120079118138638297419366428379915550725312582517013926659365821536782354880968206670436782067905606035067499596872575450624820533392513779892549419116195809861856805315350690339667112496603940541665528525153970020891098280721084240074674485281678908799610384599451583621732509044054632822450963962158540007102003958754821576356621137604979932629052659129789037153990222510036097212074959729246719791532360434955230834943931512981211835111763850108735643710857924114101299784528316183538003809342575389908231151316758206097904203167997976678017267577519747952945540643923468740055909422758141747425080672444438410710133031942422143307590208356079885521178547100014872231994630234174401256760780731058760603302344213263622978214032430363610493906649872094394478205418802596724232051568828779310574174625325577159232197960568625552662823245356403932656771476329967304769961451332358107119331538516379443303566467788453434076839938069736560879642473094991281935410253885918914819765357314190105398089444764280370282667725675370610203902333125367058038909346684156979017453161995753694403004839811625747414585403542143934248519876103201487154381853864853105497604872820089798071410447342065639903804069122858006069624062579142003066181868469779063238111774868876274643092181804296818396972073614984120470867615305811775842267385874821473723187494368150500242499255876126808756694531880776695246623800849429650753450268089108897388519747901046640239142991429786933015948834316467116610171207697612954169493776339606784360357475741705019286210824387465797199845842340419155243221311473147155100755938226830218415031688197131810113613722884577437195245173896005919230608559122531780224384505623633412938343699239307270388016695017487886281994995277266303445789246838311464646386897711558256293127538810347119608191232624283498278369414999145705154617041900316010135339579681936630330543736335100084188004102719592900742293360591757966149110901778223882491022609972450818996794383247314686717104542824003313421054351823093712322551549910427287657699417491512447235659496970814339450239378762837744044893139316704081870538520465765065304401106670068686387006646382317281911246438389514762226123851182730345918852743967100793834998042960744865135151567874237003387478157970030673285614660751702136615732871556445704919420535819865707594226526373739934565125375355536149421114746760808385571121527707620361770593971812018720698200527041240264088463204039222012959772927748481333245822719482798267541815289016175934524518560078518003536296919964894766377756321792287783641087162879080535561093726086352360988542902166762688471862018222657190405379657897648312712945800369775685490754773484943851560256305851117684663316482197333950359082891324953808631624599313916592219793046700354021363854417467996755130822811511514308133701612189181160691787781422046232792332062256864927272567768480881140623435361362866933648525192884302759102393317262252396671914504383726614347742114579064220256764709931733368442489175686816444205919562116830164720786298032015978915992768113790582371814306262525131587103649623425192034524672424470004950441519101977588926786767878292242728858427231612590260830307577472346335323037783971085988967395559926603824725820607821935524946954757325916363135196954746309690785526714685952981040714359977978456779583761105369882787573237674452728684306274329064676135803416246884858625411696057250457095984108259009757140182627765340403277648575337976699923619114998483542496993182260864345842608685246404986069235022591891551954970837185476045636573400570593425580817585059136326719905162728106692746599952759178669190775276166368303092784606520348228052010230183259085724981275756141006094660521799346520762737370193843302515450316155270406012210876306176897108699169356831992341608132454316707863229567432618558432516566311487694936432588406908527136397872694782557119280223250268388470975043107378047418548813397582443453745341187030958563834334944386734982211440300109249235300556151989359682861497198673291227611524617905604129546584977715170641093143763929404654747582908393568865113800205540620053444901625108385620374466436435184468176600579674166443133771559164330861762886311968908980351432355439486763822873955388015885579249392862658798104260952305843854010260387895954003504863298619438888703437811812338911851539869518100410519849633197387376291740903932340153770140460779030654273654243652890382430226960805925205082381023311277674872464260129430251614414538699421852118552791196211642596761265474914264114418300209855923065738666728778532362200775702547888551306653370739699946011170292829006331984457157954052510901343645455335326318978255576239109756544897768362418422279685490948404067865667744838723384741467942775889065607133907024817515009173535060854127037774626482717293965932478012480980410962740409676431722967488972046704615567035875377980457192926732174353206269967268081883267287042383490156065823454917187560090219875383394130703428712073755455024910925824682077417556383657923359828046839176051565663334648970172042712920016589720814432499979411900903417142097693963686127558438499802089922472247586671583800715058413273122538163299011598411711557249439540531938259748443155247155260416188215748360893417345784351036309704632244681684582224926223657212765003976949417056671409053812355921749958191504327550359603657451870274405029615875932376450842650094619082698440606910399498038960943613140497807966599812680932031054329225642945858119700862071098537496975949654778195139083665673239433656547445939950739992893279946482177596112644164363586433499455166606273776007575119514761613498408949025780601251670543238473662125843880429542193095155570598876081336475151139980992033774905563969817123565063320962197410179833164406527467698590654456392340115864148021544404979349831003512141191521997907449742904067018890344679854954403642852794303892408753511742504674972545529169630933527620873282770392799580170044880708669098840758054657067686602116857402348033882384703540819015148092104868453160390340657404263643107945656307823229104628437221462944039629270576782525042256298164515629195146804749435349813529988991573931838415943150673786384194765642001207445169218802237311418462338712338373861811214134864356454362847900448678176431656999135805849988975750504761237831051614865158176172462758920855780917384533999643938949975437404137297387866871622580160407141808745695306702157400949844929339398430671182324369894204776573957499996729364899935592264501414995517295879658332025383407924432071677453103798350195536422151048825462701302287781452679977381839719553219397835216826735194027716465064567649218430219987238137933278810699662496961892605285444868872055863170324424471103577277306369711521826650302862427528685848083631610990754037008690316625425117258139401485432520033241038513586492834557211458843310409466568744840671895669372875461032629655761000742895301346630845156048106126570749553014080673944957237146882588930362533409334544570012791182865840841235141606013499382950190558589164031129232713430507055592460643128444135901597092386150761092399666470379908749768999509977309412149840207221198756254791804940211281046676200050596149238048649606166630373609522503819586544409273941448507894445912526646627888321114852738232784739792205391078123242738148756358830268096652797835067505792464181815594184168782860399370670109032601522575533648954817416263346506921863482660894578029550708893885410461675307925724555694518115219390174040280416076334923008008837264553000264111977294559038377054867335883516462952729426917165232068107915317939903588763488337700442963327565342157458361922516387788970626559843030960922540145055155606847907856550197173683498898256764492513096402907608010156688011736639304383203539417913035051127407248901689105490559362481605933422501817937044607642527470299679388527520050166483769297238729621990361877225898209655160436397042627866071470994918729531246234253285012662596509231707670691793264000620216339117518379127210494083546578885474570947840969807485650161081487878175023122201729528728865234857948484065555458351747341898497139214557000660146171293020594452681646121557257571456298589837704721380542517587329550505724828704145019137802825075870605641104257688488344956363645044326087426127598537126200104627607588471470983001549134873965377303968310446219152915500099118013285825601296919460662433608803180538533700486140233829372799504664454480503729739818024945252326637871352654690998768566730709606867655488766492068294863630608296981423049029949027771251956778594427044120406606682126284291010492602704649769707751729309351300754506931046705382638568230407740062079233015173816137331155458915173776297023304584486342125672279017057002254865640745525841388889177707893953514274638457690187879379015548220874357850774536646429369439685448038258012624865297560084542473008822164544252727747006670920663403097814182675686007663758288774593447577287806286284143639824009450539761471525206457010438372329503496687311777740734862740472432559064357374726605865428061587470919863431390223672326651945066885033365090408597326264583915050906272686641619716392801739105237926730340121118534251588593111558414201834719159807625821578825326406140972950844276444486832714736471693717230650899723882872144657335904572289304031156762764510899841203163063213267466209528474530883958162858536574413433706688121583703308491655797479563966155186799976336868104636584337212078034665023554371365400127697625027328897065320848500920896643103244225330031871763535192454047055714983756762657435841461394790210872311443060931951079442650310143697899254828600345909536647888701884518765590418692818966365043975428029110372084429414076426417969973556917040351940317744861285102397953585563865278413311331266680353642555533422609568652550777041921003089328288266865046210946042750497677447075851818670879610822669194029934606475583719972021848838875306257450539743875431063659874058548473096892016860550182939499309795754048651619488324739042082218959889372911466179758923125109598928717477044467320070423146982945931888156320669210523042880199241203878608036684394141339126540879842601117985034186819775599970310054243115402943856077452198153157338822250446839508902510363664659968863784604522424227479172901331645933628312597204989458509054496323159822956112623911686680298938674679662881231185619653806336644360026844902578916837256057570608368925778820693704665955686612706106610815204053819362092566975900696271447116472544726810505395094501710682423921166719146314815185134861698169813668215055286751345265447926642506684012585785938323751164931039643113008275989379149362402873571013608419978801519987085405290959709072326385300123413471103665135917527446666551699375404695523835281510936840532670093421787005019959882372627862673806205416419203925383135478997869464476708841494291913620258381757291353243811765218946318507973811076764523280398595674532209199891557192069835970634588904265227949610951440702162456532827572402252494463539875988775224130128481900391211305676514440906378795487844950647021078887537105359429403673388616611557823085136270318208226370293821815240638270273827956445863111107050072062525754410640805425100736395227618082068442505907423265814136194649744613123520792324946483488615888821010378104336738024506798522947017438802845621459312911054245197886248022439292381574235332354024430093438297931135470240235835727596348440916202871814084158083420498876410550901575308591071920816279588149702388353129024336735472981228472305082520658758589371803269710618482065538974194122807539635857942416260330768759657033658387415388355944526657957795398301760395401072106070392853374507305748911646957498181592660684590068209386067700255009243980176117268558397532998256047909645677423360764164148923861119903070272300235803139407632521630792681832023101456570574930967413498598581033661441469727151468816753755795678344859462737958058481550722418030403779090266489624488363537325832687986138454364597374059765935989966603625982011505792514683818792777125333474442140748328261404890232342394031221862242335149681977122451027854820680022290725412840888583689798837480633181331370635390979198253251722372045573343877074315640725776957776256448247095054606487429927683722792187316689472373248897953855693510603882752989246888359641605345375890421453609866714873580910996136744914178828041349776505067994670637155003062344797509743824075296657665357054608679663202672483457623545940846554722935028565534698292497142093709267047726834765732791562315774466746351725497080076334664080015723606843516906063729558642921036303237913567681342109736834814840737793127200764456592804443040162482954258451199032915238923741107798530415036378117526527644868017468178564363956472979781750147377843498936529203501557635573451145883222984528350041794846146082360645641689332830983992543136042790040492172048658337069553009547867766255605908068726877244159274549620367068044709512305812585637201093321087173531204941984647034919624776482475277751220943555385737897177406613756210581866117346064368449688296026267105468229858151646562681832666117536620937201007035758004398555450400589149438548528904153227155330209814706015270211319125001493386684968160683245247403682564855449189101528889814780326165898050407202882659796389609254755767458415169324288387662474916937135956639636208687038299205065304062292419268922818774201365444541213428189582298108702515400580246045270455475009234072509955824286888339975577561888053210357357123503518188077923538374093017478812161829997210573806822456307680823211391703297530827350383272774068201867232730783432105426767350568317885915135603458987270530115306668964799442873757315442874137481084485023691272924984572345988908010810639225809403146551347723475286536011084198186602551082485905919840589951224160242790623581616426212180883203430520729129688122963456808254127468393193371060816590187629417017732552120294420368384421955238481128361176339093445822676280313774316042507971597949450209794724496567474206130348186298557217305216649715187720489367324586257614059941716824730955095423343719173034133426678601190265400262158436986485256269596855443153065923268540881191197919013105680957305225052655887466765245583024572599405511844517537116138420419592399091910801392368771852803738802319518227848488701545313612916201320329813806418473520224933462306112532296644280422640886869275681475735910390577519012629194614345352919418756855465904106822118796241215772173118589548689966544875228104040271566162085811338536802664910060962460149652417532653110248183968364464542393014851032927039834687179856877376983817256525342034965380961708853546909186218881492369539577940350844762260192926389039041427228635210722644678322549132380757724763347652716007318553099266483468218246390757177528917592894537329724907292440540232733702024789768422230170219619300013882341174983197358545863422393746593599043164877370626265077378633959701769180592014082374803801210700275485530436800368437439382636357715086203244249285501869409561453987584103532252806536654799202799666682942351485666241268617434342231175631671073561010859538362334721317654376464523398691646342375918241484144745286169023470097583109970187672401517675101193666623559663843023666836250649872021598903285905142399513705224431968199062267687077333709782274797062211290776361973178850010260654178390558223581338184648031911089344893886909996770657627555126685596859723210540675401316290316278236461908029424506169347541058555087618665178428350445412809012853758724430364650612629178271422209157793945994617368636638938356207737841232292710999882730264767123990165176560010884790809614727363774875116235077991316750599771167241404244544475622848867410987484577494321252095216016509701756771740824189815295892341685018441794843779954569027117024231543420907402481036337426240393897697715739365803002193933517616534413852037173854935472952772073388642099132739987950251721341163446830129141421301242681328721084587120396966632205364959905433192087017376554769394230058114469206600690780138886054814153069361488799461848357935605793201398399898747817103145467140324309729351454889182341303944420783081124069774374315476866621581989980626024520218288285803125622489787207719803418090750158447216293506210350773678447994897752595492174805319187417137209198407781261388162241682702800094755908198896455150169921159516824587445087724368361874061691372734914317189516025802271223429467129905545880622705727054372201675837051852767600867509256416663739547648979760829085658833574827978065569834303765056741669538094605271137029499588967726758041212167049758254429520900656287148972540249809806296744241164356434426421181030020993116526927561034520610793045274099501807824638439316820225454139629125039092867267001589155791259721311778757430877774612699385929160763274049910434709458869171415760551408198747891613195459878406561264244895251829672295940777226224994832358185007064927309927564532397209837349982073121844696003394047975269545517385941273893392086233300730435363913641749377707890376523823161051289859016737392888997575668229074520288619997302886479113335317720100227431590836508324409651579810607184926821075135816833665231911313782044283733534057031068230982674759829904144446545118787602152964841403430460444001283331741291385917130325647583510720015548453241773729694324424147373230687831317278101679139316245722806303739124126001631005809604087554357677784802259984149699647267679920215090445056003146824921405033588327584239780604233143312092968358347691092544131239715740234017329997272549982825052159560302696645642478985119042381394620743646408306270053891663963176825545258070672626203696749007509234912083527011193121023746573434892885892489515142881745494571908841414113360152264729778018234752159970494087415929309203486103202861112223289933143922703347761678762204256559184596704978886121263614762393743626682308520933219815772298482307783389377255234033314683578775014491436484426378787250379291855577035896154317163354295369206849008318020528053904405674757879488125038547350218039739641868260066923784916116793619653512393895737587348665969908269347364221446958546065890025709989961015753759469620991673170580953363200916421700002609592727871744613490929386855558572371516086953954603168172907980442793617763659636304303120551507603899145660437802180025513757886178230141854442402925771607221371478691017727804860406036764114652980289909815852502449141623150573227809087778636109489888031980804511035585170466067754594830499913979702604867515150465995287659022075701173403780992218577924728794781416661732806350195768985417659431338618655871099987638729286282265257432777905510325464346702939701594992132423538332959810924708545944148914491765566480209244183391212948149370961822201521516135429153843421840230884259560714904197045466548916627398325545897329802363252802889609734634652114575819252170484350035745867169626168690994387415720087098126913015187045974036561904326698203645038440749562026218228439579430911088768984678922443504592588423343224164402198169462759231603627749691894755168449730035471420578093458464905565975380172637023372147001156169413946228545340053456199026377820116293967763911337320794528815481894328426655882942140696771558450947269988315575417428972760694623050946014178974629642348737186535615343085365606967655928433976740258632044531098710148251796485966971680310526447210897927588848303919554265941897169493692051846884253026508926699624145156579530148890112232155132527731320558743559504245608275272696126294338678977579048289276572863055532128899503632981639931800982527743143900811778300658291005698371883089367499659299664863698073453586512221737691119672188431856218111466925710857864688838745006757126694390997674718676425995133876064825088669241941586461157366778633459609157592711174508280883234735463258207960086762042460989400800984280654107656617341895749426979585635814542931431289532656589944875947141007116859050667704790577740734609712601101703840637084694736629201500770214761494667654397119169905573823073299831432681963759846607043583281163395321959772045084049960822251064066366082220967134117525082679490602434857526793486077969928335003949960346709127597474960441650142856651398221920559829467776378553676000021420660743381724085362743639133904208897953086350637636590417032512155830257321363484933013837191136901867228885717583371164155432582893750895945028611782505054631418057007112937781764095483957269594094476926980601797554251567147130058369347783061105502561311167127801356814186608852283082584562802942804229527035702651712270674500150519037820371462762967239407223001640644224939120202589684688339686177142020542009241784242619449119200359167887788016852696127269600030183916409261126360543008008028176146257579389376159200079181090026097296401154640739093130864624361156672767200108995976843799413405583096773568079712384595509270406069128470348392956052972880241360627756196251432862926577311179099394143316782920058956263614808422209453045282596184685030436777221235693132725856940776097477997056360319730696476723330656782740218166592937459169596285356428944639151872543864771196028006159351654160055777124458405002854294434231182397435824947832126405123907200106406860136752069808869132702366674904057646358619178529122605789378208067068387534681935090472685597950040138569592448468122364175266509214277331151504264399627846513200409632378090443358864783424157693456735049956313832780122354385983224465103343966854103755320544492538000529953419411855904698853829870331756480206641210829371234488276909139261039083389136099946965549194513296744345097097976955988389585715349762632419223482101846596070190018272262479217923697791266589941768510658885735325608066404186080011861707107499620124520864904443539972485778520119997133309759432604822122482404418159362220228485055842131408317224348930824669390902044547860720615496423294063588921082141654604298020211084028771538326070591647119197968418496716978004907613568965343746123858464203500816363358245542338651392785069865229228157062546973056594836339335411216298462145239032672262408731248638577783544410856670969493328928945880383425880548917340047948409760648567762770818409784411917289537930103978003419783655833274419945725719085739389583770504490820574186925064392249814369124058097542456643124711060608195304637093941228992015124431884981754220288800745345788231392151825063986313471896949367465645748199992838441411430537025433530460607830883802385629474730893335302102262997961178329341010918386427500324418269353914663418531457460862130672805165168079125576480865846064223452146572125671865606604157838920251042750828732462632576707092522995545805328480219940244165459827615282326310459358561623438439484504015296685442467341445614277782653229044131706545700547768577974765020680466424713643087500483697314413955003577183136641026661304650513799384225142283258870639169614220067624274705479389834915416723394893872062352957403502249590449730888764461490462421653674183868414278878632177812565956878635141849663798687869750122855070699367120737083509437582478341516575953435449958909352581467891154187849938559379251470965315282528552845399842957335950068372708438321487550295174643832416509000179215963856228392059680850796898307690669676514490361087228341661415520358638431429815862045371615589907114504299417381405688932367324772585783553166733647452787071561238921506270483835716210782188282660205473282415218387056985026325059068871732791087390567838133279740053401445667233905410889863624863442139715765797176384443088918842753882865773478280912100832744412323681370737295388435805601313585426421608808250579827645628835201554526493682521743651665227610053548632294482682414171912913556965979473855883775559875866582121137439542724658073273389478478673508174250279918361164971104952548607503565275315470603431244143556837961714489785017998092864057498907671223611762695094847692051881227601515914578984509361126343594787230899857142058709498103807409831621347255520189100091731752397953491022873091896714217991600033867798357039723911861924848945390295293638649429420208957322235527939490233957126379514449614269992076000598784621039589957008202318473269535610978709806092074736139839590626326910896540148514387237703670325412645361207927411480664775219875852485067324487540050861017389429785694610139635401800783630696664932849935862834068319499850048937787943538717930945959330313577240486355235715342516425540352291420170745462167018929464792287186551073443508608269805248159705913053160040697007643136351818873250288684290013229923191772143842224679158801190659242368382711736298579122661924916338943470239919026345135001996951491752725897282568070555768295604590790598803333962587426068216005243860251961600713705857942851102543793734753677725542830310139232539220507699108661832393737194641278869492912449682267649483656326844990870251900891981283852747780263220164778181234819555395963672229552464596317391712471640038339003032776003805961997495718060731297205913481340789206328095457351469987182072885027478295227189444397406606333260106843143135414313739399803757994772714028941850066668025063680099188373092128949667249397631415151378559626184595714608015849052560287119017652458874506806337770239123338501798704029196567661467574657177512082477375672561471006993941759390370318836808631832412901276221115769132803655212759469926074738234270934759635831476877556089658208249518669468375615952874600271370888309911213987392183402332455199122573857684313580731692905207893409604172785845822258893216733499104966385498743878315477167389845064194637722517309990917871862410035555369828375870464880653946135190535862296503322858605742514970864622039305408453241947243431015397642845651210758585586413756148069089188205732107320848867017266567295001717232277313947880940803669990171077429089464808663130149769434810938538812619938697739907289810949266800224990350184097943261664563229268771020855377751245722730784400888735977513883396805170150412054579728827809313714108176137458359468768731484671458369250266809889065081598802439865420969792685252170321132278814345172027433787009035930872446471745889610685537273367333741044093217482898242656788572214612555210275720825327427384236547636430339507469192434889906142857142060444323896404681698164700107920826057513575264774903047541953900229406855902296515570412727313049184968700799610474422689641149383716157266597353245112854819203992021177716453370778694941077818506567938608945134856618787139221624349451151419587605388398151258022636556101840582875603358382137477753409206880208374480310147600186274886253183899269893284706892791719666973752364764745507687779531858113327709087827641111540771788439544653925717048975813690761896631413859586810558043235509257465110082046231176863584781305638267586693041361318746698792890303978542121933995733611205319813640818902863540822588643649175025342600523634002436200678198229279861567922036907680037844765132537794433867810595542967084840726246283100587761454097354736836330936366648220390296132627576635252515984508404093506346194064698182419717265048040887029000526556675086250606051645458894137848962840394511502897066654439910249380042056245204461937500257746151166843195792656560587968125210648611147518526473647023433602240889132908857965874970126071087194147393714319721385460932627045023614799163426621524374286636832241619884107915186817097314858384857134682706528606095790446970032656925361003780048459080698493754984524962962305510548891279841352648046370292368681125893561307209982010467214532023712803692608159195089010186528129356400269880890048875317339748896229141931415393214263560445048865861222690454808815941361550131981065737513920008820239212060936168110260110438425980970839142655610175368262613578065601777866333613519809769700805058446455532112010542753003668062899465029932194281725205741395035924303860531737432998960618963795564694293063934811911684171024341207856484275777042062401293544608534383134062786205179562300190301822907858904052481713582613139987317151565130106517265756685905560868453120255489356661881161581186780272055089423222526908033943816841388296675449583462071144864466100969987722410778021583000643724246930849404126084509371811848063048097079958705716395459253855918891764085856897242451749328777185808963332924689552967155744756414732357075182025480993454399531268729761085437780224222356360908648164729027580442546607223646506489305203437019956120242247791872516317411251287792190504187113351079483039745396509376530316371727035969818476599705425872397972653395395755161000412730612329345508916456095318283248064903356517013603234537483269536599832234692633208472182715992748226633408690067108101642185742379212706670595415674125612602332162261880766153902181792362876291789992315514786106924815387746594119092851230417237217844802516428963468048286068880326605598374538613089024988954011511137984420767790559632976777774635511236605048983845588774431585477713930172988429883848772458574062827118485542692478005851433277623893319227648083000329516301756248001022046245598341675294432404692248609742729447080719454442221205845682068739203048867933788449839601470044386426532093781654514908605435463280504522009248879634828790111119056581035761204623458139866720066039465321784255343576542150327490177671708413661099881289475736536571244529925083765157733872085258235164026682633023373678274550535288682559559210369380473874513014461266224703669693777896099734832905358801992684599840403680763694799305791657218404274756042153061763927982308744975117575468255988259218299451861125264919996635888959071743164326577300920543990940855599115569299427217237083204417623049510690720039623340957266403340268433896571555794477266740400347487891996627166085674794034846303120059805876475864102176417525900343106208552545080148064886997798767819925872387760633879673453524786477106194559985399903311932627794430516873074060968609053102143230014317987062412615854030807632289648068964212164423059396331011040154593531347758233596225958398423862574570482139404516836816082101498282224669522244674393221593045853748561261091807932915085305176412045814573944733222276296122626784186348578081993462801941380162755718949600500018999079844224874662779267520863375150235850158212359466497986837964310592228586840901674283693026139485851510693103345241271260005668377929135437498659364622628517454243754051516130340899847040730944579104226380214060007697842076624619265215505439800487323729712132924197989856038919368827489954993967126593146921786915647404498179482555275098131946115552005081870256139243341440290417740744488658943054788813781232133336208748156984357410349768408618495721981690168936392746964531766770328806017415660982025892807081230028295071381220930066224183721580056338649596231068232962394357218841241461778658349646954612366763533996999901293225318261317088173808388631372635391090042657153503168003592892869356092428027217806912090436909146715298475552730999194195901586853809825181273780484960797171328462377777846303436915323913459488853605678347306243954309201096348801510001303525934421457940222620796871407720240291111855553059191379738950350404593945947616559028968047090392528122766061828514795871830556020734670546046333938379722573690388646818655893565239674556109628428534419833793280848468057618625879640094554377835802680076552151409107661077868836134763960914891331476321310453664970533255588651780536962408946101456218724271565746610660750279649383604096916281292816077395394177841413515665527080239523410040696375432185858968595424919834003472891398781018286741382955907301647975367529632179836348991988961038470552544499565120300777421616933195700831148995420263826727907731406703022286461573598891526439758140715106215650065027820343081635698504872293779014524987260455825520144669445272912571891509411965016150214178285302996622507634008695189538073430862073421432731959374141535427114631748187498654827593227626806375872730181094640572294231603788281631046382595629967648733921460058741367812045114741077652483613583232647187117596632256160089381510884539429697993145259520466020156502767871190264816223737510325968725415593596138256192585342194289327374134306393659589847539643140473823480341714004497805644879253142351953946027786253471902127025525382467581502613916790142769991186286116124319582334611655985991632131174454035852743238863835123182777020499410477160080583747010602425228436853123032429697193604190654968260618265535458898291319726217140582213166969060151844323844885629811548785392158738470524163688786902235703601745219078679961819452084093509572927547345363011921449312305893827902656515791353212275573746009775430932592516745125729083747162890107526224609708653086477550680211504461051519057394239769199391098079610460443797321706042068109318721453155581852477465126124148722224511068098572951550096699793731002355922319132542272735831559011421090095092031774700124994317419513504377602848348622509167132202692809577393394512940098693422374433580039208595775808306275092081596866891810615861487190665095581397538927999665382459346615873122778038633718432992674887315657214914862061880607740441821333271457039417922842843452036269081343633018633414937667561528562916650576238816044606294536777819472520614515334619186986006937747265599744197077390430903762869290436417578774701060874267436051352181987591015897615202346695194143267853978591009630409774128885715159866871618953204516685603579450532873481500338683614562747984194422457077766818405085401156713157190868331630170578902248802542726569529246123172703152275365399174542115633698522750737460391367232257764897853519419187863124723453630342695930320767977855168847510909404582301527357095357050894330149126497393978855289167598551295513851346539537119724414905521408559578624150646984920851063533240892957240721898487397357719020910261240806822879187957699028646141516674545815936355307546230312050955792730006020126518521679331687891556429869235051995046525561080586384863195239456190700499816313812811550943544705572245123345556530561867136300277119202639104095134625921631289557161909622207705138335863915807592203517129895226139725223417416295386959991526754652910692575414547336288004288773282868083916218900433074351958015180985594602326782906770991969289825086976147002165206080763975317737391518170706798626533162601163747005895104013279118141538446059914288871825953606730905331697413668451279118701977112243729481934950740936442289626066794547882863267037935758043681679141073945719209036038685771636242304060306633342697945087721109376807296586473374023781290899783185577907359454721517380911056116989917313670144351506269236864284022259397791948852329170322969688026439092486675625776211666936694317318379960615044809001958857560280461019511023706900128755347323734119851152676999104752247755361103336746307382171610015444273416762996614989185198631811063288004603145250946655017904295080548066382776552906014599466859238348179869590477673402908184003307728756021508050162766862130105031845808163435345713573033678118972782532192671794972112103415282759230737982079842134227475147872309201696426250735858215488310747520544694129921243871791637023614952841478572373254552565900696935303027728498770002353436855057137895505290478136394026556696203705102320171689706009186889392402544076516744632781642330873629199922437929860070961250468714091633692240768313489595945630694095589278357464164161185396962732358448218800921150615515974567305374363147686081374728758391131222997642555634621519687839031824191302503679320601021582108417527909040755044431607105086951314493551449748791541958449727902204760191864568269532095353740122664216912193630081520717204477543337869633457532890007216790058857713497964568135923616688279539222868927158206940573487577504925815845232058919051346216320615212540405408484477367058436267772442944676037478249558951774140730698445137491230132391922832197895337269547466330195447866190069011510479686297119685463431198122546609489753376058828439120569161598200780865256869734416463271399087749342808350299730400487551050373196853868936591833369339086429542031156776155007418588882425846123659981065130036044508672316930875681915725732275930770934397732640522043200565316811043165688322382432207923103667056659244593780220894060152469048427547541031289395067021939627039008094784826393328569616531918868485065941830317203217628373261702978358604158609261416323595898874692659499973494810381308831404952469808078028856594002478670974502846447905161230076225078896403123171986120105561234884302898483876961020587031072071541630829119056197702723110035263980887574616085397663328034897195319989203743539301327172484491886648181626927287015282835290534884145460846713278347855413996479045374083157790771687238762278570541368442028597236280635092492249290348550811549037091148343564390353605811133413049178189307839443388209001093756252993082065970011847361554888418003366966236073805384481025636823785017991378057511830042050845047769586261003462050016908525806440014471738004104829316232964469836212392771275981939103313710368617476753695667432207604050174029726568405689488144854515116945375550571397540110571958612871026263593552479916928607988524630712731818524049601126696855543858679582651725187051933562447102187947049278482082558028178028864577407683822759861720632230945649135722547316843989915783302164023760767087262471819998462516075103100483845253075356379164960589759163090854912571631285932979550650550520990910339838034831952089285831561153573879658221323433379746263056581092279614498925391704042775584199700796886927402391644837847487440726951987285249428045819872614398065576159541270201071786655941951019967982784434575296065897403273113795115286969282875181679115311046881831028376792525083489507892988743756055285546068734215062571269966640586524568815413268427346745387343684693916396735327694878872930788721966191306554615597940746227832581822380877733214995982885109978228694059980504034332855768036744569049987285301375526540656117134538717687178536114516546465880446506091997470960804603526594978831734442053715584815488217191910193396887464574706857699095603991601694103857871179100014669229820247729211763241306354614255192965820283616662500330429569788436367096718031618188399864234626564943412177734284943625091809835712868483774195217433319570485363607600082253563334938102567094438907037137334400247067313067489194836342459688277675876535005119699489390210183837741754034447463356922780316766945008742412324299394574004830800352082364333957819563544545253988082143491973662991117769386634574609598394390077348310754688397828477176862346401553508499915113130924955870419651734066130530997312154798820169263128828133396064882466321555932510833360384097648594151709980268486854627323741978335229812145042168936796058436960603045861264737509567703462430891860555319664026690291467872248323460404721047691154828650208921115320259869934479294628941974382842663954355836548242978162167022971377929786703202560088312559802374801250812483673534432125858742140848363417549302497874636447167655783909245993870433547273274997947767497569500820669348813465220897902116348507535209788092725461250085336890505149043047904374941625401154234858627221976281511270182820610856911114396047530015046255068270180199619809836361546777202561063846817467835836937007687851946325349433844393994808291503171580338340487233407763509839554361756544026188658553251755138700063558809410217151338513769805060678830650353728264451961852413336253864835296629498817611172529861931347269789886796969025262358681611548076953423828683407402779331037428935429247915384296350393996164184478038661525288654003322487012945106947652990734671996279466650944244938136004550488542745130395540519222152930035734689198099655443874332292370115848920944655690547991272852581197957787908639085193763138978066378702814693912293944401583678937777802692015730617567366756541918385403633900856655344040803139461003225810415575732482581787661733749053114163828527302089691452945770757196561838186194181998195774594440630295774764399085599930306844509452089987909902358386411925457505633653002474083447496684490533786981132252433263869512629432258945769821365450144570006317792824654582759108440696289434720120923024364031042116225737570541955822444534158830692015062528672586061781538523230187367531433955509392419556284914751415943515455513725723557491587750591019803977105228726718416959247943961579777180442556303510819521093649660708955993498861913883023623013614960315379469310904763557127896773700942946370664910397077694411867067654167242259584153253933018149112173070768820738409223295670185432375240176685885353260541731654075165217811708219647161397288741486850686113892923399880944440764438695805339747397337267185860025191531255317368905526340227873378033439706308450847675835538257019258945545249021436515101366856570367776275518329702447227887429237437116951823154243230468679564223488105452046942232778873781870610649064119715121809028680920834978282057579941699757082557681338984009697200066838332257377045552370668187630146145475960594224179338423632072815494581672290682386355345964770127173193072446688830971645046225086886485205353466748031835791439208834303893707273626378348461864703575284335296741127206178376491489369227481855936856563255366914725005194792223803022648032992586637245898181676474941146297095193281609724602750068149182282964881345246088091107533759995940270889163410483388593941221565417252950665016774257746329018873936236182236416980503674908376444124014175491026862106401950558400283590850844979178130899287405643996975494574450367696215634175507289295012586154279688084646941203838469787996044897250548966802073434998746062437865913827868846237628602353507354904939011844691368187810304862453525139507589035394702764097227931873371138484747047273174609800320886813983546362620979404488286957185892205122894138201595595364547934014584505553032269175734346954746928013778893385380476547547114715015402718025736918989989265417390872565435516778596558025970120667675115430001847144749569053771699977417857499980505102431981178137031085387437630193735116605919362476483490191758150847800015043711513356208937595174420962814079104055713086049720206429451829567077077100621107004960740089088618426501286047795570735947254478254902531402818108599526091182868917323788528761394911308922922799423500071550519173702913615612336355353154884639685365068580444413091384094661428884182907862656395626996375971093837408517838262229484535560966604502459202908667100560810039276313176613789994046362655136880003891547410451296969806165634851969853972400715079957693043951189638128654187976877769993895409743843240967038670072335530338076541430833845166809144521273322817919754878924390622812439440640991999688661068756796783089241568930050163806699623799478896595750553600875057767496973215926445359321031591139125319537362739372035931400834980844401196656688883086904017083351341774012157889595977666448478550968103475793483350110144597202135097593834066880107922940626369175928840021438836718039699013816128977764929180376506938215594952755678691268303708678063346029387248510829508580474950032019420693466750119583861252929229896487409882046654788515783765922858099352614755528412147323507772283800433631423473675474869925960710494636720626609300968384641413513485953594746185583389098097197836708522175352863903330160003591853890729818572898098118420779934770741418016766552436471665257441990364856646039672068310205257937260381757536044975290779295870784278639840559763007949088716840807009122232460165842795434471971183574823560084209261831819704848235273850838131861481018772454770158345579191998249721569710926207930903839564105809606494795291271580932443985782539566083368384030650866580713762889117969782627552590758788999687490132443515496592482415023299744245486772164338687437507930151438778679251271485380434697119072375809598690475649426082901408569537575330333149496816989625175623424640487182713838488933365746937952949148037014073619114462160793617868231375952091663568172423315101819782452997049656077102474896289777306850895858222392567538059187374800089988531876942915119913118192832113110105442813442102517382495736343641650602796424022371291044252898913524816490773307273081932535112609579213625089883593635150978146685278675313670230144865804064470942714862602548752443671720964353485313579341512656570348860525348579382871311747310982873304491338583644266522862955728156612951780931497717603348609906695082021896960297600043973453415892555845006136879768687281709380104759408967731971860510468040102117293308751406165971476272123732136619378728833946220272478467650925851809016579241464480309444927468897474777844426480309047064813595411574559853317823651961653870250806903506866147546385961121814366317002202024905287698518329769574969103908806939895483343602637152701143375873514650169877530386171548543131782086255709121141000939152635041015930823929326296665358872587018987933996983515543281112137893507539005447738925450446229137769195259088637824394071591258899324616101708854776582901504488109536586906157896428123718878487257482645075173904148226904779738771152743688106512126128731032731562293228871917625097006707917235492603223851711837827476360950562211038693961736761579934541742947731769138444488333512760943061414437057955700241542634160241924814347172690229627428460563729278167611491805732186024571683267562093935794234252184038265263201444567143423436531012152508064755602135838731513435260192034329554220162213347354331393789320171029770682918291620333036898527782025952895672228833022212194066401718734840804578136142190704797524777862106131448266258697213183059630295719492948733789884021111485262351208336219215389611807287974599883692925629254258255966492412712862958871941451658795836017726418026815759971818453014744741373016440212813938513621663086789086873580131661262518364397624828923671901964827610482280110613249347338420160188582531733637674993145977021475389659007426881267090787131837283019065379743952048977846526668560792303106803096882240066309067844585282331048341914368806775217531891556575697156018130910432783462766399562839635869461091718296868189861101849517556342241898835972625481864921478497390535275981899750737275061298958327607609733014443450910354789467511076742907509607015824648051011041338306851781328580985459212428346238113460680625629112834380801792927662144892881196892665019204334020092973800888281227999475315991729455818284263919402112595926744004571965056481871773563503343166423087451391774053746863223627658012418255914756767935587782911573606238254716771980376929708633840330342425610546681175452223431964889387658006392222356218562331281787252032842821134412541104587626861018353037090246643501618950527696351066873448613496337066469989098944916454379338622821921237252586207511077532442647274388205516727429824490346060179261704297259298630645954061126648148437898133671184929213171107315611034389284123521311411051133043139749112634764653162258961263837995503378825465973148301652320583285129122675917337820499291634214732623432851774702373732253986883809579114262898749434363463240106589115641226141475942902100669904542584386857522556242693698578724048072305145286332433206284606532368753728019518537505284613137977555185764767933890611671467527670201263281928650971590418314274004146032476591527573881356910536203447393981285086289935934006640251667352866217016630382833749782815876979220714498750224898880669011832210813655545553012538472933853195512066285755274478157042277182634165125214840413823123252735099832597410716018168126255223261197635561398206870961264319250379715419255884024859134276449514459751008154303871903521060121624586301285553281646150434272911814841672001449476414101560430995812788576586874409762127479335573819687040534944034795224568894988976251454237755336327592734830160849386421465943315001968967765982579882043008836770851156257269321963677146288265870987559484509991936958795159710877909077853333630619366869318018040120925897639673679184872950386049510551072023907950072476491523039075636002862846885848923598083462522983717027756666523197870413899875474880152434429923803716633391082569225915968761428263505738553292216718872915416728922339260779198527150630667308990292177548899994298666685415801873929016638021664131909614205573871398065633594358451593120678613939116174903429737419336923253076258245458579932973730141432552374024234374586122241725456019270707683482186209791373272304398686065057229488557673088108499883196387733823756301526353609101021796943780438491594612038197975730082538761638051910201017725162175918910663198757099422330954443499846979653845572333233275914370242683748569436447101527049021764926135283818901989129902281946149315989965731232253676029007179578037268760555975572882501166033267981124362454981746152004781385450572410544358481767690604903628517889517584103189972456836625107346288439629720018756849066332183780768059104734897709645921697427773612615623586200618306340519349836164197497586223902263573451517048473730463539414127955525980248100794561204348535068175522164954230643697058862980990936795850322892517313159812962924894545925207930927760397742941083744174481482780582500530171459990706400562386406916406442387103360467574300812195553081352599103479242800088538432654485992801312804808056643726730142182092343470807278247085272290600185659596466234383870613818376323854561345241875992152812208990679839317570859064377802434675554815874845111783923125958302043084395264746806997534329849784335907216866925139784337142600927020295969354981643761688438563759241526821275482451274642574613712940557806496373585468361089680475899629077440957542549538673218120532809668143787136365316640578615239039034054882075132940717544327348947982144934547073368334989560554831402572114401289386899721560884036657797179455663664965817916156747335706166518079372749510679601519040483617273190218867996166462469003219612213915391980307111368380872706782193815982965849101070966562154271407477682798589219532546710174154780197355888981884079615966660017291080793984343142087025286321222663905446280532803087310751568042742320111101873597173328547665023922928470494584919892615135331822606968267768085803201506634825362610957877629051248924198124272224749122556673858883860783521422188338091900412829521513530008249549784651485356613184301108015660747261497710586673245302150972656845958484001176022321764313776600366658965343659678908647843072803500913034995058653162421191113432632851564102268460563030221891527220338124156558331453729208887045540825607912367616113675304946621166619713413064691672436258366157598698295050047549660047719096260752188744593770385234407219588404112396882363897630356877000942778037737406577369849439683001105181344160200385950988808865271825489986609534650341916523759601600498905027567570303155969060421558081200069279877017715266095108252324081043423274541419023553093399903460183229666900792376839556672051962122116518216969999833802054587192402819194615589841691400435494688448342462336996017050852339778688862627115647035270384813172765810740225219750859172563981739837211415060035705233278019983300022381144486701446475871740727081634610981087758793813104197813395070682160494291701690106388725974606736603754500706604974156394342825778202111686284269157809901928487030855487924150469332380684837681369236757528156083861788195326208504557268362515388511777793823970786288249947874966722908805639181084387066315789888360990050198314657346924090254465545521381860513563822758450423998661876027706114473639657120388401536132445607799833630428197264868584814935602353863125152812192086097285020842469008436719766052405099054718195260642839309296062893031469408466716983491914526120675622736526820714144164804656432769461198902797270466081678512176940679888208148279452379187252506701373481673399665318668964303489683537444621372038279842390723357210385445463312003927691240308372955660037080588220702993240009811427946728199572952303423063719981745156884142149391524445361361225293020289696528289497863918971944653272587134747744569551365619506363823671532509779717429783912268485594801083778201592124904503711546313860286481908295143082261383976816247250414243241345875406173998270483492493041574155706992350440880239490027476390484277569522189039566936010349016415929368713365044027595253155188286461623454560972697191506681896591025625179284025048240603795687915367930024103517264666891863823446730608395547195217175836492696180483918476794113190503083778026898583765941291959940578616098123212448519980590919933667781058338222767618312429792043740568617492723174047725658217817941664555099430225122237933035364745255845986303455764630951044480038029870006401458398068474248517861938753301445993235380169004703133397666939235569973123649094859187490981519978364231967047419218350784497143771666524049566314360124861539584979859375780358405537121100243347178022325395542910359554864518922268244410784171939182057111572027774248015914330174800625940402289301490793196345362561035409029618512109321279703728306443196538356326592698006730727073233136790745235608729515971992497453196828907324031213350321756619988144166736663581149992971010847994185850635040725971550529342768823570132754571664876450141792154742578910846880640616675790598005961061752599358721305988678958829872516683885821614269508768197733053886007972051392005759875800989839506005642716959786512573636431660618493559059554472289479073758721133099851487163047860009158912796333158042007621479168645667813371025499624573735483037253476142267112961188491283622542241163064152785174154896494462287126893914875564369497386066570004979768256255145647026222868222136826026534321704634113993577172601516316073584838937472948377875199163515250066519044428307463652781534051845578666869117597249524350001166237165347289213708287895332940279051894516816890170963988811644777672078026471422918399890395890121379173026130699084691683577663955138462398561731472799505609067006123270976446333911661351113309403565791210218623795008713003095746806721722123023786636107455178918309742110701313169546597097093301690590819507035751576048055153553798665909034619298620277863641399284792835043403570257023347169470840884211176131894955290144570193269791155042474926181464629074590760374045496516377849029320611575728889337086466720864727400081529342676915142419458085172612957214308084694431347490285142696401585589100018915945067292544981456036101776199640220369348621370044509515117120278256000384913321456141652762067644024825163884728882278064241297264591932624084772769943136919708435977091656699325431750637856275846576114837741366317942494336634959539234444940260287532690378229374932128439067924240165238407678126683169026828983646166386220574916056832912297373450653184963921758430187508191322716330989906216758128995181714589733614861266098182549028442806190519832141055126112580352755606818496019130986878254506503137279360054812316003782192600524509306405946080404885926904704494901332249643865006977084096953038057324202672283886399532812143544112969422699650814991987730012391486773832498452718308837758124274004744182121931883354162880809979478277031729349138017368169130995638090723772454064824109810345431271517941214821426205490412798487243125112616137357360082792649002648657985452943237656104364049607977771022166985778196050154398468065918064409699137000472681886561381464925492127975123203801392006421133599668392798732162962900937295180904689672752676481623071211790790738095488717339035119300345520354214937796849841217633289764619576390806506404833368365578282928371814072046270564590472815439522800678624712571614470887582428861362616718618095951619048794464167008226108727904062608876393251648732803510805803411580139612992220923202111049854757816512050213611771299217888426225944899632868045092588108570322609186359340458515651377912088397653150354072618121098457987330520034734307448246376924224574479596676848617746616567710871911834156729813792566179128162662252068319891822506149577726185097502993659426882904810687050027212959824631081656974100456225979830781355670329081841175094390228921982557280792391775235899379806701597006298783748030475789580832138545480545481937462033103663581219884498698222368221208707911800945752495790488581339732953739605786173625018383057312760688413725450722013165274914286133545576057957534745468592957721042686250245642043627422332501254755409707625722791430970398041246961414121125515657392590108451272433915716605335870750831106968789876451985961470685720355084827974768595444636348949953883827315679603866551165620062478856999543234695332139487133655998210289701922386165079275229699631212568074739861775257722667774981757695707084627399354678501850432436236623059926344166686758426214469876548698420916608774341612362542295611576507392379377728954058643332341163309083030159630993116812519611385574568027599237541689706962533313098291854941191077293927933778067627223460483370811042578617295506344756062520940073941744595314146217425374993087587574666894512322354561649667923360367322137311689868797052913385090223677667924683485706046828537752210532493756094999114279377084691389021088204393434035912780382218746526586212224992003094375460193935162147778774173116257207299480124861839870948829869413792706261238509947493457381265885164503533662444282680168145232248647554928168135406164393038545455543093786384915839284925525193474452079867056016023537296388837783797433344329444863477440812172332579671155713760633476906753518999559807567840537797693260681736962982246969972032059045136006849719369906662974898443944647387075718202037004641094963259333416588276792774254176283022103248585112342279420713634985764286235337425028988172218094072527558279798342666193676033657113669454525898135497679564950910173093338155261275442760964332382165530991281453183029718101280199418029472494942607882026977527064966639642065756480407699075259221082025990856121776621610989443389592279342821185919309732225367478238424473043766803480192850064176496597622278257800302421959910486061082826357899169496032332781904812199311591350433016529372636033999098941154727913246006780516204102990184314774741444870760124340451508626830885219096688963002409330608847607242490774074814856497700156630396383217589766839648033337664034340750258738587167093784211262154346688134604422384939487411063800644124607424502959102062712208448566004018637635871658680342107558010848780928147036883706275887835978876011717439661260473731767005511549480877869467430064986315001840514740702493337569893135465599149883464330402151111088941782837829789631706831456896437859561789888135500694352794614973047108915170979878565864226618633487328871014433860587827111989767699392368351283925512692412230024460956317852388372856165152350149709942244495592196782699438421491438739537930183064778797179331852581577788942851608384430809455019549696597180089538705388025752380547218582718431423290318958807097975318226350548306838221420895656340382688522551567185461260375099608584082575410901057003629477754793593208790721400820167256187696607587415968528319038945251061287497264156753288839213338165417880091857476542649720228120038728487445594397016415333536000284454037093407123821498045229202482550304642079903951948161421615094590268060950949489121724679091504845540700835045006426390629592075339828509014017102596290757039557460133372700808869557985933526633065676937507840728673323658266642993514882955124489141509322373665750307459355518841563578173056241332762308334900560843169473599147001916006948689090227441241329472115102920930073425688272847014830055168210619676055267126330139012309446076856850005707539029033047480302163530377322494902770198000680576168874628273675660177738508197133709777828074908582095043205015055550850369935504384571132304609763489671891778663210089320907693733331832472182596305780749323657345076641190507108941402197093674445846074523096752553637616565731328604497839123825100172117943595681931162538622352080819173287863001606366782346338665687095763221592196276045566450586644036818061811004337690303522628667241592903666054514149790846363749846502716288896096985492386675828655660016635872287290776693029923710525133552690442475502101236532055195949296790737777827220400409665591361051581299800958001426832352168746151337891675213489174691980375305746828905591285618833715135057816703024313987941464339710333442567965079963442369464371317834002805358396673256415859185678046383128207188014314987111313916028271587415979939199102888261078835043234386930606164788673705959815637221126039456940845190935752675605581669783417983476340853832358570161455567512339576268302800186307565977872958638667010837880969097319877547120637219474004383400584664264464750974273945080439895273257165942171532327402304759193809367653729588825658104244152218611167898692598835931824075790177445633622942675523951247445102934381407456389819797927829781523142257899270350355143927099878054216748787655986239388271862483656217967881646523941419927795796934273446880078181072472953370189570050690689470616928058393209197468235873707370067020332552075566896068432067098079373900511522652218077935774645132364799717610705452035119304973578290541523096716346374165787387774857892659220562407962732351561895935446844120585062712886141106532369558420544282046631744615070956442500038498174641859863536453419794212619025550982805719889115840106517103878377841319825910107003092797377385000638068288219449616348123066827226587616897778640664938541007960597612836162811439726417624977722283037276444380944066943902126926830671737412875285786218616506210648060291028195032787237055720141707352983217880767341588951432541242906792811624584455497498623424077489618766087737521251399918131351756526651165116965411560778482268191794161239976282357624493962095041396150635951101237717840070473285704821841067674358745679629497561748694161934437162840581969512059221991861706491535023219438468971518801778502047418809019019413655516464362663767715582703855887225787415553484443559014937672509297958999126106237419275597026667665828429363487388422835208645829648106598382808976495403502593467631412298059950451041446565218125432961019221064412240144807080876684310371253070887634315466343087084801452185884367656458628506029804583263474287331663353002976575014614212678284923956646875408000104730377141097583183970169554049136970985082524744246542565749097597107445688884264304966147184300178283435075792644109417326011806637372065549042331741533780309231942011460965551185444715841793103428272950686493059719169354007599312613495343472116010134172817777903340198622100563651735379804711645425539441717490806680755647943647233847032360470073689445223275584676467778828173762404783311290444193107506540238818717868750483762452738987489158950028716291529796118940089977798195680405583430774016460504093538507072674261641404896853022456876389559576007566177737111160196072318768104987520715761176572864472308579467540477284657757845034723888298035676550619301452722045777255717903035085178181365334280939007538209565166849047140258911981367074438341018577678119607140553806634046532978476792166574421287936438870169292179889431294688248531775963014788996261023365235989916122267875706373969625476203143185495967200079877311963933068570431762293923268053190201100244622589505942695563848018549424810680586276375317752580907367802727122475378688346952799331713155938812706395814497042239684370353699760728722421599554944642890308565792325094122910307222021546123090453205024823298358403746475579260324852733322912900677420841866208766613703548951960944660861818060545619612893243881164894285545709915068673835768002348356866404597594042853353372654331285913156364069203648945985778500975535389159537470404219275230741280086473132833727584444958444472659015789334903421942010865240134677863801516846960248985585159006674338976636312089429522656177924966428956632767397908016249054814040302069379517010739495407252241241296828925391650540392117865796755342446615610156304861422717173101134255040676645187448570495305774565574507802860325494284834353056465827376393321919764289375204847470824916892602090292436980441236235580451317183015324151292733531844611588642733164379922234338036204918937606640684871811939629469431291922874977958499601827166946673260793565694670569118941622402980938917040418913996291618276799465426196820918484506477386472396177349915284359997875298529985132437876757806877537792554041733450570328923643988171918490388432311006976645039442858299149681559078437212261017713895331031316184869682729792898245833865792005814788098276070721198766665645990711768230860258829968037358811078520375584232009812510076531101887824310393801231184866125791659249948592236404855318623709519818934586611438767385481765869757690815455883305672028554819608596186559415645401329313669532050775435294574069664670344451268073327924849816008944232217065663675736348845565862605474601406983841218808603692550267087062050539955801232393616339117039955440583039720714592563978330733403822523341013544621477663008278015168142086109195813101427355016978534796108934720637525613029053959097397354077505730609632798709552677418229643680561604244793588707948679797642325388961271444697911197399334596554676823084074812624451103847691518427537667301288588636831775884714029265249745086242816482070129178740183933333754725614760617552851469013254634710153827861141745743027138699538242372399322209263013417844894122781759705767992451539233356902860629246578544219485010444235814278504871638211027352955231719770068705755911205218329763048705024536436047531586787057013933537180880393167075017133466761365612370789078484702566057457708885447093820694850692252586908367084139059855042672267480737742649408991143330615753400288893453658683050488283546621913333974776763477440376713272193309927915193962757395701717041155590198565369453043531545083843825841794838362650224302053468342597001894538124798583396203874070982143785318929557022814739764074934875532802245332305921463111120206187889002220662603067412988689936004393641585761793638514453166740358339697544723456026250794551791816628048534919161280181425143392768157516680179563319235088178807321826779107551709145718632169362176988941245982293331665037937831799567199724005209949382268471598664905966394831944708667454329382941807229339178908189222752874241561376594982050968753512806695669002579370385951628198475360609792044706428412919578166995731594557627378531372340960740891728092499380520436351282306101915384405835633293679651420082054081262447478925255047497270274108387119316241475942308648703078788308167021156699992364967016076293374939834755546875894502791261185818208265814882336377702195780250679406994262043257826370515443009066263873831411554346437839809858804013360959088724646396480321596168558892203112466429621701182996408140889874373213929573869768474328876422214767309332935985478006590860424346405941405375824158873723755892037131666667465582294338770117912963275434165377779074092510251796399648074308533427021543126008940683545845001650961994986462315808684574321081248645498640597112301354148430160373382313201145848974566124812783589837335834939656709986467509537483028973181643833941139385350410157522766771082073850717464448355997916721650092848208523091583632735377671230614897994205655772980692013447985823831019524192683665881452804721233546733935754341911890142730173605523178861485674555576742130085754763494006187839373603919540596370546427138761359097756824691219497502344433282099117382068211912495632897056326678092100323915485843926117647875259013438169801574302393892306605789230239785862133952838001356330386069665156745841481242026760027236906839444847631904658520133324960172781752890186335345624286326921238269775846330480896057860189138119895211370155649095420075843585003587635086088786293156616902990025414119230069305872865705831208073280517384687442761610660593051692667269558317523759533351962497494825010933466770761195226451862128895912268895295172962415078658023474482798964441738689775472486846037935769404065706729491670875665017140357210255463265691833069243310952329299161979048231986501975826912716679857653967082090116217563989966493193105525721240684975559913827453792531973738630307751500010657346797151938519463546762666316490500974554555322544069923061688695660530205803072964990820689180597222126956461812408860871148774368748096982321827848916042098439868050313784937140050413651776775857860218930082495269013826590568083863133223266575388810482036788145562461006012041248641472458872449643948626328484197538819973341685373009486687754079698805609049963076893471832354961536722243033094286374617456775262656559717895720190780218006214858262094555144601200627891028640621721022132788228407994648531666616733463125236369805827729666525881190247840249213469490544303258699694859978182802223730371596002967602775155824210448241669723898501247617217368247383161444152164961870838697312893104847023766397778651180433061676656097328261577617288256107116153916715376198531250900667710036081104794110411710449653045261909478008875874946281471527332789967359228677841642754110124560647075978830928678246719086287597996960701285934708484799092766793413962625663208180801484990622449988096920515484088802368553935356955001516752678781979148452992826069142444487866911585989273399308340780561239182232164955181739460291952072671453333552329313377880126668032493665922367553283046400921499260311360617360100257765790866444222583658395496102005543615710051874085404720397352259894739885613191696989526379808555424920012046661142871459670962918054684342409381777017888483510373050724017102541796117427150135897273241323806907454204165693816751138173629478458184666889526034377438514372900697667106712498790365988702105958970615510858110920598394544729775040276018965365000800282119156518132682323124681131519743875114508474375400070621556966149531970503518255096608803302179822780470482759895848170556440932766816747125756569251374386843606267178970697248151802963721245408195314687499705647467299965782052929725418638351816539192350231221382940394982999763013714591428961504600017614494213627339807251504356328948684214502995048117366884930828169692242053850326770929558273623171056004176238018523542693301724137971616334526332469896840034297675450997893143389545889947149999823588930007469292937913817683300712262196191311277396816223142414959065882122577080285744919602689449179593368152459782995066585224599407216508202031681947107354298827546413054250327745449776213214659403886144066080958391331154920274076578787593856432991209054977756210411806904040767994513095022259122532476303876960677240972990301721435990164245367683009009609417787714944156787279973030591855775534563037507288881756598743489894396536724498274949438511529636713934459161755034535300502188317658250533839127502922574982133283306146823229018501217606567809056026296500888554798591873514933710606477506023488366087264061215909236691697142123743822815931583029523700718762447630407940758364775212372180161770866460337091094117964150956243888043278290934402446366074648557395087541520898947090216362387769050965818872317294218349633037009346453902681431828600228231337629340105728564150718141171827883013582356653609365744061272961827227100643392188100034282894106634816752963626313680020766757739650434394300165133578377474274992669581649261220235064612447640125123390605241214357064376539025545657946703784038318137065194014258215416420257879705337147654357849143597558385231788744283920245501638468605240281983312865711403612969610571103772122344679917945557491150879860906520570931772271359434451774128930579672968513569965735550195979399706862750664001244973765366563001600818892629566143639211402772035299454028171357975498450725450554057806470415374561170576706063179998315771272812241269570968560817161492495802440872319016712953710660569777788200251357823622860946017961293146007238551619432974050172172227217837981118819289611378156125728261334605537003687347554578038795638817128761856157065308020130409774302111542514272452401354299813223021572979484998574588281080186358843998994374081552926536252218513114252924749413055964199709950166307403621229581102212572710780074866095534020843285866017755309178332413187798291497254377983747811338395158201156575799835484165894387721547081166315206025064787605617356304406100239828254624016209620766744840766486544910142452711248105327652890604682959179724831659000430782484591884398172466095531911836831473131113017726878166096388362720345966725857796826161954148142704833570314056770719440775353096574660314765755067950689075470692949879052909509906847320704171362778355467933843596451070754514952709527280989129779179529392652398520374171212995555660592747913426022095201973459147213908742579737240607273918826633787464391864284878165907474899874432283981563267794774751871316472222327967428303605617586077713284250832023915543915738294164319794776342320115275080407878847002422694279736963747326647980379377633878187074765992365721197933491959829521442256763883259177173888365705694621731467540624622510564081120619271559754977552590337060327348893190634109573788591230305375015564424403223325153028379186856197810831124165058035229075228469710971604299875306567436789076297176916074221834438806034974271040361288612553648653985154586343280371443344745331563937874706978065391142238076554922032338610943044551018276965218831283065397310108630299037073672142008941343634257600403124895188524667353944771974499886417213162960638709100640461975924144758596280512618336863667055972950612575774268011989172440642697078809083330569033375666111319096733980561668490413496927382674003807605167774215350017425887790513861396973519451795054477027301100254342104841710819219940844866466354005994990248541437470260982235580811202788599857801165159495305340039987622466503990792603765858311736291684907208704929055791567524020233286042575726508074818773223388086179587811142073446629330763872949425807282654325571263711039364490602447250540311428002600225103470731417794275279304238241686900777597238983386021004000121591795953539613758189147133730513550316537038285327516423248304909618558965049658694961790802072472597197059759428233957403745129085928211143282144947711195960693268062222587397705501149672607341631041575277355799671222457507188724352220820303195849994251262740345494564843752437240345341171330773678037475217288045772956948571662396460221008518971029692746496087343846802597237598934432296209565403824825462567665429242518660974084743704269400691555745615990558044498257945441017572897522162845837876591593413225508016222147453370395653604310234954758074601085877574888664859901050647704956237498371784628403569092347232449302718023316887940767469918523005223604941470240374474113153291133690664403763877533921830862746035660491993424572872587085958985631263532571552238555727568605745177221857634665776215423555016870934175778387588636437976079397513342254322309120650753000780400386085908745188874897754973269709236793604389062738407581238265027400321103383455904286618036757087819050276101178025042317407601032516038081571192684185590946150457550967355540070356042596694407218140631799524181933290768688126475401115709476694402056222620435411917936826887258926468356525099364713714836105090615536438255988397813916974745592083212271559427374180033965245358161063503650795982429401977492283132962118489000263937821573686767448397230370833222971514952745354360207056844827549818590788994620813246653021107133528621149381933120561138894415212246326232419725500270063899489570880042593940270483126277227285855331988196188281806301478422019246826671475012822374744121172303932607111051251683152782949733771222520025324877965453892399299240364811910976799698614323945158531083026417178438249800379811360917193936045314521987001377511984563346929601760582927170745077604587107863976787645373492548770113721879334712550640030419865233963746360178173296883883693364251698029797425881636360284483340167441422897588277398812796744878397419876783586075213466206445806057320873305966474421630231157082045949396548605289237216983198955008540952095003969520677135505588759456956525682991768263361590000296105038679588376155932147230525918158175704495091588273300447025651054928912418981065051781296046011206438176569392566355534528214898356318504503525840562190071069570308220186099547020207693905577550447448497182708317459951284220168163458784229368654702191302929325048727394260283525689086461689672745966279717836323785766518726732296472034105200324619739337264549777139801787341144753123470603221557270441482667098877335035508774161329615716671228381814643113351419630232502755006323910726981287615084200054026962821943727294807231325523010023503429395730481680279277797329564552341299937310314820969557117382965378394006204837434739446698015569199946244160584694706581967318798586188784648946959811247873765947569687854402153917261142526297083812490448556535352629282729026070607931293550244364345001641268269578241739503655081445608051056153633745090898189180995902011973756286294605038539746942541944317384707786977855216415404473523262329663260986479985997095124664210879083713211015019880248102587381069699399512140548654894967506591265096595653495357681576132511427976685311510061367180518704826697390784984879953223952086097426505939010043645069789181703191911832427380028942545906880925700950326096894877819320850200810234419487409743456487216343749129062157343482955236523867290066153476376698123649634477805314859380685542967155246240811350195778816733025458520133047227157036050413348534209965422448902551754230232045186923552277698476176230891079948717248451518287479511710361352578953666172364248671307317753251209356896027200427740460882695135860994834611000818133812530105899101883837949277468187835734375405620648380402883098196329404448396054552345277334020927070326210713826280040251824546397363742104323729806420334003181508746257372952617660339504991495775313285773845975705821003657451843032682217203390730720217393655725785948615047713245689715092014888354705484440688589148241534341402847121133132062323446637822353102950472410511109576067554119683793288666357360266048656907722270257885475255550419305183364578280521381588440229334358687445684761550930596458752411434174435529582476578222007996550562328269973868736046905343010746825685436227332865331876571948692114652051399198511612284705463830474742371996462137767019491628974217066781214534872325673031180743107246104876863814578545494083326634804783682575084568710190468451991156369306931929903305543367792909755885105287931589372730525890064830898815662184968200161833309562378033654716649080671490184606860626678316014345632873614284538655290399722664805446354590111570868276159213437028224189988301217611738840806927103968609485304767036166819325069240109199743880739063197182275121657472403435257317254818003569360548572554481219172024215411947281492102544754988029416963901194604178302243744635315120198525777584605322211705775712558398184712464118933717672073301727830971285450217451471514820965177184852960609167933725921293343993118080639992165209015645632013294724167022365233663110293583628923124761588790857116730744456512290498053429566051829798158295221768634160525076067594215122638353292852907873093823184791707683557807576851881769150276908776944905551022420764216843534640006059830551220796646311492469787389092837947248038658696000396398605040457946830266723790217234204333874309574242512471715996162552992025087849700104660468866017663286466141713276827742980931163202655579724547278257020281347607677556523375650934838879078203661975264401187622077513614887271125454636322201626719227354653441817675024874940375744928569015052799296656560763238517846393681848844180193020703657700949786037770797470088307074255311280400577677788913200346343796607219541394121257065289434350588901988984476649251991926147374182228035839467696162682914713327106189211200117696034467076987718189440597656642236160323088626080317404191706219197504755457726155915078943360041580154215908258088559456369734941844891982822868512999850921471003336305926077657168480893460062511695651010331916368564835427284790937531999922542748002111818247980332807406595404289837798137912487468899951946961104990186020810072388135880882367051688586433976745823643518710345232961636533564883678902252660816580045054652315942391920387227226472530726515668467525951746843025220219112967102105877721768126933948507721308953443000333763906909545192892938874186994074600421768875890718315137730103633454268320959741247351239405480209258237628792997188061107337654304843571791859249517279844645868738106739787150548081903768771295969463160884751212388709253281968213428734461403202527991867369026772871842496458532816667515117129851128600342104623066745565454503064557820445229071861139781666936145433964987922754403878558688998957873202989794872545488316859138116246205370165486650298361886106581041454157708403277148041425272676454879589471760003716624182648547234067213855639930758319744741285327973337155950383435822744975534265529979828030002773655210198454821912132784523813020385766778144476698526754343765934231393047570773495085663915124124417382387688665067900305824510020738344306847612073441195376294873363902368246961207087506010030572691273297099600881335057507612479961790999439761208673894997378825481475715378993915765694803036702030897569901534345970827326446737764128911017748262955360637844385395085434247985826465484288693740365510558577476955072576773542059948356525527550965727302159909737420498959055260050530823582480952584242255249291586745149756467937529785605694118158995042709671512633951711505091776864950525154278300596800990894499195600201301336101081037898363492548244586148574392067367499358134144005384829377037056355680676890576127050172700857025343750030227688870603371887969034300290224536947788025442628665479611432930759176071485439514194707239557272616039561016067220376144574197789568806148941719812175578446541179292965096818049933527579210525381836657665468800744540901317824992280166326991490275912147781792010092408810080876178103965191261793447521218333051492890221422903862314634877739889047931477864174973370792878200473912187705995676904218325198616919870547527733372819781286373806214172524432599036445330049281591397738150305061253350190738438315681365427469949552019158821296626190429212241175142593956609144318283754941230998662766558934096169890272444311034661596920858809911530770221797717944735171404399751271301046974054755794189827921826860918988582557842463993806145776412238993750407076004175557885445567566568197879802896739511811954956475593787804964559696811635222410006461068741521187378179948895584461881186986886865142017668963619304759367626644774516320474887476651985318471502661999734687497331329949372877688624966986410388866995322129973997264181921083655624046355050989672336262835776715649014806265103456907225404095628424923432760453004005023506630335556796669498310750283078292988989046788811341746288476287079003876409555033865385003441736499431329584818518132190449578157227762968775921372685965141213059558310724420000384419088781481259948229144018518930229165230233207636744901326621084898432864052494803437866772729438971310979966093107922489623282798356486324183182038193895435689822490622229498182323571317068785540782396731743634420672521889671682441934634556924948361020984750747090828491036580785755953706339204710227322327527393175455442441322347249266985028821661173564102664432357430832429198263580698035899645530339273517977377751481155368930296146409637940169371939643264037532167140426021358667256960061222208856765469077467504789577861910253831471453381765285685909308697467504805144245977810283236930871033843477140834660679615091104721202982760120324548599831885035985811914051640317351264422855813846676936853823853199639534601802233972578914326899310112879220724389341862830567990431299952525600420406801581434554865796801527174351779842627947253719998994140942200944019600489476637476664745916248478981564817383102272781381540083809574602089648659615405600730913821456788975028798458411475402449938926652246831357974972832802237857576537413218178832447285401484032617658943122118507089622398047095047108544241942154433881209213529006916895511148631495363395268032175999231176445772083902682772581850593828755423754078831779346037857320100721048358262785026889020375456367830499933843687731627027839360355288620842996611008243169334879914189115102983244717955125654017233041427900915801965867130684765012091380144294471334475645091305122730308505004809859124615144252405421290621661285044357922949483579184930234508747361365135534601551965088181158047552466462155865916095200482053600819831508214546720428731961354094088357406776564189218382538272181852567092272728271890758968582152853029336092324738208316319311825526566111466528885834625850736387317425210365601971049149067274097260427638901838508911823860595986964882848482796237894578788960706186380669428715189307178419989483686741374257253387881911607787677002931675430130681740953737999432426428788253132900496080034437480751959835899726132197830625898652095630953163561935530890134247243174671271305738658653743811762158696503717244720578945570637302081291606770994135405389569534686395308060242985770701397501707439283670203321251639537020485648028156055477795827878810911850249978685828509000633978480987424453189524118512924018034658306072465661978565658036967874561655285501607558398207305737865758706244258322346199884924942210318499922483674185966632771337463922927919774426200905921272331312050648900448456024741571284510736923017099795345043799086801361561418463815605936116746966540394346149063274835959784066147242681995105342056495407920256119168887835095925252187062078442872883085879033276966213768500716303215803205673086572493710760207222236921461320881463684197237266872304910287692264726828951958658563523269442608364216289140366026127021728400517006716237405639983937089078385166867784572657544680059384094833228743018633421064739196607346116851312167560757342428372680181998251998468790713125553478478134234637402292511829242577231468505273122536092851559422957942406628017656821105872513566903430622168378763276755361823487814559214261763273613241832144611470456945348617115666820553255842899476359145589710247626772146715631241649608677544520495836368976929244480530733589801576699069208678762269520045409416121412422812715999599995875740127385395643682169981865666587117425543084415686684124168648507815209827609446926714313419405490305234100653160473526281161097903260107501344383559382113169696420502875674542686770350642286448232679811074605190642716686812422409135554945397521572548861228463127262623365281527638639704379932058708235383793513987897374431953264082541535172282553328042703739755674815820998944563699202456988197702990960957558672118391601811083454975831919005848970746800084836293227966555434098708903516061905915519577773674915889822421035108726463603195031378839372476964494735733798927662837496033952183687642821168834255378157006202426556495505351085038343887514670444721925150434434485494917756944333269440742134295943684673680879720019997489219946631581161879018546015553377061060257620508652671962770942985432474198407762973742286634032801315471940297176183383504772611577153517306825958979688287199866241770646082713354487978382777695321550625851877051697778713077954228298292479753794539899144274283145888143798143625558892969433202214426137490235515190280420478342070295287299784071280704745045347716773661137350076492808955557966317666380234638556188156596493951970836575198296114154195610883500927080544404764696905125358818987253436418522424993022082463870060366983465374616440365364433070023024981598663225452442235992999103450685879189257123938955862015198227336682060047248923068277225263138705573343026167247934680730757893733216913502627586105754896707211937318523120808399698738352919827840997493568884910347736106715076601169523430900961835175368655569841703936463126627011642360131552544015249413386042896496841756692007994154314985643766194006505100603512203820746238606084942535746986203159627993173116587785788947599558035159748317713960681485320384761489236971786841706085039921045268319401482165736999315175046580385151932449936265216311684685822737259253357522575881574804401315339564174380852252578900542534389759285527750879962621322441324172447717174042107408634699359536905248569835622748231105352708018965327195243732127742316991865469919941932940479674410945140683089805501977210486528585330966116237547234021591470865470072841020933439765485111639227017407994340238533723803339807457713222311672916641005967338110176980309201985627148216860741656102625415016463850066913953144933727946640250285850364236386570240129568281643420248986603698464797411035210678317042130215632910089846359474431480108028550236641935388713599008908187563328701133898776451099061988511723998046100184264613332249263845011424015411378208027096496958805744830480533416373094407772708241791442055747453842375778805267808979036506553892084364316158008721785414149431231779342319421158553873479645942675128453779626486114718137322463089484835067451160043317305724988746593956228217436232337374374930711044545815725585107590578180081820313159517782430037510003748611242543850613784992647329362946786847924372045572457278849321920675361039913341096548529758475078149072496186096908520951756607446386285559265999433218508651311134270369439500168988581289260483005954293844506337981289060726399847013295801665622749610252176749542565295398881547692214366335729780746175053195429838121344958519960306640953776357250292405940901203289612341267623522805290045603555543823778727563064788157902562093535513311433712558329251108004366325280281149380647483549928885502187670964056837789596446253323617127642389622398176435290978661718266788120914077405571200060155796945925557929847379760777414338661399605484511166963009504345912856019049362510872100340674207410891484074510712077892533302910637981242222060892399940794410655117706477371546404419386315332561776270026306295233999055630594622166125389180292197529432941421977521003773075034953842621131365743212562949648870469218913703790073380343513608610038355839840196091598366476004187000574514972196402564403980630527439683111701500950867548727138196242736932428553692707069606162923728240716311769388078590656390002192754203629761285736367599747134906888747099620684215081816376190427267040967760198072797875728203882430322042612195325240910768121845589415409302955110029476134363269837927495133615296200734745345230950000458668395670231796981474448602029833448761326104503509168227228365982294580176838342496708873532829924457155138053371612935545252080027162080064358300357605502494618538628006237430899236539774167692533237979084763625757154813286954337516862309326792431032976627743211901467450759935336518687508439571235712512771228947037278194365915140032953689924530744096465479321039485863390889335636442493312727329408964354665509530758346803819617279218566926897679628323214756172774946682049000305727079328542387697098122897796880606197760142143174837246254458897378622550534520478980632243420428192850711007506044722826060404818765868760311951302225618896139467774710277199899302976400897819138363968321772569701810407956683013123173089528602036461917871914776107465487031841200919024580747591581052804405731395601021321162120719401393742557237774536354480903852871874835269044920030016920486627721115878718259473911899646853471715756028678403581870451553686692758438170888519371924398954504507889799785702539120866072082007386321763196115110935763869317460164442759644825126237506705379902036782170141340337381194137637447264936717856481708653489061998737269512406580740462046547028387752841948835849546889503655145598261294926897778358596054638464877820820118234146006244604216675084694380855268076933236294722587340294052525622953492374256488465039489601373901237086820845231835506779000407800517495427104057212083056724649672398212788990828932962275847420221927785909404859702324118860353488864819876738976334983097533096532798178628567390869736159297451318136635251369551162471339858162378773223065907569945319381751128333047400125455915628339196843028045388947649686004064642273025771803115785057925948903302657880805093935315139891176882252368699863736712107107350852316978299475725868130660707518035001887749940716893654899021514066424203371809023503744774864685200169266939983219371459834512958670060318558464268799255956460191297159073004368509206585833597421667547171524894203273985551854505393112831927616327688007779972178106769404701875241907197681938033343796454219583892469894934941361457890545920567655070646678449867687171902909828185905164464586323315508799696962605121653922914670708597904741993087939024277278984357275312745792015246561545748717177659554179977634652469932544637454366529754165195737778662794911737233984375577941415419876341844037959315853382768121121540755321372290956706381054487540105219105664510803456385330728138590148387078953498891743300125208067513311931795241527135364575993039543897254578334019554702143828263821797480353536182899375877831805280351667875654063859056298144469837175935660201395434351514708080506517176788483872436107477050696374648264921104534865999282200418520028290204139199903959389167136601051878567901971348347499205796464253885734572417393326215104799326215102037083088918651720678612062536146143065588270420836351943533121293315131976960431815005672371596443770308949656540185336933396816740213809046252198834184200974084327981668107432928030480770003453051113433679243920282502558586982923179901484822793884131723890905062280162948986047453253495799517469215571356021617298026419532370824741077939577998473024271329301279764401660799861027028023628815716071146395715578230251784060763588125950067768306604429672318655207285350576461251425417221772354397316698390077289388974017408659291657979327325816307004333619609072573635440428174966294901251806988499297175037482259596368345325469428083498738484057216410809812854304946296581721943399828257380374717685441324409056700490630464464821831662380601514538662086891530985420035641406173590852325904640759541678969485527280536042738597145126477422765076473705753498886259327115973166397940449696620968464890475259334120753637815788304921008027958553387379834535377939045390835916279634349030855033495087092200919929908637580277069031212147095273442393477245430662535428072727737221296240659734864512205027934570895357334755730432490563920561996003815807539429730782441753824105670498212872167921829436015823636192179169649465018141011571611269343666157159295138364787244362956958369366701090038592242443080930832938300760841098313510936148805845942911911574067224013377585010691724206070238933084221063134757383131902844053995222569372562111573008744694014762495487142499478234140834280726169656073050613194254842126925234437612561555532293860479755260500953665868955903830339655399034765461125765632603505670833260882606124742860797990386147658618406631076061429929122773260387785599500901524117132863198241224788678457265563924654822209873473201165215629621583416113417474407801686611480846797051398011285952249292992330121399923721938906967421933354963902527586152129681667855002073821397427153164414065740852977866016589459607032491918615749654880411956478193865636252808899458031284410469346793164336385610293567787652925285041337498614119422837840830929514342302113443471783365405909153327957493911324012691832536465576151870952454411020653387058785463606812637650489822349831418507833844652055278315353762655045412554286511051113099858422464214049162083310736931555665434854654136884905578748799985478797011048636522911033581211021367433320671674634243101060878790551125575621899549031212408331786828417561845717802770516172367184540445964691307626848198515477548016992122230012428859757765891507593101314542652345747903210108662628728348581876099154283705910397344017425109773545365176542798433142304993153607274773456846731393879029149601073296353932604100705463651691760606184546152186081060779590631592821695781378857967209349141451710996748922086027708368103700416165761335049185497170367704245145671345621180011347318343972834831500092892533434963111640200053141490554837812333952586007507165746186743450172462774600386837416856936176742136112818910621902941808484975582476584934727817123072885603796377807381150131952891120082460961110130301245460993364961105833193894999332198847631193555641257433605457499148665609805150567266528150050636429927388160405723362352433576012235542039797672391406964656186478692270775962826371715135354939544622870905454239800125756710826963128854533682599243243716714772134376188288994787221740730677796276588812371163183164665642996237201835168303646498581550368165865035277126927960809974508011169911282855057110320672037806403970550603840668223836939908067778388425258977765516689687306816177853217578686376302136557640909767552936439918129172159532962548894978562272745253105770821742084620748644432320983499178022174794959017995743404176089619061213395973789458055894611617781493425421997076005898310866246571584805895553393295696873563037256805593948690403783919220359740983662314647244938003835424445556201677484624851850491775645423532997542660321547693184116045317801969892173608762694170448884226422076017251786389659242700699079160502456517054080783292432180367627600018836372413612686181263877549518702415026195956161288631829093159055803016673058783497577273740497171531304390244941435450296579039984568906359982764327261115917852406739198005171143948359979755579912632331779050141199043343061207198423728174484140398311091275542509644573465998507642852040285184521475627015207717304120885260659717954491055314473883568218366920176007539747748801162972885231676545627862970215780488506705447456798646481115651468412246357762935194070837685240872457821920655607371718853024524230744135049398741788450579028684322138647664074962432241035981513235546204883504836212275894548309835266387139340227062179105358186657562788496220107910225106025477573122725320516140129777504362333589870876108808221224758416070613406001447230355409314131720812313687246412966599559279088735951292840118576157172963497993919668350105834324661177315605968827829340756277819948060976484454214767111485827824833877078716912353160077678096959795784367372474043352749235653300988250886304738405584314394975745960618926060448165767283618118529238183848486363285330153151949724530315020629281994346638300911716198857345560120467283708601304849927098768696419845459490316147468041125663176555048357622955196501834932610415846132131968496651969931014736435996253787029843200373736156323817406661443652565149859578596840719713917680361876938413354797167808532230977615188472694070213401266660030577856196530310606826173319412790825991431333692054685778392653269653732624761325866958027252624481240771009600942587213562613198793774543355805916469373134473019021955393629001670579938041966185347520636808891796907511691197285021353303922436470149066960081198626907479936311811013032162061807194301184929053037547041809967949921108574660430250194192338236943832253837453775772475268910943282242428034999230548976180554919288276588344081094130002049301789126869976459328459690400266166786051059194702537076338772995111208244920291631061036095080337305524564656277818118253219857530035158821906554026350213971960397203569228823160918044335975930345786076951753728330297184305940572211625502525874486587710784589033265915553390977136259089568072551137937055385323377004978822267886426147028069844976600467188345109711620970293605054736316869149847531163197683906864736125634191757277071090410785591536572356660648473692603260072322830590162568345973869604403394446893241636253408965072595692643066710515962589565894245942866971029134540604528095506456330540534789654723037165009366092028711945645429757084700424703209178488527116743790830310338609567754629127015784027786461606206018453641580522811323432003755024849382182420647546205602107413324990881111245275065911985551328325960952567650596126282654363648108110315140814817646169166059516120494056618878488579280894891538129379130682598460595636334831806929182057639509903857948454793351580685112414170074723406420364607646323952815382887703720352469770877721081666312717361927112383896909131050719192946020045327787500846167277586984419622881914437831273725509720713237531971561025092139691281293395334157581930897836161920074091709565864696826431738171246824454252153735776290629670632979686501616610210440992837242805107877674865740297359426549535496430391773834458021956801287510509058920616848560379808076131562424843242764102717032423170771532514556833284851086824768527784237970570707449700302596353563244873210164072338403863779661965605749818991303249013788831091929464478923126083597787595340963722233935522134134310094613802492674989534280600158949396438974392389317844266643435394779768333977532335624586815341176802529464415813858352261514700198278002380669005823776180116714427974367573930896804510930247059236673934785561411652339244036376775555791011162130142416761550834659691732341495467151189915074122893058856081431875995807063358234755272910322468733469620204023204071793643452905732644964702064303388612059215172636799308243469722518043467751616749501696019959047069431008563958946577656631018766806654787185227138887408746733967345646655244737235766214320069468521365066220022384300742734832876193847810817453126634231937354877633679807652364424132840957751631624021799537468585510685053689177658652948944188577196554995490185085299999104136975162066312592655320893474020990921691735586224146869098030604992047794811917015512048433264134331177540600791736774992404540124629974269579017143173025631400212549284040096231582166148397793812148406113335572155578049852872191598861048827878755804593760721569421807216877633026808680350455363534156940689255118459940154476039289136994385773811501584131138787387007862218961243173924019590626259601648685667051080169437193454710115774219853501460766261575675867317838002395188061862303358668682264672729570630615765759056739814359110504206423158333405377025651300041390291476172556730812451808361752269206793610428854481975705245026834726326394572000306666472982754013960086014895443581401226948200071008372990887561329000566834311555369547071131779414873624717042786859568951268908677461802185517675182381863203401917464042889345446041560386095961158664480880025948656214050401145903999670176605769249340744264809610177932221407867812703100873431215763757766208948815938817237598114411482944738506596852902492063821439495984816554358492042256855829953242018762687328561672696201944700940421555684609689341273496041570714199368263980037146694553885998027704601155915116005374162539016883092649800636395801367398601699711168953141627726683608938872735304416573452325368541137426747068654904875645015894775398344214753678576260038678543369328677847233347803420838208866450001119941636071908153469487604192675032348641530913573087813226989036392712935477567398570615252363077233676581879876301041412033085062075361839898217821470466647548364700876582074474170732935434694794632584373200149307373216460585715724948993586812633413116340077709571374718504676732445072455891227830172598818076769032267246449629819991698635020498139492177806016867977122048487579557527961060825805941069748079331835512545377428477003381242729850175248193476305174126568637637859684382701454185511047560051283119563283717184975315809725391152574968529361576759861442868810163287052294693387899358748518499718331697767447998367478484493323432240235983110573555503615816943088318520109502463500086365146063803439396290997084972655137755397160999093485328889045051332113802935993142980959783317158411250927442469589754694666946856861278961469785226184496789684215920967963561504834209384501635546034643996347450987152112697381407889026044169999018164737443163023433307369841935374088485997637641909756480982298595923804680510426839481732019970768452730088449904580676920568634168186332866683940697432684474427889390064889420581445279716817096948581013875043119695248222167638459001676912033910131472012426108518605678937656008095488388490724642205054256570178981032235977435421505839287568209790195685390334947816464003644408960989665741216442273623153935983315206477084076159234780109258619891205196814071970717652906069364522177993016847288530668261870363766967445605293463919281027663788969532378227085349158063086556250139522540741458986702937580852180117283730435904397254947315205218485640511837480433758982658290374002230811352239692410549369696259691950724159063602495070101126127203602717049498652364972786430798745885597660668314774588752194342719777149935276327615821131209540861379273423456328601100052525775978699931876618490141855762782305112617315466876726066894639669630656190549346522448973491095427418293944538601370218851551077894756196218287117683498611164179718744703919709768395046117656929852915190534184341307188813600198371011830642348982011850858835385078386709324698692568313436681807109265753101535761281325375403318944927136967742525267840155643172458199652826239542483024250164252229620736661149055472305096955439117718047538759745086490032751595327857252287322791205990660162216513320400688315865505874391691194594191686351428913992276399747965484713242315239291738721008204648959113839507638364573674033822102098695936589453614408816246726652609101980949374126211462657602213630304593007998686393019898991985863723772214717600403612630073075946974036868251387070590134997174297436509388980988187899354908984627654468096849088867232784523398346539993936371468239669061181472038494505773466537049851692599909841504247240835364243450153373765786459953722163517540030987560754066720078897353146821867747012273761593615724892981483637526534384873039451481011844335222225806438382972203839925918183722557246862212935022069357357624053191989357182836513738894999959988422463992323384592156916016603487578971798067872283728651166647021199346212472372416791853610419661968291701566040775282204052385565051904446561556023577177711429277858091629492263567598703963198090251584967428668179214206506724337981174451732663472618315390664449516144600590643817881851817599099777985300348148061423884545349950834254662059902701127244331105174277751840351165365757651497412012198026525226297639764992698287788222722261663680601467043284476895809452909884396152521508033003360319832230821889729670591211047554776062384295319641543711944157997123684699152979263055400163215734690253457796800610329006366547226976137163411463271713234267885234201111243230693677083499211741814454648123995377523329700888745652152894458465751877020429901154219287781122312526801171998940595671072805040059885361100609645094749674120779857962656653685007137539485800145784552152275060495942974239021012287494202302414458551023438507111250471212447595917905394314795536080169399064716223263020322354566344415851986810586966666729935899401907200589246512479376750451857709561114388268728446020863498579498031773454937224967440483209261484851727194888520363557412873488865921491806653340630338917114630375280721751826423642833026248376230926209930193295638196928931001809557717618319875758565453149062644294447934786176689646736185888320035084922444783356830162909721028354104899708189998120102298075115433298374940046210868906165747652418556242884691871094579784141316712354189079071697237687707178384410338102217501992769354227159199626437177133750905498511766085425371723094103482827503641678367343873763046469843103627914939636771518479919700844658810668564834514609824690821802452551318920730448100700363420535306233263511790572308215675316860736886517031671007998665801180161640337087686003060737413339522668917008552144517044668719855632312175731381351030579621235616293876598719369785580404034356668191771898036873811641746490713669211191992354806670691195843055179633137889073390459176169285427186675561889483800257478204543911450255196752268521844640725922610693450830271574830414176100322780939412512150296453195549166792723851221784215407946379446061272016568727342263193242318931147106288540204605437286940280858676578249686257798775608869662677497840381432276590502961212758482614589822898916956943817145947424294971675810214298666462391684927435242016191497015857719779907702467702132194457384379043902619726785961589203413705323222600880296264474070466273317096670132879091766209901239322053759972262459972309021927817524632390154939220339815955635992951286611055266181746204376735920547072244031532623668541687232413840015241855295116524867059100014044336738210011749892118328115168614065044423546054485759906116219586507929460090106443777856925764015307752283295949533373866216937165271981979928196872102618026651803782068730686436786984137332825245171076613108395186841085300556508274058985280011865709478621255653362146120667459572878386621413171350437819483619540939335617021101585448952635830526346096182546679980394504319076089563399145998993576334592022555606483194683309429314661332725899915723851264955031608239363273953159138828428132249166341766990937623333708687046534881947804937343055549166447986567825701754702802631371128003726404085987061489392220697000773628193232946825139542073421629581507080478599775527059880340355375791509193179425986552291593018996587320047535331964441862783655421907439883331691482975563503132956782581583733406330795760690776584282674017883170089168036148716965940099786864342900623172940119920153636335969453619153227664075145195737795340540003327054965097733071993008720144381710178501319328156991711754108386692772607843505318894902833082718289186528757885462106264231413901999747135151858764307791651308993139569432946960747369523686996905403029900900854298424559196538441462828274488184321094095008039898459443575000718476643344193118121067309542171851971532160882582869221807306493577345522100584769510645983267491758609284654273936679037707588104580296333641949660991378854968425629277485913452536033347980760984464742894749964555266991154234366952060879532115797699635944624386228688562304844172887025777632346474883392428378793962040048392212580648268975388467819142449130157590158010051146152384784882169293117977425975037094075593059538009545675231588622024226840593864975469943781670278322336036284703255368977464429261420956341719472801169045358227281040376510948590316235900756670568100081449487125632352605142886978896110562491500841297523014523912798816075439302223256025269249254321343621894588234319887020452027879238117269501091865271523175234065835197043393220857017816203780084837625506110473840010206903111957954670979060113741140568546494379143548790530741743752964616226815717294829068861720352044245316209568829384880723566809399639805692841862831431472502987868347900428426683249754395304507477412573800960202757997329722080699745438987927605288170857927895176920200057647800802289384281713068611304792582691541335417480765966044488378774552727247943847994596902873394900781805458244658588169026402347237231170122529762937252473751332519154867174139498141895864858375837087584298407227133218860117197106853799195446644756623078282593911382910622718282453293788811295295897459601257998665637205048522658991186964241268037794947819555841519380134900878286120213382905388007737121783586750363310120236413557870029930736188186813995083878255635764921550197565229463897214497518041902393656245911860865957136210920716926666286929332882765673225269858587903538721968103278814097484925518286356622180850872082778864995495025891351127611997944849616424818763098169613861108400323037660374219804951768366407592035109791177161964519675188456387439152736659791280592841024106915801893963711216525124959266158444096584869270825911071311226188100965221931883804281129854275593664740812180873014794206626095663216491700011321671142604161543049703822813898331988587788979370685504662095350721553330978977065968316876796236351388530958771526973068387814926099222281471650235932733244952847930972569641934449927723064406629199208381638059016144158746027119353721699680565675898556852913607711599967667678921192163328651436469972729179047336533794941114582281723478203840744306494120972428008059620989026162341909740723388698020689646883438761341210685814072923895448004391356217372770572587589155370511886753984135819974379891271226221372729344027183654834215681322594721224646536861068902064651923691975017951517052661127081274456441737245195758236916801876285083698881453741905486632524521312063637052820664988015767388408378656179741533481491735423320586332474887183941708415940134413218097466487669729156508388656122626556419076454983731648085207324862121417914002447078099499508240574930084239554434668425800338226495860831634056200766258961845752183095634110011129873678691397302700160375194521665865709726092992523551392411654111437282298853892912750513616045672715473489221117186821081785932598710856251599459521969008110060242321422557575711454613795586319184426751267236150059249551728748990528546886932107861096249321001615709060959528352706438559060700574675611768703610398502801515575902716800705511388884313385736748807335664515608095738569350567349538827448799542620173867828772976597449928956933922689194684330177860383286232064133653973463519198422018522450313322790023542792499481604738488386543721302461362678315779206551316407543498977719971471012030680586455921710772757857739011283572790074777165504147936164913570287665870884179094361104284905404021834311246987679700056140898248723229143982424835164630636722852766671898606692688748911382523869439641606288125047338120606790623088114558429618331918944627565081139363309748504897529099910436231407303545405782733810422376433433177377360436725103514827287908897224248508891470986635645593732460869711216646750864475670884075071349029900033798777591724317287606342275818869384636187354264250773347987320371350865087458963254138506181238019051836190546307188015046684930784650063472349260979554957269277898369266802131877982892748013706851551440421233837140082572556557948352806901249565751148971480019271389878807208324539919070786044356741273444530894323751396906469511581553020745005708596268172809495053866631305780514183023063563463936529747841192502848141636719604020503450189970661750651741921930723058144158986258368800923095390295607252570089398196784668150363945579184128580795072190223563262354440582450652974539196824378197026951967509877066379223707935391196598873515445171459332397864081329700932836811279888232021647746194479484081588007366257764014640623245814961891055134992932556759560461869751772185449371372197539413450506538958235730882216659151971800662299182399524530761385745072671548637440902510473426612047303120519392224879719035959157623730940082656401418857516697254344199324498514143402340475541379057612884675080216227872772614595075374089349098384855836775381680562164741369204105834239035912571842515523411652873705352904012248012496741383766743239770761507453972124722221373083741428805240998981860093347184224823671723943441560972917305105748098580003123978660272079119308632996882037192788278269494870727043608044167204817063676261227846734519264092702763003455121457231314818769978585032164641385668587989543151589884509636124161070861228165601050948183784183230969436841825200095461340514818541342725635953834579326165527426592588577999149107031569823407797360555392510459015836786466379705744122676301190343911522649210522115672412996982291357135925381497483211169241382345623135247861404565108172392410707477445133628435233259191611121986952839087252283690168450376993215298475136049033177874345479347914673857737308788686211666595882119592320016409695684069555920165096137688915979102087670125041054017648960208028891516877269026226721349632017677363224071201766628637104392144973686713142009448757219514722460294418399628727256548052206350725801533943848991070383272820956806539881829627509841457732304544057244392837664773209550942026527703299101448442990406822269131195278786351826275181867905035884403418342045147572724467149180878177392098289068851127116217761695363002033686414571005726728811984588677006047823131917543426560057268955776096688594326548594782415588534418426705337719352544288295874893211267359162420176138651922934059938184416437320819978840583055720720728524528868694930114331132618318532058771824870759302405696259582807811499467546216665347548523800876304474089718476704858194851973901056184352712300034587505795352331775427354907048749585254336697345204317124157155545073786251187929569585137590039027399290900751949367846198884834068926691033911448627229282276857390464847417897413808907726445007384479443197421181550977992232242427457488243387280786162924928095907765502025018054909988315019941174356884679977504164597819565135925790532542949485218556743640938013844867827322986980001616785011873615188181241327455391227717041462953759562070843448006324029485626288991976342057824401811835451989780215711723970139694305397930352174389949096233415252510124392872326891944473670915572190154699025251193500382181794630135890594498499064941002364568923352160712639515223653830979614822894286092800558979264674324602791562696611811824968537892372502556381159580940734572914821894452637710403591519254141265339239984029928508733992300465567741992986555215500609425367935926244963143116736384682890466897080437133992019794164668113894965981778116829572652657397893758083636288546961987370646448311923772904947961698356923806443905751429947324563461586666736622934505707309445753416451328941447359879175908962106705893215515282033213497582802245503879392025138910112893758966055080340208003288462203473691280989184891205603487539074860567231977861204543913459162955382399031940831846956276393990239810883048031706439258586008481357744280619309875107991273745172576516627062208879419098587656148962817668627375165318135159955115590300846906168304018947247649684828186039700342017125045818703742711806518991442292545247886183996315905209871849110068625886152328830492850027326726323231574199202197370799265327213705698135912151006263314563691628002261917265689298054406670054631736172650511734420721984920794623910315984676368333382984476308281636781116287386630136788777671042334767994919839711045649719791518259995285111118703041498268703508403687960776275713440179788321136389023765731641637521861810737721640582164127677859177253593957962204133985922256150155931943690184045135599775294644380914119776748563624910478164324228672854031515871619426502425502134457869716591590208504650824064834996401099445522263702141214847666059617153710279855971563751193458138188687440199720267429005492225655000753925819912482772103216648667124987694903578904178127720881285873285979611935054418143578628539965686454089936490173804022817940693174994173283952436958218671207337300807656263563585448930277987744172431936776767864016152484551230020445054560165182998931509184535054456346469645301521563456468015712503812088377441710684509927811397864885353923103918860879881625412423343497038875796641271811036973694252742118456783522765633960197364704224096411047110802817457915986767457891208236060397754449618206192695606643226492487191869150580830713368378054333314947086712167456307224741003456349171556182230337103878911786866747160412553097000195986835260050350742735626262601429329026736290168598408099670956775693462223873810307631614488505912344231265640076874100432784581009783375440307736130076726726684344559811666146725127151969517903579872361935522552699797749164686519233405651873578197133410308310714163194788226703169413221926471956159300151597225783987921436307911273954944302403877500711842652019367580988434656099864943539473270348265698063341084935377548501410213235233789364043334551167376317591367737828256424050892847186234963973601557200992134834941093862052773712562916326980623483511956369653881552710975367022488262055854119461218401877061455073620763277589127705676419205722683413525324419409134343834844636756497217482228199717979614883945459908874191232312171460955304992253143627740656683328276964612732251952280977498465996178215833035110264752334488744622454196710043150358585430506934558107585446735531477538550715313921542463753582147007778592878447207015720874377178872001474625786141326581564961495940777830730616030101732590397284352376748850760423986369897872234725577113208632224281027011662001831937959337870488142807350118715873810542111548709879484295163410141410130292833059527896103206951306927461428957027219992233553551125979590033601422576809522320551432777450930073401318382636146045513216002716526434432272235005690718732449455168717536102567191790583552946881622964524082139545209941834967836151839136423061088113940652709473630858921884052130415807137816484081399531116206542894155845852068697423978523950451697851156257853367683513641323317385611803078057504474315868677932045882492975724646237693009365514166150163512032946174167064388964974425951880017968742685560284960259746559556599830133462230228494168269753605416914958640375417416276570520584781466664029174358182657261642556027721254842161711965884837461528191761211688100049019552246251494074306828368579963419619165812840676796618130026855639573831155887765553119093136119372923476533624058194570936427572088607391752696133240344550732431637458837211751190430258328918215637053537556442442727160315448709724228445335699387084322422162611550080079140259594937009541824846285494095597561110607176756031774015421226989296734947808093352445785265244610186408772296185458829728810283604520753442590251504039806547378155883746903091360213021093899015052335983625033512951787916686500679933523476087944948820069647311412128742935508525523742783039974756105324460354648375331893241743699028528784637489920844244978013865971470215172059779562706369243882960538138594794578621658104949686985069963412592656468466170069821198081132597579243266424811705573447426254763355603997197294117435781280109365326650052077597430662323578290245692819953266142783616329148409128524082195592035492700220728986510543990808886776630261903071163179080064700802587268817483988262768280008534834696347998807200053675588527098302044813222870720404194820416715427220165147776684354083929711827525822937957768881769005792927269406720711447430281703727515435975776726106066928856727340236570541781507873280617271521060904715160500851697103965784731761903160291754714075510240140084868214320778342152377322361000431716806198038965843541786329213854746001569697150369545790725814961695742871102278293532211287039918523351182602239653626855445997906591870964298465941460802906968868288932172986062645124322186432692897886486024436676808858476535185377964184174618637434209312730420096797961555360554301244397343019118092355294489764439445157805126126537880901487419643083592881702607267079188844579666880931940541334432682162626262048990375622214976681962493266470993159563894653993531616446377597665346246757791168162194906296921528891643749081085473444664461527170709859323221278140962098593395357095607731073968087301111274498511507994726969064295231577927304888984619370797589974367499603207518569600523365959076917367561716362777133070722623800964532562616300071144891201708730552489028612027451999322567889541421796531730134832340852276469896085166302636839039835581674805793972089369097825801597231796568426985234979377125003654215372161629420627882388278366269093246250967035577448606138539342348461843649376628843588629968962192620402701707339041702632846848102152283273439152803150868831356641730840341343835441191908174738711898922915276892427349549028274020373959565395236460718701729691885331786891642120302299400274078030703670197249543161049166640083430761977193594810230368838478315540143598438392259640039380570556862159100775885981735705535511179654407805603003987731467958634840838076498728763648181800704735620114216575780114028730358026035835948913719705614990492870683127921073406174374252172346733231151703428382326954465013490171048030410894626470091200850798713925515267898790465891878494718377308122106980405114254107463635737677245350175136295596904575793694313760649712563889212129450262472956116505120667718771971579997036394861599818245272150050412235162983009791280189424056826208730683850250601675333010664804706160838724036508699861430069442196139747066601903927213760754101411323270721011401628358530344408186140357235729323529996697144531595876483580374252001495844084979553023272682910735339949191811315197864193846645876194760780900134028872916705986424294532058049099768876636518710059310448958512235232263513313089753734346676583444986694879740500023548552869433975667489550314347894989436636927133910842642328650461280717725268941475082498053028796189878207121836119877834207458552950741859735994116766676320024462577505961587340762370617245942504564221461376034243282522497840753157123424452703268866566864453376382622350580460331341265141453459711358221553160049616627739147219567676959190330034646390741949555321105019622413980751751704526983628852192223237856972257829468806038620699015782020414448215300896400490000564398908249452886038301165314308432347625430149683060438208905852950932214843104627991535431908811922473893698695254705346642233193560733785002474410324244673474106947451320643697617635054955902408134293118663924597050577940314613641057149012128815009985219698641197574842117178350485926495000651965674447924522202135365806344071563853821000622077606309572132231019548564970491962706654513720984426752864260925837429274612273001962981162263122605841539562359119902919317281098566722835224944692368912483817055386722323387998286508899429809801235309954781922664348824510862329167528023228181122152638671742719561086483551744300745597885434957785713834785705994601572619172475609196939749105975582566797481766142068458281414154075533700276961230873476486053800616336061420874191964710088853261481883985397551945776568448451066439348392654832726930196902009619015846101744944982893376974072384001631884740758537749008826443353583778695027864726841989148519476436701927816557189072573084641450786088228529902465252254148521211731338134236180508714226628930029543513653423808528659646517449309775527159133106563906216928330486638133200876616165485495035703019020641432280782440642453609994625529492444115960414007429803640505990347239102964611838581828059954416302827470968473158224248677442992380033486676053185252343311205010262893550217913438283444230693123575115833209942724974738591738034516324581642303522043851688385734969377143017817638229843345806852429328231648044654836603923507195130505806279091069211765125872716200705636614158893285686355235867551120667928710391897850710050202241224570258785746589025428932522092809777791264257362632746448550661057165765379004776526585087043625483793210482914462019467808551179656061854327790082162704307496957178877595124371198246395428490958080563758660941282337292569178324410374344492348622920953458517558628168016314329255019140787956645860889659828551661207222157195782534911199071824941302128305631322012387964902385475179364209786524934800749335971393397051709467164596561884979801906184083596373303176976023816286380133980135070050050027952765188668711193345208327263596903342024860616396615467972072123521637125211218492333520986473932479821562247238180680114401532460748008779488011688315070812742590979242028864843531831287269896665978825244959596950507657303121448303169136728898502717753159512685823756325946906611124180314477077263725159362395778645392180443336466578797923950856520906059330337661761547158379039466332224370598546176705013952659458967484481881949336494033910501193763493395759179718012172985696980922078855031455261524479039500893305962720713289239080814044347704982605085956963173534130715316663181451960006954052015886989363550463087886333828056023097065768827789519612004040513996520165784080744610559333898589562331258681789227529452917085404233045207183270971319181855272206591852984281403354970502303731184519070004821664054948394530108311078458237794832957761474880073846690015595228279583403068671982129596073833014807825888044977482928420388106033711771352554685159500296162803887094410765721897427565005176650382241672006906112604453228788181677821369250497242676327776103043004725385600271183897573579360395504448482602135796920639377287478191644428648552335325681882774995040192758982708625314174725984789215783783386275491942565240837994708231630075240264157627237771132108768400472165701203122784795022455157047714217248275683721466058589998391546090851353505305509520373598735505433421606545173834887640948078898806691249952394261381356184610938924478910555139699541615965067235067960836019476121999928047246332886379330579137199718957417776006779906908218982307455016416565692199808013787407183158835055136323425115354303564944963954864881005788342950939733619580906693828547303820930078296163102436362141949218463702527415618960259788084095933389671243720448702520194314983330406785777510051609776027052806631578800101818032772692040351192306703346948186896697361385928079643927911312509150609529097592938626469691653286174598452820377449132042649147753227158264556437741241118561441956561494344025316177033280836179437746002557876526257985915419320375325545076908885541667678133418445892138699920137237396214292180711309944706894999753788278579551310899999892952132819693145624213722281353188487829313947864660948168297422067406025068667688117096099558715225323904950916288515817591208971372836223573758551054106042525963359068288682692556958398856187477355808075926872017360351273611109778156590747283870979754982963394324174049016676505412239407255583369614327169471775548142786218111140075121273925356426960349725313989484440176975279711136242950141137929084933827367843523124857024799260707332353743704490740450779342666756845066036626945247040879042517962382343667117258633978340304136350714671282624174118373619022732853007937201626919462101300837001651551148854728055826901160716246037447274966658185101168168696369958293493537377251538081015306846577741170206380236485407821797983944972254541072720962606753459716022910724093624665558618162046956263789350361945519350314408281901592909379202316807749599071443951050846962530592442297946954812041737119074338899489838422569455862232621122211438595046713613610252564590603311010630346168110484164215644224335946380677748717960101380053843236885733070148535611633777573511484551727426458849795580987254822327489585370954893974771451425931456986559923412034185092115620030594402877787601312467596267349837012700963088306811805971982758472349961110774777585913789896559968739540844618464346505528644827483558716011953991772233097569338626342930937739762329136410607160443127157039249962359657154057867905183986607195096280564438417212586236187131363111947776913196539317244275808733230189531011759278095291472101641976544723134862226414979937492656774140953427474225390269552144827700098009922297110939956578059764489318377553820407602108763715881975331218394974296327485873628829368794574268079757936353893032075606913314772694341618999742857901735606182024862790954229085256503731812919976556954220872259306264114332098753452062821577157836669127571709780302498484265228946259083501497084499917941858750826352773159075460707467167623906506238884242967142493165087995783476475339173218428103701382736269633692245492959953422421740479290859658325821388359807000719091828013874192815522518568222340545208659163464240634226704955268876068350615702955444490047104188854825217297926888084444468685571515994823949028995040185319431320378222897655041837186414726486547659312737905161364210565892060462844517085903919625951954907219256260957682354363480018188523425134606003449261824932254427513097863266829824908428487373985862461131598441539306963240014333474536341959684836475264368042782223169508383482161726897292105987202490408406173113283381964344324586328336609510872109920267822652987073609896303119114148512183988462007370139659277296315228484034088754107135861923337302412928351928553091992136212885165860141978521969855631819015747227891477281195731062123445621847648155008045030665467000110648479045424300012758723342716804436881599059134444379840507899719646671540810358881073359524225153965601751582474687713354393235877870517513092487155933057533447613762281433695327116765891405147446525160046906168121308386033938482604997047117820240541983703977446628569310761917616841137284760532890078137253769277249546439771803979236813041481790994236629736188538665404977466523616913596369399158448170779390520199023471178171226281596613807465186619713178431331199200364250508061577385163069673368102751671871995134386982709639399216401994214872925634121000150909335526853978484742363930796876598529819269225948905017142677441869353830053132805212151985337989453460886302754785656601880708678982938959642421600097857752524590742839894406642119156724307521026363375116711080366725357519518049044969550125143452079758607455027295696115231097972996706120431109126261341863068426199293580410118252899301506854173871367939198791354374746962706451213013856517224563920977461860927624204470476448510390556963513245644997295433684690124410595692442013310465774673228202389800552915578871063670545486742917513343958888169178638137025256003981063287228889236081021699646392683878954452210119898109410356757987539402085739330398167057619616747958725233259628149421761756343503747731033760833273816515493579577949364147755791518083652586206908312422548858903010355749626233042226749171553495936429804195599597099930691158336565552725235735033532549114670890610954882271784986351783827181564586483279132446283780178935828071495647594624582811297123568797178027129234785903532740146371618344189756612115304887283371624759000680750813471075350714164270703801949395731600010933824423064762239833152368691440858287153165039431385820439327503967581511489350354903970586507043806637306303403697639788596395477889909979390929992140543203217414925691518522611523299510816956250488080398601688311591717171904321541633551195656915136680377923327530480513404561064270958848187016447459872251080565089678913705070211479192266564901535487965346669228843916181358075485024316752301345280954392222781528127052611213055763478186129739667488982928260235076969072990455797115272046622839979697074678680044056283773217964147571030669140931033553859948330969571394394486551813474007779507444796739571136027260209658362048316365273503848277618040659612616504549961544197001213433977241968964958141732582855128299785264254525787341868112590094629664644231800874305850931567397995073422509928103474326789078307795904448784402419182387155554891479573019120597472702946674880015856768707646905127246812282228417160839810341690652574677988149514760137577796062207506735940622652013231224151134199295360346791440071615654951780305754179297070871875855832599623530061827618184429115309795882151990042305990623223524473288359390892811261509050783296708639506831263023919308608163367813963489675281706536089208207529047505711395516645660105226125160231546142332225440723476225742122859891390296834583164781710091318673927741289981793499751106090312163045156228833766568911702412911843619458081879203848407346453282648302783475407448363522270002229904451758104909348156012069443823531559062558736441454726737914206476152349640191130933219260543410393032150141071157682969014995543228358893143261348264876404123408079808648828929251603506191892962388742573454351086256811883502813328204925226372178381580575648352254730112227206160300462111045746897045038841142770470321598254464588752376546231221140390656725866649135406825747041508807313047193022979258129151809952266499130422734964820633192562161957076723495341754466835007978001118047789179743430735425481901481791484569421538869522563086551944327079155651288095246744882839183724675726928653355793972951192855231432950419561836147479531540946600412216993965326489364964247158025517350851658338838930930665452381145135848094751718872518542226606714495643059342251949405373034952439000070170410894866102383884869812043791225764341210221962997855091458438593579315074434263013073928712650103379509026750308726551863236311559483728969378583184999388136258921356269194309668187778793613755682633064576972990120814891100723698061905088722569314476809377977819600276101607104851162463198717693145444193155847325817467535174411363942271768234688002016625936642212353704831730339818038682025297971395229165655829650136677014466899193343768109243759462776428613978919007645392330941551065024031865338799919626977937781168124644087488834220074112418078248825459457009121781502405576372659747517465151417686835536176532735025700541902797487456599813915577735496323866033668395987136336189312389136359399313368892613261086114776794898102665702364416880568278654521321163938189492933652605021407637575697250670519982170005429040327873298476399385681134907631986168800535267639541745275522643232835372043257308276601381192714594924949041258530661790885062596786112952270133188721870271033788858907292763517607512503046391056064745500013618120505634411407718331511720477396653055870940781661125446655416150288206529131183330810797369800276311473975529914130293637502767649607647281215023408125880912014246486781151595258281014083053751318379854171035240165228663404884624789234341037070763426505115506532829833114429027709681689080330971154493157822994017703417643173358086425195039306113173690037266233877070695818455948936499141614444254062332195401962233250761022740057710836164996210469196007097409893673445487962469992009246068138228928942197283993242783451100686769111469180605509539356073876545941077110251476893673280482840646686531680688749294515526535511598315985492005143383859277966358113373547129285215054947940119416576083979962737177407453738302859005813177941068642932383091706115923981922587444391166646247524242190226299955789318804477789524530458726508185298646518322827632355902700240564549904955752168801115284664813904404265748886761606073610003211940394031355802371536686379282454861977519657869975836546184070246847462377046060350413593178935038280426486607925198152744501619727027306620026358481747139918221570983705084254509292660446711532349206776164287991463514887605920754355842521835132969656635126509009076262701288482164813993780799501605008688427661701236221435897709822385765666129830731570189631889636691974563415933228847778000150846584002588656624232794407730072569840549385813524137839674953343192041279118359798522802042522726263261303811670851350889166924306558343606773142902712807736107627749812157618681237649162874623654763230210804653468458927101340825221523068489703819715361828409784002545752250166191652163096919919511211634970981733634905434484555858999040234430040162995729072021583947988562762695598503819888458388067668544779812556770151845681183010889903274939203055432253705189786704967395323864618229501526893680377328362926057031928240700356105189167799061220453034398090672993969107417361556656274103165447227746820842490044207768038740268019944208169729766077421601826336222833695873185233608015124502233456593504973849542123345973587001549049217828631544286904554355887746146002173856253495643406271417775267224821232919733489517925958997604893159792462340715084358386568446313515058520912891134052564217502407795139459180587925874423798287936376392895015951662797116671950039112509651483176976016752268835991584760799551932704260539030087817290646661985935730814279790368674234444377716564645038950593838689148387015792275477458064479606212260514055012131670651992238659944363025463688415197394002362586403260719790166341381970002079383106289220004853143137106203804715090027294778582572994348731905644867191852027203481680055072699910026848486488938368814701203384472628192502134986455909085151828106326436141113679470920911303784481963930732290723811767283803130084405762418085593998278292223493526613611203551504802566290196473613826149726004663468612568358864688293334383289657538294823408277366148034928181833727684673180976076628678773708939106343222662008544905461098499495436106242541548030818995112310433532362058344247982104074158648157680629928323244607589826618220145906516878023395741718280652054096901769591784246292571270907157956025200192077597379071682806435109515834800230838621862845536497783938105130880474206123770552044084929666959103083686299148148706354184584219497268388268804183601428590738458479142665069385674871198004663002445127449982132844404401874546470486152106760200709308044908338871884479706005559578777862995368378409893542345503999140306071913337424382162972501241671828432539658156519909412618658224033365472776973273320538482460718186482566019416399530154840385971359990442655441385046175592768569420744470354545787738290453300832433692670252196149605606791337413314592344845644197472781167394003683367593110097433090738183158727020953377050030702043185286368659077911152542945859293913561574093587843236448689270219124574334437568546755424705606895251897705638052772479217583471958018721269986668928486582661275771663597726267939549197335669847215226637792596675472872640433001463810642712161537258368102731196090827323330300777788745442351535539263224482755977499385942495364938345355983310358373032817276290006984707509498404657122156168162594292490908116894174321525678155620426289225506747062422574586528092239094489299112083254088241156247336099490092667337607287343996251351485187845520971353797354718848394616479799834954951756178595225181367519683600513379320384120767458808743164423952880573810024943720200406358302737374295073336150746041714236138833380640351123502183212423040342248545636235873717826517000424097687060156399319276674155797248626834823996435042703557947996723739771281101054644464827317278561931021167434259185162928185877488031825548546540728846078558943614154572280477968846694605149539334371590658688890937258484207884756521739823459185514968664992106204952792573078789687863779919849771623612255674552342493508723096162813015552547275395048857085834778437263058197890183079189964867333175670923174150019558988338505077243439398057391195022245162482496906112838568237360166720185360775262612969387676134754002501291683545014751697194466158316831011669008229226410317952807225756668594471929284967993125865051372913248555568248563102430952903781624801325189347639227022751655322573639782611739888826323870923587982395941082219266353368688090006637728219370916362860269829039547763464671113528015825049966340904397215125185750588641526379150993660782956240689537801751907309187888369318205010472700621307284184698485817623435814251611403243271517463394579480889622648550250070534104318135026568986498370604654010773241891559535806730769505522696841869751759059533925761115296300419980838131686914850442849297734334783414698975880340522438531143220328141102738365901872531449243457442726168306431163859596953607387715724874251010886542194831452974708109525274942697630886765228617568877022939072548157370804949693653352729879804066425323350116181265369961988341027614129466171344011344269952157912808744900799497665267750031865641178907659967032231290204307821765704998980925744808902387558744857921898621256932627006445516682080522564605799614645617705993671805803207737333902648590203859194680840207513479742381943989227121476257957810268568455833874584294037364991176545201763721490152469308885033888608937514006677108596713901378901135514319686870934595343812074879954346531539882448878285498497330757627644416120660012246024018931129823622804966885546153835453739362154299226513489441409425088514820175755542776015767163204256455623057472978762938985811743771504332076982070254845205697335409438821682329901177577389078274647365795879649559845555570058394282748462019272002672937473619893277297035749430559540712137572792453943148786991344509325736808182106675885854243447332839999224682564739427273636703216653330531642281312430573925213644335763769266556702473006549756969925180111595266767359219354399409723329539278451259601899261048552421106779756741013545810014035656632327146400800518628583717120166520293810599505814505151348381815343917214180198660910028052085238096224685523383366976722729843366073016372002365977883597998214122311021614042160171134317227890107238957234433675619593247437652783158780223438227581188536016889704204094572052011148709610143828349722319619189403018413183667082045718784079324729664357909130062409036972188200353126070819773320704589444549161675858029508098007824301862793824135797841262137524004737112620916598349027650797662223111177579828205344805322287515746856094987795475170733671095653640720310797959887584285043877988454266482429893365286586433786018580562692460006488088999414328406027180369598744807085568882035174826084654914644065935054476739140275566611530895797754625508797129128471071333903929099377082953265683661310768099963404514037846203931208610263134527651020775918792265434092331787774135230917079978407027106157841943548691376224209291930633089495279245608764438343388494968197442388279808443330384764993969527262878295220900224105726469263676654250209776251530414154314576404044207781932963631284642359138785051064221464059942328240187784621708634182583651218244502782072917531895819412812670768221896358070913724733440845101249487309468328442420829873408219490147790137707054999867901868045826705431500790980847234135764437063986975535098289160084441072693066516510055606720844574388544261965121255372309631658113945270087763647474907511493975956478348198343340893665452352213149152158566993545426186595875994695727619877493596475474390411140319077971377565526701977084796566094031384899038596939709571929056507416998576270335742409960317978810404518445360114735487451998250054714301753903290279851151200557801912219338067662910463732899515748111156316983405241887116966196834277167120835214704653288470394214492905451723935423745496968045396672756201106499178091606088152949858902499898683263270551425338006196037075003089145835025411181889562024182170558965903171115902148582621692033184014628480977881754654718075867484124521482927837520695723202615216553680958628067763318731200280417498039564873144680910576133727087056168917111563681805149866057247744039231044184583980460823986160549817158149932016145637819534379599967778847743484007059074484200014201785014365869811481640978774923749273488147644864956578351823780757408535138849968595718352500846133917178471420595767225822875583576117795533655500441906465027832152611104003361545973120608494392421700902902722124396607186526108786254574465232088381837106599854233044375967902716606349182089751130721460287957358126257280008850308387185635426205424824786203556902680393125820594958093127845859244128931397252566998528085074353744220299194823379051784469107040824486016883834971798094124063970097435684980573334121556115747833945035485078342030866832773239118051998010953270265244751392427967397473785457514888536101041815650349977325331294506151177080893937580073294326307282580859412594263581172459731743581106076963213078977174803545064111085789610492807807279564908066446313799108753543094844441417651210283432370532665482543057225071111456249326405040981569497825275221441764292373613536123847644412120223934031052465443095660831636364187827043922797836451547990702458024882902114262652102083496322073959684577390316625007299487843003599708880971220406674383391230858616239227153371358171242472971273999063119397278888549300827588611542601407994488179906588708502555106463530195002469056055739784535516322378563945282663225731934877876371240421192879531446855473082624600618565929381718160596123241425584418619781184002376989574368961139340017716463845612574136460850620041767530054141973525913285539728636154676281285034033125078957344537715636670242116784518207465300844740708880405859231495953008699943083927883183276308705362506715233951659997244119809736184285621369701015510621854990138562421425956308497760506311943876070035866625198858601335261094856111187905665371977319309489862794618677721118669516228573372289876408972801519414521312005977773062670949315081913669720169102582856780037076332810433568042989054000473831134264505220251951664370887365891207832695466831452029626291611536851803109902840981056477825199120162957529697500565223746015628657557207878961792450133903493383322593468796197735857127435710151688229898012749396071398156485867926917061548273200778743297054906195556980230233748970083012225656092408895314232947874591330945314159161275349884982459284279881615424994550606448125225893065811320346839564290849539573415289619910002561992893493221849373366831189885475289063210358231972913078534043726095686927985727907454040313580885928353734734841950674640210341812490458552733010733477049583935766391284166584674327742192220675161333311478517837431711323095986256944318444562269499609273244527715232280870613194732291698089894635750540982770365262227657634123591144170065218844763104253554218971210184616425800153037614455066057625771752104739330473613675582715266052679666193513165418210030442826474949461065145557413884157548844663289370757708848514167360017428861482281841422570622544177287323531159925994100572566399855312311356365168295007649605889266251590627623438583304149578543883995835488684146105967152945092225127785004970346303499399206187963314658108226596441608837798280731616552498254598850733819091496355634216207602690648993083842342390368135641086945250123477321898456656879715773746673453301657113376598895725620896903189737886553374562077228277007745423191123425857463397182647971210286285195198451570917403852552906298732474992239987036678765869763113229375126492840371845187635230203116217106647616760242269232539355046453633396345101069137219438929229706244207907990715226746929151215372130570125493784665886621707796677769256565643411313508447461607351629053080838386778957065522040407144003085494418976920735039279075648196720078769565105947006838777756389507815508390657842021143527592949744832330915581211705705872514432850329037311617838974412923995638409215659053499638464442035186958394890265212043067736077666682187481718103015885896319718731872743345472845423169774988388112854953805351447449080618464822894206170810237201383029835238875863425667784408988413704654726858876362137466491978780823128122076510740790186097985169744831757919659103821738226827509284747585773965659207892681751338529070594704175961425003163033520210568249780224838699085967936530727615584026311028358148193380507389047216514982470191417815200774440661081439494031110639725628536498057318593606835368430769582895446642071390304830806199579781863451698458609102182894167826716931204157899672706079901676857068401947499555223506918220698514120060811821680594698216053089757812803213086233029148116853231371018136783665855843274330329585301365997537816399781283463969227921472379902913764323032296651826591799381604069435618169849561033796155742948648656095583567151475225731515386987317426589762624535516388968931930926573236084645335274758708794181318728579499378154726583338847408110718620999109218151573726497573182690045939990505704772369154838825186406288351600412951761638828112219143394283462212058950192105961251146045748379546227664411835451931297984320578014399836646728896061087352269684202317375269484072763587022473010456739967682546655242210771921251329490453759744562318002622075523325277450684948383583142986028471156930526788601010729740865432139677744710405101100050865636864990731792224703658427571040785037218184483914959907718909889000068785379389219190501595686741634373029018450709850356742331705977886524759914183770012240858898169668698802323052090666845541865413946855991780217894315554643322316967185179266166523967812482234576967376084178120267004273309064808366627140816772441268484507678711763914448483012697833334696347952661638948446557997809465607987095779145388654675429800298465634896131202486727448644172957915946847387721133233267141641555094628153707544945577710150446727639089091220108305239802786750394988237193923898255674721667471118711669773019965267862297721987902538296302235333786436274053693288734687461368386047984389881106510527431643049542994973790587303570892515589962898964736546470557067734226913669115553795902673323155025174342991932313805144704300610730137731557507917953080679860968465844344526664219303617253847257801758570695356506523287207681478165532096059596647087938312407316758070324483693282544779649211747042421316376979655174025317832606526297605566185652754568263331527327500248979886551170029990846178248249385960417991469246876981531138849726117562786159345234891996881932007990045428937966036004494324688202970479304811790249518302699554605569552785618330696649682076978375930058416064159757964850784634016355600882038251231867137407913593455031884920546057709603328702523234302651458742895225420493156664249262626065960817282363535568232864775618710824796751109862611015730399223041423769598667157994370706920691866153867331908942765402726563179735846687486617645145038700135312906665091006520703279926241205034288354559246512465167355352259631730917300005564805082357869228537864360463441581147240491725192194532008618800288067336792779675771108615669785145761537009449942641310217968406500997237353595947286951144429534061329503196549036998271268332494779390716204128990961376909207272377942730418917883494446579572272583346754087323472415632771781278247300546640686844832585416273754015013901034699001387530510597041638933243039687218402058256253475456560831449878636733997481895818033260453996021882228378143357002157338426969562886867185469466213543488011166416546096572390186659954119256436894045066004296801560596294083719550358130293415512791345124880822496934924434545915093901018570573817524373485015035825069590777534595431484620610902332865211430630498411145196531823478821144284721007009748711586229270851963000914066906007899468255342381419108660867942639297122993474522884998759134810411195708052179316335309662246233672319698993454426844598142686556630583546980692792799567249035887907553509626958602974869993350361533459671022509316403904187534565956917898534279809377462910406504495898876520626960526042644787329674210522055626141947262715283548435026960234036141866842343799948101816466778546614804426190444805190793410601067109166556539259079307088124958363418499812657753902294055141028032211555567973338186924097999569989583768892994371606860210028433960718764686583528637689332235881223500302845162408925267687010453625138226384881753737888949316228912337548152832168082331351899006306377476198743860402807263394841023846436757610494438783678351870701166593533818974237127262294285949751683763851928444522368816154811362799480171444419192820076652106272971068110446596381385977987351409972501740115371969041217903552401431594665644608762565125445785769256177156498430494315504446513463752753102352020385872766795386893509330166007598302760219297824625734987793843152340046236751575971325018545803557464306360445567642600458774411308313806565931752567713311978356597917871120199696488245501626469378698235759355398334518250560627189143094794006731504684265724870557571143721818693315250502533115675399841557949963830709847220373393607333601515585009728385803680762372512954864935121667502920775365466975774291490596637656284466602429846704134665922346237025129615375938971237950971276887551671440643573843684852646556818439810405139466284180039561564161085498742969555010604544223341244626823755335366635149964002658601409817626055894119760521680168475700006069571601952396416138958973996245104596347378406437000481435975335902182471394641459991617972491811732221056662372642701968186630513651816012511665216841571654438689756450322747278214892825623417212460731722944720304982773504603827037943843388973961621560732508471683069847236917772063365352216603134516729413768325562586939724201198141716946122758600904297489930404592280227093247581719436057223624277311689309711831904767276661642390788392328407167094643666099391370944360638396141337532565004386875766556583235874493413533690751650926974025358065761086378857339225493839804923822248278294893611069101350065364979986949209147025762241653569999719377805724104193888658978536681662488657330355408905017251367468699681017771787820167044929636922058476598540782216727933457151758313339363544218443668750953251547814844837898381438280623772638645936269987645255938413474003431924832940284116063564573236153541501384417621628052539934592314345323849075808362023630019670538761713812226277770520520533885975129267569656282682405136505452262436351413661534297966603439628983456734764530003403697661005810513337593134433873443273953509968799281726395892455643319610120620778632352362011622875221322160360775433196754722586693024338028859353006841944012952731999907548403686139334611931932691436709218195203383552332191644505592182495031722240255314943925588292312055471929997854674655892083626937442398142473337021867211772077317571324601117193353806208585071681586893217891919311965907222364916580602644373176658208256510470784169302861219767743033199258468962852239913693582101644715483327428193408693990849407124953999877590076776112739778191291209697329912380302130079794028083298670489890496347934409411840583084415205896831633723092208629016189702764363530918779129822143007054643751682906841483266946683108572280322496826107306847065920514984361564742654718303261793173642507267541725905521325412656382552536566895441612831562677411778352228694027802987154867558914948730411822058370574405007027488369748068006602715209246760290233506695203029142537473909588463607468799870873285094460889300124766938965740028917329994408401304799675064496244549334505856736357323321450778528180482461530194888707664611481917032810073118530292751619924834554353361773527619214590880673272243192462219923599203806986663515495039270837939032214904761061319260405900048409064097075962764046709452198503872577309712224858050945956534434724689881452628566772381566194598222075308178584530166410012492289265547643651657977847519353031010610244315162888226968829333263509643750138743502310941813588224293634929735684782314743618189103838565316385364423546769613107648565665678508080903634688302863750054050047096348918256788259602160211064804384813198081654922706095979386376908756984365166565434618374904638010989271968046176615557886452905583691707869512733979711403982419139434027222204200089363596971284092608557115495339291574263597778284775764503713530322580954002340187564187258024090645661569983819970452865414826114637331443033498946306195924741657388370919501276925663503404234087355724646620817033117438322645788603884716644613653667298513092518317373529583391017473059925836888673667126252659461406743361302597422806783929329007961623434310706114006055472427360856677532659612610619091525794616950320936463606512429916917670828558206846456803233465422347918291229116675319536826823492429661219689974116698142423342612080011782997329345478450933532378648045463296691754950553920948208265419675237286668646525304823614208564660841617050259523013932592279658360262442082474315633461016081817579382806401957875770000321665044570795346707928089848154305880599969561400222564120463362777117728219832476168677225474795566671304899975656200712140595319876630749848998635820285507664525184657626410323086498813378125912898413762980340855857169972543815894028900078717768463484249176269693359156550499290999634272945196987000157525564054597731451491215461916256774673588554042090830381076578444678747057242816263251166787888917310202293316658962509638222095028715848300779222029835537568090131748309805962512472647239408472330360368335015839796860875649363517876832391572179943603784061185901223923832878339642914575816430135250862302261113427411907584409619561233938935957328145722128437715510397468229003423237068255155214241363973488585137442605287912210625138894538225370268238590423530402768539054251711201087620445309782873310231475947021852935441675226517199576268737712503844773311597385508785923152991147825013818519814159616273446355520864842013621403542202638601936914309625454170609264866692871786884604655242530916420041513412277597361472649668370882452526494357876538066102620967501400349014461807144071422815107758342548029611782868898426135551617130608127383242550570709484558576913163908252917301652307364679125073493302690901017763704037265562698675336578933685192453018823559942149968315504639051905893868233909818635802874406928715560502319086354208408507668164617875381527861303386547928421985631098152786912744217512699784052357960466112026461193901771841432846142460728040574806807542833472825682674004477472801726905452831051403380560878989417510596813569996802383756848033175118608578899474171961234546236827020743301571658757748893334293168397522686805607345489762660015876582002356178116277340587997589367035019329901749458247855477319247920916040217912668028226158827504447495185752480470259556134439952303659609600842412379758359282551644108153680230933988347913026475980231155242072537217857176846042797347063122736492643902041215000918196886335029820082230890695870551167794767525665726163002979726449180988911137298877538879324004966489644977052395535541297634335426582316977718783842441268925490070795626545533240930353890950902856259639790468218473117871107782715152319862048709509985295790959913890500786813772537029454620768060580241901503679612006904854980662426161994146719129423184210254258198283536294530745020066877197887613503704655512911292595729128826150955989347855451402220875531200936536995130317110285950536641839755502752055541713888347673755105245108584021672089786028407618425301034304538123901305357201457925634947412353376346579570620069828738876306991521235887361321440222111040977830898982952464382019644598111395376863776292074065578252126022166231747775184006591968835942794579484001619627935281494487597700614270529986044219120225057799455982387403481607197543595404097794471417731178075810479758182725993445667004004933213069375994003747295345597909199480985927368595660030811636192283118118943203100422052644568350973434516728703347995243836001846516631648342858738729347598471207932270178148165926797623132040850074152054270824479871364379375994196192578479329807223436104302114915837012544027492767985392931239966346687269649122347280155019520833215663382467527466089744333676077725168359735481188530096292554847135039035702084470870151822738281854732168345295663017610967264466231979091526126938711808459675013555810573690466161272105620751009037349124467308903081058701171107208404779385665055232982541713247245614990091139042812370469651643140825236018100862619985185752714063970677286194869975020549939170717766389114449816466936530349487857888579826741431604813960674777599768272238702078342417080978882560325348645421385765585212655413486106606085741981189100396748197476818932531137791559155132630878098636413445257074452736164422737562489839061131897816752147115737804050778940494366227906269032201976152965730579110077524050651793488364713442544781199503175698700599621366414145455306432748609889121121263260605783146132007102128233255378606760547942589922639730112901842759512928139955114794823678558196198444483423390977981804646820735173144134665556871059115939159749842507064938378092763240787634569797045434792632953692733301877874089228348112111455440914016850379343625678300595879608692361853933832694906301407831933494584920345561544283333003090209977863842030667992408659326900654003306930043501014448700894302508006165393765739824239416635149039904374351621639358799100427732568963801353108855796152222707503816639412069035859274301400661152985845119699328568808566300455026853302181759749069505953294745494243971864941030571417410144191949983011356220544925988868232473361206380865362702634551940544805480633542291636474327356696070855418517819997422045430051218094135639313071927030570531804918061496396373246553331230629930912686632820316614929812351393698176952582913437490551721296919142575721779291031132846096719809442073739475617483989462097623924094067044216460562695403079525846818476833390401576420845373907090211257494023234498076474333141269229009947134319338794234233432530423939397432727953565392069837801839499769680973313015540749326766359604940967168263080832061592127626347922111495720636305903901975554570614812163577744369378840440232886170624518303493427504651788046041729545104413621060525674866774627284684454903059149610390194594253987739602493155576430853947614150166442706991751934204519628817326823699796778935853212882206806750572241730698689305462947931143258636466949177880523290684156127921142270001022918150534363205640749839614112729917389488364907835930424480180404402055502814218383280152291900696131242754032310580009046458406196859489393266770723584793043763825794800605095373833163768018851262570545491710489235862014508361678725959694865818217488064653094984815717515318420791620440602878023154670951212636756389029520970586895298448781274355545869202020314011492938892875948763089653825621290537355065371565050990869961180809690904327794135925875954095380773600843486002266986399682177939254304336258924311298688357878056910321174043686887448048909103399949513342653216049548967412661187361750174083234994249376935951603609796846930359107963214296848527858025885405574168558712755556155019509657810757317237337318031407985145848005792731700438457285597747037186299173120489868938574662564521866020893858167407437318803058212186338106489162117139753513707478260597556443095496170977116422459798282791467670273455217305936394499960737482575735573905400844585203271199666280908041197345335815581431016369730041906033409927370842583678613883233844413969407421004434276901311137289722026952393705901497543524845071433175431622113209003446432948818485764460794120423944981659976960338479939578006220162690145195301350700670060064734958690630896263561377966553380439160659200306690251956030736930447955936881662907092660300831552226431957901555536577701595511158133489834457179202985280422384461168856003881221407789059829965116537869346613854535888198164809558816966156245790697819761574953933172161273971594687063291220570263196927600534914149651253807695415603610095292217416066821142169089177145584162319835665760072705468127475733818785727869699760806443529929752789611476592501828363927186085561624260565684431305486050502832041678888911028798112939842512190297427213097226059521544397321808575958663475205851511490214951682864714914716740402084348086496540214034113464215925491370032524991196377723351039126631789030286357068096331166334749767054431669812079030871485953254314146028985852829904925419287500832408597945873666820667340822021585722347074715669283907625252075950269640007311851586621017246182329645641485705093352999426723873863981329177784633723449010065271507130015507650910168750636069371324615783898008732607368948653215631818260425355167434092774648028498771759254474834979245800909364737503177475118739531156489834527119048460342089557697247998920442244198622737204050151669845402598243069682806251126680907358587426911922782411158094439365614095172383180474179045815252982067810879125913401173501052825151899841718252537314779004381171424079833527812786708334435650494428948615387602591272607036665200423013325293348484072841060510419194715916973150399978182592686203857816256399760274218042962011451505905038732905595508702330494709013916425242695797410046783907004296997166428077849669123903067529451719141173410698265173900931745377706365718343615308144506516579187954068987896356449119695870155467505370413149575621513825552748359435678756096777782559156488961194816943338847907509575588197549243219150673627417432565419371911152756258913169773059022969363648637231760746846171296699391460018397349294996902384533760508270401482792348004912424014722999903739216239081333992221009239794481479264627108693816752977064935621030999456750522956699651742791861815776690347421868592490429473399994758739212362259673101927272783564885998537925746471133902424125300984036331280644840653903004665679294303468743824036318720376019561255011113945378599768964743279029702248570546447534600441979322484914069797093392112125323827755225961369946923625522950566117409954336704904458394005229112880412471507210185431849594020751405944006169089783723937236848327560462222388766483195967058410604601727643134033324115216651226590446683194205633975269752719337652543535449903769681926236528523139064588078753132647908514624731000387541335467509836883422820950278165980541062867776624718860891011640317654649662009923288133032986373964363507762885263013612375733568393847358915305710464869467967304822039492643717134132900790630930113386898138116421030750254243939189890389179011619874726221678862696497035210469603457394310605799540889729216957084949838827567855358555975579709586756365161719685264884409780507679691571819389932092063557379078163636551651608586239383249792718799242344336036725346747045662881760493282876147482231085904040478104199056594562104408482117606106308084478197571218411052362683389164096397325744936502930427233218757517559550524308470800449491148834123488877705015915567546411423641667510564707375009380933425480216785982650920241201717390855999679593119214959252732875008306933216920829758823279058138987676171077521593049123155637683555450129664317882656287832734111186891971307773552708463020483031457361514240266957887250776958578822483983509283749726548503383834837045340463501958461546421844246613320450724587247876561446205839466223408351477302630604995839773968942039040662973832205481236158326883734141994740312102217500840445007223694890659211567147818896633503890594619499083010598730395882503576766830388667163545662529749280254057748031601764530661071898147887626483103422305458190482300874559398914637571901417927476737708825712126224773374826971209855700883835440768134639867343152634175099028314912829104876991444597087527543001443980274980233948151273759025946323400517301655426852531093996213296927192082682739316307860934710676354621760997106853338692224395369389592035705227803354577290246357148324390049702004575670382145444471819430456196984745723992849959291184825900366335455588016357869697382552481555535629092342167485923187482767092243722793400608643735445954755145153081659130546797488658588760161054569016968229075255271950826525219266080617586419605978179921020195995182733160425054080359259158243654054524662069611876900396478459906212740402114552618907865509290452220958723797170777595843444540370869643162248744932619011799518702458194127387620428349779927611432797526777924559095229812365739334031525819722067601164597575066732159061233084987242238255033402528038020592628497095026022951107199193756024664255740737181239977985641470516149305821899167375245413334751295413390774977210479231326054950261102902164917088394780712301839900876713453194430588708340769888039297787414857744335226116978427967590540489106242552924904892233217925312382985701001186811579693261870688801304886691702418425096641737906877242161582002976013500565118498603822855872321231404344755685408987148024880005945409377097282642196957432477627488091507983325797176054554448746670155517223173560481486784396215894204562313802556515825421860051193597668167886197771515275572610728936002238801910436475934697410102045759047214479616605960967799573689634596097285417959010332324469746076878195420703608403113477735204111974329431459812374129669106056953375479803853143777132123594371748927964110109032080986261711005935403259274726390102345032910880746853419608753295191399411568034126994571688971003731502899708523340657252683760518185469603494726718650650805894437485904574194127992619553083770391346262858884115041163810840614943645517724701367868128171185477607371783297863278775805954073612620249702835640407878995137760863643467269121513081530802296124087750207704045079196613342991909807537673394967377573770220065429517680369744625627800189220423181635668977094848032137797808654987488782972422099411443361009179706549723376712137472103019385562209852416991074945568981687301926246219099287478362003449257953168460303139478020633067274437406967168181817174791955526739377377429535120691706840705090035163894279910143180443970114506000435599876638900862144409056142975159364936144354187550248781736942899602350485862686633420642548902901465193756972662170702139872521480081741087211597084329143478093724254393569798543526424645494130187627313363749993656370038807297704386104280099880520855172638013153290528276914707474418486202261955326011584673781600441121120283245170588022798242965605722844599067410250408100526060239143995195768233182271942545169393217091864272065404711765111173676450201987871010450554058837239292310902837233901226276819870176761092695843469930386301035493222501435179783567812132451578830299010206554339609075419614833478914706914544837118815997881082648026269143561168158894307113782377675471298473546358212137405422982639984865359766601558537347665992241311170471315495845311623363656116238313853441574712631930633542746937224039359941747015416534208370672803839564793078671449816564512967640158229114841856368961627800555545077183071981881873681952168298040494286971176139827238815243183532626826886881946368646412382794333187099408742486163932099651142811324176423517840230904058556860982692700181127502285008726604561331505064530820329313038417651900620876476413340029185335403039856617103820599024316974052675377344512286614810557077619290301289989826055306037805892871065385562907089360452135593333823955661876517298196463181934246915136384339424099178531817595704049225420834101375650081544882577960290403177525143919845312276057516835763470204563171197531556370265541067265954077824973726793681904870908094108274051423959746371248591154562551744255765746973289438256253093790076242401304025218855422523819536650992099707133563891305196573509525878620891609924400738536626677929574913823806359163348089524101209902624935605324566520290887313857948131052355412803441718735230687294581077865498578547866813651468732386336533536663809629318481380042743596991750266155819818833666399930863098509983289745141735943299390392470820600359128966185708583209770325925767338756415873933954479759169605371585798882610224075192369495026521858344979248206457154832977038297562848355305305458002381074505410976412751221667872349838319576370060030665165662588528807810232771006381191984660577404371739480566749956061235353600693454785783435257392684955049204753765741756807106769146467792434091312999644584201194203019896457129920371849903798413153945656695974961543348139495086814411694866273682649783336855630264296136351059792366900238525720787188767828604936371394403692375795105183614170972126239927397039984269415002796227414605948302903890382303710951297930353183265047250672420952491067560853629323247636256975765719101625833422478841200038677917162809619046298700450342377361908988136758881072168600126948158674715658076130610804824723501713404655358753853930854871677588249684129252307624552829369567194527835792329162949749217119121244521135008772491834639533762216963264700315713934540167019875205177189766418291697540934633478402336910838621085875106341191281131857540675955874728383905175233164033166469088800944087609268950851092806816116351844310111323393498989091490967011491064622845690405794928364849116625082102658715990557575737304024046967915101314393391055960024126769481198326450030665319559960432874331119246485810625330818361950293539353535445716719273769108312416585207774332127803853577514189096821622659606181826787719167195279289384567081475744346607594746970038324230127783134647139362204023521247023225555404894591476208892886479520980850860599307107860356753556353140277565106540498782119335224444749195822057990198606924276315817781936948361395081152175191912770362833282985839337592179255473313199113279571914032913697781173725129626909417870174559397917193430601956096752942586061774568195147996378608987529804779413126002681090636501303104933348856892888662708715487802445478893060421331058172618232837143468884471487595884013372325995043051166479581518300550214565255846151597733963795909626444850822267981710023207236949810956436847161406343173158260974071700704701745397163957351631485521695700839712549943675888767614385804513021464987349339608904895549117738598098360452324000896099564674562240126999746677225983241031446224543558327638542400729973416488761780066444142371310542856412687151436669966940093200710430340416984761034940982336816951031665014579280852589941216379771684519247556650807457496436290507712306226324242323286685701639730819947646341875115117023267591617800176696343985368324077222734473246690791766030215409726460217031871071289750319793771110988061779361168997828385546080962322725684692077479239463194779836965828756658438186417520144209936269183596728479985890367720264803910961986245874587844938312288141887757245474433576399222869788061701339386798922589380666707300778163010279911646686096004370872642156892134190149415584563795496156072250628394675740410980265701633287629928091633558965330099373165275947762164073463450259857235838624651423811919047621395409519909620659735236320339187384574257303989918604707152381353606219369691863595683517891316671032049061164370943621258449956161892549103981879391914739032977329472481024325869679762600954339716302091368617803812730209613072736718354058561862455725162448268776358006160218646220250199371445596229685821733848394051794310725496421195748480501007169014946261435518927042062955464185225516782177562972472560388325228691441966516226024279352856386806193545204940030606396911828060990162588209783824336989363578084010311717787514541452159363851927330864630873016231162072985688718225760421544543533237733800627825149382553923901055336150772424951145446855329902666882582993690065578911440790473780228235204311911204412760938901811453075522446637139284772509087139955679693799687417534623593281110752968716850469309665493037995465794750489377784969341488677561094902173417932803685172366400043236814864644871907598721762269302880265499914743014268552696956966534487442099944552916711563183745794088201987128970700445440325606338973118910416641735183778175036111748274740600989932214859954200141055060094375957854107016897539164156508746667522428759095246867977608768842753101428441146680946620395254126164054114508171820881478705234038953948857407116291456948346213096208348319043359763134348787306024325112385873214155138778337132966212070221268644938500882023753283269255920898491361495195234671663869282765933200448481915243334094780634999278116981155657327937127893435334851867566235350031624148964435961134131317860749838838429894803282203228926237218637727896316413806480117883611822302481928335854912203768027068395056128585292730593549842432434040867355357506367502452682407063395063391671709039187888978157236852392071799985312646911352644929647423249108001396875948151033159905802544047971318044096826636204722212856780628376448763999734259472516700033666582335603879050696934994074695118522972139233047135570758225982240413683785180455914183845085292398420098306601633918021293201530300616625180612666280100778853955738958838063006876694781987679609876480603303591693607263734319266726969746828613249799626485185991023116780468298402954178481906980781297610254370309392609017325859835387102680146002643753413065557389839026053387289305015655526892239305461094694004490854073502819225346264983591359217912016122820758470150914573327055591335704815657433261995758011413052507226029772587332077487777482999205143506517536764134135701794906835444503358750868495401933304171738251267034030797176059397052291824953338017443908546462800858897725177019498002365982203446862779321857983158588855504022664706618366159519364452737434775504254791659754433475365777739998332021719944833631528637950243678042974613443135344222760825979042416034433743494223399377451830245537844879461687628979782041600159824350755304028493071578961509694006422330462709316469666126785816787567929052271241996515676662520157633413499736772418909483653246331983527727820157930674536924938129096104317769982668733176175313831844305676535622754623016942232092477032033118695591969177843763622734745222967489713267984969474269253042392924653944498549252637922440574065084124911738177092184306774156906520382933999811720846525725292775902503199466415808937398046574119610060369566180556699456450119474119101468110589802558952120847287557099603369491828725638264448185194519950894881430766258207972672009510910502583494276026352894076625100166575804799699330263994921494430131738390446861197350760286934061726897839658905385878888567307363124621136088718464203329346377834243701981031628367459719171592901353656142773620737874332978438020617943669602997372004756848509411871063826006005689950491372145590246469542586952988958702142051692944887585688985793608431822442423637171831054310680139537157252042362501893908162544781649327073369218554011436490846017245832465501327100353762351679687686326947111123930967087338351434773787982379111057572794635519272576343770048954130042333546961103165737864865977684394204624339558875481953303213030292743075520250391569064309412840839543398524930008733951926967125001933542603915195183692112992504386812968378217102907722165036853322761379716409226471457998269955140202959042222583759470104644099960388046452293635272586897076054077391489572374957758833840099520050393582447178613709443662074945410429442676148153762986753184376591282882727559394298094670845336781273717258829152337647034358451356744115521955834727050097121319856820621061626136936837979874085771188225253563907011501169079489864279917735684957900993715598034357128609056182595366734741455661650797135254173261225830569076214831086005748842850726655061057593045357102143688216673137419678273498300497699522733429027141969404922055624901539438195729129187193132865950905302480414429347773691698151283360944152599391260197736974461627161601907900468106844573066852585250777352460816719739046166188724802717980799521255050308629591636128899335690492027265093059889573696723218588987008247817775383303350531377459390681363002349566071639636643352010056064314888911362501026137719034882615383535111270859609467889940325257732899917470790794497979131271607890184238554588272881308965683167010497823054541807081027515982714860879929393231528778479303110573604419362950989290694326595094609507718731989926564064183581018625391226994644972599312774938410315428256739204281501284451652125024914284793732227039846211023939353235465061828770356952934499055964540482609030353388269023267407255727595705902788806552659713042742586423371754241339167021341583320466784649094992496191097131416433852309233934005881097345495000918278229409481144161299492428113149915110932121437813489604713946699076631348619572712703644371595298151486817438264195479826012014225417025841691325185543375869770718608611810128869313759771669745639299364447073878517645027232735208474426231060636289060535973042879307806096311607081978710715222024944028479526406383137287037439916581529989381500237472782951642551676385927652564124428589992180234866135126580909187664241118879583587613421559567162854358676431033394511845326404305130003868496619241947453417405263631901468287705786969825293963893471775718697958835549154817354930624826228739357680496789937726748585065704098839743618855626779014609341763600381838866056649593189179553611769379622390672834207848015160933510870355949031338846587688976874375968946076550419261852086937611425578053902443142877131550388919234252957838684076749874004734576405722174477731436079211984314539098541616888702888121423986424780366157993797355326323282283845882507534043477636797765370116736710052977412962492701685827218954967993353556970929412010528234655914026639245450506786884429937109494814039207286757556915142817800514676752533192638345573693940596098650907221537787831114006179415893282331245626778704577315236433388734351947068620126894674974964269891055772235278856179936396555274042747379371949508934411620923176270604335064050177061412098467848786710793690311885775504583803593065802609900994664301121945575219176950394674503835420782872439209270706386956728120647039914943497249835991234016186888559929672788360983971644140985444772554198320081046073562888788717433649921649157925339261554314361604709594019589722706664151501927309131217093852602303955798413982560157689422915049251699869168174666169921917028053604092346125899824278794871102456149068393882397371859762142707322699685707930559762514183901681001338991693469710197189742371110794981281152831101255206692734272592469906372856319045525270525054437870679083162348519662418532813434975843103122769799558050924682232229493532852467311275849718707084864146408900596773394427444257831268884289243139779497412836938738338568775589649529855680822833584591188316718646762026536726125990851424694277853683214568189563541433233842770993519313195955450819560474061272542565687278441567566877431877213537785614956044414190581345854773103583089951628527016906960788134319968409300239781532014284672593918887535402142447001692277365029598722195013581696307103127241914352271222275216677938281217000152430622109815175068708869427855933779985130354033574299908112397702349520437607043908704995330303843330554025880474591096587177642728387666411051595486584414528077920367052527748016808034803156942078205752396285678398203975699744833019270556933537114075457518407198275013116803977053794699271643532279881887796096084139805373611948576475991546684714148824583435988803149490637202745736138205829349652694096091309700093607806495416710004210551564831002962305339358697813494758185822018505729477753805635970752779686902698488902544912106461991402624950938115196733026041813952980103814489573117880918450610844877502028485122000322858070594561793994380395370711922723536742152832781074106024974647539826679740298936952914216568714496344258685032233534483417997415403531921315045346791143012804068683152547812035703517516305469828514345365410639863203015586166050978445991104370152470865280562308580058566463359266031983325925111515570105015537747257854652109618164532747073491087454981960598859459273993684646217636468966249608538766539307143941375241299689264682990735083467663746619639272533604305128474905461376838319918629445110677988769500453715565760996149515819807811793367779917880362547509126806343676996482703175708571243003702882059597016796479092952426804497243309885402813866250143687459973351832335077081872418470098562796905306712817091213450250029731809146565302816284238165493316625957906360783414158656186018043905124972923154258676017054771030361988270916729132591839649020684048848722802548621124528767553073583112492647814891679378279001835508094388608072226988304226974664635394255157914598604000633639636949992501707360388586365587066361317798329999466429804232021084805591463879545602112103893571847923213706390896784417888006006424072212161733541055506122516332277325864588368339651260673458942589190650156516983119654051540910181801892181698642436531115864966249018650356263070898502617699566830422923256960629475036150187864613387970234721469947993447102121983357778419807195660978745144418321723884100009693735685940509654763448205549940747324170545593928677681536971663952696842938543124573095545417054685359075821924898097685650491099347699652155066129855782553286182296076919881736767260477723021390996475434473714421126436744502896338809595528201128072618738667051702784223226904249670112656957448571982924067041840604201038337565397508106441774523469319045598055514209166617308449434248669377616268577062532020070688664817004180769537065382858710181583199666937616145033939413462783127143001235416688907263819125116373041780880917608277244276510670953437237700196413640173139866355662173223222085339541681691722521820509479931241967565127232473726536450437989250012830065153891517789151532023703224448661886567411319406738811513477224089531563560801424561525704463342685016992303986760699398998424159530899525378258399026908125777595732240285537127138998524357901917183617461051474457981568758248822178146533872881252024638439039411589518482875929847992553985468421855258430361591720332686297410254103621985699518628365066878404182591079765749064643880130567032038945249425802087073291451019310202642153131075573881713924072225277016769108625230512893509980532563261561013283123597595451896483677447523552871784542213593781953407663946444022135820415328669539706672742745531595977277883533693563872894873173396843234559706714991700269196259800504554656342898239451524136771635523333277069904876263379749658882443787731462215895323232750180232901215317891161305969214235308675682777258590320372070974196311200523043757544262654558391360371826658819487752335249095857901068807764887485975175618034241091378716682412785083776828604767932873724345038031543978603957076232421970320651571594133641788062026415360857804622253491300001363509273135770169819108171748470250033873965764317781490458285752141120254829989886725149826327963538909286024791161782760108622809752698433744033363391305320414142620776950562360686863970690704168392513900178228138736189881320819670436862477040000347380711001465344180261131616249753187815386077410117537467174006305135441647651518572831265114500899927215809010492043074055348857535430366067229560497155107077361562201117329712793410135548239612604269481045744136502211911586674261892286729257320418708664251342257468071068554415716858157758611735547094606489773179454678609797321821846916396072513799382977530404677834674483991450025948347927317112538585985046906956369490842641408174346642494917452762079972620602509085062347556928312782078773294481379503228300738606299421066126866762598152912135108008071806780488455860416196971262870928251489923343201925906861823722529710994072569576077351080166975220535588795086748724801352478057672768573496337271269065196269307355853412236741994087612077765219748262303390976427721022646550338931375600248176058131107642686605130721450823831721242678912055157249091773450733964419866043785662509639799909246873722360926062420489561891537305401536154626621324799659791179550789283959704194113453876770633816586127841330198910121497075423045305388682701803281583782647960318764182384901614737969571123494934740914994889492029631482476728349198276734060262879373337377575285758396753824340593887549719622161193125975680598046080908610633552533355736832234661704283883541086171580474562919372940929443210777950745497872593582919258585169488835617796326937524274572524891713840474770540275708661219307244456860635995234832680698560834461568919500243693627437646095190730338608328881554755324317712570758028983144142142407092101731114208481289379726209289092548562074288041819708009237574496054120433057797348412796574096897759958617081525425725182104726058722276876988568044964763527469455856250554319407579622091637769544266786213666179324078891026854397263945136029754983546383041581823333340614132625370176516784725665393571586219034404231193508044053568596153677120870340638850421300709491625637809028193707130827467433821105700374753591509324035873946735462453582907805269278990731857070785735178670566810499775239912413040470332636079845612504946599810751766169682913797378541079617222085684461378498643494704730634986898894752769601643909519941293467295146361874100958885530178035141433871940774446410639995400784521001210994439466783932508439783039721426694460573209727359235745345414633969520925026064445606677733924173430340204798836622356979324849491863631208772084199255729163612261436035967206306050974423200201478125948433290028089055787639792476571195989037231204548009089033659768585670005689572089830358096969845856336039108508639063324076957861520168983755433266197978470082891406236447170101800176156791849849971414319843261201201171553082760523308423606080782736369786001663177935495267750914747772200350480300687330045703011197240591664946186063819407253800354859933975499115031835525908307362398718121418263554533278575628728619518794581759784400686153816023635550553563322978473439455794464241038013301174003020746433582186645399217978988124256521804963994644541568178059619828673236304600782884007822653948464496699655947917613145891682143183440789513271940880904859812300008103221901575015976742775363776352935323674666993406117465827232439676373139853361343982253351946352001317112501178081891021644211822440499707782000495485176093359595335357273838061620273966008746212118344472712307899078686829548914823034189951246521539712497123537855296912160873051251891536538975952256312297730166036956317990361348450232760347629491603929589163115091042900857068520471884687977092573169789470144208006399438773753610783758828794623583069624692877611341525717078302637084641061611436763706369555857322299255918453177504320899368235409524710152161300356740121160798859151338735855180082570402802612038059470944667191694899079291074502304408163413860325892178398236556847088406917824249710680550499486134140823181338826171780881499909037521060376704491432076038410592221551070680205951326325445420848241822344551377983975491504241647343703141038610113502365752214229027046957696302687849035269781606891258420390170074954675119846276518912836499097629187680748493684942955225444396496119162164584501841361976236014554022525855631299723514335446133889155536648831222143844124915251885453256060742046163506210208162500266099622350179741861182274220970187854236050183053056142526699170353959723289420142894678710030955877700312620834647440741883233155148533178237777308100304833788431882439897393401102683509757002642374179349360913389555731579354985236598267514817838608782926948053296122144388752925508382226718824996318348830548039442020436995229741286591711852824262522132327178012848103855394414231222102927726238009963155435067343589771676803268526923841774286547341951089357564933028570277208992204034381147089856520349475977589700596819435455436469866045605294465088894178708827627975636703184892388922017575711686797593785065458787247135950386501354448201889349581552441211511194955552872681054661400774829265653740451593848152055293261008133506309467671221280000499849422456891199466235998595073818742091501418174170661054139757473634310660844837619552765133590606282356926145116031152918052351196171033954120295029972721067803843294889369350759105593935485276679857492352914912654860169976699083487670175746168164845360722126139218048222255850852333082601487763083798995168267979658547821135582612076445197256391827152778139591927331751643769899302645585388696229237061179240130165653440498263573884311870944639017483782445899031173874754544426386023575931520458648729326109373511276069251799612776652232640995670448342063345350436007168445122738744976173346477194473273245172788724685971190710106101956968897884684750735850983092147342267795453090669579538052768132078533439880834280643387972151300739928657081705738560382510180245790528947088087318629958545245304730180131512489071773070652968670916660352321778826939340272623840192748211031556502305069689868064997044098344345159611817175417974018192070863808187582059779594845126962982033196863735087539316482252307313924021943940496122944248067108045338425486055883773473085870513489332485805533594443970104576634665484472062115802516602277143986377757798240213097885427294534463582234183390786916794679875931191095586170430616122954939972281159290086285421899565446820916757934969787276181193891622170010294831098803755393453318407902548653633507089158584146452392763139349767456038983470720418641998147941818929775523180377735246302901103840872241623768077273270992895414998645031834523469305991713992819015678386938176100440353701218559987996964224980424620081378693893780550878650906444389364524383835606289794213789863525668436353923570426056545649953529813577062232006276038482269746644310365071154104678982958937888954783131366026561404196435686624879768527891561344693671779017191373479381073287218642726841719364755332184135713856466009208120379967570622062067126088328331041190467575905394214891712375388538922908386638332506743734056600337707166270344512841098621553134082473947043889765206087298743325699433424732472042892063263018591548857995101687515840802621171866829511658228189372960026578745872729770059016761767333111609809991536127121659835576155819809078522544431280972827882062502025069600880473402243524293576275142633132407350511751200128184485385471526394691858193633737569453341994548674546587638543146216918241549043565598317165328955399598047668916692834659474564794489566786265815942957092725726571185690243197870373722482206139798448161425745707721116762992152758586236090824643083178054925383869361557871919193200477753501182826820316796475775535779617820386244154358971660040801778156184221521662768979167453098751984042086996045676448918429796905174072833328737487114095994456818014539398308242359343365000208342432427986424434644599455486167906974046352827262739999713567653482048169947756985827331886906726914220497796490581411207315348947964735819487632459321803070736237641045422943906150767094936300746057466881570756672040547225398608889873330784362633572552958734739240612971176191024579310633695161613436050957448955110129697306304562384022162916057241279268034780013509441416150084013006363194922934075767977188304976346437727833744803626533176882356637599173804484215291842587139323591893080322533763053972617985820188311650466112243554816218856406205478586072487680509949183730596355652862238562720822787589687480127342435149208437911472742143170962750051543094362462104235241556526814373840906027020734409509965688092891868421357060133011668795725741981633687449781671439149273342665408593148906871783747154495542866681058548659444436514907875334132838737403759114018776025321519289125147306733612005090305837018910620150760391859660947690441872274421311643666607347740810834971183106538806098616173702060901606120292729107912507034385535246180763752861294471094536111577721706215062283533970780580650721633956822296450971693437773952423627664987919456641090412262654271127804414357285186593556810636858493383840373870780321273349850652199095786651309523788402144515516563135961974813516642567878874032201902815876394052979416349678192475642424848208976624405124946474790396512115452767290990561253923315113140924338271040407285444158821920523767673589648550806522790394674802885956769055298179568737024561573189577301821575740065642474716847981763902548463567393978580914287481137008500423757264652126860070233242789110509137311035272509518165649166658848534654712098034012783891195656545812613096219382007435006789422269472530256083280456789539110502560705460535152828133511622701569386637326755573162099596158825770992451700517416306054939870216997292596588460842181653101953306506613495615017357464148868259316242492098396693589730514864102850782801233157023461690634997653401449262208375428818476518166989247211970450380935137624370812917351806636480311287943867833261780931296190310525662389416256434499787591972026344764188837850969831845262073916489592772126554216048134533314032766820804332389029876029463296837852181838885838747586206658910507697401500616503231960880469724689533587007500280611834400693662409773094728904675241693294226385381577680865056898417316422991463450220331039738438866282663705264606863311099628134564454807823992505888547471573713238128580740284144764049995764770658321696469527322931685111913258856473586937262944411896900021318484325007545564545154682344946734039695550917458764959992842374231111212933573932627323324666529172300025892033805744303998298138603414222829600851992076993336506425308835157672830987163340792726231933036040268767784715273870360994731812850727586799906399649766901795880372530764397035520808675447373220892942856455473004524417392778727189095041267915146625646493961949396761625967429147219043063784217781003380288805420231644644077544379773142731962488006579548249339569627795467379833383266127013116024087187078227820164223152092516022356106223272895198610547603062953922243070258547017531806508351338100956249698256124661632791030944416332670468850905766652995450563145719921790812600495036846662563359214977950116076324976952008865703389355608107330819519465962357377133719914115167582797998939098865713543538316683233635637832224897438138203537558625032115536780732283606478901327384000079588202212146711332980722666412761175043097723478549175433333747430565270749444095720864161398807770905490590240514128649838601350697190605465883035900552498874457096254756246346221041848553261767765405337078384474215359298525269303427871157704997007919574607613572934590925851968405838820290000506899150385856422683002939347001300811407203539990359630335559026216443852549124365879460842769914489686111227078211098899071376235300675600219374258719007910591431114165743883271800562753942403422548873508723785927258098387718107100598986026722899091559095636526838791987597755958445558075928877669263846259670298665731022457449596968101923583576311097591372633287708144531567697097196459890849618267419914403231009424854501294724992644783098190415614587421054388698741824101768129725245093453723766723039964268035625082326747801627812709356248418399419935817086266781900719129893596830203340307110605338681615031563903486722024290388754511205677304033237779745920940124376310618524484989822660073496838588226262028173730972733503225229865421042895866223228082839121336007470086821890897762658621990428845692051239122381075141849115829803000912742340414330517197182593287104689501709859002040330090973158058388146853481790398402060826417197290730671986392109367896005950813998157144147320451318608484349007448218780764414575091631052400279626760265112730752858994213983414567146778241822158389567021974653104979279334922612915226930422960131996459098396876544460422249549274409873655641741822345741094199556213900917762814647037488484419872122902212289369197640880129332006241263859867578227735900529474648018512186628882884523507923005520247435160528401705421789216452665880907841865012601675379452209306319654023659550509076754331670987588155221019325654744200531626119507373904073734252217746294536975652811744970424011696931331348813098617606894391625564149040360952730753954677715995723300426562786825920105060087458916701068874349668653553958780232624561746034630036445848323835679684655298533313242080558492132936912464688256367462438736999050075936204087879152101933820394257052085823138207022495982889300136347808770881062612298338855174338905499148299961946366672403061209532340350647308555648690342700822644925364263771325542312335129795989286379068848981367610243849754479470823127498818656679283510047105560572998423921845644544120394918113773882725761593058165818796582113524470290112756273014376002867016023230249035682480034676435988281007246226878308183881349274264947985307676175395342452135520117787112966585918783561575981261105389210354168446763956787789088875852824586798686549543922726879169777335606983295259576604437589030362996717846410492673538736970056780376953219209636860011879370272420212902561181616180807001008636501848730717519904855551420271283779445977933891074927113505774508267229930264260871046054109113898881014271704400479395767054991190833244113462584780185617613115783451580122823965986428769293942551642265078467342942217804344079793771958494170711908163105230138963726610506590413369398273270962699202039589568674586477936599691157245097636506860451761870456814511898504962152828413816752411127025196961254397679224079357335972051297539971574288680322780421606460130399374967361682588936650877997839618192496793520751484664387014609422340823740498602642580002609803317919393341351296600315966178549686205237929238381584724554622453337403257968366965058820720811622284184858606934910952356355959293158224179797515849691312860842724391395456762195820423742577919578179383615031509538252637135077663607443795579336176419520330368674865671095778214673062476871795568714393783792841185594375965604938352871943825775503632969697479061312720126679918952200335802937168218970291908194767868850483146842082098659435807997690192270003413897126569628282150883810875427294798531057354846050976934077483996904497757061988900210235374995892719979062906576362257980785246658118224760598890730247110303705692489400526269446028478994632051545431276272682002608989274207302454235486136187338520212393120460517445352207827930739165042925351602223421783191937416143657417101379543352478761867962342639019410139856236603718072613795017409191479168821813477105392158683548198459814793784551039747005983616670807912409220140388385559978139749154939894535452367599796864102164402037641528581049712425441587821927466341735754934705587701387743730591781010243487304509392631961821372673062443491250803053584001192732528265004022081633040022126392165087636923561239498719051050192035997166613263481282283100465754256491036560513768470253103258294977030255324151645394317322605200342747410620818689884247098077674526974001635369816396251638556458471947121345890437427893095542207169034017068887469993046677068837089348551860657093276222455856429421693013187973045568477579628459388442721935253870813535967111888319023800759590530874376966961346259120723252534455770784230322499961697120028750112475540594561469859926466914943506212663027499298866898044376168765176781605468695297010120608000127345934241380795637151251004687846763628772477455672803043136202170781803941608416296176222561502282601854128870307700676364401380133855182622273606664889277324273069602264500829202081419327238219323072181817006862638512230385113539509578882563505431864214846739706566027640542053056633655192179270135152107903263898836051529074897871686501334356951418001280244389788954690082783064055554413181336737943552449913460446671359965089576658561835796364539063678687730497859122668380653437119124551936963677772074885555050555076319585636609152999828830805287443494212836435743474254610117769710508282894199648770130657496619623089527270703424768785029923900367110084323176520862244902193987513034779141835540239371622620007178206619296535611237065531741815494671768995765512408604408531556032956967630384951157235459346830363124178685611454796905395515946366252135266958088438989802236899902895850027166345744976652273066159575865591348665843537870532655944932203835533311045109092140903069283106231972555568877109440431903651033038193631852880584467027772062454592405502059891874713720298868761667720877999599828967295768990890010283257076213179915003740795036838454236953792172691512536335283278582991293205274523434537619106210575322045970054612798072725435023834363838082211804571391249324926651338247175020607153167263144770242668622377674337190945004071414434576089203348449236321114447514162642471529415627154672163758935360113448174102447862482795325650797128859598879252675934759004143831095283854880786218355583520433657059664872963040291800138533557713957854835541720351488791283452722360046770665550360430350494155476613936386881161796983957993136781506661727076409441250749529858002554370470611862633196475404724907610463979137127758712872720394035725280663014895720477997275845620543521972834378980909102603637606011923441315189788433539493091291119665372925556444826575034259613317475607163499158157595613471132406243959375751626229409041741535728363822747585258437653359511204497443312638678074274863639536841725318575452797721587830720268344887720269734730381348296055367890179550300687893098569863732852233255887855601603820042138332328963344639294375175217894103028289241693855036042457700882124171663337366151912369733193198746802261798029236392480781711216263147485077668143476914132001670907349826813866276589747459352115902009590612185118449415329766640808645056904323974274206160954763562923436431008618005512671290875441633788297490388456821836126265971141465668438077979032471958176340339146796635772722091375563861873233319024001826062840161009070162583218336320121555664863843473945416867999677925449397287870474106074093855429464811180640919681771132078406463928568406698605533710936544318451587734510581302441658248395834894339414406138574973938362486444588439433350317247591400073922324718866467812393304602054618628985190710759422363368248376999599262331048055363728262846525166800609270557464955675486700056935098059965009738826816625844172807703287853535590602596698316581310325276168335326334750783443702350239418978801137370561578849656272877170339415202059063159196412370622616249736987488243875351426840950568158986151108869443872548307247040166333835428934473326039797391916021201963943135587998338201441647820098718820605051630322024799517224274885546760875300008703745695452715074542625162332699431299220172425157734186548683507373739008876933663187530217214664045676827199259484503052204295649574670977835937024014332372470302934935436434038921771920307645405157402487634857569170664024662042520876465711537046627883033554853370238513817112538915261139929399216867983144952915210549008507665414980157477382711938652559354189503399668664881859559956659324101598823199569055206385121059897410599148580885090234273562924037038866458276880344844048638657659252362775234645693086554948353777622409971434946822704426177197994969512102707880742068290476444043632739669080690411078277895552374482424000932454939238876019387230433324961044302639645984794687758281104363712849319324676811104823666036028183263955288013719098215164806964416103965731903184174428347249097570057981505614528578967487232280667697898592442215864940970352238084789523402021286643055873848828443929188827217623580034955222496470195647165557685349901397258282961660717991701819582923756405205274512802322305281014199772982812148985944522338786236964986870827317361620456958839356258628942002715363580236317605700300358492152709668564091891738130012710120792602387531081362895846538881193043152483863433983805445524746705172180388203240792352149714028046369716177568769850662968546177180119087532990303081683947546557256831566790496911861781484886313888761532829440478772050359259960160302558496743744684681438208202228861408600135104781880822516330846164927426288376204830753141868631749291933324737799649747623990836141384336362995495121775381808258679136559757314300921823918461900469038137443489118063329687198300365683188388624290360075166776632244122127656767316529082210047052056184417577268814546522091675822218555833948010811918618580205581885533179556954494422206445697936725123214082950625677815162522290351277201321185662748985945301618310382079880906996122017728942579998190951032383639162892961849413081690461685309834884769500953982650577347803629790152702284580749095596838595601293815814023204398365313718891724137047076013698260592697343779444193572886795603704449452614575774195528051881622462390576611046236333185796191795663814553313579581229971397726794608368230523654057575859016068698729300019361144940680641206586319362958578097628571593764092356851530088371543078130302496593012608688179831106299460154872666265930087034303451146507797235820611957897828025932462394177787259613198863153325714149585719389320616256710613452263178259759382473481620968473279622415259732558117687081767962785292287809028524846710219164274084142010335595927129830562092263490600058068722830893358562799371043940037930254321631370140961440289757820021633893785204596860934965585610765014680991589188189380249084841818992996137512474659080412543023070749555076214646819678478061405394390964858106583732313754186269851129532957186297324704464696418827153286692879144565211580754388132705664103424331763501371709734593632160091159683663455544631165920203461984395807462716926680782504533480122273384089541867509434672620258838237953426046388003064162932027871307606261774982275857080468942748975802764021826210900551179632170744495974642352074562985928444130243566231738156085251670046544096361416801328750850938281598301973147768133273449708725488540159628349913866301023479017840174103789991266156103773414916494337880489221909312071638784135849451961360266024245902252687940627505926064789729305933696252595927591562609196366043763627097523457583005455990038895034731659013530047245206619985919614246091228270051835037505279117300562480137710352228673400487688950354193496291420973315681712792589267731038655425457499136805252492113465229843519696632672460758472679563610517116871674240246240986060696486011732211931594859472296724635202539880510110264790598562035016095718456256386054191433423117678871888232126500344833652245953207470737228412712746107841257018282698648215224965533357076897974849901066661573042225072718362686659906923252444866826489857069694184361662049624773529356106893833479980920527275757735642429563313059542119721544120540161897802156838943118068904463008049301148637063862351266899927249162272338698833861240205265954139249532765015053150184235190258802778596188928783769596844448319663723697226359682522153925443421527682733394385963635414890433246981731590823315916583184327642807001471120511971824483482834929609795017421831329438552104378855084487469142947286223559341047610426888478647510662474063369382585567442256629354373829015650846251041385617070063623805569899825247654676022864312254838941231126745741942023406488860372935803164335518534565270271501699397613800028191919017225578110321248962705405544757107070989775204791825465050993456686205850576438100099034744197383379481055727421320401135147325137705494832946367038019125937125332372831665596260062128842927669822920419509829996195195231739241775177940036605433369002557922033258749282910262236825748097351634735205028681003367439327306070482618714463986097861377525163472090128626840706075297143150401935327793500222772815178899503973363440872792312467754987140746717231179152277621168511476698799217985974250876335130053730039864079669346953914990702445125273162525756970423356109838713926873430414677430372566833899586357938196533537173418508965386668309913317364385272433382046582169742821354238248076085080999835431698771388654618543042414933025937556861496609177141766353349554510356722388349524067325926330327221382455550865385635197444693680782488406384449355872706653898845883561680131711192893273488343712692092423280563524482486089892183431433443999886404163488172086728927392485030480094222755852708019308266070003665115173556863903530044103442779297678263458684391817439841477855858964266432500015345113978936199381184044143316974343964638742050834282048819497429765565697478013599976177173337895553750889315011456929014914505988773675446511789571069845972472492800595374843893671857402275773938480119692733990107347592529186231899277343323199214875700514860430245107445781643729706159569988271431986561273750131673190397306798250093232059926846462794817031608711239694197711203486310609260495285463158437778076695668449426956374809926639918096720681399065012116573058731213749352779979284737785970824638328745991357054824795179445152132650875901597657831652511654479541018600851321520359006774961542291277477789598111924104901377390873754171865053707553209061245064707612285248424836394221742709432750920935793028164671278423639583063626223771496960043886926434686840070002851530569571262464285610697777186254230789621925418482000511245677390787019797447235824053789412435051881224278403157706493696667875486652512930753545805052597932167237033310478178194972575499149477496326150090009851298040291044538878769658838768410386006126552556889344296798849391079851007473716661899502677339375645257222615686262561571908047115374484955693388551522579333970628784914867927154313532591264297181474113633374778545541898587853822540306656769911936430837459920850421297417629187603443194890382340138526927890623753929952172001042145966774106298033441029127556641123618865855812215442586678304057330202888464161088610234633951760900391559261670715510981485099976126316415106245675823978122783042090117689390871053535648436744947807850813882620515891116692326879430024433413161249786964773735228745769696705894116985538275582309045021013821668342269727694368158527395264809262882349537822352058432386869208762431270014455459364296325593570158700416104500053503870078172572544593736700722271057589127290234059659926682803190693088875988343786073739130708783409462338787036357463142324176320548417831850890169862480658726485562413594070355136807878960427235411020615711427714134811923637448662103197315557799668700079369004379410192128334819540833795718521567696560186834301406129998998542867884675298045936806076822557113494648538966926940970057791285832497690230726205088955632291397194573727980581517420804507666607852488507768232477232768775545926030943643322309472243971315102386630761300144420270597352267875870931356976891763451790964192626064119892375911574350234444051097121169044052664169273112898018341494433345548217144424508026011359199888325032890588271275381273027162984025188986765168109292346084252360995857604303349834284760585835481866647022119258972546093368439853026158643507211931377489265812862948664236561400002375830236595474839114039442183985165321749915329349261601004052990410526966445299689463594679630292768861708270040121537443651111876516718613428939972507309223751871460726501669592411974983910633664501644121423691516157652562424798613644279326068923779153983014086562187723098552769070726441985288494510999097492829799264367965948532115133784937760581773830263208197143656719062592438328343917086015551519925080310150605713880200722353897819412414318743562081744487496354825684103042692581961480437057688033299994135975051981010241891046591343735960797245544674479889755999625606263605251540962156738313121764822262792975013862071100233865523404059984686389518270111194977174603763604217765557179793434356202610285841850614788461896168171539803049269598369363997626520525361533649703227248779070383094794271004150935264121120690211323476803731954479778829705135566018499648938240145033957600629690507580373325879688572699952798117420288455422945209421791788386381970418152778371263082809339488910770923249078390329096442203195755629250142713275279190871879551528070410187679956941698123598020851456641666356330961617766372263072979725833498983224058816085186001680490407773247737959655305081884988194331362530180001686535134472332404554266261932832837241410216405158216748573761876366461228976585172197611117735508079808381580597182792274932517243504491605311876840502125102445794158921119656627657285189314900488299020207103259060750743336964386986818569017706092173204458939617202270822849517280336637466613151717393562322395522943304228034474640167883653389262228041451559170436025051802811784764243018731282766686307614620345619032310464165373512988176991263299674316476523634534608622083538726855015748014880066531545930740170742669194702867614644196097589657275681037846351075163719146310246101522201966515502908770776345805864666342427411908987975228233392007371298054868555459753967128421258850095774922541286920894120692386705262113141185157912131371156432184874799003365787878309293780292846268023762481142790614710970987041339508249435608333774667199225558532089887231838124590579614418990212680099439717640343543506049674510146120456709767592557086490437139534702043679921994676721679664534725833099306751407275699149668635933516674094771079810585825106086898613361245996222784969851155924916188820437881803189802482362125754889702553812760036859570556649060396873321556365084350377469474225338786149469497439579015522187339034201172971183521527267977562587676143662156194800994022185803994430438549479063112476098435399888128362378344169776635270030723147457211518166498509314370964586535776660443969988202180145002495330696625811458079650525812886758947706276262728263031712244370774190782119695212037572972209395686040206918555057215571465436409673750017692034662891497336811842156960777090974298758792106626567045993203852239837783002376549398788192937679200127229405491474344495833572138936688134538779532366825699211636733948044991910517448852889010791654076154702986923022404910871030987931011345644928121004221907188881578173123319508242154271439316216531296977738003866497772538746677549261803820649621138897438135242851776862848374907837383972310371490118191194450418258892941931314470865432066248215646699391210352299498891833933071447426113923115440111849687032352939574478663579288006084232874316283559558098863778105250580627281080758422685710925035275912589842067454235606090181010294711189351924913408537324592299800632638256988373624598966845525304282685328187359140244905835332526858781892705907598053579371341630506761840196426429499617615197369180439892246159178705064716314627004272425976225218935910754667859903816523029965446708572621329883984660300224162386285010176331001209075956998854086333742150869838384382807472618776727632554035296096807149976890596233703360484664791167188696972976607487519291222375164413166295342185642768519608240260984940224744569324542442260954671494221173553747306187902568278028416886369046640025146170567035594059515523679057322491744060662641469378692867495098598905522466325756290238665695720817610089573463129285666609695581813453525763673761692836486185854099711590403780737341452090218638911051071203644440138062045542809182408275384314386842385738002795947107809144155467985962498957856449107337550067429988054827463770844307387380843896412630668562839130295773582168695801732173201113715598475973278927478245882469631973797371387138644686834191596160450396073038184921092021440276854604232682970549923472771108944302029827561737962262616212114477614394956241723700003285491187397168390370258592990737750852029241441000507818061672374571531092840623028066443959812770355891010017907038502180352309442005826926177303473916329455697289547589577678600962169797578753906735514433011287271380444918231043903050470864727019954053820653396132520652850015971433648891337524188340121016501061986362978430916344285196118946316237007390035110883130713067585226621786815952300114378753264836194346219525519722230333898116694562091869869286548916730719659037392396255657651827617345914221013538501910755022741111923974121610972787666587591676879783331705680308421993569824018584927892624048204053302259720766140336020838289343675408679607846298380381001719971981534342762301696218994490900034247979873727710597211042233182949787685333567445412558550751449896751703767429615584210582407150455185478904452253847081447275094035960139144388223788602986280770240545715117509696278082389901744886690215273147728441277148715634128231678128543899292287111923647481129648657688900238760984311446943634243039952257348839545148056327015675281178768393500209305136473787415333658204321510459148455961401893528719811579294750741734401855390620223041944885818055896076543492466510554393449572648384439284564268352837814379172776659629221155334114205329242312014809377133359953646574151556376357346246886059473664333154230720860834642611156233487587747644615010759222239936102716769928801340498890487612073369737635618270579413585432586058697977344443837524772644421364854893473509351811448441792768095680545349839641186780304574277779522987829975113771894603672932034190316027732528442540839562835540941560078802263781606844227084145049101723811309925231293129966133311101255155525386659834685540773674968984392267192668933212136494953348274273179152284229232331386970057575132630258930586182691939294869936366896190706118690381405514430728224584073989641602788993600829341910313260217776030938213699893424333971030292381346377497706202475190731165871868328162003799539534037454507054304163129899455773606107461775352337438610071410306820494289115282577137934133401498814321929853525924294105446531687526550296952394410045428159764629143335516328805079332781627655994581896478130735744629650004772345528395013185912942403801454391285115393608626920449337965422065436209524061922353803317954140340386968979722552235250090665439526094840521088649467052239518161128215261385504102244942691467808247367826030062981412385009758997151507451177261424169734582185616505333279706758519712043212526915129976483006785306276410492325699119265448595629062978364441458906123228533997958273078771143324243273526024393477859502214463643560480511962424653573110339623488948300459498164161851224974818352454183138174426172694972374819633598564666801493612530535657045307636249602387957532289266798078264370603590149287771566546075818823692253425956436754936969460660942144331614404784632289962934019542335909849866914688134520498060715419127276217885926993300426637816942877701382362739559622597402481241173301672120000699864753393829846586732923845330431361480777624437396261762971731057560578365951608895474654303781661872662293619997260006448217468219645022558535373769187347198147523053507244749154775557258646130147715479831952166654170481495783524671422088485545399343242185453066313987800375969313682464526219296722610918552024620227206495636066199058037087229907111546151695188774541958525706588177607525951548090048988658104404951814538100306763864327968333059257776904936488023754569659572411329304178332368124326127812812806319970947898787316523365770303057376610711431949462935977080226790025563337924048670242581539510828322061303844244861186642237600286466470158724377399774227591546530425019457363431568966370682944325623522759867596232652272315513677197768291129372151952247934244058534948751767562662105636668180142632838711725183646654448476588728848431303328023539025248152427147804311460618740800601012121581721494393242272133649218269896256058283370737244299029713165772460243248907156620356447573334041752097111408293565664871265845748415786887007838295334289724098678296407165828295818246100479922727487251122615609484322860499952608194128834713275095049194962051930912692493863714363052597760137488480276903178029069380239167743949184398679138768622137080437518991832396879649454370344429042938403759226154081215569539498329622896999059610727104950470946399362721130314114548880093767925328082475341122979313486463668902746470371973299180421787721484176476218073465309596963629194407896475817347832017087747835107176572108585376645833250841506802539037930501364593505431131785925779922068782140956447523055895879105527221268594020414528258103818755834061611269565720251037944601355051503662310595875413665592374665229788017121697864120757087803587204065969565763123125885227374809898820180089342375001665858845379164357962399672641352633746226520997142039665272847264803515056068605373269781145734539968709350367044139638253092461260476298401487461391685428036894761781351321966802052439996703320080724763803505588869846223956149715126612693421255644531913246519365109411086585954479942401327708920941845029029390028480724430724027066018320675914769877150685722078091660309723037199531794841008748831976908640806878224288366014241952445042319108781155250120261746366233375138648277822020846897777950240687697590072197829022133698480652536937838343934610846019144921090977236188155583117074801025018450074714141291840603610685046549737208251186987601906767486013307989236675384588246746959995213289094470555978974220329205254075958876223899348527567544706687218913297784769710195441070006964045251024172689218267565472309252935753974663219050275061464007976273652731089046533759072422708705737748801598296293332004199751629443234956571484978561017510417104584085291769263895588939162019350226393445947289221852786901016067405258114055270283801389393753235266840347149297886034839670356831471079093049013788363374952446458134330962761460773864765813686024314228519037401427686658420575652064557951867212921995255078566853774016425478360419575206960594676853151068635246373438817874550546984496042660233678884009622406464026948542868603893518545602494136329728964044509985832417093356986837132867371283215768650626416781140144023744998951293165575065776574586269750227283338440680668183993881378509415362617574566171031291755900140107372989820401926991640431312001238101693885930519177467260370024416268545323537066434032321844857283315006330689347348698923737436981516326107534269963295077714248350448992223423752226639530960351706023180700996350395888905189013975536225285168080256091259899559921218225390037962281056630586694525775206314602093926964599891723648119486442960044531150433602007852714006666069134521210493403794881013118017490139036280652828868235792276531670860671094886674666264637336830846954005360166266440378146834494587966419054756940711319983164331409661548078630296673696612510049569943692097630113187326316204976103762665178095034925830459774025307803911001150439483644350054474724405204103793098736563461826669355206579995740139261812392968330645877552229354026990122336469351827306350437796991196076146445477583642723401544432615213530136119829044862115414794199733652171284186098479589976345324202846735149441559999684159665022410350743304472789935209426406525755425087768284524571669134465322046157332110745656924155343264317848102527370256544298731239808401262713627511687724764180256490606448025744411126329981727892530287108059056643450056137183465468070515229569364138903887477149344685223794434942000467657819606025314128648516381678519625228427968358029569148629842654561701551938165527990852500878773964407222336323340698737926494170435920487337657403414334789906712653446173416378857547458635362310770147482937414713416888144777408406608276341248553353636573700202829156010981182453743242848156188286284674727903708941240134265169988735871923158718634629438403377112769773973777282780627878594856627070277184535990840517366280952604662146233455676544378292456547617084389165694594399507893195721252465857588245636210263476968778558856081589066009564255230818657437201021978050547176204962917074184255277666902217879514098529887259874777256290553774098279899147384872765790743543713953197834811546575455145356783000771175316853100016923599692244126562094740741303398980474744128348087754980781299904059246464860794976390452553465502745820565138229651386550282375246825786469881062680841628262607387743701408859199906400039378285231174190207742240048023108598693982790922447638397354656823510261607382942470893433900084499872196554896210582955297927711867218959343497090052515836643480682666427279204792345341973885422647589680686213983487753894773495414751023454653946440224683278202271300438966018049627379673068892673872036993295970561159559540561039477990204883547528357250670700586383726273540077360965395872453971735255550094334622473217634032939662276961967253209110993956981660649790902392236808924869025717245943452840855889199891905501435923896781511999249188590925488208128547152338833511342381981041478452008186507099274456425644595322717521932694268225809768206645338889722853730263729447231707969278026462290672307215775779815107164239743984712576326666948529289626633702526262439110095621434601889295204323649273024343999970361436067301485106831675818322509641210566354215375276994672526030185521445291274388184147650509814395511922471930207978911837108253676577874628973706653335997671683146953791838262897294064513682766967496276386083457310415509138130689006464885610986942268735076195078114965658836009363490789669375472577759784422862458016473657712141661007994795758118178457991177647909401352429961397800776432451642815556213960819348646341370899484781935614252606692831385407143922646185910043142601116639972480694664140033240403528395659703752973240854052805969582202467216397214679941318540312689473506863014989889828862492102671375043313832900165703792967638432487719362006196849122672750169645430956934393390195687600856125974519832304647223695814410252859299220959878632068030625542584110645685793257228730884633718832055913788838720224153633599517146059520019559003037799500842148126950960408278438501789479419077566726340139253897799978375831839202152980282597814589735039862379640992831082431600740702073401478547301423639122572748732049602918234715255138748015932612433250007717387557887598734999051226656697844662746805093335647545131631232398859317402898115839217418916286555416340797938250053671328977807725442271658155076366613627244774254611487795058982977505097687276864424286467672258381577071175839036931597881285229315147708980128376027760351198501587948131545184675108889407317926885130669176252765089034792320154766443946218058823489379831384964901306725361495527893028991426891828851415576343066727537470666783878411332405651040481964199043434143776840261996318745134469171025091708373889041616305308841486427832764895834756864423081431447535006456069537250229588703975265749873255276033464536224610803838436264169604092048416042440401765227336687434109037753782900084077510514073544157415239864505261419188925785801130448430376388586361805308685602411922436754329611473231507431734173193882815780692192602124079390087699237951047943665817284689167037732916630493666691812667254758540787953599800897320845394725716430092746551550984214031908436244447505093235982750872721774852966869688830201403036229175057987089248172527005918290924056538811865760502972387787913317990601733688920273290003690185868763370987111464007793446291037879304135293066399460520944444388624753452462505488974197871891576025790244582892814274765698769087221378034989936052739230675867462771443419518802508429742824572637540141177295702317174960279148920489516967168417911136785864100289305724786033437676793086761319743369041913673046818681708243965437973548386197577826367573113432715711393394011219565098182230381403201496477490655820440905365724667534332683217500337180041968115767427411915111828955819887534085806370389680478389559595353710164029259484339406049459209615351240485683478740851025586252983183367695980285442911411153892542082261481119015154402187211721679528163154555602592411366349623219786308001599303218390786070188156655225572891720465971543078510731593307169263464838783365372859934326462442145122016769623408955166174297748434380421379772861089762809012157713609682844320811436625404136611348355911391318349663659314892917604701676749016424185923346206678728162892023390796625791299576088259573149893850465208405434616075667632074373200085257574494272534986450353348613848848036914893634459159677145516927825714754693923514535344520951000956136007032949132235992162329434213403750301989924667568913239266892089236361644951979839025061156246324542575131237769872584659091571681606520529011017232560866779658969542421557072094813533577977001674778998734432325858628107088336622121114864660293174643985851779716101013977936462708270121250928255832052604032610521982881822660294424460640366627081498288005966690770318123174332387438898398009144722320125869388873189269968628433868317802516112273431659900246928983669072105663713234088206558639151844227978135661018599359253203853823953375258282504832224188861562053747790931077079253391285543003582741981707014249441126455794239384425187713413840979322945388980504132095156851470126445795805554584694909826105236385977538601692545338122957332805068688103013939307889326159605374080288706574306291406053413348395372831628461987733442110900185156070387350062893386647098239312003619681191103300096434005504052794609384275800070948544699090247552761019817098175858133164872846286937841260008663460074202267349268464492087731048589592844172798423739567299054256455186430199424782649833552388100084164296512581349597942931537833455941523995891134229772018775891711780492869890065103819452181481303125445004438542792534135636170024955066245672877110252722923667422672668844387127124088546991780601799524541443137251875776435184296749863794382422134374265237806574958326760714378708348016979588592741863924842015589952235096419530912868733252369976316616731218306576508558847329773042804223573703607858744663566634063059403444213385590805800386245180047928349225975756312903252664037426172113041985410983604251308477207490929981345640548331084159734594314545761207226957573210236652245912364624364902274211570670284772176533505806585557967550741770812513027670200007561604308165810553859685422967181718044388546179045550153364432673455084302486354138207774576508121905057738724280160000973166845650408637741458885090345974370948245152810323074877474931125356699418518430034385585058539968000208245508865796027420986219338433209507598976278879440750720525774952219696921315271706216300614648173360020394438894526329356979230169002106687932535182323867676999751590000682771510087466874200772791970121224348092237658993564735945857460541511746171953647873701620784653643305639347375731235629149897795630412162804642877142963690935984041198994825482360516170242936596218952694511998535395711571905996391895058680981919270493131281874300206473904230490452771485049892473658053537393698081184871481475377300278474954307549990363091859442831038072776318462731522586216852684088763741456771966667028056478127259730809994713820348865047165165956900456828223462187811763277835934695166876178469220657224509783269110499024007206014878747736861920808764458854404762468063228204694823568426613144674484683256154213353809328467269629055752910709979165972816391578286127292235004770091082284419092872036973665934177573753559923924016281559278333407048377739413986790589921570375852403400151737084677886915340515639747173430976568770876145261130139427380790371391908426267421955140805074119011936916576960355863185255571477029448430040095325848344301269843181367350476400673120731016953762548987134509244803704905823620694487429096641011213635372607933851275985133764205352117964690699997725585909912494867350408590264387431835571809242151729365767502668226511768254996107076011429959660934301652735975258666080344451784774749775218148483072154280881035476264879086622270541804605877714932615443897226551315985159435980869814668926327889494032336855131160384722833194865566730990303763818088419056380925604615433015011776563297643444566881345459713869163671529503653766979290481177950472109833667392276618464690125833172495080962455768342021185396427467482226954061527703316999930766447290236955989045471347582445050298129362846752477236437023221468382934153836177552198924049101882035677428864950084761472205517908698378442187597047043554138352635342645442839246729087488294229693502775692387722101256629862356290244540776419955827274480561651836596017842667020049034856723138919411758732074900668275853579583649165425459511436249735195194867959584892419030330378343778453980834803656237704078716462475849549390606854299208005508358166921166638863046693685311003404276794350015303774076888995573695991738555230518112337067877091067864267678680189499214209323104423417946758675330782068737693504456480604177033662555304266393815829409706197859306098022930628431982630124673179376297227108175657840762097455311653419162713406248743970806614000980970383909550760076814325469761873834617812918871515800282866859911360706411110400201699597503310804284587663803240951735513451552829735722140768333795345065194827517075380252611491291532548164779030221331812184095886930365001078359941015428828357376507741271110002348575826065520128279677436707267840927937741047428311482363858348238851669307620882069641997747718368152047967426495221643883928730117147233909944020733317008263187385988937044350227080045786425715412079309011262769966083659140773086412025757024053988039890619886362366878217079891201026773017454308510007136590365536999455917211344117961515040340973215375460761631440495088490470899698052305766345496579199621691859443396822290460984752119798496810795999888069106131324637906280917364867251748835164908589757815407904632508607691900796638284894632013810839174378788884130996314888164180168259912297188807808286971239964234574856952816144932587579765488133402510503740311301796682143155377866563086338079727265978055742868627012344713554713698003519639996881327040744718777252553309844382079769744935183776179583142585983336237146638159083985652933800559286685612601355933654888354376844464131500219114878589603536758923911113317398412960717304956448862040462430208821401674490272136513648296108133235380990416717416337135454650323132923206690931716998519801310400096319470626888802475130576165194946005040687493305288624275017124845178057467151412783857948562145819411370091089522743196450078436756149103194425532107782863580116335792714081667531109728912859769327192638347309954583264353307824699853811694444063222975747593096711507479358051832125923095488062040847782707030355719532074535322286925841123147532670333366005505297115361461320757104638710402709751384380624706400253566533425779774839720090815661658701873632262803392869753355261798983327469215199457975409092973238552757536910302970950139397411382514173494877449302323591817316419047591192538718549461629529328244393326590642806899346506687382857578734413774449682346935764158988111443320093816215293884645698609150759125019431953185220707899821202170979757404430964158969866311638146116225321412780597605082676329817040475395304395207173688039232458243512928428225801468659801074384066162115295354200605395894715180973008520129645923095635987745239458338531765793101360581723795503504325177148788688842538522267689646123822333940382776504427364045625590183122986593430445479594914694920822209885321565051235696970681787045702966938430325569244685647631516353973581719134814272128209475455386542131381311039253187579298515744645457218427315906574139790445012981331590578060678981213251920017572618616101411253479093894827799092786937701244056428357709034532732390150086214861828441779230746188653507455293004021929562564863108948456555759232480802170710768943280103983747631991963187247754621374729641385921512050189199916157395977619586337952763399605471541596732266563928026189771262273511739274395285504350635604549161355360982085283839803337938415508709435930086735054709820309078161286657221159094851443275053172003424024607289704326157111348928831698678416362166879644888365189956333257978844957084491704225774617309575018355881270255326052704893967346665825247646585931452032380514076965821909788403948475260461054965492252794797841866057995583606847354630111009003289925504759139801668790748530026870402792246313895907459849272327821758634164421388504632185174354476212471012272265011529667952020467583827157066075883817047824855231534375161645303162898245602430280580417244443244661535054305685002131279319559135396656523753950332905708532735653803521382014194972908102208301084909227478312130635629003629038328835003420129558213800996688988884665613634949365358293566381871357014335379978412294806399945138049783707475768971704341845023890762259189445237738736098147694769557583909335416664176151224092357402474360320444417305885127382462428687404719322476347059423058118979767804489172632692214859167937498012096521433412056477427742837495370742102307149105103612249010384520770264973173460178877515994772163364722712887511594893742618039186250498932558531896322199743995465117942072234833827401963723556859531362305498943843585105252380734944696405468386159460409295754981991069385711204785560206553608294976656794014926124426450933344387070009289719499705816092821801464293974227242013074831991843853602732211150962351411366705116097977951315777116630710562392487963906289023689206358180962373813495969471656799936618120960641054716098855763948440362988672507911953263684955617771406385804710569521817493714396965127216763079790794968932347654296906473513930720289714040283065693623606277163646170406908566708837536744730029962418616659526237917456005017267932622813462804983869107717175875013124870931224467220431768859288962476959287223019889669409367848886599811381143477636682140860359453919702746681687662764647809942289389214490862958711101345066974811045378434844956018140114397410391538245721239987421974306658625007810106498331949933314272716100423758675994439262237418584570948368466330827974244555225024383647470463956241867370055428637728828858603729625056418645745500432328704127519793766489928223295321637348167884415967802595976690640224912716734923814230800139192477705531260836605928611490072096140549759367036508061219144153221569250592168408172081920351251803991266227857472015159627534220680468637750334347470729494295042501693367740553504378013383055711211628389123496617981193563882817778440708496365033959166366031211736293165850824525621644413654667551154882588785101471355297529685423447375036221727824181422347345063907460025564048462872437401730761312840521372080256841674172321727317788657558856621340464836482245861096108936337093650744350578583877214027375131983291768207263739532657176902158195770500196660162274406169581023689583343253384067047634221121659721435327816137088341576931915350403038310850003276369895904848122493788598811941779960860512614961272918810029970923209473524949583302275574065688345813135166407480933472559519743673334647631654177854049710472435813304117274431951029420278779905317179617042386345835832962995604595902856907418181021305669350589005544969168983327242478258346058318431627541389305654569966578931822919446414458339916203477509418838376821220090349760866887394259634180707350935324246729599658911244129659400195259045008849034245770576478491334198210540478780188190785004227258251410266656058216680104314673110300748428035293966059728113087729132530461059554397178055356420683267382256975179274409277819468958241809437889124576387740231812076372092147692624958213658327058774661505983120956782158359717771474669987495368868639266687632430674213022798737580369629896394394080700711698343540934262252200979013306928803407370281188387446549626670154980776659685365294618528755969244058934628272667869759957781996485774050733482430775547272782400163301723139364004657858082494896543456025829482182133719769111288110592223040855323658627842556815667205959624294928484221235853975976517033720222931821037688493398677254315034011437230906923885566883588373514324690472524069561665266826986742507546555079910925093921963415770996787660777001868794510539108274119351092340194474056864786911776005581235432396553832126292469929674463327058964906185341398907385890579428893686124296402200673739329935671819222085250272712154912342798659311670958558994279390031344674802821437802229841169955787182203027424979724759977475309655578650189168168356737679938417613807608708421868227514222688368956820136747324519979530327305556047723136197063967076582490122195675346078528817140007076025212005388969801744645227436691256386378970803086242374921234219417446386473178768068362127580846565443046064272119381872874146710583257624646998479958782839223920936486318268894498491119009771644970958675225588973459886476546805613782594063590023796285755143471501485860537594755831969097394537262096611002309537165448944433440881111237099276566875335658942596688157663516665544133242618872392942257194672188669291499425059920330674140878806282453190663763338867824884015499541921679790326662700991802215465453459440463558745040852334660707685382416982173940931745930599614069392762003239620071419797695428302174725303589568779003247246338897951503733817734212948462110146069511390669817460644465158990208027099586778606977244035477147820929794614822778847199895402513527671888278097605344066816535148177798282980314315130005045179019480077407938660551165292398374768315848374807456858072278098329546541394536855783582017255183980087600936458872651496260332305446791765318254225192136433961251414936748958555620923331827830905064697745601035256510031503896837983174189178273078990432185490722990158946252132361872331960480423038381303359796954368968132247857705350284384780297875935258789065455914824870150011665768042997903031609154989967413755383278885959823476014774564504901119077185741553530537530186984762986849109461862757800056438531451964879608857564938912332613036145774312630216274756009062396383428912788330171441150145508965231245473511334844385109405484210854319680658888576760227432111318508722454301127115150312986602024653657151353577638164114880005764038159058204222395699352150505281186187673190139225080223764992482382810292162734239556217083713850698986019443289295672206654558297662828754607162637095514569937058983215202494454189322482848451280945541711030558484688505668539934422570498910041804666298486756882377411777042918217892390889554032271066780917708999169234660062576422883488464738204015052853525773724162053699584388146620215793826786863531641331893427791539646459051365098585508939664317167724283661262445350554182721302138744338533224842290572229826635173361122332053527605549335724072671585923592340269388591259311200262398572589585919486228257454011763266825081665096970585940411552377853313725823423114383494796698243594740906418538950549955016828880641455622299707378307042696342194418743285670531097126614936615619699246072814603882085520889593934079996964757741582143228268244681789769416541099108935083178518931185471488608234691605559968632474364367249951228570398804685862788917451643127053990878794602925206939935617951707351926032391136649848936290848586625103707576461289678701391180608193290617046136270252165861149214830140761380045634816641136259505468092144646360483611211773032064569891922291468441685414116027868118968616591412636978367800154093557000917803589667550883159406254955905805567406433351899405609411250591879707900156832907587579233684124888307908668497456868221177572035782449000980021809259911286925832150583759118332042525238578041182062777291743238351775523797827788262816204774010298321942590637334481643708866327540661855366439475951048672298608601440594473777522767663051351539205868437374162117634635174141068158263813238346008958867791056522087334489670578800056041631351697753371358685944296226692885977058421368946703633871955139360377700539688823788200480566307819479159122522842608149079434487707007793338740785012194356221277713419894131286714200139018180707943317986108255902221933104848923823464541344410792332725677674731008945650283726027273848864292818522381282222079018875878601168221939924777014034466678936972654149524612524355798339248011422604275888799757783398271846507492887360383701071818025304397672287891938650639723129073629343321245671237482464277857683164703708123427534119989129919899802190915642054228120205118317071506990934777537871811930265010328199481482144178152767926839548874696334030488667321451276096361929694293730551001470876855014626570002343325814807236637788736715250998145401334438209349320531260001168772976047861000047473805630719292242768500174740516780255858849134210848982116779101937215225881894732602403577248383097899208721192663484084216670459966778372998308077999072318361562101075324541123789280700684127373184236512009747937616691488488791961805846182673776679780400906555587419674656962530645645953466024785699559706512761184267034477537281896789366670616021302128083768391729594770535132294235281989856984754093553725762801533306948946009728514076357490798405290828122224372095512543673619356408703073607657440805490161869892741025047994917545094463226459322008876431668263786016504182828677385015847665289709782193211591412865261584807618614623220154249972109099313989404584871289015724283434889442025492819283597458898029351853551624154098949427611523469601536839139715197530622787110042908046230286910421964218425179622767760444640608887673452108920522850020387669064672177577921534702132264347761121607808839574724407860925584214199185111776260947570584225304622113927946308841249396592053689771453481905739469496063222394738701342403636978751951834675750350821052169224275038799154184098560219183664890841594548537980773329502102616319328423517088854761135953327241182847462289831774898576303194563438058941205615166352015753517371359336274100156345468379109517779759378308589472552545838937841543889761876268592341741710192820393356338121750891343504651873029153524268746323930028134951551810630097998203150111299731174967330353860512119148856978294816254352717551783865741679048744682740897860951398844669288269896238212628186645220869673197766662013802303928449606591343052939145584877413564418789246142965403265346585601612212620879171723459419366412084246476043638828781677841324350081432260767665615879332252850035251347796771777633765671693007115824742822407117987247963757646117058836518194796170796481387324160231638194196203724635593140562020661035984595514998335165424745237190972421919866440203776611098316491110200450062013071569203630302802662196899117012134903301733986951846322981266476258715998584006692720831519006270958361267474169579218709334304081673328254683453973498206279929743043573413331755818814534825274224678475007592224343143950285446741961748374967885764777505975541673358179329723661617495688313443364175708511121518092291326808790112212107703797679510273558371552483793297342500694155699504636399085255229649900307830997670497594206846812103997691054965123270989436067019911179676761239018186448162307580227796220672598627468966619863903118819917796032888454406262566604510456537805239961602328375368836790077437467156329067568113295685467255572659192143179478486411069633209881833110646802949625201307222255966069434165489661089922064575088613172334368824480051006243495328186283833932341587305372785728679295028790414815568834834714013638262632999312476529719074383800480637453013303864160256177510508790336134061463703333581606687523361128251149545067998034521132545405463828315716237069729218456408249188841847475147743185656274995690303864178602229048820158897950192651344925144447215209545015877772287966716310531487428521318146547739170556390582369182933393156769587162472245562301292096200892554574842418798882991218439425971563321410274497802789650097846145995489042329983626025526912884227767358831552827932198667974468133995170312275549509733674488510637829546278195920001801663848309657488349295957902364896520050866329297518172633400350115260444134144333898324264770564162288103787213247778590485216039421286700501258733400186054120571507950363393758910670242894441378043307932179541344538355239837177028128765948312979247559354633923926628082420192136279937748013028041414482726992734542939949953652587274390639020515940258171709136344855493155367197621723586033525234888831393060532023734818716068308181222633388462774572840244269838464251492521053844863564626138796189786264357374027352720727959891789577501082180361033381951431032840764302702604904938540682248817830738338355131431845704020113483165380855889300157428507846288549005609861911723760991394241144577355923161154184145648893028814241748696488894974970535035729492155457148217352698247218403395642710649811840483171660475272068949638343926220646885764200268816329759715288235036272986928104629573784881148405396263067782600717348267484096455976429917007169576584226242275255586975609417342134582579119585661452319053766112594062691776131158400092158092947000016434278570485187115256572928137230573031600685870010697217048910486864733761072253560357919046567738646796980523143793615970260272988224026239540628892592895791243870974012296309200112733176925151655215857893323066658047279884692464069340183624495703862112798425216767016552955879602844319834555481606583633448348538908740841882657631080824877445151839185591298992318931541642495801170495292878367331017825855689924460305605796583420907231608086390858669988703931679322470977505748544750917293760279264911828479593421989548676167593966123532335399664581089620344894655716144490889961813567722210356830590484982711615079305647951460339489946898585058078904557167500969868694109922163463436943934637026018500382329219865171912004472778431080363756785914655991503397220277037163968950820307866524175867343742610337450572271910479265798838850934676934738588810793829391818439480141606795200352032373231756869417752908114619741061853650885473299850331379910245059575996312835693160989576343989049113448849341150122609903206033862624852994852603897115027874801300918212496041173388311956791467736923296826252703080394765781798258984099548201624864984963985331395251439457965105107055641656184932861604063206133662851169747633098936177638988906323061905451498165166786413795353175811087725463353972179764696732721118551807253770149666670354744069581930996929746263295024717749973898875436322228517563954791496329925965430385906032902779738062743377931738725107685541293072082801829823860098389274091904483466027538279886272273740397205724422489402900010604545967975267440098706533632003777463863146564278922616969775574911774233718895022678706407512146086072912032631548968782466598052845161889694458228717665846059263560713618347514830671047260882962284908766379697221603507316948861456364135615476871021732282934493610638484809721243652536856600869749952323037082427027160397781664318391135908365545087203471920013312713382137453399496174269337958562697730854822886524127784862836173857361642942551804663894611998349375543212592389281990068317685251862666203460081694353661001406333530045072271988507977210824913876962520585818233616426656395778556433483067665025814235683672247527512347341678602295131432864170685851596126642109194441564195952091587821123116533371043063602038999712772639451670477078495533602052329062728122207058105396070292374642924372060916466435596159827465813816333529113776839702523329771012105185335434019952118966920104686238026427210057200788165868429653862308129090181587310550797449885369614474774071893715920119210771798970344867736045794128843442248598499129938937275523243652825768149067382016545076640112523971455463755051853504673553661611485595428463566737127138043435004618897652098601334535390688949523101774127465494206497517174983504991398170879198589618476467048118023275071694958887650189227087981876816668178276876175177514298208863571318428160556122351851389231586488177533268996080046108671002010241250146619021149242049425194873456123020836485216312558899203313802644382525766794661261171308782667212772608442278275029019533335960907490613597170549619169353580951957528218460556177808997962062074691553381457765490992784412770242934048595635206804279130973157013338682838635290400733465296484288164975744037627658329063495825970368534101023104748181373777544602971272334535322010952459763409430919216015843627462483781940915396930756417557648232018389757614873652413740533369567660982051465802464253998954987128706054696713020176074373201501943352044853562243589166642446185511461554363089937242108855242616411000145321437568729944344528809004590484374788872583784744870535671210251958225166413502061858880950195307314824572343715780735603643744441995216341917924735145937967494755994335333896859959071433422949411270826186326175959788738020885307041703401830304849660610408432165234110469848445489694688747973654192349484386608380334262574773678557684234557685337897834573975641708886175605457790184008622609504549166340695878214314481927505531015581226228959817511265506792368006541717573130421601248645861416395919847567100361240366230731476090094950516223858458585309564393565422476259543767683926104314309772776791616405948114505234187241873713886959418696357904528347937764831498906544098881824406112484347884546381005193658239589349819417533938106764685516027533552364358928614336567284375938861017278988004690956301054745243550904634044041441365479803703995920537548170103238796562246435475609777970572550577240195139116116315961300737610313401033387268082237375776651905769750631596624373282968530746345590008614355923426784081708575717794193518980335812763891472554081468450424853918735364127135796890115802922506332245016559635366030854158676433429955005686561100188133105166017418007993480918784603819566957247464940135388752123114318672428033658669011733897583954930789649793066500319228536782892453529455253504685072028058532694206391368470310811053004153513368011697004621049843571308828176887312995554291711328164881904747179588101914271775542698108565106412198670917734041164240376924286196392861551907139533199367570759182578644416620863671011865508938927791912486252982063698385735927646374065309997294162089396870108576700083848279557869654490187360581978853772428497964394726155165119431524795877161450661464549138060578347199652925031612453586928711678473529019806543775969895899057575581190354632730647965300933628810905936050689712772760437054967843590082681677223265020942197975818964441275962359939346505706882902042401648579373782496864125457231678829116761146745434318557850677514735690786066320018825170981196018196454115199627203965511151614206758242801063692568989217424673310460845618522860306695411999000759566143596408504576135969460833062160367033311326800717887879860287863648133314736561021854786207314968283537294533819100472397824785804730681426436191910687454893553600392171662377454046453706155107454954658628016773489862883861099955752902192091277058674579780196935290154323426157946407936136695777802516164632607505951247487514256500866433369346277149697492607449750474256821089994350263090883019988408565249391632628340051797506219314493672525542938979076602813265492528565878026081302147838537671310249352694503269460349877138652483368818596533299050925391573694365912121259143361202180792139876212758445513298628434449572376441172617684828757983859049377819749511943753204499855933401497863757385050914791842049815868212616550916172481698640834723438712626850607683664335769723465408134737976712352308281697286299469824727861989300349905228776951186325282949735075874719240962583351428137540295102646993844198469116478712973230220346211705862907207923023844540454964601754908944009179647253165919167357369689470800780763887093340110713603113699420184660602116356768341779739567456367078463744287097614759428273621861173020452260376917356925854511362442263528750380826213027963542932864400215886820448682520944276156756054793086232322868114373359999086599866944306886733918788703161767686777691559661497365400981533489998210638316536102093084321516106561518045639508224280944248243996302555404943236605767656139176205844110647810590327535236951939392453055074797755397615426937590498989490779435819880627208494481401804337820348727946565882592425220368921370625655002387198802980247925748630369403276700215374665552486755722353726514537201634445739256267070579008945806688083258496831181481977259063585924267495297344363229577955117389646259196075591619259645938962477920069644688043608932273020300634916505783007302695629326595201578431501250234444166934274565392888810469255839468484699553827261419096997746485990075072891469954812660179835769688604349798711916313517045115154946236934875442599660942246564979899850510811401600049801473547601989527170901717203428979132188444312002601485795866518207813478006063754045589410732099137218321996901194146739527164861237981762438439512064174806201111702568526639854182484570583437759983410611193096002542447700743640233908758189742766068997546133176043915416090704837863139995831691538392337209683843810003445565195006753633044076639913835298926402814100479134609271072623440537830257500657885241272068288457807798317385418566932996636418371273310032752483915129715178086950367887659575427330271804886990325345026024266360379291486708216387527496199870175493914499867263232673728359966716647065863510536346566910403187782108493191679739911163189453855053789834487378575032924297961309569172542227041382125878416405311907003134040258157258093444154681711663104730218603485383482830714416285241484647407864218578957983322512900537961953910038887250444090496842455427711262225042303277264958917443916938146968594503526243708667926370918951120239361393576224045956157355716137498121722433100923299437322114009656161183071630534336693343233385410765815516202464796535694959853961296005385565039875137220008003540628099204225262719295204653119668962651054803944038510609277775884208578740742639161984338857402703088472574749158470074781268719998138475508254707776763516267197492263611500297098412897076295137662499065984478484532811625656792813129474348157877557273744473679206991048177570887557006048916102425579218584934951013324894990453431930770917760163602643568405198246038286083602273848866886373350998653326407041131749227637223487957485553771524517789603383706604776358742068599026519388626042951924197839646430973468384207623552499462874663775058167143366521253656500939140771897089179467689674516546850945054691947100258396075910687609327408655917078909762711529140447732855185350377722673577428305118596920489865202543993169188248235522533855393918608144411673288030985703186703470068524731514700950727851746012034560167480108117016183365196674376943862442716262655505235587235135273245749553761533106701906321372724766610573292317032881545112402066062449180422694544654288748319120634911374473285041492928356749993791781947110360192437943589261819418825803637020000583514876339440435980469962399325888489016370026167202841465478088455435587401439670497757778313360118242752900281120954538782084513330396939083558571562222418882284483691781005214606854317196022386403308368676235758805475789906634443136834449806377751180753884930528731809474673398831443906170120014362102573437188329728921789270652553661421460494444801864859500285526196227761379374516582716375052338100158600418013347347709465915222300821565609777970183482923250507204349631230513466596972966965822228465954202138544697720036934601405724700452974864087548332684578663560112369282811884277034899400591095303399085469454584943125507302047576251132939997170575981218498563251461907850997978583850811798366867112831592001288709095916778169986042339396226354371262525641261780060582575255126404512272239471251800237231005448965321514424347427359198878533290296122562350970350551663748391153446084227845318373622636514620084707636402691446063090342784793319843755153010551815106660919329004634700548741057382452254104884277303017449782580791898451075597956013915932516757741009094865459096552986433591712712112860196396521972343445519314778928460184336786137395824172367284803465259856872299811931352082525305705919662404998520808703152084977071988078881269586791038281916882666559243105324509217988916536398994355577823033298598409763124404895807620410646869131566457517856970058517365646731921466307962739260068776871908926711214726442286651795555017946338561940494677762655035403384955354135983170262344311757965853368435650221914279193134974695688587520697839371610292709792812543126600401028199759979135657379752032270340437693408461696092891287281619755741892487070577851966188983807495399049411081413044266942012002226636225268793642919482404115266660606596186015521378542077705777828130411820403085249925920187453870174050547316428747101047731211527166804837136897031837536245526754411364715448436741615848075857521456068329334832397016490918214720247682481515018796259596577865958663737819280362756190528155829435648035902438749859782268347736688096333551676230460171235654916076304669235995555522560908738064193992800196881132196057569187311409193936059189075998096128981401789780629442793657834218821125609318660152338499184404391851225209934213872775625914705884692358645111529760042655639281846723818583280593269250370480736867622755296504706536756998192977306443571224166681579882515236542586678427646961551523998184461446381757465643634849340091756285501187506067358273142130154099881296653432551929466700932287399841400819086217517799304978970497044948364091532430685730613232914875843596371379939325628736797565990658523389173815774804549814171266110362554592590665606785646045754799976817278155893089086505477101634177160217023920476633874045608430213316846491470001530625510227007095613205767230094238802239765426006780411934030451268627381289845854093301925572185888889732991699435561410227156452929961795977165871331661230076334276053417209605892471017159029013036860239786019052910220616856760940916086692969435171905161863708878051442400839274552043481428296660698042238589226191344491715625444503956196297739703405895019519472667160895612472361835911110786758584023857604803225633206076291298933303166984531857693778307018734157493579097060911790602384639743252807843183444902769985561494557252907382283945478438917493407744592227939832727141812576284036432667881562339011204940453580119482729888068514764232250858757220087914957478171644000962383759684609168821497195937451976450463970115505067595692885709667323189646626192411627828304596842731896554475017453956303918597890151257971563205783264943546252895189256532775608145899236721838049423829205529692685251593438554207614420685290288460436438234232850922177982416772412684675149423435545808633431826908741533236920234515668152562948162683637841458996942603755900577469395939027265679824012014622154324778028751216966415810840121910132117860416130506015884822885883887641210260150678733573561118276828008292360746974429352831121384662342062583164788814677467106999946990877923400666684202379004496268967046448153537388082970206683001201320394333854939551080602072633591808818335470942342621183483480416105985774511843609369494256353361625194668547958838008358314786355761069563584150003050256518194141401192408943005753385032384614017499039553002551699615354015730863963423046356844678484935446091600365421378221678231761012096335428433564504884489717497133609577145279295231067823725193850381665566042204817747873685096136247789019416737921342123280679977468341125477845136333837223117184918428247989774225486680742825276965607237764117307154889979912941148807369100466313664888064754367702906037422742459356394193315793709094719835196050276357968590654380587732963306767731637842171634382062902018512538288776066803278626156959907823241841389280782163710813170601434167066787794000622519288702083052550761280920921250658027492147685214064557336081154393812501839721620089536514615845298514392222232202126934976248976736276821444885579376165317626168292155315768520969051135940769632442716460745398728594952248169312638637430920042988512101585264678225946942398623827964998714336287162367921065705786129917717308157607451445709634185749954485378468109455388505160919568372406281195242875652954834994637967550066457798793816721364432554542635826394429648891214911810290967712855060461339156766587724032406729067096446567994493569151222476681007561003597437729281970925734316476405109881516040389150917004666189676121305601976671537229851408396981847219602195231981185904770644297694354365108225411971057555746416177820450944607218470377822298935890440503113256681411719102215391898502448289310781766633078174401748394070202138899221656960331933720204905013609664080343558332827339621185496618201197853985568120485234934863424336990132057544935090229977203590477873349937847223555772546338262254783771119358821030364209189711255688561678812618338897597399921376599137197283043256044667773057255759781004816757366711684789073076964156493962986217057193830899829116874722298149972854558051275670547954384775273044639454071420379067356212459628663355218752348676008703277772817051479579881074092172330276445965868721280126039387984126564749217377650327569278099907406883055260105832234187035089964629262141783704575968666117294733037598653743109861537955422993750982303144555083386865100278034915651073476051808976275933511238942108269840342228887871021449195272318043191033534214989219183539008539004016215311262240590027523684271094640659327203530877084463552799816739321755826522426184843367379735879040073785539273943931218444964712307588045727879755632523617175514608750235935324060346254740151398657569411708319482706554226923541940324342221923050625949577459308508921815700147455296956177697007693879448826307664968508832138837036782483858442874697543498832435126522609508517480094142947315650636230465021121859897759518330933604252759242066741061546030215208049038553409088162206002385667061779527547163061743100371606566297602549887953012932849199807677880510682788537291158981894673061676472902843941865964743163859386446532001506818144325063402248715333317134329463391591498025368544547986882377468378895692700464079435328449149982667932751239388221024604658321142214425636438375817109611447045127686124472873295211599185087803890231721099084092370345895235142382489704354223027161940544239711600143749565206029746699737763874591649464924346093534454070179051572154211298611389016217709526477514318824035400592296800086200172087981816202518378188655791786914643555695648382262916614762231713385111307615866472459437549608024850438999497584654832048301942374903471156357463266936101573859120078667526123710368743486094319912469851533397513725724348969710157272311644203569458197420377515673857019662088884597064144641472125259162692074016123041714526867565938069420815208745065710947960864471259372795528528939052149527187334092999591562122904740817053976026238527215150100616567488965331721288564419235062982838895590063279528097003726512063858476641672091610704000887283801169710598336638446582732245731426859036106801806293446200199009066360786596665874395500518265658140802278909900652274999121035831998574596076312681839516369489235754671551467228755989178129106762943048558549458503839052217429843110464590602984709598793668495537626462574004993576023734414605826220878379015085607860347700807509607542393728441176934514172239770224130454126986606516159684432608748434926311703181992884867613405523611018000123004273192247454546891008354315087372239824331561965768197133735850556306190953803130879017266900031443327248109393437391817006548024920808974897441125829629016384476297072879114256899263047513061806398134642771541695164911579681210982294050907647775933839325860316777304105197136560616272425388427552775112504632156516322290367195457272174489687217051311742492035043579714477468587804273541458315744155945670771612033080443942920007190812169823989692973186537046866745876112600814624618294512190317778420458651217907144741955592626241042270588952314995852678182860403479342061293815366577424535848370623313740705179772052035004121229842403111121440487886658898868977836177987254727156650437645882847627892720875359202960037323070125690170560141107003926247507251047572074399538277733268394860928957138344119547779183503439657888028875213784087503283248971968599971699352491000576808188969139915885804531649411833510617213061425784368304095327837349919529413888152019684648348440423541914395974214187344181239943071954958780445316615086130975333998004635902555780332240930855830787251869026420797979897873157952418770171435508006734290645863312651470837054791869319158027325088838819284789975515834422053554733970088810979363218248266298817587055671876658471156124052527508029359318472493388399949049635331578117463148341164901769107590352664710327574741546148334297064637311161241747563951736185611100178191618561742995742764262885212974687375772669446665963799769579638224206115799502164087251255400050025077791021439841366333320937882280975445646830479602159055249110112151273396639175937529342445512759544792807929057936995948625402757136409157359530686242483023199729686294691392822859124748767124494541157002945615624354933726507441854880979570147973451164927960114167371794143096485166945377657655025623666767056048540556524629148568261198569288181473551297428166648442277094033304048901122637165019186141760073372004614951994628250001140122046687779273652053177808181937964296441525140878810891200887731605393630438972256834504503437078770869283763089028415984357750491163535885298913218938041717626205004031374950480999056279301061314892184796164307094046911097739698040334176551416086477562453909128297083443437736614867324028201878396395979158555399035058976983007562140029876669212349357161452927839412019031335600431677013986085874144116061708954777931771879331202381076083283249504724375392430230271020576781205581288647101364687411909240334266002548417480575470708552937046077211450623427398519375668589831546584211741530472420898097937314759494604092723067947537273408056334820560129976361359822376025196849775964207854072525114253040075812957812726631757200444794160998173882884685113008712262666608353925326029952482775305019878247652212034249931822163516651168486431981374351513058044204196992991711013026672764980658945656570734226034584621143079350863189924135528107064425284721406311012003193684756448458778509825657373559000112915950581031432535574383786693423600915334097722901236882537993780587797896940262558850008346460495114275031055911994934713475853752295680319541724420428400221438523623447131049704039448372915773171399910763775434762716279225344572604057532016632089945332579712843410717055260293274290661285852589662846711084480980868134634886618239542426705521996370227394137548108928508037751198992397669149990592521198948667140586261831320598392884824847451714570887828708592308297450589909255156563846722370996820049608658997925359648308515399447509630890951155868722821178774098269180543687390857581661024247629496820775281834354058030733885878020412027540785775867969971145523631334960846895208784312769604033162344544628118267731497361699741457212749996033394545403404417636703295245282714659070214193969368445098150990550075867718761708506275401436742439503206078431497185437242955528911256532307196785484502604873535031518104988591293066195467615603412795497322622367193127713520092849548519018760158637542371563931070097058984665900493105167586134217968230072559864866810431944944238373755902102631191063305098246925596971021752790945314929400606714076633735584675565150519307169491954000604071863512756534915266564915535152723000012107181297812030265546659570911234837334918763646009353630224567850740804594661405212938630748768515445511153149528472505961019860936525693056702033338555076862259758148354037956044707201548622992380306066302060572714604363054708031824822983758910322853802771923250872146469535494021777040930150777096831214103890581298105903865302287165295435986275745244702756109179077020100431062871602462855878433118015622956478937404592656589176850216053014001528139726152032660803933535080197272625040017346322627229860951328186575237562077615575114568324023010630543103774729422683808465600421783177445909246502908529469342474911843696420115728078913380869579405138274108242050169546143515756597365985152432222463535002400448310806391321577677128083884327741171529201419292342920212861970205766319969819846004412006823582558876857678558012820773887149484426313735770789045962840783417093505832014445374043967994720542288175271819917260125703419014881892197838123959891904702980513030295863820332167252851754861579687883990308327127141213762948243521558847210167622179459269303315921649344186903185475481346638739975901939790996187164147605420636271346311386634798246071189512418186952228234539579446007513242906695053952542211097051138332569275153613448151070997949348452680802421403797707013715100901069885353448374201840853696390381336820571021643605841582024955112380219825150180078460414558157961901096624326742943180837118223719210635786016037891047681761609125209752085326836336262750728633226991994816229428256872651110223678939491547440990368641083569955149042687583920279792133358235580866281457121459142921159250016192280742807755268975573325365270149774245190452778710517576503513778699796918892277679495566811459615482181771865559037363526666320453208268297032936009053382501641317632514695873873960518811751661046772345704142218776285489069177326795495031702850336870802213276716426959521669484381452300632908350651070752780807961916621460824697173860173448864862267729845050049941473178301881606111766963053507345435113036806172870384402290265371736430376245411376641220889947040870329665631847324592937158627770379334706662128885492728547017824052695813387414758004280536031477060101877403300097610453520610280286756010464066703147192404955160606726399378949153591799342248726858433583358312458129637934617780999425725111140505515468805809640425768550406235992533391621526700007337447739201593742850243139528861006209110747372243768852400687737527622863137601509027371347039133482072819639675358105368300591112947355196476682244414823631631879987954968287145524165381887472719683800582089079616743928441039275757473716901923193732779244553304636576825285376857512758106035040756900963308970205080755241512807569876526723101828318298236111545108387606240964084758807687762875757087217585796460415685721478658377630601877920482502586082127895262918777175809823720463806405125584444154307516197908004780539015282041822371111912774002669017506399548870266069239277129865435839687135933537929454562074981773217950749392137384143539448632737972232051120995121238461804081856238410462742718214264256987464355513062351352673107927688738439686260443132999314725462340428944870322451744126440084515180314171771030821379564916846927329513368082602499859722208995141517165129079779354403015476551737405587598806952178272219871880751462739968337997135100059512004387458656129261880837407770307479072310608972975100626760501878032732218911345286549132893389989605351776641492018608726663398930669363248892689320387157626029223456853221253306855471944491781992662633001302322202179013620159853425475516912361176312194636179285677431125898434717459012597778263294864674301861628186617703636614347528995383251558651182653614623867089724525856060582720735042779583402815822970896515304704067009537318896974479493432731440640422032946272145538143681948529729700836674750692316731301868103064597322704022710307252322661683025465081005368867308288231840414973753237570884005892355349293278328007336603904156356755343764927410703152728566093473935924022286548225346448393497413287522024078945854504294587666903682999420539802106120282625984200536513651806960017126842371520580336185458978814711997079003715800174166072047746637543826343079106987501596511798904676330745758596672121567633944867923554615157134245917324505598891528684855861395160041935772711322184480634196742284466044632208680928318571136405417629665036940730883969950913364948940421490400092565117143124295278878561269994794248010969190021953959606486353306558293197959036057371928631266553443523158373273047029817892320842047743091751177845445034900887682343478959558042788222026170216319692036726094292625604850327911912401978537097473201369339413039648682781898220105778690991697470166697930412550686327518676697150562641479019832778805872239324815132077678456454124069207689675236174903965025885394629467241933370380173319004689193687518204094213465295717613089446355447748927132849739470059146376151591676660403540271905340524828860422567703117332956406187629309824403127522930197846404043569886784654181971409892258874740130924002671853706909604583288699452309548068580479556445365427267566408098368045011892788044383711217948331038947977023764960937479299203554986765476719993644572351250089567176901744802436515191375572241056244770049168431441804781075693863043809641673854524960528887929837825007212642442207117888969579462014806545171822736682877383498335475448916961618728301349320706006975667752535635504024213455517010173128140559931259116022436269393654981150104023080582914713105247507151741978110961309430258343738277405315780786656367987306540047799295499915815309615440083053338690190293276265540648355794835376809385800740116160606409820188314053673574790494853872532557384794866444264897190705317287581966768412800085020011843417897737492520870630415777816731444860238520015112393467324525299445857459337550438896148735292215037972542013377134988489494621886068656231562162624679932011179390299601314428226377184254457452726906049077171268016822034268575923729608378861896288618570639432298705068609648465963996190293690566300771908939524369990145088761514315610779355001845380749737977724383259879557696929297175566257901190071170894292198622267960951363554720050248718898822602848204229017100822712122651185198616867216028331228770296272285684377375000583191637883092100361903329306071587660118468642969306515939879456540566443596148787607662437466298805185514237272674408943285379574026404622879593782795931215041672959720199736690202071482849292767869354793605248470481044319418821528784082265589154293223395203370187146492381206533219844384111392253625271690720873033108951226243806873131963372142569728724108581220067773859542419955425631720031628113199787420889518257273219717716582026246105284234640960233702139107523841779743240118362470370901466343377106005135453877969232420627615396140224914371076380479391743687193966278564771179346518731384866027147864815382445501153238109971126503232759868477587350635186283338563209312046339302692897493433657828684544074121689368022462727243079125214494518056893302150896197914562856820777583464527505675833231211780620942404920223097255237671482587706001007142886254344478740712478977152143153840153951044755385624830688170414388610595747336614022918408164471534018195119349862084452104706497297423392899913395519297147991927394333143517625642324868792688998092233343658490469108302739242274144326068892343581643650782849672155471242025556798417656333974661897740403383977696111881722522321355373086032816953520260830900935444082976743825225919149404392887401949779350679120475002491293438165830957428300496610959145661864073645501101226251813023754843376364569668181170928718881684990209988203213319121151505318360227476017686656288477074710306811328010119821112335269942110788034778383903919154864558372160690614372335318499078930621074394043048119299893444653020509428389289005759372275345379628780188650379251059242707835240188005645264309391861113493402724714483980688751112302778712542251719826181961142835806742238052269649263690644959816108574753500175078800592951710222047839059259452343200977058254949267780367716524896848951063515373667433819647966198537017263224457870077705451952368567985864344874519980499220574107747051454883148325586940782092011159119144504776671901710507525597207218525806141886815615138987015050001334187741314201100024486087812041000294344565324455509437067825524619499261486854781041228435321679812984085547083956274113595303613965159824602934747277114812085024294291034697759287823391538824331905471913459096803822475378692664254625622647351237999225955090618180953613646687359775852877671100411936654863625712433463566172205046756937961508313518756000527623121897997334783800541808834620568469933960133419069631691587869687833762400631281302176127749579496028873544441819623937007170446506842938342544611831363760098494401301850887738451830066095972269234578454652496415095896648665536887082324662068314864819734439425310483524862156534607925510810236162152209106020351431425344542216530663618287665516513723861387142896293551689632473422726383071271583089347087250172037187178557181653688775722974917774131834536559890146804245179363420964973128813698247852869736051629233875828872049133792416779420748457856991963070990342176541253261027155680457520966531613067436582490143810978306427313870878148091000354057360094648360961603997250946799934501894618231904728672634424397596803039017075046744808317682323511024683145120190283597959162165682173122128365130888957248770152881933752184150818438350035205367662971105307994122913121501583465068366072877879933766801940769914823144774058766731659833541777003531457866460210957715297569819100018522396049854486207198878961437476463815360591213520259448184476852646588086616273884767631113702831282662665139245427477785923460219914810023136723611451001350497690885900016311008677788857643470810832707200852331652348151449537029357046238063503608709352899855696508758285212470305696764583181570301185381255369971231580724820795363724323412956331563975687431742062219195847125227389961233821169644538144847213300264152475967219844260705775735666021504466866122920455286486875179613007916528844968475513999199628927492606250822280404921228191015589236996729112829670083047500856654472389265876079670881944772603795279865594438820579816379489710314295255327448441824344232928410267458500674808416920921070775952626514087351275511583476148361453169922111599655135335603881721890689050535112255703116320065610109310681798680192537585718840345115354763020516440975729439481680522754310361104704983810211232664782973328749933489163922849719882626338335634515076505006636652744270891977010859736350844121814140232224341160315052745366368199554684277562978172297018877212558071006229787751886272390557390990792416885226581830349234569547156041083695272614123529574095877001172281003174295137754919987576025291021227931178300282777905803132012131313902655460943649820753732467612392266316500109316610598089572241751975212662542603859951124607655356354091302822390094178532417838586923886757836550103960763878667194657565999267392457716664205328417088180432453660426676203571920804097421061923034086876549414493340476501934378264278366877772986119435832136769953044357875313443658729668533941370469216064996667003183990765890104442287541816668197007945395969412473467304035948641291987544616523872993316227010801721773506431755947951418578907026976237113327889402921232868609421484503503431201848513490224607517564288142474046411607267881416071119078781514522050849120946480416815551640224422685888767014480958328224786480505295719313748587077426518946366748778595918761061168839787059264885526182126818324269394072714051921836860803916656184416962305934961700326453962113864877017686110486492572181928776034550083982114418024236954972365867324961831181061331286864275924867890141718795727896903420470531310414142212836669017035260018633608268928615797291611719030907726948719798829759139888118115498394544949299396117608036084144988321171663343592850818974706533368259758448527186178056171220498064951503684425751338999824367683527082133249853707043189175014602458165430826296861873414094587037385129921606255961149042130761644166867093786920912348125830079156105541167891801344173607262730484552533713321403693476247832884939824113747219291317064111629490911424577400062436618807751895395663209290969420931776800814135685372769943199771474950582011206864664201906927865262331401244812915138642862047414506732325050894750356658282645159514672139539267600371748712238015251500567422029796234189523295910668328561289913554866904250707241037546687384841201445686480655603715700689185609830300048417948437294736374651552321655543678582652211686212176505889666473781778942563234472615413551534385921608962999994118870095176526820539624180952551303053947135151457571172716674944492619219579748173798985377120619011302891782481379596404636630083686237967599216833015017432381241531417652144830411913269740191956472048522610095135065889412048893615277644371570515722713250957786710641000346335186329653003282101753973980610520458691957273754063961014064487061925929651262799098116164430270619096403039550265959786179103048862656838369653253706623363450392007515700884930215664840411183003298570625232557470770489957340588149382637335745835302651123088911000802345144152440772935447573781593863908277072236502865738693365864716920415848828728494915721438532289469949600924999103175133898896345670273395864068793463877771263325215935415559353543570387119449969060627429902192201859284770644062883440126203292970523308908690248500535113571613248890948839711907532939981252719340430058675593134005217751327174210222330487884442721535556633970373154200291605696275703445186329785662219286284565892348210501524832098226073218343693600893861196427178685883888571501741392761972594931414427673180292802608153853043970235906662314525634579487025556510841690521552640063121733573928682274086140269713471252564302458207405439643964907532474116997659142662954947301291820657560958620114946398561353736090507090101587021235958552645674417265714268648678662667301712760518221610370831336036153151332289409079797228930046107501778809444911819923500083410164443942979897988137303235170862158768108654818638154871329170016234361959408270343157332607721953185735622915453017233566143189684488835960132757513305037025220173381921213170114560594212713023210353058871941556930079658867932589022777084209417364659753800404426091959110839597262612201520885218543044158193311469933291657227159449764804659906222731224257816945643708918555473751564731759937253029326326472201659476873265934499406433032673932581849536257703100784503283837393301463701296214667069292387948589893744358070187551782416853629108057190936011443836811672311500482352815606047217937649625143269978190717027927804191770625598856255352530049541388001339745175722015055486614856758278037597436226086513834532805314059505095592750007023710546031835929865626314994810567552582764928968016438300279911329766625486182433499296188676579312172912859548907537201177118654208821480165722436524997697046692527605175557498014130922977716912915332720019603730143386833943376520717704141625642105143112381874492498815269663259364082813086280004379188563846947689471192116448885396577156323921997496349995053597405491023461203549123603224863525191298598102408743458467329275164301678670922855300354587303283343497919601229210179745024840945949602248933668445378691064010265876917460922049905266533764423920240576601890642598632745158332070912308380466291298854075828970524640415000420780272695000943962480334686178587481939044166607633240518886117189161654600975661960264342562914110780985682876995726668239553798138445384338212586215714152724340405069820433321816758418417242830376155125270786998172433598243973387170506733505905081710589369245862899239059085752806703297739851952418939008111459594458393872379439901979848225872372317040137083790266148527334535682026328044169158160451850135873667080844090794864359679153249986296664325556508053343985332062475456939219723977414329224343114284676818550805426633339055598685873372571252134583542804222479228758795446640309814568058436505169645886840920037611965377109793914317315690985026441046491074764621438367989969849295856239033874448790404591561165115050791979314739566448146681323225507547166011793647235530119509108221999002949406304895359680086527613922165868864900228478886251798504620296367343507822299034752374101017690887390577760256894286002951574178669173485399539861143234530939674630760746813938133671572005874620487845075432843217343202366284448703290922046802508636165408049060657358713783820312515792607381406904182647797541743562431996869467092454533482452221882618728102120587071882000447911996347602360271481952931430382493620173853771062453760380880317515072904883644804481687734534573423397298802972776419920211847167235600696854434714438207790052489894462074916282321024435242782445824883173396157235410971091552676406201182242897909517504576274407429330842018823136076942653700606479237993631086811544784777620335338381371872351349679972553183015891484148073920601926548987256388997758247687951542652514117559860173853947315239813780892125553733284652611624281761068566258979333486469198238298061619895854397207585872588937295040847299357024699931630658695910000251079393114735135718652998761886954888595306558620489036319841594238927634621882997580054464282792703931798805719645715783867316102938782677759006643963722227099547720878115789099146925855824505883356757659552466451965047796401211293395982544525596669152685732121348576203824192284836849745046567448647237836699201336463836906956480943821304016785538360512470090450552622619421942015854374817734009608767300497865326861329395255175784913230589283819342895083835816211238530797310518083485628115720924845297797281086136946968820712626402356113214190112015685569174974546935667030409932607771379370792380706489908796660803829763160111397318067928675436708507384071911918287883486082238446932951200540035124444248588241677566745997344773485014827135770031424897436007683135763390597080935550841093757508321260580674561267730730475541639897671655491597586829764621286602229513232516086529979119152701802060674659039655791678633363610664378146338345445311010077389498112861024713792748741237459500692289000500046981307646673017083654963485662966262247790566316887850359331795921418587648416737112190462558478881725838572229877680287291008711244841074713113977790331732407396561067843100428652394268182476636248521558089265503728353956088788850795655466348662108323736705047077472026496054612634517632118068973011914803162154480172405328474941586789396847063872493432980696494882350644935233242185514202908717061262689530664605891299856947772429862008099908812509172238132247947572177108505815165212982859435067411332754047575739753639645525880588096122307821189619717758841462220302079482235143441399713688574598247630568913421534962444527977663912355967981711397756688376278904076029080206597877014418724364933438400561032018376489922363248679011918693144991242638734189373390052887677129003686081884846935148793002580495621467816121386054498232153735824091225237843585259648992062032470473482981978802757082231101568812132058011353742549257546506405800738154039905659289889122107165624440509639278508130197889165244995670570284704343298658962047947214727196331333726679001392853285313698448385661530852431070489376946389365565615279871520576284832620317857277405970338115715732660431735754891878288830041585032335072864296493032956627386188152293991430197907853488614555761808877309418783412992844293300078110345389541006372915792247501444170562966177499859374886189685900610776535474646887746968793782956953665938656789179561750684999526588320668846232084709575028371654121834147201275456313644540882258441048146710212209415440755202563353276305804641760209773025179195511270355752985255753653015420433021587696797046888394013412195440567719624218554372989120018348117595929244040893227890213820712363523047757671513025012028162009666059641471396801820900065516966608747316048729033162172970502532610114543707370451888418888464926534999155334498469652160120302594449914094133113549215827227225180457912616820290672281924043212962634236192609892173966092801480571201879570869037291540846231518149453125117713035421809826363176753601863822424633336046301070051702682975999064317017051467899689785743967532560845563058900592003704989727660722792282543566830153761594784939265743574601557160777322524269527387807332465310903530681990049504492918222359030436995821134466365149936712690675462132072798594091089701196093494822231214406718353022879632624747698579917677847497955102027383773897714421723320778830614325736672747407024947375647382201361363714830513267903403374814501247827432766838588159261934526733047811077049842121219807375363037555304796221127958578061464455021952870306018341869986274342782290340948470793318530083174781524036512741443568184447753522229635478258057699861196388780924884437649679872515508800805627251471668928473129443041368389470139514961371195094186988770336783241442530234124107641781804145891246701073381776890290520701492797608190908247840499381640127840931567682310046644357688838400586648137406223834385094425971608165718081498450401567802817543993438364040866293982811536162516674220437521950647678457321542721469705623850678695832850027238492491559566136895987157980400325766113338462483380945443909676549517591126935564842544923193426178758008475104934135908812246140577894279151315777170249759001010192603294394436583345867772979325551972584442877585360190202734386839121674699178324483927447428207486678191231664253474073486999500654806959360006739965072192853293298660977518463295087166658158216191344967002794793200721187905544638341358540564915384367324679724578772130164528866490373031024991747716146466430060193384123925233443521758359533614729097609051104518024532412004992835139573420689385696978635685288587615632812644728729256262284486558796544436706868971708022216313311015078472239244287591467048356073483214634896440281354986371200225733377314644903005672386897050852337228265694111379565117505633041126136834676721956062254231042166145958255989115880566105580987921167879923773555458381134921438641098510418984947681926198350123081591382727477664348039559190570794049032376680759758915287362778764180574995680828975207871993002478690437720407749321445304822669716085622907279183558521232172227955937422362319104590817578294399495701587122017872478990689840742665313561973149434547209435720836481360921075753664887459383461848162565548836999587921451387356293775903607395885396269523325811253062259832266244615255374698852316529678307613535052149421845023944297364104215640585676753887412308449456922436708975999156710478558137348524352606414880602452098944084691434422104220720189449605793135915701649099400990244449166000312479530271182669539764685628623622096003711779369506057184007834367201882172241503435161107030396915402358409245550441555282954322520301597005539207233027307917711992385805257718222904102803164663465973073180256512688966767885799642471028721386398452704474456039909175894526145262396313026982463802075613690273098971680652040545595964684801259887904885977267440534079622987159658298063127700932181626542681030340920985558162294324731157444410702869284265661085648010364477084303115466421934926644240768294961406852328976769879922755125243787447653989734756566213136242879715373435610796958865705251286020172796637068118670973611408258945362750542767683725522415625721509380205524502544704323687434653005937023809498740184066998493867843136577094934206753176636029541961548223288005950575681125880376569688736648354676984192983522171137347272233662831622117245902010689732779863886527370415625866310839084251436106152684338817402852737296299453021103638883246642378243593049405727998872201683872800811712737984038473446368085058511231581823088194544885216257468211721373254103754269248181690245727671329978672680238920605803723791270798469313952737705885956604528300288406009928898948445062922161294584842325085703600504224022608811498598747268359773482164956456652958687051984443202700394988497565418049308686818822963303783668637019414160125657432840823465722029546381105326809252855103174062456677991382909816523918471082799993740181798641738973644681942109192567157886743489431456554875342843863452175645269229383313411330740301814283476493220348149517357478328926058373977787603551118394862906420406315677522981833002040648460038386735509136535583825526611765063070516481017132853394945652980040384469647877914029204242279182282559475201357928566477613298093278794532013215375490344341072221714625122324386019191000424452984279286992953915460787463756501516793707779236644847802888495588568920571637287663730956427906187227155523091190638859484428131824041067202537586728054826607963062424545813815181881225298570476694938960346880756873744667051875725862085436469699736840827236825364470284659822161312177462487563334230023033488390912371130206770534157735554954995009862368796917488531891236460178678987470462996272587899922707641750834292568777630297182357411315338409925677897845164238622878711167612279152758330333891235813105105953274240464186818911857369373146961725721642374937909878293047341621803373739010006898145808656300203159958300865790117443470884965252280182943970491129632259657190273125022157241926138907832069124956075422052248059733542950744690038781214376144427503177532422850294625512263332834758902171870002855323202272723761830032485058724767720927066924549382470216630825567366767944208060979787901655517680290134914730220633783949156654174826832891783993925410714627137553698631441563091734053208696963456327606874023560920080640362553324380236826184721951452092514620901541927075519823793617617539195576070583443430709404391833264454765451606847411843823356871821913997574780084342611177319990854449206618469578261880754530689316256361381562068160341143083680172849540621875008179276333823970013162462488049829286679128331654461014579519133354906642443372109301834938421565707258997493824018616025378197537593697625098274927992946167218122425834351620514912102381004099326031395926210109269777430175033920468625376193169988914169381868712846433228820781179940664465433779585953495280909678197174069000410739226110405951487026644771493507732332007565150005712805794276147560770553472215222393230046541714084446515916495341234766954747137038837015133908513930022370952967161538373781165781177356814598640392817888386752982403785940958973779881411114871441748415697192052821776645715543964856850718165427815590041183597609496400108713844983698860089871555438513799123780281103241190685634753678966411911394789754398978576152285927816758986840943071925912224047877887591910297114702768270335825778251073141048286942018403407985197477661676716591121437410541172975622585891114170820694220044674457492747519061219667788571315993036975155955804269362070899205503180847342813307610764079486314268926377478683442044514707663386292170336457871476840123474193935605292382421019265828573186419817963463003347374554865062820985680833666617700377863417142603300709341322571343695035654430454628555805680934229925544798945739546799648097835610899505780893966965863461749443309467528112107035900332419472971706799744155161005363165820430240952433559882445938620728404699503550593852645558684528171215068222891859162236048153195659918795904530626765631866404962922415869494422718106924823269484757316318016393216740690835025106306427977338569052608639172453370576836699590632461842569448791346093099943068434864987901731523973118986751924099772253966786004627535041276407466972459434811881484669848792519215139600932824868638935149703125246170555553875309446059601847707801569317313989797978641882886178814714174172792452130570699962868200873742160065417222856172861006289083708178814636587341618128997556314303119607060294628773052873281422246866444647479132237020619845516312323012928557165590248330929973775801834677771115618523495129294089881612859722636625643730977942649508508566604571433030349146395209699579719809997523172728415815038176355824958627541316251431388479736525081035800015736667917791194068344772528247625246096252233078640070221321421646305207111990456468724114738121968921310254611208355672151472884683819491675379587058738188941276273143847591603560355143811086970869613310400673119710708455665364706535495544653683039762429889678848007181384544198804779038583507778557827044335317701189464250764799896315104442421907252408693085943605833522404136124620953284427421374924287411635991856720053061492965755889920915531053208650511464148102938045337771701470367573458106986342573536152454112194681579791425459404642904490488230119778838895057614163578123488892536343497535095748800712267678307757417603337906697339004843490164190104304651166472746785983374964707352125794084466074300796620212551933061571477682347268959534206480821535923517250021794576865013090644554342089591782583479785669091417021262683943621981092157459290876250616341713730917622815527999858400394738424378168795079789765115810190436161919905039479604368497979940935944005731356965143424643986203854986063526703306324603934044318113587525142530009124967885503459810335269628467298806183158808001411222765735439261687060310506363309092843550564457306706112986068995004188329030778945877921899025578701287178888405425651420099824174692137707136342849523271209737692258008324835959802224096846349135293060648095147262108351984628396143270573676470649299099023507513543142924357994604990440576632900223930097358002141563604666249444524978313810284927257395995633007164709152425639297920698818526522320286137165306674411198002383705394788457846763746136895572362784663284165638510293893576225893971726448290681834406113272889044917327021673393531828428296686823772214743655815850893541527760271201560754962341522736976520631181978348940646956655208917676421741405130547664854388364988891937276058056657574348628604335428388765549705653510121548380473657045252116907314740373297181155009643884528997474916148169842833164092961440415062922950314694154951943505874046129989863020451266185065574402690232252157335088889763766114681542676964164513331255577464628429617295896930706631005514634868972297763442004431935256032255752356831696500106938755653144254937952038119958273623238081945582736711960321630983380311913362813914466204807345749449209375833075694579314813114354240469069834542485639218578256248475681090735441058987903225208802888873081609497000399289417617704225999836588427575000040784296129567873609334497417620149173585998883112300223304650568285918469717396617111987792158125821521612247504831136250253667011036150543919158088231918272066179155658708424617810508165588817075300924520713068787095801858823699638793215338393989557914620575267426822261717618802933978191957025769449408011084242617009689501646786918832109276659281292666949674938094859659763121024118689859477011712311795963831072535355309395497507859398882285349858979236407041955242923415979704139536949523355846030436824818676936428297540397918274861227814931331038637461866377908266182076952058988970480880325288847034104190535018253405853307029173236518702979709355820937069678668766419079272913711038106859840277566905756723497636671544530761797794344639311580707089316314098287428324217150937298588204078765887224699981422810809390068286924599275658128312770557343290351376622575515333800135484696221878651201988617276583939118689445294509141661281442651576065067711261644058751394287769061544669247050216248405670330491715678712667059531011399114524327922764698177492770332995166791161358960781919946948054841735976416471600620909713586761389193573870888458648286983297862214288716054793277559747930753621894716830055886066174809643062416306843919865224567309409656426504252802774721943257294808948351439183243242244845377904803791522559413009983952899724823653990385088592204926907048394708462979010043972115697361397483779132808179545099976786207191731304951448886319755914360196226613427059285252872677667280790478787230755846747586360594299448164981116846056822064538642866137136549586923734878550608086282719056702580100768382356024615622224491411971558160230522057092307489195420361221487164874055831909474862633064003678991257788952416900157399142842415590709826633086517841873013289212995397013174301283253348237758296218550702688681008556248646611935018047118054537021823824731532680699911613743116371914476767111574524624673700042776419876744884543177497797239784830965362843742910318811725971026852724607266367138990303786257843656214217312743290614073603756891799590883987969310425702573031376952014208450855462982776962991683575513255681502958662375756872455693796085582247300756057008350872911498410188388881426991334089177736439892243128502382035458947124817484119674900186605931169415742104179392028712816518784957155100056310005087494384096684005940411356077493407175545388560034168739596825625573104188642289460524289653237834974060077714326825611196287322592367376059043268588939012565160396150406999149470563648162580649177929914805660449767238669569929008596100853010640297040030089668798564847229496513376972610905205744568065033339169240701652062218268632914130833147038828800075343175315967702330710671716170630158716687302974533396357443194628458793231295636221560607514674040243255015784304253526525551725645140761480524447733413944044569768107178154434706192254707204913589193461304407562334639030941574104017932474530530333731099117327434965241894546115763100639652608593077697063306984201538261682747770192135513505434037700190343040785407111329456053717546464016471613454959850599966102344102173073209630010085446174452381855072475986115663896468445632697241403119565014773705652665372454975152980786440980836647811880685472412509667228600457194968610972473190421587214935121794978283278541858849779671919814757924530230714698842707454373654038063861632276866570288149284924677286044288025083486243224305854813491244772187712466062172794418702031243764963941074167681331392206113593143222821558233720712036057268262531333459553780977180406259297525876501164858770216111553928719325861346578043848292592958732174926527126121507306829161787380616703731547313251997331073247314439047597517680729260954657851393376867415648552453528088978004934172379086281607277490669677976383527251624667878980959787018767168148943416709171317563830128315707064207077314594282704643806652520901772392748585111131039640301172248666490179435218049026638015959231219407938618987083775603295440411550694854406233624167982884930056007333066940476712740126059266979346476050823969349074184002144943622839351068248731880835218728628423531436195449615708572525225186608825672643531621172792393224819382744459446293469080813103427842145540077623565558566284939625818088980689404372319887630102667376354073478753069677845315120714190593909148494459354501539797610704364791646932189678881596005135206594712176064129950802208231317792044049275845623841294663646340185828652536498782329953705492266873106292446800650416865469137164065040918601078270097303185153055032643510381295403588971402145323384895836691822401113903085775390415723669283839345853348959657087330193571737010156731645587251503411114330312037593207077286607096602261065117350604660436997181104397864088790641583467591073779155172666353812451876910416384570914790160408950604254564724206709289087760508233471891380298138951709097589926113165848605226487705944152474755268573274196023229365192744866616129072836896228004023951487396521244460775325624659594681748829188032840937379910291219210935845434676327424988655662577408513094143924114551024929068479756986462397353189679355790412897258696346572337758779610503996432887318044099680101165299936022333518771965869930823576272112442123300687329912985158429412693729862520791731716990810270635330787974133563287158720307850993589567840256273148229764599159284201386020114993816849734650995570615694736022813727008960593126300761978108302667683669270243985077029202985705309799776073346966638512255706911537573252950346207242835049757441381048741266783520235280707549860137564660770371922087198939896445069501552150571467801382150019553851566443808044511395516764376109875203344497455153204518708922725176279288771965896358740567145183007501066123923429249456063264552438322816162977095431129075027856006081308050110578257517180464553206373422236626227780786310092165518833490726534496881011414761432897448355009564747697334509699032563648892911564589332223642493594186726865422068267143280788764358924961630381881839571591627884022172438961937967941430632711467520241734226591208923878706270195638844586424019393301851060261798178124297593980725913776777052589624419880996631849438330373853706168875872415059336548765013465098365118097238480418085158674785044063603089569276126621265369052219686588615952877203303251266103022682661543627919923441641950119841492956697652471093336754351644898760885941743486255823337297143141026209458856757145113465166519516381546719547089718892228964578997263413326770004335588298102411120567114748924800602897831839551268270824814827253619343536077350010663284372780432585287226892258432381763341133241098892721039671139278504650971132388154458815035264778052794901900543800001747866585637721682675956941035139797056594752962739674242529957542056099357057859460735058708088747414907469084166887359480783000266645805940217351937401487215553071424531278254516964433301670284039877293550946787972872798618899197947395536639863797967852095368072698189442572749061996734122826953130289488579782286174241114199584149030627479196115583714019219943392013922623329586587108789925456505512728637783395211653588572060879064748953798527040416002301863989299543797832648358736986047497090419081310473892719579142898048498104134487349650676579964591633560646125439742453631288946034051778191773892062687284423773822455095536034151884067791077230092498642765730238286169966287623507228156503122673657646745865126275192432101612053477818862332403395863052442489954593401839959950346638029051502715254386413335122463632866394276316311859458974988181449824986415365590733312635978230799816997416273604134104734987109963427016846870126009850262425808327657743565762451827608212187876135250722236902842385642471952475969991639825055445352142877311401330751452749454485148953624733870292077950585168497980175714970270310435601894381424381655002887312535908380675957062177441532898472803310672975689229649087198055208318453548535114055481684841651020076556594637655922374853114976675075347227563613428844133396328657182675712106494492101690015881694232882981638215348640331187980573750417531723327903878609466156968888757404983188027134662968725072469397273730653848120838413137979372716933329172551018736523322546912294450452741039352256456780649835884756073379184865148621921824664420024717912951859793658016012151000056188235111824942860032059913227855077558127191742817496559399574469965544303124144781850705319635517774341872096079450611363201027317221506662135362489294538543992876802197227301682894529716659344190903885472969805435594396590599633207291874252794727493982969711028806423728769794210182622116891453882019933601387791723844620782014825547948270281126668632781715909040662849390527720314902801074310321108082720426533322621518551749920440010069990817637899209631058703355854954963463799816578680954063846448036249360994188220029878259761451047248713658945183477793972566446372642433496019817941056575187465055319684976271334026095307655592520050704306019523614802746840968370483148211060607197561543971177778294555707651763969687391834589981063847804666675598742817555754750444661418200741744138452927917287807067403186775703286915980266797025822000574305941299530393527290379790106379021076464178919136185982757353289873692929854650667001321034199054203528735803789237316166125581568541536839154444802193537241434283292004183530562448101403532938337272232052449342353389438291906018752054811068189544333179032829937245038435354535604330023265304743101137718932718585042504503137476720713025725665296787256055625082966072197004066523594012785426173100073427850202983829237819441772143146196154880148046396448417899691821994435014804722186279596736470529295040874334416199460205303406441366591016055708170641737207728699868434951929018544298798763853453775178856617536182668355077860726227605213589463224866606605843116359054224990898056176775366274639390728341493323973995827695662091615415356315911043062187014344700191602257744327899964083301407373074136647286172617027112304740773207343627611079935492962310200634110078825020347629435617545422189387902362715365475272966181981092015329418856547696679440175306396929117931735783710066487810144568470472910349890056142352610251447461529318114232802173146692778170851956535275616600570005335581332666936377766826222330294039818264915395841064899608432716899840759373582402024571777213544267306457002548565503619577749516524215788211535264462341077541629363655702010014429741743601205408821519264181369280974894231314204031792848160003803703004301519815242268383620932231179891756095469780232458788592982479245394018024751432331597420505619315880776239250608958158368923347771358892573058623011279673547369573347074257515346771081427230455856811709816448440243187792348264602306044001979214472406302313475333423020118942689362234010011831898062785208928507800270059638018213610579212901157299768973610757078312529873119808316548400097243262873781634376088274963785863485901102796515022995699545486699209891287877600585318509057585009646643578559462076761472131614564889246309363535518566876085647903578492452778985393414902070061755072364890364414244769876339884715746016191526758692020320533177592727977172178848408796143293987039619501747863844648007181643537264170152349236317927174280165987302610027611674903000937878173281120009396403205346209432616214002064322745530525691616714621526157528569799066188550390437681304386239464508667872908043205166298107202779440019350908492788011140276439415147235120531343913802489730686994451141530571747435057843836297227598289903045001224838611059435803451353725889677938381682594666960883722493824484112899235397495093216761877504199019967911055249814838239329866962470267181388224026545200630896444802097483324281512937414139753331129629666534383169034373383435214021397318165581037106875138331227151951281685880142772184003848667237737427708153598024034393946195760702863152602276199617564608045117334770727729897726030416107292024895393846344520339430790465028293104801820803637434642384184695396360425314554526418407298920174118441631310577249939736947064100986742255794634705551510237809677895060743646170519207047015213660128876143225938184974796551827758852067057345947164467417929252919406945272344168301609291801940110353656705491473248681531526775796775361551515985113101516272406298087264130579147201901184219267539877429929710837993416157315446239553500088175852710733856945347580288661723871633077171071246983459402191946382665590661274229605692688316007975260648189034566770607278558465784813459359093271205481738197293067311119813051050425146901240557777147702104371599019532063800758212015537401578228514494570478046510573968782553364472827688238890438774592804472424385480629178529006282068631235301892284326341102942734377108883080399327472264687613127809772381663826959498349401670444096641418714791249726508096564732085453932243519685405655381248287023242527438614799637890776534765354601965902055821423135485133209891490983159543395980343811265622255082677709922056317737416014986453278680601065712672571204538072593351566523037079495827562445672403079148089523081075842186630175303302769352170562109510204449513735014537667080201780190423319734139174924406649266320998520899211792689089189778385325844741983724577817149412178823260146236316472570914106818866356727292195514145174509537522542047528517790042157471780842299075890087705707759313385852707720951475201885332900974796278549652340512264302722097931314656291510915721250103238679023838388253921705554798174700568548861638229711399361129163121363209024312140094967459805930714757481251392205144796431520348563377798143459929532962996050383459347353086910756885060436725803405264657964289921096449194655218165399757553882418449590847131544105605791090709590653782870773154141697126037499185742604343677444111107416049323718832300207093001387907328093838274325591526416975164393423216802853820925761969332664250736360269274348832916317647371904948857257750216973454305880103666787068591716459740616879314281512140044481477870829019268589609639924339567773445823617373789433638230806963310778238140722627958854096321158781840885048567745389970877547087713821335741950993157629308571435052111892252187334280905199121054302510251642234531107875119206409369039168419469610325418688351354673822784403860279948896327264706092530934055406065949567755774569312933640876047340634752588844523118731346153944779110176711669845072033828942567226181216741231978856144750835287169962856406344540836260006597209662298994388704895252765611731541153170748664173478009399545490175600956549693956372835847710709358636359463918801778773821165663148185264528763913998039161637182739266278292796679715640632732226157474295872916528622240994227948012722037930851941859435716477929403176252448062972620855273327391686306311629555689215827199618877429190926974220079273224663534774838574586978456600189310711667903360168283918294957028225671418147633891873637350792062706876328310630275366797163329596157893193585498800451595877804712331333499099472316143441065345803794752164377626623674584480917371601718021997923557749407569074310679370448166509593623105740179604088379877777631386792885234459972399312559370183173841525769416587277196509451200064687690145951292801188319857324968111199000636462646610790081609283095865314093575196348600814930122750678045786337820761678724557656751568792782032259948140585008008050713354921597432656902502802181412309876715698303512918986215489947534990056278008824633593884598458696422264673812284673499183274734748269937760157731928622287514569934823930980752714850837245954843868357995878024949463083369029448837563782259188900967926841212871813042478068881574822529388848096447778757412262029008597094969310654165200112872707720409149883961660433599477475987584049665143332530607036519434260468242160156809593086547095000810382705294538801133570355501930732407990231503007995058010067124189372604807660222414471374759852322355479070176451119103049088496197684099090219008010935902606968078653180233577185946434984207397985192706035778385778034156784675085470316393197907159308845849410589916553243039386345309461998593851761087683848042563979321023440822663364873967953380483076740280005434454823177263952209914241446822656403834417547158011235520106095943150745479973300871652592234507794174348565898324921037992679296922010042381726301070641828515309573744092576711485659316001348149841929691285238643809551465848149727014801103903834739902802923461451961974954968256326936057642254674566964251335487530358056354966102120379423545595193197290282285809564830235578978425545585930889970959307373262871787712698529562522183396102768511946943236016879934522688050377535590169203753417073649916076974026629241592648809264554282873925446455463471692149121674858689762467195082601406432283538994371761953152839803633194094108190520094273828773724264651407288485026127376946373086384365487851114513825097675544138535071777476804704453043090021307138948757440425134061077022316521681095469290657784126709126849733763109014161219190677550469511979459029321051930736931032248999175294720588001117205933924612241248188094123115761417451851071379311520444955233262172014625081468035801337348771654609997904235583051926135740682310511417830322763440554537984980696453678412458387460709870606845444693982590457449428930240944597260807926574516130099158404915623635689821562155633283084214097461792810542771069660087274578454783670044069947014209588274481613903563089465610789016407216259510561758415549472648744714013451999115040718455020717266158979100315106437285764727879005015733465817484035088830067162198438327088355379694115568417236142810253493827467178707035897162956295865156748638798484487120949588053311813793503290567074141479901571379566154588256089291571465296102461772943927274761511233368526692678745840637370149857741653650182617276699880264653662947015619190734279012819687150193461338148218963349107563394513579536286169419389085813778838051442842726581476257782017101873079674643100482370342248060027599907356597602024795919276245058922258901352427594899745676627503530662376057571840895056036047229453993941212355011498346853017674193758958955547557212083157823651338570984652225826292214033052338531557793133032562356662827839289496701710624629102324276130163274222219670088198108726740099545006634955857078621761894649849609837568889325805960388157626595960852891363729941038148539076607534953021434621345944626860864893730033717905199690961869732854277864862616914024122247586968538298127671758784249716986915009989692528480822255304440701708467964747605101174646963089153868445803118764583126294157968676167944943708980011628047969762325136905433992063004073219726820784039436480612036976378615449280826796379182911451513649058573389781086043237817876806755199825959590728321763867772431235184766950828927526870889023733568485540726229631967299977857436983154448412699823352278878066300855622848715995726982445220884220125782872825636852966119131406229089562898275580824063187275142825670746560789212904880078879165039297366942521920892124618128565287605134438336711382572408974230124167238248814169721006976552715010323011378276865613600706195199500512163996433951796028408827788686632117999010153578522567997133803507703786444866984898664642048419412251715261868123487596062711146782552851787799449197017378014886391242240630218625363947039961423829300747440779715758342245229855778402019904881873478583261007291662376937074693505120642303679778570806743647285062595825193643964035700729384015212967882108257917228902819623179987622353490936839859280892338998417544629943730740310855249770103227581080104533393079978723828514759241479420352836375779226549201603161555713545730235979288504468081729105374764976874833784601348721777135565222236223007256990117521780163786025909425075696503077259883805270778549408479787580002752819783078605393416445363343157175759028209005764725804118132841937986161930294056255795514592963667897391257230445988842663333868891834744657143974969691924185078798846310586955707442523041490691798550559154193775196444647408166812013128526724051820479586609735445012041513810159665535931491347010830391827583576750956727952956782428185921030589165830985159512108454313189077842340210639236489547307493981497178119395263447221067068723192711661642851604010383658541759377660241717259217379704932157992041191007971332149957932608195289766030273285732295695555998137665517075628161760658127272281339986538645455165729343149071463938882777813999202703362210804933976129621708695617299030586650028247763568842477112740449687342004890663148586290852455589465880467440249428068907641507034601077725524095056547981472087005353046954225207084206191374426300738233749523088196294033254666051982948433482450974180931399396117771325809720246231976624615055318324469475060690113358458926949281136941117061140528557088630000579175754947240007712688846713719637313020570712425747267000286574071096758641222454746108381081497852381004767110883307742849351356248797844583918533595562176402470352114568777070148758413390916685013359811234396122902651793802017111899642511262373578962365987244233850436203879947986331559364328348353268051068497743262443092010708715019738221170626475046246021996897666974718459104847495469123947166766039828220288478179022309204955555219645593238679010192371234992309829313739881652762556372011565011160290818519249671038686917766476578770797742967429062170169998326089590935607447672500902667911914062337447324087329865018908497043517839431004943945721076452638520675508641709327185440179658320632748977157562975127469595071267421690882148370195908065726685559477423173817948325650632696256173609605339926221871262617927670634405592463861088178202653413168216386502486933697252202624967199931270037603222105969865056714603614784727199128835535727560580788180420580590871598856058979033349223971527284872020558068395870526416021617414303861438632722686190663479346499460749889135999834588074104976870888663698434059447064519263953157108780964185753038783150533042378082943940074008247173475842120422410502900205487142273914214275077111643556882757888534063102131472603171009842539810411734446194194622503690219433560967683142158730897240534611160830908304951392095605409234364024752814195806121510121117403818782507746968135117716451060661045147279132945277482447732943350869163487317065782001204647902339688874667960012491635759731411236429155864278322409712901136158859537150761469469770075927234851235405518998682242972619518714225072267685761051422425854806304105701843678760591290961461673284768921184045944047395013547481685516611524231022702277488993531121930009312991407886620507047435637134243397921557074770968850603998948524596520145418460542368699904308345827817831922014868449619416559024811653283379728099898160624737975510010175619099261772349196816497513218701533231534809962379532664161857508997708855033644083793046355812893818736026541132216222104650789536486640024949415166961026871732903382118252531558688755721545299438481394531416244795145228422689775906212602491906078226509690695867792052488450974616741399791073140087954808918768229254329683519465974153726130790220442330318881553765287847294245068731390946562428649323859326665419385847872233876060080516710829920999963187421281146116863694432652647803606568571691978784579405341029398283263098148791623777365163172999689623507721940395742677844495086615127471290018041337084040288205724626368807772486262053074101046524392226403697982131063209219203498005249201766981522305819974292024793033929234208243019298345425918888435339308347393950598467816186764196398752152040610304850432434520302614687935655857178559918013566482503817495412881235102356687446484493806114327602305728260061055996441794258891596806196282278497622604190165455915292789560112344492421673432929465325237877850264353815669184850096133419447908895698933068948495136184961268460428293563869554599650590097272853185154152949893750419087293994624451285182304911275807024614087385323445063279824663202698234293179598545194376956485604174130940537911032186123821051327800718727125211687115686191993805043386396244326742828722782190956767449772260557691437788700380948854173954836929736016552024122729383488559194228049006648602516077391780723611020542998726801236765598137413688199644669700688032505888460915453197378627642367562543723122643585813466793223485456439273928782882120328952152034411371379781726751055723171816776189886652373891035884699679445228314067789682248857973547290728898407556231796757457689080853779435289515902855070160865542196404106427507250218485467386289460993828592731083427672375625073788427417280813418912283474706552880391224530975991106857846940854923895254325671882739490403929668299909893814605147194747626390224727853377888918029411056942762348058588221587494039600875058559211557179693842352688831395978327905889696766138872188928735700268791408274735654285945915311785428908037249318588828532164198815791222748421112696471600349830563990349941185468453211343593978650369070099451378332247636544092535004888828501323074148983380763222448604082975568430639921010456887832740321722653889174553637065262206399042247930741015501078664198071590387052705516422091924304502942799936202807840017164884406576453190780640041316063417634058180409529322211802124901841194921716677180618739534273692161004807509660366365297514391558246193835923329130646861320957502626163267779716023744155639686959345111284699381803664467882721492586543279072758460583908620088218685953130946074905716404965174324823292810890540058881949814444674998495533896203498862611522247649394372439179979108416836156433810844727535831304340349834814666727464773962503106133963403731847686515032839450633831254684227944062656475706169516775154411395530294886479075877520820482027422509289186582939632935805363259661093207786075911890504577956441271728259127131017915797139890179728366188208590355691783504081620230345871789898221893178507723873282012880739241303117760454983025680396424387349438184710964199162642874589641923443801763645352822925422776013536565477801503485955653453951312960751781929851773454799442004997882899342194339921996608056156109601389875841180150416644383628346065056636426271693306739557270184642204403116891855421346587579507876605449192732130796069031287038121074794102512965307970407913116691072187518357908972842082541694754758801696427086900950916766456468482660691896097274689197896005539322985478364971616939468022832928883137641669998740167204385289330022381642408857502141584611869529118689693956762277182680806690623401693796102863091969834377883329908989771290397312248293876049647095069624876715785475685901325752454066536666674226542393994526287662349038008365320276812232068901758632456309230846337546672986952799151014628932798474997592575330519343262837472355108532924432044152446252986644481282853556586565235354999917068924690246623843586529182688707731402444866080997862573389546520035799585609200021098506863113239354102866316983227343823420491138812706868153767260337047898572972055946032175555243949444575618189551431458145737981759045093885973060439751568295424280971473242752316056066845867922465719918435103239296462343675336292626965817955459894722367362047207542320394655864654527509087178936596563960102578418530821631786095304249459091253746068594589356933797322023595878748997744783839367509119508523261551297912349855205451766865268156371906655087139900498360741655532677209420329881128533246275307308135613082051639875042319010652559048692683429260670838225045380661983305501821024796361157264568094462698227360634293992965325392257290163214658523402395663229062002845857081418267352923320549215333063373192935058894296056119027432365677488472232204104901089646336039666919868426157366957900196598118156178772308109007495686679893539743331304354322906208811458543693627551631266551025526908567548438512836976002606125969441736702408395949396089139799070294614878935408726532827276280776462560405543174210723958411163968226850772774296569622317893190860476161753532518267439514295682673076540372444829082248960630248428851400673219628317195249662019529103039205932842794821199947007625568512869641613398147349499804483819914874809590170890303874797152289136969178698492788606417685914750859149610542264766548535024969515270440918535541632562681075897827035273763499832197055127444672046669513807446926432434974052141918240877260052903369893306807289599220361450230806918687208832131276601396540516466986129422697535735968396174827156327094157518637055544138818289909142435025919271527267468847537784205878002240904699527849534977106620287592301070959847285511254131834194673523591888597452504726241139416574021257508468337440916853378729837474932194400552345337709562971372918741460451971648230300428233109655130211372592393061650717209127162189143006792376799607228784544121520259826452760854466359901684188785812043290886521272397139363506407336811335101966280326654880240962692265117774565151098651452140790666007131529479997577690768966568566879782558901848826356010357131824882265602556383258873229079725123821750890471926015073431892706400062705590428567497102819833323590966407947216849943898380862460263143224829439795388240104252238021208938992315342562385530627260855885541347619839375538139173141946201898306167551281134702553320997074742257470352688187900742030557354306052871994130682740740180823283635720496360870242765029485054592818268017141016694735202567863377601888308990276744413984479227354375631259667712738710395079273072560155243479005314605702914561404124556966039972025217828158207599950918003810302668670789073947714094285360746933536377678349269483274344927562940070755216023438620314240058024536437785547696047450613907611029672830897781731283201143333432790268229786128001935719109483377290134622641365142653038935598016692747400388097416589550852605219389580742636893969179059118663032262723116124930836738739047902267960599644861027187709578629730310837774926418332572089696789029939251892445938697081067609097253072309131990298082386806001668953526101404288701142039195973576420853781675934260442011123382834445969913505117307296116013204685477151123873631864605157073597640946102631434388741539938698010616904186667842083314144178162374189362904029731923883285377340346154599133628707027017824033074291127402218648226861746252448690941464003652967277844025622853344600747455166245773606358626789843346352250870330639199768553135455334636896721848367366994108041069408543572922820931626194120373122271654137180750680307887065866871651614663112086525186267005407259211699746204907694277884773794490754619415776406471033502020975302675588955726865277003490229280041594671050955055832517546653995708578607670608704971447441411194641883637544316345295218070243167401716901577276874395651271880843766734325202470736628254434830055470083503586270273470146122585351322761253975752731606562136663780326311626435504493174912666330189557124301890153000898719477129464939782402220642679875741790299606180928899615379859896765470292862803983793531189429867152514272554112638595699723732536174755067214416762254483369929514996055136483501760017397668814402192282803418519939513022056363608344498426241818275596178134874793887743098359710574058731724761688648846324738944955765492296281921355685556620804003626117471214117214729226191815149941431589907261045843780143990626308856542719983735071641785563575919026681951017751622529656352959253814105734771039511928545508935418519233901289906201921240344403904859430425551847861762745777282649290938937374217624510353496125191816730297898292928949903521305819767691743813122145507453729327521558915786411092833809905094833772198054760784678534656530574564566186197887273197042892628362605776201988077891039953051861151895932599254184366826268526171078567961668639844271491933115493988442808324294077119417964478882632658558060505546660614243779992132253417726879852831293329536217430950641116317663705350530625741238964494112735291155302483708827064226878409539809602559797921802642801329885102045931785188244402794441385310612084419509598610868048980813135015716874111282093072307601158310340884450829539690564805426311289800525261104016700804179217572834779609553243383078416362593838048195042449244065610906012598272602709868936843313521445656099952615340376622369337979729409720137893857093616708190925691500320350848521396281262346875735025723104774727036551782310166931720596939088222730021423314526019884389795366835419576751170896010852680073180960607632852545964047622813635997484877329086788467141302071276695873530036829791806006656896916242797948251305209652808008426411340097278034113698217758261348131734639754595826436673193141740293514285522500137644391106851850239638632780206317481522693039159944244741234302869586856339797851510911936592081738529420971715885569739140710061485869467679265754182509722784274884166590540654946830070004223461117630108260841190710168680141437643352467899146199182340013030820175602492040326489271136829317313591353905262949446698221721459589512996809413399590188943184373377140703526661965223566804374547080503637103482406082268118655714003591860762964816770303766377062372548275192993521707106300620916889383446340671448646814599713957856099484121696150329574322506414110122271281428734241055324555268330457460202372726824575683104354142893004143745392119093414217691499767124443940157979207979826211540816386879092853573605791762662774386481284268999687674015650791838596436480284729709781972531875729665899878306654524001982901301790609454871524646574611065019994547489411014622449623809098304990081471544916861731950281570534491249776265248605230506377356570095976273931251172956422986092644594729695453643045479565582651717553138587541046069607982598707916566212010542602204369371386324912018804908178982506443129042025606834725886821073324418866890846300133587434637057778342044457273922195412516979342322543353289129100219873568270094496954516798711410476407931539764649725366953523361645278377859540241228299385284066381490894281218007567381634250652357567958911659099130976219091365552471230119491071769568934762020266837054930788065904072128600292457695066553025276292137961124346848903696323663834055972901040941027685749046592327098983564161402616286385059558678784710191472826559279566308710740628856251579315670773478334216141825371867535734569507556887350095797569436843429431407007855946882256824202142505615464404916530904254986449831232183943757739687007518101250566664006470272120787889579641013494898428307503451868405887246491630210627743882310103807597563117571866278467360990845294648889443473824743880779865404358688592829743635994483783937537357946003657291725719772369816068489757788584860232283434792809978361194545810823740583421931313270862437444101481403511032715752634966345202920553063596267333350577620345411076610937394318636550640191569470103701380204121092391248278910822933680861162265526731072627370362824879676213411594815672317218499435271588815665795665824763675043551614751244690124088279046355927682087971454901663368176494676558538864822071538183973776068506119438510482512449820899310072364029557247695557942288970238167901172148003591932697251286746857105205272121424034674468796907183075301806149088757749354961827036759136848886056512114988654759590743428821530947465481134206713916130144095207398690169473875827099684747167793074376975436728853189676260924776719643822412637942843870510569246035652308173376656584483498838841004203155000878878399115036271423443434993848049919167182932270665534276434581921622319183637671080824976826213250218217871241035200516206464634659392238710023540064477505275530158877180838114293244402184025058775007151578533392023904876106030398999850805894495284127717467015679261888808801197458559976817439835569485754756866894320536054105157490215876212654921252397944005979592478419984901952218316310073101375529107776032671610078438752937853673093834887092825006566827243813058396126974295143191236354394580609954852890557405712956995902012524165976144237262796781099308483323380051528370758616840394192964702157473241308002696911833772596763688069635793004337008043989066254034296209793853615019215523681505771861066186287130464040912139463118853350802601070053335381523501478165244696472173206854159557482007860213180348595685333089238337071475190961808658065628544627077205786326930437250050988506473442474506361185228530799295743003120680989606981170764371695616289966836514518397301012571608349886335685340019569551130467978183541018278875606728627871149120664828030620891778963254085452501564809495203313314208398391398206719155783867397857261603541565750885695313123181560756567481334296337657999217910486578060688651149240972376680428319410326074169792823495129601831512160328921134967591732873111427422544906028553947273942295523946885511098042948395041522340226745117608547150055442675419530459610809627859996233241530622765872538743452497477572294111704921292770968234262415406965948415306094347902962414703605727092834732160618223313386789593038297677621585161789708467366817836078248479716134169284788052340518369917877863997575383093990455095228105998616014959287043369598772215959720796820017383716615668754358703903173752379984314920781482492174239455212617032874426427065883811172111063011989250290478849795176147454817894445177833158802335412794005835449876575546474742103129954305806954711527509171089042032814007193947477385820671498779891209608526035150705057398856444216037826183350876032512492323451658357678352120754819162139364856360343539324064136854190038618207858397864390451819844175269964409884120468969262883905494512992512912674006238684249312123019791761485379292383712888728634413540146619601033565562848097649678610037037260526087198954091353484672613974886526495295853018414870107224692689414848941563777685147094214133069637204696706603137820173860407575834594567361792997006061972452011107197753408482203159575555413271324026268645979287294362902729412928386720268214680917873273918124323832199266262829768440755150320767198469713172097466408507445915519919618535434460098823088747235193882480516065454895443587546200257330375442602025071196157421155179964671234790618700625564207216832049137140037308822457948488548342861734926838249159581228491598546214135705766343866518087037398668614250254444018387286079617478794491806105092342006677174290236834991181322930961464972471339706409098264423536279499736171563988036873584363600843001583006211089112694347774569685289818808280412469248808795149717903012452755338573078349066676445571274015015969893727729898863351110662267400357966641408604753032236283512085020211208051115661656473658539166395105180613579411481116402761851876707003672275203191000370033555179687295158565377819279755412518130787816322158614221957993424996538436279575423610592460229803719263697723717848170657648132316589180056094884913856832494525222502340152272442040495422271914606397976199677397932883649606678410623290561568689750836000157636131373616686911235799403607334886698250344330724683173466255512112402679649529628005642557374066021325793797300114252629749262447369913315618145766300159601936768713862470131901380753423668843908189789891099968099808541393932230089373730590592542367268241554681354996408253592176803040726534871165096269487730768193276147811713080555077977881373772522079332873588180423158901749046377969322976929055445925213037070657653988553483236663391437281152578504434614240059270035635040670180228919471600324876236515532477946106641181661672108468981285116227829879448856502186197062248472707993175933016848573137176149187025436086166106296873603492554042130499133937442888331692454353165874973117418974812922915710123475866141661253759844917004033003535340974449903408981392954105490188398152005765684423396213302928021086635691089003386149279558597638445011085798079820950695941708059622382387337990304415228894000001608451566331803979397100904848025116291853575393520389787877929316901370873372185412379800475847365426210139290072174890320669289634857029404992891524911297024702354451106462943169667550234400417143120504009984393951593591324873957044652470067248251167661577531569020198728212122370046044612767172314463867092684021768685443349038794846069764281057372725461829662380870606830840875126843290382558315474575581241610549828765470619438721797519402476765886449640864620260236374751216227976227147292839380664505464576011034911601037535473677599840400239380892008218980210031218956755840505413597200245024844583246901708165548171103905421956531278952242599226337075297553835189539507130534363525895422616723890625749933413606906504503115511283475027470414977730516846589664661552918032475663434570943325716945857989251072635431435738374132354084724773949453629415027653891125241097695872332473057987198932680939918123994104760423607817330092696638081432380717082436548344381410903201621940777871574483292957904087291744663857621001926011344672158016618672551344397947009500168150352343473491446452147773393925945694346326215994048178348395631248256932716703144850825130142151951574534450116437204459067820369383460738155582733659796685884270593341011079113868500991154690067733032619650280157641152684502210458939472328870475480237891562060307652865082246092667187943457713319815176665760541669606358193186775267662265190741972865892707178510553392798956975414586114775550282359346490950080375214438671551756894426992661088563421362540174928903725377175137667677592090060322605196301176589878316070277959460827323753299770319978500266183058699048003659532773904865023611590539883125460494906264417311504787005123389384898101109690907485031626905062927585176450391785028714507943283702763095196687696791936528436049039672120046867565530909569847460874133408696803334875454161143572717944708547767581436906884155771002604712836386198808120785263432331288486335818924986071101812114126750583158288206597733283679583021845264587501670942685692277829291011317873520138538227999423078340335913713997950332730156361525451150343246666379933074837431493663253716947884377069980947090013608808402312836914380658523491935212173248424066020001781150123945561903816153276880958992877522048759606720597445959800399993498669301742286159368426585959768536389820513706537655719284263594394658624580530652863400309953086640494449591398798723234261566819622732758656592844882418830133258973894463342992274249254027484839953643628583825096066833973599064781258473913611586815686125303629833372925520923302975962611793851708961296417500678335878600813576353462528595168034858269691082528941483711038106503270533067709702828165416704422222199998764844127750911409422115038092960957226704380193688416808098276691831361623351737259011170953604876601855696711258168608898653270125249028136778151826484189166066146165496455271836759727945731266878443883077496909481748577171825205843826704667313657541839757279181882230655765117087323528122195885199595198094430455366822232913833208915618299064199093842281587554074824152082513619522826049297845540608198467694897117001945707070465840554861636694164388433608841622852721571925941811344946425713203102162231713501373551286446114872632986956264171243855668905631707643343971020827660445660405612478687684398891342392668018048204267622150751692594051780139638373699472380515736653071280471696457640587894087084079398770564844677700873034573560776158145411235471293799873685414908285934141441686430408575326540022944576588406025682616115374224214929012045853892813684840136642777867678073313505043108228003230769000982529849928480764681298293643984040800476410542218259756595691124209497331531360228084452747965834284140781894073557515066905345257049077597959476184724318736513263603025418065660288641729784619658524847581634393603478818718066899492298727191846059203693445065477113546523957061569734157193488341754031394188629899010180643272067821797726825070615255873322597629299307095116868704019053258357940100001820667972076297440943150702976772420696703711673427284068121984280759713341262505967747014831313645624562940296789831299585175804259657580323470166437037332226829625215112544944879023875207419640364750342608892955029426876492306611878279688410974540570606917601084325412488890735196104621610617234960149163899992027824926549315942304126320997069958010615682273087464799696577943852267077167395428522589265821987473442913926514988856424452794964756328843867641393690218345982828716198548618988851600565510979308499732556537269567149862369015603775356553691068175875664847171356446763942360639191034725866029356822637325676023159029928059737998224138039922267921491078707958356709916326687722542893542268384588814245779388335508802414947096133961242160829215558250456264335888909309933761209685304907414028399035897953783518618525428232899978260667421440087033663802342048564087313224776277996519426699412540582898835209967408789004224758806315057469135136929774633529634995530879085127436025204469263704160240386984172226316171432985382056777662773836608401218665570410691003956384242732295843744306273001386603755583940895596606757485455939894866838754997763556461556998390209178863756857784559467889592226323078191034922313742963741813526872742025863708776902471005422960526685492581305620965841725235175251783746978884050119787090549747318877333842980506705364277397433940826947730429408520705891424013727304694739710452563764250028420573757067773567836469747437405897319593821157256954125420509509424920289409068331626589640815988541601333610989170301967121311583920367552617495045600881899263115762414570547386888572473986833863349842933688279672183993915949073989368088222595414903807142421056906302505255804800929349391414027011424396938871412071277860120719154458980220973974317081331577696187834938891468204705501604977194872650958249920354562849382281476375939976472969371120647563028989062710876064293919349563127102185994394359736979344098691036097538524905363309704344175411985171075359319916332713565732653852513469246600917299292592421208292013441778138530181686045032852232004378444593117655322761862862168041884282776103152971605323409194143266045244608267861848710396011713773721089305436888158172431716377910810856252415007135434619143739268515377187749666818091751047889231040034619003734017786138350861559720148697312899273975413448548552583296595541298449723833540292139183993202567467551490714398520630911388185525925766948986254491383817503728915848431766822632323947852096650843376288866117897941212832251369365419735691182039152031196931669492575255392476615672675664843759558399975009158731759610944069525337781940139508622397428460770911948742243346659901299660489953770303122562272752539158680710225182655022883868889236927392881839982755675320318376660325193070735958630557809056406280422949571740999283861035029421311608499900155461135337221516255284220476176842569859066784536795573766287466972750828215368785024027930127758999585636198787879026826609361695430652005142030001599855756493225259544427406677750864373345532300630728781416673261339863053004038962240033988846569734704046298931847756047001594306639886687209268545204139428663620182212483616187584787101662673568983650040813646239224419075762203264775308648111299122873807927369068378326116245992466797303739449073057535229929681036432544254913172031663579283917868486105088398244646560659967851852493447043598230940521351071230003307309552161359169773836982056676051841366501076787276902450054020550063014156162456722186240298514754862794292596805857312540939623996111014114285783934036632526634309032057154541570379485723523915235985017026625022578323577194590427995445316572348611687064710631839693640089609577500403385116785734398405752231147433755600147547313764072647419336032614953864449309685310307682198326511098341184455573500273500276971163587437112963578489283589624238818658919851544911427209707277477983058856138941249356563483012451128486048538285898032280707221554463130622023688727685610185087454824100251017017967235261575698775266052317440869495496791183272025331621393595379983458318819100227254167154179277174087201723272478277085574443875495197448477379653728871789199436152702497681767208414547407244512110357807929306447987297919107351706924440632117295344744280117728140638288166810390347095189275989491031729632120164192160179499563270569765170329745265260613466770538662879335684349585988799745658396876878494415945564606188159891623245929288267779493251646049396060293468505227295317137891701613417826472144639400443699969512010965600462103011936422593837014204546907610251465671458099104519737935320523950729385507981163317443460705801718108243247285243294936309432784820039810545160366111875949513700190090915016476586735585198376788291991555591194848017362988421531612298721114316509495349854420360203992887528585676480574497467938945897131724910873406774632589564690117029141941277191740774482645194011624763575216541619548103486162095264481376680950725049826421297366384990272392643701763824487734602881240494551811878998042135048756849319386774774621899999201031415736536962384558728782024238372910592403388031271194239722199805013426468049689189005210541739765428963841667155381323986422824172265015706013673011712989715158824646275348322519570709830975954829878224881485622393025357617088467787316675607165418872986786515266132861055904560833588370138678535601294223081849021504057363598635894859060084235386391799526873665153100317285603578988993033966425919932512323918987586777358945405962823118922152585795515354999262880243326187277612929248833409716395380753817591258395602070713273273843777605664998769024723228053548075633178759911916186411954336641129650250289930313350509117128111426512443842516654530904461375207280454491584278584945384127584565559454818244030097425807307305972945313855634470582276201582129840125218288132558404925679198565014112804237163666593148113972110912478098609202301090060272179776343248012473029558760684788336380193815799631777534870907760991215559466406993722120890623824610354341446754493050367360625191061033287741584359156395866755853450149012004384231091185037229968408249039231770279651214291335162846480114073845900892625729909953534314930907874090874896641277799433200926366995433513193902348183787766741602374872763398862498831531135461612082013232760151307100994478895072422021730187873950933705802767871949451439185029922806349055369661534183046365628191576341327207099071912299346978372166116742646450434025012609107562328901469574904145079613673145397932405683061670657867269233766021407812984435967871379161643554199758385684942149244188848003157131277547111939536656219545842835721807447306683786169878426598878806130628673538231769623195983244659509045490901273664843293135380735438203260283255545443559801150306315685052392707462049840433713884876244729311643615490214035187767958355687647344161367184904196289452959351661926373862615516924834375870277914835978323128853459709846659721360283704650614618065602830177440778084878977050340266571415776244250258960110970749664479649084029695078075540645013875301604779152889241237262891981300480213266219874692526550662457737381986775766624566453659020364505371790603877906650500606596535838807427411360077034300914881053367686983997051563732074755774666656556210607574060188383512854388445064369590922176281550767552113861922123812976193846451186152745291474933818024054045333955522109824726900015129470533484571503136647259228128831068362466284134412989225332465329803412912313013573011982768747036180406576641571496028381524691640221777042172670725095496777629793518336996757230304442490658374236107131960549204894857884669908472171706904596854494625227834573283826806001044050071543739697531645224894870413289216974629158262336558667925339960251043314308189826272880224055753178113145211305853651286367898480325300253704856824985080911592746364029978871036130639902261945281858025703259923703237097573875638883189469857995158867458958454984684066475199354648814424585478606401582584227054384677078981894993664840336679067616494830144877265473175856408327881714597897225372133884647627857881559927704032175706139757318613883586503942504128975789087372413093197115742722347714938788436816735439189204265781521227329141398349226712053558900312705062125223804223842908705910085018691528544201866455585850457927323351756989846800155288586941916526038571087800624877681250442682988215269781085842386337807839950956095599036596809463656820195466128924883415133935255775428188594763448660079150201157427229495071272893859463319919166273673474945021588507119882275744022404120536006374851462614659057711162373362120208984903033504879252638908881821737410917378567536181142298902220992691733810603023026113928685150149819436394463119879950730828407584533944189375688495706624799402904929679163892639465155448763733299297463890975317381494131368324328916365220370835559072552930330060883455144360235054837107353425221876397454800405581946363792130491387137733982012731573886440520490380116115384681405866066056936983349688445268808117577024754251385488290992479624510654984550264803625910836207352956989707109668367148342730967047418805331430177575048676465805748560091298812526982842068696673141473122780223757526168442551092407963364375998019261975717054183348702426238514735083063778860651538648281904862895484071445782512284949061161560993774430456554178395883655317829560989404800605654431426867792860372496604614672041169446241664661350606160586978111479953850615216382997714928153942265150462170561327167836012176154735145731099928060791519961191439331836851653040602205986163129471335786965575110723117404092827358421781583674320381006608329993742246405982741923841849695117591678742702859901272589973381362050138164031742461718966925963775367615000805837484192983918103024393574350133299276308344531525136080295220092659128569570288777430935953244921699117059014977319426411853062481890833081971614894982601272396542722898350298806519210873493212728344194418500108641552586851564855756680711773668319965967871839819877969431390083714190357529479087136908032673941115956281418792622952055795435534973908113368814867016843136896223507519224030609285447271328586388321307352893636540536593466402354273121057828197204428783691355954872561138292993377364651434483910812538415629460065840006087282146033506479223823938104163413532403878365832681336350216381641986675536464375755510043975415790156738560656159571597667954884295469851209460595428758051748839363190703287430105173431975292003894304353313886185370348994146389029225730988777402931241720752210615823206175927710029496627572506815739669845531678895859877263649093497589890981801579744804829768820961779065131997747391848973376506681836666198134012106682547863895305574779725199181939801587268004582687664231125328051251416700930257900475863340059423836195484182283526055669215543990365118935176310984529997864780592818601601434590046107206474439084772558959200217257982814734981133838527312450017729731425237446349145854930215662102569908805057175023952633756444075047477159439901932522438187764056858183101798166231916558181268726677915221602154727643886871221566847627429773824516438889702657435508888201557920652115506405668827041025605241896557142494757339816936866304941558280742885574884191430483916177691166143627893178605670555348026418470131680354072863481805167065706154327494220407563346694256217224559159083423058027873729212285413771557430497987650863727640868225986901553875549439103983387344117685467905700823332130020950321213079398106253869964757248385922108776561164987155360767024678259109248824127356335999667172065658693287711592239849058165322616969116888794140513920921732842852360499137477958163605936562771838611811999178323920732059559125286507697415199845494511569167888076001244032819297585569760365681067783101976087573940971700243117240891141779934340961434562568506804815064479927424401895623512044829765988290195429738266665203854450803443220320678186923738545554372778364737811670566546688933472548222506446278665256458733669595271112935132660321338910267912303939418791703905246554541570649669656438969896664567227784536497982558109143184190309994164168472692054114957969082702653631069956786953866095678728910971260269118871678665275847567231437259599272753414693212200551333763316234558513195208869091182996228706750586190841511047226319022067329071075214515625841766232747767812700622774680928019982711047066608230111612183564128198636631203189625027311598630428105788730430695661147052265484556363567675846819892369370487559366108122277045212652326209661353385753789345942903722666870310251042893055766398137340328234953507607642559962246382732218427972207933603014566660847775088059604431191420759801433080830068266351929637975225794836790890590986217992539936833678661387408297098013224481047180534368706968394505294583192297339996359635788294071821115641207608806659187843664685388987334997807837222046228319231733998058090550731224994258115090772212256579602382519843000082016546154369933075235979635560057896766205016047585163453308075680058667867817482889457180632634620093150992090319049834245209069273335363767690824047544020903129576376760237088015618734705295872522399225155431153711916464430885612477151738138890449761413269563581456559039180940715078892982370652855713784026070248907912438565976418626764242760821673871684255849726909334630280159152707392052521490640699932191381411902195537731450846402725383863669808678662303092295878788627560633302790515597329788993305950969548096620405107724432893103124348687081155580985073498311179501000798630020944716541303399321255641031492892976593931104298398633648920558755770905872532251419556259192423689568477795431143475311929092126430519376594992966487803080246309173808874883356158987463974785184176900331153389269648658090981731758920721957274923914217941059940633850894772410746628248702850278486211608124724885856468441290823721507075257036898885068635899379416243935566875631771084407499925832551902567094965509147660196995282073146580588137191086002036329545193294600211346042000149155602294979262859024279551477995503572938800786129835025737193309965915476735782906835287570226395908534095803762177362594998618951171471408633166015440564638920595544399780319328771132330944726688479498516873473420798006283960087072365458326675774174009923832597083819354559234605059095662136000408456732829941214892458739285391146110344945889063934697829315263986365314413218652874286424749536660992258061120867467267893877635492393058361034466153427709038569132522237116577074441739451126212259658337729215095040115622002137718053811973113708839621172768766647090199101424017950317835528994182062220103924719445833934568493688395054293086045239824742042982504238754167334273160297849502543995205072789663431727887130729557658638870280274122891959179618645615934076557138577128016848866390342860009452143162236643402581305941547894522316738317705688228838080954375087130994095070574223654650776092443288537780289380114215594906216400578200437141176285270891768292012899330923432314706535277075544165737938158224028305557685617616878145274332127332741646055345648424260461859886776506851045509041120692017405560717542374188215016175197473076812118966628226179063449105133554506146332179196873821673506459424830254458141421124837768378552282757297488594814433598976716071561216030107250404383887182969450673665756859063562719118506930591837190962263947375287764755104734530983813547116907066265302973348190073163272799740001502175563012305221020816196002900137233858616954749019934966356129143398933989062161974807820896554734716524623788013419707675583949958006405852202400656939985893571197007281230714472470969066663257006860326166266174712036528233904552231262667255523387924584406674817933090895074609397446456643884503854091815175760400620700175569252541183169892155378834177948130476157517951472586749932465007873265528971893875421340105997647089663248491015283645045367743160328325091639323496185082882277838100273525055617311545434931316636321796229634909698760868607476025694857573319038424584044784618945755004766698255724378467626452113977374975981273754486440497083701589502160321364089440193974171858689367118621858506802956092455453869873874538166834932169353137299155489672531354546547858683027678198775587840423928425532196873729413359936055886564155888597054250977098112541063415817207977173573795618851189061842980822921019969265583750245750132641063631502419234476733653339435418246261478300366854241735122791235917729857744280345349321970609679737337167598683395931156100284280181968841641483919018357943036573044721956000827193290121109406297210840930784843541096163817084776516058205972081193569298281280106447001128382984077761244960410459139762704947441024818556548088172473670921985765741227396950147956014802646054048834883059836423847901376962262597233475953597342004459248147435949531174155719823650089268609613326223153129586066869308721472660251884636482263229905871887442117949733784795229103778376557444220400980897852268386064137254442411730598830869563811966469323479095455964300356233353995169748691111404695978077555815103376546088386859835614399088504807755217055309709669585659659277816190517052896340327704752733039439731344962426580864324801881009836095599868165424193239629623031327875989156006083286515431969955982843644639782187078143981769752636238479862295647162734840164531253380911606389305413395026398942881199480756470976128546891713431592562433249083608094340631093189794350535115271628883062639114741185532757758042504922616547975347645142885678167735909575956023814028727291355123576892492373550621404518438899554230340338669502130670208518483737726963387640904897488717134409335130546787822766813068783253607296233165149779475699326570649676160542165181331179958912636930702660507039057064077998929966264019533537564039441276259832177882506334162713298756656753717230006280459608201256968779043942140916657437790761432522177175604379567311536003087735297531101723539306870885293444174252654254838522521768439289015583098221141842663541701318008895035639284414799856349723090742617941511681208944227811829986418076013275267598285361529422587155712576758443922020314261671927910437314696584380855708968136892105928247538919790758038622028297464058971245672908398862093945125997553791699126939349986291078398992709539412164769165820409028184254634186636712595414712159707767308060701368596746024422695230980481672606276931043062903376422407540965345724150747463241822369563035570679740741816623631671826222213436563075533370239774418926380034083610013621409067836372186099837297200916979326046998150428440844443444367865433647964186394271192312808098786583843503765116085859088837809363797857516874407537765159264109615860907237070819256786085987788771676138117642511744389014866306418743038655147157522471143979460128546762213256944299409625668684450106258072490273176761650064606169720883692001441626164919472895588774090824739122915179039491686828188255725748632295223139849833194815899060166993195381551766284411444392563723507007276072753683120528100799388711444498193061738272363504763144052830185195113334845817778654230648441801156266858906184133593132147690255530000604758744651202092314098433711352852693412509592545011516768179021581055589932065953303707215809680214704918019524533509029339765888647901767355898535952635030069364543050677454590816246658933414709689296937516296338411759335471911123196003909618650546322273124287274401232367562713372237483791855299132109195672171020362335850393528658490520347344785453834027480083019812282118803878441565835805626285616350186560514276274485024316324847041070664377151323113027560415912077903111519097900551124450207146958633431775109077301300237880330793126814355262038067023462475259577864288516555053288416856598286358009128721781465198058968770663153424343326993470759575934557483830870654295636746851308508380422970481057501780256522225394710172149674032294427416891367560567486326957435246559639284808022874544447709519548192373086285642138703090666240988691942097610968832878410160885913071666130481009811278600189066676253764171816435570063942857269282546689896349099434101579489295337903973755760666175141010124285787147565300286228097036818527159130906748995121825391257988058775501200831063331352031697860318917493792310272850769056569628078164768248978623273692907821458997296204114073414828430784746345958124516282153098637505052168049720110859659106739401432641677382801061548480963753895129039417264573209604627014039746208364181599702833826706410818625995192540232080986953182200231840909891253365877393607646451646307950811756118557133211894136405439345960898701047476875774679165437975971117702594372017890569337482344010060340628912714991575913420387957767988417624971568733177680195580119253624859291418907748422012020460063593330665495900779263001412442423166106724877969809974809092414279712188136044416399272813616996530022981975844540504272463077142005369936396533873618280929012727307297230379526007967489687673071326429507088792257134368956932076764073973877878065987583022684339193412692570613977369177679243279714915964099513349993990159022982299135903477535559825483802222722340684326936946669134080539172318916748920433124785637669898172878042156189361332251253657924387724549161470182914608832449909590358606030076503166810561850225320581556309045809531030226495225820071818341930104168122892014981166661219877241516057841029119590770950201449591401979273848515835177836824453105222492874585123241836478812618067005972675830141243931157768932831669151552283150207978090830605056011240706950577476396332758620172160253300090168398873181130798138494210714868584235674870356867642570850224659875418720545957619553514839390764692150128321692609993930690069135152868014412667783343011768523277177345775030002551858923952684563688902594404322564858586835495845840123277721309961106153354761221875695941128211264264119230588719304429659293175609138198930946552062822425306047448446889953520506140384838824219996753908227508607348683757718450822123939969278384948167193006517688528991092369595646593164491242808216257906245660863525363868404610651518843267004335300002936869320732034485585172169682654256760883056592947832472417521469590644505366853438744807135200318982020625433881564032104922803200562572002515665589297073149668700260669270611217773294287100278695121399052343524949764986685209246426338230315712257066107423465879045292510877738904712866278586141909470447119794003988264689549674602279790687252298359339047417878832206202587980190701637300513986110444513901228085123986477363653254273035865329964576818157313923400256688649094964474661146953455787844227505180816805138733368746317359632416228264394653887437886527147635143279719893780431677770512107830247297192965443194826256748054652569466494983615229413640459024164087370426462662442530383118256675704193357311275823423769939895485130337621758628382421168364933310381369713015744406007567853137417123739125044018400454193152463501583522587187547312850381600378673241372266489150662776786761941751282562923411034244124781157834019818030548459026654498136414552264971146201608975238531070752221037458792577908965416296431912127046338077182497880692055755673995061827843431799924072988972375655669892533842740995129982030873765786356684335276985120785772128663132745424273813752369157830159572107506090417686062809009692056904213374736850795180530507175027951460026944436342477545156720965094557820270008195971278566985390408041138408000178360594627947173758530492786729305327837902980708928185757856434879883394097933490828315969276831972404559109173217384694068428228543034822800435212403481693170794450845849947838809273825705858098705387991026369483379812316382657872319687498544414742063718903513272492443535576037805587124520283097778315096279409924208292382468407289636633449350514929005070558431165562593210253148821887619280197317793773740763311945536853012937946898702963329994605630476767503321477712650567752689490265586940525031841595997743181985507296378151908237882672097657955495894056423819714800308365149141787345679575226785220977976857035940141290382457475918181647580186058306116350742184979168637011649584971760098787006520431023859687551783863239288713499401800332765209870759226641277246161505628717214811962380090438501406882262191501517683001107110892088532151448803872180466151002266787377422191669710003772881467506061382484738053194027684212853177854559224199323239644496982518341570084982157583010194410953412858360351558340589495772644979134590992282085303420483241048293232831387859898895162165702835656876070088209464902341452573348258009576139250630077385187375839609787835326614788094618739226862236655549983886695288264113275708409015727912489408464418677478346761444384635750128237135247989363918327105958722437121983537538099497970563308865210871574519481358134141461694126955026883182831381279970282756470293141545100607120467480477884259386652072032080882241775225177409739349930586182091468025295537462231295125405972946010201013340479557317557366326098667397513646930117506603052436117853923599851556642137342923159170184036197746212478519871293182517579520833667082436672974802431104086496319137660102214392449209784715211541871490016868095682181453830562905940534643887469539752980639380189514102182816606927621635209183971316146097925185221766700012711622363324583770097391996916121474616930221310828734442261068798747541506684076633077206298679345220073182043617536865757251278640575498629650755386854528762608187522326351989956694766936993012202980069858521849684203708835461179959720536532644994655632670920225459912858589811619749777655813742012370977347261482762171665401102401721346268227514723310854756271817336389674681162051449678409677204482073624175726320425221785793881329291073989143580412122725182770301209319188821362443352431140679111234225106989605635783460003521010306029455683659854392770181360662000197511060680898984649241330182026271426952506097174036271715908094150990688237889552967080340137795837520397800011800205841395045142834369092771254079236207477679358159413882066489695565067293613620610032712619569477774311910562256532353747545280890780925533507081185332172799303088578579499148970893649396722494875327489726140222104727571803067653875697970249921385593498599541166048677281404106513950671887570110630699192213449674916914801676217403679903620429096446575415229211167890876394777116133946258246719721964173842163314666854267666686160505024581829570650519838361325405189247550903196083614342629484868902488462896749018975904955636128150791485922110463725845282436936032809690272440790865659594590877244840617282685543700848042329529730001937024625211481788871228962483663197919242752464906240396026332151305279294638928604411702413732703721343973643857002322426413373727848815695815162318870925563454605804743490633923141580585796803451414965540648780878603431178610123526323989335389332893552558831684843137316443926109943862264890741028629957634662475445759201082109654452616475725553216820691895423785374168693563772334637138551187923629513945163240919692946766075199124730104003287042688358064704308780960900592789139181025385094246736426785113794551939822925829601114484070100989640543491162391887295148981028488985959382623729400999471679813058354054345016199255600062711872537074637842014696838507085709432694303587748557064732891762886675505794413426363077850485963780597050183416889472026583496411635852329373466360376673269308458584472182884217055395442478113766666561592046655374643069992349560694163744356109973121537545253624124732214828126217079929122643673730200996573745562383428978967567680658088425976510217009921121270940485131189443304593989969830573177984725928429627859809853448386030622449444395583192325164615741162096528557043491728878450058410270550292005246552946422502487165819956213886082056079657258909021694195795330093827565002892413967652921895951469904554160194993719000137784292249102492085892705121244241365093684041455227045334860533860359832371013541204992577297920535624331527804846470584473678035701411645686730777677495918109202021190456541933544805603995190430788524392527425674122876092141139443564133464085537099047291035904092858383224756264967618823767342052465382871520550995678797974533602473156353654898030509688475363912865061702236439147544739679249634291433535383993353520863874333164346208263887553145299866782571621764962756375734955822197689272533535569450069652613783142884981958512523594327562413266487141702810550726573448049830634054064522293713799580764962670238296761009337314684008131246645596096460012438660477283783952153697102580739194355483714829967708424701666361943460956346462494092493683642318593456549002337656224633424968663850557158741196113376039851389944723040608631155997466628775164637339849792014599330020391270234893047834112898864024686122598031543722311059052066685610592056009171186864249685568702315987394398724558622837526025676760714963548148854281941552043722821883177314039313664486715618615538437317386436904867698668637301371069289869441655898948249122645091178109846566219475476894930178442737516829383739450271071145140304143404947298117350993536615710357846647449061476124297385626226175869687379401655862641280720147926049821850802424414251877868529546087967112590432311654131562473727870797354840201709253484805105346876885382390130711951273854348559314041599859539487504048009046501205798486513659789899087232807128291975365134176412344470787640834810747257030712846057964916422089915948599445212841719094062107246961261903295591305664044378662514698807957673499072915569348394847278628550975024345578433142179995441336396781165896814221995651369157896844755162163317361723639987560575536974463192250772222294384416879166987590346974918146003663886572715793143400456498036213017427646121115492425508834705690317014179964540563605276607235690690007291659672201898699088740063316739404408528405571835652590247084831600451786681751404771802092488482365573597256231203346299732944124166677828109368505278346436819887417163741032646681999802117985212580483972622484199571461233182266024894513265116653973466118238161013046465538720590852925453329909784528547594599394114785684716569437899071914110079395060010814703220511768422663698001439669768592152189747862891364816508288756474550102292149145324520249957660689706887313338161857084442485510823968169536789762914241586370828290448966512228634304466816647141960905586620382960130750409071950926830443100433423803544448455596760411060935043080423217824063620247218565807894773380413149360880873735225578061701840838282901022700517503448238696793103966991921368886753139734641484306066793110474920396712809898348705046020643512989205061683924337370002362394116571189418737493585183719336751242458539695623488067116422079227852133649331982256363698603915447352170254921155810129309920264548617797302226226708808991333824336624925323018541904897004617202074445549823712081928030961721182256147899442291073527773544517653307489759331446488847594724923140780626266260317215500622168537115108921917621118313665332623160879707231138548195669185989815858722496547023378055701307955417129563785816476737817279775749633690822730448615920105445308066303914641792938139532677349567143536341802059108824301279039439137807915290786748096721614194200702962735604504680411893601065122672245539545071642909934984290750020815988340257318672408315411140449238555406112257655007422555515258440443654886696467130746344984569759359798407806994181526238465069063086378437293832146290542250251611827683268762865785223352402326479824933166366037000587311891381678865957537667771941519723053642324012727843206935585383396082249612056168869782437302706580823708871464190190046426759067284919334232477457219224815945884574712499408939794429465913899754884421530121690467290166149899951852705942799264225693218088782557619997917625417719597211956512778984229258863237004368229704937605888280409950418453746645888829893690053332402605242499476510668852032331992098531519078177769958851533124079073340330468660572627567258085401928357084664508064592830173398319464020987702166355854455178593876388603118985641389182482194274103666161860258416099098846648311652077976830038563424281767626700150554296349998797414354028031088334872027372325077339449749423951142988221217406016116918883427327026766992812620959461323301037665723907008483406902277285381073481099884925425220762057275356666254852606050520866623846966273837311675897674509159694344610450710328472164545319415836238549704960767285647257672582211165845110571394715322421427889290400681877764426822863231589387673304480624110177221777936503258544201684287155581955877705644154621565155586748855940459096505134400320574074732514908175861037080684975899026333361593206329495297086940875814885154946463363928377313620810836972159820969045090545957336620870967016547741418333771501780929042226204411705956354478499292479462564823540925655351635739434438229914416300933887731592251845026504899550539926179838832672008785683183594327269832147113694334060488854904021267573007424172993406692795001078699952913913365309021113792416644564488802314912682845096753558683047883749959231826535295827024934884922632453592901419775415444201523637544081238412354608852042046914363157820936934459756363194812742570789547853806721164421666152836050423037955104924979771589585516842606426342873065070693157661045810763358746334812172666358456289591478065655669276612554852544649577432623689808842540161211961913667392113652799917756902235710446336510366671396746543587969087295188848658524617559982268079950215333251679312057773724672826925261416385072193973056832679016757042831124261673186889969807516871385395190204900116313378396824799879911442288026031610026373991062652503542442549890642172472988327617053576761729386449305292179276938143452114496361994183643150625504019943260568562110675550463581810053778057836317933783557363105641052943668283762844917371905605865584235196491317543286930238468836946456585474358306652064142524495925664236103143910229526052845731246847245732088039223483180799322334708873263501308689066217558550338451067178053711010886026857625007208562304742260808122192446259152947265974396459532865187067768865134722562642395663094157984629641331829776731135867818944766335641417835212255565610423403169759211044891690383768756481978085339854566825320705318802091509860943142210850916115216773804192098067161273939829825681086842721819605959268743543766309256769569593647772371878755609540242805674013453779173867427148174329594063636749611800919785913574591199651196763245900040908916205606515527139214065354593453549424822080328912054230986428791860547645415857337089789109607866525743422790932649632110136254516680340425740534075975938038068587627360689406941102332533916576202362180064097536666015847154138951998172537820027888809389983397795538293384793076840762411770681371665584599992546063444384346581019091618044704700783822801983040685249940333878640027088923076644553610423936098727656757392807226770850971935287350285665424410835092004584058502818189341174127153526274551827854957915603957796129102639606592357014546217512248953511499223865828195391619097315075947928216120052016666415006220639588337854945359645948499251200575635655422403056708294158400340191441020545442323625125701327577560712919349189524128253332385647304762137922899964821101238640336221657571379201402534763734241538360429493604817869882491248434494223463340455262420712049012067383612466825717758656143781465593329301635123217758737159395871579560207711393952543218554234019238269517766582971293217743563069226669566452335278367061021916701474917199041994808652892350913293712406532774094877431900910629961528819239746102215309273810639513383614753364198986925616276290172322020122073378562279925005418913115170950814997231664375864815979601706850581102342721878710830624139465828411894187462711925560204041539718380823297915064910672134487636277858558695999570603346305734949592118776008471029599037936810379601746029563767650580650451268189872995557410057725895180587747931513260192238502818664015573464383597624134919654362923737811095428677543036637027648610939858610966928081969658367586895302650661863934722294277705144954485615712452916073024043418893505804582189311688621714373005584341671432359853647425297276076199292860660356947852520835801712752911007980008332762234867581375796187804281680229039695072805110903434157552808201707272850766187011419812880296914326204546108165769287149804152308867804226677235021444566159957487385408005757860160066797037849258823920846717571084569688483691351299392826260369519497607436989050006211157228940843216103046545116557602124466430776845366067993299245558947984883597611274895321661214365740768048310654786748701477841934347930376172809017731831302348650309353961121190600094421079834066736265297710510219586983755627315502084826378680296956300498392865575748144656249151708092702033373170027352841579348947377450443598776270096492076533528885800521863184548937118919390406872815135795685634640174351385248049247632038310985193015024823085252108434672301149893128507847904651229299084082849412611000863006940407275059397794519168640878520206967691870233926163271017182700631509702799033327428838719598885278144453263518491324015448162447528054603301243260560854240008752326112311216621977738647388257544396856880100103128051572757248141330778795795383521707847471410590692166942679004047812659356460564227780310775569587579972905035049438011169409369311477391778203804330741004161674245538383394757931757550440993641995520789388588983304241195029408871598833160822286607412136397891940485779861221543293581541578852599388262711469945850716735941463960001331693482117530697130807302612242705009766712111434636155754590843614604043154057247084846141103103417931367822572588821506434507710530994034337205764941054379827739878823390490327939584276167899096701951008090693630836825704853289169146787145665845260758058769335005826485086406896220190574931390898894609359565937943954869047302363618562966302139017451644714425647609081377350646108961152531971885238577952401949383923587201617955050256383656837622722183268015775903555233267830861534298272935916904233547196345350320612642204789041889476065542389074719277409587305437848894297260087934062475630886356563811927181661738267859774344530754003733198326734516792007531287272330939297852327053550165693938140532122763999425479330233232319708225202697798140302286575838578452907320107630979508702043714712869610816321138855313933026837595489714181894635673201586912790665786404248797601982221875942342502361777765509559214912651643449453786289526420392840928422465781533844989520527724100077702769318960688135111977258129419341144594061126396876247735583552406728514522507900160628206515713416831729410629950260838688945079823215255358481825411212081936601769439677756493289076262411391802257932855115578500541725248733851052655106054652650379065478304206715167771395386984963278444660457885834401123186161606106868452215325092480094374893147172960853260409581929311196542433059197088321954728967872730871795004370283584462321291179454015857505852851993549921385503828116664431156070222445418672124900919595726154150720651153518859591474182224377114864401238808597331890134796466869762744381923951264436585313350157820156415358899726379286239330038127977776167960185225444018754325737107966216506173433241130665452245391513187481132249262686044617129447544994142644851001632347789307559040906134435552820197109598950815335193464694271798341667016498532127257779388212966351573118928786802911858625569636781134422431467275162180211859794400725487270248768697643671067496355755049560784138568026567482923442669696777995657253632780489360953776321612619371862408941643756724133592334211897709364782920075333776535150467323198457044638460104703482787041103380952750982995138623727760852366818880271167106767052762077433295227541090801456952903601395166139940981121397510348109414903862484456424818793608262739783278615795109556190954937334078958653176041039170612237942745353320225312732590410886206060823048710981320488523542014844916595716155744667257096029296334301917746455121748944636104683143478725477724262888532817015202724503954356656502099836442090145083735114947281471339168471396351628973713285573206077658363869379612521564700908889106746692778019573599470125762574046685114462466772129528176030985845063244428056400491152317526605102330945246929089775487808691083285163472452173698452222505672899500655014952484510040003284348373207005834835970038035200892941747575464776835971257887563304562965104679745210606726848503954221218762087929032066170606784808873981941030399752888053395071186943454699818853889750654421165310706177742009494392474918589122498136279244207114754752356263167919885157303843082327539975887641283277003850957843937106344345651591594093786523329838313202109441804494755604906710660605472047201505985124043362791575340812840587490784200275208766174726338231301217882630345171794156890805210833689524347054346782252504905740675800125988604681156975619049441353133082025057905701570467858448267794879053755831477090623520778144716795200731378294899794958812429150002623915416741576404219143109807850329032425199780459958181357137656504582625285143188591643133970357125864825631014940455653840729530660063915147720300763040367542812794909365490626639621192655479897225408873403917511792107756704102296899874045238013652093384800834709150625432540874494599781933403903130486163696051419566114014588720388054399665084205500767558046926335131073328143659233985373069291052439926080021067895985086623556290886282809805988203266002411549935806897670043069957466674580262357261252925767933611549328513734823552491783318218738013529933709593528923533161669943964761936144247820943836060490721465172499013641251796207624874253276709743420729607856191251654333729301053322218660660549685071954989638532098108877897733936869653417590990358680439420446228175328111253352546651577744752440482280525597314952270018109777848538722872232376659293622780125053280499964465987918357606201158699779033790236464011002706203070553569753069877873619392268992632471202637040498968119546012522755839290288294350883805029445862515001142842879788077539329425635630250118348269144360648604473148087228971414840561621700342792477087422501497689639699116806732726573024158049802565302801828442193208490630211081368434227575819914372322739318960858849729742921113188770422103438628942092234931641935259854041085689221067510545666781590887262800783191958488039488536767087967299570079621191740431029146684567990448214663473924541230911894516812403032373412679829799800601717167704176604173356729645486356408831153671258584033528775204742207432569126671550729333253830910145280322157479034130513460053713650392187284614156978426270595605047348857800769824668188096304201538203796293568878725867183867232896588764100074066572180968235467239349681419491446824939918995403108576192593668077700100260409180505076642954936247997673343811086449472785619632285966756914858026137844784176309351240120710965451979069948185073562903390617461223110613747133587088572311895815590719602226302921604870986459759195344051120802143880492982762255918353672097261192802078570544763153779783010605444154795080654697159573174242556544760012231679725515350439939973319163557620210583151470231027272489129170433682032833630071808035374978410699713696402218400704634687731508869848467850764657362778384260356244075037482305360075929821955421164040093198852466807358337942570026769339946194347764658855446324775255860785565802711608601288433613240246136735863241691244751214637996120414266004974014149830089924040155341770358945798402625306471712615221834979259504681031376200717484779064258835238962087493149976962413486181652970564098435388295293981023654661069479951103552979481922092085086840761448567257515354177738590900243546346507325280841099576551902873340933496745404144716207466636096779444025472119792166602076069792456695357665729489701287562605557935370444563497465861560662744285865425182458859324574421251552478409825298202011344004275724514581915500968862427412691179432215984089419189804481526767579995772012841821571132656090990272790691734637759606214697302640310424204474887776890239998206508116657332408761033847840387191391563741569302668575948358952311411407163543299316458777814857614950846512659318189838051858493204849994993315982538542009863194176924613331325676054221472729361152570679348993079169497735449175083727378979576380949923883376787559692375719825163638868257339443735655309780819600533253679764470459750343059834642594016180977192780389253712981401560186802822292959298198084207439764144026801940637901712761194859180318455075047524405676764046727719291152845476161226162941291880804122150945246727461375170704219516834755126085354279815678352390786202162717777684572885678738472732587806155620928436658760537544159026284858864404514373709442225360035296554111175811039185875203508218577928210385768068585572297804985171507906563745521094382926518284537295111412489522227214969474687119109654892023495573482246471509142793365033530314741189134405126343226289947234154803059390074191765543789827143298354035576793916659697091008693300559552384258347964918477703177983763058132031764587056278793866740918128129923867394769146737304315463013227144161397602605094072837854566358217215469462072158417236606237997959087749920462825199530765015823458651832981558178937500153906044544745460283762041137052135193195422891188144271479176396966350192145600124124523276367383084488985454077406594983884826127833240402139250378435640985095341724828492694257419365721435800956480293736224909568142035851465713410196589487938207934248944371633776105621926442090078773509670763154058964339388698248448900274348537523309352304812676486261498763962115282021847745556943844614476697433420899114554342880454445254439925570730717133474573689936332309123912309991184798448677607673411512719115810399089390868553749620780271291869531483969465240286888632164811013105084171610146153473637312316474402655618263685907375091776415360574875604579269770395597703362300361476121016974994514429496434079677038073741714505536954451615201862779943717173345683323070058225089748774278542734053909692226655878984825739730450591898912803138960034621458191047266876884470809559603608252663100454259677056856089967419492555003832053139338630905596345658853272648339358617203840247455378117398820290615944819035038346711435782177102821745911770135186397077899808930215691106082748884075707195780227785624210929970665603651766484066372938344031136979501079142710185380003546158669318501894691085787269498737381699089213290464993435125715441179530780461894920439506568481046095087664416752102010473044518915731200811880787006464516708468530558428431598680409935047831311599748664400796703914345897876301337338533576943504388003931327642871233054237809420450895111163681178181745045025066177322823295405912574762013801400727546663759858952965861055310312148673378200817814446940398307744049170800344614379470814893954007985823508842965447289060254292544766385918390439236591456378981918720266077133544313142902919743348331702357571179304466890116404328239841631046655816707578399893173684375469583534731931925352324234988029677302683902318452540975880440573594740044978825727045503305332388598434164686010926925434174282565603736962179922056555383911806707891834493385243432630480046400408158170584216949078620247866897543420341011884264401562754426880910652868741409127376556920276103266487304657518089197986857113211806847896666489729304707508439607454535455178589335075605496069167288824034556990209413194416520380030008247752483512094090410098533824570154265453775487946227601526734518479143938599359916639488788049315823779324680687590051304255229718882408547412862811651562969095444941712924722629901194867027815258228213296498823476684465023155392420869939845446058494633370822595068801735475817791047397573166480247341256599692540451827375805750001152332089059196358509870488676735841605081980506786709933914150285078083664843206669201628090684404868261475802464485916147862822885797260680029476208561401297307421083471192925537707201397833134959580127782715963706083367374794457567804000205911945524168773760826444086262926604916810091197133516785883557367367897046707308072629938811692122341776147260169931594396495810821801384470559623988075212319004039669601375158195770914097974847777384015110863476947256161970112826653883620639722049161430247455446699987555720097888441877141895689223725180162099887285452374277173217620460607116020891774292213034633592941701915615749955488272797003237764869564248497435200899517580029221431046975559190613623723533892104131179440677309935683992401058740972805727941394641594957346176210335812563162620046580986980249084484503159093679083468527824198692709046369031446467908587907313619519604840925643650326587207847787542031677880735500452130200007263828665693608320405517488934731179254436066690694004575361569716376271887916843586173341833432835777915950009866016394900828507767335941778180452119320450504724638631166198309763895875123062953081109946609932537648237194622555284841105931334273803914353612799090923526265636551769642559783081849007858754826782798635377119054548752004204237664702042676002562986700655289608543919186104753945864877567503571958099216994557046269386346425789842296870439599236838484511931200156674727527894205395681849359107359362609428673347758102477837625418277194632315680251254986468996800867460558828996205952777530113669407523624152711714881872787317410108580713225838957709609799055136113793269442756594173197852408738727778328937045734099226156908348727879159031467296841305804153950026144585311114146079986849305759706064097999943736717258659037115630549211780254891847178078121801243737914929679129807801419072513324831364578399146308591819636678766486345346566869419219752913034618928326329632018714464173314063208444161497430937654669924318323660450971433637919630272445751860169955770211364352819570440627550770782557645920073573297980980298434956188443231079734932893086133777964761650599923006866860950742731336384227346716886713852142808639121846716428210076605933420429883019337527833721180833321447461220434374822016879089561679692687251075374655428686024341206529723268039259231588627353193092620754647239012697853705943971703725116514668333911865920158775965460841694188663872001998494209994254707673991988862438322337845258476390702346206087173231514619589385137728430967001098540110924415047156002921604413205337642449169223557551018292146522864582443331107426906316070348497947347940704964825311149518718473457497414737779598141525024004884193598114932327967038532203324116346343710737770484830069708677164008619538755396174510337022785920113576604364865708589535818769564165621050055848009949288135892718601659499009699572256647231575028955555946358703983196009817684193306797256307440726188587696784667626941320777378368485282488911188185146806801992342075527530456151315401126718143160802693488837427923090294499082075142186900301236729179238376494062609430879904910762375147010444507504016098422060011784339718049301533022149847381305534598623829604529617274994017097851608169353912563719804677719983737988991972635253018662093507536455859723150605260285013451694740287982477311154639247328003176331007998500021853829328671038841618819935840647121721378413221923127124954951363044098502851998949061719197961628729911912699472432651979349699860620313675314043921475319456010207604629357983913175532237676745169776715096389746037302061227009449718899210235361059804051276654367548887371428399031497308040433307544870231960222120052870808209632118355240865886959378219649878149038514160087079142353289659286336834946454377247988779988947415039357218764218643215215584350252364922176671875070198080847775501316533452119942702086716374195630286803003477412543804722068389125028954597361231885665934689441211240775810192020907762363437532933698547367698615214474846341264084644415504376227309479493775075931362298887626515547915431355981557531921946835312944629087529587275235503839285944392227852817339125002748721795131332456200262586076014121588733269123453484048517746951849224874635823953653440769953190276822417271294121127085201442596369320579379428657955705034880834321650023111796958116436427704399634472590162779182409818383268256836127025274346438762317831890459364728293797248204958969759712840298461098484138799588914154237482222627156716841369015042768120911413999028482081936061789040456033110036412009689836977689168947141984792536734434824670690359029156745013189730519414601971528188391212984404993257902534831397832129437378370880021124553377201109454495896480775709036675201696068431525817102640788894847606112856405434516779979383247828943740033796875015666703704435451910276610065488258410202995285578274910544317903306060924073943991606957981654410382353778297167714073878901161981855452326695810267197322904827426706251542139614935504041422428663062575977743375374470679821998725202078635711881602821015420165503567677517081359036601547453605336744330332276304455565693350337527386488967012966503179360533444442081974316091921333466179970913314835124797080751470769210832253577970396362731867599012868880427570284218045359378393874882478092242961483855449954598837553317363797861138415920205546787554175583065736495363825676708603178775619980289353083480757096964891385578388485384815434933430193475483681121944221056851705234437023119528609004874039454903317359018787313127673577401609892835417555914552905205703940815549555425055752567918618502860816237565050242659256080854092873136251721095971660235808442362553592963354693717042078762592952235999452838531713190868691360058688350655717368575651814486763604838569696789954093562750831971722162349935169140113099072395186648092804908641491637244192316660836627358933316529670453292841963516696368497054897162699241537841456381256317769757914462936381086698254407716997215951077368516288925093257944696627019813050483214917022819150312478101501556735127775624035589096799382286910481926266513681341736338219764479671972721102446346780052743449649159127820847933383992206472078065722905854242105333915179738557869747507489735118463871535737180838994049668127682998454388976906114782353690436700588059797470256954992097401662287792999994170387660508417763809276846255984218300780013626055122205345573285352633982258006942769214923560609782431934583405534061347151523906429805584553444805551791780007031419452442051941241322600885248762349051566262226707463064358838173843477202873526169014173436682370142128443502905286051144757907803341951794392878099785865245520617390345890342955600446066002400742916978135672869370519742815591418394403614226361312369686561606249541907377155514430250518758385242858713052419158303780096073164106954606054867947173172447605310386583819790704736560596095134884831542504455944920152878217135120622180875301967696403115880579575913386784426324879054141063707085267534195265644418787220542746674835799172026704733690897034644628092663331098597954523560304476950420472683410780585916426910093310273421192150482992065652651198291918471597973799928999818182690103649584998523258116071878206306059942351088788132591075801782730853288184063384112849733860113982909961162111199876634450645712522262921666482677919075678706713194938223759218446052110707900008899275880875743815884880620789612891506262400672237184007436299087191507533959319980656693887571536876011289311815045623441678691743231919939325369820164588490182759655891319639857767840260730981586014914027401784936364254349701749827709695245357311607676760089738943160470551998628586026443737189981096384786252150727824115875424257249616379724853811787661132069386999037857009925100891276181123201501666566933764307887990551210724361326140036368552139049762436380774061926511255957570898336071655736466993048903162138597618865105619402704535482933391984506908053139235259207536501250354808543229075914052830895562041608876652141788173789120336761718486768276386167664242944849730011116099589807027139101915729086338754379808862150211500813644551538041022999740944383367298106314967262910908117689039109432250691889920615285206006654010184631423805922141665349640593618610359414102522464962973395540101177130706711597197367332436898652607526386336868704968082075628601242905734247374131138060512460599593079610645418552135498480873037108936005521647213641759207671343547356408412145731482734250255703560478788627762769814681130277372369993473544740859100967107282298829204047873352862477416076294744021888717270605883836516579038323693301115927631498115736497136419941487136338009091937805957954763638391179258386707530764349895655350469709509262125677781194569563693101875423992590277497740676316570580366296692375712364597161766620465797792639249742543224366965851811560080203667434869354944435279021291252187073044152154993263381558497942091955929872718329131954012046279576666099069085518133132500708363506555879241765399616167276668130628598596273104446429527635356195947524926035628503977654430294957985963620524661394567400425819391344277636979893541044573572510967155100497551232187686222492882173598746759651043726490025327713316370925340746596170476042397066727856585488028851663712053327254854482780658612600088640995156232104350634528601282844452309300282836854389807051590629034064682981427550191991978105424315704641973492163233569399551710558270120312838486193950975243244047945514808534638097987641211305239091828613475366400535872055004587969077292076892588955040787985110169283879578214354815979377033837034261287708483903708887612922579317341099148503649952061459333454956225792808337211164507941650346937590031748268251416341058935896855736613938232375718008924420434701261506867975237633594814395940464930743956213838211656711441156339498855425331902441174756184115198613247509135222811642384229661518500267466587635150246512782380534031032918864487193257728495582797519201703772062573750862679849278046183204729727088543715883144904594876056749957767153059902575798187433610444391240560063618450299658536780273607456350079019441920826577054835481171305452787627798624090993553048095543432549258607160244173630034791738415821150225426055387289387579628601849431346459474530711520852794570988858411540116963148630803392033878319444962967665978448262818010369003730959939739700741099845013757923804831498835525216922157019948972835094955334408792728000790646821980379331231971348480657647929608545243806348661269639894161162574420093948344117752071175911144840946708736734750172088911794642340217199855447258074598925576860576775100803762060469962317262768074388759097624651797267689767813326608140619589813292639570604367528455200298423131692647538667152164053885257483641826219755008350733464300341800216203745843823749708972580142972450780140129969634623692957484613171715985241046930692622072848640810317550371030547078281837527184182972702063838761754081713851840052128634272120902772398647962867817148174434048106023004580273405386612783666447765575606913301643037354491951354742457553913676769434790085039438845089457907398688621473352100930583035108569704063769090013499356301956981940831308821740773308547109531206294925308225685589331409870002200564141470407442428997958382093664164857019030592180204288126255634817423909235294635997687335161988770723157962062151808096600402690141844449324455520233366687277820342191948186801621504695486524742994595771366171150654111002211869003651588253858746565184166299948671772653410626209412275976905570165644070604951352962586218703006212130525239037934486907863469693604428787330168200157784490120795456085209575250156863416266240293517693113533657785430517813925582887037666953273409709930498809018733682493742031089537268136266933127643800371146945994179324436392495618302690175093820287625135644202226756846547424553280094482471606560018091268093072308840480083366731452789463123561632987691500141783419321645909085337736510252288189608071157466057968145836769292734737275794120633988395929058117485626424184670111291544322517397330749211737903859050554771648269758672176869002094266212028662381656802618903392011333339859962937403073070266473762985310367109372437327803938645644054697497599421121255573023894090501390057263688858888338809310807789039719468711169947127075857330064235081223165100710042745453192188189275846346507443303151952869805297915234181013494858569528174835718083416332471789013726624349141540570867879035329669911822564245916779122218164920654088429482026700752802950946865580507982384604640174228497232120447287140066115156839794787412153995099214369833100027647681579654544377996249140652738646944061890060295317165524850166600370806412697434839280952671691986364181893729966909003859828731120232515100816209005769083983477777637551958534910795738650893293621704793630214137899589120502251409764718284257990745326382616062807912139296827831185444820178713420728253218084263796861649101607627859331189365586903874835735842621060296795016243190276989547844994144596496712044155525314602935565103466785129649440673986196155640756813099703255524004970740805430240788332381321772145906832902657699534249904990990289491831757656597324933032041527605259434414024958446190732733388136367423431102871807034180743455931676721237032331058128481129219531174357916126777875354343776397922941690866597798903118996451219807003596736277599342187771930647618933613770420633884183220660869485013430512754666772125190664905705088761214877042526449283835412424888802175861633111971920470035853571367531934386784058110708151610070088831098473309714297462030781055234558381411079373047883068931947350314438541145994757960962579221484405819861903312630231673732101842031190789087164264449777579597101814261868754986399390247087482096775434176702239512977368584777096326964177854794326175986039799124071483187278288375833167909529907665068962416898057900599893817340303996691866687064265559826198012045039750450609557852385293852716340931934206053536447448906447048797393976980445095713575229978203895089069744144819819775317722347326624887795523936972573301715723283411882168374796769255317774285648316601126426815239324665120270904543730106326530877655024989381940587538008758341580739202937277239342985416161452399403361325236469332963960959456550433694701161158669987047893801162969465563508285358050787920626539139438212868730230359997988598694477233915308043046232100920435775982309950764368628974326008666745622670718896018210311870087224526181671615244946947103521701717781573938202624779437819718725209462290573016365141513988402905744364491968162982938018296175525031356611488728473356451029975134202321870486069188974437212336816651970430066100377914302518617228896481446220459711243929414823986942394100603815641446974471467985932137516979551049933627118686307024747475561271626962982504292197828914004604743452217859277134019939968862254123556099613005737226093327436891363128518229814734440714989031452375930068569510033290570517245566694299410154875376395188823881948065329569768807304196328868591799615494962809614432888004888135634922264199970688848336577515066287446187857013489669822479345327354100881470145955579622019448315898171120987153018345555386602698165244217984028323595634525556158990404471828907381505504680165047958590677226765395518067055821597263644434204200813090599723937833793614878106943183971776145776348548788263290850972838329643722558527511692966537972630368142355988258298136306456359076500338670467465778213877287959223432372582415129746026933399068603221141559109782239439342703594718340459611143161008837323930679356424797084377081893404563878503259431800273330960781645093369316537760026669071361876623143055904488277337841522376668033665606689735609406842424804441160608397420107870207105193220418149141678438740171329192214535118732488566030298226155033993936035694546015778687157062151070645222842038307596032268823164686043681054022169574215892036940205892041560383656632972302077732065926778214053758824840022591596834146146879782951195398540628684007569030732587551325251571824601636585603746423508947991461413244565098164990717473469102585828444867821402192219042434405031366044065291099242900962638318222320532456214444705507374009472948387497032285933403885051145717547939708739082301996369758628250834934251118884093590999945174358158722652371110668143431381300856572988762827030076911754213419782359540240213249205969983161852048344552498986284063468172665130094962929954311612554163017270853071947772392411692329990524363053698528756649904835200949405825898293129264826642668397046699845280809910869650514094175191364224192944735282174892681447146346125899944097464648079050577111814337666302589095432601206641200752335545737539539576743934379566254644394039123900913284858150129721238054060201780673046684242776452257984728341445274946902940373267290066696075404838587514192584967224048407631936968288383356709634958155050625134855664639390563064189210346149339268716123543715431679744572248785542569753493714256067624074237939469588324050168979757760379909425108601962488484397058343564655199381750926963460271772603475459747055136024006665294308632949630764345810138648201263208890237379656113866693221665640125286257921327492909099440883542832213795748345390029961769655581510910788744355409656153045635709363714268609744388568208652571276202240283637162145451008029960812174482917599868649918270222141630641039558510342871788156954162526050282790157080400542042668725531207578490830184277522362878708277122057428510107026466711429393842091216477676848626659228958205524284695886755871240413844905405721887371789377487748982772051067690767429778539696538572351872948771036337749135528221576861615564651950029082232763134071548610207470057298008397992246684145947392101477932476996701774600983635910397917972500226414761893761154053855144150477897353012595541498658399433783267943035774743487241747149956007841437497592452985991593575638104289627612995826889483509655469477698574684289593155878193116765961838212881232059152345051106833150341998040412227902186102467774328591394429731482071088256134591993172848567315009526940895006631548208582874299126893223579561322520583104114085895640013380488793049764672877600605287540138554584223967238972536085493389895166492276568523022005459097167163542009650247597430449001135758709893796526793214991293111972280605049968778694636399004597211781497016757144370797589526799011469731750535739074464560688934484539808836918193651062720983289709603192305097783490421496699523473954322994969466989964537367723056570198087689232090827784186573524826203295571150305260686055807202063143912666803298834880990416958769819982349224061328626807258923644619300126413865788469299920422781172060022474765359552476763871949019503505172579794494004813376890120059675411245674949940352827260324722838839692478971894878103181921056333857727292459820173066263195950573594144770180196603825899278862001229839678281962329019948848533386791838682547003604455172652564640932787406248203032540087985470590891972819735624173247848413405284209806187388988779270872810062002311827588974283274485019053122028398307385187571406507479305900829444217178022326472645229177260342250337750727339065261761833584926864712930445492469060489230640034490521191650394696710209704952276345952852277824394293716037889758314063104620787285226635431373589597057801992506260500368762695661614498899709851483481555085440221382660250333159854213539269678851359437052346084542896186321834539313832032922568231443646883836825134630710312852520290479123794198678892080665393275272030862945669629097548084413960806294435973531096765362910337809173486719466679831174987602977425594513589947961461991985471103822099946545284421073501642059333734568691689079298042881926430015445638545667753025703066515879502107155840602732664913884832710354383863136219280481948037934955453669916665029837268436369250496042511561734962273150942870614107840391477033885836444246772449256080159099266718302013835393551429999978660954445726398161736252357701958400326120955782304816814552437439244463241630237599156650313557392152541478103526158922489229827135746516905455029522950176924657187369246529383344261188304572397880369673169917137582460115070319517348280920398976560672961514038977681141440085700555560173240720237741702244971652997758825266826202116480983167983995417062541241142400129938710085133037445798407184250972457674546563982300358737974366867024536385166634719096798360289602534349649658682917595956174030227347332685247612701565959614919274664910604546651900019447482084425610051497396623101690173701332707656858304536990540199825713728060809132638825753123812339614826451021905834758364702506160670302805487410168099007303123439853170320234992172793478887834279545181635812132436550245324399700845271990352641824607243904607450772042133973397943307234891255751822167190742043607354214057900315820675613249713837055735735983728261060173851364524512975225776800894313335348422153342018288269775896390961981406710571291583123181450666211715979896345959290297718065867144848170080997480559467999465000340574435840206171755330239464189872035757243262586664722090092263535794027033147736640098509008570520613947714217497142142324556033041597696384617878735946020824326963742544762621013290726219152256839230223969397899235831619744586038487291331522088540161139694590939451289588449872011854072938966626027196050535733163853709592398415991379028345845532005508889946092794465212112794075297766591350585768706389442664609219069144201336403165754602023644241651685049667608613105206480857091837605741702411612213399760015438131694307477624663161861210530864518264046874334795124271801471775195455432811313247075947080125973680850401236572774587278266909452396327458408193897728403568045541763196055081034378558521744421459813284529859459556518894980368196627336234838852100528791189908611554894280479856801553055410004049769499335964692157607225541279993302844340501193656608815739406254706858568977743746098644301845021512819651432439168801474051207938520471830106888417235115812218337248183543464873663384551996620212277230121292022699634042756220377085865774443745304807538451133854698421449851280834533867874722700322080078897680856799733576101537779329452304019335603565189694295144679344402429319445856175886902380607807370371874462019482826967656877586249520621273534092585238609357281376240237636415838008170148736577523344874629696140354832042879457961086543106018322674192742645870420839047072132130601136465546421326935251053204148400595165488171727261322032991941296176693325944022934407686054110284439000172081101084315229245723066274959772403324412118248653926435309917054749398915812337385700911755461378290807740107115212330547983387190135268017787147310037118196664865579612121072472075987513578766759193681590824647908755656865797545318382480955751032985600048255358207300007964623252202620021398236681462769839263971861229995342235293779324815505503816450497064791201946761639859023755051068229620351499321034155418975859744387029196828230491554683329129559976069775405164178143039018794993313602406259054218323642192607781128589010741501888632282754767932313839315104219032817576685543589665034127792456958233232873650738271095905517868711082844363044285134254158655611667711657879765817417277246434721630859627573637178112809707148696072215379893915390586104124675373729022537993233270908211933487473809776442173370883831223048720091749908567851707271803530072690893914652839307872632022225847436213510030682715070850550086639322420639911073345795135685754138876281892057681584762332027551206185401836770809361710218415546099159048879406337253554946906862109320961534042407293118650146824030346992538769190931554253672092500359293434915022104085603951544744909203891420352824767793067189351475447008006296701054469139316847504402466849878196584927296436445061587678259508542316334224652770361040558403114058807717536271205435795662834095169982789097344797155565663666624994976108560927002539674240494682311888217668687045605966264597572249167043371580605705830184303884357582286724029374112643202575482715084424672701389921938782133601122659676228859871844935918292506819068047197694418665079021805268211109055953600794642942353320008750072204816375619932946556515073088201950442928990166672542021110978009795529413733117902223279623882013624802899408735311344545757236161670232825180257831844163284754813142145461427413058462901985920729925773985044256682020880241347341861273865731676111552447408950919957438855953057294384126930117545899737763157847561892392164228094533292698595516686114540186211607923819556911691005310487026385424451207204554647901138131845633275754455046010049677588273154461687671604627263772733401390928610200462467039757634270812679932756254545674768273821916798687937516640951371205384645663272707318487464997358126396322748129800593713794003132446606328200536558892617645341925047341688737840960371652722980763498176111064295596052120532845072880631142317337199744490635849518448185918166478669355669657136720597830850008151113015985467328382698001678390881559609881170123779093041294827626222629950414223533136492178533760723604474818731435119499921289622168924280738793583893588250974228423921424322096185268178458800301569447991894592764976664581169613260142516932068470759781711146836119058403134503454272474823506219622186208700417461226955812449447074050509465655061923625112117967788923288845689594278027805282007815664023604387706171387452604735036065855986295704927116043298141965064677361092288003627645847182145911879595588582854603063662111465451284877144277745081176659848007600194803207880080550974004576885297668398362637599187497418299739902028978588103156327147852334003290121116727529387769059700094657819072814121530596627640585351241089519386262092839549030600408359596985848782554652649278607423210126641320131277147044574068327682263718769026329914083341131731428717979035049762409564268160209413798174078636101361808228978832576104373750241029230638960811690754273211245393416080559453660830815453196734923016992397986751926850350202582691799753030555269814573152501391668696109409583417971980641709753415644336094816173217986706151918291255609076688663508364345180998604690951977002418722193301545209754776667913622238350435941306246975644671863971572971050550378076299735065664037399338769968794266526402415653362934601795494061938363372309105363235583230554319832389176958108909589376077602564275859073896679482860539850585595241423978594705639985815953343087768752638453131582375034976504514642630803944578181462595828032105031837461003730791176202181351936943720879287830969624258699343624654734827663300482688400755449945689292389235974939160554121641515022545255718019422167230039803873677630304487537922588868066449943029697095568633539725591380226883808817924874841806443867057861325689159448201035501614492377900177575898784875738695647489669779379999525292311730246322106490954894968618443123062558825236327834493087858756731827134580531205845563109631994471282267010823715928653875968842898187421587606576561161211007634201217406977525887541354309617555428839469168764598163761638438795234274278064927099977962012921576258337859928458551562004138136102743269550801086085017491619219646354070557895387988441740895398460970490339858788139840580049820196617704129642441547678553766710893352652989465002471461610338789906311254271985129728056647894902484677954546152513935995381520330473253412099106972416087562708741400821674659887145554633692091184216872633069392780173091217611065302800204092950788932172041272402573811114474122684090639448004069751679348105081029044122501699014377030134351604915524906822575840705715315074860233587417557100491413283184605516941639945749132497886188143515828473859271993359016805294159290937709424888527523646295799731212978522327905964236208776568796133695218047051598152532655786977536051338498301924482058587605763489094932088785595033013715073151756829165017679711997848203659303064637841655012664027434370915020897560972975809005372175177186530483411046832095815443641998580635209191398025158354623966203124004727216407218604056895127618826878469179084094510954556750636854330446080227614672714931913849797065005127099071610069261221995222948413688907694759467403292142523960398322171485594391265971989688422814600527842070404409640073875455304442248958112498959138512221933392713017684344548647028085342245273720847293161990779354660956750230116525319290575268488777493706518307083904722821928164982834257305783099447092509815963431696453201005344248771103938176474731975354161573899585855458671883915182687185638235836362345613966582470165332399398833315609925746885939801661101044608947817784122847007263128378729543237327580972414021717974320026954782186696049656683191727528321857162342108905713035906690212940012798681162455034160399923584902286387091936867268810783598824085102845277281730207738389087250082856818210498727338755509494026636652888615974848231659485211636717560030323933710998189583022626699977563414709127914371851542764044338687763328815436259502716599644371448297949976418104019489663013771918769336853638075991021483397374980073526057032397820544784162391349052330858305436364941110851874511479728243713581601985805139608849248441928612403075055647302359056870932420336296592044001119962250165887409871519899353193958759007024198333860511002523575342877127958913376403864783931919154193160431558768999672117561563353885852216104001144966818145062566102936516891452566685995578066250760393123360905603882598520279292682018369967042197357460566017472204408126718894978032442489212898199240138343064408871236607289494632056208606218415636446536391113910567924922409556646006886057552250460740689495083693651840590551380977788120893509115853415591915674163915492604244282379121152063112241011313014254619156638405830546720302767242989346447674439534240407448924374260316016673134206025213731424026842575981370003795448559404547952913884697410739750724040066510495731843177296048078280582792340952694047993418282412095892171097427108502000674356120899785830768020571263586171223614580914974044107592438841631716269452657546868381108226077763914376107461206108111143629891118331439175762486042788104779307775006785689934689089431084358724391467125221936560050427476278111263989504790097788424777805071220244104024081275834882353194076403797988572864193282062429559325449483830028875943602655469738079956700558087080408332366218221536604294639546880549290399817354596100241713144787674425242291382995609233626566210153234283863415695087749764403662870279924402128310405297164672846549576945150890875016620109278133490717846490080354031351225250296450593394270308981559267618808236308501934493651600996873964600471473556421030293047576798714902801056436245785166001205461882615098416249497826123256825988766293037613094755329951686083164455484029427056550362193712065794809484286000051314548542838546159207636725366015136465572708642343933857797505581452844902598167679230418599599452897672233969757493014319554915568925085192957094844379369040297859594658273307235819366500648951015619874515194457920498550425514483831552817717159353367290199837314134225673251671667519368451709792953238381864124280858359432022488308944721208477114004528473581544288459745631020741917162278603533044283859638581397917280344975417900019907741825026440270705538575237978182668612023771784881050094664869177236835415896878732259386252222568864111170116902188596503952345984400977639838952267481823074415103424370137381819481294524519925211414938536767773211829091472211857990529822087253720131433203376708282260130824429649377995165865806914040721955476989772949663077136785595751059805883274093905690176983352423925640533946485166655666819266645823934869568045328202170035246001427151854641932836518887736997898377824090500924882895550015329557104305690097524103058448789485058720469913391421636535585879681544675448311166309068071109835503505270805201506093252762969424745210386450849571265222109099920470575535738363458621248216028324412370132648066115412979255957214260980968176885764325332935447770877582932134987143643224531672796102022346613226152509516648789998778692896701862141880328481103284855984613830952341268989772765056895759008038543363319666848444906511825330389169181463393870355287731334850184130451083996101081868708550130295186958259947088687882637359732899994277201221215321431451576545395466803177671458409991939853470372266906473757726853000222208060725254312399526804294274632380869907855703005957976326876013172863614500761612606803049991532474503796186242951258280529397718930919546240711733394444576548788053257721127794980754638020536314222191665839880846053536046006494174159960086614275508459878719266575297301245840687940877817681561960311006712483788860865764835688496957892452942429503007236588208453740065358823808917460966609902796530546861349263891784663554700325117962041099049700936382978120305286779152850866524985872628452594450454380341587928859539619455356044566017120641920195403917944537498589340629458916122199546912561857590998471943366213361112962439694847820365986172707056000918766390618998474277557403726152068402843360393003466780205759752237407206398579071217485824791610341070601711139667628994483989743775937312597210965350944046409652523790528280867732291685822198463207768484657954643387214290711854005354258882963140177537706010632570094316424906897021339579367958058822932960529929817180863775360940598461283136232096160084423758652870535472483504024968036475579752262699300113962755668212623776778094549645155733111174894284650904543675719930409507430740030276506174023631082395979049652722251409702007203816142693335751427737721753076738009707860981490298930674525862817477283574653468729077124312170447887411440431811723768472977556963569081568616081510909140237355075917667516504578524045554922139191411045783424725220348335514981877716542206904784062270088256224341065050180189820782881121119358432602174595190261594845834078833762854524727405856612842358916040578353201073325528060968833158089472714772181561061761522425823323421452383467082544644695896435852711486490982865091592096390613188325702864672194600859651811370109898072324615786921071941182374208756698253968956928111761154051618393334946301630405862367468445944768887655955593101366451731868385059124733891488984629413687836748893054823159242099571054878004824845625124510905230341469072378475921826477702550940106298019456938512715912617389800442632582814029315539297579949637274448893733644225918452204395126401921776421639249120070551842189810101170181451730503897300670559469280928093530890666487698917338715962071924985283500585764437138374785886510547114021282111543808286690400258753720045027038957530501933937916605731882518680864677193750308738820758211168210672392201002883306158093303325304844124024750217677109096632301795818151037883966112396902844527648583654035803275838881636656765595948014079097178171843941902276343857610767072208993034517606002006808682974643613073957556566819447726477736152017337503770919819278125471256984070631527054248114304824934672691083751187200813380743765921735256505757218146525287318601494990738818277576095492528115591420863010932208626851347488457212196375122824544075776352269239271033425950804034124088853175147302058792072131030697829061854409548270255803780302883329941494271443800924575690534312310916662070255617206242378909587255643957923306816993375952178631285711723894464225544445488304648637601975631295179139234483984264676851222514936085751742399321001421521320034191501374711980102969571551331601782819671732595177318265499678103939154558536198088081455127609246627045195666816696012869372992375398171552735844912711525098829915431442483054345176065672334147314318801916717145937209578761391412670749584389288371405541539757421474560854279252441244784950405660582490684227380365017786741581481230109558624805563612480043622789964702087614986381421712721276261990214009761274601878934677777461336900064266548524859323066357805471537439345086017850099024681538943717563490473513540106293481105257541236635488927784734533608619052629078147087104302250008052386448058356516123421526987183016853527610720180053080756443591592377983638938265275879845705528651894678115713702617900893397054090884823883340979921633164053819506373496720212522133126877244561640906597503328259258251285077435571192923842256706433705628443401057728461297506528987300587720054916098853771694744163077506986479077997667661959589774585298036956498076497954551801815301734714943777262737628900891891823503406736393951352340007496362624152891118172447213737547373548836162809582420359418851691737866742378190533649767978283731070859767613099108139235197010988762583499602066121777920047633902839281167641332931092387629355544441329210392227104419381515412028997461192582823711032691001328968370431844707584961744554757377885984848617189474561510904281566812101693605380511856275362400061861029755773023138286160573344418766294057361360686073825379762080479450659328051276415401266994779640058948884192338801107468351039438485539415221600504332837553488954824038636458144086657963120690942801523899232641482843586470836838297746745507845241709662620564624201039759394248514530773068948225749498278661296531300146833599024756796487449528559397344238697198820921887645214227468847132997467124813759804902209070571686314584751265873081365195732981290889648397798782535518016952562718407294049389824560901349438802185299558219680161903939144677444161998428611071384838695242120131527465117681012932572461905750215368537685893674124466016155838453345141131581912203018888357623408109051246799800752448538663254715313140433265517487943588871774842542216859927933883200642285526362882838860732817445734322548685809409378923237142316451469904293812391180358713769754196229609268398758788650642569051190336087650687061416628488757817567003912568463618551541303946870327731238799864206047084348142537159679785442401148117628941445424640094202565406805071604161409090334870168792668494275667618565604333798307952445564468656995861961779056127450460154963653624326185855160114162219560526622214147927304763592201937234207416879898103683702186813576469648954861588561258157280590427184192377708748013902152302755782967848591936592372158114887004866473975584424486297678991514854304500425807194573611990316385982827803902689332329525478624583801298090322969936656349359152529262857421207931289896895399223489956011622367528390399475514533000083253127145463372092799348556668428852000286292464158765300110187184783936784534992048438025314863701527340526116909589359038496110943322483220003244105030932853249286262448782179821040424161680240201188117728605607682232428045780411407764595511249149598367875096038589038114750213819081868617057143520925338857285023544552881787226519268114047173482256744387750813912347175288442516584105019116478685613544175201563929077248459080384622739424669127541341049367396742870044314333736408677043178163382899332307028440014659371889454134003325115632321602067003963440779592178898381552345375655395366575316394686131384148671220582772443391709706234376888982670950729655386912668084012731472295553058805582611374836519044047738237533836705041552702399899286582502266273267892531676152859085761065922689151909563287405331020260321142646603629884144001217150239890868873551171689110000301396167052096750941770616734406401129755814687169985199871325671910494264452501332040991135803680406992425708239802422672638539085110649946753124288113118445409672052135729715857312031439241424839275697475659536091107142795851852095396567819448523907104388555917224413900228150266338901296309691753527968719721104560128732217561584734255403714653350214697358100784498436283395372405417079331338030622030557716274682290293980122631205366815703295307672917416563489046487036810614132373072397061463577828378417469850414671378220071323569167939368605275136645191873117100801863059925123286188840921829076439295086255160526058851320818116187088704031694680653624160528395517913819622151444892431162175567716870802227413775980473110358620963551225889220554858306342326690390700361849463608510447803815946285437081364828620504397778969335040745296342876465806081793428035069444714010643239856811567541681568268377522575536009613706316507532380488488182731855355793065995895711104779624550619097370759762180645994118134633896342380419123982484109259756693224686582705122027813576402483467728861713225930361857448118817870825400129366074516946268929611115117376996462164541753299337758566292587699858874202375104892665920629723271571618218019907556670981476018506012285385078314809355173692581298156419130940462085181199677203629803541576905161148515402432225460010679718995584108454537062374782477929424867743238013774584544959234021482320179378187939815649977389675524125167476893923794755415984230913989625482791957745779181462019124473692809347350734035631593473405202321823207536196653637679090251656672943557686710573614704813901360179510022694627737777657922367862287263124906767860141798544880386169046475226257455559162234794068022498036547711696375759009236368216278349017146702548592888157518335855614860751609975279598736558390350551058233594787856172278495670581358630783549399997111290285539628321006859724777272715203397671905068482653247185674051034442632597900520925522724121637522635138395026709953052124249133677849726564883654814998368481561718095352199166303851927804708200144449070248058704013814416498819486676111719144866944298723150894827884504256759331466241897154823815365267786504121558463383875216464494094141270155187638542336908444092599127108121238037366989088040990419374885430237817597329882170448268262275864598944722297103637769727415531960866760529843323317690069724494275743177880387149124226507800623528495142262493265267424902192009633997283683906552337243624417823206747538350217116360129017473729277874733309972028943172181769806963647278791761030180832164977483221406186623373099068400129819595996255221180019239739194979371618464798260693747897147002159259191839141986296290945360144026754487110858829666936500382492157602856946864690116489252139566856912335504467322003489210882235523327023438221204571485092875893702430897008996699751310644235926469161975912109751692592561366098564305357301250615516832978778577925562141747312443568244554620662318637391833485463832839631035545109784600520749031427670098963218491681824209410353436400259183875882467291219794698479342373821944057658273722096927604707513259531443296683263560790888934196019860343385291567418654969109153391476564834629487926619937448118859156668414446785223796076911290902196035789023904149253788137156598809748280843517235832420929510774190087733265784561182648838470888333312210313370216642090138266940274136019485629091144121998249577210475488294433694013751981868116062197646142316426607634026963256910873328120593337115714391085153638372487632274620722011097022906836645016287375583228483915443814075522743726217918279013816101232733101162046072312332223651521368094162027263803471849207565782557219424062769734729734138485852609766941175404653522677070659305265998561780139920984721522215548165252924490357139719042563176014394753628175287087283615391370529379087315281279730572669764089996017918426454601248770630553596292974152938525313930329425772099852248872662349150138151711746982219675881171073798137734062014912107782414620267507430279436651442682189781869119105433548917168740414747699761159990627328586274945847332463371234087965812229729765265543920129559713948114270778512159440397546464611313173962656481406683215523000388757706004780225982798815786611626547909323247862853435861582051826503598021273210251269804734784922266601091907833705241476517743312275340587979585082408079770296407212855851740360639740116441828148228743844444108487384744462422479399074863695971647572737840922012256023871238574183035247646681418247102101808619298054425106124484518425910729109706136049184910355456333471175037305117715669174119618508887764237979580342930120349306655651373117014599576599474657039006970673183842495205931162461738247972095056704626068153874143296378198074191371418799234897521873831711070521870638836007670386514325396565495207775730557781329321190687012171371964670070814926312611420761098248066493804169403931880838067588542530126266117784394165412089565736102072050481534800326639821794548088009901790312186594220749056936971002566172418685620697615339452747042011189789473929274736536910188059785131498414303240574324674887467553774086262133274876468297905534772204407270949305834774436508511256631290777344739129655068127185933609726900848031892857861838590707828796912685544685028498785839886159875133828949976535067444714054728392304133751735852728660022850932942861656708823325126114061186391051414795999344805047007127102335807366572437772862661692102865368714996976637301744414221554854170358957170564694727263828305391958961438537411066328369465782455551391952741286856518387801633747559927193736437965927424224032370188477538700606818111359423626762047977045615303084573295846259206353090021063497319657321833400770992899492813979548658010600660854643527886117990722139161004129233639401810662331252746253369583839053193805688301182051513087376560200270790254016140727018554135118606765592431580109686373376160715458881710595465224764681761900935754567171680681809751115976699100517236472554953866603185293202035464215341487699454844697441514525347132616838941993282487635330484981861273821812121307690177359853476373390547985480233743894223518388791772930664668821764908929683466295883333541998023789299297983428530773388448530386298888556431756396706900615466485281157315261218992586177262392813913788301197852020511938352428581321792890703840748633619858287225702092464859748909923311041860426938121704530455519728813214369241914114328586268000095302370080840352893381864143188771195646087703846537722395543329207486466302507051869952432673196116156070778381122774600756289281493092500473080087028616307843406122809575886980448015447385978188329871698910304611399637257883711538212197633112580918897391454938490263478635714541790876674193614870298688831637142031722197893422485266822056143865296274312061020094837637612284333270526380057112553027766415191373424717622735925537996009727156195185538798770251811283076296821682496213812559012793259677633226475696162740075469130162006501126123614338234119161972292654308470355880887454513488806344100556378113975231947157258201290439695291613388531368301136753862761512218090532089143055608037487067256703215357869076012242537658042093080330619853311124751517037549975755455309031224346191516479819781367176373816585115431191542698470680355601574834751360608026366979824638867394429748444142293700518116079484011800776750504401371164467620169597415449391721526705994894168608694435552764219438311076156847067960485840534611619543940610798886488456850579800179011122482319833097185957331663238724277050959172112814731983682134701181196981202087288937354614618824626387439424796343867674310202017449568466337939177135270521942751973263264670737115901064381290596856727863416323291973178463987116939106731332731560554285169694571860568294951636250226579638819901286036281390937709403712754237527582467087745886269949799561844834774601521158861817012765633823309247861488021797256760321580179597220448897186008393273149371480385181456271421834124005831045088476186624538707036168087536172418417529491377499654619329115051865373835567247149673817997618734359822179646161316024866962704935378233734590191561703741926403990042030694247691716900195484892866824680296964614325732634260553873615858183540375147410498050966479070042875221890740225827199774121706757256571461360623609430890082251389375806681752650371682296184986447138679416895932668920873556694519724463074535352907854001131068220629699314752562476176527719262979679798847624688259635998303644875782135639353620553444253779400778500551755756391467298872053133127843978414766056500400791431519118622431438973391196386469184550902100494528906029895493583172451089492060257054747864244249584067616021631456089939080159552411388244964525440193905610014762265774259193344043947543726117537163790033583643447432750489371377345884850777770670885317400857876480161693481743464164404668883158670759119485861501123118358676693808571593465231890990634879724907320653529590720476952077661282927099155710571700926807091629409922550879537032935912116952856416705369066623663522796568417721488693172784645165028117361192085350608127099254116275543805806733369159819861926411040645052490275260894496172365153052097636833177961230954751147185803377787127036989089638814377690732328424720444538667813304273928967429663091210238205464223386392777334230403715892972869070329738060668000096103399162399271168601568631942948590333569455580550535759568901926955533334498594560648186955127294726005873298681074166760758756152895700444231995693027546534972145428201243658599020488629907166358309526961881253870197360396588951722544764021632299224973859828119223921581727851236277779207351301852881553904064932108823343586161867714241261892594545162858203786202737805612597086410428585983735339159014868265755754419016313328120946260447507402689494564133389415705496076973327352580173373072937269260491067096709220113176922672159225653512855687291846315937727958805879707483479377713059739714384221125370783762287771334029460269306913163347040208200412933017534386111090325546386634351497084717355775576705451445171033491954407020588712422921258418176131674748530102884851919724532487183971393481745451564479408138000311077691739376784984157460205988505476003186481311889491598332777755603310646472376497608969928586075241457627780949417627485557620417805250085259090963979887222798705103146888845028821777415295751234967167829307622950599930612441497771638643730510912992668759955516488957446950788312246405750772698243702154553494030785334452040838946491669716859403900297174653621357523015657604490675332874700532949504190412817622427076017838469049503354003060702894249296535532463276856090396888632531542976891313251346380652326285176571820737894361421284403992230720061343788838321044812809159941522205665313981034219383919899339028566472476876668990496031972721874180251842322444665544548419059350887091976539845568792999434445933498343752760535573513373296535528143526197601629167911071713052552160184719251215139487572290506444133557401287104926929287200105794871189041148868597087916725018891409919559560562949691264180997953035545903923392103616486329427127758638769516308347526162661394296371065245295401284143209146417845307111106781116407283186954333038791696149664047318315394344807629145891097820089685815639273677787092386555594235634930718008009476823734490787511240393066517252049306148666613655541260426230923475879535628352777143114455361620828982402092461165989797695065825010433831923553948251600975490499427244643526097592572559693534439642516651514863824727818573066182044959258274936975206341044128076326075401361757403558502103840409522969313124805679376194649476471847861841965808558468739095210205787143418967138041017345101074084407783299900824196360301767178017927184544029446286343162250995727615100910524185022258607125634073477793398029326497736036542460699837347382501491941409305539247292653233975587914247764151635869174146638713104432070142669863055557421323517734835568243527265870119432117182025056701568321391652142073756868668347294520905243558267994635108820061433522990562273649575619019567308169544511067193147298666522229368278624780484221560754767775592284672585223704755456752453196580687762097958385827035436553857944723565759285066328105952124335974073891446010133635751372618679058611606828497997119598749080000511341383316925030016962841099286247596981552747830321093451085292309106963919536795268732676370219829894018079467797961290411418250897114178103144817449979345242371183212489356936979849544037135601355729318777680915807581765691894944437174226973887056433396217093775772896109738718414062966074411870847934434150315449966062244794079274729241002335185301480462720529542470159592258381630924102648548591010366822699840848765496659037041656295513837560336203286272890423111389244595218356311115454008061630580193290257307063033820986314677089782143207508502864283478228825683045514600206817949263859588902754175708828221850327533314890719061984387844410642813864266956637141242832392050676207565563608451881826948813911285346766926262933755823511558242253550426799475758010155567809175388903805898517924656738021505720900553175399824010437074925530048794027272121196124317916805521823830059696562884203224837890525846263133119375638067397363333410408574309450029528782845170397144224250896747929099375725824288391815342913730812360708475495687346865797163683647042113778645384856538746415404230464017045212070935371590762943621048286618852294396279696686363557519179422177039755618045012902199325634797394978549063918774412548521033018630541400133124275981602049429556755089492460567726746135535297021311211547326037676441852070919312499665609030805432980794134090646577627579487964269221110206698911170094825017652140132623590865487723859959505901471714599176329022577908596908165021680213806324257694744390687678064895161519375040303999129795205817027635813236587324773409413147533987093688638007885103210013221498597666796138501444949032910293484269311865877336757850362678117892637310525924438616498285809346930089929387930005385959260122966222663628176754949803850376067977906606150205358836831039265203013783423080880975312465089660105345596368586710331197187258050445183129035434083322806149703933111555737939568909981183190613412080567672164485966466770415313111846526742980488748181795267017386134851168699042729129463699246389724399743979964063782756427634184218945990814220870733266980497275452054946378373965918806921370706082155820833064477281275966061585149035739805282362468271844329490448500697018732413057812278599225360011103182952317782343407741501480421682857235727720636552004331328259186844620044543112024685875989879796667057001524833211394289982968254338115170798509789179132482991030146175224382548032249859129492502181825077674181376032382496309930402829599753722555054809872838112923824536318833278958594087408363650810924552232427868926751630121922775298110010458223909797332945279117469232174638889675956625676880479848998224049817911947998381701604050435928344603035810766072572895881197092096434030207229976384916772438949253286002850444277217506633612767808068866864371231360735341809783513583190547629133749714851649761507622048002501709922581822084466728244681187416701600018086676504679782875146932402498076577890792266782425417299392109433940659793129092180702904428349989486376700009404441322487929977342623677095853642579895094840546958884798913137938317431927880380538473259637523205218886571566511634893794475640460073721791548110061732127049078082667169475679841580575226230791423841273306937237496962319119461647881365714511704257443359101074431991300345340380905913451731960729726327912411609315360164022499625842713218744466316064620543181840055605748944006800256967220155528029939536957804593592634784029752497028510185426323868001210642108641532387576496017988204983221683079033152035338946544895849875999651337058619322198701868895102720149326581118529347034859108442918795707178637008330337828299388200418275862335480753702555757972252161974650318694714512576990205388142742137432454605185058360616402899453179583151005725632751224223516831844707757954897930853802689508862950897744970457190429991892378535074249813622934781017513528649859919038617422977366973670930857685603439806559683690775988784954330604969326499979070716614240815426303803688398901824044874220507910222175945737215409442542489664305717500776389106305739832516592063402649575058431662830827954178348301308762627079629195193042920382793795086729193073361339365506603174059464085929431116118423920206793961972024863285272979993104033859448497234691511129119444165171392304298083186774786202395358805830241946575130188723534294805897429331086281850980379396063769726162836175140867359605515369594336859955806705401632759814669701323340724792282495571049364495440795736462094610943013570179240046715252955459663029662291111463546074380137408704444005929459264406879211265394207380568949315473571630537120636125049262451483412947837645971070576878707973760486699055233321734631898339920587173609522897532183854973569828522388532916885010769982910761530689018478417399795829201080572637015924803341386642161418517608247443444510104465177648934555243939957992168423281862364264936314641468974720040215446432236545556758038551028732263856634943134606925038226586020382935699509151764068330128398399845339344444326880427017343268017434315647067413348545986970624800263103480689526284210632959830431918318342434828157976224073446896555273854040494960547327296418920575398159168861943928093931047749892795184261526546992732571199146724209216157029361403295280913748612147493753187712744473087064161452674628220440134370136828203382805443746351349364843683794961433640530429632958800990310046013240291058770521813776890190646844389866842107310046776849761417849355565443791666559228072557698495782811808267982864804615256241336399496587607748812251440845646002410953698990949773635830422383346781914967449726247205348491834948294937519433547480199843749803080718018057085554231330993992445606325366544117576818685908417779444970296000130745131579037850135765301058693955345941077441782673570731647410971289783785361874095025310275265828244164092064043200293263742912536098897983462924181860471879447692842998394589270822097282172924106828621579935916622779442390161043294473268108135297386438093558210630224977886566135630402041334189896514485549437955270715528562025680036914030266886898763728848654205930006214965824023364316821472264774558077686897665423157187895274519920730009382323107346900699892340968941908759029134688483583400411787931459836464128152663200217545061762586578275834730336997868521760096016533768466531564750907534613837848639656695208136430427872131456297190428477964981672907200908329183189901011421781850230611732298153265729188537098855533698710582678958959965190880699841451175924624793345740517731518112784481083460573280056735916186869796107491365054535760258205062662636048514608890454067595702952119528696783722386965609756345263223710096386888525623787739044449576861781170520855377276818570301629396026925496234060675522962963368335393188213285912380802978991912070996263656486037844546922567189677497058253261038739264971383712474071517222096204176148921090573020345035390609893590177578913581525590048753579880077678553260897963932926705090407930430313308300059962775709543737750950225236205040009163824693002430446854401837499587632837486401297209566474836547013745929841982762287313444502362108767776227266299238179597571183948415093505470553800548575378897741796611233795535334116331315957837688471751615342080531105510267227659389323341405974714835649097864396437779830015040827144568998925084335093104025250300176549693009136013132721409094147523264463815921340488211223731793523729709011298809202652537848487313692100141628511883784375718186994147281611238319467186901061661625964812256608584859757946212198983250414266682628023076980105052581416301399554121449879628484446246268949123420715076825438205426087105335760161423008756618275483732455831894757194605490836522584143169108554179722749262497060495135312124754786354906254453525112727711907679477018257906876401420332521934179309391334096055606074675458508055097154680067407737691120668776176580508916483085101324410001158731592720383656339757794605255722848742567934682799926782778645575218852509687798529521355865862456756266843909199397929923385479525840796332667897729579695529903133684786395898693177735854853076682163355925267986693976302380240280548542170650372533609169851509228212549375114167930975496765201230956410490543180374576643784469474214779520874745546184216753499368416972982691642667257768583754830229643980395515810849012281612744346154070643880204647110780334272173421503584432839768187287106545844315335477751934180275584097013838864539648648803979468788258659076399049932028280722806546522349648393893794552172472899153833828133216325284204115187662341867771004628433760666749134409426268659348890370257008257314173473557200647398376776858836316743827851245767589757630307875395155135488933126465542795679546992070643294783836539928479730025600847291854474821160283479713166880294583454198559276200143206450792697086246982781142200457590511823432574953457800323952225233844202052201922803204426073319520917546909830946680598660091330621196439155656144596384089701272529758345484175963941393766997115057674226688980300952277961022657206836980879410640847241407829529116986904895079813139634183159798370256912373845540975405407451671754928136934430099212175067505523442691739295535690228940059415089524949476328912028763287060276045211998250834338150911452928521995974266841888503699772963160872781122483188905005584943110744179586737359782217407398146630398063409316891374441334120767775351788592963818431704831065764941565944426201045515377798874497073391660914297782888727930483611291213183475546351019023361566136938868758352351889521464402901383021843964782347602160316390760793961690311274000740127758172835578974388878710214719001985839595687939296405303269396329148052310405533924368105949366796367203404912098079811488078652726719534825371901418948248979252273938520189281439706517500388116970245147426333738256728678626999064383081447920009133692365445332894351605412111519060201555162895119735054636055866406372577605965805739463146910296224186317790620356089115801132199199190664834816389669897156635374516570034421679017733962393795907177269828522480177904383112679211844602708274671376159498962789997934448676641904789864597759300199660271094477367211010917086434912050361758935552829892004651683461347656947756572457749655991513024367502396681021543601220095878040549488593402833730918525441251293178807521513283919037184768554541712187489504250772012610460652830465959838492811689575781380447471637151032065087529349603987886354111760148685866680845120738742345299465919886125510727623961225791164390318146428212367868314697897671572380744011368206887816324082209971584303703117188912977202851094675643320709773368755214214722489083873545006085013908537988345045125764272157938802418751494313598997465348908328454922883501419552989431501785537841076754312603514522845297954978771333498733442110543119356285436735373482919160120550273068159137919062943379850635763639750508523943846096614066664927612112003881491631565272564946077050529419053636456454842615431379942443087300540992762656866451614511076703898634293476569908020127636987086760881625143935832734782970599136031615490061677730205913568516855147932475669991525786352614691757006600230341739610626269563567513292987400627679003101647137251199436432696099464389319232389531085991922960191509489266755515816176704304975790307224703616222669757270888135247831756624708709228165090563389704474925041628987893699829442385806178460988058750523204387742730410350831652536352192960773673644078285003187815513335593899590090045685968480707439683651000673207343316250552263675587338095239172545820328906438451500913387735116364414356410195932048131200048154308968994181639238551488254754956469386744980744004632231122245160369045164740879918842449982326317217193598051756293752786912989127208606568073695152212299614351004259538668865997541786934192423867511529578508170215682549176269183218615994549132580718851061488707471445822098388570575221066409369170507327050683828309394608236504008128693294105514710200351994141139239307500990792621544687987122182126204607320118507425835324604679789300080351500392151615036676470194818333791371096587700480102649675881210532929141077139362419170931172313503654985766200571804896121552610615856182089479324466498843681524821819385681464405657240011070681133268407999516302689140710701664423025213535547363038807269172893569276500009748010233606127998633802829109137635888553870363068527581959370280368269665011145447897903015865962187967241610203718193260429539746714311318253890087496479805806985866611587278199576526913973312503444876400437652406792524103111800187282679659078940023977861925800306983105821756620397725942424107105052570040645562962523510586588836862361738231832090868609191402356562125570522520663352122237849594031926547327880531578628167470169856887220695437108678983374242723058331703511192994075352842938327583098002240936546379990919528131561226636976334202902074576053078855635520170086397304656844413722391958347849188505189028144077507056933166499967337361381209737657170366600943201653923741621423851779880030779780134873866265068516371894073978660712406702075225491589684381908578475110837321082514622011880785812003530476456262549494253962113661947623856058326624462934736115494627761856665053051841903450994656358740125535846773755249624297180405552789676536093475524096922630658584131362153636045522923136554594465732902172517380017001227805686654935073742937332588703242290363356803694073012436327695567326091405132368600921491040724480712605929520658778107586001305672438185478914012498522221102532107501820024481661878384686641227243437551497622777034602298606233611168277952229819456701214825167850490587296897399556398219534782903272254904809497749755622905256866118081444729773648624265143393704916301869681033509865493249208088528516469744231507862166483196286791944745128257024857253910265218631091876530669912418286071139246459840283201294056301808307921942798301015272305750497103452364867120530514059889717797690790877656942073409503088456026556048124163759383048760915199817267403381684781414895215728505244562058606444801053347858223096268357509590100057893424244257329771923421004197421127342617402063589824238248901514520258816610487870733964250960332285487031347731125294241636164709416677140322705968500917187554217041309566755072758655222468945398962698576451620064967503497036502811849669153135329541740711317571487289282892624458417643069040500988354399115162425148048505593749510558901056499878487050976237984003540430239988753028148780540778663974637421371536901638890325653491913723214082250457106865210168344048825572260450106380694556557315211800391813533862524295092086329064297745513535231844321595040228294075580555999033476009342950280933801624314594566507209194086160107127907484617522052879449608379708393945105352624238002708828696494526129466208366325935638484088142836596568880308394442060320080828241593984638357057692936047330324872968618288337001112126440407366506967923058450433845749860040298293029077428715422082160258440092336721947192355478692088968647637276473651031619531390251389423252229864663807141449720824726572357935683334600429007893567449829940624878820659562391650332830897937213965045723660331671748644267474908556722555762149228757524506035727574166395001036476277876214730913456750926422721381286099850935788911283003469805143024262239412026667722411499158722648435130801167455803506881170784127824780239841696539545400710453041736657709339605296324390981779672555841687737142379008035866707633700307026331931981015572598240412592050599561039531837073974766785839848082856287055201799852464229330404495766368852655975035619531413944300552862462176712279737924158588823018860098285513234676280619034852986158251679237100236107077440020872187147668698367130819092335356475926716304856847226481348862687881253936704455167787732918803500063594953571708324210907029972823184518090890586299464819628481263761114377860041938769099061976487875371221082724413434504280719356234834290979484939780646684844474746540233320120179788896085011165298589452709870784337308042335731214989327787578870878683687671930652270499604436062429370620596534233109294624089562473418819643734082190919843717698297571312678066340408573112717259487658129146780440591052815777472291112565281945738939153663685762952693344599113605006685345416684782977432440964532543922744411614090137069123779691460744973480988373662981497327239430816369056470878241551298802238854885263443162283480634450129281310477557085275695217463581866840944413771548185931332517987071602184813832803478811600198709728657284108079548774907221031859569861278729183662890585853186527974540214316906218145165810303451431118656548032351518689039544769114297538494024067216239953561886040436498873821738636534084323933463965419054145977193127944824817568438242304920849854113680313010922645958081822627742618675796377112989843751215754174479621817777065663528132620128326399968853863581439989304944413568627350505933663478565687957864182540735304457552264464635849711004593666066708806355281844546583500383152545407101303866698854991012352932810864637172819098526194621446720679828008053822769191011455722056396652104810993525100853966761570856074551590805384677584844547063690075424379080015169599455697406095981189441420000880081447688191479007105106582312987736050903624620637210876967765990117433459543332191210144302029533221287443049159285533892519954211431987301265441269503006942320300827647190610695828296473822124053303069349297628559328394218380569762055208582917626368906158824241039352286480939343224574663590249393604832985991849736855625130246990011142440188109010696575022723764919783015943738756815990003666375646568102278195068768988501078526836819702331238441297136398991849978546425549139386603960287166695465954678731471559147830636761184144859639439629081853389280879897982683931122650162964903329427594116173539160828049945043047780522258277594907206920330972056318055252753660326359639744159308152347529045094495527180241313298538074332022162043155663648361715593958336526190204333770010558906072631955666391116224851854538694735106004489237582424166242783042819950599368447509800486701314699622957550077736237528770066740736758838359371419796705648053553019908078982487200221628549942324328334462375259350018752302891644628795566137823574260321015942521520922279764019714903243403426640218818348777669160305181055015162535960896297795234129155922637974577713363896030593291197768484992194245296931111248935063137330246550140149039104775489643823393231692188235252024118515563377187394261779248764281840248151965495777070240031750353472859963608199067840246019336693529173157774062730087721679108858149196599867513188216037801115895187427687040221904043734145404100209254371840154268772791257948617570700614757239845161052429457928684412177596765150201768236658165305503783142794434030043448628282260867768868574796298783443064291408078361044571707625689816771935070074674827357872943894704064217270065498027084864183634321285002973735927668186654505016313094203038315121433097781210412864198360566977725902619509713555709688230913029184933257546123964872922959273337171659555243058632547099500334389583097109558031097813502291095633670176309724214676615458509682552668135437889610702953172839374076093248947319379606064012315108244643461431235968745372944544910029520269746182628174670624363768959487104042466446892830824136272081049829738207520306800984980541957000039804049853511286783420219563541661243727024866773436449850379369808868510199356084317551351270378079980703284791674896386074645397981051304074280319874502597192267936018504732879175735224003130444343669130032355819876080279136846118869628820220932745078251477837497246418713730174942600412241423025995960140014000972388824851908206749987348693982750973327440659371575207275829634196938337956108704010756260635744817212804159703304437079711002119498604200317506473180649245980305917160439652340148130643518524380443308278718618792032169997229466423852367377312820900549181676882987217540233430998402457995138537052550768238947168535500644659240348327567207301420081310803621085398755151350025235479734599629856318537420327042427110508618945556016342224595143114652198839007061695112446917000362923970735028392976936493763248571615838423099655288487358572890878504508687895911285084588197069750645814389172869216115513032087408197622103931704964777724056403004945098250918603128885634677504452046495264729967693491209067095756188677068297224516504137956076642093381859571263387260527795164818865478880920510883607514123340396329286133698216147464909916696523582325913636110253232979004777525331331616852725070256146787213629156196806567695278436038577301545498271452154245376393976640039476220256727187335371982912432741439408666572999676259816952278433439890979909069440545480107427032028793807914155838899122887659854738050913591218414562314727077283607303005639430743770082819642266490114466552785971347441173026786317033491713597350899843820968823626321680765161926724090517559211623526445385511691335392521219312727095966089055351643387300603757661459947836071855462472868784688450147745042377691438947864470571288073864409151751631897321152539087369719702875075245194201729611750925159326487745321764508884347615902312606682518613067179742106995133063162579311468749752812508467818861312792848555354017163329104391337486661948295275421684098007814694531446679667789391973412558615861646909924349392924800556830713879485650222742110446598313095601613117442430413258804964910944367266222860271449952740685623322695200447274990371996783498093818446619244858740930766197099640481279425824222082926337981825619088022873635517807318164149879052752707004657565219227836414927803327418779209532306645529775436709529716901290738920626043855413620669710008291245207711050818625685691044578214809748790194754474967661893356191476822042060717524158559298329379119708629536159555458185447873740469732930089962276035264844710978717164876655546505379056811290195388883058398359423100340341924880771769561489154738381167401152832879907121728641288010480153670666258846159088390898987585294308686775112426084764091287771906733886481143927499816804147778475806388616505882262465417420746830323372831590485335969828897215796777747152024492276896790420583723478034280816420241483452473213065718347339309849545328278865112796869447117235759360731992562789961483652645041285840211635605265049851097302523109178634629521359021559308933099245048323070280722473743158099788465020908692054296233433466153150598005926498883431862334790557035601323137949638911031290004953396306553817401310358553689873122439807191067724446716109617204021241437482433243076915036887240930370582842484645639845582143286826461802117849167124174478582473183921226182508551214971812608450536864719255606165190069566037608395437712783066401092154189171070375183745521917330845107867931629216944663062639179021976109761047713319203765291064238969029491532650587253625263876740686681892440943893599392200925424146664209154590034696719512569732961154555119155861788003749311946540249539794704845546162792732607135893166980020379628138636933304950491902689390059295094943266299852649385548979970968715758265541102155851053350822793069877023725300655728977112771218862690985459431916776082896128350711024405115352776930704012659085539331839532840364511008303033490726733894820650068724219760848136500334853712769367408841560071254795785536591301004892047421388803152185249789137370860317510403584442106951476639352666878178558828663803961099880278346025847266307410879264665992473151687740862637875072666578426793943339060725983797548674667257223792689649037773829619755774128129355910249941172928527728531887335208160556124210845736413914774107548686595786241888314476657856011205335312544351393532460037528910190262370015434146961694314480882384823976084253207395538659220138194648124542498933467707591086893054359835092064415778709705939056614481107767422615740726985592068760767394980566729544029360061201992748124924897905222380944261094942866269620191934289505885316563227343632578691488408253136459973067072793770253358813151991995715835118914177762301155537596995445651913930746278888962594536422336636837710492542685089157153315227928401118777882312077992223156719460000177769604642572986460128579386576882809976310982484991905931237243908507464759941256731110114456016309583411582769288763919474950252341007097831773896634446185732542703849519304258523990819437326866074782794171969936657298406607101237281398144523105908468684991370589011603511780555826442975083561936997351400040399534662317625300132636023640133721279349231749820603797324988953567076340756332496316017173451012831591197403639046486690699009318051829674992553224627811973848931999119174923774179730196851908295831936209884873389211011215974930668655070778860989654244846170207651201575840156134805824213092512910651811837674971435342631006343088018515872989718509816271028656379226966514403839288628894943421992150958782866809413861709430540255518954006435081958596025214528224363796294181158509928186415653669468187238866560583811212579830525741695990795850149263964567496262673134575510964266845142305576853900369263957817614833523287986843204410592953939875877724725375360699865001401203091863135781506566314979439243297125557484614185585765087945082038216668985314583526091690809626741746587458031025139894142940886611845749085899495356928571197028455877540961087383629573656992255555476440854122449302228862880175894711811872520027716428465053656773193861382685605433464617739591441569244711952311382889928895509701400437349347939565456965388933590102529007152462064361939388703627483568481713536178143513970688109736873156320544970250327690458339927412432339686923998677864936927507049910406239337563692297058209483058000372160708384488027737612441410495790507573691553823765330901141779273982385831963173244447904941849414343634642237321421266716374305564284529583034846123899575207367657086905061180985478118603590104845123574479139586473522975578346680491302605090429779907552001365561616305803278602128578786427431825067210195386956891682626555613210597773838935202638623486580085971181481856942469873942680994939522134489611791997072957948038193405913192119356031467596397570338794865744932704390177101395519745255325700306157313423302127851338365577530206875178884828519370205209364186674444391299785241157086174752955637384630584927401680894690422004500008469867121612011047181041676098365336909471477070632536090410235349052115795573048026932183041993564829250042531958605061265631471609907115036361490826162597713964537101918693296109523403963904259919646353907481956428127784523737281482972100206850868131580541745989697542374579946856663250665670861469293454295658159686820735854082898347444562310033966080270606745752662951339804211166552627182827686407825071066747270225822993298697619574285480051441385378921552030838106343067693569395235983063838060811773903174097478535712657955688614677042634957374459814974108045067972653076410477887433150408677972730329029612455415330147680951416881489504145184603297224309910200711565288818590504696715906936510068502608647389830966212463110885153005238579173486493134582271118444896000239991729801176500692241128849646316176703152528399279195504358343025466742379309060644584018304903578793124042518530427976532625138705492089114196486057787795684551306177785320335099160313633905965828937337371819323054828016515825665827969594704296981864427886388941542732550255265892708569456561109545933295124203883070859094284218700157636763238725917533061377091766729793817436686707533071237752273795004018176908003718678242364443026955433340897536251904016622980952591595704974203748722320583806230774163717082277093838036095722121339809638945188985902702878426183053200573582883794120160691232241656578249395206115184529254695735516609964525606136663010550514493379018032308649148272349211179882507413286586770604069943326549032220084800695866526294996459519695796173731233227994947322911651074379552431346654849579259784558667611652687224016842170030924158769192589546897467378680554444846356012105276958839456176063723539246044329703626657330577317864849758016962097948351560436008709112724765022820531928375065804212598861772465525858229337246260205057627729897677485723966374401624331760330777828064250249168949927695091332577976625083873767735941797766355385778722699253182499437700496714594212376467441184476797036684072569086068794073233817367122306294321719005232538448461466592473632042502396399257963155867005582385543363039984616153057916234798549500896679519787552178328585461662346041711981647557058839764611971928287642010413743003227108827632963439037278653887754007514096906191871375943308567418508426434561993012353571048503423645630752314060461291407176604876769721748236504468908251969330812124431449731803116299502616831096431757091176166981207022898429916286247510092766843114487806057381167447163264620393743141279517612720860685522679938459001377273946719594946841509214934801336072078985592256027642923445963339632761458306994507391228633871513656683732998744195538459667809683309547397558467171182486768961830392289106900819916163174070114010875631521911079347044914199534643536206649441725235855523454519409008279057318627913650460340600518626092626141953796054062473305409535720703654241754510430540712810002636183452954723103033221073556353982229861960908822234757573930535619051508442188172974810866665150204386004013946610168586516301376398590118376571983160143972153083557290903286506684740900732281190534955799440726374457077901574023057147185580981313280471932379308837990953713266124442297309364511424784385950799697630903852609283179180083860220224525969000141782255175714219974696436662779549375939824514136352992277517988681816089036319388893365303170754489180691672385062216272531445536565018365052766895678948490163822706316848570327684101553802935891722003570162519892851598037613465234697048023253538525300151703452972672422257849341972376401746194452503575347394207816707765727331980962170717955173921342999794741415812978580111559509839738184784189652901087860175004744115704508467183075506649549628315284725072394789651844385655736305861969266487675378391694706320254819342074589382825503982204448056329839264369947347184760282507333182431102360007892092082732954953098570254319251416940212194772061937672462087374480218547510078102748024881798108122499261212896303778177415622348714083285588931894801221227480766214758618905524950748703182033297961547265001517649260703094015029408762797516102854968728492000578859210151721063612823849026168605466114848497828242689680861415315725470119575456838749932412676558198790786743000379033788266134229769640668452482391253475820788342061163925984896720135002777696313705725892213571734783126440997931921349360685760959755617665038593976476166013695916824958730047246142952845988654382529492570951777344771409244069962882468651478605658299204256900902677545983613880028842288136531995952351477242149110623999064138878584450855838172899950829561429272583109939946348912579941821553881794492945517657747040257935403183134106083492163191167188748502764348360944466482939939486782593046008263265249898682160439796880175778335668734386640354019252907686720013718988619015633094954921483620855193391901966581493358998466100143682132662890927072566732683312164400347259519545133058706973958535588580041648730637211309204802378073875730189461032680004456390009763028791233397824071795045443500432016996539721541437412859654119856534552148476575733569239105874726400345680079004288470287672984250597068436891332908844251269433039582573818153809989682070402533350337410895222075444402850885284035729698473811282222164367160924347418027866118279061766693534879214187989288925608673904798093253914600213116937391603253534686447201171854182805647094236719179027285173206049576041706270468498473270979743952871189438361699229361189660209325068465005267866975236210217542577472658382692678372111716426669930422051280432403159370152654814081337178014760713454789870881040819929325012899406856921721878047555752119474560134871237531849590731841058704787103939020933736242166490076778497896622489832346125593266972226952724302246883680248315941208903131633245639133867398685325791658153576459141290471713899040686464014317622228567507608901730417518494715696063829474462824802780703582777903181524492640965955404417554744979594781063194569549609294106153007687230832831087279094573159944329279795989291089496439118629136294718078624220648292178259999259586446445376013630991362273594638716103931099125647928866373530581463722284727648992427167248974908883929388097069626175572275195157322007075024849660409659508409071408827916337220481097545834961768641458694756418761165749841233414778703497851944085321490528339124293046292693856952742722760643021467612328545741917415140485158986090844341370644850985431823729867078479301254296468772623659341192804828042994882414474353476883746362826314375458811642496313875534538866886703502061335074735434009316560934335285930317993141647959722808422682360446021216596934737319240124287177736334573836195033291657793215157289675339159087877162680082679231225066890260872151413629265555284722737406778011541233103706090196889176297217660914574943247247758604607790492944034406188922112194104498827991240553106442353091319026674369478444371281404759406010296924942563976001135261379424567831803672240750115811471290841581088088304079343065307711883717237881369680252113969241910218087127572956173600431817239461745157359198806219209635469852225159296928922696264644583296732116374232564590197314119961065940226042965927938538716156855992143840437500752927279771574033439334028988473627826210208169180314087759393191978236624444084008157520202476696006924555853637246158203158130405667514501767640452126691193887600474000147915743010878008733913462219493478241922254447235357865234301515652248630903793213561707835966185405539444986266966809029891463563761161390479325784460516771817812490115733440329721319628378621614542730243501091979294469645644915892282959208334372342072226995355975799786183112867514117335094192527079020566620956364915842636527647354523525273624195686488295536530018246015510135358861828633146055729475291397474244809057633488036301445801113817526044247568213475377918954236485948385550310571549265967080609246273876462526613696065835838550203777703886056889600559159904777171100878679327653133310415384069745101637603736679149477464645624308591501780285027302293000102342844844016523930527944711886527066696101733901632323881005350687122396492335839852318447652789229734089289765195489533852174070609293076476228162547252012777244464166274132616943015940759966154433836190157762997218631934458686382887815221517571169341620671357601877631486531968151834469481204250667235156386856899943446106537948792861830150639245896385275910304102989327379105264019141690541743272459318723630572178702275313997444181411328480017252205777764044583970224404810281591056105701100161567804584379677707271548379270915762154313780324299315576636217742209593973887999156748340823429283892996698377444836196432688693256929371311654455896932056422756681470033443646278444253986670490576813464735369905224714552541929995202290496388956137059050210610881131997419098027353094815124814711548391961222247041623025836761484871781336856733203659672907981922062045383540090488389537031849275565587028474262244223169876952706640061502570252263678433065182779125954510508563400692126588648680293448507789681587956242514979872925916339076375724434392575815579442901946343570576364508431796693812173498540945713187453662498585261613059035777756528601773622869543446762788418788918428156712613895514362824335030814981924728625919394526718642856169421514197584294497340768526932922933004661270942695886580845941083634308123583073832327749268634383724174802345430082471190473067956224733526507457947187496471577424738397619478882289458760730067761283952761300258078373771081609154897517870576199810581800471966794896754453532638435539966631994198052390733448259850742849545220649576991913635983199574304022814725359126387158714724258131584866083070336971553864111304799835416003296897734352296692648546332129696779313001694344822466152738677001444656785931386418542395843030793388491710133122470236394706444880693464884411891926012310994935067868090379118567485497086791716660314278491343264653881341184682248013253549737586704847183439801774433183070290298805174376452701110069058865408170070392117900995425133668390111749801120153661771834586140461706812127600466663692745296248636539238754053160112682267441323611163904358961492964250273651648948081437147708309748666531564229342488915310030511597113879024866754035259180440202063474034907226197104499658397406088347591722915749447245913382473306855920104300514452980801338850601530001219548762388537739211645804618576969285369079704176779156260660808555952646020725726375767713157548437663796559094464248298895343163817822678767931158667052225771102474636272015819866834082484992080590925491670713290783946914262058021968282413872290757452779867272598839756763616036766328638082281352708748942872543981476687992601633971162587083203509206640248966376043123943988133057539249452385593432380505433390552843401188625381598468368111105528470285847415957539027058476067533763673743094732718434367366531293749368880761451185044494361461542128275166892199318570887907794147830981238239091150019607021434670966652740097667840809437044240100871583976791887991061841372464342652190160320259195362311288926059498250126827545712152501072166713887400515513374682001437434580253933000205335577766317194626776822934159584192322236257411711916673421295419016419420684930541787419920354406569853415015053722561099661213161728959812856323457564062369142676542546930737110789844479016292798735648719604842049536466124602430245593647057885031711482384464690484728997630713786693225954180236817729580509800378214776499138763431241867948319401501293357980905502922414348817079947052758283015113484240225278849315728322399952647906108666951008539733310738999202968668506039956627646047956507440630544938120825294836357920582593106210786725808246272317226032787884353630354166271026061722063390496207929838989881466309298413522703295886993604906019595050887368176350244724840814622635231253865496677277570590666717182775708050867596223359995956692300550774724144932037283673259901605839960031085062966225626587329081607408556113272439260901835309516453641784357425776339385914035198985819774494112589337607547399667931945986491568046635088441628245520985928825439412644112399975731166305894036535348966517188106909237172729960302034156032074328599922440391013744601349272604036847669384211607518518233981328449902608681799958310150514060560223266167464948337447020022674726710622796651728161176185736559123101337876951442442497010845131062156429645187633358381600550780354361020738494908843054354330302143065138612927887659140217717810450640981496900741066817807092025655301202388980966823015705746433239774771291449849488216349594422514160987721433239891326403959798581726852437206845340149463125926589373128406974037926158360107248011102238917016858007731614182107292994989388970443644673818089902321405798293191256101071772260418042243430698466566280216840434478409456990511392784737955318251549309105479991198170286928228102244514112501868228128508661845525189517622398189021626967596269071029024214438103113509700799236195811272321778448930510234222226006541553161839672556068642156202225085511343899723113999095062881122602517093012893258740115645331495320261285240043591238057511484042907501852567047937552318272580859891836988588160180439961769526050289748245173962186044126692206337839282643017336069177982932014804986879887382101362598577766366450936599073011174055922687646636135852895068724397839846970269001191966119418476725286066830567785654897347705281275324697192243718750960651115257580181613147835487878512954437533242435299327209211348695033862303482938104744668550041660163239822050298491303405268084385676537372806468305093740549992399555987929304710849881403017588021835252730485207847887893790058010780027142414878527079728793902569848862987607523989772066135817521959316177984085280130875864228085961602339510592224846828653803222278733681352880719338982753916571901828460462930508748370882749963611029089611046593097064110838128336130779759468676501797857053509422627838198508797725311759790120779171078640695362443156732016184500689532818871067138859066390179945122922596612389212549620638927857638289123197960696979353789274724714617216191659175728016783420632882925532270903785170551118806015419234536856085785063677997552336897250414029815242892468782142703370110358585381920020003866632606624667953067904840540382989078416649497225996968104144505891767124566475490047968662692430597516333495151411591963082681356623453168609517653884168976869560671345352048213596318344831058568190996793690071172439418533866766508790791000480892346586859942595908319877546057547769423211757227533403531136634273931570343457153247299323166767788715267803211975185191889364262319001268210492322509291100189824541637623593629855154202053121546418964273818625452399871405297671720083664678987301471935568921847552566579678036323230090984741110190583582433154827693161842977281778813197448427180367053845472749913444514610498182013735012129272868895965639586451757414409639298320572109798845799577019095276985792687855853359778459618891995891022051911243587613863972110511455663180228318041075569152420127438254083346503035969429998234205806893781191999510296098563803599378883775121031178285247582213779912267417024129040627760892977301528742156690955216785717651105873105757331840873353890297631037152671556605973710946567390812463227866313394299875404121339334170280266106845636641023970831047540264852939598850994314305992189500816421463979161375629148137514768594407996982975820122457867445733194000179108215385039793915798714109991130976460033615941197897651987721338801467382171522089898174290277794332383258389725565576707531973905265490414881697850915776917269707132128891575982499685884138186567328969257649112293580965119431231675748576510231887881070710484948547103591276017487669286573265042077044378862849794923660817043942176949913980141496754940866024407655402647545849212708484508066397768360186183732759620884171204334265139061547738291044073045311990416265437137565851607959849223085010401321226454394072547975621532252741360670124533964216950326875496904735381116222186323369752962493000401532921046575782582614506047018526777268215750364627907963236774290277644443981332466485380130427312280541514015988971520678523279744032600912078042847107948152423824890196529480116241789700912620629973232756885096901730772215359399421295822312064276171051893745611792259905271448773176173868295296829584895408232904209834600243321376262838806349798739911948785511729414750556995162197554111375088684802655638917761394993783202753021341661945903794978984324959163005748432363398788495179617503505429276048477281091826471045148083974759593555046837659435029793504381435056537955754415581817738427326599755663709188272892659862099151703915819511725796501716169459046976803019724830782838007007621908018828679366343937261700715818207138353478382217299436149086421669926354393971154231278989256134574170513960803332391819000891437226736959942680097324068634585656666567699565089783313148954736477219573557890035417344675198614585859922416786029200590720750294239233685887559383993746235982963751256605733940920198395806962823038414507082144550965895301098968874963772576521765946975416284723270299286332421842613563719497472535159534789733951814011645156449535572572902755801741486463580555063296090330226750538302336894071499359097514901928270192817017895475906153446719217365577592795570764358799138042542052989524338608356780038534920572306822552003108396814510630280727023710510331293484661086204986761924091273377666403610725162022274604321603229049178664596890031450855346205533173315610397277210092660359980620428452783739126742940882032564684456355037425916254984028788315921107077085861470370491559024044689760239671275410333937044214042738856779233256629043010515083852467592219971234765822044102937023146423249191702844420428122085426552020762659340158400473420950599132094797309835907471915320271606054023266346213993657445048577260951187585234405698500156262960957432354167918484519538783592519367935772647201726537876874498621118921299721800645159278765206497396747564988017993431381422502199067534679086698021312313100112382320008731069308505353226503385855798376701761849955568334500117051011154991435009649820035259584116619051842317399671662418389734887100623281614671375548558268000380009662474828203112181702974312066184635091606663002912871123133222977481257285962785107422115327103421509055114435085216897658078455181668984864836327245881053711870108390193421798860535741922109143586111195505239929984013187699658165557235925419706436276740192514585595092818150198377516034132092881343854334063227454103550057794366816555963399610653044695629242790896914333362592102590835516462062206351375685515165243509041619355646543294547678985874790805125854666682221945550061816635119919011719556672114383327091390057825878315133983458001612335979684432378692636304352061482947283738792284635181768858154624846533966254273583483958846050136862870832832595792911648059692183169921944185107771576845866913054783660266212233602344164102749709791481511914148356437279967727281207201181988666132979763175068858304772742898649707608669907583020138249347020040052886059935167773739163657930831077806852567662429819307450520851988112498039846427409653653757070041533711563725461389795410176065433086911095233950260890110841727229542381185914172121141899076592628636450133582024542347083735898859292789212991892150770498648442517094409589834152443141256420513552955679821851539529621926795453417474325658070817432238212473965224015455194250749367558605148221527477021002569903601531912894596071592006321769396023059814558507993217434393026226433977555354229762838627905146683172384297520750397822327467068842729223355943319340423128463148648721717057030236795702880316817633560734792186009796019646594384400824991463900047305709889020146324423263937561941473193144340836744749915019739088273127519072121907406008697720490123993960589879991812203763510835073798747648407701446574121831060907488109751396466419517522030981912858264846795523855155684640868904533875145092279022540652704836974004039106950348134150834825594522179026490198057407091788945169371881862786681105421176285019428991913461675959792410078124071629807409921206240527511569491245574179841979451014524490885270943422024307930754903881854141126425983006485555462440175041879459573195009624374706316992372894606219076220015606948451433512554708736948328114272181944459264709415205034374728639561490991064284529110858594156761230247196126534664939142292754219498335347116257786095279834954274779223546876462201173512898411848631327722010634862987865653711881853914423226317767923085411990466306278128074309319348769631737480788110582397135364615564958775126141465605078018821913871730364757553747469992477369328262508187019080668097799017640707917860110546946901569022514946507569447143355572537494212012471090318819699764527432809303345172748602638224468386769115705800179032458234079733317300941213967118623828000199798552187791483055612231562004267829172722823235879595460354913913517264645379838791238822119303215199542171952549953384929002190296459253073976555905133590862972381494703817584086026198579318314787563572095837613326240062888730524145463423704075873662042547661416735789019485074709121569702004362563136990063857124859595962768905737420845998671644120039833805781580752667310896493253999374305893526213175902582335789947238158235586587957830282033715006915074901256522008571558426544049614248880709444059235344938498979145860344080068019688798606889461944566883207790101762907086192498049719183728744026463423133889901915489017980533836643280189067308353581293476899601208015214546753311479564459314318709570505116863987785941259790715916199022634255974714158210486090670986015886825385773881731984652016939243335155831532773619878322033322493620293873523304200489646445096206865531567771419407524408207283545645043421916542431527440282262620609032781837750109745235538429659935585775939999248137571922323163959953346005747239260420318833360151994794944970643472945924482421108331470290998587314010435299833257008786158901315998265151176868707940161804943017519427499193918639587984580011252271075740501945091221102421307076771248408366386662903809489398768096134263342298307535473713733418930584578551718677247725450429500479343540527867089968095884176682870219512884976172060624173329710863573299265280631379456922904450809230621796160694312533959865218662127529364634190712477041975047812750982201808825175276439277695971322661051179978578709266723041363221443837943547417882737577818934061383040280617654125148565059245427182818561139323758211033559104836612085966423829077093955477905392840233957854476605217071048899531460803367858227167301236812839075523304960180630604084127590201223979571053472799724245281116835150797197182132974102969179149612428067461874996528036355420548747744000775933915563706013246875132741570816846779171680629842105950633917748385992428710259016290850763374659643915211581945276191444770549778358236994305333067624547230967742674037923242436213129505107838926105689296330874142581866588263966939597048488863586599583884406093780669550759504063162808628834017293768127880839116023737809752791747451469093577999948496158560760906915334343371390088716057779021094588736166798821857824004466365970608527898442430765015163288505140567820996450585601834397384222921337610967332643467010555772635215819822256421918325979848738827592420292540409398907935896836440933931767258458133019567078419078821444936412667189858584616681029359612967693690862312215974369682476209731658538823815285418098005863565765316167314071236146603882201615528894586870858423037628848665743254945011400245974490693556009728703343361300849748680756042071026955917148461058053460130925951108543623090834945780806767846855293737999578513459555176645438543906645826729930727273172942901707785478248947230960304152873002913468376255266544943250510048786928699649898159342953059714405024777532861259047316749368843683089251751235041697095267998863983926906318891901763676096300349750631828771105502082924424918211884258313446096714002866511366765529963209498852306063731804070463692191817370746336159661344490620973979764961891959931806801369455465767301157632608263730500287386116697168148471125797184933504060446441950584685408913795856536559184812319789256319143262161506189051597315820975487151879286368207333657100913515490240362414042199147189115857770847105126199740853883108191009686431993275227937643624414757407963199487950254274542901906371027114446194762695248746997891176066173559128287984732427595773379206441953198481559991504697896952729360403708162120198323891710471514860109104721985575169844934472455604069101029679731424719818590591026389884050414164828391812268021962982738885951135768208002975732771715812019911521867307989630233716655973417577640470703844080046360039382007880468939274160511106830485338626885325941542488076274647547258622700826896332675959440743876915689946823350231525277231761596949629338320167829519963162751136762326984264709650064806553471259070026685806499174542502125302033814773040117000728189658214270183918486116671920169838664887122895312219425064377070734007905812880790660062528901320859941199868586399410884257984982581243227140058386465747293274504533922290182378934987335860103445655942644357622453102525848176004137350205420093142142400387161025116815567434087223190574786186464515112158157462984804778284570160213409973838561760051777043252561475648553780813198326968552882961120955173428997817977785632938880779264145037023614442355060813232270983912554346449492208744599472808974435496707927030658013888273243985704038345842443381017683371296074348458572097474454326093198248700575231173087104914256854097520903873002834245467268917030715960818176695503686049982363613261179535682224648792708645487346118042414813068478131284646291857113902106753101695368492662161121845392476516689825406566013375154315853662622775822327229676539076414818265073422112861347365182187460971204974121974646301425499389310609301364764386271984424156336688590101270805732667209021627299998343855123653440727584870420518937988437383685287551429497913799351774257668021844423433414210466175582037917246658107272698858649567066887648189933726605581045446434872319273709730327465993598928877554072327566440319004719880655175945498978812872378794042581367520402591741193747536440302095655844775752704792954476949610274959585610306002492995556245009849537243372704368936667947296365156339416479659153132085999804888648241666194989502624539797146333054766259612590099014296184411890782864162821506509056074800345538136429035860850727322366745905830397559168651519251203996145315521741471084255017013989780302392911047598672391156801909635996950408230846191854936480636466909011628804844066359271527930061189003608285504224003627939927293418021750018972500363584694002400577697372722503302925105119145142208178495322200824481290393899836818984014552287737414952561513519897862001357751576765065643382443438956300372981686505364167195793247528652596366533396857357658789960261887175488425033268844532194540265721711793791493145647290750972680049610374756374198232002229033791750401149624921061123788389421085684713334770956530659639261131787861436889512830490574788684982297734588005919715522832658161304871502328006013802023180202937814650179133785914081097012315760255575473819612969588423095995007654668193419032155894806767263278240180602436685438486742516245662868039924153150015363058996966667395147838662001973314257119144956707287270608502485829464865467115061793433556281573779047775667071432623863052352313819355135014017997351147742307023597203778125820574192224462107545472736888174863894462259703600376269361027606708207661388707221996504160605617262498448114451334820423269876702591608212064039571107659796174078468923456334846942064368037254236158698623158080251544751827319308280382369811354084211470503221366775415789425543670837873186959830626112189151564695516512484733340369106850675812175448653622712222890589079896623523071514303303490587989804502316140525383473685543078103765997097342519520069657464379814913669349195409087494120350625257242182166725147586987387753589960944665901266080213377479505501999011279227649854689165931847622602639371865556255931694263376496331569124717471815976390468169001700856379317048644707799824897646577777469688875119169734269173910773706171805324050913294800917118632366474497276693863638141549206655885550775235418153872639105619480485421442630311871499373533817317242376127658824183963821236143482962757635910104505584157911421606087365167599456065279233616360047034621127074207302365466217821248496022764028355100554520175904943536363151368367919838040387062246407907581254675514868381214972804964198552727999436956843983421233464860251039882084383261300665095602918282766337178013129248576738152767551397848113674795650440297274816843970386077396213592404951084813201347215770868415561302960545123637917922092542634798656515022045409033119283004633735040809359870441304509929149743908869055395492493424496010738850530578200396006866530485995400856468508465926504865553985708419785635340656883174471064145095920648242200124510009524300316255268054011297040813116708254968961113959090637508285184830067717951164606187314733653374028372295990969443848051491894774669262085917413409308565670876148760400700533918497688987883291145970361906725840074793721973527429317199772991848549489378102854436410904064506763381855542978996782882319680164745003759685380853806403504232182337266237337573945077395065641093820721447623175180534993607517545721142095239791149685316015465807055528223071806376203195833195919651793310705282393089291819152806686412474892250885781982719191600188988790437210287653081712053477270530580202200756395526345486799106020403460792954696545028353595028452181871707211343670476452172822615200209593077179823734901591385868072399199624605178110141728551877472488222759365270358706090816829818901033255269576010742103699884638799679051033458518249392073856510967982882648031175177564746810329684585869672577548243255248109476979941602673857463942151503115618084000998822148522791941987180869589797545121897861994308879229795354058270656876342290398100472680456566084949009948178910950470867757828488261627943570171355725339502466413386248128693872404277424701217953976216734602405102469528494105631792882730153007807867830489771978081292229026507386367848869840612664275893554563776707499673923960068927158639842011572096595749032456438864399346474131362128139944546833725227902337006192417863805971302176061432770338919191543664257459638626660470445505042795996372863620934449921572753972233677731998167730944505524769807880509344670508753657596311050588454949212943052379396604509566165964388979447580384803286699769281390136358203134958089506323125016381195884885221832734677531028319330673085269555556378406961273213032992727711096998991193408396315152438058767856484836954159195306109283848210688063248700308010701134561899513652696079432695967345401348507463297982080774846798225584315336237569008097540438820874078889769495839802255509094388619821917536028330872597041995503706819906792020267021393580742957535637158729050643100527224774863297108958808999013230673247448102318517728658724102871214636303033854135007758399181667559791353658355768252265031396183945845944325401313957693342858093473486033730778657002208418932838836360111153381572974063002459441373007174299000685373631962205245264817303445574772936233056747175586359531562504231881649838054959844229223725549721475304015196187955594624590845709568869336447489441083826240019729719290566568988914098640507431722382302398782099308943564214997724562257117226730857956006430099592321659088978692404870223282818642487175601830624207672292217115050516692839566706461680261941259301471844501210168580107920507506667429486479354496987017134692080666912160902256789841314024301867192850788671765467544798103681008868474267401152263176457589577755449448165251746325523466548410361264380323277151149718606787427206206078703663519903287204643456644084112185345560481390578993632097337606428948569988869732515117338869175182714200174015209595725830579107139822843175535324361175816490465189747724364886038888708871835219260389614938621406231363933020336325046442996998898163309601012767140084619388171597582030255788006494645388512364227782595537350868705885779831979290281799050357725505685917023882482508107698369587229276611114697814857517162992034393301749679320386290505322476048500557154758602724890481615035134920907206016898929981338196987975230269157811402678725536639442223324650825203944808675163816132566185576638260970154390137908984091962695361035619742510258304509166119354122976281059448974410027056639586462852384830824915607519209074878981494277630870129716148011959909765081728159051572356436892162184069410447679851418841390572970408982879036154884151366777306037968037695633496078376746936537941600623842365164786686185350467463836521758903957907986733658736670528220523265229785431599090339215437318448051764706956440882492785437403958022969334737838858852313791376696521962282396717286703209499923893391768097001111658205136597336782384220507556153638504636434445925541261389466877274546359979610694652687127169021061341671568924932203049562587864590518398547607574587105780107505991605690232654634264255282043281428162970079062616185052180229551611848314206991852592677743815928300412947539440154544766797483213579496048707490961619913466500550871716371484565716373075243284424059394450553925347492752022314612161347335763690342940340040184498519925593314118644431040701736424767442917643033384509498792281194918950095003002215322472626080866174868832976032293674387943346247189483970959338688807845763727162923762378490633482473064187855948486671247001130927193303305437859980541053794372378403681471412070504675318568740384385160905533579017497534419976739888822906551346650958094874478064430078555072397118511916809747423150852303549061979026962462681092666505672154763622879504094701995073524598842811407945888318795896038481388218825242182928827053725924482088799654873862386684172924350413615178779600849816592489951955039219987440691870350795656649103004688616203770984802417419761093167945514880664177756106993736589581854616129400971976886960627814364687091860040742352942842108311680037514480681224346197720097220013767208324300915163889089649960307232103224219818673604271706868071126672041258651160757056507494717004499582811323377413741133155743891156338312589157141749251824080079869091122268113689662138846028438821488754782139589609767311189653988697209838609255956113077829037396821363517775263092944016744030803026806091486471292783582771653598367847730539124293557518189352953894316319883306249874649262431828260833366203290129186645444979416079420623229434195683482981218802496619288229155607284204049707447210333435170111069441126897969384551582730265320552483731332513723630228950201084891596687111582154362685528931908065574124885786055412472665355036910075398528721385211714406342067217880078696563497518566262583089783988005754437186696768878816937154997339467926856003483326923426702035061793253010532856763801037905217050382192084788432304363445439586701016939597019916815059643925749365549278710781987512001162231179342924285916775312621990295197411430445622926326733328902820142651501841065013811996331600655098334618891403054829659193300296675712068714969171794734459109269845786699542845078784084152777863140195461914444518226021165096409114072280922751847195555171599427786153691763151068535770938668171735092898799406117760965188734906561837208896100369368924873733831229999292577087427905306504109983214202959063763360031947947842740159450191246570556904621025987759234914064938187549736284642036802999358417382457990733293250299550825539775214589083763732345567314535729156415712938551705380864778824168737333108910903513741597144859818820929777299319184164159542488301324922112749432875343938854622704942124702872345307132299088758987334074986168853768288496674818234887223413206912748147936933572166992241868500753489149470801369201711906681869202587146907758551713297366729484650933139889929864196937271410146254405890649395786054863198487436970484554248303113890784446562632100159676465565914822199348866505209308571025658708155179116147876122409549996363608059466630085947107808185719512796667043839317125793929339697498935247017710869563682078251583827033320233724969167680933369339202724605579214403620237364047445717075953989694955619376124611920420947138526447742618919433645771491150039618125010768439411917865918625602546211130221597130653299145781040662527528767893768368569717229184049769459586770280494660313919834093880578737923608538725443049136099117343838112606638514253421844545013742899041232378839616641907458285337036921927515385829577342424827535150547234792027582356971859808104009122364981248915274722499772995482364849732515401317827063390051602253495933311399878167527397636975118753584973074220837225471183053888670221096264171909154510352700798496054782183568032839420184377314271624370384159179305313614802252224051397601338942109320018961539515492270270914264177140925885752866407976958654637062665916785946215210184782463179539603466934985771747213041206285882627744616571526061326320737290067521694870009678072647229265438458553580633349492734483186928919575994445033610338681229499090197101631854298168613622774366335967915666770612193638937394915732772103972856295298883357908161807646190941980800361165538532363060781319566651900942202068719629208595346415040208651283107125850788994173835109889323123714767588433796445917161423914871830828696521798745751459315831002582682266474815803838516024362262498055957834029026695436849575313520647940395523902940283856573084319952488730728493579636532478363422512223082280282836993321439881983520725260026271518491643015616431873454250721646531750616538540040604425102279697427693548744911620467316581130126119218625946486350088723129288519244034888697987650106147261512796681113613666069472506158565291571462330759803187316017224015879341446459876342931152415918643274849952193512520638697254928798498818549857898475304031442672394452254103354571280174895659537961363229781839440428442412492049028552311049246671208029480497404871676334045461682684906107946280525545296695021388463298964474924166613747937075109963844743104143171485932275600363271354758244401184478795193566487314737345148880284402348926918011867886061220631881371631456522425780793935439689952170270277971228604848726992478587299842945590317533023922526859758662612039767706012534075023930892411815432186772995618412525768007598725486852000320440011620204752333211530541909074277549714265928470617711162517311554963838552849896829755550082505451016771235335748737318111121628170393405360219685703549871969336804805095240391404551355297495492151262713095786491446298799575064924555736316348662121095325263818566091178695093172491690879123813221964163392927950171071829823522589812453048333386087396045346246057962331353915868888023780151099308302790834968831849456121268250056159727248408429832086683060050397739312519334967945073952277537300243235116345854273465643299918415073742619077265284056582006209703123888609998118514705990988052589188748715411230411256640168522335108939642265319200218030729701308955154477013836817596707223736306281104371880386750469893839525596656149413109921341736373005359853605195346047909250200244900449920327867643074389273792641502209855229165301800620579354815064917208906417964763842572735032068523411176595734895034690206680945619922781182930774403182904968953091970019191104400429573095714748818381194151017300552246918729015366935462865407359850540870289776895234844912222964087615661648371062314587131974650049380508779969803857615702098498279803394136524905508756001994083397017919618401521260177579534716764259493770388045874303976780200739971491111350911330919437731975211685067083120505258507883811934857621434649861686229514602674690436150394342864488229251518223857831162492675695987190484414004401588363485502752085299551889483533066722200556896779914092321103730444259417636549165750262534501817484125350505826977073842132068382800728838612965645799134302701189639864550731203288549890844827898093547050511909052811843600414558036078045144563320538512877222407852504840372993321237610291203164095696390060852234337875187322395374920168147747102260717084686306245513433167131559461977226827630876814869222033218984374634061182744222594823819696535594797175998053459415819310980331287221407322725244728276927756027175577327168104031702276946283019504888276499398422880885831541008656910373089692807474939275407256182427538096606213790605514218914497346144499783117072851985825303948493444881766166319119861438583681306314397480750999973530149260460677449982626452170269837017017895059883388662683974747744992057211963440496328048458756116428700175562764160536582550141603644789171279431080392326558830371837665338880885625984936118466784858632808183656672617210997589476256796539908098990402777887721461758236873981148947147662946780788496080795122795501097469252819436628794090804846943944397502911502665295253893823007792938053855781630097591141700715292112600265428995160664405234959364227811323116394874321371683076293312042752625094077507722943438817124454493177077049246142336702737252258741747687078777125719569257354352898512773933665923208231135941495396936655038622124485822991798591151846112465085457546274853603003626547938988801559597658824498858818744853093158983562565121739457952499628299486827990594669947189773018785919200953600319236126463654780314407881146844539146462348046697421624247653767572175324119658522696968727017972309803500761802676079049659792079257608413156399310701459102513484237907290019460386114563093997937881588938802732824727172307899819692689831061796152279915005875404142809947195556010759173256730415299356393083586964656871757575847405462268725456976475079557710538049739278331938283393224200105301990673903883213022792203131235692134230226226479812059081326587500871550947637410066914727006995169301310185633106657802787061850960897591150308457517727543969476014704920895920619070826422800873160057453788836986810762632439016315433816732106613587867485847586873023638239599920235600710760407140335802732335817096332352135154040362170125002306745297178754287148076141385957482479005962239794742038321996057429536969292181915525739945401262998235359272969218083088190061508513979198196183192089678023131954072436751645601185710100496995182919921169700714921705543132136833503757058574479483454090047626342190397383792949679581962873159181759789928049545034903577655258083920183042086048819774642581649873498283801199951435864533833838247871041161932513266149691809651849473833952932550712480789499259273560659015935521660360901029842476056534647945456509695833516288047647486310580619829800219711819157708026746190947646743151192914551836260217819903528683966140034223397174600689273487362530923308384621226429157347748416196478027399593013645687040670501669595247960070016606938786087637195792284585334274425937106509003864000650141966937681613530203619537369367572717530523445883972244065895319778643304837343329397348894336803735566020363234052659891175991291251888515213176004767394653839603796336740404878044507851038269824076635369222303028781001831537929373440191376332186083540080843820715481840670148674366596530828175227846650881597932461704875317807108780520272245344057055306873804976587550376258871108244826025452507750931464034989478125408363619814613266226839720724599789320227016787851044205941533699013408174992169881908128133179348408435166193392113118888486216541691397658247216755206916737687737960677453863107187424626514961531079143793712668182610985382962495867735950314072174439771914688816792152654698242614673133641804746817084642158845341763619447598601175177122157443317851673674186344988562882717700055783298967174651335119742923320019281428219748671767707181343927738247259313200093037642564762410648154639541472481767396484366456876847235161104044517589026950511757441698888975297329534662671541223063830340481420514327467483366766630416667230967654181312583251724974158429577726998737876317483761399411021401223446719711190550579989283217169321629624228594098009658502005936940056966601791809767087185901441458664857576015502516922749896405837294915272732162610596819911648307711044749815491924183706871815210211202730465425369308387252024377817147737976746347787058048669202129604081340855647256428383187560825694252106393714876292929544807565487571263936094892161038000921806236575475283872143670237863765092496491676443606533711806825070443683527320093517061524968975651745967539895403145361568204639127555665422732654069613542058412221329584891290124510886049339156301670785929543801254726886826663877470708806897771981499068825357943702188879577310414316568093181466905561334763769773721916097539343662982145709013432554237459553996744545410082108692479984894706750652297784808341977749499351062043883389248127574338693005354180995657468073956359966504424403047808128876872325825390838001437390572802723053362669016297970160645951462771435963875572813319739254312953404322139923939240563905691343937888911450133522124631418066512374245798484187510492286000252518252656366746817238514490759574279230036260186452386130952829814227481086250226634037360647065354050910187450248388097568667460464406858454304460260791521147044713013656809766629362252623852794003583809731018271094224707461226369398491907855702728316512581751021531932614852062049053381096093008816713262639456108360689608934991940855290704154677771174372013856119311241021942459809452834764837389664844710576330508192626924481883140603373584806385716114987069165093476727866688643410695571752126337569987192470769888375177396493643250949466316771835496920396507910125634297494848881754500463823242425939135023755377523566776350735852646930295923936998613184008747778473447984816596664954677524996737005854738294385646174148895504171281820370118754744467735484471843661952781693403717925208999123912669659424167022862317808446555021417261331549796351317872306539561537701274729976632707221687265955345656044195785342357487727392644990742888027553771618716099501070150418523542897090692163268468356292048219586560939243691670457402335649575434737812064993332611744613178903910968154351675846027549084702300047057474893936909999664878842704176497511889788633237632954822549725060720147769519862956136309940271995095141280090239677061281454831308244104885038660013064799849963938514175860511164711380942841525083294498184430514018088554518980689423352159333367415751825935629027974872356218907980350980568066195248671051482137708695694534633929619544942955851263035572024820828570418605463455582178949667592086906123621256652636352621747098504914266695368638510888932271494112752158261414622768941439653845359896274451516779699870795457157274464485320540388994208203681689964188836809196042374593340149614447952566419868725005006018412544792169871812840822079031173056689579603207535275827720329320253468554102335620465115790294940002990429559463137617694992319207467268483619506087642470818637870808141183111313152044143217278157451655679049511168320274720553914902884817578606312869676941347044855974653564795980253922255666526150839209830551798622503503100383976986041792264869553323685363695467068878664716847005453349584934131427944551016912852969625019666948201473538190493822776396619380673697528113625681974144996791578333585433177453555227719875767482184257541812832472417411912842493608523480349089913514989265537732636860433666780007746698695310665320782394251220742380124896773940221827539555084367284577094009354374955425868854897495642554277390351600790135013154501275348880226517210787175459240085992648679648070439723456472115978377729132510985117422415396426622923015380563294734048572029878316120419076074684792263361743869152559000354193981678721232148249597503777226800588947630907846409240386174603023155315528960047891318607644262898353385868720283180064017159358565745821197279582820748960358466288946686372030106525817585116124512836782205498716662098190847170284738103495504485152216890258252460912646637491303874278740363290381302514637004317468471931153725627999039839130973271401740684578412102484746425796919321309266465948390287523723360559294319090124211373663533426445533863016987297339579826714126324150227462352475856392276003420421854557958064817530897516661397360936352204654453991773597465354219199090360755710151452917229889576191208181957628384510063429251489242295096425018359884599210014571321716458130584376305601542268619296868659716999764598357413862552003376321621309625296224211101262867435951905609605854299188728140238241620873163232891596615629896706486658902500592580992280350777178693480581418112408949975892478426090808587211212094052333475595918269042889886730449392076020008687933401193914050463940813860274134563039794291872530013678375472778170860938257296641473071983893106336381086831940599699639916483601137935112624701103520769632981123633362264721957971934916951727489177858290682235502948186337196017056504460490009080708844066007895001667372071269458452789674988406352129689971454822930083004419581310519681842848151571944509032241882878990084222881577843786307236855530342793607740217155856341026044621135055942264475954986370356573830593857068497337673543126670070012725713317329108598903294557102991134957953480215585585186356546011219332208459764642156174779591380447699186595330932537520301488384529010982595048408115959229881775410680437540235923584145454144092935492467060692581390859071789668676542882971319582074885108040849088100225954860292745034080341768748469211842735250063655635738314504808788225293099583733359833817636980516420506461609620157107881486204333416634530389194036232468917375662321681911745449308845546767866230412818048402457133142160806602148781588552126931726009035140374269048388806770300362621643492375123910597309140617470728116320400458317665238410945517001056345697123493893476217401527830180152264523319758026951174241994907211005994106083594536970672463174069595990673538892827819753060329202745352112614012300483218669093635278798836250404401632592303681818147093904068683696855133762128178338676761206861746612488415334488890017156517632415351650484461835911822291538625399140550884160003622171093718228743873879694215090221636252085437685339924902429435866512924402453946716992243337994714746708402162373037529593175185033007994630451697056912148047559454061155529942043201436268370808077647534142570050821232300668947991600086215791914301532569973407090308005574697795146060220812608450128861833316832435449065939262001015407131349392806760314004788507608961421840688888112790356585752903803654071112318736790272395882610049636886237980440758429473282448522059681059923848848482900021500733325991044716124043406698559302959766135945082727021346953284150744040910718988090154750449680221571828060780119319715723557930540563243902436292043840092671190388766313584904623973746722938184195953266972856791503345625814547261672307363804766157770186878548943701872126240263469780500122748043580159228275714653522961445969414881866902147836306492526434773381601961544189440969469938084981889976475490454590111141532317225893286514697548732126772912111121293601469930672455376759049574128490883505496886406159566664917945103931726577031889874079529854328244361560686084367001972283902711066780956771580171509271521378275438698981481740861707692312371428303475967002437568995733300137185960392381564351983619054364072541311245696040994340399565855360275025269821071839227140481387217406185305367320917021892140859475536460207830670039127049000885049174217418235648636011957510381753345640187121557265943490186870313913503445061657244227412789246601868642479516769123651313540488959427366535816434606794940999116913974724624360657657155488870165686620415908878150034855429185612203725479552208829566125308800315463744613993353813174793865606309612355590769844617809537642039001402716874887242137741857047575157422377949709106074445160399849601444824749277372469282774120321906444517801872524816112380671736552629081569106788288013239032858996566146973855053358238510550483925815260513183729900994407745619127338125463836900828956150671955728517309670103420330907373771041466780109758954265147081834453956041310361584016798935551779835491441351970242242751166133681156514814785274067941530856413104079976426277581841294950331997923945946351227472147317998087636553699869728847827369793335961665063677524419866480242510675547771834189626734013876265996643492600080100730891625886887916479158676394251119909818229185864474593783306686739890360102990806769249668388679007887856880996164239927610252131074685137691590977739942689885583433774819365024302076771696516595598970855822133871978070452434962356315449798566012782324051941133896537051532637347523039198391547514610364003744885237854659923410816348043273164406347673686030557938533573527929429617312019376546454880177302361736799795797649111452788553014753684129305550521453321039003770223529881864941327478743266213278731265818035904101056947374103922384058913233828023074450239658701200872597159250467215147713337041257920231283736065351121006449531482309430734035007732686851219592851494891173480100200977301348195848559200348036207085914174285820972186734396196840883280047684490466802849783389605830637718221715013659810239012279426515606533715521946697751728357991401187381932059183531100209777435060763884779489024940963191572864179380259477340703619779915803512356724370453670928822274229800238537999321471760390633864660413707781537649597360278660638070684781367455574185893669693656179804489037258927213756086474512703502062382194373014123921095655554963262744551995227865895477646474870392348269030483448801156419286107556828698583728851838852831810920952501893072599069469272846556266491369857357595550761561179716918357763966738084921163209265641317156997473394554521118284386396074693224985245031680357259900859008984446155131145906828319079716837272860221863441814437176832889016160808288196166377819602970124353922785077227305662260988710731239537721859541335616884099080427176355351357634274653674199070792023672277276062937764858360615915679095961661791915869028798528163617664519490290667438106550253327954265299744454761305544651642650204166481479904957148638453696295985925759957883788985205468753201302659741768518120523549513660244672732926763467609078665060569003338816290317304352161072474779744962098370395144986655191299072975404137050885963255496586830071426774105742262324763488112252780763292672133033388617026576830475724158489113375511953514472317848251428410438053865915932059921249964302728743559165615553264525186757469872313528442879074548723575631785234301786268685016874013222125329544448505109858651882000517611885585703614300366160049971882784486570885803774355375494053240888766936671759683374072527203024501586880045097620988742498943689915915966358212464030845165461801350741682274056755787406166353987022241959689804395992490323529636209818265903563451599376169150328185579901077486252966418709415917139435914358927135297770128102002267808323673706051728909600046132946719016439918431320889456304683163164422015468159250934749315567608602995400636780307092502833845046406588915496088030089861589173607148708837527485193801271584197744982296073191712131738896931378536663555073881681111339697237697228211316892900743943529131660459201029156659051473175794678684111511388313805248246011036260111003216056521735642593156650602247860654881659357476525836409501367456504577221070177632860974674716205231706883162032470238733084738940599149146243960652028436331928129521723888529340692404791812009192561846577539299207045541591758136537797079867514465417356208589215048031498211341070556571491432217671677527056189696597690047077352533001595918796415167930629640440100694493499555512006715797396092081432919242740024676475315747828600555401156297909822985998285457020319405938608204316918460734179157186356247899352582489786344403259441532925144060769965258642080037971863604549690940127948293171715522459569781050839724847755026779070508187279890238377588799493107318972605340248548358204126699504161357368444219156308944556240720866069696318537493851015918275784699731786648498266218318957338837006026768442560306498775951574135567091130619127584726838895006038163384555284618225034187580067224268571746705512722644025939706972266813839714847787205571909581494356732666739003953064441084063373871490151856963792781821017390917225647641615570591407881311577531730225862900520552881446616806396098030087915293231064451256954804620516091543767846552663677396499621868492742287931894482314977633226404114872744794612791072826954261915367248024288604343619845543306394365791091178014956021843578752290452501107929527215961716497246703181532631488758982147014467868249009925615179615984964950113050744639666480310817224306949536346399230214442608045776881587564824439780061499747609648874768813120075109699465615073016063964938415386531928588093761466284213934385062151456220621535569218973144726474668753074552078272268463325719808367119217071357503796210071950093667273059461956232786378089309665961086576737933765595691599240355894263097159148947521661937529951571378268340464581973160959792177028100521829176952841602578595503483123862693395621606160075979116733097264587463676161288336902386734327660693547243592331150600883588567862550176922038609789408508862689464515428030241088037394442790737776182694975098862720657631146927677249444430694157487047051067542895090190039853866341063669543837326827562243522310875353480128035987407418685091449853122442112161968515996916906802408515977285375428010760816894556221940559521589954099529871490212595618440452561407148226548667341645607843079997328967074335959037986435367834857248053303544182005126414267116826055220521548890032173436426114911990133036837267771919943463014674161427226606697963443103520696384219162123947988118488295556412630176412585770636471277520749502902202461851603971874899218228368068332151924597507129549667037346770909367667225115573402183763673844525825777539934913547708079603251235539880826387382927425884540377734347935647563978543989334483276467102255145209165513351211592103873844445749550269994927030984042825810872970042350645605539026753715543492948218196908527859419647529938296052754218997761972893725219643281606263515733034981450698118748785087020789318946828794947525605418922463062233495490584381851545101688884097471650835189476743929989507205226186839311646270070536748624116970823480415274375779905822515635720516549571383609192328106973241157992683688874097856096033711063384649515157649726597829048803955358182912028762370317075407749043346019646003631654665182070454214978567899745053436833362386844900839704664133726280565081877940190853329450715876935319945346195672187718145631622415238132900701270416559311406223713957489160048987745277351370511690079810493461336051117866758327404245472988817987598289198973858990657536667134531971164053491906639742910488059513120295991691208895608084386556903024470822179346913935569080628593065436670298712871169937197339505599597161247880885057540940072624292328144482337961900833251446258643411337148412293329288051694033033415115792928166983536354991152517227156447804216308477533389531352750070469794489399029598595204462921531066832736906147907294579103778656710207442047714902794494394030857709937023684225601360567187709572536765426214531897500131437071923569650556175580452422224382841515316283324808222860036875177976429648145158902586554602655748217893569012883752041353592308323301364421154227315698304454947168965405561436855489410041245554780370059087882534557742393846899724165728443637995031677681909860556029953509449064468353794001173768874097247845955706033867617482385666267086854782639551761578512270118715784836900346814155987675208082976322703197111068845469852576914764935456361268063822117970358993267344462093813545169779291081301731740648371019839730900717404536103430489674466849447872564889001426013604769116283415610108295811233999571661056480539697203143454190125363134874353170525095656556936434800082016567625905716735441411612465054569898923647471148328890489286867262435198155080115330465971736163419218190023803797802384041396650654914265239035117140539807677735975166679418614049486494262179042084342720526915792478210555552041172647164155850226077142792686241626140425752326486966395855306752011052404449797700726739455842976593515833758151211826070572652137031267985833574639704872694616230994649106187453189158791475392571546694025317939071918739848538009488181195261404664952990054921387224371090682888054606078310139487619071277381923043522079808991878973610879451995223265128315956778150596270605310951751090417334473210746209177211438551105396822790336380180256148399329617409523997368076944895349170827857020407272592633054624157979265440402112161684150821636749996976565886750154169504738737379366839913568651073634862842811509309295438280661055092131945014882247506310852848405653236453552957316959160788889946053705979391880324671397732674695878319050292765663149248935298606571625688694559902407570263515082933940981472152324761749885446663953618059973761413396553247440341832235056465112169949341853766999444389512189098237776183051334325097286080475172545764118566008720370793933391630853007861360894578699256845539173943922132316209085179165879025960353917327729723427941210322646937619759411914616220755790011840326038115890203654533350844147508138401032845799879583181373015531706325952163221991595793920395582665939612001895071149126021573344601646964650512277269026635820981969352213452223470867701118873011257715876137339567763616319708897012270422748258363422514307858979158566576588964403017005871129758645086215267539163777015852831642428382258169179459065755786998051937343348945046126963552087191789994397662756462244477654152846243432906961727364377991940846040165377212662905741829864094619932792651494392573717826202950423061395113968590198073700312184198163244227893004616668117633265963709847863423496913971995369685748221591160256264771075893265735818330693137569466725450041053106308326393250323379950135471262911042222786237302147014243822875548320017239886267423734829667888802314807372208764638877215358821442867355819056658325132247639081038987869209249314236585622428791092720292486894300016852015955920392225666761001726862614762698204398861929000506617195924414892843409032687253085220184562087830156895194363394887806894741544006123822702953277978866695048517579848410144068263042018632705086778363573954526579852505288236262876145778839274836424649946875135311547242227793138111793172655109959349167028903442711282427581773260776472243715610240543816562162608892810445071882094000629017426924912038794588199409883083631994148013750349715953377952824814778650051530408999307132722718041566759714851893219864966115331868047298872111603331276401823311013762454627956505376739163548809788217550304559387566545523050718990446376860506188054051191683080407792166013071030146717716854310622941118316154659745975944706254103315192085551965738154980305052600521858230257870869627828920619201576703631779779663369141153825911150098989330278147366345887386961551737379430734551390385871492951624180772965459743748362691476526998200042001657350262495421091274451777575545422594283596590173549112806144841654538551089296339550414428479732705567596451834330263876861472318455542207503161448011408946559816076508346490048672578149091359374828565475421804906104159531100267980917142621870694524061528025843121718157420044031545458157339781864527307003470989202309286992368910325711298356931264777008523445304614659121730858373519244562590057318880943775936952911038033845142747858434242319337594167255772411882824476599516871847338229958068605022352431627458632270667800175968507519567115956087455457919651001727294162688194151920631141730287605150762128661769258720025383502714960667954110853110521694690574559256545621255285949932622936503177560705165069535130696318147122392292145832401719070752603351302819728769842817532686456021658365308600050574379608675185094585811785378920096520895239979348938333765035963916119020878203368793823001723184189389516611505072117889779370165624636864077532009890685703938245782760167316962100299278911928677790097714534122281539074802120610929017998283079667374499874520626071698994424488809870522055998167383234716818953124225189542231860975305216709873925230204269453229198620523782486464918401845893844729190756651182778296120335406066524908725616843958270057311318398276839818082277454198653734899966243159700673259618335644670529676504292730240071018443248105107783871893708623329856821359617354042504226473381188681196570103608199943952591425580230779881339207444071081331299052854720063472850146558790051236389682725673853763675405907318563038265317273741970456191881915836829759400276473728746788558842210378984386680040716290845460404087968806846632834223267769703302293765948459534169962114347778608633273655021667056956363832239981460024687187912327905949615955427095375654623214109476957195505786734525124229891300047925569702888659451478030452465728942616071120456712740172206789689117899058677950937031305270177630813062088696901355558262376919535898207594271013659814803063642632440506638037336689139735200801781868754891895480003609975670965900957913491354846109187856021934358128806335822640601095822036902524785554819437587557651085530261525151474004640774660006987584149635263378841605113123188546936499065591704394830161961197077268636062836919977123646540411526602800384415173573840805952478879485078126708955530571902072580236181296569737344114864052364909323422292436742876274523208563997813036058433539843321390420619020461847048460817217296015727647883391434368427174715441840443176326007590888272491987116574942736555092881861018972422126102190600565746749714891551772308101844727312136900356043402792014316560299915699852543678377088759813253131844409916250488447159207137652505071001381208086399633330321085380031869080363148952882331862656159094762548047948599810760096338148266894781563314677140160502697171076971185091455205791817601821896605528287569281890749121122134213835634299851511131941561448814805485851926803827605964692192172332202486862736473420105302262784142891719767197170065407184335251115457943531051388163360942843799450052276157073582156601864364544125454822490995078630619809833818104736941894395991186356138379620726206307881813422560048810559108880388862674783039522650476642986798622611929948539431567119598840325059829648845811517452014608421740559519027665530375470740031316611500139593696704225771855161038874590797107940009516163968470543009252144781765403161380807401428127761929927195176385536671500983668050546207240013812725757567741869443165213925618077103103107155743517206935659446555323967056019932411676960081832314678303088013057423462530373058382706133910813089283523447064072452185823553648292720385073564779357260434418074202865655407387473035706174780756403084463536715133849753736764358060825910102604347576561670780693594830319618285617453847776288889590658616031585811458124878964116751486675163581506115851025789420110642468606959117965141191343880197091660558097849580647193629289671565819841134197293735997530629752906370072053154134202222684458838797052243663563146929205876720968119146585268626555516676935595842568358892227582363949847848307072167988201716333252107586115071425630917559393367982660227216027149272216028247833201294349507526268573793169436683422592606410330000803881117340453421073725868334346916357748892211001773634973943815077369072638341635829888778519043464318795583879213179932583328128198663053393701794650219933255957284450230316940853659848037211879956253427320071362764317392405992841442470414050016552807569645082038929388126482133076756939489607057838260932733111347481181135681425295554923037919856690387108316403077201343393352134589293112676313601554576729394639964521091675418062187955755288216685161678649064202398732315518600833751728204567726362046645860637053325674299529892284316972058156739565914938358678480621713804443818442403621638978706577991131719562936575338980601216465637916073306076408543922010584691141057808922675624161258547655499128538970154227959196339035180452209031775025302891038577281114948117635402657643463563310762834435730678340941938079938758727302593463504887490321467708148747744821448349699394994646142770226682293074894909705622449362828567437601044850630492179430277649957076030432032548434860704583423785472801797341496725027979280597583100332712323288326030540920532473297414949073632030459760400373671193779261508700889074302672540429041591499414659830811527495316289465723834346019293474790588018088094120362124129973564817743089699976760121637543184531762473297085399287283618783933428808164906317926294572629238216173410558182581723436213252442249640997454720026776242632699111337664173972646794342375544743443212521472756262794613317442510541157428817144953709589977747510155356848440253776246148659310123590514954077790666416912061683804676565704583035732232772981578080448913601663048677635374717222671578771297917011143845218468991204239848922721557187044097280098444486372372960835597362378377296855766406899883970954144749680890032211482840058263695495681947943325573657327158099045969360796961628172971121568653650918427988433595112454417758560215426591455438271213817137018370325496961114651232036748272843378611495061329508754984915456234327899794906208460006562458903984701482897947936225496993638471193084474232918553185882404031544209193105651319062426297433035311822904948559960405296685244052074507056122427103918040366346280289863369034765696007790136668771044828302528683879255721356892970103774289619592166699160182402082199904972464419172997344898451609511116465244105089947625691094682233046118246925516686862804888862829169742377550273809272817199119352366895313003734800331192911495827071290166796790398905926535581974220743287501635294939463021194842533392886276205252976097184021079218744658591397137143126660288650946771742593973397914925129352934292976707319023565107699368711742818420126456856429506453764577323092142730886041659600040654736345956592686342990831990278691569657291201706163059846892904954065773971483277984389748894905478124279493175316154733569585676566053315525548010287679904145062166166497677599994421581630056257182679132437805494947424795319848163576975859770304275917707555849627703270202849928623412498308918200000602532564942620040620565748965574373101398028664877158699116988842965907562450848751168230482509407912322291055366954792655318609775167800790721364293674048070931978932459674469662792997053626010014900922145887252390445185516103635952774543978339244594003685665885212441991739668153685638415896566437987036470544370939181614035846669379087408547721610940601469253400242560466981021587566592299922433835279435652633663779354744711944597754115777261980257972884251402649065054687795970122653801623652447030968048366613706691240929754310369463455126850954391355187657775805382641372591175276719383190121776133924700977878151317700382519943122238716786330891175701118428181123355148594704096802466057158418379951192382716981137738195236983629536841860286776292133716854649106962223587341021574292291857405433075610837083817050243566850907408365294217393840989400357633775447648783546678788014470977587875431472660040241366360498987911731755392511435145127139083590700924182606794943894911692148311058246083234212607763352716978735023200199204549118618653383616027750781028269341945404247112750893788873651778058739531005337429086977370733979782882271548059963884821029250798846440856269565115683287608141190140744308263623150677994500924996222240765437928906456084083797779317355650651362511127109114401857566793940642843228217212292888613968403970826647331641665344929605028249877836912515983933316571892619474821862777037530148664678071589343974174970205328390565429610053060444400504864615051918673617713814729670489610329479133132178440412903401240267423025673942208209130598852279189301480545168978086953551872084319508214238692711045972594622520584513944045371025825716296617340247624128744127284284852780621383557679295104335192911716713435835183949995931726248583073223732352686866468755853846017481257758996379013097951741125106185889239172807582791946789433862353453754247871623615924815933672226218598547047563832506196433199047555515641200179006240206118741069873993185598116130658066222441726083223689945912672773307743966728413824661783239806199261545348229140736883742725634465491916480189793897365402329128149844142963809799531213235795598919469017944746311037065813048591755729289953315171050720876908437514590337845246742130018612876237442676847015341645569477522504771939794079933828991451403071824806749365581688970747967946429106947666909012844707564784956626746054364095873851391539336454713621038715228422575313321908997158892173574105515304266422974374672242639153437614166985420406724629306892568799015421406337669145673187598128897098275636399141532532341049854780277265963904690759806825391478794053602933057762800345390925019679294309086821355986595601334426801719433258404379771095096193233430232349315068856392272055355631187094039454153298826081972872675588648168661911559944184761836336426993573136149826246403755249271692507251334873165980018961324106523073541925776477512505877281662355941896712175927325101145884812296846482663913108384747544068847475341984688497952561229404812674251247786828212922771261667502607662169726841961705239455716119401569664457208969390328766288447699716512759936640976965923449377992435852778581307356147851471699290867794286732893573779488234687647529878111158308123591872588799849101991569930255367889826261162004730435855563869164018547252260207405471776849637884178900834575263693828979021478696663108333437385004401127658308491916593109126351489602469770511684372518061566830200467469821483600847686261855658063808162668578397186832091391182968611802382126405268535706141695385374934048534659225943402949953365672987494206830082971728446590955883822419129452771915658183432710844715757578626180253110768890252972526888512682333439015892517268694815064271145204350502361823298136477577977164964646485878198815178896084485764728081044636339642054825558427465762652726455496660089206346974685140622943650137321010330871440767686031104899280812840432341516776675032765500435610848981919867591657821521983379641697400846168924065599018282275023290890961430799553374758921403615535587148904911712408458863386918123443998902370738738793546316303048876602550003989753080637296895683782515279288545565620417760902803200988404286609025380217330241302030857812712126146258569357012960801728405150866977333915202433473330429958740861424395413763822563598300716665022971323379696501572492678453323099083114946750153858978048474932260559862144175216982164398252336465366234614951251988560520783784352821275594028230743850904881839304105144433397507587562842028956420102918602270469888331468790974009931448692048188737836630390488311332744425345454874718033546080314504406283251464668071066780655466666390182548552991198769665237277784163548306468292968976909047033384834016851156206870019745234347347839712657430320848490051237813159086570816173398683144812846118547328388465403951492099842821811616768799940177905329713003995543030983812993325280801939002366838257899522381300278284779709851869989876457756514357242252691203581655600872648756961894038752555488487450868149158587836233291183347597181703036012111779778621050683102477998462741846137314950265850202486078588400387445112060426159000373290581381518177523409443458048494041010970448657852649846309096084768126263154258645012058799428939423037057467589239970131795255304793345224276529876936197952417915292979147150974366384455759267385723141441138730969533349017420225828961990384338876444484927959147465113971838079713077718541276317703144259795149200883795563421485769863699023724425532001677887800546676791991741728888652051896638713925793414287536356487293605778353574954110014686740894326124708960770686641850817292715384826970161690350224259481813120204522866235184024153414262080125418314205884596328997988785750676216063318290747155594133686912629697166560390979468339198076658496718196286946111328011504157787000449015765257045199743271547935505366111229283468083299489942894840526207254261340392776401969413216421513198095773531816335840356168532686380413617592414300952231894120048566593021352239339152893538200458161148671795247060311885689816421175144449428509947561164737926513955512005745089962551372707866398826191219960519470151626095256029431516017674137285269395839638911177795255273638728050216472444357843040622281068323071369941006988231111943963860789533449569200281457877743071322941338670853033338451720660457334052003114274312761050951428932941966622066046792758828747581259209060378676856583095166921115870058399859071359762678492010515373617222001050049509303338835247609501142975655122974778145263119798609571613273617796008789430307701604937469888581430059484389176359940957614814320365891338267248782067542220822629596117635021539280332730079941960393362348551796415100385135484309613890708980449422371132506802063683588569364121826045695858894332965850015625268867693202239629047995027460429149167479382834777585444482245778653536874533792403389672944170337690105611080450068140111421463049064383560127158272979050814826222668605341327053559198720900363549201350706287391877049959046953316456834200783921491372150351519013829760584397732931934593365727280065956471519481122564921961024426540964789691550326679699874708620784878714857888105508563371086836433461667412105938752157672465722527797890389664930942528074625091397206967618829691956750546050034572147467782311260459246891272701198048349520050390870808495684785951069437120320747303830920043313686184996917128966375804676178394122409946138563351934427818508134082066433003580418138210523331723834955134389435243788950640653088985263434655342531758485323677326662334559274762490312334338909197792697249693170353767646846971640852476557588459440861473920118015792989660964987333350153982973331773888457171117472931599313740520544290104047344528824374836164175945577325646635976452238171481562104458756699866329766516739165832512113678652670854354481768440839425189774933844539048954447959151534474603714925194420030930421286185487266160545697161569703643886695625997687762301677741839761612053697544096754417602624174860067580393904883536509501817109681991321407251996062921042212571318706925027696150874963936096830551053636219885756060809309431263582535682736552004428865188499711194670648140451344048954044517989108573060364873015985399341628007735483546809855608732274676635598144061749057578092525289485239716336705481530044231191661242318803359586754762105201838800675005178457397594640817153857769596416154539686904751794698241029735203409689084806223543297898048619687950574445883192369157369629051910448295871531143727185694104004001909336424313196992608455807694410522702560236282525777513695216554757177444003370267367184650532336095069997881684379004499092182205459848435499488236812033248008766448060619031027413212527466168634155902731195155812873266292118103347632210495935704226216844315851149565711174769085666579932447453659923791378709545982809203273191040094308299098138427928333332652459383103439619802734890750173980854492061712532072855892256098399182898445468558596477298365455307057639935569400979931925536598468893876586056900431474265831299176149137637385976878899811502354655414102617223678935377388287663156687302762715835346073733132255176708145371074584458529054009813960950131766699947595767949491818646397165943283321705603612163848026045488312598262671715150851110794588551270145191044962538434042337862885931301971186653648963265073869936148213338784627999564832902408197887043418523233213018369016283828895263501800726081665361140125265746642888167335444092116753455520460998951488342006494864109838665606429826774434181676196926193764967533609261426280007040615212496780854205815691162574089291327986254834496168999673409351709449913556080545998364546364682328925601597145078525468513883333360878631303554307502970481726077051802484258216111750393317456691010177338043001426989454708700355482639071811594130091559714734187798750731582373597845274681027200571366642780296473881606504045296136473656661084778614154903005718459200679702054415475545489248073034059143108971203888887557616695253600840012008896765501730120524750542618088546638835385289258819720300078371291649931913974810162812698503114013278685928218503167865001353038695231140348674370000772843999708201223495264393093370849626016482489479119558282861781700379875007838268880405376012461078141250482188213424743836709457390548057676855194476371930166002133909224030709756520385980597626310370324657356699094100845115686427967744699638884408098313727960361050451257629087096735310113650191263516983175933669762913074424272536566847403602493334089190049307491889903532244851987524017972380745493791473889260237950306813382429956516958043104314271808278132109294909764890391275958632409420547964194939272564863733872024071132780399388623513398341022321343955256735163857568361601213350339934701278573475203378161358108426825998198901757636746390920253405763097373183641949305896407723994483441005361659710754162661094623795459314562930799848422592448923519234146892986731509097352088897204868080562646771617376191531442625783940908962184342633305199714455641905722454305506631712023414338361539465001833276266839807848493054719479679664323931241464710753545958646624680727870654676546961724209496003972693765152969983350184296883411535786807556612661380253389441728587138032154624212917111880637940057965718528122002938899695882329630107927768997655982920222096770569657362763935420137032602033448391351836805357786933170691150702290478107877166308748031067233447745036397568081473229962222972101897918806601266098342568163143778246855742799257682035096926330609275114888932890627075106550535990954792335014520711421302955890767232514396971988517889117957017849302282051518468342298254093905595136671031135827865009256030204735589364129756392714091977289751305282099893699550761257943008611586038006166021210128805929991676288860357915723343136144209129833111406211349835153878799553556025753430094511997532007951841387065166338218744374112482414804274998163061033707899310998538042129869748286221656848983962800976526453178833822567111132330755737714666745724273718668619021745060277399263757225943797135093297315799998175204063135125743417425366800843535670646218574765576282508828001365685960812049487945313619181389397009007151932386918619728421696237053497452725521804595898971379119221989222294154946395455884552818411518052716879993391827188788449388398378880269872074044725346472951005127532988135226561234916432033703087808257199828741229170443679876641606317480972485360762204511746101097206606534041441895522670950765228015098298789504887490150485450914516798305793445795455038437536546165480570927585854501506300901302661624754360314812823258289531033370509521101533345404178579694827299006715643714194201537008101326746785600432784087575180053852782337574920086147088691586172562429002556439624465116614063356378404926701733090187878609868972507043391137336115384555495073134543155959902652728562444196392799652463521267601073939309074613930766930500551344763639044569308679507652924774297722832508945617015263877623598392601808411161003882448109160837132980185367104591788319595627143435939536911119678229854261695540675776282823341332981693656845704284427992509719487443437722797337501277141731421675602156569813452465958191283360861602909402046752262692397936575769712885294068773156673217176619845346551983353489147964016733492373747428000763163107763562351744665852066303819013375787601910533557796221609843763996740677727053567979864388454056491635372697361015433010301387723838469586274888987942377855851836679851504229555127207314731684201968939369142675990276161986550238659252855206460047437281595277742264657866050341024924321775930560815590865789581226802315189126448464495739940849181766395628096728599412971775093508735449520665702990428976337392128123563075379877471681016267391064304016489598771705533493447466098992419664218081508035128253817295759158933523471023631801942391446311820572385233752975523931063838025381285169170407903827735607886261279617772905368017629393429727646466560488280334970239047284819925869512220248597559601926113692418857039440882568937940489031116911466998486498557251924773487748883213918820931330135121979292460924043062895328348447162464273919647704589663971350641859205823856355490395801608932178170365202784981387112904774682620018526990381571501410252597558641139066455913182982032053007206224657080943745064182764208303898597922454206608484078493884469965129393029083879334810159110005254830532055091955968582925698648090918893253139360516911943931477152535556190893564221245768429369800700961551001809394144057970979323208464265940534836588469467474307745544008690515291504829836671364734234820408746761921238139073159010213605431025901001924802167982556650124607056176333053232727530986076811503811361924158535107070429801824767263192235169707786744280002326333559870419217237043589519640545130214415011591460563649184188509331121929342899924684462587601789313494490938615839449550603976658296637972096637443578271953241892882627448266902027133852247740754662541901803108280328170317584682152498332542168608024378806736187528048781833660190822587257205327054764819077578236000292389766121599039669077617090866677804211439702428534921284119431172472713024430579936896847207141571397119784552002266392357728143415827028563105723956699387854358865199139568414691142112603008122862149668394990269474628182349338357599107662612462020049549664251442851167906667770345641413331472453293488730617119044766185264095090165107455251502110366271409903424314409311990744118740558204450553500339940012461371417019592377770383399710084245966043383567698930390037598318558977381551097777043521552964141272106504224942917345180642522191059064859409819587924706402106426242258385277778994152691732965164778851253437998714913267345155694629167622350247814037947356287348213237428629414478862343443468939406122321578051777602277042495744019868917476793232211478753747112231134370112765665119882438679971174509749596288974611719183082458809100887518576116171337994476961729648102822465258953325439806628225140505361086055303657677273771369527407091641440027080174268440682964643434125267367232227757580924224241524143183361090105580867789168930408419773272400445373469412496600899643978333205085406593313447301133966718589557688915028176673687601270169182790724663898095504340072036282425416535740785440819075325987014585733043384866101093959632508291796496213228064267983262364790139132954950235058467266595606374322547553518570646770636952609425883280416093054586846150450895075553989194618254163262853336184118796121995096160177487862307625638162522911799220749767524512803922005348773009927660253052776622029090608468535152823980226158583081617671637386271833132872506031841627884368726766219776404007988885437611145629673604165243427844905569194571663445177755415531766334923356183720847145491940830289846417580055081883052832858688252076739734725938748831736508691503238845784223595087123706164975952652905382321153511049461506055194309771458021023357926714746559089503354702041272806873678759714440247319814847380746820324768141393083038969518689096328210168432521715526175532732387452153356512841923685366056059466002119837694146610320298967950300556074488850520483831933966180899943202877497448751394701454212273538673343422243539210612864551468488275555329170294895963064402404262636676753961758583775458295259463173461699955340393335967372373137434331334531339927532908474070715320655416175860898611073417579653250966749977324515427303197917578812779499932123148375285654206145849769958346837857594351736253022480014056827232072898197843254611363696546604773649059694149553570397866362191900384865847812675337647669571618127724240067042166664924576983460349661059654744006437857810795163892710195468771698989829988476727487031123866068523754033539262386320886537105221429331883986899388310860908619804037848943797266757209816615856245259737576215117303839934988751699720494327292956844774732633216844565493474239641020539387791000280783036060793490149980399880243382928781070984841549638280118683599789109668780200294615561647669684110582705966232964207315006119078815381963341705230845563714726190728432444697344987668535048354322314763771646839779477850657091549082532271645433672524422491360185441382380618222681987364216788140803461273471524481084209891435669664819801962386801259969994500450096341527178020605994170770761043786830528290704856214622117186822449765302620104255746315902436542151555143804024037802000188792055672376608475414852312555987758309482269361805031867311654603983488020534966199317196588064178443874639995767778587365533186746894284606782619974304901078552359953059235527426158974465783159923619945055775834648349997746183802397613606513853686528896331623210796848385625636381572981717252794764467386833555643458735248827919725344139750707529356820633976624606599867921517732046358283170286891388950928628123182137251186800566288722308641865190252221734534214576322760298382978452822515533429548168483555854222075654440964327856319657423625098228383806185108749120110668326038582317236813685522412651642730166377122616298411293513542064986626540887822586641624720587218295425182810476205719616182942835997933566068158553296849644594622061864634069572834813009528488633043020685655378396012477577353764325051082833871418230748611002832592667949161235011305308816277124778125563026291968436523424731366095107968011664001077621974345828368887530140176328624508727360728015408085785874971957966464588400267492511821752077540796655817132929323936645316604456514534792468928144644394724148559278036309848449868213176086594408667116816656101681660005894021613355849093523006999719443299635801427859378146418007041982008379261491522203554688027854070255222331847880952080617813741317116702700728681227400714538228271401024659041547635586489575830739588162178007536185680719768796232759843129578640400287301502963699603194116373398867117730861832239888683066178619702423247799693787175756519180153944776955475364936163371056283474231779829798914693499009604651288021688955274093673369223310922146292438333459700641109033182218294221800643147790390338803933603915721005113262245211667816381121489699057823296654301328385667735516056110659055332252296839061431302233032888865714601576651147479347090240883532751781305983543821493003321981988066868023707224101523648787786404928713520922010040807754610179746939874987395318434642784547638495136968928327711836245667706000111700746349373350233691764730743866558814913725515806718560188088281782310081372027001953449830058938363609997608650146134662473015367627115434606608780292075007829133080075985840598453619843705660383559396051786886040382280936786824680803853308654468550192621179301471525519509746715853564436795292801367673935076447817232549478094883771133352605993341743318190009401591498684845590658230823236630888899340861362518498737120650797799134129108018976981664982308285698168852439796620768571296188112113711097426624558402442933992967485553305106298400277662207660564435771511898100001361869041748421443012613525856504468983979992413628619810689892546428363764525344517935741720588283248464804444698277210112858359568075454605136191965624632937663496835121714014412747781939202795274201415949290194045542465030478642769836032048589073280995038241798585574631218086743243024400355503707433792348797751325012816253690003195319798874394280439276965242590047662974573083765761775387568217082919762516889468616674502120262293443130913074563405966515423224178519536449632889717995247772188184651886582144298792059629392701429643585180583124807146857587528172100474530701172167103694076122218328221960826323452461667409158337106280037790202195690611009221885669940899530675003810390359876476728570016184129701038228431286772856454979241303093537829229972440953993344312637831909458456906206855384317336127037023374393687195415883629344568793361314182238417775954288264782256731343369979733358939358584211653148229239388023694120421298407996413050815173861003779266557276090184091347925526195984502291089075791929296771034495825460768012091011963198893641120145114799003085885857659515810743166119390263041296637654491588193327279912117191730295480412931916697689764997757714795200378408167667867617670183473778674337489808472549151203008816600100827003393464626911168410399421228473266563339097976950980738564409956413574226896874702766589141380758418532435141245847514389444549989975959208839992933417183120294106423702650635718202489767829544552130932864663922106564894951946133259138914936753897178134421690725476603235992820982643165131506616920019751029198242293737141251425599643796928882063655029143626576972682489653453784984638798304853943488874575084827568412640956960147249342991856718331072062316883819263348121631437603478113399857471072318011073705804757858832359396995624989486287028488303104161784744284101494129464136526273679186658385667390765152252767296215535057942297631471039934612353802996929751775566227037875163834674717929914192675987892111076576762254156497142240054538424403009073567521293226898564695772881343633544607389466026429759011920426981386299841920899929122114604215511125862381847753824811591722254953323110808239748942294554696678889884012996171690325067995166625705398308893336870853693414154521114521305410254509695177878518977375461297920495315870403222443911466593202364324330198457109131877521811065332902022600375089675837566538182687729560776161208773256281039831425291173510254958076178524913836023113971495352743259025471430134350596004489990917126575015092167083980476516032090428515440759331737540415929874131104103914974308822205553052793952133885967003996070466434304938240784217878088511781244897359072822906625308768101033822513332260225306108769958345000215411738172573597509635957024044313243118774252106706043564556742651681865763565867822954453384407731480157022555820919386009956685092303926326658527528563685763361472770645001056522027523464894516036070932010498663048361684065565488954470420612114860445745655031178825120460840484837207051925230596247153202458629395323162041080449509647674667014745295885644087918100927951924256712571989083727948048309966548260424976916677565453946799167676266266916145594249261301859195490837365059384538880296876628058122677456531092296925670659020150893199155371640902027882817208519702353380014965287844164386029698963371445102587852611702169114757898534119611267417547760274786425426713659024304542371858057835516960525215959676839370769428423025788263898585535943981938494153611788350145587751909998653885605051485211063482149770091212625127535915872285161842432415681680456337450460848268753356726580199876418111880928641220023765894763865750699764389694991014565329004666051328702846769287211838939804846607376743964419960978765438306882541321616110006987749016171793687568711672322881497499970572261440827519418441516715555563429702818778201595428515568666955638278032806725304733679258451867208433649725946043494292201118656534802968598532505598561946540245668992402464952564797451746132732723391540090452617317152884066049007073342204278332086104567409184513348333718644669838567624945615335695126318134014031226428304796375807991738520270255172873513947981533324185271259410986273576893916765919260873760903764344055185579422345927815811235654142435723521761989147221392294989373785134665848465658316253157693875248735720952666421729919117461525315138225200008267426363394140982532422755055444147715721170371873279328543964631385036819887652691760900462909473061925881037981171353404455050177423820785551123873649937573559593482025659427681206936417522188610211417339201537954918804172255674933470182522589032397702651499098206628135647358754080247454066689862268115671363563497744090008650367061449361834540871867411015379104849963979683182496823992436299246850997966016264673843797441348701302477349005512066134647090069450453091031276072116877378721851714416067287980485433698152607893639389170839937422256736706747032000135555337399730429905377183014285998262106432163571065006069004412722972079834211342909760211019599492638490772570191938668757106809661404231315812699032119825846082823030401252290953953890184401124867646420757607138471361040692232973085081850604887214711212316330938184060163519491585531801006434625921360103782615918895892032672081507406679824803491271980743884395315958513764352317018767054437647716601715353966420456723163230347937435082984503856415073528917989183258147858160724928293626391288605682594201819338224082276003866781518274954729209600328200905623803066170325483823935279188292916684267823192734374960557657178307868095055321794544867041740400736947491863105790419461830997289386760788543161014315066765182340126565762447076981210350520546462383699759409410758450918563365547643461590735751670474626551210575234684413906094759962046568958695644191470102721760548246660708666015365496894488688771107380945890112446514794257660742714588225083219881872003843408472700355255725008824590881399139674466956578033115021874594353100054971812902457750790522396216095885881278934760984056638280649730722819835573984976210781211328690115035895917272735386809295953728920501031124677506077636527806835536250829639454342938377917757465544426634799524199878614614293075779876471405561190241661811789226610921631965409836455566572584904475878761952342908522599512797574851188436913961804090237432726393800766932925096460308998775188353174045888245585173992542060562717096572862959429198013163607006089615503010413306085414750955498179725023140232997583902349630173652358627488088011999029338369521910481782649188790608693003389732047516707576830420163519817322989253141110695198678587536054257114229591959099000836386002837688964866876479599244670836780468941207344562303383995522062404377660377078509914131700939918204533146566666834262193440622084966898081624384463236047238285703829662678102728476788780712608005331454480236604720588403645848198137139442257865957298011860144008261284973748246297248653350138567801112036205461691853703638838028834180163562045140101092643539983498272287669631609030839414468637392063025154345099025377934049316809856567456299611744235044653749821879589526799610171602070520702668854428428652737543501440335360113602228145657260200546243928840115210558065856996766963216773532991656822796814066979628845900165442999222782726141705942873462345034701034508605407005713952772899337869129006363356944558336141677289947204212407889009312998953769522515024100970406256680673336542628288224824661130506142219977091105232462538115076482241464803430436401376106985090605514243152843871476838619077251741220304203568305296416755945397319760616657112356181243730336227260847516381692676007926554266313693509054184352561590696074220991422993781765659890606290141468889689542026530413539486803812144927172914867450297623769705225031861105180264127606837291895760149240581222640870042243435348186856959990793867899979809487231048034727654628005281389584606546093579576240342306042162741769515571525256049080247616676966629154378250281357583707372047812930892642956682547232939762518288211648115515755991862888231271375112327553135699337471983462221570598205464065155990330681531387845365253213758261151980915935642026071744248493295719904002728365991033456260326718923698971938643302936458478898823467128000220486938195006963160612281076837626782713595538576642435111572293750847213496747783782755284278141400117270843632119742986333995410057842901975862236397720762774040072405784833084834212495323719817346762412086848133053331297972723041241567202322951555400396898894923177953450329097715088804465276126800575199217133077640629431588100294387448372113643725370658043038470242364876483682461030827116646414302995411397043856498119633434183588331380401431602769079497490435431549499264968151938639993156806262130759794068599606910479412600944641043516586897742912539858613529178136596936469680145658909801392720418096577118989573951347306399601972589339255556637993639118039628952659225382152148239867155319646204740716076844739101619592531052105843343139246111053602710188401483790666417307374850690719980752525072728115191428550285991962305763808799765032085182026094350766026750773467787989266344611299185181225489543056906626927037069991183445949323957308307703215829994555965792552228219073138155089386485380318821222304034454402878294396490178995510571199184854485827539085453051433096488961117956664334937830248296973236076209648051991503592901883868479318208587536987137819524128755743185562550405215908608624244919892831805526961871873003518240031220214056245719602115848905184297668572003290986540539676618369467357578690695658238362220888890666555769046524468834963962970202981108269946187394711285152634354141351584917527167939063338490735466963121300227726680979873939326568900182013943793563442119552299886417105073282268480669346566100542254591594904195781789882023046230463668481439658252237141294234671844403335159095010020145124358138559070702504125852920252393726453157195171220829414869014788940409916939811694159920775800440273815925349229765043121431272663500448832096729067050043857568863181514309688246880067046937617745278304774931452949660399539773383824778733943393867241193539512257098752218242665221046693653144286522177156933188180376131745750534331625641067946027168367935795403021364722758102682848288757339066036540010675680091405573765108420382634220272057149207446832358522016826057569744673085703610043176626954510960091246185710280905489489632356785903462595838366284953796407515543942965489617859832950043062129110346329077209857635714834836829855766446400611351902305540976864912986639551436539158413505643625212844013125318630978127431654365420955777104166882933040849528329016736542267188424726232501117122631625614112702378228499146865443231003559821513399518510106979356240743145420442494152700144833497257244021597377437525445530256952413691597683712481269370574604601284932642280778485039517000669914206025914387907776924301014887057207535633208773066502840401141439226777381707046347043037522073852718043019385659813175682112869382823720422864576824953983504608697000755856794333919157322084916362007913078247812113639458966320714621380478869372062776413524208536548082025696696246241442349534248383863648959408496581313254057026839264316206920625359848982628657735348579920491270115305049849715298764492102001949906936471577094050728881075730850962176368092277592414867771658882428563018834343704918163591926153555594371923847240496066481956536403893867636482705716756598748758375811186090249856789013832384675805426872621482276969320659839795560506542199376456560144751540349867756152103341336397508467717322052616228140114188133755163968880931262538114498308708695222744578903196174836217447491517578567216164867626315794877900854440802028311662967565997588098304258935079707444581530013484042379061517891575406920303992917169895517168751579422841669498721811212703134253619796283679106909659052755405424261266319880152469063138269564028018743101385408082911048563045142779878932375479764522635203055372679569398041222079841682120259117381477692696957712734636660947714044250385719429971923590124184367134203854139037027566195957018224329498693383730805592478707916982942291062745097431153058436292789731345946888744233630005130935906096040452190784064877555121128071676527371031784192036354863511419520054358772035138165490167720126324612340287970971277969542806948219419129475735467410604703223541079189598572038747967825567327353896431204579347217304026282766378890536571482428274757752490143123656188970923455529586095837487037739842110074918066919922435283941806883224977958127308159033874446142780923535448302661383045258328399600050475402837952972029364979173404152820785614437821999321271430432991259041089906058509238791735788108335455623160061783149813465612608197787296713166396467132714391055976782287761606157950699538056810861972123669424850465433837879421930827670074903187606414766933706901155293311156264883231405081953460865593871928604212684997697147764591401237964088976298655633591878336786035598808133577879979704980993275920651307249656520906693651067954879030102534867515939751419584676290680757762751460083260913719854957897330064005432415921075167775382328192787310728128575621668961311546430446933602182454188657070000357710660467166060408642864788976734475338286400935563779289276113225189443079761859442967955865235902147156874334045119603396389660639246680549139422420486468594627535833779089678636600160009038880845064799033757526957847830254539983967308201493795479775232795089699599757115836059834243717066229051558833733100795814846543659624978584278396389633403257950627055660431755170070782195006720664047086752116505052129836471764419982395285104192477013107325952641251106308526434288571937641262951680832163997676403918795422822630117853024212966086002216553732802886346522325144960515740353213100408598176246836648245849291920484153413296240588514011767641987877713728635622496820906687083758908602321555416360303377647789880792984864728407769303343556009712901223387205151527877659756158990466470360065230860770197175558440394476281388589071175929815595434981514142438669433460077910106702417384949325187719272697997320189110505494617576059824809326040552599248157449446455098316600581005165676196255593028438327726383399300938004094148768168618864626869717484775702745713001280113205723257107368456333442707912455778333167279790983972115557346432588443336902704424584633182716327391759585331314323043915403946383146998081547598711931813955494766319675614655704962902971764597011180232677352040086311292219559527976439711510345529387035079825180674484275550970505836541677434573262105446206246220321793289825266191822916640965536075887990330412189603938029484248517148862614173457545534761069943650881147462056055587698583776177234161799900039309900889922241130201620080816267549255983504455888987496525426863984132188812643172966561294744730112452070600115758923618060175133761828623322180046680461538968681426680349618088374718373446294389011765624162430323565352077844073369779514114035229963759552404960592743450069056958075587196311696006832749119755720132096943627085486631665540253206029553414622488860596915939192597763820508269557729535199100807737773898170805693678782390680939251091503432760254382921266029413735623341218492320529960550303716161107924878608108117758121502125786326126143504493521026988481443815981822778977894527495350674467887021271449060939637576176072499678516354791744467704245899704755344185457973089146365534762679671428622720826397987939100592525831974812278651488863284815130341013341641609122972607766888449437128290799456157051987849770372085375758882863085091963052920868871065738263160603402825883343438506928223744866544285183115222814043691576534400917153544488510182123243413999092684611739223655150752582430865740886884617494057317194771671695266700591306734823546674728645321665537362708041265723533489342273280335836219535296038829725525930038345966008285760632811593041647220100426425167843370935987069023156158619336420991572857202406993519525348455466051599345307054301447738670655669182908571968260141761072128412023140039468394223422984676600020647183778267558300770721202012438862848430578020427551625878474446287575906908123671069074512478621545822253060406746216530819297970771530136088367602417199704122040117657136172713482483827151045977659382094522033383653336964756948046738195700599662026986677210395482537005603554788992146483322790607312612787578073840152319407006970343081542068869358008233355599491631810407579076201122922226140546426738458514589531562967056643524707336223563981215969174579798274243035558168660401065829331005885077871298328596635944113581264595573545648326529546579769883233154039616589376509788116408629893486164411727027552564407310267764666949877517033280682059209991960113725435642671834241911311972173875465692391952074961089849921195287127055286185477297568541636635598550573753027076085486531581391088399643879247572648280564600130282855266146982363487823021356196575890538672972173762851329753551234230376284501097919105234141785799337830839655345549990685435431874629657435702894436708866295660724098667574429736970876187337805361812314452936389822281061066510602667893037264505991229228037446589904932668682840912939150024668004061237217444806335620618450161936550018205008837452557461509498257787863809729828359325993132198333355454873908376963402837702400217804538592151571068903091172355628425825076510970966943599950828483618106492127661086914203068132161057669021061830199353958225234059219962059346842346688630004945759452584725545479560375844529419900130350558033257583040937466797457925964802207879893774658836551086469864916016779727524081793884530547876238393162510618914020793311758250314244065929641891960324930129953543099118133304413048558421400566477690161812301189949792782127260675446013795107750819853154487906569153420487882848988390842545078629901333178905934695638922519980032794264221383045761281751807035042359584678617508790384900170364226765466108135849621937259555361049873464155730381353665624129878255150541268157305140042278550891036604596779471423656514228618802429477416125142761114902610865593046516401924301582005797189246377031767427680570154655695651136914089580065243736635208166903822863545357221949363169413928660610337987372937226123400774658080813138352825660815893440496819040077352409794668633699252813136991225893439865485997196809942398694097122402643513514255242866723005733479600727040599027937439830302152845470027490266644020073073905927612724872515915624723135656637614754994481172424590722601130283931917175313147701924558326154401100538937682896652774204447066362090865249663268557294368196200803205267207121238315577340085479083047700050914530128654024789564945065839585629596571686977988972074055886673098244746008242428237483092078833491091872585687413768306361263180149172414513493870658188664106573239521642363227184172131385141809071038075018584585245972665698636625683098316957636031501671711462492173269986334385829493043174309204742412287496719800110672702851601428785949720940540876851432494747220067192181588045323826738744871525701059954151889915547942149738783649141233987887010117682008165433891463829714577201616290074595717201621718412729061737964285495187325351105930968408453538477768911775455134549791822711019842022086063084512104188839549996055808129623813465346865259753549292764349550063007639508633101543209789335032768972023648324062088317497576720683375580246947013522284308296836307027017325622301648192686001298128039199125607524811681614174816866743263996677373100697025014948478462031946507523003613058459866457497524918825509305842795587988059154731939156541942042265049021872683213968367963709108102464699469812650043959579335600759406331801829068405146393699842982842671494602614231742667065298068227621763837582507235355353192108098009545501395330672165131875347086217632093167991907977840984006430110386739612955146712175215078835911258873597448224629073877952391215163575269579109338662704205781927722481857042617229623403280948593876610431684593849085693920383916452834522263855675672229485399853705268288382709504028579059579895463588487150533745897794487328698279158792830424668508597149153205554938788278246713732970685923337384041312397308071054667243707358053932304079418673202050451682159394080380527550080661947404377773028537378465905169347579806685003666684496735891628615377546507416412248061862789876379958175365975592823073394835324021583747018943404998561343460927369349524964762911956988566493082697701197638774678406287735042962425515729661112792567976731833458731739255512882201708101251464507303684471969491709586414174051891178832334980326015667315314363215845820151870850895371418574211955181864619085476581303927563491832186795677014909749939062738784947615609558208926202092027787729438351198905446744204106437915170679273432880556829034223509682828348104697942965698912574077848220374040159007484248455250616992680108014370550579351418934601616231130678522583507341474183372518401947063791921667654113778316055063993810614486600901845930543282844551189102239779449908855888226818168766211321600278762884601897433825327058332244041114996641926565430105847522285591253412002032341149518010998969186736617596899036727018647626370970045136186021002519741144507398739886171499909202109084115441892917343076104834452809039663907742232115044849924795183279557640783714640979920333675017065812653825562390700967747616777096821114215159762344012803948538967824411391224201484200517710011351251410431661067799311868606834927086438032489144726506913538549108770058433754776256407983433640775104502560530817409196271010471573146520682217017691865596016141492649107296906194025551475439174886181900913135766074964844078161856468742441717183613795616383054771429038051795283794853580284092970196698737854229729657780057473919388649142361909514760223809022236031581075225837514411995232670943864892308709213234815155279959483172241031052856670225204846044917703322454381795978144171721698897222818859884311647796040721215961598900068225544134652508984420179860296561578988687173262510591389876086888765650429769904478226088350674045410950640051933908659933233733569398115852098320452950067505374138773451968530280180938270496635609150997887538083974300562089373122352037456766695186672107338361882138147409249975705249301364839839288869459580519992801393320453220956722205401854825864990062068916257791588927190080364283616861568170263564013228366381059547581197637721221869798672144928662643138387929528335213690092557488214993198982487082366755004445611052834924662849118518117741432884086582602291371800021438212816167175931320603148937789029076806219584119954609747567358331442906755128232260191759768283160898826501091080384555062151241468552312651998444135370124860272295000404471579288660532581333360313174065454006867938214427247559913091234109617871383323170892554279279508766823019064308287478099473594073352456099998015953378187705073510388651504937214369250568527056897334506394526521683043687170840266855691192990764394892305966079894022299651568451483406126981786762057301888535677655578121095649951615575806085164473474348579490049364594292815057307363375547440727275600545090255163552539938867067283281952993925650787157558150044697459122650608112831667168621246004887834693501472462144276732590126960388541075775221905073879454131609364352909483319743070624683057660928810771711126928472943791132261714028840692255283022061548349675988703170250220512986826872714119343336397771149596685151962241366854075087800963511904338565069133366396563667017704949401161994367465876862392447528057287167960414332796551755833213209917434359700982103704425438539059977436440794694808634857121813867874979092311934899284151995165238371863671479031972901099485671999855249754722537105016689585450561629762032421273849098206923345156063959350823457548412398603703846489512243187044853892455553976512918135111124058750460605377389195580118154976982411964515762865461869658646293734268253558958116603810011222905043235705827763146398602545003060342793317759916260682705609664251542497434017071998987724325479148600465123261968939024110048537849244381112798913417744929580793035088712235199708252048499201826826829164371911470013049183465009309045796068041920177485475842408979663300416675750654985363773746936757007044230029261136720709457677944456187512769656781293795928249912669260846616335722989604650037422865552767806050769571643464740107693382247849079690818733277755596266545889034383579449483541808897991256944539083200142533970408870245964135258659395903140822067369273211709851300532072828984602276734304657173093882634699384578172116513640157452507554177786080796115273980870440947311419440460472158606603282766850275915466147347773676110997045517853697372996679571564952112098475282207908097588832177842233174244266673405708834525875845714952033766698293696571294141302203936591804471792418624625461086285202861484352510338706057977943077563605116921528524191074466016257825848457101461376259271664560094018926912391645294490012174147741189834364824344509038140468348013072103985657391641984605788816314303807884844818296238922960614302915303783861812184210350027923982653139957611776459200440244253261777531353575512532419342118777134344872621521833717945855372079733175728865000145743865405255564835055675992325494318687284833070371984405926126944169882411383950427018010003006366308126683590857661315331841312574655847589189211353425897243792478359997517721657420758103742946336045169131528493545057131773626472574354035195351502510036899517420597223438830029465222051593289022294087247876772325766770641660735298890795434748055662181835256596303861139232880095948698107704701086611326180815814204753865529709900388077629405961681197059499737712264579749941275471546870899528029776690868923398758263959749019870324498778281761093012320850669054289096618160636922715785583127961441623164472480035452982569048183144021788552830534837292305304883796620084345794608372517106845365405532201503400850364858848179536301741144754471818494895134977711785346265006598324055935478937096530287706479282258748114400112440300895560731473680600837782734447479435759014041152408224027012814123728997572475668135026280010246745359729142212434314501610186699342417958434322747925472760730547115214520097993883885114608048832308855926997829119318065675223870362861691887615711984711569528927812886310781530854319077151057876652854076274136631277571342989018496464649053454592429038143196358356828830935027749537277331404235005957980785460011730934718627672099940251506912798251853967380531018538387637747576621539574235321497388790902134262408124173553600746299978666241566510279799270004896211074200530408416885657758376305085993814321577997613440175461562213980566482646753664353422859351008984198810644659215420903082972069262799597371807014800424421703146944897970539693367519558433825550250552709186064872796556591714259438290744076944039855677669404628911784842759792268049977595273345436840837159442619335034091403140132121018162637854920576366497583480972544507967168404418381918782616390417107787817049719877957272559822494371543300929346515770076559768613545545831891438509135192161228183204640635836653106141607664765825267494647777100101366878218341444875658799231295536950632185790264827274815067731097164518615591534526202030983981287296440962255178674381983572282306215030388190590774817452557612010270518286257684604096017849371498026799158356390134892064562182863332893292189111979655291237327950240527162912914833867911982095021412598223467466241531875858822400278550344066908906801929566455385703707428483759918670547195547122507574354088847175753350290341910607820902656384768339320695221787546989660674342699218544143483975935559616492082609753302898602275909105437369478599220827863167919797491390333804764298376540509514940168214291712354303241439936312016282831712934469007002221465022190091522957822122617793496762852458344785124395786192862815036854601076464065632991983181595733267084450098916603978845009144051413983339652738886262066133319435826194171686210454327328020009474712628562436710769739767827939104752684728964967849781121905336082562773168706406415595700629510532955205842867813784038736596921649159436214272376303232623234774445227308814528140996731557486882878981451515350289003821048347963350618336976708535328397597446506925684043013105994593911676474625362400578160834014302005774715015897753159640501809892408251763262248043383351405580893678072761099062534236901635118071516949932314912926161642592337115272065373142136804267178237564367382173559781226936210832115183348230733303130826593687668392780485806892714002837446229104656706887975545057072516981028663276130629503460632792494136294223392866541446679986225233048627878036875153979611971971170699697223782445219436410008679357240807427246550000844499698400289889306678580485525371721907388708975709155168918208717404063434160423872913707217625205775883761875359683472483193533623344134929417706423534498258537101032514938087681781760707208821407277877542118575298220669639539850090102347624112420653782069808318172137509091375300367853214129561535351283079334197269678336751438731104912747176150316878390033539968836545626277062963411460681384826058409736517062099796948486207840980525956858836981255539605390087020873850917939861511026485971226549629099479516230248875524854911935008124665024496142818826461303177527387477745667247841885830581980370639030702411645072397473263826619465159488392689340507117940355477140024200249594173263054990377834116302489466072754851937647263979696407835468257234077555090440526854336926946317886308850198351302187913933423201911755306302620242735866388383346743190453108012363841545145412466952825352692098209876054400955508285678609336159743190625280836433448290233225779213968382142010748316003247549447665328514633655275133220530873365513992275353379666961777784987499879611802715647344728734336512256987326784053499254302839296685277567244404202910624508860921149326065503044155736075550516151272661172392154703854385352548893303610551634419486530919818646070621403499093362496017535383801698328720233950073191711761235216057897842031069943230183792678806874124730627232211979502283413434144152928951697999480061396908676197618415246349310935285735868243594119577824990331473185445236947525383007014344131705676380213100934437223919418461683589006856188732873108827625819755875114633774067401839654048353162502406006020215470847964566806489623928784921598238543149114824507034235253953498934716008729096740618147247964359821407979682699289882759014276818375951119662853230186974340320577449355657282297252188397456931475074318046450118145689453530733007313925303025963011428490796552929804872052311995563715369977604629013827559400694247622131208838558002760054404685512980243161671382406086371170162360303141852108140822393732577288138841908898817541129087823270311544644709594736522182833004311313395607450113221740358716687497620128982167379107785537443028931759375062148407446689047458663308977879709136103069559604614754126348438734775353522376143827756451075646802472206141619053989798808818336143447853915229675971389638097676624030092407370828896917455012113086136126364254427329028420220203067905478109708578322294610482719932943685111821348314193293007240543702717127467477916402902942095883179287081996350821370571219315544679979453329266056297103928156393808440879435448219180581216345119442197629851241943635855123443808353652367305253551103494166403268216957543494044418579795690773080465199234385000952928806050571087947292900352880333840220714446614954714096299316468763072156762602207275591092745510861529903648388381059145920545202818263846397525359883621481187256734630819583336385080463279681571093588688246634552989475292313851498112676693724314714141226480520273617401054317201286309378855890549213959350070617829237186594370291870804617172287985058377831019348083980367669703672361519745476913485849631818571005956066050736792265546091501140535024108503201111057357279335704473846992302060612731072590727522298636312841404568593987060947316869084153474971861948598225304555636268480451243276238602191405477417992183501298137962950586631137819519507540574105456779872019069428666336842233749449938788881971898728404417980248831013538552448490643827438649675004634480396668857399723425640226919390207806522142592131346375260661408879702128030413523911105497940295859858808074841526095114858906017731580588289686699170211999787918331265189718125802717926047028968125387417996516748356955543573832860811095001331062608999156025179133821551472293836271124058041153987167466172283121872092098021298034048358625022426780915789093161487999049084268602278714729491212201923028384933471318411127748299406164561109359983314797229076285866430347947629959022066316323876791529865256870434408335327002306651064450846065677857574447092820028649713917948255811770482779123186734925375882423999524734536164589288322867236054383428604593283182294385496371704083662709573075832181030845479644463620503344144376450164406886821834492362171457240218541153370886988298673818265358218904031138194740411452630809164359177060983468869428718966122301727158859058026842156304829373060038401821539126573707025239025948070078733636246155214840095967055433932597646058100089234301079868093711466256868415026203574193432998542101278178422509690353584356949096327402176530690505385996015363813869362804123290420111057206400038567085341746432650104482342072270057241282435956303983147151216463268680916792839094695697405269279935716114610179547748597903145104386432498916160897004190164282395339985664993993569355234203421177540163845719103864341306428593913884756819997628652396354588047550890229264728504275829709043155098673862217960182268388173262870760130534520159903572770875427428548207178502226201756816559030930599282646756357663371196940013458072220044579699814653526975242560034233252098051479985163916557572673756947752005091641700089775942072418177886172976922746186850405015328345769099989234747346129005315360881243726300671463215976367558179322684152573698373801703129525561769101625002479027732242103663171102792743822774186476690831896431009876470668527829633734533875830814972347922125228317003818054591484713572059582521014139130069851574300107020148993804843743600573976429232807666583508216063039616628728699671234286024189389721095879436883507954652308604389891448252509125454357731869841074871027750851072326086578221896255890763394968056094016948666656619066048278982786250187286045749131876239757756069535999569632921470889706136374563113994726771084545218750661558246424972747310773306407948432776938888692772261867010099870199135253117688686910480618429034865732196367274504597560583858539361466089446831161661097366082217198309316929001315732929884727421667328226515751631936023353272021974492082245652123865585946869993482058566348470756863064428776248704199557142508580674766920944569507465639371888932593010765982887189024717521274497322265954610944036264108694486574483847969321465164924911459619145602636094015558318126267348755735502306206267062145589814405275423431269268094527546603548593858554371038351808699452822244868212832895089493878419259956830886144012436298294636929155831631311995193891679080876080134710440820253133290925565640176836741340692659353756069385094799271958022234169350161778562547125290747048358455517054503872339112124584958744893482175298191054249124953680038852453272592683152060774357879019588659814277310881210659102945832452246443747573975672653346672771721764487051503044924790676014364358855960981695747345274952425845306554629538739445191813289719064863054333325646657949823983469526515374577796873181695478316697175049844196933387971678600623789629110002300413000450391521524230512906170731653989458138149747333886437472256643211987005567718204694508942982562996899083347777719569786450818179599293046394698999373961379690017534825159113063205432528763188765895764996654409631595959925555254859269313328971692598962288262347814226557529402874640564580291426381889596081482431945385422821902552622424617453356042072399511204944742618547796545255754617390127160992292310941241956617410974429723490405626538110114357681682990500149617115147855272377560516564422639088849272764909016364482208869211868965497141560235526439159621532131173337591403615302642684965039851103483846251992057731500538019078991779395092885861129800024584491811183630422490194475481938638936619786927338376146179860658824854133702647991655182990708259283781151661179071411095762445233948988886291534134645722576850198031356748233606923880906827242782056240879689689852307392614510648903042235071559338363072875783560570945323374294980441945535886626436002179543879039187447267886287024596175302258418433570231634707272695278162393528550949979672546281780226104951071951687924885217124225855548570845329178216727504972235367534068596583671581292933797155644770074197788866759684659570721094808975083276416445864052614941204823714653970826921104626868075938948207572210239378630758099759054245347253945241706719064593099370620032454208196903600553632924479849308194856644116757393138260799036495480946054891258635970822143182739323152052576153263948762924124338553869711309972771247336604885897596306396230839693854787516928993745017634920908461402994112798461569918393631879424206430321105683052759856928290799029287435895940794857873881164299818514818115047212131097555194942925049028595052552354762274043682411178077729200346948161723783096466339003988142580894510352475567992778696680782743125004078319678696501890648698344980043725279707517282708429271248368823762740554138164972076755927359466379980494290585845178291888961236057380631250505974271463923402760394664400898894425983395383119319168245354713476513151795256032846137986676942049433194942213705465129657368153622434408693701184508612738693684894725735074733141517983237980849082385905176093818856283701109151630166238608709882443647402311554344138641232551056499415974794256962453506535440691042010680223109189848054387955426941928918373283055825849427373599728832886384123945680059890941451743028763255443289557636551397475897964410804435705828972258703016976367950749620349438800124858450879846980376944449223704458963161102743407044885348402569927204534776574205236916413035861262389027160893272722065366670007416468982930186864108937306659702699599340840990958599901926980097971986390455079495941817371391162949212032493053639951979027816047819096332341471293009285352337778443879857597316518557798294484182830680406001168162869581171472029682391807332566583108328585859338199102711952693733816082093459578317555815484632653339114081656642959262942363070123634508634297757819125629763623380514367609068482982287002271117602034634837437333588600586682197158835826698436830805975560792698927352903257680058534135379433091341103342435880373408093248863835920395957178603045179773868245034006637451732809741609054262492984153116740068917790652776846064585597211541448171578223401699780253912607693449863712706497495402252642880476841622357713434443206608461496377484005565960458710860258966817348825723895426687973648632465692628672569511032432434031112361204866690851168811924929737082147254909257059874717982905306676569820948944319677932470629918949073551112756918414071161197787939358940152478450607578330102790127742070980193841738859690395097758722359081990951346943557181616479764146648145068636828821484074598572428129771765628094991668235460563564113771505885843995828644347038520311941166497421864299031382663151757843546546903940405322101440026376677918254467601942314134352618827790937115575119590855811797896078072493110316008292521652595248663067209385017643110324422158365259944600497432420479009933764338834725228930776537840623180145772277770977887052724978896403570162803748570053903030784754936118701528935720156010443108296047957946308788459890310665673017103810599215783196769597988507994151489974599339440442189431996989537547838062794937292329367346377353791820745700140283352890311107243542638401234129179828810244789201213831019536109540902434093487622045836311020296189609103636462475990528046145894137764517020816102758586696762982464818589973237437603891994241820452050821131820228789105388744311881034444115834075390011601772103742867168067733388242172012101440320149984957199571464136442887916797726503446372677068895332166021505659387249272483562638527599308097672413976370910219544671376873204842313724692974425453246217467837072461281956613911860175633074081314649753229040731034502882236096301044279086544777798070278259942073206861069672641397612601915772941250116685593725108436305093971660584584708926768208321900366985710781012866589581814227478440013333752201035465478987971841937096606439803505395465786985243339869840685037211750165269198564752430325469283204493606461229994154419914861046159101098328188875150976276929666826815080896626737483938517184155536969355563627992649344003445127195007286803359831234216361807587110555739305380531158453841462080115321790169036689652181246998875795274976688137373755153320988489321069220922336203732155240370874480195232505119881340427448220878662188233940084388449242470404922725159496659937933866545813944015881469745842648155761531106782760549182014044343587746504856907670319719040050250973620576400736730385739608153685389698984717897265876099638691519413291532403374527676944754382972040164802078893282139645116676395937288610305989828582851938836797434512404263452988117179403263668611010769774739025700689316207867775249863370726678678545044188149375991968103535441146711779217562851001760209438246923859413973618868232085543909107794153254794310824398195496767782258043943487604483457459479456529971323495275653162605469640499737401884985856542933558148040001751620489058574718295141083162162048655986477468201869940868664773181498248524433954974875125181618901360758156704688918211392684929676909932973099318129256003201476868420714419695895792147092865932423786590167678842660621164335973017326253356284564017029976945968155271989144882242639975219253863504397826014518297675442920750321498070231763574658792183609026426272426762568898000587140944959534453819222553379228573833374746871078373821913696583367854053750402836018993761934705877331112853598287186169760483507260075519658797803579898871319959942285777193642336637159225146611355944529295693487457597191746248285093236074147097522958025308571680281739568011884777057057422605460002382541962488165214149836817138640252987361643824928619083317231071611072908200421190246597249312605866526829773815904206208686352341731474076268102765122207781261672275606917646923072227548012986467929673391645394923068652734884075291747560253351026937777772399875549178713262142464028911228446363737315091094644238325506929509856038510296972008418512473415694112911046738701203965502025803232194083029691699125053498314726699956949757682515204904929369932436880306540128347250847761603426692167928625337930430855862252354314796636409315106385544855624818461270438086155995048631971321522171785984063698075590395711047946389772342191424145596074805206825311290681592657695249245938537085296504398431861820241070317702381070350548641104295409664567048691564240164925453188126920716834540357773393145209685219615403978173860926070462357803741377456715051409025179508379622244805922193874321306445902274191077065966054361223296816285067599722803263418665387896338693457689395042339081436112330866824454146348220454183459211104408014601138998021004441814514706314543531024741292519996507756105999578856604322095669573330662921073173154821609308956459430483340597216502076669585247124216862057122777720687950762618766704564756934208967385465474079842226618354387342797570775331149130165379659536085536380977719189990568680040364002005954822078324413042127200632867192366898235825053451722003469263323674742554889765590881502012306061285106661931616698110575283149627536037425991026906571399703777062776856767567124285086810455293528891906860197799262751474658501759855748178139088420842660978854309950332950356628720154415864941402107298243159959909670716483985396552996422193672801416036141645791054664146680957434098464774605320963353128486980062867558143782384105605298308193181577260850419406181985339563906509543590001948516847020834218508436538257072006311482699957539000921530186574001563520151807074855380639152219839735965576234749611678838139928369539278285170447996242081934508431910608798478910621461229405845165672031882475583856367019914134443736254475696780404703092100261249253623070486066211294384839165787626273751374833652473030513425210857680100444229469561229429402943033708765095923168879283819376612776486902610509298107821579615787579105670367974274365607584465338797864967054941151010572451668010094228532855115880396986614306686220969918771970384684778244690660245665081941120061181650139809811747881723395023663238747639980388776886884805433971465611996981094875253825467663995031277255466379549505327760772721805032506790570215028092958458893252789665573208422431779665947093818571755314190563201172711493110732040795239520529553135410959797309720255176172984369275182483669379489086402675780093869706672369051214576840436005876629229276157145571177760969872466325387897403947463152039300240765151334115589544100392002806293618259579350198606020875887036337214304332297579633778906857172630597827853804122408856677287135245183952670656271085017490927494206058870802882935596342756187190032454996190137107075187877168798265337681368963852151225892972223708625784838708868008534400038223407039343545699124199183268179292094821413658220448002624050323227023763520403040597377673465311406629865453580485242821499615471800363602571179899221011271096530232840476216989116965147556356449242752574481363742274855113444858363568258242601279286059631600116100625997215379005160417066597203077387019094298987980107902253383705177727890136228453103564073023774776435895641973537078099486482101354658752569795592056052597947920621653869549445744878208980888802442689368757981422553246765369845060878045716230097471769702271740799796100341409982872703716807533488268520607992470931234559445199780746161623050183194816080601301239049523396719483283983329311959592739918434899684988701589901475513675170947064579202390203042529009085996243883960863686850955747399882230122793530400110660837531948143194866386733520389620221004437714350362455681805629562732919140630555506089892157670060104012425337788586820018197454960746605678413463033818608299122507517062163119846421564392369338149580706618252385106365516121756308476525867724421745594269590735312315276449756162668189248625408729636389771505483328464503323590991659142364230926947801500468226062766706482249862726715987280849567363763803372034352250631804170847082402695749323496618938396026157334731368812403095215048481288994773505353954896886419830518004465048137068693198206319854484908409340148821676785806567191289919374969914930843136875854787326773157256560288690713818245633549848969211049732978977598676461557130346856417160707501549496506099181452640636114078073981300512787185890254099653241005122512981561992146836812918790047062546724153826202864133917218512436927711153069488649372387167530703679544045831977718743464473164224154049395595191492562194507093153434349776855820180665322571714613071667645730890453050126583126891629141215365462990317397807887850603876008662802321306937589063664621204713729146062840991185933080280760621996298749290785310913822193643128818673042808589162168503478443952971946920731428236684917648366888137694493675744572838788886003767851138451337866889540820137702335461422562153830959014477180996418024327192939285307901746579280643209225235385270300136008630586082501301857109835402570406092377658251245580614957072355762852040604002066217902779665369519865120567809797866309457459444918701215423317327099589044816101289536001499846986232959049666921483929051083186884807444268537709056037940331243294551818700433514000541346207216297361698304334020898344092239110484585324703956309617539956345549406622428188316998369613399525887741352170180988642258024407027610217690547659069680883885306482827649864601883590854626287625180305738637705387676531132206636513382518237695476210705662460834926950063382156453396210470743301904269797290823628124043898333142924842654054419018456856878051176728736948832252959081566933469248419653902745748310719805463762516632046425399451102209885856298821381479516867127249641655676627448602664339235666245256584864627891335757098999035455303700987711324036902893213627421402012193956993249223247466783222426269173520368269188545305454095593108782461249889886779636738105239384598845301663389662999990654488319129942461023504994936855529205685265193098161502952963806786689519004702262589806947589305649783362347279887913442690307716030533677699454880498100704486225477513771962606991726486835269549448885830470194728200337237289025200712399448410165552239750348714119779286876820351091789788294840702741466571442382886769669543872414560566435871067740874799790344895390133113110155705012507358067205811598257151019642541753447502019943795603651768538356306726924992971635139599910051319279198691740993406644347565732566318410615155328645634584096772347668659044378633437044061930296306323298663984656901216256234715431864467939603084697181237525467264304445668554217958068687238660133236078903721110797061119665616117576243618544761234436455365127716211045840596698717473131458449994856222615795241507617593894509323575086311390749671359547960446990002732220416824903608253658077585070662318605963905494808738481199702044200922422492674208149262465507954404932688264862798429956757465136143392025950682722718593936550889768584830429928058234227625686641677287632736967960329768702400857474482946804960610422158691628846206235957115126302631447026119053820963482678076643297972466616356243225694571967537094720086071876358621629952307701419109783096149630578726424732827199789642243104696821601338772709867235268393458680343817517208566801411175125968298836662339291737890781677724124341411990622353369768325935689664650572305359582213686932265607194241108588118020623014523290834813328469810769342357838619950784744608035303126068262554666499939707326175072671359594591434468324259183147040354913990207637516671483347557979425448746232618412097968820055863891479227053610697247296888659599975568876699172147219191079311815534996558865069016800913708552640817065479582057420846385077985913844917420044222775868464733859990171710841185834920962618686552075388572673441162368272101341514193704236171902406006114190879310465227576209672248855006780127321998263979599537624205279137883399384455426978641369260931423590306336398706507540121644850878988595267351593332446177373804477387016154306151903001049916151710354494971460559652382210679064672451293185819433832911034532456086054463847336834240573318485998610000414511177997578484920764321048504302052743089172667361633426078038141083084066462821774813605091214394256421107897799462794923374592366899835237641894255303074881760314348165652129407795991712544821536125641594390169595637558330929766615353199484110251166741116465015002278009501431410431929046111165114095269464371548065201189519010207621540016269702203715322215916663789251485614282902900189716189535578892999183684632868341528553458229886914583270779916974711907646037337753445358207147428288295969025376593699358739672394020621225648941212087626768591537101578779492466466839935614622362556115269790194700405295163003804736730450134067912850892426036251021067686701322676058910222633734471019729708229981885758219426925319696866212282160236081184642638734370119845570336226962281125205854824682536346616496932540075431898092521649183950200308847053052067741168272560197920985768287682274944578933399110111465660753424456868644106753354626783003938969912568520116483929406956316204427646662768243474846947882492718287136147823751193614722773650817739160790382226619324356772100413520763421960041317640630025152163380832343731332879960705109921032213304954111044310042840801455835731230163691557762863640931440686945790083372285622171373445681953330127339705911965408541600745520900329292824597140092575324182582697282152188734175121846713679207768247839865616783707916006538755220441886181511805800822481751883787014899512830041951872815385534402344022665078544058602794075655829141054981118699861940326041843608198742650243119724110072546460847146914988966246852242078735893329159758102205498412110596006881997348104680264427745573535774008662775254861071780578127758323939325884455735841091474322254836151065371583869929643311117518948241741709719291766741762031566051062709578037190402390208545541944060525109273206328518874559965101094470191570607103310609143561014543480742079582439439524739151855991356664105708515586655492304218385547586475738653551083498240880736020951672985200894208693056840938784802211674966262423274482678072431982037787947752211709766094221751563763538302037270071830403182241609806859131459304862005353307070735882570243948129006110702084429688605222924731644138337399671447913266929084689998517360875349736870075646691225035775970308929980397474281932039009027482888845610116127137939916018764785862388654912599675868313517163171786467676932278187116791560029387779755834620162535897604842488868366856302667750589747909304140222938773010388756577232910546406854914248630034767766105333540769588037247765602384406923876541082559113378147819396899695350124033207552965176956984460100397542176652350696980898452487646835901995982188301528843528811760496423906310286303485887484333751426944331346594377951916808909944399578605808336754385518607307523118451686589922460318940541597353057165926346693640939377292206623767713481193499546081879340944353574961684723572490210398383722734516802340665340778219935957370789792842005604216833701823492709782986239678731705631700965335287691941081241998470725470464545989397417824713480951891470891828235399362808353953445949538000864067472127601829328860258942535228082487116891608870795049465511261939476967537316574713970067732030372383463937854173415304864131151889418888310531078042423702158215032109966875534410959271349085367949039604400798272134701050301761821855950373459018447267122321031136191907660847019534399288883271810258507509833556471241992532538448087556144023510418446954357590821614092282102764265225405288705633458350274750579180264476591555066739152249173788885225834552744443679438797403563450961353677616092051668711035327554720343511845226168051678073732978508709410714681026527356172936885929311485745792638869963123839681918361952592497004024396268544752563504558696231670817389230901414230997698105434571699503211576998266377810893827541966374038123070002425379993206288633623963622629873233106310878963207402344778766255923939254427415302628337942639403961158266238069900660337495544423565214729932598109139811869281109888645063862412558487180841120323923515189294328237476221480665761193033206882101793240278870315862224731144517045662292095810397472646471106357011920896759848486676487629697255576373683943602937555142541181912052222363344681356518327915511072018312734935388505490408523586566340136636635429723225549091700413440237599780592722712034378768501897691011594838429449492029977266212433788905666317456875337061497225017059028725580475086653729713898575186983686700032289590382494831353849700905136218628556734464067924818954511211828628420294234840809517373349051661987180606391440858961313371585643938567673315235322348380419917294615081261361507548687607149504378895501771623721471075153711235103634369007660827170847630542784890153372831159508999379417988024422096005095095028237224184870255606910181713376114582467300199430594378971346185888841739688163272936136476611701949700493238125625212024669450335648880352017571037244986521169459926135401672396750984186312055121831663272707267207301873904266716261500484207298693803263956312626543594951994495572146048357133411731239426080984960854789874008014339117033401047104263230611385514381347935865999079501532370259586451212273859114082697805534382487057670164260679779243647997153280408996605350974314128625791296084025206005762701339245562281986767958755326315044876476667524048857531166771633848115698473864697486175795551666167351006633743649418002118688661890602720602747003680282931016853487358798300501756738967998620575332559575435814678204746920416804100060589165268155256083677787915981027193805742780641573260845174543071394230782892182981578764355902857063979705120867048965706262805715098745889183728740310481547391293519253559389103647142215308063033035529765146716662128923180480826433856833436735195782952827244164697004140546296480470112754897480232170913976754160660043530907323771338348619792999090490780239636783924404720757487553813361679985895960555835334927359215210733832179532808597631313941082296750486787587122990952782905361143966865219758608637364687768454257174956586659280885034862645183732215899892015149739379778150980249951099377487060526881652290627203577190582636169228466022996476285734670764289801566482703193805455497716590118207807349067330958259076800700011725595990244453746712993988080381945414009857438164278215455493247303012950256275146532999935992435866034862692596095656577677455773541296697841176070356920325374961356536125709423420252330762542393174798987173865234422090413562020840275655950262356382872034372267204990876528619845783054479832315904087553932068399652681201394288275283425859915256458984805673074888787583819949110548868905967092074534465190983720151567081857744406109556836758994397106761678186446231894544865827398143262567430764245966563767558257270423510734813072107441711177053828978009085125523386969132484590799701187438429483424726002863562573764338445804618652725302375948471529567054247818183147648491054974618503311316187872603273384681424260357824458398082564022635972418593806595228051714730413800395256881662350948189941661410553942869491323817411627258518132692035637385086580585832172050595766315846806386896622385086512776831306945300648378766871175560700261618313457440340436038220701012677956112650232318436432418939122312389306758061232850092251504219075460768277871296189174471038598619087520591932091133342527869988785259600123562256656553189795769983851643680786412352393980974319458718539136300191564303254832980751663757926219796197668670175573058044157365129823097598278903640538343449000505968065754308310026883629551536888087061337418212953879145701377119096039651536624330735278659172332295700091206449452057879832335955230728529149855063362729734685546009553278091232302969095830985542838298092836645395471006942346399138143982860839483143212467808890254812036657025331871377653743219391099172128741477518170054366949303108665192663283725077062853611910988107061259237863083203472875947672922822788311440203557468469497989194898357217250676672586924432361520475064838563935254204593175197717672503156824708849905320367108373119688492253715262194540408007220743135271760090225153513186807128959204317420003868260144994450014641480656876878865229501170588381204821086150571502692357659884322775522293065771184141555008870259995510557903468652851150647720960309602931977815096686042917869772579530210935658176464675248966482699580062359254445305998614584579835824452716367315562896433765560061964825128556803413470349443279765990991206222404847841652832061128673629147355636296409563648193241831187206625163846356252036257056562119345938779171321444181720312371690539692138233599930467354577771497241907542883179240385261509009873515022198571217007348020211284460731010572610713257762740977114428946492209339207466079356850912491009527550458742530154235833098368962637783475604419974319335869055412854766080745950609048024529741979583717029706022140668698113628875929308442740223334058253599398825687486144831047987189049361154694043177389419796714082026322902793480783361082691281947866084360997262055156908684595009803556478177386652733142196874469766533465412194988668470775297938572076398544445493994883288111677909259985444059573042382385679488922724107239185150740052070597591925703218120311632701279159562492549400087012919417531156898104554216068562289509822100642668663477230057996892151508657489706551407480818340558997300429425969646746663814759468980899438339265535716091823395763245897875680270082805627514137787125318627883882606744160331204936350315214179564928691936113239427078899459710907802636258577333532095775017090620950585673693139214247450160859386073483394459640898416238630004831479123223241869178842174963295087552763838654561662650770602106328141423995593426123983943547265909017138085272974131369927552301437156113168223530520830642969156704311838988566876311585063392790302584385454326209084063242414073499252978181186335424602110027163755583781570432104929795204512522843336666029135730755830800564675236663049078599545417220729738635890061255831613953322135421199718903106872674176998974380383436519704469925271002160055202144080546537775667966475634945655978829789305439166341966087325582749772493648553742796718513169009763400396491289162362480309585966468559127583170804684416260854219550422510646079884315668868338087235520750559827653289187961562661489406409298715626806872047126603263448512850614863448910169885709339107281745193827106647443289910709863240206654977512956046395187911665516597438281867631095813169157984863587962172214431502207903768612100580057404219008245686252272961688331818111051546124984417469741988763928009738287137818748345119628848679272147673549020978930846419507116391387732643380767377042375443718405669067807586739956389038222305291727730816139047474302474232599447750422805768193490796351652699136645217442498979682444872300279273120748514495207175094228403754255082183217794117239976027525515413214833584254003911825701174005318848636783214561062879124428440953136171127399410143438386246214796998864944255824705671864344385933539682756597029958183520730391239641009375004401423636400751633504524992092432122456969622414599758549533029692611342435279099388526693482494647764290754198431056883866413015242897757830430811030039767194188986668534922348414984401351171157974489179725587421205415932445218415163747064391925643581310037575747843204752999755264136510712995307222352999909619635475129208215531220714988482857743191115456091987577585221007644562322734941644290970406643155756944050068203584216445091004086186032938335512751297415827083815566608408866126619100070249820464011729442341225286039051620521403863760053600160522360816270462374075054881260075918847265955055133124545621958874400673163438726313094813050324183010891257057665041480297902735949122907968774232445364611062353736599319077238178100303901369772000108984302995455762352585601389168346127721893798686434524164925934001312151718957273345251467972711660204367945349651116624360117685658223586417514986234219170133472379191414400582816201552299390254916022263303109137844319842839281957364390703177025925854021116783717373423721103661703954676695752346076835271296790207096794159578682203662231517728281224812268874715061007366704955082566798504683549217765204184208088476826566814863532584229784286361275014784540678827683784047197352442229296625582343770217132567240399288836759760928371036539991634175240122245475888493298171704473018577143385830660874750424127823626370874897601745033868426585391553873033908922768046688151284226449845373898123676556536855924438556513219176618151453548316648942819213193614175751325916243350874256557182908671176644305653367295392116213577208236540923142161229252802984956808848239588861311989282993994522532518943328985234306817096601913434445946209624486199794188760535617556696608156490066004000727679754233312157598526801385520856892850114490663517357105802821204250666564811398665315981391996038931400977732622256000180865999159235908885448603425275187891039651619345808682419482630694159247687864253242198979603709105572028058032638786392798261742054086659138742814471732023030610935600022371958432582003008561645564782761940919633437474970172169737578635431747135580141636329952597509491004074623002514543894753537716386858351781723950706726863667216470630822930611610214836038511803918349842124152692380772166118598472523034301516847645860983250428211729021688726535376887508270242961178090374397689695675561064879275408293256793688018050340375018840836765367892509568487394637600844373259695721797429684220390036044223812978211512340719837380640052692724469413318804793026922259224366219157354362435743886803890431427620399884360633880389627821217469871837118567042383997180376645247349711799065758666156927088154963831061541357866896609256954014646591524216403957024612035283661077408268444241944460129733917576081383547122553525643202651167362175817852109272744379560398714008448583483570028192003077609878858760544775742715075870856687820177586301785476532318027838885634839939040426547971758430510297224027629023452227072769755984584837656685905686464709607144775052588076152646402288350271731412631998603558241642424027271736401481945568458111809071440498123724104539957584600138634516253007419566828185358489052535825042040892130333901931468674275900581020113605899858504073540723090061251660448156503408287236303333656719944311173057864644313641705287407523321485492541999760074370873063987935610923682399433119347586778225781087858780377747710589660083176701956698566817538341113650317279869297542631216857281074554245782332590823161886636623252625726359394626324967720152024775094600744853161171948832039061655837511530827177491303692197247751046291715075759690850797827921191336060738005335574696778605254065243504678033906697292758083596948519777048464594280502393909179522942507859070900737213858253460637211532860446963886883704409260971448661674396612565644157449519267636738839378841095374340718866326289014497212136384601436809526026356887677349081756654616234720004623336306337669497836184148606996851372057399878914274690415792339137335582134626128928900363695660556427230919016740650418265419491686271829861377476845108373915429938866132597968252956460825753043874579943432413375278946631912790028640373864437759861537376241189899859826967165064699580000602206609662452361036049017898760087300073791370189456534438138117246007907190533179934069356807623287444474698951587482291688996326480824861313084552186458702577818619036002740586628896703636835695303662245057983925720544794063638143808659811897479034481907015771663813362815251163966449328324144597214255666202365048055255740921127156452682460360747732723672622697457601485723635325636068372950389314993791918774157091615600650320242175232685293693451823991436206690634923496224906193187529260000638981221233349859115201345872401374711518145702362741609434166927782631716077541554207797522440877379844360594301827391059834715440423458042671024469948347307011889859727692604428801352153785829664403902967928162860581011886368872880000387810704976138793188246500850362443929795236710915240815627584774322225606650284393278822238774809803083654839522811279935205501660111644722543946824352170836820755576739569718120365631688047492339182267725916117765054886052297675024304873814576336489358825751411468918678067858821272315103353167573390836264683835636919242917888141589579688660398658233236563666697251822870554686120135128051707850360680772055091319743813465778339244442398145545748174127563048368358503854628338101321116787735037341098250484604392712792111343193362169134062768774342303676009574911569414018491306305594765655424416779976611961713071026853809318376374925490504926349594923714541107169848518751093505152809276041667733151548304413568167448907391723445725498265223354183512426204163009935943230832741148539186369576723551970464080949460695043245218232459696701972749196520245880779109605008537915050442121400131799323832197515804204487621300609743755004930596132264055162705945280546696841271654698094488084646399179911836262565512930448840723512547730965225341229055541243773662926907650009092979398217007228246351174362992074448909558520757627126391910264787873882688074405860898835585626428748196964148592232665217507842547423519176870632714316540314955874289596477790547887527556952025697124087703537210391826688262148108717611120043373826584344154005596425225386079357631312595087473005457093757968517491786299052416367562787430860642973508792125679255925044833301904325463242763133845228740917949573060316814596823328121836020615762949467045493294314387067101219054242337622897761841654310057844525728456759109044517584069834744692273507536620684531511398570114492714939664712757916973492250049614428172061516725355911719301131135663604533715715941390969786052364043619222510643893839781089074992560867973986398839629239474789859848235317082691194443348750805785901419552944558476378770340579404278954596951646407423683594911412182497436991712053561438787091812726551628909215832917035629934139812085256943293126646371134545815092601403619866634241891013451563107405418504007601488336573880538516381812368509354239332750588078799029881947086425110790892051631266264469447939087809850669817386695104848399067648297662104733946574704800314451604635850388417437311531289630279791929856360565300841695887875700113781430523658744012374327756233659234387525621576260646345456955359439864903616226542544270081914579864712684509697726108565386494393624388469617260230528279740067844370732639094516408160052638703941217420519262329349154498255310385476722552894992402022666726173171380606324959252499748857966802117469643701830914600800176338834672370077012995161224224658928194962246458466280344583795014582895063086118795706900006360327056965312082041724072820098529853404187154120282534761926417241296154579036775188534395785806092054566456915384570199602877184487880491526122149728670208965941420673325615848202873281572224227319954913162129928542934139454771665527034661216409961821267283644735700763310043670012936009460698323176604322962898528082670748653045016958946878614810566573775389446734786824130853460259918680912694714137931738250930195841626955657882363283232494961093726047485261666579019016021196078264081227194037255782168635665302504873795568381069716742396285524408285124974747382928632162698526865993547202327125651535480943318367802308947456683307806111790920413733094377132380669659132089267043705539279737389651971841172222970610759657786439300662739912697449260282101017038372002539897482549508217432043253889863164249874679093260865579798352839103773501830866308687750603416148713092234142919036856567359617421164083441351895732171183731865068984850390383069673949423467317868445252499394430881692468655913999520007734231285763240664381439836956928126316033347814553385386579963675010953836973040019301634008001789881701953088335880629719820669382200327289505632542538352538414373512992834270901054313745083253105787866983343112530570063741450695981597966270846906655363066636958310675307691943168518444077042343558507416604322801049959141036293679339004171178595933306086336132006252591850138647551297196415445360334281138687471608455103568970969445724065061115290233528760471719336764401354844619932229630702808321118491190109790229108380546811360487999286178761323184695663712614347355316463243848634393697773511315675655943136217635298640253227766638699412534235367453529258662860955494567358823314117170101770274754419648703668838893363313217213393439598685892016035976699922372889458551768504093166846617941766982248270651343213861923400542732999805788440083824772491809462215260756433069413664981488274148151843341589347640801709880932456429104506425280238668396643844096090467657860029217641740650476103316492288457790673875112714102091530223721696999767902957275755530450320379523419189820735803435150227156138725964331869219929274047576524093815393382352818272184248176610536592968368623401352330344557746260592874125429833427478944875549574133676706092796887070104149205717821877745044561332541920197537727351319665171672792020822936359116367281671841193213261155289481238149936217375785861524379388370862106972291686108531771840640425009591384165534395099962222258080501546993900347723678004701389962935334200612842886499648392467088079915430147878109094956496216293618909567756002788515081793759836615834606209616176737410904366555090874799156847857070187448095448933038212820984772451681875873027668391920499176171802652497941445474798777925066709239782774276270878650782544530008558413876775650287623690946735444566246108588445376243606111724902585012338322377995652982391093375706121420980860985043228078933769713692288287632242372735002280004840949128500760350646032697887537569602116027098897241744985493653625010308008367534178512154628006035705055261991774350358399210572124884767333533387101362635588057343172706350100965130641615728756366799974298347538871738072205103069065989709934858531647653479457112374452661404963286035229258640849894302498675549245119411000849284907541112620306722475362227147080644649073946983055102208234846388261580186231737355617819698327730390191753945845090373284613052001152083838212935565821034538599157256183889792257099727871593098746188175209557547079881102357549147195483476568499168209134522870084926520417979397871607350731605826736280715393500211634108272475784088090637436403632759531875478958950886530612696534120254002854654296122472361079895163258375207730137745690947415699759399575201151286376800730717448806204836808732881032495454193452418129450255733760300350145966588765052674362846540665918427836796151236088215622273782105736629383385267263560309274060125480344120684989934704449706982722461134593672483038980138766375913453312459058220448939072844094708956029693366929428173716166807925242745328346022629736997700956762477065003577474874861379723045605502989892508834200529031358769684605862401908516408760654196565183668415519506390039203032160324416378509339783473081745282772555253860197510820035653693817663530929741511271292990119214349474411913085995141496330552079836458969517399822880764644947980366791078976201259427226628255199893530850462661047829334779713060759264069378017898815063898438674856332346751222147626142266940955550342878477417672712670364065030691137266342994820717059704046762562138493571443671315085109193858935543460396673128859872105491579727267830175942497202077221703743190217901856165562779034810883812394638402989901301330052062926863319721651875179075767506927810281381008347976454958343556046519712844027280866912929846183478370130203106146675545968725361114938636832560086012698604498989399400807816300846034344688087182354822876529191138157078360350414469513516931448943018313848047877322662687620026583036197880854023141192910991605897195239005516801566824957170070558554841862837508696003852991506365408498235643322394584820705557769518537868389359428249429447044115901872433018874359062959223686270194805564350248497655455904272759319002548466634495736558770429434453078044101088895430963307676250668040966267164243782091922522114512940378496888070360558108269442153002828833502416224309240654226042531516235704113526547596186023641536240548351570659749757860648593530634290794565312964117717429776053611124675345588249386335696706836824651904911624123443857004127923244881209929968377817850038337872077779085627875447433024642738242484255546114639080728927072201385602000991164836143775483713992414948642568657870341931030661716537232769163371377662691638049933552746971018987832573600319991591819993370178277821217813574790636451900940072392632615491241855558968170234395401695691747621584605840045316243634038103667190321792844209175236012083432965017826231908132468236412284008144930037276991568605061383017906566412319488569890053198609189772738435678893212624910735955553978359219375082658234699355997558046906276727461241112282489642299710815695382874542657711139524441418146004961689716825652396258999698058555878731605854904449450039961509300421965955291203379345150643460292021755160162989962824023390797618670880039553414854919491048661426504894914585696546804324175119001778255467313819400079574107019022749226980673988214497895076070739297011885184250944702245096100339140187875878310559040144207410183842899653345371891580193801716067330102522157950268595543527568540585879301764406039670935232737174859032295801905419315463945144854739994836186896328697837399698630617616141279248043484186313184143351441176459681521963167617698624924214165640041975348320079045870431719944722205838590552679819452068566162867119824943380028892093411557577935793828579909842991417956581864409765163319897130600581302778554619764883571283814147270440650232082634608049404917023055599431565307568923543624750226945045689822852526079472063082282873759534627778787229663727269751206695033073707761509071050900333579818038238474502371059632113829785821582954849691483439415950065988971617351762187219292440952301634187833454298807357796224706237265526858669996424825289756176047410452845578978211303234745668541509304555995995370479201497532839183549093539813800372336104940196669285253796117986520990430510590796318281147364389976982449921447323619616794327979259079221463228893678950251661288030465555179138440019416533871186002122604627954252482204115454323407110650077047225996824027389433764254906254207160760734214991551218070230362043978104233978529631529472698142334394823333867386865765975771577999085861869989996177127355562314901211023431240248610085674421939607010807093358557394909176956484095837100881079358232873190986928485553741846327434672448056965035049770552434581795628692381007127818941158931986250500829413351212114854675801219124438037839252593385898331920309508565236736089015966754523547376673403190015534225614272170912022207263976784875952448786758776304674705656866434718643155449223222590980240525327083518462780850447917492848932461527628408333471766700827006617978465194244232508431014451481653345547048901592955164626678963292582266691958853398439835689586123724636246330944922387473839004507360314595560460034290480258044727276113709774422158367577469305557420334055449697361462467965732069199136240128541662815492605676095433780250681777010263653814285582661675321369057568009732537732816984030809667246510032795051726779938565922259773948554112577896709098053149388275607948284052886394362345450335742858906622957098632474199592138260453670167177998984415921790360327682990487203157634758046438055484668396456605231820579610495364534334578376070995159967251943509481679731241828814175923380783934979810399073624097154805927732784089282854314478262703286422413548854338814209004312258583432087868032017451891248157749956714600394749155104308174638595357266630187184608963737563028845614591965842618503284904333183363258841658708023468497946997901183162061283007567546842510505733710318537829812012820799561289529382376033115816290541857346202177556595537462126108337934437819258683024470887791221922577709414354048907661410633041618160192465742731112190551404496442921325088095848001043866378277135659291354198902448040384227820468647733553939274720221307228771310561777744585720210281240490201439657049242575517326026130673528625922525916377731777719679174725356321719818959671553580445572037837497848947178914367040071627837597941632831948621591137453824199205194221052496615192872289636917955739691996172145444262482219703233030701791522153723355417701872176548681709721437841738741319073301501568840370387273464462470463620402110590229198438140286420371693503831314274630811821765224326794349371728390727817730448452362758357556025922019646971058730947106139174594289945861377598031113836153308954953739880578013683322304538850448266420850918646155025343202782253978003164612384397754511363677636549048953619343345396073461412167765946000053452500743299490348238532706574914689403621061710653193841344054213331742036617769349523882908267508912804589049764048310413567022764855330250977185522539594209078409410941692146002719491648755564233859431025778428517301173396348039809984017583999373263261278959824837447784184126251375210739069532329340709751224773178645127731792331613805840953975837382626355647791232823327681664670147684081654855490788054540708829938910444077319630393277849532078524352523007728315578245491778186109234832316949504329583322664180560825696767864256208168802470156750481451835035105943576018142285831870793854135658778989272924302762270287272676306261421715400255270485967090678082461084676042674269979810764718720179056086336349652477488291045442368664362995338668932159764411238464843884505484082489289082116255122112018414932939351226305402604677474764622253771781309013308029300887003689630695836582214518877606099626571643055327042507356851299108323793689820151966572182715880629984569273232165034116825260879242299135071903150262523693222377429836794508845929680314042903278565998365887378983132180841335416884414315310129509503821586389702940947971582801774629768852072815599379867265208348842118100787583641706058603497753137607077981544626052370604938143383897595307297590978029622917979721518560844860887781887559129186985397347333678626966474277232159972146048799643593560667364752309612389925639838410377505573359744312457060605533528105740070110852410488228228895226918955941817408755817010361549205036042107765137810388688802888461778141619932830806060227380628581303637919122259079704003508715495948712295728992845625078228285584549632872728011361506916243745873077164266328043166434569201272910202958900267311627387486739678540037618021788805505382483351410555733338229436217245623697167447885023485208498729066098453825918268132650248686349350319706492304712164274619728934828659897221428051514624922216654083408481672882804594194406154636310590639623443411304760339192252566939607597702990588192256079185310440121881142181872094295042395045880628199577681122456271680218133329807485328643854119854684234688444850125832104947853800459457655988545269330378525870291222056980859896476450433477761400335718519636848105771808568535258403020699292297924660275395471257002558305821257318103120501880968501254352404656357574049503721291524919516637643161498356500902963579582238133358799952459223783136657324311835313927898380659877461806028040312098090116874240468279395823963064205245265293019734838764380489308473120265736185951407618113241231699797727169438551954436427569560071230115219997223136960414970526568976393532636581628013098887335999686125504249079544007428267674930813379173964992123975082084954731674978926897533473947465420571476757468699726384971243939039028199492225634050255069403332135567752244803310029480376749428427365339566982023194906263691719796265194547476315814202054042450923026735607674275001522292614174895372878357049999090219594655647969564570786382357775911333382499524899769658082268282671824174026809088912583467747758275122437026248385588153459188669635259943802739266385909399713790464177299228354966104526464773823538743416956099211788269366007525438338463904453425467373707476213951973368055739472765407579348675214187330303436892046953237611769662217487434129356803325905002411885731773670916961939775764459952513991772171126117015217054148435200945666615419526808473352427078323472035900060000857592827140108807021145147557732098142071295045732177263852331306029014699594699791432182159435089076966265995237578890346276324951701003330905015897253061066296913074241251292238504676955152812004488216994859978839189074558076792485172739864228357253118163095740562858786603397756699851032769228292789427836578779343608201632336284665339551850103884805333266912940905011674201032038976365692741987202417247560720863401605641563955542361294568117465353163809231839118610223235580076733847053953969518132189473190253041091727639007431296540996293580249693651768622147860064404275565712608828939147423901250268376888631092183910638993266191915782638150751879418111944031763297618454402984900558521587193347482043827634502170840428728305304748069602248538912831670636573064056040611171250589104864691063016374458766971837805079714183617252834331292641326989885360104535253480720434433488888066833654593220696819185578167333531834441004359214886210467360548271809894349252217700393074940974345319581511558199893049838596838461026261618247944663282987664047613239121341115833884436972278619469442369459915302292406106287426540405850998101264536898371286803857656530386659056025860451270634759843058789691983139959729895855593003392452964341772440599445592396661649323764544979125070216451681386707173069451606605501662785482862307406403726685893312987578865316425027512396661122650365241890593224770558894006884879939082357453554891527505682820497349320104728252621826728843158119913790021496403718732493940484529975516059964383120682250312128582607541927769673905952877295949945887493906321715979055556738355698835336942780551050322249388630075377285258957918313654717224227879242135122144105630616618561895194932233247325948347839560792390036334711317816315443083929081122780464943019112099843221609686103721976853881638188560757125433382810427638198753298622870178822823001031359058245727756849383237964408076605767315196691335381501280354732682862792842850264509184904174413220648755494856278531448271644013880558644633542018788040639695804933851227913221661288834029281625279641073827437842772640729713697779301926499945818252534936244812534538921034040252229693945473885425305344448029126460615534247475048869049027923026416262368935241758262656226739034164623656586892084989719298204708586142672704722132278805598963867142135409393613453199409198381932891518871158249813940149626456608354979213793190754262986531102961616215993669606290916816969524664108539473548504267144978195426545339196136531104135724674985771449032132116578196578034587595569997444908810881608237329253595875667076484044852135441594912612742499632327069977913691490301507034775274987848022242318993189854852661883724316817517644137053023168324480787311511762313995173106261330497868939255706861306867377400557422093031243724011986099259645395115934696767031903445078229244162758387117810119124375366712370551973977781160924383729035086978522237552269612217453433563884732577889674012797498203099361582338129373535827722870669419857878026578916331541125373152561577963496957164140326681416702411222702800342842793924205543443779662760616294575169455712247441105512382927881488194609752895000858401676526597109931495511755268163693956136816230721449006653434728463853050538460399984910390047234398168096432675647864404464301515341481881474748958566067847812837906205842563703783969850447338755466168426046544928370476895562321560495629651336466435872309669599013487409518990040352852675068809289040127289369870367670212362577766881708957709056539270545610072323940325233882654766693015747919702017178702928850797685688542529349224289005677748540349938529735290117686933364986069717962743921496500947670986191657176639527610986998382470768446363142627584186351120188645218683741969947122351589630757687679578277428932183566924958695868162334461479227713120201856973890068884134439817694894382839449920769056012732906319217109197007856546165603450005040644533014727508111788066016648153227971077558455451578361352907971014661165511626361280308012345716039955771112185172813563155636938244602904701571673534374471460817400138318513029076083978163371509757497784142750242397602387617438992110805399253036318548226847255277867448583413855676775967403276120428597150555932308692407011300197030826443626186510553897851953044071066037634625983109864285037950038688188648206580479727350062337113604818497531596860951099938374233628678251071141992735591408090884495414567671854545652247526344245756262465691533287019311137061544083680862113633340067085185382519602065643025391076367131841916947503868613241570375366990390957421932758281949906120381124892661643809696673282183140837221210406068183817043064080505165169431695855476478615529060075372493731385833064451166527946366818710175072688875244394936889720434559608335954858099556165605915732037697635468857813451018472323060718350780541755428374189180833311603925641703871369853347544549663381681767200234014125006356056044918895362244924242302881133740298466787895654711691331871297998350606878577785739742933719014514300131407617844210007255505377659772427657127954702318457008486854921666706670764002553384377951603477678230539525895492863618315243584990944649168314318184475629817787129990744521951776367214639955324725806384570967242242792464525264089953970654394581920732468528934132811055893935024524312478725075271637627579920601316447579571268824042143482659838850648977547484937030220918740749529050827238294691694132676735584216710877957824469054989367938302609942086824281407507015603816553884911505325527384834481858524883510753995626107733307263132505104914834998460024346339528290267837966757753044093549696057928122209223567649802239132346356005656343659677599203004738137664784447775526743157555592310745406941351204097032379900809131789914254781519698909179323507267343374220139124296543719930766701693289349928433087053217631519812799744628897836266424422297448999894207415420344654384606614345111349590906582164572880518703136052471841435583132261869265531939821259805254501032313409391675408591094315467110672894571192285179381453479995353024022381330575293877963294513659087621073653852769827184879099412909173274173580695554787295472314882981295300236936925670595691876478727818003574810466275221556490050570095404522438488227319145729839141509646335295963615520415891566047450506827150876654584715388125783304700852634939693601385941210587449701937508909572203946743463348112988255464232086839258263270780397642389358898413848263281501031915227496389571746968476057684305941203893303435308582168032573579846482989589054196698554259930789943467481296870524667086559666698603189643185734722867891570685319197600781153784995294691972174836513021141621514897416629634549107130128790501243335708445970951185794985070049014988438808581626004354692704543714331610001728359379121819367846157995258185866898067405062373109699824139888204513469631298729231775339338377489370343183005631575546196193400186944461972648764283650656555232550404118841087484042648854965616348414556378828600769634271717284154159833961940875358507822561819019934358943960637604992689623745645698756117045297987464128570493272988469148321620615533367563423621778599647302557445878247257211653473598699111259596328708139565648070085659643118888004261150435376634185647396515058535703125733624696767125634593849706211997492968885389191798912031548241925918342034588937634551514679042719583705599010501886826970301926797940352429720536728333234947460831341048992504403449065071906252447159540215711316847638450928244667336010452211539678605379990748456411785871366839601943342708519107352372523806965464501030572646765503304588475824729149269554692582579211886514503500128286373238615675772256163801067863505829770548071877021674808725429611160312165175622485300649891125544091630141258957715267904481702510943272943774046631832211583487699353061943813310548277256124824823795477483963862342506168875224141469719571368871611940366373585604205520419186138390014327309169240945452187009681507765973458000141853798367955861544276955427055279418313007450646061110664874361464387148207127635370954417364388053168212625502851963591364133900174889099753773427226329819794915888224152135863540791100511312072616741302150907763546045985199598971322688684253609317498637932343987155874108013005156658702556033551698231814081954058873986861214400334942642083904177617581720203012971967002055223839553658352487532261791529136534491707402380727985427237030575621881621895925959242762091237239058239669532660384366389619114068791162714945774409346423433412910757124924860348509489942565681683923728911851286265364999715341078586492163563590541280216309665846111037725467037647083984081136371297624535731606153705542446333737800025035818074115899863259845433837523446054815896100861119703766624484607193651134047216013947001171442166283207935308828721332979622265233865872338622281491360340145086838176033443399589807126961001093292031877387543085536713921153752983381386691454525737541349228872298294212468012782724147167513281945466009971326403523163025026903375488661406606490069585391068253600230860242600010929887851393554217434357595012218680615919202585108717260313819030255380832631214726329044552745497373829776438003814604102966766154741064298558470790217743403966671093382478039085282741512390738532334273003090636002032682837440536728075218519268082584767846438567463278312353756566008574340731816611955489635956242100903078085678526505106173365672291086670107906940982860998549789152825833885079638037187613012705572054577675845373316207160061401317543694621232358312119658661929535579881840070225620203711736278662340299678724069153296735719591548487411931181894833677506023116342596829696252442056765429357572866942430809099169900054875674099016979413321722938744169403276612763639227486539888217693704665873481653797587251153938158777850154678967037200134878948600744196163336730685947286971559845828268250137303386130084447139972321026862594315840424710412348649251842751030802603779872442339432910149854288300604044252704653820400636811566793910563556026563378989597520268047000940228841980343037029971754402072262245875177921082742649764323968773771468668633814285000722253288534300953272998891982145889759351337262523778355394142614907953377119564091345193491633166656881554615734272660422565376801276808768492799948614427867348874778639754399803809203575541109441492726324159158922987823858032832931690209737080131710066615843601283780104554972798492658488132363838979229622308021167043882459623864927727369662301824316094827027399686384804018055428935208715783230147796317855378608815512198208919328730702247305559726478610947324126246514305739674863990599584544991537277740121553065133100851659731921496344839661810615827918574831938584564949926518135381285195071979361003930014875194081177137123686682836632553165410875843137892444668399938032691866882833152855593044226162970755240877164155419529420660188700993725944084140028787565631820413487587111947241496745269576467744897021628058827506466064192275197726309360986854921412809463481994771425862862630240087407233376093084914803572152178380596719680035780979403329498511530652969357280746149679047644360643283610050336265018873834628534411494261922327855408702184115753521432942311096177053465133434067234693629530197133431014682728281071107849273052257323374553103309228982869825812408043321929443630942354053506775606748872191927179072645535321087353647405374231986177365960471488367713405933668333248585264818614058414914617188868505317665523751882386255674421722332525121087370418449718434333546375501371828737069661517881384610612823732125672921813880142814301383662472813473099934064836826956439904421123713692009627276214355681278211128392029060277615172187939539552427801648519862856355909923704498900609285091392147583304969626375431039039974227145296387110211357388485695772305656910379396649581353291360458077892406186933155853904124375380572426695535437993514316772358623913246684367013905091822434161073822710224924838263289687879797772809941907220663958886047363298269650290073375460075203207084344186405431011537636359462019515924201950450728327864443216455080250438064188040464147081267870523289205342038930859915859977589529581758766082859656116419156324576496495534872061988491753406393020048602842170701015019216868762089242797170763190609771496308008612839778558782578397399034831386470146643522051083442357521428807701792279972465537098084903549839233322241018237847829980523021941648014329602730524666383482891916233022340922413902740888266305901821728919182072520422873886999164715500098806901331672842541248023316992243303695713544951830753672944932800529757926178326517592207315206899542709448306001727555708447854125987467969196033482102974873041574817086074889182193823977396188817738571958580840907899669970616706475724254558559712929944613772126164241227787943912036345374521406167669875228653409596069174427123078356357165653342949841664403329803562768813347308448150152291511313733470624813397032024833322022791975211975709646684283386738703140630087315806236886249969364125345458239444584537607067524151834294784416015955300712980903945372880797661434572661097387744249473255952033254927662652088932664713398267009386131167305660300101373732251751101034615603756620515880261805448250640128903725017825616866565069562460954620608257958740120650452299522422995210498011654596983292294503236730872646903045799171184281002149942696720850271782535654339939808829445749904582257219999134735331966385697380074497406673199183057597833148215674802544553038103439720383321489293259609679569281989501006812371656821031171817535722224228607641242581846568449740610151130622408478169490604492487382706164260933508402849193370324752239858969452911616964930522621763674116388103417601397798283558989588447858394117700021605116657951174014926708788218927329985333190700993257204212478902527651548761231163416389242801654576509829449285381592807914029286698408802418696936582421062121700849273175908871715983056236030395223695664422542761744539839227860817390877451200713221806253704995282013523131877561658041424827912983568507421928683274032764162736254452211063460775068990593767849694290414651405625396428574991910443301038914175500564438427366206994426438029413370825222404674628567124309222964405900481660254031749758374884722087726751395187718571436562961424404572764512969493912817817909725235577885361548578708009467293539222581039545118114019926135597939198685935106970190624035567283582601786590294705799073691248434926920004997840523675772029082468993669051271346497879726931478869780386164570228255943634203952588914456188076702405060233710615934424798868359589661067959612860437209810299871896934980900161463478495527284039421946748098310890955686301616772228310866486555828584400080133670356808324455746731543874829529414947652077091152391174331376878221951630742961176355650211833860097116653949010879361508195155612182700149558727842842192140049221263955125208316694359338402983480126602995647163307114028667999098660042317809810294979323585920595643498088033168254109423308557862624849049696095851868494854122621021985305658235671051496749956091582257793771832807790436539181021945653683825611597039872207119661265272585521230833328144033200642123249071157352528612273238906987902713417534620959078108785609622738961216344045630447361170786560250614499765525741936621083542844806330767086336808338582726351605692006590914999396590730140813751948337801898676371621923854302327762048967473265446784659416890043607767894138135016230587788811208894151913138149333136147227387455397839028170665346503635768427530552629494272282117657386651944458256675669640731743188133667613224964968628107922255703441898199140645302129715064143381765596258005759511647266394363522483313963484814088249475888557187466715615541239295764379169470932614740685594896142287076426053047284632937255980205749769395448056514925913818026833458713817515618670354541391706438996968910370407404341659882719038258450267425196306082134793647538176848881977585352951171679971519034683448258399488618508292191062131911253000772459809580172190124599681277101131517392013134847024154568086422567723651207667892454098826675567220327684227965120976649726911034846240887763967790835019220856330123263949259204623129310658454423874190274601843380167781976652944239901193004410001734700219458807308049639347638276856267227080551226358313191040284431418519184643119534860200185453976606032362477596927568542701073659893427758879042279681313105298381499998788889280450312868488804614112370914240017734474389300895922084210580011688035821470333623776379553936199106238961812629813997807857792434774188959234237358565215295536408057925107095480147874546280203234215962301880627433818852741509970829099667512671682486298818801433107262970915706989445618720229874240205967929114620134559232909577551070021136007659676670245067939712303938335989082855905255781007196959399058477484457189811921716413442330034436499299967827299105522068602318406282689361790447734411346878565367526366885736785204494013459168841998743180934855046616833998691414183256462440815991270425093789964143543165259196688109087931188677341995989697330914347779677890210438203374654607577898449128593537492299785456927973558488656815587010113433367971048785701914777098901579984740463676315810123779776212584871923525134650449885113072475539799628933837147384342483464565932120517388826822992396450765058076268056364008766349776472171734561083693304246922741086100240105446898090347984308333022724558468445662227286452232933430865998513032498990106323973723440495336561429926870416931174963925877848438568615969800417988999709471605418823522194699942985283076148658641666218218853867506515673587374488650714836954720721171035770353794084230175895901112615237066599540518856403342882917827882921364731346626744476947672205243772707483148611615927918216180344062323647753802000339155480121626535537594276482396773490183420137794093263709009721625007621368062419943384384726597055256528694415976183260910274612806188349987146950604018374764019529062203681953940999667281403348570943935001988441298145054146036474167776020419661966916861855944334570237101261729596033712849833928660085514190455581792485567247825741944244668208120975089508440300437038292865217165455823507146745895957762043144272613533144914850259951852020726316481951174033087905913205045171522479010064771782527728304086677011106462132658741896623474860722598802922723874270243445505972874853206799285415911842575082701459881635807107559838882678480174638423082965055444564881414723815367870460293582816889000013615803802835759797938377314787142382819045753396903062925163869225429534088367649521086427356048122472655504122698673458962063619181054891242924072413409338202450178041621983779170434320185461652837005165582455701916372579142641592586842980041715850104451495319870758104351302599318828832135181532844488688703289819702861084272239770326835633382482588053676988963829876108251100230536364360684957460389243109169920273918261315476646998612688844429238554710630969688266102591266357107996917799813984634578832718631944436091129582568403145586721716617048583162166205590531548016831467330378486059712797126753863099056239258708405717842827438947314572712326038488342886602490209553007929398871135056133895470686722223134917053520001190985127857449719769152654067198882012461935682692296162224075415088483674726607876935407373097741026657454975173680161326413194813233253684008016167890634720651418143629513222983025866702524360095908726389841630330924662395937225929718442759410102169952374936260052512282247544039059120439244678205881960474404086732241499231804520313295332659423292851557607335501254090363779976333574959280189917334173554709796942968972792174903716728227740441473959661946941896366258452284551135384241562712127501348022096863775564690923101227063665482535108899119680624813867564683082678023915341133401144817650341594140946549357692747779760220876261741672648808520824534006017195209025657012240450120300286290627263088605828636136648473180137145172727352796954282174183719317667385128953237197727425448728684615335778524959264518375924230212176175731691465651076669897379719967243976709496855498058373716892697460565740499810355936641204700638171088630445108155091869054719149820879527010306033877109755706023399176692481668438413510372818809516060572588570837856383678430350686287473375575654908284212732422633230879653552342051400324919228602863142486683688546265489820907682876072292951067309530460902798795158310662946774776318296917069312174924078654921427117226498124716436945056388642856053036842514932520972651282887330343309481919555873308721884585671751046922072887688313195052061803748735722344416730721096376227585522023804148064798339667814718568421970191277440283407424339394285809909003510792065681622729459832299802917630573608066442980784483169547036668432824259029314457532343359102891041240111040365419241244032237682977929051270416681586398583437821348657750440348995823307311097827009907112934060497676884334222710430523533964042442535547573506920342026330473843395515660164343246329079936936346253795496334723567906704340928225100163197409401489713869639163952378860310072866957015103898194817191580373793472428236121936401323743825375073873173674173453296214570986299146044782883828527474257500541177959426797262577746776667346178606048301507938741906772972157021296216749255502074065640113996909752158645055461536563593303859331637016934191006924844341920441921309969110181180172863500376044194677646361478633863615665750446617387917804553990654407695951948365784611398684247279385853683020754692821749165216802660388621806589933195753658934774539386587864559227624555618575690548206790252733839543517606188245743719123571297176369428233385237907693648746336005901819641609516304799968439654736486624792617464761304400563322272858710690202989071989570054235122998701522988901155713039866413482585712423948524775936965769808080076769423034909309835025279144118454688779293841105335947077605086408420383682050249820683548279314385886670733597532387170495434980799610533281818572995651324553833052050865754908752072077460878414417929182055817346155773369094240311212969427927883243467426762371461347172986091987534323704875908515053993778280633767238762239399014301239004428133258961121459210601823834580252888832371062472369196386602091863451038890424767593230101692431700174306031848575638210259621221648090951529340331573801108982234499735351370671318001396450371972564637642741246902778379207193650348049690528658567221332415609307878067743819343954622080635707363996263089604993361657749774125910837523542501745471319623498933436028241013079769851880971972937286787432289092293551035212299003917490821919801030305448318739817911721941521518933479076631153913358414797252239469199862939029420661873395323918310863325069061637208402027837854115262993327597391740048765263902098883170954477848955203453665158884588199777889975418176455720946086933364653974328994949858037989001578004206826611234538732139908988404090559418640500686335101880511474864308200620992539410459623036265888167591976813489792895093171357410470166901629253599206123710584277061159485376765138497752593552877268218704136692417541367103129066602020401859155095674535655122544985751538577013926737441373100970322412909486640763090390024550404547470980637911762935371139470904121682491718695463199183455892880606772513832916657931309403850776574152098658848545939260978116159812662318536738243835267627595949628058789472696157127733286089519219939537269117361843214099947326018867720556127946435397738085026469151747272438963896410440195736274269961854074094642367501750788202112348631923881244146685653419296173128923583606517410827265611411205672564551164411714708093998408540328051051857649238692969696852306862984016876980996328004432661669486910899177883908277584660880980979721828876745834849195437427916318028633653856366328225948088007902071226005837721049988600823625160956762625765084142292831076953271846370196199973756021722793947597312658811628155626294813670940430102926912869936269458510334805571948869581323832425928598023288111741221006466301989178164586665022047429654710957058332490819540064371782169620414129025419294390754152980731161605131397086077202536060325596887923911268970535251444477972253410957969166900893514522769519338436171287782322112553801474954777405042412487526665561264497000571512248598897152166979243226367549755881806416368962329711959633443578233430297706494086656624518888813706996114453228382685591913866496904397971768734920254343464544808211394368081544863409497112610324295809864860712148886880560254763581768104461208566745545980433356791582067741478937830496715920338440223252698206638554525121983090187828596767013035236530928878422524932268919126901537238306699126641542987250048377748157315385823978733701421646515083039499554661390601179297386666408955520716958125742713620344919505099637337565049505888820852296694103070079517057378187295720900415142750740877260987114225799655749055103601294325262431799826961685427007899209754974087501963571279158491742771488179729166629224470168261784645871820954418082902321983153002053197312645981010239337194268024752869992839307878055108320082458850657116093673084339449325655356840010560004501728226312941617016218730107490350786102402625461718350074933603022921357167259840166574052055991311341441064855498220950599890987065758139365231473758444269615313139546016619036149080699274270467906520052932336169641873608175967617349583346916959027929876737535137104629493585362492049774288640824140049341656975842492222067233362370030369514643255233135606820662333405144844072376652262457438214168077060043264445620612093272424707637184426359399812907039476545309515224833881303691456573888494197348210007118499814997634422678457531660568087599488715802308909145207769638123808860461756589184816070031157158842760208424405540052884748177244204937691997803799414106462038104123335382510176279138219645226879605586092002242282149564715372869370114127105309175533669674356027029730582006372066584855761565458411138503536211117957517962005830864803899964744329346827932238927476424311373817622448079594385595435040969333583982531660722687556226528973307374853468645746377735402525294771812125338835334670448948281851371200188162085690441888016920170523915540929903596597730778925624037883703142010915788361339465061245245358152657074570402257344804853537073601963730888624654994039744249794978670166845242178494224970872780642421572407975215464457415747304573406715162771599206667294934709525602472673805820897740798392233324986300350512135030662776012490654075682244777120778075582917397190970666611299095175607632236588463357659860011305090879977882673324887694934245121901069308400151125075860230958172050360347875188264462130658589979250857602105944971104832512661467916428926597557623809147543555066617543516714412662775122176767654330013127593827330546725473725292413239302887824927608266077594408943043576871174543515735863661755062977812288126165046913795132891718868142947497210068763768764425077363306924082985084379910254411812471227330783500997901773246277987261581236713876422358073392212999092668254180571015337908061766228092169503875873926028326816739170972027504416499485955521412673927414367734774687340292116130518678629466327507760671764306526879061260285433711475113167994358007240038734306483761002261861448828563071052217383222355230837052473599168559938125795832132477746506367116691145493419016966526419990790223848002983129993251382570460850714725945686120625496824352885929615309407984789886169371199976694478222230419829755209842638087683290904955053684293487160530544655633932998028757700012042298579656625446161874668139251638118873558047425944032352139187295464405934955258198628129623905361449500531081021301270466625619585069138199206305174969106319262995106331264108405412749252378885785858798897452593148118165150453985251977921087838655516714775820356435793494608154908112264433816782527826100017975659499606935810077409144997971170775719192376700718536146021531108766382876565114575170706079819366010728138498192639721447001238407919277437784295906803352661889783361636715595840765671903924910823808101421242609886631071667126843832197241502919245075396109741780764207555728722119332929029826482344696185047111318903030145894240553437737607425571656446368265644603977495328880429036905691773128041025137523909623326941401800885466750977062759992291741764662220567952795318062895361683332010654087761160397411307759517967920782016216678079462785613653448725769006453176919680848162548303758217466578925866908919449950136737878510312743173311707480772663897399482181718012703915292533362472245578409789771155239126803839470642892770498557346314328355929683814041281686024869416720113069021321993908791064157652843440459903684032181549434268745922662545048165947673884450027605322742993805039792730884794933911926444494104917605264599704969208134030307747855981962870420010742578292981846455778414597893344608793209888464790415665728223226181810392803143434113693674829767846527437831736952465691104406368577490637427987103386685855946732509094540223157511196028134905717190311099376836621362068609671073367100830128790374099561839834071808234114926018382697810925411910595265684017802315914644488348935914125953073430841948333050723120652337669277035755721644980506198779903681590133860743690324176922100640744868178189377062431031355842805403338276277836910567037192105520315602188251210158708862538115236550810858994606443790350857610590571422426146766533070812470552599811140472018248852421945603266943908327722575142084026097536006233642259625220359437501980323986252146482826731197885008965586692755424150072119414776594139525190302767067872948000251329272563384434218558182581712525575837267435429770340106497000181772823373279620220895905632288208965450978798395579351065463597033771079057877483260225200502408449967556030397357863529531521229760768527367970218788298795700120885687461157431070786565590691477942646934457201385298612977231910219951472666667971159589819145703953483251978362228817881343559554235463963557982113715764653567160760128882552609141777833457591633974944695741098880890253987528727366174334792446297787830013136636241057643592522794528070870249395343739174032693116842000909009226594052643660336465251820609270898956925083968778934318605231120326502569660392359735091018025645146138469549597020101059620066130158704531036424912386561397706173589760902611962426898870251774765444576387544308958550391140297170723919231676106489542253551974564098323650874635821032858991978588425147964964754390902598507234926101825155055351310306142879388304278586175007120794346549313131010308272777750736133707806262376455844795388813607269553084299376914004892330587995174499415901431362550323176685048221468483205035333231203251853467902014090842803502349286507651168378762625961873335373493561507616957845950016472978094262690675774096771728995127637574247052875822777196043496494882226410179789434267962719183342800919535477751523533847932760084107477818590838375090358204713444180001450564767631062886851544852867282208976482984242258811250751037687863461252680099726991455878612669424288129185793682049268347616016747714402356040298867183958159510265543691351255988890712639785858417483167722924722550940975996321972557358988314713821187384814030594448323269774922859691845530277098426271151226715378236049133161101548111268450630665170378935337925392637391693076487454694607788360823779064684785558482714961827505852216487327752532431506507092678487544932628397699617729567499359762689483486118969323023697870292403917594578075110112132513526033286556166393523629198990162427441824292272538221054939596356355836723172810684824482520276598616713249551113428022812595174067750454831963706671095743972964190190495736525890999591577922536687206512125503341099630325602594154887544035331395307662340798272533672286199011167126548156031635102079439446958792123830636339722050665212731955361965145211290005394690841095507106678741500703685698907598955273017360129071652432375570548240180644416265476141443605386404227619683126163057253694664403922006550956224973070377115551130670155007303031006510039812017082822482623634159149868858622801650649699630855192366521434828920995307300074241282904930637745249418403703901577813602475589630933150292959552149983347285550476020877997480978727179379566774077760378662824123744171820889830672057579488388439671300413029667612554884799065513549773158354893759548436896075479234748332422905314045843884742385642323097082139148278984038815612217802415486522112855369425818690126236942329836824161916448782136564995406326135462897772371781917055037985419957675055806474192036072488496208664111401843009061144247439399125336318613266947416499113637154422311787611627646946928455260278494240699228203852385586559083680351394936210751237311393025585988385670340285238451253053466491666918705672556617343657018061843838502613423792027583756035775175036179872177831763228615373876944153676446314118676031319046296129983983494269212046710257681288742663530817474887992082598324537593665766295261607292309828462412614218488385678983027139908544350367657325381020658426903212196500649693642628594150987659464045697585959699604156738226541156466970825365641878223842607860634913344693978629066742965939456599410453779923647871663789534025048267354162771026921220016735246309511868441795495902398125134809254774587509820419362651184035589697737677513690280948534269682038980355802547590765411426632892141244302772972486986164330956763996598052249347338341331649934754492761671100289923015767024409588009792797829722671836025446458169855759778386051113445593006400891227084157103406475082656277822961831295349677510358335759012164157680629181387751667357739780383276568993924977984498467532624101161443246951738412602470645231922831149331935046394684785542756595539009937516364564100209616429191742217711056337810346332103465726922937696524162701576552497623990617902107064594629521375598319451608571291774728236726638307885651990626409271744769702741441486454423525143098301581279216621806003818941277174451035420996586297967310086192449372164840617068990049445843199225076087237356756257097039281628784657345371519128127433395230369712289787629681413453400683782267959065572389661382378922093322703349737336242684786513489063001266278614866488694269159818947848721299844712992696145611890147136588068712651869047353957849725254433613940357087279328116516679274977109626944584636492334647499354677173078550705109354603190450909894822124308310683131123854939457424352281319015060847063554316463282547631089790857992569991454355755699747051878729767980751307208712882438682110792917675266987586601601881303815045814009151324928032201925425742053140517810776507622479229879373989193806992150223411883036202196664247502027074349850482410970087464068057056220023106470528169326471806094838797662185544421051423824511166337290043315614915622123448725790115236244538423974163744476924984976484206649115975231559112674886373473385422787229262327425755140172207706391376979569565221420568429423063216424232077685690733006589023822100012547809382831490152785332502306745555042118940653544313133650463297117940710950748398688012559653230749039851655658469084724913230277862600481546455253608785831255605964747487219637663840436893991350234163961637432535158677832406592904555296220948250587503831751423399434675379306610492705831868693615490027219487203569815911234746212525149953652625165967585319842254391392106899653050587319919882733705012595063015859218421292156630936789711027735958467415302318840848470965477847296642945623522255649534003788887906433896374134803907947879141957516890628306570982620342078202319922551219920833693500469784706001886264688497925141745186683811215679547752979207606375126035781670184985954077816988599788803433850206040859456964014600608888882010072276977944985267946771173203439956254972131032236503805714671667446312686802474317742498453933825081562496391243529788568638850050959039372280279556100491246134354957578006287680483174482044781673614776460327967971707732701589190868961704609031726287603899908841425885235527405534765202468322551250113769475316350131389189651022564484136911280501191838310519688574325418321119484096087035244138151972046623420091469259163195900117239825596205645486122794456941072710647357826463052436811386032451799029994107058132643466882911370064968901385556050686219807047443596403570087372760729147251467128362140582448079641127927989101031254835001151718778518161897329285312689394073291897466345911258912473593725864892055261179379042165010098236201681171694968733056627468132470620330729408253759227754992831834028435118699589431564246901038556311169630953330793288334103382087124160220269245986624327220188501098645124649346777983581685920652574466677590508356928049941749340592851813630603098678331501347255413373143507580591245691366539578517237060278410514765886874554160296707564309765743158593806516634518184109641691735591080932549683789124979843438132109666711324177444889294904607038398789651718104094241529279960766460110116814547862852283633189005490763500645509457877765464295332167856682015939688863650916621850450641810941026209868099797064835017519638836825783514844693709070357323213177174000557804004286399221941149100109779969442368457197868770302088380640006359000912821846931049063678925218422014658653908082128717828520104912739605879614857051030546778935276709010097238384851009973844668319600160185042258322701997713318680328037268762281159890058537575883009907044754930795694253438004953954376339350644592437008232946545660767397370422026624318150365396455213792495272951057256625204911416563938236720408632166300294697806584777986355912386583653426355345215184482494816671477059820966097700197977308153964020099070963619210592610377365161714738124303217111839623265370513559764219417251170546569860646780598409139153493194940688066872484801164328519945132332506834995162204675893022785441194072954334284202785467953549945769753761591907549881089665104215896714872477864280370181001127506579850343447253725077284926456294490991254424325770103652913668497616441195666348096960079588636054467866409793074442558930545331744420357135854148247862942507492576033032537798162497197536144236000819597983268152372551247583011105164001590669057107261378481558534231559639017394836852044076751474905849196563139581922611198263989367292159358028203977318233322149555611497677071298385798698726733716306558544380968495518878780506534036374990943810042331030016298353607144751516378406682594490253371050624121471126637413547438745521131006371561570062579767462025201666747510025021494507676637937055495640647387507450512429927856475472124471583253644811883930114943602814691769150779948208086691347130055900703412646240723480314839882925476024833849841486082203870738312559464255738876858191109235757557991690731435674960149960994527629775625384310193849122042366276693089310638455561062988853059866022279994164779134301546979769483027443714650555153327061224546710477430345564502777861049002125481263158469721516941988958568590494333953397199197765323908690613273015703147327092588482140786599754383337675682101409094198278329549100068546210402956630001956044653658337982384536202296737008303784090137767296103943162157237189586897440102228077257614426301727355052721115355920850493355922795381151172394755092611745305084825051198277897088317717918753614981831098476355353718612074658068393495464185651042538530659112916153707057069933718922726773187943456223877455777384260377585021712250564689442219692854928689221303343857289427926681651365498910117378688377679792788374367123995980026862701209960614993238999015917160411595616083930176661500062870234126059468480941889081349309751845568570024268818959318936045752868819981991340842842611435838317767171817487961577791716686172317185793725006943857841176442137302514205179674537340695228966431127203901807777766896443018249673634899904698804494251497217512761424155659431875076644049097192677391905609183027435456396435942748576031471055528031035053802085386226309268593813395366197885602980238858339322317017535152346478194342128225586335957417996107589357145381589047068120333696928363975089140863629764228399894757266649055060813571680548047447255194534095551577962975031963512381654566169260845852729091900284454945105873184765547638487274107132120242270720296626950180464335231870898752537039108211669955153162452795766107285262481306851226695990453158114589206645855934267478518965103144321882835930695609301428580371711119663167804175830611875989656255829729147329721397727747667555082221558681503255670678746395675268304703888063694400701521223058010429236130718265366758482283734336725990761596074187785204739194964571871094927688795808440558713621645405389507165893186218738415415223252931002103638941561061294242630007846521306801470227951391883163487733968247928298080112117031958833227236788630752340768350392827578233008027311890183214079330045952162982695535322990303713585840188657499457513147481732735876975959640615939802788032589588907052453771621302851321601307850588864869709009435035900025745921489436089752502025604484593162380825871990340798533907964209428964025890323215916316756776909245109102277067214958971542901937951311129734297689828431734715583501543811280107970759128180946415856802488744083694315613186485651625803434966670086814892231075494394893996599490079120326216366941872011794214481188553258384809213267326932368161636269302223746095018619073766853292618260111020676541908010394841871579403673031581850045685350601089982495885863887259337285952296906972267850916331233084889022958873850797688735003902350153628583865852415522822173121442151519107823441517243001346162830069135140314234810207973169795611182799639077859430489386000092878906483183450229027345859865143390271728798357847039561978873088657378594599259519614393089637993098533249891020258071063656979351694349184193376039631516996864399039015868462141128873515889411555941224857469260633701108463452832453599539144812448799109888308054388989493537549497063838780790656996892112775903928406970347669340360235727432614698112845708384311341717781800155587493947587675834761963566486767764203186221542752450577333777516137143365609267985305525382553716615272476451247799681162499350638749203942429878884294527793995253308904963105120939556248323640478395437576539262515558794879749654577050298299709959987688847664042915493679311805459299706764168420058016614171802090886345398463082608337320063081115364787688381302829574341513440674012119495652465080096841895630384847292599343919349937168758603427738954790493608231320762302548591227139158201328936714038559463661646330026106521815766730735424693358750538372235196453550625628036639820690765790691335265325008731500259395543141365148429797159841612274104253320746952224997803793053591396142990991324669059343019990768562561745902632368523649621240753927709330634713449452577807408864350787876708542872888849973256790047993808730561698669850472974809115865807936879250470693344162275096095244155078187611647250247625499726394902621039224426801144779311866740653653048029702860735378811764215594894210464588354494399179493253679510941057487169653404206370123732929121869743027731367200872398633901812010134363316215298748153719255004938201016617698171804258754184033653749800690491477165703285700236949017932221446304201370823452885174991162831822594748545275978789576832136146989022636322716956835563242967819021536770951176218936465792543683602151168430564725594776348314038580060023503900381807254017033063182577341269861285391676734139121233048406230387582665087270379933175203634573068176535131144749305891149733896892267521382391168406985563191081646909964622983345096163070921687480769869091317390585494125533995951788598333327819271456974658249006691974632276926979235896437789545680666064723994340201973825026537589289579195612916664302239041702517612578624812314235365124402325223679445649799434166242812425853899423405736925190766575516891934337084325359170159894545650838310898682127765497510905297417509003565839375166872021215601320375244959495793762770871623487608241423499359330944765885060528130167507950963635094928913863529728634666149951786602857283589762896364339022900628928267558299583596001454533271735723532712566487369824317603995984334969811514733884144038029842129712867174135795095044836623787561561401239109175084147967713002650314053548456619322855540061301299042459365041017355355998333249568476467802938747413618896798508186068925052659219086676143105916595867092596810753458530570512428567828676607779512148872545754255269008899977918818437424627799531630666066307810462091213339401928694245861980460419909920359685995124869066067637913641648496352707564426571748588112903637677886363180791818460509493606981082283459678695827646498882620317515186425151741191740031723656096128136262420817683168746554625168731668356333521325236080543609395948829037571105991461042544692375466933913131736829314147263802752051289635295450548185817011937033075342224621035493945981333779237240947043204532870785612239660944335414376680978940564001860061398468597781834069281007024567899329202679497059740224938255086586319448799595018465370349168404431189103826711233927586811105763768966044436771343224455804786919912153734397399994942778948008269821402062945909624420856573458495987548918055929681959537363653415501290978372461265961148031037883139811043665856796882022730843041356700569717916722809287216379922053331389115120315540324112076557737064555999402225187631738909884844298833460397886068980989587823529693457898287593821049745922550861873210700532233736998964901077498793322265948823247508994775472052902687738068022126589230979094216500356472904556098034677048665535666036646259997271004210250488863121466058469320563562600510744668723182531236707993187294913163748949012753816213818453214620164004208311797118017539879187694289746142735306098722725032632277210458764970023753921937522238391799379793957927017570493728105516227534475704352617140548693515443339246551739561826342016643410771100536218888402419612674275866661099056921379437364610127974775316051704711274932074008846703029559427809049576295952829424727693592522721004436716038403181414256770951266080205792280630261183189368375564883748876183915020748943584148474137790285279886156955203379435464452983920721809794855000558488205901355882627824330309145572488720640556210382316728918710080789663072055021199934618436688857396053287664967251565571246545487763093575992635658392172140924681620433502269044152630670941899026475894643328517812612117204438252849353622728596563539545295667770405845231283355620218027512225540935027917510021622919837220350594421205715863415280358430943720906271320890866305475071988320386865419409474051925740740457723122082747463348442957914159398819720512810152097014796809674705746483108797370331770325180458706425503838691566341292965089723145129562256907996217315675552666694452401411367063472278415842029025241228306132173618902376949561879134399486732392907395867871238932327225343646041546629855708828702001520914992157488148698474586900329776923286114586421528950259618188301391850459592894721655893990922478246852534209127050277199018998011965546937678545223966153056133460744977063428055016794966506555700132245819135923962667357325954676261640444586738583059026961306843848509109996361962506834886739436386215385780313045025216305903670933917818692966561608608547037538885773169432692336064494035537465487329779322358981881135705779954014886525025720051513823149572417540860985095377909877651404837694940743829040441401035481598028701650013960622994607722870373324929684944895082875539072450780461449864398576901312887972793813895236549993096531907459784118240530422322372331620143248767337417575896349594449935241786872802121604535138071293462585719859754588638265165825532495150214273243944896154163624599471495580441769867615793321858973735130794647220342355317688872738016931886135290177437290877118916430480194569943679661289268177131157899667905111366754311187058766879504702294476388124071255877529737645077529457354595609229011446945174856130101380304818814719465253289219711478325124739473573831662500319070277390521694298912604536626103233187881389225754357740066540743382626281348030955094840538172207804631318502784338314002969281589677081573733454759205122577817512915002156134285614761407506983957971772477427186979506054096027557269322301474199038296896070974107348098074144325078229289353958977418054273371997202483870962630384907191016502696595654231198552904759730874727953579784585489217636373411139276221541250284462454385861346672152196498291575327548199251000397462801651092751495169974905625153066394874401584321940336046705574372642278268210611337398096806718717492652179338185061903286721250840943914117157147204953970151746596343981875284615202003247596766036348632910517797751106615947978312936910578209503068122945539987518647270413732983922387718213522509689622943708098098845777363152955263566618360789631823806557725644033052390630107312753577163288013376188200953755653667601616479432172591384319111470194872505436735684702868925834876991426044474408708453518788025151898544100619705164045432687920863459728941660573527031674180740144270661471811718333405838027678786864299038707527616347542627388230685573486699989849036747749870550365924087469308383847316998221484257540320051688811323038746077312271430866894657041804225015216837942818781261324689555877602017022156451129528821962004261813894682330993899753546723165747205029922784143374652973127109438337894446369501484689145578540306556167915461993215067439773778097656220340977394671594743232111254442300409335284030909848982552664836807025334097374990775684790130370338522028374739392926265216824636752881994911571259049668425263784532324907626368454513260298571417483747261652604690661432151100631311538206959390944746593763654310141237296674825663984915879796861784808082179527049979354493912624543592029826899379910105781816170670639479726920810616272295713568494450620997838255392564234973374948343922671436032671128542474858911036762080560290343440241356169319229447490271205754614246938473431025075056632698597895244736048563547027975477730432758265371672829610408952393077436395049230811696544520471292303811675940740948048850932949354789431270820511994417530141208500067710446927992737261167401200848208620628681560829311479157976546258070216080651306568513520742510251902004175926903215090228170576800443296791629631697858353611567559664917219448336814183658375957876640243210762464823335873312472871791843400057708269441904978288591337488877436175126796755645123561168254550848700684551561805650704232361849960083045694975170963452774791615844174773806515791966927103231113478880664146528527474244986144053627367189414169577576408481337693141965384485865566378845419593457753687500333304904149740698167893674755495479770248906645601725441589275244106323403987502109906357156404252878701395542505970022695504822060405538680801228044166572126708635589307376883186292821340916930900107982914150976904214090251352795645406952863009822270929083012965739282033333872238963960780646761031110950525214933685502322402091197941817917102650947530997978618456128651469014681746052712956970090230327558489658151103803756593665885685616142695447106672339297732107013384304036503799468375613625034943538442445756671440183577793681385406356686490462394265720025361267798200416096064119944253342086765298158519830342462182037300513036700777107613289587517806383651989031278389943404619594115787868186841104985275626520810919506963608458995554953485260401175840453685178195036242347527681548943324890256962663795276848289144167980330263582820329209365364584945712884873040080183830801670203106974506100915495172728583634820759648351030336412795486702179891813402765284828394551197077236902206293790245937872106340985986804133454893524906764837733803029694264663342546652101116131815825607161719849222441703471449038639981673747019980431768290327636205177371466022810597090399570655442201334220940367898806512186521023686760045438567941641935388960847923542759223128421472651775138930593536422428392307575878960175937317845716438400389268493914136984484952132359802571760892079171330456296448635348999871559979333672402929095799605655529971976485975855080663858924166142321725365546934037748616089941011905257396772479384582236927834492279340675344853910766818586887759132546711830334093562093507839234589537372948850789584590905656667102355003906363590932824914826839071341192091375859522048391311983994176579033017837113331053623431750711037677810224332086767123641048109918878536508377346375901930978717205756341178439429188109641804375838377037177790636915385302330828501459169765247030578420899842059706536958426065438986351213406171046147070422758671485488293231088608019192181547090449279585639586038643683966989128440617296867282425132599577069707745177050241249793502765386372837695805361963945808133642398158840824403275010417182531089881364689614630049699855756986855971016532587241606542915813779142419851014866126702502708780982891224734821887668175960702734088701604469821732965614741852374605696771289249227604033167734450615882198299763096167973213227998529259119420928303953647912912743762552981033109912768573591833138320710718361342469091672289501273279363285433012257277620164666323035145834561438921990263784528702114294170673385042454560418510517568786921367477461513674706001473092618332259121524913698897065117975098014916945787246819129133119061489040063086717297623329440191576103790597194092801580035650638167606600025217888185460788109289392657230256117510564956336289556465041693758134863080118804763647372886902080016509200051521544596797976227645370233166077442450387089740713655924872092875558499323649940606876351989719986052750469697577653378929470771105792355674666034034559480953364965577870410998267811826732638974678594850991957334007000867321823522684811542505845471895577632934874220600657723965865086053981669649572835312300407746517198559687977421100841047335950048306524823909935597811048956971002428645092729637831626758289991750884895424440603338163499596156208735913188090726156635124104748990520121246144677229066710562479577979309125934128797419885846432552489038453435732442118038460331539143053981639177373500016652270413159326610192291463719521561632773045883482451505639787912551967200692838509727655647498385204551316391588256599194544831280196372932988041578822638316507273867270735809979140569645850491229445055718398189475294119345707080301494246820870577591409640931776624011074924030666450690901428955645280961373313946020914343103213661941620077655710656448602509504026578014090613020087611964683803443365104160962597442025988308084018395609002818786745112326189789741210357421663128145750657718821127681132129556307971012652164501711981672260162358865909486897129589100385121529564135972896059419451639074951389636738816854866932243949790461579106094354751526372184695515562067496106351673940814643271248609485330783031640135379639770978291946899998497506477638427736355214125446002948333816454992842460941904942209122211576348369137101013114292066537168250911333247154875056411985470595098550077753871282226717084836798674056111409123692290548305489952009877667053492567128732157896759446318799538614204950349222000549411853138754189937985091273369537257390410899632418260158071988872422489769478728356273380764673631174157515714129882025425970731447993055610511377634838290250214749672115016766944556502644536863689780794078246100045136803118558628308492790064701102813041581881754990524706502478988196363764458942200123756852203593371618227628770069037794822572478509712556316967551408967476480046725127660629546875571489466437021964125755251292483233618613391467212746886643164860789547441219604034698136254350973016701264228668800914343491697087344620401278247495474046999275690391788862080904138782330574367000801652022684076165944577796619172187758927388314154018137062614924651002290081980681801565660814547397640426497041109929869910169236806157434321936550461600423421852071791456880169806545668687314479638097128072973921450364098928174827914429536976979449712552918197093818724148176534454502337509310553506583587896526716958623519933340176729373806537456868693324337263888311534315431348833616052290912060953292024339664456354983580548976779091067944087514482773952554260363509539223843820838604394536518785527976349666649411446072118987046946680856010070996867506318678352549464967752624597121731642948012854535963475994702435515680539231719719757819728243583005444553934734551056256890498690883821780174530755918538177518775779645897758707129764572511909973045300735600262345149260526381067415459579968966926670518909566788187616255892690750277346415875383818491225919835505949093260596256171287752585586250039045720933268534116834040933534738723652238809614929080267598816100473055679480082582258556559334645232230598581419741917769162999140066989630090937982971696806690356056994894672002506212165200052274986073174972335187077789980718110223979994995476427534037247424715002380299271046826124556593255626014501568639076635317527209770021935304635415109187225795859000417899590729753234327595710502137783823960659844295169877177288157186007569983376134534012957801085668115648966560997841148061834165910350423175434127617057894719025992456917187366159623585750207700837601969397051749000766964806179262440139343478025520777971584220059893203143461444934806749035666944130063875686051954275980703102207633575223709996594908958198289644608837653878551152315155668419936119076865736837540112663703781753718019179728748850125630169156926831674037505218674497239939115644581566342477352766983103791094216402031512578065782451029998759412243074013639365551112636833012792434236696872887788384578577532917583451399895765606623471784758980429924210954086525134312014401613946575064657432025400361492745643485507157446106487850857166021783108227217165004504737160621754699799613587212875343510354605311589117701743107795915526787669765482520464082147085604444448912496546848703713560099619421003530009452927549240066422730621535067709049766036011438840430727272717885593992243757457482265551838643475846838005591847604327297447267810423497412836836557615371395983811882926939959723625543455476968914741324826694722038830742652035270869867931904554659244962664409186394182173523181775204351666398548479260476132084580875957695091804934712501968491545118283763546318270481661493243205179111018682638219570084223772550999085184885191927620044076679632643390135950138089225492455930567401408182497964297205933833654652257783314169810291438210446668932364302203082560879573482024744839582644224461792930766340924430462092581644205985504446272371269513624745076883279905823834236764881074569770337015225467189361367167651198774930971784226546836330189763259743928013007523173207966394441729845421716927270856402446260010997986560706894906844183212015972955993910792207938343911017452629794520040315151086174753001696620631908820141393883432363730978054957223134002293495841887910268431697266021396983917578601461223502860049753784035817708886190154818155749288526347060064460331551595448093242782816207249936570232766480688187026909490628486073567703962848820169698883888053320756883975541166811438095480827811552142245086489685961082620429745022053165068210040085741328897835742595114260717257895390696982615387413144387855524284475803539376346253780985951065029165640967280962226935815196309404983118088477000711659286599530058952319609473183110857985384971910891766377850155624102606907500924366984035314209829717466943030842990255285585054807491111208578797915757230904478015580566494998992902380525645859065764409323981717562628663450159134209114875483547781858531667289042857116932189047474940611484681924657181019090253860463592406718144152616422796321054826248592907822454936357978461439133532987883422665633272971829836322580018975406096247576208879325455466780444661299648586426401631390014406759365000979535568018507628359251049161702044704914432859042049970383994621131740432984753741813381301714164306787665863063311231430121963915748482693733654268499107385435734083753792439578027993930489769192772689230588691264443569480967700985843254373284186247646807919426937222267091304766174430737228388486175815387818996955336936820742834606157450340724749300178111654259410085295817690121282903953827224581245548410551126920147832866650196293406823487347414857871196321818479807279018591720633250890443844187333164824455086494346149837009923908935469711390184440445724933147447378583797517193951647506402942159271256213336188970451871185498469835108193924553230042659297857355606706140141662234257670564324140241394607541654135749392169197733391353921596317360819517016494307810314850542445300760033393043965011489278717030594331747662898611146347568872278522529822438731948719235526569589165593850710661323332558774080620342938590534038827668891518082197680148556576794115006350850527253310093219259659488678247219673897714866467226873525116058218531829089948245870827146595867799819737944585086141820899852490114477135999396892804791288471893172880767685785370238998183637437424609652476594747046798672581782762949795183890704802571197341665007352873908846308820702929673052473301728856794972301319848050931843311688467048566803387233050395577124765367397977979228247436901874643102711856972734808001240677505895589723567748513402928805840428434903653515554061637920937425417537099003818517962164490142469769114049615973046671252584358968361342161966157826710199776336195929358775742880931609596986142159479764112417963471712115046282946976375214524955422331793518230985171596857522679152842005680501209332424090412294255256731071838682793335399708614390081500554075221346935887487908222331745137482766920039382766693783868074482075678201102752977891072129607132291127873847893228274341746715357166433129603130336637926038319899987481510436842452050323691484648140010375940820672693762602315834877796144198861009609536343065434237407759790004438142834673776622465022125250368621982752263483346847350345666473916756533464791098971213288777080234848481830208842439670224792746784511784435649752477251497432279093234038445724025852439224286238684163953611051298180620828623127050008922387127401496453590512311983084267245574190508653490138136825438064740858704687628521028154619883495425469855395923495889097873315832479895772452683875872750358919019788292850907461137184340128691932053533135643268410933830588045390670190930514184872073492067742185916586157834294454728504345044050047617868366511066069820398285458512044377321802223009984418482087075717679660065945159607439754272719364546784887050086465198536939888848760121359621202391843648614156504906561306263383524719348992601861345802701263298959923226478126509403315624866090211593523596699534368587992964992518209842340146561467998552404217407228331855283544072945814214031654082141189390470322080532617251861232885930371388910577744117756316837527424736386211281438873946705390601508204702451878077570282674016823438351716831387198050099762048328734421316624842419814865684787401132958546526871276970231791644484811735455626335833334319659567758700935833740558523849868684440795081558961039578563411372857032527351744142415958249827269848489444973155368627415004948569964631726571830996481714007924202681518371676310070875290024241796971829747905291384154431523953119517687038058513112306405083954603852443253683264311397068211624105217271479700412569702556920350283375639683718790079460151131151019433484348900042827024673684663342363942365046435106326965696093027541784226746209509692433685245923721787949232063029999151706632102923214430947843399364618719548234051365390031128778863540140075554188173588739774760603411312857070622513874272160718683148218009576223128117746689851945878144998076616329210817229640855690050911214935291026044208885511571056448515952333419996409596930102569558988109654842675001355939271128959492208056537930668668304874876005407042566701583583919965471465062483733193236179587604677990825350639262423989064242490386098329808587510145357066342968530641409407174282688735602819263632659905187242151290244986732682252355936493237745292525256689998224981376489243950782692511888802206483797165800997184940658419554474544142209830703652984181945826718300114953463180145893718517194409817853044374466220816804976125207420122371477394723891013789721438244051339606412766166951699238212901316006464034012231504355584605414208221252723786939040843909601155936383199530951842937584944519094725859157632401222660650291889676494201435098748015469771831480747544281430130523818916127771765554430372906835394191873802144024611130058821608804935270312288329703426776685532980641304290480446388643481600582310844839681935357346605422401438878586859870669783956569604819704315127323088067400251811118912975087082781701785518057923362378627374509445039317327710022008819972734707057209855871232364830684191872829037229215465938615559351769077799511946997836222634354014747387165931176356409592641877648797029700031399240128932884711957554132926830946447055554484779689541979011233395757379890035095277711987189789841891732238349855504872766688469615901012704223877231477751396916883080699479866937705397623569846716234726832427560870892945956158962834237248331979190403524152253132756142310339134547068240985252310703831220832482280381680990214714760534024842614008735424915348422304180151033620934807091813249456714712239167056020272642610927147710854689090158228223772652321876770526644071306698160677171692834415962199349515264586015675595378231906962093122891383499888279035311885722989827900894888835854089256212171490042218504953466890601066264396005752090963229998470905842745724637235561170704968815945995708192281114572606496849644910237719847061701178855651966746112151635050248582752459534472422513699319269845711450170158614625719078078249633560041609152673856618471131128631078746694720813637904903960034426787430853884849046392966792981798955283726940613844318560026585357601880129508053968485413009908304408768900360265306363969564422464853532768845328224785309448819580177921057100947689404849225958637823525084986677407409205368177682969619017187035307828570615309161663149757048908632555550882067370446646367887629805795447625193873294980477341680310167921853905702182822749725898631610195598186684184447237094343703402461567819718394021627643324478429308035731901039655028941446943818258959777418416237145415438128362707610711306012920670031483469219319055055922854769558875019956660337181865833241752732506809301548200410210125292719503486282891087658396204075331541298946186879471858366594787137564627483773697728886236419239525397241325276226343554967800551397017700474596833349327140881425074272966599863452724698003550504272699197492985182619930660148438016014217583178023624466272679310497136569398075406586779067830992445852077411341142352135398684656751393191812470015565318626987873298201536986932735852668135091531739714236588812749206005806390338146947703383563457237637926702751466696444606719680981714034762485272584419000969774746833566016092421071594128931722887323979608438535499282000492557170479166543664386949220820026658803155120207101729962355084783697623174256500138999654331309569545898953964428111571053880206154582261761991120879910550464543599631119523343685166687825141119236164783576829570999260755930508587384918420414721409423007748101162981501110555090714499981033031239915561850947832445981515760330351673742281139669641668263790950487736993409122401010590782671359643800794883495118122893329847914975488249219048302251902553006162331208003487488875870142607686750616448238264625541809918418245619729485378479830462298544257334126001754252401418973657436456151549382151094855696473364771172459054830734674232404425842357262535341858447218192582761147537734593156124643443028245924838638437977158763515364998834957777586144320402347298272580407753957031972193917064390277810799475245735255414800515651986304327778169814191069398455566271814198293319160965983877922650738095425423001362215300029886570885620878563562902600762052683790758682466163249715734620990543772631155490906682661523015103977149198637938241975175060396213689468521515430111118873682102676506932397772020851502760963962986393588435583907712973148053167174151203888813170158094314444729932148542655388230463297005344904261801312096258519670916801883900817069657664739221228709570137124240463958190369316942076703698667475538912233506953346575941931998727541830365310683800915699392496501514134125640467351614243457228993031583438063831004843823152296434948817429703669801839363412692751258940770351616601245395666442511566043035918681337220943036336005307485307460822699449612895246749565442545708586464581673583272078331293034480352430231199549044816637224485485065625725669846076454630726260273522793676712963097162593928922155603957325652886612526176138122802456564199631537027118749993209868524387952488023352309434721719510258736291718272823187370311822650540486229043068867557113349406404486152397018736629919050169133436094639824714502715875771511552266718620024263416218732433699537575773294829739861022670443904068522100822243081533895350389750856346851522238406032665841030578377825119554194732024595085864239926528145057245855385330662878598544571641392271297159534285901636730923868898999076588517637358759850686219006559221524408543497385336099779061667426491996120133738481491452795942290148997368605556670416687055737198441478311977871971170434297428504713379692792469183427098535286129448197636462241732264601221019148847623622644220986523340522128111754773440614938941621844144140811467602643728227743078289023901725844049428923773168512270133481053276880986231025605367165990991983336804131466863615367977250212541132471697777763869455194689836638287243705503809597911176022282851345784171544290883832974548523605472446026504433630863850974959475615347010644161448622721175909597791918993521787028311158388174677630154781795833066619794157178732039047037390889928187183121076816094996048752964702568874666423736813271152389811749879941977840775837478110155897787703540951109549346220898781413510584379092204207871852266514457491768662024418926670275155599239808447498671047534497096917567837284298941931317048747248720093319451862883661619931279831195055398311339938999736658156851937065439146038576994086308636646054589291945829914814426383278178000560077471130588449849420881064786819644904410454838683541334646493594297210210761494770919635499547901067242303346622280394137835065481806639416202213373406999118944118022391665903736629420198632154491934745312787693059567117501840092234018884851287699754504824969331453439004931022316203753067346307855699792075050017561851381812625091490639383692500508527579129417345575914361318499321254884773030570596613558781219585585647431941803624175206527293950498033596554464814923649768133249017017617292604689060605249447157306460575085631809439191905103186244630398982730234826174529402747764586969250844404640427773262601500120808896960984832517983866139652616467203877176928516930601091082622297636671087386552137716728112757560431390756618615031755235484871739019223485692073846796594211841074443410118843236773426869135550421865693324257349266380174004693523637421094915375405601433774675210315152658211616892248156478532969135591125898192502102579609801883250747447438593580926273352859075936635404085016394587542554723620341660569318441649439851028472661757574268996507567275592031511263992959315569706890773373837903971461828782434753557386404991609979179927665907720405080827710871369028880987692519459353529548791202606188774197898639485786329290755995591271860644292937330503994552703464047590547683204199296761536027101043518800074959278788752307313029936237878697591141837095423752182068359207669077103846496110972948216774847010763475817509565793234631123211307366309678376641471623478909062364008293825032619377860469218932958419177309650729097548751792920375216115909619461923320370785194124278251932298118023306171192296854165855976281811458629462620570101275759858029591421727627729747168931826470554783950849868206563779007106369858445274780783181428631335959150047510139599714046138604263138815817755542976052546180459910360574608453786907781773340433189532502964922112791708122353792242108253127124521804589609774608342689931175751530299222969034711801031234422951922345550439655946126290666543905249117026392481509757999378655218598026349731600898820540456402160255144195677775737289272679416718836576667242841580074669334731079317613744697243516375898471081175756874964237071156411795559220606185573309014601531221147312902386124261511952693826568273188121248396132770041857700691265148572354435220995682026639275609867594099361872017754343067474072768595509006698633703277813966573727536324031408046459928524076221714005627677758825862524870731476325588885736800414919298057190264059706699379915881961870324913602701734782624160125258871822920145159015368317258104757946523657034655730625639274497130559856795308067396590404817327458790348689741610020963074779279532921385639666311779250585346216881406933185125228804468679534086043028623387745123061429512168959142249649030343376598239337280323107954849637756026883220294874332738217028157433168187383682796769089606158542452719178717218496358173467111073375812424013694952425427132516376035455928623133084916023752446565534363263645933201080192641081211011508191146630786940950252281794695036853160322908983626722653585535597473826798401805395998270252650135483754012542709319295172739801536283781004881506974813406541158277880440710006785973279952391888991389714622974424615809275643649348032808803281620490752133805262529983954326682215017660154620404955395087339753105185016907556255817634264067877938928322467995010370432522855030759610309448368439583873232695754643775119545231037360136446088965793096048831400357594774420920319598646294107274920355960629841747383846116071867203153666888761534403566840715662439503666985167457127563772774954315512510703899451625788116059116853722099784095200490158679139528644784586460089184392740660718587820274119194219684202305223306881424148910906858299001685377173180689179028712339288417090847313945286692067672038771348386788969612909770401808638156891178182990969459220929638175463313783743847829498509602463934713705835981606961597691015570575880334049119708752673580894321955789205792512551768809016900228987162997256130378473674903661250862177930756158843375767392250199043708689913226369477388930516505116984729936467189380853674331151023998547999993766383724410520102155197045102303016285285032589320946256288705161947708006673804676948589366783057152427152202919246454233170299889153794243765536679395595705391401312245512097337296472831980366764956187301943288922810195285676411072380977431747856392874967439266123138119265962489871082225201419858079385608382649149041437659874696016690617618739736950404842012978168700412996144472966067101780527076253087733081649101197134108543395388751353582816034517020898718302490552001071865668089775460543578260881184092186836558320822125543784249797079543948731804794184295136453752474614290153338777587829068425123960541138751692101039421141855969609540786109387191435967114457042543921229147647016120258499714257564961239610072927288869830187703673186503923900930688456955961958817657170134983564891276175482401749818402115181263298574479453519063136235751499766562604121090418154221197276303213886435294976271246216350119065607119799473489820067469006236625335843929329134729156557616802562687676906914874025129897419738071993634651081265072619124864326927613913160918021442949310977097911732788760828688709630094698180870505804081216859784387833018877105639136978072522423974259553586501083366184157272050107986667054785317326861890582388914805033545230760678882419630376942325256793061133517729766977915258326167768159457350067563988677501314273340717840046649242272726196954388806174159571547524766942721242177921222351418425808510445502716583401541655897883908992448600221619766992971389306952657065007997626994249702243137204649912286817115825844269171500889625783101573082683737219747471083547882267622844318387212632617482752831386496652802687429865465564427722533876393223825373687168505201275034605748220927089772337019941446346097387759219154907300028184303516445274789347142672746865299405555493506070082674061353910477698495243262609538590155825068632665140344544371946621488563219800065749695747443545489465567657852080619021123745906208045223692994176943312347566407962142114460895912410008959796109020299247405691088203448663734048628541317312912790340707722757372465386448294555089100816918094813707432228521079618181796670303067349860880842765592405299022503216588484260309710245435385918282055645678803029144289667639471718806249099382076682789003989706072206416908918456180868217025479502982121371892033895105518782493790620368529428105550046124848072789845243062916759789542367269326859535859618908703814144219516636641555058670269397665719886700111987061879502714706368686484843483576737300306225269493210065032433461562568660415175661067928463111917779269356046074304372672204172279123171598103148160410736402926289374212885410877563412062726784142048675894472271499321291400372105624595157066898149800241270742964520292595347100118106551047184408907088993212672843815700307031159007117982729867119614897774607270761713917957281295582896325855860781554044900250616041884023500878978928636207286204614134236827204644270668031225008434426917748597706676484311286995944306898937512534473524387553209644303816569551039491643235091871743814572492720462037285523394849751405960296345198430990442062118719035289970812809783212709552817641378843922410959768197437578264141957799535930942062623583416590195955444185527788686613073869154930774626809317255672528534420339135908014207815143607455922582742759480947757138738930565846126659416151178064928939110630903040995302985525781063868703782740817101312800640255687939067321530769388152258602085911272554601402531898972189443027511908039913035550578241543486246464894188118693939766576734610776661008488111798878394222881840289689380999527997665193849672303619398669799778784588731548177614114344626293795505126390693344501005115188505905351589495390996684238978949125687764938296466589388528020524858317693776126959430439767888046913488789738130642762087443639230902356751724525159357233196331512712476201327090111534513947241690503746732001967229114744174218599915222234225762028868792041815021679195888057155283036158729443664005012562666644349605506975265747436266068659998697955663507583318821494699881001191352824699595847580857213552424890984725040900523261451082978829160671178508976765612429540814033087327578061440228485112925145091567253777488235199307369020768324236852181431341244362294542374111339853724347030665608353977651342109352319215083810411409177851110193028096230139616771111859713707082984883438169269219069339952692965954990501287229332091386111374696231752172266288721816371929987480563801737679763842549281488573744105099305986955450381131115284711172959465129052531719458733357806053241527030781311788606070366444598994027806324632139088167490162904961194844656538310233246997526123754398060991107677645600698428314404884758918072985046781494309729309418227894092035000447784974271549660511070073770906349452337432884712324299932841925090474190447056440641975078521612249152013758965391198593419981195932259967481876405165341546716007678761608461667697687462500566105636807682794511335322047354205970933535308232524943838920180418620472518202661231730332451910509534468760563026019385809805201079392965952127925785380135711671877796257450797857877979403619450491829809530851233463233492612136305158931044929348338129253015607517002181597973674928078026973901662935860232452284932178846207895592185169617960554476652098154197518477071183640045945554958116229550258447022566134747775438821039077844838735001958643946885723440229318084020029092910790127201447447436575405902240255332795121069056291300464473137107403373881100714110706688216526652905347642018240960940110057921757777182038567672599609263749296489579294136416004025183006565251000959371763226957770383326452965934232865514791981657980650362886507152927877020927422972035327007213814668063421152226203478119235207555914648230139985351540804677814743463682797311120737890771433264543377143880248333323662076616162860509338521106778354102974663198765454111285855785982916737587934805392261358548619419294558277738852493349896090235074540997052419384273282312891729948218589470499867541687787929360195554004882739580320944828972212253155326021287100549785152524931907309873230946375633793998503616901626196848878100906708635089570807685615176467790202314290793237808246565007583005722240398190214177716778094630615003400684089475717140541897095010000492491327712464421937511843705385359682432226666669284643794353715318870932911555027902482003922688567267033477187900122119270512376984801580706788425378184230958472360118301589555213185336514604861878618354528796608468568538896931754557466817389006647805489072379495062795811820176456738010367408298725198918674515670889158662441800952713862546383479400719266827871787035032909104472578322010167338561164115450979491004252825911774419660602251389171963987799943931727132356622934499640603096665810581128194397609046870060596961625669430522825701748557005295436955250151476136889378892857480858292156336012016131651438933281165007938839949901284035811273880767696911311992296616971042161456102729778482791680143989397310255736111490373542837848566373451932969773193473288863990499863287930848586581071235419887581732829477116611552046522036880526206024608466511109751384450968108720981912247930148729577601913446134897150278547456727900231264923454690591732037059721932610810168713554691517206860686578023763355296687985970558792405746544194068133508668897444217410718122945538893552460760070104908568399549490223296915517643425880963581638042592908441323724806014334626769122642071991045590465689613862159202544075248119453409784611192621771151242127794747983838906231516185406723424692644021685560337880757640150337720720647288239903060305346620518800394728895761929790006177018574697000282909546333764814341014067333904568935436633841445249501276998885054212807685576398537758154885285934490864432127085757554015726793826474313254468941167283451829289606286533049067516669573583937278265766620634098144969534813443974512633899634225907694090565049353470339635220529696801827011417143936726397772279550685027498647489327016514929905276005501934642901262335062698356617912415970080301786473717403294952273738515110668787270388778557314377082578652884899689828187217725621862993633441158593019011172022589121696158379341575997200014328250537473863242352710273419891412908390326355985391530496214384060970247368177351778032401678894166584730222681441009032630356866947292578953204538192499326986567704937317682938193189478965371416004680900876029069989647673543513870929444612783198323180012379947504207314239760410969112189709924956144735603848968861689953109207419901527753499300024395534314535949736501884859258116363540044285484557714003124765537813554414082292237962839417676522277281648572701016455262072749274364298119282239422840218579656372468441942614750591670812574587303459955168680566492908429470687665082154622007977622722705503419929439265781150802121210560319422545717811631383961424427401753849174826307406997604322112458823610876202078318635550953520005961578175571070079970816602148987675766271455357132142506639160231427349990465474623220686756805082626015262984288812916434015266920566706143152444823023036589634149617863686002326786597890559568005986268358952559228488680320387999495032889686371773489205164812468812339068629178703691444200706337591966142987290857690261651314195844259297328660243989769986793796350438965641247841406852324133569580738537293914190975965617925838647144944434667015548522398068447116183524462630244289105351657383436438712779799641209950911330129525877672236803287377069606748773453522378031300623740584676285007705300772963442289003591391228661392570453643523843022319315321122684212429628524767892943890444242841990477305128034669074804623447305088455748540076485366907581714175603382672555554656585307429927128602684125579445804517885294629877016120184682501824212552724022893082323575408895342906913068048872968327402161265369889725848133597679998905965866219338858040914236975845591698632290663515356399391358226794391565438365730704214603983606371818103772700025664911232571906547930092526573041706498428996223615584583266148059099711164435736138713932102049286823441659581091275639897219151595466421758543071560616654275664263294641002236418473738962407142934600846643235711937059348553179219091452820659534996349144999371516360265212261980157606450098562449135531945859691490172167726934877629909000359661255893108844596025217075468415219999754923735425851583526512548447995616879189258447242727659070276663627456927716597552921090848924246357745805614952714741422812876440898300768175332463408702009395113824953821532062435098861577802241562760548787061353020524589790128890433632392186261956566882787477818017869528504937022278903285081742958859430849832717608329179793025579090729164442522696748198914000541657593047168707690284000542547733019611358174644368173741475607634263887651469422465241177681717020861741911795874919372324115852879727155790544452995342675210501927712275676847834756101588587087607018401209719420207087365456987163485436089455663240093178350851954577051725551285486102356680256868713524162888719549222716583529587557468152204996895123842981044389604400299938848608348676942747726011573452819926067580949878486725021255437672059531576168683236426508572814014653429290694784824392464152422255646130076379604124474844726952264263291284924310666639959020449510325988795858362316476633742375112838528804257984107214282234578084981142660398531498463828484618146890803998546521462397332587735863928958334661874793457375394499885113540706800164483574647260697994567929029591370536496451950671795311157403725755507712439139515116508071717193892376864735060654835718948708353231723307610005957969579040538318267584651507227195443161821786662156856185015524324444385698859649443910606319014570209540507304786821343099233960478500683304559513349804499605424594346784066471581246966200092455052040522421152371025809907083239694855649312178808349677994418247371695638059243972085436212303997135398228230211018899099859300929370012227340677492884663770160364713028899590042103217525865079360781427893963587899792327103029972653986592929302830490237563629203965495976964137993701911542362891624994582051237175398962704445074972221267920295395337470123518795347779402093677866399692684428324622337246202094979585412002938395499563440625313450207240003268010892650663780044387094030349632249404518549362146512684130247759563050039165267732948373226611625004914734099035261893908708073429811061534675431829442586753722404449052751345340681672780929964411232967248080987648719189091141461146812254612143175708207518576991286145508619048054436877220474085356656821915926104648581570400374513227138630403839644565145338800236166721337534706718647169098752897784452361161331609117634655193224768942690546277063601443123384132244395891654777818547044676291788210479545719293842298050392840425436213722285273862654692947628332607847228556895310313822400621199386127895337008516868974314089289381812748455551937881204588324579630964335441927054709097846800693915536141024333103255841978986482715309617349520857360485800852307853270439287647697422848675387997124221643531788508586136238611623430539355803756726621973779173910760010068679899619299358518383396662053545923788903746098860612357665482332185642549338569681708007290526114787145894012468489890014550606922465763329232249380548533291470865678035302648680165908071244681792411552388432650728692458243439401475240283399121867992083445957543287435569076308366831964675894840724430304317823146053473399711180980813370507691809880285928056024164901619816413533964057556296914188826005432073769934591342957672015113756912854363443129672594491316280392368226638911499439977525972002494293924586356961020751012827040012758428711931454708806778943857916128617577860290170365291366324395427224233499817089711428694867711051058148754884244759888260857633672783773849079247717725586721306645689899285515125942631090081741458228580751051943482194500034083491448280409297368219983407894759994055772648304328967739671510034510132470777572399514115755522438251340701631543033642807275029636556208059711212425405185737483389039508085584783336486026746703665444485019539465281467561573466180920970803200216183773105239960702784851051633992297713125358594484157628407331102680795724724606153741808855067018827755847842071499091706448347137220608302637859650142009775952863651237741469943878657173860055615236541836447744826624842770278649925492477674158851762795674843246456664565249669757026667413304072165228989727700202095627228030490403164886815315760971243715986970240733531346446524711187261201679115434400588706308399988353149140273765486078289904678247846765168852767139771368533962118575183647564936976403488080319535719669445113805131827107715680861581358023861569438834921529404865794636581247743116831955870559821131305638326173357858468668838466935400392750370111083228505474540242757240366184604145984837020044150796441893015924902154032201302079388998534547823810903506691945167049369699095141062364711948358566067997263166882401742757464600915436183053932969131861903392854095494733919199116255456001426032058857095986820928486568024138284420388423794667376242328399610073200458530911573735557403761960420437114677081555927757657339772477843121037918707103700879430506697530785230917595826685948737562097566399622481457507907646406585601698142753937193488772427814917940810634506811973604318320288057369411137808927871605329846781178298471742327523299014665755578548148198403765201082884269152280423971657431656094686120566857068512429832352458577530112198857536172592034799163135166335816302004664684931403558340375184349477748089908555053086210955927041856364626512923793900426883835549034004748496674517097678220771581241790583988183147934931083030909725830894591910950949016668605634294709249897918617214949701613480359675466441305259787745916474426921415209928789755007317385327672596971287851950428703835261844934884016284556419826670951924360866231734707010551139644615772565718765612284090300155426091630695422527974666593585266214600040650808218778777233038619002737490308332989293029015441780425715840633719194403809064157560528789679193865113942969025923732821787050884650869691113615387190822105842147530946270791183125435418844734942722154433726074712069411751868729975670924339439711321211406501795183258703016401436152950414057614113293865043432202840260308040395010895420529044826042469328785019282582284792095063938928577154700602897160642947442247064676596775209624289189930766660727896383427669830786137990737167460429865950066993907961376592336263181299240618736015599431069229802141852719789962279012558552834616356007293065954671294913596096540564982900885929395522408980299751722481781169687398519071825231748684814267434076913218525197300996507936614230136986352457065006805505321411900445769040769561573133542729660108445114130360081589065179052853852489683142986314497496179661549246515789031423054896030149904222344833829449508654534869747947859392372822472257811242334673520670928101696428680040140668957978137558000879190836370092333749266077548931074835055231270735408765666083565854688940573348816204404635477988885157216458586182006878817323542565884294387795949572236288890491282063220232888073748446731077516315370296958442201760148929529341495566356795846995768072593821646038760429409129753863581145104435765549583710689175441911430125920071999083838843625017982334681328310778280178245091742550774145010482222080815282348538480687114586313191276733384259949330711670798591345776988083142344110587016354704189203524378609545785335205579254551751610924136008566021796978791115204364115301809724926537831440980770413340336965343913718452926113310443130170018033699190879917472163054575668786430474726800739284157005001366870823425192159255705740751580866168529368952775482923571115804787551853601589212356251424317601183136708905069315824295113604753807354131177111662261283038648762101442842118362560078027245049809575126537755750113073198529418199361792679389759422953116165968252207114074518211667369242714569560494427385113766168270422211197520007768553776155384523482146380975935098118527578201359564524697443998892327849744352640337699894761991705323892105766916771233164748722714395111793409348282711069448671499930350224707443156649313808168570933623502027405029140255151377538193760087307732736610807621061139673759488798427983613093851152359911397327940514780939942997363356434160328660220642152467003542833762655604222787584289107307777661712329344673324653618359319337154015208032505424518848668848488461473736154409076010651903644904451133894193322073017519998478375046243195634301373988827837336884896802363404822463159769551417955426190973720522215813239559616916665775116005371939307882224838450183392298736709827567629262210769095718686437455968814476205001493772580929369370509369662218730372083687109150672923109194518286944534358853129705860805229964360121748675900053278196104151885616539601352320391231752136130165479722943029940854137066442300948950971322524104616096016858662628723014547678001713697133661624310308008056287773382461534110591191908283807362677017895100846295452299036268135854565229764231572322157176473096703230849464673669140310151294779065546560665446818038348373694340373484204700190292152379442882407706338764215483477527386456940353806322246633150006074373534192904703530306083087007440256430308517735657045306058945005498783304438811096340900675864529144694461180209204525799414410081075987352297913039791405168336884714733178144414581476807545609591192652192364122573064520966168378012363870342867832884655121377333794116554026096238323224263616605419457820032961717007092282932958707285060571560361801014362289931169072247380257905769421825977268597494946090667968280967836850158064344233783962769533877367916376748816206020054595854130630903217035269622743120142975570348615504597479526725949599582868009797811128370190227764474696563707343019376513902328299452502643070636328359978277110497289991744122697181094645225739157746951002637133359961289726889172485607752593086534505185560761679696533682996306975857856582295550640297139840398548541809555126574253315576360157356521914554147132515428728294539054840407730619257207887227978708503303299876276782201442180908181241163428173051385608895540803651818323877518195070359000115428317074461662541176588569191000448871676537950738970744456549417332667322617302223218838365573385940558698609940530147971110825300917554258475586032549938716979020970712299591124633838787076716396834545868058710908391166938198146080335628631764531307366055614213739848021185085905866548000829735667586692404242493836847384668229595161096124438966817133888657289476040776420384773751501773425998595631951690475209574112413257695779580115760749942389836531531918292608480603004898881243776478914209307139970715614646152942712445331092204217768772403153860706337269928706941509629859593648347240602224829837549663767590702061872231696434995830606663437331427917961038306852571836343705287690298486972491124291159642758414924113818207683269484286740496156381281974501953641362444833132490258793714925592274708637007977319983916095681259428865294162605418266886930065575678315392394774420851392080163876210789392942763919401116449027908276768922094768717673571822838637951253482855776249048403726846453310941490281088312362721695839060468145426805319232469220856544154399917334349998049073599937593215143014499721410931065949201287121158541652215648168415881577825928850335834859341158138649261591343242564843348916253069724729862943511315648876468020444321464690631574981035128681866375403056383555827490727218631143374027831815579017724129247668368207271663254633947044215045660438153516252367631168193600807090913692652222730887053247680237420719956781884177781765772934507737535783549604653373744697179471977680435135088618443450322222301214742515984437194027203678447611000603613621532235834131950148727777863305085490756301070882116754038190085116084977258755891741503828487305112749093853148351856702722416931407406612357082513850228238169431101318961045220230874163945130266859317414475321721621071054792779748226894198524820919491947738677286992585901760090809956828997587662227181660985464956257224591681337007029552464083536746410455023880987656120589295638666000007158572060234489607188423366007372919693045883014477358042783164967185160241372350760663528447874601887627759429952350559652431803139819202047193351226675477674509376612545083751098319392240683470278985580600076518959139739198753702742098192832567523125041104429830711296158777455583558522265858370409465640617730736613961945948666404029676873056904997081618234800503229570777477709904050719045231897644392944044756018067164646583661823337548869391428525427596184001390270313892297726424505348459617900473739825353431831614004312440315616077415105962669624344276827624021966013203480023387572860579828961842915744373347846465234303674419559216061941285912693974810471287082101291507341345140660779583192213690928760332846061256032774192587998024337791553783720398365213354305944012718468578365324025207959026715899180700586672928189803350475868836681655934973533033719477022584527940808774691144747823172152980523447472966256044572759385409941956341165360837734387941561995705786054571499415243527366958488693191724225418882105712826401159801219292833472389397161776943324620007039877272973335537714330387415745630853452157976001100984333346969800364467903867700084949296366581731134332942101029139627324391743292090678920281909586552422726597580040592940427776877973737440184078302314664393821632432424409993049351376377941918066825561500094765204971090127493749369081202543331754473645328368080616435519570105125394122738842895651285170768220614295648488175781105580363610053568623026296424220112683552872924410448507262412338541423871125537845605060132542295865829455471569636844108261967806379763469521463691611775308013229632639280736805101937447943620842355535194538740979280991806354816503429569372453514240592409934869940975935217506010932439634620549229674963156130262177898102140229329644705861900311865369096910330941210309911025721546403923137138944810878603804907063130311021642705201303807753609524683927844756726089359928213464785103135249159659024977728601471101981883314551087295736576731822416514427866952139799275695921546544992853620400739800971796014273148075707383761236858152481909626251638312119532865549574374587110330898796229820365515196361444286825095355301646605452660147303050942342221037112246811878599504732119644236681755686326190455396238355466942524206150938865079760998942858026490909433149767568126560675846523048117579098653488199410916284079938251528814680979143940465601791873613320020456785788048343248929878618782285609994271758215921857030740309584220544533200400940292350296499482626186638176627908477527501397538387572065867583466367745027121671464780695440326953736661056674888617230122836643887284800683159224466809213244048785362030875729426547664892996275723991432329408880611007063739062444058747976208492429301100373015791904911362486439437558700236468785491444964632033999105841305617569079371329339847456026351619151082015052417233461047315851088932786913483621476654311459033675337056173225045041824380113117394256843417470421145660735591335873422297585680531568195092602428341720367730648650882611014317117285586526092786285355501685671929406692872283403756777064423699794165900735849807895571980806852652091876543481874652448061948322453126153733533174363116226933191048940516198036757332124715958532796885096594784276063287360322239615295175826820672998542408803436555874345248526098812058007586350747342209529785597206263685243805586873958540073646756507326362456689848070352914895697915625219331252636372129679493083698266126867222582181148534854303501822520052159100521751327476973503635876751470434893485389474341151468981092530311365474096059571278831456158738403916738175969610450800044778507186175621679044242613736634533005293256105328982042909984263857428865643348006325685678609743313049274833541057679499259941670558289931170489971259421099101344780374146120077308823771194329149357983750839203620451703778646527725426869755453210665609055867981716369784001953005019703792638480020735769512841566798537831367466936502244309961670939789477548522211997324792978609800206841315964455221531062920259846077450387061587211118329696836777498496394644348230728304079681802990049644208859546682441883669185453187894407228369351772360727624515612852777778559527084589720534362928005788467883280723408961080839044981765452044702616042068524254400669478075547213518649184689867831319889382126307919249394064392115215353290178207827440969211415784016696342464102193759930615508684006161074313299003944194712034746609103141891330519189840172541291547733466931560935932548867015133361087184868319502675029138141869327945781703005616869621087724745849069264919314879899619265719799888820883902117743880788723476599961504305029626043065265729093574040747399607087071537446405992451468873710959717626311620131026611623381251329610815816024533475845340398947109377707769175848390737343231924231437032311642928996782739391017481727813326951802760284295132466746431006150498013968317316365791823145828380952047388339168115042686218089904063867247091109428888499044156588370132247332231056350953188378134267146683297454405355069855297824759809815203291878863916006824225582886547995757717367274995043341814132449405343268004436680559347753157453611556400272858056072876826965190248180132343503567766974657865618170761562928773515858378333213118308328225764445586445632585949192652601326444783602844111466019157990952960846382848090372208671071718123592587763326377431109075253398956129500826924085675064766196054356090803414475525879871329376512562864842052222344216180460756131378223010370548421446211162882659359401423867105252378647678386231257579151149756722281793865730696012590492035092607340443551575207645986747558928551444143521115423521916267496921545188344380661906380497386489225815198775901371702838919515634910312110267732816933006381976612729457687721453881872853950986409493664469387878030655727715435403206736366907828785984875689102048925773279290703728399195273428237585512591189967830154966552700161623440794928406723388741886479816335679832858271608032379409207918881121962090964802038235431307787497128840415667178195094385012699331689539950258870099375708324094552060345534374663522405107496813530513059851000324502568790320615891858023238961089552370339535687424100290664923725833581579905459668984558292645758052282310541751236596061509505992427197870298486957442351652567221627202795896120176552633701978647133616451725649886983520922870842618704290599352479142173964175598458617388131685034159404922370208120058467697093664824279551492726979086355872272973295597730760271675177605661827019379575643321413089150052547196243691727984528047208212643118894490304488266675750794298083400203346255197345025805521279789767403647260022217887213715105079718839636203818887130139925574651202260485767722987237662149478446969185910410329206515655832682702576046606876671486515481758441325134592855861159188796462279769917104733728461014588977901005927392234501761185780028367384895305320123071351160678297451371417418305196491728310145698456635097503395967993857606060803469679305862857837945899315301761392089008207884258515951474610244657324814351518289444044554812833145825167551213754276800360746642695041474236114277285755014783707165624422002941580819395342821141912783585517104173110779767296355010285949161518620631539517133290922301292639584749964632964766452492592432053710015189451225937146494622525984117039711647315959480584794510168389190222355375689233127045946031373816346733463143178084493803833643207443154561574193574177191795878826199428915412138156008916418990000469831759252627625895843278048726723670483392616331177751207752887457690036993020899851403197614385649295581282897106158258864775653564771081958198073781289113025718708526860277875324710113626970023735496537769256269884702024630703440148309949543563034654471656849360333934044255221849343093088553230945064761867744635337760428961776677969078328786350903627801356582017613469152250074901608767816729469945585197116027432613161879153493184617248448271852713187398640466689428305898808091235482822581813174297139072749564244064681486136527703216516724574838003005145234101357183261834759216924496988849376872966786853298664025815022916767368487686138128626392064969754792309669727532886698288092712504447586468984272393208431476772845824294396365405421955521328955029674841646039622728447207177856602742882072952734236861861222729471589064246291565604434692112349374847501832210636460170448034924954301553534757123811939946102923702592452868414103488235978520367802690768929986436528288960543682070605963290067884446630933283211954682262794664532998175152836604527742459900090072359590624430258459689970487334446325816729396733837424420362985699213998173109414206238487393261695954191755505152352698538397301391043667187274123216956830934724269811235483572232815496235134006036568563982620596185860557712547302360707799004433741781118085584056196862072832557824820695426819078302392351442328966100544020110408950126534937627150186819294311809408908464004612130200598607189503418199155307373827566855391298221516550508221976965390528332231001229631804174825321539216952216492467012349119170213669184833810936248118361835405721511901266939256294025557811385547524046246891068031732815523687114120076409381676808645802708498190876201440069538139835370339465459008335602978497931848915340613377290009775518398935625839087229699029944680253279704779412177826063414299382833003187827171202787134821305336550750376021515525826213282586526782483543836201116032409628220337316960916496143811918345571794296646134395742434186267885538004571241368402162690324963016047281972331002853493810358790506702686961477283124984072051675461706199693454589764322511512971489382358532875772906108402467563304634275675291952267318120466448238851616638377743462144465921535003965034777626176155817659628568087666782513354444565707013326396475646473199308608537322296658761946075853163622335609063756363447153797537603108065312979409616009887173118144504867689517049100552672576719791984923355669722805587588319029647505925169549497708894611953658678388261583865275660032243822330174139280064881894763907568569784115964208027096981089185147796429958812579620519431811817773868980919337261789635667692189344155765590813947697555013376000061195951551914606592500262993499076993372589748255770273865695501870644404385445921991398092832564856213196275453593849973433316483695510733110848866489349521884280846987505828185755265564140793647276887387469081667883877837948755224347817528652861522494670858524284035005582482625136427479737885168030819642110611108334965315575374720196753979257668226519563943174976033702246864073811301837052272542754713565369295659576829789267806363569810750804528561977049468303824798478700461374506402198262587830573129047130521209230665297238011934398173605841918600158775687243502576398877343812413546991756860018054225485954948506406118374838738813112515842256865144760313441867808345272613865007632099552446563260114246009291966892472887985080682357889055551997987907104240006983429307308167542263820447169083200113111796729664359205313192583892506278079175668127531820858929611204194583574858607009384117568199398959220849016063796582355623779085262109859271572633044742991556575986654850945389621025859173424678835622199200878171098319547627469359000915528403705301318362703146806401571551404816935600231830264484268154757657911989174636565023148515430235727898344704184753919032708878190152830094698591149813587157885252928045709064364244071103049036982896376008973647727460777419143769374766189823807496021888467101925892072185418554300443153493256868136636262194384403950329988736405077306925347235837595055840534138185175352709579619912158806124612190595798316090560411642467559758258163958920386033155752717665148968853469706514016013341617540445588487046659059634663186691493570236430183636004988525241477723645482223451999451795734125702024825348295475682306970892122251869673014620365192350897644333991628883804955516726751714125880286028748151511342738989377124700612585368009402065657384659901986908283397386171709672678346972105726033308810205760713964165730152817915406271406515815661661316574457033936878684024959188235849301178124446859617699978088297936241488140923606084888673634136903406704588392847725039790846869071404684905829407632172584183054489148833039373925753240401417125297777331852652923075847604405541296290491819499118584004276176875864247324611540934783176492179866146323266780043087540185652806694863781916307015682274718228004051660497992886996894201667061529428445405605210042997477486919707118326219653179731642891611948248105887147873066679124916406880972852501001138702174495716974699517685595778790117171200178942499039674092831942754569167990767210696315674991479990421806548427971834623381653297555356392195759195343482531946175191915021879771192677921509575874517389461691540550240645513618350294816589465886497952691848286738084747946283894020436004228835225956972080746296986980112544168617928810965620567208758791355715713354668819492079538995031183774173304299669406871294507594776016381648063616157592944560711003919270585346115569108570261732481064157477664799619625991324287401746895948822851456623268673581505070066257577609569296844689221143478754169315396068648170415978978525675415677415990027320121274953368571058982537635491646228844491324639298328096326828919920392729675185762480813133167261443503430867832415984926670475713724768709660674113717598175535359520576441461803405951719523862129438059788640506824733597223073389047902664332687797595918742618389641664742641019239771582162025817445985285372642024026006128726804228064987095022199755587466626675159546776520340356925502351578324283186378576098363160984141633545044715930916698749115995086579301225685448635535497830225423110735987364251163668920354763580936699522680026767233341536866159290442231469175538289722615839174836231397398651280762247604963109391178374601909830208600525414410252391452501536104136424164761944097677956424045586378459007764268025236757003897909945396263440580201967322861509354039206005577859861374657308589670065404861650838627157713219643143324645608518044125268129553276192469652638715873707402086528395877802569564645735291198929093218761867350063320151960159911258124414554966255584202285688507231869803349860214282353944928119081679965352988169759836800795617194155329722703061329723839107787912025102691382241781000936348810200917938025337092541573497077864080996596339917969257999535711877606713593320531618502223252884674317611868600364328189087664490701765071644561104124591667311506689034381750769601992210254671162232924821157618420376623288803705917919380618944992515675277195180441935611382244962376652586634082665724006232748376551297997449232471529968505218126745569233906595374814333096725929047632756537006151944532923170778650298987255071189018759874749856525554770459284725413182008583982460234414247591596007541399861071839667209956571271536459166083351681402726300081878718601282542099287114121516445747058367693122767736422939179942152076265872527545833457439983940051339675444099792300924269941913881568216649215896041919369621444507986077925330179015475482981838742677783620615795236841890947179259239213006306366743152299402172784451952256141247969623829675219884445991436088116204675512563703622153771498434618219826517117510699339297738156445151596829957315895982105450876599750131356521047875324097615524744682550976648534844525397551351208434691186818480011915904886604495199496470069251462221613455968927708275465614056741170689843960683352550562720283995011126658221954978284395862900299500338398691238619547254172437026575441182479018435713909644231552657892608702133166178291747661335287257213541759747408974790991604034942568591320692597016517887434803092356804057546121120272538687624521097919257003299610051994841791331006017553875751774431232129348658316741129862574953898265161937053094425916132771741829158483871353176582404432368376735816978412033471007122219470469317527783757729270939683229071950164208972134480133072774534585749192392342804005657597842202478205058775458930897341335574436646104404242772273685527501125447891859555273749832216469978742991271233592080217846448000887568351223352746778408397161929348841040784246247673309128574467990639786283461917932956523579597500215819698997753273209794431952739831270359423626744820691208783886210294911040425933400411710667933549430324656180890657807725901696917733005090306451295976962676294108859627872936016085613239027410459547902792525765179661160471049539780530738816512122086464268339597737424564822015020133230180075225081020355088615082166545155165429247165077161975050096380804625980654408930817679831301729313070526182256916435335974358316401843853586729452659844776878284915266429264873360322971347598653604625500265656875502742932907062114057388503403978854181183705881558022869114974289878089576460572630228728722369297781811071807434185814146294267302528245803099763869652339250342555051657622573455982807505496921121238284149145939692869803988054886617186798953995834537803683557471956337196070828347602432389970228377192755660687329265418383541574675815022631052818768401946521270722136397129583606882010885888698754641268283916585344578193592158439960199972051461983141681860682369262357414453351369036414749244444480896520418895862248363550325455640263221642100190601345585975742229669846448191654971988897338877178111996834030677107191063775103651712458793718605401782963331175982035456024707278456324704145665603428777625301284261977351077556586544163587640826476241490418650069112145113851479649074101675218722596217389526474828070720361465016986131215079341538905892552280063066364897656181082906442189451695739488899267036234995442172065658861473600454080709989633294973954167368364067808187903668554642964701446242555319848143151360836230128861675386805276027673350216614285061458504053143978838458055629391186462288913169967366748600318450011215194678163326554553346452117302733205044792136276305638429376057968798397793880070939326542957849097315773141570926501198362661848055569951053733094931649739675623743462318628550005629583955371370046172980486565772778157407698037324790882117442732314701892676463044703299892829027692562850559263343302170679171648196095471848920794641347235051348805829005654494310124751594406047517843360735055166081325193755915325194914866433242215097258379610015634131107295767542232896895348836830113567674908483565797197358784489844919257306525392515729708469434096501965033158194254143842313233271959177165009206760981699204511874730956514854604533097120618476704690651476990382408849942991015321270094193411551868120395725685983692396913351980336531440749933235766024991369570037401066061137677591032431431133030565265545007647915039987889164769757712845263557412622243798334007620358966220112607133181673915955089535618467361675233433202376807360979307934072034812008220567282507041184294990045795603025242223150221226301490741154527333439987189523012658942896094180586400636941823003067008932981093464950029134483987903382010204518233016896968826997895884588176450843047006310090087618111191499126155184579193071844756738492996929995584925294055936497979944193173058293652043407605274488237433836446474064462123977927353784844723382902304314947146696069546788600101303160864256329516463025062066739152883727351545896423772055158754507246770491887063662042486347105265653302031457238209707405444855462351526917473418836126272761507858410984415208335679528632988691616141479505625400548882230684485680346748554902409030774591130147508938154743864216251528215535753030147600845843988682396062274830015738969634985079567207059473419205777965570908307597462527491148782153154576012623657678604464150808160791368663696647601411686618790010038150552499285137937360048591992424676177734424722588497108882121222123069592430619267691197258665210020252704726465606263972599681599673934834190640402159926141515810208291407953343176640657616019852308622781729680961095530220356889237076235372927409267594051202330466338523883727269719922577327367001690236331384609606811706771612348896184377451580672388942550864374314207097066012617139714441240675231261906292288334285389667655985580976251189380306570024800162664704988414696195279195739141941333603037442829781392142723307584042572958972913729267625514403126287620114517098008948272990794684476471866542353661227361010644379789923964048972671962185086289800537036416050938125694229117744085727168863163802294898626970586155367801033356948213807153187492400058038043656661122792080224037836715279368979441267935258982979941273080885979012992564272783569685885630454314796940140277250811008498754781299590474245403387138055028774646078450116867930879019408844247789014864694416317195238806787203357076196848176197062605107974988283131326798187063187860460925993450044075420377913448976859346402865770804135194285369702973971039896948405262409863492516526319566391977435066793459776356766123031791427541114965863028609657161350240518515664478532513449759293942218156580056049103524203029176220701668945196436699255663771623339918547480347325924262462422338476847107399260378906218061905650467861555337177541750301737286146990149387249282898608484288839722548781925635142378156581897497561079598923959351079231886743661861735929517067946825934708875405040090168351258778325093280872540246188603492858888435576513839247011987725667265819360623296288078089664271404247275063135058242448115613956222085899396597508702765585327864159842145645197717719046767909738368882186273505675505397872497961534834073909809957306291330348064669121064593508993800844241505520555310609223202405818893850498389055837795056225967683414710037473853973509829986714957078006400323167776574952557017783787662567534229240085716241886772326669385116771720922513202043758590114583030078824482620728051089513477825159200023677083431551500597357047490513542965662169272730538720686734264683706985839804529480513412498662464596238517776331778244606559582321435364427758604081001226907932580004902615872866688498187149519416562248611514260662269009456442913819406074685894128194169788567990178614953423879643654127450574003775718771513471687414511911321852513551284520250403693268027782216541274465702819098499426400339819965713363455641620668228713701066610617741149193322854321089556619861517874954494930659451526304484226449554370059900901766789090177303532899683785890687070219648504699523692335429402186918119257173464381768471680108864645503772332029441790662528185834669093087283013987723385442361864666251618155308377322321472423667271322599641628082804469688261551715296257800836060218572873871076575215778172449364901322590130226867140420684037746234871168340904861265877343474363789811706942561972731058501487080541677131907664126878815163832324868753280311812416116322638232636047095264828341321202174930828435581011831678065101692023613899997057812546052673150312209203005963954606800603953743105293035571429105712003729980523267098207061909202349985092034748723295969190712011092486283695809531412283300014383450155483255165151221806829868961203716048592080663535352773748796844970830057057972966064898357579832410097113572032451055183999341789614031780496872539404341533890719304742264343155973203690674365405593493155972993251064261528332917917796576568401896781944169719647001803638245908344232648912818918402006200253963619601930922171179080045946161039177898083741302876907981080042602326116253971331549767419262938788142884709352754774101609366246095078698067668434994035320902021941022172161621839710676766900781001527545921071536080832319538975811099247235074929446330417552531826506916087337944301887765446397315806940548166987469134763535977361234095336171792668401555964835787855816052291610309473368709933815750474464468867498284115329509398561813128809714511802335849560595223035402985125889251187979139838625014094619440071390169528609675815515752973679755225150651215561168996928626727018901295843055190142903650818600622111342168234226523901856359317585151058697520444225048695226209275198751583290835433358264514735117471776651212614254259716484330038252918687850798313097677338249537232016649631685415021990447700008895934052330120407695876561543787280510076645491464929884054732783486113886340454219128020464698141896978998331249410415087041991285324350092884533998997027101386606509467302503997334260904113107464416930919517977518320314572088818391249261550092616590920883354279600183093964491236497079296544847119334194414572646955868152310148056178708115571782793155543458180489050823697734442703234215754794837832014312703812677778736725736931514749857072649184707311229998132449174800619547511224751183663308893600597751979552129009130054428831889154722505608251847999196797182180932751015349367179228225693942541337154086295585183705104580436712797979546878357949693645930262240502653156193068346187603664655803047651491543244599788879431846637481052432429066753212605902646525886714935134303813957454779303443478216678057519179811650473390925928100710593984683160409892215733096103359544665849938746011244115811323327827917493706341844550109428505668753521538754279656076873998234332633127979763027250725781640915484521828193693417964376366345948326404903505083959249406049605994444019489064833344861523149198479586425927103508887961205818421828261041275813561058193233794706150518225201608998400990727704112675826922437061376442462936765308666027547957461711039619847798586723802118134459677732630231842733815584405823051269951122334359309159652494578833741968885446788172640933984729131149257421412323427426465730083857262144038247306286003933438133193372145678148692405129969501812924338454287270859054871784633060285732758396083740748475032028246827121993973273523017230743665102499423344674067535494383352535142065873951920663283919018570380679258419821161401942987812660220624793970264073876912488810493408300250985825369497755200617796099627590610893719927883316309561544436686840068692026077463078946940602567338564119235117985141093334113864216707955677678214073177687473005108492838713083081909863858377120621763631710479990237234295606423891334533422750891490815819935362577109358381644456239196475984273594026593047559723473625639414751616944224629995160889645878530486635695038661186400345591058675242389817911583334300714279269388192338087269885173442274445433036947363978451062102073284646287669197297405942946286975078264369743071970742672850222260940742742319970932578009866987245856247151555911225548636313214965692559240693388678064407459297318111972769756813527603752888209259825740411049180754602497933403174718854364172622630923685210992827692228649786273508825300387047140743965760083661632865451684042116314864202308527065157303291099452855759803201082307846207637366015284256812508062942014338911814303437311659830802317990732739623577755549315308479257552066338828905035976011486778669824278572481660688003149621505521803892827734769235715396189925135805876460269314441059850361858068481956272450829379203286024816406121384666137317424414884564663279866222495453192787769056773534461921800214296746197701053327903480851183270033884024157458894198622402094798922355278716256051307251408931957039749770656605549823723483082582348514603472054855040229176646286362577003810807360637856899255041435297589264026307228741975994057360945184940100023634485681267292012849644433668726502550990988785963233308685535393874344170671934160280801543429711520487875071757035928472248474167359715189021885002648296339108005005063954075304872049488801135981152155479347061193701511431001537334277523730020468085214010326012074977298467822218568716236648641940732901630505761066176540528145990286182682753355307282949026978196900369051593834307288410426670150736111701450679745100220102058018848459587475533615120582614191924460098561994287353604235040619919788798801446977707649463938247893881140561611413433344234013781237702800189114697841554131877459992703254839836354301147454719071115107641454235697769814786520264075321011491390589974745219201138539413106569734292257539495056242527547077390475658412129388114979983204345204417416310853995652584792822939360263580535870830233677334190667235582478226138873596731526743912430420675039324836730722383004816879176099241037156072389188182320685721583502879634149998964515106858521098721619954853571682814622950198372383501035322120633455559968782750502087051726226054446257214043237526538727385830437626525820645362626919425881348611752960087315556834655125113473201109469355926106717975018818225673910364803095591951267068662491878675722200397692472680562167941994819064094909614922675010642015139612384869003233050335492532354548697349248665328027807290131622259755881349205625745309527991601160611947618265375278258848221844094404623954577370316734470038000207767412420268710070949685253373454838254258087698439299182693116682061225746468764765156344765715205715546331282169990277174140767940594472009512594669420209926001954988302047078648096066315327104770523162703837473592691694945555849936383918354927951361542677154874677876318177101335771123670769428548138076490710158834973129010326088148883203935914548673760557556138898698487585754353947080824689506238142586717608656711634399450929803480141871782995246920923273277611455391190504598242635165070504487835129168868484783628309350313786850669983329506390424106385725145195489660087389119955781648702067630278639439756289260049360112519617884552709252842442466510676632570100339177489355598915464666892210823287014247850999701130370425914920432342802169077725254042647397017211747730204848528287637969117627406432490199442075652765592535624574223635032735199896387875677137172315339239260469199152017483699281623060322796815897213666373957076393052042623012725503528056501456193411585242052603287379480538041693926564236777076880591197470851562688828293907513205872594528454726892265207173867723798014744412731849251823583430903494243741362077948627432366627479846616573661209684564139208678284672981711229743326057666032078166793084152481170589812149155664249663163630861504158126978049477834930127778929636446923292708376732037703448590587042072552113386385873513858004565369189129633307936301485220722442461420279892808243945368110112465882509948598974306512871132295075180466226746446980549891630261820799539352158419017392703129139939025436138301983054720396267328580179179153119485477783400128934915053255571134464024891285549970102100008033361091090045545949911685492296041722611029063382845148117078970844961853534399142343672630477361380316098994983243628032294828445801957402376448270776206473229517168173049591935688496055110698552854781290757792460099752832338497878252901208816401696635284438339007968629837403223775790583360325746918391624243418956096135458105265641465741863903810204512611679942387290979566118399560370778876065728733981848866834098612706063128364059054435423264287025336676229741357447378996124445537071540587107729491287157428490857612735048386444620131873456539946675117136517706613814824439265598904646106754520935486620815168618145764555047574170734859626670630417616154225492801649722988260933823684169696587522213885658484277369804511587559045017327865107183497016112585127012908979398364141694429186037082132190570303339890110706564177630475580813199482397924884861398427410135365723672037089750675806186945026055620101753072392981929569977917575731744989850843342519053321674418052839719423602153221086723750142776603003225569791663538122788504743421107482765245093929583455780031728342920661606681311998552369544355439786567382131611710764821091681563252552041742975215085030692484176191474077256272494287417559516938385306254411408482571749460525140761149115434860592504251740320937796234919267647784656484167147368392118290040925359129960056999921675496737939779262067035517300211168067439036786518679511497884929789955476218016533903344184470580306045794084822165639297169204648263817119413879902116869478600963716123298718462869553454153557152804099787366323408923450800799317220688752743633021086770602057685677940980929463873578942920821504735974763831843701030217987663893714721341843393942307100195204437177614736945651357184534193105333701264485138498874795359695825720706394339867411215501208057477235503878399324982290018172556676070539955690207594430115541135187255462716670342326462686571736632625768366290355609848867596936377201680670292459621218659174786895564269701349888035885590675899297836802259899753932305171728019464552615903346685762354464125137826059208942084844122718486412568140806979986994228621338745360618115267844851945703755079726392801268031521317969449828879686457296725015412938627530972981917119530316315686092168243301251189347712265734270004782209672227025279904838320817725907058788925296850290407390503565862620567470574865395763846001611377753870755558945512113739431152525488615650843605671913360592581177640826461562140593626147126292899031095899156296402822490132247037423886469825104979318776447550675459953058972362479975349430065985803482704572474312724791085901940384207107035431855524645987197584166880522321922122824008645814543363312609376824383651573425947863977528264879515610185127356525807926309279855386868666895796891655839617956854310795543116748843765039777827672739265585430068162120250845493950571934900642226781856681501638457902445565120308109460992846718185737407544807266278453772086185921159403452440693230197322587245495585313645616247417934771697006592908668859748767161129420297526600516131031306772094063492679940337843115327692381789591147132170028888634902161324861296897830953621465765338630017960069716087078662463268328782107092541323539412159403439541970027889439349296843298330566427870986951983512941309254180304975390245988461955947571626269408273424606440273630986143571922091813540062605278028838495187247405281002456580314136278260226364799967697685975225133942829334171245721487356449590461309838007244826307764084580150067687090974645469372984491657044330557052108488702822370141408902849033947151868019926525945701210301795271773290407301702756497683893533648878358338354371718105099247758912256710894801217430984218939006433250400917362207478727502945556828146157833264382983285807568636097712115253492540557007517481740064517949438753824710120853315113478494390165653932500945003566463081172644656109490875064937481379037232465241601370862844151146796640826513927186388011041365734610393411788682684832782946212227320881958959819994122978488108347354999854571054270184242020783867265721322148398401107827142525318256735337352877802781288526308437346130061135795366856184228898486469620280172964233416991260279863050923163883201104340562780418223475670189448804476344442806798966062548641158276321710752764419409386236583992701357035935955611194973933514100666015916591048873201589085389350669730282388191367930762332440607993299253958482084771271979174587706219722642751406138079924348345727682023563480451524808415353267524629346487896488941761460519092382245945083058292119771332179119602631311517902032299930779348742671662039904416422052585041473374089313026832814925617117567081639935620916349427371371008329523593293602138450925607148618604605403051223080381004947584387287832980463870966226668285982280191678241924444831376981982282126830729693994889095734926625727205728821131608390836053933084649925194042335123066968744730571261149526354418950301968003754955357934854681162217797065191003528179402215859363792265382745837024653012318326294723121725647805844176372528637278490314408314022693478852580767858941557575139041033565834835137114419559260111985558368661139214068378529841885613643028962042346779514461159878319318710300753548614959489449088684204185241258833713867786555252879204286437792537329050338409144907395789228210111140674118866596669768079447804058018095059813379422644946594552994372741739023993945077761543169108134061629397222184267580528158685973346801577363256387895565182001888385742436617596971873045672634999014062033785138025061714710948262709179410441206138237542644835450893439634652650985111656857341333377116147042458487634914183993966694143539483272851843701546020911712656808126989117817364362523420651625226869033082322690540014056844648724500349560660857603920655383017412334561202257473953557478651704211523459061508737963387215659425682289651238403059756910548352787559934604403315591199389737042489332359967337047554648439399052309436633747519359683563473355811526151375214141212325593824342193243596661006678797767983944470058966463350283268087421358982523755877451615722683839952449651741911227908413363720056156756740411536707054332421372133954194360770089694785489984608162236521251395315330254586211211924728120768774869505205927313192804075431940765491664192791445059182633472490804256347802101225545442248191661504755281305939062562514090802230262312929106550277789440114033718822160948019915537528718780352124119413505445530540739139766815062486708924485956912394937300344566720144458513650835604051737482025975249534404288964791406246924990760514426759247735023279372061468183353499049201076724631123302332102880922344307511032922151007768123764314726801249997392829503039155235338096564565064081408919674859579911366661638071597419823230122937861643672916375781619899777685516355776123519737907101656766292868460441412749541206242905506670999639568963645960386908539005711450294664991739883867573913668831333706707953696060741610802828319040481609856515027031579335617114614091873148314018163734126306949215670964420757286016964216146366652523760680680078143974073898313076765778330227272030670746383579062860253228216206453372420351402660974813269508757374475331012595621307454651917379247034200141185666166601098352276251829880529809147389613814881685802284925801800794058403495156950780963482029745576337872073785390226472521997250088173519048005972540789520923909407661981987797728766853745810995306892703564703788467788947622180395947749092487673887854615810977540527540325289957048494960353048291787286001700110478738402402670590557240616180238896965198027724781912285774012286942170616847217381989772255637401640984553788804825139249269925225764750362548783628737578858433119505948495718068378580221440200838859058917484676533408484357274888710155646463040221731375691808487679636610446822134040895312878992671620890988655486918498418198588004005478287942031372486539402827132140825491700438466902724015256186486240338518594383801654093890377853783851616863189002696502496046263077331957283723546419149748389726726375373867565831238328668871968478039083048491660977712655043885580108256824290071556965212166087394430070141334395794624348663408929526646279669292159846567923440266160143042954064266478456052606741804779810824209575611447765757001619954546594666886092394641100278474552755407588750218457736106806610549519753539605169823468555146091005830539747760827941908085614370696594049410171362638146747594637538187139289809078301055230874059946681138842719340906253519122682415854948141019096060300482111526869870292335087923660351395899701179757977147044178519487052701350304107509512945353305589124097563163039863204132858678004391257969892398441993241397419832242194609707283382475601137656646673682274568434301442492124037567170347129965698343024585478732895442318399466712084384554925459407234231336022978864296250760182971903277244073538287688957114182390158465183147738441537754393889205386727840525331612870084184557527818008035182037607781433967440924956631863315063389750940388558691516881718545156745009330044148713861559358958695401196070967602968337285117350203479871226517151694005326606405859554454301332271847337367160581158486408439129984247651036115639101881001593824489277627778232932488142063918715282623478673137131908063452097886763377234051720551779812224461260895977573533996373041704686112241238296572207122053924653094357858739513518604328124416587510777018813541048917393072109159518057505343717937814227114000848978218745023989830322332271386518807035669183446133116365435033878071785843277760802777752194488698220562866038175431155242271606839436989827573786253751867363763732782555837563378011905896900434984589106703549901778007297334394546104137262682863774539449934358693831314242786289638148016894280487238782912120877877840946658794676875889584522423611936545339303795939820783568135645804271824577209520939148785461283812060678746424736217685057059461774374128513174691409099539506329160988081378501717199927742450125577533285158629509665984664445829864671133426884285106634461613248715993612046273839863104142745304446159757995662735787667521048610156349850742963798488100389129820186753180172946475336828856669662033694478805001812426553400440566151942319533951937285414315227667319121406188652050147963566335177095106120550332284377679442308403069494870790641312178049470430386035647483479272848478011598706820178352455693646833660056330643403712868087647196090466356651696295552351246652801791971733784276459597136795774374461611243244139143947734500387061886876214600810424245248168545140482955947126212796787976132493557692339655529394010708393486295988049800697874067337229202988088291975304902524749919123031288129695888902108585607076610667964731985809207037069027068758669113015324296597876861119271633402406468799644430815133056843719506083715989638878124761847253743217895057071702544905280357342055271465687338921440888350038843094130790320659922585433739799726183172639902732355734967196419555613065223527974091121071365703056128452955517834946238883118354261991099358251659296792995749187708032716403371806089040224825145978118586995047769433181374785946579547501553052360463337535254667756370994741389447384852800919989299785521351852233686695367123461379554067030800573715952852735536467727272543805822535077565590105751928084336377573893177468088389476560222128520080981894094668802120301307655712729701257740882079281269946843961033156391909967904948717337923709046939180642618598385741929117229597119538825157331621776681687135083068872592026752767543961478867913734526648788815826889777089431058448452962376240547187104004162558711456237154301050015108232721214677318038459752439408712460750120271565746737827328344313702033983961205447346234114468371201070812712424507292268836702476651906886500610399934032946694749133137166091656435239384602322200587794560776801928180160008474994875917254559217513524776999117219067134051824546825169676083420326918996305199825166480722758589644818535523933445158225361144102329238538108865212013267104223059595674013480647154985243851966417430241397922747763985446391759558600198292128112789568286330112698141091091490888747829999472857707844640910410781383735747452561849402329935294458537057154637974905108351802659096703156906752634370014963910954323018437616551599685347904229356352554196042773948185423334907683143467444420145099278754629026441771234946306760243034105653324476804682228428707798751127029963840637347003509269168486662009339451413653202380669593189061697015021076843871994697490469652089876930917430382061560486052704235708818397942133774824499838698478106402455054847683347389316508039059825511987302834901828123609172080385852619297136787188295557341409580442684240144522723838436421108677669626228571730671732925925161309747687791217543351301887192363202101315269227062818432624399111286111270863000846326135752268267312823740061608584184680410888327839130705813802772265340459465878625005500979656483521473237224389900007870096658233752279966154618108818996555399728402095374867002469015826673778634061806984381119250831201000867456009539874186846107640230015331879878413070252405892943242996931977702728824595806056742361695354131822225734872954000967566936813954934342702208739920205603946545971020438945447234993332332308294195622750045733336856079176099383189981952316568631478086447559590598591166341876267015305917630253303879384528773076650538839755552505522229704608954838602366698291226870721813306517471610635462133368951374910477626660951293355508268878587227829861891877727221400755875458237521995157080331515152343207258522589484515946815502842912208708130548790351886096944877838835157340360670823908535965380056593810299795796098923719462613632544987487342963793007233903758065683172487461597842650400440947675938180410126902562629773872067117041681724346954460501633905577233649524079414070219690986724766493728071427108984764982654415501364160920622085763488796699176034786824865506031188078339402258936712058737772638654729613215308935513818522980726341418455233498306489717927032003201337624612220373645616632881216965215283236286894960712159068278162437387627021658213625147682787331529747454788212002085978829404198799752434750733054924634488938765983660413847552660187315208821856599305227929269421653907159491350901342745454767931089317279201533408918576010809905904228960858563715631221937434046567349728708380738285446401574246314975180062464294157543944559692383671128485636920872115106730142590710299158183149632264558833162374546199551581179540716833213570388863926066767856099341722258814457987430932595691124375763633586280958193140383089686153701399383933937734213406337403791392241412887915929521120519447992301932027287075750858691957483690924917365634830415374954313197715811625057863447011692306245091506216864964339158308629120325426009938968518047932540658798071841941514935228724940045121220054427953766239538929872729630713934813103300979463837718208746686815369074375542426442230008401941243569279157258945744460973248209747453158900024147626783960131275310028551112223478610911665285860882162841445368981634587398049878383278568109202962490645991300067539656447881202291975037404696094255700909402484795906240705259696848637646594843975213036665696026514410188917478349853811455318399694387080499705289887343809242062286059786442598145965654756535320303646848969379813615578135037846927321847829856482702429192367367830050591162281036980169416717998849066781146247742947734528337652668074891112719069776076472955616531172348491287700675043389135439802552863977023630138328816027927826668260753601324828905068641207883694898565265044484966043833033034657672071468421831687882250934452370597932150778942715901742172788269544667594736322936190205471636667419300226989195830662074140052797271696396425875595340721246795376666546906259700597328138062459294256320008488239958158222449512954212286431466572248334755145582556126312189723067449459655260954244341362298898121619165053416531013703578963008211835432205443423645026128876065005689733979676850771230129859575514493278828493563110428943730524054955734343104186441957320253892902663593050626328682130278001313634397711242502966132138378016038024395397841997911352250668801586877912525311118192722351835887334887825433920302083478397849730729433558599122933407791872622509176241015815612881979583253452353885438661986811738735402732442098699971267305507440458699150502314687381178518292286843555154361094108644319624631305848562915343667219996072677370070226769444983569951267146204341878256202159703377612666826109387554168648926810819882493729961923604429718887703734019345372305521360797066047922802711957724637804416586411458072968199663106455151496315352873120596163177895649022085567680809343721233054268068280574792266000156857386624677952608648580826447232700426485199174789504039709050991747570018791905534606028518837970721836003820290798073794041566749414131606805108195643740031475450554525555897605436504564047812644199032942603084943502267876774052241547369596967009211168457221912061066880830489941695934481446501536849412639687446085376869733307151470961372143064523095186558021046856387376743785288620097796206550659496960513574057957993888477988224596804624078465613248864436986404032628823904768467044515567829667014921482835181993366979556277856832490857535923007427913894408698777393376676877101960338742946404129444479767070085180545841109926367631957727724754867948186919497057030734171436915110730080064798814850491574810000770495898968468866074449991997909099413373120179212643292843686705339954332277449266374141055695451757794068233186075947519806369579400984292269930756874261462914548264481651587869530674629607093509098088063336646475496080727637813668272235027510879177301645529295160455379060851725734014433132939403075583963775053681909933211203635615975498232004054304386286587563015964965685376007287760203524474517412619793620789244783075782314374134128819563752122289850222832707951093624375735452052311102388063227922611575057890570857708364549550833129530582666080370769052165427558689898192802816009270644108558474153685397418179914414825768911389694976432603112305024958410915749809611209835788855588942348430243924237732455710765432932707045388461011642677943648841526810398770188477827906803535482755780874900314549979065650327489619926321602714779776617021334285324426540730326296700610215230632428548964502049529377859481702740787891871803903057281172576284643699218579572533566117767491426435690945221845348340979567698469653965101187769348809051504166863001629855185775204647394157298455591786700576681159884183464752292025301024967846001408062982452156199546386902703235254856626295868101266402565989969671062144416036422652677849127540801218864863494040670249116036783271234499545144780722193166294849846244561704345423464145086288228637676385824920564110252477932647683660501785250067105488460752350416418744980979825749389841568560870239670003387293532205291134706491843424920950006258437734849967997006229424340230898577704016279630244499423966537137588512500582278267552072870144977359932940685026100023775467045116082318657386145393462074498697388006118274070617113581230547730197723996803694320821559740676143844322233647570901755010906809063821638401795062208080387055307319383797486412816776473472483129680544189100533699922520728088255048128745361075653759636627544708106599777612240709239736410113071682259315681262876586233173972281099256057609159764366128986446080916885588807196317903265952926252675091429950549346116832364157155409187280309464847990730226843511638863765284546409972119068972274018361395515749272212577623585284814378410986780171763171619684254929658587381877268925135309405608521156132815642523724037661953441503310504587525331874707617449109243594534378080924746465539725747091823249442682991649837480862427281896297030944890620857497962624836814740508334430236155328145357946250751649121321887742198856147406248924709193236957785538473403082252243905013019826016151812481122507410478217694907787388283148564801654451378129657948057346865894337833029044221672645368560645149533034190036166471779001474302169615283661050025868165956254292053378040165233835369516389047257076451468702138372410919267505277093176790001682265410633875261210060068032199868928051709687723833125360715292879279764391383743904417206768462889438681935982442803028081612082443672992570956741478108036079997149745281462312561772679082437588797746442782808301002375397816799587429947342703532526683310062527407079605745418568417887452619961809943731332900300701410986718441614834286801664215233872832893166329259663653153995378370056394796208673120872280119150106722185771759919209231486396389747798293119623402515206252847678925820658981820378096082476103641169424378430547281912397536922247803569312658944755521512461246263691225924917152724878952219506399149454345307987234780734763575135068196984698195520325238061022792029913803657263198896894267284105355578767378722271665460987834787125753868982924185562568198126863108677965728550914816125792211872611217824198597662628844378574373438839563745998029085007742263678379004068249855609786629701470354349185309249611081214133682271781118204340819667497185004151650760274213298503599230652919867397217696801552175557302302526173912989681664913623070713782532595938157447804667269995182412922408873092380017695793212574392979842324202644930066537156779577262977555434294411261436517842111808982769476252799521943542988200988514020914143353208852724679443457523515435573874163822855442398544770521900599695101767569556781797498897002787731554439384240074662044365656666463356112780857024448959468097193902046418953648310894718961375981590765681518614995586449201721618236868283713183929188583564322229656307072115922519791770540183719694087894288695064181451556471732071953239322063630050603620636533599983301706589679969688488815666713273562940884918863092197294510129518209527975763247222632592543216278967382960394511430627347884966361226968503385692832091900618980815073931198619532025420902181213341219920899333304707956055094547101131128535029415478290813299499953539565765193566642677542016673021821998136343268242571452557226440872427899991394480738797063525305207741302287740418170183541035987837952617860424620136841724620397250430231860263492666531810167610637020480648367985725744871484325687095309067933021262546751544319542823025430157574453387495690837722730227071831557491226138364955022545152224241923800611951415964287125524570083671845324383901835047161438597611642138372837599089848237950148109099003806155748542306117327986720694249041812197829590705311852456463654307140373105383420412122390068316665323827429097856962199322344506192623005773749470800554452748900355586640428032286445089951866659165832663013505710830419672066592525305148857573073951473776028600949412510752231152423837509180834584048827890460792208375353427092546687138198553630455033057054748847376850460122777554539097079226330790272541483903091528843349837753209017840173653268555154709432956707578294378176869926324803431172420199141518960935742411634765042516441439490451867217087925876384198554492996044795485206718416904117641652873870402516781221433554286223854900872379717418957234356293972075730642242626153801977816462138988483909707309881998664752029035723475809686453188480201980431273682695546176087992722398307100430635478567750313884478081286674991954485927316120179736390928249247608525314757024203625146193449772625257946893013967642948687198921535172312794189073507525627160481275009320301388399523129303136767729754436316377243424396805246060070415143094047025552644740735938511766939540037445386409239063557323401931366341315565226441825314209175759100165277090142556451062562135153707041744705372661813661428716266259902833815351297750616672303511582643377194750316927255132074000576219122939862581710473983876921795307197069590740409178152266104743952486830579495072931021221441411931302343166292937118018713356454155069128193618804047276840745830182963468868924357008445555768430434697035257645400508531024825621612354531363310421416796383893836261124722165173455985751444735651758977316904830715586126796031135773911855415088744425234669876224358569619269171329161803942433346809714625333423146629908587971364981495170701328681581179258051723174691708671640643528984069685302679186842425182189762682635644847199780527344891061522513314991001044934865690613566281230766491479442084898269496501874049489202622207771704168564641781966613609198050498804703524691518825035986994249917901652239337211148528137823597789472529017970065622149543446405364700818762841540417724498010502794013561862792078719349461960390444352352338533463446195837963124213471286933119814797869505547717081500306017602550658666889000553315735395417326371974469707309545601383563402852818688383114469636789879375057411436454931744902795091223054813449359814256337198366809340171426801270407198507150201700823687692542377672074900743304296507214955340811191712508250507216529505833289705811408547661842464593900892410914286538842074272072963537293190520288408616796090985452572150804326906119407578885951540311272428355524181267448559463395586789466488180146991022550694680368245375985111228450163228757202670506107315698973290768643608505582806022041096623973630170132051531027514660291099624655360458153995601054296381729108240567000838942314301638496909074790449225569484054364740532252226203880555894868259333515289108389809522647567605860988367739971667771097397860273515774992109763315073002271462768054784583334575468963834115350894822251998202142082763642355517960058418846433098184380244380407308841157176611931429099008875804075897228998028531900646931157036533710090820071036850731687561991568070965079631802961880256981399322067813803585014085717664639766593308089692215281900027170271072398249006254637241797634398138788705344224200312622837221123959670485092618590967882983214438819688558567993811083609643782532293181744224375716081945490740371745856842170028969415664323751659663947013082146569620570012056319508947109740835062312612396624809437239027984832481622855443539790476818641789651394199971019877735101238924380744614223606352961368442317015447156975246941610062607230383094615134405326061562145954211412395026164906566201057592655361504899309570827334513600260239403326257304741619240727782655237570796308933990365729048525920008902834071364722909031966223300414699871529961176231752416411633705001577407871427096495239012782515410533227166138617585536930100735531453133048773301099307413652201315001371369505534003998043165770555160716602442193157846178156597092426508850218199217093511687554313057744382991097893313541330919656814828881126430420691070352813341831450910371484365029967541278091886276680540926260877511007721731275347000634400479674186540208926721238612112893252954680059278096224204548226799980100257133355537665938893239308372369693969633370717933732096671421296465672168177138308274904196404961181853788582595183091746072057535814960872047869497568577119720793607352234611115361028496821747344282126761328116448294165995743804323884920347812637740637332808463087475647771727720435100873105208095152115453435439343480629289741499537044339871916758843730526729804781433722491466633133882514922889117396386115589084234912014397339355832301693703751639655210228771165492335867438424204659504985690414940603153107677355365013668986528221504407833015245310724526688779695857859497065778596617331194253587454378903016128524647181432861511391903987177802038156932702979722012432366172683222363079767276073390252536142111878909667302330202770714515816480798835554702252359140470343863703456867793718610385736360220953919984106424138932555911249244704352520717549463412981547859429034931579344864355161930629380503908632528682661706858481912605782219689708948604246456050488856220715329578734700434256104098061845535845400470178843903636398116474172447888256140310919190872222877529601806974621634011088966683217503659361651155336589139452102583402542459582891477229869947102535618762100722909011640276939956988872600789769234799032731266200573217368170790909595100766383969178821427393478907769560699479549631250615755850747814069430744889975557262384295477272948914241523587994344146587545454254133747431131995380034983235202694842530209029765217846141072866263784766115554856984642103779922780743614288696154605315610127797211578834354879576998811637783995809504927951356682300372916177928025737594255469467259283506963715851710975877038643611805364066032506870047061201657057278830722367590788005321185278464018646349204749590420267151133422312392745928460562279773386865138560822213385598703278423540050184248800708249301772863387007773030295111180981099975463531620050795125904880242520649801104092689555627343306509761214935332724153222454439566018615084063705533358306145439574196578451303815842919127490895198631046556770890053583912169197549103836118509999543960740886140942497467268761302333403576831401326141149753681596317688239138958039429046706638324611635145185668540759288450289673114198508918886760629660090144458242434325138726524014975897329783779279562613497260748291646387088918282359050788743582879829366944498331021807670096122619329136975746778911730883712005118483384751829679035012450105902192354196750739857241748927064503770024479785148074403940062547246776511035495790187033498312708705880093253275013195641816960911521504714482492441714815017227896970032870333693243183075442574122713387315350594640072396620676520672126058597033732747060599726621075191334505515188792607350980976629408777517429528993031393316962146567468475485018615377782071629067581312489293538479359496036837134908854413915392412527526593748636022053600772690065789612011080991775587759357521204627334151709990460715500368256745608176669878674915603611080854851197452130231373119430964887100876526957692248865491833260078739503346047227034008182365088523087763910144713469948473626514261541115447088534561283112708909322314825860934328552929175865602795528301182495525253722445698342639958736562572996383028205516296296892021886634533824331255003750927229324208917070959683366619959892501245977751744047354497282396189126560487793890131706007398169530018796145244709242796008229931717576555965265622626379324409304986920773351359598737843898628849668230243911347944900801965671998552905614629802323980270510687165877960916838266544578332119695971087475124352445030704701045320172688272020889429400242775256952944853200872577202708901996234945583302377102811353249788021423416247439370803404621146917600527597898331004241662930067300910460177466456954674361693742698608197372561059474050538960858824194759507300823957730523235943109674032860824930373555592067355202615378917646932143188488331876851021336746213059347817657724205837602082290251190517076019637630573021518822814992590719806455384957321430809601909149920505014862442281242451050763303239267076042330201767219932409196912010915866291642203623533021491105799710050932360494600431497870747634836833287451142438760000712741405377890228372916505099877938678476847821204801707285005849770306151742477630834369597809113248986589948651425061387668971417410137735085508401921557591553046738122947865695872531102126161321295132276567229824421141448193354401020483973173592795173062578055321435051261779384071318529665306347999348173866788163695524497659197882094215605633938563949671066966129152032233339522481197708540294472890967423004056516744767784809299891716463012306021812515709414098366765508763629031600437251650416672091053046863626617526857903503790833175078677594149089221732459066230336098598694619584443432050013098006868651701583605485369295422956701700003211606580588573191312555328779397535123370995128285832063499659147431183525243984133840457347010438645761200617059519103325040001076662715929555265838259878601250972788218408081312926311611561611500323638078777958561699711471278310461253318346013022720984922435762792589293825617875170402577163442716124287251505466424603379270443208938469316881237940353608660290593451078738943454537346338036205820026735928160621698498925487825674521009146249262117893437444578644512474972101612973767463784442790297054016517512884714855167122976354806868803884326883250779541712685045460134886796323847062259002403214687395394474605461195961104647952875162189207553423943902694375114610725849573333158845411680337976873769754063751573753288112260798224216203449298341232474469572342792176353900835684170300339234499776440799463691454118653505556518751492847817458356349967583356193660559302695859582689582594886470190424081537613145184578285317558816212945137148390549028697366808296317309444198815751097347000147540225945976401690560393119720792599196884467117230553109702673091598697064472103544304913262610895818022490996518832211001355874727352266182461456396342462461630702140757343715432822046062431375116245309715022795175718351494037049944099870138085582024464831670291823401347172124577569185221379392070821445111000406016136375538398340245689230857408037828201910914826334044320031104825170098233587369149351409154810355610504587616164634061274491078653317771040484014142547417591611143460321982162734595435947602668773444079387947465557033602952341722317846264208561053648942770027160059413309203171406063440124929949003304580126839761089220517064631422782011727563231278557940146569793686517139816121440883736760294258938846060908482229316450817065360222165287987094266094369231818001484459413916393597293089711869287881444131033248345163570558137032543032389141671948104388725863192082401314979740251904204061601769381594648214115608651331547875152215843825467095837302489028027746229106847409129406685950759333005192771692177156332718258126258681008250294974995412198188391862831782163824500088858944290582412031649886464026628052997556692618797548722175190492998902726056169022885391834277858889132464994851950798474553013298722338503944849322099809407063492193462559793001108446182017833002935311513279478945628415909592374922407262361845808063061632158759934565068002861921515031345290518257039103846713891952931063655554305692317386545992090970390447664823577867791374049693763582818324622337875792471817979336126444503128896759576650425910496000375800697690243952414289214836535025274543119609787071284481991124065748860141658510726927427461899601159790368265416987725152253325444253453800689148834765629229435519169853102964366915044650564289867570134211118394591531129490954051698637048247746363531891896819229932130944218679231446627060723600602766034584641010344281200127234316302781742058813110943725251878761142259777847575365535123825912937115740542798115270155884090469903198735402723895305113002924210902510747420768341227429875282866840461908125669082694675180769789222408752211903633059310362077010981018019067891676117880429252417639608959481083031246124742813283205610554546636158761551581694288376227956240035657836774239663244954609324912112847469410040824043408309938764213816583966423210619716398417597780549143508156239422953193276550934821354369218222439571362549713131427915709670645670474233564800852049220775106343021407515470741712696535246567143263072540942523306982013129740046887653090646476864379737813379482186683374945823106825297113339146703379522718612921465789022557521821744910389927839037424612716316344268921783527262518432010558626497804432955015567500595066898941749380804518650461700894080082135435796994229254669141773708051694113436437369429174462282649780991593440389171772359998337036326847727579752997401191537509388424326789930844636659807049124487959812870466804944398413709932881167594250607219250989736384835296794128286880953021673087322587173109320758644560056521514665602387893503912832851512468159627803648033220125278839878401451754213065637707621525822609574773327156217417796242603592769988857876206820364933256143241201413242926199041105353114674450498815009747526213958363731383772280643074077884325551992519192475072679887535540189669789687219740733554842017930314917538085550418081898968986439572195406867533635570444092821922522051811167583282426647366983385246165207366966724739523214087851482679993285356009214197121443446400983566308556150319005934231074910835680934337666047457397916342838448745257813838341157987172565552734633103553529487620678866007545144139586413807146205848114896640926643174109955409186077071937663600295386007411182276679992237853181649651178701285480951183060288455624639123596650931630854609498536157901921740654384115286731758416817136448339248039335906171544059441355202231705540976777127446150965636374777489277962206176653252501704901495651265728597120813934590344566186789560241915995347340262030240591902945041283834094632745585522561625950357635332624566924239912001794192230264258142212618001767138063219971324745236297338945998670995392058951216460306652896989252184443164482174989442542030869464297653832380285746309564112785272616228163290031539730659591047431736181045506714051684616225197741098744536358709997266338600614071488918950497729109814526201317058227723356542358274338592738698295177374995633620840971323844349400213253717242608216428966511091811989150012494203994525400435157795237655231456883098995452431455857044571381167676169397916399588489262214830083302732378295427062014828943420191902590532561991294412250051233403909880144265051897578815042958860255895150410605210977136884321344750193624753878572341089047828708954494619259933947450027780161810915042152431668766323226929844970466645356800756264136914605770516957823393726161262810666404716381966640312879254928124157268987210265731413151120851377248365016935243123141925143619783822482903078587158581422272041925626779525081014109670661925472855282635975887333934239086480044500672724816188887187951290650001950425295120551775186172044534798414966677065475302071372353794269545293758534340191074301420229017450610865892623769953336710131005823577003304648069704125493052713246934132048453459299065511673081768134597992985027008964441821214925008016715113738677551513423578722280837746146779108220645726813483530332619603092166779078645257935238050623368081813728363258971695459910408214210176312202954604860019029031940639286145166338360325764825172167950652724917881485845730420607547246090128895721091503446714693984563973870977162865320519788209184538717109679141660039363219605722020531018842670326585219845512364397950828426281493842732317638415836497674242251214603145570522765753222320494884495515359371559521078569241683175012756941712344490808187363588116025412338747032018438129945021929651036979798320057109557886478788349424873269120238411147861268283416794896970746145861784531869114331196257705671365135799210410573458522245868606767064756040237162301427239954528760290713453259487908888634236159170033749594704378730278302579418258162244487155249303758848925719073080926159137192975688865728565705053064536586887658770765914072171510980991976759626008809405610153731488377459636551950452368221622222105709023022879178117362537526538163323328963642839523942953895520654314981434170203557197633011634300708043790667788077861244824079555816421567579516741204708531415908988708758389888809612898000666852086260877610571018004682579909380853619434668286249469255649309112312354396590053575796756777410851610875378495980300476843938065374017933141103039300193623881566822522237209891329744041375611579139316819025677565483332912749132759527130731409071180059465797153377136423327224444421440003453143624319390064712500084389836529552866450511934368457495926224022478086968637646306645888584977833530925765453673614353654524243826574353532067153812501864889840120204298711038113973531249912382052960050276743423882998446688417422687898636480554943315664230012246258137825839063982891137539746828342108583819551763555786252017298054184358180708978183080160564649929525983729824613632209561779529423730666751701224526320742582530421392267426697625155597540958032398764793138099426485423747607292129857591369478103215233626066883406527075569943342267934963833687557023770416295335163579825033819781662982209857516456122193584663818080233974666614336427214837869916036469139856337247821006525033019299730376286762624157421070106890900874488484229794577969794622590612491350997474185097036334671784959180446424279451782979003196454673216436165677144339322803936211356665328426758612082528067976791095505229774293857240596596960515648345160771063348934004277058077247186121740664391545636076687018924380810450568217786087952969070988787952027449664772219402234433474709944398528371175617118254671179053958093565145233295977573972414450108912854236813197986411839379417562235965446247914869344783616281803531922488893165002969828727687641303885190610326395605702932096554304252990305988206250056183096842674904507140808318074761349541915134338789725821053592913131731311792966113979640779437411415094071088698943973495774532539478519334861073687313034890829939432124283301790218927927770476092918148485732511088121358623311955985767599886815559585855141824661029056199927502446405095030564323833731481157489060614354916524261898783429752589739313758975642240169576529600588753337193900632388411600578379381543885873351787606058736504886488422827075656782375283038822024892625211906980687446197997916089602845353087765449750213344955397913409115765530316242042009476098503000030041160063623915415955951662505327774015411604201482203259517184830183397166590245898868691352558897165316611678172656249569720598096420304388441170609563345357113253399229719678327966160924721637386580322683641946912357652944067322547194002446107530326650604467831964226372382407659768827150858658952657380852071932413232043472375153959651754171139656696506645976354454270083168792788266493579415697917984230083027225418664533975427636443525396486227664773447457021266864074213927305838685816808573954661329105469159424127505961379545291518899342892448733924122676349400089204600782387148879764476849183542966759472199572503545427546363557642455784317544495735572630374931473560175900890858503820424435878122619372449388883286996398034577503330410699474714714713574234624246949408513535665889815246376420910318592701355791614562259379629652812623555631308937364184059012772868927808993931729631240318430445043861738378359239895938002642792969322167923817689902879049971551623737618133235513410810377407515790983157629710454881620258272476649050375299836940508993254492035981083909154582439764042508035065010813220973974188634780352522455055375602788832338450212488508228031207175154708133620316795846522974817100023375019256285001276302137735361962051762581044181545033365107846329102039602129661051493919230221193045749115399782782312946924070592865492001192433225687517895930405811362816322367127153009815076128844631691616663624178479917010539717484672199310525311860188094554763495603061958200326084851389653251502944276676299710932186821178973655568070521451693067347023974096661155883519475057816575224913102812218808850640873447500694888615572180514883954025856276309344152602306577471083925641732474693147640707214048033919834963871330961512780178480657743861737428052799030933522039787981567494409264602131587214454706799677663595172479261390549204052926423404080931251712151455136692064145887270586145334789515819317988971562595429358209188750145146701470887392704333440693522277987174798144083338085391852594780882590120413112766346824375107351354658882262926301454415301091566895203327663940990814386314267502983677800363667102509904457451106487086100539762972382315520092114230037239038810513336204539034414955616750700742710960261782035068397897207503734547914010234793877509465858819053712732596036093909277090489684427782997127014826084333312423236684645670361568554686764442675279227868249460876945210587217752299586759272365843499638123809754756727403100371861627249821459589632073298964151228122555981794903742146031699469122023777959882045162012441111799461560591236136496285527948187397925326605105500388482060396787656752062415848003446752182968802881238534748923501786693232093273336004012350549250460465736168991086471879332380916569678683084897541314255578593706446242101626497643240827437463549886426349558661071672608089913588512946809679096599889195117984834649740653901154218510456206398419449862834125948184604134054016914343767353979860794074087068183599414392422906837778805019687307608150137259962995249568534723747282278873444739844399845205138573982671867893281403422497500576688396681336499029685984687851707621541866986487922331947613510026671881314159830244964227926672081473303594652910708169476467480819792629322270135562160840309624822047932644481696023982836030660355822371412421239894142934489989947745021030862229637467804811600843319730224011537973537203574547546606197047391270715873915069274516751863153745652414784426598250114342650587932149744425213922696678781589094475289940439460036284214197255484827473466009266663278405585451730967571662099749535922160140758461017102509949029525819471197637576272213855204425357558642477681195664704518587894756633343588537687833784767911350250418335183010419939214091313814221121928485679693286877771016450943591492607296453057515351012841702022402426067125186677668052172722204777731864443577455303491637298027571958032250485531962377481288704969175164306592120447406124326314357768938349735856466891727698863090465449416152864456235553808264487630470531271550811898482275022901798192829046148454096778557691331041358215861307364655824771225665300612474708953315663359917581290275429440898245951949277305056751196680979238060930072050537450730174966819656673929204291926876123116428892387425695050927017699424347576917248507225629308754358057727460922950958065244228487613601358260975999911749889918652951535958975922911835049110457958800627192612226369379679024486644558508865993738663387280393915511409488799125940615717328227574123396505820701610745330990363754334933956976286420522618000718014603238709003871653703525728218351046530934438792080116195467235836161172616044425079612568579122162894384070191131600115165378384812279414791174396591826002213274319331656787301240388404589616099617372927600648246556895257340976551778823011627710603591739858498868623549470014797057564302242179467725880270486798577132093709610620046003561797008808093598136682055750024400157896465086798277672137926511661246612844509723207017187774447381547718148716833525399811091585650362879044174402904485798511057641848416847429647157533000353371578721575473870245504117226768009675534362744352853448665236912546776088333307387062836983099590152315272285243704047244475705412414528683317536939719093090360035781759355164589244111275272292691202619256132439296988866219525307327206026343657414412952636826804539633069191877154705973579682079398016988315109789266386679579399920062179514765572736307171103214633704945206151568416229867477765907642248440200134399727837469183573479830699210151852325791254283637854399604462589015312168434653936764271026839116582478443898849178054035052443732742227312970273857224782234310370948180885799835805020783448862901573952497130843292927862077034844604258632951252757831404049557365440421691603404341933384597022819888514313123963669171995027126186013690017721314873064048417324783937580224907571338209997367220876700444959723681478035800639210924684840706233553530511725881208110916163411106067421142119646862477298651731918678844310268790114519660141058173382849356561466601252089700727595019002951283424942601531278686552278345288968340931226899999653452311345316872831460730550825458110332782285628058371466607130306070944039164423595699941427800437011813140035411393890995665850817539754899620829098781189741182007503146093438709739537274457605457471038034123861999677212912220796075729715647453012455700053010710371073181300505610007974009072998929439960065251629749011902222478856194817153320564139259055279087844494027657855581885907791019355098923532279832283477563439826882233260904606353306758505139839240037701302213689453041057916577921821524835017303054770818926885365908303452314761579830972490661483425567736491536654807267203083818581967436208165516926240801400849202969070186980954529284440185140368116153786942414474082642059223053600871894275254727241060551938346538724927739292791860075176380588462027683646589663075213717753495877387827690274604713738223834537842807795565401097751923840679513005089831339162888375132914500361370506162408934104167498588057784862327081268036776767691940969414230549148308580535314841428601564124455778649712297936353191360326650285343476991934339569579938094532484887366637394433855537958427770750003430322973445612954928310345399714384022989654617120148216745666209117491316492650004189795238593454659828914014589155908210032160366312393083518780858310159217706026536941937609179044328608552034488491869507446173151219256174684157404439225459255881300748778645969207152181442290891618653722522465179019828442939439022708707883892536204936073762234470002362295940081556397894683633256362831695273909266624208410542930136082528759197987477735316285865161987129597545870231135671735956501145128675177207849369444382348348567877356137029922506372659102030798418361111138420379605922176320980422190436200607228954527619747502320061661843128298246479677959711876446395730128338382478216557748006240824312726550397041311180063328961273979814563179952511347516813396240782396188321846048000397810850287807700529742911632156089809263112520780149968145805445790148081918496604071109621555254509672738333284068287894122286446868290878821220172110858381996106662063641412118359212278248772346525894218939279422706623730147514878338684720372562904251684606609926912091242012770132393415375924746824053132665865902951825783274052026038316203463030324797599288346901581592059873384622801835338265101873257275988234200413673994738525604565553660748837115304026544637718548014088159203404480984992146637911845165602228176218076823080773030990981197555666882176753772468367902145202451654079379646521438021177974361827725019334770361316168780634417384259832408946015121615461404829845482836315381429305179553740864014893753055234663243052443915544628985052738295460779593528793929122311394770054315146352860163981807720500954815895660831519202837463614013024939793501308586645869743682713809907708927174966585014438837129425432207546356567787596148861816616831656774938653793105304502544594896877326421208061818143068038677458038307158873903193490371673121501670856099825545187459824038337840155487737422631584308750589754358227234816203057653192835228840951075616473998611754256581853818681587070304742733269968442276247188279650002046916247008379715216061787896073060888894975818139505275364818174040689999868435916522708220111009071625330265520942146948186409526799405527151275910424804571188883611750602251776696963953828238720871272784772310971065063157084500172515781521496721821893088663674451776115674335968749911791640834997083702657391218123876230033384005562141846112883633318251767328531521084772785968509685443191497879698687783182406271468185331723358022397053599823025136684659366931880700560666212308658733601450175551973793599620308634300740110782168469409152711719209249904315553675084784979556054068648135986166235968842417918744661697896954792397619479923897805355484123364745744622026363901722664378450622123012943295652604228149377949970696703106518568248027673960388392456664237579486691758866699657112988522172698761384949811961428316252557225788504803723092390387808416620367885603792955432848474902298442858921103907670965473156984432662875951569850322460847697206933947656776375972015335025830810028049579217760306373395505428707294559342101298355623714805619058441512579390622676499605932067229351333759211734114900047888855716734236965002632063709005917366212164692815152322847161541766114324533466520222681960675034836041336469165918066495269991872572957851013939073250091514882532324258147342950618448122192940995761993515356303190194006777434702024937644904569933793816187817623329456706046807921482295489006380349704795662722656797441258576912718177415483941430767290216982498892824229355570357090267415669696597092533383010990881159360547018434618207375445743050927441641998439600599924661501137918689400089740793239519617513554950945610941849188011687341487206064689680390912509364942293827269175626579922356583139032754079257920543428884080450914285197819915539654439225184627592471120375020723388000683384442777151864271571260375512973826424130892433197258948213881560545290477644715719876561315032164685956745843200152288026093482205665844488988321329317671285729778699038802539466365467760073802214750125414870397077030456677677328061523185007567736551195864092537315211261422456795304103098524878373323595348221424986441093884606778800129692883648879550051561973778944128589771873988668544679702657118522966533320805613473510112145553894086360551600073396191234632825089737413849958232781468470439389195814307961318052263067852638778088255623484276324394198624940225088967819225009158375256499189271430025063627277283368068710325845410962688099621782782513222173560126340596252849175271540071010217767867098402868157579094360962701187051634607068981762897289078870832849038221428169128884988326062096567845929138782555997047807975273142578618244018408120238860534831970214645347270201524496514857915231042186787427851792756112518212502496171332388096265235483463250660138262998769510987759716548396669628349001348128933914623049108601864897917093794970071765265698760243702746026887285238933929828715560558371457999556580780717948036401160050830427136423746760613753528190031343531722077378612051439255638681863933797386167193336879360078449345200223640618796850923648563398126883216747771656956492423928625870901011399280893212474282542141159304477557613136587757687485659539861306265538513502468053227768237593602266577829172964462414467932351075145723220664965086098385355010646832626035613122345979991055309401219778381790493296236645946456121881787320749960866287925117065239438630926813347974891379698318857786515130941773958952360222918622736836516069039852595000214840411365825408503091040435504772348437849426937643747342956264686410763526886489793875089284201869066419942635882706040217005141212000254672590403445074302118178580075791312000503244515032188637415095773148627703881692308944227583830573700426963155072641688861481829283980865936296458083469635029710686034450390370688048465112548766833873414142636422162846514168401032105812571464024516479739188045737531480831777084836825799957006161082490172628819602239847437284662321060048464274807743014097342145988318728339509608968903258956314433734296503777052308913705535300911059367536110664514939352274864713591282175870325819158810591806150776254500887089461771704165213598613149870741242509589784569036099582384219924016298282617574336231100643298216206452773000855294184881855494690111206485721716919024657209642926281059430601374021530300202977635935095996184291693604756731115668748616093392162280669419440920785536090287555984213643873537580034510239710390329701326301412102175793749358058963667732736551425366856508163528585540038036549061399869197413602465273330464694811271814559608939078004419105402008188243511304178362969290218050331532786918663606852845688982412408334813839247974460609226344202727529260584957430682749998602332454489642722666435596736221553348508386061903893641419404268203743839441556882358825357351156509572276816064487347233463954759782997708017899688570451908496319079385195217905713005230549452290207032880288047967235150494633068514611193314034573590009909183914965805840812851008330063723096660616856624971310243589864128171112245543693484410531040112171159304449063087278162012895105261752305069741950543412213086427875997696358322969666937784616116915649941393183704928354687598205480503050676330063978473023874779990940557820993786198166208068074326945478039375768852802780351409975781002454893668537648617719032968588123455214640075091764419233672540825905530676552676254290111485071955297792532522768248582441071063628438425396240008107004527694450372025559901091736588746978700481460301337632970111120727295925807063606128702848648763823894629292479272774447981119324440920149174126898892246244486519972165831334979486748695145258698252398774044751805623275875266677222011823381112432481386250039533884966180401513708819869351425816183342100774859831656478768171009130493336161211609780887992700923535900798923120964678688495903690828894790159894885472191341307003877986450601586519768007174230855148690321398818208087782705584136654050036644131333138183102581953219506618065172372351871305596531312911881746232120444056149967260042207974023042676757507638952156329623709710000428048552727718583285353042825024916891514913833972381164380315031678056866504360351174934789174035178359667810660419183782263764452625909994185247738227457091397239107838804358978500087713845810563337010699545475369833189571955552868958184107562061893358813343646732011803606543217530002488330872170719612207451196015766973447610247206971141208636784888497761817954967125345875803860658659553110365158404598098119508974772645469041309740045721855195432657796635737864422649996527235913938638847559670004100406717569341384552609982480830939838039367805701378277588822087288667698399080868345980055176522986857298888752885921054750560614781986705728360426928233790000929068409520209634328961201325756100019665734795068625526390629520734210995230740809615284316351156683335377654499374074776345232743401578977857510848152088644212953054299993953426797539126726244215864114510836061653913292809898425498980101241416663190326089839042906086868501713910487757615207422709907317086460803001865122642695404085752277166975035213016642342249313924156794857975956217580809257006897093471327355619135577857553712432047862338451786635453292490979949877984474447324086930286799527277193938712141362485674920146629628537313520980654487327235762010937315008274246406297868262406939289546293050951477167112651888689967463749744368991519250695625357616232318723145350410730020969500936336831530483127867051797366456882252269882742289599756983070558751954903032461061567748144399747807807026131629563601183890504474335414212187283548247323659887509916864027728608515023593773381480505316292095606876521601603433201140501431167015185626559441146185958800146398582204355085899040857439381842941866032922119456788147824671574378007417455580377359263892958874675901841915550176745252272923634755897182334128469449197352809520636694589428342960104875268016941308447540418046556584282038149372680128485692304950779040022002481499960987177368554613563176994817542779737422509634348170790650089197104717284847031823865024673784888520082895669435367167280529483938629901743365319157895189521639407290712533909160603598084523487892799909117960344389705618263981296737105920689090087400267955293058134935193302866969422061440368760518450284900541705596481369046377289035255200161527083031095076954112539658103858371441775413478408794767215776986070429026207949211778956319296056590862758317477741900983217868873079194559894894136579033906653428272466688022373596058486701477961100622667060975466967948071220327663309593026565119562681763733871828343844154336878959316734513560539518277492602773605173855025635674162288365195779076511894053431206685972493839675128765660933862589620813213659119438569453015786610293240104115636053622415523383787223641572645051323681400395421692622594949422269138383407082119117863217078740419475729148314501339748685676411233635092782322656029781008985209360961270549961772421549032899268558233043258690287245574874294541704705225647619938481545712654752217307503341558215804914496596490168184706508507801604660743805625952160046961557702460354309959157112796872215670866503710932779744240333616350716462138412420303778285465903891711266848483209814095670230632829712690111144833604251458011139424955279738468423069232049062278247950097114266547042272912020747809388658310134891832848088846508112635264306399630448354285188874127056006995636806719430568248615584688002172442534967653778241538318553878237225515854030629640965331152078244998609394755082187871096123791923440479129877533639404947264999998808098202525739221476042419609014076433926334198062977953142253380963654354090742184814388854095653528966420486359076983877077688985094463663604908411896826390705208068653125305229990669056103000577746528352643841834961644732919846364545168682483053477645279908924912279765291688877956576609767152373721984219659825908179965465238420257132120259427232072005318145047444989644875467175026241296678379527615818923878065669409077448754014536544942342578022803351705633308576653242311919583297308946808941769692404140738282573613722133274662345153183793612630052069684033082384051345611452191840701971185632784545850778416171361036035952616002126728651465403680011891011891276880946117235710413042964203861021734455913146664448133243216666066445997547682937692381419799980933194330404077860995334694389317700390234198696504976395430109729315862792743412919637946967787650784593906772417736284674774099872752122123820773084167960032412601605524897729873776415472267110179971717601703869971082742910561240285240195958295632752561967721891287450280034300029745367483561898203008031102270030350855471188293418582233540705776904470692175699343156853422982792852446183508025607475198226338245437007210577464409891769192825313827937136913711990574860131604976620283259354319203514019417146860556040341792364630310266827254850322681671891716641491507977935658729985377918597997676121766506027760356269097057926778428678170664297029164093261059629747236234993154053944440291230839751837290024253878520597216542235219475837302422649669505632054159314587265303168217036289313561611382860631456554639214244334793045875889919057238910697921146003872789918352431154177878084891908507367549237331508829876216509498811837801612335573831472766688000184790939717232792346718551643931221512600146770574578100870597973434554077399868869361988047124700196339103665644880094018065311945323657037793863014242605221729689217034158877621211852226425712939753528036056283505664879101562308228842959039903528259203741764443648840907488650485983986387891467892204494144917582448572894073828438589419428203220493015020317217025868174647238590652941776905985438674030395924235714973640340282920636760177203657618957799799954434347773555778880454167538079073704090426733579116902142548030061111589655342960471508582109110797699716026112446702696433783580956769012026488494376610413419668988698553075560290495300247135573953531764119032505347778932375056782848487332981949991211158941632274416167694421191473895736320305917755745592748915014089677408617769511675737623121756011760354851966379602574464339738013212921192181272625044223895207063389314216596275722653122523422962757586621121827587207904353234936452081566138878283797205993442866715075496521127444140096740138185550126471542220664975623284278079045669033210436702825437469002123670904891053251421102044867177406868009436752692288161379692421035185239852989830378816569541641955914848511973430176907938437839567961112624834545819739811783149767406295362217577334009059351327211600441768208376776141129256389709179082684785094940789869313841493467848153112754937147720637823222967694217521633914261423977127233761263249061429954028363894216077763270162728425639764803980515288759817497195077628794046755788164069581147680723001080574912805799094911953963041007444197881730953294457863385160512096457578949125686345125955481118518384841080409773965120399703520472588227482712290284980122277497835037287549347338856400886847516541060870154213484743913565519633222982978504747860662271019812868196476591605046350249675864902583547083863873727699061941205231708030832370915105065158099061356983398924280087743125462525256666650569357452494246935075808640530150051679339251200418247412408171041846381400602182728582395904962789239492022377757904454731725048138640955504569053698409470755358464242070136578762136043393069986952023887164751416283006205439673687737242670549206021294516365734336962165960193572790072625817445163372027305006802917283645646784080264216511529202350297404252899579687867330441978024108752707889088060658971204722854781144084127371260214395916636670935210385796892539370853858845452154284510337859933359355851540003173734209296364647072116485508375027642556193759709252093420669814501904229606246191363593491288126660685347987937624406915512634890793256492371399825889615092965127671188591673040681113936946781179262569761511636513258845979109886553004422119830096724189430097939890164585697025481546954627127735809732667588486064260663975472478965699519926148334445627021492166675028185814154036153887706068732067648430145379872966953574031967351696288365874484684730863119936067529945015704637941074882192330601054494432365237087306081051401753647764917877812800754673162101583961680053422629890649417824807567371538724967602858299241767167784214457244132344935974256067627571320433051598569006821245301368422620986264224658159108714069839920306769391306971778551246331176324715543493832038978647609472193147034930970756239429070994537058719110370288888444454689583922167824309878486524294346389474804565101301889572810998579276840890863666171656094346096487569742332515542851888023259670812928831428942804519494285454525564216372186880892196082546367236297660026219463692015141436704407209032961799620413644133483023016050307649913450446216910198188812387846753827319434344884910165572469624172191363123329412254830300791658789077668193915259628822061584857244500336310867154290950053375361936307267433246956216469337005496364762297749315019436379626949902916250260899393779379421275251555369344078240866619755876368591067542128159647337759456539191950796784979756642754691695397364483210578011152767190367780297793872645604089225423323645942413113382787469216906149347194264020191234729631218316088345124659788659817337580225823683246135835938190095791121900187906772084181855057453013703830577913442278982698588990666503612506812014907334805103455341074554729835558849436411425362087316613709430088342820908042650436821082831942648731851547413173631680432010996753885013332649761670291404836045968065839983677826306469743127238351946338626532109624188036425614900988453789186122827197616247116789299539577532131157572205608559385596391019829896312256629151541536288428595203192941178373019604182621738380382321810340772252033042463513767408224450130200965398588408992302847536390769536168064837040686787358049672347970844283508182095588888321260858414624743342325888176882586296853879639245257678207164454945601642664613948077492990696364730315316164461319269092133491070235421125942344266019596166375843750517831553397371116565777967224661205504758666865939323828399763387631731444397344485958164975859178397639619811549067458986466296623294864184406483219622597993918817904459377823385839284820082410086514712312646133095430527589401028646016473579024037006018891085525062796676398550848227095692113402436783690015162864676612667468575302651378359945312021687338049151245059733446398620856758255436369658061559116593200793758780132651783071052295288468286222221556742197122427313262009669741976540738647566915157667587664814835210345856549273120778086093978021007973991154163144557576862703654819186341183338982284572926145299023439681128264160182802104893133308761871878903051477660293700420972317709793213816920229192647064110495084400124862331400109980556910561515207942906636287504602162928683112333333975715146675881159508452469453513107353861087695572755396735316891677040783946359738121772075424903160257032097865457593613698036454232727246518210242625572980024371813790254081357714731088215444067261851708614492238662742108244491540670541556108446066049006683170463582419429957490547944402080092546912561797335134547675644273787413949894066746386242475538889221915955670552437265889157672202840054812226259984772493845798047551630622836071339102003143472960455632708981027200630514886317193188312935256410582869758199526747123568829221704401493081565124468455927028894972658288955250210064331811236868365471026048779768985872349246389587002039569614030002616496710625141629178686965573041200475266109358975274654626285488097904955437119657814726921409239545253633397175085791903062863028161749777494477339051054540014310407296776759094715349003359100515050210866118995862846588420676054622059744005094501871926396588309407917923795542241632288882910147511103029343025089020902230011625498243588396988123398751962343554762500690527718536844875432457461970590576729119689643758300184990183605453982081599512846176348350333924137035019687715974259260447994162590159409166279690294175294238221677176811156723698294776826019689069226981391995076611809561140835034156151805859155533566741677620503000424246813153312859996796875891190771741095603336031969825807087300006561110406863375137456743427443560686583906543607856986692951249946803342349851836493713841997223303103561598426616559561892059983326312188686475773878585064004753569994078521640749003951693187487480082665245534688115699674050600705706912961336620169081885376402304341561615441412282270394688353138906609722526844439710995434356038994472276732796775348660441069114149028113809005193087067801099473727784413918567110018174841545023488451926972865506865713202203870064747057588839895998664399791672037417446709853150198543013778829481706647381560649281445465983314006826408080863049523400020652710666945079429705164677126597032977359742294913238336358462840876852099982897446313785288588602699417129391366566962109957756777682902128356164009477911890504792716014413037329439405004069105867643350257151041026732516667705967909987070122540718456316369960232120460410315716266876017194182794185217035633959420115940846470615044714007982573287249083538044371612408898786893604976579381897338213827412049546112019861482215328550721699072928278022031808807362098041958311005369728243282980307138852244193106786620413451460601386062524555349354807608178961984893176944253187411354193967119867269475819614223195002428777104702594726110547629232321141207960767496097448163605410565866078499462568180340876381978856726467803201280428053763109868881708536914233055714768881079775663570278658221478993494093610023197739996392338090405989256675162225955657492425103151524736498071330198181262274561184911538175085483337482585630859359917942885751742851658241332747731371425152907438604804250707867759899972072741529146251448117328621500984582147597294357989314969471290956193978975736373379885636867303244169231836850311023741697975315095046261425743294017403509976430984204440436926133855933655128821064318777012264141303788804474220109067093779354722090354010013535177841743095445450964552757825023057704061135952637684095244708368847939536734865001791200024304799434246217020192549544455507050579659973933164145868416376080619076881265545573799071942368958811841388569773369821449111574211174473558402553139115884967025098918894880261325611697325135426550743800691294943739775251845736123768777007012565390792807822825175074478210355392777032192279176035660465230766146458208534876959336508647591552786144860954753248067218550849780934391958568782716153885040367984473016457670245349740283848556888804336842343762785515255532044952712547822050949608528525254793398974006325321376071029707604131868592309608830388469110739572224713201281614334772254536834945806163871924168019156669180475517802616084513716604800378421415301329887100344720086666114715638526682800575326686271423439399606023618370310204864819241527696642630687310811388925220095799336566729885403974959682265235081208982696481422031172435865498427410889906406938049246271810840304557600806521852115363804064998431089227259308314088543337311169897088138905137049342164207025860025314101743298388671820742695494998984227511513670700736111607038420722703504501281676278231556817340957063506544657741213718134037509648235333412740966296367893906118542732436674092193208033316099250628512833433567786070053562260061192881185825709112720646337302815992426027739335689291356079496393655814518862621944278596797268915326104127889602465040839410519383520174813309411522347061634509164980619849858218521406046551484211860208340373051461949718169680522631682645784110666402721220619699386660822465889121784525406929810382850686597266763887761932784213256498034629800367863225395811926988578952883895168520907463966532665840752314819644064940063283955453307241045727341629863606165151393738379723883808211519101317041266109428117862506260112211852786990372312710648253639585437272387324078991332524754136327796942155459381191832496543392138006352063225143340433377152395306176613093886019444873988803851087219550891744710078656139435793231836493832705786639177322492997283967588916452614119035960193039891537562852487945182252548709878965318131899033576241783389782700656557101586079906671554527750573740011660701639712028724242662931437100323702480381179670867585067768507498561879013506114299280897638185855737289999979534125587819262718520079599132192075119505371701368590047193851376256104471473090016110114222244849906122664814860551968074955375935505822021646926773772970042439331624392303697888515513125902808571494174833751468537827964514172235191181415758748150762113010458700930388823900387467387192203841610390744321136864374597639635739214466683580575276143531056334806155962476443135114750075803914832182393024010193929392685922462235529083121723507268234784687233189688714268778876788699374912264960617071106858866139577375927776330574950592985822989875400934552506032588459065322843105529866344599106489692348263557684525083413067526895365727195279551904792078652252948394218176488884670786709314553611116049308618268642750238716528415373975329299778577521407914690249600043784910147314946176461375591834963121599556442923491744161424225498781866141640205241474668492314739580059493053681912721748792764137708889971651578201516041533261961415711836052537823014655998188316483722985921316800722970136179483448850939014651657335523882706105865015683243442874053988671281740688100313682940987120897966716062438893491876849520423517734002564471985931763779415066662399640321091479619089083930312166304023456459720910786428350941333666542224676572665319507229480744039515385319155844192196627800742795964488398833329862153153975821590254120754474293124290943335324245308804441006443937275783940128730793205540768639812212133262511734631993495910988506346558757855536975282029554891398427625290458388197681647662905501734639856748072427077323742110655910205107632479981500458816728360141256050994154727959795161369030902993893298735120075050263066689669324559921116294258119574230516678850305251727106386354768135880658733773532637597706322905972054431344520983727360998590798450012040291267181242533248729811372962583606062660185190931454860822786730139884274498352238869235504122616855441037532286030538159454025892501649196405928122039674965040135785755920817478340100094309240547820656403656513620846765214823016175552400560351950221209947340249000099973732677676820930892743139213378091759016775647982382822789825460818038247358196271705797683622115754064903689091868666751325682547899181660088946596570394270559382626870702738908911152581209127693080668051391646388896665777974641325826866946198962992120444867148016068658521198246131640890880647832329599489260830482885935777375185810357680763466531324754643974353150125975744457786125007109790400573203500388993533553188060637864732267596287351822838824328640303174401724227375920556485954595773543164304300268495337204512496041321952572058972802136089135345815713098750444177235338379205116808781006845812345208421877629526855289958156369736603675723704597105013163940735506232978236060476246107815889610923857386136041520835663070001769012855126831548229353957598081888697640202436211278209579268781438677175206507568525993258308664247911943749133667658355877883201200313018903598449384148436658338655856009216783776508493929290122935775904809746873769359359464463468262599288222237676751506781775548683613219962018410768296683659687102414969590668121422275082098023738243681859366876899392797813330342340900269312290772098448271059844001316499790078492241330632874166046259292477567245880791817028462739159233735572530152946617514483265860942615407550538390454258583312931853542327334061002276949842648283941766152072930123063149281575879004681201931105766593555697269469287215074429246222569117789872642802927155929739649491599876184746080767406888397620680728590718969257328327908025281085824480304345920329118209643628168319577555524162908273847825891250569134489636618928903670200648386750784572550645153609130906687971667788938226412235904038333529584356735446653707419734645745847331693446599731656358129429998977872744560128876883908231996469759678799967282952329589623628798990620055055876454738806497772253735874324789771397804166137335378286164268134266961765681082887437844944580740390329968890522473580539012800735895371101096606060151185127881750126485365127848692886236996364689558851594401226564805537318737734604966796839265080931908279255983753345832504871054962655757421943369323806089987603885329439636358149046369695324172599474188916788682917323250722983755546495795135873725886653635343600188127882991674466997532639723513508180030611445482684874690174063961607288483314775099923602871031842852187573742406104418792268538714442518708469460126752776275494689369020616693686492924483105833026385855429403148255745391883236495570632474398010056520505322807398164690143245873432328494522210591035983696333432030272313961227457890188737451434109967459538693777623391704862587261597873796740636912133867525293286857520023013892111657981520659420454443106460800633478205029016585151084475993022847549092982985431862797335217597867864184447794560698245615010491380164620945086479482792577814506651316611423294768013354446107118327121807692935603745088969106726540946843673247222942606468535430361443676507947329503242300791014101679531954521518596665398892051767438437909238150113997362517410882931033098380169755966965021747576316573040699786795054924658738392043107397267982548523553547902206506877451025183214026084987957037065936733199360848880277920384887459570145712108505057567053243780675366263366696554047128297220899829832072424681880277108575516436681982586155596999080929576023383902557177203472316157387402105371466961588777444158533133674583366761776447871037738414534991030070380194957503948455404897771711649425581686772124753553849204155001055291523655670460464596881834154603161758498287462606427934755600222838043597992520868730413480031194744120820979943959460624068877901381920983321982109831703541286265390917812771334101194647446000115316931638862383856578859379347617233550914312389655986622661129554847869679634557584885730760702453778655766646125087020113931777688867539085683570112763432143568571589567324128953333091222431588741359993321166397718430670205155250701798221201476412583460639403072190988345293934060214802121890801476508208408229953851921566893687660426916006819088029396068422870152016481888980480981530863022724337783642282734710627782296159169928400123484579386661223773803723735019039830355663921515617515828778911740521922276106399482501356647718535291704832766394693670114790612382786718362664449858774931933035202694876408558679216551902813420269593529568540276930628894099749475414240052362740413413568666518204518413245156676701443304882116013530584009680793516639363178151329947552762545568551513434556553174459118936483085579431370832286200692871183689843951135502178543126264303200025344139893260377753366984270159395702898840028762606036736050427916887533755808187503434813953655094696192228988976435679051510518239817801389545876605780846765394649389185425501476156437411014433070280923336111391294065746849428588735674458070570418358551241129291029746920293624403136779955517922999535948096753912196534502916547632954346065411521892106391445019606678295670900561534223901199733241115635456557547470636990949243646504286993130189917164471273625133296640067993412803340311378641849642989720540891159688467467961076703018626325248893234722866464208165191793380799353187859753537601681312720345976809108797019048331569614862968814272479768903677678973381327248565918446547286332187167452869512524471067538229187246590362099839146228311702613899006117838293188934756586679933617295013529304494845300776185145919006237605993557186247710356279580967265503913135140587797238214361955746478481016900584635472121907359287510799390049727763120489715289151625384971608371491818198530480725072413201879624407981992843611408117974180462432478867660163069912143787080407095668891736454941559529029166539490823347973487742050975706007640591210430389702549801645446672980686040540556827279272214366069843732453266637131501385136146405311395783405332899269614326425351321654803368660468537052101302930658059854699321280167737824329921071070571107868255527639022193734787796558473754451533051981493106906659714807177168174947367557959071033235426383287063160609953732126455134144229901280446755701304018772483182252790194953309095018844604926638614446544843883989415997356105135353039186374718773444796617155436027105729024948133816096028129178154690831082926356608984363818560716299679404008989236073845978247496985178098432965452079958101802190911834025156773610269601757555903876970961026859731366168508805870071268723458703962737502701157891259612766862825075204765938038327154963527579204558363268723401819938759624130802759222733677938340699915454178194624484150933606581537435285925929471148161690522701499090971131094423208439080929593093224038586060308485958570077019570853209054750708234125827308685313697897703516896107150858333391050029557391150098250700940508392949802488001082194700422840039688908731714410918261682338826411988881919696649394103134291257401346814671001492425279919570062600283734511974180728989356451397565363179543979166060878458591933605772939314930906900970881873746419725576599849387416682465954254663261186230835622239693733071108273504905286888705654064994974348616957209057229642424792380448432777676111339029852349659722975943424822075481248172281021133963723454700578381755657317737463456679919232937938249195498359304875271184984313737808914736883379316107215247120965979954772946918364854557249368462405704928170034699218616125022299255234176409616147488052648484323937485790778023721482663614684539257737245881606417771459386970851479775665476681215847309108027283483083377633684626128972665752787434937446673197803061807986355745354983377196918526091911599759518790669463659929581304581352829833500091274135282616579284454550188146269337397806052145389063810985881487042161292311371447776428311503041268397853097700623621847448918983567893278830866478062395891267186817151641067856338638041094568468442562608180738006762737717185567542164140740985475987697614196153487631672991824569357315603880335875606917040020706084294261223962793150958770970003127468530704863060165214266963879109569815438337655684056324809453118700905702180173078816490360743887794090234667031157178317063036660950701792889551694390130576362568699424386566781143855120497052535538256372872775352652548818655306120672595318591180511005894613349194972126441732104400046973263225972534571407209993802875640775245811044572742767504076755780221743809927739249187394975935869121064849926462377164205263661786356148349863744262530920867720015804734028620756019522556002180235137550507079447930783180621019116197843119453842853765410599147835233593585785570732109257661016794963079591222405256296764253145740964188259982331642238049637834936550462731177782880364732984691252149426639487768818629916206312224393298600046798854536194856176546047073556852012688277767477363812699617206805064246623189719945360030346440248289545080433883783523097013679464096119480788536088483282544143860166122503871463167647541207026452549614483452264596219524110695644616329834227182850873373204050460440907266338541229167769826827685814563941963071820988898713810919345360760071828493836844962922525041304011037302905437848270344477762871628977692459575422131336494521973686324502911524325868138526969910508867610110199457596885492564116347605242202881843781856398902110393586621332755165897995992363242802195372320907433873492905796526940175738239241552627015893682813980059206667601961960890274219373102464733217683822654841770732410741263460736536853277841256438844358564487224737274644504617828242540890969911583401500192237072253175662340166472171129283060469427582508179202184269820817798629462863864179890676522977394667315268220360278444707260130810537206099481981113164543121344682607709314422759411079006746715619240239209499050123417166063555519337562905716719514223645581651623054958756881000919099236721478920404529725205464245500985304963769239842322695987973503942448044316931237229513991448081550668888855836001950767347383756428921262467441167460635902660670170649155358109417923713214302158411914524147785232931975265937711584570591537007414117084044704087015508253297737618480530878620475938760864666239624534339171525285393059705116013996667374439087096228156751568341430172620693312986962351257436455564781985014048374982351465484981452155323984323590476784709978560173134297598654707932443920302180073077146566186735050542694935238766061734690396976006382304085817858587284538572172028906051408810150075864139310731554932548135675376941304535293375374893995918739397310838928772859158984023606046216740440886978117833033846109147364951376315504798573727416438896084669693682530092849363199608652845219958315363994850583399630964298300463614142015392935130858018894529519952016856902842622189809138245618345515232570660825730259811501909412826893576527088819031194244310216580766649891687866742529548031800861351383126467209465894248458393967788655872448009508010630730246201680115014317655745708307924621979461851379410210795016615694889297720321814538666473277890519204367956248988971215106207734818136845942189179195334706862547311912392196295678943204029752645237154565588833173708507929992640800424303229291957707403291247547123800048943276967727403933746829631669185535634646359437789402614841425988983831103511863766349294503597276046048934303942287710052478881605127703418476885463434773147462802861737907983015144025059893848003660587598164730411981279727098314169082511580387285842868987022811113265427062068827949622098822977802709370057780309465106338696151036292338776945423157285957060447928581019872566787798898361674234727394135708395460045194564780436058093340210012152255638576577275540100394269999176689363042827996085204529215060892304479696606299032144399340130114311158679369949283931247598858666850416927730670971568406772755847438215411332287564708547406259765234635863934452173541713071545171328597002250313787185208733635892003005002586324604319146499122446647268402081560105815780122253579813492550665144465697766179236021031558919682262828282812227689102648157652060688109840497924260068924085917469464286508872537363645708154339895997136006187815651138832660509309806189698037313316990239435113173581061964572468261632757418829476645317670029093111186614306727145131957844643245648554638810423458501378071038121916734555286923488354571171494330095627339810573627422798331841518975962037900830186636760636573497437216224153997036604476025094992472076915318495330726624678561599786234193241952914181466638781486672206386747729357620606860856778289987771371688700934463006236676850690772649366825790531671386585070390627769132572485679947802747321586605236668670370293459123052323246906317536667785702101545337069001642363904536015999970799286553615435568269088711584771672393993709512688476660596059765895909600333741611168861929820124193901227149640407663689377742098398847130460164808792564911411392166402351575059810674034606005229288217084865130227907923224728527280207085232139970274532190553240754547727438434922272341908208222629544720819838213155326395464887073811644215363800273377472209751933120602501964019646680379286011702101432293284792994149601147737172617295239494032496829378111901875410964452108521027219635979709082834112532743486447689208501464177957989860537480689793496865995206899993442781173441199522469858799126157376252224122470740434817633379673318135677423959821775925059701102339438575423250575457989773459160395900638729159417324213477348768551364225444510781566689693587910931521533448536248988362898759154498542513000493258403998200462208305888635271601645086633585414702063560299201059503125525283596199296539780277166059886835825404938389953988002800977078912206131701404522841136792376063619845273183741170942769957503945901919590432882933137912224114361872782703972316231038962595012756627474717117725978093002424520544262857413185072695174005353022222752472289052418792635733694960762772308745211988156519111555893068295140604892251671733539903383419591087995477928851727118409207494997455324574890507724704021316649446695920255237671188360369439487885384410302850080869341058768962042863319080418966154952950977883132183173401579285718306503796598528427600847674669045932943042211243191312896061968801434410023904767767381817971386067907691349136364131415831519806294908078823941609778272709715406035006540312888757464639763016670945240304195425202286621495809842281092901905647730237799677785358732513985263470064407840136389408454329440968546823218871205839835826762065217424761497098264098293489370360567276151961343578343571078699803155938972709561478337815494486722175208366429151279593156566168186052537112779221075218754120476434994425110102695538398940356473709368026772884013590890240640092353649716933514485778222431147891771027252917991148054713545873421347144311066045067525542890962555345206697672711210673443966985576285323251836065373969525403399835251142928956799508157050635802086253057695663992205736927119388042894233956052352420615075484647256822512128151201278327233495738955785968131670147896751451811630554472502481921674051832198032163069532652319373267023661065511349185417393097561831372221638393618360430026955730177977696219929706015739140800060780745772411929821740554355624274241305233602270469398729668872296573034329626529284455521796763707672005015408189084427759748495259659277000622131431269637430053525007892083580239410456577073735462679679225591503752257569166920103621441122019981164595313047566729371491266871335972434633999847638054302305255627511904268128737242174725561281339615252362913594273190571249143123471375146054151610701364827971535958547868209378115385634247007468751870969172943520138490651290586231640162350685052076290576776633498985007696727227175066010718232682656421389262871738994292278371861218217589040397938078876679937828978893356416376799394557692861584459443294444658503502129978639628886451248561146234454492567975573079571567986207839739882232805865629024294850383493453299916403357332070397729796014748245943984149651248556786131102230137791135350736971444800996223997721366866822210662649329807296864667735083086597427542364422228485015401226860517797184517062521690462471714545969789947993694056077045527947015291389871077176015222033082631153788698965173944946744934251509381197549957777036711253937010252783919760576492057604563628662920681781153960816082862410128653485964476062674406054923400837354656741160949653600851483896046954337119340210985312344422907062642513674076421350164889906502896006260192365921448654284959730348112679015730329993341112646982645118576077674492579740658973966799871196886184046547251061554712234341645157211035543660448792611646689348662989548913052245656520827632702983142362068209084237668796181619759021749923150097213816115164497300926023587366632267435952307177607706425810724739639770362165868562972683906736213394803281766998920742859890063049185035361442692401594080619638492606309362767900404625616195358501238537358124100317598212580960013479941058805123621774117163911926940704529303719805218516945262823181268589294579977316697324757931273574650338488778806649154079148311918693693600772083105955628124637477584309702947215265185424773725873516676683004545826432521937290790187673428993272290568773372257303936548865822749169461159431735657175689611829287099905565125534368404746333400242055047688282367737682470608653625346823054158167533425920323617662733602964994236055231771854978999871901961608128263067935336528198267777439262708221364918252349504971860548346122528341194287046828903552473240474795403962627023356299420726839896538729005936747132187725842516591584137597203626147106065127328340192263512273723065174417764303139429284561603698175597920690597056712775243633512155604468226084097592329900632317940302894936328367207050506156900807705508305811586316278753364088037470730391777997582840474741076645572153831393816170326037901816098128239518682136490076476622837555374258568682699720733090262702034480746940330309709722842915394081217848523057898838135003167538525633899058921284842952699849805458191857423680513037420180438028926384919929863299640193748795040372191887830442146806711448356107486248120916203188032372882191482427249776629075233693367209867294204148436453973085347558862487495008432088412671096572820359362121037460461902718723533584845526231386167502512418534172660486507551565302560244768174686363967339537086821476119367092000875305114486372941576266104442904127826416365103924355044981996215047736300571102230239883746243226749686134470340283819852238984098517378412039726381663462431326919461933212207832341183093470611407442648066055487891024046984663990873733874850966371866910678787655064463003113126001723446504737876009686468275953931689377746279091134356734327453649720068670972289293396263769120268562745219216968008856827379432918236039740105950159496577096266424271348565988371443475878761607237448169329881976141293231250719261085743719974255896016311847355122353099159591653922963664393241650837612662083816032081263601518538860306715114225016548077697436924067653579977400057893872404693872392577746651428901289559140768164183271948591635576856914901959780654152278716005825584776349728612104633810361924259743745895509196475075259483462846647460753107984286753077328520746146487003409228588956013979824450213894658164828005525943121031786797876391629483598830629689373487765123479893052033081704492014599334091851338062706084810260017796246455896909978824792349498109505805937757598854201784053269722590592567840655720825093960268875998505137913548778305409648626028733077215817837316577012975246368875769785747689850575567312906233436925736693206213141715980398483963735962167582932375042976475561148913630641531579692078056453068683190769032554717538185326756213084206253294202667436475284548049468011586230532695290584468004556612210349242612043544079994233103846213436125844288025094571297293100775618741478310334590028614912931539691509228048316377880814166172161605834739875357307354743632896424704087717439918906494462021115016811559948887701698411424986766360175817348045090627220171561525955374715107365362111536375604527825311626197349870684578630581632551875374935942916998921425922708850402640230607306808150403151620004002707419838093182816918634434864423543981818659358710692087886122641507064525594170890515486279772217642557471750693434915457238535357472866870888918075711767274593843370549706456438141731692290156896248341413555898386114597094776399321497102036178288481996600344481031211605122938772817159504966801328209821574099368418776132084708532031762961074097773792198617722925236504645767376345199866837576145775105973280516442001756137419026456410141927797494021194407087508117796206516381096266012442578619147711072353839773762760467834646326270911338832885211065676154305834145522480014493753934595759228993628180360637784586832802773703584067565720689714777257191614918635034237369332468108902104257256993147390061630031526807097122925579874298480393670083733066610450838100115970463583188361571859149679191499640342372556037812085265729380442933959997040086876072153121317566335648182792079666561552553991644550126332323554797881091248004818247408876948587259677936910200515876173349722959877645811010327183353518396914865675041058736494201627777446816610984330791806768373490740451436367027656944472527046779848406235309672358997446717416233022406987496475186585756623940722550071010998629938635131143090484569811792471892628560379279761607328426253831734283969871069300857810306525662428669504143052516146447392409831227460644005857489611338872538633462006029066138267568708138614601649582864566047634162076379518729933868446300991792135355063848775500875701788939744370724338924169874647248537763330342416610652510687774705273746298433037821135768850833664328739359920684252355289628123449569245397096721088157049322581451235294604075190210475624160829812699940893971646721745980259460642133684270475574750316838925823488849075390574794605863127109371309303084165758507435668521929884758772063134788737727391913951880726772250541816370818545746795925634295518766517720411598812560198491894867837504365376960888727825825025667402543218009076163256475067385939531802786864466409568125921095244273026868283537629538842712814361808578814047882027414545485184622212687890464472767129377666563536363437510318646042353194239065966526056205789254379229068077731267865747183409375357697553998835258082932570836293867392534508097568286540004609039037346133412644676683126392189823724826315918923660082555433797550090644338044942824592424835607609767536874638086483779448304302616898959577520032859557850005251435664106303017647344036046068809562670477225076594817371332750494520084853524862409716792954415415006677989662783179924730798559289030472933997817596918324807334460974308308651027441952586054705383797206955272378007450499304817881935704258830037261637082167697647101016393082063776777669400708347241762757737322012109202099454330984212247882165168461562892233351718764635816990224154321540300945528047279763874853256167236967987427817957123912719857493518682805654537433870866717584976275180009324129149638421929233650182100938846383959676437294732773886391188282268245255513010648020818729350556491459809380020424675450304611231664194639144913323098962629649514659411753156684383165926047979879325248408832722338581251526729523634573169006491504363547992938584428119807987378241508641852138088170403945905187410949469326591149497580695062381958590552512714260758302690393052647053081295779098953352437642709241894803782052436679390279131972755111033581350070622862708816691988453505271584112696127315104167444022453655626321305263626571888501762434397392899313528432926570211432446836534762624233504949806995200195627971533320157083778142506641970059782052507550114533982784504428678877348110553376228288846001795349292641134752357535493198847408237671208042289674803220157141809818500153995334784609155914052107440974584893045437548185916056659648518577549766485964271502220052441653726696901976424727949587565292956687753830198380412741248568257510283986815199176714880451159276005206000571421122613102611986522112394385427442930537989915468711177646693811512955316078488617041567103184756903170462732089114796547062312835555987835547909180145526132492365858165717220007677577253158471373437999808507303584246010824674051153645023487136333730069118895300610332037711840247084076563691143321159177117812197031749522677443639161896021789478135335672956080754738886834950722242288009575618683096550825682675681178462496847192019656025671457814890354279495974136121228429834558648294838781566886393459053925725407169625603191566291482038551161420333256115939127360925970519220968192826593486284949507001480951015671798602338779140670696281830218592156860095633256484485813744367632853019463032269370623620513019638465649815212660937921574324158129124605323227873278287668074078444529869090332471050436846361780468498337361987967073161849021278453791930772560452650520183286257531790917395069048188378201806123569930104994514550274931554750502851359699666033727453904137881232711855057117859118824466709598987937751075107885617876966593473773607221511203135439929699095171493312244201516984460309233545323757420784102758058535642802647573903504928967669962892362582078522736962221415063245564848425792654676119925427136066071529786488811189524715009084975273020963455399969047245560525509451245710878086589022021040253452523019000673689647733546293509238161232723750069108245459232040244698337222138670269907372592446121843822607889032768702158875966753132670525419911810402283238695303664650121805692589754425658928882809009976523124389972688046065204563598613471115551496980782682157659505319657269703338236582091543531919961330941906736065547124872173285622719476461383228794162214981507493240333113869408295798105198715062532078657548002119396206711002014027597446769558327312122677445077850608089721310004043865275199900971356543407868758723641876198625671684834400503724535446988781910872196839283408064648015528205350340322013051925186785789263180591256776828900399098040380429831819786118580078013240506023540535096782732342187470109816360124063917110606784893653040636089095593774564156521182758658156773823927648554113444220991725040422973166850245452189567674683192456189789872642301026407263453724900107150294920995951540563908076018638480755366435429183651088216032818195319665907002425524995218502036045249334745789352701707112437870433338790176825440413790491377223431922101536657804891602575573613474526808489720763960612195380871026284278636089276135642125509249945393168114845261907981707562344915236837631847477475453947307738564357588183379878690228098487994478320403076718090928876564283937159873255560284034684786867866823798316814683130390941019047140237025523165557301051547470493397821149089723521434710472859029501062105129552715010915912282625943383716258460084530772187512468555320107165780212182843175774802793344023778219368505664065451558196563664599312475113473573442527146335158381974410745340744186987078242169422565952007143685018829340676570442373339481190351476787110003508134270715486162540777239008920155614223446415113634900005315827286774941044232884606926068762703413407619397949044916471678781058504186441390836201193386255339877712616670827556229929708751618887668973970825437977967337895544244746418884321259657579728466812299277692323632598277762458331610527168807263873166823300344286937169070385505157891778293070535556219191604342529550660200937068106231630973566111767883050096765723558556502546353739196594256373769940948165199954990564662422343108789531300312420656695243848607422367351049971137353310577318078295349816275674445153317563387655148483619608814874138640196972578557063150538494273237163369871401948272593132422932647653614892759060811273408582867586849983459797993424897816242533503171350117398481235552924824641763178389315358798492195893719964674256331520494416402117128830066072856742203558553127814092095301490935190448421501846363235953083369050472233001716449097284992888045716246266225325591510542774387224915476716189669029568302567445478374493249398716484052225981564606269185190432905264626627187728222535553280065701366817517177636390348151911463749859712896917453334242091315978432968793494874198509374538431536044756463680742673283131215494515508318566391615060822545477256022238074857829258137191164216614020469103232981748349853778444125273140976304790732129053555005260486814231717414509148778000320074981873967933369281404602334174601222300524896532703573236488564347197523573073945654681774691935637159739088647757170546325998950193855197939939872780299092578223344599317021809019256178199361881215669427007695266663162378836396994625700641974220220983682242250443683627676465753769110529320611803374139776732319912117356526256806604626839117708321012124189612240702162232330504988048547045135784764589057722621479943736146503107437437412299399128186291110180274849856916355483417999679427762017646909734681787976697873437759791425050595742485989985149475669294199763787258333262749487998143124690266674617977287696876592691822208538130896844488413071107706849700980664824939905466647140005731325122596083159495537453245047518813080692357045744103474523610066984748689901042828730930617864257298632008772582195908474632464925688144397627972094996273418335825506257934731140067509704810615440328104061607546142720949756776422949161398870133520678691686970174357400384335192062985431853762820132726361338070983073631332911098656218979836859274888037836397275207547040780601429948554212595531451705745008942181061059038923938038063073689924188853989418638384815099993164813291236268495325742161754606914562757293332115657081099550205186307046925626503959735259798420296727138729193900681752340168582137603584917826235664994896950113863386397018640732289657954833997119069573781446834373080115340629121773967733181728775931682877777220900875214616344700961914361362173090387701724094294982135673032063293510133101149485557372942424537646267728290454682956847507716195988828575161505121711577249969052236430077465404310383263659950453189417125604433661724590776526667885970628148667848625862249969381087781184079077815182099195383965815646787895172820585627158003475183384974593200340702967520667405844983574211742234254334533362623244925893528736637463173189409523366611151965426479891687528889947277590845252086910673859120089341296045065080392335177014302675274771228006507225476467974995518435095053340127862233390603208103582937176666535026193017250002247088038445463488044492898193478308153179957093600884505164739443348938504789346599315883395396168467726680679965401252701856387304571704210216689730148858064542488758426631695534096735846359752939913460482546741926775795633491439385833487713565474295603236882543261732924926999119357477565319899578988578669185256077910929621231176020594174572715672124911053487511261662405358242156087654098702234234262131399205102041527947504824448083915207981816333575456286852614102897279994146313994154876040791522114489204607245177288572851123509595064993802574220201574251570997901344423445387676631593017815924957315679084531880354257296224253064916168457625126291918014673917755141431850826427824220874601662852748022390559390509521178520582930581567576337888783765158804170582932042271109335824248907017063568066622194265982503900731858150564640166708554953240835584611217983959008361395361611755132137219465487110571262705368438797706873373144022254315626550689163142408139362258951860793065349061011488484537256304944226013345185908911015672882276107787267981065626308423242770641778103754063171811874090367984493025926026723827035775074684577195170198212081025650197928205280613997650599456471967736766286750858232313564542835687453910100838617132053202791752918076746717156990963396541387349135035009236526732116022593857803526769182181604492653130439457262423361283597513248189269016108612812077989233124895785195934739551335294525600065060923608356872873510502374270920494802540997264427199605495219021936316049199000450695907354077635956138705001124404476953994352413646675159522952962710949924925870722501997696812845176802458499124573625797948973220139662545521556118095071492033632974031017155443059560864429884626765672709119343323361907428247906365219194577082381677101163599660799766023262565116835885990313613694517425628373772191027033302620967074384356717751432233045444636123659601196572644060214907545329151399502411453609849122061718432132099430628548144699612983740576203472762166400287423370895338204601964249759453782492218056695166377706859804661464424750891384453003525055767782847176275618209515406451181142791576485758022627158046178065449153388222276131888440865952152203955519278599661709807622534800252411053956905061834082694634001087375804583949731210158346269633265498480812896976326490862743698398592075497431204647942645503874800501829669289244989139514432387394414224470244564318534241745912946713228273901512687608457653576536297916070099501363744763828178775139405836619154099914362594647063038130030853782889385473144723481640994035263459503764179855053883293511996920526232858098980716191580857311404770215621762099207419694892454313915668909538690080715472364277169247615426295726550096191628342645119444936945222226654051528659070317005221284806428071819380066197263325605766665517268770654029727320664266525273697204186847196579399540764186978412178295726354056213853969152307953219176232953676264551192347149379614219267718172408654125147639579402068338552269762367515085697422994036515203583100702829470075510552211744489040568567806753354487672134349302683020402784746255197983255094733259485150526794936895113073366536090026125027627199684897150396573390192322896651971022821119581515196991098354665685013308745930478873285919926932783839580407870698810714041916875378963718858636115306756249020597788435636661182688000819708747135654463422194498208137976463211927597748647412445350562787845075711911093880993264947709308875841022936197601348001527685130277786713772137575500534361271789221655695078304505210287616594815405945857147262582875234383110257589069641716191078603943046772029215956050442995898698045204262454019047563954383254120586781013561867156694438960174380215331056791596168546398033711391404333393915111693923458189760060426284849754104806895582450292734150939472876404147440918789272893251033882687772655960839112650262992735162696446265178881578574422351372288667819852882290186176100011965111461736680976382055610789923517544280620949288543550055195108575159901346822507202659555450605114360579081826071042569675961098747256534493158699839605037284006319638842765067799610392606465681149258135553015053821827144413551670189701099071080447232941816493751930797203839121576942111842225487680545841812289751517792738013659141605648281525868697514669607104089226755084607127531218299101420806525014575629482680326080346688914048986587397683601656986698918321621007267183459349961706895303273714041704925455016788094435778900647872297891389702505897324699448364937545447814931358661867728042170050935334514390576434200298139825955268242220248174719485221789828988234674675664592363399706267074050984754040713563003337864451467827859631267831537746843829998522691574338877859733855478495559063017629896936691220346356132649590545266367944417956717435149706543358122988048804345162478163017408490594159525610348599486057600939464865275907400884067494952708073239389282905881301242337007938425005403478385112581184682518653623739189126112189840319888195526106590806864078220429835437571946482672091740328448058625290515501555634275772649150845092686284603776546334657051924794281641059880788217905966951932891253214771620553274145389979552254190182232363887481336754667793465513101916926267947696866384501214481319085991886517276164828443492080121501547542717852631688673347988039268466781448236998288462015126101545249615198479944972076450537051947475574343605120246993789771349792608368943229820940907542596588402503533340649142861397860807817142946072642678703839122378010392599303500094940752065562634830487013987848126076505546937893827509996643624677652246094889150360387353804546093300018550132986027081544248721160733156887375975589768457968861577274350049166211983451769136385574275447692055400294259521924796891598945835393789724949401997223831318763058556755849245417521293023829720196072702442972867609877211775504361113200492475972192398238438259068095990146547027570028727901521345528901672348213448414795822495720523540914976837309702529647044320907904924941744661776091091559257848380241055920948528876996098734161179587064453609794295297897944798258201413064747521266012707369380107748364899592323148791267875429087774972940473750428317223788757497839080854616878903181512244449904548160504114397405516345086727418734914857534015857289858148640831773203892598558904550013901627850780050329914749579379151662907130657563343964570980380324072175077220735822114628072991088317713568048097193984632907219164441651803297378856907599177832568688819997467520977511603783339622769497357465300613219432515871745804313852672660478984999063089323231506908898491278931995098168561403350441656610518188795685081893548348763824380700131059291980329957123013304534826606030823533281347679843359040658068006539298373970460792222221045239523067977936867382371088346319434441411941528667987835814044310005704192461388410840296807295657526374495743114214726826431239319975063847752196016576720678476531659520412672458839749565671268097674055262628265163231312576524490820602517515080640388988918680598895031352653468293963934540555247029017763172473158938369776877050354053436373459842540995750327174341974891338254879234100831018870300147367217286895281462440908875274070186089611066395558787046046040246194560923128190482238274700345191888169276433181225950373573942736801931251261067107382932599263447084100359769907359569606410810252293298307383120634027801059945833719196068784504732440983649001921344466207622554468567882701402510689123014838700508000091489902008307924976956350845353770495340329938348412965590271253156627968388499111296897393494437819806331245210634063474628203667551849583176520069813422327137727027344411789844235625500154201588557256244583578265780269212085902802362381558205994829626951743574268711893268675149012020783225085591781931042457845227971441872489425520319710557545223750182331236383836744657614364590562197954747140873466630022398586609156651099638069314286421711661311434365756373303279320521309106482883017829195883581521061491733964338048356784925203316421606928208039745328851251870160658398363253553497234647208159322193327142115445417528482468877727977344337631504222388850967841069300368622082394819666906388297850995398172069661464215761878571288927325872542022177998604787320711662458882059717718422932619077593614679132966209845694966582968962461949132886507020335106161549443620544396583326808070722163950328280813659144981836724800271682467728500857334310890841400688696287667197461233368751339804919769534500568981526220858168048046413915602771376933755544289913369901773970636329873117123060094507339037484865013002624639946319385588897364394019458739840986467195568702837499318052454851796502895791498045207244111347127201311163881379836731142424026790317285418388346411957703389235870479007926585092730729910667257803531864662224238212088752433040399796509514543885645069476264741227349509365498415910729959208484299720347982566783871352209620293999664236639912402874852346552667400854267182668537944259458565969326420316449989588630154756920349244699779036742028881920477681285157331769489338825305270197456070646116715741727906688112773416999443573937061898675519247659082850853814519801390672228398009152474546251224576180862696403900364886317704047264468699358546982463753884204252796109114666905716004274469930131200195389927631607551276710135826716547962651631891882161010446944760655297483760347493964000950303209038604955721731392937407472262675745687755528258301558003058959759491308092212174083425741142812452418924236566884386879203119146054416740061857866662044013983528097256875463345764079121644682872303207362250572018915345518898179063809230819187545785537309219711284570892793427283204724081911002001220675837481403208066002544032487578376296091269534780903702248838089649440276003584518591106543674647384247210582549300115676283679525160371276719295508309740791177239564724034505822822737429203176095997368503918401145968975476540743681310045067781376116369988738507603996647033367153610027120836875657013372200073731431008420210766894911873737937620925347315398303842700159508242153180438846715627018129140605565894262351134878560296404126155321575428236900794067476887780614454085332256451350314533917946622574906101784738242453623545782951749355761687780913912450202038135573244933811291312883592882550681719082034750988532847279113092452907722861380820064423280173024329293985625068171513758723817833291030537235598722420031186283492781628155379656472546196784288460974174990317476372239964885019532265105452433302863681022378542373835083759667859269000725790607455302820169243895056380169673026897194550937722047077886340039867107397869167831297695371158351793350748352332503858199045114621178033388330007033351089385893870250532206778141841737251109277078166780188407574535738675839418314291464631079283248860605558761980055749409592135816995137501825333981747807958305732181172023775288473896021042020785742615300334095057206132680283791154026055945814907229171378406480289417576845254522841538064104303030940688753105579033684034895981979966830908172754675458566555752101272289260966865903034130154231496985361509921240250912252644206136593475186786093598855438620599147501303290600660179384947291856205716270575701163972562308087798347826044466455998166173556043863349499264144290186915677821704090829686987680734529919501956066673726821085734700191327238027118186092830334662445008223808245749457011308289261831482725581606124548529807736927892176050578337364073672185826251356436011168262307795441979467557489109730580007105306756877955963994657905232968339531545106786860533870435433552517079322911637387563890803265633512459781894211413267543491625021671484064009396068701447481043022537460992465320795339394656617285976187081201407321240156289130623906029267508248638052321922121655984830460766694434673358008883115322771074325622762472985904689331992241272319539363321168730418410061037233873307344363831176766865850330477905821552464246182487880613384319706336084611718593859709255553410575503421090451183508272472323138210752934216968762035204374940236056915162427685220664988969395280062952020619109124595424629248674184124809121337633241390611482710432364810050910754720716616159249244486273615416378760782306768044601209603255239436604824247130353789212138848763672136693807970911605266862466778225501771178872053875830545555552307451785492654867375447363708969578547455911232116488214133796980227834388079006742453549294578039972625865064386859788964063463497950798434746452715046365644579571054480325480108706422558306473937385239093130354586614037267350328299778448884582561141287013445097381683937580725428094245967717990357551415402461464031449645554510420436104494583044314802492656644092178562379703630433900449633751308325654820762948703434710335647331235931645132847717412497005927908443826637640623256080828199077745905175137387677628761704537301572917642393465463483172411994356245373018769589053380465422241224081751747831995973911615367630226493339412879534420355325236008043609423857439915454116869809074723789081698318556274624121095406685382621171841090881302291069634598823981080325597463830143797533360533829682722209979071117628099978377411945570025074030684803740928108777598165111378853157947165442229333793348989401687586102136987812728323961149973193129184318320119282284042356748258393577881957378370182660706592311675006090250959728357013531794782387387510832306160947057127465939788362353282880029737995825360945702408795871218210747261089797157550919650884664308486705450355593275466661994671643308280113688599857204722030416862764842194223805737803703893298074480581149295826991965087202924660300461518860477890868628861614869263736307123501193771480178140437318520181597010442902366443164478609744307113271616290621943390594395490243266062641238476403979848603106737189922929405654606154137858026467186065166340525962617421665065469916789602535812184863143348862551045790249947523109509897191903336375045663438285572428140648578135707782692650434971355668386982429907841995337394441499242178690589275759478042949187769352461884990955534736803989919355240233502821017241895167709502961776652674066461920655894992627384004777033999177575706878718934135756955092007677378866500202500529879839172091785462919966033618006799793487138649926965556786119723706491981680712103576055510706805621906754208853229243191406852800496382417260516728885391082322978171303788828726730033016988403371740732429338234252295347181938367250223071022620547990672765723207364063524258028924763071225113705889012627431817583280426675065140091361019792060650686258000932286783651084340843235990439350735093743399678017242597063355531434257672039562459186468935328125556699774612665193255678426982840492610255888235448206432071371614971277412848895859027427968794725986760591292451974107854267730309905541263900468581899440724184668466985213130096181426522255939159992534568551343681110201213670633047695798764218646851317733884525398915293445646486346474515646957876851532764086353269484682730833988722961618028034058252086296565013100055300392063670639091557492327106700399548612313083543309690097677053372158432529331615257570186492277794998854714275618042489799063989706091429767991533220882164394501343523775829984600630724670290308653470074410524800368237404024058773002947623693462538184286960766157426677411925340468229492502578914824624740722120861648108951545683118083541758370424735427977666370598187031821774516078649373982401856750131854112887033053217326925237190623698389550002582241079413908714444062895894231208649180759018414284887403832625123297381952184140344913200342213646885644930902803424120718353878376298056788871352270025550224894681153282201194431332558767010333345431206919067623931865351571534595283947666113276422418944733791538157000310512305335637642661625848981920732294293612756014123179739420458025996574158032384187116576851506702757966226870012019368322961344883697053983005542064683267543551597800193125530970947431705910595563536829432312814320335211380594944536082170156499853684529571541890558906128286794535439121195128138215789458390000206126537647433186186526722873767625277923082394564292533718443154996689816561614813267991131040124265170108777117764179119459661354140604401361005962941592508225862743134851524852120043657986107028645208829543515312203987651565008553233543024674391440513308990014493383679747108444005285886931048448805196588307578209756461020167960807476723881976899402299625956920121599930862355169353269045967168341825799483165599276512194082421898684648728353002682318638100138187179368293574457246812822665919250680027760699871201376481125503075290489947536675733905432023667149651339496044975123632348298723866908230483480140136426799117927815880938393949383656005073032229969915170394510808576450754913583255274881941968963956918256489805244582973384642307763626917001893298888123889801732611627699679389167461457003199548406180409374737236095398692976496735424359198042991408434060386275125154270257068579029875574841972414365833678175205560156320544806946513580412225354051827994720116990406992738838431875414468034749809911142325613064827984364497827218683282636003872135430290397336922235750198373092317929570357151843453807534202878404962841395432857190504434892853363241502216319995703108712304845924084265177049470305502176130641198636250938277859423880545115801995809688621094312547227987974664308729133815024940558583665525979994697388024685967378649891428382406422250799863823909633797240232270976117391556202441547632954309489801026016879903716009465474560776587520166636335992786210257020712169149829636577143260732980889114383728522177431866025580434628018054108648569025430368800186830691795150656482147328328155336656030439150918587442479897787896652021231312762221380303037634189606219706573324500666150442124844693845249890614080592317243668615847150103231572893033231103010988780532000394748993952594352205350500174049533398492699466903030843530181013701511512240665665201437517671717456604262983732856209725921645030984642413273713571328037124440535717621279728133383924631279060953926941070471177394131203477661343753643202099065868997415551034143687633368429758453121500062715643120167907217673280843415479161660960990448383205267860015917731263060103339011764673417746918017532385329511246987336270585337067776084079333367695312310909054708080651914876749594393056487137007580193547435231056263260620853163232815158030285119943634723789722018892752455680946945029078895240485056210750227200013416013108605209974455104501737918883199059114970258939211953802684516475905673331070575264639649633462087811759723139675985693292333907432359365831757145844697259998569022881139289015471576602666546605414786508275017552135970439628264673088870134199651283984986113546228840015700821797238083211324891076708125124117295500116977917191121336691383789257798048613646977970702059744154256499988382833481501311238439442012202536017181098385866334163163720638365492025957322918532437540987935914351086649052948645619462882934986738494172288324641189407705157417410688852723793947113468765969914010547107478945477334159418117100129258113835066726716491264892003368529877344791962568844524748602439948278738511729789103974238285416082913372088281583755141915932126279963722103608043214602417131942877307968563596310341533916521383994248462130625123518813170406737039961289364585563338038507178374343633134477383745874303156816543045565717916833260848256030632897855113834343597245627296020394283252501932314434774926037475455744587364642619321278877710645690038240771181204972679477954639481022072508021354889087876303287218172310996491311698699556301851230664869240963595548054193242340624968998029881545885664408753301295943307898082053680729985133222812499082874618999017407925216673212904048191059776475303185024650627220782078981299498344207266077907904672850614067406417800345407243823008662988725280340075022533679782347720458186726890134302209411596321341627208245452786852575405614905124859276778495625627476098599611262824887940293043892707426738479818469082921012401058208110936831623184138520321488546369293974294878478374403739106892078135131357084904269775010174098886164804835903246311116848890560398206084097260587121410656517891107200247482556147586209515199156071505252187973099778647862022682814232813511729729507620991050501682117448244840983471478250948139417187082685905041319160325031234669706107162483879985740154171398007131248882820295398097144978991344708162149082617132310582847870716094202237586018233398145070811262331621884693112450910094118044828681574081402323999142139508130997552998751510467548572291662960751499919386365599411471226466772154758007667430386950948069085081033714801327648584054498162628724277022897683233558411998966167599014520608027806661811470440744496767375963227870295915991612898799858227096362034147241065043150724757145265397472620802531040081643199752144649370784605568579668586040930128335085800976097754605746154860295543652716036036978564708367722697433175738470223538484468573672281842915869610809378006471631008810770252156862786513296603182569991483083677071027055689535083558469360550658174202541379060635935976487006090085135600439070707763736755647569616220645086451247336734317933955818545460482495984083897103214287806870977052806579379702501844153775577392687405813559569096582297926512774533724520744484323241096028879565214510208630167240998351374859992701349283061216288645911038847665386426933331842519330270430137837601760078226978452883836711531995029038057107223250071740633916100947372041550028539959788049273316058606510715333518152645357869396939771331452683306338071410505273885396361059655561875913284535395687499855322205464084165990465927477005278458171159294541891466704540408338983512266960387646149601280295036608290452923067229126254989532412048104931954683422372698614408865605891085219098710151953806283253759141195128749985070265315587114407738170500080268787781362387894921495610006929935492970160296889599564556918966663261720458980997025987926419584211714215702424673378952661840745327444232185455988101810251421251202593976831460285924826417806666345108890147511690554134161802382152659266031405752881819349445987603141340253702630570793916400012838390869515573483462425601840609318710740894781840999870188728259644709952744671557715623502369313667200255459065484530308326329366081910749922774460506268013301763549475888626870963649088510097496797252043198075297950548496951654998333841407273179820399651279641135162997406240534426357448901007997950549896668370685268999360348639724429025186066580132202073705926984289509694386750949238044892489757080193250279522187072945485936016027474843705207471371334268877639067815535213182745767240429420638314788583812079020173598891633793115485178768183942330396796237157910305181486144552603186100692904473150098565650969524239044311555960407852460134163072208221571461016175544959324550691290389786877521939735153324123575028452327650047732203768611348836166420198659865131761792458175893437822844540155418845199804667313454665539364788224143612360892052889477293498825366744064099885763904195648957843369329715904595442242128811838323420500844460236770239170891457799109179555901659241179125578124949102570257750147661842051466410462753658812241450959420598306149727499121097168468362604283263802782492180413296412607970369245291597609722526826314812216446649622876877574226655156098144928667391689682227831420267812717317878063286299194913820129983912877830834039203060511667559808946258380385418239952827098946334383654823918120046731758307545757716956473104446344575541459876476041586671864946973329558574266721718670095927800040011804342398289465890032376745515334021848184392547544453257469106201971326412929118449802569282302956963385374993198038075189835221194976125720731647680989769964133474133890693659376511675769370087332930461906909844536427678675158318499985511942714593285007834807134341474354629262176791780255934722119004027483274290539459744556211163625983909272436036354960020917201890658259053373579731652829268147753475219627682379336219981323793524454999908683473427192114438244635211789057551803949996436689751179616928714700565656149985906262156980281250033345015586355146809521472176917735908136351215846346699038976331217185505631626482795357014034461860875129775256964445847155831838764947000917553848095377579852279700316016161055905256742740579121429144242585245750472794037903250585480185691848544004775101518627458375852245589989885152040059462520707438764968047604323004708914974339435137531429094574025159024379514632300800149412652622674092233896659838854986158629814898570405815733947324514358240238139750437055220182159814657516165290829523843861601880700666633905675010898533346710941856292897967186125606522721445024556270924276868718620691197626087951755929214633783063903396426244783746026677151713147155665213408714824942159480957918411535264043852572667601893759562705236645858664738645684258313660662043615568183302323519879853759734953077325761962537434816695300422321982708619505816332971633370991825195782611488124077834658870179294004321117994326901865004222375842340027943438911988829630461164646476509970532822052715628974815115220714145882861930284688859639328083420881545856428196094829746779142185685570521358409278662422920865122245415197343607181602174292868579023025071447518957080413372728193693092506509066936683506845907925314147974626996947674397839319594458296039256409158529446205413654837198736165534995867785605172919115393423792295856943757879840736649430178337665392327147633507384681306753001328943915381137093525860070925647945608283947620537846005480352703443759094908770539443792177103878422489932129124135259472823584335365290043887288682061158655950470142016760840967388259581022461079008755076081503751265521111122519018800359539281642187399783159373314557433608168192049827346706348593346538304013251984315848089591204925663533693096220014004785002433577570735001308939902909039535182828957853871230229002215078995417940417756700368986488808527683178831251819245086134899348907959759165830028194924165002883553802363090131734242313008203807186236565534993778678596392223890363437594638922441300403795714852583546140727622397357375913819369545724269156621740885138575584639195863702237212609198044277424551038071557330824340605109013923648629756469298327278021317506766376866006166084102990656814284779637712791836696999044093623535947733129556949735474803978291213694863900429376925839618849740682780022216995113001426914554761411720511517271333708628839630266980275946571035720754526769418998811862811796779744641023677944075614457015796907349100975141218170335119295392447456307021806702835902071089825275757597235899924710958833033389433612375059074325792886821208834730568187048848118792810115923067509848515142581994443217158739294571000407106039273346253509925082898664352598853669556848708924791104777243515830436423974253819806675260623454040484725460791972662944381478115978510468480636348108277666839263114906249954125219662644455357735711268504104908189089800236584809776236013373368256293747549149419170712926679425783012690240028194695252348124215550614663364838866558003620489516534422222354212409197984335135080793399483514837420478336479740550576667588978718866948689038507948712744960604088938615236402970362175435467980824062341863567971031442932082611386807440373454005597326571996470317680701256885431761420161859503791325433393494926647291331441770513755251297396421664044057960448142207639275345371650029525115067697292501030763003723041207576209599441342212576654527755438602065897344827443854327375843525223557358401607981094508584530959137041963256773846563159735893469489410434124086358121283301077468675511783318165714702976801471480267064251291455213598021770397496622041331748873294941683546424346444762527444377823836294105857721636756084943364849789116343538637594253102268565803778627463258663765209555061825750769372449926704513645934238003118763998708321618240488452839811961369967354217333644262255974061394901925199246012788250558979629918338748380993989772619510904288778750716689195555913798933726465444597613514888136420486286968773736111380094587285342435476781024993478267959240122080018802395275715928540644519646193017254029869420124864483787167768698884101131056002998463190685709349933961199451218045150578710523537241208124006014480170228148200676528029740822169813759980850035686198851334347867704515447656397814897950264477509163972663168278035513069364013448465685974676066061715334342721250903946958891070375566803374340701582211342576560456295862872933586218787848388600744597055911656584399642408631323640881929771175172312516851040506383576600080167775328624436435839839525584191460357491229406459419418406552442867765818506219554153242053553479276391605824296430543082822152021284172134341304884489759524369632935618200573584627205443221060356498363560883187586083062941923691966050766902205710575614745827954110011330884593853573768993756980060017378871282250500510990982956052166176403838291686472018549264389752632032195368583768408753009547981164895088688529172536028608232392819179369994132386002697455625837057204466966797994181186439720518782151955819965413571974916694625404622784922876857590509810733509371019677570977630042325095432033062408795087358641186291983760067368310587741948566090146062186448822409399737166610653093111980995263589734734582041223444094285994131995884654935955868915805825983323532164362379130193302770846929576372301628413877584669032364902324730579999362558092584041568977902563409916168051906376715346541263697311732279316856685052144492649143918189778706080601805781952691303108216730929973756671495670953364742574770597168099894499194134720028351498927984797349366048594507435548122175364721096882591809607193321100503099259346375890528639894942220782385446782771353158987323321920307758836024067491516955212944937066370001658063505981402079940568212838462582469016011697396594334218643147105476412843729080563391917731534265573267334133358292288537091936902673465770669276225717994308259128722781201517779438780778624093691284604307904224085557248133671299179227649015203946577274112443939741569195931935738058179295688224095296622280982580025028308257140891228098652775898118013675494836619819495241248066798462925346195013020180089704519604279145152397516957151423774110754246673405727626656898227355771064201999927381755962585561143127970199291942088293221310977193087742721453966460177927863152963107159129017155588979337634279580185193793958554922772131514093895841737944610306005898368136170879404159765886138811214394102507029669008655338201664552942097257903389052837454669378066587082121882945239070557981545079666600131564854057695721978932875049396736337983665783667092411013484402802848003212849506017478462110774532308297137425204097059873578597159222432720800934246876523481378122247199613095899776600135595119019707017186737476255973542351711159563883286551164526047173019789163423445115039495486179645592791153470652485716212426368930111288295793889812881670820228160338909360317693706163677979030005874829307859109224820890379900468093399734920606669192917293102609671966587790143501517047749885510659820052497460441448795424715664269960267010741093107431221970266245044693912506789979723304795632023077871064279706947808424678827265423127667273263976650798616257301032843042849340651295515443332850928080872556912817063803069386615699999224367204854581724637020463458031386920583010297982122284299612874680735341198737130341847766491046811924140467529857528966705705793041648680201684325009241804403728132693517039837226069803471091903989589018933201286182465148267665655077789898963786363095394225772743110109320128951229148882085922372781777564936777714334529088799718483128392738795114907144846941348313893722915144305720793812553381467631626033475413258577610009691400873829896494496995388201069079098812531577701751322085743645689865257371632520958883729799883099214915043278464932405670958968925178820291303872373216790800502881746319984650700811862889071088783792641893393737845426117266854443048869719842549838834383419276993709089651895637153381450583163504985945928110999071866992643929960325146812220080383464025311027880857310630479340910297462535333849958650254342860191087232589380359051175676211370310981542963873739550861951896788732658258428668594543251118213771279286541342051933946975304496478917255400364343694739122338445287077690480820489907243940029392089176587088683787970657905529245269857708050386993406680977835799198049237143120314614889991497735454480762214224057102026143243868640406436776816296511625770704459559277951276770652108401447387794403472350724327864387216908422444188665750339971289767033974350276265788440730482261352154961879769405894497912475816576502656364745296874089121229258457553779872084899584372371153794569236141393683536465924770611343301697131613939772673048826269712960738281308936684845922874830888135124741364787276157650332639761389562155296720948569382136434976815114848745032078683574228749259866094908021937598117142317942509275394732070975140706465690379322378825277281275209973060371373872876241565739272985408922071565933261116274780114682539402162012532656372421966357097343669256425315586185752237480353071130110307234244797931267119389165945692264226086835946255948724086571629563130447753831189769517021794631038886833127424532571180682656748754552128155994584444805057700387954566778704774954478605494715346702038167362690779183531705627783571044401011375804905485790978703341107249326370950407315718665329758299048853254984138420285196604425226206931586221733090834995163768863637980257131270311271781669563032132084707552826509908781710892619272369135418976045475428716139337988533993742515564588609236948287496105381059605825263415553836216213792737577996089525970305988111493127521013305550742932326234377896472929082001214745711143191891446099489767952665035638178693322200701145947568785656108847303564255927683645665054490699433741314972832026129959453459289216129826169968100016428127371472632015557077400356192236986281490068196501325621193043638458153178355257280385849387211834845884439633696934274712939173031581383451069596589109420576418572660213451054140981523558973966981307956971684841746460376461326093801051007318132807254376210938814505628462394579651750382283053590402849468663662512538900078573936604704419798162661884898959192763880453192717521145006068894243815349906608601639250864285209713644697208025167503147972819669998311024887355715171051039722864888024619863647152513845363653942497822984615666687887432577264303103062382416802905096759264606834026484673197780246256460750352760598240507146457741337646231916715234605938064100965455370797370304392289703508948267681379508774071401204622015469127472094049047107269024447630769982476762788812010087846934574560402355673687655613041371079657321870891835273720179756971957591859933545117013251216742741494207556977611997340700492230994047248848391040659470491431047168773266197575490366825675380659808150743885418451277238355334083124789444991913875369081692917065970136880502490234657153377228468764110929360880404533681567250782956963998223829769446936800549123968234748808055761352951281233544657140059373876037038010755825456130735608721154179078159275705611645651446424887269978124216018679231787074932456127108923674378412604913164369262171450509130842913712052968098584951579996323706839457647178609776795514366289951298550891615265121835151127217262851521164282770715272058425004685028981006738108542718096888114360685012213439807674812187196954300636506167183732349887466851500893516239337638216529064600081756661702223142298144934766597933840159728907607300308206819041063526810476273411704288165338822600317146308281778984031490177926610813003835918837467627322549898045223108385200091389524040363786655406030618294244620151987019684618462796312865303693834842948973636807501407989780496594323724759319619584565182467743134226174908518508865958547069145284706808244068637066135878903325805537849137302954141463195628036614493550171130320955079240090186215134345663928752596248881206545027057228574694824178138840502739028518674025191871886801473669984413436320179182483604964887585744863174057379658427429368946150961359177711422181697420787511620442453589429627232778278997434861788984767482794671468166919150033793965488332151097460058736072555421698615999483453260222153488887599673011060186057648093039210714088051661239732294308852443856724472746564451837006303980623374880806094078449877364369097412438536312301092855241334491755705758663601615842428593255234659263259856930497769789976488944208100326538430939357573697344665380038666074903708335310994765923584251479988041078647847424658725185753793124533635343405407418414089591437286200515970525986505929178317044316304879632355184586800292755745001479678219181778772676451144906181690783848483050888609925948737897151182334276898840280854483201407379429569910002918988379090778109727834963095169316804781612701526679139421020193642179043727446375131950350286660576322394856260346920524716029598882361507913521163150103655121826485711663409757534367267478590100940819196507146720689535652559584849022506894776246613619069943749572177221996940392615188624697436811466725217908466468951428918278170028540812824647518671271850913091537227974794813146698586815315283956399799902652284623507270268211667012679080080969407945177190528441520428794751994508939144065609231816303496222256608409727497152160673550531039420430115290782587020135643880700289119041029747301247774416822472883564735491292214017322172157498580211021983984357486696792919445169172207501867767521215387168928939848765724216011556907546025277432467568014753940122395997152271210085493467402983805332262380994160829698643139540859450273085656726533283899053447909751223757997477102860752743181064279238690670665015744417862914878984247431475488019573012946541171502255063632627066322276073194790723525363972725693319216370648550643973660495357232345726451176040751142614495221478036232895191194394622935704380487321096968477356419194448348783980557383003213297641798302085779192971743053927042125130901555485643620176354446209900817702604882741013385217216604926623227779501478519366126325990405066272076096433480870365029920493821911602751191133034422868768490693857012390123329072436658882545393117999122670305341994661044379108758309684340573058222234551744652160477194253322642258211446441036404694133068949521474187362532051767478772950388834215494867856674254681425504377809012218515643274157959458456545974585781682875699041709662988364215950452743043927508204551842972669108301089824666299572683365013225859804885494535977862142643894382912800010371407302960557476812857726443035153505231227142947412949520904872595845115872163348399691381080701650978697498760203184520566035812669414858668081335711946233082472813546894322917629109589749314428573378887993019897167516183046090124556739643761485213558329539892110967230250943709717100548073475699790578516516411275275036274396489477917207530189609940323944663234617928270142064219055583040655769793692570803912143359276264889707243847451683506909115381681463874057097525763547847267386346142037911990135050649072259536756955182327465333440492934836897746894375667150517455482218414711286654726338012331053680782224965791856395105151375748162642008206932390247768875508443307150223760474359739263716916492470158100730817991845088020772066268617800977238358698029594774613792602736500233166571357349377456914443046426275994663845320121242195250775871301550559688653321051833952199362666878972821715442334636125681756476830962561704836945453277108378903560610918855958831454184512774189900120813445034887403636664079376270634233366288471106577123773539435697792698398288740258896934517564281070132369157097717456813885469916175251543744015749484146320530498341425502316184672705368506502633485723366783726383349323151146171797922775967406918636917973081684840061631479870213841795401132440745074520351204502234341241068836159054708116049271255066956384673039646081877906340162180663821127486084968083542553607265471715256685647399837101455979881309506417466036253327948061395898073138315032266235486995680575136088486265359839036632057667373155332752921355649105518292785468327227905473900993802247173622441141460760852274898961246269074952199743567820745921924533507531990917687245400666929352488582476319556134544033527809259370454122222948662067887289947961924217555229978048630638493378949989637830826006194536040312077206922203496181250525962085646844736010483634964304184129222957445867034104629434566660266693224429420498502386818271226523349142594205899746906643312015344356678877605303196997467778397631009923229851400620019345335504350811945013277418307979877319036803670928498855149566880745473324887741396617846800490351790949876609014210736189379895278786959107097188558440745288828120428855219229194389238194884570475272591705797846255381686161185632006948631865042971253483818083778576198086945818878484875875337168852927443160957032946815681527453391251766861413526591256730970761721520250877810740855905428590925156245860205771253184596671332200260863514323932604147153382898708602952313543470154829188545462492589106190600073050952686406274321017998250882888370513204238806126272528911156231614223449189056069420870051494369187623047530869516494515384390134082374680923954830023065774434333569522550562405653018319310650862380717326077934618504577413013130201764212518696896141902725470120142670745575133771071411824191743414675311975820504032428870912964403458584512301517711301795768976904577999547358315735339083882638289637654131620771903215678520339065511034098990430370115768936487400830917251382857854113670682321516859160943122593823986534177550953448218520086291109193206999052991881516973652810139751473859709966765196562616188698031259618406830967415585773615914827471622691387265329952544602619789986073194319076433568575904711712006016660362010598643458419734983592485341503139722097077229599304300728899731648751246771988290827798675585930322080972371964447126441831544782462780079045999190502953193765689141564016223709969134429339759290419107383883579989759655274590312398300804081996242499304618655153549594054331786863191793377620636711662189076636195359706598036993941931122485530540369247426634716133401571267949788388190750687234982812574456259055047281636548714680070959757807005538270523231371880856393803770328803343177095976845516510316705516044753378601779758381360622188987911998979731140818650021044308092165198905682792653079127474371000564318013416997338366049573614739498408913037901890755912217469342257960796312455281830500515992478855895280810634235466516492327934878193164162064985534185252275004623987162800188098926217531896270013687586394515408950048404369161887516234125383586623294229174310154061523832299836482917719710266108188214871505105819601770543606882577890851029971930954723276734812099059941587521141422455218096998169501611517260734552582735271433499419708900816365478766379607051484107000725326588003206618517762933413660081061272120821718440924014666802944910273149185983424182350109048614665517849203409957083707837850347043267954194093052173357067349348289266174495647180567723986727195724254003813128234966126664779696427985549851959993346694141156906799562479746064296035103495031830217850878123881300585118478566378176299065378321630729690063229230897986462432222476723735497011901893411730445420724949548046972810797236411941736200630230525672587452269788200955619284199415015013071433765490791557249255700160888550292963879966992509292536931097936834419252587540499444271193245438208943908955350141633448224640529525325972775254309802870406316192256967748947521739082140056931625219957767323750851500571376155314936911902899219312862819583424372932295047638028267083179354294827019446108891038290232045146935823229987961019886940672989580940317625216231729779846166937187865806555217944379672409066131469818032755576976564127045094834736698166073642545693283411883342962373984668557979039797314563441562991333158058730731692313072540722630758202512895981535896998368829073862395053180735420668838272602871312025415544334756034427701714867321239033884750979305995911983850434447423826430429393543130074171817562161397498373082804369683469202939118776484196379862247837799906512595049538624983176830132982603468643225229472305417205088552705285404983858116958793149210548507004024934471648440798960753656052076859208336577019099934369282893721999575915438531055084579852528485557600387503520897378493647813434859220778310138746376085891806461104771748055936467434134397938316585084131788776979168047141727957739239082656686680677520311933014580613346657178673043744389046307624198696021324326454141093620246494696649225389662922846013242326938307474262990416299176251869666980199357067576219058662646058831761100325209472466841819324092509655302787785557207296904571602204660011975122798682989111348311273960632171166121106817114823473796569661178794701963892559198722946753392008593689181999688991316903219502843983324398567911381645978420593580019734541682467685824154666038376285905158815671831894210061972453784363348760148304369299724763889415438072615985293496724084978590423514916480091866807770257607569076175240369545760304171324728902686768577116196933936455943146990093571528138182638940412560818147739530671582613677637171161050820492670083057251188643527688344657202908255764929409254947102161178911043670372131236806654996316930030059687525624159270671963656108279277623454119130641160007665093199421327911111518485192048666063604071463536312902769863900399862649918084089154726075443665250033129884382323888001901493858974626747875244641190004834712538422892744354273723885653180639306111838534044177336196005296590701036469495269802350675434619642749800822774260786019184333146109149768275415961528351672090584525181204302141506489279605787413058194557572043297017223265726629265515317396636837122505916005625156237557638764695637458962657556532306617668255792655691136472012251659473427770073689177636007596637100804864919038720190223952820090543359584083669239234252449595559530673674721839285750136767710319260437600162170150916002621830491131507844132278712264223832418034290597712833926382855165211992861933253542972379566086587165114205250571586384720723302245912965113205396485357213592785515652824766794504941623838383008955254417172770349577169266200203034952965267027883886818819284211956795136062081288708937862755536505109624234663245688837501284343541732649114975168762494213759532945047327244157632113777929341272687320750176525086231165758475021290060538834848086369806112132986432137253951561467040374406683229098882522863550016203954557156900950955675375007471278359854283293217741741335696579295229727709783342511767570010048769897795743580573585715513121867922672870474420320250168730471563016825459283811149255709498913526380105808481950939330225260777919862659252615353527471552503767602825800378396772205629646836195757217492369943025797483496695314652200731699295756571351481835265537557697187529320453936192673451359247665376705807799166392220575675120036820674531648307749831312117011260801645843668996654761282433931982182653216451035456613719746108537549114896296738376974813930673295536375811631534076585587950667381854786502453125924819988914336270385617196484179643578692817528371289104553801864668155079502499721795508344088091318380024027891875954914736664509188613921079571838095110449901966853358064736583848911759937532759698449695038931227580581338431510420588090427035379619854169670419540271967060824290955316714259522938653034416988647594694857581040825970698417770698092459427669957072033047329816481369457548949672028645458134439188541009375092299707717517560508022638336767742563150754826939705695915642593077792509837036241246559407466022945182365797626879831077484207470183373647621112039263068503583898519756784820586381860161667552876494926501555731614575350197088588308131952879891634014375986676371722286386762012979120443856573247244163020381459476671861313054115887095603566486338415486236496485623266180109377466433757943183101595773940288259405066138702877738035215195694033258566354567884727593067805964404456462228585398904743085109969964704011892354953021831475433016569352428804564033995189556804961760917423480428023692928644000406533916237914714782365040197737281096906855839423891197867617949962953477211623011934941618735810040498140838037926809982908271686717148134545524212789650180411800400639575240648768789321380130514441829629520366371190291294836386626359958605971548753400451731443808431033325574472768161688427425817272319012054459761710871510963302546227453743847478844858860352314129524252215112406099630725313356065868722298422021010412218112070771103467648944615455185260260971172631020905688657064344904439912403661992916750025096124853531563526542443825410296308328408049909402354161751963496262045818644771588425634462620477262017383172912553348512939942932841592585018320660982865414127924888948359916734562723121344624272901851323414180255486519292064075328830500229328980136197347482093903861950901991118421604322603802573768295696129472537994509011175811628692417174877053356452194858388239949500700364697387085219086925333903169423832783888569189858970468194437424204013595990971936806235325228232802764453402024850857079139523322325978206039771433505390857392138772503918001673945397449168894038414882746976906731888764701622072736603395578250100625561994746600052711878010777173343786655993802400247419551730776518772076161441404277835283740334555442635082752294914895970595622641435308057585522158591402558121904703424265229972475300021809326723871493536166325829459699357998422631779448876898456974674504547907253729969329689194454215857242932301117273552967560345856450090212384124373232950929050049250913018891445359857230563119831499581675431375546178294416533552914710702916747611492102093903196109164212603502108286339814725876164362482743569093421695370767768734219765349377813670753103646020260910714139844211750562906209429105030369418187754065000096750749386282065572120995607300488236945560030902651017027027610915570002802346778988169424303690627009808404109284205214444665308449300656678328138190338529559565968701006232508415491772323690327155444245871112345384777245602075224402313742558218072470990971900928497479513689510800265328931558316741629256797334939055471537079935571639238889012471460840485556580551088469169891475960638295727826945734252105268597822233390723383959611091932290694982619231567023119125312240589311362545209709809350937769172165267184029031437177027190399639893759427018936404824356095618243967215556500308122771855767667257228617794279581635046490175634213997421557464824678526178566253406840510448803161651847145718422547824170134194436320084502392133601334002225004581194162426442460497229839504472088628202078433055925070971777111805892476436158859896034192779484064122716867543428475007972378893141062800612559749602956568701610802589535878791593087343129103477579599791647045783147016769807904461532429974366772088506309952097779999539282579709970406724048844744667127525270621169931870952291515745372308809274768571479569281164358629684159331460270853373566619992710618864093741696335870475890847872594551946006620440919114213705473949428683037958451770328064021771768588127473207331953174905327893084678355978771695730734343593911297485967847544164715970040763876192488249639978802696831339588895507708684938072826710687113602328546944598123649737244675945813581116432866185450158412856038835646637780785371127291185856281293613515803194532252009572225596880271270972958992763192201738576254208999775088108641610305353257739920201586039005076169154046861405636676771261352939996503645157962359661970086151056981474295134123716595540579429733587200431765447903235848190685789490046229494084165716906910508680735087360690035699729453305899721429309606687178508505025269897113564097730400427638636116276489528569590881184707021681126387182799427984532106318666986081862258133165947640307341536554575670807552896929346441351756675975008079555111438116833473161514726130090829533241289306895909040917402471060020841279188708927308469460913757912246342568836582737544373653445930207455695599018586222391423104952719493561183790814052009290238120237298513429108740921530440445195042300008980660224298000896869946026406436320988201824972116789518665502370778064256404923910802592175188226900941107679453537782620795856204334976408199125307990993776631036644662272829755238398290341328952348319811895896332437865118827869916736328265897134978942904470742369380908195737346449381614821793083847024595807586749099818384347327626761541645111233086067261271787664759683966457783249941170023679869812926997124910311311837720218495231905999691323784243910539401989848416565352566948461272485477572952404326470481234695049475590066616307593208899203669765540992104047705943149889106901024026904969761483693646280680379157040812495459903482597160670802763373070853914711518839074427392163937511199182007417662411349335062058838553352404973414697684508817880671040242226039922601737717123988096047576184842989605951131033977757043337470090904455268680822340378894573971935757016476617104179612658390993098070391610552542117326624820687432342948392795636698493280842460479944095199525570181093541153277595353067111426609978009296520587631800736456249690247331629880734107158612273800089592534777195964297622166011712785249035459410925526983873186244807853387099238178527078448771312247985168562745228455792736816778506668951124323090338959340661827039215500434058469922775852006943059037910806992229978993512130064497358328003656486221609556107633320285694882866744616614861427221647344355710225506908099462983284160821810974050943779326998404486168827005764391185663354401081071111904318423456446350886904072983912039906774345307495395254552459671430722026201286403627127839597323134535938655575643829322410878314244541494654308537016958462493094728038900413295577405957425106359507553962610454018998766849393007273998096551455947468165780603391661057766918740127115119625488949079800320669768952730779607117916219536901259843953369592848377499327273683893281177990717390677440356123767212440819978850650833245224213168541419494249610262961887555970775427954221884513836708931498852168101037474301037192336088791638092489464828222076093846244214384318114505258761467938373202119480666159531958466975977056188700860379125561375842094571475325549103118698859635892528031025677453685765351682786410036495610539054744400308495461912516808696457571345309001289237652475148692129376816813952887679050995753745876034088412628654836801916723306343212572597076212219415997395267065875928471482043634526063729418718704953342294014284220739217867480795181629298875130859976986690201805520314563541184097063702708357535434319898997691308861434973107338627480489756786372851949441255397941423104417000492514937267175904426558288843720195334164349258533684115759884352225279976423434921353161345372621637670749076878571803894682626979965905388179855741832390365040359690911358989372109798676092004798116722995120966256760333618006844597558723396631306342087319037386288039145702303350015343656478438067402557010836221536558096276244555588999027517994574559181323078257335721341714656802142241253181802382256961949517497463363542900577917218360946480003857125303276873476745875984969163164630550833712623472402478992137261709152517062386483048160427460546978828897290688212227315415716220132907333135037376974821401781366339259692882520620795346408832310977754620234866905918517908429066728192648386817012357395983598640833031557552100369107101845901040962462129838423968631673395193021319954198703381581570932946365788686415165436002812309274939334667713702392873493832758657176313500411819875200044927410211458461788293536721082657786661117418310533618173013487197919383931027319394383667063600371509024311056194719284967982133254051089001650616849017561555610767413842623359827567975809348046403452167468751901576658342587585426355103773020468326935493376604388087004032277392811880583617338736483939020405980274406491715753811818641292209819971772544597537956630941616938223655972798231710956279317099091299504865670261133982031073681808078499172374268809367494795893131325189614794253491029212363019100504834887310392508261944575109464058687615679468123517725082618556451354749848911766759212438494131498808098432426144631485763242130008217073028133588968814833191266219325833290811805188752896346382872346244711115690227352696635725448564942430972591555589671963328016434896313690425146248543669308765718006666580503422803486193532576692015257546024992750584966277738176472999986076444027320958061901064529026519447762547456907219805156658851147637168488582681720062881910938603537295650004537913503702850459856605696561280449923813542296645815832231849801052841758570702842611159766191430926184197534601649406838885771758211732961334985146473846350837343204598199916732145198930770810302943914134661179811883297017068560987782830384635202419287774971753150198091256911811410131608544497124837569367255776978154720173037808851308899810334774875259098589999373505958543099859665520273776808454818847415739167927865713861427682245891663515628429962058235796436580239131868036426823845919429807487793891695906867007296130875723035336552518862534711511821027473216667919801882828058178033184057830131634452719759538951407932816520134967933311214242258024653729832636272578130774197099283956292234598280557810661051487039528065907638075530587925053136061388899807674366476797794239281391573600089374588758642993684838837694320015578767153700435310702019117343412092051649088211457518110101351877973635205460992210126592559881016460239036450290218107781655657718884077264007860853040807552876917634074161304001885363280934470874120977173373354741556849302415901187903734787869331661672548817156098945896789834181654871148256450025489867798098377765649611762756573493536661529025631878331388460757446594605283168650698103777728742218588138972007089577425512326446420922691712916804747937035883765876931278583419081832571310967103978815674317331762636529341884957451035994649375111264047832605729921760933449114172034952059458889448889123600780004631881566937177796802143226528602490660486905896339031260142768039647189596710255804153873165993411296030427481226845360324988149018038565499482715749195532131394870119914895291771397614237254981171214264091471459188134576251139619795430037829545874376934490181746277949743305888033089758123423036020733200059809719137435776691972486348416126097218239241464940305280825778258744453669500556984847196406560547836983923726134880092013014845818376641038303697335514973456788886668159496759838932772484277178825002952300624494372170566307761792772299874045838971238884517700606541027384896679051792377782398602222822328789172435311153464899130912170793769905649538648918469978366733519226505458274698455816429671634238179779297459603885637094369565203178227734194559204396751847639145049334992220708098817003117744808948213357888808658835915375283411824760981284441156004296933631310416712116393920980803760197808347081147392588095398581814454102563930254988803535642571358308791408936638231396492220190504727199073974735899655308255331757732406479116422145043791122616119781110180163222375955415538102178685080177776606992407652171718253825513853739315230889285244790715974717987227144226931335426135062737830117662690475350594458623379899157559840921182490305413978936631678174277290698690662906734323266249802957990807648827780473775176301583098468950329797327199404399322911292135108386529108858069908262187235637572719798694374962630241660298943479268681676231156828406986266682373209041035375797563467282763932994693353144983732515259368663070334868167827992018629282223841358802692476119312556927193597760423806652039706205514507244808561385326941248273945868961198075094857205813836173931179463775028880164529228020890240426432437332879966071976900511685486502860646499124506943240007337906416773097632938512341484458066829946027031281722113678722960138436434275453685753893324894120307337146484056086858017842713340303032519454905044591016386006045042033789018744259734890258645874965136993816388539358343482366191274722140365654189717274795297134111981804497534031977274367360693019124466378492765572475621005542217976882300748800141915628192068770762702626565866765873445329535641529364364528429252438016411624685264112627198223786743175382381046206745273342069218865522815900154672516496739876330457512726447266750273257836269271991165294615011804275065794333368970564023260506702260318584216003237542611566505055154592689150384316653654596845711012604827655620600977652466496686959662324408742217197112058691944316858189963309841198835715114090552978634853090712971556935554876142585257475075386030787664715029171431384370581683143099243083870800066020179795370873257028390912754395111363752931531108805686650601399262077602566256426621273624446599582530875968396791208462323066451582394495138936879940104269024489316890670270072425897077284797974584658142911655560994762795790711772197963321150883869777927852451179525454691407216841903812481211587212584966303869002091463079282748929586669605847109280906857160325695641027422545595804625082297230488132925519267467702438372054872067675670459670410728232447831341032241595575211259203168087583371390970314558746796011939816093219320781821798088590060488763553422760550403772350269612566197300183550264358650249618788585223915506198102909611257631340047137673502018248027640664757268785724690818815808401184794304850774150746630221540054182318927518465735244991524576440375316292747102592356894820219940129443633236963726796503212384694325838426154280286732879152990140023944369733290167105637159316265157846717687856212906148139719230298741510062736850123431832106580900962802890092033574477069328536319115189601688212173707763598659559941993093235729399997031446705283763509234057284920551593929089019627546837968127567674393000331192201982763207578533755710712356874637733470902033668652230732219141815102322099044439263301967595151766888120649083896544966363054420694512208456436273829083409348509114189674725474558343947002820081193195528106766284088033800813893043960195901595032517237836150449640286763471547124197425469906539087721518040026021039335478038920369517844417208434192217628630776773715285965581006080473748322940432844244550840739160344819201853436640648605525147220305171736578004912709128028540796982909887923164052980605711816577989610113827245574860465754050279042321173171163039446814418494645039880158364949779580908713506416695135021536307927082788379094767233265093278829801971648926706899804061915724898701350416437238684540275363097580816028218688253417709108049231364983228209827069665201625928633806819116349641507159152100077493213722190804693265910248847675319261407647994410281291425818105311260370619537706001187306707214400106415186983983627716249014076051127444870024568952174832101160607597473085274302270563737238361184351066443357382208920203972411067076564709585430682358647336186650083281695192013242090425055233782397739270531845758116433092812079882558168848171702297003848965971420875555841588979778894318663193416890465618578574665199677417939549350598585917901255789380797242371471019128278961349755424592389916931431367583944210052026692586287606424263081880052907778429995106902805130393958179701673768754520090973871810654869612448378766096987408150179526426922201741431366363780622192431966955744911894014349842104076929594826463545337687677157751154746332984342850068645082711270671368162929269713169707901198314051253878076001637498232552941591293325349079427937677055876458105471071905267909731821591110823014711200315338205801672150563363407611262943938660030552311798591536785537150277877252176817400362840657228664621434517948753225984179846165181769119716758990790308224890406139440445506490396150562624972747818486593950292504273356428695705564216550567490666039244218300551301308122298144549400932500314504232933343546633492660245949902547092185769836298810756254063806469403310117352478150264394581469375484877626691357139969888453532725964116525806070696856398086713408195715186768542338058308094126456148160591578125729624149897181348175475247635942461527435765965594339694498995772387434658164476285411005439220075305643711314187108929084241054120403443879826286191818535071139047052260718008329515350352834253149633235040286571194197801971583456930516697511372436962814024073250893632657636844142172701120161200495443788478493136856270753333837903654320765371342874901245808052358190892922920415868174529735749905890689489385186428220779742604278448821964665856746822993651340876302075185605617671925629940117988778560981324384759487569224601106923532389402568589141191733294080568842963535532659712096338853281092661637186987374112632846657042999477646127458965772192644673332473612522533015077765592981663891208686975652525954422758766668744374433165935896644884344155241659472361156647700948392757709391557932799639635944652296437260663136978419940879608096299941268820666463950860741863506426259402973202652631845577738521213454860957795224007532802541784584492543031204463533905098822503598706271002094286534023608719690579762187175463928051441374802590994110689335061450688040911608407078773232851175854172014399147952455966215879286544909326574904372341449787560983820233260464688393013019967111839427116402954610473566214232298647138780677389056485125950922523085661285702742051384068218869234736401307397952904517646306485372198386765614697695447639905362019144188772280631989836979419127296479174406997198663480376387593958849788033221216098649525202501768688602895940849227602903866921729904273034079264612410960360226053233925547633195948881373021257627292617528097481426048553991619227106883830515653074907555490807436653694637275686934336263909882044448367788101129062892044680820878117437763951256908420022148989697827852154286060806544491958157985512231771906997223953037575302476682017458236781407313907743451777074223513247672253477781478817049935836727692655564017406347471456999431751830212225161748588339962806739137295851275295325111029108456976052927912343154889275345128420530621074036097570553194008701400579087944891529725862714221865120085866051916069079215120323140981094747201436375710394378865786624910292869633967937723511955698804440940309222653917532427879794195613366172881183003677965171079226476710854167509995751458718483114766223630150451834723938453165125569468089714657154631202177152559599340747543432761440166554097537220867832806167211982594832462401554135465349405665447692949796460213556757088859745943889398235034709704312217720979032315646726457185792415426906016899715135940964499245011796494989155693330556715611094756748933633794322850871443349551713587890578315336819197687499839925009155302967955679293721379780998563974733557174636596370657632702635764967355645744491367962835750264547465281604189438727855022930573371237812754096069624582629822431443956456164336589539787739619662795033805530802554550703355943906602344583887601504642761031107628031080676904071736191909438126101773526404111908632037799286673013793249123156947577301553951434110410053528108986116766544237517578465718971244981832234283043044457582559710288057931007842532628787284526023553277298801131269841851818854383779904228428674966195777579258247869586982347814902077200180226195706175401509739070683351289084560634531066737475070204591578156518040427079907160738746977969859358553771110135728295025874612474683391748920053215205482042838060131232247507339044917759093378865229565291708147557188480303324504944795637970644114414981039874940010374923731632999857258320521028264685346025027637431339018905461171852426170812243726655141047861170537769065305308765730744299780335592937345096033692409246365553283078036908675659844778151105994520966147183860887027017756119188606520137427849916708924748453252781254146746821619352016358652887028646359170484620307109913596856035865081650851897752257605269612816804948395285183857558384608637868766663959624275193078368410125789155239477780083729091869198111720140630476751194916240464717378691072017920080516510344475439666287679699098788963133676141140597075484291297999032101291712130706097697533316262494487566440299164033825318672825277255832901499301722989273650284163274274822978240591202971324271640599693384781459927235758066999486495942198122435909811851098301715949219625931240519829701275656415354761282916692724244762874921176608551491333215047590553513449215566283620239257842627824760397816232517046637553312166675295732221196439839689163898671290599058321409235522786227603489163725285836191024083664894544725220647378017568323933438723406381402090480683324402544212473868930711083785115312062862197766484940397314113770237594796662299756456285772554224422184237146380704223732939904685031423482895412417944634146373781447015772242775967221146103327317593638606808077052338199014312385083283287299232797164163167876107052467887510081895948022998475990873276621473768706447631809828140336660470875440479424757147544816060517234184387910371027799765718332946463138245576572858990067451368598342928563251233469764565974459052055273591437924336758555104223702469742515633079758469515084932561726063983430269146885893655846937673136059297015958177408404898868541088389443926095837421106477067648709454032200175504640202339559666687800432534639769161798403186320848123836646409679306127577092593517240616545913380390621760253790459022943062381528658590631334476620741615814507868193061931701402713685810928503422970092662318074816372148701121022492158202804398403739060547180725379420744042370080863542211769192253777406571228732089163381832030829739953839353073072451504021691219943775783864302435957595686061815675053146590657032577393281638644419976692398814244750786127391869424293863457462469616973222052024944792678895015210813239951452639670276071568943656768052246305645449013372529369625832296386600943212048455975349825525037887787178288013531454599284786293307129474226448575919863760957944473074704262529693002729243327189838453700643898198926930973077127201076286709416115061146601207351660639423909250871374003997268410472225508969131134649176987104388748933110580601902612669489124013575896388870466743477622662961988034326380761857246827188334715218312665355245678051984528238508356875824091464202234143348030539458493041709202948023159688472975968399445513323629588958178184163760170912016327120092728916514496108852038837602552348624845744513250463784860180222288223379202238208280864183532550374087176801357046765788327715296974671254825272692975840972020405451967847325430443004146185141186819424141088603082861282255809644392592402828114596996319596964662953890581718330518489173998618893054011421907300205689847933298874397022359624610657304216549753406210172451894181760706977890206855613586198202160375780726839431095503873674568519672003409181458296302343828418219341860098584008422096672657207019074970386066117084059290590934191976738620793099948029766721749425976696228719667795754713765497734992780866985866407590052686752607051795873839050048626240162763278738624251999264853793256773306056858007501166118738642138869299596802603926354584214209779850125380979007297104314290481076861854794094990075652825135953411469063595455691380156509928154439221051719464309695074134837402510068438667535745015715692852897723932899361750499425272036068954792573345069027356343630568465566125472821047262157478015387743042702153686671624915113461696601186963668201551530906774424145899570417196026648169129920071959420670256834199326272283400337400238670439877221786834256515629696593740786042080976785350619270655485452663405919119572604764729597304503111884854247473972101740288060030839769512508433715781419256395836605136250501490622669852135271951126250982590802701852041127574226135069415977084031087181158722781754532350997196082623089847531281046952255794405393424530926970949827666909784726576297458023318715728198701880575021299585431908557396002977787023832061646495195710999575461903354020802668381647593628852935972065123179914033013575338610614769902545323602382174388809804209026500176262700241049831842218080379797987734769796584708754428711588072645346724277089644290236089983706828333565440024579374909521186030125713226079039855937691739052462806943173231155480802114658166025278139997805336661470766747615732494639014259787544461824306592708106557530217727505912061921323153617476178161924332355490873215266528701520381325542590656212303262472014985858125954764237624116823387052634534850970481055483115259298490833652577184881614106847884088950069642213117569607039883304605021723079589628797867210297065764957768305291780920457376904145876857861987832870657661792209299906336303703080317951098275552196887753710026757988942604816064991575120956058016371184428726465007029413356416917316040467703789697951668941245049191432638194138085677281329717805607076990936410907354130194239729403788840772362492011495526397464789443748385759184737386145588659907641506805721313248908724011772646440802119782732845752533159212851528498053222932803969910128684319607516392027106104304145319170908538849788990455561248692724115249416684215424392706142293057742205522646058637779543231781285396801313628495205324800676754306468039765644554374703435016259824965320978679515330409426684253600318314286993334056232713762160476334444718407760705346971776910226507914404906905340529938824996810443528757817721841591424438608543617183199658965012930623579054799675356906538717332313832654433548106325644195104535340442317556479066696284186126282985930406973705226689439863927063416756112083279374074146623282777119157089415416647594315676413225976495285705847323245442202170790350683397750027056556901423120130005115111642467592497951697762483997501238584927981886831842345419591589806491004005199118669805302085631248376900909008412546338332152409146915013825545991853772346521285157240201953840069658597704011334802161508589602653839042213654345807973767436954778911431876629577151792597654494406534766018657509906537928003294459964683747017356024149915655862008678090191151830610412739135918312372013102392386862245218643031963563558712546722004513625910836783631962464953784295400335001588463529995008548238126935810716672897682770930878816975387045368044237844420840810031612919453593951299860360438504968968973155609697289228883046904125611167449027002854095350751473100220573438771705225878993994428923466964059854784541086510631676464844148300628622949020504831209770094199738944240795517321597835005776578112821386260325190902173776938001268106974006957130434257188793439421050907891814179152825997555237653550991991725908163197784746088472480000310085247036307609569526313753664753151750126709241281720953796860370367237786690742168445411168690696912916686437708575772593187484443508985354355457650819999839589517435018637725232185762966882115455177859867004949793852210590488570763557932787253419591456730595038321023288745009648048402993392291292037302560570306138384547679895417130253301032044963890449730785091829512575098848353750672773698959170255665449573141541278302833769218149812206350549069760468228354654610563389657067121756578884617181956070566152499184586216048297802192044310790427981127551948117348343117192116271074644600261341084496709228397354825563156822246933536304545576402612899212123203381538459559994631427126734580953585786765956045960227719523476868951822785877432515571188440112671388370969456339527606108032859537946890141573068133603037890110969076406803353670119059379634223389600047675177708402696843220964073030144516044923710699764340596260417522067792371660875882889783637380236950397912746270544752869088168899577723165842141873765284894579420453178480146091559268506572902208226646375752195866857478017510489041070872194650593595763442856815234616419805142551794437553678116041314337458782485320382852198015401110652824622685796557464099312779899435745380729900076039466254257619583220968392158242680953195527910786485072018191616884430924348187967813526822334514218609292777430229128439442375131478894217600899346785868950050768061079633440644241073491786388012283828689943705171493272832425007339756517791788808050988063775690426932171757617303291820091402181359793185122935717875481917046691834749675106362832105327746190574148493542353068615863488544567144849573744409464543633396702324138320934615063575536320611075646999051287606853039491838877827756037142246928155671809967201366898286859931029086117141694194226869542617988597087976465713625674935597698247200389453211078477209272665837851611063463471270257633309631668045281521324358601002151082461223848771189731634904690760571084014146962348884961218868772490058979720733142570082211308906272765354315918586408770553675217708316629965698062525590918646213951995316058242626331883811200894503861764532665864662058396491569028273316165327628443484490200463594724412604778347443822295466604810785411131096140252676331418077634470711478380089422914610695630372486809724981040476686490335628652982638083773843536158788254460229482124575284174211250016069932448337711085703294862615926410061614444339528486566321288102863540550635479597618919637064186648465807577242054170682923336598680663606426092056487209152962943150552479388294186942175445480254846415198951007024573694109093349251676491496511393798147899946127105127063233481847970740507637641614863961726576005768138188456927899173954921226754929518795172918547124766836600172310999147265386648392488424963311881661209236880223525152851212668418886458484114621246805862453072644182993130722578556930357903403237877149039525799964686265385524575927959706598357576398787462327104069930032017781774492965375189691789289317439196827711948754741365509604429986098927254056489669898730299873130688829850884879346261936974697303649395323169787047549453354322366307862020321163331102608199241613249914960318582944277249277905092425621241176952097395027739391899068406562751909648493642716457663397636007718315523191331023481670035086793035642281018164104864873886280396971315099375366376639321075845786874783721868303945240321893014875461385087170267003247841990464576010925439014527166409354364557177900142463144297995585280154764526633233429878670479664886529711357099212713324261235142673458159756355447725554043465942812216543862994207695973823187062729640963290599648258054639640599676996001368376108646723641564162427194373046894245565293495606701108682163611794356898983917141387357561108201337300556191612321694445140924351862296461026361518178588804983062661228988801235714528550911364176051456922637078997434016770743665042251748674402759646171913881955610266763456552714143953535878944891067761185039398481385142290572812562913180755188103239723942173393631827002771927793142079968007842737084465734712762331295213823635486141925533963650771409264136440519626124251449489752299935381448391598019767837987746631169950103478153020668838648136695248815200236740209561133607843216436090233158234432582738197153954123683665902046209637159737494058929783069213740795122519079602759212522973499015863527473026493309399409987718364920379299094227662012723666374302355294751024684602552774413195634082532861815694213722744493759937356260314958041036202797578212401766471565854674719812652487697942635846610713913819299295389801212704860085300029970255933394497739019727559559119701965962906438796876901427821299815918326397201198261596482052390349252695270464215803010945496240513117447254300709476825874974640456787034970225769459478600831585986083406788128525265209604100402738809811820395003132791974615489404219953543648394186073499243599354486656310978633927443452059235161807572203247503323099691075181667282811900561839933714793585252788880766776368554801078608549721613538964245610214429001600169815114853904749993172776328193860970006403911739139243195986541695565120794997365713008955284071517464098261432629661172188238893296554161826517629901172853074935807941168231453161560642397834178961450798336495455359634473190192918681270875581580578924426893630213139815316840843289013711637936457621690024671903902779241053579949551199692064459239400692313608835778338735350679782982565873790697662052825182012865999339056927076608544075483666207781413327995964069320730651600240395275115642735719017753230620629136755226914509760148755443383078468867301377021634599939134186953599212364588502736083070978190697024094957407827424782138912212111951079904289534276438716302851108044574339029756524293129441169420842599245911465660826653283700292586282039303680145998573519399614113602990341454094354195132366714713045273494179967392094525177788298493262803650312955850465494010861612819793485420309624185270582192461046036749900307940094174108391456224466394537887881424239747746189260677262774446441067931456915077266260195886953744970504000702698314095233894632269169245913847533476168438352893105042026123945738260828364328980358077443102312305193821886872483425410838435616330767947664538397667520255145735272642554481763185491830517615744297792608641532154812867518527207859150565791665613497482069304905084775907504972850230229002326512628380000369575530136874910075097377621471018760283642817066405801947256001346007399508827355796306884741080499708122105020703258796784593735026071148337361336862396639918422620931596779753246492097324170325670631585689700781880363887174267392331870960587653520458183863748059162936327303132542770102617054364863953329228289337636705502602038099988093534744703947303693610705732508557321243582999469603507329774611053257931934531874476718606261462556726042124852619667274686741831538301397884874892309911122582422533137647783309864804155271064602473676767629543636094300111692619558660056552366465816130722549495430164060463842690767132259658913413697275869003293596588854333427097330497887475037630041639708197382612229057702085571638375692740837212214204927088378916877261822430447394296000450491712352087212663043403898969595467023539939428038164329653110615476215309867990491645822983477979914682098451729576735000356083668838215191102285000202816155483603602087128177063162108139656373917994010361801411457041283990289360866921425744199210415280702594683252852667080226328947900228500952328968609691993874609097789015268821126233478897066941482939540984453964095829048705278484719682711307787118379164981967210417932744427891512079769716609745412651992462160694258670634994912558232953773882176985747338371188545543800716357458055955219434310770493821355071300268993669418434250334992051740110822143362038530433714001510911887500828558750504959974932168918928466309735929051099747835553817137911703305558275018551703583709605324585147864769194859670806661921269539352685888643938970535291335659690551687917753074948795925677523944801189897137119297643726250093134342040700473304643632933414826092779452007584161151129812796508090869646821111992993383518492614004128530618337598930961304458041987309267282239670369084409209557106375416409957231261837431204518483111302320872538232792297322446536745442876993195254164636038125843003675667117563921172531961164009844220886106336638182996996711392710326301557090796488738992733264394024131908150213150416323035700194579851061509554402779162677021246287267947036511846660267170865405780229620942468248798709663422109885651681162534755567203139500362095359927673679315354559249300868413298062483156849028310402407008992269456914712102744678022893078377884805302734412514354150542007789612699672821945946446313415861753893576431540331599826122279980985598953043448715349384808143555040467401304206273067462058791119954691123977401140921066388300576742595643385332657694379299406275452331034409633005739560094857946933143750507551940717276467915713539589331686365931023357340604696940714987243098962604927211785894084082260799832927842026270375202591503299900510753601548632842518099184457752629011982129305734549511812210680655652478223921591230926576838526898550619681942068797062541274555163473713570587793778226642088315428813131498738877729890178551464065196604837693259338061708598711571555191409894042901420453366843278998577369485148833423198029132862834505870837733152944685298521445901609968100496567798784406513312729633702775644484847556526724793926891908411288486278402119426175991198253063867259216091501001945046629984659964091265455050809086751340868654625971731503839451942724736136473877294834382090900673665513901175861799911148002633916838309754874807646196250007842446765111213739710556164872119092032988982765593422618708079177222521385659365352287443973169967248033240389705034782921444304587149038640393422447285070192067499498984042865582020650423845847022726242678886856513523502727881011948748072440644356925118523451352996548124174328576898526060556853319509647021940690789228390947522538328347537127158489017955881026608786899298412384456385775846579270849652791515917871964550246444440131670504000535214829134072145375428524799219071533946030887885713928938408241109611030672329728928316035514827508103593902737530769582656743226811481335040649882914064726603294762560898563912040188419437630224656326195694240938393392570363000084331093404233092109052532837359176012618866460189962233662609738357694077410355628305538316474648915649534272009318200766520685529962794471299660947985234142327885971443508890888170985586237037835638137860032441630856193472641001812325626602848944767433517436623372752778592170422684081012897816919401192846956129774592581481364501617651048580099343210404117660633301654186916727035381388748499300667814575090161786286038880364333084700814210951464756928920033956132696147787802440501040001265947011943573162625194081730862235634147266856504533557711804083547324293379326114094723606084955580764482653590364109498498713490167972374347348418066304774783860027194233407027056469643275300355119645736854418786857335485160546887142440144506203262093606323719366148954078841537081887365463956748283580216354709808427006233941282662324138147562129117773207715242786377272525450016972038285333958599685969267399674027918369553482953693668111608223038710017188267418636528533976170076765103321868178235652386993181209042132157853890251034774207782878248367508753163652175540427988206967480258560982245566403966598055552154768834396086245169352829072639217129724456963689449935371048853919815349408606722651445167428273282878079502682136326067403148016927311649186356161052256520242359752295547825836353594536447804517383672692267204353062979363600032315734811163479945835210519288101454876058189819011603672537139636841508598329625508196885926305484439309149474403885699657218930380924519938445342802950508517943193376814072896849176674113548497352192730516895343606937649779416365032647441464646665651194982314727233422604505228768925961917859179224984827659512657565676586053005196575579592695887405144033682283185071076919500999306126297299300627308482845860574323271856552710662493666648669145042036046115572616267581662428193744641374471305099930899311842804146373720120451455411477022731833371596073467907976302235344373180725972392550155888860791937182042706129955968562241825321508272442006214950874880359051971228651071924712889349578706774022321722960204962260564151494856771275481786035585987798691712687053961424555452782841704348543702049478736626787371488149163643437505378062228578296777301757301178811937131232610077973519524841809548172545936879548807350632884824763327252212085175222040941362542844967689171425019315275186092679990263204410691418290809847852352264910807265918973267914031409295944534780735773849177891421124217999239523047534773283995306980449361141980999403247539276589405776970724859130211729192940388784461244086524914033122514037321699393575902623559466448013982449193569700544708657333765543231565093106314308729311302270241076952328839774604129296857090229398307106606483303397620792130826023400026929921817975625309648194383809551127805533740384332818332400050324787979779685392095446156415683686156429977808191784118758380027644301851775503275859435870658766572832758279683762998265213685856839398427883148236669887174905255555541108216026630824162758196750346803711722184173360391635512658428730802028540161987632863687200259584332166379752228199526903928177166691051892414099693238534414018492496497445954064412594220985779322315786338516608994454323628569787188633808312174929096024379649324442311703654988306101362727684721033773115785839826814523424568771785822105015089250684545657618756795667924965811903301768375481677929018804538464486062099882632205701004204613671307557306128090423049177969316262225659195710726684454918081549000621938490031895231257639668809548448470227822178133090272000750382919120858172987927150460850885220186051517248632048192219497060899018309513147305214575255727528679697789075835333215475815087442891535356758251223214897287958596815531310224558079524723725461890466373710809302197321110577420633155120833681799979066112289667455911143580423979764001814797720135121220223355701113380957010216627969277449807432568429620329109345998610081549882614066608094990805327992949173490364973477491561409263393649876935967934599547119134950609119064831050600408735004409994196642329118086659936135429120667674260366931236763689462778898208656292125251490119584704136196178050369966681214522310365315685687402479194835265330230226374331890623262354570128171123699191856370983799061312631799103445503032829038520184261847290425181337599288688334128597139120463945151286172127393258215004036501554954167439676959084827488315327483683795247230074567974713922789624161862015919839337102798754386211887650343621889177207584002981175561462512458994989221097391433494834541397157691910462206382933049599807579626160835434538933035909588839062385866271449165053034855166159321874014062202752580747891810122908912751327119380663452126413446421632915443106036640233860923227941495380872985681480215744092868817890146917497395735733252499868520222185796022845887528763031589275324288865407580657507762879640355092239165986282118421845353462435348090349401174900217490255723523961019134688463990058339250829868868071708357646770637889705195943544574610269159296558071957814400679737578751503121855866356098847796479431049752731702732251855328829746003482458236475576881924805207445922287777408040435376719537587143256329027542350769401632693301999592173502060466311028212446359826662674557310110259742944783444468359105229627069531921104940255408013795054459319968692022561246845399141135870836733941924157603729587441423627493986481581807771834879240615821284285304246867817694500700943876471265463971785490775183110135925597587524812779078668026351779420637842732214340957276486970150941857800278491010101008688828356327936383528141496528642657237770343458902621434814092465491595707443865295175644125860359683443499018456654056556560046778652142083861617119278527698576742501423207751920103292405223302740677099449668510863914845547132678804921491180868344018384466023649219693527760759315050546540298040074245617874983723823030703994722565715157073280195543415740233759937149330615730206770152061791844905965450814498609102469591149712336394143810916978105374145128582809417364526198632673739168558205885854089511611287385018676224699814185729290597967162050698524142485881968574611581227619283211762847122011451232368819321323473660470709118696263586800185862393064550587255804517535202080800563544837791455612418439820203882274814631695510398850027584128723909703125797331466344757199909090246179084885158227628853660562985805896103518762809422518109693493258569337736061005003064970844360511145670699722259052314417738445479874090896617120859212507854353662519040878212745688338327407051547303112837150559126961360088399169749468161860753925747096501367460518452875997910651322319958870056973222645932924092861971686785492268781040780533859291227566260010817392507433626986327313532664831129142637601411614693999898737230922547219727679110932977407254236881195238111226754690139531272978774995016669758236301078321903946841004511093944124195608577858247856305521399388987508559916545891693102259784096359524187656391047679803133598546015506456818811527693758882050431260163340961630753739379620083082492218332023169501457323247495236041130144630113051976008035662452939529028407910410149456646557172062210413884590988401426730323034201377475828541573518647426599782070606002382285253259810532532865792894036326789125461818258761011799764818339660172596558040722506501289088267058962556035049214985658479063882783433963714112107834737887498956281523493217557567447013204731428288382006924723223463661338940372045788031059799121124244850785758595471473429314876696909600677506161807465252152472106471535640631275549210140251925364517417500653468580232017357887697097481886291155067258724968139472549891714310020842558102719214803046802160240058794786458410844881282466989078723123369064160915966589022695161431535210878413634075230636420298621170710594327254051784434073656747824829967679272479246885172028007359069596033681230556627918301290551566217553307442740229982035318070022139005970312065056308939140473184149280107444548111471780532894218580910317529782004247996070431266413235862730139962756972308544173136378332005801849015821184251055667368289159804652421502743282413500251264222014863414110163436068134605421892290006058067619902764385392233954768461400709683419361730670866345163877253701909067702660064309949558653344841205545995653618928797031201955194901715247874943762909811840051800375649506729028381053971461092613137496352575274920437382939504546320132543935936425681520892590041473927245577460693625340726351307741292960589255296749738753706680747402754979912491174612750803016733449099904134322714675246691874518787139827328412522125033542575925142670214136704929476259478115400973410548873187974174910920959511199229175930430287972180188656257974171578570818961602200656353612792928613478388261040475190458906722032678700166365958675399886734761911604613977095916952193522623860471393635025015732765293797698374058895869088817744432809324044497394740781545051370174752140133467810166943908535309828376438275341362271201894588316315541856389970406375075710641481584744029066360983653398458996556843158113833372251180480704596089396365943130162927465161025737534252014616647692534444685692560892615186405723663448638832448037375385526145386087169337811628702365055082221160219838464614434898457162180266372389153204866352949617091503871922296896228407087075448212087074974665202119862400141349467299950705407156959425330544566243214098793433763832475951788243226264085480962293220133086104656096079344682184757222228266206634969115846905977336597083898665722485612345448403271378632534584650492817795389851798192800214237969944962514822489654792763848796378423038090937661838505065969423463473128293404850463160423090530034529064057883422302913277866729916395023147369578424279615413400747761886135379181924426426433783607544542705497091829918385409421443945576992547843465432464387104333932518552603541651440849022166474473525943316489238021083565841473474546228342386819941976153912768968281702392542342722634881442670469243176480981654327771967266926843507530349167108037560732238103251214773465991501024285897490084733059766101842262266110147435680674469403203010919030421934383244201230221093054798605785705010829481693995294461848264611111964880428167129081703266405738317795580168505373034557098553286315532657851893981065018747557039950907516526981449122836053553796181872304544687244046729478612997744313534658706927732883211872312961708247137521987227062253855972432061596532263812555933456304066393385197041423664012018894168682472395922442767816778796516588303458676942600986701783854849809896219727269351963639411551789727051539009219235951890585615967100981240977170026579080082834831470979455929295050225369454631675757309676787929036158922665518948830220071393118525844477402753056677296098609335936149485348964039840917742532699662378231203648835131988434851113425452631280192518198096490888753503066638008447291784998191588167150400070279838597239050901406685905684024558315476353957465070951135063654850541659748877640535011699403447563636145718936387066213993793368911815931700564703214803084865159008299881687642985726972050013599652863912470412465317287332896972643174802135920583903372745879258230571696330091721398934734887111286158860512482724434706416302365008552767976362367696693236886388882618328512590511917109174763634117088963699845799693389688741539604649184421468431610757474549799151787634728994729776068253836295823569601448738468002427995020248134991894682374762216329409613935039305491520039995542823396388640675488394761551333901234056957349602889348475393564395701292080330426927977297636891744196511118972127582972474237547999504026521271011606191662008263754184551612401530136626982369556272661755467536494621698464612160940401971769271055545209911352135211942548412990878045566255096035102413718741545603576611041388416981829481028990658745997304014944560712884551574900930859747728642448903136325129907392780214970589186707128503318539712032812928402928876287884988320012145190858662665284147396891453811941779942557232644190440536172731636899245215263751860208696081899019999191633578918205814240475290202385437514565769486774571469475603436805621284675916751526825182737635991208039797179324575512108313380471523413953747983467084319984050369518412192756892158855331631171105484268620440809096335161282371088421251455615503422968809044420382474191637662325998469140409141770611255855113780141868476975574364358419077097283509687521446918585475123304059090913675550332729924812260640412785262134017262899244946413455309922750702361989645441493693608352729067674012365034680868653438523693113660225430882782465646918292244517578000385713559549622603720760991413494793036523889086676321804567882656486036047029516107663920771447053181768902082044076307082164892919663071901181742453038090166861628193255322047605571604527975745712680545729988082095084379403526319695304083490428926133970435744588062333413633136729248100445116885979908537223867180058611298634207395921515342682288904407195333113378159746758075272518176718181084576599370573704656531487142394992112771583920045244748429844425336272399420574621290344386000787638812260144862866837254118017134893180803302082630132935534647758763219050168238380511101103098947744916975569079821402810066763793007997775890466964763312260886260433037535567385312178321232862467809638314683868377776410968022103256067164001478895067093128805878196343896727957485241965164835529989460832813436642836011019681132458873357845842334821942183153385275008506396390821805400582961349071079186371563521741866050285871541123340030555158496853980043104433492421598121617473324168089768518264370560244033037687944003698011195574363453478922596335895677533282352068433980821652436819744632698433940074515460812631079191013694714960903008897963019627273723495751060310528234853385719284784591953713186794091862569975868844740003976505251371792701975859488445023479829129673352825057836217488092690630868638729795672356776269275777014207318552281427997522943419378538619305677567779633523235271247626379505549061611124351461009727332759259918249734124867556391197094034984158997395662375981224146081096542554622071930059779890880885490561536512418340373677236733679050367768684719846434128375352401495342358880626410085495698088341652228509958206306809839863869831518986029582268200536404696207157693554049039136264935823891388815711287574610898938811377231570499612067432581553439695225477396547492474927522300824262625581252049361022283786093716509393077558186667418360749833056398075233717332229391482268485772480060410851779565232247053967735915469040824335301777306307421391605485933687549495221110030276057087758786842043113255354703542643725417547744853780431381391970519341698136371727719796535845585617853107386215837699761124825729992805823652127529552495623672716026860279896550717547541888484272953264965588043025909073647631818968575612265955220174442658841008754204415757957628684202115360305404855261199059135792294872145668384315620091060698713337774069461695243868156649882311848465175067374855011363988881059412090161164382437885827372778882549923132615428334766843876582859889548405275146163966540317375973394459578499541036380855895971920769996300516032657392317874983615840159657439424762187437750577931963293269532556969317505696196312257318961706365753764707756762231622895216551640120643320440069574251365849321407507161189186219195325971374023808165378189002811154145068348959110303372567065841196180385691990908014508108694169619929978048730732454302761644832405594687879758847797719576105074351119977905351461709373384242471922835127106653827727578097969085135301458456525367034815434283039842495773096767874001994093100751853549579312866517426728565749507355343643827335928917142554595272786723798122778771054401664208290518009142431148004569915592124791795844975807245084124032765804331870562380233741401395172273745361340989490172849810022455073074080378222494959610076835442774526917045662897915386383953124745913721892566423552342877297139191490925530415456825741525343463011378280206612836715880414394408894013645188495542529131644485085815925398807389255622376158053083201105860360340485975150479111505970625253171667687809225284966986731714437068581391659902927313572948445251922620427834838693535736036099696809183302189916948621202162595763464370235403033399493887031229862952128684875540772153315573190018102489109361586471129903772152154875578671793501298811756969295338652795885888407086531721974920468095348821232427918940751099372103776040447864662050278669829044756700669531475876754316869959801509114880824169164705537052306679946851232645877597278232303887336799365548821627893750661204294652891924110915132034721981784835880968270606220320523920880379495563406123304463819767057479015522098170607298819144057586289318270340624279261628378287613573696257356678057790788139122791622332067223088866310883384137039125375211547428269111548038326106878392389652616987220936645641455900991384856190534566849040826404891136393736154818769391124051315907329501723750864480107567308993436311392789293325028792675130378634982936478153350722262398891141982422615923997555013241384527292973220395893190648182932350994334829000453522305151412780392189955596253641852613790905408077717618774286640378986685071854970691492509431288962205854094109177034435888494325797248689001225195696220734044719718556015114937455519621987112509005745610844660690121984889962498965588817033477956207101515448663413804730541450309464562662092785743848365496766207397345319961185461389560888480995217520683712578840006863950327967158959940199705299719049080520170558723144876282665899538554266188496326801194444490770242675534501621431800390951443482679062408658025727480891392923768175801879490417404436727011621332062459470451629661800504306921188975577720914316974222244814091195657489304657592122484075792308874692306239930110246343889532838070917465573382755930318283540558159362651394469069753772029050299413189387861403420891527773558573036448099088158322151682007058420047157397794995508679098732350686362427612705476313344236549504186070434617459269954035226705272985001444838672885624759467819592554753011030733936691006256669099355415038892556513813360224258995402810935874120783098744389386239212840719863543298518188457605904013415749439768612490358794228904540803082885879328339695297922368925231048981640621538780938572870691724185699665686449102054508896511571899257791077777489850475632570233226273140114842199200380148785582498780571873148023840730184803108607090562760253687583062240461524037685691447214025049512922681859770470766305808661963325686382486557994440229103627431476026460443794452171856286588289615132966619253916536791094940417769749583232816803003207549618539628975709403099384072279440344485985954146034954915467733414642594614329115784298102415534449643856194833013368412762727742426837111109663019494142453309612458983201917173477289991222290044140111106315775987063842192625133391707295645655974769152145622129401932657759037355074191005245235442577290068517961192361019085970320996034196988566674732296686064831369881283392026049878495474999862747047803741793160146066432004355719104281231498841373163694565180250850569290352997491223796377400180028457822609865674962897442982454208012184642650360340679593755736829213876418208770131319296709049758244923661427083006542104709169451395811102215602206518082225647886299514008434704602859681071591980792316492729819248350362334492426660940593792546891796464668622644313494421817536483823087985394040679878472693668973542372731020556727746247561016024795843169336090029394712594835308131855463136783006134931423003817868936668886882460287083990289256227429501300034640217026189845147302770597820124615786086094563507310364890023243594831750417124731677958750090934948218309174712165145640085428737072050282974062219258252778378936577418828192108413228320379144946594986352253111209241027485343470611601363609045583021723409493743091253218600690491877505930830465043495459800994218081701053156086997562626767045100669079837924950322233336738840968621005590617578973607669768069975092263457027740020022701887418043912940605699902061961917630355163796790385290039964918421231937135501519985108024923726364643776369492586422727142978403489088177046404626201923400378198699191659219830569167014686399885777979683956766854425702890716460195694854783238275215498089993363229994028653143691027230529770032457918307728984472404106627974882316825610415661906380684907251557035960678407825667064051156751443367504312742188110641584498687933873516795586910877324734821994135764524246603616356864371768879310061630924328833795827224851481953260509866710913940280027014533528028732163708747862935214998149694343577121477938111960599096618661018499283363558410074577753685309916548101515724029094356084620239277665417715634729666811150668243363945122822651381135278001217495562190149888562672472559613074090186663753697015565562802142509194059938260483895060010502380695228011099778473498140069645282330371143865228966229221164910584750737744781274468844837695382333686451645127327016816892987249047287979384468728489019877357892525065606167576770808131480779930097596285013660805627332729370055859355684460516884621911747155739408843843959785589128365293942394193135187717514616937005687798233415995433372128552676048330471993350932099766049918778784984604756135143149943270313244899895203860112375858421830827903433311456085923855640625147058359862860705951699224360004034474245112739232510128501147033578552930311102880422263091785238229176705746408341003446603786034329536474369442621196265231263084783896522470524100645469463308037699533657854756675996041421719862714192916307169411017458732208610393035275516612078276520843023245642297536053050710719961853113453315724701451792650658140749961911309216163823889240990348837122581008861646341266449184190624129873828432676192397666550197817470472038341901630788667421320398089889991122233016329316503123365154622493004798888657251846426247076852934087183752672324341737118597331039842219532501629603241684689479049477105970474517047035204983299903078370544321528428542551573398553783370051275867581161422399781216788156801995006968789244746333361356061136872474522271503222432343186403975408052304627383113956760052703954560860072236777838520616588690564749044872323082315689211815767959617766653954016038818741475337654769929941154704069867401182204683202560478443602431956387067186314520201234069142748339406135886860176160132525465505301636288521779989870494763297452962969326049445146368574701181228592088339274167576003238720956251920947587972627070817784692497509189714926533208257883799528239010822035540756046956837932251793671887540679171596006083175893203122413118954350821929171283442272305656656322986384750070308199880601470867416545008541945421739906588982260921197164345853337218240779801270100566531281532861224344455772008655721338976518342458473572321153516321216708115475759354365204673086023449043316698550805108345758897708162319144656654729406698973995620400516036505884278517463935692634602490218165919771686451204260925444558812568634729658216073669237541577183006207882840100164562704389373004293140720408114924913117964291647721212595602652717839848735821280554992377756932509167855461189038659340755172890444944460058999684227654954929332324568410607749101388312326264796951614338447808525408542156656057788514258602464612462146884012164239296046263089467087606971572857664654666718152120266270336598033818363104241809082382803250611275483009282201054594527478189191808250052305229427513803750448774259798814422696214947663545724344551381441118588027994865678852614514218281757654623937288027413666023840932957503058179438055686096148836967434183126707794513138082243131910757638529963230439055390211306322510112055060972769236428639918809802369693596733634806540713049524338627021663001869529878509551929009981141440495587321085261290889948931369365370637945098003675207908532198362221395562701935239011705671104295762481147284702164864240543272139057667752621302505550227795408171352006166444076698322437953701185208143168884282974349724112480182857788896773402855022879434121721141109364081773716800110645539796019778349280638879538975196201754672444931843297641568490176566368474817938431270442568771868878854610997860623043049167620215081354579510273042567281156734973402955774553165763607421137254804848075898278584823880262664602146805678866419499000954962710434376290363345117823484699129079585914093102197889020824223651998332586261572868510786526558960216709268424459029070673514843201157559661322327077085491233083768635124944402501142880437494320239320404912812332683949847575537482260722010818027804081198657695067684919805902960791319975356962068420354894708279898157677859831031800754554983848764963352113329093499091240225871934997819321527703572051000713013675670407009306531548859708330638183793416069069723612708345316516705259192603905367092610275995425764214557442864093575257950224182891406002315896888936445695508356616335525785645094433535333113659502448933239041738986257656821188898353512854675563317765799995943222542569956586511319490874445235534269360962096354480266454519047344747787396825425825620766081024769774466759656027506565633734694867308979379893624399522094620073138883034719228104427041172392701129972766460799074588786795358331589932322704568085426852578916669982475316634543064556845630556388479528266360849607992157187169509152522191414042061690375536326263017337061512275916465072586066043930739922253274031616358006937094469575155480015372074125411228830296167097344225794184739683127045514444068230206601232993585643033103624401166090239491205413740314373076296162310458476213761009595572490222398873392790546143196633348296288181046751028420410767923687472561839457903676442075495440753278555012507875292246211842690763112205654196591003125070502485660276635244904344000960035316780286860850535011752810606495608348940128744937039866082324019990685106398487014717917629676595857673324660218713510638610545984698555785452913482866136527029161707000829136434416863343203176854392338051251560477488200750922303669101712763510375364756981167943080130041070006100000620079878874893357656657723555428461878451925356167077716282851416646169730626837133564631330370051740868566562716632227916994587443624990530331163127169507011666417869747621906549686170365604778888228943746767910165673299576652373115810214947120944272633712756026609854173438253468847947012923324705130127936192305641909154704754981150940547933700038235741993979597349091269377448746006567235716469116265834595101194036507468697962440504646899739456708688877511069702111487346271128390239176610196364520733974138018910169192660682734940477339633711377643178531957041797955295808067870744732540916094028245303351319391418847625510518453816276099151292369540964496948789758572382122845806801460916587001604847870107267645347709076017478163246621430807278344428339549045787347816454305125021624937540860188409230980363814352486851243491338843246796926963580487911092684247250736487511138235913621310978301822739171867855934575641246972982529989123837057747860625962121260010246809097744939317740862910749704913560032756657113994421959983490086764136768268142373941144844008713317239141746477207465845782997394416950599861002970432628500620980693781343792814771510100965734266552043286091494929279091889180531604552037779760521613660499526002452264317086006794926231305349572155663876576580463411405990426789086183642069508356342595878969708581591604503734958956035869369334511418514185604214214967170321689277142175367814466011091458363120231345516866136448225107760882855160569080634100362513836113029282171173696259678710661555393629413650867764410702002813427479480355424864117902355351676900829779730140092224191583300307018512615817282494600527972479071772313547760056011859515378506685087226842551676076644703825035343598859687814255778112362725328053714893136291566843739679499797697655300467445950989106510860113971141070582646006540432772482043969724626214331117853810671012068313323279941011581664259337309179468181994382724602333416832901377731743185850859790742151233076649393738106250539054949337412966565574235961216877442747072993175225943506139799324695122123762028811561257210809284885371239809728643146120618317460828973445692152663317152555079321319610780217348168861373558447009276381221228478027925045329513325732455144229119482186935733761133903420325053464059800354452803823119386957376464643540197635513538602404282466233674753354064905669355723448102642836956122888258382136301364567840723337833176756388637171621318085924510285291656337118697051446144687966597586929043413680984453262873292667301230512203947047342958968215646658188664769139919188656101896117019598375464201768448566720331497549832028055392618017417162859260613810567728209517723979616659940154016679515055014091400037118744723907534722374300187867328746467343737104136343976834229384826855104241890852352804130187083508130192022533077052523522727470114572363543675090645861235443497019984161115891873647909478584164431556326167701244166348049570938737217848431665758349199417433603741029492136596186423361216972232240632329726666532985168941993609314061985879988742213181210639528732180660858630197949851276990779904559088983914903657355757291677872148123606527651908173224929712859536932269084150654245962070744522520050234923012036319459249312721267165940328129228748050060619916212103188593293640257653350831127503817799696861616564477386036615448450674507730639896971131027607842213677943514677413553090838498294656376040812836575534325185714032969732328644063781909628980723558827950435139683828303316367861322496515572156762510462949651925071337027065733569173066862873635682899143764025915342516599814643383705824244733248744649793313425884139908752693925929084635153840384624985261036622899439778464139801259118722179690904952977085624283157668820832621500092880475804771155452370362671964401711479910378265963365041189344460895383474784587591640459343453224215991893525911255157847514268256016978789906848278661321610671474338240272425863870697025676052641906294164538293340629416168923806585901348092267101089669158508283057652355240904498181479661391124825103180116335758552094535415657624529379281932968709668016082353180086325930519817638994225377070116490082758477039010528084973096256692099160299907338927219926499433013209519004433786598546736894559203089928468778016305988218413210708645080416338412627629521243492794924955629196711314949345083507191396155282436376448308531600388630008605887659451058182264760604402892209711021844926878565124909834765272333156095752870927627934631943919422931995432569828036344138946051910700616443710831719489997211311800515921309333306015915620321520667726671313057711884793875325854666711976520917206507638661162187849413721272922653779262769931396894059429610181301435626262032713234162770768332404882608920840916855833702635797387744264544421340678048447818279793887315690367402051719286055334068211261836304023373549139128619071586065229290930559754581022374188574438113899467054294669162977260626837251723747695731418574147838608634255868462395350410215888206458993775148658475909440932544109945270655686710458958170569456438183980110051848131917072907897781164379536500375554955317587063051633997008070690802540653898550055262422429047872782427182118560563147492963225677053590293411856307306383929810236777684924835837434429041009031246525147652273814558285528325070039011550128929637738372241914603896051465276236017082830439988879620520484388610107040394210396394522441019646552161784988440716580359795739632739570582396142777140432940082692181770037085418657395750812657288116664623520382037995071730335066048267397741852048867148231894792288647783845401774710293053812359025609525370090325634550062791170710666224889137203687701948419050596820704675184456702805056373773381196333747200414285452277226516368475390683584315800542389832492071338316162726128787097786408577405430131635980485776962693089273940331725409774174638145578466721002418488914356898074148135496364479099920612540191394944368941199342345253654683157753064816918756746164403077749481766394250213964095327495025832304222318903372687990511547719467354757422074049938285964299405664651048940648472692084071470336681955467410734481440304617046132552239097360402442231341803780314361484480527310255235882754575598440815093996625178661658031158022272946064467340127646437632549643625026447803336436717190547102461046237007609615731671843968466055798493549910836143387616758518946607656608251893516282706386122204860208231934906546668079725265567236034047891355428924130378792050937872816817850656074341055007118529887018811379999719630888314016254203095311763641320776852791997995796908062154051938030507803301556074789101121717362319703443111031483142463363228120833849776513808512772191964429779107133452882771679801242853698607421354845325909993147900553646209538298069325788398493017436473836765205961398209861639481581906964801487388814720562201707200498832003638173727947659905214969249560445985921889808502323571472062247734102939768081141177656955564554937688002707510375732237570377454082285956370672234907742276038375604704540090218133416755926830247297813660961314194402118933773010874393520045675677239456143503314473993878817370026642124758033761090384108947277269526689141187702739620631704935213197226066343290782502743361613213663047933493080096185136800913155001419698772927896402457458435321672823913411450465282640999942834698826941186736071741397852914839218346723911881606423823892256026147278244967745925854109002723744198931041015281370554612694666137068127717725876253721138991094391056428906120507032224607249527350472144626253731986192416267652163224774717561092107891535031996787062261688061843779750364038094406004626523259543560739642692604252009394146844079499475449998126664719935468045048794663282652933807288648255509370260768178484937288034076810083929768542707862058177461681762698702326132105962341190915602218413687290528701895704449712191730610969817654999865756274412956122422665879304186241896863454435882895929514470759342552052339681518346195810095257369764515657408581357641484560020322149021227764750956062708386731744242218761146130485428606282345913667556192887386215587407271546565380713315587288779447846390126057185135886726289854313150515505970470225817224646061996913722076753097830967577236786224362816982797866745959629373323813639964057868212003998488590384434430038560202737990517670364984169813783857117649592571017408073734436794513220849778094749668343337443600911077837105454628645068962114018376018139475633306727495772795396578828190386548625037496578880669899111611776175420697953236962483079473156097583525473620227752509206730896805214284247904756662205691741771709928050537654054112902461647374890689771797677533415348641175966140233755466588932394936741715274874906770781015449613583108214795437056853022617033949438156495063965456331620770453570470697418858010101755913151813876699708917573455676903050533405073875988363758696802121116837550531964303314225889650654386381171095708252191286382364602491829775836629896834919016100937229893722019217581480503848681370362531613644278765981948056326768546684945362011108339242781607122469872357781138482375489615406027284352581885199794367241675970690085382787559460458644180595152728665325285148769622290545302710408714740728660301298362486707601762526916013585134795604186359488845422345811956517840349393119865700470645079992724886748138173868739867927619834930411332801775920867251646947148104948486116627702217576431184890766910125911036410637620982708584152581919378006907399392542392321900483517356066515072579834153249178350465760353244305377728324887365587500962118230901855760674877164734000023539372346686283664837848801783700935088155937306348074248355043342985832577691138485764990736483518693574410887514411973892438683494509749167210433003654589725149981732542197646323427648873875790499969176344558511499388611067891855936968212705678148658161808715893432354899032313750220809355751864387634597167344016555839887330982382523687314409905929468045170615584096225500570868108833865972031303833107513960422914478302910180030544957815356153093501838355466331476079578067426210816876022159788250863500861306476650483511247727029971088967029979730748507387748264232471661025913444421214160375882999986914897134442120934130928550656853410127702877586648457450821718834546209740678587796412166320658135799093144803314558032764233268117781180006787962677033723806152103799732836370565645732172261145645069219206687049040894836401568477273277158807886311142079267321261761328211139813484904618662647277470164279210302419949626524069854868382657919913471796987594637619056416602665636125229167486478619453201878534987677736278456887622602892212419717995951560856561188863693412140296110419054269039883480371732446813794236486775059024835711086059525080437354669505478721002649922257090243406292604417141272166407287451792443780948269200408077818073790946150353989879277305341263857297407612296727405348205649765620943491123256051141459338263821326560375688523101005875100832796946066390238902577118558233453425772283432057952637832752278226410679489940939400367023846985188167467198873888612895812654395020251777245580101220209014812053524427450745456137376343075715611331610587488722794136832869772056560832128664029028025752993398256566001689947634681265011116364876158387732278863861865817898040260575519936141363575844645785374976999165271631448691931017190870919599978679541755309583086680888644684305019542667001221097047663219755659216997102011971724570344156995298527242072011686549314910669113921424745016099385760180825333577977090228282410445044664380710748928748926116309237211660117138017410976869770776363501286637670564182485410985876689083755497038120981322662555628649291238522887115078614184454533875546533632194049697218376503870833275182940948325124040576427747959263454232905507293070176364721775530195229647417092260168042725235665479443632850583859744136313483781586990256939939761891838775937260069884574224038551936828765843346406244432023702545944233976077082359641188462359950353547157195859158390098600496564869598995483782212783106289972150700433738009410131155035306016748434197004754628775914667530626806299028728052544709600242572455642893142919039862799883760262400604679951811933477354807934759971209707900917107661832243932519344863369064239044443516508452274464294253631232236676406481136839825835436015561580699912447519567763598483049907854150394268100697178068716677130558745777824456587088728487847209938416343839065791266357333592130235091899297319871342806225898992057194841999483654731335155535178968632270941597456157986538716202049901152595550555235334816668273137249786797760380024298025696154489874380072748187813400054597141861348492381742839988805959538705290929923028463844370203361556012763071622820258771865484361574842624107074723732470363535528898713868310337263223359202256950310512529499131217557242773475471907179771404365534230793083165068145229910700288579980906039427209289135225644496872613212440276034943458167501684586458741001490660762662050677215491477371884854724729571232375718315602764842234218151780953700078766731908807154218279210269819738332256801320103104847387015857422535592645304434426864498098248109863021609503157813691394747601113026437233168677652225291516352760373797363430961575984365117761869012790226305740915773608031137253058599168621754052103312690404292089656507356608216258306945908281454868280759699217566048543632364019385679576361781909952547120247026693884503477883456522471210793277307664237263751094577276259692620665827952687499525876736478374080899924141063087671806501660234106422306728267877445389876243828933107700842487319165228336742308828214458704026655816207322174730976961610672798023199291921978493528383737219414106350847508810462534775711660353675222593224011151043477349850680166626489425918692388526376220857837346419123632177408373856647631532207765536100382613356347935645153899184935610425960902780376870844256182691243201671284535245280663229895990233444251858165493050354017212203941779188549473848943965980784494415729653686841731502577458446497872124516668488898622881973592914599906174560352069220614439967702078781302585960495143817961210178403310381188742723443015907457730489015198567272207380414940949537263770750189239819065996000703822473864317034399105411928475347643662122662877591885046349405199822933610246400969536601905251178901713092352378960367860618098960472176360962200919097021076415487675494660767981424553471330971877260042815553963425605841820684639223164300758198886941313445483875000933113441004825838928293186450004950881850431703325215627604392728291114204666280576806849012949592952052739318852207159535621572458256065504924418223554715839890193227251223561455813728185885746890118116672553726632078025789975695013913504729699914463837790507951625338939752538844335344131405335879450323659372010487355431068467935177924680380398592154106219346828237591401607384848724756387270242241699993362268840321949001485520089245444281092454611149114365380538209444482778606999356822767279621288399740451248520105007485796657136042654018561597076345370583559482178084489163337548271308785704751450896701836658149119856688416408214307900228546552183624558785203419779264584985074724767618471691968152797363859822985769892997917683099510125150320591113347811579137732502855377023927264469272435321053077556357266916256359432767650089539922770043059470875443329360466910814778357996965871900543062665391708157843710421938093906689872222736872162472106634103119791794119248313009892763602150882303285689422757521166843003445744915220674594997735941698715757529192386997162913530718497803397964708908416946054184944861089921783481926488500325435257125706763372942757791267237638213781942488152470572963771891627775772858922598096236209801884162350657944749376321205825172031177715950748939765342963927727148868001836226350742544683217547112946862846976804079845202413341702532798225057523960220920799621235501919362683967367077450269492413581401016701492711765980586728543611759582284334357863186205283903195383358952753373563250790314961884375321609289512643162635966197210266163679754552329093604204801079572101498601904645845341667851128887979881104434941775545645394502098088466877625913271200931079853217997805700304391817587784782655639600810111860655924739725416760333019124080150045144117910018536996292244423979088766177322843169219785558795024386491135432020972793614351296221219496145547060206159114787554482019567119220531683983195359267664933829984646533952093034288601438069339375801577688405422925417847166385981237055310065274617113690790694539125514618945711542150916966310645197055750838963606529201686072791508600536189232325301371963233969986750513152764512742446242465959976406919287799431551044984278818874607178053655157574673963189429239246776225489964066433696379295722157652918059399948380728083075777890049554456809433600335161685740755591144187112005731853155173912247211802509432168948119317513424446026658286636996587880959996526422926656540710485782852884839807954488285963959448912834913182339008208475607780523747480068607124783339957792321713681446086016290238513589163205708614281991195392188238605587621384683367908276616244602095177977162789870544977618730209134902126944521922695481426875833480331291352303211211402879765508302767896017115867013002322611045868422116225698246033438354337189462202409558174674139109989169173290807939125468402261804178306502232282872041968057838233449670507620255671406682284143189535627071049373183906044427597612092519479591879135126768199627392727843939728737820716460498255383536336923408111028038238181848645576205545660153317478891373225802658836737373519279375280802166330239038682780616161922153535631386908245476924206337668712428032623980654129968830498867571848439864927407849558489219818116638522608087659318950259091071707218412488396638667380039286361023530727898461034651153635318632913557402665788521024080730206896791215754434770871865330356618133431567554659281221596321861169127949455274682537435491704228846028828152886281380510886067491112660400182695205389126472280395563537862958065296354831829429435906680259342633104045257794822809721433082034809880722846287408057034937972963124878842513982445847237012090209307185860292562126450876111489883832318738962012958382288883835097244193362080834030039767050901697236282902443168404892273107978189947754989412067104330426434120566037363403997053349868834953571174214169293041860606418503901080298735938670047997576298509861177412258250713535271221089182809072737150483103631900349220285099736462278355412644212399121771150716274907882435604964216989317462014400120312274547537283682323689117466267034178340597873155917806681146521055961009292139976245968054960634403153963420104862465576161691592348261583849272083524167595784809549195344436847487844252159428216903246401725447226500326022618300867852351169597352708832620310496829971511045286782467124973665961870141407452863482397291830768389550230793369151505242667599473212868927263876838020705610141712306301709388354149694640434861271450217309413082906691727818162403993382957139332909935490104872557880825467896980814726220545278918319660069097011482664010217080542633199839005784879560117956650697754447639407461640086682556343769295434332334947430733500482750253454150635496202299558176835801688631821756326534323519609193957113322417098234470005264403453719369572687390644496045752521205742436442288144375667650319534371561083567933500026275236299959936672302364295341520456436416645677257488684025083757175395573038912334797230300147240623622901115080964387328191120543491200888040328711837064693333171428716080112048449205053821534827429856752173790807099271827725836428902652018090327463804480808253203815051508786025188717953423224284339680624667479816088144636740147637009046170319256289045328400752588491575073131681477907375190750869484279325524716772656967592923092231612932899589697227514638804976448276633122846103328884168304317079856050363843468898146738124207420445255875829446200793828368610741807607233568380011726111167398903070595921253111867065352714372333527700147153239584238286917098190282554773869271679475750027961552990712306711546582867015581015729024283136476357932503272630322739760014188359836952786322807493823457495648439809991523727986314390359744022500274079621228695150175920747422214390934439930708239894657980786841754655975724981933201140926121147581610404157381742954082499682334922850081480248518196598681038772688304425357624141549616556501940655132863553429620567292927414280993550774839533321156428429592996213175885234421984092290685674153040021893916596382219656869544929759137330546584834326410648488341081548420864712490519726044713771018729437118390758596239894396408845454851295727135251980203893780667336096589918099072490029281802412993888492994518097970331921787296975490662963354871869372310252113100269550464543691239975283767599902764039974263841807526363013595904350325117657235850350764036389247736673730802802075342846886508140823424990832108507324304252444192196460022695981630090057827274185340172840467874615286361568319942145535861221646336122935569357653857276083945349560172749852341451023718177503202549915357158060612060622056515373918041859310408407435772659291965169815849309309630871009314578385914047701668213352311183396868718848879502312953277679578814236520314878907301476125602888683917774912304514022883860962634871082110842639489951116310392984628806133262898266953082904865498601034697470282602038733039564880273480511320933412601961258844185432280147322075691476777866265498137130086537036773162374181062726997661104654751646337868001213069066307599750875578401149003458997077437427424960756608614481423651961708530166533293561466087753102387245612513438482566845323614229214268752071370808333622382201058150711421870555073335063087713411109652922972120089867990201427497964281327549041043944087819251685036298733075154858046567780626727434095825896995022549105588061096830978362090822600067887428612953064253454443123460346812176255122897373282563994387290148555747446638671016138312434411234919994422297720751095077504705842600344466540589005211783874197522667745728686045432452808815199091737195485152290287345549219930928959823892295792532277390160338579871681689856192468067237231648033568312720643608011059365423130000405397675226497979844128093471314708776656455740597213952629489412104082945661423350172402958743539221208222183518316509667500541354558590092585958550204183437328258159287795144950108201686326229461135026093638629823365793491978473757728643211866090799151223037664997125483707786134523562245515212263817133410549854434696106826710844844231620508851208189854015193387757339183583151342718613368439520466891518056494513766954283545380780168380510595573599496155050846830966829958001015403192978870581183247647213935120763595001575906406003808631711518851769913997146524417025889618797499424738831514860679396238491486537831388792455056248951175190333769120210169785725229324699957191580468647661626814596829706470090442130190136509913079765193410205202549232108861395034611141615886216733879713091075729498510559564498283737480045844169692154651253881408845313839954483946536069368764185536386416025119443210214848329943181510855920679280666948215798221163483412036321249024248551504157668536278592800649431195264437656955607616209209616291942220880347443599709725450691940442005990036487934841243415782012795489614123485477172410610506179639824769084818024939718614198138877412344691754967507503979088467820240869410135697208150502886775186097769527011257706926331900431385945037244606155928992110867946760566770364657840086590278985594995974064249173590953022091624171701551333876630722156195122867404480676129030272704523082848645967871211935360424734930695613629971896893104587861747224423049998656347252572890661360832847220207608245011309005173818549519092360897561267970432888978505830535438511076457819318514382076399338755284158191835179861079035469217248378841865750889777012977121136497931499832846073141546778360354353950375107343004876822436470784201223739355730917591737233865585267590053569951639190084077055940112125011368231321482893673272983825082339309024675787650654751769323754092576978783518476805195868586903959876416043560565194710375785128791364809425143451197059684697374605143135003777755527001973568132968681816564202688716755215611806915994353818634206531548905405719970531712265067691432871814856015673089023269472110720932041779927581544821008922858790067488078013431399845990171329129498317344647864277314567564857584213777834243342992823904143703258824928818656815381677016838782658103312660349242467288191370262866418653827813659620022890977165388079618148018460153392528412376834377651639817198974630306303807042851652180426733272272015422522020086426913547539499616064512961242088051498349276252592687658411084078248113070877014730522934062624987768939315505636454915913041885678269242220181688432119019782493129200398276293341177072027928154264387449924758140505588419721545022382969866730223205127500964309136183727980004012646968352623948445344313346016087403196086102470822984281797900296500421724560107171417399696756821961477378476261226257880616346059023403414049336045558504363904635158574439276344603601264264652584908926551919046850450798889687028463564959621503781085404638693598801882488056296380181888044524536428971835179102330972398516052282939089090091324686861370360801333012157326775217289699486724735888217571541074756758876067710996347052809063249935272274948914773636999009524559675948749112015873075394574153495109064148147196973913241109723684449021936470099486879914630116534258717831386655011604608788901654965756873404989446378278643385415012579218762206881215930100297747008823517620367344615032287842776973067474650590405623875510567419753595307783099738194058068577482078264679070272433183631692250537234549394146529299754946526863448971923984767376015670911659637645360544318424409492412591994949997706453439469518525893957502364069476598137956711591360441057556442734462514667848279128833670630525376970888980733883500998501209162491254839073228122346261905038874174295191952629599657172535169888926622801051609438910733692133392333575146101832424297147130600286003033941876770786931652494269938594428477961941775298824439041298188354173714743815153174284871354448488444815070456111360744116436416685073435535758782141761501154044848468129058350503035220900644407530359425561358405043637268124942712644489155780582633443097083026191375204115232699112143335519689831612181454457245584850127172086445154834112133557396862450830749051121440251788885290178493656653023306883687970153264672582688745951389953235846201666285078989680666629018054084550185757303077429011507410923332401942510880500760186391231131033299451166172695590974711588928653941033921978847023148246719239924860953800734555849722351547402425267541028146615707050687463149067263516974683939274292865684605784109602596167239123338938853471590050722710481431297470262381913855861503099325566895164879880690889702051886740552636202771678817249586775758685361002841278588755222643265493034967977185771820899756258285434444975422735235790323613726142480329458986372806086338833451624258259143205111177589609943483200440102453920356072996221735455977147426441507767103159421029564320517747391073708057191580747044413420186132429668270401234173499900098641291939631030086316684731291077417576471159607915992204043224608628484280263510595589818936201654796686377625847439488557537398727445474602771810849697811893006698975225990293147572314843965517950144578530331429071957453738597425486852543117660821084584589096514843452208014671236882554179079014643769738663321136601227625694934563269461225124570744395647723419622351491013581974157722439647255154643587963183171519602723547858125171642744308979801227485975128972975436402320360873536601011954251753177888997642273756145911045726988959772989052362568901340623768969997910951093456949167116068690017552398009629989456103250988864265469846104351216609759423614390996066615264298972004424691938056301633842294230503509402420783353463113939140047144604638152488455092549786922289068386769119179446104678180168136228417220478631581014929921483861260768784020779638344811390379156292503755012955032028829612085988765915043857395551454919627522692249639367497155988965654536910274850421578187397186111698114518109747015340250250848282966576732251680225233743744243413201232208117803559192766915887220519498712674457347474407292092322153241307426512064835711831139306495297295759115250828498981896692688877926549127133980929464585848517114531812782748555941074049564923150860126465356500315320831889826949484798463741729896741583067508070300161842542162515823512028332238167573504416995892010733404259834982348236051605811669640499019059809098971968970656177121060548094062700695537581559433687517164536272094555567369572003106775261447045943578650267989183834935661901004807278342718804587559531774074926996654937060776070684648853620596163688032510128039925897595767774240561599371665859774761013455781036369002622007947515260510491643720553463011202095971709806820137162509083656801426483266476221751702802905499840421030946121816662488045356077857580290111506401895875473154322628479587698895901956040188944526559917686487383334703932947021889352792618772376672502405102471407386276047911081400718185874914048602462790557316743245108642286071627800156972389515277339816547446025840322530053958205608034370018748249521519986030620984479616077329401355056385770289278253457142046978051138936745821850611091182428761287020817448050060784273382582319797962647048311883312823273721689415558025533228443005471784206733085147846429927945990100137978857988476585047277477865037243857607192033992860490650818066349995961396905522796304203725250351044720170007176359671316760274963510354287641075691210326161818643384194772485143102735676864354103491467314571688391927171249994144250150794021144167739214213731082828446343102649178078946354290195373847188027280051737778323551124122673227124783793968493504602269163593306511631650544451995045307076672685068397483830925218391203981357019419589208752696393305248712038236788862482815027230124453438826606124585230556209442820692329623341712421112463918302739253557381543831854844764683999637859133970940892412149112561242001217541501004454876080738351863302089098343752723242399467410344398552074562933695657302432427152943362033000134914699754051795319995258500420728321788608635291460495653711236700442754027714127406906378307307791631310226838161022469526673655725058072753530730456126525343519216043158925244137260157342302743750322518742210238514509670674941707329713449426970101766020771253740499940490824991832902764078239456206170030974209524007769584241907468545186710500278472524106874138761434913062348855586401121608932090083095929422062332923011035424691089816717539360744114873666052529049383413518609901851309762033122741183045277169503115371473280267269856828201989134430793824746581169194273525174396594414472086076018434053691042925787002042170837976513474911793295282149284849268685296568988889711466983327919133871077637996689538419455103744478007234872316369032829422111494276184512708170664470924820769135414558584442128362704647385529856104533658833308747372629763271935291216679358550474375148658298252866983139968661115675270471697847201616425305228074169301490876571987641130334086056314503992370450703871402618606356071714516695452957459844343401399069786345264107461948423381841593381159926267510425088832230007189267287331184518835194567318472736021642598460865500643087788771156337888190295907564898467165177747657800936943498788547887017377572246794330169563246365314840161002506854487370493653327719449715372300923485373534734539490577360440523795928347863139489751970682147549312880536334270407010239911602331950782878321818916859454635960660093643639652662349140921718725858411132350030250479836914656591992597324425485337892676743197916613233402843130056610345918924717132462222217399072831329509236349677233571757004144093336937164184862773994285745132975131624091342553480655283642694342068620490604889956830308910960316704981289305971828465564081582324241614058082308151599502595461568360932822793980472585783592551080408961767719707274867120007233738449172280597370728877875142089822925833973777845314302244920255275418192880080023825227065054325612516627767888847594178283025773213710123508004805641985243024215190882427761750479530555954720788332983572568021889852514317423300333849570744731975268811284736763098513235629246790078010463078966993468061668751939619829759374987014338425051129800718342292459870972334107640831854590331512334232648168278727270862826300168823176803234913059454599137060497686343179119367616258098821251847871947658698868621700556571307611811038676107092706056805250389749245328056022714651169673960688907849146888217150828395164869616100986943085820409214730010214410025242503555365568214291950467458021699544077988721952684238665005033722754369754421053591447901324468225324606005643106230746963026596984366537753822175136094723762651583235691297915622269155738136278100206240775502330883108048635497651501002612208253170563489115534501118072504142261492128301362453645949317382176732972303564216640289659293241282973371995719399514882824502073265759084451185537059018660143036731363394956658825569481261447069620710944657622194648169281009090251993505291048510340307393344718424474382040875764263652515669508242294238204582177085648198292881856098229229445365963934459053410996534611398761555295430987683071386104162149540383773413450809945943848482205604759387264977036951762130974622731279408972678086687097756362003976718893063327180708569175901243014782174578077983036328566167232251156523428009399320487661982840247447000819412647566193926206538184212429619303174053799850430328383389069263229878099762368684897822761877730351405010688515015949573904673380538717909801694825843249162687210702395193970047097835099193046826031702090581699310589161491072544145707740969559231475881262936283371468379274391967916386623726102614849470963815366896794005578060522891813381669608573036513902602318502406564491815069808614085421149034812791623820446743623087754505118703997879521721306230746958095361650768443773689872318569090927217410771029761739352927137742552660550745495687345206149239004927793208897647324857228316486179031410285247777674413917659868266244405081637311157051017820932201469478884539868627603464634863970131170076171322088966046365008329071098817584704380209991282418676210032534090892409823621399464545579898122099780537966313022555937722413843149449009100085134493093212794903597924518996497927256190965652122614335226023097276440548908724868937129351858896238216921520510066953011112277352565834100363706701919773352102957051301363121649078051798004423892036020862690899819493714996054633829458049980710943578047020313414475568834019758550537037734712558332389385786014339014994858484286614382836258594832163671803141365892744725274458678408854697483414430079567274140342081667186341914363126038874073282051116253694137403653010561550050727732272943516495028678248765170991921293896716108198534319123846748482880064241122509884000272771755727872407312822783763768818156093455961687085050254081103258587366942323200305664945602004384117085527045109961503816115332651832659988606955494871402108410655153286042558117950832804255393012382165984919737058646729224493372517644068600344591296508054850400920166264769616353650256776956651120998605209443415400719657410560036402966236154347913557699757408479446580730176333549788347204301214544232002625737239940709743230450441434528564822516235964049280983536932162443557892226036255329438152768804078475857165274441376227863565576213645642169428070254144320663372287279077230320159752165121931818780604176912189210428622445791940830410459365202190846840429491605875938962035827291612203831720309125896140729542357270773389477256064162707529725722260103081230384765947948031063250755635559661997338448005442315648962638393307032040611432527003624979077536453178055862595918248605516209322009669120383291672230395134602450400615452528022287917695435315932871372827181250107983211427855162946036510877269541438128847929253769382190403801352913963525113368413643718181626546709978239647063037016882830819817157404485850911321172017448315935879406843801224204771888183321825066737493547723217726188590447408287681734187136429656512936222917671548163511273873372120830759273640484003060102402617394796376181082944026751120483720724153197902611043881767741844920587338173393338264182511170307655810454835361632551401559032784640500652715239537825410307853373648923520495797316272431593253847278426341444110570957540768212567632111828532684968341006900815942269772367361733886556934461015061758390906433928268668987564129450539936473636658008705934595690197491349719075796361684116827030687277120822417716539376500327401651498154666424044138339848665280025903387087039363268604699647515619961878522403997125260260092300874886169963737711805969809003690454280723475985185106649341644091626033240823382544793564480810586805086691264506813794265849917255763340524946757819186990800368754643332558078894955650535475355851144723583554100261086496646913402745866968412614715240243610201371994462790636905523642982225653576201461760487716462591489171059829903276720620961622137691004953900247915617779492059082378168951764552117252872992119104965831681779067741800897661377626311040477697606611051458397604439182775125684711228541080191446302937286585805770151262728421660119689004954093151849103396813339043742115365483442889345057997860262102836878488958110887603094290267599586068581199310211559918843509224914599185770303950986687536972502267928820926086758153080333592727892718916592877643050753336416257311125458836475955072009245498069269686163903682297267633879060033975346083512639179990005749409885176516623717586524056242136348934225319126459942189181056988355415114429309331968920594902254549738086545025875497464514269665804176908365922558456582711322463716990232907278341699025040755951203152899648654120466798239110160858305171276905962577958889052713437686197843377653541388072328473696899154244207689355129657864694501431526525485508197398941293569063808729760922915595439058745281855920218368398683586277553320280013440583524379984768865224314109417584244726612950216814070631006280346077343734642338780556757540319810949485489106975730997641721115671971647392896932366987872033212952223663104468793105109698853309133493633357588119238816867704670940891428322144062411550443122415137369824104658928919612502084074271092212487858986090096460969401398563652789413568907518477347246849508604435875748682278141847870609423501793207239435770917942248416574129455421306913030968744871437600568146052644737197553405544472329898950954035643402821603231956108022957032330596121263276959684163910010705832038811187892823025346067363816361817001867218544127046021513182652572772842548304456114217568049663172714767654460811789289220308545232487201521921628891020221019143489196025316152896435857161854337565284071208395660514759760819088907462321326318259534750979459808576474643794623967444087527972762533946044790593673789794521131677472682806218080005393047691985708611421184646049007316513992479760000036584489150537797627290465455137103571292956858145384706726855844871922931025684465929568657349226044141998108520300872849392365430762836454202332111558586450278460792350940160221907600111221123805255436287517664440079118952011383951374273273944360296876119330505254540354926330829344419582488190732756841420022883374680257840819198482851245623906827305026997446338551701009978829478525871005478652455982104819698256477883123061511593228777311994636121624409875354211410059947854630367397723018992227031170942194935462743967494234570296191731105475970227620698683412245547812906511550734710314458237128864085712112565792597653289462837115514800776859116969427260298029488245558443687925532514375562526423787131549260839761712023805110593413982082174587297086027688823731147302377509737341035557624857235408938410554012770497279125239711814557657840512927732915518688498210842130503246917866077323676754080235826021768144695997154499293974064663466015059157265742797381256965822948552878862014537015996029443902840607397163191829221948507962048776097067858826061454388814504932258219337741118196243574372759424845219429932221947993101656485695213303935861353112701977756643502007360254182336278798190423732075574611847813717266819089622113852534055662018456490423047219303730114921190484129453314686151235192847937200367607246397273374457732771261998784711568851259137817901123306901213376428032898023245652871490722971120571610280800598773486690858939782092297280122102597461094704679985423482639015833989042124815609075924391105397632467108871059654517776279436949871399525178225372971543449472434948994382614894043477709845032713279031873722820578150629633174160991800331819485195272592873897724816684419861096919343162026958078393998897572045881251319176272291263978663922736004502896141295540937055344624205887635365694411545137952396606478816582876150956419587163517215134412283691095628654967986828300301503022950758049501661840671092900598908747879348977852462824467181247644400960173415352720467667065601956859314802862452521243542384775032495122587652968322024940075195914657450143940689378029407233568037332521521952863095242171172505881004707658950351912541269260379039364670298729547311418765131307884490454148726613413830391786542948096354563429404431526767181669888948844094798824268509241336159798100589978908584210286878905596330065278813653215264384585957624015866729347114897006862972850389067676455294295285861262935140871543525032927416819057956774286522270136635605138657495436206876662884762359233293680463365034123592910209464208432766108997161916196207732318733409114302217968565619700226660707152270694282866533217121970776346526378846255520049177513895828505708514784369128572588133041743677365080865960938977642355746572922163733594835419812375105639498707850164462423382687628325867991052559931925942144631132910630387175925881444063541791575447060991531317474162707042572659462068855623838548430770589884976740813391544900015907438261725323661453946810454611010566662142804728543026890675054271982508684629859583722228805105803291359187606904068846523066514503589296680713754908014683719940973037996340814182692144407395877585938625557456289180975921984826328599222036623415873835164895444181780173004745946120585628901670709478727054496300659990433988666624094845296510946616543604813904331025577969017699726265769102781148153806429128633275659201766116730030318241120094610651668367152819159175779522109895585830685792305846839230322099499947695152384616707048758267515143804048806949728186943675691368249716950456900371964368270335098679312648474446459847338958853608190443402218740814534028918446856264280455551098541302091227557597174224089516912365198721037316026087724903144485966038089051156033512519714884497061435631385487345378440447953854386708286622672017568291184469117348742938031561089089133140502433356267216433648806815432049775937372225935216937333063698276125167486735054193328596673009038947476375959749192959866838913011296459185382494729878027352786767389202504664258990742122263328469379988767817255705247430973284722018221255568433769156022193021125655979692551808763358458055484010085644559088734941364519772825113453900103830672455331985578998975021474098604411971925768402772506463682962292338254627465815644682385721502956211668884564591011666536705687232621557179972376604939605943741688058730521493787201735805786124720276173524303792979877210801343370059378141160105458092627763480935711153779580911772233317462642566655587403792945781886396516287668849480144912490083587976275091484396508518526055844129851453379161151797970365670267223521660457408968911299706658953126055660660925846373183460134475110485815180049798348907587382523434872315447705510900903159597806063752996275476583100075561475757233047969949107177494569780071850938062054669344675975654335801100742273022097668006958810740345939852652931489035909940791263948310587220278981709652698666342407753243242676274163236595100832374580043354110986351218706591732140284770470518956006327785888346735209611778240094471274716310142891803224125190857309163717838101784661865533181809175397957487391799342223205935137793313956529927311693216544366427865891389814297466949553338626355860245262391931089638746889707939812469626410634656969312556949959521370901881132782532808012788764751812463564673686479545368242681686429682397505426254877559163227241366238591523641036814033822789617080991181523876863749770676325132965538547400267712485508876000182623987275768325739559024462390289325171498931930501968402551780381518395132919058973424043122702651860834670589882670532023392414840933512020371907547875024636286849210702261542673189244173417046787522413558314968919858509067330243808829456042961140846178168434484769509253403556508869419808175223388128069865628384168762194157778387468550269945907339367038428125760491424799290132203740455792925749479821283200291562357965442534263066467994621133916245168616837310934369155189394001310693098843107014975937218366978699700623312284986380888706444783765485499561638849363079751249941713370962863762338743869500977611708646347674540823163449926152527698294155376092479537854481273180192509190612316265100459758380206161365460576157903111795696554753266812131541607700751059865052873603576019945440257141316425574761978727944258974158002151055990483230814424578345984802515901274935165544978343989281527078283164925989214601696002951318519102108993473072680330640850411286590191574817807659575261237115197542934707364973410235548579856288422313653271882080326597056186048172965581392781629198036734584865207129289634837072124261435656517944074936791882936354839184803637137573321112386189240743166130758358242031117084918959870003960266879787716020376843241161582936990187903482336535067257080902694443579421110001169900197025815325844129659534506101194342708747325556191981496569265796874375460105902341224529969417520385111195249648898940296664263186947389932987331421939099180462776885255541476292193254438916194939357437230237929825635073168032154757445746172294116761906582255277267794140608894947474282794557823673411613499177915263316530947365386808324104457296011430661747003228057497792748670217700905016508353793984728221894352202161410131657360756691129922785014923366912972972180161880036069451151107023225482073673331374310496900139289703011402346636424245751900979481707387453371132866876694649652866656157560988664138094613110943925650565553811990524875684706319523669853907291899567697061645587022732694867203575708522641356743268739908772813735246153129873152000223604445389680912356794895057581906532215698824490436439726747796701071738233953634948982599035306883743401016565919574582450929381704070511870307861037305502642113560439925128593228286593671631543897442013401550914241020524548839772248235048839246860023726129501123164458020277772514502045589370150602248680923436585932538433787582188096655801818403390423742625670371059139020279422795525123598430960395915062919150915891735841071689257713132915817639311152015124058284338631548365213398000626766839646791174419713188063734013094624720944938464122845644007035690446947193393666799056230509664600374128411474310451750019487677988832407435977107256742077621415193092519788270592688699124554246349075332698136499453419356002562600117310827009046491897817369928559986177830021796582428627728644873995202793739299033731674088267016281575930255759105795144159498212523319740008580091719941735479117354612256242196036870186361409027449795565043312754822521650171666527884128530646667776171934174392362017541332587035471064183799403037958168174162385781243698622283970551908695378329849596720592527435045351485223504914373148224643337921455551909099049188074816573149327579423494322196068521880287017794431361567401573751343035343045725046479708968701152068709913069875602676795753083469116335062560507542586998701459078112273437999404657356688393230267431478622069207689418721109738007747590462019238644575433152025830266816532695866862606936968418679089123644006584564733233248969500628902765479753837957100905735154990501681189844230360817060662853247559367702149520941095997469002432353196225600490139444559266261198091520500189965729136346907264628154034861055495324314009241327899985460038006323817496454720738578883233783482973811908302846916216250787628100687002428090556675998362776412045071395379393761489495852554497837079024939740550708829462372903698904199427534070220984591081400931019875851901636092627081857475522487749226391578932145218820441635543948233379330935525815854672881718346094816365650858757318013256334883095545944717327889965220248252094589965977288830064768469195550357573138551039871468193708876828420186914715625599938082838065421953943064963995968474246685738909524200367458901091111589008970890705021082610875741689059119080079867973070386884784380952484530710298944283624135355360191420975034282461983390335915844162308793598172892315488066336817437220184914930362566092766828948761063184490370224330178534677204991396339305840866636129224405786609988461073028211131724274931977326414762059230598989058117066976095527571834451577215270988449022629975578568790143566474617319842630465969275793157562095360189435107414297927404030188970672481607204150843876898025107926942114195050698911643952555620569512158815122119629780144443226358039118337275543209254144195231443435482380525423902514563050332756092746266268865927024261717319285974110564216348934667034220008756067813701541310366375567102462120475750455907326468652793273023492307985209343918960205274894829229678919007111990646605823502146841668542209409540786295408319491177930438634023783125807875475644998269551795036996671537572242136010941760902149418735755740108575814859580083152877727448432662450823751606088695654570992299306890531788351525418122523597839551236163976119428034757682279002023795636366070951663382187023698290057961178322720051374797679672982761654687952494029507963657380894063526665001366700492553961991595078117707680579716972410890102255244406266042790215983454551098370798818998114763584277625174848713134692743007842296923350957810406672237539378933267112193416353194482711450507169482067163662321579076290081719733123292648918381204378126625068489542104915103621619846822675633816478089689163592563517815765652782670370066128256626721740773694771902962775931480618513741627869709602081149192454574321410259697789966256062582251687882080718211530097574555049697021185375854348586449702403821013418761481168103221431537815611759078777371738512839785705029362505297928556882619107398793267363217020577574085469577886024127656249511161863952900243483947504380727656529200330946481355621760267291676130549939768956870710472205859428545838198962494901269383348280884679609953048406073011624394121226174884404971631702433516178944321576414957230976746063393250671561107564567315378881880217100318764646911434621399050563512058636958946998304413056008318718425147240162421999451888288976244570703991629098883509147222748223346897125121814309319601160112229550117546074603066005686059842137019063745784009033070966226892492977465934235474279184612354970450062053913570749046715219648246854496559745440530141530762954998834747560617995220793760237173156677662035501297035746474120420853811493629662556069053564068956319361377543018966635154672965415846764618695753897442304150171920554272124356672069784268794326492114380798179263910543012817548783284444504119474360073504792028974146919029129176915347645610650283572871869594318527492040957002382579912119440040326690453109422475709989474271343084337528371954084846206934427166738351910051957104987909083584844866513945488084412990713458845277471395075104228736536097830232495906890582372316411516686159623988232010463850329948588440620943458831573886268951229879334038914171852456374148128100516381037560864349116507444867291275891454656403501492281481963905389147117782912346650461378869660574297140118991273869395842991551007164999660655392130699447634805697267538559196147204874743219828033637342997012993757341115190411500636142129854256298648263218315418608500344908297786617899099919334468015854778429100572738310848884837430220092277440602425336618101555054052843085124260743827226603663148656456780132612306371936737401843126374983599474713855674557419651192193235686108124971564691781345142746603199283942971985822599956748263060018114866685132037670570722281312792472572116258965220301970895999234819208290222117966853125114183229055888576573676170388020612048495373672984651321101895046848775223372776304292258363220074788549910570670277524205670132905032047985394175659919001894465916101766485222098104265801072812995454281512958025602226382577647492597485395612898231158769818250009497743455019457214488668008990469719694272131005506602688768725591215958269504783280515390431605264321267495013419655224589652640045317682234556591181688570988740657308931277684321020723905526234487405908181543024034800959587511673338418715106817943552283218175478817820688366300847729876045176325645652306675808839878302866023398629883615146931664699629559211231941510367328814619150909621323872591708518244145863131310410577903797244640316122504686413506593107171132342384137927080227800244433038743602678702510539964281402330472222046883184612040471731000452642235618873379565555744753322071364219077869472317432714423251806675867357717603505545933419490081452027947677335900014307658127861696881301023283454072062975041759516954927705150143406965500618547457530632779547096413801439320985401608598082803639497302966593083663704572587678495744304394681938655477173104019412199757655503464938671963957000200811363789197908134426563339243620357927432806166305423811546251821190418528812839340556957080364747629420420105811441834924320214903895765774692067318541241828355107920627996608701739409245331572203625485032927806318616790148624297730630535416109929660522001756642892301524313346385955026707947711073211263720579976383587139909714824416920067840686687655333108878770262324191075393755511869442431361713608524492910841588253064441539215766851235048854755086118228230117885438802236684808669315626970641890910671181755224072756582934018308413957372232817089233400140088209840940555274006806526475189080420483252205506833243523380709783004970480888772298272585489244040229096225741005568650703318816373782156922336238785804041306102876556484990423325591574146484665485857557641747622269540775420457864461458167323327068584111750648140771676206342611149925835628013238346869923509517814611244329427958576920382265585700552004608581251969545638192515225347692905769403003664990809537694039943466978179644938892783614731695090921016819172203502834846826623413186626899635794919677410487765846272232563041553339184996772897759169767524049627330805099764128184783815463342130678642995536787387045139874503274118740587901366465250168111044495980479636530159727992273436688261607409912517417213416994672289419753466176850026081777295879574290385976788959975013557859714525113090215079435228423912700638576200565900759374482978786357260190376304035705968277254674432889412697306578487099086319242866544259829514301181637105876099000198463168780689561684366924851874050737283820475495723827039006607216165704216422268505555666321759519770258024201339164501451176582117845630376287889186383903109771469479032767894769110985683733602242693301440348063741389049669370880100881951654873565957670847198389144592673837459575252555806207944302590887049439788717151082746023934148606071364118966013918611161014325247269803301083998536980554189587365230947758996789232892196927136524311057520089885805189504036238364192692940794217047008964391162790529157619824133267846177367922374591617722195286193138247701535509183523066794980650944777120561544207727801688402990141303192437051361033276017993067727874988764162896196606342426638668646518260476714609779453878932935163919260786641880781816547675663190659658010280496423665712660592764367360734150366490069344425780245616147432858259841005302134507661053925623689478271359120557407864957391782136065416251070423727151736706555127656618413204330346302795747078670957553136338994910314364290365079288515278621686631497357824114207077875118695572822093483148171100922852187446282173075919724010205840457881773074553749921908934451536154173385152912318151844246362452340596823570733488166393517755798711335679117714087050643762292249670888464004148624903491070247176283289932377277662676102714406857182686285983373235926841832073139467047925056600757960807943268811222051356059436014910090596872198490238902680088514985184829055795620398325116345029896953966214486791255394384922784678033473676520153701897644151594560261445556633284293912931754665510537920445465482525013612294739153843018978126794823903882074042309296165556035779705054999340706866100560156254892471929441410452266882729119098318461282209775533219702058714140275829189330810079271789612313443476007013500403697659376098675822342698711842744724099089624683075311567056542021716264700173445200389679088568930157587527708480524521615085573063579909335958709152218556178733842737620304337939020529329767707981964505072726472286733923244046933527745694541410278472590210212663824539616610312090211933944440534934943146067738054165338047590931417406244889461253951917790578879910794147326979813465448541911138538054609518838438567010729650791685095405758617827357106990404735530136246868603636197440611183371219007782867671962603319973282805751532258635145707306812273402687029614430074925598274337312415208526900823154993192563224971174419845395209915189002160652162440343751154408262112424088334132090119732543536719409296159477733714075177490889600264737586642919225071095700810881412887743852190353410058917331223483486900767203864665790805637702652191798873252583318102800631099423402682560488482799534493489794732605146073914516058355677186069495564341615673575994113702019174793358744531151241390085143482892229791169409006507734863275990786219269441442116227403991245172469516374426349269391973773096281072945825282151802928017268202827217216611116693332069930725926309411598790345260359736960525535947974645378859817366492502120659785388186817404682277377260219537891136536387240463483733991529789543508134028350914912112117365464693248587626585941109981467457753840971900254873518103122906960947320757061781020370487042506796647139233645455953197439934644330425466548811915639130925958864733064935815443141693593794456247191842847623041838878479852718271332802645574720416187459223616902224062130502357378137782209510083659371609500939765559595904486012630114196623327276489677549278349881940321602249885890215701459325142425790500954311445061776723017479754326908271831099794363340742180339470998857353235043170985303789287609634433086905624584149850099141054067056077195640218911563058872298048242428887185796253827479643046914230356504187730220655378603729999540556532807655982034753936229129297053647124818259210185203291001534384335320332665303027301062198815613527577470881724128524045269394241571382184276752521156908630200560692827058168831700225411752276991146498969817160934114046172252905295136430579359016900536774230816276681079278959510245032982627916342592568000386309333148993851988951770595497023524599699246033160252125686996658322472790215078722254244060377710877432299141004604628650938285795964082776547525478605152532109556962472429811720666870550319699139417333861211536408111413779241080783658078246863024614644806568409110789588420028707247428588969196085018437757682286064701042639066089932082242525293212461205897593138314594326155314790316246371358747752928140258919991433528638577846377508816708864062301705303429061889359967398801511126743387755654357155748027200259071218970715414204791815184637718857887531842054448498668814760079429929872955816277549508881309759068449246976525707464910946779321691799983238138395318602583766817322189862072311763397956645623843748994168104351917712407016221491132593546869373734441671873675980644680619478524475261557801462677911060153999844525472580866560738267689621997075159956617258907194810674721245413408870424049631855461044336373020014824137247086716577544856731536693216070874843620411458357302234402100079020350902023945696896627195339683977740698578768512118948809811226641202165663529483083730718241925137712956178874024093537954579809262451294013506275088292554955208391531964956387969034310291669013201691139125439072034688019498529767253109597136448831159338024687188168116561916644317454258274066726083292031816648427636862830876791017526894944979291028423971866325939477264365990708710664694995389336618081602790740519344149469426279291385550042921488110108506562975023773239953479939877196335417132436458117418873490062196438260967683325296003244437422809717226653083018744020674913461475132018048691662277158439461084947930018883864324243914950193405136793936537945876372648612829812770137891115075326120311338155588485644204431155264157103140583606482311942807621547939346174273209400346091291859750968040146555414673183465436369055849398495128647326155647319029413049020531909964586402202140015423165042150731016288420758887508057661107312268472859105544931573911455874214354315795088445012935963817747543374513337517087868853196737471759592926943518584061366672319265537594243110980075164922379081119454171556809082369608134978260948966599713366831244024276000621175017210655773978180683485335463564026741958902107410456314982516380590842687942204962417991367292634312171120767245034598923479951236144408321334481913435443789354827962651789230739454545188395042469772459843337095979942449547929863161242291590025838524946569593406369497433636988972239077121227878051348715030401884605175712864806253944953533651679874845817720693567740602047849517947408462913960325374385990332644384028486812402613390931186241153288771518171995614893259109817438171685525647322867871254971498779428081767420118734487952920665606825657110439655613498291209577999873103879933202266523142016789731230121877254333327490772864824345643746559842308429773778608445378711367612562011005392519605582667897508981359404275785185757838132607127762394985094543864968841719596694654758506200142490801627725617767446537124042915978098824329656546694981797650530120320055315623204470295080496092628977663680066568498306367394716576682711028378334401266065754234023416210919280230674859096009989852130207930871123425228711507790598817577792065294785520786650871518794028675631964095456238907045701807941221452130814976895421553725094477100831180610570484819339027621790141994730944468430933789450418797188179687952360996069633712962607355998140851404381274393467976450335361661350716090229704296070921697793112485630388757518540794883692535375918301423681726750931504420905574054168868218054000150474790068929912693397045053210749735223070061435577475140857581990905458553779354849374747774624526195323602624652691035152194650516820798539642928985160571874211320178099889269558273540901231973332340005913546385726206446494068325635856148457971430364033149320147576783155550476811223856089502072809644283462456888240974916419152719725302339581860363992862988871315166329112883085415107489647349991068479731847123172976040223074980024809829067353858090037842371763254186013900191601912660445100423660271841901169642661577293385024828453804933622190187357550875110894036071108279864760517655349859104399862827706712057654345224859939732136043838290771187257793847723094254313227039520193549381782229283629436133230444371399778466090013359105224512088019785713897555085010633822803165017896166206076177776763752418038903914795404552097686837466745095805772433079235066776854666878937385313449260237314482549015117717821272558404004932347195969293393202505819348618984703676272226550287018455001239893724204830161898044228808110590789071172818764582012175683486034730327314055705607792949359122357740863152738518396516775440309364728232683521732841289358924258324362022388531601827541447908651843405920405114574947146625517296380555934318591105197175453978038282197754283685707394746224978040945786774775289061412686654866669429158229922943104885838746990849408126223333541476119276808838581952728152831881213496095663486175103482637468278677940133007757652542796573919196273369043257313580780757286862661928780904589519461762771756382765756566442724580718989761541461859708968047358376954419133983659038113064205472333268078090885183989931082682124146112045494431223837244126936743434161721648561262599520741907797029425083578587083990595741156545191396383509278686952324544658592292505155608059902342707726307916795824521822417644769684433448009108868607006786589798713245044363752136941866255128870849820033771731412631616762499576057874933840597785530136934674285034151176041517629560423657073506707623965083111930522930776734151059073806413150070851736852841701022782658446483966889142647559032570845924087320411715104289806628073858636975279977450240423843149527128408876564178899246528143717299585292143414754737643206102949892322932823336303200672083856797447935432075791308211385974249330751948281992012941905564750570870016316455983626545282124614994695522407194633307691529350599871253421018739740731354803669756740387405731001023488432855261922400795034514471105603578434982262834190292788615636038999354689508434439689106765969483812281392465559819516810962732421388265027566046915404428590179832760552865010361851559464556749314637197519249495058128471822195628280056195331776062764241508554793462098605556971061564809119972915644423522214395712100604102166568996870566419476445601178924842178726247377805333083831651011846351865419904154113309371256632013799776207700523987824314867131418058476873074959932474519955418807525209001354195547332502840999215622270826148300096284263082847667031798114026504173181269625344827494096162080921783001489906664215991279225936168588057158735970224031664812559875212197049037879377532780980614821951952896032250764468767475326738942940986671624251438218325564005849828194950021450376193370504314788462778760034908901453004470439890361645910440086314054973455468380653361486943318535075836563336624708308744267020039547720706799183425037957710175222034091892119323776190042304253505316240253626315567360467698851380148550521205418376391812190159543700306370493903198092334993835294312923234893003448241789111657861549819784417320279558191144176571509675840578909527245200452590691858025839584630505762409764665591429134858502641423698736531916461463032734853487587102895603016732653181722651023997424165449656602012511204174832918520291528652899054026685501238156764821202074965331928498619689451373384628290635183309396680604859644272826843092144676660768762969471735712874236900026693707611748523509491221794305384489456632991178213196009278088613734738882409987730658429049687258592642772558661208389542620544836411849135541832251684378800248798151855614254661574833646058326246042704480594027758593688283532926636803004340190997011774047534429701214104300330700765920112326133498354654431449257833542675434514430362381698276302410341735280008450144394185916907229851268897333457273256307564072199552165950324728082616183648468965596021279241010067515277815989133103283448893062499109374825099883447988204565402667924613279719392035374409577791933546021880782773889342050732795189241413265418047759684530452185173027755572627878651831423382118363506301094007781354766915448563808649966521346577405113544879760667719875544449173900817783806447263433917161777283749003714969677963983755548138533894364311887044406065209616647728332869267355959712703592953991986573630722451597128982022766279264930213326875806890344833085520407948998636113113773548131234855244134668703171069764191167171795606450398266459919449199799499565921424974289040964777781843540768990593946237326783765984293783881402209691692419853314788655210160477586962472883962813264525505204954097147912037325716105261805479019838390143306462622623500963449440935964053449046972808296251914483103545907401666142758001084260738936880884488182315722578459546175709317675261329504186131491242557426355383529252484883829133862271675334970992235225849600331914248907172213295615498168855774749846811052660841438294029270485773859306845120178441009962277743804984809887189169352498348932540382134524802961842263872665251931025717005660731601902158043809066951615611971903933987777547446237189508217013212039638885181557184477766709700699760888956558619236103779265017081827248041325263211985048842352362437084130376949066809498329942594229557584039941783385117941357808084231532865139263635301434617207220711032021274209551679866196146957538708426179700280943342636960759920138043214266114232197979014982218091388617643417525719795405730132472824922127078222320430834925129169517999548054833346850687721409152641292065273092173830971117268782988115382893390620113994063163791660125256738374867350074569491701915869430966527295162267103706106128936454919503693292856313939703865535992196533777932523823484288384152474571903642432497889084611993530096811710202990663511473527849989911884908247115304675873440088644078807514033126298293293585169922602347184205143435284130601299251091200133765635496469632652251692046065076077752557339253865297709299616298639758364876879034788534594535150616650860871296951486523367211114494793309551185040434866706627584016930249472287371047503197853738191262209108085348773281342622417957434767045133140642581653165946843586415702096832905956358904127971962014737199542276274206036025769247665453311454916389075535084533763254635126209422379395381647241223770540136039060731936743937928110247834932426990917127038416943764509628012493911672791902631101146030927350688505380747777055216303973640043201359577394164912426185498403204498698104333384517084544438759678905340138427115703085315491276958873871042981706726734718581778992311102951395932956368192476669995883486023187928423437002540475229364749280305672361863443784524832101309758393402693693634866816131926509305099508237022847668275865221857434475049654028254110136087696196740597664395496635081789234198553230200686190468902357341301238960247980939188826037160993294455030984600934310371380290058920090309344370101096269957090424436319549893008908291632689034741518209756460987098008662284867406012113669130376546032408213498939779778195269447379004277077731877383104460694551947843920279728245203721537080125573171305366495049453087136384402758572202134027803678178073801506688677184739452951303909922475696171579511947307798227673328493446438575687530542072504143579747890412054887986541405109667268250458658258611425310400079539570099846232450446698550614708565985831292819215282729825347712060926224942587239536160834684225382995559899630154244452463069377289411052116064398659798238176056301923050293101532934270246770109268177078058996145809533168922502455227696531485461986733806689247499019451943392911875920395208266518967670139118660644988721833783978138278170302133980721541185309849181303357744610107868788625012296105593194452463370841561294245612048468862874998440909512463424672918319276152529903372189656290160775177966109382550044361475116101080545226914230847602194128054730398870399827218693197983935581512866385192353554113841281812957142118057489875411706277043670470169121883384359892588597818396148356185623771091867835251287532360347035769988600457682375559166020294242278836925649981806652535102520185798770472277492592393106421328703346934532508761547726522886331978487735897758826345504187014325135559224608295821235044584486131660174989811040680590129768156744723354498701923627886746991017811120534712812014614291879321848447867419744335708951080577096288245548546461218674426308218899172487787015106725268551122209571745504071152168874013569208393322513554026807513700135918085074772150018486706013547434307790383280690675631510893625241941584625399901428851167676345303423858203758767897829308548410208437116812660952866784346057220707162596576635128315286466077668683888148496999293977063695897091937155204022967875655327938019501973290999279667570488466224815426773033826969375440474659305913515337659365057487963927541529077791199374996787706481687489666850004253264901488255897748538669624712566858699076688232086302521007168075134816938969240516199436560563319028562288545213474730491501912957215989257634387388301543068296701076764176721693658497608083981166645281681311758333925051073701516452074496218053801995382600406347240896123653202013943673626101432444396223289839465447802631326194059138893174850145280457967133500244892555654282995530791207557068067718863740380707257923815402694425958905107784834106273711091702720803351273051739055027104078520450486237475413342278658765446246004108933811937313895134638329828851924921220720235397965728596256743991967438966438287687017671011114382816806982058160185906644822652729107324399313823157598630660346842818581247290494968284967560247827331889524846072190451323821687525382371641697776805680432178558051746636417983815278743306456740563967172541056745925130308697837655592961486780353622825741258986384970507455885732790157636170253525414514781918594220782425590908287403505213607463022761952906423590607473638338281955351113485665725957266410191342547331575930250857627730371935013012898812708211658074493487676756427902037761917726036458787506639858172149879244203818391722372221512233449676955929141155920828511190676745344378335977037329407549084769094013727612073719816154234385059666616424218272825155473804919751882792062325319708956694365061582397624192374159173613398794728546065639254471600196594523999696934033865670025308045028556716380634322460244834873864125348375945177150335653993417775239626634105587969837299329644413872701662799948083151776649712682802799876978974903131973424561740894494257158579703467424074138065665254782205103552036262783572031714453723138692225075837847979395710857152764662792130048193630950963279648459059992571479552568292544653178270946532096028957767558678372631634047921952172517092852236816563343247260285201929900547767619141707739998025733351927182525463121432152141644617013007762838387756628912735910098749952887327675078997006358584990813987758984722409933116010231809020919439894177771772565069163891012970583064461253866785550773780378936594229954635363751446429910679295867698711711463622940238010984985133186942183938166383353573657029389586788562207828871694255486336417093384196212759540842057897959356661231129764850560713886385139118874048765985531784618807267079526372963071369666846742481372530048940054258355321544376655086174363597903508049302901131780719299239502635780955807468080649265492395489080927764261273483981857563315377413164008449401816062586550356847639177527994072909762783667133270555497045515611433464290352699718807458613858540996139621568667515687304512165400965128170707140252425926452541334774694303512706582496016126846842931404063555624751357502895703772479312807927402091919553850186183221813386755484632539469945583214854256150080209561265067985918495848284770707302549091308814305765854671328323276672840016951669292899227307094443731581860534988861215636483896336123597661107456273180138547537365945036517872977453930283837416616171328397506894368664410803855903955894850557189659503296623973572246797317486500843527081439810316646889405787802988233934439371356730018851761895584608619781784521304303744386637825342920151206382374966039645193693816808732032871082465872378861627559538131667814209638937691493829429300397382399841158294947532098781183820863906075279390211309734844730537310668405623471874790943900758216463153345360788108895907255072853030623789403510646624730087997661914702126527242945562653864032884612448838642899159572761177532119721632960808883281151403183261632773295163360205969539076993599249257131524682803506680047808798842042483066082149101724930691872149063296571427486189225475257831162018907519957210499617316517909175585771172310567169392035232712117384344404768133567765437152015223041798275263873223033079222816992002567398747903493960978560766626140707691678419322326632232424728463317331658911607291463365447873732371262234057149115942408614221437458853873806492091445579684176947470210526601563990112889500007191300581490673547205152042009979688300487869551099975499876752920597923271249211993499361112141947050646603560598781612409081105488045128069004441829262740232889382433011573884683882977500189208711051937160975350195923082007065898586483607171459258384524540539309962108864022778544922181431278104031738523116296825700674248071243672680727588590653071514575465786968407054754084941938050809320888011305921538964215112218086095887528162640370154940951150985078963452863761332517888536171765928549390387065299723121443019278762911737985645275243409942792477672986705377026649917840145351022370377212403611070477049661603097326318148832057442935998627010983939619136822680127892920697610949271216329290287674860715151649279878615401190286775472035636290189047836787655828356947503799788517175510352591838130082912337456163509946666187853921436961267874792727199149496673815168384165004649101777413506574107530519104438186179647371529424694921086897724981408123114030506073904396154502394666168288519175586540478214214652425305570046861950869996670609982481675755736904884175576096024919639770351055538747098214878113128890201245180641147747108853644177768879360870650362841025908402920679769765721338670104509733012011350941667486655073390053508496685232392748108842571627833651989985653807221954579922776189940740329588870775366957072425341346466159258514836711333935122929094073283949365518005908641308630325476428062506701183321684394875890914781980699774615055706545537205830186949270399654087751784608122286929394559134718853857720845121392712462349362467762268961914348678443775812891688173982295789212809546715323745377711647126142347614374233611070155635224216092073033137557741335702379980448694351984767234978308417522553046808535400764044050966739108164173624417154011193278256600984008566030451816062392332378568081103879233961149152579562054004639562950518318194260981221453341615181108228839714751611676539602500141959035226511728351085020333595531602178964184670490194970889062388689842365954114962247194912051991276461811371259518639856622266055065548238318736286966988119484171169649749162154217655327491049996343325877991679058645334700310378734118888848407651892958119237036284639950450371064657009415937337142301959818669820483933314625567678054154637206183041155215252758023614332852378830895229497993815668121575082013026387328137960735916377065956388876248394783886803656920884470529770942536248602397493718638362609747932152520774909728643542904374775269017540335124742949497101234989966849655746638660817740523802679403616953957866421636507211211762219802672349070708600265332587882720833495555717200864768418076991953413727155431986228996887155486251519013629345015153416653173600016470972114036595991948716073549143467725755231402957591869457778992148928382563336414071751013697083257722381326828668578400195514443577101807695164013473573024828696264674745955190302419358043595100787498593560167580001994210167321631514965363445096588998749793040208684390021675920220090965434725841272533475329884420787709675857044281648328348534022604735376382783090188262015276368114199614541678179495226505983468953121335510204791016817280742473639182772762850563427526624997325345898228189705921781583163337042917053339727526692346857644469545893250117855870855413045593839864623919447003746941473358013975719026684111440610874316198425507135009924736072122985789963434418982551565125649931120025757077231269734037791515214391153925290913024861692076340246671611789628821961273147341012260381487184569559653340994638992539063797646086468605987386551694565289332931616411041829526059792902191209752424316899166155260219913550707302863446195029451037921771057794018557901413826557730298799551112407130494833911092978378723061961197351192120039686988679295120104724670810770059944876004615537229738301608915392675894524451031797482587531162160035002432286924868866452457991633534874517823065664806921070962353919575528372087051383225087275444104997948069633156525407756869371503755798584446142154805614737837587294210165760381717720167877261626810154147807570325815538099424344953862677194091764090979500745666721979928703696590085647732810346935598735523373305504762996940745686273579196000258043875462306950223850776244941349276072710157365971787584406485460402684430384949042885567370528044716877228497190532614154242439105209175646025701961210296511673540313552916683936548409822799897841708805321734291797547096787968972137895614056528535698067248017305296697715714639808705913081051807857650605399914758768873140142026242617246942177635416271045936350679389397081068947576997879633370640397600411780279034609407770568022442356431056128203998865547686942566726779243721254394182038127936032753181379055532745690535418860294723762854852875830052727350074603204468406348696296163969945626984335422305353852666937955911171575153610357935791765635607114609536709725231735508683768580582055919616126495532228786143064274875678344728414107005576991465303554810004745068412633818383174301389102943581411645421711769608181061947586005673422693791242486120961638701622488902002685129094017045489313212968005901306271799775653036605505713915277851569364223774907212920960367780455048241869906617780557066262725486057538475990057729076085535267639883093261029189387418580708141036258496832978479204323930438522224070985117275474551040207492222588276478905762774476272777821063941967824710175669162878737062384899530694311143066543806134229978627770549834975812528460410824636722549233369903143294406690964206630733759596516028108518193821145935897133399480263999899977524083342496874765788939388708728683255257922551857657746161455398995883863307790924501748822152591280659151077735390903552167519358391314532943771353893331863423427708258591757826564318017751315062037324055011879228899292042188158023745893697693276737161889216374883266920838595795489655890033179350158410517791147778957445828163513965417352997810258898621546166904351403967077411327803231042733770860759355400233378085859286125609674174703858898111119714085506120352542642732645209448380984732237811161965464887382475391020547385084065392262335291490776400965639798055033796558078745872590367918095456494624338081283525807090631178335342475884364130298785624917481433281177257771866782146479929011820896023080078417587611087272735441469052570160785898156002064312280079679410533282775849865083032036480778804028555907880559276819649549492502307168657145904432494069975089611186865245076516571253841534716071758073789215348645874819335656487108195841352285218751173773385498141499745609182573068243818527165027502251938754847909677020726080057931532299856172207955550358163085594680554611581380596619169799219581806118948176817173822932309570491517250856578029006864877571850071519652875004714130895913406094608939467394141605493789645096214385107178301089659949499518167117233835504212658929702699246900142861612443256854404774125379936001996193523589336360884398277095357330389145205949187486907371034138688412534147249154931171546041761862370539745385135188727798439372264855206870298473480251450828658091772676834989615834546368812125600529350989594119133082066291015350469203894060533122211829413617374800415168307349237960230586857026055725287410848448319251321830065820588155445097923832845294476265384360055253057427515316816548605056425108127064551254395348811109978537724153492965066723618729787856741206750547632370708442038200948326032608486367076939625287629944273022516980953879371275340788198428940043066567875596058489766976544384462962482153205423577219163745490838715845314317479092428577032019988390293092490193468665974056825920868792807627568884933808299322767343883896189431192310895823967536866894025043000154604345812280770112756690693919033820173989122674312490104255636783934785436659564050955864230283825187058721910773559697435483687398993540083179362358845116365134997200676638000207690045638343544889966513561978378177470753546645913255688995644454567103423500984286830674898761891914028739506441400284441201745208910734279864990515653201377708733957508283872478029785724562443142562958819557657566138120379549269075578023038365614552127867174875308722293098363413309535766027963692953546662034246919876537664680845859519635466161446402022227901456888287502358883935987716190934791110880564802751969392727714863989919403525743831836617045330828827156052047322053908307783946520039167569271105869716957974560505812681650404779085701898561110813676252947489114724369841952656348313250746675037741403655370855540222379749982903331984882814994813863593597359496875405916989817881278796725477442037544491897577849616774844099014890248872398184316646529577002906931862059408237272708578947319809330567084039529516912836704611220430241234076409633067381426536094359239383408429989222369212638291856754890626285597099257794824953460546412190950526628001093923082932803639013821481062927084569103480875839632869530776005444212362523790045167000860806106962432509966952559755322374512397936344439217807648219141249480172699140476455006604715932536292536550389171415025628832753297483900870369748583568691191299525861591580164934202128497479627452375592944165056558888629790283933916080170473467781120514621146476727624729263440398872988946126612075514534775714862677230049544486335018681221898620061215578358276772308575994751467328243487043095745985790619079225148980995716572628991656477829615216552897301803297405860961518353527796203870855464456611542740409295085332344076958068051295930682090344675531966574563081899945548999865076557460767173846788979876817513113723131885576544099197873728798520160641948934130131611501520455089914630143062028659382375556312091628334628538007436599967833152266200423773900681963445974395685261630246551230156042567331316627867526073428174281588055630982844007236693969850632751606145715409718647154371766330577732205180046139134833159008537434766293541807950626057954610759245027165618128493344631936098899104376680429502844475008134160445227836296333348967344204304378989281608787334655504419250729011555754047448027523063814752141291988404898394632948778525619618286787655206013284278744566631255333968987930399364626085375237156848907788356054475344910370890805327903851284143604780583841746544833045752508418644472241984896637819981008549225724802047335870803193815047048162735664894651404176295885904460637860839076395421720532585209665971389440976297292722209726299814195561565271691683421199681313785241529454453016821798758797485375996680041798856880348759786359380375074394652359326088538919064941409039585805320048425106244286409479495353965392690396727402134971189136047529222045500872614510945933869718620337006139541018457699088616316136594522035504127863925769219253268240594286833408384060098488342042078695747902056598389782957848931096408274626263742661370729544376527740357068933500149331794339722034672490765843613033976133741288704040095892427915354682122737209889348412574052045562544137886505711582144831449267771631447843828862842125010784571470855176195088071362961836536659660709178592611682220739322721088190927822749050953185435344798635139419835503146456174724498633313271741845510044189067967769780565235387063869747970939797169374627796587462952014870176847098627184693226224790994946245155204581910464394516798410795944389736078096334776539641743899783950407700669574551799171811535310116782913951795578334205767698950538034989746784723651457196099312583924275276103441040050842780469739242917108412925623793629960233718355238715468575905295535601830564720763957896892453216657985458709858851520313174907786770889769251556267732117120503255502160292510787805153951732825778234176989665683209619948514229272594859951226549382898360522401992703953776958785470735857705927135499247236656953774978237153955339551797135772812490631806865749138891033401060957608038640233962526511600236368973037390246699117038720095655801535803728577881936214841403809297952972441845865579462068910652533882011218321575774306314235957043872989092242144627784004351555464244528338836082876294705155771301956470229155961264701602834863507998132709238051132543323733714821132095442259206228894013946605954574065775523189998216542815456555277200470637781337669232024286449242736598130503858512518950843221124201240632055207649797581584116992761319834099576292948301396408102793428162616155827690449621562461371044787040641232678914206014309158574059809137798603499459164048300295376812039580309573602312822540294945909878381688129071541918481758841685302580738715184547576695639571257526679582866987677190274215933597007447160790132271383200691576555184200618099571771033541956018025627498627605218896890658211922694283121669778270860971985136970654582715703331939623599038509795655802077476737826371944264666735130678332202373916736067077531839608027256220657851118500939031783009540753790870587215636584646089427417587493211556515922523270509433360421530183401978663715506670319906374141657276942129394727101238286882373327001668600464958709135799355255205461350080544286248583505401590521146621603501992247462852297106396575311044463228800272017829840328272180517980981895734008673308294218416060588469692254488058948398277636687042465337163314099324135171883622719808753907490017717555012767579184388863295615275971719089966057437919446574738133578394809613442603192496640758408189856981139999396590575226210989776818092508198497539246104015212468770256812216336442248022231158425400516552718360732757849414519075923249908752114492390831292619642397422423052256978674024301251703840948096314066620962831677871467494322124302546937703062611179841648884736822040910076056649548946104668721419883036518756990712426769833743202428708485782401512365783981928829096029151459192036642115130799617059928897938732026252254662216365611855573863469749504754777259787749698750601841699496684185749091726044924640959770558868682680933994030638258304519289099859189092663226006771594576228480651725363460095984883531150144070276637556400636535190018133737952255983433816284858219260659288270957039650313397124934587949814535539165359246385964592241868364035981547736924843143097618989997441907233135851693495882712478369230876470412563493912948304668343418204990173405302352594179684479719879871128598213356974950233275086557519215420633441180190928514832312593955149686900781071227209754439522328514599973512584633130942155839376859271784082852714317214685654665600040034855310168958094558320594049694226972089620917500362384480394868815262967661458325359559825690826201626881007699799882138382470650199926082367501932534648289029488752699633903969535176929814273637928019942018393287033812430227286445583861027085118169916495910772575266427056266643876389875925698485793479418117248233683203632632353907632381671929376266945413642424319193781968050828258919455806564210701600982191888265423494573670632193129806510278781103555637315996453728326086906909043719464206664478402266276168708722292706645710462826355200192460143490009030328956808879241216767514289513259014804389840216914493695329292673706455091744091676206484561243657758520262016952223667755936209955673209715907117708154403334714835845381076445960617540946959344318750475377483734078591015664930850658251953170674053841141856174072731670872272835720266140052335268310960016755046740413031262177945570841605452224089774404287636129372305533845645952427841189179892487079199522394670185080520434755486111454404504478890584315821697447138509408385083200000553868823400186410600736163658045449975545768599501085959069534701316701830502225070831484088403209773001302252389241858295275008495842725156058729382771510986945980329298192696677616722392667886344341737737003472248297953886177973575139925765511153989342505820767110694191096705776457992747605771007840184384273427506783487297753897920685338253192527514493316016150692459259274227765498376384387774296094469077330081636028288176437612285141171146633687974205261363810874784798431657990772450185697332169360652916587755849789594893478196515120760286793399011295819801698930252444786654795382896066137347403316388292065938060875289114701571444457325179946184070280155965122215192299222266791528115154452753418221297894625541122463793677664150152689004281237761331160317290122120556600968677640227773991639003820835135713387477658361660363971510449633725508941895403584692946770320028188580280653799000324218032665821461618663448836254044553788940004553941257669026559328397789165120759016267684643704614066923674732968023339236356222724587209699085729620696696969907598295418465080456274286069337556812045292024419352010901921065647671626444486355946247648153554689239104885637812038935160263243440705918953799195522990275000467068576107587116136077056367598839067608526962331422196425914817501681249538916992303199354678900804474076293448140818487624056188172357978512419777889294284913344812363630525161628207771312034573037881460911348543150590074411390823952233879418998297976182931988310356831728025419509635610148922183778743165235680630294210907453406826715894350868373511743505102881025066084075136255177466453414004336898402388862610226639355314958355959746253910701128647553750138388171608460526077360493931452282850507808569063432755728922942933558072702456156510301964104162114040032568849082426201116409243260163391208025328993245532694484505165280511829012898828997811839089360041647836064848206920454610474948389293765071295798530104797418375382440766600428677723326476952395581213496444348811045257447530356327016249023334549422052070966128019612812484364622118578232675169395813751804857333424650338687647817635489674842013089984832644572794296662894246077794253907507413573809755083783955072108320167222431699837184180183145235869591563167263047152868813890500266016102292073880357576637321974019159432860043106635848425134511464013501732841504987555418215972652727151617842284619664304653274681094287508977235743844034727277860426836011778893608778916135042059136553045551598288000266859703687082511622345960225556048387942701824366527560707453898117822404808232749764451961514935995311956126895298542066601595916604227088949976781636236985506671527978019240810205732678128767545365462397955427629719348711074195183359279045994635141140909794386675996039080620249211879942722240657777473228337087451952202016628644616333609956124148846706833298508426870133273374513159422786522414885880356726356204504258643653871252626996712658171698733570128956441538985182389152791688024248419677920129542228792361351244405374039792154612280369430148997935771078412648875787975973009597842721488709273538821832376919521803445935297555980033603038590763541417953365586258748375447205833194253139213163485192749400365957240776078499924841941817635854620273197024954720827296379295725208294421728559329798020614475204137281027546748211998596218234175592059230363041069627323793430370840144923612735647674624869682468975133346725967396239673323410142907538980044617287384189449993523423149090022232190329066137835354351391202400632208140123559914786013341795766320198166352650208719383559667644253613678680706389101315930987886247533180211249889493752590879078177989766773885927434156470768594609908344898147648801534618896408369068684911193921027943187262540971089974217755718196158186245522463937668053436709956034640210553508052199444940104505365260988587494599345079985502682418612055985393584696508694822654846450058067950432727638016225709358495577305664815285878620127066776696889371715496518891655029746961544633746086558270617911813861590435075257429757818108372042530099732924439291280364490802217240237599327476851949623303244277305151711704383498377406515305030168951869514242480849918928978778433143754001309500597387448340379397043534787995010900177114366503132804572555976966779798572318669397938229038677691256871451355528723640684936495229723929873766901572620959960249267247889987642687150457628704850892875185321443769544368652358092483497557031929479409428317792600061829480092922035213724394251148038677378559866259819771312302207293682542220668095203050653361100538607359631619693422293043554065316803426871151956538560215288504421681571909884467955809196580549413354437495660011394128916762510473374996815424189887517027792984976666373947763143259389513231704189432964967729654013160234294414652191747219587520606918208383460083292466796399075710625155809507010609976063103627939540583325710439762923075679252762047820735919952148773006202040989571078151132307910461343908740490594839117535580086054249205026581659542823208436292217415179326707378290921262377013572586755014316628262350483898352004031870255380785747698761067204587492756088003828317483755805598396677317174653543588721270732491426814596349878303077061315357815175395948824576272354081720013422603277733636978358334815822310860583452638351526494820743347949215822762674581569027839540793411442606689826830059826514118047619306277005850726540758209522100140855057018016677126810575539410821221630224340752147175696777981131202675504835873555442613168158229386705352276058516853293833518009276075575944089682432190029679906278710465449629180121649433936966532802995562755330972198629198497090630817972785839054778138368211347629473187581642272145269472847794865391578421119067520861074384980344392410935395416169696494116594375691358111604439945337511151333913536995754743777892130540799267291515693930087201387953801809204059722877781502090138058259324127827990538589654010221047998999285212539774464228186238513621253542866875867985151033209373942942259185212581280811287821215670925946903479975426083948948152158067903733293251643769694832757682627784871865427311565209213891164375900838915837637230258186164161988623510889828417784518924772969210263579056371360875149019382717557905816201783148555440801708679430461074414611060545773967066784716166011069616769805295662753257617014552237978024092829180680121261618769940854959778689244495096680863460635947445319827291547987118656242792694878572250874901227962974388570052128322573082380340761482872342113199287242049675011373692455202158230269157443372546099049406844805848474278218256468056051141113452912081604443399326056417337064282576800892988506165589380132942289407653246047438073301944827966330219618755305427940669862023356829642392921009787415074732907185678286793375529746137098666410979367261095898561442988612576241612687719622181164414596041430851882105516692530200187769123643081496127670185982839306955605178697182165392580979070616272169485655488286746116919841712797581499430497663136153328212092809970887892619695389890569441820899709234318559063870941764134218487044582449890139643220215738034101288652101159113135029375139145438684287988048679866727987135212793895392994548730104552518558351265830387027919777243252450077260653724507015733968582558546473021687359714141574001087753285662599338761976093166236005752005018287188902524840551930130963949920878114223744425939544785096804120851531330988573282508829972727735920694451854111670346003927635688232221036421375026113591670565693574288346691444614816058597075086657798025105265772319068132247705880234619609542580551696138752226262651693153215580367338574869968202250001060791237087670793283659666692037700291841077426868425318902249399836392801522237192040056572218078766110649486492993253689299212270971043419265650661403968422390402455147060417965295895951051259223020876758967409198469499745888044580833043702683291955621064324242047200904563227037099694756553896027299562616202696844602011690165056852119148276834520135481679962103258460376281194392088839188887071641626557054835796607986711646868835910359595090518001421937536097216775535778248201811641660708327548077664322776330288379194157761057319672878651125811759336018556700082652460967423780663478613524880942750794822279070203982461101007923731303522086315253733612155366621659274629566675019600557017848129045377406275815183421208403549657551202305380770234649654104542354318154534232960750899989869815622551488837453243717082678858442619326071477161095601220331615334628067073561231375619637961024105843648213288110439607436752645044875696224159788938335236188042751115211476476682940926123033528909245465378075884515449520285124515850822405064802943590266847892683255235846267708314874406014233012014771680344085207715771496064977323131181502047521742680642255201240525556893116048170902139408188703999768889494427443737644032155064219734594154426143761727162680323889944023466237392437436969440263078850961074742084740622692059139105112060752324189163594826708872026910036740111407606076439456077107390985783324067798190887877389909282989135309501771167684027078719921152219703971426578013010903370797302573179658360446619201976755083015373318327719519157552726803238478773773900542167895618151205055875433061199696529116444002328601372806505514001774458415151517010830825854865560757582385773766573838335029313720926155378471202841122983280393777867399560265468822726645340204378341583743677201862527870687559648343328774466640162466133159159048769684982963793295649398708518014978032031363753938290732279791729352244264011096141409896545752686859885146234477192038630236560171710217553644389209883364679639255118601368280154374813122938844998020480854628662907278051274396396310319831607598669178011028883397010972449546164501383878230037031853977468008206812360507393255928454244378602442443326383906187158022337826765728261900368441495880218589475352163172873291237737196787630337077909916151088709264613835363738471503210061307528389581416695769157358354736714213682210997636045759421776928568168985089526978577405959860976041158196221106136213918580332149606773502925905165117801012104531358159942451890067229638253078985936688884040119896066379141976297384368465023371669305217355453012567670370473260484953648600178539071275061307700200086018569828845389266301587139685379409592557633295916530270501733087291481259525467813911880399316410059346757809523121695358235868418828943134098040107798036904762683085602820587550106119780768214741819312834697672402017508198196591754966318718742037058002581480966966485006030257179669246954009473236130767461693166726790560358793386519044888998865016187042241177410392167644872796849002248065426785854267718407673196436120804229705129742771375575190902227191513066160125364089436322870088686932952699043819605526405363715252781929941465395091422235917804688163038046776345474560942860798837338076969999072072286405387945923416687305873947491532950666273832391245680791060842969864736855146383367769800853378732529223627954599595009116876293811577761110019220171206387069042668647491427192541973579413425491334942755467488488398484750734476761042406886594032083065887157942241400881912084119526529000538321657040859220759135806349391531393750737142704632518966475890288165891314992752472824731624891234697948044679316427736762944179035118616495400809712067323083038610085769902702270456090361310736103746025016819639963251054473335091602789045406986873633145730693702680304302948319492518435361660400889720649880982059091741227099651331102519773846322099339302860208056223584913239749693043659984784222449964667504593411866339676636459138005968331402790714875485223131919269974273297612217600748378572043211766300083335618826767752605722333563865952901608066583696486379047733071250959166924039785568854381879233076905102797364359573360177053675725124011856074381737195368470936720005385327355291803739929717741366515420697356856612754630166184773386483775474550786589576920387211666856334410472073200920318467871712412618444394634962466332299670919082499413358478761407525351619615742878775468748726219323989273980905846586405767171246610704095475634953829846282013530529797979947036785034128628532356343510777848073746223394073196439672224453719838510595893416300619167021398719722416281872191936288113422051756433622771591382940929233148818086016350997073651574458397163160929302968615141668035279924537518900467502313951742423380474217639105561702999735481362970836547899290879342382347886951694941565271790138436741333998911145913250881287128094221343829002546820525556347715637825551576986867152013613276039958624109699840115992826515244694507357105705601713148415350513363576916000015239967503085254313038461298848348923334778133185100977401844462780232377474476665984735276907017033263782809446214575681441086231346581849423357632739824957295702522537927473726139762243376831692549146335629013330031450645692400339026794318439033232660419163347420285091200128971540947900655674324835698600906724021437010219243466559240857407611106286222610278250752958304842723324453673455193188158799752766268861129886824635105988932430175685030142122760195269463139895557496137709352146547974364621695644712388358003980632130952140530941477088898004931665837087114431332550317783716700473656734682274765625309060945277369358651545987084104825359533073168691907213624279996799102057782787675704432815991967076414995546550029702675731554272101039158073066316478096383228292634224504571610587375120435757694258631196074299380606822833512094153060517296519127834703860006424253047102439611873539173025308139798074115922742616262747395382961323788326282859667526123954870621727743681946930922650336545600398344823227197035388571405026261010036349565450741527809973187773402036381449039402403104375299771903239129724692200273382338191385729995773387837732264352717332488114452981482615574585759079022490995114303755248257237523184734541325715586441848097582864154497706154825728335746301766940569530023307476521253182491445090787415847577527175767728228803594722826376916643709264884549831728060290591692168398952001958085270044465559131627994510730703189923331062343733959547084462707024571039515524135280397917073782529943589454534801934912708553141660042174827179585665674425405771046972631079184607160417572989627194813166526254761047768683984650644966140405965955631145549366444111125508131625629554036855538804605809754688123553492482142230817331089099885096284369685861013831360590417840783778273860535862963356528170301260487998811030716773131493233957044842029348378287324173511066530717721298703641067364987045978523070155093874800496905100485426169750534551683452151716893125712512138756395483139532397609135189534096970631941016870148680439177694784111088049876265849366431814888039459225400554923141859263082521582790611389366614852925155731672424060618727033494748551173664896108818388810658062263275745206060239418944030609807766761417854285549478815771160308457673424231597856365113244780478635087227024930512720568496853374284838895693779019739692531426829651896084257454334599465607795484036049367552171876428427906477842005927389404570630381968970860599331547079763799042084531861716678570784927994874767580736681045801798272082161214273695750760356078873631004952871946913913697394269905346079605340269817989389076392698823070755820274776882792596900380879560393212369243243318633540636765898638899216341757484432477676941734129360398149423278273127189004276174147296043772197719329025035276125056677181798438278025109039713375373565859229597460226407373205336368514120287499480498901439298173586128934841520652765847983304723607333013689395366892707578579771548801775726282167180256752749355878230291669114493733332804803736951443705444991464112292579998374378361742362544306985078309709986193831620526061815504035896661026034491910885412818670560259808289276167464587569066440832611490616853058591516404797062802527743622257800545827373350827275464568549776523315807517683215575554453175930160707005988752181884303445332184608784074396964531598304397569463254889916755900299434281299765614942209646301450616560187943245194214257469893408720698033628779622084704913254607771535905256298613927519663726054287761999800407737533531818102665005727793003596523399758410332502908994600212837725183492452446166312315801121094825081238128668958702658741347947349101665466151504418156917614733421037843256694523764766587428758607369274085519916141189244460996554380697070799377854034528946749948525428353318466533358928575067054116893607674669754250596785851640155322854989307364195652198284767751076652378492190434869773422649692725720618564222470387726451771566866597040112012775228722448922476001254315042441332620512825891872959907712652341006998836797558610158815390235482726897436803874454251479975049116565343721254051050993086066703919869172908962390365495908725253439852977984030184943992064509664892767119539727115074284051763223602893979665696988255001252506164409938343771254178065191851269509575938192666151196873764147505633521585184376507888609395497549676951206859855604250133092346522825040574254282054039998474234956106085243613951738923901785580937957661975176965518616724963359106695933750663221770170336448695886761622927706356006303874871761574063668120794883551049583035525177084186971119552722735985726843424387845899323027954943620385209948820813160872145533192834357940383735591055000580573672975121145202955826985843650091635691460765765800826293813058243844024895836156069900894392501978514638801785404540075525028395507411387630950338188154251354272641832290845912401887949353145050552704896194710067107694636667612765583280565764770144524488882157767518830744152076802469824155450215967881933739987360121731448757866231909054320761331978754324891321759899928953734644710658997735800429484891408031998372375121634477805275245914888954992969771202249911313027292828410471759178630892696895164925608642949007616097323668742382116292117924463770568689294524779763396846590970500383038529249239150303950142777685985696562145893177704429807245199541249033957114454096053664178381604414613940077152821972014492589718591451086303346082628493425819410126878500137859437515326262428909803599596613174893139392981669459713624907894448997508824170817700990229763484674298966930126054409215624103395745910330939502153496253777899412153404654030554291235061191463573134468354337138781730596347634349633992947461078938416062247646000961842328003031242505655224661374145530842986214873950385460973432799077531637833471568512153211448680763026642662960015405735747045884690221934178444957383391702329484278595239155704995845998256643973040455777034321625969403402893526428489864215989563084266624313123578247022162077629989333357563308613887686700366209539540211650739882453523420868408075546769982419978041235641098918865352379981636222703185090762006649619990035020655745914095860625686553536847469936661000106476823260502444292238054033171046590863638749826471082176288956767512223813216425064693245538600155822416872759683010335520682728932324010349862703530477207927361993493839519781906118389961316636922378402001233909831276169875123556238526724415718741047023694445895877606005331996014366591810326063272427567420135722971045753465930634661332256358496313903835679445532915841972466160380632046728177504403503927839030225548919512408543685973425524452276051807130227199630545679098575999374332881487258999600262491048619547904530030823783453841462492366812400159244122099454377150423451118237430708539962483018730761672508222138613789760902496357283104808116940858829769453774992238137047425802385773580582944822997760185327627049316098806067364997104233262959485906329122833100402612588717426240875960986668280714770840662106924982728655264611101722980554009898887436425710498531287728394716003881743613640363322069019427404513674934091358604409924548013644720502199840703908887530221655918150082652204892540443195276686909877569465893049145009588411777341727225182319816759990505237677250046998146156800773270088528912698287138508404920257451954702636450873834004517216468329610490394130276941682346535268784486898443605054510881879700358082741896202169938055433496099109232862244933225484760849567130968533772547335392457467668495965909225909947479806400704356159311095005602180054992760887921806668709196858407222129875164300530170070827099227082844065266630042559488295323439547277366861556091530572934112068265853147160348091039135341875937726798091756891401553054563351432725121490136432563099963758667035214082147985764093680997030911143957404555849307439045099549748235948915898749248373193013537689558784855355555230107293660704046238548316121350916363059843146706098963382949697747438740275034892862590530037544379705201949139519863664733691157046373941936646678310310410774756627947672374287075907238630119277431761782089973655927432841856760472686918148783000808636657580991537891381807585248399074549916846185959039439351789025914356335113981892855862103884515368248588370771059958137033383841347759204187698871773972854377485747705764267761005897950809568929860214733794374433830633759662271764900201734570685339786224507622574828434797900442883596884432808752930727519537020239973751814858711703568170375046384844555622616136523153571636846274704633187834518922919814831102059936140442942259753451860310452415156594332277087210267003197685938104879053855946038931453906562909362303111059044028156312947065406993933868839059699557811772905067303550412074090228055895363277122893685222267777092722063785826253900871217381379609801012727565544894082568306623086144608139208836761991587293961635760983100214011297967264437908119373299584648152866552990606929655375646132378446335574763439570605336810313179264600286668610804686284915323178476668124678513450820156132058168245793790850734905996587984708717816609637989376546881770709457567810873350066429704217069964182269566915269238634896606196434881993315784887770048838757041729906898641764607041941838849189569543887528175900765746327605231392928737242528986245513837919378510981433343005350630186698171170315597652625585888801797463444435141595526763816972792457426082123672330546990628787890891772023167820263669876852422435088292574488934836108904449893844999723572248058886060288266778943332657365393301118057752638213868268772386392454265527860198262208312012558676536823622022840810619534930626216550419505069955684539506845225867820574724404084318457444417452697891928508984600499678591584540904107442002929099421741890852444704965167496300923997986613411586624087552239511504591684734372630280178885388870534080617938001855192559914416946753268610113423917308734206160463948878013680143588276961223481827079428590042646475840271436182602493375365299768115988424938554871833737777654615516652833241485555390087623443467368940106156024954643910338899409393838484715217340075089659767731899143588634865729272412571854391694311713284250421193172264452144350899549360701052403443631384497359808484398544903157584778592133848742445748936756368728029009991924828871900616827758170132237437541164877033646251157203513698385391317031168587474491594976254462023873549473886310193114152769112641562059007969743890219825590563902291852243992267910894327940042148835532530293613338555035276043874869957060455826595972105856335071282262249353624160595093396203252053832659994399303081328505911953702960758102652531604477029068527842136570818762155727701644860924188815729431402999712171392094587227606860852596743105981322299449682635566596625082921278670404470871579601553643801407295033426146898602638684563048361873977925543471552353655525857535017481339364165449800039874308285158085395692166721698164148252863982724508488711114622533880692454805341495433423615817248715513982402309924052562500683503597960331360944078512243184807765899806141043367627622474913202441538699058279231232106893738441165702191297725850490539227808885397421054595574985076905898057819408891078300003270101446361782346151314002522333296382706720989818817480904006647532670772335129596865258118017409915016570589109932236290130747133052664626209751838826503508534820678315838326746369045731775488993132417315159324799071843311138842461815161875010363268053530234069538661795697797034835389912524312382216637574111850728009951000627805058795249214625239952730451514844021947428233033465935356342214766608199678275263695740569244045201023309266247020089641261852880538794066799510110188180764210356237898596913815760990601319084001102126725345387754233732314930407029942630286828646248697834907217290283019055660535553122307012779439992151820641005815700364323370805298456039472086948497291288863733820050984103700492872361968954956971683902517053609312641651816673790610871003680738130963381830298802721987559359854761389044688892382220676144370880272547888889935269101534733711782246723135829503976678667647904764970630713482639546888829688009283555259843466429495451710615486653069808173176915418718382263097385551761067140759695969475481836767810704913182451820664937737734630208514920869039123656197515620831999734334688282499236730407076726532277603904614643932460448896862816315362498960343227046891357792374179429844835483287133358066033953349870056122182970095552766996637001574695181517427551584901666858560763966778314174003308177078167875397603882136974899023109156144540690347558738918424640598537964658130776882116854241677809259765139232843799571939317468119971845041887066467206361718896933871381677154788283027439323834145375092533268844892902585249861094892789074256004057942048680444417002298427656363509255979686015235711678915961645794312690202782014773343096827843355890759041653018979230364872248043277255936955708257379222120562590093154960873317018391368008644959336501889980500080391478381906167509901828027807177090297099993338828813502624652382729646446888401758964570276004453517419592575428583873783508322211339883878638239717702009094963758798168434184333573943325323933328568388252802397400614304599735585733301115987864725052391483159363807237673161870118572609576328612586113205435064331253058573525387316496027523728571879489010066090158888916780893617384164573862611821945209002094100847731957522284341724447637408601374171968965255893344345257899095275889842075029152123798579916443318599821922668118699981942256722225253918068687215697464132341830047856966670063372031140927083040499435110687448587131979065717630027909432763481782592146634820682670479937366508358770269169278546736556727374690536592104385591487308071261874648648480816233482478440048464499570348788668012317048398688211205890450533986713854908970737040131373821539173486296174857400648099825494176279668231262536382368749802893129793319687739021013715706565671155274839064913031679530972986376233656168567075988824212677927355379459438266114234743779877080588257784071676024724506090442926966662368715949357435127510781634713890565786057126286498355800267624251862411932424469662312964131495262156639950674013880304987047064989700655288174412926244191353730759125992451724892922179291950764900648339604636958189553886214846209841125628099970238744412153187718499877778061091973081660398540929826048915476485196500084806347712745505671074175217254384192330823790881407629184861062621784361266066004541147190469078753282634777105353331005832488149423227649318117266010731954733294267766068948921564806285662463470634904570287554862417996977820076911982071264075969299827209862727871991223708817301282503237038112424821107431451718652895358263505772302287004714655720790780597703537838411296449678314876772020774658705026459291379798038398009583887843030935123483479921683750421490033126018393661878114347735117636638710845413697569276163496012821772827644227229281891843589756845776924906928313532845902248184874852594388673504287923621523508087444737206981374881401816052195469073373165441985146140602891388820226247563302853527305758399709840422655273860346186637659262522624455485562356231957442339730985618131109330557475144362213153203669899533690189154593430259751642832067482238635312297596702668559979492793085829719100478479186478471150780684967754890631610437603357619978971740698580317372692900826059045727556183556966854622404705151134721350526452431364745345870296523469871809596299341904063279149843909301233213375442659400214627110262356219543712250071227042323775202222746995240789807429178188723024032589388995116564894291765711398544613980119387172292455589381828144920897693978711065340128798853387032669738102129641241834330170770503954774830562802042936539721852712518269435783556421392662542666902022951103619619904578727232156412846713732904451149459510157430937132347206017664589172767521882415582828511440047960255411641657427389986907690683294432630565934110415496260044452241123511321229037403379947298863504287597421345973651259366846577904592215494776835078028956238364970505996847930789790694989373271813356159131117969911655244940134955978369125291351205544616258138885692347013441160787161837525450850299593374209202378579245070239550061220246246751904446851402908369406478011807928616728270971370318942532566611035656970449221351454523164625392017501898389421338023616497034602438635384581919767920498824921400270551923161059338005283854744874779694537185805544205123601437856900242791838261082380229135787356627485863563506426020790427571625368369319396204933227630258298403629188269928896012938051966355813122144800523552687998572093455965012548718836415433125622485552831464167038978075396003881406228399152901898510526986015424054105703865659086893478156181906977255830816848398461265498053620138801903505556998692478538529017441207179790048133397662390376028582098487376772755765249847396428094995491744954631250522405128385694034102245937705375036449002306204147938454893024548444500207859780375290631877008932401586470167295910176183342499777663051783978473793442302904220850737542319151398272368412264374605281767670195799182867600929860605813220283556796852266410175187852087631921615226473692750679195189092665275171361301586250351957074362043771636950232068069877354336272939663757777305854639735964467485545980468411699030577639856557699943168864875311978800091176955334195801993554237164173393779235890276124959806993902681073519108584248249541273477239313620640579284665658491693578726238986681681928438469594090726152310062898241872890801306760173947858817426680988941927142094577225450130729857982418521821017218406373184444227629933252461403117098180896952530085792073619251872646973192653516150622492177013158781732501014823880252910746359585075345358406732332045403348829222159817969365711892087000293490643168730277321040745579283625539801127691558520067280348894895010475637492208934119260559559774995931866784425113135889586169959414892246016363381581110732520514309464049553208908020246953904118538519844837069247285918586506049761071567721321246392809219053019912895064419838358482681169666798110700699349063421273763488684128389578343192646273118356941596386571933814962741332557972161435193083132714269765811905522323582534077217746267527015633178913985004239303944174051396155083458540069678519220392184551662688997980775978130869750949563626874869276087128708417541817692945189465985314608685464830263878966943651945028723765470175523707836933996171697850235800650992425257973620562918697927965293455493596610977665939567267708664252688236811098418407087969592987531089693608617126981837962094930185382930374844862196124541704777069530620105062262946359242151529652082041059472414300111664953963531262207803491468763658226015916651100770227809986218901480965922071025189555917055000993547487267490116043255774725186135521458232629535745284431180499044069578744007754180582674070652582786690000161013156091419952588482085848170773879003964584029936648903938047980200164699526582067208084257096016681036717723486804042754905271900868908440743338581740271024991205862449233033737919273402672331388493221610992570378909938053810930206140412638069145001224355805059076337612696645452127534922784290745430160876139965531916642805744234955671170065604108055878991206142269130187173993606810146658783635320649044653916282869139794063833913389371529152703980214850325518544887146650080410939517068610029468885037014462794622029962946503590947136268216700429731784114007812537035118212020884163289573771279256095457613521427959983213554296263019425424500156684414960576132220301526198062282589361707697576788324269762373681556406967140918164394768610824999791246209885519814101155605145267302436261292988185822104341526431981474737950190132006249425874423317767480347091007330190292498519634803477676788713220736854417551279653162105998658625870627324292791492100951525746171559382024349561447145181627965389646680477698111592719924647656683403638685705098470132149200583574283227286266564355709681920474478801270611275609611897728181340239317750602489081601976287358992248267865959204037338337096717380054032796380641747297530919883278755980259496702837928442259340269014789983330466384062803472233882755547811866754518979776478086058857271816890578885565567311510513386165435709300539885741615087638861189752274057251167225381593094018240913703998891588035342978536231499193555986525242948650521196473944178507277777567446008833169881672746834599473170229141230847930694826238405325691508271426418605309560500115597984815045250386987138840274079711041965649773689084064400826554484610629312769127716721131149383897312183681615643767057575893897355384892692006796710039603543690773404786493516896410248868109968133073938079140409882815285010056251358514568266592709135178348450228711531913170852763285295548341691266465359240388388036262216071187595206303022520727266087845470701838004992308105994585053431119180024882641682065483079478169318249571711967559558155785781144197592433006370213520354260583797884194677717152008022993513490456405892720955981822754782154110429495813088982979785028542473634011830708184849662101116848082104126297394225470903828333950307108987047347446535968812260296272666096781579856844208664518426825512889874197546956463226342505980565870292701370216787848342182557333233974417368043490313467933492878198337630223682106703233190697960945468078018178855376414358686450424434390531993631516352489518238088808065528651906199074724571329548235468191058245332801229882309912749185599735448064885984127673394118430794337336856809146079914248968489129973936969210930196443016733239400724664506627918200508804076896767620644440719710593574996008276076678543223855533917762217322051730791856300190362825801154831565919688703101075873959411346020776297673876014439927639662619122352495311025635122108966058408815473990029178620700358432444071688298717935155025397162316390701283942524682793526691741254018272766966132425322361090246585543177381763244486246658177440274889989370895858934984028508041106227729615817550383763288260004622101909589684217560659615783466271063893981457853648888760973689904149040623811709474426823546143787356272115791641203361319860980961823932600403277382897730907123087641462398279333133866663380020401857479623846273787544029365933115393083332128010311092975474615024431765251054380782171694740280414676444506453303491839005428821185800475139883358616451192832799259837655666004402109973744550633548264091544363911685435633239109488370576850040136372939702796240324577377993143548989075512458646227695655734978846964729780879634733510381645631955703544361213735547444913634994910651062682645010558462554140258631422120424778099064135760103556219307158218253761541627135651792628425104057347943527415791177881917103953748246584809378339164038849655318837056111609624118370107676763734359009466046635365815928251361902370619932673840593245643536157112331276181789267838997818607535090078786766738300324077600170408390320452587641629223979646478903281689356104271370355920542580766422075378472111456713867227224976950963587951790655665877248704010537591881049070582965614309955787149658035337281187507015904284345561314212949409850841700403363591656968627519307398614429133233610433122324850089852323958037351721659622383507987178091796362471713040297807775759623458364204426111429887908043024856853981753641365970241548524019447629857142627510175719220140986222398109307915345916285230758504501511154674823675823323850121766566647487032509387573415169718940247266205625236050255748115910098051367185786717768889945097736322976264315234676672304004400810394551361123140408342672270891055066129015463655645038572771204522864315121388307686024239340426846527545434926816938970997383022119602837135135563432126832554650359145231810322443650868355309855303209417157438507314960464356251835050856986455061056050997619209307665607778679076820599935823708762493889835104936191470015620584728850203125693854464723099232298237846318367374561230877512360468559146309469424384566503332391283000813877884361711235510892030614316615662150977671380952200859795138639405719923718746489384384988231488932257418777582054190000532046233938343580132653190425518736256984687880392464571927074894415619208146630987611158661920648717413590904766162663995026390413228231641773635036066371181645701324643849224106730372233697479621927572780956431211348849218480214389702810631365219871559486550698839815904830181493966356869197219867796748165860005022825235310340219581502284072038045784516876656899802198446961642565473073798291325329827059886671212007948782037458020421662359019492803444008473842884867803965652813722543803795358140831367785199284238996461325149749149846420420654999439717139646985392719531771691158595005294710977975436841096113434993194223933686393959754723950503189997288009078709154580301819399917846835270641958235994114864050002905712237872901791976240550810526271705515560363968546470419391936977089209864984659615680192914301445221417712128198758436059310263939492013119073981058602822782410236259142614759773927507697820439459870138021643509961585826032853550654845623177322681456742684664300639175253471372513765453924845745564759579315897661754708636644591319709671718240603773921207127575934040499773171443175941656094884075843450155580562845396430054997176289404155667990895522983758401294814072519182066093925448596629362671236199334375088140701713107385972491150832199982430830956286593179476543952152690494517566062418253330826805027530712688445355450460594872534951032616180866624509851896313395058458746505233060898586870470110023206710324457593583689039489890310205394875794225464189728726368755864407234915214643672282282351881017730990780260695516656458105419124361916734485139478442472046495623009111283236331734972915767529992033018274604337026101347636958624683656303706643827342716681546462457626771493293456254382602069136336885508568195652930605689388696567442218452046961509906868398983996532516662574121597138629166208111544508976635716802583655782552390860757086990168159143542923042532784889831724877090593308500328376139129909513935985860894996812355083206840357789045995773131946515307968085322242609765493759856625154339472192007567632948888311130527400365369151246909925132611592237725666734371002020770993323981178687987335578426650110671190884183354483125872564696313657487020166835749935633674694413280830263874981626861261502343513978888608230226976768396378329463089235141700000241540392329318472097192014764073459803589891450811703659803292664080828627365526367804985533351107981966240891243226852656241553288738879376126921754570494454488557714411205899288804815090301625016294509760533693923178160343695734840969790771783819053216320529522316484935676952801208538221309827407426867230181462614059161217924936780226481291816094850294939661690538581677708663387474760490910298843953557400540963819535816084269379554954829576105224168531889365106223841976245977293703359050392781538298533431562190225963089324883193238056708866139051084735717896006319973894819217068605231861060797317932848677906060476192796427941386552459715903762282208406456911638799749511640790788549701822732856324223189083295192608915609588181416208387652813965914752432364295780681796973477618446139403085872504672191937638440326133498567063201921321694717886472809941386531701241166868630085792937057175419198797391709363842836254552119952925268164892358977985984228969258723938234590457073131078071953096547722018926384940801017448194152530113230999558287665579280030766864565062827818913376930873008077162001655603187291882222878173593009680522688851362102337636546242577771378919723624016756243266225199571566299260678784986284605144594734191677452757808196663590272954333539517304801225917518555429308267650749458806908869597787579166570636010138380926472352302078365836684466833819094670719859340685738154171873874517409234068421761276311902195616032503361144475929596145477471558570344753245395561929097428057579887338506303448859584009560414526075825128385232347826736863609783251290750669588375378801448783282484649165234452091492097914363122213918666181841778102842471106782103372357338217208761219187183075729971210941605559350301532727615084009749341891251575121191911555566988043784975827100588258377286781170399801798265907114133061338828579847612111738144585526293747064176965550032892769241338148640217415171610978456143294281513685588340880102433097047921885746415368799834588196706096767438522523410145604150188400276762206858325629674034849957793730512543563911249669496234848704160967422987743613096760161400369495234863944078884864948072970472567863693406849061046905892196467405781204248783433313564453783940165694177146893662262005664106856676875525336515670483834665274046665647935762995840030172301417836507523046779033260277415386821253709922734384299956646973822776188244033520213528491411387766277742245706669678330956785490725366924385474323549236131989986490417860211843526006623251274105443235782259845409739462073666935283630872655604367528390489831181678994061892496912070211495927070661046855924620197726204756398020858821471672315365258282565535516928272063824206132335853269845997793056606560507710379725842799605015751540947593559111782823347876708280837301612683957534043966175202339011225882966080548975135782732471654487854154760402823606158014181078875391095644232999253419809433076949724534657395464978970036290544297011570956897129404167149668503594936219503093079522815954376685845866219569941222596227192401234832165480597764734698105388112475280284152114886860565928942340580104309510696285379727618355000861883458012151050419731003756013093247187776799068284837732144650662769264845149330815463794818948623619687436338664206727367519004326931043761792065133783035890297257270837295707218007662529194381168812060869783448975016410036557055861057038375453140651350224496952454432472987387703390397377642803237837958252763497329087092148428472326064167630416472390592803158389085847245125859468167737638283013024570702636224827034012633053264608641970031214478199494905250402083797813127100450731666307007037247773091956970978734182055808337825870583588077955672976722348998937456642507216136839119877644794479125092928793386188076443118553784563234307121619460095113195630978999741521155713154995784121476968294268126126041511300162793010116617491087156056318636029312843547578951545195835478793150928128015695209330467612943285582738479888814943085736411798377527189201277139384511754425266085470544232043878980967419769588394141595461183060856806657726707763979822220937864537844950882974631993068316084716223725869048513519668530163928515632258957691477320397589880896899962297546653717906253454183513980412898078021135058417880741551450381935429942991227385062325402855819878263317084160615612657689157287138784455486802270651290972704534487424019853305386807589612665209047134078490225487928805594249822679688302173332848029680977169526899243311882588139294927150624850320864692884104399749014212375433437977114645380656075887591641981156509014892270173671787528436805952377145112444892606861601866236206221125514577782748249579853951312315922889708194258983727180006306642222033026052233164417066709461886065983550138574717274563292778506141136537627926143896253637466981469394349334388810018267216022113794567671634514266965001419648829619486790106109450435572745356387086942019861406662166433725860959118249096642489205931973761388792805446268757341149798644307174473527211101054977957416640201855259578546393360780831665748767942473691578354774716738977142412051015869837546758489000735196128572608410072326351191577726656659682977258762542853271281007111710546570422195214778627303673937085212607920615996249661397535309117721554117064786268270887896344052344824766061506199427693805827817554087769876638173168432980703518784712719928297618466957634549193534572218807746358609909703474882766539764838205234653453181098301514306970212322572541527732505171244568048889219045237443095000460804267492607172748040949874940230020670298366908004242436718259779285501874517438490419833744566563278304987244698132620031617497551037380588378995842956225695058744680043486770496529397521970646217579912487010022563779315370256138270077211586969250493148384701610072855736186585837188174227642970843173275821646543504417549741592644795079339676362378213442694643206176511209688191787441000938979884018455068228676607469031319577889602622993977235563381511884914078267214081121968293106809715217332187696285038804027580292337215059867240655346167566371842861575852102492157284610422497387019406781587626982144563425031174496454226383508229673066381877967390371337389533757187697662657073936897445465405288271080620529497659904511452084128130881588551864819245549154359232204155871082584917545322792637582584507529340212898137419262949130276454535844462379296722671779903655432684516020617543492944728190671772941046378427607863420306404413653890429236836100015523406485743809742003587530552785170556628689605787185362010605005875890222265577724986097582649045636561951561835830592091924912253314471853527575057658099016055286229106142984155217401019179372880066132938909156780747360924335310504245718536498709628501744162970979198948870880117037664610292252386783058476623465344221638272995895737306515519281856621859799285862661568018541610251084434385894626300991965970435783753099279150374387809154781038516345596512564612178749754871190281946553368362855848408614423053819245230259169684830816596048006665642729623656024706768249062951380362140000546381160915825201197291960516353956904098956204691860649998773069123548723503508426033769026934594559240373996272099369923461507586976283734556200908236077357528638965210044099213600629369795950943624955209520079057556416854033990962453074796857300891426731236509298618898750898264768243910504736470611460079951447419136405746697430047597275064121488437863369501951931780533513779898469121652747521271984500949237569062591070391294259925520526730047732846398804202127459293204409382415986636748589100990524128515910043510977780399340103247982880654424699522131792453493310794533463747922672435565762841218582058868709337591294756239811965936502379950878635268268337283896761019782763357975194068542050028871557660583203472318889464145527549888397662119055976752185748235908339246579509347473924145201170437577773090701067971226227174563145527639189297925673774986547144126995981444001648628431120833181859224427488871654594348167186148695950805154360654400933397184001380379877925802398400977287683442881184077865521595464045076330319935604866504441541668233090687324624223833180852030645833609861654803855707122063662747321170866867512244464319346359852573770328229873313000166068307046260039227194093077690595544334854987182548942814300383195303329790394936722101130508699950019942340754775542844888404149527093444995404941256666983156016076568761540213114465121093435948626507738803385633645756874343205764724463674599892595797518976686900565318327237184186740284702074472924338329821944868312225403531826832011338007591767389318256451704928085725786864350054512627477767871313903940345184562956592932799811757072257397982696545353676419341920568470746777881135853518180587109512393072705216282554540228679675167446770552657789001419490926050953305276523843468270449646545744701756488109203682286700428833852606952393214477904259646746280278269863362311151015816375705086749463927244724566724112964914971279332346560671846547700918474033949715136149341264589723227139487859124193705022857044411015371594181514422998345461036875262132560064249405362009896706180514597264051367026051650468675201726781734708038487305763956214423422314256070908787072907950698446851551488629503484432952888582859272560037265820469659237621349315502203395394411224377314764786105152182015570053620571254372421685866596842319674783600247178881483534703124702839462452613055178948739993945460465685526357642761498216629457503135698378063780102833901496200135452245719257599472055993573947713817188122776203095578292541258168011739035145319574659167134679621788215976695978091191042921813767684982379578507644325672552227921170908427003794091586061591043672541087280632547370020589960084494309566316865278508102676459205933105335268331846071623420389100363256147297455412080578638572521720613674628283167286019136249168577753150035498692371736221586759161858563921639511391603717677607370577707379394778562271920525413003633822085899531472461585935047775529131474701832277430290015687984093706027935968300124777065105001321108982097710757491005236381013948690934312083926605071477379491370462303357616373713322344362384247347209481877839699121806351402822369134506419179106701650239380331109921375326199420494259088556501225525091462506798574552538647054396771321272789632085490641460236742412914545382371299955640678541557335694208695022753489473293671289859221934705680391047938749489534192369282087677922113556240732354929522311689345832989105687454187561076556769759253988782913748590935768900251418291336175932297632480336022909004663596261237438143207259448478601331387052652633964582902863530294622433791663212830847493255524243333228918046692059969437376529980983909180084801632314495804997832659079488989239745359920233501241427728549251706059460890169959880850339814171636680568849013848864929136401752689493075334049086787794363597207343973800331606622135645149750694877186627078713092182884393813337293699545747968260351165240273146133378868064695416487848694832985485179244897507777341489197644762544024785625053452461474993611342456558175158717466521823871608111562222085393033986693059618206965198161111343825016659348951187762339029823973869580157964623164336935962548549169688803313246947901044764458426188190716914789059229532155173651039998462822851781166670860895766463333606448536847104588723486234836420253768846062783034268983164683853920788079102787037952890045821561874278353569188365301323417556949160567678331870552207299078471855715839111262718639843191639600921247053308842688383348276127243157678102350064643281072843951583177730090210049984209087393986594291156766099461407851036633402905902224275711422522248452018573478414434932189204322791754136263226104648923290802887874040344124197822358813291138280405669710534170560817537810119306151245622223177694250275267930480305039183591875143557857179898892591239670990885957903669588255624938305616773559905809743128631808933671775964316405036734475262273025127141893233195652565025094668261119075690735413845647099437582775304510173252717335859723803701110812017411862438967436106990726391468313199318765522359724079373652407754175369124215815493435298599137018641267462886919668917877165450350370147980623822397981813727043466445420711975503540687263233880931426685479432283079187830804967117173275157764789571701545958617943044762794655016498266379964437660552899627917266120171786538243521353838023883055301722850180459284768392246534917509349635633604689493109152203855050747849646483000228849750859744280865378294037949705446067842787150918591643236638509834294306855384598609518158373255758326505452909759717308028538515573636530930148939432122156619242564317005209647449303427971819907010772590215329745604455274430212687339106256237206646087809140905305341276994082599155243998315750744732909207782152508658079376668138358513872602450868122805783641335694357283961813518046585949651661395522679811479296037569614806181545803733522558755070832278130949306666390425386243633178988877344657874428598513144712484489536148825242711808809926307393590512477842263389662358386248097156565498451141512885874330114354993846566412775032985833779642590245708955304597277919581570495563718138617003051310618738733679522151107714628563001370242128806114048956785077237498489750736080124622596645914764281977885223820833809249390521428302546185682686401113412401238786589673927176720094653608035988501565490590390508465605166870142125122524084795437275526802556457897268155890495615119310924800557003179416310967458921352909349851935532353877140571236426039080970663907781738138458036389098629477710985868218023697666001781784534885139245054915374998790090402475314760936530958450174721397541580450776292033909340746020444276166301870694702068721332047707035705141273638779001689788115317218146588214501119053263486715219266048162382618384008725555448954910898656528397783042166161365455117761240920839128271462290329829138887763736059435253775222376970282836095518739446481084699858864257210632621227394429868867671528949087372412710597107182514238108540082117918965093283723589648392059772908882449197790338637026240207772900152682210264578010043318022610074926917409691496841835437050174119623922251281487089400663007898166721654246893811912438912372182297569235033081617905502285503051441058965843807428245862648324410453777421485075495085225078081921904015346867938895163003281145494526518101265771484474991116013296704497756106708059088236427918453433634072987369902652375435211298137724140606511806685183640178397614436517627558407997254438669374361366578649039678197038265636659584627010907819138315444328674702714655506514695052703056779270247187558707504215445357740251211364726545977951194331178728039769993520308279124632727592649006681216039111975067245032929131131903674470200229225456461509141944866394626428622932804451028059895794759507931128322314492780091650076324391102429709337661589376041307298961866851081902628518429277040284742222927503588843416795668191431933274036096208073280824778578534469045086289406852157353865959397572960730326538245079795152566314313605897447328466657170857055757473326097417570615515657358599739725506450682551748151241760157673142892673319221391362473804229283751092830262464861743026846063459623804379078601887280910875326581217589651838252715940691785910773191815990040228099773318152948677562574002012984196102500457375280467391531228210711187753801143216230121036636002191829123451088935766889921899366555316139835438444551507766650951619535027304949009324879947710654506248109247162975719794557308657091775828814479703360038629200607755544602219429992883393954330574345877316388446483067840581423906155414123392655122261377106404969999443093261158236738165214787224437168832643995730313829303001612168138733135088884457461124477328467942517965849701154465580041541514264094816045248714680120276579000737205212744191338891890796368973777748299766689348231975239488389450683837730077971936466397618463911246491877602548579799440108201142235176732168243833300553011110281746229379751678932187814916467108512031385552881031306194173679080331402469951426290101007316047861748836760397344459949827813167645735846130599325746184440427098196198667031893014215197112601141238070253257571631209256975788638056654016336229100158221913509166572272011245227559861979199639566978242815021823072498868711834748947343507522166867863654171852097980573067388163493474438970865874068574841772349277216638265317380084116935472278447201323484765402156407349586432948721393204516896395056270587100371961331364330515661923228692851189531791574042859693752030611757380277690472762882546223783283084175012726120520900497678517108103098784621819901007137319777390923222700701773536010059277466979909133529844258402776179332290111513093182180382206795061779785364990523017521524741498481729163483828450761062379399012320843072278927151774866691606676707135359697602853523539808458300462472262324915102468795950123439352207290827487013076930592908476032346198859081843755581293293996742855637870419510920695633402017605453798187031984310423290388923246049827070345185906643908911511691840562086939248397375595774890847400988851131250145498134801404264027524773497614254429185033879239564985975631295389226339027386669793815132256630835045662505502565756456023719320239831059559505712470297690435337852211462049754289394756793500021289522446435233278245685767990183129406663721791014520092574237282524048232833237369188101788783222945503582766051562400500798185246010775127020556148860029237522509227881467169030785260283129294847488350390341142954951165410145923265736648916842406048140157966564150770249011460448926211729120864920065362504445982138708609035629072823143022089714854724316708584932129632208318697921504392968736679126183590965981656280752590583217954083466785118336557720270062644576513082061405151599325864480052979612816395966267893012477838198735406519166921782914610633733969331054357318533509741308057136079510467920031364589177846820855377112675658531664708724088976867627452885220269918130447771303706806348878987213943161762027823209167647642574808133458228223907304447787966319707058709612323123545307590938937583854995381244830829569845664458891758381188738263674549199499088239861767519935674474625529176795112805136674183544897457029380351656329486447185874427765846893241971696141964198249930396178420592213244195819503217175508227451240875939146414138183927838617917358170566112419943275274556158421362008356996673715525487285236748643301714661830210480326597125997856270714992940490945033636072789207885408505996146448051531271062767046373093264641486602599701022082043760631791010326443235088872445611835746524817096917198505391803163574841908086108697960953982596822703220557749776054330642730609844914312707093518202349671180793199883720937696055707885514055737537370627230252152214362750950960481167933873814233811960202633843655789300961606157121474481997292606586661401510603743832138335250030874667351277487256627933112389664000144732532181868962180288881291771258871929022281713068277090338112000252331044411131442426188207077482477699909760415522612107273266080515023357646369141032704466018000309448636091856174197606992483236332860596287599742294828251448840744869707743821931747492275734831261450425264980298318945468777884853826992019968145675513703321190532248692735472863881754144418185460362435304703204145331425012066837266507885679102506072449070635749526260801578060652022279275244015886462614328920652871586693366440404745303650564939493123300481095448800624661849838629258599730996491574595987588051515004477352532808323882854302930670320253713394683886775716696719245479770967493092459271625035720153420081384520687656843822544100955750161385703952649213367940278370827088312378532306733160058843030421281916484029200976440092680075886156350378951364551465128053393198629001815511713973222784604709972719741497080632738550082296569869576575457955377923915140101738766946714535891401193522620140449420770996844896459080410563480998975530140748332464174763229273697274959800826964115496157939839752364494432263206153468821143862561753156683032280146196687438088569453167996736359162196520594646417736086887083114542026885110852148950352788642442963528524328084554657141420730157674863193580681739970988692930608387556268486788780255235074267215683912321090282128136090170214668355279912069741961327041018441084824258851918575945116202750038320334980736991100479419074558637063743430719578282041768166542408598911745518660447029984946184611256114555807447466696424961009552948204499429368140585460011932989511581752856374693072115875221466194385451809391375872243714003943462776402088191444438647170137508829813376455346932888852868679610715818916724710586552906012587390371922021340527994855059722423531189499595099437300293273767404225325353567256591020685849906090098810149678038120969859884071325965154963939434620821649247358115119639774467122681717474042868294930253655378275088924795204025165991359100682909093722538443570188450939066323732160256146640314958723758661805158637565272296430512460955480651462893484427689660131429877496189209837295612077692688536398565505334337153474645400994502208920718560892747018684077116506313261090963141097766844327817020397845983862854198502402138691784218217967284137034759788312133538422628943707245313795723173775861369378713543465672670221403230837360842984792658905773712039330223624579056103211350717055155666519729478238373809867690505723882278802497565064258608544190875212065276466259957328328675501915639087679291140838154598811025853698776689894277011981892017703796241829282870571252487639474953740234232846238523161191658391382139579550755925713814278083043145927808756335293266015538855728045612869077066514711018095290383138306520311220750842930660948829264593788090254074151942768030318626587858925040367251293935562767095079469332726124827420749372158499005184124405371490466660173144721806072273735588743249385647289323502901223688079165656120301569097055519902597700673174619778684688952492536375580624056161130600990256662704889947690678242813744698923484185156429071651085885975841913731370842481431983672040699351676356762129370387874397672022278238952963623707561146722829396788462745751315697879525686287599860222875915127701131384408596098276617980849378325204859262505749807221386597857632403196106434489611224861140821058824577256665993555499216437116437730639078712818714914638335368468775871618289369394850764231400404139022668787545083440784335283859956671807709080170790716086483990730318007002328565708404420812712409593401572076425640153685907275526166386147609297770592062060531377121127914636803769317322526300345915695224532513114774105389625661950807279674572791137362545786485169535868035450319091146829934740281039518365784756451965157334873277418640666025959734002418215491435314191979181845393801283816294299767069360103294164612672572249507336592158367795464639172121394268057327154331565924631766885405544703285759811040520618854642034672331653519697724901664921229225513082017541617809544018159274187575856736708128248123513868122105563455152740934307200326889472756473864883232812015387151844489875397775889401548367201076491506918297893589267186035637324696626637602647821309991792810788865195305264623344570612520939272153045765953798263514293565709554130284478704510947476673483123003585058958589680389365764491647484421854832513520364838622131925687020172151646138074961462686540448468804992382536254412971008612993643018392719659666345001561443098909562339541073366941878437721657503094920338205663421232925294078251282900492971400284090421832622197140118455763712715120938949508576341739197217059506405932181458237544137330275247016763550998392412282800524989537823950566511632888616018806631473049063123024584244992870131041445464068228738937425471518935155128579524787183192744309125990226235790367456061197987252692938289054202592855397613052991057758591322616615186500692766532471013191328769512531254358818924269304819968972392048421774142618845932435681333652608255685637181878211277246519892279627429996230544674454121730796990249564814224422644172108667696161900373473888664617228294664597763364530803012227792588192900770492898884245612572743923968984279949485608480878162839046616832799525459368376237856132697725291014103715563286078026003885653095003614481436566741497241251685880228474253150184942061720255202153620456788221698313298725997618791687994254969843254588871707749804192336695406648609384274060705084926241672903130901002179535725663912433718532005191017595424876273586471484431859871017505861372189321165364017578145535067573874817822613136093750603213306986101608809828727490442969661798434971783869934468563247702724526221607256108292748522129609924550034198311345991630012746780327620202323374243632027174696741416814131824191268608585840242909329260538158740322985699079388019528175462482016088407550900662251184746317505827513616275882455291682048487381333688500282502121025875548462916084634388918351638869378227275654997231598012780137035569808837069528306897990851948667729466001303857839774194104480581111612365945134410941549706843923154481924586776370607227082770670340540105924755910441113991118321481506490552213299832225306961517653740465069128825586904980485780964109462794525530984266805996701931679905305548392114065432031891752566843151915019868737590857987534407668344965233630201349959404304299678712777035425065736157941797706087683830033290084565396276778996348924666743837492836174935789367480612428711458320142734949134096938442683008359729208171011972127332466612127184623405943047688759800290917204500167737031995261210687094476576906271861506894107158663228811184120676184020164753691811599260241574761271320004071009223904044732943077635575921113325030823137781900217302473507877618452892034320096138774871763381710164499642860680606253997689284578372765462955243551057119231376551936961647960621484168344696737260821963105390189507477978040657346320235536111188030590497117450401056657641788990149004171501085922184589967384159420215738395689001907964256642488710300177921984693170652258128930142225836314073939242928848151719841403797823246885943729554977062714030959656123786804224708092749604346370978147001661914948757477122020071267364806247732059396639237523781913169039238695618442977049434059262439663278961550266347609863656319379737757520609828167045921044157797592766658816871156883930647744894136601660095466505661305345936661228821324503302055529836643881669212095971059838267648588375542776478643203505134952661381366548850413334547993056914740746573215207014554598737228925222802400051277899056217585456983092424560853768992105619252892760674261299705548427154028488386354065448908821088312266628523667473944535218242186084679487550550151541784065205549671064852303214951168801496432799174545607906168989220382202672337600132808969614880705824871320022485068517593768750530811610488986948059428743371838857281710260017829657046491394951170151224970587488439182373349926273344532648674757894866751885567906439537167265319505751416927566530047000460719153893636179541798691597923929282384060300131533768740452265701435353270335023533491173207072759343335274321097176120151463311040321411152957074003411578994886415550363776451771426882904840318510735309981249635771960813020063554514044523894806857218985466179896925007684772995871066845849215540657136862704460250723791253767105351114826987145939236783211322672006590644617508155273956894540052318472236819578395693109701751567167242296827612727011156193161714984866954341200872392689271995652235785640574217967331845352002905783276939896756733935706559709920253443118989877557457896973596396366551795906645510131627633631301382218386309816404844355321289208547955026201043754691725184846063781265517753012342105882202391969907730033188849856689201886611077119053184590397749104525972633544057113052394220806172584027448405953835629345203188518009855833890291088697453739391326639245199596747360081470191292570218532383663885045915152004025624583279390593664214696189014513321807461376127721141016280848455768331643013388126174989014078776215807728746256636347830016732677730067569373720584051340454030569873760665683237255071679531246205742693606942871833875259732500891286169249247999062993892654704366047215157992663373929527132424641478087485683158209701823416170416055739872233647768123767526097900121783572859909747724204197812534400841838902468278049146140846989849046373982096615296698859415819298141225460367170528490938942962581418616114596041349905998055221513338616698797934147917510627051354316893298951367939500456934122923613948868592442620421296362337379203143093667823385589731415591735698779564178679235636408189415745276224514779930106167037680523112361584879907892844969743018100993970505614736430209031390851050108473963084008084938143647586501220105136566435994675201245901044134035317312637470084984633350569030563102033731550248134259951302201885453565694530600724807661819415178500540205925355682130958051719831012473644410476032129194363325609823560873885123927317890950767194356845463943889032401827196768150476785431958412096334210017525824363731325410504672000598078314897568728385655646873731911145161726302489294388583508117305677935691893838624972007367499639156096006255424623517518511611025163482174054753313989390825317842275241967938958137357309958325854629917725713769814704884740725176712491655433628267098055265851378966837526084685443063287708749377624675657614364230145124772324230933180016373615617166779787924382301174113136567230524934829596088127846659979404433988079152890168675447063450845476724500293759232195334893273494053382058218354219821033988320529534603123694245063094295078243394461733853582877897836101424376372715144843894584727882281925529485834534180501930775443589385752951629224730540705705263462544889191752943282680797222466049118668349730527535157762687428921025063476815034049328545507823620714215345865121893888677973910060735203502311290371476759670740796765225111222920298645986426921756380454309782621515830224690917616770447726751711930877334497008779630935052118367452867587996933907925744239284480901275147431514975399701233184831307293199702942924023492901346377932918969121260466002912832923499618512304462001459583612284860509897697959756262815950400890849548554325752766123828846679288084613192548418772625227137113663873110501540846446288981436831409755326245515626710512032630104772266510043550201765847537170400540623715138966370659804295776820138317095601817098426773354939613712382661755586814365013663205340508240590224923873292031498210026515760261938739561557204362391328608835960220749912623749132292249900596885786656645804743659265309993118849251961311969551661843114525539945399727715090722803481917981656352392805720673189757910219809722215261560240784284189671173374096607040235579463623093427703275507521802630050641814052887745817070419278725266537298027424510954011831710516125344043381733912006484155024837907345260124530851817752174849003031760581282123325653903824091994586142986066605451403591285633854191819306088328252994448877351529673884184557730899639175084324130104904866672341508497413306246966572589537694333960318066918265675779447660233731752439498906906934842692235052258795668255049650106180560063769748213913244382266250085811750276723753071823941010513133069440876167799378623475886264022360711363830722705427773539020450986043047940649184708953309963798484953193472526718012766207121717666292752133015896604505599728437804081052280759975600994541546369656124706146325596352480380285587749301642386049877770897387630089781442179055785926482219601350184878421018796041339121941884197397568030912703683691881359855518205618290527278736226393907892351401568197935982086369377321569830239001230064792720555214026236496926637581244780764030586058287415322383967700487573522317738423026032834139416145864997425032153143202244826089420623995689007699568290295094141122873922467028025428937585049796325916678918865146178129139067246221905614730841294259891713706406625665085024682084451499405971970907098559418622402937001569228757941762734655436158585195638388435529110196363902679565522910476117355538952070704051076991966088126447547217919161445888247784286490042813544330305285477383366209737864959114956781191431602384663374556871111652769732645361735381630109868758183458596722081491424215416287369664860585944295602678590836909941494603489502662488066897283855977181045625337964368856368140135349575815462731151276170533600285827263312562735338304105445543285232786180317523635107448017964597327659167805136324616595692217424693605581443525277713836129755840849543592308712307477827877850163588611989304648134202576484614792528536250308848572154198378285759767706029524342453559529004547689396776925659328980861079515316460478135454853202360539624291868139973734202714747167009279740321151111794097102626558358447354262827707200327627927289897218261758017456655298172631477037105244142787145064138611840453396563548542732586044213747352151918464181299909716575764491653542772982821289650052718325593673975563848737608342683380521356244488829465537322591903174386383589124109586580981987928590294942268303340462514641456812180918208284615835181633123118130532498329235213958175626006411357599708496944698965851287716621310785500457534477428632750253949801325164074712012491544321849515050088290873911436252790990014746735405600376964560003290121569869678143256696023694827418309768827885527745839818071859512864537228807942024418890611160667004923596393404358560150622667213973272127449557251413769292632760263189498020396134742612581573959175052327227569926158266046874194874906709890097596838165098356616150889593766545323856829743598194636758496873933426643077305335164353916400135655564178237526015980623362693605328640967795406030738102644447676553765464776243374018102377321464793654245543749229927420586230933992013320938542959220953820977568500539189979517130644121591590413427328565169832273081297733940345328825924617630467822988524657811818937944032547594519485025146137548534997421182877909240829328732623310248904125971715488654124973893669054165341556998101082685742482565897727455981835920264359955916198570681184222914242102083312167594390236075165753070989222792579328422981836218157093587301612208111253276342064350496057643310112210612636327938536130378833815021763375782519716513924492087588324753161676527924664883361682411906313882129428482183544481401715282489795649339687651595075565901809164047028908720963163451079976679821601033622755010396889200540254787432673578330575887704334413067256646738363175894581668170398969826943322582505677952050341093662173546173839589832860359319033541886978543990467165214081501763514275743770288793832995973115665989240724326890059927408465753328009815558898229693678679627494864047131871562090013178876060381237639576889173989068941720545326974580835837028869781366276682190499891881277433859835483879771887556093528297274324257410238520131519386393852229226128208651638410485382656968412072858505787356656851675141590120169563192605525068798680666016719398564049926047241490673288757780763017704865743752148501773601759714661404040246465609175730326546535972881268969733575739121012299603347913937993320257513290299405056214914532955112674306445760149509609979575221901912881529165411884538704771735276804859490770649106828289759157620385049940231476904579275952186393794648574171386155476674538951634084391323439514359830754994832880709102688564632534194038331490894302653631903090652338096077357930903668615813848911459583852558301139551349589892399622243210165070658635536813150085213260884285356453962013134334991366091383965571378510894414244897914055081377668180877017496982688431224463879149854888070619123599877825976621601378634718774455158664061859260235581328378060296522123687191316030775372044128145264953159547001796601923418904438104738097750796260949346106246330600377684741837201107056464374719173130216234009049535633149847268379609833595914870008343122729134147264776138541481766317122634079214188402085558013190897792893485340298758280880225735180440610250714612508629757002010605195787403149954214978499510435863027725635067204851604682050311885344132308939447223592930020640552925297290912153918987506229175129514840164067694305340803808028888760897273104851521330763191177092663333404819645771426738733346639865749935422070670031417551171915395745230221178458886695371887512350921893774782025886751745859106014747161086965558723768448562018655887562468701417314821719699083099395594844281057872077005167295690747694469684176094275011885725883286286519534910340681271336929439611748223867254144633205323430537449120075785010724135413389416930841705099805243232639212512859306559407883549019106559336925897076863668771276802890998854905239036239677181636018709366569773165955643413972534343945145381009843131370550143570042750818163527969216790105739933583575349984562315366327462396167256885106260014458984744476050900988430967456061107212697558525933459308646412741709748738951010561339574365242318340510541207188742835767515775421172532439448272331152759367027918621672669885803425792108358234584680576296716084476790491938816638657693552568506875421763228147208244457998441924557990987069444356243264293492766897657133867105621715141162934657333428192216894019831821573148021422915730511291368262625790344207881145618053604724535325883127042590323967484154926518455100851069725483996588979002450190319205309560006605274927224231852548650998457883192293731568664094109435691617510403926326845348999019650778190779323984359069632546106286399481202600239462508528187704627839654621807097288961206492252726116889790800969573897855313867349501902527310716333183565831679685277026340157739523710998111783672678593249327814565408638620202415138078023171377166710209845021106598303990738299659236248843167280761847278408184458027207989302790664076523701293533042127556890087300129172051313241315184698134050413994550014720507974649457979958717936328279079720515059269247045678505723455431108757545164439255808317644916788468692485609433486434627575776694465660436324731446344605416122651753096186757247786156654003820301861207606264848379072875669274009150254507794301559821193220149769054904002044695759262715046912775986160726803038520596478897617940880906875443277023401568213025879206512066138852913096738111974383758123765867223110151695828333351524535384873310598890299569613123351452626275227729531281761080589124431502035548193607665911482987965081751585921032182568222239161313305436995872911242829735385565424126617319422096678375597918849509266880954185451755274393865800445854462366002018916711039064753540644599175976919153796216860557292632968914766062731621519245471511586824296149095338854492917951678981188424612404634567837673131984584664057171662481072976740609483442315580617000043264355963485224083681611549457556255764086678952095865517977094066493356085775634291607002036306488682431584853038536805608306266423789171973093018536732160693287232253775369380386365243893167899800246321143077690814873938269493795150705186101499283971972183705160415390598254529740828418272151175900221331314485784916725065718077253319499990366783770780761680576722887346972285824032670157390578036017770681721940493357593117432733257133887855218729142950573475828382481296764977286087801007217399522316986824426397082474779553960061756542411757229283073839333320804277160258767626631381312328714073823095356397526908627957432941810223103523923858675396243104348822745671254632991388411250417813480243150662400014633739572482595881871883904031576951634925861696683683810524668908316528879360846106410646908925339599971068333153589141465803347519015826037363050235471839147289677163617749491431001157000957762710459354886844533407592189831664519724405850717225249453472875449847329524289158965615786471763717996928722736925909561338350924844568633556615034350019582765574566198721612478794818240716189262994102461259274352186269456957732495414395297515236836945412840963374687649717360372851647100916196378228953547880090394482951135178713268374815704336306274293219266561719654087369239716369336974706545594851864423679277762298439815367908414434183363386945780558412553810571655054227008755980703891191787964582211415449612278904055823583753610125898741141489172642806183874684100939102791672057454583902999161463289848551804069854045431664486786424404890156795452964182456308093991420944840225173490054949196645460804346077471642777115397205992192129927250767402216825103446838040166463676323717999347326893931421770681805395753162582633769401821433936851447743601826354430015208896115182752149512702037600005220196697086416782374528960020154507819158499721726686294398456550784799796918067914638039648633806276959305527517036080395619334488735615051175202323261392163613119093241513059572007183285020525775151543600581807741035618640285569930447281857472946966036865885388358614340251845113327345302417667100751522368567361745993967627642433097486961593420182757102249994099249574557143190095762577175648795663920308159838331168427793565375200099628654570640806130774736977549764036341139426206053396484088809193613113469934778069324642776818556428795326983081013333032084535488550809649711259009019682261750066444278158746693617279630610627705708833004230732308816011060739415452433080785478214567188081173101766426829784166629822108831523042880382213773632725622104950998401851789860315678448603719832663204963784695276807376136446105338005338087105818231533162574024852673011383098783043823867606797483001740236996162332629935585375168721609689990052809756190649271562205119380291267590610933768572575341952170876262694398459899061715795914241286853111020242223873000344583245284865568961415507099699129494612462370692742503686056574204283117768362610542976715971902083653041433215820533012090389133931716256481499493630131924245772684506168717055415090067764713408929541450630316634894769203543158645790229288930721407703286772436002819019110738105881220109768464195135416774117073606194740823455483031863169145520800719076216602787206510081863509464539253522910159223363331683552336717712425436179082927886532960504889533222821948743674368991642171517599006909650708439087504897031134615703606444961393029323463272013658113188077187522238569747686274053299281277500377411159193213216526120832505964049400591662411861023264475464760580330068670521080254115298837144222725739669579239888442397758027825399543247102209652690867520269404745467883886376817547244332245030818058774550237855684198850501951567363304604846051539314157590105506402344942935567974336951569336893851132071383096449688859951773018737647340196520120001854974061581730586973749684159747328862513927611497534300561301781262011279516843900846893290882340861320150303343009681204104866969294064963243108957214213948626778393395280681195444369151009648804404562562556444259490054602152030534909176795920230271621761593184381942711332280895401561499099919417534890661468157754316937383080714559932314077405083191375595102460466673277172941460317704923355931236881479653547243755016304361491811973465105755327963028735352253855015620612873442422486629852025973121483273371258753153095761390494492803984842385641795019254562674419172696603112626725111547140515208446175699726223504218658151206686777623250313027475270842481276665317670875271517489032451605763113895683037104074739524813468831705923687752064244089788767779473514305652790480865958401956211460204816880149759051098102262901087640551949458644909632048228729634963070917133195204423726712248319441218579542833155861023947377359013913126441649050856024743763357273004344383540113853203058711966434478011323980161518557944205655130099903109796301542678675705487356377205083607700572458115866683490784336704701790168349907372140574295676205138920383485115870342766785527889006327656491905912565561370015644381791181888292694945169659441615409619317471712423280965957938745496678072679585670397798580398826491306966444681541550064737391388874025588237076922117805426382227324898249972422616518528985286303106862233955030689858616099086054264193647462189238592204875505066900409852343357563220742497895404882675070037379409245264898140260066872008230118478587687483903011114019529207772973051996125713456814764334596841314557268010950412805003439929442372828546782351414015759508961844084703418742016536645569422003271442826533719970402945100224497566530363939094376233123735386626108418491038782016084648986334013813556872652993213717683696916696543054936441047059334786221998435592761125241446633929678909583039665219611910871401016237677395210117504760218910865555212990226493696966083199382292696036907333495466677688580612488367626095800041074005811202804863076594338472770006069416192530741830326501079289161336334091720735095983506130621672830376744613771267780583461590239473233113051715857554572060577754426568288769224439222789911581461410987558065515174807833576226894395691855370430183475944094896196239213142501921950154217033526068531962142314184546288937173481751107857233632479439403420502444120347567061200569059477235364189649224965350106675266716588382224534778502033823175458440572773927522073160142821192407378052510573735625031121018444906689260381724811042923987528301697212234120613384216220207301989804938862472709798057559788712959685803467942401643225997573393299118258776045013214853263669798461491760397681747335212414861712976141360560012806427975962367320303548865916726647204676700205316193444840642070742897581035466249194738542399022481959329665553138499732272553121895267774615364365901275923697234829240394367435865241577130111003717405247001712434266481389564382657527672195992791636321204749337287812450442874720941573952015165177329027845449296412019796241317610286783216222302299062904411126766361022384191781149182535848702307291626134193656016676697097936998828594785841020792142974498154734290157133441488809684966538022726217736654961336244030312938557743472664848073416125409019779985596427893644556307605434750901730632511521192746965561616897096985184044562361346190381700230874597518544850490301792449156778867805542604382494344918647665392076133733850552874851675555924530978774892829695610517909070173599274555355448831032087788438705082382229869639558255723440741904000617018076139641113047389734744950235974121377367387772559320971432762410584842912616761904818567307700922330180493325173417808605709055775218960699196014536991583500064324739207307214376566607631574475157347264377395722910232509052196133760881733819240610075163770691814456703420679188710104997687272636322597540085407312048931841139644126608173809763501611590547990669372424356105699013830435204462630590107702245981924796771030507978969732981826786635343182203003818525633783068775248888325451059327784287321360362226853669615631577278274303977695172936916522978473734557956182963213977723225843596622066655850699747471202870549880751393068247720997391404050465825745071650759130842604465644607158068445802419438894281862561665961417184349182295362461774112201639031624678051640525781146569239156413560352461733298498132224323731564988628505418799903905189821123619239735190499882649503622634067050457894854631329229937116265049132209670220963088756846957437818255973569710497884084894599455046891430942423091950761560899809674624649135089138136887803999322956298662078851359708197570349268027851261477616048756029872848728194469108236423233504248450873124106794174161124804157294732566918098900016343022905929455925838280793731964198050914138739189661788424304543288043306375570268395686974528908215247932870367919184308331870924931578738919768339393218304307094781652436829252318002312884061724317153038485836292723246236981982888385412273628046071118681241723738215474247149718543727405521756450297308701065372695572144463731030943248810820224336747534196598404570020112742605646299855083725760834958884685911369220912573607829208292823300466962117406784431701659417691333588156497945543580450407439774044744658558951061911540246449359144266431050595921888816831048601049409698887256256711812582496256289606027197316182931197186071265089477068591546115706863097956270706955901550059330800507210124563877307453296878452229218515366554416710855054625444217743734439034670790868677014050597758955039643209429119434651083731292040709845095390488627496188456592150672845753338428577387556047657484910417324280250033858420547701185304668121231175337627336353807109538189385400417262951147197602256723442356712208932825022377781192421769437485006960755996142313958864206014193096904560418334051645199877267335113748313629561218925470093761597197885382068161019199178717153223911503675245112907621532106944693139268654311382607359329327256719284292447792225121164627364530451144901001409706023933557530348591049984214747003675575970008693216710232764424166288777396682713460118402372642783375158288501107196894969078207689201859844481290315049660864354362079752461541399845005898952196641359332031962203536841352257270093308579325397241442294529364501077291824989927243417108162584976953225152157948391238761147688401229440408195141904398085847359708105649403762406932497565168749352837030978475759296035795749199430409213017279261040993940645861013931585536842437015979317571670724496851040455937289329947834031911792847408395840512237222029047473192071867027883188958790228035104835842539719010453266194299685870765046767413242800224802832820832136523218118156493956028926224041886240315920916583331476176535048287572261337719301093068726738053209249874885066503498881788353079238333059247204675065795818084031961061281092663832371682513562160754782023370286207648023409731650970093048812555983701826971404238048564824820361865983764397486128626517742589671369675334684111738055147532083041703222993844487669655851336675353084490205057671225138646086165629524914199853278911251695315131302211412855835876574744128233719724855717019229911226126663090191817021559531256704344273468227548872698084419136508682289341075183647631284043745514783514179009663834084966996783292351126034066827440684044494868978630820345055903027338659400124034659935300352821612340665352906145271990451811823443678699398164519966196147655753469458096928258125961981264138577418438735171050447958446035262414047732081659307973655670637587406684927268994573567380882580843483413220839786019715175747801522374790881632982192459945961210967956967510317787348524241643817562171228442181346911788103509602271562861121982422925860578521967527179014757782457585623599439665582709817106412603241887292718674912970072489050982528795560520042059688877615446551107791772351819827148072816640438134575243661895697307406494226724128626301705172825437912486252200916445440762199104658415280067854744915179395338238568110263757663841634154376593569282326009512890174634307016861905240872940642438738860848135097369682831077264264048801977128164559305915906709994508166989457011908716920974955366485523518885312349624585210098077231844290038117971407234166823308700887159667641370395464864623980826829760563427988454402606559491276576850230389293705673648281520384049847892183178534173258886793419787848349397117672891591567097024669144986924516553059782842374162672581277156867527147259357827320269730595448511028577753123359774716312150673728890762951052624775202079522472249312621638499432844738777993842501166465858164428664696509562212476653218638450371636477326339398132935508882686254475853474309667570134640382254555467709093233232617743618869107152226385515851372757945225942354060180422819962854627755806908047680069909998734598651186310755468674023935110917865567615856823089773995308847279604725086441596712073041446289207082055948745467845116717049071474343919584256019572296795832364215895833691735463179561229872195426307607600751785742836769356204847578662894290300629421553090225688863781460967539703590750666630544182620388312568423543932798155161071458009746666297612900434086331878686305325655495830310142115159824095723389839239654727949948501792293924566908690914427102090212892798535514573971246293231056215117812830991272703766457271145456680282413905080909204726501981127212479654022797199515641643073831065675887542616020633491312553940949681256334693911746118530964643815131276388256310165162498639794059329285472810088373315986261453508649488653795048875675318425091927309231849406703609391949997053994807966982175483891311885446323222270118370767114473172300615809856077266190793665612855349574480421373208040041422061954775336477985951595844053088568346167970796092982858912298063893235122163813589307415626651264905115456196760626355768231673817193414767232394601170251388934138422414097063283864299441377794724727820957997009721112731199117592266537471798495663828219366407028604345379939411560541476983711028646633913419631999332785180306026669820167069590601441151410409813019889364704999181663345317765903060577471499779356303328575812586863928367359104488442702704118936252341581895422874913288909427803042269843143219554151296672819103922907605731880301841427731111510900766556168374576950139372975135466646237652460875951142453457578896848423980190987786888220084666228532292199722750612240367414046920687099458702380986200389436866564760348652883536558908005720604260065914508726502810784533543536142600193966029770867903936654258278025835971391797614252105910252429721478938753791759108199808773835319828833506768006047990582312687833985343620670150754387518186329488403255792658378806478797584735766335653026686956518290161472559104031839122148453109461823942530939310797231607680687670492678622444344342037834501581007227534805543817958924326362913200375716330684547093473061983829587167524798791705371571564254800865007988145747603081750401530501983343131253485980389665990238027093982148535151563109171039984801865691276990224451082412973912827172896376730033047852958415968185653000252100292968162660554765899969230118089006774613381556035493432681969796009481546541216162119384485078254293364068599913069246434056679150208245576087028996985522669360011010905213135692808480711743921134701589053245699665789941715441655862425308629911004866264750549781441057871368995072044193265451331499907162519277507016256004444715103325559500447701407124431713834344386037573774272498467684793537244909962153975757215063554359433466203380164856867749918044440839590005030784278194844637584220714415472210883107991667165377747368258396539085203977694301572406635226874486316909624368214046265380724625470650415207738967263752672477060790077391442684464405935544361301755991370626519698050907132718329785751325261342998372042325657811257115721169457287120081209837534445850562368719931905782404824328348698798787011877573999362179278673888372624695741648167240882900517712948066769841746263055025094795909331116384732596729517884488752004732229086471843269101307297604193932552367831837073108524423813165966965884667395875163286722851962159408394785245852881765398709174586855868051640866074251023156877237210797506275557322674258878022951401338465649456979218617782400437250560830282582653717286068018743177505041453253094314826152969393133947520084820341256674135168643263981209340612178129906926174472781968837275167185357736150674282587657426060037375133849127038310655527163048427170279108100408732010929225090196971640728469153463306341956670746607438244603320825154301110211606572013335295250521863397924680274189468195247844358942788205127590349783542677521789874341005077889731408856652822437442109877378038016641594276270752874541114917636409064107958510365814391648084517832804082071056688863909387910820303139729553691790423634705652111423116953729650754815861477792773945453839455183378799567044303070415780553244938538852037042332370038029289876314231228648235228847104790078953190520751883830187209131948885673043494375875733057235722146967101589315992228478560947384421517228582655876425198537934134868999956840912618898428102592147537566131044257890030629140237892047560033912137831868913800898085917058315501959833286766054108473331770412503336887979167458358945554513599045842885066060360094506690247059576758736907036793026119602359245260779102697810474138739988054704907870572852291098445587228115586464999086249522770350366959982151397876165397598846641318137454886392783240859654468023914679446967518180923965458459393025240788663643007691542272912352202746735455980917186352159733687475644231573559926922081492788094082306571590826223334445061529717601021410281810384415046351293707922403032812766685834154917839641453021707381357618454993875056457252928776010481924041464648475403063154644721874170917530258305200365418004481009100510542756791993079260493695418041859672541252947929211037699213249968258507667994693424672796585382438960746122064274146782029803149787099658699658315528674107351616581367080368268291171645467548455876551647561515756965101995752945200269075442416079561834952071258732459557075716093900977228083965447411715980580769780036791193012232868177298049640328977635410359363478769098262880062503856419938206719263451716187714547775394375047882837540981978736006370631580063543886168608176149764404801635282923339226268002620039602713738884389529669154075129392947249775586305618079530931946176490284779042345235144902080532309036372289625081574028834267011297822953329777371003557261290037517184317523537236667951299799602305267567488312119607843810379270086343518675608560996860468529915978231979872071440501652968942656206585363986599774934230883926825500524108246534444295361213325154577569142762222210931688990396444419162657462585605011369495849413782386667673153534033631179601917333309433141782596957861103263713430248282698031156931802902746299636785579041320111861982870732919668060869598009134534096066213958453712089949219213681303930254366570533382952522135979485122883679153127567737704727685490553055523234532863940848472966326872713255517676465281953752886896118271816323679412395764752967640397824057303945246248348891843356645322855715511393727990562734791024946159021917558415921367339070956671768578705526372723080073434311333798341331950834979698609178397355957247014766615658726246307593124787550974832250657453583556355009309241558458096329445878140491976073414588006429694141044812303354608333024919334058285481348364754806032863152065765137199921588739777199062822970396358584483102982607898255006361708715342704665803503609045475402744762147144870402186466296566838728490130828906586170595709461808716857512289836086957025850166852338038110555907356452951436264927925265621417261469632172049038212248388189953674844448010368742496633411317983910482630148648644898242755586970750963412531282418751710759786936270707689920965631503214750500687183252305077021976099499501535976275304696960705658667766908328195767858801015325276568153222701356725584193692323727307719720296072477094173204021652063133853015968821147798369125029953472692460419743610201649125267604174314659353026644569306157703593050293839733925873467354982362248813329130653647798298063483171574082529313141967737241031542162815115480422891567988089061493243803096436360708510853447572558120405113653836036197650832038471810666750699477146814904740624825656594293704445926711002183666007979745628550182545711717330405610114621682161368946101083914177917252829802783115710418513073028367240180176056746307004856484796581924583983262526645256434089430815862378331337256367292089501311247759581683479211881885421178687972356767259862753286641260427064965828853994754901033777452248959218489236551902204624767943740061507057370539450960811437062040148768668795414261379467401771465011432127276633422498388371811079783924042570383559967737915305086811411560587435777489574132134570525250422589682471486620149638726021516647922517637829881714613044999609986962537800550514824325705617073612774657311351598460714438927449871346255069302887172008312424599665876860231159337331454199542290404965546124777467048431980527985088569088579705304353729377942764025496788710848809304811269776194213858950165652496014890338941861317430010009406613973666329580056256902111759424812313604096944872342009887565335252971733390822825475437551482427122161093897923727104662953046303259396998750149892282056319508482877131465501464134625196661380527676108738630906899721185595135850370530802718668986632761366907333080039870567737461084977273739783318297672865370659722449864159257158600039180575876597801251079350304170394619302936978586726008317279471977990596416012542200807606340395636074388847839314881361002946561021528766138830805020239352102891881403211101044824330925327260787307881163237799905804460667298173244478926045387947465595876741637784218479402722154156598514734052269112233144054799727400917013352710580465838293440007313667629774391207645506292463662608850903364561863087795315451574891561142664302287865590321916175972299280944952634464798715214737410818083241747096901992564548416860954868400619585087454415041509591564635398993588719187399431042295491818487438233677085642186325631764577201202141328535427692906172270853428527308231929007321091883827790326837695597081060804937759724276809534040911436559668896027892695131780059576548627065328087150391030959475386560626221944098325641830770068095109078019029795851618239988025441228390671157733879564729933742219418938067528277608123273948051519237589366319861192428189760303145861298939382445834516412734811227307594289390942269669165780278056930085325934625182366411324741545123624634924831362376857306464020359501306748008783962618317966294316007699181610562087674454168598580980366872107541163539466075831285507844430534507039165747152722790327497965426684964104615245743434067569853368177240974143789022707824039355229385822594837976903556478344308797199119380436152436765163695434615366751824338070413251062641421145714100145134017723741812974422771915967182517671105244289545577124149724145003352442224625925816321912106329753671302608842281515481525285944769624441550711920271090936124435877286653995827715841631424665802228270328159474441408721580128705328233746407555548795065648600304748741963578024628100645978716627707196032342883203514896013195851294986203631909105413849001403004801104631877483918494459338569205476115274097101017175144710998910231660356556972812658880450592788388189959637118640258556139078318460649636900250416966615110757910488722488005975136380716899883108777322141673960393407936093940321863510106013845866589807537981247180732615906854845568173293091651490301953548163024609279698459760200079262020711354730522813343942050398418982547815491461069285356145521020020182030910749315601575150961790011001714384798485061838429940678446583593222543949239233327931397559507022422542606369846542335901012613037784556010049063466449026118065032646523174954728333047675916371182526871494165991300892363527607933077035261229448943924861643692128874409581956361270229141703344383877623156888729529097927608415888463294306399890360173434357921506253142030069271999651937936366759059197966041315866466767496207660381807417139813646183327885885351958982140567922798075644506688796332823286981716122235515816586789598322865599166722385195832453704007932770614846947779965732734992055822900954195740906444544266691071859440001186435982511354528357933982005364547249366008005538231832446443240179202580857374043397384753602207743595080130303153078240821569516694409155768297212327411643476726554544547548528376986705533793494795589496757787151800076500838039489279872373414168591754335302837092130934682267853518512368750989423874401537387708283460566242871915553047690826516965619875505444736674698821527476793276603221508121701706799241395322300560051244916560967217055589040231933578252952703350903351038449563018139632555141886150706293083601215626986833968363334143081889946331021423835516337058485244703757526511864364779612880859655933974241373740657288228625539006848096685885372199721603843154763567326596454646759966656538144093200149119424736107276225423158150724101743306587623322479960214493078649505795408218086750429486512052532578385385707059858127562665201635635963740616250114943287420652114428451783755267688033225509562573748873833898574068405640030461218947082296816498356033161588546127087221953015146863496720811592897064573154133479006801854137926042094493832090411297469420276567212915142936204058185424360575208064971837096423912363163543380448477375898519996106410163628281440524649394146906417257393825185325628266769004665537674281338572774123881516776078993018565596660683216656525223881865239947721386435906382679042529164632405052708186833632123104883095680623069615347412446460092996566292533175055347039124848180143242432930601728132194508342228794793934147548999409079275792718516854565326502607489184100312480526158159064187550924451573753775508925178351952276187508835478081175790879418135439025387933972767948806697912501979035602149423648867735460115576198413469242724731554233164533338213721446637769854269143064474991994494244940310010475817374446220592688369940350053142850461563882807524193654848463709899209185352241371705665624263456113582523073156334999847278411912507731220969149098911579426950642769855976257365153625911515467768431987415072936212931931358955149617087948852627722028994551354466420519181515213245853508748596443738773636491918752705378625583762977405300329865421964447334693649467578243555502719503449444079703401957023858508947561779197386783905851598851964665851271500554649559157596094041902149229165582534006201221014164188372772312130172564666650131777848014992255198992161600103759913329199391456235886024657465528247224492887387861696814762799421062875152747021555335359484605164789617014270120530898034935122833797276401822266058737993254625542835427777304847854207383325215535075982551531782702520971152674218772236058043865334298692881617542295466433943023721117633053386476846160686804819163786493519921798386459542458782254987761614826241111559608415312166218056166468523908469013120103715001997347072526745777784516216344600178485037729867090901906104924851341681295117947906471734408049405746256663811148049256833904522544493842811566618313258233749905441559768234588830605693839116287612151480022371238878357760732832853248325033397487571134801842860028986851190835071849340925626678955082832685950761135586194315951050563107105473554604345202428367697954140518784062753786586207336732977312964449010828729649228083647150880259899973021491477732383758296077966020606268960463285219555187487925711729315582993284756638974470967223275281721844440307440009728101876794626533013061708817312540964507071326167631942181002520764215668729200008516324306183915903256205566719609748652552475540271808363545290008135990902855784544198675232609641464788801648193588775994523623748800422533596830348677021706957221775137064416209687113684490624586536416233762013750937271625139046323935345036280083646283579246173674695376855506062667089790504178879887646673717499269679980400931967915233524926990638945226016377407013493064186396387862242811712923598551707395892542254661676249816221909172121105229744668485061861779212850297521458569758712613434592639812295464116267506699973905033396468321854771859207037310157100290632225477097018828703942779801582621136674569494077737709342234893414697547291268457256375055029816078516290166232085957777509955103122561513581850336460838996175458367848066800058488199769295575426515807120112619903526935381408591058910862043869516674370218329549555481808348704665970159602562185299041787519754437680847440150531867447179408322101767732130016007233707351130337602589583055534209479021151553993970112609828593596206622162284904488219780639707138183388303008072048377149742148733057378857668299733853649808908227226571003737382495790943500114888179308319310659989895960893982547664119180584035116106143454362573000499363408890433216025040176165772551470454935897681328971860600553180213575223526073700976107419656371583942915973923909209690399045232233887093605667206197361577271478701856715273208609395123669854532593678386010729720913078163615090013974674389630524516173577977998596700494752462811138043622425292395837157182015473392569034537000643651363056056030873262722886199207426164786611375791467520184142696837219436765949162707086422093707684727399251973620464200826434333917658623108814734190886193990283898480652561510742227881839568867897781750634046548299166608464897097987755158584794888297794382117208300792228374729301657419864992245262937674937577175590935605481717664799125202692341513972468296183749970470333439034588980878222803028356994489778274000286757767370450540879332389631050897536579880513669545377453288731136591441006432813652471747476940921169487613429661498655060733401796046354386226450941305847878537383718072934709636405841008201313390721575350942111123815542141850282880646708755805721767110680928899859875441707476459775673188891509813999578856548120472900443339285720956982596538443323917419395933622399097242452953945888180653937214409358549559633332441359597316161182076130347953902478655631163090942979377210457834840193331186712979131903825399310267169214841643898998916011808912892053907481545849586888749080713501321131634196652831075873362648997011012338038364007760174784185546886103730361474362294148134242283144017307756119579159699436018319388267952466622937057881452346482752576250097708396349361791335499007024719429663942671018065695192739328965707805900130450104009082844235642668763195118863403402880386001557979056273913401415512402006234775644837933053735270673819026754097402706693505352392877652110470419765435142134787795489465863295338447259410893182778678600330458214394957133298719514188326703267143752736502469678543079143093382298712739653765723371446620274018779412284848158826703661796164321842985976761594449265507620323784917153154916530351812698256141732033786991691324040090756858294893491567306070801300429622573024662781039750966641618502320254015639812065402547090571477322204331039990510009265329044482075685864169687808804401804157915221604722227538426472102950021450931010194416629382485264400050407677421597696204631365475285233258985360556672471380865026815009140015043309672953977234316151261925153436814150776039680070389066124045474126608700020333613249452740170472386155783253092350610150126117263889464116362626620151416162910580184673534771029993002798671132522149195265339270714948057521193431612884288661635278687876047014776684500565212501088281316140796147033784964666610475961789064656333148518273548974313059100924798518829248204818434114841280342645446202437070377296495817926262997196089834277212824266266192813440873809719742739121843614800825425401511815761730333298103969627763213878654264608244062244431324997588127675414396293106003556325604175687242491602340525085684888865178397237816616960177784287213079207773079245805757426347191017454959593621597446468977478873721429973636005264984685497608594456902723138909940768183796041397931728489286898462129429243151238029984255167142622868824297086379317270668925824727883979935757744490094117308531235897487348436818898045297584177182520960372103863086901443311324513770731594606782953602054031630552076649439239307582280401523782311095135150893878689537393005069427010741993229184884380607643226937229254070410373241231668104971414230494431710917961423693869138616564810978355869144572699838894311123072904695858849505058190194864270254893258528522185898319522312468206377306422778037854356510107565482099965188762478957208343874313375706457164490516373676797004430459306438870105176962436961400365020083732512249895968948252869575494227500523711991751842067988184667160465515848725737836726545233535503479690363866907912443201432457487306049217326587696866943079678172769117741546365917874675490679608704163028384588167739909664104664040597570533461718980199620262933855398775115103641532470877407867115907396724495127770405788508983139386195279705589995739650485972734316030046195280915173411691197211665461458985914826085109925436657864302889717415173364054909426547048699964568244317768887862026043898614407438396771381338400873218677464343930737175118700919342157725011461634195950484623422181140112525612490597818105466328971806034296465745460982559285682772757667034350488381770609400232717896968676398243085730972270167543163024593390168132023477438873126509797569131383858253490525004909305070255526436813166702002010235369506338363551215066449503358440366455934845562548406933011631201984203863605292849733558629008169991996417352601924576634510444373617363609306423241683368893102845809350317395706014336931411370979486296432819146750821527196213984173101800909394409640909494290021662758580434119030249594390562752637281363900916289582837914792528053095013740449240457436080076402468057515289585926935421897137852867725580273493231280332786054231527781513734282360836094383253755476388921509666012757920950827541208623004833333112363262022802524177840097222742089608469415169439687715220644640668374421442464431926658746054785057266356905812691453590959391964250396622026936625047979437154937187112085169404627468442169162953129762328863819697800656524585298441663774735769963410430638395113082022107357210093274175488357451360771011402596656133793860832715140683145103060974777521734332263892987255295788179258263638497860462968857192196577237559345838278917097186944544851932105946877302103809865010736668950835771520986952340107537351932025197996758325778176474963456854167427464920000709996021535141041354064989628127096231107067162935191689338549470669121682448097378047204905922693653140046945081566022138650473932317262971325930227210903748196808136795185391816348015410189735937405588950389430044671040836004252412885852013335850229097508160288645168319036428644916063792988153691564410632991204662836917666433627531450652851631116635331619035895462708377714443330115634089722637463903953907733166928419224491643222590846280672182849243511031826329938317091263044574709167513400842602643747246522354646840686529147695384270322811583653431584981847689514794026944436926819874866287246948854762089182266238691881340186949556868306182763130328362278668476523484250154338591340563155025685105962274733432996975430428053225805824753061489261806004245130314464880001807643616088724149283873532261753254233871878517521468623087516255797124459936181205640405985370910127825787699195942407782523931978344730002026548335135730713987929373340107920091065319863820508605755972932749833343675942884980391879426349050916100008829798978670512387825151323826983035328124940424403164884114793889697140070019686213473941053958263457998816262133828329274460896327218344110104104301862467268301306398765203967606550153991433208081404274054789387018443938218053658946879681790606599193207666441352101619157660172303737116647708691051683653025324731508993682266338352448719150469904336358698398273724196481003754039733744126659831680949380380077113214360546383987111762376006546860904929035744262198630667372186195305103112055999080379659643493561544426676498790310674862364415596587613566115814286926652931869723845899920862900250585329619184764832333966532871892515949321791260081101345048524443143834332137718542267571362861386969913678092446032848387957558605722653325198190925979824152015490902563303576296324460837484699013229010820540935465090435972417214265259873239938606974715566506386780070176876784428112712213759879820713087944141900939198286018255286285057202087382679396567704761147163485094940900386762383023974455179900710404316108877301645576696650758298022496088368533072769985409672631955644225303018272550281363525998740455099653277927217816120160622204110213537032255533711237871293107597516700667558773796569014318350831622247509920028364686513247695174603811985223514079938532812512558903029577257125819434880582042234592460504522819818272499601320253887441746080342223622633073901785163771707278130591516208102713079435370247307275047173824225721047606923478648631335963819748417478599750681817735665216832983660797581139018694033712296415015456277409057002404723085046798691865644656812806581973283595280112319091206464477508383590103795029165559946198423756821669760565847532032706077213430220943430455806289117610085221841486384905251970326022740645334990688534156856610247503179228500140840859076015940732784930605724086183548459542400962019135897002953357920270410874506573750426071410016671797945323182647307042934392118399143836551158823926850708341798227062994812884473757703446884597825775463740835297680109822628146812555667875438174800398090439588473395857072630212171937245664243439081396057164231660024817635266398434278502953721830423232215129947492960430901876907307690321715041998625504493083760829343638056909041098804285388127203282570495593119052413338403835270726381269658232799080344813456361975558101741044233907099517910120440043679531631503951343036898146556403672782329634452999443655472293606551625758162852775388318311720060656659664652472575401125066316027611071870720601957255520267209948037380142851435358178378968847394459426478056261196135151366588354797843131308660391884834171005631936556272807129153325403296814883680962144907809271609756381116429522822297728124018939569660359834404431872075842611430652581761876142389281078235745294376289576094608960689742269419778101341581688607483716644933905863155122117579949721902996231588900727604329793133377431373846952045335456287915754746705422001365271509526337805229812533300020046781071033442630148799485107459339701106648807887223033175540772368197115783552798493606760314684788498348640470333577271323118947767310100717278974126825045181607006951684953824118896117717813396741275503433302943249927892110783684922326462322601850300970387638388696873771272470013057704411283323630707355145418111098458855539770382126132362012544894574601765593302484255415681333217565877917631691849383390019022447237741254058718869196056051303795438741299299964877475864304489604050858582630326460171830166348258195909804763393030281444233759333247043947020906705979217509714448512362214501004679968434206193130388854903945695310910488377913676719965389430216757330057853930750579490069259108158521293196271230253537639710411815070938600650645025884475623753635630899256047604715109461797056381624029689352980061659370042036543094126003679508250664087183527348392627627747855014741624649685842048025924738032308089826206661734858110328188395351577664972044898624302084876838902603282839446340645809257289785343864721495179699660894930347819664091199845590477874401277644974916825569873357472603224804625231263182621371181808152702704706469012305395846046328513758807378437069676895713215340614078466379469269841721612615321788071100848216507183972595138498633603584232748149039543575962474122631515678388826956695703126717768234694564507309878507753465538150141293745929564409155026980371522048501317435878305853672642837300214194021901531854614043191203363654300683284481598615415229562679520449836087065663593749295309610498083267041152341566550402400146057362723845900964675897925717473078108017348933977154131260428875278229583539138881126268966678186675020728957995248323640945195686231444038654318271631935755631278477448809093079628710495040615598187244934012586557953761745143505131467302609466590835422863976751877779455955761881920266151195653741074415905536236410103134427108356269144299587790953236623693290289139863392584943181713684107481283257775417318465182248897316002442394571295744941464746973134413036090233813502242297391469910631935132159380426768291764137117197028653280846799701070944493806366095879429473147050381343512870373601160656568212595823674208390939753763954170553813118252516590300860506677947928057912352169169682677147071429393617722869357231167160863399348893122414015648940797064828790135496706420349143099538180352512662279451887650160596862962706810045761633868503577845865024266179069750580182430051369318205447793121430358229810626984228740489370306876083015657408894777278706889999000193872782920116369719459169610584394783428086578134728489326011406432302958066645300779909546228114456444597988401555085859252735515231924563057874523158927930403115300278290408499076971382539661894368214638782936030253912854892833121324916633078977979720820556938210670767063103999025577839423846769459930197800591455414835938690803402621606474119062932442555655715595138681604148326810843125770178140133677701092266336785288686182624083865512612236445232207618860115863151323801861203386037422828667247469326484169599088044298471592686434434638626714600118751370734662812280358853149878000949272714226125849169190195066480271210416442632632600476959985291433818649883077961247594797388788673171901348947267354969119164233714721476011433581661959855805857605337696385821373053888062507144694445320353280959353480041941596591397229894052792558175360580833182704572694715936854757431143839433577671777362269419915384064432157668218436001340433648630574413854838849911883433705976037734329756285870103923746335566714705540911379870212737152413873320526988314144595871347600113981538518847634669460713827052770563065533387171574738135964017731053089312404236264361110199058574969811664476243266634464411848637449873987024353891159461897655361304309453267537389515889869907857165809146500155962674864123420199236704474209255683477648718456007604275720597561609559412119263414817810771402342372871519630731993703458091295991195143404767572116075902152434542623469125646186824615480644807498319643721607819626090773944461343742393172882221919837851954321280715253826649877300402653659488595145406285072391950970226154524048359808441360925600549996745483601672868043395476073114068864066175065984568453418012271781257741259798627917879633598879277252241149973393591473933808187394968787352693842322346686324231536905823863537725551713754263535246478619586671059989587325916223979468111253500908613748731060276781637872730113089590383310239084048050568213647952856243479817939606749360006861962548447928889203817443392016813676148586766958077906734895344762765918691463373909542680824337331148005441738967817002877939117778953964976395503457944255369461122607299953746204170871870258282757951705236636928032369712685195448754637111341940919638990229231320209569296931940987392685760253204467704655129469437987936800377057885153264567516073103837474578393652640851698000421404734304160492994087143200819439796347410043808222409713865787408641324010158855183209109124953841503712238520588621922361844139795972292129447477443111772011734354513877153673157073238484558278362461486068139309541146745897887069236351095796470346067333594237928932825154118756791656053418783595348900006709927989602381987638065127722504009646311135431722657099509651425740003703064399417509381234540480410274578811402624188846334377448931006860377271968282430283940524509543674964809224058046173309651743676669308402284437859561838961666456831039789390231036333851789364364655318910027912365324130784949396070840248012191789757092048645482939903029138472513200420514105192967072876669255075344003202771651662899209376253295947579591907403634459461894654582077222469808217221550630200900997043922189409784217613879826989093932025970656094964597133206361319499154559297888973804710976968589090839799095997152439771480486612845679995456747098419317803364961226879056223637736581281622181732558755316182185409787222271652571291285870592167623937917761356186354793495571705966381132941791919127056667112692770777089283812538058407601892726631444683548844446402472073942771495917218578438658391564593384209220564255326699576208546268886135890552865073997851745357804449212155525085437879070906487787082309074031851758858276072131405846267470540006802596237810994671428502316473684735198162068822366341845819320908579442352327829727319176388590300743657765402041567633899834846234146013183095164373053432447157299900491384834070179946869239956293275459486489563658376025110185459066399117082928443375358949106149779513460185746874166992347025801617395841629893394808655412241444451071938239228753423594956916161506967199182022704466044198823244355172780219674070977566407571646432458390298391378574837346637366812482805250724609341970720848927344953147601071263652876692040290615058839434210893090202020130721701910730327616335586079178093781318119156730264794745654793724138215478073168619020202560779449742881775207251888194408789645119953606138664081826074446294975784474088886433659806789691608278752149107152032623557207585225193419559620072372396763085735700067183872171870305360123441545975746738094489899983487722411988358843105367150412591745092311521986036911260191246058408294125995944543476181338786937024660009177040622882454913327204719206014925621276667158495931629154180482380514029462903378960304977151548217433726124035284193240098793215848328064812230339153605129098415900350741254378796142378401828848377113932918109754386084623517299814911989374165537855804288914115962328231907431253353798716066300018612261863745976486601137219518761606993192938548005643074565170470494908409936728162401074947996003790723167528383251646368064759858719053222181035308701939528217768519760085785485124642771004173535316231852005566949802701934401118841473957441660155521948074824823843034237647329996762279315951204868863408241297679238321231976944818570692703977831347142048027652752310289324840484696332115307144306104103968846814781455280909386447494666116813112277116813347809869543994750273628922305118116774026399396329711968065481354073524806307269218425619506412000813208860870220229047223489520274978095272651890893794713042861659928631938722667078735259644804349369815221968813873266380313112474335810368802297105445577497939878669414307215035810031763783946141746422346176710216121110600817331476882884977330732062570362410017090032040778156448430757682510327012076885709054841353093023601294377314553026370780621028458093375807431637234401276941432074644838556142711389471686100949176876053021044474210842796481785513341854361849804250978289377031810920883497217079309144914623826868044628306935708345264449159807968661979552158541411128491554341386302963371653218733078606836996665032047835832124098087471989779393503559383079374705938907074772039314957895533693292900327406330837726119713175493419151629511560642112748678741459566738689420616340298950553936703321850163811385941537841933097456969416000653991293830183653138881715931659384285779751610076523241023902180885977000051923180347644499375453185162906000477119726093298963781316602591341580505314328521738995356091330762619099727715671960418826455602073443290399048900925249359021524924829984784286275151412491802495761826233464752445276223882215892209020427420314535232508280807817238082877706104754539023273340169546491116859907680191278923555672947606325879449292551329809390790952151693888933566157858748328892521620742043670357709094794437569920223257130099716745330222634945698258257112588887258386676381753491686061810774896325611886149428111223502476842260589670356355654844412759679976795533382209875112106025790445217538986199752874726907047844463126807147570555478864930557258999332407370755559180732199852945762005498136243902884533167338504868384181981808308120526056092793045399349376588591430042447997928173134066529357617046185135854130334607825474475206262922456771584260747324707841876788837787983048239319980522666531270026272096997996839447541106790772864248468678513280795622370228587136781953503083307444014506398343460905287222738578385714785216602550550913205232458958741452212108305021618860454355787344610441314279954832943178068077727676397088555044109822360612680021522699627262953279624737488972891000498014187569842983022550471785587344275093037084398809206561402236762994748295716372879492203779875669548928251184000482687128168468958578538539202842194302073675319480150380452256226944606713732316732787533081256988191327129436433740022917242210939250878930697190856222997084880725234802677670246534849411349211200377803096961513626757995888211057910374415632035255306995138035059850609573734453097477069025000224992711618691370118687011825114130691802436576289853638887225670256976142992527017901301919032650781434221753520917390568211704065759597338296209421339827009378890149700207636733460919997233588629415577127172524929802068694822536774278528433383763123503246195374775338952187450627458267581205072939655923577701351697569105655605513243836010930463162759995476395458888177893495105139275097963574192131774759943230090892582601304812013280059585248944009416268018372266182177184639482164248584871101308945584208331946110802865344360886262691873129051142785585876908834349069626006640559629277534315443814409460668076528177816376489806487471198297768829860170162965306665523112811307539256560126293391151892825986898591435382780730518906929995286812808722131600748586719289820518136214757988220669799192246687877917898032444421962274269511786683347998936429474568550711795391389509287658272026778373400178350946295400448418174335736382543738843847073015878305555465833021352931950589678515854669125185578806278120427197640607742885675871456263921020982392319342613294047451393587572604326463938845032675491061507200077207647750492997265253204426781415136203554922398370330530531262224810907548120387978070125266319219660992942448940618293838467298341846045231421249809989189055279212156272601415579786102310126409428370123197772261307850531273286092986087770454925845882355555366330469898560421982813032955825025183490169070314374240861520127814104927192177776095753779047268742822177678428395179330333347330093552152151985888550472289289057603758504282456689694594067682929133662980352792149926112102479030332811998481373476526785898526538376894257381325988851269829760854040201880389128626172986580655401999444184317691370142624160745507499194756346782077536152075496825620403041976795497570753372684567982196993455267931874486985008750855647202631319545823759529480283565827671184309226495071401501229772126797290996718725945619517301961780438491843628364922614636966528656311477050881447794933069661306028024876250727898275203217627231876356401617234932095170529068788810854175470174954362639395747463554961100816977740341331098678559974484923996044987380530885766700233941736154508343356048118573749466692180527372015921399132773548380186764914233462228208333437055077933124899007298410889948557907576475636906831070939084395385655125225799540581641042167826110692851034547090419339173804625947134542775152636697595012835620916487377433982943693441931276042780326686683262918501098893635519199774831422672828870778753317414431011437155074397128124645422045078145952931203957940109347787729556893090504645313589035036991204226786618461933109054783305374751050354931892705922539522124655104438781131990338701945993175811397960076006673936745251848576404637144158233455390651865856143031473421196645027870405201029868352499935541503411639548668856286581478470801030521100031940705084361619415020976401288602951434941680139878222041242259018666722033094108294666690709274059092405269603975135042747849729565220685249678237680423526492386115177111054438078605937598756212476282610901805851671213997175248268296365621715400307448179757736926009011603018471331504119070959461926344261795800444424365868485569715901232178113290175434682287666845073854204828773413283212296017793124736631541133172173707917911060713565013157703375993664867498485393806492803989517370450539161318814710440092306538065588119230169162067987114530238941061191377151154912571330611121478668056461533746827308169141122556174640027557692318195186919076717131382241036608287162058260105024883128236379461792417721168881888874544972418660223161474249415356300694153981200038410230186846885518221934682853082740725828974269944392612761381687723529767998690836293870517569527712318427651864646831379277139625333876735218210070626227322596020482531122387610524450172689492513147367646520929518263243907365375135238197959165304381146923256459545366062365155139146400073707544991724178816656708052609095532425186348326207533084163158046606988735836661135013818627726199577300648332345559369156794503381554090469047082991803872600529178128835194791562519406124748384364882872901295031018641944529546074422962281243173008246378415445096069642733844082099452905398988288421337464500727060068990595850930878598774650014759873027803661738410213453712137441963643231153404671130699502965597062227897242804300623838750941468101578014949129006499009171469350530243357148373880605287519065991065359024392379631994403417757927146360700236917645446884100629592735605850849992645351655502248258084924354158533429088363625952760989384304637158878451840213348651228129837034545712438354469135571762740052196242918317674550624778938994468063272147201343293223051498096686571941527044619091911335373245956940835557732759367060405782048801637016145367185265261744107957309691910766720925859588377969626969215687253517404537282888624279297489330788779721111500718500362570007976985998381627710896338369783775177619865831022527349578420521232412323835094784984774904766119835349785775801936144542020495254516920722847410349810999549787934387116579122693224451717406963020628768296970310026167290378523153648448059459213693662348730240985516572392359978143500120746648391769363628428574607897674946465391525129256066370402435976355368348576988220037070886150726655436445069224917193374079595013582422836561936093299106272841845235848713752592370422394665300789755253032758642822063414626312775336181724568468526142963328222668769225327877604320578386209920670404462868662635497717554847724837038297512289497119304851175768347959130454858866245414818352416990866429847391868212242098872267877517705393323323119733729297386686771682469730715908111861767683941774666720096638566520837981094300517889914359535826314324900311387027565088369436165327690401703136976593641871211478758926560814133110680544403979524720241437058893904192780295224824579154236820507781797593617157373581383320047968130258842631046014594423949197974397699958793513730752462579710859558669298301356599431907487778980509073930691302944852240857788937591125734268554044957106093210931594850236217307535538254320804108017879745409894353554064277789349649143192111265922945391739413617094721129388449801728068369491080382663221761404233069710899384234927595222382793886388477303803546658646291025244457062403939174234500261249116835512038259977024497581884562148422979396781881895050349740312395871573261946774575984783197089087990718847690669466981798786007712154245464365805699441170445000824165468523532862533215121696976951853333897830883078779335884250127541341937481797782845651139611266509427838871095759048677260754087411063294782570588266849434516820501814189505736372035707246942907589913532887001835469194270761415061085632074590716184057426917318225508116067566780929096812640906659476181028798517118892634143614674063494583390434455121893849371742994962974868548445532162892846067329922616667624046767809805434861769835710843917131704002455053034627140028340389925208850046852284579862831205148944761701484361390339177971558030124870693231050850883852198723532871050023375473142637100543482314099665930217337855703560788497620936443192193268925111842860215322426864344196437498226219033458055358380541946929471110519375660009697504657968197489363254691633769653527938292821325163787541776969959677995691395760254060984396292359121815818314179539430461687203148323704897312445093121160386027527620675247776663932725568828252174544729374376439055383784005650306971218281453277770265360240279059676782443995592053257986820319606218779327435120577188892834241065691872474741207986372634503801896038303120126658219946207743888604460028464312144261453820050914983941004900035611428156953250312351821806319613321449796871908051809953843055561036725638812045075888495854534065608352079325311868900377289644596725885329890553049599342844211660606347093320508120278107448918101595074821094275049418215562698891053703438681500153087978986326980954546057351163314628358005134361471623397024721116920876604693918655449031116119505130224372234440441245115775676596909453728197025042085969416107185526342834868402567094004225293399499678066046609304436732373457966375366268950707572584541780006692911641623237935183736591173506837756682068475155179945547322237128326830788068641083774183609049116863996667174594272218768821525996832767581544923679416449974514659442689421969924567472823077855159964787960985757547327571361948438166543704729080582697169028828427240032811520249164585179436303750929653682913717659398823558149847785399392878591755675819239159166197769945660708544113619750926075257059057959824911915537235236404273962169883535997649251763258405425428582885116609751596022071331094957270210185235467717731755184302201220377858605568794985201692599725912508516205350615242720242143126366869290551951884000766733201098832941702725472514660739329329660836691367380599245547949357331751214170744744625780077670956598224272055793935220658665521162106001742129980180412239351713312133062104753961473406037337278785755615000256861483294163909809801395057211988265896021280458013848927757153651194077803492404485504320483648059872966632383239249194634307056973165293187093673089975722227653323126583553048227355705590051894594024008405031998248629630299695661077516608387712458379781407453654181443068079546045052290051606030624288475445697177575476401101981482147231381604418951877645529545629483788444494870353580287169553173724463873557474923259523874917106706900465607708596708767826588129368971881665936891116792464048030774836964380133822962372294787488795425606307729335244526951655899441788866940134348742128158884677514944210533490471680336469751286656813151412308662299851252390736288565282203674828605804417239468193993152813258482834348037989679644158757199192887224161976624991767147452220228089570693450451605239431528786360678187536006593144383736507032172880991212483432819514448003254926733007988414312810033114449760148544708593702582483425620571604812417220833900110468240760836839439128318008318119819330475355691755079547988054233058717777227821500456895799417798868674428968535061843998156208490574776738348682217470961442712112201084826404496575129814218481499481681470101744616813913079423745337588744214332074590474978623294181655932964174797434796097156212737181882723261746884899611671708365876973493677319899865268074042152223345479553592286984000640167671223132717067831391733372020565285157473114495093370036116866562037405504586025174305202604312363284360381267109251837896074382268397644264713292414306060126252159917353783011766756996742921651936432426664970337665072807117626016890666194148716779318508781567993617889063063867512702096445920601690577053276642271878812915602226627194535062997205909613645384439814648695462129597462563165232897194367391464044514664411943051592746102867846511215930206280092308240205567713203381077585824095036683586466503873460082917096656165239710786948841018965144441706800603737033899638382027654304598006085202780707924681372870700832017132330190190653886480949991375861149280566444699645236255397771725722361881124491233731431158864891262885866469608428055076692251570072856465192556566260420064876118189273272250189631572196288370771122292921583888381786263204318999619043063146188368136932940179866654972639753971000000726183149881933532917910383033812648551595401756299532230944848776162987798378622704693258209695367062659545978207398151567803207424193796192525508303085421154767956281260705122394003227900547145716308249671398798449199449946710469792999368599062194900683334762333570601424715738164325065162209153943947797273666337750205299867664529233607604292821670045093559952642248292294392642644400572311549899761656352492403704841748157466792421340656114438316103544579986744718086035281352921028965734859379317059891407793564961459803345358649514175068000555860696664294935026707103668991412179161678591360208727558395815119770149416269492167009792355855857508547341566495032086431506548202781826619972300470989801429367974668646264866738418208675056529316409659417252195229454830084748921820323920727698920248030722843946747930491754377216339535175143718546887932580232902502144890726992116007461051089634643490551739314038967499013955576589969932346270892520288197206594224075281531768090473711939644679998898790025817048098779450169609544973676991463431120704825754411765844337304411072398101238114695372192903012506124179656043327818929826859501191902586299051726410515930466253376408250535144617855342829036490859642351566497531815505326190510053198274803993910789410657076580105405443937216163946359395008951778495764786007858897737260384824843643050859521000253817043495771796780872368941026485057809982782483119641735526723722976349736986635593505348779531443212167877818025344766509069356074582393969403831212426780261571367540512395242787858089294878987121555112021681487866631570353973793199962243582771893376619054489923541530240032847580708821652360540168439012892738075920107691506710262273345152175523380120484841312998266350508158721623708650500978700057557372576005104445356817213310695691882805356691132447584483571331645498766826614512813496276573732258826474551200434549704103568367488283121796016919929251726128918931906811551348868601974954419832146483212509122151130884744854641022947461222209768259246775657948179408507613946002182843110118444644286989151735317698890653178818407215754526898792712776035193181060584511360370733565160632247671264270266203419775157061323529175392869577876646738428261206282756450098456575781155565530192293595976642128770079715338734014335546815317340057441173294047679615298570661093729101649641152474655870960029789642715905892871611644793759758219683433451429842068358167324610684171308391545055274104837700108597416099596677501267705132516441150413682170588816114893136321406837720643914811611759391732063575879348300317229309648835802606143879821698895817012479092298596279433379159225151976219864715749883097003004789394374933366914888756980621045097525818030361607802903687491517469311505609657835920964721067716592134994985844611394501085974287854889410427372427667552171485052143005660187357914069330922155150112282867171949391354552985090808879729661148629929994286138643406777687363176434649184544765508960407714069109112810664342546274496068357733173469633801918889883390058784031800146514838480853162555878275463986726880662486755017910958994207506468037505205774872216300913102293301621692915108515207614891236513574405513514390414783544479213053330687301258468494400837296262770074654014936644407829316690956340370138198902947761829791994784056980517621670552647762421558189436636461558284341257046594981535886060230542812184452889764043544359759195322982641823433233142092044057355308512979883141184181592513381626652278546884129935635070901098180269728361583472218129719082914720083306408120567832082711076678244355019768830747623434702414636546804905503944656032985040396585220667716464077370804464310054957393663338187381346057451180063057804626833753638527534523737188672725082563223702357029613425231669961637456370783901767932118665555115868489388381307456571448272853895296624836218499657650013675137964037792601875241416052167485501356438667310353520593617691058644441124060020497643288438440571873726529429819184315081839461512567545907298134833499143122969832432116160574658791662160764984788490284054379655955342413034858877772890047854371073204309786089483290528575913637737310882491583664740415451583287052831447157106132321432194277945398950105533223761972002668562763044055985207970994403052723983055746627218413357205899517139013968867229280409791781094000237862242886851744219672166326196559766305948876701386034682886043389349210254062982582856835426034361212004468805127281528047396541282650030977119893070787413525281436768603974411157304823604691933461154597521694578281846310908344414657694975344400536113824087428321450975776664784283804135978936749481133652841128514381996431308336075264096004063355431755330307388685953506322020619241945901169170953824791490898928403466359076833881895608038122190266576717499825251743187873989505686586559811775870350333071367137476885011494074010311360717381939469539046811398201005988538152518479542353255386753187591310997071352942253528706035778718187785781719556312707550587413569825109805397305336041855596627432927415025563146777935516007314080029527198857448344347714835893536615205707396410697658628134169319303901087105583027065172430765837420771185358851510270217835309836258204426423122669375988799304692044153529661948897038022447564958488687410594546050805203714200839300653262152424390444402433337773363110786140141800434554414001024080044773773235940197921245449884187984901847589831426645785478379270530059015890799967887966963908036150237755072327756093266704489441841921041045691223242714661414247474087270031921464202281474975908348542760528201449677397178009803315914514765040994160412823709041278842687503743450203078595737814375318606572533220656800791181489526648159870837946386330725899771424787718796121401110570677768415867718398016424338319779302885167166321443186181583639108287523049667617456431455310170559972279276889984302785438428800325045869536541202382033016954113330076860891732950107930864432120454622671102993280978245084189082971276763054937771174560905219899134751637994353834302912647110137448785425145964323542492659274560482674839312024040033245207516865771271321704419338363193216350998453674875240561761124557073603382178796759697679752112055055058013607249797200330173882534779471887899193628428110369527214200088178275851129388399913330401280226352548486381248308518001385982803047435935828406506723839884181349269476164242364352835462181050416675818116731856720271257355943299735495602394008818789793049334792323123306790342468792619666884196922175350566946223394813777037141695500985911847037181378172368663145927501710051020843527846243670381817965842064930592107987222665460274202551675825298453982437972372427788016785346190911426722976784402772834332753927313254793916267716309273716573867380352595290618607652334854179077299366439919323309130068932675433692937246857805095628662811252770913481500368696424162299933431997532625897338985316104316907340379834703199921603024798638604813691216152343402510643170261943919761329232008236742627355203461414778181708312923545042668837763062227043447411033529393018491438118394488512844326972048868272218901728669878212813855975921470047596782421287746996435691481871617370473536347442533917573153974016080157227192689060519781911240206965018041468179427666085400961829251666930533082283551484997878781134205355873689609726029279524836808138966005003368056242497195750406175268702821350712793733238875895193251801689672217193376398447553493154536805305606907487578106045998628499881269298014374345728313501032664379280842722259563456255306695383877750714537445654681474942292101442120996538348444778590937487849979561203704411090410766002746527461673991882829409126902989959292166675827491491822378614378154383803246278465612090129146032967335384481929783364010478240222271282544681708316433776670242045586153276490134766222846511912314834950340299254455703377663960797382485724757480056589249329811680938299650807771481517247533615445128409473800043348684546662151439019450196994381368003385185536764239969167477249541861589757146128901523287093715007023753722674288954731613986618725900082830057837265184969101434797207097722597577409369891951735504956032443159089846782813331439025915660428564393338758373885295131434453797944704508911944349223107992790776822685513714853115104301553450578030320605422559964317322865818120960789019555513320122494225686547427399810407794392137780901116212713241533516209369202317873555487146847757371203906245947301395062803108170362739936529101279401214026031020726056043439529756885747420692644281418400006038552499760103414292492677375816659162912288440543978879174855184848585331766599393203124802036772263369222292700820683508547789614440711618695134308808021037894703003056294461451311295411952415311338342541156911052557580858303872871089913843262581664452220483390180681693764809479779847689978095100702656087101621822100753298488928305742993883585723308705059425532634049530166330098573853578258418093478773828536995875952330760239138871757438340839892173678441337365524338837700366695734915350214393701374719050077179494574279274081721492093229913525368090278316359616705833116939229287899139481159168455767251411662868196818611399352443250669283375465870588810612618524820656565446899045489079369603358680058298866107644997581026393320992447471800158047861155604070689625119142962393479959036092145756726134629477232839870528306741291186376858287010859910992592975306535347769295844799616297062168520421731806050356678136415455076586930657286700186740911966326428522423353798678085948913334017759049945042120191045492747364599125371051250045829322587452652887112382291504559233855784640385448592758195766036502667367773748643848802136840343377530675886994128745565234239568899074932765204443914452362992209408389010910017276970377445546953981012573827571838707825092023618263176273024114722549984992769768654722307128323021185712409419782200060356588596082859253447876716865802802668287411387881895357564374817383996042777541565046541314868573155621625898929886132824082146580351256050043549142354007295751634006633144244055196502030943017511081619492788358704884049517904490327071814956249852313291739833287871049647218045718042783416024808872226086382154791290817417048152702379423072791346967398972908214486011253955140113752120974400246178702010542252875001446016185657176212984491075586084023061891845739728984077958547173354573640535429285238193557604774340594480830946070062756468420445908134458205921818864315259789228569581472545353694937990911503912718927757999581954765651026370717752583781243779511265794431081125245183137567417271332214436484786216441165671100392144423014221680795346133904217282371018413899378499482708197612871212797523019967381570590091306324767440507845705747496533340912889374000865586377193608754277461564521916818411722278436791127601902668834718712461107464110353292477116267814848051097390016550188608671201991418527046823831371751060432453854916681438997304949326229534489986300295684034952184716872188284426628923911282583011262139902746303555623526428326109681086831418924855834392099364489187252838634361058767193721099373860189820482139294906199217131190366623171117627785438430241065068302690663807365927700042700645355628589251174525845003519391270998797084276459605363209138395037677149168968230499323937546302101542936324445583584631088220828718116362716992605812677214638392918223365830909218460579942294691570839959358076019128097518841359360958519456477748888048934029783036036460371084656722569460421179395045281950892935818014200544380260169349010562106836790734193641561973895164295885523308823590497570653804578639476981489747998998130225590181430371918783092279973819255431191784151596929189834161659157501199011283997989343967391772770872758709076041881884206820183522447784730182208760021789192245738301945819452681661584617506742540832285916888744701238912648638863481939560651472632024127030530852583800721179324230877441931015641491644688199332291247902725714801921982262100493917072350045769325715193940103350737221988925772867884851074471451528686191041223778424637765335816318591334468218076563486614079536921465643846654044531157594885547056248726773154008975636805092087281692890987012964122819660327364716161791677949275992592063497768326195737415828454279605904648248452175399936205605934732758299226455776796951170856407643552547459480489225616042176094426760335454173526740498479679414025062343621515081995568503648205117042344982714557669195096763402436754943305372909766447421027807909824959058981592260263697911461135603025801228473292082194235553354911468596739795584178527671004316999344280068629381366466859035857816421517078748702811107681924273356417454961618494263333419973400364969348814203443951314253714093344287426290758112073910989973499536251396672309607974190538652847605750292938024076375073445571846466660346703376731638209761334567069919885555402678146178348195224628262358277857605296156729801006621544766123191960481328187041096431487606798407473904316528808941487741455298903440594644327598892930842153668116279043061866697363854376104307785049524747891141637397485097833633800866152379953008473876309370278905728437284577081837203898463770695515750833934858802853409898117350670353046868897808305026592482391163860124653607397314050756961484060241096255287975505015118045827240979319481409793450645848663153515721823661588075168364228552697355958631761065003080480137684454577496589881541826493159933836324733721009275019730109776931448309889582904640867541521234447357945283030869834642180920933041863531673428386689631915554089254526995868091437673412136603680767038494407538962488348345334721482609206116882807594025502501195951576305096506363205441069980825610686387060128365436635215396917893756768440856217055152283973269009325627536230486176987160119635254262745017565312628707726387934993569059719133654389314788790884696289847609515200013686435936145013304615707768552527219925916254971461478084296759517969050137710376388254808213073727969683607674617932700957393923678779144170650869947191796570846759130832473229796066917657867093736096914958664718766437361549669227732872936535610264966663468623396554872823127104764057857877551621394222901308128530172709453614593282933100540505910598737046697219094430603011308411460977268021933547440472387468465238379789569273534103511719777434909145585441669161358130515256555759450464906439935921643902988952838414744213526731252803396580800574936771037823930053891864320767570286641039624248763732257587366456049135168002566181468249605900364595645160452113913205153999543053871793137447716139655628054659722879230664495904867547956144380892919573607954683278949037158740762467473674028548848045394879336642034940264463299990636703900611997153039714609044700676121254276416570614022313507695900177680526061781298834825180804438436705824502387901033191060363879945009700365085178724321933268042129828676510145260906515648673941135447395836383623385002265011715648467465062124305949858868121318491463545748234287223348902297052067735714740528301854112675439335144459977178173206275658877842883968089858912442006301754544982319982032249289448507160995081792988571557429487046190278171672233577675369703762101967992262758610383551406491611217557698382453351288916412981203053940161454743976421096016892687788829555759119701058065180189973572894165282979025448220557611614697306828382722197806896101172258289614068419501472830917143321164257126281153239347455122977472371091041489510643316583942248777794474078218277942264753892297229708244993688847969489943948764203339301902262784530274928286347155278262465025456823671263740390960301828387383428288109593574168789844521101528945737561079122828146910735526337397247491773344982332215589203456220969060697950915527073620098089310574430742162414033770230956131813651394817601008278918766807883127726586880736524087614346413183450586565631897308325782416080783883081103852207746648263892373622793260838804067094956444436802281741516281014953435367843912995967713142964000986285172835777313763332042462726061747089005803253096072365031707941209892690899194080350994869058895712926273114219896539301692187813260801420422783361369471843735408049570065502719924397855252727340519929908878913400270254289532659702468481827382940386351504357557855667764231522842867676817104904434772367962553322571761226710408438837120965244874168285720366909941742407953197478521449807201285590509086107596347722677804139847815243468766506988413561200572965944289693877307407268874328294340526329708804770689152753724374117316323830643321404377707953027146812392000509292578378910289520891411910349517162007558442420307385417086116738409667993321378938638972718703730220541398174903294139894523564385188605386639380950561899803767324157862816993644151151560261390513079456530509756941633358443225181640273483196345513889303260469581594532650838554488496782872429549049038091738249117689820262800071446522041096205083937622021947414093374684167663001041794112293924858329335578151737459327890145921179927417780869613753076821317899567767459093819212294208289966904091436238001111473597437907616657684094499026869008238031285202491665080306312102440272925844948582161727032264662525387299281641400643185487641994668677661740263007348641081332838057009807537707658362390100133893779133178282288777851763258814485183085020518348396516851188320942884263657900373329458537307283564938811671499195342517952632672206902026869576225814554468034520495730033933608154691866503318716344834828762991186262699191651276234429357526815777126285757363567113639237470414339251520421508346888693721885524105956902460070708040165943448043838182320198774226702767205112271876595121356060480878664774669518850766262868510993333777216065552159234474030316697141017199341745704576033473622688990731732620740949233297005631458897055214551796495959128307193898832022372674406066625606390777302931145732613671603057707899315364015454893769773604118857771848794839722840147050170985126603768929444300028739595663936844241246844596412352541369202665781533316835231417213922966366791985098245825684762082876304908745153397031095241682250629998782793625681366499669652762286047743432261225654323212619352040890486104861707003895984095292570064040233955260032950426085146305395229030073859333059951743390956050516901979644190085817283745104135471248482283574464653741874297442535220823164941894983795467910853061318116155573800171416597754660272755913868733433357643550806505939361175133969911545743964964478055271725974815135389013580403763170016974611489228193888171603904888204610884762831861753367462096393932124823202907555529180491950029729988623857109948069787232138377435745308653095427169872028763626263050716060579462796298054126568077058531795989121582266196413924539449113251992509383949249153668182556246770199227373703785795249959125212785450046070605959317681603699278334696686366985294788135242111934852533251483028461022607411945962912981984435085494047680556100712722459860076500230389073093242490103391432646489201481932295479483948220102000524030683523720852507832813899369513521083769043399957855625579852804084129956672586915658891962984369016011946926394283642173612608276125785078787417865398035712990429989315191661097181882808637426627651188136052633117853426485753835903090954279905458593427663718357269990430943250275012006760775379106206641878096376346370722070614857280969483865940215977585778538634543261341767704417904138327407441134393062009540347247898573349688988595935392501223275229187789789906682542512761631542439974039417700361548016075587501081583415045674065543525006323351685893007330253685458797191060740119659538100312590267795427970822682729425631228435158661522421129163099193458660452650645040181152690993046514880654056655161348847725879645593382622262482261520312959677719676509224196827214500010354837645658224801945581541396242463342370950669045729313895039012053778289257847638615954930562406281644353834825704209515985558248663538726019224232415613760298168301281104689146269004288379819600060226327343865414738179397149842982255551580577576650157195731028643817721898202422650846143960832192206847321565051359340845941842537146333442563999867839140849276061032757911526968319735794203302192874406290009484072285689874919763334211136928827686303215019566640518465278313461391694186009665530958598946870655183566093711173855843583402718348754502630976268178736575439810709083779351721158310332595461179630561331093604622257976124798127985237975818070449098248790301192352136090247137405567500440957947655058891221585166362320860994745598138171113687107108443262961222563829946574777611260620674108189650067133915668995040154558365398197786669213623208354388393757191266663767553410104392103112466458355697545616674382396494086512326044670333664779280588536651000037123763182281472227219252703367926309790460469261832480559210577005436086326392086536694509161447469596290869572172415412336941600129601049376918188705503000535803206541988703912547534654543029028463246987018657792036171756915635548478360251750774385500214591033233937239096587998780313058503430800706095545221817030180132901091642021008806393154824943795046905460117362978081273081160890820085898444536606555984754796943880291004077180562418929787281957806269640659140611369619655512047702446585375179322767025918374098366984557874380512493150402414197654386569966327012317422151869627262826439373828698896131355618079494042609791268037482778110939654890643995790653479421556395924875243026892643556067430779929478133093068627261612203172292309915626352238706974910911406022222608029691817747464308990418345616149368249850293056292331181180391695252478987816965731242713965380029121164138264819160848279817899887252619126538503355574730894836981703778831344975325731017840124622522180614276075673497490403794731031230650694852367350415933271333267918029546914338756462136133687528748455757174470404842456834137428976743573240467561658477547637450893269183510033024799645552553057970257707587155954360798038385243166920663638133639241581173754231613462781005872842707496092157375258086542576786192857370808988592182138986648267866755049817323969954048563381846432351500583205227381403954786069063662415019321352744250987253486072064796131833321752046721434083240911600358620827820590970871949015228864281660379813722778608442890835660567861456122167122732725610082530598260967172126784978264937771814175926386839290040764763429256347904330307498737828557383800382647360085217579119860082791428860983596005597625418941497540764763790910638632251739711314436453040985327927873933243993787781416009965649931585367814447324600102397010427159298844768560093779976963566281637887899272952806356746881802643697928656637647862818441473894153456789320537476268863340976107764855069102149748099274146293985821737273199695765519970013282769398031756872578884198084758378568173559302465460467203238013513547516025740263490355408228948829063886911055831429186173040556636960474027959046774342830295948550956376480590088483258482792037090360633841083627118296424363913997056459301295846294097507041716612831616434518206477362839462770564614837162342030956163526550036383685947266284592629498412690916150883461043260866326637956909426467443484870826886143679799113843838222464322276415884223015439293283717147185614194166925221580713475648581098112869311390211552419060622242477622040903375975778016280324872186172098863630543468636927928809055812531486053555795228620122548580746296613454065050020233000298675694001194436154331096600813458960230023270508528347101304109046955949294633083462762925678401335730357284222956409422059685723247996124454124654827483849014516861414371054178681464338037603226040260520643626429722860840285706024657040139927078656424121962800113567321614415633014758224543330016068118856586092340253713083364589382621720418299103114441518470544714541494046182258018961224062553891686927373517397921256092811698883032925585347266779081740975228405629738226938124458107774688390003589729124901555682632585939362421488035629028728725814276365880985022203391761373892486476278651036743509460975832236665498183297193375384445592956082104654148210190377207654464381908613907168105188506047930124553222798220913764161391305444917211766704240586413926684814167655597837952426697229382921542920914801561977302790933704590391876613095704465603315704531699413767682167129018766625437940593723427210534243005941179809362762736775101255597927477591128345186462287658562593123307362661524565157253823738737893793267771854009491556794109677616235362413373040158184452950982192859607498245337385476491514495640342234687040589881479564644305405926433423408341814658034902926893346553293718927872772969634110714308447577689845360909470295057513062643002784069020183416879202331705910763341277414864387178541709620175384966045214228801653254379145958582687878687097228218220629258589611212310663370101996299849924351644338175983638074434528489310788650006244462069965039794569913536412769940938090659202891926891373891257935803423958498634687610335546987815487433452944888049829246189014627370097557240524176777785608210259711789575150123500544847637861981683421950330184288249134506522458557077767131631036976672612693991578146725840573908959742515458696820739490172241979241206567575295910094511875661851817494100445893137270710058730019555188277735055511371451312412289431630971153176585315974800578452815327436828718974790601682874069866483071165667193370465305912490423463055684493795845791709472767146230870241783212247878901460043275615215189777278597320379302890477423656940950184627367486064022599472504371168340529906631842692265243518052377523515394107820987464266767856950449844543102197627551242254315915355539396898043196954205317684750925596973482590884491384234581670053294287675443197043260911730208593535668642693408065029545760275269178955612553705976918592357757815035916127182811260231870676229873237807612303137895520471405048323743266236335791693863599769242784292795006072448947835413490032112170628441666728959721354136743055642836638768221771533578211776758351169709571653173589926285211722798001307974529613162447969289410895180384798644189963426519339847405871916624209634254973499567212514883262929743851264348854778816415147916523003914549113475705024087966545447730749210766189427840911096385825012491096873477648546238875413313398854366528028873879446103266518316768576995696171334803065770225496289850456829708820075459514283339891101140982182720386404979057065162825812579039980278809040432034578910965405274374418990655814421939186774295513216234022858942155264298687996049855092087363423901602231175592774678853871961042222820482095925239020456092625694564823484952897173465390491009685023641317583752283512228796109690549254812797312810668095982403057680650804154321598830614039200158798185783746176277955530276373601946558350378708931879134864103875365066651534182597263902285895774220648480960602832475409922962286044678392199521706559083507522643187990579536757170789072446241026420359777097328013051778631704057125131186067051179130893664772504409832291871978659662122407844334709041265991496576402733867256095490558407071299229798427991422582945655887294957375821875998116915986014397162711158506320412376577259892826569143564404969941191751656898613329884648725138659970462872657697443418815008285514527428225422779772160397760496579610472749002147920275148952136163451549376349856442904869142898705318576962086424188047406201730350121087524312450472427774064554761980206743445855089375808881590189798299052615839017802498655581606922303855512315972639466890927962743049691341458284510767447481138743505944911637120810486647952156389698778155780375085293247186562650789948355169093710499412980780234878018689485750833846294150362925997341777550815934653598755839445639984891918278665335802492049843866823768318853088963107018217243679698360546643864427359686299730221894277079688803715435036886623408409324785970633528596289337438318169176698094532033965493346030027698328041269823046166729701283414104638411643006221149166099926807595010311206298096610318747016381809032312492179297637149885972066910042958112264961764495872686702120042060518662878796910241123001228578940960620066633078083631196006075398262687914249387418979490954094821533624153005184990192864559296154834515471643940984298603949581928408751152776156259350287806060280435669716330325461464144939085440576892182520371585817469734824152700353127086653753742637364204910303311621586432011491381105842225847510434240956692520436931560525562151230105210416018526664547025866696145649639280353946433318659673841338984437779006943820662533803767000552233360855387944046857001189509038539968133910658728882052432297553588490196640268370550172488728815107807791088184825983996803178180430983985139054761306116208526954616696136235693769445292692656659091795483638889398333541229390788823857403445840972135117050815976145970226461550630601573038569654800294106971246427452484196296182836498175637867787929194910582670983359463600767833154763502577815602719177344510807668839300588277042728114870752819903559808010710131045741904601805166558199399328513233159271443429156429566326068058619965624889744126942000054410764661687630443174174335615127936436348952817124658752790391931563715309065357432505384768708704369210290671239384821600773808841411297709325723919404550133957306362603606904729975028012847257575001617808660133921474332235781871331611940339874963499081840961156053583587776707811690476251651092165488769415426621681189299902943248680752047788868719724606106796333857530447426853081126031312912643737232302365150511436550153831540338293279807895374974957513840271191595309403382489988461267723958256387492322726809923828782595378668612391829011034081533000174310475082701217236849919515801204247140016498294332549716818118089215695389848431579511033254336737232777710169114026219571482020374925277004264212343346390845552620776247569025713200442548186762215328253794276090480549505369860202750384163143296832908517532269208160146018863338345982177854925597491060143981350489409122849162121888738957527777426399288813412824417264753060803151232138270543864307751771356859012826983119090779687887077703926727104732154196204391581447561491268093150629590193042805175472278196653307818544986224753832140716423440917955222065352342360697983569463515408122156173664962794672122874118264057076907454268498304094122901178741720420090231088155069836738119062717781548486836570164523003087241140506691339552627214140450316611832051459592298665634767662899288173759022904610135599371481387409511520255543211431332145292432728459903156225333139569371617234463712825209915246209657562521732805102130773773510154382886006812037429891551251751094429026459678284348352860464508225282345817862355342432961712057914926979288038952510527806552184420129480945093135223717284260449692549456966743873159234320844725597915074443181427670234400540575040000303804267948281169089545150061171046729187822447299652708417623509787865206627961473739863352330120000075932489682682121613732813453209721443404723036947366143742958033117494528960688542038461166737330480756826289783365073743371969793913710880465643216753137230032912318716050007475290715748746324849110191994344839425436669539647885043545149705967042372492600265550561226570683695366187392845363446826453239299659532456394419886197978891074976182852403004753600166965848738886201507820861581811320326114679724152863898529287647722449173361696507574622318349701877304310553521882715189060592478507680477605442696240514840657233381766234880940398040958756469440901484148949830253550218316077797613599382461749421153112540177818094684720642427018641695905108105829776710225669368257051097246078765056582537616458715934549920177173111432711956685355223008851632061443247110819409497447049011366303431652127900481712604094368526095639844816466901963185775161134683619327605488577832390073542923554550528864829519609729372881551298405836193835835203813067218878393102268309207439129998520554695747128491545670445115345385888799504954984010186086849349459567418240272621444718370951550800397207482707166789553172675620489084110012326323020849817998489783046817307493872673851915161046550023648105591278116670576616947421118195880654550859554785593956815946957699087166103335721953018918082170078078273505064542887532301354759049596993784031996382062791719488073143581930839030923827492152668796301846193224853393495165002788158385178356868114203677702583793599278660047837691775869736107445015915478481133243356703710754590070020228846694426047553087977937575861996835828622255175199136959391056471106767912172010930829555590095572834071169812265219360550638774912845658688389744533216367888120983227078029628298230507579518913848193435920045309260640985807326460233722710223701660143919978405380398750928674346069525637329672136401686052535488569797496870576678657365882314511527013239196583366272385165051107596743791416675266429872523213220609162617405151535088651010711134749504294146890506436105292275151389233964482954484801275542676714817662074287800144959255501924687159955315894537721395379473084411126888876986515164615473776258982304843536977675766999437865719893028462311986311268176804334797980183380494255702390888083216505232763538680883321405309417478258887941294388097984217931934054101947110061963255416084907494326154159272679451787373632442227431663451871448128578313762806033804342208113805742392771868469173501009900110100041722839022704742873227325168294251690926688287719005429546587675080055600576080439394676944543597319844205265085563171863211702007426921909465520402517934183841396293542869626579480970273741684682594934141262041573733021245936236804291644074407035917472913737438601415122933162059120483049935987807648146234355753116175665545268933438961652131315953296772897566908199689918983676795237767781581856593631117154342239082237978695971699933331963596713423198706813510439576771383049933196699104644315415210463961717495795445751939080396515279868481487310690419365112754455797074649529014561610173052055460723887352961650100256204451301604717019991767481541846193545625208792801726297300428095947981038116237953282731544707952683465319824027779941279673854815032719512935803175170368396717129573950426524721469795653768608841916568510268232423619214460409238750687799208361137000800982749973341449692657079045136154379225222464922028086844846791324669199541230625091852600076430228862816638003881913135516756276778980958713756333908629265216616474671937225912301149853657076023833570899052343033106249830761395654469882753474628932461629088288859658666064798953177407831636431266931439908826442573061775369909801909949141094880503512758531594334074475015735841155011452131811546505122093145868984968419688062832316095824054697636821897062555542328838236429273840970080008422962556339836468461180200988705149797952664412465500419424244468364697216776076292923266251972852396762977765656105252762432008141618587343854565680839585710687986872202480094226710354295264285593003643669215800493348707704449991858329659085970150972499873765788174781745747869127222519834988149685499446322506312716673101026948889291207226537353333094210259731589940100925244394541370164846100794229199939049426096238029846183778539548898103543217909709091572192904507472132118504280004594571197711455447752271558312831669964004524741711252781441416418855651531321420940193358263110969876303726995246725990500346567689689558810855555493691250504493634158296677590519720039581600265078243924213578860337286747196914410720025064318041105514099620916176396835075459651570803766757880558210040198747280450757406206976617456657625702047282550287677457637287904249346706399431219626697255112187435746743757601309609373786943594000327865718021912551523525926667184233151735189844769968189748185978158681994527121197230741847792817534272350094865096492376255066972079612738050760347300630631200208626223896463644943008672503459285894147864207485419482577119957491675923440098792922069300699888357830201275378124693490769525273439210163225969669253632254538534797831413559079809727502416886760176172978028035208868162429828355991768871597960414117004811895030361338642979271687007220905365762370024388961061659732864245653823476702424800343240599483045755181485749151381099133771715482900753500855106511851084896004474023001191645701166030178384516265690324284571743108872124551683962376316177451922243315877877502046344597203814324699270380706939157428718350287827774429763655369586690934411306875219074761275872367851054367296166583948027647153688447254595617165100796504315793201853513492012699140464010416079352908486237278145092123299318143723351996077888437842107726172318439666317467263453092640874193641645685741455093718871023986597655159675775149516617600155348407648662637808687852208023993712819200568892437897314660558047347295138185278627112262531839327730485439648669951532038259128079962780660131734662624415996702544498966243830785745371474758481923300131371663190710976068274520552824166315227430102971213352860810557955375369768299915530455867140849744210307861319945251676664678519990103529183026562121641620065573748436915901686204315338604893038370388007113377365407008638774773997760070384016793363340415852816553512138148497020838987407515952007224105620199575249467215244423487923500081926893113472787645714776484958600342528978031006414108008596034556123995609983177712718322274334774737581223661660374788843815844670375241827579857683268856674254655262382470949390324264042795692212781003932951471549767257090103163510245193953589455484689797453605815932407568810049187872916579021296182220858866212090492202522074444983178089927656717309401729463191237944723049501564825136631347632198333928909849274915247953148954542244307543947673114128436199240207886528693853405064066784535411087266818870195821375781423665984177829263236585647598935166384445414686889952388802331589925780787434509763091832706010725119197251255140453257127834563531094400656809165116774792325887355491519578742993990649815844088915868548605827763994078256852110402943819605760324561432519852196476314419153416527041325571842340058108900648671100420357606094207927854884068422481599962627360089905897493824514123314121604872872234750471335498929860314074331620803084427800525703881761690431956173793724079523011413542221888429195720594759170786163983023061944616657205775698321423021782442208709463873736362678505251904694769906849423473443840059799851716211268433955675011916142074614291864478964717522598408650761794610204572786737750624902147312635502090113779361561097177475943676843564871709062600771099760142488674507007396348428912457586645872514774526893686839546248260995524612680444509691846003230741260835646973310595916484371284406137439020457100951995946929089685628650573696069349846884423235250641815011375864951531786059572694877287591089379092249746015422228997782150218658831145279995155117526403272188225082492689216582591159968739162575181110276092721429899894735013733618081769423432909834263553135007812061906074373645411874296990865684758998654932836700808881582569838826966155560202888133292463707174415279000213022268591683774112060930736137067652206187002409033723751838543520262339295891693870274684705887640720232301800266540683610469614031478082508936265452939531926986961542383920600711232805756594179719140217577693654848384351981555274371035754628234874092862578952350067511373586937481141925252222556901199711549876793273698895001098553399624704150828644363039425446629094589322128233113912425036809281474534355083446794906264045137673919559219126071084126963492371343610977283643799559122616667852354219464278838568651500445038938947984570579818060321353225261220354466364429300110441967279997017479604091311171983504293349811002188951779696984564286559285828126015363008123383805729062645220974570858599786959272698581054052439492189278985016587407769894480460145239147318942491627388888074202900180971565464428677377481243174977242097855732427110998758594546345506781927729202916525587119671266307666417953338047499545692781139479366584656937135016578779557474622752866842366126299329591743087695496117107773681311720309058321022427014441486436192625992855762348518663472031643925492764170233175736890203029588034021752462749336756768574462945988123155581111561501671965768175334160763967341932405503922536619456591052353841321120703188748174584556836379355481633288816310480733020921156215037757574690908013858371475485849614456685378827751966898719540273356983845714260422808632673380183092802561477298003178739140592935163744905298138637898706143937509148236291383498984661068979369807595827120327547594214853078409580328102459855765945670352415982874389494485091957533201192084577236616848264831661389359948423274714631801021396093239423730852305903666918389542806279984975965401309016324583933224120632589010501848442272330781367619684427309252993305579176005774008057220802215328153095986754486738628676336873946000629176260511547682880314362928772076688023921564063294063799632578707707671786751045883029510568107753326715831468122253047609203362101466241561464677195773912777279186281829710808691616555253654400353121198943991395668805265100802552935055037346065934160880600477577655014126227659291363265933242345685651293843246787482263601720620614522864925521255070113599974697495524497406645145831565331172286096401162954365620869269507096674680897617464145683816121873030373429920772393666968820124580606627990323267211201454944039505210323546155836822477953965528451815285281330877133789510233365444662803257625099492731940198418522261736642460924964810390228386613133474972822176744841661367531209794165460127396573751417551825955135539078079415737164207798173285383865995940583062219343389263691826946055894962054183402311067722171210276060495159119423332038571816130872009259688793992477399431850707876061145096881642596491244262390787841724371524225942659976764480473055622882494330364757741554423079950134291763509290424943660075545975065128621814679502439352312456101610396793339133687579195036375093939497084715422028794510489844180117636271820795647916799071044969299055966941282463830299155102737124770742731683716979510634346493935382849021476623963895627842155330300847871265449814420879062811409357291648205328879675103092318252431166659467744680555714122023753763249573641992706446201848944733204017026000941964348412195676249338161560379148818384596263900965760721147756210274415254432296662549553444923416993544295742244449814850542504860592838159665939631598815017036258220345315672381532588828450003526169117049705740132769617464790910210389960926587612207551294288282683667003519252924504098889154489357453811594123351126985836189408826793586607430638649294057692184377361809053938166272299428894626464879571561010921405344772596471926903688773726319144724420442755006301819894401031015941280577955397543300243975106930903839740372900087358920081941098817478124956153819226019330603270082683744444230402250924168074797618154501259123977987352065389813564694601118221524149045782028289859737711060352427829935051704970024204268082767790862158219204982436655745347251852734757136731433489814850833002645978499633744123507017071764848405465825181455559495431948793595216795775816328736169886869793590644992501475757970209057474037501011006893494561724050558466308262433406416675797363495443100828426093326077379391102811188908372905050464057937910593220834571399535974556386072055329282307168518074942728993673083416780838340925642218020420264475406691754909690459889926999266744903457447646742002509053638066966638855804681247182659368063703247801312251422464701115541737324573088831397613773644477230698036295452994938661561497867897189238790292172200559825157616765045048313909773573855019044754479077701878528846042851072060023080203973093813384807357938457178541060524950818921316917052614746445128872687540103549642339747910651198541915977307430965307795086761949783123106593768892248578979164294777604718175769903273025433156281190329135473883545120482201938297254264621090018300233077979032860085019341934429146804121674329150656079145915925448536154423645811246952095714219571851637635519352047832239107520056772982040806034884730036215104687690781798240993855860443524677342813191529853914570964606681444457376395398911416857820395608375431649632736855746662997805144364820322015928391540578153194180656466821615308266742160863676942266904675903756490357047997020702999530126802404201237341904037253050067273235709440831576565850635716779931157274762588755988362369855172874772374970889552775489543774665037013325299845802077804627328493686017298621509783621102564351516083482259398271576522515370285920673379387657427310547582225538941798517835920442008026287791260798446830870888306426704967894602189787929966909118873807226981492503078447017249419920962885443552779544071847182920789668401495471202997083142800135080192402538341136970738991889950261168176386369445480660468374938816235156296002961625782060361853987768844942691887610711865234632223228514218448324385226239087027845368063273578217494239430976973910219736454042029732016014510480321688633881279446629060128658317916552885839413483986135306746814394403466988766432131495292942430681735825821961810522010009762061835420711442791204752523326279393900823761670524091061942781936164404622103880190471069200827726478003214614038467073097306509096597199673501643634580569153463248698822414026864758487883750390794842834156574392832719098526092245372834658605167510196949596864684897152267653906338944961746374385692206054251404112784411162600751221792330990354717999466341367709221248073187942282086103089517913698622688289140862555722908615986421214006758999215354502672894145876684252398217393651976493700557562487500400033710413951186840618667738016802689521585017542685450192352045841314945932360929344296133888099809173133408666533698984681373381882277583033237646658016880982595696203859147199438981621536075241978614483902196001629969569734275521164943479671832259551686668789248134542171555806454752594157147168439206402883779495888809107623066157794991762395175162405940931643345513100563900966201575021326948931754205120116700649249018010372632442766504570019084030330921813344658127458196917569542846528437880330905366026372865078771424529766207808513390045924120821986785598220376570162044576328608619567252009545086202987479455055706070904985994314077000963003129981194665134928979419712294339537212743148173232749142152093089625762657094783010109346062074297595102918787246864201782148605443865815216470917686233866695332084528232066829230202766060558009222934921784662411316652419131893625531840735093309000649195125483109134230132993222697095961085928000882048934723256108006551171841952950791391076334121302262734979237563166305815329039708128826796691163036969346067655479530789097959285151161540024501529103266387862565657794632152897404567960453149995897901814556048162552700615450301107664704059780367775026040829249939311227375320381229065613222436802318065108669825029954142221038687013446647167582254767672040244108926876072017821552103936750393307788712618001727452388821504234878621872477806341849105350637659127101693545520811836223414426337757188840419197350168086655727658898257371319018057934074351781931438148015468930863848180117293779641775337738581853157327571917538391982121625359593571585626585840820268264718002663814863348367329401315758061898640387078560574922125727062964157228444561858346217158611186023516764775098393710723924880580297989611861316699970321357709831460658627064660089582499439103517598479589514694745027435680097981745085661417303808599444231337167220514386778374045745258465545060999911011129760974713654800528636162721155982088792483088353521949643659613844782754537271552749786139550318698353288408357530099235577673274047550964498449436284573205444856622289936571926022651201691450980244410547827921999072807094343348886925922211295195583501774074910448006604378919264499672178538870536875369581364186656617573035238394749431425857934433642643476814151949358988249873636392960023451873463169968704313526176716138302405836010253907338008530753852862747235044138248836990589021903848212047144266752626373281651251658043397756556628938516719697002876528888298560007549527307654911395804428902263945782767743909678212909470316786153196497363705172983170741638702668757008921302469899168918315246094271118897811896475073398847608780821240179156507167677663081191550871045436958403137346112979871905999722838071595099562979608677596551423995639814188732976491958743364151901311802033236143235728747885145258014768251315692810077123865158465375686105297357768035436841856645949956244297001270743971447018874490853755585802561024806445368039677303604578405669346409028860986605413883574543922376799290418475938250084865809133441218303791130623036196584941180410151300687051354858426231142685580105412366945438397156475966034484651207034432655231224747008894708101035753962740774917739172919700134956199044871232079280530234502609604397434882665501964202615508647241143449747158538572459599361461242054611040750127082331994002687183856440066097035648001831684329540958976669575514578221596701700063674025859472267072037655872753177074823382540434691578986114905391433480646401145462155003204906991425869425996158220768364711140465662027824111351589949696427478777734586413247719349364599610124850965508723550307189330297056914018996850988561846229774703487231997944085362236727339570676910771898670021367330019069371236551699927432614548337674967983280353354693180854454920629440029716487688400291346619074883270176419411983376909375844660858942078899260305730038418552667318681106321671884088260230364234828165783794520405818188288587263419798366825857268792188821337173650668495846100904628755135268499575097301818580640985453005296771479894620861351567712914678764899934016846449512836825650333413448797517439304592025937448891056770929556454551262270176120594103648240332182171288359066590262803700597804326131069801842581783664806023426786126567572147628408929994992919223593317152332355513237784459005757912595782842261611228564903915174458844113244606206803119912663827829426084716687425085893879782990603133250519276601889121164698570846431896003120555292441824825530415960583066007699636728717820771033512449106931530136672132241288777575285970096681080998728816215237384337652279888685893840387813026199226886252886609050697716570065002307118396599200192130213156236190656736930047470388183012508075949657016041362326842549271304306647343398510073339204602186907839158359351434307187676577600729255324473411859738694031955060361643071039874678805250652074066417669357311448968320360356542576852027454600133146906781917627377506676771900812222081897112590777689532863087559856100199445133317573258594159523159512887339755695179532995048785880179123519503592937694254004326057833938890385454700128363322227030133808696858315348551244580366920825419481802652143304962516762774681839519951663954999415366493409027609057129506968642088774391112451566950271719327155702083173968256487040031578679029145501665669520588252727336853110380289258714324739019441862881238606172521046924434385729027873971845274561798248387020638681707001361297213952614457636409404811614934828958822449712946223421557696806117003639499191775400850064924047266461086189377493647583925318937226253980340401733947027688401458833778080864758268522732128497416830293142852068570952984031132419833253616108297406145381689081407562692787023533530011924997867801866277075706577494359401266771769612586835517687620097755737094688120256127258057465635748364180642934122690786598674539190822671138347009573488343639275194975712692301793572905569182523983097160924105054043669394256432101489750349584643685389667878043049250690048695943875259144857893679965715266313243715299681167600691547739231278957628600977904217260665530690908210346750062612305813098042985202316348136542697412758727730230556257247553105371585928111442917801828227895459209412442223830819298560468487822830738123696620691904810674303700229574287533693652093009609788256930357408799549894730854491412423928033073721386317717338713560406348963435923035590011881712663081505426477014875511297109091712377489733560534102154044456186006169626642653689220645811314660615710868262692877618710650426055205985327626606103688028743442432394745427755929297743406678746603880981246044251486008767237722844375984166755773875951031663306659251627849285677135311574109046509355191262023875002934850544455279118161143292729277474571970892161662611710683362019778475884440523799514325249557283791593470692031343579697729584321120771949472891316646297945609917860251398592978526239977884602667155643124490264280237201812505373606785716456821462046375123991923190959252948121049242312709127662011221685611928501694991925917013383129252770867042382172604679625813384865033664920951814584002612572218912791587558961356633094143942117261968683739143309633305240859523276918392438681924018657001166142985003032629308275279557736439434533315007188936480703670348606473266870559536965210185907303703938536353450659885674034951523764784850220601795853315155450287051395362082456467919360143192912115748884557938425926434456771563887579686811099988456876037465838476940587452880114149447698539374526806592868000437323429031867656089106735467866347987799500386724390372626347508631363792918061559007306081363256601316399075192800410505142945588865637853064471545907966110319064755144476733753698312666697986149842020690834942785005719924744818058089772545592700101415950453361116877635996025090028406445355987823743213390418987927585994404638007215062863587104992535749741889101380747788453061004066045437478128398523209672406628225487336991821891783553748587319016511462009775524839685563927397285475920257128830438111110178172371985931580218520985485668552504624600121566870551843145045741370877953037167240425531393113544206039326008990142554513576023422950704267607856824816375550606863816560889702387108141827876987702799420362385663004692019899242485271712889864458289747657159442027018015446965905172733153087010856293495336257828837944490001143475077355743891143487580448711012917635188174592263472606406491062020605090454549737695198751468410576839628514076344186761948462228138356937939295765618979029982993621722248156018513328582610933015325473217938020788558653241900492046494352971890510310547942400053304539463259001609489612945356233610868052836600695753920647745901483418895404922972193366246573105733064663166755597796906729865033272639705730187918726285934512483218769524603805789069227284455998099692780619368367517621150351337604749863405218319979551970271247613494093187079461333834908018101854006903214879905842530233622497528958812773047797896114865988253540134813031599495788552866934426279873247158002207393182930800604577082809099105661368672398043749672270598310795889702893328361399264453764692702838310698981109213241692584656958732890138999163266311348206598850794780678243588418241272132152500845506575619570548625959173362358777152111823538116287756560505883399331287355483275144588816652512230643381223401166922901249275876770652991444800484595460592233345312626848166151334215069369672302974999499050568970497348665932942316061536072518401056246673764761137177750169131971121078353757861659238160346708255296773610993754175721061337651408299286740123074453645022520980579543301237437432103598272637850074730071894853781083141301839314326129764861939005298789872124981591892943228010790618325791632442927077133299094997891246537365197490357843815066111178024716570004530271459510259464882659379744990769710013695792041121788408503841301539650000554214422455133396311782039341305382318521966141602874153095772249465949938393597783860674703562278532572671232077868273614654127689103532989374021257007044545445382753821262947618856080531953634850995749916298111994063424959052681247057460309729103365588235219303462943930882318212152796542508435623038061133274772687618252783501968863158838463552798932503650063305346949232883794389382925407463677931732478981335515865186062943381315232929758308075578382430095258788573298387269798001692324153969704338723294334264684436035339141167449361926595156322303313737260620133124772735486376960089279971356148264160422157543828589523823319990846986394712239483273246418825621508976544088137561671819776491127009057024986552784937020785285570335722497232546388097073702591138714534990540574352968546383930180497980054168175844716129333287820118171192090878390085217792919061592822885195150153539694294618119592481334351562062510907042024208615856867642795534378612291463292089321734391254943515499715410885461685452546372237511694640601511168251858288395539218965395469184472927148902324962933286085306140151405911627127230941817506064483833093473333777757938059936135050305494455360712286523357464620441664251210987026088025954366384961511918881586796126953899141762590721461665780907584437671928252483072953860655414936635696636622872810998577943120186601563182879585929715572318928920219961299612741979503659907991189377549857510828240778746742413218827041069098382278233792475204726308719926923707817429098294056994004660310950643929930892315511732900697315054938651105103167393187469436180750459962711915566709903187504230742667536832141993039457329617997178275955406624370794070469980082767412979238996712768980050547842601210350694555486685882802807812725651580608167336363639702142302471388663898274104189820575329819194863713315171312289748633213389435655533483257198681319223679706268212504529718838639553270803935822831595076251205473454552158758184730804747280253523525348828761621819676122293040380750265490977965840070970080209652519768263259587238447021672439283338839269665454614164010214029182312813576890018791329507544056423204710447086595571946672630012218231769032392084842846878818168612491897792351958080772668773493885378855924968461101441649668394674335528025672869720760393597378899161455509004164214870949030652388242932516618092725724435654665436204729003935042868799757871845127468776038788887816772366729589309312495981273839009396765504681636086908884653303365263103483388557001147308277215646865376130432260835245245654567864790850372144125893258378905881630739885622434433589947092852008924722333112886865916376131517355651591402208487489972046955792668687779774098267917804128679147893384220388097792202453690004509145236105574315557859578731791068563170865148204540722565974876235170753156464172026603442593658210353793807041097215327103120033852367850337972406295419365480708757226819688014997454346385037024790936037302455635252553054410357010804997412935714457019137750054222287227114269437698947182367117829501641674737371112902077979549906384512663515242763646898404848696442026599286817654648625691957723798479676647158271425352077755369748508950948780192568436374789015967104356804603179360943634651521568498547395404797692745179525867476316678186017054900000791996535986031249768520893852106172423809699846603264767804362149707774959506549301749601330361810778609335810516446646082706529489577254957522255858595505077845308422825977449171200970428615915605984997734144047310383695173971909055590070925810867324293955251185287718289574998988897614092993914649635260937219686873610791890978951954021361657026978815390586669209026177947219299699791253090279840931513022923931105361766226560986886893642608039954826391908601499847465819030366124856799245857932412970877311934815797378161207949913875260277014464475534255600350137462838866915273985747584275476742379983540793717227963297171512710427469965725184040971804852653563549696590294638106142893607612939774384656150765247989726142529043474390250994029426508273674281133101090406317625925424746615560661370797972002288316853105237804019868527507564490069134498916014675295444114487804941196553706093136721739767522157881181732046416959789864880639341934580276243522624209619988070156870025217141012374315225391366864546870782567196561829124964014338244656300646883712640273021226070013674391613489698692356773245268647822529594912963060179234074852081472238666117417309452348692207014850049241442623421361274888796776932765316441809520137701376262421564889321749934521279099994165490280727896282864081660591314855281992614456184451081875894962377072662967199862733688497172867811061840441223170362795634481047451639687630145174219475562830341359857806348578338368375969305972047288922396465045009895385911405944528548626419132834318878926452141815684869315943975479346412214452748765792388414393641847244768368830101611241459586536056043608576181860601478857607334347766670059577369069672542986690506461093637688448535218164957814585556430028599733387798072897808757145861822834795992534413383862691701629407119942238551508643597546519847157646249642489709949528360648858116200321239975418361306050792071193025448557646429256507584842118260365522512702503317588522894350939431291373317709440105891426694335357413460642857740840903025697001449094809161417581056840581539676725006095595892234549869367638070752780496266120621676673595846330228225825987064631260089681214209230949357384181403733733984042857581883614900038927862181713863155838092501038968050698464057661322763888014645948126382464918611409334715522228561170229016482016209471815536889883706715879286868640375807762306427998603245445709148414634348521671060613683095021549189568970149754902815307993051871936561303921050188739262567660965871411402235708586442443997695170396283933657584177642943859895419245752860656666943192225259439450609924876165502895384276366353979251019736814646065880055401101124922849073737213913952021330994347978069708786448466769857614919669594219247716237536852779641048936488645777732253596760103082548379618988715907054737062469583738495553817612254084096145390162604847659839096746249823201901884004392339376613272598448321863594337720990945258659868883751990772246517826323446987725086518389956693215254908825241790733816012372973186790315418323254543626278278919803919519991102860266768263281703336831917876859090965655930523865955699090304519747857536221939404839062248043565749828399636258548843255248114897465857645275998768221030385531820271136078691636807596954334767226165120099662507988985247425583381191348592005393016478713374427006291380331957486377019743339309872659966900956282530255196265126427491585967860818188408978726618025765157227622670510777567866320416692230011571729638146606690651439490514808726743507738068358514706446330147125340308713161040926415861747720039523992199892057879128693256596497775847305940297900663244185073360142071166853710217859385094002533734980349123766437925813093284032321345940560164940251136664640822542890241932814453229785168750249881218998496293468468757309424491004638328996884524689846001503329438275622081765127918025129734796915453037066124867162331214118435108488329222983843030654802850854508495073185289143696563849704579887195712821924519111753127760578201992058822447708082521059975966419429894851832979903973917022051185728438770376715876954482665403704895860612794895593686906148602377763384969588421831277692543707108146099164309612794728843831743553356674545000492642968558430802337334421510813581208783583983004503350247447474439006186338683256112260021263053810761374340155892308868990348458468837652637398915498668534654104001917262969618675262555761401434397363839925093596265697054735451814954468381491022205804911660359794093832984611998374663799723218835937304231542405448717678237105252011356858925241028427936510210871765008759143846544790914518427953685577220263935817011316672983572238064208869670561651173367534808854862423151270200619685505847854212800788874551618004285085041425098243124753048382039662522692229051260066065917678641065630864550472345479681921726833038789124302078557265088265913548708529498105202293855052904508885145220186799596214357718450678679594373103618378971184630943887860056629770319098836191435482702322240613133209087900760164551240064215358126525084282390426408158824317392728619330600913166784246672223214149922020904818064487331211480089195480619438258241812713040935604829251908510752126105379057073633431386852062679400676524265379958883552922897362428847900939036738643121969117704383850188750788035113094923455171169784846409358784131975767349709169575160357746645261303658156826773421399098833757236674628016362232575972527530011179043116665508393793644435517399539189749483124943552402444548749416654479289310017748283092896232044093355233662765734191569644273671683305022853699272959140881242732767709039191803282342846340927192075365677453495388538787734126730147623598636888737083860583618696196347002413710701096595214880831078590424635090481752233651763325819159857957189802786348857865079873447869834671677366131879098999466442849436716070077522058708688234076903715670258184093062471289835019308832743751677112055983201716566951113926832844632655254946772393972101534864896546446042219580483360785675036410946881744545370760135402018301070293879555759296039696499115149946974298981274468662802955125100990813502763724896286977129270343197345002413515169117782752262935880654862359257564896863220858547707527130044235954516081328883813939859421052621290251596663482314351351108250481020313033274600424519439302427712875432161685482245658841229857842384660765710867451988466359784873546083981080016510066538727716822783742097672070609266114211625927947502665380287723786914605178229087789462405615632228157486627366432501927534114973974216109534478349086037678069035112230441479461761982423622471646578869967398489777268207697358826381692959533849045422039454106389297704924657750595388416244056222687404298054420443894741370293616981465484037719355824254700309271404564431848323973046890357486143768168049841728705619012757197663724855104499220397072957142971576029564316046491876678024817480610330818503802208841830136961845611031160145950194372317008102058907341882813708112394244782436741885136284229262756028119850786125925024288602805566312942768997883928080725992651499813852542066749905355905203127726104004478947902418558635350653177918368067441013941289753725836519070467180273023979342182348118124597497061436869562505169245262559719390167871291022012417310654416096059200748039192633980956166887897884397077853572913031094534921045555454198310808098061636332431150451340747765104930132118701105263445050319656230613653671707394975736456639906543959024938895589481465208678955565686445145287155562615464833890591902760644753092274267994843840341473658533723465718869339207120314726767410564475054405970152190719612279394337723120990405340248079656857189495413838863389004988652564404127591127020885694683309279978180667756966477320690958646149051003003037030651315457651883415924769975794021083187428393421889597906247547681385855688802688250471119885480086389074144848450205270931522426892049628939193585623281375015950771730043550531924007442342625968541106278346582131365709525477828796798921619005857953577404445190251810981767272486362896124771893012716506425187068324488531455155647749203697602306670201472594278227346102324218963554472011360621136956171878491209871191116124023682527005713523443374320104398027431930338969629295842424854941162301198336711320874294543341375776511762820826377792411628144061352645190104886507443575181065366247626644689672433130238459106074626309321561155985495996309575763025892875850609948386111541695000899061840041494726643380493529567184539938574180986854662455622625335295103965376435519977546460448351265717567734306610771038783533284480663417937100742577731639105582092181824250622656698440623266908654201132028655692292920803424414123011956213611814095365222431472357382345462442742169068964105657433878650839469126756820351130129515379295616936683846525013512422071915610771094274978314471815535782861069745605598154942994595651830882624522308285424220683339339926156634556008363427550076806369681552871827863286386140454698343980973606179947848199308479774066924309666276980694160141006241719757269342609102851065965537688583732057975673125824328662132608002409566522774651558239991969071774382202403070873310395443845496773288473427853691744157160637210679873981658777827955093814371975508906634998589739609858970414218566062300824277680306991082500316400435430329903327767656837148680995366907890591269434645817833806904636142792210583124242981823571183690925128789242326588239088995677207318303678115414003714007254519726933567191233041237915401409812264675684917327010974820963788686735626875907287229322139352486945776736987719525735113645058071888551867211477381470025416004110478222618244008185956124027496313630620441700153634893423257912674968322749313221866713272367295060934246604716854867310722172620727522145724636405448089636500716917487529841338250027605941249501658535953350600951261252110039517691606435385281881996258973014068232986146937255424409654745051863435794215941612961911892475624067521946381416118101049709231777600121252587017076910932411399936513592151339255075889167924633165427313929846554955962268687454594934823054738395361901843553950860196997071110271207952617460983980385689498709305253092520733174677324878371288253321902008691330244782246111071384024628537375179834964650566510146605744633130216982858577073708135165743337696628331784602923405370646586212799460252992236671528627999648547612272094475236321976167140395952902551892463330661805292398806728961897028415631893593348012926142471636609368497983921089264383418266978107369771518654161840026762850183680895431392256402467698733378791968372487025240986595556195664861891020806143895238180377405065522020967378319983062902020412001123562912704974406335561610843774603638810570442218956306619174158500597112199181161086470190932507751787332936569298430998629118829462645049582055312948182049122903385250760996101946293049067143478122478233198482213236384380145062583498163069977786719317715861900237210805856003240436300957602756639222029076965351142122455693403313070863168143284281583804178342824160154447703971692583467885149840171230266876689301487740529852930936682500080729665492499565181172980325799724351102548478127835106893667877565037496425170904904071903036346701974821909923951388606233670456068438992169885230387585881561237738256381852927874721821023166421560898859001014094807823100934398972823781697281223386628547709822762007722045898878105414361966006978779920475344038806641912368055483768300380458196214290934842911473442907269516852247811473773228402224605434191890142357379072423305343416812717884109700800037175728889319673276226793157015263989349798679411719887176549779965195559664437564499642445684597725678778989880576409604779858024892271427589762660756821542600733776299232146245741649631432627393860881811341888708516364357749836167465724612390465621402354379135960158211171131908604773639755412011123599241057562707316389865246085576441392179270423390934520541170476145983821377925493751523814291816420320629418869149731550707603598874187878443505669623329030637542235776967663056228664043418110682611869419629301581720486936941692857969912853205473516285893062456698339217218783090138748327227047684407774484994172930679802660760479329175369322587373996118781958867013840670006242863346463478222376064056653739583327575360600930913222833442001461781966616657139602319480349728471909377652053103221582844718901487751921887259385834267447164465515822674870725462019662585742698951786614533785514017415661050189998034232454209514308050621625824210854599424186407779405612385891520998179496717497152542966590371174849743263206586294583768914491534079097191230263500707530274492958226878734547888964322051894933084436652617892144397625298762070686812277214516335238810740658889084922728011610172312947444079332115950233804884048417921302133282046475085733075005604492200607269054705259208597786334641648786049611237292926053071026236676527692718008325793300198847450155142071567653833682387907360219441134925210981359494650935694079177657939217460819739207290173925237900729225724254423462237205688454833063901020638379452203182516299297335905268536296508471580722570063564364671695645803575434719604670680547455073269938829010968638569360530979658417800020225580306141996215619651353979617145497120978566272401417605038943931564656262761150427459342173972825585596457727780632960274107836784915235507070959724869728374424556493276059763447247036751086929348876115651421997593838058051440360627657770534351806900126798248688080771017274797003120312032591538894399429002264690358162634138563937917398798000566942435714356802723886239876023988170403580394212493578935994321668942065278809962223556719033070521428663442149761288941659104833088768208652861037044522909317767926541738282350061629283022779136198967650908693942889862377426333624881489173484774179563776274235089467486708563596534286723519283707115887854806080574086093162702599632057579112966168243114106923777814766718836324494759853829995779264774368472145096499791997811780506517378515323448956851092212318014637885661725262314387715791812094373361030957238527670866918420997496196612573281325620954626310017665485353004047750207417358332339784865636042426585262007320895793913380367021000765998941742287952276596974373782804312175967597320259510378217668541995477264218435790283733572847677955487017827386078740749712591492524705719117242724677684545862193686978045724519122293126086009444482005537586778875235512171989520622279720804568187647904616269206238294588573590904834311840803090134587134383476937442150840819705483401698700480922672391859815544550935589027898726559393655997693800117553385513934505193081769741011248644484186032898360546116386985284591637203526855203659161417898556134749309756734040200143281223309301613883285358475975562751439046747075706938029753065168693583772535766831861590292023564772187770952061244490225877810178637635045715306307276895613922775347250194212973596649626810304765654363851643425318943551795983466370807217723293629846738002799433692645411804590456776852294106916605985700379191796044481128914441851042685746100633577944412639520719540222538777698968318024209484669462558073921618947753369971431937652531656261031185162731343354124161009153076143831682663623386364597607034085512785742663216679674723550989421477818809911518896407906692886578072306304402629367497388873938628639781234561574272709352937380054799911756630290432598220131103935755116126859021883710900875156424362075495799924785193907940657953718553604533431848764871409455644722981486702016537024342277981697737884024087648691644265548939625489972619159146942434611276246316113164403217056230492287669697301233357489693051633029015199407721983653666092702629925050680803696614538879952591308902940114583368556852422031658782582812253193445978597528009689496448014571323474831873183175515706560063236978169175354898187212218341860870803985261685475513675663361941366390853256074565495112029863746242566465371656778812187698399178657953917452614737408418750611202080251267023663096124037104536568791730640693079304482878022029346304628631893379724932354823843091860993910110290285177506752844048651885348661928510395884109284477590070809497890623526305161436424271273127988698977597143595008940214705903113406123662747048287278913261595205023978096551206774757756097072043677860983367870683335183178130347648093217015362615429074378455241634341242260494890591352851568165221660034021558569692563982130298862363242015466721814586658089466273807646925713446986218492478078884156047248745477159040101274446037658357109354906647063868318737877055623326568848580841512317757584411713211256349809316823059097174070340706489472073254231072211974206576137749153318324047791437443048708061537546521843878881677815088471772425439123425284729786859252766095709138753573200520187535058765213878361495818892252478000514350170922927522772575668947147231874486016117798531489102681152870447816249215635243794509330311516651737863877254025377460039546637711496842856959919136485754858079550339098947773295552754446477592847100782540303224738007220838029036733502943133675261510429638397550928648806356224118962704752528067612917945897039209344927368820202835589126441769637111086365615503783492368445232657795001630814200617810178940106586268568061254800913252978901621320545834441133656283288548156394831130383042793564973577204530051062263031726064414861701913503892989438901217411733166003561127713822740017003914182565037235949775568528992152307567930893484417894958006825561417115626018501668947867848389654585238962115876138222376195280219917159864928128448605127768206077661731615352622468508960358032388242802881580557577170127541398417999509322029310493764950334787059923384921914002940727268533513401652241536333163915366050519474681454230450555541542838140734514437139875523133920019090735983536394350983705296398342711719597846546458512251589289558925511993828663807759537198758775935552443747170939443809486844555915525922754833077777014767418155161396872379379489483923197227779755397272409783029074739151164154992780693485467443898461118212988200765577218729529585071850738126632936997106357468449490535364609662077497435491481053098915802342507712164879291009142255383930715620734993884983439164126477820327356932508396888135972982944412259133299706192499341184355379276151934799776437782591368207074172854955726826409100094817963777825338473570533188745161501532528242297521564347241851107701684619605572729265969829377215778586436090731602811686300443514269200151396908296929087702451712002050942427598058807454844908612005840980160454889685414591467548847939357284277300917730171459092654528358074163223377363967536757595106023208246614651494688805608562681097249206771752362061727147840702868989128123081151631584006031215527701592251158201595698591283857703249401713904241835871651647706093595107177733848748955415309698683999384325378827232409110481372140607560899758010361617770838882714268929367645765088648231233255888908940468961864687150275618030691694552994915011745083410112409988376185210396904652229275656002481559911928910744434218259765518241401342947532072738772914681662786956942710205738151431726125223795203363007759017557832903242486392505289096060653813345701973596701291893591797596298634382628670421649051576179280962463012433464621368870633973155800640691947140722323872474040493936591828000603470314495608795939240578798297838151751920907557006507106793036845353063569719416705863510237437518153665168450430279023604959732144198612661054379422962229072635195440597492848999819935163978600927089231905765167869985928465054377561699396324151810475667735002691062183195099939237075567429819259058931276923606446170859544239820531253980198186368197371671159835378465298220283934028187184118733307137738475594018353164470214316918093120858383299063069546093060981992447224715564752197702882146765686028633009026558496705057216907391470928663022926036514107603618553227333202882766378169307534900756131646065185406953317241889003371938015204146495099724939195179050425072086407634210000490397719497216200850520701587225038075255265174579022105896974812116112530506433064885281016742938456049529806095535517123983672318591458039658351439547433120839643337513097458000867848977523993087880518364235381672632880287912255318970575427215823785885743656640720792776601651490294450452068626523986538744305495809167587086515511641774133711556963863877635160017546065741356002964185015735265403577212671967574173304555741331238529762479264749161024524923396969576108279216309677493075655093935567504555238832984492403339752378156946724042610550331033690863543871489275897644493363853654268975052836083592061659071148387648642167485918122509227137039420741424157766209107314730531828384497373989998867970833895533394974063288315090609696971356979863974982467076039232035867613671762406352496964850901175627435291442462101629057207604187486797734876993912482290234901457636395829649834076093927826171407269463107854980785674356697047837857925995369431609344331961380948987797295970160354280759802024255071609897390704242466790574965276279670585062122805728307644980437257521541391599356007211268577548506291323813379270675900461790683936432739648692319567824863111788746726444509623290463686827222341528232702016754099699863411552559152165214218442620040230288695728731824167851022670029874782191492017932289868402800146117694064908632532863878840475132541364098361365430588116500357073208123530435849142471950209661216827724205666806153543357425085200796750261173299248813919195257133562717032395116153300656619226701385799064515398088316447836294522368150545441982525014263758923834209070644710555903257091168715053227614131174805620177055765295080080461875225689312198057091945908953060996874654071458618149354650963659429141977358958400739412627372395408780167866596764148055514844570726540679317132296695750164098600100856938551250211976283460491100740610320937216097915126983117514925236478548913851039085940360271442794052307629760314549224386172725934709825572512885742043359908975565655173982714500110307638436456318789874430608242354775246538420292460169621050335117789696654900510598931294786815960494174829103379446245881104474140230771914759498951251391433455150049790441408993953744881381051455697283893349206992258463030124392574933738923213502918169401777510378865285320782729211478979110373941166551582082247552566813957309652796880068003085202666946269792581683173815197522919535357650846529975879181301239451292841089862610018327117794507334063985593610478823960549838243356629781896574588465315415675926613671721745590182979565730867757577429877647391517622757167399431632997878346623758589550044452399004857763520930196693487184103009217663946944707838445070203639477897358925480082912852338749020378788797356982696880937459270489433438286306685538274346735321698560248508910192843494360834787309290148958231991461575722765051675783560858366713843510796693449123731210644429852372662895024257102874232470171198042293253908456273654252216160447709972096143354637026753021593100990770204438920091361032520474663489538652188023828213103968844839070964686961351083277683997206067159033156515426973092283958919075809493643839487668812126090294716633674458320452269381004622033356274145652193866906637347311010209174989261156132364284364653431420155828134291550335479881214027992524350851439754822655925441011841830014716561340366477938198463778785770505565556208347642136367844881020677803876704779179509902048904476831716744280079145271436523949047208233979874057896463259288257959616134270131731129557530749585875216409279410892056775425964879902257928974040163646920306331908273659766628270401310755692208737331219363839228580456934976735937970606275802066842943437088273067577186184475241501650858706637193302899378402690792901065491861783892611794147377805887862921885049951955699330797665672377894218570371029740930680239557372728948990838609277747016948214253747208596301959328977490026820370919597529504479341516027171755981258403313252570572992636152696741366624083551292644980849279562578188270010504727471052749059040037976236620921783224753535322355906068263413316442909832600282388131186292618031769508372693002816767765725341337351228438483066448676824651075094098431794446783133672564965521630923976857448035577633176773051712506864665237697187402598173792583029164282140579540754979611691898537891727924878344339515455395558661525855120744534398297705492720517219129152625969960600192416290784732764619149325960432981939070707698056527379822241511511292916579677971396989331215646925897210995080169412752955348414781215502906572786996194669334254145622974188905716177740629571017805284051925630322632622977806280659732783097601519664023659922935562588516563915525096110772944295157818191297921710229196885640291987102990869864244614280849103956239775556137785333573148429097336634149345796496293854388415862037456304124627235173409108681093423794378894181171927979002331130869537893781305514842918262370816864846896422907017551835633625702310993499322217071273842956870831908011971124849568538663426153158501054712464472003691447933283710496776761350109573513668155764917702708588354819115618299599213025718861715205379137360212772033314959803927371892512470823095157050820616702705689833322188990878685212690320348899795093249025573432075973999912756670307271688930578899294246611743001830776938756136246865948417193065629098873529529382153371079539372155503455230427340740566107619002098315410558191354291249921447242217467802436449057383892638687574660616432883061394161899878951763419689599608294309343693405205044900960212788824215280975662834720519950701440046443841475665286412912641724940457174225546155736644273886660546984674545388200213958935408878286101484582496120325152923644111493796905916951247225298328176033250141356436248671735953891649896287927578337879480995120680851948586970651149533222509387448533768976353106915746376805075634921500558033463963548170117934622135944767151517211886617430526734121872905166035585721083398130386500874374188084255992675407557412299811712428690840927141489694538509783797857843262243595453663443530570271688608093513508887234705884622633690997104909963271156253213582566135078444828540411470920241844393771188388143854017076926722206481833655604326668723522120101284336917213903733889879964800721558044468933110970814049939105856314610698240420001484427486541130017903935966401089207994088752342464255718805623408998959361510681728757963138841515796972445809063130295048162577519431351982629557535295590478221727672739712281333778588317613370621548115435297038024041152430718208445167683385985205790782337305287034522785045845733181466699894891331235474565209479884256734562635354618948880381907171541386421246859882045673715170800432451355102139583876912604561532399124204805849993720104771705985256903317706587400780666762196567297960576368747273023391550020002998036206240513647324459624405086806695923485962031681871060536737230174176694281448186478098357596425874917441556076125858749357603836075172016988575520678906923317134661488839242562883313512818343950372085489989506229071854284707671522877760369802194253949693517283089509638362282008487088932913886026513571671434265303237110801190009669215754064157833274689665514236159545919996701794265745812266585824783665469300749619039137777986151943942263611178206424498197911299870162030560156500476666434228856335856195745092284999490253762908234523696324419990823967892137117069221680361242563438357769755001224482744202767180617272198878828121403719440338422017077876002150592795901073277702394961759066534376525101706425718610771850837930789714927643612428339541821812334816553180190255117729066096680467460885620224868395479220918992497276485048076050758343353870073471490269495393560317184690217524920008795335016956287062177303613612894378009111350612674754470024943952478793003094427414665802483491362184934231451392504124946124957554619389907032287813468287755406412496687348064772346947347914121687450234523809158684210616488739395167222169110268740781150633390890365417983468507349403969897822872365401160504041807951516205968265381997481121521378426339842132866303063338342832802228214952789981870941435113553888995720675737602472459295848383125698009714911140707498985085746517846610726829459767613961736347756180508085630973580102090301881004602642448734628255093620258536537038062579000485647291437439836872719619493479293939540610641614950801311311104553660542722850386722294948749190076911264024714965266575821931339217798389660818122419390762348497164003983108633655543565729277825377708814268570042150930382459346628877286776329761729025499991726721951802980845207557162783101185305218349452487793132970126320377625287614620796451778710864642082473837405415549534998031023479817962034332464369653799209986153530753146603693792075992216975874069248346388567702355763516444367499136343692855248469313323951009472524759298384770637814216017401209973052442350485582963807071102083920504329189193753961491734831095599611106788624361350429811178160021394372012899170340803870180177713232062461568913387721263948702928909168663136991959427753605222010943701339851576677146583222948904570237994507576810234278317127463637290149707067725772804097521118575668169738931540642341697009170864398173930259023131350686693487560835159674493029104066071741145790428268699689848582669997854432666887262492892118885224625979982977235108594540387348201064186867242923915521573217120444931672121372021424412922366854115521162968174055071908468478048877474001478932900442188963260842878504240017768050555307016467951431076667768485173893721273278729747188691863678877820678009022664096541579569055888020316164346848799486121605899013222166565944949022428186384297811227886910535910851964439356345156596081946491756509988452563605778126081418194664246194638947351495390631378299606324646374413706719234293552191932989348849514527677373192559134059377614839023574666554934283549123031243612855488864417190858761007556983506192441352570786133611004907969949202060461056417985788077713671997197815016145212921622824697440898829897772820473980249397254431379603414896927895136828291162298518921004905156231050511303901408550208395083203421694092609953726134913602192323431890122858207764839411747998577102648739076323805317216470656724640002173632695594160315911642423041420876117511756647970362127588517888477299140527547395091315139296373857428622224547923872231997653540195785000147373467032030878151321445369309876130512667979834763534381974012122332668815256393922513621168858651243434380552382444666666531553594567463612249396086423632572484889643798065233804198220584744146757850819267241502918920317079409999440061363220615175434615290696616029853284367379123165737871771349353449679372153554984904172608387322338419897840131894608201352798954488543838667330575927878118919436106103496798114953630050218377817781943590620195351812160741783053293635635837142779383500250632121388971936428458648551973405286165748620998362690229678257822553997813083164365377068669277850289313682505191954329854067500594692766884527911696468004428185304280080082140083806843004130016342485971224898379703565447583364943713427881774266871775103040406531469738416677613522632030932138289494108047309606613961332333899571195022840323523855835866975144459574930824462055327234855416141972543855360295556931291598016273256444110724128412598510426305899828739250677243065009186585631171157474495569708398296406009250889904899834462264008632658105264507064725295738048469799767683632836208564273529695518718044029334352718552078364908560063731844730698186204514843530063220898892925650219480811131956170599504637459299349418979968307378788276009387266111643859865662709394483108238739620843010006977171819791949000569673369935278487249141141249504450036118813989324057629690101857470942100562353138951429538175095275058752033435784832761776703081308338432780687906818414535559604381656091175875079724821273476827914445591606333861372136478511361526728583077257044358809618165889940329079540852928761619765398333272176631666253959409186870259025165966088527139361158187514246024996279127265708307246158640227936149906293873002988544370499782660392817864779760793488428496774536420000138421648995417331142289937650757948724355721972590533860870451762008644324964586574269508052603550550154067818523658099003909151450910283903004162900832779650095889689010936956358940273899614150800616313437556102562603788063934183758404051728206071388287786458611480136501226735985649060045503163030883787004291455324303475607113926794974916832182838498145473484559130900231445842478910636260645704658443778565618014642670666182713001319204827764381761990713603880727002348813433209697998648864212836524051993430999638571797947688297521119293958697531931086608734229570244911797076906597474923566951063671231341765523976021942270240586201655366114084054301678068587437361383608525169680126384049968027975612215969018045149738264599944652146742223369452385846996014278068797375063947770959771848765985646164985539968606654029567236566673377592151292709744124592189175842850802236852905500741487586186191918910376445522702670268115462688363340904233975317518304335504556365785296482120314884436326925720962229770961518148020970609499877285466152523564985098808783660599766438137181500629540794739403474648513134436409541694041337091508122214635448567587753434192457635346861119283959295974835182355170893317740322160013095084120222345254009178507932484232912721972192134428902030116967195403578960655876191257467051554335578820698093362439875402627105445629738806185956273029066053716668364829989235134910314779541033045023173858245896148666318291848955748318280558327131322876981355179600830522421099996284753627560820366975027191503510724924688193332134734387897607290051062410902528479693865276867916574593665448747797550994914238615216405796765770435008751213090276324435832786383930770373789963636610074527917876602774872936161086688421894369245189746788033363742187576738930147312249318150805757059204264971511084902323148808007909268999412722633109561874543007088955774771073911224708417878189981045336147934517732179918545438238628271002923694583180488193270256597215430606747545860860081024065617063791532453645481503524064363479873986722112152844576152214516449448178692154184039422253236416311226275353203338028081755153420940976263733286396876540737354415449949929343984997525971505020114469889713231748024770382635218048303050023890977475244291534349537755804810981204207705502406606807875360170338071887288536615702602160286538415442605492146705196921279689196904773083542304258001123530947147650672880061674180051292022377745663967431685349671766374335898534825310093563801066905915721083771574406325110760935890376866871320552097934684024640804193607495365452806542081766447114072301986802600595909445086760538893722542715322364430004109006148787606185426803625632891614008331585537001531916035757738415432968995740816502353949228765416865160616119668262532015114205723358969705757442413739340011345801344668546805064430817952445439611934636195431501498189182169772540724347027193427564822341249321823807698938573524809265769231572892275782619719647539744890712854723723496940847926411589529657484816386245414971809299546747526069864232783441481062933187546438191059420168941905226589079224961042894997668366191117156877571322949669505345208186048305678824628796903342544586738998705426997575936260205335879517167648594148305083553500787738515558051862723175245337839202537692186179914180946769114538106514559947626355682196060696116736469384978080925481950070148802691302774222876858036539263965599982697711555791978149089684403690455961406773621150558817509441000835603099297438519197717158456711534668153680578711030457277883863339735187476035660378143535522937244602337249656632289457831486658887318989068619532305304083391771080205355433355849164828399239487657037173543668167294235496489349745626687937026284230869612906776845042776579512780869491823194894562844376211870511287471688091764322848657461713004090313569434378551950504885273729058268203326965274384974348421041747724767646262907133753223439401676125196323782665338428945098593572951257717026953647567125028635674103417903907382853807722287818642437848845323478727372246785795218490737193340679762536117814760527070435557794549468660133206384836313351032895148887192227647499538116159788619637251429017256446718250873379868938052215633824199438922336380818125342465643260084906799650889035312342585068116580884489466165150318088770496728249417004345997540661056353235445010665835841453392135645764190431778706464742930322327505461778513431962729214481003785511277457481559371976848692557040264239804554486184531082585422286417853770669933180044980764158941554092920707210774318408924355108143733427828535338934616597610480912764264480139178509485443170737143549417352852170987184841313316588114626661259900608080020481466216391011157967869978410184550034200488550726644670719896243691343039140859735645167458246404779002729926532394001144830429326374799655375227404155586036700364811750044609316084582365059672562210263935448254753226960284106502961281182120310370328089984272612262060728382330601827981037172661264837211577918920872600161006561242632580647817871353939093262930096165589146156660902569946322229883967295052110399429795716183499523796973362853559315205176856169750709414472095603581078179346815370929276037583816096774597630679728024503565995007480127210423444668601700382906482178470445570727487419054556019321856235991776225522790061567851241761732521726976339306628418448497848561844866159927968592932153413230011829023638060640230007092171704942523458128767118134538199204063289952847440232635418799985971221864768281150798931904549128469505794369819683096034088065696799939796069364359866092005852667142281329511377509036191135908912696683666142741443395371132461045563951570375761517367905040140540416279033030683000827904871312086727935296890351140720672778176559541458511883747708429733811578049446750094506737704638313810524096369257295702371309104745727856210415644628974461420025560375020722456453510720026142979184175173235027182217030590184837978135434269353692657004789799630197646321774444359091596844824114984836064613887271764211313661725891250707262557226093713637371390148326186482425266891409277458364135302051809409669194951556768144864506207964174841678400064853160030189431491359035695152714828104468209272575269058739273735911512057877232233601246311018794272555633008223386172982302461169585318527976763703261208066669397215343174821737117501581606563600171734015060640047340668478809276154272708456590064479690860777559276861751394186770104475360192810323544698730733704900256298190711834027293281130108664098903621536781613767809964915545817183837927922971161805680683927426344845978916814152017766109125904452891229223846566742762091840245435589465046018878689696751283974626724037671297013752938905450755449834130574749050834761054777182140985986970505605135637149193990016391829136490162403060374187615931886142012399592631095671459847868169595779881262529511655302344870404100355824858429140430176222864394514718663629062673168672634081213073018803198574763970456401951857738353749536430178114453985050051522729154602976956359090430474224864371822529973017732133239559395199157137785382702094570200775202564773839215918458590086784587019136001879446057015229239087494207615588835293890741620169970271341429565367958355448851461999244201561367910340637660123750523597320919598506757126998542680010662359106146192218841575830065911628760155828284636685508778916681257570081088795250434300613062913260564246187203719331235417311966731227692223262769341002616294886332363879541215519708323644960336744619468891715927956582539531851435323034994719528104618571417302891459022415927962434493816674958215607845450720909065931224498114446934978952221943686067314978373331658658943485080593227825919872415880369715519563561817841055557829284297233294215221478184301073967189398581790502015923519712900927489360851454286830122045013116273994422659362965956243014907395843298039630721469497518993860025028206485519594443238118559924605145195403371320103744316531099633285805178418313524233336697935560641923582030484395772104605165339247942000155879727242704813322368144152051623170354945382175394485646492438413866631451671679841058571346675444255702021096701195068043356593483551189879401112418466099562032084505559898534437613768080644461720216412682267526888540214418725847561838079586794494797436614899707222553848258474588318458798771674474128291081580265427520894631997804492989085532717483983362135365092925549816188780607115896392359740432051909599416921211053825073079343272308260962088092900351957115835949257342547229458209230129215924992915867482113831337887400985643920473471067229849692316137801479899369057152668767107969327921187051954538006692061252861183469065159299704391570744284307252973459153068562282752409770206854506072764134155776023945056787543269640408600145781643044584850256516067419745933797032480467331127121504164725554368231243209089240509241598357049901299686423702706034363381629192867987634289597886093567993747332333437360581742437959931000206772576433587465369835411358709555716204582157992369635777969768166630739608745901869856337278076700856843099308791106620266048080985346578386756343763670759509150520859068721524116508395189187394426552148049470100303156351158814720076193344341002571129128268865643591383468593609586600609644873833129835793665237098601661915837802839615658640678938292151539043135047064293956621483215919501135204070249466305125384673914448051824417544622646148506263162069745009262297213268610774324330444141018529692384495138925056695365763378377173926659220706398842178651596355927626206387362011781754058760181296517144792706829608503913939055725101735815056698958054280755686122020845513460578707534616622561340331823504107758716318735781616596456759459240223342992609956634112634925534456227378933379036511609383861431464432601483117247301162790979724863618608078185329681640250338904042609121567883787081131515627350053791718930731485585788214578648331070070041021824220059418456008733265472317191864945062631639035228563165513497447292003784085669479621677318042699818313932578954482121021549188308812670556909276521588319175795291427534256431865016158691002369659457793211230675686673521471566491781972025823381569338615931719125394788046341928872267030035802398085398459251490813244740024307187832224446854853996600181929137719826536946930892823682503136850715090236147712181830737593719930310563819040243324356205900419391236928035638299133487117767014653703162151217552643942376907057589642197190021089140245180988770014196409060924034245884342124206572587548636154724842359865581092771189236829805019609790822096874788158095784959999088120719204108872009434091108669063683329770782161753229830326554720994829448082015342209714629266373373676932136547288582820042170103913093544558824798297495865928882511802359740251442957975215302724937311808627827332122310227414498873149616233716014041689862171191642056248226169395285716931367707264331204628663730830709648008546339683995487820393617277681331599309045661913984810668434986771597491257286644376196151537702778104335624034856243025340680949624882380145570766247265371684392900210607870729880547076730975539419487461967973702592272282791962682154680426545861159492883351762443351440412561473755604753786060278673791322833363720099262640659659762455171328010863397492312313081264059398885317277853420843510994377885348103069928076322894707822535007084468786613759178097325849311553565025284544717719587840335732365680284299839960095724006909495250663070904558444794494244416939550411475843339939937502621836086455008598273145763939118591888528938573293049459222152221702338159643140576507099588199473294050440752970535193191395485483882783106083589111931059542763393538665177410642815188438908917316631965572065050017981944926621339744168686462867766210556119294717701609037666609764704437680135056650962316998200536191022197654571692334914124194797222507989850426425713563514375129552806463784136202281062045806896559590657775139433064465937673392455712479555051166295510979106973599512772247508392054478676586823313116643675515313443628338981639589674600971433480227197285748624424508427050526692873681243809241143611884855071622587289089582257097222823106031373417104732656611818369072374039777279815994358204714808598276283102968545158640537703057679418631976304986547206269428557312380197454398320022976978973860592144455293944450617057681104309701666215826957981442009825979319374261967945015585123872671466992251603109954006854496420222579464732231598444399769243127360762906693166879688778593703431052653873239297678490962886310034165775870609600516543564145119215166987958586288391307831881123118325560028362287145421650407177012281683609828800354882539868846853518664182615600591724148195083804821462968589287399700645888846690055647450847015745547693033445308616043796714767744349734780616311455992143753763753498782197940823302598102836460460916979056248616580499536306319664198424581062691839469412750992279587941735013270979790308363174692381678073600139908391704023736517877205315064333832465799647664492874170013176357190776650328785834382911017318819514059203962213406920050218624324451103568197680682382614034007430926077693435583898834773927281061310253961135805049106422167243064573839803964672454708327814710767374997604149445120894400337206329514688540577408099265504295927344809143972815203346718176120106444671648754097665228964495018743549115319050397276408749955289168959965595752688547376361961574054449330119514899523093442906146397155392216450665943881544044547897806483115518932812451529227339557551702450057937329945264406798791641008672514091008760942970040331538799750570614217077291489507246258852470721978412412775509813882116575012416005607855195818469684228785689258619172778963356690686904395911243027316543425113714125831573858883995253159299191745776701076249133208221964690953280244287042783630765423523780016854513888348994036007969253502457649819642327687533655188356356382213191827122369392901930586691776005928711831529494075060229576747168180883090980408596826900554702680724393367182506485357966248073307280777960635769093601023059337102452011548941101267601267236483975246000296382095259789327761053383606377781717987488399983702621474979895389726542148377012381733031016161407878351404854938271634715764248284603451869368296300487963132442388060145639285271092520329908840052082666188297889851077000558635807766249902934854824720036855554115169528010761539730347171024000366426307484652373723912523211331728806296896782097748425299266789824159772104213460737704212922823649406980497648915862108988528692580194027988616400323343401692741667957173429931840719699780914175626620986063593660446858471248575901260036963102936017852317287858923887370405544152354658913573882269375057871035936731430883522877025748550563634807268359924832371389169369117458904258739439409087648843241981380995622188815545030144564727747526000707375529510520480247222116182203229771182600762278584228340599250865280354519396938767876837924983289332407319655496900028641065372204736733881907965308547701798909928836290350546457697937121258923915541839699878115964898932845693745712605503968133547026631568018284741989065952958898197551400707981077010906800806341019546159891132091503108843497529864795140735838452601900188348294957576494865977266323404128705431376472618576660113621484474144476668892867532468729276834904471947881842301980437764878211709199421109200810012601681578054041587272112765981881935021573374540438048836496090910946092880717086143265862416207356613384292748222295200099481576110759529185750790961313757561654063751480210401908981786442365209313108550891493865120981967202578010916103561631899438894874166926211290783738121352200296051034238855052771408592497478279508050517740609936587478051374984759609882372066270683433307136348901886675645088811759863944974403048195788640787886568583290513455794887207469941002759679274468791808278876824224927185993547862522590257173691308319590758231516522498274333044746247325163163237086561635435935387195260712135512843834946857067429155516455534574685751623035213388573477595317432858286044870383628971644564118752281394227750634661867029468743967375522304565816553744726061615520858124455685495695291907457436019659568907890811871020044253829094629110106060818360319788061667960529384030624094960882917698943357103433341582588855948969451251560718516260522752967377367056441492730427355817501083687823393746768181239694442755657703910638848415075920539909219457420701164582584589728331269239516404715025755906757311124667797476592692458940855352780732074357920334661136156606992630550925921672348641454049379976624550886225532120045687214874230305880500318114734199353677267010596052623253417334657846629586935327724750817455977012328997478544514946660497002950792374238929374539349793635532444660411136584787742823714000097435122315802009189262432388054239101283072950328568135171188496459651196691034583128301526283207164771707507823701864614354333543256660115263726165849897082435158326220628736790036905215793061994278922515230412478814577749053674138661514879079308294431770643070123050559931534034380502362196244139932132072173749614170823152752056577206393688765940630842340327911146907012575760197313713281206699362780292905781098907623926565718596623967079929811445605432732323906124003477727988567682848747056182026754654102501785629901535117691218189775884843113716845943614282373864307774350683826845947112229499912218300314815966820806964851013290894081180272172793580985243413056659784461194700111520839984189171934207802851529895070379935596984907510357445770877356609207376754636232268449401037629040682786383049557310858213175218965577297506811699507014193723703354580467612563922607441498866064791100395289638523497792961672623993106829797552467164554020496568609517614761648329163834985617787564941086212300640643571998432723793124897891676217073353737639168297093225010076609575616356403896189585892732890437942043452713076452692801414467635858924159286069608955463075482299232879541090247660336991574872430453752870719260704869533526243290971254731404467936891419961953876827622290189100682166939739924603532668067525949423966381762855090838004935581345991734051750417013602716426989389955315879118554740390452061964205497611935105756202359931934107511849736378829265092721958670285695778273741110959938530454354678523575747368989055160145336430624154287737546230054007395402294643990252504127367359508392924348254911060627150884493645255415678695271435838340494811311272933873852980143362643357222577225257242391104212542042755900714016919806048926993423079300588995324343764245724340126267773753242876130268017683636039709272403681492242941264148773263865102349628268158622611480218985205764407887361776360347166977255637209050294376509871826703259004267544934968957525742022457733512301470240369521684665736007584505936652403195798212064226902592922671231946121816906395162498892715816293601613441508933846502658071145330101687610381989685990959304849134082916613044801018193625405668151384589718762549119501189985940146862918573693716029946708124662320067401054174986812123054297483297900801113057347805121356107067532689533203987423705303625047638628749344739447479553644746044764168107189205352227283210995020800052500576461036647380478708582525511065019683768956666362414774575754119603515609259883574578974535394127120412337523013124955755331051995058100519947293615143596335917592254086874944202585053205933772339132704814963627038297061821665833036804090202969141339693012197874444237984769918221077966982610082210676724379286264631622494729079781536716228424997834022266667253017800691314216330407175067433676100101061828063831642997659061582634436744000104773777395584237300271505802317932040860286436209711611480410051676339877801294870643043889689350319979389071962890774823560957115255891920554487685172067729313560844996116423641259344311890573430433648279082804943935405582391012423660584825784911247409043657997933428966119315252175401150556917446467696370826700533968409383070306027644621452323494324411848127625940001147733431020680623855578664371973571706002940996167452239876735264288720939620952998530247934150452777114139659340889636654141304890772427835745413596083650250712212345653022119208492016174086495323834610443271840323337317937587793618626612199712448097603985843119851032345637378416087200932092012514095791667101803813169388076377174102730954687641760009037345106895654302617510691689623805105499475943087379010284414088762353337339505440925547643464933064424042617329089538700550575509727656858610087212595441343926409277254301370368147096755965187793653019870802445526310981916683580302108148550123272743308592091327568298547658402634001690978803737919901574744569098856498608348749442962492870109839265813752055411799301198411224476143593151204207597425373809902820824236608830365020589304023925089146959149019369946556275400997383296217236448983999542350591051409233261120396916055647516291252212083710975222126799539319989909912833956638900439348384237398939127626111583071892792152065363876623088432646396280310049998033977135120649168274199477314872416926494657953732776114337846738493447021011684287918819625554935579194915591867806633668977082737792720219750874987197864613012927626952045103432324404509092067642167529662394783634433534197628945617598887150222185471688178980600517056666877164601442462983193122106616708833538039137507327517624332678111288858173664803575943700002495056939121754736780296119555521830051197940644056939383104483624660835747202529306919096323043824475401769119359957259984445057856283780677696458250609174867825252893392909327291253139344328322052588121721027512238929894122919069991784760065194537303957136742458405225860216132358425962331665661365942043757293364728587070407798125248049556735078949226722679254493726649366495293390444738275522608062482960480572420308699398060511059815434469257482705129972517804338219806698944812017772484617040958899952451053478508056040012384273254314692045468458675250712952454300497423962982864565964343630967796493402446909016529031022827186508107874608074731376552305657637054836510423859914192522519042230691623158023448267490735085581886010188122955689312787434879261598459221272208867534838915091943512447029024130302059218139034694547174824809525951933210314952392638768242776679573360766229863210500240708662175596555002163107301594685586060669313213937491844767893125358291085164488376163191037972639591840244924610028758861158998761798868095651186732717133674614276720042394095374693384164128808808782494331525570207153796443765421961262881473418578879390616423171737683913282885750489376117130070232807573654893395550936893404195646590964980869781040002730572301929208505078900057785573513088086421820338879087058789872658124953668335436160848911947586060911211664786518934282398666432950778767963814353163092761281797193618136904164761197366344167599661585993833438122605152618421173513481737744083361841886776576667390847058395028554931951105896327215367879785876574110105857083728267489925616573250943758789644466907710216193428664333444751815045242583680075929682483299342277632139082235667724579205654141594413121760166911401534449432716394981125877732700735366371440737507237391754741676607684657170581467882961658602186197893878591593509527729293990921232588226108671112283707410244203389772121334579195701890052668445935478943728237083782614610666917937361252637013359721102021078998569762963158515754585719935180786187914717689656963322198268798742327491477671509920184648865824606912840905080911497947330495153060429524806219377297417192218314687498640793407572417494905897280184022525716656882611255788808333258945892328768374794837721071843589281165522062579571858777619527695871193014931288661873625818674010237981921493711315580669330787345617443877628409889934868494151841661886540672444231200102021177218186329343168498410277048683554903771958086739016077664342889432324365106343422341515205360554525459603712742125736448032724050462890590377500576962122810966925325977221304863264335344901734404988784381541685303753133879745264158157601624725311173577733979171422966952162668993829848027763975783921831658844304136868400727174585342886388277899439651209918924410607358405288558994137037145151550616816894398942074647082683435246820775586318201011072356938544424201203656289589670805692807639455463221778385369151997977760359951572096726012045827801363721016449044671554558286059428871727458273120925699706621366636479205730411634361887904489334649846028450520751478137619066621359486511876945663960580794168951689965794308603299554691130155359530545352089546230720435164782393181843429219466578882296148694269339039966662431227117712054216659345657431621748487208792252490474827832766329081462491572637777615480932410104725340761079526832953103811446755115791586517023102982976107539520973924042471695386568328036924703972811731890124964376293053796252004809603774978667006110011412631763347909181663232480446158299998184098188852019830286786228810455683079689115446142165617306727621310171279234211988787720296981039414767894438380655152313336999397438164148001897952314205619493416711517157875042494759826253144151265265953779579512553652665690677878571028590654732689041780551010148114271184542737092523683942641448481017997586859231723377126188116956689444698213036790610978985285429166746721455253263389529905815698500571917065007600438642077273102704424158777204718340872573848212777474574353489175082518103414133389852340066567975884793276227783630833796922399456796922748739624187012737155771898098930710843460650078811094191702281964921322412358841250511046767440788962304087136196951196379341182848348893143577698168759709554829244265187676787578361410621590369818646946192342346768325041669355699843758910526022443208503403391339307013506170194389678048836724777005819011545664613785728610530265859035247634521227614268174123139190834595536729853614364594684503301529819950687873736435846995370335006415616846462868148641005178308063706827273561495914204018549174422234505342034097671545199825295381587276382925378758969881399560029544237073894787281062334095329291078045421781543192253487074662953778519286518452595945047007845398224015933597927641942100154973980380083034532632300288220539753740998543544047070646421645745809660208549760831697254075666253449528598863083376005761852900537588519396765338685511839213911055383851202820572891845470364157486067695502928732836465740213890445104793958808937494832127017908493246086470185111913333484650369598167994647199267446629321222369999843593009663359192964669195971951654090424214150359780049063297505851650365119010842804421309225471050588295627318831467229157457269461499798659157414709739066628056977334441981716615216487312874895066742573486868176953115091206512852289872155043938744920247580129313973372321244664709330556363510007117975750082240163634461385213008909937127663529472360980826392598838388002951967218112163742796670833169257134937121981908483487969126483916534510158912980649093426775595832408853203558151163785351906493782963572175436163703546594657713890795700013938806241628544411520465432211525621699273187247202305991801348683101094090861246990017340215749443172678514060974119449160923842690560406798442974421195392870510308669951996223243488063821958800925418461993827270739213288524666325484981855849874190886840136764963294593660060734968157152898105838279555248057679692733341946139509672686668157064309662324367049069545920580848561446853328529020151135201411193174912500464463014470169405571868446428902902255006447551491695722348796388504599125292111292072648628224193062498235779320078261295092971031628894262692577096879385005794635973600827926886048201957701790552018389157443383494546792589532511414244800429922009004930891654973716701166504712289209762997022336021425052276836071256135948552755027367987549676549361674840768087104923419361015002022079067993218334191231160317354246592766979099736598790146305311397853634820615561522423884415656371624837182940006348638198142033632775251516070581683391237974126240952331439030940371652334902051279377349086208415040919762557265196150975390069512438179858797478704120344061670013557533017631901042362454257547380417087170702441302738723589149730290267002070777629351615668733569336562428602883052217804857065445683900065236631452017451403866618686331485555607880038206553920714708747334658708475172473417267149115537649943447826364273591964990218700808067538924317390975050980524893127823344925340773950551150566761817339791410794558983238594371925722480168890722496432504540875673390189171652254422124810223518595382521184199643922693655210094223469621126252628811691667488559359731315550080462603020954253235722225050617656086506373438080238535489440373522168166491118137583942284599742534718622499476206875308065084545471594459841290174542664846926542199169983678572660563227144074984126441738274075675815456313535798604915623495367839958993938820235348573791419079986431335281424602424613638015113073586589459972529060333396605217107330692592178872096725815589167754338870535046442460779393866950405523148685760448752206792235838466042700750338300571628104568528721159514902893864039748105282437755454293544044444743859122725398215107771460950888843823542955807510679898233735983861318598863792671159997605886394702943212541875638210029215773033053416787072855548421040667180112851678810176272552596621476724422729066185899476479035076067037172638249149948917182889167342695814056788315915285939414637928659973909493413323386981229613976853042991098497940852308705982735189438469172565206318218364456701531328780613309341614567493664337757530515082844262474524686204189024899124964884250886542641710280304043429749142319603380752855304659985162924575310965791271067416399248354683755889066666435282956773994968385976192187681736672108679577759636928414215249671031639224791366358385288760894782781184626086661032710245577526256122256118794833793170203177400860266008347622203284484369294032943356582261519325460582933504336065223506793671091787527414878653278921194337129813025276717512636251838001135171846907210326180438893770133328575962688667894835706311855117299060385537592137389328066551572227167449805490562113292750744465992447817844209048993499122473636675809402216010262097678111635701562068713399501563204167286751886357405992561936116539962598329495718322953417456891150003626151188004122857256964097198079493107314615046614855828757043151143801105921386818476246426666298401338001642221079426444862500989816754605396695456035212184795753514602010863108589745025624903314333365311228382729831934863538523022429315791225170567113102325632839791499892437407756438938513233979455312146632394729683409783403162094741443311842566582762118003921011775724868515805374294653961403328097921142224693643305600085399709337461762301649043972767938520069611664753155446759129781887612242171021856311115451373726941573243934477728281470702711753777312593904726661893994957919076631598211036209388088468257069653492717161266102796604458685449859958155747061393191086659641746843466562379134574227972703862182490711650788007433573268146652570352191479129650866664147362348493884899491603527245021877997831019855774601975548975521862217691108931772718947577261052805466667145467625498248944007350197516906029405614983867562129236659540574749878826021698170765483308340633750117369018847450073907023773590815474841783343507284429860156967291897199349440195761382155228289015387776758167089351500513551443305651565824792350416252995454652073565284152452638539017917099456821688527777211720893254337646535245891929589669587415022559273090787427554520482499808721878843717699494626810769713793670162028909462666572722932760764541762170883245820484454513243863960456453142642759321302552271305414637958569844199521291645481008278318000726638659416777417946051531936093928592485866394532116084588826152354679077129146548747664736682628656630939735321451833184691432008141749850671297786278271806154514899366361409520061371334429543741816863916863548016481142776609390129216457272213634017929181930206477745341562351157255628906271476335514197433152477146079060990696736651430606344086334669224246466204837111371521481799807601223018307325592721278073855945132434330210111145669801339483959807208770529021676678461399595656471154640024184849621268018987107239236332025366208783344817671141250727248878948437526988206978747834460272768275220637968499211152196001736114843510064918174691663498046111023172894163946313504328712702781294971383569539668799181545716833859067888813006056332312922631981142964887454722325592052151928344136279655986069390201370111563224023764459465698057307107099213822673561255416108310952507492826572855613215929828435766057098138307923221823296248940262493299626140592044372998973043562259433107052596976322387473277787476271540278263090246979893679225949085464466034175209024984822246133200685275039224441377623094943349062233666320730987592932382153689895668566152291075149205600233346735116199760700434551102465642822426859832438032294044127797015561699246774931695393584122638063620421590366302031170197306260718622331499833990492369909107207887997525139506909385382524740393341136033643282438116006480148788335230325896527556488206773516846351328121104880799009106582371449234564896016771193890252945887514530328951065633314173607261865235899524822734657582683143242520804915618431402772384615837651028775346094366520938406750919537782591226209145744154795671084025121655879203567831329757157743337413844845189701239086106884780117569708577734798585190548566700132960153580669527289763849422899324323469050962564269166476574695989887622938105154629641320373507047292007144208916018478763520535096178104969185929571240513739756911650317530578506648565304336578890518794197631700256975837904112467955280030920722404911033056287401093118599944617200874475575876207105053318338554562959659149154545611806975458714775318354647368691273593579040973838011456354942031208440131407823208609302937665469804400135094928338798858290041623461906382806777712711292142702822078993031814852656500124683381759327932859318842410720346971835491935042164889795428649219827340138223277133511283207955894540647885447756821412503466349691976285851558164706150401797251834821224747287155905734450686618397321763019397014381782108262853780011764557269169659800828487390684088702050176869149870103109184541510866264401917799077511371432281828588804812489973137049322828349927483734117010190406481858122983130952990194933940842672210290898800458923392488764003829692536056490797106498407813316108740392799718086412901493427940440230755214067938524129976927821363618112207566004611092475624686657872897816577820134799731596477400410228712564639955065213331728555481318026593421252065534629532928444882054421944650049075341534350618232840034154221463530952046519304766890872921329086804915198207533024007335724947224412432929967189360041843937270681692846871088854920286051072626629897374488741835763417424953724976524600227222848146108855099440125589971018626892064940864676273665308644475481788765271412608833355700713074130038195285723985070190240978538268561226936049588183695899736012733992915168806412078943000053885839943480968427280535159575907156993303989549547164739948312455904265259456680703820966701086894390200094439036518363811265274273628851446883473778385114479183918245479936486808189668835322867775916918755139844155062560348826094077817734766842919924430932295905248648156954127568588574883489999637239091564742431769788693715009498425377745663612325791801565797538343145019966635172471010108742321899989316218797674642889313413663834441752158743794875127907433833557130427118825673253240113377529060644796067578625791183019382284032704460402729728713943108281967993684125508378838356459808111587623948579082307936668518242252805607765919821427186340652429269732383917736505012068388378052731589630153751079505465737897062816525548271527701223364191251944498292195817157293641639685342929379445295943438071035704064427696120979907530358717378828248140036280583000965601876700296072325790733931258779448951878779397937458947225125929124030402763903138928486940222323433734448244390613603837254252598342987612103578004643263520539812560218506214707508301538058727823777065308870435504405347148856537634953716682038650882812099677153645800652622368027254126770546417586801251876007345985826869226753756399550428808361207985671991243678295628825382269634391196139018902682007851875922758587590615588298951600274501537542120000672117194805106377608749285397918272093313937416474742309307546703942889410080374042651898808594017885479979470875283578844157522324952265849266497301448504883263376264534840402945284079868276776285401714378997144672734116335606513352957485667571314071082165137667751320703237092070058941937591346365165285400425198008057552472480963749827090462753390313761049847440280471575128119734540632449705294307501112045616939271889652991420951063302243510275166529365121455976219370212866053497403173275115681111402035655637001450280671525614867047160389339918422521326731027017493384867790554129833491280161866382072623274243954497667265618950317683754696371449807155576276316590667727999644437211430516308679226755181469944128979990417121223344075572969018884517918204529076844983482496369593303330598058118013806820873530125805540029751478494541787676832819102733950921504680241305388083691067463313086293869936388753977453467476098546342465310099934389615168435268509813872772613444562774601221671881502143562399136954489297688783351160132090634889157688340523672295738697141476188849027184045919743012828677675196333760445261322819408537995075915795223085814570364741033184709522297830978996362567458482969964435176608606134631613084917734286757704759056145431547117496733333393482951844598614165314220572088647347961641328137175468252819559895131292622039699207139799189170462040089786308962231658790581777940832319977828818175199857405341914267148173215317111533652649392602307742694025657523496016725506641851831276270213957797623676880501144457499611447339726194623054870592359810042355826996020103928730908578156673544893305118203890383850569174193130608162241447658669590181551979390721960483901605314010124405845976861355167192894068307239002074359010425678131745096296210784571397213778152243648582470329240905892401137678522947790543233074154147130769304445875648600966613257195491714216863096538874950099908941307823143909221530532553333506875645295649893711723746956495048288535556947369415020355098639261822398835380950222823103441847777062213223055551141415902622791179310302791203121003647658602213024256555871786510155417383599032610650119398287454412986658498673355409532689493751261755588580292187603254241447659707541830627999116239694847961026228317779728024139331333837690094937466048979242044625837827347825733246705347932055685045747996075959614674861542388006005186830066230157061475314928322323947937965071260788636010685383703092540923793848515802228235230632822226881834405884769322918443922601598775189785506021430605100732284505904336117405952113456228829833807458332715998460040981178210598563854081273918219782733964761487488171540589445742149773000557265520687934356564257234710462095827526916496808953325683166359696453500794095136490226847029446270418527613062925908283853938997682315706121928636350082440627343316683945170985960551155807270367575920608419097890113229597342712948994372589860494965894622140061639094859165794377003333865228801659393386195374887662511265310181936615360129831923141072592594250731428445472167727632749341591353542969141019456245795935442699599352656242738655058293913423870018289041509858350600835129819863895154919871577776838470146604237973665429682574101249117617852555439365819478830055901562190969334035052246364850941019561417956327680898727225253789884908806694934961020672050788526453069316974051825398731392741715847564603453486869466494225955681603134743558938548607161792605031594605375844101927598034546288384127234633529387041705547191298936107899497977869195930503483043948791687380371853575204328266676437322238218462494599860115422668489205977257764311514202226341474916912332281561272000380279586658665935925210079603718631007352071774719646609784265444026197986689544199355359107441656410510792764880762998765940286407180593831087740231490476245853625941452570780918977257620796378326475511155363847299603032321254396825300380783709479787930526686879150259942153174286124074123773069581952108331056242778977725180257488287966620147518588712930630548633787975765781780577975528452315818842961720494511700676056860845158787418953488450273513038992931125765050826955835294049947923726181773583917613660107698964931381535543564260076955779894546594469680960565577900985082446390010337772316035819582235809981881111908202508754146624943820295542657013540534149289512407639890980462411082558065000597716058952092211026107445869977513086682744508125683287383035742826468559455764102703598677572812098404874404442427112960375522975906202726566456029553195146339391607252159986810276352013286632271555459800983367617379273672271871833133108799764705907505144699822884972153994693080389475772026396266722715721226259183853401927218394568150521218088867895371050088494661520115652075415865629720922903842317296992518375056507133753000359657486087751509993691924809193530249039211649725747303476895108299254561491359009863649742350020738301949029083949729258949751182635964988741489325138838725674444842961158781751707099282574019839340601738271656443398274521205944456967969956894808715727124084027295854090331103944913317226792407867913107444172576610942087576773446854731961074110849570249222387603774808018539661586894679630920944831910028062909059587783201838716771760954185795007162406019582858393021069730017320981241492522940227324956613768859809566454260635996385316642885137541306169722720083109588559159799429350728172571191504534110543348217759264387126020369677896742052700925097314327300057962999834307808745975173280529481328584611136369459889349050152021650948105120193416089833531812267529430864465153464468894529008373542091583448229205614368114757019879021269070585190674837660671917006072613569721080326171162429704147673771781961103583869134739773614583903907050626042969028445497123488198213506264451472721348465896157307779032584168545310230016988989483136947810040518860200018947139085392003195702700710915756617619253395102542936596558129249849055494739642247842568465330430861185082240485281356128601385697976237670324315663517511999739823068199550118063481443513707069529843369679052980454071152041489402722996281766345544068866157099861614149618538578709812601249047036612956173308623815205807415898902452699790127050661648764392765826015939364021830045606164295525041582397972763024911965007433552685458205119505020077402925695742570577479023994413211399218385592816590881918169666379712390073190971889906634342879805323459782253440641303928729434232880661008561275568359736268722814082385136654971973372284636052211420051235680556916918279983038759318048786939153572492509776150382256471932433797775513837348418210029505908515367653379789502646493639368694022820531391952773441306058043861379617107223718166799893211398834915303188569047016540344165297873043598209386195236300142711879807858169635445853665305815750163369722426960947220346730514309251878839181884326179775500399793747584275305071051848257168924223672951269518868404472529217471089055204650799105107378133753096491909277151717904978929332598183604069772823202529189488161437147247529661107732652811633788761499013933205312450083163633778955489109691889995685345720102161975296909214665353728491109577508403712938557606161082071420280595671310472124841262273080509138591589909419137597630474087152494759030157631364331986776979185854037005077875090444331161437091879909146278027953918844667964729469542646226347931917672868752948999287017027104187856096361455285137772924724484341096927429694585304333992330314811861125147916277089323039494565030380411718283725244439457440775438661031845113935442104694403366727826325572609889126813044589794049780646137538350697545784574598245907905058483014539348773532345100408242034623110015135774251339441295860884539235292353299571550441633607076969973361731060134894464235206830717174426588482467483964583088650650993538881475774609618922974525455070650111604771720171198618460948603205163300661994840875707636262926391867708770939974372098695413472961183417210800047557334901559963458189728418847038187026249978937820710605539256572093594382514038848901619473102561099043507021858256470529605575280083130049787655016653998599195256765246898796105319593395978510183209983699428736690238997836274661252130508072808180299501015330031492893149785966735567482043741682428726337822228617695688828990888278433059625293935056047485854529989510063616553837841442713461145451402321572884918398519012471322788609195191629537760653564246875673042942196077537626876170863820841168196899255089526874191842878816638978937184830983493534185781457190281385974144687690520522004083217453454626679596449488257130969292013907243261303561875872268175376854044011876640766734582512428152602000034865192093579140606002897016709357617921526154630772058425146166835840830543932706663872761298239060858648475586164339169864795549263833370893294138784182726670721387781959605579354896728710634801264947981390583656177174758557646974531568226173167953183064428433947843697652587763562842789123692608101011909642145699398090865339083858405359653760669492808409978419270561196923062504347358156509831971567680754286860096124926189106860206555347133633152313550107206661900330771429263953468645308460513936572680382435080639371337147214482487181229247886523105139467606552036537760536749582314954255598899208329859721733958929245260786666684808039918171159939164597793110131327813181892688403821635385323191820826430459900720315167099494817369724341236347460294052652046807070763686282864074953253080939518948331561909827474991070085363953504357147974164669383763815205517447891911911211739106399815157544017953398209103799465282693879051078188008456533561495713812945548148118114769942788280496337199725968969134851263322593881719487009060319992670238685180646681143500592653544641302161389335575270651941895744380694343061142649704875874885382776267967041701693563354686283018649517825892857472823741986226410489529720871800433168486121759131881362580614697199354877280916113327572905013574325650927646583839032783236459542891174113273429611742772459450673748285338863150842126390030564846853540040666852249365606960038506156225899646048224266562675622713054349426851109142403296511001891507463869198789837614724867023893246386448768037758814834876967883721648718689182616547425754978574435195568164310148906646399689513633096427644751998382772916073982714267280807529677772517851859507743571541605255127912046721485114244989071452883097480374822899195985765122082251419158912058649238158067168570481506136187383216730587983137811376675447097943019318931047713150272345968166710239263542321770758211343658760252247115769980671581413281389707402479786111248793796142840362126941682575427628800854337706707612445779286491348992496099554951766673687376115476136641126651588013701975452976029131815293374265287139181340464374487037730052290557109246370895605391463871144831354588563379490209144773094252921987000501410724435236421343838179996255576378349213115008471853720347621379007874889498291606304561781606915144043455769856323473511283130853706753115448328136156248542759709733682682838824387980769892786048571876305139192198904116099476418065975368521724751062593433067211245321169336702349707967653256587467248720845010319004918050004115345724662992250706377827170848664273048065453713768161890121775577727622490727962491702875838738674990288162644255283769162008571469895948900380762587810965297192184796675581688195635773878565166480054784497857087621536447581788515770670794714815757578764339439852724627348150345986333958676061844212249982649360029121041435015447150734733045558538173359196029171551121824733256643025642197491724743132776080873105578040844041692973242520611241757502695072819367858241028342637078874592554253727483730324388343420288912503968245754822548549015932374615395218329754247286007498874726574152265614167276962583385540454130926530421325206179464280543417902276142505635129788700207614999755844633389756916392895793568055626785667654117592906069344441433695078839977255470535829507749387482643515517433495455665427008267386735405026809103150666606014998997812860965039761002761541955819469469227634350650132595322006242739894831657002867171662869475488807546673193794796877036546342093958073623991440413069256599423670539169065312844199910038330092206817357227802866390537961162369017818160240390546819531434018120333392444270500951860912785530086534538119486268911230904918569399242943637939720001342448826485999497822278293175748883163486300196711985679013841940363829931136889408874609965589258399027383190894761179360543790742494079443486321348411062888150241744868169269470792270593728081403046846372976210086467817771334069022127031908596708033054121749537111687625731477336968902992307187454654307098144481878781282888016636004688506103222436573376084003610836450611428361822964224583746121642444220664966016758172810780758946720256752185278279013071175364168328885728443592810826669765045274370637569562269791627154083722240851989028401251968657287574004803362546630094187287471245147795030949238975343570307043378349729228203576343725079254320924536303695754442981165686127406889795349880846409365594801971949792674066742087321292155752759980726787741452924753430759061567087645531441192125827581834300194552932394695128214882897797433894847785466482829128470619059860743733955363117949208506886930489644046018199839996522649868572569137269093110337518455301549597298264747939456522731387759191406766267951212573617041749519850424115206453140128804366941031270708315029744827232857939851070692724138129021436923097187151616247136701491511014396637016218010692139164275660265710655444902663233378743324383336479133503181467523278286151219898175558337866035084160227705413279175308304707328270216874609055756518742073880422016642147350720987018618273056755594102201261570398246522084626550109186528723908148811791016052237148917045759908677501924775248931889284396666665374491923691862264840028149043668120362970104830208990924741508361701248770769963474491504622059833873434227711683865644414539178683448522673349181312326513697697532927703996867696400934110302774187298040141076076876071719611604778903175637176360966311988117804606045084571210430653484841936615359948087131458369994447017455402866903033744819486535012353530525116537103221743253803051481439093169493868877391244262840114103114460549185578150033336784101196312988680078994757789022562681011147585939299897991383539820400515554078266099217241422433914122258346615332551415699003639627386194937483828799950667751831238979786387597381091718885967930129836974571351856106198670679497586774824392739557495242752001181247717088906641348089298006014309591432320275290747017025286169636767777255842082281516110085248466450376348245140323269237732731917295867461975750953280323198752365905648417645187413099516493052939784847636701356796567054304277687106912096397199620928312805823974489943438562914883840547398349152236417115760733578761203145654140491567026530471748460695200086239332659311155728128771750791219020152023082810168566093478246449670358474162110923850418563138855630694403667390456815911423340776672385759394383821084930786947037330345787260957743871845065825543037031009160312725761182451355273410009605233747475968446030750133151041607081998510820498516747712089687176580446504468927316359570052978739836824674353772472771945643980409558332454511070178240718049516517281185865760598826724652965062856650208679246438266677272188973894641507751199082431798639116466119208669291831373756208684494708671639943793892077928194671104496244915609987378923994554402288003877261837928409317487942977383066461360446212409464917018225935590499540167811689954281389960187358546526120941001131985379329064378912102799420096097026814280547079366571851360225915999249394603896166078032599191236136772489629065605755005364832129055306228216016683307329038374026542995002508532394213854272524324110430255229416774380405970680385722896725171108581902861687006130749847834328696776902826424856169411596115610183154833016295891897250401930618562313227015106962475411021742687931902205783706375540212040319988669085870531645236739939136599642032001912417983354967412907463649054251230083994053196833753148870754049404713619428174451832204031134945962350956770561856027313654859142983608908727945115869922787465295648641380279522725984531687284632720581670424615399007471361512649205831144009307891461143824586207192648826795173271196917607798309962465086983617500858570890817119313500363583026150520630897619190193984843726491539550199102955321312661500679503179442952565465881832867768519759637750891912428462936199309763700209027639339433616315213357893194675202330516737386482112236022705099359400507153329406337429146352749266216774680386606729790267000437513837807304040062640463584216989698009260797564788065033910238407326730944322377548830898602796680085116630701696344086854633183846581969230192683209223287660074025332563851286568276600501065698976769724945338407810946269206487428934628531163235510799732051062636673098008651248493195553098728101688982929588495219019946355454123684661558188481475165992728015176177961073689347570940685501351272189573762752376400569582408816889412166312678871679702045450357309564251622852815446051238706045319266278881873118145677922549171337719930124137595355766518357720310011150924437295293867096882146434815096299104804587858196485891797148963764461171787456465963570651049039630925954162046059495061671226775300978080410685385850822825788097938722046522886009527802749882542284529164830391806184217941170669865089354957295381292991044430522580206880072399258882793913467672756402861314773557000066065919224046661933045901639780201313855790308014665727701262496672277574076882762528461005005751738083911288592916879431497446537644012601830165964788778824226973569868048506198434189926155212478631827096206331242894543436534761171852480937090977779847063933994615496196778866317095427559686398721062610339998222440997650738578327600039544325842917722468625473438001792624344425531709168754397167855868441437823905626613521056854700238596670328377968795367450911179164617000773389994354808078635577134099109333480172216462081300550774430802990128017685453871866289661548963267432371473559519343555990289429980220882322787265402587949227197267299862418143653690006842950521417147108144919866994980207998019652220118525533616729915771571434728086364114499846010138229839641756570460852179770143453875480215749550288997745240881765727136959752031022016467892918073326474187536011876557548385480146214413236637489809921458384770098846782053689352047409374588266447998329086695637526152071968097975566680033081667311614680996664450608760592278564996393438824807549450036147139913580574561186793241163657768204769343486133462605717724128140892827634461982074701877342876073806079466832980164993648162191277471557902873577510486694719393421742506005035832913365679002757536790501751802611500081282645599308159133496221177569559158396357150995570289607151248422537237031218425095361641051557720781202008423678261732092860073574082476108847055361601017111296141463429961554170422418697005765225077972594480890065273191214324045722297664647068170670737989546229838103974930233868909951357857205931576179503372294004056306755170815059974336426282602589768478552301619253438543294873913359916717523703284888084795661278334343404564249895403555552011679567068967646305857711195108421270032631509567145386417682119668442079116515981382403359542174439889469081462932497258786743979284009542100177430560591649010190555390142072869982486392760312090374466542428973965150934232726706078143223594838290557181244090193550709744913418065939528164919639195562581475260490540003464344969350459503960612809699162658705309397048108446930769854388792515196569650428047425333243756995486134987782943048788238104703517908999083279173198002737172686562556744214323168295308075987419292128585973518020291650504180786992892127047318184381722578642919162697491135560630382104798978558404186379463299614776051003192296698018666018714031069519610243444412126615798508427966103861729529449340351580494569145091483213175017538610866326715703903991068348089829753911044451124868489953013372967314188999429911199031222558767246107353787482757195921627545303842463195350815252917618653358136714180367806011336977365727102436021431951459132119446859009054045894132216447918137829606692436087895072277867655123898005211090617895632592774391220233899388549215306779445928563343480207016124850340200700207322916375231163484489340888573603343957221444356330861761100748632638552667119618494365948066660403089683741321751157977877322981937868345052047592296774138223856182493530577519989529082362023757224747548848725588780123679670457916635225163768784901060395734985195314846143708347828587112417912856883545547509642435162559551078449551777206676774767904258105457222062174339819550050476337674380913853125992587230956490837738081529192788384131706402116444059912656334415791588799258974791472600644552971727249499666968351372014196921071302369030477275066895934019424597018331789227715680228660205524744789684103349055217947818227414739980584269465324833417271584436501719980167886654196905045918766394431216611203131584633723720065049903542760926578702108358828133247227281896842268297943411874379750977453468200939533983387458991343033186795288412189909531886460512720333437456172339515692543030805386008712188494372290563646240181740290292410492061164864378713754938430909115390568488841326614563166313371765544637714110171547986005926386432232400441566249313766140201298875474207596367157140702987940363013182395650039131979373539894826604443901509475175816957125960651653948264400687221855375229322921981997842102048074510787502602872126721909368365580292622922629404375829839326029122068730445169662327100993255181909844167877169493467306022631510520986452258938584107567309150697126208350777571000530784604985222150726701772010533427998222678673509865592818683934127750462965430198069565504434356618319434341586470998503965783767659529862891236105925088028283810550726174930738535580245614722759203022364050030775781261958156727772818354686558873174371947999411176547869709751072644517721156063159815268540484574242464594583895830323444688596716958556743161082966739432667844740861482427382127926657956063396835306232343253753269107892123071818633333517122760004094631073211148374442482887497927111470010379230300784713745575907716194187668535467615018461379252033678233865564071910653577790515662007576533077038229746352055701112255590533256887888338964054606614851652829824518642676492118437032784721889026238062040572381480814324305749384281797898991601191074306395858047138899200736505849372583288003995080734151722835016355672135005489533397728347722985158222495925997891491860324046662940311482242300417104008478552915553498197643904120740985106318092016994429429673429796139924661532489849000906694042028164915986552764305434328127807873249546618060580801222706024674419910524831668298212978161860943500698775226086018337994267926324586757907466188349042287969629831804903329219246848793149978109862671674221615783618714392693851272680067294078121080240646698470743476925603699168635640376127464181519167962016160500338584162495389685376629596866885184108044704039129870305116212389669007008889461074490200897488154232676598405404546493948526533191927220155350305975422319891997091989324483142547892603101606947091143801965330375059046424781758515096086844956121207165431537175290854370781204879913301100838929243094388388758580782119353037358297955229992429955427891599497623325696105548476379347115096427918882803404564792466969718458994834674940135162354050053553739591261602761847514970878935363624057597870699122449706553863318994311234996892003646763966890894884781507583113659431303908027897553995666505786156090317556241381208638302898805810604255381284421334596780486225526321468224215437628093687488746446767717463999982043120855529167994016169044701650295994257350523139028617645781746874147230405074907083355207591845826308588507062477623357919294019579462905845925239077653610651880678832188977860573601863786385669239700255971010670683841632231998553058432512790948306615606731065599099302145272976049796625849443372359479229082901446373160556454106047648483189177365903870416857979767556093886989142611213600023510285803810455845003212481107185031002435579197066739371019580507246336819935046994789859055479889373446208250371015618294980413563020536448810013289523008810522717717110249647011589065268773750213889584259544447983904269098702229423048274344662331090233598955809528377032398158492673002988967583875175354700757422336209318357110498464715841988147976866029991766597147908574947052659446172708039639023437067951626851634021093665015162469519563931299894898232957046082339379963531641275807321615106785179430914337534136482655482291139096910923707704735785409326719841425361408251393768525555126826641660994648076977805120331873757721896260927334403031140336611065837633805141602542355828379819500150178770176142858670870886368544117522319531667670569878692994975646462725673451854502874200693442699653199898210734368426854602555518193733985541471802407105654642027450206357077011596734616805853541928416604592497791624755599496392919217921321564501376381608977032287355784390418359231687305303982235662256580112816633694888960161001499420630489524423509135494878406709351765906763677133152833352827205080723760200413918705511624489693447102420549423294369366547680466474752018341856309120587207395992301254488368128513384176608955382518262353218978137274923549634842444869808122150778811788029764108671682467061343776546435871885934243642089941302715220566429747813063495121914659665038771632747084580126252721270611846853006383965223961141376148984447956510345925693721493242709077888480061480418758481913763530085203627523688600692632514574030256902990780509542669654742121951135005616348096159579635915682862007871097003259145020531606881887382810021184382362778189153041299660946341622055643959825921378786366200432812484078160694808703121970630199454101819709263275811275562639038655317548007622383741724364418304327850904902656337944930908952542686397242952069930916135517270962687167277331307440934906006466515851101345678146642217645025171804253149441775305160898631936329849279707499022598634644333682812931810093793993961101470969768200537217066794274549881113154306218752266453505131100995206366828712537442701588303325208978599938370379065605594042143083384340251879184552431146804373813610297141428371275555110720726319866785404631156488157130060362062606304932326639921708819290110366784684875907350498407002108154825191620621391667003953806985195759205366881700198974240099977079858067934226209575534240731167739634012632091048587377558628441960816607742084079003907608109057093538985394689903888965572083178391087102179242883499843355532858381870852602089807647120705361143083403658504610222786634618731142748402019768605449447968164124431586935942740168731436678979416483826873916994558669140167859546694481434305149554905767998040608621333290234771604996356290436936587016875033290033623379641233840143218854256822690390509595562403419984292710034340091136433088327116224751713750255020377504433267638898321353596371756023950019069372830594597879588045602789825982400606162319793830092788282668275597392749776755020741696452254420659029779752947092655199968361357241608115786075033089618328176129333443459080987055656700084858235825220489899772198320199489316477373713587101597613333101684101467662135813297401694205632448625098515454811140409937794665383445116058535503009196376314503134998189246107078926039966203514732636277242598404869153658030973937306602386471832332318329267371643425522857108821352130933163965693171920279032028000733480147997215998137622052562831709157658299931847380811782200786094398691089155901099105116736123772947861943955548807281985187262992190632506088192997041773052049153928321113396175518457818735382705667438683736722727222272364081030409133407406698552456023644281985123199849617116875958804098494005627679828630736593970877033727237180946697619931246515591499127757587536361100412391189529708654485105095741680423610101649999167278096633483993926474926913185377812267372494316691057278779784646181360524333417557680873523963052000953900111845364045046602968101324500198097465898928755867658785514922055255918947380270559603883627273832739831887275612042674947188580697117908677314984724499332599998268374443632611852517898657159621383659550821339578686837963910559518372082809323914948034448526430065553969523517438757767146841129127708083785253583707769811695159749561744591283159671351799391971393032200256438101470543488509434877206333943500141140376702805722134509658128947744158685821632617158280690455771725551880122294061192486987707847348951883435375021337796626583190998557899198126094522672500546282637588427003818881404483704437198508442596473694823128227774509339287853520512849197588008729664029149059336004045777747663721736687125949335573389600707549588457091077064981499050160468359898544005749779164167841741745603094210267958144345262734980440582572942186128525458725047590296600780248033858026285925165405999840803039934407776251832088224295109996829577035467851864046543424758905709207153126608365732452511243425546706661957720957315893465890127481656838685188962355995155243032847550637127351274029176639934150735694057139267621580827855898216590284272950402814685386733025505941395384248706312486500292328204567588710792759218257779429909278468422164823383536395586806272508692597298542335923472153187192198573819139390457792997331665804528801132638325174558581105648072987031113877934056529510140144962395717327902986576941895709768038220999848843032707583705971952767802362490173676186904192276960429085996139499244082574807477738347442145359191128987394563354986325239481068150661101164018769668875639812078909342115967878016727875761036460535302744782543939698752417957678758714311432512464584843452911927072773031002351521449133169875487467627039637402543797296077238241502637071497365031922555737688325705361641889009020104054778099062416598314989616949058866626135766386880555621717859112591176748614593534195739132309850518932424266041331661378495944942052835230408096456997649522359657220564799161676952538334108928323511365936809469983301478959216515584028178149159799364120884341322180807951113874031004854483029826144566189259085117130429239362947861263272322383952976389853337487439967120791462869914935915307775844578199981770460029963836008019526438176460159429364014862783529683985314180276051084021995896879514120617498217722567545471400406119830023051970913966396341154935296476574011530958167251974397057318542235206423256078091744282442817105054388045912326255740606959821837618741685855385477234752980889596431180288991833518004502801797810652762409268004817182841867489199521358492532799170110759555152239394497382154488904135295144598657557046172343213842920525022885517975435204086228728216082523848739093834888115864277887025745998949038684583096896514978341197122414963984031413892983693524153419831729004802842339238023709411682881278622884691096281815524281826368666803529975153079413954124735160678114631261613070236121455216703399918916424786319921062891934500058385035552756438676162785179016662051425925937478073305999395823023762131437598048555304029508195664509371925575469547541815126788596022006159239274093166452326167638949596276374621985116868028582139473797649778785402839425821408537297247943863671763871067568876835503220241264088005200856665669730710749547549549066962342932397387382248673709899923439842715697914631978501986107098136526571020018258703548369252860134592107025778461669742239230193114029396774919601869969092969739739091382955965199570684587230265970820399833057134932273542368596190007822984828736850333224227845598357250306338877923856500840307062113576531476967409039562344325590973093561830724698142338068115708468913174953135420778754209037009837208408746620902123490498609651578992626126582381432066754268089329145479448355547601686249395439268594194214754508656400658910624870756250087590092947703922185465520152107334550020114072029184746628429165759559474368854766542778587396974217499341879854877628325996612585065064903384615739409996403983907057468788359732556695896614529594883800026416371109681846916678203635127443978520500131297588424143726322542231503922355709868945309762231082240212232016620127362512506704303452546021863471323441678102592953764977773168979451848103323651993042971035334072841167797255195012109431618522598972159895018629104791631036914781684511142306743802071776192455945957710704537129383876137498478785499495092007047481806008861996840913175098462830850477252183206758580219312247338933547739948447837529859002416981331122437870054693909273091067302611858032089361733999040566998690678008637328183794518450718302852010172566121589064068302693354973254744691318119277172593378329830886392837271787638940928417146156728133953156443082564829114125204698314333427899755530128641154416567748056647900578277138521825340698202269782156717143368928183023225503071019486529442391652664268784603873689352096314646378769346992078087309853662629610622670373885276174714939396335559704603712999765827013659115488416234293877881825767834470367757001415112860707605648071077751953277366163535080965933379784950724132468072391962145778849537295326516039315779273170384493603388930659492722148512494777568242425971723366950240126425950445313956722229388692053329464645233745664051066340771754720026844099692353711571571592608991237614105270370452968694714449956562442923209010087499130911342006355407065143426509281270698707678823721042401550334520645984483579363968322784607842204358912106088438706390009886053482377311664836656520466643483012927158693569251628514475696526244139681482028427163427105274733669011557862248365076348266992745527220891151113486796668625566632681865748272353357230995795983153492689614016400208518735922864883834588827169186106304760641138196424202219208881034478318602549442167734472038164035571709185248002360452947616323933231353171671878264500188519167227062467363011539205878309344456815424406948850889614058572569130002385030510237431690734917208275012097963197769391305216261077276390306329736816046942932220378473541150150492779617952811359103952099360613284637506905232835283244355406404525382057545421203148921544476087498459892670808178287556610544688629220274399235151935752956395087181245260687967915976236942144748713237332134344555818024849834609611635521089134953081722789734232408489935495693516264666599677179268360905014340201247939039529486181347021391839940130420479496690183774546610185041404540152971315817920572759700294614398685808800018586234150088116916437401212058996679283786675839754613240032127454172997449991194599003429599990093445282485554075705084399420145040323346324081129436031585421227248991347098153147084350918102116182716656231338794897390230479382304832144838520630379388617678348368456984751330250025629215884396257357241922446802709358642722207875293766237255319717381844607560405193115676238713515516375198524683977917960470141845843852530130445528414733905761715270870900510421847967205726697997330001284433027889214836307251796873643411311024520881956806648649773205408230399837542769057286841075276143452755634424513179939435518293153990606974205653394024618388014067891803737276258872087665891641226922621193670587722349299541286976888989824063008264496322264060814900048723039662666582961157347020384424110188854053871682150903548498395285828629292161455870200954318203630677794288282374555659066509481867730211123876121151800603651888043908639307828497043374305480884224486338296788370148991430395774685104221406312308924661893715152139337148804157686937692244206232438849465276705677992139730784137892183340645594181015395943429017587206649898483916675177788372330524257092031853979844151464315522952282718060680988706280117496124005046659542251534279477101516134784124955687102243944439593200424787011791022759580324608498460958313019878593329181360730887043476389089336566899072113202965928516024450427197020450332185484133588074386727478074148660336044668579240906969048151834637997958597214119301129387039237537198809204566354007661858451748752046589256623699872209651181135489176866562011493035981223007553116689152482833274134824007058700420979051471064257340344035059410860125607787118504747489487359256326686800390430711154797360526976891618757879960184798062094034170792600004296611780151628156557474096139680198731547609082955561583249027095006921507084677855396556597487671629370088234403810257653770441787714470620999473070435824074367135281958756565305521046608821662036169809556380767988418120832533899670891062015893082746739965840336162047389534703658198652348537322490941860153808532135777835481827612229332301713685020197821995283586563173259760440333269706145941511933895263873475389338016890863257335302011446622979560921082082694044422249025593032915356556462521278798006168711351589995641690136202919083550467756982326584099937357708513289069707520649080903703749735324259553627254592721792622236266024781959282198195726642827642167061402094460606733353577295878641097686114692251574164767195493972247542685175727865077378003896387350085381934173047753583174084351539016732988719314644435474091947604165153289811519612175587531150389137287617372555446847503928021765224476505253428109790814101228864158364352016957615221653063819851017502441427343025981822282787340162651643292160488326067895498484059687678165267665714703159841714603590747292329396375299151291160428687211226448141318948904279642340492238816078747345793481803887924480532931041234848372877058495914295561306208280099704745294640034761027986260327773535561473388756265363685058512403584089383495692720169144379984720270104518041967018383823480145400569077653206656658150213622822929005721895992683562634137256149676140307411850760336390124231640179236624644926927483647223452710263170810280773679585747351812926625556771571011642127461946488125380145672567529290812154285539745470874332181347997796492163710611238846223544110382075126910667137126147621319929264208883712669271230000661310330374877217862973952755950089869582931925572973447168612569865261931332944015441347540942005965800226827057282489172137203873333690323231499524486223966875609267232953266901923038904067688080669733325051973365091813489138166118252716358238215565581921527280297790072306518175646223539941296886846134835101771910087731856505611005113168550345267241423468593226395147900770345193629278807391472738401718863607503963944319082220361628730614696682883215779530492375616183824339361005555800315656156245275075056663200751893262886931125456108611975454279737500296979303844055052151020253464226028934494492146721294011639465679411179582536231761183068459859097876602199542137522704717236658846587851336886623598693328902326268675806736476391279554767550012611609980486481787822359416864547033138613364980392059739320097487336721272439274967251398289116910492106378119728186687824893099179362119758094668925657279545627207420267957482865601379097434662766626168734141036554668983826150613381441068649348004500529973905977939376147655291145435063907566552631602188451941690438842933587625390129038738970178066434089822965215672879612082256419518254793815690954590799965757864661231804149814506776733180055634449132163950044617356697297522293505096612534892578676308072237655126482997347602922874633734356987416942798933571894557318564343740073341213910875753632845033862839017287320658092790538101508123507742509257607165564881900725975278038144550952447494959472470043082419256608705865546188003373100507593921156113943626277501314848342456725400955519951235934340068017455801445046209773815779508021798541183225290223435872702398796137574812845199203820032941103342895675984076032731329237899697745603777373429742358517596620076083648969316603402467408616140685069517775381328315569992487495783516989415485668807752669812638740632512973871671165872071986493094673964778799237066375577712454111388721083104330368381423605803513435837667291626613763194395242912330598935098621750886342702068628203087360659859315058517552988827822135406795490043562387184328814814411954712266843205414052814286230189221572912072921041027610096836455286058467847555607206648876779366353461490171636491349094313924284348598810696768552012475501255267894400029492401352545824020985037370118765983234178687437164304789532748145664220906876897091353134814680591498345939566350617686028201003301488831491922262954596607049110960120399062203709576028928054185993474233351316000360367542095471891141666506886251002864103624776314235729401342424081225992560780249775837317119163448114568255987213359882749574652995913461309225022138300295051296393364232081351694760021930412134766901033735935351720329904245777945257288809265196685865083645845930337185771579658639733150646392525856258439298809017745140491477437865814761151882293362724848057262550719697827812813021040079352504520540647920438495738780742271376746758110846869964361894765953286299696827802768344684631289971386263445167642289427762520430230250793201433523572876051615432221682028136934685335341875051008475961432093094790016865133104129485230480044577824487390000670278490829498666658123670259824889955551117769389482635711257244211574869826272315344838197714084206571149899590519184295505099202106480637988896562741513814526732894174398713971713887870399901962055405387308152662981498024188542067514734511521366410312648573783749789545230462559389202366511883636959906840362370987915030340966834442731369561333957575335339750448472258275157123759195028177607466222882109402322087715362131344302153287927298208143865736845223928283857592540330812504531029150131895056977536044108518574216643715011877781960732135898201438965743603758651497935958651350081711075548043331647457983072614825607070041790260849094844500957618238847943227922985648634558031630687041376530860465863733619204852659515451895408126661078215909940249479922798174203086512118658108778448835379324755271850127148951554166175896658895546930266447099603513319053929593925818415662645535863476561073478112504190598075756417504583950762654415229031796633903574984657352818348058499920223583487148627667957610585362956135519387711208203686122231542039887271606406900661649921554740611427312582057850028939347887671861129655830338667102575635414562084716610367725603105014915259911231738073592312147642370956457885837537543067887584458470769918707374865993000026777840600901956115288294743448648006550909917686348588954402809037180597242074557320945821843257183900470625193454254260599405493589328556304366966754667835105177740479030508648126426365209128887390646984847359397103320270868309445162240556222033341528674370594367446968113232636391583227089942103569310255773418415175537874114585091253840846828325569727028150929056248461617987436917626253534248488135961169910386204812727583291979011203537254578099368613158545442690735417769998686504406446599901551197357002344572812184045471638681322152722004665395297745084899315782789799784380428365204817565305588048542297287957506915466156576865012952124782952759116274380080391011319309106988085623969541103259099644963052820612436913000204622698230672533816076218247362273756166421615261443916374401491538253789969189281360717820664573917779592678411062224115779607180950292645167108805063327789144274094099894457668851899068936363570494507199763036663642271953392146288517620450162292583045176179890686389258006314826808243740703777062437969322483382181503055623177518224327038545157345841080266291178313551510466363392314863027899523988793882864466652128827396738770676779006290709836341029058766831377504600110539043115423300771634871080364908927753627392894718725654415207041828114619829863896560661764702919707547368166771835307885975447523242634059613785698759278719409122680838014617833881174777611759208154920589106623556671407471428650887692372627637320265316881399324657407197383624876405995705291618018067839165509131415465337373663672657102866892444587817320238553707276171568073312898206905220067912105943727040594603304587454174403847706638701460965436004667660372433027504149005310235283792533496096148437528244449981539442603736623256180155344392091581720067879488815392184591530697216303359305078244073282028069440811884514462403757323305638110690611059122253904230710821308217580817574584221308444900978281933253004489814052121459900279274628004302351983936561720807555538944007892714696614977266546660470678306208745419344479892653273528378336453220074431520179376684042023846507421933100863030211140105893463180177041004286207958382798897407639172302058027062903466187186176885955731781325794503214551079970576376064648249744625553618453419161370060492825261629317477155678568900888582146998252928206000955207514181071776359755432662882959475692871722942400276073636286827759907006667493203240428591469605200221927583599016822575384635865660826863869712360878615972755775205644869497739750724037530964867841796922544306508951830776471661908977116905320768885685240699389450717335270935269442008970485484625470703227492954759313267135079590031905357615734833322359231007587493767906042435322620151155089447001322552636336598352316976163213709116137943043148825229506379715492030289577226323739733634804380608029648597447327500855503128998552984760641983445755938343131885920935252779183142089249712159855999393247587352191530012856249378635019197610739028633570447048367047322650153717857689668245344305422851496145484296213338384126067860314861418317392971617117033853744836444417716911239837223052740026423087614636878404422521552250377237971015583762065270584040333308561219885216859547169528399900756017464452077508801945677883227294882249601994955043770587545746134442262797758452060431790086145650703816631897615017592567722107173226784130445250230387382713608812360336883254207042177377058493226050792530169341762523452108506282162949641954827590253038305433235900510462414401431715681012466190297802490361564223594644006600195662321966227582153273915343193759964981575956644317063913407605905535843135019708645281982580744674146117743264522126997781441355752905978551736667031549764769820337109950834659454837415397199096581741045085938429479695698760857480004909848018800303591694073809606234723136994096529044970529401491575038996488696817917146070447865178587877466962104542612051326828541073440069518576956732821214889354276872542242240238822152880268198517790874685081623399579521081152412195910210957219996432866162353192855769793711159909304241420579168269994181564314659573649066634943985767754895814669894934620237491255242496951121516030053215671141368158736330209575586690523946907589930776434582663372578407409001826402984401971329617196601357237587696134830574633726625212576511451655755703239781421049721078581335256534012190790852856763135942789912149115445367398090396215552895619409864593698995415212544393325259730842353883315228434665203252386763678004492842156276146395336952711880325039681389437265210829219581439974184471390778075906085180761310787240399992741010125107209913616221809198849796483235940116453879730898964618212739781114265722055414065967758910382386012042837008222200726850887317625428149637081529941712528224975285602359486054753271448137376547527909193656277665736375819086382002888752862639007571356958890006120674246374771292720057143638507094634913149850708710334733949623795331567733638565433470423136330780625477790685918906797362100545842125870689797242988229163459383585076241840423914498510164459725401201554335263290325800350681731408679532622207763600938776118693376251429746389616451325800281774174062873122528795139676647139700926544147343082046921138888931064501229835396073849524045809959325889252950344980828532268242408568289225906394189441877897838739129289895521631328419202252153851216650966347584599175158525642407844383000278217965182424493193194200192365987350761343304740216876075985245880042897466582593388506576724287058535402239166427452368223349509142331516289603466907917355940373449732573409631291421742309664867157929523038645555707983912020539901413036715810434840203327295350152655792333573867776153677221107964886397197070978761053070030264861106306220149510903574704155408758653254344882077846445593785775634396768504253149629003275275345465368824852588172794513551235113279108691133975873401067764810673830859771512425558476673311750623653081875737510176277369347461294645450319603946599650765339598682481999715588123250681982481701109466555574113085701584442625763861011809753781740052885469772550218218626878012303296585375665740688444815245205946634348050140073411842393156484274327698985723100323109805549904139924685324561062230873111180361546230484243574335023741157237607431595744549499346177436487959378670773821393674231398431760120355159049517692569428041444239882238611482805743192549042409501646723752599704978651280685311295874793927626486836188337167262807909526558989513542125429709881075168927286717285638519584625228357372116174169925230497553955145215566188572078620606604062002569591004780771134707794981619303642738062850721176828838764153632200975668371862237966762113240277063746780688328108577573207602282129229181384904615911246110320525867915119075045529386471536217435838741495926419629319179096346298566949838796346730809761566402932007358832835449271818812872482914410454254214239326997284287982887139729859411117936862253290715578903815054349279906050896459958445682452415585224738519756366937482553814986230851128648972191529462821010522137978601766848521799790277833843788050936079142117690158729716718026702364916366655102826330918774364365391708418793850042371520213373359198964290950207230283963101512058283403546022462643582530822542905921129279931696806804231046076440922503614062633358129876588446894495463127285247685926333763598083460814768044413260004064577740823123263737170727243741158309733299907091920189762046922535590220350282381344962057279008145316727535410747339783044194407254689903111437634918189370967031578230147514190503151103615723377359728058308102545429878752310200581905337401430058101763551620193461602396336897426116607978548036935914860876105802666684184295483497835235130637345005737521975806814607773185913215785356201532032166808088180553529265211724200273634814823238955590408341883001202257289426301619636853293673069353925497664690997420132374173101110147495584642779378477516744794089702013821288359734756064277964117385133416893178805166180212730234372636984202484264278645114907946474898556908490359017167890102421932579673489389298644428332348753013830049641369516794020500775753112583057374194755400226518738209401600890244865052171062559913559568695329752247620138694235173389270961116611596712423681700719649681214910365870094493459734116755625091784023946863308072072126042896504107925536373331600749568385319765046100027046309213672671858767908069080559817850349282834522587671529354954037042983934107276439164635053974618576701960368454815977605725799979799050980295884321139922357166011304909622286595712424377996123767112166471631673786692620181945496562915731647597861478177584352202671917871610488430965232025321442525666982772946695873621596205884300853242407976318930315881981134208003279955953440382402455828714816165315709260920903901904172403964018690569878367617282221971377460355746843615146974195800857046116253896122982318616013209683868919241201589135502693172596581355601012937047251812518888242422436597942419695917209815082119294725696167499989956988361247184354282845998876732662760738201338487774247756009302559778960119454160645627682222645027489806449449729078157260630355265000940779302456969588495403262627786317094412943951467650344519604677869110105920789147496421026449097265781424169619266208123605735484265454967889892950605573416809190185495376877680618284953204809239828091389015429218306914876422225183488100365216670173606913151672288806844524389999142351828863402003560901612053367336188495033590709290824015019907783700279521671990012543895241838716260838844786484164754439445722296224403470364814294128221081676938584821765768711482533679355637854028127293438898321999933396231692420617742742554977156412620950695234182706463854986237426090651996705993886244241350650632025063146150645117758144766869541312043158750728941189825816084594932777635895044817707212485368617346316366683786697882683998299105413625908884215135989637186327340978198411736876182007811538338792179612246851057259401092085299230723099803514833614149181283738354764563770703279657846685306697351963591111911155954709860106753388643657553470041386687214837972853225599532560336995997936572394129491708272197016902093706906234549031196850099269740928037267131414328660293001071059883529413943384403743539911930418396227684680113893262705344815926440183303804214888646450427870884520840349968955212913032831324830264886005600904546680116917305882162885925629916362446341649064260495539008822088686207226767690612211511566469326104073746670829912398590457227712506103525095289157823746849403032666090672810229203918634466731379076205834107992011066079059418619894067423845674244433992844897449290235297720098310566549496270808542948778274006894997101081175715142365587890057369557089272085951058505837715410584678951992765505481326405557623574476712112657542232614870842660046925407674899684171704665770459527359528799781530421358017286930388671388135776920939282344446678035715896998861522229630471714350775771612656556265473259155282884067430676035956742525064764471409997304696870608698794409022978961259101996773601771950242090600085763647193958181183229068794588261001994984242524573334933762932617102262090419463987395305210982137221315617969205399074653278771570083507730562059696994465071569907213610370991526340940916088057621561035472400504988252749704180747029271168537978760251217939169629483864765994639834195744004135290622764840709469653912624580596336859523525704194514641062609211418003059492771999747439109360617423894102596580741242432552021813587455027716353826730960494295739748229765729033409030198093973618758602907811620854801285796591195493536939311927983575096894950386570963002376312108682502583405061426732544684411281779064008285803311085144815490306476297961525824537000061441587533041779738482864074005828439707428331588441583705130131848605165529793695543802424996167363789531372508506284042772261666427969113141287862420366105351323173975744548031342735373927964197707494393961871930835718015375990972106564913293932953158702668250640096608671808030695901251064290057593887215273639562952407055197976239492150828687634951418800385867778932469305928256826707909282214886644221137511351651285692521882813436755615585236306272378210796323939145516021848526650114618875950014738198695837332208115485321946534389916570804251723903936197323447052868330489341141442002954955521363647363710322320152975128686855954896877751522376314472619872977050522479571730439051990746775110447419634466398131242504945814997156703497677310741696431546495987549740738232112755511986659566780153079795755670356294350808220416813267865570023012896226305076834041091782666464111765456129169208474688833663679484533778508963110813160544761155746476275730755508071881781242865649014616479082380419661808994954016462586712790414398980965221385608076188651958062922648080351625743173914330596829502969577913596358344364233827025510601522764430244806492286904788691172821341348528848069957310744119527696328799794987310465500607186539719947150148665183447973824393130081585585850276131388514482645690454584082767325709526358906267963321400661640019894362602872796016249792158692570633607570782988209513153214899763694129429586822206036052654104990666554231893762459841156957275009790433295108620649594304210355030776675307499420315419311807468021962575784719820962300212471407191579220738790385671572432467723819191511876238747661658251880821522249019257502954486496830617873898527439716089095202644161610060389980293344915607056405492496890278967769393832628062427576947061697731700054771665628150123666958511880089396235356795790436684534324309400922319075355762132421166436737294810704799788803607709029905769334347730879868932605669873223091383847750478346063698903789017960070576333409580867763804787786272824237729871686932875340497487657164236486516007594032424086026489404490870613549757192180143654950911503340673988229184795489857797245713322516214531788370180862835363283585752399727470777538184660279467483251967386628032462177042401834041033495556556703859669779750617417742583715677021804687256778145501926341519252659634265718314557156744750660516367462058276731480062182419179501778113984517997908720349691806762169050334978478481704434300503419332456578568435628529469772674033335408957381252485215042530550922182304108889998570852114441664161575965071018106149674919353207388355254600462158045052511426685919032922427020533325434698802480556658667888267344187276764023169718924042854485764294157978810631993049608524485083762256166988299166896405347191006636259207429988912840000949541921768407948429502523869847685524808062114929893702385640490936091797251067615542953818605808827035167907764991482103201807856670360070052142188011181437074105597625013229703299739210755477210565753431997875755421662889851672729942273626576911281035307175741991852889909270687450368607259030040733928081706767151070292759029763343437974677195378426657019352469211360317042505945934234948834706950167368965402985524963633495280615217334809236030331486267228862791147871770616147991316426250128423415339629085695690515594981515223989606914557485152381594635250209471742106352766396203133643688003349495491738767117309166681594436760549099522515558332870161164667942263819832523116630590248131911954092187305199195249222911327526921122361279025354321268515139308222355373824849145047594522854292874965445504382401017297868224539202589629033069937221848386834259577489464602549409605661094260715953956169802916990697983145002167097607408641005405657305255246267647662317686354214801367955011237348720099613327303106488986960678075711195300548722221298230383534764960784861876007344011833666974605486815672751020055455451395461643939867511980820497700633227245933847211780297225345498869527140042877191214029955627522088101592469794033460315943402044521061573487713577236407750381669363337377411912369495107424466408839588926678064070141871973804223411776776907361124323009345833286741447072100731784073710123348658757325252218456615375590201742692267753966517984647923604196741060192327895475599473140482385821053171806885013014503144059905968320528769924221331683808206025007537804952571360860665226489894908977100823481477245168811377529989950165256351348490266779540544207976750743424866633794279624757813481067511298374316206687457128525153295863963089831358223430295480951917712590623766314786347340785879451780538380976110675252244546173981928237578319962332866490835313693297504254858219121730888967977111699365920531448950095633440262196882710162454485551597740816515828872800395169824198829249178861087439206562146540609630236545565768211456277784751162180063488568729596962817265842864422128595788051945134983706654554127669642667269256981190100127699999067152036067155780723337711232564552646820195267041353911947690597374281082489331752753499591932377068884496772999195592408966583209032267553569961911591060210781946153525409730631952559783092424815872299003815185039401155819509460441819387401438150224975577427744200546628631233108714763747824927265576777433341491306394740884923755492631435313118861343790413499564199880767413625318982343163824373080311321773166994363475830140268929302185482341016469142383138433891742549945380266518934281105476077386853459988129850535870745019799944717183660011795998173337768048848559321423665713010237965971568329540851964467900633618430853898216568623099697997579264667400656028071444662521668829860957449727067295618245565891722792958703966060974608038227517399678192715059561617789477921258766936380448906360738316275612464892749524450130742054829896602673051632179779445220772925304171803755700743392414984804572444073694529827567493113279472327470857474904394969696850158916469371708225830093858771049396138646609946490395158964746560738462010115858054083341605930808212989206678287349007283821907798364525956006463346501442194761158355471562445688378458975398372138031187321921324744565972709389407290438376501064500350048163560654854173124408525018696824813906614376053282940018887087559757688552490089799364731501772099285228920040479198774586375434928100991706290477457462141027338378042617080110404635707432454887678592532803258743364206518447901236735311755050142223134381664838936579855218217598724484658656737747970423334367751995823094691477714917814127613354938730462992584176252324850071767895354675430929211800964100426809023780509441604039232278302182394779780233323646854244575926753165446819535797882573133717827913133187559300828861778687621977121559277386344908030364249630964043939898905390156084810543331488707137115458932001443060034687151631872633512735096003279691555287928812603453958189476851570735066243559596779720215659545822190096087683433638528609172800607469968781028375045508685110898070743865306742401722393002129383551610111142787082159496910190404670550837772099956791725735916128602394744592999199328872666983403254317615479010949503387013614859263333465429761084389619079234060053549157827764172211719691610217972904102799122072477541454723591796801361662953163055844289862089985263558286960155732413420702624777705472888486545987132151756690324255696836785176353199964576852811889742069424655045399797361527495975174628996570821578915426590212757181346916817407405000061824753214607791226475950836397051055469284760173969027526966522297470554467067539824737810771037205406934633147020039825477331513852566066970272993090953157418843160650871630949876634961153223126163047039829776214307945700527389611697068805626861146646608193165016534355726645136272354654736023055149468565568752654835389661628526461659194058822395938033433917244052883033931782340734661638903838205635094877107443783929368183056968699133122436076291427572900517327096399874949270925545737013679227515483279054910522674222038501300090374635221894827282766127937908243084670142254156398052177494233680261970883107536841686358080397790956932373378106903591180783195063633533600432283640827251636648072364806686163897354675988959618481708995006508765542118541273057913793609652306722372596108451375797378011540520559260797866726633882024339245212591510379612951701949272525580126896757568956647398012875046165986205194099779661811216846466280657821253257160170886340060695227892952051839552625726660904111256006141770341776925613412928159207573131821467382329817424925542332351517652887475539259702876382044838407480527560979457661250298679668476333670267987344482534649263461162683893759130872886126329622307593275633308020882148043893793879369773506157992320396747952152355286708609350463411041977854056137702122350470427900626787799404300660001631678531821248422544017062400976074842658122370260612797516266041382910789471960004927226682699319613309219642042819267111359007271833614421596968099323862322605929358768922850413965742086657356947538661745315406542282234416231821858051362416177943863359352883326433458990054304435586967938653979263800482624208048055901033695895639561791307156709167354537168042640315357111547104940210984684074151802835418739573178210620378159127630009980123021215095212609106843641807365051314845782815092388522352410037145243916664911015680181151911459726276634655309166749904880805812353530727997310580303393250835726451356823783069894862618213597487065845352639876101883847971442891074395743537745418267217351083339849831163901830716446260996354464087637518649103901438250123380572163735750965688406606382756928575557560649253806827491002670805702460471115988258947452117083563284369109978719967532038907138872251389978120566980237575689018643602349707921604368403739181068618448178241154121280334274954684011736373654961856036784654098298174440716984537152352502053824896560577501002269208430159214744196673916461720970494093355437318003635069412654638484196565361394650618290942465162497351729116632062079461267090488199555039492040468587313418381236597464168309989321657394323594356986121238444674910468924485914705923274656998379819888396969092064582567712403035619320994929992481245918292829094931196134175476107604567415178457151024833720720517729267388646479372127343875033157681617571748923644258930222043351610486977338292528895870364525650865714193914366909750401650959321644796852351002990163174591631049220336033408457080814020327326707494076961348868905209715604930521386425727182740217902017523561533110449213709368204074978981689255314193285921131407257471814975719831948373514752035902003439724391656281147897845987223608800728760274010645469215607570300227491883401991815728275887094597394928224436885615271114534449074243417076063617757884401202555552449516746210049821885737234594336393574118388059698774283353086651820115166750286051783692178104469559637114626359319106472813072821522783853909471895372622305431766868722344888909035820778321862794820845327319921350980608207698296508358811837116928643726253009822930337893868940782782913436903558453407294663567938693430198697788634025416551466362122345774844225097361303030192230367604706517959364984563573772256306780258284791654415113542804525475325551208942639050695397448420855068584701499204440537457258416450990362635715838197571413549350953802231231082349319750433120621615176221119984700864683327330057865929345645774002948207782883668384452562195860894708905023397574956058487305321853234369262777047583370851469295275827462276690473943748822298198148079019380896320608824518137619330811190433399727008815465095798527816135815097696019264397739959844705311481916848587713113305279648804015990363239451305046216082089804672343960485755591801006315211477090484811473296801512159015580020197641840125600330947268474240904893899604265043750527395325680217635720518757119729836574741703398145602890911865780986407469905778972775601064547047161445332052373859024402656251454574204296470711127791800288973169043166275575696524429141433087479766962265713971173258975381855960998121746790614739839424149125262844337809280817660467795216151875866604989150093156842615110559042059920565526733779057896552895430339437335572324602362249306084879381641575706034161229628450791712158927377675114956300114424870253530674657971625031448524754219452230842896128117133104718386544869105300493187115019586286182578763638894598229435700615554265587541608669700175956676842694828509702003254906656356397481308739116389961153427269905117293502881057214923681697705061088086634048556024493906157823737067094442633991417799774334415336689739133488157610018056949027523549383843562111409033920610270678355861121749366174900691623451678789504733142296243507561736459744917451841420008394070726292908328473406710281506063938726402011553393626669291505046133600934455129796929961163246235382906214891212529608694248746276233846091770339910910806073408064355374806493953620398392663040348992814408816329919867594979859883609538942956486348391453044913685013934055786029274704808660998118752492721583826349512996440043016531719657479868012472914142894591483247047006523788084599703520494848587080339183429818361110896689327181262907723104097118237969807437658966138391956805509801925466457740085186490744313083918894826396446002900488719552049072708661493536486914279211686139850590751132436671088691658495672789967446157740424655267325829153088970999059239848669357759600602625972832408108854260491202184682722782204779245630859529450329985583798567432133879465999384897523390504960547985828776979927229346818568978836233707156894984823828658048232844674428821050471010474015741025616939993215064630306264409648351763567406099218816754252205728731892789343227029518395309577407470945758547223578299982794150262908747924639660324929985837797431752287145126177960156077586609930348214206463845606416490320864061850079505719756235386351575600500281254583172494284471640863416953534190550314229379231987484910790307486173832415528599443771554702428660861555754639318933989638593283033259882704763583870088866399681601375270110394814074870836198272555143244403463893493772447739433060714288202734284002148915252520276359145081426952113750109320364537336730129532259189850387687259199073726904558888320859050857405470071418120205959314320658419253682224970530003786947148893347944345540162257640763407173585377413808108891450411394319368167441035803038963077418672899660612741109241367200468555229444965039205329377396010742324154304112779908356638281328571858022960176978923779714771946210864326540415721366511659374843391323933977204667570479280186833982455357025994018047410983542164519894590177996455697834355942950753271605063690286906479999582723304575778494077161533155881379452272981427844102457057651032007385814314204713554727283328552901207863819166687017260188107660477252477292257472104364741458596198228634414394379314400163438884440581642212842615902967892040214438631419075308704196482636180244735383179835910473788589005168105163094541559086542544203065689471144134390856087053196474909448152348722679619574642148097663136578799145398090495595990607473694083315057742180268895465551327665248975929316725187470800540675061978601984460871938070436041282537069043877960739679007134030814887740510074727027332895841759987378000051326694452921021690039284863123794536906329693541837844676184346742854828215039848830113857553290130664636537502399253442678798579086388321185225926805992396513824243410304128411988175360171501214326329240347022661900731149320288387617975310804006222853007302069774742949503477407645136134347130170314856663230980868192411054885895376902589776784389827601720077505397467665781783565205054991761440421351683678878056506213085434749337431967243096002225712338738853642011530542720097971638249498856777356836248585808799338074371497823800267486207445855980624652705601760099138107590019743987301159563741048198259675816323026225388400907467287259572394161436723668048737538243719851149445263724093968034105685322360351776479722330274642415323354512950976264394529090761283136466979472599391508262845121825879370783395696164596326751127849376407484138986061952605360640310908319787770965466973170475958990388569231917046542150503506308838762589618123345910060358474358578075369926301414301920528805667529593880182889053018200189025985381690105706948939111908880156085186318995982172102137340353245030638801197968507421206184193583126294989352144066112061769955738620314651908864852571152184569114818181572729787597471163253439720860342149786729530643282352267825938063853197597191319643821188138009115653844591852403621244814947699828245006286703698062247364384945025773997531490042168950288098074819501007236602836803875013436687483467220963918197689657419524456614325118197909631298299608061421324828941839676787105438746376337918764708571885821649673437645305544000877660661847952631215245846084355706838294195980033130813984978759730443821817665524279015167010229866094659758371359412382033553566546563247764121992721829578766482802937587377123737075094333590219782896812875125736856599892830034884980572316963180556451129112200137181234641218736091099241782267567483126004868109851133597926472384030298550619865354318055772579908240098797429845541233050787273669007642283909422012289846252083335475470417037500360631041264375970973084258145499259785375654524447944104614063784021939569420138985037076443795137916130250337897643012260160822117405308682435379322355720498347912901503781316457746906559416596323183307192677370620221151212527456154917431045493414165453197373713467097314523829724454669981756970405021455709775444107520420113559682728834440457542315855231921176102589595798471817257861665164022477697848268846754513489362509685617950406244115447791315863840333601208098080930027115329919500666591741964686233851982832770573157531799178948573960010440393474187370320964298519204314680099319230683376903808352675462773296791994749197943866231894924891939048364167125064133169880420378730333885093637856222173998458129511147736009855497020052934141390966146016166021850254576508006928829610673382597885693627791251164412013849959582746028610722764443680951761865471483615850947462106089906191777866061019689204836972643767910369073748764244398534780544689239113837394041192872007462106602437464782497301007790828309155123205224049298335646550511878031533880943586443407976917597653950029205282866849168539482721390473226050345432371285609218005751876090500580543882171545214572278961169001035302851920882086937092939801321278917008809088917221862564086753752569596960917254162914801988576861486291423441750038076263151835762115519653498357776691394699373954710257610505186006708323826821280772745815874730134088155714300612093381212208073051904914983608433224400428631805014915098592677916693473897563533162791603325271029903682820811143240500756539564837201129783665611280237061623500375780042501596658826081588872989016135611743669499528537213767827407124832130824521136411424471475141480201614525036853385025087736344799231509631416044797008579528502723988628369473128562281006861460734179782396823918300856069865920970730239494221735223339809776730582740221512801646247322135663336294312170222842982377509879905495839557540714973699872671230047318975265015176827818443905480205573422529999150649505988599446640090815577526423725227060016072106075101489319360555529731561464893691091086621661940441663215036829157766124921738224397035879869076437747012635482288630269383701489583097092328228003173593150507249893322167614085942468995840518087818986428418832099630818882135442674174872479794102951038439016418545336614312699842657490098573620496578596149714826392750110624108264070160155817072505727446182425618233323581381184671773386653947915634722839569678733909766009723564944399583499993623458701373105326485589230655758968309915102645015720353078563753247920246946467507684210769038345520961073276851446351044873892030390703072840491123695485218026834214381010917969257426699099687671550704905960952049258597996784570837033564282340688543713724788903277832016366367130768320047801008141955955641765319117903827935366818712528943245262572759668662587783566946978712385893799383497545964020651231467536758321312985377973734874761422011737484772652050395206724047197932362571101857772260687012073987563372977567461727708551261874509490061015712771177093325707097579096343122430157683835109893555797600270467539274283845464707392678679452970014311346363112079630638009354086835528536518971451820471935983466052724956242103344575385188816688690360332184731694302931341797510888735904327326241219008569450099315285691766318594311073113022749401266004359528163837023224500880002347598389876085979204806751712319296823673586033449284314497995669814075455230417762425331710410170127169547107302240424618401595648894274671362841970297762153516322993971330704338232031540377668318015709080967208019201433377594999683743393864255650333951179466942910245906206464716026414549580832081270480230646906141835343242316314142391903475683326939677066122208703920102483967430515606793095115053787411737113678218905584719233923153898274868575768506497765068277489151539191911384011527939333061421440538464061578778235142526643969508761242350602591985194569498115857908460345945463387215920491748522379406076523065321021956393363668739973182794215147542920528308708031129679034838461593780520902865594602124257550944087900478841531721088450366965766204442103112480582429582627203222716156842933102271983475573972574923166454289534538594478980416850637798420275732724770173515599148935563789067775728642279193766372864498375436591751885473559269787122616317672200252178951682405892621559189243814705940685733447079860328386855339817534646290002520255558979445098873702488666168719176177066086972504680910533889221054065077865680809649376938921599241798961775457467323907630241406003913638942958683197962953698799552318535691376635038966567785866250917829850456323165938992244335366846485773025203612429348566348743828108217475453342099523477234457118858116906736572518195453155092438425602824879039849906904673849321602033336807174145268248420675972777890162553561606480857140562171931899912086340529496517260576001431029085449547473338141738410507106621759673321300554148468487861583315273612929560836841536545664895006579900683786057322011141590087141086449035236073887247364374776400988534186511488971692178120557598006899955724491767159706320691626719168944790707740691409880186356677392087532965074045304931610619249490776457361966781118616691257421817269379944742153422244120898245694025653588130179491433942718670867742258032806078806244312802867795925726832994115150673835515121896963470291212839491153329279656277191004847318354870853273334703020821478694727044415984168806465506713081342226638838994606802462595371635974752452643947162783966973970897069264072666437071933457480086934949709944198133864656549058047498093477779620811808153569919607912037247386227172879374975529974441415983048125228800761584291908551724484488719622028125768308431636873505603187696532017363214605486620746412575477995123335339761846922416284351186065363634569926854164780853438251995343803042628088577057622696441808551378878026128938701389172859658660280550677179999899601497702695379848044621796925972315575375533230704118569250956902464222778300007130849092923178904234294775133196908969623296475235062276024624413142227408873119078312161457402656341771140890666720072184392049051368429636314206035225768587231999908941922616095255927855586305925099544925513266129755032101970146834406871753227443013914457738312484440404429655630914637154645919201760559402641392263459952640188759523530646981849357119160188441129640653296095763303821304393488994809664094191966708701192493301123510407238922603909910714569340516762880758134875977475019897841134911294239663126686287863720370392069955133891117169532248218586266324528181183995653808817357809503168699716458077670023381312100462549403636649641483043736972376013087268351515417146766146592498152262186552683461507385643368124012272155887206649064281113303291667256387446276016799073090292348026677109360752484146263518667669851420488059816017719410323761779865553280496213861350075667704694400387047318649452199181916712754619648897811232221431739788311899725962527093721887594967565313582163686863960210055312029007112626134627619670325646086800334650560925564909792060984389152794651955913529752843599672596450475476847700810874170328035921113400289810987954426248739472692198270606717759355615668039439417241616760483993284053170658181388373431482925137707908779571190849304796087526549120959106054645653676272211641769256001267080692198765536434308506119266506341884461031317221041228535492255865994817705834885315619331751238481186170693204017222588885882485862765936311440790356135132159494391252703208664276465932121320888682759443057019186424085250262997626282158103971085734127170917313399584808586732120817103828759175476886183515975415466080222328685958806810744902332201233152434238095277418940595213740844951327590239368375183416225473337894055431734301392629332580916740564363666484806132590431113436351612465242469604988180558964699871026976880461190845619802588541847237185724809470554795422241741710698399286443459568296778104163195789900765301294555626767160497135131299827981421361489661091962648299883416060922420144842810746786479427823502706323123055045957395316030082425058938391459748294180127150718589280495788525539899172295488479020920168362252693514571522122357786232165301123354103543260314120060672234900789402291702041378627434213211649727683795399529797457568497829831308029991087669381328532346351098244355084284893659642094576319647761541399861367055470165399017718442276394384547231081515049730895248425362479117520809645263450232745209184671629904423555736590438661290111750468912337051482758922713988543446320750031961997379778258469093467957737486918054752106665776513834872809594137416191258361225793651258383251697358519515421287101556594646689078696787031590101093712891422362891018856313691207590913630849771571817604619740275221487166993177429058876267059364529262181554370317170621152997736952509649663902352637350682079188583946486206416357909818124317154298602596295645120016619998722342674893061046285560623412879526536287604466248718625090471834590845359537812090646995531611032097515322344207305632914409844545562266108624729688126770946005715966471252782571972169829977606506616854836855894189650655824888558051028221966186280493404882671467545164315905568308238245393047350208713965554960233240080172749971267789853351177376392712759673687855031770093256974897027989691450917232298554700780968778077754745248908078557792394177729134572164684315355023706776981871720495903369639629318088500890050729523698085554386024379003217659836968112982839447341607656129773802541293821362941314682721488879982225555022642905046001499707574751403266112853075598416531932662493478373814035166683456605945404586754228777306127876125939350034513869549575892316580998413368853447065101413623477816198248581938263055723444671963402379091029683952867438937453850234131451131987106289879883215689893003154806337665382556739924658613975011741348136810752501886812851505348545752359052380365521020175560696143354561259569448143436609923075447900147333250459213817111411872221970499217164237029186596482796181071680561498875336286746522652046106129700154619090265564800319229030114340325968342656480784788489398669056931649616190145936151931820324742894111175672174268547209208669769464842872253016346302821906162427947291705749835342885914057325934385755639209872627927327630075788994324438353579133403208594125608693839387671350484802454240316138173460994998276200152830180788584684081296500135498980763557796723395434387997182594879268597497109020151618583818977576673667456715328109143605000993908714501646322427721960405064964390293125470490234597750503530591449089522949176792083345613078559936426140347399130051519192378949243539001290409584023311339903211298464289836732585612133660452764611849431800801771587060840990067057393929030640882511820914249067159307387631333976273028567760252263238019106668624001866859174935481815893802934552240108519212965708761525952370953119992028427131910702342776531475441809563304125827617931897457933519008173611156454267837937493967453895680523626135551840443400726946761911014499576672965575379955034901316801694880730068754999507767160982529646892540207236326731145508153945490310640084094589446967166483991606327204195507203273450709994766840730123465551668772908035343972237191370678783809981636143334517758509609390983667387326443779676630498748048844880446629258465731611392044477579529849824987651764838951467536518894342451138736705778349063701537214370537238168001725737624019369743307942105161115466139152176255824036781459105147925505067946049635031300379919963593104189417372439429040717029786350075445192718853755503577672343485234949152395584607287538092076055422463506692472185912358590128379559854362643972663027564168858855308377266104495046467949074586619537701424176261199599819004495486293389819756672468483849458663309470875915705974297993289940125755290277805303238684284388076299745186469645711727039696207432982375991286040953682967158137275395705625252202894917542642627854204155386732747056489693732956942874364422242846701399452743425797864801557229742689238338384582446366681750901705023256576741594735696404198901470715036760704953624072050885767177862665341536354003182993118560345458968937003206598284875006706492812807876002991063491758698478794544528563617626555811135400637904325151119226919182069046164746823449982632698853725357621610738567230977992787476336538470117906789959573601408972297192524630138353053303942149932146994517236842991470301062552685551298695435628946797780029927590509023566429880952739101444324207374462500771016565600430736721069022108837147635363833207078488277520279373640479309667396095644397229317170556481525926283952994309261057617294023443694095374990851865122801184130041957876955472703180041754848825131038280158365037841076286520222764716785341793987762570656439474559969778057442422536675445027472671022127071048552802141299335211430811397046411939138677328119492008978292953819772818738282820260332075452952109245782330341535211749857074999227918978951124312446333390872468962700095689338573851155350999449671668036219706358888680706281523161289260187660769226875559472766676204253116787178116811327880697333405986653980781757744104924673898503221821004175549158118063172999861354862711623797716758810840851964825559879748835953301784250307542984505971092769667318238321974237510293579927677659200973321122624417051292646710251204320425431354728341356667014921104822011448553284658918758415021792079785919964983684941547472072657737051865497190480305600944937789090980363151723901893171625373126892761421374913338717890596738772107357771798342042481802074941536310768381018704713549479905817157910565099490008755614842547681074595623339556361316259835461742799671523146303230980759888313603359077479780854498130839106718709071248739371504072089897706107189666326735967492298384135578141511667970057775081237003497755875910981424775091702843230997506237464603318051863507948404431262609382765576725764226373574871176051340759512242797499996349493951246667550803425634157863213441710016696125982589103740347838524270902373392073442873487287342800635184711368395642714723227954035020051250357614517571189341982254845501443153062370087190831201339782759479735376492187779320515583125074517942327305805703610756791936118093086932668378130864462737766996079815687634765811015613912827734392481154173613897800283403076752329156481204139001447803047199928963521165437056504245120025412853629362378795430941120918000651364632224288925269483861189878375430141759157287499492507685772514274292482517499910625115511031264415360469226623214756351605626205637479103844975662689683230316027169325795013651111637036888704575762053867913806034959117106647173059717433480408736645819483224531271158590100300991013908225711082170750413124644288714292994488788115593425597970914300854287568206035017076569721043102105551195863275559369434696428661182812391939632794213744948743309537677735999615785538934489750411585530702062113857309372655931975414785673357305758339343939633946018296448147570244182073946124266673409948506492642675563801061814567498660716906937291859341261208113722982467257264910423439182383465371945378742228483945471384697082313156313900962073401050943822012148962042717708565993163493815377603359988507913458213780615744707817415023263088753514284280860547441833293250647048525278720502409635030013160671027944382524983242368033628995858179599892456008323484552128639616954725415839909043054129192599595735316277066391615289880060560288481069211623890430602239810563136396121518557731704404949135411312143430601537157653073864686930495788001732652920354113559466584672818678023298460931212321641317508888127372009701171373751677483499700164526048364157585562014259736467882489994997433293922373392709734753600479069493703144007018069830986387903830316756950620544194504578222778649270520371375548808699001630846537676728597039435263070909947758832026158863199766588997457777505150325075867655409654159158202152099620491526163412721461134668061544992307685487080129372609066428396516581745100125337031548690035110205622275479644842244833559181964891366503287733806324579522123673311682633584391985999192299777715807345284672513654173918076715405259300943281931691977396456090582586082789922577058888433104673121038533029148786928005397902436175370812137071454789141456340944803838877970430690279834837198405380088758648666450169910995001787060129862674891439749962753027662722815813124535613299657533136733575176370407552541484755893045945010173213283070488342503940778718648408558070857567209337925454131577896880239128058212881301175559794887520262662109672385870549998630514269692580980794569016192052666517656465971325901442983244625345019759339803567987918225172227973206218337422817424252276241971374356671780137777111677270970946316655752920698301837117546534404436450122737369402689263585673028910042383436665032006004621884202228111631958074019473893383403601378195278497720971542425582054196316426793772964090307216457988552713923474422626727835030229111034153030295678335953320228674908144011501287483581956864597719906268449056126027117134461214509471202508148051311547069230805456068532682135997700137773767144980331629035952837327883607481517985523229118896834646895776447855948761106784683833694094076104912183099219011169875263939561407806803341639221202705404958019609999479408117557088181785260169577850721609016124092197087991303721545133369145594061648779454765691751088353558858134368166469987784764966276986115378155688371675922327248165727386640454471855749216535659185038444287138346095044077245519232453107068723969499699700936980538312454533730245037750541746216390630609292707510185085440713934794353259226234032549601022914274458888428235349821158794645400433910450995171672247741775019439199046972640464880595212478174923745784677770459312084841269284416934092970861650848664611901889378506323502859253291626011543430922180507905549455741570692675472156060115103849120844547262829787968309381744465916573838944567315080720233551351812417315731818065406055975817996664036313228737304168385603713573394208290398817043993120538166690965508490697184716050426540555621906523989527854500128150561776892442776464466509704262204028884619468204770865487378756130124761459492605732158213546737848229572253193393712162114569218307381119839531232307883878887960189769158509237643706015728017657514522177788561608892848548120875878310067683923005127860991167176591288511708286628816646248706765078140478529929037291806584514565403533174208222898531753409725337732502356940572903803230653296807097532224424689186399074087667230387722298804636864981076649667387132336044241955291621782656460128810086621304053174395848318289230752534841697370486656025093245586424887175355950249972365623023724251491788950297495640793374221649105615342677789585676868036539031222681316542362909828741151857237198489749409064444102689615300101111008170907280730367997142498280735481997894561602837850452297161287715962333228401987778146830243106538070731913723510296047583531820624098689824314502487156483201982637654446830607361578543671801084006427295217496516003284932202737086901584057689973462941131940123802631882164358516896467530631540198811627240068619515050680362035505615090253496569105597515244523898585948988434371332910184059429299434943039487737319802074186578737732558206972818848638874793046203954795578831098094578090011790935087791130177143800697764800386621398015214509280827938956835932922445049538132661371031370209034634540883212000539416447878769822983843265767237469924988764690700268642816176174062891592456572227435060421024166322215863814129169430076766587954295640725887950889856867400889922140399625340434637354811273144966841446833670936644356344860868115446379321484496499534376484961917048185339085336154198277376211162540181001455942043569611631878088143795955280629979321650317019125478831097703848104323391937087329009343090858948829317377308318727993144164819157997079629046894059515872608947308821823083554654663793984964253039184352142917673154845868002889313409895953130715253235172180154932666555526874888128744668919368111925214611206798408430400546262026155798620629426026699864895288072283939979323806877650618183956551945913707241705864268092564000418788505644649421415326116612142572242089177764673005615693136309186386870626247841629094383095458016259989126492853878741622995948705209723530432920562573901094938559898447677114147460773628150504045629146472455641159742842632769438816936846119292487204767136487513460021790520787230243567630259846130869629027599578814726043791306422204584798072080164237445151898291468112392433246830444429236109433708245321282289114230310929020511562060217864712319890638091551159716479904974513629843433047016778356260449318106515584529683889633890556483806959135229239142152905636003606462343296027346716602871926661936520453813181560812441927552415899636110907083734600892337213899184881384152668782895004360574432585770837037646616778153705979015757222926797239915211619382170644254081063416854392158129906212157350255735843737535951800285711409522721164284918524202673244712681116100000161442638886149593430990167545849457934408546463162688057346517901080462927405096429209748364753197040151526112030227351860177276889484420448255845496569723828335908091860430144515980352920357715549391751925926877494604112064808457238254828135838859860388444930860186737516157839021631775686538493295544680337319903451448455452838980907693773850726893182721882736578038013511705870675491123453147518627254837945830529207494241593215767168156931288683138096746529363372120533915332313721424038427009700782912085082602752095282900693146967136245904813950002144502097451566869741259211502275798821981836482832586128501606353890307576155673738842548833662841836818627040562928845737342996928588376219350800812692460362646574193317516289264423410446285829883635806041364320063175267934020394457055886899290955896838861726049141554488220124826810719103203030080848083693470298644788793747108528923170880933555961148432545724048767496749388170106087946775333223272440143831299853692785801356058436005311122100466630106918329637602898688178206471847371447071361042226593552911860004128726246375241921005637357564099457272109561021730619339795100054936797589249808525354954451592947850605657203126234008803473708522765968307416272351531749290026660252724654928194651291385394449802511678208495943476936869995685080711541392230014884775513675857039210792199780137573317028237294942524669828804323274914670247993562391739152445871793192016006136236159452293339223992787608975744469730055795298106481573921755666129736294472916989372651035621315324630916785702886596702368463785938887044445920511332875905681211757469324406076785822580670124756465152111825857605814602840830532700726028346643973342730758980978424930488159492169520988940262008885604824721388891271793598914096762029110485613063183180363779682608699980614695195038136252223389004286430933562046271629232047973651236597010979568423233867410861927267550348112373200769851183045515250112388618306299774507956164352206259520242991838464228382433488706279735719682083558381163683232522991853193539922863171283314837302602631143328130144884397687998250061988121253894571703357010439687213795330902521422611315649559539273942524681938954372001650075519660791904556879107458387851842595682632542271045733099199777136478115164337832638782840352260818380868432869499849074898131483767488380361164071076913909094434873537900083008193517589882827039802451708047442348828792952770935025896662442651112852730777563606791157207247934521460803004163903763862765293513282449364627352759682745754705551906193712293769185202809046728032464195622561547570679868337405207950899468952513364909471690784614648510386700670277401276378699084942766562770218663127284507566162693279196600464435997805396020954631880618489380311301485234318247571978863293741381860538471550981865336152262234683624111601425946667358127653692945846641861516379020820983959659605840058372368875597349869321870330161651130712113343284408172921570969062805227183353806468431610918976560247064060678546807136849805313801457567717814211168670878914857082647187793996105614376959884436961431123829326176203095854352606570881067002845487792664333916090431662655287612640084059669649374013433835167514333146834428875658839401606711947116919170467565621843578399253882884191350305283581229136809574228219508310778703384067230811961054088294511373295815278451802376879195001089542905995978429727972351431954290792003483167705497949708618319655789837806654906988068744138247675077464699855188052002708967553669922745721665030297616680166278953269400757733541215690263776682663672884440177279321051282901247610425130417932898361065424586577603652871903525393077404962962624275695891944776334575134957889734603250283618039267408191195456772453055071095039943107679317248953610344702733890633385715558961586548369533763649051617929766844183059496787304634176121083570348613216041900698653485866200207454123881773936517428835684813426827788959427700656066092310939248926285574214897138051607569980339950858427508662051841163033789114699566589007160835298117231503525461895675107782752735321609352982950674613517128651956105006482644488124447721520944768762669243019174771544659481072908875169964059414233657136085946673244905596078442130853775789935672526046211428268626885139770371722964764931562061879643283448907185283805353311749309494526987903727994072758974805392374892393717640047687922844124105087597679512300911766138097379596902657110441763051377049679524877332136805635150017150019838554192991427080138168699694622569029787802248414448291867059917670343783261051313945280617653054188888392792869335071543983464774062117715825879802544584500728584584205691644814821287057703516306366459235652977624204148313391470277201059963767036281569912432948410528109914483778049515417732679960174601613781451852611071941175593751211344857156377764277398807493080815205879251918711895068692808953943140823253512415066809966941375898297276894013779357538251658949249135364736395678246735487100067680019930430952941280833599599655665556456174475999452036410559885938376593814128957127174321276843506204053959674638085737850004377824667448551472214485209021659768036167360446471044780615001764947676366232528925365071694046755128994855309971628293468972838822463632472570376306286583704463918103106221406744906808441891785904761256781841570448781427503437682208429956938136584206207083013932973190655552727696219873086949820273858779546064589065844781555997211223993354778603635934047792006100180532247277663301344373059894901272898509461230768697236329515209122973581326584821784480025954604893416550828267092421079696876743645214715117186846764901317682443275768288895545076366322594219022479236909466226954644578704129559107230567850865668748058833796592665116578949790900088616189248478535901373433270919058170930261986340109003514881830481294188607258343520715074090099975352588422682365716221709788044734726760500069558109123082919823572558170688735793907668587461748728182049241945580995909295150559992456503019276804352111051001611751458337129605653743003255028765534318393752067336219742540468425970938777239725370777378436510485078383979947542833074744518331383305378040382570336568161751964391388419747917342621237619488114764683402975863217994984383576727319272198106993582614379851553185443104133916897143773076057518450378683471999566831317479841605889720775206913676114385630620387893572385340723048884887960236948827534420253162911493887472720823744115744849115007030147155736765864254134700989468011124190524553159027986367995393351192722599453689950602833712509621188751174315100795618704785546393604210976483819647183983180342552672637699839471884792314318915468064137958067094687194017013459015006948435544319532302652741551953771003976540540036918667534840844974656442052714870125445963816267878209817740233977865643470865098545065108631750946202543463803835303744731086450178023284432746492829484990497399307847099852151284922703977185964526473856710206206230327098152814581409280063743977330720260214678100349656480291562995114346804708174640982421661623359777641380486141421084783107751653087222336192039015666295988196903374156466955122899027872056074328513912056952891653775787608702619508701115946838769414016332445212855362535154647846417159611348726814880169875381264750542578560680931305810369868405931944743994439633503168063222127575727655172376121513762486007679392595435521870081693993351746011287968431629915285501987193469090197274099731946181063077190160475305301264593834017117142498744433451998603221354591473548208452230659820665396925137302435095462459125035987902867286590497075376565389047069288284501896866691123393152092681981078335827529876778208630541227005345513713113568575888327811714691175194382351990195136226614625561333976846835469829209335852911322186517124436745934788771678184025997501299221491093603610543591916876918352189146167506211250544863826704241082407290368625647483254287465697490113527220964115662140951761288376454441424920613607498754073290006200787843385048214890616218792018123648817567712084591073123925752413312101402126618088055876745836127388686271092313929112470363292012796124331624955829547969963773618242818836020140486273496637787897304238423416385505830359480144627383601864063267462450023678471615497373305086937326246904914098243343116334760692467340017630533795951831660796870993752222287554567137350531470736049250312347008736460035420012611710467448038465620330692488128797345344767495678248030896824123738027911005563491081584590451730871623957049904318865642933975809304465406901825747333747816551033670200331972279004990433627727822569073525841236093865865517403865268552529053988989215893510016164784772943181134061227075321544114175599265091065140289591958317988290171787479327614534091504127219639464763508970738837238879603060767997133462011304360031031268726284280141985039319056457901900017722128489436697751339767528722203886317433350923942732175355371826090284002717796848814043200849607723802541748143352775187748769863240570898538553246051323667123068892946043209805404155196409906198293789709254523920204031303491896338461328195814903554410833153442007745950492424442667690583295922629638389077330344728013007561551350681013361869211532276967101999969984051161782043493988930499049901610644553243292828520054474185213903937818170444481809268883113011108158166336180185292554013146413496263883062467266528417123783615166845406971743969734162291932333170014403666140916752589316659976941427008278472235607323009380918201026215531846914305687619327175102889593969031025847423999544265058560444670726372297316048338271008342316278161992091772465040292386342647726184547372726230965985908428504963718271074611745035663224134015530472560972947769952800650109479430492613982776060853955204204253680713450018516715282297155725892400646674013368036935582122631816472527474679133747224738748554199321355815488058206253907375403194750381165678859312875215743829443284707349647777744868572163270995792968828140684325681112802312309545712437798856781611704846500255730670235962259551721076755055891335912632362340872597317416192291538730727249587718551610945593828158873957721586737839224957093780388225825272642734442796775198342827445542505157535415503441811086305522856382317583765003268909300304414263505181032783892944893082258244254955944053054333143260968781196603623622767661924854367860599188386056901460748571339739755525221819205404242812878875212441993148531194366036566180594171857954477318062045294894775680945825423182159389620323124508456495251863669547256011276411830308083293313021062554129150513405811473572740559449185854201347051063288474447756276499317169437887358076695246673008207392039219456947882403560604473607933084117741387193872619085890968192232062403270624359419354148249278256522190007766272923148742775378255269679613643753110286640387191838425406707988036230822308298798941898667013481716398786425592908937400825845947813970698222474594536217470691165129924645325424107207676114861152652169513671928132811938416090307289291212086778602396910084289396727634939125134342316099032116291086859571408396000742350425239860662039052126037366726409808810994255670424820641356196803301749929698453150836837019474487304415445701386933357070412842428337387980740090742411482088853550095362409748365360129652134139166656170067240126803975580202092805515752147967176166850151907050523705623997175936104594228676845275368272150868590991774550809274492008079073150619842694556640125105209884439647924365490734951650959019554502175637603689435372083059947406829371107769984225116105097346849832389559743437408890637107296729963412763790545780969802006268470896739324924764049249267956336215606686104712302670966600785385686189719015501338114108398392533750489350395705664017512413205702397946721807669470718634520173513816252732779885676263060408054363281520243281039896259300121626286864881171056328459965789997826864849048225692880686098206364518263370647941811739208206179632435928003093166930121095630799866725133626737064881633621717145064395436046480989815759256866990724564401445093211101534828044266684700799345793514904140965982429010144209130165255172333158154960088608906203964682213618189900284867876985572878000247208989294114235225149474009558418330908582565225563729729982525307757863165743656320459261132656864373492299270891165229744641212935915874060624932476522712025747861080241350858855528452740319654891356842795921400355619042852032280009947051743659523410453703006480116474791416099022198783739888256906046125698086473433120310181963718684920559698309688244531473957164238425801809099074825100861477704471974087265540636868615790288588485757332386907458794165792746816657102427700856818368368068452126262825215197607405674551733511559210197725534168292033992201137732206961939008044439109892412075334938588990301610229346229436996828045896143545883679494221720060242033772205156058739366065558441556483349059938898577814715711399359850056800681249367319009715751600419021041641869346437678424826232726365279943721010843015454658894317036778283852301864310561173408315054319710874960355299529999459877598317602498187304748927136582757142662841541706956724072067944311089609470939984976224401245543152654389314263784774373085071303372855716659145495678021954321308390987107991816452776677077658690388904065619417917231479667305845920579641012588274795641456470286090451297949553841605612309283602179812291963040687147488186200228520107310986093321749733386783965439191984829719507949526982053485015163378734878736523086464523620354986447788700715899106495620459463403678760217206168044933213740274885710267008147525363959434441763677957882522865719722746034664029488855275569836897438900808116898823589657651862319739434826201301783123886746139595395758415762374423055130752769743451982611931006515707575741195391799690836475397834386228956323327735820338183695011728120054760455659697291497539345755996086680864385813839646015139033658412074934312668133762988527312844198403092139871038139648872320580435852232938261091372848476256733062951495510499943188577632828248897390550676948607894487809088289822876512367023815038594979458536034921171435982526232951843115163390877214936462946475603507954822931477210059697412915534589812773513420010081877303551598411225029806460924884146439688104299460833997333237391117594069484334138849221729350798925044237719786350096843018377914405374903917749328748863972890804791789184591183470046918545231893454181561596822064740737816599081544138223506199635019719875411607451190633996426462155798990928742192940696188702052023864455080328654363689297211336678075452976788740896579413771401068737110593618744091518747937957740770972639597096109933921449219725203037598015133487433975894856040260026676010619179077203256397658694900014077430677466329065108964704870380933938157310888830418711670706840492722037037255260803835766899095525209224570466611471421332473039237461018989872372444117255074989750869835798691382424922149441355643605754979315626477894838556028764830842375284555483429023606836100285054860939531957938589985045430901124781125520272663661939061451931760618069691912214044541864783438627377513598581155420097819579619040740793374822547588419014566385678789319062493692948957356942188308832303723400004027949953479075647276699850230298764838616171380566326452864112000260969377622661111548744937804704779129895789475989945147956767319722756584365178081180108698204438371215235912863232389119844555477182543166603623602196877124393458769530461336482907525617078348857572713145393394952731467677816235464636467582008598125417996857047635034781951439529891613221527812400811488327426869534250319547214100004268781986988268445353193279268914159992174751893051827747540736325434533656451137944230133456213420049729110188096406333518324365205676327126231927246916833615034424368229684351768892038242522821213055438226239964973769476311801582945095238432020105283923289088406605151852828179590866353292030879584631448828466667345361740405791337547352326875356525424601786755708930560582682275985548001568361690236886088289366021746596968794813570988218579329749661854346080142310105924596181829232539283094760645482076863149712855040484075333949449991764606504805739059668222013575309226411423485589940989384918779701630699822264907562349361017634734218330758871341438382276396339507966927570612458862057649290290432739017283671537106085090287895569634935900393191820160573490663259316732492641642644516902007110355429237784656317040038810150091956702846529729259802262816561903475467972160249871277275865184021245940432327877208487149676189909323940237693895713309160740087590454994235227200951313012620552421938883096468623104729928381790102783956669581156939478905357584740741362859448696251573949105054440034209863727014879622297159017098449357363482347074137277513084187974816496898670987045217502280203521737067905443981094311146709353597666723476358303276813424980571403345404615890364914100037592617741210311044079235581202083772453317017549272415093811003152134076469242302913920323661405210136352570358326309037820912566290593309569417425913114058617867906579047416382597974170410047209568601296394871856315465336764265946488558427945629423679008227194329364946122071513272800097531284173020327088160343635844199757045958967743230732221166284351320986035589661164525367548108351846973091872232033509989218773328192153251264880352425592354334273484204317902262096570693083521579014853464964494431483825190803349138204214925670840523779162533879137923828921714583956330083866719105149770691894950256504113569813079553360064093229791582829780349892680350637899207191342114998553983413469917322028594110286900574434543533163629806033652524549922528326694149853594838902123163619293137590439791500595768662954084905970863504131687124471231761299555879281040870216438900974665583799924460969748058564777545525189176425826699621199528320213670503580795646344825336764325516322074215707000698895810611176437080953982767317599119529977335066598020550917310133231680187717541137549506894777308678030716609632014319572059724922431431077137812497115232318033685916163787360390773919753541185939496741854002371330652123246127155029863330405214424055605562701284629714918078449678516861267578558933444122566685613448684841960374521379344926950153684982615487064372593305873674064164678203486800037170198231059976955815653520761309057617495029825043731752544200555530493759411662883704086644774805038995608465282192496053192557804961619669144465358454705825036006656196655143895889545211276701391518148495782508730509355327656714764030033181572526119869091354874382773632350029986769498103529710972429160084146912007793263008306084978666772840338327788681566242455598478295923335755117599773430854671991367820780794932550106418901896963757083610560862764557024541401329674563439564717412602590720171701108780332354441742628576920725960433871537260874588969769255020205051369329439371357144742230732492064579693277662927807397946013965400101060945302428888179602475535018033384725524875402665349230945416442906015200007699278812944310056726639182679593797306710573791642782478791371135991591831499338902604440641286961726126116584191770295363492054961048198886585589672911914485448463047361855286744301544974265484426137198516997169246011133154832845196130547307530007433451075517805691132329030004087979513743572103360245676554117776523008312047550229578340783523084112170443900341951487113846397851778306461736407588131006084157018764718491510626646970411392915076934912350650653637464510279283610382749308367143556462024828147893990691487955594676048972651450373440941477073562199344313349518084650439413648350764359890249737089680945425056927218225990308592199150425295338081383120057860230586632455700874088833114141849301598347617729556421337284534021122084493783023123609450748643247163730936292254557917096874177001630040825991521947452322234300198290441702579362273887917316265257641861491739716594843515968457750331264965887552573009459956864836733991990545944639208278946662359650287770666859647756840552358708662659160085436567401727324115270855672612082576754356281041633349264157228923728027892947977360627142609718768194238506177235007801615397337286655484346753079599881123386676465004015702559156356330803518104478339370728787349199860615686524903122598237842982090608619221063004227333939644009688050120657248265328785659222727272714004402123041537413792312527168097121025665239520662228950914751550119678254173837676326033718327180454856605374154943334474756205357805515989437466419513662291381260215047527906538173859144806690052192248978173723975486940432219070521515567616386498314699748043493707582880988309282062979419887186040226475769365497775331846963312274502643073628616662558343104793856410148143092357613206450654574340978385135667196328213027161947190860184352948527541656945512334558056869115600415881919477801626964791159443266398031315366030895607889207409530474065636932127536418829710945333845070417917286414812712902368929523319402162640669938864349060045862619759614887487355701195320820579902628536051691643242409280921634611240004574509754426686410345966126692252293711669977701821662732278518531667554494495868132230332206319652965037044784946476633898730510322038815933976600031233839490635596238821494942446855177763808326772103423546156644106602573381217237662766788408436529628699543673614932976964954843824406871334368615403579459762499068032830681899760637008877275485994361195239005479228135729009278693125964027961568593445292099391446383222708962151243639953508098547967534755914216644109288221600346774061643323118237036590612300538845808231371475827272433536035249285391898503885958423213822964995985119161757260120381487275545890240330172462234818432905255312724533162086321914548237318799760970229446907240209235689457438927257506532619964535631405449886515031460329914820661753214473904024828775367869561406023444249803714863294677871686958723277996460419724538495175054086811789353141724366734389271871108236467298878717252671070597497343755699495234067088805489013811832005759368217055750585340445028454133908503769040438370594724249942147159688558559121626768620338460882398868880004687132278810085231135431346143967183646905628795266096948002381815474909915898933189535699469943440879570334175230625026206320474696692923837326780322596573399692433378049985927527530273403642954774600935483329757592396985542885857751833288543606886687617759663126269458604794463649044438984176553151959904495801729178016465922796353064074165556015742295384769660983469247997129725895331074700856964994090061500729379996261785764844524652325790805145886864713330035564763009928589711328725900739074857174919147634401107775875987906758334989135626306049877606027943763778394647555827648908823501424804526670294860601347823762699186554263297048444129299475419802185585826413295695011409026903859028131628442854738167561827119810753387992047238130735031198365916168585301140882756387429438888548361822446467246394994328482249785968780287493660359193784295211771644490395344586378985216707204240751630129262204150491014513034582944635057832445035729538128265879868586265264025347140352687469110957115782344094685572463838290073856742698571776815590542419501164554630756981747347564440166643278435821633916113349934960082164105340148045960917288774860916671765408691363626027644641680286528649471797954897297532088552665089055596758374973278537061610906065683351290410590691097713294290300808982652168182260935928763804015242981662683367969035998956486542466231792102982115073168115669987771593418004543174822017110235427586173725977651956412323742114949621884685217922298933960510689676466903813234444395794200981370165465353107215405042461238867593145264956835309038260271768497759105560113417555881025375360803903945204574953259250799938023413068611774419743603465181460311765609002356775671784340452428358376527317404627890266909360560721110695090967618069813387057631611964755487843270163061140954023476991444375396249811857458992177604272039946253874613161943298557012331724856251622476190074413941692370250802252657604370765107239658382352123174808187272739565570917833467284914682556249053908476547874157171649032949361051835025802047961886154185126130759043646303501922497680413522565496314131735806353375210032287083328068576267429850215171422645447897719565794088169666269140868131772059701189446799311585540132273690014985973534283639793151591404809088394338574609446995362864762066827176955147993876810131641589278858631736446528815164164957423537060989654716309119483356512068460107011434130822475720196841203642366507645634820678433070030888977860786852648484648334850620819220635850343827248326470490187202505734640017810139546763561631056939520526663098944379467224574496333822981399425912022048843206690399739709636601645258242825415210357640355848314838915685150980176905085406269656983593045615664101306987757299013802967261303230901084171007952459010856366227103681475235988712188396858747849474375194788269871923344031240795265897049898624282072734895091725037049468997577008963388776476699151547210394595870689589047500840753629669815185599805199209312681660041610267912234370232685769758182491327445661834267017475421701506390041332119018669414242456789787333045131012878008088804385231002615979508818203110541161855025818641673577705024914946606783948621476161233976318832350158961210629953898445327693897606632485944270180997835718170306683815197277478471894943968202341485820449663271072784715930882812834321261332366582807465708296430635816097431515788910288487447200890030264500475420725488767611057196108187554056832313460701315771455777516745055797969047146772654476084745551456174067161850167233786080900664459002621664131910838669106824686691562234321902608001291592187098475984256951904804278681741518373287899421335130212145215649775671717022424881684660035660847208557580009073276351767102188043045365503145454255105970132582187665375290313191600723517962845963107438220707750073293570878095694891076541338888961947277819681176245855369681931386745108922998712365549953874825416440796873238505591893020760877001389416645322039753403286082302275989425014674278351738229347691076023412401390678317665852221606549491954455058858054487885715676015670668768661466240297425346999414899258504069125395523663324348703529861589586251963939961923078469834194231631878062803163894848677897685117419218845371066031848153685439977053605094102973735916584895160737530874902480160314742252959560880433355328429183502472461653098843248223076596130095374000750696115085022389019274491166580293099678349779844506975301708574212779772360901077431050605788430401879729849999532101319634981182870147421038824385533787043770178724012746990120350925738166892315199088736195292682318758690148705740757409077288679621277007894698801016206273200806609313647358288272590219096378107302232681782994530240795737144667390459686306120942674386613332694040878711900024821867395979231162136123985862444680229052988452727504441373307323284877739667942622953708149518410037093160747081236785781579151615576254109373120646128507266319228106111332199682308317066179831351823468505377229403746382511748684011836738375237928655154038611554314002203989420112628488124067556199143118615309076149690179431179329194531729737229931292419299659707635505199747200859496889079634428357469860236500500078573726878544353495496795806672491056717562228060565201316195169052965804003249531504958629847512541913996971266727822764177882601019753311804616995669247619527394762821215661927507221339719968379138488016578659551341969282149342714611638094522276182017133032296473064547419829587018754247542885758997600470692137796093763562003335336688924577950157163395904925626465590197860963702848024376002353521484032710296107297265526511066715293553569225251157143085862268160323841304063806822748718323045320041090629072062059102260891632225315756007953092563542029126446784606319551911651536186596108228520597966511204127463856824858957886356076622057111978366013959294310715036891473595035735709351573900334475368445798569139615778341132824699578517723954694913537036382889189973055273084994250653052639328851242876393379635703818108355442027825927118388190433286424183326653878374104534565541437112752812143106754832756402781343007590037432502513056975848562215090982120102475763539528337266085105363532115000107318083883963336517247873409668150416676778392661610224131634524137080600732974876922332386572668652798232404975459725119498784934810995124973732067750780140836010856044148584422249103151826278562523602900761891067592118569951270979785997462153813333298169966445275765783095026890167794183402569599713670224995039742790684562896828907700704096951614939624538053275782436293620220340825949179729700568337105117348341646028419508298221393669215831223049548198576812925417890606516967524933324367296093794453008057482194548699344222760144274478235973256202797654104877470562898027505774548547653210019489129774606821138041029390361622656996657918213020302363130319735514409409340201929215446612805185895105432421262185485523017680344281700894041825286872482649526538922094360413447557050324101622138115484805635043309226690496734485887856541576815993228123632250479565546798282015202225417231001075448786561483743203726054249097869680946669847385830066140785052355477237295053214112337358299966115137427324252635137079505559847324008339318548420383897624550756388658512981152718027265630411490815513544048645752813375628967538768153211320106611687825643486552848408311797225349141433493018179017734100052460114731846492319673369285275665103379324300037427159646279114427492385578762501537197757956293819404210269811210186820211256332178887142418525021109355439933281507988595825254280712927543916740045833895808807992523811339944257607342858359664514223146619834375919098847321787434904518290472949229570956043721797963218844237927392565389941529093432824629321889672683085174948874751451425558158835526246254536754410637084736487713731523835598124941916584562359122313305651917884392485014371404546164322005805260992797303009160763066636183066872696666971015996367822194164553604676732973333793896878268397312696371487387283974562349492315704655441892731031895209715656017724595931576117854360253704778371639932134169943214675371888353743462326816652400625573804264910135085998340419213169908497461483899125753908811620163492804869067542030586871300856108810325078238622954646163597417898807285217918263975542180006236855387510964060912567209582189323143326349817552132269547511357181809456888214891073177919401001979355121034484109595207457637136225242806371800738134734292618084871273323920055884260282612432007156339611208913852197224305737500384648201098842054779441403119167697769685126731435157294603339120765168130509332609498737170932212206935450549544723099858488757858612229416335975524593498869621987590189708864776273975794951173171427883440980493416777813815241750744204114815125211318094540000844916054786220706844771061986069955740105111243643960305241515171270198937120311636812060653253537285282122365435185904031719800366308277214324382704670858140322747851655252826402864451114721239663696214841123945588101442099437682419556487841728120919843900764069728530362557902450269023486645259474996902539290928401460423083640273834982324227224668579168025845643096766564914420047895361208400055822919252776203694539080427772637398439357695832395894728821446350715333296094280296273453169411563012512051270627956386044720092946974896967922611822511321844996313154427700445634184523799531902317968247286796559782368374287222206121516363323400042023257474500522372067455044969042786858643045009199623457403689078488507402214484830625906872752724607655226106091188504102324941180703296146765243266235897516546980595907178326057415174286834500788128520566989797247232569896951453199401668370651581345507648411617994946852591074236260831764035372495654722953211294056758950945203502511288360275109304514615302743880654711703628236003475680591553146285398505125260305873400797939713034495049988070000424630464766757345767832513106679543148854143443824905313869383783382126435967406623091840977145184383166105941310905720568470427476494099230543491875203884984712494777208081717092565145422647513456553054088605567300509452804860648423565117883115604201620206226927208186588493510149109824241705762362279158479458400293051935010922013546504875982744246706723200905916042941490117450919619432410095107490996048063247240756145484959056362492447061868413695450252430722138410487342019868866450411337048844226572738792043351217169407565976582920440125860676568821853516341445748267749289575160290516825102120678537754772317705420831415058973693571899482207011309862536453164178336227497960311157034870003809598818228425117730318892795478136319918158756795003336925164186993534051310302271669576701662954230096839834857556549214053388401318351402697073367629051399504273765409228978480023280825891773775294698956549451185140390807951863482579332719985635554272462312755353700201358022311095260556009783021387824402348784212631333078342415322796310875955480292978475136103712939236949194994949709255941334191651967494376397050503717258678110899043806696507987358049485935732523576431794523439712731374990333867433504992926169796791817810907673557689723828195986499418811467362284204225146687564277726984176534387159801311009846443571383345986563111001313336464219145165767038015302661290365181120612394528771802730890076874929363754376935889645888077817675893995580326834993392223185634937861427666646336070866013128517762652376123652448802207125861975889507705166427085647996635541148204455471414570928367763214324364622069463751680635363354123191796468212278831010797475622295200963085887543709144688409141205399497479609804561229700063193436565050092517413475807455254465985688055888318474623066312416852573588242650696710816878791874728568161352772781823289644337687364860574446290790935897290448723497805831526739527217392594328223567882057526116356993235906666688008267258537662573235189521152110348790020271764788149273675622560748642575413173362558775445855039600044206192943548465254118046794887565115598905699158090502437937644297215665798169298768132100629159235485244483718845763543661948090247629679699960749057576259620083806014565281068894950621513868944847905112921310389244851274193618676136612751309735860057063080923981707359418930141749300363303764061836802147347216597063812502673926805477050106857503467488829493361629956598429905144983990826635850803603149700564060802585099725159664757625365537156421054038636539517202955290475052613255827091917851849628586963607242952804737644931594090230780704125673040563883972625065395230174437708450047430364246232479300664208369823226230625192022405740174707473135095633692026113274107971834687360247392808273616438937870954618825831193438034855692726311734123170640596460374159131777350580609189174330124725522905261105242137493737101879111745187725320564129046234277341330958081815237828994028661578851053446809849516717396642012640454992644147902501272369701654899980208346091329556543300758580304113271428331299954731295593048709797664910184799899981781829561498816705936311949243354651519446375674494358273816400206522714739104803142559164139524829204865856223695005454539181468712825580845072681025892161544237569761373330168694274532529134899440139431772971475072335491084288088332358274548644996775361458837945777383667751320215694385552426654170126413964043287234724414227895831840535873758632088346196677710396443573654263444297499654229130493956039824369817832483598122898012179986214723670563925008045986455560892772461077111066624937450494324897107538095069797568441343774668096814323174021649988254164813330261520453935376309899794434482743731557631108840487334702077878240645787078850207791584888207074516185871655549760075489560407984900928935934612725670575425405873896371642263828907686232530693244726504800757183793052160216773085135664033149751911506829712027310806576440680768616097349087026009846606761065683332804553644666265393829774228867812041405686030510937488714173563708255312933798766499029878084240628659721831896139301997850520029027183420579080771997793154126710605140279639592497805304093805495394658578949908188169964385395705241021369295893394497724021438401540942672787254657681548933590139266456819239611697346909878146706110872348453743455452582915097040329658628648385883598256974003749926516393317545923901418222895948615798136478909308049039048766281559963376204869243031309076811123975258115924526753695521687031982408530361794555072525143790766414202780464862051485274630524512128066394860125851277125556317269756053253623039599089464775650013717094682503978452557778878224323589006675655702172926783021237554467804033313074909434190997727469376132953462102423212298572753088003860390296095220613707494887768615848201198792996376458239232313245131511855723311327654621127103025633747238083661267102665566544768703244174433926748779215584808527843044790938210758042096092656839287130789195780259788248099848521901878239326539308745782519557993035539570402731496851322023520563221092043938427282265912338346072634622680743472552557539111973955042761127630398991424853902258322337292644179933046922796424275294794985717704094937329426308246839166644886327209452925070660434129809256572292941955965588176325046382714777918617063868082160913965830818919518618555990823767801360526149445237538808754400462486187575605839482841763972687880375593209664622566164565582342362684246322310948483071571653945531750118118785730915486829288840285933476013947863301987303884347801331353407585022962321822075264925045448022853069198479969648488774276532949014622970275009500512634415740087082142782391413378891355384048484326861353787335749362679928762957475646255940375393853732004271933818542382177968943766780199880798681525564130896521487714735516829260359991831556748321074448953610672897828836569093036954098112147581842841015326249320287183320477270680031549016309654209472795714964743863800628931034886068398184675702870833922999387280363194222079953421770692459010434105587784050917339724419522685779923138758873470200149207524810962164346778076296200442321736104074668383817143791134317220218285659100532491619797485924110983134259440754551441639422738190039013199674792653664339237578287061944158600536217746436866490991105786137579485009893394834080116838021773793461435773176657421650654181136537632623721241955130780011440299489430303440285210051657361439128325031110998928997953480418254020013112572878977668848463202924001734281617062521586376087892618165345789533089413717822972521649554813638804087636202437924057993351353940023466262489727874623142400034498949550708764405090286218487778783665168969844505675981707964917736263229828699531366464782177095453232621994617118800428469842488531595571039305872239424647871625562176997955134125779262130478480447723794798826947111029706510399028107513998638817902773578557314643158638994996884028760871912951063728188808136289652039928825377730276632920963833272757824239129171034155493412569823147230188186167511771743309716823124953624195386191012595618755737321102249522023341434304587289905520743544006021526682683288361371720293253056798394668243011628338119185202213301815818123949635213575819168162028342100744723777846207294301298178913335977755785369828553127126605135224581476152031541130070500108106917000070545876187083191789239904667002759199399220685957691402113730174253027199955184978123658464394902321723893717861673496666638928952811438640264722323490470428663260280860713770191787718079661931990585147598220452466931524163970807507025836472924334632639415874879675913834436959334582467072022482136737044064788550893685578037693379712754968524086827701332790932894862801935575793063293827921060778946425887934556556025815990381729814150273603127065219175784412295258931520531879529809155829813221033673139412012003145520240679500876319049031693842107788278064334782528191607631478162372750893866404067643637543638969719048492907791969676570099378565650513569544863034260260553236728501781110704717978671016788726960314663137817920612206529062239088826459058727788627226965925844432943193154228982012893777045998251435120743803338827369976386614561498455403463599015789833079396932389647903827790893327583924077489241094611385516947841492753555362779752513702617040259942390558188327833516156319574081422858468067944522360939569881529437270911270569460969699112175371960445844809743595553520540856865205094865174021302895488961374011462278772041621113061044239394437603335411856620300914752978711780419594723034396686323370159461188697094297692810293401033625201637695858280469937919010719855293388374390651380666678927998359394405897604768754269152965329840503908659240124698444524996812143733630626583993916916706984294333103182613946147577369151242455580135874325625668402456227899271262850158787423803252758441071407883909567323015936481820615539818041322008916341469825265707711131321221951111936664586965070892551815655478618855617868201371459714789293445244443153691044072392040107206158571157802692361243480312628491073620943415219865494368766861657940033805258754667741372555119383240070197221045633972030642776857805189010084482759115994513739527316007080262755372721006027995415468291491294719854976390590058071357874180826526139275904280277585935650054695730362556021872966784790499213184585196929836339560048973535805676633086606200238462328861022857086150859386879347735958460125360251900515547919390299114076566302001602684779318962046972693716484813382119591105901563942387654415105226880433130363361202943482777549031261085856278248664619781416269892250146359280777471620303203709971440888482601884074720612671292781883807492288228395308430087761534766689346847359035434704013349391595109669364551607405600804918120909917138926640162696364365017567532927148916864586760047729067096070999229546895339268021815664217694961844122943139828878978491876721876125408288870123081011878295559845758921340597715005943876418787076548264502190635016626751027037241303014454087870769219107607213124657267282769735755142151714688138479329209248452415411307525387184997773160811252869810418702921572098330429467526456911082735527544718939628497267732787595752811981729534554100955971256800629645377016222060128086167312414039834899876533261669734165911682902279990919711004349353123530736773578259027096276827812766792950396738739218697334970838784191137838953902783187186389656970359944475143966089570610710050505168454897347617810838815629584094871385510282871100269093352000568864246042349078779704011088042952527833922961944863123939759858745325212881281776997540781331512725759870832383711708314069308116197260607539698191767470287866972219481202684759283893342090859736689667025960964877851654467737886565060249652678233784514234396645351764334491019330255296761973625054623110908366452235430776113998494337322471933024187924864735032728167524623871116977738765010949998346016231785277332137159654340394194696513088713575132622689543185007001267844839697182157609616687849337289318371172189460822759518776285242768688934575522778927705114133210456710894588346405748074164150442906343971662502470162322085432730140237666694010902777888961837129743054585984826821501013439884772660118956353672259591121440781590463361265428268039360393615669796095019838059886537087117748452190879402109540664235896458121494980910737874646474062874447044666276575302268475098170224021543290129072286078843802319276308857286751979090073269864920891997519478400451434441260623531156809384283880539302627963194654823879641141339083278692727247286121957794608476960128117728685532271463865009532798081490343875425467342240525629122676773876098910070202573259766683530510567691063730907868435955324988808561274795689929957506145157147159403385695526749708855551581986147987847796997799408866907700399453049449811052192363704185554425106916978830571213558890772236066765914228598687806064762511521072562019135307235612032030543307595296411355093962068467125758675666013895927726187571910130032597229807352490858536044628606825609562105769224150253019715712793070650050384870469043833040720063445051440443099642898062674934782557498935112014623076997205820653908566137335490953003792998117023666034231221716609117291026227749784568045914916943180557848204610063957974621816048939639439636179503448104092660546682224774551391250426672950719150528429698813559056396371157521643503101564254483619461673694527120104201132761248722714701529611225466189976974901047591507206116847755031775131318978694412636818710372934431265539181736176295096627040428160003931693672085539531379422743107679242973170833030881683536291326606623787827461637922826662350074961684227609790702209868663874949105751302969078409917049833028523882425020243059235232030680295694455274388903309468927389223853658892499574123463113013032340434626914423599404519319503211920494719802319312266470947344498796333859083453420317294734025379936742417088115299512626060544416819306280764621318627053592317319273290291925419959847119208197021086510792261975485278990373815374679492522845941676533186433215076588913235793818882346154523375971507155111043004617473059439102644044683037224272951547229309222068154522599773057596837530266452175836563653508595921654988811559487257225566997277584671347038727201341680573839340319781155452107245420164258130392654978628058579343711110823151623638822116525952975591846557597412444657718498253842354940585762132475295158961554102140945014271236930739349078012760899333469957870905084144198882839576825524224804972894346436054121601302488210301355933556793253938743340717588757079396431537591873580821716825191948080087807100616233966583298587772161155732285954543524349042468303964511202355175998936731792385406355577691199442472327762922533783715565599722204633482219427593272456183900554372970782655523394685496888600336150798388003488761610292306974896002473593435801075779321821551035079194920532767266348102213259208006323039130146113163243002796998021877080338487073300602979574781934617122173356217113227317379795005378575919670275870894876581262469206082191969965325872381277613727368515304552201763500380550690879773631177586368445902607209812856949834492442734931419907473928945305864958662297645360030526917961964149015286819014205170508259016849962213696552395966601011206860849351954117667709850335386104456269891962649528906612309841330091576252102286464108196071519072512362462033855796666710718004387188473623020033143702621710269211637738394191288310661265886584166329813346242020370574095720734391487475881324708356100421845118029684160649954247944957766611900755316203752532857967265183325324264884232932469504901742045347032366123605651085632155647714319483137277548026130338840556250159929798417759954523269671119840725299452657481044264117812321782921787042555570101240172739318030529832168572355987592670437428906923136152587063292812617894415633272296521188766344048560642401087337128208746378800280781652442404281866835420008136517245838699847749806391939966573211095845966505769571563217989960722309068945251647474005452850263593575842347765240306201769550134243646318318322079004896361914685456261360515439524722660164964623290713452915972936244411878089154551818963197536343147870876278161706486944039810640330183479507088661445893779393450014468042400339136339164497248994698788941260941938211888823136303088707282685300681429848664406151101151718683597487951459412189252256474126434773255383641300974963804318987543807141789299311491899306945786361312555622659628936759341615763303060641941652824624852815229858640919120086877366433090392507114175361229240093513183221828290636344934489722144866036006087700831433610270168981163766808102375482800002106212234702498179087391712122639267385111176398690148605129812666577159433666291539283311544572934898841131090198756372857910264167219981993856756990815038161636372262153943081444577654038763718981551935053319798007671712485473103064890095700927539640526428188601926782975996641138083980014909617498889237474011823538041263451293153851705507610995206776501628542257916620010997226192874357380964452785489808187599073222440715839577989047948228295684404527873914745891884614249447522152092790014639778133192238989839055670546780459133455278510102771162434078099943579891137669942282597323071303760123180109383762779949379373431696060720458983128802691965214431066769237330004518680003069903028795215940130528732746457597752696924757863834088880998317067891663073277652217251126279832467899068041520427246896003714798206424729236995225178812867076818064947656260879481860015663742980477054396983973235345402985622865314826398302245440697607674434788065412649630212357523916512252166320837361501984223804148711793988311546267232707412879973340135178278774365734113700683213063499510242878956147867340327849918981212426341460793778593672551438286884073822643717766808168434430837534284459561648678279105127923007699385034652735928994121360712682790567184630694822004735921937643235170440767406794904428519660359959822990601424994110087719473476176092192746157861263211609764230413346373400001387096174381377050807668616108936204242305929981327850849384810715747384151009407712702530370899132343399304542451394140140630112165725167246469480042743549876389966769292413374925537749148225821178848163264253902586938481517694040328546348788436264848474129378680636672292674086683591435160575271843958678052713394059304487472501373646227158199555632954993530157629911940160112897781614275015165292389206774499318676372039468014493383901920694721569445328575675640555090857955539928303981824525792074188002330507285714174561163256253823805771333375156539590583993592478195931810694264816566060947444199728771728813466780835653678375323209404976779332303209490784144992730183490946048275472481278683444618577629158754627223661981879135710220749666465134007165927357156501994710015751052228353089726980776749091001998185682638619553671189448957127275323642248192484804494894258871138267417040249467391740713756071846369578184063020961555092797060632641940566158227885369285445581143093724800273843471785335065031295848142887287543810306958377590218284345343738442038216090573194860531138879888200780066828126477774549582063443932020738369657817035366285678977510997848530339455666002074970872129147149988653715033928321876517566324590341595684049602971624964460559714828542246519243980576919468079143458939657508176100719029011340222032328895579731973137606980753785563535391530047971034446677499881163899775136685846479986389620759023057293087981544840078876566332779564886145915409911601655270398523644579574559981062709674429230699834972422061403302488250302545015932787811315935686456911915200332538318649887051903957950119766718645063315106338237862444634981767313685340173751389514265798919541987273515438437368705928774149107705077857750141185101280807865912999803077816215442894576522943313285424536433828251097044725554339735737611324754649822590454788715792542915167223697842556599948423009060654198083522229902521773963669528786470306872575471619562399184836183087391507726731687239165192851984138047222717250328398153268091990666749090113513497579733045731066101004079678323230915977515482996790561716910574342229666369373285620072061292413277461259353935582081757216526320428336128314457324856992615698477815847968022743337532240022036040464351687561827271688766698501710234655488526599104044352344151034944505784820028783798714381021211996040050060553075783804056519737012847714974134661275598296586910118559021111099868357149836580320630070671469294439563337787701470941146770469190475370909081908980928562438090822268990651833470129619900008014474765053579560273115676465243202627303003078996635913229336192127131506681518188825970197012326985151344757695091101645310668954468200584511089785301861407970795673682020014531190242783981052552249433697067083318727507166806706674678274073350199949505970846700306415476681860551049591386429373432762413323324616959778082960886748342743563806550871519571145129526443023240612651348206213456265911989368363945695978198985775254384587753981599950890403509083733554556630637187404191696047623819008809315247616421278100168384864992062707346023347134809407715981664031454375285791226166200900891856634129967773749480156385135076821250007038224933576811908141728865305952890813786444799651130377492974093063557837261185631791283149036887526227545635233590456785876546486062965178198576276274362168507804002794155268708297336510362451997087748478372399016790905435119919624942917938501577425737699416995815967176009310735595864219424518844615946507304447371618998744044801862806179480105069094612261102673131117886742429788891450157117971188455788648486268299261241989462710814613126095243884965214281099483164959458348002343185291021219771347663872097560508536935818588145374580777212283644894496983606333793202766176985786914070540709182468704865252279334127527604612727119198775811462678151397438083199064886717585060999890734316229261413651194430498429055162601013548337815989646700170955899190356359991543341464887791298581953565734045560890397604699765468933120413721800171116357985885142147887328592480768233418147111605290873276928980372924030807817976015258967763442851052476210879732040258132778226603580328036597943718817726400117098849138549798621816340779771862912174689379598254731143754145619559858779176801447510755837431933295438551718840790662027603886990078463570111003428656493667665487578740124813804313981178438696244418108144050363178470831692811012179691517974916191338353407809564503170212597952829292370259646101590715202385218918075427090742759931740457214047967243654150533629675418256456157250597176112389212681032025425322988705658108223176789263571780997229374305142543240349381373778092714964391138873263513182956864869071721699558713551852897292974455918101359654093884642140484199018482892540776260710391420861583228548121265648491437106734037407434335581185744719785286081139886498093033808706703630016843118143499898864934310107971513707933215730642704761848419031403303638925887041330073365495120066399952037896073752979173266062318400390028479541063995265066229110740783061607138749052204885613440524620725250606929045327872289404382982778869881231701234019732306745163137846172341025629760981642721692791467735775285975982284668825493859780863950367518843611186422930317274502346563869190968799252807545408335148208264341882138711535060571164997662556537325401057977509011375051400608054081023370704437601708175247571024885804039617000290312827884968808279266977512369484066347516693753363489329250797439027030193995540840947910017745250070435657795098827390303893972614867881513541320081482371355782461930721993503229600461114758154193136086833925246974287013936977645712642277448349976362748273872211402339335557823674363226414905761498893898051215492641177061262789880407335729626885511840938329102500530644948739054900607048735977478230722198519345984050327682379015975119486668681897358922189291765718528782374866046212557567315252701038245361691211100046196407936349883484331773775089014588680125604740516259828682357725411876854854591334059284890693252983753969723281372101153123564857876666413794290951203149933237645365107613078635050098508551410981869191001765868955171622441285671899268637784434616642663159274937725435081412739568483178079253067600494739176844451549533031073469318732987646865713917822988443078428137293482571211113843431899177392306083236141417644088393203621337738275036752281628160674284734918023005520926013508955381875623738940236305134752335691288252799724191611400324664788921036414227569350013915710461878115789200607173694043175491406282363841279411217196930710167479443146343654519978846006876728040409048619070675452148096275619664172537515218322381663627062152926763626120758942704020272265104023512813209267176448549124776635032484222004598889702949934828267420662059143805905321580756701220646836639510188990166419667813151723063797703838942158952394297797962664313944184042314723244534797672922817548281264231585830642882364875433686842778885511757734867643464858921674604956910787335621546223208665350508538857505100790434261820793192742425518286579866235338569623803285822196350944572246910140202015012639959548480234341716717965451003651683803310489804385342542500000140964030007087577661455834015781959765978399062792841654925919109710276051963301804708938664474663794795424884529187867157393636130879616502217150604285287169717624984399485617235616852549130781175838604594413575706537204239324828186323054428909610706410678540807031864876906048203335208825659506209212508539926248309515037680956683819140045961906962691891057530607187144520785151982096475392149361804801231525039832387013244410132063339251482605128163563770179414545169052944336987094456945994776242508810602296838354121133537642288157545773939848873374304222612544555620917609834302445125882241644699807870089705020573894385580626678095124533785930170015740386271724655447141603952607058460844410966402301922998951516459474845196051229241724281985876161937563195222694728707961743341876879322889441640943541070008797591439204013178714272975550363059784230330287034346897467699902071489955539813103353014631659566768547778523172450606853940369452529060961315223286386278483118181954454608099346752821762298861574966743902858268542638331037730725046211154132674201225947876271544904944346190054328119718844358139725877191534376147643754623833860968846210976372542978611399342430015717870960716190719737911963807454724229244999049330751403108057957565602669539394722311817276193987097173445126858853322699881927044657860743102251034982968279186691771025383491674444692474831226790061558785040317513031761995139607005703405713639304369801913666230038229942203617429117112834864116783354101829795505239538071402732409177310483896109556816362796814514876900073690343074543216247913437699411061309549841679340252154441006816465569992065102640467485452155908548265004791892931376660716778200806586305151711386984483004435179213147659027160055087217624237572190878406503348348526474971083031994943495712357342626585517324897514687388515044806228623639173846097157333925821257830649867079932559401958589589457405974116854556731817387846887499650741237123445638472770839256086497143602977641348646775739997269490724372361322604204212390306976921123913845941441129281875768308817815909071991658051325479081785421066996069371086616938981319004519630385470794818656058155822143930315540394448449574837373408333235532610009206019262194468687396308834980117590214660526083981453892869930703368649872773656095699965462773651787463376021775853419334780933917000379656475930613634180432502384615213463242851508270699954183188615108187436145027056259851050309320171105000138189516744533630154719516731094750316201014274309297026225775193677353851078194574088881334314251621792376695520533353245701670642683706254987913695332563103821782324615552160567458272685107563142875185120438581046665636589717207686045119514553675779090900054781424308777136652732140934878086064728365566754123574417806677335655994249750389485417861387980311769954592817779316906587427606615740700652303885150562705246201643589439634353226466548378285400035421571806219704086042579006689293185614230788084764564360774311458912531208194578205024110190057754561194405611230770244924161868843603842773781064800379097898162368258767076632489744447244004653421003299411923204393358463036685188148083164666091354059411715620314208796631665339253944640240482136204460675445577034397710735522464477249822760850133173874543934593880039368665767275481736988485174303502053379569752458785123914066021079245001399524310015695860807618223057680217044400887558770935610038276373149728145772331407177433383494557899082073384691986306258635639854401267154190026069569154238047066962569128410737284266654014675449000118759161469318034915379650985633938920426623232836242994476963580276448306915051842706238424251464478406023352728226723970896554716502368866223400479244832883758355237560305994814364745461277882811663187616819123215776485307487551049442621903552479890192428003115619194210579680734638380374486892865143506273072943667249747995753453974474855460129037517172785848688592973461449423419577136109483674268824557599826442328521137809763625838435567886814566757809558388254079015902437860756258366496919846462876259025983553378488467817289949490755184871918099256421919714610496078688019396420714987357954913830421385138004184666019144629252899667865062409891324521285241273131334638018284848648835285973691192308218755216014496711188898434521532876698436456436024123599200047196854141533051276268264827076866832866170210369887814908428390949009431230613971354612443709046525799433648802019329889332854867664051063353496274487103857897992153728193892058752693429647918212754809305463940141105851885705345159973905541460762914344510734281498930027625062601889477334832549384300715791623997609419921840630765298622554226819744862408115539880898524910585522786262412812378254603275080225014289953769476437804720421193817170245533431632402647222258011092489897781439342543077191398714024927059005269669622565379383347364383167920608210950264755983650712224368504064757524991303238012742857703274680359003491388867507648099885711160238649389949882430356833012004412046532861165659763407405000572373170011961275059056845692654916104725414423722541301182108177215025846705923632003545699856354545472876963715238931976372569363221954769012488576722071429875455030069449678169720074480918676599240837440333625755458617888481137038777843469556332686307028068005222459692935970159076473522026273251437255202187957565916949753987133042439980479448719994600392539385957586486108676706607812075879515071107183649912612060628851619993686442123865229752021544781741534310401595512894203410005532880539990254130703714397177633445042810114052961904898448167549316055235844126083261873795139649971111790638724441283713117865591908391619123154552286011474599885268263096765066304693658119756909429377499004732584541824160403810456586141740368028772054420002535235197081274356375687457192686800841323762091771557317640843965572085670390987938569904479618710300982220301262569884067233322049792638443413960970521018906776471568090082617842792388783786493315372022978554727180561630178023350480798351054830164964747685942290330767102588962490029586945847457873076634080162737682273006278171115514321276616228474707155821359938367826312490126346986042450322422274960904239986897099640287684328532722262982464785473655640698275214130643320388259556191743503548500146346609431587921430673966114755187641106006482032693696339777492702061335487079164149789549403419760982453107550642325769832501337417289667756585018738122922097792333206578478008315010690662313872858139894033953551778925599625186104295413291624739530258693139911542297819351838830895279315727106698871860381106157390561817422885329282503036278616860940872235584137294633538747526000960891715272775274485542474085688333619084063891449132941768337775217329040547242971695351062938774926903650364690782397820830022985148703950879339060687165211001180539164220923343303766120381790681248713447349427552706014496872433963217290263804513661427036296209482544206076091951682856361731935705473572553383686478040084525723850114342600066924373384849713928279167190201768283868861185651175635083365427373906765896472023709391659760032714976320795007883866720619791380661925559255266536836716935595833470414613797039376671961078775603151521192749153685924868313263101888642078200472224429427056024822251605344144567959899850313852371202913304989080490441490269727592132576294635316620603131999565037223101310732350019841809832950409183158213749263430819490753716352753442572249327481368926894283379981531833034610701963806832813832253872582284073822823111038103965377870215311534771307874166283730387886190532126220136159854822267704187342098103671091211468568132888700675387638745766898706066013809045698516849793143829449506269759239690729413728138907116349456456091004565305501783599871532976765269492531287953671112194828698140668038391940289615331984791592910620832035563114677720810934550013911219617754672573940550535891947045087546953394265818329170602391247257942944625901715447406496392240743243529883869303513565802516138903465160449553486369779506487161681830692789178038213067460196103013886977030492946466544511451424418745118864752755504313352279405023538019771925116124781739893906394790083548759523700646736305575175912249757938809806798660156965202263214995330235956255668924942358791116697124961920462889407286786524231229852244285982927754831095076440427893100711322649511091112331118221755575827222513138321107552555960406439857546431780286155118848655865413132396975612176782845583751374047607846711549678198607775477921051039751379835419881916022554526617744916125058529027431834187692746301771184576784063413142206983583221771859728937677309345423809333331482578003489059070436498402420226111357627351579232991373411529357842024557532416505136568707080548620256018395316923057732316892213621922149306608639480514689564387406124670752689788184658783457966949071670045642854776831631701317863689755798766490321030254319838395399813628193128742678521822776408874718133157152254079582017451401025436741603711172490220823421462827945707616612030925702853532084098981845024936338185805258785852427816210377946237213179471946989328269097105232265970808602978820390622196130088485294707021997902059553645169520108338089247311188546178722147088620699858610747377526863801005157102998611096187062128159537100086918838402989305143218199650345594979543580172511662143680920018382448499712734358194630740131844933544770952359853941456028956643100120225942939198268042943630638584595964759320610958263768281028158444162525642464377117308226822439766329445060672643225704038497367562882039712966176271528338672242068478639297773226687327046765228396242491522360348206241353096482505922961269344568825088820398926150627187500070356693004629406252118556225824820691060376588719545200414032790036412433631580685845923011503864844652071037691967642981187240612928672552495236589486443193656481894802941389111140919155476803961640011916620148733003549007643515956782216128274701765521651933207738656936033949448232901733620128495155536893915727197126644351063666431495509794170128753535149428590215860438539588349776792599562396496245061026305215059455782222771297637539924400647147663448106354570412816341758322119321477721886316326832974552119776662459637645431590058020743392252758055773936795118531551150956879492705767556624110600933860559602443873939363691590048712363793653468380355635141427617868111612357634326933866093940048154991806223676648406311620046584008787380689554291587091673359985229413053295093957332860271745172858455474951006020057799008572637904869383424163122252216438742192156681493919514342368772811654568534772082427384513694563665223106285830635763632454320111022130844872200972140967170185056812093258392240995788851857880248593308082621854861846331575992300234191967166353828198569333409952250137394604145791501862046747898566485565016286929872395241551292262109853766245699458977569986111387029517570930474801232769925245131636559125525099617633839170795893078351305925358832623604365871960414665028184347464290125353692902017608293876483627568145852205396339942163951891295248641880382203646003505433464733199017594615349030389962375161108818234803008119739872415993617299133351815473054417335819514211854495104376419273027573787703787420145557313965785934785040540690359488480302910870702206734243136510606153642024006805967765411960702366979368386520105528418073077274801608912146186434360609649674665940096727096883696258199596538305627305081476132890571166364486410466191100527091358039696370777853175101119090005109242974431243537264161887514305447908501313624104004181661640283223758841038710941958774067862670537342792786767931323493290671529778069247238261600151024038681968864234301085847294032814748641963802390531037934632314891946475307325835877809378616707342760716258635984497411947543108375218159146608676627924638620220463898164215109263436380753852719647635479387410338556572228625477712157930469119705833291049795593596070343954037484132461524826911849284294841508928793936359217621367214492033202956913538410483634114886856696350203998926687466743237477439604143902474253648254587744666844695383649740330493203718666384157254048867363130454563338665012215696319324485927671296187771457436271918559161103600378586674199105934423069664049165765980887097913697864065645801657293053240957843503047060154817295176767833755128031419564742996899013148484564284749647772913671751879575589878400256227284402715862489010073198857327035410316848450379147744699992953573071529416259661547132402383240662779351459146286401167953112613892950039608131411900932307997426764166742877874305412003832964046242013650119389305650921918236043195699201342054433790726025526486285665132777128895273698977805819780563035184846177176969244615844115583450116095815346497454404894289309302087619944755513197242626079402762268386454366980445491658894996228474228465072680238988310428000540426323437361253460990430833200027177337588787016816020427983579346666289134703433850750650544638744398421364866105020074860084703275130131986670957783101325803164909860218578687422248801673629574040203563857709294882731653244086557782334011730459649410193535481926568241838177101507507217596177129747659414113995341182285175873406897333561254259449556615622840139407518535317601434084546055188272964052807385490433276951013150693201996355479609876632541927772204049174299024743126266231323132754430803124206448047058842948249539606245865970564205292514994851410881409395383078042404617010700513942223860011019229388974351145611631664444179543331335318780125099531230240406876930810463439973777357510109309328314974609383009514157287214562568799181343010366032876337675512506530484727873937449969991175366555328223913121340849079451609195721321607261288150228923939428914289318073892960082172167081922915460572114284710589931572886140246364711398313607809256022486502799733739571921635723668631479649476090849438359784287464460887087023890970264190496009185052446394472658964079704113030520331655653627971449820644556738846058709254523835270466937680853072210392411013017293974681238668179349410070793138079337323745410388909932565835216596213656198424876462631949910716603148536040664668228864405292935896828748335741141178824066767069122758884518744393130398944102417809767521133828281444494368839004338938839647649286384396532775914614947043641066943941180511615319717829470951734729868462395555596775371740709032399446819249097577674139795493774101887391495571410838786606944715799667607234065186250740188559418253005258356885116346993503891498623992386320231899782317443268381316003341027358788169332230386379828065842368115333083304217295853382076917605197254625132745983770682492916081391109745401454668555130419065906815302318422746097287645453826165057164481069116549494405954026526191219597421646862940516755346222529059163477070542471759413198700244521502927263280684882437047599531520441451548378406569313832658717730340772906104970851243609343984848999251687047792407402235695923632114117735544919623951137109006317691845556406365779094301951493395905679213869904445262521644577845592231791918455290798469496376454682844334873097381035731835366016563656940339701436198634283630673855162436731534878226031928535282103437324772470193911979045159887649064025086161737013757004149462173316352085266862270540176204691421095468812852987839516518232412505981646713721791104493310686810046421228756714335233075172506351668205431854491374743587748641845063965214214983004438835401635344156651102901841550218059926568093818068931832703609717952509789532964739860737406544557970412349927537208438050040239307474971915083066665108450486503345109577844854234573823686222874506369140458973328947534683330572400086840842811973594692907236597579002686732341535960803047363996200216120843594604765340262530568807626496160250312951648806709875694682018794554825479607368655119040457931558695318101041606972097406076585414970335630975428691325729953144382371168655039900376230420411838609994670318839309422773060818440723467315485052684761849511646266341809479020014250319622286169654811228974363191900797727404263038879113981431338281022960485610472264902923821617485484226326901853280034276000031888847952630878722747281478171409090637663628887111958199015201860077432883274456096367230449622684988464480583126966492178137310130768284705005395927994014926198603455103847957213338243030802302323107791061048442737616677641526693715939772267238697654767883473979919116459694037159315788745351626861836039586585102699742373892803963277321522083035339079915348170476103243574861555932065944945333608794056753957478670991639285699277091401106338945431044254484705312031617928187054754896967927162187633671987164687443032441831378351163451738992835777878451766023279491172634432974142174611684780851124683833499150579059746435197661917894915955455742425594012276241934005987447782300575399575699181079385968475359731480518334210961632089935372422074914422676722213802800029771717695757748936153479079657619077925065235545549422503177918896831307742747720739289472388152539300404536827597975233631474402953321715175716536172465177806270899353504683828947191717912748904961010396863765128423702393780451044415916484788998004909674946171751121641681400628491188578925611674453967505134887531496467053637290073650209923750419491669158565417113711887102618043417071714055457592588732494479726940216714751488175063959160867006806657641791768200809872341025537541541944706478809082352114750261717509574576414481945389324743429625160569512057698230941174375592737156333508953715642806407668207769595117793065255894023003401429429504458028277856742285613431629026819878533852551478903482824235533523894870254443342992883894207047957573689974114321810498431698167406069103797521811610926111284325031174928737201314432895337883184872547315985383097881776136993261625887582623634243075590428673963866619506880054436288239627403633603189226889479057316777922649740365645952192981595232226330228475953845218177193757380157050496433766004224018878956398289309374746693193643380923797550494592663622672459853087225682793538441348355863344674894673075299935000662944942784671403610360101710646210445298416354597513162284043528287728748071152712871635042506517177573307044565443652206188991982980692294759699807092292486388824975318266593903364999270163072034143656252168994531323197818317352424991988219310707117432179233231228076440539290533231668051518444956878406616326543057663272124525393562573895409150499089575327044649990498078505949509380016641378107261705764910233948704054714187612799865836263764927075830090624785966090973976917289268337740967503986233174494861922490131868142012663376214466200282575889801549430834046030222550639068025876591720906547273438387990270935982158631074536860379152476196038627049650992737089415502885183466307289273959888202649349818677617254716645264670644850430476327940315859670629402117744250844894597501342946131289672251031610198891996122265066153036462929753653877806508173561603190504155063156179227381629061533424699257170784499683243916883548317690490932356968209064878745724046295296289065405745512219975266570659932942830490024976783898908036164493304242841904602719628056024395020995463736212452254793933640857327219189555511145791587478029705704761913475420711052158785671844093851234950985693287977418659179539069918968327887299007864466280992674924342103366964915022853546143216160316637032131370056619056140454925912277765030211467247325384369049615912750522009015462063897613666170357837576324626552147932826962175144940377802219983709020495102715486938776052036171499358568093101893717871106310573592033222649912981054479237436164604074896572434743070203691257154390752241164507251948399239374021483900773900371759788139786888711914103588708163347908880585642180148686326260108189062963908443176102802576029484071401691863431939071485684037846536857395768210627269391263268674013258918796063775677276199583962553757325739566230943108244483975924919696574096466320398996033414562614739436706033162602525642529348089626502653279199396971244719530280767368830504436493172076483628325510269102327874046496552566947387513134141164283700590777758614961673761508791646282965595154227681485018624668480778031447570968630226345413221564796984932847070926502841103000422074776175631460709442625320342192919810114932883258937229731019806275157493907176159873958151398114576339717318819712796862103841524794059280922827035094282302377962118690609401804589797126708777161547484750277346964682830223405215319300189443210026790251945231645152210446539837982503644005064918342166647130520111898661101877424714378550490797136772490993604350842396632378620683864774637496268061677754094413372737387945756330523124663214118752622668932039603669305701683790448164373149873773325217309420622881722813902845895739773761819198649791601743650593216581534782041415580529941158827523852084859625559159367999956235479595789869471587873755500876731285740307737689293199949087635804010257453477141567486459556136532774526002886260052805886238724849764331867924711458703376324493855723730536532433502570851672536991751755069237677534896178710557021669859019827629782462466989336476592524821454110635081376976498275814352863826597133817373127961295550203527967195576318129946585677268428693984653144599297077647182115395458000714511027427941663788688713430446530762658030610260162966082051156728398215488247163672821175683165585337507527681480386013226857682988859804164974312280626404131151882877221268284645372561392881290151098161627219635004194667560283711978200982225482996920571177692925932712533770552528909759544654954158694093302090494499973465507839877904467770884134890186306121338837253793032942037601581537951989028128839965980835340257236096351740831657794095903339886768891591898283174391760548277825108162114072888592741472153949979702089910820675117412678215392067941800732238955822066698222192454168527217938991467641767172057320343341221085570972230160016966711955417116272598822021906974262157868436329131345410977586297703951064207888355368261992229295699300333070430413239929998492695808349601920345251499886626898559395683782357713281773227483485670815411037722502844140981717387753649172495116214329860587787452285749926416655848030214798945796555283373051844938425167330954426260168020978547207580932635870202233327350723486110860388753497665651458304890896462510644566164833063016857483698572132923270041709103694837827278767476832268792409799890773487680833494318312313372972381804283605041167476377244962283572019951809483834493290732417073587487992859416807874039543340518702068912775392610854122355740136563976834088244234158462447319977652973191457571208516074450283467770865418751797557442799224245690004867920351504314025578691398674764053209783554583767702737028159867470292970812447848798579028777349672914364908949952148559788289672124129217061445280991483355626606319565504351967655351726300246665215185841640640275996925128004824476119696539651438592524184465962245004760037451827863047644925270019048977760641065514968337509078955966924907277823674452454953275836551405834010997129131765132831990376004312934869675563587797424144436968169101016539146029140901119718062086962402965243109376824689017629165339588241190612742748164362891280711654860121857864652895719715465968776994432879239549520982910508013011758583752035970207440736132911494815208930512347737938185446141453530878695629621275796199838901572379672677782354949339637553073217412732643980926616427809273276366703696443336213749117420850382778425678908172904823293952182888298110466678502715267502193629955864687806121896923815154179985559728170937583418624718831370777037438047195557897203610512285432473931461066882865642196198319472681059112773713391583572209518375950874274643807782423392443392574260008522641289662764391200609051139076288441151626719531090085091553446653311683655515733304461762290592863457397270924515681135295463443839358998635709107765915185872999790296059452381038713609449955164615472337214021010369821892429201849901303869910933700427517246413142204504923101111950617753355346119390885578807009699960905006038547503993458283002618323096956337541798157023930839895690480738766082320107700655568983823490817963230737064417442065211229088854228323607060715008352121306808672265857379066276770233544856612212284010991066328526652733327986758107165190864713378119378045430913631878805884765902790944155938870657883286506376413080287186879382637099518220110994009696180438322886692142035373975545769877864182704210310749026555257944044560762216208691635309814277713376438319131257804992906675968952903488361089764957242838940779672367167906688537041949750855350443257042568593410598756820841460020277184124375050761056429476929380193287849585754578709817292870883272066003004353919841584592175339667545508194222836683469461188024330529603988301932629648175445285959981030175401424417900171819528589775451424202159510925793722882504459519582836105199676096396224565301734640289192003463351912997508145202435536434636683216920636085613882377494754407456751817108131607254970005632061564847907676338997827398271571000934106948996591075947904260759946190944717575137933140168510592938137225255061616210926225770047763892588081317124081417628152693998170735227576367414551144235884951087866116564116371448916863921145087574312133285976722264368638993900169053741051947954953983264132356958938468680252103526632581354618287906892261008288676911037491901243351185445251759258325994949415319951256171108515776078744331256844900357212615624233148997736113519989966275214851017402685021195968311002705976662782627994319705791181384572294223525380078512153417999027295235406721751523053275809159107592871171352275787788941482535211326466582362596428176159363247480383788423369798675967917588998929152627134608983976439513942450327658022082644737081712360696661120253733359590125087706516535221959271437226655933274006980675221899861756059064369097631249968176289363286229244769053747567960080655760062832159886915883455739061404783397793837178381741961814984996023614425590152307650890843020864573016222172933393145568294286731475725578624578372947450280230244295435414078323664062262757460483672478251812586979070370781898878269565413716268138425686182372784914054474619807167299335534006368007352867421058215342012705156221703749445175103377450106288897332714039335780661281394249534646048247791153847992797341093332082483379460448905034561530574814520046389340882108272267154371804614315103503023801784468531102091428090458803500948373490662401125067569905171744431171138713601465481704879096776476697497145320792219745306846348575640125538027909985620557307866669566832940141251653635257311693073843414570266043341294036893277170478983154413745010858116116448066029955589076840944788550287228352176533334472248730439108520866498733004252455085372759090589063967423963743511747250331158681147286492898352902998391028451700597453167550904665481877211055860197050102962453558328343119995976244801496265107891436676448280604864886771177223165887099813008409618158904096089231485979893072056733851736563380840374855846316968362123180485578120062008896232210548375500634206283463224787558462114391686067494185765040221408557405872725371364504339220045271804347065998184293365412105288452836218537828997183744445466346878746331283796278288673446690592795099051652647334917322712746061431887734854170979930251687292080527546301322905623278969600371459990999340834330779408550784285058905052168667565464929172712036746045990563122131626113328389872745908195426489030124293821663689501919305137634257331189004254666914285066301490432373990070779827089349990709794885804427752605223143458445891924858526197817752547693530626764174713858104889496168702138245378905937531489604500129791602642831824395125138837290928853853226556318861860857543756514191303664260162872262150798179175795554636466370499313136387585056418366755344984452720671482108916353989059436169051081484629654439690709907676736921838623725425724812200831385532966049238120526424150674683832279991137149923688733185842095847672588365454612170894214546335874811101460575140442839750491440151380889049947403950493207660155681340983021094718979107396972473901320033929526712489477123003217454624058854903273331692348933155488705634787797815128299726527321128794662330194362614171162464296550472896809472936332376448470837440249256134768940428969932320209514018760472493876853896123864946534180873825797252804946903371950936317029514675893418209125996839852989907321540056637159270348122913442513540378262491840075796997826585376516356855226672983354440939469071783490639474496454382059812355396353162662969319112919238613307826130219842951414682743761544266930631429524587500930487044028422408896111007786946984992842412434621470415545017645181460712745890284283393789424979585125022940801629630122876830375483792987060870780299783447510891106737340383280860846407224117864995867210962219152236219709860226315598271767239106057566321953829913483529905345592977444694660476875633782047395272424037642969958162441622669650808653163246818319714158095488455528088360938578586820373485496261400854434103407749388804433379558919435502463850441260227504811735367133502210217209937828804878525267981136337856480031812065577163572809001016609249219924771906404812080749963159161744011281155141365993302327449768561224162622103416306152270638061024978892835626022688801209524763555587662131060869619818349304163129618764744635226775965548910267857712626376874745156342769334764183133240269357630824020939498157100766203272984429392317992136022337808112666589115526824249334963746627168069191699936742114261851105368803955116769065376629061919139828604347967434823926437551831139051461622819363395965338883936358054406454310896489609250550680781150895252833552288239958935833732233541185045495706887966030687151420102588432279500078835001928179805330171142849010082886454635387410100149561400538290460547081504035754191532479008203056115988063353892789938657761116999609367296886980346083127867584344284463362893823900195971724914292868079922785323532085081588995200698745253994821289158179307725590993669931475117075789608445422899079808946392932727496491704854524872862212877603035228307660150603293215614105471862405986717503990325482468199610122556697201788176701725142974943984719403225103975598802388777394241606083861743618764828092478578762394640854798766037275746787741917329015762422271646352426643556909470406058597610240568566024818119494900409185691430266270168265591913558470581427919118393995405740770377252044861379213036988507886689152141144582107508329413729417564143819529043234587779975003857903320858142160330849686531097241131310400541148404086294332746686389066709664851720076891795475255208463363586674264687398607900029145929992345181604471573732751781134383360875537922135929084123163942697595918792512042378074308094507909994742234405280084322651390522531511719758173214276303809110920787415599067494055154892529006594992369092362255922627851492298557669137354335765700494872006701122552893275100396182650054685409957962276439761642202055436534953649370494426618219524242344541178488363035263186384760964453805293928672185345971404031682835529301057190211581225611093171877041913323161253544195897846448378531552092899685242554700573572872038994871939958042590316157803100221756101061574866346766941701665030563070166690620341637745479197784320847258619352142580320094814548793075049961494052005725300546610558679057957451541879986908219892104468120632321176477830909663924555196941688241599760375761885966953324548973788960283611368607795572495012262618973757293469721272135016253835828639042990587213552677745113088120687211448527074564809070481946859572550694422247434976976422508661806778327147035683328169810695836548462629777021238189884161225692342349629500331201370661695973246442465250063820884363494700186995294322807115449968781326841229545008514644959250017353697513900185082397691372490813148207219972810196496810075618090957320733423500867979511787691788084771726292411883874508218146246750501097191015984214716340923806786135385311021864973299724745093335503193728396503894320248922599766901439628606709168418516957079105008156377926309791248593776494351663891931922381994336255560547349708463376423024300576002250664081187181729993536678081650885002603160963887693472973729660036682415003186308065870355061650177940274224394982254370284876238343305946283030623158645506331515632627272272549675993071320464331192044764300182911868118621566425552003568509510047642117341805262356582796646604741847742381189922772302664156783991925051717692020982752142210112241522414308876068828132604500073906564938818917023156442862472887337068462818449543394863854559859556194337877942713713296721552782794008079143959496279195899455943476137937761344693063684905967359385962872639254232884668285176988618774365994048963624816796959503576010076931176157440195734791006126174723861604395278615198821711358287107522204732035761747263596964248539722033897020188021519262657491128779345795323929989160195902889504695865240187896350423487201096473001651666642829678832906634179066931560235567781198803491055309629165748314831976898412269142704423914003440947941295068904493637131895520150551420282963731378243828933510364518466142651035470747018718332002458378392124121558403018761489800454602024724465070979860028297459910503566258559137537098731391904413343864664068005966454671085328132560451331632599463185821875145109123008934922060866455419880029692650454959550846849469374627284254460250619408264972741638215321759070844069713042441888009817506812095710615933444251643255376955785447457234165883761303742259149630165833763002379300093701855829635356736309998993305041148323310586311405253833476996432357950183866871641986398903094639297716396904972039058782556304418023387161874358430066027051303566986757089452891116065795616403003913294899008569052162094044625326643417243424696740883875420883452851127475935881968376417102620541801689971573581175733510565576482204369855928330146133171009147095373737190204084103026921073916587324020633729480407729022354683827014780322037679250972330460107855153320566514921033599766117443969104940529057589616974427151169170053345443032753340131809839341347108472192339056870309065420623187159452923730360833108603637443722890735960512146210492431367597401678128647337806063548097604099503954622841701045256329635556534915886438120451655973804178794013004954474689044014530027274804345232040831801570521642702748985046665112072239583814560894628661757609089571981173770121485754505851182198043788634292485824287860747398524673593629725465768129122685131800403349704151989071794189237153844605000436522209846038475283843619065022134560489293595058171674679014814656370465492237703352936696859994304288251160024756840803344503275938336464981533984988034037667084367480997679118131189850214981763376297666831840056790549612948809654081167361758274615925184944716350998342175183146042140147189335859983408135513604895115588448572819317901323408008892289290685804991859292084754931551636104424148338881767227403785106497470584842559289616181106635302888441010598243883093890701423311055390431721587549088304902068816734447609763610240287539600704467415981614415094025666726534595014128625990347281195582460798333790808454509547256717760439814379318543195673190972825603612830590463423179248621855793277342247016970948783283938652081222321286301004429399519111898770711326163155596437595841071006203254624450812690204428760448233989395347507143850533268718093187328814528279548929391492234684154221074976070932694909893357952220643014633220838790625835502423982367761424260220604376214497830402014407254584935604407224410941855465861405593678682422796285790733749905915976436122352494137239540012326615691600636732714480289958018075750999860475254623165135915775868663702427040980166561521648464559234322784871129081764699379394828461166748356955463216654578604787430820050387890101122784755097360405237837606398886218853322387953850264844083583182054374381387001181874006478614850432185747494751860781286363238823239417477756530362408962337574245541202326229470857463894430841791754862442973213472123485505438895554594014096318682730714205460278893698903920938332023910426863747110692244805908102550714325937469707914882904353287319142304076779870638166915246803874036317786054573621799445791444955822677882665724549612790212744654505881202386580587287268674638684810943076300269325571438015626407937804533440534042412020402365974415341648844057332844944442612884000474090507693100921951763660174331713275226295002506082784464225021876121495414304424605343382381824452076458699129286498720879323514019704159292065905301280386435214071433041100629929980251469719830724741134350277315969581069898650167679395806410144927562533590218661257756757005133837379773632941633389862382408104651896452754741412045957362739088012943756063743641752650694416602717670351533578144868270420217480509099657650610733366975264400343456647287984760135389135774131728461334261470887189028503778836304451631947045013345578372169119642066844095127920959894968528051657839314508973915902848088012680367013507281005934936388902699543972543548331255051500460217984434563955504660323877717485818305665674852153592584472334601772039626299754210112397921024730332317821461507260143113812998630090692510199319917515224567294391138433114795510843529498576491062358203089403185891260823305560232352537677344090103356409080119614239722017045327282691124945798205121815445389465472820272029789407265264165585022132542680163519636429445185287775243634238067910192620787075807617742830605435446117537379143824496464453402884814899566320108334153129605259613607922373027960770524111848994371883348681825595292717241960774521700772889925934893344685754243587281500997302179430239081371296261198699437519261539921175193396813741843997844898535971799883818412131599692961534394520036355772626469259001800453685151226594302485082576965713491211275032639217703598361099691414994448388700792772086965037784332624094046357047053472009761374271162971179507367678846748498770208394965097581376692149189949711164104102389879871602288195364358959716421193105152541523454573162859258016024086599608284896229423754790780917489439667010165983614146218333305029993567462116694961901325379183997607687228327942416353150722919989165701429030484218358058561366414283126017698623175277678485146496990083218334029412495081831053406882905573274948024326493016884522774473966006405970141941114967330798002158795472310031894152600877553637797163794488177776126229542480407333501128140145048418805602489767956155302744776577207539459984012420337493854250050954971030126059192711838177842482086046730180516402053393593933810684352138792497911428971785008521477974950591838978552369175082796698146454565374535136728609526062391005129172536823147022901470679259658541976849507415575055477694633009257249286907854013791912803741797779503315991117202526472034662252235041572351482840228314902879881958206814659664974692372193257503807068460039786471536133121038019013977712759232509651979466106024615682240450992797265324794328037988104205349432451644400330782163054639143592282057089622792516150993463149351173071586124483046591945459416038791157812257716621293881722037422121946405653612061454894931230009401922699734441182291110136395674316810023482969085478756978338223386540779093849379782784067008582046419050399501259743065564485247653145707875045398350197384101525197430761311944473985441517242256978659502731314070660851846483628575236941177505944300844295964534494848561715450642064725875949600159640299794152995570405823487575801492475882324819511613763829272224352155492927629587205121961891825859343975207588651146960563958239790193162688634619172983298186377004923374826224338728803117612406351023753379291348610590797050194585575150178922282543485609781804463402058161863839016923160652584668982659255498854873945823284585983043675955829038745723607017515679457406597989982724179979623487915317663817777126737197626506125149535877309032875413454734953821419208636914865040724472668481391135487008642527113744899571358156170351151351668086521462314327253513529927067716389196595815558711792129945790628564152517130077840831425020277155860467051499512439273334829268058661410927164327378230670084846959821642692743256967555842124401392804279169945495319240042904987087100731773250406662932083272589752525229152723845288401252395922202266547564016649246976985720674723772861175943000313302631780949451040263098828304960038104764336463598537305666459302150811536607193059115945205735435437869856142250161591684334070337016946294912995320923077270299851959938165863545730230983126612831799142210142421798204183966835405639780107371879801326288440102101884884978504073517099793509818200879394605104866086591547829989167263383249402431751195897700772755486712019917859323250507686912691475352401701204903359803328291151892387485272939609240341802240180121319582866466612817231209008507116661823597354775810501414487369991647335216497393848325959666260682340114346596264709024581152804877655814352507169912814323903760636081658518036864455130190705882590822796243822931336296469803234628419907555055982910085826449353671169620562695370703727257885208003798686741422704188053378941088357962855529208919764851833487988060567490704142880986843277099124324139472020564335075226078155076489923724153520491281256774036654956435709427828028641295515779787713863542902450163498566489926856981951221989005678297615550221603600313216648252753053447981053124198927247441914125488140596634568263670065832194497494541029359494395570410932927700898805534289541245569203503033971724107868965293673186507034792123879366769043771807237011959834535676964250912915348826597624781990467036374190114376796021858323299186122231024874956057005175634431559624289074914802578763336441544267823653016613322604250249956050943983085332908082815671726689338884341985195955322859886400603660209510856870631476125146787927170543350985244935894500776041103586538345346346944009728813159994443287954724429714926783132561549124780212218822394564582060911400003338289579416790841223731792719819133515090262647751985791302514268808940755872896593339011879230379500259043743776958841631529704074836263959532855469050036429304046113709021876211313429101645816157398284440050798492359409210215546444075750420825954737645636418513279593988652895298858259087771745943100795439832170654754345914968697330439401281326213795376564000316687709642485601235498889602346187068306569886306105165207223834714287503689808599772456386873848162778895242180534208168104378054501247282531434753580045935616465351147987168432864472894611972417911597330865311284806432663737794642875168953261408793116314655975741439478700623327792293930583647777673762143310258604248629790660947086990145352186708274849537757653217612120339325204635730840200839928915892419631527563651102033478514201702710557755930062439797248951960849531115337942388495976290866566429835667051398711483482659450080982703336372034649600085559868657878904602402809935670161836127855261095300371395379261167349915050525587996159347182351014858729188095120222355960679148449811982615337430605217636312778572476533784934562028486722364528881530234249732791758298558546715429508004732467015789427018946829019327709750886818597736086266068323828621880187042743576644346098286214924283701579818690034457814486572318454566325935291812441948493350271790732566470385284019022215925249235780883095000984518118395438593874353489368523347880698424493744392527687956774329382598099432006207214349098885315497104251261173124516559758383182228038034040722737237837228923231099114090043785892698773757581551353991754197681473649022584638094506560969943526708591932233906916434583591325786563193361423195614217221860907136705176444971037593546695669959375489861398322392279522553884183511218770265564408476914794136992447030307165169652991153552725495291193750926214565333059241224049348503436606615897862734818970871035223977550294829728450470474467127196706863539691845567805381336539859265967258238773893828572260214100424224572744203597824268588909603802621649204903064654275734753023412154344516975781138395919311952766492832879259591486457021431281735945386313722553505948077245193834929663208913976865465064770360503368343668349530472005356171497571736226152290503507098218990025860791465808156243705040849718039995226156816730941123401502228914235013944454290946356144848641890289363079103501874853557667885463187315324950032418821568528650659125455531152770786363415345172552771130230059547580318740862074488343613485229719586446526832626215489768068197374495035936504218097754442375236209142243690527700939707423549802126611525101156951394618517569447335053232427258431874689490166459809550700687361820558926745490450837875226329064517045693307409740157428888964075407195867775800899074146908378999081100056476818729473584984649590028684858875252036687453945946614222167231294514475477895898647003695770271401664734394840398334411632110049883070128912031061222817527623931705083048732463962699915345270871165940248329663190667111716991609453354275160581209943466673987055576124251619275394389353857149699608476342734766083939771950744017051017179432208040976286741136830092144994222200359936272478419264445411885644173242065689769314019689414948586966803410575202383172942822355466840567500308163163715936647059076517195101300726488609986218689939610460801356212235001262891843818184329349671318095977587710044951958041245688481047153361894628869735446408339133949081642245535272258405524771773750097516971885563949527748235544840473577375764005189479280300593517119789375293729597648056131271186122101146118772818114818737408124286513023883403086676970155964899287544986136981456315468740013754152201915382540071696730566240987261536033400294135077908932946515046391956169354767419262378221284681219624009857496405948253642901747168280901435745606249317441671124744144274415757578602813438303648292528438487296962395589103199723550952533394827105201792083350690736725394679596353694070638136197958632468319229417886501527802101848423875992006688271875682198030402388942773890897873185771838752417794995480820624141351480403283094577875831114178140725662733595737573124539203996432765081310036050096290962291295784481490756194000232986295179013996300635241693303440744756628141076058478322636740173544643869003741394291598971149082393770368413195564952148089022551054010337431304721205577982005855714858763717830385034735371417427142614309968659853068534682009936767877584466329125839289644384762090734846435599514776493866592067038389857643673751209125871789361871006826014451920782352644034779752123085118662000106199705193847598949786870226102124385862303874145665883162538539056521144180640887531018532456985957184150016938214292004510495316210802729574991913498680571501331894428912662535891653865677283198149877900913982733326023198854239656647564103291688600443461957891638439363041474224952539479231010897408306610382870767836705715326460535932863933759330529868449246146463294096370720864117729458131724591096806617316607714757228636956424037366754336768457402722108987606958376507609091753337121785363034782417546804736181468230903700348170153348970249209024931261452971209994599820307301556238289094019732240566779306112096782193806146660607814798643847174826127830946853694934899923286858457925387981430281851773944588615367407242119731956948511570035822420037764996110047527547406803094941156263543095841864823052444617556823407087061343795472094452573077287307205968813395582440979586227462343362719965955864731991843330215791065570406973293308755705217058442750950278311936594147295061002474937958051499547818126501850908273022545523267678827856881921819978403926425760230436916060654662733448301893389490711479957575667667241502344125692529972345599015837865566928021171115204394365382364061123034723602002174158505014461905831064005292802452096380605594419646514786962617668410907317276989962971648929461080876512017471001102658706425631205950755318702954988829555580333077251818050566584521281641999289644667404811678625603902765571104224763676187436504002157373935967104682510614436680455726314553659047351314645400317444213853568252742210448774712176261395255907034915604383558070906883326530360231910704200121097217836139154248181337359794107436181458399076522786144244075467389307157594962366821517353247741794446038067869914723472141286024027338409520592732609838262017825971815219923181580730974496559925955178305408913382883352902482125853562667231324954806409681225619445305022954685449657426305379529220807341639960552833762754740892539535846975116740150778225746262746640888217300224380344816889105351407176670791836303848303669748312651230790650323359704646328222741574269518600324101089393863122172736015958079076478917481123045490922281184073954618021208323698718732453929329060943157599752052551254162600889118767899934044722063619522635378812170011529207923033368787582705941495128858067761279819142523033584823691541779526053806615206412880103170983312516827576427328291312861273067000994662041384704922925789615373271821179978511766319951700911520688582841272344769652757250124494640189501727748609185652353461110382715475988535914732073395333936280485724185582334100922755607211771159041371259555765582464533236333392281133562588589639480024301219065952277021938321664431266880028112667231625347714368674886014657670984344531322147445055114424677477838087537393124219737648321793254374590300076870009052255250712855650593715782629128313728265048549319725487080760434736062663443952629866227872720552652384701370831358329851003804080525461439621478292694196420089319331461318819520515421902586204970119443191065461453663374832584624385618350056938170235094462676668811998461313356352406719164515360175209652895766871017022914076839022371214254992780242866999240608838334039902914796936438943974396189451021045938836013351021817291623915551044088327019372525448979269351461432524941439824916930538119081948682795648881438345603259420030754255153448041560192619495926205663236151378958029720152672553783691321490373468292374737473358956669615561115193016945796693271321279584487306292056689511938145471228843452176727855613292587669908215789441387538972976753040274976226633014524365747984794088964139445942429454815633560999126799079892184039520509785114065119233191777658001793482808824218065544440808755480301165095576851263946068584655029678709318776261965800568081022157140044658950042191468648076067518578021647546063230850570575910145237239197947472004053450341734736735153599039983533586252169217640076899017844205049335967941759473304654178962075366466570636506971769312179957331112567918169347632493981014429080753103130673951238438777468391431731872369063765442891804486459250650440127366453337476453568766753566811785097863457885909782333284573703610163448377841563726337533388026831199600244860575484024536974638029158554833701568664604262333311205308685820050138986238291351955294403788248422000965959291869235164954107730872846014485897506112348707098033609800081940954476592826655782438285244955894088353427609461277900616910492426950853485366941959315599772765375983585563888066568020993681876775957402808032711749714639798401340492467350431128401430591517961094037461194605001974476694179177195976053833056575151348392833330769877151697692166317727177849928933273791743624675938770247294947433090362084683147018623684701073619692946763139401426345065613038299426129775500862728482723602575604420289394404851114896135160897968999134827688100994564700675680968985962198939741061931814301128843620053728972952256822689857842911984440900496800612127481940541604330450940344729486842736653008865835340153910984854494438817888074296327051289370573443835644611825715480398332757785558911962958040774212086590662068451780151781498483487134939261413233621210794319066485370216894365648888981194703387504045522241898911398209595779806072968777047894484050886728577197378798880725658705803154191216245798410196799365324673243590813913318660285427567880333263603182788678669238582550223075669840175955877101276117886299436559009895062965308823935793839438901239486207431815163285693992031384735041461284729195461485760390705656087477237464302080895995194255165379588575449748867791470593629302448248135724287083510435717801659938453687522469426164947761086933820736012235751544674898616302983792312324915591604790617495740058761132904736804457614933544740840662544859879511395699632325774715211404675495085344367339237824917779469827262194121289599714821404118136889518835221181043669056154524728308895844899952848052111950844856750396988267610937032183177735961063634281721662182258072392405633248524062720762826292810933184181287148539278528533658020094116457516979622681933030035748432188448941023133119238530714001718481905841307574185047589698333755381854144166446181834127773591289632938382062521701269132610060388955103208556528252117001779146199049347342201230760195577651110853208607520100976113671126977387847454782387200158518997113402877119785429732479109687426843620185503149167510924069413767066494993000868286449949869757249928570959039686542178348146475562716183993693034067595177427597085907722791488437056602814452986558499210166624858566802718464638716195248676388745512551763248606652714538300618797507636267015725444446054534969903541148115359843333695248919174813461664039871749434049930226546024993197541674152154095250868120214288329034952536363035192307902344251996612322915921297713898906588516717458975280009724178171235367427062771330595745067781187542179238862989917539883404301941196957585452967456766652619387436487194042189589568302255903010620796282950393718409958184082946886906011459911431410621697419929277071836072284821906529289427332591294810133063889925407448147878286469948145282853333542948161297388014984811361103343086273959201153022338519407304097528469964496933801381193611765698418245056891082974263582655477429048783804019976121077621591800367054383552543138556125224720786376925477051792313403953917025878174400069300200746127299013694051463849497358342060109274220618554828061836657696724575879080068414512610150273076355683212301955370403592045192849333223923470952790111456140035233251163866654391313657877543745475042241960856645053355241861283745522078884373869755736457070636529858627389421021460404708148714938424256209361481438046151988781109720118474704423693320301535786257945072361042341215008106892899126576543657519803034752331047689630951091359128750765967028144867385263864186411843613554074623024281747182147468686221785831671367244520527462733926734397802948195643004318987984615088943144160592349074323579890957945853164667690507396553253683905303339665007894994416234846336271365032507590025671572796593197111125194477042099752971083226974542977047172032050566391318189884262537950340400053189792729064395373205072805226920919654565552915833036278134492437284980721626895217138033769140330280358169342156800577790407943146650646830309586482998723522441231311454026563150854628396628484563408018582772802055058330249519689061124152426725994565121147135277069029206120376761103749573090990868144767964935329758629152087019234481388864959857270718568183658961907306845786422274252805389895722220465760744711836618437100291266707298377116048601129981677295735020779794528866393536837727573537770238447375379974562421554509211884538714047413684838416085887799573822324016660492908695044695824327840783787732826850190227617470628481537733526253370174783294498743179624674099990366327436835369809616876690678520106962528509541592157790751152232367126712383561975429541919996339254899810400658977493322589205177359964601866503235947437838215393977907303033658022740404094281711479095365214849918799677342107261761491366841856631117390962473229420390050790361597285813633382717996881431447731567802437370015555084940092535404269651070555875087908226721331976239879025604825009671161245581939128166451506739444146073026476549296524867353960737114355146030059033878723747251346625849118825021664665428563793278632081488391767013508814140282224107127796569322090746890815575378256740087654392578718726210994801778309002042543522032646378680579352602801201846696225617530919312105019265562467029298000782555354641332516237013002687660991276412566165417335789443531356727398862606029106444253120096609405926250611693225493848951219638874011237822776962908357883704502111390503173480259360146142123181660572958784710302114174487526435981085787725488123528617331396884028928048575549823195226712858495214023035582389469439309264910297342173182168876435674963875322777295466419273867835562876367198785610175763861047198397027701893645115102433210192113387356611490879853592045396343007441898862889033305033585056900604376122742906554195612030482092422978231948924794617255377489673994956967765364495891589529604510253216674506437018883438300687940803082872721434148499101911011976250398240865856404521408116929498198888780966216926033420722865653463101938000303509471477988452832520393713754941189117154874340402431537861986984482271515936545883874346491140473462830879553297447351632013206362979565701582315489280283283472222066356805435185937143369612119967497618530385124614192986543843400087279645520865897010829806151698661770275283622787872837485726726893410999348299367972989751842937386721139595906423115574697600816848527866711171081876861231810094044756717085271959736204686455522273108720454349328116772005081313673298406123386258131041024432576910157098973805143495527514738555149005189417752570895804353915446876083552136809698306331819467378938716533727883954049813757262193917219711958036710144066728523226434136560559965372296000260235961667233358968662588891944047087583264522855618659284273620626764826344387832879271458122727422175184456046891498517131951440814120144739533251036678738006709517438712009223128884018890118399164075898622801654959704828855858646985349261393949250275008978277864559156260168803427128926771918072594545977709460320763332162182332259506206929870905652211908219588433202068409340344375535733419039899227639325787955004905301403741519263297295877693873633953548214713343600667037052786940491886176885138786218671431501956747902946629274475526051068468054777003572676103883548847204570246538753147526452230407089518064369033935412225310906286345470492109060192150383369802211562285325562681720986686281315468141413711090261536151723892546828265318465713259126868643009677445861462342757041780037467761958282854979374981780228705433679949014176586256524579938598363064734937831478827732752439076550199985811713810120233860381992983640231360306399765362955731361803364871742917533473887403413981694806864589938383006166425338341160155666265890280812608613474005852317209040024043086025669460863918639510480514904998569643792806995510483686459151940091768446438194240087906242085787757438932809106942471161139553182111819132081102570833895816558171478212461799294811845720021711283031522515872749622289003955888630935429393554968141542222231173278058503111755232253898998452357396663686619333809910269372386679920464918106189934772903230696329093964860645713080932942115916430717202166293678378633429684311431245881412868717805328110290179954273096325146598829410523051116563236136640862855801670314385590042759020271707347135661249699050644216615142011203161239059918669729012952714506073701487303653637363831086404018345466508738702177419454036068314973255287620602604468242281063000350977716202712899903423085045421093049144546493318659138445147563132334221850072731145254809971478148307869848287785637125258516864423866050215649306017332192597019084017063041543037096085006534299484260832589835087963848666297280071776672605442572762448530261167677577725437595476578911239650372645595201843589341239799880943887220364412518388277857617363978541886033996059613967827278161562885661617757944825685047488899987206664039685526271555852630860648480270200616471129555729890339859392990537490569392265420048579493257491324990284314727794044900307728026816567065109467273463723816500913555591839001553642306706815646226706644018592940114701771201772733327735459500622604686165817639478453712970597853383779723773142837323705328703695817705871427278502200242374706561943107213744822089739488607413249897901861388490429366271119324707288995393646816940450634003420348761329767072100047889629147395361956343331850309777927087403358640882613712551282597421459035993269036842354400065598937529101281095308374522521475625276676263826942821901293491232855973951669738260786232208759972778484370059359294766847317987373498830816004326843779058695547195529989670520560603734700930408982676926868733522970932410487424754975867875387560765147434001864589848292201296738809372644784967175761903460876125550149971670399144387252711635048358331053115494081013288928850540550620355979375327658465328869922886973716192795929655453224241879239426544530411506072273811558732721458263904793228114605701026427547137363169720530611144840626923960581336208852515409451974329867843379156919056891236314769595191372722855900023734736313718206296609660389617508472011086642745468865368140711525128139948927941710991889439094484213191622627910791331946141822002457422640780931136478715799097045877872143525990128298809624421084302744516260639157441438945906592364322081106518767703546831201044648107842154931347713584542219538732255954182160591043441113065780020292943013855976197393527843903976587894056660630786945476924708525553190615715585831873840290972434032697910589461656090906619432289638580262053774680404664733766328605894526837678120683780033557776004549731765083533299086087769907811834014771296856223956784182488548673898280368076195871187171570078120806883490626620771508511236338925512618490832539825115530434601601502400167704241633508334161452882898617075947346709756219286218702102881202067347864870094823715756085486310259656381538231638630682122763730964162939251491084478468926871845865471048444653542165895056091985305580249290305541237832892023980026540717304812951251509897859453649790713672072982841147343266851414188810966963719504107030942431649871771971813540912396000878569777951596747388792085982525772485578896394616223612684379913796358725504462959369285521839423377784614465504767158201279019147356080569183951982962596988585504764383644288720428302497566697191043004412311840110638536143638632922248428241740014581755391965565325275750531372896899057700133804195379415271628430320373276161651283390089335343876495819338198578151766543135448016150534127577142064940079804236007939638228712196718926527104748316779370340011531282724337101089728501289285326153494018348744465310590498470020893526864732463338556545063405072448051731825613006713855454117110562222001735566881810871271501310020553267718085683451812290785649165836367439181966357389188417139166827259693005550479843496324058635937717095580296964256656350882396395704624060294845824305489546442897923234035609045700726118112000071903080950668766825251061390931985650137249379017559117075541384768051057430796404942558219050706448902918848009795986535082549701964195840095291038268310040237292283306507502621884925304249693586815841961684170518978051361026697374949014029696282916648984534214773487361003944160875158756832267744789380557527391942599982020088470801845457348203467520227315775489305393045552901653815137458044443030822098367035573629139394684436674480222552790670393410478773420231613065961625624176948515651774006171986007674021709383316687115909025558909094884702946309589595951063980954762353751444872574724311359520470620519063124951230764117421558712951784457189828870979759357056559810327979057167448820944640488935724970158390050127673252131338685681714120833534660484390541804466958303716985090697900777128661788360067524270459485886784332439356856061754390254357431969204228174057202555285647035240653055315323510607144153848050209073658304287432342731030326733736298001838632322161368152137182248168187693896000732548463904027379206954032697346046013860653061639241785408686013556392651762229961134482935294788893997976527922833433272237467170636797121289277305890337061835551479864179137402264196534648282267191480888774803168769877259097295465445300753378796708154714527996223163118542234964153317482750014071559575938423498237915537787594852835132886993569439187065255524410401806577628115393936765986103608725000824664576882573792192458389962684144265931583717142184140187035773655924142906718054332917977729278668604719041920371239736172826856780766342975849818727062147320879918743790007226332259237461045995785599841490818283864861659122152796841977351985763001303059586735250546406587045287638081701672485854692616180172971079088465145063370582160610035744112406663370619532978311839227816190117606478571438131206476731676516985062465153158280547905735729398207053798191402371949347674737999152760876586396485809181135177923288263532449378906773144149705347775817256701204745426375523361449656976600203744538114790365524481410356700341663008878268011823920482856135761186897038710013538634163215486412116574666709154788279734429477859050950224396963494620658132550761336227142610732262484080616932782526638834270409471366655906653036818640483527395378535689328313106810830496764042707721595733645108468154215812258758160818326692555832680561355337780467203994138482777559296829208366975349021897229774526490619395587882118260536386406518770572190563430427851808778778376777511263088753079013450318286539294447847877456930714774808185336128681208967676821841970472654255446275852538658777499719080212411122984288282080905944614233630268915485193370980260454702259555286913760649400483406747610821788631806593212027437887050644230129188259661570643257781847298716790801672356551042374711866114816447458676307002066307136112233028804555881802658138941429246165525235900832214627541892004520018845998750193238243774286426222374754915182565560361614348389039795606368725216751182565238174647034901162989438730266718796127955615642793898732867298232096566988532716676147463423042350339317305708026151133032970793603733068887187550167238532611486286204335725078229713022342742267610293961122001376575249939213880391595771324528682131220089519148918840743623110434451290249670007028363268315356560286052929393574346363869788861282173280737130159988938213104197404894790734592041909401004248337985010360670016115803684188994618759737502622131337167564096321110287826311488227362411558119831253551803884104306837400679714386679628830177619550005755269145280789928392694574116645910648695496533587339920798682710158520817616379398606725591907057082675358033134311630154029853066057707918760427882667497919401661225084197803288048596099746722746276354496856377596151029124128428197231365099170657143303549175075404343932608972054270055127455117863282374995569559791910796575492704853540245873172505030098485240181683587666622479443911153219662592531166682297019729627249877566646005747711093194828060865294015967375064667395721455644450003894616847735102345444341733051572974186451474988312344552124165571465705187580201164584801640252933358042950387164487300690506911016727686169907583173718803754117581946151606492049772020517060237773940262288616601542933732507192760143811030351796310714948514018981891025182085996641088091629446490248146807283076793135205101030408367630518236166958162292555572316637532381470671847361063176496834294502912144547733008963025869349607949340745891987555958713037541789136949552587605758751969407856422235997610158918003506220191159225505782152717937243745857078324414211776828700433191220255388817697154165476820322637571249478315430127913516811217247214340171346267326898051028593148339529110716489360949249696814337398398845216240752766228251878327001877837696215408891319414744375080774143054066294861877590702591055483734822907987655263808319259873306476002410043915322615636205656599137918366566243268151945114798032016246376777928941400536514392373665019545406246881947986101411058871846207602600934935992186712276591272471815911207321352997916797467552849259929507873616941033900155218736408442670231870835187399141668945701671718213640924716737008266941746467598042371547958850794490127169831670674273826608723199704081926784786252730370416556748358079837438559398747553946648885905595800021381353129528647813650846420192725175040524056572990893832439752060188461517604582927112354299742836459990356053152740918444634733159337253203399003420092859213850213421474544306755953765298836048892076160453257236294068221655640624553116877345294178122462197720572321043580903894998385995505338101154035241851800281922356275778390914265446380029930531744748384344874823723121495820090294303426009344454729832493277910221311186619294667902399717627517180488805057026642515888562850829039486045228666572179562162973025692341026540360364675562760037092047103246653638460817015306974861503846669438087257314814873509896247549599724309632287332507104475846268896650329752921458314289856532078709184189787894322154242764574727104198839799544107524315274095168890172660929187584785894313767678024744733710752831926373788382656072596332433609133764605156277608550424680183386179332240618565865120183765789186896119741975354093832900708455458311649426772208771280527811549249357361143480706673744035172072223347631801852109808151085774576592398643367039666817492389351557551931426965154709410974354273550847052070451687544362977130497246218322954075070124344350499650724462875280575756361296981890095564654851282995628360121820464223710057486973271300625985178613705008749405899831706076254576253203328865570993704168848050273208035225157087786979579611905136785336419927258087164520929932384236611251267926914343775166483174985210315593227065742146916282668245628655772344589834573130008499527012975412333282871487836481548061104690540644604799242777274128818333449412182494541459144488764623606963583548207492898281502772739901164297332089585377355099816921421059247868958512402859018798003867630839190240843320317584699644533686085137793268937489438465488650706865092664177210189204032622413920279302709555003088552583121671692994855290267384981145424074074790365253895401596936639352263807812877070589723642608909152318267622753177345914758034402366461706780397317205546135266258206231891491617656677404801151784520968304248084837431691832354355715651647819646007394182658321191590616910637643463300863598895609018133636224966850230133652697231922034751876041417898471196313505558265147086032390566782435363858355574521752242512591897930360450879764218749778396408124869644178625466811424666742879805698505913769126979009788105953236818175265757186569844862269264921616503880292815797761477789576402163653235512182283619152538061522994292178085621315008214634454512576708223044622335576093941804267836970913273751587721735373599223847861459660878334848624207415310554254259605644942396172501590095362153612988438491435349925038050155870203353283635934066332331116653497974934934967875429909328788078974214465451053044440323509177345586481758385508088749290360452533648135456515833467714514748278618136514880154962818945479206240357407744558708021285217275902509362589750784383318339166479701059773009954857041591616828691269519964492324744968473565506895511487319294761682389069449856659269735449371543367946018719649793816463811067362554401910603922651561588411309345036698728873679748368688922998812118806264027442010541177968391195969033296558755541624242278191797458341118600934386071161741543049759933019688650805315050394544417107458202572640339747207043641415641009096218635627003482613239519797783356103895816411220260607566861450041346171667299116287676914345007986119224031789347398484779984273307918517996673139933379048618605649660366170934684808113905107986376822555646216833691069675519446533560306872190895428390839395138585291167637223407686944584935912366326074483414202402378939570219743636139072911695786123483458793458895145163962578118987459240312489602161100360681292656712408542584583675512888641181794962971795507474750867234957496319716437073416162146854649896680562906608431575055013282229804474040865301753244380152213883457375207113321149196564111253129885572918400649212971134050557866553288793104423294001217456889571632509000689897265728685825179879698425861457402193574621333982509072554378378655734991346437735175412906271901876897920868871010752156946268417997537780654379470013518890901783246679296296933624645852326632091923906770105680340537983007703520348338414683180094619862928834060666295685856621822120026061573174209838471864620466154627571698247436661868488721128869257485008844309415362227100260230669777753848398057802747248333048424563677269148218854841526912297096030323748004451780150096526723650251294063205655344297096483423678903955914206169703036521259835382827398354223584631295505980506342898762382791919658334541783889548643874137970674368022351314244606815796668687739789209324650483288634346851499769197960568434106697224246948410518098022259264363874204399238934682449873248246850695096935704608549859297629798135804183590320610601035565650380250587556449894723435218888542383695161116366379469939508420680051680553437131687492457250717117893892677756710124373319782960192315795804435682851140294474492659993211125413851987971278991360530509902317164875775213699946392332578490548551198246599047350456003251002027571976589225379381767645513580125566971568697060112605011288902381423381116833936687107027507658793854804321844563647782286906071315695994123741533742392120040537821771369471819499205703211987920854764451122027196481601026872689210551150149463075435561142596497068404648482046786621340005755080768997947741953025473555776947380434862955312522457148209442215847501603031512051705081089014166489474117611625773251929207988406896015412102599899285537629783748093535771477926398955278540222187489466424655215014450473071874591867789731720037802451547402919798228530162264492748869195812862697229791199580929452561427163923782472611096336397787903294224590830864832963868672808100092361073708279788280404424627155021041476883113226683195468174883729291508441784580788413547251315170799561880302050602077377386253382962439541552615291299301999910143748668542185869799616528160238056473328919219434503949775101853069035953647176209150326932083887566481934756242672495234697927556606729642030031254015724224512918525541814453695800612827721644362730362710048504727267966533887757249093648886590800648629494468395646868717440061544929011908390382077645273380386262683890358322589160141552050628406995003818459770362363066549001025229580844233721830168818258014472664623844997422434643212969700033622791449651185092404168844670030493741600694209650547733311177185269738591985502001699420373385659416136398571406187272105429513958617093710038612743737989234460109792567087043392175810231602941477261074622992612463201902060174908893617915636738035360269015416391744221627984721354972991856665955967495092142819545094804189209069288533966024259092239429716925340776427179070521587109144946752145775380093175267024993292642158314956930524388735672136750545416247594937733899535389861773106816474488531439648852850987117454594883167249163628392994784592653156340292032658371945897923160488607099441320159458959400420237788552554496844054943026942717108532542056385237650298516317490293159676407339749619789869638210265332490884836521217718305053786291096910870542808264560818496149513920302151386054925340179529356096644017124102008774025907428839229645560013352322257580727224643900832725304727803817183318592158978429570998444879138549900240933498254319307338722513588557042247172579677427402773194415435874172757194318016399553274250981319390689648827345848324708810936506208873745996230933606946128538524022507640365425905517681241661263071871375966405827181042231507757067690342848851691181757443351510240142391463848632309769750267172880122127831442181288520494980342202041465157422249147439750858251189824464693866645973480559444956785229313450789154637267376978285072257235537586245903028962036614263403313967454376377834320654172410070941551224707809435944569180535309402266396582880639555613310610878044990598553523503855122245521078571213822522583459208042133587725758376338608576802621756005736270900887138478192766036461422867727981448852214911846117451277406417522865051322852532733939735899925776731689564195005257382746198990612817127841391019711878698883866355140317485033894849510160563523136928112719447083187822208307862208744909804254415935797510013832725578575809236208388625662903830079250132426424418881626723283431947699787270380658137824822793250539350561399029170441206289274448787033033075438703348000958014280314423834301910127795872921074567557319339150321500584580837804641924328184474437081912679886028276523458518958785110476142171577600284943142059603244502333447363415191658214086657231446334286393227376925577313166601022273397877038672996226664920352322168588460455302417612107999553229032167488489830009962813779611586769178030928377520510650202716380874511710310473865501120057677692207788003557296947285333992544101797149203649640083959608884647113886280727534657850606748361935936648602546908360748864281838606823488973891999352643426410923264244325760574051274218039940850389825767704637422331615161509112343548072650820287052802058746412742524186666793265648549800250542317620365654149370749454735587695623515028622298569784354077073073088543530925749801878935123275973265814599719480084087034061266852525380012995120774690926714070445524292424077316723241404179777324394719762722051511410278304363781563319305235209246505366049825501880916451050807197261740242057837679992071066839966762636734994239300009367350106606328912805984443778610182530431387542933012511761871322643024013402621980669792721376516507204618057512056091477868033712431377576662088360994183200437595660355469513525554288736019596337291744733950528365022332733161375064162323720589806183752356208961291733953996958208284541742630088680746480007494718514338094522933786278763282894233671346373482260834548810026708838658156032143289331610548305847651513994069609717284733550170220816010825481055119042688324874361867570991658395818310454938436442838275492580060331909590590879866456081144048872433190078328410017657308425440704956573222860051756441735554936827298853841211454243505205673365241634112900095691365617247579267254314122320999133924091593289182188870636733784320182916873527741035122681754197060013291532965630824729002667036759475503683375119971274575035702677120530731858648800120645707078730701756857087257136179020271006997657811713065992034632079040770873278137637894507428145733825793737998630344181126278751277720987072363949477241039540080642886997183972205888841769700382942262142991099997334995677046422277558400865239166994704375885503117100099952361637282010461560840051788108119666037225416883260529026877979771884168996880676060575295752621856519205698338029583883076777961404105790235930336482406589052310330675088003726263896462281501068602891720817291355509023030921558936925898211865777093931470787786477380323008339108783150238624631300956195097987568786980472132749461928196357722853149912899493315761766569582056789641124049661496984518189861780864254359421536877187303741053633781390779959567330848411037452832025227913789451450693394973586720341824748960513976171113059122456147176098400836380620760012673026846941020624928534397836306926124285786125605891784596772875909928616908050037187042941055984352055820302368450218958754818447709380366558798589208688097414690998806922101952929797221782106218180684541546123044675541487389157093177535782362274279263032142241587191386608656917977049127182935965061792933972661779464220982804688407821637614081460299552513707384116931921827468657844776615552258812963632713342517359530122239737400224310929840816592751933429306885044551749907047590353137087700823924106085022958035800421251735272199785872759945574269503028425668225290529913824201828690526963000444085521093811353353095195182977275121511506753301202494280614308204089377183775339832304477591586046992612657881564774538687513614482644339592006561538837388053673182834364575723170721958407998180799867577680151127120378547216117828502176259183780883973085907834361698948166054921162048314607057727552069663396547224205822569620495591379528210526312993211822523081952354774260102848728392826157673047084334251072223949378128608925952245614302609935438555121156114669212243266068782676154836397771932948004709369925529746556947866324019854155257885864031194872710608976846704731155999345905373432748248929206379036176513995639782386521080197871046409539336368575875191163017276550442629803430154116908507980500103801336541227292992139900645735689201480251646195739258019529002253445316843995746544154751475039018046345100279199443384158762978100339709871190085135265062880510366726247256334448224328097109523287329688085493873200061687655941497923239593159739943994706429124801219786294796594501267168337686204717312429812355451448083027162756630726709048118153174435553015961656721361836679562964007160511051131895747629646547850966455886568107495786946363717791425421583881987971142698339886886781957330493771983679505360971699454239966699926643650321031804504309756357071019233992835059386095144819000289343711876331571238107721607134767852136839021537317460431433375139025623108245154934436811589112077024478035592760535861066291013873542828440612411249242552267433519230397347770283133777454439214782477391855902478770851554082599944147608328791447786930111180277371338278888380418264464611733081982764199334698051328738982713430972197615030983870365781530487865815340470036939382515186612404126675397440545281739931958281987398673733377200987666912140424178181847449581363927842185321087076422187012037701038410449897083417944916838417611329714858383644830201806331450099403351652581510238419293707282031141586944344998069209810616932911661460236299587597630150283945783199261541249913767954951873724529651077247667935850050947505026518079496850096872974556277661176746212109412336107157465840410962286536070186422368745991653751563485368867147958046855907999778426870896551667534833173976486049863906244640390527378068151873938657303379057064665019808388096647388989686231190838464727713865708330849767265531650062290705648642941372872726563962312045012669633753403838365584163211593229638084733991982625729671137216117149594909795900360972456962219953594538746625322896499606999350486649266587205001110427375825138605483776183411551484880243261990021461806488721705816047898970686884388716222821589280178373751862267375986765585761980122660537719156017434272188331793435918792181572327058365047892778815813518918539950403508581047417072763809911143938496239661530582266325983821255585074858243896991356888528347566173357664364402102317334119420548576498019837051915538018012584873560891971738743955322984730682156049915632182329175486542006134550896650946810248049167810902576805461593310610159642374320042641151992993550649778603280153479937541054592122320287469897955484278526362691258872492650769712888580792299186917233954190077886719359911915469342148731713904240069738152177321368761688495301611926684901075660512138046529801878165332710621948132321487611599334309422817637836661758169699548673213694669841215091275627302978376577260272118461852343274632570214318641524626677167498747244038924145829644375361564891020366792288914043403591742636592652176613548385193560498663558459492379592381406870151243745820917032736335317701060211912532547602446716601268894354012793279055970632366378987474212106496278794864221744477802809167445413998019029241930627254600583906389625919128963371982721894588408107620334548777108137372243060087909965571679564747535642477880253689997630498108127664221889695811675527635285055141706090469687352643904876261597732328675715658226166080744707660650515711421750582904868387062773390225242576115733130892349259621308255381661803018063253289414515739001740870774347254979298324719186612637356586842967272407937899053688622114582279829010637091170103439567226105536436379859874488758463506736870626654982510654025590844669851688506401093082174547976358471980527707570925182663160957776073512126011161588180597478686756955673226918420381718905324248240498436068267839666842740075096993510695602705685731293076148425865684925875436665336703806363854957670228980878409494849952158062300321114230970512958673093028487986265246088274085651560711777466422703972394588198883184754544387171911924877792696647131786939835928688057071246920470042939614957376914812910605906449421900487816973286197854328016452778579142196753299494030884480941599378278726093590973726865756498190031716996021306895638318881175520172158558681669216722942836423128934548282646936730241819143643730786694804678763171148463607023709739021130527067832790992294173591078399829149092040486485524197744090094385817860904469020280320851327169298341545185056096069723318567088713158486143340093142133936441792926223197818439457905472975049903526308423690339418857212020039261503270150315567264095633292824455012500065641705263871492214189402024625214898110327237555185733838390422368002724817865627574929276069047590248142311568741882380664783328880348289706516794049411092353098121399821460139554588241987511641344593222830767407863563167497864435673407423678415411828105294495304723101823308169226754245382566040285205508108562559276160242180558774755313938359507790049034469094465779366095918530169061363367059297562102194628664851519816916739982794428853667160155995918987821691737029843985772206397513139103145852625659539758670517447964753308077225189086892376309284270184182171255154819398919505848354980625405044369968225349087965773960099535063259852098110209138215503434495474601326572859528699775247747453928724013274268772172097355077545062970562426977929021445425327451586827455728805194780285506384710518521541393549940658564302019329646880690468002910594148590318479491656539689817154003890435534572438153185506808505825315771512308425897484190332423704488875940842294758356839651705132726487502800157811374875458996264807905910499488114422405729476168951230245898658704429181292344820815862906110305982269007552486025191699203551235024561672203353583088595301045827628010903999089503440629935685426498982282518430622433634588302391483363522941958791386919544418451319160043283844812697113970781995696000664222971192704082841333128975028248770852794669035351525788508148096936840307403770489108545672095316539170493473423173461887469344638204918268750367742151505755613024455973661403788846680869325003558922149474371437645964535067792111493433470912658535459807621283031007757153809600073490237283130753421250744190176801760163753518855747022162186464457925228843827453113412763596747931569492316623337205308300982647000501764713492375562006136222358031335987759796795898875536297383142549616426128487752509859773996557279890119952474535802043691872992059325497472229490666095188013532969588675627098130010333106081935525659514813762753092506717327187614886196531826162560109666224335802653638928456402798392681497729060708535738278623560449777876281034038931383775526012251622176593209674569196716384000417297551309155461808582374199295055420412551954146468347875736826590965848765086288005193629916201431922849210778202622590355465709256813823304261380858176955628891080476559343923602737603580647623320118229964925230764432452319663081789832939678793375772569082760434554801071160363088280607639221181269156370735570840077981582503011557022270873031006686628600793174074472752673111437938849663868668193035169663949788135585598882206623951844531306045206522751121111201922072137886755229132115020439068401771204639012763286575133021867757831684069099544666141620107635743581214868521949369508731311917813099857205214381669815319773490888999971885867446081417286454129505062779224124714376218672678496552323590884926203547751723296468472981571112090460430344983184215886019969784159349578636720178177153910885577989723088877151969450902131791724342264618379243356391467875900039689040929351238560523589324263570699481811030439641002498925123808101421812251306962094022482649710995790584268197688735804372758195136992823776255490388688232719568801311998546460382150336423109814337561375572612441266899922443562562809354615158207534617636582914620713278340558444034043802134037898775738329514164152454703398314405904815699087954796003881759607510322165156651359848232421715118880699627540757775551087155808350458097853421608162676486434260607173847241431886554169398073953346093242622001480389187770340193847407368840729940176269010581253896255698692866319753538472289334167803295403023221550586956924288148528038376778483831213504507733306250046800021302457869897874244120897914005352289941610072821536547737791079373786758810503610989481512739698605760049096498353756522271387882693098298134316023597133248266915215258691227065585840543998711856099509519379834705836289456124198349923041906141796725691642240782557884576201545068843383003810759243213582431407167994921061452390618979031711232860351087458785212531279117823361027454446593479003132200883620868540312604623046921890526749568868141239039622370775554083885629391483812621690220628500312771951273752291862165427459346602207144386017720220107172271661021411609704207016960639865802269701706668000307150612031118035629057381792816831653617227422395265737910415243325805903321089508926471447361457094077148836562423256627799787337380635323067094971033673614790393985810703143744322542711183888395108802793768685190633026416927211774408504951648496744743904967382243880534011329397766258548588045982801463868273193022246769559005053677988230118017171519558304438088621534849432953627467711870474100401431308420011846709566103433085144787892547453603652887915614777252583045622516679339412209551003757945900571695888383788134034671110820604624884352627666500881120432542901768941739507134743250162916970509704351051770834482231668071082550598415506119158969824993575483178147293774767493191049112472452799083066929835284746013829471404957994140499240520660982077933400293133543812790686672143103875172299607798573133579614723327262791998261477712309067227535096630744095284826308605737652941241596134448659450836267272818289370571711228980067661787593689587903132024392312572604426080349621424740133597916156791257333373427604859657928432417365498169781325458401208352869853541291262456356476297836688634998813669315367847010043652940173183507322421539267062725784298790227674537659275082968393794626285239439870158374045116358680954096504348641115807626829316162435007090908510772942001960652601051268554761965399379782742699066077500131756260384344310560893883267444315008171993598489547804111949586032453977960494714590393715850746780414769646287237394485071929113290478196246763378446355320469012828732847716674447958214260383690494905986301602236016459002480517627988381752892852709056636556570710611745840845492900388028005578502447656730921251201282425829814360603286103487361245269531172466523414563199273759422266919065710085741676676121082791695892312012807509970703605238806848797275410210227648514275452397425190375762790963972300533355284113379026567049477217343979733214687424370107969213382325712991285431562337448959329126009791360084690822229023590627613420219108428127931313716140905672642626950458808655474664294313529259643080825613652223598814074965000943372567023713912774941898236161007524553901871136055510266826151030505808029120475273684399264878592310945946010401816058468864712037320671499375454732634597326743355898679887002146417380764541118869038361694090179252736668035572377757479515396447272748261392433905046627516305721308593738729451573407899944843246394392411435435481372127567088805953463840731557657443560173643524516544664001994762170539929734546752191455372863217638666150206439024652379008249121334879696895762362252200010862154237294091777562923163838637643395567495658000440979280003498133366926052444514194907202315624157148195135228471672441881820393469670601930083409320159713483617403892026620883534780912124855751751845027493600129662259031592931859561325205064180176226496193259200240893174147766667548089661216163958494233999417036214640074373193667391410557819796028263231721668215005982271887173861271421040243478467414893641966208101860852289284061603302114744445804475247172501248571468128627585179376156095902781969099558800366628912384869472257849363334232163695500322597747292670763299704454845901638741239280819173228333208242339858528645011134839793817621346324943013359793118747718907418571649292195725925051970099165990816213057194304295163354876512481845922958288406445773192135336717425645060190667902857232459106924671215933613169717743088756061949195455562392752469299165354775799738823040678068180480884095321874856515820487005590215658330932572609975559540551579613301465770148311916026205089242333521283323345313497388408054173051101759049606637485119926769891936931377862023058717691837268626473404500328568979985686337806436571480989893278981215607088729586112702649278336192027668001745373719278897924869696203718694858669471897537035269135826208287680664830555644874096784207288692908821705386007324614437173517109038843795330868386101335923378036296024567910051025062776826016195797677896534261141263719982983033496587184511640765835840090704314339875045281947322587625368848923770655245622261835777335605308089087518536724780717660220919182674460796790302006665762219391587453643599639002813840129911853380469261746037912998289824514911175620135948492212549967475316292798697862398967229952631758552153948316304824236714369874661351455470358664087896950535116084454767035766060510476222800698147457249629681084166098962930215397755277424398466801605961648830326932244088544823511861865622863168966124359322908167283433619366557132696214602943284601560415151915801058496849660391475258585730047191388915798637656339841204308591257550558343134487681777004583551525194459991733752914250401198922437518630081256655295434296444245895700240121713742034914001672826916190850832819822172598756221317281091281763990614900735344275259592782238904599650182201727895010010105805437902522651409551957826872792988016807791535266933516930492055484762549818234455417639113562694646573230239302577973086394781825977918646865193682995835013347632465043627003775127383429023535857961570318278122089267259936876556468588791913978681152357169080288263452189233449499462074134241949786552865512178405006014716132846545840516100570740806109518189362214175200439773304226389567722336230292529599631780012853995913689083330341575889657919967946824839778080366934259175393273490751049610030752309858900110344050062788646197674061748535064707864121294041835699316727260308967211413962188669548318662407893069808705517400962532563626078387454724718330037330933986442762753213315002463159806288039262614721682617088182481632167624289149992467812062234856640417415815769263146840275273989833257657477416633604163980918617608112334014129629203472655659395297261136982263982740418697398513057092570257977501766627594133324264130897162878831000576952645681038412037384692846664338017628236479200921329324351435683355169654476518405846291187108880438426909742821443507112143842062742698108862397591257350003552343515074256947296857028914159301746973895874552223457025848422437100725394653496698057008376915875149748432371959905770940809472053675884597233199663458831534965277487889206753722020768960043691855416427474109120681212050795698499008359080144193118528718966693998257037055450813439835969065740692582180126841358787600379063773717708986560170313987551202803885050690386725114937314564559304818196905803878034094050169672521223049272850588454919604494127818899604867987515888391946515843986419093365430238507374610838733932253235259414087655670222814112747007543322519930646283068972673748459930022101291322265529996399150291954967214701772511990511196176783775674587942933638934405141017177050346851207713550705816368131588133099608859993839858741503467799540884904221552316726440411969523508670378770922345370773054592245416969304813995477542013840333905242905232066947444135921704317466592118715023079157565428152921539683252192659368156458061139289021772710867211952424063751687586627893606671343263460833990776427604000272245851030407329259690802555790304427563843236038449205847383455423417439386455816509044636852158786989048978071417752448610099745941853432979332512026392121719538302927171078248784520037810516920172309912235470977219123191244564063800740996591500448221622862881651428539867010629517759123282594375615484675231033197196602307507958859555534172865156698551178100369461241888283286930631366448854028834320110150279030098446630114155468338601476217559205568676599074102458030398225586175499173281064644005116638238583994501840605178820262637469788454245631905202333876178583682113458895782291744347106918057569027645672016735651928170269183287736844201127220451523475182230403691050647196974118162193961104822318696969212430999898958720775112569034265287648079871139383264539352677357370639249587447077824742747663709785644535159673229209404292654437383012737240571543325788907772882463043806189071498157474051667588661180765645272588084247549200815214211202595365064431638433137432148367287250954506681970157144463816460800847669428700237177014603305429908263238584828721380330892729186921246705718713647916068003283946860883434090884449910909987566569781686679356036770451938160016008224301786718008115627796574425027564288048688920421630225931645423284437721341953230546715619111313529194427641656464314995594503148340827152233152839210858298375653401798414746220594760092911438886886531182934632825999703975968094704252639797335522431855671437364491823024648706380629374326566213249851115888575627827975652144278877412760694814460213866879959643410372324030581021370897963123805699745235530165671894419679523325822114137248562861912343709262896795523056396149935823843856557376615148848552147480927606286070117109370112546140540773397877932326522562775437778821579373501916359622489963008173452829857446049132681994928644783208025772322838110055251199060696175611219948918213039599206998900710528867404053347331108322869050738918794361530147185624908761673350837307281054855687653031961720767641446320856670276874114828216163402495308978282122426755458028596649725878722711453197022104006475953663430095403904408145087724451728026676617832647354492567284494273279466092538237592084205045085539685513411691733326269311160580437090326597412925410872989791110370558831548863190022053201540571943206833016170137072573576819863968191499286587838253981174770185901170518509650016926921673650222811067914125293765607067573795794400504589907574745578248365642458100209135322297112078654437526447195718874669742790346028591312503156403409366259622812538833870934349369475866716901510866855382132577613554706075741149451894524618884349294172003240871320106750832913221032815709759173250087606805828570779125947745230718436388642166909765855280269654078156578700871541052650947833020810222171928142255787701544580161210421915093921559525844674102306196260823568392582591616503617991567379131737595255188636092740379737048313050482952940740482742058372257897732256882147040641506156792796853955944629117968213340268840936972989932432603273775858263425061750023556715755248856848956676304484912531368434643699272787472156172345368578166622982120196228688267782666000004600176606144199627484330137069869841629311185414111106889296698140929933383276578419342852626135943901225082935778196482271293373568513722191752723072073946937117558102613297092381084229893176395438005453532471539851421936432577157221391181190444808646492660113256516732303064347742521829403005321168212285402840752664595371899657619421611216590578420311090975663035596199276726062671851997067906183968061063968825486063476227188903294410498626495633993014373193236410104163312274777772775361904797400260248561572259743171558810153307325164244810109173406645583333338851233006071699804822058164962542163145057329253320534845957098224753617202368480658936297662595488480218910839166645280184060735851107583328295363848354102888565217827529743201493884999155579927985065388233352503273094929346257597974569762984520497212248317013356956851957569460910367635527588850295663952046841856729778581470674858502273866187630368981255920309974510516234753671411819771439881678936847139369875382509259917594431386702275756631738513788298092118660947795627788929898836421951896759505099886778584934782317649326823552890222926629464895510611021950090942382547099835281043916908757308758628558152066592898107422899792762375456468866433549007019841724714499943514074080066097309711741489405396909416212235391138292049356672757457127889293414650124777711836967356402191512099353964149409343524568739383292767464751654445922222166342496881050719761512543567235717824952245670272525414835238083655887731855541785397550848129848096796445986831072679961815007609620113893891245565449671036841405506501560738142069986022456919394662659888822252971112109819733860036342872788387804226180368540430014800981985753510063640893536319440090740850363642869288623441474542029768914799264537155760332074965973898375713490939927500012096596592435773515080660866640710510914880169926290668783112325948285259988207331641089677988261984508249146825084275571310626765223845626336455692295748309490670644727242513662253132890103177435301868276011043121209417536810477377823910038087636893858919615508976840358374395907755437757957682806252418890187260966656247885565111810094727621387307427438418485934019031600510094558551903497150215561600415698182223066611150349800244333446840000404284411490621288313556499641915397611842318954859896664803672708551177595230899966041234799653735882320297851089790287922478923246257344382867282852537270793308294814103527106147261618994790688766806845063896651370745677993228329007168053249951253873030997598266022836805632606978001941747046436711543195758498609899608088438581791823015497819234784311097551389726142964561545885014566305955809254355205639717651887274693413759271797523840664013498583679083995150541240190702050354635834664673906809844570623339589034131143870396081214932740451769549690219518545684014454404378173750057979845787593261963016854512310115290855973874129559743359659731350011594599151552290461879403769424037167816208368405884811985713032182017720121470562011476398888152018862259280436135999122108978042905425429618916147802626222572459370577282659989470102531087470359617092645897680431058915715515966390023264977824069892573612920228747962107427797017016341764404312335151699354880085545116507039071192597114541978974063311080865145079579071992994340030189977924667080886020563601965146788733712142353815544743249962066322101967419069345286913571540565943487512758427813812126931758099141671849800228477051785064116562847473684601430764980261031588764676488883950689636152242788125781042434771296526529710901227264589398631525775095690882424387565041802531191780695328937820422451253853828749027295472338814693015587230059373576405489671176395025108887982386773266133203979760219178946001015951299324560377460087347009113408623422091404165452665696172535951803719951206975770885010114380740415082982521566526749986535302129248421742645630684662349293124989114198147265727041998264968306919314374264755904282863153414722684327555110463849529644027841348021672314853227273854343688011160411391578042846677758999776868604431000415932896396170965327473371203409021596180822383439798430626235689376585693481090020038480834514333780300715989415892076635145104112819443900854538723426229768971544827489629998761976905519146763619033883304185855128828904895971897712586466123798028737392140606573500582332461347849236963052178432311957589441098261541559084792632066219936119061443130872492880805821484193521525064475862153744350558136610364062700947874203674348985662969809180139619651290607243997231599695435735115300807906053679915076117912451260936180000132286775678978418010131744535837325454187878519714916990374430884339820499945731528737794751219271769404956734608846948471660706174759960083715105147619335857104883117427515673697540601210473430049586550590194338684635608015020004423710052475479866705671543057469375706982139677377919648848312111098585877186541024108386169972377918283102481627474483723345434184476513787994174241087119724454066808962284205593237609516001222943844158194177828296499671099630519660657965528781034165670834250374500721631034794833192591048941151318984500918712219691976621940364329297247409574077162627561599629769910723432535829965609559011489859965289682352979376489060733036817826961863405389733874652117776095360272407256668728127214706307246381906365461990330639933374447045758192365035641863615864135374613430933856399276342146797481852760024504928919842199507073038496261654123923710747792609143263891229376300256278620129620463004562705587533629914550675435019255108810355412644576760012808636122907916457997641485883218278244099321808842569585028516577307834363839146361703471528860694151425970980105466148898235908301865025849732678684013383146488040877088636646853828322789079937884650238896848465372333273095536507086836305020563151577909938835625019120889736292709692905197781246253749212358543533184102629048318970519744103044305547082692865551908052799762351616663426062590278937938156363594465892316101631706903192837485729942205406807466458182699404594585454639646162423171256329357069300285419518305767154218427330846592619858789441310311696401314346459542181340066952443395254791047826441960467306040897721733827669164389501065737866028516023626016410826338680799374102774942165166804201403721299152757482783015073695825587020399054189345550348745512854920525962782614892826168659670372476235030602076495289300038650970171423997974855090464984554934698713103004847960472355563962147473181642779345989234229416632354550989406980409864424188746847029414235189558123064466257086516467409734203925735379616712807774061673133134208816612468777185593611168687662884871870521148861474964687763761642716350146782392555266713191846173605332136831218088754401944378023599198471500248781654920549078248441593266107576346986054378937989251394419558451792177269181811455299067598496185225194050763979828623560496229622578378026403410560397157084370335648858269217515537624620635912365141351760480754178490779995828348259716177269260419047604079225936777961387105638733035109338122734560601934903167534895180571164907620685326265283873874675218824756972903318543523427029093063318003209502417712705788556161933669045053196666246430505505713475633902284382746276411674138781096538522980343186953768337626441500820556269779810350767984050110987430874827817613817944779971858164852685211009729178175454537544907825873909804069331014173182616273699342193457317289473439435201587940667564531363888738739994642652224307915122087498351240806006671660666199212902411198797561590081654652659575286966411773433689019183649399678154423758170876984285422058962548100121752970261383382707513630368157334349397899199441787263170336563018848613541312953281607713430870205804897085311778253527973561069088850104082985686038163900300587276716031761249536500285320114988329908490288077893826859943434592519390300497485943538015195558343133256345222243674615287033895328089429730843967772123332020956459894750745811191305066474409061305844621615551487423102237469625843722635916010445243165363250113941866894779260981159580838946704143467232365348599546640476736586429654401608098771396257063568717676136978165006586991118598300518150534036615779517441413224021030200902626801420911675431986546208854842745024087815474644489083392279997825653938578454760633132754808636297799894973736716215787664809284505238717669267806478128406584501588376197383113464311487060488404147636159977158299964114482832302949124053102573386431461480079347585914869491506175498464094633902823269749884515203166130121078855046769182056866940389876864908654592710042037700984939493455721012533545127489068052270981237295741923062032620638439694179273960362388303042683716301748443994491592771657809153157510482561476471729169048735120185713809580386711116396764836984310142879041791950276574686579332902842943420235805676754810094841876713437166700861622431493666223447005029472010408996080364785553714561353693307311925283079048462067972782482403284356352658518405241969047987941581983547314901596223769490429467793449653544024346944509050808980391799999923777370176276709414327529809559754495191741260231993033434211296484412198746198233378203875453258098909308638071370476721694695376774610586524616589170778036814008201252281180614751331110164916261416322946982375381658422779207575927192360051202120078972239283188515861625081340380229316955561697139262962252991479515189728745871976298243593414951100946587021153836010508345643627886332546172359667998510788626510996675266220079204882540734255315601266968713039244847994790890863158842999370872927236257070637283279319201449046761857785615494466822676403005287915381899499526296800651832909920199735057577130319207720616309679496934484840789216767199016959326132824974066990746504321489942346735007926031115869713786632925869328753348194533212265354706513517553778966450981252581945689300368267623114150415917588950867154829471918153443914104072781076807297246679791592234606096103453735788099561174382689245961016901015525827531369711896585618428510667002519945986588187221854905504254332416315874255849146593094376141748626882143177583579370567167965057938831771209577856070768638758278233695048444466967040601366511150425421318543077549094533781718584227599441349006440933860776325315763875590361049396067246242722870694436941844045535911211233160190772669730512839386484787324774531016494955567331016302366137441288449175285980851901875802634173575656063809868122463176080657581843352777151962435042549241766720350963605717383271157632561008559805506873293424145207767363577274531730487408265129302228590509074707957440827507891296666721203307546510552618008633001096172358081251663686389890147705757994856046510448932587122741602676803033300552858237778310771834214510414147228575472010709697862307901780031429320649335966852328933383606035912054439846448432939732417039949987029715491188610037585194924231909443594605509274015852995656122566898595633973193902749827358734356631464268009001838856818602861764246803264760270255666185838625154796242518757539223363514842451454208674928530387155143923936827877649681288434110261133120671207039230575512194538087690512030653424055048272338062137878097069793247539078214237001440958507166591797096583433538485613958961568606685747663317841157220819693108164136394754296078625722607511877967569745460972496953356565253116445791351420206575716842446874408052942595440411411003826970868075075343116092698601270424640397130534771708864659894893648307475549380966159432373046215607841889121580258106064096043715009708688891260025968791945947077774784965820036537497369522546174371103951592169897845411776315784691388596498559954732296607403081106172166906017798772636241520702220169551456990729097279754064159597388974618955035876866315724958966740140988396816426455534924113839358004409069484862432295584029298050442155469562567796883877535190606970792036429226561788205394528092978443503640813351069465834459784877741079888063796068603733851732101280223308883615975211634603089115843701412773605812499994267257211088473668465505867342707641250318127450066865169121906499337216867918226273058886876458377158626576712300818067593871739656818402755388028060748749009966480690100181582508007012970568366509241971584092172554290953342023254355948838700015994728066327286579025739116684279117359196113245873318854381860125488067962192565215707739746859731031593716835387148269931400645825331911709478570607714436571461607066208335032600207712189555105250026589598211730593712174491887997402111407784878080575726449490026090360988209402682810341137633524994470344407880993044326535897233686793334089693023775962760355559975677670437742536741074613422466076295131922662250554311529142938193152884650716249416471257880914429088732233870189039771929077294831824640934480450304282416084322409322633011759966609529232435416030386112666015988566191020137119523239457021673422251395180536721665913810181947842098403623528966118674849938657848365514555867542313612166200336716750326828203542226349070667482107712340649649487202444062759157085283783578231913313656305695423044628082174538630738081832880926924996787747390863595462946536120832507585237530791564178328233325221714372255132166834680171601806214464696173151646938222542181088551458812340491266430608324393123599648401221754841370201237802031411110589143483547552650058746148641754424349837308810644514108070468078777445600765040894959943169688752999056408415025193639591331191954826267536172549789772495506513119575642649739613487933563790448601407478979205447996888131648791017015642642900655344593247376657563941431212849932197503657014493267507638427655354388551090558678426585318192770640797373617054344750016376541029270651440732391699173360241786118831093286231869163720653835698946574645735267826602086904888631610753103467257285902899438552378436443447132504269660278909973228915032648569253142397874276841463856505466451134357655718375100957040563373920183090465193939995692327232147054124361198913445062669094664067249338393001118558251096918176512746965063066517190238754132414035231554659249120050702294570945747578548469284039389855637998284242947711452515537995818184615516292035638294658252211673946417690260276164938529001636124631280251412265495845314532184058195730416108953907351532351377906786436690977395418780807644723323279119894066116653240658164872098661740005156058315495705579786191902978875995097787312162685121195863092431577442493959622769480923335246250866827695145703669622568863450117726702963831897722252818865099423595605429515832256545458222131068674644798837378495673405742971228235656734962948643812153341497416606220731665862782722716168904899617326271345715374390344393452239845736705922981935334741771586409474298927625065640050787144541802722444578940078971343330265887630790124325284830392669368898155872515137594766846974674601179154035312051159380171796275784516717595671342720211160417415645271313352942897098879789082524746414642512940308545599856496589567961239298616448536634778879025737006505164288674157468682414383895840101659751743650346099548525441618421798294236783954511660904751255365339329867283468726036213321811616629351424645699744628349435595825932920626326379535664239039477113327109491091597090524068249680027056362622790271873495945923888603362573115265505232486930456480232710869708085794115662117571882258083646883841178668798637634039325252765213219535337267604877869348107925965036947162126389225711569682957408375123598963512292184767322888215903969760610240041413845550264188734652564579285644104411743855411824199996775182792929577790980988244259195524084316835455635447173852685973809291905236658875108648039272957133000005782945366826651472952049503867782619655232788215329923476882677139255324662522293158121174729084807186175000937430566712799576335762277239255418325395432694538104214508548348407170735654410485815976949782376123798498813145015529923276315773233230882357764110581265255676843684384606046268919839930494289482169589089407954202567193753857155919084614864505088905281553325185603767400838361337550032759583214079276921802374527394424881207303732134197758662938283967408314783232193979985355211795331850588664386309750769426037594943208158917443034587016489940326757101543924546539670455841122440493502196362477530760208151389666929560483666510815323216121241316343968740421198518518923521621899572026527952226829333645344409642658896808685473958709945774723703848087607168049102027665636846194326415827890533795861948299943776112312761585308812442429730792146474334883408858034603507404162316567820372120744107447454253967479365194602507174668801653360388770647149980350369657928992189723100634114812574966080941952735112008506179049643091313899859845084258959857204822791791092300070623447144912109585382877398485387691183886539250430279216271907909842041285232943127170374687398267975418204604212465791526251984121352648026061277442951606342016916258875068295022075791082678311545860427224394920388213944900441697596809360923771867695427475786143877788208208001403461240286261864758605760340399222899143476239637145149601803041931010802696241149676988749935308340056162124111246687691408483555307106629082783691060191062364952027998585124016633340535849981973548786403138646935715707321827504603568434434017635818901361509044881616262487890439754969006787563660231435105515461548898904808484352640986765693827407137373296542338353054053589576812883038552400626265359454709529815115860767734544803101499481123423496966390300717848650940963788033346408171151755704897395256731158031302743162988499991102231545592631324161915161460419747292365636971764942559761339167528963983588355340146342407192260873564052802447630462000275367517846955436880310201153317701042671862310123023761917693270666277049825200456380626832213291809686811759084540681676947454380621747512042751190625157267106888688210115520363070290452882732339874269520590093732174127379249995788505779425868188537948213314347717629269164071957596305098575237758123637062549437820848205627234373632848180595815845616920968297020292766879202638572460844952265750281818799727332177826302394774977706497475842372128402427891346001404156245224962471667251450340836214836381493579726216113221164473712643876998839686889215753726944011094583631126394831124425370460173200510935217816617495020526784856887029212632155390113914074857595375298944325225175421460239098739704774914889070163600431505748624571829025471506192886821904147476926181108137772529232940007257439716276015974760368605683180333835806898332648474451469961861684471697244737971926222083080526481514126805176814665516844198137435509024312316906152966705277923637412225751617910330368460580107203001078588353361176667591563578287768129530758063886515098899174910789725991936441313750285745944587884225072187796002433236604354478931986820323119996648851962273278238387372615650419650932770075088155235863872511280331838270726998250031822818553494999411451904330891330466533388331787832065935146931851605880988398544407450419288941363235934321089742670922712487437006755776864468098250731582491707279850386300944298315098105116484734782559489957916819007252361775411504991536349635943159945044383372505191635801590893234983703103194608882643022787063337639257646968110035181463310590412817885766684455941101235304910267187006668487535121212532486211542849023919471569750801218629759730304811214313394247143943163159892695930761478450601756542450376962646467671295573683952484272348050799466889311067230785869203585086124037218723090104583112269991689720292447226605763494696184751645620414094887032614646818110756952299013759831982509550917642092015852984538933992489006288771110039762632906243795270452435072985759027611729742023088774212027919798268288027085085944773503251076016708680628623897015720116421074210205390104629966272802491952932458717096237807762918108665276723365971832547714388837757070316926797105403308854440240360163894140829446469705716178963886090044945202562049938755330536276539910555985045865470611552821647523441211400694803760217661910495565871324871012007191845608953037643245466443470090460262577088081713359748602833878134020504024124389783179850716229529540816255657622892355668742432811907348064135016741698855761657455450696978704986457351932479002143127933877410631412255049660674104930137976821465575097212019362353258009831892645107025310071574791054115377939139079850334857408285565246076787820596439909426070644355649271125258266606278036802333316540579960639743151555440555546690894697254298312364078673620774483285530748130246483769091960317045747318796019497446595609711464011758340599489697979275691645968731450998841028597101741353893321628517805775241197507683115172100464444661883416807510359704997395329436013741322803811354632534359321525222188441333481657187626910240205162987845359081271382331892115425462309199044892426830978937548216935799695897082377408948511187754294064702983421374321274017635513320527468784192706546874018662167614183462880467840997484883458028595086686586240014355205142727022287456806880055305226809881183291578151212939961491552908311966552875609874910428445333679987844768025399984172080355963057593513930559350196126087899925609822231886800481313005499898515059733732378812980144680447230428574223031045386780555201511135467963502909107894961481663948681513528449687413160097683989416503710054335849287661463783212688443986271788946944519351499934685488361369855590383943438163939347368923320707519303993144052595682620664066583368482200460620339460432616296857118798374494943218435756686351966051987773445143179701431567984793180482927194237188373761896606089677690519007849697979967328152569383234873135735306067646757634865781305765506313991029138725612347488654712880912077687890155527635230204473042061998134960283004438821021182125606945888178087631637272328377102875903304450915612880828557600348816107452376708617404098450349518729744193348712962632696063143111509569629720518854199832770783382232988086397345245690781096485597430590066603607339211855777812725340985549311113542431393251839697933949467226853403417579117083243660961036562295904403365706248510107465940902748522500027644332606863936598052195867219906379865358420765050574581676147191894028548367761016998437855789239205941181912750887913542239154571254712497124725121302244651339060730220868869498025874271018983566371289341690801349662050733682544139364886153931720080459029757932649053561603413357728916439316260922067942574113726820151753644762988134994555532789453058295141062985137823907422383461059061933959183821547801999707295334622421403691032892717950164301829599536205020673411828051111091686547911353675319983726378330859869529082436208605757224738589960046819524645428377526352902565376477166092389765818813562621380698676237803497053268062589749959221747781497001288325429300322028030545184343294593664546787092439112927258048892915546669071814071331432922360722349358708487508615922736390682663883479555953295258965650860335484061111381062007348477364042104337715997083767781145111604649252194113095817855393284541365825095418336453293434934788318695278163752230073329749759035411669653950992968486454616033539986368117601434878335521896388840732533696134240022542540088058350631338589908349546453244160393371402395998565521461805488965791743352839138112614735944598576923793745432443974533373164852641291823620242410952625429452399341689029945366737780391162042486118506781954134647970035792787799932985073562143587150571427711177836989376857593011619640992634475076811540139980390042086340571593065963206572774239330007452780504241487236521277371024471335815376849584607647166577203131982118819594074056704751235265370276105398083099779483258160194470774780187663961902784371446982173344032352515990825282232600097565549664718038612607321111260088230284032510873590107976629267404782345282640200617373531630460132949111265570403696975268668335189948234196506649350559029704560808918176757420063132977665858717947516591896916118154597358457480381721644126671223998096956407671989291947029326290695497772884150842557456752974556476894009541233369443496298631329674311465415603740636631376099179283327977573604913877961249391546007814060619342990247617551816743028381633947497259828933057769358407031823545857300230663786800341197164544959378480633499890684073279173075766230637839203456936730020893979638076665623634008592873286943424433561738132911542711691572469428185876067187888234163960828210745457826069524406486315394974481686422627821074818492121358690387898281793744507584613828133954807106312896666000752388031651740440576493556527205195730927698339540572728396106502363267649917264638372614647305526536238062325439689118642973496450088427183857354595237073082589656253556634369542188426123542396830585250240110659119172608704730483294784921875037183798512130924086264476743811032523624722356883169685551620700227291280501931160243879531028531367443288183683378837662930336255605756651377513824609649933027882459605432215544627441355834497612313983229472235674321892095730274545471366133468633131217079502681810226646225703739139073122764223556830553956901651805138582967991104815127076765201301743075760510507403466868881977699642917564202213137704625790850014302068445410582620246101053451864790709563134926432795877779138688851235982017650833024392899412765485387172413477927222957532928588496772614856837772014665596771659105643602852470898155461376624046859823750791227190455748937538456161243659842670879952361125194784726968275310448039609669305809653676989073895266749397234713309989684282193117192442550147136557784282922487222176549414632675358928045409140791486257307750458470113466840688666039073721542709694844191954152449613773717485648747576789684928515646899313407535742319714316509094533805550621370708725928011458859262333031920212903849100126304337485105091164395915762797929868123972679216756382052849914041988252908270114746751520697610483389980039567152515047446579274844004316579071968026973669794593022863020084881502653530438278529454270807827087546623734623237653289477667892234939475175383600848115882906158276431501959040975445780740795099845409927772357366866920324462879663198697653897894093336162991196612471970971032898196388807191092375111154739822415910191474342033034804538114158313775202549798648271315674805105752554895532481928786825231281704636889646276739920591092927615860892903256753503491078301983739347035990468725306811534976570599790002221417555858763270255682129424968983138779731096466805875180783516793691382458290362772627727574041023661265536655762977685315601578781776652600838263567933029131601807277608966461015049330050677018093727825717631071674381178914666344714127451373717833644614205160658903713730160856653143607659573078106648831076430707358746879082714763986673342351513820817012446156894096778211327485027078492085840288531331119650798483169395128185845165438296788305638780066621372122040356999339790194565775415993366242903478320619771069595955207757280562485898109841177577029734648354378867194943831304041264097952097764561481103563076189689136391410026633565713271444637320292352503593569469821357165171821787272257873146384886288138416544024312192240839485084939857126915007543699772939055286377912574042448183490321977783720335683301374617525326063599372972296343494938698336183125990403502804705784682660145618881182644319267869692739830811353295176008173714673671898736896526573987571615278874630108289711186614091027638824982780707751319106956030928697019443480358153531989626977621939252993124639620351585798853541574679773831574908299175570376812033668939983670404795588419200488510024094428134934630079327674356282060966874926547707967014749149762954179416871858882675114406160538781672560997799465025734209963090982468156603693385262453447071172807879117646931363481579914164970323198575832456700550922818100463915627065152615410934292099103731902898341021462885910274523386852397793108149693906103126200193154365660712881650855452287639662318952760455450742711865312498913270001616630033060099324741227315046786395849595117465921183279706279215522498755120007597921071644378936329063378959834048833731873751225589525358259996111179523355377522920669969657903677406391097759110145910023968759803884599428195329743714819515384973331193608727661901449220639687093063205352806062182795985812155566181986696426082269633871716838065175471361052817542959015276169671839885105647677332469072223011110353816565961419192521752922328317509466309977466051755073065116295830900940281700190439336244162614492660130257668464901075916627474202703963559827776037489133600429482055034526522659526206861476670723659903044756694214571327147678095007702695225280253209051293355637072714231927357980016807562814382844330186176943234880266342581645241760453170004683414945460119319597589306306590554740500462346233792945887976166535729757908756627562313485407640397594788573675113877398332949542234086273622535632933534288807574178314848500569479158246044030990536075984123232145448976422225075093180105268857922265694242388248040329719721920542443033257258563456561933690626360119836106378035427602849452742073278326719098119908490959190463638763253274574283132824929953174835213131965099334679986661820059861617256362976632300102368255621040549049941167600425082434489624937432982876788120214549607941428745457913188288525084209533095357728268799538423680393284870983645424642150637429033090945268440646381508261805945389156520090821906900129395104566751528621400022679207559100753450076290127836412419703251309021986482810302264175239055547229998904637201361137905356784405580933077370829287101774190061404862621289117474098895683457841690374910032879964628002298277590629297581724764761613287388162798129750771576293005749302774657624647068698682826330749618739725977296434508340938372079897138921864726715557633619396680411862564311766155258954998827967859334355857897812295600105199418954004494431116896764294866600139181131249694995326035635776913743151586928630701480273193428568495181467867774646961050468759513625663747942475846036612444101411645994190576390993546413106917133990561543747141294694701603934974797265793033137462178729913411988180804883262964327628726525783784767312026122935760204223545823356596302496287555507554452964193390553073577096195809875978388904943195256009094119500512501293549822083913778496291376728316473164601799833373105728152617850945581322998206324355497641182490819627420338992825642102955807894140251660337511104024587750862713645662047713550564845044341766755216045930951313659025889899175213226039624503109530007067105528988208107771512926649629434853169442827271135447881861625549461991679256861896723584759581572877856027356243663706698475648499629251937445666445250457592814816715216927881845102064254674810972316473249695599549713186568325346510968137929181881560105260101316703536175748367163984573447654983842446658812202898752593775287880684946239237502218438601971021020283906328171432771776328497760345926258841051615254013049295129574658840818628015371443002438728325998401351016895288999537640433092898781536278032084065499715009998356684673284076664768273119032091377403632345227047277278566250209984127475368286075213268966072746166466632927532687543902467195008673156203952309018143889467844913971963665035849126711137423776460213424111152460343219904777861057233432892313961576944709283736874514009030077543468870923028312134135758424883575825988672952138440728046840884948520175914644735081877327324242125622844312891787749656913418350625571596083108646438195252360972085058076747420011116846034249581340415818288091412096266153910115174024212573253727914532257908183841934730271064614125314796779314362950426781530118658370485499733106156368425187081980631946315012781004176425407844302895717881225528933421183419346436610329529202627406601010402629725279463073988231102583706979129190783840906982338972026322224559178978675709103957449594399033651640342134349198740253803559954080392029542023385431303547615387343847200585375529416077607361627923419195565964137577579087720785209290458569601258152040672907220484333055362099856837626900965010007844382548965412857968190457561625051018152590868919035787631851631043248937289565407892681969481441380716760251194206535451707636172673971688245049119226300287501594987246634351289040844361001513601789278554073900637488160255162326379203633595329442230372155719998134279210198613874905496442479762283200842665298643768683895398284695829123299910682223675726859233187992797182312215812504546350901773402872893929458804977906043051606112547395220127004797201304199502056707086438659423534613362904301767158140983877587919445577172982961709166262703578226184411062328629623454851967825921319490026506607979124458883207433754393470045443657081854843771153198456999348500175891667019941450871787454248750254995245591028342959110378115363228100369413956535995937285947500825465567306257744048608904959823111698882984328687900653291174305314463595167013273590644386670683595108380549240612666498018355703132822859735138644337856143428490844394990772362779659817699511104288149646668177559214951663450173482992013878900447455041724425675624243009750582905128420586906781095766903870474067653195397597016633301943786253796091491398130332235668334387983582860076327762148907068688726591168992394331484000714507274439916401696193824315736562468389739568503038248353357790840179903290928353886792385005999915041129870707896169447450133232493757609405769745001268120024426001185322419151518010434290583730828520733230244953397871221000735353465644377819780372702710757506909358926264148113500873332384252209235252010411405465246896232368377899796466624386659462814504732686747826456368090424234606135816832670471562038361925244130098675961237862854395839253724931482508600318960570424665345992585179246366740606215418493962713751796831335997441186366926276235396772803365194379036727087931935641707058999013682353634615703556587774725000461409159097357866764108418094603153535603980914882233636012779445593468549529745941347015169684585001761867335373014943684565044817032420653598709532344247816192897803911322645191518199514582145886649558057743238572858847427264737832377305124568195979415385313127785007895310218511518039023017897471949147992378434636120992119487032930648588695618272855172266857339403841577131806075724026240050837666399523591915575225318478886666593815219021314216022823648377535970585886875970305611930002666672288369899536201793947485121780439035148467907513639113383346061071150905056585623077555923164958028947826464095624548358651186050534062586684722552922827828566269513146326398125511081672999362771235320982393654761743952311785242171683342800675499668469446831588894922679997707943210431546563609927031091543220133346644494585383623619554660558011178360695710448013576615947458110529167499384481376112264183921153855864140835166525278416516601731572361399177428331529225327355415809098695453870681322920696186843941807355851125231193431509733690288016539396105040747003610945401750488330819001026739599926465144684491178571252904263094961265674482876303071586284135591356170321526360676479475155367385538800785444842594603190115225078636327312310496145799690798029027053459514639124565810986087443297018656306579662410456790054172880698538385631779178796622238949597481270651192331734795089542605020999283011085709430720342609429950774672784855802646167245065920983074764567191753015160694285711774011461651536792480299709090924504574329272191226772370573488722301837610569588485949691872395482780415112586880276905106035302586186713256991604398858090987491947306510802926405544807122197716452939234686163250500745288545926809686557859541049310202841606534172580438499747792559992807959124190246804798403616520549204611005264691922198142174251209042663285240053474268409989108453296149372161309046108850770929403244820820516851145269898817431363178040472986847399336068394995995332222243622962778171852511337308168142851615821404070342950260457672948420831261816042063868417715996431499151545573184571795189053173595948064962882721617150609455782136574447575268436879884994572631123695880575945742340502654522856348236652228014670291915578708759458681352583378442909409014595030709993592773277095245110347720577110678235421724035681920193110149033930068007881370889612068752278637158580397011377877652789813431628009465402999328081634541355233689227991708163767308881238149943810424304943238845974435583449126389137129195960100298113369543673433723078344127335659843262902063021005826102601117665538166005844891409894771641829619689911533699315387944715757702554193670112733262757039645718034498609407244843915459546543791122795556675227197714357625425452668133113411018471735682200655353435542548132165945541391958802845149070212542283626525091237089630061612934796961914423861597050650880513776395822013353668991212084278159465193258084447953178977530059733122703165713189640201595061239298464204808777304569218500227250630217637625438392392251084271038990613055062393833465899478959079781666107385935037876717264017832369786738280590803507632545886467525717427445651545631505134542104006636274814056864261775890619045943483737330795891631503761677524137271461962093780220145250755278509064183122944397052182201920119417535084736002491826251111936712338949567696587101453443005054190511702133814134144536985071047856280129346546978108360181836113845270262411403552427376549806309134955844004508344095067636930473082581094197781097785470490718416069843985115112937780086003551421412827160459789774411832690406131591321406835972515441209079211146837087890566636803060512346203288871865573906585292496518805230719114335821632073574603624400644101656550109828262831487251613658465068830126398785154462901906884525478991068947928900330111694698145180102670498050362058563689204483402592379742001480248680878286979939043010157526309763843333911400577625713849395649723807138493175507858319422452877335032449974149086127739733069844369300251747277543277261333254768699401376830774808036840925758133873713134456034687761764364111240913867357749341679273142826279596586392438914635326378881083849101329328067687942436351073399123450916580268072932801774863999828724849632772172177407724242080292605269006172023827250364595526523392120598875765209978944196585437022922204650658772333886700888822962747792180610623592491407334695254850078925379600548813856070140375979380699466097559895930696941249952629817649142438776111683993696058322086940127235402405436618199852648880808958743032859692384828783930310241159377069362391341762952717057170575956445366095073768791204426235647711587694048460100095565169926549123540486475808045341259346087688513972470857248061927695004824827320063840384969557135518225987580526796433153779739687516854549359396552586773473983086401119699339961408985149651221901337837149238229722459749742126798924563516708647752765659205251904864795416095330874354822858508903247806703695456806316852145237859790058566705155911389972285316421302315055868144751273166440883624896279197063445153546788560008834651233616997803224720370207705663589562507177089857930463361744899657173814632362281138903115136603946702874152981032943923882332862585382830357527646448595862171214724041127409016910149445954555726333275692297913829972264758604413230083336176437616972253610414639465474934117938960232457586761739496905260305800528672619506870999925704132519757327339880210472293943948713986733687847995609932168284726647604105866939874794691216495735390690883630430833146329709209881743758665718956410012590995283028777742127552139115424590586025030604424157804327267055390406573093886919396316671167977719863883986052325694868453652973672162863385283622985541514879674997402502506704086922432432032229140074661432136536096410375049262799771557235158689971846303271692357319471467718304159321152845325589286364625313961495670668717055373143876728781620902341593067571025952016715053223439219614335456019990979915360063459159629273971019965412096116329645472398791589185477970748747845489674169312338008433618997216821829052697173426440304157855903043971774780675426411831842248260525789115073708354944221492018935703326095616779579819164815116463975000973882427526811994894476009290794473049774407714512504736118496882979668093177671446471571742456233121574219939286257102957768524943961712618772661350894486400922926897085334716354444492561671871553007911807498357950234381010919991845791595530562136771506322677301058835844276974502292742401497357634764439717283362113169942528824085426444207064195435099457405536424288520518953956200388157342985719662796654666273702811794746037459978293314764138495769207696388254281547120789356579227697414256033021929814850345691804894297903234441140917982061299799956072975528206403480593870964071561755695691827832754011581157109230312385631083419996849456813087744928555123019160922851384000604389413857412221608334350211762171497984656202228690654174298816893646782180728113520603956795677057171964216527401366528985779368012709551289984376795305116210495994482809772222324683191894113603337442172028553433321112017891232451412386722177095755559119190144769971229343350106498912340882231199857625028823980666488546636766035768465484874755745053795276838538553221980192556454192658358091284824833545295650996102164420930321508271424728620602735458022227543748156145052969576770210587308110989524936097843826343213372038160446871893444053299335283894965888110790139741142346978339935540242946402143267875646266422949478870529030953531989811192014479141126911313433589823490719997163450700380728585675065075733156678573953840618631499857216723470489122430485196800992128501126688094886189421558289526318463329509082912074583696414183705574812732034236868145803705816818260986230608048066675923907387005431926146280861497107227013551323103361109663576954700847349721751566374501033315755204359705585739893348534834421364327722676001655979376161816068697705446843578488434845497261612493925706319472165808814400506214796020752090134527730631333403545492084964092357271897962035729129735571666634378953111185049542313026642415329330879720972183698340848872307741393408459228976820650638222176352470365127248630895846243935575277991759186189764127949738577606941102244637201238729208057597878753314978790357378711141722018851834363811471157642466311389190267915252243565154929068590967712755316270153921297469340696380685719037153662598367811369180416373331941107493347068455844878296794797219559707671906018850314529820042647946573812420850205700573600139143045411055271379852670373545954497505529574092473190240783507966443878715198654680722553905692804837984545409367572482748763958662393590873932242110742337775158277693294744101933894953860508742019857621155804985599414243465094351498966319601043106530843760006876925315285615051610184517221776724685933659961202700192431643927991355502569912736416226661051885114543968288683941503391522677846049170300407304626235377912520096691570007315904212147598314678766181175418663711493541169394531839581360343195632261565297841750903635715595274785632090801011869888389099231799004720844822588342498156197382101147555243519748671150433252145475523950608742311515801755050798108845418958533121584244290335246688337653143709740241211480673838756573585111548739622889884048850303167293611775648839190042392416566915838410316052939028459149544747316922229390068204641742691475518226023748056342149455182138444131665405596225360154483849798600192780003493104599587554977405300552643996726520239230078389198338999214367699271862728062820047126090387129313559763036516320669826437061301466666645234164867368786539213978665163096984761422996571499746563133464502746537187716421275344990081999136858673808814771584147740562723575351326248199294009743077441104993203913574137556362001478874872393420124534682598985867976302700141275655494948453224290282755329601980235185371381478892203470325505339833383387978182164060485471299806486159292089907503931458055865442658548783603671644990554586981260413952640848343150636188715446683332586789067044689112418944650485980692118740167459766670625151928224216663566788250341573355792761968077970220371611495552535653444385865857846799695995845795362776098016751156681648494276943744283697793816404048520934938512131744120770546942277804376254519171359029757735271085133723142129065934647533826179328010649706595793973289522202049106567793998599072088223991438279765166328357771348365697126624973108012343199186498704326541541792739102211782940394718106790334394760106896281107540699428412753249761241946097853055085477745139919609956502561089565070466026533562164468612815878465477100957576930659467406762451924202211663995413877660257941333081545083836858082820151127710166024408058992180181120037432647261112298585981043103830603872295579748644170703839946641324902491511170206055586407353563419518540684158882254588395536641926135349734121613688729261333449021719236375295137275306680406956406603012142816740134546376774308577607722686642668884880509652513586498317768679247626148765870190675043043080688868044028206517206084956419223158982042843109859087616800833552960205227470760350112744614471047353956630632712036176956523713294357951142042116261460418261415030371335960210971357997320376815064383061840129958664486253717276040429629870564065564264973680223429206229743512098929851130703506253058063166088930220574490222883043824262846358758706495161649276534310378497885091182682882364913253257794407896237214842856798619128768529326778366636698606866192602111670052635777233576360823659184422534638920042691319692267170655825053586217647983248178031023416571727387050968019766341941376816105496172996010792753277821853336066729582674523232993051894323700094731057413885519155152677113501166839198489417573103893023226375959821467541843619150365559855589578303234463764614499851014674656895432904209156170863500369567296021191167651742572684256629406731636207799020417017888450860056972358943714654954513428870180737741070455649308269226435415226817631397243298686649047452324154333486448384112398785623541990504353257706062595031767843075064005468950296016107216978566055958752353233685953850970871334432412743474320568435188847253456098377034276605802974923497904761241075143405984412944568687160853563131682429680041811434471011641662359773627250573270290634495672661559713685808654088978845103118053648346850505668944010606605889239842602279451969066957027476883321097136372128332607693521486985265751673411819069034364693844629660420039000393527697556016313734864279344175574869250022916310252666767259411357636200765550782775971566441699738994991631192183753304967509402969724884449739536204178121577475815441375507764037729252265723622387999782255201908079171489178505745677692826028059004108762755879306094482288074825842628442440922817872117787687529793090742210494385402407567034986251357072315213830540525343588256032161837331738764045912039781575138636986049245600017551011563739070732436844582117985977614476443143676673847683007660145327910330441086433594916164447505163197273264268743379045064676576433074247377068546805908214431484227423750676158109148750956577310501499626085084725535590956104411199182757079777333952650954079752874199676055957320498227066627163905961394203788591242087834523699719474270005960549098971062673031406366592175475529170427771757682788717742381893048526931135222215151422427141100279253113104256283402792425440047668550902589158267676531400771887278461567428853706442997306177587485712726007845063139268003351975539568017205319029443562491467721837466956666400834435965261237070777863135335406760910884940198166044339728574838493056129434676532846095469580056920526493007559114435947366410894180055928231475454223685655922492898526390862907448620555513500462472484778118896893300828876534675035929183929971739126444317923602495367106190591283853405532981396555718945661663199576481252691142145436706732648256106716302833410733074325310172376944063000530318567252761758750353396093432040176818730893149723263190112481660529592210912567108622109792606017964572730699751475274661465227988192667927172252550697981918508401136282967316077791979236344565567307340261303084394798299515658874772874154708533458281270738486635976030846032836890780420919828627225255377493648281150417899695071704440127790444050634257270464394013054158369762209394770244848573590608583663049220695078538905993834346587212114475145241102800261181639885171766758311455694124862698341657801724938778506133042913009651831800303792019781601971402420879751615422359792876625426646971960514158419837736656437077797922796328596798691880970987164915822930047290694057979389999189055108790275804928252481176600760124294840308559926939732747031520969413387421026367807641753678875666753531408880433058287425801168102394013472250177156822901371532506932594422572154727909104942458100219564412551640694346640514641490627153130117424894280751043072042083013938884911858985372823468184692267769297061362347380514927215060459485782708327197276600248151474968767157864233675197264341295199529390666613371024932169673578126091393999956814752820051491744734714488244451477459470871545333458740702694531173008207046942283318053251635598697670317240080301918814099973633253890342021212296854769549572227458835442443045765625333695143918467953174101379652067216521382069927139959197309357934053987040885256598481931919280900649827772723802908379773814991536041268912757421785752892927447340039745558701234467915723070994074527826460321126260289502776201413401295953553637450421449450706952240256178740466609440662209872792521530748849742285939162224363880163234777652421972505021804984388124188792020599921441452515231030146232636755454881108009893415871313597054875114636337948377677140972266174762717533657857877526135951388792839375012732273387238702779771030724275084156783723915905080769038480941694671152690645651270826326919357191056129862145163371355796899401226194297864314426085796959529018325217692383418400340776692308894349002292470296725935430224984403297503099805343158335720890038298285421412269680311898561638137405557809366438775218507895857839323172540392908717148238469405972642965970029847132655412259057727191071033835380366384944704550778993682549114426039348148349870791521163413295693548842673444556177186522142413693066449527818469990133905022464501222309563784752779695898848520112312243242756634161409453216621763746466165001355779549699117958459044141174918563888193488395912903956303997029470622366872461078353813343386625326978308715792347978434915474208966030951068964902847357587153964750842410708967285023486026474029032898157138591823501302824573241686998603430338833121140841158680795187952030099364923050866851246210067246237599006384339742380381787970768673860303596309629932190596589182454273227817623205676442221473428534943416514690462212543894647586265414749548417558412964604864810012580965851343524396753987415845833620423060035881136097157709993993067353751925588525336523146546338907687252016666091780173383124259238171600897057620639851827355737346461952751338224101239740611793674254859315600238943401306201146169254113019331744862062908687753551987127222239040504036072681285230960455407953088654800607055147660739405769071661592376772257586154846501442052832923444186183176768539744473263890839499718610713217396918047731138791890970028496551799526599296615351238073406204711523460619884447524076918079476678724085138141475198813578852910910890492804393872025887563517139965830902212460472426701425443207614991291702412557370456742392930478472994676117323187333454929099134619634720291851517428091927568623915409369401459212297622966003645845967002963743608942864873069519941054477562006028605336892834139001661101349106173894599028256766087352919180424634859122105282556505068596901085054816291531905206457153962770731785493551442381601094045527877017324757214599668507114357550783065036316738971303218515333057763592286147307462988902028273577226458515597870685115969750637532144932246594029796671846207824507321679251107169458577282653895217678372258937359652252169909171609850225907373096093575603288160415766226653291568241904350082682552590099746083649013792622711997910623014601088379797062766610556315011975993349597961091562968896099303106652370083141897235208144733493837910888005388194282217385504461031631658702708593316237046248155639174993396885814010180976832142514290212910151161293773130604128183864549519515107681410036605443084160049177682047768463624602683631751782115534439903766324551203313764970676211281863466283938262891751214314831307115907774243431846561254470942256802015748650997524600157913346295831402587038968926593423092430526513211775397506135476421194433078535612098381506957908091678863780429823998351864169356230839628202962908265417595395344245093916043190007586049737641875568891338972324983413206192213543501531312521180087523453877648343338879663265483420746842436586242722131935964500494140301331089599410070177500833677421232644430454913971847191291133318862633581668688238352268689825493326669008008038231565693456554543972964107257773129530631502003418103196985982436012084155024888845634764496795549144560673130372810938744523160909937146380599178754461789553197503353004762719224558096483559955783474676385415242260173992897663552052754248712640598224949025759641017598571575736408922845882027177004254593169711584047585098887296918262921766307754236635574535733873262529052642787492827796515835885318383742402309350955089638530467016257773097366923751827267488505561122359980794595548643721660421157522097573088322049750751294425470713318218404357839372423707282298702831577244720875125327728766934567771157443085583102396525198949468083181785241392093320202305476063183710745199382232197898446360324063911831684109929140238182322418743793814849170716539426271645450654633586331802536135644692413610171147285849103246080213109408700241234785674802341998517612843957010060843096802616760819387338245521927005683834223820047807264328905065357457189458446808438070366194857113551326260884461376319395066453610536396056214267667261840449391350990387089088322131236399445586320121949853310413271851422329452869013790167323335360212752729431419773779210084112822336828580980493774771258123476496422530899421229916023209740068272042175574571616146283505690700055825511579675195169265822832566527501506823207503232819703504321533118272842646265158277090794451656960160450209959446435095523041949913647829942037234177511237738908067829287636818314997798501743881120286740798192873838743578135441078147553528571376945658153735572219678194325500874139507338713189462628550280056599247181539555325867004026237653321969855619834421230281882845188619650224299889504828313290383055392289252809010489651363929027207981851460993012611777361669586738902105275206165920502887553734931391942772832927741863552538205064173541382924355193117578535522980833212617779552826302011789623934413557950466047543558928080154215548775187294334898838503878729266429317212203428921635625688939378610013020595257311603544831154196564713855620376008421081167607499258209296819492842456169447076054396098292250115362919273218355631541621355191555889580630542420851610226316867864657688222185182665709081593459535010241573999739324746263364086473662279119561360276844784314054144643886589850508673878027045427815505464521821922630029176371645125344387251928635458765522154832346485920482631996742252130743471485888308051480553326515734301912093193244995288596866706782283338976746144447778209713506894759751683082650782036630922961757328261661892079363064363843724351114228983523960628085277506310045805259674026612693622042862937275111898222502062548124135105091701791900439099238821747573994270280367965022767474241130020446722969692795420657187791249459037488201219863965450860729364252473981512700353880803238877774235638321864363697762901354490720812256311169644732083988133903678948007409622851308258851340155468290381094725682494240009854917411764226870998919977440452091660850538379354828188491727421149311526114543549786893034531154076323612717319412001732001495545035601054233349359000101302139484905251976452011012425403499466947444639809773714555967635831900915650789415414475678531250978838231684391917292803400187548958959428930409065935349140246509631384022208757177825534893000432965749070667799921820483935826610549552331787212598565387680426499901594287598053918396868610698778624942930946251086757835153284072826986316351556587986152381075087665020665121228323603016741184795112532865453983176274755438851934274355949604033270610277707632440654147802363033619519661177125162424248459365116739050177920497782424714844744595185153712667598204398061145483436533441897452594902702844145681133455768942889562366996688544730460023523782484599403110593191552671523344504834663974996585092177315036561714531344312838485117843600275256060266171487099298792096338201319768166775672388956258834394142066684180321002436698920061780884656265148085168059670854626164801413352867421600895517733592975325361895428611113684373735683230612300047593317950013284895774095922684773438113652966965367187242654016886133635969177666987602376693430911473100487285237783388784239458595693308179239001035799474146586629822716048873142255225367733564657123420756592098652997233552933480195709804642615949748311036781596457256731118187153687306498385655670231999857358136175276361852226106071930647264289587643981125806034831003378823993147737962211025521978636395485184525075991825458820000724618381674312609774994090057858492711103084978694743686095643758417448749800963937819612702792069468558607435977026748143367636737746214178839558968343442405184975037348358540516022965612761181348794080749932386926042544777914593017481817401592436258015328172786528926038767935277872113677868675027543731235068779039713857537390320955266972224459373761575356741370070393737471642500965803594830351482735723032911532385289539261303279701404473688798312406262669057400785376126790512498217370746064908636556065754555877600407075048297768014927376764239910644446582436398804706755134951280400001519782699944697112970600429932040900229663921719724566622987374315438695885247299836540750370212051915132187619722604935209676967013860813580729209612295869467517117559874725532448032858010096950220937863740532450897093653652727890462737130245732757418586722573627961875742104675372942379608363157989513339740733801382397592724594214194047783561002385955563541890625370705296853415812017843879129707516119311750048685231924186869208809891002780783414815539113519942501171071436306548251370020535281802808764451862382371248908414122352102475371246651055883916488329900506736516220965304582988842805927137643726648131832283323954092417979944999298288045136330124232768743399627316862390674754586614113065526197208545431072123012797850440141810622141245782186938451755202602358329946124050097294762127943051213324949314371301725850117512133307184587655117746500010058284061049254332843314120797856196348124008692256689714845058680315053586122457764967060121871412527957187343593349348519327367377270233698166835244969716552657061224189628294112274463988716737117168350592245128198815007253193126935075922589173940271334189152546294561838160998391801469149925759720787337309336954665918405243047026009205514005856237412418601726762991116384418027075922464034314408328141783328498588039760898698410324037341962910912219803650800388452254592680270475645616652790256674096576739093693874528727178557995493942554253517884637846910231936800429713517690172097458631793200847572933190768408083220070433267187249566517073769500106185681041812682264741397379357606161956748862869724213807285043680076353434352835519666181165731634529105389918156542640505249461735665286144477815529635732774351308653941673352920972550617495447123483214703490642231699510029935824814827221746993678940348580559927923740358427333432494879477381079813647245214778767996671846537107695102061430340633228996552066044723241882359271395552532827136371258446838756883147377355370304128924447989582102786829736487794495621319215484909507389306824806111150684017230643293429103993054545554635450710853623237826864792908691005623577254244935428788106002960490492919733586316530687313053638134370545448858239850610044634671720716265697411706125551863962264323005512400588404833923559395804763874338073142714044069650440178668755165517269226909876981142517783827429687979912350642282771378497197317382561380931033814345866366890570349296749847822130144707660673274357033548697857559713470538054343370097073014986910080589989324228770164079661736400579696355820583512432614190267983362312146480562400766350020871486964351780149415800664064012377843472332909452538159705492400138587516274989061247842508409307601705516783338505261965660691800551426433506010821327226123081537352919801928043230363212026770446830138631015239200212204332522608664256785054641990654855307854712063264277408247056253142138606158060940249259531198379787557472100649768379638954834007126222865769804861017964731808193813025350070213468614641208170183572364750810258428628526188841280259749903247618871026990908346722790784824257436975183369963206559858498785310921334674508607162147466371003922792428884984323536063004985334918338174262999580043123116772873066448700745938180022707708416284410979983254881681610405763040851343387878119162491749275795463763526045790815862636877425661906089089064399950806029177895446541336878007620554551986349447135332357474857897209382485382260001241503842865565884792091199495680398913905926495469812171085661491023803119503678388453003909152539632307266480360407157702803843633915047146028095331034575650673132098221031922792895585621823338112930225309283815424212510991428343866679869985707169255800442784904016483185220506973090244368222526509910031239576921483261806351954876824888475680226789770879618344545598483287621116227240738336028851339730328035265751782968513278961450482469120075714158598031512870994962522934543998163028406599144772886761584256324388049954420035994945444086048037206219318231187866415615036199663681581679645906678431172316076152605922481402208524724959690049025564148193291607767857722788587409961747156610051477162135000438396584530923223952307212842809693649635529707199377667119944753897796657338332548981448484301586006684256540489556023905224126536239033042703378603753380717733394751993819606944120147735999506135626470145115457179830425235110417906705318569222973749782392625537251933480714039899363263054731379848600968554410431471221287640689194485915236832341143539073187021053464870102352078154496146607173816651774841590495438126143256849692345643006522791354471856657106515375877804774637251587217660214854335685971981066251367666776169568521127984786085755008690009014196717971533900935670318176341491316775962955275359160526936046029902317433817967304886603397467510243539421804606627081391691119900184647489397058189173844199483503141095436878592827436776041145442929965243003558723026033583901622854737785824398333114900964021182648905559882713890442135530436966955439341949436489596407919419412980760539132263145853734784961773219881917432319458875462097959997549803661768462103202926094443063374721181845016740402973971403828695476500608307904842479291494598490881168158840256855459204058493539940946019551848214740148159560681901471572184901208750623478312863642886127321387949221364816598628363043876132049945192444476224895599290994435972921410256515826511525452707919361476339398008870178989753422621903235386725484099579377559167439410416284450723214333891652624738463436750103422828176102297821539053667632850451661370851154629875872835222406937963934475566801050212947694714889822683819149765197917976979176657110112662755490737428105341687883637483830084016811901926772998364500664733528645616211435269772167798700338302146984579806986995963571559304184922673643058920268568846530668270694334200435185867828316950797199486038063308709625503158817051533411663396454612368300083038586756461050920661328740240643455293883717398695699263995139381751979960555081599655480509464607573787277324122978504408917820355801360284707594315207864378379768855554251647345687037733121159508220906818002660393043528299822828625638923608130062820222333679989682139581424909548498218489630515075170691996677266207523358765696495842049709659258871324964234325456283732858058968808827435640402444163043311958048312743538438310949356786889280878125663387695407269568910718798463165233540110536780513027085660305046243861515524241042768919179652181405313323804326551764198478660928188989382588522231633595489501387451134957006042753246352312031103863097995715087746303834989983675615954899764974768191633794722795245477543146478621423094172728929001645422358102713276635452645994816892176955167274012898393889910451293271332867140985909572368312212107409561486232553473131918618568374830467139804010934355225731456905308499673183245749299775322364094807333285337099211950364127232557345073207361365459293494736214024711970430250563783932172103516445699364554962356896030282858313518202618600737573686534955011536953173436154743721416726541957956555770331258464653700968026788252679707818490526238540981619947367644743771195538059895836858284120655951919434886153738179724007687322074490368102259330385351764765059305014975187334971739946479327661728701633896225035249278388747884019622254318370268270544070196682155935187008006768278687879404153105279617060319819175316167534717493299645134978610463893526893918765277425160509497484448540270664709868634428139300971873995865773301897343409534051150664731538426683971460739915071530196410144961936397063408020900730043296701300476030094434685401590045730130162224944977669513329347651940020039972977563896430025737776483558910784914276182460739934791464048529894845118742182739719373060606157692200104899870027958379551144421582808842219600719188262399176320290159113954501170225975268517980626865274469590188618216953899419228711649553110581924762222027871696356296868718503394460508381111520941852953083091452758581170530552938377023544459803672357834906264801307406275194578166850462052345036046742086528776900949424843378118043578296781935847856803704591122966733093234373367921345321191266203136358855816815724115862929164013895736035701363563835070804011479637791894739676859678959747515750679031187436020872708391535328165140326092714871218915870891115369267111117832630824657348263725054830193863748612542744732013665394327759807280551072870992488120543404133424997280726550830198329914628130223817944058025785254413379244333615595867779763582930604568481790414224840402051627387356456606831833113829667347076436621788044903382310024123555548724405935164838158019869786907531237145878250143066396380807095964166400210908253695922020214484317567318629242418199446307404806355962540682864680258221910470747046422201213588848650329811785623752503689853394990489617363648231422231627050277373534028975159498709731895404535894349886271525751778818034369638099907980182142812945481827690768865802753579771193388012799743094419084024540770860568756087176122540905704371736070688892686312384840854917051646820088058904389559364561127691209943234372894120854556781311751862934026366807510152186776107389753202656655903317533293170368959460012816369285742500534310155655654273422033730589014983217599363236278674968070373177044376861383642596833137240030127260622132499570051808112313873199234276511500758826183516062194417238278177156610034176340568685529802933984788736018872565384768089875000489775102123420506518754699837660713450038787259287502023802558402763369668289352143904019077942303513187272132113701250026445032493060877868896422116732804558203532053105614124381799368377653567164650584067452941603025119470438503996181407919694315807346747053570159478685483686401123692053828298316674847967817378113519924982246618996676241718914002658855508424248348668765905317078158540168404227174132271699919422948965729950958377575877756877041435125358477934905898917194287030140978033705614524726468068162399663108371542329804169320751585894367763242147908907090537830912440957854356029309416182652225518682306493920875336416240411047056434324532307098394742042664668378576854413749431605672817358100025061268724972370550116811385757610723555614540873048571296744805298964520021705538812184151627902959155141217463042761425810675196609320725317971248615836769058925871948228457123182932130763053973972642660099886241132248473513993724856450285085838889218027374026104789769498909424169041463834903759345837899738679041370905274273033632980796532302764022713367990182310363452032453076152861738976057435109653463731953447714744062080092799631636853789355597345780806541927360253022339223829202532516762224900648446021213859596202293990554678111402381261968120394875770322671503127705532188946420954684974934375349985179138138003793483324788010912230165853574468943553983681090700138089075467849526004794555333855744251448169861644031658546910987584086615416964819560754809710817984884283218789358910427446113168552372093608540636995031412229103271554293483672987572974707812876806444637078748042214003988586591867367289234777687058882729611910326640778865585905735141747632870209964962791916119431426734444644564012329611748868650738950664597426594242076246061597155714185688428681944084186403909978677767097503739931759355142967865193032589762481617118239454304429912758437899328322002588306034661303731195890778814190914194980639162674153272471406704126563607543219991722112093144932664824243020000840022641811975368404931170392612223942705172192914785290218703801409263767792164159994649441608974993205338496823211409614077249823527284454246874469501630075710692601800898240691298795889343210427221545570715084405975677037975763147382523888761306759588198369274011782691891265540656206949620692096422676458348488890330220382813271354807446244500465606751164249970182854627397771249392235235410873881134747835797149263897279816195764812752151098922156332767334957914030282670070231608856207798032332172173780675753159148394800654596499330400560614063858158224783318475308685639812783897070815197291771837875412941721492867754952692726322057268055193799419625962978215306688344798302296374996358876075304598075684287588211930801885468477449863409329552266970245561874401076098262636356568904978665892646441077700159554818965534529870524285214234243455944289229546128720715332500451967490291683647064305214905922890271577069372368728637082797785125697971759265806421545362194363589292875026316280582536207218300154075904718449344028030647010329181431124181574470278797488555309360597146969188760622881776472656810643246152121759666364151339856409235767735600515374117634635505305174502556421617716371998749666065923347258008906105743150480967654100471776910854341297253932591477207143880240115737907140180471611765263509296575361576214928349456306933012718484718626927635952072564617397837553590761177056771964722842633393061155070614842168849066327703330467372122992155579416438441374791275890383518748151719347689927291655076379376362910150437755549839615192635765423516844345388057373286079773981379009778745823184706382453028037048346551712283202820245846881123281863088026847336836802890594020509690641532957750125076947679095337235893731465500816238600014277252963783555034601904991948894945416073081170945298842175818420710771300113911542631714829532688208070562950402093851175995418842634694195815379969374494444317891795377226179905558393144647048381729871085716960867289952305850478763718752394501877093904484500280609623047940415039935268611070128885039747503882043734265020852281874234544663684994955985706596835876519741833220877819874866955564257269196455033660057497283477694622345957470743395703140752731703229070505864023624364126944719638185717944655113533324732024591504350908069796025655508861524009721002663479429429291938055546979567237158248446603690098780091169400026580247791403444875723397122419401465029049401493662552122463449359656276740839247149287416347294454285201060042394035834083849787886532466839165768491695447892048566429006358438115470169645214155430914941474453604777498741342935951040111630260440545567050355213179233278037931271220163080949046702342137976560384529685729316912221409147672765679649690429317328563159055104765218092090042323244892804611523424031011622945361846012566440925782894149341118617398947251868991159097263701300882722549272596016835719070577390396943021354389673155708766209170816936271800069011880098791550443074285536011379370664531910946919407247435225347120601392733713402936308190377660805956527697604632539044245791821716765041583601718656884143973031873832116123506444572886703571759280925259276073100721579235872752031245256756125590263276843237730683659905602240889377190971144226672640682071992009029015026956826801569356789386035977584681504230883407304669535140955087285965316561783074792121688373642359212276277813313807399538902592416576036429390574479741135750062418868168988707278336241793679386668969320104466532976403152369868867197589088940722016942426053395233512784469597810333994446223045232585622471767753883963363786685168477349499016156588654853113308375171807740264880057733776090136117180536246805191689071435837177985182710431833782790001918292111715062682637948817994557671084278864444290389911969511999149952012829748416570608849685299365580807961761556766083020807754542671279851034244527976232995907584138768833803043142163858815927679068849236037855689261245000024400272152542338547605901971431394703070446103619853033827530710502385660181165453658853206792832064753888502478254015328168018300193327099580855204928781163709918970976113195379879060629623843842741862468567608204164454624866006797774850554762288261439718875061990749876107307187467336178858427115049765473395929935918972529711546587572306410154686308319015210442976614598765394807517222001617640419546897060102282268396523289330829729554052415098268882302842092163240020579691501485540361115062291783232770077337446759359085032708874075633426257167062046275995218106308925519258287864295582731605751115461430105272957371094020852287111022114506961767749308793662859084672116191816464078377845556312541908171081438114513198314345298135534510213997152281501707691402749713415039131821875048551879213354191202385417010871009036733358503540792135572019978074860490993813962178976288369691428745121322031742596436568549816701513598905509289961427741930934723200501981302740470719271658140808292920956556909359438773816248081585059408487767535445109541020359047347912533767856655900090958836823293821794019114188942407493828258269606222254127066624889125719852089096460640495171254014620074244652901099648598790294656593598397192649778152014889033570526443668750899247825650421928401707620534277463827790456332046237197588211396219133013377606648626616543516573620034109885933038712739780900473895003903977764679637172818331418490444919137301791450530353208627278907858410329068848297521150529375648437351284441721381763052679725683263792868473999740711749937390178548843376598547457872879980922232215178798158251612296092867924624855179407188512372148854248594981632816088850415586689485694451058989051166630590734193763411769276109858917608862700276627397689561276432190504178536293142290505782092739455264084241515217858669891326252607633119109100235969589596302545940121537530527494722323696286972968316156472942800049295297475523353291759135167097885513810187064402138947930254186151591265859672952044436780699812868613568016519496803347803642923942644584340505552480221582122513509105184143823944916148133612247727295366161320362080919814898223264506067985065631209922647441468499423098501053685618616670214066435859952089034311655076339443112834445089069721682074244917604773440406406104140338573948811935439092938371016970816999112963961394105392969028040601917406328125844778493141456124083563826936357062630844265766993938603784277035151554426924497301763342478379743855830193343163415824024347363264865097253317526138148207563988979508449145801127076181016566313174912786039542888762266266754471857889323978722162629759623445375026678192228997585821337471572145809767123341540944215682007387562802230045697501852897345048197684599957752370536120650821420995295147167786485406515323344071296673898369621705282452763984395749733277223689434200960249599099662352751207958058138554610711820176617880588547909069752522994417087481275242656403045857549006979993026656929479766734968415764493557155625971512797015982198890060827222666183650695745525253686202853332477867742961785674727661190982270861297016201546445085603334468566794336687996435159616132199370685672267592012157041653934955633117910472290474922236913044295715218632790777366525290873436196314929786406067216459752073358769582743138945195439001620264266443771219995576151963042976053515887155351641663260709394321438674995731002889545493588202434538882837514916951441262677776908426610678732442133460353307325407728771711465192403778126880679709411019482351985263812189736925126645481152334871505514995307322461561735574281533923854105044184690809817368409503143772149803931712058960012594717836963881676881784499992267687564553127824732102480042321637203818195768503756222281081031074189766564459052243434150797199373991511930634022914351203068105359313871540850056672371283516581607476953329647270283635274256174558423588458821435992439826135173774184153519656608781763064227527507810650982052573268430302187435751721718274414367457886680566964582431131723678880018853324810846342595369613241253318249569591970154291714225231914021717431739171518108694559239478159086596450531366961002579639681258714664883657510708225002054885717108562251550286786521425911035555363788104589661643164402781686239332329303036167725914551895148019988096801604050310503677905674329713563215945537706871865408116574585812807893910458195087340617376820620102191842827938485411417007921675891468825864651559836575381723601947023727640139837340928748121075240793403516877561758652478791127689254689320350679448035551112131519123040789482176209602406582612128521010025285207239431495472672947239274110179341764333258027282371792533394635369096534423862728739780716586867555157184685980644610057485528749189049185270877126952181326068362792405837102214000776924480820856620813505486683025304627415778118269488349836551691052085466438153126610195551587809002938503465490051392307495130259467862870293082127368229612297156748467512245857924414640034070139286837252509218802939007705037089956964288425497621777942888238333963342918734424243608506662561734908647985490089843665816269700415395359894180409161447593737955916253728135382928221046446319288574126603101594295361651262189159065552530135020934507934451639383180833880509560569788345758859999962532429604453998672189379305441864359037936414654430774192204765141030865658400653090181315026848408374324898493331574770849095560603072695148270192383113401997081341527841680062714134345563435807876115376275712332804698593555243773372041724482500460957709646529950104870701926059904355007644523039679451458394998362581606688238202378158712553931864791367419704278360403121880057518229692104155232493968044789104541338372952296149982238206394954720629127295860607100345021836285119850149197817097470937686325578981922805889569469001648854534251568242070378384430055214639692197657779170537035861106734720008717960679612023364902907244524972235369799359449597041019839900402284394620824296078095679063430532981361783458067967897113907386901979869370068996900592408586095389438717281867650361633390742568940501045973226790116947518375437000501705835629851155884426118134287467529750799299046605966831911715901242583213963974498838810495714548328130637457362399322509890498762772191618120096522396170636046795210116157773425345024391896064962063816394461793230937054562386761239796437861463202692579926110965563410192685399389500004848230948008473145025370360997098943684896181605189718993856275548851774040778406645959283104128793459723362385358787885076592572032677956245990223397727925707147302722504706779301054910699174713958708516911473436711506723274163932792170180049252663812770089307709037118174296633864666800448076366745637021388384924268622272543042972366458617766780194939570865921348262828824864597023340951576535062816233398767641487096219139055220748757558904326583336839056301083212798005512853541099599664629062353031574782298323744634541716377071649376474100531472659014660116607093896676213324573306334881289150792927924091353802950662519742646091079215880018393125576931144474362837617541169116932038894747472796731625416920648837225127116956987105116150417533020562046085053268273379296169180226038827141532730883264262596398806052233876604469496605343851301967809591218770888247500556484467598984370801372748438074281243591413599691636593853479815479962558339619373703909669913285938264680338782176032557144918558343893148934421391512445398556110765449700690302992104659098501407392543973996337425303881829286852224304505542507415529703484003151962118917678677602022925285311955990916502852334208925545567323681341229092746730350940001853745134316369906791360810588122511201343349449535976907698474584303733915638157611269295671843784800309760847288890929556956738917416873566055720126362495799165789898309787514369556118210555873986997835291747506176359332713951258153533950388425519067306325840291442851962967765743761328009328995646019524253806929236496170184440057021734724311709090153314127061455628599421348453530929252703290012734575880445678768745681864690191172361459495077889051435485353275760892025548568642500865133382969590395320144744938183446848765409006550995918550523795800076240560306097096428695001688517550138921101680740700028049694646855549415634950317920975654995980291726809911823661588938333369703389637980142844636599713907793481722678114705935575793664472451984297454528370180981339223390206783607273508884345202617582889919555819388101656167144388390949573419352013572406799732983517589210376045097494638936639704944356931173769600527606187680635891357857279984441849690702148716851508539543588208010938785085719017054296779399167999375868745289982123033857323327389455132015851300869933279087287389587144820362221788849397947863628507477790476893883835050765758603009207609317275844767609948550384173205415262999209501714227028881345454333751893651426850811555536092227550529733156708060363783790826307034358083757091830975151283299648278929260960765174017701195538698407205359416685212868377749967761449822360095055560812580162500059421049177258203415766884193372707671884541734859766259869085372044479005330101869340779024837597811288009093417463574085603641406434399702959128941340352531989618082454655643194451259723340397276911976514619543545510458696580889315947724792708732239109434020872579903260588548673819245422319300357805578596746257528139929797858974310299363180540144919616453181506874937327961101480783992427672733779908776029553305055537234291033433672306056148767840260053824682884556701278105100840178188434424968640435808083518715956470375367830012566828301577242989775984135712693988549740259529426689417671572674240736246918280568371841074562845036459270128195042198089716861175309447608816711315977940785442696465396558831290717049851564170271430287311364844124782531266173269963577284266595001277468566382193985230666591509256627203938924693522772115937978232282888299718340889711516155729707037166714243796811314780829542130840146441470388355500348253836711608320668035657894316410488918361895393361598508159062196969354764161449580603829248500308464659429723418012157288089430410534736894146145632486346161154918270523607998667156031460339300502173671694021782955399606211779921611959414375648278567295419189762190297563442612952117914694778038235549413997622976043998542360057439114581766685633245476540380072457294748902945958755917838767759274039724383306619477086297328666133647917396795285635412149244713758880010892603455975233453850185771214661396593733377746345630615678778747422337124864831639816612716065718523920881880759306317390907893261404188178705195488156885948012092680778206913640368536199413802654621066159120932104979137583634575302762143082657204753244693925804120098295049544068806343296348370179238487425935692727256827515479081716601415982449151009268890121898686018236889329196126942009191530020487362183229065934287614055265239971025420983809448349568929568001392179346794926581003240142844699847057251240358821102735448919883479629956223701647324438075956904157183639585223757654473486712672258406621581329262328548883102311856354999785975565791373777822944822663773589838654985170847032443769835861466515904329002581054635584118806612414232087870029614675936569237562925117415982894815172530113695314383613575564578782642325857390275008976145919233583953635189535743580106120904532120273936791893640685043021423216802807594067863547492177189976579037447793418859923001447679961804157964312935586862349414250930839080687193411535073900995412883128959615014401790580108417324852335708415333639950481210024532309779529255822062575609642267280176803502047166316223677373980117733512203486286941094717507211822036229401274306102436715490289573349965085365301484304679757140004219484324137374396475427558650826066286542045407273808983197132606679274134128651993374817415686174563971688638861323139762497482189582213154270078529563976056582710137767473178517650614239804272078087863731204578971845700096637990281908121234177053092906370805921351963954659579681672641031611189996369141003805587921610210620269088173283543613303243353196115078689951372814532242028681469014243971326926581403677749467938068369885574945379734194570069425039896993391887283716340881754703208420781640165360651418755924412631437457237603880399852401741177206309766129672731043169273010984800150666838433779480183504959363045109265179682397925051737757814923677425054202248577254127664695188290158925885979109501418258010351791112552754241235086753248755483003537140519295284956575737880514917172657650522794097157548120690817844379468748363406875127667230996014183362783556671943864235243080928015080065546834383550558560354837547215910582370156982749890290502788653451017841573445476800224499601842566025481584772194675450412636261991081538101696102528858835890176041154477008987249530285430892108833426611871024412543675254163996831923725554712819437752363564918622201500581572829359354496656699651502615817333681797807106639599516115324822642323843781070414566336816341743704948896908768471116216838520308730806619053766616330111023344121303302173088706115973613882178833296848772492256609961083370469688578112619772113961595442393056697234482739395573779036712296274313577286857618640270120431777000425168938207657433684498545523328307644248000742007823941863371740435378563583815413480511272027520501898228059751208454118496974940735964383725790262688203085431116299205513335651655540647933694333024471012291989547021567142199471406009953075184535293426449974179386757428657080108175947582960233339898084353203150357170130577759657648464233998280408019220065740998066079433202573681580814577118729454547638578691674931908398699740878476890510665348860820781926454829378771721608203412070249576687329933229769520329675001764937515281003622808044003905537120580086858709802758619884124357301175955657085923852546255633270255423405204094726000506513840746201605875178464461992175664179257072761413124822791984142275301722074458342182010398932230382748594991301861801027521156050926352731162456827731151838069623065713082972924051950022394533728595565836658028753411495887458256363040366123519687573363780917115343922702056757267579427381017263402942676510488986382491252940636420559348858519472024552099348471697329077232470949360107147091867349906250513254724979408082523999632571134847722446226625178916771028428817902649409680314500978084593996091257100124812044077568875905711813992222277501568634617107718760596784370085877578035752355986960866051525444695144697036192350034159012564045039956230345501531448737163111790271978876841550457303438550547704499935757539915172956225820831691310658170657415590094791633473999358866240713070814766358790521974723382657753427741654019990835117974162114023851736264523224199712901987831626525136921116411190245387437492978919235040790671694364668390340516587367358021557790427786686765351457860816944695897009567564465160195005580925792766066558913865096503754074501535860970144656843144643846711713939079498006189818886259289435052458672841568641542080564753328788613940902560253543892153716862375359362890281868345153933529863010204710000972669046055591790532956306277477665578329559730695448044858139711889476669725207754964752421429423556613947583751400434673056379622480702653827811659508507828204780515479588011298740556341566175583541254467557258321073692330048317045766768252177376273988327404987960647188453927025859192695830624564973637143899497376718732000538155835384459556758590485726894274502396112093440798529640430192103165806475715222611768817541812704536301132367327704186839581010215145414117400890705490953625504197021774810902976633684678942127983089029559160170747232521564130118957508397335633215201964133714830313413978816582753775178428038412342771428858564580699471156856290523150016747238928941358894540628693754824587525324958607046422534872411430516492057134528379036428205687261149942246957650373502602655821218055210348014502114847874402287390203573620646164066264827320316671289418859360302211160869761449249058472339858244957232687591862310990507541159486028363619100531408795430509475064294239272998394792072548203721175967823434709922555530625360139606688515672543597044407016227917936088474934143146540833848662824750565336330156066310418916268402434775525208060300207831253898950353545177038036813792078007680126894454864178856987825520077810136268371979062453235308773751496708203497326694401418517043356287066396399996013662015069385884061959737112853813151613207119596686692578359045646945989422622511012890684689855041345260700501459022970547104815864721570876302914698525814629104792395701683887602755203561619171975427348316627210172051305505256525580133568389122075084931575438905460866232983793635759147091694668773521401905982001774765906079625340096191968393937346633198581337012213496811787981784695066526757444930737043962850155214777842413496094607710950032819350319115792575687546391955720080702529692520470121899296931833047791359836907545192410686880176866009214916340256759903400736752241059043878093445854221022320786705777545476130290110760199934137311118157243549475325803343424415992609905774595941810717784964028788153898454610404323535724584257008022982686984124142601153998881496763947308751683404861342016247300800099178903179040304482635415688860215254557507237928321812004324971170352033667380079626365182157291846969064695564666922933910496241925249125489955947941957136130263997627544883780775781824151098993649773514323724214082444410269024729555591560627679864874257957949638336746535416383075033678028126504565070444172598351251018155907281207988255952114478197445336898663225346889187885311069589941099197597849602714283774992718410045839049180266560814422316080889344980834571995273149082403644202348827206137981802791558660674329580866127001200431574246895805208129173078371086722997283866263777412533058682268670849917412467906310531461714921738010734880428251051431818742927166645434527761716881657466838034289649867965993978529561642420573216964489320150122245881569636614747268752978240749996538155069856054891719606552424388287499682448570552433071585269139890994115220181057775853679944492151701167343725327239844225617603471093422482001283092361320500551399696271612490060298811046127519621009101852719701184183992049654313596873409136059822845648428801179277357194080505092355144730178064450005321169537476461621605595313076970507145258761220033094464643243926311945399755686524164145114383136372508344017489258038727735566112477011405469759375884102167490438923341207216553209517232161060774360516905775030624020889551739482633508318550455903632430458722116576227032711628984763454871891491321915064338794587151206388974565515658567735605650998366683290154152309269173243871196564410659402136400303125193616304921943951506687690646478340208901137326732832512426637136109875214541020764029038457313479686971058744993719644050662148437845088896055276944080178280529959183710134375876660184783191811424463278962969103086503815107082607740761676007985598428104954209910682813809954909416483313879728660858747985254894403536627235627682793163259131716368690438307476435768765616497868066204019281609037292966180379889171830850841932357436793684596103057617226818157819675232587837753185004254915329926334256537102546619476281582288689930317290754019991114749150933276974045004634261950199510076073074255872334176573220585139177138683160852678057656745716001270263173542786917110980271343159432235740550589561751751853165473696605259011407745859478005312582883041857806863209912299303425314456561749929615593151203206187589670729141430865934391771775495121919446724070140731884695029737163318143819477453374444689689032766673937079759550459404984834337363479371868606620601232685861773504003676395122363637830505340013488355516239589741884523248391631984967089545744987277720212688389779927857288759445023157638207464359471697413935052069349755295259427324576315751909522154821186365877775977148341113372519715060428240494028752381142842293254493042242797426304952765699997759840606837388627283528555026021974080264185324678315022792389797197520260962930102157722172879161761003163360391196272009414546860825833466691949125241854735886751448976724923378460025279150058510243509498199980595370436758148572211231265152256851248038506189279711991167356013436683837671367281853499605490292181896622476424706115911734376288797038438296551579509064695031378930988681259650437200205966643114765594712222669379849748116122455041587708289156904656280604740623885497426033595528805832137213123266112522766438529544389089912554102075759550307790521621898038444469432368665898709540005614337267632555763506538442198370484634631819105937367132505527275466053298412783899178556676303177422758384576659216807695823522086638682999017265702129461778333626580056679813109941996001330199756419012141650743789311176514691163680983902798085269395986835558505072506888368168467622551504008453581487632041892805547725159354365915308324549300658442513298764052469105005604555067620967972689261951403305581763573345687984968987127346100494010105006652637858100936654547256050732979931066203632609990107736787422961623012675536083527470451080429123932307850693123536676551156159209085626989123510270434122878010402018363455347659154381330155334629046860790872900273087463724118131541997185647132142477382738323105087970444759861282306514489528440612982607514098836761976746237096917984203112448654479083026129847580012424962064208714425093752899337123052588881443962135155830327433587034351826465783416981201881962698324049393750134581920319025876816685782955498162154732339806937736242900539460355998236856366453773759259501925624235458006824021540274775329448996650898536256537692580951650393047486620768172191983375230567238042782531902336538116511273304754123539364612872845218888934279070865977892265937179494932670231879457951193638728250867334045868838995013004819380488247372852309779628362935116596099860567998917068848435669043664445753896806843094970568338930633695436965663177561952382425852557384499105330208276678382348805272655323758253866026982291139412916709090291671742166810887038838514234734936112685049540934585634456122352543440595647147823394465517682837875413274313700078104331527825424522238702174232233641240911179294357957193792443203153412132521456108535931825309109811521533500952687410652222573366213131868652200498426337656471366319508930195778113190036884840965691095441669368837956601415992207183502535735100816435096612663870304969193996448382088370141638288242502127650166404052355043598468267662319583499478114563125723015037399572401187159067051568618445326297052497534140466288853786912938051999696163629534373855813232676026098802258031857697926151494944460390347826611942605605990104734698608509411025988151001104535247661613204103775070308132007035357342258876804493436257251889555436642354805794188338735681231273127544837786334128837036856014158336544278594454968784882692581219231433676484886460641051782700182848430132339849848361264851397957966473862266538967920668047588720295311409137799010238227638355338738799236147013247152978703508233422755706776416096066870406163560703791942949132788991019089566229304884704385571747045160491720021597389465316358244935820645686160355998757236845082594243463706140800614921115309025747367072782223238281856663752762895023964124698602605439267255800419622514449639808238196558638433181030102642183402740357791568761554018274795177839845469456261400055383687357553157586858588059447748507366038557227073543229808780265164267080422415572019880324501214261859414565836860596336249216697899508936179876695529221096883534160519712481325070736693000711121564611260222603310448214126162895924513248558638438811962434210794497194895093053753484210658304009193297560513660501055292712183367213331351093296491674695603052838127278417702925348600400640062965738768580118099343187388415448801916372215196849429828682724899737664250196128568680783148934670194986830382221304740909343045198902386856221525404786219922885212267373715184276217012002239852920882242571995121220351658437039514751371857643976258302385052229265242575698094743397797264042208582897030090123125178170350648794346393358527589519754495988128111848731476006959128415354118132936118304721580283626518712809961030381453031360907299209364448907332508446889312113362261472904468355320329930979885393427279507054520746839592449882537329975425931749593131244896344776980071299160627268789206559173725247637537832862141641287277873424873568302387144501810044535112948342950463267800555957599885868743996910153673527949744541378571170870269138248926219702448290211656460423253611384144457829060461110836988090792716083729595203651580163491431624763153053512063776453969479863182621865190947741084146967852753833233735146032494892505343038291703749925040522914542635409475637804852124054124876715965116067648948961957226113309373572358229200346018923863231973814399759270708843679772750156433332326071970214828347230152559605154794297615836779667199764466195075246885465095231788062560032597946294338201609493732943062482464793221720300645681864567523714167530436701601550092092270368050888631339812784489809605494913731951032159611052396903651022751102284716495508830512343989452347722876803603488464073325011309153634068369477789792144682342078515245900769657705093776212958716736812969327288901567012627719247847396928613540646589454364115670029622855562769805400151136852039472785050321935608297288980525467253485168064766833121546446401024634200597245492178145155915007500560923967927630665417990039122977985404566460725930946442966103684595777810475622167905967887045164662413567309050841991588285281013157872347308723416933253306330451288111911227728534338226783782702947527120337421337972809173313025385963154303969002499808628382719750790807913376549751755143636927249405242846795331639471160254673408817192788590587259818656465735583523438604298491796181923680911191746844226144238246032047738561928652244893355060679520824133487884546112777762824498357368736821761576664400088875240226303689218920666946688907835962191957302276267211397931759880989471178177311937643888400865554778998968936208587791634587325519905549054627067614048497247328830625547156032264832871804600598656662241274840853137701384260693124692119971423169591434903942692506169151649972774549738602233158419746998301501047191414941123259224355494165841559034540805234621395986658678428194859741806089428458624750324097591543520195615654426489013307025647296340747104839768527782530345051053892829755169541915092682258859326719628233340658149361514146647023282201965071189410337763112080178784996610079974749657392483658835087204404613701510667549635265293959718601722948314474926343157350283618913333514051123779071133468895641536781274048433903082492002847235678277484932773123172206301007023966634420742592831109974086176747607592309556155784965907839092255943110156730405087256029574961532109931570243085783940144077660601537485109532584163776003530095876886621398000994056240845126178891927840579138077717286599673556989429246916007696360138002652235692961466808755193481848016164706238340387747147689892352539929067100737831800978295486103086699689511805526769367836894126404226557618301884699258088176266021647409239317758159518465487279012596969927131936075140749553426286337368215261370882505617340118987727195443789096905071192414790209483696887059724093779837902341817477480655817345130379819465060756350602173901214905706049681359485571329310197749964079066713307752688962801535082855646682175179016926682393854717072741500890279762510628076854500303802958416586434528634710217822992880301005302805488192095521690248086883511248900061001300884123601525470748108943946684030810691391593007746384969656272831240139542426136304346392757943760102209429292249343903528394080044901936641411725447949672742063760850098588881639101170725354229511001763206287744099573798492832699183988017898984352722071894429688454827361123030756801799042524386856741548200125652173662356489907338271059615232710964891482148836453944531687672156190685237076772635630713180788870136361666215335132976985799716438357102552028694257736758209597791180991087929588919780319952447678277666844263112449801836724105136137387823915322002393197579870553743342198986437465619737794826281406476244018660809055911020602436994185748797497955596197841779480513651928580745189019703325506219744879456484918011455418913929427261256927818995286120271020230852347562036373570777554742115844428531901990023765552628686657542490211799734669451052430799348925294337963951570239243308246817920024250238336638817998189840543430287700861229914628638717270087236456102378947322427022310094513470615848267406200718303750416084759729532069207401661042965097364358812412673623899949225524047510112501649472610032133084989539886245260549840597667102767455203960376312444452850937044819197584117157283777527053191694863762226727162113503008001403590609456804799723608480711728965356891421952723323182430977321497144113100695675774436783046884794159209924929264516872408810009529823694103031073163121944474723739785933863962486954102349379867644712030332227684444098849203989651457047616857215512221142424465231411374427503764240749716922417707540065622527994083132468400115967672995839454275853570414179422145747512661600636278965027720053471276176821884296119405432904999023617093763187424286379988972506098530851365530850312951514502138155077376401844600704613243472773107997529984227927845023823483342870819036074498560167884097221934789787857257328598537688708946723544787566449892022319560986548720385008174228799843731576315701042009975795577386969309046851898428181318530859911435410589490714951200241049484301175100813594466024326938681014852425728182083647216933521818808322432243729714206050248194675416775246516367031930559286165117720382681349846400214084069082357307189874025395583943231534406840337100712349671950371284486171243054131730927385083300176826401921314605296755776675887601916831677793136098167998792491786761220720805889514928975044451790196189140107074480808666769266584083645827517909212818370192154950644693747634912754754854445477477940814887122585393474577723366732721460315474189128710647696123681468335453388978225904916515571724662656418825222002100508968064803564216982888985990666625982664156008294340621894940806241447114099165119036499624199959507298251309064130678202250714860787994118935890465139993792217464698851252411518119979385162379779430508763013866827814854211428304300454720256292120711984468109242830639669959686171473708755493625029935794006911047739763221317035190231721176499837935714418456486576248639915461651763522216819509120407313661204586071959451818130587330017724771622646711537011756732220441053759242631218964896054261868439829057834516018268027608586138124293936858982781012693903491770886665715393853907892547407949220741710546147888104805771819604698338337601281251806189252283050525047273199692730976949363549323047835973225617451192209043633668872499889607125337982961173234039434471962712434280326917048278735364600008760004171134187073140360753661269260844340019210816257394753465290762223000303840126987338730030650334101249656657727110519553688100641999419620738019882204593684546079004416186178438498172922765249332264284594794402638374815708939807942328799913163729583960566935246253050631314453064519691611417197157380239007721904042317741928174123978394047036545179336808427923148266773534455254844163238263348662002716073179112668048184273248351131982085143637915781269030340951458065509289962742293078897284832748437253251785950093852363337765676698312339131486121105206848032774185329425421842309726409157799755948409357178533517874136210430865503696301520977456169815900842642909636602625594549366136178869450513623213100985484629510462087551350239188471118643903657208233675246708715894534129271691824190425259707512583985355011046993585267677805373657270141032267658899158978632425063231468732380250551759255371753628616580598783667878415940037085676901308198308378672536339975319145761673740114662634536510035900283081177764709374857495171080471966970247588038591851419426169523989117823483039506737183993891031908817693727276509396048150282986728452090441750214613217367534619750134817232503261493750401880785361151901495525842209362402096947138962187960095104281202666623762108955455574224106883313034395615971416736615115856558529003206292938900314341414751388829806893306836396572677974012149845504856311239501575333402115688416792789581938021697239474374307878679130445883696524807130354694192859079614176098945657555023797416558907907772182046783474022753291302441158460659876632537291333177112429116492046612716925933740730696514318052642700763084393673582045138585626395882040910889907288977908318108529254856067405874180264112862592703682733375650447906822969990816634075095852254930129599444677713095966045149138481456938335336643416721468142324673347375100395204404405977268894065508887848999413003252280075064339661747891768601776907597334883604432636718625786407190260270461679120374892072543903526793127801121798677385450112349565341675684611569998434394945446815120788634586418320930536546525444217087998508254861360158769936840176895444438061111352945082430236281619993571119501803721730830437971600051075976674737467156607363904514421527924957261262279650618879737016735680963626428517451533881744118681921797056561247399056451122882925100629577835875548775090854952646000482139782024441425447766712836942395189339720641690059312877302908071859732963579390224327957745739856232154996894442481520529911247840816818626515531052818430300025162218213970850153075419887394098672214503095323609621287517789943996407709834862395473431056391119233698711484619016112854035211928241899020944977705057668422579589364352714765924963075769343542446708912179756608949876267258646465990497597062217369913460234002652461701921221871138559917105955644260378616446852824128004769895716091148156071627121476679138805004581433742577355739942458083951296217018263030688627825343561217666489746725359482510621809119116781970181490404605582450739884642719078361549161775444008220812087730579106862523578000283616578455896620543538785028951690260821690557454990334522505038494372852705616674767804418724121759608857471784134973090861415209669640976927883769893117082110269526463175710936231629505393501032059259507213875944977104342088732345814067686579385032630799828301760837843704935378037072803636121780666378203933021707248561143402112921924598559352852616978891418228867423468302153747189138376483389727700150807268429443571563487702482340948229187377310516043840749731947115804052942076315012113487641729917949002258636243734638221541809994534027303720917935013798419310314548405067931555720974081282856822042539329432932546387766526367024799558531155593619521939607932545435054816997402412129042474943305968354645381279935725677902448914337286460993913312775850650177263863708338078031292473709888524287993295335324154842961347169990714308469423130944746883761934550134960216653647705464643065107013901263723185398409743278056490974782621892717272574027250376683228110723983384008562377443096335891649084668686730493071144707386014654627199173981343788868943661011198362389913563244922461407030418231652021555978909678201254164567704097137031986437265477849715405655784578309363115301691003166460626859842425458172494394320170265947324320045821764626306741741958788090220704117020723177316695444441649470842239077343706142208953843917900656018386769961695465488066389488423818982197625057999745366474095461447431270236241636573366691148255780791845844379043484345017968057132289158607636714911867176267383037183321676314158918494034143668037278516842135958418213089364934339254699555918860378433901690650826834760882472511076110704225900068400948999871429805604253995645706354876727355489707914653862042767959618948058295898751336195763583410141616847767057780593712222244381260009097988539353399401966757764692264752343302374683067081039728820399786680865449204457098154566414746049439390376814723737863879302971006815601837575876130534181178774334764731648297653346472055853717990651956360668334860569205544522755593628068931675947615250642181637714038144314153945137652815208724331429183772173021125018648157429127645435684151815586110903093855448549990069619374601405322467692627197711847985498388738225429352676703271543769109537423109367757003841841743506766070491449347190538663707812799791773419874235709874447720645867323247265974201780970301672828366254566957535887092831635936743269467650193082647510332387137544586167877351247764752882880079948198960739730747898828833770892976661585542560997348258463434771846022892993661530449958508024526510250450818793338687755245662905720070710571985632272944062447070538355184735986021603347466121637117471669566116729661792318935282742222762850326397122884280544908073886736457551659828374558688237408684815617740187409817335076338772968541145482850061687058741570162864372967030424163922096165860733331453413089697063538582490710913071035127140997475424074904561335966407037790686291400745908516863052527962059430711647277736565974829483616245004046094546769038923025589677260702114628669610177910991490828583290633361991939567578383172207770006640071083532480710272930275434059354238390044499973309504498897142833084867397812915987782384269652249480464874974241469326199662151006778310861173283797737707773572035723677668584127727848631354163552710769994837802549555169312083506796769362820806248824137488131948340080800990711989364239473215221257862821602683570461700681380615039113924797132128619776221630674545013559818147164127510811199487754653697080368109989681047430489504396048600396457288164038272919349893367045111916129936200570648689538785794296493423829051342218492717071430354253018371703364468565985838344843404807846999553254658080324125106119168777870023040938003775936986395154852984012863395780853912051051102693667902321260574793936734545061184089868066153155773488507772549860260543318427705466206971850093223154652681284935872571160960584842159488480453874333639491483710907622832846745763674155337927302700390419359781671918753887346214995367188022355107597414808306554717805388628437876176362019560824677631420867206824361202255887851060485773689117581971752095510533507650188878424231584005525647867500752037023709666884840902303903400705247227889949460951368972003711898654912796033654555912305446174356369530395156811859722189352580415214121633489841105426220380767738586674877965632236053307495993456125698963882916334549075503805788452703229220562418500884407659321925605249341850663089987002316504804742296870264804408345044765826262830751041227279491554086007535234356059214068933107656334354590065432284430211548228205005289113624524298735968422593646362015750597955246672395144996664730362682682258050499073007275567345866561397725084976658953760433279123471552879635588082495093836243639685572620196593868492325411312887073946563552265998945214998535913351665524408717556521837583399262806681350029744284992928923672674264309317655572201929551575173821249736307314601680139896547622434365348513566090033794158370498938169184609794102055213902800872539678004082667194104818751742240274060014458770976806289094621753333492203200601535905878168442466031695740008809339143258007747379358485202642851996784441790934388729112890283284262651996674250406943165479060316115497342678588222921758768361686622887809263612390335061305549941322811786146540536398572081707994406159334288148083503370896078710335635687913028865450425067544366942042462942100016487995378696145365210477375465491991738577037905077413599862678873057106584565038216763069934844697605622020675485309726078500822583928171348190287115785864474373114545201829449834658134728815031741135515665687871774021414890921846737551228034483815643324111034800295943229258567357272004648896118347563538934191318169067303422061977403488959987171678821570059130099353960847373257240317733986567225337632820491026220359931382611078424100136655411630083284391396616875720980340284157776535169375546791516949074753945978165362300967069990493505418497379115031277626922309978650169650943637832664919851565075574680575050566603012025307813638508489688722312792224794409909722858113899820541579679353514464969743288678887473086448656984562032051593427137103151372886163370213096115549203764263030504201810532594921522647966326912066230821162746881654913653148216947908282366476020822350559351989190495697207970095793463025506059989586371315980374671935730120756012086006275802405571756237758898512000533379072593354949768195352789876550659162595678140240250076622129069322222648755944249535368470314428403290918609360918061241897726723780996359745608474482670765216484000016365008962435366998354223678410012431687493011246159674557454612051408598615533059992771143722750099696267726558384625620655497934475461706226324936512699039055374838538960908426455344841301151683137855235721137776195880681002596890313535665503279818289021627396596933798704832438305360417165731834788760998064508473808256320277259424445261995188330808700640617742563343905946030846824049044214322321255716799946676453286294569032069643635840155787741722848926071435316027498459980860572569059270273538346545730252832540017642785091520766453620735406895689628220214283873487543969834374395393769782803867186767077109182646507320415934229421311342130487838026214234584236612525930078549497127168400649351969375162016767703559267708071974764754513267658195524572510957731169674629907087231150467107187050273008718839398660751541511148515022027850687806497802498320242263380407122740028708287801922960745035750796042298578769385067906470870987962699834073745715844990329092555075481636253362259243466598601539490254764534477666449773334561732551172823651202321628372452393694337512554551584359450418760485751422262677015142955301672073750057739718244146655243729977857566200559608468417674635713821776167919099779509532833393661711859967971431613852694364459973571756932109629598483431346718320894379862935439067803370772076259345420500566499840472626402406562874401843771819335641970276851884425158191099332434473215045480736709867188677469297111211352329810697350211612771120002936859186773870814103962681164290971139226087564307880348979509169470259167199009965183236136707163205928175367078340906798064065211833899394665528004306570504250833857659367341542574300097011946466679792082889412594672302811725060319152418357736513674973749619885058264557482905968923277428596585724025054526161814977096682202381227111748979748713623452615680573223536823277159963498349975491262751494419193235420370434472736430118508658924618346549620618974675974093572194569399110905500979196645079532764709649982869947059530682930328037989379351445777224977114986145964095430644307066658212107345712215086998207778348049601047984123961751348734512814786267347340127858717275929244288999612068310174096031903343373704989602900999393609262476714712732824821374405510569289305225345774521598927144431713458370643930308438361938188880387197322226803078936718891724540728869241539897196593153973018191720237932722340984543374465941944479674455625778937218782086833065936517579080890173401938660898731017042927223192578031147458422619344054790931120702686554733233046209994803239057850752319542402210506060906262019826447397717512764776336537018909744457065894834651735621869928242830987614388984916110775483697735426648736912372037018604135325840007176567464252056545664793550632589031011271749155743509513234549444046508374386135535308907135700665276520851040592460848154927651919216741972793895367411210144243787098236247066997639251110852086013846006517831387951507859403337931325269420064170119832035340192808678439367952670888467075750385071087993510425554520345345070563882392867117501197704523032913114222804099807590755174666277371335733320389480577426242061376962797396666544920887860469100985513744313322837556399780139368338857482375293921988853755734591549722127136045154432273789959016873911525506061843128205392142897257256580419925127788641569810221201037101058576407885787595342278775572167646036666743380261181576343299244406406354609485804378228811279533172269230830234459317153188068520777649149963562706935446707302964023780775651225644721108881092830960679852484889872699905846108474080367905667164663350321336259348822242809423152215691840441585853705379216329026601894752661325787116242660053823021619075013741055797339125268500466839597301304041690005850746707344506436998879459774230926498090233399890479496472028067298789662441652117066541066009567618875029885545336708517609457724733255380359109824994571030583135025942929158646852765078755773143572902389216566426075557592898122898182118671671447060893361557692874100293298148722200723086247396454319812961240173936058105056334674444746917632450719822721138462442081217488207703660910696481031259827399992901844249719599966013807743039245100851426746721897688791390039899577814811504184854937546277156033025737803154964432331519253447428869324994069603241514587537759704973241563698072175864795076605749377603067234254745085243129431999865941608277985250846562338032536766189335295338472253512942542877936341669995186573183418992471312843669396751014270323417858481122856260829827473426286554496430683419226102483995436344209214121277694187785335150735561838319755344704940364627995232725086633820189076044135988643537446332022038490794002227895783750893593235554668998985393816761308930370347872609934591331596420932788744434613055247218380073513854430744068481468899275641574944437447242181617444500545443573041602578241127768941012776614929244943048475864303877950187150778700939218130253889510624784189134514410771323905736606003626038047750442552760900089899294522414394998408448257594512644932486790500295124917312224407292572169170450660858706564713465163773616480686932671882007152637420510282837456934124577761236046756404863031219397917114634207108335452594984873101008211551851165099537865942997350763655855182861558480404511389425617013376480836488043721627650591495712449652507207069178381540940320573996851198135425696456336496469544464589308411873670633452460029725844880615203121922494925186756468924513428444703451849924078416390329175521053651917594064015140770201722317357655806001288669037207031575278226773676902828144063332693604992681974992542039725722294673280728545915600168910521570073213809147831987148353521731518590629912926595129801494235422224506695603665769030534010356375081075503327636373525245387357229343198496946218386338536223982138715043836041239420985714625228596897429503418274908611232584763168009411068387444774257433940983473063536692496656472084245607139837558645269452208266528969311747919318104589197207244403008956721631966311834490286743520648365514303183248344422109894888946965563162765005420150630683516250100357715296544282769676017740018448765365400867396353698773267055871082161854820945089014944297151399722574050274123936500106580978707311658297455887147975809149509581504200596277718382020120874928075185545117941515782449912373593482058833576574716208057056183317208640047381191740335474850533305763852507369458088407498974598259119671609558502606913689611444910956254457961576369692523353103467485778359934604589628821777550595826287872175925029649021968976496659917042128548108756810717504910817956666323087784930189689245073390650500173754062786974435764430997669147247081006519099486971003287244282039788522593674315309023329581117183005732943639419811637639929951130037446931949012312965828605088717489159324275626301683335111064186156280405571288976812344326135315743208469526716922107785798058131074182777426902007957984411315586927792338317256437548720015048111793767841172709289406744949841000169104051191760385732513391766191433923537785161975471278537352329209608821543620407291424272002323185774408670132253847807553041779155945712946206546093477384160988788671859359060309498255139116849880468811874568004946142519113180816663802645506778280789042674087759725006931236082697603616873516045985942529627817773031041406756723338612248707409006503400177280873502441090308756733320915315014772691259963487718856129780073235593949338141101329303736153208563735875521185532305739956294337499854378493926794171214812842436494249924307024011969761187651655198591857118261973152608666667124543433463345311906817546510913561350692353543144760740046169029780064843412400448331481978422964222268550654956465485508462600551249196724801813845224214764459258417937054906311923894888921147516528170728027121619731825906422337588749128759807314089477124739604803497511700123861368754054155062167027221144390900577202092793997502678602704717419187968470700109346371670570912394535869272476305881791442590726051983775987470469359386884845157693333142703624942661196154434308318961831189063574615486329833609804309399658836671411084114942519284159882723737257686981547504946166772337132935029893162846448568638686755357826731853719488938307123249657961801062517163852312814669357454043143475543708433967906617692387691079933462014781682836533131071053429502842118604682520812755581777259738817539397528785584570880135409762032700065044668569918710820951939957093453061776092077321514634762020977108058366956601527952951491466596187935074154978899875337169778198116090182463604889015121200028017376952660775627360147093615093348557903442269663303924942647847789048290245059638123897477605809379543955415980120775790775397530064359055838422019461892959503024743088557539740448677689649122934551975749633505836597870657028966254525943865456125045778978043899596446049888842391046356179270933707376855812765123093725914961909660190306269915073422047290181966106242788393817418699972667709752966906472112279006029288201911847434472026408356440182690329902722532786178191836709677578311001205989315702360747689814452456838372641175889686104204039686134824276349916293043503544850356441570561824462268108321927005358698079393942361672683792087845244467902220419187620535361401553497951500442437257575222735811408513832067550715910391982144578747242617850169211911578639097276348076383791434244575564179180650658192413981803036546662265848198009435338958395721536572868763866096434339918876265707575824460307190652679884222672421093932889531187896165449823403653259286771194971011285098106785388264044567977670746827459587901185776470857133697431135067194822452547297534741859020545189708440492190379722567969679087589771798794635728842317556885526641433479848265646457418634668656197036649196262031573969454849054536571197503274694930657577574515067983019436383855616862787285435925825024621013591045989395820118980927850016506852485022525716720231228528039270335477178784413483403449148035869314162155787751931867838402108011705682576947907322110372614786894105880630597936110910507337438544966470219230355350193825851408208274739866167917547897932445330911159053651401644333911136014761556018076458710082470960287726765531427417263487671488879906112522723238080425579476267428373198464017196130999619319898443849514072643901469125697220646018288379203173892085165813144393081599421396963566003663572667171793247782725921190709310373039379507692191371467683692533107478430139862006954699750571385485705132530532214582657056180496783068029549057569878284811832078547118931646974310881425600291335021002278185624643318342290115777602947031870975193107966578609970295966936883911255982497591699069691271257105590719652278160497425524563844262467281858292933794581192178102546707694145760378332291548802585351008124748918236313209885345892478737412827186329286276754144394977327911259147238292120917013640980021894566170169286357456415088799228962608891147594443448491199268677252886630087260549704251629622516225386199017932315894366596188238700262731061815542128597326766660454774110930323033996302813273740301968278853470709164959512849167321475808427414585976326987658440867614656196768926176271511110557841056755555790116507484917765936620298031504596498184957452345940309286741496842402658018291970373249642890721036549862491339980655026414410171458706228680774544161241296459140947707768500830482190168927224484598632718462883988867507215276862467063236071191495982277388341910219634458451265596163752633036569870841468766825215771369008661251504700034746059468649206455903788115474014793670300127518987618926665047529190421489470021303303607976499643881737948147863276217318567428345354674859369400908587339099800506326399060264969003275146980575831582447529153800239352004030653596573478339335425079905068052829725299943582874983560149061238883359046554478462727740120578347087707789631352116562076485664793929002247638350094214198108512508948220888193694389643688034581943413655595718669691626734815596785358097672845850513050414392422988971857951317938875382042066025487075547804607929018986880342753377693491510718622683106517124463602669567172584752543304114551155144139105488031687607435680867180472760985170193858613957711338603042069558719102734334759269604669418068731258975879264752491320194108849908352652377673044742642801039478079398480668801962939395509264741348510870504908469757384440937069940439218066598782522924124856992150082760837966889672304441696001472563553189705311280993567540654187894914037901445031732479637499477708187530559783150439920553570238388640235514302460629527907085300982566039354688740635115409072911217740418987555582167176717552947012996710406733395624161638536164121082481642839399317885076471128473100688474463433412295312667863600988376028442301606856079911012617804427663908823821848488231744256130313134313478260465367791447909736348659031419348547523761856261548937161997509702011589200481056482150696631497229919992915323311330681819455460598077104966832408182850534356055177305788907985147856882317782995377196052032101296239468058528471665432381164731447611157323378191407778167860188151329364231379104312193858271611301607495384971156662363532142116329351086059783723665251471302782452877402541705125886680134778316199343773946454476195133917931397003554332442678124386031031305294943658969046324847081399979258828517168107680850691355830733029434400197024754798228149550351419423815136674022321936842073395695331035737876619770938332842086092264275162212091706173717646735335580088560522941093545527090500744217479488216230979922732140636199110532774974343698080273224069715136983867517340144246254746091869285875312736871402509382811501841363375386867976174328753557289618739947539979054044831406957258928707259158846585657806268237902465881152676469779167644700212663826290928982843169485097728193037958721122875200582818216285823768141976635467585788198126551532866306243296813203487779182018714920943348350107740995457479975579792939671810972167351122760341340691869377087114230562202834625936393424867324892418513117218884318200188862971177083269317870795943115822223711406004337112703100832625050085753391470309379413307581196392390380506455952233573549773551938854030342220197112730329507910553563036961616258433121682778693693970336857243356413807406917092811983320012439113086755205818166771608866428809215160868228027514560418174330437596263171521018312450586779433862703449078176574244573537134598950799875937874502416698377884010636531058298460588012726093098074787086042650103079031976138852356134382443491715831843545484864512021783312069219553441932611274188610093745885947089194549485009972378702362418355191418866743924480054308086351741048029411793362120836861821187312838029389822347484459272045962215410306880787918388549193136569757847625271316355268919623602012949890456777797231360911434512859629379147448628837077523138528344560645407208567870434902991854069557767150496794297174581558041968048319569165838401761577853339482655876621350221950911128363042662421002910233759165236453715466503351498101407548041184844287356363045741932036731972843705252946873970179455310854765345913410831578073555248942948156741690983708349310337471119654473000286366737635941378017754559096898574566744016974260135298971053603305142903825687771698762466488585422927470896715350440524040472793671777467166603571480586393567310035295435094234034231891218945181847672440002758024899826142845152521792965886253961390173777410203307931931617374138891179568431796465592287640260058139123279841547218799781476970869699626363306663053621407922947949978042246165919651975142465318431247876895829425373489831061732608606222455451287420345832330991007204848785511408893330787678858142745008894419757337412524242372288195888883106992560523647938428147235743978629872741297356636424368638967296892508728722714027292169786624678748429367351119294333916931074916466814305272274604341963827495453813529448131466498599073564656581385917408032654721050803070202833611498413259687147916215562607176259855854209130600270794263318805211827596237197481106693629027034312287458983736085020441364792299459195104620794376618839982746409777994425102235975519537558021277421290481262850704744327090296048545093925414776283125438420035376796433397459238291783324888720445025822709200804792425147684031030858600889528472578568406567912689524640415055095224731116429654843341760648319612669444178471228189921832878304980656570625499848376424123108784417607673214308378987960735230853968053467412187272567317664753919408618156715592254219266196486276972073125879124604871076564538733193287930187500819939626455965554789887285689072291416077095585832096524656539754589812370612959205842503944210599934352254019695948359224054539429235331692986413002810122373631357901323529581158446881921494922367328945060047073116555085071275004590384847088725413415121445559163356313335054303904927637899541875797595976231247015231477300924169907725429344680503462223324267534494499583230556007125827083508792135146005767828022196935097068172168881436312444033521805000132984594462979741256697563638842319102924621335597640411188887167809809259442700001238051828496935040526563022150855148852302099776814428547089238124651241417719053348363972903893295494145948414585986716510215443728529231123325430453901794275928002009025105986835698862650047556619979300302772587475020695458636070301681257504814346090822609231079196110874040688811579636078048283355400593459636395384515763230574532175256719025683349008184133646018782252922391961892499819480134223296228854921458058920792125926384841242496235606905479871672585582825847495449659400839921209162290321658501008114648973449063579169981366856868571463375616925281934786144796657255323573532353873802238050786946258156730549609342228658350317820130730641630688318748677344162266264166150042753221852917554159331967002060716136290657301104150688172563877888947228498423103624514752606741259501265877720177889975870750954287844537135336261998644446552010396216434236964151108657435437482491075326339587434963232076917152142330782562909870726857551773580629343344369689857413344956666837517174540067949017843961811411025620708290436280841987778082915765061267774015903763304482006807297127515148634237720685230302666023021084115961381019829595307853954266961721359175347696903685733602100764917647588331485817562651533271663296048640268456331678750543430351499891870181837956216786985798905275938949532747741757350687619824966838060626983590018248357000676288561738032452030734221583322488720366671338439025956671021182574462608141457175511603186653321384201438349129998884191884821328201752463075226983872299552823108427987027429581167626205047149800820280946504224316305250729585402988258201031905977221061390278667373498024120781454015057129555873415245405762692964990794442244995847147683747103880314116706342616440063750404224661782525953562947903322983452046993032846472891508469395045615712827153630252620064057171969852469771286276801734576139521827937574394393007815366489427107465166717769663165360763107384600407624710075916941833890124235607753533976602569580008604646995637732493698514438891965270399965473608768504363697601263290971602720909420193417842614091332587999117787299891204794526046648855946628686148143437636856463912264886237889769058899171640831714407586543086308486207560755574207913458999381436330961387137793435770948741870312699383548368717484645333845639420499759452592685121670476650030035719290628055303448829338127066698120166733099984527094441780344821392432112205201384613924656260158819525814066690402027769022884743129018928829687205753605734266966538643575205622062406774531420187864861598408859350976679221158391175114970502483448074810623493742317044300963281786710021293058830370703124361745259494974380087794811674550855344106303078058484184427764035771496506211535566793555906058988017378926803863798997976439506273467548096099592631551550803713595565532203463949396048088545130345832428118469405736128787721661789935877051391621125323852613741547671249443260968876754294487054713398758831547680577424120234844105119985830915151753782013068120035467088030507525788818236750828785985575036568436875935730503236298135749624369527193720836342608712398153013622426079164321835210777245921956944891536756480258066268191137002472571611351490624734307467629292237848969621270549573659064784787815089705179675309878864981250016253531791857400441945385806406020655452990858812984991558055125831519987999639788408132535472629347896300700877790282070352883256623244555362929464884869369358316701086491581655524915251829436584379149829584829840442827866154267096025585390731756737147599593352480406715767668142061097283153321877981407446676528359220395535423885971464878876560985131516058040481388372107990347964308616533448544809426585114045367159914327658452125729897147479087352163227698434266991992312515374469116917860109572892572707266337549442714403176321546848591756389765332403255300122008271933888678223883253635661820381191942107185864129473994598194148936402358624878972998075729727612250983268900475048372924825908462693505651229201443469616183358155325059864887870504500035697994133429237499600101633886907826332641271187618553947942780219870754030030266567017786780957047437822145960745657555467391008187330995440085038084085998142553882887909476135052822345377698225224416763252472306337194884921646906527400116278443058138883569237156263432915491304774730404764122270471632265516890520694872560122448617284088884297162728077769427547189483142293164338641626985009393209247228696001430956924054686709818963416224920996642689573219642705831772781148398917272241385774125183079706709740555154505020214903749430760493366952674311786341878028067593273499215406750384397389422880443186105210881127225695870897002819375456909842486653597376833070528769003842216998166697701177574920998794876952821644418771601498729486334846614815826565444743389114930632887632000945889817688536870322465043970835051645372837485749065530749756483942465546980006019484704196895447220501773110509956714681328828436572678286262540300882332084861844284494994471175121334142204633727651403198854956949121081742852693946957085558299998306492655927910199818131449964383922874876296401676634259770805162948787361428816327906653946759677119096134060346472611789173984387510104472711969554243577256750903908882438391986939573008560816551549463357280971206145517023074448383009723390617159810996081679527699634647179357712041394845405596920191210517354291166117671088458157184188444673450903944075524795275218491138965437189545307936489375905976019003311556265526901722357531233328740632560619084835073614926279589745470773023960436585528906174874661237736985918938909006366473252172160111115559235178360756712547732768803312854366240392957703880992990373209021267982911950486544647918272709464220243624758367292236994733155672491500846636616911414984972274678209974063497087632203502028491346445912846137165928354589789945282625128772431953636503093558109031823850734146302563730640902965034964745613143758308064444796577883314609258876959783896870878951300262279393928799605798401369638976594331854331422001543840354841236462837038195611695245498209052233437074171042543941606858579385874730406528369162836101610703428391847283202393808448085958795146529117583959139274968012079363249478209605424487953925252554891613167709358581328618760237449099765280120963718590200773888351115999030857282652141079259913825089366144080555017232482639269771219164593542168976724360973660417532687739206475628675572759346402933703914913989137464850061042121548423209899472128410303493852076956454410366352221530530514411709925551564092153099927911942943513836402700177426036948120723459885489702678457913188322576845394802232821886308215345402510577666067605183235052925590776879840616297376671433316680956473154675902241208203062447625501870496405902318011250593774352838286792843759040686244175110598164335537207596426971810380381670091247630674708929796677345344352177491368402577347305945128476877368161848312855753321754910815504293066678180003666032475885635921302204466680495402568304128129045820622339954588654213730923387659153481733473560147007402893105766422583614966236009202894579280610837585185157979255610663248163929883259783427431638420962989322369130626126714379965928635591467232189415148850631695754305317655680734610957645439895235159818394105982757218757869497774797277152337952199889876237747635855595994635696873074487035939139752536542309659763387595973902750038659932221187375860999784772300651064176391376522876905309257613575916580222925502969571799713348075019113674656371622049730509546821812001894237001526025931259187999558356882042394455813628018286786633553892868999744324857676405850426935942057496608457894393094677390044220004886940369588351443920106554164835663696801579627154850205470255138505383025682001325353584660945645164312784337493128793635072277975533228150826398045976416893084105389163036008075828747890406245872051786827966348467328724961486977392366232170846814182001733401400030541474471604154080566926994825663424905094210795970560695180789356896250929767312375036239363043034393108662915573970936328036866699465141412634033977161042941758163283834006553835685613238442586681718512320103750273233677601310920373694415835604179385363723864038446188182564125555579785500323075759870070155338097402629650845552233668554885676766535733676056050092659206757060845500144061909477408903887723565088071397537353540285001856759720938412923029788050888450060976606121105888214164621346108998081709965695877273485503108761612689342756892376819794647299338148767357894780106696656343213018261361273367640412480756843918346526681225636216205885214736973391604756852351995057484949791912807087522777643315382612038877603514740477200368265521287731188595625383770406634876994984332353570196014859615449234253446356268268670645884887311220362799711966056258804700487777344052806545121189017815745795201963370304337718569958301782237519233974483457071551746636751679877933168969564694616687653650881810139112864554620720028052576972062980569295931354817307287979428979227137132568516349292815543558473639611583163634565098621580398567208246945553434346048151973856444425488727855432592101265699448433352057275328862980250181433137761822172678630889245387890967755149977158566236898966424454031053035255386138792932736160161589878111137329737558928599121345783321251679605838906073420088990338723475747023936226697946549382173722821166434233097318466072439852271351852885545722634303711160860831834943007065706839862270816120334250209275061181564902812120219830199677177005097587037240198708438337734359773184357756629103784826739363249046626329730641994766686248069752513232764145329016520746571894104984346099602434739310839328616793354778666556493706300836694771102819508557468475614325377555257664015337181689882037604385693519386876519964271719322660298543132676829048126568674605143193984788298599644270520528671866610804737136941189346151064547025114959569710800142020785390903127098230614791937153086827622871608983908328604764815719047031615998770043684824215154372061462921940034756281464332640571190995859919557057331289760774910954523718380469062871454239423455546708531405361100829907805157970622424774032111317748469597686606824044813480226638288313104433866989051973987610582320516257338160701448028024662460755330316557301992890625299722904292491249526202702172965062072460135744981333238885267826870342114482404869831319798700099503580620549974871661019109584160397281580640684462416441942925157992349066130874890575608056132943324081200182055954066605470229142053673604612888118942036473813508190153649649037497200887129234062768897620193994339006751187325315769971820983106804580621113815937338650749714823375442952962259732422977041272214185726970969846957094928514958389126367688352202646825684490877924815597042660752958374839818843668934459366924916105090368182831258242854863705482625264424830582141610791199867818001021456532650211249516990533667056605607357360735258659954050004393804484372426867681074414041917217822262705534230635616562752656286452676396759615805117571028186565845574418888444128573636941994761882676325577426299076368132352094321625717101278196341743593494337761866548142031957082009607000961979371800964879254371096331369860991735133709185667451787140781333723257898318035175108880130183702367291702406035375678366974023235634002193813353584310778288887188593203756410172978064030575347804085481959683748662245953593364628342174661053753480516468994609528952141178584724302160560233799074928201001387386715891175380206533101104553501299419744243932778421917825977299820064830785310716966146311445805737392487687313823133522515505336276477867282833010274787001699576242939414814990219787028324183612333977608358850105115659517745154880631729236369283499578955750227868998686483415517080352028103760147074470817081736234781903650735011318700966212733944135917186797926041089939780279381554263163961577516494944259196932020294917132247599418686022868286146882568271507052020636536879566215894306476813260039286262925208516322442199281019138148197928117528937436410010039484275437027432105890235181842805986646588497017421376337959747115659086818905870728375052271765510308750960546440305746871961603344800374480166600951622019625595199911145656187559279747181612269410015923824397202736976943874825017205365899782570448222215625344733844272837670366801707146944503054284348643254354190552039130917579475991886308800239146552947931308317306687894547966144731661149052921410765527185662610770697714599535733364680536879181652556430281471241148869149730271583480033036881917693110263925678428417394111555985885585748825437960117820635811381461847794890397715880979829244037937378274344180440428760240084925096285199454804968350110845254626534165862432352648441305221178785337017296971434746531806221984633068320276901496925701051716141547497509342036569122061395882802326232812634879523292233114604251489685974486650911267225420708493527955255200223566422592616141292276666433313758898435724629226856013141302557487365399103404491431688539800315294817709313538074975907980957142890530645233266140923220420542147170065330135410957502270962120290900880971446591848029414419445505672568494698204127522608234296284623913862005820252065457122121017006921348735492949091374953283973684196573072308630311483850002232790084027765365153785487686373418217885617637993203856184400416002733072845645822262100146553324349521990217424479870029191440817191557549772781133150829752248385194512504981538829537440402221210365050569796527835793658395119961540455405591493953981206224898649722960912259053669205712113984511752364853796817420031030467205307434020728702960150256406048295038406991907486289923356958613137726499356678066928360247822369107438951589641485910610754290661704907036507560605962535863667339126782510272411062872799876692141165975714209742968452885352708302640793088426491959106910429780305228778342525210262889709501843160287268010572883003453726390332719091211611772319530943258444887256908563723571916503280673937157565963840913713955875645891023306680477415512133862477178001817630835591453647962430813120332545566462349247895982099457602025871696663658176562033044423604739843027840485592861633338434463863443185375761413209900819694718902468654513667997711033905816816778174021801748009030940222068909095611028052430595924504799762401049694347286858681715434141747998116562540481673188387768687012507750416087260522051706446222577200997992883725006968663505684650964687874857388339081708640282666461826476025679258711921167164947305136055717539036017038886471520041440622985222413012130400668600803704778852810308248544800553927270441705988980123577957376920082380144625783325170119801359407089200659846153163012921210937231771475479426815379424212147379278290927091588074309617726555150895880355677556616439872732370323101215814276670423163352197210114536214309097283665077239280528124350239594808261952444820964072715609660378240916969341011733567581095192838637773762592274983570132553169928582153660165782014622612110712877339203098917258476073236222805176700443734493312590061562291913565686942047244856740647219859451887016539929794541840159564954012906922079567461506367378401255616023159380994771125415886233435884023087630807979585938858368428162087695859959102460215419792009164679676487704191292161780833947065051282332444620211705496325002460489059986021305968972262870245144048416137426035706112523624063734944690179528491107451097905563852266614791944566201390024576032413761705880914737100295809499910585826724224132277748825468851606323351283707396626941957708183958302467990417378116430357766516817940920793200957204148617791812454706394474812646991303262178630037804740910322517497445904876663698055475967794193355999652299096095677277148555047478835800267183803024435932388966187043189729840564472509171481544583244670291672344121019167317926723253931982703613424600861654018605055475720914767588801292219980237321508330590546574166851331604359891077253504353182053614985745923178200824251402607249859729286291798442068796338254958551712206732059652584684163172399551901675738234470001585212105477677380322205686757860609527319724170707452855088417287697522024801380103391977445626453557413048683027157210259331484514410989440061618537474389484529386208477663537989689181917446565600648322779676656542316901588289658689480693905656852338157779401430610335496854296291195652502141140241892431269828776608313682186362711352826569985454605860968991660991763686603527382483359209927591542518142613672702336733889674641319284013815301664827372066988898456684095472189313434241165681439932320979928439606360825105472123078649791075202998023894560399553280305736163340705592664084864376565275529208786677070201411827131915407305177406586527646838234856285049746830836641348452107163366464651027074198468535574446250508781009187252566922359955137672887779961758596968459989122009978895736732296021731794862217734185934666129445331157551205084715557883263222977095206960768405403985888792312509443321338530762157055827353259107390715454080909493900714549623436680011993720107934850902277513312708684991566345641894124742523720011474456228760475603407310916916861376055697804944249208463694589641537232389416819855848318499708319289877198925522590880249729004757086399087537946758679496987203308290584432619082182283835898274455529525877727981578095963463857746615172958361373284669586122303725519601602699411458687825302721606588828486068613863520196315534702769595455734013429194133140486402582346241753603096697798025987543626271662173759142875142281625354977813867140325993862113911224026256002477140136057751153455593082745105274462184345401306933526331200286574831308133310455698969725988088765872390868842936001263240956763662942304911730498520398421499890390450550739337952388833559779704564924779139789104337782193907732584097916118613249373924928616091168691636114503083795168620930123454275001999954023504306412336776069189441104441765076991947781897997060749006150375133996043825999060206518575284556085189286768253282629803759907802328062461176643635069873830361978251071329257854418936962947003709051683147331354581858535376393387072542746972875191091395214108665523056211562275879792744644229053221994467544731504171713692322200197815212381229866137319150816495855074664494351692880597645297619384518082755368499651340030961974833512146584688285905269206138112615210967841806847840379670832099391810159400832423564400230695688032734477709191255095254327913435223027444586165389295085843030753557304276226768043638852740666751085247500156255625422486287431854463355346031390489570292739287136163233259938619102814773071791733139877851836371479439609784507018291691400904808334242828256419926950414834435182723526288666995922319476990657539834014320768322979043807883018388754836995689653889351032301396100260421454440613068290579596912413419540183404675784397510736185990213005101522875901056178024280410183802776451583954625633530957796909206992108150136827801859007671957173063437105460394860818437026317207486856039911978635787937676992030591506732353021806409844898530903867339514356592313220163314834275224402147208215951960551216653041583569459992659640065957302872085187167853141240909815574319930042137907727403322690545554733473724871317299158815273990748564284260924019842569136333501318188228407324054203010714834520529394120481755771437722446714155361147285525788844578748320900379840018708906970538146549845261095003509433188517184806502691305550322189263301134275032032149168863055481610512997879532873860435271467269955364472652007743393820831385231757428716368482635852735597550311258562809281552655262713204118582874403305348962968711832000363210546507719656156393111854374459119656488182847336154521161531909361308881520415985237682837571623463150512110596706332356955083347513890450381561513533583929776572026202993062012113213343002517170633744673131324857567879997017670757134493256666929768576161507829600178750554240377456130451454367025932043317583279036803904964001652504928386350862768643041485251635096539307047653003516745645018163929895780917628033371480924528930968039838390531278856220443723288879500565570932167203633423756208133046408074469311670636610842645666644998965675737502615682548482575865089512695850567207244417220576316850401630191055339593115309392910906950316407597993879929749712631040420396445635497435965796575791418904023527928051851974205843300230871708863689108458798137839111538204634246310492843799769272658759852685477572558133523267138918149514445255528444616712256775586540707276854915020889468619835845155745278233668972880836948382513332872336909180216407109165351668548586238727044117853323497593305807194589154996651273859096594798393732176838106342403954210897606006955345389475988530206510148604500783551366700678947854955468265031828681990044690861498000461977939904709654474242907600867666289117920840892590796693432684126773593283678109946236100400360892542219084021620195677822050629834955644613857699145115387946805381379775097703232228322129319236451321159767021897529452799354320197602424373680275535855023433398748660643874715448019708480949336267593014852074729387351413676409102629865434053204944637669754056768882029771623165890594569096043217062009533732417390672803186904567547812427203069098500980281326643108853574515092115667931190770953069911260432339418775813987982236153394079758437725966201724630648744067162419641081417152378527261648065795014748967384791909712201026839214416430334214207094219214408463473565232559801369801599793428397352794191034697745612585355203168637409012114451576982745900162723307860031101930486158521920686214819135944898860808219515447831375350508361233853360831626180748726904818981602903512649392613921218292701968481849450466969489008837845647430388762274240944944278819509455596627934302357024606073646580776009095680011289464110264222607333672515060413866896758604459646776792988194913714382223533654111246656829257785666178319840705075291038993370277620220317329325595055885388617930161072388648646148435696081464300586764320417727534603798877630070676336702907794988438646217379323669543999368837586487124059295415184424220091714897120445093570849794102041652311945725657436095680219833300616360081220023663910241571748107809472270656099356630983274545643452987823586378055260526654266858022928486889835053862031435244852076440043833364925494633646329676784260419443275913089820910594834975527298729265410645156256511615898870736272723589451931193940045350235015278535714584552967845891029688768644679226152458432079591817053559160294490954941162853998367666546567585316636869223921322047944269904967195410729027738336724394072775147367872145691604563264908144361397549500661007358314163796477071894806392830759676597675567454545523870597816244315421921471206245291727750379083506234914529005699537519600743315841653921587450627577405370188334818836008205899078556165049994470646726932420035769268091535044129355667684221267812778165433778606610998596472005689232528227780666461921111232661524237765677754089412306237868271466678989396406804692672373920645015972548892208305659661783050782300846068828408709684839325015938773037580074993177673571745085343005366673836909619539947577969751805046138690599060518056561602898818264659473031674410685119436502250442304070212756339901634333857176772778790103676572813695719688347238353310650528776651877302369206729307620134308052626498706274475791718315674602982673066064962094211230035218673417518082300866111871421373957147752238859777480675574997808811193528311301114631728023326843833627952195705592930643433712695825872449367350328035640664052514181600032919493790521466833407600930117241721132904406203153390048859708812127150394400774791151435732171869296504920136341117415821217665563283219015881074850828114750391498544286126309377352069937165148382360659401634612464942192429083563866443758166237988265696273882276706288981736950019217889028012744336375712214348485456160044444894200383472651116679767508377718149578682765316571288517028210932342466030255942316367247037686153876230300058755780819110268758825643598265237280288084472095264397270472851595555116095498894146228477331782959252775815989843794036893697292504115578331537940113597260179572499387200641551439954148119105946742901268884119356264410373618040422863952634450652205351524312069367430312270524593742301976471160606325183619773411635773298716007898867670146745459847603843514009394350005960528486612772146608932563610366480521332672183032548467184087878766322307668079225255322988017072666349586068778079376548175448248222131147387431427695549532662957007115232611091026074652616341739168395922094989005762333714062486141311214341060460923052121623247755689576572345678442153021292252186944350678344227441308175945301918304672318907492770574761373209964081045348088159713986652926598508158731584663904015816932323272921056745071313466918264765554118277672512454440436102814471903326675313065901001911852661918657311844321827501031896052058876175089038306079441210103141989229179384300543815873245961163672939100936595927666292175824795282925523481553226610790805541578187937744547997357444868359272034261757918691047468428699004165517172784996529548236417337990141909636190772081917201347999998676004708560446196324768846896917777441435670189241381000038830064418411418558130877532927310084038899427589099471898630227471466857672990854518981215029659628229452260470930094402712789477143971660483718364220541239949119673511759292486532199236081444595757551984355373721738629838812440456256673295737709593510384018193389283836035635793577639781330779543196550107389916271393056168444001536580930395878503986196233246923561637722516216511819152010494795985899873468111844739420622004067029633979008381716200706143859527550687168996339824888520262566521184827118182665323571956194441412705884810417199312343579862931794378787721576931125406162715786622319929415131909587687432507063698107168351812427936397637704919793485791034592621989410146564275444198884938281111687738154472502299125602028665400833585758557018726339762864055190205745885228718209074321362193472971195090784918303936037123667910646534480864997457316505019202306680261995073399319419991528652977754308465230942597102457149918988750713338775999936750616471566021397416592722629747184831253149588008836766390051762622245088620703843300255169486767693884494786078104614708456746849868012338366637052279582328735133139136324128736460602610264825160853221330897463707950154608851431559361988205075520903834831943011787298832531409801904702654073877342887130568759859654034654381702673755994569531372836541056341713708263381064684533841945008278520092988323862021996080228397063105687491973631519924654521475060869152572520188030484950278476068642016227046036216112532676470014390150517274458138061852204891982383170501992139961692838848978621583059915323526414133812740926164200150469443807821598618121212847564773988236951342143641056082871034971315504733184802607287824000846591555130127251563482308598843933289303489181314868097961435941212739389992818454908474495623767319018685608870017409682403490027131733409925835005382114693009017571586436272191749550674345357012708577343302524986670430044332544464136772050017510203461161827411881790023119867873339921161725410288021785268534337587930879527229756665190022367472668515556031059410342160388937793641721274820047265326975194327687820821117337649679403030523880290025698633723244490330834632430418754859044581838839927923014253726886980544333344316755868189520415649405110736728413786221392758946405252577931847549527426339379920086266268818547675361963480168770720703508747217437065819851125352377408987465787796754682317593774060737176519523451800364767941922016227350501020554862992686161613244665316311557157640803194055676036945981928737672655417002708612335839906383280006686254039828481721974231749169819164429073575025172478407589395957100808627966462604002069182283786851600499078320154095421734964126499453847849677579781426764043090337565048490551894527037335641692106397230096563442690382279390858567332820011017008906341992713592676720411558780891471558951003227584626399281351024714972455313023677455307785829719489617929314482715701619681265545009614483900602698617850854719520031787667236372498817987824486225973864426157570215821435992073698474423339647831111876143793437298274335263137801652928807597739229610176274058144367705770031025993132475838994521614294249713272602437446814304318701692299649204873011844059439499782380304770595471361496474599132929799205212982190160557699941598545389619640352902572512368725046073646507006058439040374295944779580186120206916772749862210010559751313323770347585959883565775460400962237350787960343673736559916166694733936244385769962804746159634827007191563180926034361607080670152660590132468402297461326506829188471451569442492951417800665059658395842934121338731995384029470881663218445755919290648727935017126268544232713631152300589233453911796272045820785324617647401370480606432046449248141202996980963903346237705214601778033895215461514470485142855403170404320088396585128463778561813395198338477496384047456442423432822563488552911813951149646725023457257856971249418763729005387074970448303136085802307427858950250504187760063110399912106768291423551582205385874564197071608370633812411005639760582238519402119298026333555131564610816775476646307883796020948127801388073583879480457722940123174126314697985842487989053647270393199802847540410734114029933530907669985099726215884489429415560841537447931305310527051406175210010068618543796610142783149108110013573858326410331921479208076396320368445046729560786221462632941025370208889584934107228543485528496823847610149623476921790974674796526515437619377865746092992306243792342526284375877546252424503498846777869611806245231691861250707175822127242100851423973540633529241806917426698958312267188664007351912149452284633015477839799035187254676012468897079843159876002006006333661431018449821931363512961142877378356585291771324305047482047468101453861937151711620038966696012395815490975645931408962874169044072392197574692647153743110703426814387096922668207624233600537499531136763647577379205813707825827019130134352496892109208424863507292078680838664463390339680587260114927779192858885159808570643217358659143044088264410579146588204216762840787651876762442968083616761068218035325994885819837001740733640270135438894132843538303488501697604954209102264161723177151577534207433822128432912454889795203183202769454313514083514728691122080585461153862537383234660153639086851013349807983038272437832044190370930464975011339005134318985758452916188610112536930895498457625542198611009372154616610121505689336070108754063481651509382653278644482807775440335260396786972462986805594029879714310348532108147982418169550553991049826534121318457210975831887893835701255668901327193909088507729382256992922633320073470160186015651491674342049465253317361953403378477470014935766702188500948741007073847859645618082638665353169575297344986804316896556625286774549680366510909831051152213760146582908849822089091158677557325142889064136394548154914833882047774132838554400784527433604363623944336161584967030456564105686104921248342547093668459099336137531496165440649910438724243431136095278428379204559800677827656396361250011923821511480240175816978602881871324003633239304498081814021327429356509694548168674341397455548869875937055679961625751363274764706036704318047211842173344799815800925457839053158855732579493017354362643582950713736381057824537714398141190477813658442619151008275793452467678551092254722076994113881530182889924562612844969774890374538575816827337183171766321102802227336446938821311224648962267058033080708138382315739123737359999979890258988320514618657358630805744723109698248650717334416015260322594998766300142145583380058363960584811813286656481098067360072143246574006192980890137328372127927500644482016164921196887475468583173078694378243617782301169523164965715191943941154435008814916906348808370597104517559513174127200656321974231940106520033494289395139977880779857520008295061872381569843717074054261459899740659404532345521343355999395940024683244562900237155615009567441000565171685567491059996520497570573455725319560825269270585830377495625037452061011810563829417202025025626266536189872404101099354452174962046481298765162603882127049664792727470338290295138231410632648819253258403605296234429616493736266615012515601111768000421197039413813424049060879364232997719229813048921096688716376025383811757408858412756569359865571952133710867790218413210816830867810696417443533286977094305221462888739495139580247722986185818527010389110349201488450273796311680363322834876280869499107131164298100819650681514201084402142705451534942242491445822065888559259206507313866527592748470425855040278429609140093313749421512681308548597228196123242520738668699047615581428969951383266091645183882815753564526648567650077093017456848603957519269779750929133412617237051336356619037981362187027037451579774172965133455029840715111536830414915392932080304414003896275719492446672828767081728604855499391556653192529712424646673533730351991079228154589306752505414251842447228311432277851679899873200384650336611700153697267471732312653547073736160245493402018257249915112405296875939194541305714648211894538411872929569426342485239813470269901517850012242256655996074707575862667739044395083718764522952407714743523116092639076460510580907668078746130057311527967149713701659874620172449403826306115658359984771471990192584469744348542246142847057566898449583943125374842149605966679493976292596423634453106372740028538245694410165007042929517898583775363811733010878437187978122051477082063568412664967986599837092376516491502061553830978614463721452470164044782951492072290759485734505103684478695928358288265304362098001901118098854644425795306915192562501348996866287059014582460562627564064737714160049165521287444246834034408030972977420828389023169187242044378252564166604120025541864680811719555395086356631195571053879430361991794955906167044178162078350408970882019315038330986451540620088765041809413798633239298146880423928090416939264006389457860985522695973788575235228541101469778806832077258130752471590462211314560489507911109299197204960541112505324561835585576804454085197651246240093537022231801790209894525599977173467018970457789111104916296352939476783593235440853408538744134880355769275128546477701194001866249267152997006730635928746812029685785580920740934914634761403836602932316670924152337347832084294617974499987421614216780763180241982192610669333724432980944655870918037254309853492892059803427443726240452555873787922290325535561218380352975826758635343624127579416267192077621094655521048552476886353214266226583703858746256983876512722227521888797897805284398751309389678506483580446357221988529618208738360113688039220740634677144204236361623213461706385691346084989731750119134880217375420612123493241112354489275023908102943338250597172495944393073644999087681627886414758282589454530838422279301712722841986194549111987413642082850423666514292761909869166131875891007137064290290599983888088531875335817674130248832069170342416654303639130872133427781181119475082395591395617771512948314381671849734505685166127008837036661556387855416303925361013581386454525444573607975619992503887673474936094296809903268348759671254948418480770517323549210660188597231518426410517941595080771244642830790221251149313173437613401069384929166882490091015838473470359378184832519075066956577757459807163171337843267699433997607634680091561071851253833009382680663007033064877113294505802121516109996261716526324643104317353913778053672248238128288782365252225660175091797398152110557098744814258900890897364830670776529881338207210843501499978565873806780754320633123411987267429008680509025090881472000822541641833901069072578008295914346213613975274416508491550142273664920810235401033584974533812022105225239416840765519168309663917570937334111812267296321487602946216670283862044281549373250975405160403204287130500595434150905201383030807840910052717709547764936375703019880247035344470856127935346565932263263438915067663791532741292642168449476575644238490166858008725090640508433039466426496381641271781863798650178392171470486239489342773461524110361999335499530395476873462434605636965736304714222393760702244441249051781580576696158257281500641388918513142260841683006438604524703093240227364120930005422346771692901355056900061575988286273973079919823058464053442797273907670151930261938256439069074011183383462977704065129602704965501590907595644554931298073039290076959586132037201524193955922185220778609546418395984078137615661377967206014951594236472680960104674604580597163716827467438352766080760100057133388119663710148286193651485157427225224392892880027878187849606107361842477511234146453042665136890885702405871098996298168827527257929742236628195018175342321564730699764066824165134819912625102645277042491229395401081457382743824712069039267148271814816795762284292881719471691114728587831792916174093658211081083922902415336119051718875198585372138734837360420018736123619487173237407602032826182929736472755515389578336456256398743492608871463282502716757461022558937310711212886543775365010081741931032867638959885258362971837950713485531868969932050591470013869137723147993204583531384210227129545427073197104735790215668650671884729173787018900970516681481899243968918689670813458179117175357907133305142134470031473043907254401080615427722742170756225803684495363592432194029919257344951438155167366802170833470702670011575412985396227561412105382750495025790072060388303655029016863419306492520159074129637984957342428919854151188608065499127974080606650407984700826485640218380432691333899553432028318605416788673280650598168715280742567141725549721385667541382563199430445837772108155886237073520750481795431581439534428103738705405225319075712325366499414275490843052773332756175817031857696966221671069387864464205994291219525886880517930415141139658766791831167826512618087996879362664942063863349714343295164671957842909571965685013367477260973028419495326075034191101294085807957202651033189262509838682979381166499580582592700324776761064303100639159429411478215332118050638091527901440318380869368580262695145806520269014705918215069968115462374793665873028968764868083423140936882457069744239076195424948309758972357095258832086838720205742809882231354319440839335155686610971931847728230321356183305194937222151658995238314407135035776137225696539152891052895735630129001325403330802826124016332618536002447207053714696417325720744313162114060596056919090906678325438404109884551639322916792755039300264444081379854013157123582393410207447400739201813248579109709230786103189976434900762987730983566712835602658335235592900744283710653993735056186338938657404416311984853532707264556357475576946809706659826290286770830709652840426100123548193287176101164308916456354656281265070904241097382295294667182485855216672838126737613261521284214646604663148035136019107982031568215641291949790655100752601053984538703285817334405338356682240708311477901804512819972718017487155131965248804749767298625098290778804014996330924127604488467798517852696502113137532753314274259946048316575302027863632458155950589324106015336290822395854107489806990842761536192552937895223366817988917507641611270778893846336340269588552289852412380603544688486154522031137507115563641673754219631225038718481381550699118786316134917097725081396150064349046340864527367306733588728303853704653675775556284130663402004007165340098126526046151448686129231325978696909854469723605321507199615757929065923074987672213520235541377593644362418174331010404481055282719695412919334938618728841284056388028310524047905181296906715577535924860810189850181100885820198863274391491276935887516816595177751081386450905599686439984037240066451117273890756672908010220495761285909328410593887976507729272614987089619559351540440740236260800902769123437712651166003786479289025695572243035950829959334627721699597833138097334861247967809249418053647735621496349467988986888997544582472064947614835316194868627503336917935306402598541278767193766879408485940485391045295645000783160763352294470115569491088290584954649021149116032256124561627865371938913357320079607918225012461421671865915633504701211258538525901667945739962235382430589293225942547125131960275703127572489656363647873306923912584478784321564468172319215532581768974495724163271372591675334648436768494284612931616694355395758480315171038918475470390337001706041459142148627541515814455478585446868360845696624062375698710236646761764877707946729576544805487235454283842759489516207843353267658687363385687258983864799658664439127568726127215100959195230593756527977137394914052466884230743773883734354295643382937183347847348187748071264429013668056761765194086475283956390449038472692040384627382302796039208317047246068811998854348417013839192028595005341736647859099877888107928342525126207836801642437415574992736488203312618514969170079817923079339299926626009705706014722564655143710930478904627024232759475691271658428157436202658377078352776374728047005255825904701429437443077204556725365487918574183458374580879502992824652920945553410721563008721503067378118430062670737433845790641839933958478095694852645563433773233293333258854095136585720016723422473113247794258459069345669304377730374337897375799246904452748020352182982138626257293892043696007392192140885397373539085172576408977764077160300476015044257338029362584754454753818507576273361959110795848427712256956675372749659351713356140854748659837689920330272199118088450569572988424991112158203794285295217325495361749520868840774991190347895250866202139286957985115862392086877012811272417831761820174733543516872090361297151663410964180879367724972614060431631535390379303803661949029770446348616812628841478293019822298915643881733606311550108459862116806059116368250133258532008964128226034896750915243982395410487504297631348795034829381841963336152010577482542006251616722757315820891475897305176871929375421951953387396031494223776921125890385428237069442870241454918004497499456233025577180853911290635444867581363772181714987576799332884826732700735303474597637378166739845336720060391645651726083407950951057585836775554744999641609435355803503098054596521322333095224690017547422568206625672323908657761797355795373609208526975946646735564746168011596198032801423900085044679956025988618952734953393519547929862173987903883598750124143298556060399664406033092838643505144802366224467674054400636631341349993030869188574536869408855839250682919915152737800551581401095421059626805333150438352444506854714655160838655386746193589719571933560848168023649055147140850582349763547630933120251567121090848308429148327960767288147763874655552463960374150571655002687136901896611795140351383416819612223704929765719081998063537279939705686877765582976872976206767499107529894128833178072551711273324582803193442027142791351273983516492531621483297065561661012577381427340572277158334792478039207320512373812478496453450914452431074071570853751419146563878783401472538014758755931618612707397918547993448338855769576378771190483037990175418578237729898330158336694318886237023658981382894399672498413631484788567793571513879112975638247275244171560609861606074556803068181869257506025116316860945183051236747324242878756693123686789174899415215203399995896442821964642565896140608446503433583419618386647159463710825709399563260837304383826122079323335829035804917230140318796612226549891143105256940043410952088767730794065672417704875818702184887516155739487469329274006785715349173197730703337602610311189987149660917836084026752573182031949600727612759448198672507892445067686753751255800546768534408982048509043866862061091596410341079795375617669039382597503299034341656189313488816339367106728618180208550613632032341183853262546895766197593978044063471324017193209767358239219409106649371467043508012471399455462259618996191613703037145208875521560688859639416370130483713827469784288515174662706178652764074465966276742132817786105637041631769808666350810814538854734212674192284624795914207334059977134045926691735873168510401982990915596201470040010767088651333148983593520819019651867250763582846006895294073479953707742075645148561170318873368026020056092062684845145019808577716865869073654637588709803810731000040272706374145540308616492382818717798009436511304826468196682663057872103545644936485250395501823153591844633345743274259595346035509299815998048267587454633340255565527613236906957951606977830784589434896446895721545577648560416975976430819522165532470294511468983163287288058109300526340749479910056155107793048333383650784421148938868194964751444444581104715418964755965299115758862018527249678174429527882457238458838369395328386484298170161496678846528397638996423182478355002640095323306864635067878026165786352317433464334944883611578919886325901409340549584951429518779023749556918076370694232220503300211522572984332849500698890976208720681101437702639117414503470547701474261331357087444553267823262641940643767029294454853296887970480263703936652452679882731813200927068173245613446393528049850461898174113286173541443602525559867301787376967582216148413093582734130065292478866748666256390417187468061469767797157241300031205251884902479207249093890115122450312785812223349075657392945118540207283472098218453235837564946070669541586026471259036148927181674073192519559687125010465051260183946493987812271510106345236763665659467446387374659312824357982676769590412800675580326618426294152863015928523404693897598114704675026679123139510567448217232032911190718970483922603096253961252944652641184149769412098721066037751781947860016963800031795426820075179909652694514579714850994873211767561412465562643937919972388218233893329451177325317504949689532255227672620375471888141126811747511469412449477973833316948667741027053090566493874284325817572361858972671877437143138451193663517915706680057972816268364891847197690071342560827390438206957694516979743557840140892988897358078791822525819205319890507370681877003895540402351453813812154294244936773395052391928543005625276897137501825169047867956285107540087765781520293072476997568551384001762053612821484928112747330780628701334242447571254978494341471747327600273797164175048820835304017395010827093394533825181682196161394431542207682065078644981005503678260969769994061216516443301235890063680729701626340630946209290815222845745206408590232554449290919319585132803281960475999582150055124939678556981231843658455841468913484669119860272055957823720694210494605821110519335795662089068788656550998441756188509705544197176065100424473374461112803688687536328288463655123488294300008715847970609050743895513802959581140368807099500212458132740338895872807491093308574982076175445700317428743572147435508323500009776279422406332798462357979474546482190761148900039810857730998496758432365479711546653827324966375640665050871525678975247134200323570038982963663376103491285521576060247941503474418419877923569510207817659345439087460210085565656987727014710447667419822630775544854513074622782717763145954111604198697336428547714261673993870383934233412380400140360020889572122667338938797201247738480892223352356237059024526922638070141000402733699825082121517221532936289275854994248355665729909618968333538175214697020487289570971284144303002573263267471669602526476431877773090146193196744913568664101359348154677520165330472060420274004839598280879244200079011472038144585901777736573477785689327095983662842280346333993173813376375652034767099354729636108661167220806945887420876947798433958748476548250686680072766802458627587863012637567136957845970997299080760689087001798067406161228551109228766535987558184078737962829006434439897253948056097742437133545699981002037481801740317724107604890802971002463887259114942415602047025064280408236356791179183285872444921251592885671647893028773766139717286562617894548137616320251146329339576029378391999303481665313568196567874946377272328086728989890747289010523916542402254269642001733710194561351845773872893236462451371212626009552845814300921535576243031123774309813747519589808193041156657760709788745867701038459820191430869283915782598702121473282417839137409230041049199920705305891861140460275314573213279588708635599739253072055664135950878275413011305342334422326492867843970697270959377127992457047123907912020974674776625967671043608864114016681390266825677934739666777239084489465470409400565558844271962567501214993947321580523691219232756360413365573325510933501455515058617942500113154125036200448660810063308234985933492786852265215695736859789731464636584122334632212549843985772951181193305502415826601735428554566026368034484835160699958396289835628001404407030926345734193427942103535948852408800990157106529732768899144609476237975268897202021920742494128886186818068165513027005245563104735807075994182067501384464137827051516787465848093266818907412118864884231584689755300907561593537851046148933362961170570081476619259657778355295068997489663822518105852037534290482769123380368502976952255493155110762128653451800823586731331777276101466892899245410877507395331182612310832349965211510214954127671629329200857546506143548644031844012345210289466186727696138806648556537836716640306078394235265719575363572508225667163082563616405607607972417115007334539836269015624413029629726485136579195281731011238083869863339449681877077337417280496052371201761681888689008818453393086057536609344478692590223418987677673408228933974332018577642912583330627636607717636729868186066009607574854318326625107208019824172609755286257244466413703899618515815522267149364666720560994129697086671915151178226606458137218355319522712591191065931430918199979384536940698490919783045705502054537843738809624100604555581547710118866077153206294074540579387314107095832001609192700449019069421024800315974469124716697472493048931368484257430828738945072934439186396789568349726588037684253390184183474735288662877744017116146136542219907852417979164345956676174211103017917232823632817284920592478474918661071376776773549066522705077928730748845877256548607715526245092048920911878362074270904775276329077341852239897639516334719008450006547315950251852450985065295506286116689518952055695440849156105907262074793376072934061521499523263117628702330369894618625996351218955711734979505296810637810868624668279150161929663282128840642887082378661302943001771820512427192517659444235642274385450920450697965121263706007977150645752976372738775947813937236326537279694822022953723180234524989822557958538742630840433308620440245820128516453469516594812368361282983364975565105950426186409569907838801461284027588598775862417377624084918212000861464928800447996650364253078739203314600272098963545742658022470486949881933670264688381370028332813642766273197707449836919278887999704651484760901652863843939677818004707805161032065818759078420237354838894172816205957073450734188144689673324514423705544672269872870577941571010916617027572118290981134088422728522817493393296972072365780088298306707769505775174212136938997223649827626863436801871729146018274270932108214126891603855502741091332263046226056771467114220527830366000705786197268788747011464346369533539635375642378838062930603083710818568670673951613865389326903190834715003539831447259294354010198749195014899146535365109118247979129319484989696037386370854102898639022413390210123977062668693889823277780622800637713114556444494378844162132479682280179785741789562856557128457771159912851825993779037866419026867686628026847684072266805061483502651140598562574564545179624677124429852022594913654114413372823690408117545733951941708553667699874671692495936963123732249077235278802115625248449469792956818323958840212825049740592343054901952873022114063515946268161312166499033555471498312290681678468625437967229405882154250955641661430696160789237091980138618277715663565269577004555986782712036143656001706151976316766193040261373856740172065179597002260505972572196404781874262662026044279455084161266063064506867144776596050961136531272794143610563134729106398400915053232737130366491157130469907676035332720651071907130376247437284093015267326330199684554408031161086376802197413068402797840352719969132094086692439690326604291463329748321266520874456694940931465251014022752861636737813293355860747183098652600489951956102608565382209199706694160652437041640796229784628065988241620625206986580320613837404993549714180304113867987471515966529000437480919774775073429555783833801580267044434448276281668625052007585526063187554594998837491899830797922306021071788578315688794692357509713325454809221350610180614032087441081718462492169601165035850754635192969618784578069610892078714607900545457815146121322867455092939306191080277944999641759742640515696276773555376941998686211602380366397369092764577038419520939195482685634144333893714907335871412614229867829339312267645994971197587047378733841418854281590774201186631852769242357291694435215879957582720605619593373385516654565038723012131435183940635927911267675934923791796643310248969679485662069714266507764331997628345002363137525773717297386935596422856482974055354643180740084188694683692562158357834043810973468553704719400696796583703083482229544275703332811382379166954310940039956208372341674948427489462269726121483289792280721530378937661330631872188216722103163499622215557727473575676837229243820933619376937345986323333401707136091463789970934251705167072283070244611682766174012655669658356473320554524891975038540504527486191689743279627612717809410457632099703879835197436433393824767627511017754520901659687082223893310287079875626770651042949352173726823620479609165670557197141434068317812883973278900484247651461045519206378694087392680049190597257049656985344523386474586052150646845731643376201161085884045047980541404137220579953786362616745804587448309481865189365150319269103918401606578614805210014793938411719439278525060992976024327416024477632344122720734585896481250512816838249532063580651010995529291873297502596765772778543998034714161104890909322873692044030282943166007461219329330478526914771512197892855702440709386649014867732364924736945576945959207538873553954765146314219695393345143107730979553646726421705792740438548686071913552203708911096372990655626798332381666381489844768684878319297089201800619751869893119386270454764513819640130754425345248383828966821065383338429424750904224899498463152008864248183942216928583210739198629450085904725541118465401260020713182446429486728916178635276026772661366568546458562397811974763864690668365559467585253032417891685603239329401455824502751060450875955105156879934085231289799397526980426588038009254716132628355817391024508393691692960601277059241018374557630859456118750836231353822599245520990726690047457085532613813746270067702757535423031050725440238586965160941980594655773134028069095639543342907874932349123770784741623055564157179062306957132657755655542752775491813675023126955695366808186986023655206548471458957071850798038195308405928975436541609505503014806994379877994856304707007175501720999980032625171982417191644198241960514190218289517896399857818245017833210579121506521800798047013446281604218331756810233441702788570567966655667951877730593229107074187827675190743317118698658264002049972555504178791615655771995717039355680652417105314233683351761944665134239193693511111952026798178837987997484160378448392671821659623206390561097843320959230134592724040662021178647820568517209058385169293676809413538414022460078687917529023800108086958332349182076651965547167481114070329157402798786606430708341736982553429126185437914008319300970935931373752812079224226105169976093273431815230582152637826444307468592516856860082296520942595896155494386407892043239225712189206427263527822462469605165366212930256734702704688961302589027625589930829020394998104142624963428021909187806727123329134002724953094924432695659230891794407628747787305861961016118199009640307802435600334155410557367866902796338953390975438661661071360414092190117221861719948683724823180789879234058771704995293534085993742131302706262858457230650399618706369864309766613421286389152586705311854396083677897268259191348507825164483171050769841055721752311322566386922842225946711099297290509320350877405284508611094498772270379539596110052815603541285308344126034434869534024296635819406181452801062659599067592126833182822695898379950156532647218062743119933448801893754416495378076085345579526666321886231080095875027321083225569196066828931358717833928255622173457009745282698414461721460374236650295577259179626443307005958444977026994471316016084473902210341056301977721563829736412961950492951096000406009883404057569081305063963736058100483004853959032922849167229613085760463377832877509729611052059676250938269888620042591608065107568160673108688775256151575572733734644111866928667766412842003356765146468353400572375745169723523481230686871938049623649582797800439228237189715097741638540422552767814809533007742625802629524230291251367519919410830786880343663379210830187670960183162854458088050220501726543401401554229933408600915290321078445217372605311713038867025805013322260617325050851645664342088766486778955356562670918064954226107892760844507315162223566334565844675574477177230343849604318029471681050555365874706282034047016109887273002490548113376140613962053892745838257599418661553342979728265338710131211392606583268486038125262177215332293500899449482604944955691099104540990188638285746809979195562867126452868887963722219827467786302171000395890002547405970725295900995032922683804271902581170871265139465289188896424767304320659234089460326090275693624501128652824708191929771909480633526469408456341735719633291360922479585564725008159387894214881069194305646867461092181552196274023605059371437832116453432073825062037882624820816538291105301273936754507074702190729936417680233716443194377028577173526029093860748037971255808642291253915139772042578632955530982062283773808279284991688180417182386289137190166997217096224348796774710856136985176313746174104235523775872216642096907979440804023212074187663257488624378093664809214114661115510080251947516012145319581969581862200804075332959511361368480849673986193132274292451866412092544166363575825514683395124419907726581028194505548392783884614387851119202519607389473182316362422660123899966848358834250055159746731000444131027891941416640055545948379717651601990019532258700324232961662447792715419738480844408961482099892896608126841123052533799421009743921621708848245199601558727906033614857502762396349555700296184703953096250331407639254494536821030225720226171574425207427050387735037160004923249845549333645260212293688113815590538171681840485468585846893682150409841467064453114070170916507589297738126309326818053534138962433732376048239188610932636804477347584461316856244531003219529604278484686974555649656561797340626539494122083370764780477094539499276219752581980786518709683091683309941531965382298207113305516416083914148620122234336857606109873305488542431199742886357559434346699427585123240293605702166818127990472422842660642141168240276214188008574336236687095509764729519622835399580394740765068895412272364619753890441228504646835861069265407804514104394378799497908029645797575633291680487475070810762891864275798547944543587294935952265932276491173953904527652689875452522169807949424865042574855325580995105364922512506884248493713818753616388666987590339240911506709035085579387440398222692213549834612127462258348375870870057881689582506309002385776322171425074659298619267197696596416442844721184691069228030414627712269687137236217196872126797105388661054558424289305707788718426203326463394282567161048765054170656271257893875278965788103544769171326320597028017047202887686647704841627602392442012970364306269163662955327582216514745267971181959556083602287127331996245800088854348613565294985681311706977174246439051401039353195027999649204688490246061151356340490743487475869917839122103315221192119591630090758256779979220002578075158436415535809344830239456039402075024767973397766539399613125605421527718403427533730119942319973485033495227625005134118704999056535814985922189814048262243412208776395321139918700909384790185940687921390185369824398632583087706447451756145498960629108261711957263057073089797592793614870149451923926775294397423609279885858606148331893498717864374843011639838849819367418541401237110270060228399200552740625027514968448313933185756674199852679506903582912915270949881259628638711446045724042460548222706464677242288768565004722330132278600569433524086808564003644335445746662043347615682469702783041502362413609771136408489062189388546564926980330863536362332046128741606009233903576344603211228665539051908124262828012338790126140199018364349775521207785492150576806227018465920413151066235671934869427703224206213195455616487597709522316465465734914103244834604131083801389902070910738997120035690535959351829881682716950525276286617503222025865537735993699184929431126837495413339646062299765980784347982576734891550137217644058408859884715950733274556596487195961454780113702528918151928493873756936709580152030705620880236783831030666866306466117201400660420527272280681817038626725558680903777440303516689417536165724165596720463204642934924418269561247688671135663212680975312927629114487591314973513973353044603147940676094688981418330456538356697608426571465114986646529749044259543428932019881322892115973444908609109047194542702205941238578883522280007867388689698935740129671568458797811738053964611745309931255786538336173608407662066902984522747981510088126197726655738303180851625746446859465190309046869194855498854485834193506500928144449229711668419382847871033800578970163235141855472848175683564554431426985325690557370508235819586237156394682469513676917550992466922856997066670782050297169006467491937924544418153355825695202121110408310577114378862341239439353929647835397711340150326829260216963757894659698777182675903770930773616148114451581530247260663942897469669117953668161233997462963645126855906811170008573404613812908568372356362484406651900632618626661194749409599441426744329833204503996142156524596101910256070583019907410135519239019074285517156553207321154688377385584602834332297920169887834342427315635863634335275431621027836320425566467371026873616027734726785178713756858717847198270758484960491439437228315857205930245219272526722230932194245604131397493702098592469966138380939426556454702373717629975601653020290785630896937826299020079735512381218905565835084095000622344130495674705845287679751125432583614804880556303865411096184603197643317051153421305080455492925571785536285207130526582008839810614965008980246905926654069598452155638462391577122011392150387122480480371828956602314240736116011765275798431581575908541174921728006502622487368171161036592372279935478497515084907788822866336975587993283544030418491112906535761730385486656966938988607663636872147375720603356512202652044565861454775516149678030833576185203378597680025174992812858486599692422006954172895734519695597500319392060086694800637322597304116388432434405435467132615640931573051785874468466408464249033815559418063755591105654901130791212401612248004428843036404927738610046577500403280724179131199861425957066296473541725839975142350576249027959212928275443189742166546092616561684912721915800857114073685889485671133991734059374719656625738882571404846067912552248996244912349464250534838805148891799145944165522137291667756496156128361648848659647407023044939212622186001080250597079518215167584773421532740602784131149409991999228349852837989886946056973323006979777176451991999639075739733226267068990678095292637446205879670750523455963362866149928187632434953723178811221021528795202599338165224397986707720771174295747183676717498794934222819152167716143285615444392301031987784985495014539031675731303104311917515890802107097968278465541832771651926333421023236212469030061051641813170293030483880175646900986979887900890792327788169310447578908138834556727057363114803630103919621959752590665731473858527800935930084738753437155286066661352517758833408469806786142144995654211190686490237472745665225254026686109484070564677520523980121314605622529354685552724801437445821387463399059538965414743779325433123776990225684135044596170392044293215182101847538556479910872465819514643051249563083523677516656700398318281384947705329491325248000251949902447361164110278523571069666743725059268056612723524857380458198268962503312233609808471778366156016097590132555133350106567939448093725277682333566457306975947362572862762927671903871322494642243376964577146785751299472039214943023493698462932887423461207938665672537512704331438742848300844881549872024697020523622533024658742706875883530374948160610687396728258033813509222592991184668930633821181474866267479203910096682790009188673767795464018755170508597056204793444042173007763586040135837307004483101890949459716804943463541019111587917836954778772436282807937063001469425156544890685003519687217086439588889894791727304622571864324932154862252429528315887800268369807940586802442021583685585095299142980814628422537251894714249283305839312477611945936949022575275997627378346766343412818440461276074634096489300885907358997614100723566292327971207282970604833157618717011259380010128362761277481964453433968500843779821122681484261831580506289343206874799295009791512631559703305499486354623528304680437486096114643394637775881141170970623453712016816612454216323478185149899040162565773329737808098520837180592678339946620436521481295204197677616349265585035266990233090312575707118352663586368796925713045689171429648321401504319230657410114986267872822969071475901459909896911346593631701454774708727762753298540396016683335940070633788596648251788762823991535543490021152492136993860766512821326367521174694533622109379825256624696720546689423910333234834558008262426585086532100672596195044974877505639797439501462232817278589839139837838935473616805005803267921552438302717948870045158636902017925821974825384733221913497268892825540947340646946556059542910713425553438038894846404574008482594368080080327793175374249386430134276867735969580482533190595021815031416375735177436233286803997432070500951363998739808160916988827368494305346544797514503790146511508430587318466803655751846964702601508902622965219636042567630350828683784116430360617828065532769488659871447239119313224965291456356502889533075250121812485316976037853824697001819581950984200385087106226327039838498702161579795928164762080193646948982705268608416883438396336374557415599500569600543312991375820378423089161754368354256768849362673902426714567792818431242279876533256671060424311223535996745139421460865178351711877526817306661478997988904169971241465687345346624811163765590960238655529638862474941150169844534529603675473937633961892990711568597597264933376524281210686444224749907347469952698682674623416180714803776366095439926110548302606840553862311380730485507223224373299339590364357547842527944760499017062569424911805925890381392291617695113314768656736463643310666521452375778700799333225761830358886954599772491909335458927236800095654567850108842762819365440574271313275704724821838225913769781752903374230111519421945504418291756137761156295006848481893957701783876501249399972540651201227995532646117760653767797687972798142290490701809842935383629309726109051854459372266684495660384756428079400066006753123758553157843347358498185987254463549165398778500246459097869700117545091119002404930877621572416422283652973574971466923876348629228268042269642709931027413726388442237031601473727233002557107839871282349117153957722886173098644109384772135359634018464902498474584474518755067336866158004882568365640313743652623321765650129935128750507545290564155677753373102650579974291313265098816855301506125772355072368777909779640578725268680216768025441450169732439383997300665682781079832639340619140033915797887322515485444662934938847585429217328314430901841269717823754649101674209048016316870757700554202118376253368018459368172464201872314993807728518472183090565210079952909496509921125544740015365118141574737249104564489476499979503506270073401623152474097582367029477666405421522918609106728946973817615770283831820243621751701789988393377338025253899508664851945025420050701829661984057568459832230337169771828261177783391560399739276552365546153037721659949954802994538365743170196086906038905713878460425393059420112400531972067222471636878334069107659262943043087476031253429172313196533334630377176839009183396500631631287834404633965908911810415801757958300145481444256602239447045116137470885324153518185529074371493195129011038654196369699539970434057127385073403755329717806319989539348484555893450184065508935270104355003021556349364323099279732498768737262923459023872671513956743799268397644961923855037085463818250934017937292334869986658980740058366093831730356437797410840362121760912378592429852570688979943482105262613112234779049980991042003358852842310618995387769460975312572360481640510358366007756559348200544357269866809902798692227382797776813845052449017051053285204465978436257358422717046538289398696020501174340900744286757902844134805186709871934205126869390113503107043746595857010348881357864729884663663650842301744323356651935484631374334778001454897715224488420439618127788876381688801561431848628219014247621840241382148412315738363553302496959117962405271374684978083569715765113383874718047666432208185080636743995185718986631581365967508686075486547308703227874328470546232535158694374185736698829131815466999915133311438179501793402114176402933863680902453218245748014165968718739858433045695203843448953023358858155681911907749042629263509922069259215841789711948572152765850519419683010602590236340319216816152341702170020816948190069979250084000878646731056218032303302212266367420066562865761763764907502328406396112109800292290549190402254339293390470283205329233836626387590839983355938488336359444687451261104985119357322299674499813368383638596481795093887348543964090778052212705590120763737978968603021455106844180946662159556821665322128524379051005687214875705032986873650103627845930559652469666046741874213351991289388233297254858944486602661566796405716107014105005016197240879986929069126213123387305898055252145008904781579361966337460934374565600718183064229905985463933704342660591082595513269049857871611125726928624585611188340440986974069378848953134438817434487021016203914236775297718048541366428871372205030941189781529260470111616849345712606630885936047006922764487457655697794661455457872680109609595433916343264904674427822840901685762112025454370974206280984967730572806223440943419396161246106152370049799076360500690627457784106780638823318894091705733049141532498853774779679674222640813544591136700772304577716444183704909051171147993754658730761103721957205027118237367217615554130871062039118782935009854606699681725792223781932247960386185898247066587211113487550565834667912468231832687249372279244611146935860468468469582063470990202805878280997861459757981330729096943561753138202352252290834393160415038655166946006379591886245199065682671645778539499009040385915331904423843789190449698900644988832523065727179873662940421810986986369785655951859017098441209312793566540526133280860518895341341735202747509061401382817989685472770114349477090135838779719938391383054130086767329704804975519775271040340312412090759888878351065934483120093232142687554417029702081085489904439512745742858569746106616175843638332106904875202636300646350064069617350763219176694838376865776761568097583436463280753926932939654772442576163359360559148333292627340885601683194768196134696537692827659630816250134709152618644513126864124404319134316295840622685232165713392539150392300396079194178360985136934029193799447978374829935634464645811871959586407738853305792713525362292945717682626256149229294111302405486365684294062719022800990229299970079270442101058875910844782985344262810822217562752764820731801291642514332403796836120075740110315669374002406886263527094079923151914631396300009206719003078804234819583975531374061499569648287747365940861384692184368124361113611682148930585266550377819923280905156541358268900545676410372827265076812920359379554201964868319079421638684070845165890199500109834368959343944708926694516021581864456245846766099606278900197093019703046299785277321159679300540634359662950704847854482892669424625675360777330684639807719288566924375419032524692845841280150375512916657372656787103056326213085633736257595347201224999046157803331117346843215361154114819443597981185661476121121456127017724097199575146117285442368937598994703892600839661380571774651779162227518144050030594024573061707272029932427201173435291802971444075379802675083406858638369673243630629548547858103739860461099837273307538572006127183134405718103771616789421884735231563731158422781957119796392273334228598188122966043595650593731418715773541715193270117535971700068090479867676154435558002019964162547557130460090174015068210232981387498734741198831370626344718529893239086260675629170400277381641190048459393986824811245400417041106479973701312099980884658685808774443565750633960434614538077785261191124646392448435486879963217777266950952072632668656584992155984668851211379475470217764487060301555710771117397494186073925860591843403647383378197782115526854946713245899589805152078400905526071262964892933765345731787991798050669954648964250966496361231616757831808132057364177321580353695343300556049193491809588573871026578775010159846779025515116242683362299458430761153419815553888149786893043049646026564531099326746231734001996869090447197909297050192309177492332723730679115691261884572733712960758615178338686027829189599066538538524773639089526907708569242467880010886730836589321401740348562183027240747332503363652248120683216790739958434967034242637297184687273640942928854831081580615842608152217906271877278704843657908419217767965566160162006300230526370144692811552493841926091389013576747729167933651421049355877900658524737188067300486621077537788680790017321286270904323833070529353738361061188282646072549648474604934655701262047210323077821724579163713690876854354306752058569716892386331935420828233923652764130854868103259028786281881505849440916113253995275142176680464355124172532425610585151457339662685514499321883134729308863109130198205529338932000695155545918396976518906602684883581224575270326285293579236062151369385837260118104539495127958403938786201188057543134248455145896322613212446376707424413300723779256759428360074715445917275297309185324171066985727212722866006224120692463770387754201016795612943003402961725454044634895223453823441490203809544855851722490153371013030819680690275138614339910428288601259639093249087195738237520944144110901411952367921682711963165244021841234053762129121827809297871649211676109628282421523495292610567541693618554152496610140342829761231945545503536677951306027068408596931977133679415646982268085989275270556762888629879379632656791470264365933090378091518222266046797028925020127794558764829379730392641610130173226556516653764865864825151261836817614106540229466025624397623692106147545701034068960143363761173328201364170484597013677464386992696225226446963072742943383275460608634448020972750123451213971989244253718917596350285681735450994217655204857343053779602646171886733960151207095306846221344466924836642164893280072760076000245320669857732976383497399116819412244082458386758807669489425958287815032152953054862424221918956486570265748696586301083965813253113069134854038239656110504686650476229189055564855282858541631673986147122483489106703630335810180026367981292303139150516103181732035746886614448008463881293499173009520193590214024542604876518889682918103263063456584874996543341171097467307453987656160176939421573383549071349448422154225566578241014041055240804712461463725699784675434693249055665849443803662567456770829891875652760833731142725217957169427209863257219647736956209014854009961889908520989534544268922649047164416970501705558359792361124601281391581130653474526535335093489894579417601787230898370664133901666960920028005231679975378187624031091052969032456704605843943144216159917311951571122606997515879317505136907926692571595566490537844538521709805832012273070310652962127612245988335460630534262289518723535873514886551262422295370191709166355750423919285491646132124508420454593590128474647581562915282419053915832112301395772440686634305318177222581919552774174054955045058266750507583419156517553534362991913974205381286024620423940105865392545313350891752726798169648974359807773997253649450653774494673111518974169788493164786206006334118624799518633799368624163269512304803462680112887330182509802240459913180890108035827455909038549940721351871452021739913573849775954041169765579793033143427656046389032995031379477073976231485641486541479861759455295189761453473886228713974460753322632104390794985675639047173869251153868660028418722016622805880947071902072140392758899449010909979016929064108096856249365905072591812071816839491289210424117502921514847788852370395943341610745007307075042180865302823991166395407832170845450950791699729604901524423920196817300695899055427916141712946421534386524197457888156550973582415490553132611438692840884681351812446005188564658935580025331433217479378239287143948302756981197467235341905099028657708235312214842904918376533430425032796274629915849927030276493284537694123971256868722915042951263217428698168088255086460320050424333756645793632846303524393073128801041504144715239404773955663370945962195111338616138624336152450838421996164102676018765733125009511149893639598441299559698989000345405796650530615290842511454191762058700451115666199105559920052355262550243163768693386425958134575299349751748477570677192427396346164690151959602414643426034866672852659787202599905026447975457021409471352769643309839871889659970849591812250381685239653954038519394771982877249918510745057789281745446165756548216994574308437733395151806787846983323170902150149537704061365756360534833203289622850666141352396722874417131897900252089790855581308136418983409703674675692320716447449260131070485026569727255445836232860708424919462936904925901120571870541715531972938626919094626519938955658751247482711323200782391114129228268239720676959888383596603121781589465945300444185995828919290282229627129607981562689220022980551979335755549364578303901104985695168140474916347261901937188652758536142098849760255001706266005944543989443982426877389364870255794887767380027970139400044498495072079174798632417929389430107293066352856373155336228135389483022783598879559668346705773863312221778482425371003289918625929296347027127702719636496354322152320475699482781198679679966778997219637919906457362635371167263975126001312248050611251912313612987897560166121179997582771715501585161621700966624936559913736080523050529901927201524700162851996880994514701091759030042050009707586927316549528291202310504540043393617991205548293420371533062942660803952550353840905322377272526081289201090412039253682880296799285707816567690124483228531379791821465201727404380491764662076701017606736459490606978752670127315474372089389120898912614226893862112550572541443929033515791347045065418803679042961032100338537339076653443793576309757849558178205454553918769550959767212752070348087568961961656447017508398644361597771637607032370957566402785397964819804699593044022184134418603335723708343307910208142288724953108301439694816709684130858656307848473612575152537361549982318042239237923638250240296365531243881196929312411097872472098080709437997008403745051191947973429897318927005328609357121887843617146534559890516861253873165945635512358157366625637053666823266530042948517844508421486210566880217242117006755053794201662179912283488417594715417214214569096117357102982384680187092544803370021312608244177540386582356725018416903723097050414541676157356672819177114878628092736417685763197026663484677662404291238965333776167591285567190876157874162941541326199719388748956578241477020510603112787696788951490988456440396313495202019931898311823852039461608383861355981933720796172529120911351746527861186102622970897799507948150097103676605074295296835802715973547792543479004440818483545697581038893084438992731303205055636948701942926684561466128698659159619126459687382969470185362039076539008310838717441604177079688174382766136555409971028222800652891491034962047029898779694131599804633629685481917456097401056452508837751065364837591459043937692753750191291467993341783465111685122210071654829327512893284120516416923654731758171748961375699028234877199594448451478368906142120484688111823197471962526766561951556088152345033354827274720312706799994003120006792763611851206949563338446393566512082275144188415992059346662955310966794767896031727687406056457236446444513188045093011824618014204642441543861321084150837172971350091671044915799092997731257996826281131386382004934799759403288592713340967271977126355753440401651573656279976099664759370883175821985310368706728764138181077168193906766707917316301576865449170168048007586910115142662622686174064428403429324546072565019734697675369700500349190107330931652702107982493913269614044284461682851209502220386194941506407530609207605335434574977184831001884298063447288466962186486546850478693592292472422686588702245804011020192002756583285451635643981580893795371227142878291169428964995043700728300946478957005066217612847613825238524498159116349074309510973993016616672750899083051916816308187516888043216129400131396478001516228272042602588421183970175218478954729566295988438220781412778659285424274318681357988999411788724039907519158586001913252409972626606774991150028338156361658104016125361885754746134964628636293098160920713014789699579202129680354496195147166144197725312567672526589266039053258149306614752932047156647264069878244753688762717559777964530261201502614143160190035870946274367868135016202336929884796556881693800749581834473040609531600704531524118372688372377668002887860348834020795240455213294705912658097657190317374399614931878038954987988101043905494170956861225147557300395876214330386520139627874201789496188953674319042883403635783915091090851578103164537432412734448829090832649753439457991534829126676971032122342007098330936371482092798872453895461451253661390332807079385225884106126530352877339785984364429174416076954894739829093337972896707877158786387300607198592664160144165309115116074667198746219599531560833485073658475279812625234693229054003336883840796549962295622635731814553044485082740939136965703363146730140623048996005182582187557258811669855503825390177747619930035849196483337636163077349276377830801558956932828775109500912864535157083488998175249205946698917733041350972517181876260293070740458795960713898418665029165168469107394115948194142050036730898710901061090837359598932917475008487322702803215191388780192162647238750713899843797241676851153606794861971297887902608978164184148679003257446763446774705836350396663942048651479764579949654832182159047889877822975267329324928821149433575734076885648834040779483792692583917441362896022430542544281286987931585891877831322145047470153397270440404682506460597057732712549209665815650590571165985283511877413856402953765772934014117781674994144630192209825578707228507209997112620403236608459653324711705264578109170524414630638497277290999757108406544181480064337147476757692057193686165813945156373023490462908378863322602657823472881131963102453612649851074860803983579750188869122619650646845310417542894181949714997203263115761334189176187791119161889166743455154720781681701922269675220639537604108312137060674290503165029799943104035239296734931475702427629953664561996577546471093055452376757081590333685680562987303070217984809420048280582372433319095559732387132281984887782801411449399530679096467125767310428388875186756419716662951369280292282484996568474331318281463782189326040744796503223936331909616445772163282239974331862898046338194023099879065459942056385922869498288403403300939917678464453572091144701594110497973744405652957320828171367417841445373553493331278512858239518374700853067122769278524902497100285965523883058657055277434288625063770661114364118530235999048328541907577275509529939859672520325396209811072186564582924757228498461179708545337751146314418356335710504227458570341968765204263076751160465055620907196942712533234746792622994927657643264199757036034078375871383827684155382750289148718287736073288287852268143664702667169396850667459906544101308113913323413282540459157112009224926222387366598197913195079086738088785485481403152394483968847771563349368092244752035942959988219448574107544611362986490304469273764798756403148122367848744632671494599209192547884428002990862987283653817246170764097954793301613351833402842956971975431530526219233142967359082535411035700567332164294660242994916264833723717824289918462769820711353949378339996498948401290155611855325741842257874784890813892374192333016509351137719131165901849489089382008610728967424269952483941620998122937218598303549235312828887452192844443415903196942445512876452565312689776858941596646305097830837668030807468916770600144603298182014166820693531967049467466506684086681431773408563114246988581544550483782459902729718867333275481914823766933533185432969955056911394760166422238183973080448960982017635140362822759138691290182226755633039795189771293773872197545307652570336662307905676021520429974323491700775729616487556843607086937736148721090666012853579592843231805662017527464413709092803951269974606874247130012007669108567447169514107139553952525285720049062188422846872027071339780854229648673724498073024010375511436527277479249013449243528203201983908134856923021961361841451532679238310049950977236558434717527335110542882155983717641427370569545645742166318977360438197119653399868844826434871117014935800049324742811706152788054308233366768731485771652338908478022202524516605433275806350078128305639884271236422007775845026955789868541152309017072529011842633022003909340910663227540730525520274516918758058188152622727850233705549553834000861970239593648247132893072302056077281630035534113251425989332746293978423406413987642578864391234857634095527453459565019177168492762355202942237368198277659443725809435717180969209843361973154046976146280867482349247307561176636088518383258151551916895371947473406759584198625998657575023512076971232503733552395156219979188925656579819002999424035304149681423927779695113447669702273248511143803146779832690125049009768888967873910209934841915093460084468439656905987072744440776440624420347110854554700812989788542007015099185536406959942980322733017810451727503094523729291244561271397304175510963159340451587470121136479120240187936811306981224169920486640494865151910163409246365516512232007865934441233598694085630680114325367745516708603753865129378610321643767951138990118466405787052606120439935306098369623799175549202669288445763232122992004445302594047638574400340612305420677604052358282298426644610413286978861622265085137882593487389052140599394337775277204180928494740286849115687488496406868967841409056542368821012406426878258405437070635747278461780396068969774586104209298426571779522068530094952204781633605149872194349618736172067613226418856706572129471907735306609967795617061046451716388511343392725417004217373398084248839111781698923237575843164014531751047860430943245492507741531194174524847947119345821584463551435821418301671860594601324697306773181768768112878871289043876275274294150331894244447616346013469783552324340697110676595946471753605925490368260208409497931146613650744285258366840909789581318193032007483770449296936828178901919820916485023836662605038396696768789770683348543340391638710875257899680949029381492364053176163853213534294285850709883427376042064415636994250739735802279250568307104693177400154315678143108471378394942616594465943581753626318876260230932878500895045042056115937054432776850261136244886245746802475946209788357836593544968459341275073942209719069082666494410931749521905804556177711185968544772134895632555851965338480607320999127293574864640433682720855742806695015646153312601549686302549757972070766433122748133083973078620714544624128382244073772351844179318537099626132664735654155158787132952304844077762655184590243273659272076038411270808517021853820064247398553146589119247324287826140204824747001288402553474065940724480543243588139332424874444096375003982662212015017846594770028479434888048435721970093882284059929221266275678087197081202074916378485348659026144700435368810893637064462753976605863142571105415885960977504516372599650391374075556510945756400376642436445303895885471772890464766513313712247643523360942108636324470359219060588373042639806411333829776503005163560527804226034281290740271013387411512337298351985364775924932900522910954971491055886193650745111178973768131568366161797117737478020675325782459201426419390846769814359211354150563720474762935319094034442447901365041565923962512532790530790333553976323276706735816381153903951100458232152755054067433424510805997216476991941524836614629049793088674625057326967052773557192804403597524415433267040502291065336624822284916014804273787430516293115256345145451043999700844344279304702860683748563425542616560740985434568483668273586090514364519156944236849526029771734532823184016041468460175720747879648335167408716507939342210010587166079061101200156341757108556371352964086412599650679082883612787159082792500038198452191281374017718700631262418991883347112667512041543279394367716283842811616347365982982861307150073620502407182252979105941126176848219164845857371753953879021772001078762296829815416588072090685960859333101802932950513134932745135093993963791895136224666500952763866407890778459955053490880261795721459421233638318143750192999275237361891662223898132619630911723671903931699438453878093078344734625400824909694566413151305161160686886836188525767653553384290274952489542166222505080781297327480904952598637076641861136096749862317380992958511346061151172533171715177432676049761622267274612094732127780912240729228770001611628982013847025548828679704932089136022715281047426746052688535705374827189166114152822839255625341352000234627311148002863769468273044171137539585579929372316137763659593936480249264628660559941579785260877670095216780580035135610569873550152955782994361678599771411271359099696657191992836294245478045791814614803754612610601331273772917791623212205830847042597181499255485969816989960153397855408790967590628064653391959526995007469420197570729990801489036653574338055141318049245857851946642944196989694062975667738347581317840949186174972937438526230013541950620545563598772232867809505551040406079982240743120249020099258736183334425912075526054315875234631435130865468004018492486423188365214398438454197941684568054896636341456459202747276819964694682878320737048497901107951271887699014964366352022601008173717301162021826511024263149171054208153542490035725811268715532221063549786611594338151916537834242422357156182458328859346570872526544117526193073085010327101183873260505995311516939191214198371473257115297888128984791809280357592347636641397002523677689950556443990677466662627819254945844336173394277658952255741740740185908417527588488361450362512585110148564377704394292754157153545216996600515026444679456371394111295581981832061028450956907739165473485099199653660073415125253542287667188093656561394744362030457162772373069470606710765766781273810987476079697016422830444315331284885403190617159247436001173195557222106986557083297977644629078853943564113775205211617320877090255585705467764137900090313724214396605670305928223203046809551124822507417170412355759433786799768334992377298557952802825610397673929914142543077993377772492084037421498459685241690525857514099274724738750211258655520571802750556801788615871445913787257253646256789592023515547044623303880852572929130438519636008157187642888754797253660045678098883620544178162664662110679111576773702523204871324959237673565187118131570675519570191876862066356859420088727179889357798222469105151431494225385117103313235199734525658058806195651798765213476841426881841374176970710196879500707947850548897776687228483396160448881879990536143313708446787042889350355634159593314119923722291600837265871886341276312168134179103043624072182607153147591760174719215021712760836738232444252155157259637608748870279548765981363486926784292642557803861787251184348508574283081539658446116370225507096697996470611744931066839560669276683580380948469806670901546037739151476902262068140197851104179635224172660479284715460396374830227563514548008513478616882453747840107951346016885990653791144137944332011280079400678386903461219942355974430756254886248400529513827947337768973860708816206429093110294348079484298851256316299829201856673507379330644606259854404228731181894996840435391081320019427385251480232538310271036439522695140259472366216643268344535460790855336210193877892322758399251157364269324038008109950144701634974437725293611976327315017779698537826917809655503754100801458335846421852727324771244455567844474583663113562545393181642849260602238674513881309819645003389941779772800714149232358245008185621616097252761405381273777091749630552964664435535240540291790662223678763557618580677083584688684751092110699857675669677832152593904532279548249488651351073754221576397124119792729951867325911277877369276140496311586061066092354706436202840020853069115454085098663151006299322153592818218019950474263164395367467316264524860542435377838221453436101560495029648879886290969614553295141297556727842337549288896674046058278940301931620678893074332186005368698527464522757993235339015435526288248805486197313993147592515440752227851904101354282490070368024760876315302362482363495574566351312044020572544749786700216026065247520719378758428506055222465261569968941987829905020601671090413933149178763423819360130328387271162885787802557144822533057205933595897551228762549772554141839128919185193177940541891806612006017317046003369056906138414930425067566311901047656139004202288218661745221637001791789121130680600762005322337295985284767346256261697016296897753998831026569595408867070724868455525038012936336460153703957153796578403330248642697375344947507816996471465250433600457434121673422971273933290307010408113710382284753065219354502065544573746833565388477304267628780640213905890768310994093918157789679467535096269483375735968983256188067028763283847255022348695691304509775287411964510603058721897118878329568602327842796474550805776956172451256616318855939936580502125215441208093075303437643121474424944904488524225175961305192894118309618039515114889780419058747427591199213540750511866888071118160901246598668501987975896651853280603651585366569474856422840821717216293578960102065877104845337755075388658803885336401262978412013706612178164963263372291935144490948034901491801432378328229498375678352310575414971375452652441082772181565722923376440127230518000287904766615211707904237583930353467214455644394569222616257798687465652378348683501163845483421827772234719530011036550001209472929688320575804526448344705162158126133596147971318285579255293495099562967528477152816412710344510289366046774554036843374920365691575743114420539862594858578904439359034177117176397434293988838006190872854414505607658067703837217371520423356378606118288686954182537398334176774771609070515087133633645411570153834560765012682134990482597052237213943605818071759821636116033813859584153932225227485156436800101149546034257101730035782699334147792951637573532561457814756304138670330688168348741580027789136325606805832140336978034908717917084576939910833145570764252017813983407330788266190237718962511084342105065187917105039875822999976745013272090778321158704895956057354236791741932056356625779062397495975684588948387164779147778084445936065064499725189631055274591035462741294121865347577034722191484727312190799904991249097266123140303440969693515708578042686775616024469101146742812683414262987273458569794729696003042395680641437033229542211849802472795135428965053132957946619679268537575140345497276335888164932293077178392776602198857196828537970533031721472688254871086178219119674571284366354316772324423528266059200064696626498614854731462725682987191097112113504840581228518612800251174094689956576314132771370821651872413458974876395405913338350789217941464264578087383971709766140690825407288835347574578002743640036755685075784667645560077162354153025754046091770739534945029522835030818359875492068332497888810603961187190193362578493603778449060903409168997656551562452836555239885185483868334598947537017433501107762892682730482859095738009146723763577283482839458333194043044095972936732990320002382161379256062102775648897266589931437333951217305229731732272436514479783722560932071556338983100133292821873500007101375716388097673835230178904891109876609063005741453253772948446418188707814265583932917358781964796470852392285646111573031589135368113591599354837190676803167527079430255386677599900976585306163338892096366961993155785092346917609873902980131604956707230019785628936408428447042640794026730444480521090084274018813866054920215847440058620550446060047136140094168781025457835251410071505995353749847051233474848217992621282278903567120178774667650342051162442769262547355618919009125985840694251490302608224416821777505556132069045099183840661663446148822422623569930700142497519777825330427573731553216129078957405208709743965510715732253894043825639563488504632226597633658027544253172754133195028209031134394336463526106968626833147159173742160463220493050216255054816563322180065491524303347516748497242631300468060202521168446926270268201515311571518974594133751718697768036497268785211794413152919107040655217294451001394652671849509965921060860206777735025848673387105121023777245143066691432909108596316472887664824025798127354613008573158145348628840871599731113637666657122467667088220130449666435417507640265164326378068703216826517676767858969107171242081632661749386075523822903618065895637506443259255622366916938664358534160266730621181165453557728006275625817473601214209715972106011083605200468432160192351894873550220813154736494056549987427502208364487602472265096335713574639848022485572814166561930726665113729456633471643129185165867283679831852596339231826721637570267761705881751659646209173389060657061216743252522649915853267744624063425311146801346938017330956209960508934804086543989506378659108302588051018528445200965602687198819042832367938150627648974558122424198075375377429507800774968795860049336919235462289782523490526596484846909497334913370429207940955387085966572869271530238317456498293629779086966497596005308756378484523752279553825167908966428766842918384179296647552795660618126340270201754489708753071366371892663861856152162407989379032423096909541123082042075584341311819121469669258738204868842358131787235611541251238060005510380057962073732637809295230497715038966263359749501903313777353630812200629965656332842771680645280883116376187179895835746955377123218152646416589797156154430575252835449390415063492251671742496862255529604143679914713657068933553117171922231544944160217636298006199890159488967444637761198468375963255925535342385634265752491008892104006459268440631368099865744041738639815286483010429352535124419220051586890518035574600917531349611690650000104547064641071675431134449991875021901701303208615053554293797317625137181529318410085818835200376641989379451984420282984451742335635983909337518984398178898224782765893230580758688192439552120496706307477613929160825752513933142655461047394451739308485976629259285334814338116222038616014328033868487476810614484446683952950266402263449545437820816025754370116731900040369506533371312599676220350744760351354350152048899453247219699552713246523425809109236568910756778925490401092639985330211514524813637625179142331136346615133514528274162879108650509886818933958474466540773300254061403896385985237661151204458415990508519068306922334700636698107125029265590836178892825719419137564197958661732710221934491284963195467984737410929463531062713664014118026474097156162589918077008975601884752962800866593782784736595813390429339644645715513861466052018271979758725558632244044431373208167088598520409692788340938494360950193762891161558702290768037497430947840209822631335214120765978372861360983757611935587400203701919828754609234573443344015817346824259622598913486998150058666332132203280901242107079432784871543787427890837477445596406878577068222951892260601727111913398053265182987837124162481843850775696551694144952407217446838548998181010507129396492974765964661548891197597266835110407522612824031071228534629572766860485029782686551753552091793388764889002996013299496062717389534393033754540915740318431987091817790302565455828121659847218436189884479437474019568592456201246327440116782340840631502315865991063518009108102534757749634493387582025075721361524603265313142656952632021736973916205576477171095907850106027799225223349759007674210980831121077439426841073807391523922581669415408617940165850201821574862086158681035581577546684210872228385813688864809588194272206144827994134096918406136924240358349696622271349307290903307752472261748289093703145293769733107352277406370128904698112922331970517316026992099451916877238712019976434639608740047794005977694250152286128102879897632277831878589798127899893062258091284033220734198258228791438555785203673532879371267710639301990609730700582521996940667902132577634467133352464195743026248173829127332298335564495623917181413368909162471045987722781448577133174688442794424741389824134775655621499891043796719659317273180052042127170081422511293961373500407296301075050357443077986702334647178672494955503792502848434216714250483899157440140929571424776150445605689167770722285432285158020086243505309046765433130544470267979590639307215242320477289760778735464029391162445403097167198773545866997762005714372505308707377091412160498997484524320568807002754915052259505948749232361817396678725946011084125662065131223235500104628458871406311386774679646501630618560568774656524317751790583390255731417013703088679732338151774157632425369541675882280611492143015283798503403152561239445151988791681232448666447600110149036792068185143805326394687483849050131123724754237538047666330170720572387578677538493159594976604989328721077321922483570116033056874590480521303034028349848819405202541972249792472969819769703628691591235342345189080079966703484569668598912891016080480170322046724217700583978809123631916075251663923635238202893125600595424496211181375580410631510394466583273959175134345580776579802447397084492417245188015872141109884176023941255656607157265736254134149049653985052489096250608030028776667457452822932392785129873175977823916959708435995392557805080644355979000317897022766130050130384765465960056125012568920007249958920493476517363251915496467575397181712215929720176424609184676363292995776378820657337103599312295848478282105519065732429805380112680075989066313037003817728816081010167190877378729751417942823978411872965563505706694477832288849499953086734712301018331530153362182954578926614426301873105506834150115350173391001339723768976556984709593247951068333755474769446739223226668724357786130957895465825108999957475617971825054818036907846691108954245361862828114276649151373149849487036642665847177392039490033229455259235253619343934076983032005161207102699254500766744625606451845734702005370323882216112837568280845333828978047683837374184950306272008600947349977103708682125477083845901289094689698802335583912283729363779628978923476228768375765279811992416948499122471053208878761182350231141587505544235425209191079060350591086507963226055290594594916385877005018926597699859906827204438368197700861325003171718574251474998358201216174605011616463940737590860657871907153338819255562285298533348924203376408823158167935234037497228546650333059165994302896135450418978521583574291578556394212262121530148636178514652874551390155767556813741998100782836613361939570520668349566653554632565932194248506548750576995812682122960438606732989624077812534715371363937772420212813552854180850887909995213243021218970951671730715385920088672551758550177710435100295597737677762744382847379340618032041588636563965346162978165886408886070263751054177587649916938685664677820582805298462881106955624846493811183338404950166803888283416906538196895345561751032698382422706910903999079777184786929605188756688458472788668238935828380195413353794398119416300921930925577686822803174959078294177721200194240843084961901669304162005019560123938037624674978217918998645432177251394794993212946064565458445330272052981868265237364974790202847178129552916499450694780044466902255282988823806797443829587590245174311308457846550729707792419997218757773839354616917655306986925713599510666269958482524696425614266140668494541812233072878378947723746814338172353282999555773724830490203707065715929975642777163918691140399356635629730606564561063136968537035289856836407057228259652066973282283441335666302844500878313224503868827159885994619931558246869459659655835582437488665162070714759938830352621528220927363743762002693590643341427893330854602752568390222113757485845762357521383816825867655625359983760427305781117018414594791699818902589339595690418178527646548998698222040003594984873166343297521599081211498101553563952625098296440774628323149291862887448431960030061510829195335708501405752260228260249691071863606938489832723423015381275126995447731796624749997540864039391384753382324682618612577457145678009920934763670352239497909512300391899278968690099196476396605369053684150171045601738170782092980544328697226048069709848758119577354412000258456019577075264066044411831504271356864801395270182542739712385379816754203587904762473299922239193442176993586611946607037870997182044379889535992328825016808669621562101782176907269939803038293718592220627604296545738120972672837576130220598074176708758877857173391737272597487074004462956213258931957365542377271367967579346736944880271731294760443807502207664372823574351730018700497655435258390624889379150827730227450964462975742871610785354355077142895379790322558016958240412020753845663761641607442304462538932119907171885211196312552456493897382327975823875431104378027149963040104331265921882555290391538897626670487835202108303189051915820525308712211688354054321831761974719966786621192708571910782115101140884372986585340740756449880857688953043038016851885943140592134633696918395510217112932224070236445226394103860606040001066494881081632939662996244386766016769717230817032465189893838436411766670194002784392078468984820498958271473009699759473139066386239276042028475891778036075783482839041513527824526955375574538844291028713392116138469434893119593945826545619234571467164445999410874973363700265852682778744125657340511013827856681037226933355581136669678868719777884022646407482497150363415236265149202640584218925242255249607344075578828039154615746719029156145873529273165099916454917655326619583381131142675629817218777182884618257100902501016816344315784394550956911367810849765127773834890523292557823820277262424499568344934564017350178346082013020329906842049502088522774219873332428664067328662992011928693011166729069757933868637029196334937996226904226935670215475462740632965385106466467872337440900047984732895538928510152862166972152226694457797189008058038860551222291927722784435904434814130101122895815809629340950879747001435069304184532900114269309175868999789991362558157059274102156977850219690198240940950207923178768475840813293422437546742834264949372135177791116116347538923609962366771658921074018274922751968892859328886263222749067900546635405334823815479865125842506420862246227420652784775243403158685109896930680937777958724121657700678824765297364454877034704317345628911746460969321622499317038903414341157000597526098925992959669416228425864764155501227911273284882129871484368164121063298511380439387638395636526019870484180337471215991546023232436136535480244217309139791530312120045521368670789789041576645959041772140654549315817250115660869945563582821187337551686150910937666067136307136940824852375330217485453547583735100460359439111746632451910744847160820017810367248316846161597675834680633706574345757984299579669773528071362390265294775436527959943851110612452442731667288719113189011185522394796302223484795323223225134358354480746203080633669129931430554956222428114746979203767181242314734513858520865080586457747901459274759253971338276582106307049303299041828576985036107624776518886051849026958882875514452592916058952561314211586897430096317091940186881038011574658133106528010131534955817119984154456680792042340009681908463840415586231479545072950577321177966962620597854597508835870313791791422365979888742760524189712986266900843495741896757756961480968639496785185439411191497295042822197971248987496893799286450781538623909545414264324093772975391731713127610322900962672308939815427593719112378614520132428789014104581305127066298607550405203145796090084853606390673023960523460328352623848766204318842683117996862785316201230392804906953853893532125277119439446273696520125506737501142785614159062273914679389168852277311538214496523823195506773476286032387219770100429757689817269049386197475086821828335348608651649861503191596175741226004952144911867549957894507788981580333046870373661024890674292511397359244586114382292928892653763188500623118862562718078010466643292627987249368099941505781963466343590653418293871971978221384603203147604110621168639281697093320951575833298615323825737686750132266924038941003121047861003639117893468901877940878454251886486148838850832808351148252480496785076780405223436978363287420231187459067405821135485145502262141709864603307212789583565282062452210588634270132251003933422419157308912354578196515661705768059743397645996937907040716779901024818108165669851481581953441711962862906304488489569518349158286617787369781753568092204794387320430563342767725000983505583024893195316719417216100396715578063095483507839336076557718073914242536268083862186700910760708332886902551049339095962009699321716386501256326430423566950140216866866112936297307486596905521090668703302027539987067218529383034873266421221603606954005506657528150575524214370991708535240050884433480489017857169259423307784933927554628037277180638389853885072133162360707124336261247515961901694760836173696120065397799062018818629033230939337852057398106818177392031693333569014844134832361163020514930526626224671402244109725941878834367818077011365100270374403336546613039921381627689073588251350108713271767023212518348579510374178936391133579551701677359669347853552343232377873573000209554102210302975549681313758562854056818658680792799590541114218113245137301814609218620289788842024282991238356652481929605124066459618956539509220838158838149484316933475981017688152171178632729112668311061970010225218029599718784694488401210581314182991534338591339224668835899503344040476941271919655673322572980336409025197588250949883072865856253151443952569877593627751846058309926014758544712168331297170472345128520839516202090569867826148348434283398378476591260262317953955063176599738487811972421275199961463165676243645403053171250564519304801280057986921038703053486436836979706934748572631923804986998366705285730567181433442788685417707571188131481293824836595810178213321517288154915852340744835697169569181051996716203289598622558843952825740434644311189979168991159205493658905742568399301918343969356357427544734220061934094968043780976218709474554292183969813200768643203988396601222399218547534991340660999227177268678346374662549395032633139132862954499558197396558593323620256495118475998727609767627975253293667858235965401990538915298471406316878662840423547583943671351006799464430340047556261026708647703120893712359889944633889427211274330728404450366761201752590500815945345378308480233885840566109381834060385537730621484160745615916763811629149225317216006493193591180858323364930557830218100666457013616890714262722770910077168826425656456582243765303532203124487984087540406669376052260405299390899386575468107315751898056144556522058729897822025445026260525192776997836150591587171908215293961086247642906038077379821885537561902958539230610734143131151315919004936735946265174129014388209265418293539990342928493469146725979502463883522144534936581770413786456075565412768473412412868063235125137737192141902919723646033896346058425085612271480535763300876391096799390336891089631409109906457761945110265906446331366144801880925235446848358877881326591251532435461881089781569432189441508091480394409825110772915972850572585588943315156014840131117921163485173964771578718725892024665169176017372843885809506003568677765160254611750101483787356193705945477951417751882323640755423713523963902740596290425433694347554021320031282671458309023978261989914813318920478000409705780572599840281740031742629746203691592307575325438196526652413166531173833577338239682081526897114448871091842318627573357601436643096519253119088952654850344507425396500958230955956878843091290962062844952152835529852216116536970303539575952302020953923524546381724514893822024018741223105382860339134387589716841063413202693902771408957672637191381528035001943801799128609957599191881718199791551053935808969140733254088050300815989756417120261879897681407201503917189612094017685429679903997616798138810010624155427314160406574131911823071087511742369005086748250734790121821594475607291021199772482337827493833363410816522811507043186371015009612430582946233348113718083492976661669285808043794020099663911320594731612599548371648103645796165448478850376896169336363057597718172961457361631829565434304459537468934077712912729442151881044078322539412187990405056765342332005989583740133190452957304142403918497057105805235623266425253378768049335561328316229702506717464380484416002148880007682176429624841667506364923790146041283594374808604757150282013001290781410029740294291769560490056297344549332981989856629439578680083170474941918819834972929098993397899976367789051179529206564679272823156817530799525933485405713503428292267646617940643891066269818676324461492840207011563825859690698787892227828492753767550198109931895016491749083973738625382263524098427930376384352064117877696309747610490691790353222902718362349760896202960188485955940907055184360258194638767641290246419067749224907602420107735782478662628378074032989076974099522556881721710693296073562412601877680456115840272043899065783747184680587703412212680230907807041931300502227110162592683542340083689472850740688687723532600677287120068292403854398091673260804312217316121932328159637494270370192231017402303652565490484941966151660386585402333297490253202362897859532378801056587478845544838678271927408758289532221701002716033647590298245435233236500104304280234402082699283957372793885576818375866261301471127961872249270153393957461485572922514699341436553574432801320102340428838006757617540319034758012528960337710786366353682661793221969615902577775348461013953709845996944634235250919796808487195359911902660304407565856159504708927648231353348979292569644808227699827932175008938101987980730658342783028979497733011764121169779084324889551135351849414472259356995920840935971659580442376336067733800660987115522833613988604581011553604245619589054439515030332470508257577219007060620193285822555092555737623371275868316268204813915135070461040579714587991099149712612568233940929296167420247236237101571294887413652132131495932521905380448344403095462202802026803903296953252131103639180006019810466632351353901364087385957431300387112356642655422459467464486418187951997209473652968484356036442514458726953864660581821381318707298985528931384996648044637188904829429662363219662159445585108452187905574175117564922439303782096576672523816280435121593227708125456926382426487626776697002481401340052624297770278132633812468537660298880889889858052212238050410687106831284185753524703974195776763135115216612566601725244414582300773292146325024192441730870541648656116609339715890786810439518130584776896370011740665018245367024147056460857804892070266016361707668114519994231606531115493972433740516772493315444382512419641113313197605853171255227811484806871681289803054058955147818313270645633614298137767258585448545761852451070044268607950805867771098829053156760300579405901394493692714577072278518980709165214640929981217862493707693477018518361093349951060202476103768197682721868858164388390686093648511429911825274653820946644759486093579963887090620263100819634660951937223926971958125867657933426365971478635458080250625255906287541975921491754511377726204122039678915944265733527476038454869960880777560312308368957147946576523518756779633712717856989402410675969706633894862661556208151883742027713925275027111540147660354097881577734009127953492510422750273049170336838329753899431625203020838869558742631863809548495023056737470868721083845141178363918892139465377162954621812171150456059510845107107207746741188028702509686338845822139750950186257411646980219058493397146712531744514903897741895907619954115139245991666945001938675776288787166276251601982624846316198110352082784029728047174415336244604054931260646576792384130986570616636464040001346468795540103162015241435932792924012941121302780583856448467086510909578727152711055599788154055965868851055310174874807673543581620860779256762410038729677659401399890349621577580439777626523537320343098756296870366199448655140989893154029687466544956905256283094890140807287343937570115475718139055186753003499001552986964506436302402447100921420283709558547443052659478036020172470876103236154401710522782839320143573456422960561588853129181333038300456458229348089908703921483592940042294928117137711633751280554331049070534734809738341761252054996203296391277075249612513944218489518458905866886849447526974237428840788483105888758679305249545727414670076406464986937095728439331490316807478790902538486716397668004603991836531200030298760438467489217520826275682596241894458349236733263125907682599319070025799255539696117282777466234751971739395523607492211768468176807815201685353717572766089699735635646363691841651337400890460058699781236750691415435379485076423075607519554685632817770574510096173352004514739205298038633926479211994939112581508563280585010444829861401085575492607046343167027444102432254692459865945464616683136042625398063629692184236644655099925489084273104094416647576224145724105066999113417814353649721378419957418265436792198417519916799475958957859438821321677704277981975532412128074871006253220639101313732004694392654253578987283322961670825436595249775462016768236558175895225084011653524821293046270221137289031537084855203221767240006210685367180326247700715663917095170515823990248970848065566888584921531666082065382890866034583564268246171898213190675383430063848760116795846269683718788995233839734444344013135265005924229099419828545679814827157036561562313266376273157153927811069009787453046136062587652135945579094758201890828438578936504804799948360595754833029073969901412419533301200713994259565993656717729241269618295748470762717294884641356042956139724771816527698039500394853290944908468123831447643410372885200863706673092711043937683622976264481039993069533279173721358729197271116076491957659602422648010136385213270274446320943783478726005907333511022411093178459724683142544150727743112544043457458670360598549446390754858260074769903471780051279169345102990229359950484393581450430962846182649667185542314656950778054473895049626539510936228219464334032086062409950211874355911308225527624036353434876327246607772669582850561441692466462109914805057009468743327910300123398016719699638214775377929981063545851844069688054708547566990598054414871773674495727601252810723044416981811424394589684344736189358645760215523612594285371081387470295170837125049401067895744319182534066645221695358128014538363798113905306943460839292892595031663766711665409716311765784663871027257866338089727951636387826927496679417598120069224377476320513957906648370644118397611979198941921468574856918872950228699632615926606757453669737751152957392317524959921287455211288227603110677093246211274367933231513846761684735057088820806980659656885232246660982447853066467964683190354644004017090017245798052063982337472875350525032989861665443990616510972909836172780849895540262582776666753721953683560633674169984212560112117998231052434179005294763936564216738025163865371293729063483283909268212885451749849191308018960286402606446677988130726533961627503492511918548828829283279201760254801934239166636213153661936747210406281294275820349766721501056556719684830849593245150476400859277810803024295182868069520732467155340031313169155571098265779139453997630097856543539045619465566307182878150848126219918380541048983718772221135615001660565680395932852476573566024613971411049659756896584481393548923065359816029572866064173206004387735420500284480057740812127547465093366194552164143034928524717630002556029933363671789889536625576310280236762866520030244065338811608736650170560305509019693500672489532702556061576047926236051426754830873110386329919330164717183148040313447105134232668859645348057147242223831077346752411929688305626306442392262660426619558954095096834070185316926118261765140858248516746161219767327032013347498062793403130434745021676645019442165660390830243500792046779322572887123593792324797932192638639553556707054495557759953437925154678722251090193354049386537665161272358357278894484183405027546846458510741664027948133437305120239051886560802210673586505839819125195460455161119486759066507478884526805861889752965266322205328173712896968811416620803734932418383677507707035146574510222982213398802910402057678793276116070011182422819862735274463675831961194317843919965072594978718080570598293197881771208889296438836590790996736500049972860104570592737249290514348595881049594582572647222591861910214205425015631811436824998992846373593384577094297403385363084249593164592843999700853127970762994127180394274231392057969336288341053224153399744291991892574310232215990344559134438664736137871628703986114441778133018854216047413343128534768937114150335372472931865812246116640646347930313684404289330305585674258912667602299238668717839603143993728176969540369299279700499946910851687219348460795268999119505593900304900149748562164849254230642013215118139444730092745517704606290340827237623883389762792356162562621158186354400644100643561351930121816067631920291219798580644106215435148918445234594332041525742533232483642594583535871943383389987234170233470056159629925569955668524195895640775839318938028866445730848125598282340403884781794392883801157543147193734441490740002345376526092069572937761006391552050427521588734997342460655754058236295151482794391935069096319176140340508734989040023986315832125192502555817399398555257737016464393254984421175247961445672117489737276765414332786858858412912627408529377688047155510440989358827121278192672624211445818635098777197508594312595464699680065835976099270581870512553090090418075446958041966771188797571908345846333537555409593131687845089154324100462091576710283599146344893891320587726138909723607648181098848916298820964849823120166265381294487591700593140140803067682165758818301070814678052086854930559234358942702548066018108809471144434645262591643606919847871055058014122490289366973571145357526403438944596086498333502716352568779171615460951174591496074768862413971276530415280765921887677910924811853672952465177684388207468258414194690919927135314232045530908081772095920115865407737823021532110237675499053516251934855252411011117501170275477141512095464911962026344140274993463739355495933767753459554052600326989585868217390262022935558162494083496591908257204162053322317097191519949336792940853880752522291663581203357181525213787346945232664438851326350708187542335090883357362295278783947974585735946245882041637789552321590794063687360792831299787792590914912840100413977352228037723687465822532159992314724816881320782808217635717102054649249751811222220028893878156737054235268448511109069437227624128545129471052334458419302685685535460047751182361592649088736999520986028392704201356246814735691018287898121515132338065992612762335774221559094242062549417802206236983718001375834328324248131853459820556161977871583078302924277555000669634084620201374755553891455298484807849807388042170058538827644545338518318039336968497287218949200288371892986271822953169335955659482214509984230805480948683305706747485499134836675157913387204275064252127546160390247586885954061783523501991032935958476569335979803754706054330235038691711141898641234838424412166074613741097577745858309651430138660862364055404129353554998888681344230264386883249172089726630769868714531205021691080917693236722331311464227874613915368925965764685974178162718133683845421138268481306267921056523728894330841968877418351693064233120015278378395357185759212190864828364589226279292576500633142224548539892952876608237182320435690848824100123049043269652165896408264559539707561105362250721192140528350327745253330361142518691728708404619013284388567817580100499884909851157741025690256577453688111785144749639886020059443997896948272768385905428762390278560690445604476738981564286202063775007151177826179830897507769708296401026468534887973862630893911526424533798905278913923747013624629278091757614335975620709911781706167204512328279282718461981369874512672356951970098848457427127793386107653771696552240249145446854676585385838349880376953871102879947961629252299215498206762491339331299039075210984685624901154414010446566606223716520129510970054662886727669326553165986396934614798901051363475337208149018007241351466822090637163991686701361382356195583946346825301496052367480983851532077577371480427158593486486754512268193942367193637849463131855245210890224390641651957025984818478819336013398169872771875532410932072226294935669033090834515286311571110572295663575692795181352835327172794454954179873371215121140301978423058252348285889107219048811162587669187247087765855475423660857839619886820534193085949105504763363444549426136506036307128038383275391090608045307223731749178057250034017671857947620020376684956320279524348989804922466686396072996457585660241616958959363819079006210417695162727500365848299089378141904639617705214589528953896411274756150594248771222344431417783750218753254489625212780905684324004474110134312705141642847868545107897382498404137344518457238454220479303251546727823143080133121395084069595216466513912332879978769831433882860524241853446033884157352918417114225661183122254190226428865104654753468916427480516166001122606431419558807710016670665545783482383896544932313691831795289600428665147445137510262223909100142329343412918613105541532179739102922191285998331911439164540663722141178741779494435022867703280549462153239398376199011755972553742345879386187335951613137249926136986291198964909380652036729521455434119870238066138609044386418357035246126732012559704942172633744775055152382057699236333079374374089712973379651203054167038019783109749486022760484980470437947007936278405765496556697521973781504309014578755170638167023931529239600508181373616296424010094507160162705024688039865821685688538385436215575599573984426831799526615172762220501186980052327388853547652895809095587944288000736386598144600362776722761992618592511672222284845540519706895015991406887734571370641247204883283011631160649982842369287397023237473639913168323521354799585146399757838162898779809466651766486762917724037459510357282438223935351591543921982016784531180409539763386880154489156794743149765679261922612782667254673524357245917092513669790743861696494080246869206209219115563819501179933369594481237012681738837599397629528070178677484419928338912006163061956518502252096107070474000777839469803422968634287816683338858609759063943365097185005897347789086540321295720537230805084395403337504352882524177868240408332692816910496233423070216351040786859595880224318054283849010198165080309091469934948592725431663689458510626559371200959675895425325482682866333592702505626432315185153338217231508959035774949937157898057994740177221252260304236637481695530270767325229616129808870753833371011166830979316508293223455767000988408502739323068259291683802731001323506369728192060517688905193167121530433956792807022118191544709427634213749449247283393075153124503629054210906853327348197025916378379781290135067390789336562834207609294306418538079588248846604763646005173150083672334695039233732956423556096378695064248992120223747559275373287657276665150133465368422459312874461281089480454638366329303127083479100867938687336576700330599805412112270100223948896936970014496150315687552270161083586956154562360463202788079233967533310493853343962102602549202391233864449687481718836976611376703493281639994063606960327520599012647562248652147388546082415325521529595079905154634387959793618172770725162725018617467098471375573425473537420842064670915611612057864423680751008819503957873513537870937188213279025714666178778751601938719032881944877011092990373362017654884729015434248836560477455821501833717257282309233547893021221243703817100084329950813048991028357354028001163750708394899284978747848539022225232998943530783982470838736305584673532479942105103859943177820851184964984537430356081489170596572801951958221107287610119736789790762814045767063404668680257299918693285203097057615450079556845832865184449102159237143347771348996606952365020572014254360191711377496782220840430718577143878648649232216151080809265444534582668948568530298468365065182998838007620844273098789714250163594467553223964523979669861097274364257050309904544778537281277083587862494570504162002950483685138620370671585604074942479154510505057920793705616936177276723304684156950301834268115708841867002798825478382682138914995086940152839693778973389282595219909243600064311477220821458800011335335039049221259603622010355167564276900621803198813972436139351270331428649114111984634266741298603455942513315838155536487072579637691354403847324635376483362709794480168346147386479428522860792122772886081435994280190491591397357523123975626135815584742910625083911434642845792114309468930083436865905041257159238005424494777700523414911778634462028206795226727706696413947570861597732876943633920157988644969549204032006253462521132752642552879207255508298012509215003545246714003184994622841592094070028281295562071918315343766416735158288445017444266352923452083488865837311551948030274097932283090726035134616304855994180278161239757235666589824616115412253536954374029491574226187180208520678177848872640243031626435278647556759357958431187435643161720493272312991216852265534101513181893928426603396368641420012973007467428928359107322675616227623959856948970750610513823831868078297224946647835291516064260132249466751877853211292525132446899649002329856256013519427339977657015165944736175662557398393961471410272283611043230588255114665578326828814906927459919015613872704299072201389335185217722187494919765419380393971745843379497339336860829754118234193008494820285260692550010908912494147113401417206231394172672924873203986950839599050603168163291306028996978838719368559857870828996650142204883284015770225347221410427329764334346437039039160862703648657669630208379818678838103882830745192199441034942097703260220041643940241843540231194506193843251740119276705948028467045400722754109077927284782251677139400977535721248089057984060813154272490066157723155284693880145123365563638765371635161941481805059770973703228848463486495414869929045383771244884661165408416558735951444344430994280870454841284049164209932037057411033404600539172656939496497425807867002905094162844061077729333380200048352225001061909770228149552785043966252205756050286769940663607690383316418778086941655168822617300085515986300236904717534274969883791905922592325202620960469456956467433404349252079963966289052602393823870584496495205875787724996585807805704201902852926705875781329074869874862173135766715907998764842602801063818189798350315706558799820131638530924327011742127334392917695511248267116493678544838897815526409832844293548061363006356305032823911218340600702384072353253577646484058129981337689642093336100159243991796450876980781275904593399969475864709832803281961205832629067314829043182390834642026947864950362103290559052376775279721765303532144656973375700794527975218722568396522967777355975482104393395848988219266196058777360606441336733557639568887150097946538309331245457683591621381183285903658460938556954436980398349804179529207094427932515295167593138689493737870103324653146516116349088714077291301173385644675355256189419400388859857260790035963019394655932722174246778828451245505200975238148401340416124999310626311830475723490251598449942441165676199561897070314615120684538833027432994757003592818855839086505220343831605969988156033637661833303197370521997420640167734501386965264770928279184796780418680322376936203623895432133916623250016723937330509425794175277184995216754277891224419952555696474367387197368687973692065520467360406037470255407744331893812784270945067526838643937370607786549143031481196965441371500140360945513718714076590677018818794384944588349445936575548506266324953329544693943733364033854905718318487059859857398960076242691606008953166220322459430207728536585451927726769222580999048302346103183060438461525838324100178629523321200426282456298055994308981813961558757974989462874554171251427898233932017288683943910933689219234650100063919083256910999421502307178813871437359600489934253566053059700056799070738996729186876069600724434086941191250543461698904689682261851847000371598225901308712580719048161324895684952075657528820768312826710911703808252836864912808158362075795241478639785670418690465517112778287262400990059155855101652228432150809835446966401476111637741021474352373531666589241482575763948954488210405185386685769110781357406249524642450976540086544603560324421162444878654411778834901158012723844506284041475310301579720664510582053113044144201864891663872252753603381649298390110838477357821523798404953574509386366879841948805011099376588850710239738506692221731669162730296714767211723627940403471781271970241982039525111243145112982831277582656997416187528333948458246242328755729342519843179517702240282756047031558243521161394269990375328091899040552123910075691114217155475236709468085924094138670628735557885226921167050351319716569822269960111254647550139992108618876048551236306989573074222855438888260041934365763662709499271704024616676389481501613843024653160421279513920870004910738278359330816847052860747912201562254485793919992918818370454979884510722159254827611567667367599114263869920419426479578933203722068019262264796732760453875056876765210971612587025512188112113119103087143347317377870670577059933686160968008737879454947417139541188281720272630706555530063313181854291556263088078011361497385884077511128998524662353984037021394697749762136515918113337112408911191225214712017999196599168095763448330028810491150280842950172632509689293871631748119471593886240900456799826065485127455938192855589760601522286804249334940921159884726072059383489516284818631969226672891433741652771946500972954042631923920393005586739170657422263990671588535935951794889262242589871150773680959089573520363920890098239963965030763252117722645581699492191163722064782974510851276634541860237348012724415665664507443505117422171787778362646108623742683492589130052593989532019518654171168035497104440790292966025122031373962617939257405280560842972990424140527140132779339069159183255082674701335243678148145395344129031737038277281477306543579318292884083706543275661643205930105053732796365471478525147183661282914431399265146424031649333345125149765554139473038251810545389383573717213733582927534694888799693260513106982513341973646420062957214115554384581688006427938109580356508898537679528256815780923914778410979602225769838654003769601784882542212132531475391630369556356663847764475815135650193686543689550409419268591109008196343940682843622088115704347773858852843642746482761401577452459303298604843564416752350571913163680826168293147332530207115922721271704425461211906054081314176652481250774555335136077326165330116312169940833075909682500902551802849402316937505634262839986258424659253672080991524152898668914338210994882167926303588732690682112415754136532202867201481228652943133663739774988926539344128980156120355556085183267315879250469316491870433494511605597536544190219233046247231990168682945229851342375557242114713929979994598623651988966814516042443631804799030100045505556774401918272655485586297334041014202007441515819185410856091082286506093931274330416046973885259890296887603990676309139901209924482839324821174649698528333481351407754062564428823437933671241045106028289906264904277860576858901458419115685659217456084990058509565043317121642241257576090669420825289062169454917469357023317383980321099969397987362271592794449060324015358179167429532431213869680769884624144251616530585977129043221549160404733732750807842262791938090702209212967506494530358338076290257292554534166418863813051691288120306374697082759369132443217465066321457047614797522925642029504780172693650930370972796219943436221019996327242990831754425821581205720213281680458254980039612448309205026851900643061904721116611866086006122244822641485759564378630484960613976001285605215624072343343285198301540457881920854305097320555372432836156136897613257258978563957384024942140297553466782235866320956065896231417948131510961216473697561317319176163652021195047402527312930277390575214422769854053607912870429046990075318012665621130542275453749145182985626837454437854429676031153011390992591985542543798875655614901075545058838959957503497783141384272945422304981487139419628413358992097511144306647862078223986963816135703031309336967576162430704442580950796713670446890135199130030117118096871052736667304883110565196917711633810519141408900392445486736764273711844685341776208339586503446084754727243637132510115824695118416501714443696361223135292692675110294070800722840420849720787034786491534583025833698647940445424047460150265416138596531960902228686511119128206118760397442254578021596268417816819788673272215742380413809162741031304142413820264404919983949513667480667308916833388896569802048315062042245871959727912696720588751110419227301024974472098179212856970265529408382795323376070840229456472235642346521708565326913522873041347421581109271475700153383068319433554615949363889332797410710831493349643685985217835726762262729045370104675823085526693892359172026515806913831039192830260895826442310945623267627254419729132442404785940096830426683812226483757023519750541548022510204515695354945644380475228624625042740429929375234090207057864079584717654725560182026043032690544888128129217305702048311736356966611093871377441044532595597187233572226324934112452303028225557652798558183138474332235152537872981149969414219054409979370556250767023020713945467378290996903178338598276941838356196282535773202304029580264811859535249756972765679848983540191615955592045872566823961584309655949183902584186476617786518877531629731541039503272367412539104454675778428493769170371978494024305321299231088974001424400384455178897248576832466506509493721185477418776475412600185253822171620434264402565120551413463023187992138266011929194163550477301834409894083802781926066586218544526860046495204997053547985627403153426996806587496546652256011971181573408599866467301189942538576154298334391623216270667311985243618603187977898545471502584076593262884814176598908347562729711172078874754861997767496093550065400351134627037505826380129328274753170364154738656616159189802055120331923843200576888140733993817219239862611978936860554210307986031262387862796801030404069905461773997281023582149255636686654127759789723266914828554915039225331001274164469528212450920241160988108720812926701202828840216690263155343743476224081466017558519765935529501534495380654488429151346974703106154466941829236715005034111417343202806624544602234196760103684321656775647859297278434366244053957077539934247864453862991443525559544318080965537873410707275336285290488042155134175013223815566135858277358794786502845945527565871424274833378816075767747664804030524838984827840746691204548463045719364058823628587304022957855169039689107927983041506042788068463522610219400459512913090546829673304341862675194803340253059173676718396260221993567321509872553423566490534675094177823737348097258805792201620725056313426837419989627830693769569337349774398824189317423044576867917720667578726856619640836168445086833740867215539109943299832683259733777957754758924422038433332455264484380775066651897485389013924098684272403836812362506647711900117417100392094088219314409404534524539056641700760428717333156342733354760692924756862725729249058487705953092990233827854985473532881660358283903732110591593046563140518317135851647092136689200946947649241906833242345113105167666155769966021448453441293344751659021586437509007343401374851240655340823820401195099568329341184495266130346945011983365756284459913330267625208386248557278405540716761976147504547848025570851068124148176789357730365822328724617145609556895818041507923316682668484679387524180390528693982017763083852901081554106675380517867466447496084978018630354047636192359510432913250696287894290386307315776093192998182410219874065327979452260885541039156670318107525171256301803217694184713352152195197946620893322994238064474535316865627280281047022537884548177768477708165994283231246818205354544128717889685618743338735925681299621251116201127526042499784666162544702019918432850156490517948473987870034579795461015327374717762198946244010847262522580541929855712333274045551171884796816664510129038903010525196264318215745223870110863923495842691110454046008433412510148730078391610242553202480351456601254740491135350053927314904359489291395341551840187251529840182303422595855207660344372728699698864097481972322423567069035318331054079025261945701066118557232453480183923814494039040230769818008708206770843634297533166732199175401405471369713593628685353128558153533021623787952692800269448211310529983643499084571634642166991568460558389457527908667262145240340329816146358998168506036095999138859155020365412673946792066674357641675343934167713433472146898637906354672319772809045485447163307366052101026951339393873500077470209891999959403607080249532353675033977172805838966873147951306616776222394826682441896260308662825732346518403586731527741859315628608682082432319178843788295379167044696461883950819479110491368874580108909298203941624231007439997250633930784729089666910970385920901289801035908634831211467912065872910544773438102679686267340441404671142901781686294643696855475849172944498779287549019948567402938242642320037341317611952570412222383133594743828117022324573924018474504886420725309259560542656464696810287411919791364704774195483681922703206412242489118948829985745920728368371858322272146363723255128967531730492415289426659129798583806261953176511637650490333257808322237360686284293201223091904571798067666724765209309282799206196763948423161440502643108403344001840556612471074453891555433049045739563248312387761126300929080387630705453432185902417290955678664202772275782790432285504224329213839511611620455928177172130020240013584113552946399658363968951307766228771745291172613949418186174113656096420727524360189521686232159397513984250074102836900402177042943244581780279913104986005013731869337894624853852939865679002452434884726868980369261360376713972453739134923933910821793224973192511005545284786855436877994796775203985593136220844749876833723194928482779615247488985144468995612916678444121888344947232274980429190525091328169573928014746737994133926618660436505083095358557060348314987823043105955351435159715653198529209071140881342306809044381861072626762829692884617580366639192653303263906304765411385842118214869412357177132242721468669638649559982864993649705240904527910849889612186020450734856890868487466445807489762643993273238412489954276170280894067310511387082385029348108992129426441048303269383085377762769784759468673825290516521492371965459925024357279065516188487463807133040874592529821392424828972410101434555259352282685693994478286991641378043872311320384585251948191034840703335525467982260568282139045735421357271641935889502841362773577870854848871561200561381894518035837331115710464085405540950089987229870277630397507511838876268452560292784893066214952362124272630428624516025175119200093706836435479918107879224050076126165082022309793739780963241530367551259292263450744073764466943830332797727904500606012158193983762243925116667501901914692815560218230802783541254327778993292086395039298459059464752300475740224256259437831280668819314627450994999571430009527936465403835031559965211955914664831950762645506895219204857600620734573418318849841506394972775529659242820499787866927466565962879473266163520267062401203076597432201231303319761173553184117179471644315147230860404455104602093016681888511375726218129371157531325978332196577028966741780086903901197905748807404102027686612486259911043080958943230692246964634895847740215073614267218443258302799169805523199092230053541728382055874429198476971160121417051333140797538027270278463162857528537188992720565205976153071076033186792076990014728120484096862619741905276104561867030573458482853766105608532535515530704129974623473308254769271932410022861974861370081255184275723985585607197425515432280382205664827198395105126816265402867332180134901926283753177233270124228892021749387813854400437709634287248910116528786267460082246431924638812799350752781466916846208522298901603981778581638265911204170748859493050836421095188752509646560381870965879814646054595942844085126941784552130952065547128091451356052003404666727400833265163077732617509198627716498048380418984247793619062043080210254355703430181853589350030975916184358434003204933517025748989805516038169842306752387837176053741877945779497305986712203902358517223879556864329218092834944268346961363056120266520456271010049977852665203449093261167302825617134343435085435953734422629021149971918783817951886631297215381300633677155278666788035916816738824115252715008157080404021469714270767965624036644808389986194424804390347225289007236051383420337127129078584716663672574498055171853403804174816756521860605245903400633464824819583242072397436682159010454036142378758413133282082437545369537427711470204219166984933944928344267228601490917830084630966725387694160501368070298033294909394286686683332407926188398762144864469067554272057720646085550120264746894900220154601301484549439000885195842562567881276418062278728032005939313744718307260075344688169742265248203467587661901085170083490791222169674653489235829840617181427695859937878324320632490823552631190006084417827621660102326636592205749980413736699178486723099325844733229364332417248955640581548296666729649592489211494662836129335474662720066307059807302786787153150730060933612323486688569671171827837557399977201141363464386203270874433295300563864006750944902965040855074888240719676217174951875966780576738952644202233375996420855172692373424226331376451822186039174594028787043195455254650415337988522788121664053190356859143646577552765924606642303369746104113960809408495829198660481549947067573784816950350521844436015386777448197422588144386149742749400639306746690792156660873131063438836495440547045036057362017003639743089075726393090675010450447973070615394782310423389581443463308995339675450648681438211582765626641751190830109951448005460569557679444216935135537107542199942275973480124010842975420624727660854522915165655708276927500132446690685144685030941171399312593104954115703663604385888589931408825706051288541631721200561371960807247113303844788280107649038142684277346215324234870037140677903479276880153216210772922221014899882134921672953135239103068051787345870016183687277969587840002111604351654230704815568482134761606934702564856547967965638559681998142465702379405900763357715079301279351604375137396433523170687999513566766757348564992864686506158056107912503220762090937409587684557314795894122259830053176195386526179103773406338993421781052868133184343134140202352779233628166692257590754586873796570239505434912860335535030443731375952661917642822727899112919439340565050223403231158214975298682727545089391599471160548917885311629473925013517875511623167775992500092416668513876026329191402134318637795134821543076213569933786045161842402256132167875384591103827873447342036311079356095737757517787243896579312904616876980425572782803275545340005032116388077967265156311702461732846893458677376425665798810967606956525825682502519734589067085652158824572293627546485479052307501179963298807717917112647316552098236975669118653732134910598608778885462361860945769133411853081362980131533131638949784372698675228764274354900197986811228229767985673921028744984030143703834882778412970059271000762680817680418171276692821033547690021205228535839596477654672220749779351784366332248787759721526407625863668246443692784564308951057180018646107994970119147978055165708602539452527966048992777702031776992669960582654838997674848023257285982942174844684122468635521830375015037881675616871019659925135335306364218690763615978828355722280506657124149530957323534255236273519314942499172481892427225084147892126740120169878316166779223192724596504128272862900746662999026983555340263139393144968804450363122971362763841369056803166591715769697657534871779449325799538491888735620044513162620149303172206438577189280505814029553337507512020071457820213970962361103229089683146910609640616028077743359583751245639266432175076155772294823537970827931092328240995091320472600363658345704970666134707093946171465017051082141720006115534227950368885861895613925726969391104225240384345825187972805924561472751012427232938429834538919631999047509213451551660857753302326027865944184941551370430413559506717747650046468357176265055974789125541868687678804846668062143292584772864714470507491279431789255108442455348661921312725140631709740456136767779843857855040106623021172598683835138648780250524542152971067876447374289514140323970319178080968260549541217659710022855350735940223092254899809309859953659961335073111445310487645554280636185707308061706629156902990390105964164857331971743795848840285218914300567493229143342844937076289609237417071216888373100841051916662155827386598894439755167786341275322158006624133771381062213257727459978003933482847032688605604796516016575221960768705075882958695469116026702967615586838820472001438081985476742578019239608713814554816843875257750129796555555704096401581557549444345015024867224544578475482973990871553031023297377099728137817791947907243744202078529171329506953251560014966752612575395532985231635813579619551916172665506868924867880979823064642305774038620839276774831466415465871725764168386539836321421387317557910275176800403234553564254328176472733248290687534391507922016559242170705641439643030432474472194851336992833634660609064016043945799344471555081650811016267940425680395488421808512970398256812879841285708193885946145185040289519034508612771559487115172204525479141825356539961531384822517526304585056765718783563852583379089689944118992479651048696898972976393582914303420749742469031412787172039815749425666376530036370511123260706170378077916601188257682914776823634107184487165642762442005170513980598711388561862745395696144485668829873623343245066741803141904162137845442584828723260560768106274676973037577830674710645093580335701925713490608455515503160966911749240716541121591757658926553642011003581080197814072827750836885377487396519999079191295932783709790840817357446143764071733850833879095396433489771838278953889271465449382230660026213368012018658307331101890143172763661557009894237397385805890334232201157517253154647205724223434447053161957940226134572241996184623155401302452555230626192071999633290986795064065802003289470871780178869025335012856333103785196380075404587789569204085236747985013476173435264363038225308604753278037852352130279151458805986021393486407615581249206135214713740570779974116996598591691291147334536526378594485794093634792609327549929055387089294570631245334779367227881972214951428482567729904493276482503020028035805569310037642319003830174437174973343724774020357420094794600821838502127312379840420206192356510775203292902814826577019213738468199235041323761408811108350793436418951206573998221740821959083156103558159613572481588858205898742508441499216986877849575890473580218203764717232805000806645173074558580852072009634726151876998502388231568519190577470930957382435039484292596349391573562493617728663579004373823360990915795273191460587832350474393978537194363126204925226714734807262224304418370871352932451510282778248691498537052941501442735257724096858845528686633013507336867354637047328652582335214734464882835206227466274745344581424604084411433295491435524886075971409924757952197417085730091832638380237769298934306111188682311556379606349036090877230991903216193814763523303104055188695527993370399819283634094149583196527526723163644831990568438592235433964729482663062569762717636017169287081189543841831834413660114667409494212268920731047976394256753198584740628404203360173068595526592180216235885838058381314143485157378219742473622234485211497196393230914879841887826166074914116789691070105909649624791532024812134122950086604062825615428079350221834460222555709096039680802628690087370518203236162122676608977310561469833620418082545627366003690709667621281693844286215859674406220862755206445145800774099643348383630211784002887585416959581258528534009613792218595989475916281417807006658310179943923540625494699161793273426890918233377814797855155116603551986147299010021540087737364745216817982583468293018229741259113825169215041985351602315901591365655974127664467359473234912599851457214604066877766170514061565448608344366237980967005879000995501848583726658663346333785164678355800979533505587951680128637708116988180884386507134956374719635871228234943650438003771173196471438292603737520614182764971504097940159143364139114588964887319808442362881076080599147000705007277337233923281895793388550985454818352288678883061462047503362744184064018444532229139775848325373686927319790976875172268160803012460592807802707525365502196848381145827650725807936463114676598687273911370316760083777385040348330187404248412457101515146021167250771739441206117937626999352928948630850723483300527066229138741962683428490809747401251034903114598515511404924208982027293925719083694255215752927115108999299041734717123624682907963996198784382747250078313334597162408084041933561466497356820593806277616360869279078807891488390269611755274889516230728168625561305058777339793671942445459358806440045317535199891851935261210430209798915461207348900427837101417463788268957556619335701173974783325988460079643713534854881828686622333445054160911962684318834754129888448274050109508066421186180237983183802334914610023938870248471425399668055988978884219874950933308634101385726510401083249012946969508296676508585152897057439219376528091407432040649555425281848054124448862879002290284427353953412316892932829169034883087510186435215090458624938817541113645427286991048279873391268969138169522640169809101737028176974758302710463316689879386261302212333581189331184819839583730018242927497476525380787224038157064780564921292770884583788581616312699313529031731054271827126034926553272306487012348447814967498464907972651653331630913287221378390377245665459163833746089454412050296248913157355415929598769808211480913147397381514799962713338531740929779117393179118035668094926360797653785348432750889399849745962939468857946423148222191077844188933977932143124352561694140829812256636866272842328864802618641083086943556499146419038716138364565207018108513412058220176546816359822531486578521557411122077018710071350386582709989396564516581266374798128980108480113872076602964077618924883511447074489828223204222427184516817218950363078646686513035715158208176551401470548918641021816685864888829303189115062503667706811649809919091906588912334158107963592945440033493999712971623513026724432333266578213252841309015216453345613209359255611275478955545152629324064824466110137468862751261326699824334039712669363522459768145454368820832515310489987793008934218005639062574639939361289750800390477474849056977087610885533222054843396936073463539672062239115540006933073676859709604554706631802732773163849679765345142292738178872174516171576922950573883869685025390063751207447684893970670363178993266833984969375612706755039014798379274123658876504081934384786030780540337392156627492748825604253408482024230104353441156295024176938130322696681593060900991668787770819263351387389852779245561711252436949965111899572247693335190343520790077479018402035692968386935923966440576816955351520626168043553093130238849226676222846741428640703692265148651017641127132434441438847249206164007967758222964521304243278789901254077219715236809546683087490986977465071507394959243986438874437374030480589703855271940601652223641138506429196880858781253962880550209177724278015720806673891120256401637447801302435701334731933849017110175967620480375995991294906719171099876864274007425827264950463792728258279883854901973712722424961157920395816030870993236392100691297279027250215748146045903188782788516612547175127761763009525873165675933231461019976634200625842646246071889640409532743283327885662442466289829980330489320365392885428304930522445101010162759976280435506321882926563363854633438598478014239090834411513543005540933783831953434075554569543283071331027192918935686814378193162407469394768729628689144768650151926168476034325558524436138215273143997695710096771808465322095384021744597102531394020130932338333048163229076944022412767324772965009696610830245257071726563573511910345090751387765769308329726767658821457732566158442213657262853155811945101977883646144566707871506255414838717667489346926980496714840235119980769557840639879431729848935783417594624304277174632341862135494810753580086897204055240562232780317244750433231223509881765436434644482604159542222890108596610193041351784173542283414786840331734926313850899335864102824591346318209191341871565790719767035259461005331302432585506023040323708045499349481952755649151868407574094956086107141172440999599855640035289479838874296465101202855837796709371928312997270134200715400710177706623558763393828884913311249801420059577008862368223334418891339456581789386808017281710223332252231843558247486427108572802581782331029975123342462809870704302206737794978969263145931419351256666247453173712145935826120057547487160036474388674186045408769241238578281930815505753339492130863572096283023630375800448858022100310331400662371518922579130930131988257879759615220511727302432919560181987028346485663978282001077168675110040234262292249461132522587484167615192071815770722459147619513812032071408670669425256741367902960087377580098006889563691893286387146771748197392440110867810742705701294561846434928649397034786532679843096558510224773277084311893122375682146102882288740566565810355616008116396737440129823747501909053987725441186339624774492160892582481159763548621032226351666625793960390320079871546463589949050942724401612535914006115573863589241366845710164006682360526016816812799365735424391634225398092600393368642646186966667738340028853687140877678111331120528595797507574184223469644239904778053674233115301291069175908534455479810092665779751594356506111148504258596897552409789551322000484968850681207019422781776651548197651794733504406542818205036067033758878936467311257821831721921168172611910526104909410208323392761910982680293277263394676506994151221628555780781934652015888807733140417768748774472179638951250169962004445156387269389009982837208258116364385027888261577654846902554001618172877098436228862572479317013392714697530532925147618142382652484994679694042717060395470203089039323264030550417758608103295382614185544181011972865501202217077078041238154042338151490761182585613334354209467408437053495031827840364407805613206780944862989689485087296506623738398845398161391465352033414212700144987841212374946629150757179696234783491933072361480266362227776802887978686650464878127990751159607912419457693981850938806890466146249379955941462558936957427055467905306758925325142114202830596197123138535206174366254648144607847077494977709727689368956149975834930912074810523089485160292907527961914187903420100863222567123535246976730360128645940962978730458785707895988555795511011697906146859682723858387846276530270831635198934712067467615949520906253494048516178445418535352100679515270463620338668629752149810562052132746242142182404793787622231185511321470047694748427018275246155922958138974419472545158318428696278595628574297368428019220904220430764090144818605413366510190809584160711779442746729577998205944201870724554594082552998023047502113060832955392450437562647286697452431478499463185972404097951978136118562107745363720208323489239583598680239671631379447464722145648467237106299101033027834203106510350978411730760493649781149851244085827326884007754884976962633158516558081205041456265941088802699797974886459799133076229527255124141451274823446179251899809744440571303984280278389648688946430178635883217348416999181457698824524944081717549963480616945860992033951109709709169372059792492207463904847800366857319595752436657003692413775670918962391281987836294941218565406965218263045141151699582857695205585465983540189536069413419428735299327828555142742968172390319476416874035319089320432241548114651223409407577215309241475880598483573326655010932312016100958150068480964955780147265976355721311621933720097088672391509902080011018341336556243108513278579067857110543175660194300136081824720710306313138853579054288355671568702485246098608444429719886523301687587203579352422563022985635603383429463996405493746836579540683804201600681877962700400734277683768949326660972896076151616977006239679314146804510622423010796113822419357224461278921656559372444989017050638050133410694677665257167656583111812296304713380313714226219374061706330102083562623134801443264727388327641160689895664410304363068132894203219245863215469075691297282142224389751393323834880880929777148086064710629983378314074951700419933264920186876124366845950645090685481802670224852293077518973414857801783669733421507358830528606117139990129932518632886320792694390591008382205648392547198680574174027225088317544374241766492256495669199573553901767426694176308058149353742584493559717427699613032449876272346794447363346786309140244378119968878593053609667696452369026189318687448235738250114323185113445985776859736543705943065282174060896398167864306228594929653017355621929211422126438490082038450436821839641239611182244651543730112968294119250184472779658164884876753503907007611598743357720923695925952231550491236710524365946349590599360277384817022372348779275582260556641416849403851091873660546653543709524150316244107250594718527678448155841007479344268943559554776999924860149294131992095879620878975371843535861916764025046421376060912749285001272149140822733100584613981993711441552169107046495207057771434288770847785197125989435882636250536569948382176227505633022001038484471563850046731294393307183680532245866129285577311339477643523859986750851718601822925065077986929423929659795032479392642696787293180620799370750446018583088274179784261627176281790010623402820156331759613733057945643137755989041340218115140370602528400577174809961377219236583982193997963629206718584080222809622014562349843994991275243273953478773272570474599887974098093169935175031281969691019859977400825822804568661567226365699324727305860901056421813022448787711630226521809186172861991366750310046689408747326605290537554682601027375698132181119110287462674320549954096677808205885172912233168498432190515051573015514527474910980936342537851956439388086264255779744437886829033647494476590227230766986484930819875817769912397819490962225658358522776008545457674410403176992289757802673850771268366673627843998059456335214199017072991104851734076053270952108607112022261380134311402210929159186439313204844143628113445094895281599360561728174217600033845415476968021408296406798721936398113491700679151540882771655967614663820277400284750949586813356821153702614809730114056880773998068340901654202161330645025114628327236300566684905239178974389299881104498033612471540789352265025294350441366874746721242849748609891228478523291599753602828573931224472517630461287458958502475812205454875732388563863866293087603993723462121700215308676704210512337452820418925417102965359140277187527003241264056876755886571136062070872874039859594789594611260771100136806545439463822409161800351295058812303667612368952730096861372412595606484458636529042580021076204723719507926976414012800563096350322443006839565269573027312379863616542330170436294941433802328027689176694702573775697418180945058209894737582995070680272195072781504918545772431357181887936375332372304854526808001803407203098124216381372613275483758402140580521995011144301111896188182410516514842843277013568530530220116658732390656112043027389235471405024878670791104388185402483383937725454012805996759638696487212134781236761333857040792337153163885036627644313548057192446642190322810683228749076574902070799465542210557211777492433125527660297310704799879424190221487100014664669713559892500586345869480217271880399001240523806044278182347410141002798313011966297429257783445881458523551682773916306350482373092403322573089020513414386562852354634018617400614015062271738510019724757748138967447284230109122673565908634820643950166292021706122190128609389395182571650017518494388507117812113178534076893819505111320740115657050161656465449631614662315875767461967409074843153914855022118633813959084049147915860061691736541196730240370669531638300065342927337115852621253460206622872166414158503375523206774410887132257898051882835519726084659516822967887774565297267080684530126849060827560006859325971623913047320486327315053540101365525098754355491342802496778033019804037230997906328535343463368800881844769357653065686448224815447560353646091065783098937798119051646486410608673389816963128852111729283461944959213119919541013445818433926453016158866043473508247268817844632884300659808931740927417391117536438094194824262712262754658292449282887541917088074809045538724439729527274138214472164243702823211820978228990941486835242958152931089005689432290213301486317302865442994375494520518909720007486125474179855344826672176126042268139079072341259820230706618725883386290005263067483673720860571218253925726513091668823583887527822935828919204691051407452563808125929543926597978232021194337996620960370331179759628675902991467423450796113672047670281863020371048915928652681060084466857113131431542368215951713801021360362533855132988646784112659694926051888942800876553494849715216788881682152978672649830355415882156947290467594928348906065583223358177824776546156451206146454871929909068694126428343679122029563550690848586375142328489786281303709187628539755407473009886289328701778134362092361922703532156831467694053994833693248954553007482599894928114436528060430477126357575251061545883031082211518818159311823534842423853096430642342667133915097217395050934552468563197333623591024400607486043477938994299702886672550084335733361255273614282376004757792922971863910320424446976454073157974748058478477918013483183748691348066984538394509866939962360339646481304078949922955531412135625096320288036783604365839127343830899497513372607169884218137523465088287799906470799026615481821458818031024220832080869012128853558036091961925281606282709543816855165312260756367129203196161571369542083630902142284997804385238430633118622135772119012553929514452787687368706971472727635992689983382153585387799742465789578999357349230955611489196901796116043133394584943795566308556745130542964361502387107958717310339549407385356280954528195616813921976903367922795462338209500416522163377841793867307051743203911541008493815774834946489885146491712525702590789997646676731092668406722567495586536291074591776913806835305505517089376704864811703637797421666047780413938846352060806629444672268323568768488713488670191452668335615438225549072906484578554610908631477450830373644873676113115422732099306803884662586062609359912208811565532987929310439194678388598880752689465921557172464713160760116592442775985057919631820544509919359138295404177404923184347361607457298408735082611112343506207113019358949538347491450024663724625659123875115586420325183093151101185043159825875997864238336988379148315758781941194610125070544073647160475933298333859283487147629813864543749415086107111257763021813107191609722989665865366497099866939382301413115827205947719810633017347987485974291225993942104653840817801745246906225417089037227219707201450540143054195597604438505444855256719601546384383752317451380476392962229570744743466326396559013047362649492990949277959972765670418629281849539353919244569409416528601584552339598975591513838896557500698473880530641990956074271035196147044721881227855251068284129356568350820302625612776274594469892539885333200187035659908910815158902219998072917545141032324172638514033971221123878811285715458063018242384815028097073097190413040454421729705069689202715530848242005026340010221008601566815636900684627081231370232348808833183501540005516193052654433244413092883797733672813213037109669788802407037527074585810977162535822656984115155025011343648780346262643884741498044363009097713554693789127114258626823736800980309697953969838370963673270677188637368454603747017694618573078912858567243604837138045035076410897364802419309164944053795407716943502849694930476296716488406458371249206699565661816967931916537678819129359879273591514265662838465023776955369939498010892298191848908230516597592015784114153952294363891018543584185401135973066650902591653620818864635880087747885559596561802451051703863795483451526969955586761539917186731258455949540214643652392667020929010669638146109830650490543695653967512385513605262686704005880069865084559863922403118042670505574657099694010386587560413729234387321573758183634265981884425014569490770059195006383792732419008119504601381175431357023056443151725242516011311425233563855999327938615418019611684280205342752121029388819404489553948279647437458398885702243131003668196348755626757373221346407040322613658500469753648423267613054306429277185088130763850127359549959153340478279189849154645607411460489653354383121671684867375510347507049727567055545823675124141611926207448891889979578469606376822452958703484032515468987532902143571760767970594544634120632921257065901506826029707650531895552336405558202447361337848397462818772272510439615736949312407248930620001712563607863866052999282310965300944892233679877907644247501616243365290649767155340250913585615433339958900118964437397005430230574783069286598158753662355960492588795161763541033864996032930982267655709552248028954778581857771919575612657313244592096519851423798406861453940771991750560837861941078253075359937132114667717375863644079540884521547623404389285368470712398141239058017198930294248334780355304604012724616984599867268499790453796936305548853593453884467343619637535035114198963116826909301807093480573632295360705066707710490989661289203213398355835088537561806038087027289148685202874058662072102859751727776773580373513263056396038993864406284736099008237743156746420213948773140515490650867848482544802222485664083437107880224051685876052055889960845266720781321350902125096058668217655544651326297038445909928649992555555080974494801814466294856759255800693746268873827526523707181044649946992162633754439482197160276143824695794754776856284515777137183749964681821709435381119096416324745548929612116509736497597272873386925334898597999550411775411244957525020354072337404276010710483433580873647429666225674783699242688243213394880889830934543791544298427690552555118104028414886644544884312206668527405611273417520841139948383418843202307004651736652099335317152288681108140932145385927717287649198488848828371857300299483081520893639728902651317140187445013849112329957852623547747252960586185542106635251179258188501950949072031086393001980138482024122237257976454320724428221895480655454925165103664325229978108872549510861961490810586897783425220607024627351617314910247021537866833315192951242793842487828025418968947820310874987414106540958034208952456537159700516325301083870018666096464520152075798481731053342230710075110954801885699845629483240807697444700359783906693479038128095551717351898490958986398091109101666544022226621041130813676969244489356355459382450379197324423085073447311741422865582979099979563761092222211495925353575745303254027240168194244526057295457910673263125442247529987317388136523405644210234776206557767716839012999438325323203497238673463446486148042912701503274889807570752876591193922851431220749279222802786750293222340203314667969361513846638940260568036313502892467372153594555804663358516412832253086107684932330947738611299483226154573752834579516728226670500274933583653723952606729886596384628495394727581143178509417185722902385246185623673887167808261794807172306061119921186951089304388188193507300530341632668947333396870916819446493291459984707065953956063881918142251555202792778091196884647047903683709881280042252147656072573572385271928125699154842548150839756537841374299929450851691553197011825518283851655597830419654351274990046293276767244740874539319250044707325755289663344560624368871051231278083857870684218503558139425219598810057576960519386133420442105209250120768937013549714288463963947288181797083702611734448999982249564463169037663170570194954152420607469673228651866193236648205462167106502165792964194372470317508812486722608942186971011973598397186060984186780319856169744067015998142033770558160337388839496930004347568044746745062963523173585601747978257846597210824518047862943701739112306173639275994212152029506897907392773034460761757002698517845817113213842123107509346684092056583229020332582174890500163622455038182526226626875536096673066592465826128518754726000232134949755525623129839903667318129929638863340789092107646418068345868348490176435884548001458404256558038050538577433002433609102109906601775928211292951364655781942494829519844488900131004465759724962115010112498305089048577724667314375058199821009171648529194704724181167496140738107033281507878351967056709529769297660841915114520008339591056755859523929828611632737680668927006446523901904856911349356522092835008703585290378799899235698174097352573329451414584953328523078022433026579027466662563657578768063458380332850035271853770563207280216301978405530576283703621138295069648843396346540138276193773536952492793692314440850696095241002413503367967628161525856363951295742144805505130262439595581292413337762351506271491319407945490405158376554048324950702399411746817701806404586767389402249807238617852523385506623924569939726424673555038985499556335617280210086466869004721961406103189866056780983659276648540006431467740302798892016630205855316606095408572182585771673240077890574169445754896926113900775898140571037040610188604282596156060238195639506777725685833662013403177698030385804984776905683657159723509881951713315438124727129846657704912368882612984084293428978283780084053793409448138506040920929464839801012520380523532860073949875926850297340610682708618288793482242636570586180211488085646212871969367352882462815645182469898448219316037722606917970280597336629195495646005065103284470951898458501782068782163262173137038242529772138136066353269572578696973368381567800081779960438919198040305037915442942938440205561088822773843475640521853360267939016359657292513581484019597322861557781522978215916914096307677453397881865635153844175393416580564550818042428793883235118888829731585625877529772454140000307756886184444436380008560391219094103754332041311427207495092140566312914937673902046759977016336740309606009784755426645347308790630541363895510107125908391036992307693605980936657354560631639858742420061594041468848782812539152977308983336213184126366024198483610629715176967538426329819673421867417204902557101639032591808785651118698202506611848621573213251042814356382576431723762512509370999631139558791567011565148615732374230148082648123742383336744354596782534788134871171911889121763778194147276507986641776359514291947256024956121347381194621156096609778520231175059306852784523715107489555864655978367714353260016645525090166960200881077455214256603746438963840418726475433797697930741901899391440106225356237724171253027308455164448505300401009864916638607317293996917573430665891418631092719083130099977306493195640497873668520604217372796484458922834324859821075521373955413968251312411926838535327887718673179463942182993398334131859743112734911361321232538662846472007339008719638582479660915923645638228721411829202811394865382828273456079713419978993491380775995698137435629572387107063589606316381190377517978571671845701532238569212793065392143350036564731326500520375112924294249647426626880764445987008201750917983715937861722685039427349528492354784976688130796640123318709644760998049035612031251031121916294271091092550747190472709802139569879043655585746788536263198021236581688249004915722398526153373996899833098835041389993588595923004996269187186605040602891653537533020543990538659958163523770870835999983994919231299108725091726215086180903431346965078147679650191906537877981016484410830634565360955747469730433192803452873277613429498699713136604538457183561977480335313199480874925520588031621448685990595147444517080112579132580333698769208648958289474623325570044233943423981854161508601819124167512698878483878076259246550247916697826826335434510940240294295163699089431824163558387666165489584349078077719799144530226242069068363674735986010478296363176596593131952201488635752603296397645784592383495129544907340418821801192220333542022019705013131823531141624079399782138876593226540338491722242057846387157664018984969575505063940411816596684806987606693037412445685530156447523106605349295216115037612039734382099729413921201965022730975677499054144858800140462230366344619815049047435906810098531111028056313547386916031637922986088730142986800225870032351204261936458250866515918039626035253730355713064798639343989957710957447087836509622699859413145372875861895480061477401829649240916261931172437024051460302206545182508214164024286811108900307876385525305101026724640676386486531817872714004352874985021105101054192153314157369370869343720714478854095683362870850472303196985648206999604434286506351297641762818335995406921152238367262763294472601909343542165859654203232401443641287542503393984839495133303102797636317445106168055927730910500113288835485589197825982273210089861862748475015130368994964682728751312892129910034747623369472616863212971294930413730632960257804029586775009291261597272927845610694696902600387426222253675133799522951770048597704912642008273775148408028817561450413968015173929031866630499525382780161459360164074332614564926463235080049280568002408186135907757585880274104108799842241803185111566517963419941312380927215867035110337551407134719814787637303876776076119606413634938321378630395122432832682017868653710420513998813213615343243669548121625850640261478250878273980181058039131712428324942732634919325447857825538085096495850890235718753177241511772502250714720536401679397332316240861617329366214959422121150713736440006225735608045029075812022048570699851701453151915726710140679314186712893285121027931491032422741598575057972107915851801180071663548236567314893496146624346083922598612245612103121949989619312221946937505926130637616269014852778237898579998896750423761432601571456869644659901266605244366666748946996207897858463535328475069558107740775299149477179351893565490134360868092242165853801551245554164757656845809955632015523663167642209146935482430308540469522858416157802556621697684147336603128365996055596396159445724624794419121392482557434753432849899508177721820488249460448291561573815940514736418973495101383899925073772860417850307513298449988641764856312793000778440175238136489971561740137108003738903744262363791322970983864741377477709801716043436672479902916880607359151465778454004876740377490935268667302094218912964527347003511983490076387292760566149923583916612813440321102284888291058581303707952673838071917232390554045934865981919554193392976334307739910163462254168448643304127852791553890954050589166014050140452751761510070331511730270065886521166160587183414867127250151586010767355879881207008565896164832455999422062917025416086003776664092537120574836326852655331973459874376837845284837524456604129385274618705201054359016090918428217251635900704599381993824863414972634279162379309169920181355466809662991476357602662001844568458469682597379344661456074980583532591439971808397157174930553612202042542544139884202683959007993691560532277127253185926572633552661322072331034833095759617035735923010163612730259316902646390189213740260231251471117732485370896683427362899885366565348652103611766495499745334404579736864887338486651490002636538464904283471902803656549665677401463114581187144963218439867230180609676540709301804376294010125626144582966810382595594179942052172410925864084143467207025118209725413792426170610372846321667799897539097212823501072713626525223850163890628186565465645704194688262336425969320310047074008606890071945960892659477370959015172222483172846215113221618771836152294876604004235536728655287966602875440068241400196321789671873691821678955154694388153045732378905801120835231363136046293916998439655073006466406151608871717286887776158315034783953636193814184337303493442914586117729842499636784768798083818783007377112291250629446997822741681107102016694309349046518343085753870217325910930455887033344992311308489981861321631581942971772355692994819036207380341067525017558630784954513861974415186229572636789263759600507882038115116768352846391348897811616680649569121040214814975353236449968666770637757233934416520268643445291040517195371042662022313929738161907513561559124795196270745581387675951343371726462228772644973783101176781220484922957523449822304014862662445658708244005496415882766331284078168651110260497427235171859905141945199985868949729597569612041119357624517068978038794629085161612868480079125795000679249387362850998863154668443877954451699019991557883914989061831162031917824174084830467957987328757213964713725295913679578228631092521672071327730987793622885163180782500693429318682881074509067620726936203268460526594533195476789410474566277096803774345661774866370279263223393089391655063904678443580686141073195055942700373128582706401256877372013775517450916652304043340210352940753904387027754854616993599140867603497088909065256406783979007937373912280880295253286838886143155523429440775173338104327293534880803351701946963672188893299415992701774625548683673578590666888168961784963512154598671392306672969600078405582524555205724265065426665869165948892041016928464575685944228621599635353392925553625746079030779956334925657359102004354457497466700209730684603204703138506417707008335676415822104460292455637916275323720459883237339980565591848789197055662529250030368888466489002635627613150067917845253566564264750683249402975217205629364881337030340858707652617274908538443193682872028227348357042202238138957727685747197222592701449942456610628576932798538044627951159565751114340691194216262508787547958212721401617997188280167131738549057150092236836600990183101422969070542125320411761480904834823076808086776832241492982597123483146940359751566096300624618448497751684844866991226913696631417091576423383093955527798311995568426673293714003862995909520902622602621994933452295591129626044184882159528859568132268189165661969647946056293573878925150060601545115756344096152519550387420966798979573296821907991529771870816821691501643214185264389249584869267273118548346457526529563073367192917353718835533198006394322862039650309772766042269116534221187963848381949537118008782654453127361452395021826067837573232779737711699755451283664073702933304441025199963530265365232807748620620056112148824052103631990711707552330496937980200017889748771111003865028234730399277412278861787648515385630907797429080722337755740404127545040946033000107590347313754615361125190515482194603474948619570072025677300396879574864818404405499190523784711387381435970981426810152916324809101882183127198113249571495129200034070865556657409226593686266883425235048719536639747690828016788694925770697684837079799360520639556964604047377021812964778764926260774085411379247476454641680763402540280089560870042204329640559339951186416755473430082677441832933770159487295444729466328193331900919731221271682205193880200690203647519473957838986444533547671764546512041311842844436240637650836455938935005039277505941580199890555843889458225500206450320836015487455788220748569716265057930812880064943849695345094908134356015424650973464784551762914483493027327038450552431874294058586412874284643417637191977498255481897445999350655646910859391849368826184529226801694954697889338470789672105841384647060321799403831164187882228150774764844635265618553513380766905005587999528902239672346990759332348164715280013208621143237291708935020590530709176525020016660761499766445460372357861024765284290115205230623307563140487820278093791472572701377808631890375499261082427199843980866353919392089152447570488760396432166651961109765826859209908737691120865541121065478636977353654010353692933575380776398232446131393411066767020992036462118096967391851009854178628162740784646814827316802067103501135649665789363872980409368932154308014783343091913294692782597160817089084153194836451006039148109711995853594099670658724206029763845651579179493512608146000167314892017159938585020446404752139084191629336521161246721276787871336824343399845850435294747102868527439733371355147065162575033925145525089762368999820417566144048836242877723637857262581165205843118739961706352152747912713235970532710399383667271310915553057833685920435937947818249072780228891530264226918613162786311092009003329397711623314537806762098100711803694018090602875812615472343331956274776965056766728152793542087960488849046820702857426831426256214548384124256901061945614566450890896015538660641668278981991199240787474362327369525894993953679705636433759058501031634944642645937515050132251077324053941569166059185046431562317682109998550479780889553580065018275716988152099450160529968566617415160572103234067066924952539925579078370426015039123384469576298084562036239910969654726702708658670296664008255107508626341945104313793679466435022678745806552653534413420948780472472304164797996880687676525676719724667211476019049176058132655597168526024496366686922889367279216234847655662289711408857034815244584185991683089309616142566076795842026565795207814088589390470453400051237548532919730105856988579930066741762720529265635876265154171116271256964799694602005756745390412975713376187475073079277575156577230928049774815660038493395079080574134586639211533075397373068124499159129439406178373941986303851434623757356136360976430297824601003142034475772988822613513440349921414307376154886748735707135067707717004377261167404828570479565487377769324770631732038943525305507428948396719048239210021793000329088772928220901104912113293845442760665734437934165341050193603777619599875216222520521487006587648279015892314242299070399495942749673022467554972067133569708822815135441701453068966217724969673181683745588897583187809285040754423830991374050633427675726972136343438460080617551027014672853520567035401702383324818688922401558575645065446684457183680848368092860947177627655048547822546616424362495452874424154884875169126660442888457086310732198026364384684440486611120931013318819832019189329581346475105171601320593377504130111982528464643895477837653991616238758500410167336088930192952674149047788284546721154288775025280251874831077815066434749662772496620838693253963517890293940293981111931027141803174014679924746053221202260808128398210589000484428716116437594422543751710031304072536247027013421807326844608629101354772344593511000391928243952634089239340821995001284116156792136612607753303246486517932433119860224216299021426708022553326539226555553624730714918379670168720751713240424152964995774318082286248838587871196616495899434708077927617741994336419131699240994221180008906678004563495096175519498056404319615599610403543289651810913382714244226177877960693952663575614014323388207288546093120824525343504945496739650280687219936581246700073662346026223869019753488294886038057784062429532716072566286088803810131314062209495001280643130355864581971264517057194398926102246193170418273571258593346808665052774564546720500595870339050767957370919054403927621274219610216800476387245670725764355397345587913720716459610851819790032632974558806052645293967787666489484563800584261956211999125416887549564395896634842676659614458530015942243531225151806252449723484945283194982228281914761023904193898192524710941912634028960370829643109849472119972796964547323746827286845583093556613888068516039815471239842789102591996165389200197522270079266518828986868282800602863034915373501220525598376630655428171516956968203494995909247570930193351786814964460498098454276010908403774186053630866298040438303750892973153982790772271906828368742995315272347199305042623049234421095402561642150909880995012156359983626771699549373372083587172280662835946952968583362374785955011455307297348684789995873016956733010153807377813772279339121446474637388689524841485682370418399349517953173821602959414530482689907411772431980055221010193734366105038858483297695034638825454285335797949732149963633788511890850040594402296017435031992021696991074293446662369900965333138524962529227918434797250018355842880405012689327586313649277970315895216753295953476248392172949325367524860571702503408369412169641209778466960750267643342881218410014134859081033064624166224809986821877267950886918180745676179727051150147935923119007376768021797610906894202432360778643646942417736347798729989317414197021740872277645086247904198350726797646886669220474609344641847619183185502530104293096397562531925493191099688873710475927235188505959080614010874065068600345309661057805621097117818045959545527138010486705268333187772955962751525664302524975129088486320431999944984654490203055361615778529371774690433138081480051704262475018932330848224578670634397806933291865977334029077855018577564630506034515976147157649678416055982621579842578265663970039516624316840230192085054088537613708130574260553006896349467732520882748621060618060085950183925960231227078635483721587720056564138099924266299209465747395222907585472043403902277359270162606498350220052608225829807714302933656598616403851654287286368717507291113097942509096622637763841910199882765467215233626137762640252164874160861306748166298870258724476426260260414896216102613674227373183481938291700368118578236143033250444243931764839961378953251625275164168319108221878717869286349423454422876553359892683161428543309238995967504602555877142081591596004481186695281807700241413177853703565377191764979524545374275499385128053483920403859350734839722629511006261291888693103168558727501810868899222315553473389653687740842698305577727568288804445569006084169595534851435618412246064945728355968293257388727514336099261409638143657308273544893118894675896108685051800283070393113047101148114105574901302558688232805070405310930203448306463360056621578384539364827158643793132475073992003984202190349219902158922785478983607263939495642029836120101285912135529535024671716610448117522835798455037292078571424225603745410654376091464536740428348289665834718519217413625181258389031864996144204546665859134379761112325943417802142304878168769144280643771265124420112619481461320662529126652728692918273600523923338553291041224402345401111354069209578557063736330903152587400886505683232622444295147493935303001793951755181572142592253141512613403836681882304965786070496927660320278673383207039083247432177470530908386837046811103020801358383920921492369678231509060818545307407125876589222624196177298241220823978527615598062448763197562614493629354793547770778209023454425206982569349742609559340100658255726704220307833213784640378136616270789949704541456902600521392034062311708197104288669769131685461510205417729000888884196298676965168878189394504411711751033196647822282332445268156666594780523524797116686573018446691759888482019514334564253923054439401059047013003538488868692296063243774805636977647616379946775396269612033780182388335064963870576932079619526914769463279010350813597157440879134514704799518199005883402860857454487497465380248501323380510618011944198841682037870745254355024883189790655539362127451438849245628829143673412695554699078014005974331975022883071038506297534909632823228794868785884330835350069851331878629346671841734480318015577438581199116358893211427412716193684848585938292675164058190959265403881313898449914926300990687245511925512729210430199772193070530227036345344963416349462545118301308995731596959095653900163487803761170541796909263802380472148016180368531186930225763445064478748554487759862886894401336064964336029353784841397452000778837783608743557211056830863430183100443306612181325006242750882271860850157082861738321005150995986014399947726007599803591107829739344136572191193367178461707833901625750875756022576322388385642576703565552245267561180500030839022824295063712148527010111299929593411753051759845398045776999618245691592741935669614524650834704417260754437909316287259337148590163849323245131722781133536494756941051086030211790236216042496558054143929677310380343592963738552864541774467881366037558446730379554103509479523350168801155345840748756537212434002443764939959349755901875142962843553271938861089529486489210449749421799794171109210366307764337423499476426712957678301295597326671121447581489521479875729823283825127885354459998336230536315360390502426209972461118395105677598308288140436169962186621515162038001381555350827710539372534390569304254839959426910014766073979173370922018639934805218646261662887132109425656064170081164158868018543268520032867381919190738903007777813358722609479897889635058008484779725578164384370415287679652469233643138473913875093780002131903894769501632737409983365291424646967452665768071797001932135737650233945629755068330832706994802236756310817543258044656559270129835322992417708229644250960703607594951433688356202235015983065552743574551607822722895452139339588696286090497259355214362313681126637062070679310967115582168070549399898788476432402398111302769026002108139480185730256241569296327885628240099541608637557734783743448555068717926975263546227812475192287340442623689665528799966588357261260371098913597459468186294012168573642468799021478138965316588484993333642218100832244598064022612254280493157284065796189039308901882936283268474908666267471322863794098928054311912973958228119626794907944917979380968229114253430221910150235375062424146761157534205392393548523075404876459160897045755541004890582706286286499414798152402775662951730317663056652412611814933263367328844436967039794569923547262160972989603271802655192817204810782269756013144017037671316857688146749138742671012442294024230262841628046590926130144384621280723656410968080475465665243584970420448929873599556640581189033836547725690102557083989076684686348546280410320765443123784035288063707535556017448698222231868516558046560727074288841661600039931577090054774438866947223783544509991907068252865570023358958602498236963966266867547752413329382163203535953489038394897302140367398002588553641419079803792073195581922421776066272170230913524871336264274821745034256332328648940819572678332513848873236129205173965492270100119005514298687718366221991735831685033310015379894793769874920031017182390610923204622081885249220776515404764644517959488189871919469298277554459261379763997395872982027276292035387771655123828697877977026886729181228405967600259198417734828194033503963568810938718901203738948505658607130174280628591369103611944852893422308708833064119404570340443010502782838678426432905997067153575887514388801191332190479005696394525979279030413923512338471466880704715192747762762190225887313785738254417803731324782010125865025948699582780910149911676794675729170974868663731065285404961286145611182631437292232850409036930737568164156438826213958288397330663323951265005770519880064454406649892995797282325793795355674032138688714654051580630538763244022807998039773245749266240621123495342264398966010652454303784982586594693299231786752061992993000915781387984243927915331734488846222182635630893950928086346783873270229599664440544076712970842544690587939388647020322438566200534329860393392797543069047156194501214569418007191780499428402365707777396710732463981076222056804008456848630243109272229584701038286688218088943239387280071348456143678923166246919656700722274358353896435621553584087030455241661108405650992309506570673246138170591995439066348992549845316469769318128545604511787700332555710740805958750988221262071215990618749069368901361803417845793934304202740268183039151269989315307056124314430636662298339158969507293785641109063840366779240020480141284175091776797070284251704559781744203885057167519691581915756588673562249345518099246339880693107892349352258828076112734446382740415971464781783989570930271499281519762545009108144516128112231844906213015159295118071828793618026188496618261352463480631937955506171177250194537131839493235085103117981703515502732725145140773511413241494125741605007479170209089097178350549650266515501739695215273305978301219847242426391937996780071637527786613751452245527561946267939334731491058612088700774927849972735028024150765790431168349495428024695702861319720807046782012350241664988893187426694562082687081267430988842599572208298921449558132731011724340125187250097167571394526708370891153407842644005203804299088758612767993008008191707410842005408007729401190124949205635840229462166242155436616297560333674263777193849063959125687724035615076467191070462952629945712672665812426100169282276880195382721842052089618162610633139929697436825203115721939695352958524733266634459471524411163046495586317708425462223488958378933400717202595697558815208801122611389420743066572587545550387329290575306241348983622880965968393300734817956544794283513933064400418030329423843949110567354600029225975195372381900465328874701606649189528275399706081593848715472152852138535519604755009195493761513784150175618733482231923207496502064041063427540590688234607369330628390391546435710171105531965741210492457725954750332717252824226150199125883582522249730096089386921719456178391741443882130372308724494906184013700162123134189086194575854893476586113983197528740662183393782117725164257829313357502864942209167997656984384687634627781552934809297616106096093144808922875704497360332889579486956206620249503548143858576150491535429132033193691558397230826704165080931326612669374319439907279462103807683427227588652153422579979486266554630879141817188326602330251104109852753061848732778879796650163330085851283845137004086048735368639633359317612193955122016230471510255101962121332765022295928796879639526645322407202862212346687250581007818297487290461342526617200805299530381877677964020437630331227686628983658783677005241282397941841778944966882398842504542481990807728857780107606700121590963174743896074787237321004424476133068329411964289237730980822510549802403303556369206732150163216797126047430187951766357754644405538985253696946510173645182126360144480671221625989903278775885836596809796661995514658547930393756069480472738589794160009215464235960624020810598764251401399328287080109489954658874618966925941115657663442039166639496644049828136815823772321288338301342604524131065746856762809055643606333695193582689124281870094569337094453906317669585146155105586514759809161084627040060046751517719321867760751912049684596746349684027092578881371963067811415019845486774858303485554763025645705210049920012479901776538463371435416018438328378090101585508286899613613960407358070551105957964162632030871897275739860377520028971523936102541461810715853683831755520862035242881842459950447382221364781076822299021520087257149673232623170369879208481557081217643536471301540329836600233821367572285998285458705976267832745581753589656565184061965926913000440189333351466981440937637375055663892988107863151273844814890233013137398093162697705164887313984834606431528816146403339917144817787106593741721442295530756298662492174508781282634698116759230955844223697830989385585421368043655729795956802006499210509731736107996772670506552926838910534968796090066049025109127728091154024643284498177881950317094253466183981746828152548839236728421359369106305340975430440322307979955810021549136274911011383611247056280150986896047312261924272593601795914387577328386458373964881574655715261637414843271530087185302605604984923031371753900536108463445050690217874708698818204415422183746290097765264517675101463041047846459740572337891217396260860610812839736314053251126423267073619502287730578366608830095116215435012680187663743279220501219007219702945848022919361096701841841564200124889599173580341460207464885632550856799399535736944339992798962601977470278436460440997542291619070760896250564048055517778139667954899828976501354390376203443229564454271610098810862204918136881487839515707997899903231729658879355645890605559076128741474560401348829234936586240589773630279692689564987307213458013190922680184949047047427566951836988520209374153998412431390673848453665537278849066725010340459706491261981133558322394105751120118278391088005205618562748840995582968821969952448970642813243205982984747961656368382157564145977135711552470106118158197820662607306367122540931420375784054894572087493772923702293185215663090923662019718111518431966200517861665960995911056602689867687175414485255800072180463370620690003306246201757385557885749282775729682377143949159653445831834627719953553893267446631509939185441567250934520259828558033537839606684803615754719404720418190736795004260536874760642973341504244535923981113438849291508932362589778811123355029902969850713477861977494338937762407345114954133442813449251498112835942928443153164210200631528937623324715248878688273151139804712003016717157430476676398918846871898333625212171352607564657172405337663473748704139709196718570940339373610773803083175836040387088906023476976150134432304958560396503188446096957296971111863391852608004702609017194164555753546573063576666400545283944197280122083540326864353224459811557657278373393468703184047372437786308669060835770264604248573315908774187495271670558708078092327367556370687332982262932753470850915343495483060901158777845830511044286738570536007597237929582738299602020616796073902170570093166227212291168379465881343280790628529549232365272463247268152177474110175179994651519183219539400598533072403479825867482934831682976861633022792215086064264059300757102174744721447510614711848849798627604319586674461951496522459334108109292090819646841934689936436797781748785264265731796991523067438346074754766507567114999210450064070577394726541817611770353336199559087119796762755690633178845888058498200293681966395412733917902354439986143633445713819477494086181701658110696340767891911263211261933154686941991222251069058869241782927741455977473475261763421515980770478839603299584427437285853268131851752587245378395436535026876746619619246692634904923031806804124329328998267207588672541792825987015906692217722821525494917795225947283792182502724934453731358711061502388282061125595339838896954130285732848006184277049106703215331344773942034733393995933601256339553110409218514436501007025177980409833775113633198945676048574367457792650989085582874947492833710384344830740671274405725371375050130375682614499512855915352295063387229619860159368421438577219460196889043931563462194274024646983186124754757078392463179741494114383347127922179556061118768801964220640427417148191344459012042393721704531988140906823420580482212557602228740623044297661096528878902911025983576526894926184450564911395701860029618553899618664144532957897100738861932787580999789949965509925169748526611218476308460128953972458374091617622171941235932451500118164378004762340924203420461821740301382892052596829322943448947102490456608181700797212536553979836622303315611127985133227538532640613930461519587637092408761189931098605820440737131407362306326225451535596566004287730953850905768442382848951004580145219896938709732971675136557280808312534491517112474883800958615128803748545741939806749308505797974825424034974590087933314371508466523806730789330998437722233593292647168579952670737682005916760534863857507039972897509004452937982387465173781423706217722442346344696157326863073308356198695901362535240223624298769716917830327340237078812876372278466299629077301254221044194605833803733134361928384396712263197673959558860055545387972791535905868508981200672269312125486947969132769039176517066984497334948438363223710608637189215961074870787457764417674408298120913798111000663475106813586839190973777849413873548242232274135996357754384170987192992645210530047688576719335385169856059723236244327119050733750471000845006644809428598064785995879497595583759092076632450666649878084266829394438165335174516666116833826940472008667349296071365540537243511898657849463353731654188751582685606173376662150928201708013618434015803892905689108497369787695874313054166372587122871545683244602162980212245116796742647662955331681643650694673688408859640430956052551979165861703743856368212057885923921246228731301655974169583051013382912262682250914451928983314309568278814499113194687273308071861101372628012285440633554081390120357876300382083912831804381117191184463941933872060877704142365072766626132278101460985490003284847428960586272237208030547390236340732848950036752223267494608573176078841400813017509998243278047407657829265359744028426081817689169798092971152950716169647479450075497684993622101713868753047245212560995780472420405526445972521523398406325791109727306798152385717672268373463739357345458513013462791317252554117086121077791017800929708960109394179290184716958089617195450057503940125625135315430863106425670004495760774628843380391680461940974749228332144514945471764656359888633908728337303461335510303040510483385773576878289997341381804900824281719317599352197694109578612527232467050316660355582638554675460908413180013229102838691098400967044501850691548511805418139841413790743499645247525578033141200544051333714604421814075878416306783373462410415149946098093759355104694084709854449440303038656884476192732418037659262185889266110571350014400040068727244697677176897510166402074637948913269136181817962111928678230445600236512625211697017167443625776142967628649356572029852576403742121138395466237369279880827390919134798102024400136187129881915046173596504688406036563178456378059574980953562653003931489336040701299810201648050490842012522684229465577801912963881001549773278382003655484904437633985084285464350119812427021216568551796860396658919583897188664595965722636071445158809121047767119911239363462548636885393715475847023595917192771675381696214915822143588782651177132103536398357348172001276105600769940275750934711262493645622071817101522863449012380042770973665707459590782378112890521436716254335719634492054949201271572589735298360868283493499691163484267558259200758386537961249014506640766423695457139979040048935062284932576218161420382732616225266570484976225757185354733245703052188120340786848298494882919601941569649380529707065986681007215076745754523228385924439567226506937263870913171046499743667049286711009238413866424333965007316526610985247443758344301859528851800970732947004522582321404507875782207806971959396593926198020136696565133920342682481600165199157997017483703904817447356846105489075331581738144820017568840905704522685246491938216264519286863198006463933790116299938827607767349270419197075550065294760736420920955907517904061775307475134044683087611680158396419875649500406785666244904438460209179521155900679841807948740806735137308410174695442782025378391833799458015019216626261225399839563014817927194833090851789441134359570289283078294217997647408952940304141221306041095696322772558994775723086929799527512350018409320605364894324224823851606031041865110662884520537707432484391759411736019309271608206027111139493182526056073769245195756354649478472754091675050537856646509036020520135824525143705776733915847706920431225473971594368021493773539125439125621107715589711556256969354297764855138474862913741084092043488425416426391047075459357761298239423921422649071019639162418779830161693956747821543767829607901452313637225342085037988607740914627570703272413882406909382974044652851823725000105117748408405706939300169677754994784946491534977242654719317059145558005567167366330714843242321022055651225300460043409562879517677763975507610746305908761264864388215681191304550559740204269263660428445922673974611266815443833426817630478629611687151812082933462487268688909233610381028615123990961146035281043188720777193196711752588563216918212514886128367148090063950952979442573830423201959298507777421463137437194638943101791492925769905893442918483238031375256006759659840139256769259224764677076298379969620405458644031896231977552003269448664873028444578111261065475062781183805150775072753099638813247850861101295236167366133847440725525998542219352391508591970839661383651070428585767057969197489376403600061638827410110148138568515704705285280085253812455506038422333865488958695691146068934535040124512146579719448582570976159739086936038124939140267721994276126035737496521699625410325579351285005537513393304998130189162498205106925272776919973753253723178401087812842572926340128468018750359096677788495109209829228674527976344486652378068321879410520414184321609301631190609769283867541581810074980927621487883348968798702150088981610340147144278990045291714302561916187842416738241252831596385031881422183354677307046634575293873483931728023881883421402383562115563627523470944380042549744030756176529902045987450487560156887873102399317964925882615301624358138409121552584150810428412620690091055103615699623360880746022226088763218721889924527466884357485123790231865383485822546132228486917361467719706328767495559285763787069615787938023594785496103231890824146922208057370120112966406248320016477855064463800783967038572238164883473800409048057442435753125956268428649417170660519215081899536373924776712527247811100279095528458837443249646635195913255282652083410689734157392674089815436280683002436199405899153938498913171344071249199345745975124711278432739626923631885634279882760048311391077484406758633026529861580752806215552835401681738609450983314526207017422469527448750595308343057123553245297721316571544124161491686474181201235867784761349279089281584867562364383056102558061376058228843955111569285605890112032676183409142191822720572642693927413308673137656752065369702003693472128491268795048066440792485061325538338000236612199424403413138064294992432750359821796267817898396624438313650677079764291956380562814611606072930026227465935317195414963141920005983420998380362604569593330515536198451152561950766176515475621541552027906790616114383978877510746038849397093678377148681850286074372290721925300961971823350064864017771067473929114442578620592331804010230948806375136494583865096332652230640725568447870945842189399393265356321325771557555870950970968836247931657338918443705898828491838121028699583719427888087724800326594211631395528178904163791180922613759041584196653595508461686057376427194874230678140177311026231294124183391993921418276014039190145541337446587119465214328353518219714435568125811460562746364214202255258161444252820506995716346006606659748738707261353172225290185583408919811911348079107727396199369568876591396882051439086511943031880129121552938942779703363772020376908450334383095755326920478160471886440086727199046352640998248249665463229798500594619258990758673542577977888723668765752952609223007220030175161805909066714836891774577835519133702979030761271985884151535786523509512653883851969467558979801780186731956871160805410969086217018940779046061675162303388059966044010394712979286512117645040666606099835932825751475336097749286876393460163967963022641483579029928852883070903685743728919435305048289442509403398263978005573236759474582045964678162398309496486372372849747175657153141165958674595142471988752668250815791978391420594125727557429633193883092644761908500421734417720026513634765899367200911874544126296364378669174651960846878830469313331120980862043835794527190195949888100268138975492644416712067609083139310637641757027394214449530502028322790918436602650890182219741978732003701563042106035910030879198130545515663918597609153573737091947715386306492320490378992332108003031083997628016849952151790935723019271654969146506494067980134984144478824201898407370825572525269386768044021689440174492772005533413203914791730130895495242029395724131634769358955023720820944177220775910084321405358034774373269446421638881180729761316089951951802454471717569005488650471453945790059922686943205119816052677607028256328942990001545217840722292705342965289682692040853706974923217356223047713518371880114872967051237190264490375492073389415137085612364557873359345038042046585284782373164650233541892543600975413809404832786039150570221822496274013201927810466694593390992990895901445517367638471668424555609129991326591517243623089042558930130208801903138791117524733499087767813899071153443440221032159130911717254474702076049706155298350479195808332305697793622277710777165516272261959878210686593053830751419957695015406174547599021648534530364569667894271691661132593000737452590360747796689507795317270896054029995039445444925771682471198670903374593860436001786815650739110178113443340902806118829885155107419664043866698025739742415274482984207348910101910602628394329558921858016684724810336205538635120991903649873624441672508421875907007910417259287401423607024154253913656031493362879840736612769573839140183211480208210063327082618129939325996880503950361437410191113659605592854267783680541550098359812779257094377869900028445796839134443720332448400316009539641502303493322791203262055377496558800196329061324462904826104338816436635119168945641318962572407379814986897279136365264448127267900789662687112511309910960812524470703885011766786926722126390838165837788842808772316981428901186109046550164475412307874028114103777228824066607943430271663017179536179905146112702471320178355028436140083894627102333801632714654180000771224674929100784966177295652313591743132521309916108210308528097404674143809350124140446623386359240299666398417524086259540222271267249390053217037217374309556655438774327833389058725449543365711014824042649722212463781164618257151435267208148597031311643989388435562974588937600907687900140026232624100334968947676586201550310491867187866576207440437064939752530593664618352323702432906830902706980661130072560827459718072290250198813010386025095365425246693971373232459557998174606226198478603881875052122316452828084267895644280059953009568657465717295419268527860442520897291963216038047843171922341377369692583968685380430417457319355732946046118919820052776763058428740666612025569279734766723968940470404326556818405986446696275140539357450915512686649383971232859105045261245691236075102725569642939698597346592405432471081039173061057340311794278819469873296822763507539113618687320025830868482876273947897616811582669519102252866523535250887621076766241461351637759364327709061176725633262812596095470932542616108303989759184888658461313123653950289230204293702225930193733243139745465995214016758748748894003135066063219320592616554299531618505858344340535829546666000814268544184144447916588477115059318117367297567580820649907815227215418978252230954525254139651465226044944670291607572490699005852839676287722532283300776887230365355820052242025683181585687599123567267262666752992359438543181600972953868566774959549080925047914350394842802491721440408842915801002334801106903956232645268182389117772483037034656341257015295399142816503694014375861100923343970969479131509728195018204864989800617178592776357712586246096429141811155199897690712127459310864226007717691679922472906088056946398993095096758841752332152254040115114310349149308541368784182424253345295782763133133552013277572484318030047644262744337868354288929890090609640258615793487240742896383061526520840151933746711957804300986637588937093028944701577321351192167377178436463802365713919634914319105668818677694486325480626632026625246293976905583754163925751963930082552422163285933007416764782007922038837207156097277738076798212121131379184195893079076376817963381492229906394132265679917266124719068282683440325013323529134984131054192344049917679695453572846087240187700112662043087589245647852844428050812039508987821204524706629579561933674407051415203274139731989697168086936807318046524048571395872730740221938196405456778291857372442890065388288499653838888527440157120643758442505422692303778662323894440047782332970809575759803968524839600529496973387423641278158435379188859464788286949288450377177544919952189261190522382545819479186686310597322594268103855128139344102815721087126450523039725869116920556798523836481277797957769211540795798060148809279893204151614846703950588261650157524374089957690967133006640191105330869439828168106814344165502353077479109329664435909822050216444156983472240878811829103197967232321437557202159729357918589537930989747548167220600342849463680227876641970121067227479395706955894191415448630774722536860499073580812165272405781927003695895303595538567215632914633433645319071957694442436145568909422892417379564370046847288694371411300834894456904863892454695023936967931623648431597148162941666491151973543281961642066180333648097683902609552331142810206706112297575552073865005357401163415626359623631454097978246293616172816693735125658239538651406993206593477074721968869644037470555160213851585494262536024207421235279280981327628036942788396101738210045862020520260913424973601050860595842109943439311050984180604174298025949711646179055855437673035000931364711361581641819626502726730518229508367814409997735920865303204363546796643403014708501652237450678397710764627667452575976954437127997085981963755433946132659469422744047386274197447539752076185448675707354508265844532228972422726693083991702721428736526907670024183421238456347700481366675464084521905764723783256717597627064665392383273694714511459906149080650920900685675440888482054160761648274943016222526091409563355810201845495874195949743819215434192231787641419431937088554315944785332645016323283585012257225259952820884370914761569705168035115846984228475730520303491061078270725353285429472347891988624521201508522076045175475567145144928454471294249770688095231182614958768509902005372878902505412602743044603062960923043615615906529774015267335776817296822022948664995080133216867099194746145713117868134402752074632883544563660634626543384924054022586438358516256409796428919680470322462449597421895015748208764716803320530133327591852651011891123747601660865560006362933832597907818186203878389816748877701953830438153406716786863901191544718929001310614979165264982408964995935005326779013491505707007041771497580707089653358046140884361954631778114179836856863665423112914275386010795466990429085255747453503380476112505380947562984064615471066596003947474464379740042890426503169096645902685273142797104739565522199835735556255227079385119864152129192688596523552492883680890618663456207474500990368554120246383305772622676633381853426473326955911347503173149532307735411251867851975089714356387516740498043202726173675645060848738752961805002372936796894729935593372049270244433354140596405875429173906231752061200885659218957538172309204170648574976010006225617405372030853177635683474007292830933218112870894155105333218112062182176762953113635012949213849096370241697914891717337425615489022472978413433102536314580075256391964811804456993755937666902007974111237296113576222735515400057673466936878272058798890378107721480471595511639913356199651124829551644986959120189905550509586046418313551511067517269417896852210685623565834488580488941680692055005517930994376931815652206920457105769023171802053048399796571277168300189992770963361107249762155519916261975421838460290498452200404959611110842000535840220927445577110594870206493766081659455355817085262991317713292416947190665107793460550411951315520947185414809775987674610280917089241539456879657840475835719976085160904210425819381425828471336770668318084013941065225733697122331708801957647408971017565946114991591035359455918848388685780382024758512502741274977480097917407794246317732326295866857434977968069587978904165784896747859492779552046941603458111047487057053505308983526924360622826160904759362075047814357822351867419415973197339289789858682922508103716124255959776167319510148269622197883053072973938218989178043905169448861919705393441627667449824862570744431471282823646392224261533151050152843442551641974810251574280932767720672820679357893445393714505999030878614570369036320741104031371030915269002499339645620073573438645553002217463746276660186699786258779818199830959243756271924594082372677558636946307695744377155479827864244137386306574185855913938790722175735491103709794555533233976297126802694466365571917687695516256555320096816731139518081292480331956713659860784483485357672835004370019041714589384605134253988505985867487022941308421968229546040263804784065733378051328693236193020113036552889626538957363919926665057101799762432394112118618445237330800139519658699150001471932527641409387963578005008501559448581536766791621995635198094325830179207759151340004409783372278168121127788626788272361530072036041261604255073929829309998891655593183252325549468325777110593840827755373192633313141503663105542547360972050259365470525853015501519504651127322628963327416009673438489901175815246221703633841556212641235559690936940680821507574866946638305356907940197786267161840290043666777911361862245710010520325032474388237708130879737359103230151339286111258280925041414230822357674206207269496172713304599402508737101991747075504668144168072491587006685988494370458465261245755149789015486499586888854928044088975269355563182414029166655309117633547922301552911328358000581593020704646191781066490598297110846371229806193228815764733778697371545853770452254417297000150810596168132043461965047176766430344098180604341670457285933277018502333459096530023297251751475535057815459176190085770090563058052456647994445604761734819919270557434418743949509109804299400955818483401396786678946655435988550966324468748581678947470761106697836534324228480515049049979693413321990908992206345863825041293858988739746282751317005067868569667661404483979921225837163697328384762009706414657415784388403770709481937773460587292414676054801392824586666421126867716947053309696541976702832038117163239503881540845265033861688644893120273788987794382906324464649762974035611553182920628491295880059221957532674731626186766504096931593195761529087702913597566150046223626930935009256117740932330503782574945594821115261032263884410213753287878679745325703335240970539058833530131476218271495808145762087866748416102373987328733519604618710737367525936273654462192567255248574212904577113278594550814947651653538787018917155062077012297358251251515464210126871128055467144904285752696132085647498105124201226152241045590714566743225832374124250472705467382319475096644226611927940139481349374826026047910392042692630955306409316860737843599200744587161771044092113802399038597984334033587008533900161718710836406719014647139198009823096084020683368124420736841784815590452188652803771182683867350359451230533002699286748636280844770388642134300366734768773128489081961083913739905516957919987344747916115674641634381668255033532793200988266815272496760079543825426809720207690184340794292233532910575570038138754579034038535076118011768482045428397773952598456128353407893061965313961002456898630216776759897498876560249953098999489883362901286440124573836422365736786046868833090286353631208271853610506095102008785724753016026050874536073467998167515967496511438761234481632514351327320045600151971570284100167020520878280572150992994569226000606672681575730311097421984067971254290533698593320957125609262294611991377766690496769976407930811185821799163765242436914932046502848716008454347620342758461209970414213469707065403734186744487446694479624884881263420285398048673557543472415468189385243122659155713599016679123788262357173227591276825580767353024057298902478131225866803274986281732700976249073294525144927137520859219729467639228653598133506737259065245228689913606473427677157625441535118770948365750708945475108544108385526074309475261572901542905789709700165790167857336288966042168209541651053971551135362084992901685103386407764154882305576003633077908090137716439851723604105812414302004666955231773514478534551974053412640941577681635418260037173696039113219158749010826571460140788968552992439425866555562481137600563180739834514193558638781296833653516328717184340475952884003200637631624656713598031652698722457213380761583810215863444054001509235030219637959558480432699387531526235863190390911494436306389896045275851074975909426990124480629767657843059564639809509966596524551310790122694090760093525645159965630901987316803649222387756947074649644851000437078806362566079521388774774967739657989455284013612631945364496247079813912382806851290393547403554925338719156544695785422495047542527864525242487828357923318946886393874189205845737380671021309168543298491064236663701469622584553530039892185306228285305453382680205342439555013049792679753127033252750066749037374795861736665402041247725803454319780830046234764869769624250209285871271247650412290453200140640092667362158947965777006845753371810939575581294412089813511759552981721094106869066574497054327816323951781339215793251294541688125405440541203305087213211735425550824093321647729486336553610823450066566871062540785464154115494560453560262833247085195605864967383400715498255466733514034854200049398475539544319114614316183889707378685401688657403228060702889819170420707718582197365090077943691722233714941340479186948217162766527526829185810243795213354094439425804640947148241839140981173591872246956101079231098885291322447567399540622555999590259661276725050767817750954564880180104824163156386243597651207571745382735965577770127941702257767686966073891575277071408297440677597233165487768742295550666192721631118227980057945507262038866062239091148291130955462808532362473705497825867496543243462660484436534368467182785237831981689710468094839307306754140464777208206667073095485621884253570470340277367943381300755380138488765164394887506798230918744880228952578992029499108030261657597149464351506973625468806677082223432117337284810351104039896564287223501513880609543304260718562188602763290701758793380779491407368062436691630292278662369199805799672278777440648944856096056326198887844427293725806277984908671471991705970642109953479849860374946321463722634652294771045201760941949475784244560647542666386775461424133883882594764844464468939415080958847000020410261508400779355071469168128533304742422760713064890833248175605828174442715808598605805384394961319233380458817105171641995015873174909541817840095801557370252070167214898521693648584446073394449749803520412410791313865961454357764053114369377924101887215168956372972135163644208315431256581678246474798891931168083219502612201653991794658230327362162636287267255912891726600110501930888576995312231580091473019451152146341515162554132439783830010902481360791773155117537604989437578106943423436859487475597851408899927719744995090793923756262161170865624683582289758599524669642360924823103683113288337647175766675396329917390324691363056821819198365608743279792860304409562418156427715472619585655949921721569434203466957509237776196141925325299064981614899767226489776501318153806162322178076975709972316057678591440806426831281082542795370619451596675361186217241483582500259467745900387558974937355000472123624646188663223796292586833850880007621940460995356393486201269143143329327031989253958132459330171852750088432921919840598944666788437362209070968671345760888343708986176627318714386925268574549729746906883443971539347337829119021719716560097695836318115053993277485044945028575555959667313160180545511205027847385219649860224395685107377923116443628159625469610079423952858938340899602399181752334906116842228474869903523093824336474739357054658966163678037271328895065045499912407022551944495223834520668215045028244087167946742985718258164548725969166673374000767534940468014712498410599213000063448089862519675677524995903629136276356745945862648193437518309276739665747050808881792914700008444115405001868904788628191993976419264437514888680173372160880197927960076174766361788762110252060137320351365959660253742771819611449763286210481790678062356265779706693768561618966816303977067990134029300042148061518139907590622525116619437935555900273970536497283320594606937229621195540159525308661891645223481135285879866715228723072460651493092546905872206152672506338403844506857936009947741341760247140663290623699727742056993555992761507776691920470735301930236952241012679732679404107696727720488888898441136104374357901211754959069346496444958923203970226531457262881372345585418601210776856830324724655350038430217402652652448811166634592734379286647739842922414060413794209373748586058995088616567293981408507366108988437382693784584382580865563260338474530029873892639178522793495694385339862413274795997494068888657548992028341560311935988562682363709610555035041444497095307908828332524733980542724519384153590730091283000023686928589621311067708284066503639936828518345326673217701358509396480658734069132477266993686364787678579861418325915373339570781693199591393742561135983765708413491334329962160240142088863538476654728819281985963172843860479900476078138241363100720833968781434002185298588997950211189667073874105513494036933721459896897378788027215708196638605446420208134899942364573401912411766134100770707468078320839759869966992081085759570699652971707795536228743869115737099546822406263465251529190223764927773528185660168037729949475365536426708293878483445431306150488979800551592298953033858883652838402801754411044632982834736841240957878919987341903298673622825529706106165923618068700148781833927283638948353429964316559868177544006510732530495442488680190490875599600115294698183017642195275306900865314419337349758942787553891937008148860814826906321008634371601736399333889916754641212482602400098468838706522319604830855209823513654437078670436554040436533811147279353782114769618161490325509368398504808905005854776979286851536160485212911814482854846274949973798854817871065838369654831511663732749326084899788493125582555473047230149163437192810205211002295912619772743272112932594502969131954587505832902572561718704468237525511274089334468491816606656140201957041788432704366966484451478549822927846619498951480778863115866834710418915299403482121879333340873970246114939782207444870755281323774868310124904025450604988552423539970823099767886637912094416676945633776961151820167839369294675285263999383328634554894629297617768185648342985383910548508089966733060885077162474750163361748761576633190573851749171615095928832227628175136990626981971262196057136762184994590767636046048500394465250128684528013064889369421600871981364646513418928942804248915094906304466060124861187286372962498480436233000405445269350552989287968419087083359097128798899552678400576900583954827227912562363546442826400308039925141403944631964477776861072394628537709316220556391797037267371588740797401770120119149217761199903176888087550204761065977313942797266683988045674126419268075247162881948030193100912932068798531579060409829254579220090684165338093496460716787324516943161392370426095256973654301303969427238770542463998612191532747152980405755716059200765936720724805115649525255628388487920521741944700517164603077267252272885460665190804555586121304577025127298804896274709356979100966159939336059345767952892833562589185747940094232519019585612486059533017180103111204398111372461707053154828627963507350573367676171226589733797198613235540137334781548304613227551681164556552468165704636846608114094192705029192393209002354255761069457345280290393258112721549275579696892536544682438024966752791378550071092588461701737176128218479814284904869878769389381483944938109657542926634269607429510316738508171096040514386291800187570507543928799464935076078841154544645396356704449550915371648088114659861640424142265974533675429292516841093346838480740339654174416967782933888546330678690668358513790044404545081532162427711557576426361480226925403347609973342768024473248897568208054175842931695616393426222112882300296737797533847623504049816455610072297484157162005768280104595355364727475199734174284914094908374180541626931860264749890917342956956814544618059239378162123991789959135363123135281727011701846953318507359869725769987452902439462390597947899717601645157765041745357751543785477998424629458861817471475326447349596623805584395334494684081432601203755820960378924740931253702308250230783207754366539356104930311101616984015158971459181150319169096277443610978739901226299198969477441330079870544094006075401611086086527907187223794150840844806482072431663497351205624888690327144619254386542530185431839717190333896790778391516783351229294706857664483232987784214334416637755881531726530062329610174673639465211986359811023155190557647975544674385642295126014513335139245865302120922080524838060314020122866463870158409290437463450793699983022920043981405750837632293199451649719075348356017434086051594556515312194778174108948739943576366574579225388119074898206356863075930103835056948689401635747396170106805442928115577015529039251977419780144424323460175141277651534623516836061347519177223141437200013988795210702843311096371965346950209433370171928865997349204305433612260366961072986906673207723236956720129305079939654972000915992446582340948983598978497412690473618014839819043894773729705486442210251455938422232617965518756019788082977688540420715243587974979310121881943924691363536644197318310146279329228942941852471297713908830669036647886383311097716792628294501340741330581997197423759607222655080950491480925962433564952009134525401762099487690195073937022384823052821024890820697551170260594206336067164589668583293360213093006305684845981439441059126175004990301778619783550105213465130755240255776003504170502266645850963967641873062029730395261362594708577016305155982806085310083930772191263080527899313236615973619873125525933827915178515417519441031404789414029045143098145086281001460893952283672798420180857347324107728267983437817309101333911466315750545374570488130268747625952355158505967906226283773690417203954702712891696476916814704614755842415557929747507274605749812948065980545024694103786751503787456063182760372549004365073292973311364108059679240514435727450795771293523882098237147318897958469440993686974443115385713453653927557468229231789411348023095453720915628951592535439503114970422652868481924603708299098053630246821252090191602576075724084603027862331928590474954191384789023947405419930221608390095676491086330503358617520574098034516105532275464222418815949934248896112728145593420262696250149246158412820072077289851028177726264929353973757050551298841375208626498947728379764782673625724861288984997337659078742945176618971286680893827389715653717884021184782767191789527040483046220061812496104778587079683471894952034308436122626111612858006883223565780073351322531646856921246080382887029381266396032180990030323612186110435459323952421699894160938831963417315487775545919970764076365599576653282735784381601634982255143817426685884269967541035591850509634451770546767319075493176320368574876383176578293277825100522855958265469322150372482830278413822745662037336835661443343984083272596196510046156446052459961316118437087831139245908891345081970752864860700722550797073853005869242405082743253508592266728968202834006240524672637983784142532988692511758925651306551248463414477556739707655575246376106955584752548197666358934046597850031379192529520830168891405903389204634708311929674603979608359590394127784306089689479217443627011405246429803070402837306040928760603033149856022977180194300092413252896521974315961818319606791450999655645452715124013636200243281341783765079001548986523999159290346121009070733842911889716368864816264123954393881471490106699444620028459116310637608049995994729846887719034896420975242120238882500474236847977156421591520274036502921879538894651738913197951793287298145239435674946765745461508586639385575218985263484258733769697520836804205198562071846745284072147560279817431167746607168466769387233545390724962801278557454502866972807380183075839324656274574964605145470537661202053974291931681129642943387952340158915271202984573517845078532910048095696014324701815421615297575188170553898172966185876725524910596810878063139105478874042915623653842992910375835825231980959809674241726674020455822718172438674442785046181581703803438405656490124745536150167057439867285779038504876922997405065557873443813684015242301315305638195088848651432554882079834129887710955325707347115709218990540352279676369071720002281500757365250253116046791713092487407406016562343126952120805933466389704858571058695642532560574637161001331696820356366833395182965637148001495021133347609241631148873313328238516485054242410379678548646999508189287996473729452239081753566767860655509578864607990513785473220577222544356210433387147099390377843373527504771058097404714762193206171378281853283423278391894662149388563903037418365278183173393004550937404639775117042777366263089451022015708292500046942222279657148813911070010565266405076973207309487195924464520094514151657051592330699388515066758259626355354940450505090144597219872619890762974004817432945449541646558019579625770388566629409278719334129557839901755641131037821710612455291500562391813625198385370056757989962150125508456104353330486482296306516807629140157783464510532357871681744492086443488610469524046052438990352068551163293666029448625204904791550682935870836340443216449524228092286955500107749912050589660758198827520304559435006845727698465022465452793049444330351143954215616167373450194145958094455883717364781532269447708885743936506084749810037417182757529103591992258073404530495147890828949908686627840386490912640587408343900258995888967865442041343850863531257192384888478766532416508158606481649907055342316084119878428026254913973063156957757343504156510267105580664665742213764534500040934288269806477441022072146330660066402905673145292606763363530837181804952282046261917054872869824206464122814459733384948635212832099710541060079021743071359373296562782113437272959969137271354820243071175664903305148050291759043556746411588806915814833954181800587792144040569996284669906738789214027991618955062097250335084335933352476344128857443104676098147962683196540058564902207041030631759168396029976045626240507085954580350415752713111469202249035470071107568245347704822253053424105783297709544780307125455412650335903304225971778094659603787504144196756634524091776507868451988275251766525507727288392207528265985164671336924903331115088132677006393115149081155338833452673270564629123723921807335876183670678640401253087779662856913965083593446863053097071896860341548454105078010919129898033925346083699191237657552663921831564142872871091703310789789607645872263429472620658696254801855628492532172956829018604950399392568910881166513750127049072089971568627143126448050332206189357824339518609297000130404647436204488993429706090287410186975852733454867707386823372651405577653516197538065935825030455118185741753919193072286935303873773888280824430589882939244999472494882033641585072851411888798139639497583906911981274270853264641342689225352707628631047343109946117082758662960806018708565798287042689222885587076356691478105417044884086797128737989378594712032412390632789146328923446140664137144825825707199579643541415249001732715430869890374687097714100245690081457134228112552118871848640622880855789708110595605881482270723087074318427562436319992508617206098978857032881797793214729108501294654170924902274155426014445326344577199483224388354770550165563463278443534148932414321519454482257064968502254403903392051513001746308414299922928029861183362423314617560220305024534953775158396193476140282331456120448038645134549895789147612010059730706699840155873153706099381583365805790502617119993568642535791036283387951461877684942822583284620967327840019542786311231695103086111691708398666021517267039839096781754026412050390607437632650970144959912984701562216766729324089791605246682211508581118985849101554884663436020145851119801731469715620164120855913774152021844618273846667895571510716840463067078471297364673564180566509380026519348871988118113807756420968374927104316501787145035800213492633937562957703804139514319536934478392759293794419472996494838716744785838635256583042058383891421984555330290039999755029854011619733361923160390097145293993233422043036866349557105313346257034775528760550917936480219612291806293562134838381595157017625554189293530804267728105961362331148102458485280873049494708180779832665370272253153930359580946328003971440846592862223795432106630499778600576901413824334854853095238987875121486116548022357019458266062678228655984854006747552053898441184444869918756175707079386048166718041888028147378959404368610215993198506154578646125125016783738336388042069245252829057076842262631730338478528337686360866124220079502494957280903626353587929309590722201356322083048079490511304864587673847925865534389680159911740163082476893532842165709543348763121283605202450650597715323069089287314260361711301764063661037588399738880519198244370531070319629987882629613676141021627295025426357639518947406251552201504801916829996540555564386487912792128842065594733483810254711906242747775245624627506985554537461187308635088722260157592832257931935466424684050515407541489290237993173366777614065404830752593053345881255767873952971071045308610258389579723173377557531475222929142936660627991485264227149277973230118725585166116817505707278841818021584784524457492881824272558432322084546215229476444104584292150761992865036612793166508993746004080939291404703251386826348289261650363825217573483675563742196005935946294316000428866967835719785748817561393832458535914155539833564112073772513948208995879231988386410885661686263784892759873150685892408091313298516633199632412277171822283497955179275377523717790057477749432905017710477889045955502057964525060992263180028126045228137260334471073571824053597364754516855702940363066627395580905755089238530315961654996429727913947093547836239021531330870598761861612989502287341991081046052770402779720532387872355487328843868444038753936049990597523355397194168026154588681601359410469444076455538619402017433652351199727926276331257181433923427507772409809047339198654540254311258726812347298401416672841617520793668287819783309038595010475410995563194308362708431944530269538149325473405567510976111819719389282468862249470962600738853684760869401387115042167666564862987704025739132913162721944739111882071221335890977044969093254797015919493012241854168493328593449702921091253003466051328507778804685230944520152495260217388739557835081841906928667104092491886292950418862032538433176200935385501106704478156725324525721307661190312181660014905779350590767477602134579234383245666692623208368371456328148401160356238337234920338584517902891779071334007691375677122921702748961394093744345177105028737373360474309423607210991494003380071169374301191446229548078996491955003864817631213895186855302125329431674708100924959538540510598198280885747400641889802640205198191691897338762556272136526029149485189965137868991482695852070191370725851878712209764898655443335429548892983577061633134783404611584339292007638833116023478080593385847409767282123838400437321226237060700657023210190065729357685216846518981265533294194364539832721181846185936393926311130605271270512011035444722252299735417592476299606920464859438190909409205092190452635674998048281185934549098988366463788058856933702689961820983837323036479272857533413620217405508967293060608586934105466565195299543534395080363179492496311747302957374155266253974787596748185209352255396900397346216206807935306768250560175565825626955248461622714236647783265544247719525214047191193539040214664046010296103408562654687179266829704122084656701990635457222312612603444837150210887993781026291112596739594684682568783199786376205709066763659565209717536037149462821048697173001951680094498824217796432559671398776588178254969377694009344165655178335915759757030269964384001792607192748538726819550745211687615070243285421324158669553681622494710650705469727674703425748254704582065201441778877045257748073712691318688489890075238549621424175360853939960575606822091200240280362064323353930285994632816372144024022213599249523604907530904717083760140400935384651320617075791865309314205462073153542599894550601187306028667531398333376636608376204819525415043488697454814792382279199748658733174571461655107101571665425517262310367722552090056440905652145302062734649234884743864450489970272012106735030723570093069975740815756524363867214116549635265497934708697612102947813209055644737264376284979891072754014338037545501589087949073169924793900605717136830735126815171300971998155965391868933782876942414463867445238571046298024962378003135117497436236174440295107364949520359655354591274417189690817217167116732157488789621048064070650762890260187294980187975507910235374053730195297849960904740959298236289443842397109071543275525105991747358098544989724770318856125428224409115683752582591122516113903615761032999049833873958449804585471760598025836795923861366984002857480332297154241502042762975269579733261506421746786091023284884827349413060257515403738480687664375966366120998031085047858237783597851403110215866000793899586737092319714157306258428598317075148264473634406696823236982238773259530194190339471324062349496323490144914030543039247210185903596278274260839878601174488324419693368325004522789942959996230899289716199001477708221710240280437224302011637876857003536761276012580752222223521038818071296981943224510286167074222410929768765756702847220541976164365046019994028522149643928779720660869839490949294597854237660526680554230623425400078637008010320300417907757324671008645882065770264494910167913388297737228838460512713720398580983659798980634743650696293695175205588195499098364329919682665039876748270762355925283550153569969516140850356674181944610917732271414675769800492977673265084460263642083452549459343551360614628428270099008226908583887090142346672438267036013087079285569881015679523980866912290457370674470782374982114307239362574084227704288375623149174671221461685235697972995328724501890876361968842302893438195266247507363285137741166782668757438661238843274542560174425814396592015285020524906402762312484000041619360849116015329109679972250253238384198050645167711168679943706151827207923779030611910479866601671843831552628580932258354120057815079222798118782768801042847178028135051964040134806437972070803430407291589125740148877915692690294857736342501444030197403448826407128096432488630566881350649977225181664298282585888219938006933982581780649312253217032119548969341357330083692335879300333062010389145030297008924497635372940248081292744954725202837858693361970884603702412461773287020082066010592063742239881005226500484342376953403339351778362432198426356125880570067186203955074377181044240808822307655496223995756126008250411608136376247662173815498154065358823377784882976312507418352081338921299946876900324458105191407469143143218055073557779331702220965682837949156424326352261847222352265975661396860762784338332889878059685787592791503986010203991585504158534182420845464495249186419536179614100375203201331462310503167188691652023519651412689607032164066473836278805857671417741534057614463924098774362008198156971174232357824740706074605408293849507591210929884828766451429425699897357001650024185440707279239298072437114317849585736882460503858931939003595286014745062904958289836379994380431024147646171930821888382134480156529542774156748741547639152597128725489814149224916011191342730137189009994721308540723584300580022419984879776166182618510151427080404956133638575492748627986358597987475119882880438448406490488012723060658199589416433881184346226982535282622749943509696481023080890223889487941158233958536382044561521020763957739683023690587719873747665620235389799380867899881534587885285397792803770094467119061594204205466406907914476602113323064567997798995207117868403536583140084637535028110465167517895555432917665107364983788487058074580470000670580189080451291963853841478908722784259540743030833374885996517924076333530536031929790902998670873480398889181743927108351413724955253959822732747924435143589802567637004623280406815550924366728072765057203480725514527466066709844169665589421726848609978836101045931013260322990723310462445263339188105778909378130583588939463824181835122347689599715709506153415687713126994777907765671612381855112391056819468726019823696353547794353443056539116627200013719158414907336068023035052390791381393420598346188815054759376071844287549826207215997831811019929731511032712032034843777955658274963950307655569937876689672967870014531621974232060849961907735351760247708876196509985256083402797827431235223873063444233315556845028081443979860145205585165301181001326905704672033875740469000919923097488221094402509811319055531789559052707025447687222945865926881376098729081268616102063308389769008661593225821358765246418152864108140011704592847641280160926844667806467824527228925100917314985442250459394605414582491570098156183481381219817613242018285070770605712137395505018433553010577153612466845625085288278025620059019314941372354042639106530447445982110863121803075284043301976707035388035611329192394880963047787988930590647830681539401771871190016649750573890339453948681347826618441889307710302746776005862973900478024562759207131122274341382672863678395417399915655939699577752825324474631814412236891856735788044226173505351237752880230712471816100684829281516953880708069243942723281208258359085110522448843877471308993406728340069209254795290074762793042869158950501878287647199363194357207991049051596344172034965070818270588418040137546238889464808354186025333801609433313035683812845922780148897513983486481629712062760668577863723790367723055542805708709950063406916167225887833657418660050286160849201368326337029011357200303185270655615016419615719854519366512961777689290346456956112144385603691893898165763258463453172758921218930760370124721589185836094987412426994239008686050744127391874064381748307916087549368136184864167723504631006805393826957814706174871193618715502093419390774904425754262744619391616971742412471529737087597325645383154897786406818233293085285663226831108607854968687280475797464564630477461248379128818427889857980826244024459387007252631817593861888955374898314804658631914604639158758748899906481787849893176376337204153897401992181767681646809954628529791100969722627834266675200911643932094675185676978427219981456110647064064386066948168327200977950723203326150489555772632619943843044472067073250636456146051283950899662374767182746780411035742627033685954928664839879245537980181839144752403852341116851383215176699753829447415611495184504375944695934189400606750770084012122675501327007544077202045769784719532558722625982088886665633708071038418526072194679922695566979399121836433144662077146835990819760997712851111696124519880408047597650836391050692288202487613913130172665962737205434207216377444768775072368672186260296902687331762286121588320578764353598828693329209491868100485831852983412844846240078232173509183666755292338377980667734960063768665487136458253919210020932864927133252844167406174565242908561919715629483104826684926210188585797190493823156432316971170418601904464665044463868601986271417100657235070986534112169019091665145787843768855262171695869064103706974402111177362865508835821620986146000524000081276829206430988468313375280108177161115348751647751615772061867091089995043288138518403570366370818148748788944439584733907676681326538598948497740484855654647086310884848913809105053679616047783676253427748982641388007186661182506075382202797534293335107847718552922665067939183756268432990081674676145047514150218292646217560733574685334608198820047998869589205933191178044924722414231834538589919722701734863373984527464700216094484653874650048734323413858067260279286523863780100152984220011568688480672910788270064615933192618026831775865504089107009601898619790255593011026849729113052392381725159342994309517625910425612086006971019864460211650919389996194948996322406923619298667283889808030262565911336576724701126476223339499829390536556365747672142560998344053511069530869834708549461060642412161104846658003936356228317795932366637473304797410308939780053214369482762946509277278773013930662694148176898812350760363080284352318377491726486523508705940711005572243109202988933128724454820745003937633662921777753549373828356617420809559231893307147298138396878476470177642057690760653291132018894749809046270209604358079222421913917404360352011187501441205735918709040272487858918928281026153973443804678642121423996491536483110729203598902600305030806435817266563063588728226270010967307114123854604210446851782964765042553621460951184453130126927881538324892242882029872497677942626198322140174233843827888602239339372209171007206935636200060560611390116917863443900765358220091025599717466891817510509856614575553580522019727767061156444613370587748453441762713861929761036329138446246564321143221798015201145446025857601454653741165616795334673463724100715790565637881757585454526332579459868137655374514986137962817632995019623029742177641222277598924561924247434908190008872837616435174141003067166265230360806422042181557137468340166439997861505620008367755631060981248297615058261028866227881029567944919682217336456771120197260485172387669646876648884048366128289279569788221671671635425272955700395771399516135897271896914218491737745920513936290174647420862209677594632302204221229639872039505467699962370122212373014725485500805012371747351457063356102045618739320814407917584842859986948572422747103679304053081653153810086187657141558606282284910933799634400168942039462816457903420544265486092587853990592422702308575961842838841099304875371457908550833066534938119802713618145368027836041206846298783251957407720293416403948910510995237259366643721150198068352818353908107498088115217080869225695608701899746902851700418961608020585152644763533978798399513940253583279253727478411551355262503731057987309191538947974706611121864530809028834807204465793414458525519449070598937240820791726998174290389581237880019934868257229836183984887973681364589324817852156914599446587242425246554930296976211190208387011915594458825073446109877230409363079922417524056396418617680195608706555040458965630622725934013406667219846834942871139552105647237000021119823406454463278173206466740410778484262433352058536440460391709885525901980528098601450038080655828539569710507851332206592787892306589586216814400572507952327745517679248705149244638879108180689934872673320450024575107818404528136882180510099681520372422364819325008694326184436953583880185242219191109620275815899476024957608823126847373984804300868315002176855308142707758241199305535804825739200776795062729947009422868131200999506758680321422156838398089160689469410529630640255904114259032744440102367969067853153898774755880081803537451000381462769331790204590607667181623713618262609717787495474253158879386649875657081358998300922150138753827242595845428785522719889991577910029840913429855296675631614955489489332847977620296440253679104356547945532500516311981400954597452471966919991271364812362357745632579657431527576257739384608720144809326129035126578077699475613866954789693626269003988964358760741794806985129152872991321161315463001589250982550266325727846079719211224811268959800722075719207520001418022486132666053199715984397118547807670273227579574876292726743395218944173173005527078321876144217172349192369324759480091065846739924863063152890275279048250026555821578593535127263170239449593034287763128832111521903867011097512074895881143731507910715950890924664476458970765566709412391658580312508000158798292373816514164278246916210671349254112156341120071347152608171971916661687601653476482203642336543142298369966828807733862599857713704357907452795176753301625038825039534094121835560523252859907927241613503930758032080747088032575918816348719746715129935364678667264175737592068164862248480165185493477826168278303088303641850583052683936182218574780108693253226448177409473914159126313493478113938098368423318465983794814631348864910425382546089690409357562650691882243421622352292599603577704168350145430005233368027705342066416846827439342724290748172901817343238611514521489930066911159111895796368361690059298805713063441731780986741929366169997502017081804025163678920482180619932374224016986546624065390818432587752897020657053155528033400103156006849550270795182715584902371808967637876323616901848486041853442040635198579385694363317336175024710951928302783098239567382273869910428225639933534350108793005843545702059026501602087891727033307996169403341795617154084243860559739889652466213864278308138855892030764380561208479754605717958921697594894396250556840973606010572275003528721124646748252857925979620853795420299875196040780081635588056056463495560132735768423027476560129491639485620821129052620340074035909454579019310403890315408738113339899681314264975470527699068768232584884199472578258428045200965120684969511669949885533840540013803675427195167572186822100720633766701048938268071792011604620869123739027415112993064126091504844680823463434528656331845299181195880704338535555754471473715785986378842641305456847259296712312125906177478897079861188593915242056844362003054686029751468165008835918770396196731915615065347047482656203089869045352823138989332710156154990419662137505867216496636455233049836096174063992373007594965554580400141662546055336391603642601306164216013666300640616988104441191648189012104453477710372512217289592039102570488672578240376965041352620875047001018352944833542508345355766276219454770105261936129058735165288208059445402354667577693326124873641407638159547217396761781418275585338045378241584208051553962477656700394275516606480555718761953646623564568727694489553656866202712605920853458489532520511411614763273195646615422921953985524600877820414780994803120641067698360765398701423000266499321710787736829430321755603020033282970325907353753283309474103658591943593471160940762560919313708924484717360146155800009140088325919490876219826735262665490293054719104977176944537058738109219658133633037391851035108333602599825643243637415764077920683681828793908653604756144185198324371659912669667425860535276799472493328760534484163739783641457235954324942384587231997573705544316984493034509406738871199051718055186525033597811335356034754484518465374612033203244562301714572225390893716055320385187739975026476726508728011881253937659533762236756650034463774695117647842779375471595552027495515665110319697318013966076766725501311392520933837641830762573619615108452762123192473190290602460359001857999797973512418898673424503423188410775405677608091837455521718546368166854563129130890119306956106634517625707762367004098892540617211133658488561447267011868949212939525987840404968488396385809402097692188654139489196636644507569296138234780597741361125179183292294262641068041631462449487061149712701801385226917943878751637647465720428585735960394809206546223033217064431477726948438973524648159902070961058085920911491710345341688133973260304531640333950772604107724110527673488430490186632192387876120773085622281657510012106859179766133094654020507812423848215167491837115763039193968325766041359787390079998544925009140281789971541819756570051293273681714201538499127372486637747294010886954716388290789226394448320657339877391695264788358850171541770206964322356386338551260274158518384019179138120277978626880018488256316387846430737120835799488609698030031289219844715802035359410139990679752762269661152439813218136687216887721030039078290755089595567954446117879817056318799881842887547533348286580001713733993983474113488254066233428568431454924018297744250451828006069310259516807694242536590406813093523511625271906134851729323566225901902970187001432482544278167893510277228472581265643572003609156918130078893278781391001788535317611459963409633210927236016799383270682105771289634350919488195882474242813379034767821669312675100904135864203771376238797635658792650007941221103868376170411804816973181549775764998946103932070355177474469511595884657707523165153753250254191686078876645374366218448150654176993138914933397114150295296597857728809277046588905913758715943851769364814441300941134011085419827234504837056338199999736146289507260874646915922073283219427352960130540261081520694477835542920363513214706995117637682500041960147945901380193299682484811367194578946838079739670491005839151228537849192722033104408416277887953012354541561329008195832871266122560874983891043965036083885636869247356711561910457622059410298665916311539372938182391533450675171019546372200536566310595477563852530160455684034664248579403410099392260310926045038527217624705392474338882413422334763441163183761832001299987846124540641650327403643227278363355143771663924678713891296054431081017211943135144915481458178087706062725366248017246035747316405573442366222365735149285276065147334869140467442563793040004557198997313459389855466389981769131639786084237028132942338661696850528084693757992175391600982394136779676099112480569347118647928474489113207986749328551886388972454492835759096368206155420285061963196378898269289583183200162830463872244153769127787192507780946877371522000507210412391359579967511623199475111092660824689268515626638600263023307550917328114170201599269842734215617911220890062561659964385689805756006634636304391741533980219140859891895159779928811717190512533832763958557981894182745706362110253182900873900037439919322769310785842225539634996116298143276105612667817167436189684250749840478783015021824575394083548773795875000585687944449674992064330235422693394660490220651472988926123821823687961628846926098129435579350834548548599886871893149274401102277735329738277840546209034883236719452873875979118942579159553203709793431839065199140632431646459467583046706416378873434765603637211668291626772354066109823901420520397085559096214558830812513838570960281850017314951406832100873398851867049597701462415886194569800328178824630177565262238554228310218823212916266965458464278276112004928458084687891881006662452244169874759897346314075200055255348172607560498945386794429697553628236439341884960993203700217421130660844362069264933163772284850056559641368006268181914092326614439203971588019927307490185127379573932234102333676588410869512816237877389537674837179131468531021439758825743447539794598940111814344754177804560371958239414886994404397602693579028557142599611478958600961485621752109363191046315049810420190801689774524140814102684143994049138514410655652826921432587935286351110978011413143224030592999831765749895827887949186035568551826017287023200751400349496287072524000724458740121171672151645596524113667198146323906620439929843329467523465771954111381492640690686179707483024337785356754841609504724588322888399480559357411386626032507533676775549305695095975291014675327589885846188333890455448937623030898150528450336436237938855649852816818211354606023696439292618869230462367485822423824656127040761063493417924656589428407982086371893628017045106325191720741818740194956850461942689344351993072283590279626889358618977836547974028404898623675159769515028377271825396650413412860091704514997307701897036071683266328195398751705458068196650677279642109787708049185119488093796723277193393892654283111785328429951059934970266900336125442265713941531282121605377801996958331649793394603701602232109919168789964247759078873838231700945874188796298216172036120622878332535943640598655452457472450419431108910359145760069497773840511333329975327652604081406958041582166192959835511387033439106338155588525824214186876904178365412322119251394897594813289516427385815544833955992798767020807133443418278787618888104585964158677185826714364437080204158213943887819643434733326051840201240882263770025945582792182649782737770323255234429844055284731706188518952885309915422931518049546107443754709764759202116550196088117431742129752749290321093730525255861837089911753336886636907965179255196355281262141201636459221422048391362447242385752038828132685721490785480932701276235865488082663797399410562979886217724666145811717625252748771539583929858820779145458383984769901727833725639409376239016985647042684279805134329391528865922121075891532649093097572530081611692889578419639605956198477273387837905074436360521604998117953141159380577152036393745353614209701046572248234196465115726600838246141533284149936485391528472093086972862997169133508985138411479587460945747111985793542140734055307964527062413126596642638382037449410318263121889841468041534189723425771405902511501641340910985086117094647584523245907003229780411854398264482628013945812912856705223002181107721225836531968065418340326084439224582019138061849852272687314695716226758560867697139136650510247022757315429131382094178192577537250355035425213003844626272469386037593949702054164063930744793605585694611364646581785560074975903844207124364894118982144304139012502155184396639923107759863691256223329880102929606459074182337348492176569820067516300886081670844367976440924330201253191963357923839128489746261010388681435733096015596118307689869626185203171772679583576713027920877876595384594612321405820697344569106071966971401934179800038903727247166014326664510020384574961601171592781255930964943172383448815451841514481750994328566409691258892125855833839770675344376141578856408660580012371103476185963810411195372707013382472743140842668241306144621058701990594586616037811971233581231524553373989371529124275006126351832828516366266366110808691230637806330303157737070683504346056512252337564393772297784959725397106646047074433143091014554786615807297013178045249629017269163790238385144299750937872396784953501533397897459772192086242913567065999448809972685789627938878961728556288613041039446575695201768771112614276893936302357107854393750347690002389343075529397955682570942146597515946555736565698827407163318615825920287589370505342526601762915058820435790766906135153065106937762006618789193839809779779067156458633104664607319735424243667638156808635205201533571522988814205192528884868696677294343130494202353980081982101602504012935946717288422161938124436078461889906167196988406364447756255222451518501797653003303960811066979648709479320402411536665876209206471864451358211679877197200217670805442583083651807646500971495619926215297492030322234604701696132056564623697953950466830925163774360709722296087730610078527483680935868036821240254851452237742724033038164041818287874248561139498330494902782439745447490064753978395299329659704799225827579252441144481280757107824723967233592695294253707717902594561679924207351176069716685378745398741653493005385832794120080036251444144472199576125182802872937539563359610296631990298389139035183595999288145140564447462105640896854601388388198727589670078020957506526059765893200159996372770002292078043102878435749007976669944695346285879086558221615358915924176459619064417244986976853342929939301403395376859812638649217347425453971395773690704362586537797629727890629533283680483202071638973418724018289834283553938019506259858947354088495672262954256122119316770055663604031550329859089245713210664139600614961390128319165222888220999296690131748394658065218069001486354220515957954471187783831882340927794305879803978431724710753126442843080758437440907140023523873317916918938613549485236620433301284389750002497567712382579127294156236418888709807862715555195689215265399442702878993798103028467848951870181204475957850854480161902653988870327393286873865914570057534998651910636298385153357014288494548848888606725976989843703134473331571274518277808970140334758688220068107284867696930338420041734027971997757040122167034700635284272930647887309328056182067722118741990050756555944621552050241306791404748024614324024981405876804065914177361247609920517663005004384684357916056327091801965529947356659310891323339674607166756133921889905018778270399883495578233120468038126349669049203077094156895204927953888490707141956570756067486620495950413920922235562587270215545517149286028241494234626061690979897426827447882280221294709717462450580098746407722873837452018222690854342970741771042011636346148310453287620954281681654527295868578284258516610210184513582861744378640599411762977425089244548118073248200477894220460462166928470271299928113595614514474592897455266809157271889210928085173933494722722971377260518324203680114278440985784713892794894403987436206767102334675816377632566656005403072921065569045859922016979591832581333523283707597980250439764205831724741608250990394854211591605899155917235941743947857653923206958225587111471841157199122610917733773980831494019521271615746664088040262061617343209834828883052686580856762540169503474191252582582554704147221220286812460027307787657237806406456653985251280495726585699069442320202181049965373488723265497961529089926356328462061264129197737282234354643080666898338549992445051898036792926991984016296878021286562145697108754085581142832023445585732116639734865823354619189561240702781459449641513172931808092560507645345586946651938781368091806782292538657341528904465855985268137316177890904213688793146722252083904034868878348164527031164076422780729343779484419955739678558751661009898506841081895276975808078776142825775831921065094435997832401599855212465391797413914309034691907051595682226084249392141511428382084818060154148598074821356228906253814037838266291495862347230173221407517317579630224807475501153157323287154267423952004973813272612243337577085050959221392844970911604622513165314383664719365160403621444051145353628488934330868507226507708257938197159901506666025849835073026354352041112864729191466358287010342067401990359433084051720957750972793077784509769194682363028555047117440330366926107044881147825903592375080553064017416421948914047434820454728895311162636729528133095038420364056302335467497077886745851324898765140781098875383455771814213392711541170048185243326091762727472495413983874396050543983822257741422042732208583212803355762657539596872294351525022117932302182817589798844029897625972101747535258952734342284022309648329740519097048520425636919118152601134992984341700695014682108567350046487235011463810155609935788495972603519421049554460696404179300168181326887456219370580337608697914450066415484835646927085589048460917705442220719639027990546020685144801159446559754604260179745206222794548871528395985184245412469131014219646159388615822103123405798549527678902048716442060786003904579691717885379094323326437090440712178336560079153992331639622801760896195847044688341573664179164254122675866980014369492256477652201460693212158281849415109480541044056784158616517118594501859685859841901061962896205330726503536005010105903875689031842395829872216415964318030209419608371649840595124073071281071852844283568986102808701293299679422322026978197600535674436185804302765639441277947760689171820680097301521250070037754416002955837358393969260772185108745822237845871944997028925457227559561154247767746572981539546053147795755239460260757370172365364214793461451527826538818785158353557811962723735241550839751290001266029502056629344055663348545896757934411703835534437537598121395006518500833130946633929312108807451414128520023956898382731999606368795169061681800077610005889463599262052100005205032961822962118631170361229750395979596552923301062628332654907846389675889660567952143661179742081708803638314344209036949283857765335134554793207236915893545839991509757189439336522840119962645627645810096824722970931526151478272870863877368007369443033776780562526993800611114311799087531744657413933779073111954151348018351069359659329967759342381639846077643215888945045427096851102864942742335145219340856799967623745884742389950796740341615124058428491472310451598013528653968384302529218608359731128423159100303815828044481485389128808317415438039949333823916965589528104130479534578473802038643719684072229588497651756961690952071244311175842067046846644098025739607054388065201932812938838171451549454713356881332457061289316657917626474873611691441528741008067375887964225107541795386957579469010230969696958170115346258125286936035244790040955376643504698014273517832865139812006683562391353162559881679365908447850273914336741825532052451981686806222222765790364009028087620896771013612677237331959061818182201330880423244642732139110588273340468698626747977339776488734800142656339619766718216281491649505950129688599887293803967125665977122371988578196850349923601809369254160527917042896347027485683326704810655304912906237559272556372515368762178164142282527725626166403423223824101422013345588206912505944604178252939383088737087040654939746517205975187397621066227887172910159674999610458922989400086316130136559449504461151400978849152415010668295071248529056644763715596704871149054844821307353525479352687393903018129595828908289616967160844946870847042815258519793285457181451480741457657196878116680999273406920387613132826944417509436749366696563805020820740746242340309288756175740483019889858743625440729120206291637640947859404742096791390260739413940267869848938987929026576174227106688916183074419855560151207005065460575642693259153913667655683057591520949364991362015890579622424663327328047926711213493147096747565849554194827686736805178609873265902406509506952693256437355684450532156131951461571425887996620498232271089124783889573462859524144231816756988418229023352655045075527035364133704822456447182979911941538983668760434357171075067044056444016982313934702818757874468772736750991201391928827490700366081006075060093043138472115265828563920046452467468242928519259157484929336064926887805664799875721415946806538520059139475035999014241172342729103974534717770786482058291990034230694515273471488886908891543402679585868382416934931332384133068152968116404436374789507227784010733037280707444612970022091414892972123306764458464580802867483171034841023904249760877779653594767541619317504419899412353912226660626743346116632459285680760222415104554925689827684205180267482862555261767136799610023416436932230643865085788285092187995405030405447809685578917056458392086768785404631454694636694680690922750553397938789367828954773693160924139235731107819087572061807794058783273316444342056641935621623638142241909588467576816784963830720956130559813485238381480983000781719484818035785601880574666078747985757879594772090317374870641507518975661955918595176441317112834389315015504326105235862793785683702187924956778146309944850114674675765223484833891613380489531393218150593535507699492651584645622514994583636263468624602747181532340196383678138748925820594026393407759327889134894701658767046845226150189385969422015667036220305664999095551459879959419980474161366321243475068196704692772771431177767249553418156723309689001614898829357541186063363062492598390837766365181640215596710764320173295215047354181345947136810586684662093050171891053787033585166444460164959496200215615653258260556385717153335641342644395198842775323494876342905506974923246359343860251249449511141337588747906971052170599232675989565898987254630599430894414935886691978240201784433136128116235785333542127771254981654881520380116554782316110728746895029684489018578118752104627873405885638923912893095874029947791900089890419092706229854126609781896498933582283006893553381374412950905431608631518179736472637236175509789656410050042914575138860425908923292456132406389048191571327066598663590375003120722604507348467650715043736397443028341402968589672597751582723653514354483982902524620519913812416041186260544831184028946806392128828372439590603208309719756210635301121352886264121084949595004390274166803747947749138986389007934849724643437449874742013564330191573195666743020193527287917630106743945443353796620394170018083859657978820051928724925699865604152463749971668455641360614324132949011515950702462615734316709663339305142879532976460244782407841372978341612637969004291979091164080542734811553959599705362522069743895767325857499407414931191166997527066285003515008228986539913941540569740991582528382711136560226138922981836529795810902121500956116036990735744065865879058274578061934522926596727139191100715770935466522947722691237983380444287161935753900866815510421062162242523095861013840011985968574250628168139277673770757030262042716636815026085958261273285207920756351724470885508040885419822542352602874641109399968708245911785385776714733615165638604547560274167383168330061290005568564525803874947275047474854815230549606577059424300585344636373525321234433643318281045759585963979016230910483024446903452528914989836849028561179846507291269767105319047241661102249752968582348188562303807773855741022117877934309466408720273728137329431626814446055108780667984282339243868744132469306966123343371216601901219430454339030312078184788852948646488564308655798458780491339709572592187731043144577595102235967244787742276312478180299201198797138099226955147524551908309661601853137567773428032839393116875634187962969054128531430323354362083605492176605171915847420658342329897285466874413945853300462541450589611642770375202179395670731446497911356719704230153390995104324224072954632165585467282120025362809832845051066730679804355234943713151308495001522751486596558884852992992963420870978591553499527261171118705155161186507262104320765508164611297816098702208636215476633397059956691825716889479415332217018001763899977455327511109752832211557796415560786409887514671274644801305473162588848779569241031105126389571806832704590629301381084586022207539058762382747643565833227606678915864973273698911454752893860961214903969985757835066060222392985283774882443664672466367068254760801591489587143280499051659233554717059086204548610155635400014191227197686450765855788126310076309254915874368672260728145047668499192539923234937132005930549511287960830353212795692340287613604833144655010052512034594224555476634853240291967020128060014155115348370674696243993132750401293568171281002243468685281800750907616287846819587106024161040387988867527070266072704660639650580187385904185598921970545718586377101135745747608204590967969142481271433536552556961958355250682858121582947380960341748233991269161285874018608808098020446575502578292588641823072004539174037904530164185035888497483078578308327163165676113213583738918563935365963978255358648402819749976256163031965633585270757521497473110231048142480049794450812921386415353183924456622481364103568642762479524609009658309735119714187696914640509514564409899676220439305471523905057699992252388065582805876303317521125705552955634099236402640996082033093081247423842541497311428344423570250566845360108236051847601762211458309094133301729463076816784247164935142843996131521177466116975366186264411316413143220530039520934337909126234056548854587944884629785583362068434549971593930783817245937099042684926614847021617238690079022780566515449090250850667986127096927745391429098236844778947963772526581305407145002335234752817506462253699300438252770827597751808981712514204839513061177112842843858043250648229391706135674860442868767923118814466293817392209182080388148354037774803141428048148846642787243836634277643680768608342251957358243166828050142428184506312487540578772338666848773924632510303543855956281137776608796143429738299627774784892644440565578658582214051573941713304756923381415167713585308455176530439787675309032546152172555488511746502224033289565885853472554306257475488671123715615006040309135839645684247146749378053083974659190842142386092345216390806193365833965650968202671733932085878480014074132686364028479162231961829888558174271732591828500921700124939007432324516455861139051907273736555423528346481420294049440233021594113227059292294051574197877250244318639006066747346002585375563797869873074104238391984295686822388909243352881040065288049701975430004235243748399775504455942805285486158393350120966245474079960150839678512114421889420846632045829177687793621120517120460546122816581255256318886982177416337006100697085673234792292841268871320780140983810606244227631823650704690590357170265817248244358259227928218772713021037215290644628577186342843328218973124683326103728354888692705554226033487634756730135304077259749896617173391314207981272809344054868887825884156081184551294891249800959963010327763937494613283897178275994555067504717982505998390382794413835876620867112255496484643470724699429228936846112566111238453351711937631553258295426124093177475696289071702362896039114108786165166773137219003608641962263205567955358820568996749480960898581953029118066566782933647188673094334953374048117101959190614299849137938095893021201380905655266600277687601497023754987136681613734906869227318671828519936239574034978409335413080130808776440882691581456875243052018854536969352211835479593887890524329368665806756353090869285859151425872347265427111382592520042039568649421503727373090973010077061095404680814105560173034624706609248437914432907554167170823444011061780450265719846116049259295966265766617046501154517510032080564113260290369381297532442806783387709753694437475185575993811119366718796409787986303717073248194627522625696242973507460318674324314278975347624055044431360164607115932483451665083455014047423151548702880494764197593728767079869560478436414521148145719830816775814488585251648652650675977988396204990594750059146751884761061563550571502936096885254323946333013461919444617559032635424013499142414880705909650245996104920545161362025369799278685084505497070059908292697535917082676776309599912540139148704029677591629633818449108102740461381762650364455581072322684605111720088362775005071979481700889484417510244337612529114129290213262117068692585925218402808975756157217558300832365772327775183151100525736245017003571200898518910797699690807636596010826671989581997667174983548591631284951599174027810557544454230389651033963077558301817038578642720655949619337192567162800645940881067729458654436990996932345061967628394023644904413551089186737907166829159447652912709125056174352270228122038641287157051835250980429760944528275329729334695313485853461687690983963090420071709233839483566620419476668589358395692481212376119619556408215694017402081239994204007123349484870659683128142216747416438461093551667820271309102719293246720397555528394204863511475797977416341719873194717293160813213254907667609695739352172736675253459617109419037240710984748804597388455879148446850183437174422322754187240225462426239678145766111458072170944478708350194323135373668633012125806655618934365752163470430713253222661436033375610453168348710918051429742609033691527420558292320477338348349399050618502551386443071511219006965543012306273659282706033548032619749508899430411820125498964007159795064276549384023033209668737614659495772500249282179784872817795113929312134432080656559158004542056012702030871810167164001258896577423253347413319887440599373663639225520679575427130015785219759065096332155597451557456617521898022824678090405142979119843328478128292231923095357341863024800291834082580845940641909178236937597515651585773956475382389481258187589845520039306161413539854027698037464865473870580449319241044155079428943113690468173185795576081512950530812708143022189387241890445871035902728294103266945600416178982071598897948361115802720287829421030313552197323707603623014890006238778929003947241685065512960671980491118722617613284948391094840846178730239978471746564676783119806093793732935180901856185548104020909000760924262644871610956803709059345059024973421909208506380075259532169442898960069310530717927041941597212587528315860551386984552816455268490116948867814458958575577424259252054373478673833523872554321488903587391748845034376822577516185059190976104554793187260182514782651847220671869511315252475303471379151181725200127807632790044154098922529473818053290421704110457545665955720425220884435240663925628619777477642994265542685884308301051264154660157154481606847282759707738419567739101165866677785127324893886484225189377312797687421914923924198369632260277243495518666276962778676331553240740671378095918647886542896368906351541818794461058250423880913499357912212529648778450923064867411479795166738382533652966274631283352917203996374797286155939798330336614907056744891734532057178057923296766870466204747219617753458358238924521019795482501227785272879283771331909689069014581568146897184073963653981182764515485128251940309473582404929196233096258662706916313792314919420858379349926022979784820161684599149134723796669261250559736997355460719514757566171602552975001769578417064440805442769556670972383251851957366600721937100540970867202050021000290805997211069933577794378413184736848320562545162058764832464358114560586433316192661395884274375874555779543095581298394563981711874355863264062718009365396108500307123544964175058679973770482141595591751776539559611460291832258306551879887547343661028020457984364422121224462855064562995906172260907922089902905157326257776505609000314511249965037805541623047211579318623214074482671388209584582085399880814263074828181317775369900678498398642834381217051118212908238706512628509454032052129993308738212813221903187919763170850003878095947986443424544542147993775562865629796070505713258394482747646430430591226236026536009961373176875329121402383798526667339413882583594696984127719000698835971593594896343208751744418305361407969076254715873670697248909473209585351681622899450083550541465697998519105190140424905757318585532739035023127939463590420714241681758249203367591401548603540897403547684626166646076607880599633441352441491820330078372364605586190525313056101482765626043133764845860624809025726617501578289656543563215285031040284802393427463193966183362140202937931471418637440610647620976427786249813150593050926632056882786298507341192210702493248886339381212505773023904018956553319122208625603353209944669376258374786501600285287710174491983944807035260597970854675740237824607963967824138427076936423610674345645719800947887622671287663555267615721749767972067443744061553646791000583348390907196332331609469933587862307530125340066601055424636688447015007354092519651516690160161074889578249019173204025165915424499249993221554676752900666069390047102699162037814849466868246787673109691426263187508495466502572360451564054199335880117373306669303824750693983949544072256041410496951442376148503834348497605623785049059358918164559260494818646739501702693073476010002946493329027948989702010193660981998524020519604780780232266320133378492222783315237790416797840577492434312216920026499435467285153500427038084566452232152067720206104443826576166964015807206915144774556519190278638673429983701102280660461270319742981003389470618439306613759408182978324371273133954353296409177866050312081047667558279640640677144588925030734463688208519921089529122831896859401100443079436115669918676101913468844877743763335224111722342027744205421591098566239446621018829257967227753279160966061002274071260559313109420356197706604383623809776714904889415349187126166584250207114335852791696824790664009422971224357954254559797921392681430311969101353178177848432254310260661239358552740757851876560483663495973654301397597728126700034545601782078019725485169161780070110969379929901192463530955156042337487012525433351072275190625591989715273208975883660870817310565475620647945053546652779263366289094105195437058127294762933605447891483667991006097951238572525021427752925487485642410631713514588095533545473024779263092936287783544783793953894704387378454621759451572954083906470595046228373003202401447784081495983101882419581019711598339843652691406711761154285479481694518771286679860037252793714626016134216048530918553821227583506648767284945136232848399269837121756333297833140658112457059876692786003291824682184281468841943584018353527728852130031983780580797217755002431220564154041458042564704113146217233586512654596704301504197739760221198490034014921236513356146864267657796431314218579346474579917563278176081511967147661031564921799167374242823688575344815428448290192914529754469928334452759999907333088745873524572668087243505060527478070799948636779974051073818039218277552220483050456321655430823426113197422708746800624922199247981592517908395337090659586051676500708053478494889552510745881979393535724768247545349053917874937602480942584920107480933299808816644821157933172388847629536395581955580912060104847701608226960147433026434108792543490946144995352224296422713289950802878153943090490098124577139457630538733445170443844517493440152441052746303452642557327374967778671192248085625474185553229213416949615301288653580079733655062988041820043898671428374436806252416568285609704954253364274340004768168765034605716130200604269162185255998709568450143741884650892026136961363261996020264393203125824195882534351355351911874682936897810946950278621980105265396827715479530530857711084365453941731970425659060447285469332402302694298700676864073245654458602158029869290965544063628136565780175787506494966480597785117500610435798992152035199052644096870879180987142618428144799205099047712073006619232001678603317670357796672336341054855396471590948517124603321715720560691979015830178864020119373189952177105947508120247258286063417162830025471313563644210828150140735717945870381573103341225414348596319193416004898175683331503954631589611542373208988322658388351780972876160833909465789231176059319642926839880946878062717636217859409897094753309894853214329298993078348402850541461735986041447438361087538110981730184804354946566019073070712100114549068964734031673585734252741711463725507485686018508161495412162546264311920314947283963915995826877917158032548550019639181852220724566056292152642896949944322723239956897228179376394535713058109281398151829094948255693202365925508400223319795805659130765637729019339712333281119814820825468040891386755283613445581682987167806952471228567897051627986394600707322572677132051784258084490708577141196748505499785919605866793371835302494270734649901144853421483774233804905254806575455754563937203522282462094081466112212712141676703061339641798940411051677594363710306706908710983408838204679139572182250808709884230025617459677026917254828906515153761635517174169979485524668712738944532504042379365316360286709255040371001130637925284293311083084981253333394767507537653760374635345064607197593791827216470599427101233176232025032892385439031176616908814691734116047010180913359090511696934052581611391876991777311737186573282584462320444590508354664138031000517518970864521105434036194473294608706556290035135815906151244382556996679875083664784360812793357286082712231042600315540759885978260838175892267381340477932591879041930313747401019714056770072346660518131069960832888791583517290065281577278327063182772459126301108681675725028742931870373763235884884571916882389394795282057617555015387498923977861135640118797032616365905103442348628570224374121907399591118978394945781523742752416942023503548287719442608886420627155350351534162916302141162494397653397653764620837751266795315159060507537760514258835203384463242727957785143591226934864697619519383882786940460174901893517557341236991615578523674573410310951175984166377864961726666242182032646983921936545826717068400291084282213255857424804993836212200295828134899748246154929917003487785627907765990391892520465448989447817861762979549504221826623251068073040747498916370169754579907753349639196362859651678125975978826106608249219858027174455433853795265683977804611567164422405793142614896255053380962932200526586196827109063446603593963187507310559849293324884882655211933744286255663613430417993908572744099072919284296964660309077296779344206311856259723082570824538993946654520394130107236777759270497870072906241953830194478589146973155763054016828060130132711231603445178994279640660404129636363045231481785266095687908424413454544069604065785821599195765421246480313940967958080035220943304549996563753210820045867451939376116944718415509802872826245853106080126573060537328375237381618000815742637018404636548259418723597934680541467856166884231543306553812454524425165909268404044436200593997021907037485952357791968861854332559136357221156316805305443753601112822350182492029041383835354575037832769405989947931924160540450544027443843396683397340985300336572910652092716126586692252152031540769859096961602834810501467433456139711274515389972258840531238847116812559776257937154492533779322053038484284729374389339578841050998376488617320392766449262579106646952163433516672764070122015759597023095344649484327673261914601277869017191955827580544264612342647021226386009380417556108306261943096245101960218236474357352759398205684679244950123536815051041303828464827878660408495244422821235129053661620431837512855114480496744875155393549004732652223149080485302731810893214525697740679145181721530581507480158265505294665106926416393080907821999342872496213644787866511758188029331820576066218426879543887061677357746868876256828745974232370521516157972810397415267979931300612995777216784110966297660946586408103015998794954747902504929029418763495768930264985620069347488231217474967630338884552906233305838121273479671412309067561854796585268149620077548505133603092243399788782354271462830577215294470093072708960252030479509307830123739473465420342333356341240864176367672397395852544914914572646722689054738461567928614627714408927416494915645484074977398213312995121166611799946003811423436485297028163659379731472162167893676828747409465238322236079711430593137973789064025289117502249569806495801277185688176514163382320821219305698599600487318439594588732848226523298774453139980029051789073433128401470992950423981932771125446647521539801912600014479579252784656369070950816942066249035048760563568486043949654907940352252811379088814673148860783131542794055529899005986772803133357000034961864600659055517750867004376794486353123217480495150583277106529522575591934387814388658622190389768459047831989692305759155765039783277364447021723899894530885479614106637123985806754653446316005563419774705605077799479898976172561228016616636291228942209467178433864437653024655369918026707749041982346610724561563908160856392389340869509434322842339669445095533781496027095608777473208116122160354533989056360012253549041238167774422909933216077223828226695969765566325175994612358039723692128549431629246248963212138549561693272848701294045128842621491810095444524058074032261569820776417788001071266617416605815974277142592015107764692963010982248638061974173345488675255197038999966265288499066029517994459732932964366278352561053888398768226586159769667790810739007651969302092618737739390291436666290164408339608032865065668500513066139915377321588996347758672033302923612715227869321642215658224140835880659387715565693848816569424167449066651544698657903888049429966245762879137147936956672683328400536192776870826043311857658104789233706151035079707810582749586910409582462675941640950406002139667164821109690369724285897769254857836527403619905753494290841170973293519275932028528724628878726669211498667888157485179843416193648520970913711685203810334805446541465954347132518588014834068378049837553737999624256087885772141438520237998351175422829805013240609382908437180639353764080563907183944520957006114258311712914324726067363329013616087453258834084542576712806287791181772113932320045910762717457825954025412297752333003826637082026465282292315914919864999233080983975994221788394505877646082423158983088869517838503554557358241308810746350478732141577001935897866023853972292059991485430159349448016057606276337647562588491564271461656967605374669021818490920189907677368902056738201664496538992091847181640424609536072606897096126342771879512829441176896848143957043927555403827254774327074574730971289120849279070534276084564606274709923404928673838727934533802607026825822092731511766370503057232784116254823624909278579325701262039028085874812119444576269374141753541780878960894970152742049386012722881618246011785538342550738175955877735777953633712166152393924934374930580085879516730776673720469811219769436977278807662290044788740595380771329123646175222707792572037567805718606832822303358651463583252170355053546854554647891023166530729758999047167906924253267171211803780591546252532121527925840303301746049410841371330279040202437984411625799900049576885410829607939271931277401644549881578068993357497654860526672148959726248045383912817062633736091543141767383894268898466344588731399320157296787677217393281499334449710408441851649611631435509538532992048685700692690476139012717890542865781611019076903684346434806218012964390769095121923326262711344508246818529761996785129734480065282302411393504641863681956780811044513729691032746618370853092826498191031417087348843034483182217140458248024480158639307894320052274859084572470460699499948200691558145419088852705035470771899238726293782812683006764089822582634623712806701915019649826925541529329874262387386234933438293650301419872609709093604877068508277080818831370755414691128813037716485248647761815688170154399330100873755930674238647920896518007410596236147711777164079560414364184489433607077306328502063677607804494989602066135290426067236698600439767501968521355777933829124575330203729841162805143788192194635285545336401454833549380198640987240225367445743150817805135960103522346256010821745698215944160950247141428724204949790365822950335121948842619898248570618033745906814062343510786928729539280823452247645984958802656208430721005336221908584531965750507237332927438479025196768797443228044774014527585760999036077615036482958915695024330925893215570046692167256954549045435663229891054540990450790079465598172647110639410424824898612966371032070354756477150839706652371947381730554741668853131991459945812466463005664440721632514486571620487388653270910602998613314851280335483861107841504220401447896302520217916556420842528641138597531930750638560317477405020285662133251132710619187729963853817511911661312262728709945824232401874887603739727792595346155537486493662042586290121479412726326468184173288690147325971252673889769734615809507509331951033292566191136022393546476785427513852217992180005394247509159878958899505835740628765821041155758931128383947604111659149492532747082611667098132427315012238656448918678134352320183139618169832050824093379957258771563261587289331706756323695765627943544741926083490630863321245239363195910733616087035279708252156594697474864431133192968825577519647048476186659994646561009209024184577427820608301817677862559682841808228936723926106088788282252733349292592750037887887625386761162528261638463239078649770731965665252630746114385584630622131909525269636529513804264567960311448712798930072093881545067243221555315862947247530558484342730219299069728042974081877725975830418173777609839734192827816248712530267823857843154979419353260635759095600813522911105084566644752838415724745141834869410279893009057424008716506071940344346904153676514687466991119149097761185621418405754718774657158772039460993735813209042673583125326606835447564393190318291654246563699182861000372473128362096665496566095039135542228769156359998181664293186529618578713714336963914383998614644561650513103165908448621008266038492454449788209986457678675981981384535864542147504514622504112233153289329420571296737092967256272440296244762551149845696123957542972016133413451642541994894187949162247603925365683899940422615859639531625715212527741994737290586111132838451028553396378355976452726121735656944338735880028508418438123236776676126498958257896211938918982745970049496819883238005564567063450031641297877071076503482517580527716630002491698265332910819245354286188027322263648025969353735772904503556813361769921894954107160617072339574053878230455129073686842233017955357824662502676935330834756084527006074609301464430829932399709247158725120001311824402619432538674079891693181333446935389215106018783128223177846033177872096324886977628984666184679939955111600359536956552028053735053601189790748742908898473393045355437887116668417472620598353325263178798231306639409481640922688238986909777624678331386356992865971926982282530492516250498774298451108322674507848275357343796127730764391048737235846382646922969121243599750738293205634583176258971469590642472295776287561861716568105579711121075019106033989105445911523511341031408611364851972209570364053273785786181942226829198592835518714264160349534743734159187786689390186240001867429459608941185933107148200343794114374833775725987034674656400868049746083437024096313733052159872759220916976370474804766177110096459378596029182713668122298538272819659889480450885676503223509947814790867389358346725108957646719079299844787286542647595370705506314818321481041882040543609535690646377987001166002135717990556597287082119815725512818390805443299952187753380600526413363258778835690251844815959343393582709296387671792682600296289435819923973148600116842180799876013348892775510871363784390427675029209411920300340320597439754154175966345299964499928335502261326269493914508280705201877752087809933259753232384323435795167484257168467106268058685105249180160833182074723265211998804998230291103433175437418498436569838001516100619230696006828835677368722523713419802667923909004686673839432716368603974725848413569463174700390334678123062237318920170195473616870639300552686288988728886674357874614003079287132962210443697027673614742070534541644299016460201983787568812961880330625198289464155910977521252722491530241014843654426596272727787160768772498389985070372647061065171610367614644080350408325037593236742641916718961227177831744889289491936189652569507169106558074545752828782733982267112810563120860099743903107607218198286860524915614513064367251221969996680245771002126883626000890257705559037916052411514103446373021452761507645447524215688585912098801716173310586079950588120389865577910261163786523883561800671736613588900383584251629435758039214686660924025577580860257625714677315908358359423373107682583090248005575724575491430795665392865568566572680231507988853376494285119913543860067564736430513093760592480490393839335988873068325250924905579211067353870612342168092982767096381455545714829207492171668226851988007954640518376771715169242690042716375966474474968136025654794990193460728482736522977307086795882108408583065095603518803307849043529214242004715929423939215967770240736253550760402579457607072541457525266622890579308545124274026538170867438459256174368699931677198700279719655263738682783397046248219681595088069078069614564311376936993930744746699115559453461673627128458437123261548012194363876888437238026061269994164943333094757866231665384014024811691900619149206780853489891703462991810660199655225300912439366772195950522731646512605991513992328274807630325467123269231975087136607635293067170571929357439375911040473884618935077158037779727010534601376459893536148259197603966581405163725499877174118674300576707199407584624826956955876570429055499495626125791255923221737662453334509169513151586603384895372191236680416494940743050848646444633948267516852990940768873150417558767304379051247046339857390431711669722609070908579656762865260148676567377348721547641532194212546079163408885199924716728944836687475788638278687509562339379139220867166225022472286521912775250492790271885314535902242076499576219006619612026962613570670963030924045828945560158451926178561497281640177518857509630390231426784394646490637138498599590203752329395020785595969861775638916327863927361975994445850766139125020202599549818382839916176871664934751251665600632045016734976596496175571363568838787659000167804123624214165682730343799655189135901400853961647806587903548131443389756998639532794385672709538920299954962022235869630191664890925544968634907952019767782722598642110154360108508009361114657519422315632853065855617794582379322016354665418406250075127884247642139688585224260171983648947611738917044207277007846795143100763888239033519456506448667638939692615740803897683401656369810100674476346755461684699862565629749087477432715168316191062362547672949121935655341095493235087984256826657651544211903570887626022840496646573478032302141968900673753501187195842366231725455856215059840292883516946940612259284191893821540646671652396590670653725243903716266070614223156096198043743738402222376049057454557340762822092847926408041029221233343098382245638373009317195610698762790952559369151292254049592245176095709109501882166045984692294271686899602127280369264351145301888684952430608924325675770468902326469799191034552553054579568271591063022740662459276335734946376831603083351390224024747955340490946169123186328701371630058658251436260151414721704829746841302153119628755327185034878180736993310713188641559890269457068509351346846081285341157935291744598986635164504977936049007107217538907515381806420431286903762414408809304601724555257102062508562390951573236424708613940294672736572956584568027164176863184265982024252389680426120109613906074187374220875745697174566083396384891372162767209002049472014613595967680776623923123417793223087710273015120202091341985761760836104635525927341031315781614096623932890768067043470450905221688259610223252029972006761200188136838448433360258598099953667749807293162545230278131983407821926299268618556521614157717236073267582127403006894220562845583234332856950009149927911558133375872318971196769013252262219057559417997476041988520386765947509980901878332092883567481810493010424272152976802232686301388450235134966296825500132559707611295422923310009018442327632468374558422824839120334562691248185760785395901934941788976840422314142171243360011606391854831300253524314887752499874755042193850736210018869434201861189258017430056048643422958772653724248703667988944384401106050248317091717880766900747869394455695054900565812577420161767428841170075539890956417976222756728915517957163446223151997122742210629251671079342402490789020304439470719222472109365576459396085436425216671372312269964316399478813476814630115410499194710793922828788735341158392933848973061923320513583606221735834312160858560147272906740630450165203241959744541441007161660862435715643320296463846817359900194061619579073565207681634588274151087822385517564925876796230653820520196690735406953360278957272819899038518559005215817925639553595031286500488504233185113410598435540620526737235984272366712020230535921102307517057570797882927448915209047977745808232655083007694517226202110149000225574751201742700562291887571641581471823164462789012209342989014559971566392699683850103944454981550253246912198041779119981976118928273893192654172060361483566095352246519402306553567631047641571791814009534453212427020295442805014189879622887056801195131985775533554863367443304650057048779730564418951388467878531121850619559024684683607191461195844942958857348886905478651545278513710776629976665809218492682892823061476072925242902483288420834228641124849780251937029168388617635346669879940482637148655643705609077362595292741270984802575120684234964940871484511816516081961978651096178638490540659912951593340898636689528025340885266098636231880676660304042348981587878596840385249358255408292174368787910289126950937713782784682011362047017690135890915258182959000485345674001577220635083940268226016222263429509455073381286688196812799127521991616148866544227084168690997867447376895576836828227190897648510160250363883985101270866642934910131846944752557471898920884760826280921164352860106884007118053865703958905906959248556053672245868809939017127997604095904479277110600729001453110257869707409118347216943653898214301873507294967664924434569288958792679902241478271760514287002395042260616874910579132974463245307949041022559802512790615754438557061643357382152182646246844277130884648000908030156905575468820708907341848047186476220691665712082543178876536478864716531834699560982111440388782986500371289294370660509682891846084809943956573414831087751513602472190311772382946881794697820924611106849212673783211222642379290384144858909635243860820161584064861921035019097137764603705914852246445690802870464762926852424999677725868861184937794944749349531720771774051763552012697358602913350125974921067309351986739724341628167392947153113842738581882069116093444037075920556991578844958107730843940981288769002722936152627320621342416133114120718776944162004361240551241673424021157001180680911201176150898123968059991335292429593240414529047324632172375409084084197270985065074680481388695024872411785323708038356206530739225122056080112387956797851569094119007291590585650307289888854418640762728101161111582110864624420725418709799302876014554531437203524883408565920897978476427565736883790619147612670369511492607804644071600267214457947875637890646891281890974827908331278332943645638250815589071237540778131561238063235261042992870178933556141392943635064494050757074246720654052176877227789753743531822873815767989855897135868567382439111468073982860852213079551772327360912013279449454537813414205616578151316985971000205203562412462317489174361468427761489967231076047055202753071599909568810606293242453104210823323507928011227233088951597143441737114043278035577625027353001979686100099642820117808927083398119280261525387544767611751069893086310202745646551853917496758702948836570018229635223212183300500852145570119348882741217953433252742954480466260935695507282756847444987093529726476403382115956229270846538072627436418330159187710979705301258350440790445671802279780003775625288452340684633956803776038524671701199443338702146531685549035056970889171170178661383632037690354222204328893775759649954227832794712491739698434267908335999443959541969300675808894707093540805410778197148215002360110136265209047543766869001358931043073903544913197468407655788217031380919531479948999811316460412891546837155274098473563233773621531419956654287303034063450383891170440947220900854372675388453493017713805743217482653704389111660272224958512652732297288319865187386525326567540396593237502952387363480887441024272938117754034828407517086197872644685470379561317934751473799294279612064834427441222946202524868895570873223123686781725537983894303043108852032961015333846574597423408560369149565371318287687033851366532553473351024729181705698427478142522716969125825201405498346246118060962425969822026553015909295667710602147070495614970746576374932455675626216589564524636664577081379512518092723038017021780681206124248492592844035838601478302083158738771857158573627548045060528510094262621062628766012847739006869210007674513732889488479852018150264109572844685427416164637767738118230990244071763471469535160848941264910074550506203918022978261691586781231186010779718989275783922559947682774070387719663839861449136951920401729033646130927104453566619427867768282071700370854142953343724091733630691678159570305445368926090546460858763731892203233484548379763360060642395303763556162150163242534081427786889429799637166055247406251485855994894201267693307054226621862638465634464596169376316932242463575937384877689804138504994488460404832398376092651946090114360107309239102563639817161962398639317036627808269553178075459759838429370824867872035024669292325894619570573889815721362305450148606311754999811086055425299927461557612531833220962101367782394584991491009231579694256726950824163826658356907349852135105331780349358705688946881403904645123905108828243415565062413870240053510774427066073606471797342544714842503796930560593770712934423938330962987622010643259137898528126159437620700959823217831645538482852349695501565918352618010668112475752018421605664591372812875670184873848674838133976787239604043794301509322605996454676597418509694720693385593580380667381333005033394464907461967202668941536368684435461512857267467588605493477050737337631831397828912108603907442346333694724074106335542345362488252170662372906611834017927491177517271299067344884860762754397305274305734731087432912663153196636330997778444823780303676170294429468738832330886923089619510275398864415602604031312843169136078824525189474458115115855571332575144465956012703559554890474728531603700484418865865263076792343076238041385423014354036346250528170997219217361143826540576868687938748513646752406324087167913484641303181665378940523347949931117130128070881700226323562438975616328038141051042855591279375449211943500458452508274369930044973671143167525230664124161447300825425892423288817505472786966555233103005079955452836211452831567187806820055817263823069112830080997351556641173710580953763308804717809258674079907945565449487473376364848502952802528818150220347685580902453936844305242554571296779772669157274008552812760173229935285514327053999042351631930859260635228874289395030079678757851157974590731334680442340522854287934931890042517054015939646024306526709545641820835112269624973522575533514334008219106874575362912233102346358465884130807851895379393394790211756550006606243367737264241067812124476104556054439052951852109026359301952869910891659119232165686100422545705605824094963565020645506953208395950063925156227478511271704058105112832730640831770310562044029371528453857320777644757581584158071335176636676961514622797364781484782614746981238200418896148947381229223787272181447615827686679542219190211274447809717177601227843173302843437786164900313337108114886032565319578688327872116612099695876522910059997662610889330788876548695545199699916544128196882113094261951277331917886968594637260619486931056022951299851712311869772208293461796570499361357703251778884649982522181073211912173646374119770082524484093750476695619335749408121088790326567736634976451047596755547261444774010095493610011834615676528583099145633494900569378689988184641664854686023359146721802278260280549205667329018605768304010848050145876087394712631145542214116655980078537877350639059966484464371032127569326607000894583866145965390438395662030104523757838107081649167124078502545263342604988198337828586234786727081522672903177009934145249787552948452147996809711638324176279629840262662991733239062898403221081669418203517870062615817901964923429170430097073190813851409067450375186118387060290042521987501788524376808257953111688889998115592871185054808997512921573596775004946019753627873551135009325160857669013364794558156648446837252648573515346986817590204054859457970701377131907093107650663663732789616623588628873874237956250333304889927796691888392653135903083480057900802102533305920207510573786228452469365453619698809727710919693708054427905737437762143822466984980726814088601293529569467077968366258086510983578535867527802744305449046707675935792751335624921845349868394467178372191887060898640341445155740004282576740254517298078101947532971430364401438410392897804967595504760311956924822457963638857462846247709932524122624199359347354726929500462602677954859645585709924215964798197130924421608849814283576620493053733912967604186237150818743686431916513494758613478987268334804238319138242804928264769678738936529464968469754160737107462760490924120380635012164554482939461445498250013364879257625744487606748824862133672184542880122858814093366681452884289241274685477990426046549706055188532160083823894304154690269410072155981749128443017626100219234605377592068253181819682289536627982119274263477807841326062395542482623002965854866206159556613635348290434031652568150089084571995810138443342355479717627884976810677712599351649283195460435318587554855543366627458090785887302497054413585080072109972821380017924767816642423085994469352878572649215472538019331900959364275900528028641377908501499776312376135653328617215706936628334999587175005307380524183896236815398613407869435798292025491021267813182792623327816863536431550389099089142156474221208078221994911976272497582363684910249804519245651408890931019245469423607126164787935255824767860849722441797215327480148066958781724422453647786467599396037219919926816824450287321007037588696518220443405468153600037269450683291531707516219473368059250308886385901779881582466334739824475715393585316496643053868450309829575038642521401837564290148240419867432076344399608165457725351211207706683695372226099800870380297274819817980072735840674512322684376250215341160292705258462099231878792214614446866847709208301995971440481333977655295090263126947091353502412733390636886273577207249300974263784281090318538949554567623537439528865244576912988185304469693248108450228419220449241398756146990022363056813154450181270123465446206663693129859196562028926426491544018566634895335313626334583814267867821589471511204942343051165081197281589174930357269437528184231268062768077791474565465006895054580284363167117899885233492002276203685540444489305452917308691187108354361268795361676348660923553755815977370363726224897351985545478353082512782212009275631428270506729772480141612125216046010785945784103431713290323964066560562548907235441043147050120082180148548199700512063883627696545143788140509835931621596455115030799652937854808475169520249645975277200107761394845884149158579847340428449177118695751442764647865532732277235424625579707770641182537390077358365814208161031960211758990962664647653336047345218658368012958367338952414440162858207107237115567234801490268503344387176662015850517144771236983260440228189530291967869803190429202845726496127353195438161395881375105257574936960687380333787068303046154434064776457939710456541942388949777017770830215427403607092477083360063037071991779537891731127257368078038970956765787211516652980584896579279447160420612129224598870107834449982895663729224823477836424233427237078716112137520301916165642184021252047194842237162949264119729396280491538364853493584016145558442531449627080702452125566159802490435689261554189562701502022210925066329499685148436055329581124673603919151185344482005652649783890749145136366997343508825749931556506849550953526590974934709622507303769617170141939056870359511779793559201321675415592324054729919977165573870479667668984510187837354326222725299876288415376721873182256958772810172147947191189251152705075263432457226779733611945005719790993297784143481177148682193730556271017493407885293167773463870721784917396446871514712418438856993187676048742197495778177808657710244486283140631495952149788639830782453470930845416135465011577442536695664852172239340254348468557510126188092742650776018017354857698872515083131502710345488799525757184913902908423538060150725461980686261501057328743852553057009439182802198089511609907565210243472667206978885826340821519125747985212618055760624692374512155182841099514573964067581880177557852216014305745851440011227073158624598531576351358476640615112747702132563964779065700384767867060817533730487387155848127472461209247087465834646948198686558768683037849578038379836596301648225114697608422508124021602621080728013241595110486820499692744288174170402124110901391238032489380867462127301553798561359409081527663944033725197532326483365384218258064979160831939920840877702569600376931569344797301715074331655938825199905370953876320604048113780831200495109071531773077406717958687971114005290143718168048091278682207452188583757115147058816056155615148152107764922756165595768623263162888896134823029445490085831020430409418247022118706415211317257377710558809820611651753363370149239182789183258215061518895282787272090759590762384543763584806975513853668494758082689837610563420222279633170806095254250057512662215830582537345930163100885273680073279545010187460876822860011460681766608231166709244121949325013551811452046225283008465074776194276628461586378864969841352425340484457273723958333808861112307089306854832868421472854738528909833488969889939902325423613453565639090619783044532521254712858354066089962725049647707977182467342193577034370536464766951109306904152452886279264347430156051653689455130747408786801300003650118788904085898683808134531005030196839543102885936014926962220773083958684668920495106257150928566055557395123752973345837984350513429420235541758961530349957013485786257135424171142474530100679921207822808541233678363541251534810903389409932869310739035081969798047275657088545992892956376055471155530715040144878838968154368529844309690242915446830081162319208934884290775413925230217220459762893775938577635785558127307192805585890903948166479632143021830848708172390075783934217955307851063953866526975612166140341112260261840385012160606497739044103123247390094468126805397815047596933000028253681246956705609010158328262143360069497612861552520217694326629193124087803110020414629088150784752781018938273690842639617716741680844513350251630115363628929343282287536058031996058061245242799209792567586726943708787815568936768707107741727506035726632208313632958413752101491705821623219130414657881572710612390499870295867715344270162865144602575612117039223830619782848826203341730518207564039253048465116659233990704929384507678426654570605348333471425363369488363053770023254547411485498490451211468268406905229579235609560203807241770364285626556438877238112656330822296117301641536687175002523402955351570291840573454875538510086423304656291113016368786901480450738140102391749504855635105198819083280545287731074469965359556989914496666578612623975695554602665675350968290141395212359985756235991692196440993190592108727981598810499841621692918172039390001791531321010670715291657242267121431702342508698342174270105687170515862377850911815704081866071761271064359721827816722684246590416203549094813107615529729875518507875999064645610122191693342865526311323135435439765517639899300931676701705995655103003523401250284768794086177936492192306227063266817955642158703875160693354152109094285270623454396657900141163069202780012754966556230737491293872420531241546421812019788661356597886397911275936432854825947585805668764594980388437882195650248801815014309229435340048827955984108215369637578953212410580750861506904638940067491838413201614496424750162397597527988186980994506968243419842700077089851810635338161135617316216760464643148377318208354582312865735667528847014408919386701590240689395857056133314717154025783210560405143029047339363457513045312480671122962261976368424262990890123482028946917021003496102624967257726739375962372392052690254865115784180639380394083493753006905588343160314525436796821823255607821474800684620718612766545144652746485612947193977953697343443300205557015599100505475282509509040175956679962284536794917133887362399490509083748123838095929485167438585229134216238798347859663204956826986737925621525868107510359244267543547107746275937069098010463048788658560711552108690176693485465320757236533158734760329592509866104437363811297727823328762708801221697536723819912287196441839356585972753766492827288919630644565037154254410760437167451105320729880589396014476724727097288233246399977322694610175818378389687728618879883775600380428779846930851695278555545296467046759726636626736206456151537999340803322658886274086580309474693017209236102078434873916367320905706132125874790593633464375730524825274091665928350881929171217648228850251222289882109934676313299898497793683890394712601020428567103390301740005186690359695557583368165492560661587876598068575435903941362981710032143973791608527583712998318432705234577121065339525757091738898562687679019669108150863033667466257386863004960888183779289428274476773982624178031960477684337589472705756933257970147412830903486877762966785011797616017893276900511196767519592708777855347095738079844849605175555293638850823876063889478095904272784314005670661975402187889484936924924273391782663464516097005144249217922782417625169987864952318724474284209114696374578176463127272365694452351265721918359060339082691693066152211775178319202340512087404429930850575907160460998368452790744278597480131912231954103910043050257465053667873334477013546753765787817000724769984450617828182817191961528701771870886183608940788615822323011206267215752056836300304991421325754023166532201223488552801890561285399823828467270143546444967927051389669628494934380866715988782012102123358030731987650604079636133328346075992528813761026118744490087445107663675034593500589156329515848066545034319197914150963303712606879922201486557396302808415719334195098056013436613265686891860342347696473802485787446522642185955681751127342983790902504980194227982945681951232473349245908389022085276134180958295244050204224556235050338656476299214030061766423506134960152664181491138563255325547543879528722898318575743946333519248643242091713860182909059729184029596493836407281539569877240729930478761996356563415157624953542734206960445603004222202894939310637211269692072642943860928720334386747800951472418010991651033561394522325644988550035736955138595584485212157358876195050231967681152010375424003641316600923269241924791899558797390649719986681034241602914728227560858475915694756946465687423157238361814040762067007211422091751296116847732380110237681099279133985708580896398362169290468360028668093094817233112828639262337092373923496348960150911970918815080926358946767884847417624069300035706714128618775223960022899060627844901778990474950286201411780465448202619653851148406601528236855917332272604752886271028083690648921380795617774518566261242505659722658340557798216035397007561141888633596867857360131222358102101358515606891524579078750126085650609919299984801170490014162998601211643869962834743014146502089296904418415606794219979514090180160984631099324902466414775342254068210908228109697831757669094207272072763182144370368034605762612399615501661256109108902139037517851135032323806375373792637216866786570437930000656715814505097750011541677053033496801533209623639154835151953785580790954675152334574382489841567248733707916976337011422376300540088221127924278587068110153768374649301377317350040932170472054513876723976128217923571399664252123940510250800641310463125099278457838707332220262725574372613110252917248095052132317593085975521533739950253499799308015387469510067453714673992982678603509819361380829658652096158713390104356761285489312738117108806901800342823342145629367722045859247512441041352967178833582924901316809836219217471074073723712792615436852222345839548984993983078880678416543820056903243725964505701568409380295561846006174183254711537943433447768083401582775290713747442559455962392339941773200799125403528861011706658854002484460457481664104732519348195537585628956019776018720114137162349818305217088948163847501405258694770220350462027765778403949955191366124946367732823544187817522546436191355007521000691614289064894308438721846677584297056443862375386939603881650351490579783134451260515705307887883513768152990161901944938717816867840176885708760401275278935927446515760573553121688095993976463243788603504845771188175123526224510205733616754627184466044410947948294180756307181005170362299295325203687680321564418743961984477236029581696237607005695191933341330768023115589879483097487175409891937629065329101789495969614872378572280292392100274296378825442363363127148567206532225825895635442294581446492362860195208383369407979156894564427231940647389571969503559050378492997558710019543265569906894271130037175366351294485411316675999317014072627995070518743701606066196629716354945616020580676622235812244487962159093124933779049350371221238670537012682567803987121679628495277190445720617500902041187839649460232440364797528986127778959114871272883237869703593766713265911381727156988874241860696048661493577267625020199241003618841842486909095406275542832910053482507346519018373505777652156257407592823917835493547320830154227139669414473611498409093972877095297209771975376534936900785449111847648932931075789667542177269642102376413344766702663562018454021607360362470949964957221815352928239718312339035602546553397125533828276545202124921663374572581642290838303107982258818749238191383638969147393444752358891048924312130916215009920425655843025437819485447640448129567249555754803106738118512969898992071338924987991117551520343768651484410622780404375681468952968879576432776116467888075777222156768482569106301100024228842653896081313089402737987171705372854225265605742425404577593590060636790580871053443479966828647311112264265814951524518128122731577954035695286978380970566198686213313669481161867544401109060889965581525600538740086816581664144591484227103263819829519925935331142496696631354149764841378019184822702381466007348591441180553520455675682693863911399849034129059658976943317394895130399500101268061262242611704256386343263496544409915723413319590592662874618922308309100411745814788616527958733863473358596972284741752867407801958576440991863407725577979200063514400066408682969666658643909789308263314091747250503861561780544814961131863368532178257429390218824974475569306573630517401538463090735502587585596522572464878768604582480153570927585376420429568717726883669331832778419272975417397420432368020497650960805077379865299776927577415515203780559995666706689496372193576049644303291058812591768781817742905686814306972920374080221832956050647582370210419822448202261247090890637970110841552466702952237648841092575228309238401259027562229578807383260582998736268589079725609653383271579293825003442775275306465082301672773680138393022156412962751651689796988692962354368255717805126537409037360683527402971619392107343272515877692904296987056802888978760572658333175600424141366893910800104902276582328070149416031794897156456756442294566716336689471492476570401493719730835819007009104257642599697820968789410967482802193984336003033966533888476315557659415548347054500736786933081127312253480967956370600723003077297111569298451998555761552742262125804421666123528701646503308336638175821311806008341638072803625488814812930510261576242600660377573926505728283452261062085871502857933445906733957459655719312803975773699736900265485479588301217924788592674261092198088038298735999154155480550378908472099693707591233431954913268680495861263990831390343537021483006768536109460513542749397687624906822052369403674454318189600213044982957281469434750330722570664424726026510838077352215046961681218847100762065523786758728642405320072383991380013664846686713267102000138012795935657602690348682792321317457482849208257685577138447538991741858173685835106707756282994803563341806510635924954319686000346872832538260946059826318037337194950434976246321507968246723106577855034534197155352314987791064846433465152457949687037371429170584913435576991211925935985799027885740094910813102190703707517097757620830029628697060901469731862290350687198643877767610378713201166713737518174280993867352263290716519540433913514128646409107228382841196715261077775340186183521779749885476571795760426174282937509422980488912745596049802366975455599624406037609608651607819219115948069884606460075837476368599828375602401324730267524199095935947665335744760376340847007036442672565788205738712857578976750767980991983863141594373147251972629433127649351475374556361287685204377262192324575740169947580710433424553325073376108693718708819958333820886854265929879329983866988992420625160722072737706998996652915767617098420238336408246841777389228590246236656614281525665608216604732104308734511236353006247513662689780950912732301368174019001454369180826846169112383091748116574616641080814522671871503262280339594107642758364665240468468234876621834350997110013902839111621862680331981789258661126832630893922434186551849957983568934259812484886649070995734485863052263825813645184106621418312578503819959878527847205709296878175791082182660288103911309050526077598458728383727937064439165161711722861165431256638872043678472291896683335543254887080189320038617817910753779408198706799165213520616870685866679052178264524120658484652412964430179193588598618323508935661538816095794255042801615207520625420217374556294452657243647253120107017136456449926536606880847839157482238432519446629998354139033147203549714057580712360589269959930823220831463205150558688660912247006495811594770672246535943951670636874234265618545692092297651143873363020952174593900612459863557142318741255228101256375291117025789754846631229455623355346669393746481831705590758878386386153555385296584042290468835253252905930802079585444860503747905166341780016926690855444333501582943539615581262217502534904020672298206497114186178348714414845998269538035512711909697095907945394195456329933576569770581030298506397101506155728634456973297204252286324881243884999848069887912176025069335096609902076653796643309514183037204561936767724933034703565558115075768926446420515515578876716804981702035775247900355304391124667477613053610804867010452799588591166391464346063853696436231547410659781308924833833955399292151926058000447577602458801378923925114167387810375380842983631474173578660760001593507148386780400872122415643303647686208122488124036480325796086085606808574598438504704962365409198227682350258032443368546869082468625156558980518618868098179409344352508235471143573465877562194024808282340137950004097530393568414042822425062206947534601520041808527935705246134356758772019182490916130702873748772672064648606383213678389598364032500393082002400333186135558361511757492123030116208161021819988876028137517565745521947387968309215754518045024829652067200995231781286957818404026534230501692737650216655580413999539118034823790189946890070889882779774001281486417557729518043641353615604938376764155925535885541842285520759742196774042997942761484665458440358990106604941007830333920967660825534834678861923811988574011081602616782001174857550651460417671110621069320892920172169698535508235754266029180297167941082126119122715640446090163028542697534089010109965660246004768621904651099173636595032137017280630845602978346469207836591929496145560408126779236269651253981006120106434679899358318190639485115705350007805207597605544553882435638664333789300102722930193560989134993263912590027579114032211287581010174632442607231001443895015633352512549665455182507128325450239559691507833483722390096428176099466306326713787868863632632299049126448484875340457323089755144085260959305630262733032113968911318013037539026566677391851695057715111293857518089234666639524605053971438341700144631115910317493236873247708266057096522065486744860709659838611460768074654147874795126535803103881832557212040818969079166007215930865800029389180357484605109906399035914368341717724251887187834254733896228330415373290766045721602287054983375258723464352950863053732247386874797292917003799411630789889212828853294732413505293441320257767158613949134027303025127811337349869106901855328700562277402733451996317599954804790819391646774903010398174203596500420894578801046282390749283308902312285540866035464072521413530049728500155277901680682132199825961481301545933148013516877265141095565530030496405132695145290102179356635959668172692483178551169780043379862438208736357399343028645014078364094992656930740042846952831453679388663452048809678142176545296898128032683520752394173546996165127322306563709302969713794278157897853106271034875660684831573484036309506182158358207325324328173789936373766983893988341804375352081579026155927597889086146554583623281641916296065604089776681502789175462185150618896856432856324129311345217494287766974007590264768807345415566602718500957105413033451673858445647287501796675996032620078275710691232797902518892264085657981363656478827089533827215771096318523082065392456185869482910309319749895569265267204910473050214857917302230462081667688200282830620402376726996195039281471977098039757118342025471730533410790434716952109103496598203339468852706585659889496428102352896482049112653168339085246472151046966907107649606379899963001049817512034884235153716751129784459405510295044900334569986770280579447127788894394842173287464181333458937937699006027207921980300171258015667851950262542481736174887990799189857320193220670969285185585107408579311734091175921755184626156640939589029048288875591042596666181425566241393840713283369257651536514084443723051919405359154930290727185972729535764403584618256369279985901805434113476664645697693403677272630966961887250611074608155263449458424810845763084446063132511960166098525347154767006579797882905642828957332588387287366779813205626434332603324062216484973945977361119401146222156873752786412660936279482578269570269302580643208959980882324908167343608469700683803614512960597589701206469069226675935111366562204750506841302588759428838619230243116819698632687083031441793020732911278406272044753356182000395056972121647549431510856660951295087897518345874622366144306469011967890127313149354530162524612215938494819214344673933719504583812812818367953264408128506351396306967521248554276507495105813260945296305977500376350849966130632986236610547791950325161998562403453664764337810436736565550637993644002655991001429215890577072103993174051914398486456298041331919214037735926292785466823287846118674917146854979117365105478988085991394517959919609769345396000818483544440835815709615417581172203799022597742405398968882739903399635437536072275365119510872787870004677120714805026191570753129479929257423084055377038382952947805748396295220945291748778922825212930275110587238478644988678941488630495155300608190378073493609818799187090618798931941537302978547071224704346331568813870764309609597732593276111489069769166055788779556911056646730669098079377043322503028179773438208244999114132693986085231304155785875743859420715930807279196927142560746771657409493494792821754163754117551771153514614174803095108595004630398792131894315426236147115543225910451472394854626911650291026586463818737294738555923328851108301939024989622987130482912730156487464847476169291474092448123956217600654455648777187913588323122583886728378233073490022617303043785006852247332277222801014822007792761936397776939139520102994188369771942448091097927588958875732414727847525962843253189489149994765363314497799237327391794388998474397795220742445240849975757442189773583961712554192930501258842582413737008909927085781398061527625273756869921362799937991486376089637768175686117768739065715358825090927826043104086411506692541443599415826949615049194630215067566275941980589296165238318890107041488308699524416451312861032219927336849950610078196347625994808225266350563100801647329641970152701120436933628591016797964129699557475514226256783708808662533147156899128067317109246125233007074150455774016661239427084298718823133870189885866710103863202487155398972537306478480863994138784094066248787550842844631330353564396947760688557727156526487032643100863515122730872623264588434534924796466520667234706760159494841691353188211308240102788344632237127842553596186013512551793521015332507842086532094612265023486551558210605442533381360272468865446108983207144013477037374439585628685075838616359436899024890647944091387852728950547673683072512363618310039686075093569355791486111577172574790042315396771461356960716685927619995771085626613437329780580253206290289823365280580215375335039475765738692003420898029295885764623224505822984053602442141800298509710622615589760452182105401149502826442347303067951518072432128598223782930651112270314193011619938283480291946197273945073849197821393235374003219660305659460952907146864314616919260015662332699092869266724737527204558850925420726470601286720845838632115147811443052844376022019321019075910322789936441525969529497384182825864387969321666827418077560186686989584401365132276682321536663561590693658858515557653248801609639567866090813377367514910705948544445051278868698570748004754575399380830300919971069203718208426698707725463032994234041241434726625182663714579039650257145583863468178099753699277166687883444215023636863117562008093033177102376194592386918632739106810404673263716157844117081599820410781296487127603332145758561314578913606354319623029579119304698852552263873073349170768510748467723598045879377490832467956534052356035690530447487575314751526091889256374773722729469496825814986675404959573005259720702563626805432731224120071697801443690956108746071761074776573504388976568138759884756872106303606110109976816187370131820179329341149581605988599928395728017302853040012979058182530334327685947583701570011487312684622180537494628400897905409694466784376187045994790954746427547971900819404544318594815838140270800976120009012766209224950139997489672482252593391485131543317887429885558636686408677038677932484938892389969506154522182364215322422508906780720129905268991987551858466515104050960928428820008492635066777844358514815759406300208235302421832352170019782497961389188639373545221604417504059820260840184101699320069303542168439368516891966871958082809769862753368866385771636131716866210997275157249076424723376716468736587927651302389085846227854712491819972261996625686179388615667849183542149630377264167452375732506156030025229463514502348107344545597762491094259988661499284901823604495258410032565096539581657649466198931221114759780624850460714958979575432074133134975302122815521079897099096301416371524227821630307967936020579292895655094099187477910242744168943138779925009097217515475380026151544589511139452621226291891123319220590190779562757481979083391649632090493852671198166491712387511092658214197556468783034044154117136456694139302808714604302782055337368044415210648890458614700884740726533653095567371918354043223568336968013819713096209995495810271009908003361745736021348877778315284966457050729162539623561785003721332649021846173822585082596111461384047698235689251155474446297196688506558019442585253172274829026895795911205859108928919055344088236785964831899804596518540696296756037788871009464549822458612686888099196655796731362592419083901773851998956042722896195199124639554029904070496760024104115985314262803461475975771590632480884049265669433300269996648814247986300417041755146036289566533062427554555656752619149580116630943576292525905886543145995615123349099339674795057506123639819090395359083898821163715004132897271985476264114466483645257314484321404743738771031233390201533919076452461412892532852360244987600480710917410663315149287345204725045352793320139898896137071970555064179689170892423394889460782917355264179657987538333273004525135283384871799223361041801149575884924668458551550887636455652494702412615798913507248191969384085319551010403500271948191267103832290126951368254004081012681992681324806244383106580593069652076344008857630275456776452436153840915479584872149117004183521993153515904138233269504211123287545972172834295011758693806668105585354848478009554783278595147078870224852763425689041820183346515836543584275770066218464150875958852178130430944272031529541118873549677309225820027957590221863799036261186321286915512933013504897582804597690776597803259196732348166510434312752334884976636666624874467125405459657559177849029775129471932341179490318878534824361697805942730061464245544896815151656402273060025492133348146965490263936496072170656626466629951602586332020353278546197503844378345181297196357450523027785952725808120465304106248080557876143294121032445848865018020725303893705841392280395277245800680306497355298642320760914963208409782043713441651000699277074917398217592215726042201926995066143713115384466038120498502766211197642195924454707190943507684970995519096587582435482885937261693124645005925760071669313432837816441547946614183106877862562248373693072691773496029091563069925563479002427912180854677654379311988395423131817026793881372211228939520282290758606327628832215715012147329053119353682756182979394101952540255280850949266038667296998088367307294588632242125801435638954126695944719846125987863317017587685550582007706656760071332143500770377979838646863522034005372781466271145955249019927846134341375809190896223517978080145484190797261598304076483958638218780943081660317126633697621392674840168238973069669437473583275522056546249438362016188540101523698601751912286075722299281433407449360522575128738903661740492686231195365287382159374969856055443029540514082711752528433579921521246176223569882673674270551109414892229819195556382673663730748039847593527350904115395677405370298783839887366204998156540557272241283650402327210418078670216829947205045808116308421678866393513098082510385446003230972514861754858894258022321746432270252430263694357140104113923449275233420085961139842226148500234265354534297471557186582823020645407817264738917282700213988152999391487318058794552217650993465854845019525715644088512183352681224342687796102397744148013248150802456349275246394013871419617050957217837780170352487802564033318805604020789123448900142676437500936397602654958550210018909799593144590764321265091803759365201013597399990180457535223109915726367217286526096549520188584942611332036490592155437925727417766343423014850114944604189378313668023150029749503108070531809819553885410365185288481276538499788432543061677089246460341604537918662772969677611261854422873248835991138747056362463900882435414130473917918155139389815000039044129596069123638701301018287751256806054660377733487656692130335354812682407320040449183177126748349231961338923254938479500311666487027984792677408219445333054390242680791596600484790241239490395370132404209716453651023719223380965892568071880856980603278881802472197676377782221465096676704697774379581836747446406299423245428920449308887371449524703685979270491089502869199642389898684748458909377515942743287902177769741418044752805660396647584022053136648328521694288478559698269179438083784959679056658639013007946680476900428862096028540737887744462569969838419953512036951371840623540122576333515994494276059207865822297688102814400847386596255803594622607687773228696328686570518621618460324871859533831063903167947700490081719714084706856134114050349189160089725873579785178466980099436496166081450288865316811942136054455904684783447616603776535170875747742590280404473445865643322327578039408486166392776695275664909939476113229684651203784139474228021312325217603708185543303616657474814264870601228000400850603262822614898345903852173704756373628919828618648855167240941317113574434006185246170998711422221627341992545589161326763700819205333000896826397621660896162555362725154189265483789066020732166426543091139062819740689802428199648495501025824856296316143934360586888766324072881545664452655205438755858604996878494469286901440369494977673407929589143176263695350652356855529209951727901842769308235185171082718601184101211680924243310920618132327426395384657554313103171464281974410491127551525957587287003763552242449604661227301640673507358303464350349380551558226106919062946637903965123765354007482914487489691690865688450661501694247254162361752852903679563176912978664623905681395224520753325090986876655929529239992473709147223977103794815465414446979911395547937764556522051602314709518928699488975055183016933960829271805791047117834383209794647335652427357351873522923962122549122910814362955411079110741231315426586714991811541206090002766619773976336965304754277912517671174172290288821716560299241662932780405211497754062117098634954827507713708736683280075035720871215383535460959182934138946261819886746124130197708561411155556727984218123654507541546839960708478381043579280419803253076788375626001482738976693924263698928566487247997097857890127868458446472692716624626469066964072068066829126277153416413933585368117399746722669328548755547591374872226580731687700431751172529389614965172066631836384377036743863522701207979701155618817197624860345624444175219041826200755821158188716991446275503033918377987649878370852026219316947807172574996890063709698990191170247868869093152099423227458678989070180995743527980687297648008144292779544042077560867482474095394593811178331966753465756518132412181048484269689233488609079111252505185704276909334610390380425894781618970620136332503805026496479223085704630150441694321144326099766978255054680545764269352768313699125270033150145397992408664681706034386704661556272030423558802207527600998967569324896271804756319476527544747750274468369836501742191618829466474921127178666790253191739882726846047348559560279185113888886926762403796503105391235187191534635034213301474323782360135387684410377894741393966907433506221499248055454032355386352330741451184722672926575588852878328148329176443059979149168774544520553793733011823117411904387484919141926964354099452444576016764536095382832076667468422412543040357768194288947161275858448355733108858479136186493188932953613346321602512175750274910434618310424999839516821873257947047008366706898954193862364615733536617435731995480024729838413729900242359746174695760418273164651297633005084453897158202602997117416782310215070834125440081441621194688003932258245539212944966117175419286238534033065299268915166811245629039991390151264943517597802739107528419924816773147426058738935922031040588989498027399686197818309408668038139863230613561958610557585143979532084882903014455319069691417821320092139606879324806463898009167028861342316868313694469895504898543252025989983298491440006732743698613378534915959016942647063730663745144313181970424173948879099439255970710554980406823204562294771444795125426562587999438761465756136072077315938877684654225207364374628418570078652952214130987922658673044445587109140085097183898860056624692167675089996565555707328574555723222536777865658364274477765863979987612160074037538940792067701615570176398460376072556316722942923919924963279201695032084246872221076519926943533615724918452658002025504338711953538137008205379109600039926727462176687195193959276981624487855884814899527372688409741286137739831406857858299455460467629281047771011517547515581070398043411524450668205579562056486324804001820115317406860614867997710517571981105556961061470134029389945879898885030073318321609405375774601962631185006012414227663589633281436353650826628399905357539854295936719916687011868621800344552746524548442378603940686360012792640072612378489383683199537521558361988036189957623117357851413922068692861804178671921324172377423198087202342548311162175448922836114959994635261008177697031358278237033760150599848911730592048154060997636153544239057545591027381372302734228099516278128735689286868713143220337022137467501983212845755876546477076025034287408228477234222738636949277348427197790238308846249067928736084055172437355748453016788461058163617866583029243472047261994271775642331333600415250058410541564460229492368073720935667842521143742482252333325634711435268874360855639264019839642798384166517196982943627099061746223613918620287601115466539050886345710636880305528841156450842960010870874354165297789555050695039722379589388999265724611384023431791259463942891638750282785308175344676993846017587268047123424939323927779223678150026909836173807988315478427408090543074182045796836282445040418538882430488230937736200335880717037731885157670249916176693196837788455480766830582963296551324277054077545165035979623590246499255175555775402203090382028027687681209875214454726309912415331886132956881226389177146112471013423364310082242475495081104865594553171330999735981991332451198578847748555184327354350333737441238199716379701743091886186164232447631141592606011904837639842898810521696876141588547864209198478062594778778859741134295398812715102282474505568005931684465269339006230343959575741408706933007687135103402949335710295222997092484102733122929810816610139538176796359175827323929417996394776197163028296250715294525560517286355057104875856912172949669167476935991459538653577731424673472312406610045177793469739901563505726506125980370637682611686825790081961203295144026061189027684279532514698475513286966393542192993117904912027464697885439020034339240450127430841543086171534788366294377353685742727017757144549100300629251381728023034976321266915713617051722235014399800511816651948820222340282390734164376591877282179731437707733076501761524589926529484369369968267425282619827235610990474076344309215141297181104484104259066970780963357500664091223211535797272686628979943623187492934859800816687933917307373333732014983625605100127783137379266464789325548021018532417707957141471762016558479455553486862550748914301251853057097531717169169856395975935942854924485760360056126772555842083670975671631581713134128426882272610460120351258379426222046436962174801590708387537232761302064123377273741426632036904168732979578936078251023113915513713159117572958898382906552823659415628925211033478593802646385032778189076686326908660369450783411077587185656880562083358073953827438025744792329590989772970986397674214837188890131439937645394284990738463998756892152204061762759384718325888885887083843469293940636112877974977482386888123980085273812992558788919104393096760144951392210283373049353118104324996658344588513090818222295004697190783049818086079203223633662984498113102727207579867982785898729878404578279115923226465208659745533807161290873830855311283967535517537858952188271970961329979554364364407678647422155987735523448096206172465365587001529000756283747076724429165309407711189109864084857444162672937282936740959241802882840355483042855673814000108307132643322333044005251828434390690006287882431093108043348717631493263876317805027258143625089362875472586861702655402795525162082933728718338979688176296503745707171560208807338055612084295574162095725597185036430206108102788660882538219930483659659273977631653280422662133827981023911852687632941180369684798967533823548481480470550022549119319991269660169430083716096983758019153905384082235620166823848678163357849610812769690718077491397796188419815696135756217226596115376751049906436656779482119706756100104891064361786186619542831717526513559972386037862730660287004074143981017040613007466990921563704995260160029002048219688167018923429943035011788532647391018925754468910777495261572723223580377237049280983229443175969825031992976469700950978086634038865118329853456667297887086424969222036959297528617272245869858011974729163467675246964085837448708355861955354176072713936616042065293711257795694672135278225076860268271967729899059280250900049836250652124970799041243099107979999441180274471586022675287290732975197315509911727594503129802896623983782940826274562334232115508878397975147240804273413427966713822702606981486601624842455952115509783496377172052683730137964188280740659950304492821388363487451719825742652393347477240426167469565117896546387502829734612898362183957457541748993228489706908780935167647658795541459052344842682254474685274391793580081401571393350609031075629600092472107718275173336595771049366625317524519355662283251931149490703520279596262950195477549815798453937180811146960451103708155594458397974904043949265390527152910316568408525689811300563497791008111721501031992830139340057159186705478465128730426919339242900577123496006555940108580651018386708479155146807045779621479995957711113827091634330377845960766262060318470059154150680493809784800418104758912184846539448375756733079239963226396082577939700439194312539724197787394381480407184641541129169669831440484083797954688370999749611742055605957274771794611561498460101476140685714754151790238335613588936552488802151149762385886274910469721997079041993594233972669676337652543589095933321450210385525295255067445863295580710128723098655175285012935108615115003002305145993509193019946958919214415559575348313745766341470763166430434797540560407126313770136624694935351484963600615762150872460740568392564341267518190904162236822465012958702549479735519955920234828795205241832329350389971237030198269154178901932649551121279079300170006611259949928753500342269075414229264166771043089612799309435398943340425093215696316178175041411409560273630657007809209544411505123837837485209011005179492769779396126567761818242121011155394529989271458979806466934191002964134311925636197504922304590677550544035540344729170838324387006258994845019197252878186565067131188691855485500059853976153845778277777878307631749998509956618579930550072238641316048528032140156175827715654646082416550444801869640585315065986315595290127743280243639309711120221083063401814114459754784623676944232421636978921157607965505484763103674219059174729355764626505725973637881077340826318404668594055236658696275569574617727102838243668092503520448255313780519047072954729595124832215063042630849978654522642818783205735436422012670189724936134592053163841258885921050902300728676818585138426599070584136937877190396511823390685279634434368231668607095529183080521093499176090931770089934200397090215206592243300947216298710051298841538007860620842861802389214141269175599200831523859402052630208814343019401613101616615710785100985591747925794675237813493410972336237306270733171491397976692442791795027740680057633872376664015951538959368797970604078975838485056244134495426083482792968127303822523401334962231619377651061337169611993597436323765109132622887303322096485019278509139799804055528180555416590383088930733059286845292306139930499936185241629435837337246768906562975229822328041722060735715806599613453628576086163738413329420751219229684376556295565518829599032137884801555145528703955380315571831685022388444843496324222873813756772315291017534683590135550637703651094643697114871154851779773968795675580402360449913226278602960654377216771730625712240848939547475579025270243001241885535697084174136092224222165818652686400027088159342349703715463422695897851240835841549067639782311067374285013108213623403647718252252256794416802142982188468449466222051489209793360451582677509637731183163309261090421208426747912314042541726333866821555255814686886402445927262089915680150559308377158901608097175251542352181536240844960506898127611347497177595971089549247515545054526588643793789522985344492801757736294890185512111508565583251687696055565543864194272300531608118941287394158957111797242978836070930953315511787115236610870166000309832756527167510931095428022489534022962001894146441362256748827803450473875270807788745648213433566380258071864702522508906394199700955053029311790228856736205928094198331013607757512100421911220391139109595359769836385119621347621259224991945670974960929031391064663001582451742004513684057278711084179943596954036900774039280405252546634731111224384539565905805279811477160790374393193030448831141750483521810546271891817755375222042195339433217632367261031312779200520707794770203372625267093881046443648029636368252195202001612799303008600549165471249762019812836699920424168894582735347717014038911651056046691204237960623782043959652267979508763337256319615323596998806144496158460390382477413545044141132764605074918551971567705343780919527387196917947490662502718926773065059442628434441720397086868877488294162930032195153886978616693464960376894698720665718432037633038080497763433304587291784559238683956701995295634888314680908640207037861123319603939034708340878396897358963005903333236545339779837006775646092741409065435163536252475328254295657041905209752000268010573223262038368584437242024044595540746890546257132381417610981733872244823499433165450927404366961302777307980058547383136396793725222155588482497058419637434777950545212154512112101442491641237073046839859586536271255600688824330667748564927390879024513263558817795744654707122940375560199013118239596283079693701338108928676690148582266222689434002044610901532900672263679105173539041705660917309890496384306954734274743414791756880087572736064144824140890966315119344875373571594702094184189502125656526066916297351490344367959172800108772825224641512110736777117525306502342447710621965358090809055484885880515525073057582990400947103986049442742582120337847544165150084714706324421079082548548662614333393443315100194616035869653613347539876424428999593289887315777865046887790740866567432321300013466007991584315621842699186761247127957119856253483696849291724097057750502530359590546187146163311546497598723234156884786700385623691147934580299967843133714409911157328676921438370506775819546357636442827646824842304177855837950941914489349461504176527666578722790401508313037181144029567561063221393970679456432610919964785684879727168634956194058873247223315665610920454094555932721911370365774055619226108335193564581705540411691961162882405369084294479443741677433143480917120605026454157957866694953197203313870574384581671091054386456269751618236217191058022052860921257216535618643637231792077254912961211384345158214251500755167026028720090204406304438553112313202388335894959107626452283958370711440536537837286491936244310176168421815342902025234383002309387922140066119298282041495008162810689448316688925256613730748759446246128736445571418652866824715895051754249573221349981552901681771517509394117787150781745093371486291330922232879649630962738987021043089839440533508126318664392199404976868889347669271874522118446107056545247984748326047487599014559307208939330204675544004088129350637232385037109079698388340989437198216005258159684997893792515122444678194374829583473711030644106614216136402859330784357863619733313952157417779460018123338346367697512687876030401879280142311082818914699821579991876544774994555341284780203775297907661118670534518506852048852852828681273414326160811817595499017714700201753306434923844546241335374935162442132085972226683822554717681909782337219144957126827077765893684228337092185170452410880428615939120068181350743466189225444346584694170875397381449404875388777759000709251869644084241995210863957560763020637952536319393951677233987306889384786544602425769125564791588214456391896043603385063374605918594190375229325183270223890544344545563036732938131289353744691855000531148986923684997115358050056245225311411607491411499983727573634468317448935498006772926635223977864636900739160586990921922950084097705927423685434328391443841924009751373772609477274860231476032067081125171646119076562554725358307110088880890699728995844651736429805650368094076823423586815551305134706094831591302994089849950771752954182918763114268826323583120882192490414785382708127458391288772847302176684516817160915440150908686801889891769612574393307229838690952608271156203146509786723724198047078827586148604319770291887588479069003110874834999171268618668258939006950679481324639190194289159275148495951060988072645006657879795067332869206790677386174798178581581630382249194616677279080821204073727735732559482018892038188117766555492449748718536953614989961903632996259812498751475651396692737264711762271852966270825234194472388680876699258557311010455565051944557993897736762407826523415215104687871903637637199030298898732913921793914433170188754758592133451598709766342406447592482684172633866873568039310027156408787863805932400434167000587144029109915619866119541370764303177664757496491241648834226882341584310307029036906789908068944886559925021102035770875557682995737437230052295153518678902773156545206888999490546774497131967431955973715681381875157793539933264113709174430363745516024293711401551681648781615193506350534302980827193551906745523025589993039749578143370815577169483105269441949411946870627105588998432915587091919019945318394247292649969311746070085186372712281271977312493112485914992993435226314292387961884977840940012359335559043466011578156556526980886156439076987194338572279038137210365707684468144305666649870946292640695918576133328489641821934426364393651711588768356492932764598392750374873687929287568060647271502069926336188541265022984619837805423028004240926629877073203012132852937566612242269389674226206583659694482991310867065642638913384551024711725158174275603922202020810320504826334772090207881466169054564819618632994708848597372293147150354997234149020366825207863626354848096532313372294198877409781692838850528261408625463869970415146248897726326248888784164041730789238634299034760928942189588055250486741698437672416913164815908304375728293987640475071898208557204607387731863113280724446231667809196087201532399584322606913397042644838292284579720000328538337354847992402309302919480183629632930155029747631197609486787300388185066265697464622427956388346350691111128830229836788598115113160999110928382859138228863130039499318231212838567195805774823242123467782020328787723427588897191723694001835327976977020528185055271866090345496288697116133156781074723227683122872410029620617634005409325673426952532839127285135746604683976699993126151699176691170093241478661566647482116089559602268532889006956286296175654240621457276685608374257756429370767429564832391587486442121972696628490989802082258958251119387767348821881105367171503282528296692404937962550350042963541413994028077763409781916972221870500123751173724072979862484681314445931146736021320161510748083143503250418361964704490853950173855677489366063475281259199519001444444212094467733429272073800931473927955034977167898320891574685638108667575991128624369998935199024208340566170441121920020970417917559205612691590835297118839695510561932604075618757261373299340853804903774888695426642892965023543770563742389830997682217353381395274574218982911585112748926526516417544907466063723714851872338487780123585334604065975553570544962124019231372540527716099011432587049416370560709937075485207112056147002852717987770344262004083618997993157044275752166927409385994990130249353461242388641503668703179648190919314962154981513051122637824549021816054381695228139701897388296787437348228781716835733032583207743466224624401557269492333313531012425027171193319274667507239777279149449731701580134288583848558554904769567318579555891644622098277557057639860356917590105148760940357242781338734719551831840234960470411561460978549761891901168506986094472076851513515415164535519610406118004656846053659710318635403613781329646487606803902830227265201886728008047869766308782510617147166836747468049287571691812291772200453461461661059836414982387282408955790230469326625704957152415431902953614775320916931797011655124521654691375397094920718174208738933574823107861069103328070874630614519134382763537571074366645142241494816055767879700329005003209057763633761500729754463939222536124424253546712846414620785614379132251195738765747544301653639114888992900832480922426053080707201392549280246887932089380961475411969873083334440058320677544980048331175180640612610183783425975781301705559904429226923651357142921797824070602804766674667908452222072817887892271184843577751734819663107955760048884823781746040923173240207895761321948906812482359500230865284383295670398714187799575684326149403954595985434348110360516131273152307137265208653613192237034776542619702366770202833309460691122144178024592901819416479140358659095716688620237437067367526339593737939499297856151640864091256728160417526088540952460408195062943070932699669970640080288727940144547906427489628289122776239787075231896660740142358239563494286313920729355878481474209024024876666944720333553959466189227588383088323793270709957409187437560036580875532685570060492675611386183607819933488279351713254540359928846666849124643524350767368176198857701442477247210431892122317592757586324317005547497084707008260979495066404667215240655374688308643822958729697898519399145377600488436486140577188668384247670555831433383465664298889453343225878601215787044452260254848745745003276972186174154770588756191139356892354480762039988033763773380863930546093772064209866087635602724451610335904335268776463377426494088611718742470467493637484604660053292488456429501887058758354496003391879948780945119119173558878695572822521908345236055854753010899941705739438811422939582960322164607590844708181983589677476832545876703980951206106264892534196830984511966927591196704180859190601186667773642835121125207999441403845711353123246564314126814543414549532482137070184097378423694228881938349257312300800604845114190952848559126825417306724980587280474473814069801972611455020307876721562934525608749888007192164153000406424813614245955680575259895665513131680784508307773323684357805935647325490021346930997253649538818150392897229102684648965748936770155410268894926459646035900667791203016138045192209618620032401451066370115450213299520647575679035473531745011232987710837634372757487276020970931373615140472864830018709295300989167031799958422591318379770252351238274931799079523995992675510345924901430301172963976525730864358066149099148087551680160016221796263664119919096055158187562530943365861619481811768118910036235285379291769291680353217976277669983007843550006008571568959451928145980521468335277344000540282304065598508525470608853565733607071357360569621590414974264528770094657625615052218506731451185065480588554838452301562560256073898869757455510089016973768207591948168093020032667707090507427076294300449905333978530041289135306199791484858932604280909275793562257209086164122437081496521093466357361038656386690084892397706961683345044131542116094824332871325094208190803617618940663993125501784809610171377725780408292242384896538410355485148604338467553446625300567869151812322189045449428653671138392897446134973907433307435305005545098220224785099577813751300616945892389664596471762377459556834633985628980896712241496766296820696623155577226557219843163219843567592196852785299767519208863362150447578786299917004427692054338199374123667817262104343159177390577057946019587592064528161321324415126257468577127283338364486672846849039674756877670194338288275510079643187683509387026919878175465979604038275180654660648579733240978557282187497864187207271766907357622707726893245332737381518936452879269685174807826879993852169212955179217121202304576462475201571235576696751831367185506641438106044978222207054085899695452076356528449723479151860878908097394558307256467081357579271745173704723086846627684914137610728159932242613744254701913048038403358404737726396977370172077679371728193655511306519855585695132253279340796617197150239611602700755704752214659805227949498833503181199320092617619719083644055617912645804216433375146005375135371683128805203483747800376093762878609496283555185214843559118573104985814074727308980638881477157610140622754165403531991053948247878647179212707973042675105991284261788425700803955936532718084327491067535690812487694355958604970948668376709667838360130619713630273028732553141813098727108381814220211599499025845789355800458701198718957883793557974757583123698239590687475579034318649676509400071265533247728320562049789560458717700515928447006705134185195402182916349629039272769630391539396894029355201668418962019818115900246610569353294573247390973824040781982100864242661677993145157779671128718765573291739142004432882191467109312874144738755252000821561441708356759213956459079396672396629973745872522617719974117049045113691923808514360594264014364973062102428588458770177274009046862057566523702802353145262623740484408116669446265597324731523969074964361367874902146103500393756350963256115279400602863486670000006195840327176894889027734514015972706640007300489869350492124368144458383379369684583567354965812502811143899414142731011362437165064555133420635139824271626612578991891513083230590811303149786856973464698806835118656265512218301229355985800435966392628641112176459549827245427114773934926638752037009079311554482894396805013187290874733163372288852815341398367978964102806575984263584521466029934533418126973123136397060015907078385420562952589753481351014079952163151708128551569020039157666166232217150748788928378053551810323275722078208555724592956795356774934117539129897359075967509878293983528083546105409883763246746708666725186713317823246825050322703666611203537354013370701235867725147087470113348822171321659861127955527608484843617557830476071216907627544172994180210729298817106635854340520639363044160837663667264936672163745721809070041994666471059177647122786472422096133665619795177655945786112154920907053638196074911039775141170447369606575604751497021844036932860334940303462989353704395078767749362568361845626969028415768600705267715685970648187989111744696438959761410250038340425855040417263973649694937273473273823597268383507653274289110130086575479963419853712344545814604721033969077526089652881410892049022248156211292216909977203080005682903493742569672544636480591750665253857621001111982958335204789653186967205763424057553947855439629615646128528844657126289420876894611788091007542060719129887741264947734180959878949461083492749294330712074975094248988849906717570524339349452001814195564641474602481307217143720247352721993375620917390991412655316766953368094308716917109408125943538236119186375627446699448087881773779792299142189732661092546795253163339424301730803196036339322692612467204911946206718858905081648395366713493254446293732379669798863467109377661519995059085103533553715128864988681431419466302559950621542819785153909894477300184667070458656211136121509425938839145160846725442241892543488055483626767140766142668969757719530393418441864306729971056491067421239163371856878403201327880385343400905795059982674994759492883892342251728792215659968452745007049389181510043756581861362699276472638203587805506224645264736197536710265880022124747286014894909737767519153097046914679537409552581845342857016601769028673111953960125600789013926311417913619981107513427366708560841937757824783576220366893531902070917716361410919731223542498198048965455650496830832790511041473166904928348134662421841427730430970932130170162550591438197561117181149200228469113867315765727124634406021195420468366190955004521734344211659016037343898674686027727126150871397283719830137761251978039853046922391254480147823217022064274930130934105506479498517451906713655910215594586994531089594203927913125523222109640708993240953136442266185387236171040176224307165425333007984397737490769629942341239155223246921129293442344518288682256383276368155229410437719155990760137690895585046046999773172838280571332363461178657327812902598233866330209619396098233510516078932833904109537464125279504520004692698685888588170524453684378802636254448205418225752249009575759178204238035940340367301711163691005024480716755840966343486814398986263391297093725605073521662303103233536853284000700864050409416051673374888134491155687654189847054496988604686236816015874960920793999324465002122127682319570587170546994846611417993742732736324851791876655699448747776866367455727640329834438945408209462701635769747714000572213838801147428844230205048598629138529498763109054071038425477302151659980762899851575811946371111098593694133015287162794875103175079529728644709723608444453756695071869980798154317580783794308229799966635361053581925524618286103758605862764242385030820255912022730500074143900542616302711765055111493569749430174669223268855097883514505022921566988624507791907588596098535032380211945566737075361165033474318550161774712410759346165898115094780561961803868833531862469213345503823146153163683239585653811784929810480158577511204215748068111776393700105405089758601051521524916806449218324170605713195853495520883105591496421174264491519512907096489979757043722824680420098281429980148121305987361896123912911335059249946723485785929854637181231490602619699252654931825995544075121561113740065318033874940962624049945686285747080140538995163407311564269891403219483833476400747135032654421590475005973707547890386291070587916762565157739819589316932358292490012643500274717079443040085835158713293959787915661909295235640113424757937463150225889616244887812726640059185480921505017042994455217319445332312696826976868171795946035733804771002264208614560779620615547090096842047994879287745930140681550554992101831181937235697472620289480920169921500599368952644598520864010665305700975056786987626635824513101023065655626368261732678817044005358856082798093033091526652042847364062668448956232936964258750248580607008164626099685037089402421559229816679239461733434579054311518108840427469564395390952462268478999794136045979654427797691856979039156097930559216409802108325139251194076768454104626717518362313515472608055192408193904688092343251992432338652791132292357145582196395915757912103134104613677108906189870451888323608758793792633213185962154313375768656880253319858450698871480177137373761925611264063602593634990216688743201437717665467820352053599984372633926501591272322837284543474095350885748779676330376982116397287154375045743326265808967721125039159358615426620469357862151681954777746249595275683815153781282978596033686018585449694707380194446980049352286417854294762375102167588424587012871870382045089643041707869253152604012059952455401342409705340741338783787338095522056534204015750340246032544692800715239109571155386600707274382328459263962167294099731919355703809365142572326844820728146363944602167869514472430466901650765759332742559831917272882600402662476961271118336041090918523442909966978046927458497205699512501893119837631067860750130117227071438111004844150620479124888111218231577980925516749138772334631767209362217571075746246676170133298448402327134716953559104671545830806021959098825589340901806245749102896287635716091263640739430658178665485667001462652900064039222846556126319987900423699285942949153712342222328198241754853001191023306548692745789985336068458648443059337971505497737199723781450159957499530415758315407037271562264644528133749505012361448594410662300544038628737282180094828333401415811785288170812704559960210687248348608617228492314622620210462941811676849377865628881767196372473842277210959446670893017344788178900670396811607474760421293091331037991865851660119890325870899125577292991947029486568383822794202289990576006414907046070673906842635671037931097819116951866093995970614384790868957141231471877083229355631603557358819935781842788865843261860298253939594143106241639402773477889265256583033121615035681736634416430467907949727676877448355777449667576914078953216483322835940473317698341548656741463476615400258714211549949256378327754434458508434890355123588559927517919798268622241397684771602051134136314282853116418441028683671074853144311792960226612287076622124148796578516980503697588738700025290975780241362643226764837588473145179878369614007039490927011894942516475729032592685871619286931675669284474008535579774318312690234447647081902285007282147857426751023833156563268063969011440908877750253347143517352499947802486608799498892075109374890568916780441233204212889627489073184746803574647809233542893418045269207291247399385868523161974705187795166303001003963894208051533780024572339155660081393134923645019621447715781468113556727115590464810136753995838865883650650226867997280740148869187464422416833543648209192282773915376547518656020783742268056018074674410761727200914532152052613788652528267957977092710400918005367911619999561253861669889438185426217192196329792974662668782056447241495689908249722785495821032029475549647025289554067761703243874965121545262356476587821917391520403490542265651563682931323180939716352704176063371114809590485947546932818312531335922964661827064416467886737525992385107809092054193926243099422556368331293920244334466269620350322403024183937496402031237557178483374430325066555815138876655942225286120945808338201774504603056263766662816306293671808247416921842738751479871775900050350998031226544866643866020195599279382612132400526533529197514727598385394757316083098240837343269838672509168846102446322623115318583696545874849424596639923268058863114500524036892062682553692147138005864925064172846337355317277924739627184362867975381219663820683552519134372376313267610799249516582124044502033724399516081178000027303672022341479760465562480616748697708861162640221691031196795335840076407471153725117414641050437589248717879678255904448174431788486431592015170142823949477113490855047978197464649706018410841180074774887293077777388252024988497420235503698182362169956799856561861050332121650194407668152919679299492143100025478470079475518896417301010328543481086592749019194254691535677294288759971319912851611490552353144521529375724894616355741704582443155991099259677108149291454394044606243466670769683028578917317339403747675102598985277323302199118577931420159179871128186010241053380798019603189327638473081255814621534262978850082940828763414059131046920669177841731283010017129770038374947362754554619318541862401798943813118204440813621772636297957746991854206745548385250440782531228751266206471920129775019789848648951774369543113479461746530941960555898833708653572410535139956317650069691963924378122659727114803268670170410274786557140476380821545645599477174815756863625867349784441606616768505978784921486081673733549377632984432959706831844925338763785207185404131689809787914241332805937629154992514091261885972333523576782999810702767465246207744863219775135607099415558438476265683029145383130892122792361555559272360343226024195872708981967491154376074407409681808422800663109299556636500707872369136629672950798889488933347646464952207167417395096004304976154376597393516872823623842915373978412950053438727961888818366371893700951708214526118127568007997049014769217490565025722249779230840908207371369715701827340263908871578298087943636028542753117123985544009702437203219397487153839547009379494478202914850006729908561278300869512488527857141765686916438756651382856682084673187235461616055728192813793047531706502996424489205425773909480437198262588770580994721779529709746945418734036401022619708035500317121397665095311319432822227280506794033926356747095396434885135960061327747838382757588821561926530182732872230191570111328760211220283844658230855489011871817445581915688164431429755202017762123186736170861744398831322484087636072067087655015396643415334931198620989889095698554740973876111525232485865321392444362266132383458132892918766017037919250024555358415062749653850838335976045086331198560650634637391132725129691577938298983879782447722451735755332659977215369919895882977894341416060064049345688958162937659228201188811509756438931601367273036725292437315099391742610858793536200690599280066215096674045666114343784500011751587002037416032914500872822230227270578807768849895552231454986209132160520227707236178374161871071596540872310916012695892981570179724372448942632818685562390502094879289071061335346720506102153758553908213994197617915642631480413574152458930507331220650979035515461474096265778923513817146450458263089116798685861895532711784841461362674446994455848031335623633755553780649623267846609919848107536308966606414650484627318176552598685928521287319704129231152164384890780337961488613165264869554476178280233093232323782485447784306303413735708852894288933566153462512550007890998179607538390236690912831064493902695240383842248276564855420876899534696127315645534465429532663092319299564156854973518533955605136355602923655458497398853457945050097077269288255794517242344923678678789014923414084915293014271198206326523938241317228195697420399688152650612745348818432665382478604150871553158945988208279209149325589516478911599174025705259818830114687995641399872205223854328234249514217393310642590485553466563347194677256019753044415163543045596659582598073576479300338391148328883013657705468717358904320869538083575465190860760758829898244730067041401592631099813671018206979313555609262702826693987721257203176028633222645874514625648935583301359925823322019145919346579525135014874263462479343850008348648375333306105480927834396824042528555919911517370802184156039484132091674853970849186924808441158008851617185218489649987315226799215584925899515539862235263011492709361735544469056134436099110556139149299213481292200276826497887600929195502034714355282728938791739179206519423119813623690199171531290601340909582636790210579673768160409552515926328859456745472895017298929669513237305874618676370014973824061583017546552641966691509762765657461091902315308702579081687673138764539116322382678455831460802294868558308017558674251364124158922318842083128687113622140101921021181633323976974003387583712019686709025834691942546969669407434902585768387654748000874968117789425790087988845079027844266224091348526661746088882988366257882599043229224050760521473206980348992754176211823065535393365974592001858784118199424740833741139169577262359598285031801325206897097011508775640561812924786601656861488049291459445430124810253169560510341338156901419665867875789867215020756549471975231179388577179088688042662417426791191262584976865620306150481328813222221808332411318033933516291845410286833208778389245411696952433848513687142950924970897324794971011100138590344159790579675833892480161115054064418812222985720211279351046210002086912753513528463991735914198774371706386864715258658854067617656337004142249597800584961217833664636087363477505128546743741153144984643053389733246003175989704232542521343401803008418890978211875206941377508513261332424715908324486945318329080454039313714140523993592457483082214198272247757092980079198852990907016641141454014432542537481150949835559401631881262174277235920292090496714102756107147451091433072968471355045942481160390734609959132937381886122833393837120444669467769189406745408656843175174694781529963105225116803167773214388295729555908559822516794512480946024057064209694265309854177506170980246539338175746479101319243683905914624128818791532701197548444827515054682976360259924166946083126182461800336852210941274585202602173755077717319866657985193181692824924280117429205778645596261726653313929292216905281979905504712776194476875586369639840295795838008112752799757209262678438092477973347483032204098922866643829264731251803147585275383606049109423646212753312330033732547834438422417694866674538757317699993390520724107078236434307672815055460206898001279320254397606772385881139137843675005045202307736330222931355632203949884955190665618776868437093044952407412752933884676189173702453836086999156096762990461982072456740431356008289407883071321071561891942436591211225927218586880619113610521595587181224580942570448027676741036232600432696256293669199863658573132089414567707307105538014548663941415670350183626940322500990941187175617486522920797583621895611989572489079407020460518032268813570474243888840306560109104163955164359600027782678238243747147008392305232324155704118489950216876140911917562602453182529292734632490770695527768985824908475834554434724254572879081669607016157106566515202006379488303511482743928535056626963969298257920313494378851273215873272663389576346193025077468254424141773358054657530163183175246411068998738717310602852772594056167719774039285615416883879407323419693091497723470813237459672876784598382461118518598274914127500511517389174667963796399097433609709439301270449325718753381132317189855897008153219689171070804794200862664623198138334636904874747680204552146610440296142947621828093221864748039027801217010003495053710502245954896402462562578753917588317197725803456298642545977847908019525822680195158636662950309683867379290051926449263365417206644053555844618462697779891332050252921278860394654159237799504195781852879853179403646217109807436496362887072961473550309407686113017013408259360213448125276490463796260086638652274181998807914503309717060170203869002022124218915850188558579511376800991095128368206223433707500368258236832804929424513957237046529521882253701573626887549156317293198687182292539834513851801276655887541726365090917288553018520594208903209696968033939201285231103839336618487338763513774927050394173563387814476509422850463382680485495751923296291706064784955438678666537257832427949179233995528860801767481766590255968486447629626460996064823873446337586649738324166726956771124372501241795423812705939073926783537875519923523994418248897504447346994341082305680743461043133129273595703877412811311271205789034473662368364100933806468240397249761540630042341149853709134836824298797840126887565069651103126882378597798951452412182431382990539624532876757470986553083434066901894700614205232743585616481125422668483922588600156647622955807675028485888726648344827841266256061333731034375193880598381719663046564761946549719571808219488577841897881453155471789382903415141783034310855535558717746653740824286557857797065684106140841812055147982108295066091822548795274451554633181954820052674119983787526068401474577381733210215253639698912545410082075558196268599170104882045411104565837207396777443550857573917868529467796368210046796342511152003308178309924180453580349977158416150658185644251814543228321562012137015067598930965321882526087463300112681347572179181490999937142480526511534682909616197516222766976733879636193350880570455454640052997080286749849148826712261319695179528683776861104009754749611839902855116556726099539341066674908300376537432087566518832945932109689473983687084896015073556987649029477907070623058472558374398746731659624683577683728344547349320018857348635074601840004809611029646858889088238654531324629822787551115224435903928239956067132956526121082060228013707789788015265868362183732313618364918875464404321568043690970981003967233508168179083255497090175389372808767001264807199518590160306554843458585247328914045344932962523758920120824728402299053681553856651780185363917288967358642113401097316761212865506940884697707802062119782002652337075761195249175753550217486250367616478513033817263735190669577589519000011579670325312322917784614915615425613041701973073570292311481118486764994891112447074841332672196279305015142335439793388636214326487648816396047678697295813735740791799736830200726492604220506828490072474616605272205772897087755990045540361304184162946345299190180969958985076379967075464745062668589255181823494035857142270371611990335109243965062246597732423312093026891711681410945402341400842624642660303046046068412455094960826782471473688565867383482741734249696577028593187098550368047098916086999521921436848778749016447963964412573728632535032708669677563377878790238983531555422889112459579513367976394531091496134427175597943392281263973227162192591495652168046115584042802607298932157588274120004528197623805098315473176331223286415704930615974038046912107926923182327717179687513468947582024075222050640295690786845991852194755130706326364360712404298463644049471786258958981203582059596671694176480262473535378936762402395069895188286754032430704066188792239406999683074344583087175456243788809466659233339344225611874095277739715621925248530220319492984522747166782183105171814862752061850495632012509620086587908418034559358313519236820357251790676998841374143973779532579465957013633518111932108994234156471566067067714455124630718079447588537289534766686625385372238164091057859881626741614568421058105978439912722978461465935490545448514950420041074724958790407667818336552619395892442175280864430425715420119223875241067283604460814085043016004579771591895631435064765005906293797152711087361574905004234086114639863799308972817184463877928969684134655618716151504761893369512190042017096893813991170547052938547458874236414106197048598358135111963806604721459246542919974108849520851505042963578866472539372030158952173315469654747028682313822512926261197212849914682050118041225538125812727712678691752762180099629639677440776348519712496093425582435855264627741732646634607235723743852394426123381969041037405935092337675640795658499615719309886592480890217665618185338749150448298942906247092699203533793159458717683306553023488411118853841016712717198243685234339615646381232599292988203196939382754277982043212279536487388097591574219465316452972384614032983860733095022015484622122601025785216955502070981909854318898257529516408437573370175865093056944083624171375745688122484357130155902933952685564204698257555721469564389944729940700029102495289110675845198646203600232480023617731162213488372047891220106224878901866180463891362162613775442619025473401169316044806961356456854534669350830904745048830120084116041908760471491331952603628838599565356411863863766094878106867918877951907326436770085191194514039019442160227639334752427547308864837714343169740802407529675619846525053092227199261482626895167439945388681853810908070618237563950674762364064260307697907283035851249429991344764028301776272524025745508584873057269752837026492269600773142246934319979006948127841077312638863257488543616410496263115654684049428281149554990001681752423823731945732615365521103207100195759230365328941086269589952372675347976642966247957962187903331602778259044525337971824928295062818392300598486985993658919878051448155002148792328533124950333483158358225046823657137367585817137376588938856061647156104589374557332730037754934908007671424766720507437582365430273306552858640220458043540897008108222098908514667996953893041098944999601515694656035748438045979703320664120135325793925557221356409103572917561263126750304715498799577977185925655490263630311602981677429469460802630686677908155854580009195506815543675636935972063774085890769090678043529401976513059173288955754973679247778035972681800377602111283921510035790676377531692045607640553195040460957328594548969932416531587564050669684740193549102284955671341791351873816010670440504231543304584164442874088343313924095931700601006368532909268786020499964408348986948958027745424141245257121583343552836677724416048533096778348073199902619018580101819275745223203637088478850146306305428193543581829581047866846079653930162409259318927918359594071346194865185420093032797013267742378007681920872610174757994622177062040446559978894813783904078488918502059503498931964513819224711281803758299905643749276920003092953425836842337130073764424364629969887118750285524124548310573947865629526006826968513295302639068837113321836048569369003070179260992154609915125425458656799939710906218596304551919299427453462380187926098488760057097231885439675674436877040050649497932251217901587929967206091742946756436419617665009846418426381284487231185379022198183731716206100990395617014512096757624142432959201331793655313893175797771926488774938638501958102309633788152556740131406399223519591175366482267323564122542151741150036200939981012227603108485842665490145665225037780993239771488814877644264718472412002186000935702965899886910678390170796043758674596636977065587442969901802195866811806042815086663542081259445803919772579503600767884140926147951826127180705908909292663406341579922288597527713162253437178852382961977918099672998682589845717598531222716791187126224209432761450566532284990429329643252601626753591630692434155455064118767532077125342967166357284155464514358613863408408995779141250394393103505770985698588771724441444881604394297244335019721859727274538988983528385709993004755100492456046677271335862463725930805380130923981505593821206057933588876602427661366116105681190086399083594698091609738715621751640489564812703174216214755963881893802807328756545424917984410959362764178487511395218544226651229449881912845201590278661762329726969740730528515990877548207858228180980534747408974066209907841666793595508076967460879361666622110218261993342434519067979025100686676193333920504694863638400969098755935061936383499231387236757048066674426487304978040482359443298414985647768520324009895334575492809652566263679802684294999374671673400813704567374212006119931548019339836788880887121350003132122395464891175286732736406326384071253696787682660771930092439560217365989082252381519921094494168330805015128003141079956635528480631155036128342846575089194279175231163000676791367961931996212778397178211835872262745834371302778757990850338196097673173756222169001086562015603076840839237097185146547010759495100374080801852161743006062482167973685214796840409834368921304635899598760293596741751257934245266946183333453243201663751944800734804274029837789332790450735404405695304036309969840784217095980138544561986563010794561117480187313243688992223950596856238474334006495304326819879150105120024380396024117046928554609003928273236312423438394710322486362072037641327335230746833303824269166741459986049913008525918822863047435127156353423579182005820019872605476651783403833219470686839028175873531838491368906042312058261682461834273799061670946348919756618167274009672244241219587114705655172362321921537418274641029564986356497311708311066373701833634486771780168074354306560642492203535835352017608172954763639740903101511047947371983380946897642487080660288098098090365010232643439878154965489591883888710059127897124989982994544247729414907089737515547065015887217639093576777547703311284101134363638987456549004802025858806751674284135690391482587800953638199127026237232839018710291447884493183326301520978063697291520503520401777104649478648522671717016820177512523513780941361116573384158780229179453426062143668922808699221695115936790290001972448119035937944502917944487289305328639904578464540809929468186239752143735435274459173153650173185551506660900676777650162624570431608070376600776701024473400647690030901822025913897789846414556114644437850374147777873954672190576339489428706292342111597320428492528723015368056848069001738662962815071386089393058056233265363296328949635395323457537196489325177411948260598079363598095887178841236085347732739667573523220426798310685694513762242362871831232133844903300898505823406368570739194377831451708453527536096339577937460657629112702171356124436729218939214107537893750587234792105357362467540715790349562079944833777123546338569061940750045573872066826103291694559130603857364266915722623422577264199267414528372783383207410631680294595656243476006627133723364324818363281255938594019578273232879268459142124405116086577790995464942556411310773406035013798117897236642087755031063492495475714390134522050703504570987088315097726675889563990140528158964298077102858869203313574489557491070680357561937278235199585230784806473502994959530036270812258610355407850338541832986665365103776127213497301736165345347780693490432023917957187843742439590421049472617227469254356032609893739956507309498528866862356128792104335786883238040825769698042915405186429015503063556894973019688084517625814582540070581619623759459353431512396407180146065489661795002638410488676626880296719828544928871830599632724885015091322999421423335062785058125603890764128836359541889753176361439488897898430759844190874821210986464359651212037434699851137299219935732078486159544432510076044845297960406441008429754621419822553395110960743609495370283758236503390688930569206777762341150734310948886646718831819083571708889031447923279701646693992760570914957112395152000977182221789617928074540890617140482538625451319926011676694246606487951651736826216707185383764848067106947712952720456949779481179379540765414518012188341757846415456673931485624832714165915403890135899093127702971754711953787559907320349795225787187554007065638323713456298653871149643225948538239878339651662085696508547308635794447965635303005909217964099312681725285507395988499198991815928233952448084283821255393091861533926746259827461625212947871632732011760547460140578368514093148345088412025388181404367183083147257254034312307667351409132024540504941908526480607229902778770236704234099053511814620904950153144998849861022768407569838300382673460569828862328541306926996657766732038325437373420866389091289518519317138902538807226722334829812513152357261724846186915471614160448576922948006463898034608804763147786881364382535754877155672788857222956390805613083310083209446897589632518093861893626500690005885277780907858436937024968271549859790880864177892345248374666837340314221529680823764734438270792723956868518667431179854173950469469517363883434804516357919242822105571919625650175464115270730034404231832473156031693730524585187819055067639678441612147603071501432738091335542349574020960377591565817574039155430241244467603606920458842146080445088896867117283312629495536515760312668955711773881232512147434127401577374162850963004349812779100852959802948597117362678541684587764807156851238270555904141906663375639518461833545652954378238873686183945019199119092663314591599914908394802855663574373641779626409683622571667269729254139488586010406968524394487503984151829151909678208059995677518585165383096554760490742425937071311975766411668461870818384990189935438269029595461233568559026647915776364499432542212137147792334622688439383019996613169414495544738748241547612128014177644759596505833657390809576189997639718294329522779527052498243849707799751577622808953847356622167036641085844134239418109738990151205082620075102232746804507898909891623000732856064307739078463066955919358264388381977589939005939162352829436912151583632452623283702287499598363790551310318879733457598535817773402294257101715709945974275126339739757667000383353277654119136343741245182878244864489765279150521802504513172436452217863834152325191728550239489631318854268898296411015889015596314439278232138239977613009254689542071987399776034339989013907939477766439431102916654348410120995001199762655825726917220464394946016287020979295037567840220153948076336277220591535658755794125966270412442923295104285185767650683127212030432250547899686286513075720970457191855364586901830928619430613239507257751243599745624659185193900365896252286845716600854822074063594389976000022145691489095077025510225171900168713230045992330719168563610912882710172330949045075851580339746124437361411903861544257175812616651741196631219688996654388863915981571444145837086128897323637641425458525055336559279698089914177410183002042383290722251974796727802719126253505722957537800088715788345921881731088712472114977808772271243244952842695286651741686331606406461229695421702128051415835111678463061248678402357952545158427560220879332632817545302521526918656983289520334185263358767907560642571868208442137641381202513704135951115334961817377296757497558414927668711584586400474577040996657618286438544422691258708905625578607035774402791908127331234059312565142712753923511556660288409212795340651809806433807361280015563701046346160346653731772314768806609563330533919310145849823910183395903531452294775159752985363038670195451448447088343873741110036440530107857457525208081494012210840424039465566990063607692827397971921940166567221988498504317735989258854756330908315237566321115414149937684161245841548369280931193127286771443363872029678612152183841179943766311856580733899849020428754260708532365919027733997371909925411645520903333474556952112624671602680645269608911630660985896792146740062477728433589175763282007170998142343216047905405793575261573697971882297593748662323918590860067795430753013954670261419805921820601712854325223444088350235084957949127927274931081319514638298617557019684504697673776691444282306252914264138147323449945263546830005854333508332525763845820021895882852354988279606942473474456008393502865687350013210082328355794963806877022821497079501551306710174289317075573950122751247338574705276326783613230513276476062303662480001650443152850499074702796557895241353735506195636831363731913134783479577337897166883090249321725402243896838617480996687363072230363216135410581069490389889326196876762842903982395748672476245203795128351712237891964225084840458171062831869742714142392543157395102849869911114839325749596838972558499123076423174063081804306329523483639488135127225371300783033303794664426594585314012110311017561062162280546860577702674178650075598472655021530738076468522636940299621901271880204982741470302698027091135376770002104906648750027985326964116818617765775278251173403209433118312773530507075431559726093171296239858764189418077722381559478909344410842898162785176108939621359442522123287186627476654627035085317780814228307923225218526910025657652416149585244813602877309722788880693816946601009022002586188567488765739118342258374925551187959546513352820451306816670104980476323416102517469731542596426647316120432340341408563858482520308807475848085872462594862460170784624333392116686314623186529087188706311846345435992843286535930837487252420761819828753706678754386072254608412921751146408617796623159180519500522615759012669149852768553077930012450508748856365660359754261416943936841479524504300794099621543153858700600615931331608608180747980734586073322797929639025588528564151431323385790614191951329757180499194228129756560603798621679497112393279812101408765449487301311572273029031418473003790446748104953186821736743639796688095202289260500840666115906867181681914562186044212479678916891287981843586459929731746248194422965383611607351457548798633619375340363376786436690106013809743460731483867852433657873879311816629951324540038974962844463487882691650195848556944157800069808007383260328630068470301432660267899042272306428612193125297365328280623553695917032601878210509392401676532611256092088539517456942619642643582864070523305999712898743269645471537656418190337275524648882646310046041684923443162419985052337684069681027246521404278959258187757982740247117683507783882380700399285033773623423670813527088193950391105869624699642768091599687530977490215437427239185787001991194908114920262238948375793733583470797908625904421695482481803596636335509296872656819698658324714567579325077731511890224791943015907141754127080406092224418995038219035313935100844304376653425154171591459815399232627706161987507105145615836821627403164397205807858093112502644195693964959705524107080896326802211600210150030431776101961129966700115231429161995680783565767939512340703939959921156601340548893437510422490812988812974741500857604005442427103274916786113827734485704473800504041097527628495220645325617900718416814841357197746809974798137320065207743384456142969760304143506545188188971912290862202272202362802613954927736418264774475820960992967123400414457868763470602314255163474887839823955154481777842951814651751869041946028886518091835434404813767521043454402889360860689608923483950320989571341147901669804491568885967824969309510971237116280941718247928511407368827330164969016090549201436521685312860608238434366450464968484275305020594838350149654754426815019301360568266101367255540279968817703320408562605755340588059087727873101152223380164798720305396201549868467505152629866929542593860618931193035097225657834237080313350526936103651286910213415562597390874863333569420229008375647112908038250312609973537936227121300203258612746650043941296107858508943061657572269493859202761394268833688670065276099672644934743691398984935246981422044415064274313619797825683319633140677136243213717203394740437470878427377295107220023068602161590438201845536310320435529578508715038938873064386756566051405702634066848942361047904066382393230718196886828220600282355737863622632414393264718470280420337513386816443458415146211061742196756001166183876742747360936957602390056888913330938963768093238226236365788747278272287111860769231087981912984061132237479547181760671081914032438512504143135339752962475815122586277067217275170971118118159516303463133233403080570165592193227900879111382095892444436777080571905643483505871471880358898323727214061123110996631523263810681184519970210911340048365010014034629016715819896205586338261139620686864810522084336189841467215525878588422594056549132719901255408690508259402113670893589242590688898891087788522555828096397525402226668223960042318210183603197002075805187063480016868225262511987383145523714605618233774730301216551045459870420972214212754898941598465859429750305100569253146540186391189257482741590142583361710560310619422163388432261063780966463483610245218548895289226883800708593253914584036324049714002735711888276288261133459095822719699845556562318943078896344343237095299632054053326877082759936322681361851270417561141522576212936944401100535794156257004025749098374024388650956484330597470682720276771625414446911072307327801199643964259926119395999763147661082990680764499055786271518828240849670283189803791250377455870034294389565575586451888306756037518640642180237639929031695203284486739757318860362185822555594162383334554927440015970746379217754391603876151930597144296402171354908243442841552341603741213281002247178929499943768296606117207022361517357330880741340025973721870247724630896642661372478411513345882369457005526443723914257625835083697024722125416411826315370361835598417027549434632772506280962601910366494398634320264153020397106191661120329791492723492523978950815683086410873415068399428347536802106280697031564565370161922095379033974750926945432017948266186696982619844405482869576210953264511018077319830538562687201876471322936359808717240809384148143854725096386701914419814094611041983187582403546272084122107054060959767956564250630764841069169882523474944200988016084427400244192026694591296309347109851011066404405865068012163805286328564019155146838238582486840949664245322991199504535834881404620349190832424207938575128729183684754637831593771854692195491422438457540254295520535903899866039846480918429888285290170741280091074637069001001277515048817388144598096054155925352136512938299073371920114137092658385401738425826551199450500877784857541508666473450958181054280911951080996986782189140701598855318469133187298735003104648864336936234970719720975881889194172469192209641246984017826040609589334686178128881819029496802751599494199529031361412719450525370411487063380323832050351765924933902643164223544823028628361507200960584213968668360835097842332164114041647454331586601974912774604092580862471876323505109553026321120861617187961586552066246685600204561618213522640459788392778653713802270309219417115997488339575599391688119342474335793078719989852555141495353984476329534209190159542759875775772188147934636906169858948068317017579003104048241857430799128247734244101236849482268772563576047800408647851920934814311210703912452186955962647648680146958623146750779671866670991982284877979819504135445108752244719341201924794042339200401184767588495455517177828174963766877424129977493358701179000655731459717904630886340689953126561929516627846995309826384349234248797092440793641472651086182255441136219141653208947966991847323094880816796493983407482934868996872828572959758482398903562386750851232212948088621190432023219227656318061313864930137080238753166765117474325754072732749108079886032986083352172064195362214007456465063257825197237334909430375422948423521293012410489220524903580327563522987450582912983444370897718118475871036218770122863300330234272580879692148654774799606376228775861013282933520541940345743710207478206255123302685569875550132682748296384070225810438935996087757244504188939703576375032757772493990593691522261637546940751793588769171990968441106591720918900647704802673833855661458667891017381368171879005313529558422850675912563350248800694470324084572763609524350211138303284630113857337822071923052276003827152351376871426700222656813452821284328106063240301712945312613579849721510946345399487860121882168635269731136387472817982283806388186429668534803239192587415618827406007791074316466804295200859256900370299328465910014991019672245499250593035128132276629872634136859866854694001849349478041231158617907248071269087377038316298989697391541150150139941894368859520362317851514589036481371862519337963202167937123832488460010986183815676125885950062056409047717404958299427710216613294728928573050460851615714997336891959964230893271441835853621386361957947542052109264866989704719661079091804919601123473277971571967284102336224540935015405006529659883867609168705126777731603260888177994126692181519809722823162963809989898822934810205337371815626549290439868442414183821080906101534977347017526315449585683785047250002154588492974331354952252340027730742323932737605480173329317284785424251209251836198303071247427603504704572265829353323129378235628325058423091060826491561140919733262125986032777861594314051526112400523734184960498737914918929432942825183317919309045442650824774881727405482347233160281967045426518368122403957298708483956835257533724480226423710300079152656926593293693970823560246603601128978676207032076320509967968655269888757096363728453244432379210426846219054891039901424942107212213859577330814388112416988163742176273850314782958537373087653029926719126395959959619047076556169331683738840054732008360059197260356953743930099130460110100046710791427724372485771372857627249930756297874851057371236156917686042515436455600398305018125393413660790730287524379566432965509780635208793091992595295297215543422976478082903866276597786714807018624002482703210076223222072051628794454261008606339590530221911506260941301303114283763518388881513316192150140214934805514795086542333539704083955309357137052767695301522010887070476150038251810148086819504299546763825751319740368506742133384246866561081536735504409750432466216711772858624915855109472325958890952280654048883373912844796663268425784502903954678272013294825551382081225491172818088509672847618617986601922131305616103425901489362044242443638488552346094824508412825219342276435382172729691937361926428559131711862282514062625133027713391325738450425898613229122101933526896307921190236514996975974037834582652830935535795497476784024593001607183889095554631760334445696987913546462650352364195142466619899079369668271132143045235497093686072686688921046954509087112760626618318526926323496351445030368303554269996435850769760457723442136251118261037252854046526180840783192742197271024987291411651217082538927897291078570328705267866414268243596488377270943515545612444739134186345423860805566876652673204183368040875287267845445056452404528744375887759003243185085616964689163697675743919609854082318855490357580498347215652419250093868218917365457086132541216663462861879214614830290731120324112291137625845740417960913890850333962245085744624786420835520069171812850723550742731320070424697040103762754486365216020682618100046351431042880884801215683648733491728978593178208316807167076853171996574187893190776724470625885513730218050272652940234234844467636704783764965261940512539396149538632810614827699117773942152392942297959986908107112039132922796196661502366434769030211951424102484604591771844189309696879226128970011126706389786831094933887795157734430366141977966118605577874425386258454350095209271454769353136615094042892766874525205843227529101635751173867043275790194303247797409933108126229202602908952304210389623264022865878895951539056998660288306176916866596696229032122904490563633946408805129167575158961232378545450431174901123745360664836847664226678961128449082930578057850391280922530233132582861224347218309423313879795660017466991409119535475469491585853105550937956696146742229353450241934907287203131064718833057555420383546994177597373809494545941677741601596479410563468986781168310123455782416434035915190670891875071831364293984569628800398868952436414549961009262897851107718659241980898289929194453575663587741348819178964643838280870133483102754639119579560584586708790071451194242620585150718461942403102342761586367608073913498142589583926044576735593576268186091099342641845920782550613551819226890060724492351655933001505465592729569869643137742947386256195780727454250080025818087204067222558720493005223786514250484196921937512803798699918535068538678611661203676089791058774692820987385150210665201360883163712072020487043693681481422685980082817559332955862832235558542597429916961206124211782512934292607597851520726033465551030090523811099359133356729515577895181576430558046113836264840294711975469881626511617590353462394631054451687642271867162806817592548178742996272763677692791376626112494824569823786394765152957785727513753110248747722301216384274721362823786455590077621700420193655219529982080366140338541374662507988076982459864519985969596251465191662887908751060767723178996888173564753770808027772211229521561500103526190451186085882432523887480440686184485279427886878190772326728122450356221311575301710050056928817878429407444398309771990048348756161599682633907733019723552579917105699438345436050056419842088277207511684484102167267856344793374601602084902601103045976696962023935172483065944347373473795101142482798888714122214842416475623941540398861378158374354246071991764284313019495938083565835356437468430926583962836434810443719545436853756606055223690455955133580235309739235315758223615995505129263050708564519885293663248159423395005870191198481576828165793013807413113413891832541722023095630376399939212441054544293299901607956879404289523583963991330651424771876816878765932351437150064917209679385429353777553506435236517406369203975660882205523115168592271708623786133679938365241927399133176331265731996688140236991897857356376362584599848821454008351171008358944731801505505670118613000085980665195842036538720860552230920580339067806831364942050401393472070759594395269254901665209499226105697809549306948767260541099687003618683781977218104891987659267228379679092021133893757104903016787046635356513078750030313585281545575685797135055210497984550799318223004832553555995199459066307860011501006883553582958525557713310920951483951796175161518362416052780614886507111594879639122569397391277738018101623642277937101278916214660516545725651610827909972030928101820478339810820610332472828856228561291673355195256422710107138760176482565387128628730638394258125195120129158018067973669352824419396845356885198647853867293532150143503125489974248138693683339863893557890702104112497403558165753045418453328248598434510523666360431377543422364499777250799187834416212939377371926997029324775503673530954705550534522216799931406883884195341846799932980645047469583768370997715002623422869674999618720665872548121001396189867482576602768644760903421506242254190207046838031884956833289201517039334249824910184751793974677912830904090227823368633142972960403736243728191815356434481382371695577629790017974296985857259199451980026939614579081525131067072062982022375051530894909264433862530208283805215891916114040068777523609984525584316448663562131015668480316991419855340286087301294227619898543785699402590822006467674104234079027283386676256387719794689377054081437448848910816808739097933955658529372790440628956298073726005043649641775438194871658583434062026180338382431749495040928831416951815068596730834375294693866481597477366335495841246284311537118977215020563180961064558584472371216475570403349947880219798432290432375699439637214317031318059215691668987143545968339199297446581669017157839189097070576662350735912682396136048198594496018804745882236745394436946528327147425180931259678501401804168299288629517259898069014273386427679211747215563830706862666834376280209483435192905850802896004423038739255934653136941167181103249663450455521107023628443956441954912161707151288654767735578056904089661475026089030078158243427430393084005520633767647464086138697660247503579341033540670471544693372763780187402422672159850148603485262111751142095002814663852368245839564598670406875595001014123349468800756030184285521627998076453697671598394341777129295909875531401627864604883532926500099893669848860836586098359054949791604445481385364193438249661940711266011378501052489871021659632148274411125760199112196218658139344367946562400491104924337115461413381518296669233779669395098081597381418800658487453003649133955827053330606909215828549376189898496956230328797715792563646663137224542693550687043345754763262450415115393653695250732615077728461730849046166933289023064700554353645814040460512069988558729249083856250395376949843329013034508776228816295497712709530757459886358480143865034489980143778945561768300512208916811065362089952570171598646180945071171616925924357296724274946485882377478777591643865217263502953971732432275992484059363622844707142246654323517333066114134564664591765292587635142760676550255446124862270657812061826115550983478172081819066185697074245916583621111621790002332845015673060215008858776910011966731865449133051545699566497372660094230642256739028192155970651364369427832835020613996810152358971906970327197160298263891702492656657756583741562452095373017396610531995371939133267532570998127464470855569667270441774141221822738448930930588414116095859478236300568681813631030542919252018409086654698244405018974371963652439961129977990110272090389387521552612301807565299310969180142250389164311055389011166516753841487386235251508438557269028875332051993686053280194602172291146688522241107895957073837077593691679029755779747054136950458536235274043202187372507040474364996613467393639306674673185750325570119825355287634464607919327048448537099375726162146482929040837474416412277359195055735193652363162186860952397772210912379535756188324179263509098648200311593436980516346071146538614974843298790094672052975259205511050865398219360596535036450054908608746442023044781450891102129588978398318249739650073963861340516473244106700188512515397271396955563937264035966067557592398591522789715868646744459181047895106997484636496253409974259025503352777384476769594822178390018063549931905266094561022995380931250192529207027480344875131620715048441634917644762627119736659939939001356124985461602646935149490903486930587043276027312850943774208646443391742535099342532187592568035993129726081654694645244188381161036010723486557858760411410197991927134964546073301030969413689921679909202483067135205931896458247168642317189179465207005900927960803580870962686021947748607248064049007524981502787227906373098279764991516722072728611168884303630584435197721858684023600142051366944198401483736948644436011503605899605831856516522370645967933155150912233677549864030214622806865086432078447015909367063404550252220425801964420377772757957934182562838879677646952705081611541918511729281565432283697740484340756774462853053155017143716513917643351008584481038809516657586180210989501137258991150232782436513375869895355531453914151107845585711808711082180457588702669594422222342993091895832280764722490427128842349802030966006667227381775700910833140203542193838721459545336510027621926362287045724283386743194235000971578126922642207106130356058316417077583447705786433349754766940307880300479880525507235526596285956742001928378860684286689602468856907776484961281081648634136060845784611263819977436583955076763107681559953917410979580070273642758483515571373511570598862047318705569081357869629412316421529718872347464223714416544046387741815581920591739153505210371871480200355168977033110084405524509030598488100414135191075708849594550710333045831784665017668467555115231448610420270065286750950736212276054886575166991058414916382101056807041087124935255023431421608648954460751030749849232558128901611559815881378024685523276086183904840958153133423414497252004847786877550635644388731552341746059772557994046129279413745886551127741227611030353820253709641253661179367684109573116622567512223279466744782680667493733673421607457467933638932734807825725296087311713181179542949427055878179861101372069004211286024450554521709935036012321758817862942781222782560125363691374763412527793952486711711833637783365076491491410021252628860994659555154913701924709902380880156218123602082299989618408637053063098159807795800236958893651583450778417753092125508585539377560754468557233489690664848691596654957100939770052292780890565070513877786066662433594503992175328474287737115652257580418206729824166952683514074969225254882783219234014657278766960605233992252174580926910947457650534424760704614131997784006919185056321947260814890534771042289119754465004936028151077865010546640976288225825223808074992701660564017020533510211575470402881690068015263672798314985676512799501479711975103585915619512425254048790402711170554729142174487964799472935849206094156074226238201115886893936838960891973310872260645650503033761742945144019961248277189928661491389031115606530393971323951963772175732885085590213331292830702096514044417198503946417924091048558996690111130148162133486571762510115897497397393328948462631127769406141681745955828315205771304622882770665883086554171314124172969930775435305816006137901669035058423964416778868266787636192447986823431945145155760522433892265001083555784164129414974407201677697824531277615686331403549259517679897916062277477416316675161908360790541469452713988064844459080346726853862044937209335630814643315075158631925769561520757740387522737819360272695848296129302608797460724964854607006929008681861311912693431515813195822868353070857026101969705474329395178107908803755631881871821089320669964574345015273116907248599790967352582864952432689525123591493984985463380754655348992135572481906122680640829860219826449191294285127876182114156196254775117967312402312870140583278045933009932244283669342864809316213530307462673852800002535695283784506170175850623514201587702403972950264500450217960542445449078793570979626251133837841377837679335720045756512087418369424511192968885890010154873962198376476629464666873340383956296394363859324826125969832974740620512970738197513268459905392357965785390081973148909465064743179522539420872595238869346098600043248768614011076655353831655506857080803949652585682927552444755040309680612156195416571316215629901996465585813092025697234760383536895449959852433978171110101344804990666039665547220589160635914805991717911882106114894311038364651726110401618501278763814528467730666585073329283061138325037838357986089901678419576260493398254623004555783730695977786053751690598553221215852496839089094699181756035963857847115246838588029608675466452432573541806621944139599689383924048604795590151175583199556523753367742246752929421537669670062787068571042917320063933861325811019281093742187859264924400066954909851790552950513355576571612700817724243653327629928898767942549436166801524375127139718351769206017793433204976842748689387501605879628715552567867168857001440075003162235694890301111747879921656284624951507103305572457251625756343969087623118384486873335097905768756056380294085528081353632695720305647689857233871062412516446054053630932563990105311950609081645723965980295485616359190209506347381306973544541906679972666940947813845893877278148453959399421484504331136631641239475834630835364674702655229190468183752274201560449875020514889940398423029333747102611063809202550381149358124609266065222362199438985591514802010060867302991604636607397692425569148873375635406078572170558526461098756611833477607676621521021977576620350315689438347994027201707940453721223501416055943809890412958821950237313885606544410919680484694241832337735565265787176689413110956414386886052553859652648763911388570281463946756182428856252955941554079683230526662065766049732996646090940027869037234729769838240937447202343822422103187910814996622764613219476197300236960816557528058775730280123630255852031540062695392970631755872934901482421936494518673503140548416408428176065420195355193583968574562186970563511282747681750116430378604171033759308771711962354030280485270556977994831309657168929252232942201743101793475474546697670966331745856666711119531198555636124230305916149431349502011500607419440871420584084076671086886791448395173790103776210006937442639948032624795353657712867675568710555613664875693297762776365793503556897816034182881963937243931674868169894600191774201761462907228979669985797473991163178396246118785749667404711027511199966647736303372431214763047142562964890977816104151097767803710414757741505008313754960736212987042941559107256057808224279950961093474747175769497870580644139086236905831485601446116272385754533103212709006184531848969818395649846613009370432584603378563797143156401628384781025600190104948806773630790648587240131773536573324044159196203871545982438516350440864338608296936335021232629769504267441585606804540084788254654741436178787857769237083851717325131312727437028459355297559295381506413685786034929842658237289758380438797661862970219375474288852808843190672397789699946247700914442226850765650136637393168278874034566924844806828982607581594550473694238929345636363155653370786654715644217673948719659577174764953128942912038035749464567588144437783590968824687250945311802013370478561900607776459368505881114101263622091244872987471052078996985860877007098106592198603309466183736254669649178379424219640746917397911909876641911911762555792270110384013804995085065868661123596060952642730115484191277859636954344398155759023614573850453545613421004707716029589974997425870421795553827333489266793084308328800874951400492501062249539006877777783032949948733467599219682364599297852543830413887688543019787490206512132945197098155389388737683496461053897045815516381171838477296146202956547451720422447334932522415287032183463849155246405044024169175096085240535308132549718370621050777389082815952385675352880935612396430930291240055288980254193763645190967899922452447366090408884646422229809963273046648303864933106182845613869354425378640894888852636162434086143666798248124219960937622265572839500472883340129813169088789555366078357911859584877335649522394620579346401552134776082297207048103465963819494375412846258319054914477146034310769070073139220757917839642408224368241476973588437906900495426581204556326055527648075534729039301853666379496931105073201060096891110718076626874148842812998068089803920885170303785580179406320881302077063909260246756301651522619359857355864069432905733095223665517696281888549182074004253173394226900642432230114552857920395743744393588840590272436213255598621842984357628427265539490183616542522589915194448820810016360644394315962535816270900507915273492510553388120245458180056082684957301428827465614321215832557877809995979143806765119878397434751315482795293237106759364470166081297083589814261774262374745332459155682504847064325522655981744988760520530045825357227647453577609240972162107529924539539828343139536048361639928534763167634427611163191959874598745021868729795108918293658952492294469049779035721862437103430927041778141734375834447655920314297786081581350161527781736936790806978546310899107720260177301904152411779256614670218718689937048681961232376076261421517186264537303863248848306032860960743677460935809395759494161050014092071170197652508018330369855310499207588003466651134830864715124806979271828449152549842980143632040688439331152052450481051276011451132347536143172615678896014881419294330351476640027722052242888023906803283625743183307459837470007862755172720942698660189607070182015472197313089874200416464621355435215839101496278681851741622788668807661213963518936957737230957002296069720222184333467066373567422496413069614637049510469434614384057817724531091319243552390835793464314118862269303182400331957087752185531787647457408133646763065680441152068988962999692108793232617072343224606420303166255784638981850805682322925668177110929150638005451620271060007294162950393551280828109332644016723787509752762426247947282304149841612012479213962159478000721507011748005559454413207316604277927063734052853175568102267271439444160488222643203649188525506805790533925209319946142225178290472276448687277524603865846893897321997869996159504720643153697672216338399589681891478018611455083794155656934209195762722959339426508683002130677822482512747007632125009739612934788899870173695111969492006849367928365691392936019194247644365369679962837718898908224559976057876794204897251788966794320780953308587702916312345690351234699011210024924882350162419149805256689278146881748411373384512650404426026016174083340878462135707943978182781674136391410612650025129891616693070354862668959999640528630439887374901132386907657707589745003957795830186242822596229210275052395532012586127710087836975692148426312685770322385049274726902381378686349390499487426333519589238813386210240047005785571823712294583325690438102470894329998522045752317146756445287878032645579408189103824315489821082266606079953866499823331550192487982786369169764408364225279553201030930734546360811871776610670061977698280825211886266896475330921232787676667794988268007855392533634656163912788713436787867326128858315577574757678709399393362017687272588094120199680615187600124246336635184807824653707127359265544077492370784487395778833633839346414619114016017198888855807220656029433776001499540606316130167589659279854729661618069505180432771430931247741219443159176149431266424877414152457517571917489109550326750273531936307715043060655844075503362287494271059001654865438597617236841410287778198061468281992687100256812071901835854875787751945506362667750021404418139747675554328652621745415213851852200791627954888737402015712087522763175128516410354810484748135225147028099819437510313282754593447952607445711985178914463303462555559601913555906523737021665536634763572657129604727946241632846958628031946325103594991326439647079669748615773608928948792242537708450159656689310933081678962692674730811138084320470970100932198692754639189711810875859192716899435030997782057155287607923503633605757475001735704952101389342830222163569670194144421340323092309287953494398738922532423939001627540993897755445176367098476531206661597211164087157774395474033591133251629830612848229645808902168869818380796268949234835308435743059858876382829220539401731381204587021397534570865987624162949597379476678208562428746882049504342654009481975427870199228743726897676354850808096987110884864691854355927105360858685379996965092430184421201423346739848109757892388467127191832939394186046354122886991645273452471656207022219959993052616344849455613037661491169087175702420267763870030593860978818241070672161898716367824673621942066317051048016612705283876722049260120281837624984973620899292550796950634660372075252868137610765146486038425896329719913482336696787667929214614155214968496153163405592179488280090206724876842745351897417517584325163575058532693153060803437532449917307742878074845719464047323918936950215730614617073542550757942429904399917204349557469460165157411599375599051616225288044721579090824620542223042346575459063829138474116632582134413870312733163103806323050318718753967806797948921534013940888513173838805683056796735758472563313923397530520447749851062296404626925107800694978290172499365317181593280781094310560773077208638494310761180514697355673427599403131421722926669615356481407455153788567617018493943219534869070491562752975677626299454762290433720249685454359737076961734905756568854362281593120169878776927260751047511567933903122850671064865423104610033744334011163109678515364076453436641005894948200486275064957573188095997746873948734202177471178528272657456652670103165020961349682559530461781985611739418961309207429448596535081079549379885449153998520697016521976129047952809699237972530500104387529812888677768860144693164890888368697069192373146588919264627849715848070012856925334482547980778782458553894910890125963270711609765593578897974106623882942569055903875166863420159123648247702862575571533940506696789760528032760699205421154311456822888231951173529871852563712600357354402240766359927148266799150866308111447652215494483200909583132071073378900499672945699743869543099719017011667930528094128255244843943854298374346517570326650550109755922079273255961307426523649247821150253148677500917030784094046229982094521289187463829502558574247180463577382286724747393790209400161794668313945578717586874482676675195240115051334199484430676958510489766506990584647417071880741044502843159001105861419605863057670518776870041351676112729603277878329850278900445319685299104452092427720497648399299120271501762322396306560235357358837023681195859282350286993786612712580107442649892824099165889256430984901966018825128810120815017715744788749727408467107539051182148036831301692108061218197399661153725325307048967785722894015143843529792111449001748956806400937559079079735443205071138860320530662202527380258525981174964953111110460529300256268831001348090146766922391827038128821687384879297239963884661787988152846006237281654757428361037502751039630309338843890054909698085433979124466815449979972867782224051775897763626975739804490407554249128144437778542468559549983086150189483119444943746912318867969731664864312715257172720566364135598346061894689898071142718255956811415133474043594066606619480198345749627013843929955990561727441408272484239226088695863195160676559767379848278732973028866750960879940425005590437979585796742305139493315285002138445882929435502654079578063072801853048192845880789846432380149736781034595422318855304610895880011221653382651345282297262530777469288422993345549066023281125415123688845346190611699624385440252615329363149738782573543364265404159947219876197589473258172320585063406711118026346805812992258743173768224276841902649036301326309803815609193400466375597015104890448904223131051997766835930416044590917713001752487570083577907153127842909120128867273581391826054147910732986113661794700141083424224909643459022832026704596148254913610953273599241908349133819726330016101976079342943101431899648641893383748720013588175699674849656814965070058959707733380788320417214422209038499287547978678656960749525078827102027899037065828390900966022943102179175189823961132210754415819403175917798184981655475916131286001277774412135261047718399792547891845034180286416691656282423395545569050196847547414039566449464236491667489227558878892640678079824081830682369948342168330761439157915499223497249277608576517952880634586882434220827518449901233328479094867062494549920336291968225003744536512571407337133686204674962051360982716828698158463477760486532965446156865338697541113575493368319177750904866397176806772246151655432921014913728735155683354328194795702586194104676888475322013928451715375249246334682416829881501228886170841057627192396312904514625834572378819297169770110347474131592947778116416139837312800795190901389043139601699086142717696381864481226961604244222196304608437084303747876028888140948881150175774533569125075382020918865182305949255704997178030584173087180273613753439795722832077261655962734095071461646134786300006216839131191316073809294290391019144782634559136110543992513861180681227836568067811486269170238104019393912708676437056556753288192287612930824247535674875408519621551690268005407040663444686450157426010532618089703101440554479285852956685801888324952196696541611062366805954306197936459741258032828229109302405309652742842863131760949166626067421090981777863241164008035852817531900906805837831277463128158307345143180276738197286369366060330581846400371109854394357412297862130650407759108166732239726066168941121282665123804398972463248518981698885838804195264959958819042574916671695321695763437221996833845556433561530851313608492960868308801735528719005475369202441303422863840633100176463128156345114360107976616701885139854752544319289428441283718191942503079284785363617587801980799819340353722501779011446829185883589410482385757940865281779880247335285921696375982452197483238107438548974508296253685154650745080992883293812879959424393804798228025631478505464983199023435358732500134110729144269412537746764230132581074732657232940725485256971466886923076167762319708161575991343900769778684138480779382450518677729730595084772449344708805094245361851890085064321695043573365071726890318624850001995781556330419069374304404864939037384571150841402944741064707690421307581415805442556977663882238491270852270220905665332849513014084427062798353681431398653431245074818336360366394500594513296585119448769323710802289150873253561840812386391028430160345065973450300909488076283665263925223651327473067834712826847769548635629244644897703536680915376590865896266992304907435799767627039922869283903202719177815245647413169008833828883979283622306017075154950952288504866715541415080944525523782934508846330001044903411854512166118205746746785535161549993545924885254065252111902395813226564156847962694861560700388018818684241309198288712085396630409498226200516799483030581143062027524743358226835926115184987565994200708343295379233340139098327944438942882133981685860361696620435733352156191304077621698484139790448408331396741589710228672154975949457273446090036822991742542414979905781881804619391113709712451531284456366245335893254788399143305978364157624945578773287175293036687669092277650804657742208232806174780105069142905518683988377254217029573438211395976506557065460213914442325849746407020487590965166097501622578179018714974172269567123050305276787307085044467418364241406227135770458966609007996669927556640643652920981010914925051876182478557110081354709734955112626308257999971099697319320647904265711124293182638364227094848783947498616242765219491660459100068388579170190041869812859517340082493959044582173848166331523646492011188476065167573796499116424511651473696450558609464492453227324479823273616826608520496230216076460693801392341815327578464427821406938437972132666392320409177613340632910522643399944149837285435666975537851363964562270344602201068760805005388958996025989261829936987861417765989383296361338717427303220184238213928981122953545663218039346287424670158546246746011110493245756356018407413046611637555395547351331805933090287354819623262832976730763926942471919664724378642230530016998430429951181930481287173071624908966987959466815005293159090558748544014749768967870234799383027260675756044521381612046981965063702522116534809611191933937025159579874819266372263974294270822681223311591218078962051540541759435946892368507269436841338884584729721094550984467567315111160625580705894711871414492433841167452536044695156804705577697610743736650002392516117814950883959085619364552579036024521264061524722903066847764396711557372496688421753128043465136085343433338352739249106539075218464901750149546451952257042174780283809132102978632543058994820170741303836335659678921839067617755550142554757518699427857568031107717023841985166251215608559043360783428081926876638803320656878610290182600240808756748818830526963634204284052389797563289358318064518534958067321987762997258829495488508132679512916023816911829891017474007844048981549287834873991838675586595665124240688752176498400828933543634432513806438844178311916381107052045898155855697829575993268594925647738017335203589121293717940425703328846041766266785994415973916410603439757841257369597010157642704755797175120109227822226010327459531462439846681725541733226134174023303073003360014859350450405659193514467115317417157672182074139235135126808616573933791395453214090157071052130035196556631474174467193132565227706595751164973876702237261232257852911857360451113169105472099082447442446356080545450328656397088686841655596089271047349488859671441078939010276036828699308022270038978364795082217153702981604722807164316135322363601534301879425639617260968193177410190156368666086122226112159149508391307229947516327618957186770918742318890057300034014150865920727233869187228967679238629759369801341163356798355784476952603848749358001246941625520475207600707232870866547545758807293962132890326924947301730842087524641558623616306487494841196606582466325355863498013138639394078492141189511224063463071061781333255232189245224964592479208362968864582513952963611793168049858650672525662985472099745733014907327285338039453542953986962127735918967536573000514496995271237234228233391024627420133107909290756252341602188015068127348365517174424927684962505561309704926751381231022538693370424457772260995549874459840290162627869884101192799654800142199064961483938919628296919044144775628417316102711804968660477073630422875844837075908057256347117170229528862514279527139123845886046847414333031954844476577993300224077198901015467796262057276568906853969215870852326679663184711455360798583474717608121768651577249318465092528544529110696629257896616997613794626289452979906306418822194115502138277687499563526015402866726299182747620650960401168097874349510231462719726048866972100892696395520343161871742544875759053339975865982525452396540875133073055857464097925044546620546191861530321260868736202718179072874765470055661201982121759578593296651152989107897626461975516198077701885906639278381391661831947369782158376196872245840635162801342264496897453293811503825713755218053777498059846405597606270622471475912079950279124084357140761655440447318628196043496890313371468579277581786509808109546154281001109943379778281680253632766471281539882211736630085169834832491552227817996396891170031198113492425660214342100586333470859947677505377068609126598245474175496909296974394346137286613180107758861838089008263928747609812776922540490798935597264562477726536103773858279694219293599357942859152797163462487533452995543740823601083472958994831550840533525929676730322485408566585169210769061411028169792802456878142150711834308773949403806659231749625253362942860266156449599654945719642623349836134233012450960951571170305584215860064500763604943537465165857726064846276506485602703683870933413540576087262113341764459604009516558136322759019259395167133113434168632538760767220276997593197990639407823652241560208277792594397648854750034358107191137377779955419880251710269724580618869736562079801330831225827983425644710894151313840894026262895173652682175736846111477097974715938110843144186826613917908337231780961097338852336894536844276686459824940766061808412394427263410616594076514495649817749860031813797477912109374870618582051720353918763234944094832966798629658385050195179917959889436353498745137749924633799591329693657789114056034608254259093636169255011541485067607430071466246150162741448700579258258198949862657235254964897356496353922237060934154149187473844880146115016188247951596176093099595481850245337444051795637290764071227234922798371491668505257661539123950907437713925230025877543791273002863640796149984575711189317837064789597699587299322311075175455165290938695587402431069831513731559599443776694051499260280237847217604650824159942607363150053918985174501399564628000689291252175313828889545177974885405119202330703757451352972076449488113314022644893145711499865619783314732496547387901220586821666637931805481393681318742344658231327396239995181066625204400563332892894980436725564952247360184249864024899219943476519375474229706423743769044211044387135394775068848523620273020803018959568229470920071588354214024009862719371517722169505743352256067614605896831113521942838622925499282461097396733012701662896773724164146681205818257823401925552387979246178731382250996629092360400734891809884476993463906022504235827258136104484213284370688838214173541265660823524978715130212021577206047186145085423704499058585607797643543131683899045016583088105539472425536349905304580873741362154545687142644984682238858606908874542820019675763764278217174857143641242611097755163024098624414906392351166559318590357599327925659369197289029425659969808646787141766452485215510451984865048648313967737558645246978116347046467274505984803558059516212346398214013062657843220186571180407733456365197606690097985174125759410238456602903479763329861803527212563881787734913911128794828185732876673150217048232230271871170924322857450662784647249744294646176659843454744777822719861103646816466322907965915551706534279246410402410718690116980084779007926297796584764140308581551511589159698256220931805214107231624754111696643860609627996160763008794828927226080923346707641636713371463158525490724938144384518567422560927437621392933599441838026205727079633816560991817599556523068904237600015545364931183191497902307501094078783648211796579797078721361174282636375815711624362692151444119312750370992188518233302417140015267631095374575278974584527250480089121412372186827368692376618724666495176714408514387209805883866495133845726797962292273797622486441198999246392988181062931688766018349737646988857256471864918885432909845939991269884949174499938857779624155989387308057872512168423605341895233745318830231122957791864558550619502615035791291582701188961262473029571134525931750344606718108306539235142387945006901542711773890337961625690727029193387022584151054135494210175881421927283480040061096560349202792690145185657585034467132835323169591021078746377685098408828580843757201806834611723905948399919556251644309512384300046824291349871840713180781965190408847765604824667245775543318513063702433705438560899302669287795632964664771955135627803141378002301678920902492846163856542315519445271343519262518253148902725411394754290518303554811692614856087141428259695050857632633922414264874281702906363122945626055424652010721243353516182463057276660949895512766027703731025700941193813592276380874076168169780324061130344176386696324002791197732295210729268750919862509392941184570614546178997257733545053739109893334090864187215221597947026734539912649957099953297212489857071591567329378423282966848676623392622430277318509692669153175213237968480889829385888304065304634144629247449980705174456231831709301496379934215147595839835401356068930123478818309663249613142784950390227897715613971995884353493180935756688314785445504578393524800600255025649630237608888649985782122907513732054032854510047861381448549253871517687695544143862014212617927449718476340868442747208003784492717593478131649425432403645776868603005204130246759114428162036689811098770965080036432757973838040005046674225111101849167734337689200466797426806936609210777052193814757514767016734019998547280785736939264288863824713665082164078392135360689514069148001413938585106579675390296025341794720455462547320491412389295992785051853712684133544596348060618201482885773309149653577489383527101607479030304295389292139558239842779569852106848014683207977843292715275969816545659608699566839787066053384252730217632898316337205697996722848021315866215656032195665547666661355519905656486217344582615782995343630765929429434403796985375991753011565995863210805019093421322384403715543830384601363279361980180292246494322368004231296082443689767354069338598376021865834659598397810745268776411896715466624657245971384802382692440859432226491673973651814612892745424099962767296933130946036488128503738673162697595473803951606221774320563441762842168003044020879472409158394468998362510854713219800241585240299411842183295798565538021767758709141160191033093194190715773160608085649693362881799223957728984919437012327427258603708436247040973714763448570321164798647431165009820337767263300121338564766136359087740088824217857547528119731818268795792599449267883992696811867210730119540793021567611306566889936912724265882025921674207939347820693444671657265401266414231474999440228910809555360747052511708147560338902686554509989798178741417710391586344290281178464454517294263311212208003330281738318326478168089792147385521189820879285867433387951618413306730570159049703841745700365709886656766544045198239732571362752165951550812212032838233743214620912449493893993943275621638958779455674973118908203938890867443972906192516183179197746832152943877680876572323121113205874907542875346129046686903716940160500439633174679129933644424695184083419767865106878459141748387949449451988948550839208122326779821901675089133861391092733682500771140574967531418564914871979048954722665828948023758581401679332999775903371824670799347454068070051103913475716602669303337781598750204760010214617129087326792091853825001867581523929646829784491834208920011585794506557465722415884561168901464682173158412250254205917756942663880073813529048064318313081524580341948765327515280106894485905245033416276312415738053497231978550373364364238114531559531422334656680508828298256374669041149547485086526752527359449677705274855451755532915748776875877248023359298903391155913551461799739494587989270365087865830927214968142694170294950588585822320588023398758434850938009036270973735913465668045993624611746751632340071404781394781221948795640485264719724669654252721822116891161733524938363872011475930807154535687714900286423252899021816593962480121940397486341052098188706788060661689933340474067751898910226842979956995150083907805442524067729520191647569203058730885926106597809260988813480920190376628862970781852302143268558364292749131895861498081547747912093924163757769369081947793673970721001344555132134186449241413232681549399669999121567400666092592351007878442570242759786669531173079515769907110879362229999348493050145386816744517594152385225129844162842239875777368380800301350936624513923742257939017469567864920973743451708856479929404415056133837549525991564071897595851435102275278742137409940975511432280840040507175294226333931511086349285800167669707057923028926751845329134411512757777618814719968091743277944369100847549981447289423057418515436430176814926524084248130157249286692169819900538409913515870711040111383515935248859674461540548305984225695617658852283788279744401338386303162013468762781925277620292225035372998078765549020540264303878858118638531286490440593162289653640528293507211466290832543478179277690519283150433605981401863824100934919129301393848764555011092787981028021757114022819035054539628571244844745522129349879569121145459157154236473385354712814988371596090794379150031196953832853112195592428770153229020239566590695744308504285573898998298837015391213619889569782281676966635897620715458248002559871913522612520544191687644421617726438113118206257465115626962816359310681360833485790598989162506083491453078195781947193463831759985778651914484547024445816085779152535700802491084342493020657339887767206558841394531066819460726284189522344264961204943181165454435731728245431044222519173857623545037195099917840090976317746761032659078523602803896101761438807186006062166826243782511347094001568666543759792340884995951495299990631047368607541753477779638641784580830620302261835767294889892453886295246138543277556978472390837968217691953464332216471282729849267396626941287000857993872401715364597158296655624152807841208388682311888410831922357733101085904398093197464424115747475496132487432201887616492735591698620150103482949206628300599992488917189065448536386104572486865368262312478316303339606908732088831806359149246829576400891077560125032814602487592645853418765071279467787499349822498545402001422302764378636942935215389614002881821801276840754362854351176357148460812323967133609598337955669190176231387491078597465125380423940396614098422100629059156039531863846205197724640348056230831155426686313648142257908888987917313484130509972630977690322048568991269228247331991405829550477743124705634736984820343677988500466769768481281835427548209615998553769166942520048044385510067201123151220523183599540229679872393625586060349733888872108393564622929856193846821187325314260508346332621459066227984864120851246511086264270626669520030026184948245999386421892526045270807573056558070417755265151144131286421781976455937751032593529592051049067019577421610437534788318752526908228605521169295536955193350510583280994639749869076687372953147875566332968584919503326940127245779593847810153853691090502646436338399504987809432602649249166818189515200073200927654677934409109500044926070524835147617259130029250458103529677996906591852173470092638246919413914269553686961220768408551684645130792422918194175975727145447838829212271981489583236162696978530274693293830183554940234254836582060794758465038640078652762263483623006700169640889874171743502338297872415430439445111234424664936207675261333055095147783918459200654111470767219827234174907387557788759335162687148003778403291904293915895932943418026222958213454059285079384032037517530777602355652636085362364595141788321702268688456649545330375840485836565091182035373001687560683046546563506453598897104899134927388141905523691983256631360482901770073676454361153473310703057457834931627712737588126392120861608399664977373647093832810735712690412758065833496513578025855624349452540870140082122901200054647214954396854327035241918221650670112316215552944044169253281336650410573890318200375760502422908242511062318169222823935115665948799158270701974265409647669216184307389782613881573288659935795415120686543096196520696448049876355283233553809415635971760955731805325447100960929654375705862517403732909156389812697911068521114263763068904772389790486192074072024974750902065090359308497137427771071087902313211140527932307918613806801509841021134715601791054029323310288460554895146604399094145949844808463121935825195311399139053223442164466429454749534066445087158733618952043822690913073913202292505813912363318532862973125900900761416046674495515062904383176920196746696001631709768202102186250530217184762247915974744015115394046068369070397527931495778567367854493115911016641615574035247133529972890793670734709227927655186155854767297171693223261505893235588537359290430149137831962511932101778297461359577690708402750927827238619374917327582895761525394806649902808553921438390640211248067583927543503856176730193348752591251406389849682762214287106031018387549165914923738974178127082382505291949945794443313432707439073111109360221353702923144158103468079182916327164434257265111118258231618338672150544733682170263300553895288986591452237590095296461437962320952955730599261089832836056179473202296399727967324876984399476610619919466383687500541223718934346178475517982367578158612537749759377621950909709991652749956844445087302870854873864475925442958688158587450766753284723119447731044254711048928039732636407837442773230503778586830779693656251811972945385646644365609003502977101149603394152291645765607938683527535608131074350712506492188851140148779693380057775622710869189816651259487473783483873269303758040976969102213689682232386174126200612421259007838598133726045886124485005885419782543153004747836716677898535057202062748827458861335772347437390172839605723683893449560780762977051570251019922601537281857304667215261791215863068422799858727876846335919029770620730033874655252272931661781508620283154761563519196172391388188793708321870014322424496878280904617668608005198034517902639622730333180341264679498916208560861637558161830404781418730102780845360508855837192164827024138735874198241951146709196742492483032238360594825715694470524762373735033953219819900036509306343571086820756812160391217978482915758536155829936678406743160200213197096248026738396132893506598603444901878634924910445166170973200201532859793052471193271062871529240320497774848791571937618619084688487195001378225361129620750476699603732952218631168407566866044630830261213734570612514117434117285783290246404966137661450849493282984925673318637149864842005759919034481725635947500949562076337732667805510526075073447329474479144983122460913913233742048427505730273281662391744466468800033180532220436754004603679189871386596269945361730915118253139038011644205714612347671818657378830421684685008050119226981690529048638166840551749969063533492601773769291735122584975617018214963736549235825496117800789061764472899551768696854371385244319995611731542685902975778169491107332326158475906415983377542674501966952752221134052963214745154228609649708647937097396677176368159179542631920861225989533178576137705657033188889470746049797387291930106034372854636007760298166474601691901750801504724664545856771281384230543558968213959880271049696160714761566979125901085314215923822156968841364680076364448277312673647014436795633748145605126556376635650070636129443917077525533297019118608667573560933235582749998740364314990976358172282449757159765931991620546675756918360668423034982555558034533953201488755263453276188875759903178886453679078876511237982807737122054259428977182264682938926515463934828391988309236244795902279449405185366716878133859965984745692522764501377620043313593981546580402526108033611728550118344088222178529502412755815529812982647526889709282812319009590590056486446598343004899286253498780905060156937209829341881959818418224251302281642933544721480505626437166733854257714203938588614285857047067928344046957655432844404142235979220140177017355468056733203097316185527378422103731880565818415553201227845590765160694939481652316736285688412477909507511152810850230886136818891096098866744731776201583585565828676433621536767688359943285429873749841775747327877242219991310060699197940061806526337217118929994803182900062098963946678350592169222918951176530989306463495052676970158483694882527924278183210637595633472246296787944796707145112531481207814838758697312376215489917767143470215034010389042495259938830834413106803249479333085050008517750752657573956989940072174127486335678382994778774678091901463759588036506631242089548805140319845105746979034731880327216663881895050762027571060886833346961590270053451128765782560164968278485367624259464241446916874250163001752866161700787857164534788564359121448944866535987258647265508138973711612650111016703167677455231911944916500916196053065188548335478113186134958547534133661390585279346747033586330665175570952995757465396584946309719610741786553787822813460876646099442260295153556335777962021542047557116887583347758430569135639250438169576120495889603410406643900825586030689615420384839882013044092675551184450664382297128743914006532210975397099329441766610125604454798388629654446614613334980698246956908705676014337944774956595888235408957135675702190488924776758983239714797756936714851195255876671364824151108596040242278278475520514721394996714617212333106058724231162826501662674652287328656021936088665755362978408970235719081157210136442069156408891447918938596210210054445432362011550382298383601301570522467503654314945014722960172293515421529454568321828495137209644835891991407319288332258133808792760979869182565780049742699506854397325345358125339299227152439013986660233917637180575995918906779445454077873931105569314567023129925527106696096705961359254458663250982190780147758846547558016812142808466466192815149258876535197531822623822429863936858649626429871079095618279529903572444592390408534572901612497305927585634319722917099326989491241399171219554635633324362413722758640256649382208964809749157052264567940090728621468269247320981191792725512397665240922988396799198939782826909449067747988052788705227961529140899004448835808906851291479618565939866997520390610728460673218359477214881041419045460947571377047695746901852596976037425437875090646504823828505840523408071925101963871045616268151365096226430594922611300754279535157677349176315976170826977657840303475604393347764580430902991952905332627546634597774060203362831015120273367181221097114362335025216399288874669348780038345437240443888493120904206663761425809861367576358330566953270881748031193491040430899596969140916394966713151181647854376440993550706226223062767365946498662703858127243309079299926766388565613182220735468317832745801147597539846262742750528183363726761504270357872176043377285088629186253232248632423759734214297807891210986136408994891566696294554652620877231225839170526761258895623974843084364130930169561406594107632298224459558101501632762395334993461877190503344821075221061189365011388986785906017168618826476757454158110328020147596349017921462022184691593577416013308146124168203257551528613102857778775767362397518024624543079530412653412783670785108570787732158217582835416479453095379409276682090723846406474645047532987324701796879824160138080517568885523937494327823466357780737773870907755622939813545295352899839128520630507420410178273232346982574892573233311806610498880949886474573836567076481906559176130847492152208692955119596601540742977686723659324615305404543748732663569888471568630416510930103887648024257243463154890158111694836765554555287528891816049398887684606680525143178860386304007443200979951762274534986642789993814474365532970493304887100508394981597763082977257821909977586830504677314290664185745692605631659506115775164513916890361522740118117545351808905709388225158950545981391691952825658276609935934402237617501562087103999429667363761520247000804691301180626818737528980484172122566514587772233082172714386155060562298849347515807537732148057071220885662068604990877013410609035471633872195442301049330367738625150088901519787526922667306410581260682494009397363289583985755877498682799234137604035523944946992907603286822222531127926938603779322334985400448281119769901917859869182216041641945244320884667121357815017517866275661682640601072739098175188290660475814425717365802910908382955695636058099832577546820934967787244375928489481164563394530595849925033532490786197716431837426504722597444434943310930797716593205794531953671378868493223587160704847901003735606853721948729646394950585600879401471283367835924869736955918156642199674263636469491390860576905043398136611289483059776099830075152130825366066183418560207845292195525397645611173098434123299826704865998212873783739489050374304566682230845726386536749947725233373452146152844059914493956083909107968429124063299487513847183147116550922623054224331987084477191906424193853331636499575781467152442238513014710323309479397802585489142810924295215283113375376525163678546565250747525122592005785674811985143640833782323082827617639296679059173695908641055983952936702351785053837743350521150153583353261448365124025240002843584345021854154870625195373983470449689153327566167564256608008811429570682905421383623215017641076170594026807960200807452182713931558961259165050038397584506667586966151905556769209193895421343926960910985682737451224521057041276039362798395855131484965606027022520539527551221250375293881671541592902611219457353302339959855556549009273840170723707711362774263506059040303319042174433972178932967404366841448912876189979411683232640985169259601130600818547473680171132330879006316800922969033633786391225130383480025246822772634748327727489859361421812895982275736735542815798974461628839325327140397983538432844197971981828588100652790151068773826952085828416441523059870157557872071284948785852098291300131599560149264706828493774138642850289205150818161685668282982132770844698248117800506574973362179288194439987953560051079642988446549219237803398128174581930541625007832262649408515980686590619685823707927276519837722908435084857565693872089118057258550923958063038552790213703183193659716528605653111469962997943512409589329783837193301456248293415732401712795967015122268334519947283783643302896966626212212542421043984837643644397736863030851659749156479577096554939337243702303385411899814571453130857452440632208996985883615450698548668387777724313478359323490260773274326250298914420863840357834492019738271443384361170847068407230150038359659815445548223451106255181192987607814440303114745558932893730267102597802706794224211781504002520377770508759197828895175945608949119348677964580850769664940226292411599604784295808114970999463204711466870364249725138496194514262093648346503622622739324246443490754851284662998510628499387070159593665535634571353035895833974558755224140606236175764367913651347735413597443577660679384466653468007727747134774440704446041600962341084308254246635708662473084125834112294995146472648365147476374888638543918436405181363347868367079882082996665212795720614230620122810604409464743743838617744401978714542778097970380297658463727681021151448744531296985238387370633289332404356186756692248784760420780058820176037554271712096746769712559176622771667912335019466934819638500818874723115866507641823663491292586319253589033839417230782495997276125077646717034649489188047294693855608737802218997972373500299458376957029877862911163393433431428756368590568224226707982904439035163060568074317424009557062609134731589532262408774572514929360650240042898368467433580476993937017961301001436425980190352953767832388616892404824053753277759878279640324347256531988878585464732435294964071587868676853198739995617048779817509594289879111246232183670644809366476604503294975749491558173245463231741740300608123132111825053288613833969436915779603207746434592054308400151116659320661910151133744929424326462478311601732993023948110542173534417501071055443408565463813254995572854639332802731320937667846503606062724147436003827332620193435089503101754811200580967286084227217788276877204480110168628886821685102981687493402766316717262976941464221729950845098376962511391918620520961819601325546108244136598265320010912933341979028734171954629389526458228584228654528907375817230428719707746322153704582317058497385332649742157594159642592579399943195683018392666653699931198995019413074102760439019423124240145013929239819110492338523825778870368182699466686546840353385466020302237812352084059836348836729630613694961487724117744625858567842575495688841966926480894272586109695638572357295477202596828728106657340074348349223712575004096300890739983095189870592936853286490922698869554190536902978496317905236254459858664839401691031687465045560563103023331168125015834541121170987969443229275440732427506914599642365250689175463769814123016154078583258520564506805011962122753768314374107383819750129443541328921398822826698723811207132080862217247477491905444574627667520975175339284145153909223684861225562900068912480167287743053205528146793730608586487386684183826615209024118662037542964479429908627163131559465626553277928293884210030021495527551574703059173211358682134020183543078011501628660554219860027410835326396210574325732432412350905536859161917926403662348155992075618543811579626848741986784167516647620038866049533865565635086824930720868263402523301347737632742396944222598657470884626440057800493048890406736573988085291520392446838531207433678943391648194997288366943398543639296959484939316940925620900924333379308353234102722146209455213928776911293498066305763668558427914501879775676812980576981378712957851707189741361111107377582004689938733692068288882367575198304753599238014301680570963922211114409464864574944044128042078766595926085467088057596726938554133447297163295534461067752588431106796061539214077030965359298071923557363697341372892142700291321866049914684891228933982916273546016215222038348683278656464369236610502791189632629749474564685225595704273624519581986934711991084924292722589693482557734241747836117085399269810759878399265604015699805795381950647138957033691702073836071975501609421321617175692966734116426930549575376096209683472320729199931084385340980163189656258035444312142319118432086061906583416292582604047763436239757548360970918959759241759653982980406671397980379523457416523143668720627571219661242476225610701631789036550631942783094682479445505539750899513082403788865185971025598538049127650926708978129917666859491405708044185073668155488794761844033357390764389036020841609935479928008878443485256255606915673631928998776657734580104975609739724602216495557899653186647673878178391579916943593325036726934270133737567349893073241841875151425257144445842585981290137996859957752448989061561213887865942971986420117031696868918667573687926363648596345317242811167756771290062954287451669522221334596212138543311674567860435639800101711751198740517492470757520996705138239318534917850640617048978023760590904831910366536489617495546474320003715866626255682631607063878394209781185907094649792962234921341296647290740962896703329513607148880722936565766513277353604176109392181842681053157539251449478805885579498966894643902466605159108995539588271914562321849880375826850239219666089239719602106364722310168511916457340589072635382799070810492781771116659719251099451066776455597666192378905757549188771581778432751582276996635566363527284018024368731127271203225382130305865226066887999894165861465451735620859691412907305708552849668210069178726899401867207341490097796013435079975425280442466858393133410870490288809368911029858204751512635738989359117428906434557674229610538141008547614539041678809615370254059321837180740092394411244251015400316185162817201546366660530296848724906542869682493481559536484541977044020727378875632597240292729736266017727329091285426334092491484425930844065157399749101816093021849193672915155278480158220261581996295633499116411560854706773315001284426875633121583744390166589601803156288553926187308801940815319894934476392294956711333119224189874128366227889513307641315341675917832013695507921275072421919402571974944179960538052258877077108255755191291362427802650102787242686690758148420276521095061277726119529456736969632620867513766410072526026090572043580585127832039063184872002929748249255284269957476431090916289071947695167605491170159813287984098983395717365681621850045038596653427225974911564860733219498572209463925848439312513310392737897083811891754553976169365461576000504712130256019504753905765760132876457987021613292227891205729628053831163864350350162394331977202679859789041356659089267653415180326141860508548793076523374000835833556872821082768901938402421352509797990987824714542224233338909833543796199851972724981840255350052575970994814619995815230108495949712231116341789878530744469346152125801573805442803845525499560547782842912870404011024497781680092497521082248694185419371363643701695531046326016351332127348774128770181621976359404328515325483926745175601781433120482813032307067199588028712602529028165085977295662475315351562075617122036178444049203834470252399469297046103434913965852762357166461049691691853926057856252513382660415638103349023591844957435495399235769579896205168756819395692252204270814451734358872339657541185585285461422009540982223372737163095677365994600388822663551625809840651049653262193198346027948166213824814102341830075797885426356674131342845099309360986986080997224705067245947380647494085763399266827886431856248936960312098410626245898055520911296737638001289383827243269841210243233696615357662413872121943555122664554353155229578940700533670365798407050157668493108195038805098634948952221381174994733911930292157158558066559472682908898282139172700596418473587284460551539568126697734438405653002081970488912867039220547870863132978852719078378968139414777548860372853651217851851446625967961352353908115098640374171201774574292761650974398118932587075687686953439338520094748277209783350485192733335702601859509986184177618044388505051745082426869000437730823231835063096020078806053027962356857862291892331497558169856886905322931113101114289669584846338316855135893556329043963200340833191075393629581313112323786732657701425133112008459439755448502755102342196818406508561452487438028355150758420819112316503935827799538972028419844744452492061557159696490042682842713976911892171758675101518948250682927190035478618079997817846598843069244169476941797150858168382825106734942484701601312163962710953162352471199523518404213436605243120422862668858914244689080340814056442127071814801834125567250684479310826965174369157496285155310912178997050280583325809504213432182484297109769080314465171582522191582335529607912186727664465614712449001315329440265679209456729410256188342413745224094056327057324010672435187431952759867978621620548170578763483084285859286318228826895134243823525018114323745900988677102247283591490719214843007397905051333543056179002679148992295986666459609351684667623105525464728316083498028557373368718653444042254330393180821814347670521906634618613472942181701066018120628293833767847777579015457952856452820877584690262332529101573422477698438901152339488852384747781815850881207616006104005959479365182860099519373112920899452517361245166345022151547140638543805432553374484336599390063625781014879522312561538251492608884466851151911523330860991598206534624863194145096931369672840632000815326900561234760349441719197442428316008102249810693148173884565836608662074905209756177144619960979905549283015940275654372512540285924090828704291884504510784239771164979304845648785681434509686867836247795742496531354340761067055195700108281521526984436252524160982632846704458010502319855833422941660495760451419552605903603805334006197920931283331734316731129518586436038318204289975212441974895589259460095113506999047309523849431381164776089421248458282133891089042516258297217995079729916985549241475035369097627426546642977080343143187588919684294666068235224174221720065212113194024951752187198434194004767764724287489057969864218217987915225544514837159011695536118723084655897740311776876265124107266926167917972491978574470457761149112620244172695236266857140781158055242599548398632756520543315341885055517841204729258003630304196148588052721455582579921979718342458020865515001397322926715625674121577806476133949322410450251904559255973664345876897822514360308442109244663429695017623133088660708119307967609606711806238311178744706833252945389057386738396978268191177744511664464241046375117952819810932490413911050392942399787493309459230379325630253624149392585867911344472548801578914007828393193235076400733880949075352918516283959383544673855083027346856631101167158576595549203242400850340639366500800702931454444508721249509385915677711151465700410360418251474828499655967768140794159515288125231298137551792531685488563149309418535289615797146386118303169315681293789887170735866126784534086488622611979729843747748197315540943309042677434567535963626076578011719851447481655459904851673934462709673879387106263049719664029852167071543023953551334304832513950826661989337253142595228790749504164803972341459384230248684668749024745236144179519864303398905246492618336050622846204420051553945337767644035987357602950034824389003842291225307281452070361287576266356442500839360683653599840397990752411958119886901372911656480154313888776572643112199412328981340543386346222737418974838394433747771684194346222463591977110592944994532276865661902427066597741075835096098803517436322679534643697705220754893646882381895235660934429162289958350757031659845991552176889801947794064932374339595949232993368429093810111828487189387546345379934020707287043259647434015763049878337057378025284636611807441671065348093267788786325035955185739164967251870968511328581998690491864240097511514295856877369839296433558083580825665383269300935019061661848431362640289445864446871579188147707937442239061850154921035995955215648098453099426167067181479608788897279546170478515826947128674035868775006555874421182273400802185907433737825192504742084370187433315814721902575136408956832573756860974817247500407089144129372877684669514540911214607750020184994001504362112845491514931416521956484189964110807399074201464673334727746496526738173437835246652787319822278470134236082331951750074809853964809663306514058792732294968511843784056015646660380779051606127189009882135452376057584262516400925837474362165481811727864333852510337783134813889348015157146601685902644395467005021472946054442186657686844741394501568269393334261061131099282936196971606635887180098623331551768747231219077241442978860571507736785219619082402059200597951443451287366924936855365389934026797872804762412689320317888975022603020487675063828874138915173669941734117808281501735448378818215923314915367709549816197041853179968066860242741104694448665769162134847770562723763666858410791961771144122020188938661117917383430516144328387669164260686869972372933009238559565753485413840153972718042701875518902989743682682626733743834363255167477941795927556599481962548365462189589436716423130982454179423689609806296420602104950211623739978566437087965535272797152806417397258858344886917450356996143305071333113717214398619428936515297086505772637226841685952508814140102841655579413679644732276328742810182072513845545111041034165145699310691143382812971421956807876936341685556963883605736268633342523447733647902369128202614185960500354015957531753003046514806247991270068303870658023619406754960120460280815909020690295339405929195249332600362934810185706578126368119555869249565806776614257344541862420831702982567753819184433548755031163684409123014566859394535409146241380610003560303750102448511518156951702107708043267533976379828253164585734985525777829544396078192232644640253273942354030060014256029243529978388068105591293288057721511577522673886949853744110842196449333036025926659233146457230990520157303693029981211033458469963899308189556166330953268887088943054587800831120618701080930370907347743638323158175919727624317002641564312717290743799268393666775193228790803474816270826808265512271619381265702614833734475667697027983647741262253202700849060735034372791761160304239917989245687650901719630118016914724138241171539197078251940502995391515704640824898228738308261877665376009710744279908296448042509146769466252591521097754162443717874571517579792626925223330479969419603039109990559979621730863809478415236409916346759165097641481827022473843219121789289602406445820536629139476934753822069954198684363884471952813147179957111688469112440469859431431640623150987931518202618591553568032760859738194374915424600453680687143811451631577604200307361104603333487483991720656689884152913025801644165471958407820156349298688313574447936861282338353578813450523912210139871421398987260692911567188412933991196344531085623564702620375444505246290277411198905349893020387649499774666766609787071207355879764490514991639699552075353909254763337307459702355568823695628918577377409227790951230245244311473056947512353812591520969142851223629851016506054672866644561321201810688807623148285581475323094505377309271452498857476233011644471515097399600298986053704156639763603664714972670697618107427605892134110072602675312695014905879917081298680047333583463703532325594204919477878947488087192642785437732728817567605172374122803857173636643094478262917170909507010760149579652778209780621583414125856997010916141868988357859639206809256858704383802045369395037052819636929861726177608442587086024359698401349758308052994757318588999261827884068527705739212113187168700911825828321374101515759458070641010050058908627666381676118403047118325963466108045440678468845921040281787096257494820734299568541214141902875936644647801670628619147413931707124253535244936358593960746913823910581470757421853829872895980822648986163246870593809023946790169307784575888377921453850489448809306463908223381835161008582224556212883914045628910195600542639067204828565521095709088999624026015427203503197220049549896502912905612976862755249740868764853665496252512117125682666714252477430662382470877922786761180434588263378553851275954326291358975087312903861297143132025653081474567817267910739196044189949195943585934954715419862296036107994004760991482989690765304325172696313203221012128654064350567312928488955824615789328746804963476468760542675519131406776706241784386474584694558190015674698445899316543493537667537328963429842485942906475071836572941300420224061832370107216065408937766580660798412861382185118972059827659405885392425884123018585082754408629685178029973954557410665595098739952073340429682712517944194339124872584766957061971192898171331425083813929996796582944375801499139831670808717738625177344573697514431816339869145679668556676951415342620643568286070573814248355488192712348894498369478716288289827823323878625307769070917643765086122722969243080764722141291357211744097392747088934159914214359351894840413455903592100326783135057808375521177370324106885618040535010641982105020555787838043248510030518783003456977141088266550622316578428239675029802843601395037404921427716777190090709736555777259202600185343344751612357341139584076567413322726170769837493357379238119346275153125782093390788451869816034284217776601275625853238116115607930708166803171910953710941328676608383007588543239148428615794053445215853709153663241845734929046633056635481956452195160314948317543971945604844624978470132580196185334886863095585288658887078685490056868918863650182245792980827235777532170167840846543511658363929399396564646342385208750526201135699763551877431126201639494582962922543066543267167038548230102868235783360091261400855516093444546194176510222915915147490767469359385440624968440548269172262389993658823273197609138284699912101908611960948583245584184945563466428156714941609663145528832667633243113644743064219019496161084438334493254181099245033669825199421729774340416659430132733831497075591198569072799975686052491418838465856687192158633519266057421209608685850096347900045101431764294207335880825647049523720261970011515722852838761424085053829429450681342667084771988284927981301627667754885543658161410759358612279608824391407479608006148687207783845495260027552640858298557326634576029486758186684652998554273577656969030954360091354899492553177046133921816552535655745959308491354341631220359108567359622109899003955490646801727439607585678188332839801863358028732969510076615574138387673364504867937954951341185009834287312614186735036617802890946832291967954718487981555685155701841088761284951199821623496266961777806462263925087000376569453320017812401828282334549029245954569993571598648390289136974706023796428041687918267901881416958256716534010982573257313500629921033218087832663158733374206327829329980863518406260187143439879060342161627639273737878424645046865687926839329589811971011216305096239193684745731789787062939044138133036444678804325429392809453327465260770703205968043930771892714906376966269151060810378117099076586458164041837805671032267930653130071954953600290584690476988802457814351341963252606079565146512928763054069680131860655759258493591094984850310239872863945302702122357547952960982996865781732211847751022685907385498482526452678147400529999848366858332436786972361963181289172826514766855154160110764978241159258346973646544918256558005787659204613195639159367240934776746807906380030810606159206568518394519346709399943468240601270159634588860099506201426582796913550376716566646794992237171803158311132816582051515229416120424838647638447460375987321855318374423111004927269161635521816445667822032314058598319861530862153156550971504145855796256954668447275865853354164186137325133624024735001312095173116060208567213618929003256459775772269425195169045680169553118448665868800159456866165179914362539454986468071248591547753311523090522877449363819098565239534070566559578431435396613463122454966363618664374515624350608493880676200048149853647757213473936525687493575383269162465287513532950311406127405140278600291228108533963747415597067445310128687610250536856392781203403448349849490986017290895509039942779155561210032369258886509502702635060149616628572272643370137539569845642646463043049742809065800695047986919599961018633949331296269389521793562122781843066481418614422956861107942994555249669847425637356692289100188700802679684637863559854888114779187035967171603810515275629934080621030559811731748878523269302082399633792431074340432612237391685422164299968264950491230267778752759633939492830380066462209091406169435816697995354615050137010208495101625387213112124729075344712390144364744588820883825379669531789419131761724951276091482754680998691682045665056896017923547326061699926070413639042602555397351495671965592074144946898223771908828371808954042545880340519803816575447570664550194941118706003980886088982948045971410776326196587359658977750359381790124951090268640681310762760771623922850192826197337338494596361686704970954547753998022842671631281076359210572917871443687302579840849847374658733060432906459536116161275951147738712415628087457480723724567751003324681565369371517374991337819108746892038406486506429235378288289239805247477522825724985264758664461730169717829725928418713026989165170251753759694880311698483626554733689648589222088826826120881741783587943910960365719325672958372730419991841520850759513283367410266837233785560712304882075231245033403962754310096405879353992819236435220922923014921320528995765100323618093337571174558886271655757222317664570122991122651666516083172470961993513423510156283565509496725845331477624607687085145060164492719892259346210440570285651672814200808465792736610350629837854360318874629287353106171902586937842836275313118902781300343649843551058238088857710198808581597753200409119701069276323858065584014653788023847369147103456369087229859102282182820026001745943453819391959474682245919853198168402305696278985787543471632849938235343088884114728118638193820357691731974816629319774803832630925904557984721371764045134698853511023034519812165552259768888220780511312491739799040014862366973279448070011119105137917611563531282972663972745983408020902072431729712077016903875957292576742599610643236244215689452729791005523901191078610834874104772768335205170077931650831816128590883814267879757323392807196615423107695326886985546951743749928927451404359051311048516294617185036155395786952695295870342609285730302617890484324078786431539805006318173522674171658252917733118651959292762398523699704571186657561628705280805197707625842706513063525374510476269567286555720821150266185435743429551218877895657870003198681685592019540806644840588842468907703427213762567603143392225020641311398846715936134135483575639269183678550535184409619973355912844870407340819412965783275034789593519168143046075278585043919483771480131249639015565992944244383325409661521307505271820136418576651957115042445334557019491024700446962546951240209836195862567458751829941579005417529064626957501503415463186366476021855284725596598031588120228975512022878773231855771255250632342213321692860250700138695976938605900583629022237715652919294851501418569209837012380721836529154597810088872810118971123793178568663372658940823601025881407697425151263348629402445402481435399854693176526824396359999568442786048681546717256512884728662589387606194361374741827170914280925912168729610526692013434051827738715896387877904353984208754039642215163210656115263018831399491681646600319789267107021150759494065187054486056568564758793645176077093012746690484372015225946445220666487764833746487080635957834286701454411141671619412190663007086086553134692034980141156000554877801214576134670563604359367644996258561851190843505589194607553413763594511536805432525919402497673477570999481293771084118834365336894240803226911032230970944238428127370282029038037492154382902567751240023408001966071595948895853714704711170581727461588975987105529420732186163844734946904723501638484007726440213260953419643170872093643959797804663824464735987952790661618920201000190777674921065523993601903576741609466149100864836080601539971468538593228525821203803279359404707368490281037437005321778239112146675489814872416639347871420703837774702888690035109862295356627516479852169935549133350903215964000056413852185365352857850348712800750561175813322214285968235669089386959788141480857427231248858008397985344134060362395510233319660060043604123829786768380366029995074250843472073707081951738309898802227975196119353751239205456454567266098150596907210292534035725220673862189677557083321376429715676193541939384483683658328380314972119177803532207974535465283309485774415499472675406075092757231341341870475688380967602563032877310008489566381109126722241366528591150641594905149479872370050130871074926497532539633062398587942663786732587109410225150754920849145421267456089568077901414890422573040270138240251898324591716246814566701286798292474533389184705184565336562913186600203302556985810807496645679082053759811493839829981904759781541032110760658419554991020858024343582610934191081510445769288653268668055816250756940592805117398073250752636648917900862722106936311806862976588000331554088503304324591980664641257748078267819843355736068178418688175127070793814333402849028483416583396455657638708587371272825766875495012475015852172682083733497060333703320293790166589380548594771448328549035708314961855604519912989419069781270213705155921273694831984519644273341673575510655243444957868942043457898061271397954998133338832718680180515300164951142213701322812451610682345862407691129871510343416937735595718892987121520069150268612680688916992526675579606901637168835726821132929474040198344143996199218507310452070861041901563776605666044307300201025411612285427968924795964635020351251823428054805983223465777243986684597258860234862774422531365263848291061431769978661784484931832725349994222244583054174698284339479354205712581448427926078345931891340741204234261448055561589916073964381664274987172392123910345884624417991544499206944942381159730680477426978671765238928571184279325226848699404818457956496358945018592877782066183028957424040318733219570375355178819076724871268808865062665263764169469029715679911624788320453933446208643209410712712008504622400005791207093793405861793550698612319185357889950608276854857968719348216118984155408923182367883697415822298861500618372467941132124119890149986458869878364588080801303705564615703189484333044387215811254241935729865724685452474251869428265502974776297008085286636338516630682034492987069664819762971825001535860861351795776826276084179581843902573932148219872819059364565882528394845313804262472839329974480597771642834750372114735318757948790429723766130242729042684263334391652722132683093010838322033281213961993534670612754680326392324987610500833979186506068369119277452838870548631405385548966955913812956837409485767893346060575152620576233402918989427776113356402120261494470061534301393912480725385111093743402652724029728576509373623856016943781087602197083100991283799917203257869603195714628406171844742399677000758335377324087319636755934756731071588171746502844160523438743820481898359090752349770220853457393341263880524983214834621633999962730763418919474008278196349816375077503264857470793524836760919420753873230005641606845253311572438702259364210889296778241927836421786236739751189640137973769655231372984256789998202908622129910750842868146936033272838777117225115606649162339189054849843535467531759672130733274591293202344726936287417580613967681697687798357269214168623227080037210538549410190939528828487441416438518496419314626136121235711890862771482344389445221991996159132151740826214120657159259901878744928510035213364705842291732396385804740233978323063757126401212348681546644251450350350151489748730557080790652938058439814231932299803389454521977953331692165344045642619201105005577443371692381092828033264211778560699018321180432005648144834320458663970980835220074490004631757296272084525453335729402871415044318678510771490865735604830140652418799556767396753421619302956421018762497428116487715442917146145003770007042273246362054148952818346200778174223999217736633330217108142839071460268873187355344008503679623632856859486485751002789985835984557802926184772885527242635475084546268876360918962181359728909240207855926876267070321083311104482026608711575592243339434112911234025768275857916540180275075971905750156911135141656330061963499350037313491332966516133200660666084319443760087527049109608990539848392222459651338859845040824546317802346709324977159315556599462430730399434726230787776626193902006545058696434091647423899816752019935357201813938969041240346199029360548385921681949318983478768304069688703369306128014258964699232992356168680163757529007353519247289601323507090270884507982401651523222607143468291403689112791725805009330438948156021321583235534766564111067580432630825558439138007920602661535044160082961476302961442612038169961522630852894699334729324586247372424025909109071173138355526588484625054161265663857437556769267049049904774832018944165082028350941475426709966707408300378273993128611727176256356587759260686332803561661460697890003382237625228978278658523353011160283383355537060268951101835717560948546422883950250050574326559006173365464335189283248922699251005797746717383422343458728597219201709209663554836814370448162786767296478732553626400515439382891931027454309424049722082931645976006603303944518269558834549981529618489595513872817086257350486068431888544515465537032839789542411311553726938084962326356388491150883279282814411513889934159916127629139462327180532160079031783221698853491832541632550845680436562953983113598133569848222533313212069990050588427997920321459958613845981624815794504343221806709256833606745773257497669119608387272882726261012302922398563614820365552893605265183135806419404206557588158607040546623761340175860170761886508757266289277054561403866927533571724015606076335226449984164389358811099580935276209694838718305023972507331392832350997436185163729115794150115252834816309928989798960177774083706628096354067004353258223329264590646370844150098270166954096631413538098481004785165493149258929305467916853189050850295576068234265258553041246395045862865103267740515207193231742914549438354398551302577702843151296607031542947859755958306509028631477517511649841952476593498234631327845392699548982224787425787026360733283384104385137089465396670152144979663988956718135648696361516473790384186942393723427553285584484825128991420733049828538232808954324225393210144646933502120720389252597554313649845297080700986989881619708098313322860756448531516837937304508573675301012268919550455930018993660958800745339434992399142755520037650221473149175829867552730888187505618056666941015239153460461894358184025967493435316112158989733078307622522607381369705369804004773015286397323243131345010028764160577956463666964234722422791901173392759749665319143881747994858264890318004974225720734569301141456057519306311725242056471091520410688259752914292399428025251388829626320506384593325955130808871771974036226144510376003037972478204808776317461499908275156440518230143876950420221973038082450905808260638564536194548510204012054349328208403565493473676743582862676840891349311780173608170253253925776374807410055820798518360209866680821588386393104207863558461720842886098378243942768340143363629303668858382873088029566736943826303649745140730158577713896026837126622856768055786013348396090900456901250321898685386145724729646834271215143020509565916955565789566589722814966550349787674383686011956742929865319643371073039437356127277065773405355436672341751794123561448263867352768021429072861608589801717089415058449027339999183496005536238365428939423560696233362281358069785270103699457341829178494714785326728558562825243122087170597855148983319491531355515226286615460807633208095695778123039508237103785882949896369361415404969706963307950598257082780097438258882003443286796059568748509113138685080171154540579898618481657728393106126697474951664010371755402128055758710147835920859957503621625068699069798602406934691270275378996604541901838881869223109593112258561741579179687453012458966416000858193229856620941730761484288189680287893962987376185320097485003027213450589364079827807004783545658183006789811514246773371327682105416234091008986637508513837945186341661685508177547376538370093604074695779242910752019764992757518047862187030014026888994032202054947883329006423352651845954214322400009905411652670683837772278720971831343272187655734119110086355071579442289411166674898814922609459486598043491294267418761636997005213864634786758813259647899280568136952742052738338520220302187560431564656120298688044953387563145831572336583742559434474541062856911916658943368143165380103444228916087734668304339464765774955781919352953026214666694237665691357694124036152114283653582715304202403379936037237801782003188617413870913041103789563824361904537240748432296825470995187704176732361816069571799853144060365056612208698714963660326472689633731930054156546128531788886043432461043953016971075391055340157485409632869332013769619534955077577619689986802410720630703466076739900349892092721571340163006693533551157394269795748641230137623542355442161989862696708157054185787556338989715544357060353005251096655418487889857047769470382855752684481966581946005691256746022722590804495000376249337001399893152508072095020726227227758620455437422730911270765843409275011662097821980874868243818337961127566539973118579093553742396559480273063104042454463603709232837145088808434398860064754617776583566708702986563906282863031646801233926494880998819312498935091506520352647024314048037774128268824009178719918909299555056621259280275237802728153801319227160796058632061317004044331223096393162740221269792058868164223504261493313492715076515753417095186995770828608218913142318836527762673557472617979248433439099961941748348453721687538709572384263526725035407914334849434630981455329003069027986825483919395775358932401190598827584547494890286868213674425149665754073866146799128017763875762391513181481243464774053067748825323442469790978478155079759168453991103494896724751674152509695865474464843040856636609483937837627735145640621899897947868167501212542855686238804996590836927544108763666260711648880291776676415832975125945326035223769063721287681156471857522557369680523374338326202504091574994989064836438532298239648639219603374773037271149772214265198252971502626225017681547215073608740064852049714485009083675409330998922611292565126512064178541646944972284268121631002092352197120573436101989537881731259984527353993866412086694351983315538603960707947949161448381422334044454028371038293679874305386722014912094787807917440923470513279964378015446128901457740793192485192379719243063424902220392347851425301041675591534223505768044828478717948840072691472415398014384935137775161839958508646478005184911930995080729158335785415777841879706461751591006677535879422041015303013058249135109577009870442171964634090139419831250449268106030604589785372955122002675418847449640956262175569410140717090730557012102045759840736088288295117042736706757906760433194275922721801121961556838799064041261283183597043698656015643045192712369942952943729190487757147296266893068308125572386587682624165698578842340485483615499231062788630686766866677355986173245478841706597301393059355932800004206523084327124306003679930905965331999717495650665742265578100500599346910576698673517478310687593837549889108540092862974131916137303682226961840168094192627739803508226257692890149008090304870378315008315315937647585386767716409056493856688340623162470334758619473805282624907659141159511545066035513256103540974262088563649551740776558696996877718778553393650107921324352689867470561742798827480588844758068799079338175723983797767924806413685471315938226103016650718336266659197025865302528156197556755718396194900068486120028268799696251285297362257169872954388908726993247424992974775391749339012641488095254556787524451155723187497805151315951574163929944716381892166119313436147961310751568180869247715667345437559039267365388350059308490143585559911542233305090314726025885850067622817129002547611750291781620906942798159921135609150548394807102093448321951728491335422573914125644208004222024638127540299675469041367977307730546665288047148117547232453356912981474451284503430121748097463453637619527913797820519363411928856268881572559092124229886009455237518813648451516666490931706183168296641086486890317701689192431118534145362278093290335594060379769365596001240545618932226192901733901435139607684329658356251648418922761470371103514572951812820000815199291238656152639863064808815256320968127437262932283685570869445803961559847963782354680891180435926713007895507920299431644412452582641932148802318280430491919706465790502325898391638985567490383099331497111682673667411744460584267352986144351579571395640907944778195628448174101378414686889412144697542130653120535848748799160176321037163303673042165973535184469026226494472138527885269449083676875935207088150669513278641715534972910482626989856355223142602925469552606798222667824831945014486689541239751059284575941378087822080708812659850506344656229368638877766011179461686728704211643128113737729003669914717544312692303710575454556153180261818846436799455807556754346105551893649734326171921283729319205370432908797559459968732723628610969964692537560427826451176123120161650608897234385929690549050698661199374854653706690472645146643564655448760335676889146644858253455918092672495472964268067860224220262756419065190468721893690071003162385938904487751212850568945029550611854543993857540694316823648253154857306890875728381010445363058590758277818459928490786429419089949859895606426528752126502010884809666437229372463874973617461257515534299873003722023160678707491533329119858914718918555972176546529674599889170649845219831455987377117176801264320982170968497992528474000386920695908462770936821734792679685484059362357458984096635334768616308720828374859215690016188809396694735470705072182698286678998055220212958587804411916853146138384900928770071679290528518679990784183899071173555705746507813376908177658430699897024889833291396944988541227050637887923119263645431486203219912685855754092427043030890262640932846508763626156373875018455188683420065309469638344652029806285076789819497447893336638549620614539459469094115634840740596078933958408350497162522548946259301320874397547988146574564896192126963017235385546791950579672318955432878416139640355224107578718939697588509190081837414203210447466544865796114586285691821202767447958551311363459983121024105383599618321545725520742362122309788877215919852362192721936060746985562948335171356097993272320770386078171747583337302511890230433756424275119933566314042269492411773848860769803355841603946732715342376790366269883066545751099156156458011297093241657169175499832770978624939805229427867653529548187729388046323894551221851084215291204097641123939297628233020384492111182698690065743889796039606195880982894360003763535583440019424266055752205172329977867495728997351001027118219036326313627668168527983830428417736871290959022383222412847486978924047863234916976565042026496964818283763768489378915414521106559294408813920092476896674828776892536546570193175898434451826104646280605029449361826951282877969745437590242745919367318599153378343843109711807151325676351307069589930626850455626305921035937642138397494751816193443944478475505331080254041653474225874005052394137182851015270833180991981360576427600866160493766464697763609954526384199190094981065965157942073841372296269413381922683923234919695868172697481070185782373170863506361476165849775963953541226248530148158859982394934333217069826932802764672316467881013813626795479254079676322019969110775556127286495269262159628239962977828847878797816877634228428440405700594010069289909772388310402714568241291386178131962611997112581948500418582511624729223525099600975444071420243628513130804751492025064259412432277182568689167817309803965784959605080112340065827714769543446164275338927752168512831287249540098763710192087703505436772196917615862211302471710464859815478849977310552760524271633838680527224480816114119896089940854114095524970476878111613851524393975392938175550036375046214550818028008883348099808994383795258213101204493929913962316084655299091889468980716874342317663193296850717923113002243015026814874400340748481897507312544722377908356154475576627760670394834089549430070813843601742659232269955581648209853597141472866167015529761857182752881302908621376554850609815607474747686083826787800347786497069234858162885425812315871459961284490434970498097910350900761517126861766403578385825428161851833651488410059090241258159247548225026270346667855975011180770165611775562684492182006645469572684434844568017781983726261074014518026019972312844751518316902030065218760925910379395158428687737820985268770695312961537141579437113819517827269095048537982482078899833935510463779807041877351606597004203928395306538780673054386479165888367762029877744256742107977195893984387109749560617334669518832161282699092763638130235794431642656774644356903009621630238907613731921311566497958462016458859641053188096137523145120997620433202269981564410157142037229905622740518360083986433875201104841559619031674534206553790083135002808955979193518655340444761022780324580258462500714688941077645166341017279771443241933403530718317610696093177999257993651062233262455703376068871064635736592939677810816482581965684162411490158226859220416016933876897808742212465204717303343747624122445735843868102656536645041432686574213196840815781992526427009251815705316031772052370754566341950859186569315598556149874399130671197080794205456471204636882574854415381200613509327669463287371423739460960909838586696690121383388174772161610685066260853984772990234307426978100708097385691452076678108893848876165531128469524611743326915461154991732229016055022232215831137903369757420300436311973156880651991542817146357038553733127584803309321414471631561830519273103860752689014979432269197845718781190928780871331210516170366501257582747055174391659802800883662669335833437019369724026434441084987181006084936554635096488084299899589981047075907412344936568687715837456693406191492212363982770921141023745619681479432505523368622638816481837147261060268625920259212454642712683048639183679398934610333607317662346511170294365379484156295425158214848588110902227065255905084396819076893507928048281073687713708127578130995406191787313333975887297277918930059574401808824928876010782698306212361804950516105907206146211579788845310733211201673856104403637623591347643065044023248403228056734692377765194666515465855097583117402124599598916301363514142665334515141013156014204227546638646395114518668310191018668667133003787162008333009254204279549886195659176224511124643515086229866102383110654168771963793292168188551778615360057575880506637836500983600607573480499697410126432231379997937554764244146066254676146008795039061104998804392357296426198192225821446761102071857964501051167285787841322118523580495334756265523152700489321271222983127136646302915942144643508709711850856779049722490029508467535854371403855249346141401816302041829339746674443358584255622203414265770424900043111971230501790266618528206676641349226959218711575286369669516185671969513827614969906447485862268728222949713208490694594331578301943347418089222266318176530584591260504329810363233786991529045237616242866784118420811832254385863008514548650596397296782637572642074642046937343415947818536766009416906448151709586729141852166904532287018319014515395129845855953542949086521701831947344202774345201189342524668639694251527505837523694579237287261847758317515412901422602010097755504489110729457360330527073706368462229531308601881525110934220341907247461874723978806613896710841355978704584759312689160868428282333526733976591323411126575822530988934146279678184961674802927928066866170405399677012904633465750532224702480992038717888515682272655552361501963790343226795982143369232805341975065727755698751115806342604134800603158920656443609090626982283743056925754953188385556118500218114537834908591226505948164311239403711937942155030739479332580252105551412169016477383697825435466910661314906988883495231606106979368159012530740785013785062109761685184111143197803821609178303743724947302097966807695909451827046217377968994928169495545732966988007208256675875891924407275422888570018962502640916286796125365620134343192955319621982275808861342527203888623619802723921811932656908556077606671264324916327119887669484253726468240267213921827216995063509201549611487158154918109559931612469711671690758594545449284246364258385106426050536930248147091375015064261818820564720847967064937443583026290621988840876013349174471554150572825252364782953120594580644637247644254135731499333077374049901348222430380502465584547764344291167974617667031761763012183237290863054729916950443431005133196292105269423121193858504182895998822276974321063716273687863385862544757701832737413181689138846419376581382692892607519365294115113184939839751915187795830995352691593669499667672376542189965850385722927993669978556139231479022555819510260423656860676436221320453942397632507587926075158520202262162856720259621115398073205821460227479277957278825354004953138962466861292620185065580599356109824782385884419390779133650890949810828403547620523303499720161732895953749834872567763678272180083712673084644291194023320539166728744638021465694793300088878938812563417452373174146861489506738404563323087899500006268540132957034137185765907925534108805641683891524057294205684125717507712766454486583284068964021402633061969867510652999895127984410779008176749757530562351599667498098315774382119638273200649020348847091568215148711497270863696259790491335025834300891991817443357384186661348732157525464075421569624467744949077439690163281956616337664466587291778146301985225031780502877436995531964568998757866200559826034978028217115368708303235372934580179868554124514276051837467329361719710585847699031410932274211502457386409450441374419645010661043236598030055497738412225117401977313296566773144268221696627785174856343422288627164566484115957317785556070172064617138127199357438754378037190757157247441239978355227599971967996006801629164081105528539894176911701723673192546382299018627984326745305230604976262782891430257652675957449293475639779917346269489806731208739424228000303974400542212097094433833390586661210483981064307916093412157068908943609293981377817143275605974916206139985920041528797309501330766630940374257344398773345820955578742511199125994033808589539202884695900047003579790725460405334425907111088135079217401076003673945602428124722796227397037080130249084421438557859286152571678451900216542858545533949800050597916484218964669295271297011749667125328794597085176553768570110575348977163234061078064237288765431885128326747641967190709722199605381013573262526914248820358536557597369805363449264635198904288084727970391868437090349182345168164012647877774497920258979747722258214534899119260730166907548877897368222133994853771495003428448956211723968047434062970270964625690193570680604192181892237388640242349765288616692432342205045734321339632788456418210852074158036347749111295038216497858441153629987544676701276273531443449638203275457856848413806420568496226684915523616513319802598706836113056598436298197879979111676949528803056748883628663677743525691000770096563396340238421298191063301213169496468298690327931277236615319179690853546679855605009214705301945946044721902978116129961468373409621534673209817175783281778289453878415619131487689729482014304789835457788738395193020390885629079810086496515593811467830385194441476905040096313007306938526791627841859510652797583106488236462126614382453313408720847242173027072373187929644564265744939937716951650890028949440348690799660298255770262271748780233445342506601493388739478673597934233616488146463946588094115742685958682075745921063436987909627800960452286298656637496027500820963769201112298105207605061414275952077847775847730266213865636289661960134178719276701703775273133577200693528660213775632962145155484922907449229850931691556928554087020004394657574248770849712626472741991689936417552163335840557301085055436278696688995650852473640987327040349287307917207485164136327771527509743907854746723804801865304531221853256726928526998368776174960934967938497557923014816515654366223147041065399692808217387224091391739170708749072656866713285161531475016425164744721231270131443346831119939669691091033873372043241278857504662661542538991996768568225732114138566428971395828011071161776097463082860829677494814425827681051612423409133151191801917801658019356619565942801819497308493307647161571528474113291744505771661659648179311573747265616368654205923639360811378440446620755514722564285155161097907217464236088445138148821922711044740256305279478724102412669422317903725292663507329510383934113323231434670745542288606955997148144470502676013981920028341323130014584048459135397021926469179263323550473462320021861858179550041579561869592469928610498901000407622865990918848976380577165260253116376628577507444287098866558261518791292812232144163123950560650777988106707966316147931059696356144146267206627927148084170684250297758822039890895111950342344462268636751355072571703924858747239721010739686925697752890001420415166829726537192809065190685448655692089272317297984350155664972192027533757675039758560007281091192732414597782598848222086943625219361848869861161888532317466252190741942565955511334988143551405288007979399205442450850508608293461642405516841507613527286290144171167869051687855361332748031707003318726338759121955326744414828290602862095653273870141659311081059284412608777838520775468769274774262818996682610518772199370228582754299235559101917632486954817750442312092239218229057279224722013478021633370977938711863729242479799792390878186087248638996499247687642845592731160194255418504849411986814919812895596628772847135331247582754883219749423142982668889149022930344543228991529441179875571061534827802204900254172878028554558537367667786174969184682975002745160157380311946987010747352401683105828787547280986975073692036489223932817128148806844994912135612464198623279950948707388455705853683862802639455051363489074271645487801068343800899945142192887404905479996853807308409467076655435568250735681907851389647396987295899047830753128371861872706577844891469428276174441831231404130993372803968899683183191711016596317538128540775329209705505933850803570555435697718483040728760419278383313407925355160135226877490044885051368814781544979323108672591700723086610005552308581448217536103486714520422007292762622702324716834038346370342430447552803292576117063096844473010622467525387155662662593272265047865427656773841668160785880390558925596718007610137084017617194986618752407564305807167819878216614233268136806611770975002156519382984258131648481260145696888571163779061691872314992322501144191271508663887317704735016993666741609666938017425004567086363517281634104510288422015875804626142255984030499350075842561105853083748798822385838361446460709442678945026663762145602404846198728781531422643429590476851588870355721235715965781496299274744740315717457771964246050853606616911188056763049266137689629244073928456056774679631562076529347571503565749564497407037143074891490555385031505253152850884572211535070422722179103974116110531086255070007029719537251550807647839970310269018668414164692519273557451629517823093276663790405316620900773439661997996130359287364858132676217406210458663115846566172269690141512101029371933728392387731131708792813839232660956053676404789956696977585290815800719744127277053994389999064366986109493907327446385455027207463380663772725929753906552253021142935555759770450240997182059655357106333028009540331231794082492211921377341329435474097997480889689039175132448978596761766878839007923617318027474885358104474498258277123564456626207162345364938319448508881351080279029622470388451405114683750339334140077738049004325789883193227048431896839280584759893256232145561574530987590685443170563735430932008722910850944439794766091979169032252963145921171301918478502766247779140861643859058325834906860677762776198195332796198598921130250645141371266614530260679629556119624878008266242699849602818540115087710810418338209564404905618676231484599799593526773068323076907366501875213175299466431778181461675014389232754542118657854400668912826623797559560826790527079315714468626939715055829336248378613588295103531060879614644210283154541383246871305892533378668011402053618026826578058786170219222133220531512720950180543956048667753415397782526311453635570604899608477199230650824626776984704185353312207427801163828173974644903711551763072548069362066193516742449743061015437127481365648045861525940760047035728526387060454380980237825277104107470055717153429589690096847221454016456063270049974442239049840195162474111876340499907637682481338794737309661937275266282606412424870860073766928756713464505228213645619352857496961076107012604830801604885241925870661233365506253994828048433956790699533168060938725945880485547791958628528613920972407120767395578880497906704562448950392534609016333641931398652684414561152521536208812331027424774522090680001454022278385496507535327058612996482974277813490796475916471635842023229764312650265339364300301907857483798326251896570831037143637236965114982817537323085919808575703144232192217222784745262590266718403046647535958148740005033863723756850098254072644281534535650547250425884583469132386352707283615420241765712752111957181216213484511922064177777275159626083106980474033616807818972728139939181920480388045561557746073803825078601674008130955984059567330452554946565715974774583801446409571230004167833020239693800024787051676359030608279965930345519240389933921927815403664846516923436469092741607547984985401094975535219612320260410087402289063769254916726977863003412976572319200893824589205574652209474423184715213345992684728941536199078379930264515234252585939884991050364862299018436132326744460450786248701041557133506430779395914906562928164671637350068928677657741843091278021922850358596991046171166849915872343366880010750421075548512530936090745659078267444067402748640262831398869711091327028079135072772216404438719132254788544351615767897402986973408184978070434819915451850522381290391781594215870412917950272309545405986860856397525493744037465981633114850976001091170770606636702271958849465804455334817851629821905747076279861733043242458418097760057919429433335090212102518949041277530994777009405280365706558281387017383374622726008678192187725106210591693292050187512119550184832583489914478859511526843484347146616057139428708275230780079946229227504314943502449571699765095708098172018643487603963935379987813051262844125607306937957841796989799466714153843786833929212853219457544466316417777810331397994461367656310359027660122069511660797398860976305883270218997551835642735871062332070207445991633552071126181597922754941625576452176571679741963770336893806692426694720476407897636779484442200874937397218484433084546370732141151629183745513721493699929992601822689778513375038883480301292968568116596479828316325975656134424364719763277339495626274153007621542878929786704892857168935083779966712973862832840076718484787183704578101652645402235074486339673225735400340161055565243878946510580313575050209151738537314693149460214116324898797564758899452832641163764390348456950052636571253557555093166126788095716829590837080541847065502441960370449716658203644882273430369830006899831105861405307686077404958426133197358446453502388543004470660534710200253586828422372473371497953294787189588262148185982136023457779240533045926988910573695494500305788340368903910785537939934035833692329530117464228487521846321183663200072019756004999099681270627419411110513056593686546822905580724145862107455481366552419143953950789672901643676721122457963064693399545020393471454985708724920583034338951858554401473285163996994626769664016204483979436933382710455911249377552997643226187408424809955794599054160390408941483317275815989093247800099313567415800672502350132717070332885496354127335342846391907177058274762628394025066838488324122819599693004589491761794399581136127287155111735231596894896973036183556018806453420301077215014396117949338317728301465306968707069645562755092096236286063884009634701747847857885159498262686109442601369338580232910834088930015648028704618837837880662542403340609451867112175579700546049087997745097968400361117548957600682175623450249764760764748977164880141772666928010311098659353520552473503917333610421595687000714196497396266805543666477266351127842806956964029726234155599652289808968097423450562386613531836405781504188071800038762102144022939072384985734852904023684110391745395428900476233819383231774147094875450283077944718159775943915683562989259737326224596685859471273529558217804182769822425583294929834090216217019562908363501786965672368386230817569913795088629568868275053162159252625612799740832746986607904416401171591120533768622890054421955734717879391084184651253133110663478518398341416242868585707065815448996072502975153230317123939134082876083913081837070864506166101098698852025718221979370450223673837934591992525477358346489186628643541828379060467590231936897238356123914168060543829018019411754035432729461595388915716049326871622802961509682828508261306817576973523043290389493508391643921905371112643413224748678347456953116230407269109824264149410063847669324268332360989368946676797422134171952340847130920983226350286943997183177779841233374291775044727907548871147049157695642503170229342685720138718068885445787661358294794184565328256796238291884206665745716624263596749328648113792665611866177164974577888917153393855888383071685840013305708415322204732017657894178041282161922428124364322604774776755151507257320694711377339787954502934220651743627733877902232187497154052509919764543903625051563715508928243632419618170790850110345447145973283137025138623939956517277611126295906200082037303528634093088241804643660347887011071019657786746390324561367347660387265217832501205287935187548327215296629633769919817658095015552877745686018154503826529889169524970525164798110645396127100062770339949978020553097897777754656997886399314175099274375153934390029617736113028873976144280882081093062821001750786440320953789342306810470587879564241478968633155919367769862613036745926610602853831056641123642539169047985992470524840441775651929953075228094694171424417136760193213766180603762087943649376514938636768656477866978529519256559015949527732573943334696083319939386581562489786948585554805037698600614203881886210154270731222032218230240416981904865675031711659992251329829506419985639544911610096532849749124562279725309311230091687848272662812023985501488254930262983582036134118270709898936885097394664779186174327652669735479473007368876332716068727669222981508038400601697166849005518463687127262929662529880070896174609366345708758336951433960356784632958024739237936569315461458219020460959099699242175545639241613447845119813483536368150243555802639290819956048560355304035327378755218088043300638748604289105035467662599453002147853474273028947027416126893970332617895761319104245681704390019666651789242957099625186861909804298786473360557232182483583368721214148004162188498804874352779796213892635578280508652877567370396054422607110659476085598122663475560828681644904643039326933173188224917712392928846789482294770097659927242931622849652767432921121466314718889369549624494428203168522509897978967961798677842042314183647101224396827086114543178990292545852084386516211096507635585391478658510675436522362517186868842832765811344325595759855834905288937841253622996540002223613007807603420170833343153312260698882362931795621754535360440544229634312267053061108785451766523445445028424023618111442799462383586384832732431480584197052378828057440973124512314400300542766829511310499911251683724358839611751956567239056201158156846741174911748506663635724548028557846939419470140006451649187963079587585607823399589028938757337770458362919428893061344935132257129163580004730118808201213657408341504758985190889634835516313388527715135230216990581356534358152019050476972104958035135048766341520410039315148993612315100108848531284309370664873205077442265932925887003269462764073225325472867068779600851536652506313889771198624012573719422024963497746688811820445515979096392412835285233981860361114248582235051969608115210255407711382207071939069307882966276700109560866823862273737283770283792212154998235812832749310589869103058946007674666932080227764899647361297821711373272634988109714562049895429178500827000975501183512565759346693565440398652026212687077784343601023845676864666734913997260054056028087583515788399248062115102347792042350247138668595734651650810283289006493152350272077334286744800378041755095446732263094193800787767817162900356878707824190515593751201117447433212520806698329250823847381495804235001730500386440769930199894816026808515175863418959721072588777708894758002071732545183458422203002313634618380057730145493307581970248469740926509475723024775282161344904546463137046689247050015963766821207760256868844297117863116211590941540825067937802444274613282795994536492637922450503788434877417490022409545644932763631845796305369759482135028131613678958014040178103362225205495811563115375054331573437855485396425281892476065403859900479341825541687105738279718574673086773538545038455519088541158904362570284221007209723865697844489203525171842233205667660799160021859439875248169693586965259951630563043884296932356473948258790369940219741663954505888610280456990836761350935431068612446360708884431403030579765200141522006900182855098598853383978474736518882771411908146133397579774936617779773813935503261609575719877505732707791025601535792631577583706657954291022157662483459780673432812650982138361008465824324811152064283029622654697834587652843048327218044247786677174286048495363213133773248425167656228491930437633447652626937267346717948052704127067128376510993713593617784600685370990602492327814375049575812362330978089856440713030426282386554622901257020398852023384821701700608980962027303570389476072910688244214635258677940779158411554914890945507620718855964286359404190012539057031096551907948741013390622446371617193763479431130230660981417034213531231114015392594539590242433477618772615017186810264704655087485987300308839312388148883185249003193319322932494321032227944005838390673946664630133137324906686493222999129107123892111338771610141157116545653424126772699062391369452597925628467845243487029562573558646977311649064875068496810689947945846205050635990073110770428349326142215380572813706520483967695683243793983176483492827512765717582873185245731011859933363673477063669111254064270064159969482691802477503073312854475103548075063735883732318370114217226338749888829592451750080704287565745838364564032753953333124479555073261773158050141072113394745542830013906872930270962948966864899905561334821447533491254343851638377166088608798016771151297186446654914086439739670981606774284624639035176710730411556430010584351343647782973590674080969583417905368364631485385623450050360303581054064956746053596827922212052794980897893132715255175595702728777463735085373401564109945253330939846293186032229886231214701404423332294222254354925722033366382662458302043300627783041119538930386248087110293079251182783380530937974551808029549600804018950073237224968157533973298382650046147008214828466189471012522321102371852816441104207348941518204683120476902527993804620797507676051781166267367941391136162595665746823123638613460465514923273100042605915625774558232178701277839974240330985765648333512471781635943862796046841761523550926812222489292294545134741814173434371177917880075609395418517504822699512535451477333088947675463368249938349874823044490545857943006318273323025830010958860696903309617336028361428971658261859992253559078727394536139390970054336082908667490371442005496764500798138328379054561648048136046752253497970703311342754395596735086168975577420869058163527079631842070150432610762967481315908043931520163761440556151813863095656034257748441339838621284518452846779058246803325418583847900746806055412307649380293897610531758081400335504432008227207770894686727959821242595529342092513130476416221808775461654196010136130179264849072927365963774011789644737606240602545713220254136785463963547980818409532311509720151938553067677607177194478356417950093630855093992771362498898088972570748844861300865539444843799822571464896007530872513186783664423639834361081431474286227448514667347521609665523058623773875099230447330845321266513355992743275778181180231292270999618805772204137835688153441382698209782407244185560187996277890007584767748440339046520307032611269273917284027523379384725764007793802078243888339506168016871374466563698076323742254900184597431289389478915823519791562010143279934623946577501844066824977337860630711376452120263263135092524777987078342367920162848184446860441406894884615691526000467914403089499731358585794544528370062964562617552436435859777702764751896210177464257432993425433678007883533278177625594010450750716594317333965303018497972980356650480536945884749161229818571385695298627322941438943616949053442012586833847559077398675786624278051716723809134151566980577060442566834685813272433903350422475856716139637086897263819692524954096764156703193182468120229354638688380733328829968322332188659351571048608439578520236578247886791061717272659145124515449301432558699754410591829601825253334812914992233483092431160847614205371761633163301107805878252654250737474673614321313374431449058390688570411813046074804612606221077044987004501180465760218359942415017069497074422765443993221855971447010094119551077487496270457515999141406534948994495935992700410298788505650667937307371496992545297929289147166764051267802136306087782087340662880165581447991310799821503073662023913778380047709046421149923689101030352689019737022205192417572238213948882694335059711147554059461431690656350477878360010756338260547014624928697006816424438630168584506536466392415802311498462772110575264726881296482635217522312898041252293330999767501270718298162642090258095145973407564397280262715000316260213378413684179986039726918064182687605874861230169467633336076873136173336571415668681765313758728066162570438668111917832161567640274366051477926355432575383967663232488137368413358899578398760662900199606418609526432307448723158868547792977860792014607133294650200715248466258204028551686003084809843886174845196793785351611441000544212569340917352203147584292699807814798233193667898362933323204391634912734003952412034545757926885934893649488807842664265845839029951953327200226390981319613195238879010377264637955441600359887321855699909641809705280235405050363950866792966845184754086163008587767508214349739250324712171874677532428464295462730513114338935323048153389023899797462929083827439865987924171591678895247755401391513265540230825130906444455400213449084333544799672455951131961679413151337756526055912507864096313823486447409760443801824819469540767765028736261909019090496889843264642005329754689516616011548005469101667929178717834119052778513797068162876346449565079335787690215367255110722090167447078491555791382471969670632397159068358164843641535842630825298788829924429708850619122201317534428581458468285478890189601786634572372060553917614256199141515207658262916638115118591444378170092823922091872779700512238265434196791401542431750387883497040968169230875102716332131836690498330636852774040938370772096775890580419315423620134168151487329190493833121734223821588493710866244332245033188331676780493600547892695947758322789899796535294464675421742204590874211266386186557760031601807127173908597026080577895094860616609678266324862198074112131936292602926608670583882820335606416481604394303518529825107240987245006336329094026066865321395637919143456568321378843533877875998346592520551683677367923451919933954717180285200795920127526374168769003079250682926401209303212869172570661282852652611758381672743585153652736400566300055513814557378786344551279825850580455206458589904089930182052404152351669230609313358707443979082622755829087303630385681901346700000155007939887333556955077435622219858490636107006185094134587688903642884449876515188086522104350334946982909394328660586095244166683061411693391095443913064901860901360893159840911082637488086913950828423609286180362591664647156603380139725080509478090410592060870049356951257023295774393928308493709840615823592130168771648664922966596951735189920853853434516489586346161693287082019011702833859068521478873579938325634949386394642544343629613561871177244631103614353672339216533025636636573088026058509131053837327494505542915786630348392209787402944569851385000497229440778081516583833185454683881190409631040231803896795899322950917417931589473191523479371314534608247488286997906491454447305599867904968643949623212607971155995938480591465768212453991722041834169838627229347258468738201353333563405700974104583340717370155198352815349704793266337619802476332664202166241077176273969202378740530598355057855713218473814743434488438520125826804040556817757399594589250560921740094351093152051067285379820396422545206510877722463989899194358576365872063601026477719480882211688620363246243935620091593779423644302185475887865564231978438919512628854247040807646562704029524648484567897244632455906516208425707522144000110147539989857372118412751423908083463063455805147797848435447498774483141931404977923815747956868787846492623632015129883383765270978925106781964676774768668234094328052992352985478516091448192499237111383539918752105159741218095710709044849146434299029654464395940701341594005423459154095434287245045945802613186310256891057870438516452432464637916045090260528747416570681038200109929767888331206533043094548893521363984239070595628088096236959401745074637106704420093230931628508183696973049630503306368421993827514648419672055622330884479077016936044010848948308259400138062975584910143405394674813094669314660321645912025148341425501623195893237410137229166836975183135101234337770663998497826562030505546898214897574180692312839542186890442609444666461450797904085105857728205458994103778859907206224601738587425850326892582676849115734252939065918114564243705609436671290900030963591199372408285020571652587979294645286397453311922485638656019171163101861603785817739850737279344475238055576169140880695947882824104388405979687285709888066153026642350184976866407967550885732493858213918400612973050510479362950496559202463265878045840147101119721973758363298239522307383884212540632544500957301399247372439688638136534113296239153000166441389925973305824333296131108611883596542207982523923053603305247968922133085385984465358595875372774654065871330872141638160827982817660593827399272779734197366269639973828040542106013228840610156233733374277096569929307569082829259673678532581515457285735614315262057978954343908272557995195494777838666656338921747706703678465407499781107566240943695475754193645766182767229418864474697462377837299607066121026739910734585167138947142083045796255504830109975199445352701184796253580513707958819107028024360807710590916638014368723039308410874843734908756344239756120285847246884433226543162356550726351424524722742478482446776832978601551680992378340248192809696366365468666442425598801477962184202833116397121277706188124561422350901243682378827700241000681517740656552725119499682243933615571061243176927875978202534162317762764800982213998202541293601779741160762178270902192660171174492494358438938372449398645709090504667119827792269512171287011867934335198952157113557037218182629163280703417598401563915730026398170981977719309493804996626972667973788701133797369032470977793358688601677835819270976952871691458252085259652374988058672537280278957486832739044757401066172203652505192864574070289629922739287178007288749388622758989332735238735149199670286794727750964330226531383943614944120158758436580151238518002637385464883996073935799749417805705925246389563783327664905483111332532890521022695678763191945071604132717276258276511004586524833889128988879983186665440729576121058368316433347300237398917279120122529642117011616265626498493229722538446477374596886967718709099139008344132868929564463952084564427831596578762423508003492304557716921957986479194237108943640295689460326174781863878854358216937406256817344329571217945172672723752653773029341461055939294054977689703538980675969801040745425671795669384103223451399405407552572284718005717762891006411630832100639752573443916927169511650919657945022461240327620950725582967195938143317201892096471659855003022467829206941368654731031144270729828070757988018860498670328941394312496369889268258540227014818429861736237511887216574657102430180494092243121936475294764630470414393799364099614025170337822159248414107132900558429001075541822044216394166325578052823276547237456318740766342818862828005003152630646992462208565513215559948312821561710502910048728234166515135161062729447911711583484895069448078449057884027144829911529283592676752465625062563971717273344585410592983508721304385055915106629629814047237943347836565501469837779847106403392580895632394864423390036939766370794824447929249315436160963901508184099272856692937258883241737347180402249242607073557038403051719697487875057829041459546333717968873958692370451900402672584424844128773387784494693967262925141106041975619042149126167145547382686953076572764136542592911442704823485648223885111272640531356800774696462605311612920161334276045311791047454098441623147021227228936145554725206233994444838014471975867664730151248576638637649899811155873306704965359589710006025060989651183047601917104482573918223899273901412397999989195802378812248237891430851157209121658758705706579246137364367806877055886992070171746535479671188697277144302610642391351773955552377281349539544616448035066972620755989811960787433604061502928150716610375579501071282674978677909734509592035068440475508237561023889806416393701340270301918475442151019586726485935373360985044209781965085613138134376458628303036709115779162995825668761773984324105283242568906557140407252830425256989137628444391713055664680813850907435375815154403604866383098041851773004166576341658687850457021722658621906598100246203724307183578184300334533649213717142167679516829617556226263633162509041835596337648150982127241294936709649045299063643934611275811933090974083565610606341379425668579497047229470382227610344358638856459440174191093846570606571627659633668249699118660717074561431288279601259386818955471501124015716035645694227852465545100535822803454576766194735927957043489522765076510833861910641270349864612682209323009007829520130114747343476587707388791249622529613587672215587000073720916744101921671569645220257411105396395155771266558397010343317127108265388630282936397945102434005907696879411084409105833201273274623996048730202967267088867646038242216688207833845841692759824564092334247520919169560064153553292266360582362681847854642846934553205593750716895564902621018040895259828705612752570915904363235891711176387656363737069534058679618719094426991978440975065924966369065423292861159564868943678519357884534418602441287504003839401207574630085717248225755613451081837715872093955626098743901377764017427923856085266857683083927833510282716615748581824854220102326465965541107699167803871264511261139796549951795446802564090968280032856460705203916155231734843502390699920452402206194734999250359256197221751093587224466080989171354754562374993022424376654377939313828878981565182684644021409526674258279990347545413497098801069154355667850137642229982529567585436867500177509657633456188380233126238820357637478443955879457568743021979856755050633374506256324943846697788771781910170532513375973919535484999556804609206990280627677456107007550816861792959845254454390830581316012369235907735901317677429919016478186314893686959201980711575632134156270893183469660558593700781480735014936238643911035494382318363210451816682815014552733267884402458095396091315822451397973568881224091166279351428941613428620505058380397834750967646431910790499656254048053661607128964070980866398189065411272778029545860681663702562740405453835571482648714936846052423933354717905949247871660785189507295682877774604440938721421747509572384068591417796022008730302655987982488361655826907596425075892918336310255151711207642421033292933144621540654701827494075074458543529237785684939006495332721112154475986818801219889524631863111017950856557020536594373916562144951511772200452364195246624786680890383614823729380100251456805801071387032307415597903592779165930871943246678140282860900830079660303961414551040427479129385596478049122748141259513639773131657110721055589674253269832614195119581686170281973559974752274009882050066475218301302949468519185626246628424589324006432846333546850117680817778278953122856121569323758790378884067986493169942305340327064774297610756464861967384578756479522646906734315703984940620681764849997728447566688621674747787246964790618108934983698421545534902023671111294205568535921740711536525746461782009680609022396575375759896131826506976637191650987993844474411228366996366978179743524705619289552448967730191665879018985599938738790635724494500164269687610235183696521079126342442180608298830674824883086957971670231650747710767144359858418417084674570341198573747758851864773444246852897241970356353273544752531379498149679265550002091982631135413520984524478721721365257914926999489960396518462530991379045222314203646469299154666850401429316113209680660580817915468336792170348648363016616609584598854920248924149451205569479291426854498051811708558620862423820446756175022857778620958714028523364862873888410521035300480947150792613655154255669953969636025889723724397888134087201423159449150086006596140033292563769004449357785722035978386994348720824498678809064399977118983530507848423764405496374678750601769574115399026306294337361985193893126341343192693981328122225858435046667454433258057832060248037487413237613660311181670958141035767226137088456167292370530555829575476723201045838083913999768209633773345775248823025986289504515779549130330632471861188325219325960250042149984924370933076423068628172272619324081074158490469505856636598157634754072100949352268251126381008277955433810820002366317730003441662141925106137314118569712142587750168043770965651040830712605870436943983978219338631562416004673427741398283555757913148473738435203847932969293521694084889333982108117606252317639125374579482245939268993892389300100121333785217748727334559912953600578000204185188949080216929999896079675427906852988233483294616858679545409821146465103321962650274075722556417431158482574710314004522189699543969847565500087269631028634593213875422282629480208294519861907253608142214249262227481552754320436641562168307201000725614626027201421698748472101037488370374302620119404456935267535534880423702942817365247016739892181069741821907873292529726492082664911056561977354075108369351743182216170634441174329132881536817990945721839056377830604834172816343008119364901386199189756769433253859108285190842433526108381514552330376290017707843252150080562840751403740158856543481128782236590705621705664077739600648105758899111550822397740631755452292623097855955177891613759208101231910918143518488511336833454772808848276256596357864660938975723769097669821774053669345481012417823044135150202393106772117011285906626216582666318530817797474312076744865060427098516775263695908906372192529084710351831779444354904495638240847830897940308243044839746516278357392122745575656697761556459090586005502679540329983070819409829920862438524695810510154296174004711146755153140806197179766505749536726705104361686462567086027210627638267058378351691471031910104022015421799250089746736204518520008850743693166862996131758346524930742061287341579915319146008161644272019195703902706445037420299371998593309226313206689354756387315322314024291899476100857514548465244578705564549138448590720188828792159095814375631848366257547312160015020846495600540783112142541577710623214000053775848086841543407293589202079547045588158192076741509926461545963874330771123035532813285466067588011695517472434324730239146513770257753574752969665593725613379149748017102676805846571238197781078898110823383370923697676704299496889597705711594912323486389564348445656303689124381746667334059299425411124003719665376728817891611456516499876646029596566980334224253675620109630876268160724108537689339758094330510045020583238598194366433946379815623115378728751427065102593569480614213558079041194355920457275839797495272625287781081776821744270509734649521809874308712865355505096130304844030824059212694572951049133672044411086487642657281709718282747174826400999487278286002108829771822171086354332317854746705882765966871108413646424310178249355735198573740084277319670493132944109661620670248194291676366873909602072801642248800271333012617811672328244934859064760687781862630684876571902731058614176067334945633117684760255008022345678788868445485461785604675946028932360443966948042346981585348616071224619034511261394032663693115847503574111404895045061301031792606196717973994813552453928685118696250265608186986575116406625938061422539224092594519760535041885373582691398118439020158507303290254396881894430463356761509188124846107327998022946219851079015328785010227186727356685012473688628784284416736087314863977236906664755714991658462478735366658424523778674471834920303917364755468052579525292475268601907254728078851487289996054436358863132251780739555676476842887496068415316491921020688992030375312254721842797265637881864480302041886059312060000959595061859459608839029197293229367703170082201224680124341623784926583212234870057140122602559780775060277580831865723949229562692620174254089931521980772920249875924136754903144159161601533850882432477664159843193554721638398816403409567213932783028353740718553350710980215789614458483168100435697538099217085508013777892653264350314374191050196119419776185880854636534478641648683718842393667116679151080685720834557435999187392910847423793751575230981355084344178102814628425363153019632931322482574341239664324482039800564616690524142464323669630733870744862816909277374444122332818713337473582501614134545779033329093754844878993882581216599365994684761593708125917516390067250614013603160522678544168365853411782708057113835331458652573865934689450694564584091145530493546446555638905215067468968685897579834843736726276804951598360890844422098070468927882615872786462537417097176078660326646291598063981884025915788079777306623564232310987633652090030580498026038462715632211290068552476613181937955129236192125097495481215503171069084877913471942292867828970801070834462315338624779220738247931968264266715663681956488781446862112015791931470843687021447637117784753202579074807119104560431572223267524665312220969839284428534359990743496339824613553089154500524923062938352907658015067872709325658510338995213411984977935685871683501241789171541348384912153253660297677678991121693524274898927566584361827175572525854987668692033632563657981039085874447867362007131351952725230698028476907233587247911581652693665663044868219966048042550446718994385785098570461507055861839903483347604149810187665552228937470837223208646459975681148938397562785158626098321590906120955107457273984090927196879038652251939565169104915293961961918571251324909292207151044001337113798172931068463204792307574830228620542130512831937126199716890669263085981812161572556597442515286747186319153366125942098479485231125329665899327770774959858568685269939372241401140703647758598646698347783119826728006737696325252300809505450804723133230422269256408101919874413890810790170064459806774301567014449701052860015184358576501898571153272904168181366485298074142871129372913367654659303633979137579823386804498955844480611246613774349651022453541364870112390475866625605092253179112110584720556370705600681529513256632351536395998422970225226725048185982641375095086468376607180061831214374455532503280206818157020068271901617369368595671066684304940656922688159581913820970162761619831344280498969705014521537231887922908701961090013610138810632918058271889610045980083194063241482156793330587996271565555241957396272179647022250533724559663133819014907430618671404282522618548161647712209350334369308215569231339765737210950514174036039279753100395412103552893560360430822555942232905507030141486539971467002443782649035507638107076404162696588082730908230419181399139067413060412989945169128210593175362478947818915537827337465765053800980072866518241333251110343640509022779830974845935958784670776927726897335238253068631201518068089146206832524171696961063404134502018060002052170139850256797046469801576739679803767003117370639802215996651246121701779447991284698103283655035812700324102064355092523742699026549796231055075066392757460893963025539260530599091477111817436170294133009147899630541997159212988161648012265870103893751770051913354399415878160634060850023180535486693918529655762318988622678967328527759963664095975992588168414415837668702066776685709609655074750919666489944434958294193608089403340915205827417749513185380914542391843828005959896784084654061709081529306231190576097072245574052185196590034655705479393170208052969708495645690189721887901375816003418239380626822477141425430501240991951524525571414749242891676012855588979304975483898749165680275600780267722502128592863196881261656069498097036944934295660514975885193125964396485711695901577985752970007326159109426124636522352939403247331650180830214158592981874029002912828859260521450814037986946557096845717952026047213608695994326668061620641216623808114649363792322316609244552421523828252510281869041410016654229138813085407519907801454937400819997871919372060201316885049542967515740792337155317668429956064143838850590032223245563456399253894560163451764979216314522831726294652118950343678757970528481057828049823284538408508766491694160253908446877716831236624983311349854219913278559840248806869312937557201768432758972251990658419155101023464012340100372029441434099221754664785054234815427999210533649770590524742350626599260573165598473147740757954673687001674197988441000660615960482003266902797491217275992787333747457035340052061427665934037049332922450153785640692751565418911484517814984040651190198447712482688549346572149101136065058353012863524105700662170722800115941617146587076427702032130174323848598334024310778199981138202426009338449807342506640961386052986731087517774226562569387607810667865200545594413852585117387780809177397522266472299092549041987978310535593472691265853891944260324129024391118227669786432774829704154396789768173394466073602715676184497311787310273636695049749827505464648312543610002459364148633246125172289567393627747763505658339891390879987363343432847894604208085110877609892351858956425795655426383298341853867843804311533784088181342721396848051710376982672437747285925615832271274286564850964619358278519651672036205414604234770714526757228006093858573907354614741224724167520332652738697025144899294532686854711535719569154923854419968983955550155051730771655736452855241522004577138825301143860953353214583699043607984389490869476176503043432859420771127736990962269871521131276455895527466454172426632700585257457408564591664218681848526846767663926564772943222275201440866268381806952008087665629029484073374094441890393479965660151768803476464560806843975180733408029576443318288053854389126856176355980190680465276585368336616921099544120061720242055065222503873234265991002730233794247918461620764769366659904325221149249135914144733233736041582399699684695221637931613888259971909939010663717694395250025323305317323602390640094626634358938270699054238059599960287418317768759368362893703654359114155700453826896965932394409252464029697954682829782440350312731335375236705490067789486477833225404035584017589277727536022686571153164857220291641769636337580297909592402755964940222948250505432232449477945467742604009875955244050543740550317408774247560735543282276905088514405126537477003562725099029581408096430471891885192558818850429416514822646986614929763699013738353865790212990555847389035858472172964951906673016379513463083109221733558899482210134014913907677192617495753663787383172411056859658979100012775782137398402709343071865862099591984378391118597301442660707497014004043789477303049082201456014113040966993124632352803831818909929385308046777906048432853385427898724032797486218501752788229238041014256213434335573143180090054945034530842948056252078734939688431141711014770511892001979472852994875890368207697206833112402975663775338934055339164839224662292519287623304761385621216752583552310342215457119541664724383410846336089810057785287256962882404023392933407254293379708489368901305897848871872996124298130158545252026290247739864183880182644613417954824524540175753660146134446513279336654615667995724912493615880067942762592107267685252873014605001037590432449995879914313143266248305646470020312100941432430110407293967933860111130446708610085919937555150010344517481005658406883072127596159568799324384774706056314043658862852579104394446394479057867491468622789326665972919715427703137144607534165959105587909008003701154776751229837473885136682432782173693583141529833662516205725102773598556051184088175408519318903225243066400424917383170915228243144250164828390248254701675739235271765320974485705934170146291825582441022880565648326245951982797290366070835234544108552702202536299412180584343706977169066416031881989347721367670146395002914697531639933742360927403542448580742152041200543745523626941737612192083724409799205909932629594070652685091916963180262406784359292296304646709820347040632735918857901968897014470678824191141969624675262276119290611640191587342922394737479187506407611767060613794049163441269205445344205715834893621424788791448705590835338915635582821668858053413017311212565797826914376446295117272808278770853239252896014827500121238410181545588370840392707877925184423672731821942874454551753108228380617788913142644144668785135907370453873553591656850702329396888399328321568195314838674397843884097567203598611394722941529708519778370335383097793172912842767311415457536641070515825980190470652168196598055608457715183641356488148593386266402342345002720143507576230357541397003737163974236055596767423336843267475552421939466926885370693136033454271723131286348513762730797404473163984401136244935653042884909365354013706404674504705890237801721597602411098239039645822865351709777960820903482706186654621830947666088322993233282671614006949190977226220585151813301790758192813606944743185621041469019808291056722538684793106199950929580946822792119284040173474602144944447723767274053618511982752054185686129868180359495398464870416074218897728310331217971200986361128238208340681001412108889141681359049511222151192893102265378240859273421522754995612394199157507230395752133361830286875651058811886018573521167839358204528151316148530510018114392367776739217748502923065486453705940554517111631967722763919970754568110644081001323382129721844513528083066926611345861280796087525307521970473754144625306109508712149139506174819975744088301621609604483212876488901737223146494164080420657318030099714689823569406821010522677373695009560749495219594319905641306866124929130049463968356622888949715935503175584893315258639128460054910095871104849403255804806014743331035201163413428575275084472894323113424442372446754498183008824392664496333000047648982871491507463099781514237614442110662446935189552852292429546975913422191550826826561712203198127760138296355946343948033994106165712633464210472833202989798111749124249942226553454219763093519171022418526128227012320158561781310048655515304671759204154276598434200673202022971732507371997579981290225187310498554129381243660660602728107809033990233047257987093489003170865047244124002101112264019005375715612655640851528143734361106682302058401630527235266077796192595264490615711459156575775587136627988706251271950005852295248666465078858851366372154870308659529032784498692438224595320468516517043726100650475854840454400540731249091615320251863419871529508363725620169785821349662980129881973350335564543048400308461262084567889281376360066654728589537781997071047436018999017883521236293305234387354775569313949921177543836061699288970343472278667270898827603370924187546045099393487555250496216342039304798829983504480150628413674022089729116221128104861250723503720884559767084928894574672434303743940255457707577232299924349676892529874443543590993796874688074644611106143682153089455985426593852548608692872588808077958150888543027591547763633292357086415129256869602111358702675374537757348448673504012188880456715522397748403880981344421352344616459588248700316798788919914633009352625526492683810081762731164396091137278405162029551769690614267445756002780613443677992816087009901221399486963915865628527448991405768300522737111386047137817850126484033355334753134118929059007966169770375576352977033447401158637781948707435977426485088194963411862394794875683362630752544417588134617578195074113562509699033201518677249044232977127530068064090948436426831182249485316809604205408999976882497859501373249665488033557021629371978055954614431840433495845604534167668902700627924429831749131323721891860954271374093331790642772825019299985001398244416933853260235418999477562965275295327454321282721554276821292098428433084786943932641774807182390510732481829998291736370941577343611497294749373806566594521012028242504167222139967893187167505576209333303014113601330270172262640543739563902934648830064296932919981933417519900493936274647123929350821399381962656503837590841181083947998839934664260794232223712865536804480484289405573694294012008251207636606478355312502376889970382560721993759056135137650625631817288306704320542023772342390209974805332530204648049353602065604243818633145063002388324265654059995016947269161318641904494153825135333017757041921349178237046021787543817399552134221624282221595337926324160757591930267309540173356992153235354794320670741158137439494707075281962997145899120741570226540460055407517924148153138258490734668890132188286508403461481655892112606391216242155601599734089306637993981590947989235295700310863702330995952833098232125719918633538157683930923223566069700765942489534545066214523290587015138410138682469998471381177918892700550248255786027074447619562555444491656591846531932882837171968744454476282741321892777607811871003386229117321096979950817350868319407960835181315687377853670166577956839630783029434000413512828351033703758197993812190526981396271607810072166940293348442082518837510726394997900621003007165501473984718043441321948039775891552609813755801843692021584839874614805223851334147539794260979113886803650206768239020290091145858760615937331128287777393148151532785379597670365384974485539571089028723770032937667354731422361667507872623308035023152590245714558450972492973675700138305855447701601772994350877327672756595184275287102868041342463156861354827114487523474561925279545327411282418032735800176673279371465994353708336699649860537985352914115315971839528623884393592395376380148730975297847931321105794183187928812343725323659682817751065628091770337388927218116247857929122487692967693480068053362539142124898728370924765892378156246616269468789308915863128532341902269033556655637275421286810616361006942396848541462842863296366578611945682742828712791582040794381880477546779319432603669829275775358048011625767667295948048922145486489613614955361624208007881649343088994592702050573479675696489437107751114502755003587083110023602768659766998758561158041976639618847011652751155357080282132554968189521491243333561077945655053931333338105483535325594727794811834449181726164705306161387308265864689680707149068786197774527602948638397094516772899792229047180817182825375689160790746433842776273805180717251379739402757736103590326119194627920603249734729815453047737193427520452069710750914382997685726079383700595547635979004599061379352610575767790363493724768446093020871682897294202040540222644338908989409321938604959066266207443041312932482454958393302363838892842061105123340400218757534723874685928906559368041624622172632196232112557089406997166105637842184040462964777222125174021674201131666828839137627220108764971906539944110649007163545987576929601975523255081359575989436342666144201825118730504223337507204024739736444438775709443647310755797948330892713202630600835696192049754674406733476456859389980136313010480813640146408472551491279551514883484162739992304039701366868378288054114226771270422162408522058321316906845606211141898509169749214335577029594972292675913403365449254773143131757690241337605002915296835499418217513652784286913052450380301949532565197804271298982316005510153568948317325374346035913191080684784480835431295355960614404818062485702072156899100281962753776153856528157665023330928981120261905292805312208883606225555808213392891720071958986582048804562921998091750002532979353322504099408699867802743594451405184494463930916224762017614522537240676674793574649654379673405629514808438784186900843933714958371590552764098647154274268614881674303490600087233980017768715152997966844416934312651474667941660375427492628996807176351457867718535524209447596257182535918392722937192948292463096841773344100364778461200936686030374232337092310588886131390098006574197471229633234294789493417339240215021999435017461660061737882573564359011686184059788779723368786064151553433179088804211489128838941613949697441792396592566632979634544401829787689863651749451476888218031358468883958913587735589679727436279711493560828844537422938817452813002224186628529771063066807203165406231415240891846720385568469593147113737826162740723471649473899671741607048059583134148556817309092759802390496473233211631184157179544992262042567139988677682134338554217800799964497222226613813097069927948274630665550663666313621922195454729345463736497488013140184748740514174995319314605534895425060189093554870634408089738244860740940842801116992690381670604508493486174637342604955739777567843165545991712996215529606331546279664366625220038145779897677582306522897776070436487369306992406022225618112580132976796364501691605604835113562296928912427044961302524331306394287850984928819530997177978752728698186958198204612979533095299460861576297412381385776516609852200214356800908449959842970292168283085847243738442139194661408706481647389285701144634253029299048169621196863927546626875211183433766542626178930241227459135919618752617304738063610318459117793676515705610781898837748030967041305711070074122534277785647158839647745273639489864631271535121687887687013209456599000464114314615168463789639342695541280897781789993557983072183368913423597951080907722777817139528787220590106202873843525999182827190908523211200628850158712688335519604671316441610679577066334712167402529654469165553469462340839975136190051250548486709610635346586197777105074346877985818115915170771950670908587635663996041754811788315727672738663544066712457111542447311986703566338439025519700026006951519786690821408681440479502090797721282614082430162624355218789901223535787766594917640296185500463486816897296953338930985939174503174028536040312301750415748225318257033706522195777024350720591977558351748918382952079222412762943224545390448879473361401482988365856051996844348771062890175379026727476036582795513234070138386987961556435956255852883647510212947669920231439799288063637452016113679591059343239684034833498492030498268531546073883346987624233522404221371582427460589678622261943861665023359755463532351800689265385243306667680010072440692921338294610390265287117300673169567443238196140353168440760523030902634412183976164225762400654922366290029674261135319895002393170995080739406764375411091807647620738392388188634464831564523758128045408652184523331065868529546396532352378349706201014499978350379656567638314425203447766292230667624048671593914288603659249961748164482319204975578809255423788659807514994008445102070977388199843678971469591896456072391393148998636149031235208778011437838965364619847636148827017198564020864418091668616990845088742253578220489659245044329864011300152922395928273868608168282543207880531145680903812285881950583503887292123145542629298927265476925543277939775398801398666996115156692897451971495325725628752285588772142937681090036318422077939319337696297183743183027579177369195601341873928124560794931740646166169258986315011907219723748274373344152734523839982137887108128079416978502829861518561477830542102168263427090207702622292211473476441570910455424179040828506009305946945652638558332857925966837001309084071954861750940935026875438384392877617195533052039368592839041877541649545778489692735957460102624951429987503881674060209582064826941794434307982733634379926889956205704129069768915899351029851430438587249954131963079870030587814635807369994318498398111606329619707910151421871340434861878162956721757062872488177892607589662750593554022576409321854110083371990314469546990413809330604846580710983851371443389472641919486909935885294670386011248132899501646900651889648355664461840999097727782648830194183326779715840624982125060439218309019321275522821091328760481319000279564092504300773405331838019970716790924638433205167381646957697400783581603356902861775530607820457029906176760452610937135249928800862458881299237036181281790331561976696265217374286541358381506949477482706353323075697666944143416083102090386260869503915773046648625328705878613134319029634834510409660214225920826700954612985565017481166304236077530033279974693795483121547355385127569568468358438926372753226295036137901259988372472923274486919677678625707666389319474080785712666246315682699110571255652054082976844345161145331716619422396136454928894918679485679342944669913017623546460514925410530751441901703818945241010272139777427985762034482125740436995210753146793477794384695118251033292383776293149497577251094743505180514480567528768289282177201482200070605881274676620430799051989064062607517312658289640471301802740399793452429885647850765528380314941534025439612870256595186340121360656873608909948998959001134359389125610615983088807782728853643656071221563934901951426773421577741713008831935672556074177156526330083302811544717861235650580454068647291708598286835536661087587019439009863293718187315932845304560016195893194953800395129999857351500077518498578041316809739583569233917163198893853390822800979798470614116706072493150422360512254074262132496070860631580788793874011456418589731795731664462061055369161222906442593753206369852739622388809354554086269103507152383692336369252828643600215846511729478265812919264336298579336917680567790110906673547788986062434165739376250604860139958743234776959279916908196195113583346961878686635360393601720872966048922327493529243090164452407118049491407234959038315969724707923498021612664593177894368260100580302293409544404615493054346062548824568632565534611354318238806616040992631929678535875028285766758968182717416496670140381948453727688495664139082378533799692005908238412714204276744914133943640111910167642966319132390305139968066327524916227804916042503601879882997504551908040649912501021547786067318740106329128434270710251085988822836786656717974140786064699517395474711909833534241301586448847331347803116501837931809226083424657238507622263634480149320830533448667170316846916641887247126503698272318092871705560147588865305914688842100152775718063170567746843504341072282198414183570482308465482695323307900022299218868217284905219884664780890167916167008426748012371481157823841607633090060509576709951114812504125046386107833649178210993741947901293896386536241287457161112065805518018577733537067735343965869175230433080117723989970556024406997729653109235905981469375482165269342960999430674922993648945849609593918199308392811796074749129464136092226228749813709724038652328098904550990239383806567766745248307509486343440154893903333576656787557651871466368279598157089024654177539100398472585604568617937172431464734160212728432132286058983064512902029581434776406155758988102086396314851573017563973514526111755525294667995890217491352557780568601590958992052081581887265012107721017114677512599832701872495181676121496570868602146281069524596922533689490883705581792332880132878103682416318969131206929470514673821784650302692342804299781513055428854073366636212499903197965137516809609334173045029980896916746641867396341914066186389248830690868466830292462431345858893326114668973645715637041434391614696282676590219349982211998163420220100497173524789109552131344839074025053205892028352185148654498076474397093025333435461918084180693953016458895520267338512009927770383913516037570357997766890770022264085883502100902722683717411620026030905991645705267536514747528201256941790011662253330582778888843294910864339305738818587919524403636414412435942901487921457099763548104476214282336448348835128983413821912547790828294230004366213067647496469566190643987661142758395447043570123141520951911711770302076691766802700228950311315311125255622516314355397991972680371231630990348210285907310309862188288756169839263215063042166091209684086656438236937341777638124717888033652244108579842940502264046452179579443315351239841902389578139093642326336650173684932421370652869021595297857024906645409257777189181662707898504621122964802977600162221964482471906850038626184268442403713635554897194089715719712575298543928318363348056511404265241984908052854556651175742518628009999532311509597728337184756627116761035298588358497375264354773608497364453613972629880166811354568341671927540621314556247336406822853608810508745079651613208561385335302120156606174636740694330737243963475322149765285103303132221063333282584713701925042421745089183359697162660214301536989311260265378409502089000081155615325667176192852263612857892110668175291595424080023771051433895009892428328336566057794998926793405957838857183814441548619987064391559975503266021180413857914228963025554695707637704190078561731787212272187568490731039964903790002153066371876341377042805582740249052103892110348066364005393318583804327890017280370911823879264551673356747161553778660710172034765502704865098968327802149150545469006493785518344769102372382482430159645688768351289183892684736322153515144972924627023091865211167435187571475442068767855767457596167306705106094063479147559456144526924381511050761428586856325038055943887369162305578600073966895400172903888496488958157558909518496699159411958807978772446984124223357854783137112002399931246800085652439142975798201990353908129723859255356561391860206901099095367026779014138798271002385858065737083277887868357443704214855982188511416042791230471081604254447036630565987142460755436546663523287849379910028943268112123655344198964550325204852753599166654258012108958841172354496496388776763637806456843663983622407774640025179156172304057001459718015839528189674120468613973414171225641274804734779688608621376236618772759307018373267479661028186781410528371949840734086004531565729018272011824989531569773663621159515010768136547602105608972810220105478450013680801792202736237520659160791853634217760137702787553269180279749700637012420134297180290580969162527443780046445372292442181807357989995168476491791981409927595057236736856130408266273020458742430421232337214151266576827506252206419882417984042675116753679746992236935138695445225188226245779833585593736420658275279702592181194620889216865706719468140579162652076629800255081328898444359384426213582563907135779872377276105150066216694141651170057232700581959083735386924691801414788788917804061050896990095161727514859102814619136495893706013913196720832029176991488914049982247504590211927102494748073808649174860461051415097436421159837139598250930098460759362989673818894467664224560895944610146349007729041202563901592080460025009956988130176695117445158206753195510611208878015684058808022643046022073631939218799719835661077292478687087559036578727904455140347909320742535882322311385577526205203286729519965011801947806442553303199432970456260965467103581060884450347544931822788500628255400556075320037585730837829131591111522337127960469275150288665236442432581247305846507626403245051418706707490800885338856059350239185973796080370808501672396121691971591125666799759638920705454713202907714552532088037847900890814667743077789391964924861934098499244496204235260225672832613472714717444587127052086140985007943647768846480572410486764468987210565847923524219835994135352754389731260812653842496513566024964073192841577105024330530818587560264522447292219363256801321373901183317596115954088495472136089757501746125190843886413625503184283636250860210559715476617816454737242189529429140781377048671934896940433543748688092502606506706094222313606494284463550546947536237573937122824311549132607191792105250145200016961363722417361907911230533147069732876534015695540847591603639997757942477392980155545198725048071741036121539548048456886612341123671057087752826207641873910581691346708824859162670157277710509763443256213078829742395380219704564255490573390274821250693842761710181210983782412739695379481381112168443255990170536285102957682150228950052917969202631124557839508586118295950755171577561437868218441401921003680726006147426053954609160940525464385358392918468648752015677080122741913024137472712996991239832964451378669240043790868465232954540352330082963559089815214700864028762094976314805609403574423838492212726490980660450580154078740986756063420860875772394433423914628759063207891893581917754014151587646930601821732854416920753265259909040452172249739383738003907343944447691128676144864179811041633817457802321143465900244745540299107711146304187975917609524794582179266016611988993011118212360407748650146822523789982581441375697622665605233244595421728920426667485510011094204973005559941275220011412201837484484633030539665003026631160635840321325039239316164745148746453195885066862768062009146204001439680372040798962054260073373357167285226339381798893287171404067718674693940013150672159854880012163777813783581488706080796410236861645073122513010421011824643956381182278391780537318327422737957988648449573378124628366663575630255992066887651540807111389987621063375918041389204012930721058141616019019373462646451862447388205019390980778798491821065641771225619790058327939295706287626811961031608797758962987526599588250604752205290647396898735542491101820795180499238767170951526507963907216395464956718434158796564541466351709134960628218922198200853581003439445561481957713993920834480229454980956067238883598976826110498985340654818348424332366824654383993846898023955338175072126885908364715987893763816123482432065338080571109466611648789470539638571279107326731609775126490665000520061587745670400294717144207849216203362151123103926846353087410964617857694230346660074996390064748154491391058780406565217609432953982315204721211766150701858088564956294449898891052823972653255340151317417881395236885181757172652722270530512050027070052935703962512417900041127449093573626668654113668250878498286951067232398754535896084164282177704290990306324285618689560069071038031306613975977527325383780700872637372017943206173616392986568931528264961265736800155091091611708811844349803264857294009693446186470323465449887596110483169963511823324216136262702708033496579215051030599503845572583170262853566003612114803269883786277948601854854038268513841249630725833523105073262252176445332434754359516735069993439977235319086164898072077722829556589751283544783912795773311885420122233010681979949121143232028180352846042673879386209712861025421176138784647274967790465319242934369009127929740120557421103049205095645456611334388515113624764507433624338214491753214182769381359976400498733543456837973373935721490675982377014701222948252620806841041229895448145860526917397303377504479822906909665871276111472303877717988389170472426246460274424378526567113369520730230852698828854546869909575305242536107085970774616456641999599750687466799037982251003268287807656539056837169664224559134528503308898234693030291585980055716038566873743052024979204969712912249740799313803121834056286951255667114462496294177907435282178413891960693752704112775832319650162973992138710345203930102500449272105143765347746311568922773919540536435288980294549596407114632542104735747596805155956547579273550746719145526255370552441526269381930554961180984290765182674998879208252192996881925501823544742264843891135294245156029624317680354194453164441595991187606919226741446674610553217107976222284231169237143255083739944686940891521511375589069159538259073369964898478428434425287750253079167292013113369153211270794835178968297957643443462163168440850606650972144887306523289290065434935792362464858612769304331674606551776487531442898139317267666710447558601360239038445639720753425072924522415679901254277276563430440198563558652118368688696115226298881049766012631552829218475009730681786923878281791817909026193566543669405746659313733106728212286638096462377703866214270694514535389749067392099445011706208025968859379732082567996805593820063892018589306462106332602840695126516662462576195205192246146755942119055393065546159720025063721348987040633795966849568258911214007651486184921978825869188826464928566425299674997362858728487092866102139673941267222864220705614563422412096040918227555998499477918763643077198709266937321359617194826824236445939597271928186473057270310258019552295965148667185570488531837072709358384359885810767684158002244836491618373056546845487931366190546468289038493006030533124735250790403194054483400402240078878750263500022310405873185070951382509922026989455700198211596381762972438424224710095935679478978331259194019512133671292594860218098620646241937861447463808283880163422877899711020371232172762360289916715501034090963667361342087610760573236488193553781436034203045854714369106935829310681477715001229347166501435492244958759046559934272489159701241212790001127123666292258368857246083597183252845073368112378480164741907080223611318291956402229024006956646492949008601764033576969436815437531103242675414408408158849369765643737923122516348521428936350430390906684163818576134991100131926671792343208824704432531898939970232062336874802636081790982205825283535799188258968875477383995083823521124006150466248952959987231353907213319065001949734455632079774819202179606643786958693342120237462041775566159293691850418603544387686157544274770963325098681717959953712513011760599420888659901785474089053744824138317107143852699884019128594933991263352375279000582705548951103460713498276232902177156956490321844258758133738960246215510455997531727991456708419287443296530242795358354595538688731343698344272247585161788395937544772781957241620785050776440109355031803731189778864943756636648796342720958516657884694475180004866970577036234890763009320083537902251404813633677336952302270781906488795332906380172072300812819740267931194395599964740665737934138077870290539515660962337341533696458429156113136518780589144313060819476959585926271510661856891753961174893716642376073973120946090832481370668583566707761469266804495096968909046061819710100161042255197646834387709847943383771199423550591281301930723996890088355892092100091915513388288496523932252357866950858342261108232371882542870095567031377605284874625576657329284507919650761783678114977209322038475347836728917657161994678866062009078256330363334958850211733909074118927776827912208769665825778367530818583151745283718991068588922580737617487798550649665321000444833938954070984453040777335579604313673893072191546065339459468171109254069262158792533853828799449909902566287008866986968876335968055096144567058299820667949182938079066941056721855735473598296699329398451424137316826983769479037596942698977006366822858443278682124428683109428597694461107629335727743934048061183802401854845252207758528014305127107267063139435030352828382978220286832415091233797575832718334552690604997898485140093729321126831500767807574651759361235126492299220974800545882240912561234695594496958321088416895038791346016393197221894461777460710165035517423359052601394474774011648477411777902232420592534694777118784474186902037104765965024443078181716140946137849220249581017268929532556727304360223491818547773991999828563335729425423127200275578176744941396573832267955271946508588043953459758498009776391071785574834281756711631838538902672390015012789715967559371399277027458697778068555534862567958797359184406881800557999299070986913314561714827641647506253671924658538616173129134415363608361597017757371356153478988873647599958915334479097082577449631212496165868150863753808436598427834805380591501639366433383544644269938501836059330499226015122986682829415746953278275016148288555532267284498779083320684940752662539998227166811449622743064725156419503830131583799651266461719793935592746385396706855955034158517330167001686620511611696382520470375320839911203885691938227818719192314932916617725983039845994252124190834335119309108055779990216342448552261310276579330468951889321603510554759987332578463527522824487645420438585110585211917877140136033646058256175960437949001606853186790714517667101989164152196563388684527393414075100173413831343138656077676529496212984919172980249915713760565260116679672482887532103538986321528399091900947142153391576897327849268255139460322377049101473405976548981627022589095549651441480919266592281984687830745750830236457663829823430375644607995881953214210175609508841236344953903253799356538593781718573049172087136821603406219113536826666275732295034785673749617340818749893649369086237934642605814373352014639320566606631397879050606430098706534668820290466667359587020243050875947665577767565809164711374899090781628639627139273991242079648761864143520515735621856752446028787795214076878106882640040672954989566255324043957509954819438358906172425001955654524931751816888143266576577013470609311432286306097687329058252606439185206866150743803936088206642455371001092599737182727731770618796128433191717770036582771970517803548020419135812124849172979131393493974101853178119940292326650294953983654202775530182773673370626942194579650632102907415848031698785735070303529003515341126028949024793378808207276654145652983138407701552579629560751125898875988160124013763844468529722252266892141389034023280501319588519145325863786744782357472660293367119110634996394582512677815143493733366359406054445501008648016957168813564645253379980410265162080485642012225828072520564126461351955612936433060966373487978829677023127761718623802342593146964761221678253016678517074891484718583314979281934048693523882176320740994284358914807115634672429014558071544013273865131569081892659907002949037196942492269790271040148230697281246047719454112583606730587710641628219026571192652577540158726897111995979348255369069913288631162657204504516050722711647820041597264576966191570019681624810101358335439915238791342160524630816693357527869834784134430551736739617137853429807170246433516868808648091497911892643956837756516648072436001348928102581954540811242863376908867436187919146574222485161623238387706843127221052947990740723597322750479777387090013050565339724231281796222530616347407694236214821808621481755391268027876485162998095619877075008494644170448275062557574201781985772176796729379304815988010064810101554800074052848459840363748370098492998116801185262522856046286761851819381852587391735459226156585754306892028208863611882753315809366684827830710394845999994712534941465118937208369028205049916111562028648833873779790304465850367576415593780874476503781685881114299967330633406825864253540784722380594138770742040015735814113098854773956885839593220319975486586587716698698399227701310225968563318667654696261759600354030680852848877863817739542270209014112175767739926960092253139097812010974859723662078191069997610578867686111379111545405839971781904926010340207171556132581836000059432034543394211574425219583574189937148714956189624001838259153412533434008201834247858909842686276253744537237795617380341317669921910519021761154203519624228857724794537435991907500736870008553319967370200446811962717278410760930556806378498188381002962976222461771468435077064272652480914104008997988128571902999012721320735205201530813555810963978673379166048642504282126691058415198928241513416902132967408130383786519001453696095553583266347273907310462667022985275356199426894951950758017341728691053049104928457013732997335391378918454323813327963637424265892720251411371418264529391473191606677077670242644243676239915563708760598897420395819323833488542643835363329495789549290861815884579915331631638930342547329365179005270370021694971377231635275379855456450165419053856209332452597949323577831743090049461166549907366724999400477260591246384841752172035763370291071609112319385612914576187836433710703725802602717966275076618386314992786272856884900397434925222812764078240462219628069994194183704118508738149929911876476599063610784035446798336091979236237297988157418303758413137546836851430712006764600274913140852126443228524858242155179496850080691993548898883466745326088378428323909238932209399295682098136569275003449149557386246849420997038987225630800413689327793012612054385662233723037282134895710777865071642979678847776374747435001267398685945373495885033926764546009653964384850230108338700215647277960272635358620239598420010414609714986607853146065564130398464281932042952575329583029234156542439324382053828686915435408832095571912507433428177868796461070316300647087773153049961598455380416470019058289792930157354398789583030509314852504884666057921259185812921914601421053355578234589153887021280298861442674957898916616668649939634238901422388514336939865958553968182668057951732752210125675936256469793850084487892873720623115423054648003490447996554176749099248981295549105685526454688392505278017933144389471226826430010056750835305583269571894770369135714042584819646587358174974243947270733388554851622904415315831321028184161370761127035943806110163322557587473725016172899039429223498560195813484307050138819771406184135512893965204666058207804416521588829530578665523494445143843919664705265570436655821379780113812724994701039678357936113185828159858399023629313521131821934756173270756242569256207204768323391327450341541463734243605891203470165112784022464313414260293402707171307469177716067073045489957622303998688639525551655562514100902874951779640824885030185694179483751861208821441696662852925072613259337524832217189985636545505413990946622889075638203848621521939608896564983294249988876870638242361701165419659585094309957691197864128464433616856399725971169002431100379498894328720435232873083223155961898676371044548492796143886835804791254274532121003925363748697111357169034914629563115026310509888705234668204341998887732412402178542812845962162470247540381135720085853762263738574990230913822245065499197830209978761167620342320718522191845833876479302628282061194155841265090959128945953944215032935617944762149297000947593594326003381077657404129259947132738742463378073878923904909211940299648223609350489381312112888317291921998527117690102098135473234847721077017974738344754945208674805131890666924149971881715600475374511427259103497715561452503258333432241243092958086136520075683052743520262823674806436835954369390363553083741534228188013052458655848680650823306746415390619411812064737644427437878368668269350532708011583856136317995688591880207533560383562693499921959462895656421305896790708701138829206814731879712313253213957004619534160378631472727777856752771277471246112317845415702847744407754794328662316871313786385006764379607806632750271357884339367179545697958124683208389103122595656098439452972671605726093126018318277295969285642059958965593707483431330386002367403619847540644543899435519367583930422898588591823585906822816536112813231603495587521688695211800978078166954171429025049480797696354496886494008144412357430377681523069585333655105154355325900896021169600703243368729727223555704491441829428382105876095191346066585653142724312869518350399443222748690421670731329227510206861014420234013812993108637658923815238150969815897925908846134625918205154940459627280005048794698489532020913708288974460078154229778675201090501794822289018638156587732891611721623297353513999570445705850134861395876474638703808627604361699351898509207806631076989479381206590750543131938302558471647894819387577871422629810711937471845947399732271148289217589949769457954210799510981458067613644800196226273518184831545636943082603344550658871216317178866011651928289320787933381466024263525962680657428809784094958261727443208007121961406133422616261241648838602233754335194164343649033147550715517082228827250013703574963596018795758136742362150589594086770162836589767674264377399132028961459415092593312608602519406093505779283897543135249117342032563946397811903003439971104778817153567939165459177072207490545752023249411044872250376931181855776491355141293087704562158075297113967788164582830097437238176212038894829660493773427984140010947581696337310442834438940015234432626153097652453497057838677177387412594108650747657949496735919407169007407800732150296268187085969288941103417853046437869119135254784044785754865202491650039818516326732800894343707155850414409888300436344998373568568469472347931190057472510293497379339481420685947418823547482363445486101093037740157829177840565621486978998069098930889223744861141250013713937469762729448267358440751143254323451712179552577865757593421557907167265596730501096869029084560887583618063711225538213442269237598132197396019854454415406251504193907063672398313279354074905440319051715591978041801691859369392482046406736609476011184140540419444901812879602749449252874286100137805963086645307606368705816801274058563757820474550683017154824672043169493651809416106812397137103697557221841229523534225722071750956495465054860153408760874619848209773251047445402497979439570868164105363506569924242956279626087594996105975145488801009943388212164133686809497920561443956536395920768286446025012475327999855984043791501943150827706922406630028784687150314424290278340744665030884286482364722503687110023598784336155824274202305694965791716417915386804798585258120078825226684664025034828814440707332139847839897717535606144725948176005335962198001571614602207041130920128009550363642704601480211023735575973279423783290985405241387293205810964367171014751537620496084102718367821196756415753689975013209658733305647753834611785917014146557016207416049357381448495098289853673245066839928161829214409568441962308292859366573433032477789060448918212740880567630219835188630022436330020605193718609760999351753668498727197709561104902339799704099107805732035291060626527398615808340100276588584687784172282916907557735808093683477296322854510849454954567246031491034388827122983768011709987849723474912256378351660589798788979788903271300597700833845616698315166581523671040295138961524823241828679615538632890957888159163251233428667670407576078778850129868306862449802679752428213245416047783682705896505876337207076747841199421668957295745179019790107473121469103960563479359306595794652102928339508648356078623360195339446507355971628201018901456216510235708618141008710194563838410568957703472496909548460818683381580628275779830439327680521526977145062306730339382721970755970433710434221969088563780480842490529080031174065988607822149093077960035574775728694498837069085817665502489778831105283438156388359297004290312690969151902870470299915399202519965428425614752344824181618646350719940049824847544173690764562665605504387263238150570163325239113011523442120379454539184605798771343311747262042645552834791211512218674748381207873634507946652083919707363174081686400518028322816873748359997848925442749199236703988108575200305353234035396778548053712671565620811566682421412967529931922615460897917013880808918689592807045197853278666513243698982174462640520236151819378182006730074123786070096204774795014755557414275889962861324216112724855108895467957704306178288380482305150825738070710090736312179588555525308063895053162099176954590385352949866043864038937111892674320664165504431214053176162539568281414934602774222206764778087793792190112691836214345243188255382758545013970731782926472538446578412076883119695532468016512515910013201667505051893485901992237462953674583119740757876569684764644073980575696689606373476242323534924047860417614336516908108538554485604453885263564571626284876937995847102397212383522232973883254572915803104747675986715604883387038774218088190046055024641380441263189690797626618751701829287055411205502714527739086880776376783623166007253577910933207529594390991954300742338504554659257606244263946997107098930380670144921660067157632142069426895529166173438411329299657670702019354646969820888007719378143451213432301401261573298127831523575050837955202298208072778197602781560518652097514367077112152470725161174141777623545857070800396800240468789767449526538681463019463754763529313346383557057139795883602742864160971835594520336934007938111768155291709903592083250156771024547534792231838672028441026183839272337540975654968701262248253833721487843606842574122145919956710701172920673724052191409695475053020372103809002064456623012037796352690497571410642996793130644373104379088136348016926857573212573279359962706336636989098157714549697869299021627069053790004234419842176060291764265953585165872251688352001979295519120552834156958120581019763968092759893123916889599902405305352307501425465752270948567663414779359261797355171941722817769363185824882172216877389200593131422973051915486373303595787606443778891705029583159777438501394441176655932776035271879238234004269279644371757386840951801814876283565638348771643961577533583794562023989518793248802964036195352854348599879816759107119585019854296820332530666180702001751952907293437464275777088646324258656648387009029461484869204423660285269730438908076404109433359663003596605401193085900605131177415124809054999620418105574473283701118533363999227245140628836601730181382101507144451303785019061610524909158275054216101394739540654887639275445120516619677955224485035708506574065901040558884354761803399354717415848880554984667033644116316297613246687612654173824393123272754937206171149811464085703356554781073368054718072956595616471714863253399435800268160381714680324808553396932568944689866508433386802118972294773913388203800108748455384966698881391933099917888239548549989534156822801314830907314536230999747110433406217061534783849737341133580696984777291840120648667597669556331418346991771266837932606662390563344374857601495609729253414099207595847621647483469485589964271820935043084874330543611206678733126470267620143525490586958518962362712666581659812731870209587887915178060971766190637134504776746638170600858129195079627528109629179498672822669777295808294232983337608547749108883047368503629401589850211115680091849211758437942101531743917728215628467935347947175660218487027120687458928724958863876450020036112561511254798760076829401835157704470860536307955697471906366213545798167873174734167101249897694363679064597017647344779823110673708127565823220011871617257122640104416934306635173710492924951989047176183220874940056479483187956772282529285423954858413926741987770450387268462705371922459621224294670052246898978721347078931432707197682942356342819319689396632142118998689968370269299909148998284801734126898216697477565658980726226880137151959014143424871353197651090627459507301495722473246385937778312150283388987884482066403781672914732587511116706467735211523350831724748198050683341111144358847238060774194091770295523842518174538231604377727036610341252816855775398347082838765300890909110570516687890328701632947664381626680084467466934803048521595251980987010358873628951175888814767170039287698345461880785215795645259430226122971936897958579931891858575336351420644043788711743722801153108304279264580654410507209069868886443833421025084606205314645860233973482741101442888413316200972335709896179025625482157059576576037941482177812400550569280187030195337354942442132606592727346201588757241230405336283941131001019266113234336370075123281133471586170133999382753146322299864379547805492077847530154331378179830442293449146687271553959912589077199859127232920370827173078292951309393444112129977676692244375383745244637136619821538692759417206168706989620022043331497451977024750003354590986736666166387686933261259839806602662334319244355245628965807165835019293751239776278481324542103115466854790337870374022372250161691729108934421811722906129196023201311660363242802988331119986571229359673433421565063929463778117539127839939487124783076161768453119640609755123812930237125098015600556601965814702114049342059874801139146654377638029564131454963441045560235608267497326933082030683020909821567047658108004920234814286168929198536325582056932569886145102855518714628811683474854188360144197314434904002432354249509309336374385344222433727912340467996415692676877041637259704995885543275609035030039368114720354586162315439912474091799820737915299871747702729103191636218378623370306632333995922851630937523797133639302321441351620221714505258759635036187213725213748219278151061915675764899363159334123533812493028008782443240534775318671663296165658430178784331896600166632802077678922023870224214880508189150990422040042213477950743491105746632246496900891853342425233279715644635616697306360153071489149130692990456311400085574089849346320622232881597450169450467951692086330174161080137520402827412290486645825809023086460755388960845536221902008598366169886288448387740102781511421935210268388382674557390558694067182077256543955257863247173469082393983730533969638168371319852850847670946117701085839773170992106957911069299035836119800012552142697057787262807980717498246115056877415727194644372076067841435646698110046318258946433159450156414850444113271179597386696942362800742607692743985512635182631290335791704809800629248097418420594509776130851425063539023561260265809961412719665826390887341212011829767990943595964694959423968634070778570141065244364979673737109284731735275175322551868419954932210610630078292401719632240367202538261313575747704014517899841247859106778440782937664589821349174666483123339615032203849985315875192488933525601808793342617017773679603020456581557015623355106886026168379543891857384517928708204177064352577905540455476009450904834253147893972962321629786334761635797697629424406451677984353226457591871882380268174958917719717499795871686564275608530655132799216333026594006296220516898664652382883491359172864625063126943561889643976708830627113371792150217292080001509387600107490181493057720392369808837167319507898718917732141080613530230012480258517336153962137755866066956792981812876827724096007485569502401522904417214839812705863146454778124114418897786144599957725549471763860068514341515945034372112396583957135681670988078617437034095235467076340912236771704262879399680540677366140780274276281666425745452147464381193474143703383914518626303741300368264661597337163995654655578503959741873244551418782517281289659608340362275974542105455688993095648790301553119469171220757473819675625975869051974364258967579961716615833460991245183387668040847411457309675177693725183209062197420612549422897438770914178126539073128431961092077684421142904789251631755891021479888575911534761531982233814001228400139014421435858038535115054226415792917967776232427954112826768648883463622700319495044506161823431444448398239330233886223833079432453659617924053063929231504512302726551993799095881442920488344190459555788674856297872402988112502529646444170997844362422668544123161049555945564795358451169095533994287498138856865565513470719908895136776398294097057309609306973555924544617463441795480618103168580698991951607237606604473132712489571404142969699881466590618172714596697534831537908655082204812047371625774878862966199510058163676623724557718099974341368986102390198566833316734021161006311502776818717225351971548333038245678919312650111875608590055745933941010219089384654548625327295032275941392016781066946327730087877513052542880199308417880812200827672287542487814583485348738663805863027343068553592111861377980345811915536411841717357003891244128749525973042792923222637907174875145396238895124210157388011237163203961594778968940551260946542289894281530806907039038912229753520600739613118268981495925077157997270089916220232029201838252059340191839594853807652328030036610971016374703997829011118464738251768809820981816948830817501103107177634309214183218851634111869508971989229227765582950511012588702322020349487517448024435148974300157548257654863090182980089084609265053111570164133499112605404580804943364041107384841065269982764598360525693121172140843721963455580726471251997925877931466750286954135475570077679552722689341601449857638805160910836995063403931709787799866543553942653376122968705941413352493305385955152903905572727631519956840194547323265035084052300975064556352563498549267031468246207289243097827451414657894893188737804182439804704237737040366389365088714661456203922825290977939634796338257196701019595935437208872002910780876158972305972345899779767666350932069729092394420893897229223620728346379865989005895790822769086660878377436203089998126659819180872692365204811008101117041242680777400574696056506104938266666427303610033909562718770196581094396044217107244887230775228416390252058629568220856974272895323195764165862072497336187031439543167533385461413346545274917442261763029942537730881345601629361204103367139837120481526535580349492752510150817646062978381615683517217435205487723245722871624863193197915211258745736611837499595145035136420030600541497115238179197741019640503918395256604238953948016295375392770263799388689569182085527457133035090863941020864498422099800697101293981239247530248393485918177299409441573996726280654612220781519804652456979997535132703635643863688589776665856736454080909013263170018313223346578789983299100154321895266404849796280543277769846494262377657474375968052492876943495667153720559624617645880525645992549737048913959673926083042716938959522703835623511020443053557450198396697412632894090415791423491772744441550840274706671045926653305840763343746690321954900101190841448672403368701050523143727816662417269427785343074596357081587297569113645631570894971432633656225663996116575138305052008614155709157653492020995108126814492924996869448158292683756527887893816276216313262618233730060450857371260891365911711784175128303006425348971784187676599792836913017633123649699189448038374399158095162625393614798883909086439336132365458338184794377401860668405463933757067403297939707470151224086044979682848312706221203667978954129744125064628497002413670653327907475630553798761524995168465094086103023364530621891570737956478208467582636039829819711738572106177810116571624913839308126215544590362727392977762568865336375385585747317626783476198871033719723710600481330911204890819795318884606181026651624957506676000044040005463985763730614998810103925421467938790474830434246012344807231792614670497733518117288225253470157283905511794727387105115249698686596083279371505228697686646965689628925341867425359965637615979805183828477577764842974653913829535545397323105550244726928502804154493533619709845567730710982067972067877159912000815457809280916763311774374832975990010362908940922535617804217024189575961215832887876422645466514120246155477913895305409793194956880549778550798165872584183792386177603706122296314490191083748041003642759932882223807616099462272719581729627677990305242108235364676751975341332382552365459405259248393236500136186061125402829084218312318371050971225817473734437612734342581980322320113390754286447682215368447267484425634194200761989114298909209003072061111987601959936611052145594901769221452665468513932220991549925309973661925654665507794462915810071995875918143117063418911814772875705882340094207516712480204995265645454280299387668982755773825711090495885779207745369256578172285478290480057099977812586839525865020244212884268020624419131012409303591789600327916982358225865183930974442110143933426216576505091526307150472243153103055651327443570171698289688889738825991185729135616994807048612062597194159588223751132322388052967886506585531991022561467479360795348252080207923803979317988664967938575270189369340396586242625023645995419204162641807374077204976045241637469571715244253103422710635053155132399723479115505449164689051758356138357064888250738665043281776235813587798724848698062263632830420985369696065463606251642945383395712948049210754816217712209791738061942877315170747411556059954971882919605814956919330427093366146046472631328299442717985955629316793160142247040080737752769973547304716030629526786272310717080948711568233760209282180658896831783229125015041385237477640907190630791661367252239427057003547865234546266229657140466398505459186885085425681827214365392005207995675284067317991061909787017325572721415815307989488104623208502194129795287431328092324467225219620307751021628691561383303481318778052884631954586324735496945459585620287263023284986259353867730868778743187481905633503617981412117402494745310674899089677744621927755058781057205234764074551954599865759908835344864325596655003751899289660530542869085548602400696178754640352872731313344814343174508717350237111344796217798185600881152910349603026168101423523031110357780630185713499774973501855999929913151432004857166120533230650075875260414727454393903588199711500771038628241333492435939742106260213971923049425917713377291158928132059859550143951513644679330099810739741415806823850068343516870831605601622032163307929030375498270930713748615959255623446023888627311635061673929262364528545470722235764455078979081729093151902076421464037392419857135255313243463910021583299568527311259164872106252193854043793272787999182428345447150537970561544003825670386466426403499850784764336501352183800112691119830018013082909664760956932944790075324903412003321137702458035172623897916481047628377701231994583918147285895683313223739842601674142525628379723388883941550154966663667178404130429423237722441414714590857743228081123888160990023473631423003615373975374191572087937663964719349505815501620961259717065837958042818256844499409809495959950532301647775469291069711987029305954423423969716142784740418186290807454871946451118193740118628303304033180875731533721964996905396564963194662417671585493942578377642028228426889667102715722857022559348913676645688749297850045245241517089999803622218827187637441586422910259143309437583028994744705952671988017762335684505709569809664400703311199863153663503453477202562343186528230770431049783905877423379502109715747415378395284307839139981496625702044983519569798212332835245835110945494173369060151740683506670988891790363287845124067926899732478818992757188630248339805458010125719574117205303617942798270610873082575840054342851902096881394935866379708868126861754230334799142111704024954019738503657037151087614263428221302717369174751830342661029982020873234694409501114278821335543931788898240231583468960096279674109023328712699704612573351414513159221684962919717484871632116391425563037786308605525265676784147483222167765824878745849957064767544263688307114709084560016340048782029260476067547707718979730644547912781582401648190859520680716952595848437877766222661807425394229367131631953331423997573917303194224855142218173910877121158472496416320834235821062323637200568169556593840497848373716955905852129235101253735442522893832464903724562291126378960145706880547362561858489812404399405551081184066864848499743845054789817784735805036358997394294876752321883022046039924091889123425715111653288751573678131713366952871764444581450197519810262924941232492602105696609695985246886817984236177288182981989675621108892364514214091293013864516399417929939456281068887048839344894833709195924151066417902988412244406233973649567500527377741841388991315328766080925566793388763487377686859480829344393193167511281640080417473583603563182091284010694199355064422348320325489084498617274726747667518279031171036730234187703340135411461605169587580054661834835087001245338839779525856481022521671963349097824783683727012458002212342963375253677416568460440138491062758100070137812006186744872158942671981279924475287842255024961289660997584841749102052902919558963897624126444551508188739384834424661974658057883434716026894090144450585459058923343816366392983101395144362259082652159193976039848580520559830937494633347841051767459575748017233725375429453337293720421439890737009388060031120831159863029572545663128482312918721816986596222201407262261171727258075034888521168067872069519087417714721759761968455261725595248617205319405216486863493430762951064966145359011575546605268678855930302997060494339467414970266968984608512152163439974921628267777351987252989978044933961418396998568585862264455538437015995527334004362965729474289223354381663459030820860048836762137722685531831661542688271165539705513999376811890764090601787334036307672190868537117939830378578399348173117720620136809272528913512319144545858346446005067553952333206631924452685835916966130756796738322022020302786485243850685080436059902960871158243532401722323849485887449147211405530684782952288253608528311100018359841001626581727616530741523634542655467438422030051480177438128536640480818325382604813522382210496506396953532013092849151908051841895176361621832365703027304736171399660194364759520378725530732399957795433028892049814408172042447134918644917240278797566183493462113562767486603304190272836178964654463260250784614912366904413574962809574406125179170343919598375733535328765289141834974568498133606604693727599846220227770128760094498993794295220820686046897574159479315173431449768752403379846388983573709737031266541553972389523352995979694076612293720601701236978926378817661015062644918387034371899808616632732897903484808946114224041334813379247241316322398043180276784102243899413373571663914470265375124650285544383691999589438587651106701372291235897265014043060840910237149942157073245269857612947941697113927006072359943950981068959085359701855940681068490918928098387751106401881178202024332994063182617350889516123617325386074794968141603645555386199310505466235581569399772017392298631186559264197486179685512134122994877856725257813244714845476422205551886085014298776220844185948294951670267690100696409652218644636598164702705289111915245290384390357798858258566980786988373566985625648708598523919014449710693469250703172413818413075039501497932921649888491740719730436373441128822307071147066624204885632832751793395228640259479929409514044511560144334093118932525942579815248062498367608769756869791279188514656162713205215853001662743254010436949312354512206286182494047483505949666163109382779330568633727596684222373767844225031946522857702006113353154403029940500380230587580522972678815794600848505373158478765608649852298852632295154609538100643046704994025383077787909760431352874890729542739938875421780547419404204732997497813706139457729822567245539131483945973891682962902619818326533480898623395361399989559184032049037919568947823587151175846822417824243357452265869270781483597740340203448221401772831329407002636471465960672491989691263454053345443542909846065391621745857655560462644482204668356680366609684786044649243488703023948736974896038309768236238198644205678790455795251217518296976073624690840425097751480932981424571960115542404240985130299825479977219166228337247075756114539274364070266800707304205211869032000955013106959395430529149657540649050505075222682800624357047369284223117288307788027597298950554433238041355156803363350872261462584991190743479058303937487000058040884887467970342737579607522215802755323826425200002996302916486326286456991570785620103418613251238405680420947208968299460338512058916195725450162162725191099689003073133052667848840621369906194676432193958153327174112801361800105043917555754241376263214022594089802059874265649108371803784115041888905776156571583884252728630862990149907139740649657102414784527096134700730405325160713606631618755964666481097007858858460113556219455588852670630457623876022043865372411173907787820943591112699692826998242440576546942640507109535922421530617912203837079172992406899827548931964103757345933860156783078594981395546348293523737336895415175101880658843488941071139480402046479841819428103558613871130930847340301787609909499871158205550769969145301520012031947380594051046125343246297190305120263133439321229727834106534046012191285889164037893388025941974290628760751825686257962812268384230741000770008891459169101094329552590999255883425898969385699084308003925566837939069253524615558470490763555287368296661115817259438568570859595178242659358510865330121055844384941996163164375212561531023821427540269855390319743142726159360625356552010907745214770206012978642814721950033802186478132474928238060300359358539741808343554748333328008430094405697637249866725146779180176474082435961344937626311895689981490684646417979172257909153736089722707464770513687252318752383824822586845791491500808518265162884009860107435571081206167322849795025391408474412325821391922805819394279809971628137155358310201762855052724591596053778741572122990037113740012958867728369202545309389358300197755157520244113248629111445676231980531632526581493176765948571783513650994713855330004583924785613412779439753016682699736145174977140539697654688754307393452424405698696909156134403905369032753914178390900211501450843470275060523541787726164063790516231858080459407737907388289178141066347481056223998461964859962559573121888933810237188010652383371288079632852055426132850082533764636224690682878521889154459855484059855295632316284358881338839847981681331034690937481850296058137807206001222613311896330923273095284457886109403911157386169833712802351532935385271378974062901171814012801264125997038118364173251628427086742278103694875509816492926673961048164848046268532266797147918733516121737186938542825690898112168572231961435132436425339153641658609718588387301629662446381773372077845740892304177981048940530810475590048703147439950986116537009466460894932199292254078659354315873839118737246297919140825416953203486405908266828801116053459386619878805994669195340132631266889165579544145929233135913117879862780735317440895144401987099991006496918126814494124151306978312666703624615550680493996168769186054672458825266429886636367795287414245820994293580742352265209630682822606496671231277588347184481600408801604783025442559942621657961201699363951479833990123477775036958709519953157994230093658346321060286482488397496297555842863604267726202654125641670122060905071099886889320165931296412033691269524462463069373669511375538707285929465138618308124318338199131757292037952480018079708756520239981813432847544623719331843252331048910447540103242284994092266576011016293954748628951447136011707549321227057508138457880158966597826481404340796532806735087191180029309017554566397078088297897343390979111270103791170960601042269235741751472485157034509619725783480913936285204700575417252665593602515273281030018338298413041369387508717552451021455262836860588483337205512912791839333485509495539292253688331540503085469143723022897469820080744066583536197601132961798889202253440105118416027817209473422163831259880456126412638322858802142205949525098748019699917929336228124185522196123371959064394637849803153480876078265352325491779381924787887101220445637315123879079400484881785875165085085090017922694414181415453772367966008591428262362793324931246581728866588814179682908443433861445064983291455894363069414664993571038584720668865294282830739567212006904291738787016617431147033546481659030416337088198268220978286535989786150188691467824552840417457669526588157854060107273502831975728120506688033855654026313372626808058130514281138103033074721769248915252014413942359451489204782939718152723820257292101498575662863301634852627962609369935189500471997403739662736511843240632161837379654830757626030349892847582867361751859944819593935823217019847672956764149417415780143203042713385631959408346402610946116933753357723971715609951171473067461699737547790546051236095445810859183485755156439244171046621676063873493589203399574210760688777119053654442509183909678850135246831298474019512341551347275186070689987885328621555099649827679270653134897120627654994663456949871185977559094591612516619308043247259631682457863870365908124352799539237626520941534378024082588706366642437928960580071376232073410628651711251933881951143957393743127987383902702897215475886084767640429634580425408656683514169053603649903225051173039223577426428341784041621959729363997796578989386544525778064646026019657304617305463882300734817918860389585614560576127635826965127655467929398400607147780289764671036297991826263433885768298633806890538364883651910922745131993769786731977688799191918357829849436839613671950337493706571228876579470978405748755292725042283492417014263215258360701060687881444808587617780264364159304935278218013671178928372953086933087094927962024913397118300601857630970177010901044486519669140206346797756177946536101253718365839521457548029808779702680061679523528404729282253533323901261882025331455158823568986410731439398311253653304571037902252456548956584911858968482050722561195653884553849243875266227975447557904402108508389516354855921572803412352814389564997091042379825100497905520670202292159238186050592647048913157971154774000400643168414725624575031284658169671406744386908093300830083167329478598357766865595166778603336337559679731032052412448496987582486063338259612602981278966016509530563810634562613992261354834688998991652099612150079827891519889769543129866441184055406354727417468967121844653790944047364135362454549332878761092004152411080262105221489378422085083772086472997044699216232040113790488086528586814372743286962960286450572029368680093057791988298506141584354089525728782960001810584744676887672686316885937944868248901589758891691816392194134918420062521614862787176154417632385037099815922184412032225687984555242835912430938152798008918571644041754612081790011807009412693731841367452889996878302144212756587302804156922254516731579841527036503583090535315361225145467357062294700871534839115637447125390114789022118909956378579656392548438522685002904162421968646114422455607854713982473139493002974550483606381313210087572988230365051161258321023649199064427660220932701973734789172806134722553682140875616973512193889466991494638983952022745802376133307443095929681103210721158193870590284701669591054520343804385932817587397857663815174992200668071055882594101266999137393427009470155678445598133711858498771242889285009268764396479143007701021873836945023971307309331316999234148190527997551396159628245342079050808733419852211379448928253566624735536569239640821404669859126664527246462532387172892040163128826941062591644022461811075557010399780131453914217656069328201573353482178255913286279497245403213437787248822108443843462586009109168340350343259330613528378778540301392127774361436031261314883935413953282978606925147913078034596699991039610251721469007189027003029855712859758921265529190637728403332281318284908457857595963715389403400904264361858185307594209774742550362121967980018593321254451457507075268077508570859507592353379353518174555780410577312584713569505649270677842765752434612173392956969140254028715310528318595955750051058816786374148974199058904933476823163586163576005385728497019261024775074271570255657019497499303918617197338351384847594689331513754559371351332676905648310309019030337834352157258017366625243835620187532376203764991548681148034677501261383901153680273903144733030597974037880272738067287533780867393028712161009552266494660850645801673834322071230153863176524863868929977052310146710089111564681390067335897538244455506295892107052854822499952345695858758212448890569473779542889465085297692633093281453501861008443750623292265152079254949881533772626329702186950708841770476080807715082046945525807858064032785161423528771483925512197094399496021873741293389355443111474015560217347541073595589049985480416811195834830358988585310639254191347499813795597169366752635221592372557170127662818246206861623336838496103834129519653099631296628937231763333633633537145417908005128567324605265464241058610629678433111672649510898793592927738890354309549011918912202261824994974982235167430837909767645037485233275674410996358653615368114881745010710604269985753495466114094600120409007384193032563788182817185152903071162673053215070426312632111002966510184175557311196783214584953322391176314229006551108029427021707139380845959186511704264702403937546958202791883327875333911767759146796449158277125332306613690572699924641522613588157457917677954277914598225783798646900112670159945235766800442985467563878367052685639905261513057637207206562918657869957460181738690972726276658978147916521685040373207265339841371808482386799107050596350937898701686133633996584577027689462167532712919258553746312547262726157674576108169053645453367205193177760621871521524241566133585760419825527256919352185484158699133310812644262491254022710199233295561654689191892037108033825042318283252042500473917264807632740199315301586830494237454502305295970067307604885459041230026344169777183390370359119362630593182419600841791711262930631323870062078501003775694373218994890623715077808928607335889306561206840264509060296939588814891136475351384329148516925099154355547993501702972944654432000495489248007789609446192162232487986688115057034258042603134577534851346087916009632894785147645948270231466463103697045438608111728295233038239087239347553913824591214194118946226371684892372674326068681391894710546633874229116265566115858757833978128391871264810784178994982777932824965638126245555738399428410403299423928421687006493360383373272746292135683940490711560099585838884390733165365078851120193654033116230636663023070643795122328141968618899835845616594312363131093707055657367013803376039934430814391668326130735788763881487630681233600231545854498948466663533865771737320432493987823608293318259455748952290800860193771800119387111642603256901923112582410988232119062380017420418357477817183518230569055201260107780852427228849046957632974828230590998282633292141779143855305184445333106737502064021155435629686393199982381578491044025708409803248429103427098817103364315323726702821539762395504364872122654771231691523161709113618683021487389991016681273853856395106429170223409968374755579528777654944120073766892478720159811859908970048235247800581568215197276590985301340851449166681318569721373834250187963692276295424011843534837320174705666902607960748952553927023158342856523567787415255171240143550213135123254136039013208950344815226599330297693975471306346733122431319651911337296412777052713409558540396668829279780238638053407906924616149720726896274518283465627425706231363966060641375864924441113539936175685009535962055450571615127165958857899312048481837397533668512298971215449588176315662332542271877118340633313232158478117262025275200464781376554641298262929462221550938919843611179337189886060674709408674919367111120512009302860957675178985844911065626719536456218700259190428003256999212003270518295933337093388346088027802707037893538903555794615475746111847661863518968570759382787888793528377445100693467661624786321447929122645518121608183296784488017189327354682239201591217274957122627256269522279144056158621713164468602389388198707377343912196075401920621171581499161368524714092724285757282809695319878117231168969253266507362762875179479740534274233960359374766010152542790199586476049735516088767548870811746214086051670430847793371356451618576397322938571008137484233080353930512908058534954999011182206748557830727225792625339961180261424848427352384373735172695109713646860808977098588551449827542939090590975786646884904049694387443835392951236683446821561080027418640464835041008070948561320413641562873157440828308017619487155695706686348467315711128329633177422230983642927234748932600980180211839119889807213212654502570843381737611363409060489686179575593874871506296698960369721278534788205531800389817471434482850691972599823634273974791045813091172564591467120552674099571620518512388723387291260084144180183823914260039237451361392897451364991991472110541730522567112429243152392169771907743031351839409732795322862137060408489969613558919183396777138055468241134818284077580098020037970710944257143675389186467008781837133434214161792832768561717122003821250055501227319223456964451316356731427542478224827263818453988769962203577738339376812359162166111263821602848398734844912396961364479248842564931494812916333394108526494903592321504760365286066513015167697784730452517223796902171047346838681206700671046031241556372041065400502367170083392368213529455356370881577982309663319511750665705748596408969697536486281167203115018407182409240278683785425385440127584005080099988004745653995044772321256310862300870461262479110078787283229724875418283311873335515978536188833587285806321557379953312436405325946743356888872484154363120242666689625560402035653146445521239455385941421363619528606892986954131623341621124385888652467125357511315941539470802038459336458790191206586596259388889715140150008768013622959032350965725724707920404093030832587210221363764318792865085807494576592193863904883791212863591671271427531840686380909970585611969012569764417323632585140635282640465646902954435441062805063788673368527967098512261527933251416522497154433320951989318281799885631556717874360232736888134955090861919775498733412732136897725373552733354549422057229376316939477520922275772094648539868896197344670102342075400840558498775326142568098058221384316355851842592353399366729329041896725198169182204547990536071334586683322200659642994342813670137161858698812027733580692291581584303922277928984483743259810375921833357195609799404288833000389289448765817041831996125623031786405089848502439679959898491169205534301222656119090193350159433643122375444866550491770605289060617701362542211368310036046716332290320300872136514923238872356542692737077565423766353962945480735349669136563593451948100304571543045536865653269171705757030412875034054683478645228358059250960029374227033829888425064866035902422058276216669779407313010893718594665274396803058043075502361501135298416178517417699987118652846280974391896073051649849988169316448448024114755059611346937043247429603058060101809513885795127092655076241624451976221336933355787848718307001972563388428401474854340486714155026316091493165626377461606802087329305873141481221412453355588054240240282625706381941511505870364656358114049359026449527483330782458204964666587034760080708297414300419479262490927355505598311601919072106207464008349180595078297925393322418164425517439960240810663150157714182444694530204938772574731939235971915662434308222428657806210266024962776465084582805627165995421360960815226441705864251121801119098916705544603524728359172495082369011780426389915734338240904360733097014158959005374502581814942436057401057813337401344576039769720137851406149927888493022303081005535492360495698486074978891006018856759222694420156966198194176281410168090480822210354940411868913394277676873427023817983154792124422330771900625134180140152229919252446020040458612969862923513537465352107381422280525049317316536155208290414197965826224673470059960319690028958485663878466192350198709518438635480620465386616590945255427571268861931652741959837596359762063896704325954922393687406120158267247742159730036162161679579523603822885511121596115816418519789071831050703826486454067837332478563221561212493365194223128082478455514493991893301811631274854722895021984881581902521879183432374145629423316389482107326737194720000833888157127184146248736856709135185809130331193747171794391334043680013432573491784640108912878685078950386913809718537297700905626812961103480725798007099122281193693856076186649319078394390064786808704475860093622405045134188068739929233367448626985790814050183036390593257787272370980224267555778045695319625193620592002438456927935105845339266365098004700789922232564510575978996263941822585635610930995769650638540718079678714187942090051655057219479596408809243713340066870655047054197307543886378308488222143613535967605626537006474097126469319893139989285668484026798600009965427161252245297651692167420417324369361746940054410916592277217669211645117000149096766023449743186574252198608020641460399079864771944051719212651599819904534813849461916050321727906443465966961511839045262785045126386179801794728370119771669333434162852993826235241679322472565732289593962773332754157797567691350037274798263913037823756442411397907356630099727967995129173688022967840526397229934759838421222805847221286015217590105647523281548005618228890203886834204859721862163409537693397916555603386354840416864553617628110516702014672107622759676710629017560776177166767082145752723641558769225820174265743347733739250964652749175142490949407222824198211149625373402740522068151953984572282104618999687588957068949818214653514906093139631308163589940406230381554421906241398245077149221884752411442419252945899209026268044575612732301777589329144513612084888755264131132355169554154605632987430335778628002128587751365128012949098825772216130276559324578589535483626475593962276556307869620421538842566450623981976971329363018121754088301170166311214888491687373954108222950682930046190467602014364706323199376532365787751663743403697046843941805340307687559643510430530405685101997776497640967767950249968623367109074151651863139632954659553603402910035346338881544918999514670764087662517122898109055773457885297622012750715984950906483291578596024617501012091823312745369895532291929957490287227865153893377032663192930839209189031591891851627400614525138336884701879686087202720235181476032246461969301028454275131825559911043496174157937320455172008236388184790313097061032039557198587702780842627735936586188102679826100608067249390079134111054063944836825707294737526656914257206361543507162945204337431479087858872144264847798021192610381722587404555363021323678235154688226649594925837796706658226644638834539434230239580251109789181486927738841398643004735547789646601025858877844885850711179609196890555763094124628470200347854770980536915226409334620487151492717584546491641500293433720662987831508089076391458338788741524437023902515909404558738441192531797354445978097604891334325045522627930069610380884174295040115841853161397643467816897607393072011953438957141098134984248275328163744232755331394072677258360527650004901108054858694201486464640806474868453894733609254760711404895169574006414941967916067898790109943049428459165724880196484209585621066067407551947634712865227005420316453674439351982405083039444611779923301243978410438094981703541390590292023436558465519435249422138554887975474381393022618588636300253620414518504732600671833034655312148598141815299921407004344065598617133381786769831217640424626497460337477138536123588148884587399829516714539524364787667742431797862307381660196834546749432565902463422949983166133275067761023463228447631108845962423398958890060854495610326062584082261408574748029816969245534103435987453383306583074807601534221038186896699651373391153968810848552884687513931675406031765762137627697805703628081436258779397922452361493447512175757746513980581138292663075389257784402704830452664698644483511882009895782295531755599357187302041327327612339171434607655199233797927180750858176610373779768120454157822666478221363812367076529269263082253468348420463801920689113194581537030713275810254322691420432030408889072086052396450063313616683363381667867619174310252797915561723982121784205759429679289582974890013293850200692235005048752524235618408860326601424426488201052240860847856402514907006055566127608616406371733296204017079592345812637843357927038026608651946639006331554488649854443235590761330418427613021730517846240841159976703852046645367991942868780110175996492713847209042943380049058099744615598209503887943766371094178740809297372063837885413311392288601139422327409177774396532293899148953518623616367532940263744165357402399903864575924087041215246659764280459101015541646182977438101551445736163512412081698796069060794947207750619886147113936217297202724643906192833694045235459889125380789897121769004795945532204485497282405455530862934207773140211303713743436883831863659221707031763674952856847574008857086899964115646922483316327878997619903867401129202770278512667372324330288153430532600599676904072480320438049164570094283701473458585428712148203748402614883774026456155151188936658594624293165020036099925260424680951751139474991203654071526539870011578873378550433547455320918366402854134386587109567850223681939138570343103404335626131911715876919057311591697777718348505656930130447369159942376859895079058864425373056689514455258898229136158721726708026126807106600281567221724214775800996978035454202062039196163317731879301104291014728264701831024433754194822216878596052549118427035850752414450524926012310456278662149804103179478620884006382605523441465395708959303209502007192775570567185936881881506741141982483317472231575057658988547660113974356802816433997002461759830913806544163671650576307879164695890296164389126787882161050654472296678117905780603076240016487901248490923610043713412582574307876495433818422335651505097690246204664227552328410861687460713409117373423159960031937368114049595187601528266220783681318916866186318290479075388386284940046739469967219189502441781115454999952604631207804189382554674091870236963388753957817689464809225017571143611845543380934451684099491122076954805624815874952739590711577048172175203707220715852762351401056264474767659102633010325214729073936042157273105549734338215294891072705729641815678183397343327642373254695516097216054328170625040328271562951853737338056153299710584431848843717137004679264796953091191432980345824873927165002524559608036363159712301418593852513974926776728565075582815809634633131771679119698159231712562680963911598902805908355984940783109301129735068807990923055509526670735076698746174115663557619558942114337299945401011274305303719958137966172514881766041414083431334453964977312760871620235296731194410153455187177777095131642759243457188923310306601579701625810850219624386685802818901061663962539907272889718720986262902554401973333551237594735715567511551008802340883008162715992388013323486176064351820627445272403853946389963368550065090989405880792899362393729892484839643603500758539586678776546223089774184396618414119945739815398231880759824364229921742487824250456828045899939730523876043380798844976482913345910011339493449572580676567392255559017288393482806195897883465996956891025332962729068798639358382037962080651668563293921205294703091884460399020961850195972418945921556915361338372863388076120702529526193542832638905731989144585638782027982584916154540756066928827099774715865948085318107027428834108337593389658881341169265023671168972344371488699546988674370965179692970630679634131739105256501820676152385864440988534543287490385616616608594225469096456969202665719788865308863686769108154954027061263055054834232788619975156911964058452290764015184284787660615598602933233374852798798091191860485618257709029827992250780363547421247661479937723788151487624974631283775735410471360012277158829428298337339780761280358940684531082004481391042093062623839024664996357540521256865323909286072021198430719566302075561583878408460163347781507415307655304159722140698126629889045920553886273797944100253091689281128099587766811226001896761424974841660026272134792526756636507802515669093948600730242464592652438180938233636031959688091141228466248707822218251020165755035051147716332727143068549516731079612872080489274117523180121414963423399767597143279225534456543473147865900565479883576035173871821733418723110356710654818395794269052672021269010599109532839963424747707817021342071105747852422851684894632360739561088732124058161833651613081416219901599298914480941285902559158004974941354315475052838996672872538691680596255947573906086460992346670905687729714998578330690069079796247008685094115875103155850473565755405131117206079583323606765214571637741554613072583430904729513387283231242259121789181355664193275226405864097427593243870382365862776054395193505919654433698288359784177993722893613826123152863600346584678076771996038298944106219180061767875113038505928023512657126386493940407140895594301394054924753626372512612227469643393739618246130641964566717732187248124757981145194525451006478381995030016362697375883298102943351609366825039724838065209331697810592537643039733491661054510046112835217108228275547822840633053417514771922275019516795630160430348055530960474451055095850552188714406630790231045006469672529922916189265607428912036823784662429635293850119953573436103504278232837951139646629092706084633101107872402219283893174821659260979592704982265918480036168977917627851012932369072202784880777035433348402848593541204396115123469017016992475902080732279206500048541326616524434515218931646542598183714199581110159732133144475979404280204860832558795684938289079750374929827362187865406516222564686486285139669716581780857826556136255253290819678384705384567900699713867290299615927744644924594358665685493175527547260812605529060500155706668543005344857586709680934389781821667878077796339699949284514567093025953501671414349627424523832760297020840348064723154077763588004169880482019264777052917860922584960533299806607861137438724482081117547866916083501927963673022380923597705152883254224067403339757207268458927123060037440759579820761061294744983702448685785582313866747468335105285273738758836087599603792019965883946205570632326793939382407898736755059517199027117778291324829324645003162148519841848891626200385197063468076848169068212839304081657724047515382952430454892502383293966036855993227096623019433024262645114882419366708872921621754563596999466463513604317144668775375525940169802527086755117633336223056085288714438897954865578037955867430878246546444644676544449860305877584076668937606754070012738563431344525006455827127944223587382474879988437818666363809613649193558099028391361581039968414695785725567885034221207874659435373121999052294162688935110929734370951617332078411906703822715840974467731198390353636351983734877539619851094385333440758437462461144149353529649795050945003337566714327222835424839286331520052426523336519727226794142889732123188859568455358355987662439968247244076528677351586177724818354583794360423478722388374083460841092616873673613634951723983545877333533165741096648877430903424062030932147025890916977026979925369779755918580763056650630100053138504590059256112750570074811648515836609224304955283685892170983048828033895877776476847781336945369165553654419404552003072246674434452328380931172929745390684071623888899672338076646852288080980701182963359549179693000957657142674545095822224325289713142902894556293318644573983373755745470574535492241331052904747669116633532628261054451142239107315573235115714491311223820021334764412933653621651010714397608789010237371560384410951728055605615112775895136142556374661081079537357023712424111749231197101222713482287094993845238593201869769393017604662181141495485979917066399211506523345522050710159336712911348680231712897755722983472363407534383480396392535286282542948643654403108644781789868446418820116875335565855234695162897815712353779378910683680471346328027592752058198934295078463544758374290846379122919287648611929755341044388765506982175435376640812550046208873848911773069773305460090720700566177263245363281327026086210027054786577589266731315036820142880836735299522127513147792108217207701849224679540196231503952495096397213767207411649344517880804478742448631118639856643998568726305847343613057950346735166614596048689991219098056097277370522865243686250669163070928870090957072932107266638497673870235172300997757740040901660150455273494311290207331905019340036928707886056126315217900772110244095355225727128647377292661891560739963818079990587469076100882407386604588089184991177142361614936749516409395778754055799215218645361392312213916347463490987840461021537750177488093067532118580245655762992608975843857501001062634131354838509623003236236205641839928623389185662441250204135581683573683162505258271650823950269599452402701634837109434554108949561591921984413359755727014997808540916915917083537908469214698601167520098079132173590629659243485432967105777119522221612748823690545652269611845271235213179823636348794157373855525651599581708660924579749837020713051440472796062882766837506963616969787360016950819079726932701451199753002939246254991582131953266597379513780896605243545601146276315682514449432588331328040060233284203361591141426339081454212598366579133962164585024045791813604782945955070123439561044232103967124349503535455602878664109235425170626787945624820225851823266803780910230894970639299685743727035233970955533483451070304187208163200840486796507727858504264036602982183135217506832552978841614539034885500976616143961492141019724497456389861002480204832923926248446676789667991827614126460371148710950647226499955433348843810138616677016843196537738764260533973657498900966069275653111763543408352068430874927153929589475348053869614152343982444502324781565944180590960483436539674605739195769468907684328031285320167145514905458667833840742360752630482949016828183903055132883601334393260827675628566077817157984914094806551924350216822836794938390355815679747849409909461126267218381720963306958001160746417843356479902774971648949118790876983813727620310133561018245773297290423449625070776018835734241344898931850857992046133720806603156161589426600605228039510941139415617430320397360085310185824580357545505171542483196674378599265950418782677998165832737558824668632747938536573956024372235455343435439981079250925224402061713959769304011288526953441866351351218608685513985313052275351468071718815940408189596443707303804294468424704787291685715840007748053781450787785749891315570843672458019861469779007806057966614485085677890319618856644894271545438967339587149104018046799604702038017089235230022850562995650264023894216603425024238048668666815536692700056954107171737469377547768103370243183036249791056724636745904867576648074290649352907758025226524656914971152783620688006127011456044701774528009073218002693307501741650263585610808039452848515505671577013386204169497221681931962628769252085089163264060750642241418517334166161196008060815743229338015689259272216143354028670454549853034948020383038033493434342992811286786428499676215921329400316225279666030321153307735044632419096104475083181607528578053048894082600499182274623697977168613405958284101445726522492169007580425860287264871162778155621405307220591300750511985430172677866431661771791412103847538965022016192150596548223580422621638777549428127143818398843394080746273837365990466239763339815129461249140989497278867399591878697081535289028030820284787886275136742458183080361267943242220365422064666447825856529224643335630260781357519609735027794963123883243619575644913523296474059637433314109571725035355982304952385286031730256252985506918864758531283045973133176318684163274986963168087258781039492066455288864157692153677463540812608341233728301575132569728066690086762287015599100277443250111591918881696006383196875604196407278247866622935297993422196233166414629677991166241152789270604425416043525453243539421480717064626348994176956408676650595955754208489324996215722373411755270200134099014813108900460892355170208084009371816149838093340010221910150857402396184850076827000468490030391950526640148317317362513388749971426046413970129771192776870954732344421848333531010135837900633901399155716617872983000040303495531381914578476856173480219257726491571047652725142748114922266439327525639864554603203472684869486600493057009622911558095847781933250963099864723067311843901029995907061418438734654065944321889475744870994221870976796300790425190049874581506777354821052730672171045699314707522696461288192813648305105555523090758506824955435892034859615879323687828659773509522314439459974105021311306907991091977720561744934403526485089453811118692209603724323400095775463450122153036459702816296847993333567340887767811411852986557242310089426978604791359332582785300785292576807378033761169090923453484730478398659196147351965680352816293163024304372859636155562009868381258576506319161117036640685489459884044118219734349016303915753581265481899293334843458172987549056237837553866906341767192219344207250271432551773275802548824293843475595000326945989478396935368843685255954987426170131926876845554455992763503364113886358990545688073478547267533458989187626096001410145277005231285914389378346376011282932800665940434627061064787967993298309576617693217382493809588340805827153688431168403628752768857202189378777265825897790848293253487165956944659722821228857915378663709116541032881273251242026199938329330342854733554110231908028310311618251892115580239027668577078063562396594627136252562720113230932300419846882056493483291948227782532278310800131372151338245587528728537823830891537984490082789468729934701492330075763861690187425514162525608783752859104011534157229789662063464926440927189201697333447859766496933452459829648284005169282332588463115608264028080466363649625882906188225862523134519543810774141559417037041002018048661813052395674252459910102962327344346661895349422738407895989852639718816158187011371371587325511024112129289762261107851133619842510448457191878722455872831390906188069887370812790570800903918672888879667968925692379634241866100292172761898320063920701339970445858498948432844547702088757445793721548385273840184043842627288309169044437755221667127047970520154471608740124601229288645736495154217572631388846282433620733793684800921870373073249468121639994878522828790061002624590990114460454074406093091907719743068648889864461692300915738708296790139299824966673953804536357225202800327871239065073306562514036836383660727763646287207934941462579720385137646515160069731264266165012512340651914023125696853874695896298864213140070839891842150052064268051834530898330981103611681445415527352206427237907627281076994685644162035078327074251234293621462602648351035220694372706588277628686747550599686771233272513106517417158029708825772743765302063690063321696505233563596936989403664692269233376565962132810290815610803783894633611656863645525180618287992744565231213624659686379422868489002033722386796074770029586893798170190252622282961418448882414478344621170427287871448626180249489841007093473727192574123303873536178915380507144959561405911094628419728657972553089360205032993596568678898521666534320530848483895217639299225692014636438162336819873000986322131724581353597510110884405581467439729157348984155183235547000676660534467315433321695436240713815699480340200328404373548184255999268732943115705693085777210268667479305438484192405458409485141195412413353555060069290228599347935504603115064776131984911048575023977604208034175274570599571484249995491608632073439544571032652263711991802450634283083866038062119088717100768449620485514923866883897010014788059864104001636988857052177895374252731021624257965511931583216266172956764545347015399715096364809062813142878444188682450509479246527013747560364051915539905747843867376876915957463938603153727252624297733517236726837656944699574284898797793846174750962605685318926693368142375828686631711697829418493519359247567355854090172735871802337485698235286302097388887030344032068952210194828007350908061994738946733775849685968651942248791777796961696306143645499259638804293303293698619510370775587210324609391659571849211711960621016524146016924840722316363408697341885836831192276953273671779668375754946031057526373714423347126678959785444989292185311503017461501987293612233043900150515363171535564622365780169062668306884754448109231931650516706468467783475384915147060888959989813244290838203852286349765391708985380058487586657894953000322316724325079709336021279215685091333656979395471872359670709984214504783265765100757867248445800818262134345530285739199151099712303700784820359925592340692215546050940938514694387191069781425833412886888646780071721988210375485730956647393217271470544821656564243337977260237655226473791737953399966505954040972672541377575351386367506839538903184809044248331615957061748907300638425103041136277025265255850593517462220117419147877967012283298353967228601805841589564285969584968384029220435412609742694550704358974276308788591490564615904802901809892102705523831709071204218534106136403187051157037810579484040307489205618651801475134153047736696804092217116758637071007990494940488349349120415721571891538380090052370949650853148838098483613744026122480331537548857978652121530634381132197313900136059318571606066236616765918940795224277963131491738340482140275497160652173464779261022603853762838100587731740605393158004091525900442785764112672999755615263757633490610723523769561473982877813023599030835950562459129710148950323839664937526346737244509586860629117278929734674734015671668890410356747472659327786871017349541169119340202472510700361420922762998627579288934803377860163359400404313792395754435573104586755949203222413404673012877552209949721819371971294890133287206990693460789842758664397452459639437984549112514341020703035445811226573305641348059277734571282745719066448724968007420538824576005520907711007409545510798875089320693319110983963579632261824089271448871839701581221048995469664814494179054965093878583375420759360045271996506260233767942182276799574273856976588446838377492735108172489156976265258984597314292865565977314679359416784280017652244939014485618763038062384533456574661912963045837795927548251087801504242793070495365826768280421847310668440688228719738258118060129141438078572007687996312922745267062107552975478716984768128235180196952932945883524859013391214813588244528173262589896021120317218695963783592849300213800568010927122647065351271893220723027497568243268139888481007622190880147255829814931178474461618542829593103337162051733679352576549305463059095940643741900957006491628779059073365125505073602039189529535324260392978026834487846351632250287132911178734492075104720535059808206230435143427981891516392800477348843737074144543889248785535459000252235162919966917552551833183284569979375664213415491357579863169604462136775035866746597621526267586153012701036296806486750033288829050722267154627776846635338555369318635993943278385268917986082996914525434085253031967861789328293763627139245756071038893530892885928939256306670392886018625845426238547567988634468845341991729612922638453642660122032227932683489924412469818747669963060269414178128945215592734953738237320906338012907106163465849106967634492897513494437355817349966511451388960670914128131067566640462975634133954548949786365416234365047389839251594486021627248867452781030533053767930412716124436052536911472038903628152887318559013215768272589131971884221189331088699939794039956410837709393481124139048070654264038934742949860760125683664341920325281527054403384088972724272951892574813201877369572725460999133944113003899592895395298460476790709487255219783907683920512963583953725784832200681887884857826031257118041238742699510519498167947639956032666685945595573652846781886676667991740052321728651198896450965358098158736487520377033839061101369091706936935904755532657605629862081411481227075274042964520279269674428097574668297535440314237401396999504292765072501706499391903555170755910542529787128756068339472184610456246857554077744962829915787393729129497770100516468049299934439484440778942932790970318976889180593955893698070790307286325915997044063869204617059344975873795908362230508647865975428712480575369613924711689842106831758276599718958868313373878624880576318454651858324682575206101605021472400239795573700002044109616056906522993540716076397415014121919323123449787885348878037443931888523225557217391270103744874645418563629509987205060730624261647644425358205951775452040779402619033297980807920735851723834871958672922470625949841549593421991535028372522336555114423962521063177980429464683214376029214599755673833725769723331827558168042561948792741545916362188222674853844856472833571133190547548354803476658300403775694473026335864387856312853070701520959744505261535586634238427814514998768330426020504906118444045911744706744524342230934100491242301434582739586801688778172326808970172265746662836833565980441194865487261667561732205096533922254212471653879573273025459701337415260823891900664988996025068652071893975506630378051871473383309591461730135809786663315249542258360190968165945425316353070757862949212723220341450392424602380764623924921660557236788597832712655600039003032657096624669125940037544784295182108618267193695491175777911999518543660509776725596006831104950404165956886121357302620952073375500617198500154650953540372947829397011335471666987574552803701895336668922326070893872746307238557292411206857941626428101549259567135051444947611028428808057820375389186122544860216225210059179797912092865342288986012337870090173503854378132824333512181457433720529435679603751487654138430549361857003292895222113555385635684930421344998311525298787413855806591750217327584470338679005344456857451620813346864507751861390726147937582653468718402267996334204933423140544012252512738291486709202444652921952571387247873953209971051805882736485829064254871063549840458109186744282216503959802647813995648800965413695647984700764305368311648269570063824865301428074663886590547535724704783458378923274607727245314185675510073691581677409926179722464846991501123204654068644056291620733625279364295003674667715052985404909348000059898873938097222282370980988056012093672463568936145795014405890833152804283173472739545570315068370611841847725242710054206907732799767418652526221655914203330986025810832649289979041153202441713303202627498411434988211950235327225716012678735316561478975714759192936963897301830981671398218067526113546292548523402325836927012668903826605101337486633876139209589935011229743301865861346183955488320742247375023356778561398484759642306871961149731980198342336051175230646321487118289248994717096741692664889859536548515255644352177726561952805291355919768690547019965723132812650427795656828351243795835177864279792182960009221478546175291317254025770430613497409797182434930035154591232573422707255211654367558608296335065078594815077507402327063506734624351203962752372750033641146725528137162175213072131453855950848407443308892975526103572702804852502734189965965763550706894567321902206720669993476548886525612955000557589151612134433146622226971285969405700732655672337668755087582449570853805543713057080778512868859643333129691245143075957149892833557613992173566417791145319021692545563813607804721368043249678480690681181996249456775666713972651228612599145750808879608744944086019269750840867343918022902044954386451841265849233320218624014664302941150768114689902703088698691268051495827030855540190770904913570625138572300859032096391318826442010697752363389635545184467278693756153348087346212008712830631655076421913998160329507630140643849953850377100860430735902446718754612862579320992316605256636857576022055836030487713926792553168543868307567732747142894826791340811050919602396801274296267154485291139587295086501819865988325004053185355145928619572939149292722071214575094640013722623800374944695884486915997112681252661165365515905007944855551914324964293923125363443068268024361181866170774916063630760170423092790321221205261450006127712365137288886657798192318001988684585304182503799626821181624622408184273731855000549329258296737724773532987164195751879700307243668202984124978218757872272289795676863814536220288552792796901084758526913430755229993444716351057925098810058888643551826925742879045249119937319530428572961805572828766007841555072737629053388511668526046498059847537041594447269934319621046537346180961854650775349937773238906411475179433717699498638557854347067793113284797643134521350377451638059774274818251049621450924799907065500616328050966679689356445394687105397756041317829832220880004567252742888449843402189674700122892703410165555349205293196914499641266427825650083647341428460076008100504101905493463896610954669382389414849503155430808906753706545962988673978668110326819896735032632284898763768451294630651406504647778439320512671554777341597134684695155299240407146739322075724809564980058371823271968216052752298738331992398124211151766401939197977530654829803800291406489624083970010275928781835559246401246802799693428236742861022322059929687615126353296276071173227034495815830339934163471964184040162172356947455945486139531442097881005623421170001512846646633555625776027109661477547632229915509862403317858917638305602114971280963740742560651581093225299124905834095106930976351154470207158329474346378132120877933641876324379335626045892972701781873779248455402451604871338038875930705278646695299116148767510217486199870439101460944909772679064714034453297671085679783041092720086141948288157276098353605772398799714166815200942732572594593809738759996481185789486396770538524074087791770847149261822254820705457889908851375064919933932910384479289635394887636702878749519277680042889589066922487418078507912752555288115971649805527070059622555930701694128620830526303491528695972033075616207368870791498756655623298245046816983677970562308014864342945489032769180685767138459340552390941627912700883087041028203487310746160037851885020160126335437518424641994155521489200458187536920104739623336586689291767373961627062095213237614122961335486111486468950204461713350829100628014703726287340365519787682154803564958956333119066769425463711171570961638802761637309504854378908978482892119821770250732674489942938530604089116226672131421568433940411895654486287531722214148687632014747371250701164477268649978376092097919052165114654503182915103145766054748206380596265617463216828261238137440758464719030930506397744398341638924574743504996471960257037693684728063660613983688320428441752318515713846157276247159632622191317670278300819709511922389427366124099561397751211856862468924021188977348809555030996707337364557833148156743160872003067382189160880670379239461715526003057180594013452109576450752760967199320129862081017866444950566358000097158205347146806829765254529543946242304850828809210051529579995670940347564844296454407701400669986696820561386917940315757123913392713400057052793376814853632216530255975832920383808170137802731689553670911775882338428656547065460691421886885785200801741176741326673135368034493961070657109538283003743357678485712216204562214864334415502429642394817201020415259624956354308677589062017784722844732860278287989966730178100617189507705128036317722600998422249961202626397783371439000122987089873856457164077201907319423583367578389872253532496616001985883537100784432734984539321877659325798876538082482545555102732517182681469888363767268172392749717619131542975243367670236528977642740075029228383122753006924684926043084458589068432422580903104866034880399025419002188410684843103352700883210776737576216825087685591585032245320563132367894476413566262750025225372077152336799863859920126060332038612063173106388897802818453052066414241791534265153320253885315039411288755581807534023086730278485105520422020813627593579519687848532523368582903955341010025825340813889226062053203186858638554377946959980108548912163780140427244473128912174950579903461194881998694600595732841127564884264167259531078354346898098202527702788415446701771941357725334257041109926556694409794026079879629921074480307517883165466307407589222021786766574438251152889750058427106251505079349064941329427575339230458714209721699942539098665301725876175907741313139701221307089057422962092774850601328342026497925516842213335264995000873983378944074467305253402880761238450871304767712008818629604864570910858836435543281530193880575470947147337199714878776552356930260327019557008624079831548800338864004809184296065466216827916642878906451205037919857106134792173002787451398444643934377232675609366935423336083435951361204746237199269477870102466584356742869187410253385841774680146309565778593198951201053842742970743454416098159708808786519853398956904576728380656561451667069204973479134498403102604551653783926487546772789953382534572177036673248703784119136132395875322222236425969428521947131142711689747927225334543908260744392715267496479393799981101872382882766115935596842810065041134414428595285736035199836736559521485433436570414797917457892142256726161624208277416387090504271388433861728135609978442792498021304696581045015723480397093525284828214695480604814183892228072348606616632001826156812636498709405994302149291556652105277891448411920156219592165272366534934386416706730677139615248004835393151673936587255562260914064325111965948364244186038390878575495175735371603368552607189820300680968996946933465786005286366152400285345372463093286321370659337343947009895152139647466151102712324479673509223455657624511630586044307424377968628728683678975429223532942317854111007814573287565002434485887875660667156781248255235355609712280126214075403287640124330153970370213127548866438790940219229417131868323146210193977812356295604409650974606515272583654134628642008964830824579027221977160231089976595011608507255159933863199001540185190590229056227235325087817697601221977656333320661210395704083284710629938543952334383953636319896370981634649855468055212237243990654001223916383264522569178227356810960154357741377413338345012494647419945401417431592542204350986395869738887639967566096009478188480870334376446580321465361828574594132101187509982644894814039752244747505235517608672774804866140001853447663585884082858546152092441658806018754796372499311686557272908747988876594281881382912671650238264401612818285114652486538236340898400024713662173616364811582403243607350706822580309587738506629429852488102211912713058181941616314361894040039033353882419517806347145610410955137711902569333148976798984985408998430240250268329301058739368921543645792419606062842825119651620865507470592366336348146662029964665571194022925994855065669609489848136507323558626158472796986271563308390998666824311478465529835600592050029648786320469672287617742460164436607265621616467747283745179674087535094806609797408370570856826324988586713770418942205064091780803106820558602070686372058938710043425730744772273945466154007027166945435778521832215793341982727797089430080660067425070416990598029049725465916012648350920309872118958591736258090009021477926037607626284193221194712995700612310623860786032402223249245867006219093230084595712737288178421917324776169961586654691434321474709769912851475967339797130106656226136837704376146827169537114209404422502762950086009874202278792168074641651586618031560967901972430029136447098334175111135816101243012368816340598236800329422278528469217660800924563095656961512591465256005025231228326782534055463571879313732019360497502924318774246576594336840130030850449444296323904793675096969259699792093154724126864996328682988378258762560203546033263212741679330919733051478725503952005578265117265993956024507376974024057041885976670939861110260620885599144509740224933230486972446243319274786704344494160930876768332933545940453087385823560429311770156728147246043143321839263539398015293867487635221128714382990915898056350737863202648310179601080403917557420531848531678228221475601020770259544579902247860785059361713695080363922875695714617072253050669370008366876340573777903909579850991659425995750507556332963643280369615032616025759184243275599377432480236356719549899338779531716220342011161431072011466531057711139268086269608305883474947116118250607716484664092624908274982402135423537893948181990803972635379767085392164734601979243088753211165115052401841208116590382444729331199606918486132656346933318123072417414148445420800830495018433560421441079178144076622221868542704678938204518402476828681572237668811128089198481801385214799868511977212330428565590742056810404835538752099263478852160661552661422394836097971070668625484117487317344232333342050701088642511124161076410196342103447871150761315364753335581886303723342998991099512351346447344160278348702875900548110241687570543153124969357657016011955446108817488149697201520253956268707257717363338234757230221551392657753021351025545236692164030590447431333872898860296104249594646646087487041846731805018627854233445354226632644912006334592738453926553969755757798731761346181764436346909461734346518912037200176429021007853652439434808076595124063517086394965080342452810871295811883803183599057490773135846313632341245352687509725875715218146151837919251627331037026485989009827655874639133010727678463938850766925476791851494209440560707219783373159135483153434423976648442932027209332102352436642027264061119023454899241966659549004736491515263524586078297990743636856182167728983562327584504535198044277912128391390541829151606568859460927944407306974230707015297423726901249114284376448641350430171177676323527818139227084113787741846876357285414361415387313824273604049194545174305487311192753226734383248228174330789674647292188855692501595155907680446074198102910168036687543573427281893746525996787816451048002823672446160428699719012153547001486319694869987246987378210535731955160852053989069888018386024627191543376214458269358710779802375118024875146250652525228134502379560579005621589607220061537316169585251064173941116851858798497609267577423059941262897792249567032356817633129463868394549836489975280139101637137613082754685596565397341449126656943970589343344894162710764663704108144588995957007398933141977910606906893298410256806050594924759791934149461964851087877591144075007911631375844560423433918526842817670225071345403437518978725148562193009913261831028766341686149319625341958294041079097829080088222741643475998384623529189039274760245098499632731236015739120965938095818716691186688310938120240790594882077190284700373490392069746851398233583414816738459524695197698852720398898025141088126337602011714660307949995284553958817043952809482229488196118969539901328346807587556691537704328720499340160213819623144580556246307576447522124005928494658565962140735527660824774710562313423368764756828608441829862250758057469134246059073590580142952458742144916806994178587567147400305136272881648852736690437481345338388175891505475464859006644171534936287229564586878897468368313310448984419811683143198382360011071094978986756123716593039392168904919472491161358812554480865166527789048420989104949602869503259075228068627069492518542171004736930104731745990508976830091729817929076732250078607267888524162250082103154554013344586053394783130853979960329230366728118911382306728401671640867535306956842440714757664440676847640614518769429502479648173993580125184194928790220301575118379172049955387507329974007709591355758695563283259164063969957734206155735273047815791658699479293567458563959457677056464126615377314123565161111991701452769922118177785284580823178505852291732530182254437569568673638703312518621696154015491352703198846133289590182252094899435004665005990733342576606198309401781279563866944947811308419518787424932865417561747968488735391456105298650904008287053293871686722053473751441981976427679594524003288093935039369818935246009061721589221216011295779948321326528069178133451868911877063772742597300625695744641861531510380766735787357906313756293860531274124457341692185405905255481055514797056499780182024165859515948891605816247566804537328084147490592188897144155718308517829512162586453462176682487119159292033746925156944414346372665157902472308859187069599068028444657427711756162183583082084280358240369656032888382769943160341963616224526677125146803911773936732215036449116692661722155143151620411418354368571008720474667177199722869669146905874777603526180128849426465382584596296796926062944587488533186988628716537005590163141732936892301928169275528412584345402101193652399577404180116325432449508772837943971914919574072280826146692927865306296146003678199964871914879787721017572017503194389756591323623653801310693145663162786661660547622498726420390239104483163441122844291337334378692228117470860489527287799911487811887324984316320940667855049702683606195434452005115986495153954520639853432414865586652993676129710396743159674743965961016428674034995753837121736967168370726623029760515263280641932236247575479411255447980898726938734354970751142129592366092202363070579342998956388488547213535900616963042403892163392517916972507582301216780360543650288039898836584576012513403588570724094299749938601204780499085657858939513527434273216179637821138094800693473852282505208326518225057265096259178078429275712602859784729939279958921360114255576450324879923231042128022428330025609732903037068066823131738163337618327558851143622153507938625444565526522570375864170099277289635232947248415231564475829901821574740068960973820939908288507403115348328118329371208710472469834689151743892440557704198190642128078847890683854782033149031864857629342573334690097927231274105891106425518121401342945764974560986466420029579530614240975259766232374861436807870797743927401479993593774051334545714907771990663384029849602453129648862692461086894134409316627930103472175895286867493774598103912701174288356623621174538393048732277446530725058560851334495716871890267975267037744593432053178501813653253562459462202158060783160727376273561627078709254842783571526565254635330399653600811337078137724956912157831609173508129182682272208134920144799221551586111593534024642484688344295516130876209504383316633922530799076758032810138351812616196265370133703888576877190919912902264227584221680639711371845010560481976040217034281369050599946126443481668892169309279642456383698909314830946826568784411298540168523343371784025498709169352164889920268846773013870200861149245010105180394508275924558979681283945746387593348111398037107288179229649976024810972641731835806166727029789323568667015984348594028089704914787218071241111674594263126378752331640800272845154361008655056756828568761918212438738332435940824232020548752171441295541430823246086484726888139329192812026293394229774941918712031780019966255156775814996530573697550711535113907353773304449259474703940396277773316192880172693970976772593539000561925958461783233373238591966008756516289691971030700369625655409747718755783890478560657794655621444756174463533729080655333042540126155501711143223065001241757483015905926234961908388954320228484868998924107679022659325124609046735723960690823932453258529161059732555215121637666843273758602825583096509179053562771748127528610786232214049955273135227570114999828572639117329337093684859946726815210720547786569128205162161286395609509963133541817456357937019009758565072818209488948234348044115425227606324828401487322665978961516225951431691725532244436617779699659048381021248606154348793945452551145873492635105119272217097835563296685679286210090279318151940690862553145381887241521478149640272212459468129662692530609256449583149499287275709202282249387346547803212866344391395766297687423152224263659637205858713598423155466499475963309042105680905865206016990272895887304708548356474995863946547829244278132527593689548498170135039686389948469681698989582666017628245950028312209329512257753502881758873370499636649628706499631707566247218232728236508467364324225437998532588053701537890307072918999112935521450272889186706458861964946349198803527567291114988567216860685090843359983572315991914562685888862819446344936690282481238898661675909523498361527937678674600958729964882257279076135321399081633732832410931378016581929902969622208947171111295995010990145950539303270848191571210180036229644548935016624561668360591809297504021986043230090698366261877209530917438203016399202481873778303648586718232731397978465881413703260007480003769908653276429241559571692110252305862255674298885405241467080605378875728429438292148490460266052256889208225120600524406012235822682734583887387398067573388258569124182829595858587989969919119086684513240328790718556110202892837536912615259328940184853393056311442941658089734508734969640413677238679683130203880378586383689146312942743964204213576161324894609494598967116359883279879188440824208497276279774849514520231854868942434665748298055730330073998027623455695372095510208945819316112395681149282374770301559951715134554686911788699604305308090760046936824479863522413701415664993463299685260031502877770297761930989005357463767446638654336797377014411649866681089799191130863044928565761407258862606122844848986621468657295256787438745662286105221959396678915128889822401113323444969285029467999130049857663312725064967323322331102605867654435277671379588658230781477035907063455966504656267312291516164481968302231540526793884796210263564606303087526339949330248423335557252338739173115617823482527036454109578785585109240501338703491459279501053898891408305417571418919996905158369403679609840506940752843016142336622221388063164224098516402280883473532191959884372801927849884027663349334457055556158968563439895789152982167893038820606738628020213406188371389967402288584943655011213591618285852521378099779871691237447761448784486708693064046090000034677525651468145023710321407793597425668586251562853382329308355028288505085912033692356440074586574367355412208414199596337000492035171610541379736016931210074861597596492875252036010332067210288429439738704481634746101615897142847836140166397444984700377649152028931989765837583533559320120999059966118593675513310185463491437772230079703756901871366635367693707982108945075490314714791511943300297358134143690932167040409758999860128141854713266226782099929115119901158674625538369041577319203962291271171720970677703491065685079057975066658117060737639200025796611916798403051624090812279275932716458058101782458127170204411193981740629256862294308390606252556271114763699185570557718900523324019050236502406706720881100093604398878649339530182163362246575730610080408647235575331115743503663708897271926011434035911645600197612598850561863583879770297381385206716732894664485256825400754955992198303094700799249392509234776400250566142105425705317364391076683150898206099240610229864923278176697658309751566808735416533774435037039912291564447600034845174064439730498302690699348515538164290728917866728163806991745175901852123158658017973311033600715600240094314214991209385795950819009811818282306775688945450494462488873982483426499426995479291518931716387554085376430150294837792678377529952384573397493708282224764297944986265025925167368788271327436587262973610116905942737728800303340550728999363574829109632042038759768073345965052111975298276543197142258272509480846203237497940110679981790830340346215768236944171292604140571741807852246923172982602867447568743979525123313469181107186421117445221268131767461740990529405463659226522003201446946743563265763771264963356682021508556843425461417420729462422671887761390357009290756550668964219619957065029278058730913618363823671050823898779698624895480926339739418981367898159379554079234215063208393499747467105257185685638024776916235283900206718740363403984670388137529054186031493298886984752030586111571844493454297385954373512834216197315343017193990645775186176242056567953288352328155279745254881071476616345209015271166169933774179380380980062724507201474949975825569633875443698546547264597129737223720594505198765279146347246596346318971448412781476460930993969284507380467384572160377215647729452984402069356158881034825828665903037373510073643222077802658297769496549870297847412864743354090456872055664561271996191571750756010416888153457248336684970951981382112092434325094165367893124978616521296503332918263930668617020487208005325950138877378061785646348246195571602553585625844702524128582853404833845883385445954889563842133125067233392713248507658291594911506063441303699145582365386355411104203848806089467578924719940859945452285059317127238955847750815652773781611766569614978073278409559158800984230410865303426745011261029780260021686488150745539112273618801957471376325741290620632110578327377549274233715471699117399880881330442052679911281922417676849622514597624533175497922038636290772855272124399867977976631125741541274730303578346748050238778489231238756334262910039961940632391963608173161019015066160557875246595645089180448120990076799475050402533743258559538621702294704204609534323682379616131823180378560916088400232416944749743918260059859882304791860888266029044636818084571617020943945029791391458556263474173682940611468475413624209731918630388116707389830134322914896723130094852621389766793350807297255683319437763932528301779045055146665515671965987027652059401753629896979507625655482396381957123259380237804222080427144014728519134093277676381565681821541395099722123388551506777422890438255334827992457089921081567780921731258761196947004762588483755783302641896221964265266288724246402141066329659262504530461689643597255567993421635072595928822939807158500235568645092796372513960085888926326197004095679904435660629788811368072504413810188336446382245253890535235655496996387610652510940120002372341940730847721676352380401219623409733200857180977572516080132559754318694211268922104849120763736778730736617828021620721274125996279908089415478144863098118417330186274048698526946368155854832446949041506177338975138227598494484489481549404455492798857465407774999019230935215132624257801581892752062002403154036031459028180997270132088657824056081257222359320288292244821925114421293126275140035592853193329790652756282549330097312956554442162265018125241453083777586130960012815123571427026810759993530947574589823400815685495164882080711639215318780447177404369124647776805005364167880676601676749839651327027809448778737694731645328525486110955035874843600718079222849195341250545986651265806646250531319991096814732540440423657438411295778996911991999088141294238869803024944375255675522628161226991565844333955732992798725822826014719233656797614408943598997019665468576639381944300132791826442229243770974295391289183215776619591873159565984829603457865674810437197547044579095944444238324593515352170393994094597415379597352750540908597831958490549085800739289369194464453007729254585400819794264127095793073783355298096915282535650493699848489296767771382122555131391889629484000352333498781812294638231157482274605927847309840391639974678867025617229994528630648729935892651876908005335189106987044991307505997422208575003980346112606449462181366887146578957493177535549156376482099857370958983820119747246332174893282347158779897876166294017188730955750201169736521167465376257643474635157594052766759295902766556515607176577069981737578429671861785980847561531644456735259236944659198958064658526341885038910087655385727315216777362651356353502209466985955211542228309150767034251199161204090578014444412827896430522945033317676383409612805439772264785538898583296981822432408264988633355758226428313539634863718966432338647282613869457009040608787170770755075058998109349341594020235321156657291756096688078881859609565642528694526676327680440219542152482919157754437990494669774190655354490983294015494129064982988280222242890500409989917106763400037996018265097874007811439629080643744485562529055009742337233404908413483390211888990810444766946257994316652532595128108987989838988116348589163740992836593270633566572268674042641523471561975167512255593094094158334646623582429613967872071506682002943486086395423274204786356259674132584071369595175689665704635082942576729075326373151165411376016752123345807620439509890532443754226337628514862152792294753335086083134057582047583214948845179760096440316291014960809389793446039692526775339124673816465974537705890174683433878479371630546986821086540829096387879761733533138842748730984460828002490572719945108957130179374928818666248641957684469851431357676479503938849063017234693126720284109053780591633292195276662722181408230173396255733331601280218320815080805114581908754474923172854550406901222585299322224211026059556911012136442213900185958756498570110063636618181348646933153180791239342606845755933756771434455587390139908426838112619364234898728949043375845767100495135294216293075390975060062622057119698005175333877721167505261075358655214734444409171858653762317347840132732278201006800074733024154005941997115316175325372402718051165690968808764672499464009153032651123180256910492538368873567486398863755580747987485300890750842464216471973615692213416536444159336812203969606030210273744940547399179524259962281178542521003511353019741858433748372122485788437560489774053128509846460603528364794044128745559345767653060705948420499771942652679278934831093888166621906388809307656580475838066954742022306657043946342119582903574280694263273430099376643692147731748681503881849955969911283312815849291444469865149469057151967839665338996788463238317029934778535502743020238241314747123295303733983114133328211444036275322796541148240371962380318655559984009809831175309534140075901683931610403633836845635562884780024615075995924152058870458991270029350511637145828328275625080594575377877955386539135830048728793319850138162865031792413857347780743486977134154779478387704536543808306528948867326394761884870208599330695870309694533128721215736997862262646745407743009620882935375617691916824237792512535056663593656772164566555438970424527295169206326823184784251683450389281422621753313913761594364222864773799220405497852056238539736990095160218673108477763853346871416010387737163781971177992743734184170065546912797024429126714306346140937369435170438408310830907170370299431107980798561384983344227689801646750086905010800211871986467863189370477774707809786890106827843719417823069254702273539861225790049765505650444100965388899477929110021718232995595895093733108847056336916440271746636385322242476873743535144375832620933084790462162157255945722814343753666397261452027788189451530334305525347159854239229849976108698782323328054448189062276720914037847640187765618618335270624324731985421376268129387906490345801551550856865887260012628588229816264561119212772209006181588886027825522717586986402840200338281816771710927250489798225293028209791493647828134495394401336271279045478850591782297134173734124013504617295792377749579786353102939413150877220137986371602571499195639097463197712269848641418513669265107559752691177304988716589437793911502494804180288442359183062681444968905678939131396430428663504833039174888189184489504740121845743813091537820964585712658115005367098037305846981666810772827197271673419215977931083191400424038007713644747681471825030342693851042620174931664915174385187452758904616209315074868001236708036339312746258639632868721251225159935941306182653746080943178793160967256396819652594342049192421223033757349826254408727431275246728803900999423433574391715331658160254663281428898719724556870239047064127909938171725005749100700467355975265054966114626951679517201971368669168874625948213854442979759146627960931829613728814374641993063621221021872253903719396847172403182002811083514185565780371772956384810544361588670046544647998465726498292050634403824904521925991361220126462342570044162296256339134593784813795241807366341999909636172141980661105422341237524773968513808247570029841698143054175278605946530682102855124015072727943485220442235654394529178729153711813287400971484372171073561269789063045668981404353569467169250545586359328647788683090169549055581984197646468640771684945755411569621957363622114890738322763010149134370217467586438479848787020756835478773015943344043684973805908328925936754092749734110291852360690713369272197946451558552978998127072402045015527080589361856944621096690851846460201038465763339925996143604796997453267564795053513162936985151631194719385302542448607144906669162201993251978741542325580278759394424149956334823265369019946293798144209299384234284184479999051251080035797122357338713500774004559668432721011975128629558542713294524565737195684554280819267940070775054681775875452636507370324177166895675447002593075499631505145466409442808123028548886906950358454007372285640141638335389561409580422022863840370493796895459518199346644319032420658216708513317516292048893332841941379285504545146555248841807393265099885881875796359333546851826735342167560024031024675991177245236445666176218896089967557372166718831909377390018034693403553344721539859498760607205085824042315351330237832878789602766386658423607855681599531599497228723304186642229377224606309219446807512252922059644566179772646594925218759229113992103479555925536643398703825491931948857088074237480241702717124424548012013569649354553294362736147606987097636506949613360998908905968463811318723468052136795528222235816711672844801826346800197956175991292309201681861999400675098414110410663571716637602651974541862309095498698284889756338526037368861030956286483472777293462546776906721858363508748890075356910682844131308954125596020021285992683909568178587705026511213446657433546655360933152179159346510231830597467924224848949267781379012675675992661351692072563773747258953231797972752160782860638821206980761828259160414721947522748351836021259024742146685491766584564729122788151224213093290368555199258948863732259909537510411017099553171561485151923100081448919398612911690870004432175980083478683939895566046122197952476756062317427673486806496716145726265288172891459810734714688056628801038900198260132050072638349813357591067200523196142419160635822047269850770545510318496064955816234267262000913246712500085118090703958370477878351073982274947970392303172851656524312758251391188623113020034730783623405381381555032393347948853420332117868148727351761224131083417030187288512762883614507657044712583773204433024834205598750649008694834558617894394431522021049278636960791541667091197322916730232001765571817934368442233633564712207260938264720235126247418403057766305742954583681472570809805872719434953969695619398795584123246257129901523642129543825738141310606969523227933530093473571492206409729299922052291188704528216558071110147028838739680822719606348243019568130157598921073481385494455924846208833273500300236204889043957376667903692746870461651210626210730136839251795355069395004418154043685398230112270374296187020412666625272793597571874226160951779068233775710481012596167632443928484777607697574873618253640228357614806828448241228841271895221841902402397847721412456151471263925254463011463402809920789158675475930375748281741375379286503580027583404610635712563688313663868182809063378878904384999360117661913818193715355271213079296537954319117806463472336562533060775012603368165786758935997839146330063680256944273499840539639222451722998087443499414510345439855636131413921610497417231514048996004347446064846032015421454623408786593942896454622042115799144924032691053031989248050199867203371607491844497579323037751389391402231276754164788505615556258922607384988556512134888972290541786728185622810585138918752615383891653623207124690215789480813756736930902979702925931082178201191571433091982901687784541326256417514458386260637241080267639848355269999955767410198089183260713349484792407204188408272832453676793847464603425706454462221459168774740878673535010860148087764645558657068759807456862769491829838738812790635534909995200524714740490759542348436464007918779690913861109919965597330429795021614262764951294098256050833140540387440155919400845534558234215212968539940489251670670196885660171051787974499892660861502520128907550988221771942368206357986234653822651895568941412891816491328615446082855059038311393728595947033056086808812945799379397036924547173360789179078963760815297295691192447482952164297118122805710523026590684940149751344743770423630478609874487617965228896307669594662905146280213337888483426742470242666207892295728994821376167955837556541287640003773075884979350855031745108610253355241544184340921778681817164838323668849797066012058706746365734438047157514438622489756937766207317306399297826754402699679195946557799412528325247948367385366425538263786084423794685532055792374144960614808921368891597130694929432966144089715241295466019987911983340407499845392699269325752645680440420408261773897294628805854173703978876778882462745373730888035700192889905238704879263364062249709768739990670106625936011565552153799852029258185754726436404449960511108461085580831960791843167470721408064597161903879934377495605713763424729331178466113542529891896723005366271274702593349577962129558889302143182749692609589472484323293850320290923038984947800090235493842172637302485773695243474592555698268725132023671329477698060763828290669147707390298021080160070149696659584378500840634720570912115884562735305795837276204370341647106216100876005102854147166085818593104033631527424148496072975601145790467874971375538244519032410497559715150030553394192608015962807119333746850020188630824403626160654629861677709820999363706693236678643543782298423154232244667442922431333321337468483680290772901354239781735290244244148300875356857499235902648874887359203754130902725537040998039099100910008629447406664524713572827528871754597491576343715505235148691596630193954810605138293120017721012309826671899473045543424520987858372603701594911607652518525765187314871808488569534548492115807319940920191827141919514490255700949162044496101664522855698555765950555089368550891138578063081133742828411839378446753873616443825358515004406883943433343602323817225872846864603853265896166337650765753715024121815608211929245833023741896409861298343460697254609059369344059208032288266965111170871543191971725794707081271618878615867933293583176341755015303820473668700653824829418643075301293448335402749330205027602013124155534345735866798085190200773069297458171692712378090997076127011655148621658835489965250434463064749268916616969608166441983848624027610300352945032671513499494637703600847850303704175393577260386830904769456324491398964590905980076857647217251222828853446443784081362501993657729162555698343290480246660403657262265345212606921580052608103779852966585292610274965872463060627384459477805647334933904459451038902778000279778701903952457243405591513070718187374217856485737943178169601107671140058464315004785833966324042594769242035893199302669760369305623302640993502397904226224097660765928614246763920732751363477053443892049790097236218172046776474902665339347417988076128389829827413572948623569865549080500513418826733758972023903965045500091522228681959119044120376436652591597619653702373426818484187604159969409241641760495763041002373154494812591774035678608829483968764889263450825786193401037163371136721060116659242039982898726092495453702288039875791133194133296674213353569436162716238253617804604348123334358516269608620291727124064392882251635212247109370398460086521410406079585268961260881742273110922928217660296247742771324799877306118362007529652481837438214254940239638690825920504479307542473466691130022883482478643548991394413709277337108378954888195740985712489675902729207595437938504028756708446781574594533135452406209924971461648726828340464169558541603015844527607290033929726045118130890184948628892130791314545595870690494486081965563021112915453638106945113556342850705575442959203535045448630240076939433109023099300234012828089368127865057313954799980370232533511986586751484553811855420971874617649241461658835766640150861307235258163910816155643747680067793594185407508303397941557561763259154748257379384946004993330451475062761414078975195704481256437988056804564458176678349220223854856196787810732573747850561869311768813033904828366598717387582656334157895149905339299507461177877855768002747331325030841162109737478041126200569304790848406629817775893656261971182239616946735466661080635192383562485159090338284148587272201247603038285130593421934878178943389572311409450533293592088053837480811528402803333534107997763875104455673280182891922527202173347057349157534317721539396914414716881177500295983138147164671474494055704676192210281676295579695700961796076942056505033668068279441048983997895058603489516774639545095110793731154099535846665743635873696883387192015462625913542145261532842797746692092995443732621690335062325250112117348940056714443610955404544547133089588099585315677133134085331915509050198156924299831338918988962000132800505534720157297688340516517213763813371939029080141839653532560122971864922686587321259216068131564701982846541407864625892682222139766677571105076219099463535547413167173438786887403976540272291887355610267386872767304330001298511015246100054166134632613773756913828753993406307730809686938671687063234832141370172761590676040005464231959387761315700679647025677875027441966834247716538911729336737607607307203700918216356654875752686510771125298089145023211814554636245127629731467407029719810342632968962269842880350494645120346701226986067937420294020112741703991910234010362822537330454443288654267719479279982890162925996951921925765633636146967497016551153960289797614457919978581039934895756686773965606526344399821704780693823970794038363607247498595819750893471663869773853871746859795686868106104464759809849775102061997979769284369237927638452956075957339700528238298055426497929815007126046005544622233298247752950339808127392405595213241608538292145282679151727706191209982640723313558022558112862366491297547498710294584028726044828470152728361971116247391402956649931866441707327218226595967268361614228507924620207020264959922484742198737181699390933450748044298788631516693856933452103148897686037142939878743114685852891564183630366450159768694325507860595661953294542167601170276576690749194077139120920332538171033707775660552259454745925559000122185538197934220116675104237562598674745761778643225925050815647328669910555908281455429541540789143887190099942651080069734612256388486068240960635946719760614878115665692576703534092308583272669615486581672682715983269538096789752248461953071591684549414166422190511904590159006699350742869259937506429471683602860995356528577067323644757121472908254560494171053177157204018662410432406259875596459718623036014786450575295116433389902901824344164866659055333763870342754952510464542649340880080719554370960199013294299154542426698331010781658580215046382681175765798501640437042558400319463149151270250861964152995713031129954407130011352170794732630428459521610700126326769406870132238606205439375770987419544552858051501064139003176134135019078285430234717907206539549874966305797662573101581206364547345838208861970807809607851420063990229027561694572938408448779691327192998113556211916632569055539988664212739895948524198851640569065451447538940071490206629202163523380654030550660177978284877643934002087028598030877100118042298826617441571845835345763066853429211405211384455238045908870470498302525505496214696068182709168425567569272283942612061795341028503154687099153244013193862546031822443749826752560813808611279496491511128444388665207749567469725952956205402507063877274192162718503436991033982464292480467745209441530458448734988500173853957319649481395604440101174631404494658054392621271058705058221851907427463561447498141083882881698773213389364671481020362356468520735385087021810530949580746413511671695609603507994082072146596062362900703449767848680006387125590296466913325531071332461525861646239557249911723938837829408775585950966378001727866530841100686348256338370086858501659191882363640227264909329714111559635290200046105305272264458601864417195375226386404837861685105620144441078388636154346933614247998061641254336606295455707396106635353865631924793388494491979883461435701992879036617891981841164226560526151889589504918370115169877956334365379536400584570824911721490098910369483873505376720862407017634833297833777233454707694988322415243133053767200819741020500579188671808406658108778845989209212364272705558221446229059768397283447067251295168874189361927773577705155504467918151520728725993542319401857683409052993978090296436917426224505061286355790403131773739170809320417018027738227398292730726808096641083102625159973212668137509056675110244504158792904801427710455255410707928395286356477739822811765773172068830411758714408312933018215322823502130009617234680594313228695957208783709532472116254092678843077959358260898603831706039897043652333583599321510595573226601042539973527869708320668949712682578734412668783996625598635360076635018382984968008748179981514446794878904496020915447328383875317214308812571193854233782274884890219184133104598557309596632161297073669607479293081042489218780845897601080295077784082259719518537445650137882324120967976804725022979535673315622067916967161782289199845425040963866571710031797248149673254103430218065031890709498550291450558669144981304490468557263848740224298458331966489910696550145536647220764987561699022537070769627330231385943434949924009732048848000790792457231303984229751130471391735675942645201936528766662496332457800859594180513686404559010680128500386967944538109794952741539132311179605890100712644026771052793646433154806027930162894009379573490350668773505073314199138096793800451674422326630910534359286991833289089475281405492653608923983079909731050677781973262896771539436857621679084960849504318740248539274779482327320277954947669139017924752901673181915265987508409139143125393654834229350025332565249565023549525058426090416156029820267262201628673745044868654964041644642472306179436413037994941025315356717988150235207716564800426133662227074870851313057277737845292256385535526945772887113804609076593888847324254305179584411924892063293231364287702391434741252865846968739013420057233648157862647439643083613795407767044154319017592018043718256011322649814428970075611897970505115729439109692121198739312293499877463509604007316161270482368804684851424667869105535643045393479067204837660155929266854925211663040506690370960438416474202426531946604357879141514234171852439536288744107254410008148998170581923788617100678265906949671102471487216509336278298159010938856618950326228706520896586194040046856167602302622525044177715857760924316420836211348964278044794696483805386571592703629028513054421498221821652094831954386453107826432758274610141259675016675036457445915655252372638398914349714022155321196606968724988529085559449367646481382274377118698608037317476815491994176952014340688798224638098713939867583303063123947981609867946370040849278507037910937987484193633699927271281385289014943584032479936582254995744597904532934123512863908859362832951792906590395241076066761766971310239427498069845202585184763220605771752317059740412184095632026559829258282836516689052294316035933978629765100436978624123314121828214001207569512141833105946964293344430926082201749859187039065222752198196478334300698613093424098251758304645498700752103544974969395382249718010116007506863546032865003828277828236080160312924280945277457980199041633869559393697420860478253106134912157898876578065113431627701676537445639412090774346257520045306563734966658166466109672282067471023673872375934246226189998638361390507543560409077703975363878174488797061794939437895912680099967252599889489511922031093760221478530273505398209198322182416483878534699884494801660653824906332447001738299081471043917229477178501926391564829578726136004783431936236165943601657178013140044013559038046259053068667421334883523651337390535383682433164360566579344214584068909142735149607228722066273287899700271112878649463232756449403264867317609514345133581700324781708556705303497569817437165450503620904933565536892003696156585723917195478510977379929469260861451564796823692498189816519571665970672415969446878427792082300421280476800382998307838798225829949604594010812642698978280422884826808224749721311677891217800482787216145931828338290344121707506272205858363133855833942898979929572162130569628474992400021278921682210041797215169299052433216398297417183581922956865341940415735969270724764574162442230999068297153613257594771226729614594480221402184439533310372341693290203805001492658293624661991760039631919071757538149876263232511674469053977907179301615760243503816169264252122330629538920861647358269989373538970399105670827946571024392309148744326175235253512895587825750733996033959497470311145922442234850330953121187009700337672858323903115493138863089297993931024838796693846228261273952861390888815819463358255597136374082275936688060103712653896870895750662160588457289051036833965188949756309232207469521462892301256060358989256484865240974459793766525193215349076028627388021104321444863947405161719892005846189121665663921249745385548342343207695488689502075259258453504378675993715065207189195377922437147475137459090389769783176974506215668862794079212800116841161976731305234086721009172781117273879556540965335593298924271658416566267132938410188239705964664383827678045577267355127959823873944264110836182640090139838392722788577795336153675140421699127336485907454344350006477133744005297961691731502137363529993790313840454213226305057383255592484424461220489953600468943663004043605160669058114790641651458394040353858959251519662763152745633312817913911381738127405715749919580927277439280279333052871649354200777012105881787390296864730395785582213062881684311729422647684722897665232275140954494133894808351540340070110992094140101210548958061955318308911342348571398706031315514556220835676541277991430934039560578780745612633775434169306837668073300891354029472563439055395301706639314827617971901758879859728754946667289115755747290455441356833700384519241259618314142596435622353713197819826675739157693680946902039959291121572398003842608745750587523148265132261147644134188824210892466685299457670565866693797440020960324692081353073600846502028002427434384246774015037303998724578779749376011316747496098993374388064721760507965353935797260933188875051707240255359876033864227096517720595967080472257006809583607704658890201219515198531974476376431905446635603146594626061151966010936096902116410690325116481387878310856840453150860457523718998005844055946653743642082900095938244739241358841760781816305922502239798947777011144443610671853164519078151080803836051863186896118448345985917331170041686720291642649131469590807512040280435702875410245424750177023206830804072097997618272090133307969922495586431121813138299754859746053687730234681571917580230365899905791720330814001263419900213266130251944581876324111705401216388861799479932720215746295086252485432279225949697982875072118038708102107021140355740650214053049063645109688481390616042340456291075564025996186650218834710899589143751631023096211247064328756595308330670889443447875026119205016717718004305032692591048181220126357733382061880964567833457445631246433074430077801894915160481967462468380144987042393040173769907954385766765483482708727740354558957435234758564131897974960607321476179374687695677272047051793009402785540115860773455034175825858696227843708959903488305832826377540486208469429688524995526814991544059653958915440262295984940674511054880155137553233966993560838601812772642625878619922254203331430217353916278259074103928726582388126286270898678777689708884673740247757443442770843894648301379591037080899601480012796572086547667719094394054919226741375218532010503849657760624992238533209479365198777002124840560238462428985082268614792206505361620619761794346593616113601431817747363610343987644514854320796520671371410961243123590612782914203487220027556402015648949347367146709740695034019870519345467888603193814457816201459408947015739929197245444835348822285847431009714186749079185687233051784702217474451185594096672927437528215837650339214505664288201127410174205712738024741953912480361494154059914650989700248481027715653611630044883506599301505491204051207214190611767732547303856644008974435549801311445154595675946573830568265760899593776919313797127746985729747080678362135218137652327371429768428881872891431068777611241914561851164563493294014061751037031753024476349233746576255515183410050560984726685836666846432854871862262841290323046438131505541404204887782171512078663753263056904324269609473279536080360477910224357057193892381549972957974881228858729030580865687731307721059285388219629849215829156970709568921507324213238888759710792520677140706031232252014535862538608410486833009374689269754250330510753144663989201347522088398678007256205515142100665019213296237579868995389690166554600442319413849840914513045485300788310059613938039358517643229962499307052416078468790026357219769320624466787399757321122025674724676341227958864510524726615591779337676859453974506152195659240918445471030204353831664121187840075863322194092773546307007869921269462182009562269849663333089460267799702180011144170068487473978847900854360947847210089688690320981867428564442957954758358075387086371803428869753577335638270167457891120919948831206851620131486717888383490094008141159888501390897408537225575880072033006586502925035081878971375358607598343320099132234504369339586542785558521855078102673845708161111912259193998282258093740166239238407619063482021615547314089013256994522733409985895094821049225229718252458117199816784179274844841989349480830972012997352540047478283640785090125495150149239649302761990585101354689626562056418674841571096774174693829679731171886181209031760656713993788470648578471532271838970389725572869127455974228235955630288640192126631794239220173031717671425995432987726769150596729063613523161631917874290406407935471770769044342933138655085029426845927951037523980542172978476633000249249519987513404278496690359154617477373973688188234721638024023582381836795047143235597169087676414497924854068409020891039069911633506442100156960651476447384996541694677291699933173939059187577376623696678370286580549243131705375348349834642686899992538315067304791674502967418685437881444745776377396234892498325408522153623817207085291683333922577369134175133276487618895958852595408715978934987117194257963673972109241577754546618724011142190733623919737091150524761535955985123151305973593321602907820964686530363840650484852404711448170404999890747931569431909660812938305749307535326546499967148365335239678690378835777795943298152758259371027987724201362128217240943349710251054933120286324853032336173555301943989758189709663721152123861881823774214738872467356898075359588994635929116340172469680631098647304884570215975453566262540574737765783364237537608136969324151526575923959574927781399543449104821564765020192016420483890028745146149941144626294086752361203011679335695217609941554343143492283029900294463986383442204171203070103357386096844853330124516118912883628137588675041597881455281823647446012974739884052358351829662313670445741219631594396157192248530361700786909808715242230914331909108615554749584829063756494237718149397587305798646111166052520693409324911670889128466383049758364252379063792621328296427005421524831164657732016376914771230469022900411287040085526737840409307426159990951208491434967066666593031498088456225325843267197245903467832510010066617716727167592947208073949268884499351050565569610972589244308637679675431736972724353868226432273597902658039982773463616679276528378140504044546755936560873287913540072778478667921774042667630447498120076309655087036290748159155929822577903567976209627276379787176934420771562956064426383682331084033843629473297606761321687748764890025423541583021801058260196134444896420931739775263704450790409528143538241678200911839599686819773777081815705829552635822626504412535752138773882489923719093037162642373725676987478738280406069144818509224725237816191966247453723177884057602805502979710465714628891181495707025827084929525779446921684106260885632668149592848680907619672318429296607576926798285543867454623040184953576434604178030543161256632603245030232082248395509252151928919025055784092619958348255602616071386493196363971860509374535858771308422527475589697653031653707689938017368230997949598285829409896290809548093895076093784523516838764753041418040772797917698969631989069874379758606205053274565665369898876952592605036192278751733783806058826339105118000313495607738851244889700537252932968404591191491834525691416535172916288752268546468398308541663123056161344392580656494733003129137362524810706967316248458396277658620880109947022832514116603455187083030403083555782582651257767306482718627664816732197144187806499718898161381980181111511096602176182008056741611976338452452146350303943636966307868890141640891953565103822206404086799048753563465366622335521929021829386725488699343286759982094311533910687004114192647586706243928687726189589138959248862192459037149975445812200970955756261590142558713908809073590848998700898081656751299118822531601220168798966468368556932980925004036341588552323721821424439843190994115357405423167451173219880748885476294819613330079456306522478350926930575896690129191362836247948141213944464677854125328301057155228934920064198891488287255268426977763773623764703889814257389480542547248864557721442403988446300713054298104054991156639108597846221492139435762054098195853818159427220790627811699049654048759832342922417264296591656767365192378856468120005376265461733068672519344619991356169609215015357626321185131844168549338107077750869057361598092374408026030656770737786390465295837316907298989055199165972983305684336391168394823723860605892261278330047601343014362177051909915074555726899830182540800869212106722000365511001638908814810000203430761855451448127849692512540636853880424023633258774173660550443608186324047909782688892384825504622860614439697309994149901741717768476005988476094253238200921288413585497439625675253903096447466329571982752251960237320830180951664816249389271218874813707769499160973939830878188614842288717582664326347278068352275881317004934099077234820345485281559707990404322446356882356095052125927130542150403335318193192334312461159892247269068144026349783510438923311927178355991472447310327478270391626614540254838270787403680458645839625366412038310358750838441396025988375973696495041835704048590239029217328534700511310682181953191044080362906299309767976260003953270822253505298752952646042839099777878547029405112402993454919678826351705451540760594001528415861528423303972832421356388716482795019140096124220081292321453165305990757295244329598893076920409633289876144692061385913287234577302694370350453658421952808397344395045818123714024694328618336438992914091403643257391959515901091174514525397280774225641327381150768875834748048119378085262991245976484505452604543044477765442951118715900022029308523408676515648551289211432499963073321904372862832593186996063405739358195891543077180525452114066213796907524136601486624499256963242890859012489509088304133626701029366923596223746836513650636238040540829218994455205245549589781680676165427964917843206900088688841059231567422131066189495001303949533807903958204140327707989841870822921620342753483883493558924831506867374876016940350840567112309786834441211041564946770258457925258772320565622118738957110546503475861475557467421544873256647587860924832514070408542685876462000795775354436931399848368320958370240533647586699318403627636852103791136656784503689830402844696609007898991126465996458917001050853109936735272393999308464277339267990759534818915832839177864789079090741202556957828869572399895581849124777197009257474841781273565014188338612085933415624293728715109604200112458826612227308095656643811351676862893849940388373348703046758443892020453657771735673445299006407086347285516888837109770715518384982230152285590415798565921752446958232950759686702986039154112719331247885637901963223317405549450210788571510306124707080403514407719109755820963434819771141019338871831534827419076643413581677943299091301461464705982403704988764413919709343766350206770420322565208879166573141442108590256632592074077343873709022592249364640578093201530786275588892450350534532707910485276022747306541915017148337106842833775038367964333535966973663531151968783069170461475779758061849460277459296745114513379242355888213494374511457428319012212684840593975209077433663620006287042369472020676704903627193111792859712669537501591006578124680807726729625229670575574247603980449483503122285479780384045075962513547726596371302298457702129713730295603520280185254711717245419422006247834270825885401435022359779417043578335542233549310812731529980288711725449622102847536043171249539968468208028256560734807546467542285824412259113503191222664106214796535642500075846493835384368873443950003832438864534862877894370747811509655583334630842441968485576650522005915886127826016894527198378836735588077687095115640666016690971959620690196278647150753617585430065174053956169526850507580694364263262055697241643430385017295103616212327427571112485637863256912776595881900822976098941889975957346245241575090343063528157396042697284482241055996379568163771486238733613655615819057005390759141423552999056123707096091033176610674152193285478577448524146133082827803711526895568359989633986955607956201206479554292337364725337431509834249712191579385913564146869656213401377853030970890180537762325544048559516573091372699686569666998998069891517526918187206093496183757504245908931978158263038383155926017945609324786847939876277611587438801390526215744786993872233407067138207561332528420486409349240538726791872118562652255907839941330379931419073874854768458811754998019546238990215717439049002302549206663057686293739694235907194036422068351030590154145300806009890199179833564388580096288516805980235180332388384014495454826553536400605850550292240129615902966341919800062577759283771192899093932890574615081918481409362051944536501453773797870213489536995732165934397769617108828713874484538480592504936561081648648693051841755751501246790852671578947215032958905507948409566892343398896030691150893656217175294144499591697038261949058336670855679467823505222646243360426288480069144022320690364489858195965817000284004379066477768938442319275185962376432763846432392569313678649587755779829396301063565057148533606860061750552020708146768631630448754128460815128649676382611550429819827315571164430086305561919075092616812810259096519834800822553422604693940330769448768426731151486261397683208887290948725460434682706638702990042434501811766488538049509478284045622894993853378625924371999086597976526657296960121396235896929362888344025848455924534507213602082329303987735605346642168029690891501258211147841745537781022910712844230879850675722574548996322977776974891734135934555420187140087710317311395906432414314670768563539626923025523816024398943310139042668335123045850230698261735619219917935800364464532130194409727903765584958305948756143010410742466713541738285645891423598692538765388927502090760672989926260724891325174545278410710127122413342279469856776227352025177764737591776537520688503869543641082214681632708195088497763848715464232159499252414467885674857378908352209439005228539044269887705238836324851552539349863243736485089710723855725245157160132919767560614706359274999086369201254310791436353170587728495654911727868130613579814742632454622370417265381898245726842152020366731760675339059849818779465574111991376407960051078639842200580865037307213953481019882586658530016243959663304538840261542280224766245724215190456609307079345653750794737009653746895617682183183616088374563485907474861780297114486823559276961261950860614596926973915518043886328885867576453602601269791428230007164609363814891666950029050313741029288292233822061102248157773193780317328100321162331117660001660765912777314654817702706842285419469725911449205529939547699784586827930105404859276182896763732460993938837405609072790978619036779839495022638841753061456604787964386874457042555126493707702129738422982279857625068226103409936193191703359503671063354077621769607894562712678962832428696538238178439182180759505099566299550758428248255643000476306471545452818051901411622893194525313443927020287745491732739337361675588541239449239683007715377369258566879705319965011768675136806429701719576642509071709698380201834613847349644611733343674123335277159844457491186278175571755339707249124533934889263766762933102676109574267849707342226750279945057047587899637886622231649686213871657582408492551564872845796157566501195560430277559957662794258042489615899218814064761566645506893542320759722349837538980233280830823739811454998932038353413304883084880896227183322811828736591345982564363660681305902554306734555548841174388686756951615041894594615469287537293292798644440005631896991155331279351861064671017435128916244527497363751724560419406466693627532984111286830817173811628192869622652382925697457659800878904420033178903943133086960556162803521985887686471333772464702694600030392597622412051807965040851405250778941096135057534616161996758369284519606802176386939784859338544448040548393778306615421206404507409422820537627993373169607319204477477168820974877873281032293169503103527532246517251247657135123074692020899167769909446193228136301089220251105503197611532250547877058034143149018793457266608108135664335449688385722532123209574014222667076190794108496649913984397686869039724443807026737744584020989826994230825909239925348597394513497475014555302194194808388673489711340737747096944728610799660534112940870548505524277870995851991816267258901462840201880498246512510894689154527204528532798713111027113458621302222434407695991621003264370620010406985488652290035985321129193647093763231956947886866800772753184501103159373215538555832325445307335519910803230296222437593276999951004009003829039919197447362861086911275508458254207055643736836407042886793103559831276616884733759664895455251645152218335483415333529709203610527100675392151744605979261074798888693125481011437606854994653191155963613139099347699091932934680692303542600030734966195066918384272586660228325567899720557107497851973297744435813506049395060738062285319070296476998897532982134215522525555753364337852003349171439536563618262926294752283650458953123222042074850538023810569208952487162279885299687727847846633236412700710604518040860477302691589689421415967095897650855293171663368828221769756243879700223517423629283743223724816752439692384032034891912978676384793971013867289923410160812723144663346242853432166300158749378848798208622159347266545935402486292026210384368858991105696367822421964505745191360986229178026633125988999197334379193674562991630332683576693680546954315431500411987050469048435570685506031061681820814174361425952332124936415309313057338319130428040611477811176462062036893253927506328024844100333173437316289040463967844740834947993785090028430885313883301997072734290844159979507519938164370977054965997986141970123109058082620823124541195784385939545769623710577169995633629349772758229457385976792704426814526021719863726306334176927312033759442302164486143214933018009209036140501740457214859402760262833987556152425958010604890768655562894346021906659246816454987869946811444937448717761005586421383793052433571793073842677543333830212160961796763453368563382046885021279046828393615945236812320525235364221588463332349391133222872479718513296940434825280031349136235041561302943642257137302101412226280266832742385285960979345064317247592475368748384997556583573218536602823458935254087846931672669473561768278465951761743975529158098523625032141023089331458358743999502041673643721924704938521212527069876948904625043944639764199869792441992441329367047153549822891430130599854593567324219516447342674782759435975936978685889395118599788450584765678841112641256341361760310888375229510395886530489191950269819039231622895089786826336840772694068532538746034211576078706134137826713888857823284985803697185195048152610423178550233533698372372605758845917186101632003881775188938808856754688374708907209965601161726975444340693698377842712472215596657109371938910075755227984429178516639688216946667674024942036128116369597373348935529276477172195982510811506950860669134515776254761298062073982141347555822905363934075549276885332192169098453716196444021874734718218319984559862588291014904874307999952541668654816084715638028312010506722373400644562823332537011865345458577497280560969344404465927605996100160734038929230781329135293427519095519790193335861257686314483990591424359129203156715733361653557769820567733203737421125103265707463156683257794999579763715655280684880253270354119391049281241644698131308395950570154016357467696319571925376145930421364872657827673686170707210564183608684573842392740240244928675086758288082463434145677555244361305535013282235736585898893335372184337500095495054045599438874967048469916726792603326622449440385116688329355434040030480437544716393876999544844751020789947246920157497879644767604621039028272148180141907148369418539735652991836525228096414892532189333557809098914957216692883350009240506353319142153749250513826772190949685002032462730521108550186077305537494585108786421166414707322838344695416009964955341717667430731018367722867397922631807275526787437791717953770521785939660426898710909462284295720674973100270747903207218513720282198738317907458627924859914952926792934355482442702827972982404924893019412152747096645051749853343793871731220485048343469757135895354298906541755703726436522045530374678534794369032671884211427923196320139150020242763924295589305843673092040974777307044292877608246593937777649708430226887006357976206858547844692136834854502435184292916068108022572731001733936039941416010881746048787222845096490008262706151493173918045701052108412447198375704397501830725100826528011842775886364480486282949095748262174494869234347055387345367372499143470023504935910301866213382870022296467067323212979486537682079482918565682661977507087094560162415612633063125301610609068029749791223540711492005261908157687037901133463074701642701753075843674441715141138522655746346950517313677693684012921461656914134865488503269321550457051614592866361861996230499672225816963422989238048366597107305968438534670569287167948505467092782711292227839376126914701525963667782314141199304455730204612486191078273464828442157891226382957379659566355227122932889632834666346396421059417085273589254287847269651709895818607781503513637976383565305497220224801471908698645169399176532106774046362495284546108497686939802108624826081822665110072763341498579898177404847367327651624865932993153516064255574673977259999267944090444137594178971214871861656797396281402852466637515915924264322487984023096281481233984649132177799297129591817903486693270036079211782143151544170914250495362821489468399588536204105705110434917764408322799220310633763011631124935982514024524362921206958915208590635458052446590548740978669270120265206527519320853324444287136559490498771579297591457310419310715160190762615997450313730789652651383542825010207105492319661099039595779722212522269481321051336101613429137386210309041657416723645322664260910446435974235094190178889641132207789432139798336588957377289471767527828031062738291857683032418874406998771073829865952326558511864433547067084959109634706820192689818173488256057318980751864550042346824964667723658291427583842601350110999692930489295414824202273758757777765036509927361602602741716793647646437691335697554703228788303675509089280564351303408684873221432857520081671215641140717686478302459516798585924393865180993422274947435435414636197591435598170873651315597810472815041741307663374760104584466222911104853171219030567601354389884169316340497679243283993428677559384405720736288252220127921572558262392980066874617945053146796349686133139090772837173720147770697645681652022311801113924431685958097369784931697202251851304149682977163065064084551426633218898602139525979754317037279751404200819946842589703959471106871948476773740959851240212507466651968498577419862292977659795269415198848267739935761393620074248417466388398710320934026382420489968477215767897779568873547299353271802312451593868874090537082115398586842273021633798502694799302367478412026654355349963528601083734215272976479159931539623610955018895116042519479546201152817529892684205921690764882391069412240794594259241242089653592044992411499350474059002455627928132444582534965830608914667656461906083152861351654275275210486518809262004733199744254198115535777889420787658862405746043719914571274342616188027323257431030113086696713719620499570982521057727748324107208036295013841212702010393432351566477834865695341971568176992799006117516390070877991937081254890243326490627370286692964536501490352668479622436565681151198230229081660886955305350430843292138970085144408284372750391615470205741476424114597199955950208349909477102483205910099469895274610953024099558739892898120274833283997505310588896146491157693437837752025656338915853019708142339616259761005089304116113335040428969521096987595537699940739336034854400365466218573517726038639234745062017027622697538069123040484788755666885572701601258066250198727872690558507104917201954837518035882116363392897347452679133568357822402843643243201880708933048432404072491251752370636514549873747213435113210780176518913354222495085049805351803057185567837024643601492179545221883390062815889186301780844007081849400411356352139249221760882294340533491417108516652041604177173420577913406065633844463081047117251412247455055059979322068816573191644730329295726512053596692807884764141884798598536747928553224838364721591604754775953016434447036874154469320150604588021280850737798884094523253616939180309177442731259046065775230461157561420608525340052364814949203930736530296934714344589306092912105096549877788278529411856345143385999265576737438882530482382811954852363454639822834181367406995870616406695929298381493956486583641450589206099117016015315241271230270185133715249850952089229483007370240950937439422401505876298553277743090444071465671303095322092107188822544055829432160083182216425492747271855572306330283425554602154139263444637854981766748406781067283314424249216075568430970118848153667566033219050584376989003446265157011589057750150132076270241197069628511651341259857528339858977716536254973413985794351308766547209092406338966009852785715620077696695568951059737278695691651796709176658408420968613663500612869873234345676781456183914086838636552984539350502334813853498776587900411789415562719584444263022380448558769399423116868749925513387849513296673878153969157291912292697403045010924739043528051523639103943082102534710498233654086149767016451782137020569394345348718814370301981087934615691755919266721846068728328283807587117792820920311567143003886734716604033867393447639364450627211779367064521768253746726368964412252612676850144568207094236882695374037469747333408470474036381591593767325155322740561910153401181450262030394716254371611677359462605143241294073989523671464161178053983750656140161906959635802840081001574449290169700651231726902860055594502835902860185467336502328368106914873882236481463265313815678107958075332206476704544582584834365531611006821085864735998076859015669552032035394756590814610869248753404045660043891791387730756767954117900030102750395262932273698082851625081885256618967371796120728220747042297820262504112503070509489535208071310853091076907118925831878427389459292689304076585589805310954703526305176753283496669863384774977321396712849483114943112819715224486137048157489677460050013276389307654399191883493747026374500753255150929915828896720593538232046572225894969410709224431453623032230277936094658714207256078785031720567983438297377530774680076968599004224682547320765589968420597731623841963960063559051132656728245666555096408139280609221429642083682673314576482758902510289382326410139355076149527627239732057655755088852826790272255766713182763818420003900639657276999227078733484950727956867167802118271517796970141527039113216188774960416400143545779149522378754341392260630974625793432410380718972685312773600013727413097922886627783617395837346176504016451178322522710361563547927486425319600389512661522843124557288924113043009263363850918291320438491356858454232657242809890926362397259588968284427049878213859587619291799182902955164281233341936218713675262092711165925163474481763590506265242543750485622274126294263309345337526779376513899358740031552296787629993625379070484018220742869330063850737943459961752532489098640226508892366681300859799135545628769287034120441527397203893895843305427052039578743230917219776003318485597429264197494447789432958435908868091407290217042233848558492982702602428588618468582467850294812445365511555217089338170089449882000674771682799567370967816857925898001170462524191497750670960879300944406786069850897823722976336297130075252022221872033083774887387236612956674421121738082272701791650797249361616829045062610900770014199098675122623422234681273703039938073714272914517970279201083838206734324648596989058717051870955859383020511719401330565241552684827389745280461538444672682524148839751896512057914951271967200567105877022691633839214417741228660783030653151695535074550476421718017714555551307652542134545016976470926255194257486305837508521843322277839798312741117441945795554115437777250079911969644506648699135033705865225496715147122029651584298320243981213570989821997818406299471967006694705499967468461004754638447273010161728781671843113494606724455232417667376461840372734752861061529052069242240010717540782287550289415654907142073149674401223287497870576698211279975331980538759279210242287816055023731588461708191825979347105391619334695962909914608916541163720006663270700913566271813867801424726721328870284005568566397098087645250886338515135688406393253784801091444605446553078031562981192382726109639199200887358778710042573665367119510073315547372057807814596406755461822278136687177095595100269640074470592088704985018145363839043554920881876690137676837439433187621433876311554518210567744306436444160985349120143653352739308316838629643724807600074548558912956830502882190245198385136245524092955054982497052078760388568789772476451651233014484420068025960188030784780872026355316683588010145505174118854030079570728630811977627192412960272602547741813551187290120600507299262132072879761840226373685965189400105522322398083889753855990212090010453285137407247662070077974798468229375635912866627418226497401975704192775031368660039088062133678584325650527413435358973514996254918422467289874628890568911730765957353558672423828222420186898084169951228458256844313772751019928858852058518752829732377799890861954331955335634600458127275759140234882339923164800434715964198001174281897154288162946402223113043747393915273859231257190295510632408476461524044818346600400180258628325416490284047796575548443762132861707244093808898750580700626293868379931921498268931170785229217597814633170062249382429493435613831325671686143096764376373261679677806249418568294254171813434714414745940011345662267519232342730507290809646534431168173795504821160741907078303580828824819270353362913247626785919854051958401441215881047417658871527145320708062300898815982259498562919088156833161704538424650289676961613688256619828916355971738689742131893942390410084967812555409408044662346542101419977568979803922229149338014983275517331132571347546924963992885864052642367562605692293801370485373628776556023915176058313215199260146207249332795637034611063324964014090955249450303933088478633002292715434891487198556298069269509696251036784994868648307258014207438869895114218531593805581950831292655522121891821528589499253933090354715343987332840501132344833873416485233905659134777295534494827453746833634387879189161297613290144733324268605202222701721218627231854746603718132850512246733386914837228276565845069972532809414695150133848105958598552381408121970462607600598301443296665337236400951649646651136825435153998893416436207458544630971317826655939652777960718623922696898958881728263291736092352172524792229716506266906109728977426113947979135148095402278780301770796025846694698883394343116814082653919758187971747095899114948260136803956691597807872858402858157564320162605762481539615910329894795233503372090443918174970261672908484432549519823958561145006825955610087882401532456510424392949616279860103646593938278901706573276892981312510919493380688679276346128314183891175052269580523467219709176744152023010062663696786813765570961294949343599430610541069406666251192632846366470796502238891106043872847622954107029481327866040081097853937594884187998418521136337207479738994707157597430364943209862185704271287229785426583305917564427277889689386409031166932938353532997871353663093211058843479354183418478233989598992414994214874233336315150019511306609673753492754071897485404422501605584047566239677417564721962656997643808987566141003395910520692866561066157240116741131605189395756741984202683984425149105892151954403512266700062111685149474529369715312600576019119670224630087649623856307813275365661720789063419611640443662203748314736590017314145879051790601888864632235600277184568499156365936282286026184211495410923900286313619287295301641034400843739530268375515388802089855426925814853516300769730823476918284397135803300439531665350160963080939542599786795389598552368818916935518514396538998266672259058337109223195389502006991063050948465173970486318084589000981893186757756042620491842815326853303689854818650375474727623677803386057940506159387178124165232015864155374573964212156770615196835912265911790262478335259514818618953739419794001091610842080098084770036658573670067520451174965376020457136155915370523578175738539161474373855997306388401257212901803574989904125265434477784463447831474023460665752383767754054204112642716168413921595189870323385774228502228501704909711152610482780019640276374136346122652357983468312933596938557491336056466582074678274114337469359967725917738470395574469757041456888830949616202543039730150315406691129058427590344852725044408775799800926452843842166191378184149405458781830763931354127370085697989221239958400426674379843773056972434310220822658078942362562509706826533464244297672075630706898812679464783784450020044801124713186581993550940464041056051567233192188647896128703058124489499143845855486630292392080520669968313801384274078274301142741523651305403410314578358395363958944705321671192168416152900979914127104452430984944128230080003294573571708480880327990885262896390426411374433209244030017156617574972673420369909854519202406939466215621881102196248043499224692647411621545747902535399794461687852935043442566999913180163714065780999256362575478060107249567365040802517164681249433758984475952177830564678330806242004072004465023308636728637692891961769623169565629782523499699885927142065003699228159483127657859159424909656728137252096710982704107484966985216540136193713431146147129786966347465931691024669811247138282838547391996726668365311726076466283539151080134088035498487467676779654541378597706958491560132914909515575473870695639752393487823054524633703798429161787358475954613321271496067168205149821833453339179050119456993216884007314351387037281231020300608119940247853644171848898802399946532081053227414541923047471616606787211449409325057426586988466358280641764507238355635988484838295645808946370245866296861753006457221640760716297631689289320071884965507440754278276999663354804152855514502587694702912781742036575301623739933105857373990288383301741113856031804132488476735135731129617206399188482515306662480940218160992260095240672254219228250157713150447307000611717097522318448854036141926045623950902784831664821917353465708846292669349905099262116118181156614255233622132645496921288568969880102114535513686606822074728249205125271141722360396426018975167023673193999608494676072064867891579319405304178144637455056777292907555709323368802839770738083393304599509740197937607193576993819923886102247664826375868096330688883256436645558539318920196291892640488043801489170642426714432218518640988460822380807606535334455436223223725607924429880415032458214884284562239411238531584109562580472662543401357776631023315046241078933404543717744570701555525788036385953953454107178302183997612864705359976214297811962308524523541637634082258189994110123120309744246280806651605548755626022721664037431608964879972881437027543956431908627911475517173594560258584060796542063307032286860655578492138048074221217957019437102244587414542564286029247096332715536915960921090606672336435070946150264657675536670830441319854767554468318561443400189421430603296313597770341598759336492436253464870326031628791429802675703634892053850366925446152414725498612221226127779370800580797473707353113269702777733876665719405153038049729318371154061056497385160408825486550240098447312522480512929694339635883852170650459705898712111677942315400724262429045141720510364796618533654649357013849896117202559725990159537032617197180106962573929651044919264272381026752217663987805575279559149736948572467944991546514966582991538430088399024698987029769826551010161829422711209446610957153917800601394437421531455038675521976412905562890950454149354938100027026695957683583867720111342966966128208704546481944905066449898859254017102254503063503460449932636912122980634156724928902782155636328629039055112152408583963231257899740366088206314431132129054230570359875271813206145744119794076659893206643391218794474594293411524923325064186761307778288782841560291198982098322535222018144993781824844490666154106526864077112470928139276938046195806905245168731200703818485903489797099362999909284830779387157924546162872412972196407218654344509965585625984671396543500687238631892816177170253648878508842673402130734238250582281986603919786044627836037022632370883277322235197276580350090668606250497446688447325362516812126671011446250052739624723328160090347847866111192430306300257936944171631492433306816778209000782610269176512225003706325991750793643816055346344035049083675672115540900744286471739248819022202718905558249134243328240556528342939530898213224063722783321917990401349741475664380135877425669427060987372126363220225431818931830123184500408587718444643600192760066589254896025732986531506076887378369356654575437512413244553964571063142195630306230542376090519772266485277415059527007149512297370517931593964312631621910184097023515489970053881214609278470044265252370932288762186687973728216567110425677418872999963774705910852909472076978742017650661661211446404779201242540088065619991037670219708224767624021871802733969946531862569579756528715884605200251899184938877324832535328423117470151468104542776070082031032935001596383578329635561817058186510588020762068357718059585313689180991308199646486342368322504637533552293238168763340934342241548421805851019276865575992083432187170506692499815821013516035503916094639653346012740831344136353805375234834479200046991728630052648283060037287366421526760945923002264358052264086835881786277837559789721036105828285110682373049539918015268510009394115642242154833596675256267334421619770140519726229286754501133209824809539074728130299473179100639136711815579032133093528104543615976136928015703594203512822444472418869673460072801075281605617691334778359828990850572133072607615133867155717033346567980782414216624037449376506064272886399581644567206745582461152000281156998039788037207278793083300039531820525357836792360177404427675377542079107162707054269953625268012952472261482264570380207252861432996723670117694866082744092257988666589594526706922606713205655275437382981403924718160131985947200354320545075428505639659244857951315719065805042040391483338861665123426235847147478342989101066155160570387910041745052964150970314914259646303872698186148305991847106718606680486543132675310240883215219491898088303746402510404383835769833095545933980626278198648705160141309867966133004015779245203131377291015570935033347795101001526632853897601109782192267615669946208861091532152984963374507932882145849637855143205911286674033770652063358242386308969574766922645958136256315976788260872279823277727209762917169389275055828941623537424817479870116849496563603004835278029455231574454194417529337446361146783567912166437451480457158280694384327057861235901042652598070332584896216485256860320915032814372968823893219084442041717729350622536173575630484821988335932711783657930322895161786213130807378442931578831055712607625623682811967666479601745608299376859438208910063192964436319474322080180008159375461574767903669437238427920660772454288816270123446301667668602930394076364164037368381076486731907721659708248022781054188406172844081476277914245699945045824370771598082632651799930715317721193952154200403918416364444744146956566006503937493838117892372316822020027190899825709614371714135223171139968054824598086163970645188658183687493226352869508517414299453821264367149980055244418162522280523235976437101645074057594925305955933748669354829349770324613420085367176597207352077483994432799448389949093024167964388675953178985419553477413952681213501375394217470469352449030397830660169861066543035181586983374601716507639049525577814110153786486105606282288281336186006993312378436905064570048329444270599286375569844104564401487266809259283393137508739059124980948539322426143600293526516132067894535569694538405782373352579468221201121879702993995565138780339095944240104724467065248288752011210740605964054054045960413294853558131831456297183777097031907176730096385079019533400670732706324167247935750548234549564746366488444499353962124675824986402361089014303141830048181008543607102666696045108882171844503696698118220489050619504353242228834145347643666123213762520301188279470390253366919505608418411863036386738438880438516398095424327122526256362212245558443436399923370359428419130506782396074364905999623180048967445921743515937727024687661594024973097514946461912844896273670046864625956957477147166529280805604384003578186005083196911170409810497839155707809976154056699880048220903090394323481951561145213499096670555166513133278517763652555933890344958741275594256837008127972519161265023476494835445765707208549420230248049236722283121039178452658682108766544282076251503980697131007394937773780965690966792678908009305300763619419093552233018726565984930071384897911042726697831902353668358859631842409522272195167934214782879600308659371365991539323713339122812232029805402027924441934265612454350566630254005421524968471999214117368148609470246404035053616075441546757720498599093519829838756792391099994922537658628898940711819713089476931232086088216716542768899726566182409205945263442313242400957586669378443099100567455515923813923722323647324221616869749651345561308690076618099547918116326638246010803217974939666220244124339953073760509771463858056960538597883407389013185829930745509527857887011743793885882778860977935918534594151882184503180469107780513947505896217211713374589641429013193663784148583411461685392571872767019788379655659680652475369578230337153555190684879226813990461677438616965508471486965519773110265508521411495625388761764178465191527799072168863018850080115054037796444600052435596885710612598871199309175763131634373367412418510539484119628696778011525585546350551614708780391529933986717824080235185427077025529768636612937838748858067741524410389899858441627853730891090212805377586368536833039663608150699508939796839151205641052178208196824495957197141515600320912852512099273464280468150418126092668631359927139671760510759873839683045403954811354061961111602918873898120693970663569486305476479917569808282397402798932081304091944945512456042332108087975878986824762546451821784136328752826918610885379518977303044889283027573699392570244759233882489060334443145171640162772663398546268619824259302306287485383233568175782027388212152239907494542317735763804418493348380217333189682805521847544201184477557193665933455280947713307110300221315964388713021844441303267503743119832933799446358751945676034850705989020966218323013465826447413260951752521146226580400555717383279354160627725065434986402408844547441780693613736728317009861857044315132148899618197527188493263896098438942419698927614385218625700206295451591899238308608920037476062573969309959488041126746793945059828533072918930798709186288014625486164332128986077488354038283366120100289745206453607035882577764414267797458092274180483889616919364732877442224370737303816849125974971234474399363686944728689899039423092420950070652209136115691161045336270158383650327303121490183705287862595036237463350899385207903012737019732675057956993408714555286257335247972356255565857648240400844910467922548888844311975954431303734321746510197992995445664212750799532495217402770273561865506757653206365392664721834027228443808637768828814352265102113045284013632229180008827139818335488553315418376539097700571597346479879766168899652268368935270253266844294986141478726986750655257929206497833641003035261997609211811609721632148642447134121288650343961469244121509198484460214970429940685553079982432388748447788481708992799676576300342219407637329522634275112196715977259565306482861524804693341213227379059153779229859802384529463522068445753839418204101098709636569296722187616815298410286784512955440799393948820600392399853427092464724238826628876656944353811579988156185713273652740744483860006970588951314350273399816432376874461097709807283789182985459808757249074165334825009784842361235925301533287974437240046805113260902192905415328957451318670809940429190350125983833497246871586786649433497176295622594316439098265566855985187580955103055071545427286889909459144325109599236647918519515735750463238631244920840171457550671259890137056371220262648190979162121663554939840548403077374003273622244374841990381705177682271413074542437580762514329847489594940325987616850238632642593968463324586492503342846809633412522078329021296211319856565780509253833284296532775605967120200069098045122969193372291974804605614182593917459516052560762278736442717927622627319586896072217717715401124829824225761753986287111522955114105118242461158526890626112683275938174036004546311248647763637319378471594102594688219081819260029163173845287726487440443592463855271000378937739850702583915579199883001142178903762506198880557594235675782736627885053975993536887562940679163132029024398331851224159846630773059186243721364991261886463661100136026201373720739349731097592187731973529695689228596182486599344603273485351402631462958190755585201239492312214507688588002097141572623625196828902760634669798287144534896135258338981124351093214119423370010685418941946305873539533491497175087046295030067110266716599802633744037234080453648652387463313220284228188165869491870945256479839211816283087483289892859224267472158233716950928355139028009993348251168060023848341620673313904612183086785790495080487041408772856925193540342967331852929739481521557828174693032354131354842938936701186462610517693191934956393316340314249871033863784270056205670751681811639614848165650216945305850491070196242579543311252989902598255322224057581843467021951981461353511761286481160058171883998058428368860691944155216259688055121029924016900147041027274245055818184240787752868218598381614745796864359349550501320369753278764075129168674281702333827943180758900732768472863396161544429138311909829621108005461163745279849801483410875150784800812890377859677972620115482602228529906723008090008845851593367301033757975399855095101391114127085144914622630608985391457400311969453539764019456386941252602396876592691802976494098005731974255000451076613009905550283893411693158496070335481536770857261334255156192887093099890640307882067584673037151146867870698930015146381274326324236085890223593711783491089179343373191527919999403200448169037669142855101604638371790359404652317898034617102251120326598984594853799018811024459805417244104664252745146071484763365211421041667073189241756615666157239278600574704344683238043351706157834252704921382556176580044723429492936405762058476163606163050065239596221391238261017772164114955278045137667595987138566238727811690947621557392940734567467510136152202262292514643575781347086532512884152423569500424190880264842198190250578109945425757855982236153397576319098497544890273782845556175619777936316221201372137973398988787445817992833463575152459769724802135767039201196435426335638905669131534915719982891495952357035219305250421858494932922151334150278532919597683179496949951633297730173408218881592193926248477303828546820806556421030122456164171717009657334993166184446155321238088918393890228537456965196334665037446599644746885000842965835654722424688971004613440419567758838753217149079272238605252374011659716006590816811466235271144515110946522073271347023905285475338008050506082352452971772762098360242854965574146408447519126262654742311022640911389725542190315320678595136617285896481557100572093964172358199639028441216393984374761347086371532599010912025528489995304903242865671080846874761006462308878586303331025136436352492659090825868002346360693326187366060846447736008230583788762129178981659432833240372242271892330307031781544324454653382083015663830408921402660004394083970324640435385177626581977492735274967844984747806527731005330403377945561128604300218296896717525805919368204535983599900195392201640532838499180015421532381516471457655401963656515269595647574608572888747969498365936444504146219217923143644291362694374016585642277162579938230013747214576358888515668207758704286238814156423809601238820940091577510174487318368438920174603283902682845810898238155401704247444765965424513756776349828165620279975804439319634859817309464572103396404459398274643263550943682219583041483163300114562865276706266906205686206591162034730233182750553109124113168063772827330317485920420485624208941964405485208984423017765811789359084717572947759053447462159126431484555373064029621335901366274915625288324094038965590615457852948731974839763315386415095678867119893158517229815477953613574318342538287850381156259852856752112094736144261584590930382546888188827751606506039774440993164366688364587991215959091918648469481793435966233760059472166911621606037148689367322169661902355002763035824108231220499619463583131977943575686696905154133881715581159493438247999807150096731428839476586343318062398619032061899201633364609875888848589852898276868331447792385943792617171345503264377356115195991370740911553120791486739777761445563910016182471535128880948419886797743590991079015908880848034051884087326764416192874426390965413282893615513568664132983549757498661302500231411541390863572403880154446675145341627385603390052914073585909595220438548413231489525476821305281567265911849084201601738273876576739395347347292782827654673759773316110653840635180844293396202907181657277469437819018318598288559467901997143165134353862838261267809668319638874165266527834709569674200762812781690982375811786504218619893909349671711732263614959643452113373241221232278589092234210730311052714264950847820599188433192994387937721352744773075555831968216243286380875527974875827374333881053773727888778959039024081029486245617014080717962380410667660616822128146854273732154777068505886205712213918274235356712602293448539725528546164942682346009352583499162136388270706768022107418250926687437989435130411344678668653963921445271305890674817959001435093404991156695825344551968131381876203991799918175180716847770066709495180362119675832870704781428170536330485911194748822283242325817435125035165334701732440036883603098471674622869547267871433607483262826298427192221667419876142254423042789471286995536774286082777689048366781887091094212299716458980461131174046378338477890504579870445026830358046655773366348006764412121682527862416444436225500694205076542764099031837407586580725547460852206851265673284596410281698456705201924003475975173704810366002253736118858307801667039475151183651346691399987412469701955170617758131964572774551914997133120754816415514388956952815494659450051323379008403375100923849594263065905617015841838107467488896895680685216887049278075783585404638026848072902036832786289246844141640849422736067302759293704025812145804733111053581619947507774403769873070424300459523621775441588362510405274013929683034995687216318055516150572669420093343606578873326384628030869898931995269151955956567101782974561567725306467667995724186907229969720210214668897580911804084542360004106580137129573743422554607605878550468037591497556419892270233382752273186790178452818003835814621626100675270903376708052531991124682732804989026237390385190554669975227808297220302045201869485756484801644542240461105817026883897691515359805082946130435465134177147690201942384727124599780308629656195785933380306059760030695706381746195317666232430980356586632198363665421926577941435937383626927351451565018707030912063545171292215508813554471356930273804187080047390284157961959519789831945359410463886524131323932846500561512844722824598478654290991098601944061471685881913216234171828337323798534936570611359433967764237142278675469101529344726135431110279917082036912957977754449216397826244410014494377188386934479287059452132698775272078721313177996493753864155447539766606759149080548590065283517144230665812968775409371177718605082234995354140875395217029863916074718117210453392036089039667595876470483238078375836912087141697561968658407010062668791636175333344482070566487001237126758244889426509118333104716709584198139065380962523205659407369945623576037119034542946265652726142975054267792509594886025003676585909672788781221014717697519743234436751189173043009734191488568653706357418383635225299447945679240570535498394465965724614140901332030297241021005623248033591031499725841486100179220355740122846986285432355029291862941442205058833548162168764047705634413359424120193824204001732013216518534224333959610408792889804909755514523529663691194612636262299193385030761682326675151537678622384529265084926192074942362087802317848309751221717630906411371965687689410808507896165197213825544300020327152700222819052876131802717406059065439430284588518214530074753709134536360592388929528308108487406099629714560758840518695787679954453306639080580420498108341458374069950052493911294540361865163037080156208492463603860316017803656031600301298347149567745401325736389033899566077019489825750874835000369444618263923079560123228594130536506063883146079069625970086150733536630154736805915257147683805333958299715058257236048538487243355791645874449401118225778491907732822846724883461303748347313969571752469447859327304861866145327323248848159791833913611102662044170235984388508639395285721229061081600240744593462751005209758990932042831107612142712986757985854450930384246642259593511702984761669724478019441599651823395720083611148886918625640202245985438646563912354357862154339068493225129970917135622587413211042759703754890907150247095343155239905918867349247135388523445383152263145225341766312395024285168587093628457013135207476268469072101351967291834123880359949520977927077953632770831045445099670052594307520102255891576594110493225701801975061110835034558263637583889969150906418152597839103611841214448335220366569944499487529820048660168607167025633599537513118558373113023549585784071239958795007118940699566352532886610098214753771600131262725401908462253367020902976445731851208137830921983960837769444831420924453212155679483224449023239658658657144102551283188906599609207203073637238364854715045171346536626082012109030955668414093083544674818835674895790005767583821488249853064508606904337673574418851025692667473885574623946214004261426271065515649330628224251549489071494683291714887521902730003873122052604214114794431549360657644183108086880595793578817634603752938905117204654913406211369900145445827545754913904947464857138350181794428420342097736561660993932662108083058534854378765818883159921229133996188317662180066372303122628315476150042546840872345174657369419325816820931282243893194591880056944989691840449107007132045374213600485924277587778228488882201392042845629413320065516888747365474099776918280917112583218735528471886716475577646739176291695448451123714269000581715936731554411348962332370527981194784473232381575854484442473829037912452951822367915872873276119478064817918738957412107027499804991272532122911359740503103780002058538246731238018809635703450859423598418300913185183799390020768520829062608466298949559898776904589449837177088184670131980210781079976042444354352392159149083151703898491977705456942291361550796533407831947672002244566247886554031162671663498053061784325044942976716624339380136499743249961903514870086432603134985344762911123542281693559148111366072991473222859015200389326082566152483227490714829152979176543237839911011557491529536720658563591346960478387019660642444233026962476285796184781607667269389744894604653762863774071762768933076593461758953747333641993461169771662802449224436341071806085653321563900791704306683386418656946525937302244669508570984669636420086831928632692299487995011659952597038040677203794928636390055483854659296037208581237380743276091680779723755232041113931394275841682256973031306162196372326620557365171558351828188539112083596078462257166522894238771945957440684618641126974266810922019011701629879682191262735738751298055733316978541165990326061449706408017793321649714234629497304369644046224589414745005278971382838103830923096550345882473361985994410746691361223381176070803616302702136941316486717059271796268344057342190225613484010378203869747314979571541972000501316623403052679823728157260721207159832758692273029053719536740111379745210324508178291186611794842042677668696715600461612031427411011311994994414010220382769462563696445037373822314886473786495620628914773350316498947032944530335815338955181077187375221936439219764439483099311534321100685838836986992753722368475303708812023102504194247144894033177058880207551782756366222650645445869998139397675438710325844768007208750963887497392090021852363512720087572894733296531600859988731668295079388608176552566656666304127077575034537400169691938691770534973503615955428265116297699936791457179150814220779708485127644163434916531057602729655990915313293474856814311007336621932914325781084010674548251658071275022251792757122126518707755757756354337130840277107154515504455828748460489623956886194822277380795482488756465211490126788454003207119858904722180821202603938553846166171456226664620271650784414340372458724902664217978151265916043972430817973773292119472792609789403376568588206133369738176488110899724106703474003983455320487514079520346442007396845261835373951708316702721198858395948386943386712544532586562309424746642644221514869980895138456003475558971532251012261278465555333702762012554464067456321318130329259116232789813646914795186876782128069984838139408702327151420771413806504556336818556460656019361444678708785669323307952843381978015296882786046637581153852315740926746502388892427585885707812075301240334399531315729570015253754518798969006424453215950362330875125886465675410150348893606051380200753194026727202924478014315403672220092851376167497396617865225899425210861331083832190958752089688492457537744655142724453887236022277330946899074261981956355392417357271702705716315915442778061670591378322827677628920429086860442185307204324336237898840099642230288643647585790990911509670837816210468443327284932117035633925166221063922704211477207459691809988511272722541539899350937906629706419479882403111286804678790642311700042024500936330320664805669074365319805555227574130140313661398099470033159173830612666667393985989727814554537853295765660202011091338111080523251796065893681130887991593067055581766386631180697604296029580131200877132341209052251925539687401211790589498207428345638868783275967262328707463989671652528351269898364583456259572170413580131447428448575313471258269131242186003341958013979768548969779436848159941837176617703898557134542433909288187265660914538673937406926919785714537078648264872229551110048257850226463118101833742853936426738623577341903891111520554599578607426097554709669504907877301799932436508728099863524286256081367195341024459715368532438347163809819330340884044038424058153160363261447089796635030299773060423190747749758283984131253968177502804961548260307549849260153842080822829122830685638535455015585497167685621243724733306922133101843211730386499791597268816549991717071238743827200334796480026238766972459599784786117254553536672096827290831821104976762114897758380209300253521887355028888444981552670034858987266167167177495693743416615056269030420156987715944166595052634765740720339698049404320140556985466387925579898322808714639559568529227841187675665750707408252179942370852580849893708876541229318870637597179467099503833657406265721366333409736511687502080504368939993170221823693322777623086448439569090491263810623782869549946271211737731530026162154415343767087313005000285584887273076043897259535996218527232080060719871713177464736333874163622179999342470803197013798577218178001972436059256378927988736375465209369849920719174269682516341771908095965842755888063111599955060412130510174015731409883502531744263243098731436045853127780930380542995228264058228811892995410994131618354028277621260890453114780898709130553025974426276706973448315333296808007863925672875401835079962981862956691099137920377088963842103574530630792824192738283326365458989882231043477247551415151191702359426350918166850485881526311314994987238733837426825512953695522399560474708332206354169867158473771294523309248302287409206290659866772470618286461576769296898819046208596416875355601057503788929662109566022009771676726776537013252075007554435869611409105347761868144590672049334781548698305338986826006124958694884866832013559101382386678117918348925036554150924271956770229174799207743372597697895246201539150270571141920379271499358482728263588531360210883945460329849989604965211889719691328079458412621466028752273347316958661988680923042698431028099823450802464198993783043362306134497948912621019515406071675468403905754002215378970311392772783840321685468396878348222808214302137350819479855305090917377327961671182424785152906747471841488295190197889992653702535811123930999417356816575880761128473212912422033309300075687334820827059871442558505432222961742827473162621174391675374395964165025979197064925519170267471948252733322326779349763839436828023562988935149186032269994521710298961623794941126737147883690928989369001748783715243083997032597132104393132914194645454934098044486993510996842726931839371156447189263201347896895752304066175954751018411829513037552955424950368072986892381831722393031142871116783115994496196605746554863796477763598119136058951899313752465481423821993254723875448692444180609771436449930430358582209604247454043590562507047090786634371297128045401301061332429090161609779369150824855120180612323273690789097888054813216158062522226606194838633503005601836112108778448631754111402478138836567474973162780291625492448532944028161146613664204969706961598713295769078327333962135246548663176165374642078981085377530002556769315467489604568004459137910113331694533727075655332732837150952055960759319527951323841949661809713012503555307118766977005947077541304185688607983894837103962729318604243261026579842550672890854674901071892351475586947769247320074585699876641049165434720146195590860101219387861409615964240429077119074224437195092017710027269103602145098983321686189318320511032895288879062313561014554497074527227237553434710805225432830758825807365032211673302485737681353771336680911204768780232886131059942151878013362797722882318800796822040822834108914305413252843623108672019617918528223265954872898359555796099648835091439905138372650047514811746288088905736237548240736206660193788666075218019695079943898774964349973060557353692722384506882241434173300177979290163750812799656438259049563480678440857974244849685995437977688286030483492324536617713620733813318044805813126934741682082890021789091655730887469041499790256761903991821127702371944914013173116614113461806000039023516918312888587266515147419301051994836536089172318744276346168953896045048175484074714933655019459207554539299004827492298326095500028627628946085340766790996798510109249150372733131809291190115971733133610683886295172784264187849771948014167028698079243299636626745308319328608967228754595938836442541460161735531197209684957724809113186542443827298388996718473811080447579640314413161241047079987181841602887161601789069628544306296655926944379188578999910175968368044303503095857704739057784996620192974032961717175385863175616936860486067653327309743832993968412523743797706762170865584984014459505200271915171983517612719188396648126060593540879494801454466753058674049495338270872647790468734312238967519688013417379163271218568337511173256911146567439538108973514593726974103263657412127921462209303544253912966572349472920993189688963580257201832425659306734944590473287550478092455131783940078664358422272703413928199256129599374764043339851751902331579703212123779396799698679170799457667657169591268306317786791406365915300329928820634538083009106327758394855373100615364710766114578212409707104332950218770770794877640871534825574818150575442198256818841971990749946632286406463853415307752559016606807163150580279071558137660878934104392419470292820957277031616190557185421803573058392917856806047080051113385976940224590381680768880164721915396164123179038414497151047641657255464806585662705650271493296462654056809719435554592581943764052874535683384214828761261898442823026146482540404576282426350525341448741513735317216667690129091483754778323704585061416165604073865298722905345721002093155226676144956851513575759415658366334047450320496438071140088263221573737678132861282025344716803592037624571423354930589020216901920205471611084004032839287689600905403009930737302130241614059524630377306714956959141134903044981997557970530981669373933055041488754741971556189707733665123271874823315013970882997889781228668129735141161195948108431440177889744532715058568176996224419817171712318843372762345619260961813151244485083727631656949410388053103101220661078954853519722938550932295761685843435790502426716439637932412611970930383496557055107532498642505498818499452872543036599998664223111974731143138597403629873894585206946758492951173347647387203082124621333265271600257321387659923826388600873746458643386239409884114816765346622520651278686975882002875576745620410860796904721852611138627572785131375368682010542382514850040932785378564838161436927576112438885136689050094838511931996579944889399234243192641032293330390707559365301554491437848793878015564577342588123525383480230280177234527676682936039476490613877047067591532161992566068781164727938867194089135713672012231620993280251377173985367050024156617951050851352570067141329853743410216754951096355847291853504717380843050719946229799447666710078952788082289772516420802987354833142516777885617495613436152063069547629308843802879275616428271305998813928825421025161134952571425223825673750769531336400169271105229884031358107207713042559290797468421197349737816579774133651557308680255471850964204028210283386291111269898821317113889974440531159673159751974747500893592733771086869958558868641899783589578302321320375489700896421109168210465298385410095058873205133227067311318994816519128114580730450229682084280976148139802731349415431399131290682172251088005335709087956558935214631944586257052432413902777799494754748213816188620982813193133320472395277178729535009110938131729061696335353824088960356570407080039251824786011647410589690092850299136923961547513420343426598463115087277835441281561985409081728588306483645378064190182690535587982037556514497163618897233665992994879032546047207738294504731643036344456990790898429043811240441628146767830860364059757915937326618202695755437754000292692983705988011557072241728040110727416977840259524488936175989853891313860661134277892230049919658242336048947404134325174312280645756408584968333922008924842367535144602992074582105604967805861802139707228729989010181167542875308549878215258903674341902649941246971404249350894933246814325443620597116690130157439959497358831398464124255023554317522645634927377132546611416223714621860501895242263795617644838975947877168402230359303570177286932233786164332890196021646856265605559363903105839226029711059950893025499784446312069597819602565017793161849985482241214643458353924038725381166480796011869597395994792826132446218168575716643631096370827587456462635848484363511198994931080710765368160972643008398268695386730362890951333896696746915473916375508537241476136853746810496408951923432824144846899253542591337042660017708006514283243812492533028221499101381215819860776215820634384746368614695474712912940144131242770302854420555322395537066741522405453269835953339250853478045972662065675459931623007934099815779324826579333669005534067357806614805319305221486234896437211323149052025687212000407931094619073490016581241300341475701799568536186406789641657228395956456801580553406393033660900793753073490921286912006299874468236477367192041765471869894463154696482354291512335260126471207475530077966396528975757028321223972593433666084866501705361298023636829267864405328773233374196341947106767773166868038261476837117849411186720535400173941390941019895273146140398152775338433084468701721408235198109460538808443363980151388623905165036194666546581766230747621858611563249122722660726365403470971553167018085617313259825249334768724957173019443876725931659439691917831399573045040661219165428130641844706408864777767910037943464004307353388802804296044234605890266510964907149024846770326709260086016469340249751217623852329636025706667146831621650357385667448239107651562781543493662460259140940110374243790175908316217924906936498870172839308109936422870508505747019712879868827590131348159829130330807531246213075390022732382833176200360133401338494060061007798723248192719675478537011314152652876892096459037428900647583957983039621002712072667470847383965504935594599380982387914304501513778909311053912432920260004935584099039024605142413235324607015197773362043288815689548616684487660790727562171799079710490530777242696408187003969131468558718299571900868428837608960323897933654057072836446581217592160581684704385852858600032604739635511117196729943700522930698980098496013292135837950527868159394956222393817345489498016011326593059978036212942207824644485849853063552677603271423981042043111388843463050865658229694964617790132817747670177799436008585775746702572954415820792781182175035243526992140760123138658153025374368543070976822067269558241901140843440430594569531840094458531563771005279867224715777472105218172384784983999076067123221647491069490708463653223930132109554685934586823835757822722968681453558389311921028553046748889227640659882621530533565406114739155030232957149367692065995585572870864496599288549786105598849470746803439495952511692425315315723042756223019424999390950346207434102821151232794553494345992704287313784484107604992717017857137957582996605442398502809353881620664493387256871236683936924312914352655201852894044636954865653275445621998406054774573210937494971279597528140779731224682502328963789256319210241846411406388833874979281476872862107438202275963689672673612750168247835921432419240947074030862213073647319099657863702172591342289393882005038227326938745608392878779139837212910804143492183188564029976707829052113856066954860192886120162185790686784800569023261012334236580986905324443353639953542264853691081175433623363420555355775541086151796105578616821726793769559935715734786037031088859943965331549824334312646501807263140346839414635446009679621030819715611347321847432132843894362303106205782878134808526439351364487412558891921266815617186997381698915610414827706306236863132704153462092355036080254698018835965368114969209910887852559807087820326315458945256610328332313622045917578930919941431339087672363952118592294625602909263523721460379643957156723586363202891002734399550063577716571343071545846914360652108826944486935551831450112455105854693170105574454563335188426432839358847861615025333269976392443040747421064246027811628829367736134075854865465701868165455744164092517660580383412191702154218495419925762990460892957920335144398555097554926723049359918172274685673181492923528117134359104097964227275592795189298171295401549588723862618759205012600405733611305684711613332806083829446647323972749113209745884572046877672761383310074807178187637293455199910878894717994934489517570102945170270910505445147338299751643681913467754559372175840595416657061211249776775184002903125723642747542928058604708854599789720049091892602610860604653655819109056737978825492068725960283404363703753089903745179500881288256571307346738820088629448749054409129830716101504495798802838379488331138046092023880923380594453264074093698556956225262871073023081942276469776748060245538622289610546698026352231471514857067673215213812911273237752080887653435115713160580475337267795354281049677537628996248035163720800529446160589430658929452501315290705750708625881023542461140474725991939401760695033284248602621168508716147298634934841412464219073276507758984288318777407699228992769207733711549041874369922007165401554763746687693202431043985152032122686102964303666287782089667926054381494432843825266717182578790258796530483905724633787199339805409009477086794642319505987803203992724468406884910803852996528783408280624580680637321817982758029829704898141433309928523222862608618723882944714576677013283818389042626531842306234504883949908748827563713315910345642946397654683315440552012738513927445196674361556324776955582203366119996698876746999317082992349420087993254596830189942669385360111126453022591507294420553054814877859545365352073343658101339376304701937873248666308570534496305574021232131373322771089122201516647926129254360552980022898623488105101810621642509501354141680121496919213307598256761618569091402933732194044627717664162370328041437748686065456764581425057501417001539044273446701300222579814917207716833143984068704339074044143155200742665704761016930413874675753640823538142334408501759324246578290345677721382960897213165553778615109973351841506535756678809719385146943040300340667629191791927528306388503536692815152452569780876459397700574079071274139654269788139543737179950480655149411886042750735394746520619441307010303351186098400823274745724591558690669718600816239676711069479021690992443138321221915926168451536147672591226458904210996063738832547600064622777188961143527527903501417112965528400086535795609849305976272407872257707118464692580918503933703137590848065454792459732030320122353011558351146708692365698020436398792562370010095339587217442681889741616566708791713918724955591916854582590446227412572719243345152272106577043885219322945004203470812736212129440830591489942168873099725860825978077171783327875613401943953277694372559571506631564417751999705006270100336852803959516489464176355832854441850790261765118064066405423895823234170920738247988425771956642626952230522279001961853158046141068405137371425220352145824590087479831543514343693290899260627277721523429349188424554005058557813626780769743266859415184469314138374176890376696986470090834012260267436861932490318052591078955968010917763774688134586804700121246217012138404561832679714239542853789308295021621187671971113999434455392322725123948169112505755231531836761924095954956613974437669934914360149632258688938346172733338503232781102914577262242518491613661289481392215409420286131856953348709291488774080582441512131226733799024058824348452286444836564059413733945028463213499827736952641089623186486079226126142693337144514431804747339118987896475877333635351932937449828950920589151226510527651802784492290536217604957113834467497546313177921010937479933345040120194640975191560713499883297558577598569523742898034782868210775655919506537733297098461053234879683693187224736412538973769045353832196046858960596741587771997186869439542959245667341533653822701702057358726670494766655799618151134049534425129285296358253855616195208600481654550189525744464462001330360896222685139323512109755971909537784117324873511291256142931084972371562563588082945188315445074652430192626716227264245711701526428552054970673744207753470631407325231194480324079202885776021609911447047941719610318401024074313989119451400549395798653748180964236622912774835105918768669302396611400986603975693761922790388854309680102723673132204830259021686966705116616328380490604080535875885454348866350158321500541447498250567374964701343966818246322805470288122814884144168276160384696043027851057625586178181776697333059951607317188220590495916728631707649255451837436879688932200331365234622497969144588702634789384519750151277410271557266244677103048631686034968874139726459373489885794279181190011712332274860758743060125995027315176968853039819790238804044608271720996681905999088823624117450152010898317910595493460030348528108842682697236641548859691172115070466125597161089898635939826776414125853474512703426021856501278724708011674985457146551988018347337510837404474406006841793652077702330328998920826114690622865113821518583168767003899242407870029477224413186860153740224979742602526253001363409982216323763082525492291542932086084130858320559074731792486904668070091795034423790403620957501261352879917351864442977457557528585898756443811588060406051506622268180014299839248203070842294941716905208558963977383645222359339786486102866319196175978060287570361915550209229693204239338129278098580093625529695276583916113488642826343659546495316045605228862132622084104786433014089062369748072024247156905406137417753689498487416664234628824334069142567647739221540513206964213672935373371941433306757888996375467887697696195487234926486260823572300462435447901584797384352366945055072851290453646568585305969768277335817606325578576070156304935559594631713649624020294211329923559845015075712543888771165435009963340514138371518296175144577443401659277099051104730948084561484539767917260298508773170169672268225235900397133465203549922580981783084088180752890080968186488684646022392832015675981003866822497928622949830205133010236136510008045666233774702484197412005272424406955040764791207250305227585801109951076039777951875558428541435482582612548869675707239187846060635501871615641644986073411189828462173300703663807887866168416512762353121545227790633069846184189641841382302076975632187709184116632203652243406078357828647974047829681047636704565078176420359743771841177350702190339768072961035723330095412635410241968170456843933425393277396212165468562441993057246902359256641000086735240774573537897546717226863647575979924750571264399264992721960035054883908590987513306101481762581914618804771183180087610882427515592956268178898799389856277601666489288989928262665180612623206550305664147379114799977679891453703025227023545790925878787338860272431700835741422847925275414442745248018899402762277783081197949169347902116745122737058839700315273224917200866186068328535852994604816455100096191734491467620980886096989028133615237427395110242924198126927024991753371688671443056899987764978141727556638899835479061430921365878348790488421313854772444685679207174645214386041895500559246145032335219794996591966147282799295048389866295204779422954488841022146965438090594914307452309470998172573786243581654341695596448197335240075836158137743971921203682938509798370112279252816628482130823512946439889196108960840902378752822342472292645699665479806248837502165440191074948417472699053663483449662479635542363434074048668398765618394183799804374517955673276785995323477751874940561602742026134963752738337394356099574986240710300843158654757923507025072739006727709903352226611625539377320149385883729239352935557631306321887944161603859230500795417371101196642876293182896144535330408357046756257717409898865374674536644054965150956897399979640555384143588996958936522428944746950243880938022511702697447297122435054713333262306471786186537111754565546796592375277143947253238290879857642011118535214154834528982824891725781978927809283973448130672969645687848688611394028782059085622661926589800461266862398382098546388727454840302942511858610441682610192230871794987528374594782975221081769220714433715994551940102336664237149131343926173859331841390078517499761982443545218198290904883913015349875246869476092049940045146333491230061837238297252593213918324221643064572023041202825174410785600476371574346090781183469154092367483794706914302999412437560124864496337940987102239087374776664663682239867895733382681711809318334837140199402072224096833674574357982017076543922301851857037065703960170730419310789323623469831188258874086695255566188629446245898900441336161423444467228522484193038383725735819320796098007095889675886585725194390550090701188281710945798818875554074408613627214560213877605338734936328818304492551131355290032450509893560535297973689251288433769099245546694970597024922358694061632965741067416881745908500462760754339578561913156902756931960130140080000406050399977534943309295132087267442876406777509447664071843518292107886058119449865464645325506296714936321337465858505510097957066852019502856514313490361785713280011950947543292972350976736478579488868408524168288299682843818649197900011205969637545312836738382026791965909703722419380528173745808305973321470990305898351988229978540312659260660319713001713071825654436599092781483083740124365327907177588563782670738652283671820101828940412320026271948821772668703683681230447391582822194783400547174484276121454345665885832489805042730058654675782324828396749106160528462877327168952182787876006645837821569038839347344656449527516225953288751427133971567830542096332566859504274061878771484494881536658970290407608504777026923781260099282485944897911613752012250274412437486417677969718763625775210373180674918238313045595659192012060586353908548595670866167999711688591295136258080408094686335442413040685409355345521037474010125183977434830991850578645679224209465293275707859568418649397231053898624381084626838141252188971165750069561583017899680332855299903069890436371256999534736740836781475564303330035373924788946235866953202440790970171209969997077999178023460506192653782719012048790829509671474698982836446502762698027125313546413761669185399434490008290469238447356134919906090649343101723434670851180288726891620550339575511913270996058145024725350042374405356181656839211941158681496943057229309779433859494931016111221057712778965714812925933177220371067911623049029671711012144650384030289242217921303806051563090621294225303850346097964993440911277595455824379220408479705882995801027149129573455456417541330038047857127642302657175687383725403913377768388069006778722830414629368857768515383225922505279049914204193124836443897339804004860908775141443887804020448981977413062593855292416833321456559519388694974813177083573854182858825738011075537858112755695238951582270788241350550822046643748339424544734714582097686112496264119963356904749473971925608174205898889273104002369244956041417605299443098846974200763617840098885479223084601674634871240449308431583291829314143330176649475073132968235428579306924867003881723313586826229121481397412000225001953495018826139321169666600542851225962381139339810678155010104184678943016038809311085797686297305789347050185158969981411637835008522899530799893590966686228234428384691402422978572669224348587699422684002305929680432811179449804914085799054855420236959782533283497940691477091385029856142394704816820786470691928651045495519263093714287460190070652461555268301076014247750942246683025963354308204033018620257218604514187867815394927467080115624597511758233868549726810958452335835080364403629947145618771311876439056922173491473619840080506229518404774070528998846451516059312598213942262066469385580138369149678543180218210870649753274831609255785217905738152956944589512409150909973878037678516361895464636678204889254840436739414153769066332517057719451831552349663983592334042205229285345498200173296432690303445776300198640266252233026817625973255961712844344459828052249285189309103699814283843083861887601691921622849528692519241243050441803804535871936293038299094062223517477351047487409879327404017653035595838868142518342082779265995734755186848706254429253843147387980136954713760580449490590610601516799324677614137737594841019573197266795843204392642220435321562932218348091540804320243831188562586765046352117350694121895972459665858313587457251023987383194830621886992489007378961930172955844188988644772459531521881939574757269210867324561890694848210916056621447537949514066123383925957076587339251967200802284094717450515069576661259875644434858297192757472683687792600710533642747658956360180464843670909634484083257701703835399207267475862636760345126807429289951601638290867970024636399637129494772695070924262292050594668893676991509703233407710121248823679807983282148419234941602980423007414297672131117915600743351578868315892233460720661186358618168093436853131396037569539249914529801609233218911858126869565865265080678793097794722755692309252713942143897129052860295809970177564000457655485453149090414340006312757401412827957084901833097816247198651092569443777591630380636561704452818493258225298670204504352182303489129585881230303061765036368636500316285309347102247809959212842068362889365894475116109875422661811044728462676773113993250696864659547703672207680084628856209657591852985709164256131377111019481367911475742383650558124112530873016566609456534316793059647495787480406696884057344683317524926482099836800974184723861438514130411225221632731298901113690226483089175644341713725056547641219372954621919701195599632176984211139829931168488963457046339496291581253244244431280766452600395875525873900685398914652709979277615347598644917229886957607938851266187219730259144681351313749267688031353452417024972717848862117789796730020431990100190073479846655488343444556114905903595262248623307351713256651321180283026074874406581573454014270079911291949126445358474477309438127157167382990814598617794308890923839526285751934405311569022300127379126143328480193365752333582692599579918484817352227952427193268827470296064280801075007369114447680795313555915413846945642008489765788231928009214332770175413460510645083432848367231655795543664175393665748678550272868627654250167567381229511373595180112409445166816897945863894281056109801077579470441869164578781546060587893062278623246097861963883544053237642915048079135972827977326521530167094064750809984289605524518297904029921127754089979422356613310265189047309857578862810720598422858859749959630037738635291997070488392879752698372264309477606790930616691511040385201979062192900729562542572574346943605267234257095266958230151459860111164738990274767429496403121982371577584472109788196117495393834897028299898465137190544196965919410981746237622356677644703417561231126401391899217665534382235345503889927788352601015866258152821580269592678824821354039462075457714527129622314000437570336137440487185281944581087064461910159420341939044610460583523531393485753216888090257187486837411717234103194684224527698972636885799045715474306664766368508380454174824208549069924077168663956129271617296709271948411210661142643135463174933282937301246161681656475948363307778673941226245006721629096779164829665858546469754057592199065466888201553510293242779779334890221940694665858337949127158930088030252982585678727677179287862181494947317926151028278122176539528014440665450798156145226938320229895226369823342010736896385615391131887657756999620372615374232883696437549594969045122249347237126399798620026237325620572877767855609750432946258297906560513218231920296442131450159371340101659836485774528052877975444241306000472654811855367169009364137594638453520896584638424310359136837067063829091066037075143752266479663214372196751719297340550353569105753221929732851152479983454161338799784773731487522188032823411659638295353751879801241070249508487931679338648501394122259124342694173731586064490892373216359139057392261729738006206876235866095207204895169034753321624475322675030978097148624910519921405807152067379446409105173920838061636157974267344747119508887905702111072931154038480803540404000677481718068714784308574372199606424194361173643693300958049033793648286161578742682002534764765605116791146257169989695921928228503832411107171668364676949522686747563253508884472028031889140442286012024437396745343223825772587047577559719273223337599863367221041625081270212748542638640382253988355040371793945272549451820832166476877748858648493403086089280112994537599844468934208489403716096265919838666134973699408525126645981916860310067019664366888459909702311479712067233681706295280553091605675364554261631091268388761897344939301277060472381463667011303054671282386226994507469021009423158970232389735618939638953471013505008352106647991403018311996101102698600417245361578900513997340398516177664550525314851890527795794053303682986209579019334578751139290723835187701688557759270704760160836987138802183581381839813378340071639612099140629057056863808144131641066535198274082310031848637876734042899219639354258415291456056597838108810613782246502625670891374853789488649416322821723855640243295709362757443053641356605737673890825260465762389167874088204779190283067190527157761593338932200819006769998490236138992911676618329782049170080576657799605446254523910075035680928493254544320734653117544146744872306824233673390782920390779455367234671470231399151151657289701283177203149078462779699875446223848558927879678808553126402044538864131422454131108484690378970802334304368044290348971199541928889109401908082373424297007098964444323116744143984888225247499129087274077789451131535621519663143681745215364910934945999384415569452126600632375540623578251002173348586280491218801783592522115411544929106900197032549471959996757306726754506513884225793133592921227704373068631350490707713152725625791450518424550989603275929109757732798090411780671003831369478725857509359927958681833723868364880004131947772872194839731078358082132556166084834009368229554592070948398807640002860801203859848116706115619144397844952755049528045770089544725904740428349175901348506830187394794373094473450790252343306757353243886687943412114587131935622746998159403038702434459319320108754811421625544137087656831841042205443664820389034591642925338494808162573439709914088302651329190711262039898204742251159375544806997107661116715227843477534914842514839432922486319570408211169112660692123649279046163671281407261768608541547782414008912686980806336646705748271880368614261103594220977087147160421303028615483346850574477240648270388995345648652033404726005380581035826966140339439123747688303969952188435234550828042140124010519178770784855744951566660927756043429350232292403100520499517354589561655326687000299783457903017643364023486755200243170507167918599938547971309225737017197539762722605626961049303710341963630921314573537550610546448458194782692888944209037006892794378112628136386067428271602952940162358634538558246860210656473060049024242178383397914890229299582533658574200775860430130829055669489129445822966706238521172209838798658388174578705357839224269374112135302948771674203413115905339553853458457353882109142690690552714406639296678391545864138281491785180595502682119701459636201044872836329374495444152657811377272999581542697503615337950289931267479687343531010612559773288459099176230304790982338347886154451648218372653968016217049739866298912012478032189540254753111463500113094802480018444516796521742321245331788918708629854754139384905861413310830397290841416814999946598166384042067337218727216343660685018237854003525602353780644992581364893543422354731220631353040310250422306942272014382924128033410328821579802361480915923447384602090444164437864488395901688758389951720401983150655620192020391204052999738514378876861820793947049177452799899559752459413422888286401777521115488158741485820766122127842389931169554729884549856778372332584512910434154311223436329792318007948391230508696883396736139621586805632318654150747173135795330201141477706924415765551117193548764018068858570418639877242292356269598112231240050890155921316076610800713167838373867356677310686273078626680915558296288034735124285290422709406988569889239462063068078222122756926457604601700732786520838528760640308302913142910902299242510968704204459453114383447221434436003430644860035011812566268396702552984847016055920381976879726922571817033371411040073598768564261162001307031642411291601626611851607851243640436499388665646202075025921659208655489146618052396629785467560318313126434487640351649334948781371410505290756567046711605349277156902158051951519578166305740418455164405543904763616286816175364159259613537030223595013265333735624724504242041370139646195403407551405366800937061765517090143371838095404555014970134015416078141322120954477498282230012409929401406430031952183536954548024930618021125708874897887417200698674425916162046109628610834608970455858745856194763670462440112074779438347158768293092041680221549936290235109542845775123065677601718167422026063653114210427859057808135270152162305389918973307862669909559964318926512642320992983228606644192626709292111041951127829173818556821804281099550286072536108133044088677004090486949646644729505962676756320287619997798228257594589940170515007772889343016209567273710641851221083432647536449591441319752038938429825628750879743182429373192760590415996440647472022997318175569366069938724038936710044816963268231453845474457259400480149387512671010895437372130875909848592398073949604375004276861404169303280806457483997390628503959597902150454279995575266702594818988873361794222779030836256652005948561208000430819212203259655462668575626103129258953044288426709947573389112278887869557154661909980185294531887467164064322433463985483259081212599806607414319443544143396543871916273442234041378351823079901772537514361639331232608562338978128728384034565487019987611077784627590536685916883540528418264121674211584807499101245346176542239861573760754618107633774147714829009142866403414825170610328093629614682140491417466994218119209452270997691035914241555854242984999055842301063806056116215410773926566700491250606468399432289419368584667505032267312575210550091393321589427008116214080357167095460547903777634946671666541502036885021032710506455378487284010424801984510644297394948994918921836672516638016346038628074261710415776658355509836847637773023011449578002826374597172714225749418161373900459368389248935597455017119100311637192421462537042025117371986962471709254095441111336210104153763625202132494337541681902180670840458242330763662719922923593546063203844284295442476572272838371497754831543215914415848309424552380545760573927663448443120628164417035313044852566331511061281530695994241655905369041823059699362857999539966856203801886990222519215414648636476199176568339951857960454436235597083584800287061530492281276233155513261908254382739008670851192669822109782976697273544174253387359228684661389361505994417212412022904715468308756309603355768561321919062636850069500722886471725595923858169474483043953282897457272684309684127368812159226544135424848960541118778775384538200184982926944264231656445683807770105785391413694475969241036236128276297167788184499014052609321798155115021752684580890599473942754179576469874005836465004583782392766416030922992293825835307366446381520214767138432639309735333385888472844338021498939498219699302037202061784449714078484148911529724253337252884433162719258010532673408574862427698538744380096489223737420901271487218304841761497635823791238170972519961061772645291160024287422935076883521234708553504502190069862264192050276188678554871218942359970811347426289417168291961788888224532886648145132956346851371954039540306476684285185031714820659977133843725734050627074376369281580336150940662039531015590275942990487412991540941398018380694777336042769852838609478918975467744031672595175666998133199959294468942289904607118945772833213560865760706964301858153899520216172580110088146561775451392253683317939494259935111801493944848466123450274465648635042319453202437170542725621051531108590947436102201680812981161067338436374855784178222355674651438611555773842777482404433051133716640443840315552425672914249709793119591422781409831558510606746181538464400751459323928840497362674303371172033662181517502334074442960875558117363219704643550343060746308756202819263940522320201145337021523619812659133211660646903965089813028320704258552138447249979588985827653310640312354755000664307974748343942912310809802771402436991495622608771110816692322307434057052453632286409072473483456676251565450375370790497610267512103904983307022005219931727292160357398746396143292927574979987954460363313431278991831707645255335297823107458551165985609651327438142783975165574141601683704319897839187809649707127380128200449480045743464697709839078082921984345431700895592497296614407830430098919679886439591148817613454947288580368459249670410473957792637438262174122236296938501348750002233006796245747015098523287691061010672943419183774326382825230774757876100894642268333379729448987393838012152995117905379995617308139519042214564586662404052352224736733043098383557410711892834566212585785960246386627966931582968283113484277392106903697985003683334372373942855427286501056892777609718323190829409741299516056789283756928872837366736414113839841344659080724384948443460155700601650300590794864511902586753414447915479134521455103674261396493996046861342929794619570977895545593062699912232525317210709472713069143646108962219963857820243879354624704553231435501203832373790805776206560730257189654507691369487503961915658801664012605014605139928460379067683451052774733235221174427163706244536132256340328302783674348712740897840938018283979845437307346645477941812968668275382130359557773781191074436073143443410823893600310708911683304879667818301956326582422336006132005443410934095915076489330423449063672208606018258306476806738327450373305243678581740194382439867249060933531687249738716974337806272683980549092766060374165747718665413773517137244683621635819411397732449836417240547762773161885236431781352349022501965631172635135809165697177117834715199954033689397900626722840371199331880187459554565678389828283908302868853395179777952083582688155234678849737625422012970398226967476269819921362563943742874344374191868454682149352003270525353357021256456519656088749096571642836642450498148204649291767030097537521307912160075266358813538722244819445468962331867736470336820618381792091208869900479479790649734755553222350055148176205900903441238220239914782878375301989165012963141218591441405713602951496474356582850797730987145318963187962456696142557679311715788108544211766342668735794659645814553967851226565325557314834675918917190362240470566027037480831170304491131619080299519081717869379650970806669511948990467270474809907986857155827803280015434660420439853523005954953370138288402303671088637121054730056503461083425353761244064682383104456408130174574108681020354524727799045627455920754550168068319345655548838868259841115934464078232482534113137609491115809966421719276994358547133607888120588893751455144339627756876381682940743955292464205343866441343751715640994064573540027418463280990453277014048194551774643919073183538738880158189611875652652514646797152747846386418377477377838466617474910393692316130640704048456133020004716447893616003547122139805134025809377120153962246169317423196149410923517215262547077360056203353830064419453186751357847796762916870294265591734944366165922197771690388083246159752012846633443032535690223758290633142683177705527353963475123338402498007891582215146891621242592820654711522315549367862006679337459431839045568342402846756844984293302140539896772186717139355476914116433374203132296269185090482498739001196980060341722963059385786318894959488526787479392119840166510969318699596729958163376907575626412531240795896892110712792221804923720451101377073220569156798820244935454409582395677816636890983578172004373568776207737522293068047990377737357932987146952093596260669810676460376739481719550441545584012089725388275269484188178704867179336517893431763188339874604067570853893160063305207677329243880176530624223002009256348086952915185645847835765993909221371975953843852450944484990873823295077100884589836435280925095154546300650797333856849993276750373017040193889012748487705616185306377969775677894454128212748729953760802143085829951144817939262905180570637592627949614130749971628537300706967847396850235053408222436221398155040035698345649985016882643361857091363715629178728961080407109132358392775734059022821637348929835836736183624993214635234488025171164597573132145417339442763942929924040198647103354324066758041984772788824834274903306107936481961681022257853622370979763602351498364574826060654129642375476068790927130687531491127762364040243388861495629749524225044928859110974382094800084282724928513538776994134092825654926683422695213070253357796100931289784765141088743397089317030048480571477177034102751549821631495554519016689258062490516669843007020355038025165637496619401862675325089421375986225500790542939381920433917960288988392352546817989738919456777314036188654674119463446554985185382319662658511341707024547723101361598393560000009104626121303490261036992109917192510961800245418712392156031249401287409851824674768210334734006124429769105069395558920158663813227950221910858054178814306202019547085786333870608020715788016549455641370013797661865547343537003515265367873649541831328210832780322481466598922276657967947566471829642439562941531865978602499112074280427571797681005160329221307867789044602046238813695129523561650268926531525490828367883959915388966747125304411728362181920438691632531032582346779847204802735234745769384454166426906209185648875897237503750831742932592587273965952622407541739397539174088056988821950967606879349918928253914636158343969114469436693790139376411350491376404431189622811144263021372245889669111791308105832909653032366418229768931610927218627361218661764178791902764943999408350361824730864812183306856434057130290155724886888337265924143404875805192743178850301079725298746740597211275253768782954063017694399974149672678936963770626733146550182598415218847358988315943127431467877420090501541685299095983759181893370001010796709180367362150185571843618765547411025619374337943389181528225769586389817406636826338584926693000029804045029106176754391467456783236235080731326882394042414673623478285196598055614155520146155662652765344449030420568694700388685502387697311662145105658457949928088442182459001875659126401452546352573673263002728891999780985055416251903623391790581524429996122393664868960816346964587090448059096352006063885407210642077450611293869184718485188003810388467766990307857871171852638487261604972138977210345730469006386579682425761903432713202392911610864116261561937047504034985060095158638660194016367817723850147026590759607655685272671639943500427713479179885764687363586416052236822264593238571480269935888742783754595821624137460411144258952748628041813435581451079320694572834328186723053508987154452575947162980702642625669195484177850207917757013678006581136938093270342452496620845501534246103410256950788854558727969572133300209664304954040186406810365949640771725599296476975933575078709093282751216238582962946651958839938796623588286632841943207734911144473156759206267899181891408154875027426415990598998220477335562551400214096541845405407906428159921142397655914079201714081206307229436646191984211094686592394545706290997659152555899242190788211044832775033476045243982353507363573609793428841098284140494388067110981854362728882128111940136569205809007734880454793467439499022709598971762814461624116891765132061846951499899367139675720362883326920930643398700405258079294865959749163420137806997581602783487747490375453697420231195325908328358590390322911816529552874531064010776075916682347617929733644841360474105767851257183622526381651002254191982984384498062695829936253010616445025854264646391057592426305520580124632836530526976708397174143991327480724142425177646836021410818263415332937374177570713962684567659221893584865584892100191549365311941997344127667030626809366037324145059468224466753296549696940092342345160123782708016960399990309261759368016260179039804157515181830856521972298294657775692997405493725103888702480256332649732553819177038787502385111506237723695243395188603817097470988834408716785870997705577057647496954223695041971533455487953623189985058383996432686969394679653968105839513569475255979353046906510541605426390242396471031021461261016898023526508020670542271957690914685523038201301989042271052313726321272344968839552035099538640719576806219420798425661633483745844699949909535823896019678621882605154826613310233791669965240843540349511747336012623160918101901588859405927714011957817416288393552100687502629843052986040595399639644656857547447637456804388205350776970517044331910538604491812707448538689909161523693438927578484103458350338149615680539647945679048621756721102107050105483426040278491577371507176871661814930490397615459619994987067182392954402650199486618363574637745385820669553543049782746633830333074852089816370109239504993227699481080728670285398072624242589310508889063758606832711069477836198233088698059632668862363960317917056973517213559394771673712916614628936344075013120861990973738248895240873495318635184576451771916250809170165191447524991516083151680894495893392646961657720835605011472991346546856163579045905005402053386731602057456342562329188527639092612602415350665328544478453220100055231924481046414846265973600452762842270680282836966381888494051253357937900308084972159718134533778856088295129608599557722257315862361037773944312935526518265941429587171320414110765002864982140567029603752299276124877000592349033845592031079681422363596209927164396451702471853992732998515567810708021806649167063185996478099316363646587132515139483619845974394372616972971721111800479337192804345294802841501233388518973992485024125391795646495130652975221404289345847444978989685503979639106944899180250232376764088854167828028901375784783176930348671839928472798948452504047066586718569085443318698083735831145934592500130281279118752800686968152854986872583047079213798923624963468557516269348211242290081656152174976427200320876958590526474945975724682664658171843583278704756693582183235756864760100455717582355635375063461115169850931343162100728579957914115839018770537979112852377124748015196260723645927974472071004361982069594714319780369341218894869633126730226275645495541407813797239930470425928115710252586456377266119689866823744951650224256722734260384497554122938613367932503537749075190670384154442669135314190376337686810412768138248390598128578763250390134943439278593256298972536050767947649774433157331198399769299504351564044481301095800107458191186084817649048972354694786646473650452554324470472956957567790775733002616889039106905674969479214090521722290792516524740858085699405547906695478496404280811206664360661268201381700044784806198694362326078426847571468936792010355150483001371962131592037244500860644223848666428954578467317289491844730455246085246565949856999338264394008309461863197643384554934622165391514127121242398930292152592838909532717050730069630984456547338179887745552826887420986566051409649618903809903503485207698946273479361146100776210994168933926031143852718099586718163019604212616703549357832803440204773589402943748971919998321824779010795405289864778760806739534656065768480880306200952697745434068480347583525646056046010153143019776768851332770297872382062385382968459556504933897891273243906415550437498092852307473703225048193602301936694930181891521190517291167199513650064244221911671038290451457831225188461729637405371597106310963272045876928424577001584096047814375725906003486036320378520356342770782317652949488384776378826585807169590800954948386716487682973820388736969736133235903569109864125567004208134805621510347523819065672447091997069558826439013327727620289504560584106018176260333166768121536481376554341874388996592294137964826836826274056459633789826413245263050839629535261115036304011961940431863570224166184459929116817972128932798621968753126286971430398658178274483892575953691378421596396306068467425758592597629063657150559360227658764413072896094074199113551250850958806921872574160417444778792490332610596501649974632632869424952865499857742883185915700709418496864311706627108646777087414554018274399796830251656856541775828683596166985188622542548840406544555737186071672086015701726198713882223672576248750798181057097231544207280395499987728437206287586686890753144595722046896877415929815721700063280076635438558231972450347512828926142429124768743023590740908774645082916705232881476251959047254629210251208962107137412215942060589286783550364614074496158570146654232284753255152270336402784782465958613086147803809405660234295676371451496493326281708620947403120549353355328467825223595143444064984871297730975489837887118089284311220586669057595047995431020222623160902205717418905298887189281325256421705130160560400782796839886793163986715012556200146997288895169129962387334474259824173532391534784492972346166595275904626633249043122519929124966359594620896753696050692175353371056402487441190699177604444075271512769980863842660873339398153296651012470025583552602594952578184327055616316750674932215114338205142406845427469484161619189186169357826750417322069407269605121540620233446227991528921723464232224007256341629215940658465067423267676898961751560350196670634885270684672613744914161439232901043451818710447244733735355244578657971503126581500172371526302446112075719928488836701507568743859567244373874920695555422109343514945378272427884994135035875910810338262337994423549896026756551638793511009175799167441810142839824587338125910843578222568654029241361987961360398989007116721269659994363830519766452940153171703246751493753251685084681800388656041556751763938937892049422825783789156768769412860894211618466793925762193364039321488184712657573714259466354246615706320817242096399243582216073873139630350792862312105118892635548179655633120256977646425788170255749050388104584502461402230940621566568231842861260464593132345536342268716350693793532530299854534524859035826235090617780532968705499373322812336638948879614007442945547114325733330196662626411414261035032743929959168353373630820458217436196235849703658338002253711599111636609191728646133378201819120822586866651547251463824254464986309998309325540465068645528347120939284824900360806878384329136952318227988016131455737491740264293534698408346501137864695767267456902772584124282806209512500562377233113474803601482146697003487072811675615053864001180930892988918741254289165743622075645660777087227065036123502366189260192393880409605725889122547832332434133100232683085813108435501442389482933088842121615414862627120487227324171759165074776891851999916426387056386429254666011802946584622296349695196878060732313813028249424120033521741194913814515820848781525658545509374956799842263265794388932507291423479158050186441687725400398182158887902255350554253782301154464390734687905529501807486709126810023326604879944023279953548788306936605747470205844509202162732325776699992373348605791884236147430345575629416369872944467569238743005833457627694724142142235270381257531300816403927421780095562284890597522965401582284131532806578002184445733130361826806389058494427846192626872565137726147686971543551559828376780243838495706829681888861865974089528536198611701338845580020046924107773254510839656013272401376286975763979640943762258302214479239792910504294994291136200496974599786353746263916340808842110719787340155728688847434316788523287504067325127657257266807412059758712629390647053995744995132976304616721285170407541756526434357774401111836366697173919805443077986724544842935138931782660964479716657001905267280890364140940592229704667869417718716435426053139383335112768073677454006821739230299596776957578194126551802723071327435937083746129958420951129836452014171136753904204635429032679712960152891836937811603504799395104770805495944506540071840538601996714766817063820480741047337172478752608373260746809840556752903254376638978637870714235839989940271567410648848369377417697032697320996885945627960829199153245859878279644467441157277593599115787131063755236924590496316185384193619281451704473706615355513051843830498339460270482558089555782669501071724585889741032294251478605926608461652048736087467091493710011554289150058602492459863768831888536542102195267815095471459729417837951455803951867731635380959499754171204797877248389210124657060668408877595856070427415274400900012322607437521473787795892182170111165908519443335927960551643101529133856365745393919829537041522984147153192159387227390453803704895612640118946936117944742605030059916836465322422571823341301518742354492249801213492842730996916007683646955408123079833206613367796794161224987291233375974950673571391913885213891006074934392490683229912897159564899838914859754892694581482954258006880358322956696619298796911869054019952786206896054388296901941270976709542264817761588972527857369136827363296724477405910382816129988111851997715107238106835836625874290194002961155760187991418807989393911456834258981484384638963373988380811975516542918741784884260773919908249125468321789109585994283107173675112290849345352685907548317731378971176696151197259863360917291275194858197288391019841555216158083673198016977825606460421780689650754975983441674456855230434368698818696890790362364045980030580553937066494318568806907521371432931187679790194169576167654389608805148248206897995816567620204728298765482574579766182620391248760477399413743981066424932929775497889893788547289695776883376085788672566526729523119907931119758244568567006421101193875308130299684726377883956907571108825184275776106313289796342209993188970868422600026317409153465731151542549618189019086321149853807292573563660768134870681558967519457461702232362917554039984921277484829698194800009948782839895798432183743208111344675969657637166618444798590209858601600751191709891541455069988140964400850096005298374422998158755042719192040996171755814905061183397206368774441825815653059521568959932227663675851811509790387775146702724410733055567272528131871843458628089752408988448555945446904747304725666752286057043124903097309896886776603758299340016720986853947768162343669542413165981667276215709254703756054672686035121680333257903505924712378776581455772542411139978147415875990115717137514099219276657789488923945533554359641511165289217230857455583165886295018544431202537128435030875686213183520446985600686188995545710086848598066238579760928694401803329357199885704752811208029826465265067554792278334084257589200978571333926723464290179821168594258276654173486349242738676584927731553193484763042778655641342091378191347587296813955647372091442406820165692402534951134139106706248098683326952755535454323776858280720206887701845455598588431403264367020794957799583622893238589012526990987519217245204616253199599669783200910503265183255605631049547484796690024811299518847146433973467727129081248538341444305867451042319316080733332314752603014352994509278648096780155044360449378037881111151734959381743437324054966556919158573193914505435812329023795307775554169063999627079990384164455318700729996562512186361747305731675123450713131801530852534361254862848475582753060920372858006910199157822224409184343197212605433204151762986880466621320864131912734981307806032608482003000768163465063252676496126414682005248317072037224947839234251133603829782580391835993390774898866478422391229009349156074199924067811089086366932558914779853918494395573603850922791984029769104775040038037160478855225762067539208216765797543574965990344257362413899719264419655843954467624940103750969618954085730932173794872654850006399213986809620829958643550068839857143535403083535210556081029464044629183937390675192909916045116232517773981132371932056028879439587732057072719106079984401213911670034439273669041462681181106641260727454685647633496120546463021046263109208190463807988655496497784198055076570144154577063007778572412194539395894503882984445661111102670503822232644451703493527487422231343346635571311978527263838445044158574204821391839608090243243776137408286290800591999030371177849279821358323824554493993750849043840977719800747708547177121898865749992499288254862953214774443082940645622432432782307554473190419452942531063225024241486259515429738120482538070336075358569792629305729043700837271432757297739472507101495899212634900494176256182828313472674185880273656364616509752893509508774551276710927375333135596086701703518497374804387564396170851211841043899274375177930599017344680241707946480031149564995365045242307489243359958949535970456492468566415819777324254652570199669236555678670964572765891798141955224123924564655474792250419332204603357340286031045049996531503396780835756246138660198944538482874880956751839994642870508770492589752815251659557465859392889465803178309575149452726294084302103767778196224871474350921873269589041603996206929839887443020557936462046971471890460065455642962436892472800449567114578455558985152701270074601081992897873675473987914008881048707070981159388393693686541984308572001240450164411503365746641931059025810305591797286328540035020442158777414201008189787631520151277955206386053611026325398913459443044037542570792031462908492419575872518248428375887973351136715964958152215317973316975377833863525190824528384550262962345869406066929094161371816497548797042783751947339880738131857873193376636315807117375032039287161975335912333344821396307918170179824890898652305781999148888937629749827554522998744656896200631336649039862019383858787340735359719708661803505284651741708279447936547885189448179850460298345743707323533192666207681021101699002138519452109492787424192903771872280600557676517914014363016514026649688404872542707889424020447431727493138751511105799863079038499996003204049561116022310853587315984042142924291551805908130460344303451435085420230189322118554371760603821152356349995421774753213403731845293812240848097508894758611705867082328107547958672971837668140088278606404952237448095329861750247078075199953709204121877010985565786637861468173155932709737155645427453522112527203272529302598177085122390023533611170341013805494536818042995238586055034658281873744118192593241133271905877706003878196969654199348955384424552950997019298021939739622992733463101008728022614354452916168082082701288648071767912877846543286279416579461771546223812012115359087583032457761192246726793773664510453728559744838129951679869899585142958552608379229208071278178945948443354155959346501541567718120454469729823699305051441585328054919566626167242324124611428358226587950197361671853538458313199150084313992878295492185206919799503263456525827894747644955530411759649315028837468429671369368847390463081244961316596481944318347252117505305162220790571584101487985859525974648457055189829382804627824813835574727440679579999956315982238357593378285686024486186059764870498461890131936015665675851706318042316145383988960463659459538519961742477781777930055146721787745711006890955614767141090529110261572366464606915295725973431552765431232518061364600411147524956926565565708536648649337455918907048637802091093304226683815874599586603476320343638254760835602613036895080120763099064427863195230870570031474951175820667633695657731441703291246870416297100269770636808598897657342101879285925641534774356135244438455679454590230059585781103683659089235765704259200897004443573502647768799929564343635801059170035168020932301640697028640521648138986474884245575105716706546944697898159930153702078021240465699217090412037016135353818928467108247095214690297982872881819183462219957901570579274686536310232494201339669810039500549579157034942353471230693708300619017007804917269197400108061730254344471397684076398569404444862541998049988008359098698033327310578252214686733295112903726873684669683017524331825227817400462866461043248177612690873133681913632099694225044143687696189469196943257364870879949891186703394681720656788466525574720632500974445395354861392489759157108268469059102835484397897598259562024406453425184884434213262998286264787693103526290999197882477358678445524425970898087602065412674043297575221555062205539551065402155433057020297120893764161623549164651091300144709254056836401330893530726600138396997998859905382653981595395977273818555143347737537691924974236719796334706212342170612841284630636995858663958620962555005921646139422036300632010251672717699747946841724665125843327555231340618183169800568405703580476142554445688912709027457195125569160199652792243276192087953481092820475750105384540124167326853771394681922414934328161904324958011032428382901224442985299653970653825750439826946077247700353758714454162742461441287989437625051096736610009071487041799985464188802606236064761771709468268491013841230866032899590565186962782046908390124581280820758170825324357870332773628566141949018145473941851200089983260939105283925622888146649384634467465104712419620576487556124798358090333010465739313926050921507094136772335082340948309500220911329514566317370906881477931610415975435108209644059059984121763091466219659520416999295832954385651574742250268952676626047192568439925351762614851785339793613311812262451931251027035762292938819544839555135462613267647487616517117567647169349417480927906870453970757451541732227865698032104708902419449596647289231673638405489922108563506580443542440070205908807080834450911887935919253578284172818988226619151811482846682916656376700008948755990701576548620664539865223739083939034679188939832857829474742267881784300246752020302613334174263219287222592605428861191864099265466535226391228659033552796210926982395032838375294840190170085813020849210275182945839383351877190683923834980275514038773926234320269947699297838546135296793524311302065181823164291215179679266615178053921133047165862805164146446569629644598779307550984128932850484795938243852653012149891279169301763087190110065533359401009220725090310215621310668339903736142658484658813430211021389156191471747616256251375003246626066956343923927236887393063849726126167183123078603690724949481745220674195594770744141739916371216015022848913092117232855789111765259543807617859892595832315802556353205760548777657048021566026298989785836433684126971990405049616433079625879429696842657107829212208355007617809306389233395170027453138998030563781013685053205917840915379694923221624062754928021174210270726880312761718139878532925942114839461029255541199698628296233716411928698487750728455950084156239433596308658492834817131050945112445232557268462010944706134635336690356400964293062677372191178048188777736507123136879929228081054316590078224816922911916786977410127268395113741167848562851918518302314749165502655518993707183119348445481131988465509598950419040331817366649533215412899964655309182986578149422684930716015212734969679902811563115965922636186449958122925604742516288666238442487541625172411558480318507722597890603118328278810901898963316119813655318811720266073513513214227051870952251763148167349749627812868774523543288988127847818413470719673610798549949188326460358336705277705560755334510699008321202750112384601822527901870483351216564991772795332690286883943601726501164101314788730929874371070369922661929708852507613255307147158955497379280539906810273429181177114557156396206813516349427702711774677518549381466694553316396454817089300248790783243669329958325783324895428439586636484576758418652290309785262330207166752052001466763525723728869163314323740847785112413187228982191439722166140629223407134872968907001151110458559192016284629706317741926130087262445314259363307819132375809306504884512060032429577947317637103628599638295972134417713637487984372323568147185948339186269846173247377271669561848928334961912678436977760967462320201050886750834170839241159087491223901174866635788548845475614899261030390145426305519022153496825009657227346773100389590456829952203166192687068389825911390402426904826383177544959174646513970671246834990001857064938748329056506155005779393929290567001269456972492097347236886613414460100301200582556836180249111095234644100710949602414827719839976654206374583626674745884540916533217110374180921892993694735044019660602404465005149797556543340105683496035724117012455620595326670806932193622437382576539342250281762297297543975422399250741757429524918504017001479504147597345926146493649124949455295023703447495363567983233584721098605585063377419928624758010634805392669100266080024587869628509928316197605139291645220473014637833410783189191327270413130617486999212383133340311659560833855085967629772052724997940914291606428329749177134736985381221018528079915520609964175557813485135000096922697216506852930162462924906460794302181088606782891754811155898187076687630522758908516732050641343419468869607530372675133513130532119319609766166023683968414048507022112061508051579022286406649274997057125707560890137686572597000767797247015598045392942596201408469846896507405058306380471555759854514165642631337892805946597743636434365799161248727709868968065117554088021741997184970588144678923052686085900075179471600754535399426231196096078705258596037163570685006627474249517892254787174693506512512313881541446245061707399710125009384795180169933519066722877738866310152522948846661575563692109177885933015066158731998664651528471466425772280829675893575195980627974921649739649414346755652492843863124500789647742451611262942974075245031192136970741562585820168126992442487120722742658569861140144594017538815154131796331705082353453777568883901570372599206742130032281743598260315506554038365416794993764615652642417430585317526379494066410923309153740155790392748696288928664255412331991616763424346065125727324632754220295344155982886643698663884209417930907071261238260205333515674745215000386474218514115531136887973314829859686153904279561099650706950931700323836557573788143823961437809424833462140197161143936030026916936630367813716440123329475060605937315992465299581521984458751125177720552461824900200951545574633507925465657870928505389429801196601817880900829664372235419550272807885244483457956974278369240292367026607619753096523233520988212693547708737863874889253360434025879573682330450571617391471529386302850326291326001680777846022065705601736908835586363797043433489612144243957643074105788013590712314111680425313690246428622708230125573142631178679147541061766999039933841281070407909117670426172282900088332191130880074663155151940809384152242663593526035469167914024433059576537359456113443394861126228853527469180544420800675129116263047424302322503585433041200382629525979907101943095218422674716081555507656333572968229735638835645593433427342599969252661481060907930125607092315197489629624632302396926357720260845834183761111293534382128082971569857238309743923713644801960237723881493480312355406937380197380210964825781142114497336573110029219646073904525591486898747227636247716083606072712986249881231399419408304340472661762740289753903882357844912092615401755760474010814450984146487928811056725330891641830380210159664485644328028216024395262955474850164708131045025129263011275551136924342636757269522928741567411954406312024724791128577967936749009292859865238785786622036995375795215298578496465335339205415378349162329212127748720770939553391895628255017413920103176466746840325238786893448999345213563810192676687556652009061272154455607918390743205055570496436852453681074907407209095384469699624470078014498244376686863429439441154216873960859879408072770912711115634322080675044989861016132113453826526793314501220605260857629885523561869080405639695372903464548866413642882386436468574501112613332058523826765259911716464662798505423208922845677051372938843440908611582702473757654525936188484889275104213191728471154536370824762230759374347246780091641998081517882151871909124241405630846792240934728552048007854679621880662140505432773460973820924731317546983623543168608392688699609343660153743349619812140562754043654900441523495549652683098366438098543317331365021434583842420688776245570133540804880135206621957860897871324894033977380563534604111432228441147560210496136406941858357678902354338647050549172649816268234736791669309250724123858359710754148156848066950621763016779304298931627696113467392069456839839157734877720900336567535273478229704081999124587007951487597000743661786261296271123586015533679249008316951275595696838934136237903553166629651611645338924302522585763481261882302591846598551686424049410102783479561508799279790058068776372211109581331686307509784767507743327858399795286597651168777145228723963214606798277407528750078508070462057570786293576556692715945337487730568372629273300784819541259040653222830025580044101309053965526164759188816957598378262007345760966330030062068809669754020078219705994953710751887298292993521318432625765449323713045515567375137927519159082532294547319859681306766641401101325979046707000953870226996659112691394847263054914131801425711994270790283752277002396025542201555498277308734671528109177367919525166231933724538266878665721064159974786553334862187196108830386410180751831386081582616964970859313185546919140840018805773866670651496378233122589274329095543067294605177988630599487631010645590459784024393124212289215723030970116474083685660772692583100424795467364566729639221040350793403662924290540675388896263619548416080808563078430930715578387975125545971657915366077736460439265942787622340330710936195767327097847731244262449394716628678561464546518808452554290535482939232468974985960269785601659195533283781072233281853842954140125514367356147223794198149374323075049249906156757401126029120448026517532977849541188876319468532380433493869883590089212757077243807745465040948593826700666430628481014267889596473500579445573865319642945919794896204517787339837544178406502252808270132568314727493825853776934102553033111341550191651613587979102040890219977968117416781831263373482017316182227693798647232226019342753211954133177792467218039249775194849227047733971176890491137804225044493289363495626545767700899350347288236396956733100687282386460675008054890480329869202748681557855450728880596566780898659217364060748206501473613375042389333154111301484654600246092886629796278064109944674605819680551706962849387482167028140988154289250199153231861351053306098500178378290312351607816061475121997648748461884447333192629773733081969278884892728626370597444563879790736006834237171169302841578647616674293411480376104198510424684279555298193033064360158854688835911735033879421506659173605436197048900822486068616504616333346076051368382447003584102985894534644372063584777903341788248010108766777778030500700511930150514109133081743778633422499253887430079490156782149336517004140596584724856971166394150137894189020829971498377925098863966015560336878553389542538961687584994932748453623505184613421895142617740396587869668986585730858313554186238452302566799393322345291359432068476469999496291083279474935315414504700354984959308790297599640607221178133179272006674025221218109376096179136838949677683713661240336500309619650546944460197771418305459309463687989601057859348337389651130711844112796772289639906043428328682577522405856799386828536695239094110595964165215406365799349206517495817558470915757167386404889980506012322060980117874379548635249740860018540614170853292084138909935337864693306736751979153748838147879918859692899861158554322720545293344087729551212742576949783638370934790868995549121272389023615949813890559696375979704354642353822570794005160853992042028563354352787668733347704343634123384145126081964929802519106466470867837603714917603386236388335938331043608752668175828902829706269031850911638228165304864816645618818614925858394645935893554956373324197174059858527569575562362900878959546058739274417212134748459298403579084205841738688534194181334838442684983784589294969125961695415107247479921810435148494123865843339751817117922082668146594602566372268486321183170373196377544036789343546770101043019703431827393377271068765729999659111047507113547813300415781073676328187020472265163727875875598648727958059855832213426883600759647062675940999841033761142717521572697628697150194398618671015364414186940513381072289953738018997380709834278799861603949333629090390028586879903805772539560032387746104789910318767352778872143693641380492716307298198019563897964435001247056394425335122193282137705993638620976042926482488990988542173799287773725211771922654247219213302584031587937651501073211865902407100393306415506130586202632289572354427757594633667326334094064376614059503178753451099555408187837716136325945426676797084665070731211970964341765866567557526463435664806460885539548177621470264530174544257532256768235903402436124792799085944217111966434987858192444244749826523571701092774507923823400122035945918350091178306316070043831783616953850987718482026474359946267431760505348737031319597363973973318980697050210618100447937788916531054165056689432447955275557825498983431579952892745759514345840356592435677264640062711066230863774902062442016224994362152435100081909945991875816829079086714646251323562152740143040035538070551880351987346363228818686578882154195132395954917435654884682571897123897290296068217503016172689570029271874203617335932546008993914842045240738389832649776244374382459126133823918807185834378299543116143808633601211332328323073219890375400459883189915265096334501360775230867360579724444664652778806714844915736294765779676848875398022766595971447246498614850348699320961441409716938915650288070932304064470171439797420082954588006213297932257535095311763080485999838998927223556602454295320404709677959367481570330598481957593412591510394738762100255505729185908061807755989601529501973392755314948839765611627864625260055870300307034254503836802511427153444763899137652765517046438481815095924798004846123720363307102367570661813980624205502334977269357806973061231921733449715301512813452920150041195514293330751627891440714586844300762220547491773528841452758119046863330731925424677064552298829645465020940886570600494313049932371447365487996026919360091012316534274186120590734660128641026307833715646910126588539030535197977124803716125824871455513125801173166588969813242656807141328257861670577802526790376415532852489951250620909909907659099947431148831679262901796815932051659553693613321679312051606935864214012250708681191038376451291486438570428840917173754774054689787161453580533344911556485634503616752149242937199842668359847539136803902481764386868320583279306661399526695595983538820176936935830299651544245866060761942878506909701732159806541925783190997399442551645633143232028781079924038576603079535210391281535930277176789419949391846713987694074320223516576736097597506585184861233189294915834584995091276505863115160193451109181105521810334037287246351022409618392223751230587600566481634607476566398227705217205087380428760109021007707389550679686734799940973986648551709804010071694674028558152899156813541427279169326531615972215960398190362940398190446181051897310499264327064019217087876986046476827442527498927328295469087102836370321205124592635833209317338317672050070641961912957008024658697071579158327467445734671894729725019238683563019516863976671595991824897429287777320241240207132432354796745326031195673187641889610123389961288324527287398056135725881996857249431074729546191255682465101971753582514681027894902377439269908720434146202241135688393773863401532541808101308092040433307622591026562938307851704925796951523967755066619856464545654959794329235070652444736592210902839386353837635125387306097075404761686397304496840757445646593503856859880379089839174550653948443180080789000760577261862527422041808524603560713482502298600101512652838000440183697264830910892921274001331054615191720616827852083801746290402040054558248083726242792201441705355914204106921538911156216658841578939367702415136083460561610454048001505248164383873785583084827977269554319283995288302698357744660134099345890324177460696040009832764388093112681217037191121241881486719486023461102749440953800224547365763635104619210223647845875726495837158919175331467358505336952243549550480506692275297506872048883139459312222912296369091116762019513429483703432604032655651111673390720988734499642684125240592292710218022854286843377999417273192375913582655655944107464436049918119121132097099634123224203952206785534657621070227361898058868820509638838572550034362951815352788399549771765647831154926704481560610530587655819303046215370280896268364858483008725216512620605527558533796664084395412595499834008335651816447794046689545694563933814377450566973803443458066984759947320678874384977518353062738169787603769710694488044061480895364870597993605283728730898455907147297192497082246970763557914402721576558104019131800831633893907610727329609531632939925804797444672029153808896432754910064081260653355301194645147585865008336617488210901906449198014105124171247997131229289364761046677009228166509266813617862286727641172936575390978641013820617151386883741788732509838267330751145818617671638446846466800597622852977803240377279703882390722247588706413594062568455678540549471353191340922203158983822696338569952916794739914242374479503285719425190319611152478629607749928158105592635107794462171871507833587749235395749486821390041316354815739858028375227293409541131137705766422486175057314657577283873246067679623520876013070123150772312493884051296014916392237128466273401198730008762268349821443492547920633379265270417960339086302751059689445620423903887740158523698449187299349193480832066151819624104497342520512564988436903032578333782373273367911650119464251800136469378228613531205898818557629848336333871490952831589233220552031191615591850718068684575355581558266706196706281097648195784743738788551252233625869249821272916897159918442771968102112840385281948126549284113683406633188152964224531326754340257996614783297417331406441813237962204137163053911563112955369950955264271855059502351401815710435245775030163989252640888859784125371334987790698894068364470690144151527501232871778247589834969751707383010847156193080186173298121440338831498036234273226784689772733515030413610258020678487832020790623432036620961935925369970535004111728523526062949438982389860953814475836661767668559406908333322277171150368507632775775503509444042068192333053723339187573391074302239177610565269183630268095712271369484925213478401831012493909761680473452367002685180718974057394995432982022078883858437909948428659864849930484169047477225135687746561409545135366597244865920807040996710892455804828302600905908113993836326408921375065254748870000282659497379033097343581790378928320689679744409224128241946951349435694776313226070760126200571002878426906879373906162955095494206173564149705614968596748001153918196761123444142870935881472875686699752492376083016560224924527942525647459015251646466875728163054803021523597002704011407654648696421575515880320593649515229203757778076074934937048212543413849822127799274844057591104245838006016869291714414752001718892884311629955069341500655073830957173273511670997917830729888178150262524779585880736443016606969261579332406167483397164130589980849612663667931306616670111895942798698047957811034070330170357091257296706114197027277609133020060666937846561214532594635816566071569371779687248451779519540688685538091574810630567564067141178112051856328394955584167229837436916095569082122907321130220622685711276967837161919041782585456006580198698255117557324393931492251625472937383357396230389234337479973922507287015194189628063048307822425143461915622117850658012231934000314772845818064993113603335800997443295196469226458361500109610513553537756610568427112137304286551342311950350715928198782843689410266182341876200430413980567280600743894433410503330250251358303284974904220874043391226057454792409370561431347495261970553321319710821307596922164188556833711332763656528061440731295756182843912219312001686733095700488977723275453322901519015888029738805893655695550669755815293355583916775977131637364100958799906415027039054610221883200487792191341102551434616741219239048843878759701354585561399706017190671518430545572672207399776467923907733601680183751658249689861510366432049999124904686043438602600805775946735447516758645224760838481304227493184683418073044303760713088349666046951872767925644756092852437522027611603790757054655095795145438134364913544596806358545470758001133378887689691916221139270175904487446529067154481516248170139995454678746448313401993335720276138688796383627993383886243631420593829220912501346111771622559555634738215368952938728791414744744671167656872657971277840419717278608827475121498666412912022456902185149050655192035709292879725860511060618371089903501093616060651747425076233496825440122496575159504244641359185487365050682561997212712479421669523536980241562532211424359928871303061253349493530376600376967401767995053060319524105056744551056235182022031234549576000033333670108422045933884046844490866785289493248342144549806079228128679036351687731605976347603648426938483663861856011562180807964860295392858515664788021533472131904099720656893565883328399287870099043935043348177906081654957543025096233594383006231812176426020854151681600870607154749966005472082975874775022847181350472973259225139329265661359324009274900178555359519928770894723596697446496590462046381523398969263951891875499717897929844443235317677964796703580625589203898300815028868854071715827338963161237017726516026046182682873366230867155358552158787046424243148820331682935817927574582205250000356603950574245222952148180669856750500251346932674194006428053619053879865118041839668043638717269951917399173083988071880540859259181274757082935884723611331757863787285931239671344328602763430716286254536628391473541176265100549961373462959454552634240463330952067149897138051891829051921086945191843392974958315241883491982419685016184183113473004163586896574170207713694590662443077977892718409341379920278535023903230055525828597350161277759838237077428727369407688548308154279225326981038820436595912645218359845684234382795944728247562759378501932968809072297432312010259071206150651964653501191625147249462729195042533103597425018389952968986032286760700645726816790757723807715095271649406607882489683295300107459506515430131586266253541528512712334420752106656791664139505253420351956604721733020808426231729774032540464482263681430242488572121896834291887466816055422108292340085423725147452059780001730970142098677557666580856451627675668527645396601033483793714227470344331305776623005339862780971883619261686009551692673355247036803833703721987307955817478091254458877313111625394820029802289814768552026625460129526275696534176210484387446287353328584747771409113096460409800306359001170522516420922362473664695867040151633267770496654561227541175829141003143762335834420893868864048946923768298068076385346961468470794914529085385735030499510989337993856269665229339580873638971321582690293800588017967297503226933868683891307863753514920145737659795365030874360710478988717287926595586819814894806427300843302148142980814995797761409795086172035205139294017408066666107518585517856826672207452387072340069224910093501518005533356521440763501866639782809017603199422027541440338478316896302578387394153030264472892244324724341327860816110913516400860511409972277808176627532968184005073326268703078082517834364763640809135169734853179463714634984928902227727751144540126883820314904927344891188300199909626815969252436837939048056962513581553495091294154389806269040038761457335019649188333532793744532770867816231305182540868068981505329227683833069979531686078765811634718914368908295435446762965634209330622548672253985911132429142371581524665246771825112475183576318012314939385961772687354359891735623285897143071840540582601687319807501755510817563557686952174249915905656548310167092874694389085676294006575776051105725145412844358938312708375851579205686961372267891928820803964046005418945015857563940412114362366555165659375289740390422202551533435003132566004933258418409413089436218773275034220081142537403923500192156554610285701265855696522241428846529422645436377140837671058797582918827825743089347103867248444392586278226931524461522511932095015078875668975890895066556373249596461428721451339220100788418940353698476902185975231127642619451529208778354376652913284298390211886629802450312576206610622105636417598528533480620715098848867278234874175331495419503834985291000017285154298463243997379990520298085333340812951874505590692379978915719706415326480931999424519459303654965878052521724920354196346382544620863283038665463870372831851048656660362419199273867433149673464223273178781240599616075024647495054135216407539907825379341991086517132441922661552857983347630654884820308591143048881803636535197962659620243872008046004593043290289589634204725610682622719993590881122761596934599541231868129666819642981482815357888535373563328291038380437012929001357723425083952218560965922446173006000760242479617673379820218598722042102301000093528943060125598273433216112210321623611953315994961000089159002986119033923094106280289691685929139050293014880245123306575339556568761840147063192813302311786233618714987665487172655513556843557782311116885953202020699623070356267209400660473675279021041236372051259838978564143955985385618003179486947686593690354300790714312448336906616162553579537823557150434861648978110506974611932928538050444400596261979535297983360696790615501882590283809362484420962390048657947233633089556816479419565095569748320786937984585892379363542054097081242404775117263624970195520787977089027860429506042631571237314388351241564136497658971565565810748859048909958183887688008955964526598579174034529575194615302004036788284207594812024530842607983348140836838769148728136836857127407931088321196601354538666709550194343426653153435309334840012317661811067713294078518549201783361764965691337437422215556863629407691831770953915968624715913048517874162997977713330178081569293002873145202805721483769740195650653011692226543222162140433679188509303303530424230429373594102484396213248381656287209371468219574506609506025896048913343925827557856868551742709661057599516815309615668348499235771584556633445409134038472641601218902561517367117633987549465336994399894123659113769927579735256831452326471645792396817531505257604801814798625226220727876147412016118004622744002914064071214279653451413577379507002566831518900036452044405188391863563855425197712726843687991640351119262247066883088053298132586279814077673987323122802472758084280157314652034420182501841247547417152692636749285287475897420897338945173023100646219812509816958805459487616544367733920962668156955945726826364297385873242577633344535241103683253648703759646647979404524697872589802685731436040436979565546941484852487492671414416717310868438442057179734931059422710807243208802571276732852124624441583865909640538582690416748299458415165205088071656952740942785445743063163494930237935473812151465155725569757188994440647062288486195000843923388371958787018303884192904598799165662736140387073199555147079447463787120381813686504439090877090340683940842662863055051703485227891817900682672663270163436777809613945602277589719185465425685731295376893389768260520884163400049510566936194066456421447376430213710322577565041504682634273431960512165235756487673461884107141763081337472041433534611908794900871572060459594955544890310934319909704839056080735016153847741760852121017200926093612071998830927176587365938503486194111253375193352390370593809544940834538394141934771724684540205054519929603234695123996165734072314327998171137211310804030531101217516441942129655296444711140653923534111884340932063423510866083933580190786821405727567931534624060509377517665542542238729782385914309906031288526302676347844321124823888553317445827210156308075470599111661164673307689083330885147749502180742920038196209180218622200967429586315289370879291798591729409528079364679357407074921759548654759848065522876409039814213720878428089360160935324688086119009196567095647529858847842205250679561938832863274811822714663165845858011669632668795058627923722939430331222003290164769282682845035432984870121842091369801017102106005283354321944953985464448880279938742968606810982270616926485028361596991990236158222132304075299105278349066323392220147471301375651857588496461560241174694486218900545152871375559062208590887831834891400195558858832008964172888652280840532857238973444959536774458787677079101599966398079040879316988216929957118022840574396204757739880679612014447107360255910328561993294272560473723606524635376848990254565984219541143040611975620124170465728093896115439184098122150337278323427725535601124209838483360629404221098039901480622326368045853704792373568543329996662294174642347235513703354358644181601051142696122787792487231564760340077031991403155492798218577078973449098120058638847855000439232836668566060394079581998950211763785350799174555504769438290129796572714242997371614743238314932872404724100903348722758646964506108135747923015002384516382043930816807769420814218533571801734954843829155787997160035046060658674218615496066182544562240450651433795306045101641429721390637385880858107409526401462776944983214242747576599520609880483889570007225288127517351228167906958798647140849044862124273451138117835378201023762470441540371130889996273191154286158246911065569507842733563568177067797487169905292871199382000958295699147517711667565752189304387986308340897538033503881927684692731575272527274899475545131412790819887846217420631804924560962959147399294777470256615969912006298735434436704350662939376070475656485016417906438798195557277308559251710002388860959641548055960511311927982760113518047257893928480781227523143089997246819190686118782346224636682355893010265960114590118320832342015818918391467373377272558010816597288238929202456100086108409461583672692339539038942262859319689750499919325513556725618264286930634602531035971031896155625564541360527198569811382384330249283356379516223615566630196837972629849423346916870668972492440434345155054310068341796586741820529783682481433356838246378698266914135221388333426634925783165528091956045697190723783777142559902362371800325755537881381629735429045401174937301043662450433990751471817016839261332284465340008240820006873465089951831888494879916474686743966053854994696610630236225274833061297309964169561297405565796909462378174378963374272173939456900968259249043162602855832656417440350310650167040117027519400313965112921885716420135855659512362989342466583715575323411586677766401132709353908519075674215892055814184630263906933741581667500910863753727088344707674777660186686543297237972663567111448709509199567870361364611986004055206851763603812334947619012653357411860153219385121186073586464817306057462551082780132195719796051312149092603836112744246353388485605775880117260796274245941454995125570283732085525291724525250253734834996578851467529965618795802311520813399229302935927710451222641755872436416543865834343742674934387222193173726239037994616713261404521324963476095035005018449543727287323170197123021417012571830816183598155021516304803228621681577084415718518637725956378028786996685641508694624531004141977269234895103444026107256702024204612691860646506261313381246862783891704107802104219639052438136879459100217497056395163522505130131750180951476024311603761221991400286131864774631774678930325355701108285117438655974137966736443137918141111765940678790039137595264874575052344771012107356338606679741803948378926163301273231732460978704404689923060393140178760206120215792380502107237229382372420376254712029044813830942188657185594584331978614185331095033921038041232463294680207868415302985154689359243790916299405079735235366301310630024086307065740972394395290844700156443665354732427653763029477360681836093863758541301537226635853833642370400269020922190075353555339487839538541973899779834003962140601527050359401576436350386810097540962538765228345638206267572982391540750283704301279059490668143678890775595617079175734848764702261881051171386473191749728258624362696809396419143025410410820142556804810561594535557045026089243971726176959573443981730529983613318895925636415617155875222236204487080124652458948823533117860328862676195474826741505552177107486551921033467609711275447929986699853248237966689954103185108538537975543307201805520074439355235088179913127883508686526818760026073916088951102945468282428369229092529797795538900666978984848906201158479712014282267627009518188582129473426252165216252110210704981430827266641540196095446856443682762568923819208836369931736326382787067830724885237859995509968340457376081877822356429869811889956994962032022079932022409935381854983242893130805659249472940788795890535692598010185139286424989734636289973109507787393194479045782543832716781421648600187431014491948058798048162940098933031782198970049061220203954424160164038368389661273312638691407778475259433010151356492147452524059851559610210123645498285771057222373563994180991498881905618639095744415165423105066751101158180748093280703645770097507505949070507154536781242393031353363893582372534085884493282768362657191645321127778485751687298261224362845159481900281547663206791385242039689699783527007483275711047704711511004600207283418296876277698355169437321685399597492250521888396117890735200561257209223632153136504938143825641473947769596907614701842116892414607556916613464611101326832803095635160547696408884825353323227348486714512149525265582947890158306485515029474338853691450899205853904557713288115603024882731072764336347553300815191704357224365185712061635354717837412092746605283372843093753561871463444545922952307093091685648560477374872866609490904002903816829066633636714816083243274380417667215990471457797127740912130706092343426098989707601306723015962551738211601063949956565477596370427599605159574334342798126750124268005821926516624414369643368764960576093727739864558433976859315487056815347312204430420329034430996544579612441601438286205172655544802751946217846523420057908708241094337170983398226062335595893387108064700862978381818924699246293895110126393097243179096647435144092450604895913719421575891096048587927754777637552526140585122050330627223826958834924221456960099595707835592193162139725146402016617954448311065167217133653336176822920297747243574827701793898990644913755757154187637514920744988686843960939836307113543226213484318264152687318357846678945021783448882937114725500609832007005652955441446956162565947509615553821874724151941469514466543418027519995889942405241618080349674980876761848084298445674337145880153325428891596640428615537106292320569133250644923885197588305142871334399706392118452514350577309925232937641281269723835767570523647368141768725371655910917297885911021208569992149422014495252170051763496764990176837498438079581438056998116459424396819253935720753092952804041436671041174834326719213553339186289990030748924257338981252717176878972156183717669008383938932411955533428075910555425164579998846669340051573188460605824848845988831077038220023147895315681601831681740762141887896503509801620967687985162869624278587125713871643037143299319635247539181047435918082583120945030516751179873842265162976285971237421154840964966540164551234212315165056016830614467004922123714873572578266958123613945961989372062239519857602955785452343216953850241348183335818953526906374037851851904365917366308560354689082733570116458768770158113778992269069554736712552304870045289476544065204237277751762742302211806764398414445457861513367810571411877975399980952483567586515911762288605565960416081499199623321723601338433816108018865215918988125340252070507135656258247199662572788394391515710877907576707032181535097202336722923823862501902410955512807605777985895101903846647535208759852164342480971952036969447434870885052767097799021420312939182439101718044602816685331896763395497501321695312118841891110098097655186513987886456293944972037884601318551866577166598836333788893999548186294394232973472334613953447816678244389205185199940558553651865397129746732564674690824454691767341787748723484912073904003226030573634554111977372098128048919078263447404618016466376289196510481541238778734193077484967781446310258314907456641077801313401921435368208731359787027396559506929497156139674325454991875429871647686981903950049452399759924040608913903205066729899608322583740568786486213446956446453617557489793011228714583295117393877646248904909907817114992473788629025006396410554571381005357361749320122094789824041112345221827613556915630219667994553164652830497554860088129871381739135173675225239762641346816676117961554218170175363660308660863547832836400926659962499932792367334492062892382008403587356544769499443317991970700889250604642083721395845401833706875283117389261669140891313468363790097957957785129371437564111476114239753747642540021553777466663425073295773294156997473700413415420448045650912345036354071463338251047515981323133269608161507717222768239108320277984779123287654454696086536632261810420127355596107429349497713752696452683311013176000974734651220103864422026074281234730689161957010052492796299386338964826844914251407531860249556950314585314973028684364732395077248837161734130577302802353305576066198575845465236506951334381031004407683954384280608193415504880674716631335927115440311131048588941572190349179735343759955162194291759592224228923408484383053438927762255276315837810496041916266666577453921522142148359027422857824461482168846220568349878573470507860822252748045078306382659320636819768125938772727881992564250074944885293330111162873135240250988338442524324648312010572515729257076132199584851858511377626079775019381920864702484197259315753510278235326863762660367215200684041113372983300067887331293530690626414392242131597543673598817978115309661442770225554409493836595139364648588619640191943746095057336368624465031277105642850980946775931158840346369653051999006268287635340064470122081089775746098062781142271255276150484565512499576252017899000969197972968988003611771591939437561107813976269294380288342937470991250558611710260627927346764447685396271963580051987298685972869581121861290882185319868699016782716616752770375624728760814194974828548394625755164929893277621460558706551930221320463083695797842977640199664787909542658940477071645667616226790592891023486655999857745678356729430484428759646177028335593558510348236548508360489482309516915188275238453429567108831689544767079018491071510377667813881842467624243245504763576743633377835993140671501233435032763673250682650893769938304253578119168574732079444503457721344612694241061561683665243224363979672433657009097347407210683250546259529976720680641738095671249495415752123393584333615737063430547051833767944713110241394491015125112466235501410309254916823421443994333661823414613958560925648572568104806915714400045169722045288881794964646977573071835717735028405934651930947282136313734934944132000909485067471256767176317100709752616206178031363046549937363871855705320619071340487518003327630128855289589709016658453354616636533230169313684405094520830588098365186579307043797358026158767419343311918248129046269248747932124455086436344706895630650973641012023775927005647175226452870449661460816321779949465468609835408672215318933615252790528335505412554217204271374161847218432738746659315748197624960835562809731482119860401644234649661865106002788692369060679590343023125463152811559652002586305119561649513544461348602049354861202705528977402782086007334883223218628632626676899794120406875502625951245124611028938145807720509991016139256099005226084137959143410194791316486661721365373016563118881629228005186375191831449581144791464263586496672892214621112997242782595187956308056186296641153047137145518405003845479662238728156220534273382592365319606565195124063556491295781611093976728030218765187294494061605566517039860215021256519643544272187647732726756485739778846758399561456942228595275254829560618593070622930934093026837855262302820508815538053720061064821749051995752901412627890256896134149468768970914022706048298668256083422495777236737192276324280111561189064778198755180310118134984805198113839391878031544096203145982973273527666357631656134699193168334635051175751518051897203723231599557281033459539200816110232272465901532385514514131743927116327366860994243282046061330915234758609361933168026254167771724244581495358104351073477800105391068752031527469293475503465263906104351013012179643678155166198759441692232423523959497046660189602290934116035329819049420439291001749179276291711503645103309916608914984689290052515251543047377100364066185294176128671689005229969467623496474482650215375561123940612833833624983837327662068038422796552390928867594319757789073957550825210622683724427903945895612755909824971805712461107785337880051611818237143994377124534667985845034798467223544618632587145767474803004799446645259777806561880208563682100858058358061695381699628172699555466460591686987324350375406295619766430114391467856984917380468452479393304240811434756982380012299186662653058323410277149097814163445254993992681488440234971501540615111306760128228962076319136177051469258636475425962095935825744459119783548223992044076917122644138875677677080871633905759383663142370298505683352450909243142709346073577367169380349602123049977186260349473716495466255395383850242999015627245309450499933107951320967530256493085677661483481557735568111186368290369007701462400117419487961518249003857680217795838645974054512812349128171603545226938738181979450949717367610270262827625839730869221135733241691316893222156945439825829876708897311058968538675367783349484549940060124424585541828250236677538981923261565007722516496047533410371754122201324841566992056917390503075762731186729937426557317258630736349511776122910123723033820689350752134567990333778722450821485491824102247414744107818830956207324325156234786863187862312611999815446827824816766058708904788103564829421757537695984170615022294937956089320414704429976774296864819156611783178517726870586098006874270117237211161648255527696289026211381029722529801938300835299611458689657415922160925405229227544489116458330017113383415141829610846956454910132541127965530267247783346573539803294676543575903617268519681941298119383088725992568256226310540870983090160623771813027036260574855374690431702175778035818652575934465477987902166163542847125637214796354355724851442561091019988924653829640990107760099965583292305947189854387574223625779282964739443962348065011595962290587810787732400238927423616175785847176132401915100560640127387820215135195425981492649009946261726948291499592819681807129659237369571463082087977501671577136746470195603908695580151621414031267140381014605742343580886177479123016744608310787228944411410215909354461301794196211257823381571185085440977535147434485883597239110014797270708026903988553201067357210409056199907712744703718007175218250981657502659342858122013182259748865464163661107013612325254102962085855335950855488391212854254423290266299280686605703566003439039410562536188158067186833302525527403609944115118796387754010150371863890812513456655643710694755062401229316365738819460094258553898306528493460294441775985675387155586463557911359330936592137210854778082034617431430975737948041087512407170537123448926348428649699157279764954506298719901677520146880123074860603117828138964971475224928630797914619155719606436143298305986198124634311451525679147427164181315145998753137464779268244279396361222249354801700269101189793591275125399439094520809443171125516019795242010334690955348500220389808995912298310330740867711052999413547049176022195145948582351256067174763355874375370909777555069567880924240846583433330479569470164639052444408801630587146709437405211140040807397924251340925084517458940175160521285103804159940574566163062348753882118825293857922782119786256821741931347773971975659114119986396962994005162348039271402370504643403505276813312753570419474056119766197082983281443572372272440481117485395131162368865995108736194100816940074938901008908363769387903957220416288039404111708386897231824343853198021416811650403649270177228495019696349319844338918947881324397725023326266391237069570760552171188578985072767584743457065705749418369373670536833527400538852430377817023627548502310868087588126932180282555522768964371001895286535905259906135833619631148017545186428256295995728000769168650219891423596678496640761794402526750443735148512391221237402039364715224689364587488295755621803514508600866402972267893566298585852642083251594510098098262769963925975623746806552031519877630406090768741895602854250729283555539560498596328161755618155061118254473246528797184474727883313581663609781643760425549851747962039488720874195778570686641717289444254676197884482961687123856219472429787275178660936238766688074607958229889065329581450758240330685177748578180338628492449357515209644010493280831249440258248613897138530988821365663311592894736658349268436173395691261143617857231850441212704718728135764877176158690832669814689155183206986026787174316127714569417474272466786745180044234226476147760892008702747824011860415797375649222578067143360451841878466186617552314359600808169864570839552417986743913818818964353341120140672544670282284685223093701727615331637186477307077831417695409908633333353611644828962815790491226825335534654443105365259243597323920716929285075317275115450835629800180341803157857375747902303956996624610402515617383334832262472038570228815054474309103193144543426114151674879538002224552191745512789610258472877044571414472604488186009057554148260163003730141758443346791595423037933506301505842347059617986083665816371811470319684379701315547986230589461173982459004108291978317628882519778548556530852153453784366957802005436625566705523324277022366467271870080909617965115681670320035853257321255007272047631674798716751848058332519458882322757319511408493622807634271807183323008549314605846916965340882264685490289524889722337757628594580930375014858043078315830710337557172608500147901413272883554333759290512816954368881008367408174603352461466243472772664219474387800209526137076439719623046060971062684440500251400705481594791574191726170961654192828746423533883406658449817719902404854658263552868354602452443647700174947747288359227814791564001944049920217773432705663820138124873798270240682943374867907221802601933721188251063027128809906574350389916010759904000715635827833604797032222890241596923922604169352211697678093940951211619178972437721825731446277022139991302998487782354421588216627193586420177725531287969789062065746373061153081076190480671240656810736279542102747766656698815195980159608236488906662767199286785999029289888529637304797123782454681041545476167944100259936236777014797315854730371501977557942340770685960948691867391627083315489323003958986519377178534455822803342402183737296389593965269489535173654059274950412654057616497549005922946204790662237978602062759479886924621329522240396072918537569734817414595663240922630077314734518574904453800842529887593134882003762380224910325692689655698161280256826039654604421966383942389041847371490523152797962809513338817905572278117560656134016969663084391418653869095336630312973300770499633757986395494304895146745306907732996445276187492785223955957876741531089940592453488907221169858089405052921347238680192182978158394453420945470802267451773864517627300430231902716121166613625436186217772894901334165297532272933907114832385933745322244953821086362072185093698370738625586917052363730895734827432832258557253353531484862171088092983342961643713105933856266312267047371579666922146571264119555445040852167470823275939664896108241567230301841594547989626136418042310005076085644544413290688474277526475689838347654408096557288018163566567396625639026981071017424808271703936005485660632115820927587311298061468734367184080079343994285947901544886868320180085612360145408626288456166323397748865199241718907832543120283010640783437547353791414754495329314404997034898330803275159766932900979318463351753697004161382027143606657208238784847446487659665565658133444353725235135781053068380734142372992474339501283039023931460561987225635140389935769457725698693651636437200236967293831350809631996542302669523335493686027325791693468128933908876744240416794118285292928936487467389198215194636650385233148324153735977936942731802279589058892140604119113994087299515736735680088592916223906095328476616095445409962537941359340781123479601844457083725340578809296725296013236546219317235538589964102823578795236503248106155489704213361961971804640772144113626570688576449261064227309735139057195357796440182928732596710975939024851924976487229453612147953200928379603281047603306879565766106487926991625905141678590424235498779538024506971681826547069485768025990946512447167048710459680019202590079881359337325101250370677877104889537976755286764607433627342123261145735651415966205635638554594612360695978988394816285998767536600269750701771983990268193256034388521341716345464853341165143065268079115860729951114761263276080149400223083521748166957082788158759742262921371524430672080408445101597488163853341237531073143949220479382809757336246813596820879409177161906114802607804002882978284312259424058439123117064593716006520904667862107942547919225864446475533621227776568224620930908692260074262309228050185810979402352268733999184187246877363455529555418854428318638184938272920448988367851143737254288448710105256589935714265247200975298906963691209665068897861036606609015389374869106251961134656401081305279043545868365275553782846304657651398987223890231589384342726264252846770452446739933515333634701420539171221837800720273515738141117103226947369671394710877484392750907400889543585063376952939370131993868137533399900994293715099816376439939967472526512897526437205687418308848796494442918959155575775345781171046982544935633902361137454364922527756384008543760641831632135469239300457804651100226830823320137176200602504618933295424111153492499516392546767893298240065950871116860618625856167899809702507410671941860406287810363925460058128351010059658056309293465805580579210069655924898081805669540688066587841489700069013309348073002679377801442690810738350835195808940451991156266493040245562708860990426378344738305072497062358222274683246430295909637172128630330723438529880178898489006818640689186219364598196408058090333943034856170731428880563861775447952609973087931039752395296542173980730825696504957401705577071631208690397087350895471043599507025946279118970416198362136215030941946674125702386309360521152175816280586818859042798372075948772657766894087375174872750702564883851911379430663508060631415691954226351447781987601812880987732019112041409905691416941529939114428070526192812530050847170489469990016962414649746361594286520387836584019134304755945304935642333304521680354246786529660489805920096522864576429175179638220015898184926227532170296759974822605736513630396293484824218362107643167777068077654115376002819702362726998143145178622554319955909985377658053120056963798644456736589923896467923650720438412969279445326232258873693743530197939528038428964474770992237603107535765512639321564579644756742397258611479364895259867241134829928339563012289008221569215383283255377444739340780903337121989750385421971822954318977006120361369779490916478690246884333123181599685348164091397276847123196886452164493411424907223481622488111597197676136134963945020178749434453771133663853007578041242992868611257710488493669663724844737104866569224224589051118741189622811974026178144855127810283609420169234755210822857651414757248390226899637270639380479877632098720203959092632470925325876145865295806970056850285822242809668872015766867786119881588055008096569773192394476956030711222346268501951934762374466935041410162854799968369170608271377518315964081630974410511994633794865131805942985980332462032212187438526903424827621719819422522424835352396189658167688424914997218886834666814647901701915414443979037393250788775338393304305847950117475653843292307461190349864022566053688049330209673063633908581015075729703813180021550796222882740855405332974376241616924152386604717632310569286081792128791360244140701895528267078390496873366392176721029942113837681475652896127093571838973113504960263737771820461888330337155803366223286221669784320111864101110566873446708452791124005342337225457158747883396830179527045115930954801062836470151198706458615795365554005008225282846312591792816625033769455726370548881726913734819052699062730719161459019743347704156503893606009623523064319790073980459108885763716046088957591782935422390182504273438688784666386897086455693095640770935951463763053626357805636682515000277125449716574897580221047377223198390511369978422674671138075116156988344232892086180001803082450713999845611678082899994202187301266844753211645030401664777784668127504904404571721499963711396959566527765128787722674706023670725098638674599725306426495803481316654373496176010831333849562279643390516354277462509214014927931367015080795599937004664624691855082573314365939939325325554427933335598576431349346312467136609656558782088905960746123031158712017612561424563395552762275457384987807964124120311114009031054263820032235302440072488688234234750883079511873024848287111580924092878560958453944047686989402042091766959218540335160503346965722515345925534997136683817590168790902282793606894493652720865167102072892640303125218520225000254328547980110943438901330349611000126708907469977398188033320887693506177684164469649886958228587648402314506167786501485027740688524428008471889401899560536092014362641603877521498690421249654241254629893505919588493902848765328642748785966109042402495570521925589429254973638583201909526348559183766839172142122265653490382817381259684697446220709169095714733281950075762643127141631605904086603170283560110283180850591868333804711816571177557228301402976639149109505513920226698134190957607258025550051399879206760601423148453680001094335792049776142058036639993040487125509711249383496765457056838802303101631696306028976010250187426473832918660243352988724299159996042519295751610810297996314194624221214236074973002553903933086289915501363638819420959451880770288210461816102569128190571134607089596011253255541870181260445166965600978164073324460012440319337314420442144035414506630370082305222443154839361459493955263456310051884895151868178701566985681525317873299331468980987704271488493920774747682564785946911213699346208779278428581303776026438254139805990718527710385003701263392358709807049944064470330887467210403697176752105831112663546270623122563308617183834659351371618873114846761242077101972189659917640641738747320417449913447442330423341576743724412733075849033222351368702842430871315913936262240359619558542436084995038172925520563157210312771643306117038273337256976813275665799047839998557188671036062645701923364876145854326558519913038525109876287381911892321541035027676577213011996173740267873404486812694861985319635481014637948191445032973414761072033016626825929772516074520329871312504538818005036748882068883152584543546427062568854355468108857385894545046951988475369501619455821089564290245392186105036339197747138893030687611948588243965469944670143578452432990494889953726644263649630199361446570283892141240643813887474364100707970307938839928573595647049949970060619651288026327264275297837649231016981515809340592108375224879743340178419264165117921386248726363033494186973310857789237658053753880195176999591547464704654344309071190720877747633438529624356430152269091981109754628455450514026598931312673501217087908246014158378362696720100233782274799500175065174388731279183577911844708669756523072366994953839671148145286904493271698766675089647764237435898065033879251246541789077093851235802182473686715353337289384224127056097959385392351723666806299604236153378448999941046659530514620754428115139375976220402936404918129317335359842325670562089966681066047493645923980794738121743319815704904006044872383934852343083962801751713261750799075514127854612590862582021369884257278962337198640184289746217000240546507124626538278261478765428407630340422303876251359501833845580368241848144771775134425384569072050653620784259428274351973245530863323101499386222330159266749731606082073220521237953146523943169706409919314866636545895324783101102884882233572508788523626539742621399115492094820444706813212129714273435798583491762584230353171591746070677896116317518343137024820316873422912806054474380139940111271051328782947486010845628025229053586070437972003785349528192696057949218295468769886843294762405679209849486930558445928354997110206425860997628755632834957084551590017668417172714158236186491503767675302294673534748873328975910810106709806571203023024877767224420249393013008192482207102225109744128638081611623707795808141032217702208981049376073383970856918960747734452607946244087628427315329758662744202585668608588178324354883355793554945581752718481738485186784915483275383743380997859178997609781993284743270159680248783794973961489846788137759020177753844442785878419724768108713702776178543087653974319381828129802811528178489628955295224613648983851352184484618309840720046422130347234598012267975026766388731865379480237339398490740455482557406142437720110490146990072346211206569280102989989830419096625055726058059342548438296807677981672223016307799111226189716131709486760400872642288646950664981920560294286888096034229475948552556201924545888389441917782871546039482522022847967178993005686054081998463293754937239070166984816654446960446174171595472856836943814483422670193983279975231641013712163445859831032421618041127660565226782498407682000404881058883580965534669479202217782895184635501164503028057660584466311964198639950239035800565014363142203291954345253138001641567064711064336776337638493041333759373367475705422889621113104528058332971578586261680974627328013036092690369789590322420275773918594153202236152607657849688568946501300090332968603625783714391607273542595123604761912482041253049847736776304802478368606799603818089157638577363924973837711545587765790869563540705377409170373637234933370795096618303063324529938897995694886243241092484715411781865350482539554894341317899768697597919914508795659219425161767244916276186859195432665530247045269184504187580604163716213115272585751230128588200793411334667383279067892357474297818491182248992766104122242700976936354525746501025787133184434917223840682800815515055634619331104753782976571716899158819428191170204204906702244942397864419954526167164584169589688819569307963638844354128071307836701148946115700389967834041981430107704041923504151661046875597006103846644995356862911387540134805681887623047123913523936511635343586000931738907531577928047186116060819192815733055216049863248271910423769124256084697001313802475325604810037990413896651510767735219825136001638912150763562049947405673047108683744143143025597669251134596676295650267723960317160781300158965231599531951987913041920720330353991154681372340866193173501774835632572732713193440603908546441027104574473153224232032035843849561833200934944026609043243737148230071533621085797195656774132694403748543659575486567149905497890535947222168126016783828165400141251741400550528167708522832732288501817164961221305301448304127053363782973803872158790357808409167198699709824422905270111490570435815376490265043457616747777893799971645558833717713180759173226326940716825484908286682834658025658180000622046891169371571702239809640459240625540555397588290007185790601720539985868689122593677865719344455962499292238228091346661551694081894041624652830868610703546309334277093806472460336031519368200071565617134313403189658472404668757814989678092339080625578963585494007585780118146519982285724157372275012795706388636473979957865167693457372669323415526155786924750437946388698753090688132211446816742656237381186005351374714536244143653488184213817192487479390799849443362686670355978821228993056402378982740942959154279785116976064592493958031513357525783071845711458493260359309500227624002272918998999458630899405400302230884357888939432882691534810940243918526418247323128630307918367537734969788007082976829928638372608649485084293267459152161751884804989051116430391859928123541326067916797146174472158627603607563785307383888448580812142662495892270931764828077916987016233169884895992553419233166195100671078617178221846754944965294165858853341462437798412399292233895590161173317301600247986175347189650474180370616151533666192462778272706018577624817002444031010406701034933913932730153089499023907002517648069000930120872345273804647382034152048336324819995608567624924827333911390218595765224296098118151911791935083674931545812470775646911413926974856824042528320329099886350349245552791561015226564548285060331479467216347554671033858001472852080350561870665831375978011057057625003491382448085664654347622135969893704928086971107229230049890421361524092267588670992232428017438614216054682698442462082244195742074560104391039414656433044886824747775140115545092353205417578669786300910389175600324179621192950661833859169289504795348640601739753081276576292022386497511293483002386789133480738937408353958757327866664601587296227065745113172713812097683427992185831891564070708658459654696150211260262324751783443798417142636081979676215397082121694186076181907160428063154879746579517087861341794396982924393898023733537130686144044956467738481363496020046459357183150653889353568846858261294046175396446602260306886514512878035432527878471897581984082194398469358342520300733475626217081515829662509365306981843247941445170889826162702253649384233898067185845981550555277638486455087307632043074284628999126259684588874548364954000779833844766777215574484703967433618426714977360575941367087103455979577190453388103192937917636851456345032237846905121613383909485181667059383952755566955067250771007863236028668934684130343615611962906267578485724318298559104669981188440736972282080359608693862974952574620357128134944597685607728328969055473530773215875305570418708671831190519636832292586823576171646633442443058122860362806339855863277705645739187286878933313657292877718405922701152576816393769477452591953249043821348489777601672859755654613762546605375710564720929326863250573389383998949410670034384086666130337119075601633516852897963203455670148320270224962984111176801139125524606048372331044310311606036137201517129244579147438943232859391706327151620467569840268829343258708532304641256245552031942444390351919556469744470526857193954089621708211027689312062021766646184478480787899193867261518512020144890833019836819437173002325718355917560384325812387900420786790794923239839224491684981930734475314989389095843462162630207004345306047916555214207151471795348114044667217805311222599112000009812244319865730690373858784176711848061237758832732871528243811407090484554204218910233287916993378323636687316901135828439817057496358430236735083855446503942633324361313750694747702402818399281341063510645136787696422950973210312544880555499318054011517834188857494186264561756211267513226704059899241834047291352688024796118274562879610463088252593830445199424216973890374066837976338348183927121317752999038173107823807436758504506878513252973838716024250373593429424201094754528949177850724388353641417015762258113167489445271011117836469226811677816581379133597007475310236664269134636904959035561456758866677896997956561653834200610679906026077940597415060938799040868588600429999954431061237504719489849224923890819503416594881085333159424765490857558423551332037332787075739950657394595553476304979920614526928538037938152102534146176384851048722002629053930983290372050501045951968464738893054896698880250837598349712268239312322746805265564006668319848796005781195580839672390611777210519908315419909368990201826854789306847036387864014929324373846803057891683994492511589669357985946902222606044652170777806406043353440710841509311265911416670960816990389536046824436864444307103202564900811350559917618702465876675346555126014364300276734202963068673335132462737511906605566361913435116928290909275731373449861229333664453908643205155328234215894453928857636674970861307935273688235278442672899065639112109591082457112296432132090588756740533783845706915291117451544937537922919735652023222492952784760533889280136059649754027268418729032453374205113512444174176718694935919581560512765946931571550237058006518716857373420057004759157405766205752722286841225796947274493165865081319036511288945315974194584811513704820887769066700836703088033631535411178070101937229250440988889078271261783034475971081379891013612533637759664819835283689143129066310040999946642594851685866522101365788411222928586555927974187937154809672698067515238742865156805373451721524860395507311085464173939194976290969583469493462786888955778164947850414453963254225894102545992859666757237975063245091139379103898284212277420771079813300449461130469242687752743062452165610171149361219113403368892330802534584900462693703683837990512561989400765802114776576638209963514756838081568553542497798756104752683681093925209235134476805380284296971858118367377191727173879978516999974721024044429376442967623284752026761276713340027280594517926409162589025154800817309540761039154527796048542883357780545533310659740947117484993647609920671633339819930464253546368340061050319452924174110689989507572364463565685165566029075327233756295932378660635044815745643235799648027925837805750403401148001726317376662165212083266397385132896888830321387258592354352173975728600114287887882577783657608917990480033961792782382776755021522258382790786731347456898508120352332153913210664987793115057813278637227206499307117246091917548076171953612426369532666017794999949977158671124360454548795687432210540109326725530105728835116123845662855673879131046161979614728094253474468684784005371706014752404226072940147247337575027284454532601509324863411763065331841710693402066081112065539638771320965514850814597684902408755014258898228983690898404223734098649277840892534869705715902677993323452410777468737794125959333661273073990991281581041919630899984233878071118210971862301657046323710725544205908442716069793028775299751744388974396094849257454440756783847965237358474390044746028672405822659688473735803634308728416126616982655552951754273554476771809577500453489781595985043541391299770023212640841115709761446435555706964941515685620984853849195694117827965530699185099728524966063826333007037635583587040576215727346094302100936069783320552327664586069124452522094270856718882667487994180831740904998382157214079673162731204063278641168533232324941164016883642702857864397908003113670690925016467254315067204440405193313959846637311617107937637818255210084732050680901478230543072886228638433901220479544902125400031832377247826789789254816362224382044140383444400840204053148854744633288584899939760741833787065578694514675182681811368222827156747979765443973024181892791253590245427143344077568255134741599185424119622535861598052062400531371022259016432888699867357119930451898700270809417737578925430921386525022750532843587198493807369795824890207071950879776502272334355324382195534548131057508558798476647446862078074640808958726809922761780825077617160629885943115935121713722760867198713901711840572635822167574991317711897976779075967656790422532269645834730235933818198426491315716781823320016540687160959505986246718860028991790978081600392013862095969882960167165528011554116020233289287736077972667641091911237708191158505243453587524703016659246351188098040752452513996040980907695525457884648167529492859212998134729957011340685803704049113814112683818354028851463976024133489057354609826209350855911789772900394989337067689615310128174267794528904372890152081118503043321435949768085467685661218733275506629484729648371877009729159250126052642617825557012223151571542646658207450568252480313726412654732655544624206039685072732654527688708026547408205055537709459950600745535724182084030986806494717146674116116693640491006255245851050776858697790800938874394953826949279860886136520014967442647817991023340543193805172200408300512201091242121176874632516519175702191765301594471992170581187735642413346770064403994872341692324671325185283005946272625525016699915073959908388115837251187337311778517440783558577203105739032721700618520711538264131105820276130038889886784134449120105774743050130775631916491625732127972817860404780100519550194841683239724766462054037111209938752315047953925313716023405475614523149793591217697675741284534223441744396749396136925015989791403746896357343719097855900271887747170396091372381988363303669587007072482801375355417986860599651079949727900446038111266644067398198388911017734851321468540978219282101154402746466586521010942668046375166862758050219175161398660563824489680692705519494910045119719884957722567114176769104399759356377683587979950974446850987104357672687199706886638170244239370104662372418857602254481070368214317282109446246457277888781849545903648656391194206548926794964182656810424839232539260768777969579464538974277194195354312052838340888979138218035623159955763385064366846853622467103766639112916015091073730214397540448023077668258520683435616426375659855325055173651188241852565710730413813067408108172378953023575732919150929989168176922473633021214884870573273501247841531068055596130892132494116245777019841079003602440715816050496512389609348298062914520025349670098879237598569893168544708868884658650803872919058493103889116713183627836357505881433353202058908355745004680616419594013839273028419138668789894788369852410535606792542214172930100238727501920105661756556100045340896893053276186283912395204899551015549665372378770624651666354724339276808607410525127196290870792770634011244452722462979066205673327452652140470389674104556172559900130528709138696906332246320642540226571833439277247024559835363372776490247950743809752850490070767398938118770000530151981544926275222821975248563152769482303679353175759694471445263563337084445380137342039870665899794110013027620460071788661305379559581542443788780329920243792704693049936541819961803779097328586089771366755599320899688372387017813490513724589735299266174263511999509297073924333764019008874820605555582298717772712112281403871104502875672477500488686535306997950306892946839300990137592630546197650810126475729649287301749311991708941611236461012147381226556698352125482348591195752237537172460305448138128516338371381076726860025452477148007132842149652622756892100138156388478880425121465488653700314422105310007812199348391984267278909851438755747223783358423489462327958218576253620804987898931018619904387279715704071934776357346151484476250201098754349767403372156191489280449480770235251732426096417364882804997594819982269181746891859553097616924931305779507496425307575943701711473882491346510603867940185439012845452442209558069354792095659261261790045148302216608265723343222671048293948632647567684422446107422245324740738440646081433808897564012683596456104030119817089244752968746003458905710216964180587147887727044945438363881522798430836550064743220641686594612171848093539297634592984678783890035037074019638714054308909198856043935072778342201826375941001797676095701864806297846892583977801705228290864909794845705702654514387113803494073211179346753393339176394813663015844528417972244686701839777071217868138533923698687251398974536689557837046469932543602579915665720143155295032682305187856566565108866351397122581874023376887101521060656880954511783417345301859545430948676249738423862288434004086235725613454211254575939071897052539008535140082729612676997620290129471799713322897290136649432795848446812252194036706982321471460009884271606669211357920191186266668515287488726377807847779378032517101352062765213912308987954252707144424988791282300372108507276392193907550452618786980895701992455275019366692009377311604905744992558057934135860146318803447067323067305276847719008651332666046499869801480648787646307345788032656240024186340201267745956854302262142658039266007526815162705991623068668262616394185460552684468695967195222712154346938054675104191001154898618589244584413136225262822051445921542575259860263914928894051445137286385614855600715073483445440286852635033382340021641071546483474963890676192201335054109545575221220908981538238115757668331436758230032385695659482556138866579102492177020528366569967313943255320925987861820792973077160034213027703900381814584748933751587563472725358164434816150346597250961472415248200754312263784555198011694628430636238542921092833722040103651508219349890282517398635963679756404902853484057529618923506985551148216203911093915611828325989078877130125649231307952985197407155104933854105488773137876608856943868456031161546534866389211976331442096066730509215145296433723871013822235949446004792835594639138488318581904799719933555783998710590118586173980336267238636415057423328334382429977859376729979334282366704017937349725939231155205044257482273595826713504216347552666914405803756320430911972476946196102583502604546483256757113799748589789418696530048245485628215929814153849656984777533694401134453518922525363534581501653226398105378172590045439922878103218321776722625813816698787126158734225930142321625661706942027876650089788367557088615640834945756209539796830391239716791771184531522263340009232007172076569002460460278631495226070296067252464124560534094553879133221025074076362993532910559866276769799165385598508308467110322695743558327755590660172096681326518907912300010763166551248101796031560197891998992162162356072500401658719249982630913586867853195464334278148077242909433769921862882965797979489440959402992116717132012969068382234195864189230628967578593698092284176603496473834997366451542444065173235649590031021267640781423824567481233391290587947762812040858209758165199831787026014198981557740497511502687738860613703655345212899525990548998969006200683522186260146631512266908216513434522018532387590956916849741964497957597220298340275621625113244959196001156887044748824129154005906119452726776994981071933660350010739739925321023168075032334161456797077142221836688096941346515325881720878928666710662640108549563882552631190855728791342387191643295438006511510027990637043786969480615828749662927783597168523091575305342640815864529732147596278272118326825598017847808816345256258819165552483809777423895852253494018152019817811299787352636833435431284463908866588281664442589845704493419082317585466636704236129733664382092455167336276632149470294314580464296426747471056112027239037736196603562596232156652792933416918738306191422487157371734301926605989751036033345637444332892493086830517985984820066444951315052025184955642761270464830515315463279762920985253527905014372395283313549316022151161064313309356878022662414628373957777158741160566191740288810866362618571563018742594415907468225523008159594643776747269995858592715285496180212333871020533422663560255285866842937926717871761331111365197199817296726859977186460002396124160855491058037662651599945487439492001678460324203567279932138929901012438812146974596596049467581302056174851732861707610491538577971389976636753585157135159782173462971902904085129234497174055370410484511174619931751549854049514385254100964597675854956824200939618484034949477912405581004448305789116651230561115152903252220811193412054568275744961108007295240364256241487493781735881528968213893653659287248290450472181885012490082967379849259528950584268848396775148859068674115755596006894912152077948361290512835286179063908397917727426530953358576860173625253660876056028205816011280278570462990775194402199729587463781466802096497342810202683925374162161627465975110794654592769616969971367415394484549048698756080757318394509877871341860154749284137898633598591725237523261450827410852921518789941463582182001204457110603194504787002889515439256911999149442070266031948643065339744497544694871625376364617286197887319334547532185625197279616327738596713123200669122834996640483393201259129584061261460300203632649286519053984652312359024147100449479587904950538612565219451943361653882046167779240177876922398656605276914089345606953886101834807383320688240674661633207600179416208137170400367328221104601256653954130942987248446164609657882037486242606288648681848326464233594172669031598347553019986769770541156266333136111053251606998604665457908531405750545220737001669381293386125349175427560445290463884583368543717355536189780968956941969388327290271915044440441129446623605223662241201609806778012129548109155895183159826289188083167863019613923098901092301488840194778979986480987702556233941022753190915717334982566579021626960709370631666055996170736283980567187096976811825982869116840245811114443301296683979042359518271051119391861442250886907914871937569263934161377077549656359148146434095250768509818846578300381229295135440593594807897762332890795130334649096911428718342102012998633124812342794451287460943561059730733560619602374519134843308647694384235914855504771928954318591276107740049196941953030856711985562981044971170849561277860498586623547738528913516093768839039551361895655084085544921977607607188036052544844257498312922203007818104994542854951041384685834191486425249861499518070350307076347159296407396921792540931761877794209797766510678647460646546061291216797179407653595801131193056415441485444277920262306401261548399628259585355748228020327515155338805441084053996551451456723826443239814552922978392560688038684327686819735053027380711044183251029642117843466919952410617331514497470355920255458885549906582938128066347464080654593150895977977931375280925279125569452977083215292499177467880473479056832078014391535045318505418332797968520625013487631487442211068949809096971598315335197650223536689671256284443014843149052042219472184044195075368144040861119541960506929753066329199134514636757290468711835107235421859041562341584042811362503474123679881029530658472096100432923879614793544737609133557667783555167859216900419230012893376686552547893964665127274084944018316979500267913642469670021660512183789099335645432258339612807887037629594829863232722551503565362793822605204413824743400083287440779896414295865731222159403355761809267394691689370544090645540153742393280675360578569815286401053056622413392912964909104900442928998818536936358842079860026202996366930729228216914470502548141783182232164407855753407742368734542117937872282179780044730251912430224565009708147108906615528366284080822056564651207491662278974182061002871428252139021778508388691017711416652507267681288540151334169748311432829941929105780502155302174313747153373992206141546177361246192041446834747483872753800515487752019475062291451847576519148072823502643840255294350022601870850869310736770941995621440928368404777884470728285571956458665303112834138662294955648803204723710451669222674495875251572338634121249662121665627244523501090732184630900096703858924713525561710083058594078835071821271725513738536038475371651789430514093492171563222785986087281649653921004322724731579412865081237337340848793377572884465206115209153744120736397551685648340745316718257600851593952940193295226336781463154423932155566009337315375742292459011782523085327199312926885801281437069237873380955409298609809328302357653640031323823401225813411726466099125584073946593560116646063515089994020258895458225706202317687212499978875167541979777371259710465767116736547425781657324467274296584596630888584369617619601436601873799325904466702368237395900022593564377705594473007039052574162607622510975419359400002740821069369724273003306157539481561104776340951923812073236649776564291684664104847899894401123416576633543285707827671339073610404979748996681946974940530597099524579599656568380832127673609307909577601212846820857657152184490869908603346134061743324714505734344458654948100359550401401190825351683134333789694613350353606266598630373078630222110886228819386910605159288745699950095210155113299229873833299685073122074737043047133150207408332782279938329962584100253434539236749034850380363919499260164981984291366916549396818808381700143884568653867711108839604576138074542122524993570066692941800863685730220216713423561793442143731032919669334426224877000095067630038831944153009571815231598382166298098353991817918276534292791296311807569611207200022783499298021405944735541491623125968057940879590662444838891982822540413516457901993145785044284074838499067787020349734443573364290018286976661272354028047118791852408531881205154925722101103577127587182268650221332811546471093983235170681869535052719346931048098316621384558551742197222681761533391361634851367312138358098279673430260283413282979442558117255278654435818581647022847004129436477693143947192727968019399776326319258270445797092997007150414830387260684691845096767142947180916233707267732043353188176573638634582985746724395846248209986694182360771777169072028940662285268549498899349030768001891546454375038213770727535279937833042607567933154414520802802234808542732461823972126178601868009647860473105010547643456772035390260374556146443744848291888293246198272887406452991114694154623940262178547176927698690295958256138554765464041968812142771905570931573189915775891542520873438179570904374897168847770982900502824900215614157733984731424317931289960110226977757239534157705860783274968308858052351580619658748200081153162026695180828409285386256286373813839119845570061450199375082147273759692447300276776660405409435604316375231425558385117343896344786258848471275999793249064445175388209049751102653701819016507211631836803232783863865803445252022127149054096695939227044148700184850074589710930975538387856196707299082134668246590577702397005658888876566902517001819982695784556983030446711415944387995124655503144822277102787105416833633571488571255962226498740588243978491699719495961294174533257393704393987757095609694781679558562948588080938707848243181822240777713525595902494439224627177800335935160919621709191309904390142816909988856527710015249056213111569790511880563118584213292323631925238794015551447928958605191852307282077037652947858159484326636562250893847020291905483508732155647293733995962285720780159288060506789748894570388601680849283282766042532321816612117911625348474326753046583121149745501720331426356681445647406927279800898603673170058117620815973592308165127216958609903440720433581793721253804923154413554718427366277214649280205319573921237857510900258968158585617166541565735342900594389201474833654880247966010409030127876999501522732879835689289096493689960896629799918599000950887025540884558165818784830973362616524043800042663791894345865476284705388699600667784935627592128058211008126566656562603948107679641346747746435860170906297649698080191436874658978165130314027057271157592983007141371099975034075986380337931118360906172446932604495550833278425830144482022487879817275395939596796116638818781392851402941001516075291205089918201148838612953635687124677621822007699214420945426764279621273068330458387054755155751303868897982735948879040579341907830762700737903882974266185330051586528682569563605564580447555869416927985051673603489867935614752739210536588442589191265111552601092384022380364965569156549948784034012737630084779005420845186455857216103792273296630734372452460895765363767805429300592021595099848913318729897248298353375762559662495384010877604547934927539420388175372246746676785432227241573878371036990669824090217733667149065070650436679329075193977301980667843364779143175630525586453854200069313679196159507493631756721471011233934952415643007754727928304289238091113696537398971657501004033115007125049167308712527883656537273870798312447390870670489964791449837502892460541671070102730062209931818344601811963215241030492945629345515420298565346754203302095829876207294314639450149998701113540890667912016544174548209090265592664744097918189400618514401621270504997642139925716512806574716695983451068328952279947770402202036300417530426686042054366392985478140601359123391089514964278568915858193842957482810314141929827968863242186921255246229723361596894620899718623689371761291991331309489828984492354560288454730090287662978897506380826716343337570215533461794868805612505208981537951767791987819707984692417044420917079118022564314324358811386118124829036439304159321315731156406417804623927245835211232102386388820268049751190561245866856661644418858362938192825037348973163155513708521700965165509517008947920206161293777508834251722515779638793977228616275907148122841708849445068935866005059747295012030306100039475339515546350272957680765050901685500629794151648623269769328629436667656512630442226016233819592771039502189149201882698993510705418663168562993137775723480265802847618818680359152564984202327230192326840321928963978312598364335704938682766167178204378567539670064292015922031876541413054336457229027696885098120148988336059828654997678956143880760337506484451406401617050936548248675170101923210912611481235103763213868873981623227346643096127420479861831982205861298297126661601497430307820437252117128242749686234604958378044414618040704661742130601297133201013133899563755457361972434100582404306783822044071564858081714352890613096515871511673227125838997222285589029664783093045194000623514541011762233218475163731965556395224285708520556215900649562890003626007571802964749048759033165183628492092009086812071673611541601264879400742025261274231564594312504640482664735678182885773517815640409592888976347612610802424796238167766768665028327718360495179429695724977700746508776327215435311801046175311642308605406509994096182942800053895704812758950091071924505346829457453264744906887710998058384099049670548504641014130853064018603451584212705127367879815172448243354844855693185558381217216618715262061677389423610340473737049756298643206650405413843049257186863002367797144434240906179750512731076298030012005004594606792297805589583646897286130929443812287722557215520403236001249263601270655836309987056000211100812897950591423649786226926179649960538258022548258462540841755068247848842926727010733159645637773106402553003265069633588475677140455469915126475402389321632074459106475699585046628558392241299137826251027728428067100184177361241300351944101316123861860178240528584070520640055924350794247720925083754480198431273547936006872179277232452541818998863788153324151667240904295653589075944883563412809611709056620817768047781893197382986968392808556688755550502778111010247950035991919536221529969265838810944708844056137625400419868995274810618076912731270397664431968333202462535228811744126274812326943129475892962808170606226677637442156989303102543083786812640828061153475250910731118868739582765288723226942228387815940873345818662536315991763015759059235367755291237380228143985586329954217616478385680779866884004038309363795614377786592337106298540642170157584957955202884507349052026950871965130033697311374102205884943696111208662767493149860628079108391762412337833344219159987886342139711309810443030141046739913464748083284289311977096604110583612411997456011840816213330838930491712327268579033501934526824039588547794729521013570194498738754487343787682819110394032109337032805789488303206316558682218191760296840768936650602738143920562319395331246008691595033573835711635516435828051980069335859057997969979854311099880662852367290455795687843925003730659642560195692759945604960258949795226598479138782075839088815260580653653457625888542144574314947884118648591225494496752450326814314733796589898171953871176740510505095786950928653966863537607229542204387062099015829800521036895752400695208980287624247171226705913155787661631416448543522812860442190496114430675549291577176284101458205659491258128213582689936035769143669750189730811477901835869602261074017717946943221028005943752541989818293163346733883207592928149981381670312494245951812671038194146015247573113775650776633105953053214494939131786503202428501603468430129173067526845365816979967806158377883062218641601613542649608681939720832431725487849917778787664667646332102192542808359289671359725454319673321841297423291272874963820956298635048474304776586784735443380895598056629128012330808752103232275924479721095831329155662715726565070101072669028111276624498804948691228747600149958580448990469459091883705154706434038659528068992836474920373753586208798409321644987616714009580614647209916678326003606606050253970508454917488808299404780706259694261206376691943259161183198018008742653343760899262991293111348202841241695260673577154099763236656546291844943654280736644257082083618908759194491246479683689137140902297075903848321382029867203949072596130434400769884841495149272885751910413394963668844636605639152581844184906811471927356636200301246918457243359412679564257489460871336132146618596433030282416006140452511057711668389504262361731746225890793988340107107611575373586635151231601634541684187892769987501587008779005752485433372841825713513270228484570161105474501834181259534319535403269850697818154019737891046749252607014017693347408216277000468914949096539081436602592115043417792209938450858480776433101616979456367386567553380315069117085964185062712930797951845306383494839199653788145215417146213074338748926156298693560537045529678924914086754170580205378747494396422535570560759724008936033259991442377160327902010270519537780098298573033128487948771161027285331668274374613784499261015285176026010719365962794852364643378673910944806908860519729447076070917228828033108939705556756613778154826458425287695442421463926556537007049263847946379757239204865962115307446722728185100988726521919847726190009386313596951045655958956972223299240507122871609716766465772507718634368841124634179539051309507576521160851063147426588200079862330192745184701013596859319947818760229749712862307700549838935031879582193880110066253038393417727257358296531163236846859924532688562244565452310970544396995227101918318815227476585216170738388930687899100549513103495305920167700673182589682122558493965572484977088040208431140809772948457148668410037853158997159092499826769822479326372415552231578968153101461181604042754725473959285186964403301218814057668199973088906137220333588588131732081417138366494512531396147717389227408476124142303027628000818735590167628582123679176587683793543563620616523691839652641206547143034421701242266515265645489282501716239159978801342616134050940599105891930119758856015232145416132880643975826064431528758452026538486353383897555708504836774902097970977676286000088757522359022277150958203438573617825059480474634455036036313233570936299546296746213780696986780158295674801280347618802676151502497465068821674237427681400223058942249770125815387644199112440337399008982296986977427070006140789149503885804652665779908070492446578849624768193043689990420525002737506222245011437331745599976705969124380074720314428535249499285239814965429630072110782247750016241075257982458291393266878876913279226861801983764965927872118496824107223207094202970195397323943106215277029521815861598525344527002394298704171109682355904602977055304071386809975763386921031806276500838717246407757891202504485262148422235074770860004845672250961674863127473005858942406557607580906062548956425633712500861589035131100401016817154493786389385817668702187340671695771049509259347794574862865807147940108148399944621046313212965282884488261555521279261680489668782980326918014097047589053044619704290800100644148193652538976824353052509547716680587712994676234822347743933162679617226322026433006096924543790775668249832366593691868263645636506921995830339441315146986698179790845856760780963233636279712006515828374517769765647608537122198553880817993484935624586269381934876177213570572330265278423381040174231470134056751283599934285600662517925587792153102760032101130416105322875465913629806426830784587903731619927848819212128364621299351332481414780111957562954941266341746064143442569015019966946842362881227824331957350209847788180399801510026805438010436729957067747687162957835979268916481442060601509050977843046146999608955467442675787818130897440383562787241997098502453449463192492425013013525377773085402639268429060818154172415488007112378259579309808908859420507355692509517800854159575275126371747689874126263299711497165641746727316338763126849356616299206185245533482437892685854775707528266287727585168770465004037026636061255282442853628811125852348000560553695491014458445669428325365452239936030727082493635652853701893535995646364854314700768790540876736305623256563475679675312819594985033709212347324726724967844867901920286168142771546454768163521375831181859244312258301895833575912820371366327156715643343081969574001997527635213500368128960292420776237134981496575640247793397638472494693703619519646086130208450290368273720943582981796904081470113309488517018805507056691044922782188842788323618878623910747654448742822665960338981365601754558501592663644074429123666259561004545639142326056732561623666413553656740235167385162795625256592046375087144057264986237377065558467854367733925369035872744439749616115435649464932336341767397622452355814409336569561240378301231695819066759584148530803133722365071009454808893448581159388260337483654438978944829809617986814227811736089712145709780865015390867094529425264460544312922073449308854395877791581828659720873135658412193534269308680305693435860095635206026837389536558000562878691441387224141871147382097710190525379257534904876993867936137240270982482798726914159725007490118597927380660599313738871282632460711127961568396792518146345740214316563251713113018925825593691455694652485398169507863816828528051649601291701141139637648204305933779290782051552641599181310167335962234897201420432562842924645329414253739691040816778800323274850752235407835550996891325603480332276307686477970964978565268860169732982935214659284896722755987186229904477418059789196329716140680245629300752302982945282457676721321473409623774198218050280612827751698807677539948114850547911244937520338105266655744514896170864143553382822148702474654573061824807578410539767921814746300473136337610436775485857172138975985474795776568550354067083420794507338696698004624454604560828274615182205442374754009863964961697769742605632126826995816460974093549971086266576276196262285933755280897682818720769304604290954945062870135249435794031658865086070082564675601433610224012114960340027995584456284140478737122494842235087929480479988647855644490516926839544718109452216597188435484228368735897161490828342385924415716949350442192978345265932636272427044020537473878029433435046493602087797196069799455824039705491546932834274125615394145844511858640659434489415620373914675670098424344917960994499569918269370245436750392764882230425375094476199252054927862679099833547397196328858811265927331797681807340411054502801242279289853188328666600431674552537953219180715329144683632084042913631306207240240441870388216590709094576646922410747196947399898696669466674830135101246813310900408358916312609604676294605758753958208253575565765594664138446043076588421590832151635994660248666533162077908884228941130756916769079827533703474012393199970841141804234715282749138525195264932470175463712659497447184763850488462954285125454695038975870463232429477080626272638228543528627651397940248212331929622004019422075490280538596546956434404973491517200553183632321397721050939973584323713375953195495570317226532000167345803455326382674292996854015628019337757745639190041369006062681871260865916673201917347384709772532910235381963147017697553785895092206339986839992932156776379002751752182047086948299373751864194754759810807619175312978801992648324662328071739131926334414206895044002071364473774926783671130302991268627644395135043404438407755568415993818175051063508194822022616838369552644329024406915516007278685034873862306028170947594796913225208953475054810705137471389623824462974885051739602286149743547816868348836818183516079129035797458083031732988127142792446356891514231693858751050625172532604331505346694821713851773617919063673144305615806782736337668079238057154859912373916369439850815749749886582223653115719953246421949587357333876928124694912805728470308232328988498292030289214203758400001124164050210987265548105407865782970613047500830848604019885900839114319726027871815670959078718535497312537205694489116732754158958977572816834325511709500537015462234661678347235148734703413210754012230886446969334139195381334374351826839235959835611751712364574915586205610678601441910706717630487626448448222180712899230620063499892302006452523345022024057133728295308998688593506333307921582510770620191203998601801815570560922169818363161031886261569559180912720161793996113986019299943732835473121276412358481008780539890016607913273587406926741872129505791595944657017530894492364258378124891034788125273451020130618859905416307565547186791657796105786847193035640488032544478620284766624975736950292958012829752037425274146286880341831948547658121529635684286397935423149244810922047060810861428379085592211859299842065731513997699649208365953496716005651786573871852784497157993487645952179259720224048878401682206057872622150441137656522167213557445434727393056077012922380479351355297986700936641104905215531132205711377488556865448157332157233395484428165991079233276354703196126627144389835375563255277035691322383788492911065419831650582533510611973292484885221250636257001157211466460222476451115089139684826446980341392127681052095076226107309970710883660780593967611387531506033827982911986347688880450194369901408596387751853801120892021680381781987489747038704885542426840146750992818262942423963139510864885057053137959446194176633600936293929072490639251374745743709885054834255097271213497542697174258766413422585561674012448326006736925023945997996316055066268623493980592240690382544323626409770098843538971357179114325142060054566277440460336373894483760922679672289626376149700375466485018208724364322681935498514505782284011929839679523309162181685641170600891971314913848257126426180264168340728595040888526287260594358664771319827864209213940605077796186796078612240024424115112873932264093518190917771510554331780886290820931936787118021965806817273271225761973827351912979965098073937179819570482655042230918480817638481792073816996569029191664989565527716279186546955214273593538810897928171348027600340905238623098180603710917299108580606123334165989667462316925890078627215893650646723954875378309141740706602304054172114128947693134114211582156557580522727790673439772839038114432156293890832676361183131200338977387062686747024367667959660390707871403258093364524083362016530762575287178743407190032647599663496642540059095703162105644579976639662940362632758592619200713394563220277418024544586400264503391256032155831343621433306345244063254280703578431453605865153495871362206871513851741772771233810188441389751593829426012745491755302248193421615971296071256797778768996192635145105628251525285608904977792766469970998454190538205496191557471352924819738780592928992017126299205558688829869315343127735088879133251059358632867333247135330774041601015980581474569109384995446952193978305215114030053379705253999893755300274632558110902009220043314142787256450878722349481344872762947093703122510153621224027924807347288865506366930676728941457926341021861311336156443366099677185765326440481251527027866347844791599259065488617417593451802475488252811360808970196821298442932107194616670860236281965116483264228626279451601884820375157911917110739567850164135807545968960222696742768211904261839741685419808192090969267300596190159670608769664329534194269313992593952040376755681369198946515244556946673561348840799477255007133865216230531625193353648925725760686528870951566669503991431684090986041797791485976691573611800271783504129752211485142986002882743305800926946669087013646460510992014085796442997651717836281053395502410313307128284914432762209401515267786582698742239057139342826572532173000160462961114815732083095322102822526023176894549099172995033159235897263209346560802714191418174371790942335134074068423875970520220635474914622662148686135508194531265781991108348428416988658685815095446422077526479421602662730015714151223785966086469970297549750753633718796495834407567423333312444100017907638958225365105915565250402089580359459953131317566018139515094602138175924437414530958272866565571240706146584474692062495526821876347283960355886801085926558989156954806673603060262673619296662921853191574526090843056930779883590115680078993805248939975374493478416282553172741983665271310019274141865643213201242195633268072643522657465552114357787547391000482866941757568688738410964877327327345149709230952198200093579296785370085041955369783617636605379427414411231428312395363870962260594389662744599632433211731054225676708524480186553584988713461995165864169406362935150593901600947055588947681548347610919747344984814645263155478419056649431580722086434556410078565170959422293765264502774729541006674420250457612089245148504723491293679413777999220078941479541433877905183188420566012682291848204269145316326151863805872603328013205121490636901619387686498635125272911256624506899021473078435180768940776278634473448007930137180537863558237616758945258928092383327190522074106586522794453787181693768838184660995489638556416781463951002345045340337567641993041141168874508038145718481997384486314230372702426568830090941742226804567279863462060747555972236895863142163141806913254552724086668224290918035118376176687296599055672305792166613422376862123487400767995988784529198129180807870746046382002686674583241439612299693764706052977551240648461081470623427694708482167133205535466315649064898887982473862652084691127704174146547314570614720001803613685023306625802839808567059711462075676287776034781932558082880631767229576501768980465588833807080447581888476301117185299355379941255126238050070612104147439609308044514200559313959711729805057511459966132011201866236877297296476098773248994009143279038830659391549600652121919799914401786181335126002456610732532557596829095505198118159614146475632327201741395057376569333154539762606687510211886557196635373792251743671448174710167719866561407612340202633667271442408283293635399147648319673136456879746243113361363936171016926805665131813013380396294784391081710229288930667875755415885919942941227423176018486448721212192849957575937692322558492225457170916108714375819044140126904679270137774878983297153398259792344993593670174987844716411176919574705691477776433349838985923262203290594007318524965275376396910512417442998212751840073699468455131530264223157381041559492819203422996609384311643070307196049207881861108934667295764890856400685553987738282599910943952541434861272652752786447718118621050043719346060826568019086127684748335815371434084193037967756840921619624401677886767659305042450519713479278427528158386606468702803604303148158193009180293219921276309752740195594808070086522512648606234499488356753950884794164744767827891830615560457942458226073471821459986795325909632098074555814762108742973075724284162802523526655103046470385396294999323785852459718619090517931163441192140963239671308464284943578867315873200203535691619527326803757230739887878551757870611155734561698297744502823618208798834852068896560709964886572574970988794911883964928464721619101566937858321245026887578883397798015011584505051496223026760341328359299238246155271803043205645188792579749267458231039203480309326884944508389727208439562996656603773553456171954319616120522114374270794168973124880062304588372879085396019923560487559394348217556418491310799629920752858520816362976980310976270975442883825220473642741866497922370753739463852806946656293824763056981403006232627295246400775751249318194745207248673644881049536558014666544852238739779149930343785251183928609359222376621783220842046911753461063284284323454406970960319324491809648396982297403732295917829135858483554885487259558391349253296165096462324177481782296667895943559852937930970307170388926634463717630872299761205781793250900865329580054131377536955711594218065137135937876139240887641881971511163862832606359509238507165596222970172039805719861719163609626780668870910258291275726253374134906731231915046255519723843674987923681805895914846736235659138067626075514005905872789779330687755344511987332124280614655623405896523768499198331420330080061925329156955842597713046377716584185513377590263515734248557985503491465466967337341930705976263196399065835665614805817928241570737993708805056964741495191336767804408334153787461159090148289392575301340498605646651945567181210583344371448146419462983030364912310879392635674155150294477339505071878853974843714777433033895656714265089481284368037498743253024692083482558573215097748537614051688478969640248083529802951658634314480408701150326409713637949724715756816056393756890687527613446675544043936181022724854633266106650324114552893441764336553760604721298470895271024817791780803287702648419504979939430303594981733879788849729596342062998663194824676726326969151504531890102147794959265367310142074190881441890908046559680042964303904269779618861591714184390996637840323956519335400260283896396531668120308417348323883861484085279419388359331570492972727741183345463703202028313872790617278897510671371897120833093187207187949378647691245416422954069610009337361005042152770442006802972585066555862917342720380250947305727194736801558193634358091502211278733806197504745115771309085531051079237409111087159874442281722297138035311033996775608620129194154641263589310393077892904592805664700681824638635630387733090618494628495236392120879375197699680660920634260752963078055075327374445152012979385604615678927644860521047164189054841325494503751012438436375066722997358434641689495227632355945576924634136122863914480266016452858193845110489342875299293161354371362460828795932147169973774507061500931106383836964585679072762624358256614445342307110413264435464697893508722374470814732359710570043406784275562415291924297877096109154095843450419106591012012063103803139089235914206641492511642539624765258030785502816569209160509506419862355247279181672946063285601738491401587140623393868780389390857469033558881935161266114824633155817839420348119886100578236818604556929824941804676971785649197836058703435385917656291374161702550778914247494731408697582560697757823388595796740089529427695705556119008107722766524165229983471798113428655886982990853641511799122824314873435091149206022258045614181927253720640266242910719580557347280325407863745127966909512261601998461076280832643142971270671551646941542220768661762330433948013258524615545830104778913694234983012147677242624193292360852224488355566161826412519192642930719067453431067251977259411100156767090859210521653808782938829362965951348235609966540426276308484647332567718931536670223427656982972162259534271358803004040222339352411034963508931778802054645550262055459527844481368144771864076090781914872924121016020402796812236803862201650656255575338026756017316349239178535245841192706995648721352741440813842188329025249357932490377122284939955267474596948099934701682290026051517153934282039141635123749989280099905003986292750280439097002444493028271447994030922460915489066890632021452141594379737581114087256964570843057728552413284032455428777812126744438622025900579781282152852194196114080953403181606040843159402091870254430273443620199145934908685093889529211462077785644570759311201855266609992599426249407414083626327665127462984856369000284833732478757781518675267759500246861802389347466831408375619844072167858637771633255248014784561118115553363375486746589604125952494286860739601188947934816204053686221052070116644411710211592109605648638657954710526956927126531657805832173669628450168413605468899874239467400835626586931503011561998372856773644488865597235797862107722578107497610765904599206082447672604578412524003417795939945793104316401801505132900583088862346754370526563703942340115794496868506080309076526065073750237145236118330574585315014945084600458476216580730821134898508738083647731313752965170136719395922312874448522145839665407703384179287963331780661898745531729532100034540393006269736895330999034868432284280937070400639534697073308449189323544519085802889733318131886589278260610748165442156501717907558969293068684456249007133419182528672987196239916294441968574842977784470860653053501518285448385303244201139396459969009584268486749042007784370430780714885961254678415382497708439052096670305487328689117746550585615782122027368807954147781963170263216051058837060701260988291020025948477909763138883475331226830074459557329394882019252470708762330579445719657980190665422705702150894274898790581989919274318927252944818157868416299341111029610532154300199312652531023224506179266700346433492220641110824097903083820273528215355089879578740752986212876119414716827505388864926182017925774196278767986324296199763136671679519216527248586342617906193515601286304679852835440353962292549304801526216702439368563977935728324733928095297756282732818359740400604068358092373734377839545803350212906776449359675906995407319285590633322997297493008654327201063492570926889967647019865932549419456051502008283564321897645495374809301461219766770228605011102030257730649741063772404375298484868193432667090755604254868826428423388161032411747572446651106907774924666650758548120870213001265276859533405734945736155439056987993599329650628193300451943706611936178354716714364790988964890994246044767149502827404651879195527853509415692208916357416380553933858115154032468829554102936489160344649004084938859152655458482371135670886856560617932893723328781651086394880651456788391756778377009348742920837560951308675041819552757121210599033614415097302368673217088121723851635464683634652700673433977867668418538680254216951443424610974913602680410733939290944609548618984726175779929879231286792312610592147311612315116549770982451613099449586903546487102521562562272221577628291246856043479192120676506092321107061732486711775416022269544151848303543157833608773199166056822108776187455329871166395992037650356385711090380167558913964548313491508550592613794494254550589780760365196933391654622662214437359358391098175372639646170784907606617339828976256702328441925860409986968283772677303153123400113728296774309847048038850112471848371055813720892353794513675696127470882340861989175811253508680663723364481317671476088583881991241791643901738741457540884887865561543067083228605821410948203999207164852079911527906877833486865590416481617137647555805611827666097779452695397827940882278294904026086346030643311299978940041711541088791353063920419646721547932885837626540809301800288956576186560515122545007097230257848158005072464028686850693143130792046469297145829461675587236226109146044374647789117994782061038895370098847383445407158757049139096723821234861879887623044217270509663534651839568035766625623149781734311388820828127040842433779354802367953184874189949939120978349879350385420926037927906181066931539205952734798995443514271520827913662296378402663789420510966076591661734059301873207187698011533027683840884864895103438782536080432146172144312499500771850871700140561568525127313326852963331043023061212311406679602602324416803179433731176674067991299637249419132957700531240371219279402478273170327874331698062059619913490421028187596179745404251545882557945310592241049153564183355637624678815832045488504086753714216131448910777682274571721854522516700827855547702505100016078941541231537764915641372324531946427261262089047093478987883859275648665900681659472371033905627990676207005989508790501909456896568916110397839157403087792205303175565355843125218059423720849410288955788364011446686405236689571858108830537892031170249731938525232960613809977156704076753822854656052768350938684181323838323561067630491122604762987427195938812822484728489263901957400474156302008689442076985869813001677679826635572725796588428205501945510717084781159952182461403288151550584644824311357852989005570742251580611788713190197115459926093861447607425371563890070233799527139214430444557340442567507262247509544362446822436060623130963947441752427373101197179002070881927469281894639878904691356031163258270063495985199359656560016852580997199217283219355101326224125978001321540000073695986641403103126950845511595977696276005513916886218914537893222989649788844701645253451467131018854043727024883440794917616503978200743908215252063263008927944465022879955100324425827367258358205388323213487543068119259256029129161719760476189614929704859196846849466809670604010828988126942115357822162264828348395216965559447154232496122650646935676879972236980893077677926973493187088859295860178612158762322944001328351859021812581139505351919006530897861853375078520817978392175806830945209543074109730351748853597722249618477827915543714481885363994931856974917037224236654285911021680790917927759951179299643931691199565496272279358530644492586781277305840655227910490671265465895688097729883661791836507951166367578291604468825723301943737887776937087466488613320711421178410066095099660127667652263474431139384282005430241011718069274964649410315748021203408096516604705580470006826566307564107269653262390862831780514182188391153629236457369054009985705364182044153714709281539057472674121279896970797778363646808735809264099102954401859450188194384269157291529854489221933757052858380924029168905550630243733266880532472986695552146926584094978581335422024037701571103798208514489737558287421960811676745675354717181910809868737236093668960822624296616115618193041103371338224280579191328535814229051301032558596493293148002684426364568422611115051304142527847354633125126990957755691131018606354835420593556217987904098516848762905064947065510626484252134084003452340730411648577690909413858391281781454907163088869080818734179540370573913333677747171940403400961795357493820687173401369925839163025731847169330455401380286901968308902868445126398563581003915333135963184287220859158430095753766300912965047469243026760896062470634193924385354784556066291768521055195710697578211067353395759596645524517339217517669922251231057185134865073467439118503996818821051056011572478100002067259247070267928860329814105183715629784723008949092759972026499759017176483128445303832144109464227335527488819048251479551688877237017299446807268595417903157308454490008376709394339858267760438001341579045773485585897353269626219742610806821588059619872433043203727427024128701415594045881046268532901839895043817876963964672249322442502003453692453067879605491822984541604289306330199899983627906316218641650616836074060474428925287112859795432108151467069934741995469748763937455411554878088902842596412421012461576970490987466170402368270125614033352054667547939078357759914005842476845738808998100987982337997197351794989975534009457330633351023273995775747142211125839916619080967575144278718232463361364297797924220147296791613995361699939692830480940336632844938310986547938872165262029721923728605445576768933546290462565864136190728786855250339689145002505605328313020564965010279382861111379023804557991846844866139457901268036956852959332732015977277119619783979981692254564943828108131960913746543251932766736369893600244414051569806241762277411501542129619982885669341830387035036498045722828491600490921404321935236722506046282280830146907235219300842278445838996559632403206485437573988231028850631459086929863433748232014414573774176432254141789019277416093383409062791018059923940040450969564911531114087077679937801943202567180186400441429817016898836845641761291497183831875096500842062493688048474620692277795757963490532132408726000085538677013906456963668928872915222267741791614890965080572319086979880477192907108156270018161634494048216883821368796764896665306373714004768792496293659796875758482507545673610743450049666781881578862076153664548505914329992558963216304505854097136595442919054331716681992319867885821152684254428646056408191907476706388442500296496136146344424626744887282392893940788000046759188889995380136556258724553712330491034235295834928942161338048319160951357744017404798790470425844196444842411492654668563796334083894910808251569195749666624569932247896052758924620657081877422386262308960156222777479289160023375441444040158139977173894702839785515789521435377337828466502018448336028192083714176347624207793694943561328547476117438934326277431201608607573790026789064905271867865415205706223247449182523817761480338884793778086756200616122129370328555007804858506461760616108332651599715580045467951399814618326418682248637296771217432833427337899813193843140460177933219465835774792332345331744813474233482713502417326616965113210558365485205167075202316053447334356127891455669956070178235117541706560051227666172803280738998387728955072028221631843877407004599657386161839793921519568594623008886173235320499210686285367595622758081344415008489193751218243529065291861877117534271560966143019988574773771215330942877969252976300964706911549335264424563517188286270480415037817717024054200996758489742703193659741224521495239270141853234196952095373306691832774216587699647481666831829447658575335548653776024724736220918433687719852712281859906418438311780221085787865137715261613985513083335878401058734663755564025416966051277724024191340342529698357060126238081038405484421117462567500151987329306474723367542685155481026358913712908578580711417338068132688283066190526052674598419910435732743889396426915445416620929957979345468629833867443668969854495461984505184195230984207360358496567595722196179240162573403816728710467718723286774950535939724841108410213949726603002156320828907134219761944316001127142812626784248853141416790963215325539140487796345222406129499513460645840627203106032647332795529604291910192579791021935568334282487603351191355281620958026964288957383317219502693347758491021290344647940084422709105317520381284035355139449212504127571554806448182345056493577287160536511136297240013948266413174948270436652000660639714839880406699379818981303936290474718348311794467811274253853887307066536217562189470526589724548005739567113438817476611845144416639214813153502926998869903095633916800943816306205908314045423397243105211699303190391295444973775856963161049790703432248800479913608851087267313097473222892686879803512673043705014819616967570987305162452242233441088105795325036890222650923514055481897355946828591028028731877547224345603637880834598947167605250711053325303253825745604046625624526325288864750647465133612240629786410847095729630702825280150568317824001326882378974507204598806422069515664483679961022965871237659144368352182917192443605507706692739516943015615234546324060372226300420774402007026707106983158789418826444959282594639466991077768413324229361780967322698740891998355655728593648467606826273695956512300208275005529775987792493221610670674546360452146724519384685921439643615284633229305426644173072519013901838560519186396207433141360832765997243239571749405660317161135091990254349712822924438083276379721421865702486179047718427973548759372090540076631921381885531217054711144538435224490916302768815965952235429639244706080807430777850679728314082199218082257756836870126534672427020267909538434630853561601670973814899340834302238283733594420212305467506658318561478476136660373390303042615851628950157926366141649167370305201048022962543534856195138375820088884250185031712299470927290441937477338683578748833839179437714292877676129906462944303449626868588227167275225165623144572743068009086626980648245079653313180568939887004022797398940163091013459742465185636859620919544042789667145072135502183695266835754966783682107784589622323473490388221960050388929990959610018734424796174989291198291320090739355990052777965843758874297948940891806989222984236582591164450513951442832569285178701429040054715669719006212753733931348356005476941281959103659295127757673810315842283757587592039983689370078498146318794246344444366582850246545686067622466656340007824724321031386388063261785154350357379592302393795406457147468359584705716877628463456374162924036478962467002954009126961996473310572277444022031052629857935304789385127123828714932745354101232455276404875319936948752515333008488293778180519089973613095345455867761465658536726530094201332060361177818181036296457494658401567650837112750035187128351915926136490780349463603919157840255699622911770442601435040475448214262055532741182350165879518335568563224385640788533289834623547185094099973973491843621011902349233898052878470460964766564848841589641975825774366922189067143698688369857221663905435550295588288405601735572778213034720040064082545121744854281796368992137154664306484519215004540619783424447855135141775308254545150993452268250436289212954533473940981368302635246628278163896906011755141229083581619222905697485321430625120779289322978828859456266236555289115788087236197129303554926938481094616441547542309592152739831244288475172302062011367511077583315373992467619862363969788658303584017325245168876355468530770116334198097952217578688365995514754954884816778321369187033006845578509748787587405748829923145472578797718417077161781245046274371159326208262920687185010228159293285687585501986672836845594509236086508381963262382531201922423807445392429133829998491447254683889174132898387188818055364841359107963643950869040722064020837893016070599211305815197261604061305986813305711395055188379615016174749434383029511409634983866988489920187970363019080334611953529939821909328510839706828197770178269934949371484836574031712682326068348024649141148330406517518622688736348716412107537115746839792590767673012982403384599941230210082437677293628064144998642598358773574833235936579332692605129987414492135383541957064102421247818755048975021930440647111553953236901047333089628887749772031864528013587940972503507168714400761283087029674040519132218449795234626747133979447687202727600637917848346241413602367789026292703087710328013078286791146838575027802648181920505158909227599513485393916136751778191757403754210839611018080945727736408975328867551875723268124424602333514054693045416888386947493075147223966099678654987953605798573738170432359807213438565801458051985902964770244021200823093773833870138194608919954597454954560258633054092367682986750595520271931215312175675398466378957046908673271542668808656028005012001742059048494011249563476658107552770633206923702149667132895173909533640104338540104662597357345615704813279457788987251756163836596746350719329760814935924086777459745953400093256480593937517759303275778566425955887031373139615554169048624219942778826129497434909252324424489470278020017758768675281671018945395783468276666312554622012264848238850436060921638375353001261421669315249712516937841914393358033085983654643793189584974292118849031138851807593911880135571250097854676452273254783600968656763826411798741838514731843758033866283780712902180244987637266204562606064447307808661346725751106193264334906383931095693409035194304104322797663766803919855819848627366497936213422001024887731304926052528275549430975530832440530244906499801055369741621291739954268314817132233967770385226827666028421887954695466372145195030752097859912325412290069211968416625994250628470170161150985782499265206415562497860915356132099402229169357334436513681774821251931579271938660853234122580444556880487417136835734883005490893571007068279678776894406395952793160987987236290375166392602157801378569948321709715844751900979879823070646866875437680695319957378307751973388137886950955512106785706192600049698600435251133708063916016577839865962612312952488109901959879915172351980424301915293671554751940730232038299528804915287437358011288491577381874164720061735703857496204336995997923588789873919667097387587072056614110709267242407251081280753441783945476749924870240712040048740046736306746217633238409098953551375139604125714786138955416889207668026175302492551584646212696515669914109131818963006433990110625325603223861662899250397230063599047144913830885374887241646037709096030427590302891688261584394945680013030551234925925579578254887467001467532725238200336166803496895566387627583789633611755457190514239098959168238748165151474546389581542309431967694461948742940490674186150747405174155536826480496813998116626165962959715131636155017923836959676620069263713633676848576895106881283183771135458513837023758360583667238503205792595176709549625928925979817328605315343755725858559663661373091956918415089626854669700733498344494369412399897624550092524156075272696784434506135679991848104200916481786326442881708069624201459369199701973965936465001456770527416797783088258413951111364377538255261944728148137605162241803968890683765763275710678511221330539597443956776165643803688998025573302869333917671543295873163626945974294509907075949523390443723348283609141189544265227311841609635119364920195378538155730063792953780700978772067719668219102176437992077940835506599828656653448254547967239129055550978398652455120179078140095155665467375321059386399885812992718135779235254858796814357464728288385857836408579738718043351470710811778761988236335483017483110396623951158010672447750277475372902854336384554867023950105335605826180996247193903984133438003990439715326331491245814821840142879167942281198693992757732028217494271266241965099029433549994689462912124798768472669743009983817630507220856190722306003722629062400177204330974986228896822332177269139753813221856097298907729087866587275900180958237290155665068693951590719619287737625117997506795279265209114314345891191322692641798128936936119046422926924237945884793281124255914981145484327835653426493708728876088217112628690785165313764659608603643677137658482329249526062738505612754009411353625022951555267003792141450536159508226589664750595129207959888077824278437278530115350129920857982484503747088284279728923992885225997667687654438812020920608762661425452659764645560269998255303229249347823010757093143539185536438492656127282886685943294995804346874919380520069151339595560201563456313396689466129045988692121128476260499903748411407526207723426612849893194772975374907561324233979071362057456628303290411783303571181945049122324042806375814997503107582391330526635291380341024150515458532174413143967485189517789331281136482683060072404167430172328782168024390625073719221777006835614090650752610693632292334455803508445939177397453904896051982054497633526624722659442447377497698435256816060456142047556969453765847575542952033929151877801947357664097898813034993497420074758962054750058814950626502687934891965557030227769625074969445296663682832716863851644845979469168666101326863159524135578761771335711002656072402011911307863784341175935121190500323391137031762468757470381807218801073112099112306040250411349156143478965564347433981643203737046942663478984932975723644641930721999057237988932448083188967732479998752444566396660643484466991040969310371838970781342835477392788858811024998396747816279029228510769712280667050463042581577827905507972374694052889792830306564129961272031395545307317825596872925233262417667790991155117401071442369444380077751362605075500536440732344129713495031994856715380146885181394112813885914403389279281821069750433980202388440888660476513979180586680705781889967579760686524670883020150414542061843022561588303693209618291224699087858374821511668464430941747887549062799837734592905480945671146038788295472838796579625072167587926335723742511313441619288869073578538084958434251925159817833822746963191849780859057306698974167279845336328222231504517256392902038872104172441150810844003693195556337852871883629541281308142401803248840487002907444948082958677788785252008047952948198136068978811172083901447683946129241089426749860622849903112585236444529617837436259630892411925883994111196742111800595184851173722513855713085623274767404629858887188388033216175098797704091017777400952628515159631572114412479971829210448556568167461690289151436823813228157826329112227793572187027539072876549501571384117782479681914477679379802653330598652489900279919340517867371048398156687631094065235504323631971481364268662529426005116223460039188926695585190756017589528436496707265363963331471173235879157845209596682197270057771809433504202836001100995198172888098941951462870704076946275747480062069434832292103848609389278318957843468275844496006152300976098566662740090487169983977506273666176243952737843893041338783763613764517803101304595479959630178233042892656533941951173893415584472881794381343192657061442555582803652701146213755062249759287907935023035796302729714541155149833001154727932290174916954613396851466964744987202738810576784298040276476139687306859662023429668657053183262382995721916765827563626996780302103454360737892517823242628904175024450324905926097614048872192002602709634071265708114010350300904300828868264794010176972919520329735379481285676711513077149418894566815914792977263048107371230925101030685759546666807495894846112263906359561630517584955458565750487712212392922250986970807645553591205451164289919767091077216916742681808551243515356599068038303546561225743170483953669014116154640869915944692088155511242622195895269981403370818492194529250553027202174676031692687810031898565203344021241295950575874683829352984653708698231541636168696859959156763372398579080487212006909063624614919327000688473400616577902974942247840172692131775203773832344535988400533837790086206939209825246634966230391404894117025873554659230829277062398856081555509233441509230655848140092618902992673687579340817191591203276962076326505013450704742628969168578285282021674985802717019919275104681048229947222802631844875799997557013248842643666982550627734116669545551401516676383002738761731751784079149600143026118892365255823432500249438788435726407655914054693126741639682087883446971332382699180640578045674971957771180510336260609737259582559941808466146784912654574167350344875829580980838201577251522013622550143601738155419208399709080043027669125913611018075719801734240295258484898872378280544810292386613663342941952475756978362122400573622445474483122783989016308892949654909014980542215349871141214601476052158459176843605086885534144101167558591612204058600153835129177408127506386343960988354908109395071552427503101620669382979782988178955700128827703290539016251450917256145618767660898203903549201779092138720377715926795109625855520574270837635399116793985517088864822184612471071642846672542116772778315326884952706737573983605312368151080280823862042103285897198348660006851877016237565127034423327321575959927602062273765202282124471012209675258292774344337371279421313788491611458570964329448854216929633525212422464102899628868346708337135259482607714668027609392407135921077159550113643929242907706639321137702915038183713435941967047675645757347170348836698856220790289520690057891635604539148799177923713693417151823941228242908308582497004689618060177496000425832707461034523286645738987352782599620218909536429349364404793108024662006736005586499644557977429147248631965699992813701405714247757320446812521609608750144197467208105227775645018499795527375215306685120941512059549406138217824380545206709823877337677879785949337503230799812760460211529556573691053521896832984955151099844348137577746155205553256051522193698063036106699493804662736129564247848607143568632084354452812430764012315463510776153240898081264601619461443129373644149092636556653646941279866932215654647630762086166120679959323143279883678002631450366331635770947814832299352972958961072836665560328119156541494135675429287659610472822600973964245678525946449689190147059880324028930770560573946723483960454831131427310746916299472167531318078624645719471818589330329027686393022690059661964576843153684449480459104401487350882902861472309344851473773378667115350279548368825018734793052326624611844675782652060913118743455063817500263491959843612695835129845066854828858568971356592922223807399399408469826944409606567155198672824487098675519146068697889204384021884265008182522963564624077464551051748646090850028740289549650080797862353160669998568267131027007925845004098412401006130278661926472672647302892759198248108502262442733892899669339707403822705489853748548284364436189252831019259015480516746991163839783819224746353457178438561293233100065210893323365164878269274661679425963043106691422213937604778618090154757607639269172290136765859719831452448947891209811874327204360678806626669156862257360884061002004726618239231462114472126040235231814707386935226279604911977864616611108949255349528662536277625374601402531843437119369317695726163465446372245246027212291857810378441447428211405266398822836201102883083997109607616012688393325693713647843804757640666448600119392274386437701997177216322615293491600059078023614044539545552439688314437569875665391845356682983171730871212116212839591305604556712316019825189418778755617855498646964201628958757200943323489769465446646699619447001916859587075751552693880958604707806842286296419864919902844394820737640245867320089108890278796798818412137496944569406588367200963075332615868866248802200432288176046084177656933174903177918191842519384203898820817652690508154313628102868993402814486983885597695522230617611374982379608064216219899699156701776708954772244036188710314396736118130052663465997238447353661411670888357232052630993214071213903929506666930279405135339351953588077412607890413189410830637086711460064271588786134419437611077715208586278641843712692297333009945111662981583830853423277354977976304994818128342543186847303415138367641044890070445305776083228434856245174366310429601492666306480363622432953744075010662447451010845512843909531689949653397270987290258097350471097742924276152112026094888700226993665138214719897447256396788078082874725557936998551969385677272018895510557727749345747848802748639961309951621801989162046517389652748052476171691939673063108707905176779813533635739107022763361292454401470052905469249166912532859872780309138127452277270897969489930062421326120528782094656933868069978361337070367684960850518454887382728821053402878332490720413819274246676395126439683135318500520501745088249105719988910751523769837597571022420153656782588480155316152598284025248926456220039289146438846182479208946129098731508966567806246916386420510649248498892991931200135413744492369817290214048172866034631194229472466761038897227296415779345857921604534275308480762250171562053441494064657134965954367414209608555735479017024956888700662298658083973966222775674503049524927761994093455591560641753347577198106266532372561765460096314719258607018071753532816698323239348053270998593907497696754980505940087101676804337844715721886851408546890832567316311608709947636327785239708296236786892740145050934630136906485705101732344020572435452755396394696729259349578611611536130189626315523488754645261090265485239265128904850552998338966855395160103677356026657164069333979704006901464918466120986402940768276400076011728954375359548485496469532403898431875762125176788965296604199020859066072645168946836861009477089701494316201137680313996813578782148899464796713351582074030267680848579786594309497253649656166207701260490851066316193456860159453365166788561652019432134618473676125802626468368097760445755174857496494300110508314197939396215219410528704774310077373610693784809693628029867561547206835279448036511178368270444377002796805860995593830088648975680499344024959216069756519918422607815596913458798793637363046941980240986869303273840402388156027638935816079997896307849476744137371000412285261892945621159788075555196004846366529514694499631753970175887759565306170202645238058186758004812040466436170560967090592672568456296566762393096481279615010847001997254046769328280017420610495500420901479874059828710677152386816402836834098086916047317956515947095967927259363350480185222653969286142156632295256821249108339043614454124123664664880560975868768243789735344599006375196796077014231748853456210111204066083730372115448364453045075884704191764245567215341641042699439955742086057875029768945557608586031816330368894150159695699610527611291097662951744559730468425634526996031020323858202427375906084079623302552178099812339848100611378242487791369030289106421271318848846303922794444095296095948725264054344481174384061782460685200903019090925970562619017409091769825089013782133916269669998588038152592551221859826122807586763914155793259542685209474489804012102026894923340614759404857335395193105317452439273802067823871138411996806479586839639665581730148095444665290087296272194116288221107053231610095003022400344530651421546028914758375776445705217547360906252866636441502080605364111447856468168500789833673072128075477592851806568831837628777653304593257214289810863660036484820073166037891868932792770694428343485523735663165147482675048357793481391990533454294513164133059856951945058609225955203333788891174288947630470540668894106776791334138855893343187037106296181569631089325381290420864801930768539334651290770954107688874801366946984876295484574866096574983440727753901250965852984325503814783243790361676678286915444616881367562964746295943870866489632901405825482522318693544073815009935873962016935120602118808086936024504657458945268507533512946440540461011303132037686705250959146678555151411507862447662854738128955895640452944481427190961783954544874207437184403977536770058923323149582234970262787955427752132617792822360416678753740595404366013526751098599073597573994793771009308959266784483657015063532739132142351984439051097596962225354950441672509836346926116304752545122937289777940261074157302652320002200113959516667713227883273373072393459035660359093422690047709671060561432186848451264940370701505877725872063129718241016398387336372848734977105352361913528999327039192352773131259180221077757478149480297063551344949944417202137052812383222270617901864525688260001353378656000783909913156565071408953695035320169208029739028691331227786614138309248166759326106715898662023275469211248936283117734407105799712650517335646517489312560971204073496393280351114706853244790939994296563637714040788395499877821261437393149947879699020265121405398635647437734650707359744727995731228121606714678293386533914701287683822772800386834638123011005837059829593864961287932476204058909414752728531731150186716644294614617887648016507609170860898891791773765019665827566937389636269443621184381240449656083575162403419483973768669132756862427116148437675170931623015458758467808406605366542879378416916100900117781878448685750614708628402207000830368353867110965378147657105252434231260923150311079161038462141486410797648423525173492669567083158195937635269369826108469273940608046877374899059497098539831427402379588526517226393166327102723274713968783690791239145060543422898427219168270337470549624563015123824550092024232095082786051495763642704228750658392556414118247759005707042764084387020662746635207386726522626511226419204992073394871336230843151769546413398482399336414777400924220815214168812732835547402139328009884990143916180817675660669772845837311376696444213187179184165747259461188538007331607498793551146493311854391081453597297887480688416990885222419662163495860617750449799428918355555259584998987420585306620097291884274413280883311311420554585022644971398072388967760016603449137079971097390093695187350243546538028365700868334118126925268277478177178009152365251956958984273655193996329107031337637949458657501302938046064831814816783740114110728674368974746463959560293924964249297095269059694884879929647251694446453394294631839014644180648097527491910279194599261377067795477169521079866648704935928477945140470917357415058399530691681529273124088186515402456686197048360847802305783294103759539994109202015552228779073635773386130733591017590658172294493289181286593945618541277513433856022767528228514688730435833507931126901217662309513301087845272658449383547950030428585136356046752656553286558368884975989658248225289904242480227257877005444362068696093284094361691588393480926601760180823374240418601701481083046629175704566327653099064835171264086220908998916051177138092956814909602262476709792505285931629020424524675993331019490851056410820416089558646817301323894106623135926802415590138934637090229694260855488521499268749018929010263593221906510967212509328625622243129568200299010913267754477714165014201637489994463599177850908437623923431956778404634985944103825425789056040365847308755560425134134830384399832717375582466878549099208095978865479164210691747123123181767374784685117278256305886449137579218046139218242000243921435225027154761819015027614165108267545421934829218223928762330950065033417627501714464993564646718203618898751593811875882187477090478048209953737467724092032536350763523709345447270656504110992222503806260353073258750908386296707260361382666991561639306709834716573954258183329673721201439447187342079371373520568788419705345524803617885098870771003102806164659722263815447155868904317042972946953598844438581589987151722048770763190929729425060126993245466727645006734089304204616011917600351002105878165206933983557280102079315939973919168892693252140450584189051384665565109737940979584427061079591300290559456189165419729288968885236859387716150948132950042237363500661139759280826284478439194913487751146249326803882872452844224875765803130691235776748865750276959480506884461893779626344985196761616233902249405868906572371790181889669269834452452104247734351165028739547193121136853604667084160868060772353925436384380072082596661803762554146448184822259466316639596484121398315409034279615817460323802781491586735418723855271925511137646415454534931661153618369561631574992933810504709582542418425758146064586110373300110910538692054253677298783605654355457496011093608732277865773587368372443141578923259839546576075200969278156871821370600744578029254544943847282953591520823611496655552909718035542434457257268820533139191950892213921338742341302075702498362645016410912131551003857148637338338508726749171720122934147577523425670973641306887077145262494553925002299547594180970699050133460130493578080700967471391307804707480800391878996674367362394871998967749215593845150896251700462600644967394414300015355093883041340009621094411299646909368872189146838813036517660776618952758223033517547135142176797762757807435989828403914814631509179072125041442972330969431937523875775907175498663447397190461014007949012544097700952603973581195828154855157623434569962547359262000307567342417757219474537567731356671428028473140853532013761242252311374422610619525725533481723360463813573959797826056192739806304742131457669882492873234837559349970538310803301396816780948315325739883019691780198289457068955435673399630582018973272218917605956358853998943554409069661342404651997315270582728803337476438592478203853455427768976095324259046138940853404524965962082130612126858962103618935423355700630566346128730178691499033772221541155950308514316812871596410290301491580642867809220652366026660171105808622471826632172474114139909634846729803489108192507430859476368913003997688862360437089104245576773804992888512748836494595586564597951007842645723858103237437647543294368769596641418627342260572539164719482400334723744629593019884502679562361078074478569141060931160327301237382371989874403344683067547129393907716275469512171816126203648084028510185086363821659974998251238377360549895224401038678646461994715864702846852796943530440535762339031960347886709768845522612061750099908996566303817464352706082197129259685854961388890559032359786321857144981940445040097128518615904836330335711854578964462994323936179195912342078995852147877264074134291518574910634390606483763909052424797070544626451405328080683556592215615588314294715692843822790039467745232340998971231506306518614938362415661016817417829449243154166027192404139559432843063176570424741121639759499643429148972360085763569856813948387301992923606347764624565891948566879253732147527496255736538907038629098534774350686500579965682755668527097643368537682544441996358966874684193235109332246141155149609641021709035778422022522723571968226665682234523516859301148318289808351506903632714026901629131623035924056770382257172107131327156617568613947255039458436136319890533394874631386049078357034344461354595551530235132996229634881088789278193463416734085055914688234042795683986351558488535461671369972667172789269664568151093009901149623412154277956263385398562754572038481797409009955336193504935239104043579103473111964895605022754791931005257589170320593648123066892073445770095357626938321948913749350123642702541127856165922607560329136832724132256647758255126456445689245707376243798907472244983352557127779567852344556358288676750582372016921368530715035882744826548014221864597417208825299276798004783499067132892380233199776791800261778073525762490196886273932787974039475835770719864863360489069446578616600078698411639130976243097001701494510310775482669779139626416671079481372129929110181158766346574056996325890301772702097803762101862256754304151865797533050817349945099803918447074048635821975831119289999267398474482014005920270104522975558099066413068399426547520143561517382358236983516775136771334582426615014167861200640061162263381767178405220815465640474648749566642551409837513926047136885673485279873723152228556452243868129395370974525151100397065965782004663135877910227497592534129107930118393027447179031774899855726480051251661544262029534892373490050329225512387119029970311337438251116679745919938082371080256841912059282653346600210155031716314955467913244590451978419537306375589427607564869272264060288023419461162237708960324063304107923944454275484107476279759570491093008312046249586649850362638035382484274429308268058764307828985249067771023533356669573174451268145912909097229655276168085871455984979072334794508268909214412482662838629844109655650179183076491043267368879085777605241952549873458319769028176671750924161180220952062499980169531318021050465507486072805331502625904499782088043428541701185563712081645489339252147947082996228363921065521673660633011414516907784079652150085808619854044379376948260796698077140140094282644183470730997487747771614497869888700662998725766770905098447022709524695407609145561626694938933646852622669627578487136337708619899755327545476044940495880236298706884679403571634997317787532448920024666443568224578757449203822315061855173436465937667076236773312230956908148363627230411193170405861426546384268913493067388800081494284968495018588510115746033722359626334839128836733537255021432303474185113488378040444511685975522651882834929509871966699754787677575424272600656055316969485235469158077257391720956429600562946540554215017422843336816333488138397598797150220542719548337475159499025950294766194350181332578584593577035788178684865804435664252896336718316109384282086959104082035698642593628089621886307909188592833555117335678404497467858497492958597950377428653622292519028999678239870650706896835223901824038626533337675679919509548371734386631387872149728152369965262229325671285486611176310983788263451764136429398242934722647023347784065999281788037735552630557214261625886446314818373689249314153732302687413745429396743003582453866469841387421546939829756137893357123159838170127034400280384767548395875879336699251448092259544031071986000967152631045757910578178404908494561538791738921003824864663633530544253688687787659306593437187316677313052548529215405912361308557156201561657071500717927750258576582755095276067952066910166685831358666415381518885557370780441037341316178955124279397897944371133465122093014061512215065976901931703800615006124854737716507472365952458487543716363259684450652124038577287164575861673409306464386665721580699257397974506989005018979344473087043522303205788867068577239896073386486951536400204122858009700336292724342863353752685858912061072689508798324177636580214195910212293286458056957258370644513507408548326628472593701070686297815746649613732119646777443920666326933355993194791487287509402060819705253505864993098781320475167591603718501076422538812794631029826202334396432021425146684271268631231452373629139563435859563493844034205282485495832734306331365848011507150627428539418820243924857996134926546882241107145195239209809950700312741155098088663521871392952812003102671049349657778821358039071313777363263926430249415579399130237802953719067507506358185394218577304713697599873392739570067713778395828711642667325024418825913940871886052115513339958267499388631151088493586110756706673838067641373725555572284457151189521182504546706553785761544985957739665890983203478264373795968098689398179996550228780897630343899727598742834388536505773852552705039495838756894152203577663451435385586135932815349623012118158371099794611265992462188776087618712746379860828840974890920016883341616214584382654125853967429721266475457135673366215071698314304935275960589854121010002437303619001685675708247753103083744352559129260938626484276389478903193338389982614619551053346102912862269586393737699727658891082126945545946706983965151326333552289324444679425821101891717112792220785874159757573900549406211100061423430464007591464481712628487930430088940530436737545894851761215462119928882151478260733556866480223877480965426345684510951154428510945227291253088226084559308179088859810610822959202217205009382373397412714056273042527543843070233677908263367144482757248116912916421753152874272322916175726310657738954204526082283417777015392068877109073325369823832204465367250926090555817889596181500707990592664012429300623114998300353958533169987413987102732570618950509387757705866463082148590739468348247074300023647285494728141469527250401098385965418827798891981704218780419244755459125505427571871855915996343574975864489391912944112988130351305327492702940904090725510265377330667632421142858480983046119571716523919224275758458736931020137176970841328986142680914939599402334513884540510989423268114966612904567537186279833835576541779010717910916007021853584354071055234909560323814849466833343106355671504886331590175754175319710303810959579554833121108315621630396492166039998243121084254439813278672903862547777358499527651803269236128223193955791179030683609729720152788170626641459819640884833188784416239070549510899906403452683545355417149288116297101435476481459234382333840931026593958881510203381040532009646220611007266047859771333336909236098581806997758870870761732248905637152215083516500886962368234967192168111342964103415084325247544727158921237514067897459491169839684789626126862818896725247088675982852401571038351581306681274525019424494908676225579402581289963102283994431583325709662766116886265422791714796087920424106192201841414718132944796050042904949106473135658315929655916761385180137245167198496020271534850816347165760844683977108351501992669072258227888630196877970749926665783756734113008057188525718837810822832921161393966336059419104620139367022081276599673466862593442982652481850675803413722659870885000897670546911717449388985971338689487145973036279246016063362304271072420464834307643184484718409203269514522091753791174455468558962011080448804827102335014062005197785393601601045687061988230250664875327006841634375556122514537145533665389311966340460127317813038125344076287109924537692219067603974468950638663949639150874756300037758876988710983285750956457782870839483740600918243956583072602225041722969374453983884095654952366605438386422057593806542336668646429505712975204611090880783697477172908873491273724310981466586300203938713543619106172508875607743389703027805916329294527051559168865933017138755880204466398616808450699162507343216416904387394986421362297100288840622335767120736566276369694904814197973928994115542785227201584556025154059848645221246530731709864695765434905663190256088544506231071902792439110768742765656698473810883345085735548141813478447110824773984672380925581700488482661612920378759966836267015275351186037543297317883253427924449312881207084571350745884183728486518785005610712274135527288656419906370291691713719554215051717974408096598697174776533434993394649768423344723192899981838769815244008625975333673927401196202958022835621798163612152155103364481458773384328337546130549337634555268146148060404707265794101211622615657514059742875751679220051384239393662009347084464946193491801762651118581898348477570659252754617131803585579828233793070273652210470096292377471527028089967369372462542797680014416004081098136126061125674044749043381955344659267719374612492446956788771062413116670828780215205755085870743248939842434776330314344089586453997024184112497234547298346294578456692286843346943696121342712091672350637034856780010490884873547484217394989288756515220814649085308758818082212505767303566653786150229497500688324924698516284502075257822433684434448851382532394215514320242037350070242958912206967279999375080368820359620577631849684049383764672940488278760484862379071009049536687681006347775984731702994599756525604178087899976687272416585389801170081515992585264396054819933101056686377736600606301222045180547577902678132776748613168104124754651899003491868967950047500258157973072682105645378299892934791644657314030942483136139845000758118612443955475700656804022710999830410415316349961143351921124969884266176897460769900720752194376459659848431496142460072019641155797259190302281188897722038202388941345134255810774906557925153013235487891561257746408770078018620238138001467791280493867813899605421337170040971037528072648616271073944045986068148116888822876008615921388171857752908448329759444270438578367660679131770358376626713296181694700909240475354155274342734176307466716442537089833649571304689434543564416157153269541381557945385357811333874694605157437636883493599955852180486525753024647887181635015114906784411150444365328428153057709262232021623937687206322019218982456063698116222327085846330261902302537157501416676002561509023000104717212695846810832118160353584213252488504855379608292882741365990478120725595723561217809805896052121363809825107193872729163873983737762332259890216817999176545262604946015991071058233512637590352381095796010710742218139565662808615193806702110249750433526672404666020339175324988956207892847570454647679613545997245614585184751069743408160221197528295755530382737327342066896051927879315049192442956458402365099467949911611425133115344380318657578112442688604723800463049816737953277749988885174092884128975564810197272584824862745275477086299582829113476537524555769171629144943969117668442676541645428710101579444253281151814124153567175913229532414527127401558915982999136430608455429321747203727916425374887265261517338367038264256479467653999919404033535900694001947383013132394917995565645709814201848240028172440033043452637822236854527171431177447248579597448563096861902719503363214420485235650250655079852160053456458945701665334883469645578142139926742428007728102742845394741422366900647420265569554120391072412763983515319880251458904135089312809886335137788736398125820511288527337537104958468543120889599237604475444998190074120653874661470855300713585229577399970104965960580087133315271734127250924622567087289998549668876362478744503641757116734299539908369463132289959944839195303454692891096980916679440523050437151993145506060871497139897938083724074957097378833465678765432834299174690893877489502141968443674461378336047439394077073924399743617090269808205530192268785210669441399719550072089273408836542521046973504202946619010371295152034053114871031807363527636673842715916666407123600685749276177701094053151432048911206730328412827816966551654448427360759996786031725904366833152189434595954235301527293866013915558978964752444428639828735306664347108755987756886796768806399560409525703381705896047582594251490684681824802403800069001498510124829132020143875048686688963233819503377498033691277857563522688583130279252459892432946361853038152500278676218768863491561242111633244779110143434905744589384603928306905623552940079206904854609746526086198953750959928164384456712574871934898083950312814350145230310318661053283814908749452647719681879750304509288799036078766842070029528062666229319006929175661869047966228172457634959111539772205695909739170365821184204398877357402042029782978382438724305040937127253694410912591846227916285339713005933355898228079928309863884507836251886358674095894955373880440034975400874293340224932971642718814499606162059805306718447371013589571753957189505023902231771482268424514059165048527115618071265513528119476393273621554086995389259616810559895235077553527032873173790945896641178514658020621091937753883591063973639891674189187161250767728631326731761887830632137736008612431385324150969417654760880947354110590294481395001669738794957793756752727825472545500240949759767466014246150526697165548719242260019293409033429556098665760174366606170007715111191474901324511097565430971026691887801411163224489660350658421399957984758918060531692430590364420179086536476642823665936724273033134641588473169422264021707930999789915264546761068370178708472010152823944884381502450315685289920397522627949598968992615325023422950734691074474680304056110584855693223601131197060420418213504231565555621624462168289462366414588950218379650405548278831582871150337967726090925574867225276983682522839879855986896139472087815718337798065178070612207754120049891964783266521633931496420342692526208611521948448423161824071093138992721196624694839184328974626107284523224734426430298260743844955740949923005919648956298267654787029109662532989911153356612278032085494286175370055189186930090415578110616518161738443360441642255420432492545231571098411644680854397492103814452510746295748828177518911580829481206037671239818741564863208617235893913959833399823999644848605043768514992160448191844841099776453816755095173882792983375689449243092409080793204988086750671219320966663301806577929162878088387681874582953848563111077120641514050966817246334560183429316816743907612932232148019542069148920924359415731359554585651459549814913379870763246412493916294898590064520073292270691959093582951145558464429873899838894312434614487749893497521430024620482055235315662583570679880400354806454548220875047019904432717210306585061378047859390064415543350463994673479533128378855802531104833581225125976691823235927695500953169408213135855035639542586512281291095848523534458923824792007504259200012997452842563864328574830637535091992257473896844761617414100529495465426653305481740983655156363849688981092715850586204725859173094712758987447854418499724816201971737813295767863727355381221844642145219130952169146174050333582145988001520645315969848634004006258902484192855033080915507419833874737228934328816805779141251198801220243808717220358048612924954958661396511888419816098739026993605643562824067624801416952000163750183921913433199735110803288260011151705131826708524990721202084943747063649169579402036771863822819961810954528538721243853672531294044968612416225746304106940581884724422551960519685940768306419176118341947123187486630837007353307776124390668192473160895379660364646865162850284723584777597700049451352336903361835177094787972143522153155833260515984754482853259358178132002460403780321660168411191189850750677331433505913807917371679061911573453794618095516482829116375272660687047859511456828430549550490728251055716899699451328178445450536508533063441520544706477571205675387730390343034248355524627013765714838255480637279552062521371578959849946201077300653758871084037878197135592910580839897253663905595427830930112091317879653156220411443674602388971774680265897206245010402872478181352664005876279626995065096323169250063054070098441135156065950470647565433190388057373301199471907011046422549141930381426622084534975268433345244499276026288430371974319737331242439930944670873621727407801083469481197078474183564602003720410788646993213722168945963272497183005516847352298910059516433722237908525540996588334213890299277891799832898367907782119377398609256803905553828350965663870727131456867424759520069105462604060909468171741641650502395865397604898990858547929908314790959915951008362197804927457429256655159761503585691492967834644498523226912261914969332689204943133477631824450534793698243920458084412519821214831835526887948432189461616915823662134405515609765721983573887776663836802245092016598654934588745883238713990405727017191974798580039502148702295164501182606672940166662522565422087733829773706812522915775231748769391109866257669177730938173944037464602036276464104948371236026834896902818489380229194220730932157113547830131692542640827094036794765301921557035288394122733436682810152945376880783152251128749793954377777829245684303972117768291318688910861852239001335090751212964974613120427224768328621673794850314079098715508485181252905006626404521435849044528351502687231771178954351327214054642511260912304050004412298844066455528138579401297232468762367758480254952514241185394176273472696478323552834670914003420505832568837227217260298003056359871646858770550443445096288219393664398419626000850356249794607623897660215146907380728785620619750454325158417724401439000219172745829588998230140616860859496582781330346968742336104207887760661375130886995810943601801350772448672504909513115508164259343892176168636306613427547474404087012808026813902098436237115292366606718598764651673895719866298137620295705738168062528875484136762528620150088037866411414558304202484237448513711861734327868201630446030322964399961820495413153461328254041982302152757146273775247087087944325087929555022276538031305933220503658851629361501168693337753385613464243726023231983621471770622103227091932114646210032046178447174582343979954502618815975270115620759108562236692795036473365139672560566897227054056709679856146266278666395448813005919104655726231219068547986345893727821587829388742821431743444822291975523338681359949659720672132733364477751404100894930030773420750820224800375552423912230729188330863678363044968768336055031805732892287030700346702535863532598606453980291698494009905954408861515746909571801680452778431381028396181718444504840753558190166463810282756274140754075582054246245023739815057513499952950968407480549997548295806549650095218284716420749249706380725297768008339576447799409708943173622119229747076838778904065614612803559732868176485130316320932248473970336126247084084462409576571734591934127792632435144790848502887500803258127145477219723540155789669943177091120666929554948387764660911298485334907133875020921561122445502281928280170341249310546216672566474761668746567824627135642400515458376888285930298456202084143259954115976299159999764218496848551957967847386993859744237261198685374864776657918280485483388167768378467936903044385845281602430977629782491358206010812793540176196753982176096914921610896478322304692277952422033165013435679482812036435564180780754154170711777107346838743112934199538026680954250222882919203115132732064965193494226232841349163948553038101684239600907979698432159073052799372846922842743612396850345969117853618918372264410111809205878870807535421600138092944775844589030834819867082772334561556662801446605982919458905957441459138179471254773231054883356857500119113087979551806231260810922975642625312958969677992471814093399134731799161608918182777680321712527009549659061852524104665634703974925655350106980665799139783806051616491855147132950355018173072620612351060956267591538737210447521843429460760553936183079782256528219570113335698772700547386106138324060601808342586056352356260179674278728072213332618629578212820840956594418603514495432404187433551836611423830909378783215274719774549441787283384404568160100527645215594915338224752836475386490677825577688079620235791133332877402175949710927009414038601682437982892745407008315704207102799237743189752591408538070324339053973911402781288126551820269937955608838325429389825929112046975897480706008457275132063879458369397796362592614136883362158810522692128001537315031264280556563621915764386501873205821152687305717288724024789386003193158426591358205286373880663708522220599279161061021113038339304664847490259630008429507118134558181990935187974355252824283766705576333007294873828275697558688086351337522089434357636481317809763557829135166131348856432438358572564694636206287624945634562615770665880341652656461589707511542364494678599257508561829508358062390717259099509116188651072949185092978516800050666315571917155429974357719167895426277146533787448675757266721840242630277560490131794909389346801671075689304849837967979837959408242182916964909389050098092421378565256365167178156608808614598362301451506590838179471303153330307992344562643330517013022226012729187743898033583045781102423608120774075320773850720767394063085254804655558779750010975166657395015675017936275005916754487651446401739885844562026119789668126437728340632812468449387411768405685185886963973026116100590149518098288083361711488919121395356313763527899048082985235162858320699748648981615827147755732038465850163624790814612331235359480913037078799090389055644853234471828767461206150301197176433273997684885888925841732687830536328085697858454320935056574327070357974698734747814153979638873827427567830311230242649717710124335644272126276719578654229056230218900121296653444804565512661322296372966165375470444645294443396651267818361263678664149496668409191262690969370644019579337525456692152253875335435532280403432512759967507002463719443557965674656168790233783499167524325141203793773454612440113735848535465838698577641699226427531922116783073183070690990645028775119439539713298656520537006549728324543299212594928802226985621396074109768171662957007791236956456475592596696612922761439107374598165832413623479692292740971882115095221968224414982191766144770615120523496859786467247442671438630249815728994388605666942255927016915979701031485994017865735249772949616415438165544927763527031372266453044508522042680654518299105281506859143570015690631493421527264232183610122045653455982609865023564189695296980784789904140751267184104475339029830651920334975578205120835569668026932158220595588554271979506796969853288001285042653804826539316446552688696572925241358462655821322667859704389757186472891702315343446403835613576227575868929012614070020838021174281256702381634587909846304574594587611444403012857789464512600355372658625496753470524526715913011363859860721022336437594088992211136214285765638665879790212902761277048237150379835821704463502323824980405989158754515992061407215050353742404826706179384835006031520064140636537681642420947014272823523176030569671387834118708362054649643444311178597005276644814183311412063910089442600681953574546430668701576667868687733405173874147462480953945108102729430819586915523622236036385308753909371334223833802028131306184691212382766065776773801051806596506558910420822743762413215789693114314369383997939912914909027368842176218650424333275112172164071187162305370211796378602509263895555440526898851851707696622119453828894327989601158470232592202584578963804585357952716019678892374850774588227755858796029200757223243678555001122943944019639381707505898192544923149585747636555443716940319701411260148638983686277307946059091368384830448606240837381011776010372812238048195124168688968307334307046900676296894710981716028676853539305548413519623840825874042412214604826167295494637556758333054438749935419132057908604976812341906410123581511201909115991262894044887048707907640956922171713576039434725112412462099151300678391808526249776269580734539717597242820026336846656638896878836836661868433448234814632282250009118967915635261330577250509864847475031512595186891460312484075553452566707011161886254196463751590771333810963464196989081998720078645321164323530362004951948857948554751164672603267213362786977063488071299014593388155684029230826335327522808112876074508056345260872086897427261289661147177892233042763079378143192564701734413806613390999626563028544869709275604132371261648783195927974708027760880390292863639083113255611230743781057394576640193201121388152439687059409840465465840889698690068569616223140394553699887918552843336125746018140203862370737457683982488328364366153001311840754155626368923783283102711782347238516352449188280957214468404640286946086846522566203407893382922625698153994580435399839629469163230758722776455508799486766226977210710547730615138035764106116569169297908240359764969693863960703327922443318238591828791511585849560616720960585799900755636255097925792118399340239139695336940173459209751209974234706090690259218886442055679481630877335377640431645568645128614432332478943353275937076827191553782310307280201193127022616485623600296426222638874632753293294894189704884388953771899979612729277596239035334115921508010951579984426092187464621972837526269990231831978920098795023271498938065645210091218659152516487965709633758872526727444026019807599860672975748663623045649977749184388743392054953121563342666772531738658783733296913683075435164059506057968829506250403255725388245987589192803682350014901261594611260132008781780254582349980132128633958035062549395419549220098152560447454221259342256279058698951061199899908590032009680394915555283310506139955902336708750145203210977220494601142571618995440555286154558813092207244331169278088194905641169230058772701634528667676789651554252845883688960312894371275884603303491992212658281987415933736965941808854663738605189462932278760420895252089065668109639719110736431736097288967268706235357830362349571012891268735083054256720723011501271931671164190351392559547882651516209254933626682259170512930551272600411467506761310250656606738247481133021488817166211794985345485643688421320891020043786143542308943064130080747177112486388007832269319124670670106655518482699924122987927105558389037287508141877402151723019064795993871152093511456799410985239739889109164024697265879510227138359478881975418744234263778280480032913573305876794552160498722890221919532524399184017887278933525712342337013227486472318811547140955719862245482883263954945032991387260780229033804639863513831163721703014177080545915411278399864258603129144238203728475974912975248219330492204076947120336476684157508225625019523414483832148821207277262952767925660305334555055431371689741489206971827219679366348583273328911786370129474553090747075786908916524057331151892400972072899152221417454930742464015793242100937036005442729416644260326285765627107143734014428657681689295391634871281235140545064787858375675319630771010132133734585537492189731189764489268496510011130455861657526128752873164142464987795993318247103992680821290608305354094522908206762555289642697123395023546529407646952318654007548557372646893788802587370435873205804900394659872155429380462017284670158085598825340842158261491599053463079223510397825748914439951610764141061768157169719268510771693842467680490949903040911293954895277012714735336106711128149629571027500428158078579721047982404196289037767449058265546992842881460354352502010059283995562702517778560853834847342435851939008104740620864244023475907708541247869409048001804764485042448786450952318138677861379645005000858714390168463610758336027515416103125095638811366707913121633618293018012706703447329744387552552487403088224284844516966032573138420330585246341441899702916597608222874617181382871339103961085511234380318292337142020368802200091054216360807298382429794979051717697132971826873339086916227076078867177792838348316837554616257877339617298927119958275847953056202677429893331100193739519890165333303384107190037115611909065675848181183338675058229397039476899707641819270196747035184288850609920382727703131710678865458753728085640850812934692835011760029598711918258334085459294274426031039264204612760255045734434968147412873959206368321879532526197302265973904456482965051080396415219453908381982130982251296248509940319509225515962146895648379554501782091140974568241855973486927882011081330210232000882176535067526209424646457608327592597940700481016110114318396425537859294585596921083244077076534201438742435858367741318599911726936744195840392254784205212565280296513074836538146822930393270842490347334618975052322632618456485556570914583594311315357700062593357773170696133802090914719729393218093068127796317478598723779932926165392420325528666332223212211914841506780496989576908028329224222104458599111544085005311995764671168450284366356334522227537322403045409959421684192502541740301583342233323468288668478102875705762605684805072976360093382800437548672353281687046074421205079147812519505250712790476198918231424028332758948968801112772723795541074754218682162329200378812131969405947991128575572301856676278981519602759270937746307935335162960575816891082622228209829030424110188796388134883182002148368314483789344884767543152282843107075524530908564483924124594289727976778086064180847211725630316751900901009748765561412981497855950007468828701381076984318580983117987553630138774227526990690897818249087955226466938916930010992633644241335741851251090082561550616237377012015110925116608277542671069056447323230381228917505368584096340567309386302281629431907138479930668540725730056189385940011273257155810212821845597170112383857434475040241833690794344458614154847781291695203845856256704776657691277131328996211858660424764666250316938256383241702412849394438899541069047721375527057964464443290390145162250241325628413861319342279371409739583727784153453998254647224458116882989724959604957160356061421252955141672521430109388569118298536256915763402847460240889794819000826240870955767453539275128413878257709043364132097233556378681389872291302060706873681375918662784529932884775725686308118783494520068733044810668266906820952945415414126282478951370334708806108883794372799694522777214332628307661914939026085143800739052614140086603095419305615237188054862733772353151699803069432644381262195245856611037295944528754346303045849779287289359350276178167481596324295175479833454972393838924391156962314027040672821808377795185686814069827548240125327428037261059406510648742728654330731117620291791620426993972623687147852355376319396228184476903847955787534999455539184699435038269743024248009396539513084579899892767165229287339886436540519626905070331570735783806457967489504537803365217100556336455224876573421108521603981568266204020459904795503498088032930015658806012232481305361549795360889363780939976784121370591464773296010834388783388011928881370153171985591041247615350254633054776941231720536215621377177088157076867251854882192684619593402258265325731618619978257184876051368814067977192878198062647693380481753264796360186191245841515827324546708832899603835979375418684855541175359446184946962500911652644876472509842927187529896259980862180980238067655076130402408157376398423998840645803950394266591000092252511368876407276193272249692849835758743482647259465092622673509341551901821128178166672346863141511428888164831484135507243713356500734341877026429265306069541065391881267381763762012768163543848418850744718836087793100629709227930573957462745873325640539260140558421056365717102097525669684209410239729441610286427440833165137249045403964833059911787005988057595512962289920023614537467078796909596014760666608659289059887326565840984403048134937343584156258151378152250474508811391683472108513215479311545705662316125503357150355950387750135935190356651897914986651638607466460987958500321443422570085963150807372628882608079396097346754492657462231016756409167939571073297054712863516495027586759306665565061816707880632575823503589249904802013743572814753113404167760405347195622201897402938830265936692236149312957069313332329967415572863462906055248684417635739048728590946604244848395949822238376106275193150188106639225693346225460757497845650063198391831151898051559912782112561710248520992721451190395493566440885651439968672985996955335415222005543944227043646719399435933516472982832978119516630307429243966016414446734293236986304886005634713531799642439095842326178568421230300586108973555136516721496326262203072889167490713936880445507127768348679677908439736230163875713294382034525016880108226091900637644858475891243391162694868293371413838065266900358217480679949026995580037789204319117568753383140381038603599741177256907180211333279687559611075431119597862284070725880438070815810595559593739085900169383209050396203407755068650521264163589408031176538551483630331592173548693384155902226037942346411012544781228918657172861055860678009074269885921981234011393331539232616640497056010025702692672885115104696686500805742371714362712916026530392375926027906352668761092699070020663251827796181007922978375596538480013814521401713658795530975786843667527410846218196957102931857231098045294428389220545938171510591394467793953587696519522350934255927836961902939137400002558778788400760022321887389478034615808535576094701053475404843269132536452786517998585939980191813585845293092382424055850806231004752344176979715526837805002744774012479476154896220582198699301030768818952049439790991605263846224693113689345073168681205204968714308515150308671897225922923930687340382270855982222482071813473009439848892993106709309136169221962108281694111745510960306347174133379635934437888863292842922239169625716605572742005714589920472314617285399505301601996293180144470334627182176497568647067860275366377043641566789707160007322512234516028187605510954358395355770453000278293145998219986555074172203597770474288161152668711768779544840342079265053449957693722429898551982650648710895447053012598587567087724063529926672830947706464668288828111135950858115350043622980071616901332669611378516294931835082371188990551806168124934730462144955333704951640002985759010107948792955165914441455782447324117366317691944488740041524576418471733229514289339909090673301913763771680237356048468710998263979332953093814181112185743821682652570005042147862811176198965017257837301664134676181862715998394454318175890172448582698402850137264958748887119988434181982612160603671616838580193624890961744424533415761028789508943190113320855635211904252158467827263054886528082579509895698505810951935596784037606310089700848888166829768232583102679265528272011057353404664252306871870641617026905950048507267782640477791520657235415679549499186879558203856037525799405154165206063230446497812616001909804574082055404342442993989577843840810285053582006894343925390310619609552609224646390041371139755906960148104752445638028220782687140965151282983676338026402405324039284605213153831703669799629313543569715909954813184798239274289352991669557382484216039432150916504391613686075527688170350472012363182669490001179916310789221416447302879042602536058307181750793192894659861769893028243717572874075930367884014473193716192902028327837902983558010879046130898906294287848741385884025305015257452324812201310574915654765681989381931620777195410512884599366097404599844309265121757846930168107529437137491696119302051065843520215979641854639171388232893684398694379623788656082399882463916200935271408015138876129857324829469733556446041871661035497565595797261902051540266799479536645704002836779209418929779058496074289165875008238393829328140529596621317374077247202305205541983733407595218931815145408704411616309986282547123106053749247056621824120358801109739703903047664801092012035799781816091887976373788957660554343492966947974634518500633819468205583979789410605607414834295573467917120563759822220460819866053151403074267625893928354634973766321387421298666354511226741889070459263465359840090770678744699681986088274169118263682438083560784472906080772571453510306553340370995709120390741887283553642285160930537771531016575235502717133957223393357373778269925075441850469330321545944786661107221697452853628897902178423654987012562743065829757541472081691257201969920694668406354689801771599701160011989672619649261877852053232652231826291756991376668610197414647543302855789375990838443414005332240671789951178473192638607190340415134753833633117880445706743130129456932148869775359256563739139144830445127708585600162534900207985981818546015663748910566628199320089190277450617002685866053487359998885506165157087320155658315109627177310538283136386204207157308306442320904869330467269731708603910571888188227845026719192119892174843340243447444520070222046301716277408490701640861407283102570712555981356671104904198148289561025883000686612443010177627468702806101205245629674850783370102559586184056352909505420609459979933868624605441366041922159306534873761132551384746185782876965434370722030228072749200397415433008870061311248447624729445597359361885403862163040715885998618767288265575105451138564363590685829357070579865300183359747687883610152642085269373066224919817975277828104674780933564248550810985059797952947652841502597810674417188140213013727276897809512835734876352235772977488986905807813277912553769457025217676220265922652390916532723051337432209793016198961061424532203821817314409271982637473104067657080970930563610258837995426909691339411574485469421613139317777389466097221108472696590400168800898387893942322346123367047526118903858667125915748903652748483726537629828230402938110996418690025890096621340410538666949581274983597080875451694028041243671064627493953908373415908780614236761481119080942867837024111143813115778895049030399407804499962764682019748916803934517661700121284062050400240738167758077546201787543039027700486571870799055569793850996475055461456174350636083083168323961716129890010400349629483631220877549532136848171676912913105296004800803035875650634069339965185469532999250218718152511698925830319639666920759162895522744534084480979214009912622720930642978887190680640499767457141545197292376453007213154044811402190340123533445540479316508184132625532302991833976442940347250865995075058094688245296153278583364648194791833390581643806353331496826270394824791360376642701773909013208848506463089952383963587426068197076476055869695683285297053322085569198531761889204687244504635258283369072692174794721489146223679297107078066472000219445633043963477836420485215715316868355298024390518816451050958648601473303694742973172843578803029436897562781342112107968041352628187289986476606702490005558551063582979218237074871140095311401231084411232456679962546230511492874427079235417776173700649367092947297147061057028595556157158140424956570056042477521147106674297547756143681093392695239364947472819044108236082966741074266341523360167747399615969160376834953761022915061217165786966425552094277037761284456391467238299657100672843953322222383436790225494840920749710097367401261986289790665499858879692653832257374333732953779786033151433958664222926891259622967319325319021649276535497428542293674416424014768365784357511340863852703323288624222774117097633805823944533931379841916229566600817206804733135447758036529619160107322368268009039190618602410159733307749272666968736601820848149693789219324646727433457871277866801673877817887740193168389520493538203422701729540001207725730852898367857151315923854948452326255603969532019311923811343712297055518422040909988750092193284060397454943026221355371084571959156134346487612021051737597675103389747286768556613873326044451956208345572663179001062596527106308742722166184615904928922405085558030752451283534517256754428995404935984828502048947437412824015108101715103749615630767356858606440166996907478704752450000351872453371361319975144966316730568281962871536635118556557462028293093160095834800261536603544253608706381486864227923304586505841696848573895079855744345591402626819360094161408579974235810845067258370526061433426249879276488305107680347572963493077380475870917065714324312994022037152430869805348069732377976217206643489356520104673464319776473883257917287304786755399869537624646404993528664047801910890627394142304289941564758926671283260912572076619840667216052453873020823327780801899374917917763133100004328819393680267884503656792950780697012925042888760223100902625462072715055286480686946965905702335272203853157293214204973293990622994066222159103306482162522418049509567625683188374716742193490585993129956203932500659931958572148337679334960871119783891286349399700480335114703889532827277999232076036972736294603409562028895027090519457322322874950800937307833781113084104475691514681542597084973592914620516209472123428841626475021745059720895565302094555750753759577822004488189024131766054738529872016382390341664456753142731184390524632930977878030403592405840792650996750500247540279068698242756350414303039289521203318271135330576869827620936922546382008346226992813109378703675937897895035229838929008237269091147427534203564832934990779411756281912417926102578362602199614320716702442386960139418541885574040297263502154748706274067288726496903453214358560320446435783210098890486869543455617396135006010700026191846657129924215728866409471051698757245140886675276297759964779919156739491301964172286123223389402354582329207285270444964480457688971473365305157100794415388271828649181252070105848843374711803315924024245624281145223261410781853943205731140441557908420840720688798996191127233092306565092633911208476992843818651160732132716425162306896497329501418563141127297746767102216213830252457076069785023656211646646008063545929916328190625509554000050214875194979148539767716651640375300766229263473675764351538040791415461660095798965609393484810095166450656606086241499721337044901906880207632110975128268233800946239981348912259358351960253173341864974196979255302319303748260854894004023947822289559014244269040400267528109189593332008656492933490078871933020684029634662625906444255155044110140165659034393620180241032143483456802722350258668967196141975438318397522380576338742231488644083942443576904852888803872213071364214528249637858782870976414053805063421405951060372212709380030203241572171799314958727830976453354023322099133418368251265161882874838558731031676948204193210850985356973450483919772493999873742315371535058376286755613154856158388615932521462661120704904569536979237370852600773762700397775780868532107225412577787235247477407641951848045520544560068381741760379471639690195194071933467937199897978446210478643022559256798408094351607540783226029982307287518484572017712810881304558149196465929324129147883344778241239905128882143532196786082462947287176888902165228706469116162911500928954938303335162468279259409997590018135207806596878375738266483297984110260910497615494788378386489859441665583605389239681343537120635599877965934488621176171547545057512319961506315838615747156807861040939615728060089425126253554932851400090235022803677001915912084965167509291289212599489914130162006009664058548191810445824449579798816513102691719001988891572513719347358561182730642588113186036291721111288514178366705105467843571436688822316784181914484852029312922702030889126220055789897728080047093617584133924661709807640650506355599459387095973576188150375282333593424018891912915296622114094706938087294170893387775429246867471481508861645094527363172112093854077718618430046991827350130191737369457163240305683731495443936271148613084519539207053985820144359780408729692577508127867186315779303382231805929334110040707484298273837095686646452784208700961288648535823800507594496130301722230198383917514159600711295670942428864400011891771996105498409166501959369359362691923084064075373560493822278842026409948316381475865433136898953610338220914035316683931676826436636397567732715466474039053553153794772042665554230890666036186210604986904238582628333703836640554493810206577467820748978207593863007265955555595557251498840974618684402546313446506199617443025221630454317435631312786846084646977902086645695701006893003557318188472282498595636255019388039769981096907143808276040135265232941392508821615710340663214362490558473624575018955808267554088134721092736652037704017188061659741025056001366829527752542477588518212048085671585136319905374730685227720063703762448174479813409062145093897838327743669715253181072363866840524822626787794727039880431444010316044836086305308155275355732164463239622556391470402847491173492302488803228522941599584355345141851239146929685046211523593591014069658224570570055761720140710408951485305519079388069701671134186790273199692063121716991343899346529109560165757419698999911909252410467887950707470674395744104788914852751225465227338117273411006822773878949850187947786802924594970358985291402881322679621221019262964431080533647072777235962008027815292983266499621185024577921517678271916240331918785462348870474033991711164967174567667228304453267955341933429171371594554879109617496958448920006079820895230085556896770857991606372753995407350210957914018332977752054800420842783321170542404854388204063956168872069113907357037600578546296964673689316554449965751140940067527241438357169248428867909366098183551938019844355269623457052326976637050189520790854482570216781641062356577886264059280834978986569842881554402839907313394726543877930926383557259291406339589961249664608620445912267388999992988054984558988127003166177940604748906373993886817612012934653952577085317258881838327014692515285446750122615707811002548651667316257118497930444913593561304153152366881204737130167187621401881746082664028447989581484957365061409386412547660026243694724110916625976581681928436291596227217738129399720336868782974234925384039811753256394009348444905645672516468480119612505323595481793880225685426516537754427238643031010824070775070448591372179981522353896176148888562695229593095531864446601397320722444980318987107204315542782095189246658697217321218882133103704554770611149617286421586175123516903490214116243018803309808369079028564133471280543733264535208133927164717164764183516734345280903067695158637901152806309417444730142439556069098818394906745171143629453806580575922664905529382811818404049984182720251599575180931531895027458069302606323494411972291540132098611931538697906289111246202594242643691171107594736639004241159224213019247654366267638551642730222726305133387265925971161768700896314156105565331404543300599713190029456866708947370919924063986931282896848418842909818315483401839466083659292670209582143502157749945231850493444190052586471465698802452392482161594591058211175049296449119111023122085047534326364243938869752216394072801846032082151402368404065271499644972182931344710400782463992582765258942164173067532455068109612257593328596004191661526540639613685220253266834510868688502239319978045705590821777553594217061824635879020198903805878957586991075085385062086156927802327737283548797137976967046991174063122452711457952481907642922101423165834066972601660870458150823708856268053301163812336997940556576040117286124251597679917744542807246881252013512623948804876190009002886217101917256295612677400882353588165043816859153143294634653387878314757335312436195798834687034707951055905433862689072128893596492454406102947321914334328838822943772899925714448091360862528656598878869021509630713929197654354457645631313789326112431804308612589641760717820153255717821866735572549238088537749355715876963707207053883583879500708304917042199317549667154388981592632076927330640631836398033303978990115601751926018771627402697432353572662857611021284662736450906273009145073767188884913524132769148020801843454449644918409707021842581461204677782219784092797723964827628236591008192408571877520045125241386911012039818634710490407723495299254966439962885463609416283926687624283581177464093363189045260738223148678467143310397801644366588357393712078280863106067673940650332405225904092480878043394110904375050724061617348598183165983052149126556047519750395379409390258379623631394388180929614443417223456262017814114573040895910663454136787909337631575172356087958008138777092567491847135084923854825152777295973873710887002425070953472600847301570433872288782035165768097355226506293335251050934873344232704107272507306068360952211278721107455899247691357012342290388015238721962431630616130410770909009367494996372711697922629967878604836636802122680772639144969950319601726319711809733497895066453078428524796823763490426244009595042069704790818886895021052434155128255385341033724861992697602549347868875535158684589208010755951831267648351296381789476766101586721286585071732569030105804227412058840859385811399399410004667151098087067792852720682453712907811307361033006896902437144677256992279522965628052829931214583791949279131403021845590793138597749353351136311400817898777337313545364212576421838550068379988132701629300475130788234205243504956196056380372165008804840583952767185180537360764069562127294005406159442569151862760105182300829706158551937187073350557678102989462680804629018958824434541272713906131725677741166834144926191177968308243686960840122396379752129350270508357598647543613230241288110030679866424091429427482560063785299520822287587314866110145817210301604502965986435731732087658912816749694835712681937263113350635197909018298408409692112683253822741679423792508834006291433629533799309573182533225873516190959460744192034751027247506683455510779006480959016804117653413745374271652300459615928915943538102792997126628687485514527583570547185901072762730618586496058406102847540530558486455635652802686637278913794915087944801012891075782714426798519641910464468071602581265538708044202380038797572758879105411360316785688950642004759605815399611479523677930981816747633807961036290611078540221155624491396981829651590589527191889696646557316649611861987836733971308188023622329495422288906333557344588591768103921133762342157066830356466260892930094025259244114403793358114225756197661816075561067131290446351206919438132656370197914103808411262549596811118535275398175130403266879379472227056730523274056234495072515179260723532672039208607685099217185586323386993221848961899953247136371249110085944432389727244384963543760255351589330560335347665254647963445546859122086960722203333543741675519132870503556446241681091681765298915251179610385858450829162320778673913797697963129150279934536140362570699499492655098385129482156421063230340310923153707357142272507878543031414944261689361413953340020985129598070797680343697393026495741936820741462752945476041401358430502419579103473066758338486291290424754763086903612007432327696678477897068183041906473944030425895262610374582488485859567431168205219282265513876525790028465415600597203293800130677088699526844558627860605983852310641219521778452699187896013543754258810173404878319714677551206169756660590018275686505854593413835733908263422069721727851952188424397744738792997695581086391922062935952542872502736418140605305873664857992293170345279377271927991110136835325609892069338103961670332758425409275244108076496989988747560327126789475857387749171468077693873151031577994346984197358429872287553408037301261069218713618753900182892068867037252537608140229611164680351855806099568108975906353414970165466508178440991788585986719192404014717707880660392161490379002531059315320121526419778898137266119084883917122386451292758092695031036873492809906076209064386764174595949376552318215658154752308722396273332721987535372057559450935474218561964477706709401170059122353231637919182495095987847456337901770444763624088073992578807133643682331147695485887243071604755306241450681815873839058573446089112892111553117867381266775673191465823669940556000369743371757954985829622064571902949496395168094357658111913837150720232833196610702186738856139122890246452418892216308929625887412228278975589824460368026163584768190770870686309461286473495340042989531346142632757423963009497195996634380404683240073708986302306583409706438302176558444735775087795763830759757054798232142538327245091054081944487762097042789906902821743185666762386434123231775663600916734179081288570893915592089465845590782906022176371682004198540160635146957900169464358837457436579921918919884970672229953057552169456939574714398748423726037289732766675173444347568358494134860220351694874742581496247099218676506908826925310664700784251354884046488127533691420231365497240474778844836579269306925011847468748218921971600215410421183658444275445893201527061425713819854875667123848022714701884041716837625931442459697292473184118902249389155047289504930668575290703451928034483233011828647812211448734789029022829336108221654269867979917334383042537825783858819621737057752688276556400382259974832026921450523392705732236300352819890865596990326008610335817969865850853767145924157085370994016084845651982014221729530121137448202112156400749261076419291192221721140010522932459777403953301483483513499405875493477468284894927704615413505228309939658909880144363028304188388514488554061393083538854151754084456646829453730379424543500314677921747001900809405425697257385652642496262909537974667640381413922397705876676678235928655537076256100779529347552236436249223471719441622206975664172740050081650219654849317233030465404464527733667469363715877804678894658448115924122932432115279609351872999253659081957397933681666254680208041183710787955067504062019989228693602623606548960518986225338668144053034545809177354370424081245284799139988293189970992524368380115812258016122936245167868036620864261461732838807102016395447039757702613098430352544346442417253720584176798791070479142716843058433341829182737743335643732630554727909807231049768414477403139538308655333185287710487871206636077993305143593363280203456977844051888523198064703695399922440754737820711493579630557811686885844187087745049483530201676089075817366417704276155705414950749191712257967849815801571794772666937021993461971621374974200804027378605467610117350535203264125263369696504111168636667217493909843320937870278087683428314406275464965461105537424769640738253560499681944455866791746858263934603964959948136423844979572287028265574354159417611921782698103095767706499375780676116435598543757671410272675818282437712623076530931264792885626955309946809329053512963005023813084358672211890494869820858019284974470153030047720296314117119831908750519290310420783038013683975622448981720557048705267314571431356794212448393860821684597389074904073136194714618183398263121835122275638701641018696318251848899622636442538352457557067853883929946532716908889379225507202171816909705734182346403606440634130707199808348537130326669607044008515542473930795622509222785079134786479754850417975345412305211640723884836237809301603688836460066033610750140047751085936899351329058836026250795855067416606644020756298269296189385816959647746883845013363012861679116313860809159965561405475908195464271162441351850475472691668236113397129134319700074117304140151054243897034835254407462470657082526101350436417658585876513421493784978790000671368919596344092399037784933962463934354238663960300000894111514097341922612512796719946333512641054880633598224213600449898047419419567233325569427063114042634543751552104835055057382269693444678553183757857575247618866575640317857403845723363038258707522030795548905839515542809543471665978819267655411197352879927120604301609968210570736945851715533819871912345058345559019781722057082200546536392217566685726976571854838045672136593842214553933365000662746141190033767753920644618126993755058082857947923213472953056385034596868017824207718220930391216611111774537864088921149886073340168787042010976429301148029103987378679775423819701506402974817601345028858886789685981971249451537151092855130251031202950874805854327225969461932310867303703177043338879131553825172866750759375881919642653100835548800567866082257024811857672003148780073626049511581646843647874677843315078014510128239567170379277075613679698273547490598639249160238037679185067505803554792852948197999209973982328285605312070525983448773710270588474840058406479071594121537238201439441436653984701011358605456562872305616965411470952158622579966267335463305073764678717087851839857890246781532508381515531938945070445264923139636077280982230888938882018150769442506223262729014648791176558709369047240892529756316359919988296195635541575870819379255051960458609025193869932202138121362577098428039541946588543276926829029790258648299837750309577458606344890702965830967248793095467562951626623603541413783086674553747849789158413720490559878192847468435766319263146809678517727886564353492026743172549149277287619989714184676641693382639986291395656735056836047564749635907161206531395302537687620930094955304172665104809252829301052540204865556818074467824256024885352898722952966898604753708929655910063111838613334738358421512833691941148449866236929196991050896358934155215669716583242856201809341389464460245416374617419260884205544249572758258255594976916345213473580072436936442208623895347243681030795106392503027999539442825474686392103077885143419852561512237643653136181576166990940312551620291396391864347052781632981178891799200545030262424862385707882959255927800858619776467451093173199464084717311092607136874688686638433388967044979291500387045461746580998268092671247964436032172448938562595201491216955363083932586530339078783609494871192746178498223671797726706006619831700449423020251364055439561038109640916159513718785441367437947703165361069766670377764016306630836275478405720924950046737429400494893309732134912822862805841917804214856704862372015512803103878094513192321370819662938293683968754089017380237898459412231092749994756303477858034699559204010555207016169261146718306521729908316956717454487204866327442778101383803994823488203865118647330891077502661894996486745363717366399553033750548564687191080739537809102069935483907951662105928149340527419397355286660599217839369539679830873131464933914237754148767201458641492545459418704780902286475744342610051619060219913329980416182136998432774132645795815698877892200454055716204975787171844767013517627823666249263501274135290786154751205652017479595079872292472315301149402082810520333104534798493242140368164602185480421435899996787499428017695472781614980003758793742334305987455610905829811475998358279407596227146644142167366999232737258324409014732974807103741182646034030060024716184219170700220957976796543441152794870114833616497535389559488294676799391102923645709022271912075267086760634220180165159933802739378688816170578986744909714372644000801310309820265700057759839704181913575720141475487050111287649933314008609957083611876828981545315276768164913964367619672752954279237309332152035796817617148168125488145626889867278919682340541163887196373237902525996545533505171859195756222339730929792343922271413062435184675802305897428618768519416983465844703247399915501240199347824486976775909405191872907154788978693509899131707892476378358884275076492293901152504590831420617214088941226172882831696635561646075373778883361790339028245542067622629430841144521272656396430875687474552417323452692881578311302077200461136588271139785545635660696996314351245555274027508682709591533452866287951672859510988696439705266863251009079014366670073732877933499317866915906762233235270202314706555930040366412093395252624241694792711000868416531019193121206229323646946930101788505486949896437062140213585534200239437111040080796249075580349639769148598158647294568845865857607979804539986198963925708550738758382188518806555219199854776323500687043666586673478654922268234953420159976719194271167994257335310985978312811959017667159161770032072676261447566112527239223428700676975780452292752129556115613966277680981580067422630433661261602590901256752658347682605659684451006754449463335917173443802752723034550053310413431611330002600104450901112543278337818111421104085116409545778701310222768792321208365792079605420642145251263459071380208983653906359843965435063673823270605068689432254740703346032433144613332113978945776662954384568361273015900158994092700996437860549931784303991567871979756498912955375974243561692322152458729786487233062688829579660121224196328947415131101470628530189136935837511201117270461548918299462894425422297124616721797974712480434617898124912638055068524902041311281055224580033801617275219787478430939766454033607631592537977458321422681143174740996337029423824630088222540163519530377597625268620713540564066904699483077115233090509134354966671293914910493016907590752375702754545157680807069751347629070961781422683989047782513440958167749885663040726117296303578901133796724938606348770841987156480867644923425328821212473540546154346642991361502752654590905253927159388869781909956765133487957910781784637489907162560673437734766564876327714346955737439085365077551741202864624661665234702717732382545803951820858770173466890673308002857437629342976128798540875979251749841038598661154783791144341036385370843061592383506206874921625997766460911354513732420573693766609126946889984135031000352102668369093809452820821907769701210625143264150582743164327922833769870500070604842678746578613222667506216523318992210493586495926970376730373268344935905915168786086201102878329235046448386595724730695335812025284581575685169372147956233677097089063686632416830852702622136077652837590974421861519426726731725906559161652721108474886472221123006211401281113311517977650285417704944466621618958338891744561842957787246205129819572769086482374861459711266674351093991575696801708555476917826633609418466528240510389548176413491829938526272686781773597911836761923816983489921343693203965900701888797558875565893574946580276813182881046213298410347826147378530566177718088216497303808324848072138117218008174343581405883128255936482260013165636280887363605257769939127893049741246027650823308370144017240131474024963246860393735767006931681066058615212993761495190825457411479553231731143510105017221323283406048830136097702385747527524963243507589937908736291233196875008487147140932792593094350440856225881696805079238574782051131368563181161150728900934089331169664154061934644550210523593370391409976811747839921546976699773000499772691994336264607093892474480100686790055368189088903297767546476452782896875786355325346831071764687690409902405715418291926748304403998179950663545275135635681606511828483381630273413971476516001888779177604604320887905523015388170718554183224532283612328281155884680404738782141122894826930969186965960964752179884273370454107034911559468965303974862857500438496540415730050073892517211257396529605264680547371467404152282138215378520570341996971704524632277999328559589793366486397611461845502745773116474648185088305209141249533670724846289205467390473969316270834171579559149786753268796104334086774649555323332389910411254835757894895453329225893060197763641254088159355014671510341531934765522945050831453744710778280276952317692498226389110485754734747693090755986716355883149350330094355733325033597077585178853448822179444692478459668397899300376148469811166718539956157145089443082196673627292386291866195411984887532337972971463784099286345081912955904469635974732191702536468149772933601812384735665813138456503244124319220338871293874365799827110906942663411534977820598672248392069093486037232367884074612636149673356913894694452113047721869554917095510871365211985562007781092179798905578250732879870045970243328647644825260622582233088056848067352344486756770202509717132572009141994064904575443072671205609242144217833828966810171551801452685383583013436284741993949885142508455094854223691355608956813416181427324336640468443836785646685050307940394445750400897710987320494864198643875672526742440922774056075872456439200402421776837154003176403820242969578956826171645923885887165530468330948819442864667421994300814704161759567172245581336216859710817439896537130639722658899153151554358436872028313753110022466130301801392287383677026688096501147519177538559354040194334878770750280185373334646546532512641115554566143981470007849915613334607196216320821861217302571161073591241897165916548677522500891418079579709281595944760512573549654380969478472888695605004559769485825622897433256765513987434348484641758416597368996141262997767082541018627544121871628599216738353363363028670586608277322162507010137546374343811049137347859060859209714846988962072527903616994598355909004345841718511525397100459788951165183730393129951840795490588020242840866491179004738488181523406755800187213410819810854905417453038494235927853846943085878707331456687415516899586000929178573877542719789385016210393054311666568104993221606847333625287532382145962926353651308827612503019046068231507003368652162755150195314858292300861054166725570337744276106936261525527920080640182091235759630033296718015488234477224448151104237317462553252598225215151374563565114515056185560329141979510914610959840644427470388146277775006851423958909175096793309277652872703331329439596156773780091917459056102654889634964035050629468883269208172314930755082855599867666784372591355259451425974723800982367527984706577071284226946713077753933370834473450537367984246311948853805292703228600538391413369901887079230008313063530293617685966861690095410615191206439938431436417264520379466205721683883517471718187641789113455455470540743614456380033158708068958537973770142961791507291325092313476855373889860570483054639934392197371006706782955787098753367455216121625799025875728160292392234950344723284097517730699121026665039838210547220809917726325811791891301929709260365345859521086915080233984258247244244400029068090635811045390343083507754030227116927250116119041054665055897674105301741858274750393641127942385594510139941032969422292965505703050015803420090584523270645002472467617242276347213825207408535774701067528677811287641362039506471668465946014525752454902778150155306734064647746379542808880273262047189971141192415319637118208251594143176186055494714066605580156445999265024462201178467202652368227766982051388109764601584421077584076471137434456166216669892448646564703497902803081948558097674484575322636896592761133203364776307567836513818336480329368703935538851827195165689219962679149543758956592771187085853269054962791142056883932347502334670325338023263234696683378440234892712652121606227277145151819294623664051093279864754038087833037369847802234328115882194165267499625876068569342689362186760716289931010236164031326003078582651870356664490473030060932703765079581161564171334148326520805463592334087948963311442626172169133356303223593063924074277203444080371377406559619180412914833876657781256312757360331139067397320792083496563219012638559040001935367679950390903631276757176619539993963591939323770992512117547776496095950153574517989967554324316033137466764115415640709120620643707506929263937479278103129390914910997874758904190796069056120746588897213899177608013672784935309077779805884070220617116206281431499850547839093825069475631324389744801124022140773174357876914079051228169252175471650168282300598555632009274042573314121916682882115408402852693692002953442773128983190707997923835491691435727244419794238106435922754174441287243214947441120284561114279046340997027905039728895195180694877653100082251743053834381012428455130351623790337336503986577449683814574861852121537486600062469104121037767227685159608836621019101211969223959685584320391230796608513401998487015196205033404131253535229136798534111718915221073153582388254079799428937729670973864493193271200813662796984962413808000622418006316395186180735757792835939241491438491709465466975027323835796380080050349026909611578702902662055009917682049646520900788065696718978675476871215231075895147526789222077532787830189363745811923678602304304327684716169954208938985584490041626844544541405269946662072770187152717305568327468519634380094970244168235501868957947094117246172198248331114656312649169027857268728842987268242461815353137031623946547213131387359507695604557107424897201878867634291774568940442996777131467157451821836566677971449377710864021202138164353160335980376846220041070513901154632244434977178119965629664468438302167109162327927835699026934633100135792950096115912508174237981323606340310406678880534452491965344544774432971960099201641303064120448737979872759194165919637180335557894049126363808092340870829011825220871103093613400622174371416289973918356853013037985398303467429881902019327480788836181028400494267712025779401941174908852642446942519008612520945710686401179999396816483385454657475949544617812771582029259895764694432099295494190722465701222017575536686199745726573776976108282073367190645715671431891665365347514017062257967159879581846375092102625261115478237889014888210440419321554227275651570795678916122155458403879064234802386296922155885120606899433020261255735925055050403684723337386563719593789908376921867056716542348249593024712993941957088231008165910345157259144810694463909450921090230162267520618820509969133299863788371232263629393641191638709507029894246374282282176067811551504833815015136487405047243437380414098618391578685468867355147754962677062816858803169446801365725113456302824009716203313104496951907948548332351298687159121834080780890600758138667769573470770795276530358535021643402208271175968451143708536956243583188339036827492777487016348233805507318532075685561723847836680721107759894447226645094060655682183081489314144019509078810933898651565204213991189139851990401612088284586862201432239819049218099915168774327179489883201280479763829553315740486555224903487118286899117906198391254504576249766280684178787957878825351090240549954279411018261832724198045508282314961345463867183794445674082401203936453588943716027098508950273093084718823123210808727903508648240584390405103825385247248341867826997019132654291374562592727762065493470899224975819735637857884413149638264671016092017029682394479138959261081206359829746093520669550535788197145103503812365483699211347292479898833729236942925050400912768552666812286550634713247225107280766280476606140976818001014853914649628335534108879799157135094040290051504251632244095738523865836964810964483181382706699559892025472213629969603319991893961939118616010856335786865550566001985083537114052634806143911916269450084895284554116061025572794510442535100310411408301165258642708400435292811525668741345123674226564968396201634525638446267776687961575241353440060562993659730835394686573441471135181181808120474561205392595465589207055847126252908466705129654385403510499639639093188537186650449095756949358439293430124114872907048380878247514601111565101005995147988838283280276483960188680902666382295940428545803591145060253316815854616847852403497004604133421322522915007330875281893595668363255527520557484689770166152168546373467962769051407107193845045861730432623796189014057441430380058055956046214961906794110972674569346743072939697880363903969353013096690705866070300569065377003898258575780662696538867721437710067924508313063084709490433081349901304066727167337623039991804102148862229907101348699022643237933013922769530662768147228371954934798818604442506341676804206272816262906862780139414314836329381559240566845221894845904348586698766084294055318293416772912544778892534975838270162879190108947891641607222015010459217491955966732986596383284107181222717837995730923923640059199302002702877263018133230624730729681194959009811185547113598624158417416560969964374798031610115138358079216956882931275368753546350471071698740785023133322955293472531382673406784764782822673383380147400671777045519106870279046657264059035103744537138309237111123616001659843511526149915717473648580936473850366694890345564091035326033304599379454980020747559287996168387091921604127143174408055494833342794354856552567771231308343332827845032423518666730790670997838116215976365550239587997025020258905928870030588384824060637906309673554135601539043565771427800620809562149029878510631600001143539183186268342479006825617453979638729451412075796894511081242782610296742680899825301145631635688618965826115892930525040198820464230330557836638276334476990456355193894823791327044125019320268508045328278780999245781978950734671031524359505793663759571913634572786196264103757707455785734086160855287094361055377909109125176453663729109993595939324681056776585264711989005869708862882967730512810373065009884366264224037942896908522534813340220173146831089081014734744564694033005029853165963674940910503397008780100084609253992083111790960306105413682238765892162624375922762031537611915088087846032257583514026631438428205215469307982879502198432392808385083715035619134160032801368220804051903435613858011715078906096930956690348895367658277650795893672028239648663702299316223619581878690817583784693211528146514580038035750891496511367574386961605083553508954900293056021243117474171888934389400938154251251815855236315321782267988092193666309464500327667813843353383321223033316506948895364319968803252643234718013390322160850743516230373894047839217664101298566074263243538299175977593154255021048254925762500814656086624302672014871560703054394239395350594447947596653598005909852171088412237662824006016598821044398209805851960691272191227819113110538777731923698435904934363131368294113240657506579894220407569634413678367184717597859406987975917022917629741473990882694162308911063590099814054157203086029233759200487782767958195248183634073011023987541396959094004606795217582687892874397754261978789857168948791046618008002043824186028280915774414397863574708344545119200531873536411529988370209116901084778188596601952113362488118558916606039792625118756493900261098253254854068070542337556555110898931864572823961879474872826109491535310458380091832380605390493226655260335079524939877068326938293947953616322662969973820519141551436342924903046913042814004150517700374921248612595356760112381579078648491370811666657219373027591800043291643538029404448799152219145116873561548633949884145956235884980302392726665523541131212633913249090404133621798942301758413196434800207259418170134702636811112879780955432729409179406886923112765238570245690799832310768582382820210659787298798806112154361266265229383980463410402016788684448785214946094761579863424844993057633985133751680562744765724882799259008154778856359625914089791134848980261041989941496127786815706299602393907942471451214305924257239705584392897613908104682697608425933625014453489988261554394195535126583999505174689107835890652013956515466565589468335725261677355616151325033520733208676417969936043934152927500409634188202240325595303694186370111306482185171700834075554470652492669107742232297330077909140211176584975435649654017014168962161639058803951565201352277443486879381430441300424940103861225346425532632275552190942321581537364206640389444674636865593282738940290570644846787070456023725573396757320276988281344105554092829486034982087996633072673493754479843742744675016166154023170784748989870375389681187061572780617015465149199452735418112515609705486156009799303851169853756276087568407799265899052650496378013013966320189621160766720853956738511131413397948923245601650424358323385707535193107380986754181120431395607872199348624385412417420430543897646534535549984358188993393493701457216226565652485710600545921430902906416590399695532892506113251065865363943105807718097580813119656357369303180785661429752994688539899162968613321893554577826578892925460434938627256528677723301875887148895336410787029914205498486149810614630556962334467558392586034485147080672532846466704146517962678289955887718762587877510822290598666665910085521559577588777512730564701405827958480432279070628796933178403523114250948710506444004680200275261193129836796931934093441752623336119246314374319901372437381902811658521027666517726165391886002795634281401804313852243645630879951936578691694181534320719827833638071356532357195315259078271595249459900590768597615139781761449588509579846037298667673702388500925704598553435252177187110665694550364224238260417964305833025902206719273550284408547318669469877899002297454214159175101311953038270687831625198036248436909542292081000824907447682694484613483760278245803054791245169134241273574245481956140697791645737578392448605945403027912631494842727701700198172326798026197439132241161775182419017188291660992803089829096156181935664052125994227389971740289126912995659112217234406690029752516703855373878559114086705788253734893667965669070929904415221066996043465420089350622841893475287976963523354017661897825523869257648359447004726911520807139431867504537461434294527065226018651987409885488882573647050425730787073734632730144574310031879972172897058988755378559821699819477881517480648733340534199397280599595318169628168219753539194650348869464771095190846568010907064647328018182140265002062745773999510343421664133239311828910802771691879378547739239236831693244756782038136513369913577186473264042936230261634599354140744325248182650020312128467656010789856749667038248730512280541475134403590840127867248015377239909826452794730446843922749719761041784915292154418588377937075351668306005025002467441667260633349241691218186477923045804967610975206325436217407541986385405621103907229110530157760379192322083174299244221915873286083307318080495906177857983659170765501620992759122578714540608515177689868488170644762718208635302013773584925650296240117628159210845454287931083558926631955084169535452380090541297323509322004097854005485873270459759473433013168919646545790354210357290636133822441069811753261915801697865489043279725267773905115022706406192382178317332397067299530191363665310994298614339897318917334591714446962433172693360028356568358488737588257396536979154789142512728923529355757438829550651733080014437639859215949587917041577129842691856576358247583376791508301740117851208641484830876532290969675061481008909424117331242737344692614565910750059735934428529045805286097091380986420930129445971693795752168467853187432432200896672692668030476728839282093912640057206466466475058206529815161088550583519918651694564044946831097544140694049075049120775405444798638021313518454107472274489531673037918943443939523827186540717178319984331932838989195947998596434234440967577017081231946070337887140522261864077975066424019548208255233028890116712548242913639571141453915099198498050113916477644708163949824986539267983614452455698421670520097846585309432100850916150258618455012881589749755358250064024432892907773201472741479185103477021358904582161361331362983898984728154761383678227171113018603087799331214271996722700987524399022583048386025025258257970528557729923351012240187008376684258379632550278376227128361927987527887014259295777769327844143519617921176863591576760499213815709156611912999264850836226933122704148732665655581966636810100516040477094222993307413765244736094076543708451051935423273894367424242059309155846681721890984777632672932567962268569453064667107839621027413468551776140085353757817217730927098725682180153950071930274029483956450668306356649154187080812763559574987926037683903291853587910647194661094674782005232746210927641901341651265359350893688368253440262650034352968272089732396196304336318644443453979546221418518866303523166002377894986912726906560362406363573283194908685099951758485660385696190673540656265481946907951027209054780809934569870578611867020932315552314388925843286796321667486213754404634543761081419354807244435795010653617323277688542058422633706190520627376356984864127613678017719447317865478390560410381737006229061144329393724315181445189943963706309070895176047480820951918679215227844536380023801574904448272014569417777402938719187602975639081686727725812995177254875163466187414156890796738818090717759416943388717060559426736761860249103039741742410936707761983999689700971731354456305537111680612838476763361879772830345853183654811127312278689981454331392402021221309835988320031441151348750523338998643962583726892433568568529559680148077861853148479478749304080077885612436167101710586009942667540876803173506151729601077631871180910717269998876244769938251333687996357258764251631812238729146881008548310059466498809794237519442687796639094293109235656559327941496292829359235995348710978986478544528364307198762852870911232326671019923842833220650411612706160603843905665549936945057320964009921449426780363947222085331439438500928409111142403820200905989547133041162118056971674458140119035261870157383005631457408457015195654535926764528484750351140173861708615389169457656834618514687213417848244587395296296325717584611284978152680104746588828120933312902988252261881833278986430061188293738866883219649027181553649285504068055177955243468496311374063173446124477646814359068836948549234482456799574763470837625011057143457680865239890150702777023894423555088326090241051497778470264418109167106397240358014949560171494096139033901535450916819976905261275411260166235822065455485516288995569284070945513027692775739033518485965661460827735929865741900007068348348149762487326506543157361939857467836294581547727889922883082702541429160805168602604989407193313160214248612466819599702471545081142309953293898908294087207171743580896004724897073084143249240993406808468152501394707707381289200189088651611628196507374337474557554651051084706103567201222873545876034719166428573638481323711077113353905326946408251191727940325576512402829592941462521933707829655262569398883639575019638733776587218949931197513331420878019985768124710909917933687569606768944437223303616779029686634413984065841935460823673676961480536451234675187093100444260292585852422678515012568988557235750476804983826883742962591832808516630521590809754085667208761376769970830670699041239669226552645751754174422984498448294565322536056406108866034430612358592465244862191473795070692237891296544183587417426176279699776568281913938347708355615675074086157852826820439614383877664525109154717557662206890508496402142448900373750848345921043479913795044790189281564026236596802929043987163740389378929824158799089868665919230143223231141867074452979988996951103285320357324512227270062802018629301960092539381226236771802080663606136276502936569226829317729838384541525804577199822712240839205496871245323507647815847909581732244568990636079386144648325960982868641323749510518373327567706892325125786069744555012164621708761984530704141759789085814887836997396875306172250881878127370547135058150907302125243659540727480456930487576752033412345387507527891710929001397687164703941867172976485800961616558071093604044933594208012220264002463064910941554647495786831344423813206533051876446597282879648297605052828857450915502452381489692189839932801530404512449419329646321221871926265376173641118857804704142782763513698083194233975601296062533094011660586132031113324559129408518005911154723691510816069627252906039776491968756347214883311954640412951647185931111098460242745765269382917857036200387647087470391295101696221700782907827810622433959782566451408263512969578790117530693845671182157477516279634915219073965915305724174947599980801718672118771347463065463245585934996817660154829704856409208091195524048818964405090444960710630617926114957331565288825649965457533100747298327475310095062174876004777199758066142970549098640121817357666635413785362475911425131193494789435073038291511294239654045036250272304983880908596829553966551649277003877503707510710882536159132391411999589614634631885816826669856292956694804074634728080054846766570127873154050513136346600155984170231256381743653671651182718710958780542139982878837823122594041890285122465316709603184493784421719226938490990099127175777531525558416814409791534481998683073167954907793387469899322079505398316711192598768307378453820011695851126655933253760189920335047126551424841234384142252586414482016202656749034340049866835935032230069327434630885188207657732903539192322232509283972360864017169473415564718948402772384773059783988229851391558691304462309522561477625461995304020241037892501719757013953124092750724130578935984869186641241617422273546348446172018837176531286646654705128258961477298293036447738008066268560894475377500462140988469634107862742263715423699334643941058163890019778822831719992174629808056710496974005180840035008818210737632816976690985644385810602819113807043411838213288524983795520328723498338172685261162945481795413539670475741257709959159612794714469622302933672556498245607513752797595366758656069780828070086712768272680398204755413222632138531499310109506721155901874997510472001961612731985079274944534400460569264523220385823607883395990108951176474738668380682427335565066523802126866168035934885842320775289821438566954042688398198007160973666476545742182185988453359481464997436629069363766778110231630719367313175285248637507795760640426097595856724953855749368749148303424805512595935981536574880924036235060628611006409241435067182599271463409885903569954884805098469225594748521041864381818984213225024468527928851587963042724672697275638775235236902268796087399724733917624864570541375522825837530758223615838642558377661821254226376150119217158077519665046731776765724163094690954222924990768060321432377780925209700425244228356098917771342558017306738055306048280159671475679040171139384912150167692934015808461479457311820881647864113910406350597682452260230977634231899792570534242943571496518636979126315765194280860768840723178935435650865775820283828498241560119934948369172000101667185780111747996805964001334176773151787252182598584076090762119345210774103814299773945400290370157921409410762861159424197046736324642137554874560509134345692381129524789967938558905647521243322423459369050625477941947981012265849876901924357599196184755360138449377108872747965911944837060090467613542474788692553389764637927349169039364897009544141316667874756679075382970540912453833200094266272745272890293334393111727459631651246656458570731127094177314535124178821758948504599150652015272138758588684841315390373879717181158269425532356578342166962248354348875807489514646338361687393821059724796721174428557901224868481436536810580928518326849938448595237273835172418462013491982534414621323368828995571116636425138008344768016105531332777904174537998125400382177075555232855851672500010645991121251249929174508881069630339795859258333747901707005300885701460038276532848657881583773804478985659042978385783562236790619755695915061777498121209703944556208037393795234215993861131355352437985638151911000485230009801104226971851849834336020306410121546635500974154008339339174300506572791177124116739889725711014119650096532216813777737627007448148159520243586697057318623127136287807241054044740440977814694837938539142910979227380810106540880533365820285446868650618759360721303362599177135170151823674108464236251177787745331194215018631061194260928880832509514977418727083238445227092670687303348460490044160229195350323518511147762958193184707055517639913178084129870134698566458038115528178195942900448608410871075572831977590598324571636091290051725962646941706681701406883187257973996729598406388237639134083201665801922605972426223587975383039379160270230602696784571118916721945589029159996589673992305930892605004238413900624417344165852801323349120557757590863912460875664044846828075622619290410785362708688545885382905253343866190216535478692560734234033901916733303895514308770564800861022820077931152194827446855987738854019042696450646128536110381665333085959844337603277241010556456542247788171945162074606991613424574457550817954128960105412854569898370647058705074233177522023188480981036731550610660728789756152080465317757874627760526788859403532043999278943759413922219696326524715891448007877430184866459045851582420710433407319213092096165785742567891050913431824411704613640451863430803954448421964626663405923971682150074932443794959595323842690995084555578637522672492779058196239100301759248464192646061663758901735640821341581888786120425458248136222140535658894249653238801795635990400991218942898457546706328342278360426201092624010282423934812910281464936830033612010276522774310484566066430304878122449562251720845441208645761550773425243321355982197439974555090932296009660313670986194366861093287098337979119657996067024717440838594968838951844793419338123441168433979196567053994169638336689090374440744789537945392165790861747938921723476378239865630799404192065836980891414360576369200485440842957905506335656180170092531649450022694539104836608007031220311897228508039728601885714506871615606608749897014708059653242275255653031677583545603236106570568696239859782899726920562156898748630118360581559767910512491828516022032697036817018022257038742803436764148174711325637784479157996582297309053723313879701866425822152017475734304656777570283293195788146863361861650178022278208522969678150183034347210412787214637949023883471572409280156020876274455187131479387913549970535524207193223995383916399922847959641807358948611873627166731631023383159210661251320315159088995015879097237723631051031980722487214703658665241279846302197137868535306434529080621062256644567350642795199265967242846943849838589572619232706012673533224006645353014587503604657700988842537716432632341627156977749670441568355092409897744102293163080876364378817876608199776536945336383468589540938739247302833682013706082260768322022378864610668667285684228609997642697180083074171515077193956579591473745886163237934676618178353171117105459011124864842282621191314329518893443165425047792957594584604128081442730359539469434249728695099057192469245745642408357103665891120776621255394452061477902031975633225099688758060728918385823393534547340226752278243260763543737608718910854108183385231853100392838640090039573320067321755567437628380382041532290893691854057336713383331164103260167462913807468796988319793520972907470008688495123021257445124551905448836307277129005460145901627883698673157808331609200573017024003987385470669192143708309072024794267989742290253697968623960069045476837280681091851516969713266789064663452862431724982419987118847174582424882082805123759228811463380076881943107830803669642464279306391806432773400171164714191930620951823504250730397034962955768436220113130786682928203840123129418318062859557987439411904732644771349711827351995235869984891716072547051420023952749059798699364569435106141214054607515096607972883915132869836938083626918501982304271145674249334587834948265752587590570861258432485633573730353296632925474254411082301125960428452232877254781680722643960157306680221085855690575222548248382110140853200653135300784892518459213300944040379066567591443355168692348386126832627824213598388793490086245262994620282053385433251644210077161988003373849396297182639281698117518155950690857569894842626732964841107489035537428710665677291973988284424705233032580004811153260008065623076968420502182852970505901166679178968831748951794019636655631246802204661971181906626055380271576000408394028079247431996104451598366905933326130451853335617441601492232756289230046572103083006602143388024630719882226565431770973417169636601820132954992322628166850160009735239151920397474491106408916021285049591258241075864906783008761777743465841395850526995401348307420942105470670775293202962258018386205036399026316259149516517357407850451746419841738265001497903894532264704265808447886113140255518364357579268996266674169500357891673451189179764934681123450082570642649969743725502331550312015693696402230410975043287555753645840213911274270887073554994036808429211275196212411220946563255875803140905856547672692782711631731455367359982626459933775530801778293056698974498746534294591273269141677765655035271842807709496058743441819088997000459539858156893161440202346082331601030768169682210873757126479618831112330441932084712112377506216493224304886562865530529952880992654009410813630752709591905281374496887085964966996936985529094742589986720044705339679704370670930627647095276901989907633526644817633515349738649536843203920228169509123465364040638556470501792235016961271284831416320686363777935273172310542667473861623485090764690748902524840995670639911774677916646326224155483079045839564010815327065807284304481199160737650956781808623417979965923247436106022718043870601517779298507010786764354253906457178767274617419793339520268228578355555669786923825412728707114462806699735608142649531258532681965139154708715309089818740914029485802133139489361468408197921152404076847846506620992084979460371593016569886773067518430441101655516198936205245368565898154132093025226692597230965791696173874825298421380959840161491307565629922800488164186556145139859637302335361352486062062888960791733965487704915889444427252220048417509256584050409899347718302108023512575998116571276513850148815265669094292639752850212136482005635522243627687999065152315501949584100721733428052770206258064431869136119286543191679942235259844189127371507110770574324117932543610987193294079223404955048421217339845008970981610071019958768456898491705437030320433235452423438049860142574304912514083888855094640703596570832101834942739703277539029800879262866888375807434433176968049242184841923414261983246706788820958791256840959205059257022406178192453885444937853641524812901713647704775048315968633442157525373525740758023198399002443173145568714536501910657315537583235923757112516238983900417273965653763011291771176841755033485848057252994134562402300081574540392387280888507620580520538341153623106976134923652811719312011461047856187869178153098206724753526603177812640233121479905800479128743999010804283707979308954545581276248570193020809477757013387451810816311064222519146625538377466205000391055141231095697150889908132803991926843379129068984910469036174233783252874718409742606183479376251291816568387771406149079928999872334600372081235244715166395538016292627539334998032259373412555934219205810709760708726733653194424023222206911734501347942063506323859203192300115798463350751178118352296660964457860277975474230785831110564744600476890836813327282330777793816935357446917008118460301609632971213603115074644997379256137034025418799591805519781890461219779679614630845778233815638515885773235067994550014191807134610788323327769645415239887689144491767793997879450599225592733227470044374852281235751911056817528674935991404181243811818078777688284486117681154005569402036757837443736143029531216853361073713350546808763316805542659631073664704559561551914061572419087062744751264059719153502063424134086089770360284509135466916152579599545547792252547281208093212216520720630291950114121993780695516696693430735660045239548712314540182054103184282189399648389824475135307445785044247672281627449190758363481429913606588075483881553704289458974575438011503789451222314970309213361216611590582668198699994674894462053045503247916048835927467559699455928099556710621526054476185522888253734993963110649913005011506474297872534320959190624126024441786071988544547623625477619803667574616981953984242378569461986671419663370400777408474100572473413465127125306147923900564721832834816582410746163947442333149190960324255875142955168138672147265340999455983018738162740794670145769113713907522350831862235402888703578686294432673431690593135571057320504710248336276726994790331358020662693043489467421690877618568322852360040360779980220032182003032995395553281944215636513777605891154523811001943831017105743094034885437831964836426055492611898845668429035818199613813953857135418391977350337283829906743727429366283142107287940120718083495760993298437347939108925812686960431838752691966502451486913217507212479081181606784715354573146985493473341194166435317303906408338625207788535463740945845567866464598438239395652230278101892848946397142216842085144651763233893909193976078139039605530683690214621783699157779001483607547183286852111610474993541487077195469648510685973944875766965526615617975662721330719089613153755520826303713396156165869905291420832601475702511240102696093622631553828366878412568312636041662710912306075362647380595387424690551716146532259321121905759374407887207279696034616345817210043165589296100322975115247784609275550714483750504157466839060745141052462467840148494127352330032671041928496937467930846839952506847394040862810391727957511932569597368722005924366102430944821338621619247315006441102941791908112876645660641192165935516807672090563291939965067233554614407546919811852236625334002262341730095836204083497959349806309477761071354677334223999738445906828702747517825294215083991874124682286208301354232371043198059148572366360952975070817628508321596986960272718313577582757509937725479435650922867677630513832320584617379957773552981137999889038839535730427219412841089660344698072269234515518265261913229464575235223881365147509899352844808982029070461048683165468228594504451049795286487241504047879363248664668676271539124540803581991623688605961793299718887557327330370121503408600020774944337511754598172444111433801680913154514085461859945828262275837479706578820301351466734838065569590916439104621583422795640490842240125438766505341587961042272717531266412711817148182120833612705126454815693387015733667306221300085715380482372967547281420494294485960975806286137049773358203481052535619067340812879788087727506469065795922990236546719380903891219909860331291144097465538028994353092728742385849742595220861972591961684466395461438192243939416271458133103189305257838793786815979995934145720104574906423315482474545363369036709984590029712670519093455206850091167736138493700120890515418452953560383228421263400313930633385129133514884217115536419715891469640998136321890839029336618696958780959646966410468750414592879036850178399480426822593373324447811285400420176668678021568895293633897563752417915483144210048538553914464781752157900162126175215526306379953045584425133971372045170792718873360882844651949107950646607602469302034916293200889853989372470150869239894861011647496889788169574512592480515733474433129768847177541661331173078410167881649568266714581800640497604226453459644506905406187403837603099569843725558017069735487048092136421324068242744830778798870263066164253476657942691091221727628225226017349345293574604711737072763894173389256615891876602298978901331220089239189385434351852069025380877421864127791684325884366742155635247521330118528318422683418613600811592265256195443733852980764235471185581159488678196498854238555500414476888031347548671479960824002542969927726234971254257246780274658719533681889681890827616140028770873304997930555944623525176136309122902788065798297145588841411491588736422167308020230898551969946421361764140980697606633219834759372935851063919713627101713260522669037352506554678758473123733853629948644613064349500407987689939545855793553414414571238913182594253701550199086177201138690753229985166837740329387865304661070206188420128387848463990300558332295614899659007714797854231531283592597650438021328329467772284467627596234918197584839827656540859709815818025878307090051147144567252807557917752417881890998302980099755142363023848974653230679734207400340977035049796220565834623701038960473389131347335679607600313286712789921424436563389820294508283391089717262206742791059784425431279110337748190841455000260992107584507818649548184283526375527863195000272930330059850246477412485862720688975087771667260313885828831495455404547949715166915456009120615481658106558965725619999641312437426522524435909048909008073213703186276581777839694874988548062011591952395956807989217111807451035921134354064030868336461920062295217927354530726344006815384939355709999458224559626665139769979761854772998504890914994165464156344569472631216424627917950178364665177558244357184238890325766703527541772431701083667106669556302791740509036477162884632203305135840820751616356481814044927416354943702836934557565770176002554688166030497120277518563068333003884835908601384400323644284355883968155074992655006740929303765404460606907006629630570585552193938009067347465785065028110870759517456674480502653165164120085144216291626790997783013183155356281134680376773734406876885202098663818827406877501666764512670663406466340051575647999584650974891065372950949207264862501791284138766882092612688969977941988110444307374256645549800644624149441312720589162736564560293854088930400515903630547175651603373671505337929437213193496541574294444254860276406513716807477212797167022621164503089421299903832183213872502208097410622454664162867743924340486090912424699314191233474966942807285697190542281877762769126807543570973525073905209534080656710282638504022362376955003768144529419316200161283437293294721817132446054499007490151098069700219200357814469236791042818815932559352765434944222625826967094864856311566703437009539432763389368899531159259106734115202214936168766426136175668257347362367164027138356407048876813461138259524872571010059648474294845220961221536916427397729547369669891611838010710676806915491460459631720201022074640379491449770644511495964257182603551975198638938111636476490612865085683966352847635979422326064024393798147391475440139947641006595921377986663525103347386252464767997624815988852935446302358900907445829318505134907740482828603942704321797507666597888161509557893660664638946498320229850631968538477287829850836731823176260104907604711517344890666983684400972408605606934098514107187166648105674238659747370152566453945701745879355902392845120263389843055993357678750996550271330653465641172782124875796443643065303437418877880258953590613551731980897682909736349235578340817434682839057362048973842944891432366707112482224166017141712906229359754261319650880601693454853900536919603281166596953686254353166097684569490703344500900463180495793243245849608243202469277967173339010371977215386958455143927866317923206421094156515749826309524001152656235686640121690067630958803558141519470022569491717372657326304552217404127633059005470108383446393426762818772527686729926100221546494788385276100388129588366265659464215478256360904706378614390808922645889267160652524512442939675217883616056528706107691806720300001985316104483074671696292863196322039418394746145248410830451022295674646032322133695188552227150299297150032553106056973007532218673816762941422391862859229033111807457218973767589869355534650128647448787690522253057014303934366642202565187618709388644364231871734222343039227859665038984246414012249771950430136235961002592331006805522609567510546501938562008267842388551724619959876169373706560529104602005086157447120023381532435520585080070742067856693845200349750649181257780555573681347137179789898129154698649989540457580955236880445728921339990651147310067766102324024484749604047969405303323228060674223776390328619690564816593510404838038699303138599036070275386863892307762296059445093545588551419057971610018654353661835226697311432976596778684898836112042188532808595038274743901587850453567719779736424422920906844716024872460259315052930842560621274817600558362335664212879123250749396575132299457120204366512971713186625328800829395770620614446806907344376633014185394924502521252708454364860222833777245955908478813783407579051985658241919890282584846878640811808164160422790612055724009675636642227900752833794777721512576256140851863584412026160675045840660725519609613892697681774339150605629626243827160799385193718354485480366781521004107311554673577577386067170550964515418420970074107711055754868897938546658929195563323197353048735370499384207956720742622986965300128786942406679085431744429325454948382982119578999197511217710782411460771527329587101856491026861383235919018831043079053169119204373360903519494835078275355838069611500576098913228500267963386506845933818556106932060570115944658413088937422575826871721529397749227026284396780266935030039566257522669861556375209442650730492698679264316473422106531941990957361945643458845114853296928613512483614502685227427702537496831745147383053710337095252908787153573532906093183426409342236787383554570170477417660842983778064976790489325198049033660723302276125684192231284885344429266663171759934928954852675390706247820267538802954647764079796190271246490161447479201217611114736440367638675871349801570820065767449340345346123879408854943934967598085448078783082829911713400295963995973895133707139901213528374779790971649459772044603519672292355646265721044808416223919424108962561163409304498807716726265506990589144150739413026980382657797274587447450469601237837477862418344071865053800433550959014801511317478459970699115651965217832249959033239959904851877066325848993867738402168362303383566274899804604288326265261836646998817692930841599833737922428991322050322260430205279585047036233093745194543443293783900525134555107603019447771306751802795735372466040592311288950040956793714290412412475339826221938270290776490539971735394299984260920940456099822879096632714345214990187108909712417191338735631874827674817789675330511251730975878892115938638543306947300761622990417072351560397553625078398255184068432681387567494862581209337022345596650678305032451075250476343398747271464726228327493316816925879493402851118722795310324325875698865288300191992492855909861799395657810208396411374124241716104923179989979345335308904101609663725999480499890566935009314311029808049971943541612304847807888995258891176366284347528429596802877513220865261050607384800447804301559866376919001209685726205457181196211698961809200992898933547578209646571001523928747883979528224675613569987704535291240200834404732244694114576854955410124915043737285802292157317811743360094966564918035183176896286756930068296498689104929290660665833034272433186494580224622553395069952379905412882489141409669091296253945395911602310635335938915940286395350026479033896905367722734947448372026341811765317016648871595347159929856678284356991449521930469812167905839054324859092898351307115272052765189301863667717425638557513505728091042238720229992260589386000035868152006615597393400003581376233864597732644733588915504805128738484282721419237859973674302777968019704783178635938473903441696490934844195177398516389161051544084265568496898743472886800182099161457293778941113862984511979421295608321062416698697523851953619593503228663031760430839491263972464787351393189551385122331552342459009309494685878141634204936232292244394710962371172110406324142714106819385677363197685609964492700731609475990520209364619077391976230747776624306090950984961892029815013144695255735040436312687755130155815190089011953428395634488044872199099044354588451217268700219081353537060213374054886419602901966913934475776963231931861851077961235148508703100431184909355792947551847324025321516965739599965375878403178636267917126941704075992277480625447751870424297974843040897145919569269520956003411719359129397727700831697294514898293081250155008135161217117121215832818991481957228505226948679765573131805690798314698996446248164636455524367368417101314047751466785580318595399005008978266811844344514228947889737762619219416909125811981747052522026833846499244732934253626538014750088338337685426465474005233365294630781149250011916176345189097805612225803725551913454886065683505629625739164039728072266760200253297922139728648349418496906723369090423388853553142440703544425812258251853719612316895169973165758592214293720899669729983484327076961758675706710842250788851417107618199852090222779773298002738384702798146503005283331957242662401168085827417363112846606946887453295443023682910513635490917675819068399422205441360324117438306681635427484640345523992266303835697431293172874642386297979670125519930988226380767624600935810871374058603356921056350026352385356932767575969934989793751844752633402678265138756233749731989021455818929645313742533651929697277113528894174143422637676929018392470695713291510765645007179522843634165157579085403767647068984222729085485185518437259294138895409675435993705258138249200656591882649144378210703128607154846685189184340683146774120122173239114533158416936485584989805802996592554198510915828016364156073046109396958890339307778327107295404777721595968112886190922330347046546118164857079202002378568819743021867692809021717028214529869121863433413594675249313508634731576444068498557846352615632916071731624842422967021893948954117084005510589342374966490502547468298195459680572445030537789361984710477623073187298497796721452768198246902685884820578003860491175329267013483572281987247932391600643080900003069292010901226768107499402561509185981062501127922127108453353370698954604638462593710600652581179022614324851132050832530315810799785951813062263559732137838820525594521030307796076721331622725304721362346734424349655015783061176450907319500789874952962963579112640343970706446900554985090645490367900986388266371981817608790223270969706894360390750059195637884412160100038543282113781397613930881000320229879133653570231612618800635776461066266155369163511830368784940684962259892278028105023939019206055549047427326303794795829527462368816257067451427807022723115731102083295833396141217757859918599648950464391660153415384902538183403956078048581041845630097180572556249390971911780404240925753337459827706778174521364499692471549861478497271787586345624107482215265275163903994441448831757489627101480998648688128806253951308770883148264795688449616350081122176591146420357429678609736892657464600132503783432644166186163302362682797883655409301512246256814156504743120282958386206992959997301176175877742446370984789333751932880035382511721792438668792503866116442404266282374186564064517533875691020846953524776591349787456562629107694690861388982863846452228985765035913009601279763920932241639680815691331999146274788562510597012175084073205205548766710156645875711068574543213939461829967933746842336537047055787537253415946911731545632707046341825223850506848116828502487331164077391574686074793364833602082816086384748022091028489651080286661927398519975272236278506100877024732798278895959698107390776949512128022156009675345495916510942318967932159795258650804607465244356659423129834451621489707800546584033338872609253999198779618635384730534128617563555361314856595577191711083430364695568709258010611478264979101374999425473045767605655959204569909207065256440167257526449604936194560180167485203434470451451530778003540054490573145154798462207256413900983963362816215603583888517773103688533997445504551075449454535551179089121733783187917776640257950493506120737757716214666469975926850908954753927795081017334939052578002478536981445615698626792184472517186770679639626547822547869631293224160300615198651752094355271368481375978947208117379858249592713654612558386849074947611456911090580624236751927504818791266268264726049767304735372553069218252571202688309294843101800488432909638921648826274648444126975595593352994420081105886762958639087065655192980795777381267944386041747493111300247627386820060109338382325230311501687530147166277177181737471463463674182132543469897407269878788500468467467101885577757860704453815430684616255525404957010785440922603234351219782480535249986848583958497595282478058509480566182668728479048656703932185910822699717036626345708960581536838777022463725763848393059589632572640239953537867694955554060741451777550179561598539859782841409402534770751120065138709999934008074396045514933226285894152715173884220495848537880373584489741815337097651842620857201076132482029000479825055647745290441280625238198146176330207092385131870308710860208805450662691593334548124648930871848722840566543215439849061255618118613650092639791882320304876865299015418901406394540978825510756315947792452628002572717346182194999304799620481638716096797249877472149899067271748281461435713775595486429307814453577311138215120813548528528108628007361861974356291483817614193870148263557399490653058920979582500871460963243958217464438883242583452407736648097378910476108901236835324403029945156993979331863652392299440054979244717588453721528517488753571837776862789988088382196139586737331335924199960477129303631248063672694685020430262499161069941687482652495093204937374115194909896910560889135665338746416457785574581363996069549751255006006652122683558146310475417640320974227513228131719569726359686724660323558831786555326079473258088288488153720698388214349544691360037355855288949515787992340767018421292146966162167613389302278739444669870890172664633165168502799885753954809688618709631380501159793127225086211439806219024880655068287777492380508224218429033449865525065878025255433518974634031052414039363694849528644448821311036337372308465757488759904240155416226809802861360142642533375535981471680200021671122212439417641345336838144510059549208692846891758949418090642620986006168579517479418505142946862774579312619319734408554856649525931301269922172590750922469607455768533849377779314652315464052515398635328062390315515641368135612526305377477951104432048857281951649099480254151909416305671983792207558001443856770654887196175908295849088625256450500657548214478398668976779256994185403894240291207084597124073217370797512205131539535134902027918879038836818283703768315778372036141921913099945622287698164038734830343122012291391585476224712189555635042832678603293235709299524490326830816097778241113604614633614988043362255017199997814187233520609551878168029719926587377433681404973449263279300061566577989515226029940243432473083169483980244671106122569055931864466309811886823237561223232935092790044252358980795981494623399247921315244737422765808280659816990103580874962148957516910011620656653303315536552692586287721291666817602303488043041142010817561902765997450322908241480627520265833599894382340892719588128222308915993691751666314396786725413700448119430831102621624752274901908781438751690429175866977783011546586114566212261928062573893417127560505590199605266736145483197074851490927381409204032796008592018771522294813765340437463684681536747469208960999376458422291716496275525888115133631004441273691394534026894613716947447403746308439870286113265390863456464441224284376562411687332652658829131513284997414193550079744965249750336989636463248880160121100160147806569303463452030804783202836281118789120992508998387949630267431373545984827100996024384776507274949378481963081056617783445917475846698310481413953599365787460660695611085376058238154099746200016111375500657793453249618186174515915778548862659920653356183412060520928055663654105902542475818156144116753687112751450307329249154797291102938205860055506588050043894125792519459299988995402249288728445539372735326878290205345372533220128964556287297326566008060762292995280595807622270897501460959938696007566683875289085897924146885379206921308555986199600113397805842136181137885171009838102361705710630598236745732411351426648529583349710435645941909845663714021656252998078625833741285322298623720020395742057778263141175474824388483002855892691699681724366353113598355517421963113283362477866649169005857495051733434397741721888282424080886838589913036538808322154206635587457411638133524829907240437564514946631889216550226765210376013304012981044295022118470215779526589509159812243963967973829418814395336524845435956163168680068586892864908594692838481216926166743536934473564689533844602065710263161066371171182663044749114326087412232270750196441168461674154933378336786919628442224149079063482106696558037659629688801383400849059735725239422165997976957372233748800879306249756749537309998695241449171745477797428998451486168711748475841798412247664737141506422076632987466434120772598258238993969962476657317437975588575979866601191016975136409013616201046910816073088629813178983513545194903730471546910896630828177327453617137036209462413809973715107256132204027208170218055426352392548773605851759279752702971499437076070373810174391173678025431109780323703855586126518862552879256644157788887952995114500896692343408776753967644991332969281333857901276755848230708305418843925978486918914552800256219537209302987991992021782019068148120731748820570585031958612468668314580530370412176760046071415322945502710176194001117462154852893640713767013156749919027014634745805197869218490598004126711674852841126062635667933520935530539974104410046288179477733608515077508510311160581766259878719301346562631858574873197429691820598677216857877830698611337655216041286907413531735574196806223218196661752727345701227702255204467862600570696318464367327652635930146894546559665079186388337536216429135046629130788755731809010458203217870511473960827898406040701673387302754139490781110132294061466287562274852253292721387723047783515967078021336709828821214531199786335572763250640141607745903541409787587987330655350367358009243392947652067520002629960349069580036460102362002533019352126615396657973879727373155571627327517219530192336556467248268667873183649587818332927019856971800782167448198693949872094913803205327027993712976482333820117948676053669407584757933815742025825481624182770481534779120408057090276136782942235567972638793973552915876032339674338291582386483549515737382278375858174094798489891088404737377688715777998159096673481621305038514780527025698969385765035137771813564034027968035639961240081376917773356909170703892188337005770928483981860373865807366738203375065718964518646760087259705367640760336580176225119913398374397215860844949863223714002214227719935430377775374340143189473488281445142950678796861314849835391676184898264470026463203348509271374524752840235105481987758175738882434426453216912613679636894256297863361771197007355961342428703997000212218648385636379989697888161948158431169723482706191165277057903763881259971638939166128006190267779587498047814491811203838811460684537508723071822999904420571756163364381537524640988471296958838310901018336098118992622943281650901256537024930933123949729447820880188493602134114259561513683047601555450077213623384247714783973558918628858242289828149341039268641252278062175660039861856611469448839160748576120675982592311572025096647519356782084347742217665759666464620278184974533832850501744806701123303767900849180781283216987234268089528426583413989554157320753623671337337339993300312167247276607815100578806408372587882427252039311807001876243013684760349426151900138894617916263052743045722677737971443752649656988031284134879023574554703705153871808442953647509371016055423437117514428911002583269182860671143044254795907806474020269674197930711703349523366984234852573111684406722506438517938749757248252652893257034679670223483770212845358367009929022960311910187333913828233104269053708488146156587181643312664133073387198005774116013180147736323953549094890029350236137989513388813713230062672848091384960619869696437723232526839795328006982660464213121512069878688655842472785390162116052349522292159796311638079779511857633218060107872569758243340111400712273283689950375047957392744056690970031110285575167594205785364121492517583713205155030741965682727726999395060820193907272864945466556370647329463352936937795123555014497398143746745377180133362331098756817756170821578197993484404077302303073988895974657751617170660542696537741963080483714892246736012887106888465957080040428703957962015714303051376825423820421946988523924829536716641248264530009566777940591972702480578483387862970016833038127631747545167861464034851451954701739634977237092312599085068462356799945658102434018257973749571630577651985779978003944603528242368088405033035842866326123255602537377986400230299368451741511666886983533582863845738435258224745274252422585318332062009817241455402025211539236743782616161432957095062107837216310188871847650312758143892228683171387545386803914535821744264822642217488606716146909431267054694272202968644467780018465292232781482875177659680257355934976330591760488303731587055035305335377675047251003366114559788536257095854812910064733440825148930556501931042363890046626317847040584362756354454854526507606897294222305937236321879439624963702880526179574206612131168841567773604495259697029299168980550275803479408880823379548425626462299509178842515235435180240131695265121965387469135499404080024334553731466049952416897107597124596671348307386684399421067532463298704454764494487389970450542495663979056769905964566009340014626352446675641220744306526092377421777431853367245178596789521423993257121803422312840071640783851803465937441518263060680914041397498902681909865513743580725467753319593785342179035082561697679577825534507713845241422226436997096102209465892789216458791934521452530508450997992385777522225091869207782640041209210645754113824836469701496371038767120106730936070753387854254480010187045135736213237418819019499593569321332503020054945577695431915348718199289262182389935520057875448890855327445568401038617972759722139667348719139407872656066228597818933600693353425831167397082937731982601801446700999137279169161168514430888154566337686584553209361773174625644587380462161167646827038579208287735841753693931885738459577022454165171692628094470725555545708537384355585201695257772775654877559400158645849716938686654738235497465677301508418173370261166949184597660645457499298984280957470928110515579324403993660530610338926498005098561336882786991021354564292521636485197670282259687422537241703608261470372087983098781572989850683884299122286764518540611220156831002251411894138878693135568290627331530912884257632213071226302820783187837734918094860815431061537478272072705982157247736354456144531971277152432065567364697707105891183152643764768234643547699792365089430104233377795178814278857138232858800109665788501183060995838210927111074858795644637951368141384697472876221882248101665262072442649534494838845021838340199654315404880340292661247494650248544973641617817393687965356562629058645246286189064294740140798516699566549713848737517776191059813937084927866204377967003163542708527595755099965848782058990627599037685652832025405819560121469328510021318147747681599925103274706288141165758939548667410379691697466740435557374740229372845355107608861154734296371229893322195165898774031943717779136392334729424009672849674932930695620601680136625536638985630609146527408245133541351710595996233309414922920783263156366029218347334248037112360809173844151987884299701525690096514897540205570329659517649624688642937083379955866496274715767145913182847347216289292377539143990842834441226695404076275745232694893937180116058256193676042824323199381450487557772636188262321633773722816694638143051194302006582985253221515879452460725578465507361427487796929416281418395277199716918471930803680421912748908958530657608000794287486248955691205598929859792223223990123475552288310272259091152835064752575793119058520534392963433469895477678179998502162917165445221448039655329177158259419071315145437503229636123583496368859564722049721365291427815303898505740693134187346893949381408713589707846019054561393019240992947931440984122905707830105261218938559834600277795420643696074720632262272124842696848117513225114854206518268695533856708359244470394972168991261625287272861110737274297335335427603957454197645655951816219814583054084604954885915173255822374705721250759206161761820300965404767248641123978419007613990070278024606910757603511757867896248416751702737347415084624284183814399359413944297212197415634789949533791760126450081226900778315111596740045817095767263505438842694646132783224833348075472330347822430080742248356393755467081996485224765255273656626504941306690308501568410839387119276415724503418972225677217539292177078407670168268543261668874634816718952039390552593122307300012970756729552321188594195473946571832188012464770036002910799710795656168608735706532953571112793843912303456783214119237514655807890230228470789544431152360327925369779534555198206260366288724659330774470023096494699849415916979135567111673765565208212382064412488384467274111727594771227844816012014602201746911484752008572337154144071406896586677373239641241181260550368386795525488881044856776411752126280385583505933823986441568213618067602902424635323151673749876624910731825044538512281486848340795030008874383647387781868761550633751067861853883815915259875465228244856401502511913503705374851706365908313805083076230338317311274923896986719477685410161479449808228877224962903253002000874506791938677990130161447111353312505061414426688484795966318089848448516014896166526249041100554017272311229447647340364776975646576353291471757319088765576552091589174394088302943506878406012353551468837564164247777758303167502115857919922637947171023105792963833037060344980188332560523104499675203437228352373274294098904674116011587554807903013017213990247528610392138553487513797471773953489053815116318153251183356018103489908670547721002663523945852653329289550711284752150268007824343881285950486453275876392906371567454087017098263557259744652712605469820571468275753706414202026884430708631658567669008826912286331440391871402590056274403860904766570941409459377647025084321285824050303097479893123838132111867435482139018185006771899845996798469561677739646876957456316442205022969741617934027206246878248381953195289244285919118295103687271001955357113742104989193957452130015523114832159330326600938253282674558497047098733073843417588141327040480837825172805530691757792013377218928629371313680879589814286550335078997090909623345911496945583212399114044987265851167292585311326599278196716915028622550164872690267175941683247811764991579163523694605383043275206725489150457211476383039751988115561386968791736868349915151523226961413432178869672878501430062712796333640664958444794843986161076332007305070978021080643371825980548639362433272646110719271516923030823749355612624036485033434757225321464527789267782647101573183500082572097856126952441203243509650339277413683572310918624063493322207058201257313128065478425732939877443268023310331104074140418993852405329267686741047277595518949200632585964713641152624589263400451761021811823512006367440718648971384500699007939360470602052187879381307467349115847413757135613716917473267828865627236534817329180530322416116042749315108527164506131833025979622648133939903761127496412344618299307251594013673140971589114992278067463358302631561288307866036645157198343451232954249558427635087275660054325679581663536767541792015852885506737896610409990887323050128009989340003973690063064683902903398769472190402749055698619481432479943185590427843596308106043408045059679595864749746890859964259303303500311225911748611476425753855996521741892839046525062746776742858244837804571082734798879982294347421461492821822396022457714326573978346508670227409439024646592959584378785097259163798798231710251295608308813365484517039021859620914514459024883465714649128070681779623288281969396578035423038916702514685638643306239717099520839433446801197738317113519536627442397515727625729968900257501187283850403464764601469216224130857739736779254639073447852192992473061595940609624025249626256928495607340332531733280825407923203050796572353173222233581130214463217264828044507964599938407183185555038678603654963969665763033674263051904326149808288189636868683689731116228153195314138660956061749438794659919199265353160397988968678463649402907184315811386729327393346118988491347990521625671729511009244255391226287010946065151416819921356868219784187061897702448265823260646955534962558200120995992447785183077239132858093922340988251889559073035101322834925379292100193313350742888284763931848167528378510843868287085732366119633503688427014951002460737555002375485465218570445397079943459192701971457364991676780333120439677578085549280320803415495206473134146081631583153968456220259882108405163608016445711959053342033705036115077517824708245427006077429431743900978771431394234987072783119415165366923444819485980055250320128616178549380121910696782626420716252364260846590405385127179313059917300235785127346677839519548759349311894197150325529332092620064549564927320609068261425757295568519128150270733844867420960087532979653096445580214754400589667552869760450867678905524858120276707224032269414576631564795236207360189380937488959596674091968871470063572455562163774469058665619091768927835160656155720250590512352890905706522742928800541224509535808103205768494819044724010203543411336144714831479006124906239356955771122792730406058515927355362356040237354481129402071970734100591920306196859730947060568342045759724046808998618852553389514488097307180883776453330791991157846215538242918490550361590968093379099471783550655562417303946827852830966948587614501413230341051706978383472549851800472366566643602268798773769190337195480692469114344641716889299916923854768478194082573345107360285425577363371987182862769187415852508212158779423731429912057040933348138398437492036204484795108112431847763426505839703617619788554870910662288667934946344336900405674810219011153060987046712414841464508368688743195354041974551453474302223516829128964148856854374143148968639531598069161916664010802636563919120893477622796855165635936808248906096411099977571793652862445595171320189385490111153410048931516343598937641862922158198921251378712276569693993987223152229034335881333589234432275064997564290986081363133793664097685309548766543413011489774684851699070562572415159982604470925005876940925489426613835847260028192141482379098875436044371172918705877009828822508396467099447125531807683035500175709505159931128801235477619293653085882351401576697431885659085116189494347646443296516111699249254331368542584531887153416184471496043736552240322087019849611252824622877000262670066686022233035986729947057677097585264060743061018626138295627941806590176001003590205606476764645235757857192032083999451290014128664226694157945188954677985545047063037171383434575632128363426910981093579148144140344708703962447000853790139663515532665709779308177047367579644780296724647106803114796774291254508832958802803962383179758719959138755728681488696804860803889858176740451742063197176456568764027700716272738449611543164075765248797103931626604231233075208951234398486456184271772782109862462586320348867730287706277346811093964573687772053556235339645621575220015518338694341782124035786849869059726103330382413103110778805663488375222811056897641126110940448182213108669564167947148224973792536556319224226287007564360938858962250362073802598322546556499828626912070958422317038268812411453796281339953846977279778320954604860644204232572901783248333103108635129231994495441563801870742913238840163154127965320166450282582810822328032884132051740781768774869775107972547793952654225378316051234067209985909571497453195308011039851694156446999335463724536170715472362418213715136455567881845107972434619020916993583999552433379931689104346217949828417325416000135629601807332033956274748564035613905205820295572266640921690613918270900445656612440792323171871472241963579089527379287046833389838197515957918294707097845342936241186562655538961944461119946808179140186270629616903446798529177476107525189980105134955842618708257593276254643090212298533541786121070891722941527640035888851509224991921654542729655825531829472995515875344679709160512819095440011135065740345299092262240133948195223012912884077533514454656985036625768667308211673531779180629448505743458665158979722777986513705490215783064717809565389221993827243496143041071465752040289191428895963460613003167576479101313491259867525298512210183434008709038927236721628273914111777677234940614332908748497672699096325798027892607356204236701825295220612705662842659020059887460142816302175171600965445749248509338083177101353380483286994257556856760698433131857848707155823543399758859398209436593069484490751332107322949464896215718570956600883757034608010312523287294798167700432332054902898664498282548064330699286680909955837447721182968509017539088801541321805666230286713098847606173913444332046875475113616621015179603146973345672620127051509736483350067098107149683477888223197599509383640628883380042295914761593243698821478067058472056605217652616178719985230194229215887849092581839575270813948879452655598101165487907633761476930488447377882501020942984255988525785203982898902836083791470214380191641398159892885164378916206360586903918473817629299889114389108943100181904020860273535611052146963216543914317270670571134298763269686061425396054890228411267835615442186044798073208784120959733205602891535892024869668800596586488830704620217741113708322686826188270461676708060370568399377027520238510343705910065363693156969339546914476261825530043762033284366013546786374474076477690289682816283888451546599391279003309789016257520768376718068828975919032424552868068119165002741538006844980430811763424982078117511064326074898591270342249518556286828415598350488883376670078764509564019526777573615796774704087977563661421329570167612143400006147174044007714443344038584394651436002534284143597508341102521328916051599262907976265348181649761249768800138625757515339642430351055963506086904904625018989953668037216423344511159710859783680290905921861041851865944495726537208177360575086857256287702228101214023903122404325402550562959323539779817262847713934599815976789703794387176930896850818082645811852894138838447368274839007888155886696198612871786967947516540087521404844628331522871656373684400249958548512336449721040597372571736261829888691703037026427161527369257404688181429386181216400616763335932084354061662031847075636450346236512908874758139548989518599304115234083433723796605174834905852804562444316811776973818739076754039692668535545937212970220673326510680074444913022415009524752479023717553655757286975869489455694679281233160044784624773053318026550627158941731541358323488097365922798263972649113243726664119831477918105301047805596717572369217911487188732752785241121829232867701286616166231419755498249731065489153399011753146483702717204937320022910295187990168102481816368713507982572516860167464032577959779983635495492118502707087508988162203816053207543205456690186774088324296413074293365969444535429128585854778489467755433755991954309233509904413409924747371678400869617187659319783760862884292210482295199709424745800984688648342690312945997360513160944660406903746295809899687149404822609476101025404025496795529930046095991721284033895538564490994007519065752896705424283459014342141667012742788123713751444280715804737213160978947635693054617694230103983816078036382368423514915447824788647055068798447591903071509213683669208055104111308357061404466974532364117740393022303594132484675296015515399707588652313951847911098277386920382257788053591325863318536756814910534901719353828061210409635801537409652147988402051085967580798650139543542422886846278220659338497657363483349124271956147273496116475346808687033729857034094537084754147442402564443700300190133206517535117187694428428374037551520775079685652669933378463561640374257292084213513760934219368744557416244098133474830512721112218676675686789191431787825640689701100999770312644389954617221459195380777563449221000549856344383892792908722089245042528765919319286369404895723008847939572979980721526427478851087662816049659059217893570984805075202602497221300534854731786803024863265175050548130966697511799684073052325493616908772612852210936401344354584526458576872660718412576188265883331640369088331445719889159731222922970373180361375782429928298790785619633028353599017011934957998058710183501527887798037937851576468941120797889268879037541463157224579304907362726372246214521297586474001377922312441986766123435124325842173927910610918559348683749916130008892398082715901187851428365395192566282160665345253149581937977557393168553085208902191185720222035477079781892966677540761180696820150838829166665464925817040937818886182461264767652736708120293846449211399875657544271498915191965027530849405832502890916332190414700964833581007609350958789642238627386530767591136825294876790326085460605155424616861124008073600838289649521362820404619033293941145174401259537377994881209836050682842645379992818318571826075291502896964432914794812012452991110023196839991792246436457361253887877540362460257175860141263680131460967616988917885574035504606841247157513084702334287366148542649581806590069024128222351613508707153440214181867550964576632487682519055118844440035147609909255241510164461511372397339718873803729472718675760213197156512243911766117320018321969891358262099720858715393358326886846315393101136578667718092812529043469355409538610281463837825625573449044130599173319412358711673751826364696926286624969102667327312561907001351204523740305574123829672333292255008282317781357522963727649798126078355311498010130563039825658947208118861585429812851425379573217294613507671905350895269280540344893598567486104392947946557856777973015336794063206646376050697231258066822784594033243934718352027179078112461785479894692377614403442872798899190531893369340027029237796636927051859660055577340782189166754537647621793608968339387139360796672334677783227040471833709799096293113201210272348680118720000791913405789853812934142653350939113713030460257490807591706688673132719866771167097303936471626676530712169043714495826175508532487742806164761836083664490807351949622683070912162949102917036750343629005950058397676368283542800837220768098905874032498675948375631418666759273946814940122618614802051905420951482372647993512181140818266365198090932867244777399405798382158093811621078761533507290038335456731059090230997388811716854773893393779475524085090414144152809508757508848611696161862458346258111770478779105394929575105883494996412258184692089365016708063318438833389091791764914676293876770236235336785541760242007345792794326563193479864467072677587818702515211979271808731305994273595672522007921752105261869882951536581183672020103274840701435488129063283358647997765068833645689525848099657145418579917715086571150160841412800222189259725029549217994595317178098341186719343647966542485715716534303227369127329737455742307812517695230698642036069922421668355851584763136267204132479905226838233029240254980210784679896979627679453433135730752822906696621417607395254884035550628739714675755820784937633566878895624247180764915319381956453523096838697215760095630237173067081811193621794850963136104139580225854749296501955068049987102248797603022537676170214738192178463961036306264707769949842015635327018587826885092709485889222274562240887497129898960218445422554299557614265752052282477983514920339575081352704494101969334434493276663142075684378513761253495816163277786185572701948031093446236124053598672840576656197372226352183831148082854737362490178979944674433919220809422681709658561307298637345476114980454171264377992339913616946348041261205891173305964103172723516353325902531332588475997134824485586500234318758651268783880901401578555346654462060663757354011286457027659498244855676357875236212109650053806498453461421962585982154414730717085207799652453649318698228740515554510378566256048215490738364261514020807020548047398179592726846335071734327317715882891178501593104424776548724086821562656642516554655113202273961293226840420234195973524697937469088177590603901893535186641105398394328212983854521135705140586238425406851807133951408973781967594426956130107398760844784118857608450755975278993656341096467692525156845453013301108405205224274728686478190096166797688065028872364961968083429999884644228245741343941534544322143009710220843248700920099707941135448966468524933026547861050323212671182801033272540999869255754669199350547555025379958354124220204441767310543124326537799065366275972542451314507980245366400948496161988668081397165169931655087672328253241005684899647245142757345496793038317670674583142876246082457392080499028059996905054477083857825478091573039257855414248313954321163767363101137669939055157515608192920902643407202047419944746987641490049420162931192555630842212665782118722506420711003623035996928175591159191070899703327340066881716459346624739738427058667904764301224494954317460522895416057490427930291664870643710175829521838551367172118000855695473425579477928389863177113092639705910587539995507655580029719495398230913195312885650711109909178546345329825355849863812480455835366618947098211563214380719200316998313712789150824385968774491620703130048697476498081429678282320341970442533772384187604755856835080754767068739839376034323972729173440325215021414432991968216926492815483940706585471728304804303481268227087721199393002801858269618788930151174477425517054180838868851804701283188391919737771848043519307588412120783124064603769609427245141829126002575830973874852424418714398787928094559833353628956137686040115357156550212235395643713756948328248250186249406946486056981273163916664380116181475116678380557126888339091929703119255826960204413579515075809410415440521592895663263872754477082475092692951353089183501596826393527028446143387758298495328373967821339212072601947929093667290372325678410828759339975515728450645773835287938579206872546758408243740330805445116575051030053718071269983466452242866658458588714596178018583252310339578546075913225531605685640332650292602776007423585316158337351889134742183233764366219322894279877849410050123064316955549621013391774584064239007534130707604067000121983308064867860510976616056522904120378425253413371610515071739981447647955049735080652272391985578373319278178050656197018494452350577761775094268462632596435424518260681417312530554293209646731426567942936685484044639461879630249824846603395936166862820394151427806404074461472970829891735527760615118945635839467539185297760962080827664753679654929834321644587465714792656513649862466766703515433313576444800325105213160894884339938950426611831366331973959537145133863356315783914460375364121192940900743515941937886271508143707214765920430633771710146020333701859035351170246462412877031141732889289339930992024920634709888299713028779328084693504462732331325089037388116029340403355381051099271850322748775136067865202331543674334644496938058508483340054123398861293005264226431639878308019830668462199566062900788988978600785149234936903932643506519763252729894432592585233589341433285338179150897642360445246816536260857015316702548479412082180407700567643647841338266912182193604505421114273794749667189023199953376356558683750294521103232659621054522164399796149944374465814919520779561578268982464526236969292026765896048538204528702985515269528008539158759564317348879097483461608919739645403689351886556820748747493856753819434072406026220565167947004233019815547392790955875385191991388673659829850306749523631346382691965127261437603576381263094012057499034018587183649538445947691638190459387869708431224833787212141878421220933658697397588047119488438927602798143463389273913247729855243903141348614579230398577204509294932815919424966334478578844471421219863147625008266562623496938790303522310744205944677601064374991386986018580375134427335199877619237948915651129630518775182314957696946825826999747769765441927398251775045449624863467430166916154356930903427717769493113908275377697233971753124526198387136397110414675360657640060874377091875691327120544971751898083669917412788764838993746243383999180442290723356983597544427573948567205100101556797442212491547980512174027986766182347496807466564311453504219528531200129137709472892037730274185363390510240975136650199570228250360027444479486985291679420684979751661130832358047790243570547905017830070178458683397846135699762678487067009901879365219726453204393114238009768537017269043702391276338297666203257268646541944012226945609566873242799770264496609001744025899605608867366403784297349561761846538132691713278313076526301892142534567329990802525251627549004819268639387180770260652919444497800096276014217888156923869036238351182932805631852699519576568112615545296496430358024928738464450163494225175193030531981736361550344746765077879114162983314160230808262325603402223082874242462039454350391052459536331710635806291395176228884700682393145267365841178854710631000206768508936520243573611182325238490116930624781574518941693401826964634483789149349383576401894703996043129175500464993168084713362754711399735984571363168151749622397264988850241140505007094474190257617512866952174550062195940123442911741832883216413492457417194386855357731419878200738865383710693026284301073578276585364010143940805543099203662909633804667960277281925104915883016827061208338871947202302758752373922213500640968016936201318690353239290856150381784094341069163364976400821874280176197612383709238680933276535516446139562198975675831277065187257464501940528258884283326233941546932911260011973807276228520404361805152404899983269053157215492867222456373476198058939788762468899319766420059916784636654712719884705967848904607980105837683208905296275533319581243745910379560279757689547361759848530778460743094796411259194259928893200031674616154654498194281326697404321245946411415949622046716539139713568451772364617044185669501004362462346648696418242467421432978508628109712288847523155743058940932062304129149818006904001709450366602397737287972225106500527077106243839921215060583122560167194897055365192202144252619458718022049818450763337001497687134084461650070190854709223053998412898329695213372856745692904588080920656777766469816828033501061553778862671192348964965815110737548638838100293680863312677615883420303810677590032267076896010730372498828692907223719774251323910996896078118377065388421687124227991807575910082461899620370855569820543481319154855752946529664078201354909264492912180740474626827592321236200505021911108516029051172110494593940666779829295449059586929026553641140181982092041841479557224157977597241966718088270651871114928570858418251440881573159378843743081537042281047423758228008565935510955814100831701911854701099697203665377736821904622100941380262989377280076226865739085316240657339560184500402878678610053423671777181943941047553049954896762833797605517601121448081044656326035424307173919719908596435903133743412230217066485075077628833976246234869909791739695984519769789825378889547388734244444678358860895768160992334000732175700346570842473018413555967195076552636018206077388746716189240630233938917079484082028904289267401893358785750605912452540937567617296271141309317787714491929028763753958787953040029258274992033365822167072236534278731731541035624740980019193705205082442172732343885288583967091079376821637778311918809655700452027863693723102203104499556902859801251420953812079493327990043994193115417333413100957928998130751725176762537536617967109399984314687936202381166385135356936711459789005674466885997466704126567133601300313791880297745230465598832392339735748780004633255414284753572759324667001409382985898866080077503461894598623338847142071473583244907136594923308980169958290297035383454710409249404793322964343371535433099982154801433039282891895806098191786191726346482488011609014331606093245635261005476643420146346890474879983728084536513253911060136251561333401477699514754222186551970963140661814834523652457827938504226443156765630003193336190630290152831086379134329598079084953980774291359970842510402017538285735795250064877953188214066199122216645242472286892535418205626244688901391399571861258097496751753363524870333028208707696210373706028171357436942430286959660795231295710305065948711333361029466052239552984151746035985011436089043570972317715288362323300473681949568498790404441786763148989197060241770347725220198069131690361044826560764262320244001168093914896440285797813695016075550081644178253300802852275102029332519827656916771420323245780213100688196260678235928602479052871195723095220895988917599193139399048798121840942542033230344619202655743608567431171278101191355129040780398895068419050070840733430025072865152659852538661551121131438231492124638775896849864056781623983424368060779226480127928672420939443704722032028313816664196566768143688169569023941660133127859304342634651342555140871198134380354778202926798181030974607109382546568691441070515252324524283309121729908719199805034982076883660879005284418695801180369880243177006275885256068949303269522317204944457479814315235858446269531172272978174518894213472764285253506596117008629903716426464615626385909307354719543067692916852829292324684497549189027021541768688868797619572028545514208042493695673600102505374288739832182218764565590940252084586161863873359025222399254142109431698027492244240930313948820478640753028666978839248018711114990561642684694221754520751588998357722849366814540216510893160362383633777735120696979681846168308734821398348263092548878973768886342990099025282879584912762729643472933757014678699533350596217374271439864428920486709069482340361809882495718589460747640548127578269433643416625520728139754813080608220849016952942509190173030768708580860438808878452938323753474161873172660608549227737578653998215240485553072078997068864442809318240742139631399648036123964357827483556925181498771754281735239998481554011201370628382111924392941319026367445531838713219131544790054220029872236377595796977441849795086653598735019335697134003290044971253826717002132558898167721505004819801615603185779505885213339790496448824505456851358405967157325500097759474821871949121723172492368875206996252643221620326048019724396194051172724507530197519348161450612726970574873025172769969511470096684693550407399375899827246612732078978274010434701069814746168991553970225032208578228401470068745147514283172793523698534692928374569525782753347478801414973154117961114677591151474605843080012743939500041040061966507834700355156758004943813189715408986431743307070797587769408994224541872835461117491863708459797193292013405591177995811432783922492737345408901640977387776145238445104737934264824837639324342127130444099972757980084419775483403553179480669705033310295813258790260808921144717001297171812705649937279337970443592476236776049528269855744750489037383427132753049211065154276550825222699518851212212736203402576615721982374564765702515428981806048237134693260694361762652103483432408223353655449589592810102819052971341731564423950553907902396876291946503716304384362896498371575664010481427163298524299379051638731359636739117182703317515688010556854147153641178259527242171796005279590489716794323421025008450252630671613793645503441323185166625178757308826403077053464621874843232844621543429193226401925677338956702281131331527545250676898086506238868201225903115523330268605714940195930606965810012490868106603557936034742083539893558522582270712393100025819766346310773222496397790685798404148156113465333031412349221368961977143769612216061633227361802679654412954838995597025859210363382140451514558536962521804066636133288601205447306717917656198169079694983386112747774304227348306306805675882912712071260132944791684766346334928247633807074067211651589032814202842260418594001985283547072168674401867233853287790021354409429277638023267981402588550470100912303233267534235805901811364946554434980493752530590085961696068879771766897987322014758231231421992394421058856838888753494350997958571577573444400876861197990257201767102560466929022191633067240756626845375517050783287316731574083216305131080284448287318217405055394798197433504046860436675883073996848282778195745507942163144263540993639064740498999082124274757402878057716143298918029866786218157532328766470412520873363611302961272604259271010104703580486721493326529697803217708165821828361000928714277534727647409277023101752879334937957560377171028001574093821058943541722767725725171268330918513804065030636897525506056314831322973274880374460633782234181479928200800152026654502965390120141880904195142093209999826337041751915295001393505681424565607991056138896382193375712331745484929879960592055498107467364558673308991622214071286176216626531538308866304576425729032328535143774368465533414046310444199835118907621290556552633649942436387745655117283113267594055243118027348555679480135515529700764749620250137787392795716952208610661917752205723573369537200273941465075064836345651867838357429295276227145602936276702305058939122761757030565499499112342375112506718080259309145019910702266706083323495111502747064544020272864861184481880264245268859005817814439190706169153593611001758239271066823433094903215466941636413639103161162149496665140266825167401810168090012526457143153515488441086003575085919870345518721233736864857958193287503496810161731465429181311142436588245799128318801126312250318280525290055964698925730705403819071673525837386386257829555673076422568894310187564031996792633109653471172730157152993586463240072441124482049993003500831531358990507562254723347056890576960625498344843772005610518081741516434453140684590857096610309812421493250421805438517428480523872518265022667647528400428467067170388466690313742319467160517831190206270553506680455472444355772138630895170041484227382885520378945783877861362474569419035206923177036442230216452053117173536286074644522986212848049835380016582344528641396788810574686878889895294232609084791472570522953226278724822783839265700565278294292184452576355963316799486427390552056981619987350408525861919254864605934841704501946446183319105089239917018655461478485373071104948787425436933898185736170978210955649302387307054472090318991769157783474270278493630489144144507324594442346161683707509861552481816223905207881771167503939359209817502055188896791610139168469651108375454520288635512002109480868770104636312715643570519022727001788636275509842254047481766198793364692841776610508728148765015767217591041713267263986470091689798087929024941378487043284239236541713325927752421258421241668583528204971700345250562893633502023627162868478984875962281259095059335683090612865032964938003464298585191273149029836387580143256286757182120105865855354266532086762405252405448027480529151418777750076097807420072086606169088241537936525059240463252391998130584527834274116505914957508886043824979846740798684558962311019530226235346679933468125121018327193958787060543090196111361732695633008515081518388283778878096808285614339220117188500905133582224446628396818297809800021724020017943776995114101996939415308583413881640881094143635148660680257109579981301115623705085293832292427490295474080798679044637621141272437025689412142986901876259384824173105904065175512502273175247529439601743968525319602510800827897485701061401878132074964457186273278420247993832905798901356669321843701064964343539494366713823448108811864189318926377615949087509587871639751979789481599118695165654927134262867427454009838935634620067856878663659902367997040190342893647942629033846288737082895660013260335094235504385107509032567347075921486043220585149756903847420505294701404951698969831402892550067107772200598788074036991957740737853611718566599646816479391265081499370297179967675756462570892072535657965164649499984467925306411944826911484629416788460365519572718757530922671421903589952049691488566728620725706088390268285459936049534088113047203402906072372616342444650094103169052590925289355339511672564860844486257457205732755192625091429210730750714501623829010251933701736783943353822586106459201334633138626099626554523189192407637470886626600439600264777770426730764770229597129916925348078476063693364562295513838550031463260364118868709852409901835066385537315165294308454075745261457372229352845527385658251355599025025003910395856656969454214622536148420407885395037364265273483507013421134160984817013682502876424068105630846307741126554406816118763920538500088529820908378285611792286778273732318098635778871944029394893374708142845124352833301827063250276532129349150535114687963038006998774856873504608543217773526643369537634179268104482491456600592949014391505001188008247430842513870061668121681204321921405826610255805259379413054688163186704896798136713256309802653423130529971182606331185893025059772637032837966619106481249595904493717798183148196873333009404380331836184832593516121424837654204283852647028564961433424373732977371599950820855040405641219794295387497401785870731590272176799867583643620033131777450325390002305699762096109588851403006242659360338565488951724582347016320228907127363573639434263964684741573911302052403700821230653216621832325405123664990076019948687583906076796421027674526707376990574419375522187189353010697203948238272101229699695504150275071608914542759869681521649565843819140358010603362623418044885945415229948264572612715172164636591838303061483701529408136300536287535533068129985229626680421463430972189050616902212437714912427144926056437952929241906270026848012655934526180507431270930778689114821295267539409999214609287841640610303307306420847915123872691983133796469139469707525930191857065987044058577657704988561987358455360369459784765948591226195224149666077275586265388769545144664608447393931515737901272169464748350144029522126326692655307393112853765379381701153284057125495284795133818994502580961604209061508420713757007821690712698235949005865955270635646436631344361132282570572270577027189368378212021318831171728581179901998730594019356147224350152628406952474311799808251589284038542570604833626279732684036345665584255598934804092907487913876338115899232504073905202103169736881165633575037356856316534382479916386493657155288577001572254573883695839918894470859385196939931862754526414559506199756674104150645358721562396682416172696578902112912214025250650424565889837439831754338272670082589347385079379990277597423382735374585469339637247935168722501454508640489240363428251757739697882431856685231314689313019321444773267397757964875590425748955119207515991749047060263626910932301782815063516334636375438064128962488668477749864772421724493224500616648424489530504512405167222798443473451695804475479607668774416075194089071221266469144855788088024182872870956022118471183958644072533975525167898199788289014563967796293651267457767053583232959244574912419718618187715668001916630235667669911343999017334832247501548224509934829092201206194994618589304300834915798424831777456032063124051597038539685197135055949994851074405204375719300258346875307521806476159254423032244229408786259023746324530464209401364625104030261439275990205000159073577409754523437384558444821337872497918917539116513401932266196702252071195167717101304801489842650377513657787833735284762695336162123418092994234860817093138610579867949242339453053078328337312783797617262944905596185595238224410758132628430072728379102389119381561790879667324353933601479428840559715658497120102421724815544382900304402842939182889236897905011479480632334530807623247885501295954684755708745729314965843120175956190102055924426452898539149840459026390936207166491016139698707961541225234096613763501270365418125484072434785022563223425599680557264891834040012308479602135244490192933176099658189080874136523622139707436799864623560584177869200469645518907637140209520969657930220009224908460976717379464097050773292320179878427992696186300619204446095657690049782738148060869890591497295516587231731544786014268325204327317379419824295077662920071974814743014568042803760562610466565402268011497682145444500344776607501945360621521867276795211208083515891136201443375179095538865787017446709653602604112149587386947039392034652156316043667037001689534664087818762855587239912893113319250569227504178383105117585970078111620485536874185334668941519015057754916840430480644524739422157889050954039388268412319032374154672328097905714213669272250302482758841860534589770980117142835417124685023441034209617974398432966816565663613889804377656597145592493271756755746208862763806653667674802086510063105732758177639807683156063331995424986950913781434643561990026647430915627779481242656320701149195999746569159804770710380841132235050720791285714056315823109636499433583785205813390470479810283357508349617615144834812689349898079834299429708397326559149606268245598445871069984269489622672472254599110240099670048831979320514505011053588652440364916811508240096725019298381581906912987815080518129788262523325203342855232286438216781053207467413425831005127422412149834407722847134414815851142165114278400570177491328665758729788367400580496728736013040862930981659191364151111619095038274045422241022689037835613324951935475847996424436930443131161899033379991893957999120548351490963398654374391749822863175687473367580726863423102740203178097089612692558993584481079517827593463308138703131280061206293490276747068209023031895875057653852169325982619253843783179202187385334391542219179877754714261213928305021317011737400174828670897670782792871894829901128343804558037071830068946937078372867423534803654930400941086334109461724752920786908649243692246976645675462886587352993260302630872639852419066771994489488287564249667452148322859477187873336073350289892303313408988468236154238759077377563503033393349968714889854089648282949130862924958783415298067982704685444032085871061434259332135867851074502300587168673037283801272289258742630581662734451042958333859491654604843737081700470627803967519496627213921587624129008295239612336263469736255401960393416064471179047591459947190737630705104623484613885619095252039149302508015830160559423067931981168195500410043430540871443999817906092355246581541524585192754887868600134233937905682962497972907643332073861806669509550304151119899418890771206681172503787993041080134289882390938348107077116724255809533423733540996526898999278530728250426797465176789251809488807448220603521405004567930828824666537075683648690330496859710060826906163281611415801538038353425270879394984937100790464293933941528111026190152690274191597314193446939993883680795215412409791874720633179047275778363846707851224521555499666764926531798627671475104756841199103736301393690977334237109801930426594095146747752708726622735897746314527029411944864152235308846832629464683085051992852365322398362539793600072417482317810274645616006412897884630151743295849554680173207912049696477430562982329803657724308605348908550889813709487882784823252279050230375731099330412941625379322691018496114609534571771396920231208881514921615785789642698095235644482972620392010235169482325720397081129424774164534254150487854825382634242724768162608767494923421226313931010427608998863705426158974746653829439295440058129823497970096438243114319997056408064993831822751584307333812154344022589539909826771570256824795098174847684826290016727235741498929462784574902918247432012746507769297791335587998897968459441472153388428876200278351970681907828920859559417749163473907233713363039894925258563186804573679748545267048504670873067544894283845205237584902724173740954598077772620086663136178738644779459957577747434972047238265619546507081247102866913823570436022893991269222302622309250201250250246793909628397534820942215931910573785903945492604848518513862070391869973136076710349375713354317036053702543182661109199698119691601801731112304865701257513255678815553066159219560662418266740802358582219059701319768408670959578830728730590598345812112770558100054882983036900374781368742535193703064893824762164094737796390673909382725482588815201723837707796566475860408985313067962110015279799085508947571514229234954473261412593198182458058923025361749461772122646364050821590199705913714685320676092064191474901752952093249262781483306010697572134458635911561616974252065467994454830262216227820456138422489336623836790626459417141336622005339218262505243032108959819676875452759567686023241693563897952897046507008724700490620786477829813178031125085642442043172823866880733376579066318210752656464256147663778038553782882186916830926424197590417313846398421979611553583083573054898219510931374604729844656309271875362216066884022746705660605162825076419760694788814948185274427062607001377860126807788154758355272956874079618360563301927744465140564507866849417379286611692390598893256468386424974029208762617121826189359317011497870146462273841201082242887106824277738574620652673828439524194753887166700577089654720284905760003256125531025340454974498326018909379929350238552882673541023630444296430466139219995724525359640963701778972871934660076370200562304351583496043501658965088137028784008578075981297604618573082985606272384845103500939074089937121428873849003010784525904830998065944340231755385321299037242348251193531039277019611583961539738895758435105586209299235737769432322169723165856227488871977830408788612440565493555791302215373992353441381793704311851806387041111682661391769557407269118185294363792302314292824959710949050358964357794172375667220602041360950537256006206393669770702501151736352719858801337845363225302575888897234969923789046935757146320661944289899648381092111930138691915107817751160465388746663715822326120385818848852017727903635302714498040900033410442972260030776179454803614316763955012827176106165884034389268166893362425703804381060011999518546352020120422365103015071985015046207831495298502337066880370423981774362142046371923121671158388331834231256624602016992574501169727261308097892765123801581905425529586735052719773405184685327986646097538725852886813266230059636627865419022944190741321274609205472436484225671548088608712479045110812580163332697808579363189149205141782703831522780569100256119461398804846842318919906266119977229366022794143233917634084228598979475570202277476849935918546514527118170092883917836708455169715520095083219607210368242367100087034411498928991944300492403327625917234126208304604577747413706745123160180990185842746496017172364334240538843608633646097061955148860831537838036140495382815381461997703460945456660657764946366060345467245995142337373902587024390701959192260536604505979072826738052969609425057899105941343547527570517413981051966095294122643821190171215375708412740639159206968602748482507734946035498260848794491527603432444382725632715044097615076465806494489619384913363317420494192803579544740675168792393423568109220420269943901425900748069245358967107419772187668196956531154677763580568346489303234397237242622022807029174953811928052803167383229709841093937269621907380003524732144960544157837236168730203559936586066280337025328999835644805682066823869310249902223613277264726953270634278673347758937185751356978323716989346393994474438055008974372453613081837716052195019285694395871108027725966396880551671718009662846554587385346026098721198100186995350839310130636605291722826262652401960492180761103023932404155137625339595317973733373165222228883886487700238212547264980062496703208523347045942536443744827139239831401409996915696102776531913033440846053367034648312681334003520289838716521708813836213486004826007572722858856736046152344584895664530782834500597016237916798015385838329484863818475641507061343344048135463998742617359828835990342344699605848171518183521599770947972709416914918706486668423783587374029900206184209900747879868781907930980519309679883699801089526377783239626897040036948227540272438240252139539787955756453514323298394615065350143901189030171481966684245602109614429924510150072318155799569078914018716578729633716919524977510546730977958417748177310863353674117117046851709773543455173764077431621756261088923492541806384113574095377917184716786496347889231147352250400628157626700671635638545939455294644914516524623027672005486590625846723381443378961975533048069591358215562185616498733689065309440015592354476760566221542121802928766330941874624091523366686817454302890562956492095225895127472111824714664211456957040321380421566483250874774598578118049533569890575776680688915104431513287633439519896358466738428818009373356256094975477962429116730563556347394330905733523338299751660394036585708081353533855991836895656239342575969698088890379114287772885733917247623526358784368120128248193232534804828572877663547349616345841784672117780808396334005715818115029447058000161666014783177546049378597205990674651973149109561889221862162990330318983950753660396038128235530164350719968722266087278291000929149861256375412623960130127693445244096622847143613444165184354114787389021750379242140519357926634388506379532753887601003050710733275135671536072245457455451008348047314297230757601757959644908047632169189192055063922552652270280358455701645619581673224915247666203905251151398273134933245094085300535723843595228691129378022562388669690560222470832603398163038328375988420647344901319584809625225326977575951197071280714887173038736695683694327905638320479999576719963960355729460356144878156045466925761876198745539969171583407581826538170317224419757634076587464888534835560022158566405790797932384138045865035178755168078116837081562290586573443086015238146521718732606522415995705198899671953047318704437086943191319193433301911969735122633354881189116257799727520168984507617880655700780687294873731272171267007573301501745618141353091380295471765294871809226970988238322010522126814570548472235124013329841142032610058358429760758502200426645612408381634785862119968048695405766995852978960686241552323173044310043314085034881446762741724601775495195655612019966209593089212393813368757407340263604807674641731727329066091879147446267566361879154671640844291176757565444628820622909270578789773672480476057727709763674477287294189163923255781374400636555199957000936482920209376808952998624430040469638957547976722677828444358737247714801542115899929545651868455159460238841016254401037269647184599386974527273351494047158473186736565414469826223932709279452384899184171383825377151055208741466783904406643692176104389671894244315191913750983192009574896031588897427967520736234270637585890290294358550389332974843639349906719466359536482884375613301945540985991320046704877308247491368859325665457790947272181633867586014122226948973206959135336359917357494729701434194647835001562288687356036766333535528025465024954361458413132198497699696184395519167490428414551473075216245135006150986222198632354897363405645819804023939474272203047296921016931262913973674263026730866059396537606478708407033494100788770428868161790691005179569850911169238102238297176065150782249871392394922602387742898391806656163423149766863084231200816376425551624139345983901929073501097296822737075915798044418198418562758475153525980847328899661530787370335777097884268488268250199627060831273985205027571719819707633612415653783592469194694603312005247410639951241765923193956397452300316649338554134289632803326155182415110028310244859680644660503377083866635933873162688192524965186224821971054553574797103742131727686052903947083600194192581514273106435407929668697311433475018802377139748634527350286715191011277567323249639237817102334960460691385962221935202070711229227819262070832703533489692991494153574540017513565068373342126316215983923981525062075610315835033558354864793871162824109241259562280979269993546637896280660129904221679658536494058506688079378518565813944480964781235226528137965339924991069106949112688623465378213682472957401448273317374192717895942977373426002479498742974988260422638191220113420981390715327017690275207305160897828332993521266946230821255416449850233370297339652584801178963242962974894600976499772337748677699575546299449252148106167274409302493526381845412733195034065107865411988641684428779546488794504554968066765931565645553838239112066179038820366432721101620232811347062009850697256796765159572536862249236946682249697184240978504026845644630582811375213011757530926251212691693919913367190311035551194147753089373414778424502334746171199470684650237383603770430310992190385027167048514767951380007222280453881533391172308980160994692299654420427512838657490838309232274004301471138544950118928105291761917899176465796375036259038438212153844785023721774201451644426394275448207538857718810188750228334399028635184206086016552706455606122647370136988233297520190089989662746758174095564348445341291464424118531228517003266105734856309940385146172021898960206092127342414038739273839477903425740739973706981305434217473728901589974985217758031060663232492635109866202159917101965088334796816596741735942059520449994693660597407182433419241265804123196143891718906267214521225706934861823025947627019214718277653492301094668889888875460618975925981054421334842577416193782823603379471267670212831456854699385015559717158988499303509479607020560423716648999701864175956135717853743188049873463291227471671351971460159811573175481328982890623142432093958297044381174555345623095513599831620385172184042285668494093663703984490378738014116385848649918634979376441358241456502580976562735757574431190613324976858673567392845931117058296688171472469567559769667096312962381005304302513295109917780079674426513835351482428411862635022908285557630386407686645917206644716161932047433980293035767180571258149908331563415776941825310835200382976741534747834553798227222446229253262420130586490550623938828417920724839004348283156860226061748054102723466001068333001602665120023021711428804666136173054151297500562757621615879701827416659423277637788106621465670935360954738809637834552266755597927740984706304976502727718582616220047938282913867772791811888523924177182686811355648909689603876943813757061119523869844507569425276212741023417286756766199272207005608757787778180045386066462767681699571851871623421747913286241902373479095112510683494430249053190797322867286614490701829013534587775236343315972819840478572732167190694230808360403358721380556569974192458491623674135131491382678539694695181470017662059415525803466769332020054146028842181740223307366048858457721642097855121203977015118080448227576761147916784521212652774417695325340307409823439750979288395670922077369993091970233105662965936805465548421121161529619153141292696572865749804835595281619310057896412094629434577681481387015047069140863720523426722303948979796258030113992729096545063230357924867537071230333823170367911588189167026725365560285059374045551591001513577122320973002800479319943326907803617111222560073352967729311501743897378450291497317989808727698614650192212375534259643805415727226353333129083525245928615434018517538676550007168223890880887186432054472186002316088527115262384666884215235414995277532095183791054886759180006951866176816978363171322528863966530207121228204245391008991017643182859561293778600490894483178169689224820849522064118412700663083073057694282101012448460333245284055956344340221919467413820649134623525475410362372820803505740409614825641929604295874571258499100308608794116274034552899442380406649765787495820702256171808879110036517511521313640905835755327759955650249875302857183117113133878622493273872430004216827936953951298516162302427025986895822285153265091430276699271570984782236763124077694212344729086318398267286465402371786543645843434619011653204435668606700167486585660905531331854652698332119621974546947382363388802508096528236865928743662272948467381139254133212598125427033562577465045066959889601014257000285208910747626376694642876963892635845154255018542889644984804793658258113241043586839367796242541110785040877480828270933497324891291920358381837204343016963824328557862059311621264977763667824505408305331705741332804343861903461250174159225131228433472328123299283017030220962335284317999190680089697951998882025086904897553350949514937197032001176876484196630871139254269858983912512945196136685507196326345307198494829696549085602023973486128808597874961092377020952244822763157167014145447943536055795390525438552442741721684796433764732200075789391576862002686837195745098960769924311348009817747944118861970529596870957349648850158812161491812477141817664228098390342640507239276734053668562493371672512457745300965354563016995793755287548238787406923895494278606224062203844657576085835763673316248660754228391080557944868400080790260941828199491428918612274543822755681535619668623128287259854391922229841798330550892987907028667630748380209971054038221149767260256725640465561044844583866163407646583255582004469135929667043777237751704893913804664904295064026937866941094478287959273266952010064357124942988336547514259547955383394309297392937209093842462355336122614247940105111909747591467179102754083760091576449911061434294180592143343305693687169628983107892409115650624110660714248014650335959020484018854396518583873388599511511899744649718664366638796776042505905475670561393596422659416458701692839296678259021524994713294850926604059601212718857194939955412981915491409794461731077290700079946482108397851753962685939717888075400307281260622180954482131743283126973844686017765968112645450412556570158237743018379320390049170099794835767566140290889750168260213851357084787784001332622013245062946964685060863530415432981191667443681643110916059716894967026039378230880749467668657698991466772159527750355358751312214416572224305227333358744525516761438632398310776892552959853840984237620716766621169575416440070267042060771419676853995628458371224223536871855200452528271470492600075839099254886669385248058085122226601111715533230474778923024270666724254701494491158127732314158367043038875673346062832113593003641580517600779182809937086853270866630140685259104619385610889697489835157362291633361398986317131401107239766980547134382743250573617068702964852449922879462827336096844679554597499670286428870715830089524464764827540249431868544211037506016267409026983266829243196869207552551752294250832496269161880676622904594640155328740950729352731727221192530053639692852134621321669446118764534432884293534944383200685577478793406718052424868386533104459370131885071971592333112741042197119138740879299375700222832243154416728872567544754291143481445618894041712761503765448444919306279167599364562738507611069723934386472342041798847994962921039805869778703546416130905775996718692146598881825657854811862590126775029463936581628573516520760215176352734954057150027806385929294855038635077401147080099580835456336853978870509029840913403963168522405203560861178630845038734535005936749647105211258086413293820406920063430257840281520823908433016113980510516646024061737421607030891992575422379686555366004866901556254940395349032945174147824928414724822526608243332365317941492422336542337781368036333949959859227867276285212709130167118063079803990832704055399205748316931824666445251503164697257379722883750584078850391651668162273373427760543028804010188004304355848956522015929764940596218246451396832394725306369439012511632392255708797233910016337394684128709774468938625570181480442416030247303562334591500792423730459724393693298769463549189522079662409492943293065917440899631296579440528429475905707212088238172747626361316677489319446897808230001299997395914769586812715460764264509192308226696714466683332576463865590485709133872591449003534566016434539302717812898630601420149148871289389120077332344271279691746127104962271724165511101705891398860257818699005607667190647574149569202911150647316561255078383447686173094797329088065631090878641641587787258591982653517458521903515419422756553247569489887191458360969822092335300912215465968540805338251662951369295877844870395635979195596590435087913248201134376632390613793856455098640400279775207002065032092539909441655831749543574105736082156419579894119098943806470424111834563438938782747652583188427678722990144431899291280294555300176247064594745672561322745115422731974523188671438555345417764632345349220916544813923105366450406435768821156729043664841593652618760500571868431173619008310698484522943613207324786377363330583979081259788982977298829421395145931540146563320096089619342494273047139233580603064409287883704526964369967560306862812278307343903144272444151662489096939822007102138108812829335275885487421511489704249847362217965878255743355321661303232442886128587827285566777619391858901106486660592516295256456725478555866147160886094579740537195505053088309253534961454562521872130360957999278571552155552897571342026694588251388627420064475214423320791120537291449320470775894261634330077893462848742696283628535522528780778769545060348501114767249974027322154048891958441741674947126932265011851300067287966506373206601853346613484842338177921999241181625195939909862388686220055251641053693526769447301050255263456009598641853808095393584626491252723213878960203184650078464725592667083939797351350539084667355745047550689301764083498007174728725147726271842685379874007807957560231850462911102266582228204458484366366990201838797743142651357745619595754811569560248009622676940216373623802496848428343150920308566968100716296005850370947100200587930168420433529769722707609384950979239269709499596904736694214092202479715292381366873160333073296611659694366604069099128125573820240808210297580795772630714501996068820288859299058380884353378675640953733879803382025085750888136238715199815352576266689684342057277004973808711084532397460246802703309857173813631342579804504325757523223891523860420021885889649513630222190526665345842879178579561393859438924660935397601760939822696163218880419744325798276799670859616107131844881116010084631247881826271843195535748543545748654528378781640507850444701984108532930833671813811514354101084214247329919445706616586608881076904078529731977847451953180312797242531434143844519837766514924120735498120428965239070088553777639374562257785010794717171523230226144152669275655028629855634142207136649666599956863753651114143015318649586395862607631148149308002842080861736311568316076144800111095573325105247692391956022135737082808475058810782486650834310926433288914954409190120724667587983551221934059254481286726590306985339123303887742425140141923808453130508548267981715229162513592223853761613515083194724319176468711369076250467920924875149451440383017565784895238324473508188459144338385474300404298561610196760996556431520771576816427316150596264716916675175321202019502402509220029964214894386583413890465268475057527641160626736500083736589353691104171854381277137913993039487871316897914189919669449257087645313583396497863414174913152916830102963847647847098591802911419463292140759396854978014155804637991489444221116607934831245503622712986437623143834894490514914065818209486988597859451158838697967550692681444259866806599454375655848678129600970143782133084975760241126316948953535395148650330283795085392211092855728951224448266014966511268763099846621784366609908854579640782346697391480008267720179453733215374091423773082017297680678894487525160372762022770146150374569543096201311907964319900825058167528237619386738231721128891407881018907106609111758085621080792171930397978570280145761994911644997927275861587803315498763841148054693041742827500276727917279221278998617643461069999902251506100030014316381623525699837590217627900922220846921848734207566492969669754632195247720373919994420982809769966176912622927041742468755249314028766007401439309661661136789687026522704288102679827456974123498883596261433825966352197891513040705678353636968491833163345508455659262468441347778855049642711248979130639132438022817838288344342191081374881887210211298270266457995882442626710382051449796408522967310628969924595588301815581938057150752710615464802750131015342302614662122647827285306609592233353396565527342506569349999595741457087869477045803639201512078662629679164628748928698404919396703946200062706198903597261800272640707483601121485716564569731251268766643155090917296735305939732002166136470392826804774462413677833781391781539176217606810909066837437932851992159564745121138953771841766878113664771863548153246005009080606110815553785443724244948972402677321919747934591220824419730939700696431611951112599972786418551398803075053519353831369853110413078223862909973476543862511581039000647478368766591280247275622151349159568540252356053212780987774957010083235545810869638872326067928668163719836554272717011234820443945870038916725461679087242631459045521225758588722200330812330061183322615791382769126123328662758550681043401449408970938674499980148492856043946718400855920268866722428428609153204687233785445120129433419960854122038771710931918065961362840747368826546479284800528083884433722119994018541036378869095805103031421409535616502957603040485575899129817072138423152569993963408966817056477536035301645393742281649060031441860235711484411861698697196319936412895512485717237844534431309055340522832930494370963704801670974256203495542234511952394407655199129660058917401539603378988130345499439350484583271316622580624701825734457842227256805082480705719021786215421082461359688452936450707342352100506699750333733824831230317493357820925757430001531191658139320453008157338033503882441271683974932095729187266076513723121769163449826147076606233114269927909874700310726865663273313363097668433775954846534737475431122803493747303926960336460345856273707846749738937303928248339309431120155622835959966159590964153269592679119736054313163474551016332303862054184599271884936867383296345655591464681421977593436699533103985990187349396591605643840850624855644918416778546715622660949310895853857136578040115823076744881140123954437715834419913297700718004432618123323710485268713448448352794034807635804012536496342074125837184489008308192329641694945309913817554120592604665215696858085202587625439406862123910591825521815441220813807651006110717718243295672728646755626230965963981729646900295221262124217766695727992791159800388036114738112551108177272123695086555515628997431624598387602099623485991629309118186187829135561547052687719928963464367719606743830897763258643986345573811934623265729087737917590389587483590813592231820100163518367200538284711295195017475224930967951964329987985492584428151213943777501086819524313111144852449180635007287357236880815179211762814676021998913787518338685321831532468334611225867204898851711277008288321730161242990559654843143897445621614598898404175657633570277272443417855541656409902527551939013450613909477015403782795917989670710264859769676848653371514196992681639139810574092989094705729879201472165427265865470429780103975685094020760274521891217590513644829085441228140500017874988539943353919275174460357744753163010564870322001281475374532267650294728330661867731532597822707492846312784573729226377770300855511763089178921652647613369430925825415563698902240417701502896766353564479971700621878546271746617589362167620968361753041263511140144273083055480004309904592920286019104946402865185889447687313282631922859000290043811789218788275457986302757257190599063758256500743256121849417708526820409463538067223859914802963094257039657540960772794581852607642325282281563462281020939048487056394301147917805932303848778645286997093794083212296809571904721035456331059503308587365291837781367338345183746766971973984600790271123850292376856743954408768949561195939943181237189286067566402269749751362000424256468483126726312759749510550341613230687808094296072691451408378490989538577140036312508201312923231877702736040875815664530549794605083621646289835210542635764957112170509636202309833153540383802724872928372376107742195809571972992362071825806740617752198199970914067657614552516252333296169985046033837658074139812696428655492827818143722391370948008082810046546021737199037751532459643051942999076945622934045821278615272485963079004441385132093080298624884745146004937047826577698301961746756870419512047467021035294722676443469676469605469852713481192717137733347288474626613920331770510275995492069926119049032059974622264921350836983786926759739901840982776454522230829157601764789527344874327229376504879063256015515658533617584026372681805070385953548750402866074008315181751471140486213713190671393614489454734594245662478804075814978986395150422512904963463924158881726510888304704154960251236016430622061154939682600532114449869776459303473341787017392247922569312901829360866745487323555252574646917840721404368120874683114701989708699240576280117794429946941095601292722686735981369071401803603653120854182295398891956586104782806216247796551551481819207162947657488090488793843401610635908469695003782389211395486094734281623712477882921385810137701445588524173148772485304928294089641858129827306668362503114714051337040460933207399309857079169397048795865305198947644477712109993440228508628704483173337692943753592100249749588573442232200809632011293144132121824488514073036414435329961342211947091061066345604597886676724658166658380496019439819069853629098783725268164195870570368866606421537844256562312206936978402055965345854439050557119286164034653833959468575798559470456787241062123567262196210761880845677949360688106480315841912660593171823173028017579794485020854264991227781999854473450854564120615146416496635999579422287856684001449582208245291378264083432822363383369510900906916618421507849245888086124786453547672434942665007620603387718700123929154838623960736281415946604392868630446916259062100539496527612125211905614607345403424444450510213207205139480584868186951574971456873720536851826828484203468703996684950570137385208742033359690405301802007334261513484563219865231542847366269711137377403251948394151917529842670820690517387241840747668676447689992741214114012682337112758155154278013840603073728892957663158204561294701720888062200417021781995642117137170571961805205870976028248035681441622538993655004040137730888582422563477173262548607496938826935609928793824104788050068929986705950715180068537621014883871157670434728795862101295170657040719757137694686538930539940448146936543699893701885295268895758006469216671280348902766495246587589457837565383641002507173577976423956689775962502152689673350464638489056360326195940926733569934783950973287063226744053252225853214998598805823623279982088714756359630096315346886233928130142838813192192728262797007102808314453562310105130634311685298847715891929090195272174102535015717563186831723078202178358611402954272125938392967162879809215149373736528958109764003365282648271877272616775954725286600361654328865072572781507258923265112178834712061069849922620164289298623237496690733417956066866900075282234726383944672416208426078842197110193279965254454054484852236970156243534994663399102216680482653226496459894369453690028579705993825567518912144665420493889693808006832969648581839336880212872340626585557568061986451669432465521644271703287461646563898874774867721708362061228762115939977500019383467915591760453018400323347596468489147239084866396890870817667848973057627520174414904364372124798233005792059709397864919306399020380222341750556250542752428436186787802720841053868196786169845750266432854701801923895347438678663463708929572942525921832638233967115296385355147164249459722732663421916587316313261051258332550012832617339433972765160171083018100671566565379949211566776270856106025393069210071394748658911190517635973208991514292641517491417222547078425496251904101974903117530828325634073180065351562817952438974982662410072560551422093270872458800443686847988235555031509209026147462627413565342717410936582019004080196891043857069086101008744939279773989945520571207273041323067529393791694163415457423198874953507022991513193455368302918058626864941503774460263126177405320140150527960526733593176433622146861187671282285727898156165871833290493954664827174865922295447246575503998107845171141640956363725595869904925835887007546642088785594483176473400753576261605540928633476643045451126361465811025313258993193623101312559158305580940332873232813645107922495514207535532923220078231483013536623191190146172425317134140902724871151459679538653457740285029108313486324462318738234612637586411181113131256244613929813466449338191515301871630742632047390579312567149839552286313894987801665651964855147687630438274755058210764999289283307947935358036462586192114612492844248162560567910168030896261017313691938002239785863697424477078095206159094162780172919851051528211428593570082848541428742991222370238407464796735097011022904182922002166517400258549700516062075156850370263556408341261385057645691877085849746020721253734490588060136482532850411684423630753464779604454728733935188568074537873912951455104416030582942840866533734960946724956938044494685991238738332995584655615864985352786183893502388020833746146258100525614191235704128397459698791968975867249019376576677619358219390383050747162335006723774988635393954362960010381083561921389608573837257348331183625420989345753451178951512600877305412378895656246937053300023266843383518540638416027375878030942109106308854385483447087947990564147153678002957788862941697642697960781952628337203180703970134808035678465143402516796276882641576404241608063062707435859223726633120489776914162176033492798978116826578252403727373665646373345333229897978387966658279619126709745463150915152430766387337816668452673199171187807157613629697892420233081691234100736665636199102586985751059074066068514568516844314290448789267873033122439382357897348079354865065802254522385619191144326175817673560636041769999966599349406971457541036699221093106501481236981270730875629836470993894037454275040363931016327746263872899392606660428791396601197120493252491691642134535963209998670642425282172835270090738975567898921616111728526426267680421002250333079124605354931547685457018861696317228272383084764317257970644874819678891875401430605095857314869395116613667082391808354346344535831850359263521851792936404055342535646370438960198777856309590513020148672155503377259798843952665135303441784171814422809025722327351397793449923548786502100213155251578241996341067520014448569680514572068971718619094316683780599124914438122314455784021698272433098308221170183079967007110721912516248734424273471484682769010759586880296933190237457657961867921787489099466205422264637036763593930850949332079203365222018540142883147882056960843968541364114018822403659250227013796415460046625448165739341959969124571376271364915371415880830394649070652662972984043215569995536183164323520612657199258132106796661117126886429811072241250576061256123858384298682782492756282556011313505330781093410213781498283382191275284032836922013379651418670257073947995451190257561163301779641114261756787350764763485054405929145267980951229561115618464378477471532217737561638464469122481499622796496624989570845298559555353194407091578962095948980318278408129745828926046080643327386212971192092434801079373550701505658073333262433924115823527432884930715463004115164085315489192126503682694503920840927594468764687235825308482111215583623622688828589155908332340013986188993370911482230827203006260148958191665810061419171549829479113669725192765108314313280947075697380381559684209689901915904808649485226358007878901872947488318291447674741525578168555201728149122767648083721853509223553396016629383186177587250676495070034184746878134473640787521966464591880382396450240665841569888098033899944786927653323963515236591906635427066641750583249641149708740331927849210804573421783394005410055885353180773564158407927499287787228152986804777126127031349649071444300374778848524184812067114268062540012672911427796143294366517961708638967080073897380936413908336156925982634412724155717867001758054231525061149985815235546619238932028981421026113139788455786430773047576117544216558357855452327949788376260489813286833743111272293624304848592894632170519597105064863344694371311754572829286979725549169986990356013337153889405878324614509868442832560505814137023029527730470001486671041661798190039217885517033545894470609123032730012976950599195240587294470105155047125623645144317187873781976621239758690991958656185807729009130176058568028066833859852808402600422919999909443743635649403408360562443571590436708111502893471873569580497085366163211445570926548235439842153316710709885559832632595539305602916656468899065782229713641519260300146076143791515263094554434265268402085448813795489482987255343502620984346173885938208554641321702257580405905648100059170249239544944965201092637901948993495190813030237946801622166934681860442991024937351651262289091975257204449972438532324537505781367906132923645217947718999230767170656756763345530105847810186241243362837053688571463628877321023052896375252629682301212288001845582066664768068130003184025608136396964432301824670051056071777744318879051206592215838908910873057584741169323847130216456139143761518222008370936473728643873433884340456085437845412025640750081916852943118422460874979278359216830440217612267115701104297296977436154940346974380080920308727693453731154749000722752931586903697263555327851235801286339678161180372065115173072001184244574982353378779885889982652686586636633300062193603020667717093220687574887526399314311120544229497903744586756414688193608821870537289339290748539425754189241529965158591908219139040768330389503683104074774226857845799850211144991427904111971284931207160670987097019816031395277601238298103653724851528595471824174594075881731516311446544363708136499157805700681749945727223923654634781761735574544608766414182727704858224279399760701753333862717465560340517086731969360145766230952732454042938053799803299839651819296690025507843429914454778485969655687042611381472317189460136192544145524568480150270294111988823720002734212725011490837230390899690668598568828234007326582425068776296215664127663165790018031735912560806958648870963493856170370488960832486106547602163224810277586162026014698992268766188413489007920315444312488651156317057200179697388988277392392797353022902831505807587072737389140727297047640815702814616809824851521165916675925421140902028280730242769746815079762791682258364902834651384827046772621344828829500398135858743438042587909516048687208074823713327916834157365483008498624451473580170645034822871082203752543925889106051891535835588879928025175604913446282023100739320868995941241143768340836474821649271110247654756540005090521599362313713106008852125694400775467793689460416930860357769810382319536656214921426858663304697038009368331474753503362317283296507949252071357892539741255811270495521590219546552800491813150206692911966805064731898476047696595268011644026782669654824292221497223399814762574728377813512014850953691208678938349983187511401623125564157734973020013041219071327990783656831760443079256523928705108882041456529219388714830370382697806873347615731903789804082055377374668461709839700583416423638558915373847129011321995209136895782896776010619896546112391539838706921512887070004206745081160560209076442217296209463050463533009738601565349289757309251004273071534189238394855970019340400436434716553131347466724836684088874896967652185210470036172069223213413786609573068522604785082596340994608638705633207207438004936717053603145173651202970901992322088276867151197463110071810368706376681409000122981736720366428922346646815122740046102235954843047439895022388951370151249630448380563037906806541850562023141277058516767176125210319128855459603899025490980588018179791881993135421853175923742299543490653446994313210368175602431740933491060351677012013015327125663742070132001971144422589488115849483595317163263021764985322453644711761629559207417207231106977421558930542771984509671926164670223124792108902192962094675360709505304422667455614679274251390775120026096828274546592373034389006935966653595246486229504853407047463106178016915014707698302598920743980759040911740207935153777985260931242339956991385150242534837950739519422125118605160784963521171802538476112820253095670472790875129466977910068851845417204372467584415900070359793176951218847793266479664415680009538606911330126327776841156950302769873332225233089048732028733144472694915498971338411647216574361472414200326988037969369342233703889900726940371553021791921881067405531358562080500162305893736241261491553678754114273094655124315659723747965315610593718986362247902974747379176361546489562303347919163242582788791867353611566868591069117017632432528573082254886480579463019462063931917457902450396169938972682559452374349172605701132628655762030025730124461371221760083767840716178400622737486812991897650899032656829807175147344156921047793222633309421857838229973324445073642522025305507020167175410724402521214881196162074751032991700135041598529324972975336392181305266941824072352873617048141394000058344815889127398972792695447290917645417307007614955239357787804832528969648137808877287724256030382759207010714555535754326746282080467070561195922056576095785364751090042203709977605946620679063829578203051184248564680729905294821880566525678074639653219082338979422250717234808868429943878443544003027892212394979099549352571724535264621384709532566502331385755582888348858021318743872554635637727503460351379555230083874552166483885398192767700516299371577500096347201290689368911587696069661768340397000940180513473331942081565726543044107720172525761484194964309181046479161114018923107607753051116724586981231901770157939406419337681389078720282844107293190558762238100456550354480517104266471405952719660798000986119560270375076209664351995887707130501688417610464672364904275664741906983720782361237186355020355474460055243890132848343323870173308341211191314631812571296641503691498180355731057958981131018784157978798660027720757415005793597394330823680870359510787823460406305089690714319073134822973176702387652903418891000486501828524353627726097162540591848678439780656887109602837583295310833353716282652297415731122395171573577909611117098166633948928825306693486694621771942349331124014640530238013906018859977458946295164567905316956513509008596495993045394861439822713103878805149866224507823081770257145494490667271070661077003996023116270247082931335553693725852295890120849452233157795201973375163599918084281445107405049377092664804332614228489122162808726979231198802208283265436482409347757813111786462600995058748737136619782378200901111810034663385391329275737194597655364881477291084564992116785318256977217822891537051969851087953120310808191986756244451977132712312912993633270433560499768031245399512882609330613462109478401055032908610231387674790173697797842853860026775646393154101925461248274348998429532236021984313503594410139426384793743948231116777042564395832492890540755198675316714286373352882395476611471321995369915674883662616945464556538434226036701724413698638066524557188639786316857528218803845234582719224589110655154568773221954698214005357118773481648421532612350481528359187795685947407419179579923991245945683023362053523649284224482969694089071959071199491371442362059157718268613756150169845863125383887441990521444801617302153435886353006331242537965056204867953851609817665117096845795793783648039435915347454411649415437402577629881904328672641133995070424590498809005943410656874469909830497340931839515601496093819502790454639474830903089490473185708170743316460122346448479979610068324592894249215718201652692445761960962889453345965835549969939669233143417839581535315814334033676599556464342377304319011171332812827512348593113402203335714826889703734678963281110178286023973979079397155387552630534957494338936066696074476965960462549873083961300046648330112058042048680058644309048856401351727981370361708882634641075514641713018919177061059441800282516950753393825683481560249996464880834193747768687736017300289974692265988859962376834210202667743891091923904644413189904606608757157972138207318577620944276274508885754851371567502187017628751050476527828618443038909131022260087853573533195181425521485449906289435612029254019190404256953891662714923175325122868398602871260793304994242855616091411581941887171367329406935813092553958565015904476361553084065704334266648639363690584102408459154137927899631622266753527974146724170717670270762043515403181533094922257822397719101541134296930239376083667023172658424986634731018170024411098927754508543783858326638417739376846153471126603338270044402742151342304499756355205013622332915513950791630657557894470020759011060163237807495300166367312149767832084097299564989641974959701941176159159098957031840560678585454111529617777918460019664092880904546733279458798465665895550425364097737259483008198544765880532544539430570872984162443412864800570777879278597794990972513034967287248794308615620463444297341528887825102332178220659672650754598796579496327723010769738557248529822767684358203082615496728112539070997116353754029168951366386821135630845010277510375346807657915475345249511114417933267287811070378523052534946260036706109374169002927885426237352380040519294174947602448459619145116623913899238639958836046350457561686650512483115413033864628395272147081303507981311696963708864731392615079903673224239657767198665259888157598779628716302164273549343341593460657412423808151192935855083864529281899796051354946410271300320217862143093628653872753994706100976855027206067951848585996734147452200310878485500599402250281071008616705423495074683318440441143575962604287886275739581617801279482204987680188476910859299731270917545878034724472954490198926336658376264915946544110640132104271999079923433965917209743088646245649421002323819861242178663847271895363647083733309727412472875962413597174161870084741918130850597721073425118098303459551833040049274928042003859703767124079376741892272678828882976005751173340545818181727168420688809282063628518258315869031692266036876432478623848750610633002465259400355922596405246269000799362861397886229953706200575384056447521135219206957226523750108652412155794656920567550695746128246980807064766122222995726674380100116682363986180580240567167853112097428863939668600502828267089520630849460159062243386748755375635252742045099252805647895258382022623509922675837581707266371214728755943757712780683119748396274507800769503924579262049437246857294423442308334365929591630575924283927060386961594130249106574239637293344293372117708441656081298459098262915054764216196407140722285707386993030914604225317538425214844525806466032162140534470164892717917164392892551690379693835437103167743761590080507699025694787039572697352238978737955898529771794779907251606315003508633098384495862107694676754064387090272730286631722013717013919204929806070256076119340066342316513420272747568776946248174834439412299754768357186335502583589495009009528891180940484939453092854670041801304717983505887380401177777251416485622917781998916126473266842424851240223811355711400461729126528289383242576975900381563269051954252013635126154906482621790641150096751290012708036560382033000855953054176123333663492308350920351717879837581121484544257007860024498448300345956081938981168893022455160486417397428580464390133589918134853418230497136211656156041305441772232617381410000975277223158337417149650785681546622637647042460911975390581476813462142636558062969996038840711615780304320175004003370897712118205042366411680034674027145108367307150080481656562594634029535489789037754871508384211908017477747123819522483208877378076260404598398861578708205763753163909499526066415689359370161410106894447963601853065437549189262895369596242853644299431000034453157391040457445661025753842964685086223701480444224813942947899260127854952695087422505548995326042286086604024536239655970459955711292555385860233473384420363933797904095563397001685933805589612784306664147235578113937644227796591650965501906599272525049994381238843988378889951291115316813534384674911096840265997860795304070833223619632380753453444443650574742246435128666412887417653983756817217485010018621844364250039519083995979317196129982766053793522907531239276331080393599352415151253916189437532578764245963206009455911332735884666980163538030342247280164820775954614250815243041171634392552176933144005977577843647291469169488683828003255456388448177635340287728502732635998334967082141354145871540169160018651126696055044784039771685451575203780914283905549004436242368675714341903899027757642256473610630040306981122737715043012429917115812387985230524383807468619814339676806837142163288119140522970789149977313210603735650470043607242924386481932840671993025787595016888762643120372552995660987344887906254341940488894983254269874235367025579356811011980939397816593710765843021243040735489177125779489392405091203833808231069954140780155444388428758088445155597332472687329350929747561528664763396389670846304372601739421637589704837020487104604616315516920212463456728377815636651570480592630669916567296623585995209356651766234968032089632832248572034779239500624375300383424888165612026086571371126293006604781632996738219951347764126142814538112561707369556001012882663872354035088727093196040899839933938446392949783267162554623757456720978766149630044941663246964821304448752913547467735060822120604502021586064411410792430046839195420430969665098839078165683253382653178942505005480213270783497607742368053614870121085020756627111888084390404672596266426296126615427560768012841480665758158077689233756787048241988115940989673952983210293563513893801654571945034638561074761528006739888835777519199134073059786467608615969258228550550667482893355171435428605905122993401403513223691167065197611637705643617385113225575962988863596445076281487958444144646381148410875059769563431285900470229948756231084211323851231996515484949118939721125552619018878077864908540416272585692303110765370001800532649646255165707005261456199021299989311508565639213112612836253216147339978254016258019653081386230548502053999772346996715927423562509373032047591263848510462716215606193802224866181862464230866978124044884934271079626831450141307661485997456818723922026983008306204252507443801239762934579901229692195435752114934645431146155266362806294611289294396642900386341549517862466586896634393078476501010257442862274308849189176156025347676742457854160602041710227551780796433916649491261740431013918370529418178659399738917035699683726796336189931385227108490185410476994910953567167534189226723534049753611670517429518987968920787410587327370657835545805610566777761110679020315599276426043831117747094871143231724112082961760173523107187305666172877714575738340141454935953453021672922813817822378490613416948306946485662072940344444403154951023910572334769537742873549251317849457833301334710020332283278306302887249051915416948116595032852845719785396495344573006075245413609747736494106044064810873487884037508544966236206287051764909957727389532815655807738308090028074293447539802024423809862970560417566583671043989037633468933782731432041839568853823179854524226744732139898111237647689850543447967319471864162158831174859609911580904967376753423367581602319597997889438810065882670484512554463351512842841238493666639195759356876491844936403208614514002431318650957389614769759250327264628732816932228813728979478911453251916123319392188442146388118408961678226213861891614229839738152489074256817472123471946135171270177125347016473635768289980561414024075297082751372081138563457789427224525404175175894670065825708054118335754079079381978087368338660886700991241257594508337841779117572693638982452405444394926366771050102349719508479373484662480544592811874153281923197761523353943289349764963869516552889956662144548442158259610357695579976604298412686884968820222506976262288916367388307404105196003030651254340318185156367073608072059851782874419648263038860341720564827061681196480722049115307122893220236697688470197210200102850636787610000788791348825269783448167580176209074874917814397353084592708157791290799148578551091848926122058017520711907044400644190507629138218194223896152568948758311222664841800336646175106096835437446881889801560037968662045655870424128101710651147366960497645267112732280056046734544533018146103625212515317484387289128710331819823407240917464603787889451296167353224140007204411055514766861520237964713410975086308165480295009411342028256977209079526847184624373916043401380519261698264807546684362317607560877403083582445569515980226727554194442531756823422224081168645838087776935482101247869292618528578956826289759668450735193409781091460795650933332517629132887033095588427422222888009773073283361369808252640478662867251308939275907115408068389642896896254640949073091769032619065384412550666928966586694865400639513541772711372653508918182427703637762924449765536829011143771351873746501814165381887748282023494167472804520279736609090439126483870403762652591103612620218152726103247295695537485291384867349885015284473258805057807690031546169128545471201409115753777291102681793242833141011111409287683817059876274040997374331045938716615479666487552865776950811120550837376623216476426375759481172277329950462210367137765903699647911366106622108716723775798302703509089907816260338236125899034706546999552402989472115445832601113191846641578618554036556264270936959540192054127512252654732256471183927447843223410540679725317693778532737499670601859986707541882615541882401979705012258292745990660418681711783298896961945293129978658638608979969163873136436098447952307723631263454436490536574579354037825582044485185833597592632193902351877882685643104886111964346289251344295711861622385823192570533569826660053150435136117784320735184164763286904102052440701829369585566009762225445313786487699709831572843017466379142818473690201473987713719842311224552756092125147610910172993535355735603171016776724252372519563236388301919900230584779059411705929686016115638573992320939507514912190723711239351602546003368301458499414544521663566671573789401268704445443141234306251731475548492777589970677868201361422873832063756846928755111780190385315201120832621332590337012949601972905159869618220846219157087635516529443295770842661207906504683382453576184594304583724491742739604487239939508105280943766557721812706085412772593036404017983473682182412890952980581044682359745955704019360202945794260148655775140009355677435626519863793240247968172730596294249359940928733787228416383214741918284820150016206628955595332749610837718054739518467476044716635145563072433540001953864029488353812489393054711649679809690689450659054106169614773869517909114697741949543400011117593986409393890396036430071180084635334116972115511712556870964872713831633769880520141715487503870747698021118180675378414421279071958823918884412429911101175872809118699055534202257182731119185853361218021921238556244581350326832057799029482558736536098805174351608818970640093123328929332692051073073649907126717930751401116610071734005244961532177575530217583507067307871338876911064285303067806344632703474238108460769629670887940834205325296039261166373075912979151550682064810749779762185841774695667835947443848878493098088497613789536835298264472750092795173521065088272181849720531857600445020038130580676237901176704879930629128825596988448790189661438161125013018148772121747765722485931354200154393777224504168721234226693051367089934346859998955876851909775455654884183166785213916125397494015621722429248701719759685362082220791985434631077361413662193886078175743944858417379490983280636297907258784881131294543834784040267667663243764967192928173057951639770743241463758624604813342811521028770809973967759965492740947433486757313869791885684219599738208163819723489585488684685542469074690521597316737022305227071618260760032926844660455315935833445860332350412204537195085412267520686539373042007209919819197290763290424435807948126305924648984051781249025597154246389873203130029636936689194875919015398909151850452756037148817448445130702140286089173287912697461811118515835513156547506178431912747110401756372159249940566784362866485521774334715136373206489911012890791228080546713328043024586145223584486874801623374061190154410072675931872591647550029989879669364190596599751515244848253289992557436838919689150408439388967010574672786789189575468253256924626485044320560084776205745553133405845719287398949259178390145671484773950209957017464569349455007343073506473278397019724312097353073356521704934447060681625495979245154415301064325301566229021981403491670422220971090733422130780471417364429202971999421788116022518913333520278482283446476745775609609458508648485520164752403139929275261597384071084876353638650955299064020277245902386000289469910330384305348774860959780794770884495699036071128042574159599853797099931208848979788458923344693844465579486325564111867995615494589582016374985196796499091786089710812028571047366096446345443237982909001246231074151939344586838040556872147866793055258000940772815761357796267532901879497039945575614400875312600475974092128564532120269720969138023365809235757648674281242371310947194675879399179456165215296278056419582646279116048038740255459231012752672373100558073325593368005752069383574030496693634710953252812903974639612896226571076682248425918885807834211318961483232473755799445695124210312867413533745360243682711088781231352916136009556213943338463093203878770942492962568348834607858573593179742947486065140835068446892479974897899122952786519869228927759314001344155788449273062415715960981288772780003501046641715312740069687339216141211703118978913939114601641336609452729016295138953171404177745458896144872089408379284420438141470644192841432451134147173399447134513829706981169465253029046591461973002567345165530506585158719673112953326703649085410993652486330639596196959607647174612925919607904558376350347422086741090268502444497292837604450776133120942095542571603272135882394082048825072140501677296625001150338890200094965104261690721033656490351959649107157733099378120010413903180985178642967152684779383180855726622206691588697544141459045242738848147657950089295840830013479689640437725548441995889566834890573403457829036788763918253757030153555976444157567845780982197144292667476952690699858349240210741801203800892460008628735333560373151208603628394838433267894564737287609348749013945017304195197714692125546918493068278424731657488024547826170785964811368370805814569117813582236433366690698020564366860543227606599977245735833311596864033466894127953717955977586000514855028504401810203622951346859296007840223965905496966817817068899399829898317193058700200942650961999656747794806892957598503093104588720384055916714928722878456565658471853567877715090141415528875820914249159974362921406617268752720200633339385990945778323071762634263551788513401211447139831761904337573089408803347143118351368837931988724877837137143063844031437232999061345844238486249178105648730235496370464657467774231596189479926411734329886352388797947597652929484614890053451256874405136866034119874176895632220404400679643693113724889907982576268259118571718797596196240969584106985980091860950833454954152366928903467310356153772563915155491957345902928644360223358717242129724005556920977005967295170000511163733436600268106747858956604093581105542179427423298253559709677935510104391288444589521128359884582467299989341859041792415439827520025514727652059556798112035185380755327519093632702455535199025930597453595807146317139494268793944159382241589865657054633202926679601572600149785292551970156448550195211016939314742158002611083707518518321776043299044301271894156964507527450397233687201263648002470016264834796724273718079767167884965342949071117602569796976174918054212793665651900393013086881972599382039822685514868644442207862786834340916810291148362343698547861505247353573703226661885031718213956610521675825670016087606884075517487423262124434945569611413713330054745221704120902987998510946685723091426588837701144816573686031031692226652525585189344420069097017286863222625812341593600070068053494186282603155241428656796153932153274328046617276497391357414569432661780210576046187959470281720266464868546137774123703123163699684663725128662046418140323944283507468644964956811804121602606336714413959016482826684736864374953979193558555045833549846122722319509129859639416988657520099305282733127043843270009312945640112156700057434026884660232132728475816324626055272960151393674201863974125504236025649017668633410098354399622265190519823206626949181672732964974326860217103663201990686401201010248499268095910195706389417359179200847956387198427654762333053920255083943863560359235672307212439524408875625499236113627150017584832110839542247025343422110450142251440474071953251560062490132344360699777155093893438502888145967489946929478361195677238302273507794066442481035072756381499750928745199457447474479378926262976028950310020724789161321496637710560105735302312803707500971731655056102709867265186867683857454742006511121011134882695700173060467641900001014578522460761627174665210761805034203807133295627818791801640013078081407876056488290138970922608169767412793018538643554239935654360694352834483806473525384781791905894651288961067701767656559830897418256421743774894738466706483371201886911141579752569053537785681897069592542604653686155918182380427666065150858992221248852450636392553796175087753824075531111698378337458929492026979318503620453751460448906876545262258156885377205182867804343275780554483868230099166282595257111796154651906904587787327326482760500239759668095258941982964505941405081953891040589696277726539225578270701119012085372397165652369794388748315808002090389727688910767401754215920640358589298715416219111794128135101837535961918240689794010083069048397848635663091208226094374470842268595023604046138143275758085822332148140263433179239349569136315222025480443283441507749199631278682812594977802304866906370619745436301402518008025800097788150758334092310098403115309632839610582248715649387572507292080847266521656415642241573904993826884098099329059271125023668600626124820913540498480673877012946721791726407813104515875323902010580777826425532426166409127744019541053526678049889559680947133404229914332751806834158707718690643581038488146017732581954653411200716527704504578792674610482397618807163614090295098254035887400075798341352891669128599943800741851298530314277203929677152102728925909345117593516471558063801714360934795898473391612603705618438272511476617052262467824290205711715760150468826961234729691599577040571542982374758483753783696840708193197222708487095864877745200097075025902367303180358481561258800650780161609297680312131728525067083945578673534854589383462534967122010978899599820705766780839492061366950822173035683425175301378262760522849669538037061545796986075433480481350195444800939559079649259691517761544249710983700445461748105895352701264895153867175033071993675000083411186334036295666555528019324289406561634209437988697795283881460922303712627078609876009073259122456081739650539353311869026671070237967704237695259202458033061229424067327845730424221766507741240202809878652906972770584805084923866899876727316208088429076941391977635047400461494210772141613704328699349504734345392519238357717091960560196554894864116548755203887102008246002993745212694761598017657509171371002788552662670734507514007743865553783953987532337837963122386992552084112965993944147317250691938915762461887545333956939721395362362557705912503035246752669011917728584528720859630089542074972300468372384890438638933367294201701068911910890815876002243109150939922384239836852011894219795785920274110518211932256899807023602291449028003073887298800477611488746810236884535172724814401396816652457329321548282844390465691800582762413767616838106109202114475018652803671891695406349199890930782124003249446142776746001759811147293004499393067634915567907495837349179285025620807134996079654101175590459874552927637412788817520831218738774501483521418264454458673567387417090268863863529344575864563927247336958515713344711877557293150894722679316928466416706167776745387212439204679540665337471806792831365911137848847696218303910471776269480674452857959148793327171343592720447661240945643496017341315793201300117168355837395015610606460211692098397936473996753420987465677815149144157031089041488647471303628977824651715287933139118301181837458738127208677722273109481993898729997303243917475799927080708107193350027748247572399761878277698782916677647118800901511366860713607998681671046399676771547303727562868332600124806091910264299932880491250899745419606574737430522925277351371708786447083810736550787898984508453450027369131090737095256788478431819436545700739205697847898029049092984681166556171730292649745232340443065169384092490700072404018957235892791355682863392258027397934255156021331559246256607825501709830320417211798295391448013445875409782697292966119719120656262870553462282353277526592206110345543756557210955501106801632438923682730052007672839150118350204521175992645547700991084991628113824154533285221356344112807196140877276652222164953628361132915224015338411891815654363407179127257095381197785278675881030628828377157596580953038501951414280305007899459366247404554969132245088595249408086538953601555202582509116074042518914964989934722630581448597783786113146931979900255004520775943011231625728424641174743608188619663935884177064473941886453070724371826502318943492961861243022580309528779369084737144681020101565713703304729846212516321238104107071658526281379315712746010889213104745012497774615697472433716426061652740980574165291991124057819094978269614677428490440925103637215358149119980706363192341156945908980751504891885197030658458172734421376587843979502190774459221157120764035993315853576603775671473161538757116385073114728139285543425754098967796669571894679166495730765196854608080016079384363055256898958120198937058344727388207326045205150698250825974235529273735025043090109637447266705297459013016443029939038728417114989341310485028458396188191484881568829466251941815141926792920895051519976450832423741725400065933783722660916454288087795128505404224763109050825485528105824244800869103378473352430252055051795164107693468364706206388427190946531161145917991720999152115838687940830960800899485234671973684907267092536893989839430110982106743973362679165859271195463811964065900191641691344144127209128016004058878648392134400910925589456480283951514703865577366947613317923003146600593490269825463229340392146396168531778985256989935273778267121269727200416833944122931771257042107677790225790183256511493627605173065897266025411767189801403334143932822460310150708553682243374380662779211999979181262205410707560449972125497392468064126973557428287229847628029226688487705172471259254946588678908635187050327482663572502686613923166768433907580268174115246029553751935603257209429183207968263165330865409475810656796609423625275974176452430160923379296721012127998495213345458475381531313622063014109809702128791852999930921022360856872600451607053723128911137464091284433999018810540099463166004932186959562305846994297111720458948415057390284453176015390495319601205339115173031715929038212541022152718972806551404346553722506545291402041723185523368679239372219834292441185823562578203554184320599593080136575053243627104749661924550426349496996105149653391467205344230991472501757631009838578029057410266026825841181616767058661390465205201105827424894199158565581803897561544223889589340391335742546744333012113217063200254895303327879120808032330278813929090713250143066456377221544213512599004702246910211424892735143337293529326185222613697837264862809558380717808288437004251913819029311939522803984513496107832718041357324976162920626013295862580905596095581818687430742240330556390213291934569728567215849918460779988560498715797441564123716473352654223359811539494470168664772914214567585250610836881232522596353274642652635407156006276458160810928243696304341377087463150566775776156604243919404631772583690944515480987207439606384729567805241618676624714404350987225665657091105799273170669117351103641144672853200720000126340211582668505150284507868499799195510015411071275964693404778661595592098164722064222303361574239316480111011171340041289434159570723980881337920062919561612686118127172624482637400722333644538110996554823470993261592340638078123543203962090825438022423161042582614413995568248901018011526708979133851120819519179339434303298315919376276923662367714906467442521873283380791175568230991920900886508042146885572852434019886349698892788536984024254800296871987771917122218967990685329197082010765454655131384216681185005849690271112617404457237582967229064323279925767467941353848581873480166846484338270635274959864327074770943721635418603663410056862998471358199033659867816134834664880869434795999483441452478768195124397479269237497003469095393400317897399102198147786047097713275916306952182822350002715365552849609964975061152884199439034405189813403593586135131867214579810123190956359472894110538200413628985570705157107543509279895656574445261677036502712211204542677500769858021362894200211792857091978753797357183545016949438725024398627822658587425297053061563839367661073655314345461438581654564426000918705644502349875730993213688203905405697603353157708024445100653004657199128866431857708402132937782526566211273136837957063391065294926497330537874740713136444482317406425444023248498337073600237029849810889408281484329219063840949476634240863997850474392933222621774455566852469383763856591049758025955532476604082752651495634406041176110201714458726725115931563664538324019280852845334321952933093215304895953601177493248463482144084657385791572088334654344974110727831180849951408613297486643179127616798317837534251810073885689937807040324379382854874192165958429917163113253575723096214920509406101238312296971781988444159138671555028785625052863661781685320581291791256892638877780324461983256064959980473216790739784090843566729920226650084695236771208723278543193534099569327055002444282752426483521345072071079622585772347478598389650722610027958887947853062749162249304726086234089330950424949737749008727420000701888677663026612489478062161060972593499084098362874516524672452759586516149777328938551908903880375104915359130345407019887777689792267100219734911057564123950075032584576333315771152081786563290644963948064318986039067280055080196248553074878205569410205876226513480457427626991438707083382285911687485156092442218689077854744787479052595200974501021484528093589226795959498233678686373807190479699076988004279800011503958589553486186911696179008483470687048010808580655635891078291273527362586908897675612368229057160125088929503340914688553775716926157111578432485289544925579359240247154856995849127048382715362683391811829991881205367214932426923149832101947110607938676872258408694314777814513138399349227875851053077198641710040085586742936033521402108472338564220849658613311371982297509755801436062557451545237650690080959282566398497794408782714050301565651758315384993522389313541906260445918499850303330415159101842193954789761085567666183150626451512253209655378433523653241469261928539004841397056876229249807415483991696069253533073939985974174723579745832074021293031572074895704303898133376877837892904312552901155537325540060113424795323862064370058075018396347426127856929287098062685205137559928079879236040287362350687230587031709163438707356229245399925964260392471847255343419351137154040832950920413167258996325268810127545950678968509441894319937647560561228124905801013747391364008840227754547348556667029794675513590193111242170251005561313627263384672963171922436034179310522076093868097553793416382989112317662064068154558473453558631300152303183247409716026334324177910370498785731704260508383091710709706859320298113668769098952147856915541626952914173507690534551470785762388754287821224683737405323293388250257582813002048716261656674052320832916762318136156574641420827272911962651133909470155059337900830609837207743537304372305754357142264326192163549707953162394807750452530547639801875489066889648121730406797042591516144647069413886795324336746079068355271350303370445155015061099115988684146602972732226745177236962895631484500655554538531149448227696704000418803703849710540983750506107883568325131234787348145398734850153333898286310355818737245897909437549488240753786998503824756561279254893949957361895677529412639772874424794277673393145258373496266395164176318084143241983993202289341170159657457616570148931905341317353757724890777121837324313463622096307217146890123977414281826772033897802263325587971635015272574096973100977794381916212708829864553838871409397104849345547632123930263048862658589317829780144297918266681406950349788149225679029955013138548602207047655281748151648656561158386113098603208323696925920579328995144596667217335787234388247727960771162521375570861348243857305179548098323813636120745257094551002919203823909651295250476997096947766897841410378864803117127714514470151541402392811865618217634984614055390655921371431227775839143863016598411971889864610189623180766675241551410118005353782310136089315740023495738734519636096183747339016679406402389022824331481178909105424867789733950801519855106475280769744886200865719935456635501703571855476143197727889571777771773670242613577685778712764417361861150643178629556786456942058141598957115611397275456846085821042993731092770368034239997654157744581920283263266057120995535345474215829364478893539438477872297286972683562803289455190762975378907012816203314301731211641097100671776676674591957541651890362889032996958787966441441901924656234219067316882648038378085877047958380234515514583800175754934195834023564225334950455946290727798676203023957455478223917268545936344647854124031759793435393266657363787940954748545412050161427921031418256631608783257378188874466812725011607071924220707981818264050916003569059525226129289380878236479698003320364208842678481493201645620896681167787572384976641486514277999361148061455194341694288101353953743832593705417588284681876150917362423325733465848219238555542294129309401349018176891920683977616472497428013324055615858384328495970286453720807351657962769405162399171367689956209616361761804405457092990257189669883114001864378378051574443782986686429192006292997572376877702536754686319661163836865889783354834160054895054390609685584422030514531630825159482907263112435890311065809889475265871594372074754165687462035011808243593199690811815584906757583394251527635174218750867294832734874493257378119838663118587607193361219063431689988188695366380679385347976592463446432919825930348185874655889625485948143908647113062498081523953386009239260574155218395676039123265373885422746566901438719206574003877300280211530017897000977777124128226401279952194436163583525162107392990847530901040284023514270528251395952132996931089148231940280055809482195135907832503188293728783919589016959942456673888963864059132527875546250513030396174477970306265288510414258339419349299443915238470748998068042202223615019892132362567555962642264241515347792071502701264475979514857122061126807206406136506330371013397816219031199914146364691253485809965640095945672714313224771681006550542986803754167449280210846722599046976765356129706803866050321939966667385110913164323360214638403521812979076761584101424424400312626326005633175147890410664309670164640089204530427632183160217278521610987362670165604641831681101631089699327108806065817751279904002685515560685473862817186395272289670960115452034684450820751519814091942776626698771664833627937971957822668854033913838557125878317808136799009640670363741262077065959941095214508530550281475105736000069387818953653984418101662556958144322435667710491135913182589420611679843390101267428323267556980015459446986861370957620975304960961010767666049009369808879257286249938552896851783864632892088236657284827505816258113911438115941981273054910882693337627585838176074122635317656811664233054452108628695072934075130218595412283664734380162103257155789592909967375654771150273464841012359431851490721117999783576396083292090700359859888686089070691664348107335128615988902141647828044417548800833242642523055387011181315419323621524891574255444863626774171050556816644147073640295908714345313592817129934181712870037479254501465726127676004259759921338936639060695535212813201395578653519915937418578432181581171370258970466726557051116461949188178397867288912052156723982732688464423144488513445975501456290023782283216759853101702004956148431045317405351918220995930706168841610115964703884431545946022964808242686613513515707339956614593488924548468894898812577572836464942095485664936639338131052004859292137594975429309861369473357431719167344651644535642227501504357852682532842168779414609235365300301928230569250261948417596381642049750615076064822952151594930846498850934157223433565558119832489109354198336112617901121147784759913684318160134434513302977072818544211911477642937633970750507707952157862731642255206419633203983087975930524436289508981707909207800777582387732302090090844000628187769721454851717906851989825275098898663132988700676309647631960143964950154728838360898062638867928505269491085694166982482300876634650684716248562604338808424324439518861402062324742113438494788771788730373464123669845672915171893433749607140015296886458089300878357562317602987276915951755815078786898398318269500884680308514346218908144332914571067889456031661696071598865683084721171824145626922768120306585060422300105428375030153367662834384975530026359162697854467221856543439801885424379905911669517095107177003067192314286154851267278951408767530819673590116211943560542381902653366155923235525427680702868839739046486344194390071021762052294109721340132103697600905028129034247175425490979710560603221265362182779301468264515320436420426928727119455785722459582196135518704180675159704203631889625660089006413699012188759447617393281379733369742328831715584306421744695511898063649780188637016335033465617716350784204334450575006439845143074741255097467776741539092262215660618693763896501572664623634150793083800264530795621324703147874019717706081973453394554389297341903972976689867290987264055696397702631697509288645829229733471477636028966611054052923509422040367882983559007738430562268065559545511054113228357296674321551768867567747883278329168701181404271479356408477084655583959502511428646997195302301325883470117723889033614305459024331076755189293814384653676417168473219193892592240059572328762192288653744326118664311907458415199813564272442254618648217276963912366430573273130469822803596160364409705135283346871471138067745268755837891286406883755464131597822612096817757628748844387951135324816109516794500622514661336059562208702153771424135371267995818913647688612095869205659325180926870336353581456683162481363172890433207652452533015431150827785429762051737040494133040214964745049101381509602316526434727527379606892584057766153797913246031906760046499191704076300761717771677900285015668013601235412613933686258857209735318688957755741391197127216559658114563307992814316292509940699444230669743276166373710340677121395240133593914895245800057167314109270257593192456252048193103522540860716802184918216256583134650806910581904148101009429770114732283121598117777481535675958242287777782521365892311197805397451010808365136885644440663666574156997588273818698660642079972871698282059872015028926520428456156505936577641993165935122653362186867595741194035085638171693661905313403834546911190277519818593453679390601933578615059821292132066778474978633292716455023599592160189483818714863547270005580815493561821200848129503158287174589845506198016023842854360312944691805382033167889661134532757632205424015250533591023945046256365202385998078469114688188313700872078206770436299129473884802443668526113470234103280836946714388524011478615734460724404330601337007334831928963838203112967843733306795504828133655722698541563969992978772241348499356601303044451109013047298325728887684019851653538027170268638175746512349474168237364513779860501432738277691526237413945510422971384676786195050583384445195234031356362816614659171793970859181044356228738546246379801285903860795474875809510290843616690998645208614645674634219837523768293297781630731951619455747926231661222495286936051720368846352109820642052299306401758096664558608022410141059530696500486191794381499488401480039697088027828380661093100539102687020360445799769872266631393922037601555446827404072732391054217016093292018423987616327605912103720268589415824555663483417779253100680136682479961259174959972331284135989579453837260838118421024647835784159759661193761818474366312306471823932908711774075101534881389168347049646553329242419213439768102570388895282164079349173503142976223856888790439718678119807600347564069810912745207787636372125332577951633458270470463715637587801312677871880369824338627089543812193388550373103997623295571789563679982295093297179110934206551422865306708163086058743716666781777416123264432394258434463437219028789613771221329605136561558875465035098947197731484426070488128042000181463634543567267715796079287803407483653418748531427008355790954558767949497894384314247621346598455796661348000539391684086373703837311381609424505230214384375507963158339911194661515365938668038280440232312648607726822691650937251119630682722519503433581744731447853011326713443461635875474425001293971338378160644716450223035019028281931784380448789011793580777750221849430546913707702853486372183288016479219417860521107443884526596933831545723561844476587523036383344914624348071154607791767905815822389157141906261134490607566643786196879826197696092529331756516279866403539866341016344647685349891490227598155012013377407740481625925750391568888449206856498137386405547512156005487504974092164269060946798449628088669703850424469518581493006834827642194073133907484831019242808749082608675915081330291233166361398937495368540288080910185399582395021077643137751787888601043935813058475787889328093597726575376066280219064085601364099668256706189208895837758060741855902294219795160334294563568392792384844404153526065505826307039195425653017113418111730158807176531888177869527005184074230405406666224300676902136633813462881023076416956575166390466400509567866120860057903629021747884114967877451312582731799172252894095039494175912187909652950619136375187059390457809052427731399212132519711615462042946011895707329915493383194360731409500342057912474715291617295700203790542641097727555279302478925080416563706247425622171697062819280053007429243431721656105950877148004202060979904478236638436924287460077969690611196573029357391722158677841630252617057502535370485119694866785447175653904732132328134032462957439915836821345843361911089462106751292864902891286476540603789774064874881130910100218692932200326962183340270869517358110644381545017301196258875634747352923566657510664746915729208572485686826890512421567354253350688595649298561961924251643754222103911713943891276967614269091449272677168596432346452894110391231444490381688640750847284134073722893163742260653564932193767378992357206255545260421111918269779595756098931368831939501137261109400484872842997413428353983060298941846809530518327507201933570103317677617794988585994266097733284663616255605851059140051028111735538552329275363975426901165631313700754129790063781428370592845812678733729314412093304895987172530190514197250944056111631220289323934624341310039860628829598793542482717939198743244111143843623938695427931482572349140490674291375610490020122224931071871470585981112774641571126646295738475889244575680606183435673197896923277310349341941633794589631126291700719014266607452482644365548812802673658758037894511839582873210308560661167565302830922405132917646448035210589733703780442503756520651453001175648847986163612692763594029234359241919819803890831161830133809969113091842251525163737702012089972431147003194479657498285303376134397368777427168197495094542031852742626044121412351934300632925499781285860367300203638385432121085423368169484645875047658965780043688117216323085714998195150305365729959743493536990837907363569130330365953471295903006288469303475590357735771756694845989507491008989082754810019222332930154708573252322872540770274772188717176559568930351612848708654309325478343668263040061022676730032296424778132329248927425139845792839221471106237948088458708844966983987468543755083923214392017369005801486983032082665945195735950835082415187303425586029505725118656471024366907440057749310958776546042603965664757242525583880513637478820159697939345522937017192693222283261397811926753208788673625489810280970072797177628750285482661363488022165471531914453716895443008113740695538840099471932327575986644790602361247471006958586634289969326070611327334819216475453235222708781167170128503735879995678839285748859842057028075631602944659011999160438932342363089132702591714686859239605425545843897069981798590920496676366374969447302965901029693439468821497825142516078825265711558993794196384836479349635283045140976873818531145938747286504237190329897664331154348978443451290547661951605544439713670086564323395509399983883010275787434911312330009181985280095861312280042608848993608122348337307010552307764718163841548913682283641534256771392223236155944171339734329951769853228037214016088824145452736063399331816421437447339322662288104877349171102417833262187789606166103360474129129778205660145091529664925452949411774185245390810575511783496774582688238604897857232019755345549672338897411765387200723408770592019226244205067183750175597467375146182647898525246604113647350300791694516884771446518406556502017183567863638558422194813880162812393465008658456614061247551694663162844262590016578966459300163692373479393324129896264187982470679095911472822743373572732290055108210567818744592609277259848731951110645163296125056227109634745114528565247290864184450730920169266153056148450333618733644539918229104623649737963584704323262934497001381328946469187165289467794797008001349622090529961670190811465318197402561146566431745546778738097791242341307021531811128710135404559271116178765327158104370275175829190672785473770728498306803535872835461324537887048385509890398417172203078640998996410067363079191019104458328907613389471532911621420631753795601141561998526127549930617343129671167898602470918662024317214409791316085227782399219309177504247049446641206272182290343387889321835249507132453948565454249327006835595023729411252514853350283444989439750355042814008936348840043395252786306978211139318356246496180379128268178275509554310425893614559213922100448611174432016831572265564600432483341695805545036841847171425988678272866519977785540494386387859719505021350020418627441816015789065919813479231616943477378502221573567283468556616993131124253742532012187283551091801718940806270039483651073953208258903822489901247809508947015685763850336910009949865059321829887873771624205869182224513293035133946656386390364668619846331099606487285949616063192037463534555562673028274786510392978421763348972469346823151805682177837092417660022895929441752069896754131960886326597428262215462514446750585821006273660058120251591419556656510919904154190968068953308468961257075409777647074375376120160723477202604841939691314056421090325129650745157765012389959632465593286429945359418645290933080053964990612018716012654857830412697591168437475463265037055390751029279533073311333657269084365364165722141739361190659958121518164424361602929977082381054605645666855191662547193935597430838500379276585592217812899753000868476909488017538384136959476579329935748851931188369209800229620296266988610799696713305693746646565158347813588787841547483836761787663885865095721902022192456620234264107825583348230399658311758777982220198698293694389256980924659254930298552204176806946999235087740826696945623560471041643178577349730133251071651592646328114849655702103854418459312482331654732033762768247351678810159348826487924509755862192128005098124635040634906082979436791714268649116504255707208537274091575444688883481975102996946354261920855333123029852019609660562839690695370421793385450085226950595224377742623549080345729980226758178623415295915758633594562933577332131459407992973086534011961149686338086282694925829506493940068318059065974705516568922523544670626081471437031044972826533788216023367188466883163466841907926000229377058527522903616511492504246946036452820484101766769121979275506876874794267436017613107997304108783613843491550782644320542755049057512115883956381234529992206612921061880791823950843686675657568032056984117628839556314377690784852818734813998722063942666881194405194972424567129398765264902761189859842359421886029884676710429370356805415793936785568700550415460627517899270984051196697001879711723479549518664250708295597108447256514268809232140041252368632425288488270606290402424388891944181348080325756469260036954059525759471523423570967755287622300037048971802734404379246243711958958222382656358568041584662085038332870080909940025625842773957792295271682762527971871203116021796936714778395896952582940713661706233227393794132122345973928159569137247709504699250591068997333535443731382991994685508919777859763601151016032862846810668858831440095824792157340452155865561375931794111917297380450212633047697946277277621421900171766381669348888190475195031660108500027728344697044722414450845669601072190335802866761819650365284575048410195108939614822768599370628546688629155075569058311180514254853546104715861861957478476330008154239973487443851908218042081984279563770717795271763995131357321781538310654048861792101188676735255437779436974057008990567485922531880088155196322717204185986709196228926321253365889624773692243796303681897021539405127574235287785862516499954298421446124245251882450372525925019609838721631968344673082744852436693523395607034055607439206287229667476117872795833279029379496534726622296973059983580403406725200117603762949441237750009863904004630644631744772407481023477070124006040411388136094916234362328498702626989696928198330685402159453202444684004578013043124102440045132542462773481789497363687388296067615752264381123609330068551541001958764419777943275510872589230430656667706857592998168919199552154150360884017151729643359880428495768489302714366744442495145402217469844484924628504735018864318591492742675573238963902836017776248543448025207080294501275098356638576255449858711420242176217225612226251300261741882997922823383960524793881394177858536566657034041113631593090100969468679161862853799276987989460245182219907840891498196917252841322674255590818940386313242884864849522974007016830677286088612460906231000859836676305693556995878646472310915604854324732925768335166148748613492066734455101531233216730527018586361040782796359510756601910073006831649137814885676315717839996306728437924751977460454130446539006075539090533321769999361838508913419280819025146294522265939382572393920671994069365763561308383944002001221263534086045778709698827257898067681426100980577612790563854651679081678942380806824771181756756311126753124067937429802999946204163788259410675685767490206961902883971132559394758461520057556600585013189543305103420833548576544068391068730918006301121757823970280687745949269630018218573001898310568173870810799037472163053884455428153944708024277775484507434393403839275288618926431647581955943543859014161851218450625281983802273298356533014654411798444805327391559399169324510139966062016072071676654312499804064441670123231601923471998963101027095036810693376465048341574868502899923740694026979125678987028735612422607286215362832206548523216794365753222150994628117370314245136203599562069271331821460638696078765919464957218905308166532092451375563283594531298847921049340131349943560932797908517004290939650019061548142469971764260818739048402346765010504707065363092591074602631137886807539922873098046050695705773232876306688778165984185027527715844699816016476274036839483797988592413627984034912950920050028285999366877028146893736912185786868606468095272332568723921931636591164902878211384806864244135731309882359816389865326946796414304851539810285085352605290527323833263643526447812357052165503496599460003437062353696317775071660818570099736508335235571917324973871662070661795823552942248515468806599562178639332107268841611977761089075471348098861233720565400234012255195481957795433757547462492138623296793452984901958809060100396109853429476084391740429585642180490437379944979351160877533397712582580017235101831916616797535289244061343854581165181532363551191949807612927414132429583105147423698646497095613777066324384443890551045677304277973448386508161666388179201506678928845255947336723960948555371418881058719676501734265333351250105885335352470574399627770793710961781127591071909860612848734878217465549031140855312041316280943612245945022759485701922970577058319873885122574027100379909244591992266535819256526807909191824681877527665123205054326145982703602187482445573191616443343887742004089805445778680204064234546179107851946042455500805035337355641427476451550264421454837005544371288261796431470107243628043287290301676597756102213117288137461616445602115716715944185130752045772173459912544428980249795378652665611380776270651180798669353321485956860862187372995017325581495950796635128228726215558802325333357766460236699080244865573113270384849952164699419606158549494851120096957187333436221830724755062484635895752643446805996845895727018312018981653621727499481614535909737079711200411863282471473460372965910883010806547878978376078846241494420432636858310484881768295227586472910773532568085216455329661065454442461714772179093598989504170813054083148517716080583411531493060965355503075898776784466615361468968158055632034663728094975476509440029610772713280097419826066318200252021662705111516661427139946969971771623717873044921867838627277969590169949039423582601453676660235812957844484444607619336854367109019533606606876239559729312554876394568383553830230301342709344199683996978743811578863813399883439768905400455611325153994314574631181234286810989326615947121574382627759395422898207274527075367917759993326473282653330980055659278452112117272733179962231023422803862815787098054221805451939029436288605376998987772615211239730954653829354894026522300442173631461551296628547771840342197922710690227214414822266494457269201591248476041132105946281799726712218348933240223276328416830185151123633174245676431619351080174280615222916920265691220141204561757814500876210434533152727037583558531761842394756095795625292674379970660455893058603015261590936196430928056810972443021677230459238339872903014310138529287825967598093833001000355957237700658243345044555291181282379905069743145488132154756667064583326223792935775532610468938187811071706261868429211155129338487512324855086572631142806719524435644448499545440828048690369239555341172478646255549697532252293810641798389795380741121210973340321086683959332751712121751585201755194073753410329165356808630091966184022145941500240907997723459032452570277941751706290877707098145094838094521386209660398089110181409001205464943979248237330988134729289312407237750094061531302930020635452739732862348750263965594543822291420355504658421875607075903988096746770882641734591250745988756032619126010284462886573097211549760230190544583667230553045415301462040378934487648447602248341662693603364835221928554122634527431429520880444846874487268502781769249673231448628564773613695266753184194735317389662088339184247074747839322274740135041468298494880555403067796735339345796173981580095935829795060673032605713914868110236781658815053821562434993003677065175857997015355638808231866155722638929130323073553074458923638920177811409333131153027534978677380747096702152697120177343484755291563932153941793274362746741875807912554092400394055915987132219787496801091753471531466881960990782610388694921976391943556316602663084097034532274677614238537602743293589155053363284402408811862498893048575433508601052146642911078553566996706012692356020344170452120554416608111957780148386174943829927030265674389310510298458126942413031476858668462982299525624133215330785592604201343072283371161823227218201232032745825421659723795240174578874818769160786519445841697126937526581468520819119777892790856214661890219181501504264733747516572089579095383859027485798597229224284671299044817004948313443965597208439657516181394259902025509063425583823351794071561483440790852572088445859577326817539345044850654845231549540887633215191741088640957308338048987633157096633963071425036959101157337302021289688808466263855615809188381348243365323528650543326062171281778386081952364113454676609495039694293812271423021656038148903964582124841324281393680387050621105417957067443432978376282992184278519305573433257544286101045403215579962776244222495992965841143569753055950193371367482981502892209960693430658795036647516115961716842595456691379443051768582266598725235092426757765838082011326915997518154083444123467459528985324748371366321311830472818346633682812308202685809652543315785129290008046907606754326468127854331768660711710433695542588564037577620275181913788296191050460632725038846258347167032998360459648070309681829298560108743073151041508200678589381588142032194449620574808926758668221600447667891381819177883772526526358030110104724880643213862071154576662260180737074424851454406186231631855398509797220374841687059631123173935572973191385207596487986937797901667569805892399172436078930364064384310090004523177685032915160519641518488712694396016515830374135103581787405557886801576147025428106638006633912590815412588511900014781166008525508006715517544643943669461004438730264315167204091608551858270278557666544768048948320906135449393594074417250144848426556457771049763789410710233150053942057703561266263042461287764274930945902878378482771714689971924751298074746158431980462748324502932839986064776445558388387405896652124223971312770500553770529774672647633561260107227210098684877799546475295021556118550711802478990981418418584890116256790984352343762693365686717593478359829777887175806295427397015994765726006064485986739854653148892910579675580044622894365377642543363432917792151886610087740753888313044612174122008188197708445492194874618220971352404199798166881506909319001572039301599820922179108057075906368362361311383348466190789832622725213860084801457722627292313759207462235028056262684604784886488171561742765057067012655434594565777280356058052951364667045184643992706267904230278015133156518295143658005920541830391869282829306639883987981304811170761667694177423083782326164400804455281841863648125862750509633876613889443116095668167588884936254042374910864963134062883774153861820569858719174058451599708533999302978384268333258923215680793260771817491635157063472730211377841250731799652619198839635978324290963867106534077678192727971139930871616027234819065251889557814086320014977596686827787780946735005266015744752834841959353671489445959741978866217278558721663075374398638926144296215685226497849383641413844012585160965535935982412957014989765311890137419640647506112562980556121243882043019925460564132078632065566972386435959190840523289350982874365170812499630683939010044170233584574818868623481255026548242206609229821382451999292273180805452178751098893316953127641477706276666747325740359072540661277318981934645233027648299471348776979822863486507912396829046460132781721682325612786461716507551579670281810209721588455402078315872519859437990958801105518847925153737882903903086197061149380430288695819573926594572197187712777941997784989497350067151163783354391424243825085572196273315586930832526481541874163512087464995423845712396742210446466337614550556039097084179309336951650023777664364852741137801041892673515259124338300127439608173757968571726893694762690723191473716197811848692818666238602880906423321660979309244841048428753959384925373350645394984027599343619216074308819918696512281307535527192327647697531463505500676232030184910992009399917847222352890478850732060691293670569306703608534376996081136110102909066867398281829031102783908144835196603392575758312942979127533368604002408868033920085652862476077563817841116493092346759320938371320620802052048162926070457501148028211616964122512731022536243800116600394132254822468579090707149934078878475393446161388635678747286386887169666739366397125595043461674678567105340605794210006856620874549201951231922251076233123678035737232067747340240335659445112193820175672863112224524829782598449192301564487224481779507159831393023395600583021423581620203850231958974122873262157960522712567241003876514158528295055502239544999957675696970950305632626063407288071548312731748649072257868675165146524994224288858915269709228201082112478806417964002453386827651911658223952045662110103146078721305296644454419814646341427089390940858434291145390623702098116473348219349950238681273195103078698592203479002782054500821125478133328451410884452802007149201579554452229657886627747948270128621806578795364199435031952317779029357373950246414710923469122159720788491360483322633335763428431906078759932505998445447946848945492347809124605821116284404451641856209365629740826924591680617813347099829877183883984680772235678044924842064432643424914570073444520186495969383710903142336235756070892259898377729702608545286788885681327926624127609838161175218297665401446558372073959952170164963170919319406693876596571207450445198354928411618937772767032200074531183100166533279215887232733671914270850399409608600054120711394300247493017648606510650576382761826297669299001080569094566275904495811285168133998648041805413239151990078685015249497738963599963056207251066078665747480324715720543515107775803081611998254388608408102039485827026424371823243604900301690933629262515725156073402773046462754544667405905737396283933187104625289459897301275150034131055240700917399482149620775987496305095450880478025777690901186924639489906047968987375646688288395114890131689353395883372771310053003361150872503439129697421589974139226260808007115294944532698325104790483909743853205486810833553021330444841845906775530065468474002757092062797557427933626657317555386388091764711411086163075439979500162760785051495297499351107680744873506755204398934245847566098395573484899631899681758551461452244397827295976680739656725695688328943198590224902089835149658124627304154165583338336593213595874316691611946407742673862272210997699076380060667223455916065840625637621865259773544288011934411856938569290028010863133668192420349526008040448037092262961326982836109456584069661508694559788044595717033176923745852195696109928654703190367961345827328745699890043156254882033529560940860895250164914179405579601977088438879929916702504867150849777571426374998844556390130833552712509381597083408717693244229169713376955732843413957000319761011772404834203826880438252392890292645015310207644745146729962590376459362460218878838182560967027154129347455196329574376936028572301380524676627184784724114623162985218129103655394913725978353496484891375387735915354609365795368555567190451070451858991491452235389437472100376632953335583052269449733660962602837396777636951441018537791780302262072343499011432168712718191208541191969953050970381580522056276706538268182540949727326679016169722269787021402780412928928460019537245453232907840863243563614285023698213267466471698997696046421986429717521777149163803012954910080744795314657054996347104467463829587051595535288122047664919550387723473534056255137031971621163859874680337211089737608332958173080822313930937809176925796341644189988840577324220401263318141348662032157761886220921295243045761685765405279659754107568868359251449389177224200591060590088922385847211454982770196733209629186052951305314109030730596299279165795156920554216362151790760112732151297120825345094594107397842216274355033399463202267075784314489118512256278554994905217128155175318088133514354204017995169981484455058381621087606259002564336045972706227266795619243868508809103950230621070239460769695397882735700563221250778194928713533390362086193156579344109877493752974663869623431850919086862770724768155274426191327502639149652123925791531016374583813818148302191986450903254420968555476876797616867727454297698829879895729987399386485660725920171369515966885053188939997850016086111292296447627799578663521933814531310865183368753328849535852115413966689688896175285357808539317903035771851498846698633685618633075407232825174885163821567807837550011472602837808866447198946794829537715486571725124595615592392336725652917572746913891948841608681622056717149089167096698263815930043976603313982982172618734389963831220508973505736162406049729880103238499705400667223909675927177274036564458352721622690483911799990443259668231656464916487453283414298798967769611279118898887750737315610581557296259819361306604240046193650406512354765584470564665112002399268500851435688044240047961601908926395988609630620728564319358247623580635869259105887723610333476547949124203905712755853456636988232850347550188477453628673710877210480177329784441947208104551094619609786949185346578371261812758588375035649551297002875377969215818857817261408418808277707155284963540586017133328036787185995224349680764165874839599207331913186335842906896881233395915496252969959976509923199674700787741140473189128933911447726033973175506544758726847322700829518512340130201734715960282428769343932018077399421144433266329037702783697676217231101746668687616794871148137425156244033996621892608618075295969810216464736496051477734831658047059083352786568481018230166994238200554857494366839128218445605110533379495718286513131323541806683847214061640006535111605780382158432398384203816213713953191798394609394064392653179332827179481850829161211042009347033199728030681151359828532711743211930699194645708219688772800932376393612508904097765487257872611287606387233310827564141937781662353715097428495056195806381579683217835384774861697681867087672580524310043265675295116810217367422588915721304822165491468517953239011313556511005005892153444842396415663678380299318906305166251498332631736118310355309795677853914663352439826711021276032634702241164179556593289681337521205555043540344599468220015311350774419052211740550638879802709713241956120141884274523289795734330178941015268443729225870805902829624059846022462920342807557668353075231803282825590312158740834354589990066356802375954376506106998756611317898622146374525567804893690898208929423759622450762766315002707154591492860808691788015765530782706561264761340994091348960088964927106648431087555684950368061765044101890419503961672416237604500783263568767888059321809470945971615280035887645470646030542022325639737891905851750907597458120226769137524395172811924424620180255235148853709697074047705084894384367664662253408822806022060216742807409109781648112240297218804330130224390203421926192662841029601560952208771310033677093432598620732739327805496833473475386780286538232875618015442461282415328464045667806507466444014150720284464664685884783839419733800664264547377503512156837646116647851629900204859679723390830065373307329990665465525445554391141673527638690127049869817068966668953417791692080936825552432194388441350326795576937770534360665002618130248599848739885077144505721619625148765981808851600224895724995692769342206677845609002829829831721126643173700587664209739116703950720562711591219512963318715119920098921701609196533736013341848635909741982338386879363005794427364377753530477832681964927088727359095688880161495970438162938239516944336382551414947853131899958369673678662877200424333216115917713124506423495887779905636775097075003292018594854535641465610773838884919008045666526176949414803441038543231787785539767115989588302361402777292012641351535605180023376730353700312344415585085495870378700234226718022151206784106899932262830582548998391349147080677203402759952536298249438352686192345875088182809078506423773589917897075935697636571904706158182837913146263632143784871440525391470435627927512898949053704895320430122352292306070084718984705174290582852005954054935589163148537849313179771202527833674367092745012624350849690042959808705588786320225954152291816727876733865056913526646110757289848319832967596855892773801059307423643614130113802592397985393436262772149314741795751879153106014116722324595557556768267192063895816465043739671035183342322520480129873689188409810775721211031955116148468257417271980379008363760168643635606833254109882436415012235772991778506718222014540050797778792246483475841350146363362449395141127643721295702836470641748531138245510967519390664401803213291618303409926784016463525546030956120584538783532506214885359623379692492763629335289754185546774034267284526429769237572319789350873153801988794238510175086512611783976619707287766484619607994732228704896634454622262201859341133256497689557210142876755648030486917487197416572655569132986646827889590486036516275339286058919458686672947015561841383502160250098276653617483994241087771841533294485393405843603754184011816020318819250339588779849428633639059617789480069259800649051758143929359983675768471441595570520693753215015905360554865701388400450072835161227628364265221128033543086301703328683602601059344344999982039048282637524259091404301845964415861774714522169174874839470622428134362071834073462078736230240237904744756966839601604581276750771643878209800478169535190342932251610991297659449361681893554605237868073708861927919250066370283914070404953523655110684545240258380771141769932450576452838311122942359213339046643522471131549294180155547314283359525674905549402643061342690498004803538418624071009507306919982444218728638359047501255124809242472300190057265677900062865711418142782754120126285453355104202672518275872387835596440542405877477870068917134790590334917140214521210274200774449282825708252499821234167103704056611739511326398054026568803507979387264037948480832455969315382645178072804201183207766537336584385722085310118532362801054498109782776804750122726525486635732047397360671040880176442695985204342645037257513227327307996294487096830144592326048969903457713000535508576556997174304817568117385492022926215440800185306337461068359405026526837292023153030425063197264899305334081232898994663003012803570013496793118624289003045108633313799639274708358325178796382270071670934096955857307745196895488967275759361054520979940061199075003301249759941059408685813949731405798193309104175315534546526791106282825735127526200419857315835020571086742489237286322407610181786514288801122526978687668336466195242594293268926178886712538229399227919211352659858750419568130458061339999501781356522048758163177962144512829876410838143929233231942530400480466685586873730046501532238025663203757071818287908152497552408667514053479361894054437660985987302520017425449026534100654581479270255513032927654911691102919768705515800493883553334939838405079315992412705454700810044032770110292346524261393562961156670290348738318072256270310646373825986218385654094754272577993858415060764644717118938395248617936368073675408343612028289958331723627760840778535035087991792497822484530022033250985200993643080727833654435140947965431345381135014412078406927787622851486362670041892225261056126543923457028416288497472898378205999814271699290898895268771196548820150700466386478780508259026791597630517370305886029789084470127669450915748320458384526425397419716644985781359092306966933790625030759833411254562200716095816838223629424139202034592648592316507158199938856443475898891899042480166995930766457253726619523631699565061747428054862160741383937877809674876515892505233139882070110285234212042421539865513073915483462154624553123675900009533901697125841043767835549501618516237829453590968525750252063171898471073204787503830774095389441112946763434560076474522637600166110044515767013738884218278669940945245692501117713338668120446059104867487710149974955628323632669942848936258050807522835866014132112208137209042836411746100654701051220942942185504765505319841372025046695177236921885351368564521986917384727595950724117679226102485810194841186701588639857273716077493598989250531754049205466125657829246461434907144520493213225714227763493887073285105951387963412136090294183151399158069644865217671348068664397842903113471353869921542266952490512936422259020612807886748504394631955199529671136669362570953703639475135003762826076478756843483346234536916599008491443560787249272832247137631904725584234905799034058795457524571167841603034690851027175924756805548467517822626146018720423562903732239217136616413100973264315183669018030355695268295418327822041321399094031714450495419935375259828457886110941056625965226528167194178737076289017275509482338836738664424846785555537401140870581382869278264772770129873109660768022896997295849919783121212888510765588718523894267139519893629669314178809970614540466377743633053834314437321169060315908821499366010494708980710022727331995275371323696935217388102817027220045839172571297410285106700842816456608352374503873684702058145070029797545381063252265350165719922248876518522556506664525787498080887832837290693688288795395321705549256926148987485101577723048455180713069641554027082665695177802886658192069397574262785671494960375819090718238441133943840511118313110902375811814880461760610408092781374699632543526629568137375161593841111565100394210014472803539226968592958768734136668518913530039422539558407544947468096201174385521676503808909828938803290284013171409289654952017458230412841613655698850468339752902557647829929145240840756175327081501540130140933133555799785060533131684177251918648213398981591238113724173912819750171079245739546789717207450557818572645996967847245445664307016416464074964845948138685661358990427678725047706030110519961803236657191861583832714236645221095079840654064834732448875025693292750941111677092771407144777911230562809372423992940668801299307229172508348662868264378913112857233374436019077927937407461911746561009001702648043167938169015600733597473377305178615491613775985630857189352539258928052720261159605264711140797137956143323888792609879405116840159503941529982839157765811906981641388479159753659602507288632831466947579218371805201277146072067883798371529067947142386303789965074806559588038137179669460999269569063559362534564748369806756952959177148105604237372726342820065074287421624851857028504175081113506612412035311353834150512571446634634639504455903450924106392446238553625063011330154095418785929525058827960927342052569974110447406835800242266629517301904111819719748020458438335555755564181604443748514336277280038128760244125432908306460313265641850814385853907440468207418903894240569858689486167604657516665328868518263114965044011049005756544279665535488411938490085103202789890441556590920806785155691356955483751913806639255380552237472834258813218250241776055830464292799662183656777862954019544740695770674766022777834230498779923376905090158643907001300619221407584849088078777901266382975860355785167281907594021294641495790974148481979711175272163573677983737394884414704524927478658500788744571960141426589294157239413303031602543980967237908849626034266836080869515623026618257504458559846925480203287277869141739550620676149994988928652828700106313707070310549048101455019839254552248743620933291308486373641398187263208805793979775598307698572586345564560399176059022158691083561056903766232301066623127377997082477996917538843588918604100723875338746236310949814763541759223180752357669914212533911334452006302541802240117205988145369501322452280610427245950617270017736430656980494513605357818761063071091810386646846349580899697171613830980655263403985977432628448279657190535885044537844280537520212851199373493345110956953857036983720326072373071645477235621476003568214617831526357378508280280888300282735431974238008690556327068566778959448448122205999186899455720373191011458330565247842980438115891233805973750937932284050908323976781089571611899655543026201543882123201456986177604824069352428612503831955711585127445565947189573283258228827361680711593544293872794372240345998002876276035799167873915082491040972562173906211397603017867694453202573909220827878134349317601180700111458612930560280732350485669081541957937385765001583514623956221347043162709043462514881148477762746531011703087381800070453740707837121932681458403447992220175141920171835731007947797874086267139964377154485255568258353401591342083782953591972674116370117785997358144639566009274027591302185555428553854626883704337015013927491213958088515578534606371380662010357303623422563908659576731711546890778950720237691695608446151531086388367740516361149527631932149840752242545575325651822161315042476213053496150325776557068785529217740951690672768549268939179095191961280148691164949370583271398083450243153582694701210599801624033489007221129620820725148057499355687871592749786717230016827788113618786204041312470592821321746611975339134999764846819470517670485933291825287656553567134652585338403961552655145183885304844601003185768402969707914443678505719479136310750144452757446254785708766621013270669739841814495943721858297825587520586738898326026357145166682964006337135781972046948278306814046935306887610732593271499803197242774938439567333860381117316976024029381609412346965536776735380553828601424156594782517553501721602744918382629460762867203230764884486835295263731589115884990338423539803614897077434788938521929820725173640736138711592489306795692808366411707993958026671533358791529840799618614494314452506527344174930929690853713633240493271776939837561838137267536227130474427131275121218808587626779645978006618430100635694679940635650648250136769595713122744373268204819419436314477508773103333695934834414360468832862816487267253146776142438853909500463024494145434494606747505319476255764545882825342714121580193548952168641396847407716404904682959118949985017952125178582786182893700093319680690191357206283660525264431308140431848705513923349154023292499495440739715508516179275886106977004207734737046467844925439123038995189012670212605199384893560598557803352155982628858623868902219614038026262475991466897997420693876266837305642790818653247771318771715574390395314279936095156709579898342312178765164497081477561004372478416245397009118163068551940307311811665844612297632430328848091174583678223862053440911706120723676157532192408645040414737808303871131909712573115670310706808466688708264085151528235008474934633152455366924044640341230749814991867691520614429476168789307322499283751328084338930545767166301951904779458742389127832862929984226225510101513870257019931947443458430920916401355302510263766206753101923951166010959851992779266225077112373948416637125337325242092858126004155750587849436234633437968993069462364396864829018022252887898667766589788213055605230951106050028007315808772541805793038752034687604702137120460822332964522723761494914236361811501141991122154840199545097265658366859823133056027380968954741528259980979738347546399072369044184427163346011428209099100289765294552539654395427497027907673840799097569303470109826791953741698269862914219991084281155614780243691442346627353724660084515843358996109856472087911595050931747934042778298620237532188478443089684051536423748878813138749681886026008356158249831019897434839279887145425069717274468509619262789061464123371051976000238981901832678351525092361225123363026187165628130111579389655444817477800473623137320179565402498178832570984690462142070682321758610617314899641324181735290602189738777717781426959422368752236201431069404613484907430311993177967740474775310435132080387327739381148367029498882801763095029864922340510207383520610198958645988261785598222084245645825603119878612041111197554154574429718341733535785173274116990112489876013296226453034838437011040977380634914773727051096316092173688452907236409426290631713211826172570635885545428212967391129633853436033039289444055841205219135416265994335966669610720029650255852919494744731609627709392585498016592533499249209330266075025113565171045257302612017784753040176519916608234051449954039303254352943251104112498898524955012630840356344943370877065878179309526497009345118351095141795235217210254153557396111523947104836267315483673197125147872700866067305981887743113487144912026713033487826830147806480184971069005415914982322686800704131129116795377682611649334472536752501693833367203488384254394526230289763020421409828303143427863249799134359709720629982150280119457682499889046068279524944339966327496695218715592290975741096249293273950326682871909267789428843217280674058947889604801015655960038457160215639221346763437785677260316668090930239042259890188736341559500796302465414742528454397871036131188823356404942078894723335486970069453005152016043787189615374435826391224136085833304865742694703026450670066882849208952710841883465431514116222135486931248859725042672094748451594941384088845126044395514266377209284312002014764309105353462654601713228509886815502484714239267116382525402550066855449642707846752456723067884918765714912187214630454154241834440704111346651844620883237972910169257387815304496023615409761154819161240931780933930633589318929136216559986239060013559280042721717001281878218047089717301774115515428058373222539760264904782259958209654074632890949986088048374176065124641957923604984605298239290349997579339030069026873727534185152014134755469373719812467557999289130565657528388557616272070009840713058966425393192146516748713184918625145550349245034486225501452247518252529289529242645677162284382860315169224905820153538373571770116601128835694707642589338807906535922526559150055945044109297512388170398334394416798409154046172039896119505860925390554154834275755444435261055995630546811151157308709091115197082737455256657103272722199912388638443642232191858355755074635967048184034139427541449566247484271627649560574241891523311122809557247888838482607927002730678671857869443754861083711563633187868265201565239840777287582827393115965337765087849074162600134519126760719552362260993795577266850197452269271745231797383805918499026469054286955089345960970148230507410979358774899766621879521488637873568524193708385420574624733760073233278389020197151254753489662413745413613219795686859290298321511883148359370564206408397351080686339658979143419680060458629685177785584939393835279556909250639532310468407222188479376140966879383236773945694098090983286705529603487615177514486653277192521012795543116854680427167152593376041318026565334611704007021673648715523830277386977569256940457205279099061372708435472062427702921853390869637280795173092836380675059179774160270334834205969975228849963145567765577615346818864222265190072361180379857779352893323081511168605756066632678999858562935514362572852228290538375960846744164104293695020814843055549130667623851156744363491807873649536694305650645617566629523094046554734357432120064168850907497325800112229713551103623294193458855271198245313920972036987494975643585686616411147309637347591535797110457864418179038099146027282116991454497498924028506049630614844732191492931039922856700055730036858044853172797692999194392608809858784095603111112199974884126015718250860660163587610429036235732447374867416670824333222169284890741759777459476455169943855533553891215342220498352249592599565617206984106158834409332128524811940587272615320744224570852513818743912480782385220341854159848743794812016819176587830800464677463960328936645914414974294969872654514365603025756301441986326431297793344850617603868489031022672312033385743215138215794296263203808964184284715078195851109148095383460234169420649614180354589089992406039454262995448961143657077628436192806240521886611522132919995681031468386173352170304491670356374329583500470050748004844076556355478950061262712295252384874638298162835919762004051541133631778964807363948851804732271686220782035268872947792013610446545174222363329716180864444224849104447898849936946454487234567197870434209657662857074053386076620383492802712730646021530647646482660988994771875840836372829822345655119261440660962660149277741215858174037189130356747038383075677295039118047351998139393690285650431709329308247749485519588383446773076822380440690725822792500902859035124909555665170267802192238018870756303980705802517628354298285880677760563317649714991107086018125230099922413972227767092352506285793968455759102433370278185976537103843862833255996988401467279805387567906601988174733047050797642186296194657311015854689848593067950185549787857537091977081744233715143827370170102184239908188509990305388377083432075151787062902054968805622691721048790018919944813889479642221550507643828375569631237685687339222644179185856707434767036460618495053346731549072650073893544173392063329190887433719809943006851615570507380309611365032210304478499517025951647479387552051719084492128145833760121075716846805456338035140184248099789957770403732045989495188554017547895346501898460983213075296190971418524266365130309095009574091150696991263626968859703851667140463720835120426003838714472595016788348061029266597410785123932765435449960469026162779020220589150225632457994936964657230861100110421766026226933731260579750786474941033517281636043920341118474587882496390813645801123694658036090352728397951589155983242956763018583394559963077752874838098112295871183712386581794940776909742621695705097161064305509731541784981260358882526008333291816951687647426614141376837422262982722691574267587370992417098823645404358003509290032074700507615886143561787489084627199549609598462723517696323961891579726092706765095285194993744159971393514477921126336341399221499798968987794153069462492507512958876203486924237981829561963897138498164065845947563289054332085828932637476436848273333680415095431098590757969019599336618327532932291962993103313257271428400809278002511667697522322738320967074196067428118651294167500465033854546265108167750114240870966136064361354057503858987662042066096087268406310947445028487993718482674304409840013955895099138620570815926833059779623209920865811362963846302640030106486367009587437254047153407145843699128395198205894225289714068254693317663332371504899815879397108932508709880103819942551569306213254470316150573894084268314212542324442528716403708246858453948809391445659945450582685260571414838344879945286169115803345217571052393615941766295553453078835907446152018051660671899917939848793964621139806867065408641905895546783929470627590942477157539204532259263837044184342385627353093515819914082016314777928580824759363881770344656603212071527168518320292592557123143267870158123825717554560791187978152900054785015315113061390220577680296670002871332723046542454321535560389297068722514292591976415283430558922412230613226982118663112941726560034209847855839917217583085745016213400723247468190751153896931698075443938157003556164261971781338213419342226030781575083432529167930816672054581496481991625060847782288303801159596011452892424153821062321528626956850391199241632941946187447679536017694600028811558901434495581532096008820061113352262135329794315496623178209875426565215201186982095995922876774802247856887431122565840953543414314997454787408548957523575170551367527817330958295855298243495818443309285868118515419411135424774351843259226142021522908153576485351049184764931754698211806182062029043796384361524060401285257320946424047374072974371662376728341419850472486326169610391416440663592612161637374843415194804129868686599233065329375953361093447209781254940764805906196776349116109508570582624166424204285919817525243598520488530816467467628858011750187063442305461785929586440338771686124494751456207719990317857066536087706873522152597793068319770301605445616113952848558440940962950029785093573322647449300423690969687557944220094825385895569517480685501250745138057322522184680795106807520885953957527811038761336996205083967792786338340297854478687520142827126149547746160938634103258446666221908895277792332592677668591857646536187461287788655998273931927651033455231182713904251352362412783203646132497979941673738924395506249192853946230829585502026220870389699516147950074091572124359982349226251803994572544081698613999773004500101908592350746863307297020797154757086324118790301067243845986830025500506949053580375661900246416147994121055404358079806849055359847728014339613743050169657913520619020476376855488401265156062565685138193902103338809412269059770250826299119900819418230752770890798799341149654952648201352646884486063498257844345199699104146445689839301757182357385564064422441595988283795893787346297442086474460376916769114488166041126523894242962843250618321623065543381002564941039912782343664356217925514896899052591175924048525646937716204095947618651770800467629759121932392901265804848533612974048715781683241394279775274454722149682814828960971834256804985086552800451263201640926250207073426914968363296428274842730634038552893197943861555180938246744883731907959305283581077722439412767660751883908236329799312584124374826398151358881890962368586430896045513279345598589263122297613279427170970871208546760219853294214820779334817692640690136989483074743075804011752678874005955940323101947059185286330436886059512301984159110552377565515747444460396728393061105052316742390973921810838098463419616521547168069503000441141194165014588083654520126659634333670073683874993784338220128576277844895901423794699386238516101218877020626556185442180874242963567680219129247175128321924134846067506707491881125188697616914758147432421726411607606030586269189483457719042140307465311813624523050554880325161941264545703481554569680692968554490983954128957741886117764877903231006899419927734024663502265950679780286138063584144061350613445260791632022767459029847717844767563421801394569728933157530118285952954303452207418553690056878379571710585573311165020370034423658688915182800775598970288698356763141869836147127783086819684183693795853291249683906396492023378383286239486565265370894267859623046388306653473522044497890829138551331385875017076890689986485838209998003950891630884349902536995837741922692653158089847882188351206498494927315424661715294100571412131229546239078499598217772939123263222821185765149687310521127339930394368462004848558842941962286530998958877759293254790332853463522365272820880345137028480675616115442112247717543177238671323686477233688994262028211000276805919602078426949355225540563642763615643480283624280355249391215284058973967338115640033300997359664736016683144334490075129658574744638095116905620640109980818210022287378267702638203627708192185737129878968064487150350356320091288226753693952600976496750201433501265283884983791411962501029277102852907408992576368772055060101814491522362893708653443290713701215519246245212688996877314002690878510974613238666503806269306348190120884380000547710328935145610896190226677460481311285101802043837338933811791781479744477713480130387878146463668006864925702436875142345982026623324788938296570249187631011937573552961262551573330232962974782037653809741245820818740092382874293166462154185641999771226054788177018866560268261437676179401165079642568772427515512102063772452105254514469875080071085848005451764667734697507052776194295864786710019676059948000386834101050122652264288093985541024417782337888734453085949286480538841346629906075697752989775393465332082718911749726018188870944428773020922824529352046107781648717005127758317698903450959505648763335918688282221977196426511623083890973864716229046480245001962589017565467773426494809456579515000767148128073744957703092545858200914652704272320671557330298351179527483932733989258001446700185738512881581706567586619603995177884283084378224581755309407776640361113881411546597398235162070953372709855660169154404830116870750898779185975226848844967971513155449241610815828085470739141791323495820300963708039883398325280599438926047136415022702317516980025840017425600914422424297208463986147281347327612941669806231954201836154848914108362197315279835922059308213343417297993537674225925040522233328404446537181429096777226065263071321365300969689599059106004446105211460545189683997512605031936892195909850576876906281270012817344554444630035039946665386259295406629511971246377157873477526913653973481751203984642280770016176499767968222286314332885319645809419331336641038013017530745782612571800937469205947517585884465055946543456035486180408365909734650561519824595796368024338064859982442774918913702638640506079509530123038612265650542276080829204160219293717171671714738313251013043582343375574789205163080814695608598620835273995267029776619481081876231641169218048304239120433203730335573382630393672609825502158377978032307985898914852885315449554405582536647405896793112213244751442547129253618614973725439551848657424717521848284121817265965763676172513615213993763033769652114255786120968914201155702647187118190723672457890512017674338572643385354139447845026509006156444516904886263315456884467445283234089395821886126974751351856947072989835262827548010930640572865487210014477876701220487871105793296702098423143014524657422644689785111733605437597579158624407718994799901386389875205902938218295923244415193935181098912675578797491280857321625218443525018920877128878782357391129753158633352716257063797226834173746449768983304516603324616726872656506171038550167581849970851308721589582695890028348979716921436989116904192127492540276329350168668256360495901510615502011913261557698645019495139836172531411079916245571117393630356532113018517760868086862663660340645385565068871540608854477528789319214715475327547092677058654267937717524179501186822626884938351623540375977586942747565614254628563143866983256168438620393849202589448046832478906000348389949514329282047106545067613620056740355783741848601912443852613861961649459405894071789109496714675374403798169812209739501347832231211269917392001663768292914301542900045215881995617444504438224685002432332163025261355620106773182024381480930536234167192057237444272659979238921274113473632595041890819529226221945542928809699144486637366207807081768064085337886501658126044139739332461525328806794320072622384520891337297881692753953993237877044927721177641184691512501015836982198684851149849530331653794582210755394970059977279258304994617598347354071977118723454077540469548765462643884256681862201608215619924433245113022582374887467330853016061340519956086491164005164714597207643644600102460235686488878314518762917720693958508571514095204833894735659579995696763195507325198277282546108185205908112271179912399418862844011284840463296334464034380891812808861809568150824887596979635413466793114669970631341827333754527071470985068272188237331157272888554493666886978051044890678895968814017246187886912380528530081763029821366796037298811130555830083382554607776474764676842436133070470293397252519821072611814588739094614031960360008755210931373809558025609714183262508579945457238604491420029040417518200808535199453995501674919186012699042615690506909906040917735157373750056221073714193822864790259063488885857476976571759073357045317581874844502466192268257769329536055942534309596785859621959516399190235194960629451284098847386399917833188913069552551468515133340723876808167365636138164422244465073700824144203463818862484445950000406282055502273360092755953640513670411485017490619272042331997746725386724805557440001245869253419283553442893480137925294567775960689481206758151298285104108241750730569941716535608009349050136373633005452530867920074072213909767574015138246284140561063018194253991900990348112985136153443618937944303201580646692866689567482590482340058946841589789275900694439628834568666086273388409066431694509266509299772476499311650994632591905799418671231401330969375805274465932165446574854800594385692604808283081797099851314980243037448306264007120397299607200194455429431886515424415162612191812211553597752629209156319387170106858707104306825513553549788897626294008357008371093014535093819606070511666722006640036371346631941538502503697843882552475764199904431395753729751607315451611889173248890595441683062392490018978748456981603949146796437374956170457339499732123651532440080980927540053342019188920990678128888550362210790918567387326895541898343214892783458285290332187719716149976396386516069459518561186121525177847883153612659973472060912264619973361764902762568256006941650323544331826467832841359584220653016200039618687854949768354654515250653158785577318652877306072627192426632279399315512970801732392891619691223473362039956836012169941200825664877343497967522092157136718392313769498671431276360099017105799968694236536146824669246007279658256532369292056223675835415163140955064142601586898219408162979122520326514640122865709432162301180780471103074645187912213666687808958436635943200694496313464928600424669760218555519574788312371850189378928751020963412494330266549496726572398900323863033891831778762155842092248739418013489542923498812035086534655550534702631803570790171818222103472295752207543542535986351401934625376896156869850598312003775338058398964134142955226760140842995513315752223142544566961799000776165107976453347801566777536506027007381412071601749586630480140654792315223472906046988509095920969216572190376484098525723075120314522933477690351216657872680285171013118808380936032190714177946803213975253983766492095170755896735344036623317776028213178060817407170039064108428403623121677281859497122987063781477707388856536607761430018415283102615833253765493103384613278054658343080185822298746556770681739857792144773136511361969242197072088444371614805875250959781174292428952726832305866651857865525553492681619493299130669087662670204876854510843105602560155949120836262981271948012145432002025482725558834997156219386667460593163542773314971523428075516742739682532840232152206866700648506668987471510911959592297740682340328531631981150844649314164055660312669876316992143561915574891503406794025881619356328004786868560889596823955394982515391183350579249824814699283676673984805386728830065440496973061311576968101251318457175866940183484253969380243735322891622007518571379207625792224627997241959710538153597202541553738265050089826501551420325494396382832474395208627246323377870188294118929830165001245028053983572011308710080021759956734068542682611652573745257396293318071158046526472952308668612033373349129581746174403782071395792437797235141012298820261673599695008797322037056401849929490699017307600410543521450249153204832271045274667138893560787527791336134967922611692860491555203974397339072342613043393253757291028691076032084658476832635805266829737291219308968657153758860264042815688275507381938379493297043413470574948234177686416482117883055398568299732017630463103231330051233056460037261131534940654586087244016545082853352284360100856430882794148618082723484588428744092744291560186431474905238091085760654268192785863795711618905336638781341150369703742115349863473401276424282985754411314057053531443007982318199196765351377018632232940921720996703524835328335956446640050280978487969224023402530901977198649254020660504664727962984779421793860636651905647702442007177385621666570127060962199153936850089136136322944533991751077783589039769344007499297915567731431069303125529333758831454865783865626990097721296594462185870109855070169326555332211294001026447580489212345471167908769430236748040283312736779599537977184462113649565039162607209113799481277649919385589591378851393075200425747257300058227034048214286127285286381197712976552893080437801316981877914261031974295739448448048732917631981596677342664675222073439899226504905964274273868326164936242554571680792022912259736691531923671861271532870275715649002154349696473568242995311034687468840986999052250476565205018490470797573400778180879701150965469613751988231100435682041482987555234261309762007194580282144447568978041919304512040402081956100134199586497917484457954059836930901774338679226060382271616854227142053850128850395124279745413266215913684281703166320673968864042049307882553492572597461662844591553140308989870343301455389322467297469645161702854004139528908252322214038257130847548640938569877142526354484232167997101124096540345222627499585745343208293019113335329156773654448874444124855074374962390520401299506272210344082195085892942297278960718349352195469408572173060989982191740131845281084396728341235334229965562428908856366345479273853807418901906910152129999108336234695275448965091784774393499718196213714892254104206569571552373056150044360652742051900843382365701800970657090810675368153483700427442427875689906726799012153872006885129207170383418164616877016301966809279412806777981114868200229176208419676242753687621496365318065811021265017560778013386068955113302602687012596384898956548253567863723429511502922089862316642853431068732563638764489849895219442687059623519867877469686287456483655256120131318808501867479503987508710852375021114356690440059164517991878464681219650631302268475380965183984226015002980703799314159602647618228803325294964091635481903851752107552545305074721309758041578495283322610977136445227354685972894427096271646462634788840304272875013099108774942524423492065028452324441122207221459965333720521722667665896958403088804243010817100377811241074814074471752378525932721932864467280019315973242294237190851825535427678933264955138936877500245445076798047208732215499979304650880666520756234282151298431656558828313507594535987851610859933386942602486162177418212402813476006818389768284872987203515219836421121050079000359458492574462922828629887731665597093805222379674424948480628263860205365680362196273399264570157393933672139965265409467393064022630475480486618427124148165006572311853697194347471830662431150013812065332143012658453706833881513520228409994389974913864140933783697573097211908116311583046350383255090811664095445700661136285979287435015159839532987695738672121314643936737696953303642429301617524403636953543249595216654771322644930849414562716002479258756070633560762820612279297809698986904632508732043973389440682017583985434826133515063682924741340760554680314346046552864110860140782888540105954666180961672985868651790784057678317110355359192520815286795368742303893813068322168905754231538103397839412329711596615831426999786858169672189597995443202624471043268923055000076485110300038564093849682128186359901363487501662067966692330713582323907358571354079121845731924044547610964177137535686801084424064729473216731698074870807868231831661563342746525180602727015604122854193187580637566840669853577029999555030964999780156263638714086441997045193620858324307574695263162994000798515239814684743105397585320932004535317443562235020141276016288228817634902254656488129985877917987753769758956245170176957604203510977700761079369517658624853046949289487403198039012604770857071771261373489650013532395994764009633166314945602462318880135551485384123006414009855291127281029755409734138241621191779506498272774966330297243664641478541691383569573156695548419673999518063405991429079112106381378367963969790967525322776025684387804695243051094971362623527474247449407547248619224797635644117191736138702122029504052240647426210470022060400155774225810029822645766189089651215775544100546726163079570935846665187368826676817212776169741172309540976048868209656457757023725005217826072801271055762659793364512699093904836454283263249856442827396050828787821718929817477728201344529597242675055348608021303971429277501218504544398277364834025224817233186188400944220344820719697436157286128774739255792493306048798102499486720526158925709575952176709763699972508316921003556412975078644842226045549441140101911843819337402773758454086777148083017675740913463153484298060160393724614161107682030830591048086096357352084859123135590647230632041918622523894060521921155006255316171721082795583226302179393910339986931075826308665784110649659905082567716157332146689427438895408891217999631397887619487452096556415930098768977447638193149452038139527994189364911095344033932566917827665688999993669756120117046973665609012495171936823261966569418308867424626078601230822792110223113336627327706475548682740848208729647254343951716948683759589109738726023438737506450820154295362767911638541902386934908852014344173186830257693054293169858993959587007750460871751329475002815689731245771182648528046396639459287952718450400858462438628021260074109064605676880275773996924026464931607974196362214425091079410176090599967551368915024361037457932187056810713111522940216683492866142912544176622051832893016839817701101266854888233251147749920691016189349952535588234114707035114800146505019281778231328209439307336692660983424793425409774864254645277934981387719163590933875107327818613536904778270328720894421655523493403574489925800485448663954760606675259499299519383901722954663400887286034573052074711598030792577963148801501901145969554340304824659979805009059748294634252852444041418015404606411181515324022071913297432092596981114106035744356915658194177503105980998407130822041602544859701299490669830607392758629526497671491750690312322905035746823505807078280941405886975495202863619215316430717218994691398717319659318123626672659429671504554480449385787545430868597449705604640621233844585225749926552904987383636301411153850297540792541749066215413435660559525761376175448533233106730521320991789900911636131918492241569880090857002370312432415196231880765889115195698519326162611622005507757490871141444550104964484097516031790652532279436338453472034566006357599238259440723083939900402912832501909138267918291166857729335356037060613563378203174875072607730058663706086806184610931312137327873089100460799622868247214836828054757417917637120529707115108141618004339474409021872397546932826292650892604452105327415930118765019130313949953331502982031914345495131142658095043541070518200701195650529493649156982938180405772207100573901419462581750039732905281129402179039921885447329972947511416247131521029697346138399000145411380773036607410998202684329310342149228795216233202329005681771428743029254734813759530148812106477137122082589383611877219511299031923598580759379156817527081416391699910057663740403148352204869519880235068299552329611162025488828045599037473098734630068219283283967850561524045066084072403868586048775243575183416398416795860828623250323419626258255130255852456164667095359898572502494715917885386289144136274883153197901887022894401179760536503344349329497861623574407879940956098800948073955744738253287563631266536857464937839044740526549288290728399768567256424783342039428422899842747919239601790149145344637316664173768934823528153272186004747615279799796112757846395025982180977218521706190508465956198322439663287553990321979622157092239019189529205819332757796741608797880151862753055151846825620680796773157018439066069805253506055615617214002677405004169029127667337089454451434018912129757542848527586297474839397519840513957805759314027269831680229661989062447869345240719456259779819375620063698376427975454530588873156059454141944605411478522351325627697392845123971967787342888057588354123261512885467936793768049722920794681179463017700280800661872230979223433824132423270552670672128242084401193621124051923720960945310727632295109896454139274109896872302357976071451901225369666070807386119395000260353380798006456806372151824194697877125516845378118623806129170289093733453674920936679038415129339615871392904752713953640027072751111403376083587863570438223096531959799838501596886004828231632079849149146750111259099801611915354798061239515518237900304767742371494388140422731930202497757086700037520664969982336901685849643251057337980018885890000892946661475771540889437755189372751555257640498112616945728435036986118713560340152648246423483193413290944889506153132766430991256318942373604233463590588786092363903090822113167463897657289753235412234306754023468071951288798685948990758371486665292048479352857434649256700166184629913125394992676475718705685171179763032281866973388235343407037713973867489519397187097164966759883059413903335991494112740054625885241046216964246065713851681338969794887599136687260409004204765707141992764698501664489348095417057955356087468588863773916874139741258332783818129964631698042920993740670927338553195210534564745444020068888693784652668968885494846036771903416921792209475816532903124492108950924771800807202197384580704954170495649423931186972578677950629510991666168298649304915004927647796043427817696951041141998983526808592613068912041160200238589877981364686658632169550020768009646851210389914271713559426581868426345641479861497957170882169213341331602480782940772372114599856344530073429545403772040236805704751429638303383043289047473039406210858203702095329723247418409964585174830777106674550050189493263216146344139366316943552988391170671004576445418872245381413437566539810654664832961065327941396180346443325116567407508565398768346856545938327515707700511916265134384910892790099788495549085545434677492190084761817656680293456397802936771749331532531940166187128656944966856325297361657742580356575220156175845827192004375620374299385329619024677063343397649708192483011009905431936440775860664636649290174609201940646073995810124694127848052377869139317098502663585791522120364537423224432645077301839953948586517371388336057142584207376041339966654057504455086731156767564049056708884148430127830693583151677155698953462045238520429975952894187623277770318880577295665424596702037048616141380245301189834197480440907629050004726216108780459163182289990656614895667657879182248081769206294443147849134638935459446411085864028618399862692959888984873850773714392392029378298860726841944178712617802611559762035413187210758291953133316651196172618700056217534248259245638953012067809785940020655610923944879899226204156388521490330653498907007389594946705886435208201694873344176657393675039442591053023926980464908510878363670968481548097670915395810415808990134589010495033069966209034161678104898797684339054908471600226619868883387488402836099820572043727028223541813305023570391094318120559347271586878280670782404992872564017813704232124655018957722211959418781025759187611994180439848973050639998704803709113156308827088308515208858886652868055576855767059991854517850280427432819039954281593605488487255344162167859642598738625538028414556526081444625215979981741891841405765710152031577564061570515114910781817081137821239244718137636560111575308451423221052963172699748919493104854488968234052144472882644347504246857641847552937066460852071528148927967435397768458202444429913149161733753422553290033583128445302134233558960292841543622114605186228119087118196803030474236321275810570826841040193127714577638840889979280601698036499041588948857486882752438719301404746267955222032769582463919378677388048790832252721826079246107757735801793083112290394403061405798025944129756825484667754189663617440610245216726599031126424210727249639900396056314480697282279542675644658573933331466495973138523620551912129301591109634502866389018481942294908004678365820760848483774743895327284786550752538756415046234000382204500830143105227027978980389602732029830146237013787472808891436692641041854306245602537258526516780797129688626627166185363468588606595456058269039680935938665006893176156633328409010769349711117980026617331373396430197437168322478383732566927412605942200159032468258724740666375444998608386256028184796362802747590645573543151646325919245421667911587888849615001313828426356788526847003379448205280356505587569669521105712550487255000811471315826243376289435181168383979510873345002404508853979236052062504516200963353721602679559188916684935360405429184510787048786855362788565811688425231719784829547137528105056490944413414914545232473082822342583344475996385915708304623374071166938188847341960693124381089147361882327351552208525512411746938635162496768636086052126308773750432885921568853697576541347118650442779525986273666956333807212215066768710216845849779577663567848304222097878682115272821583070437904369734039974348460385187796807759997196491101803064769468560099861205529548379063859541390963931352373851559990805404829903853711368524734288370992283201655078936860861645655932724094163103819851077077083369787998051325913635564528118282080463378313641299633258908021860799021670019668699058708061298152106236064889251548788545016324301222164476853906442900389861712277204666944343773148070854438198260871266765262512494941543599276840765601024100579258877611044767545471006430244388327124261403709676514015556234556397702775377971348171220854305933276655378484426751213654775473510484741517030633837736903930305778521442208287138840328925300995862896686252389029402486289530610444192494874452040493585202118404904753284167168207386281373713650306466851418647666460348956364286576273972991567714429067662296464369442500603946343142348227803258953004223302316540877252795603047643712682601088272041303351283213200960974276586343780301160536255598270145583048444422231726146865512699456907219950147698393753775889625677309214785166252027942507541923704949079463654241812467869722810604651543572426032200206413115495909396580595050538936463145847061357387132175515166473766531127588715167771335310712215440338523406910729230725092680461000969498558950741651859936815008636174308102024068279319591642492594240295886502340806063751246421210290359174280696448242048119182196505366218725665377150060050642852215182457740163157289530930353272138056688702816513980056337176955816648958976576669902672356862709595676231280628483626867594272711954644764920491176769684618342606570002611049867528010419063399913829637882202506410108824958067232263777345945134076021893030359505056842116964607945896974851717978663769664911329304103348044908229725859330232840185814501103045238000142788844573057433427451591881757817849391491232462514074949774635659941060191954742617202971337632140095246021161482319530699990475937206090113685210996971715530648220909819467634593829723509030566464673878873235894092056365097434300877171890289519570616072068049623971445902408106918687273464116180967609139840257509530846484022190290731610588673461044518944453580616257744340540092486627337424606909471086363377912256603966344736298842088190154793144915429090396853787369727213477324294610500343478894319400063992306248523221575482935012153916067341451079340334139060979571893108983823245465581896252027753420766963592920849401984132359986056295988070700072055166951537070464810806468325956531425333153081600461596751230533249763649476425721360602168390589193480733356312715917711941094242422091003219175278801519112778865386592455521249830122373883591282041046875204000786595872195272361086158173910858483625424728623628436805550066358092522443603429691375476788831704620436680729873084901937252016544466146513417602300646068937130350578062901995728406948283030919722617511190995467730051574363558785338743356773332491529674245590732691984879892978012996643370369215100031909225344077278470688764787806404019740691662026268342842433394417419985500232509400891838527358248324769914194026479159123222628360727737244726108261381498518653057468108471735986406000474739266299734207430581334204104111824516383246645110061605047389414980430080357989396102649620241213072429814679364860302270362322653601647616256765809497459480203628019326629680643302003472838270030116422411287849228171840920003830777230315255096070604862949464161220236533964073243017962104706845437353333856427845307909615674075724394116064580832602534729474819586276825314600088173851229800624267908565450426552250154004466586159898904577240769049087651999003345456444252993848166510448179740835159608312481851845952202073257632797836852641792020944939863848938244517177446271329261538635544990313742986252160154469848523031887398068990701770806890769074070190310688144008428900214071947018724521264437521336575195897303358644776107280636650924743410401944167832394646551998811007426619645359389617134052270831659178343700407402461574342396392032704069695952745729905370566558121524239850011540748307879452098765767766170726025440907502691079684747318152631445963429147484546872341946121201299677604617652907886002156199003235666065439756914437039963878033356799881786251884028423192523826762120696136867426302356708182822867786878950000250132922011187167216975296381875478741979990597178815203297515219573826514469924083246447200161929502016883089386366797902805926463762621185863786318823970794702526659718547522296083718301017187497269686998165912697379021806239842075566660302926749112198010131360042747668309174712209411547038062677985767276294831276163200300883820513923340796480611990788987403657930994227716852027054163214554041717436801580152467981949215184551555274725685091989338768055599776501346411212221569896833459824184331127412029851329354420844769321342521508377892776519801450859144627727573458042015560514167505515257975187465027147342198050291669791760379693247389379790894106820291688548330348541184381041520824139687990519759213444452001723104060926892323701250013934573278483859361234639875060509181542622184619337063402523567009407604054079620588796393956614383619601630329743734554596016540289629300658816177288326821362370213313755331374955940085870013914025037251861244191250795636409427195777465547015955939173298968390452026776093670593335650389545227327647477938365307614172475442863541916903526535800656455869678467349142775612394546356331705323878758554400808294915170418831022254332655034760081647702646010853908047083729712348910124983463987940419575764832731071409039880513200709468497789042992362607797822923397277268254099559969868055468314306584832009753176860359268347199109888514170241812040561575233438733864461208497125634679673025103579879538065606824283156848649143653526770392804711338474788206512204506023275278522642978812559517887703411871791049591157462318063175449909701346317054958111940639850496530613757265228596576765896958900903549126896333742639819709598494256735873878101115535234206058656666995789675608032126393698539013807388815811288132720592582908994842712786711406286796175609047137663809458755881799347773082934508972588888439718759406567561046666697866746644531078876623857554153494196380085131408078084759363152481712663545236394172924292392876838608007855210650443401847634347149739993607176467526870845001921562193893460898421674789855198532371981906090332268104534540617920563107523140257893013740300013297643507644107903096820494142169574636579764939487943721531036430622201438297034499339451527236776867789896724657133038976402479599456933505510562968386557640480570286174150376667270090947545662059149752250573870410119818871183819870451714585333386519150956841829544229283612304052044924819602983693116027480410652559190047652635991268309388898781332827839000673499714838259653996129787422732643383266414715537459108416509775443587962034217985702671912095880850306166763846677679079702974186416569529259184855621862300289385474649411959537753006642644198127323518884409439015162128795224139490498105683611228321706337397008310312195854550303005028483194343255649973555207705271631649734657321450600400302576345113719967367846479323628407289197906602657549092622819247279085392349372767975188462817244033793345811285707470469884222645965943072366384311439321020920875630044683782106818776825903541100585515020388632779099552136623539298640664379997399988144782101364408239091971708041045168756445266363039512426091771520761273079044957433768908821023474029751944911148150034457498431949037596634786539802709117509352257576082375451570890454381565355265296351987645447944466768750875871701827155771518321990810556711665261565153857074713949441069875300328594232181134505869909046748654780458763671704755991990955708699774676443817937606563065116669526501623157547173613509701042558062515949301798558145337132609636985720083438863768361928763534970833945369629478858576892662210377108559358993784292104239054556855235020323277488435819389447762048589438184393938861553152104865602874575188736791922758066297526665133451209540785022520616863826996744241145415438502394366074832921646654990188076661094123500737759787442134285315735699035014641155646652840729510542891606051588849682269359332903362438735699580535852954280209826386845317527512208002464949573852185162367482570340011471636270810249437977394770928482203060170131973755169200336753297017175787708557052582981185996708420243599661504578697936016011403753217684422718488517469709030106730453727460338520089570691734678103916407862498816011109816143375237299191026382080290537574948904465375627854945001965423423556098067435857336056446379865066383183821258595877597830650286291699297149513299155202576817588199153499631470975463173829779062442895593113148989113198188774916784796078956777722553728741356321876213878682457982575770567745908279575051703093575404735202909900094045210877207025469632399035915366248811613356386207871276846705592597337209773198489337806240884454061288790626127481537204671196708443922731855344986619179595047955665683852845443375647745087243136421690544577271303720565559244885198749759903106152614796014264399952072233401904892502680814453339275038781408327594541377819505444636373411608613061099328173013768064252101364208816830977819270900753600542205034478544992579534370504244020617743801108523713572847442219914988784336436221022964577716439879882610526745329055866383247748551779479500097421066253584115589742751801017429452028230895802502418445536147795703579203162487212336108591545454966786805686633038977346472648175520594966507580988733105549129631659935446209222442323483464370640650595535475532448393214015293670836317669242994884880243319314995818806891713826540490599023332975088975037470966005707715916919624126927914028615251713745865173054083411336418463893466333825801558846936620813380539321244239255616256066213106389210218192849826252153958828804548327853307653835948588753590756952685361597044113862633775828060586930859173116024590654492213968584935389381146599850695533405677154480948529425024492617158006277081377058255134876051037247073084311617337452424964629126576248359723161227281792691950991203597420795654839445099017628311827904322111159901521051361353415022965574386643245279944350897966521684128881394947206384866372752752145287720451945261479208038131913399000532299891062140378841892510932123032823435115059832689867229800256233032724976751611078639361006800656796425087390426109644988048066399128984363583693326613088704712312383991039322135104931604825935389845791996460753802948626531588452508305995218682628607872035981385141287901133864563876575098227696358067875914436397311624171005014159117442321829561415033765550417847894571496344851374917709179190033265562882953127910715958862418420796339364254101437040867376678964558353706227679210957920334463931355693210679266587862087818172543791314471321139748301698177604251312099471275611072279134672844439497027581206009031485064640967343213751649934953475389294252043074028371756100418180178895291847606734428076490179327046543750036610176489131254419615748923972704705569462290130679070582141262258969012758034993387993243242808444499013660939644770128445054098893990047216500160666766992457518806540133930348874718997092417939297719120951925634758845122081758679504464798192819945013583805237143756104963105492012595353325392614191568399083420585270661524831203963503681870866404015599147851868710589684611052789474949802477112340894774695066318961253817819721292290408648088402972867235644615358673455043796433894486690292944322747674606830440178368042854708208366030957799574150606903070831187172960019631665121718989818712636198246598096290482735760080972489045785700863663955634655009508229186360201167240082558224555745067178314432513233376236639570038489960408037392735345386309756863684139284742765372348850337116471446929381605134320756361374130260286876984031362997495499074628254978580837970178709690718030372017654355664666301856193628384557757141092007464583664410054594129355798147441758480495392610888530487602050806674861629824856731709884121258108232223352107672146590858570804878332239311574967785353434709240883498142387085674409718267677098714153139193388184086631875195549395649780485660382639835395136108532420813959798665136578184194926276289337664197516746429706404686983434687913203521071794918876321056076971442809519144828150757301474114219938060172989534019972604572046417344157347025071563157113398495865154614096822295780940937173561889807212455086839871724287060126066925309731329718887203164036979054449651001106555782513563977646429257122157296225102502475116608131463385093045792253000512502872842979595768208481856436593177849841066288303195738811694361001466689786036904486622292277462191794031235326556871598427532105518720018701044247922848304785720915061011440673282733890433810199607168648669765134919632717047824903703315051736269655689605988949894795134476627812944931068963068816633380373291598724149278344350782642374532307851116328216811658088059281934564586771317181953060065535306478630911512042122852722033602721838253003192915590211276678619279848041089919931935423290748374416030608402950768251845793072838964623812804533956490541555637340309774872364653966945806822809320714811053656434304963922694234936481138273177372197684191997941072263007381792004502461467288012261711030076898287238803274466063760256880537074634501498213013493088189700358667305326493261434043703847475585763500474925593087416268331281013931470583441161521708262559564975998382702481277097000598425893721887337976949322607017362064304577715007724947390084695720166136092041317886472413553942995109009248054739481795095493149739568948007625016327470479071737186965388473245726384342175398739290953837514559592231898451547057193928119331250254816454114857399332807606134445917740618536547725719266621042839549894250975906464940092544177031000260674845336007393671073323602191800589906321111603183670876926127635396633554835119187985415281183430331151106275456245347805345129132071978823829777467825370847269175502333570557463036990983974324607802197173301919074401640780965200146167011874027542735008003864733189365939620244978532903071209191959768659563315032469815626590550373820176636002861186255355107020506842423537231812878311687800798333124982476311745234919232109444016082043215713774351210126351953052950548132312834131786977747344867973880794883178001634894621901558084135431925563012130829933042330414600594490908311074782648001415586449145565475815193741118510195034436752151733805148252684135659158562829996217113547966760578535546263538200052673887551630748893526456844833287440548262993027896667241468179581322951128251233346506678395111244227497273191079262400830496570121747107740103359668528894748271216510839784830732943039089032423147430250922011716149993483572039101689147719792363350881735643275480544567133369754530130010967768076315237221166230421439987653676213033579451848618253665784593908301649716158668317884549575289926264700421804048044996625453133577765798116811637217951465072727884302501007998368056166546581868461369528302464964641336113709849011194638436140033438745847265741205467502200756134594855747301990226446095912699975054818017365674538711816909942546748441948073302983708627624174364218616482173072878715170047291294940710005540354388377424888264575095245135824287051990854829707807920447374133900094734726968152682118569392068134123566175119532891498564197085767156544281602246092263932583020125903270974980426724098399848766633186614832759839828732378796367557283037425560723812509130672000102103167479653836450418102045401048817628422802415288434351833788669355085492256747310959508851458333830280641585233463076324049841353744657222522451399811178080894563218367794292953655629281615298810814942920433964854630345219551411781913864660892648785261009159578106796026138678751795650415576158074006032791660801147905267109109321392555218106393395770877530707452103348055434596619905710153975631027835117388429237995134729998172065884708630604473195120108640915716869754640090402191794234746391744286029681789868094874371515130884784684202615788490418096552954244662778929374974756910321631885650877869661665815911297228098304852307880289561124701479618820989666768811143550306173825602660987826075497828583243798256380578771926082893475529462016364762603563714220505881429000441229985380586216497860737300219708175695024735152191405005606681637923109756116077863798841596681292762839986015619443409468020552363297583627021719387229204794726688461031483813344798461009602553632471864165808032689656265856737597151994072378939523731537249024097358745265279377407471611789981685397705753744923835085817435283520190714912204911778208942610606544661471801885600461884056514212990347966654606029562427978731466042378114750644553266496041457698444495953523975748269465065172290669774446167325592197505374988281553913814364987300209658267907446418332102994329124582596541020983928237575001200489775773977924399726554378217185907461962424884963966367299321897602466643036064870814583272893225288947973861589687720803220935617973570658779657798475634553351995148823173924588765462818198631812376930188221352912212177183769657812462276187918556355341570163277298828776471671233213796936898034385382004130041365044843247943200441193132902172147654120576066734005450082137800162887590068423920835520334218789382214336202478731420325825918751403370422510032853902326857864843734120784187717863123120320766590950766333289868623678871415304523383407543436328745711634776507780153464823415222172932651738492249725250115442004300658105013209852069984499619995831430233725951988646661617430119390044570094257155781666116439944196476633482979986457772350464141411181086521898758057186934504395422040950052147807860598738188827745254672817029492318753027090794846636210953986285148170281572999244026837345713456451242231981179987360092844463776761721810956843464621169091023952425966388280913541484327873570572712105675512696777847909193352141117876893008514471656153769579999183315272525829708685403987459573754244231830539211650437735416599739703063227446427562319156371922232135507168613406494482112971897715984109500837647455867212182860437862432294251944517711420476312070809368296002349692096189823637347588194207833909589654062574048763600930895914575916952156817942357602143876904997516124280940032931111069114770232163427512982520370374715351087122652834796045393479456927827586270861908914648456396953451495773150035851399269330970834553399928516900284938706010439690687909844105741390687046486661442010005409953402359772040145956219674471956559110750160626763349851205913829630805866743036460299377295286792931905145523354186143257701768317188920506605428755678990330700418180161465419026535941975908248037744777712788127123880717131602679837766661078325507087069561129347628282135390681520062286134107595000574580733893354251782731115588420683075494441677441138558017980592406062411530569064224263517915362046296818699852472523565747967546680840445494148122254774430027679501753693262087587415693331374846713547689684460960134878683394241346326074103149585161806401455024075778167224900028578238710368604307465936988573806154755397459419726173874404298732040267071768212154077346336546997183519543211206469978214009822131049374080000740056112265751314357340240583666051659360355526682746373121993266507835192743734659957006528172546408574573233594997685137229141537619926851064626499123212297228904232618255737607292336987082959573036182856662908027526084444676495525721325791176362246729993619189757369331526687555489875485217639326736012923837135983975282916005253721053841421148972852394037927478915459871078172137578661731473275434267742546053825385546246986750316954591158458528068818769123363179494437856283907614686942062017420301440956923067791531174997720820353944063563398733998545117877975224825644899529329665032213968322840604309366851943068588269029474077941474110137038344740706071665888769019850170470589546305271677775113971810587079615308554033544107179355418982910885826674141510212851426447214088998463399090057622530149353363796956155529126927162142699096122268130802797540841300599795840981978129161510647433218974662494228223196596306789879779748594887779565721191060356420496076416062196682510171088065904066668012321624837734593865688429957008868227135136649661192670244119452852513018094619717835478903027539042140729486886038900720016669821264592848673186860947043532120627830681015859398446653240090872608289917863878318074214101356870988820233626034864543013718953097283081633381840568735582210265798908835628287349028940275343148875644427247217527438268882907395016051410086131178676610451532423635445405871518125499395985705831469217064083765079705568007795202273039460623663253076920947179658930634121492926120717994548534136516611496308631205646469670676587100734080790777184101753214035915208853800551448028737225685230209705379129292569225095674898319403297335973098443598667668428580943130722778980505407061245916472832810948624617341529612086397322085774085338740068851341739012421984048488058496070900738836248142421960905701094090362478866915817480608961176402171351260936389050981339433057329909941961179492118548523474353893812013349693417707532738892193350484999890917259549334673708205989369594098608830135261553979755181166730034082509113949418728661225084058009057973127296521846800596377730655473002697361163868119174816184758095031110387325436892095976560914839517792916492226457914901885324872920733601129707274755998268787352008773944844550788834894533530970916232333660863500761780873419197447935817852656570824485562583081788538024822336583465234539135235711228169075400590171117225748790436488123178438614663095359943732625173283119198722352593296853717865885164439883292632411131013068982094479113018814463164092927734237711472735980403877327437675408254385540595878619583120027107510080982444217512137658825134054766280020497335449180610948438144588723445157904326725414713084255545641537390742911581138228565101036371614811032869764834539279371920932518134398152573333006250715818933693312253399544687039367069048529720708943057843253572951669476425545579645678517827586794175247415151137193125199051223074049453090457938052725144554558596306668566709477021061766225937484036938963716312923389831686514346333868486940509950372568425330404898175905298238843466339930828182182668100313067528216211538589786719973883175196057014001739186456212057352620027536312492916389088142803118948058299168095245672778070268346393079435593277590822755233770392899184858233920376023072274262479872939086154864527946450856105684406608336687839535095114940248597923921576195408459667493424458259859834846020816314049809793691542692566197486111711099952562882244818663934426940958560892476476921530805973501450101344281132643252975370590958846931307085007677532116349914178636120093618773317487397443804496649914724411801985452136122801222586799002800463478479932791636430121783196836951870075736361508674400725892006927817373284056775013520804384397510619749928406009433289778677064718536496263464123703484013204697113552804720686730328817280884225037523588122308073466345605736381239811949410225725335258620540843365966579062544580444016919645601604435492223291202168713108983723264402269169916837061717983047423973437391120835364978327404978305461328284985077985574870891271495305635637792511299742193556462424960243882421088520626383892475192921542547553175269128440220317854286789353186359846840090633914544049316370237810647683206546776618064978487372344261308669498596871094020878363763596861636525666884863766808559874120920979218931646368353418350496593888091802800393577847573611634888122435326152711018847560509348625891058620628503172122066770517232605433048863158012834214397951227388338395484106212975657585530041675588080253272967353129370175495598910736183078347993165429638519213915597889170729266773503779389751644875491793018193870956414143875142127131120390795771396817599897183309393511199052346226004966015677322026156283380113655724523080732146278240887239173299436823367054908491186188821050538762792292536355318389992340680490352310386182070318981754717884681417978793665027035104414939907001766674241158076592019044918344218743258566551459784089742000045493536603448233381364050802659316997514689361933514559164511686293775079515963159453690980278998161399296310055297116565646630397646668388239231570171974452643031030458240023966456990672100827464637331552445818958767341029421208134027474912568305055485308746434702359525469509842224502810678733331952673268522709158822245992521634598303442547437853962879926610897762316258281223567070774890262467025948862413684875428808964166827317476498279743452375240416313070399884339896594018576004925378012325181582064969592276944656791839941090318567121150387078575177354148544643306213849990804246354698906762320674912007965666818801760190716122344245850628423373269522644619648164014705430911525774990365001769270192169228608068008886812350879581244459392639026219957005395448922280840114405783947258539820488006727501070529423822031190183619224457664374672252357222932987243927738002008966217431051658455984328266176486765948529006576119842996457311097137298529035543472688475957515237527936913569170046365636668931290817293355981216642758581131966397979431248713983760856548242505623837410086099360441294180365835550198035128642074204878490253865743706605144895163453054892827072361580355190515093465929769428160056426046420813810182760828412411770332801433756282675025640744533179251094051812790342394434416991809188152987520161018479377897350894083581380930797993148393756542904996730833527842074106185769760530560467712059125362318982163214258311834585078162855814095546568353995054691408244474789901777412581115607142291674567253244540174460841252752597081391356960413378109892932547207131118302822066183551201907282575800979505131673851443475002675028431161601820458886218723203025145989770192269876290329430037476159595894295800433643021085952219037203170908643078586356038580600820229093045755820442238939961054052008741401682560010994476687292835294548789880997762989242989666311778881917926220209333598229963790461596331060770008613529280871770147545896462440707620993664958449417848531739058678156540406289273841956924276966863776374167772176556380567829184455412540025501753219375426269860247668169626339399896440916936948893440548978876763875712351486598663194008996826268031482558323132675866314824388647692996348099268899438356642149161088286606254814845493916101182294235109650631705656798699476289960931422059297762776584004805404035350825061694694843805648995064168157371764032101747415336511629225100634430293192166492531894572297587310696197408452170608546220739159526691912734490861846255644620667311811531253320689053025066489232157114554743683357842617871401003761666830986296481096386370926188837557101537470156576453339087243178039167646774727473310231335086731852879341136759937859893205038833907791498669011936221593699545149113933286388804495693494069256010386157635458431365911419249365308820551575241894499625812178411939350165716250596500087744811366857620791407494605712539857205731522949344967539374994329542756144602351742741494136062247278902440477422013422387215860315819621518468869609658988554684016687043079898599101417467053439884166779543281812189811643094272529001857822989766004898570655267563857060670261354893112103067451982774504369120563541254427052995962863216304036296507993032857897242131886677698172490714385909809111906415404873924100066328037570617658242435417314894253343723747723825478027350587020406615786200186793945136123084053529528427643911834034693821859159723410911960605152879604011736515946764902048973444344832397688541145534694609258422234886558399200656909547640714496529896501676496319926331630050277971665629287806780811664092358337984398541247282176527361202212533539919952644470412564110218357863072808599015035275788939103020832680769369182370024797323368973041618770567322684856665478544391904212565439957378494770943897472088186137162319705376792458531285362962623060237520852704561158175430649995915729831176374441776259015571129577660016268539197329641133734181768311354688382819644067539395082559048787230739489100777483800226477368798936120851244219667859564719814996310626311033736308197122376358830242290373268608099924500083814259819630503479221343818154549939351960715867455250267065996012189467744996760509003737189726163657129635229134265998857928691841553048090211227168307652400145460163852617971958938664391156228462726576118043791868201440394116798649543449438092311797027093114482633681231620266607688305595627415931569796502663008315622286017841645184149760769549827128304859194550099524709131953432729443673066537319887780947481543840803302127784559560118095158381193953441713778700692866799800358226022795607159999098674503594672180714663246109253240549003030679388994562419180954049242979881727216617188566548210091921021698301920323690822207784896563375908370622436047568668081019594947744440207926173104237299484714502435476237635705486189972947952665566817134285402716931169395879213289809431923122496523790889568955303832635184587645985394960953756483080803264905907358323549383741862304645199715749671124265758595713385828364288604733123301895053115186553406303673998509490369940117453975804100658278522625506755516157984156660594343658541810062905407484646207901580304013621251837133591832177591738071755548494014638444684977262502307624248943339472519607388586420152357755971598129121916309611479142696791278815436771584311800672877932606593511907260374306755713304665908784158744190397686430257737307733757295947186284729097315915654150929846892713752529021879849710667043903213867074909872805393651117439583961422368515877671211964161137865338867270017717021131520232013844100556052749205710073038016745835800153318914737855878248739425819496838744342263001582194527721079125134475185373829312736126366567162496542092379866834377651316246291667797020234187116344918773862963956212746746706352480613515510837116419486472930452138349390092072943178269773457007809225856848417899578471861060673805308198653009120081267554064359877430635067646298082072898000179795813265630660685427568736608537219242804578276270899570245631854963062027038730790170574331815847524480291131629555541452518450764720700551356218058381565108854479780611532457217874717693719344220392240614262047365579800340089514208953455273518912887327575607630212072988595967460298285579904426136135359172630420264322327231552875480271094204171726108247621440843583524164046302647353559389779810136454896062158747049602959574766060407506586185376446649226194479339868009557991229750040357696921877760158016979471452229400168973122486038586845451670424718214879517573753637503331882721407868344339206276831221550168318958294411058993614427789995743254655662013639157724164272207320630802872093582110010141627257207207582828956796760985451535022122710724249965362987576425194889360515627194439874419023429095014433317740267320957587767695109068641254440476448138843868685749160947285856900805918943583884009535119328759652103191167066471746275487020331290337522450038104020781928165245362996362822354339637653750807969267435698672141474996240047735643105582766745340406636533583540453421758759019820310939109528209464645587582432891527820152549691760112045472043583485014747897770269051469335963350111148064353138669877816869770986362640968332197232427882947136730185789651814944774090518386506684965910130430886851497540045183160850475915419149345275085935741694908741089476880169180392395290982446055448615143002003903102129840720485052378553979841018473306746690681625462608476723732731046256222071811318408036788595791706261879973095119715170745357912591259681835377634467803824408693567190886411395404391138642693878570793080128735417598379759485246980222373754511108764065419704385952720487563019474889263734966046260046351412549960285220217320587159916159358933596913770795629961814930763126100091463065562473603585387911721828848424484885894453775915982595483616544721754428789367138961311229758030736744791383861940416751900115365078694783583326008934456492298929138654152541508745660500944615115275597703716816414002615472905663337729383387315085401870441197099884130053664867808838422259623265605888229466548118348249003117181585046145107982688344688873789550637266668517985228642122676554678710183377623598435433524908337800386333380459332723624762657203959737067906911738096316666959503295880783787634823715770173294996980063400720721970006862329899710673012686551765800495384322252265754497694676451883186111289411598284031468643559026445274664652880875085884379005656874566893033140045169069946796656573421182519162783622885304287333240078156965300416835520532563183989382517385005120801368491545461577471279935419791814711610808403705409277080598502050876789295753743834709895233695186792421426275017401932441705194066930530190105531521314117668263324301438160607577497985982897760381469428282055017625521285984062458673510170919195420965742069452632054478662220123801439685727643841149462306580544890860312142027714677442468536851004871099339352906888274279855665954757265400047443280793224379908687207831556973125765335586777641655663637706034904065879165961144661687994825156735452557814796257428213158165914682132680797031188800456111476284538252136599179869579223905625241916990935331399083689786887317599975783880477711887838315906953641773006162211310653201343043060012891424852310221010961676541999790192084284818436361072462079784760843090779096966519611427205422821767742411406817089983785485461267818744656634602084405489378978333812647085316475955762620773521578508424468541263092503328823692807245453685392655720053510344368314404408307138089201075301477004803608006649974695618706388410364893049527973751200480840948938332725768071330871988973264571788022690265218167695021080523801315942226295536600364705722543970257325268324291260878642384941618689342387858400282759265388567066102944160206262545869529611651724387812765361026082799161647722893463621473363924969839564448013434048590085972001015210703403233921052282542218899128960761674049748855713051934451776404583350969083149144709055103418925676814965816500935893141523635615707915848334893610996119354563481809876229640740765995678008034282202858411009247938059266608956634400259667078097751694565117881748744704690428025727569975657094378843971531674493948744951712806113498219127748966721135184417694397845807969259273363456184258255088147488824295697843870945735910295418072511237635071391413036696963066843143833667103252541047015730464367338726237116785408928887619195583921811756406492674085999674591292348468054745159447971440716772611021644651146776019118531060132094444616393794539671236252054772214415190628179991558080801171024506607723963804284612342585120982246672521204785304968884549934380922832925018129214074446342788159834854445602732827733674084592198525466199126460349700110888407606030221081909872358703603142358724881115354187516278782699877488077266684746990713406827280920378633642365558655513742338525563475229546203733008279940198588037197256074475770143198028517194114729600074032634565514692080527443147725937664996327130853725475257249627703186719110389494258260197366782822650328878006822511191541537675401169688069045704362030639449312382947741537946238909995462218612877914512907349726721324289418725805064738818548880611989874881525796110248833661262030423061145904708211360750402824303690052613586782971691820577007945144649992646681188808505404943815790094632499090936956230327320774584227895191278369395404933174406157848186364299821187617594405772632598317813632926869627281387094431256396858672564585451755098254028699392980589549612307361437689874245558986582231826469454011346154134437593688753812872482763875222003378482157431567576776576648266798005897752225434790083022611843239881238834715595547600778144894698855358263769115013929494065062783663373140946022730891923928270943542861726169692006328517872816567882069840958399726272687906045088810985645744923151564821396491400489470208247572981163345775233121221279482843149979962762714157645569076197489946964073170595707567305147887988503432530784121808492534824430162720071323451865974357072612123494516214567572266888723368684394109987041845134468956127725776168446698208943701362641217269801636544736440669349396123427782478291227981036605205256568031662463368537885078193406324763616229731162183918767702494363516826183848060106215404206741373459640182008987879314521319462673533560459932714759053177354862307083340039706627887200763770636707109362280648360045464000812525918147569481297969169080872626516922973581595871398890298420554662468260251278282102163935211845357316025492659860326149715835447056456916964973597496968885501463949892026075242644420348756946567364760676260187792656554773135252549383509346797602218445516939515986315736304430630341138004824492407666616265238402921388705047446020367490081820012402822904639893951389486639801296781358216821702238734811195177775016462576789719866380579344779219216495392770115579959021825106434742013631272032700493189885443847215345261554710162978318863234925778107618053702983545495785833746231614009313461728730094354327348146237331234920079398408326493391300878556177922624899192281474948718046761959621317002237048395177930203834531281246502691469132406821107324172704732574696425190163331142872636062192156513101540936631943601488160464327708292250988756057721689082189466220260697350126080329607255060500173119388026414682043182509762672474870159693307045036560346451069909956689084795968730897721431623992206151497637365427507280326836626678357812976946672865597231664351473665114135583719840609115494430887391118182702897930533950928727309855406281278367024861592693621717766145972996540347027564557545831338379683705550458391504243459923247675241115732248949826409406099925799315334779565238774441578733596875415754589165639062179418108706023913806889296404115273225515099761545590112023826715604121348074478999801181311681371140481845150321279737419344346908325002961877906899633094776689205105848049128422342272222865917032262175698656732109627043568309743258741327022098385233537061485244177219149572323707393397083064537408357450970896610772983748804897286253097883260474982539934430858126233775101056588940612869850758328044222593932697126149798549652470726692020369859491785045968066202148881755606697683194162555356970355609058517509246826232489828515405632338989405164331788459975052156358979145178632938977313466896228305848691916281341061364494507078616742124565217474076084769188750987427743637837060808297016698742371703493907274716761862807728183661211704156822437828081661840362771349477958172786363782681976316656145397430561085345538614843335264585828929970710119004789982530624305715480557899281415677008008802777981074551346487623846840400949173509304511055328909269123145135914210394198300093613230190813126348654561024447489985934421002150078510220570737149636422457763350359227550556557065463344805231267186840630398810856398438413531155533404107720332740692110214936457644634096254543226463674656821767979734728580069418017486716229254155973176535603176688519882049088185517806824929069118789368967609089803403056470447718822613187454530249507146043825517749752966845374792855822112274961692452953748074866544164086357301834641492530142902767521475377220570835581495628397733320994606997967176681167257772180165724072814093717535312392329487704391415801809928291401154609017871127831373788338704921559673706693013684952545227520211466914437704754108996911007072514979584778788649996626528884574225127479995908617879243739099989544286756177352398871714338096507390300112392002710122583545405705627383975280164026171859618799741101041092439091545461531874255899345228423260451865235630856632618985048462975252118866172020984702172669200417056610000795475789497981840278674551269797655186147593396666691394424917818657899568310898672593690198805864662300594629108685850298932820543036198710211704437520995046879988434841029597145508576713512980799250299871295476804656156796722109395823493608988265646431195515125426308651507913613989185219977160387314253704631984280596180750499641900129357585123194169500288985285233234204932507838822547407500293012240934649274229934773760236369832572423236407656022369589364282778465085338592557572272649542752056856618949582399354934605757789554181877848948055885523328889637306521402028177234021751417893220204755388256478359730321527610322956646991504913053926819872744198160552363642592181103568638581188570716185538099591578604418069015715358925776450261584192947463276250736209342468232893742578665990115271734907666842837000232451042047422272395980811375699197653371774340291345422555187150428907967561598174417081172071934924986310061602391379667955665474023617814326148541004017489226814315586131592415988744350641114234478430720780438673108399839687130615635640062141608589223797184829589816574113676160892703582392483350888306018504270003289168595681569497376573028602962023127514546764509536112393210014796797303256051120893565374065631735171531719551425319448051736035190724383479740570191180320885274121667922220359334804006579440423183946119909128059229266278239384274227343193741611463243430675292789789009018614685528229164321706063076076716569754922618578730630158901904336558185147263845839919844516168901590784386321204568027773143755514095278030107460584646302298157851220020807153155854969643334303247525625581541804295576310070001475050617053155151244855134374229145953103944997063073638033717168939417484408165869510066828358876976683152272816390877618764800936502502570637838447009487604457455844563946503475452784559566737717196888533075382816534127406319897022436615346745897526427964189882416491846935755296088764763875739109212113480928970860901397085801487139924001805964918417901927487339028460044760631614994024696067969434125867145485278806447902133040469636625465127316714150073416368050475903646175264417973274910514360885237074651133007246801828455744292281854585924435257010221304979303557314474139504967440605352364256308737971185837825619623731475527324400860759414224353374902993849564006618574648256786967426806821695093508841830824923916875535396215683411296866064245949047181579462809687420444101746769056160006475783482138739265477667379330142988056748316173763510541255119705192053271552685445167906079162856562589928347071659867985101812118909507416455140437965279021004861888203625654453224716711075338854175275375889315368961078946357685301916152907345180552448218396419115664460616375134599833810839238070552952800128416576798243986877430075152210712034489175368412140323696082518686617845364067027382088260554915745635904601409687220489556450805854739201146262270060746716266723783727525255670485998184643571706431255987586365176557949327809829175309017878378356456597323622928233325394792828024338114373478109343779992602638477195153107953821576327757162002556935667896355189754829037584398437232992179441874068071264538065583466774161736997164084462688218238542306687807321180077206843123703034362803560012838981039594693740177357835222114302290573975543719395364029566015642290872002858914671960166948341928881996282638323531624338974957950641570673043747759392791161529740092344463159183278133356615660346852868681679771363340430946687228972629138484947754091025827700469870175367510314214464461987523690419777641090136303967749207624699147622229268335299861257730782484542515730422384551132885713072968397222358141637053253444670528814541954835749681352793963910125912403912859957562938065241115761217190934690054946670928774307965789869613869751287819168574034207211470058949201120585093207064890904290164430130873086994122670019195861126906338143520816810971328444106369632165041528539790238371757668368737351952122876339599920415954594453213496799516311067589164756067676124467419505428048138452203778359781394831438024635200798628288231813450566466407258547965301246572570663782281427060104305055240169637869714880797091813978992788244329870688536003612894001234502407672238994031147665836678115291696553969666162830437189094957144370605217189751855017040529446840553716603652766727421429661911416092261675600667533512296171871158617170643028764891520925440825913151569220286813685791586837837774917418141652066923277544816169307713402389831152864249342107760814460242725038950224761960031511680311241050351294965735795198091631738046131062743878753645374420786120821887006663132320506973377475956645859771328648185317739490908447548288584141831069291026755013375585952788192155699524581596297723570095452271767255503431878360987298131218573775604480569000801425855275695775208759009158862550563624367446410126447499644173929336524301423647947322166567518472828572736653888827937602419128191221710979376635843430586648305099169510488084396940558999807423345193969596868618704039409159455265986844650604436222535007632775476040599351545447694357197135490334586721035376495657013076936062709763336499539025298941330663589064906983521441509936812348238454580317637191207585600337735990945871685308654430357381229741308621368963144618062755136382157358584321103200142912765505402977737147479685593722693812521870487316318010154468060141268958971771178294176491105165262611770804052191388475420494854202894925349578200931553705781664606446960398450415671238741126289311326437498371805784975710065685610632431474135485152460806449480190136966978774591083247859717573452259165282096103889731581674176340188406709790952360812996325831492186403109236751680356442161576892903367744254926717353305863074047927555287768774047828543434253901089928003085936478436043198164885712381405746533422821249213948080050657042683101340718319785623443870524754378270185002700256236035047471130105551663224716999251559498714538112523573788244469170264629172587222430613306161029723949327415472131789823165820722808310519415018993416989698830240085872459468154663055453662114350389134478479722259976974160665944934067088459328419183775803990615035685799971091573168834124385551398984193156481750428420211320200158437103713618838944494995138608948512190435173829192633739710152948902822498966553391676369083449831568031805355791021692014394658689285910275800528211330731767869153374401515538399046534808871135883515153382484130469295511573810451179193110207095245233673493982060878636683386401995048541383233720656730113838926554975671968419796535652232502453461498170591480969787924046514860768818316572455579249022376346875286895400670717343900333143597677600618889175399749944470270607507885710199770523897893759329791160840443627710438272362240258793837622783507783812147368581887180414142350597372384723263470254193292902603418134838025816464431612816419074810630645661491651403760415808484927351714270284256150111605771166712117780779154057127751410538777401191352947002721444675258587949058120798182563643806713126076036172198009494415141493764277112576550869084934138419458590513538906538146474185316613039804686561728931433992180984105548417717970531125182810185774775770066955523069097976547360173794277318961097872239485039885427424632141874401136518003214159522696825221450017178966308968722523578247511481330248399529709556933570048041001583494701453759271584395182873875946731188201025538072781532883178196850251448734137424753062724147049724230351312716390276277969983375379109067301864102019404419485401636944470563745213680310023330629210771986989168821581840815639917742803946115134217970830562981599838197456098278661358233619096212206167049369941586611589507796559657389733542129846941758945597211405727838329596032320048648716671898890113975789161321881715941944483059565392851838558422343635521191185797446331664047680566379468134636983874886340169363332059819126476658285914483683246211220734769130877823832840006575868551509714930710505913093247283952319732275020508748874780814107718074334464193864075206330963565469131944395668647084269356294618863766027620931911992591770760070663501204165205837955944955635291381827523932312745104241172018019850639294007396548401513149825054022334183330914730844414265343487245878728567722946703152316295339887232515376371620407306783804214544396634657090062287609075103559452175463377465176643799557855451033806689216754270415290665477363031996751133483684634395974729947257717885865590279853507614748136945790120749740939733584367888295132685911304494205857169475793597755867639959397583379593642282142963284475591316007982050686411891894525521676783526249464792919282292380793259842736146244791697105546299989019512960581532463195064130661772087852549844194707023924288538747624731633782761671564610638483053903755014178328348959921901416588989499517343593722943597900193918370342749899161419540215193470283988843591609015512040689523572344644194298430808416460108434204125208076430750533331554789553246941554715884070897772036980474628707295236431937556403674587095235738708416502990473253564755602114571349400052639443117037281302817912861625513877832718676003957628753784966381623626523102988948508483010069382239823466542100520190671452324671546766409569831966862355868112615854419340484363942692400484626184452687165326710657686422033996843288314591872400856182796149930013826284485575203997462090579379422831255018283819868712136894324993125461604714440281647855466106626350762715094716443830053972031720396955627741648600259299198944049928313353594755427188726854681526340197105916974268001835468724351704923032394075535230276673418328614264229682222940038178975671733475008155071612595023119732069862733515608436944348248947158977781326201460178460065501828462424308141783624721150101082526027084217451730259020327399487405718595709278945875158452311249347463509458038476593613326212277686216111066592540105348866640908354815404718860545002726349667259657149683742680005297520772637251350510516024001168524673352312286017577200759111577760664789394209164834067474759047244837538394704597262832466030243927014746217104495150940349010174750764988617438500279298465222116486658494001152074124506489019421264582596058954820311693467976992086337762697050730989090902651754333255242785496083160434681363427601517576439962350750919221916323303562705766997263295361020614481954973315459751320241817992419698520664135439505317006167103611289009667234920080590554568753903863825730366659519430451396339004407242640765242759016923689960861937312894884960001178075117547145849507259676799802095181230598601725249665168932167632313792798674977488784978431662474049003174779577298209931718643202431430631801769535803748791355976653663058978764356728657717440779868526879084200298618636487470479088025592358209893400891258599578036317565368959479143736166067731941258566317741020462726827464002614184257482277801679240477889542368493182790434913946610673798326760825110821670234597681749256025728458373032430483373307177685960219643407922009708863637763101944590588325335291872895637466838528282522775694207346138650474671513900278231619745878357712794637182649690854817845963112348879712198223650955495097336410754114893039576274159556360197532027981700501592408877792710521021089471768043410641545741372297207854716903477044067369006436677554770734206118262017312335402194991667259508495195110801111784545208146331295945974550848099370928716354158765812531406321634173576587917864631951999642684370099949185048352637097999680358674963829051289423609916324390008036885504319936657101613982000790640984211302228835944096274866120871251288399947900568131818068518788113933818081831536745845992201821654305454781971028677808148572312712073943390165117533565248765435161935092666759767997271387412651712932041074560986469610615623178077392791743355780134627438883386813719129152082974372730573464421936756285052595825010430068260036469407811439678364891869041956334986621295420853547003414253382669618244608987414593884006899073208359601453995634937507043832510237820693870453654746569684666216733946492399082646498614095711062382645876267068739230361174962670839449118795878165361541983538586345627785038324742813669409106027353413447201404214927963516934694753074836416096905569236099632977863221329977070118590607253253583868723450820942968942660570436826753582833692850000281451272666368861963546806156519628022568154752374145859251096193963697127629891666561966954509027269808743766543138552716227678623528550940227456355873703963690514508387450975781931927997445423029143412669792180397830844209724535666166184184051932189656352414370480377291466454222066078383769157942943889880366963381239927928292285233809736061632225529029174484560875671968360844424538443722653617749374169167717172381852890421529631457422253736647890949624166115913518589724785218010010589866480098470869166198296249287717456720877280210588108554570834305656761364681752350505627268354192877224557773003945957218258999478834457234664537316852511565302121804227162269558768915515660760474452487183900559915020843763850805976062732491922377077131805618897631713995177812750050264919571155859776825334082611866357717723665016378032433091557219360730259385449915297763360039156004734172670320462780577773502468736754298874354360180231707544823123100828699391047925940714702484304381994342563843179643130958593502016773077541494708139766629623242136025945047475626115348534244369967445417459326312914929512328452327387178127839858942897493356007879483302744874347894461451349999371311082603605009951484677968346895995021336522503698947613809338830956687856664296550439571551166619736184605984542647877555819728928566525686389687404457535148581718109444210836214119361181075016075446052545766699347799657830382605324259626225214551472289713600143078584835088578000153102854893093677929636546963453603700111565792369651245238775605697422706503121149273717770190885930236551418856278044559659735739318959312715195127771705373017026504463203164623412499707167133997427866387089445359832393330911538523589303827579380924273366546276181044023384402683983193313061180080633866414053466299479387916961184224305492629676248502180668704813633449778689119840982695419426179365925006748173805640311618823763167171357528601291182938600493553490430245403495425771975808033643629282015743272470008214408712666545061471160262561664722343789928464037848181273023570581954513588524893902290261259984297735598602522506557089028192225555348326685590350110260155162655812222935957938817539325697218497049347159553841851684278194923832542952620959593000018452462980329980343717254420986421669580530848148834689497401225820746647229827716705820390922246071386042528341363169259854838081261643970056322602212733783523307873936286413432847764861793951711081681969006244274066249192035317021859175943820246279046385405211980027466870871019967184989600410917428322071045424754635890815691486447095058856434960506186349575184041367226095067822636746926627386684158958064763942098560904448823336410729195092118226913293830991664963484444222829395202165249109306362501683790108841090317337767915494415253657868662549848579946360457310684349315001474328901910280243365943799534054116578613825896114988910465161405764290471680349968982973858297508603533249278982606356524154505446434186510605322093260871528266475420512172212203460323912007937568561506217513742008723708414752052828954246285224924646218855611311823799532107515025712862336303219114853074284203714102522856843411791887293707650524477889798986912887391920204260592256759086890980271275062468612870521782196925909028455491526733080330687989168222989073730546418603104247009417596647476875766160915614656270155267852638866002718800904414258300634785703774911716296520129389289954884311654787939265003145210550395546910462891112150704579069636752133668372369398183889957284659285048167182489865406282944816314421956579836571946080070958794909207408108354202423085405922548368349908939591304028039804463081515389467166549387131899899199864145563862578326377113984666667775626969258763948568592880855206861156891264409898484135061325210970314876168544927992477641114481538625723275310495803269033928110811033115872724889445189385842289207455496403218906400171245201625705141836154963184052357066885765243190952979784542601137365868920314391212076160990910349971737555554667049028984684345974480326368026205470973568947658451493393879388408551983112231606762122698046269403122737509124421651104773226822001150250219092483178884859601374741170111254912462462752099066819592408055820630336889945718311224669618124842694978030426053835785035245198032554146187664624483628209277778134992330921262368218135621211365531640762942074309862500091380056787583040186025669622341652208542705723309790662804581718816121551389541854182741508006723773757918853705256601764730036689841440889153076081834000343112222346758465476726026543192170066313107159653430772874985129015276856235661385777509488769041891704875688083817864207767730323710933429331806609032376421516701289910242861349875783144856227918882404983100603967479602951821489642164508214110804266323154933040314620993564171883800994325460534462240674414651146793779361341889280290684091255389258305445834485065271769265154798837298860934547846152950111582788907914002693153249886042696957451547825181042048852196975194314598435280329792074180389254282830190818653092466810880088066806520361915938278385046485297423122457465039884440174755259478744152204680370231424474099998961363089773354919131853802157839500768097143628342681590919530188534265116292910237592417392721496453941837989673795037995090253233743715083464167618351720592318465518527491070551643877956547260245294983799367133871347404332109132703277702722998459414883694947431702991035259446451077355831079731162606929652566786313368165432775499021988641954787829710069103227266255958485768026728326587176299094731568208985818264633778541701792064485139250018310385832934214583037816363726518361501269913649183250657337767462795143315513874936989849226378663223187297054993314058534835809546651458264909459218821327273669518535985032769133350171755006455016937728546311176485478923041762749514596626282453035696153307899953256545867921863560417951292494076863595239659511289345710748723919639515475993606322394192698266432286589530482995556983891843047475289888027467778856900371203695595723543410270064036174845841292134233541466064800775507619893010086797336875013934056664132674140906521898110190608350310428687876180726509360463377845528103863189516672764795853757833772690519848130518780042637028349080600617730929362756449247078833286381838769031115035510646308472008267188733323882827459744950967238124062723033855481977692401633525495868366128199527826620338169581215822113138276733991218174362159409328756184501589396684617650745111548278834483817066323638375816535358639481259796888323105885446897026509475138267614502088759001090973700574341035305677798895725772404330537061400857299857474852705954046127386179378445004365503325551034521797054975362800968527921442818030058620417385726134524023209979117083977173674024055784647462271332614578912021032987735329736095422894866335776988321297694708181772678082367809592111067014308406290741852386107125675386759965753010486985327117555876296331606463610922676167694526449789801430695482900428115649933821969140936472594992974118605489698620879017829299848577021304144437453747713266218299271492017840166969893936448076403724051451496505320098239274855546270335514813108576473428715561461828300765339700589801698923367815352472256956596937516855168401606642401154900665208675208528818493377580913759189913726225515806314242398780220885376556784542904865939877971928650099351288463140697262103825764626812941248791012333144170185026888644101241922040934893563569134566189602401193233943816276437153525701831669399094756859753180440253022625476242602429335691802696766882985574100480385622089685300729100631886273859408492121726124510879150258174919849054400501554190732240741907602126035782809706801089526424452375995270569115942482039285820344027541105207901480551416821865832237412669791285328428272933145145303898259604330575568059063989075859646338981429345593132850247285918634664338701406799350935763111384034147703004493081498089909547473714638810258097530806014421935610884746249021928687255860481277693110710327575685387591149485518058136880491866409037606737301293852668919705353030114260368150297128911666672870190896523312730966479049804658895314792766624459765905897095470205564702728920266290658435860255050356850981186972763141105363190893867374899950020032750732724876685882772669412100757397475626915655514374728427287313345393246710846971598202940899254805116971332396796726223445068326936015851556680600169817211263677212229050668703399177251065685644064019168091349852092576969668741047913707559093014584313864932482585872797094439454619382307689110526043811864921137586241907329122212213455916025538827385246637574584028162286418103893610729081344406027211266167393628902169680841164744364011425814065316566316029969296644581508971126467676985497505510064396812565375324518747247933441178680544959329949152615291911160033860965903698216506863607078970902943926479732286595854779031571332614354932138712700785079339236942349897107711822710725537874703562945974030692086767266755155684515631084783087699555570347360910481779847370932241383761313715956023828528482936443121707554841077581827217408921292445253491746352139480440824563093655614538501941529773779948370689578303294304412688601432177401820043155009176380948536665503253987080623673378255127206260984685804420937635132359940917984695683064941074580456618397037051387033897710107179864548311590565177173618060462053180363235711295622157220602261339308584573561228958877017861323825046873200306305182843945297713787840238649302264717662106142642738812235636964027494923985324571654844332513453369431949041416131077621904341686031537202140438869519439362696624395883853398495918049047656714370564635576194316956367946109848506052531894379567735244395060608904017732062633593063206579661176251223072873639347108673609698011115689089858699181269753534757916411844931106440141835672479631410046081129187773250820854232802788523845526024419417376933696025436832542052673722615405134908548155397204083401629605614684375270094291082188984759423580103477939027903583214524170071029315842027852033979395137065924750385878497156905293405662861816492488126599580011377009289335924520740198798275931798875955915297044561370157919966904503621712187703939150541511451742686425296170210118945155730202138294165474573987655598620500383060195521334364676449423863107457937822315116016517496083731295267647971569084783952618751523078417161988609059292625160702101337264340457411099308930162357941860830842632760013387847458875482884865140058974147788497931147640483157970638172405648182166619085858570011701124124812824418242322384154440404212376016173775313369432838566948354392481078213067547796120620961507361853330157420337429223003667979326111576625708039313016970582054766009877050306975022463103290668636652530439715211904286318595389970246045731854876185875238369780827126445303817979041212319152774089285946011052276993447370725226811163890697253790265815524053797636243294576878114439508556986136895245546784274400634567153155138148168541629694881169587253635363880855069212443651464574421124487596243225433356445398423316763688996173259711742512612541618107786238561830804075162967543572372491067087471070230529015532684118471908969221033887361426242597921274147576689207167596896296893574662040193125187960028150520926646717937272150123963267306830003305339142761306520488239983255745988396346588424927136742960382259038338017367848479912934633366709480511842735535155427542223190796079337476251757144408572956625563207840635021098143465771188446846823228014418841854702815673753887758564503434308288800019565128553016979778726868198067314520328086815218188331167923480621027476479342489580073289498915558784208687801794010677237274307541355049400621205528522130936753717095768933784718172443374293850871623658773233767663624575885279146113891938227280172636476907020272594415833218556198033704929284769199492019633180554820264420261658093259878087862206790640382409098623465891314652899580282981011081305545777604347324559239430483828724041361976389138346450217186697178141380173941872480883455190835122168621745046044316945625719602259685603035403397053828319681297470547050487266450831122049565178387642629928852422401684233231814872508707007314471867698857234929326232420185842037715298041853116024687043290221436172425903549622122251591090876169003694977623448331518449377789543050734898716031050660433079814581433206095662883777506804710728656731255121640146482379933556457228857925430792761251134505522829028536013369086410068876723247716296198347405793704914671335579511182727244233907379489228903770787229084046545629240526776590092609334787733462844553510054939183610270916479794674030190218452872764442190589964141196540465850084471597588435842509178740959229489880877410587903633781149404079780675840450043782698654128413603246864940185085164203939892646585711805731039902873729367633364128399181246977334032405776592054042342477428944585241143509924067080554151284856967623809430504278559487850246545512631399306252873938035409388749424339664590697858912733943328444249904669875402562348964313431660539435653081627045698174855202429497817529819704153790648578922433442538693535783465943620293673479421382800598567875943305392858564632747572998587330220798253287677932648073760966881516287478481029874363313029793886201220106276942588778852994018224311513599966236094703873199527824277763553725616653197296148672653870180348942927632373832437001070445386155988420859636414631378011074413498201437937595551536924862460391590982380295864272440500517638078014024506854765949647464899214495501397879985819510292691132656220039600077801673091381689356637199426824174121395051705133097695691585876395916712956737155343327904743345231703458578302006022651768081658720497483565016855848170686523829538527506883809616159705201045210237464603584044409873487486067472326031946515161158239693766946862734233710443409518917459578405306092979414847524063394925328518958967907812272286402271124143695789744733085580684367588354434643768642552654026468972362497682418331937830252956312257075244261144502847121603651471321198690072481987166005235061417831045468349735842137183162579006831561450076799078077243215799882729671146006620000230913558381895919631783799292032429103591599521702317254393371313842446470715149861353166707152928253459016372829760255156639212468127963540582619392713692859477374022955749983600092518154046181977831292457840990232726287749975159998089779068121721710840147439290508281182284331614571612991201053146479837888504026014098505210601423012139377676438022409887023078732259362937993116171861572669386315369572917200703671999168908340122415934759452576244458758479797527230870458768107219965484345868927914584846365360604824234496495262623381722698406924519171922267688070239445700816438608279362110683270017184472183769946714834036976161393133261594937656916124988116493336416691850030833522552566468570056471946599321785661627272753329612442846287164664035266302806292014779326009070126953607633976309350602339556127585905911583265870777185821252528673699729335465770655401170045180743650081223984266740158661709988249281983150711261578915236167622071126147929124371778906842039739459017294361607948708750777293964436955865535116478433448158341727555630140857046821330865854141290677960205991797926712876025796333309903932657336142711986123988067658451989849858799819957009014358648202123862060194975629948876041407267184131608626988565148334297691100064377206342768691586725692327474119486285371201768640414565280790395840181046312267828461755059343717462052517179622649180719977621419575452330206043130197574020879419277274946282534068862312070950273227423115984365876574859485625445592588508452812845976042367395236543724163369488314929035990358680281348309322168854612983732431849306499970512888580139901808798827250983914646406609438201789587864248745856177556749569340383417726125514756518461357790582376220380992181483422040664091383122502216078545868524706934860697510566938156669304883767964694937101449822778274675030789268606965531685032674268562679184137509883424041920460510709430278063608515143726779395583819450872125465416262574748148735420295766176481406831513932169671436455623542549458333857623932275908688373551206764386836273695063696227596685961910842950275457580703852139351876048092236399170296165721420596855867611979640901627703909262200670464685013979731626566690411123704110428243926713001104760514934655319506280711414341896936750731629116779770312500380094474608686338223443026124385495860828415262995765641617170613724316827095527878570035721428738425016919191878424257925919181729502379055988071313363789426601526868082480123591449208274266304699007389094066081778996832844513987641636479695049371862942592786302223191649584418840557607871993423290243127522179817858513433360850154026422309352676976515136443497238617352192996338251408497441637006721979592805400102602540847929851145271424759611313204095701032672677551717770154722494953544603472348370233468762873572487604564737541272765230537932202804917665295461725487899462873005002805436079889450435738517444080961009450325624325796885527246583087044656888405489341027534937322624719866029298184314706352275856527311046491543337382294698106976060765014698822695730201679019054129347471362163173044839202868433644092411527884949702529660715646360251638349157806342749952955592852505543646891536660355556152645531205128311488033220351753195949819607159058676324122930492601069248842010384280282408904320830383744500514089450480651325607494038986088038192112985081920381620552857258305750324696262932537791525018892739190417866320167086445215793484510522762539885816053898954071352129639983811956706908502855877370492015006973236398064129653314723715694211666304414016935362625138443639855583925673205004440446442010859979181678555180649954769603956433943572376251111888834966753086551617870469531174989913769284678436684008051936326017447245654850962555178416076512340175362109859222465512579316797946124521810531132639561031432683135892900620514293295759814218700289937570271326170029218782589561718757537014024518534665068014156002720950065875624693818224223561130616364323318667378583957604065825490321695879005918306165792823733492804056917751779971338069973629749852843837226232235445747359252816823846043374276279450134504778984040940930637672751234305226513552945612765840886818239785288930609899054993501930817965641463135882703836863854527811369653733116413451618494931447389008644323543898063039862118524110087526528614418177634977769699577297953739206258488051166310208390466312673725752091187537733974588236708279730912856287403875433115739828787480632350071310661664675763308325590553387662570294622757192285943579891720975950663606187719825610077569414945953153401326932953417327362216523188408780280751527800691221031150844436829605483218191682846689058952142270316615674906861831644099399498199382606961131866561412976728313765460443744636392649994313678902472317834118771744296884067727992519102658974045434773858002000570014270945252081891511482304659158610645341530003142577244350587391515204148129202770763960254957357721077932965995053342284942669783112921360679884862554231833616679786138306912702461216073611751509419485681302375327447054751358997479289291502697538496965614015446238743668910476292249366934990572165107783811201203803250119823598624636851049582001852232692639578040591214887725564578155864281803419531463744923597249750027661881476498259190307033474878712800614537789696214853257385756851446853443760962740379971534029119789131785796873713226725864092937403435907530853601866248078602691055123546580606396582710977527330045316830208476509937711223251433855117260560929583774913295404619615876769907498306214199187109343265517415929166817870137249281886838960975453321761343176056469711071220925592258441654953656787529305068412437256921707410901893715657071160882348481434124855482167895594072395728973351899954584780475949939165896338795717347392842080538389445254057070345891208258871610264985267389349398226889956614607293274003987231099148544198114614694170511158864195232865592747058104120641200767144463332841152879101565647206950661635524113689855187299662120405362269003850857412960181916229136946078275403427526809164871236873785416704602249514665920385504301354886324269250764249820059524287618367796440053193139665913637262961563483648163644281994406549714028132692447222951299015080447212609877682751731442161504871614740862692622640796996540771001386131769048441318841788614234521634079724222556288998750746673332738371148695067807497237538330403186696291506743465554734123497783977980480349681665034450228430591136474991779847540198865964160199594476885673495495632023083354730357164716293920872614012042633163192640394015842811948867751111323747886831866881511197716148621781014859980136341577963350571888094400036640065202710713717654541078615582459727005757679963489841582972460666204222217705733311096257468743831821672059587633899667326978750349404845412270865047992821837150301608914117655501665068503424324339740977914013476104915028923440749155113745111306099784632856530800024226896962965443030878915716583777896998260230350210539750325115162473093437569149529837597617266046819896364319447431496179219197016810488502006348325218674146817701107595807740485103516578752769683603905273134352739543316098861956326852478166088534484040448338857286726229643457193275272929029429117377770471444696942814341832007588780970074112293113162831537227078563200406121671504258230900465135670462494462837244811333774757998267840059720362605089492634845085163317813731656859791992819206588155285439305185731328788946307353863090641320925412378348414901241011248732181238736813978763605248323921200776039158465514119717495478985901360162006024941617693486474173941705371730322651390332760047702823238336453450978151195043412545649317375153930458206705631284199295902285366641918481829002538211961164302486373688520040010123218255160351369839502977313409013444055199713979599674869255017236014501224395116997964375295261370106212514109117632076006941535929036561401228395387132148947201950267209756763526663070932649240093547128235097747394038404383061052544701723906929423376045766083591969682827086146776903479376205259905141741151804323364562229742147903273741633649567676178083762161437261329196903186148390063791579638440070158258479341865103971314313227413724184102492558719352630676840885178129768041525933932079665905813405328756183846254269791840776704315967814755033544987132007095087175888169401653369801934086420194932945997279178644646337111211135361630382678481965056656770809962706423265726819275748516365693776652022471008046258298491539055732304856022547441294601747358949024153365362290728143798117505757943478896120306204923913289030133371290429544293310666635117671590132272559024458500348872737316289562102916311568226350070985531210243692273661588484656120761137801633846174356567489718345252760742280387688452501375732327220100508568675221499006363463316464823161200459058550804512149185569406765528662616194658151837413596000743641889163589510846149457634641176362497647282127658174455190146733268386975624828016552287968960341652243495008735720250556602701545620995952455996252768493778305321130746229285669253467409826602351473741677029421356566171024876915542511757716081697326626854034020174600110559512923703864498025076413268175175866218490362168341460569497881289307953884724833711464722182229333135412434888144557936885164480712379157922313242490805564421650062193971057141250762851048604156588168412490751744498280811823919653430412696488768740024629187138550547966073592113520525248985467887272000991566517504001294262705669412081464782658042862646472304000590745587589118746352663077745216535184962525851386182298426418361106050866813710398650607807165884542519269694534065390013750984574037295369656600053042082040186778240291030176488980556584526480002929042480963814051360572963196714079112071935898134724425276200222553804056334886518569256824333194216921385489897232388393202167625246160166213235583478429337350217722111069941593568787960222492226848509995718313334314893055307962282630648723659461346143645319927446608299512924598243782816071166775591918067843811297502887227581999396980160154817658597710642146671713638971059094901373236129328055692594617057217011134606900912637241693013983335854456828488400206013310575665468330894712053592938765794264534551644064963146434622141208293297764663641599335265517213306121898866158026917466742011787770596084474712992882735024045724196574991429771882573111433299180421216713089730356577164149324783095336564435119356602715925885719427085986656796244647726061924204471919048182994380824112435555177920059114329572265279917946687967798344164077862233582683142290742117936161201485890383786375194545419984929998550400865837241577697974083087708221149243992276612496617047344135555311739878864016717705972827191775961449003829945666236040480512705042913975719871779392315388711101482982923139115894834412517259967617724037441558930931736886518488704548068846268919800127699719817597478314969722416613398483009640492938136731713199650377950832291875584873133207747384318364434007276150024438082848794450732857964836095482835983468152318599118764980732010969073214453917897992502282694705893108935524588647448613533714415982736713656365785554121250247815996331676160777512591826448277600691046175467810054774776796691034540542158691105309765907168577765076720614482751510545331051586778144101858447169125073219156806032177116155686530351534821461583697904411251442242557805052225321619586144580464440938487689237217716988717627820500766674218321718670100941513482123642360363064625310659108407476457827972565759771983519196503683293989015624444617415767350013149716575182458244772005259481665575404391352292397012182703882959823081619349612267274094362793370796921680002037452204987579258010312154543360590393885186142393578971055401430018268841688440785047668486076411324168694412787554187072815534681633560537259521943931302725682746390492668633388247000893700047076468252557522223167121256318299788208769799050853813826245160720807138577461716549683755674278056668296260153219070713933411195157789730247685726390251397477719870647394730620792391995904483546987917802993196087867853215043966839876878426630483255090728649407104674265612060322249261514735454442491841955136346503725101553610971944155454374259331335227321494943348525109845482924325833702531085059749381358203283987120991995046631483745382536461589108608091783592398220540877221342470988082215556584346571224898172067951295883253035621871220410233449525938974939359319918670312969377682052197299380505424180117211443285912011880372666329554855949260555891042116060248333950387255554016356801903212096850364612840491022191732886688542434493200395690204733427447539891894503232525484447507557751856444762257553999232526009977234532537269809083209103664685198460037094088780296898919806531186403738799462385526827557235553223623717270264811453332462257155092960102203203119407909614962946022918610676559640585226662258489038276982549971690247007454412848982325672252310746436812176618442566271124482051241658040100724810090351639992575018055783016191417229468331773031949452519396366330056356953435133772422331007701562238691555288913582853087429759030172798334610042947741253147483306424778892478623235937842456661604295585666812359388526872792413033950897471243466673739357840685252011152627227035636068545038139709912527314228003530489362071220581574168366482247332754735846124056635841006138135265263734640244212084693162670120481758371317801228357955535466004817654523784216009753032313002845971865037655916768999436985190693122198526772399851362219866396608497945532729153148739782952508329376639205913642184861950896281707644393520879949680878811209059329324887232096039967385464024935617774460873113693378947345081833536387864912956283020856397455673805590711552394174833650263173086172922330230326112353754527088727349805247188469447729422905653995258494110136159768121697088427382329517322703008155141976544267608865513999177466011955076399764824094056937769832195096462048275900232270377988146939811436726159935074637698484194697991503485513376485460935150252207251914376916626082010379463291936873858008634020012827696030939828542453643603269471616361739198366917232509706078416969463327877000182496977880385312954132932673058392028110890275071300636193540896633561913059604547435896769113177878165874968761140795505345198811653222182951145410860479200724940343101651828052714802069003208802403063234980801961894116814389687876499756687630314300691546792919990944029012330956193320341278883146518766875987449328528961500455521236355150036080161717388329609797389675905348136427200201799401569229807104929303187852035910984640203528504995226277852195522420308802417547929520747115234964727831830082593003356862465619740607407351449774744189703561338664533397828407738649394810115640115267047668513662359763294785830763415626396618938716658910431862711495000370018276476709476099963122204702770082333378590808145057927999588120204034282746227883153064462785657603067790032158987634971210001810781370650365365705442539359237485893509563915682928110825433741979498008766535747010746344160317836679668990045792122065357079697322960402464922330349796394392270020039489478248377009696732513705287849848559411128834904049845807227267827841345474974105766318581147198564331710978010000204114304763519350375027431200702525528461789262173763566126804050065728316046138911174710958206250440592728379452262016750350915658722931186892769043296332665583721212445807878119588556701356552883174080714390869888828958137212563504715739737042014033398166814069451971884666765696700523499247914166129296228696465301323437486623681184366410933497533692758332220702783917609860645934709306672903115473695588117351431840506029209402079399103659559100949296366852547085623623088748361356956709204484352744190067298778057469538814072265710390394739816157392346222110261667958683575234363244155558687430099987580193712926981355162527937794336945302175109106491977377698530810976720181301831826653003706020243347088467844617995994269694638212014375310847526363180964012463099281984017432413053199915477139841407931417504016681933845899091563734404105187257430788278170298755978916231317691715802771910046530749695695084250534886469227412433834387604568942142398278740077903032266887374069989912748835599107861953618665478044366060364351445253209432260194744568536649976902962392243742413116937130431769338779451470836497052322393128613315492200556025547460750314990546600578427253213861880546218599077879778748892465226191831643247317930603309597527836797497952861675845734935215959047953112392685024015790608974965180202472251513677549875841678151258169576437258670124972917389558263917286083474695889503388241614282813633016520310637859773047597058669737726465633786180392165002684370263486892379495662968263567571972005135004678572146032139171002985265655867118345423651544939838553709765627650762741699137560925414723518811588467523271819204254148290118965013149520078259815255765642648621354424429718041401579962457974131693360311656406203154850869194529786931149685774573188050612266053535452764270503683192930636743117547584059534814539743359194581842761848377728929701569924257396800748272632839492098928400210980801337188069733402287450212156790189496967463990949311735034033671686928883023403335815744107822227845086077256614765199097727626637173250616788138169594261384098795483247486864135725436008046055629172394967177569234273192448612284067401431246198569083708799459260103713515254553938680060708456691191133461445938016741238060423167487605538367062615873558601871012943325357072286692432171773771776079905323385266455782073221528416608354163481429553745727237144490452919528854726661218623449791905107217248907575040932173623030101395891720506445463179838150047516775497125773618509078088818905161411973788959772023543982756325872007162336095233030317209781193391898017193375983575592629450470399701132683156819423607838670648935710062734877215764546848381057150610701327301828675869696661817751669076066267627059569315362614279174247543021117301426358128405130976052557272401957267004835794063301958284542632545332991257494602747407286985660622989927767992597286623928905120852712979184954539300556743604727756149305681872565734222649130260378449710348124432673206261330233718090805528206240331523285172983180466869680544470500588582516132792644180087776728483147163111561716285598884977056316761142041059347808946741877217625396768927743526859359477927787526278656530924131437704388837415901193697163846608453276498171021178389946756465042149703465208504768290465351652117351656419583313221992350475798206163754741863863716159159499426264952570981904109089769353549383418409096850179687818658317779307925890708253998514036836315685156636762791790770738706799055081253291841339948350654069212634340539919328574273712788111521491994496475527472467230060886296229321878959435484036099603595327104147567003825298326659130498701108487976806472152503087463718625597026064856142719323954898864422890205586666935605863348125752582715783088829513448323400197949040157604311153519512041741818208637807397958350540765605754984197380998458497057952436051850759007402471447991598541930109952463877300335876910270707141892520475529799562104651885858397850467779608339128941478469246466099147177125682290846663768377689470412618787806700389055730122213628905063031385829434415127950456312766649703495001703504565958877222421691257781144397746800432897557016549604386754653253730453973805559240476868793675662089424856453158554963774561029428473541022895592709326063250164896093788254485298242024538185802572773045466674095706477666036339123084606660157097328818682075589698041206630423653914110762908416540396713642157327348011640765935953195962117832292646665733120492925024248527859734525154931992573896701091692402059519772870299037564970464751526276791753438821676789099079101943237842937878906551367212764222321572377062602356599670559853286739012125046573739608079783985125179551636678536270404409162075688596149447182210120430533710666114800675745855076916271157568239276915596657715879504182460943130447006346708110643364104000274955736636457014369002590069254927077982612335777790836476273379866920698780743707831756462135500263378002335802056071310139962386652928631521928010823633183473302615694484915801748715618644262674977088817833710914431013660779447231489169053017077075124062394130513660165523841840136448576456610933385823936060068326328782952003694136176037927948016459747527904868275672776190810205996793077237111435702304384886609528768473001806673363999383884729236988285636567289030835612033896616465477381679455167232247151493066292999594293405786334251032390752215683024114207204373934869805195985159112848082696530953480059582187685226263190437117483800101696884764492428770269393595065238153359572807512285066756484390706311603289412353710360008066859339724858725316655380034578034725705356094925360247608588824983684040885694517910378652266286484072740300468111096532684399539007883975660365219823997183791937569777258846531514031623901144662767528649970221010724958378844364795831184054929630528239450201457340800537513462673057985274203367503541215200660309633192009040018798691712107641118631026083016906303928963389665400343470004843966996137473305672835147624394095298622886177119764479888928466933262818840892664622645531239227450005547949205292673695520513788945382573627553703154641175281651391779645069115695065427079168228553314549852531388695618495744264613216897342327508180122639740525029397943218795793574382729080250399026805548227421719878684782904518032296255155624600890535050656276270574971936920984321076516419921263416223533097050686589987244135872606275948383333602373895564140833216918083216677027896322230433170893182995465120898632227061722323361256468242198874267436747090857910427838009871569303317058855915755461192665759397181895171787965158953212757211482847989740190472646405927056713213722407104905615962717849378428851267360181394868220697185519382857747488687633643864856216483575992310583091173302341777208708721972332157220156437595479414820466928925249756893500603785248714081419658259322537258335494077505280173265983743291930050249583577562751819181072083909257440294856538284716738112030189890657205595451103812594948767319586576505392896524584617211605688023924905804034463849924149691971804524681149499857616523876398622788728742707410098229245182664941677211371383031119908109195290472225394833394949921111202054298407388894779370447444180715433981701643923083484428693997881846407964665380845635739744880801641739887874664343691814354714771157018727435552959710239702047491487501246183166539025064260712756634381603968451969452948327822317901535004048484041035744911196163974486515502460598765233476747068380014180214356754635330852329536226452454371489988571355221647987097709112514591870342476250096477159316473173751010612031233111189892965295394720578544059203024320584258064240284177177815671665121934354007886238142939560521289608829623455162391800768466452045227011156149572241604118177099410645668782905015496888713260588772138741291496254470717478858300002331088891655729981376590140014016224722852265476330332354343119477549707236569829001060473995302273048069686313908379299168082241088082286540575571920631388367051113975258482163837495843031635808655276220248311141004829551618813137489446124734080706969386527520681268251548419624584691963987683251299420764865097128227290341491789995610070098893202650402923412503098571351642981817059173546441737230572277478972572120456254041676759750964073867508404446135241359490568941724008345782520423211971860712709769227018036823843617615625564250683768558036906204212374873677151288016957956864934727118003601869621292303126683945119014694399095991205861064806304767851504494455517534881148339039781292471463473526624268591012085736677457578244579875652882937275371772383512629940354812258111926037047326640608668502868955866762436047353475453031136155205883466763729284121552863252809754488535542202723999320420757587758046518412463385628181495656478563489864709885476934803746038897721233180618656489616072586106038666493447588299282288712711577038420408906877288039790552101437264300974451271222477381126568201233328583537965502925098954162241443100007337072988579122426057453471667266876455457162300378513219135455818676666580130785616654877038075718419389790964799598701781575814383728053616382670155238140406263078746478431498925925600629537135042795717757137314815358600131332624209507212078339680358059669889306109394193424398614664415427623703025198571659368792575830134713229605444850302536906992256857535841412633925931696577744321723632431260084997065653937214890192718096288061942677979582030342772356614366262460244312735966169455949852798992270955515705087457894636557481105986558792833367592760367332814189526821618767111620427997415667669115061479689946315161899631845596051641170215123477150063498808814817672056641501149630275564383764349308036149329379186186511995200348785145494036616514950199427628912422462950003154130963545577116461913391755215232147834505886517370021192211041113481940963515081136300685955394823096106555323553198252320979351779687548490518289240040613411131968586385042380322842302010434628503888007205318750790269878050057735503757519556245831527106209401105250048180856908873725178349386627200645057059906475857853760165854607900626063814869284102441513069184981259941574502301930692882442150619090896849033596800669211013635447650313755251708027338342066168248648574027670584362308641433905707484332160337674411004876798208074082780565886110135150125217595947764542427026614842171045910124920681507075863347959429334986797533337278249535346713593643408840908592549597959462316090598994119009122226979920327045945108842580780544901189970793634191323058782556688726096121389638055599491601615492156295003805860608791657264446343167042992610794158950212666825534553915889489901541372411743418283246224083647599028521721041246028856686643422352063644527023176950694168920206420985661462753752176168074683134884088978408542406036768606265090630757026346461524548440489266153578294317142117116577227652508943731626164149235384897306111039529697747179632344663658301385679242392006892620880387402974800867068402596199873549627564863295594665673532588332851270338739235832382707037157309919723218913621831516686949178759856737521192727466291321540570815124447912997432064239298686623850342978897113280577894831786536064223222900839995284673678988112984969177707356033559936768250123075636433901079092036631708983278857692186628039963013662773805003949779349323927284034468633960752993927206128292146083301883930516144240322341490498192769639938483013734154691255862336896506805129756435338024488414542462277266362268536530735102948434387341322991648284278910412206587455644785839755822717194490287056881163690472527584531188889127327105233230472601166371130041867547275380826959842904877260773518735330717441892765869340604615275517138084005858088571800586973319697038077823617513157013379010730732134262086462778762997547093955070398218985859917544183279819208985826996973372327883409586880717800265025423351317707960221364654900189070829742028907250762036275780994938410566220429678311274768828158153829479692871708314458777453503910222854087803353680541165257053056571975573324725632093120526776208643662353213909025470424191916447907455293611194420240010249894919016481057545829401759391440579279145130415266101537979311408595949540486993786277844079133857895498222906459524601133728793207458137740723758740837878255170651949962670520791705331067813720659716195046826595879218363171596871386638070127749454603433123349675587664280308858248202755849655190895963702413375860465324603597600700800299282019002144494310795989148530680080745256992538614484498072518812705363608755311050154670425978011837130409662405631187697589086192408294947201551930256189323852177749661510757022747204581616394275631641695604013468622086402791401853513211194082679965991846828295336182546715983889839634963603435973457995717003507515122702925050785250641530480325763875999297279120961571771954625866577676799696325114768466444927786368783781111908615951477497734000896924614727057892943900442492670426559198806603675627923899215068456598126756482837892463746994882885428013596206344479724575260124367007377496966510373940865774314923926823133030348019921849279448669449815871659434120130811185591907610488114157667953960699748768358230010847255565426384261238612446962234476602000466523389414314467480313134100879487391481831375974757233012753422527002775349844318896109539608262967746596887665871610564042467260792653285222793611485183115727055224256131447499938436318033756107748098380984614826076937183348855260115553811930972855819700104955715197049266981596209008412724007406684434935546582445179361141035778194133273779974780118856657881476088247878751038493078510134082234710976296492393683483316007449795208840409943987854578098410297703821847371702017201879033377818347067437290662561462527109666929251591091195156751059972837873983164722759364996721546027441675112268683113006398803429429816592763565563014176170154043047523463174688717853754429713992238835185650747978058858079632101530984796851661749161115216786354492515033587991257138984902623947278430120850640091900731281606765805872220452743383703474730188190118725803584759032616194252661041325596875594319769936945638474971177616461421470590583056010709140073990729093894401549288931858666416099961378641506271371636289693194929487034845141969329164096206470499901734131887785911034859876935796319497781787541098298783580565875709959617691831927463124718755215666506268176864743030415901968072901753500731076621174201485164055243921181084403883490946819783095786978710754217174660336117799801436557555301209572160726149383887734798744966258641248711445231661440566430175665715200890241322985549779662996633693426244271184464180735499996336557455149561170905937169016710775280929645743970364122680813776939010226438760552847870407483205617048973321725293654245256498553527443201429924390211217017034917265913881161477841638300407451556078997775021148099631861432347901599962721016162089544705912462759122459780270078389257710747394914436043191539929029563075965593748541443972982035386290791806651340873942391940526044745822002263238747058156670885666874185642519436828238357043107460385485589560523210402561859896416894501679114599675475400904766088873132122410198617069230388545492048165349664741641263803061771774815257600651672695889966552250832308546550546204192253177944067181725877519122630204594152349057697125867754742866365198945401525792835080002835293292678487432457894393422846373526396657492957370897400357805579813126517230366639978594089867645024530913018701170317926710354907385288838443556107632876535827862593139423363994555607502211618823412256667250663163684294964135607326989806095667246204208936206181961620661617985855203485695010442352046049330454422419240834696835951625520234192351515228117541177883499212795213828906468143525534256558512231527269297821198047927082262088954956559486233155553391634433361371753982809586882739240813181682179226324353104922496374569244597428138237957714030280962754720605459717426572126344594077290430963229799942453756798831447845249857693399221952859917201927165503959208744211073555971235924828476052453366122298122716733302821430881071791388587001887548342034838667945688767524578145067354100790338216471749669000669671178679998476253693808636801902345513075090833920793217087399873745362669191655590224125877116745935081930441206915797550252041319789841449475192531251070922628451065993597026567188024508397152991657481969211831418864671716751498735935716180431770135538694658299533359193180508739995103441887599534620709905452400798872116403392606126345850369723580056436893887422858122613226320261418798278072641986062850878314081968388218657519790364664114738306845456407540152528984763805522416519514071103211660981934844031631429590532948913231402561894645367087817881397496240223234688655991595944727093343567393687041039434947531803761363505448689412844647366868315810264006082258162376055642732526895527264678678959176851774504517835984809632385497533523829554856980954291713685898725095471991605379805138338153286873072954846686489483735766876318790292897591664127679403927569543176039645286958267958561344845960729390028650377625246336328149584978073220111829338144887834699870208135697953786376803447203686415159133416648008855042009265387132984901990720130190780514174513065088432417814946193127893936499485639768440703672910126627668926737378792829866811264461330569892003042854676147479106001788076802893907060210879743353841115850249572698103101140158266260021173430333682812447541632662808262649599360705749889072652612698239446010303583413012678451718956944965481691281895219484506553299670736191853356157336841540733815919451192078183012108152682582631965179648104737791905221337795655281974952219562847359871473016783764288634947151652201393722197616653793161460581160939740514289180327089540097930363338582379351712241235438497603535981487962616828657152612455554262009069248851908854240540141476322250338012720890618498299994251704670838407464112301903807877837758673218719615457300718591547558413909058215095951843296491095833066091893813601826061583279444390577347090945840891481860307421409397184108528880371608988891761711484587182048944328206447304771441170001074310372480541741711380264142176577960014961579241637059018134169626349491325125803138469673012818340611867458748052050213803175408264493977761414669680312119898148329876804198021746587555942597958404676334366389933019949075765891354175294095708096091905393289981327446336159786306594838086535915007189767866672745838548418764276287025432865062162103124787813736683918071309489611359989510342571208913866887835411669737015345707734420324625259415654577896830418533437262365339072148983213633348983107884168080931826236787811913479528504138780607891136055166405535538497799398522305647746934178574776520786287599631866154751648850502492912412725887426485069760925801948658790217870523846680281169526887900889600924927284329140991007367545348315547909505777085418896276029366913375009358945023678797553285866175443896697128571191051376628287635110681197166416543656065110256973950705998445097970049086433500749235157544672955125878563827176527028771709424470494208110856220390017296238078979806529368360915766352397378931884844995052630046235232980470926351725208978047745393547405892121949992772177229624911425141228130874791583591746943816721956898745762624886889900689637660506889183183903480102530730988807580073984372663081751282341736146727247315981839945393156257541433261909641282536156318800832975228611628927478618739070919042367504183658955913366972348537244540859301879920417481492119379815956046239051689952944632012266368319182955035796139307570969970073542608744266029861786997658129182696588890624999536717816475948745329048265833544955145543412808774350264456971969356742342687967781077315207935196167936755709181782809717130343269062440673483666736644706074309452468315346461836736444870890615842227045384816086006673740480696219910187630308996011852350316265106263898041419717479218126037807806207070623271876985285812136311830906320621017964185503833882799547040430432992230726423043984765298382845492452525877166129321585126207252898966008038918867495632633449543181476373230628323008150055853553516477205107357726495772111771140292014951432717971417737984676317287660886526268944062802925252314371631142516339863119805863744263379160764302628639147246626302900015328933320762123128441236733681503479834448538292617085754688200820875581349487515515745688045020568784883338018729622367089153634634128671740557566069705552188182858077930844908386236636643805001627141282963302321153962317720952646387791200757812837128312252008234878618612178788496048348105228676386995743365827181331231543143911327139587414144147174669306468512616675977919732244872102720137356630468303643287969538095000226523370147954814516335418703878050902717034336097177873805309142680799077751453103882883151880487967517095878173595847633172347273751667542918411358577305193752482947201000869103347307196384553667813734088856057441094986019068106724737864875459628254093287005814773924377295370992779783313318174745952213509333850628323974181996961854453842056089959348254993931743397296406262756968098390102845648411538930292769802735008299413898109143590572759677995002158860408259229373524607364415148658068753049131208399788849636924125390203843968506593364092759082977800556234339664362919434526056997794160849822105535544932081246305058117370201778271972380982266152968727761168622717991839657412011890366408983941351655919062164354142406364492391415001283403436007128972118486845119367921454914265815726568994164516720968022819693982205236493686337036500152219439523520442131310970309656695304049686112434052766181502626345744161750743272602039485731142760640131850146468534746780278449465685729692586855902026546925755268082728705762766298867323088234015566836553537028076732239993560818907122092771384104534041788888280742068579084759694262152007434298327135983779290878992185417565834774835650228678662169818575916426718766157176564986639945841118380243830848233847729636012996364330759210171238757078281007415397305064002770963457042127820384278831582945033771643501829398683005107600584859809409760292596983321013185601750892647004781636302453747367307334652479041721781531731727695901062040112862062137225647135677632526833859487553441891200332299255627727125240099416006465247527322761859692866017616727297205156004266364534210551421163135677751676661293284324349995673631251531235106070879759511710409006251399507498357591282319035394659013373367168280632522060776181673346120692773844937703269816021463315634443198602289604116559821733238410881033044306720557246292124644757268932542727197357668030902450925126467501851776062337744111102992249676692877555836427355231541079297532134944737567355418673444492728075454163040993150396031027234792945471732317073517393482897843535348089885636303432015830852763081860055652095850545612540226209468821021217249760802623185037461184197075510063688363275358070373821991622527144628942869805015317612229381796488987357571072919675137565955434945203240331140678233939643098148689785002828186748534596054977427709309612574382455906013637014067131359768991569716208212809734464883913429193523300420472374842505923238612332817367658861248756400651195866272409495604023810667066651670421742987001864694403763334852509611113406072120372398294096512672779584382033447762102925717708166549267076516968140932745257527201522482273947577661855818008150011412460950936692952895957138868570624585104265818818689367706076309580918521844470372352285745288923426595855006570609138892794836854421334329818481067468072057556836824202288481203368878384471810203438039265693718666111327918031966618697967586127823060426820845920615595875434887528179989962415853125766189342458267806629776495061278754600302772950410355781312021942773880888943657491898640138081337394910885778359835992825833211600120424953020202267677247084712029732311439704680334330108500772580254093205966721159255774970622692567430011292269867124980695691243187443647971674131457152356365167340710440574648846280514819076013275004833013097131188258021704396298330679372524604761512909675951687712469407259017092710140619962612635554302114496826199454659387919470436596995054314282214107419873078541885999884073355600207382185314467246654013134231977992195169926964888722805200866684431982558655986732172225745548843204387689220475128195085563627827277854222736598266612227201209319139117290877464343283232819019044927127552886849948155518838870803922232119318228993148680017910892600546351159044151009867774143542610408143471598658280824785092349588989062528038561628125192796844449082655707363995503453170631852281200075553275823849259398169584574389016677312566255845066544394257714278571757899238710549229676226293911469765301819221580962228533190768441198052688258364788708530418848659109566534168505940762962715866237191711532135516098318292346156549212772374358738789229920945102914491060787803064824634729876179301445899594045905256210595735954482572273804632146453824412565861256383231786630575171684664182993985713849373222159876005062508156086519153620326652494343335504357105151836782817844449175998011781343579585131088249240711882354263739996899285364222921621822135630787564498482997787937712898503424271928765164435462644232742645689263818569668252365511686236761822419328741808415354405193206897161194094773529665437843003666255743755418122084206021757628962658279220047055040207414705471592272530489425062106594538823202298862413221216077394560726242900339658529885710082358821348725767369506167604328167480858923409434332654115260426039770557611216344445438274862408360595506914076292521927274942440594673927280463122911350884365835987742087435826436236566429099369102421840298960044484886222244972321961989140250322952657599902489047042368597395822261990543898440344576423788529453546809026289368879983414481317759612010475458932460109077736990563175724321191476347794241415949968801338484959792820687613675055754400114951683656250487247572809243546001522878977142438418646449375479607829247145268564730945420033631281808511928211563970132256486899719157784427824310954745829939610573673435329550795270581684082468009252396838329264828941790577033640290002138080185444339007448489100838554752726278933938339653615158802114073620355614763832924965658472573826672496224839275578935584996590567934571185174770785371815663336922108256642471682026216728107851671855319404524419346594654946560608296206745068139904457113653504365681352465646538307420203230376857668858968511382203782323408263421783477810221144669151216010681947035725606507733649384194766373537819385459781756542958191388133524911642408381295105777348664609971584382379738638234726609916308261328952279125855597118138148937744552371616595813705190210024392003249400129866276835154950759481726629087718756631077717432245006901344676567909987233654759724112313602151849455634491101216520746011617925848133393685489092176561695069657471121068115509347800190461184897922269580985415657794617527096040933495716284049180467364673738856990628274045263416492438320847929453681008243052704777172554212079018876865771349964966366553074463343898719186775092752970759681513948201352898981229439995913824108156704791685288973812866846135421040093866033253603438644149983994835688437850001842433702325964553566111097240125240409638851541581613738737542217081136505920814762501989420808248449001646383911747127336716610967869307914174656403924124005818022592559950356550086066189419057632501047000232998331791210869276473564638794767272053141861612316826692016233785342654783560830855500332147479556820018687156251798207301799514569379612673914653691292489173092274736485585092079888719843610191850284335668312205461201340222883187819330466289955611770887940540764882855102880828900044227967200972223616376925790021273139072727037890417859120411704942170425542458382292485591738344588840848975076569154113208599155746562235146953872671610405333472677628326513866950919196212022331286053717596076547421868432020534083662583454834831013688372851046562497183874128161724892728718862768397704839073196140686087367479694362041424886715823851151053956131087313556229997287697646359744442991718567177707604969937954878068688807390975546349813209014787447132208749643852269480610555572300632435530994404043864434051402200065269981930853648158835717332376275671439228291975495652333818775851562382769011350613708129185236935322243408515410840938820518072013115228832242531277480153600028362516823363036638993446026743912300714710977010976220232739719015592423102110618600785093015600771357831293252634619544936385663954486476375591899641528491625848500398345294056550420368328595648444406026340660663969453166297700247557445497263972763242406095754797468125391502055974857791048014648800034690373580659549770434992328413157961043160168217011304409804332778980597613946077768378077469162091789799548261050574057830434303527535195598189208882843446976510862829477623369400781700246142317833195517819722301758115827285682962400489408600751517506396611540521608332561146742607027800943144281702812687542532663132258568516007661241985318744785942578227161097067768464317635625056283023381654103947305578536075783148314557212801300421608997797325750113057952881963347167248730377629233471729425805661172098224057382825069439341536044302884996125722957281822883274281144135637112185505196112544852551340677321003694317215890509679992681130839988146626227753228570716508202385547581585996191550259928611470545921009430287111615714036000404718257779652839347188776414333138678055009583215401931426492983488291879222016163616992291342724703547016449262694819969670112248758035454586881531675725048246562489848653184226341830672405663771785977238211526201713109107600566363617719808548418517360642283814417645956333009317973277723059761428249687263573913051047159240814374607081743039398816229667531526988579001681404139750475405616849681586819780221858635888360797253090415740102751612535708075672089617077814957905033934476029055499166422188500413884628107344162014105983682363193459888759846664734405037564198459744452357810740927520485248709930826784867075379916305716859266739527185746241009060373999409927980807687041989103975200509690434729106078740070415203169355614146825417750610928095603956943698053638853594846056616736723535605830658129604451735196383763660914059449868806175201383007550565104852986590043014152157879367950069240834346367269826956110845617760325572807748980445065052949751097577837571491025668354342657699587465969029248837041572046003736350129407986631806790883985861271483391772269110367798762862300366869518484364029914360940662206066508127174087607701547659447896020994189510996977303014375089941117811242485846828054558470915796356206952584779650552050003922872706098107413966166445713892780034903193064995407262223741079306750728812083502827316999213327534758921502776923278783578891104483311441165995232726351160638204982993277601581254206854065759740498887519826397304638511616605931326051078674475067618463172406541000717396141294711778146190864748940727171722142846508097500074971793241522478573465414464881171267238715875024413499702799308542010462567407605635688100016854797483768280382694692865432321574835611696509899215055468739764494731110803976816924106677515528062736886488673854439148135662514495780686193588929685131545301905295806199771493905507191504073135253289331904853688477478956035753761977855837128996693560963354152496576752254250221255577520161579026606080734714465871124120331303357066996092185013783077081422385487366259568479896471438011529203345958640786567624314854040788248324162224717071848860890808006554831001302107214738764644956832008959777779427455907032851877496259668230200376973197924337261348631682092457479864228091353502188006461266420248141908326478457069615655003872531495604566331702339253103285623305220819734641608575240786105559480017039934456090159177663865823645916584373214663273090170923052462481940937171161636673412830457502520382382509933540233682644987703616634794688267336148942480013124235577985895046728245958906346493533237376732869849936310518963275004662828785964681914475845063398948428910177535424439490093241230349364584454777163606741425784284593089835917486290632360253754625871645423335830000736424978184369200943060692176692439401632755582128719318269569366130206627934292136428509393266515934418600859264026047787768866723133917266867880601453405816645561172181096759004097542393637704531483385174444811485859606350183125343376015898758637294080217765881417621182836951055584422548531489690196595943906355600724711353577994907859475813323097972106783455284316936064738322952811809241327539700078630689168527646192296498222674208387772087725715862763222027360357730251755111248892692823816787533794669198791117577753068427233174156832559467375809675501064418094263294646317479429992621138957641398390193540184788110519169223919763156501232215647478213364763436138508721087945464649453436564022071340038802296647196106729538993020367777753634082368133328376641998999342051290302658676886729340928581829060466646253123032030474433874720051618080333435025142394152356371240936464189019736536716724293852577360692418727019166553480277224662091561200582650481735871056479836911164507596742759629459610357418177754462978360855375602411800738782068272800249866512350772873258510811380055193413434586881217843917244260363354162869163720617922181224694110299699539132242994491836624120901597426766535090819984886538093903878094325856179057354925583369040271721653819715877472397432692741352476506199178852919674342883305911367205873483152947754492648776738715061336181862291605859237269692091050326722614142612207083026706903674461917472644644340984640230212899538089268874198702322328284645733535162801556334213757875081249853864147815958522387632384108802771134087038481171205106717703939404259016114096598373164622870143865246627969580564776304573162735027853703861028774117080904281017330192964253395099915258853800155579860128745842020204698393612527695211893390863601180122576553637413869188036924626660655238531017234068324891210489382514702047141696022596354316913204144299765250291410141514348433246804949513483868096420399707017484119290510609555854507822635627753140743534773720994715934496587662914024819468851472149594729208349470816152874846907905216813560814352385583267997958521449196458053007133214245463687255133893169486401200948850329486418426236596773644625918914516517698472800414770234983780884952262120639715851138848439845824593563505835366443111656065179267222637972678877680024951073606091325971013225060822631218320344236721266856063514078617554034915919526217687730369949508298502860281775279498350240692656984524509085816378050046791633824086913448702824539348540393611121016165503183416185734803324409137204861655519894557337169722768451459589599267586000933776974037062685355868102047692836371672052745027028187537665065683527668741885811431340096987771607975722659226020309653984944201728347242599245843928090013499927658702464277462336767239843907477267921553308755548780252823988756456565284073487076661026214642820855780295133401110083010871052467170407439495095948985973175334379936023751942224581895951010821453661639871848361470202568609570517478836564366566796851584140318614156105677053023860298871006677501025430281403310702200014864655562407166396821114314724311829633264651091012607509892929712182904810596667201761934169408124767817637751772000766462809858379403283173095473201038606076918827382114818833808546151661346885044742219726279982938972271979338162371111360691162228557714288970685260804723479458331219936635914206447021517247981563606541432520129238503163438579336751604934977754058826049349063609056049422090573100789722999752731561528810722711212065769313775895372774812018180981692887945409334152703956658061542750977092096147475907074344951693321135842193624472510209953657232425780586816445725863942368541721481324995511615849148749811445741459154508772808438435689093486357131157723297769054493194807189004112250149092777162251739437655257699838633877630815696363918566781745749691521426928748022282026394568404566418771674623251204357044384595786295904359001824314506244184180285358022291151329028287109220141544147696571589500851130094341716965373647316658859743323765572810587305557803504167685501629806592382052808738594192896171544744123851926933588305317739738967086933819613810334763354336843665640224675966963616675086996578097416286188165275787367342578996702470069019541425484088740914316261904823190266521967212646678207005476435611838643152685450855546354635282591030909822980337218578069461291908541761458546970533087628860632783295267842451605019661161803198829376470507270049223248856117932685298937948482457331106510373544368154337761230486314555899862696071213942724512810456470369361509433084904307940891442407742627244358502529989376574292356768555372999415959180334172676561491181871143629134436441462508344229332989508297130271520282867031719925128779245643670183357036081257176904579797408616439429829632453466398015893241509198167996040919946930499498644234498289170814110638682725196672415321614657822584040794938314448957406318599539275923293059672385623405159862755016735274935362536336343792322012513571933137316845005341616481828683460976089871962263019797812397205831496823648387256909193250951708866138604983281276975595399022853737747602084671783987940662273281642343750322192443039799108412708116159732596856924006261601080460580817474355452579789370853110819291086856530368869303503798222909955855631291730252086274600058420777172345063423062457226135167148465606357286320904641940897674249685945174975034449740033519667507100973042687129976232296315444095607378403836673122308418786639942785918160420892084511107948026915945287156358363509522114678713642194149280530492199820878350115269930548074827724454838442838657149973109391759283611569852025685473768213105229818346336752078759920898130467087154523909139580275552995064315121414663578939045557158825533588614272158159067748176471311388597153823245443588663699580734425714205099396727122686638909605479355679009347885962769972327032681064589478605498156240354217954033196236890796352806523637532928735467050245447386662657010322535324493000577410288285495710867450862982809933251581207017802102666501321843431499901252807410082852375735455400337139353614459942972690484571755374418285587775822263492565016943144591735361559767229902362314251017196542733962580075791589225751336462048337808158878234930148478320521366301724006071635254599749877592369092711662292509488916822594638538649801012623115450938294704928546346438191434599587461391923770863543786280371706502656977890692144410619948016715130119091394442712920845759576896288554168870938152268221576460201166620283320832020629534349961855361979953521327483380351336797469089664182838720306511791904297170856316693074401024624318738158961604421657689271929138856708086593630401586523955633882564429136532252727251443232342565840290718816905443356766397715061095962464227165828776495075704478482289512056121022866644867977627563742468472858707371271557446050331762653684008447625611662116848983236869482781245419927048855091570898524073914683125311220393154868096384098107712131351092890923938714298578935943937189236600986600196185664036114642551655754253980476553448273431885782102368097826147346932918143695783100390042756804570116655143702831336994895593548588443590496297540287503790157622923549715488162908094709023916179432598471587500676056497291690322088865741098015937838868021086886077864772221980157864898217838179753155883372559754377405776263902750593180948080841169973043915933550443832644062430120170342508789504821930017900034980506584510135906841164355283830226068972765053554755187600244024959552788598400717424558555948277978061422776048887919398922000280038319677795271180851826351729943562855977733870667796589205688840289622339014886471172380767518075583827574716234551959124022252850391726762109506389282786512175371210974732572692938490123547899465745589910535837611070736370853714653177253969873912236524554332333254870993444819419045504858744577143355059579905741271647936029476854831283576310667726572542295384599617931430061012432841225687285337322834342493804783416963355669318070899114583324454289477937387716199753605621213056607387996257817606632481590805067262600077564994810165653124904781445820527676828236849495586897352585746487517378863532274850442976283335133540006668036155527935860929214984807122619354399184956580993213382310366564271543962679932577734431238921791655430723300382077748799601833181684624238415499403016389749949149292817676560281739164787272354484751159521569641773545048814914540724820710976560137698772771630194799347562173471389562011910313675997270352244686853054320947332312825206773880823450995160583202423460061058088574631283817514471500336270187345655809473839682206822284415172486384464776134876788858192108820805505497207693726199005552311492466456931482109704985993293698532591164716600439186186648291936060825441307558338524459762258649847062788871625844243240370962173004793675096056471297607727656329254233195885426269763171419665036059404700881240644519929772075953843918047109990557034272144969539550314348072249285816737112029059342081689624107258023399433418421680048094917035496699410629269830291279898021295863832753182021795942092940484365206766117319784020404992000564347846840704901238882684590052720853852816944294390972668598352055407676159433444386575900064165037785433426141159280861139527394660878283279684740767320886597721125467880787557256389506609710640828632041273057539449944731038433121910863862456083465089230826139726053998696077346460083478855960702640188328285096773978817240829318724267071643419315679403897381043812711767224562938418341599776610953574755461135305971571259728978948038041199569769063057984052199011486830918035852650978426850843416823002207409200444070425676306003707546105107206237256555649362827956807095569412435426132717207203368701722824433234711286732346027760617566604510090397513224394626565432436758952195819908487421076492906659952788094110389648877722387833074673968753241789565727074629738236547958900527916924848673030638557520558242807978167667297308164711899479818972662877222091342930094219924236987418162051187044795156856651402987977482428249856911359379786942471123557709656877068119591385260573920102589672939302494602650116098321842918001443772535084048647875009450253234673017406026537542476427597665489447469882020656330895077335272453374781687202328238626612563021556491845586051686318263609478579148752167601593022296732362117916653756581644784512514421332187747221714753382425323472677149878887651620527786966191820030084594924053400474542278813772010279229050581843413404456389906457198548298027323373044255909460667096751222564793031908879508998371871017329409882714246106091217774093434999485866742458655484425156539336646198199755688366184825202684317423178604632533143899906850834638619727409047872540131341103493464050504038491728308829759754348720140864974019244261542906626549352667186487960537735958730627364901445225149535831586128413342881159607636959598057728097995339612159441377759415906012837859224312507808192734454934227542629459749531409783593812088940534623363996719255308966452313580801603752920615243668622360853405456733602647797917000868099635851348899574586956725741898646142778298225083571994869265981194368420648273942685704139206514111759104652951358645082228655084009894892534776824190503044159800774418118907801057967020347509799079599344263107866230665422990322937534190337149656944183588995308747089102938188256719243078831381381176600738111643656070072019784731057964360688462401962467539479547530446204589074674323690671833122117337493794613084957966671391938193260010326154975865445551677138591798221493547139174718609556774230892571587773943035700090574436362240451981517199366622102140778360696807420019767675957704367390045137755446197800841938633076196056000249156124142405216927924839195517661497752636666694704964143817449526314021517728639663033641085354241219575947554749046912702309922778256923223119218490300131712362495252960970072879311325596912344475441603893967923441371066848774670537632977334108644239969576302854991556009194282592280211303495182980968621969797987229463532859891550802973777276315646660604231747032777746095367456219797767804893341618083239491014310030424213182040486334783270919937509323044612297274978086479282012273593138624866212675376931677130019257109746275725249324696223299660674787963520225304823828045105149717067453590175112168360027911518929764434230269491314277261417234625890054671335337050354661484576777286369631410152374012184820081186995497085101417180573667545009259341120937931240534286563675040051653456042922329630182597749250901136662500581783469515503649583674660179634407777427153888630184414798087953490211985286859289626563483701748181129865180943199330467685772922952207512019538941757049458447609503435469270673058019676191970115562244215347564780606629419012866341285869776641546921277169936702397037503576956778137195157788162466504734606155804380542575520908381194918592602991417200874436848517030945697344101579080049148790564122247682200634163490586720305724399766677721833352706565372089918042919299719710468260213443108948416204045491034030866629844990175094458335137512135955136065885553591018294283023797986619294363445526670360093114643924011184299346520288864945162939090183723990779815641150381131807262932230676975345541029655969687999646784044047027028324683867566251854898170502903606506513148832972903938184189661793819901627671529708815268809131909169658521692092848058507852507212322686325446568945642942510086471078681578776883491581686990840865254029221454805797521902486373995217808197958920136592256653820855016483113754846544299730194069088513243447113955910485376390202984483991863250191053210935867498293717206264534782474390964733801180073425711483472585544063918469733424735663570220887744149126855567672925734182062963403269794387349783745084732878995600059426206919444059974686116511440512913516926974902252599643664397621490476889037282625501010074997644146945349257728376461193195713568413715468056252135779881836922963614863327973813298723156051997954297402234759306509869009521368539483922159725158825894211090683846956966959140638106431096960555678531402135300993933423714761310100618249058725564938206801525729212895661952335680284093161734920094851622103391157182493387318982792090500572185744390250806072597752708184782166239455494636336886072620598483721358468524262462962822960852194063395778209090421775090134372034129443655378031251967214931635161007020821408281138201476754314372490729462585638247873659094517812669480211493616584444559701357532386478928264880085584702351610780536197933660077117670311816537215306009236442867758397916040525155742917524635036251104714501760013226714386433660372529644310233279608548255938578731448577488108043837179479090472809930638630715673376924444286407668615849921689979973033711956488954855133430548596194727746560853540372840105407080047167330210051242972087442710762161732432876033546737447556644206630029845737235440851286376102587602758594941877957699024233520576647296309931912910426086946520460225986270250015557434270387767454303385261912502352756829527971035153714025125005213102130995679541337434953034268779430388894582927201055721295203401105139616711622695841262392902327527116068547550309974295751259221251985242519062787865174742027365520359705014656985218454626387341241757347542038133843238587440994909254798097806044092445820268542040946262259902213971652182918741364933756013513542378193494939250471323981884782015708938211009465023597708406624308665984956429370704043570067131943845959780680774607564156306751829694761203559828045881020318817499580610899550350442824461426246028884110913240538461085023682816388804809601205086508163210196916903835364435058289151253006180666694137212193309538578721800788414511364027629425409372254457546424135395024023706487989246559609771053486617700587580933891482676264377925763383055425648528930140784055536422620261289604869448751512961294798339595796783121142431800658989346275990718651552174163916343987764038676469270601644550737601370015180780382815722009894248715049798043315103902644305614762125607281173468962045901890507028303748878771076404466259366124953098481535693976299826190063492189665532891496768065236153877373966390306093631119544084689835232443806249577372508066208494281785927431047288376672385508021784600826482297704531024770711032132515005058391783593695176718416444387184809576642332735548595802420133446507038836003223303342971314378260047365789857064791598922444568007964944276575406722303761752928781764849643547035542762405801124926124117989082523703598562450590556064545093745925009086023095941976839074574449250435423849068149644696368437709330877854914430357965907717835434261478766837845952756276273321848835115178795051451534697598375144681997191601716012587076691921329726112012607805603881179719254367648250091750973215151710371626771460414737032775502503460353117832412171362646417366234360765788059176987787591579766522679651316082615681906925369702058587771590724014624364018872822059587965325215519221758495798938583034248152006651419698601286695287676340787586694332527929038763880245828999807409156740513047847964679858405422032162692239087589140313276812834605538474617910777327466702942829875316775400341638613382367115290863832538380857082054569612062378331006468531783251338882108104649135298799816564630246340125853415893989226854892394292999775015065999840154442491180731345499727017722952094998147316067453649251747934215528002925711442135259325825332723989105495199888470075982779959865155978043088105415037098815201600325776732244479595796428737160327225130513848883803829572224682901481511451328160174620073950574435949308316015732911452694463101756600516250863992945026733668328194021268048937471377636232080605205070366380134298676859388485065796332935564238946329209345986254487340315876461875762890113283501132228887010541613833748168896732118294778141436137956927476486272302630712545703373279499785232384405004908622233458822175690471220631004343554352972982999169990160059119239650445976970151224753649469394767190247372446528923896519776707525424005925578128081965409319511592388591183970954104589349516851760420448189776614007894824511617315090366707425957168072298592643235077528468730413651984147283862098483831461230779158407511942973995975895989575530202628644505874628844317704493072964979239095974621568085396673018527324477089353134378704552610845447805237313800912202966329287239487942199930158307590997824441781014788282090130503116662917840571658369925303259369052198760176584815996018628910582095940894019534268375035004731388187881938519834976398010968127831175992081534932950412129879354712271061831806861839801990147372247397391137772722789993915291567755785366014565214934843045681141088747811207572199694135427836193645470556823632956998264911347261736343278672220998390681225511951494550601548148127862216028640411568391942645291793363130059050244127516635828179168584388842679044214255890383845587604985718891007847582679073954056626949348520071033138764753035860947066450953565924282479244738094881201263156949844565566585649842941180367302441445997820782780779649802977099122049961796467650586862976378806734425937048964204849411325744831923372086229297182606727232771864032871724765023327673812957354394423569206230337795774952390483549641954620584637237923701745621205378792186341946349334414671711839981091727070385076926203269857731826285047732937699022429705179639693124670997296330774564879480869332616321890648402070601615713589647735043313923839855341678356021832752756727439590437867245251119462093301098358219976086336575215030464753782692180233482711983648158875025131240769807425209152495642918520514057296273446604217970201655899088270386868925674964487360125166416724013644643101170728816753312144330248021697962618931584297571302162245195089156586173846407807720558461234744462291784828356512398790000835680481107091340587774629941530356598380593886500942538746806155087969569369617370763084597941197919915646817118795402931346347529051011084933623142499380920187765361555476325094842485277807531116186343359837895086807082615647609790507364511910256362478250878029558714881697646386226138021014592828417837739767159142898272089681384498107844157189752764051709674189272504744500881285081908874352998541472486763079341516641495281701567820582441205776437703520944728221210997733519633567950522459964882839075885692026130109622647366835384681196050059740615794707335130395980526237254966151738086627390638020066249676371167367126525950715360297062068482993708077291813223824234009363540109432272370314682968177947011879323767451032167657183870912819260872301024702897725962002199724890108023215753585703019000628009087443175110730029654936212599871395192628519136116266090723383294067001941479284403629656075901177700272778705378795936060126123545294274034059985806808873313459861547349577313384571014796987459551281578179896471981987700042307459200489282845863802116524938847331969952680225375810459133094476770867234552078562059028946252179885547039016795871262884702892329527715323956469357697271301249097194123224715520799103251062380534928384573044148055739599489579562188350720617653369920556059479516231853029731801578810014952416560764086500579952761708765406677154446966912743072171804672368235340098662739234441668353350069663170330513079647676979095123154881519589269196516999338465405276591026572334624431230933996950048827762943474302428851710843622237518845007756793591129249658560317126070350711696042215151455242233340262848125024866154507690943479325450481386505347105910870655831684932678660746716341773419911166939259246499461095588833992254719780379291383624694510142104045701016717219509880676610002382188916620411175595596902433810113598841767673939384842621786237566434492016526459763335280237307136462450670148128502323733532553709981078355554995649695286155967589149331191762151199505039038868793687263571883184992987186934342520363523263601521375904611447732217433920861606912480094302802193569198567148805022640692278424965790075852687420832496959436245088786893062927046709789797805435686367068571330222707745556125063909000661845221165403862203225318465552936282935092422282599746138146933936368703473586961181081005792287657273508152450515839673169444343964000745800546076853217185396397890907337142529082256684759632472847454694975532404284887153719830226444785262724290416647802512579405981072790344558800112359888737658032277910366982037661036529501926374790626393964286128820597712348542341739138085539363208834476869688781149128273197435508396479783543426324470227880263261313444416261516968873676291314137367076698014961902657647685663627338160274504813938924047023176498027228204263881715812905712044435429721526341710106087175131347218401266189855715185735063528997543641618671145601209011850077480884167678048482105679577894631526212767837036726947619655108251951611867201096577109453564732308066300541241513000582982318792008515207119214464839694246306321899518636864981737025638635272477563241754800799944151397333511697667455419377873354419030324211322583805606195068830826010008391300082578971305256609719882584449645310212782174256160428617336727105474123992569718891613985044043690741086789067364414083126581207864603338451135295565981745369535191951703091208949610383392646996220496292781607998370529467992925783951332519094985863304239412037129486498064185836541068164793242120741216897071484928848270791310396477463526544069063586129237045847587296660829898177486703406377723240752510456258250938126757007907872988931810823749493266285135173148424541848118540502448106027102958672470995633567838036855558000733170551750799410221099989412696510274593923299362186397633791084221009343518516182162324282860617917513487986790632077522966066257147739416999813014196201510457952006136909056725467846654535102859079493100466335967557374144331673731751633728179513030503382131521559718187674741704244794385620877207503328087994617824125410778729591438931736322745656438773951344582105236817070175731983439049455910781938997911716795706663438347781618520419713222524976836208105364085207269564422701758010109870790448667447333496791559628276020422548081769300470102634694289120065964928316252416032578869773877840762057593410275072412602869515284498591976766458593028561189772644479806131347630054845411923361973972264549417995660811058219280233047638476187803279906949224896560884339404866620434830921834636916398868204890870074503800402897176065057993298500508842889094381431153336936417836001504441549738588818339793795910419409715795017929435462565536118863516740034770486961389433646776150875503744453252582257611869143923572879120400639251986571700270432061811810202875443396577358264001858099926439404253793274355963802600795998544930300385597359322936502161275146449100152166607943469120316535449023832059726316812091554005647499524003637987634927006521260733369632374594332573485728780390396075408988984815370764711010005622563497740399632415243578505767901635529570794371796987806569009438215810744838141473337463176596183717725092542482765476909708129304603795684968091414923074275511034228627637075505107546215170356108426518621912703333677880502121563089647051402897166036163317511481014812261739472167125960969470082528697610865980365469980013066208920299669824800457114805905126860086322870201469056410640828283565001205375424178495189915053081891002119829648726834550293979900457830943923904338767649702654066421220303198109291344147009050282991728314572169478700136675458769412160866711185566974526376047602952917453966396867911245667184153618875194786807725913060380751923352417103149461880388111738753613075423745595649945397252080064366122392150686622618577547031350022280939273657061937295146629634327760353476016042521150346396751829280078236597656043639455314277074931864262008357130180548794310024260467535416810549569568072415663600360991631266664814811947574259420416488550102963165643799552256038448397659746566285359375149384457582154339240855775956819571299411366788337890997079286430135863869436398321010953482753070787045176718604033043522822848139716994022269797842238372219922886580173303834668113544424019397035734953892057265422459668421902938205707665059907972440970721118414303452828287802294296282301958699430685036067747514599567102479964928782459145860669510728203430583133102473413675093751888085017949606734193358516636432335245785288270146600530091780086058361830689036965941825540572875406945495711919696604119895431766604224226326935147980874677969996956626821570669965102321410671669150092757059732300292709026501004477984471758177156058449588362416637155693474081742490815801995405170360621359517086567253618813271600352960167332283869105239960013329774744642195513096229813888947475373786086670142208983151733453054543902058482101985843911824127543376426878766384775206817463948387424796421336966292889384081331347969341364198139635099555161606572069091261180723508821526587270236747167461687511442672445314712756564014360501346172531469002930258537951551809877697277707904732746724508918657495346070117072101643199455599141574674521174707500110227636967895547695802298005344393055157260083277675756811814943516256258587342364826734005668917904468390661526017930852048629865047230350619082396744722233984103527291835850863824411764657726117651412224215090423074988100981784813289583620147773357564375117391544412650283527090930284725121630962774104259240412341301844956537393271732236127267265742525919286867689784878287296535795375206994852878004971419800722111362497969146574667969805484429684023822767946728927064576890095434786201557246091447967917569687558569770254780772121250395638756125851951442226687865504820870069803459509237254723796835875920474672829929575713993452009819027438142543942143772205776565164913871726540151259348292579981117375132974560106941670723734453321023784732079249011779098683176656263506212553248443014576507759012007947115058545049110431691837655950311006432997380516734675248979317412773204126547141724159340350924978927299357001810831872018792539765132473824428730932955525645244465852210798747953689671800596398880548291366359050883248002625096747375409073146653536114462100058737502702555512089527345024289816871322717990876712338792665165697434178956496748883276388879251231210284527151828069586544560683151506262804914603075379241452161050798041804200887947746552292312476604537279307371128708241666031444014473982228910931675858066777510407810636147736088872884616164824982501113442728374993654943999026910289932980692720617563947101646895086294908780845033670922824830471682376115484465613761137145584381387062629873857964507637539168993211606910379885778998918824152602621681575505116453197830167007746927788749849679470928753879674776215220139544341011714725305729186082413438668065874361022707044618223017843662923218721227804437910651702908367824139327186504230701371127659403093830264217730597443655968339010853699895845140513177324482295875013251220312940192293021344196334515209574350655059546911151074388289706585607966611963555860832784114815267151181628899246011313814459770139766272341945679547085069718405093770717970067625899203546195337345754060643984216621327475504008884276275058606898788343152165473039008373884869999661134450753646002697573395620660962252272125932011580711771413728023826337043434611786790947384553180500454566328031725061238347512731940226900575170915230630673154756513890702173508937935912621222246174773391058883751014081520218075817171491433287394139222142315452639731722862849415603743493875276025053845436349326161287544622792191432364973335101583145617126366846675699819576982092419429804048128877862286969491877624440852435201665807701841173504384177709253224394880423559901661272437259103451348057589019961861627629905728623175608095008357960740449007396734959112208231686718031267855881843970269519325891934478972497687207887046023527786620237311935790085404910320559199205702013398392937947773795405120749954450968077284924982294126557930774573656435163976371024075443994735461857479571333616110484093396773027393006031775398925596877770126053431169761436929177790054518855564935526921046896077875554460948523368384728792149387011801594450983909461774480659634806785982950696908323835706429190004045509099441064199943920451697216888426519851259399226711118714155836731000620676987144608017021438696487164297388466704028693822293840342314708583089294288118585217789461165445987775776192534589600582839257542168457999933975798967692309449638136310977384227936997275070495366268745472805923690016915456574409705673941604956070556802536769233541725167854895243768124984575750015363507781414647252242352248567560782025816583976871554919598590207866994739085514555251602329057443320949968356947457189348824466624884741139304110454552725236520580235220735522380509064746419654575149685341020590743387682010131989344379746726638499129841316048670964082218507175237979518722930036011873056258327967312033617368332625454173882988563614414506840442316988336601298484579324925203252103418742599736102587807465072830085897116927922695155379365741437857745067358430630559348039514618675631659015930710510710897182546739528796452673647122295309362655945581200507836993439953823865056473052647008526089118619302624373802763459085539993046680930927353921374290499166922146255467045502560859095347214365398450172682942290042579097193025741659080187963623575058842710330048768160758298202151016592652600453467089668194169262487855581226964553543372948023932170929313079452953832659520864269159271395737431169061877755953490209131326183296492041927442104705940688316579061933307894686971184369133830174130495451394179237753158867433500997000980188067010810897520844748270903208026743888903258103941935123813909948108320340435023968019405212535957938332802670406100720432070985495017202825439021421236257129552462094396375675100686663738336859314753933097705162569845806113296758354362035327435691939752765344962198653661707433867870392429132733857130653675330258330644286790523588172538533302872859232310804792749105155282511186236930402606260489085393419606175022655637988156074229156628983686956181256728183149577670258264026755309788606922117085859936807601834468016576762379602931111458189807325861620478105707792616287976199388938922423079299291272400168536438772703222313152094185994322212073872790394656742736605591720107873876707574424840635243951414607097816220800261061375618356934494420272755912181517968714599381865665074264547873877935674338234760555491882683270906577081576404773927126350795138236056225503717136293210814499152462063051984423854716316358098771906341306693064410993583961490829528209673239916688161402856423430403969580563513372569311380729916341154416263425363087692577094317564810005319617629200332276305765510111047206646845520694236072579411453351236672389910425880887878686559639218941879282784892246648347753055019386433201700514500384150589515548826965505444254159191474318927833852792829959311806085438072369263395633332161604505573718633182378587928628474950871836890606978611169495278457505983976319404314246681266013650446802602879220563634349718511323446749065358924268699789956868630374276515799505911995286145820389961807413004630253603203548719787991345258820441265393044762558616843607020614647328866425800561647149315252916285780400459260012382976074139532275604582237146697552192918666319521483204569619883397983706111482215204610133941225146871922606744835726843060270833187979883627684334861276524539407510126736782661372274286818733279416286243663373026121815707018570047196440045797049342156659188948106045374660096021147088449931120753036664678247527352775305009860157525250763782157671284284731803675399966625045565602139316578439050165221295977223094723251348381323220253180984427521661574145165152922626725381991063492712251351777952378665192294234098413220518012159140629283626708488826996691265142630058300516480437886983086711866242095749772825627179207091489215903400604567131317397384674045155348159833140327550455057182178715677478756372654502711721882117026574602748416879587162546218629128530827499166189129534603321467069955459975245730733116226085269658483692763332428192994779140696750285158868052876003493144887950437319694033151056437668168939698968701994661503789820480622176857660954878049868082130862102360528103514577767992435155305416767119129075478913477247116854745441832820356940221424425360393398258684735170235805116324636280591264464310972002169850065582539535700815434369949837401140456910276909669181593029766474750807155183386986319610640115928809439556583529825735178192580219982301163560634555517594458850957846480530336526120256969965986607878049382412284877693587200784984816170412405013932587181611788547385113935854274582938090708232905279856671365557391746371008171426079328881478287682891921941424042667142279185870956832242612094127770573555130830302385521114293137715997966227737383067726522133902095873477580744201131709894682376158237677464467308642641451817074901244081797552222078331022950470013823945865083365794528878818492830898346035722410077010477534585675399623868850308334067597899168487539535989976797402248489259535665572017408156449913667777853601880618413215235211241974138507524233000729627879362683739315106545868050674739601365397381757639053264848448634768150591036011798281218560761174036673033492827929386298692678409757193813314752639494034133274853894402046798360372212788104050484678576723003701827207403842975966624907860318905177058890429887475563671198864964864509949302154963000997357296898789493550377904994738157425941289984173268875909624940018394694276351271162697207252418638919028475652200056383486955117230430301251752370849783201957921236059144942851677081733542345328824715024198516222991059447758541592382410937994667362890998928370536255442787354135662791492409141365785227431847699662170359337020596966703440146359605222006955798073117694569527228912911237403546836313640805801056558013168662012580079532695623063723042994381452422307900023042431829614799474367221978869483993996257787730264550586598363942638758918422062505646115385623190873865506153111629876873869196531869888655944713767549263632992450120835480457970180897938908241282332599859069272504253954631314822754065531683695065476712588868083125152422376415143495814457347358299541563338794893231592492708566360128623642697886922854683244086978408601684152188149597124734752326331353327344623802885702265236764011510933182043626361587283352028391131639756015234839910212871559423986732559418813357352723371519859052378022955904934394414535857757507642647167429745385416566074485088444013765942308685895905213420509977547688751587410580994567161738079214718798635789024282751105905057576056980806056075933157955076526362407196087249695230529907250806698292516610633634211240004329836424604419899397918839526500443996733713641039782113483567063112842145046245362197527707117643815983380038293555240193381340789990696192363587109587022363002942964481668847507313527284889558356459095585022371200632176554859699323668420018499707554783508455463898309823595598849580736996975141232138042961156728902526381010023926428051391036399071037812197312359675549536410288580391207307474259285624329531693393637405655218739306550410189966792093423371726223960636697733779177854394124571007707901591040758165311464997132523661498396057375180804703094003843203660181357828964062422629325136221298300771022319360755689076455555997962495246677732688376713784948326771286509758676390244296417346637670284163150684850421625232649594613092395292675161740350322298273155967070456706917405842981348453506547536414289040288561213385659805954880926523952415988184251345917251980008160864047285140508984645441919986329565640542152901767423436651173461551948846789594211751621976161899899048150720002241408952061573078678101644891810122404100152978827747686569812818832560651725139430274560041086597847258207966261566958850601152713713624235043012465266195999243155069647972600668664514905371293851006722375948659773344713882643268907001358591724378413889829358822704132506111700250744709939289365647401145275493800927103038674870386423345638058359015566395232650923997813006866873441148116452396958711017027056202426036452593046333171584073763027242579292290995539648476082941021347547804713290495971795385638249613944735816722778831579344273711800355663183920505137065628476657851860005555865962108124229366078989752639422861501696509534487326952799328365780958313245630018857187626030120995703472549472156863632694817213214682726150943794295550556171655055082456326953913666513108018233232886801912866498702811384493786839170443946688399066457414200667932743726353992076111120989515248795388713975595278940386673800095703597119406497733270641976291841773189187627520637211160208073940869334427723310414322660719884665857795692046874323371890160526544980303686429476290168037413058151157347613383639205379139373335970491098245710858908810266602197397927831688446477976751274799198678621494541360191824705821938927526118181816518704660887181669931295383706559079477568188388662688384622271886408749588173269746668100086265119661770999912057813961772128474480308479519205734861388226646751452791124619560683884441227820696752322929754452186122578302914748510998042947050212008256421826806786155068617196529438470334922049520555175585650014227693617135960238239680128816939660608522164238823980265457035859918278782591140724893008509086101852480094432706039966012926445854521336270271655364089248700129532734375985877124718657146335234524554686548938072245792322044579938571469544247721049561375526409412667436401662229551735860788325513310881878019475498815528194051978459489824192157702713220617476720821536416996193612804261572424382324084356682928099372257943937260347538538816283487253335909444573935936732136829995040655021638463689515386558661235077228621169028087479140486286814215396077884338588943324861333820486153113302154781902384452192129586650038542543979997490284760056498008874044919393601865411143981332427455508183498613950061191658291388508192334680491014872752053663159909181698155920562315444713966889885694619744323064442732697576875116549807362141318707156707228821158613414590914061431700560591317740700968343766096436443314520769437334598741422766008995712447624406176766135027263869527199778598793520868410339752880565929231629035556994646106526186357881906917353345214871274405422370055942958212126626142444324318435579629262382124783752267493584237961175052256735095391194943417586895644792082687776777398452750743084333893982348880177729364832196280596394980294256365637996628373012285742885533890949218738909165780557531700438483645176700489848764235718955698287203618431260230788326705573925448803995186364883680777446220314972240053174825489572688408555258332920723383781809012015106026967622881324591093665209687240075466994468491064544826448652409147308611938764053439489663512652172285850079793314648799676178973437483238767585564541630863521581591838315355445789320061461901023106365465529002990527170142798217510087736674348390864744330938008534462371726899079704889651622254457773767729510002745629285300032344488124629735361405614574785339065859340868173308715016119801946925225790900286425161600455743087952813786369814396073071706544211939079347442706047256910528696725249758974807002302771553121412400520030320281663732135794218702714791175152067463812920205809202728488003435659157703484533900966919212801116007986150039814204875679136971725455039334597446714594129728470140239917771420688560694540216639494668516427379488334089516461752134588995179548036036037202406738251562288937064249404426489744823130890902888844573089287657221544384319175958147408240585332907948926111676433476124955218756398236646170227267359204846808616372960490977410426679509180489465555376323718513388703893941440662699715038392709897156839358517829354126400120751606525925438301323168909739120463935112277880175773169379264708305773919319200467224815431058808731180371100620926114257160601838964576970433091211647250651268943241983292534740249648569785992190498723598904562983238106179682393033810059463468245406479375581428169714873744653583149093644255841457690640968446322564630240353455681552542901842078806066407451963464169848763647642761681952618779471825741280677828248142353437910777610847081041724702890815439048661831677975025371149703887271983227274769136586349937565473581192030735923430302517096855408709727126796471116976680282855543233697375536457048962501754165602047337991178175498948541910718308813648251293496107662304733700032085052787768338291204129486430203505240526433714595445206355479894782075106993409080760201752404088479457092667582958902493489240294517774930509861843209487301629649516105872529174564601878064605352236512061641375323239779193250803256395047877502873077534512821569539716976760111312371003799569095099401118099556795694910676960730261093433642754415381689297195179114331617584438362342337756925269037734036968421427889038336261109207840803388940246121970343112844066577853115679985424750568221979159289615774881917283962357191806992553219746238038938929538760053948441270783848258810404422832141832082857985134202087351510396711035791879185629685190783639794976040377688546973575376632240135050800469923565560635008019688783470448791030214947925726431236414065389248490400852880878171945971964593239932869612268289627227275770219651976442730892458162813731373907412171987125683199222151099282229750723464284490542700512884979052174820338144679147421403182838938770524048290155900881343853424409322552253240535699431620466754346883026737599104294570917180030952492320201637490787513199939439164688735860359282885544220542788745959468091162367652371328550436382634404682658661090158884576266793040016917176936041963471681389147820844480990459588035823046763226752461003135222308743601983168743535059901321261597132380417833210764478536200895184470961741512030232736139076924966266024616380556399333346021500135237539577309623869418758863945654112325949192473990153871267282524704156199270650610717154302483565932437308057605541814064925077691239161317617006264460403280810130396145937509804953239148800887581295400129456521431449892211856822534580777226551855919707362843565508126448167397612247772589205390704132057457223614299892640431027330423049828259046821540819826043782879447604834177757333580652303573657283236135667174666893845715290945298340880547746306626250018359607962856966616524259951277936098042116027764669854565816273335208339839547210639209782870692506078070551855554328253162386048093131818669051504430693771355709637354322803725718139464754657823490483477363530795725388589643201617770120038544660304815060955120094948001229929868104488040591858810806235899568390583545486542137014348296692407905849113325849830825198214376476397609770250696594172678991777648667001235379770996614464570348468139917666182062789194629729981842385757157273972730382449220138807965842661501797215548670300552441311197713526652230549749833442821097186176662396041643420316014761102051952366121543535349692014943546858618592101229662934520029636632911756635429807008309775319491361478473736253760718970926615584493955377032645298479311330590943593778643517659682401368132124272147098053279366283128668899019253690144782844651481720450207917406679926934042638337049838121712555562463767288545059140076790216554235781901289811556655212811059804353780022296731167928518110790255276514580334972047195798835206407282564717588922871850762916483425740230978055471368908202942366776285783587226170802311963211363901946353294610997853784228003169563875715206547965663377702076688133741005543520588556614918675649524547612434796439240046550408703954582428618282867277850209858613620444595589119496612843252545827149513472931064331496301493946758869491578287759858142500229757725361169374089855019148028252926644461521749712264266725084179843433402930783863112196843237476941346134820737858861004900332533053663135436818464272076116543235178037287226770788682443853248195670812184690724033091999790416726003337609759160221707304674826049650077808534653188308415055739161213246441700962944777977724230826490034574107592904195524790249390000616298517041018750697537097903898740376004494588751402309097700551557828825680561721300217813205899529977392228458894429127218836326208797018534071577910723095912975211528972465382216890628961404661935027581801368402625864701147180430341084262930513883566872094690293578114416409572881229419115051214419369604763782534249600269182397448336920654901015291185163120428802006541531435644711761669414650799463541904133751551379077094694425904039238902773589399255951721932702990279703861708908401597981972567688927338237464167836270898677277893716352589577018223780572472450623074102270947679584423415335919692424936614979860034025901436531820161967417566306939615831161900490477110109593067361391234715243263809068573251214582933530972693170324420048142688629263936124133700035469912665436179854805007463152607356280442778292402864207996777389346878189037942991990999835542804464249424995146679576062763232251229300675409953781477494929064516928271267107432100483251272023679793403735049481022414439419582049862056700915700439862295407762754222348934785537509875470239224803808289460841718950766291525480133028422747316934983583088445306071032815474539213637156160884903687767001068184879720540249561231829990278615609441528868187152002244801032320505127340729905152727749909335115841608192304273398370142984818845943184050929009729967527694470204233529586538105286777572064590389463797600353585826706633867263341905707328723484911323207931114994151535459521065267774548033700882203901408078204804412495001369109924671739489057955867846418638126915550053708750889335324391983463568495712330176213100626834794096575538632126189987994270120904277398802507342977222188966643107953586484012213918327525202712236960161999629986462989595633948196354238522814301717205800456665937848497332824781156834134283485875582402307642814041855519008468345105210193028600107577136130560337906144807470355531002958820225394359549103295052676179933652891922399257828576719397987428451057508352793203732383664357146282780171126733218927456562624084198541844133487922990747606239206750854882844370724066010560694258594876173909475901223344566563438652152063076563444259979108006760882120426922933765456043086858344861360562734967629826392634178709470676726301210408676608115751548150810809331875871527814348494601626183074317471548496033182316615379140257634439032550279313909721935981651196292754398870805496245719708143633559065487352393330222285026577629947517143054816653373189764388932157479571883614925470994231978772020224348443970947608680733846774756440622912095026666590818014965844218521612668125145512852707723205556446711813703570584097089339521062329021690144878083310559240237457623235279971657861647551129066847249885851612841311317079387599979080973992121037947939225690582767794106272071345756481407643796882199027451236367865632743667304449859819811267560880479949979115517898431824328792711859828513492143944511212851451089787521483111274088328264837527099722061490812597093952718011976576386117769350228173110373431704709274117368952880811573158640712001934557939108509370336586017434735842125843981912826877354238062564949046188011939963214962171932665283616384290100696329416595697713746436404490009851562008266153975815162485327043511974723705527855950723723050466719259499380046339591802037059390389300199232859552632459925802031518414680630965499624253182171011729248066584397168846912670632033174576067062645832669905796111665150588752322510600972816669424954297465710143591483740550768434641764020034251980611938429786150990346030964012740721081749460716166705013007929859565745649889922210980987114419136825451942141417839882476745540257062413791381562467070217995146915397189155563888956555989748432008517613762187665664598710352371390634300789823036151124783851333549655603610410879513492239111618047895393176260941418754003627928893406363984000196070224833736639798141454876857308707665059347371822502835804311590294896177172686096719712072373353561891497452630039253047825343916877540649518933610560975201890189093026683179398169937335016878205698509727715860971167439376727279560430439654690320481767710879285596904841240348596385047437259631105228188559953954276902769775337834088699935778810298073578360373398425570727822105079813533706212348977343768787119958204965320891573661226083332207374968982535296334128039444364178485211877711528266949598125805734209166227629811102595168195328060954679383150217633627676943219927795310851144945068774869049737308164049103700047263976417582854370298623840904455455132987943268646968520923921791375934525251364620550934419549483125614328015737442986252511960509617846718139507509448483509098667095829048171517178284925888428388212144206538499069194289905869454159122667949651024480312190204034921384273230623218257304757247484429422497738278109104863672934260052680362606383625355587279702554764906355317083632364772276483715061390281606074254774091982990920309794667472651761994557552829056704941125649523638133333350380265259998899856013271674629830472385608767731949783920949761997920369037663408011047307834774102721852136818098166940411469354686303983750421770726393817158164331269645619825853085767954428364437435352535709709683381590691866287642219760938082492679636563276373694246231852101863266948336500369845461132502883519696745506433293656500736948927806496869637324633106380698844677815209621754905342611635960882385018777051983774389695816394505367358637765240003346739799663331182892322530600752092067750830686539446424764028488210752036144366933447636006625272235347551120669662368575765097358121500330883465268854234356908362099707999101138259899208766617169655888769740942701230641886082117919847199735786003494248491658413604507021290885370924771058527969288195196807329362025819264586602950674755958272328443203845379952755753619078074373176082823942511480486030054534454433926744518355968541954421172772225106546406813259797891875458882767121433651726645107467452468481400203468167195639446736213411508826449622205625729912527290165833594063296845597941366606975532030922431531494732300351484837164126070420398531193389188524202610970910821923689814663963404746634124575920967127060561970188592485431376178866777175311517492341837363619636710650711718466015576981544439892760937983987339053164402250140727354650684125713757331969468550038746336596243473050303069155230884776343691915015707359466990074863491460807459332825260006903081652964346256864799059664938375203514070822825879193176244142728477938966101851358527144967451208001103224035842465012211487821350521892762457332402929350242997315218081427253686049910552510591134126000675488990817756266561756202702128775378210924606050897247492642169223654179113711157071842344887071570841161224128814172714724973989674594847361181424713544478444678659176748313936474194504266126135420175344574957995040641157353397949402860823204930102348158276370418934131094237771996010570449996021290327850819214272424760813699276693342915022194654147061472741372539767633505338737355111592521167690975901777357597932886234252114699133257320754076386136235825316536348514475607877196008626507709692486010982798825623678457073780711005665654166452216768618853265831633148103543555683230400130663541137128964844890966403300963140117537949424086287744191480866097658012003179331008817813654319125569856390229255918240419143305451691608218483934162440145718527077040037883325690441093635532074294576678172966626669578558517528242107761725441069652920664009201286841704031189221301872898337536802809593380707695776758143106410254500771591809055758975083402475913305364022221665364949960789942095315828882878017551288784429951161781620056071776062324569412924570792589893852693559161716159472315035376184616791739218701705802741371873944131895470230475013443759476866479165902889220432610789306702344664859474903971866708672987392806807175944488328448886892696232208874812308641817004021866455575032306373794918687374452692979900058232785064327614434994182010296324020874337900335431094353288225399678773945683880462243370791716266644600402901818820766006952158521468828045205034161021495357028921148623075169392967678048049839488771312464901894928114350780745684722650745287175485108478758339500065985903679854382915115190983824634268809033935531184088036050002449878934857635892604085028005679962627467022658970882019066599652742238296686282237254388588799826950197624629550683631054867594811355906871961610863591802767200318482563565459530389429596984754734485991307858112525493869462866721604265107862513136629295900140385579412414351810149292695642089578160219706833123368137617513979931567814517514792931581140555391420613141440341085964555227026080832427915055640078389992627478019424337247597853461051613386045677317887670340278330592945139049176582821078532668387360027795212381220939296855469232430304973207980285809860419006531015996809044432953228475085897704155960438701876555717655284230406588197816468841284090773709010297408911311381304689449791496693499850264598116068568260199243850676358008188113884000634591542502083078631224114752380306894108684248792178544142659920003577210424826136676592092183903376138870392089116256274869673058518592225575541665266167374640236128381071924811840223405238174943877039720950284117178411034604360936647884423423017204332114549489627236613693820242242149604587569948523789864408609008510320361904139873208196327705524354489418121693930124743670155487103544233998771596349975875484557017128065711699098150914282635139687505980742163463990815929819486554995725478479705714633876389559969112890043715506002304444757807678724786419263008206053082961839892516211661651937501747775905348056245293191096480957344372562732066402688374572177602891867100636760536258111279839974855020540202944407997235186292834008768966815711303277757181873822766616997221514772683967103649098406993322179349060948801319616546303180831084602707498740399212777664265268332689591055982067070434604366370987627966848260722801315093181136161366672254063511596680550660707323309877961806044090988643220567287351634938658041804577023074648640170103292026966096390781105761115395565521682687227321201440898604524025022209511444530959364578220798144544148953932071597245664481398139095331087852870267189584175228269501653992022307879800867397334042540177120360546003726803688726602351076235610687385138471186562106283648572093422704854172111015860799146495187029386042026245748237029717503920921917077186073718674233617920263629991942531246049536614931879956699107036678692110186901897852212943463950327145625427888230710118675786605220197099427057916095595180470163935219357022693926199498143860371237116543735953125915551437412864402977380656205660438732891659177673669958271057951408001725376503453212895283928665363376339026207376106134355251801285086751538465467082209813493018379159664383316156626459099895961489123433876714683076286696798426717402883264033386633373747796859905428743887977531571505849918992219452661593676461294583593620649873407394823143332333162747504308664222854480179161769804414766038228437993952748160750182200508950797504378403197367075847527777408389288978820469717112084461635497841024854298324038772056275182802923537436431440829343279651209475676876069841703578601884497521877554501830054664436935635278869079881892900388036683484833092933511158924569639085831265163429603657227723037286983082178048871238951907421724822892917859637470058218056306080934934865535052222618509942091495832090060959432342949345085205978687648550816118314482239123364291908209669466578206888311057603123761555950881001988628495164403189104393853365719194748403054785325403419470185223653062007623936303444079076989900313283343188885535277508504214048022363695559694773703269410779257213260780089344665041592751745018153216111071422139961832620009712688232445474332517651549728009648355079984011674354774193690017606162082916966989468771862514924016563034169845782183984743437853723096802150061103783494760529493849022442269952998900261928443390653905836436566940632111203593857307231014598833485854292565486137419666971470976834731100837142451547465542085165206011970782109906893408257122223727112686566736994177149754444070352514789638382379522518796809100672788189166007161680988280170377514898474732055099006977234085039082388984120135608674659092308737171175123767520403635942944946967309367954398692669075468570978764687573662523155285159059194642021407890616590863233007733063755208187578384007675487674648503972361965483227782416755137397908324420028339978738352602202963204708130660178351457788601471662807113406409121669126452330522090511338015381210820738216067066499089452401584240255895149006156059224139391812807197287795074689725898294829044192070878406904238096314621223685167406617348384219097493643173107737069252318504515795235185002334569408237496882613256350111894601768696806791090257701186693340861514476675617284235307632565010238403165714019253864068223958958482080368719707316368472291102663135912679689356107808477060424688341324095072258297907182905776371397015960718528203666243005609780514814345610265896631755538954301226324228979969888444107817373689472312286676673591967793631907613788573640617863031547925527148852668588007107433861740505518475499967146526683682393218617696706243721707940161502549719735930082533018954364350305528243461545815140111959196427510038169000158972942216147011658463623463049328718930293486964554388466437250399259818279983537609325240336185989479197513815968275379804768352857269806905074704417704022870435336660797236762242909804305488561607785938129794350805473141073515001070954629950743365762177898887311354928718225692009518922570264341061691920040655313441837806123569274694516304483059700324701709773346286919930552157621884319472123792766344054296244854642041893582151943838812416455483058844022306705599788278910531398690934499555254293917180946042116455828955926650382380371637533425730694405799282407785349263636072017242835998790910051971658209654359713979350520306029826144680978803229722899960888352811007403317533801287212292993693395580912293060741054524739579465489454881785280216611884791582415557121659175138656741505502549462522081454391668108223301520544953471183757728443594831014757568755752496749669096353724315756423097797934692680103709840753377379620495977480828164125827427328069902455099729229446010517102401334344565772750077423741091664682897898889137253855889164225406842359027797890214172789212953418264392588648877271452203352482000345367405511059270050603381140279377920090675549432573667752469930977040404261186569737737613319488137559395511943101667217614377687171701385581528977587404373624456943360725257223359585570611284340199926172858183116045725741410719178404417962710089148956051416726015219026827849995601126409087616267226787399905052435648157474730021610117196945515511386622977994091328295687078246460367091265131358082828576164100157299873877643618157677731220236222857374664602390982810257389655079547398060194940892474885430471258117910162270288548495204066705243888404221553507962317952308323938262209502869770082616005891577993375085993255129176595662664458933811736970156409344597614222321003537733435158703671881817631365336567522599943378342680907584993985276529764200987572333027837400783645972407958547684280762624241193338764796450435961171971623806271947277683722234235583976646420669453862462767289601647040122622153624094584934002106106219563247315021188403616062510759234069814077537055219500395512284742757016562028009219309688688843468964114736442159098622435822205397666656116730348730821380941959403814808691178876969409972447751535869640536712982902413488870454577538245279048099434326218509567936403174410361159779384557248197458703438140457513881940878933076285338199684970643488616096134429947604942498577929027122920582517630022431962173716447675248230037344838893077632726598467686007156627138211733151905951203709371557422707861191508140357641928088081443313982532811923085311196192642747328052652276070146792875863269925484644037339954008899411586127214758936370704871974205889611158676082446339167560017694611071021561636507788713161260738686997443398851894006386354133356623130470910703565520641155234476858901422725325550861250266550169045045515975821356427222771315147028007380410740784304611497831072582249741896127118247755277062707813862474376051903720358096595957361535449099297277266930660925208143799184071141170585109921009275546444186336286923197288258527470438305305394100316448210222329125432286285064138838306379748851303564195239421097073763655680236301097875269663801719065235259207259967274619045979999102739152668915119687529830882991273656613870974803907049988164883219714325483922445365127249337389719060012339082317703171392020029730291507177396070656445169835517704909572132208985374774949303276045511241346840835348645865271586691256085177794399860567241087781096781288084237486113811238711706448928435713098892222297455461796297535470250017603359960037380078184096512403929812060979215414534753639404694184351146537619198916443006794980887495254070460807986678593840171458851652500763941341397118839093125378518865898640853237009987127853858475096875421383032821150099503244730996156548878039559598423026765315832848812337862574331642352169871912305229616644709416650465800677187782338257203066526798318659086587286097395157300203318610584032542706911656846783227123075992974545209481680358650595283230516333445732490811867425602672067542885809532886819176632241526663964672627132807920260041331242353175603914403012051093618757843530324489055115267488537053430083734094809529674720596768885495282685146133333353853063754759687629367431537294536648739629224053921744911109386980427328895243468451135156186675426998415927610755354607570683459125400459562850375515524006129840458611550954302611459558906787420437965825720342601453774566611564792281249790274544022157967639296789126471989205493728027426718165597874885921965775432508652146818401932136543002228302168260067919698521805930012537900476569180852281503750996244435208332285283859158461449982562585411097206015532709624400527946797416366988565402824465364598942879894476495842169744204232361617781576670839392576869521364432718978340914939678651080529569061802513070564358334776516316619614476094688614535027969578135017026216646148398733456206900986492380974946761932991544666140974542908231336088990859810820920458663946988684428139475564703454104227113541207835220026394763971513481496925360835457442497338041413701208731363979885657711454226127084624945293609058771563515402720325363681645287244032329146468701285721770284319771886199645349344771911662628966352762324992263419167105464825247929435790179419097481805089133617884238399573895925806366072668419778148594967659763244600560381444135615633933360257193044550504647450620124378849201756834995350760538571227809130454841081451909644879363263079981473462654283686243542085136678240838890125116547582382944671725567602548155771006155968344302691487689857245705159854516868056170494263093099685336335642700939550822034055504004017196664130656035360214836711535630633282605463589992767507661050199709022882601825966642460543026352457238259170931716777919862173865374174266540353046914883827839646021465258330521751066601846141117975660540143353876980717584935223437929046938876536012572584684214678926647602498518057162068950436552954104112127681582873751428830625746148103597500347710481743956061477285782094318810988294817526478512064179474411434156014487381063294593853210282330024330623521330960690788755149426398806579394859633059107715865129149121639586404109298654235256215652722460650377313194290351132024826145981182874241542025100674075208731813288070370597502187371958085990280397533807179053409157656359134434439433055975191800259869423469038890496825221210626805588030950559040014770309057950958107918722972324008793067377028912947957945410771025242703986668281388772398666194989283441553574813248903315924857806789448745778565942811471976454194880544579190679723801523414189517221192173446091042840397811583874298270896247470094514204313028636736004796154492181853458334982369644561295685633964834676993487557060120749197492523407162951921534515075131297211085307047916657650954081772380838483800392502804259528728464124793876462985974289288000721996514245738395690643213293089529046540480087708571645431188413890018461489330148375243109943282694054379244506627538779754796561966198670171051518069293067951655541910402068419577204864766836989710224080522330907993467876362085954891706473190527794383967061257894563418095872366305291047808990790162174421823171330104372564308200251101768868426306571248129282390813087585879081072254960111224738988628924261953034122124259096744618284341194318406536982251350838479054682301900830369591704937575156363055563071948002534665783073153150376447975533362041870826142031651544995394031116742276298941376626106355470272921589595817881433900635243165472028220310083276327072540158845503315802094453570533657867385494268818181171606908605281930702049306974305157727167920441387849556963724720219103503292646221577045894614059828784927543296833986158899713329060256781275458842209511154240992807930000106445255973536578313313869161753350832986797912920787898233851236130688237294191597348638628646910153777691553491393446251053281578883395625928354112651995949861992199643615328601222037778792517767592656515818536137656902971981640011371382051589648308442685585595802288217107555289452451253493882530872220005693601947599333904540818795614863538208064557239347956952712783880497015982964115940757989508517127736890879146076078913234989944429590122871267683870888432611712514070757137919587813364422574689285874151765903662520591822753023549015356104856452730015685005211878476333685576392288642850902888575311854241739017364807365894670786166265136100874350372601081438458506959256020700733650337042193035757923428252147451307935917102293581133545010699323876105114648717249157741406082012394227042523859787358108503145909425260309332056977249078870946833122658001945415078742576416257733059277718134721217637810298437078954559885654694241569789883921068396590466195785878220842108743693088181292322013010161507117164832092525848726704491593427942881695294664255519393822048392926605784870694602840801000531802793922747937887099205842083253501822746121371238187862867548412387083768454199183070302373035653667479819511254761841673560682568145117457078904532606355223758775283826935227615262941060873675334353517968755908135179326692562035141630951235916758196534733140670197916166163121674252374673596222642985398914957045304814250077108869847320109127766166000294745892024755929797288755116148173824737680995851714349364446393367411613101270647102401039216650095157602916648763547466591773730220948802093454494314095556556906441025736584677534028848677479532911805370007802535643512100954683360241289720177689507524786889062939219684560238812501698632693053290681969533092098617216622100449886866992482964868697823332737157620924177784371252184080014044326436953669122022909580575794689472876345878634247422436447139332784662383067727425452959444332530752896951122574256984825906808677942831517786536096099577877792920109165095904258444765966897278250547302397901907943707195263948419441860115755062381229372659680191984421282622132498356397807172216342071135295797394361306127398776708878553045787834552846625007021671874631639311071209989346316104597378603515182348954008722975679154559539355722553701768704502623213926506489944040845173455829175574539017060879423655607329706153301140792398030347322424516205857717851954198048036895345139831856211083219810161189248459421769684115423977940835006170999360526491979981435150375685849093871652518963679030902256150590401126340563276770903161021600923802506281379957915832797270581055127315509650422626675595559246772864522102173555634658591283085896714189581137304182151584063146653267168161453894054183630176295912240797589665837439756571696048795718462466122341283840403451986356541438411192154090128048726571608319639106121848723136165356465550829943877146675266647533670369451665434633885877848000370594456766641299015026593699469564615518657339502753261550134616238607911778313830322538688864915214468384569357266013700460743784319084061057649857544975469898206145706019594620707464285331085869691389405570855013677192989123091185516345463940074863272654315994957801030479235946262393906133656522382505308559055020510992383609963267543706271353766847698843402530513812978057072155008799137175277884621229343895649145804789751478829589674797007359303662930319093138235171523969753920823880092565927874823713893104440004335595064081348685812246215532331430900475728562628879326641205627275016546704367087862082347186352351376559824437835019260720492807256151944764484218601003200213886078494247123725516446470011606539975423344036347460944059994265993495823686101596029787499606385225779583698015310941837268602822861887071834603235721171977634130373412365042570918077014597377720031305300596584500622322091283910747843770930398135296953843922751428683189360067208416246962753462685631823725693574305529178702837089493101207020419603196949272022925136590521722384536818258333085969230137933548125273649176515313227515875018742786144146985859575977992855632586565245726844051049633283471710188698411501867515752671070100101442393793426870232139129524344778020107946202321943381880730703604941379047359735946188483886486080724991716258987042710523174588492984264345830936648562706657188271183615037830104208330163073236485095625150614937426893526108157331164104768874297649812255912009800897397009343305924028531577583040885274863969315457917779304312552895979307076904593711662657685983820929153778973928568571501358952013212940191639123054922959207223776791844934742036100349714881969774502635780094784448593730887600269867810715182372022915538402654021547969756618410536616974762652929136213897543459279928697001534113624147827696858949444851926320999576205314012019171701785005300180203480570109154412758923028560524244557400273124465587605837661465867162522276393772732215033600257866016639557604319693766999783334629222900619870775842084074155598961380880066177234958914571167947165561398689735614369489953711976429546973869994127806368929544804303391771922745163303781194011587547790345529500883683096698460284265916706739106611710791776547277889404293196631685109862091983050476970239934811556742731578048363613751219298906235977942363795767285166689084439482130962633164644288308805489912480262276924847697476193948193970776586273738617145813484172572975838046326891618223872227735000962665475282658962040712656616198517332786171998920764889300098817536467943503409952842114754480822264232698585112843378136992620377744499781729023839575124201370780431378723514766409081574220253945071335587708632022378721507868386466012074987017813096501916462268540067691112224233868486702532376137137237900349762564854641016315760218086359097596002159609045012311633101465762512391029494008262423833436770326109079111932852631853919104206855500322924833147206678683194290479710644966928038774337234346470675424013525878432611963584249462898163682366144389740703966690536492592427002928640808353581709404099323835948837892365353080397898561154558968743904323730779358567655699519848943972971655738145171614936457821268561233382971192844487141246152130930763554369754265430304488403699876973734185120382643463747999292012300622700760395072743841620375989306105869239258037553780290633334292258799030770358844134726457606452027883584272163632822057880265146652514281418977091003496626014751306318558933589970171676721462830678006403734864094258773212983387366537983990966290494780554085055612088365846397932109109699229181905973722258913211132949880151471692739773995239132478720465332004846473538629768163814013954740526360057154636394054510647440187339137319593493557178285653068818587358370045352284806887602689815659641593872733240057919368446339595111400124283359235966404328753635238362179385938971865836199327531535037507691859958096464731285740475295540870253542601946681480557114395472997693084841058574758548736878606812563488725080066689907276597591848501776399875137150139077849005649669100381499544040866048424001032944044183161564073848510179523330511193836022956527572830141998101199716937152613598699717127228645712586472564655656232754403246584155686565420576820068007112869871555931041169001407497773778653215896865707450977286511462538128107422422327294334436307007621563237386573745243274277360816787857458028903758576699114075465155293297853866387269034441238642482945053661226637498282474585942634366923733243694350887614448424988967256765991692258051139258887098214742712239662512381038656646783617634258687702039548266775423522410982619065202078687286520610857054005304482025464817117553075217381685394991858097371140987886944497643819410506958553419006980870818899380883947015662195775593771195823245181044358000722147804733990623880910676183376681212864584572375382540670787964619992530615700189896567107895130783063638978418802906327712567016093053908333914366247767840093919325479312061553234262585650057658070724288780330633671752122323901931315721067601813666714848018218569214723142511778993035200773682183820754043437923321193961218672876336316134688336825759114423698986924269002355918342382509048259492167316192190753960181029311475269762177319213315970575990025570599299556366223316457379133725237856297311503773762812911837236680127992412801563864249431670066625598661528196524858285414125123955260609108075085225284480078673424259081268875631396432494294990784807509680165602110984726658589209939134485113386566571283861113635434414180035953898197107214671515930063614335709810487292013868265517639634114544948810904855108212891661680727514728850737043955898456059718772793056632724163515428709819002573751753046809544331430550041646015804515592627033789627853635609645998044317156039712470925110363023861627127792256943838016789791517869491059509821066386078341722718284768366505796463787161014911090171916351180858334900344641070839395826157957562687621645955330313569450117632359558306607855288900508524432970667803462130330811202754731196112679896734761654777848537334177673735470379876934247879593580223636180868001357029639016552537725903882292321718082660712703337164917360316967995858779865714325122561166212542389682291107450655919435152531528916195871569848644694230570242097608481586986316329409405102907598889769481202232216709328137993047619443979444681816192383807760622318195297953704675076925959317012938278606538305053823536161586827079575003394930636989383576914134434631181091384252462072775776615793024911187433211556564715362829767222632488492756282158331073794755631618601787741501173153149136729663107408498320243748413344159028596582836955751520134401974240372823048088674878660390022059296524077648066764977812137434783737315007724156952956083336871735894218481254916849851728606174177656149340726361309851770858983466149986521373764382791158688136388048046892369382290138567305480182490439549747863479098691741371231116347954835279134687094502996312927528205227737872288547570309633679825556042081887043141156058764027220988985828670128801585302421746472027677085190472950438614684961701179513618979339428393981666536100364794639739441299139141131215730648096619283177757422099453342228385516986641120179635856826700038486586150161193132668640760872694771400981942617595237219018755792171092874551865648659032688950702012587731880436680672571636454740710099709162790858061226671442631256462112745419139978562257686854434361397306220825621007684169945551553690300006459515438088120075241301530041603642100785526143476009754216574720979176387264868065443984925844726063826556593715223944403735753678085044907322813213347984312813080136486812674745301710197338450908016754358971175738221666972656720326248143608087963109427665398253081272572692357849901390508502198759283612299288244025004121147262449033724567507074902427904994217988294013741137234930882582816127632010074396294065384097538590345183244378108892072506345150769417383245970683218675173485980517591299794087293167135565553476813546970242636100041016897085749548496413424206694449376224952795021169015157993606330912530592596063997147499856972435027726720704613908470604815750038253493211874294007835958575415604644294797860676138844691937083174459020773176197638123672760882234883696072693660546016139809268774203146822034116408147871979335963328631189477871787074598445757407401026001914343382324611742519266408261144316249014269653269438135452430905721670245488933882191037185789680119948591138578764290481459589638208668080705172359232647109054144282716011868486270979396170951421874339937971459480138082004260270316001294182726178884765615140717671449312441638451139029391123192089323521731639995524310025272679695762109960690557851982470139875453989254893305957919331981153262825784907127969332753798154139310944304943572616227063415021884275005036109260974905243355549624793666948749484109491355323850606719843906112232187899837045156997112829747398183934440443753528815497834655135472558988166970705812980118246187684621464391051177581510764759255659385665703039662664621800765907331284870170476477747813745882352997572852177039596875009703917080953805359966566649528952714605935590664823660992580105437146948472456191864326234959252229713754802392679670590586383851971339824556800148267042663957233826206884801809562576656701559857535754863971302009430017009940292798040748041645684440273154376352760954843104248407453539411760394519925288151688391942756997572694610032534657632473030349670738156808987179588199614897554931468600768836083219775327220615454707613134831633485120218316985640101411495888300526597640280800209234026081565711573570537412135390366334853688403890312063596643079342472730654643902727770106982501593217177884836659605404838976328307288857225244880594808402296786598684145071376625700412468128079513435962694281663541670979461584696452744644917768909133611172862534407174210407201260338323501797017260412962459035877169204334830183181495006794592940962226201654844277427681855867058249739229569450466465669833044576443742767173415786860448127735688732185261670822508865793272642236079437551925686490434924459062142402752503778107176854777103002365885400306619499026157887830414466510422849177069822263330618543179712792410849730712688401151973911646525904457743865119051407055397451365657671354802910565260835775567133602238641618587918063715141526465978187329851132771046764071836355563165234666741588402118173068005709299163083683480883767077475147275338138217140291540887737608732719600036222522213291854102709781990740257579855313381999399503361778665633471314569572500195680943095086860601907452868722798342052598711288390174792663016872027218487264308344495484220867577440465909403571354535341638171438099715257173863443770046562829354432920747585240428929382411531378028887457125069055809639634550863855988939450603951228833677945930918084371944713690213019826234306526060952674703165673373304210949777187466978225529729900452968850994540729724534074100189744633832427708981169260168023972852276130745641770093731093949205859901222616754220824046386117663888362328383660304947350087718450891632552298228096960503036536259535383956257845629666135486803339137411961327227880317087760512873459276357053868238170735784905089343410130668066677607707677213060007953316046411890699292235526305614348308551902586409818349725789424071285944610241723429535399649543710462043695801243517991303882414350258029959300594355012378428743469260837693280543756922281560617383676027325012672997972690892160960832060095905142626199389074243584753920972766044180872418836932149922523678119218077946763617328753825176950910738974268471752754059390667403348928868783785359526521412265687790028368683627899653205741506395369954711217187597106563688894733878103477179391372656034645432878013905538982046553692756982426175993509090831568048282086599878247251807855603038300470701038880457152805202747528638020475599057183313036213727551544261029720014359811658402127973830133841240602021095495033711271081093822340106048599170510162354077791909949770906374746481340519411913917198269796302229508735066301306477430280980548351278644072262718640046432084565460831432650666961844554043279038440105887728991371196797344720512061335889692911542594004788538429983372336924605333152489946294011440124041752002703613301682076653942068467119385841188671717568080617238682724114648091491331575144364229710792251531819276226628842349029171370982729978736059519386059246433076306487747465967263549362175847548127859268922039770585120358253932764571088777121599453757105236395585169121602332773432853596067025959611006418067576286152239056144431209901559856952926667894356425788640207805650280844765471034687211579396214898232466970576323502685770303204292698803204971724872890555198459450716206749763386065883101976623003313389245705712830158759082522292148643412468058970275558312235626634749048641910317678580450463022985472621853810742335481401333821765136658819420330492139742311758411115221205390248071247304761657863671116879763612783476243581525037812314875576714651156776891537190681534535807652206482693897496118657312263688259635694725058429115460446730109247567936894954245185334848506474241212779388616384982330845388210273871843647755840310505545056344281846816561633648770837310346410443995158284749887047593701302691421982061410617355879831882241674781823260848304595571817574813196023092586982904945326695878468807667708289969848948941428710981589692250808176367765636279487948988323264067028631901676743317931832814813054367329006508634164583226863046379870228859834519196302822672633788867941819700663005741844811678381343717195140306472052582534596979027836108491211442621199729810309916654023572533363656099098435214099209976345798950542522890523468908528097480625258032200918081759373266551185748588655989057764690252724970906717751361028941848444193828338108112981697433418953855850694435305682348959287790277239110431662420192614173050801758784912097780267799980489984098114009025662725098524738267622570272707012819446472927748424497456690031010014901239048833854839267047855854865253760574095948587961754326639891722889985377160497511692850331575948933822547801199768614570498159858740893668514776098588430518227147990617851192161651849472567609479388163769187624700423367029271379181057170230007911030409196137660753627763031246284169918258590346156818316102538895823628015228012596284547217569222578301901997584463898198559207182924725625112340905636545987423896022364934788224579161066740001689977145263770322408901491618419405764856825453093074038952764251927067306470437138794523666418668248931140425586131905099464568689077484402801038520709012382771954298462013603849483301931701619603212970612531219499472663369072654012807224294471353292838812419921771613113815630280949846513319048687194827379000076123681110201728712412392755432824662829280454565590268585592441884667351670147858959851117889251712645723717997104897955012805784420759040733166762651573441908426420302654848144987192999453195645513821639862558372826068769700255197688544309286126065532256925694823869736321710173566522495646703566400488417018116996101799827688147218126489856332203945828584705615642712279283300135201033863947447773802180309836668987586666939762660112318543644200109624303649945687673595784022464609200756244473826970934646299890292775839805301406005020500587630488217290397391984428989735479917292872675640135702500422962895871956134168921597443706715453223398215282358747461294967688183454947864607721457406301146191252068568069859662597850618077794294408185043259934404281817856347657385436622501777311860223797837319491274620898956430181571732346440835574790640163330680968081001633284651609092019598422660842516143879256912358044440867532431613218321230745043959288345901110076720125936065698873717371013432089748107796933016033472472803489695410866347432473602664647302269975006502904013182126989652886368611939288260366244374669774262672197577608112579926911944511789796123673153255712589362552070088129479592439783036540365895066060179698090494883071387815134554339066103027058370156535842497660361862087312978578816257252509508057223265262443959988637170680248220653199294313258136567832607517797313798703814621819857775685194515242440437147968531460522720985848772399613353869401298397567184415384438006702338767108486491704497584825617914358479465469902435436124733884655359551795190492269788786627922432727030706676494383698294141324938448146504165021948629144214541267166985984650139178851146441516901539483307246321045007496976738273473464099182061906713031755013630392145889028839541245998246739169309235088407945884141953285888745675113003342578161447649987335969992046574142387171844852204652250077637738521537303619512019868101773805638808857011543201787933094422655166015238978757450360527984235581539979830777211650480579434628338164189117928803188054726874861876867784409035446528481050735685613251015498400579220502846161821493769291976273963817918285546795580171189714231753741590830577407300016254198306889838908419814782609186501281301531366783512373154066650221519269456193873384246157809497077945449226285373304620499509154519404382610141009057357563546378889909275247857440089849793699600199179909953094495412094485192966299523661346787035942284471017124746320052021438273861118705766419996672934123576667649245383715113432234807389726129075537417617129995985518928821983188868252445558730083409440896809031553784979885884339457223707980791629400385977951747783763717776262754156359176508169492031713993855539025643686510522628121259880981534502046232149908265597241628194592675445194220820927314007491355800839438904917222633017940382262790573224623011079970038686517680897531263087953607754272461554202652382988741590031632544184388375253718001610787802213027410088102346287052006069250904334448012405381044182892840511937481850661281856779327638444631761725970975531093884743511127098724150339104647234254795049724636945880065517097491707615689614934162221080499559773410610906720254307307527909741010881600685443230149632771841695071724417902369677488319052209391084879365836310672438743953637265461210741208935854376228902392669858734240575683287526881845137873188137784852087840896361654236240975238344172833955496721692055524629384250328960425500698015626236304022134200374938531501008067335493704858388429007082717981076215721321618000211941869168932958271605695100223468965012489866137674544798473781612169526085385460072960324271272980943676248700958608727957250217889171764439371459881088527799609486392441598127554399966912422184842652898312472227017966254482752090769451017963457929768571019165879476193455020505825359058477815334039719240474112939937153595421867397876686635142750451127994517909271856962216769653003521244380209556074286351417713073472474336331177122844117706633963392488287057711725596405859899700560570381401063509246953993354201176201367705329266860773832421563263438415525654659109215803882149543012513667636573539205932813114370965147970845503937564149674710448123711441519261326237289816362314575868869518816043852170314713861400834556902405310014119561122286721774084952848511157224064628173774171307434497756333124998397721601261013189352773429430022188610465571143170266610948120076123889143710464333874350502643130928951496672928569803136279871061690318979365719263705871706708325536786099158544784757984080901367325883629334851614216156430838195126300974971297608083072001882949446659124271940582790609612342404900845247551406062832818156707790163550936938513377345609518500915181025219781137449363520786254954798865263291743483842565391100664874642614726753329838967835971310744448331862891763995505948435174981867636972355183965599210662673770523973555093703475805654349083332582814753125762145486078888883291910402190837884255443973537748493127950397923432404359582621833408000844289579097711936476450220899458016031281296907865437888543913920034113351725404256244234391361252138046825985285983063876261990510827295829859299234000831742632523267617709393005516853193083132239943512166768412029729388397712586019630984851489410976482671033479067267947824261853037581993930822373556497028254414035434760718541622666980426814616748294760072916219039797125360318940534113086109551694945758402248242489391385196743374823610065054535409113878386658611185435383733026599664253672545665409723902148227299069406816181615884681350556278791758857389886483609823769135015335898718433345801510033750534108294533486596491047010242588656438596290367077358996200584476783058752713078991167977931136559866834749627104340656722376272746754048204093336709479129839346550702856360564165028827559437975622111535022752809443929438511469500395431486163835215045749656233921455213625408798163647969857689982761644280501603750641832639717553450865738724749129264492933481236273725884001711429951224858137336524272169738547180140537448129564096005977157628982121849553397431546011508472500308495669400327761844605659399927694714756869716171370094239108445875690253845931806992999271258652744066655719890010239114077004982504279873632545487006436608636476296119979653513105127043502825649228161573227750101637834495282892585700457285552059980327727039392521631773071789502867259333715646593734802831242812403259532064832648759869197487232903288306801569832341252418342453490375040381945262860268397615841614826160709100378208732467358481062973440691179206005930108970028603989045283419026755210661691442794091849316599958755917004923585449126863826237917046143023517821658393948904245408803283199052466697109066297269902655344056276064258405945490027844262515877490228401958335720124365162319257637745704965481437405162125050145976525169726907063886181419949591701381124562706031923997328621830227360005498266799657202339623555875258092666045457119093628830716448180958962603953304939479838913575748409466050110502156718295952275758155112051010380565672405493703515878913324955543054698352214053722406929682247172012071988752610180080204524283277903517609439788719333665950958180840951655165309823789799869435133951958281025065317497682623246960126582044334384063667245471424431564576377410652407434595640671739995702252908947185903377980657438115701561167259054145135011166316451015619785113097873476332684960533268267317865185177197569430325922727750148952332700506776249617897221294794139945592098094703988185153369474263996672601109846717895932904796075460270560884180341167601576109152233730717699507102420039963579857106688891583473105959839241428120492576335337990720567354492449013607678532329892054414296772269010098351414791915558524114835342835752186614758458227322517104865551433364020297838186413906650302079029570919941189581079943741532620715768709561261241531561739887824024712500018991196840496991799238067179999852986466366632707168616383745858423531304253523263499005250770418367991512727166834618522249176640816006971763668382115854919036165507834118112045957166129829099917822270183419368281922928938954492250496288108603717920121335831127540529969294970371238710070832427844579195435548968685844432941013486474424103730438512859797840096814013713359972472890375502092681083261955366058577256139529159459459309547620213727797511273305973431254152857372250195517406389952067838377213942045507742969734728713913285804014781062714556066534332863457079700528054119300029528239399150964934949100701136897178193146096309777045606351016603028513149015971281878001356544765643194434739771653909819860503890081891974079739495402313075579649224383102791177041666169287453914845540801535941155003441634063586363274178973150508731953115763447366642329363689125215465307270410030536620387609090867383897612280940553442525822746936815288271793767559915389997390064121953106164557475011798843769888923359799359706546495691965529940671059875977129484996279475414246341041081872098756956554146551051161097957206309340254433120955371194813946653720871032248364834290218437750645691618694884641929135717816019950640629915075874977200211812249606807803101592585664874239720793718690231231130945314366628728275925277239029932159496929629035048445276233880953382592535575012833467479454137011949224125053983824548702652121142777784695147899369224541314095671645312464162831214620600415010230632614196222035001495432693120820046027199015732485939987164219282117498113573080210841836431834378398161583128656461779106770915868961087742373973830222052465579707099477928895618205247440092352786535961535273401874638327264023583347920247313093424325758179996027729412400200162491161486584572953867185727797496966502645851414807773048107751634685111044161062330676572750983767951651840027598332909948968551217935197771917469040334001491134733332832611088672564984150088813126864220103175668511928272899178905187024931199407547446625863457581765352162364116697400555256036269192167444018728040560314651152310058969327895346414315119155963359007821491597340265280144683786786082564396996567524856163097711297486011648933544489021059494166915972023128162144504834982800934056199729508407236919494280223177996489874475849836555922672822968104773855704102490207870155924672076361456642143896551432468859407790241680087640975666789347255165250069801640232754624686693053895120589889723389241761503168460064923051518907353884290003777585764827994603466884964307940922483332933557731861072118331008434058833262555618075775029457651762366785262963940192049314394801464029012488320290516161321497730213866453830776176838152814490276019853275101017627426161458704056145486202943888602292411135992425792762621593643230776281807852949910538901137814650459029364597321586861533934443338075875218490503827007373191051915115700462507120053010090060575113414192979851484853529302839634782943418007189294024987916664370391919327320376857085714993659432772844125930023189357827903372496054394505443203514410794600825099244869355758718857108900766689926034316566458635265140588589351762141099974266758004079081335755244086035726264814670299305327392269876505825351746571856655848594880166505888792333104992823152586650013812567150694370574552484225127917097625450433051095731127204153158492875492042713200330420574595279118221508325783198228461991335118696630869906517589330233757430124753647126874374048671342054381629915519738924736476989032671766235221364868492422780276468669468555440734484817225673055555192651880022300610318386208008694102577574784411647951011304610388432693911688444741778987571396564230193270749140016300326962695802316554179589337865667882146659090461053604913426844198747878736533801343929721668077076075454581203515901173305525838335450080844481721258358953293707341257814832149167318420108943916413692240588342753879349368179075339829459373010886805872750123625500802572872546084262347070499601937797014457190058689437306661055227830365642157492204389709946975168089309913399403246196787590038021828683981966932594367902521456312486461615225479375072976763821407600833318884092771264299740844345466799081061040081882927760111052110430662425481319726688049406694789784170882005437963316989624242369067012606322611594721847718275550600949467059345377769804405003213171900944195456689759266665199639187575292035366617377543703729936301303454811771171872089150922908985175699228897228476341527081836622040550872289586690156356894964922446941551638776214860838429955081132546680722470187467401673741445599716524339450998650346642457011477794179312060893935909943860625894878684787018658589056354220489164655590573175576543605523085286415928270449382092163006793919158344117080201645135454442276040817196195481175762941702401302703251074139707081457388308564616134903128547491672507079374148835924282718715278667623333831632574713902359679928462348930908142858014355545647882562484952149339018433206351108217442486421275718033138823662085521246426784083892538569040124203939066779906518730104142030147809847106301586001524796129129027322430178437238316464756387984859513286599131815012249323996411919923470466738991724479730115588778782216957747502047680626567787686627906518522061916614193431252506016256563597596302194167580389565825470695376394143608754651397417617314291772455983006405262423743918317720101750396714433856660407225651807897151156009291522852098800155459863738736292975677953466898158780902863322333244198237339845953614267147157315079880293989381579189811324526644913419313570915169024628230299758514988648654150919904685793168270102028379896788987962817596440819006878512504878397994982978003559054711969138858454923635910204760726370611795512463123091488325918612446026349029795956673720676169806292212317545345401708918797748343764679821622506018735555110077475896336085838652697096458800588244809228976584136875558026286974170865557366044465845568692981241978648720318945749179677459518137475535637792812138706109498275787285211623110308415497236983490682351770966834133465435634160439074304250907096857330711517367252403056727829320247722475918188921066365487588142656713934804148419788623517756359038000100946094696575141779274325347107997345010772939633808982721346707352581979669071278537429655981985724998767387521283415258043911475652702712334989885445577673723280671105766375765322205040308390520485596091740062916025497250949334155803962910488898843633514347587343526944697299947981560258584588640765901080310533416534557102936697945832680603143794327353093395771522515675080294063684037818541619593253522792622332813713204115028231342430445903659850412612379973978741223491475869788046498766017738617139058913338640285826434827270706095790304279514768429130640225155657683274802980678763301446185842401025000963371644868910532237439814328532279567510301714210630637150066422089678479904189685713625439649376904083642193868601718223881806551706285523873548302378679642704717269775764317819820908552766890476198962685052595071165227575171352953667825675788621892260571981037924338082897354100988612522148565712660615044925672433637389495395349115260338654862672797579390125795597546616726575540612755707122934385455264384912929087442278359156935668237229587224863285414632766339662253926775191045652354744426494987397307348980226721812381726531927729346333457501624580144946364893209925376363117147099324132601290233371174279293376190539270027703962759557516572227052365894239296925828699877679371093495833770513632152294285046303471506184326564614694246137703635485970598538367423137218884321270104244779617517445779886725296919626118213721853050400248331507997479781891643075822497027006163358479943164563701118920085083788408577462584185801207487752833253730644530417286565241112327350800707820898449428008923528220166395501584951872593112977078035164824028686344919994228890945296764933830668752990912913919534078412926875188298906910458657977476193003710216864185902213591766539297884921053336434468345763835997746030275127377563524815223051306429080917442567668965342183564668738876621836066909445391748526614471745333164926378235955570914478459304466991328359392729492234174786945792334582182119141113465212384621413929134712099533035298038751417184261305987907928627693982448250878351963349600319383457886438834663492856107038360101849271370158958899201889395281856359936181760282489862952990570794101383763170402640432704449884143472690705828245619106680154502341430387057768705372608085250565581232339598482340636144877260016908065172343677864782307274695183713726632937146396367681514058592280862120094419876710771258424505824852457563022837195332851428699710267316586594900940711704688092105405661156688773078919416548410209657182030096516501636657615945707818322188660852526043220328675331458308454700708007401202904670110109673155244792462009834908490977428692641912425799979328038318239648311797606843775780701823307068636042589140057802132460479006830121784668394949084160385981522910532362507524607340137929603585950801815890998761109790114508989808493129499557247344923658761328147599462260766034855613433423711024997161795697663543004837969905028381170769002251724159089959840600308338505794744075699650497783540332969301653948141042858729497558888141298538714040003848372579696504465341896769593438132924650654785469843475324174774017783311034992983546563532091651351176291185778641275270438146257124630846029142901464055506082028245655108499592002127637143741476808348688942090572348909013956309047161242867815925801647164688696821102970129822559078805293843382427922875211378015727514586058647003988785297988952074216535855995269948439097221384352985827354831806029264846109019819001099021065285114365962686805119115417039967552505533165081027540246060881567850364641346583269594487808262747513181215840111764586900822683224271861331935261656379520769333238990002467333540982078777897340691739970950025507945534127157286402593691412511722862302722277963733773885212191888267297892958842325650492562078698841235028247302995615964581582818078869812349912328272887577536286110831100089438736506130677524071443450266988069180814665922611802945588634119436114300872549305060456479934891318652672484498566692491973269450245688283647677666163296778898305548492009715634351813297258813504276376239592698851880705015342671994930156760742904980302433520469865530220754203270249726280077495484831669784802065840712260330071623134103460385198298579562049730269120648783122419707688768739149249210736218898256371449332538839018635351379307087273249244492145855234479102676140132566171287308004103026749598268788855241411886663385740086135668499178564693006563449103963143347967106791390696026040345789797532724509610720217383446532290165170693024141719705562645624618630649525253513489585099420019195386430347637869049432167036974093459335219433338188435022674269456724234650718595693868213218656348512079055493964906429928826003074598712535555429029612138746305720391423209596182048747902383064080585479796712715451757141512361607002655980322788762728566034426243608430786969052888618553322670223747643826391758303894278756072655812153060197278479112910653949155982412566851254021841960049519065015002573820857061901659929121821185352243910416547565883135120754217582985383506189946947087164026985165298401894354773363892497879829784090940821047551971742219923293522401673019243698190516173091123633740107343513951235407540861003120796673240910431431305418995311302519731756009727251750230716837139631070518399574372382283728260865779643267730713185915691892775032624229839628502613897803746686375748827257475968330008137939042293673066850680617303799334981345837906667683247372343831397059062099548521634866080925884406955747689203600263566300651850102970265730701638086690279343449679783113627710496655510741632985299697491507696942678874372934491028745981648564635227176118980743895091353129234475887859225316958702615076331695666369658591739954528089968465523124744432265856219439928986563837635650634876558444680197381094639554840789261390256987998335553098862475961160921584965193046567124730974044518453078458249009040864631657943397233897483458226204789337813514583225428487316239015100046047268624521954425496243295148689228304673730214162854130794974772324383529271621593734890428410606909771525011013070872671105467431882021646903550920081137670465366018900038137878013619541635059998092962531593082419341366737374520235160805049277502286148309833283988581341996105484095680291343752579154955879148561254820799886931304200172596139577028097921854507722260481803601937282616119667378755005279063243426829851847081118544902060955231473351331831942536939632478776689235872934507327366447704010658837427682578051627415415818934208119251818650533162922822933897669015712847190291777542071122741300032838784064964016187941363004229457674880246814872966164401998639683654255915080186076073480771793185262140733064744127995832883151150181179155485772364410884664879693210946438196498482156072275330831218823766385888537150709700464400968838193430020634119473409418207577645346030285774471807201778822220702694596696276352430528681901544506949011570015870726105673509814461154784795977565125631325480300306189831329161081953394351574221770781568560252402680122217718350344686249571684841723808134155124411757921706858072040205791893489992886498192469599923487893351365091524344152433131389612431491412371959521685791189985024556285855542522125570178302331756356740594675668489513686927561453459366726247253841339340252738984488209265448044841217832184233359711504714984696790670158568939252595094033121354605608112605827671539932114287826887723014389552202632217177266442101247013424808698912359337116103827502234608925204819356952386783076569415312499409707854876335622830901032441676020265617032228449846859440789230226231343192774761534054105880097138816878703066024351597663999537769320447064233621200089046161802190514338771329922349031950988022431825211570579996138936317365795439244277210224067080495265225680274458425656181856073925518263141577554693658095686660054267815815977438994362997819587722740531768489842548158200655654778465488595185940020937576263234833996170290841220031826366977879600008769973564864306908609539416886018737349436891987975702283079279700789326032062621125046681093637341613843401095009080209039672992971770387490288749515417698116983202522368916194554522988987168783317493403703554375749818016401753226358484995251453338635662943488530875425030595432368405119885465242176738384063672370054103271897673437959727429885460823745049817735685991770133728871878761344794056121336475570797547251291064709585288600128111527918960143162098912440100950232601382719769378884339255422000468442853575988830583002278470686957813536963879841472060719093658008242634300382711163920867350718615203636918061822748071812262477217433628734643444163288395310807283472150360506131335297378345788142702512960359248534365643734180623176022033750480559322347909033182608749599307206119285994955942509922090181470963064372201717679738585369381290520600709084415734854074709530911230267307352095256324863257242101137966508319190030703530168587261428444757194927304241105825145084251754851656748332375876983459379892189643488310296790656250460176749221531459836577657161294704283939434638724696982271131105112768965145807079304987939272485079708393408546995041768204155673459308319005623557395852748522652936721448661679515825671707691940801517310213149545702518018848056936335903410456357013786695576211100398711511479863071940555636372140115411039685526780895102243274570235346045218578504249062805225054638145535814676043219433988892578094686331385994471170019116424990940656052867263994666514003990378654214955771076532544583700745607251689483744942764079294467747564222061850684260609842290862947686297574599741433691569074626782717016986586931363349646202701744204081376332666394801678773345371448335743754590978093969182332458630828770745433190141480812795868140496582387513879582262171081859193179380625000576043519424766455749330290375240403882001090665245145185005033994137485210060130672316347244529188132659985641276664323664660558699986629668344987072107763489322117175636627189316851448739447959453142856288291175150943710809923085900724102494910992199037525123570370225106673313701699329596452420811317613208367762805731463471620161240482078900144233741799688062046504909590597847182954751326132775188553663273569661705249068533829483999852061225629031968128954529162348055658248261523281538723691604446635739389113701723865657589540350423709033545300657509394423774138447356499093056114862953423620239969855843316739587966892565017251573966246290623048459819480864380794965895047768020966695513153955699725690923449654149667265716604477249984964317343840462479443579042918599189195138294373456883294669490865167793263158757907321856931424440207273324143573123457510934815115177152841696990059127833766094844323082575893703554103001480162109224091470639502993963146161472371923104319527937437874598405859303449761873959509732872749412665211408277437040597567838827844538015296510882479133474981214477768323972110514829097233122952901420953165698220168001053868311688245537761240729949868256460296829063919013023953092508940085985792201897081390260787872628747870869620848627660927865748183536832355313846046160228251876281885476038796651010432953160264503930138717677006033860938020288495647116842720741750159374707953616102390024497596915201599012135579702033805845797164575595499997562452387946537525144615505134425775165087769976349087645344525933865831768585154169012092206696061263723327016641061395310108929842365680030791788747538850356363967412288302476845163434459632787496009457776182390120133986136491940617303188411302704072466379583656807030822810101898836471209916271270066921168398660799561541525942905341463918674972044490342407689969035939371548762537453164633253420585405287376618514408687486147198195533959638522133771800207653103862816215279129054769198899530788328917910633130186170357121754370324027289057130104557711083831008108757125785805012883785682161733765989703653942170840507224785900949035618571396982629510437742117776801251984445190118214927100635364204474499386354005426830627467183408473549920394226256597358333585161535952836128126242880396809367704341570252831049001169909021313059427274134308165153565888540989527329680899771164398971111671751805978053373511446270568660874800941724890185298070457086587229670207154539778939902777998703170973764337209835050784888438913927386803939146381470232854032145567229680605829152075558487038664800985136806014665610499503104063957658126914964109045873326235965069400938373834279916679073253095822833319533306098357253718829432238515146552417828932538792636612467719792505616671689998010659023010535552546628133325954479196953379318281366058391185084326993963384108142855788061908846377179681041677830333169732606032197726419637001034176733433986267642003468085969994868587711686756852906613807480308932040097061611586613342259859196319072570739744566950220133527526984537226177203919158196115134087368657137863192084223508172476189570317958800227564950020627552403829668919147130259835252237924527133054109241502111656027308038779424411218836943008484527100717629830121487122324388416422085349143150686461885881223361777221728316402990868465648132451700271270609652391207337142111317286741208856505256062009009756508296909295818746572446910915726495284674569787639063328791208128400563204983474842725283759422641635824423798425654623070709381206421712383220081403290370019003943408353988158741933373689032225424572951944548610758755125037186011371347478527614971880912161295034579249775207467456755827363654451582496060502178712494062788996919037351542631258752874957581207110644865475088080695684291651824344434244344142089432858318775964573422946877507420370705523098884771239154751943470541591154044499484468849885809960440946984782607576127416476907378572636320701495509382823165426777496095349917222694031715660623419582858482463331972022910787513334221776732621475893743680086670779942650173888741738712870986670501030434271786680147589464050735593114131795602267458385861255156310426857249239666200642876978453993586928568516771851755234281046591458572220438020436490428733682032707422810937536910530514456483459125532015858774593840607197582357775570086997960024595320116459170551959922701759149762869535116977048760697877716871614357420959455159143768387259392776498794619800172747860339904879742546461783608505644705813275493089307582990539745748882252947657723117673619301165354922841425771046253227890670686313985047806542983494151412992333422544961734120951405108592947315245666020906218706214387579759120616300659131352505677669664757788454937817922128319354777794271566240676840205408991471576920418901589020980590561941765835566604818430993353273047964262725925358940816030475303427130626898693354056762574389186166923673425822091338857445856420576797005832619166857077244175590402174066231307095312629939889528625039114035106563396502360912579580073511879106756515144432562203154866195717646418665373084130550980205421508601860032224542051302161390177954970620666405392483526784775945613065019523290287633536380819999835854533538621155519018932491888833593593356254281352396754690456252957021198672576703007004696796313127691477790423132725971684024210599713005795954103166459215942492016348056887831966614642270483930550230565557657717962497329134903993956784486582106207055067715060114318213670456295835100357453062180324648012362125136249851323781260635935132899609715628494586807862921351438337527237397343252849939823839983563536436941027582999205838704522570253322868342091003673472042065638355232807002968220110373173526690988137617068964117606216773213046610492104664721895507594195084816950700245487012113055928105569488248162511932324430779785356659688398747456048256983811776486323956510570051164126582377340282033295343446257403802039683843671200764038195093262491615966521745581782680746132518603471417135250667243548805490403300820359779330491054025626973962506368858811637169934971748932601655870821497067265546457125751897826411021453874860217438824878136282049127640440569955602703563245257486061969082572731942441668437294112326591146823843729138684498635818886986162060502404563474694101628327054506017428490287347660952383458179003428682390858050292092276781152558727825527512581506106121669262100742965354436606291574316790517841646274615859109559519218947771155680479040865224775739378607610234023986401908293871746754331234850726026055611179008563948442499530051458381664788920744220948873153982286743512103632378313873326036616224953572845355584646370874821171705962870944862330734397722720600101846370465493583980869636123677528795657695112060299219072219226492657491345090308060687084511928317313503795463986470643908606341367370388413127207786439220739544094928228388814583587565636756104601060930921273218138523664160390075451966729749516876732651020821461546119302889943347611303498222827169511820895275798739902702940474849416057468125909736988083809712710075417693436396903198983299535667087623669135766169029031222990702413631636430884423951687081515128732620348303774112687626823116713554333961534466653027006369781139400456568251169857994765788464283401630384820440960104048221926810492721478071457693964521967415268630366728131968784411765409233761990656705090758823230604078650500040900886804981065025174340262137232797995336763026944714818027030688517342894422247411217333969402059637548351030601325461287476365948307766868034393431766886792354967087357818155044896473108223830163548853050616537258199917307274551064718438856102065862476157079851290729944031037940837642883639260520836727680780866431848697016730487631776322605995377673672246176778910112180923956670264532933331360783616803940340414303112430261563824299170310371069837945383638732058975668226598904781601971469614660480715576721935073817508248824129147214856984282791624209811579815745464086447334433946924191760060157630396772353206337501855325452988650156681807762157347291162190303787032003594414934437225712224975528235074100345365806606132149398953885610125191451812864779434215104035585317118041717498691528103586852497681113601745161006840877626349099605066020706029831615889737040394240733512896510096239926019894677814414355144341205175578089295939370785379156423566169924359979661461391184930582889214125001802631270863289006618140919733081617830654352436147651941494100213189613389509646641504696199621489495035021069257395719426412668467157253532640970797700542550294213932174859278913688918521325967250573921936504616011148032167320893463636240189914860113802601822648624760352999933843209365184617183168315905761808608269829660377489789825661544193317640058853992369467734161107089815766476870109397993660415007925496189458711558442844626291308570250265706652483250634018374002789364340558597780596408630511730184584307978554196101131470595097859144216587040929225953638538876154616382588450041260509082844270665473895098200350765249304727183722273698470586152916494875880092906020298256407681296941246773026172500565776452459283990551799013070581179243646430917197922010396922925193837151729794605697567689189523721441710383700850918035706487793985057625121061283717022660224533567569198493553510124870473712344990846859121287134918711335153281486703744791578397602402429722973755473828725482340756945417856169561715793426086261913971301554866651181470043874360979487256127979255786441959758311078253984434085190922548519831042601609746766654235307589073185332100566015515537763900858926059514570741319497859415886800381900836804834411755683311243956170932455692522015340815607774872621618197927063850231679189804310079188641641278320079604182701539334007246528763053281220597592012656646436487330541701485137784698747026299353303245996905813642541615061524435469783898504544772086673720029640529483584219884193486593313755252534941753260103332619764638551540453953385363348132525558598003529247083392412607184630211903250813895096578606339356069839334825748423110171224223283232052724646952037503488274379141556917201614972814401864177659126842938981496646515916252844369278118716725375989321433502572673309428641465505817177969684679220488755235508915164335961661760493478331477884351628764277708586399715562105484824131760005154613061935313288803176559607033426394335688865542876451576599496711104012931577449778287552246229369628860366328612304198565004035787877804600782075304003107237906079377750389808587848753279187375737273976472142321449546691445215845615446173125733082104986034060496732067462657684884594665028989285694848462968896627447603289668992170411234122663591274749941054013092598519266313449634096231748887341245452159801076263765851095302817326942654742618463652743616919486252597327341014568575472907840207391896463605564933395171410673168210855013782424641930533580750060192363109919415569925014811644237785358034545020463657912574998114865740081759781246286596507796934407472038104653593851538346101760399709113074389887254574297158452660394537069998430825371686113051482395747181951364449526484055627057396282077177564135865127640178977470004831016481903692273045148272883236162896327103613154182244565300298688620858291817780350115581167060329037605190675283431445432011907630077723138946841525509674621822022836846342547244918746768357675541781485727072461288798598947921939143376990294489985705163781655874188192087615310149262467984409381483423774193860735793653668566440747714878690610663241587494742527041357713494180139707366087858984641330851384428348458379370385368138055881118313900486982656167149790346924361454009036292314427751098394187239911018768838993293585460144629885010122274333054743068757785587555558564833662141201798780445573550587969578605384139649923598699103706288748305217349304727443282608354911199827485809036503595504379941632925061907929257884350719536081330602582235179230681190946078705173562883680823499303422540613092043415180940528460682212952713942119681105638822126312745103304522185770193344891742334094954479062794917849961465606361948793024809674746912409243806021510204570918493980551546553159801051399702919779155372591175146639704788039888988679167454215838938259106878156008212904023831012297038059185710969763184999810989920534489815146054500260907748328232688879793358267390298975086125902358065557555449651662805409593263384362799295106760495166127400012856135370059340039420073150948047927769182436469589548988972178215541686958322324088181152164889464627722668803674648837127681718390749024384613877030719695552068351037770344261990309404504860515935477002652837786602011976434296639890731537477726135338131108424216256486678496173884565582838324443131859756722237325550406617181803438870498456641922270598025657856814890415540165114527742966473188419098974938636869495022491350722498967805206464502265881990620910024631262483635347853673592203529315764303807643457549603399540870743845268861308578218144213166703503029342742968968243158167479654002754221748492402435747614163763646991800333778443129755633675690141396847552358484217580692486026858289483970928903427759507081268327363099559465269564622508988748513105053577189358108757847501392167430831539466066306184289757583572809084198827821454972953936304189939878577702512815416776132755676491738213880881407499280966922023761871095167389679252204576992529720992258368760087769451177455443384628814151896624853759566089388153104016864654842234227496799403203499251755180148981464981813403662678032629575132448949866330505554606177119031146398689687201690779578986410070407610223740616890262957739377911745918870544186826478133519473371545996366116109618955065260442791451376849901220819144875828444370999824128221076063069355259291162901600055301156113505821492254996334010577095814875482940206904591468352783436380158623308375158437539057056275437851395362272638404385038156513316208784268880169584676482410183601025462340199560509599342446666672960047810435208395954343701210302735979881398040974679660261733190626021743346867103466032614894799163134828632339040010470744448124051536078401162228729651742005603966825705402593616741935040874208849447724415692897147497441492147712249502560824703742551492735623586707179361174964831847969963281940766231432726840475021109913632827001507123973849535604002243138816977004623464189792205094312682843370836870369410204461501375842734823272150868032240800014361499646090545896606475316550022217374279123796655226400312055630187076195958232171284387760299856940816522263943416856839543351318090306032428089254082344348183665283656507930144559385983204112228512244135439217080444413127751251628299276436295018855106607660976138469297061195806785329779694780714822387234512189535170961416141155588378543676400054238419644535070804760055315003883737961992054753615021048563106713737642489231202092623634739615881172981287621258645413625140545856352483728772501338220686912706348625568325558332134732917340690449730827774818260244391286800464096839474003577647987452300395146091310271139849473347787462788229163246752466403265608942931894038229849344629179829061632187916641876163049779991801793577918043499870666006142944570992032274659053848600223991982006911974570873963380632235084259114271668413254456026077411528085034629810061605006351234369247977683083994976003040653231177691286311854190699186135135328538484876886456904040646430175548029115066498845216673410532045153098398998449970642713731115962575240519422430488137448031458141704598483057347672764240073274554870596849319366958269893468832927136123975197831254716731796458152129776046466810922876310289505426260466255067270336466791723664482548056800499149014107751330662951379366366598486715710046163827825483320113160579765228450305534316424893733266350692920940407123801925691180152369283852442552166942493329060268014986807398212251481918638874747624605335863984752663444201219953915297870785036913061428373116909371535804448832955171853849926198918568372290109506007453904087136864266740882560863436210875465791378019611729650723532374324182760459835985220231571389515850249944073050400956983006955619506383710316277955458301617536816125169141164608387424727697805624159765490645240612729405341746281679831592083762507860796274766186040902817350093890520256629331959496933048662199470326184355167259261214753098511998829461819660976528212640005320796665289744613941104559297080519214756094747645582650409933335648853989054688723783603284729476563446986654100392425615272274362269353920486103046077816674156236285542205280679814067408245251562680221483367741694522487250729158017885595219938662168000132090504658738289511930613715759277019095649745798877986835850240248057574433864569566658554489353243826819733794298673730945654210848051013922483208882588368354749555702427622363509066659351565638372648451789742898437353077808357904650979009233107021883972957948566542613919036090368024548460004448810776725516575927670296993022615100174364190708950571969235419725824774114768904828734761874581008876287251285289189831161178176388919775712170159329781161516812823029775994560005978359668787565546493540024106188826363060275184114047424446331475643834188160604075321283531725235135260751104256274500897747239028857893572997363351534485299789827820018328623189795757948530194013650783929764342770294095923721154743763709652305183925933337702414678955341396040245590043165870906737741235617263136315652377649495663791502749431790955321740826666968168352843105384788743152097406972338706097900199449035734971305268564945143984146058134489930372350665784506830529653381832934281087961024536811322146312580963061662501986867350299941339077656283712562996500061218733947372840532528733549007151225125876830601649024162152260764131287902136487791654184196708797507899826920262172540562440534441353884115470002774871552855810715584185833228643673532111921155219778827732080539100367716178182047599590422086632819466909491025280768179043405187962178981645222537310682356023065242053443407277226949168684943706703587168771249585761814619407679168750262843298991871272032075501050923021849300636214201569574197164315406130657640917821347546570351511882952060750519754034954320596578313310630468222279898255466196833278944661208993778917993298556881516387888731220459805026349417544246329799565419931867440340556138109573037637672249423036602787038520946954055689903962364556654639495649184203843269715615685752555926805544092182277033453132043272215526814788447321709565236148772742767752407976795541207180146569861964766351425928042745532218554534282127592464785228601337877908801471062330154784253066518989552586277087897948633843525067109679601505832190301127660212343672841874748758109862972752659891115717175569877086830639606467427631299203392641321763990767100955184712792758056017995922048851905759368013760385082827739523413161317068815358311792950659377475962424240389166133179661120574176295940001910438087877995430496580724573121468480853058530810049135371780564123800954674410224028741887332638580891452930291747706466514455965499814574562238997176363132294668446209858724219924676855889481309994658142638454813682155843985887510180119317506418650775680018983901979334614436170435555472933043870859367709218756499302669329815823486238538948747297354039844674081852298479547835608271496233846543936840248823899668977533523625514024944931073902084503454426974043176825223693530364527041865488725224750133888823013301422025517465464093952529891654631868583177204828668102819665022933720899831057696744201368094896985686692705748159020277672578279072192093456122456415227523570823535117552993705063939653787124110728164072604359885878757096849522016606640245454985857232192200392917207762240438721543466044340365610907979785893101949863555092754724603448135821260512461127292485433906561838240133212603407996103213184231187350186050687982110359369271622574520391125243608698095693525248777575841716107290535913951117690399806603459393358727699668722411465361375198810101821929093286373014206608068567401085349124688566055999830469383834287664789202434698544965707811394961360660751933640600164151734154806380702101030633702050614137912491964582854925566449522390580751926360732409661121705547430093665962198802579899745892099193987707620035239630197116943364452779439268190343134668163212499130029737346308395689982835373831713152213332662296572521227182663065397372783299588795123556923053910858407379696997008281173145273053625576231658957988310515403134286220503058709623899239647895874303805241175664965013496444983331733837490129549352414562239458982274521785760426262560931248923276278834565874735460605253168472802884454586869155454941195066870007080846763396594575692006185126022558169065524285411334643836681058971412808054115216616878621914990083048110890393731059854335502627142048195727936212110679375599735636185315572317476110951012185970755961567663975932649481132642438950489756368054264753036405937709140014186399753138011278539709323631579615844857823581970950038513327954837255572240424094479715754340247022430688408032360245920112106881497619852885657853781957806364614370008908513962822108969936020404367763052982061947291951197845067174882787770649980585625239183821932175038105361807583691340302998333722719369106306526243897983288798033086282203083165490357864147638502736312912891897639013987177498398463322068553167902286638315511436112365845557053411739087326877051173792474046928416945573453694075715069856046472504680121711350550401285729741717659554054608380366009434238812790649153456328844468589112882499986815323929759149808994759849666902144366619107163397651921500219456421790374284946618315075354164149624960129217085270790707219464505237129969289426725530562260517885662475672659457953810006183440730081936746631876062712269563848343556798666719139589097882292855769508880377328303901386452213243068435116063454832873163701501391894861266846085974740689398157553499654904101125256837828635160484739538702079347115304318404232727132332971514242821717068047145370085992417723399645496684942745147322416765056319178821640233355463477861740800169705649237217855609815544876272322402868176677187545117917971037134094955625398109832472427046981898247440120857019218419219795614063015817154606938975863735538115378251628250369332921497641116296990420390247697071929648387832209517237912124367979412201892601062174295394753845705705005114723449729555210226459311069879175110556141292484846147409133318501513604196389482154486504157106808430526823667616285982807103336976039984160020213299413746281476547943505795660893659759246215476059154753866630938227493543076424062080433529324688458935383602264241590494009496075991775119408596208947523290110521710857414412124243043945526828460547981192292194177783577711018023672962348500977436451129664274078097321112858667514920359413707134848530860122375252995715667221114757033155002074986559970652136905473107725341694229015127170002587100646462850851038351811521737278395763051308928958310132506760260023918603172285215419178969272555383781870402792429409438909836249512731524026822243673149946036543714979602610599548382690442820192496261248673154474841853172859427520541211607485248009359958717735336114174106847136857691367591753490272632000613990121691531067537546876504841022241716225173210866473953477652908051654163314306249105321368800262027931927964115594829034397360812826445172313528159555649808845966041272932014740943130854794974142237991535551901998541446146406493691190637971602855545453362398244535165549259882058396674930031555428251180705054634382838438859965711620515245882660787247025177886207510737517507581630969618265015672208316579028833346344295773218791569335806764063007083840172006728480691877600597037641409273518980176365313339485528365190756874692265303419624183041443088977271089369543852273293840521031915851565625246636207087195448610513148454287377669168790937629971328803619022926603304592745545045894740764153630819651268666054311593587065527157279774178495771294966910668466848956001198261616397143432012828721547058745928845594110532143536537052352439356809616380026785806516379345027803426179903075013250123703127985130573018981404366796299600023816834389436074745164819692652957395908631699520460361184027904513005701046388699377209126320423700230204929151351038319189750455798994895065407402657809900077888170330284844510440234030188142410793731170170102133547508705688575787101112017582808618595711955942277512597759967874927200626323018032521442958801153217242423674603673708046963018986510398441978548082004149861020135584179834573004191215796544967639610697516719296182936467793383087297305133349717542165940693600063299872357199596583167954041557979680958121829954019573842959499181531731030358861959791507840243500934648675996397273686503568383628188433292071337647442279727218907139310993101547689709074360035108114868991984394864529891483909544119125487981507095121900924859925835194956509534885034099217403672133771122671358658352068910447455569326082500936626334103117267569927534075300033470180938269998223421425022121802156878455652625703272515731521989557445257325523023889066938676988300480205259768791527928548775711298580030743285833997911972385968873586469936945908998165403818132124656303044373377317983038300868640111492985179283547593204287039293727116235343166462160582047038236563427327274716029020544241295217587529830115008658659601310639583398309860147649569832322378320868882896696153562764054676168396752020307966113254185958309927511165567602771585374437869667031213915691709372950990364545910307882421376563052068048288691257234676255009892652093702203135012197111704636353719267199268822279641860848212662608238406490680880481378873248231336785589812891912024461424440580544037671927660486250280663400490880225138406508916885208274110403788045396891583290156319821356889333222282172019651863539323169046740827718514943463504636528747557175424971466712313771867594793475389214294519064097184645819598100178660870200055946519482204806655283624535129083087280757068873958824276636054377041012578317241971589085541068157040809890487905690481428299475573763177756500637991142867375941634742485229461763213005170800393160212983031819407449208082880596244054059041214468336688651607625484871138805935215518087938252093254663597685247376167571691765423382664091585225579118627038248160477087519559044216688087802818141344124428116738838773546443640065985590900405976484863916327774618569133514110707773029319573528580210403371441931132179086355813490667584485302185652468007644931856456483093335141969300202401199573902258663718393999955964149131715834939053566542683429619793129356533230166263375714059360044023770494340362819302168967955430878231516738564406036230929347686667409452683275899880600673327564676885308157697336593531189246651952952620988589632946596393810469265297744643091441424146185375437936571383228872222456872344196134655836485412085225198227244156388677028183959886628701523651356461975024853933039952282472579366385314021275490964776510597886016794601811827352790941671930218723045568885711221928642374293606895766045343166461689619202833633889667561150029603607175909135273066690451192041719870701050517811987954564551872134144313069988364145220110710554700123450477589209559209070254410768369520590658350972985091091766549796983107373746240045214207479586470121683125037107412875784087543547372960753744997967501933879476699572887859031252590665285159179237080736134995815977384586642435362403470362994239891653211472784958326592276933084488335380838981098726485446202031211597878718563600931759554130444461226147536612166368818566162984876800883648773645173253404863149636734771367209068040051207000824825038718292498116094064738753333679844329929998554107591414149516160517419651787406766521129124309298211964636910116343266996095288926059402809334973795763493797813268697768643347947904639464423439776985534254495545734272134882898618490341468730552588163188840957783520010327089561372163780094823003447094450780044132015463979157985972373925638574995009695467150377667536087982438215351898802435625800581003851087299938011961142137887929217116597763480074290582218170122828923599895640836674970701638243264380212423384128366653478400209427509441006925717560755734865370713495664920136834015916930097619602082012672091885912584824380692378340035107936062807084223333715580303729650110170138115440930950916202996581826894753791211271260772757394507185009026302962279339947564140652459185335708298448105566112425419890517485647350630586985143835754495755579851577308165355628120553324108349351659809784546167774230812063311885621391196403992759222379532482973411955226909648626544664212665287537372035947615735256172081092686131292985587343548165734947671566559170315703062592203779384348528605082593038722445916691377169861415513019066089785748837361181255868888383772544610010778549946263959087122037546097542815842201410436596372959364110042397579179079577919391733922762752841369069584605898982411989939171394475066424482978665619256033020327675729622724523390024809858199750727666753506110836024623924776860973629591219223111899695395366103210939964542799701775290318738563968300108481914483972122977729485793283681129292721427812704735415194531301460163200525917094170253761810838627663380196801426023274756394910752607242531970659325199146944931110371885992372671229327136018264569683776191418747869363379512737540965063796061906687136472291971407980025624634330208362416372217863308553067771090969410012101974159882418206594366847479938340743630427453628688908767495015966243863545386938655399308981776639609705144134215243674133884197372682245467071284582374519662651143998352887980523903513978590661594623163072323274486153979439815442137461647774891865639960913855395286089830285811352964883378687604400717746008890537948879822049368210904537865817104705758004504621303617655515781865634870136799922696757748240973749076427659079599144630978301620012566609400507738020535563968075575852350349939827249333036886819335129594173928232291535177519801022278234010947368978127746132948522635011364539766068575781344806655378316968832882930804069156243928173087977867465563038511431148780014369405432571388779658214724236561460864423650246121730519229572011751441508040103399884554316277609971173112124813233692274471220165333755628981206283929201341222678291674773064634275213547226032305087165255841328489394884580385961879113426678160419271467936130478463929501573194502890324922529691523415420970036662107234611659544572299012708318221922600565569284333200791424030549085298676702046641529623973119322222074907202660885013162843138869942385513753546621772122478751893069971208328132457929119400146640332300313970700403509032635394601355600846687073067497271193432527368256594464168442981446238362506622391876770352571560943057796430402828369119334942504223469313058131959135679725307516686871609462882155548889431298171533239793627887608555521731327484399381967521785868843731916984656133813967996194541118610979696758062192333036339370794147882950324732046943293677153288352138731427507169767875130044023873231050015682584477600225160151560110912666226472889211891768021588215288767354591823927204459327646737584929304500378673456229018963957902742535804745018011738918176971627532751582897042436433354748682247476543345168975404223875576568996829984268042126159383079011718394659100371158101930020550661357536457811813587416190751690134604716756192150964119841515086526919806073378344742305952306601198676044376901084543561191915641666444365946915813825188966652260940523704215276576867679591002382226712352516657989119979607309210622615757765529481333320833667749573034329944734502256555729087693451387679835003490380626573246566832939073156933388507169229413817038605822408858843175903160955911317135118854821110066582237121163735536050793347327910382367732187173001337873348926590589478732223948197201121224968962048376286881797045159996447440508357903858746755413422218910352732014579424597984491661079301817450059125349851184807512463576491797419977628452297865244391709631157129677589992991531225279315234287397596979701358926767382096608069090883329197788766735379979185751660290353660345144549397559097262415807086136962393505110236945786789560523993680570217764759211025338215758053441511431619255519996127875076365512684611914174145927831916137674255909840086678871661194469293670083059489415214486142305205017803155005873136972162665881622826019970078203308150242407880574653089942900717625156824552828635195016737024293665639033033942102641267072394178805057429025650243971651795964618145134732560343666925335465272076355896218097088569899669438370030958112133218907217710661466830566617767259181516929178215032786729686619702574069148825623478952151502943961621655737335354412626964983278034550470394762384559173637571014581765191592926845669092240619038032028827045392267560997901865727540724564942508306109871819526120917913519156096433746170468211518371804713518324607770167531914148096905088695633987871500717891750687766170899133889723919459967981837781483922705337865189195713800666028072982909151474998757536420172951227663774707577557657216695269011766860101968049435034739107917445849221908701561147280848357625987126269293394354603968033330276446431679516684198313018425634564991709134262321773217862636716375076448931447746639630408987981314046453806876544021990596551268895245952733565603074622497939343203538322045556277873849123997226929457092330527443562777953515456671518484306173460223877115467233653027445991603189408649129611347669237188056071719477429322900850757933218397360355333188281325748862405370496823263624141941388260624923253088777160431078405181951426108730823827615656661776868714640027886923862391894218021987896826842960080816051141172939252321601445524206948266866165753797258855844752870803808543724770936605979253391743266751903556538157674315474874400137513140800110068382184482232316645348573422084330791301846175743816652106254501451574195810030761286817070313103291818122665705255289647787774190805874558309940478382912549368804397527274303129621026631592431352059467024444957686965772159029169985886480984905039811228591207996739817005247618274068278756875175675661533926055784949253849773456769468446595199309748238926311809008128575495555514223365243636799227655790961389368214221166745843317642910240988146884572365510186102519251194580277980872395829542474387197644596700205890086378104040146241908138185152437795992633670017082707128410445494053354666837844532619075704056356487954382609968127436976929667940593328172874303547912770430691479640838542358571254792107770907329801391231378977960574860270967288974000412209843139993081382243294928889185013425793591750336193611757404786581743068899453178187451093745626550803309200196754419370030994299170021557142129052318962798369928665141670752135240017168441839219581384079365328878903725082319362212171266062062932386328283685649683606269162738847427947649116800127998320712851628005953611594207373921651967828908281398360145034199061222000723700215950980828095033810222369431478228302724322820826542364175883309507095577425282490657936875312694046438202116918628669924391294983791128033226203687292727220648142530598520105695499865754081833890633517034344074124027151164560580777750143017871575650775732492275529770579698639884728830229192451114479848640629886226387657337641362187620852538924268152478338918357096039335980632310429136035887070022131937895096687561297893176351356380155864032667331578281244404785516374288834711764041918128112760764574283692390892227601883048643571090441457055552339166006492387029680765137429022170660895401807190343445065457441687091233092292625260628108225055359403373791537187213700204738650718183585512050533316873551347841217651120411779243018487462895741914434532473012824276307451785883353627251729536233293574424834361159442304255666979543791039582737522524936046911384422435630898779312583608966750567917274433466601304573597225884557703752237610444122422129353486748607294581373918232931013960854898601203540970017834733214932204471073711881443132733280352632709098301456253971485971397088845044150313342815328375770942854317145191708303005157843594522027827215200235848056232621964561394806147960044664317292930495552798917789377375429333267550820962870314089574425017583529804681273970665331261286208108534260465195345856230533598478827793164837186074525327300677543499341264708690083310610267344875175477096655723462441864252167089471448722343475820885100824070676845312150353519253782436416682104567057837629326257705601460470565517284175827910460108864018333952049984105333089465003734880795987364967604975150710029369263262942419979329766394819338420253392377510886551685199822991475283994375970260230233874475964599636215790102996168946640278943614482988707024219926939902764347499095799650725422688476442371529667454888853993294429736314349388867413667377557707009795580300317143364001073909123905595476705704768917595408533312686243364277035745683490888763940285598552323999428885434815146698572642141483710534064867873246396414147317029094522902301188487218596209667143181276304026767811727334633894567977803920171995409169139029088004352838758797033980438311302895062791169099677733682301955075358146268546761257646532216726228235605430071511224312190459506871426043899617843093475981903653943924624676552533363488799876282325221979049987844151344678877257535140864843974243991270559217101489194754136295666757542036522207314013116470642507575504963211542208684702957203698964238595445765894977399018597590093617065959075532027004690961934787840350853176410852089701611709387782276113009083672573929952181052532160987469460310909350298432058170600389697108391820902037251348606884827542582484322778673527346183002352791108250741614539654573871162791664777302437854336973774764266898459902396253640550705040049347133099516834207179539020279429441521741524052900457304545218295673833954175076335670957029282550512364454223352854329764999396571116523038276435955618735561346886850821399359363325594646855322950507453435463815851721008688085579071984284439766682987155621631216914504683084088629631444283817823694937271780008673025836665371584954260679504647359714580888033671448708494114569460663916960956833630260811895791128770361148203395976573467000344825077890239620254808803118228105220407391566918469569435042309847838697665656672720286663452543602526718070810324332802259148724814595654413122375453710172684223010391575153149412941596998785588964413020216316164166688958956613554437119631426738026791976326772956068047604920900849554624104725260752524521616721741349091238565484370664250664259567939126054447791734514934966052344194863286329364971780950100370374777453026550648795892351036095889534371197234609987168170322143511679011174464005013198313553517577096889455884745451467206079320669379133976934412799230730626038316457443566703818949558851028383810917659075506096260671556534677878135457444824633063253592618166623756072690341100582640030816610183116854761196178362918312557669432383196603479735710439702754897357314373010477266682391308302890913759053715277437731047421538209782852890690261111027144252057751362609994311220270296468690307374671869975630975948735749562918154544963952221482560972575545611802247778144276284517278452618182428473941331339334135042945124582560988270676333379621151868877050159556789032291123168126270339555252245627535743420634279195358116298336827449393913203981065800994748773552053971664748935245073733109388856670464378975093066434670508848213967559749213485138459177695728965987809128636901675037288266079427277217430005868404030241588291288511255931543359750259703765190102848596563364063242673833838069164638661271168004660720725354042047744782385791783028284760697443920739230022735692893254874932771369287226201294005788426448989911534338426537726224358598186920245700666301459033719494141471907516073503931419168697095695678828553967431641637050250259843478941173587048945007283610011506447067812503137357817404034674026509753694248497691240206284933691732646115509760894943555094401259911203830519010104703178679159397960434045340675799209106890417978139612883143294353481371536629361188802646160978222279898822969094223545552236107355052429237431254545547084905572512902635234759127300947920250446023388617493202037265384831828364954878801066462668683356433408861739616149522220942175859070859312011234572295839667971541295569252175460601798921750679836839754021682232646994385322588764580375465062630039834521677602878484441322788374871547406744796452164902472686201876838026874594741353188453669073108130016274154728035957317257651901333636369041159492077076482905301196917257854053187486431798615978216259249148587677951048632649831424201038258583024327479542857442924412925257377597694682196927399573448626660250159758394038864053670228902747546876289748924455530966460905100729462676833016250382607692883380046425700998095402957710296718830426691349823335462944981608500435407029317106664579590847818711031058101734891343854745361789100469388323375902187876870617012558897992887693574175929803234356596098243111810645331179093255510987723053491839748368752433340070117465668371976571218232717686666595381338156744489922220122516557539974737166876240689266589728676724095332817033198102779921374528462175186315862870931836700021686888226849967787682968265423994649768065312409773504870969447906298968342722335479938573770639444712743554983124884809108418091409375113430662763108848940460002176923597423867604620223448470314455639208246758722792863562374621877510772541457639134376708898415737951172780721424645530672625667939459369329109888991046466374418527323651799658631436237140760003151945902964753208117529472299045356541534043574980028462789738545404373196100098184768750345886687974072772760511180644990472240919539250007513834682998817738336367421157678274372608912454742951973609398571134203001697097285223313172580439472939711432592142625764185897786014638749063474160125449594551405721170873018271943694841763594385955947884440777149940924870795110348965583973521607422365623781792239693592523472031934892036605830907533865862380653459838911467422987052779474598409399551669845378037607751946977996380530987828987996783961307795205280429236182143995774169552100792950574153125142605147403038263558704469278212144794270119092584967717504222049052024720163180729497721682062283763903178803761934820366746511501150192771067007209952496453245317713309390890648471838112876903126867544141816656367916383376068497572191406998999145969320203867184106658702800856060267666665313777103780352479227157084006214097137233715386635168119513367210853436258325582813048710307996823325338336307685430462493784945598440088666697764214330139605152527453889271118776646079189525096528020136197366375318291903646634401491524836946122188558819069587326724407488387960199286919339252622534692026022655925787315030897526825292310041040548408081504660232639938053501277471487973495551530371108892089225526351524583007575626103592638067719299492549695358541047592293879055950091610899213826519895542708717508729052464919339945217764135921299447367260858283505044419366228629603189206864134040175269148646699977738189118280365561862143839041616037815812489837357131555677198474664777134471482130415269924480562120813091215714864304046946929361510649468429110533039090753842480521124107421784035298780090881439352747046172309809489957615295466877499436257703588781380617922691410313139503122129260796074399436043046050751026140704678708968361124149531912676623509860977163667232924884175800820918177915970906788392480811475825308047188507711898096159041795418748893605893291687339200669135110515331027963861300400237377274546467007611093297794780050682571394891694797902137592111475462566809524594722821159461715449740633950949173462066989721984433127047153653692489019786995409626611368939895130169912074068784160141143976389206281470563536837984304591430850368768538900153988519600191753831315682309673038138730284615623756632416600427982800576963776289938347737008818430644489711672765425665739348618576160806935591460534676737693904788933982201727410281267409195387322452898954492341054426497677379649438081962715895205388047579543826051612051287969058671204362347386827422957855590059273914065828780110475324950910786800074145192931409205055750234130263505492124105156445224807038352723158936583349040409640625541382860424518934555771106206732637363315305452189633257750297030035519452243454892042785710999214656401543742654279099153797576581342458562093585764815069059118501732036195292593063888234902974419846579738001359667403223233305430978468540195793407491778119742869773856960068445857025159027973322396975562671301716318240484875455085133724208616201555703522147002955439697883616191534846209570619641387653211460692646071176062057266195971957549146072337841108133737569445221190120714721529887096602256447781589706864892216055999174404286725087628708234848424087072851451567964652397628754665732569327796111873643746935375810059848917216797474554374406542703578551283273203581340794236865440942284450502343970033903200505641936973794322380025436603975720890610746708703176984511331969889331784917246891521539414175844381680430039090324845952917624243562184388055444296508906235029026460935014098132900149438601372544151598497152053723279906722478652447587419966419456942313695576093639145610955997968742271304867482180561918695740711154746551550990627309733752069501243376993739703130770245101951468273450314379713429147985368681831769796855348826584164711157010674245881932564536873347549543603274574825000988309334541341084534960121762282667101913223652501579483494243728897905789660864544686714371532604509318202755782346158997816694493237115728118101557110643442524016624541179703572779730934930829163393068634283341465505110373997380810713279005958543657703790065348931181204282507116950832484365186380800323741922846338034237444207988391224732652984153393995535581464188956021546477579362931840624987854904907216401908864319004133133644746997559910095177802322101112436574620406517265044345493523794174900105394676589699995718001622150629193321829916324570792147431733635065312563058585025044257003104570127045348514107254330471599550793454878915596977051962727805594364851408038944956624050474597917136711033656341937872711011710419612766395015673487175046898988707120339641396583598422115690119559819425578002732708040501896950481284254358822764727735404678537053164187020824139155972534127359318741183071214829166023853679273306780735617727962710668313440389926003198783534536579849655294936509703737595881243282837806903213407173674241803468698970342422132907041021673637804627167380842343975454383749531589580595956027521589003488128075822071580820635628208825124583043258058718041813825576638642487477987198016595710355373237858231256998860202690739667904417985977969201269995592017597918771282526259335265872661456159627150055051908598705723321260583988800259655515577181602711783793030847046941562772519550112616316815373253956721676204339921868590960112511694547445039861408724116522461666522036831435676832676304560833050643363458942166783409164290735489722008913426906893868899395612255804860504003619267088484022282612953997311446995340512165847120178299145751122149461945441188043806743430172195530077237937229179278935411954847134122307394745378852519610572485719512600935258067930076423785342237793345975286722572632879043908732478605223280521002020625343895249365064998427563689795102299427222312634411147956977001164318189543268386281801334149756696752837627876667702616496068515137130887226799194233406681804003876350844404352154667474291058775245819836185254951839067517660962410787005177590443714515376710403019973741335048136737332470335354715755120041304528770055633856833453492930197724248493261781484871792266211125191470174433723000650331926103245845760256895231501342691875368447539038268523697324094725536249465161373080719946458350796785420910336200175941674000228003518112467233328487820059732845336822423546220012641188387097683750240654331977710969294611647843164582838169861387214573680531706268200032526391445910555892039097765097397217959718975672190599834256264696777875870590062046892889709910146670666818079989409565485884320810904503153363797742646582559957871252397740294970652576263389762574545519055416590888188285057860527808881085178391565629515688029938771873769643576987587106762977461858425236814272571608185534726467012484887086564948829213260946744329360011378526637345151022200917423785564453175309104399653251309643576870535356356392421902124159488448344467841647543670390713413110540949344813047944060428478265243667919636637680793678926333737015266748874317297571688926152378170285562059199130768409202342179730076488923204657391137468688065536687088519802377035613772866064313968222651377609698513427296586191353601974167891338540037028450723828217318242414215117979593796508015690945150723474707779302320103989397948814436137607755055307653427498251971036868952734350362329557469659490779769379153528565002334949937532548341668339741066707875260662131160998981280605374067035476565902226050213398977895229149874350649672433661923357307387028608336111699599341088351755363899729435212356302805807141046711058551279470831827026750730649740332902505693901335688916604787726402566429889023782206211074711058457876772914056062942662156404166772246299993061869984190240722091636115707774978666502959648995440298395499499629300419539485206377753863522510637253693395837801032380358698868864158999047904084456434400340396083963858035496850644645729882852188779460704245120077781023774721069034153049494874183746813171033919904421989836068836429627841194431712274539312016883124703846132532963052654078645847365946559713066642884690025285329130602155866642046384028833681423023437936024305893858544776873455147761796356895227230809186960283404314433850306782665294171966726393272312295123643803895993107996160837327005720938750588692916227293928749813195438277026844375334129424503523024770963121519003996838825393941893744049965379340318586942987953138515131395069618438800986807184506482805987513819702632043093241774043554122682115645074832375185448777385026093733747421106725411622002799409038659796222518289777326397211988061129252511909341573610021382036337577883285637131740289669399093338313610819499983414428638943453432349281337087669185129195308310895077789080246642257771275555040869450332487656590024652804777269813913092619446239263103044832274009923728276760576172037893057288677789430714105898492281278616061478639878642535424675790979519058432546194501309113850516470781357141232792994001071264069410884202309513796402401591987842434635173572358600478098273788952135929816696522772823885516889660929312142101824878691730750559435215859891820128823576456539547883594037615246347844437598503733953256672411851037668228510837621818531718827399710056439327535978420946786242803896936239608172841333689938721754520590534925512845750332234882573098806919265602823452231067942324279521045205782248285673273384113337565338672588752037677076667962491752557647484487900602845096661790858566978532649849347590718778849222475381594173687332159373289461029213811683168592714398750089381218317023949079673917699024562289892364023960817381025877406043949169651729951864713051227146476261013390959197109443065263796787256383781366299775545864194986866918815629938457501951686617561937737274359791247695552053256413740727399478030412136037656402223956611134895629510237345738651625471549579360205416400279041894864527982258600882820044919850530616452586457606019561491740738286855104239780744542987281523877997660382914469265755334779496766563119142112627592212332697698559490710372340253604721980499028663486805004338450422130235355619889743736361476607845509508966127069005189867942582554565831587593579606055809796901460769935613025963250501116605475755629291302624373306655747978487385169806448293728078645300011138330518459059162981139067438461644622365925909621874770341093161868668678830229526708273866178667278402428430688211128631575021352269276413113221713613889236875916924749425005037225221945597352380533377235878234871752855472611819113743637899384516582475618728357334545534245864971326298566282043510120410008169715448654794008567937324284291522392889603843287640871741592166236812386702270004295742206023682360289211485018520317488255682499957868781056618885092799670365611740776612781429838572787446294374904762449825084007793971202841939511028195140795612085109944168488709140665380723004936562307067124491758957036510802215575269112267048544501205310027642690711557895322214569165644948345919661239864845689756744509380417000151767948578329003656460139199886334374620843780935254997721989675558068506594772973427187741008391751451097050748953461134287229751599944074222412672456687632331002497155516289914651192762666999656172517349345836202746591029718565891752698877056629547611607079456914651345526835405975238923519491598182200544681781186620632119949642326355476929594105940484367751758219789479398024787796340071514558292655589155205488822888099234528903276008563900944769612435148234085781402868555973679116729539640683774939081929451787818036964307549283649684972558019677198391954340510963711745625470074179006490704116110299220908832609927628116375822371517123748195361490739543588537451897536058266125040386820578619093163401097701437606492527045871912517581118875884847642565915231566624463553452425496573674530894066965122546558372827883552917537142246867956180722821448742852789507098708440983249693998981503237083950076419019986370955781482209173929504011203613503741234781906053096416157381193798655842243903670609722805115496007450985091335065119389995849701182561642783350006438799801647418590204947027621799794396985749148918252149403236765075186801991057747033069681548682404252481542112068843420112174498212339635351702792358958503432754348050830890675267218310984840207217704308967278877370136068020086962536629065055488283398643054011601992524444030745984571435143204783276758696785393014976485222894000510962172940787770809788452764690943628466926103843540185453360417243759126219328961347312733183277870438132549420536232588365918619559001535362076316077979636389008117283341077894277620223567903517538691093926560148243522152995026042704355622701356670602594886324437670531796302234164876811146187093065647856286695499358871634091292364246221267485753019843390099581463349710959255908226468780232268449973949806583737547400150347395856488583607802293215686987749878972610394722208814950640944312843853208284809622316933255657732705213330470001295519752035969329270515588450113702792768874264547738429963805567285693632496359314207991864291008459362434454965759883158773955051821485744122792484880310192706196993404067019064468505671801869248652340915488824930710651860095932137422608848898831240995281619814072650283611846908404988817122958686753202423434393102905558452678631828345743783277486387843879324944781447162934582757826789673824264732701379977082917085391598190994522935366122356682378146509047330356500374078043121370046803034933776123422595973588126154881842571489551671857528660045892256740926289329581332383692669197942684090391833586498096617262725483742267783186424389138571102009477375676493486551741248643583374199433127667881585744887184146690940562617081006170082101369077715747576609667583401699044668619045503798868525507125229007946996037173690747305179559126405756169857658031510032697637618120181864554470971554689177586375932351947591603954584528405995757240578726687653662971998845494290687101379972328856781690351111532328244959121767147408764604081586972893988311675445513076895953330611777892506181115765511301099801325183794092949667160790732623662302972715628557995404955452549941176343887080680599950764890775440776609415119355976940691235755051130710134469247576115912543295892758981639144739123833845799132241837533666065167389169742808470011580070945958052293213702673861249445246139100479270149358784469654838633344721814138623346351160565321008577737203476061334156922122842066736489418096360461514017841043442164132708079271790964104508783795350710020903285959855120868546061113113615664770507144190885224292686940783165191647717840876137825854838935072751675750969758900077066779531403398071798755643674307292301394271065176653363296829218976729578065144556995061716771735093569215351618807180204536849404931211404731803601215423110594531397369868434556484157282529434008252908442969203012000984870855979531443367703800567280990732044160603326853398750273539598670567279638666833218765683896857873478444407260368601231783110561247507113085374671097176454028605086755852712247245276178576717584261953416205944931681834327880837180916400968205227483911767441378518071236767869913817021701378133352702061244489224535076155780335344884786841004246938150965424582301781199212257405182083966980655296729697456929424114238222864298356909354988534258743017137461641672008485789732938283154983468994524414152038507135669866183985778364835783354235269000441894807078047380871144040003496885284028773806004010217734819866733337160934554393050610689496206173340464923887847282828990436965431976779094585737386251451726056620624232449598466330753563951005418125764297606294986445666196886743812545141673773537516212451880530024317544627837702891137059828045069747924988869402842113500919932621611469499529426849654570135059180672843601817382825259802044975952853805347336024466960931425901982488916409334956249973490135584800429813949545875113303714527891467995424889714725037285594564097822915631138931040637048261392260113443527514794857177119853027151232521331518251227440763425656672076700456495297091077846702667128897843770848008516777027919820151765870911428381739264779814739360578111326529791635097601225307463053308588638397926707440156715378541064964259854770868746864424662917235433619849535256006374049248720513266833973674775224912546780197788024228546949867945771311833748704337798588600237339447886074044643155571397113717895406287824626704706342689050936533004152243989474363560279647849622274216080760864450865481487667422811758799934796708410844512779070701618604501521329943333027393167307457091537308788049440465803526362240561959969075878018914149386949851612220674623433537360281931757598049367402990280282163528864452156221404311941750384529540183953732666665728397170983340729766231266168468190454385716525254480540880136638060257043717487615665701746563455525198905387795350513954917323901285715509537198611636645971432696107242798108335824546062500373621969958045750384297287300585588625517173652505009068653353187720730930846906019856300808652906389374217426169971024278222335477000254120404863702403749910327635876651410655019470334973353099963367979058630215888321152082720750436351998641752817571053927419407207317287529773349919172640639788159153136097059367730802902460435788175366428172652211107051720870753527637701534046580742930662288105348224617886194398619322987991737719488821085411683229452378766594806359570179993749245018643263601863273734794133260220905199235645847145312467193331023486052228783794336573474028839883096709437203493908867748034711931163639290781772169938333603899002293050840369861289343403637794502219820795188603068214514522290329629995030143502971449368532955017660914677890294812178359536800477210422882075475728740762772555012151955993402778058919007371017250473000707238134739973909449121825509174672178026340517539880089346240183835809995864439632144236321883489391254172051925556424613293560783161358581672447096557586584930694789285219980431106619610723961624978984850805422264526120569313827499278476236832066257144517118931938668991695547199630637416908987032466944147233892763040059878618742930136774529201734558556989686307944442976850270756123651185217163976045820108876494251557073959244723389807600054083790535140565123958419594039770203983063621263287036199726203079558033694214251046459085980657095868162519548982520197490706363218361347309033206952749461399996716337265402979042573711423750500034282935978528419430827603570431155384777069582737465341084029983263067271975178875087532047687051891856541181124647694247545149295036311780312165618583185903076258352569842202745235393192254644222723666174548590122721612984418555366345166053335725517006348156947823256433189999625249587304522125462852850082776032417529406077351175220726652399024896277154372135720651826434076989457775094577585943104352974391930440716429803374218798351979543719185827679004208136160134052499318764213145843015356564516398098797531393412966098901441319578068103741457233684323247718383323503483020038901588354324976353606016088223529869355650780179718929495107401517358781447789359345537675101258025239462660557295260284087162097929764365600268379004886108382415208825468723450479702661750619381806612533642877768323816486425384989818676882272148310424563206460261017236464670621527684350667753076571703812685807104400158515304463002601289351259134953252778616010267700404201260112211538827532932078745794233362107965533381545837036117938694844177089694113696555426513563638122846850234064440690158252714315475923501339075124934613923317163991131902128046973406031263879491653119492262912916923255861537503007260770232816776569267361861035823964576794064596625762382897701729753178378166879861345818245427075576463232804829132730056948309849245218246405492982021391189112461249786895693017266073407212276806031717740629062065352983779617865714089164624856911366123378429676132315193683824581986229477454565179815886726129081923688271931723249687837200965536201457627518721292259898143782704612404731631845023700506703419604222381014769830945928565306912064920292375934564216650946908303714547496859072783468162560919996774319993868549900717631936114607705200105528347724761702680043811384270213615770082326749744749797184581252262319555473176254529488725573509985777519130351467340057702571514384856253263515979050077449733430662939912810389090152165688750067544803023791215870348734817437998362926138879313633524098141030973738344714020092444577562816811981839912255364522046146742098906617684332366125694569304785611383590825485726060780820006546837309408274573987364178612719450503483347627461415288718434080476130740252482705602727944702368053838875318681645447835939858572815211761443155520427509516663907869707793610375125254260793570159653395797706552881101699685491129762328333525639793559933596582644906226384607358581427542215617209364427296025468020497362003787485959613588566049086397496593525796171914250787592124578927955408191686016452856341188415870198182642039294281310766328884988380537765710649123565418553767040941617146905929560764019625565319579650091865127113327737776354455208882108967243572821596303192420707757481778668635903860678038367747515708664384305506384493310207990775373879976376026903533664743107249302764644810192572236414243070502685912741932322918270980778121866580502633697118636313986428606372732273212913378961814501791467774885402114951406594937422789725824889201313630436440405011719289464185146016340247085815069345948623232041161373808757783207750589316377106168441237598857448821711238180723005927709415923337692121920416432382377988622727869230079336819111518869193516533944576738560296267011002364842330200870604449143447686589661903575175138729560363800571230876252973375489203424691881708281550077617612239012208613248554569220440243370118156098305896746674073329853122152647550718288656643588033302306251287711359601931913493190685375520058081504118968058061809748325934810477119539718540784238328212788190724755601208754708570552815924387701320480018113697769776287880332371581592813223080813079955544471776513707593560813930657598748496508706049768505886290901023357699554014783290288491585711336937268838768815129830104746151806940670280040949437401980996729921477658219272642286773151949120860292977152199668004444073689111084263992373390972183635396413275546991184253359255125835406651056995532637697978159888891502311411814777812627622549503563281342967151450416758102394825156986007032267507896020818816994882361393320078739319842003198417308112589555807457870152067027793348184112730948114491973282184779827685751652503562800396653913838344306961687590756571168198017687528807597223967965495523106424773716850701706524655232148840906610434738145408721073259436531410687186333457370514290764099382597569661663707938348456342873116378029387333654878493544524987104504704507622010687991615403609596296069396907539896024856576385180612407981676693850986451334403071745384854795637084937113108455842899966918024510731043975821986123717114511590785258986826040599302192951331263688629189209883902163055814538880787865699169401731602935661584231219323498439370121837800023047647034774517259965183516050000054674034810706647200822777688832093348650409156401289110069174996145288007076474503399112751711938762661990522894331752401234180241372560159007299346940771638852451504419769716997176117028918682795313295352259298269501143992273767227395907132165738956287544371448799824884799524334237203047490625107204606933331240340445554348985981208931172817765464758865044156404150345799739469531124211083395840555983631164635862661628804940010656246041691488814443298504280202351984558098146381092999540186358359248814693450908464269761559565089513321969283641797219290765746696021728523769672481093186064921592834914735014181805127234829756222907103893610905456521867703231575849110378521459530753126942135719983377798839868479925649116429552523947305082888344201812940260734481488104234928966435901107738535476440208974166302139831344894503717211675533291241854163568784131916292994954291462356848281832484579471361578699247402728445547161172392791686483720568733612147938706909026649813663407162698392072067201546606139423238387697550022473704916564774392666538950603378040092097443869017605387493151911361632388701851292676470873935227910566400567111720846536296405017618208358067464313901623188542586990815158270891720590223818703700980836831215676804032356101768414174300957860756360423632752182191958263982844746614185217737416290013542634952557242506047382986645588055637330466394112642151519115313154322312804857140200822746220232824593092523409988648933731723009732574200858106510320002996764085263225018005972318707064496220936462791315507707722623977675510849811076191766603863620772508330650464659369652080630511831310305581830658196699985149363172610805499772861954328974364161181568397067991448440300334638534886089142316297904940495272638233662699009691064359079945024692357762367957454288335969195862097312331662332773674141189970889789432198374350585671637508407910306132780341617929499419488924742498697562777441596248996185446128585056464556427328128789331087479023602995378749239570046495156311695188921957295609697242779082307141200255422968377104257364509050115328080029402833884535809639156807126280953061015258900572755519562813866689663121752551020473243239706517646752670856552931683628890042117184361429470438301480319173340882567992639981903614607595221407383604171267496116877292609182474291132350061214105617217215056696266282098816947120630979899937469785889598142783376496196977987572809805048427978237480869325772547283711218566828844404382709374347588005563016516192938549583527851340240289993733016659418545921864097618565463632491280090215285634194321671714009550635430411946122497326543952327739329813689001124731471957415074127136600846180437920929744222018663928884938112143713842403721206761291840350262034382307403382268173795971770890964053518137656353011937138406333937114284898740274885925175363820401389301333767428777099567004791881378417116093195480559183523582287428538832769161318989289246404751907998551634058814169580813355788830980931484337235783359201173161313501210214721785872667018734369645761126409429042616820616914858198836620066181387414675860508332624658297189188677583898917958594094018816767329318641980902832657837284143956121663285398372058507830027036858911091472758258086779406216360877495976067800912983680619767808797262204020854680429983508890740855843662411222222991018572332180759125556480357430782897722361055741914379665296446505942100330217426767057130607433676417974282710333578309515870724557631484016493923909116995679229799831272195115965278308644177927539048070965746115765225928128307822605751655171242354555182824254475586267368699418768778443230767913057758667387646032788247659169192067077419296598304518494527162359084294151602335074278746545456326666093015150914996125942826715005932706979558196162675206300066413706654157291231159901445088541765555363141731283130883084428928288653194812074787229102364046086713914104570388902614665040759919046730019340019551462621937976285715798646841021123336433492335950700583270225255515082660992325207434241871914908090345260669847073682867605676809187604385892255288737205210609823804494312779110470633931958843165610346939065288669090805477999350321232803776337962203141580277503927696139136762165662379533575984485190888294148103374704651004699987641620539590174943465056418244775751472451548215271079043121307671420319946171319414110273190541032464613630407384127739790952884780737765916695161685799170713626296577650432986622760722143708127674168989441441674227382387070553536929407179865866923326321295104725610509991221833699910669221222567242364688240689122555102820712975815903466008747470920525616988017894322086133788997573745388787027389076938532516490820451735950653851946993761975068481442868311267360014126841102730550417702197217684386242456654009211388800460260179652272228318309926568746814520805068187943630742600104081061222031779302019930408959800857744052492184191330157321417925709685322593634299415539683364482404755872137857812550836533349016298487416672118839219090205554239578671016163715088823190309458830033521686206672408637786392409233264175614427150146156622134437058435329002626110748697027862041813574758047996012738597772095923971877833123302676257779627170560340419183128743095307389460070997064960199556767985345044759397623624092105270323717515085452071240614296887790219130914613839405848308409839350745964704976781546477355213132098066361478929306643612141744289254394162938498920193007407307609931410078600717192559930009008725536329137206587050208711109656175087613569333734170736333334614189564491331105421594357310021281898740104146201403227593872224755233210988908430430345339605569794601502500711183194274400001402510599001105508230524227436030737907572523158230463008262974083509564829171431131305496834466510869906187685355224567964071940218997043712912402450781970437164444056097342183812051664415986328258245439541761470983285333083681168498993488871047351639667052374823727989842606125406490031249941653409964607659840083035447230801375322873313183076432563008942519079851549416831292479957080540491004126818898452320439483529511663924249204726603080845368304428893282465668629343804476861760586396177978948317558682849284788044262836770839641379354871698067466032673143478741484054586298802862939291527452111149496717539975706272989093832746041989476526427276249843996700074180210041103874674172350849873799023553134013836586188098558533151420558352117641382738871989761303167176180528180379242816677021264103184026193646539750240252703743181465488395680514428791193045478818154808574010296308040881142083183027076665589232602865967900006157372385848141538202481913313868032057516758929247557132716594686222651402635286732985744236067345711172413329074890909660132835247824484081166842475461994867143342805382499519447279592570861478642788729695897184536112822351462180590506337285844899150184586325966559836220377208479433729606630412782466406576692293267028676936595367279900126947527579122590405315936726633537875819273048863601436601690570870118925348587475794323097594556698549863634435264307000723085160956567292247636015825014972767179433949879542315442581792121829943681285028160700094087605366080521202562691762236175482783356959044508274545034817505575604668755956397899087037936853552680825207286700955689081020671104980826302766509097027488966114768384073724969463144470175511819091242928490285575605367378763581998844293896948612522016169883194770234332007417050766448316301333789022956445311475836482223777803370828278256456629407602085619101979981684344116715547729637526177033048838725110771685596942558940482313309209970160183629451057078110863942172312113110093360970242122830705938409966487568066793468470593534512510568343352346792265484095987628523117713313696280731171374809463908824738439956086104661639116426671147732977637685832299860310511274177266633899842729742416925208873658018371849983433826786492685392710045355077439462411032364364771493025170560803166220737285367223848530733770733483657881049692529725362205511870392639174804855156248322909716046886389755877960700844958412956556922168862364956603550148954023932833509627946808314013783289055973952784103378262461602540535819596805333372878268283457379151981339300872978076677318411869602164565647998067116491618183215208834996808237290670863733263320288179535548973388204971058463894175842251781004202923955977156454437215177635637542088511405504464424799888076784863753668422590419535197427959738008849364812947501689240866615357686679275456571624186834385091272405686077222139038216365203858888467690091037846474072426349530355261498226241935858032092592694985857942773349460025881974616315971690277670685535710405735526675660219735834024828132436531238456077121564002996026817570884995872964409536294686196895391186774834365083499685781303267758824345509751140568434172062794869992993412172187111392483538713532843597846404336724305768890765344085342490990858588746884613412353551020645750269723679951376638412395705119915437976741018368441863770195060705283949917972336387784502598680470113780502011921161587560525017404559862023980907307854060045561979270526196997169414894033056441443066476083996850362989651404279592707882757055775744997139649714884023560493654916867248192040623170535268202329454574220668495718194579890581249764917299937233593486234903001902361593506204033396113336268547125327721990107056984160633992520989605868742761443192265544947764964368659141261518828038103068660054644074329026172671083919563314866132221409526439065736284499546851440551682251047415994808943281063829684738408566373546460403327633657658829273960565263499688190382802707817894587182319292264749123244630447908219010515723121953118364440370942747164737637303104176462926854270249682281717541636687253238591348520682604501725415579791443394147047821827334550823445566570642168300407566395236618390894515416034963386440342925028427989928196714449563991172474514624347051510069417723492730965394441664889020108311972661927957737710646797526192801486126986853126154172423472624967324162604223248782077697909796954095926033670587473158831747674833350265596174887965122266636426501883903518035051472291132779209582173554685205394610310645972579338831668216800402892382611268355274147427280148993014539924385556303600742003805250660871439737822840334118039825824497691475388910740665543006676424568245693267834382074093691332419410990743429718472504750944343519291474197631186620608654221059212571193914500716916434808659106993419594202445278264418246155247448514643838179410036633873132737425819025579733132536975413558798241201681374432481875875229985158000534106237563216497921886084874637563189434214166040154763744098073630703259512414850900498512682322440744639450995701242282065283468343112503437848167457818871998286404636129319668857742118898267215436136703215898809046956522946245330346618695490103458954829708972419326591318893499627422912626020900954161432011169002921330721557488957933428474510170618001147921401166221579902742464079726066490273550022341534030988546622687976873819837519143669073355846126737890899932415243381245905907057961300734211256116248894762852379857225533159562791049035600693619138193337352576344005033812653325267634582256303402639217609452999660159911011609285553933363498690558484385734499499054902815788964517108278759284281558402972485968566831131536386982282003161973342158803784130385445397652109216912024558422628535639124900324045153184631785908947351103829959721029036697413987589306068346226901108920073680284306690825804034356597806958622886244168153052822203892915359657254722835853241346454005572648420569882173393135905828116865460813165763391357813785580814722771116147941491046282291287311238473521355424093257583159058251320828487447522711831984349266021186715240436219015908041264903126817825582291600120680730374526151810910697454846891039591327088610885418225696414744667902430060734349492070859942574299970534329480283989552252385928950846603450285197028049484585646697050435449921154303306342353123957324358371227554995604565172745107247323158392293496411767357276120894622195642572005795647353609245281265430299137414182455750094681452146085399379995287519951786108077312917515689203486934635253817456552665526807087900512053159425480628644020615930220272498293916212188614475937212592430053607492177055953450076993643557563397457531975321599611194334452686731582629625456743244072753764945176957329755617607943019307049965117564623709768088620803370220341293648710942432039245468332913275985178230311546744541491313687016848227084867977334260138978890576654070339222187293749467723821524736072996197577134860322897950560040920521797960714730240997470137339092139583860260702439665868080813056558853998284132230666179145180747329160454615228383857960381497764902585988309554920152974413956990820992491501221066909369244937880730764973736220548553488530484082641402332131279188817992489707891191862877264762519540902928364785133852163252366256097416712921083619682083468031795428745685075750156142461621518467983705318058087319429395639282648012250207000003315853142854280079487260625394944505980707991793362442012183435214532337225813214451289327065435518500703514093456043590919299885355653557337058823536006539311396337609597678049722768017148479363383687407982626990323114372765209827442978182175692656045965051366345612670056014371288462858360474490853311992385617593686144161123609230235605455376153716721708798149364655431730332693211543102295955022451594058407652960830392589284421756786360561358568986649420459686911553553644869904694029414535233001773319465889819874075855945835392397977951501976256906424726487795557163817168016915450795767489891509043989914942909360834171305741446601069027922628701201282939580285549221637078407278194653071720697419611110764369565270949573366264368162521549016357876846247037870900009875707895264168339795706105159621175692502948601291016238619314959952216873702558945432770181633674216776321933992066144471664973534513075926676056607902071226342129301725135966263921032184115314856255925807692759494715016565189593228543688515714663889727554807866087269768221239090904732975810029305427847658799966895255717651024209857447839080256171330431901144228589696304937650352242969403387998633381240865121293988356674786478519586936831955813867128918745933343759750437728483190333940595701947375452485421463008130675319003217236238737337065614328778506041835090830447608119703940727093132161410638293793783215872173964840552626214190211242169664698829341457885445421730802691757583602814344636198212453158547978124525532723183103375890861599961108864803062608354648436738550308445112260847318976951063459024700533538730082262122410923637484283421452244265640766543928977390481410446122731142839398800199313589367986321133737476885458329002859783965916181962177090070836642356612410307239266160615682670107665541580263204691588413889128620233565578047237862713644825528846616496516652900134470233303577366752486550114172761211913075760495110665997704852156787752063249543945983417246592549783677564771453053159826858742654297697724275187409445668720950818230986693045790496389152702335949087834456823348445241017579091032870726073368655653327820034305467928088722154023775070801659278844338233772939934949073456653195397830358047932135597702034339909608053643118515102983591580322177911550700391289373621619674592171170613251439601827940540044459972377878074275937144447495266559316814780958068421535176807094754855827189324820469496399613884187630789844721558886856740488663949439925475281095538118864792861994127821352704106135009015753936216076352527228842942121548703198426117006453506069120299261037288578787446385730237002481498501629508175671117761740209901535873500991171259869553065301083308254051800816061493671351097039626538247409670485765326964627705197751294152638518187773858737802272508433723483872138441247497628610810043007854553520520314276735102038115017563063193130336346534143721083657373484458245862195240589953259365856530061790724821322498040812971941337204936079044573013050770463044415950428716586426389409272713388605546056455004246294711974763967525339261757671546726963636347252748567706341110222263413322946302135505905403309137045909110229521036788685285646442316185819566975879317261463272842739222945246086534011169204682214480785400591784705918311873784649683134547536179641299394483510077679303060929645044900565962243944825937223800571242736812805155765807276107098459013385824008608809003499222848814299168567983080056903537220051144311163581888238766313516169559576086833918878098873525427488120446292917799051755153955964496666602375886450509818568841898792085891038594804328218332355359285801746329539858456278748625092014399517636434036881677504662130850706597842128394871894369531258280688235008327989770755857749614128443041708355854018955040932410850003851372310971600853130844277342754465143128055027761975966924310918256787953303428352102982897168112197515852946387554562762043882757145383712371207440958401370602285159532709572782129554109028163846597022916911312400464474001483241830592799032182571063174715976992515690616544909134291571414653621751923398819122909126473113359456643809065138286289759147330648407877830427172576630237264310789721558689997510942952117509310026797040545365615364072401190190765774052558666720237870688420888182165712239707209699711933408660991745404626956136435743649175298602935455384038012678606143314636082508200822533985937255854172145299594582802144477157096313619333636060069278834767721433764273876703063172736358726439521278533395551266433379484958814672983574824851569003768753315561011453177511810583689541313610877175860409692973906017147242956184126147051987200488170863303142369085323388142147535536628004109594321969138470869339079591006017172433654328528362238743368292037826898398117230571694569137474122478536227164883064497345331176704668035542008143774698786339651558676701003790263646706319637552863172163620962136041827361148964741989614758163609404029910841013828671178503573298000587953000699389802237150957825873625677328614170557791920508406173917935322729065666545838457483345882012453525081501404025320578280954062364505125981147292024555458686583139635215802506487813787738854360668023737099534294179460735460187396307664315605947594619291810775267668661786954963775656541642794003681742783114782675559860694493600005942214495307377210651973477218715932034344984374162111208666542720988656363487683452768197431047639564303641964965773090286514013021926449454776057894179812484730576816755906140276956978033765885936067577806506447981147797691368256080724631829166032526649769521440641018664402710903328499730284967023200711793070542157476621893736839666546516220211906256809038555897318232767199676752377936100967974873461940690469479795278415627209659875339618812148186100780932707190281019986396194669607678881559960519647767335980054469848622222767831638549739986128973074681338644999146128647605219785993648362039623905490925620900228317633986506716711108751837479979154259678280196923056722852187932934093196801921582567632556670756153001420491273989606256664144286831433794896533856260978492495234426243636824027575840319396686831354086966010481725703412218828355208971630097518445243330435294090830551095878420054452214682169535451365421162895085793562182872240207026855894630271581472260405762375888550115451722730248493912325294219233237991747130122751523917980417341847883801635100653731983182479273456965047837475124823998083437883369743711333472129881761631690484510673114837216451742646239584494732406276759486068029249914252482828139629209599742452924215165968048676313687771798129837449410723442794218774546743457453900269704174486355695670068154049641629352388641510174695917691927188659504187932501994552277639726571513107654839091076260527804024353316153196656381168462317104577259378741413698364485108329728901745462483375410952825086815155626595533327635445035898702327660010494119724027771491334019771776226626474965931243141632454445078777511917873929016103254353105445182084558301352988851502067358803756495696735593330481042341748806359315946356114118078376376242227379331536315211134225761204152842761077488192956597715050084595709366395077524250169613973931628018024181908510299989701572716540961779673686170384373261319882279608446943483189356755198940095463985726776180118352669449700538103870402479996214234001557832923050859979903649788689695954439755933903629798966788984885247228687243067213840380526696841253898493666607972179058067812001892374184809052659884986433027318473642853832066078035689840677099071884366168141448449978449062030445612996754866110354147588732389841846256337445705081908372003205460701851816068196722869010259883809962805175687835387651582828889618350036329082593451186407359741630812489205827416975906735357166878760116666637589255958365436539675690880684340415477766979695245140067091641780811729638905518374901456244898699138799365473594060810882363860034021482049045097877469077606561229914355671103581715749843721144869664721440687684471716363484712051376829757130878888008278782245137522634975186466380394257811396771487046202847079177853825025741690408764500616697096850170555914607909217191369905929616532082508436900840393300065669019707617986054488347347839030848585226187430975240478847187594677943729906320422787194634998679507897578328611696479686884579007915349327520646131843450318790867535776598972090518144498118001032460416230799138711405525782353060437641251130345926575735114592447288835265387549608485532983306850887870079113877680795215978814956414872165712428268351749751899927288045081582705000569215237500178760306159067867889362067665983607794146225352363272603105051971737199120920566151361991184041161720521022705241439996500869133801204257401560278287576879816560104794966408610315621674552710847819902153732031433640192802113261640306361432470983806006783720252741919069684061083810078213480439104012612487017528070362267683412364622097133149457482799508822880778990143952022235677297844559566254499903470190331310755627583570496573679136931955365738795106890823761989533928506416769596321791471161835586678956927342866621127280340368947386437349804128885470386744303866759175721638871066279201840918466822457548294558431264575749207078505310834245429122764336086047417092691228387939755685050292565270920702507681668543037482834159960099834711058113175042099675992124779935640442383223417192303653346886021437172321222931702448539269352409666234185452438191499289679811852094148182841284772955283602527109340714452266458518637392280818940677730805487106790528914659693446189824859627217838149796097704404452950768876018994348835873267319464768031923710805467656865376724716282478444595932798743080100134473937451836357887833751120795814727572191225915203720335780687277616389003899320593306870601829455669785214995147792302371113286230924130253189478028596570762976015872742355585250268606478541307546950645434471727189270753782135217618235740294537931220844309441912675404049982491789607685083652699880298335740332334164206054861574149015837319854441318280252418548174662963820400731781012989884392905882822128641491118692966764835817196301189911688374900445913084498800368724544011735117804982275643359324264454473605690898865862788154401436967647846167890860803178722182247378534788458639476904665859243939859037174060270999138196678570699422727049436055995611340045716652417395170304851099283036576284780464736760868656765394717978073370318079471298651328934183107972134307703066963033163090587388217112340908412594142089393042933988114342762187422428790257157734401622734427607244561096853561527851107825580851209310493711448334631784616920229596076529355117294386845749959547543543567859793719069096930035973102671163289445061273770225103776816364431237420326254284938298378290343101031422477106796289607046367786746440922188263911106545110387849939907210866584628425020474182966739309230388361399850099748886494569828575704037312547099343692917119102138599349979530608938463407992774978976485032042856988229083611334393458623949650652136947260393292213802153185332429777071561254226012514578142266932130261661945225768787989229179968506872019400367345326751652585520304642631034560183313294128909028874657599611751143330262815650886200788556303127448438180971596234331581652803877096046613476205267372535614195170218376374648415049584618881420383506109873329974642166838067535142919922215284086013758195666369272721981450102041610052305859266439287100606548316446351188611472237419811944815815844304018575229353855199571469396228309567625982394516649053032385785121549394209615331827945919031638820958339583163205068578344418365576407422406891796207457869920454547608669505979138473851436205862758624653508079662931806162777799328893648913687835742737685535570316365747803464259186540456787373041889492920003725690685130674445732720554141069576513507191291053550884700119501585338183037084775843036205214152225449658614921604472558777656088257081411033268439474933612375238132071864197646098689842673725123537347092008916519847023466508006613073817578606115175995752926696895774969508186583599076458965265349955905384761366937665176185321166625295976195201238724388136595034688100306761701072938833623852705323583042735822400793454252759123616368706264346508746734946844531098289661010819570002570775085752697628772016938907597331214198618003166115068716021198151962684369676361361380950989476031381260577790084884771841986281631737518043501230506561907445838770105468349371187523890724838649386582328198864533959556760411227611582457761881606292122445185349915555206495467425527569842377593666962291802865005513638083264669499667745877647212594466055673056638019843221622600823818998153786451192427142001137481085776627928175919154619326002396284032364709618019217513306235100396322489695295688459394837544025720587806874437338971933773970127721856892469099951695719789072082648625401728149276441158132794860575859306824802372016760379302370274524797046772965307486105813283201596647153266102855146932079864955726581565779840003294601379831707345576711659011655650245663812424601320431228397211722653371813021599007803080803097407073151020871927587342997781996947539752517889836198650517924066988134335527799852546411506633435746873009586726822387431259866234327150710112389114693801741913607585051182506885463919539208243751338476056790058700054323657917746950172666266439578641245718819435141155618823428151253426821580545768988886056964232637190955544697120387470304786806459315019351517202142496715121391490796000489154800740193427562130359926364738901598952400267602787890405240793660459595862796111283146320483957487664985374489042757546641849892932383358185223188497643877947694211293417519586158268062612907955473564552875919772754008470949885839773799243827854925100085615489482572369785241051296900704624161108693694800883530027293518511877105674045048160809017465693688004905336318429258453103454727557099771535214299074374066835291351619254799281034850184054665515473939318463029709090159692439989332014552884451271150425890512768732695540977257643083427092830746497404027580689124666649537081685647761723643787851724673410477472439699292858605300316123775206716372317378855567535964492321370347527113208862558358577548186535866679770730576301130449146932976235996371270012476983707369071598622789250191724084508486694065747236517719502009553175636766125553519298745270915651036345242663760488371815238252693555139654152502108624200035202063709532355556405304052752461438300666612455992761603632987291844341871653094570966116736640214765908130891871714898720968566851603007293034445500456612411053447884474606351659141651581116954849603182434793227938933689147302665187314359231980375469886620089607747210877122772100834174404023196761807953755843390343165546978825734783087271542738111939347648172107258831237569926268917093936880319529213876601656269967777310449393679324363926087215227597863330711271950035795054110157317712578905202828674795741447529161691744268108186350312855305076619790855302658159845562845130103350198684127030642533533375714818939728842487838961276503843586794848084624495364811299416757646761624500289879475800800164886940709114540652709454488760200984898748614710778937738283572552608769681944755487526034940640167925720212477179004812833733933930802011721817074721918640337641241455597723528409081915376945504015186115044089276360362546207548848090627366814153858553599289908727607574784240236655874493695726820888184389365943423990613940865563094465943056064706089627972617012131093757438476551295776105040072474855700917684837145200617031424483991759056735528219025566721209303125315032935998589281668481040061357045666427049732457472725760182497027582464336984467445206863862814070983326215642850587960486780258578672277989756593646957975705514116990614225209118454729814558498256281353504084620823565715064452461256705088770394387779238863148675179025929377395262875410817895317416300393273512171627569032199126547933023029768902603518317598415287745909579864211855354843501924566571680375584471618683526733980286773523877947095466228951925223990694156998063546800722830746282034292734716777763888567246620008706511743274292203311820472802992345567718049380921006916909209337126762682801392278671898992434219480479521038501594218548014510159443924627462500059591991540934272727983591660424215600122809611095119119005218388535661505389081217321092964587237706345458405824006496071664996330508060056849449475205982011599865227661166150016856308507783052121384247989129151259254661493769301929213263646893970091712180978366868918958025808054429217122260863583455092190040192388289193232606281472530626384715692166510641001489948309190353727473297126997412925172916954008261996187925901374804912737327810577543846375582526625711462906348201339142856342458476043634631895799537236573079001777327480076895247827114817671144771446450763622760450598527185749666434492024525181338252762036490039635449481594557187791659231061279958096923758290363621698540884227247886070405026605961156219975832205600907375406884912101816345896062636961440355475956900812277846679569917899111313896795257967591369480966155309298681991500313197369160354442781803985725748944457374702167803530392849346493790186740037812645618483313195444472876543634504384529831957065174197740105631420626101124931604955851479110592589933329411374670099779031524436002733336976755165457753464314304136950596714353464631322175094082253333412622962423665128362327088085633141905077338981830455613262359708589995993121826806134262870121716875055676897705846164109190302373124329698106696209989514201007526919496917939665492469059948887162316628473410457371921082211179236831375708839899800387801166740076853858708040235159837177414776646158905837795462115039824150288346049415778220401581585958291606428607631527761964833173679526916517439935752096851332184265990424709930751097231432900024864109475690073075201594985923720262765257981393145189657296997892525704785478139809480019807060204847561939391301205609505961281913711412250859802366628000088238644825756933210885421422688092670599833954058657922215030732518898868220655832878167385407174445193072547524968901716212062358870576311770822845718960438913564126132627729357663359511404199628435014797647806899260271645274742102008891138182651992031156587870874117956772945969012288293451966817942292952796592001576577408358044538414499712887122089739192714894657206201839648192329662068178088105759344816829567490398144050040712359609894729719558688384043895777284164348576394580845373609422055994941895572401317714642919944365996268925662786048722960389747866471015213412655199986453166320602301263531662377226916468892229527344052332777039685553707687423324343253411426780743191181450242371456044981875183788849335122235733206649036433222141410930119410182189492949025887475226934822017254033287557224993539312203432080264802477773601640651271693598788625745101301211336429138607945854372734276615888861701479062831993530113547810708666782561819249233713358806248144794728643763473245572096225909986087114869359746347146009621800985345697535735130701845126674966615701111229238747057673495852749456068238293907666454996239792159753500522711715865481091778572245109520990743400180397790371310113545553125358655278516513305381227023899195691415578866825891415900906691664222456472301626689748720573675258105635663292144472759215598141417276168032095059917804858218296882946278058763180092925898587229890277620520911665342043495469448935016202342166201841836982364075921050051227949270353843637438546066336251640348144423106579342789599417242382258147883210963433769513949909350779074205959480569893352094965820118130573274803808591274791735588878861569747087863555775907185617220646975367894905529653154233979697865401660609199775116980247676609890865652847468425667472116158073536258002395745130425879416218913673296969363430289100510575700695554234453831889681864621626254520393027531578341307548636297331717501584359000195584195412834980644103268012043622114562141582208298164018363469935592004227780179835193902312648383251641749113255569795478357705349701162054184172814990116891764876426104527561809416317821471104089701917907557178279706370996319905284390080034571187215550984875756221563391498843228096165356405007413402153898207022718442267047032515323562489221237596130773864413697372954288874350217219223828499861053999596694611292653179855110209160635919727781405574902620333728706351023294367611996830206562478316397576625098098136584750509308569444716234426583214236093029888559719050346244801940432250999151621392761266894974850065662910088642891551014474067042113606998672743918927154568814646059597577466119049380796372362922561092184020642287347680173227584420655036978041439021548395238695270883958142971085591076464096803513364655369655825767016187412173291502774377336373861110101982880505475638954466391597170633076589416183982204012296528681125902633028030196316696794291199216473072370748135941156845656861907488062911932840045554467317557137706899205853200842206342782574252562739113281231182335393409494579416266880780894538405517102843913359598809373238141630688609715759619975053655647268575008193350261776121587275299975512038123067274125879235474668600811736181391185902310444444299516253995597017259091410417449429573945885392321118581587184458876998099987363630735313397499029346830549790201209840093605636501276046115736328986767230972125722431952716495345458972282766230727937210008060930680923938625967047538442077517343433961767511989543219037689887147082628504922019102394884052484394713336411714472693790445013767148041685385475254303978535818518876651512137457323043103381561901859290769226204683749639523587454018506192986390751963944818678745575244116145509437370304058884072014675303184505122553299449516703012256992620145028886058222814943306408983317070037926754248816466746941503943032846143117241635992266721537594833465040904035496795844788045904579505297285160860079672532469420187113859566204247323120168029253593057643352684224901677624442086935364680363265308535369880653827380619155616640081753757008133074484327700002351301327496948625450237848138799876105587662586606933877000016479534629185582847570990429918651429366397059664762171967274418245093611190636696625688025910564149513612839374737239640509964057957970795491442897861978556184837327769209465537588544221221707114289018284990260535694877797010928843402690452052714889900204703397289319598408388066001425635959534416780205029064678093827491631203779778959705364110402456992085228903259791282167338040519094192244874810865694983739540786248611350882875611825349047495906639870669438080762289876650731031551755118731497024922871668119144861430880805788549130527180645753028123723341682900145760368592628877975203495238923777953279859256414195778239665223988958410814524651043864986472650083618607803097142583762272086253968701316890277486836628764780639533607976670519549623399466860796709273086172038521964005220871833033628178185474471149124194706771560445621509727745691805021987560347006936729776891166267833031741121448573677317116116556489823129916328731834954898348201834537209855816730071784303696476376761122284969756261396838117369772248242041627765378825966586772524564603658161807409210848842194366303720068039857423132812976419514093248553598824039136258743622881067650669337563373691632764277571705728434566017914690364756618609817652662174628546917613452360712605785529563363480350291758135492255096558278995546233152325485372543465333519603455279116553664766496256132766192310898214125228694359856908722207439016027696214077579909411166235811262703719713126601860333095412563707700365488788224983793398590255578069937987315048943166330981257810366404559965770004020239367093029975544993645880228716048631914094738436876356876062849659165038665484639925220580780871587405149557297788987508608719780451252624893107510768311862450232157678654545398049672419238127325712092248456651630298261599026497234681118642862721923256294126736843671321214973413954072513512347157591978148067238402163755131039710260597056969003709790786531565911585104260207126373015477944163102575888752184334621130365906759502391252854074050093148978277553357666700721573042143912002442149426278581912638857814022580951210174286388633362123428615404513517915120145810434924934123227685327256154673005310106056391147331136733909688005810939211308378249657521353113967636075442978714313827128572392060495994030891401526009180156337174612261020253167786506431099968077481967761918667886021295243533963822007307100083787544344989816137014180053203027754481707694006751678140113112193995524006718156600441320353180092582122009072085143066644719977247497957718730403327180201619138210996685000263566048003695173891299316995876616644075663625611565705968357445742249208531100914941940283260809670306102548751047439029751835264843954576644436397898546552503894623208333276167717151246392165468829340721355187533975223031794086250514664803880642902861720599948961193988635349711465055801042667027613459087825176885923839797037595002295798796316188832134227089112582465869474207216245253732925668808277635651883647867952482249818568551098882308884289532516772385832494322074062553479464556251451812170366300236255205516520829179037281431358582453995722619036348270557089347906250959078642486903023745185569950070272597434886435478750114412770974427233993241542398473295054579318078663535339871555539383990493253674829718487648385129479722371262560008569729894358208099230632366096090982843931462555853793887153740752637398419518397393999590564515866295747709423109715763635793469468169271949069556793559601415285762163663568681743798384512800791501313997161934071551233388546185946233204534895009522075125846326637298901324505798793870655956002755750374451617611899016076544382705887587670860082322084282499817768910760872697333970156796161096594367403695407315715873739665619067221426917944790987521934218175008475047026111100833877743679591165787502699875484741224724514485535516673013502130114251485778594655429489502048666718405354843230251269843949350393697717148566285887804475222507494203930707681485207276203120589728103130217857344902796048017309140039994967654459512396522555806761016435536590906309951626015883796964042690291843401848013846452020576274009854648637557327680544162224604113781356395702191074791486325684578996510272276136738155825044590255336215469500924351555409504288079126487021171653719174757978540082168989634239494800520019359928726521359901908506327148843164537026581792385740318254880289031096843037850168558138246512067932689374724228779966354831849356387225858555657092859410790060467089395876471197619666897412768707407186607414941091207394914173098602845780061968909357950282309936153014075742419578306305698499367053612459297593787048780460966029950423355867446413452535952438605874783982506583759662986377509863564796167682341284368228628234912869567638523165714597638250842018806824965279806683846019228551364983951518133332391627735875567115994552359551385298457181037603870813561272044408490683630080255132048821420453769617380294283410372141150973348384893119406663061897098184671850271563267068281750254128055883138034644720599361419497289732347790809594774797741135237646895178447194439375727979015798314577741788440987425541730086977730412260204131845235835082179840509359354391300032667381552940656542723119674028785246326565833960827503820395408107804685577563844433622240377402970173619545900487966584838715081131942090875626295824495298618008748047357028579451515021414612398895747502881636002326916826666699808108739816099225295420141711413715881237213002203235298339931537056575356390240114301794059321152108975365736147703254301203275083575318124639660993225713738059543761006108666081514141301149744292134255012212344130969114653240277518927680430913455852189674844715551599346239919395225960110595061873678310412885156565361663536388782135704867107736641859257178797004595774787161968314746612914727641851201333981014886775176636169564849444305013220206665403806163552489362878420587712121978290582717345334681311464287444898993681079670365180746012439085759373507829573184842446147995736639710631673394863834931679608931478793784981990182130800342473062613211914652685748932106817239290505137019778995086364877029431710781948289033142385099060792427127788335395063627884697914945525758491153841288122760935792265773203180192862857194918255998985302255006861830217981706746000866367957946398991879075873168302634083354383964164214756824394539306811360744401544080558131964531305318722976002979642792332704085883111086987702017522438781613032928978986220189159528632512886012223024569640889170234155373887891835845337364376531896917510156663211261716234530292845375237989779238417346112950965316046745512639509659025864431478070971875758869520742937279447475398691307770512302873620517135122734638191847368602658087376976988060758534181549540513572622765366822070893153622735864408999840160685010298350186897588404161667896912067770749826209816338065609129040559623531557934929968917104967909305146846656750496135070908506015038289899539941154911329650169728616095589194778034522640289672010778346382078562596469128331717442493199137614747685522128727304347591428100578265463231366032810985669069289628356064311461837669838323927437985784392510241466533786329334000276242493313447746603083965753968873016408221317716753247488382936310248773777249147211897226477693732414890021120989484465118306487777360735726289571463093172381155683220702112156961038274496488929813499265592927915374214998296021642398253722506355473739667287734499012527596155439222436439755924449709400209380630344165961002688171239451309277226265252692067768393725804426161569967270708083637665198272869250023440431007141553797016094969400486489645572449812844063754476934122993152713340162361192147072076526751917673947682477766783178035414838693213926242695953006244281023931128372579462895776016673911899258064799184357382611017638202933241272545456159216512066611978538357275019013202799505323499214265818093102770731932080097065763722745880026409873870121267609735274569996388741046068219112926869540623436404397736273768252974251867217203431842175587470727296736814183517873208046121837833219334650788383160356293939860408035978545495094831987173110050545008498663727406282619026887746766096248177629824590051099670173646760323318455456888257102794432286909562686322072937734566215559221006033055536151057876709519321618799374909717700110213215671285511287627379294711478290849207619186415985669951707268987974245414002702736582840960060705381021904365366744703233655427978151024317504913890005227158489072272566808921104917171873617268483316420747960631784621996107634169492469915426377400798859676386971055158284144760767821783065051804425936026561015669797465370257565990909738948090523229426217145687926267076838629784188507153941736650965756625118177696920294938504085914245103515517237371320462378708990208091432893439943844402707648796786532905621296846630559391568471345795487385725930236372479391829122598825554507090229445804272277876877025695699754782154327519876454677432620085445345810393744041026300643556656732170180522801939933808317600257921868815035302968533350203281563196434574947714227547289467375006377277574543571596347697157593794786251711872743165935063912562300891192705163703498246871878553676910845055816273395677702517896735993101928725502746141729467875816195300521579831313383335916235034975390788334703812696008914026587768499176789320259242927693626106112246843197725219345613321873239978767849542246735438430394189723016855376835242911939706305436444726393945415388347738834943980524094350889300917601737995295425019288730174118979644429876053054285634335635970769488304153524152695984337764722018712502079439286829017371296168097419598380614241382819290617563104076746726842367429902157489780982313741406126329166127350298097974421401043680007691557698929677991386175727944126771201660347072838726094379799302649256615009862157682563468903924918023910294041788958432416940432497190183213763991512048340696972051434852190299534460624068926769798442581445285921341955628802980325560590761343003591969630897635575964009801014984395128278468296855052124964046493686408000954628149959032500829620131819270613369949170465952226355881937828815895150288838649703458904654235856416075121559632433385256565965258235976344540260887908220695967406287124951074986054468024585407004292389677787777605199454848173359555666002015821175457667365602909765253580836462527397076049047949650911518317865473456506100074660531645947562782194719205271057792983379352538848972292423007437572890298236912712791548211383610590833187185278250627951994929420111576642135232500155771851791161974437480115127277576427518491185280108124473323653270824794686617048882849265598626178088424569977333580931926936423086775741730444115307910740773107180250388469276662858693980847210601731750578494095483148929581647954683155518753008630009309978210054952940458106501489786543025083066704140512747045122552038257214970270809589729781529993031003903236307699440682933950707736791335574245330204809322529995928114328616397372448020265665276664396338424603021944854119519148209549939836904623384645852688872217806401209874393559614871941275526762365087143657838810545634925872331850638063023462551890797667734789126216604956334474940788181809639976961942320554511913522312210036397866991663981053230187676910658814360037597758130174496659677500711740183276213642660294868029879128919053663960708906355423653152370998801037510612548916333790527366186135015328205046250973697839583738725938542534325235690667375456654236308191670397122590197048331501457814265769340601551038544886629447203877635061558724299249430622663197760801447894752515860662904730886389786630566782829791261565860413127657688402289674393990003199735146125631055077610710513508800319527002368306982369343216487169859984709378770580761872771196673917653971798583515288982929826086273146042624804512643673235400033915644424046792222002816408841858777891615379308444725917862977960106444079715190685963675270340920348619656978650679687348863008538054323550916407710553413539509117526673984215044035630707263080584229037985205074864170466996757768078830627838258457316535416701092498546232041661017768119137737235158666213710698666231662034833222368423762333849597840586906442818306857713429943612157930359738208462049188947385424359459894065206170173963832088805350507367683968101526483403228654730977628658519386575170817962876310852428460554532434251688774913678511817284709332997793811071771911835166303723564852374247873504834320158916656750702455383840880213560623157362416057568123258031882024769024061254985729188856257602924663673341262576508502413230199334910273030623251190014865779957808312529233459831561862956951861347267133096251071326376322887247066055286485758072190292533331277711826674195901818338195962009076238686501643374476715871402638840185728823726179849601715406427784648795949820178063585502537888225916626643844303554468447806585313461489764062455157883168431375324065888289508549854373276287433895805446550236458036676827043638238782287396338498427295318594973200343503573779224874602830903094035096620257894111532364277655867371392048971020326758504207832119084440330750275536874073874879907070706808884226797840590364058396776146626878973901737429657515806005642847281440638717340758650343973560970140845459649018341964047813529338700344620131182807599857412931044338056489096800932483341070768689357986590534872022068880698266561388021499786317161397040975746331194191426052871914405972536470398089874771040036289317180259304870740028766605990892437888181158179340904050271776712308790107477486871386358427192740425661692067638054051520068285596543888442155796298320501860778219838535406943145729091177842028235752429455572871630933070004750683211120861461249955596764218328589980115631071866398650424345807111409337516574273623840568318568967687176971723223687177996615132612377305705349416272142465499215626625700040739308516890834054269185946147789261075815223734987184250817743495252000650454402522825905099760070391269610919462864493168673679100731741078893162494646151134133819424641429643074438060829375013907208410235314890889172474646475835416559662545762880646895154137106550815759566759175906197880174468407595455897727899413270088939930079584699905680766228164601004549313394934892129482982471018648049417825291379905697993801795083003641616368444420319780594612292386423077676569084951822531636693013573121957549772427661587374740055930114201118639293195754198344712721683657229021346137130959429622556509501213333353343247585467513813958763135628461462768525934770434088334704196481089307710494797532785076126356660211141892000109487816131615802778327789148948183386083901173028935223477865298623146309911709465652671189355289483483953869597052785014286895811027952481790363002666519452731422889738088707299769541569346254364074097570762348140775239395642933423174322485859501729002250146053405916127492230979461964185214785020577842844259251446026634646328191432832842409623834728101742195512340025551081841856887471942647412849424725452906728023827772067557463994932171744560457742608637596645936073276837066553929626686229586329002240154553598415778320838421585006647220145851782115609385084544782870500715320309910727629510529402646822936225671856617223961065564906992167137758761902903908116622701181586445370037840178938344399578644146710632059341799446881224977529808843987938164666149946127150415941276390620095824267031101756223049839442055416606811710901389074399105931201138681387252818909062641949547176911603963776733364352338766948488129173933933711732619415011881807873018493824512359123204575991324382916048193669960435842558591899743680181595006672691871216521921073791442556887794742518653893269115279170545688579451710784440101782624964464214767201658499647655883064473824532641316103298406650510089385961240096728277586261068022887656791210193430936610237804858209426487556318515341366839525795041172683478182526274671445975868947941756372472894829488119989088686425149896512594673379796584417465901354005772200528492351236441948784672530512098080430171174737826672734186560890146546810612762746603037943435892247427110321489778378160154082848928111102052135929290041086750809957626246163831794907973704317194054925915443367927081131603390166171930879357874746944416274717707672459605471225408202611066010140766661294044630394883672870168278624324369172637259642037915201916585155830853043959353560150582662087449801030913736167093767650090002828730688798679031913653136685659687024063608639293424327955780967458864433588747999748728552609515940141379527670221284249232728924602968922082038026571588555035391534296048853816512208837849793360909022431726004921769843684409294573208950871368733692262642173719115337582308591148907841883053418520183447771868700607253102261495752488892395680747101426204474863940381356784991187189946784781013190531741848866220500090188772562047867525105847969022163032272311136013788194647558147085601140135189411110203346731041024403134224817336070111660549823228707526810884275780617894119131331675699649182251175493923234402932419915528644297328955872249618064119719848307621534018201706446896380138216110103962555667271391382918269256181828421627647050637739929658697694080904606219399600305645330718407467168552792234418209323672428074960845362465126191838781721385972696774644070886879548605256707280739166738031333672862051047250916547299820412965061742793847819144601072401287409087784711680847133712963129544755109986965799540892819051746692101601112739983559475428918080404469284359753428816079005247819210200637571448698439423880603720002688710187610375399173200288319555525414078573060851290331681855475449851642888262494155862825432769682404822980907562642802541872164044348149287361475752948966203687466576134760120107360770435770855364221839570963788073017030186163764461872408725061712504559122549891553126112053557017149514179688819252524580064572953319144245787435729697404914391799405603432059433021718974170192812004097287458522718093815954047116829899373316079270458791563090693828754353336692240899967193623443754893980524904114168739402033450330786951187849022247447285761755389989201549882490096165112262588680461198853740241007209427778379821883195227496030262395183642907551913017052473873184171765134795062564207107245408964984362697640808566845152747427123291479205548166705199659952821403189401892583541415107677130802437272238726876860621459420526850758981946466987212358083273462944947967934701666523280015793212051554139409730533528498726038419863922567030823028624741118004726606549385553874169183838611763458629257404355247360657885653701663101764667968371512024835732631204791609789712063150427926493860080671039290759143983552438413135128217718667265460139352769935959582704835872900248499675770045375681589795403869071297473007864539619808248461621988520298653595132165177626810248913800602586793938916351817384292187745645435798913383284327014807470014598511387138924444086375764105940941551629349939899481796827148296964498253144095717470724963373302961625599755706751851906054103094229736417085244338203424954224115668249274754462659056746898569517915829432898368789914733242880269456816306003286141511157436122494040721629358047791300766109088210412249919731895628369432387877842367432245029907814939671759571093764117676507566117631333956721306303831884383028583302932112379743599664351664779549174164582117638960349444246435764840518592696211721931212164647977952622843810658106123253027084668630804389032415293906262307216942757028542226628839739620401948024127943244382649983933434902446823474537361377910103960618142233143709569976161044856518926108959099947400227887006067621328674555631901747311606801337811306316524699026226447606889598192406685788098540149339042873989168368925988306785616263578195044515025647964945647996373187614103688648643397195720593820640082931789756611438790523590251382235896873523327542072586692554952581394454470714177405638820000543323635536138037835421228768030877610155093566913890683960319748988290584126060636375644712012560341112947704477087813293429177552917989739461640033085243647737873474850046038462065792475109442527554265992971701341675092696125604544736907562975023734524448160452206061963916166168331910592199515223388743450644033963385054306749699095553868788776939715489784490704345388233269584919140215264649749978614034473169538319347331752783739731358323813174382765342687437386753113462951808673484447349519703232415027630210119548735856045090195368984440493049049456034081300135527047731061968180175819886062423859870382308755320006191756411881862668334840351265023288603777596061827061041098869194065796019090094814556609450620918675771623940205995188052433867808873715381961767330501984517778090322332254446944433478761322106541981823148281866409858511602674502265798113258522560050110001947785324377817317938723579567197437284766691841800819411704842930743211204960979737780238755120184312267498713574170994626605819423245093959710612340516679591387020199570720227737607824148966896577391378442435148402343213569795729260285385136878945882733214345975584992457771959181495150327841409563323192508916289202249560477797459394413529019010477427614283750999476075127688474408408338006042661050753818005649958207692222827352754736035080394684420579547703359540712321969814220875337566396473079839898876888630377974493582584223731910838019225663304927552020998273235595707851346949978781789977730980619552798126529737840863386725776550698513831125199209547102752358045154905725967674959446724364239287988648733128807778227695872642062509455300942260326780919235179102772303209017912557336769328919906954446453548747540031499158538027651349172783028053714581459260431798534338868130368511576788518997421302010586002474590195607966266099055326706127573229143844293718233602280372747388113747241730667397764459977773442126456446209820299425040942196760567883775232277051403041121933830676778295592668621741086496252446605736719062713506984418322331764860891679309903739048959715675304657549044678394365591490113066893372557088120294788565081425804381319204987768680543994115455222318347231668694749461178932220591578361213338493315612979006024915639982694507444730102277473856861753092001178394951195696339576753976154966132915871049359902346556453034505096087762313781803509602008400254835235324911390331924496701859842594951150528151126828083393614551457896371850748590149608611119329799979970234436565999524012144561311369364376818458151816445542748734493031866615027252498557012967748147202489335889671114395342157319666050876715615981276659230065036460997510452147000908076006645340613574095346299715703550587494652547342910192398231510555713584157357457172931811690565981401614564424422109485599451074893253666457177832826529174337824627615956935552231136299987370787166208295306867845023874527743088956088730971867996610414681548629686170907877610352923237890437958303659179610578436167007894321659953040482153509757625862259663359051439598364664137648326591355594035210699135780744877539406412807511412193527826042670455098574580808955648735953657500033516736050963492116392994301530217083014355537441943332345375414872670796559052621353202799781518119688801430085793116198061803055221545389898048294457781933669567295744442027731853870906005081210697143024517666128461601198861652598840662322026232550464051497257560654964180900937013221829310045146242652934443814906802657042074496238019254199692055577210800732211736518320372118518301561365987443294731876363650980773846817851098663967059420734530560638686579533903178514807829716788696803486036736876566710781095901086340209487234852020018662114231221757272296623088900817457420101692247607277855800329264163457337369854073961851578607659759519275639625398870186758534068390235752845816632579974565004644182889096216332048221660958032525690118559919182099701677632725474834070944983269210356734611507567282809094914987248779508817616917957008961389275232744490831210221481064202599994545029399869281285127238767171834067553725568908214567560537758125199295212569218697491528008778578983479835481713797585895132137078291706106305580720302860264135753693731977294498848131463268199504803379931540390983221721182444122702826293308628301890887213172357776752109435723815766433522697663664217025689223594865228400163381817916349132701085121306527990389363793095982863744098954611593366439328556644514541957016671086861946271390266513957591283396784828175830224751650818325322300278413532435177489972606045647232714824521733167406690435144526803102491853028277961082364291836399167747448833358303527390027125099826917789772146482353089378444702241743298387881441204179787956221453436524539880095728091073602464675803891381838844553938066736266750929756908093686601405344935311836341482212220052643593250744546627965124846990354823976586291143279542250927028136731219505835278816334878090807952588639468829660853056463372739465096139370580097852942721983942091795066255811718766913317218941579599561345210495942411485537768038111160339481134656331952133669570657968664608084178970991011705433440827197698128040715911630507111883751176690145412187541926623624885149150151895497466257197534183323957427745893624293858633408667333624302023324896499703843858287089112951555613231693694517724511380463210495679479672808751460095723830623219379054146726459427371653353941543964549328491701058630681723389148995366520248100331491547391905255108696200126931643896837281817773344063209538143965259880649336164339980661961640460182823020544161485760692072737722602668360955106563446524909282641489311580120851319229076149204141092202099835234092083840253343548560470789551018913216931249832369601159412316102140982990222046412800688289456120416844533771465551440262354749795656971018630787114469616485575257686766168836531127031486908252413233601852722319265838936413644528141918451105874068824347796071326766380992959063183509521592651029240293283065435325975690513288040165164048643758855105697377483248837777753902105540543222031449310431467235679719328073473993914615869125459165212611122355754388990425823890447757445326950330936329615282888550601703131109673899967917142226643328177216841484673102804001229035262390462640475043479755632008550497671314894984499948668868653865971474252571266294306226556883753125662421886954385674450434030953796630159979038913118331079979564173779801601858325885614208322880154625624665918697329777712845986136745353963879206552438746632519566691646594830056440163430394396673800372633167919810961796694438108712153413654676590747042462195472063029747749721713742179860971134262157970294534965353250017389409057917161177705335306008038504953002377378952949398519280394739566017649208116120982728300998661496283769594785361512339228533662403345476333910346041512367738043407323728780452353072696097867332788648436226516012154582201141212956419825410574877204098152200240600999997501044712040158689344059424401944250288977833002442645804507211163958597349794560281453221472735371496612529851075659081804946816460256392134092898395746919455277040001328628616132041967331600169982161053646219296779013644778527802155959606212643942641733446575786678576179462400372185579966515106122192081640216835639832459995534487673886917575022111158557622752236778732740163476568984709993893131936162502209879435850453626879167604840969684584487040862887200846763929615778013838837983205247074262682890205262516048370516648566501413685205459944376656771152470116096130867545750703947153212812691406371294293664540826170030842898169711927727141298581141420186190177114985385546231718042035264610259644933224712006212452069048020401093354169150059814038209544633599650354569351975543172761445928849374277180741567894831415430395401950607071800063269704544556055430481917636971891552726810431262431604799493282370237433038789806504040290971782464529859612029428212650620742020264451423904486795777961182496086563048867135195330254023284828866254329048085445747415552346012794752237501142157765733832875518692651019869452687513706948719517981002600017050494322275428652045748538111649195157273589877561712956050392449425266200408588265390501320181334907357360678782482357325149352358938799729115648173853574263686351425806909794907106480728044665318368583222715242361678375617440729432760772215406533305997976906120179596855082034290199737768783342548824450572459076044510554493182497012728063454548654367240088297183437932565832928221650392389146159930883338803299823147177670973001267341349799407426472749123881386950482403244238515992753472016747844644639646841183279462822525194401076005257789358192366344932153178117690738873713805283098452137533021857268579900703409063785545373140873439766879807946727087410934263611067091425219080031085481434409167895918653765608001038792370424525122761475311453439583760731536056981475816478439807391327567754789787903135594284345778595587136050052902838561602281390336686261159213274383749406159137939880644707820142924098903985569319667413413744232539152519388283877381505015548523570298119922652180494267036204604471844146970844168399083873999659423364370860414847792039855044854840386584801459497093317769626566154133105856069166165731784445818966814804067625552236431385015740791294393909755240045742406095458532575963114702320813741383537191735615350964764818759738024410184353540660449016619853285901114590143945698706491952065237871564882307629734680230825196269863549938297313741375876726627262207047712266084700105526539109854399789632890808857581802082844629814201741247950874146377239728769110002136238720517747465982163324177415906101920248597586930020622588338456936634518173822992645293279713214845785929261763661699251654594761582786836519941468356963709498144520613590874422621478660565635811357275370416384278255524083744142215174022854841932782064426810262010554107120023681144460886382466867553916154977949385733594377464919819884793001777743150241354923509223202162571488684183472032371572041238865315776435502995534228721757800270510400537221328119988383932892740945300207840125386987550860568819717160102543146344501022334476563019871610691135702157935418380799922077696337009082783780259280897307941412647597774523582555724259528002611004870764515435719035661427862400955145295021867254333471827158407624716979138326182913854717385410929435414687080127227245343410617744732906651536999357100620257575025918763079464928382132330410334862666487302395588750284704532794464372183238550131028539596053879874776699280680501541435591308663969776066534987724876142870484055699835578103543566581116599864002217546243757682518167112149822049388223283201417343185409890083871343924116607733912900531370879006327921573410768438773615349349409923464118815867859301265580932539598151533988096951635104498921001148858514010195287501426383329920780281133053836119671223865451834140783419010639076786545701300355527004871101270330932452217614885035304383451876478846653042608369530712595766467747741520976066564384762061458820184618412877299205651130739201990921609852422994269575369492523678208204477452555162778193178047548681931003068394380441876170685058505050516755703081035600492887103698563775442979420250546233896065009583644829546239632398885972553270891944036494736199045877419678457085648600874618498038105762730111873104242349287080852850872019778007179365375862123952201633247998809832592235001762617894622661047895962378756410674320167753076149893129098345100973876083114918015311564904525835676432501454283453441476964945718154672019052724499301570417670100516220275512317328190370379593971291018966528652624186837557784614450128511217519682170432830130509468148421052158167991678227313801577782786196299481337405502100897649642753487614685693756210684855215560119707704421379868859237079899227734530363056293818436133724211852183104748182079600714622155017804593867618864784500915132045716906275803065252450089375647160459822574835236621575152348207993925236770705093354461275213389409990372232801740167243819632133538483432502886120621041155319177543004065004149424753975469260945785470341183970561446821780750144643300378103464360661391024648828580269814869382669350668474264973993271875882621616814278630179968805589126086242399184644163426518213217994171519358037898641441641528507966808614494357970170743317267208109942617188747745332382234648497679595657504133679008996627434101405925935858926344566920739744205533900887663090773621285146880847864399719993882375782933255893710742306747587517055600736607010101151126238921055917860554354272717155456810748460700481964930560325366673536867444646735380173706469345163605354123904237166158031334607819551308194223188135064736359474405886378081023885560416587923150420413319233956636370420678851736205707233315698276124666456046459183879885825784578427448714034089261768150737552936891876656423290303553534222023134752708025589316687365461228217329755596321907989511348364468399064708255097919369453024570802464427499460126673405873525370622363749554208721345754259038240477840091109609367669605424118836858715550938670778314991803287932299428647391599813604483759702297361159468176556300327380735575591689808585249120617003808943414894269926024818741802938476806681562529353694085526873039800143329553396650686877869385203430655389205167681897947910976158187252094894163435605803379505402247564259608657221965678767397445656912590281461644253271462428555804621540461944704413648079006615898778242573944547509832125435211390834448483463758432686454034037005005936204081468362887707712823017263576555866655185510566286360550418556027897867770050089914319204830310224626060034476121013153844702473418405103276569440646521095059396881802755970075321848953819921371325970750874613061257467101442066806071527065657036111994099051259708525497151075591282220989486193561042309169561284728863202738733449245082868947739288043941621390356035455474005766907448668060994124271516786292915409358139752122664168271188191885234141211442542788858257468432929746743398935818577371811697878840025854872552717006545894407106419560796680057162620327315586120550637733827026643240474820190494430605121091431795133721539232404005826097680787226729497672654693350227990014846347318116895659060476804778753523441725481922490401835726146799381723090581032537649899114703448054001742123240805186110402443555216603475834333033361452988133750751653300977702221461120672303489714445463270932108433190904283017718631835417604343010010088491569369070199494362831864930572193365517992866262960205636328523306021787068840284193097799014745851536282212934091846506018821208161197714726314684688808515109140619708860728407168535361941015529790791668284194271404499791126454560134604145299791426707266769366149351572355987250795256052725186399768125026870815823921592187588932099285607932317212966726168654819309133689525516950559788678173262506753093178774277019314952969851900196905783458744639118576930284393106767895803499336602659946928195961054276804405914731711767490036819941533496379222874231865922518875001184853386214407092377107025909274365382732148750413886641487713895690303858424229471371746176992704043455718106825951291903723486734522360696504525495772190069741545575732528678745470074675125019617678897958372589082057798193640066929209984077834944565103627763917417240404169241085553027640161821148437024123783970882262584973844109377123672096696536562507427822390889731009808736773745034605727018758533147836133199297107149061171095570277771929608502221586371166424455771457730828903993054213819283823052650980656514748202911683853697781679219463582191642119449556722569810105868241291662660217640963878445362481225856136110108225550713661867688300302746878033392003699940700081319440939717587079616081508917146937364407492850132336674940017394423434856863930840948333610114531621982858215310358319435958851922978254398876914957296063931059305723447256092695443684093885700465675811362974683518332402253128479755950349751093459082509514129807265603618121656173620552330051133502064696710510020146492466223924276630355135299016640044344989772423605528832976475921884780267123686517656624549626105148897311750072682275957780825247749155303727952883369071661751789672327459113233341680804615293959194286355105590638802113170878111016751262372016466291285437431137170903707624595615127902615428739940389015044485144226819074872846036444029866984851467987297148974168214271831741227821367887036719158226098641153843084514237066442028138458215890301102944993511259122509090771254949549887309130150385450308982086822211757716852265944259668462666635757644515425281018382161877775282371407189765122040756990463736796658326890843111887242518999720976950948303407689351922774448489109102009776534396795771087594017132000457221077094714510417480765052064543381631801645956421765471596709428217546773075938112123552708225533013739030199426207621786697826373694659620674216233502827848118222650312448786316452253473863428126367173411466389596165265072485697892821582658615607985442220179373527802690832089534831674054933230178762044554260423350228700850357047801789531373195392336553598905665370878634290644143665362859910874488453995262292738879100024505589432296666809147899779510913302925701390374186164387297503995208331358395439565317881260162459560126500129206451708070197212777851633674751232005475006232769295677281025920122468105417738579530095010638832691726097385182322478405686781289822110585730648220558968469972984959047533724842753217199854020845991969046713548066764458851928907098003103766120336394744394984173827316648739812432159452114266962984092502394806485401386334544119467065559297335481027419886225788055251378981857718646941261258386643832765895544742574251630135458376874644313277526028405556844455406220491306185312476116876024133501318612149431192369375342366758411301049045909438013409164275009621346102032036839406052400493705030082769060334727953472274804110050753434099092845548877090158615543664792249471835961881319206526125963259355549825079295959910464037552058228020655694112773686556608131310333200745829877971792263799365125754745728013422434043237106895133429614624642574928247817771497901509717853338403968618876395500533610850316767465023238195329554104176254315374901444336429141744343181842029477015188276389854950659006040231983386567188562436590481482687171618112908587221937327400760796134350510062445468932059862961011064807718768058380068124235687635939865600820359501340554755112944278177354617943150048575894014229343375899660235553551472717339357196921002198305739561138198292016082847058775058022280682644022573292254015767142268915418170289196141272269910197300545916745633665134708862882449454754569494285574095174432330538058116700726695359720044719216564523019122260703458524991878948237290266023538163818949960464077964308438745876271770926355721090149890225707712853082775352173796133193503380599637496109803687886755614288739641310506605194483820232125314927917712527654511648848241231669172578989345084231742317247801196605105762907819658053843159092128679034152742798166409653909159415870388797696977317274337124753122954539222070718516340737454204059352998480612464300150941881096501724795686070874238542715928716633063452609934570052749457550479956680504602548358060878844548455135236784908430215126608794642716044704004400534243982686608360841806825964612712467080807668351150706956154530190916256524866040099603746964024611289984291387972914491353249486896263843127175837947658978295374314804800217367823079838117263922405112615204911954506171943135232491052969071569404683139347835793008957120081109299291270711645957380283597028582279653266984755225676555694494780908715805021241358097025661285971816374172923678982988288242978377701078690882773043201267823715039890551649502422253320277811469903308690584644827187165704909456428450288090708943632896827209434674939656250023866760997880436098528163668210274619676908341583123258756312412712148222472408923563793850008603584732021601797530973295963217468575008574075716566931932127387132102970113500042440475407464128184374080533528162932391315010022912609203468713560380592352270270897904096073142533140879368058936915375450669404510963040677763474865615164793105149607235456819756821886349963545096390085149148832889586603217204417542224679056471264160329050852486907119632081141894866802371498885725638839800166589484030774908575995961580813121096968531804392399721815800666591438686940044391649974738434046851899005988860158124972422041516453345379219283518291081825955976548299543941096705586725091524817969559128472289426487769608800955319400383002850978925855665627586216779405132887524655311123565923243825691599671951983359670179059190981081915684599413286711310669246772895660849310824713144136860055199022669029469431413870273648143336895489920458193055425681412296619128149041133093447386227800949708194067399838341666185338329490136166213785027738413880577737885622363908498063737137994231447851205484095432971951016857435207443879138075466221505225061084331648596457119727099621720753948782135925813771749035669154371318119519629307232784789328857018552758743468893895771860664716724307823294925737847672384752943221766634914625919222134610375467302452382589026223801470622516658118513279329785990674268535706819521700070523903243295928173125483920342136311399646363153355803552041935184189083081331687955890121810429356070585863868967683466529679292982748538636061832130714841748575362638151215624229831490936618385312111057939244143110445492972847713522955015902853664931148830846867143552936907999319102099737025747867802903141058151506801869896529706419699858106128156810577063218507204904210488005638743406606396742325118409933844714396524627831251396870635647287143023625990621549132963756689495347608987547136705883444820194553645566271823766126844572728733428333796706844848575499376607716762261145674540411424316223137161570234281383013447949662848502398453292132952678435067344020327878692228406976486854927986684884187489269179617981708394915533716218241847819166033636523321315747986870184504273902064844541545830539049047895965846754335227539805731934469392991181730271685135142251093960009116819024790165375911407681843155011518171767022679223128816156140472213808384658464924564519931058465489073637981956108207246411435787524820181695138845529863066195366013216072767973888638329561084246183969749698034811199531630437252930282315635309767995874789683078656444380885392110122014052101086433719718826976118091483500011984787253034758639965999462176659817234478209500221005134686214364287117140597627644668000708105354059187301405540241380079205070010429760315359822852934925808436561869898724243320315388766687383434386684849490262497567202363131039217627561316027652947686066922619667180515007937730097978187500235945484054576667828571506888347906274733025869744147626579368725841961108166624966956264762893700625752953860218335154910970890297651491293811121435403231537393326846432032707929862648593298327669334698992758829831382526320207436969203148867517194221999404175476767949047477210237381883661028411974011474866234043177141865163352655714767247620304324604470528586684386696538964483938120468355610039515587511672170509100750725829140691678881682834115762197956473925780589755215910681168322826699134161986487202236644079767206298071436020291177398361510288477895257987142569975895841299545827637608442148695549711484488193596492748591028639852185177383043022614065419405278293601934203827735267896392931104765777738401993271982460650285000175689549655029926706114879280062088778009713708742198680884768555228182002532615822806377583774286947766316493190900623510122274659623169764532179514560096100752248257795740968072149100191076290809367890696879191697520385118431289651127407352424780236598394347648661357747612349902616803092300458006413790497821174017027639779758771064950357837740121540365380713702140252099598075468028873183980960183226526742173285028412705651413225871115298771208236047910554165558137348037952172941740250670381174898366166387487716856216443152965269145550420830517296253741572769914800923196454116705085952503820801511049201903141639266129357133222998267993904330570184714758821252248219219586247584596166068778866059558520572714343110118995853768174435060778895942696808056811095461909719324331562344373221045239396808543007192660623936441760634603292270279119837366559704749912422800414387936614009519254955377339696155171401018561383734085687548961617177069030295222621894455934382116679878724166213459629813459294944726685157024790982040692481476634663615718386925858334663129664332826920805969056285370004023705842230621814996570971509018903394117678550648799539011730250467088882549123340368472238229362320733665574909589927713832691595894257036634794872760195860306516202815063615830461534323906183683490077693511913163610098296099898773873444116133062479653138037352676729830651146887245197368625532404530979881018517163414441776914792618145425528001715519872259531948833742414267465363960004305896058842731838734230374546950092595156098013892089038229636506105280379476745567612280815058522133889357564439189524819533411712931950726345174822162732444641936630648539797525641124641983933287822143599674584527879834865462950781947039922250202867234999282596806605428558077171848596317812693125474101467406457640223894221513655856889797054757360330075700611391880807665579386437167394866548074789526815555202903100790723253930567695841644728799084187243213879100032579358767292867693124212314720854949161322436681393421587163139473225910119288667498252191121001588736598260888875931694512065618457810806960199769249949728654479743100256382371521121720681888909417637458289053717436396829883764014671350668389977553963516465969474403923357179996802505308041580154863198351527961086220078210177496650203932689343395930348447103215957365944014293006951241825083493354396678763257438395971526608418109619859804807694171906442168864761307704113097008134082696823257486085419964388056241770363853305536719990543672229698021833791094255297613161666682841293248969288382032511568712086612354573554660466572680993358597048890333215450179864112868107113867338937631096543562423785037144269258771248190528844427347521608105239692237662342119502487410475845727991971561103105984855818847152104478095219449043114938823401708272798599226863837241302100948285542320117077260509584491260979728764112049716245187383508620571376853189465546871258271766376921047056161118894604373151876044555708627455842008244669231412723437614080085537240883058227380552609505583352326184908576812813254233121447581097399113074718389650695308951061072819112657747190153038323165583956554601764256891880312085772700173502930609514701197143806422433639934478485248037993000578274225464937537746537986336088283790485780997865829435163924643227809994929666553253349376221735396184369733838646458145408055669459227028710610647383104889698668762452348197860671935174995562532267591104477142067318955460936367717621717775342474198556434895832431589808883423177817002226321689920645843956160435313977965558130986873982190450449745254299057421991937771246115995381610511863186566695248069727399383634807283845571809704199776236651896868045414317503645666759465050770759277150224796632848020993952883906306916634672801120995725004393400844823938912140265240613881307500834711742016249283819211118890970043876492954513952667413724311469483170104004496255444451844378452293775858469840633559866802675491779829080029334210353068307295299822761134416868085416907097864169571956750267252527314922028874018711402756694921563598373688976385286810385309671591696885560177263723675986462887154969902327570357201269908660854834303196426630616777510987206123485150242818013341024512317225394081266356434692745213999102357180483459673185661881694560942587570457694754303042528443354219424514400762466402204427025825444838237032070916671902593120069198531791571316129969556990960360775505653160298648769907520085382032042927941788029145071927888721473486187145313595990327630580962660433047997828507953816499347392885019553124342610372579140023257880842883862245669012873760549950870675441161084578579580292051417623872369595826392089027142675989101509217286509933611043692026169393954427379340654480313247669863703479330352548939831263862152935114419004780712689159784225248187813606866600550665085195418201912441239591082664271033052735891326812058261765190242044893873430171522195384655347703095478482771160852325038611418938265985490877527545511380764806409817118237945029012761066544236051349011185574044847065006574767986018319951800653738723004587774183162479091926475673267735057146970727843429530936284688822626280544411918313677324056473539644224857517578380109593738172876703565980840590203151628953253955605048123139821944196353029967520302615994172390236705006017508424783437377698794735159851025760342478342930675305287158592152598941763943872125509398453634407388671578374996881008537247408361198638190677041648360768065233033564989009136633537967398943666847491251596255249398245674497812098238336081109238097566021467921966653731934384146919172034163754313855377902509005659428614010261110856235598689703788702407036288337036350276209556940227813538865440658103151644433350108062886009579674432941974216020830359328753535215036549242152386800635345625512004475822183856058385675315236885217973276007352936652450287406242555990065459103437756921719649297938077336023978246503690200743919038480291868287992248003435442892703922319634109119406178703629254418155760541811125536191112176167166273050400179705513682281399907192367949544906959338477104004421795017474103499753234238487704531866836663789456620708185871175434879254400329776883550908315187248931172365657097717778479374398184714314495789257235957407378958831821381452611738626703028240248374842729897291232310383331290458922918558443789252763836982842937725728941803296809666467185693909928596540232993344863635637553664991870068449991798482166796935722241504546277042384735973042529236421819859834970645076700021161659875484549855071306128634062295606262525257265035171244905495240736302820312427878830953145108813766945966081280463027571286601038541953963430608906970153312314520632963077473695211820776638691587762674359043030894049487397458971458550484929383944879164160340261493878778932988494580024331225919214088118663999955259592008555216147965005804792234929514974139171520982430551528793277267638945642934223186391773330003200580470010638732720020112071698345480517394336591889157529757891247416532715484989262287030782183563733168450265777786132784324018700660110536922195758324529064041782013362191396551497085314081540351687024539647263796016222847867753970663885449218993025457383666628647222401204116542198349375291960418218934498688448975242798571306396366802031368686296154324912433259130321059104760227280643225266495928865115844048139689651122278679311025381278274286835531897039353656991813700414103012503816115356436533084152419639690654247115137596942902277543444980972094490299909590232052397233474040011296533419091415045475664800277744668586889226873821557193119774742659434554884748081389956434553500092437517995491147239179783061374790976568958251665127093982775383324630712385510928044181185084109123553104466928396975905040562143832718844514305807610111657911147910963652540094471666639452666930683206944086168367156343298844515788810535384858140563663944516102928759054270824370266677261927139642274120522648122254886599692332216312954867804662291415966701488255491241810679632193061707800710185983259828302391084632663208909105207394002973346014546709356135594951640147286887187472510413210691924338179242780260388066875891746295194798429076861925038851491390503268786408672137318592432415577989510521326035014791473458489894901761909255175801233637705111739224780647307801842506049972399964058603678052100856745606264394858586257890379955220732618237490739609620876119946323064620375719319345557027266645090616110698260974855463448075175225207904240840737445555939960801088538276256176302768998568945983887942789291614040637762939282592462800562990480869662727529274456018375931757349672016949067183089579785907723685044048831485983982558194355931180784478259612634945837132152350593540069639167001364031943082453803483097208293442616839192291704100644872864244924407432198163326907299960595474769288755394129453157174840380036189196161619213321436679720690784203582933011193117853963520938987589637633232457287264457294411211999125616969152288603382248518554578455591042141505013137743743474428572307560261715280865937882076529865670275535351250303864425371460135840774999196583328541331581836491151833568855926312409573089367359325599859417755681101810885560433761724874918951297161506820831942412477415284576757363581097157821118387222855860628773267136232731162230195777545764622737439012348719246239791013432248017962287980380077833641432251192291297945153573267426397470679415697409036652031677724062430937903346047786885913407902187609828591942400530955008686521255171968819621637772818755516526325970230758756131233396029549026637045654165325197149847525012568697255904200028063029794675757610212605497965934002641858806163948103909757519090128219433289273209230621452120281289849942887858299346578674992859218633852358673986881507940799681086148603962994932067958704012891642617629580287479247969435212397462732135157917149168230110281226886555278312168674254652974629943493813671199599130751306443679603660077535028373855898625010665472695278375417468914073271833880766377752644610353054506670560079553224024895251236849652889474300073325513457813744911426141109748677964482100846303901766083986223658251931590768246171736315053468508367028709305101187504941575889389107612780971542590581700400877988337887309537245585121560381655148169784012150422998176673264298437084592395498906542499683761227812204433526623310812717589490426860236473279119174726673364113506917750883066352241834653138221299652674730832917816204490356607728553311451504215861410077032720593562370373280939010984156472776269977298974034066355812534351060976518559670005116439537414904753770195368699331831342446892310249625404864750503783982130937795413721271352218277113274098098916031809836081168074332922252456902914770526785999564660751635539031410822671136100901615353773059905159420693299228556018358659868243768902154390211634201460584228147587341802305659905825907459268392821794777791012436125945733572381765983890179608733710727081754824976538920915413795092475434277250399848745907587276444789673200571359443715551815908274624885005778522712113835256270155892091016681948274073960179564408055029096541512429941492309837429459455378496587804786952819561414378853537214499012060825989597994577256743531435704220476271132099552252728065559905157698621012589377331260348000103489315220472616250342243487289701990188207457885719388375214260213453353067465121711608915138036231355606861524728218132984259747581133116625599520693608862595936890840360146646021455853596811447153776438430773903548022958317735679867420374165939847568096292288967871768084167134891693568430382736504669526915054050593599385281966765095107165373378539588235586471541361755708179744645252378357661514103998151460337318006768209311934711920446986347502070980366236866192143265304550508162600660126631354486040460937694395211392930413142060698283304047990994645894137381614075656023155350594691556826854597456406940394133038518961487566945413127447420976075086965825773695129544195316819289768184087433880013268819319246287321260207464976089355583188985836996589589441057194217577534690436375658743873774051002337273779128635414970914553441223666482055875470883042603290141205131230959588499868352193569684958338820512737139325148273696686437834241404925715293095337373060850245801653631353339012926238293000839265738373906970452972273156204314085990558831291747868091691109633207510053139004765534174537150133545856855170238549324207799021841033977565568541478809597060592283205678112388458739477211916990790977133662982159761132073138451308582269246007669424604341982599467729780097807894240946703692756741988822961713958145292539143552343418203508788952723848086333676834213997405570340456090240724472869791674012754591871849818789729639154553819877973251097322666393507705183021622184498169552900012841831203576917775170602987002002362827250913712598602100697234916628973456295344951570873664248830083916666262517085856622171458782778718117786879193694897088930070285360721063067728682870198222503798986440136012294855900717359981970602871370710881824956701238734387474868637923662385006111083407978429236897726725801680478669340477881271149432314531758587743485719164978015793084856484344710857588842170265142679838170767702371586864504060106959545675500955416356027256962850414923308120316595807711323970099784769784375430091233428200055228455022760926898251995800034123587557447498761649377634171523565119590870817422244493702635707804357370085742778481814904645955049078095248168816647623431791244637325038032198807674348105741585999283718215797501710478691326331271549187311280584202027943353566701513640667433831862079230634196183382228524217768551483794621702018897490839636171694837573837798341055889715614746572397890703761053793584941669657921089895700865752106023103006829356526167206936535269961156684042532792920554413715155799505442934505064238156964271428099886911165727344851603038690301510909416092999502764376443607924492397880601483252928976773455514163636646014561612648959415937490631631196673512192661084619013927333390682015694196988348722723610069369414133748975210695170608638629382749102482914753831484994390278092576263844312628120019455720185609723180140236873808103921032693860257466427638338161540718720767225164286373070081620151462105641466957986453573391691957070368591336010025892227497622863226292881696623083664659209339025976479027092039994749347475427335667441368672431652832077611526868219532891478240118281983680218664770431307991757332170321171535629295062383642646103200656712054464598331746205980009234432938208812602277511341807079541692562625481291250493037059369510596843974619947415058421870366295218994463151180275321238499982805562730241372497816287518675968603772951446655620049041804535781096135762650266616452241950482490303089304175446710033251491613158162737884365367091577841196819110429689046370407405055694518003957402202012811282134127650266303138692031322082360245932781532327806869014393386914943839019698118967066579939677605157946925861503489111669611234367180495199051182329063558959297195068860525147558258690286197727725188783566091082214057243605036932302711438250953562206513807024824025372349568234031804604309428393363720970465229054805444981929373006304901737877174827573030149717531291154032217771576527756130816111888599327210062580690072343479082259539205408613550584695028362688534716523016687716930581634238981005031963882003769514290750571715835523380532417066338702197264902887501569085850056676459728476622051707880144589476111449431030845522736070458076725113029742310723382188649813806534374297249731853799172687842787308325758082670717377280859133651191234976621368980095255092200353037585316354636964023538264019160005501225943563892340802253409977603592729088329779087698148643532300952147874830608426299764823321307065632568531572996218566871830484744072848340211405135167151486429007004617855721950797104139868169207967492899438606951302783771711792801229847783350122258490596268101962164909478361292267622982125650058076762150761019695068752805978387031858930159753240669672870390100156649270529320723684458920627233422563186365686769152912634303514200737782008986291004225393750756681119574267635527559841658793267130415074110232577701752839072872037749244514685440635090329169549901572476338899473399200284085759301980400602970157186542123919060548051711332051719421420067031908018129269964603243656471769244110870392634662702728422332133251366907130811154248237157021847110913569250432198264492522826330305940613430847562229807779847408805046942078327074492734009791181584186066392221450066544478150139278791111691750859876070874810256769822218567626605456913772629900169511944466577024951740492693184866890914125652964540606449563088991452620906326882303258453122864568040312288320343459975060829626528532028032948805776015711983254179648529067249187177515039606090891443039759973771690556516461411290790420139697637498261666796780529621184047520133305893951668702683038144417682871668392066050732503749956779452816779256067967649829922874312894603739051644649490723433206204208525459316216546501791059320100406970288690216495141807276810291792453247738718551426756043873151081885938280265971917410432164687454805468565834807578276830390994581038144278042718825908768335896713895823408667908336124058254963561749031332052580248936053410967101197763535262923202121747380137621011821724803985726969656989325253077068967870234226720508601612082591157196738874775755567015948805989300848863292957934296045802600076807377879472284320276831522302917907882071049741694557663406678061533451191251155832901267775597086127176530848273772880851939410041126086470410058016485437223233844858750395363244154413496502913891831266158669451997267299771787246645001410471286325267976650517576448092142117769568582927618236428707356874863059999312394785637521707398042913822085247228794932887035270120620102645286930132944439796620657244407242229606556396546244870475651444059905192476986348118163079406142870854766199539897163935973597852110479931917637194580087867314221413880438188151756968752305949196233393112520851230333671043968624773930179207554527009655546247148044039339898851124600823020259115961976971990468444441579112293920295445662055599224400246704508667125447612019189206898029600981421513945889251203323120526264072514228701665606998863145683192974577458224416992740201239581001786557413160396458621548671689201343144264283301070847915093471799882038704052832138582411892410017140348397365110693346645817102680578856034150833068600962211033487551925896468212085948682531094303080535077163675723302998398179231741772064992326833142759694175450279277621027461390458998158424061430804293283662487634945975772460303326955602426021824836426215432474687170859784499284049034182198394837016767418157656280409052026457386287210834725892358891881555195311149682831878335433110297861465140470017012576977399777718118832289022132419558936894753753605677669300891045789520287165620874630969830405175744630709639035206130915422572627253848745208025158411314543392565772260967460604480202161196058575528748223387367134844918019941959363617795273465355773304101603633476208503084829530702229726669928237708044770996844773086933995217948028163011025714677409529912968762186644656859165294594701252026402797045516121230920510189867143516083733522869305336144637509369598937821773845228490476460809739455420165201668177758138876335316861990546913062689511378284829029522471699042734095853521232321424757500580513592058184373928154906247813152685613016061454048444906249182261525971307604509215652505612777274139448322802068314332322786494881862116724374748132936562961780427953136047349076974573388786560601626786813845778886866893716939617370379682466695565019796722419519566784163144907479014026810574810517490960612107116934760260199456172205045235065157051224287981692243126406266681996330479659674560881229338327558713149790961031194514406430650370614373367918371902235905053902852548209159937585001091323648831897687935918868352300996835695923717955312819066042402746666334070940204627457920271594038893473829372067900210124043359968078718756382783386470913664239938558830188910449868776508548709100272330280590718297166536431547450448812139661670677094776682639642531120352982742647237379883479209924131563328288032577734051670741621219515271021671744464226410930682020145661030076110344809294450150882461034277551105701605019011712879008527535551409637367250137135865624412230986124523009235845792291457775552363625883048616316128165029864082299606443554219256294233401812509774461139417481670587782650410241257872525841760345331514673436392808360353919037625864386205348159010694597326097577375965749789024392526917717490223608104586208784606673345596120351722798153436812390022745427097295719805675319339471071924483651826960937516411062928766731814071401030726705120171316324856771725385744732108269421455323633320800432518043206226895484679803864535233816920509119301275701148651134112717565739520941374242453452452667232137153696851982105587582478427452910221303753992742756250718041788161359200061346788283068983458712658796287425461256840553325544435360741395712580017428026071959943624904960254028999983217086911608266823125161310366944088034634868111146274988296144816744460970796321739904873490948771359683243417752921631669705280647458439322458739564825812608601689876216301080511570525661873640932979215835557583947516597354817508345108307921161323936872350094561929174277918707823707860230622000323050488289742270483340076634930199293252162702272674995324987126933056801673440342510503910332212173111261884109904611139116995967712396421484443961024493616708194989531620630784439550860426432348423228158092544476052069618808897081315621879640914303727493965260236907301587810360225607993005338478621794774837505104646864810202281365287504744661078695969788274112660726566594792756111595424760375802046272462134853035398426994757046071933138397265886493373175566870956323342552991636413812290844178869591634973575065430509882661773245235032024040149397985164177879674648211134634776700378033325411280340842933719973122346938028774837059548885998975643841594373285240692205375211334687753914425220497230534191594746394352058582512885864715704857353456956137921767013524740275410300224302110515649211365786098974435937078789034577300897428370608567391334275651088415362969727283954734313995663400408260073247095389218240712076864548795430269260741406808214162672094217051732716980758870843623394819056430403219271443168989241416055040012222278408790857765222915488108254296450397634030969308092992533097275830184619710830434418202332286077950350022754164003850259105786396637794983717935677107201755732342477429763281463527312581739594568854947885753064319212656514151166611886462100146765877452409533431408905800162597902171862180228473722331435037322615644538528346661803314016081048870477322086815207944651769234299907660199672659379714567076442672568283326430745902432498502778305225924694301577422987960547538311586435138742495511608816582371403799383906323926338144957452023005677518194102061825208620811006470420791879383486120060390256177018147632000329656747909455399078079388584898379800759673369147610750041986703615136642504114638930076855771257470063397983221203241255413101382036491136509816139750143052125490504530432004879448283453124685716604570803684418410980114934733206085429028136650994348949643125913256508340273290346112282137007786234125756029894528353731340462276557225357974723712837331523676349141249865738904671317478864795353959462565352868102891773341537965091900128016309581325898223600931308178289466347724985463115632392941957700566909317060722936444613330293631956735242220265477802740309743084547093432253066390745847213916936568866237201939588386265998840560026623560118819697054498476674408914543022153118588457117418646020521500054508140395484069324876056432362404643464836234046298809974384783380757255926788793267870184721456205332373001770722962301405507275431972648956926131456301324466870970585232333531507805579494555475632182559119083574824000208938070605712172986423722644030005302898204992012652364746845497883746632215256992584256115680683374502916127759357410948662252851931742068862019815442282186883078116223391634810016520217449222331186781830924450841824746941215401626515269837705376767510779057259558899983607546346039799129240448870931422284655371837754791758652477459911695966848552904060249385253907329437985295340519524296418076490197355032257990845345338795728611058640986914933613837854784984295631118780163625322158725903656802219022777975818063215847350901996569360830747037893727078105773435384607435361275721030718035990180943994168087109378223395000286926664038014256695183327299500399506600323457748250620430732932467248846322366694226575763287082869291459433811541729904251630070456195368083536997939693275340481170305043544746150977030153827766379407808683600300352705843133724698884578658212666648138623666886771911536935257690579697227078500398814560132541869699811380964160349742445010001478392134269568984759636481378065327543924891307366836782222515708242261230747902873416783717454306633340082399879918501230057073113706490614739215760510222419289709027380278271489218493057331067030132234812027775130017151324319323715353058826936015295609090859619344427774102306597569135858229107040623618854799764007437478889908615145138086187007954313939712032858734439519377121533050887445233040682624482324523750427769046272624034600333228736355652740719961683187425609049704481197386307431361009039735709262949954576229746451785944415454250846695056532731818538510963770049522436022407039761807919673973475727231624283583657590100969840303129554982098517858959497033357887483234479935574937383091974970715702844567256202579464846765751480968724077154126029923527605875138451138794011633014836632119894628750035766007526769343213093958085571380395836658900168983162778532203777519353616533855993533639313787350222141263617584556664547714764702485659795481263810233600859738540078869230176404866650491487191486953756772317268214395073835632935008003523102707490620040547386559752852610527160989388623257059273685463114973013835093760236045379818555578161666726724295782928349260698545670995068479231554710886195547195260998930098875307822099120147690925655850176076856290517988295595258020443104514463937217126844040869151209897707680784690802054490690117973212925036290656037539780897926859177234661950833696247977872456802611019562811636848978780256095882078263009613588495842322947634479557667771829199108167874608900179021987929715896571491810554733075749337083927843691016412269195022449802510707901347601504699356975886606815115709599575539989177768008725088637207537024100209643508687908156806867461721962309185259650798574052854252267741599996744646591818313030083207710887750957255532395263504909739809639105379306926064942522598594606305311230526843255639029439018941714219304414809706069403088339012051466442216300971023692593366150483152562543597633087173938715009965095171259781400602133387910132051214844597529036756460494964970781631696161158410399182245621322459640173456851476137299425508812848522378508237071889696876445087633575396771815479685390552713655326546664379881014014620870458963666611344685876014564566509221800226748276172938569178476260426247820963795691828119332730097077205728891481482822742335634426314642943242253933248573214847553587919416931830919540170159512005550723523834773092510175376396502492569778595572008202302314575420101481359514408078115842919465120988415865056163719895572631708979845308481092130313099258523383926726913652226538557879110633221910681836103027123622741261383004661823516105347774458888150570870462935859359393880665604157229030618506168122651835223562484086986675409490431629258726124683443806739289452923922463016432551187745213247711604273466885567193983230792455112764797728840398498182310965980724647382039292139143439617110989906389704683716574537781503180003834019870682148011567818182985899153691822005249771494728373551317907444002537902535173227363585121230484114164009095643670451016034977728506979410062214497605206670343422735313861282579574132819197948814844652274678562818976464264350539507243177197326080394673211477089800824637799196322165826384820355079889941624001806016732370645032873174097496990425844795066738041569681266737856060215772548089913360492962528518124189727151153142921150995854821919690854064818168348531719077126572713092050853871054070170525262121755731556739582408001847005232762313432660144446467026086201891831662703841206547619964968626653909374543830006037283874323428397854176035426037685468885165364638119558566461227160897530704940620177830877675242823309705283954198666149396739820780216523178377335088538178902362819283666264149310525908042735283209101685338948023389493347056096746487621859821197181133686645165940972074013924435923015774076353002850820146959947342298525974982333369578381463466621901749115226755823515990669494239098747612148758922785858335824712555002785605982204096880542908482260607899747998966172428476039350399229564312916729239074874225369685694758919984907724796310712916804574616565920480520284031930073339682820143617335199100415823837612297724819923924198499696503129713092505705623809051180028959530308419066309761969985786328140704057906768766961927825288864520431973412066582110709604540034413603665884750003961337889298757131899780548042235318762904788946323833894408568431594985331875871949569217964295109909818583708890687989835572416189464578787301244734446771048874198769191997443865512556587880830845423658799866708527231736597782161798120786477526694299768718425198260749124606123895596914912370002916947620029565957012629508937454723376842544078504885270621569362774077783591322184595700301009900411022319815556470437157464491616766567000835642336185453124190648580170514682597193784054508861545085240213944086421810732762040873177664459291718824760289000079595263179097096693399542531183645710040156018512342330752828298843572822024276312221062432162177057777383038630535518006743228439647551895858164215551526986974887544564041371114090712736485809346146905426013532499167098473966098243735642222226447100377189815813867597923321006012370779436665255001777124556444707381913300928494109994396452123096954756859515050021982253534337781485515049419385478200963882410801797499499617781900022584517124102457973519017750285131499817415991557201905801139599508261547848307532880024614182757518450581868111126777528266069371335897771273924058550381515757984739835267418333501259716809803319184516449184726785954012247377966823581062639282024092337117865761398183052985652653148363491084085931101427848543222542635478130688962485819377305858430870967942076657411635978339598812790405979040403300953248620763550423706776464590860745665694045577122917384323175612784471102563537822772256555038517564225793395848154520956005397771107259544402330310038207075352142412214588492251136047069877518132476932161100454177979321798648325959631545556089833376608103548079456762241675734005363530445075785361960049428778737295906352498828962263574828061592551921290449966468883219373449542790378779502395250827163752385864710409474304868102141984008599231312905994037628858071571730026051707769289546510675492122826717632268271747807430478900647395486018798746929807282654789081179785912766852964358457599561864629469449699515194246183051059898384730354969085238605390640880027505484135926600034071076630217856699301236962955467447863746032734303951269901856456094745533969592260534654167345288977507434935281538656079183757316067829928575568029350055475211074596126795977471200534022156041698310106685096063080563840185703248882157706995786235733661945835978306682692709698493027946678584235270879746519727562712560534355334377513767795698562169206985498859586654190581092082182054389432376309468642487575190748723736844119174318063405973751016959983730111324797026468039619235340692733664619364262695254121801644850231038243131404040822984989538055229613206405664457144952629730854057711797509672806369243857037025652687258976371281625985789884794667046569290730939374077952416523937988416686328669032306316404341167916267676704129655203657134285283622769105049996444857142078537372862481897131326037947656348887172305891870390231909426567477989309217177724347450911560920593349575676153205927572906072339237880410092721755405692836846376026088974909550541560363677069337355640978464064189288787220005146688051072732044181618432065086403754359274225341674434352467017891696653325442843897113668028424586945792026747808881693024478922877612115246177955353276276429055080292666172390280033238543165717031112740985182668108120555675174907447443795447655187036340083328011883424922653982533994892258740790364962521361750696776636742362750815385924745889732571222819370818865551334013324396519107939325115506319246319690787892702817319412098631774778642650834825173203968750286219512189460210434638827447425073168550263048999913038597316022562979740454786319928825345671193919809472184309325218900600200027084008873033126315962280742304696958320732503643560555625493615011820742901314142920955801662575272401259200451073768597956355657703794015829488589697440052048302572107031084658365534818383284559520315543928872535540576761620053633230241950035100768371354174040190763567842266233488227829407155469182113452315322148374977434471726780803223342518118087499665909758249436408671188024283048745959016122829102746847583335962937630086403499379723591368732009498456726404502474508053066875130889023133672331237085989974545821983241146908431973003890545982709736043896644348541212937219958060792348047512944200496712755909097471593011105419942439823962758111985407415315571190172583734936877863324444666589912484825569842903262789434727292905706378506646253772995584696022903905197944656617702835180950392325813370713349219635164069491979882142203025747624381143423296643968405930345528174645068302169828016109445308542746881085704660813899425113448243011466406598860608922372313820659326557068990020048940115998428607780682226415132771425120824139437788847247828148105824145359662947317020055819341216519148123485595981405603475987118210713209436817933319315754250205912770372400798232899459864501623400669333011526515361892580099624204010266956049644168476637699186223707512390805282193203543734750685176109681859666759391585599988813424639918293233721609154646391720268822679680715692265307217625089049939403405983434292261045516268639080904312029450312381203440482726765742787880483362916540898345933716260678385217524101828768706806318031451641497813028105857979235233784302682879576532211061595123670887757308776810841648386896076178346222941511981618184118908374204518679474050809813769874496334413516333774827921019112571428513145168124252948959350302085074530720002677320164129395611968688249265911176868877356265985860189212019655896859762420956008928649519257401386403809594491990857992960843286086287203733084778396865623980818868845289624599232567623561067956274384454148065075931325881458437983293896052855610672648537655938229141049669394002542897037609264522772927595923013035267261042636183265584261045246655193004053621064870395279557446192957069508483852714402652449981338462423173246054719421674904431023993563272133957851551266316828242707896216327904192384100307185591207738254403710393970555830483456624446987715045423114636791132566834640163142733453953568214667251314807905423994481065007734624653836929907072676082502117360654911085936765717830620723260316547464186794763593374262151882142132055585699427686499732253149290996248663389857032162807211402816258299404394307240088391573445558268659477682808733289517961224938466793740506092213102663010377311229266711073685468502866274527878517403395302097002916977707628868592237981141231655811881177850464448468942116824832346151368530588405734052954778440525990836864722245263795726757450683766069447024201620705935053215183618666466983832438901826645344326943589573484885484577654975651889192018212023805342512349772674428644865714962998752215916544079850928862471116370594499753703229454268856514636558922681253488191732649853007016842306455705290442575650518114262303674086544066800073557541777213143838838093455540695009861152342522825527341947616537136822136245314377339976794488302942950268679271750825654219035617669140415616928984815652968175748047732519818351220221033147427641659174823257371465541347332283451833807132332836131731938230437605695182255928059946072471141448897013150342932865697689273282845122149936471572748279271470327936550079465810175306032722276980147641289492525776712113185544974866175018090441866347278154913840631357128907220798129329961872898159005627406510076477952640342536473662285849346678795735504544009798753083483660713129631401788537536060910613389856890041035662992740549085309906122383342482202522603678327638124684096295160408720930481291035760353585676163530660008112699596808020998852616552651834940658137743556026165766717190170838515679583896714709304438801255839864051690348142396449083730703100243916142950918838014856573925083467282471856344197647445666429410048573066055452216837579304223209865504196237525291010761933033942428306395977924968726120304008411735868309989505132641021792778786104944184756891642220199216290628501485112417401147560626204146353871056385420184251033452433714494439767885059147747874422385851168524429008179556910905675758284341432178147475547817974378310537986730217336242650506258161203681471353613126905226081362591825101777690006239898617279019914579470279927315185362357873407533228282339625312108440706887040910481959632531162250378482867702789302136906092411973835884030313957893489314137636850585289221214223921732498059246850870731413315729476304921629049077477539551590353747496205247138215530310736944843945085762711081988581388361025073177086704681807144011865129221476051439645804851700869265357646236449521710960868913219222926578419029476472424923867166387924532081886246826403626739553933155666056231573327302648406910615719826028076971470914908135969170497693509790494146547152940844427669336310793143335158325664872177798803893446601426390731436020794668214507049158289313045980901953567467613032746896465110417363994696496860960362314984779732910636314746028688759411029980809091651245480663461084839490469972845729418774520201857896308253184123506126038733123396471490857944088343331829195754162233886521639584924667169817316741105354282993037992296134358408230908436076336048035204268779155967541806023196368963914907229767597084297390466168040533654352461791723954393576430940045457692288663789821439555893205853937995618537640129062410380607998122851891832825758262029325145211708348985516296760882417724229555683944407567909577978478888235931407699937683393379057368044492574327432701644668880144464156542360723159040028407870609925336152488285116090080781720899151016001676024660350677912370187005192941294389322510887589917323069014095685820495236727590815907682339242367995695388937922145742578601192915523466883007140278854249777264000874375772298452221799776854101498722628447123674976205694798404209368930130287522874950017616655107192274425084791911372529317160315517482801692308439817129333133965618370855664500912424223531331621782716114254016656866510124872262890504465063283013418968314098936953687393980739707041978603430022531035890867160850941513728559659345707819679925173186368712757057073208785865834805041157424711840706371077269165439662215509757338412199131100892023470204833182659819354820145327984851220503702981053501567717092410818727966754053409501207682451980040392843306152259852466231363047609560021225385401359525076718806295111898646994163006785132205489281024865949136639307128983226639996836767037514319403397425401542003955367766194467614549607808538993695598313651293423990410168587513668215947948585702203308950406134667807419749040883105123648632217866372890871955024850504516103621942319000511775182559491262540293030557338448597494299748192860084555034422233235325340611911022338294755815793131825568497831560697159807993396953942824313077447754212783576461265118188264573780339224958902259700811079245874624652594895553726343673801480190725248289415765539242924089083321208024617793007011411127080139039604384938921811193685576477696922279730573018766509059836646379850834533971192165534797910377656356534384534029181086224376836626847071905740021136149622962468176595993650846866402646028644078717738653537143381483378169795936515412939967197146500961882276893176808516257116946033352034570916362342354297482662498726455273338903371341685168915071301320135210647715596654752398040040352429514343720199245701036303582272286830204751431879289921419969431999758054349536191005730591919149964007945775849857422839317682113009197360912429202440922430113174587686149450071009262709975513792741820645719180908090450885278684359633083230585523208849999609177007504577790730678333934096640293189374116741802434053454812335706111058760153786017508874573823019956129666411271289376255211541717736884625875261948921912285710158257809068340546382171319003502845201838192554965559557314742513611717284385073595093064886965561712850231154874696945796489446236406486139340958634783654117095880049127086899070811474277436061008951928742816086886858774000224704797650770056820116239172193648533246570748874470142173662163082493960358939048256546561699517794394521452251196942228618824313886047719715834181002571277500272390301246545487648613128986946670950275756788603235275502258617164961719882744498230101636862857500480639848625617812168598252590356848319191634526610375250361955699246477033263924793511899126832199867958056764859748245568388011567682625269260715459226687030796176999410500268570091540775475257064229832230532132471659540090284416042812452576565273712152214849654218169296987600810875192241853029331384621096667564710292359057800357924764035990363524354846258079052951283152516066240848806292146659496207418608051366523633790883388463800174364149649456439668046363486043254448903047305927511439539163071814884914884810924169484821233770141166951085594231901960613756247920257525020612732057813568611293712980543487131269988122252430595719501429260170762955181127441274957606691034804743064471759114566166640061993774458576305051797254348714623988590666447582821372150575938576289897095887739006958079109290580775020952719317927568102208649082153430982553608030937882748255043483377442650355156545743395451403397793123422920562506319909499545058876748013309889394553000569942401332190179087697080250510263458074458697886475618800604472764164358858058073157811282094316712890899556263371180437560858703695096250455912632342242675687194822623923877743734491322688308818029523914089916506890294442954557319692135111032678412280622508410048260544305712853180339085400229482333013475160694837371884652737204357895406091714237088697218535023264250384336429964764685556752701694554418412936361974626187842060440355804937882780255109267286042495546855380478530137675433796427103062213457606439824188211301598759773338878568361575259134935771124226397481142665802007949535884564651788344227972311796626334209438349407396026996006036701456245541358213999522788144500991866059868382967799780814460177034032836970249795650350341309319845327358797510502521176945623388079946104879945693213387326291972028922389703065908923937635163558908072947684392233095218109428233113143751720820297749277123712569313969095153089355060543822156087156567933901637240898480604240442283415454790555384956980084623555935046072145069885759449216060077004114855586283598819140195437545648827525256770999138999531132271428562896471676299479385120888836701091331070062078717249524669389184104873764011163254672488307944387027309485147239625660340842432441299041917872155153908847868133948530707554977703123323540591416974487502429725892988995044070229424196367057195108453678520971833794658836786933326717287839745642579151574109509295855372895975127057806932896137568618722449299435425724595415849341985473098971403887330890470626100875279301953842034777073889198665180353702528575833890900294723051004244290206505325965540443577025389854778113493942664872235692556651487153594019433189614557933041010996563846757389590023087975663626265901330857809931726969383717802089734874707068782620180788502658150526758879752783178061018518761837380811360469937580652935162437334142279821283264821035613689883351710832229375675121093391142399552447382434349638944842730236076183219198143022586163185573557210567263508433874436992496618506379910319961827294066899876723511661340180936067580130811111640219605880380588844288358598500906375712010125535168706200499117619791299314201875457071530331396615354290955189008998822891531174447450421169298116233569491255648224902090855824627893711703283752744788749380543087371676647369867077659667902591538921921483802861065439242597346020231371286971032266990230235931129797086427472724838761805969453293161458196357387836055014618635145512912394090172637432082585159145416478058432504548733329053851993813651753861250202015900307426477718132984229424663844976450278190046414357772535148916860417057546856856705179108127064619361779337116188951254097549642502082035098352628918902768361914770241264256047489384065882635937740563088112967090048698512016115179238196666229955933203688930283580812470428604852815487671563016024870587496990157079466397697888529084534857413947023902950937903110580149579356632394018955202770510800094178211634443508008661611207249580238641517395023016719860011877384762452072271764804624179761864682675291130427678500961431395660924687368224082391934006533003571090821648173991207107327014633968111043578403067726767380963081998157506952199272191616378736186937726940593410240193051999629565756892337895281807732728687302810830881395190578119719276774193791120734561372995514268637454780386378916530833263341067497418048482636985161418316055424450321914248327880173966149586342070454363420806207681757060548052336461721514162062762497378697660847465692586504114740042028483194752665643974610897977570847797944535432726429051682595728945390714234192958126342214394593035843695294068951077462372872758055514540500247792317667052674283208372840951983491014676612846191252596027339390229982818793721344303596931865028916321758268271634305305779280444151497672788372801306998744003100924443226425170393696447966326783588967613271227191105999739633954095629355651802420550745633892209955125847508111798384207901169061275485905072671210612231094959879561318708005412674350742656637097148869743979699537590142710279400631795474820384380104627334838272541178986838942450034165862957597388961606750423082650727977499863988270931505873941963961581720052839669461274306438475860324650264462312831371710324057323567752134533476739527828952304223307377088936901954900934053979867019252799457989924039853757201475390815679410231236311434180452460255069238328530526109305918415274337616624352062890352772654465774669418274574765834747100368429387660402851867400623492269146771097396585720038288842345119621653362860180995410111948592075510678882990051209601428171644070520003642867566379198704349458967597281000848587709941901516330749533001656744600091067694893463657506283762275001766086350552031699692556681070975689127435294544147558193133667288802418144158764421595724785029362407264409954620595011528734632678688237586005230360396590685326574304367117477977383356072057145298504219181280471485394650369988856696706350717337146406112387800394764291548606682705995408502648242289456823326556955990994292735402974731498948987516395352975402266301845077021730661694777416320797922539478207323166884198283798454830305404141648753746139954075576520286732521588433564769678093889883609876996916196976879461905706656910362921811876336833556501409049755532207927807978874654184555368180385169011954070608163638286870315829360444916402008067215562393964518436519070322815506937074044942629368569550687560617806109878833266681598992360542603205914868566167536772683061262194220114956572903733953169098245057625829239128516173084342207623526687096182943525716019998957867291269660318386103253613946926710011811320791156856922280903617702564931231419811627733243358366221848084446264003551895931319391306511741390719031899496113335953917270997803582970879756246728533865070305253244298228564919435943985921064157170566173800647170794913582337231446536486503305886770267457828840002536375144323752923980304842678140417733289391256935322068245250394090452245013520926394628988334418108967792399026998348266371580754850561169550038510618167490223282126326799413942451734060433726347783252809831505283517930556256759282456398292978667641385909652380476875201587637765331909064515838541289183894646860943848095790067987570456835613791168052190373162300493526111414581830300889646394098544469246585334233574355677195132655336879467738926889225306774237936264048492147031271341975392228793347339066289960798393964014649717759237096418217504801375788402903068895053509605671669617771941260348139207021000452889752343766288304517066136542538840985683126484975227739289236198409755479267600588418075342787030737273130909002171231011521689760409491741478106962726522010348463389522093674931323124312863825413875815899749239641927298048074866741575564677284002744089462534432837486392154330806694727893270277906615820958954174731231942893550866136459810470294143001246490477686832089658128903987666661628330318686175082814398161582427229271923519891248400696350393475769562815794554778689334948562658838965907977641727514160877789958857133502983982752569172326298327858326330615000690774401882175874677272926512118339874591897400199571559706618286582056391715079734542778530543351740411507055641349622658601818675023193836177971354613349626241978510080059650155514683117751368499122255986696532712547583633410040850263988556165332995430623376232813675516290896800726909160761250903415580800391715790051052035721388886588582487202048947269183170780082389325085067110585942426190363015243991805981520711622027112109022370427040093861700894787665048370125028018816892951998462517461473233738862233961786402665606923353654108899535285163986415478250340527298959025161497401585006908717752247482975587269411271613310581572214119879341863188289748613684906024231023467172154241585011619190982929220335408160979589427898720980600073768864133576963392028328963171799070607496326557255272430080059290806312966205533838412236477457031773202868625506637730750974033518867838973406018229790812345294775876604187609003826880977333912739285076628607816175003338135724424437346163530652685954244815169175912379122172701811051206906399903952507564481465773257594814400576262633786325891215238833231182911396465923221587480084745449701348896574429687980434985292119665106131158402492215875547604737119240426546451768085632590364092446384958739223285527701763480817133094220697106034072450412915931934860007190996541910056890287045648715674755951881436806997650088231476955448776099403294986078011933076608354185988011276576957313997009225909622205520440087914485396069774779481747040566979724301104719691221718373615802213198378092649803125110113425070802903789840952690143391440566024895779367240195387433729539399513970066299167237940980536377829503638499792815621852988258485111701304320603794980552228344133130548282115474847085805252154056757053641878179345687668299410803914284643788291859198643942626107233730657453959652216779168653967883977036815818830686955393390088773243595102113601588656233189723594900905851468051075439589503222147995210330090626134247100499949815576307908630611970456451896613827721338080011924069889601396712682127954745082614573721664080836531821986626531815526546976748262465662603104160247801755803316633443109896647022112761508909315558188381677571540942918286948942782121575178283807444258232656560133655936042921758404033902433312875163050396951018260603102252799862808795671174371925119083551557057615750224676771429831272870696420584311000983457707670945441120822092723167739576552941148800751239733098631546569498555618942783321849524715690255089385094118990177782279587119307342593753712563528789395128845361107599766502495529084839141725571674921382558711488273327168001782996219758894908203223298175078265643810425317467734945740767955633557798904867571759120167567597843949157149020689340024097290470071943005650324914553202238984914008616107157325114454534461114327552418181828294484564298846827195473902281156566235735629781124496743237487274343572341361739793272134226982918233247215004156725742986783139835425287430788850559869601152794289295817668992138324081648514356051090094887995084130612656790738047400410600317130138634299146940061953621788212602371797504373172265349799535960271799539675400251121211322105722744916679755227861923707766669651826882971051109238692168924996342895414442244529208966275982911949437091563443267013525356135045203686158365140663842984849662356058657886362466018687826366731866399580224277316523776326981785966778558500032659756404164756966705751889711092498798961913997114712439161581528342360312334124824799725995382487144480098515433048363077963043247926705304699339405997020381839971156749106074730282289664425971280048536141566694406459363504344231087685680282819868207241005439177484164179054901771270507296139646310368330455893945765629919849139915539735766158391176923459530694833520542520637639767455129397879049214498109683067080742450472414378725213764726025070457952777462660763237526163555334203328862793853228025891732043022353163718924012823790798235934470108140346619983200707415918566231410599275799172959751241502706184987898765747408212280696098539088202003714061997955864269796702449276324435602024775849938571930634405608527453866378881943225783056940140968198449131691761290203581717587086547568966336724139115701682506667026372320484901600903862798238545527406500555366656097749541825828705811099014764580336865619697206945582156134834532872891442506128077502785187354328372754016965859557116097890117352867412087476411938813539078577571207016745500255018584618310782918209810161820221416003987230073602192324946813228344967972955056888155701123526722126800394361321527939887867016248079025084349617310697423249764329153606049828435503598044534898242102034564880001084581475830153594857369577162477057168849820371594648726046768000477528474051256547824869293826136656959038426635792378955438429944998370733544824843149280106355796708633968549255787410240622973278263103853001703785876015529872804933186332711192795332183745154344853126726879850593524815584704505776373390243908050595407868514819903502037385560985949344363495451043960352976952606988183540049985528952009215945034230213971129541704754488796173796683947885214720014258451671542910385255807535398527756188413880125634099842418964962051636968214992766508766021001298281506795256462313499337997652187554118676629001712670134997170998073997809672934643845006362017991986502965586461886372242064352723505374940685301140994756007859663018244831948499028190114570884315780285413928356952576416384521292947520449189331188099679286750980110997328217160499009691212243968801714322253943372059855696350404350856870364167425656779456517320136811920513812247754454024270392913148340961336185167355701444351024856887516910442170865198784111403213113913728592158927052768219783774479973314913071231032896732046067929086186030637130115000764159521688511380834432917863693404310636543156061870609874722364024240336960036576964348934185934392980341832514065707409158188818651411504465161097247453894049526591236132885883635539976863189226991488780408328991048795503295419798433779268126565381644130294428393121324311907144236273588997851145430460255545159662783776812108383219518200923200177778019191019760859719153337435761635796318800182904247711979051303929937364970232446709429798185076332930054061176340069765088105281151950048985803504038865843806334956771931884073900809261231868349857365947252057485147673133548591865079197167122569911245532405392071796839080174064316120690594556721240289412228064980385557591713187363676916659807009509803357661832749897955601475421514258736105497733007281303698527246079565359767335209611445892482622381224313305750258450273176690996064230570919458165651627887239818563401622022788342131359405849270426467535889319830840928240978165660593351402856932273135264586018536584633384959665960537562912770393743894057851855223021438185070117617777832236245551319336721563638440700468543164714426291979667491659371003417407581164621055939135477381977582057876182512773356610339090005597003166242721239111190566953806394850916719237448497251228727862738684993052287360359791588570406868269550632302832513776055384925579864538008259757686945845235096820449304961507359476744447093501185742161452399444627586084310331370892008302799544347117608738462938789596530566620127638015309063248492689426409287452265176670515804948281104921285172217440001128718965099587925516722486871711768905474975269257012540454794448654379930980939330845625032202619550998401929300912927117608979816651534370335967363781796083471493924576684634275025410273811985088412990189333356260539070995780888741762158321551418885590206817109168575867464488916408957312497359264414931532678014905735614781949389380484016383725926042490307299746500210329821931633374819481096514280877232637566367504720904286281933570711909672086159970891098849814199931622105756889204961878857757978861194423707642045831897169477897801271598355009675118836390569602557421919634707321685492651689415902043371802785708596510714205665277240624185264206978619512741796240699582462163576919558162637894762619279909606518213231511020365477186812946410839678477150529472384462692607454648817927661929967057523080014196068089669056292473357066577226832438407558955472805727696753689301876010505508207157532123134941707565168208702032108617533314086083253899241477553146175849455140603258658504114106081948743886767741259624678386919214949422416015696852319038977351994312880368064779696153121778926809432007197802864305252021804527442199467604452525801063610636609149183860515454577234026177399456021588989605914774943207979252848534570591282261288079549095896519141571415473256601976631685648549023176676835861759561053202427119343517787387271220774934592556072691450302240855921864276599070427546466501548946285058030981722913068709400404307044252715200925033614502790330562538907225798507378877669042541217855092908716715677030293804679209644623763446562219834237254180386853818525614809727861859998724563778741824702467906805322865859803127023716138159766688145377392661665490843868224164347756809684300240873440006799564901413883779960330321659123468605248904042552395561848247301261772315758794760240382157378425313597580417163816071706657211443593374493170201132443591143885611661538315499092401334236694976465290986718561522555430990709263223480629654421832085314316722117236881250956271158809924494762998164922678273766388654975929752285155722290773267986167701220418931466750570966186533456340146744567791478040848654192919551486754885660492212050448256749675419532523743553105296176577584229843126664652121121801681925655418412554022867134581831554144135940229820025834110891095990206005013034873973516405307853225856870532841312859545235830264199555207845803843028922394717279253306903042119891348097705215484115789190023406308989397906375106747579642697928647395851531329858726649503046562176167148687870273491370524885832764709505548441605231359086834579676579997006641989138753285683519443360884634223178248420909718506755014444436496476196523843549405711242588414925733565919075293193974730639962198101186450357415734057084129287151976300047537030565500807669887250916771921463654294952679394739698657498890410770445913652899037814369254157907768490945204041523469086564213039259044403531015218081227007892621242046803736612904619593047179936541356897907861757315385253136190249110804054728829130303166528790562519992089231313969689413208564875984041109804374661601745617453358908998807754751359859649682953915491062171475614963677600198543075401048713678064902171865209821931879131526890255150835652412600012706171278509827117176858536030851095918464357441252950361620167367083700731133438500104927804311055352443775367573945824570107665226198473743741092819431203439933999446464815708191628947918595032579955999249066615188814829045486502674869227342304277902078104465376736410998368478893377283640381519554209738214693546955307350409393940663010416394031752658440212306732743258087454975016728265565989167607125139425209893532125070093132790087093794905812526156528483075820005604409599593804327563933756335804853406420537907933345993600346710896188331187669391535268116240770665748878944543405751053046595223878754620303293113682737204688649488030716566945097238686546961916190143778097581598270311368762315257851951165385096111511931126039225188748344153621581969746970138583392497333842485644160805202948499677607239671088769511451952885363608278713547617843503849239472022984688099039419682538225848619040849880445908870629532676102789011223656577891001432607600677918395287621345385332860005977829411559395580221377284840485631403698617011146649904501013886580316008681583764499648716075293103507314956876428143643585247115627419229860032480916485802716336509479693703538973954900456553689417777470672070845164968445166713529495490910976954841776520576101111234915889092545112917022015657872256409279052054105355250382640280750102918575136808659537578625971408322482215785979418330748935957441195606579966976433891749567723496611850457212574423169657008628391874305886234158530807240400388323901380205087511827554143927511454056204574770946872223518017185243156375691383279724814372988297816053118371813267054592974340258863162825377911973250786186990561369844621378461014406299971997661324771899911426248952350933525592325181163090692015742143065348691092757980575269832828326346592872183700374021109401569032588705808926323063346845041906578658446599263876727525538821570191646323149456017500565114001849611227218431041114116954870865293599703230607904889389422462188685093313853156106356243790586302532101962669069478103316994007930416827285990733702954209308124545203780494758233177601295385776287942848634461177885648907379161370804758894644400029634744467255370954924618508593179325584343922394654253503077381212730444440007295927947813532307788457699909792995239392066959694230301588412629581034508484144761109519527469955522930255025290839024459239035798094404173819821418436077954118214544967749542623383461298132178901473345629385917595518121419197247718420390619006841476164921386673342481516906762220471641157145952764784243981508120586313349036419724369485644606955161255981514801860249950397937424179864055515919985351793580749552414241312015407701415665069838268103857045104260349360800526109553060112585586630111120696143290140488841661541854821009647742754999030373363921077437125354897403152650046666886288652426341373530826744300733037618998944075459233050544733186688177074230629786905806279038153326679922137305431689051634637305298109813968389798503560313652147837844947929717394657344970255097230793870896463650563137061312121774221788132627750844726364184350146874736424530960941497378931713472929630029875914817949773502144441844350067233552903996990658725397779857352542131476600730497900436597408551940633293440065692422473508940689988331622333329428968109085931887165125452370273140558116572540492079367845863259238912306507385825089754862670411465214010451359427598617882791818399763573451303411404394494932448175925279965363835176669117456829082766057652500827341097394409325722965104478222848486108348315265106741255619224475883297243799180345943886409057281606977552027653545283130910650975821108953831131168444302609866892430724679621721049625832488951101277672233082983990422446757092664876821270072421979557088967518614292962908104668108445799924958644405698769197654470005933599525258226476046339064182761567062110918400046994231011887086790162718477539566944573637235373784858823336293638140006403270943412738515017334114343808717660445885079965444868489016985006925175777839918162157456937538538101206423494878837973689285114109058364166271928995671517105475225757162879708066048151657183777514907990895079313686476159414566076233771135400053205727829505948086048281450642028646679507593145030623199065114675575632166364401730288736578602853420690175298719695115442524155394904594169592540778822560808251798732390882145043922547680814650312714943620358388084702523101615268078573765730374463831960574143578606739592636268337774540489638338201478215486399028890665338099066313690463095556677525928257717201735081781589137062107481899663491267817409205157083375705245200093115459097079041311594343301128263317844070528751534007921987236724144020987406330967519348360170517302059463531815887938642938098919711001845691411866010265653337289745711607776700862179445927043975580847062101037896282676458957711022355423554000237828497075337682605807175076703457186985049654502939445808527231001396359188308313228707782648323744992498741264713915029940111004995942991453383558997750093920798775677366569502546746626638430137355375719082970285988664960405452846652166779019730595016430794332873425184218372870088574618372273478864021565827253685468793641300532765775155707154360698034542980683781754659208393877866689663831475348831591043414112990890420524820213722961302209436174104500836014342765692669748078118645537667135436391358914859326622657668210610667193735015056365647328655293636802187589234429467289750075808655240325945580348055683123731598038746740185051225169453937416859318910583200940464442378167574954289114143266981932306227300984763757331267628919064576413649894496879001136811132253452962869312421198005629892282392122711823140118217821978534821050446139305252073371245074350208033948785502502293222811719825392367955305142642341803200552913282719666867225284525143661311733563392226643271838851205456690050153174326311922238665108957534578033586191218649480230745606349486124858597008019665610545055528774966697978174406563693998921986367813350112549384524845816432333568474386678228995516072135127469454492205999385103223436186053282648339791671503663005550823823575171262344772389412885286521730851359272477758525346589998268423006544174438266519893590599433803645152499925407364669860962049613858470580274584849688847354252860099738143775847494168107925226877278769145093820126428216031437225864256432315405083355364325343310985335191283569561119619741987612590462371122096503797443804653713226863662569477786097290204649909237149328752957517380222917901667586317223373843675259134853936592556684892603435160372281336017195978239161999611195884651257216882250650742261982435500747729689793580629127241689156749818996598672169811297211399735639719980860984512076018995212403623600682384405577659760371604416716627378383470029402679140706856021372546756491681713661519237751928301817265410575543567468765559653648589683023520456377442184478989044592344459924489811053846920067751229308076038509686221376490104616059723174342791637799270976217917105416736680121612151502121076442128553960754669192990248878160475463509424703218920725600338394054310059328249403089141802390784459126071441136677778127914445821118041255216399479262457568087709674764832683268356195236146780181976791415604761384475274089924833754738745120785417316614142059042943934173580525710857358203256349811378699263850422208986080489644178534915254119180403726763714920628594664376408317629127079502177226247908946791986056034281579059377223688069365945290722231132406929745900972447099984590415853519192385626718550453271736539886494958154560439997006031249721362140250669741445211906813730869064078324112650302204041596683373929968966678170863832951975264496774291363323598964574552184136251719462740464746720378365722758850063274343912463943653096899975983221696413233365874390852404114694666262051056277579570957768419603733473674451242781328374013818106058962384127792699116739420031735508160289933639329010761879958297130925787365488329419998397604165699277552477529486447508622052720049964150048737695430712780454083828301260335378061946598839650034998415138663450998216040949802092579547871366117083638207806037001450624704351785331921629698003714321131424155281995080099041916583704577458239860168244592433001842530255210872412077065711862947022876230404822324413073676013890654758415416885691335401830624259756282031901772265348433817078802547690705677644551084359443458336006967186978034673539186859656117104836968559231294766172604665347690050269287419217007565875857014701078423851265191321997865329308326090811938528496959328647944764936115852850453912872548178118174881758260400852001198545826832979747620822800154117683809442902451820271876532979579863281364865877071904298196589915044084217922966274388191918563250808515866026599738918993178090483296648389959977327799828987878901111189708890182423001827432582100818205865084513906761303046400355633473502833844712778407608003035270525973947104383739134340779655729979643582646515488535418603268811046161184792443626567828880978306769598714471335922228401316618886696346916148531336329450127544978606054323169342136190667976258055129355369610760473329119344541559191465100087102148940006396551627280079718988612372163896190641162649322549703926880229023406474941117345844549976284125234874549407786135134173551884234199921988865731050649348381813449713085588465645376023239679996285086601104006845801247739640302733973613007632800804244118056767038447177404648394292638973656028074611205158195214411781933502189886388271386866248064797720607128621814969235652928136758608752817134419429689663511712275897191215899981556006467576993338787135349389028052620255531327561593900937324026567134493019439989764732001805127469557895149879024681551391646698976072637881396471147846193448990283519701360925939417394487619055400669107338113290400798036151080251292379913218743848879977297205112051083575711503201448110820038755580632990994641500419030219389456644982495758429456530401915195662183490283822607422803821260369598692151886774544610509096848954672226562921489699696278065806960218090326687007045347103298918513238293605174075266445526416215601816082476615104773177658063005256584937014136793063031555304226096549762858584338308876766788790823772714505869937442820779583850810024577304330092097294530312360904678572107659926353466765739570302324838671690304748648274905435536411556471634296116225273745276347021906721667461942041301682918718322594530548792215488098801679890317839592698617334436017744360739674701276345022495456841193331550728404076101463153127485489023858779455151017388650078772161725954444360112327347810107383972389076803680227666275416666342893910742828347532208403267843400274806605491366222523696633949024601894205407230217614100722231400211147506057319208903276390610732734688060787547055657877386115437917306480640337793876105073304171828127304493366480011845245674639843857069325290769759825593446046504650527495788269628997137659075890220023706091566891009478343161550813387511828008046032672406804219244890671093313557986892885923643978090609364433869838731463476473117823990149856197811292313267643646996561124990932959255817916286963844599528179305476214963088388272884523977110551607441602568768492190113000773282884055247565187340127015687602663045024830512887535803697713837975941298195123781137375708270842750921955590613779400602968303945617618021228818688243424119161602529088622199612594977599564194739689211789848867865015493588280904053463688627194458653483008972993118994508603125240629745639900443762765607709888885890661372940244254224588390138772802860603068733259044189198402501508743213157624537860478668214391140895567737264827727712030290791567710150921820990531128652270915111681639184454723842685755419888108260734599975842794187791238714354088754125535356066056562507295503685063790334353641440841153630735532100439494953960924181603331705544787313358965379219059725602114793365025098507647975811365578618210896646704862395240273441397057440948213627919579733788403088289866837330062697698790420935542961764567272129743909223489338513106555364322093627275443148680801164698916329644985220246964652809575787861539044365054951947671125448218957434631548670170597512837989836646684683778354700094218568348918146004107729284300967954610809266712848017630606501661855195337485141915932232599127604746065893490907301430143400922929480818881220297467282593639000514696167069885034361669615057435889184940639399100574794463925577272092596578008729153745163069195020694772182442566515983441628744018397380809041850054963314328908774993319469393397104076337900655897043899279460844125834606986714741626650755575828968305053355198665896337446242715070257894011417742806571432998093806954042894040337664461271482908302448577930054629275299297543409227642785422351580080088309922640163443468753223992580449693141115074743739960903199456349483917403152168761291568074429681172617983341620398743992029786411331554517677610945567837685497644345167598323604113085929214280270629015658990204135870275006901070945200060379935320272140816975463296745582521608556237173754052223901759307576046249458271507360697095976648683145100427570404217072183413314308039551424230230069742330237467601749271676510895093514650146752466147523650974670692449857706960480627225604596972580805461343510143188566910840068725588487657930623112897318838149770181843907048109618235855365865151534646226597366708797264695102989776435844344751061788315344314633958689658820244858968716696422892505587687495540772374002630686625820946907083867613726805841795305298802088344217833991374797844702813217456228254634265314293705979739581787741950409128169159842201407799571836553908093614430759074412251993588478408962819813704865265164821841096987655522928616631257665666683023998593979139497789744040364209283846083866962881861604610247878771431679727776643924215591661902960810615080647898557599467919138493300502452334044787441366763255299870658151600698792693727142124679138893549169969693522800932661948163205106537008888809519137220397265802381800618958485846553725380077953649516873123596850475441527963090527301947753072656567704949528622372611407967727657832338962835371099025137959749808892524029476872223534696005824416500327131226651259201931496981978183855999044963683224129944648766841549880087768181630467192780222121777159706963679135662384702048620590789366517295532187023413638494326205587954928687843274813991931011292992793053097153268435416202615263783585453800098705035934553378590593831269732198757718405894991495196664200592460583932336583235486512923843570005261988315237939902224889753884650640662939634926554973203431041686781531624565365433125679062882561716989299560885005095347637497064122435907188709552809100245210162384468729454653546910752191785814121464332980143869176118507984618557384214311332544453878417954857009699174135399734580683889004631844701276474988194383466084135587188202631244478075664670347835891051464671876719522882555932857604103516983713903304501721491693400067154780807440810945183416753320397761198693700091956685095118593426546164893198952906394792115283338710880941221033267997952487323436431212793663454446143784391028047658539521058290771213447257356916602329839860964148602409968439980385273661197339190890832604926180901117100615900221054113530882326607016991087266652312602958998540284703610545180038331912708736780755231522884950521007447428073397895444734242472261290623041182998916040420570434693657221403115808671586550653787779004311834641138554277752038400171113616942226702024406544278826172997011618194463155983728672679954002538409052385389034743546863805571638789161467373270156100141071870108227199404690403747387542255761035266635269679365351940387560725575309720834022502063522943068295650157201221598907928686724040751114293604555025834617359005089935541217185407006903640896312330153332673881849994237176317205862193157501374760912366354520790209313585966418930518900729663730392395633651840618084933750006443208811936637486618048402529855527274205756989048256510845794495091866579326422989126892580621030115796081748878356448723130556191882109974423725983634258007753054389522732662362358419752822401372878306430586168451434224210052291304370179710824099494895096782652359054917244276154235733603014669560099866963625793680869413464349786072092212532609356885443034891257389210941685964250209866839515073669599022694331233950038144404837876980298103524796516164770838106819249294834537533239814759879083732054690315091224423140166223459085482752281577240759833602999166464242686310782240430636163276962846644449253621748241022013232225638404183385127586319878384598564986928915127369182554910648002312662023326382934905756439861628370599026376337297836443456620684814734999944331863925771674693703602170913593701424268622046864495900369791367847647397850175715138238456315178699479351072135248751245397596747189280374860586867973805038956269391719716527104125978481562686892494628701157838725658348712096934809495590896984933039247008514534596414095906375066483207806489700555331187580746947587397263984814029194801581777556242544884241512534877159834286365394048940300403134115090594149327765521516599170136942252859622682607729724516433760798246020755324785659748012129480019578209288377818693340394304998968376833813276788628035571067986246531395697742889573052945743432462125338780006959503673482305080925133353710594428848958556349423244246064491081137825488710949874527816999017502556484883265344223829178328712868442020120820066259764015428679121737046666328531502293064083261691638049221520657348294982983501822906130546556712021408504092381879768797602681493672710743392853881540970982678803774039658862461317494077626102572948013103011379940887697000573456703531764326117172437028322050480629455583007156079324938990354008332540201262895780170864566128777058757920382119735643238217461426477471465934347952950529990043660505025649656168561292728459809426993263588623220678949515663280009236064118143373026232992344436341985103221315951093470229866614931339545585607137996371740780308577999809797813490187405555443186733005882594156815915262311372961425685527284481362283397337715148565817859812234615899550831787508788249702233088411938077837870639165342152475990183044036671891858334054111830294512073139636454611913220873071502066091551065138781839274010648726474913225575411081628252504329980910972844857420341312206531608926140675121981139898037960209912646948949029332321445163669132450518068743324464628870749682118719625617404042565787752143678884983478173044687098878993510780667993129993737118798859658302030580236795614854471688067106661343056010269454439185901013524685748250075703868377961298893399108169219280216501133760260138933862357043521457314392032291272228348657786033099375761944410138773989471180388812004168623332081842279509970977156426543113514931746723992386597848347474062733214653232329205135400568429440038847400799694657739061617237858714621847494133153995543609462092366697308302253175861677851578041960210223653574719537281392372805538770997457520240323047314156209126587328413580032184999863688472955799949629472010043057144947136026230559990353451056751004893461102986103167748062132799580530136022667902694465703407407027860161017598896649525787829885593624032693785329060987012671272245589458286350163411325851500476205786027350643609137222094529151987418624744798483802974658172012847578742104646248542617730138049794881547625777428495850626496486837494717095307611792426519166872432871905578321670442895311985783220487292298629901908031462780127679991729477243577807956439892427709541637028118423468261640514245482050570601580450268632527424399610017994311413552116855842867726867468940356225513365148006509217419618598745890136479567886315234022662172851647355315784380828322013926519011323914780828720315102950459675347432994937729976030995629641758950967560697968133530336681114008755437335744817855385043397441691892764925939491718690423014181624562873600406440197396644462586172496889104602863387827155589939146832108045304981087964034992735959545251363397427748871884714420640017020491788020674797700003575857774879749641337201791938518864139994248111028958229562711281698186694813295563025896493048370893839092906076850046295746517370498802157943874686711456047928081046915101180989284700529757946009086813056649416349897682916516851062006198756580848369836506543072115333441049072723420552475254089416986528091083851757462850504127897165604243478199412910013390381479910297297400889858608506076562936211955678305889293974127976620412279670348574035543530296173234133193790681998563499260566105271053998843861048962123004024186116839841695943889771398165053961898270976776678617145432756430230087578698469351715811422755317032015338835928345622267506077518539865868170826861232172310862155346408460448768651369149164204407411725247112961601711308283874383654425131166751406221589099949053862501779982384207846056579861210730191338209587747685943414329066466301929835278580168419653019070459065534938792212284149061950289081476223185774778038554670818434284051427370232030913247666023906378454212843972749395262732357661532264521876193349980753940807519191936801047815600772871905554817569347916152057443587995055496076726855365365616811745029614129110878897485035322073741026321361920438560350991313866161614356907823438077792449932974781073927583433224427025501369604045822904029777088203405286449816291213849483612444625634943752564570263251431716044689632824567330449284367112549840400302137427688763742880060328436395882351736094582462180888760850019377643572811472011629799267973922433418397287858782530917847996120798202175597906850677094655364616286218579944977886377639482736090351861544073459996384460953418288801695464659410683173829962211026523453324232833932974044458438391158205364871833219318023000657298591232972932489758738152858274730673835171549177493649364473735190232923544353802059191467635255615503984045404188880675928278432237607868225997553515606239005066347875135943649550342989995508707190428134901801333053841768652386495789389063121794452314612019778765595863372270268065647582568952182455265667768061987849151937802717187972159264573592083545704574191306465196486890469480104538796272771837484341793266541107207450732289340379515263456952132154363051455371433620351658026755616064388492092882322622914391115543001958815818128857283033746788972870196137490103094150467347327983491637735290149522138438004255187624898360126089271883069930074021329491360575812909581404760215883686786710051123769351164126916083139384146395637452738035153394312039930513305331801659232615437763539033379085184598566443498629798435128056824774001457115265098403002453886973588300867032855991378124830222608477402755551251355937695828790642084522725119192810415434541372183550545185995334327470291764238055306139787419194279946916861127414177819682246167274615794103630298256681806300486801896420643870263158826462358838301150368178238527178285059575057776187432738205356958035595600984391149343657413216106950132905100439932083336236891825628842217055887326457201160515554841310596454714614717262515782663775241939879664755269932966149838215518258213925027388394432950234819368398477961498030930732747123280347318324261151004968221307792527840772678965026945583504004964632987276928635915094229052971412591523174172032761219663725391358699037625639079578486814726440395121407823518248284674642914135748070322749438063871235305527813285188212881293261357313285166768250432268135508142408247917168206668534005050187564330362509551071829896517987648004123267853141660515085405590391583670560632301238147613958418719734324388087138587572863640972486730341505662331105402104462488518883215056840030850318682580844372125859108273927595594345590134237814094178229888317872862704338611296627626853870437265599905270646815239528049439195514081590370265981030401637320744786232535337981432456341922949673301954791558578558702002801886979343613753977912305454367492770179074217692667067141726897654434280343109163467473893612412637200943044483203199616441403121867789245179255538787519115271310653328896850956052295524931601631069034664196689856509758158237543701062789559720167133212008335170462917824964669113465429537582776177181093014396818847716650421526376997446376363777401868054785775738295005180715219672857699384752367667326716753200510081042622175962583322529139429185776819529821782637684311863632848400507319809737115663114990796074652063241221079672282968297560553278036345627581188874499556043448572893101685728792043723572178652184926474013327922506596271976166720243167129980514587458710416528683306824154541633949828909483183518686974766146331951990617546891940971374659969150680062399695943661306491938564000587035970073927020707511515806804493420917315391453792709589161389572827822006532054822519248819453658731891887045118186491798324874220813868483712230326261184816772124386967834128255879422213649636263144827948117893794582674430292759675826632658743657838443776398189929316161872605531252725784985490833464822568464939861534682348562379903614362545512582656768475372790848023654087194842508985192467962446676403439947907132653150573607188512646468723700140677402798492101680106822037133111708463984751987529317679932483657868777543562779797904748298878098643619171441524134008650395578745297316465642391103703416021211986067313300629789060380800682851943304596815018170021796572559483598050020840348523704310273184406153072784950926575340421320381190068936221067474477682412492702802792918598914912618659767305152289407820138724562690638314072977655921709136312409742777266002424940653011042331263789732123378515449587692155599583246654765037752414061678104203687537401085267766836154405246064041958017944957582609895649572501801224323646970322249154677947406227692510009586017275739173141451289874587566855385812886381419749836430378421858210878586206529851372946772079554661634056809019930439664502261034620656240321711814796642969289827795249988131135384123528748986080023604146832173328736691056210048273686004090903199029836683578170336117601031068863638691730530295803094010438658667748481905907376604647800885875637977962081252968463353639333014078715327790603368832077028023606839895447801795819924806095614380286614326633091547526240903324512208956034037800539683071747514814329083874346161793183710921463068574751728267739776262805135611623288146307629040446606343965085484259613617449055404683206576843693884769201139098334652015536357175610104947933664227038534082404300405106531584324153994640703072796807905982981327106470367756960932198010149195292669753174079162576635765726112338424193465367797609510070958481957832087831318926650251838528792365682212659934605307504390691242244522408957692918511630932658541444969191756409017224967307013800865664484927410354606427579638272692785037779999010521460901530322555038437338269430273065473596187317318300584144582156069618345271446271948303032149529552193761465145260525844601836187127348424346266918549472309644579079749652444444237845016958575455672711437497073132624299748128507210858159887881797034177698616290935079643271623480705464463652974741274502609708341872335481353117522329953780594610821750521439681253636605924810603363892906124091524549813678254597162323010653504135968607307842189248836576588802247704352538987525284451850336242350289758307640354141946849830201309297488990182541891021173052611043226492812578288470058928191889919526590972152710844138260188907866223309681174960793565012584328601435269379243614794602193419462260784712398438473334512943663894631738733015172798373784511476922606612459612118015628477905233169975102913295565700293087456531428950282804518016501681429156466134066748033611856123839092877874363592202217056697142986741818147165425133438758519325857659944882797466017133129192377225708227279094306775170139017383641668194719439520402153442771891505980013699362476157284156370498481031983944916744698124432511982123175856699794021255336825746009216489177424559952119774855691396983218586944580002064654073666746064182142914835679582106178793068586581111917178002906865064451776045078214695403126888721877870272083902443599229427943970773268325259392151060411422277118593309301088980347593090167350873806796021850617652589727676385976007182385556882143381846309541260901592266530510235307072523956972503347309867758044211245544770680191373263507112954020922131690673549586814404317885883793143013004498898525246832937349661517912830219955941617801974193857744826543744785820904998486606227916633062558554742705918067162162456748919258231280117286662097834594206475866721101062675540727035552747650061743724136797783845004360941433885920029091130901268287234226421432534587954392405432805539039381260560339120597186169241864884783237484144310968770618182952707288197190208061692996131046443121499202389834905651379870137570430494332464807822192916391901075390786601409771945377700248287253296909760347794743055476179164533039357352475165721197540620897411778674351878936490993227088542396202375352923945468373382580027800685627513678058841589569292621356358006549918501017083216929980685904863172539285317708991959072591445123097457277585480882631009396642901563319890499396197387591903551294552269534539789933572720726836570810786656449877987428239775546449459321481839344982220690411526032190982877392495295651651485211622817100182176216514546431282358973044404476312887262175399563797976014865647831494684177365959640079505687050607356524390807949187362224259875057923242562298650686766167752858478596646615571622962011988421150556561793483773422959961679838699116907112794559253824398249706306411267677274716454974480026205019955803297973325913727659216856331602284499949047805008291079851845579109290649380227649488792733264133309450833650973432875949318082304873224384035523264192443796384212268494538882169616234494081399796608937737167232121074119295096000734011705557491278085626114350868324861754495979480304190381222354643200590178989354679476113646228623315250600026911888165315384154330975728500389378981340112684820997876844746959381659710075047509221578499694226375138040616266735303626427386545240379502241777145207691108210835172941641379269028058390839190089171426232582113131288015942713648394479040765660024343881668475545081021507170000924132725746176216885906215566775907751542728548985940816954762939928542890127439655813141738968790863914452854767874223863148797018514542945644332305284144256761259145556715288393295542221736287625700472953050560354047123337458591363804854159466457546522865942086333492259449412315308945618941448486168419879719679306618041460779340361754672948676309073420941919791456649253037586319626504385443440518534084725965096434604014238581863577843840367388339274066361716539282768180534212712115726648897469496105392583565952143144047640350774845107651315462081234889298236528987175022395874059155692382536402433142859616358540377125716726519882459796940700100867825401765505398380260807838053104255536913842501445356311691251217607740203652538018222723026460352120353467780152116088240106453120515408898816877006836220963958955419788354916095618190519018284918506969620323313401053834590548289317992929607928055137959518870688038949436718115700414951023731060166728136581186378393184754740738209091748564475290506822409485697658336417483640175998695769460149173455665651439188041885517384335617619658578422237392671813753454972759835631926123927957034259775606926003671448550744664496516771331833055816995014512521596107411742738300125346739413670910099269058522293190668515121483402572895917398545997642444810359745404997236161084704700338617300503957530991892588500150050899229038331270024755905240268950754413046808310094874837769408968394435600700312428616661245946100034702752775402474707302234369969774783615389810334373204232489383572651079689236436364720325637780203973890637996667944027143196054809791982120713946503182824671758727156375018196853109354479837120088894260830449440249282297134735560746653787933616781824204676475094890001686136017247552730121120212230745252809052762521649617054695329889879655514227189676537541359295325522281347534961309630561514596919272554420410162720151847962817725843681428184981462350688572335277852817527738161940117247103558482821331607345519698476147617529174050994446496459968162870287532426362036477341443289622410142318045064226292237814037351363292384028173336718108642952817830319688562526573500069704167858672847261996587241852789188868241483259657397428486497372976055582502846594332967991400412248093682015827359033681293904084449631484904754346314190168079660298940583456158811494471867754614104876525801421936278571723491181805016454249034119180247343765054098672030738462994688196271848687928187246950346897005278715075539421546532670171638143067675818052232409985901024910658014465163430955370143910756852265952474499804280707878455502330776247257941100232790943161931805582694100394734789379358031789261156609227610469043167113676243882461386236492090393063168391721817084288630716114490982575206739400296003503217829505596208008969580929297172934715270131116464183789320329291882838274986245441824802825238347448552365197621321793778728444158422087530828175269263761629978529496028783481579371278532279643731141870301333666318714917395118095076955314680436873461979919763086887110657652683366564991695356567415188418208169760243488964728728370177898744154819691683268560758773406265009127404418993943108450235565361989082822307056078137211369095759428262452328573455203305383853518201112923801246534525920019015434597817069594490286440182061738854610309315156768480869509285320168625511432281447847942047467772590093318633732410168068212594438071655258444479991500273179680207531742960062899672020674228624509766776854290549635487400201642282091163359378853441773073352911228903501015774934337015469462088074586930142012754712609483578519745422345557928590448937113209907829021515012295467486882752491278339924254536624720381635662058833045340170302487801255010251905292419285968314814853868213411122922851074243229198308721406368465605910353839998222455172151942652694481116068283523291266378075939874694481815685321268104391662583362978767461751147146043469736441904493163764034753969498441586495409406064612681907739504884999546290751654167619000285768128864588454324456318005768932698632069130416153920311106237057424274370224630476978526656055290607631088244967377289663864692789059308386635166704925701159543119331724643285446864372740858029385632344399553364981210972067684144029903520523947385503758878034815724972322847500996124179308081017817653997523120367699766125766260696498724626380210654680719931040404733188330236296445437197151938546210752991372365848625381610173716988800715394694815229748400263205220557422197647060761851514905329187638288617445428848682255756004788834853228917066492472506596107109674272873318655791589781249067067267548065932777714758511584189334941852592140936403867812348326847827801168399072642552432389312941892190184247752337001447143014273509557618227150796395033613372841731291978352839648234155119628216655393834344365916893602528323536795417703864023830642389871806442375663697124928840717723242516704524704431108450566861229532321394249875360478474827822582580804050157886655980226237954445166348511908435610717850082365328230870428008221100911366875457063632238597244900103745631297594005024821155519631267020229421407959363603109963168285857949514613720867708277171378561431325892308984523029799200716505745761110171094395099188772390970522693645645937332836516409947486824497943615305859414422968535065970043479164611439612559418838050137689127170080562542387305509657197267624216069029994856194885494462526364094417784675560781379750726348877432873472100405682939926448666402020828981712846527692435559592079442083595801664073044056090676822448561302276721272762088590834585184456762540779577063096649554941209202189696149088249572566315104266226119886987651737420062597500569753733100799033306852854164266546191292151113223603399019714608506649651768377422579374476607057689540810990191133050301841701941462814054530154252738901576488903187429564577162813630859541937114733057134856628989415507350946857480762958022158072712263131845471965796500534803688122262235607157544478387446684306025224184403609771476049411247548725799199221716126051276709933311458990223916424208836042516617417595877532931045612383918129839190130271931592151844722987313612379340244153733912975007021427092685812284581398240666410422283427248654696024350324011220673853970586879240744486896665002084681161296752905095022568520729882889896157855759998093724571651053406534823834477412293758758726174370126042831199529266862280237073577172484573326138961642934166721167785739052972649360936027489012635681790717708215765948907459403762657335009705976672114028898671459951337102047207249198928884589435013662718493623673542430444992375296501236059587043905898228313330254127864151563292150452519980320381589119091904739471908796983551571837421223844329409384485858791773161620948232313673237478407107214929498845126715427027052804403515578285733716751789442779751111961159358165854802502326075898356217670133913857037073154653267478342894023018104165206588034565531067189241204864236054556938175466683781963154542550865922001425828619455869290931568022051234883593210232888939496858785972503160239909580825631032035405174248727713924982770150482606742576144429093339760941226862459768197462091473168662426052434336775142840402146414506123938458913102616849810515915998541701319565883993734528566047717151797767521156317156782239796285064499418590232956786485268636720465861863282740727717744834282932940670147282315864832529380945279141129215185392075837275339857701882906699349392307090047939949565386280324008881999497579422812513028668968227352318583985180855991102499533996938071545428116981901536862094288920015248227997367554462264979487446148630103664389858743214404156643197524005711194663046290110943693269341464437616046610507415692333194399545225906530454855214926949160094384188884259116284173285920487264239791655448098899743997550737916884340047381446427357190700312767991056149380016491599007351515626918167656921838132283083661843762970675535845824151029374075551780309956450588533238948883034417195482349810858302668779433450340953336753992972383591878760757263695502013936219260197217086595701762122160404457474369853173373794383121197523183206660339072869051856400796147748766904548329862350657804673518335355662431985294249216172266554063787149269831648633446421950457248367221094969440402194534931867655184452226993962262365930230522555257488982569467947957177833615931621817675803167477246627475363927310603614404163995485800591482606620979186173833008090504111216191210720691982000517987849333199856252365885051532828560345432888263462350287934722189688677154964393368479307179051184170314246279561636062639548314992859935859255924653495425219622309414453357045011191896074231811923685325148688609067616140806375098974763323086703989006628187502582351380933308022031436260999737826148346378417278723309821529266710089990200589177108161045010983428678548609484897460527836620915676570773186351493206981631340437407431932961895467111046536101279989121200872225429994425968861171475066516049559434260164239988199791879496080501509923299577931660007593214136675895055693303415011505708489761897219618033406768298290176672268961783338701028156754719006823848220193010839359246007795634086420974190837342057718014897719608423489944730766916127971270431799363335118976689410328712557531941069081661253791174537076666816132465350521948003036822358785722220530771152833721716379019456919771312398191755220004420616592872409711339496346977658401579678821045992947075170532407518732502710808742838354361521768774217036337644354635816606793495503814435434638493712039917153826139269311036808318714934739217921154701120834759683047144439331202326352820179460383319293066687021852322276719862960839041640947458724211345880929827188304937148160344980488202768906277853647181448767257133891878896574549776217914049106411781565925469068689022739862968083537117385915443218416749954368210717831338186484069785092930430373485307526243839384849720803941883928514914656007379361006306528806253689368794418502898181233425094942121701650485585146263461260286857715941736473421073194387858376190672904469847510125231820909853861350111194919434589785113608207307439365362977377151794688838719062591834471410741721168811188981603643814213700636758794251579202063942059354675551708388780533502682340609775795431970131866988546432048344450067936360243001941331961246216842577907850821149170503035851024026500509415817395893037350650947406958957467006757221729385071662909322003528046364376933108461286976778803822690355843295584856917676573084827067974042909586553568654397558068254531749786351004323785211205444559257852481674980741845148632089030172438651308972728758771500241033921593461100515704755049850498713875046760923108832641581255386853083677869302591187648980699112988417324645429873239871545483162288632045345971227046233898250774815546052112031560317457335095159436395712826526289640890453406027752080572297114470359671006618514287110021113611819385864687879478397121974497770331711637307670914875179056422982359864868684021540890136255416594502028660783060660133971971682527854357370380001061156516632799611539250420514221801990395225835953599763728218636377540519881450383692392917369395294562965258777254467462016811977028866151854161007999367378663962897958740494381192467098295032515982202096741329561505608524744005976732975531434868295075268277982306661330874726693009613697155186847078450740663266041859384984849107174678865619956716861745515297345909275340477759153754763498544503884524756035570268312361283081279171152189133289514281080944287550772175265829589682421818856845739215817228758215725028262308724041103588713831814979403148755590514544058942555498484507209472824884513427555762693510267445099022889195376610344620397680256303186128558225731960538743438623210741610466697563467245967311653726861513356813923443256419275000883995995977825748760896947284748405532439147449797144944103709271149502916197587208247635556402363290900162206070085264576251839256746440100091732757291906982023634591666742686069113324985006774208949687259475356039025081448744993939811565555674960666106345713662954141656628629678306247089037839707536365630793080230590983235319570927716366129966897115963152519124259189352447636787253705567358300614626769577264221187860391978225288953390466378622097436080962171012200903569806735221584160205527217448717719315204176607269289031903717644855600030589420453657004146685058113064175565956972975288233845822523723122638748664806505419751856446386909108616180376464802756975408349568908151240750133982688496731666175646342140725757422168221480742299433008885482563608333788330940093259487913713337488972036304834431079205486059538554867012055869864580904606578479235334177470669049262730978012093791608891712221594397502262002372887836251391245915525896252373623358636484689325834813587791357997256998458604146283874790986165635589267107066040014183928023992653647086573189344329111512614428854022159144129621167295554146953871268241883980010034730467446756845546277786065499658586253211160363986737453403686360429009981956189270344445606800187565536978331183585178799959383500606083038333167430448606058344094693694751962981200543214166914295056496714756984216109947642149209923356571789560947211427909109331203058886253834837421503370823676554065895239813124528597725049089449789216433972976298912058148293978285149430851442859646356359886138126104306650372980341392842370183867993731980275615288594449134571386925984185134957477807754472073381448820339634123547126952762279400411072698703915110070975482641244904747332690061067960476200441745680628579250015302211230438288685081615555396993282331214669832054648533602846099377469238180233719964920815583709417704968550192211739108553264518095371595275326768989133173793172102597748292437814376075080390560252037022944801602923438968004759038672747156212368782589600282743875826958816874747466316868634264969476898357223086729951900144248938153376976771314353278058005373933523931599416871244222680434838517097885707474264379794576223562923041094305196407098799480098906180632907594904213774018619844841747008958453254097673004952417503888014357357674743987302175640433911897334797094000407891682662680187336560234272849340801274618077445847469654966899304422902926105005332136203554682056629962515775434842370278272891025627739395698111942089279130048204234993114945322725212820246437193936273935105639396347829559882783081316659175899930413706673054241997389162482444679322710921119977378263722383784109798208950144182895347811480622595043186621415420003857258250085740130996121871270002506146601992540505739618339983240042536026518524314964927589001759935100866115317293542746365306302345547094137634239767564471768032305783589950431835399080519695843650590264993434285925779766696304866099349936365449591925408202203401697094546948408489827218071083655414151242896565604972597321634087557956574861639860224974803502322168940262153199293415535635628456789701406423016812195808442468908375717828177726942164942767924681823996237875113479641491253779664483130875438890213179663262380235796300453200044470475595145514550525372320570408339766770279151714638266500580096646928132651222656708611905224278135334368326468673902550850901388239862411476015853835746063961862821966705679267613796663096189154066176160365583827366020170416565394489867546782812089383397128356472308986114107081478057145837061986560843095373062781599772001491125593432980543672614402780015993732141321327842877873372374344609730360686463241606807314648604001108172537476920785769821032022803735635286447516231394463951275910253510142254280942172699704996695117460910078861312865896136749994079596872299672501384476884854492208880002485135236092455621277744068339000114393369043077337913607725975121384700955898132067753190198701182727573633634012840406086532715167409456264264454456431416500512451887701921801445288948648998307183017919651622265969469582029116841779020733359271024158976684973048559550695791769179624049879635696948392624322709463592447843886848889499267821714161140518371493132116454080696056363647290792501249968421180119935084918197898995809133840398279919224965118895482277291146723817897151536219545226676807200083421727470424971718789428664474624008440094873198760100540567904144652598663143153662821957483457492312643110644568936406906969379052864342249504321070275613567247387932760003655573850718164902151212933377854711682286967478287440107685989428560512069361998461495073641041776741496689632660131463277718390352283775963471266943303249258393737719398495094544581764647143445983726556712463135120458637709584749979595545052579265542490363598453668930269273186011089530749759169065757043420143295184587933751571589286453617031868518941344374583849212095097920988387084585182275377849180281202388877949192192013607346785978198257369178963611681051016614537307285343321247718546130758948571308934670974108216531504793373293415104547738153376899368163013653569882023694586677680081332335532302689745518899561605385150562062465676915307300263066781066029829860101704926099743338525005302126375642827334464571239322688604134653481611045445366173288065026161594437820159060754453155929418282711956706611501048522535872052199021207690520751473135186648343262165460954370775452309800812068438070120487191563205774393430991233502458907948307163520031013841862927272737706483324193072221514743273831807829788899752747235843282487091906276736252774394580660452167951309435261936267455535078483452386790976873020804495747847370057312029583041974578631875202918368395610525002505360641813351308341724825749261764659917812829419108497136424282819857339920190668380077020860264077107306448672134812648274865265249133704460489976051728095850778498744076536961272203062403945431075488293101808821728902901447863247012608422008121390231182078284613297456549956651875726925638552374660521938797318822004180459086078164155255077341437123405042213447386097800751493978767269217277105496896852424856983980138248582280003497389952385171081256692524185274661747929207003511285350868851095701305749633550329712858985085050299773808897552828331339939429611136319729153615864374826015622375542619849848428399272150859939018732950931566202419314449897915779777390986100961159323887820542027652758240542727210922888144928148266770622566068105033418820895094466618953331518223845104754911154176857022939194914750975188893628000997413930419046129380696863207722347835895416986255226828690994745435598552547586520046049837020207486912795228657450488114603988851843700652645265155239591673132627608563114486103594848574200343552543753204960319278547825512490790554475591580340492953446095263046167270530969117123216954686067452644890373465729956658609287918704015544708620409114925179260063438484768841141664857597539117744282169484593607378189351269662957303417743385922952192872507708897558405731621719840085477342420594029548329709659140934448707416472394194536350671668395252328070965983238994776763921355368544320888099689556315923177266647107215800855296490606594801072805492985289530626694387245202648091144546930918869374853888010188930747591080874067837180052348310387349004707774730670866840942123345473694706050971859959355375151225638508729388576384338765693319832090489941999977798061782841817231016713165503017369150001167518762735555627348146439232510404562051879517749799257644870653894901652723826650900883547659380833599182249714489794681430769753491067899155742284594294028017611106873129307165754682289334919168202436432836840171056965360696337371763421134731941488158036313612121889590501280082174659955658203841005460905976177037448399183524847766407949398259623443602694073430365725277080650088797806836495407859632295695939483372634284661375899756503707292731985701920096184252365546192296390860691192889863875148544228057699304576552930744973881096846119807544778951767076687727742237149699347105270197350479131091527895306723154568691861571386243187310663337231426995796803269460424625177597895972936141115397229310169134988904386120520619740722284130088713214082015249998380422436189739871865744468594451295318526155223534090962928574567502878291988517387751029651270783218670831003421202042098178576049146018880125916487080392350852238625183598405304086660209043423363221907479068162600476062484231550929803923663335024108825078551486505708454178103815752016165847472631012912121500278478449372372575310687324123917676449327624747831891278826955160750599015974562426265149636873794767387887889310772437343868651491072054116767248692764585375789683308280905910323238877025586404449885591229192902304732948531121885041416580137961256709058719680903836471398458491061873182416315875195021162282974859704871869327040158537028836754599397953311969903935506255978154318723282060679620603984637864692651094067121524490846483146628154912478992069978295969184341186866396842938743951727156483684398360085641459641775953689019431883252909190764767471711613671524210028633772925240454637126843525984827820575285081323939532198443264421917667530480682152846137645885072804547258116359222403088860292026930685430796044774539193802566405596906439107173880212146938997363822430612801358289185289033631236992764101712876087971011301268512609199478889331372953787483238187909722707197923301417845302861609376318917111159236517311039296046190537384556782047716993645978239022221781725799384654689186956863577516647887110094405810831781500282329962337183421706886840302004684607131992090627192666868716614356447876737937527309738291238106293214535808650843303589933237958906047177711533919437405787233005624678384508466333768866756996193276016857689690258314382235265934311466230376836083385987767871157022005318481663309124764758765223962572018583857280032804602132546238252824041762015648707840669932755762968904682948799023240190641287417915219687800992615348043571147916418099117610920069852760972835946267667509705036029421311505396317348847924999620885531524426939469455862565139740933705886760760461282801960920579804081164779857336133750799247742217772111042311904640385804060467093027995248266602575956380720625425603120130110431156047856750808964733414359708230234274991619577382267685445822346200556445008725884982956766415617027082127726183491667685615906960701033957094185921686660543646772300637679061261513355285915729682651339135607162093654168177403747930528651685972360118790702611405642638826487088333198063419749792475404877493631398868143917553718320727745453843060749204740104514428365347208671530598893225057238393314480039650504157533370217139510554849880516457883189131300170099702021405454577092966217556062253930071736284728919212461695184011596307066400334396908769711813757755147652140085991343814357317689316540910534714445592803807561546646088375916317527934935262358413311925393858777682088666530503150510089406376307834888581284862965899116286314253422685460057313536921118235530360711295207674712660421609239978436365719013453302261221469456545568826271780276192074574643849979599906672836646737897419642213916854320145775411999617235738643350959381708445052382247287029306101888858851778074166317556958402600532972772051423146205857310997667340356732419613716879425265516793525669491853185132865933376929284860617397474175652227716680740574195023081537802519401523674322818212161065975616804343034604933040220617575865035894367815519324916738210573942929066058276330661986760748693764342394251123671981135356729979740667815327040565358055823448347992936428402699437890507955000563599647452390998966461314196829406126577187408431690938843628496892864949146453433835928265906735869079235942853670507233557490921575306461847694014138121565072574673910503541399064942027840819479385731963120791763747613565683035921032013952093446127055169819511461921121363504052775578553765680135516255464459436182126799290426458602372636752989449069093352883776534693796331835836415399368086005762408514943807683492185908640698248791698719247296059798487228407900979517785178404875929194859508367475282392285042147925385524185648365408900223703108827268834142820735262490464199079882835231663576844982654304158123429915982183649431521803786392192123633067127205006014125275932051257346312405683454307737832690377740699847080744300265009350035878495983216515309309055111959243327943812259830848995116369661977769207039172104128186309410258739331338415290311613046501016248049312093889542654205600660119906184011178150351312067799187154250105439378424420411614333415770849566657713697892439872640937553687430008359170289198807554811730121722801310196976561072616092480308676096475828971990366508971784744099194396046975598637156354105627285787806445107887359883352681964767981013459976498886311103821113990027669337962395239579085568719069742941027741037250927063149944244989758298595562040850997629078026121237866571634067828689953292815079306098661424117615289130422928602746217724014202887554326156968887794442030287913625791598569473773004599157140837137266521945401472320160145953978196395732747089524382973871807289315315684038014363457772575747864653451219635996784095505231935232575731532293796178653616329695348237931299757881149823621675343385601912533564148128904625027563751972827429765005004828405766155885601440581074831468956703630405453210270169735014895155135759129669891139177673460165319897635553680523681110743609830617249833189170911706979650824291806785872887004179963906995871770316427005325581756617273016593619529176504459889573891614559673314890019013604010318507949196332972140848378040648217495540598740524227819160685912762195772444407943189703570334813982278247521457213706792319292798223662089101384894872894236087714461486568104582252487751725918035336106332861240337695893494281366286804532854947996062390490048189019834246721278036396949629226293189141874196826670279328244978749100450779472278696560956410892701164505003757772980421828948921306483641777307717944246352764283429322968873140516299236424010373652506587967545015248929947995367436177538113615695818561509755347554449944207843151531501927924510798583481007537605739898543431467157515772442756733707687852894956388266893283371331139475770975921088221562188107749972464712770640948780797859435995190961421453262337855150538970610930677331803556553623342908373405116037916264642558193384481189824824034965220126964806064418048579576960185775865978260458218173906115224197071146391115394296019680533517439634491574700658147715092284635464910219085667700076622913974215264522702148387882456894905914357017559561378707096523905407518586017138423279067600481453809469223247553317298267992992297999750690915874059208366082676321917436961099747023625704350081296055771875443713796163653615555882492551685939076558130930682153630970273850399900341086759008972498433442449239641891395488783704759221361609452819645432192698937714740871062366786545705427681578346607399806269390045022789456254251367452449593073663201817417139211288080473686309611868240383241050902200124772365008724264896447539428068958432402936193856684590097561024177941896504217130786918781104684980610072745150962468956147062790041991645149267570119874934602471811888582081745637624998037051787263667898233505264408270663394149786935698579707307559947211473081370313066192166515974684309033917628213298650167260484774938080949188145735840890964406070577562937392988291500869443797767268218410712705585271682472577065625956632292972909425815140208468342712836453035139857855236890626900735506543729240898194038689554062728335270988324395786092800355368127406538577155375210976583508087088653468166611620531455704137671847690561188675752281261835587169869436944228782063322571321385799375644631278759993292091600911815944768809884919315415747708159583926003821396180312920033523345861616543245428079110736615099652291716185803360172199022093990334179808067882702799669136136253848946721692779314791920109755499233667461710587819854903252939601322652521523123778042078020963540941706584154596388706098663920390554401651702665380921010184336501897627465310631098512185096735818385368075713494054559459231654489930824281085767523705812430354600649404894077735072958858124471744563119753578346282820942043987304909700083778776611630386423203320487954000428544181438322582124709297930598094719471496244278434269209317660704132981914632200746372649923646695924005537279664194523978385091608890057352536508581595529586255983681113809997792020145845138780647621611278277974398035932690937793291886914709472504388054125520158660029564926585039173897021930848413906239756660207097358568538307233633006245678200365704161014972006218446275537962009417424224379028871843583353703207367809631332715092447441006125600919192193432567040803366562253810883017717633106881520198671051473224956167106014812747627692399204828057242138005564192679564026487898153822338870236658660425607846870022387710136827034291436591347530380750247565067555295051949895402488598605600504925446723991833427624186457607757910736650622838482196457568383072144241866876449316173941414953431788938252761380979160579263305268932320604924968243164939046475245558901409339866244303610360847540425555005855372498548556690674822796587729707460649329773803710423482147641955423045254737676872170429645348565579417861977669331496757532655343304128151299460111669634504048347873446358880612491993895156860476669845277966738575717160209097639336001774473440398112048968414845873059405080683259909838733095430182182551333080082418653473668334459970404363924401431160369379014858486410339769529245009051280544671430778529412618200650178062044320888077909149390220066014625974619803431230554772908779448790223539424322430032590266662387670123972626547091336962519510853615998196319289598398584599457341378401081929838316444850986458029528678384866767043069971070095148436954473828872334346162291819792370823407741854833553133632961694308484713266083732547631539102493730273698928836489885154823708937853312532907363747759565503482225081461529066880370628131663205495847707388981818579827617644426195647974313082937760103530596374784885626131414497262397785375909120334194289156061257146715992714027942540009199579413844726245048302944773860095238526721252259085276631086248535732943597986659984555310395765396767769136029294795805467116181822570435486479931865665760454421067956277715620328377417009159777362259608705995401622433308535618781339860568424607716741398203004065640996482398671432459812182274681553902647047723447617751047416068316062759259586670105278736626377143361071270939861089975424437383644130577441196751684630612073622063055480194954546911192700112431815050205789626117645893348682805628260709881203264843112245570284541367922358985339092995535631114535299262128130115905190588466174794832939942451913787985450801930330202592446336963002038315705044411938412214491693681322768753608283993860145683149054169131890399206439724388721404897554256416571266118032038606314239686364021429775062525657333108339978804166479915743361328179001356154060405384655469092649506568779328084589123561445919795782639855354782506801591626522885181933209609276860635930455894388270642564474245852690565237061181359644757959336728943349965796609763853767912745539893204975410849372516301640282793275439195982501923918840225739808119264067286871098334712844543829448925092124266845081472045498951142441934854931431579721496782152950490069546222484685389496197920874227102847819791937564428121936626533983934720862060737551258140301340749667579051257771313014084664710282699123888597190603010397083236357029453756480423032907619954591591065871771459913857944203651887686895569460827101487889859899826999082792988802556689622957294322886381871871516097637819971288625475302767998792857313180779552714860946914839525044201763171101908683039929833641346830236745534923643076637434407488432284925647512670636569516629194754490674287055653156797393763478652994583384490742086246722317067700512497589348212208026121654906511147065506321809657805793146384058748632261167947299702821342250429892786253659799711095555460434155877629824703188813154293924593066288813080359001796571384714941244801720622418860881252690270247304237645248132152823495216686418550724000866027030598903541167094224066650762003229447186946379334003697668237046413468175679416281515397924122160408750264968481658461449865275753584515180929531700855729361965198761521886239420650274745814883416956371373350618036298344948730121674735154860597305655212536564461217511191571138283461473660282566672634948201397199497659745353212131369880864571643874219409288108962685463780241226867532987497335943387378961769719603233227363770847366706457801767031546783062545388874153886224990780565343972367591281440275589928542890709039718212501554298510375469626323184215798118215871656519636962458471672061502677787390638847873179646164132146753927652062650072060524948520063212930308945286297382201878580020701952007318974553662429094180689270061279999765860168792484786821468155062459342446449694821712906801364988409006974996370071263822926800714576797527973952197299229734191926757434247617399692825314394580311749650179581599404032587078125846225821460391728471811984277647827139903054480277303745873126610564724917886281236244526924961732727688439322971646110280642234453879461715821009244890499727398103397106906932568987217936345716313097723219146208285903295255496605696079982751030928704883787904662208208573536410341012156394532185426874836736803343977997384492480869009471571697622169355828585370894160924299655234274806645626874697931108831377244383384877777347309160350341691698201263625912928966319555281729252528088108298768875829088792730876633687176414836397867608594776611972083056816628952369248366959919986250968895128138439010766956038640873381035985542907018785275085825043984210656853524677578186404240872883767116779063218085067789031576860574389459404633423947032521706013233814431759202572719994305068143116223179860990379092491538979453926817934232418811016820243109608184298037797319046661773572694769984474202349826970356702392976298656719416391918628826607886562838587706928491054824627881194403560622798357123993342403758019461643115140111766173242705177167240168505020826155490708822373962418839608753637962092120961947905181606022865588515992066186605602875367702569620198053864394295141624814279785141476287692584513222106968490513652749971883025454476358989601885716555919515080642670521470847049566487259178020868303606812405567625296038298547809630878607820135800995900641415752143584110870483084602484007979697004029452690795383496475053983737951940385032531897854372751086397599888451634169908865599627128662750546531606593672117851833888260728865664510638814150807907953182500236199227707895817199809171917921433048348099603453853739904824902841301298515810735491265060383629483449288525235806451603262034339365727602064949793211994749216082426277307237750349231335086997443136084504925291114850957241085165814772870061466164554723596863209655625971207733577704150070118233877849810722288788617471994353281423464293488747149913103903360823466908489207316203666406889588891268170381450485766668829429848995005073366616458803574830076997901963735741282261745345616010321560784576021961574279704949107021298257527392631451987440869819236286491146692330003934526219288388809786992362422246873380958347767729529448799223944969463621023098251297804531462209113042578538551197265151975404942332102174116722066180454083432150245700134234246079234984795224723174167921555611715042529719310280316670232152600134789857402551077545139556621519750803169626562860531624967563603772382431873894457349694753518985346430025706720453861833985581227693653783655514116801124860372436609127182804771462091236204649545651777346693386301964158964526724608988106990948347544264719625718520636984162507961449925946366477675444658852193275972938079994123014476466981105372339483324134876096604418922780121929374613228242408819317756062447185736094397706952167012055053284020655322869603284599906836526641002926491835372688793430628664981183295258115802027417589603319821565458908923397406176833408539086853149910547039799045106528523459242603509026032307001375278789180517341650741877852088998138893159389693027896802508888643216423546954401178907379446505334479834308147861508328636021856760941221072548874826227713043724578849606491739278136556422217538483391032706934167204761469185449373835593914599147155208674643882604091755942947552337853353254633195524934765357605634522990267646072780595867474394320302564406337254875276722298455687657615085601131858717343836753017173213903965095218951538662712492912978345734353487193645978080965182275809551541024672032457217950032917682415914423757010302146643091625549527567244761770087553951478014581731285176650156917343179100741702545912132170877111004837279658017347239822482030576317892104812039293485306399050828002365139893518690027262790099973075339180870899602543854255476703205431305026597094765644964119812473544980936086566115887683946794057127648822317110610767746475988533070687622494854155735524042173002133059270664313200911425728165499127617527484977578655843919952240687741437358112073774508971147542600045299743025937335347796196584358957757620885423750531608094449014072233650133267832697978352343050409748945263181969004337250157435719646035458561743103128626420479446740393036798407117855655216456493121213278683617573381064320523070565356261866626990506365859327145818799956740147455896187969454889308727663254486378315429958634956187898313745196913517465496542336085107254520213137374818675236829928502338811756145361260444249278835826389525072994286475494294668334204594912384075679252345094468232097466592071475479362841736919747120897610105616426233755198990555835159301312456689533093491941802675622945399824437668182815643716839813834621632590742536352709964525808121982322019760282185017372025117690153818217923674205136651693718836426536339839118263505481925726987991167374066422921785157289730841005118545545366879471084633150125684915448987445586871489367380397053304705131875754652492224307422672310072065827234942294398353391261460631074530144121903681479557621426118730947999697727287519842381999816576052070817587932716796367757895418505279171285355983369500764404537807241909563814550158525376999440438545146592404546490788714271015923013066103269784298892396096608097276040726584872914570048186804282007956139226809401618783718355742279354189772791166168647994574011792929171190770715591820690519715092433082514648596108909260731559804684470186101808080551742863555938643019658985194638622001990250989322191721279140319517634502722401754591455491290782939857092185021929652030926494576523564124677271953241418491077860552625240989792877583793735702872691252557349143468864018925258216349584314158906653316066026183127083349645605792874275121418603128143307258114805686179267799885138776930987278889429710437779396439399162777593095266099777801687265011933587857117712174013982239039109787857736323859710298073186938368690669992998212908978416225178735480333743607884079394654083526331944063864055623430327344059342298923559681719599782606800029338912475119110147051385973878452825910522739372277708385007074918042857761945035648021173229810650924745755676251285891904891077549778079467249851128755485695015028704780158320552575540172466492408945882719798799549330498340394238775772241471581926409860050660250452742714763205761391319856770696851121601310426685917525452858575556273159629816733286642320602478378313027210508484411617653234331658470946226968366555351295879395656351503698647125027526220236659193179765203317234079679988755713467333629043348313128455716050379164965349183817185531870085213639071809031034503402654043783296022693031790379464274671628526322554085236726725702518619606649915612637714015159484486017540699318902201010752820488869900347012179820672727384339204293508879468865251631099809125284762689367029924236465035104997986268622088272093584894769801729289610740349417035480827305966736854876082987613898349931539995087126814563520376231919337182567000005814685025622149661290899155242916798090377319565891797561167262344690996910199870017228025590891093486906525995221711879627887340664516752637767217330251322267489867440403317424905709338069754329266970937844373803102576229981190485626356120173008341972047285695219924727367106809004949679020679115760972373565055006126122327864234259551037016445270228872010340490230351687073621187688568424299479028651955262039447261177465672171398906615342490243016622545741042724738965881553627074346229188054270239849266966036942355005828778890077460153457738109470610842276968533007621036792022095614620713990799179148131749934111962131999130662610045934442414656876075770158914194276504372840648564389969493429483486953884980176342380791227259789401238625402008893840952558569419156872723597652263109790316225822355802942566831586495113731278017469143432280962463364455689316982188650598676872598672861325587558772087352395801519695183361281758302361452393004763451107664952689046406517994651420523942257845161959190005612721276427688115920773090269828468609708926290768735817125557469423573795362934609286778090088862809605419484009339002366611783025472091261620969234480530561318349925669980431258441979648516922362239414216867218730096685863024731998997560092962639951440817102529973977248734207056149223365110346290693834287142561929513729047248145055271202236619647875205555847448383516753301021176827384398273709283070689141425074871697712936992949588131615038267881873453067128121172167692524720055179563421820096101505152276319128557485600785501840097025562531482322153616737835630151750120039432348084323109533037706568078527328835666558443785575296326475315825591227542740807920164099729337682282240032204516712244286982837122727620588634426473061595364385261175815031077287858996592901223511826567336088083643492697402424202847841731745156592292595553909122713258869397803864236456368548963903614156918752075155303837680761748089854274197897418538407264583402091949077563772131650769480564435444777922565553360587273664696669650078852083156144678668451676654306338848252037638831878298400095310177441821810604340047170945835970141035410720140120787740667166513399908097014977126380184456828125894881359090935650981642073247959016016542047669792055122937743198858057292489084030616743419541811829176338597516951507094964803756942824691720452740989170521974770101577909580837173619119694983825194801508107670245903883946988812442850985998805251006362431804633632654712398046516241981652222641213831291659320550673239348227966427204052960914139126304020237704821499769364352514456640510471348419002939364537617991069199962382795915249407548091531653415745605168162013486329928642234772702003190622726879411602242932202945379199967486178540575682818496921688332879421509566729155444813411191752283075906136525169653430534171040249878026170524815933770697364903726209906459087778598340283441042289243618093214230224293842893554222037922743878502839174407416438968680522079474484934605191859807919321772301037106167904004260502317920790119143762502628666685397099218585022594451774142602785598568181150103397072416203164969808355448324825693901492998718899190861354996386434112057770306229334741925100057529869330845484532774939399635705413464598684642107494300205456626869896812801121116208407080888515255121973632520185320122862538335293936238717807753062366763193782512937075098937372879504944059400291674998784731789952672365838900936927877893112391974666860012937075665994374474032451581456367412680866404258109848988722264021285719415674323522083451481727239442780152409167862285483278695936273613733067269557337554418481082277867369839468666553934374608869171703737343125956831276364101895575536787231903905628820004355982409544170927938303889482943202061564321265940607243371851710701390109310711288761190811430415603172806623893448461325996115028505216176044845209443515725636920022026455849093374081201891877159376351776362398065400748926300138982768449493678796945821479973913938882374773499947749128342020235876067042268732226818746151066866929749037027230843766480656420512212656709506226857508996464481815567534885587683459429664335959051951329130438770002580567010517271506124338961611703509180573890715762595205102722868328405817695456131493145238382570911752041508267457000577613059984986240662191209039663489379461112728286490324926277152566461745397450675553694556231077703644448451558648311741044326453312919780380336966533020079889190694319466783316294946844049091437039184607517303572974696734402956733181124392335384173851949411550152248478027559670792582462255296498170756070086453474682450069892864863226860899197670288259308208786039853039431613131987695677456260999790134530138190721127112615683474986733043179654403547099891462568232425567790416683485430775497554926624282125179849820658235776557122909151464147773397478086887088457559598257460365863971439419857826494414348364922910467443205063862216457345203640547631732966664915121865148292602937359811044355179704286307228838414699578000902852929723231254142968584765289079681930750287332622697813790480619381581231418080110529020001839777849937560897541005290612331142176900728992960200156176585311694465914731387392166926679936333917805800765249439434493831891587539460241368838011669788120980996145991301883952702230063486316469629600958411904572868500777400679644523457441050256876328799252590558976817294388531196354658007192927446207712624736275424713567558295813548794945014257542457258926213875038347007514230560055520049524315677172650348541669574099977361714231753051946960063253456724710961281244066265887554225086612606901901178789845336312150455011587223925186338693431127385915416286301814867321930021874010298167627048265759679538652368245447633331005869953043370379351319599233845468545719806259908051738327628381840201933240337635992590689741651573268252240769642607749058594571034625247852278066405826506204912329897699174057243032372311536524179999697109801257524684537003049424634819692402789323540428105448337977279175502510849015656535711155124608966303563694905297171137755854226280602518103166115706411694989204291826660223695608798659170283949561742577975934096997073488659688140619031258940650481183039654414324277331652883250258508184791185409021499370191756021575238305670536117839903101714843381245964911024149755070347436605541927506018270221534532716734016702268734030790751782818291324813483805439828735607588482184009923784403226997450487585709013795878005282637550488564330064366450805191914423853352331046799232982060199786954880134152179365102754035302302507348339563363542699601014927537405684823617681879494946728605088318591070227980742180982912869924880303304404633730387514719436512618298611635147052556378564255627140255255779640168838675938825359892514464946894559908435632325338401065700258126618079319385567499340138302673476354921781090513599497360015859611568946547786688043799757483275610688698993504158735569613508038033385868996328281470721284275214027525639287302145544848067604102916673759712062032544045105525897163003866331861284119942048573876182527014260477982096707951563551303421083827074850558528711144511370598552256823755624942503036469518230992070066910857789649589281327582129138903362371272831772055370129485243292877901451304805371362931953871718976056274549262788423245734767692139726241006010999493784764539905100360303443996786553774664310101381715371453852341151997342049768334333618502989164578093239804893102634246280797210068988042497698846915375457253515616987287955559918060126549313811095197885495212376963772111175974906143499361478699102085458748858658959870006716501872721134991591257315164472788349509059200712264026007706873022077808827847639152120837657910231432551707114036516082257809558204476319135020831105015866933455227945700730668297533277294160833420718730228986468770589874484396322457641150892407299387913643175275806058768094276778786467015560912818377800381800883324798200291597408009273522670652503837638674370735541051265203992067609205802257228228077774393234849259568650590648263041946618582446038819800372475021557186859266916610993773070806966444650726313847329180645037186716174503147293434668489291874864930362346716683356462339799009004752847045561753748367410134986063158263807599309650576005002438974646033408991835879607272670115211432986931206753957135881661670024265763718428502562787295763026014799257630129897250302339944843821314603476717668154891958673754196041792984777817402743608786521572716569695924648340411262338164576744202543697399668610976481059147902488224760044722665695890927659625776909221388977214481857993303429567481491068471550585124964940117945007703618800468079038386990130682446848802415936502348292590092954774103900878430965726335553393569983272153848575863860200163256204681393985681250250329795592421958591167775207047102778607837624040825473974799022072605855056666587079242340708194492235059536996547951234678025820368269343818279616078295163928686907092677521981807044237260870620992434108971551679272388150925869044967587286573697714487729833116521083338076378747833674860105276592648705213941597825520064928613439431232851055126987869624871256927816748424613027002686808605330796059438634233531043139001576084834713007035659787054276576073703247342083034168207472329678874366000406391741380772077769348666603271357065034525676917837705761434882883065212691654049487510133834494310829392474123500660829917949164308451952372214050163365945992101794721784817061949312797924588244124064777573263988471273897766493680706810338755190670747404758394430866316785185467355993270915518520181439905872366609967795452652464615146698920560255653221004961748683181445761077838570863225783996632523053491003848608773715873394745380938532737478588926164543617879666443132309529644141626226172921872632490344518998655453938781478597555543258828629492567539802882848258069145254431413577779452611689417579840457906767624823649070244370147399970628316887323786354586348924624147047238411021340082123176135223147867935979268549505454740032649337176998902703924535214211700409690424564687534059961582952367554737904493261816767117106170619848546775613681330718291676727918887860814489942449084501559897439506287013772973938206127645749189150080667858869344229526148963654555336614732995441139397115601926857652800700689572065162116220251886828860826476354355214630194593655823663199569582021796225319238918396941247678136275458842967801944396087867924692549625692217422857013959330338607121561725332195707195671674770653304856698166122280020531681648113037691164930943980961835031627746052947357897882631446996957009343392645014337665730218929552696678632491975787205938464600122301321859760642271491101553733274428318257799450001068223435119794487604962454242845958455968170807528897307904120427453399164995544158967629191184860117540035644212444301280766927273838275014923220321387214497763271427518994536418269942398700917894674175418494158592622001947658204340608137663536334382242564817066520131792669005669661893437227167353689130994136524316211404202242107164708290920848800605360314152984417386276642235398064316639723194072836347092324438359189648198530156391701040575315434226206108543828681294829235610337667997678341762425489166413622050905864224875724668959300000386185798723619716023910849077265482192648678563669709175894852766304808046900618838207232553700039995346683611858096699905286918317823263771730781501811995383547174812951954729654010443177841222954799000474134054116672278317792356218232392604023752225198713073830701961352759651775294133980260919564584162154028013871395663975307844096229571273291939017855830346636259663481596767090532642806963636887707787494113729987230769526785804023867944394239389436706289578363172551795908956982352675717678790903884813076277103256395461440929633778852860729175584722843957109845977761099011771545923772630200597515451521272762776661872463643554464026156607482382157836624217520984640587333781314135410023827938384168274964757120251890003373698691133296907928879074761034169758333308239821043777315514797309786371489476463511241550716860382740072834587614112016505886724432749124577845177972309631915911515557934133349457884433511589887786052765682363059070840607842136355562049971369785984908029519982800294604440222793868293933448460570665934056087354457493293178936225929067514627727830002030976279710712390438067606277762620253807675106956248935665963228014620439000823704227452580860534939138702151861732829037803640267797475804008931254074007380152492966528092797789863351973947118064423592471113027425499119547274634426507969082224857895856726744378891774631036194824708412382585879062038523420184870652092456586087406246943015011271353159153737477817038980060654731896981393976071486341849855778624602498700782730236899591601917907776778517749521022602156503805380291343525896695684381594138495769262455643658673393538054574241157763813517589461846328538553847524368689187917999893386215354753723300927830075239529540652147615485173091721627108863397499449124816210369944879411691471883145131683730910543330377619404536649034645187754902337965358567760702188566176507549230573589530561026197397085901675158248977933804006870278315319706402105898398876898496601180619896344436250788604572045676670751578994149686933301655746139319251090200577025377025643144814478766672989246801827364976335778440796437706680379455546000101045448344802039889817364884697742786891882083514052644199515399236357452522665840883891471497468155321732138903109139440770814401983759867768807933113452989117480085371684292240953902876148763224556708071364415287267627450890596396795422266332562748440260437008110787798468325735148177022345136517395460990908180422188903811490072514942492778612916847557518412037918331357941936289385815685259573369551269490753979584775534113592657798776574890446215161145357350755524613678203571414185558008279227996168925235939276795907420867378332213526474979984020774517074565168361979637157321280820908379041715606515066116670398427739723471359557112256300984147569224402399459019676043487072663054491896978115766473473040513571670797523803293559056096472116258846355421261071881859257298996681735953203351705198625196902343307881975847493854541720831610027176909613369168988760925977372764483277501605631413191144695664440447861122419222174315901576904941739478530231629763211162215654698723455975756278384899732272019678651712902340229904261240866908377366143429592001004408862932729264396889869120028670364529045798619283177612938700489061478644957217373633695464931093888426895549338825411740380053428213911989925458854071704060507280829190503349216743088307847301256561477471640835141133880569527476314002705214607347719450079942075653013057553801875082669661077054459374999078433393445668514315095081470805326165882432809927324521491635140953894222479738430739226903914133920897879396017291158176232267397584706673915614480833803082354900084439062256595479565694533188872125371013836239985847641024623742923601978265952663113100727713920216566602041002047308356604865311203185911217832325915952984266659920824000262615012628983770864471111871491111255468352050375428503620280430589060662410598849128179265737533976276066313754889249567355170750181296534640765732601318234262825189771231437673933944405746006254431029639535904587464143751724749182317255398617376584788805750855132309289095159818861318767318064247380033960674220336484675368068094237173349886504837656905293019342695400913158736193534402377105470362918194072222815802833354975843537436197455776759311522310747564661748205944502105581430119838442337141097717584582327282114511815656682869750138183152841334109504269941318155475654454238537037761118242569933868627797017650308485120509507758162535034564720292441016619881835696352973228431371637170840387479135277800573085991759213437804084851545794443124895468014588476690420533335379768000635069862184746673313751366438795246239486655232147062464103618146039534933772336186580815818819480800011984636480290501077185331531262435315943595785597480457699843000589999428674146308410900199880190858906146467489282180148439460371342728160723258655843821818203227799495377949705906701052779550914987217770544338738413095797533211387802690283803241435683250927835127074544143604345206196900912355283974520646299872046052812884565562569802312996345969434142752915170448540193751225055075550006556539535737396655346540226806808718468092839606916438256469338005375788653306515495480191847675931139672466008825241297143293947618725269633516327678817816131147980642757017998695755123522721686426110185108265244631867930304443342777710359524763744542287420842933287042045136483233043396122914381442843443843494600487828202254745150567866347959515966942657204779509878326791088042316419328001466827777249348738696158520803060257100466740735327187674662402123230040688839652328073121721518549173662556028926843435076884119057019128167645880635977951212400902094259008291155672909544425567079888925141944606310255878018763505013853537952453255887841016712029519173226377783939307739877186430799022383812151326427586981884482277050004472289972668420003794785706991433576722600018173037732259871512549944880295042043164245990450181063371630698753731709647254550177125815688940844177850345398000096903846573327007486018467307001297428319892486751213648291019914705973887053183498206495011281046492095949462073590318677068132047165828422121392384410820464845693899297454059477240172283156179543345433882871948916544158983161149438800889158003377487134715256122162375739770808215144459040942069793626207832890036413812532578724860115618134773999464239670309233960397369462005158357105645147192945688081195121878034700842305272474569556402968934605484559150819825393180653228979826058515798177019302675246876548510215908039712279975764272588761773626230363666506506959533998481590534362194233562802890605851360421029146915752467778798748821122691165774671941887174412201473941119978507352001591860191234581329439547735933256530547521243945345431908774680006014287591584339517858573931606953020540750548334680687379773160696522809781744910820261222659669219191612852723861083430891219624043699244839615948485835785773668523144473142522150322791913300832835989978052504815936286885838930182172102529561288394975564484106857507316285410685341639485740421703674180328059533799595218965275000916012862397812055683274168884285888498357751584803054893588919728465087450441846424713135135737728939009238246577440759098995298486589309023231578194240176274728203754117128198890029895364321751641331400436905544183462462107588927801442285376821087459601480571218788252567619706282733087024186380497570306412688713282404804531600433778694227124247059376507784053696476432825242125954061926158760217627471835373728479253965504601205962714342992879039037422677244721982000311320359624409063652817442678992258346968208195831919925398877636417595648199673384195223095757759390945479547887327918797550691359602691342005920626566616924858328794245628479485047238734888789680269663088429634532187179005319003537618057138180282120855757767814686297892533867218566316519178712332643821217308384282364844973285707910577599122252922728846054432016419694066205690044243223675955703944577926348577852897892175950956926210057704530739589315375406191378936417246556839005789729054386607892622409725244208426421656068722310278591211617754203398205245421829983782961147248694985123962316839913424554532524686775437636387909967718344550685372460855421798656780211147756088844366443735869174836067922275673008669306484723038005498748730187752532243691667565346862467861545358847588471240237398151983448561937384794280084329695267077650514937373280096918402486707151372137279442830447156054925249377669639829493670958397808579913261197416850739642849869699205551759209973358935103728696053838896705871558211575115307815161820354567320342288677466311231006395087853316414847228628553758902302806797733513388882726984784737412939437919679950754686577298046043688766925966807081249133079351840971650326271215317124999266776133810173961813939984903589200512433335636805790340724039559689542942039747835948678174645761229243318589140496871958398693149488710220231700980821974416047605043658561272485457993856586328419499885429889723258148797171969439372115338428876628853542352826560431604587684748615533815903336330479777715358063797111483701813199643278804349196624873182875357392764160592454228216177715706938769702998040196411176229381374385909450601279415499270495194695947937784478247200526082763549598560067801099995728658911109858088325170838623331830269207084413377502827284856637704874603248926112408959320580204532988393314981405067198376575880533091153305807150073984739016401037011757612237083157540843394459950331857178038510757947791700278813509377847992576875568070024925399773768014698493566488028616984757415240647154262451858375761719586078745022417398176923738817442191987353407473589224876803948841138278727634720439425505147293285885788180992757088614657487002726221569592119213600300642094795947053788394905572699122966201636522654710496351911374101297609308615187302670205579822488444875367067026401587299678050342226686289183927412221435000567110323514381920587844610223064533396492436421349403929936185555960848729307135345098267032860130986997175270680138305780870824694853000565873971709236753845531272910358568718267263926222390623939399125780267716088689104903582598084961636326694118591291066572554324490857171599063895747809124890414632191674762520962823891749821011719411524755566828919207200167492542547100239851335421240031187472701192830747190963743000651171470342269442219848371885782503770909767150644393180608351539055421386439360394311334097000453097927421279864143999714880945320919850462423062713521743367778275139739422346495449140563340168686387963927359086176648505255029004086043768853201559972185527793886236591879380431117397805697211896867170586575378378284324437953756375812975258930661511846726252078892287725068837400639181073545161718290153997173774634519636122849505845814201313236658007344914006148264692719267837495298089580469419931685760039511901079542328067411076013231084458757690801527166953765717443040303210330429927579672022320707876257703480988016709023522983339799682743887310793618337269480411858152816567914412715865512764181986592462363782872469704645887089733247527810991995438443213348228693993967207799718461255920787141421202542062502659031014715814905682057970535205349617770379930292964815880056705113758284072468966959565477410077848588627342158724967870057716340166597649523763987088094303054621350484959027675554741664913596636712981078948869454928551244209731336108511651923861401225550895108595193812085535274043065883494326179687076603724951564755789491303522412987591984008656590738877843578642856572011923753514302226778877092697886608231702800821359653923709340606415028917066184068003815521942946680096374365882445572940437100135691631386139626845081134799123676413193539449694460234477278564205872449507293428025225108459714686525074201626680158533817225835557729158484888425550897260448872727051738900144804024629951485660479077777545720217247371745357525143313215544991856343775493181057972618560256002426860232449248009579102733676690322207156951503026787814982118262621869146575177790720452052398318231866478973897078341834112174343555104281281310480520258075913931362472432427081806103902742207657870978474275153700848342012208383642652666026929152655226510054182973382797590379615499001869934429436265906463263164961710322045564061315845630886902472121229988006808100801656442297508462243809486556648845920592493438918470794035546131343232647472888990086556929975921330605906103567823576518490506562460597978092197502499261579495105963782367356963934181729031875642277782178753575119202212605966350441384609930627161231062050515585241330995675469774171021104524739486900024434776663224768290224145162591459788195864454413190833837588092129656606007103258124686851687132654977273421009230963110453054105901914843263325228382854391711667367293608417627210899893810748270082100790891843878509645083086855991261807039565432618175595282474303710667863570086378616099332527545725636785686651633331529363719157940921291721591025001196037272228447888590030027553309138365716918770870314162986787972056583650626910793457111129957700959330452583908412791666974767806461613044734428215645753853066525101667184181121667751683923795697762026295134604467631517959782850040572483501515955194926359897681142648751801360869903357681659435239772787358874522028069050105392878460032238850939360884396969684947132021193668157711821036701370018616241226686341485354397665750627402878410486713261656815831301042433902787714996307097627978103481584832816158428011334700494272910380314189554956681534107681517830689036442673930381788693293434869900286957565332187409382978278889198138999935599298251979575340266929620932075012496390039275949214488819212564465063219238878755122933875647132184577044688773908578549011827221131103223688462096648213358714133883164553758321943690244066065354175008218785474437760265079464211724832575685117938719726254569133172070697348967010850558413272333550141113589637111747955775666670026786942607951604929614058380897456599298209380500728263323760649062929713949598693206113181746041120775534976172402195825011340924417881883303229105583868263363137998195061572843294674248304186691578003466625128540065640679160761731848273640556790698385671951521408754341693467350984821595193336489135428639972536358283244307163540505486152982655860164639811122361063849356494643779610777242073572085175699367254021069643709399931166797847994263066831780583799005560274916204968486079786329576832785842958175332072714798932729040941217765270801805327100124543503587462112653921080765737368292367723599982641674235537767998676962381558804333540984353679937970170269149799792077581004340206289707227459003039944402552718083839099543481724716631323979464206954321353028680293562413568358719823123970292832368543925039835114914082927408735114142073354304024688765109737964725090209438136542129851866422916955660514858703868827763798217906409110222619303002240222721364280502458938152245649319973772759702372532503905465358649718991923356364881999865799832681518480340957952230011743593845746016623365361928393313587057433186245834911817693165750511288507766862143893592734422317955782983371011062484190218199405789873718010767525574416911655261066394344499305990359236378605233418038516843941484980001589823900273130881649966110232513888958455212035600497151244906120838292184011138980543078527057640839354370621281468486864106871404079388608880023313767695253262399357701572723706710546470075055983647373839301101144616279819192393516365451787854931738623438514247088074608880783582792150277829154889237365012805107668401780672974379978590639889581024105385957430534071601781895632301789599696462404895670219296693335720231247506338900895137041070635029100285741230173364890075403983511458616740590506098853158122670175008295948560553936997525124747760164682479714805173299464926606911961409004026429622243973342259989681768519663688983964539329328530848869522534878020625257658416686042728361698521145022111991964457929335940488409874190022952666107787113627030556131062120041299434321610015878928749445915973471644917394622214549008605546669079217311691515671281030579014513469159379780814040598447470630203142366265617766193742980504970161810692584471921607003206159897819245196384402637479102396129535508901241059282775326188361572417838482748961529502210065914824446349910841822410535100770421911604439758958955180889918791678462190810254491688967227122986901396543248190780391954203416616170542097346619262538016932022470542198413227531897156520630928820129388346750244161388599931998102237314149879199390156146377667099920359600439668609146999113238641223521728346782629382955492691558240164210938198620354282737794925607463782341389697816563316823977975210361275032142953583156973340722791359586994401015960239674413877470433101576877099760458548916548852023954624426147888924048774951824384469500494558544827264644960594919905882817601862860774986742588628777215654698366433881628063415108641750452211704201785260508816749887281201280613863863107716958642677820268727129899740249623302698437169348537133928943996142238571854703600555280286039356229521169099210570930187156849715533378631084590335485145852593583046358949135737202833691571298360725516519261132563187055146373246698459876171342462211388944637966570942688658356572081047816459115698337101841231430645164695848203813370601860427146978726379784477037641063186387765979871841322206748517923923641713561804683704087738289080650996396065281601658394635452015748083981873883153222154033947495284597123691144930968405489358485960269041210369766222097580970717626470300733888161395706890949446135786110317998063385337872311885004231802450543445709055699508548055765613970249256534651741288437974043155918726685197376020930034842555662069867208796482987913397737964484605368060359361569008572042325608851764902865532961865182245726291376422854050584501231309721836772578479632334334196437262849760798346910311602235284901839999840220711838204225953880750121582545264881425830853621612841291144910427975169076157111029532649191416564547869935918743829129446536561561113524936190742810762416443394900842947027509722103947150773824191221739179622283015799718532081868640832087148254940252622681503254715201208866679043513782419248342653051092288011302513139978328090150135302215010263462721616418441919958039484953698318817434481469214634667351420069503965457189935623978746702057642146288689366220601459977872759572204874750565035378088964623001196699543243484837704032366547791962116563296019361456727670896144292082290019658217411309271039135228864150478438926355040796659018200138830295296679915410135072697473202957857647429536221243396629616831936893164843143350165925477767686048669116328576581488486327918005872893323826902303781160308513096246236782609447741276143080882061175985391710989770780830890557738414835133481672626365508224486373299486943028291074693084909791965102690287603175193212144418799737318765287818131794218265702399558302983946190009558112723526113016284000046384664263400518066606169946909951387386708156719958785488340550906807859599203916884845788568136259653304783294743847922741524669262216968048287328478867068094763565192798602071624255372143672889910447998377615704165815174333975244714448031615624642915334425692996733996280635526909596981901500088713031536682834993603967248863863305463876472063148814270260920967357504640717170530816680062122701656060927370655642699766539827951844997666943906843870184213627652859807507864020524604083791466427923404897943193512617387221244297147600564854528660590312283145589256849288180297229000068311922221765145524411141329838457937740972955323280974399323311679622898418294011327881258137968331086948492817581539218966588990607904973784944997103071452963812021045376232101824607601151832819085848292513856794557257838236243121040737612810792883562579985406252986336913434150504301832041195298653244028201062264632089402287622475828204672193377418081571460386111364964326294289972355810737513500496513691564310440033985799744503284003818730659553111863468544331687051846691824422089897211930096576763840891699724516002141858530337609321289263893146598117744865903891183955113246749905730047191485972483942292806072545426615375811401505995712279505033562273729356095277424512027954243189567738305787294824179352218104958207669293126653700754308429228875956845897341197952841621545894752362721432389788002536755366691052280113586628126880307632052336751669206764495365909632462363423036435548391531650090831787646215290368669731409462274467900863032115492194140688500648536344127399305567071569054627430133114558821311617328541079693410803448076925087309764905389778268794195888712424302199470257945134106827376770079538621224678326415888175523118733627835699589270019462887609258122735735040603574822350593468440319942702178549334966675737165369062915066293833105208377761672477935734333284687564934100841299356820626466019346949316131670109530447128618984503106887804630077310470179682776690368353841543058812711307556247584207538254152887590227106067148095435517950544617900803866963993313367297888790210857262622232545871060710877588363247216193932425353505031890063404429572213038206731384690387365356701109123726748590806193959848020092971257848806605441345764513332551053413107131634644501627215916364205121823111170953396826914967849690768143416035664942735797919483043926649124813916920949819862868307017609252040839806270967877809989696593136511551839793343514509234702703863667525844577768149723983156671613964184175220482293978129598736498835842267474820990546975983672426630186985371692231148295755886462007410691740836886215231314530815184768235173740285098759570153201914256966106968285372232034106151326226516625185880553883178945810091315743092899324162200997785089613078678129022123106788325876330129366577371590050347715775682784482097312597918875830860826680980366527284973516583660772085273239213161655636149798091432613315322506195725904343740952213164631099460308965472806719496099267629439895190455265469720209166454927483064104318073883473046344519034091218180962029640701909262310617924121607587224919941363501594651001714862006266477237096646828253352993842843029124164979182380192809293850133930059612837401627189885089344128758076890077388818641760986746854952400324272148916102339783634289743656806954458341693163532542655028353565714579455864745378203835366719190204379753338373456215950351338142747032386651812228312968732069448185428818574277722076965890883243882490485168992331513204205290533408483879175275111281307406884455310013972939773061861839483732910570521160137515655378123700132038371453653296319231778778733705392943798115173764002571680436411696254041386312845953877670927624525326952417523246092596791956397674950451182704248661092876451441954128647874896982038830667360943502067270791782981317984689999034670224676580393900834107786747759210111938299836722153237647031542441741124298750138407785302710396816909770794542200880542177635729360267236002581163305594941696357378723094176570034656890806776073468407772104301840479587006151067419245102358206593726777772451990821688200054494868751535576673279389221394987856494881646772253095541615954151326275015977799355669510364634216230739016188726197523053172068753216784245853395802749860309654994280304196007278075514820204678337909568153789492387843051697062171134587771295249243866493435813412814959027991906893651144853386852598280479752264798842392182726161731713403235714120286512121261428169256641975433526072501144977746033533891768108767912092587662645807577328071768497369330894540992188364225783747832089717405308399600134687826542467936918159317264611717757603250922343801624735826344248110348561946804363419125349509949849154558299626130901851979195390722802278042696200242895755068890642991972757897952740835396629900814626363865011355433368643944085213993714435571618787038646168247326104430828299936935850875564418832821781518317253230485949607961354193543072252369420301416295377671939598558724002268070321156362686897885983100120290809500080863370560707141951527126975549800181647963372254370133420025987321485273132204534875872112337369586824853341083968392404842516310725565250707606873917735492173478733267383070134182586800288735692916349803473217026477802363502149789849269508502174511033125365544927958789344036223394782221287836179360124479121759055963708029351379418021040552224622538658785964073308745691115419186242025713097214514394960145337530351294292576721328595639621466646936869894974704712223994871660127813913419636780524432685323488382261345720340539588303751503326399178079040309358283615953342832763092613341457205832789149180848541192461741580049077051161512997297699174908420812126536837093387535854136411924686340150007514245610730341179082446941653332093478594257574729041970707742501144770452555793187302355291165778768522260232448256237767445333694711394276062913529602072988944219945612186067076023964488782301203278303602689048341617649852765161183483747895869408832433648110263531399974637308679977315605671070371594134575019644138126972426661682191202633317324724145486365896927873787749052155134903903584924142998076552315183078229247282544985540384115121192678296668162975013139974883398310324227093425974143329174429228830198896520044084615660664651083582533087065735860722289125988174218003070921437591166003220425600091483186703743304412563466131873745836851264931710109684242924896244594091589077686533300196124029528605780548825343737002002581725148594703593975545357892521079027108242253464099641753126557266584446903651771802203199621944496037529453611921364618249229428135288838930942500792484846879919755660581990707927442754996446989029853487930842685113396374333534358269846687477542665923440986893573096094404093142361944619557197846483186438464228823425706000217978312226822114445004632606835898439948753288333908390694266551080086236225125811483913900165683257924072884295660308488716332649132400542869219364186420160776887826360541001792319723574568768619257553644278475890634218271831983199877744478237226174692210864386787362245923445115811309025679707379691692077144252698395638365599886883297424164031567823549487469317802643293677822156519969071714205011230384252920105118709615741418671718402642297514680135518462171515062239828160906287858235256675587116653794332222275118678838756475189207440658787445854364047152073541332234236494928219520203731965717148722060751618618217757503330630464857035940884552929797372606798515554998071331932208887049984755315220736847846291359350761119267948401330695938460808861883235609608916149169861724396079764744679463460673476847241064312432352370043916580644163690511335309904568035364962360188084769153696456727700150236542044472370374239629607269513233144816999921741141415532428741567064443422100801683749421431946531464166522207588987755399643103314131501227289924484652402862735570486819896468744936138954901304237658027001236993553001356368269177022189409137256866792117555577626327233065388585874170924033890952136447079588314291818965664161376478547294278724412754107046804898605426976580131227473195282475222967200574458341260094306782502929210416932795225021312433234399464127740414037062389545163833500466078003326763543668327363491696296371148627202262642485955086806537832894392410302917349193460133277125847794019658055598879465400073634980652145814622756781883649970771038609144338022794548398812658402383369700648622682990665806015856750674227848321087340182217070983812411712694229406230560303343985595205575914083554157719841366837583341624336167019314258961883032980152227791029775023482362776332448316033261875147280100014119449326751638454849293237923128605508945073117293689956603729680387777421999416161644650095200726545694372036976278474168429682551486240215769924219767250580419579344149259518509005450072384840684737940545808956133908860307126334877475967463365010376132138116049730708607837203578365275516913882250142053575503766916756334632629730807549295890784206635277342177047925422440722955164264965582114240000014245340693907069081266180006638830007175768342885942060340399822140327827989595901489218685772947968959770191200296886476063665524545194753488225488595069098922907591591129160962262951539812177531217735375026601166056803601772808081614109587138519944406863951088650239568448912284771763033241056583413700784631297433166190611514034010737228922986183673882401879791492382895496388622030859853363010857162916011262800157360152151977882812277122089854279059174307867262430500493918210213744991749445791975419401214280738033547817865259503485058595448794389935164549015890554755004056990515083943260867333175832286996404137575027172457901604029719314434670777292872237270486084374303511026487439033229966041715936784178297892319536979953836514983656843150509278298239707235796180043340857019128270088726860238716920213464489388224028884662579886310014084101575909283241479926599117150201484803242181220380392061299752839063492312004553444186482384610528420896625647252225432359527630184558315041532851233262465440928639614339891926022996459182101603233806684455832850351574331254458604858609025171105432353371268732999513179657440103380874279640463402291058230507601632477877622801748912667397932622836880688036876222656740957088656601945897088417145521902702653583193139317522538602692266204856620040198728902646346157767203779341189451588043846992891165993404571366129658452231221711709925032143882616173888334862044445022095710532075689128957747837299038665206744504171157407953203696334107994030926354650071567137959364097785503642508796168984817635561888166018108568019754113472463035537274026295617803021823198908968765646638570178946632219011548730978349394868497566344244284664149124479543126629008196067983081877434244004804106662727185134977518619228822297327014104236435433926674240930504235149845080240597792813749041946650498049153136203074846360301629400523048157408220145961625925524221205087924363243803101873494092349451866884882288283664901226371358099028141375285092638063297037382122992876102255561886249298524923615655798134379389348520791985379990539965337559177900744386980994946830076087839563408248761421900729979734118354807788312671168805285324980696203879255034458622477472561770920654717967638524066629876485391068001812946410520001911181091328413070152323934437143583447668295468294401289471810044105087406297624661792399027924209251210558754593884781289206592708898077225023577783485845618125776237080512655099483234848151723188648083153407903736446144131007404752650582604035144042275803911304983972224365824654247945288561964737891114257471639742237067134233302220765412073022963507991545300365358725197333911670894356974452930276559101138336490453046703186991810717952563991026382089509794850533421657444152240752793021305802602114963184910811036546831352624438446836047381101923982147630982137099070856676781202559037080755431697874686820734225069406007927189625097252732045892286216604179440954540371387134741359097399304204286006618068040869524641357697866643625667960140477049325791665837075325983285637313787158135124322316208602981798711500109185754860752826234777768106814302291508133791754356274289729730414159975314701424091408245452247072906264570831599277503938252613988937653212262277470099684736991398372995979449204533790291912247880511100341356438596037125822638450424243914096732299762324769747366385869567200457259704970222503599685861919262487283481567292401027251589171969880962754786387471872236486475254528776848494436736063850501658513379746869842441504908098583959591032019512727885452171519540658681722232419993419489829786113826613897234362291099650795077898773099837860722807103225273687232502281561650646210006993631333881507898965053699476384797424564625398818878379036811134856187543002187199297632862153877237730054150019898783585323530439471501233732180159660086787967479702330010388825331792390002669392531997029100494300578906187805922925685133586295839837873810491124054941949680623195122220435470818292479834982879688395173053388637164675012838759870221082603907999970811166747739121471645533163549969941847317205626476848809114208250545551349516198126655627792240965131270833396903732275000395349125404442762153382825966768651970712421494868894668550272680389992981139700639524000996541833189848335339979865927131113245308750470428931148194091997034407327196817553410007920550338895217591296175418370020552742893086276547673904854098181709302665014961868926286520825211072132101716843770648378627014990248221917420693117324834319983922406637158917557126754604127021651566553920134494720366080249201065670313121860538970804467964763647564560407108763885577423553518568318988315804745691774202866732276648204193397242022113890850966582527247638180088535620837803737577937710675655711414498158409418081241965729350667067348419675174068426876485340963837168454911117700554901826703103886669960158656779201945072613408263000058391902050637584372377807065753687844175363237387037629842686450018885664023429860741561818466353107026184862384567651649217517318239879300228115273673853076105114803634370710395520733399303909174448856305479626454356865548471659499178402974717197736303553871398198910233677225178141230343360806162408943086487309816079352210484423728223029553960202865375720705705743485189367346968506472016757571123060276221374267784614033357081812078095680737139633042709262759560963751645086804921424703633424791493981066420354860143572418326975574745647054029472198972399289806300534521491937852054821009814639228299519844568950362392470457608252401387440739808915369912995236423631126813518886981251820359278930667722724766737222917744632078406428830246721887876306633851470134891494378113375908617597283319276451225605269898743948713909844131990732821994453575025721700252461201407161097209311773329375352358047193400377299587611195500116482491401740786329115815863742071711813361140233483479230673270987049386658386938718214972668661300090032505798874556196976970176567520198062618364107342921527856937273633855500670661886919306863517106014577784480928283402119902786741001363108733260680929586795383806182928211571607595774049735060597548143075152357356726384425326440792671041333946073197389911361586591891628480367479831812411182575081268446511867168497132777283652239736635459521583213497284834994853879887201983273985793094685506418914523357293732933328182964199188865217278455203073252844537542985610857238085661904840862082156406147177386130915594078242906627170078719194267870653370797866037926606247068176034238834424391328238428016761351524406335886158146992404044044114766583743588637917038917775311188176998727555528124323050870624813784809584081823410361298965718721838321382843154020545680256258527175461696905598362479911635085773636494592858754351372135520485507261919679453573903443754918116836007341503674671579313322740094424764318957709826138447327338439481195498532582533047274910291943214326286950392926192663268626283197477492016568779440618204046064757260346410898501883221168454997870014908146436386601384354216341750943280391982948211369376377219628168221109922021715456824914410397504166563509277374870229771174304083972834797458713563532636090900616705671237697135910128836588342566846697809084409356393098640098757399848622619708363904810845048421496891906624522413370075058870441786191857907027222780324132622310319255918878049436240026674858986351313178917895006825942242358106321837163261173738995226464011770544446933296180448964032987561466541662860343615324094455928756905625283803446154078975182449660817442066210888690149770853397820840832414270961833314709845670931623536058320809015114586149642399179298557748594680609368223322580721417148230893343679193243851835406581550258298470859946966788607132364321264776582115913805036886155088327886601803827160962300771059210534796221600066887514742800520993561489281909642526162647165653874265452717563476385288456713644851887241103141128738065934582511785609532220336812714807311190990089346357995145890888897394429912205625049352357162772883912228977302707219531687405059723617369500492110116140877147966226417941631709137955359573418530469553300156800159117022306478990736202917752653324846388821520514801198247954739507032369814534248968645181807797135105114159052020413694777359114957714844410270112403472342319509289966279710995734710594426124080053821915821013957991796161488517751452486125925603901867280702985946586071319014465437491194699470490124449451463349181354451708396033097911970037542345951963960547596954477431116207319218849582700006814695526025365651405193001298393413704239389070285462907425534117456841323051382917266769958049638260986855454651065265993401694763219421606103732379791200975277294577321301418093394775767599278368774745722259565400800053380143571176418141089252230312520230255649025083174278892671390717793136769361266173859096940341441997414367355574995292753151495498541469191304338854472416074673506816910819464188331334317555074058860836416809936312620521828664360088427432263106652120097372471330230163870129356132412389192772003545138264154817666014214197659153321047298287788477069246282485003744007142047696927938048980584147090552385458066146374534898447612641911507110936858382495228201871482630286387049313626001078464226562356501126078033145503594914061033265332344012135263578297945175656146036446048714021937240962993482467919541209774867489494971361475157050369656805504922495444349945266326546991847423486712160512397717452689025846258220278321540621010417509948546635713046315739687830583501488575399819540807035997754839026717823466782258010396073162596822252380719890772297902783930732561946365792910571132422878474976684286292008751854034278703162358421998449419302049139585734714002125797876406656041321476938110235888919259219469334820236003510904220698122980756229902625583978569967500326500333140809936014116479245425354018232444915877604168957270329280699893571192768457277891093033556973872959683573279258845888053035229836716460580173896177592812796770904302914743949928652035480561075021188002431689687632854266670599912937388485623565893954892556548711960153994354960625760313964410244333155895318060439610143805488855884895872700802812993039074260741180373578761743954424098879626138706186753724706769199582736652413302047880275583507879431029838705101598959353513423782157082097702569124608355874046830957931683093420887563306469854665104648205667548660007980134538234350316527369986472637697913248712245390753152353967883977518657084817028519519726814017738119097917032576845032399639393072752333691939019560248820529897979850631159053400004935223399550864344067626402422052659660940705737652700969206267157769628276902067249135565024468830239311384772966687996569923382219214032256861216264297457224549813001140857859316235027259575160045027827591975421386019766661620944942079820734546504492950943565674783932230180393322029859743255644674636042447294399660113167026060412234098635459015457673285179152934665760440481763048300541241762465143034516010947932246877805815307094435109255106321950302486322832440021736288185041391019508082996223114615469444887988472977288669051919220022901545687672578163406046398950956390648090746430246617790331119210942392166225370714395178718298960926009023957249527889297988522973717031114953072590128484478742210736731628808280523088265235418635306492576038251027930469549992086753475884457741700245932101980736137913034343654448945898756549634552347164285613075614831484588200371031330123883360609681840752068479327039604159511936604838506155451914524097881650107676922914803239667712883652752934084280417451288516413506525421495026720219621776496646398532780635649905010506932742686146256513815667858559608402773700282249573636413441218347130028103295188008703880110154634419748677983930500199739836251403640928316847112969663265219084445878579505858377742105133260061507474676251781923101995931574117470800811144861309328646251852919031907279863691779918601986511552932030250985281578696528674287200706833398139183842245034786535813531502183482848961007447006251697783425920817061240813333143539792287492461988223166503326757974623722286246518174201782665068840140087559881906526883251707525555513225280873596938608138159998844761115003711937149600763280193594830098198249225197489389489401821223591492693339556826475831685956070258406048172138347825527289589222704621960762178363447653189040228443250644702364908117648916565902486697792678047466895250023423975132551288557817030168612003699380068276067438153070545207746512881070159095328240480548233207177872238814588357093985704486989411091026761243251782950850835056470817312069642814567834404043619154516044285335651425209613818483783260352609365358318630539039901394691185607422008431357878272967640956974265769291837668891761079860888066313764927768381024462167754517215483408139940566826404239637143335477289508742475460505393807874483729819300761551549329809059444771576153001936226666039764220435062102761041274314307170942215524861361247672909272761342001598531027412711697981167167740904149248236352112214304841395188710865589911049525664865301835406214299002944385265113998848571587395898369399426794782527413710676805588062733743490251352527068436465773624449017260231204542496778108018509046514825733932307270157360614357144692188934754196771283432028379091252912447086938114311988429360646716940075197259242657282658376063359488142306032672624092343847946638703321631373023116201822317036427096221642438340899148281994501831976192744321553635720857062465395802839382073507756791794849569648141081148363023030905662208912833975760882144648813039712527539978343283212393310806783798307147992780682382593440720149703722881443435753035271205884246056050965762472512711635925845655873490109513874728775323774316677898743397578412809642359223489681311149023548663367934293371297328217692143141343474949964472472210522385575205027112683764473929225878309447477591212210052359971010061958943580245976373319947999009375197432079250451470068745559103400387880435060791088862931794937738360057802825930442251155221261579356598935919932757048290008444859736800658491938233008526777858347591224115498316375557010614428126058008625070332611425411300638845892957481647309633032735179963920147402873538645840336078633043279308811986986064569135567067195680529218911902597105189419316371348098331342956911581353515979287801723989013444804238489031247791827303413270033808790350962704265212748590730921268058638970426595788759272934510080701916375499104852956626729773952855270860292065868352887175639216652534886927752183579668352269875736569090655105862277532804319458120274733256050196896409682409280259737225847529444037970718592076801761514663434957998178681081113914957472348901879725133189436401512871803176059577112083305163896892368000215985990115285426128048396463354824767555657355568801198673028476542112413756962212712763213113595486308139154059194496996569351361695678956703009293747254135738102214558026939553864885251166823710677383355862483160189744699515584244130594030944079271723385903883230367155036179117431765207043611026679743810773882498845153080087564701541635031543457084681465501407819156530493637363186577362952703819770838814288616383125511707561593942033220952373446288330565087373657644430924027552890774101242939621506136576191543472318835353203355723510530410470919711593589129186037565905163322068121358981477324128990746796808261622620114992390054174763282229407561290786967989461546059544479616157148403813379725624206322839284535757731971041553581995338529197938522270269372662368928786605856170925250589016468387336841241944057391842279729079844351624484709179689238172312225990071390395793240966870336790587221139750096964671753312676068149649938476116463128903229648037992967721483830783552208247561774215071378042986804612715753969271113578346841049522822730783949749389270446000333227831704912557787188317396785384177161493552802228459946502629709070379639921731428381379891522004572396180972349761655318038063802236107215769278505347289250686627110218919846490131514499535803717345763664872878188600110766527119849018461308857484016291857862991398218628338983119146017527785263562215909676321683712491485588658009735296428545316285335340250851494199758977882295843192328395038830390284830061290986278324647510173096950823515559502760721623368103188841330352191352856409985552384343207349101696202940073174157569861918601698208267318269106331947643061057075876264427569603810691194240712247368814282318391582124835910188427785115315739023755496840213679989665551311367985944582274575623511588193413984776932391073331125499780234429178693162638289268234673186176405120053109446620009312103670573232588921076228718003417879660668302369682487505893222751233555330059024108908923947619359611889942616509099826976620192492649610945495903854101543355130934550825543497338667646865430042424741295883387226862786868766769076286769870103603862086332373388899362471407759938439866199385781023843446911930822085460103925195155099573988793515230711247597834189513776712739362986999450819020547046595980051566107389372076050027191231587196500607105548297224624699290684098883078088880106211953549325250232546863352939737485907587674918804286306819549764311218941053282491129578213350183989889485360098638509613346731867870020944037466979345160329843638562468951303615307317656299096801344434729218028494949934784637821240254378920058748451922006903237720037241885852863353084888620863861865009667843016591687859653627482255943356313530087772782400160347415908779301083109946702000914574187524892095464921793907575400908755295985293943942117456009121912164359769283680899989591069606297582162599433789082391086578278516588758955547232699120523278802289492732382948655889072505038861136541204902572597797147412497092854820295323863117907949271022032982163668950620867592101403315032357209244067503208081004661004972102322441873720349608811436957375576722534084462683060216428051110523614552389370632058451086549255562700546188804968724061914885227236322913302768268927528904130370761436428835375268974544919510150943274566328939619995313685944547862871744745400943412624120120930557727603095040889875066096837799369931197221319542925842457121422935751387845920425571715130965481004105941144513623146142959162412163845150613090504970990384484012497076591138026557859020265540072971767800352951476198920056074126030848528315791808963761131822605500069683897458814318980220759666780228449987390496998777554433452496324164966909156966153256769635357712148091796707013294783278261886813806814386357964178374994458951011834172034679120746236556962236012614798575595072603667580786785377088710964962635255072245758243181020907136315492807082688912105423204072938289906766429561239392025615939369559932950447065843815917165508567677246251330593628553240569292447491009451873671164798211010914969742974375432212687145334246011010660595131586972234462609393942571163784718339774359566731913087702434310636855870798304248484261918984842251573826211263317762408885871578116248077650403876275963976187333095867179563280054328570305577145348683887971593930124837373882087196798120641498839285982607465339797479718126260821320762182464247052598211621191467320846890690019115567843832857923566932228578084414472580468633918022581295587609137026531221091246326189863676496410728503738602391302142075567887238964436163244708590259524092351615852069784057021531750701623692117272880759774009081881512922925590451765418185095468458938015368950329537525415738149425515277421497758970718875199012222243280893229525427286861884793795866032601366777171769384847222664653813606357542335280000419100067303619094876493557822990362687397238548866688068054560469626761829406968441599140442419044733436971669967750269256430220211789688566566368632293157352123470901356553355167737056065672953159427118607024338339985809683614104825792151627235690567130846822417683326037504570229477055654467372839779113844593774447554202663155801700389823745086855205724025610290087669407431452015048619337221393352539880621866237855520257428165236946902265819873253890307291391139847160858829376003868291400042595937558844693301478846832395652477187872440734365760184753047537186373119912203491072122071619106752190129496012067563838342773070815973357080549817743686356088585987078773331131344141947020748821691669886720915213814442903148080061005689957975546372190329856863546538074886048590407959046993211553995519680492084913909628565497736443740050964316909120097617324085949206255531921652872534528905845954374258929208913925472444213260904538388516990319634836264305266587800403427950471615302065046648892915294360080864957443029230461975450475671196417361137262731962465887828231337296731393462270210655930132108606298199455356516729107258451549952783576855581960197251682640443304553526414969365439443771915103945655176558656220718868477693405540118665482239388879218630083032364216784775224256414218419294337068081342579545185798118593084409684357129252084844404263887710101085085490046259890140374495945749989453164189288385137293482289004703887399271809140673743021560999396661497880759936156200833059172243499170059465063748080774127861004869328297138712344066740397900895202715622900089643623308308530320882859267197831275919101332613099542228563184967645217762349168497423396126615661963065048248140807047653621679016090214383095190763947716443178490958180237369399630246768326395291552747646228203534984912007751875595508687701034620583211491246404649450118001583093982533106593599632998968074093972940416835273987468224366848671309698302469691433064399881346736346774718356028502012315512891819474722627046364566967278189172666265196367014419295896975128205561797770670894180119947950120973722694841925792161379618203443728816090672366211960075342817394597727695001421524237794185844695104794933716566449301779350429328515009037625416783720125689041515885805661295495614060109642645093181187070780643518861964209479035136164262773054557519651988327602568636183183215183304726853092756805662127311057101057233253069239187935146375943877595587280833391054133251229050178303228539466863638273569269165557271226324858174888019489151349902403025218570363641074609313393614454927578154269341033163741360132693153088687870014761435730913447483267971053018372442663625197736542239323545954457406488508430410498796095532827731888489453539781189707766716498229455224219101189398940995031657041056090853134221727387010908004697171761829732746931986744101784765622179490440792382306564120113281095708163714248213314896519029788790963423441644081896940464909638040719841790292922013580889468785041902798988212957661543285517720714563464343442069192024433151862554431412704488640806890605651522264227887377322075897494996173912853361958782983026832283510588142642239474166957856399785314992990535517300831872577452895358680535435115446316024628916283610701516561975548876999185158493731410372789312082264620882198113983610854707996073770093973461152324635018053600534502654003234886911903114206275236714993306835102878802051771195944152554975340535634077206859464842718805402597209417498242533536606374113279532344597364014609483185221564540865429238299382016495864767056686714748518246341549459440381936857316340660365160019194154851206438792714421633670677190074092636018639099790917692657335929541394279963653398343866950303340403762996701780052326546196012056773321682230979446426091884449991065382931263694542691633273796918784743631905310484769328756388814452407529570020039212656168125886878801856284113449984291266674318227378405022956578194161520498115792397649380819874806926336352076435624136928482292674320847121870846233741756783020091142265356571645610165659865234995476253501241417861853846460918606772805867957997403765763172653225231113583839030807305314609159640133542792273826655785494967845171750894144094644990254360385040567865027993048316023412765124084192467155382919801618921071321497900281948056399749867620240017825318568513722398497921896946731054582102482824890805792398086300796257325955567915267334203647374165097796845998567155485250482321934259863587362966553496560899448132692873008704977305533496685770273741623545764242845165140274890091456345712135586107076073315938092997355239550220433677455124378248463181537342218648921686930077073004416415024793583511565401669678809687708633761142119845476681622531262634839665380474729475408598121022608471468647518458207221944793723797072549208398108940899665241651486711831072355377601813920082058067113973222441805992952549029109350441124997592016327277728824981193312973937874945059982802033035359298955266931087457864081324075036716175473074028776452843142216679307190338026114569231338940069530711052119556106079001339872913958733812992442388359363885615612516876206716844827103780131476434183662166673763816901921752192562284304291143420022812796059851909130820230370705321323485072182558560108220516075612630094623426625597737044767798434759017072375269357527212935477927700962837394067043994167272650357346762944390493115659114853349986764139779856414483271386295699644126227000572393573713306866516605828307087277277045152175966702380075888799258838871938032810191987408181065683325087294621217426009266353397589088886825068998695197399550792731722593385153317038765177478610444339340103467357154902092015890158875597979197950508023074466965470092937458410959031203456130827974095490277595168047791362450816924778105566371912109333429614898396624087826812368454838514069997377959979695950768322086943258162283589251915909902802896481946200890537447496994722561223678605291857757374649019870483063610253874503150430235690973174820262891447044884602755173868280268779044109524638877720604747156781645773113312491883106217829228093191622204450409266818550253916395345243164640010621219227717718946870411044909709692356835568199923674290106486105893695282297514309121458748236767679355187108320211326793869496105195227915820342848886610721213116549107603512912474272816609946125118932764732219180846082930062782991901361842492811522625712725772937859398656961041487915522088525992872001004299295802105791915534289924960983006502075049278155797511842716705212473082108145997487705775597237915505122690381039365596062746224471436945240916573625729900607339991806060106354294829136756797409975787727052398641177709942464372877870554796789639977631709577941121344633608826942802567972782234610235248468961971492348232006243126392671603694312451420593008936289778988038539113173972397808467728706207565736645552920374078348922613881298746767417373043994419644630643834097752797914673279281112352160063514933712415949857387945411922445433696832277604351790579021181090894048416096426079872952009892454365011796354948073415722085781696155621999682871787100459152413640638129798132508738395914429668624042144196457154089357953258610202162706204379976954460359812000183052698317312006292528807971188856247104984111312338378366684030400092121752034889647978525418201139789423766245694462165860907688904153056227614975338399869407280072514212348839748135447525396179570451923309365192443256757063622231337326825938541052816801680090019991822816578641602924988727634276590295704535831092998986554846878954793036912018864951668040295470503145094382802989632789686496796557287077734765986826773547105516670040197293941642589426172191575965518747380491678363718957590910589797723071349763090450330487005931350634490756553603766557643275002038895200147038017710985491042064312361307213420477623789417309561599697596110963214340012192557666028624811515532771994412829269756668706940940278935308504133262259827520348013459629082589058650357974353477995471299226752146743029083930211921542632372359044065553577935501846632664237833930877617913349399167437983731011109553243363993726444147136801444432084857690978979407412702078246498166951489721878628489851164991296068917813392730177546076769335389407927642862443823143301435210907110657316907062466282311366624408231971706214219011619851583843873952693021079773542610739783200991203523315668779646494498109439036813361517816031390482434559639475161268498307961125324935159256536572796153700765518484130429426312471237301854055796473578676793161985517143334634493425355449307222203042383201143832294579692541190641235000201782112715075483870774064680712511364927094416785237239597054054521915663040382243989305519919145425294007116727965025522752406930831865469830616902725448176204879203917952965119258947599843291359850284213761157222525084671612532042530991472269494118977784554182610819104409977818055394492528168345538652926923296024609154124077156874109084590055080832329272361981558670528607763952092386047457156876666084242091549200733756394674719334116145095874778953554656889140606220420402523245817769430796441835830717407236337645624962606483736825380073683429304051997640309684443530670219432437109383951681541921849281383920342958256079857087939480734755016632023881288910406908058386922250036925567803450676648946368328192938424124284367860038321114356111335101119964555328156812167004918787054743778608882151669490752232587070878967559188469854724544514759510984671206698174285841816584730014840198315815725213090932370650698060370699179333614010161040385056893135518106461062507026978631770000625268452649068682269873527864642283667929055580240339533337822364022517873654494784306128318846568263732711903560428709421056947791473694761795040129553227933500480409843010852201342889081971311151372898441975237331862379442854443790741840049436104133724856976247644999427691910342828068777008948785851368804040202460756514747831066465333296600061883955766418067717154414300672269206833261986815766151374193754947394991725395743554359979874461713011874157512728471126423914496377467645221651754458309724233781379224293233674942190252952864958105126183475159396726820538343488753318978333993181464904064094782536463777717797293996555252082571681633699767088239284337719892022647166521004138472965413752003337311475711917126570808070350549894514500040844392494693128522589587368876064249735305471842392491068284148684361023438026120473979506286053805504815332546153283030909177595380786352651083263833071974585577063769986443777616140314397299585757714777959315873570343141146209274850241193289496977330276625380033811588714968729258062512338247022923706449663883356207683209127904143116167210726067088070701653021234385827781528432425669850404666687135699847988052523727038152732015393162090341683292801627204442036365968539205566477909147521717295044124466521726119019350964388870471454915218506228690863190485621084202357935542979037566948220792356560440202913209148819300281319604979697863890652452636046283373907437900327225751195844107673356907017217916436933464182444846531807544332100611753671988542533376136241936091841816631652285528058098582954151344972810552239637181061683635994607896203712055844420368382902374201268564515857707003310362955188358610802004174642968420766591010931891983366876589890424753218336004517946354515753957799718916401912305673249424562348590489948060214162052101790720131350938852033487770354937433870427821781846869118935002736892744304745957666422907221056044499249720477277153987176996460635994215030913787444158592824860160215923385287301091569879417353998208799279279905168815975119089517887501590192103601801027452454032059349392731448214750956269772819227018736233784554040079035959959568263100950285109609596509168895657957517935915301160200239641394824649374143327932109438232140545095925101356543872325919790670580237510306019058967771398895232187998036175239811568274891381512091561019300023513100579354562680881261908090000858328156857510763750420455564965382478711654213498519957205398073405444080147695124781224208077257520880540154773696356609363152240165432384116613135623779422856815456592175700497996737728332948867830707096507826975686530353232044746214009467442966476064655325525431220983368749484926880790819479574782284055110304293537946795069229909192738293951265648404897462217856465301026243913894595852573064015450342213652004507122364329973323573519662140932936006344850262640524548350369330603735640143556685772536556554833753572145871743923018133569518579591293253507425228298895813304583826977184926934512845222803058437802677725436117496953662834055660635326023030598595260423382792599294248818097886029001246921696461871020943900653866595270177363895049139351200014553256066381172796878698161281232223978270370847180135512796838780563362539051781275482731173020974284790978205044350067688745147529731981615672742111911176226525751239300830893721258938912308525777055185476575179484924200240595147632493039169625267866966365828053606748155534719310794581127295493028343221459949726209456564646865607652304115704493871882956427879870614359480581583974187784688332267738340302996682091874355064362543044060681833405244577383911165870438235174262417440530805652592381422702826459704912998826503260789054627323773715884998470043739124562097313612066792016397497161124961680067574486570126748241930845425140547705292322318353856667219602079162989440220351571890782742367009212072161444287242845669946326621205838397059685715308302821162374114176361237900936942591709760182399086418578843708879703081586318568149418052055991281838345846062106057159619904316083717191105068219427023511819681775217510394041237573051214613039461258529289794969781215477349925956070454004436843789986597749631907480281889747457974234789695747876697899301787931500045448466470691659613248357393884154098053241456232096769239111295030480603921603607482885080395379593388027420406051972033615470546116856577782042330983434490615337020073184361048336064053486418787121701080165528231827821039652285249023540510094015124587671464526343920066152443951721587121275282312527499663045291231598949089252043195706337314216623424086950783458228836698576821801230953999686601709418747244154002321423416461799564612164396733568893236786011084620987075944645237750259046948583052038285736160206884910451403569002523421387028327493577173146644342962194605414810557775289422813211436157688578634084468141965123229557612892822547992912632377805316821664213201867806815589437781712857714974061219325870798048620816553956680536799432973906836530909044141028293431709175601160610113548597497846677282675427958671883973143319251931393404839756781249726872049105335553091280673036606365550770583149228197977011258622398841333574854921203888255862461745962223336916115774294188313047578055877054474563087678542588825294002695017749879103667083807049174007394687767682334245856833395913939290765252108622665569650614384535595040009059675383465167767746370253021037303422778635678074665764970384981924874722187554460318895217480136750034914413824235336921291677373315934087050895894038758018886676525796277627404475053200654345135506524120686594952358731769507993756700164389515840115574441018929213182881992441145189357291296562527640788951452258028937005534332291207769869882384996040581041741041647225417492705144236508742526697506129963387989413774062268836155813937944180698505364127234019881432320167168514752317033907950006025287927815441472743145303083484861508836621547565816454981922212855704369457126057618194787544871356886796742161297956632041961634006170436084462238059330460163840625851270153224283110004010032847495846049974010848011679052771472703222130399400263933207721585085064262374651432453706561451664371153790894713849522323062084266861468789290935559992929375037606216801384798106881112992244484983599259829598502013962622961758766657122698803704643095847456014131665143819474289588880983070578707314054851297612682744085791171547258039951154178713939446595886522838599560795491802020105385008291227144042083499874845002478762332097348319441037227999836919398515458115736655651460309306099111112968585645508799525534053382978567120597633198104024350672484744322189181832839691795472280691550711432344400391131761640599481167644947484909249898565544944723280316669214439013830632408958287311024047091963064485748082587419366777249023657839655944348752726149248395049687245929741782186098484978318870979538504082031535657333097294713881016500849648176505566300704618019417951222627873206431846890875348215462673277928373529508192373291881757614797386250433791156102440589597798375542722261318128255763391462581274913840174360440264253384604253014706291244720449941329165712012410280787689750661059570813155939333823449137931495533360895544435680944604344205305694366183411956415989570597736945143906190519853389954210750576263872026989028819878056464073285875794316326017748680765038656864142452557334911570538394329233510718729432268153680354009813052701678085009079237743129466214624311628704572261914759479425074227504107804937537995653393355205811954344644058232768826094941756098293759563760796232571006530670474730094959507138226812655579236868700321686466706630647830692853857478460974798246825398630807847907709007365223423984282117519654349273337017740160092994305823361148440189691190240835145177194012798938273655890305736957950023113605971710477815961722355952554989130708159440100209490366983068822873781965113641654283316172446969252094264488027019699980833711255953016161989408307193169824579806912144317604428706937131869128402331532922646559521595984313606845233023452535581013318330477762744240840153291873264886695607481402748082183731166303681677176133017874639466434399497310602598320546448780347240525295332834346599869119802479784308407960823140177096671898019022108204309960236566835800095622817030363639285921568769446818820747759973245357261389084411508102909749846420996787807306644169616939683906381480539917007362132971000175324604189266760173058254515787313801450083621698978934236400001703923214380409071665121337430319951833410517770543212968930226356599499891466399500349886961758496627377498956595804260573353337435155961434192256018958857256673315206017772721101840142014873538659176379706568523773949034048820364623235881079806864322660658649185931306706549832831321058876665812954607819937932947465846287569972548783996573320915861292094315949579741432278277410009721549068682085231062149549510140946344761064970060929194988851918095995335298969214477479163221860113019156814497229018465727341886368988611699489028390273360757057008071804233981658617832491123349383017809719373640060860686040961446459403173012646243624025500771574933830447503080132475342147999696927301709739194739981914601184672926765548498905991377842384073712052467476769862154738450511022332231950584804359682322089286627596699191381198119407980645676895513294438032457017031864071102211309837760022950174038836595204705476145022290101210281077853385959530817566659745952056071155130516102161725948964040929156275892897359987083456782443362658530271374579007357690972412699541562946092752856428184013681378423331548159170535210678821164297577832708193122529240124029701809354690413234950054323412179173758624017910656875667541890007674146544182471269501575401107588379939591257059347573009293690947488842538338402110124352891895752374991015514390900191039899801600899841952692615694308903508524522099517845720604102062637200427991588312505687891257463931215377290948757139618646812903288528792918638228465730173768353598461403642717916787826544890676163175085538580352830765402354087251161727550991448270176183104712829787666533535544633234947498499320178357844862381977906207671392741012541689184564033343754013584147111727172778456975702326129096235406711042590545813160264424618038381561511861954661422325862625682135245294640738770603067141680524056479345456244705711760432876432691511713630431013446145114200713642542606240223596193383194912729447084585733847599414571012204281694142304299274569147286426980020123985568417870688687577635557322077955040393782205025924555568559083255728930261546331460379787552381189363099646357352283291299894959112165538505118686650388334038102132787291914981644246326270579928188490336964371808961205068609376951695800879449167058880753416700326370603578243924288545664276219406272809015348980463120191530443404827578725402035169512971422326474516372617886067179336050941673741452128248703959191298942378599438748304509137844261013559574916927212693403931900337667381098347054662070565307514655614568459611069765428662977591811562225798332068414869261605156583502975401382447275354916710019678195416410486471537537060637890803933800630456611561106887476643233956392797830488791891535941037905682152290182531766402852985437612263917209843324155324245584942013710256465502937829476371017792124586776859506429874446437444167467084373797623687214858555473035322154905207064548300785030328073924691606651156662024393580519383267763168987811270648305149965280013734338891152680242030281358237317204724420440627545473362142872727474686262164229159432522906488111205941922763464435992588640149992943920853279093183592827198255442368894481860447311864426969732227570471215839195607486010104616952203496280074161828962638381958912084015554243220764628346764954922625502093191186257930511690797654153075918073737942495029282128348122270758771717533202623796803818464580931750922425924640511808401114181922644242686900486137649050624610537406444336649773828836706478570586645795459266485569745370886919782138058710358452009634194795874639448167544664619943782492197313806661852135896302243145150168048393896765383461639239562975856776941997031054010902763624566637341948022513427216111993581618586483062647886558066536489375002413851330018146369054713093518478582225518266539960192220231817716501651342047232828778546806405867639140666632315648216723907308054423111762794428127361775132477011653314682597655689504644332795378808792680863127457131585442101481620865769966063281568140441169893703011531019521320306926870690691051700670359205800931060103188470327689935611880854081887163595800332964517047427451592176166784736265323697660054532954612621963960640942388488186658134985606171405027591571403300035409874642064153559437413374948926617531366900174525247665148024916556614267530497737943301215839100683225856579260772604908406590278285829046264034921408038983372274114128718132959199502864990940666038547077390445880617882101706708552143009999753715718653393283861182468275755846607278336103395765043509335166913839361541848412319455632622023890534319540457419361283848045821439465470709528322826348151549927372476509547297895056856945473294331754788285614869763340470451175374610761628048821315834335573678979450603166260068739226669585818586008017041446356685747400730655090237596666413391260963144159007079346323348105961892179427647748648396806780143054305976577540720537202611397145967682964493134913408016059586411045244832399953637476714986556158163977204813393337634886247651110819936178805161692393207318867438933781059357473160176207334511359378229914879169088695990836153102211708315009278824276438240010746907840724761518169828030836391177769105465443642513609496178466410566814776272243108035524021633598211658939849992497765600048815442447189913165747829163553068783369548662690032166378365669819338581617052756756366960895873192297770441533431768279269096075204596186492616022046951194781470256224546385330973027403126989328693142192437355102048225521730940191276630508922055623295685747081316243554952039424583199663415064198622086265355042656037676964401466255654553018574815098527598101585394752596636756138377649751913725218761573979873119924445682684071384961382578918658307295000479878048018649809165099150139070943964523813545626735589394930479148870866926407718536293064896145638618550346679056097751736557320410068931839672644776459721919579477141267126979685681704985388296468701274164562878186585250852794462892370076463638220344422961045112428556333821754695203981359665930423644803858112586227958799675803142032495706895815438336674205586979841844190330881950855947650819356201655458745090206097762224429166390082638037817944565065051548600014405792522735733823026589305975248657954805075382933536071126421859815370867077937519691562363705749447251497260765406977614456704481536356039764035534314652510512251298224750950864958130614489650502175885083111508556625518075816703987397965151378829741455242131451327966766994676775456322534895253489001555543118882271906133059425957020979650703223109130764053584181745567115516696039725064172704413814828773618567816375737148705636945442661428354142794852154551816842183157113395648354659813460705254173035902248345727634108967601264500253885440491982146500604046239468603359862649767851425220238948546135355110964187446191312902211292077200309603113569417951393585017521952280103806151055242447241120636673215507076877163403101084208110622618498395856941264518143930523309857628693168092921003738601586120986242869275699594227264743406431005603390898122589496346650324294011430249058567583489887581069927051235300284373190164442616783036976132120999482275743705127692700418470682138701785929021202383473245171961371131978705688918002481242867692881555248148832096877146578646779162853122969998170241320992536870977504160299224116649790304663076050384089893657235935430310076347244241804565589912684906640694331372493515730211826205424525887389468441374633349891938517123887253379383647446191492178740251449845811933040982967904704753843484251944777615514419258938481167926599158680951711769232722516158871098824556508692799544679585707519069016898154819091839809361695608715282747783060845347319535208765783200892843544755467309540280014284834331382187544172483293057602430747104533952781417845137657425358928595563560390255285307218597035282257205479931853630860160794495935705391337988135726226282721290587400913279707321045664912473715164164091570421097612332789513628704656512428235813425730161201628801851982255040361259549426866183943999067692056946198238661481789939643907966995322210514970698603680041465256814153091572816413258129634313775906594146185401439241216212574825501576223236134296111685010097599784680591579004074669146801845484558764657792410593329973413547792454190025062723514105164250323670210322901453420651778388156664022438774930578494418432978264897818638954649465300578585894867902847760276411461166647526339183030042872688114440392015112063912948675372586473243616891340950004152613002848121534149799535458874979946056230378622826928043117019847070635177474139040951422312086202206121978674287370719953290463128662786190134740619167585923120927103818368987108966697612587149300649654682335559138795772237935241603848809530395155782117863583070889078118713906931424631067976143280702811630016893528906813211805222057336246473774299764394051573761007364002819154886464589948865275849953460607107361074257288031157598042200323172686218989666609973363908071161303576367388304061986164850418747350742055994276721211123809125969004430821563930570630034242787208791509594491562891072783724822081573000873605453452696652791886398526059731559995969789287916528587717525176344765734187492940000124782231584186588746463448820268624160637598650120792039771524099463975612118559353225272593532642925937869339765458962326348599751067640302420660296118175885076991924283151980604059561942248356864901156869846384248264587031965026694277363375286978989514403714782333823194038426106467763321668359737992677407190983334829143956003500861368530874696921924611885400963284689778006901937408796750473791821355070236474795019083497980214441465021840902673413395019163516881895272035807300741881627473553111053750523761258277991389177065988500250493163479501083722897764202888036852841382070723655250118095543325178928154458143418674485614777729639668162844544150430660903096322484354039917446396943250888319139588479085685175970795413092902148617224777531472803396291201150034929073428196640221806853037268702029794431576258140379572294433444722049023884119080063073879419058615745966445659931236601069157192550356400463004941558573056943184141699475548588821336014143397040477233636189153651700555777418826741154619770909119700605693185018571969879304243849853710245724266306074385120628622998640828026890993277024124503460277236540781806180497848267448078584273585144266210528384079875208418328252019271866591214882847314972583197008212793026227832108395870971900038497601564849834703255069402111831161341054838259466193781683630439193379839517170843628905862418714502715084378124338526757752974797026397292224330480645653679732330128352340519876946223642864461321687561092025222998579326133742400340847395741220955804059725020395335598539670723816397833969523176998139499262356681893716431715559103622592465336525793687676148472996080192875921920330925780637404200645935533454757802896086752655807325252383235336159730771579515733222214069662595030940215144148947339097217275446711248837999524920064644258800449626364548421480825666165643189358812727696037717634172478568745427325535898275434749667357446360661946871970349416866077485919484529803153751820254454695930311601450283459147530927977333191306541295895748781030293378035818882184590428538093971114816962925725874596464424474457405739431659450299808728523143607891600219673295178618201166043620692066913179154371890690509034078516499618307892124959279466734988870184063523897218655968358194076863893136822185005482677248797069632358987586011513404435142692188969570649967127614688213185693028294898074970246541936267265494258444717753705945050480221070586027224092372832358290782711612398511806510903562958758910362859429354438575165063350751932668125242896432100329679204343867843475804953035777002815328994704591213818907196111614937689784452199582731259936341513500518002119511126334081710658778299264569257481854501906551480727075449736643696285107793605131803254226788876991909751252271712327197073247239012837949548543187353654176090855225934316509510531493032433502632393829577656654059964946286373581374460931086737195156909558760178951395280629466604206180633340526742101415382737156937770325023339296333213371041517339232291532336780320543692936077044177037286500192364208548886455777282454056703904295425331398943583566762978264316672058461560475905246955609932553844106176575069781866049761135892357154898554927919235043309256074765783554757336795739187720784395978096789106043180436275361465585855411256524001612473532323311981022706233185210179654219673011557576520762062516610199878857341231784545362219510215407333865293667006653681678336435933447078325235814216718737493214702522322776530022832806602980222188710818579241505307111527783549803237214512328911723230281994943545336572818651928834754612148188514574022947266917793140994307845075984486315397486854690732730250401599566415053053291909419996705568996088525168254604716121303273991671541782747636530161524011008410923811135948454591776337888800549915427342943575841561019378526337168529820108322005079371794341653040322859731250899341808913784698116569103785949968784371710053840207027947048396768170988269666811208354125371401489620675963675297344928712369146781977124686281844156956277160401454369547818355707897618730361274823962121743812352795227614345324262609370522545007436099811679473930297290705313720359716439905242171501632517209218183014903294726326919665405524241640249189458866780347562202536221085556701784761919441049016494697612516708750748877405824996462917276226380234177609838788133049848996088335289982111260590164785179846762890454366215671191169736251830745604490385896666830498554832488338068872180224354883351687716684719175670883350520270188209603321588006838840943056192568050869276235569139952489699779673243746555789128372828559581583350977901659840869117407944275094845036713578122524446508769614371016462029099121610553040210761403058728825951568735790990284919323518761467719140463529820422396667434722853690389603169577878091232981836521510583956145929093348235034130296544611978909571565414289172314198665377305860266954695398316245596266218629484506181953981535352228335777577530816201893822020845588260052253840545320795076716182904152656751275267314614724910795895935027000741360824600275131200142065624309179816686265176439614364082444609161628755766458256557330833772544964555092378090490967456716796656460217622925356485226146687423647359312132002316391864531595020552735503616503471507442838674275012459883390719536267796813076466881924007064619195389581288080739304364130281813813500585002702175103091364033826164297563611017486161727095767616708131167216368734926427675970026633139475025933528022196471161743174916655690818421692735856305719201809491335876347911208665075249005595317181459249086424330111729127485645863504221519913178379411502766529575865148408459065608644939818236587164458752309449052465924447120416774632331518816145016218255426930662318826036661130792621652745979541164798261341252958683733860015387847466639724005639711213789907101672081491991445134701478680419461725431534028244870910291396801228623831582561867199912916955775456879107147951509199814802671185157928472666611248129326807685750033780667638898600713238572521090120946155799612756039475098938798963259240477697347543949880013382724010776312562749844379895080225181679542421052084656869224316111795340128170508697607811506855726570076605190709438570752071826234668633119057920368363330734340598009461915788146166877847401653053991195401743035109148295399409989586506601722361578521349381062527531605460583458529715042985307795135409868863187419476837348990422964382763041643325818613048771234568334164227207550226675448677500520021954280408290163699002491660013881708026047058947971946549344277225245061610096965312340271603331542915930293654220950556632750023641145214841513725802588185935108870440773001128393725923246163460308803416112601314336723079589349165018003273104506925571768961914851427958503016810294759742216981407621244543154334496726829806636268937829338059853571635254732430382004576296418299640640471249594225052598067860452971017251804595159114568420997435769104130311836471519626294715149228921701705799973470167068927553546624107014902970179787956905573780263983328221873951560364038347397018441782527975966683526952976891372734072671976932167762993504032981405311024805041699714636163836366451479349003965710663096719732173653789397789405153344975304424645103120931273350254309853967594705506800394667181266740765894995359659536234399877794089484774543441265874964749038511544756022852766948176904296597493280598836653126988299301742868938348185455256330324197996418679568092841353629656530916081246210457399510762331418994375091812791602224697300738285578529290651153502833202072813279512054089138915479286446648474898432360705108095079078896441287782478783080599840798909718779638185765892375550696757005466965792268554307508207811530272629231559812412196371553148653208868204949441857146494179078817163254050605674365000768334252062393754641400080778379412505076844976309445441194330516695847367756080378761537149099235635029834247574286363422247181900854389653816035353038611536212908226451776930919161786107241754771890591300570244577492987783287998825530626680269335557774684789893295787343976633850706940445301071609705538344868583114813848995606267068602084042221094406745968296035649713554229942741075178840131613841001116620259283058857026295123561454702217217375529210085096058128843029802481980342856459845035679366727421368295651148214279565954463786816953162355014775057477277990970812356419668778545993902068536611858984909643591986711206225760468530511546255647927847472997144137929562650637529885014225192585229400789450895623766280551560407974899740438523091212089481986940955411306919673053059373815848752942773004739774273189927060355108459994000880058216771433012932321820727044995436599769599644490056085648086516177268132950711592620512028371320812607361972420072966926877807403646216472892542982289510944166393680627773383287563814756802230544865621996578174572954319415893091992205987080088145981136138552659697773409126768071181721779737336448667069220011591143300702494723417301245932165276503184473391219385191929497812503948148631509619080438749221819189689590519361523340743995488875757270843251738129258157833398991390061528296570015224122073377972136676626018775418527938800577585611352579732092788574508873057618111167075102542962435809678505978580674483656578134522651452000081314264078179960920511969713913652351010750476168612430188667322193355574065067996237924083167434667117567153257272339718221162895110697730452650303007599452732113483654995864436201383753116388148144648864132546399754430698920441493631833104430887087126251919848646588988832329383368593982244913369598031794595287580475842263798473311569547235140702322344219417852825669817023298394381594675383324873509554023219862232924203264509738446102885169402192587556437393062509358102050042966971500291396269598178680683786303228926537499318546757337035693450157663375599681811359433737675602319732313141537123632774280180569130625936197413423999404630540798396083408080703323204411689410052505962340081673889890395844342714989101756957358687798876357355915609741656788067802287709391089704521999508376772827211362848028825933308015522854399746641691000866762331142667188098094728589321574307152594876960124319787633207129432254034850533794583824130143122743240255490105794347693751646089587158705815827336179069181649837174848997115999973750932528604707865557458153350228217842603495936218632238453301276313852956250654643023707072645264573084465730913411432775173249955887221233197789905797516546623733546051270405203264680617636004664522036602937246133112241645759025343517357278813180049240580161270709804164658996271989357100644346831059918669742181776478835224483983019487024144068513904701955540727514688229714922893183864167230304113551049543427786709502870906936910778081034345928951103805780138020742796762903389361000079816212750569719410837690161440922618606160592586475877532078796050979598964207812274857481993050382653643597841288939101200687526277553152998763799516678684555605767930197810388422248585920250354741695938194721294031795833935768815163906217010071543899971522019911439978080869382814058969067297350784732162298103468840493118467866455805641845324305272018404020519446644623878000863384942858908428530641302193725510478748018461878617995949932844028851603770034867204458681710939642018961548058178119682711868107661655368829231925187876095163046714866225091747397809142187743570433630154978531978757687606546404182645270996484369302849483164115615121852127860676115098749035166119939638408166038013812702020906749726220915941020201423450464170679795664427225722723145008249205721505925321025118523652167078604938985290519653235438199722518554790391050600588766044470104228361920406981963943156819130605788717091843860474439017087273137234085589382637191426719809065658478491692860400744524273731913555462698329078797037911464764191096536981465053972412123589797020061271686687352794906687274549609068043422927520007302415475195810427879537238453754255933175371689522286409417426488365400016562359056696080948936522632550867306078957637918157344512716377878946725624867209733086911856660857841097580436142659710573132643597615495581192690014788070956759161551188326544551986260803699397738725578134845036354378566359377541198930399736310146067124281788817427679449004516345932408846446428423269443077053182177100798140983895687069186899854067860622828639493415800468147391614655209582817219381664224141641381536125106765073625722271549627028291308429750593110461990041329635554208299931495397706902085448918540557109594122149695446192378430247347567814327876118971077375662169124852867844836427388732257609392052757379214874092607551814393508468376682190434140946756329826944503034551414185347224575071883973216805301606470612540812529998846988773644320562767892307538569975803793202630193557896024860260221498486578428490958846586008857314636430739963486081098999013048503460720941259799430151703312095387447777197206318715840289620939559864442042553495842694781984690148410703340533120029321540798729704229119025278871200828451824096871649644706873595042260397008732917008594479954301171865299540712605487407163746116932695774632650946833167219267993108595164238471109936271679683382834593954815034567179380321458994646143641185170892494144949433259636370135919942062810743809789232403649505124937610155465905788475059652395809323203790941686035310612894021639945995272962538022258778381376390884859452878444543003911084972918530525444224101923025896160222035625211180422702450066642214999990566277071181310928059931064031479559770435768256338875327883710049480652858254233466868817896052092620196180643559237121278473787356647124768112524565794785274567795620979103204574421616993749128353239032142207141006504362145094843995606414330771169479421055767887193493640515192961986847363397640576807573121716188012063040016328005055151467941240913295132367185328286017835068500277374633174233514752792177737117361841876474072188285130538728974641934014048256227502664715616965499651481530491065710590522062395406719998500493676237449926141694184288222004994502194361311766040897264745130924872235191286147247238353889202351960383911728560930235357234567979881296066904621918305008112700857363728810404281209412111864888759011083257688777349720173752557374301037947499762058606744025326426954971246794095317358472315117582389455757664597915410930663622246026946280000462719111600548126269836076714346868431696259151862588550589511436666544951475153876679078248939285426373881334957174785140915311384050926595036628477677177689859502334259185809669301275722111553473418979762452258977253871184765290660332885808635483160826231035197978542852572062491065555643520980235030693772359961087321113583710192580484371773636392503303229512434358018577603874704638345194501688382776761157309754304386821316927031031212132399568532441565349507224162765067421704489928800910454279572008040765755414011149047223814932144709991089808000076114575421718764091152687922081792923305453093682586078312638280106042643616135277697142896483518506914720680554105611061639601777826676187423817024303042407129991904124264580983473278677211473828222554551415091785824911998438308332505768132448198422503192936354772107323957480488092122626758169727856397129505961562579912343465605258145175754694542383330586708703157150777958869057769441604903760133835503362961900942342609202408682620717680191949186560081684520899518630971805591896872759536634897921129429441665370123055916370381869668026415825252135345362088562985540484477637973726633020574067607403643051444583153511116709756654505817799170970185694500858782431439123707973199045913270239674986779003030839489868723672855673881863589887510772086890151177458815132411452856799379252869909089698254827288016569599826808390205500530382943157367330862624712274376412728747134024635963192595294359434336648432692347152176539605651831397670544823867131294297131187346604773800514847084659081538561594526759994566931804893570033946742869576514423916533470200326514214194884077924675796399144705258425929510549788011419501353186635812768138879965451368380949295471703851188252138129049283967503206708666254734867759255059700345295748604641251928789549903731338775673234074528072276178535300095115118007147062180321720143050428987811779597717078740106358775041182310320917199603046712228510675138506672570913139492428888388807709668951070549027563866152547529760792790982665235279863148161100324050158920418175885713864087735411440079597368077367688433669373909290133148408928349481778851915070068861454747102525372021760282231714986032605611750818491787335078155901720194189968381323205977243279652011174465510186682609425421591057019285263683699660613460117568978522702340573421061924388403161579325744918248223332339741161498992122476938064906063381836331969246804934273919167048188106335691467649960622690108130907930702452401878223202333037746449458145312296123526915427031451706956485723330947027154437258830133014433677297520438212489809114755369318609631564406129010740804517885860576123068396105188419414725270367360477432844136245228720007314210368801827815270551129855425204344326341904646834581864117212335275088504840714258841977287329212367742326549942639514848014844212646770398636505578517746982001309214001678814052289867641559730054750095291300441478031363085401767549828481761907290462673391251886538498829423694290997205095221322974531231527681628963999536433650943798537761481603615066877192104533615098423988443737049253091241580725850695803878065072675835869684067472724747980936583230909549231856261197184414319596596094745229029365027062791799926477725914403988494022469265741669381156860396346970582286850038383375786061290662789211800222318502960040657971880250139811520888953377185660995968544758999866876689418155933707653454207441691040759313911752848200488983299387689874770921475497138201195522595673494463846053121351009921148459815839346993705669560904728668953140165969760233053642422181109736187012499383968372221380276889362601077785256455793008279953848343007689181177791440985156888971184145102021796489861978213535455054412565160873490524633910795547131353461446328785413747207853542630600725084047777032382774284643328147058726605093417569163542643513072703669048133436822101432453419021813402226250545654015603033762745986567740547948594738848633413660832628727035338116583662729980265060572040223937700323822537487101293811019014182108465024539411072661265447779219736429199987056019069901016979261546016175664273783894515662113001984499250733414521982598870028373160597314219895725586379414646987985959915577919348650258363581190642743204277828421122314623804460746906275761497668293490828784631340451884168572495570192127966629968284194778027761280831969859493891520705116315165875368950388193776879908864238300744462903769161155229018125492908457893174484671619769232446048175339728649353997637844253267142821602893213648599760049522211335463289651441328543558231700801140865536428363054604549422702526882166430708715826607033128927900149773823064901444858692374644012819551694975759697357573090950328881859693204188802681324558975127976424162974100125145939828745462898169657739668911548771176200327750479257552088503015478303222782492874945148272171652307286979297440370401998315581815468456531055065444196453817399147938818491968444717554748349269553697625239052521064263462267704818544825930332973941444021674795713941480261300047224352240951164340984560237640942432061815986796776369880214605749042108301688919489866592332614951606068613108795786431762813998034311492400375981743908009552057305068424280729969963168862211318765084811689120710551856535352310714851726916536161521586893934499582303677999378080116539744378960160253536035113096743420515166223869568219124859641818846692848607016077241961361249539078816099731660026320454219799920924111437616949150830777810207296622816500977429586103828569451415333599281549961102422640911298594408815964617267514504035198051581055234120411157732215029728528758119852305534213432120141580856172192791231460891977574067822646978220639623894736619589641782710935588636321116526968788366116926705057018397525297322548944761428861600008544858203344921097541026153439265763439683844093360034076354991976491839577939014452577698682049917952079650392701089671725223696594235414354436382670630988197922096181739900236772980561364905754008909440347936359793519880055384245613974087029295972741527463956387910811388928816572137590807838621337651835155712713726193348250764480123390246698464190539916917860629547065466306314516966029413955169959766386037662698836313609633128441345658420263966973968197344690083730907133074714693160421841730027244587889559485507264320214636704366165536103797678681637295358962393653616266263918568507883387536081003684164321922352505038919328371729143975248539492329580276454752846998301340673087953354588981186156323243618247412440855020942369306280062184020465375070294596234272280432347095701037249298170544270893104434518116176730265610529984860705887754257609699030539006989433313972510652859590849979096030958979778277197189351034766903820972065888362336853536246408584999127810512397227797023701204757747434476384024935459394544831490200808141491317132453338496806101223268704261975407508372411474034609970015745349686068062097521161169111112770040637163416931581141722495222012170105850978922391310704919783701361053080004802142584566249939917405596689942653542042512875536962447382890843021566561407096522791227845012089974769628373615071893750351965769581729317748421184331944089800462900447676141919335117462519350047058360835604520933742144866900827884222392802750680854429581829383064660854672108342183367656425819750122999953860479907500876064488884595326091762983076994193759673469592881605491091091886690331064375313289402723571029783886004307467197013340579943173093891255766573538044376115593977341773480196868772939635954669343655618469929232059727815234943814826954702379022546878441456258688342121806474954635926969393636833383512444409974473603600518413606091538139913990110242682472926673463808745465746668778350726325058598067857398471826437451577437595329108596772183970019825652280822255534009054358174266226326081130360556909292555035609264825039819361682382023110905914212028679543822645519931294512874083611545016454241454388639262494424753739536845976430515566145023869649068557020741336815063618401938970808900315203584254847778457128563102196744075825573657178565588778781555478154760213586260427522619117199064690080633797013033405227049593046437552674273903704295833787980820995227370352053376825349276544607289080964107247891275852063558689481087228982770793859685716238812749095056632830784547798029234348107106231288812642808515415658896119650279713378220140672423164861638666157655110441417804407359268054918792037050908724921567745825675708134326910170230557452198612126708764391264821873561676971966998070919686561090251393611283088730375912275484950075913005774681168857116098412179762042764729758891193609014408589155488223424817480625894680818396064842621324595610023808385189198389562866966644610881189709493717044475466028786784697554825051656557930825717343058983031314588767927366247767706211934044569526465810251411899412245146392327871497932990601399792579349499554204909406197933220043078935161412244236648240719138836632651909825562707640961673565742699395578868191059090890653941139497616163137010138368556125462233480512864194633453097418808967255710223616681304779194946101308028542741153309426990674074928655350386686217000109861592341949002496107892378463804541088908318080754948367304953021621347803647386454508495218093437154164001583793199316035959334467516659428337593789328008121685285776278616258545840599030721452045946876399869028996020098588777615717360261164953723635235583052006324807493093682882230433667297000981801699263431484127134373448355821359557568190291170363634099913389497158879458785354308081992114183180486018188727000037461952153710933418806726061267273360892700632898956801110379741549215319784402015208107198617227667234961313403290016617382181051930736533862926864095654897661018840972834910360014589886602713393844989016891603024198821360708772812117885524169307892305488050921786609165720151743446304781466748675595711860508065537414385515985239270003275658471768638104940646341209033447925128377238592365370462441520501015058798190295621834826221025203658286627075232095619069080869681792671071261318764719280458233627963392965698133412199428510551334338111744960069559592394346133975884710388391996402778906155341231200986070048243402343011955274233797074409598033911073659336807796004105151064474367816456919295639927461086454813172344696568544316456009448113228582095092858786779266281603801725816060113316511433016810205973395906281398701841019092803840797099756695750663153041713906911771755273227639184319676722285809172783543386708168927558027277309440660901568813689252191494745262300843353567799963359397329831638938216416595945123837528697476648359977085712652318522399681991674872409315820207832954532653576988871003675984310957727650390616722333106867643790339100896101518652142178621923380237648178396978713209717059029435836007659524624276271533544423712032403042295332256005166011719508925079990811731676982833408918377253899277204928650876435487312845390573708831858483043255255434624057152546445252446782502416069998644138120953000089373242546982354387998295362729674057426041367114344614155874620976029719750695271005153336809700799818235596157743896743432263403778016574848471251719089052027517049963319829962322923335769611160356830025931593479999907831585322617048635123072435657945478650982798072515444761810677596047413479814940534730253719580345209547801316377757528493759014193310401780705573377053730000833782859429939795174128050089653987519561590120641684166765853525079583471031342788398927140118513779210560661846400872260822008033587294897632255925555117697512890742541380209184842607217080468239950121795573932314218115374584514336004572008109230211097921304313393319714097911625167718349184942647621127826116387744184338196112044056438468132918379960065635230516640277174088862757792692922725068304614490921955583409084826866360804120010314267429941056909837828696070675069702195123324059086498281569259425448545415157538865029840763710269897657045211170061723419377187173187771773961934218340407221216760011861769494844930318826030875541434004454274708611039734199872491309240916007468502851159692641714867705380362083238928537643798151114167572645313625536035230499672747388762525886190914746085619484673072166887963867419608729124263965321665755325914353379372132689481964735235094198336493453670734824882681820882563635522640760240626064489516564361141369191837176789914496680586285696578827176781539337825953315166128032396671388024428309090496171815668959642651009881110722128883514193890192492673205745471063989720127092729067362122937748165256014564242790654253258005353723212181021804831927789133338376793549897534815314857928259283185971544480875613880324675963760134890855433450289664964044504734043164819221262257110472112646067053626026372887901036714022216615907109079981544355582649358659958952759623812045576157067679795324623672940155451058978129570342714599474315747380364537378994635760592652182310322929888279896923316641761544763041874647230893649990747115399741062314044425777000549511279749024492597603539827377446439936318921106326598065352741879847127039441730421960462757392452317555074992737184268966694765017858061456403148779853646355516443626497584455068074866106684398663589688835699098021214794057110577752720803186795621816876136600211607071262375573154958200480166533950391826979840393463422940828096272592506588391720877168882031432748013005157526742230853513236291210401983743644233830149575475223690074728276235946564138892321244722277632662686217675417439580576668523994988848602818212747187715934321284494803573892134460173663457813504085687113910536263227115028446001798606995118793925214123549449699108398594765327013081343941922510377792189646868832798043479833888811750002622182700824857344490687597861133674992563236197715725261816785371183279268076335986737099152730583849389590774763835673448783733614847925430147215298244314856302793308771446603189434772538320533538479679087720105797788616575769476326753160941949970980945151927807005832887723972690443362041012614165603411816403010537042567529094729948386786713939703934156594807236611279766099807869959212203243939478066936184244970259972857956367249429030943549855028303842676358346527285181535554634937500671639556295553532322444558102057275487209070675073352813368327989003624626739259664050351412539556123412803229555208631581569826026228840882965798823707985193923508653654498677273334098276565706745398050963189610326697916844277495751579607769941112693743491522104473217365847138891275101484022765297747737751258695437729688448761276304969135600645068477309359251395779663966980706147307160728243964911931035889005212192251938836270985354023655207479981490011655194940068795522194519557154470949775770315051540848904760117927700655789484243311304956231284537074447292843162551572803877186457113100392896873073189499725438496160357370452261542547837797988558616215299454283717929870887030089027963361726011910236954404360774819927149479286857078475997894833748225648940491561794620349820748983700044174693582086901185078563284354205115367727263100676244465411511849324477663262857374631863427795002608683754244842218361524576008564212722936227246202775724508334842710321959113739824866713486386819963996383526423898570947428961923344737640154821223659583183790143750945332358327622579587456415435308066975683695647512230391826544934789691654886388835010896092551860125342080390446601354879308222248950649196520758262162949964208676768220954005886313803679236363421922493721838231240832388228327147646047435812734534357716810172729604135795468153105193024119248667973994048547878546130956225729585431719958390161490044213865876305205636513523944930919400901212547941963975040069012422216415455538122542087658250019759921839574250800443748884901648479517349239736787692961672024643752549783342582386501991056578950501707386196057104149521867219070615690210932128279346851698089663149803392024643593958585569824824477261846903133655338262354824489879784556845609490771762449491908838514138638513027651135215552949316583778119830976836502377642302055539754270286696702924808479081327591000861515077843358745217508965464016065311428957570581442358917156815276622422773961323953040133939171727763072415949819591240179878195150279298565011951956043506953851615757175830871596451643249832919347814528893943463390645033942775976155257767941699217872877636753929088099877920748290278288446916945079884980949236806599570444834342522513201747344489231336665931377534064281672258356151190616033410824885350634143896672612806113605671430482033167922268184994686328239811037094455652700087356052026743807121562876455115446478303917958686919122376099840853618052564926676600177592014874614063707492134274650311117021603584896271167681988589885951313396885815639244902873364858918510274968561750711920568059292583649044128884209999763451912661436379235008572664177329045248541568233438977031926701389010825155068195131599290728704259838624860143346736033040812210901163372526316211795787651379183836811628537560136251467679888202280092971471579051588933162925162181199693960106242791621807597074525508487554173363164667172672172163376056176773561541069461758202598254308793391619231855441101901367066924309101600197802693533822437187779183007661382013478654924423919129293485829706611463790491431320148129515090281447472745375817225462470242855709100058645769811517850525281563096396016891046125561151864666399248463457916032287982969617425448115746066804153431204883207551171063136487111809792314401736450998587249246115150521480683876624759151139734793953871350458893905053225025592201154846226488753880552507070447926047605975432898303985943202421394004817476356222433821378590194121623700849660744671360493366747458320356046060086088223860346297968889183795638234944352721023246321077915415201197948893179319016360741595662293671148477585268669764507960271378016660211488985452250784568798176645192420232118775231739955573690870199329074666572276351817660287316980684767860582776254687964595998399710095933380092078823890577787126152112705693395064904287129786818588272549407693846376687550253005853726201271440103726528420430748010880233787030733214122316935862551342098920156222174210130868739891198934593638502259320447129655229714654571648675387716132098007503182202226303016649585320184446961582667397189466499546537392807078002628079815789989593410304789742295792227724968676602897327199928174168080391378229301486095939706722699594297318151852382291147435319228390798986042752386205704112271399421692107969758918580295352812640637257391808971182689587672970403843972912594253828618559077361174178270500431830560703522099720762587155222449276524882892470842889912670801180147326122915042055558914196995953450236510102659902676707186235408818899851493824085630925062940426347950072128714434127814536222955763763823419540100249705878792742625946439763143514710781872165979226155239749751899543401067267707935238188433101972887399316360277100156649553100793726019048034349569327678521716727786588934495389514641690134816436892521003802105517410889422070581927169081640503694776084433616596301979870610636295620015428898081356093436682119870204151928359396500753824997742530493709601833119614034196977234186336214454713594315387587878074379318177624214135079503469683955139966803513664596538395124699593931443986177181279375598833623730482204018225774912764880550179421258711903353710526854506446114771822673781131889846406802608347959453973746412747505244192171057356005338391678644084712361781862232577161822525778187007549113559731634355224271936400632776651549201373286041193918874839610751981631319442701671274489892628823866120558731223231656445517889020256934135769402494608022383075684967700272141876729778208806036828403851384706031697602083608419078024207001230890912019005419539854735821139151810244484187767858299441400779534014642997066462488316433449443277020503414046739337761646487262129151353764268616160457254656767868193437164008061905875904517871913367176259384187405757560547573149909052130091481008792879080776719721521300384482421733545214168189464642841333608008891250815358608487486883621929739911718211529112329913585032025353736163389942847016830133371620342632183988546696179372255660402953169732879414395763652351035558472048442521832325893215585867488431563914038872897694420021505281440943498272118275715505600733169715993492790989381885876902450381796478121593801031803114411807630629866862003366861250412884158482477975369684524408064943395141609552758296598074518365705802684662889523576228558257145408566349556119605189613721863157177249473281587410273072409831260363330647798173603429992073082554069877778137988744621554592289705209144378747385341084738888703263630236963383049442920563281241043478486630955265818623284606343767570043401196207191843434912128857805765039408200226242278799497434842267917282720289293698059851163221593011377998558934908183421696597022985269975427347762122560045270477775708932846005249708412581679849966164991754376335185371932493263677475524227442712983783039986174444799450173828812804738609024262183121208070864175439871097993170357227998794592339393910346912474912894975443875851570183047699846211388345788006240480931312621054281460613308140729323509112605744500830011539992830631426060811199711764398220619994531196944922437098170709343898820589504874375634144670882626797245359391788015058044908731400159517795185022728902101506133994754026729328390285642866623681909934577305028228755850872745072211268637649417829903784411177183015753785053446754334469971628864079798292865642277046708817825224413624556981227179598648218975568876861391680315524718351971098565778350290639705472175501277363921943865659569944698469469622026402589133910763185211054297429444305263861912173200355180099743539320474966277757654452828764351999397440853148411141763266508785780671674179168600577058590152208129175645690641019650614221432297206552242259871112249317820149732655835941651638577294967242912024356228871579243606268033146771154775289769991576162886753287081259464185434922398939427601565628590879538768289003401174785562558891652163057053379099500967252831967889937167216344963484146649750681450868206473695734702217006859241494015207767793603148231660805626514359408438056964533804329783667987796513208302476129079318079909978003405484887171113437427433812583141305382067156511395228227945544836253053585613802809332255866668689720399685306852359920965027566306327964627279392274623569209716178709454391695798407954950044580757810372322440354801649294821569047375716804753366079874643072637032531083862268023739963919465146064660182494580681509577714702371951724150545745221844497488611404201390970486331004440503409537158155224648417592381671044906373573548096855164205292114546771730243833378216534246622740015392916688619196230683405728971754984262916776871541468052254014843605394095699371166311305506428115045733103216716500194136917114394407821337191869180649437581477441492897141822448906361797009667493437967026055474097762943734947523916106764645396874247606383733524919153209998732868270936373781579479254767078432082444700598553742793526665930460286065302285821854030428612114725188894261406256963181419426144493229477033644269279585618334660746132975123910416807434946261471444042963542298214428111653478053286554304433185518680071532752416813023343932509192853244741008119923535315894346475676794420742375483037995119070986045122210778189896226714189169801210597487761542587322595838075138395892085348443820736728995224662828025462115464305800113038068557626914024128153994453993744196286649564832020557866877107303147316799801066220869108783094238650266777213567918168775735013723865212221378454692813232930738982588665469604454699029700401093457087502036855725201920929780880798727017288304493324640636446742518007431285733588460740789103503452640897605312820583237237571799245108647335573671861257648040114570726931535804077536048167863654714196767370653604696637037431951399376894549137773918450712441910383439943188342581113227864086224559799828680370177146634817549571798994218351501216281534696056529562210854569250082046642670139509011735350772581448248435385625001676487840888730876888559441819658596290080096091222871563253469409975465546559389827082738216989522832580543813403714060289701472648945195593161271377733596702066005071249974328541707294783717333445495202165881775437995224047829528163877807226124014583122374183012043766093964061217402539997805879602188700052682636872825259762909919965871815172989982026527355633728971137005469719243407969972701680608150860496559179842890569899103602180453597701081541082959847392476483944058303522898642563602120685009471344812567669283665500686175376847732809875365089437317315220121585524029760322258470434442595664062281272216831480276900610449730250201355579275750324818920558500602268061162194749677105377976275457858786313087368702322143612785108549853082528173359162559236145180404917985454679187527755673294851936259548812371828732963819996912214420091986674620553468486126162709184438075631694356087317938892680012063875269858831827289268515543422816938744018727455549385874303504709669413145451305630461536220086067837770726318308085465817242083737106172574934890535064805130349560968466892242028106482797175997025978541647803065086697246919207643884462229361328403623091064741245300914112899209973731779121001352902776453707565508434401910083774636837638876093181544200212922868289974673026059408820085415778003720631952648345756505794953716531224359395992328776189851052984402416005342779879276245686665723849726846836422860940870750049405723309880341555965890382242943550246916053303579521201510768471118885701961908976530099704482435811456369107199063400552501225371904534728766368700810455680627386050904118691249698817677122963889364638340560663614349574887953429365206146037272592581900706142941217944318782822187076477323933329788026942971841754657733446304459148709062013033721429460616458393900879854009491738262330275137958082314346420111309756200161184961592472478620018280038408657012243401809571873502430503964758004867914753491777614059658580201694750316635225175979787086231014474354614499170288589460384990961876278091849453005779893290392720039566998761632404564085976735023963944091856202310281137401635831280895807093379318332183356560954533731022850677092118285166882085497194455943172480280223038724459681136203767100607814449142399352787314401432563992678570036212557280997983729742844413768640872582046787892934984144001551778703208365802996467588135320868145034083683520377766798769036754163581285386054192383360252727450116489307243695084512149252022364903712823830611915681560530030108339527539705992907618853792866897769334287201747551333872956148955514485422545337921479083930252550293082399938487348964933083060269578478333127534688232806424871327149431403772393090255004601969267068190399529390853675287048651362703005145402930483829333022712414343411824477094683600539433378200735585470401886108456422050504653825525243955306028715322988025919386819099952238848120925687285852054336078945035023789318230993273666031680522779830766598384613788644342217047227314848186058124459831972053581016507787458942967386518933309455821800033032589938499631294992919930104609107898358799973432714862790209270099210748512491851728336263658502028870834669407114675443074987392697016334669424408184035694015045037314188663652675779692026404774580389250128930756573571956410828999293743411915040227375622493382088775120783940479385254600814531259172723403129629978471461617850798894145981032278711442474388172571929629394325768864975301234357462640504050752638724198389053684480809095217200163360654742025311798696631768927352118151291340286905744794215970889300476374452806411325275978889212970805620111655283986062211170234481723531263283059778166345432702013269683248343636087360149207966698268844054832170661910180388909007436297198958197789987459280674101593724840855699608444356892614696435587378210225973335314963758663045546241457419231907471591573170726416261024382119405075591848997914718747873471343860825639507714943023221696565291663058074729615500313768262606992162604183907810350181765532051706267865611676379302243499502504870088494714935104308644144835611627676942245289482583893875758636332029316841637082144521823929338073110030682544265303104260043625906551105732640725742860126683487522919569806816302224611229420940820665163266861164816514871169701231320315564459996861299236787003292338901719872087918032564792038820436115974791877180780461995457908208837400140023537483378428234709837032748824171626257263365326578193385830828099399414258401197574602641965288317944184872738621857023538636919992929286773246341777844751989020739660947001378401118186043013504724660923398023668216488862864938793008405935715623912317129726560802934396367856534119416468002600927490559888068258932897549348570902363314037372446805579686156029537977285250333394482221135794502094295891657392958926388613577284224304222182416411149680093658730343259145859931563713136658666498935473088849221735099930957969282074564032587133335877624140206761965837210076804695172779313471845688950470780536089239054823845378261112780844255791983311206431572820736953219875082642432111345116504699512062689584180097975843975483785700818281748261318620950971455725433540440654315109289386416581000032276994846951577183268138787613346702533056900909643660397013105710522081839098865780329761368825184860508224145578168106235189360551294187284558114605280586111872780414464804375278075007143996738999987734556373792315668628117789378560333534559756770359384151386459045964984825992487348694895839523939482685350032754037173957480972130840291923957771881966156240277212326178438561203940859536882708430499951469729418257774590963727052026468132148355019534816746881112547003309201323200486897633845882994056463780168530203095645545179398435832504502742354343913911213668648056150539311365730287530753690017438841092167654687566573983789793480479673562853095210419834823671596193866155072534514210710840855049826129681341960773385703269318163096281242060884846576317285829353527351988997205212870879567881001093103116559146080411395929855077412850957486454463496167698485094223131250600030436006084287162365148924586524721719974051188541947390622410355633592962176086773389189794517739569862873713021211804890956454459656629277709645814584377942324303635959466404395825839103748807688948418372329092952307331966085726484681619059960654175722621469603205343129797341017265087768041793171509074759690748315184685932930031629815012287531020741654634882870459047587647659842072371910357373412196997347993917055587159463166229832588898466490319815578698909415485942143210914628311120697563518703219186060215964860163123136611805380890688442458409181518522619821576569118813836606378214724640195493459242773421597028606288856752617912164280755296358804439924714075271240058461167343242937348605385320544971641736525799880614396148246190519210320150315768549137366374358942683092914024245694249835813752921986558102392803222462749849934663137791907603641176754522616472172972667120578625650514176384946847200106795592183040149911295449553218833810630372415743004883506048284817010392151855650188631711274705290426116736178848295082245409867927776909705378052412710986839451349160110580040760759389983484567561868399203672924245566369395313390638397591999863490005091671454551460973438701553747694360888352073323361418069362086646809272655998129026546179714971926918439617856627809354644646869371856955241493164019291684706295280398138122141231713387864144969594785526202347015293617263694567122459585789109674111572088429821446347992013379689993795757191595663793437894784612467887136161548486391479769531727385162175067803530882788293919263584705064372578436703459002938329456320007400533352250123501650210885339193699315172444551754135091242658902764871640774035958796046877867726368980436675653452030155305803455196789831538783756211673482630080827308655340268012895539536291271163139364062321403838723011522739635753657972990547623593466317811880239825427665166300341677124605370535769794747977455719490968725411569235182221294794921765176385370208407052639970033311471310982340298903026881056727118818253183031922953372327459202577560370819784933286866272170521955965306655684082239971491370279352513455944782184162717107879494831499282524264601557418759864169105014959057641724431576073477266991561526883559964032621863608583954546916605853524294292364938361979858620883806663966614903930507574764759227595088688683122744235226953349925453788437647718894668669012416945320730392660909181696926988519340119463584635529122037753549970025156579589313115262357308028954314232215376066306911635915332026540689255809540485850625487596911811862633364170347318356383299110137204465718779734000736609731910510002149149929957165966380507239216784606372409181194312755684849590152313038256456824576420086828741400456527338683794011522329546014511247124037497763639334005533011078021291978324858936795531575548785173884624649142903280597903428655860683254375323505063589868036770336354774199656237834100200477379199783222623958944878799541029308420687722589337873386983120407079066137103068645325016021017510027769103319097683958820130620381541369997941943182734225865473793652794415095391707951797135843456620097029857940147394893815329420075794509154774973343356758670659135600918767598210300075739603180197129420039632601717865406708918915444765339892991657817921546742013518104597108258393708863304286399450410995018986963224262493842844166349351187167686481767059191338476181834406586020537180800941793541861686977961133003640917346151266881401046833909507739562302062708836893510979768240604766557076128118681418226391764111308728008039264492226654250228109141836330936396374156545420541930020374247934557830186847184370177481624882803915585476576656098539857214440149121784733878663336873202886844451232331879576360863264937680699840863458840053295888693273816719631229220091501964355540448506128639929481904850135539471025127563272024923100208226753161103661317151201882613967312855727066733293396458989514703125937866156899580238482024573665110014925608886023218151446781011198815955910525585581180654345729622791951323882979486270526490759587195247076370253192138854004794594495641621673772474102187665851032928930944881451867312087604512059098856889623601221382748106548065044616331061480062209004804786529948463633018130976082309489578227193938684400315208606911308890181553943120296426174703440041572023945830972121628417619579341699858884554510391973870577386004741271167813857571935003917709811659174636913011958796593654888968191720943746053086948396117481702731224912381115315852235173149708725148443418337618768987319231246892744238834508251003246605018188607280308711384848193682258530449804537161122470541281609611907394380073526976417130105793510891013733286988438410852440682565380512424258197301485276186764653941107807190596766626943851008267071536552023188707504677539330380090773697864471508927481125907080676743636441449174979731348375206533559965490495696750494941247943221265542695679791433838229776036000286560327257250735186891923192548084979838584491718583445713426552341488825703669073133929017158033100797380737286398454890659155134215652038720766087615289869977819966959474474498410130953793105861930395878339651776601114031866225106066456985872994578211158229582115439159226136084124050135874221628910148947145219791464150992382629700132319422704094145169007143914644079257402139494932285557341413892411506937662435230355983130594699743581490228210316743299589009542374009070751126887477504517833655023091589898959649945444804027667650061638933059334698080336325511818874829383732769588011969080724489443423492978175658865417977935717139971982563129208438764248736502791983890610680913166444005755818538695702216089732626837315381368686111023349929920130297923054312318523867555086819926871398268446243038457514885575151601728998782923802873358762636116257925082406828398903835448753348672285100483114185572751181073920722331555220667537568656855469536629228001014584784373920414041531426760849547095436232687802929578450427469831955140068256279823190655933979761883992480555844676397947912830594352412559285062935743298892489499089008586643950749422471653507977022845409900817400059344399727646965890522558196592954801260214587854295041394849317536451575907405201853565531592159750147255155642516618123999168130682883379240018045699734922192945393745361737033105698595862690315853193782565017657013662819587879675124549699728003188587574763242936974043942739081622942713994505310380616998414461254789816770604426227019203883573922014961045880536145282974861173210958705256229599354381454894432459639087528384177860637609889558384326753055587665944182682036169330585859059686118970115279218868406075546729266392605020117163853824870165459725632157979468395432289155309834780753668108189701710448482871825706159623729690592406386943886541855602271286505560444485961832694443001783833759215569900606657576711875413795598350316887629742556417646525241895195648645948872248057805102514379562345530312309241219060171631405929498881345864334714845369375936851329751348049550894001323352793848453190822915211139495188926858791155869415123271517369551033129934727380958115655602629506781533403407154865281294742597681067936250036910356988196766979187703311937452990260669047297733308050464126980090833416711766774342997840919737970347093142716806670140984201542863797200095554303560161594130207578525130179120920816816531740704347487251397710184393176573871715140816738653859474487672118026752388848447641949132725151082555933246961838134918341232807035693781957597309547015827621607901877572269290345498621900483180584948752171141847533031829323445588688086042003607271503854245377990882843071192175380600837059640810633333440841713337653967044169056128875958870781676979394723531257916295011170471189706732216705150031166654689213984487142376388686381746354602637769977999221218163763088339570509647840356889285133026324173091904397314365034121086760627235065576845796816562213111450126307060601309212824459672128840167229872003333694485658828375515007693132473274917837472159051185597802527624044078835990585374277895172218241961236091873472717317248474381941490833246200043848965667139486758454232842422119959972911177166418865575934040779464961404462982777250090487249266282812219895459935468389632783404456444632889864911486590555921523222018993162199678567019723832488833914063190451114082969549285631548878680966771297575588992205594114530694459445312009111655627586971185641323926345737712144845895765693776951615664166367845747682486242008340782562692874423058365822522856253882916866635890418210749073592160928641375862263415746418370164355617660705972304557703319292646021209050914377086140186939333432600664630336797086020344472766012387251392554162268958780585992648664407697533919386516943078822434558681124322043235397324193918791096928546806061832098026757918349212653597410080223088648897935280829404031743761986273072847929739836262267521857254737663129805583298188296688057601540249074023243385450569784593776345600154811728659756825185168623284663045259444909948148993503934492807809889651541538693867198022882025134165602000416637365921994446433660399917366526455783696417745336359494609065577931282780262391635277033862379243673013061918366057303117496398505864573134570006489946719461290430343970533075691682434469767206452972861895261138427170418452917163553699443436899258343525693003539016779631622734964296216989288499585580524895168308192671359802235648809706319014847590262046085148690984563982078259187537155027064660894276457195056985534047845258514456644528486349440066422553201094347381745962759932986859089174011838630675716179195514664433222559313192367553470364142983816992708139306250668979245926999920876446659857307375942672686105401455782002436058384443883812044205295175500145036787633747492403378237188914435784891576150638595228560668301778056984174917464614390410537878689715360127523606631828326874895743441413720313856913694394147743691128475069971800094029953475185414881945749690172159896471989776525813303392831599663751036399746486683424728646726869202653908265655207490079284622801254349421526728090634782163291609291304480300688286079561828246191241718691831026541518336019162518736838017642516566725308612016761662444801984689482244211896578121814658213708607091815559004055879733504198758272076708550727991488867786766017972463759350840249370267313295055157000060638164122249646223972063974327050466293484961165051607952864118834987271675281752287915539042480177265467364501914780228956943819436195787314166271326191857470231282519598397408366532972577342193655983690795526211776309302171815201887341757918488094001272623535682647972161056019132901102982447812151230623812777106122489442860824833945551593500477317807622797537515382951720275658980669602934490849795094043955152350851348109467628741716941241647148207163513984165049921174838562473761494263608163466813621654637530108505001462118084266388445302086609871843674476233416202837689425053916526428301947291085430813660553291569413076172788802373349065258592342409055598768166282269908699452976536866536352103746241066671683952981934644776270406528971831628249522550097329018307809319292387251099904106574918397379255876148527868819844289664267806193842114598467368026473325766298762619709858105734327838540161855764870495886029541243105347449425100488362211773353660275338302041452498622346921543756649699909448430290034005955267054956126905875196801523079548554527781298773111018048443286529335399595525956145177115670599599156697839975517540219744226918916274030621326984109069528517847806128134566285758982064977595739993003234887770302188750612987917856667045930993726603464326485085527859867128331943923834601650350278733916646567343923461278216199063791461524093130313733554603613081528792364794212465011103223509892325909140194143707074790483232554520157007801931832850676665401648038315691772942383369906972778153954317953185332193922974735793939254042738456681103506918450546621595329950049806636898175808880146717551511797853231697185016725872865745124470856968529102096549098319395479576912753889491549403744032146288790863934709779625476051860067048319900112457137488319592034816985589418088680222137315873277219549473747176689250332445532593784347820492170676708346764979183328594234270458712009591388209227356972883319494056868258385991486832340062616452844052538269772546017374896098076703288375247682240074443783235522079060187755690904646175640913492343203005224280611987668470951678941460995991543015772852491323230407679691340440197421630577122128159246032636384600663261497759205258595482819737028241680791443006106087811228255335839142189015617686210216295762389900452687613832163966223537219197882833666565354295257177090027981539842803507383669625905092410694102129542545326895441669773107149468897635468186523591706389295875702771641291480523191307125562117790836272620047483360861292314527945879188051155157527908055142106581452699665101456708769343883492404690590799478401735058822347158798388098485168160380046173985766712311631041217510262313446857038371761090891464226641990561358008377104569583859886794556037667852944248533028738472773017722992806605150784072696782112118547013054575350240381216908958767710986915985688636091991858361530273084708646678057111384003439476777905153204862879394674705168729799410908668632499830967326841025030733756196531539948859781634448532552660608958060270647592231743206637720785207538701243491507679937546324682451394493926384182626933319452969891284747305798185345183113803458429479827157101216767294678784523263795774430603607310151820996444280076312456828474048126650746624018423585926601064887255005965929858689062560984441331397972656183628432849690697513461666611937458988997425486360241977613095858270248915138393021847144565661470089701895778960896148262596106101157013430123780648001659307997181417654279940203047473154328483641595209606017597892950138520521122363483793627206122611753811594554307619462299756784388440190323665198332250166283836454942377055358053210757399128229543439366005048730804129441310417004095334622974502007761124833380415180079527155497601489559335616785631911599000580758640363440459349099993616203817153626689529435485453483434681866323716748597422016445965202309340723754524489395176248601026287579889707382393295128678110607812203619634384404227597510121832731520747596560351259292067912505336536843805118532707831984759321707032214822916981526870371644961852270606208776418044462514042338218816360445441501144253799528592046888258728740349841491345664488763330440353478634116086398176875588365142542563766732001559604694387941589423555096416875632643579029226341422148428449318285708874748946581666725611122650016841646329204757120548880808925579407628797648848877186000379173219870715719077682062184967865802856367455756619360591055317860785275888047631291218726541603326125673018298967915087680212765636106645163146779314202953647822196978168535503410751865512359677317448192818318354425119871257628279426206481328953949484209821062976590368672436463445215674235366328202792948527026777929347660105810186279330169563828836607975185758664611515361605245800284616712783548288978091301983347480361353688672212173567771434627460948398944857868535322398264285951694024421891742069628710324210048096791455993655453216752287278057853251752921337717938928426182995277584158439926452693943308387618288344129643416726725349905635195555313638931409046239885193221701088551016630572560803243855983062837763414978830171875286537505735492278198913012483004568694858260223600371641563128566759418872532462709877490755177418779824960495317853162245103351918283530012537790122749010626348335139814861293693670021043400154471155086784149222384117142977186139302753763675522403120331558402223177737443650800910859987527636918595637499005356101219806183808796457280781791888984982454341150756805563100509502830216208857589939643055647108976415614449272344381926314694383463021118225706969844066551391155027337690053733810869364563826110813790208972665910375985756301431825190961910861854455567320729102791175982748350660221601195506454023913814203312646360713644068947142411300936102712518381878421899923755734385830266945442485198540370652523417579015731415132119862542405656329997416608725910305699304383713770569992550966190283390059979917910466590580098083023608846882811158922642675801211321456169474505941175828231432366891611337772089084938181717319599081799718101452422137591166568191769327697654553787780684861642884971550389986673187393018438529364348023048877381260067606064159984920263942792731294354808407336213572086157944035810885351809263846686134446256407207231574481272994667316527282182106632799153019091400280792970750556039120637891148747379194345456915329323124089553333409486600539682517708447280133165271504667551841377100675750183150925619735182408192937143224740710583093653222501681555600598152874397718390095026696339686846683726212250485936260573004967840972016790067897912309662002326426094603369343783079025552850529305348486099577397789483111684053435974182409486603292372810685996596522087912287118047972450348867769478605455284425749550946162203321199122538625819083651171374172146302523230899473980299896524095765086887484795708924520734111581503096573339637782718075400569163297186056906154678413812644744239778545345924345055042008687541489323685773442000969066101998103547071755915153254219835372687154444605600058267374429205500486262814398738443751809832027048346750962957879833781196654466310846348080153648338702702189548181338415260004822654808049076730479163156280676982249136300154978135539963685540637594261624248253294229041776911943857947194168493472166886728766299855732988567136192628733037778369811154645120436323393709010863401478440723865903459834551529101334612779397947988267955024266316815587636648883626373691756531406568047405413718305336902223083541677736170508584971085545014553301394024670575909412170711424682386231944539210753535139966248348160016316252771820115098470411505745678189686654447296737331779237551932192534500910799848879116024923971571260729615795866504899478054478418942661981953581183665593040296470037341502486679247812464946729191389966134086056230404248150597174185635955551635390349918250532861793492857584762649669586424393956720678495263334843238649470863119658527484893324371256385595719163889049936505884865408492110193479701023651286089042116554589770210337453073566887660433484593866899627290667583448187056622976250583936125022641487355214058103600725563478594282777308291983226387171370524333812964903678604997402944769545170387821294569514326236538863338580150899810587080180295265641568932158319579511769985243100701480834272060178182379771692583067734163697603960326471799899421983949977252798960400531590282449599433150612436069856757521178610676554120378577291739937360572633380965082826741362996299324997903357598753191034909851630618864168436514957009139916109953640934604118266584909283547521064665337556655781962991402697227130395964139939665742145014082638458786046078254205461763799488568036135873324903729288348705397023164555425082268058319878865395754518808587907965411412652721586331947146760947521389576881929185629540451784614784550979308207017811505653090847215638346700077003985563370253950736859680579504651146823096275596346368659723211303450792859614408807306400971272657824947956746157314749475439812216201454126792847792360507661466560914743947849851964022117733968869612001897716577276658209057454505556816471840479516941381318734769748647658839526874270098919048508039276885153243285117633500981286895717615830921584648944100533959914679419992856358474559646963655700362094030611965335950219515354930272281078681634559737660192546832228176413584024245554921784349369813629713727962585041798406198516319999934646377901458638813735516188929248151118346879223932307056768747732235673602479133615053788513163334261533546709697610839132324097728903871626819300363518020259248775800422513932202234622442050644721078323237867522149777563623218725135217298864289413377622918487604192753978653353420465072812245624029709302212941245376645636170230584541564806715036305310555400953353914883210779747883228742536444598009537662789035349827761960693906971469229865964111188436593940423169108463620936931250124581164638600825717565928504894671696503365551451400066715888619836176818728271642799295006629460173218687883144137389675315779120203511069728056096282987684062486173915422382806480636591510662968317166732653857036831033350036888563645263401322070678921292000229022608693823757669599851936962697774257722967539498385617653999707643527922706031402102984505799799442475301809461158581774118601549850841607310281104204636785409749081125263286620226041382256156385031543233922834737813022605405132084760791550981973015445240649742538003175946706032469097774496175923783353957951901217281207114749331463111263480155997859823268846337750214421268249853903253168025249990521764515482843979401872772823336707193248867647032096226424779389995619721453156121396784075935078171577476084519243236192397811118829823265107220381554035539749914217144594305092315189208316235801559564547757420869833856304521248655122273217828014582447085196492441237790676054189950882292327320390024811252112536050203702333568040730718209531909616516630710151334241478301072116387494652769894234544948595763682902560666178459699845440507233916004643537189934065383975835034053264876748110864852390954675272184545349116312498361024170957807001438954399219715389840185827330734965741844740400115076059764773354351242029265156226520992709635159426955187859642808046048712030020365093898264795691792841570889569867454493123477066207999039397294997098299986827679436672332846827439501076246404711169829816161777126005314408440190044089738338455506056941176432495773926602077077461577898204378361050194380375526497317572624816215426638099989039145838967853936291143304720237784813245620965753148393760306969789229210191828841214322285849165795577950786828059362887659458849695511070286209877840974535911995714661670042392500192620280026930004696182174176981455687313697639692791662548081761254247900445110451457544952384435835225062753117155448014243467862576817035843270191336312826072947776945837827288878428219849571449596485086349643235249564786338466224404606010774957669927915096921838342767574691473486806858899924070186494017017172061520437297479950871726126845238247955117719367218268547304245127887902560683175172049175684316584520671781157873346911340291272616794639534144842182759384273852832200138058433458349990311221053869188729171219519869320040338676829761051129055799434261634275815623337579220334542770716338498416333017472538760582868976469038115666047324341794842291241137133982610215679517765668668203922229139279882681671878527480649923874501073460339943671336441907000195375910587597971574293461269410958375364730787211147567973584554419601536232508341827898942697976900945907859864568319415469773810181934488358345575131645907650803909656638266792674351851545817560516163095061745528498925916998793167749506209835108596340676124634871340118551492570518626921628737200049871898095094007599923097012704420911263633346757186551842430031424315436008232516831450551466622249988011696394371440020326148534965805131307238100736162880887550669162153771858257126989955529594281117297194867592491710903373267485160550162510202860775151407391877611436767498553838472614404563926727672030959132811576086121249648485551729467599455720950421746623763111725613096574809168744295857600148151472171578972823106890256313293418998021856490063629689244106461424151550382246087483386923620663933863418067218310371260727506698213718379785935636767840948565303881031471382793978817963724421779198654633378924297234042604867426664317968645608592658821603824357732607883387256844245777313987232812075045735452875135941295956064798822719238448240525345266318496302630563096336879056034382494002051404732295121519910419927221014584003478397031967483229303635677248763215910578780748236882073690916610791186542466546481925682956084167514428270524220524308899813067012754465300597061960801708983536299433800350083702093866974014190807300138525121551164657771220193400967309504654598636007728510837912132838193470000119663270012079534636364877723242471820992899430095379019373847305531568519880456408995442688621898081146336179902806071040059213794231428264888543366288411300028422470982479363488834074812336809333414174374413604803295748622884997991811843723077051306288450515652129240880204447604304239303345771089107199830489216915031465365702237806505014727148627062722312641179417254969177671888411767631925866437927768466503702412906844369881598766917876072541470831389433130605005473073470995150603098036551196887080434673713835505049268959443331620819917254919363541589136925850948727626666717174701770869644887744097593718694539691591846284381753883101619863747055499789534759786307948624637067110774063120943992335987645912957325943356772648821591176203552531782223754038572754325431193536288716030112843826816136244939608439442104914248800650626462879575994211381561525278532576602449616241083180370553942289835135354502420224766975950369328807329439441347535603185421412720264578193326930821778584927904025697649968319942065014383472033612796256608169763038040754506971512062918239831623824537668630850490046068377341014671489681442201508306228157478398657483352291078418136795279718977437992340770194820556489113572077734765280364817436490715263313036605694302476643841964256809967773771572743520645134188719875015440686550988746901012080554036758855361832745693450049144191134088911378859869562892711290859164590043558199355407342470885117656355459037296656515624841943540879533632891980349713509006405880075585355975273144438768488587794287387642159819894374530698558215156314184557707283301853914187121956620983846579701472601237794232159615076803449208143334210838304415558386189663933860783622931796148983687439974865672956939328547310257029592051277848444913975662794622422237406365033627848477267153339440425704796714938528649148038948542146716203305121873743506486814418203779996159931107076528410074175969355381088784739227196567320599683930016113267310608127817811626711753931407213670279008104798837318894177305386980198103293063884756860029482029728495709664359216760511393727135777857662223344132354575821858613389190142560288720512443738270768960051958690717678281957106492451305154161889152304474922969551559583612316944798673982324252539495343337700086542589728373605586211919744648170642028019456572232216559860589332476533442745321650547697471416057299827069023759333257601399574700636586638418626437342248357629577674788657832978049996154247783028122442924762430542243122428239790645525940889435782108736385130276959125940389103415162580610794663200515249108828020999061504989343936807163837787253974703187364003929651836674538128649342983918959540361084584857823637572525098265836469709446147561971230261099823891015392321444779642057283950458445797997452643320480777346273114061276439025500338028841243346667675898639771168001993501449643451278863203308869916436681127783819104970923904623318740430632646420253573367940216792122019433902372350408912569739771264858213635422214425011884750247507618061713793662158698637582814682901464372522204920685270770915423413223558112052258814836914729969592436411861132967121652270880422856141907727772560111169518042488915121816119194394182418756742268083118016967076706750880502958204036207790266075858836961336693647412814555908671633868956022594988597157454008198720441414085592840506549169130206144110110472044273403060471715057284820642824215136153749203311501344048632507883679710731204105461211262915666818367992815426857988306589055780622360013744617757477151849532127781680517003794620135420168610145569663552542643404346476672795730400781599671542139971229942671560328408987657101858826025424037670107657009010334955510019627806919026355948549774982763302844873410157780456183955430841034976355469574610375811108788272977859925701682224577898114515890171700479893491273541521227809058163084788290022218131229487744781204631700475843609176352744688497777773476241271056473671112396504840447752689640369460004770060304331147795360214111586226811226113471437436164953105172202021115855495586146114530153823206144071669780642276894165597314586287036700035426391685493096729938843858479742735612624751664010939380298381085870831368850794903195045196865123364815183248389840689681545339633561994337289837490686814682990851450301582847527710353647567058569089010702248841346599099234813848876242491877896032898652937929497176266462453971996823786355505329122872800088541873792565414647572302252055716740588880990241691500462937975367496038715442836945733249460279456189090416505005359384492248515437125356298828963385264961143574804097463396740474079050857497553874753456532033280918762138669596941626315106763252165940778435615243207055751335132503871243156668896810836517251694452159034792829150998814572569425607524198192734676935857658042358214432128504060982106357909184709554578721363360690349187870707793332980184100466812265922676047101398488695195186905944976898846199692182719018471922069439371674346682294546533506439966121614683641838999226013978181807344597026947639375934285694872847894112471558317098686735710243173729616022985558586911540735870424476299984715223976099178233328729517978235209325939456517480697758304532244524152412956008662697483725744762748514554996272148834256348098601081690375886931054762596329726749290878844926696312777965014764954299127036317141533674328576488337745813549467596412748035160271859972580430312779474151785213554250337310983126692052264909359965397816190352478425854841821307771632049847366242931591457008791171680772527618586684345645249507815805316857120854586056705185422155188321067036097421111749580332923331080873104537877377324398201409912897210814780615711456697814557970206145217644692559770725255809285327600922276785244067467334739705955665641980488706740006971175542726933457018309050445765346139507658528178405987914081352798396908440224097389689826787613924838209064088303806061898005739400262325483520387236667310774568952279569060420020741300185600632425336778052450274353795002851275258790201726990316662236206845740632303735317796474697175322565022755996449780591039535093992283188071752206968223158441388187260723488858190660816215822363367418365688091616573434804009009979385289930379353640853661003617519145675423494352492081738450191883125649724672635105016868547041024741091499869179246061685582504036213447965415678308090796916415268527341487604560589381587489618804870634028313619441133120348268502788370381574249787882052534020861545389027653723603391145362095061425430472375035822924697336480314300619148553830305534081180899676172238128207468073176288509085541187024879075251169062556419780940194049876102382038583317686419315073014275955624097920260296583552840454386918421636790420928375645763665748121558454279887833658203241835465061898027531741204643794597251714033657176535660503569817005268539074328203434366753111196602701397451826425335120032100802463983663288546092652150917836231720375658437637681321887907819774108299667209044273343591487445200365943911224447260947174944656674946400621451215750320731061173366520600013953417929915015926906873015925802563786744555361441620754237721051033864377913211262090348007209248338551799884796789705749500584830215424464287153376377881345238257730925040289112930561887437502497090761325975415082242956138807035715085943668216353226522393806273892034536543602242632830710071227752574874938321841045936451142288859203835935799478337616419948864498850689580014086689100435965427631460803140736341445536718405854083676971788033643424251949740069906099251341016152467827632019433850713984136971682385527879329331829233834737111754495469594399161537341792609690642287892303470321110053157828632834517800897647800986647018521699001663522596397524319790184156194159758468829384203808685003252748016193090743200764936658689200870142755143338631019222260336689570957219054740430105768712955592245212538720920105901965217452732776681253528167510472643028094060965315871752464236102325972933210839991977003677226708752006709287106446625724278793701958661036044220913723260832565771529400019988115601500790054634462367459989503504673634251012647013473185378636171068879091962529523108532864765525666989216046822381966845240119750046495271927900285570879909961090378728960423182692643543985747306898490028802210053742772381356541188962299922175866552964934252936652968199411249778392659188572251354702883223748784183834760468788130589248598658906006172277204797995315901792707004056788431865593387837695659433160267363592254126005258241571769208464274149558420801804582896743789766488647454660877252106920757567124671154597225957640911848611623788092714961422302609427797580718958263837095253230523912248512907131110497205459246623497843949073220768968086159780677085900537867142362961250922138510696918037638791085342227086020820854807444195432447772471981590678442598067251205368532786242398895447732634771979235927469705200161962047559780328221072655284616217546966698209813915564733456401663822099380669751319672271480527698290176000841756946351187113169025479554746378640389193889804046567141836877246023696215730544024789031472446377864052968620694356776959603661152802168350039943857912801510875499781282683850254054423632078432553409710111901383666492690510854944960480342065043058562715039608192195869030217050817140952135771302580419348648835985831715253068559307580152618653031993700347640932091949870546895640626727140208822763379448544918261234255248484391370126332569064035063865124466573876994733543387599524456894211987028236661005172291406615200181365634572300693142831814751267177236405933190703687359189341429103635325059278675689758508836437490473566937386500735859094179555451177290289266980447193754430143246918299114493415841215050954519823511748432070535470135606816127362355881203812913710211665311915816404674420333079455270877928003001938339986614361609880519356963786030010939871273031245485551711714813059992844855893805006894297723894698685056518248600577618527981963264479416313091059261863861643345755598698538406493084387851045491100369438152924213034523024703801578678385718614640704764542193214667745890885915891562986988176461104116374655125800213550045887026346033939778119702800681182792724369360239155713332923936496524008171776187856432369694362703997603187309792237809976527313438287053728552763528296094382808736335872178734700616409423121258152628363625775701294598852319257091776871066160260615229631045978369026017459591288657418744449351630818738145610513137800548496793246937249346967639954980875437489215606051019893124067798826163170354624565912898863152549036468294114149760430865736281369293602437412924320949129643080582703105357763423462187358777038038595465562290029747725165403247371339342013266595003419643414984223875529770828188384783729508322394451651918222571412130957944230762973486339302300734925238432524390168149978267662781095474531777923725477388470361043125420421859103134364174214945659582839676285986758211872484383708347582601903674606994542133256431477608015636259282405188009171799739379438536571180064194792171305153371780716587151250144449351968066535811015708065782027637993626014040145168176210626079271784503047484749781448930369980381136863226009497698907581108279992475919034151002772053208066761116694731733817237425991535116814516514694222683567725246476252646801640581369275531747999250732238918124942320116676955838092870448042355719544521351033528826134172158508769080159440838540341162648953695744873715562801155977567665246419998891437183561681788380277287069900909292531457576069939101034635119556670224740976079070236703747079671862801670149896939908293583141625306895436051779312100981798529897345225014846649143494233041107524037826058197734686269693985951058135237405103781930139798104409651714416783400378516873805324132602303796729761463075555657345944393306758253424448860351936702972545113516540765051894726594184382689097665629374849949661235686553992528624427830017560318899733092325276394315764506613146013872832286949673739821881310463048377420514919992998554076070157890950795250192990214541626014879442991736717209670632418497672912191791936414466579025277275757021982193719404777850575014033008767611607212603016287000947653768886438713909141550024692229864794327242767733767563592716944717927674290627541329769569327981583547288331329489765203878780508713300444892039820224574851431079108228935939573476451073493623326304836710941869474343230352581540965633423633805681907342683278575964437062700218174495072241706811888814823940925598959982257437451615835290355814755535816924831222230850602683356076377527767528185519788545433028450198751389243742209058262479088584283085022339657239773081135698813643609563856271872542279993613462235745425070956938898024883554625701945137353414085582654605034554718165312665107024945751537705320077679550824967541972126639812969355592242077335544757498507688638470427009063710050618848870883149587575388126258608349075287760585752574368528789387814018699753063204465506025072779742742355841151200068230506608424508229975602434210711380771784180039516006782822076467483104303492474666910585429811435028532033208396473745068153290257201419995319254583878262658051755697432132265475680644990752992304004781093902415601232848708129473644852228854935856104256538194220159056211379123098855923515279401773801173763294845340065257500485147841928473425497053376866626831851422638012362258360391830796866102061216771263313331934227953081290314425753529858330695389202372576338020562358857527325027567332696462774479356429732324651944174843235752426613544579988288111674524516574047655260386110935953580583868075215229053341176155360328140097325232821805243955663307852609387680257420831666427021033805753989013617772505001336591129095631415244849417574058695700666721072886803495644388648105132603260064214578350825893889282218854866427726888029240874282743125765473648604813371900038038198805753394072079171947356812808016728187703359154323239012900118876722653394872381489392005272304319476735876424817798382202082741493632974071582998230716862502497500538941831946851989683936127558863923669442392676849548635416668644609030031117547560544208578003285062871013317847137392539486752403178635251777286023786618263267011398919976586979090804546663905888924247548533813646414695504294722386373170395122559823985233001971222449065676362817770424069176702406371134567382436128713978041858852855842682952143591333740404116734620115762314759854575698198862410339009711991731675206391854048177475509186153975818616016746639971922176420924029671886350208918709880878003839217495721470275417802461899336718060754758495865697569729807674751502831126584582751676125960450999666084817572634289660822079351494249074501399964900613676452334005605000358389686058067672213612891739917101148256580555265927746274941867489741658741216799339868794959622202087388456375326555208547916325882661436435871635979439081368358976582159515852092039095627453296121815574089273543584965125723800457678386863598446658958592175496714071047140802204162433695989190386980252669084235216714494859255278252619743962843174610626952619688595693695184077334302587812421202445289477684283165575945660064620819259265514939438347027594526600971728034583272257374916600120371068760451159829321152226553139131359577415925365725643629950215764887425570248645544559609034144468671375345497481458799602634865186855060251234398424797836263192184484236751272596436330006872962915089335106642961665681113292918125953812543717032710606890004191774323275721672739792573249714734728104460048483651176059274314827658546024007357078633491348061813444795292196375396398964976848176046265355493864301185746676941505583723582743287525727755913780804735408091127008958256448820383670048214158222282097022756400055004704810132303022782627793854075399473269961360689576357510939361569088270365921241162575080479526737993440995415479940388650908373784867130691031595204195341468832280811508531154961366956979705094148824895945439974760816505185667296456243693800544644733010346827834038693650633549519270618361831366090844266753790578794834870247677098200425760973120105478834312912541072422690222698755998532957175670116195347215087527704714485701662310587555211689705746359810190997788240862902731786542081980867708355056141717324887390572045184714476702185158198861629555008830764931884300830162081987150547900400095316968946332825056770287199235987641363533737168421658470734321744849192527668622165826227772799951550763068401614724798360008710015258991285176469466525093466593659163483978887901394484594195349808846157310760918848989558106234678142753946013599487285141785837526881013514984793631793177431212730088296521622687971545329447790578441039591148673537855046158987296821236434870710859602381357257044097083768001512793406683580065986118756623247678839115740841463107016168997461951379360012609657502340992246502934935017705138336145130459642177883308430925584866145130931603652626300485961074218341176942319740607494788332325887230479037467719860404633275694871673428079374474946060215963110751353107301940397696606058936956998337183211733130107457695609488038815995864993693229900294190335243709109604497015373674806819791641187369423488815017766736986922978007158906145582313430531128283523443021363783258591901550997111931707504198521362719745029164777441853550572014044927560590142369318489220706019436915849082594857367768734023025450361083136863970745514964727929512114302197965623182003350613601859868553549706524767860416655527022378938288057152017942759936604700752463704004303796335292771581063248297151249027034291127216800675393701721217678895682880654636562304926362531003782415895032721442221397515546348771875190026327421684375268809568303590875858184120189137139624860745831887976048733163326915616686115230580581820055330727752259408626089560423515906219963229945494924831956245963379124404477583276608110447507689187508686948143859725856537744462029919606494700253722322855174280240339441573184028542406992697475505226975102542028710090294006017764545604643211848985140358082223493956435062394500984386015890472612424394174746683672320437062183439740229561593553791538552871535043552056064951075491068870619953680403115877270666503987967430590946128419483455146366231075510905454008094119788245141695408559065223330495970982217100399537107094646398027368997105999603883818395021693508193170391330811472693958711218590085514937222035881704433909464655974477040201143753594919333072735467567385522528800839014448168007060290994563991100711052841724639189643104543696913484008351263886419672076549330608057334074599522966885196375771039413140607529057668448307117272041474715615339514302076586051228367527302643934601149162983110507308095957430100970164178548431922530870040665748897142977536005940517093776081448495633974968754470117726389634166352930885239966876662527389465664482267777855216670585923250425690177285958639216066770971777274647085658877089315273915354637933821724713901221164026898625228242305902485048119670170161768953094332173547477384510278445724748985416623663447507203459793878822442303860807793217442263657361655481352100344613240018340672082254412608289253512157056435165392764159061994089961629414861367425489723440140114196645568629365001320208781597822387305051784066136994524176940169115786558545814072563216770252568713420582486067613008128127062690324180197961363035937207927818018095501952088912308524327013706617432592501962602746897137263646472478746181534819382377268183883921128798789997424933976392588026991989520619470515087498127199786223300637249643986796431618093114239902335194627456849735255873248205053708610658522327893042625395118398615549844042729899055368339236803590980710311298867036268850303958344333998837769469476997605224657795304519858595794205067980328468686555357115589694471226615576800578920497217942533907280857041790942723347622731945206319843957317276468685025405769278844583608619899713147059081686484244773243426437870053195093135974510397207692809931529787175239146398771499277504734069268887975278565693324024979755002841715608993125954429230158506048935929747319698454155990895073140415448284917779902333735212599075516457686098944749531829665693952221892659851940822617456257539670570920340358166224899617315139180861430530303198533580939903198479632749793842822535442237475442777559583848612644937508250538922596887144440703920574768586707119787539946501613116374622764518128017332320680373526409938501878553229950547239255954817453700601978930725544254238818847797861470719531557246060030672025917252111506772665079953642360382775004072270978874877670323739934386024061426258160422995307299330472508281223682642208747164581058205651419051969967249637751550939164054034167905694323630175710900568870672930801164234154162626850089988866058022472534217215279130603776779600269463011781795959527599871854383602346821443116493058518913270251957904446683227204683552375123312295435333994105682033937452544296594922508020881549799545081307634757824613967905950086237854920363709231428888256887714183332265825794679534872556674444480898595577412882675262754854952467515229202076404926550815617264560151310387153285169826767275549078895001530818420388835175311706251968118853045124543063984658385818072553984124954274814640194214528376904942888235351290112494789487146452954635489887754559478925623790836377583136432596172036713789023099988333370347944490419315064998894043352986374950267541177504648670125563628699001926075086152149618582098116736843579713353556639100382181464929302394883125464033007835381664842427005911026307066887993225133078689151212344177533112272673378479291260744768421906757612686612829921995914866305156979601899280117190840408139330444611417115799354210360255569121860419713907095603324335485878983919800452264134070128195428851765342816913216293857589412945967904077479916452108352515098737363810627055322831463135018254130473782293024808004500083588636227412736940395414374766015245045220559562141353898584642515141047399673056735740956816059159816351443781399197616741893445996666196469393845605521974517756764456243665067362494017107903922292591274339194355576147225115681708197162929576801182430290060210386164257468460787231087382602446843886060836586357192820682990209619258216855459973965837291049252623479318868922311294224332099861534788947389054035004695038785417671608948903757391711553374686270542526489456000473380259243130455285971454762256848063721416746258702684157287713874917665359256037926051807857547516893163218474120959662927416635152859301335668304170571771284676099160741078017952931712646288454517201620019965026300127108409879334371132622476139985911360446498647863902165933999950628323000952173778793035032296350335016160488662958021025203909270899253538756181824536526188648630814191330504721337215900331568354834139603777435434849457328154737001994496309035630118334613774545677240733925073026157489540935127236188551614106496173724984454900112877826137618593686627463117695371938289191787167872777545597747275852655274074242487700452165960679806162577845672578567660654401856779182523409474313663798930477893540973791988787654422353144656423055705746063248733779292982746690960642701457744796260542340386786849508013994504539937099735175815735041201632724236814322178594836970572049051762707692082125339847059394399753098867996970336121637409803428470110989573124653971043206896512030769652992469838600628811044466646658278825087601015971139176585616608942435341737602131294991708225104243554826862185425744667848424941384920482084417581821883414861516223730311111154036501110294520677249343898436003782996088158814147608036418117192108830124651475851604933281479977990558442620541186887042045772103093934546797575299337638023924625020925225919409256277805198120975879265288931538714008270151137280077690333657454225298917040262730294385979955491362926437003022472739279431526155010228833117041751372484392179676151759743119129916683914320176972076125747642203778319599584183955723723282921803223769170628289269175051642144218491699119941732336443251786652506255667700044679370105745818199980800816391197079610449320638457050726283418418775705619925435361233014126430242609724947606596867073653414329234641958323605223868527268272452799451749912786921729946081424088757878152394848760988940387279814803062842692166860629578379994267934178058486913208919445818154671910787955944669221008722544833353031135926776723258313682313737990313479936543512386192913626294312936596291790232866200139472413382316954893084034634541405335361361010675440906459957685031899428769062724579922994772470037470637108694713700469988908781303526862234074923879542565275662224731303968206832303543555070070160026510679629879012781867302202090091085642119320823661428317708691566202979269591348161099822484141679657110088077344667554880847957404432159457772732699772384511013590174744606631680628116474397491882863011927926512343372290960758107066584662350743356014704984057279999300241166881950967616160764833103305221430924870485221412930758895884114244008214610921475641848231453479982397714077204286189723438025756558943090044542280067135730907064875496149557576763442640470590956697215866519906228690621684912118183528528855592906285506273139495867189673228453575391357425027585968730980534837343331058131276550442793539955684069241171400003316816765589570457953767759800327063714014732864255204365051619876349784251258486344065018967673187862623572807659454011774295932425981379499640710204479189407802574421102489538286585971472829968016733102779240905923425526584514491450607163149455842321583174012849992454151726480777010229360631091984177596024150367929780966696899940928517838020651146993695579069066422315750661129102932543642784672909263472748198549681855976992259371112062559237816749806698754422924731165981528888484420175651031237545042177443409304944940706778456732084130462514257326014500378154927686369711235692106270268817800268667371208830058300579684981783784822825923066328128219481637660109893191105362606870143336193818684317398032714689846713977458809904198837169437043255227858327868464761572553219787705671464574995478279820575616156928267577619096907430662655770500546460428719580641851285480901486891069378071058202650222802090756153328109623021049420775484008119793732018355575960810307702549998124095756129536500922518451618994921600218036282515001831644667476570877300430809301809966748591717600762358432450757110919848236524789238646650495366711457543407564730746648773588805537278052917363573252361868405266603095522007176068428495762487490521569295616262403285679790392514139607001598311262709842428520418393161471368457687985566368601990693283426574322278321314418754932773050579825488167862698625238752472677651080558143013171949169916880751800364265974118685441605753017870774352340832151641757412389954738585760906060789414575928033124348965057816341676093243713976252994057110195893204765383474785176216131628389495779679818510007931482783042527664610876421434424610890083729048823932406091273007108481393401166139474258836117983810711717929369383918937687169035819767303253476293202848655637210553626619622694043056505720758444626233325093608726167033522568653084883014473357964159278789619395593202797460014482595138743912379829806888051648437291829861549726405436875365767561949293614710739962975506516214158794897260373382710351302341365782014871824913001142109479601550699490076640082892180203969734174847589902089021164394386213122998294023730078402445735932069876625230724837061799555207364990530562726916183420793589742147925871101339711945530935201638642545916369606825112070655061896643212262351437620641587602152203553970296495117963995546487463385037012030810487929116999855819179211569863901503781064165710309252590600630610693454455827437044769076359305070733373111818470916574242110934985060551434868587799927694238485246724503726404495744966208077903504959827282240624734163474065299081122025392496429472352376274317697214742215058867537536380914367393182652514347891924039166672748102079700783131394364020019157123631774863521496413335404137944362655246585630394142223531678314147136660704941240479121279737005961118656697222715449177609631754477376706132959896202282863424903404112657333037300885280083416031629521089723818688887029108160533459916812445376725115524119545467228368580685503406367781573935921494487861543418237761316259127145592626700453468336705430172851864898207385295486313698300991010258491939983671075429834937403618483893718299233759156082707067043880520508773671499415399969927015256618386936627784148407348427452887320937187739344895161619272155106911838900738279695565150464108586102327179175375007456870473895523962140039505292296765413231760336661696615342063690884702116772445362967243563349393963325857397555070962345612390284304531535808098140406505186179722867145248911383388039742895246390367397555138064451841932355834647953964048397992648753855530590478395201443994852242970757949461363630530201007696471988990928521046533507215408203582722130702716340931588834784731555480033071159198806788428554841827464319802050859932228383371790449810064925313618086466145534542422986578487483363555061331495393840386395222506012699512692170058727964465159957663445299516433716233100956024539521768053354153844769141735947277733812679887456044172102870235147019693300579888605419780630074823778343635269896464971166306250872407245161740707042312642365371835813808806388156485714689607343708045072623367158424370241790562788128544896301497254058060804999631397805948984038108549100757207395440446305881716756716242080461105742355173587145292963129060611165183603340888527049017560002696417311787567776829738078488154055031977451424474815488514511962373583481252807995522648100034442794868983914759186083962100812567417007139592776638697546000238762222452426483155074727621084396853996850504784100559029710056835286692044029271776330874806909012131111062070369215943167857625482089742500618873987817684578437671673973533231102053751827936759062616627196000377462509303677006674564222042253548397036955368656435098580415134165613748296210009957877834580574778674885201177361444287803551274105254005676263113522502996648843423240656992421354486741801060188377342603029360562911399950057401317526097159475270550633915297052446353993554610858365242006958320686581383305255550941112961775759030480623551386985062221445415638006031393631696005254071510804356547918325028818990217801890779915664602940669013754002105271504719805709660796102735061858127512188323186861817028129237429598665848621639082942882498981207925508157039074990856837818784092098762842580085026703467923021381500275253294710473128542709008808189413818313888290933417460141599018150716289968832418332192372414609628394290307245244590414137143452600626811017281936198611006885728965101616614226862141918443226938643955860141833632532803823719099978217974755833688804606110856420155683136042018623946219839055711511400469565551763125266212453548563579626705600284023489318843561284490766294201609986849020879669409561681535710845706062161351846455580781356653153146701330755023046465170459653768024574439923961016417552181578578022308368288433294402095884330697730950291065805099059656891873806134539546615769597342534293492119729584741673929975879399364850754462521371429450272807423866876869255612377904283371385684927434217779220376380543918161439767924260228951629858435087338028254869313593166079986474680984258489045327336822814472621996634439583012003918950494297431727943954960444862550210929434676817713043286494885998054020652051594775161142356173560500930937297900021918597055390512432136695878142548862498639231273195682491543447562385543426930864113005027253132945937468248291645858865822948792084828047825433904868801578029512254985671986498514238104927967838076492456676016284574960087601246097897333970844997733366239738953438291146425682378455466205560745010022845080580676366862972903996994692592374098210984859428508488215145970451555749859841777915293166196337700392965414395228380213386852251731423933418362250233350728408478289450673852907947732569528727210469315566451523251061408526031551586250805757521939619670008642221569240855240895255216170557677341211572769590807798597896548508670264680605454246687796452009719820661939703022822796868509964256678017857902231993827773051514923427217491649655478037166555604476595853088587381158549481180891163211072484354176122373602932465002861110719115203769351534668736056930336142895593587804041687208783306961009499353054685313073120387177957732085815018021945498085744814637210000073832340068753139461229073935207780135110899406266802694071424691867381734990204561081845893531283736053102940701506053138662762681191056383330909618082179318754830532441350640346246700237504886945035005684963386823242015223469407021736318744562770250209109449485601334087529091253871340908983573715474248443211057758481892360917126909105147081865514111159517819690260851361310250199740866315169162700872121169929067038027388650288921747079463114935755102092391367496620705237856391024729696724388705076346433650849726139446742184308901019664790443493902866809843446167005661669911343076162159006838688408356545208424233698445518131400975196162763391545491713209342955503377244000483467106083669716102140617713079389384578887269377524449117024691861555180952602284742853615820918030327942224414405259606209447676531109797838972553587708290002312726293438299017152284962855435372789392497129840767697635705977266960217067563049200648870481605198604807106725113080375131545304713519203695496535021658757077199506796946795801146678849031122637871949604061495485683271201105341568537772092470362716178525120415616604799695547649313638263851019471245234922532361843910210180643401156511742130511947118685262830446538839178143969917623834929641948181808884422569189885626446389919853306974831652895092613490317718220768761277912782563629371897188999468890891885817973105067721088448547439736105635841799851764584347139067951787100728025004010748771717077004856687584086532942628756572340142699921640781140509111620605548524172435302228243018882500386353330948121246433549948026571140460705816010400752367298995673471347637878920546512052036272587503043924195643652960060888556288084981163844706970376334274824721601574458952430224833342271262668230388288979919965976472096677335171223056547725009092365866428829188641692120420430898961095783841581674874356952708941094272402201499699464878350047370482547748136879569429229697930275522183757090593305500191763665723626636848522766926897333681667060658839009800679785141568951402993170095165100452911132143735123669475684548827212184541152104469463745202607485998113398206344151959475356214032643247671144981247837200158013502887359098093611062857126628485289478712168968420820585865675558032469552551210910857143434107769530443639307809605874188436225958365464523912910097632130219797752861251603004714353175969821177066748763803341047835790090683490706153502855248074811003013076007549984907655246261206823614095244246356175271915872512946123621430676106991042673228177215752624503931441922586106717568631114911923587296136343072901608971833090095257906251375229590231794777224726801012526438005069480407977127738451418859284351614554744049370195846195036593154835008695169427182350797054957015621860666214350634252011184465533107721126738839635005613673398524480830969366057708270404206801891320574902313020897034040810889866404733705982784618016020375614184522906262849479779637490743623554845071548711624093000321287784884337183847734496354980482264807995416367546090228611484132653066169891463971584825578943195423032172557364173447456392062468009475355365454057702835309197083866562035561419050797860971074326783252460490539762009934100203984660551393555130419770663651053100463056190170119368505673734049991595507873374160717101179901779457792631678528820759498927027445530499283836090935738445836853772416311800945077938117556034335941686954942118979237596160833746994945734836320613131398482297062288592515858565029695998141238657784490463108124573679437082468054719875827330842735619876076788418282264534407740869265043815117202765227975315038874394716617299395384918886216651006239058326920539222402678367300086072810240696055526925676958464058087521221642440490818765281419017479853912912041467353059148514200499562530242390278127986143276079478688925776222555337532372711670326371770453349308179095129852482223960849928210150206658976014282424179231705473665354369693987030497514237478022961602664046096625448511926600598227649955342366488655093173408536068912653210759552992540903728811094688117165860186972513200197458851626168085264634417852267380568532552585955339557929970449491696258700737706006889892760902817258917953121230892758615507409695567626526348993981848459341974576733329180925852488607938282194568326110139862860799629513858462836321816344071557374546130766697199374377410017051278784526000026536000096494406243680231333612549036423867540840907553710348533738951523732654362578261862680237311601495206630566429545125969628681000996428679135024232761072949420578027261832130857180525018078540291490166455074815516141184869079818879080213021739045392147204496213778816165170628246037749566946507671689082958457537616010940442863605569781652732974432700521133329928838384582754178211589259991997455475752267690801274227289329853001403465057660505067881597075768095093871306159687279314322337389855037668521959995217546497894737213376557309541985341601120801508999133796325915899457380374018914131080705448343497025791387761652302917609541171051648430306233884537092082874899413679367958570260967556349395470070791943030438807733129704440579348141781385821462829432771485214332854333854031440836411282697755835006970348533759882591696166736922386366680833885361767236290222556246015087101065594736233513231647344847831601838478227725382955740457788037178251239587567654103905174414222339873380525581773522240840747989445033165186076938270296208547010572917726174690294892224914004513497538562762057522411928804930370886321474588405673861669759097508060007432658160002452922586026345947340305544965712596302550863470503287847649822515662532398199787324233059911586729174502888277344157220394857814012127754681186869514923887969500831275789300976158269690167422407771980849739255344167872540381096452188076124804931611679774477672240402946334260797823482120091151732154902825858390455336079009736950732296667611112351888357876606893740388070328050119573815908819560903137200490029943607215645153383826688628172361394817522570822834808347858252923915200529242396504191163426195471852915496666286956651257341994073671559034422388289829269789348784377292648280478522652481784262842983062551386244895099370316505705221424313544380053383783948439679626780503252279554287879397236404520275322816591643434373067842694030900265558477749698105151934759527821461229984173912967445852495601779387068690230072947658573225892891245442659000600639411343130848233490536007742686291014172171831919974241152898101838269756881161614984401489946994894959612470046021035900767913297874980754293432624427424041572506533140780641642751965212647220430148935569205638860741826941535444807350399853498699959784974222445344174149525942522869575650961258175341248668160182543787918122840747821956542818600446057417438202618730142069618686385271939183079190940411741972353505998002629790623295841356512707011948300992593291337570327762640888941994309852609343588307069151341178969585834205237136734066091904788670018206888988404269157032615588407882802186013712926504888608248904036164761377541754093728515771604350063117655005122812609441010988067562045206414385124648387342366742293503644936247064739001732489430658719754981284151402686496802015097569199560998804425882329363779074634386149359361303938285820842189970212710922779250811808021194102065132313197140633507221770036387472766676431924690723479051042868930055136810463848581704339350000934319003704163231248677020958922899971225949875885237778243791867855511409911513162326009859117307514606358996867191617772942631877119710019591652019622945288170442604467887622688920296511621550076632808749541342603503307828279218692062563550078748484588518225868290096244252480889529754037932479762541636340560150571059656458107604998995953229762832167990060254282147742465723226088991925663460691420545801240604591999824200412231345021152280053313855300061640314581947057050159178819522155893215599472711466642718298201834173248528203844343220403873491658946317647669483076337511015185547815492100037028701068516537466917174330915199015280046286103165730024843612715604667693067781733400289025989849550447098115422539249403134764577598194639958440133324145944332176000863555195744916234514388589016945725023416945286465514960388722754173815997506799898477680373289245901686870742255642132499922138695567398723157963141329824174792002733599547631890632564751753066291611686036443278044942252096609244658105220845432061177816779388853257908432059944136711471376757915161245002581476722346843814974814482443473686678373702682987961478061021954475935647335132522339274421944983133120510663408628927812081261724785384145701836947435866731334784265395015511716002782359619957193899264303909413470291685713690387810344188117821243038253466166265026027906790819825824184991732894709992864621694448331977478602365277147269843438485431021745623818943790104386989022592451253925395585360175495915084286527326573333609535108618405539919904636540828146450368178069249887460996534866137632620881134336308372736599191406620037257737480160645000004658324475428377635792525578103771863652049877647349202071049695498435187522885672911380606511893526379415119029325494465542622978160720016321485162057593050257336211062947380617400350176427886887519815332032354311720739726394256430304094290232752368426162455220001650252086833143180084239270908332811149302133275602321318498269417925804471787621036701790197876024694098234338267413637313045155329468602091533316051245983332340971064062344246283875421522173137905575732914889037780871088270928828918694971535674196077208897679067567785427019285608382270284611690655200915739222352737408783115603919655228167056049478328676829793079115266145904060160859634379704868167296616465001809625646435861546886904505906804863811615311128556205979304485278967770502518551101159053314233560660922712894548406820055277806747576769670496041176294144914132968110713119078338684176038239240338012691172245867881258904997899107799778480317308593761367837662240019891440496814136863673046333309383701029976987445855254332918371581198120891897373531762249463468524680500040992908122139282249979425127446632317364343329651124684666928728551595661747131828492559898297297694893162934131590876825613604989943385316891538699711002279057026685890864656995613301627922845061464414641443067641808895006861645995283792549832561309638423590085063077277176802392047543004835338331395760610054593826591724696325263089731061094970760098658543323405906316349671669977639518243400370819364553778445466749207183826611475575663056750156164617683149987806954074875995643085589716171400863791067522132969621993611993223600493112120264957612942114359498339012892777924685184949958933980264063824140137121395390488383548066175074765603816974126124108575538641904905034371526901306719435784830340652480226039703876275295304028896638100718373896985234458061132849270560478909601235403742822224924056503541398528017894892344187550303688095532426212448383235601103305168228327671567857103206582568335620503531941971981382970097850992085007309607284285838479990771024480352955186972776006979585794745753376311849352918950108398707274607667365712078018736827736274988617309978108454140009670481649171196349812833408517053205097054814851905533455069282367096581384705766115038317450093796497931129658846792280943553510517840796306855490729101379839150469287199068041996857089907325384423522375622683505595849217362984652653917320388448479170538136653170615073835663218938022570747017360355292587380636234648371868435107210036360626815084354404957830730292032533147333485567243144415735140207032205413343509974037971192599579231218679412449180881502894259280835822021203226329639311598222568538637996345120041097526417502008156893272186955972986199546819574404047093784345767542410833757321563573309501740602140231786862609377919325645029458317996117680811951339581071320571990213622706267818686573240659506025368550096552287121047744928891326144921200658817724942937530895145220606375124161046926901502681536593390420026747545079203611571112551962856741882041589284739416649088679396197537885764419384488479491907910371937503292170316016624122440426560927483000022933338228971637317764938231425231685033758215270333476313467936547509477347644596980047352764016380564549499606521695981740827943127795520242876617001935247102474334683250565989389731590691341136719161433908240342511055224740794506962941775683221297816714878338166194115113123336904275757168528259955599128775289210422321592212869829035822349421823418011994333742713931516095571787617765204932311575026889978025980541413418506779587431657207017293484553682513462093863973561558381643388755644968269480746485306978438717289695447976010138540906049928097065584714235904037207541635396718060401103494303681663150376419302536730830194364611790064161982198168501307600833468403065787325082458103814286573416689778615967442576686123404190725030856496047437749378712709323287706947635472015527474251783910613388932655729649842333682378107319311796358026560062826229183876500423444130790528439535329083031314773121046386333423488369836762462807524768320969583339423071510785523383566069025902847343434785217294269354646249253289593346062750816464941659472120976359089780412688575389930088964971448887825823326586904859784666451116710730461559190015951463562530834011585437917656657966527652026134800282847795025859731297744474738771691622693528209887340411211426268199557265646650630367689093846830772553011835410435154022344416510616423049113212936549186128958949957253553306000771160895040802018694146842389567299301898910268759418530943980092510687599584661048676035854542103320338182547560258589742517130504431514101255687093422708244961046657494782943516611582384249633117276435228213193915035136146630735462204237097120485161443386643754024212474081574164500125209121049112403953140681458053914628160600174889473380952572780525247987939259941682823088224005743731052848977867949989422102189226036172197884380308340925236803144958572656307301868111467914871787320125915602836304287393905169416836339720770781281742877271079050118164709219320099184153563789581213696539473171440325202771014222141681007486082501538965803261018110541483984656160692705828065880744857326722147730352020788903969791073169813452525406623304636976377106566114947642346291952769204839611119459463818027891771433144431434896370045966791909783658649317716493346860161314767628479726394257506023009901314541674330749946609826257205775540095805194543953066964386565120435271296893357422296393892944715129027085568286297264376326925679328191080957941574481666195698088972942259438445028081778734715962360403059240833568873325809602368661427676561841126291226908763664942021721868298243335839614618789067365452778588249682930205947911017862104577197860330584534059734610994832334304677703418055919022709056747405928792200307704436095803901841959794970079095811330728844038712434907018306293582210080661079609840005660818634506379203443696438034390318589754796288383692819584066401542265279262269819734965500928219230761548674085493279990280655277907205353348159028356080318643246313405522482148246906956276157627732593758378376249019781864298413599741371245412602021361543652131628240893973586864293571928926962989309620330758444158863646199444726820425789567453360240996012813224883141040620913543142461191199657383010303904121976548601515616630168259113010578527656679813154880753143327902941686886517924848989946349681675821981994286762364583312797686313731237221970111181582196652909876363180740527605178885856615162003647980481385937445103683288329840565647274345915801177588182425417978439632958620775973077480933927536173130874944281368784195864549932780119248980044719934015135482999150854200416816826729993546446137947332617769110349287481007689581707151177688499300811348319444505185213890414489729415281402446814906363587870248960321880037752298263919072291678192290825370717422830772603913939404411357632032751032802029487226283859338119177965091837796555413843694539705913296734577861852262937845526987107233041266054310287398046707164849920305143964547872061604449972356015289837961114099846550036451153401246805997516604878805445403745308869223108175122862811595452181946358128381855732484931626692207332833845664105289313135063741229805030535541674567816875004567989963770442787727651628282233845349941940219928548307475160108082811302245659730718209205016240792615348526890734939154202919851419415291792987821835752467693317995443831314746279842034830151806277899773314792601098442775549905405886359974906765033300528082887623585971639992953616993700462297335720131092240175272509179729111295160983496593907851988748381082575245077087058573746704018679490759465971677182077861310365824919764756641822819273526953621197444721531077200462784892086763533258656910380342225721979745942520072070342816927650664520801413900571724333473306896702688926208998989640373675556957304673561507732366590728081633733258447018626942474278513402736491423327072216436399016522521808166413049183829220871013606334414741222180519132339453842957202425026112428500941761302783641453120373692879172845451742120155257928945706584185347881792448598196362680715907716982878733678132353459280485717884497050352321286073858542851960025861286916455009291972855239589707034885036468602114659168372600323777333555701972003456300575543622431556666835370303701981214662599262128389498414853862805579341972662995405418842952356725507498980433567025525066278342086086117635763606612089710530749242039470584635099638073016292657807555854472093327259335403720544316804202127877642238256856555645455543700546890790415521895074294065088354796675695809904644319835255930819231395361427703650036457307099187656776748850689964442151376069750504950317833572832629547648153642821728726484917262498397750376923862830452154800447892057680168892022352458645420618642526290378274860693953260771981796216483084488260227299476859684341420856061772388261383380086679784922090947660725689211107259412467618158634844083772287350493190229108876600684848223162172672912679538044139980913077829300338454741829314420935591865769385239723602117819298192816343678229435891133319006376692040385680043577886135388841090391365196748626635689938028762157759845279213288780216149673417430134170711959309735724305606113315396954041858837272524594318010176839767528597979109923445832053390725189732519140427595819394895015412832336809906016846268303812344331091276614655599443241444832325146882378841938909915676245499439405014752992330804359647230010682356011279253657060378130398602556485371070017832924166334132570493413086137672664761901433924166448274230746198875215201494349302103375831592980638432872951380255496702349782058810808584738683200916073788450600187895743330627187339059573914610701379523741734367144527397924756411221714217208078458442146435274482524114332063954717779359834499647001995714258047415313088023560123309174656404130696371466098874797194720346478976377860714374339761142386827187257750934683681341816282501707724381313464428935433785762916348734906551640086468837533813868106802855606239807719033453663523869148843707855901192770586451210194833395210599018164985168766900532099942214166527577841899087129393655809147076443429080997121290529774228938715695564269630368964043694715679798906264195964667537074716856959645596401075662834048236887555401551312240828022089007426356716336383269376673990154255982352992681180359308480399610434005126814864709563389451523360002572799064415840322836538173468915907888469461939640149204315152458421247897926119336497961362477701450101992017273435603752216569817851088977648286354578077401167331142186568839137845620606556993361132967565835655157817314631304657289657006930335486049062468377636314839297705879312328231011714524914578622143084668030973967116800722722103703017382649024273605616952240999398483375867334431286559779669714379544675314024139996747515505648593914944375632746975955126923368459872544517633634330629267807655572316599081326184861082834338069727949501822807689045122796622042413106119376274815064044018643721334476954425863067633317002478504593198557757888212564203803463090820252053342630764319056306624902444675093505511183086900751275912823635133342905965864532118743797556783793296689160361879006331562827603530005761260988286155691045395600707183793372521974427517946183381447206817418135382982611811120572857274213943894102084997701926459940697312369878050424647575339781007382748548967727834935477374010034196739050809212624817497433525049354293643087037236464307988591723745115697149638628210277032745866888396369403752470638103509600018247969794623949823546912561613735154369365905668888592158921751607665465501211699041166757765944922770584983323392819473266852589352053197101085203653453310626321850275964173300492711596144692098420618559613638773080990456759637877684422222873019681374114809039724962265514493627669292622889596924559901200468383036560110593280730325976168457061101283140353491403153257258873514825732230345867916158641384777752836393891574973474893741262800341638000255358003294980290559384070956703972381376746547501801100501164338073403606192770312105121427695205453758894408992329417578413567757348901087514955761006661255289510756530128839659771402610502012009139320228760795974861467244718619695375195117428423684830351206339814870413032994846162143174633707515177248718772347851338472444789254563413676907572218545212526579238696028130928020134157866448518038469418338184075232940379387769642190120185224654902897144138532157717153493637286185159821282946360119650945519858726189397750327711741785338426597542433638486342964202598632519897087468454583057298396433812748578399396020009273416120729383214573336756561381711530089965043819401657973416286678535871049493926226150407040765329860030624761707335228177053061989461939184167151919356623995795065633107232633742599368345696659660618961776535114997050648948631299129404213634424379537671816426378710542360391169330232208188959850594520310060867801234563283651628431958858800593536144683489986618369151550167173064428000953981815343463635821916431644870244412846797593917485772491792943699211115306210007692838953672337523714868549797773622409100178600432294809775941543065987041907188504977984809097410707233722820728858035260270788627336162057157771088465911760555121517809545110361710273765490612149553661812581180317773923140705387422536227730826112501272111480905239394230928541680628340412395654033277445495053076468957032500613339120413137367629595288558636944075721974945452686387557193621280989646577497657424682255361875924956769150501424148947207155589438058940247986341615160675476695543761559589392247243818986279909980779406075793528226576537122454409672633421721044858787995121996735307221794208464799257666322736142562256638545283093445021338144697604638230194825043708713838384965620434462175268566325540146638780043843774476457900162915336551247868335387939169151387956091442315908665187228390076422221596467509805161598978972933729160863918824307975538825755185529535998751992451127185521978524548852259711999436996633965970644874194583999684514585350580032817629599588676479520480985219910986587426519973904232661331677832698308055957197258708231972853987822494684039238559197044201637547706902132492830970319899571355664780851908235340143890995267437868893682091129141522464986931967503185595574072097742992247228930755855843864630334197914157996363659625980266867589387467861042308625443688139821201576387944992898770119803645826832040048485314389107276988700303839946785495901829985445541222797167997322495221383377975191840437053747972560847585554713965318297890334328384100031043331971741071052077213979306667549333234210189386834069946840338650389897177811425788845215764910869711771087812408459193079183846947263074285074848365812461111304087626230769319347448286401393815701775326148164589554481366674641819448115299462239793646739054328506568140122857005059299507213144012819252867544788040765111181018522445312791137027877442114846465485713725093033139011360090497827720373872227956724535938150721500524508490288441066242659207515078800087565082329161258424258133364085492408505283724659785892676771501754782018784222594564750601291053854372523033323021143320649345341448573345788297767189064451411422462781892079906319838725525633190973631223614200451628481336058588019527615602874963696651846659598598085318394664737187171057715544171360455285898522767495951249430433150073997001575812419975265795766715001628480562945762506136820693632974526584013123690756474251957777717726927989251857868745572708537285316015487313434574133927735233939784446063323655504161874626543527336088166953096964106130012537027315429255086302728821938576555075285819479764660831939926545200414763727572464344241675125288023740583223137479439051320406075176979305940874289113049697482755618182776125720595994914981145785502957330101773961251719168549444978880585888253759309593012395361541939045685324813254624289755068932705596048358163752870755560834049313869557054593440902937354132860698542554167671830714920295318714093778062483158344671151659962472861652717389701491203501984460923353612725141752147309278241784370401296120050294363506831172102305515734171267860693058407574703025433423828480169670656521909063057193815626845117756542303964819434716441062497293529733672600104430558706669464082717068368504078180925939260188878648417842104868618889826482826050191456173523921105968617637075678551219960607365524938649755546851174747240197121748365912731353112320333736155651825754513663461404422726477438066782320692739099584972099878297020134363551494623398694376026547784328134142435996483080908529697235364580299421316264782822751143162023909900266920127208442659689394333251289789003747664397028924312917757215579014749759505276413724445926514440740900060478741432534474011237359422590685172248473412358757234040128773114624156567760114039254809893818039431174500619375646172867542583692073362360420166764478310187198835747363752072995717100424236403528630469161158446323175937952717720140984581474996990198917416546255763810054381459070973769411637051096058747465425772772793431007408694657942762751015885815491714563704331254638953467665505972118827870322368298464709276829563894167335523729212789030297847578713187572196666552890685441137997934304852591168137251435947967048098209448577394587778746910094025614901611080435971782686787793170333944297733529828528986618909535763699539558720703472249828503405254427399326995488433476188817436256501765468648327685599853278963069062632834599587359626218406118669936241854372326919492266193898694702199590191631518963602575259760152048613938915573838416458238554823948190781219419269263036474441273329250496484478624859870932938415734866872692889469212349152371861979606844012620933224957973973433941193429592226459660822814953221794682907904344231913581178426828745597449116472202720382830667425532345245433310586011513450635839135934945798317407847390371565083825662139855737910759311356154586711611248282589525356450819633796722421110298513274164862447820813948697366182657914086566105735994397435016673699807443578846085408899777936804531109762040737547772910229884220453780291191120170899992611453829866109920209647099541254711382262609177839581174228969830748806384892838366385401777399571535898315369436879682813187436570306152381370418572170241928310025949125093770624099603988303054419216623676046435840119604182849656335348948482639299887456799024209738426425400868233165638047760607502868089160422031637142311918662522230587090915964679974050887623012816947056026636696556284703469351118834751946359672643664935231439203878126495311481048227218798377922659108374657390179903113539166612410222747530684945663485158889159267934419896765407594907201173905887216226839331456312840825709581355918679238782830258722690975327753036418303647574465966159549170890383503867455647281320103461168889045998657417660846691162154886369021741644742485689641120575745565798401017742031567114093144011167468903111756064064470633083206899738233296273652222383337776599658505071841594134980589153486720689327454169936217729358936516104822825859302442858585130751406486105690237537900549764835818384091549474702507866832049040896029655399374338293900027430422583775790772575812488306534038762994068136578230393254548071848943604652285912629980738513595523273615510483954280390190608954304288819787553045829310225283652151942120645937872469647003482677306811613921027296095887027208855516936830632223679208817157314923698324417842093983496697758315954626110577420616438836244800522473001815824113973724443062415243758989893678271478209370880780329112471103996064242712831838610210620303962794246573597320361491497939111406542707610754497371332858396754684970185575506686505018870515177868591450576253799606168139325047044105345584136150417671213450216881090232682291434391011922968337748095499072637312384518227898656644709797932070105125185178042096918035182884065116332660464586411472745026578947395497004994642739300526174065622738199015776932442270170966736012675692444451794140089117749553402505577980940806548658397580810150767463327271745618770071130428835511276252199997210827135857481418652547955965179497488791546140471664034203900680919975533457255328617816110720053919942809162929333374664179064800183786331356194000127140031877898058236271195882257713697608687386980921743697959345021072698399835490596662177778900336684411131155919400533285842323263449139608321960054729535880095335429558300130727537174755707080703372960961595567585714992638558161152804274079066778462802300643544362253820958222968784121684012440740042556699685374096396988144302488868221623550180419989311356947302431307040457302940829780167152039859083984411145645337074389215702295739802485905397943189066554367707229087329419196232060118475077003285803887937361749769375200618369841855205591316475816431603590904758125634621193217015145413963149033144815753875975136230476905213317872301808657017530000247660742588609022853425978992488992454880714369152465849381658720752116723164474490864602093023635897166956746461161792153777373259463899382003298868949929707355167855861854963842419002736543286130747699077958009358813187444437602595447399005470714631618035335849812905193679170856227481080562664840833633983451939642286763031824225713776711695643928389010981577510163954518659783784728515619494377603234316748926103686161561246875593439280874449749683854553183892351141255920779706839046350179728950255216164416165649385614734647380551014624268580453235834074441578612067318305017539495306106574897693028853300267047791045451982400159407671890057340850616763337689628113516318094344797704989081619688003256073876919849881779723255000301137741850990423135708340170666980745291734017072581416415980854888770633631186959176644815310554580819059313784708022228496255677778992093606091690696100104784116578370915308843538827934622094714101521892369806663497944725403943385662662666414483788574606134985528723526307445746243697943613207377225530935961697315617042811401572158459829661564298251448750438120992142852227339459803941529081178148791921716485334382041097283664936500392480248551515680926934627011641827890514388079522566277418526260460044918197481211342900231486542439185973890096960731859434386604115713430428438950459966380743900086760522864854050605110069250323415524468493629258989866656250179224668111971087982859094239573461911265023885425292604500156750863805825935209311765483194820556907827474689954860072597118593154440126421595309521685092562239518840427875252587609792337050207748826686495722508359573810170704064284902121632746827711874782405444443056183681765675489495887113032659207967785739824778587613291216334515137521704023844171566197035246961925213763921160668986255349087242682453054619091428080274479449159903398998542423833512900646115163581595047604305418301401381804273356634325536877605093566095798146875571938241889814898662058593051795824999160123256796256033425315310182253834275321907322872933045588085771889412961443717752885701588229356159280399341805469971566811670520395377029650503824598879023498597769699191677259632830018253711222290268808707677702594662387766492587824699075744569320132814741063500074944676002811408407749747470299339767915285712486698876638944647419374332738399592368853787140504928632353611591187987430699455031427656608987310503513998071585592895807708316334522824944057929912924769678845416282493208814751204599132213133746050911930740863029406775338459124880424913905773834124145436412899097511413489940096596653782196277065890941480506340650267280586573245374728090830421414564567378993997377469591791807683462413083664542345405822301082587616315108559134045715242809515314515216956344868528017746875853653420053291088823941411761805613715267602161686054166611689621582363117677638867658797954766575780058634119004738597475839532891079592369539691705377926750409725349616870255943551567849535902171155268018905830088146299914762578798695608448757806363109573591465369354113988919702645905518708011707060362390549072525208940493163620604774454353619615429287170877401625311313347291297579386352224601201595497388998190109872923427354867567863216150529352799791513804568822901658553302715855029349073973503264453388482033099865725659991910990072451930082664671234413710649509667062104403195243261510069893372346685651913071574091213574785953621877661724771082966615824009862225272567623446201767058368321984889859895583314927438806127486385075119501923010450238586567479039788132586602979702668059594834371906457969839048637339238422658217458711462109088101820550678849155873900054963540816455135185527768912061014131829103792150115804971666318835926636827716823689836720826416466634293311420211647520622899277065757191827497369499259602189765350878367519976512236216719729568559716616719315370020211196256066153125133596317857627066600129148437333315798282531937304873157787249670231973457818119795510078939757508928877289963121496290017981275799937784302759986321168165417230811490767118772528117760804988203798757032474235960828599592354840547965895309092515343725170317705548186288038032957511806752961337723323903536126987350112423393190090804916550088657190463183909440651126790184825479386473814453965983547831727660196710896327739970462029096701112347346573921472449670336126032343360235437632462644900640751165941036250232783085236937667016371671697047956514998492106445983422632033896734908158067767241505458768184919787699806903273751315489408365183153571675104760787481827647676001765530697337259097476671769322982269903890235684856801225477961220837716118619341073338572548771513950744804383153737616933288523325677123033461881070956305722244130696089063183696955758882647198918011723234457197679484257238677418589825853950741089682405858459461709796459037988258620552329574127229582693531688133948734268366346200493696257904243376590799869007801638970684706009691812413300933343869738920503481601494106330833565097453694063273170993169108681048813016558207922642940043374070768167481186018852219979409303881502687944073924675006851410912703422901868336132025615392722241576962134131052264360683496524291880496435259001365555035017876276698427462261690139513467334482698909282220785015868473407853964719444416581429280984673325471181154043019190168898136568216253596047249972679375084254841739953998143577874911634191605005285921746725710577833774421657339482074007454028838707152591717239659565557656301337920545265335759545799371812194694914428021881014448366632285313358850032375977434199402820908947207026270748720497956997818495035233562572396449866830171553908820208846583032317886217385081798758423506050247928608543131544859040212333968997636748238519940716039546113879058076598779094948158821462428597560307230820507639791534901814725223147292200858876191492115315364156507691114847442566662190044542315692020348516163846514885599369560787094456492172630877750982330076173479152992564241024312026982492996661729942252188957422724859482320874066773689022517136407126934834741522495353707752141383586166302861085412494351383793486685209937151806180218037689900681396835544348842140402510399581579852266358724563609497950723582613477962476072996902678549246098713835605646801312240661024431891505546193804711801401643675511439388386594804951581662239253754481908759212358177319215030558356270349713225030651789218722327995197580700185692943252903441817300906814492776823075293862652934297029238399038058271454109401152934586750440305913299567513432262658646258957760101880801229916535471559665292707847169820827850336120851881053454633602466515307185887961666600302466887795932448707773295102267537623051632064699845653156896565781598434593129926315395474194034413434071184485008496784188609561362409039900386079250473217898780591678491502177130233526638045696185855050940081846364932481915534092786506374241516789378289160930414071658728898811290194203843481803680004351337983235669255690844127190917578712297682512154922647662526865062273966808173553546369528889120831774596496196532349503894823561865769185871999783156853590683307673532489109237388810427228373258180546673564819916961110739554707309801910259884135420213650654544857543870655082002662261587211877448856613816043733527420088895713544535144262139411899292840674233359627966713143566184561355268546179017617683958650271657673707374671475026370860368066726588463229027265745359617258577191662922526672825394428403610360635294287696563673501839564877381964444546250457824928493175272886618574586108622446521324747343807023044558524966705790627725428909779943599776440795859155425988891688708621802388349938815791947383089386354811772303040136620137269026125818218347898962095908718838698287068779491704088439160460445630087145360768463342177143665873993841340399495852372447449887426079146181545390584778944409477557156385288964060231799216655357833829635359289673400830971984357916906073543452782963583315394727100457498832842880763280429804919510883117296761056137240912243935046530379780307946663708113221354286247921101213993713438067875539757246095009307149628489602866634642872732268543234930586514454749144539164113351423350677589865808867941077142463772722996567434956781507054393804664934041597236451771935033005312002242361231274363801991941349372927103073997248423130253230285539954791126032773962373646461893033132265571920661695689783409733029127692375090194131424017754471377936718259840407590827751472186729448805819854368083525529594392700076393351689756233416605037985309892784808852981102134536679113760644195136958729340367522990056083476174534440264281720453951452505007452173643095324602968203926830099819317132681354829045051964212766354347039191443687447400057162327622150631994343667068944496615249310834011300223735057886214741311657856588997572499491492990165945254030808165509504734789024833482318206583759897776867007865066657151309144499887992137011691284913417260249445392442239168738122060913429256168055215667355356069438578966260513654880074287943629211926507263608635910624224853804520608986691853843441910253812821533389675281340190778354713339452749497742934094727284539402231997156037056922742715188924256516469972624995577265565830064027452354230319144121649554880373627018272178802453486241565434303671089745007653790976269600073612833790451573310457508670118745945486040747845529521133394727292508050286219743132330260529758274763944664693523308654877788259496541964339581939796208578992888419008716751333263810100699182274754605310483045994418909328765656594612963254127305567984800446925190294318457769241694628522934673675006225421530599025197106718584763797377865082879940586306649512584225239288225302951803207937027299239670076238189553296309968789150330128319468438347558170845265009245595346667690247257325775980751852187042907147439507517687085519438081882692044884354817146431006699448015431468838857465092641523688329279870639032143305056698172177198935528182373891012229739303988467876535955120086653973245032517407298686954100104448961106884566211715299039124434516018492001014721128269068035923335130404637744139086069706726300696115511662835733815031566688441685600002994455318378698029659732157643558419704653006258032154740343173329921023994150184973587424632642327930135968113984473781941275257490242754321126716270658459892067770094020463385315326544900777724099059747262193188423383789353231164330681276926134546553684227991968441597356010097733995345054924595925598408411284188328305723467894393909805213875140692216119393349739697881201431644090575687016994056250579878752045427523404879416769539385457493613764800561946510395713312128265361688970075555389823357215931178978023667661299818888773628887952315049197711387323201366768925878106413740009079622976277282034047457386462528033925067173567256168391346209068784936342666849228008708446666275787556473570670738750490247125464224650995919104358185764609652326067806901575242511441553998966424234476167643643536489384572024425377630341407140958653987081832884202299235641107881534631004957225697358218550985617508880877119487269969779229708498580688600303825744132264618732826822287556880269707671980534105778251509362181124147427237037742154026351044819692653703487345011711589711297036555241012734799803150239545522274087806324380627345176252899355747995417240894098957323752272161896814284904840001541820344668945370407884844775689388927803958557218732493791411341295301824928303998230766420239360546101411015397913275750539651852721525003186944089874111751911167417235279347238233106836986274428098136936565523807043991322940625660949555631553912265142637308469780942640766329729928710323381231779418452687251611265093011861380376746365522446257069837290943791762498173142140620598141430718275134293225084613430841956563393758358563166450045151074993688253185808614881470914773173969558009610252065875004860971494884616159361346036263896338422523099939345814251305414183103239097825135718823295558627370505108418125245039614729777407843553201405171528760999592402914505502094649821537957938206029357369139625872321517103539652150386898778274183174994891611873078390866072314088457235730922591197148517978745745368634751583213761519686544801196147720093192369702713475383618905014541289954641318574378016411181021945310981777666675250677378437741095009056830914287618273365803781038543554802693099924908825413077355079149601626662302782480961722213989829780544762499697828430726104180058125178048623012676848103419958001418854019891372926123645317757528551984018737674967051862451775358416167900157321375441030061412736879814583860755074203844630473193294320741944649971384136722682032068703284888663432551443029341572583100132729661916316167557306284335302912238933227903244249680780975250300993115238606458497829358108811160663288978865750253696533758185598124102092008002152298441443010303142701332698429692855141228909109361470353862116171541454859836971256247756846832739239102846849636198535187265287931853513998443313618116374101645286972980984395625276579804105405960098691691167681631523388393368796518968001187946552112433959518232775211329928071019807606177482278332871108099882576429025882534527640350491402136194039535003605379165158202589939421545536061213205287359078365544208690499471208829504055955353755976063166294156507629415603417857995488967520555997624943689997609593374955378383812434769969378869993790851148553351141987045813766498164224278820971543639789045805779366538181313146558251174781836864573729352877838856046919466503088987726484046662672032962664519564831310128836841066769892166910009241859952428693032353952754644960514061007625516719463262187041883205330589893051285722064075644775337701420426012646079278871385460663410489751835776428449293364576340604617426843695941547134099961189861817143850982432529977144844786243518806783766438102007856372702452697103394275327121488803634885388143517497979127316166923085389796709227453106118228169087125465269017220485556867599218345081733428108911599362762917739223276836861661324514818912194313845748186239038605822285204648521928532675582485774198370834162003310080495535398393531188276303507632070501594224521706445744549479403564952552866948971252685635299115535629484415373567402815315753174981306648610856814243082956334545544593092590556307950399818653515142963578801902096300779542950553530791841025675403872607276096376014642291680730337735353141814041303741313624670497390076655132821915062356365383040476448221853209733475803565675383824883784902340725639331589572001783636019542198145331156889230289990233904286045456692237734789108308577879068732663272726660124132948674503271852152665822890739357899467864302368305654439466728073311108074293587947068679163366135766301920420449963923703427224502357166526204476240721356357244250871461092319416450248348370728045679841480514290849745962886357038575389604065994409038192501123049745535980521320205272628242482034792839736036505345857054310770697523037781269657907311112328927691609024841227464615103398078779889259913490928088064507092538583264712544251096403468912122437228052992413417924428893611462731859593177976343877805334052978994000560046620541188521658194488840914136178035907164812576831081387933552386482323055049686843567074085740280020964679475029666785453481059003533548633822799691816378538503853399250885056766115468057568385740396238264784161101110289447056588154648292313717458557796631035402465700816094379108768772845675294868501438930818703906156054162090269548258977598348451594206230121639280220290349149388387978432238955863021002952248296819608749580743788175429748791808193615090444178856609997583166385242316734949310832011417879815484188109802327409725932814695462691448659636936137996228355686254633105927461878639073834043480845440376106506517482810414240673026854807437582434154529954419400197179973603155621864503910633587704993531244111683703550336154099031117384877989036256540740815535876974607159099290268421400581982226173929234664468248158155271305496514273117901749672887560997851949571653444823998524297698274302537433074651421119812491873599404122458371998760192282795564783692020630856675211518382333244676866675273930568440713450478829395753142132904490507678677902998677884003055701406123866270847240049161879322978724802816659613584072476209780250691893230861710414610509041526993484655793251987723900413217681441614129330955708190019772447847844569294679045484446026776335856308347835470670208027426034553450107795178249866962591767461209438875103302225515177984064775308875088805582951252659978697285281235294592974041951544250036560370407814324076211056532398401798459816010925626729062059573190873969093299349753232444332735613456347264242551942290267484515788627387968553637909844751036487316760364529199530081675763599917810845505899715895645746027605530691807020934800821882761580748085780764011787556225288633089236339337709820879822944324839450557221962565498453487111670381945199030946707216727470649345088702530921791834098484724803838353834424731882634153443584644520762214382883492081916804000926500892051457879097329648608779957418780033880592973108850869509755806947435312932491916753356902779831568004345247499209687683660974432338367170367701745666800250897024713095336007944149899912152637681912905289778000225866559126015686485399063817748273928547053053688892814571374706298944623599094354815557889778609658865171567422455141067431391031697738624000960075001926269389591267197570305631267201172371978053071142629536664039635491231551551205518902240773757783481410109804382296474441207372178762052072768974470480867782634944024880834278183244398087903060767655656267067143388270629677022208853390980757625891490354711860653956364715955356857636516106146038455094710643353167229713555411423282899978882635336337342687157233228764898507795977716216279710174964918283916067953605412698508990602904919855510786724865820499925678398077636377565503664302348687783362327697305329509269641063178950098438414265048620776413237031458695344564612565231365616811321134552974311015224806006423152324643442987005716533470459638348675789781203637702926702575131820119529463035671107331533327522710098493700498223762415575518487145113954594334960946844401688576269438947281763325297438977337867737651212556911068169508225549584912251014612528166352954266016290493150948044779837393124527413913209654707736751601715093967101754659190607929556518270506670000642327751425635123568486932661073079970391338510968795206752047750677404522859609463288059414313672241798849970303261126305097467972522623758997875565256399710632035301114267776146442091117046755846670744950197678070982590337554603509009246479231886059642324154595610444269022911068530442742195023468528156774165764058534329318852288386291008982961444357453582032901708071538408878871028714649150837834326254238352420463204832424018343909233691578558729715089061468757457614571692141355505966714220544090094108788766533452490112994000617117184696561263215450392586386568465767918570193211418056443031598806785741731678250800040654404061363595792962049919624058675289205818089541718338573559785564193887759107671505365941464904358047272333251468409488236866054821739766398214618887498062736437220937175149214709487699128400427705003926943170337207136873768098434045801182827253663478245258950596630572354812467351797270115896204238915109402337207176788758819025659870286471094339116397229174342035886177107318881584605956911744665584920778707077691010179654156520263667835748750342798360074615560907230814222742039114547532354517285105566904235628326405290817844435436818212746757276768623155401896775073359705830058329772729602882939492679184875900409278850997467088628788207094685167681513173095517135449913280733720590167944156929648012397724356036660610909884594413848846211910817749925555676716058495829234469744011857910548727756617760592706225394918742229413305069279877325050965870327401262022773541312275588354640494933323235762260432775060673633053167379818442312516569706831495558688909279044700172086885707809934691948187257803937346762802808546064046366702966477158750164014683784127393067925782362006378953807872526934879417909160353108967369035220163618336718988825682142892689528659486277726146826050340503952648978654963089015210090256334904312134742943619831438894112649629075392080906015556704041497903915626470125259909421444124377638427069558813087263296070544574648691824157215729446713404338295720976967996969587884946215789748768496085893941841878258383501786290826136373333836290702251886458108092163010574357394677510923874473856328689231522757463938728145796115864725828781211820498360730727685194382527751661062256631159003824911928031447629514050126072581214649963695302499654585965891549873955628077466775452699339004001110418685841399239521677514776325934352925418918260664748608626416502506292975798594808962895240898222969853753418793537830670839138647929017700571254741746706167906035293891994316826798970703454434746402822773588048688761670398809058256024543405070428848174074755362187749048712956618420849198377314638436527138214244271438686528998610635584435037581983157599155354206231279601387230782647970895378186719515636106457978716769634980713123694472055470704453799544435147064124922629530872791012874830125509744566533341438132577476646581938068412721797042033749441167497253574143927300627191209212133476913495833994533845376082103268050934752518758667234687677557635841927006749566426659203603822417200519691976735068988478817760643483472585630748607118062307380055861933211735974479651620135891840682012698520723492579693123682906634502762594020791239037548175918278606211788775017803902398687130239601680199146780397215844822747422130560361918937209727731618961468407349587092672539338907804480756056566970445559660482139426524332389553791499699415606977777723195991845965618553888325048084112854184787597391814443932657492114069046793643845147782199413988847146556103720364006810650850726335192028407201618401733097907738341252378423071573535354781587456631346001013027870525100709202855262148759339012638994850473176869693848566119209945259486823666000745222175120097910088051205170142232319553884664263650502012051359271096562652620527631635415427294704765251582049239917768238028217862142102224195398342113775205395609488568453253558796244248689009381499111141897799640353551012174653253985586771494314344674009203989489682046886564045794831653482395373300833218022532125467263949366573344439888367664571175980933859634060958702592320024190736463659328423573336316027720864550387011911834596332181661275183779324764232130918474741312057720597098255068555798142717449225042551651642907500082296165743537909726537734447479404416894499407004048357240684265642616269471528040691925042677049155870869012530367068214284164642417834168046282060615760418236269756742580602943582604963560042969544937700617942830527107622384146546943063052004171811049610582783088298284765577472154705924084465044224949120750169672016556240327486907622244875737119854056861627740944631276590662747757577331870698817227220019324185613164296199843295151134894452688658666804542970582524599873691511583551344572654610447938417219508041121061024804628310740678216523421595586102637429921093289903134305674835114979781539899566356357946322639852819230860277355660744273349439084236917318606628039924832747148306325064071385911417800719697301181247371553714017565002033655757962330916440056066227836573566084587809081582728982485404078813282901654443449772846554526967050921408311195965906284359785869066587029692762858262385769491940204964717966411365515059603515374130624968943901328744189983428626173988380145815013971803607123137863882899295414551534119994760801226701156761640232181335328713098276388524736329208755842626652017989962285385116637937109391487883296521358069057395986049372229606861657228791455329300757795820210602219339882125932063190869324083744925904795875190911988064776317320777089091960823492070778265053101575833883556411137152389347306907267390104123138450074490176469906837423812052065706960589946953622491943491799502442861534621562980000772386510746996844938879314651828234525141772927603035879795621508860769416749855400526392847862162738733879402956620857533779906629710084740892324761631206275128254334619718045079009213115494219261966683143732477405225836546609641813094565314178792469171725395859986314859599584995775655211965426872165275169671611209931250045723483686801263093688011098677650339095391665617382589800346916405638271736717770060223396370028046644665092416139256048252473083102391922936612730959229731259721668693292353258721005526062108706339071790563115046821565054797956117604281673549007943731753361206692907165085121330373407304114799623680002142976386119104971938676555957160391082328825805428669201245243713204928546191170979921726499392791206128405657594266949222939985731876677358506417157931569125923989382553185126764399789987988374810484953387693774655878007551605041893629247291695265121820178965444566058775217876542125108482515762900694097714788897577708444457039484047661413592938683218448527415082097265773400647940210699125018834466668250279698621615012444384500214787511072156299907899201497820833789719137830364551114092395510697361327248623291716455292097147159762780585883775695467670374210114985631832798101860623508151685932578498789592695176703301304659370307246261548081560029996503220626115723285864901164214618085668985842074048562634673297548967240321519917291137758491801732672070988078033969322403299555287075282249257706269771404690585913962757341421676991881610499293647892248911872194002958072449141216472993987665574595171789575962241395314571921391076386300272665696221435593894758365643904558330893308711909807162176366546882334839240878991429714716151707272569523729631400536627680786476600321462149888952169217632569662763235413302194071679167973700492316526889577014103090502883383174396092882188465962807868567442767885343224044202296737111557880725502482890289083660490945541599791022331511575747190331031469357085797363269255963917149412074339698170720042722966326874523505836229945932372152198969252925642295130405100997572952419824070099363553535307545252607450597563022227284052938427292266550402541373603432508113089332838207266462839571975742029933897267020214497374728087034756708295047522063619217440149814695998507341485478818044612931869036138536347401878841817544716188709799316670560686254268592337366602183599839985338133593556146364844625803463759513149181835739148098410564208031973777036648001236931417414795461796147118050929501724049397779226892053195312664231233320023229874911879162397027887783516281266776677873013325295540926425847445960307123667227680774953393343172396383456694626693276307910632199269062461360887614808904671524954537651211932196519142838348711150444749093276081030827381051920810924886928339806666340150314128993072786744847906548451168931920992691625676736119782259306211965038457117415693314682878907343786644372521915937657365955956141232343328295938740793748931231800943443313942640666771449370857361744195748178893396718244894075153030536744388561219886944394402075360362207430289906088491772613378469567656145568508933936892462554737706743354772541262432562470399586996368257317093445693410055563489713833480329434815541850854265500224006689086336738819865755582586472136844213424544612887816160081387558498198751668037624162969691510994945702970596003782859967282244770212880395220422311026188116451667473657873805400835740185992725300095397625639680510743909398844546992828973908609619247073527362333272615770786021340826409912321011476624756415866161032500906635972700485769018601589913773237068235737646011492125301669161629590792587086239686364607482653156359837247807467021988835057856089789475011018666325736225828144335822334359388283533235946044179488047450438340148717761396680191639488607634559580574361981880871607801414435658390383067158709307991226409157826193633309739009247874481860230575179880499441764782970634904451511113823570519555897341491335747895835822835178542961589343767798457275488410580830191475299327195904425798665138387851139936111012997892954629043899166335131645315187908654899269828966164963126834150036011155600364778845293549692146115524908552006466991150732135860956710774848566370987456464118298935314032841336399341568185224038611510556085702674984367367372014942898083842873826255883363191013905599992851487562233737855421296379038902288666194711674643958516339265488403173905093262320232049871392576255249023834170240472168796992210068315406512511802039497498884269959213367720096033465173448889544611913669468686390654020585796695771393439019367273835651335171293304837461871461473775047699296360165928181840797335193311507296283639034821099781945238299739433290352914810549524929058104751371765112961354566992166391063740110451722141762600501130584377820729869329953551217651014270303261875137900139336282177387898386624917683713277241920660440567216709430742476536017356177945397133810839029874573395235919188899917796471416437510829431171624956487316749726363519474711226808741173609301275111177697005240623805799053257181154834262350951231856494843734608700703982302205616972479399467386966544329322306631601975077566951250130464922515794800241519701492282767950254823804453292494574711254162684732407831752629735838761622492987095469120601660476888492932808336669416572771664235215849048056903808721232734073464205763629531252511353168623101939244342199422518679662581450353914369130488872686746742957493447921737661651975970555941837358542105608844557545728819997396138741937050718603899868037711455247399137227419105988874880048568245768229482036688374834628633596859004089182051014967379538461127554998152466872160088831851053011731860993208430797984313612949656556329730795933067618254815415540035453238723138489047121394830779102110104333250085569013313361317638196391901134996764048649834176295726174711708149439579685286684791360654681073193562149520096909293659114509878436410463427700161300758464619619525161111159725463728508452187382420663123949814516761688886506796191340751622689690186365294051283654830964107585741442440505401904885739936085818186022518516520144904670671406049802353177327246403297033431162417752879093918323884456851050937460487956549103585717610645522778507836683774515206093238628019748485577117727661997079518756748942024991657066647971557651816981559786887061533115434009051559250028556861390366246834960228259608779240572210901210717781054138431230146020985276027478233689554642939672454422286494061180658658516184319820892588607108239625616970436636009999398677563240145312154079402086884234784738408510890484948817574727996495032321501112258826707101943432850125026592461380668795220127848300320885753081036652602028124641316683000140638160903803380520548548064943065359708340870769212461253009853351597071598585553845909681382923518784565107355524950920061152862681673468987622075963067665994703702912371999246386935916332916567394487379346997443094438762871990075911648095508796363386642759676061489904862217524474230705048495175981641029204425716288890841919887299927771114365843306025586132526808734778681494859198354070393178771221720508246428428396210856584321501715058917428255138100029946019593970561957542326582690448175694852923160480154813321593497176818383953855529386547354019538438981851677186415465108067913869222742881755538655926422233069111750415265998472687271522038716212447413930783771588094632377678785875649330106307482008451680584701925032547252853717378115124899169739671332039488882192529468963481830608600348221956047889148688779676300088499478328710817277048608315278590882693733948276557060105142238692984131822880880543341211958378039139825561297832299601950565010181947409292444525082767043590634472455393290803164273400253048736409206036008914056245839234705617595214608329696170486920012459669298148223464593131957911585067984976563622699543605887647175150231162757474409795719655651379411043239010689820979349608544857477412927281524292840506986691889376424408642214363518722279362348468693383578514846567953212621785843550787219625049108536679213505585790396742370088924579047094183595815651413574693500591194582177089153084606187624222709744766569313919936112318644493940388508450066097675961901265999654145839684990687421716533609709635582904254212550297261047388430161484262871874574049242279138604873282284025005421512738853605802523705892660910417893527553213018147094521419290316202187127667966307687341160459891943788596173514546477647140181268150876835287133704261258669289103600197945833768148692006507740424169919438525845186886767437699784386983980421032164395020409792739686139701519975063072824215852663823927381181184102635421659546509109315293086865560516669648478877195825018900574393634283475597718849641699580812478684563348477746539609764506532173186308446403309892026725632965587844598592715612219669891964672968709209162720191681511364197678859179237584387605997391070160876356495050933963321765998754407777477508531794213984713424232813336391482874958114265573373687723936878709908112056121569534779229299122995003132995715842628563525975521590724535164143656223687644249156549778740477753941621986390751053655505511890022665414205780340472854830121098343168524501846792542443703909523619856928336773745286975957483677049005947253323926706162945732056946700389084563225361686489628025373280470958164554559457478297269706166140068348622334082138286911040932510088469721975388757752688538852166572603973399070400239205459006767181961949394276629367745943876470816486224301922677473106253216459655561572654274228197190203774179744070197793331485574888855885937499297595298998983852200533871064805661767469056403576182061558885538804095135409646737748685408976094825732458501519354111389424175576772946516226614780785102845948692517468651687985349904580554309957833414220199906143383931834346337519767636609087787917625291452653580673664668385760529944268406211793538817686786136555954713079705382539127336842412874045289478947642002947478326585857375383426288848234545893141913320616631047912040812014432787007916980179934378594087439483303085181294583782405869021656382532325074390758566245420071820669354509745916284801777348995757649691975527259099436099605738829126288066613079284038031841003382489592323328356415355473176321791419611992663142599681465531624497227738132755788817581507410891699260870296060881911846886911619815691119733254704723256894193784153222486435439999516569185747868143351444603897583797933415189132849892857166048549293176091621726042657539470287980529480977711520312257944717866095738609133584661161770340366667227492093921521008993731597102955712617148689766892823721832835048268647533705221797695857193229614886587362142677110207671100229366702734617966962432004094107556378264298415808620470635433252425170700837310255813030828955013117800091565430393383127684336933398568655964309333766975709875707644443144885618565972784024287457895414473470943860195752584178991997635371910461930692756661429103292162573584750328334029129614655759405612760836165328412205263279140166094776810441260080165634933737694081223239908336620009111124098099005828061230103681681615654995006448172492508915783867679460195686688717933601277841346596101376073987811696318829131689848193890753404761605700515797469059321358332132703025657751571240986009082007505689993821719902273761083758029308107525280719084894234879839846144910676705969123055736085441410449031813366805068985111962656494505300290692132247268654903311070220420045132804199655068464187989661890471937210138182364940483832521180980300347726887609703784083297281305843336264487924296853545627281590984181189707823262993338939893200775227459684263116615700235643765305374198237947220887122737937779783087058314675662510577740949058306650441563285292979732453274651932240416112675594996885786074534694534224455715303855355202057467646344053436402660298678825685763796613006411184465548587171486312991095265935588541856936187285524182299321196222534467296345790609300047411694502919570408195682505605874123817512853033853141092366282710856669747924719292030992982320761863547732312824158140956425415204684723134802826723420213575393587585073161012090822848291553917479058966117946643223344979885146690795184641785977050976765311834258452476749437670037708587085735333152864103034034799481508028525882426874982056413084947960253381441859048361896640732273435043609137590649848890141168816919856307913705793922148474358509745525396786664913942451088167542646536479533938668440291669230278557250692769416766217070105361761105908888674333462591473007870074260150471650361494690992129856099307720360039981927168468880095538446337751946139689187812562632505404314821627944242174312654154066350724928217072457060685720613486818583007898140090211158664536325565576435357596216051574534350149239362437442437295297154887434280938094617784651543541371512949094475544969708600631138450286422257393473355460637897020183203105456649172385667673802041282387412939724219827658281374837867947435378489581148917265843056916653737412168963030792135270402977181985061889128421684925593950819065305793861067396264126827454903779988342579095481819166474548778564692296548044106220388516037941470048539173385543468091463168669972313523828189768223940495042684080048331865158505691138453375422708104341378292297448392462564965005673619911679799575317547964231097093648686969362589313690039449455818675215799951023276025893897473082141108180960316973454935418459764270176733123310020693835304773898253555789798397752114822616195407844097350035561720703301414428325244450534477094758839753191123766306958046365691055097343698541419944487412229646192548469697929835275670859310805663557552378668559090906340007013674505759155015564979409109265840461518579421918797284399876912678635223847221318546628456303820324019628776852608543111886446778748969998023107451907983100859823243631008873135579466058352145831594957860755803749556442916210742847874639779466945635808907530730849222491503111657968084832622974052208584099069173258019278430142877011508947863872836772989233805957008282705811468177977993000949767342943410080487297565845318586151352027396714271992223130348410181468699554421103716494344932220813511801025809400274752072790632074690058076480278066201697230618488387253645816525614529712866712506334868500542798262943287016727445434931923627516830242062405060779260668664081253800851495063165094989025065613785444296813960882984095982239739959646652197288170891245893233711039852698696525946518948594781519998592464582565066120407739159341841744658879347547483491874290330732880296248670176665656109494499208634619702239095038051698523235655315884081938960865601150251571395594842022740669814587816395124758256064253017379676495202232039625881630791857979555896597298958391248078007876623545347462372595136943870179737724845493036623197744181314917691637698978565785664019237320324705448170413540785614807067492079481115910713171605087189534315317196839931200915317021274165804771093472791677217747822841650051007167683903097803731034704966198581046170973269905396431305349535271940121225171694347077962656121241667427127201035790088337740264151883558280401701765190528211508390595025685817349297473187641927961821414283849810354097380466645791010868304609920522403464666858979934063240018513878718496307572570411607446291766723806213257572360721724775939669687294031739195274242791816069730512159883877252577511405906596646960751260010946976878293753787545963123735010001412781959072658938533633662193075416660434607140320098537977855937299891552638950010489921722532969629754100935445755823936762498768088593104731090102386013358656649928133871053916683706114089788147762889246448820582360397676871534550990758735950384428694128194637043991098297001646979551729959794498368426266555094159044936114307973362661351825136327019621508193064066826680719883782755892205992551047050775612585565598587332131378069264297339351663019108797943553938830292912240840302867588766362201074986641552679954652535014092051253149534458645796527475390872079302730174476176174974539031627727954720355452874250286768180813448213857032609750546066361271646620426793133279575222837829479671907488166888834199661993503200999595574319979638192091104568339798910257317271768795883196861532835831079670394856260820812453236812135563811889155106348098096734395876896274992182555308900534305254696400581360997948167806083715460780022811381709184012119699491105261893727304554395886441522322391075881857125822400681221139433350393244870926473039206307855379017271696808630183839461895244537866067951183351417113951136860443370616394889249001601389362529137935191489070853697178520043689654250913982982219689686171726323171684575981794714011787286328844424788405435134453476799126854411503279570522048440114792474434114884284474785848763958992757781714245265816367115964296470800803318725470665633114161621460868184789656859787049514864729690134677040450256089126518416471623091820010734285129836006661856231092946785982809936495609980632087673862932475659404510271932741147044391931053195949528271093273634663340770044211682120379111137416707787673139013958567335528743395918939380814733193589990206847588975852460589235200357610481912643780808275103732704777543425153116759836933650588928568195832393750474376029007247454770270687598774546665587673457466585583219232101078673456899647539421763927791508182782731888411341330284649332883431317569834315927592644711982145719518928726851199119156103037187180701292909996409154168951133635475545492912789310647052914797695988647893756830500878005680234708254897680954233258824678110477515983543337847082319147996297658246663527710828796663573741731588868902406601619613059802846136918283467568217646315534192448943191591342934763711003523647814323523525826414321719237498193660747212473469815949127520305758576061612402746639781790358004543834375587021581110279925230321979497769850658793375051312391352703156702736974653988989117482009304585406976996565248572643304378820804473135645165505264039118595285927617167770147050700773168686980178354287077048987130611913023963659756508463653462564732712272254685154257606116067649061177540864850400950116027164637311859416633958990532495659513119158640306842116094793788312231547739037029830954301766672852967539421550886052748511934314396077087287282695067857113911714101654575470351861186853806402805151556114984887536510717760719269718998627155429532755119019962259030179715145426250997520916248401291708976291080450174234378228269298611939002565979398326845792733539839501331944711642364565933136935107210868962255121264837430294737202237150163946838182823585509531871446473807275309977398137798173322777496149515423501542158457996650148237969068369198249576684552292909876580996801054982898652778024908617234213709377637904265570469866657857257919562392564355559193401803947419605397808002473189357359045452648190534461658654472816481784211502165403877083175758900145012231185779051491159456065759026093796233383726167066105036171737084626322956319226859336364606893027879980801274727241250270692539162734688594608510772626884533163276169280876461463789204459574981313877188506250630642357000953872265219427917638702240341785704765171756201286452080411426764522649505278110498522882831169872547012357366600750741689067743010812003669759671753064362260010450956262226888594247413454724307163202995400491963589747651095155245459342967519840026647632628418628432352208031725923511750898224975497308267219295778270280499789155930115513762886308422598046043148477425735934816253460164338943042024368134521909032689690117586453212512629956221242034156557411617889872128467478416475515939962703560004565835206537661792906190618080919423373766662135491162759425837235433337334708899298854683711181644424515537285773342090323986275688222582477557024894607096442792495566001336619796671128885500519786545935647438441970349321315594123623107089966357450291409328322548922332896094185401856934362907070136090045636506075907313099773901968123894152893783599451167376567590138717567946937353647437277214326951233787344407264720903323105588120835448796932454113498766202807134093109959755457834089989658494292254646618330345992556617093022610382115385272022820745469901416323335595368182670904232078607300436834207923936248870934290094612236896129806098882690642740632259925614371219758431828944293420999224167130427083265182468627784382495644003747386917161092626710029900770632500540254749694945354569777465203880615954183457238215285403487979628075301325541369013207966382207959605187140864071456628776417936233702600243691374905444064970996323680078257905321735647229393083797194424369967092556700739540077723281582667214277525685443762126401206434544088713047873341465653994968199312108484561367518465026071318734542977376197848447795134983645412216552028158591425269342461361342261795207310724447440104149796413231467629546021832946358290854689819028511623167062552265378831741159483143949157680094361335276399591427725045342670214374245652190631273961647918275155587831414609527442686044180515781274085519512024737595914469552059117083598999178107211805368702756360509834837446780622605162935137961143419900201980824662428096960623134413500902470843958606611012556910810956487032039950912238407796517057839144095363610433646606758869662552644790482688436810409140521767058696904326528296665467848007951497560089285988939172620822466681757654485248805593982333909756776696519043482698433440346457301068903841897071669637368091037378536252384454807777343613087972658416575344586013242092821554001459812149189821594857384178245705667682755497624732128730103774483124340616637129651300692522628944694276691945153676810247012921996477932510341134255887692341631093044560266233822938761811005586634828366869236392660604305429859547090708771180548445886257941705438418034098996607348526266246909547295811964379327725926419286676262921671185600847313358167761605981271303409358618120576455948844651703744630551821577636454583280737678170736466683729163533265872815316652588140395594189755728185954735529910925804321370888619359861804874495888156509505389697676611477172833981583409828095883213425161671190810399733739500157428791949801275041980781842765427060012243375229458403017619160037991109918295783207148109155454393391696084557908149984997562535740173618196552535644932443892398991811233882587929435144921441261434683862049440295247462052720940750097800177153331345165805131551475949620160928156121826916267595511102232871659330544566583206476827691387629080061181050125310182428175384264609019610316788242377558537477601397034579138759981267204061277809724198622622870306944758686063458983413454611155413487373165349619539539355089269326347463577568450753249545638611428378966139742469424387588674997263695172088660847783809342141860996687173856984354788456983205619186398749007418855934050671089886740290902179544163670473512711391741648223841949836593782974982123774404104471932939572645062287869133259245575387566338455189683344859260673728796444871095499556923235922362383722055256298228566980671926365889564990346338297628010703696894016648421081535019815248936477032174623283344655500177848524268097582761358098717298813589809829728465029223753949765115688973820266603474396933422913543861943442079778122588421360047223647634856708580755210325253734333657673909087920225776629791229928194380148540935513585341062064928970719339967643824380744291714058663071015937626674838801755505550937304599377661996324280132652418385505707142571921069015675016958065755482795910913785258067009348764679832960016022439571613715493349638176049510119838244170706008199487185441643274110943704716300576967212334816984730784817492412915266813738784535531636099934485259613626700587855679717389183559710467230035051997506717301985343541194410394230094727303062342246987970683902144219497106018032273962226990238804226334764142983856237963334569096227724655418268660103945989711425685529196630609865874722627955952203255217867507548825735022975864845981385261888008446058829620796850546103972177272610098335029189884700943758628992592788181539473263010259514612082338097698153733666808957367092987785196973391799765511480758630593817300727192634456696079344547788059006587584565505926522179579889763344278170543009062438638641742689370187549367300376362117449246972465561062739683059873945456970393256857795026555811622354308132334962227437985649756097815052039757447651147587422244452904563788506971681994734071385423381204990399656312451746786303500906476080834339898683306412518447974079882424732246720786662977756223649042481603396529926298788370673516620217049344739082960730777347033988161698358520386670555985563146641463383838855476089404020269640679606268416803034308783238094742254437211986315018835934105027391436593165378802398025482142005225090274036527005037259318390436574738141277395487840934975184927182955293047292515703791038991477110679889009063232238140421503831146695598701863661507667609995756463613491653817128005498780648664179946614473332840252088161607754345922313398421026720477827300279096477649862993771707778726880463882578254068770982094134019897366802184289390345031663167051618770773599280510847931682665603853779582886387611810408022456551404808886030818071781360152876223970137803715813035416333088165342370513692767759109221435259748530386596730222429823010482030710855137826247936647071745341884963761233270078834192489895724833172482459364835737636658039229046801992049390221725646727589361640781813509554373609387501094181477055031598898039263290776575138164960501706189738532038704148728790143843189003607534782349704307554087600696814993257304338933386060752206080818200592202289095874878789847000143278084568959486312770465109076544940549904951356373501571972819012229763808666933945503179653093529707751055273267066866574743936999435548833365982317344691467441174411204571995014232262285884444914621354606962593707819305363991552657572473995471939766201978914085539734940714500893522594720600686503111851695212019056569438805712409854939259551967464110001183721335017012635163890922489233616658853188983610564776482549837085028897092856343119279781817445462583252584277561891053690032291076923418538202512226166676034368597873503648128219423676293836039248196113865944465183307453214186572497578210605074594144125642809854917632257154819927499702296284960664690528894712330009234147041304999141186635232130866055753889849692504833891094889694459038055346518088162955124309098800277152891317600600776720550052517246998359918037559569449412779002921627528455323065059638027819286414093722293725305443669014365430810997529181774116763274347467146148022057897565377585682491986341190803009560843009175162290679524624124296337044629802849092479127338033341099904412567177212592344827693877103753338233397553542019267429537646409629380335445089325155189221799134124146774577508391785319826934138062313993748327886990627714715122937445888670688433855222162947577456179589758182365454569864926976087614870422719830264208458097456293448413699593588275919515157938070842374598530894970006578736430565925570481878416972521215307113042574723678677717969992661690590903507342560026666176100382007395113696684491466858788510732059591302572930962928085095700497261587281574433031589413639565192433427852387146455589173997231096514671945485311975967073345089675613391813054408843806815297973557364275520005494283061128602111882828400282214582346129987833082959887687078854871783550599577986190825818431268399892098310927693890252395766374061959521695101806823699245670758663905789218064212116968084418405411290503785905140843769353160272225463678935826820392032150649570671862031254562686661473628503872561084556870474697214997285041590196018771930052793349135270101947960702504957646383585163412297441940295800798346791109838501090060865564335138116047062965877728356916257344774043032169471870895613427465657185471801122658833108973406357982401390401597887568262880809939512498025704367359980930497290186018818894476864623787915198693829116236942924163291591609875450445781511072873173659238259504718943101577314322369326889877492613240977931674230869841275473617712555105556211230471477055343918309668951808765958265813377570281046267488536488912176626477238999350983152684694630348422263387394542983330459739731583490671544927189005572572750816090500046911203173146110094546414685801628252671455324152101000842123648070711744654553446382919062772689864187943453330616712587638746164376716244134198946578038512457761624558882559028906070406155516932716888599824940657939297005405264439610782356986314617223255979427717205540644303112418162341626826523497781541105279269401674832843446846563719812360112618381655473254212469187745542799247356448442636638396834977383106586935829133312277781898936912602030752288761174476645473180188683904626364338018692550545926968051375724405140218330730335152342093941777086964567797132471130643211610281364461360951354476998369338114251643757339438935752956642091100436683982126746033564175358970717316725952418546835928297154857502345938590642135107352942930275223186871534974066172188756534714807507493447483082559411005491249222588018367888951970299077479208695721589548285900116512822325071118280150561109370471489028905509860983293096877322769450103099185148686903713732084198904729948774310837181694478253416218383094077701524549208052636510718643688424953016121930919534833825274579731202175298473340745947464808297383144078022239885704473968418839591036326480489962311764836807412313543761509376754649893919948536447889253638508803783318129391743098819673810732025264654561069161369272897834818252260460390791068063895223744046649917986251675938429536584618982744682814547609583088747120477191295390384411984211428512951620228456484945862870366772698712724129058073919913396298425218588716800207853895291676957523911100177927617056509214140609181491070891533241247018513035899401188767422129184961521777798430215629709496587665539772669881781396947791264389988598596215384533186125455019583703894699338706814999856189114793430884738946190298145316858466861130847054757206547913712858884082144804750657597114705256089557736449739291522251071019051057813180047973201689570649877695048747191288367246047463245721262906479077640284211075784670166225713954342495983354387156065656302748997380166339686439350048881620040574140005795799189428682820496270321031308981554450346018928377293771194537751735303876526158732307833549018501139070090186557891485984968013583736553707681136924246372745728744889756528092380082211366662042909727074510322453845391246806884804039682022529260816577096797180274175189074157739784331415275988056438588084104859779570684559111340640905639822250683131481218825613626188404947751281726924088012093346643092883221610864266949602262110946155200364890121673407412668631980185801870883557570154507371326101620717758187485311680658523620966161244229192055020449739441920808507121070830483031906997381255095283598338408472869268142713613788160420176612002771838059152281768365585284252421638750816740669624033697936637878122267862151753335247648185050415664786761805777764497676589376491167996532116508266385774185275283827428365720720376910553837337018617583936485434977616330263147699583609673376646728032043861573097924521490299138832705727146766445465325655415293020750893452977323323459592882529914835653441708949245963083471273991735213220457720658578635847236808216653849173112445793451081318985780377545317088106527041701434379501144606448490124652639834101599966272346114929898937940686714156913500254160315077285407541706377556502734198339190736206924382332350426659705740595154332787229002986502559855423754193959314904305500225289270748390223408124374036810603004131971325077358978806160333068871941852494210151474022632112901161715117772500623814493011949412615856468443148896361673192162788282841612224475960471613962978288241863873181450109746111239806288134989403796273686157408964350533691244299014613815305791945600872237455039553966458756613089870878464365239958926023640619550447200248499173717456867490294867511496592534013236006354106767907597996215087597205190847053855131209960786673590284306817863997014831857772804090865351413092652474525473568205925095699831450957256400116277259886252806757799539697895365869583368746988743900247025117975394615589009438047577089059289724281155898228103274167462630687860615749403684611684140864965272385689005551155847244803550025712540999546992063036548755208466097515389448251189774623886180922720137968650879686715604268363108056698643179635120367055766290143326514565246415829837543328516597841623509554300596570089152212469470441857930727358407379768999964227168792749066199072151723732466346606054843912210506282359747280192162452304695763456872262307534534642693920570194416097707203362266712522150641272571751234165377334453805736327129223273838663019769803089210242979124449128453498627528412139716588157023497234394571166197768769927765116926334173621394469446775393011153902560170067418273149552847608462122980580777902195226258688165700833400963407408695402224410024304219712067707101433114868859150234445197640698839866646940073178174027269793330927553421010844771242212131653226019012377220963629388159963314136772996877088689007400833413816367461671488014786865494582362632499090702294875066180555915039070083045109237277496812092818656134121137887924377336348064289416728355526764263736318250419404943962700649954221560318024348781841936130564398320314305739660839470596120177630220029322641386786315657365061987436629446327376812885026407843139207911815784322895678826572930687513902009678975733189897154031434756045879359156359427242675589371743725060240077629006136497314109519140090776017145363239527758090746727088901927207145061027730185023780019142413529749365316259274293044454848912205179692041984218528087456039522041273239182614922274171149598932522849673786576484476172472084723449629222369560996816746417155398660252276384144645062746375348101197997715331536506963013893564688341959919740472411541849790511413463887536768913970748011005625638741168613829864193154483955539069342913973388145082296138331425249326466476719574661084457592849333703388234078787749466728722015478328094702688944330619820084097694405962717359085695655617072521746692442299455071978641832934976783811006400863862686661392443084534218390673562764035394939507054369925539501588211477028935166085365314945335863264161929358427869197767539136228754454564085061884674851206225158453434382941712026901520488097689852926978947769879611160553359187467469968001963873678739560679140332893647157042976774178252585970082306617081801012570020523437298927214690958891288311817488034621606787175009497876020790726717486471289288111357124098773051645095597650053539554822935284870891489821195213100364602273356652145035774406118539176447887882853204042296074276776431713779584962750765716690562025532213085040748302792860899312225664381866645510843503504659572866970959745865730776624527133404474560766173666272009228730403920760121196742483535954627644809371259830812928963781883712575984144896025708869842904886830284866936418333683689893370250686427176227039439378676097943305249778743098458039057521017092902709330290559168661811624041762380160252369010592262165549630255592054491088305367589627912926278547860293507205631562546009374148478060488302257361747276815943967353717089224742748796313732864903524426144098249584834616892888701473995144671372950114926566951286249445535780972041513884177926022011473324455575767439390076393189857463236422575531166969994287802250278022416440656312311303345369271762894291415636661143980275308124321332244141096649923681030442061501341746830023681877103361879586690620907873345512631985521315168658207688111086630299693831979209248810018364152216512201984939273490682831996551271430625388452320144984708440090005716798445677494466492393350615906982651603236689851013522755627546587961709590260868247736669182720829785512363488870476207175622752806709746921445131541827305860968661988501041155416722926428270424779502737649203215309123063394583386301863966983176716767468693934581719966432301367436687663963249682479085534511011867929799764386487618850975108574664066133298751460287894368825182936180937715753555070278417003980288767457207508153262342955462229195064589219515078735699409843218848271442041923085799745484578321556345428135516047498682709120167021108104639587515905147801063385762546928339068104278851308291880187761097340897274785920891785775589791013308481551398799789009689781667570587311215751459699236660700343444889407479441678420115410051566686488130861849845776786260492723103736162819365474882978458529310373732447018940625202238207936927642654154092348956066435120762568924186231742629610469320224223200259742387678297700851625904216275505651337231929848914677019718364897327146761024557183252941127408556252611199597067057422165855483687645731687375298634961746947629570722224523961939142484661428375019980983332475151586926746186695241816904194994301580076102353992903837324433102159782233412183340536708510480096761129086495276638484605777622963424925860671142122400876513178529464751281413032727192748713003231860027887136665341561033916655751403700145328159632276096681014689704734270820879049834563060622845210415465532483502923303830655886256592211670938060467575322283283175457438546682788762724571182968620105038436057020139342926758039671950253458672045698823336410579484013988748039711795188847816599657120299563036855041599433461375965582168021125392993069995913102128667002284155637904188968156749649420337773012862846323792653347405452356387404333692635456895132757862380081495090891358285795517702960309606411414354081410934575493946308718083953828628777071117608701075330449959786769418099227140506448462346778946539442212370338453277969982660777978691976810229471892434769044917972390538182728154987075548253735133270185301450354513347399455979596495094484132730768665974879481331855175712123317551794304650397988189580929772425037449455450173707581672424650449824491748410853313936186403340525417244628011833216921419858101046834922568213167121861534630334942485939490463692071284194244277132017726919946210319140030846889609896049973851378000497861385917933302501202501098395527766609241901780878475862572601949165041692053503488806852686873427303018800679170601849564454669021294025093652650574107215692858233376674280258283984864449827918760805890002522499113746905802945137185895293297111787631658882105753108096322327090522365271857878320491924703493619903938360357910907580397299229826009181971686889929402525622926983958808816882340902313234503607793238834453709367841675265820768598238023872610041366671180524553642385883529128364087622696809354627492399573541453600287377728532779721222122363548207565162268876129781197679545371792548861179949437121432915748828846036498834303152537597066679679056437901963099627169785129296331947987530237474019412332159817975664927613487676488027655027007190494128812562310406326256515839247619017897917375257102730922249586399862373005900163229027130761535188064476988125881637054763618420829622873162657790135449438801061210994621511799904165505461566578599749537813150681514724772928990587535538143963733485149563221316665945742951155829346022207350895581630779886149542611983201449863164870329878590098473457341281353300990743617623337658685883686073202860369409322404324512599796716796345399355068024413864571550588383136892293663300776573425535272612565153607994240431005989437580082499399044365202977607287397003610622046476134798194133119315123641826609820534665026073672209751233327836189881254186605835266828748773398156770682373362044027665840482771532335559917433019694909397975693052608508965929205541883330611033875831844754077520040454046186624348154174592480428499226170104211164931161304667523874800478963102791347437007285582675841267112526300486490235803145248092289062475365388691896005620503409956744778654028224348503689828566689341810894796453044896945460125631479692794758809196426833433499835768609016455969553731344259190901853968843302980030051568722187431963453452021005960767017363354346096835846568452358684150897885663922122490621570884943841225027227726390415289341581171318356118352393599771088546702410816784103654815465442762512822870981752994948400782908889892631721626212124863072184881031883511362732722336275246537922742410370805525994802719167606613345458469636135349089624712346819568610648138997823976980357098001819384501943035641654104176265924306780706741347583286879610455551636239821154322615951317223549718216095170259738716840405821820240585354932715757106747084788395197316095773934076175039637089196631358444379550115926082013673663357225342379464866061024816352046284553551539535831040136336396242850291888105224621247339206663824756216895896297360684133325581738490576524481104864133424763603825204198407311331091921991810510005748829160691477041214515929645520799339734796939920976634077809764959347317323476794993469995205495932342487096816160092864392362064540785516019580993639123565624366377579830905470742486288054828116928843482025446914307118855740732483439143746490495571014506957344034917066031045384901344330877439375473021181873001406589564287320078405917812626410836485860172757747987535628840585545881301177522068741079182999155386572762061415300819602998662920473043477077498022279226009841694375870374599450968638439099996765961565151545995001366096176280732116094417261896163044963930721782806350599675336677624677439185436405312425887403312150647732687651834690345929956451748440377870789672761824771964945492131627027879437437369535702044344556401379067016763893795521061931183793962378828693582208720803582605253023521758659785364532080900850288628691675321822326860950723246636137622990870347237529031322197612322368215945713302907616344782588819152303350166906829130006775077308379758125912129494187705118706921452747824794951386856394704925657913277718143918533771805183224599137220377611851200059120690691535735008201139044915053857212420993131715860367032080712572659911090484092048376865108375454691385022423851495057350427021487226975104594836844166403562475893031898049439000615663567491694052333307112623792223782772399872676196506800038231458259159893883587101687482559598672975274692996398559815038760381045544736812043452085572763031415723405748157594028742370906217421863251053536703015098470124728397580748265925666333706723256073636005047230973471516640665493769104051307150663686993673063932937716411612558154950202352157011776963786747493859973256712649604553913216150177861739561808939418757566144497572045955882073902899949510424304602784245994605228196361180274862490804871741787462910338007829599892140332155877356127068390475373113198374893093683475625122485185735595246354206661310764313877690438888477232752153963127401567656695488163029250591388051077322057930067708331177414455830802407262750956029733762637479225254958257647815148646735701385411858569627798502638150450951737656636192561863298652223284506007934392074782235450711971206844681434948017685433556510739898886703314361217450700026168996813609850528156378881236371881470709325314507843760509893244197070695210325278147179883530797721909965374289069083347868767861016539545242928390415401270450266354973121147154200606077006595808649636678688451302593534627129856250207829618591680234600575517673460417978251113116274664643291372318997433688042459696978967601379483529470768392020220170723446523986457063910444221821601472203168674621221509234514624834609154304911820986903676758961337293671186703585604624536243116435007418235425393717397413825323165546172550954319808451195890297445734895743316474279340026815655588915131868088833307000607933458880568662618478529688405369267522953078954292579714912818697218262202595794099295971561099448370609947579379410972709953801735348116407154409370657928869128490751517118117080060727379258059599231286067898587953847525428567867566164127481988651532943785066220104852902653824038525436585043734368428393345644274558158975133830219884207152753965940236847408798806872546321470650489362323099174824571207447165883756214226700400842525028280207444945121030039194386315084961875441967189494808642169136584140869496299915591517558951354735398726845608870959999772468853078119350898029696113376370702578473602817561125025443384497231850478693515585702682902952831441295750562383347065806305059881073481998409527527057540062432012540275445263164971319818650850228210515598011793756409281094611605730469374616943806528342292283979474217375900645648177790746271312113351038121776085861692279951936775641406880044821094027328222927798042460722850380940624474524910151994915996907226898146281288889448504706348445647363473669156292024024221051410208397787633823335876336636374278815991638605030068221987465060833286223124359007765738875465059755497294827856131966821885667791281529852529709679406689659317090191704212246635162028603396580188754031458500071197553924879690338215946989729386261174821039445039230975362169520748510680517960521331997602363969013590739001586540540204748434946265859876217818324836413258733198195821059542414991389021312000587259618210492867948014073177371925087444923676684384362726532276971912996409545450061747648878114752192586431076201120471438417598292870072193827697855656345173183573562902105627447219066165445239082585154703395848378454814546629923762653028514042294302292448646829349056516508681210328910780051156351686378292539058523924412334978002797654311895451349903169228648816333731095611625470133976235858354825923482681689693103752049814705495443163900610620950240041179848774415876354745339535352241319974433963792247503203109132695303946942111801787620352409588644402248944898269148623317452627038397511460905093762021430706256752137908706337942610824000947123163944618244856912346396037114189944063514137925117387409569313001951463807641861033143763598429699261845411716011357651719654667192139105489047076740580363657439498086662951607276603111337671136178969100564163504102170459965351127144995636480204043799190516368319426940413332550941307731740204635989461813582338472943688692611711309512375514879967157377175158457576546289830908508180829134053622083392705674331599883115951068951790561771064418835332006686732291368173424353772547526436819514056206498967171536766355019780737943476675389025810235172017957587697075509081532156238756198027610502879864483253413708483800235512234581018238629049547235445228059754694586458480503567555409260531447279482904335110722075625782377099016037343670506088335125836013093643416992029618841506980261466347502854895318319153135068750648304974368088714596984291063093351903548293377761079984965063134097219162543568493923854213789972367572848129626716931432321851181866241750965161110624128132698513694368949869236300617984094708467790142903776971913772274502350823974632367742781722303815574570111975190609229077455044366414601580953900474020902984379267491704398708604517820735465630182429651276371151161349597350394210025861584767693067990044209105949455697531218316459350121080371005812208958502818704363679273097662797591441712994879976802087403265464789031417945239178563298329103591433612261283813255693709206475907090922212446264289536347183871098427145782861835771622996565954757008040241895167785385424134572243080075802055013333250801728291052582252410550189199784150899635363574056363873704007317993045978273199402807685917618683765278660744419491633310314767051190350114469446245968970987745954929050457450013253975976942425753736691534900708798636799773156373153689027861637171652146231221914183865214629805283172883793743169709620250988332295701780202176697546666626981630310354883170066846699749770112709830449624002982036310004524503514788468225920346898488641808229734215342927078719373186030187956378937010788372469953944598248214870453358428097487543235665871285508962330088231380518704879535701420547638335563753331246070764948674121955146413991227054390281477793715938767613404338353213237949316264897121793371677199139945015214073568645150338651598274539609104999008844300847794955256277456700819054599216299171122353586223322729488449932537612350899422354721530269549909395009823528267598083719698677582978477371884792467836195639548981305545215437321274539947205673071920958008630844209125915798966923961774097737953403583194545525349004085791244660727941740033562297207550843213538627766724936663764316700526740423285566329776523181887841033174423825651733586134569936294296594913571613254384238632650546635578362948062299937253607738873497694058216171279245157359833531550045496361912848032957100009769141129395011579103955361866641013341291619100038712018927646259367921843025934510374363046968954898739256014153786136934075356717819689355767954336787856470878932663380454145031131904982035713713458905142805054919220941971046055973649704998013272277854149675170827480305034782156260480982665883456032636300878054083559421389681271092295219312581194106883088139578451603164779334480665491731770263900402319935162047353051153150479976693823096465364028098978088756185636640412345716782195603280067067014138488843541597654075389217215165767613628182642223988893054701313433528181387499273972828873506934710537218821830378032907485768911938163301156439354501818574733638865900553725385880341200165742575245054371948702850635571171695211354580686583234899956636629146604136947132574756388119704832084914345763991853864408901679566630288279295592076322684636870758217674703264627543134476281688706072798168661317256863053846017230045939322409057424509438224464153011738776937313247881724085690936906253159719842732013491227019867688645119685323223829818359029402316816685412703008937022298735273439600498603416279102421046932305339205702096173036799150234394181469220837909478483681929409587044803255074582946051363276725405417804109978491162991271709346754804707152452265587353190465221132326038245790171537499316148035909163427205558786838714864006452006839180264734596382913295281372305135872608322159880999914126485042717591925723538692281939037846929520869594425215987132085686473829209510830223060739796335480598804140298421907552878267947529112841349317474801937981356448910753695775425295280871335731671480156578884849694686433072313814905271976071283715133774558821765919836708273424067243557162794861105397980354634072548972351819757281477643736979953200089139487494397818509617391072772842857656235267264505953446507198905950982685290821152692813141871282322699725014748042200561197211991065587916804912125964629056512199073174151363686799489421740491906847089028238410603557147770290997680857310440055808377188881666952488933143044988785157508569911598450195562840260220581224132835194201342261427404299961780869052246601991100333304228568374646295353754243657363763691769795650377343755713907408745749155197134681892059792522844113584471253387672795662538608107298523711064234011464284301907859680509798394384868924409650906818900793142233225409367733637728275364269934021427371625509778771248715956876893983057941562096929337235014898380494942756645007578531890182510047601362850386005548934767932228175034445803748919170146792184451289469616201978434676931070313595178229050051068765970682310909660262659203470533227865611375388186859150047639825587230234447454848970263722280535107468237647076148479053606647583024461287850288583582013756911052785855753283922872822642378313497768057724534918105239473658320043723114327573839530537990967548338052025314203936112669522015188438254868081885242432525340326398169802153961574902269735079229688779112277828741101888143026939190098203337326307767940896812065994686802151904804580558565754466874269238433795831263449102568045714458324010400850285172983732000979276110599009559082249645065035739615896213644126733656834383287725946205892421894930248233676869890683257164008639933968430292529809844068503728337589994429878693207206555861240241079847592851799945793228214444626116651440081034155859383887153685318893120859317199568549167321913464978901568892854482788096652092324414553941468296257362900665731740178450057696965452564840106170698452739163036338101008917843773749850888477554957808381029079191570399888079607993270529760788709138774320607284740895279460127779852686677504843953309503919627476539295691476844265874065171700425064634917738073998335561803965077762575413009345675553095106662809786621149464916096942197996019535160812923425979015206650619892709882543908381037102699518003301490514315585355469019635882434107805556760261694931603673948976807729396342353599490788032089778325240877839021717240579325178935457092827022117017303573590819688691140113733688850551622218227732882978314311359854313707724343827518504131466812871717495908859997262226925111839329367528178560578303867262712779693811693099780188808535636312278391229573152247740832575703304874573767745342654488240162257923646881117094767535146971355208305822743536531024948089045519496270853306175331642376074118358200191209313236754994985299077666457090730801285678487442144949599851974270306043714752804963701502754186867275913771807943220779137763819807867276540599179606673994687495264871004385339157431151285117897638571669045141025335221671784761302191794443455512196354614695829245191199782971652376599015183837524868618908076462753630113038565531139231752673842196577871211365871379904935393887122850210051068407302268051013400959451171573975668767471278502323929729778937051135841869928366811041055546570310940634219225365024168366727939751444159691409993857652420854238841291604352216315325289958763940091980752344894072450443539385608533205363289445023731496303375104619307032404365157995272614686139376629534058331225082870459285832284983453235234347170353485307611718145552658380407278403847887594758691354662910770656855815690564212557344393519336590860864214152112450585332770946204968260337132038334406497669461168178504247190278973537801180108452295423310117637183736311648664641430288606304661402785274792657557550478773124924879162730597747446740062892542371334702924982596663924424936059866136946939800105870885435113811392331529554527106048668480302537912969109885701713339993278515518229464619994576759676634727857982835524950864499492858450908470741125521996239308228250957665173261387110848261412186059333851724521972095764529892922709919969216483356189284706816305626259339214393079375051349501658943272005743147259832120052095989249238054286445806662382147770520483362700024625248782772622484158683871170940046317958074412049076559543825000940181471597790985387003896987605540283950618849938060056459025777809000183780017651998047802619856690571490428754418955012704939193453461174828785257173878306247980665113902585383033706828248130684499844389134888675993867066515125937890842095886568678561410270804922359567101896662559154880898836066653494780306488202612193374528354482225715314111137078954233595313085445390938065676379083349367714278910672402815494682025629139351838361160592875125202935249943847300277226166394456247289496103383875131558230639709676798709083907603174165142448197954063937238565515564034558369089226389121221296487831918857232449869023886934608944839099474669109384107944276396719639179435089702518416331270803652907328581529015004211407380085322010559374982665507202194687487669425983646130919953114140187309779694047712684453417485097866742852623444824972623105875754926242777669904144418970602500921695097917683442163077627910402366991055438103984515883634351092524497823016991549859412354622316979525923667952014618382484473498661351179817045815765261755196611048106814305490273272786117344116928178802258207151853825768485271075008356354381717708085113453022847741722125179710430980823680580222571398944604957518533981886234063481469095800157130132458768613663041394529020176723023096731077895157083530224044909233051596941463262528531255463531335378189185292089835272662846622825475589107736400586292728066533655622914077335918814613264467823911673989825776597029927641975249054374582111560273005002100486267235995339565360909342611516297322571876083799996036076388181827234250859542410665979877292113833168392065633673846361595697911227471131445306136231786249668429786190644810186407401488070010730360232294371681646680558998289753845166340509508107445688508453596051521929997921882685376002637726628030360615589517399393392224477155231811309165637294845668865270058425544692721669644560676109742183546061943312994911526174500804333688903574010634926675989863879006140434322782148384670072175530182985725861560221818262863601296566167551991392201926101266522380295897232781834174092475758208288888834054707490892860432176704190924242797079491772719941438290162996275330213517219660223178436707395233156999985150600613755453160833132667927115490914552494518544375690971543332306850616115445098026842332022783212966041452847058536654282833187040970041760472390435291790296521264577201205523996027361656519373320245561011860276503887725128442985043112423354318942370108030419393965209503293624181565924408710015188441074387716950401757237939870923359690895790584349805808594936945608333553683547307405567338219915510913724930406100965526078494549463370586708680004596324794600866541024133940239285305457192287799100159904420006860434231380240361868733987783865959053439996330555635381892758352530338004531828497217862719288092101270986337683659118156886065992914838022610888022202249013481474647877587481268740580242827927188749599141897395526461302582117567236541522615299910256904072711436755097582985314487231769064287269360590863406175538238288101889303161173990825188901109613440258160103850078112303964310058782795067101672428540356719910004464907295848122797588892046396980037416538304925960323008139148202099216676909468502273220894039530461242389873918834414556244030493364882416521004051877140813298126177374063416755768593725152791023886226526947587384133379695946320238802850992676306183287092673254215466370543551653688441625629944990252038411738501574694962859146238954715982950996333744394572175517097804976289524767579030563700641003798663230825112160874438632737022537563199600609749714209450788184778071493682423491747089121759633125717149587794663443904696159334155926296640692094428606060970227757704538788974695769248328613990353180747609818096089437167740456804344803150298465857033168741001232255686058534486065264571606875506344090389446564828192663080065902563891110254569181329530237915278425426109590226757875251547702072197360550531518159142101915372528810868610371537643103074515089214250479736634250727715528175202728647591585210609778328761182475057479189565430751892761071621698421683207532839977357123455947703954906188782486139676805548108078928480797909267000540864228358376951767835561008736587722487817961485314112246166673935199367760287517460757578331278100005622930241906242875240235693198694404276459910195414452352686991240524032154689349000290334715219411082701180328399232927547513011852842288724967224921652221118958725173222209366899769687200928056712121350919608391431088725068190411873596136812265128908317653783733259188180975560995694269739946446591883088535046695846286535453151450819707533832147405914211311899143024087927947786657978573524449928720290149130010137036498440150319211657678047747384678995966127890331991198276993491659902592335884562282551129084731817217160879828243087969507326055317864936895543027064501180650790475899418970394830605445830780961049653950650518082600377790183435161592581076992695887976572969439335725878562237585803056841263736808175951423191271265319722428039825655841099440888809407226545578955684321896708283879645912206334957806421479280320994598757100216475617912253955173927859294911662959276578784724937370469501945349340279419792661358134709849718996158046921988551758603503564453375387496761632046273230487834959312538613139722140246846279432154524970260755027445834986871699795669512953648016640814858024908074014404049299115228532443413670336309701238567791274299860658513688106206751819584732637368158604854889191227503830052029795615534175923518038502732092539928757919979849922660331486160926057025763902798014019062868974528096315703649356939417838349343550218627891833437427496097923749758696799288999666398783351856825056673275636826035347443192263033757436914495093566515392456686190239401096273607459996240498574844794674445151582775314393435452278614544101454524930359734819474584557554529609172581791138583904118184027612308759558832410363197884792282811832784816075434771090419414159791035680503860910921150629998148135089274217161107705985705571620391049311661869015436664480387746166549686357550197231067893936268781127275480582652131062410414803997557185150586004383566024853568164634843499478660053475433623970322138070089965233396106549673538613561609559888929116885837158179848021430382140264533459477569145970030163988019778468755249680606338027352956952892560471427917103174036339485769741833484167887391006426377869620995863804759936063958196192553523782118533728530944937416780341012670343315351370304364396268249242730605755702041085761424713417487633827346934172433850154283169072846149695595820296654271447585126194866325083295396526834020501793716495388487584140102308924800001028686812440789867063771016051561990224412882790333416182021414146531559017381569997596211113117712440403861458707231443894306230403733765463905734707711630232711678313814048917573061016779526005945825742615300792844672194373861001205694069227079368265655953138847842873598013618791603120342343391888169212067985412706314801607379902527152015835506096676303055070924496357199023441966275936138892428421388875827225484119118753806921414895344280624481990485489871332188250604551572053297623514117753708515848505267489521265741159986736627354689947918524912446867920108864417613776856020500046703619488334856492702142810890488602994796733908421952962858025450798110804527909519046700122873444487326604949956462369681235984965816868355555119900646384875261441442437430963034786194903353769444303756385746740155768233218309480120710793751974752508501817286207025579230187102289487610860244094556191277419135425303713861191291237598350000599902889276218757909405142219151610208508851121957606854482628311768607538826819718054125502177226968593264670213815378404641251344279976350129903321115361354916924095739976712930929180591170018473398246208704953788528300529526495031453607272475979692753475526640504056350058835011276515829089066360963544942163545870781398880898391242855829103071343871317921866941412383257029258236528364101288573221976738293825929624340165918830127682460227624804158789996270933880570282649192735921267800858110778009750480648093141882276921228836599292516410804448049352514983290081894956244644821944203290358845288227399081729846528841804605865304944454273581941969237291045558549854464750831414908770581290933209218819821620132318072139692440153072372699034949574246037809543273441225206777816563994638321938993580007344840777353732901860273628949668727126680837968461928131384711539133919576139577768620095441741875722977982881409431329040501197904572880161200627673470167250005784435076877739295927583778394018266082406888290665679453050393058682734084576449217415432469454323531879199578252105939456549691488998916534949793518294951241358031191716540434129336600664700056952296298849995338484349262647386295248261292664713113554637214696129610614666341783150977396869284013469534289066115777844965258076842105238578832601080945382718145677551726243645067785683303511636538425037564234451889205518704255660124069376314303284536374421786498484598152845133336541258053912234968212630282466696575261186782441011550377743609158679643585985215918136254307706063439676763789572299132704907254693196162744894524485676836428271350429377338347566288833398546201936821217122289649374418229962559314229775031638149611892462690146824757749261218553841770471461145739884298024896256146222050252842422835151979548506944590833988227822631874952104410010074704420091534642982177943679843802908594954528818205181267856525554049003232105452971016723664824867988833793713546041736361978163375495086433244580159150437448590425113657991469882765233094769309710731435763241230688444583447578570949908711857886547699657007545405086520389724764695980256385882888066875797634550312355582923855781653750666657204947722510557248863997561633437732003152799141044733667543821871962171856764381807117607597735979215754437222468434016384453884428154923193707996544484790464796803716914348587702740865644810221423037417620727941667829453946054156231774379325557205080874295095001428999955616910977506149437024418667070170741530519596568988810461089472572724154785293146193967553081378437199423016078011283774969604240172021767547378053814569585778798680054118502040052411240993753539299434822786605356864227438572005414812209540598510630970770491685160693364943793206319533452677206352577899791148676565197514804556200241936393619576972267820400019287438110540037394464041524306303596513572907182162431416975469967615030744202590909085304903341418737412250042613934819726795565269988578776571554719916560139964238194225884201853207702160814881035727622543764679693473972651233030696222577850645975412840358372704120491431355519264568078806602523405674361499742436026710761039637181111873282346389262684267768163021956960494098079485821929339291628304518706577478198797573881408132032733439498715571561807941407517458756974308366533199637868534249972468400102607108885997901637513661792431784146537112081052987845131150688078189381679781512851242309728641454039588086566870762640047548333870566138497495335138782291279425483710525922773221200505333718765696640976505009475677999106011687682820406704195647206093627591063639224451990678194449861602919540924667514115900574441448241958898498453118002241401021250839496197232862985113465372401686779529256221053930751387547435029863664902591177078465044890340862602673412514086203349356439046723218290138115036625748875578220313342983255101824480076387497497765169970576665244019120342378217322571606066590620465832187975545125002021782847363937040978017373835923020142042061787561007683276684664405519683774461448269769473978653765963082325728825416859548055857815414040795962951208622087670577154367137776018653970874988309521069506618668602620207207062199842362579692476502739733814159570837912152990638164472550108057295308048476984078024639740701417474026219124802529164746046864032904170889609557677780939148722577477797553398526215562585037380480657644451812808938402278853661561907990328289141647523035128976633894568987037426845612721888649268039675709914385802348259432859874166389584950539276196992195712732524561579321462098416566937078839579333817794043188891399491741820524292217124781198278365373806789066090746169974654658782218865828419619871649708079254325954297736125792793360426104998862342587031072139743565342544313482860403266673672409479424907778621668266953495480814730645327215945940280137363663483398047091066486507732485037988007729673859717086530059798734880221225633392872202797607371421548022514652880304653477825024122193923131336946192541671791978352109558836374847160813933597538840518218927698958948426771699891316308816408147014692516991948654055479132537671444172838040338156289022369400365270028344284903565119594270466922831699353517621944140706293526190167972077115302958485510954494981994343288097174950336579669052997042607175319161077157164581188122378949327003806523773067094606370098915404996957719259385453479349675627669527168234861272666555890769050885782843176740579800708382207274878597090380733599686217970390695978364770377366494472017261028040350358557344684385127159654195535085530153458177368334021560035300704748553825688998023810163134908101627434913541370491650347283055690154501122901538993368599607987383129378009601097955663766383887793759884889936613955340762883300992120884325617065826191606946939905397690205257001558978199838528357173490440757108285463280101281885950120831926037475557092311750117551896037522308625695595160028088656696896105892255265168467434469694777744636040911867127051082574236505820915507745149962517248380329991602665254049137859854530741370351368629242135619200911860236019373384441002142548203144187653780403132295969031427453548073612101166878522807040665428644601467400141222625300652291799999502053480478760476915033894265133149072032635581848818060141900350730688053928257308217948801086780668239557191570585560448333730416566617668803515226775635741575780756921213721857554892010321001370133892579703477411219499694189242216059713409894317809941535692725238281867528784956707240403565193295949023549032158562547099372376778646484043206727352362590879195618132083434802143318334321641375502548759672663817611007186872604430500342432048964030631696054078998027711527239168474748544863903718651043499382520899809687595861758301246638597233738986935181125993042070171300683240404901950442264063626981531702764659421226585178225879313170083273603845964273813607979480421802604670081448653074723602385630265939352005723772262777309380535343780004700165082836539802072016597057919477216673270634198794611572958685298305870564530842454977230516024568418162225893733077060718333840539189124239814100048049300214740930579545722828220861589965491863788804541460974320869920123141739453212268597212588131860324526840541566336744477473975891669183005272985700491936872948901413719015476873311915539522846365933923409850410532318538751946000365995218375885142307984102275847831173350199359070494995578382387838115836333696370941911979449194489316548225773272587651922747979471686312889434661573563185676600958300196325019794050071354010763625624946498367974472091646244152230583563895454516231563128302254234905642097823882351742944221330159108825367267816796021007806351360547209570704879673321275150413949298048225226046747927752150789756034517902980554497411756172678304832111350865804880183180699792661434076477852365811477794840161470013443829755632528525956792074882057981133205326221734502089190902052082367499884798235878897187741682472275081803222195085795965350450599152548654836969828214509554732962005397710931587037182241073528703571056872397630570730619144951077884892036505792114297576896724923322948205886079989621333712667241023305925578670136530741261301577831587258057341011334710235211152525083814499286099514542923158274415996979859813345977118716154362278103135935951081913258418601234204852143091038895144560530134728807941630993568670154592603796688039694105069907090062223740958200977995266843585274655819509118385085988315631161356690857240210574593284088488401056415680400870232167263135192677804747167689290621248892189817517803913868557988843511415323510463873080297788645935555689757224072555086201148330414646076056023911660310893343619470195444431998950943112368215079057198766939630861287033722248529498546634385347638671050543668314786916236753249183486500170309933398771638612355900920962102585940195108090884923144636446596222295245920345674780434173373761474925493374018546348787645535743350043728851389978312634181487140296368309256441483423263714247994371279702523690402428074450000894067425185497309168039935151177912975785074940783896763430469874136550982912498994013739828385489430882135780877484510978874955064561550063709520843276651301038473968013860999674679748949960983383338035236003934906584429807772092601958089859170396441373540304000304578554690150783621104804916875402260723039724286238692982842209923652749976574473780705284568679008249203534662048545422025950198834346645232865364432246923244028157538696980114643991277668948120292718724860474419658947512895564828648669649371242451941890883787736149633706911366927803845192948977897994581935436391818328333572942674190156940496249113521231202129737712262786341970663161894110082783551680462408110241188875554873682973973898641469421111546926368582807407363227232566935193974357080059365290648319879018718871761730640343562979432182679598880784672275008715994670587449747802645213105749080855063263985376936188733802205787651586965112584061730249965137833281455370249499914010439312594999837669253279209006103167817175196382752095965337969998907234855956212213547371170740920944681614182830289717320895549923767590550880395593016136148838471532637197038191067921952938954978635526090595232946666531969067163940747439330558677103400876150351218275542907975576949935520696439986699775243028940825594180117814042699930753856387792732959921492262724656960644778573147157107392448301228934580790108485407230497229527278839821128067100289981272646997069167875841707193938390905388356524934957407884898179599098766091888103105679692753606165772517372806656591722004354636287159712090889442238045735490579613547917060578576924124619920751405948034250605868569030515576168980551891728857360095761295829975907856710274138177816967395995259283916531397024485804592334597098766969590233340240923550548460740525814230708201030577050837002087605097535118722365950298517971156022590763533727196010171256765041364931938072475354179089496003929963410361676938550732867754160794968766198958803942604085923680266013262772645517215528345228738614535331529668188272640101171201112839318636653683081709995553167233542881580323028139368478904797965691230026965390444597124495827491770240928178007091876200342592409124902542985230306141591281945886348539542727098782221630083199606616823756894028040771998372360598173870933848473762147015657646470759723491358244790578199886761370807018358012575067818738925628749630124764770098824868508261231208650827121552336387797329773582665473349347269149131409964224439917668304973741205255466116591187596841523743327461388409222484327589617578092954310037839981591301962636734144396419358086460247044923037487053564407936904927837672390819655182225401696925656098199317211934102546475355223767364986358029038692834209465121445905172723040920687685922957142501307028418572811569347490344280116837077210085601689619102617163129091005343431591989407008062268375886820267529818370024028257547341764786591586810663417278643015496651271762072215658348879315197639630691972575478107931393970608118488375124081961794255132880879380245750276703306597554340366852892628547417626416949780595989845234688157648951153297719657514254376378116036387098610970122147261742446880052760274693930501261439049281378770336335308102005461781578324143547549322555285904706541268815895033433065567455867467886847098148898621522655960287017153092742574455683190102965595254559555298984167700614880423144914840406627486891273357350391129222806177307165990073226406626894262569476991594251118707806232027570278252300506269316954250072693019058305645401578099060489184768246013523614525055923196531044377744528446800911830785313514871628568522770673862876783277545519073896971278852220171838581340610568530546851593616798894829527822676719818417180661829982754769047686593596039743068103939301078081979203864982315825040541707498110797536909598355903976251173115709038085150094141094198525128424507133085446818096108873380707828787817804233261865393105172383598171206522992866161210279973485642514160218127883501256301293982687614287781412900487892820506286298729119653163458662031653276569559462049169478159071088771833061144931188594489456717903758156998723145096370304475024220837610242543957640354065936191069585544652262292232928700444975738558710769340949954146109648878373537517774508216935338769569016238969291704097514705248682604335797985829952874006506050748466159854557338203686102827473754494411254447246260889064936508059489366798241618475024629507853118153138044608757597719631266099390710008012194505550236368477037632569688188070167807729145178326059419486374900801161567956862679589187186503807849799570968897750887234003565771569519893333872697756027255165311104931387728104920657959257759749025877547556373149767764076405804225905232083183877615735154130964830827417144224829287272952457724859094498926572745096527487359422094116253914403931809835708896982518619179184824885633910857047821023659889431945542556754721501565520390305972200416344761282488869555995589123268592428261586407773815757051058306841632014148296930446578950702663570277789338355768427001328993569890563220056866116978989118257107187312377850475356007665485994570046672905010660265190655397479679782714088859855950687533966080765448654075314052518105222982309289105187389262019794318864588638386113233864215678298643281252478290307538121414810984396266066995379519771432229743366061897026142536920138090086512654458994296435539084156552769933550163644853803660153198684836301873088478954661338034981914390871876586441074946085104970645163808971049906766710428519295404121289758777425785598541739125966914886426007475827343806923831446547892090896594137787004759940199909103335874185936313773615229894041095097425614966001044988689930052728946317925030361341527449115574719590206207566148412861765102451370255889746458132228172052040349600982904668075961431607347441282774808183811105145011580147937841075380144440354484564981227734245142651714932874035078122169997257298906930608384610282032871835254005410132740966003313573901210931246512255786527551774839128956677722457701167009655007054963232789929715587505885605735978030817343710565909931441102714286212579981665700661024086484936401422753554437781956245519547885165040548412802287421523234465731435163078075605771743011771099279610013573711837093766512270322877469206478482415808453210955767424235585521890807347093291523470287260729711621228599873245792998188012991281427535516196183797606322151447435757269558613893872585111861514164248883714581240045492226887689003049541997800206841801307134095745657179482131103823673622982083522598327833673064884088441530530640490228774801230480495368677460715433248882478803278413938217653735657877609565177085703593313105445130192424789746005807261374904090782901082028937398658435866400501729015209950643699838498656347039282122277107017106116024181710326744954670673471376767147603382238171215281977069130789686331334823148265254265464868073730518333797992642123651514040017408045503344589379127314444500037797487956813462057896531586233814370427740712188566098911772477778967151185618003046974884009266952376500844431644462463463635306808576155651808942823944050486591952384971713379494995440490480012213983626999842161650976974665619537432909513391750621349708459832781641793436390301167498030184519910863164442325116498393337153699156426267795748475469896800365722055860046861279083629151249989066640144026211648842111237476848007280625473030052457225360172406400190536758576828057906693956592163584570376522679213212228286100484649476041658351984378261313348504869895793753555933543074541476254531197513289984620132976046711201514481153653579304423241539070222295887129018176487906602430814456243775203464091305041520310635613301669542230993255523536944635210127525353249076858542334107483990495133446262956896961248282871941022676507162837757829943256799930990574442319838953217026259898321428074227542079075302483366184252586386611999055638058864704465337410738826479245109170349565900775518248341514128457376479715592385471886052354997826357513917696735762479518022091457625124869742190926795618273822862868388081733622197489285212499802819874411696385201842383873931059775833758873419331324309572652031247470489613429361900427863150804899912691839648969875054142145282577548607910491232622909159002339693616092512933952488347474400810892166909176679364185204209590226849874284094273707292055439296365282240698470402276166639344326739867944917877011820794533489877404304343023810186617946922386480094514026671044689784756440368538706858894700061818573211972360370290711346557793547978650721406822842018158564416496209870196788682138079815402360415360834171841669945750559488991177653663027226505993510419002525605585593444232142424613558431979996860088868224816886906383110765097622958907402956172774395908762621463082951499691547887321818769306086767627173159415380754242267565192799952312063030539187477387017501967239702422708411051751488583883170481349862664564487970831244099576373438945200821895044686640964642979705020425790048998613797057237078096746368804102304510099231702071293681453139099766104806730460545563776981265733161474741637224730198876218109626500198638338600443044008481697481249682785761078256065483774356627702526198638116126807447426309987732192989468744725195999373787928422115115086129259801664012626044836196605123387557398717370503182923699808540092926155332449368503711933300420547898174076462266865626653561560251571653730388515350285800016966594653973968015703247461646455075188181159447721662249155260342420684039467849809652865010563388741501694292967161213145831901592844172289968047669788795146284215361081104909302183129719272628601582197056448493604975556882693528278798504160600094870789401181210979478642971897076136822016265582887135353171454788265124115439257528982022009101239301118928602216898031159833087751629302965676705572576037437979738176304690530064098612745757653587441448368321473451216689695159676943760411587314931517458750336384190677846927900181320631995727596892199456357862155143851840918827630141094203670572223274822524111997230461540961118027542579954408225706256754787397171231599468934801237174314327174577233879276474933292417637451074029062325787696589575276848484359847262581770007304780452115814450244534859771000364699117560823376129374701724821467223922403231853392839522858357890233914519328586335958449250474736327563880332897995627902374914642885104533239687621343245939379323089491028858172661814180230161142392988992037836255376018123586091056430653025046242057900399786492245380493698477952044404751637633280116310379782747180800407218679587900535899457622619945192806938890975774362286785600796997732475973153082010569646664624695724150020486691733867924496957603984992480838506734782110029518089332487886206430094768625636246171808800416150821534332653114446897071753874341888179258522800250541323700848683403061186709689432166938459231604544576413485375719184795766578619154526756129209828658872915655586065180604249270043036029811175411814677608346475587373209950918693519747746355434929102051196696000541126910334861590288107014345065704098035092193102630380670891353913992970264994642869553807187617383651132650201295441625217341393580115083613850035073362713702850043499614877378460747143770567665813990232766653072488495688972250288197494279374021760054788701156062009858095834357919105431575624764116980994882148634404652431133840582854014434322739265537793914076916914595201510559359564013034064518316843903369604815006640732084375246646478911171992808934695323811055611126019953652761461112766769988233139142681296737232717498599075416729317263252363138750929758727151065644018739717087200830419703216851465835781042743857525580546980195767786603529577684013054058670730295208057353661325292842043975039042304619004841166402267261183348469161982289605507601971721541237697769052859771694563481401456514270916479601235473161703911908319418282696761904471468156852814012550193940548925783802274940613886964259064801058244260619041610360878683456700217315359406163659891372163812270300923259375779606456898074321003453117987446631724875233625595470775685479866591017146210198187771354960365519687367613573553809040308916994316347102472010850474134569807701399338230943192969921094597735710115665124210514675219193169496700717032768712547119352223958672298135950835566242562080418958871327901534355201912522568324054606493621240838111097515553098819143816914307688817788225300572824708936253049253008018418438185008697322663748083944596353543841707707677295160746794372950839071665221630414339711699220675882741162217895552458342691306336632461199133301381976231532607731528286368326226331281312711082958800362293561065980199601188132285309832078692565991464347240659646629048908248102293663445992007820815523633014005670160590536276975673366169296074063875461265611155466640491370199651532392619986629647732107106652477388009125799946290176379336931198242459186496109157811563459102951918086744504939320609950673300398630600721007875501363471904100573539692162601992593346324956363747810762270741917659784143823268806902448970811896883897679480110734873143546278408126211604472178760215192758143818970788513847450737757506892814710700268894758070767640225775721882024804970705451928956805377755051597532456116338086782907052831379673858613070826800510077194206390910329887777449643580464890948391197701664027724457382628945113783886906131339687849867291259580971825060729761538629698096642440374964295269263460197083023069059580625174096085762227977453895173931307628675715246713947154571389034676215169419778742106368172363943776210977924396778096510428228605904394140027026027875880718237691368408770504037810719742602070239973079152506343858115927855100025268652607673907961146830918783905812225544619536588650024705253211283544250188357924375222772038934453295352377267597715310976123851567927795235349395744437442238917721410322722539963384651863054219555184440249245848057285716841320687309124317541685466411371850706161707454338553611720761544698414766481515604527313888031333957490918269176694418902663959545746630735809917484933705462680514556758837664982049352555645392808480397503187088100350464546159641005149319504161782784240290166349543714358454267881658151658411297041557901309340994420478434988517907960573177690141793655298141701009359874242041796681439483908022729871617612519969995215230334304770774532728598839983891759879837757061324268960231710045011701059537703519442897163190273324197655459291965261521909490543141279527696811667823215170105321587005683079948865447661506376931337797239121318138482035782169829433397664703952025034916929398807841806608619519622037857238458429503344322271981426990173931584051074762568338934121152331026669195481509797871485840322833934109992598095747217186298197654881909149247635519966621852029145994289688034250182264226514064833979694573399111852589381201585541776496845068049798179593840087398177450322919026026903522465528471423349795747797994700434988753170782334407208829351122184609563123913506476634309124244413522285179996872040364125354816454467529069215338848787942344170739773441111080998059111510461610659156776320298003178754289875914872549407679913446274070030913875925065231282759048682565022175261350981186931542479740051868419725504533112351315806967558587103743087884194727520947289582943819488723104897233180386123806616254316841058582243391528146250535532134368942592828695728988875858949643595297242963930136479877074882186578694774606482692344732682208626098621427932337975585595448454482677696705060417555901420792513972350370166966583152954420019104278729644233173419635706426725966398884108470061474488769890980392713928945206495021682827048772228793017277970022740004662012485669769898374164915128435484687742946655804397049533198943777703365744624012703080524348836803865778864646450487686699079336553653691382976557196379599155674587225019839651638045311926196624678664100170348060804623334780935845314620710548836008996148513193323364367255858407957586788364563487460339194973463041718732549299041649677037834176606556326149007082193755645053197255106115808354011680195374399531070129868492466729908947365623198671962548010609924478003378863365867200905062825576558344830817309154223055142016143721883570080469504476225018774897782303125871243725880798450684961184468813951635468961989914513980268968743651910364828380006278397694249065758282687543830940012362710298239781059540053302010821778701409006052252012159096186255619136067973759555661369895329753021671846381871609586167537381424642207067158813132646755281361437824202765051525115326411422500108674548534034758913605068906441050723703758966084988555519644731124558392663687393988555283370986968971871174320348481518952601207495497963083871513318693224123122539875788283297971254337137786531188409112321195708009629104384057045836320149285816747567021900515618679507567475098890513429725299231485661550960954471784701388681237399458732618052759053471918733222583499731352232576468057808916945184626144612109757929561479567138124486233790527188777787929219096042138190853419973142679311829447783796956122335708634993657193128383268904181755005600793432306545619987385825954993502150297989936548710960828326418750986886136821077602124479649682210198778682816963013671514190501358109630637117775138626382430969482023229102258677936347278555793062181224323624568641409539559347811408534058029931677274580703931672703178783379549177282687856494968305775410749067559600213672358716959445939957169882595430177097469464349558385929415625812392029730572554257948718553113761362854057874031493525821862897150647693733216848367914064220237068522908224522156059053558573586996046290498456433709704538347464114211944274193080508255653345771299951295441310789538473546110112958786971493955160748078352952212228561795263339341625803736196535967268750377224997800786462971096665767259980212057913350131201936406440565489452516875724707412658167515042665533439450778269950923549688318747170028707012552527813821396608910410128636987169899884354787840092833428363467977757059015072645608335840635076711304460529601310288836273994955005329387547038722336663711795837263588579002224562347950573983233193046227717159698057970263603129663853531424073329237656138176448577977056136142972122882724963965203653737582086134256095631598683534751455125708574135333069522201033966897734736603124178183892640937556509284117357938477833626756183050047382800787294595371225994937432057782123168430123180208562203945832856935269127498878440265469038800297310517380151402688239407062038014687868391785312859266853098949903878055645520340180570604172186208357877463843833431319634671250840466867955989412393102192164329098355220403101601091522383391083593197942810653192477182063703274712185297280164931991754766676462905481739496333471351826657106099527985352216712666151696940904641116251601690583911101426966207446719287238160942845058859605124261290747527307910231903190899358355303522900258344401945799236821402177298626923597572241568060675161493999176736486394023780575818120813206217310599634503948870357098847542689999003559362074118679182344621806371746701443620909174196182236649537436492335685089338563904530609462519066940780488668567355797355579927047335418685518620851727651075542028729737632709496667131270968945613175802615402646289693910833448161823538460587068593197103657093217879211842605554160724814523223393214825643974439184186711750912326889680688733696701430803005248499538421679993031931504041552774726548346600700976061857274429184875166567157040095025452850085410482069952747020947159422814023896671260445602054508448467758215898785903054977974876213318370586897353815263980045062083830881883199646813461885984165672464326104806747948882742408467208470744452172610279592994669557373985594278611025124296916623803571284004391182067228068269786665089096096098163202865352358584690431952966865824422380354407140322522768002996698820576579076142574877503491936869386860756035317517031957032101921528795922520495050269623557211706444182836137021366834319599107325166169429662358387593745356164392431567478462669763460898865008099666532367364669081323569087009322755454740120320679313126724931580580280139503073076224891872697745318061020310859539686046985072148339485251201576000414532034840363371555624699129967068148048386207807696880424885231110481043583273457133612194566658688668819169490184719435511165364715220027726170523977799656749063245157489749174078470838753525200453267409555822610580415513819965726718538633800666679929829993017747876842875161434256067031395761052505514846640648004806973107218047807486992385485656381786502154310802712483549947807280240284248013972600746122738496148057656507572620367171350374293741517464923280356127326424174626179851479974725198333719397931385545768138260463075243943707455681194487381676530474070064660267078528429275769768718353478075168140878019963111216582817604616436300075395017097294136129759469527776983718359165698138602255456030426682583078881818873876286952510885864467650624747765330887204568919416814240847727445774206216837598141155379245332058963148762307118057301845419060443061042558541466536682094146861355762280678463042387456360455845673059679811180718973238406247219998114472710558581076677372080543897443457098367331160261329336477705331719082831834410722621924914563865890571656399608089131112625699517169956025416150184831590244798332568348711922395202054336192047464047141527529220771503580732598216535911144805311522597875493143653136059761098573145992641376200179044732558360567400982816173067993520021209563919736463584630584255966340307198071254515694945726400914289223182428893386726186794352070800364751226588195893058279956795354456888695401514760180272338959565127969834113728905120261688300450014164100137320671562160136398997743292060844581072143593874917688105934036595700158157731333354100318892761979752718791803331706136801013636821749780148579094905966817802059359662764677706084506334619575174969059473133378576572655742065728188162166424751872510555156739136086684792779071537985174863302188245690784870860003892636639333433943629949434753278492046005472173193038448888894083683057842980938383921679101498654595058497494572194113307610368046456706386245922863851891837954931890567535648298720699483583376391805205486703170237521956464354297351797183724482245803907065239805896959574838000339178414766060412667162489014868601526468958859502569645889905015024261276727636056602885684926559957398471800945903840894955095293640158530174913946408590804314732838859341850908695337790105586005024019907778973956426883741845213243382761963516520859422491490489765542799613391714243130829039165528064208414025333710674457620350922739837906965044499720928622894203532025911917963689937995739499331931756650531812891730861426871721221483908766091174613999083809163055094094716448925976659648582656735759157202231325398915411918039006099137028784432579687813382497508869731898408878729263907463776182467650183093451642721367690488008368550430340689060157523637341327030684813068165057406808170467233361379131166844218777720266425640246890323846486376576879951559418467850954126222877142495097910110480193291479275815786878902173365441987622983327064216946968120421688132826873399068995314243099887715695479952236248325050637285562993905703160610618009782969788284647938119297826663279493071718686861651266555925440965841568716420986152049261689442454717369118398593885026671869226187308176057988890539149912016547962236484275931057987897636302679955740016153974533789604575651869866548757725529237371571571368569710202460983860415194208515250392500546769857278166957927844861538957539494498327864680470360748956606570413366663454586570342542518447233039345769422616079073714920476713077538379234599547194694521057579106968490741480084349056566959013477193945251607734190120243717638817153265855662335042883410814743900903009647383126335663978187015170650323671684489039867783504053947029215991676089480848163430735784789975251655126866586351321280615860585298017728429698648728388677368126936263649387455813592237630205934951328125604451072238006220547872616310356430682165932025921739258858895267313911639322883312068531691143551490574773013990012907385400546286131463056219710897298651281515861044948923293931772091941864865034025612392344772763399266771376091622601468272145061108648133272906384412086731498612195952533211119825816624461201507885979950704987375664906375117065923230927452598201659642224855512646272553796437853777808275749520116088225918995892825982238202718915184400173569418792229811941211219909621171177337695313720826539914583172971284404358120589757710992071272429927524249796414305747515118039180840955775884998022335620594482607138641090751958734789341171712113072444942241110515954428429914275209921243595404227886153152988754610507626620581045462744742307372556941224380638074314939851623941267497146015605980067618193552774716907382811108528610412917883286524509489926312009527581880394726602897741444589909724607933447511540583870612473137866676377923866487389979767528290878251618814946578136678017506744543882295663536147950751124268191607805837883610304847593981513172210686939044635273547540906753059429637061656296710934964798378704573731985369582689662301876387420004350634105539031926615786076240983086385296322414858439102248610318202285952824352835462113031807013378785451255365946616041163106279195089502417018886764160651965679393356878727407398736628172210560060060806601252419730219611252550488357900725673519330940942638810137155462486494176389539095110690736492010178734643840319173575635236198146394159481894526562629512270775832108392158345694636019929178351995911541652512158263116542511701520991767077427052903786440690144102308608165362088470841542816629538825843065983995141057295237100308246891753647593666531793027059130246874631562578006167264808365718118594595317760490610739597680816649659799699005992298747284333580115116530889400609700583972023641001202395082618604874146086785883546677385555087745577120993478264723963735343040184141272445613251325861656122822883790848223983502912660362353948586277740233233665683731770128871482629506184933806777406399849570894987761729184848601855013643588428287421335172549957290558999382027146212486487933063518309597077204802000367396444557711242696286322556581640627931763517413913110358410485817101314400846248151731202695977554844339990736562203175327954493704288224453543220702694327010659303882922626580051758708062587336975812636986354913081347180765263423487483992399682688415408583328358240200892154144862470777907996613800285932193010815161390685415642248288045410184733041625357931774074170754465704668810588968456402989483738420265293801826493629995206684935065097796191630317786709732030840916246071271795627240760634690893801160166241722312858129795374710271134856693511003989045725881297372151768060542007656554138233715276299135315664924924056665212372066217315686680078691732383012578776579360182327229451486956585500959832986019692265549134990410951830056373333279892664883006996746205723860271042810333875942769844126567938587901103283196266338402745895047625131139829396780326598318503946032491120788358314833999809564010273270001204297459542953142379377427664793701238517573012196655844460479884841536356682194762606025417743299950575395235547527505743854004032005854237087538453128844342033669571925605430169506390276176878675495625823791255066424443545242802585832501044840422659929675232841877744051589833239588961819874702431216167953184174812580268632060593276170613265677584297091727622805348711221417284936700266927418497544345074628706136585716292165747487529839686359269287923490667139613358433915176983323120468968565082173531661783951817667818510689022003626767452141769963722535467493844547415213800206204502135923159363539443444025384869426547473036864781318460872633519398345593520208041200494869385932701220332284465548810057525299948052845254963754112955341457123196486078960459367025329473903976554882121059773906339963953997093921834864105927136781294817991469551861271455761357836239536168140707780702906011275759474111103101752095783444333697868717770759258462803242670449556603782009566505448936831579177735594120742667644344888200382679919594108606245130252955376019442228820562626322268989815017639325908925903225266360023884627558355359177805286850084154016036953817766481211428232611167375142305589536001498488648116175902841316280082257118394503076615654502905396427369566438697172339490793628593094627786717672724070632744682838477189563432307030363613217782175862393497343274415676646193785666574005362497936375809296837996549684909396101237315781069428524551876094626405642611546910141168319904616740584502170615513072441028334402154202064563416317588522021684036355789268764391129679171776932763202701299618896331853345083378287972522768777087994781475884691227621718112134525356922320543906652337943406841853602207283164357485399999881106941740870088604949704406806288365466838464039976093044856091112849042768924127921117545210695237404183225070253005891997100925423927148483891019883281449623415855016678194937092838714829625135994525929630916779283057573886755729258672808665906352829982990994565091302357710725049145247163538981056106850685844819749314951036965049800377261909377147833344368507819449795282155087553948675937160107484263615517932758831611807656181778695815852434369109916922754315218022294007301485232538985842515378837351516870943446326164819937190217675470534003251258905130475523998891595409273888706586003838937430625726048423563263492491360392304715187160516275505366681533966107768043144854796247934017905810322745576091485918355032507742485273154693976888082570798345147639871552404018462893992464906040819812997230353966701346568473977972500376156265648629787968263541798197507563382677363377711968294001272178750738459020748412918638538252546018180654525416971669788999616070195234935122201635135572287981816598231812074704540286691893687924760547124998992979192781691813039427182062669885456568793873273831597776065168170839338231268108487307266540578822278911461496585098658031527994949442983906067330179128335359190191729323886446752895297667287844923451841904192018906236404141382386631910984909261794747231831402685508483517908055458335927177368086248610174889426245104468545451530633926097120701328595606293196697797890711920036319616346620872020028172173048895543640235910738356363773106003857776996120772703357885960852624904235394892854420550484961004466678235158068369902840416182797550195252658529358061765927557610378189238383613694666718363561127641653041354878236576389717547927164141219717754024278092375394010833174955407912818057990759280955622879077199084408083152672012951581942677048327947230872918820238590861072043844537177141902265600253478983523773828901281221846275292961505116096648757380958763307329458470825065215759990408857218125950447389969878806418666549795946987536009332834625585690052045035154936827175328112762156911221992473337566223131809520351427468965376076087829141148131142673163482014646344435592606770929454605438120522269559437627709528483325112366684663718086171605195122574283869222981422663940870069504445121604408632594250046170772402947027259806536915929030276554273039307835802090942620156268068649067643740934671891409167157444457958583497627330008806624664397237219432309248686755967790197194322514112525126601832190060871465096697137289470687880626758444370424194986029135087527774787105277345935775663260042760258042373936428728189906207997196550702664804417414485333105104264892228472727818533766740618481503208341153325397636295402339565296889464675425824679991776973827483724376613105826477027485916248388816474021522509613647393514494123487496548228772689804359566940678921810408100875852747705822291237786511551158735730677434080415538545341376760558751351726986291175722051596071920408873921537533695597800672682371188272948382113955512420915701764778666966884078271827427466387690025892522794131485300776361785460866040975888229308560587878421253269053234968791713984803926911017585752491308253126968589878447798593484761182750012927624965405945723778112583992929983471859289357865725173786968718647201582800834495345448201308505935635843210215047286581538682905680871909355188006450562121083092851302008418544348189437967478123306211226937167862622146594132756908950767018350787524482946149389280870105183546359983396760412607982566964013217943512666367972893322755825767034628325859355748290722289217053108843222725914568656729046025675357884877560945520217607036521640824094011903163099656694361146334337401943074649245749931306957263533134054189523649978330113017510395371739961047690295374545711419030412568449585973997912542529628085652079995058699876084924236235817825553653769288114824201032284344427613042536367708620520237195142276634526141982832997384851280968434172641959407218752334060470619657696380484724340247442124453783181537548466389540614227960899715891933276512020880301812065128504059041241114067386705815571788274385980512401892518065537453910339625029946091235115028936942312270285935983161096870864273960282542008661208377583839959549501558126512733443221395897581380655169480056656728693951952196389178561935996641599204874373970985882689769695588782514798433447201502310687129892221822769125053142734925434776829875386189648600073892837232108308066567882582767009601181086426422527685826150925715131645734881123701972848234091814505201573546642378814735413951139331309299577498736547812582543088175247584472463404173096875569929880769860891083514365073673933218149397111133447921574082532188497797597638287006170461148603565357557904965749196608966943512869181760455033935881395032857014990571738074184909208875399232239869697182213991625084401988089914860549336453893728500313096460341490824861306947711916888565603116896918578653485162777774006493816863544130684636084343016831559274459613093870760008258599604926500650572208052509549069945828216686520361149493607503602742537260870198739777362986833261025343216968773949386887692942351715103574328064366564124721607329842406486840994375862863573067272423558427208834240006422766832194380131977227122009792694358199063831341608923126278839230313964146499619304809460654422817104399073816618899104173423899178647988247667527775200882245850205684228340985818251256226775403276470003734931151751152489602129749952314012402889915542812755058131629167908403249255383090157990982191231709742119865848544740147812875546798317239959605279183017999102633695731442760720703523087273478063527695950313409110837166555551467545025235034193223246579835213709146167432332172356831498533520484855076843720831902901656337873683037024538835792658831634746540219059632176490070123676517236281876581200168850306087434528904883903795685868442963421431353704871803902454343521476786907508742933160582948950200787850493631689681913450863930451850523362410793956781461874644956678012790918526050793733272624955387877398242024592452756304495550759885449544309810577474545664462501831791155361158171810650025657365203896688812210883468191623121949644228226043337474693601507910270677065995409671170551882510291913187621704629919571458723565305297627472051944798190320912710798814603651659014087727467733706143007669713581701138712822874880996804617223204322953375172181927091038681884325053289844345246913962772857256627608534270163982970738383091030157059305426810720246003018581831152652435368378021015655784973752171701458288250255396631310060773677700684518205508790869639614618648120039236800746899873783346451727400298630735752087759160451970687399097162170970389279703114864713494228106231984142762817398595787221534108920753573570371660596059388481380193522094132425674448147858381694661291633347356266743948807290650577080934278737949251520114287339785044502518383501925522602306080516058043265035392467099185890988464820113151060916812884792923453323162253182641436188476315627319787512449603386996581043866380557838218195746852203894945264471430551458143693675259118319531406217196204904215160170401895374375790807480534462395225393302054881860404024564535443982278825632664902724306473536984048752794322485613626978669616064038865997795278165615608910968702409191140036809087408441854674712042489562376507201505690830988837424807531221116679154478820800278110670311720266099980436964848447582708321362291137446777377786509577764918441827138969515699535341360626428877898883339426111157666345319068174427322899586509089635799376363473436523834225558209009697531278088293101174270917909609205007117000733673844203636205676813697008017075769806982052589999876595306103511585622376484267200586485664984840839665954495733817187082171429950850873954995801151487602555865085710463173241933190358835010297499186399053110804078232031529870036780227901424087752385474048918725089464506808805809220852205494580314345486357015894839771589866266249028409649908574058234422032931781302269485784920371965171070464805732749383530679016841432170695897411695740381180635167143828639446196126117502193985165480695853211359832787000452026946277607324343529859483193127580645150007898134432824606958436362229754933573724425295000042501801308599639985094208103429517941579850701352430340370136544796367201446194993644510260627960275964222223782945730992499235668539834979330889677613395597931187421051749889947558917807033718069707253041274344939362454600148751709739190960909832367236862865764163422559313001714180529559368749433010007638885210809778604702624215411816248081387855910042109979689290023568753834220865792971481817257802256700950698695310973467128262150494436752331120386585902340708386491112561568553941337363876905034730995790184516636400800268013807949054751131697341862334287580663882620189283295530406349910415073080216067557458502458571932504767840358994921376018956160937747978259479389936656289193344706843154984295225148910305637736577113118939840367333614750830005607284006413295399424992234171686810316415140974118260078950824889649959737125150485730346484157907014765860257780489688468902264482554427526403216413532441532727643318741296861754372998540173232801883829268095054698867815819182519719562307674531618239981584713136873438220409169263425190258904332854882590738277766835148002684218384731812917399580900911551307880430487254685007606555307828667483414025126989833915366125602512371516936254982545351073488074309130898638900103146844480884458921310034857533175966520593937157013454005228281337175545423557359184067182234013506674679750901582754030376471126230549484388794200024157163173718021159503448834132717147516604902939102981849218217602178882590625580698079448537946713205634814446218803436297342431791837646128114574342998872887742121750511855960470492356294078758860013269191291257640818663105227371563165557967497969312193522098126937841857797132264211669042313770470118887358870112716550404570938814021084096717736440023334731363441765934334886202174377342538713936316255153064128144450048606080702228659516069523302985628542608077615428357272684003480875289113821329714976226771396065767587668001427788802310844123856753093380578185229915882038211390760353862437118656517314072200841822660813881137112197733830186376088874932005743777147635036280044666682247136969536161576652422084601974001960800637040746828897481994127792902270747803978441103832343903922072217524381422621286306823136671426955139505897423586160759146119285390029522329579540180933945205266525458626064563363195069742091189944323308081194984193751222831065671687891711030888242765295174176684090415852143527226178260617946351256865761486228370380396847029335139400908748631448383492276311567379837690784046345419437659688017165746022786760850195062100807046459342374315720481091876394539347652463094717937249606384842363221051305568229766937710402535295456447251543115960724283401498873261821326431142530030670576761302818757844250914909164877587443052692171739329861353753451043406050215635215017108393819442818706176592343860791368693169111457854044116568892045177617431932452227231472568853299720264074353501043402256003574795505306322532465203224555273879542484458772939604121303187311838777346372245216383561695305777586541192537783284857958803791227291252481436083017481508100448138405969005730535454902053526789104937927923056286551872577192321098958047806845356896532082730536444878831613711272451938022877088396785781472234279864150815742950904733235504085500634776705752965377370891941911161411651610744320656816955172853661339024716843778776977849475535671733416860064782683682533772495419332531714556304575304655404625443425528385813675613039765268099359019069069455252123619574131534270840381712700122148187364173316686069799678695906967160027547670282852753023010504647333889394967554566357327451519129741059063616855036983327013152183445807902175770916864727907496892427234395820118393886525583272820777056722762262070904620996634329903085741745569741667282434302172592368070086040346371777532238955499177012642724369425139583865510032985698922525645722392515163549665403951457712881084343219942674196726077699780751288366232751479851433343877779982733407617298729612705915263854248669523443776896484342937223467520504239549958555380410919900371893696639636413446340236429227291258852240836463827139114031652303604455056810740232432771739100694909598462371007538495289069755267144847742120083479150053655512412288657773593284756621226242667086660208067839937667607459021593829040993520825900379248433560896022253481615696568587076552094495833218843479671253838621808920210768857990985258850813880860486378111755132813288389689593749492392117010220875483522487916779184733374724176436933176013668555373421641357676695834806416899381666281200496435979170028044754114114494346130953868402516018990386561584017584939814679633171564384000381890372397072648992705242132195901859820237125596681275764996748222984216812666497641991818072940811188685739798722769062570733728270719314460174853789715179382257297357769492008011014520270930101038072542799360529284695273225626366562576340911072724637118123205923412976354082042316599096150255661185565922131658453737882684248489888920238843032857625985277672414252861324406392376830677969538511588040354270701244270737308313492027913456587507187341947987114515097782608164215187700533088623123434074911002052020354229128050256094845192750847796851194107516890980350571379400668975358691452312663330931501101051213200780429380017849309289006691475881388147654714849282610375330530257920208279872602239877873185369084152270540534134928651684604807157288565228748774503871375077884930825142806237172766501529587707253715763222187157056380427436830027728038902989632858777570253602318146496439311370148848959096799908086217030395502591178022891149921316522707993118167392472332721087274680303214306642757467154730388088227275268186690971378569076980967064851314790055138344687689281718971681659041361856034898286161290157743075507638690347833742201222714109674244562021119570839708569771733268475680903032116256333625320945354657552129274075894118783451805536022987800432506185885096027106384141870686117086098065652753346224610895581952111923229786922651894079297640510398258666811341702776014931337364024725507207548717217158721793640734756286977304391229473126344660774404322548517594382572492172762258544458926431475197493662034905329250163019953345425359981855694469589028711749736590059005905683559322838170999505609427223364374002711231013905452527352096053938274731578496193324577714499130314236368371733371664791337764552850017157019894225102356795320266482895192403434919792533574951200717932302125290204550029229479637000548541881088932748561003305505357877391443643225144528120856883954746901910273680935208162412988806939878183922259979455658989711629857545026255447525462858551980382723779957738505938956791654902898754937450896393919490146190241916469979659684608325361382209662265931223915595779018635646175168851039069225015786999608276206845445666106880976271270933660691347566394830181253088729122778015090511244994614897802685235666385820038375473535420405312609622186899212799782589472877094372550997961077763610790211819340992468905847464200991786992463816536447978044800082752646695075617525642700492615475858407362814113525148563399825135130551292648570070818478612141751732854694443781192405108263804345459588370060835447787650238030307867032580611623082979836959506072705104125615325711704781354394540017803595671231434637135051932574394572869872982439881612714417483254501984286744240989490589908407255707469614499060830631676048476257409260943319913056694126699233250385835442512801493559454615262004815830312950142334646364775611870017892334631502463099418819439956593839092030419939286032162898903758956719459446660284770859275991373734179406701065292911286770031905439239902915424868747853133076688001408646766452247209838069553517566426747871283389140888393558591381013997527468228305590213532990353425314587317889346037166117917774506618852827515099137375427753804328651243576235476626691221969964835087957445671834461329031184059470853375154514774204705853165227879164068731847504547089474285572648103345697186200305299286814351528228107452694277175908470352958509907719571109603086359299893437185854742741065108143725940047260135414946544240247905747820123529154565592513204059909480280399276138446281791055678973330682226122799444264479692917126168084508184448134256652357997498291333186713556984472583382402039883128883693575202484886778994915267921205664993871901484914584487780997591706821627749665569557948903093289079703357359511427831442486584398152564951090014296203436352069411727866255447071459703462980954465749944876648659363483859908729884238942973213167469731238841991846517487234256570371910687112424213040828097954593533075418732560652414973638540694304727610077191694116002100611713588450875141330610989139200016198886254930105359652606147287334340666312723932348855258033812138206989485925945185942863094336335598962201805368374502957185983723229083963505960709369597924593248740265160866225006782826720307937597664268575949082248198932443453105081832789400343595762050002399054265487439735876147599996773216751315113436337025891005743512459959689384740161557615057797667300074430856933664970129355615066088671248952276099001526622786283412902388341010913333630077920119893114015415052492447726226141042152686141294818909208516556067784926314968517834582982794340166968832244973962349530908796466941218152222393450033410274465521174014014765708115965664155349347010340567457901144222954782310858293023547904562135764354171168646009463190646680970633131886380438135330094226573232734605585718484016471256260003575869660735416222864090503793665124876790210674078079990248427882999248559860527896018262948199583932909767867516997625093449538194917997922643414235916376623866975538416502290780920184660449281044109712891612244659231911068096242632801665137377849786485321414443936671582484098326641953872397120012024513508642435944986418289130035599603722583902182573541098550064111036227468810420529209946193876520948366582817294753148529933628711857301279789750402919214756064670285170450534951193847179828371411333866092050947864129239582075616652824934084743754516105864958437869111215180691487879092954518625645639408242116176602785997470230363935083996183198028764941572313037758937412352406059469447592830822743313185571644731221914972939417765523292416454351222400938450384399989707510995419504838776573983301014449496996823698802843043098768500526591985814876037697444578483134942864785679284888051437576937145791664171370907603597136666540636951812154788685794672168788171096731116284008117707338778247132821035016898534738533296809234659377963682504696998755003681450459825907839692624954899994047310625349550226590665783048003414763285528175766058126226310632873802928931826002485972718040328312244396669850786450299017985221603494878091540963794154522303904971268945171360965533543273762765849727843934867271817046537196095687066918258448418145322238476626798127800532435904720621454950872356966245765625612241911463392712063781945074095233543902632277264321243532658710377304700284936665197686198724393579042375472685745181870171253320820904433967648993627467218895934630552248721527426245685435496897791385684881419574506282027064205264576932118386361883390525620649882906965076023803890052840616697859206129142488162734221121538296769705469876240372649064127002193871130282583647301169686681415333439076205399300147084738830953620465632287977710411784269665880702765601166891701755345892330424867801638743410634734767559493991716895512437570294517317438270826399000977097240917575787981718191333161288189994837467261774341039855170720546986880335672438725859422247146749982696733571603277936133332756692302874230341705491102910693937933605071307972370849117716239851788729769552076512622964607712513101093491498891771316709623990814195417447272638923432081041189618513925315493505894469050517844858960929034356176762877761324046169671270498239158504197180764685399170775507661090923009207248024626591276984068888204781059281469656553144252606063014414679073113133576729803113439955748006148483710806290336225734181156752209700174884560089357982300763155987295625959423288023773869765439622136172097950518926428615908199598688547515242854800143833950037904222601876376423695309816233540288092583020690100358801170687451828938529635739746886344112363071177638948063838604514400736384104010314089818353996701015024309127875247477155696726607290735259914818981576637653039964298857610981600734841411620698626614068078618986544513787944377147737893667549629135926220181041419297205391603479000368175443122165261403608877370639245096235264104913037605200367353177647290366874889445653940909259491694711099323087630263323740662227431109404125483840887574179828360521752475357190243034427372817012076363174622275881157291650432694882443996896801186196824014456447655222733815058623343120796898085618977253613312759394217267891182823431088492262668731910997911468864011615823683898401139584917986541142568294823672546660210471116883573873395166208397047043644338522323580054854153086194930931233693962440393286736379724012576195541882158275588708999090177888328726694396294280415387750243611254124325555460981303092606424319056921026772426248448237357403777402745050326381783808524758424579002498061076123288189825657917658423275662804100922892301486336353162093025199845305266519075210674292887615419991580864850577058367258931784969585922320595572712750217497151192334141376989474220898060901468473534875582626720719404228205745013376425959046878648052727929046920708557144015473534073363782536949134861801956103896726291029178453734958692233732043209574058159084590539214574225268863776018987238267443836170329810593507562365907849305599955822067822407670553019996858358960859243846506339364516857815338945742324377247931000736533889023071985464059728249948701523716723721203588072590935782071047887851858321657554154578861258252410585268738531963268026644614085104405222188596101104508561391263316936373016458740908016409989099998279637112403998836917451243997817675764411508180616124090308785314438072924867852571800027101978896284195397598363814770738158592855475625353479357726379236420341654539468278425011442880578214643234302130222920654980625292932045280192142906965366484618942945648065749730581830118930022579681795931023808264448265096633576501149330810119535836339161508454133336569601445718653152003434121564764293287643070172563440258730416771192519893607435201930769935684423567805879452268732022765821789433494401991620747502762387693469249030700256208503543903199136515563339485385003852597061385427923966026531797321119466829111782208821998812780973665112410904849427594599119100579388662092639853225500674021554091380000944689717662331610067357240369743516547189695174514849632557481577413037382103286312936748932133553724207669840178907304671546047453041710711384457468352631923714206243228120370837845643506343672654027252959360586697734389090050787602492294278235019836021667406077199213678816652299779402251445017373422133096320050201995786746626464295156482191670105334526699999553979291192328687168368956207914715338174515481262570213020708554758153188960489608603772113940042753409114885520425503320136381493074242884334910382185547172882029837512694851238930574688373317528382066284127986078734525300620493007038103387108982063868323651167683809464115187047100172528014068476611048319467383543140359909401075846573726744565613396684064723531652082110524572342791673810971339514558287810062771220405676376528007452163307996178362547146898706242683636837926430695804501250985155963875855291536081919831488705039003464149374742335631456176094959499905363548328263270683167368907253825381650234278844218234641848726604402550217938067019785656993623139645657336641060207653814275460691554407122380379155642786878087660896846690353076597239324425444645992336548119594348673436102080872238533017312742422825476916532983292814600045976837794804718085846793037622443084842030458859806097863178851070295910145765347993138885583357127368992357449662032303553128998799108150055870619925730106686570286768147715902986014404835800501260342801832347160278920357509253172490768593115637872919852191719495953370709407847707306126459801605185509827306292603994613960930093693717760009076790025196730787563835866076979207739737218346908747638690123686523194469587291112045381017562426182652602661311443162473691564747978263410799474993322080779250170440078158619228835665982189292611916878997627070301779439350522520933150982631289794416957632985005301117197689310410662969968512861826190511991306216460906538142927729426711515118810004824845073796610824572500023522539752234707215574855151625811123876256064866060571612733351874506399879341045309619213620192419041865020087095964918671829681094781916236404605470785596870918595146810824163213735096016996512560155877290534975318358047813759315067553629114553973591274932196644418299663770862227025512602177598200970839429630050540498179907375358701487342666257925388544747242938636918319449079082983644574929990950213976505633652724335798356899840158048168867133179316929564013770553086354091876351944592860634341258215600069602278382011667407797762718815866413289271798851686021211338405064674912936687761730426320094500527578344967702767821304902395572288085731970256192506277404549084995718026360013854448825336711883861865716730444575123579797997571476017323780033821202017816167592614243562708659818685949519538510361678130682516512662993780582744867263332759539205712851966553872825810490897916902792952396897730887342135898516800425950725337935992137328515067552980692182234441269039523795758297758117244259821853942603868541866544199714150884743950726847958302558626894242120055225993957632320053241968925594705633345784091978749736785125120719935829427312971799866729456821728290957026302022885206857922735795375419771902064904471809341827119003652690245799904856851824250400651651089342632416029609441643345376203116932611675248243246269155876577586432508367102616829267564194943988555769850233926159621688709518225350737870282006270430468277440327425939837731106249860258722304499833635817251189360386663069844550547369113461795591288053999380114027878043579850326527479456120069615323444926230914921277223424184429567255208587708929031971312183378836262509940505883093333601821528557523602608708428958590625705044325170337158183333519222287713441448657110156116170032624819449098950620990494012670786573402519687110203202690312928647274735998005304671119250080365510925322903643792211229255686677084285648445027122482574399162757539640358779218587207032866960239849403873263150286628385981996653950177697975637294162486213679858903135835906932994659476999098086658759269579673298261370506395918367375993959630953181363122784396277494732127758871868733452955320728779438978126661556707603701670125696220615062416558430626165173754961440125096535939033286227373952196139095274067609270128456050494568541494113477345916742326053667397463044995815217067228707853810125939130948592127447962521646897175414448915035015542721145292806294029579851691835181869144161418291454745652517525693176368045921068778603510245765524916456618714102475688329064206001629978699797883422062255272803063799771152458919732024053833491688533881944732930634683925604903602272782321574974329116938402287667942172062743261135067904329343428185164223175690258663762406746574927958173257983693977233726084768209529865208872495289869074859176309362821441371426670488244783399537193260983819374701957607087806251496658480645628403656749164214049642384419809269495649988755265660130596569867463048548478933847678726613259005404284304673613095898397516851114496186883694293984467561807841159295528361262748632538693944611251077214638499025003313672745292813147523956633348911901816531928141165688886449519608605945599744285127138480860393852194918894694811654864353388445258898367982363238878235770389602616133254853545168811731089470231398124541826056888965156925905739870259608649155608672699508260060540965116887654400634131808375411238774020602399142681458458002449608869266597137697599667338925128067915453653807540433714535862426144092659506045560437323044961852744011592737936074205211554659979041359638942495471775873040159867997153630667219201470272892167460694393940051934082972299893003698014910069782677407513797597247315659284219813062109003499701095682027804870502851207761559738605154022312574428405498406706267554765562546392052425771084553431929055500190634482118824117978241932335356400034036544831838988979640783897819718129738473424616546674490578037504612956803757570033563887164096090597766903155934663813638664492110177982921555107350277946759326871621182752871944482565352174349123146802609846559857997131602089690866832220343672542895582000412241135800003151874843146117690558624655636959940175863689270035302992413602254132550823145056121914804156438071406863669904343780298297743866777276418818105624993025070127775404786198215510605286981886168219850022121015485601203325634569098788549676816048958133962327672506800200407068927907184155742491520118649228585515027456703231798082764328091519396429691365119035387371271116795809655299517721850462897066773923947605729029364146883666090817425160010397750661855787528663486522536316320518977305444760481990337141401070347158810887388512920284137748585398810810002374621951618866651116073529342912207202543964414463918862661347984022582196912008830253633650151220281773786639240859684778564500548843946005811280783283971014009807178976851609718387388614149852993836474209448441508560345587538601720472608010070056878839946021382660249814676967342521902542967200162965362948391711843373480525749879522831834250936673539676350780080553178752313151251978168930572546632514014910729096523106871767568062826434219706575411562533595422911958236165640408291690706201942560961533214875785122648385034245662505205928565247311824379421682416120405417250525684966790232556340076579356985265438854516708836391655412638830075399890263485490548583968324818681355289629604337489351179593968889689482730673889217901152286437149634032363059289107941389113215451020960186449256272638388703254442172807685419695946476161615343309897226980410457852809207546724699324605666143639195758151943536205352823653778655772937494790132146017211502695509049279600844390622665639184289772392263838993118014206815116604212078314565527216010066060699244491681160977946134389032357201175799735519101608291877795884505740038688077690461076257094071179056393742254813442089440335970960104267972934697694451380925011023929272006127681636995930971759416997959925742522703697114061786593190562372930222024809510771500720622400571980687960163857492690024262695313238023158990125337467859112391898774763787200440746257510575967404852716290657323129213946731032255180087356772290253321069513859075940494889054061385429079624980874358108295059151476701741692882311563257263787658162571076643215286177500636906587897082776513448391854972121528586120468491816705441205528600012263403775381092113248088193018310918252925639311092172610130277158383942523424972465218606983004031234774693835607503760741564092554711929791503942556396301732598094161889066056684956655433096566513056951503433672231904024309710727974537146484259242350509843918192859600631860698423297448417018810235188152486754263262967484878279432094658997990337382857208221308050005941664881168756512420120687671615588800939034290739890879109919984629803749815395211822958058472490940639958619540009422227459854372688007428113251787185941294135603065178691694439057721965549418743686584739309504990565605926571133861445527900112380014579459909833724751624252076830306579739549145842449551594802712834209507489282985127358742323389604335539123264891689801030771200458941483835671786037309961827047785906772702703065543461841829060798014311894452310325406312892335319055011037023206442956228129950982183084138223705822194360932622010137947821683953883661452270585254408074615818616415163241859790919104955842989973413089069224898862988432437621343960832135358554199646082427756793980338579652954655009000105108156568084104755353103481509138047837813846948936854666370743273224836514533685956187855499548140505989526408836473111056988552180612197385440024668636519485988736061068951488951015697032856761485339956320456997018792024242263738089257045848862753311859322725289192539050971597649198802499488032489244296134895928438509700869708578966060432652328543608167763434607747001213600208034394714457094182175671236318269132159402032546903039912750699682920382307830400871824940576017745760875288698796427995831737546383186292961501057472644235051892797695301629928997142894809031684548477606456930326099038166574915119769172842178366014072051054553072523100312297090458390407190499684196985897916594614085616653018667397657549975606733760313238258022385008045907580385274189366159118675178077777047194440367053308810115035384680450728863845902327898926221573209419166754778764698103242746384046399469704346802638978301140427516241637616785335253360599412814453048657805267119732689741722954994449447449590642104413470143457988015885011056822961342417168609876844742401360617461870921786856036729130368120274338986189734663356573928631371457711671419783006121658156576446562699483035986671284294902029452697182820533052352596517047745609653992565079181638827996285605426217611175067424381963829741718952674328363821422722553407621168901557908135920150731972372127581489440121342839042776353522925487941738063298998213435672486292227071755220079084065724619012705962862229830308812348931600751075894428031404621427140888590080351343029392018009024605287048963196591987465518327186088437885534821615373523557027471580996505714030806159365053478848946803240459193001188784033102720453794791314517686426934836575262644408529537713322789173298892903531872651964968676624073351578249154239053817839761864084629935924816565054382448330891658501387385691381112336288215052946713843619297905804308561810213367919057364043357190333447662513787978611255558789595504366088144990064726991737370846222270786156457928343681105090435989649181943891881417436285041349598278378054663599459565869153744421759809776198753930514330274922659972640184637241993590207434617536473777832804503480371570377580630940696756681097183999503738574059237205252635695814206925641808255237747692155750589299823814276795037424128687125900797133232352135408976041129634700549024775030834518078947494752891758846061438960789913320159376011823591754445425970767816653186238038677369110051818784923017607860757657135279361394148381508593789818005088324638974585463682467376710591806544638752681933469322861429370815742670531696497273421349740466303436456553682938869296897828803695919333952265749181359949596402455219784600650462634628224820074632990132653201272672727251620487546367776387177435393516333722100006590113038442528519819161968030759981898698837997055707448088733182907765104185578747714468549808257314157565314443075980340837590645850997071542479372495773911402879792800437200889591484024748008250143010712883434469673568385260508438391784049309934816754935389154155935957049538169896072532082415864375895850180874124063817856828828980034822272786160455772485020106388969477004029140205155409796463785574946424372151806281082612397759092271890725029093343250543966137108749142436104365944211044701177547885314985934331488347333973780701778854057430360179694420619879090079676809203998310054977669842607847506716373557402783362876516115689291478659681434023907526081535871744275831793562523845702679661191397051935820365694102601298027046274758642564222879846899400056811884707134938664359622197725998420644635374990310621892964922482869182458498341458246236290439893600487853817860648829055129820619168995910896437244415215100380880188582139668411398327889432650215006517812354247077279452225626646197901369436098414008703967387005858338643447144126119989507680919574091351585071384372156804480959228808326406068931745820827819297796395775310778195681676531530381549154644315145206735244683515306976594178328561150353964528768692909457485915623254511444755653882945162441041221672044423437582133353523162754061008133021412246894015982859190937414315017095615774763466517280960162463905070541395290986131263340591164202554241741638550497909677610659542076614662199490973839133346299256270711983448918834223465552465282410721426149221817790099957430050199170549626451287953454076025714644041314225089322755060841640125189926469021672824847139261285605832156177200309101463941094613831519578219913375655113147653738659417407750151496854068316219730831044089047881793550818325573925431204417648746933598082559282835094084663226277349021184879185292579319140501334169892812265907319422435951376729404244098827156459098167877240265273730261457547480633375302704988671600360026441445132092981678105855002161011193791986533294588639491034266389656016087585214815899482228958301927817322690338944197778095918770503252684797080757938837018258731103891215147009049082679327833520734197292130933310925900802174403696221075012698903095825015284707600203259946066535203840142281915395053184488896407853575252739034944724684514317592586798473883864743098476907173843245137998849561615176745084462836936504063108121826920150292527456497604630505417521140643290253916516268969008221252837625187588246534592302598120880394513634020167289717289657607294815000161442499897545642290294802735494761256298523505125061648804722045346401344498542645989685148499155358606703721963074732049033658989702286887154404782458144256228483373522450949530327613075292175447025702126980893284165893198545458457540346896320465259496852127985702533879845661407762815049885845897439515012515720104800454445490066717846616020253830284136075804688696333492668816428325209552841339775581266803073855621833654709398669859041339883976040791210442837457614776777541339933485365548364336168524196196071299835180282270838968968205902526922645688982823546547169014240525017359220988840032808743779856953482953842314713319853570689967476942002055228959263288306983263959835842580460970642700205835900405492679652605836077350096256459990168968181449463334574282832389559204463479675398030718469121463341605803298805728584090646932900531165449157726420440884068762686809499180954324788160189940772216369132724219463599523123361359005215267587538942531592425903182982369464712355575958907097942270752386147006551272360180999837838121629178515519018955197557385613171773919510766434478786528444285862341717521541012211896104653869497707994912308579636863040331333917694354196381599897950465581976079192018836372387226753794450654982695462043022927097274099902166882111064713223152887795033518396513587085778230981613549931473749622849403566286330857896667166526059209905668608830741174246672803005682257284741001507030200263852278477088342033026993966639228183892572552599762476395578466853223291710430663939920762850156761662310797212228863367014557284407059039764119481925397036991858796324399597659626767002773896577015855113777468530054767525272636573976569133290051526984222564511683207757515861665278216032140265632484624253180081791953583738793504057136643684162287484188005248988426041607471894937565533426546674681624507259162853068121327188108682967466712727264366632587827943918611735802481727401502373909240469135362967265162318071811277944857503485675070910815841866294958774095274004422312220297455986429331982221000445344966879240410521620762168148481433821630987769327898644266343366284976083367984719038467355914611394000604293199680939224981498162458238995982289877357265088941681927558842072389818122159805281173109961251843254031117350601408897124518278662658125927446851510059350347050647470525594496867619914781925612912429878251207826655955711841592289382519525647715021676735030496881215054970765740017919129414504431330083617261243904489462853382206013346118607181015202619262025641060949413975889749544168702034355513503770304097526198551240857068174795283601188284773088086023351598897195316401059639146338187707063875232325847024153274382403582353557894254780366951347278311789924180886617541950714641645959514758548780905332740037633279891563193554347398010621320954746617098344565876173371970528766059802310623452131448838951835602577064221083790526203952292611741293724134487204471495666735672323244037071782819644189208271113745789718661553601955773542340015692520523863404948337432025616578423669647172651109811195524739826290694286431811304660030235622205024920414049796203102428078222275793022795615182798123512906354117802662904247609757450917609922928597281625102830818914872000941138580540102788023201305065347391609093367484902544763299309443134027047255366495604915670468467813632373364884254163670255695908026269966988668408598406805824743304055785869871819566054698038296863789232983385116562460203948733945668805891713499776168796355386800564064119300299137504372973695351611973874820659719129619210228341565016030384970436582733930450574756406936503189277544097629006462154038387603597726117149747091910169963880074732262928799375596036576337567911663821348374723461735225901613143434428584813912784539686022846718998917123221785401813399797252766770409701593028478866180604913375116540411257310131506174959770968472554590827869545547120012508652456244147389825647692949767456297601581352689589684869091495366804457447262904833378424058194946675240554539359769632752142166194342483656279577737973620102783636212417716230224641277259353629542583150779493196090308545782109585900060427534333801516835217482865485418206648222765665606200133086904595912405394099620307895405670958689838013296406540740820896629591116992157235582073068003809516202873634733101834541456700367547741031504039618132184949192809070381842762793798774057784708002717816961882075196778645914458427371756918848213545430366492263173864480008222446900005067164619057273247380956640937516385735183331214690636127388085674097780244375558951642406755068008133942564446860367206519104262043881827208129773749531268278879700288865110538919537101415662011221539936242615162767292923314879742287948022838999566425402522767769452709963038868104044796119771239445254729348693864856485934044843014715912809353165748406099791998738919235473651846026980561886187399639634503548708478513254964907521830044769413602824139851655473036873506953548020919484581439360343751200601675510769437461853421577708295092764920948802849953319587823292770807862518257517204066875692896629752152317193755377694367338248687622360147321569654619318927039833485729123682819551801139973187318119328443525784286631039203970402552102991582817507753469654279398159340453575029090169570883601440852770273194754226387597876197738438662762511229597801507235305036735992683859660806891296145185126865112256115627504614232539821811377053397613477942843287471548654526409832319013884338627694941239811826283362818938797824869044685052885940549996891858484673370376075727404345305948836974765354953928304820695077481702051797352571351236606989843787809021483900895123607206969176890030927307979628809075576168070336602827850823421144211975536299909192504610298690607237664857374330418254399032204130755001243528994869127265002683971651575229875111667355059697853403309985665192413261677648208485694879330503028919240280148158188949668112691757514054559261708415730991631368545144825149023182285023818638167054095379154144910463268518172146343261103677793174047997666420817983960654265731550214768058524907847576921702823614938328540505364948823000044347055883216162845594753472149916388306921492103098616595185371004495140380568810072981432073957959095728627725348413426110590971490328974514890842643228841354411051201485055250216983904436418195695162993378371179225227933031010876207964907635302122617716490436770422621008517745563034533918384853753248748600110126837099162440957880586260922964983575305297214041274536738635391035432278364937378979192633901199809586156834952748959420342339913533142615992970589109408612035686084969491887108432918221655526868018186315879918686277111382743222221119175876561252349465518460896020544348733086892819961825169405048701375541605737179285974504654513239022138806886694864607586867748521917255647540436994204943525202553329110562138228251403994654063716006284041977346048569100353899453241625139937629813748666566496140602192219969505696422391046004806150868700561284427428080579664543003945811245433109272987975460956069611142294731935558383029857749904165218790252229541362949257822369200340784435361930896824305637409458658771487356082947268541256325557856794297681953191073562018658058704082700022968670650296430838787622432112169425299126229707493260085207133679677192752250174517591268773315213614449644517096394112132367788052228656682626939598858253392619450857174480260054906280382412685704615131536280499359402917618701128967760482066116713764898599945742716252012510954669074855435614165059342917788819599588594299826680981971482548546116004347475788652693675390902593781728733005048834689725044998453373960434479698355532272807555978155604342203341391430302396582414197421582821011431480147096655387390342651372265580745080305778075035795468133881926466074252966310256384384724858243459876094077565665542878088046334548468400865525707380168517071629818953956834058645695589027779559519100248508234383510314416110074637528018281757914701936728178356709302897711504006742042541906361715880844661528706753040594456910939228582633068795067297668503117187518659948883135186287615003407700839129597281296166079195767082432751366886800217138736039014219217577213563473760190361430242680880118417297519777332519564405842654518475331474813712376998088646069371764874060786263349978479060869868380416413479976886330838953628273573192294173780304792866539712936471349451024722144809098059023745855964582790502774847419640433515428692526882007679486646073741909973802620580428115113714381770651857558067553049626038739778278703713608282221957419556800299958432830555506136596691055425123749922813773442677618617372542398620066855570844311179831777482431781974902950973402508522304352062793810810120724706047134777051236186052059418862280830818719070047769261423101272138042276775591734627700068188476031270662025703831359565923013692277568173868806696402634681168519202310433058537780962696514296907697788900596601054518579560977234178359361412130218766054417567052652852015282865043816420488683194371951685457877723028209841676056087802886344429976486425475323880733707495694081558407790101858739397309686349976910945367776916260781238524422903634872911441183736847726557833265105699819243009731057974399155286708182671154126210988114516970364847626939333785810930782016663783979898528960457220131323581246513556846737255530376698543107769532094997196441524021971783567119284653298499998140327817308889785177221022969153496379364747945109183922027795710362510209381350416764750859310963086133511386615902795452592722296924215838533797979223450033079067826584489566484467350656516217861174413324739308775312540883783110876145558749749460345236333739590496166487051220442782936397309764487541739554059919163700925209549962227511379254753264671032298777866993007753129314817280706196400082828932995563016083575014618207763537965283566514580826972784195087245745537349903587924033116033057695837017418782001543054374321961578092332595570726913488943697821518149524608160601597049779746707015371868741359440940215230702343223020101857785624240955786556284715885710694399547274687477137610697957954867992860741898948414414938753625792111887839240238448178509634927652556716739008073803794008627368161998799305738312793535655294982393279266657803087524871833457422922054378270147495380664738563466330664470105162884918717640135052984298579842888053380298245863683144655905002514650204716330037031190881453615431048230077108814101404584139715021538447471519321195309310439271346944171484628191156334965563361858669867112947873531559323082327856684968334816839614661994515235874819603090072421346802101073276175445056621363579138922712471001618346515627428064459846432174960255780990514934644756429586418768206653567393677236859101124990534524449742714100037185735277299373832051459094507894095837342965240661543256177509534175149582171579249089218723101848135653113771566684356319158927511076421402607209753621856387588233843522953302805101016076764685194830377017466182265127177994520352382699257063664487945122759957030080623345457113698945999868565554330154767378560545382040448277954164055155698317491021660622662936566201449918365398771364747930028339611353655130020672839065304171442955537144660286348640696079414486267063821061696173184706879186375352950430655045656491031204245834052336518526743150678111049876794109897330900561763261723089476103804591967395528394841301228865894635065036131523172515730267772612427489627181430161656786932579931398737145167241489714565795758279064643557254405815580697958738677262444554984052408749015777481573637663084775852183492038996341032446923582430996781912792474092047085185541223033410916834948124601352044275589596784190494615744346681041433463060972404624997750298620591701103236751150487821875619883976058637120707010383590643887268918210244055103903590622673535511827002398624803518670921667709661620013046650792396244638009238391059907922714995225265910798732087594323077970820468287507170768368958706819797747055162596633749691677224502841876344190098722564919737586660111168981551112287067786511939911505184616391854177167264088740386354546114796262353737634634195660262229521512584684616677778374079961705358720306292879628680075365041122007444882895591400245858353903979911099778035744278910226305344509971532741635107014984776919761109574580006095542029307836407322703377831098820438527849822145328828467700313769756707620196035128481670379613958140366169433134205872307076313902573540246242600995743454711059763793903202160213685539557698446458742150795466455316073297628932032728071005413723189450649777317379161971220193880408247340663505617571796030860128931191650979960938157918655781472416978846306282278692034187629288296247970567392480232744863462024548429904182272109704321718571661753515252724891452194045614255723819988478927051241409500563064785335879101524701862685868839392395340156787961426266292801558506734645676304361915448266648997481832951980876729212136708333692226417207920911262601592716188962529883524374722547043571544851411172865740550467077681843421568296489140465115257645269934341536634742180413346495542172065463426558420939899463211897476585133757497887684289532242821627555527171436176552882806347600973103360263648448855668327028075898461312898632881245366055405382700039791072257868656343164171024217895409669199711438404647338509448324509019673796754555702918336777854706418904966415861272191987395349794168689254282223363825867837532937081157623153072912288157836472512027000011914784068499418654986091509153093472384748932108756890000449152845371261825777878654707400135880115907544260138521799302938576152005712972396073395558843158484608718159983415314298845362785049016656706232487636215246402127610841489700839095715539003831593556269866688294137725533438377440780930526269660338851186251588212758296145501565962540607532989934252358501206225866652446876877732590064841197652064359043968421045400230213068979673105786701541210485376475378573992184117660565352051301792413266181673343302059357269968697012489376071444392956375771115537240947585561645380354186391640735865920453777951668325499454541314634313594527145169078230688334599386278152913580420836044805079036169554641352839280727490829161378723023267534340486542887676441614802303952327482595158821900803105243869783203596145070030547482676595644287478705012123038396487949212834324638841053085992244257964451544134856991835344698453686100637019102973534136606426366781418651842318135847130587717204951651200950149782972267443405523748640937207751219865180682390945729722840523243846117832285294059816643149450670788320143365870152194661833443846324820697216935567910861725175387773714227394464640793439552496640444380621107973616124771775954244200261804878697920926863004331259202383822802612266047628827720645355586430652146346205601684191592387968816964751068358458360602076838218330514233841897428834732572066821293939762818171010087787341605902611242739681019804566923158007858013061207535721092179698414453990044353785687844798748970114143724580658012104352567856345095290209270697334966748101156585356886481617948972668695790384167452888240682879318585893292800691536561849030239007272788017391281018643458305484191737830561669792073361680841621132948401193996287346149322129023440998667700463083909631243809706713156858007341985621128200116374744526213511045350082748778001772942858900883200965590208616517639412950076853775363237391676099472378933127006463824181034019074123181152380627588175541525607855601697189585669418824533108422495572642589350305056968515715190985877439240465040268868459578420704595436541799101554009456249851676729717145069616897983750768949742956836206541532945041722743412886364204926753524032196741628742756173677380725281912650651070824069844963094603833665899447467276761878836104378146773831530531056336682161267195169443692151832780482031445450564592994819136864356549882045018384555532221801606921936305912560442412120478174686566870394050284458076674589446954642585622286437257283354684771929558550812155488720002142945234938962025658088065388193554023708991408771206627126316026336814474314923153457456689538017029195541205373381011438884471188199331783624816033725187293963611466585228652474073665859017474147096423920204267324503486500945298158730364217137899640217126104565440577926071519394980554680540676942774481449479010292950150338012966737777317576373769339335301540645143518222103094120389540220169797201160665240669323593255179891476547443928628451361120835237152369331739538495758453748796129402345569626082630935099677729011305083309003253117656510033060548665712382892484447765444761364029117582410022086828885001257853213722933151368865624921996771323614774029583979192757575339169920109841257837350915828172426041322939041998009637126364657343967983229632281077188603896681564407380064041136665140852067837417722463578381818120150993384536641456079448945887207530964179636083896544813050534198263754064139672139190108142394400609517831869537408531492151174577132588552665347265298303622706856255563937104914190474475968781001998713086198591330987081805963735447688640740347171360365996536353085464033412321030104634715614219992767168749640525148067165321611985835692444967649084352451495957856909526382071409176179599788878724610607720485049214179867139660276953084638499820260574802990416307805177923472294731781557409521528769854837317535143419142704179105020875422582614025491355687114654304218206414847272802872488045003187223188090028545205327426449667814927398368232294175044055405157414626920080294736764109280173731692913189145290594935170194964531516717826212498051574384957165668374898053449873458801083478679509625657370407335902413552616331362539828924566191654207180965452800662147444638928722398633496709359744828232810642390294804900629211269405530455878273822098785131099160997710525460042889635559054612062933441858731372682927736246746802082207545277587594308863104760416737472407583574625473150439427150031225051680782058236941661478370630756726446183754618730524521057272234501705442121608954318442047633426937320156807300652648135559015099204226546881743327715015980882018852615055700803914456036043211667747414648419450857267272700930131912837317742089752708491620346762597514419881378817720421349876136432626959683298866833147737961092113115660035521843076748980933050812356969709596283070372774187122874865551334889925244542878463903837241131448797020207231489209444765373271137938309354258729799078415077837877938577676222218174162400249010641142268241950473556489267765836770304969570693320601317998563333211627864983922441147266427622417828964074103008627645536124778365260034701097033827958429197145016807973054872094385679386931322127410659687702341020282392038621220360883246289223145242161815262202047521947054937113582243127700664960849003961191021677509546439997772847758159776518705769961662700198414270298501002752945461779679537436962871896045294149562856786497982993477154450033406547287942315068638079412555565306965209035721437592237312198491965632531771806941316499656076725544651494813989832653386524975703858293612228326940948609918000270977018656537020761584686202749276301969485994754162212152240640237469799985224647338820246000962737842294345403923998314755816037151216875401043016615974180486909572197420522980422436280758473420941493578565301980100134020987532763191891209587220723017865163854504187024898707156561510466369540959201223048913821802671090121379813838207436623108358815158213251868883780100635089873982147148398822496863116636888671677923927099586635467341396921511159256658783120706489820926917861998246761161035313658228335164676423368748738268424603450092519207665592762218472661868742422414654251706373026981419277383191446366553183811124786635087508389428449886768542479726585601273469132452401648796011996939635928195678091720387988635066931753304291240470460001522302332351460014657948119010712884192092266970384665236960378175752231048585813891314335510063753619967038385228217827727513419445492463515048695042518884337329107351481915197350767515694589558765132034459950004760561029974971414574139491379230463904089359582573092588475458270584717837128403953464583626712971475676562121549739110841430748519150027195442697221392678977070804982578865896129363233256291397845269803928323316931270365460253608987967711790876175971925073426242302342456836172867566635063196205375355199818247092789832302624700792724322738412458373358130549811429144242286771165135483187950511265207743364130638324753461609533907694867046135603277801041403342274832906382106269991363821205806686875143843454428579851662507351030788731249699013133463650894876625711521924185334186550196214710694336990542707178177426225725229968069642884607685539027496600651299357499782286132303314640114081638294956571446032189939038703965892363675109424983615861790627132683665756166912945375797338611869032084313142696413620912640250128918609252262868415386438550019943675284436049826727163317644202046956693508049356039166105162323063810410735359497650810982970901030089536289365340673979558851575282072164312204223372809167546969097666564584147796505208066242689020929245513838523203038081245330548647350489990320727792605680189430842685521912281511994254056762758334058962069232936459118272009695094059095199758222991601577978080643760575843571267238425489984272552589263210126848325309700814108547213060351870500575813655533215908636102032426998229068538117532184377581024154229662535463959001459540004907722779375626812705851220390213981911516296420283056293534523848676918886527632780524490735884127147083055949536809385265267762690659502779993432662724101911218515672575161803021706636624899493275879749608619317661288467889009132734966223288104195818576947953612109323812108108572630044507798182627604181590286808566631821054146514373761639573350022736709862953257973794300014501920283978408083956181986631447250858135191720059388293546514284494857553341650118051554944777896710552391205534420155811514543397109203925579353029842748339312031092830758693508572655375926175592063559958255401189650160779936123993138754420072419775306108387750637801386974188815673951542362321018322608282110973526408724396724606256072054854990998530722758616337039586948899234834634908724265464327398024031706433584999804745139333006990939886526383847207153701659546521287177509215340190246161703254679641920086620949904309016043843281527824736664695791643883068685647102124878759278609261859516554339522943772681285136504939188744534569188855460194690032258804735742512313636922178127684861256335158583584686952322384914521520625165246149295661369951518986610392927749846007744193092986977589615573134346037342607035625606564139106481620936386515232047079590184255023552338532254376312672665014870422443417565629309117514670753622375864253203873579462771388355134197780436582193919935489044053653837088822507415175468979284952254747038390781525061222825892325824628781307465349513162948822276820181793851347207028621186093969756169546838442116122036598210535215749350178259383382592998284574292632105766747034720887520747403358845444320942515701995159724722334749396374614521217957004200501028027762273640291497904790819803719792360459930676770394200147946816891982457328420045164805917842613394528256531572927329082032757825435797102152910965714878866011826835898982183788679819332337434770354751307903912604654512656386315569120679680653537841530777056780488451287570298230692761996940364172648229081820020677280653740154704809933679082347434586445716000609068292470680908578401152943750536811096532137139576166126732013947465518932962460189484784534555929166660037657756860495091437716308217764782306853350559561693803498298792104159598663481718853497094266810185552558208163330699958308433362969344636516105399691272854655960488127126324188669015116289022989958869051863767754761074595612944864802891904455807205915134543554261134550192173862993084928327607071255816473652590155870214132300368754079373237459447143121040010955657125227924388268090386988082249306210034942939193608142154978187847808221117009250446304985695914063711633506186906761045643529233064924509339485352757986351760542325659484594723221959766100105840356073189479979108709492701651575981497183377358642783071512117806350677696376053464208941050870068913870242928737358564354400674028234838739976120318449860455464784038480718518592162553380542733790876361691244874434930387991960720249062673627022884166762864733472238878713117168017128296615847523774184103814090607485001393068488386790085756440310063181553361201551344997594104394006754933956690038506380320429803690247804956722614789295114703389776452721537293948242608674302182238983089763495086910711270070792405004843851098761695848520263365478614533679076056695025027292437365623776568937246071092522877392307987142588549784388823621510655594792538451613566315462904564465862027633918645949731190267235297652335462786158222611908776533028708351979919516365783879299956646642007163635153786794568037680796022667950253329240011956484809059836024725175521543136695107036420041559858122464262004042599571317175402127962327180440897566431140183429030762764479388747827233431502522115485206135389017465532145052736967706074175883967056170745716239753487707126898282781592260250166875932313430771768638123233407336907081032461301588055706483454894270534447983020470237016296255009326278864159098833406053580986434878809251534041700821426489614211322249447860546043842496051769978754272662844864639653165414987814750207880323852891893200009536015301746949260261418560386899332894372401966010841334581067217550840625947093248215441680968881189401223639707908468226298398520342779689352520405180391940598513086741200846407335615639101706679922211424473797441197583944715723252045721415804486301009749700903622299419104093228943212971528375478568680761750387519567766591132721352299686671205905569086997135938271488980721240451191791683572751959199722788105027296306125092546365491720099705085763544768166138296394074793122192011999348575800192196092972705829947220040942050403481193130497531980173473165806735263097374339446155317262155408906216661018635233453757403684762610372948194297331285104335614138986847782756631695596354034726137183857992461054921194144420312452653288899026859774132635783458872690773422941298103055642775457155130116082716321127997761014835845716486902284230300087663074256947995324733304049856348994392620876655222246625789789489061344411987182728126389413459007091355047815191870786447471052422189575943620434983723459654529911027414717251960765675595345405422550044042111347488477992669071590311698067826431617892949648209325108290854731761705497244550408160696355574790443285715742499485945890054965076542951162793305266981136848485262291008668129755058279931017858102689901045013857310356666088608857304767208934672194015613427470368285579625231597049708674839859212671994011862518789059458361153680075612609472193337630117985570319472581577236238954447446452172700478262341068974794150324017965050620640998200759151095282813202439319146669160560854268164999558362898291844602926713448856831116490059278353687947591718399748135164855844670791820970336017698383212476148947939993622519743551805345852671529375503535145828047323100375939692226558079281316276074066697809811055967477858421815876682869466526215284805056967033077633709942238979488807847966684016954212791817866625188649231603459548669218475318027000631169892737366272313233435301498899794410919861770893849981230146618282477267503204613082726678150163893733248759406419462043444156565861025672025955332445509198608899692025687003520914809345731398804562492321328195256424081988773790749047967382384323761251369351421545953073695627791151379201273019231464920779092591364411636557184970547372289557078341224003702948006166882101840524797126493388120251442608518215741270020556061951785033038185965884666910193214617701972159646458379303977377787013825098583214453277933345211532617996297236756546264714773892473650325437964136348375312918229138648024459821903482737012824599182106606370910331989811335888286500712491485796240538621166712557874110852538260651062776628084240359026815505192891452303579337759249107024990792055215200320713523005155973108508529498127381171539612610743928819715866536132553394787110438479719662731111648579690841576493993011492129084248555567891223574076904598709655871941922127858099607963304453001636671330501174911234229319796819351364534901483838719574099908835811584511592467739348031405704204872873039557835311239418304987917689673960146206293692499886854158402743337849899965471776595406190313532788792560359608463413447880545266642491092917188374187963812126883231811083625293704526028332625546607590780019983048101770314944187989497793544138596770777678432831198346596647114602764757345467775943482155860750482162568091630582099718426354305693427310057281200653047563757697967437431641140302785852896375217839744877855303416242883248778586989411149836888652807890508014509244047177541148530311836240972988386579862029119661545933090330585185402629533062340607223713375713282046070336496109885924363794457457182371891866723811925699892827212575538872986060765790978444555017858869544228843687431694163638271104645852762824464815891269484055794937856540892665541073198654720761218612904226084661546032567015644056536442832808055193942595853622307209019783962055012235567607846607380399494903405984782545731857297861165712480347317273855892617189477233665398040590676047035638687380558073600506140123149770111759966692695067517016798144266711177916219745299904862843422230229658608489742343773311820176446276186685045163705763776679386389565073659762609922642196361182202373376601351459298584837030072360732195988038228628871174770799422245537517712701434481903697992777602106301557558069845403709898696034758456401442539740764831171799918321620960976209328379184418573043294731025983196536102629912632392972260635363155997359813951988926802220125997602435917239059043647009071954455252546136346140899560005041988736614565447470213583137665072341689067833719827331122900050598351797658221086056332133162507200835945725577122981935017731344431502753360464767560732416659260910706450927065715437172712817563860650069185392034558843337197881300496506012292884958305222673150768713779064390491985286502792596965511264979750667301105919709705504596554233056137726775996288586962620515665677664138739137949195805915609553103174296634889848555976557262462694823126164843372010254357365413086068883489890451500545976870819794090350231731121888134156985223449613697401764814443971965162198435359733895349640140724260513208997507353604707094315047869816613922065928434567903133514588190717375869110568025581597007668404970226725925912552281609207931413238011617319589596798299546374298135578637497246770574934610693791618739571837655190917388663565139502507398292498171382883011031319659277946718079275672788886287311517273281145672334094214438992865327398458891486847381683802986921244869186505537418925009672717350383715700463120269993031388233974068535181904415535467012644277508222246769869578471470124728031105197413448587411557325231984173005524185718172519648839836739110109533790837135248049731601636707001137133745126355535590452843426025696264973242332974993567328438028346450142256877923844574902557493257814687422204766263451618332582665152330765616527881485682347746427322548800130737586836078761357171648381766484885751725856237942825756767350342067522005545677890260929343429007762056664565103517426114373932310794134515228761085726362991736230660371012330927360807891923834365906845969135560910383859715843865382799422175199114417925631592095989798178504812985029538729196852453214128905497761824001636883306855059413701779594666604905705680213463585005789259013624562521925129988653766768269431679413337924608243652703836782651407823939576217477776954053743421736965921943867170680541074683386265966081666478597333822464717853410529928783003491141584141210753392723644133956342529637554858012747856519821916298108858470004094056023922133419143555015017133724215610908160360678504570846186692012221341387760880324436717695651873794163979685930707982300599506342310817459082211333380688657538049192386981155216124101849345203399948087028866339057897840211933813608344227103928846295510074530179481434373759837755148963132163699689783245179822790582881512180058438396237450315523662868654378288356769083876418106242537800090489758104415274594248591101378829111938893068219551818955354880529854855410775442864080923343261667586616201594593678907293632821011566963691732881189497297083687958386496471096067772856692764903543625242259645356926449945332139272463145610049379051813031267018954595245865822268438559309363640843494539347616536423732436137384717477477704759607591533566402359290182530083354822470591228374781648298845165423616998274757837234316361328152325005437317715540771896974311275093476097009763502654767249663557700211968177893504400341114421548769244679611898978016866692023663088716546045864869518475595113152761253776903337709964965421397235420080672917671109697223207169353419365287980728351852687873876868751299411794817775060327880403917092386779911955917344089319222670028494475199445287686659596772760730185822487424805785498351926565044518534900609165426175475203192968273534241723322306645444559979544754145484329696408936885276771398836024583566715403111203937964561524167886337203486335939168546229227605794039468848361091149397407540308317962086242068394592116070539348078284462232714119008458667356545420089807735616438501255189771610736558672356689337891586582901148744387283582168629970871831487718172517011192054662048554311945120111268037606497602647043435186504170173460033116695748909783978478426818408310728105802700614261853942390020860091718511565925600735488635854914164320151301538301337757350783149534764810878507731446395633670762000976689389786174761179833756322851106129223309248685227650619780608980647648021780536701025868506540125925622552658444453121762277552480600396450692602278610129149756894115918482635402038617879512565424271590451223054281069229651228054212209383686405105337484765807831482399104822426540635636870239307456621246522807602791824145383740332090088357620419114064287749951512367039509817138251000623340342085716596201132080322230855076905614636097907995565498301024581799310213830677651144065562625956252036758970779146167401098254185075994716461505115171267448953951030797295943340418979114441384002226765392952588244523616504063329013069688604821207261471647132171412708806102514057816467365999118212293369248504726417396305811247703160365523737883124649334659216967231599493275787390236638429285841043078690197066548411263255118594190037053394898740681025833179807617312772559003886076147904407409020290277346262302799876066152316111267785871025159053268514573969139004133913462045549433442363963455973787367195838393538604103116134457780280334486540222148246178622908196563002421667449697853015749825919181854661556000623155997206412026693241170280057620140879288556101196734030813376198042690403810722064717729357531711348861839258291985059208013967056284649136478756868726712852405780242383097866308415594582969133917801285257354278670477832103207618468480423669758668697050229461458360681975626153563045052275152501814727510917967487394480158786085434935228989484183800317586017142408214384034727568581281302075272709045702388437531115007553238227019489353341287333078547899552629826634965268270652106056052849122384059754426163764441328889561373965817971342011651679542834593570549102423869017118779688726999788664914022015993979693566478353419217235063629477190564733183936354473767747111067856986939996466529424563386502662483698479881475631787327525064626827926210067224646639820890762972998809792162117651468959448927950082279729986907224561469833664408294312153439787362408135273165816007514340196167780258435530241617121061841110122402282253015174832395098379867211182478077013628893505550262765128805370795593284899512769781674836284946161366506233916080159892381024420122898484162428200904487647228365819315959659282379640071346708786899684321846061120112298023965505091023443278660247968951628119553947193321588846002374890129270920072786042877602885292711319305619046181489744961785762339828026066481006656090826641367527767178085571358941029568362929313621150864522265160924675694242576322629360915203227375868417087921550243575740479826757889631085377348075442614080751937129345513510455464690616242271815179225991803295368345761575141842623847572854419513371307670221003400023882023564639827507426494091715400234822577793560941766513788082047792736181007691711243259475132091074337315080055852953289863711340730253745817235803189434235991614330918476041238938058807127441402476787412588963086136034933492549889483763459941835978956888361339067993313981268674192115425040018842815139900576674283932008973060733786085549651106890698511469014452645458873866220214779354042339647196397338740848453027389200489339190776743255529080491235693371673454882245503213912818100850345267558245011202394450282847281846856459851791359953592973011029590176640487623409763688744445164563629135890723082983695721459305877695160125140648029017593486385552088766885002053681692728820209616155015590908744398048109811864664611612485798851638175488708651397439435603736029282588994513509914733038283067768605580093409062851178987457157501536356603543559855228647557126701721973545944770670040452196920237975584424386701669712031161337159079164795126925102956283415493620278343243739745312360294293842273082766505817128291675107777208089753414088730667779473116306641733572827100915441047537387216808333288940246900639767510984313463555484156205890068051136644310206499749756753079043838724397929009378127850192436338425359849934024684392481181378578591125378100286064419413653692645646781077177696233381492648872589990679382042787098596797942685556204857941267377645366847323944810560700120248592066762454039288421808463506641991757408565644342073714819326217878024007269091544381559331809580770412847218090641566238919041382851595392068390830316387212302242399229823426544834894240828804431747741570965431736797900902106433031434961334472381218659606016968706423637474231291446391635140957824038139315381932635956093743804212520383943160077054710302331591532105429318034678322346239747953195254261567230888863464930077360755386346860213193148531408459651239457740189514915338908000266960899139450745948868279839284649496363207581794917641046792148799044354571308821727055496632792246527614511914828156280285178828250587914909290650031906801989951130350891661367186336849021407983742521497804838196169164363690935002534083177260230677215827955522718685024513619495165903100284069939404582295343206238521724815968969955918274187473107059865153489719230469179700250392140441537144021241375206810893561164482057955815199695955529932688750301764823567698433048227942742115249549907068725777863038930728052239908645782653663854467206634347376648531526561973320709075467415005040997404761501793004302204067748631717207024532979126030728712639037757653275673055807962256800343170586861427734283496797609144185761545558715586381045629746918723131499372853341608711298134813297545293808424333729850478540172492232862320823108041461936112699152394174863751776434662450120782597934908174489942404683866136508147159289728079818790148766487749564218835623097065692738573473433572815865624468364045125601997548034962921775307255547937424042874797906386033424788195486966660283289568571754238335231727076449547722223039562948788541655481802048281274342749364862640728732965903759370199639201804310093566128829624319006691663944399721798963187062780866632921321511197427582899544642880238978364336974680621289834777648561322703836494263038549232458211002270704171776496539860015995911215235264626378869232819069335490057604669553186421296111409628767578419542960173912476396740838288646459018829764382181631978491084388684224509326603704155705940893815129950716222041911914178317671269947932274892169413714658089499593128956814712977333925213094929289413826401843186947798214937614400844545098595439570833070936826122654119248924002533937888095184581179651504608421819790574390306024260797272819217230260093676839146623774542664759278393961135279657007612986388123201182809443157237244740405850740648516891834219075103884097198813721817860086363685626528462900515293203500583676720813223604502979874395334796342474494179737086692126591929231590787736961602839024712900026859465762724461862105776810719459139271049136887119911588305980602998643485806597774404421330663364384628404098487331678255377991795284072178663149625740823869624810380396225447696880964298379800845657372965346935519951221389808976310917233059181827193468496146345836088988454291496266722346537503583721587939853403739489240894985621510959255518261614046085270326276591414123246659787780592107069076696525399619468386587532217831124510969755695883752031391385782468753561756453267933884359447718290992720534337972387730906452945737033873015607277865034593449095423753288827215939175708172740443713816712911086551613403895425514148940942240246535738904328605895134308789089584759675264426966465955257475115975377509997951201803393154056626161369529585674098484499340896551814366071961186757603184370605355372103711037844825360954371315324911705187137222118788943275566378671174860563605232298544955657482843744640252011314972894757658181219547183874244286913154024586530918274306430388140146517415201251219562812044623291209047677600349499977159104343610292948411894738634972328561303697085252247522596994751545445756800739836662089581364390806336390361330414970143648768038292510765731015078710281796550563926020283422700554629133804924374000091207681220680640228067501398104741055353841710124783121175423857568816351536507524056238530125818980283588758074844206981123277350210916567687392144999097942596615854839757922423572732835914488311894012136305411294423735251837241891335119300908416134288275430208202670963670331327596396420078370452522350060179463756158284724507852066434957758133835749641254867034262755659431070950089658406336681485744037782834364601588707393489168081511566617863228173473382545021319884968765728618695012353109324251922803421448262410473414745078468448630355536871821079240246434161277302133586951240007545967108220255586229331373462723593121484046476018858390091886779804200440328559470989237828627009358728716605142611050917875622790789056948209341131471983311594942814747469571623141075142580019796126462493687871137043610852138502042014009966182778793632098976326302869249383198993902496993698587245057198643864898768924997544359707786021387486712733021531393993086341483718233800163938393456971885513390877322988019826120405451105566753634953889558350529974634146825806887545089436797503292672952504696244804193853898394229471257443606509445560808529195011458146611531895038296527434182839971024115190900141596076902361423880008067138867415824529625879934958030494496253895643999690012053329387127947209743786965063552230524232558402563110985697390607260399649618533988381954666255852447441553923925454182198291489331222422709629118705804657886379327010394975840048058134666299801417826894872577586826000653928312255669500276671761027915073690186639682407367224765345685603699077453108935542413802030842347058147458985628769100267700709842295819019761562726638897515029013307017127096460730905375956334422711340601036863070999626519627069504339657060932773759610857423748714858271266167428084284495945906616901021513437435792299445437783350067844618371099502625335866702876588468982176644249675375334316947126005758354473882214317995170588856697130225101985643786792447869631043453468504884079531498245138832040223437947324123100198504516400393344383653642983551727028150546973017940976716097335044016394553514378796172513609416199438768064380900310140623461716315015426808806465514703591634992671301681578452648863955530679942734467762408091509403198441385537158889003053914744167521613767123052695140614834822086050903859984774096396999458307028008058344924321984288061911990116318862650452701535410421526730647568062416480586429863450846975031521538904800249584214560966490803735848048577912715644782888398373166091110242273126275175674761082546649481418985531899303755619691064357588386817388629539257064230835166399723756945365370342627535335356236022202998052440173773579529328505402835080235999765838646001395438098024756029435961439638923308216779823177610360203261982816638611277751235154503746818674787560023504184046523255061659920548350253395768478028745863224267916228148185964985511732942879935093807939492430993966361312836881084461927616831949220645236884586296079760626327730448725058332171977018926753411740189805366956001608553461192067922407711889452730168710001094706685592027063868864327635493350902062067150928762747317535758880104032856684049451425497724899552374843051255765551198094268046111764375005132782416885011079072041665689127430476077029679943939930415946963159333781325410205249551661496974258919945872821026550725073383223086464932865520614982053944422583587713996094920712364469223622403489054417514016298799372038227006952729817831872060328936613677536049393960681977803582435285813291725650058782369030940593623393266604307422691514909218067237669179709483718968192887966192469173781211828523619318167111471324176412426874966581467194971932049529336796105225511300749065588286955488137982169494965515795167350500167061296236677468654418884760591312883911104573281741791418590064910968931368397232640518875443643578528363742315957198971791977705780162205571218612693290553734296615528099413300489499040390377592168733533281251364667335943499627684121295101271586321735800913116333904576965556073559172127839375597265623233024062748529499703985484294821039868995144581546057400535524324286193005737855305175411723827489932595240045654588341958025000630881048864656460730272177035512533498287394261718688859931711720961386384018764922233269559343819204969513759654961767779653658825342462096219236541356010680118591815570638963916455743071432091458948350128781259325583594586886608497716870710140551498877491074529874444087952881938965775043565982330366273236012992244383660118488990718939661014273949008997488036447726563826458812047264458934050982715994778567303073002425747888982002867527636160240166595831968517588423667036733145264313687815674267231805328279335066628371219021011708241808587371191420848449570551124315870481038722858490094603761058763664890996420371837707228755971564768093837073974644850823283166033685128460379368829220016435621234360119749961736009215571141419107471037866344809246861106583428250575714971388198586636987550988548675512493167072038020806500133179013265805314655399085625677091726647969403643632697589466628449866794537205959080042178977004220690646572779255574885146735284827943528887945652001889176118935408163088892016808585917273877494873446806394147628173704852029319184247439643005382217909111679210770447639031358910084548585912073208838518457427391250180692051386464737172619216580299126764010612312147007572881151012591985980022883459369006442971880546925860810967474811680572161047069254393459859910412611623465171632481739235851058136305351220980528522779067407864506149638288476243302893657197223909429802399664718332065281879109762072795529429433731821384366323455268269218427269151778160160747031868855229847507121136946778632902162398441045882557193403980739627022530695969409039099647034458900838463891454978180839156284712175931775557750363532174130015008953111729327054431936547300024624385840084661739069257104657359435412868604719126652189427770294366688325770047620344652135519143983718923026139444700390733885363389803540126652278318978450672458620162174799212910497571367410283544071556192547604676431759020803561576798271261988993746886173662111038309547406770937561668975093520667911646582958532450182326155745283149728819256066034924207332118279532145639187062363274777183085701916906153393446702881171993124627175032146203208435046164803203371451605313396018578072598117766026858599327454965220113133767829641930119516617102854159390490581822819483295191208044289129743195170643357775537185254938299880713577529078101103520059661870930332450018294545139180571139724612584396970514276397822624713720322890893392742470607007880252560103540742553504878432543258085778850906779780403171826125155382878268159552463622503733015075435368451454154695339391129705464334496928531598786966043753864909137829726161273472732682932449290401331535451662542153369877180596505303190621075702147942825334146444448873627313857895152058953173232225059879224287086326291229031586985689160407274187986473165917984368975615403329678035742135416682938265895281969195856298317050531448541207942339180027185274500956689484369942895849123690237631343733009497369897710459702503726778705078458097502609929662011992756230677237872791359550292948313370132124082961464702689451588567736062109033874297088382233024468698818195125513686047325390383278709252211924219103861658390765121626047835207082993800078449518265514342380049205358915074036520006745681869640651059946253285134340862456384458545435360861057323938249876719503598240973479027141033311542335355717743328810933604770394749955793904907841212046655300005541148883280601655148854254135122320817262797027292016287717281640059315080452540598246149115563991252756570282911045195980490786596052976350778955492456674003291592971089702105545602129052541523537589818657569293709608843341900574611245729925692121548125891640219837634433827217785933609330679995579382639005833659118555524858143783962967677281478536763066194744613248540118032058831926902599258776413528323399503453297894292813634568801374914611430558211814168517524955396755487463951884106266967404585485429957975781362136372699407376160602738568542989713748402236408348896291863997904020869123881983138492685759029052460351114524460420529812093484840363734276817965725836789286019568132820196342857651496982664299117924055918730809823816828500681481291398001727889149003266322582204256898501574906654711051580210507148906284243721481790665937753990922244929235825072004638632406184837884215887610862124960391951880265526928129186127619854071141233107515393240177516822682732309552739167462374444027156272255922183606838428421347054072769742210272799488971350146568960651676835027191179461478800157549666283634863536727167723017733611971577626037855409816107771357429426061230303899350872029744682078813210850587088544465920018795456567718668668841991925557150167779205806878025890275451652527304314054897957421745987215848452830972127187998123807988461664331132334346420116382663326326942362841134509746416252029035086230011069564390942126478284966273718645209228448444416292342564503457945572581051736896653248324598750936925671319369138106889553775955853843450838272871671704169712918884875439289994286268260203781878602118919004993237999445193882291606335543801264637319660089117721321657040679911689840760538825095484727548293667518095147078751613512446777546610456847902420710554737939622219179104424766735345240829689152932819280311460771806775404224122963281168782383800247826265317652951671248478567797192332918878534555461793953932246693725981537531109452008763307697060908273688906116688587170648419059726789584804810913266032365628366551917852865556926803835995351380778069422159145301659746067978235876602956380791114115284610713423258123818069906571995063616252500761494039720155334654792157068527017916653659381666234666713566646185094654719106529068852784394566294282367805648237736247126595476980329432953197748151089331975540391941633395400768928194822901428669232706550085018983104747954099956850199657006261743689070782892717946590346863525291562157237814506008298719306702803302872237787612329228145536186461387625939784322915984791644308427343637299824397141729260660549434363258152279875325162944149160692496290603693934636733950821918269803592863286932305554770830169428277238532957858423950708864825773254510959781278227352444014408864297590498600731025180533847071006551158732440020996621593445996377895754278766931760551366994340337886281048103883864023137546764378993758267508860321431695583001371122210177946760192126354494689375487585928227107627760758440301694199235138603775245068015788536668849647876962309738540478681900464815468032365397803768739373140638841212547824816044830049515083754623520487130185509090760026102847396306191965241265776486090905275767121906567364778733713393562675907939049097163411001222472599440602975247079440325675725278712015901775781987197841648997058976310493014620054523222552142805215313149238976423858369280319999458248527349213978769768050665459787448321062973995458839693614863795463853509267857665627708761872983342248866698397551818997563105786020354355026008274475199910836604985812658649577085637063434062724198300282770152204860330631668268103236338507706922722458028886785707905975278586009860974576325815177645695135357169527599494263566014396196681670395988441439326658882826223147032258959802492615653484309882646547226240865324051547165725927268453058778795330209994791210032340814428587372228431588024944153137007846259786047489785238336255157221208186033284102927777861518561027947843996736242710890503883232119184680292328803605123304530483475407103648323806455054926244551953756058128816738816126882067853160937412271098237401714824849845953082714030786354240316516277131680579204488084973840133463259432013985464389832673041271443309644945493188344517030945475321907433493733251406097013343899219317343881163815935679593089021749138908792923536865779747624513331997736162216008262496697417868796772922361882574948145650108157887842953387604527554610008359254498089070617484782462164625786253696002811573146243253002266645938003014764735669374004497199528259553819403954941889126979590638757205063975973095329861973944711274953905406115495767904173057214757168063771075053866326725534170297050576406807286484394542739777077921825840094031194606780645547046118151882503154699300731019308934466926093788016461350223429952674335358601201847843670567959140296463062795691797709624433173623537400697311200843907007674615254857594043250531562737448868440263345140429404958054208037809202860824926977661982211808726272325226792821935309861865843229978919889124793536055208001464425615387850750842198692990660498853212328567967464786466218465908137189247479594995129797647142433976829725350437249444764083840487971503321641952097851992465447443574929833070131980134920554719421112787113554343481116384736025460670412715657757549712941878890949371379621958269538379771287544034883151410830973129486496955632613292159687491780520913414694017783213405771073786976785623877664272164734680426764278284979338032829192391342659328133093603350513213347560819943637687286511313103810615532085906949125659515642504126354166512472864790418584087927776747932794619087051603813979144792404655214025820679716548243078482549473612875973064606733369948247029432013244274723945538327378083342881190615678136991601769325822563274309129351062628559925284478131966096410527279017484494492947361154500556302880769896981806086028953102141053964661926747556521341912203933419050321801061890017681378489093380881128316258316764288933086503515071754973865675284729667163045745096268999890537914215584172459129072405897030982338131679473441301553038134268024770281936699900775860238784805030973535302643799537467547622696080633040803313296693361786694904112865840926565959797721188745610928438909912197970534932051659617664801616671526090459465505576330569114473767035824737066004625777473077379616645009158713822332987562552168537638936349804240727176510662800081824483981938947635935361571537141377372090478238908227641166003159910460959467783867916007839673680692787173385023220799914628584027093215442714651789997392653181391835460907335906756915499564000896666475202958206022778250628990793821630654401431368019628569731291801971845465418534272693407848553960704182323615222415086854704734112065351142765660210213630679643535108191970909984728571703401951777726064527701248769307123481756455485944354400261388368766029894772845017044987475235121851846490261661192920179050522015016266427586456318171873442646741523289209788405011110926279980868180385027880030125321267382637882828285966622031586871782074500003149448578077178311237838205212588560762816646193092852829084224463529677472248668870990462520366979676376352709220618533014774127493750953173413319672556834088423789981709033256681792512946576647574516527523987031069190323252761876989731196935376380317909398763166525529139361837094854393235521642936745562307117967214963553824206200871980946297763152132221729117808625609733051244255897322900769691046127183296446535386828665881361884646614365068176881983055327058265205782831337337214236265909426911646856129359831938498916084423126497630946705824728926491633284149418690762815112679957613476024732108913271008391140329508925708444287495924621896388145072290688679824490473923898246940140801955135257366626960264380120373172800204121772057544977831550667677012743241375494677278056690353201009490426692908229717161437313737567008979146162835311413812276266281406260666751324501664799183511482287932340721888500675158545046473867871634173234591016972898859504864632733595464029362350986797225026988962793156495078294586254131927433326815020843448748104473684829226357464629520351508862932588219043738963981458967448401734231821984016398373800083609548123404962529901634418891560822055508199240787564491797652616012673195040423885825641922544885252768641964497440190508665177974041198374005107211077744237901597132270555668120550102771250973441506499640765744372364954392220916814568035763206059926562012103595510668306025853349500003544610759756777302251457054166408589308898986345277388735827219205011451617855860153873333614604229761752949006878596106273579316935862364882488787175727450232453185811415436553181644353885173709020506076707619875115566470709865414331085821454562822355088860788525734771531203976809612392155576413835733699043657298175098752542175396968442510805985219771231342999781748824660225160395040435803432641119139026385008205971193682920577266028267645887969348439230429537824279176037061837925404033156181943659036188323224827774437047236010406151589771463665753366899361221926064816910214572534997255721977567321781703612423805994081623914082651707559528823617593675717081722753312854970514973087805631410795143960112940726574014504285549702822870783208439330859096080575431863706635073172823755248459736783416530811396310070165443922279592702852436489289733513945685674012114316154023439496440982588750817584933842777607266380511997080584256671335098167207877386530360223859746183520457158305360047955235207330438606454870556979887163993019207437579186056517106181568029873210264497305003010118911117508915581084181016322110326826235452721865775705434833715318077530962494083525696252941360454854853777571020358436128883094674752105812737191899668538618821326840189367343120272529933152895848133958800298864657663256893356951240001623686255361506457035924771677701372124562874746077680560378445192695847112485517538770589711672540847353617993272190225409620769786145427984524050057447906085780379165926596729986569429338300579752860739719329394278619134019680809272072982006837976748761354158235148063951163305524743445501373750826283229941951929481558743518522428224352632278361194767993707327343238552903433023488214761053680406850226671005255324642370781836047697641401986771754608582412801456778244184058812097976126339187664177927354904685013025947468116212614108323613580591945791572815585945225571787572112428724358104932732752912814655928237887547482944290834945490061660709605449311466422593715370020269892943498205056528146792311868542903604654284335129885735636283831355352118178554103612681660117737917904812154240209026335924993918560943812391916420264962630766306877753419997784780577090430675192483915810683250006914391899363622262097793485313053975389134544235380060752410149423132527538683146009580297533182068437895241291024117356576730640777894024063292307636816955070784249343711735878769611773617430585870588148962560173741663417366670093668807850224618994054302088652381303941042306882406870670303957180044778710470032120880701387747883688254007738726327873617403304400005365688253831111002896080471977832787028147831394130800939591437777277197258286226761553668375937154137694641475213892197617318089730723965962531130973127019233162245311092333393201180263521977853959042741559438392090838106004651835148617919813014357431202708033768223460665699756218695262179887336675307113173869224813605399153183967790760570853308972360049527439145344006107910300471783769283422711591463342779175904653847716461448370447531858468016348541192867266188097366204359995417574107350384388410174281049348472323626239945814391387074185988341956638140956195730423512463569717502128240505622815241231027624356305704548448308115214556109238524574932586946236330537488019064016986615920254616463263947805906636806411598969432313446978627815533964886080230294787531315028184303280057401815603267087845168280384913783563961913811119042390464993793725348229714225336524516592610752472528574114589325595383536132369523916527079708796836686921603297929984320114339361599809003695684655842597056729718064491942753686685741438136034238954536097505621417396385328887562912364707771419938158056951530732773046127236553526663480064142040832670005830210445247580004900176276721308659302856780430526660000278873410241058876400077656945267005486696518983005240135102544493814501774558954815728478260093131559120957866533884805910518843465337750059937493139774677067190189711783094406662330322145179758497329366624486317820726450464973696437077194237400358278956982255009009158871074643382012397815523903094476951221531879230409069158108988754534950176286665853138929833870375434870444395265454454229676779587657475599999697962613124942975383981659426666222659417065429258847738056213592186503881265907885698709262328561712132187399410697751983799103707769471016654967972625059907378803732660203720986353863329099224588285694781028704602930568458636543735332549785702839938458289050201200971583563605993278310948679471362255152450383493015879861247650762339743966753638418951287762042690164142298583724692861613884774214107623395848837250958885502109911691342322856280276272706555155401470114816203909097538770265805913814841710884858677305401751182582878789204080675843615048125843485528991260658582432046415121629161516315825850119241221223060019634799167924944650550855417277679287384760013621782195876529709115082374171495663019287550726225633266336467177741284478844983931478905592920407689979012477520607554165250152854955403150374508868680862764266235486330018300376547702758970470552470686502998510157144996174048935855987720564869658491173510181518344651510288135144333404450654908470534361236272952677775209517884050086309950890283545748124869416616349419862748769853087776198364813281605679473271050625352754634362397588899394597816119464772863391339997772516480762688787213833399366980752897698730014853594376416238201551294290851785820942169919706292341357898763499503050048707519427248153110426073151975795969578430196486834205491110465448278037805284138387474369944325582561906450666108614192793685149775841095903926178551321754885373171464773728105179505184505891950938381534137785624424646341892746935850815026616968414918796078376609572165732128897927518881234270710915151834034510834883169808311944918775219664180991966473126820669531533639298765324629388475878266386552313772831649478437278452598119684588805949008700835368347119726079481984669792203574821784261932974194726046559010432807423125818067161931947901178839280097342751973588062244826620763979122013181850541566198070982953094063891757081723118269082655107298846868954461782174044258782686724071353025538522252163637958602565829356800523185770269152751333781980497862534557770530069099711185716480296615942275845604682837879728855123058362736076387061629455910876102338274436636789555884659982224827295528817514056106845425125002111389001034577971408279788808303036293978741075243108911423481222988342273117690774251360356554367477839456232332613855826520341965699954998283298345445573870379120247120563246910316600856083921461022885058921322968726776035267393565868190721974161466051783484282575184448773608561801145244993111853817307288725868593200238205212014336067002356568609486343916715761162603238080267284809256154228949068418239794036143529744777840265927994740778604900021428327020577968673064800666251613826283800795450877151133417331532984757519078019052955888168682290568814168276176098487977070168276351240920001018292157447361066241131165719028459662270947778494959304068008780340779438523841541120959578572163088577846176078339986093995261409850704985816753390310802616382144451157867571708245211826427389403468169330420545763106041179927458283197361449027243588184542388122843130260538653133762778691777450027349516631471682836439520332869001001612968942425972630785013645675912285909493693376942972765956463095846054865437562098984157617466085614713205421187147282459737795354810868715226541484471948169874171351043338345462861646597743410991988227123307142696237852392983508895380844391741687922230213593387858791752833851618623342266275838489450297247757148929820646606829488737944815016356716276149506699899846145038929515094833551506331548725395677670442041279858922079176819950427663309430823041142379437631153938943466056314468612406009361681094421611299635696393672234604369350712490055342453734836438611493797917829374638636493966961867819026602129436267756306414629338657609306406807178168198504366541328391468809053721516405256046346268179140398793151759688349858957562085218514686353298828582937890694604394850942873550139794524580290019235604211562713305820710333263588327483121081367105640213789128843493338642815585374737003262733087226096139668126089490069255052105687640476629708406648039980436467255762266751054033454345165657773427237629512795600132592309812805265386813430853578770009623953190566019934156634506065595010522993597345384481400829889512746899375739871576231599572326349845702592810740820599980161694111026050888128455778642233393182222274530966253243736674402628740187289568807391925471024634563001203891593395540977579649763121165715184212999375832225352480383154633711180807721610121950674441637870211097916629664768186737618657028496622700622299586872048677226495388292057748923214542779093606805605315902719850140844002780949641328489472891736625330756714594208153850858246193026535410465606275327695511123537523230630923211138542910454153915604245261138723655781932778131287905453637706719901637733883544818286672561919682446287440448260553158190902275744844280526809258754571635369910041450438897161071517982806839492063179843219261229104182014878189532970108860004252175989149335757330918573324020422840059787878246656375950641835980295310989081046055607501330990150410333529531103481166499115954787675280702383228429266084912804560004381912394126460325631077327128182495046827561066637687849825702266033741405323240372744097263135387892559215799825639365991861437872636783931736042826746187652412087157109472936207476734910947849077454515532090008585739908821259725917744721772795698419874828424315747558657693094485305339947476076489935290242181974433363750249754033783318070336572822706949697735662681807166306038714834968417156770603209947376362030082398689709666383469509811416582879169494001080054327735667552784999343568310925194263314938018419682231241957913315765588800354262608080345507228513689462159458583973034279329556773039442939366301646454946695864131820088738545758993996842596415199567081491044207605924713883112873779619435073175254094938519149180305664401504571884730699066886637046186608959132609007805654930357671889685483347660442820371360394293494726003437463077047485103538631732156231036655605390320270772856496395300855678017797588694588296165337653073043797421886102331497421823357547426362561152343776468739771522802794535436951075153461848973194809087022956460300292326489475739439458468492490984022678474887125438034453766034400515876830322184416085758354831744886277293941248679602814548402632835922352307382048081032018442979175574866692807668287089037496903439661564141967974262904488774162197154843930066993429286822580563936216074590906765544909228810460690795208079454533124016843985064924646764260746442155174206897554512085515259131566310859612042055432782200401325989609910376838698572840577142025931356613622336511166834251099217588960647073427360479109555910353397805040111851812474094362798748539748339653703511122720724544722551846071325631453889686814677112995900243355807000235362123027800898917704631916660816693495120197339782502550956453213674740865324559873425367358481501320173890806283488939233670965502362443035789094474430897793194464848410384042323848494285283761429257089385497840907461395720199521212261797291455005709932609887678776917040398494582023275222275632815232514188614448205295071770675046800482600308379442096832809894754467833651793423626470663688025776750773013628292728131646691051342242559269814619770857823833662184970528788939937021711895158708484560713883510699292628120397247835344631056712283731120040277731872759157808555766517237019363683484717225000352607545028842643909319164686170997575730461751302557985259233909210344193039123865866066746700836269693327172906233339174630834490124974125897327103882043794703988459684466037230729298421835679252526899403170253029290276434174839212158537789269022151220504861275073431283103285273840244995638824660210060478709454997331866536182797992440524709581202142935615521761661529194521755608397473528429305320595003607307338911809256518177390771805787556105780170569221823211740070174071817899677103806118895207618971561103893953294111346253334608741719740087038841202228963605844866566763171658712881267247563752474986664147685661141484337710289129113428318828525013832382607319593703235089369679474493641050327999908479978563930303822126669699048414128240536643729389547846991870528441949387420102218892077746457994556864752399527028738105081631847443177121139642894000409334866525262467894358099313217041001485098810395276056541219021306491691619134033007298609065313627331232945357918966728260448754595658087473177173427673429728172424096536638509129279191096820054395442847719941088549484803084086181566447089830648306220599435139499767909473721697454587247456161878448893549257300279011138227583410330868185960815433785615948812957523467739825963421838181145371589301255863437475698107565262006066337024500794077351049228896287937543519480211099307214028235468089679545849311797279333508349781656582914873723142119073144611306331406794267178869511812385420438350073419350036273112251915484536455873823036362625945351493861715900099911899888523383437974575850442645373950801858236146748612129253104337740837386908365269576961513075668368397910523556638425776022012823865537863370222360274646899802251139481073371439288767599003798588179797347901819678443349877568310676079660353780003964376301454391034784230311248983239984293933466757471276978707300403820608097466704195925017987092537850471223285247521022603026166271783099412196182001750564093905614352839130556937580151130548034156924054701911466461678122197042958704800468398513491087368958644180669969246879773530207246648169126030089372862137636161618672456002440230355126501396239333919808819557820082401130678784341233841509646067754999623295295927899477686582288402544963625191144172113029675673805490603326839676573025036725603554982755498601694742380727143161109446531018410907538333007401095947365666042684283999054766345117064079564966129025363357466427736607704446906883166791524961647082465907727701212984667379961016177335109348540730841741220078297915327900149575048674820220589668553364453302417376904659031663359068056120885901955623617646167441804794918752822821285010537769894717684703057547807755770827854546828399453181545201959445608682669849951257457119570387291009785780544014628177968434533008391728353456347884151268522101114955548846075205277925413410320133251060512249760014586599894138778095432116202032419190786969408285464928990962671113756750036487903561873523616687957973788258271671315301850883614267578998272106609009655598755024416889257632928435117783161728171597964689760763818547299725542477134878223127962593990423691707647253452773492237103583443248781168863165015581768453972931194048449748601688921610029755746527593543855033062639872737423623411757445113726285543237243059564854395982805142312185254632743958178830306362482201124446322179317613695811586247312820143725677344926395821004796215603298107489604098520083212238990909623074877498186236674373333956525888338522765712139038486187322687090210615352832761790102940166993532616653754874509005683422592571026375852212401143200161335244670710999294698280284518073514932318713189676324102622405768749642395516726659577742074804039875303298558211157303136615219180120850397124699432568801762754241807590023591762352149825717338149969284976334123752425881436921952932610696615748726045548403571870637156499015038747519459165909784118895763479236893688995491725153928557643856505797802180181137990978339302933756368661932685607958568710631346631162743383606709638666443102306172721529582356611590861404352178053155380655567607816442024155705758537669239477102253955919289222840281662821874835696275018852638846206073334743289039861966148976044234644070432072346887809218989251730676037197128237803678561755425887432927452092934099910914790564084826177711137363143750565576781785702709484675120947728599726726938922757423600026224560737216951050456761421523191777194828843936159326192175834059991130828137182054489334549409901324530471661731921436645788435261516086413145407800539253456271355218033804293325578013110428412572542275162772949404253680747207584376006646689744166106215373630715398450665544098364011114159117625466870993044893423910716533520378114360794804134716779267216288527640338138441440682756961480230644362835449170946652782415167689296843010821059940497713420894846889930488591869656792525311825453833711144008320865658494575018712238376196422732500053180096655405473929913029282135817728734442497625109832488750638089495666132803674254965012465062098339475811839236963848934880521462136885736064096641860532105524515144959478803899553873411987326167711690548280491018848997797391595725592883110388307683212712557146179230143001169174070122046557274755040937205200043888765308135204033325037939896697649630003939578846480774349551321848160451568647173752329220268506709663493204300415403302467651238407762261414303300477269904113549967129004851893965092823082351690958707035382920762878115734084911534028207351147798822767136118040312403300919431806150926585802474673993855701197467993702582919526437476090148207858266148762628806442676927394478478440473268566642556448876527189404781954086804193189837889738012108223950257931806762415527366578175255330599174308572454132757901539103769873842589207082613425474376623870059881709325370289600579358624265652075594089996485241292039294314146017600752109068440833665464824597931719726284226450913953189461725923982749764145038184867183364071271032959588347240021310592038633295416667981108731589757632029677315750798081680092170491232308608489769264703095251987384050497098263163207026943786321865540724827144277077857635308552459182689102933656581287683789568668803636389156170979102483049496832534805505996708196247070734672247978582736514246652722010355521860784773696344951716134501893918128863920729297552457655274723640652199124094103259846076763221217951936761802636634108421058554389301735741359365463842693249752181661456973139369486998019616393770247496806826642175907075843300571715354390233443392329145907830784070056586241618294298173506921140507260999927600241230527723281982356984248420103579858133019819048037379944452441040041590311385030967419908579939857496005617691629040550751085601780606962559371436452617962507529884503832380520825831659517293690000108460286059646228548971435599343344112688338390096690981396713070723479623803217424117956686045056974949891335021512528273908316570678895564712827163473350734107827683143639864356316344557304349073962062066347872226042253978439780969522784639774739118422002969326969005661491648975993890869043317947945436382347436306654250804137323146971718031138281174914040644955120093028169280145684128186933555195341627997574262633951891242479571459633077852556408935999945581372330744464162882314918436224935857469257654532322027655458591323569057479990419209266983884682753070341681437088426629236925937006129365105882350086899030362391184853484157703078829341990647388955490114050372403356799827128149589371696627220999731233625161043438661587457761719570236170562065437714539179144248558933976253240147303681138788378011529651733815286207451576698501844337386354179290167821235855789215561890605253963717351439229485476109881370908422629159855408412785985454315162402426756162476041066001933452579937175231825073472500537100862082181474708504911356466355606180565058594724060969655519402548041796521567913756870959752146143129693212180070526716803547195559483887468516479169755585118480735913952568624544214614883089892508498449721793026027830515417239618265699772857880366700345308682907639415882850838579363743922383410709534592084371598352765235577612086072695555759507977561456277721516341018076549727819802527659830412089597701889860027598981839494278697106076329237574581088060487892459946538142135669633489580907863960383761398478273329973568929038820034991450647252179237609157447110113880028572777395336156964940400588095638536352565510506876335639677353628043076360521441448611591599219771867760834913615841689141419757696335852264462538792886644170108411215507122300766107217339482465449207034700013555348377666168674006324038638339973343150741878861861110083383727815701214976900900273544660751558900646409394758850384907213230885503450538195695107195523516806801638485317993228220356870979721158159419458516609820200714273477470540215085330814133308797949279942101186068870725819470277309762088472795511576335578728301093698696367377935336875719604689529928589998224637093667867173089060826481014952003042587150526410044295231056831508899763890059677685875153507884877744464997216444367001030604916149779568844825067098289047401630792642708315238528472726526243658450275826785224936852742647416994277793849661767796178139868446566906899310948789004579744125580438515260016631293164610969892669987549633753366375018693012895278804687203215762981860035634009345446662116872653864238905118562679684343216662263808462336568659264721878652806443539222941690027052740557499902517320785688322688802595968943626749781431124272367659509006723498772036090926315984834748947569915924772325615595518235236581485481523342159329107145866739053445823495549119955208504756814187714699709931675427969998980182073300655155955883959183815788738899405870826208373352254585004257504002879975495757129090358859559670762429749737994942200353287302268670518688591212095559262170135873968851113577336330295303245429830133529994948920326697191589543858295906595873822275351755927642910475976179288813363495720770552226347672235829318895435242065447473068574410638049584913115276056220630947102463908413984979446017726332852580992021401715856186775111084326345316430724505224212197103708719624375116822390297087426032590443558482876961250181585651133279757215951382480361179872959322424410578194654812934453211638737762769017545749907038686848084269150549199649002847915902114848282900168301512716880350377130017086790462546373441414649978887940851301173462786598839840962617638165981331436812527189960755782498779215603354660575639107305313914464332846752403460466143093654347508576971163253984931714015524920300713851592445865516471242564315763976048812296197274756849416279850230078090901502776421600995034909630598899396336149870033824170709432938867485994728222504512887790547997200788003273560083134632367908931398599748925382258064657001817235057174073041011925547254204764676860541749959209863022615014476599341878096870440045127291336811725294647918513932821970820503698660740724715031954083283451321840208892463801656881249715010776945196087184136850203832560488049108591462224459764607340458747297928809600572589117686581219692482742233341759066912417979280450626459097151669381426466145214875621456926729833840445901258859024283817088610293511667590810960921919070897074777758709978106978877913906294876094813634658717686761905652018043542983130316045345169978378989777826867344581735413458398177619964333908652648775367550314201931434931224774150093489896740718062239076674486801820143799059826554711517858033380888357664975297701921829722829370282204344980204509855689158102571924844120525598213221906302672480187767467520575748642451328663076464325244110677077771730407383893637197098727973357284841155595732755538347645594130500432875846436229819737286549411054765957073200105891989906441721720764125620153815479213016670892553649946968746342737880555017184770086806021813614624680264854126926484625072127013883094136465737418020210333351363369073438233612942608659086954903151404333821691421991278393688437487656226652385207989503880741594266578906619598206472784216286046935672958620863351816846787510108338473590094981695981979130058633954075173013137123730384431696095377674824812998863187461430836180850837196541652312707252655006518589118953847133926980909177937090292396457873422047841099575316565364536226993793334934342297113753279799947712620192044519250601042771395659663079312692451069265803210540403519088498530328380086127723997180417818295915357536666430165630899023028261924477822208240719819275485603756370910590072477841689592655117581731254889699864417055191128529027744971364018787279202318563729689394984194078181183478958315274419375836471905890016986363417688821764767212071665393099594009320775346845111669299977932731263108949577214357029812379796330244683150991503624700917996428397558291307669863415182068085887288892819087244030810065334474833676198228248755330360442339413630397100415512718784882312903534248664028466640768908035085426166010063282058564424284909643887828685327585812500984201080929696237056997452196590461895197816457620467423891092127371537150239338863831373758213939823065835186769837805819933705275346031494902977907610378826963719680538073887194858015920184016794891934223259318587922197240201198716979873710979822804971602053088232565888066742046937262799543729530585071200001069398577574983469592549896345562693072629623310009120884014642094480592533817885309106724781299056009097322691398053505071958361429696415492736030518299663993426519914839938775886995844962182896612640380035374746358915282446536743149431038777411259364196947817311287421397020665684985398858766544208252741283383356153496928822748339049091515453085992979985672889670756944200791921109843926884904493524220645010619248424643122139520635592793863399634061320774449238449145541834365433417219298791682133616651407181879881657217900450653437622795181059220063251671758004334057491827520221164225609669084265708050758726699855622531594398956505353108370055521056396619792486144779672227320084325906283071945668963457371940609531120122976689367309110929429195183730137653846788038216720911159786452798279800315981566308634734246020039778754336418669399003261756474466767403368948038324358149270473276146665609850026295287959540868826176064130685504561671453907637144406721788332082514395639606427425214722125954981030923315769889409855698811592737196752835214809809907989289779705816259655891612223452879816862708734431140302640392486649048082504203504357160192573541675539530437923792390575704987644614822987782470642910025521086182827517109644771812986310972518064007419008575597681002435676148326629362186661031169896285565394395444705204073797160369878101331272068573963502400807319899577707818501525685288410071598389002235492843551018478998748387708498478035766019219797014796492230905570751991064207751771444938174291244740460814863376337297364209766415323479464140227552373228847849570496100203755438759021475633321052483678756794710161739067880509401305927002257385755910315645383521713270383429865842795546342862591595267829093615976107135290343134534374461059098420222566648857454800172950043441749599288190986033006859588638187623117950431237900027671793814192870657489612000604085417527909409125914317796875566976278559292011205107805913300853542407493730174367288965242630198782104748656090344393372566664810410254476813392424250432135930571199884757188019462202225603356467125736738012352981310389483532092464871023942385353763174704003745069093394388993944384749504050104091556055869751422024379030026341632739993305402740297211773859891062161230076078062549816989002198182548045045428244237164455784260533925009269193119016488993825582214481571283838784926375742129326640381357253549463961696738207729470879491747810844881366035659873823431277359440106692380865742110716673046339956933746980435295950851191009918854372102788889993694287955228087721310396946510321923028449160707274088845235326788407841386559961375183139228248063516714643873545175973876216845988680105528477562449037772705670573753931216756988365822230216404334263152272381073867707064440745705074249709492945745834286906134323527448678820224121450827271204149047588170482510047403770660899043285717950542244873114268540379815503013649780842197464760912853295874586322029417024135176926093357750431189674510960360586402561826162156591587616172666500158140045759771183959065858312965552322017722361826478591244779504888249336609279062401843310849001272777962499279339028444062744116694665759773841730700179030412759433635266946508297866934784645596388324108093835658879066090307281192523865935188788543890779532184705654230084869236364300699486220077853049814554730936630644574284227522473908349343341518416395589962982174151273742460948546633106565890967274137507633876888050400435271221379066424262793337693039901337750947254190410259952464285199305688540267825004390502046625551080988162797756037355141777354118789051107496642086866039108567144712270990294354254523041496558481359705107621894813714597405922835451758465933593998603707711290122564953362090881010792557325360104036884618906893313182334718414579162974747840627699247186871301748574780626812920939826130302689891509516862737169215443936101025766776238734544749386849679506919387414195490392512413003520111522618698952365770504783590523350995687945328689341372246153302709310712530888289859548054601387931887988420371316534505509025713022774594189410176402321851118730265667346322936744584349472475296749208274486495753401559048905193690464293804205852934935847846606238636913948036264609187267097760928867939708980125612718095078756981785354155333596466743469668841979689257189826506393322460492926647887484177246778276152569645422879933865452076957664972989436727307485728908463394223201256521752842160494746042316697850400145030562546669815028161405175786776815672426271342648756409510877740021466913779254305809489895096328765311089774150539906981955849973674357749925582660187467719657095603460929600206042879336029717943263332244507364384637113738686710638838203584544983536090988769589880995624767756459755151288900905961479479633387198452277358583041987584037791654970824623036580643316534922627606190353944326890089446872963886982023255488738862466724115091656809523263534852617208331578246726243227153120549355918037322136234886786688843458277247843932383409755931348815215601196817013557404699544932873494578013390716043511439144255729837390745236453954850210759977495512143928686010124769338769365342560499172601878288215356148501327528884337899684558827640486919686062753342986795651045838086811513226042636747440321654273271091063346471530769873591524078471735320340954153438778839703921916665254552498109266197395324457971202603701966073206704901306830643195591254048733325572511219491580353699967358744099984845031023765161318111582491676431981122853534753429777405409911850423930806804749964690236474243417925855633341898346452223337820674475039208667648419282074836643865801990924401104061489138834563095391245212526560368706927991839236519828565318141398789635960306221926324101579506755584107065729866736394208959389549249978192727647486085881990619835879813932053523596397238874633898536626622275358251461422340649671544663116383157847510869286935838844784348386980759059827570219075541368555277265663843717919369037942547917202034207164522213708509297876126821063916660863074616569005265132251984510948577922673538888730160623448532897702725682477789432388434240041328761449481325508085130878253763224457661733999761399885726276129936141085570563291080315966072636342392728322838148829766169346035872688433731590846100545423930828706192867701760526456599449620910999485356998759515220228938997955503911641815330274313864204661027879348663232852751169745191430870815476448029876731557413228720721735850701065342762515368974687654594172220365347446572741400088050393393246476190227436417528025121374184531539543014929323297395952541425315489470645410005761352232288760987475684175871703996865740655875982681966376969262031927064677752353909316960691310508045148427064472619240434940258361076007308458427571309344084094967678176032919985206509313247817125524349932355188471983920089750926970159850817423374297071090422449900513310300837155842921436563101135375236018619091640581130767925359522070783619947352354791437583359569828087764147212824797616724866831256302440200563812565798941132610869041708889668920101683346686476042367970863942335631750694702616293921635144879385333694231751861957283100759252610221438542219451279537779741596049651777160421493192499572785530500247280294111884638726330888869015949556511429400629618578326147520904096507201697136190391437989603981772677748385783594551236821879130374333207578056208056109966478788978566708692247829224946236429408131759443723465858195463347795644956261034255292746292940320579345906869191597999836459080257120314074247495445604297922460829395986762486392950444884075532348740185873084174846568195636294408344510937289693547612746617951597314392909201250361387164040390203378856948932838481893483486384263696380283550141220596236920087001860911939512604631339505047877068496078122485004370391610319977590660026329383513166531469543892019066074511043573910689123554791950713309848679563425017104187821946008684132553781839311729962064960567590839613416674597580345643303324597478928135170313227365035068730783814389729008399669881707018829363008898334178241479000139298670710072581857281982345437673239312480303204925938339426191223718945550723029536612969462920485892861259702793123303149281138026216246515650623711807620495275061500814068539982319964906900964423059302707632998729607432984746691020278711431096119279942789077542647662564620256724167152111632714294001716889413032138868887704221249257011269849435541745929078341189317261138207610165734948633170496343783021951352506737873645324434742844654323391104844919925009796677527398680357844254666117714661684808793565819336934632469360642045963411105896934344055074306791476330415516778346457599211452152202889281754034355712430832626742194480824337083466256157549623028033639098280115898511509182396432674237983422200714109484256835371966620005633436297730001461492624925819848444000967784340930522859655308588538794375877294844192813551464153816597070563528069695375674347038363150469417892610098991525091152729839539110770280393433652842405410282689927644505399675750643441834326020529561753807331189145970262690510974835903016536296714128783954246397585487964930144214173006892356968549050718088187525110089485404563028105941908350262449515219152665292904538337935651169845607493199106244924086092514523004786099834044484860459910576271757032565348593838424937611518678451880522555570281570353903657338177536703441784120952825337750811853192910976097007071337476907858857349293215283414547207036834091057565610114762913208980637075447621253254044124761601565789082841959773409829270428542487009826037255157983785920166465110551250163434314764295994275448914214312908791422053957737483476724712547457199695634069185923822805183723407269886850288871955614306064534893042205335815202338848189886627852558663843549118254874232464578440839452039923978271073326919928526925083824160811120344162461021099340939229411394659193851794620335185223546850913784261274040330386154912283817601966667726315748425205493834989146551327765428182620702023988579442529938219406914422292607165583315902150658351871025030270794768188854041376681816157533514618466478530533234218776603920723645717023429985178603921838832478343465223798529608250373073044208409272000500499728050202490259513384369499616980828081221132115685797588359943174976461759628910637749019647657310976137693785064887758223753808882658159166561854754119808750132406379742017532240798489820815022313560886022386365345882746094633487622765024039682769803297020944974622257327030066759836141072562459075270684414494435067333765554600184964120821438650804811850282300886369078816495973584461631962228145078626529790394755096672729177410396866851202443676147524390367428514601196477261312356069638010517269021840404762796601216948309941016168852304951650087192117824056252517639974739369110039668630674748084364255357974373021781381896822584230720016314360347718977846289496103481090219172414558255571358797382351179463823345414898994641556487628430807432251303922609639020970341132189519933042281741301115172163207987760371955647199344518735547330835710982077737836260748920143661351240473362614390460222700590406368966052369354193487322895695096316968670741233858439364883075655601348713826021103149663329931641512404410151211241598952650488854631616597135264295503594722824554058758656326121671624753685010431423176289032225820984108378376406370657619666050237065939894904713863772194145393760712729213405219039164649042308021507922927211254141464445829966706063127244073543308402174654826260034676398163485850467326791839656051703432162202799767038865980208587106708806417820192310965062028244529513517411460817944468204531915510631022535858738932306973366881835735948670080794942163896557780011009163344155974483430758616791122532815460650411918913363421205694222574302804396337132661548095120452998381241877932346049559855115610843181636251680083405452246137651097026735945311185453787024939080726500924884014771721056225914766260334133876937285543646847385368897101594412969465307110811187759056343061847295974735307877955835518472037677451824902048067484144591609590392252594897620289951784403241735167778581510688543828475874446429306370199951817839852227476070824085667447035898497687950381515265389832103563860261406254157634536857832915517437854166760763505475875154689636597068680591522849996767209895693224138903067306805079351112778899563871487700112325289815053857071722978646675443743164713569306750673077859491750863383516820628672757376021082808952477636451275476221498491775100223695488565412675355556670725568023025304473714059041726648391706834395628194831743529400086570284803207917128252725869019587847398902244491060550368479659305827747326748592732858742075603936430762536232818320505387877112324384781850993207966632470588945271041602468195364475619177766318661998175216094604381406082562825872069404635600537967470530193827368119967506281680520564249558744137425135491040701959981419178412045027494178666688741945525797214471618197993116644654014362674150641146487890738667226771390186099700288088327996339515585934831974753171580901745510198360525073854958045115523150822438869610949812856567740694111883735563664549221319203482308144481199177423170857228641802878846120650372376996452072024824862229317701311944118517006146804175683784765396332711987298110072408535755668077973710647167589990261199329700167801150331615926859619799128976634121775100074172021331936480994959114333626154029534631155245976731705052003553812770386861331315026198622101282205905514377150434666240064314627142652855604562172182928648347862062650515493073761870893498945622239838946712484897533727938855037724290066245361785218865941066256724334664674360163892722045338889541200663855217826806371164346524297995118417520743758412293634694414448155782996837206889604081439871763639988721050929990830622898810228101066988082271864650971467401497125246611186754074521639750186931520153458944789014003922782044410005704621853257153040921477442252507978057124576750985119895644120994141442063582286736213640686362848811638528167705384586603552245797165266914094367077007649687020547462316353233092504014071878713727538963294195228803767789817670044441887574459681215137986653727452721774548744464246954772503206404273995518947926612183683953909472217922194132748184336150849152219838572373345277432326402073570107616818841117765022135294550072371329792189035499012607977776827891799273440559395985950444572983937086488796775193032323737600576523375517450119133871751668557699290029766875734928736887558359714008352862527733478051547381181115868739535176765024483530469320206747955076828100036009213161893430514467435522303200313112842802477327500556844474422819663654345324829736812181086245971403962210421649551298855725471509571303960803832224772835883924627642380548229374064073130154394270615864707916285333320243613816561474827386214433767555473903181949795982084157053824079293267739890121302419735883335839558228148391020392477375585269487955335275743448816172858074295085925864316947983421778578635454225397123995364862534651480245780445334992571390714114713374302292720136203028339497330047700007304607582827403804406759396546658473909441736749591127791329188152998714810047492789538512130696521722683445570631431353796560953937954679212625144888521170714088793660405076164496256242769844055654404609561843581496539912943962638644844080594811013286929013526615153664319010374814162171373802752917229444300704403031437928545399797151190275402603961792119907721707616743079819512269106218547149015047052350358108340955724577964568993429269927591659007407237945571766566013280209178839914095521952071104349760311802982770368322110297947192259697699304948107872194783155640355269997907321860648462264247813788366805019782817403606031304423261769122625773954853929530985427036697537326202995331365466130744822243811009743955584746598262600750138290545178766857080847573693763694151255471779887287851157889022127934283896241295537430570701388603645522095873967982755725806401928820346280458158997087603958846634194169302532824102930587360261661001932986781700491589971856974279882359159884900358559407310107311770783291630514454932987708939924996866261750662349052909510219594888431600431219655575924038507636257458257297694802368276907802752520568743634676165488905283971345194299606100674311668847787226103300457845919229962608293547164072434990432138411858388683001359766324194555447890251073705488551975336998595145324835198038475157958629453428516988373330894368714558061637479965267079452705646107394534709693810724200115463679990254720210442773095424511650917529946928009490310827120111349542974605500215385026384238716949542317519390506387951837675911385863463322305052162818068009890769734048162283096437603588643157390223594326197910593693456248940364858835865084882537285302852509043726501391657768786745114063387572363787959657082459974288173110096629695679868536442849269698401712008212859771412829455596865854867778281693310548696356175777109965110825957309493508403284187479075089485593958572490668435184495492738480138079315251213116887695214491208421878256440910075253117737636893324709730958239673013232702239549737533436423151522866547258920732245204007293874058019470876693244501184409428825688182284035664637094142428223579460786559290707471261692874108735736630047298617077282809223700292853422164911521726162799749362272027278631911901138813259740043958095687099575171814382913881859942004495249796185719427339509826334274329525563897064183378412207648055405317485769737693191620637053767038020225641552554240730530427806600273621269298389093579666460708559911556462815956710645898871337738705620347860777471248816873434360344456739334627926780963745755688239850314459895499763127423354099000231128357541390103751884251826595190238133916724329882018800638058212294342593355598964081157468665431305161307026590465388374236102915158570243365453203587626736348755825778130140912475887203044617587090832752293905997975879797183523388103879053090084892531325875925051971592845742398782093543090162718607994741572328927531856694966348928384626863288602626713894189547719426546278852641216222719053936462928014911367398770290942479599135635461449798113888891068230434965196067295344265366437287132963323283660705631995436128712125336883962803766418995400905948101140496563607291955125873213868240137567689477580219715121530125722064251796717647565365128879595891607763638480290140812907680818458886192358940953671465217733104875092967120546647331950197424998357442367115735719846444201439914101178771449747852997702947231070129224683496043500608832367927401090891914132718743959412793569307766877643463483355648971250596428291528212759486323039503646892390484417751654997912127598354639964296419724737989293548343469397173784887514536853204502826637568288439185022543041643159923016040763818812608239227124115082374912078968398533713635350864882080597001146866582330099420515971981318552916033669385076881113356887385572883776922151010674383203097632062016450472810782072928991969077002613275670026783580410977011673892976970783165686900653254085742056256107436830976239412406393437185461458384557155099759164462395094074527364112881588231553694075897904418847480924364611976640753299102956108793796644177996247562674363434352897437209418836244186465185440384194959302576803271890451440784301726274208704501245267873616899514975120386537373455287760530104956325869073855752821027521867251837324462961798554461859377839083636123261858473138880100863350298825199382719034899748318354394163183237348948364959595975037662952771659666132744309304818529477536736893987722035860854667427534253815305867101146674135360011656990823898260818401463937730673693332431949938896524919787561056567309259128854830762240014370581267559441526051062977986814848146464708724706238648099556007561984263125147214639910707179293091791984950945794766529847887047476953320332785191180403255603111386414869834596647071606110813834778508834487964719127982646011413178655958630473384133159262654277996835049829708536552384303013312868665067810065512457578074131312537336352525175895985762598841765783893065722704482292797949614625314354073025995536010869557183226924507251508056281508081490499751244221910718357795191316801795156829659980032433576066784660899293233134849578306657218773681491604338582472031429662364962490787037774295027804585094610376012263437101442422148952829702655449720861699697355443280236439818682280957821511238416628720416962548919278213040107079212189220928608185199560938254748374996474490550115752993109658739770115501120836338500280667874165638312889048428445043018000576240527508258609010162542125698763701920014469160947125921531431129335804766486925459663249880214053463619573150521312139443131131875758396877615465429169328932643139845772099692479963869664637662238373191013029991420126500625210241221417528658939580095002060041870622942993883708044537858889734140032100704826704233758200123962601865248417227500280617151222254935057715855904145968937779461370498396213296601828160057904921912391135210506532578598423942183834054468162197577956481268203317087937062628190027014358531372980291911372291188391932679805573096676935364240160155929678871288542429188122145149479550433815395888362943926365129199996800938698216917925714105189155792952951715067333112342800522279748493622718991724230709295746506440502598038658745477306748804679784753883193940569667035044234945092121108609662970609120541028605730464613984225305755339174653000980714270556949170183237271530733610121941688593322658417010000913565847521845826908171430034651129247613967321491485294412817063262706144328132967213796122930104096355651965214094169300919367986196374060416671912274535106894089864040656875268187930390203274231647116409788727647284305640614016832892744748491164114384649519870704806820669194832793589861109429070162115760330023903625774528368600567187977842083916119265979717042366311066082457900287830249699868962688598938249291052345994433403376917756449399309482120703933686804922853385990999385927175299895428234560258596008797898068974907864344410486959600208543908082607999275832636959666489310774243663302065097897499993245062375763939338945540704621808247073844054060896618271202005201461163069108110960476077118055787584357178147310012317838801440959444952231607885346505208391872299682485647695522214495913028498532528110288189755510782140621429567881692294018662098340106134726611821459251794734440559158292745507554060204081670153857757531330226990662681883493060621959000208609126080946414613006622129480229347136257413529594570143383110049303445808038811534246831645768845804191901195614465306347311515721746754265497327028227908213856155029974415945239498708921387735729423471082473900971951550303155564726453410713974955748648515899358669613152515185998073639376703430205405396804422596358441872038685045738758535754739876849385085267000115072106236800657692070319941799456076565496415813883559238003130445114899049666116414928231237204598945934433691248372385353550713260614112592694226498390338688046504255509638564735819049049897278645796151816025877585512297291088874993650459573796531166588925354778968307948263506346369834560611922673855143527329596634165990625703403662232308895639972665322257841101508385702496049257231865133421129123321468555854899852381517126271397781097589260646408596556016042669865205926617695706060778322513526856255160991238126531818093049394821351237301270792286934957985094901354203250186175138752653572780541877216461269015326157552295324953165753115605832798394239999944457059603525598960853322785689341755521705200427828893470432217699975030947988638959984592860171511296739115531807809257402934446272062332327877271334695106436089089222467079553894064587191347107764928079952297570129536968681063484194695063720378993054067114480861369465418802276652099806857907800657229122349765104932771193527507526737100883553355169053496822831165408600721949265528403173194971730148559210598417175056164007687713459445556464612541465299901404722978140560995339064401534824918661059113773474933132526312397213447874668931961200635825968477904209615726047162552064885103480405494279842896218756417291024215800735506949129221114710059970307861000596536693679888745734552578028952340617875019583843913298076060332139016104228662532791091286081226993259904460590629491262312493711863328047007713393530772608883828849959825851357969171736629145944100792243055899686789617215376886013130445929300777300069655608851720927409140076510129115416504426455007795999971233519307429061232902380382119761400885247229197058740756168740250546835401685300287239462918586752816670027275926859366931293943664474541948164756987134814115066486794947025777700176722590695844981903430883799969028563733280170186394102503290708717360245635381171022578568215000809143116925962823580509441364937794136859053298125194245261862441561036986067341830295088358432887929593072293930441631525921108543424161953857294087168610539766199196762345927381619913329158098292837245677241644185943666088618979409972286827142925964369137520875634630233228392577285984351852049646353820777575043123779887656888986561614920968073889147891189856771803012762693200852838547589260406829913481133160921107776372920214748106349659959588065811354411388108067242848262932956384268918612906722607822898647868837776162944426726290082664084253860209522430393195139644229472347666561951802747908849850054536093228478513291883150023865551812506606813344920317488470950015131015378499288688774129775902472994607891908687487358973008826549940390765214523403426767006968397999288637906517968313844370441960331394326602169546766613665626543388896057377003744886322328845530241009288907596926890243277588955882967609481384512660700826046239894928797259751589936621015682307210592465509582870857536588071671280190618769113026617516305008988985394405044463394930491711381591489637883167310678358823869920561255381748872318905595528526258867984051838862208402391292559217741883597944763369669706712973516818536071366465814307127093310231540418133797366465992226231698656019498785348758900219744935556943521565979010109987679720509719069727333641122952024365991224180043963784638211537017571969618458392383219016698944069799490403366737776508553717059075901094598713830352903601237181349103815245126550315288045653537149844561342042402767065791773192679805608942957947034019266351295979431211780585812091413118560711717561469704209698166371078105385430632749746034282039836336738279489931298006631930996176548245514243487412777341565293437050522491454919887553652139841722881710221502044206801476315180861667053125708930379792199848897562576063674555073167193892579864149703148064596322600531519773463210947327844602351391997290837548823379095663693685263333271611791351721678601103796964765649822867021894414437888888559385905982224649803817400425470129434052898213164630375000957860357438406588592946793799610172041030862667558469592718923780159217885300813496398071222310565639557712038758197437914263289245773310490451005313644957348704666420725861591339718397450530624377667990649581000068979235562954439872504887692578557644978244525041335221711462164642269837635533181012848890587923706877801940566822568664912303621350963540001420817070465299247526530176008140593146029090564921493546006260172639252570832417220368888496267096687214089161494319942393145778920974601292781932615956837924357934690007977709124081039033906858959612234770796851669139177997146109004256740651189783102057518806615550008617847706721086611830092054153604412431156982420627523526499098281576079786796130114243244541546063417473730081620478632261639260297065814945094632405443094907352837066303139856017770568806419337369521287945785529926379133871043230143882546063667946623436621648424128192772727458489252874987929538348979128595292873019797582832746629812057942148227293456108046969415027844508839585218745548458196948994246138544938288973904264759446461075099519473326259023901305255730891599522154946323251239636403856333965597726082576879826174392750931851504427149310989360268478125896880220162610473242423022424326897674930222130293889343353385956856082134414273593653415904577603930768084582513832399080884382422234778846271246424238787387115566474612119343802208483554198000556688745099877763326813005957915394349143276712170921200058155069560738576403542124526934755580697603753100592788824285953192111814465935386848051078495286113124950768242197760107434501504302157736453349282818833007367948359377789336365998189762911881770552645299401245117092140788218663457024778506849306692685886708193052355048803315769583234030535523733924383169555230662849224514285763422029482886508743318407739277167307107141748704533691117933697266436471623205582192206042226041411913035682952723200517448363286271142352601344984389537850096367527484825819659846214305579437502040968234721275722138141122164207021830270343405185915523708832212492568111914997406671249478294873562503138043310254191992222560214479283923595635203191575952251384872690677280310605660591734524066348331257094482477862171235308888303045753416734611528780955066216748646046600779066520782625478056657782207401680060348459181103582788872354592716653868527772612275046681470406233683562881182885085645372351035298777190779130655795023700370289744150631676968210050702616438742995506171052013882589690077623060516350305236059807431844497254407352441317232696644774281663575302218901355666693150296991549903630601662090848524911564113618377464364570682893348174510945506965944462839307919649410053589628494043875878434332907894985996217274102744525817374647818367926081920736623548725832671060938323048765282723339523479783646337942809764235863391816638391348338293506654594132026192179617376799432374796743776465633201286906765213059058093680180208539258126219810952270654247717619632085117931070652743993431691348178524101552967603160309337977560441922831897449876410092618330794776804974784372859594375327379722999286191243585800060984413846525813843029661530977878771801247045901791056654066301192192889613042318152094329683631627231066376111797817370108051368583407339928035722862869242241179563059276758530587442558808467069642428038059935147675990078459433138587653990147897081885424640590136425216606426527171152657881485394872594208208536932474093939080962208904778535079870904513070207177560579990608063156104958905408501772631374719550392363456841395550215837699012349196414732137771198555704675788703455131376003313552995649014500342199059740665546502669922948721638835321303744706265048595421060159383911969704659601009108126426717424344193822135193606355804560951052931089886002955031077385796138147047091714843859037931132648072096083620038978992929562064490313206320071078060190739763751297602374144023710295114564202068667816433214445703086027119523021321642430499316541456932319381898908582013356249645673663082461637381705585873961276332083637947477939392792649474294254841127497564369265955161644613774554962884907605981713664751052918863070441055718728645362760830781560484902846466824324281836350510604055929972680578479555876122482078486092028855844512426218917258379733263328831946263749892522096116865142704473052276270501284294352816429656590851619708116306580156463046615520820712608286789271093790632006477358700767841086521929904367444709593121391886010699858247718795287097701673888527793426946086269715913566831882244575272510803897549661723269445815853779140377576407180206685950552279833751843451134074338371824858091165646270654617360161061254401589191044208057233516281948740448540878350727340984133408797191800384605976394892392609520733858560360879828284995215246597914721704812374602700661916371089748372732007190314315051108716613333218831003093913990792453806399057797615718339363511821419673307856239745710455586597482281813094481703602262082487687897254391946235665307026795309377422942470293153895800626897784326780356774446316199752160681892028241812937522659906484103962171873336666548650321406702389083823228633502065431111622683340033400883056495418594290922444884290594519578323579957913587809227228609046304184557245326613479663390333722575485010193225112929649630681959844681762222035983707294970224647806679260397916221168159358152024642082954576611841546771062248888066471510753617900294510170427311969137685957871223578216752295331306295219212001300313395922368431301172949546878383305467750939760248716056174761877037858076974600230731874313932363959290589439211709411370839694419035381652926173615395953664345165910031389059735786098583882101427120424788367197163095547316583859793880076245011553291043040522693917507779443805480550527123918684081308855177668399510544942667637467976567364918801707292835245316466365011835622077973352279578242482184504044559454658384767856866600804044505726591688097408754776082674370158511225334949837701110117002896184529973658205743872384348241795651213951135636584175880290920299452038564780535177278175505843901981245498062404764472864016898302307965561640002414260001002579574701781596682104513906782532417779971839938517521902908956261022822353521628967158392930140178668760244687292151090553373688187492573007495085593085624404801262815211280357953905946243780462173454627956242276536617022801653688053917623204440781998979367762615261176050966690689145945390992458446847439735643843738595913007004682484216997673441292106200792464876873774587868745244027556704835097527321234919578497901886174882846981446640444615033150430461276385886670818059099587970208995236245316278389268480662043721533848335858954203683474947166877333822187926187500259034503758248411234885554643344422534462885561442080770068877174289064461704951534821487136809718204448459055080448504731444277879612510200866949477828203940877951177663332127009861414850895793115523270005251889284224667104979326366712829682207889175608209199765205031660997662365539647776509176349788480934800908911215880337094848687655819727142488452566202283464207688248145920081245395560660099696104784958568680409137087865875210704845565060105589893688757931041013811879128437956276838001002113091610950014533170176484918154014639515696259168332880907865797655260748141456358244888216899282519979246632496357433364994731223028694289144350193406559390476692614548844042652602418453617364357661150612108587658469819144360958452493556315334759861446051440983868889235812000952186832936793649573314222783319898714966405100591269317772442775351566606290809627087025705793628652203135274741909104581334638618330869085029049438933594264868167090538927720936798486320917159865217377659146777914816709583982858267903349290199525531226971663839211049023186563090703348899215763753973579205562080550966833354320442308458731509566564365083071662925587479356888189188507013807691479009767594553571810258157799271548690795047900053622830464614184626069076356089719082244535859170914510356236516980285609012726166878657170958478431784944787884422427380968791122169849236558290994637071355937543623710475520013514798556339648836226530963397881480836011314143333737761021055373027890692407099290178955859041718952370475110483495786976350069435347226169430857536214355184978524037791578550959110765374608152566061156387521999968543413521473006431805817012257970304983173256402777806621005937785616970858022413814227055174598580062468573458321098857004499699961368743256090416649101705173523423546558722643603337778450378535679566700966338469136745726353028040522425016917884352002143165925874695299640704396287463762996506879092467652280719244589194267425029577806287045730863671641155799855565030073071033020413323963765463531651724492559606390334231396875588245925430997452065695395885815205990178637595043887964235820354257418541603886077179164986864884732423766799579600562903992538541049529018715589095693350615804363542298936164023226516642052712690356349333057007381441868781121989717014338356407644764509413349633957792720887861085198518441245877817038909239051683306986329849236253706457978948237478533120170567500581848956739600364911213319227580362234531326990027085358445176312717131641655924251656118607755456852207360056799062120076834027723396525268419715541719460743916470151876242264345184081206437062558864667583247408405436824285566833453736394006685563716711612905487632402098215405932428502296281932361987341301557117874052313678534779225875582510501801630977458162203847753879938557740292790053129996843650320695750829883587425027895155917974895241836303387836035122183235441604565477685095955761104756268296670721504010548584151509838215291876447000481319392621677618755717770394265274596988856072302869918336865668103245851120566455740550780795694597475570880769411633149482438081779310614473230432477377532953331129439360920017574167472822014496947792743040446371132651355366897281241852013593166189599593400421725782742773353587893799269059838523353485626735182741880629214097693940507919877449234705890698983246646069783329284219968644321703291733073837918120343658688410039357132466832848542883912753649037728993164130803416641696440646431374869465112649367818759232924516756451534289684652287698273388428699414544221889665457196409943062263014870038656362565316977972975976607659690829911213780611769293155485678665041633766556810340956460408159076007420784315614832683380424116729567074941109993485521989373353694495966772953327641984087814938444162020268678045980492439546488496530984172456891064044189730520067964532124829600670276913025842751274393926488941774466991843228734969936338164664944243001859907601858673826033333212789872346848814995173494406476172975054133821169943466460723655533126876581850041982765770969739849461362136314856149853255823492846137093161604316224773666466658130119092501090356207892964839817043529646954026976984972593089798687365724408223080511033397398525433451174381091951606865007889907481782783141818421725112619070399869480967352121170488417550188721120478607330312868439284623868688350958102556436932555109013929657335493490830462993586422090882586531908058364925096494428230749107017039838953210542493658421824251284904380017108890165008240948249030569293867473696737196382028211982548670744383107264418605324111996186539804645759336449098656732287602737177840275456304120405924221749621151467017254687388786769145377816938814181339999247000825078514172649800442904138196955043393383821370937452777471029518499180518735529325804635447753854950383681759440766087373671745638114808054049968850771962566735546222514494217539044085187196682592549621747890078253755023393156458001497570945908233077398609189359943265204697662891005938442973162958538470859817277897782484378507194084610214512456475955607489317517558970045846390182694753919685951266146495449630942365986309464847368050060749079982296480312051921726334595083882421821227464538726276248417937375960473146437454933310509491480021084185188268572633545242329051856327691468116233850340396840310688968174973091892504347077065978737730271009907912287047631173569430952933045656746937657725974075256325604505594531374670889211744822624272045765968490782660202975645928387316324811134600006381615810246993797771304478587474788096941276275071194652764138720213618839105073938599808930785362390229044150939149098355020413742533883577179582927325403842031787745009826656605148478734218685089840515669946024030628174985739888061259830115461738663881807580320996602259599059981425738203324636449965549259210895777514721562691604421338563621658682926020071597198854744132597487743631227319485222143954654987370680898771084702260463815283772931336843461897904187480377145594194159281718152259230679550748120155291010541213384753741549831644138823597676757559852419456807783097896711573314397106555413352078142920170015550581483486641195731329414302350546083029088117920211262513247194973059464423826090247946278714594095253593659419570809523544667833844706418540166894699851873507477307076275634447666098751782169029172381742035058771337618521704468409515392872561169735761570603327881010346199106864459119201930792079848897275387056500023767556696540238853225437311571883234176661742904453411447210715654119718464647448265900846814361501043062751475372954970841456328930988208179318913915023958883806484115025076652534935807998651829705498126931770187434710241613375798842035965060052837426967918215073032837365394523684577188478336020647711415116865178647113110643692772713903737423011394157477102571160405169228047745842708634247370396607336884262028626747444698355639214448325234774043615263828686792944113001281205143893466686064040215443451219000869917347315088390142893580908822491105829232981956535697279947534314547271591074902634686140786553099011979241886660446519277344398260810590264638331969397223412902555412402053324511760241842751167036062102203431461812544371457737096332218328259081744914976130251749942015728851566517108864511603657738079193732846308609754675710866144803923794829568381914884761822116186977559427655046416671001916149379385706533657049752563469369474467956545957648965445819951632140808941559061311435319623785961163996731752033646562151026109872219925353138804432266848515205799774585294277249667694329342181494893182423859106431208794032027055384646227463845528521119937647516750405845045299231998802700277146719593479931382305060727393455784760077004198081053488054986977267243753531288096743719716831973895121730137925323518415366106476583720646140471484495636911534834548897680550209310857754547320529726328501108244404905614700478079909966893752478284535286879109049137705347702614335441459809979846356964131385772752006216632796114280059759224356443124880362900233019666928201061444761114761300879445709192462535866783404028208703748195856165296179476398565468771169842460848002352474636121143640127245779352871316696837227201319177801846173270547259101087819280254342104913165031907015942540652243066610674555336347682946927872344978854183447872426919362702123763694597684022054044889528900037499034617177754503258083827530061163293196707748780137988255187299319806672248908110763098782126337230190701691180032036602336161844695072354206469488530049592089423087042171953204773683034815959178084988080296847210241188064658042324485557796551102361898469656472828188482410269294925444065991563373462987308039798142967626483131421599068940246375650510829084670213942442908303404627580765604681868882696260159162545850652202880435667596674277677404082550960951977742453064543514122893632708699280544892714249490618198690411010955648955422245878717398443850355121668480413549779590055181602508876218997169883514808092572148081090935865730774564791468902397280237944204179772271168083613291025698896740905725137225855617309258431456093730135966448021407032294834537114445080783713745261927897740498351831608578140868749153231500270880573496826389184985688749000970686734340233190121237506989848438357009186903701932413712430329214291153622676902849715961157785222973340178568879803338316265224568725093239109033129464001965032252379874502093105983771531369426503910048055902543985736120601654523272670882106112869577476984700973445094964222964071882677440012789431879300628502270434868647925610208560831837073448238216270476647679802872449052199066471816286467587806365962212514777477495675958549662800604171480952294319035208817828427712583068440391192153680508076636419674683538804969032202836039774778217424263287312243604827296047072488545843288623837701267600604421894358787445350364461210656944242790027926538432800903120693116299746820757830300519027501814153847415825809940997099550356929531724329604495847164138438681996783333173941362159289086317379507670074016713442639880111471256079532675348030986998408124276290479211714615203375345865228252699026556965919437671069699797016099139382799451015106381785489344003456541101968860081644647254461303805628716678935845553927870370629160203935793391135524210901434714868637003619961305711898066920262331286451505038537247958333549716995937468011556459011767325902847014323219336970090237318538768197557823387298644399862482974728582000061345223575843150020755309326591497630768582312311309836581861064041803983128853120623240640894708673714469931676258525754783170931935748251184347608503181624317683853938170268565559503490651621552261265308971145924594216796935305240027756444733719709739509082685040816713220591482361534557286251720752215873893474381356521796077728173658931923932010086199359856609273572820482977217205122734237470081303998953311299519340570249612003775362005108501262469917194903517977456474201378794453550845109439207585254097098891735285006612927451342891096813434212874190864427031060785039813793921021435196677939175902453195128162188259352514472845893993286388621397766348703154916843893792897449325957124324948915347078210224627803961654959055461460740426372100391918522887525971722047542874249791180195965208664536404840910159474346278626919021016329592006323935372930135745713550420583938882935001378197122204025571186941330596399377150005528983825046304729652590205350200969262146964030584436403852727664062356935876400311941592586722516341202215872873538522861794406284365476003518183775482399744911082193296979189916062090476523828803075456866557983092002354430074451179627889477952189266687310709824246245332051665660950569115781673709837333300280850751316461251115717939991505014566438643989428122789414633519755353626866734885050393921708081259297677712922529397158102140983071187496706245026951939289001497945632635170833798976225604062690227883345318406354611233018342490519110374681329025786839695286739480028916051238948036774228758203259301514413586972469805378102042783724566846998338749617129797635410268924036111932406650697064401078031772223061431019533539616888558233217092538150841722476075654872137404597513943456041303768344551893610138287132560086504957149124302714231327660365274316164006666010214136948192730828771114302534120718688071857691751128943972551831338352762730489637301627799901809700534539183782413873702888357894356703970097697015624659628644009514763873459445108378881042923049778728753603403583270915978101468053032470036717179663062272870668175638539089310249004253363884635065508526750586834009845415867392464311885013236739143275570563194820564894170031595966709602497331379843303425207428128720510454077508467070303451813389894563066868223661504297236137254657782010388604032958683331153819017779066140289201505716879049919893109315086916993908660395994947420608032912069602429395441866267150010859740622948415599872670444299572988606908704910597651019385804518514727062554132786830269921546815688696034432575715061296129904460730891159264024293602787763018737063334905093326821050815410327559908707198439336313695491178804868336554323155753453173213757647352176400079175228547996462859181251600152164426006771219551154794764617939393538615196337927395861555830607905983415311783114224707428434028714862364155905060089909599050723120810729086793886096493845484183449733804492483973592185092320964389985847307565750771114193542354480631309052212446697385415770443727733223125301168460312951562715830908413942334575908911298075049647608214382259809758860582499781150413031110309516423544328921005907041585408518515909452599270505847930988883370680158171773908219843911319140739149036226021537035695213512311176817036522835073053062778284134949768489068404151512111418396514975248173384854065694994143874673930212920224795242367388272067073093157252258958624316873236204641467947176215336330632285704598217944863013175929195418184776636522217530987188086658948312479352444631973118691554172691004691746176818200196229768453008851648692218505912692261150292496856969156878674209630702711058066066781339992004773629214609198158341987594589215384883227573287444896043981917944919421721758454174706445153583680999965379236756775717085148340075900989664341828922367107458138270354929978543702991913142925169894722823009378085548008475521097200871449070716310944009500282863043562889396887609947297363776997175469322707551645073474258541693514065733663494553779654083043984142180456759116713665895142626443605058046521214282536274328346568563819108986598453957967032404244482939155696312698661431655658226064424310751159581780830124438264219379127922928955685346575869803537539623148688894854124663663146957361839582279718359585266061629034346459666273672649057291368170016743202040592994707721991999749097817211844665661093337812701935747593463080767082298597409157221630241774350153669161618987821784143132825998450683314922220313036834644612835036732012675202672127121176185032728045995993550565450850836171268844459791842567633842476258572242615618416913056970438424516105970569940143353345939719769605753458550252688938023079637557765290265146949708138294589452868366669753521980446312176469703953701682791174433740333762399611363730474946455870585965105622535062972744816482061222156095771921992546399871100816611544771366855069253137688007378288132847007229828559635171266705725679967067960995478427866214478439478988745672215150856770527389666408169716056301848447882474792166576725544324283914927436841112392166935269053705331367347539949046710019201669357852855822077784587494871452083646942913135902317038569279445761897268549586078475998777139936074821002026174087750883858997226565810090765692239707973972505353593573469893124563211639982093358366541666400656143111536229931214687719146051788719933547178020336291773812566859450233252388451723879864884933170947074522504956453123304942880774196439718055373212379035821082975178719294812536313553925008343235655028460414869409791524499868675212260723499909579106574010786501578875790389092440968724692995155846847343521853614001371136426355557507162431853780425300318030722024333568213672690530131507868238699195236805368447126012434113307686704209617880326626245440729861165830006168125805635808816338642008291760588343460990362068926753071727261510075152935546678921998407934545835599051155229116436493933616125164448543377567756667664173632176778691964619628296382662072038384080368307050654320280718968768456298810824078260943709426772580573799588768328161311718952750068500464269655361396427028602674015977096326431895014909700376702380734576130056251801052891929334606120677596361876586079756020201993053648686522529643238177541106849018100505862413574912940099357425501331930235780654276851750923032765318496465216250507326158310209677074013127499699561574661163163849515402061784254423747859641558322960566343258414139392442114882867502940797132803818168069896100272008264775986056818497084558412090648426521186850526474548980738477702032474581827000116690394514302034879995939676724337451747062907213968656508264449803500495985917848927065800617444795621349865053396598747193548313457302096367049826096166203174404462750304891823747282882665382972630454634979960602091472109184952235968383857748643805143962836888157545974478028066502155344335141475704614470361941961772214986077791207548509686059265490238495959753348512653351774058004911979141554148706854918718769679761008220366655256713212542909640395997981999734388292979403528966633990192513025862769986576697596357215228348559431905345215246311785292828771881896413586928544081287388380730119105084632728283214708676827072098844604600570915027725252521861589585034062958186834107979727867362607311508720041659247652433378553700965758053411317741418079606542193341396083021064386938001570117931122413186318800201288165075137469695231393611396096946005265590750242938995519568054753702173869959626942454283634667206066076880101786303371103291702683789845219135033579139104900637651388035364370422358498242665667379650696074754714395268099850417009839131189864463777491950621763114868492953296252781799106735935190837527656272549457476617412903251946287463742650362859579467007808792067782227963229965529386383027797752321731871294489655986762209085699441745772567913006246864306184542533940487079465306360174691693983787575145598625666810899936866131634033276366530779802071641821953514900698079138697863128831918828297174295676165902743684552354610704591542394596357328250827442844607331937596518993734579747476526985648335042786632434803102063276627241005926559475953433199398148261823146934989527744412105085231289751248668600415425593870731024931065521222234213458033217031849506716425507196133892426597662867416607720647200059926591131668032158050779739438436657899615672068203382091907209602753895386949632553191031013467073240430811402179864852570433587954645298949068842819436895272127716545598205741399977076114424113219586745402803224688615841564087072505917885758562421049862348299832525818706080440960584882484080700649087148892470044032485529871764373811608634935235452523959081961108371115241508901248215420920720169313114086673138577120616405157951731175304409638206622295910101394246424438992567727143540749721746676373046041479007990946057172851611368051794512431000099985421013917153344210693347809901286611378759534498025298015913714681003069391372825639060865427451778913741252799807389670061873382530154379890180981193838356054597503969031230845759731131722817723327532959089741616957437008518056519763344197627341393812760062367654581513330566314567396142997771753797286906240123791429839253276786368995674933729839457348872277157871787912899494960422649475166484805330685708569099879539731292603947611471114820095008929430051961135398943693126785180290097197457591970097943272009060980946672145942806659994933331646564647464715903920963527284734204142603375430509353478603833197392967368012751950398219092270860780847576338617035292996199829689220201881835530904607907283170235296719244327923513680079468813336448992042579458339575242756572178820368339983304442468971408173469406611370712249424309666634498213434541217176793246940911636001360548218166344943629949458869019617228295311407598309277730179010079504919003231367312664996086662150657648993564659430585946195384697919383031525541442854070590486559408165474860035258271469630950288882113360317846292904869295747633212330250199369868077626354411874284500803698726133062567735309167917947404168750765855248662297046836523998178278584692128772054599899414981951839760906185055602509269595463135840135490760526570094026430610874402530489644662076866341504910760475437708573268075563459182131720502355983835674687530265958874382515367726152837299745449008357008061040799710576465517652213724722120450251457271822608340285962844842778748163046922774438847250390940081997055879769497697577776956542581455200420489227691573490199800321103126245020017080670168714588086504697588290947885160978104040568601894850561528751717061788380987614435504180607057738619667258490874146804737038393761547499760083952256923134673498931278631422778124198576805178018326001580870945092255947314837676600177740799757923890489911584838586214872813256901405698229159505418451937071884980424956052917996390782590740790143080833141507811112073446375970188590223585847025426839265069735382153334305281969701587549991183732489207314010665147160951447525172846287102420750793627208564896004131985255827647590665154437777241093808581257471955492205219514460583026808441771924793088058436200747063173909143805270473051951816011476922100786035303240009175143905571100773274230736470402028093573282590056145137830990842674655074780361617236752267645306013731512500715721989594546461130948730902652153724646531622531251649079280836686059149769635817105986878428254530940864465535565781732310126316555053533891281555187088745464900920358071248713893991619177122703663411943895006682774653459456244147096821760378260005350044378799608492078404663198714018228878196795855981935191871477825913751668983693528023823859935075067216785186204824017727027259420043261127469832191046828033565160326641996456185683114638495288576938331892447206489386538914188327584124091091691071704868745822445494290578178081613395887233113333791329229215955915804029199847894175815973774757654329288479316946229350757713791097870684521318647307955322845488577553261947149729230155189863017312158455458741518863082635370835685518345168862856288785025865656167902172761150444106051828871299491813637699848197271350564422969828819224428807034626421330660049197890801168279696087388137805438796374979287390906240530147967910795577806627012747882396001939454488183547939577195893252685943311542898825364761331648352553909836173036786284130467686961402416414295263740441718953096529851692685971075681011299914921775750444824151650656328220352175991188427965386230445916125335497861604657922639055588952579353080987152006367662161008982259106599334765200589044161390468498073073071894123558582667714830540118169501721581015627691757862983003769318690292770691229796370299258900720359083878008993826736109722940863396190708574503513304978951212748007770742233665800449546169388119569643772792013186294926052156782322214986300586046652389955986472599890816855875093287471452556059080197991928596795785858914147536740413156333311927308485047102269127475256059908388312690958963226946278974223960824411620388548930417274823342753729523132787096694922559244623397792342667938340307918038037284542146048631244344373350496406082205449233854572373942298913917863623896025056886765350037746418931609994154334094046164133114356055128080178375466408654884041237916933075658262246787736450991049286748767487753356821079230989436992669428139485977871086583031301153922006409966249016084967112393965620478024974816006852253583876186113474917522618455549334894416557066486413742290822500408644440824606198477427096886664065672668443183218832364822018802762339655600044937930837953356307321473869238899248042163212708774732859387457292698626467579231221915235114742670866585493276182186811808663901570240582234978273327549523603000164998715441727859951211523896298487124519750653358393396996516244966962699283840716408949729298544759944889108474333769902819103765776934316727046805465810994126652350033654381083986309456342611365640506386198964388347281654381641209633950675441267660381129277695941446655499131989954188506926697125975966548359914017030681186729977618758780837570372742376773948962927416147912670037351441823551369083337020618307985483440962720495586501396031108417666347436206533119521950885594971273913423568783870764190936223625198614495348256716062104216586037559744066824089789392583980630777488606451305256132110316025529673451436300263424888368276706960098407156666271664013209138097123185257857130308396902177819450339016765109986750280787656222164589820074630266396889173236994343185831315442466816610542536890947202478909494847769371886677487808970939866743106658597198321602372315561571219499996916539222631728105858437697020672743514725104409863033035248029808439171438302546541938660800501381157715430706438657059853304464365398168720972974224657117994090462481196507021420794826863003582890726387425287224561543563498780324318435819137472945324777012582411149192422525395898055789342587340923846747318785888053468208612093690853913189693139775952405895892017522603390062079963921259765268402647804942848222789184513676548535459881517434554967287568488566284178096661439126732118790311683240339697626185395911080468076870706220531110620218064246583677140325749244826870046689834473516914179551858828103944822915474269793461235215450457949005166041972934774180188220878780926893550631827616501638288685061518510936807807298974044207506883755048803586512397005897410248463903117213035162887229573427311567455356015411131159459328764335356279357442885157941718162154944211303650612163252471651126723207315768873327328882798442608645968099401373220760487755556064027805368508779359701958945261049137090714882365851580408529445737243960067596317154214382510267190054640811558064557344842913264546739771079120730044490005432355572248837812695567320971599061256086881523776174217762853615049484194825103776165150611691340392386650913482555015940072571899894318443014713813602337708466956925926647190640904698028181859850084119324053537437677326039415990011368374943606464273524261527404533698867729866784698889224430487395430990095708942039535445030261044764506792038608158904855255425589001845409022959805452434079141990670322591914693126381090550202220883187999847169083174918159067462423176508015092258500095988200710048486231280165226976205297581568023852093196545540896848386360506061678829860302943271349898068939633358207174705278131999498923725746202533442491868552823047146953412093358348762583765110014869982701939762502049085442459526342545447028404659406646905422863302778368404948896584114157773226895700151533608306213758622174243459286285712863430793878365232028482848441840878661896609467293083766244464958063475268271421807305669483211251735605055941050325406094247226652501501890282376390936428594923249523155371530705694829239418156727189212490730990457856233376117642929513223268921518397877370962217160483566483229100598484152596908896556487171203686610737241871994062983446548088925559598227572865026497626639019234182967883819856092532948190933734592852138997548129909593035224417265318466772135957270246565927994782748430628762718308212207011896860824175397226403168496404761529172747141574730717691945634535715032781878008644597431275507321271528549338566261124483489837477420180764158022282558914697775642418942601009431745914210824868455234360653141262407782001370246635327125537855025203300672147846346985871650233793472202610220737265120199832425051980495116660118483364569540216881168618391013126626999848836896419439862854065038278674970973279199116773255951194402522995196929355157208524171174921478587901058741783798672479910112669001967783767079104099125128716547862226181581989332967195134345501423895287586648664499009451748341390178800766570844880532335975749713440316841368058918276095476891414921438917310745245676969746451012687846927103561845241517029467945111098110189026449811096912915048948628427031057602110045701116470514354652786308213446474490359093616557497421065352737289183419738843876325063104716930533479892996430353741264373573768195957102920085463295560297385393950185865473542591892255242650989551872519567560941836706073667716839005081542201044404625334237606101674864552619268678342746675738151335057012854460210292922417566895962667237361989672251266678441120824565782265754036054283988291197523442959551103250973722849862602482565164688409776567101491381857867366046144618888643216045066535857416140939773314393155071453401876943254764547266726215054467159892924968628242616215682056968382993077004887428537282495673019752999941385628151806409515701223137588000319453612808560033435107485335537579298861650666151509704714100401599259245634883143498686234825626688099016203231392502992028066217244499442488768695412234007842053923364684321940843055062696160401588233384606421417179280215538895902338363399237599598443687444639812424124823350108462890517657170603325087039415161781766229117963165743822007521295677397370494358069531989321603157544687781717626180122485491193266393188818272306810209835440706699890429544004368655837098174366951383023706832745161602359155720508422258645767452513875133754439308311685323491331407364666212973861738737179140601346044707666864073017042061013664014343384384248677048855283971473956463570524449177384301523616928591234558016343573175914763242333846150086808450699528826471128197001255750241659802729331199270580180675132607627434442981676604127304337294628290744951581810479690983956794487756875603268707438225618943462745102570225307544736085045572935342002298371239335017175343639234074954350519592901079012238224144347718261337663845174883311788807201818012345973881303393298807100039258394265802398582877152153542676232132432445438891274788781013334484529196545419531450628726765091469195740696372725612948855719206141829893589149772127879155251190276644802527430810771702658845680493327208641134821337542654182887358049275790912864344983927699483939470729472574910457612053298370814083906193415766625491795377028320147992758898644024466972908821265995078246080097297653316347349125123188807579973585625358637589911011699256517075941100900528340926339571547006607397351857159268698341541176308110269080415255241101942251705333001771844104289962567859489775029808508455303898223294857392744318656814255495168853713462961064432640123987434963491494157680159939503252569754933754104015450039182493583666296046018192004793095951112705430337570767927874332928416540737187547218793404553398010158275348928737253225289677077565188372690672344957861803196215583552755534470524355904023910755778435580587489652181220661421072158276698327757272948621954034545079027919176970945362450679025064286357397457420150187426592535165235945003073313395948979181217952257003990262394192719845721850349075087238520404739205007201138870970498169467950836065706107301765688034089185963606089353298375070137913266793387096757611559168840734520894809739060400245276242780880209599555476423139990962543592880439873630962639219647005801826633550983188073312460415345370657975515459616184382262705011149945358818942518277731333229661271786717039659880396826323510932683643443128210356382057400385301606930572032715155626210733519936389588578237183092125537763694128546689916891496525585857435769478167774028717900848177572836234049825438044228152296958490699237516071334576217137854625172731037015655752443068052834193309673893905499394872633770385525757506196497641146861211517382452435067979762126446644828455244450104839366367700413371995615927744527695050624687104015400049231077837330557943559511746426495528343229107488502089333825771660455329356508040267560096637995068979158908772236220690444694837230312809371496723775776040326490084856911554489491519411537320301587277502041017855104264613628405651827008692638442902063373395623867554637027334157102672284308732835831547768940165671714277809216969986518993762442311466119565600250723929458615372746684629399962007188698102385515594814871226795187326649203596008122063041115169314406689160146763589396780123767131677355445400503815537815640137678887081854126588893838328475173340854628186727113919519433822606769544283454305457238425440322517720745650012339428632088979068868243971281918388656013511015067285050477254102663198747742780446570616142972289049589223895999686174568831923639517828336967842457383984884006745239352590152278667206200082544423809254940997088117792616106726216701138045030050659626604606275891037061846162090220245893189673995993492807103207341986470128831856007361151584995632290136467888648093027475493466210855592265523361606513255711426498422327901072524580453780533490810936732149671903897201283023834364504908500180757196673715905795208079635289240371206632573844164404582948382444863629160394577708169642936848219721133573705059037392546928683717641324311340594952152506634249684279114925600666889486343460529708024590904983122526643226453472996001251852354235762137801233639403750913963376855904815238733774310305991872399276423376376560591007019110211768284006502175994485564764216065627389409723320179960743216229516965303048538728413592645037332269532274653291087358606850741397907886386370779977086426852030011760683050293014191605931828785622667795109769592952679077906519558174068269601627903597656075282695386326812312737248601972317825401826611971906401058677975487261859158623780892416050983351981225286591532091704585754871878398558253249743684460552604548948643173600071233724290969965965544959858545041957965331784571336555183959318688284851852533217431481706478357879606929763304609312576691758966817836622451540239194868869483847707500587797010915736582246916730640299998406889969241361398970697732626649364322631903784956732632570177786917185186389612857225514456005221635255177704940877391223283506630567214567919617483076098867892309302552129621092509145197897748155627577838716983422761653170289801289253332493588664485942763669907864628883698154001798346998960388496313224675284150909821304575113278825111055622937807567163846631474968160896926290050341721043851030661517956895671292474002120016992792900896928373450837303138595810438916536435285501946480180580327329828214608058980134497679730566922222218995933634688533141322148574759770808406747532678633944001458346886474292128134018443629371882610522478567123091840074484586882111085454792769095897844951277597612587395102894960722769641281131327587841517581628495068283959432413456612110415088584527217988944783285562590641878632491221830154915081260630464314347330522384897258080306003717928517773230891335027792774456132276410979013310507074568114035277221305540665044477430150931428103219821409628547056037965920743318988623801876705069575054756917633419719298398328974734190758173950588168479060848368721968888925747366230341475853730232647840018948691797461314427717391300720151694708736421100366429614288885184066670743389935252398615625807346425602539734677484552667335207385870465327407143172966597807888881497356801097724365266887445436578507073237331171922866892214870325120589752608278076211235335066019476426134413651327914633011563875677507426860553549930918803055417790024382697599762092456811368815380291524077984893938046402122761629876290877801967643036965032756593343635624273994908729293762468990100739437908383398553737585270554930493257693507687028209665661560060949149768134894737450291096237783903742943355429810707906860563665566535298212434508831508276562825909977076494787188468946297668183845137930427283763071972176753161597770669627940297555778712996501187159517705183466578250750207168656485427613662006532700986618570800157352395594003534616453296214487890383517619690120680426293432215646876175947734202144891297386156764331514671475279429438122489017291636255940772190131512833451874981570191835946091630324719643569863545473795321486449284136693151987186214508804104811682290583862370637778870201127950401320500264251356147178580945018228015064036256219582012165380980311516422166882820348979318240930874120018944727231159486594993754443221391108463601820415963221927201506533152856844569438400715318150687022046019563776836789985205930560292875443537488786767787764352905415346384637155754804790956469527124129620148814007286577731672108945369943214106258307953219996409779370213851876210200923709112425206613171523138687829511819841071792590014543688363074936233151080354486907619275845590599785051659228864186848676530713094558345810209066498834099601508461389928402001845591020398010081389346331975033852667345465054853141175240044808171830571812035576578101097969198688490224343102595548799466829207503903527192617420721915200463052633145354851417390467909678949988766889860326418605417921358522352918854093366899345090016133592441682079233610102646340253475150614691717328298777562935747429163609040506189408738943667461413961841088637422156902369580768366545629769895475436197681850044205428022645437455876282117010755017371571718913553833296974464915425350943266538654305965547339330456361794613937755927359374295206315848611254730550868921571532008290792115975119137220363200298680958987605840788632998763781748531163932851854811690758933308154602663605903935503192652364679827696112939765874621248286877070349351284467242383171106383406865009153258528892856782474998448457245376242649568029510068273998718136817047534585793084277932891163840048495364136845921915498939449393890885796204351952377004995631423311371417965524960990515669528298320438166106549621540780029745839666691895653129559435249217334491062381057241305477513517117836975193400852865938222880890145169476378305282722768702225191691518321885686291984517465457842444078154179146045800661949834372595333827839235661750384065479752163322395925752110521090409523378945355145135744980243631571858672260865949956565569188729848301862984409074906798909707741037694173831398705186673722209599943030547192651408591548233650052571376227842316490518399143585386749938467067339419929228350589232888095953302743664644814343444518784896089889542803844229545905967807179068379064542023506947285661062444549268639008246160837657389548278755168481481880747043229909355433419339648154708437623277061354105212980430401083617171978007845791253766473997233056597691207586805238424963839008311182605250896328097500227420065718671632539054612285332108088633176606887180474169361234802333367740116391422163719649402710941910383076786221574233487395865628023716642265007557973354085321181831810218638108911130026823019298874359642422219490705528349886335811080674801575020459716168650189076482396607826606004376756226046115675640004299919708621726401196061015486458331323507235673063705467933632890380589807137697071510676262656090611837775881108532222943668714762516411020796624062892082345764386143241169078525271781812430467907619340005398826746949012536757967354920676569908260690430943857599601398922232588464650525475057454748702481978782952948577765823480174008813999051459143153114300298245420310019557421414851900821185735360937770697025656640366373719914623700724015641752775580880166502445140794565688071707776840005036632787586897725392924676153834606892762247779698416226550876788866742348566436793875206164622249167871144381706547521019727694698870354305595818265978319102833758468036670029824614552629309029239788140220682384114303614731354715948529139056237040002126731887549310922043527522245632549600150622170266248284051573653241829567862072531024704311225039008433092957293822330857627012619149029842774388450342432007748920268502539057830092889376482588586997358135022306475465538243461909909015190002521522599541864296720004664799240955784835527181027697413452264773058704947492934602863447264681995988566282345432042245359902171875497948851447568594939193461200926199537557853325153031530864712261083537228748668431115127943961712613676699641197682274206474988400648245653472644510547503310441707178297859683931364992264822159218749270912901606435110072899573000523805310951289515352456323627461473289496469323296393011042216856620356803880480171286083209103015106021635865703127846175977542738707298570810474928414460070212455182777257238368136414448987068235675908102121167787273513670919746964238139167187228959728988506677872380011987367037134253465553862005917664084176097041498762541925121024897964965554688817329158384268395404151336138730060408400433428620854756454940375526372273174725287464213801663873740963511852926633238158869041220554619196852353098703457773744654479792934469712096854923802484583810154902047486525058973820683658946632484733797059536972830367158983350228608263347764507748737236707774473061637183863613308211277963526375245737786917902056024583490680749945242199806547526884932975230001091629501113356925118205780896172614919095149717586999574048354540013450053452410786773863465603864556629482210125597479150068716642442709936495164200461160988511124053459379860492677256867756105165048222224188493720924165722722897919136820940417540533813595807078858261325265729923110272671415688372341634141471579516158737196939944243001777627852906282809745794454882932372204422236050922631233753867699441486926282109668388811617291339637832059746682763280200386412000896770802841267378317099782990874171380356867069198921948926772827947714649724843106428180323432783522044197581902777993274751697674023714319593865196381147347391465908324452996444177824727626809146905302753495799563104502183331002646870112641146744524731515736548199307197899702741807945157736319714961940586584123114114231114977514206851435852060577003794914040249884844313665818495538755586204484367548490382028459534728960331844878782640998923674317927170683702755031778862186914156531930443789752624325542518777296495827973604669502735476768970276812572144446958891900183893899141928682527515272551148666548985486285261665475305149441616190855882059684415061668733283832955064399913567446058676962536333509643181684348850900181706910078790217443091390113845131291775867375187077142014610271326541872663165282235346222874773477796859392220618653184088086675450381370009690579562345927727051954749556866370115845621126553572946549056541412746332181133796100551165221950879245058381323457953056681460354392487961100364291129297827630809253544690307714654634151141743808300551484226298957322735618916053501813787686092244750611710158686187870500702349261717769149615283471883397454555925004801006351978468090277868806261409025019385206919875299791969428073081388734956163843974102793744754183002758487532721159582988655445987018553389683134936929952661699490151018632975283812745403621237820284682160437180152061171690779612616797708570899683424628512873106049401508026982554201936444758177734040549517279568251652367419688499566256074167250604886947580945537405601838557813208378863431142800430135911931696350496160395644048416192238773664967100653908676504596691150093184385192133725954013170663858346532052829978990762404207753687612603791544113157007217661059268137391252455740418397241724474937194608898200554184037346354542793618851099262307682908259702028869744174525541452240725191626001506512069034047655146978772668130433177347773986707022722127090886985505646460186347505270831811585634980281099170779165601574707018336640273961255680169156296793864546689915989510180735154879888260145389934994560725634084719897102497389877495831406276712745410886427385578993696239291275512415075650709212510017398620675907317662591837052674380824616001083719293139744779353753007425759224124843647357180090661853989919810388232976976397329573999666136056761059005992431086024419228936631480886005493572159433074344756022123918214004117213385648279864211909794206334753107659767422123718847348890537819612568808070588258598133591955197090321327263361275062355561584880203713075485396285819666031146154292192988791137189793556075059762572965997728798871978648721165318576258766783447155015589776419647485905456247423197116899428653231188527336765862730759334782513784360810937723308143423397642524913411179945076186378523294155796528934817192478092650032248982287960404859945057580757306619270740498245834311863310252335057070937525449250407699949730098970251350166232384678151975802088794642570039457032159410306936055254776124162249839418797973941950161317791403529102982460004546996764263740658789946823963372476949902365152332377949116346124335622604398686599798625814291592305731840432353723822391523908071655373638637184596493678538658046678778867435654112569366302975989918085828095887227763203292091369693462829977701706533161619607415154248154906717747184736057703311680647789573130393878128577282751093251271787060995420107666612131931124850318244948597481956401440689848057344524298384725837052116282098844157811495770975989811193636917463286868075298528822557231449766911161661379528943990404614336886681861203596434159914705240532812578291380991753159817808998825645529783937082688454874759333126317560291085154229435693400542337421766112924149687249579406741402852005604562412826094893645396678446524170308900760284410474175894140840318594353567692225261151972110509186855405684739729323127379136270837013905804638941141207881563366816970333178918354287756078797530301339401595827979027634610261414242464277536948580345024833550770026833385175445916883878457468643336933097154071329052690775625391777268444493220893849483673963512144331509562049994060543645908895184661226551586075761458266007554386260973067610330966799482915858737445466880158660402306731867664207002170426839960513613133827344848923237764711073385740976154504638830277794803845798394978302641067229708947306572716422489663580207556843499987017913852005067100822830554092500795374080976068857221613097970603898617059070439653783401020937576275201352177164865999697005990304017590828991435891081955156384656380921255743982297527859261499088663823765345984664352203336408332548076277332421265763252883780739444850849203706273074646948514481404432012539636531205047979118425597278773291114857146153835728943576564172726165693566437770124486369046134297759799798955796903833420216936931046770630976395078935004711161646122389719466922195077622563446603108515699718599116241933076282981958862635527567353062370580521528029385988637878425058396049696892842632403223547171450894505859858532959482253517082146092609100931696113383406530303484984131101257335003141755124234648557067501397761275859978208669601091268196730732446850775214142378674702529879587904801420140726292239016909890003372850496931319018508805018052579618538720090819932493815711511133125973512659915388824799273386091858462324853822383525726974773723945906450985972136307281210700597220219976044478846043302841627362227399537467726967520471967316692183750062776122717076218433419965173964928953398408874174695830169919184398668040600038871846435048491437570740194118171221009212048008646977907235586552546274499321940028120947449055976970133550568647891546472141771284110618963652416510079717798783618848753106780269936539700746737022179755165081442611278509371903629457097331092900270026798750125896296389832399797888523229356632603215888657123413074085361154515418643437851964597970582107305053270777051965326197052196665952299489874657077621992946482148563448475958420001433130083321030162713731162318901269077144420588876827270690541033097351421822740363684513178615593139768653285448873682131563768976183976245081148307128472470237703839565402004981036972575428523589627351967081218509526306354669029446182977785759952608219137983820436296636373308496998689786256466126214692122855599192539319546751727878245436788067587139650067898558967049465147701266850989076040951036602286357094001824998038095343788403291559836374154617192060841095124543603819180371557457370928202867847411650075143373029584392884146104961747715880275433807857918013637067285463700163763244545252397187011429750627123661744900048716748823822484209568944857501207415367446126500391512001131242868702897549229606577066577813239639837486370118612989579061632540534234495022418433555569892841799076154379883126803164096272466780607601085311542567917207564348091775298032847858033164396678834354588186849977576191556792291246319468499411255223667198446076334298395785723960526468380840353248230462334914630938625413388892504711665312378451127659560346679137154748530827042288812960392494607475990049230359235807524747694460674834281303575485551645131821461185720950118457358984630542377391668656375360951751723959804058442742444890449122356899041259186199675166930688484468261928146216194835763505643310572465109472166284504417667857597817312332903715513695991567770173233714895486992664394853124289384267369324503400443354443008950076460431518710936170109872351463626040436275346809464506729314915003329348287199928764925479998747281938120749521402300091718005480967817158171954570775460573685749617767984196755346629542749783531166732899772362848506933077495089807792676169576837791282796987067213124837739108265216955309858638567133260812946879031609033720376706640365169735764262891436153127381635305121171714672600758220352872021114930797605611639274720241890142098698612464712523855906289162157215871210745256320601941207862310976375605267863220386037592343663627336732498952139968960523139405284962656673803829136799653485118431807286385579566671744150810610646600461468563560943664944977785118326297415979556126629999355389586828249571381510674559940248721727009461563212673806747906808936488503592415180892575056205805102677038080044763377984110930500406309878414456380695730756741623642775652416966098561120783515435791754324888793387030121436793960194382079947340865640589086221785212744040714907382117140658544003506619354455064303882126063378708392659212331620383877638247523147908772232007758308636982464360684047319311914625286647016864376092884055223264807948310256259955348387512707989539363839987687666684423071217920585719393848319183372244381377602343254604826262671467881242863571363751764236404337335152825421955339369436201828152102483091440550264300597522102336010189184850434956722067855233622767074127460012491600961309962838063253367128492056856638274020848547487751439601652825398819836291258138086325807218340030836946929693130071561740231439136598092292177887590350707306361273831224134671243870244711661451632835296074885824303505762711995335423907494991715215373114605262473851265701031260181150921812687404866594224208891377862325327445504216927556645630998621190700217176349885873868914560382200605669857839658824261028929618690613435908703211224286395327956810941920263733123154598194888667880053097295508329938196316999430435413257706315660701628656855393067716513893562420054261528667261026361929023084948606961430230265344926798746448247740827827652738349910408883959900293307489600059775980955015093630921200385864372909719474002318439824130455284216093716705069628044925768474961663164649253865972282314891422308862346534664906735682978511285064475833621019619922154514338537411622796891728291301391157406737676807711420442596102527531529908221387096006030121045713143815811926710281795529756846489069380225724792510379210083152617518776644757829814894334557424931475936971760732393908572493455884884763524796144198517882781247482330540107324711933303795981569080464770777432618430249805415165245781075306977150912511283269519593779717249272417942563739164791109046793272888866338430492527779617885242628273671486853391632705737089322699088766623417839992004143820040698690457383366737961198589063486211401388204552147281087807897917076499800522049580721261775493690396585209235768603793465854156200586244503576123450254129665791065350411727373688479358965195531083960548020377077096883410530599889301159082181467892627392298200426267161999565365272138584068370923153809851303320433312206439659437506319168256061855916363210450559406746451500480972292368382082139533484441827792652262032889106285181300172277983861567360643106755119616798768782207515892656961132222581289119941757026531933638779075085747774631164720742309601367676216491628778350586596666004091986827609096350841362777919177947219406885313874476886245080625335300389514981992707453946799679887217115348476322105873832059709070571038652412414921473169737427109934360128862479172793061276919611870553202826190026521403458054001830168912041551524756192315841824178739844225862227003133307892665927871653940294110695535140284205770592281987400137320274353426077425840975598601050014672830350524321480405332055981285446662095734462095958022354629576663140897371440569845473350977471605334354173816255861522843981507120211343853877581191527751929565922742307453918762656132745717339358910224488557154585482142704585713317225928581703941354323316730338878117662932309988183656571017100710873606531175941246189187072086651764550620347894982861444664881060025229686033810236744571140915943872235717077403343286844838980218404068571263184623100680744843806689266862211068366088387306207550734038623038163742111724692691908152512837012994223362660145669044988138124900099443929193382320392289438051909434011918738228461269572932892974739071630962056752800204405982759408647499324202515835439727894088639707184186058064792240418053596169221661845883091264937512865161746855586360630969870418637514765216727087839128589209976265557865122275159595125041560317325275359057349017998317365761791292632066032604528806884650516480165712216297357016981389489186714949447188542629813734443191995090417484715280708826576057915885093564670268457484138539616653986684995813641177241332793052200141204692416095958933610622393629536184196501057051290093338279613165833821299810189644761303844775380898568589109727965711237099308088136080884202466398745365368420781796760730413801305709756735049391619404574500025803459454917716571220622465439901408518602273049127186636200784184040762654861399570575350748831674273657630147153762879234470962166775106664258134913248816186866676894491478656750798869995378370390759675577896085848179368372372260355082962478670080025608637691213081268581698644589296691148199798780162926552896490334603738525865338647012711695243990594278991968564447013917256457027044727512230287678030008346328498667829972716760996955088420245688252921278125557980798193563590116514952365313833986061358553676511969845726206215818058006538198252271242233698647549920139533735015320853869130725152285826026991074477156905792812314890339551315185177791920472739756227370866370161667226880973502545423252451607976516299975547875878930322742521032080977266168785444181602191369241627836501499134566375043010697399003095062953431545593712766181113089941346052732619786613393709520504469845331496039454468558000311024005167579615047107231238854662073788060261175285220915778802337794723857038107027369215227971069683653855987306181540771631635211176028303684654368951324605366978222998982355443729823824733580250904947600552514375432167869815242517342335642263047418965359671530423883888439396049889638537795950431204987800161317436245150754292495430882921463867313189491250182844007752728821505248815215462343083622602205220375664075754808074257610811115143007450026925353057396827342556915352888558499704778024973444417483792974258298917300998823464354604243697751439947201384041959033259823331228022129047979808453300859393879403388547400725968976550012760707347047281151090899810406946560689096205269304748530062398838534736982621508752549881893373147825064764535407837804237166239968140209369999477630783479811128034275265497184430907540681697090980749466535901864167322864606877093035551945003042371959264182410876378552729294416942898200985025655157626072708932419896050044458600691009006543586907190336901067677778180672868552148140562276376500906035842104975827357639012224543862424003439681720367456926927839409441401195676889607031057836792747843926907692500011820451146273039084970954618012866194907873968990988203970682760082529201824684892728866979451541702747269909035517638844094952996382419517509989273077771687817152804914958104687041163105001856277394858058803912411123261349905765554301866216620652413305151394482155182530685159383644017615541207742146541148769190243212748978979005577753714306967626613822500397463795977850534809329210300046288569336624293465489906428449803196134932713581944095406901260341348216266350657102164633124506496997906060618832770063617772182374537808690096520536340099015976537339648758930524134306322610429029905149356060324004841143439916514989564518169947647761505031573500114420597673660102234487520979862657117709416490216258441734523676857592073798446484982050853340458952173199642131212367906210397143345045682474958941659072387384004121978902651866667768282803780619271752496280509671428087675314546093928465289973270119502480688601633019979507190725564690316097599270324181826081104770144037257751110941995009309819400345814426960484193049401927417562669192460528978011646483595586057812224081461492397543157462165125530593019082336415604765016892488901191518472556876787842747887796595361077913959066147060448341910022825801460576688250653070352791257654415196923511607984637204103677356784199826955726047022155712991177658267026214557499134550568472206074554006405553222735021740835004600946392010434026250705708588271428732815942378437831403536684102161181148005130271125218447893791364629096173779814935672905458480440141341745160602483986050363080020773750513870488125029236048812436798980905529884129777809169792028437668634872029305053707013149499143525578761029106455007942413273271105403688221425430737937447614864006461507310109565548738407992740481187919459119115564916305953488002927993351320143410105051839845635073706230363632267542826768319028373539150116043702786230176405747477976381353511988871764118216020926834485216071096128920213522020046501058226892152648987471545573615823277374487875586909002029735805474470395262437954308221241522567043125369268947185308561253710712105087795013254193282244361737917043715768643181795911858606072287896863226203763959486764420780181485998364944505072411739536075725797495392457030423083365980323795977017086816127298388321368824597835728963594051877017696466602076086382625852026034547231302976565357535664193629017490891472180250264670614728452130137505841396980568016156338347723715752403892494728812518142412204969569956286682687841547530963595769086779561251769427238301896412041494660598073071182219004839688914912373189713348104125430301957883304923943089716029200874550190155654341266519510412456922102008613722091096482864024822047192019602747021271799945967026140044240314187501050289826317583970227878657000405749806808150497804147225540687460717475031374532304387891036770397643631707336352398568285899954402470287129712743856134646323955573461434146541676849362855410434632672465103782707070511063076262092239372523607152731975157275857616372503041126419736478648714699732339926051585432861703121932229804248710444128581980512743095335798123193416378727845057960107616513431858922729617984276198068750018863534122343717143800986881388419272497925623740508494964606484350544414913957419272956781789403538825395342933765241857678597279961837749762451710313611332420893809236779424928105948376436848653269737520117431881332402777732068364015347001763719593843632580100565511704151908975849286456784416364587126934243523643444191405517738560559930680223769763141609324379790872394143962284336990711788303626993697450085820375338187108199949518575047628955645127110081132822713095023088786864013935124921863726035032548617293705719295736551294711556270666389300515564884912497817595727234019502483968728075908282128800782822499383700900151716717151099247624517361891997696238848287047369245037222860764785976071544073198457899576171092370487620808912809487594778004329068588895241399845284474295850000852521251616447049757554150313263691339810082907189930770724789776389203543201957370954329534272971746603478417850311697415531939464632858246726810766575242054678007462062885195869996807315475288010085255962153595673687813342047498520217731924204903135030447408962011712350067302796685343305770030248860857208878758808390200645794592276886948625361795437857949867659101300761721163871370815676551997616448398786435080319194255161848793898840808070642267142962293710259717196596963071404955376370902571770433799299048955034209480637435065835915859866405718958151759180259839471788025735518845400673750418942263230414691198002288613037056307456590513055996841684692409041498848144902532238444593462138809906777412478857533765068997052660584482440958284955226953505875356860960604159048182397859807668334955126453968906049114165419514510779055268666345578942989517801626459261950463793323797125093388700502175310569642542138674911177651616713874663977741742299804137454714026381033677822626045688319968509651433706374012256452278294193823897653282928256431745453555065280628990134789270056539641004674951248027929484086668211664212448886998059931743039445250961415919310947391493513427633679239019545704006411348598488724740477295423713468092364926193535649218292121715840562224691400525814504198649441770482638991601924968398665125481981948099653011123688026520400097173041398705972497945336517375469874359215360513696536136961307818416903571358106506519738286774737539802415157240192545549705397199592545484932704686284298288109790271261576326266902138289571015166136703559894277590634127633198542115721794920713059862636790645251285720225487694242730322243867036108345426662174626477038227268098420964691983042754266782913290464278057957704867752295194056230679829135714731030568842124124558561594479240202799234815932391867637941421460834218023090745003349342858819551482683937061807018654148823829931432468519491252656039166951308909024881953038020293173105429220982049674179616087436749761413002708875076422193192179873125990649811940753733467645759441881626290763198651814650259409409132098794940134205136772365179535978023538041857427610294623163905781011125386520072301891265723338551994095683884676868478141354732626171669518636848128142144875718527037093136568207964216689832481957585748147444247655923772516823726688675669138910501007459842316994884392047894942514388673513114938579562704511895505306910082958972942265881057088842184512616546889042452963236481567918896276709083188613370855775724664267566291808857265924082388992863838015185499038185845619314492801335298984570649111563813053018751217075760907948915294341726943709592964447562202593794928307409106558650060822256837845282052148279979243655225148599085929776491909702348455159362037663745809730641273071692416090681559647023456236900230440439866311197353145083090511068084850361402506250494195681862351461630910131925305608973294751826347322247169469810298161276732971397336070856631622397002893881736825132439022217031990703425428103692017016828948488835539995627199541157504795840273744643303782358950068488370436887837080351078880107692787049270263163172276611546171578442957569732931328288436759939256554383868198965881976353680579352210057018446473201697715738351863077988387191382268388502718729013828907335543443943187650415258571520718083411122014752458421883941339005690881289791595645481486318475287890592697578044661443322007233439575889949684024053532738368446840211184934437894228862426099621131517450924386868806163767077834457352659118529543837864639797287192090417402928618254085035515388438955742364719775102980452526840914161439581692598335461892810674348561454510456301139376989052417872206336939655054902083019950558561256427017884031752257708805977825486099320363407566146041732216986206909367339701160917608380659232546382530116439708624534659378251558608037366124723943286639978727798894391153882743363810259053338256659206272682257680650273198350809030391965415247487827705851921132774838424742434874029553292436850358971760216807202650365513809583447297267006206232776008818415707010515272547652870636756088195053607709949127888090985423695516403150486735813709478566435864567283683185966287809228754238194320344720058275869249657708122511743644945007557407227043915475153316624314204156178480167964312150993714844833534697779493838593763623949892718593695633597537648258074300219039244191579430070036480805625108277801306240148585321753110089873885456939002014065591751692631155661268495413333219372148757031254250848493224727954045575625936036934923078764409230510525132796638903212590216400663437714707619828817050352415261956909285474194886316445641256972398449287993389457481317241584790464033697088144931367204406977423147334151765352403531349824771744465282719822925722190533992991130525193600637982557165549731828571312461279044156336898675255889537539734067235523874476501279592024714549888921424187680363215317589191396391578880831803979920727536667707629363086934080012527383450575600400349826079175264144196466132008579291010157562663120586210835322943353290778332858610491149686603037783638627352745799609027446098944272116632790807503440467612566259609859438556918765173531891716731648978922782531252272582019126803489838720273391613962107326882766849987135298993631864490125629937294843207950090825107396639314925166668858759396273297391951968875715798164157896703636060573868668047664668451851345857777278186017837931268420302584416089007615614898056497707668802590959533656130060230916260789173738940968033596509501695521800343019192947533969232081883783731932797534301000846951652777720451759573279214943802720169666459408784015658217820123309751157809399432356636641606227513230290745054923872760131087949426237562606819288937482814287522068940258806737102210585123694660621472635910719083731287716878851732929521965167984157712192809619387432929197096302035720925805261331974999348476343502921982528803638286032871061302517707197936709219185949171741458448195393853227244236053466266850149640057698994429065269435525709199786009379169857763453571893601940299110299735804738950818158526622446741722067092611314012252561072387949732504467257665129549863193695009087446170240654122024611709939641794218199109304579102326269742812884520411497108289453226989358155074882453362304416255205696422624414692292187192586172955345741346714727738760679411758562533984316328979835565925802385272687730482023900884868985300098806507966753932249530431552227660847069501241509733054932123877845017927138033746839051456340202473164031563498548019032311873834458802655266540338838397698808550787801103212228386038231458012403210314628323187606167247495926721748601167038966030051003397084087279529593426468711097811137801881706810016417829628390417974278989796261252563112620003239102117602950085011525323880050702783658403401634663490680016463717971748603828345241585059081311779518586735562834853242210041652681150889098462878106358740052362023413870238621493389219472429694761419859691037112268270930867041261566096196600021031869495874533329266216345645227860602739502337385835582452757039053696401972440168967482432186049271072919066042847881356859909318402839761600988662712072207873307578126789854258562581212946030876586951847050154912762727551588661267605595423908582010013508048405745633704718042468833034886497642778348844867582079869307153333713506543536674411153168992991698112734982688736829453230928626800141384126690360133612820530619133308266894446784592924236077949178726934600265062324784512028228632249390529373362979519296201802443797266027765547040305229744379318210030550940707038836985161740839899512357831448301661641875816349726132340277960758947053749399425327813085071679041826979038551767046428143644779358211982173262907593399380465257691999793292922470517195623420805372565864862433029567664639686895058598594745530165457731018537697879157357900456755184175128304553125313251142182570767516918890148758103706544467183283137773402647597240356028086332948177571438428364621754493270633056427052734620678328696703162358399593601081963795658107081421582600846948791958964599412478217244433938514765429841393100329552066417160092144601696872135731516045510463500576637341126346622737767163930527563843857917016057314889578698200465418302117284431318991741419182080340926084835193200910235923082996416026462939066709658896587721624284857919630040771969714959406787678384896118464910925955389439583554254529253858404601956017987229906550864323378800588389922070231993131359190974473099197212820805088050954228640724681956845199737759498806892506582249987151011690461725186588703268838912122010479308208207288913276736708239834580048221720267589685052714033110836106621870039220397557315616465264509650424192486476027305303715182858534069571748263655273874105592400453030599473313399082163172163118598837150886551204353676992446643690339213677008739055226502100707073004167914321587486510003943846689048314725013229281763762687030388495007817385000894058909273091346397965172728215274719238264208396607556738506512200061980164223825853299123458263630011211223029509417024358166970795847119666778425001112158633986238495623735528659913880730049251744640698851626259160668909255905820148894841266966632203877519455332532419932189672409027646691833143176666183329495192689987507255311459854396718646756079567444429329481431525656608892667936282016576950371372701552253461452563816034521575824189115339690358359340704202124347204804690258293886506153379375753671596957148664575876839436499987665346905448497460852343385079724959979769760040164607433693087566712451018800690636860629427520178556510754047479437471924594212237689249583651707501851233461704267348490725612285000098506958057148967533067585583677037961768413456341959145484897195610835982379261516083480403548993894298954050194498470630350367864492755629091204746090694513283859330279752590626547749456571951538029529305898456808314040318771706419520170033740159166207127447605409456158865335900694217546350188587852369933800119569444039507329926845002991740161259886799851831909051921960786304060660174743061451989133407872701992271629445424423173053843303711946769042651919347209210053029484651638462363510879327944698686473957142588504046095927025073998780795253423286463368239274140859790778311688141240059575931159033375206988992662589239229577895031436908019714101102830613014726139097236889009421794030907484973758322068157921873847426043360289430293755526082816298671869291598957678614717944727881339757301236682080793084633108276162680913608401520507816623235242082978350888703771504139049882964886937266158659738689965344119811577201730649061757572704115190619754039967013672661045863166468949146885706797822319332084306271843136857861336601306914885403424628711341415682019989125946803428773403103341446404475900383560623287623402201666459676291020837979931618727878771973786986100693704207988226484531848148238589009019070573072424992445353392657884914166524671992604379082483371758768923811935358889205176939723199691188743742866409017260893788991469585056902179730919937780684950787299833936909005037252889602866230588587803246171600753486282726218016366648151695506238407448149476112854564773601893388948228812322896827881234768879761367329142913358879965610597055267246034789901004939374391367474079041621395304655263018384265109883826747893272508265764747196110651995115889359864447308465454063643963866050029538804846515905305853081534650921519057185386636471719678386433705159686327986764549575636465055205911591882718348779706346083778081591010955459389152222954460751786381885148876756078204897427230267638886836508622708484700709965790125339391307054895187929199173149761422105378373881430839022391693490426162814176170957082976262589186995313890937386883597966739977420600587686784488939625059265361219790523067606839640678300778919427699876733864492298587961604546622362524349401958829857914309089610230354782698282651927823695902949830688861315657710302709437098013054088657730587885357953116828546252047945141698183461657780998106263783201861670867842526035306501086036841651788709353594323111416314087974219148165164429789507524949781150914514425171873744492216913610623804153557439998747117627232597665116473617757314244872116489117771062840639628006131979632587269904250478220305380503863965145708202791488365490908271681031417110982629675383037463461996568543589045181506051501232570060598831614777175661734012390176178419723861705759798336588158753912095048031275755992986028683544072054654873187076637177072187319517269320999489021147932300624556192803675057433006261247690079193332679423333490814054934777192472130257348469720562967802057352169317862449680784781961884256937332735488295630600494555201645434354618406667309121133861707127431123378516428187027080170250093296029576228857538243323260255483532465426309121229171787708565555914418597089803409424646767736053836925688918924758126738264200020952113728293644695657678691946159605339234665180472730871749278179574120804361337430406320524387127394026069124169964449597334468476004670882996115008246541560399984138116901358671710871640696244224410341521334897630653100309939203383339253037091983402124744894717025591824581236348993889615965822830305043679425457668914166182184738829972273829545983648638708396560941812741152242587203777158872068183137136568418042726053789055328835289673291837538389250849961337395468750856470538867882951512839476842650342846132609786017262759851208861391114475477120233118314603986633804848752129554643365378228880971894624071917093403575176317377683250870111664786085964391578324213345718136273269482347969325600657271337811425703290280067997568912000627960580527707549361547841954256604750511428553943688082526697760405252818407460455176499366250416165312590117210333227161981553679062105744082372600160094440603699925991697542063733340085773621145108612792732030345344836618592467270439810043627736381121340349976935918890990853742730580541341460121511574427056976960857405511572635246511221136325283823567200681439775688614723958361452870670935277646237482471581737387123492104732463196675503153000684072683860593197416523911418249481518389579345445281613981807207099318999650406018680885478190777953184045672109711342447754453223117593913946211746399422771651430210702671008958454866298222579974901964529941471037172208135698611511692558240896205775380039468364932622117371749148489564446426977877559855227644547584739518167325071694514711981792058428747105519165326006663723464663721572387320873085333648527869027276415410576891376898653869280889372447237517109762520888252335415125781942920025335230475075362151341923076710598650783636426933219043579469296988600987403012122615618388395102321125029984377526440762446715463193759199435782404422214659019564764669355892824561559063656236354988148141897146013355906388012867728043159030646613662329736844852537038572706305883954692187030948591000521973336358370074947189267907174195293900248386219448259724538101053801409470169271950327753691603550552053717926657619536785184137971545219307531989973722741228065309895222815473178541060112662416177498158883749135176383044245081265009864624711916704180649868459945415709689584718097612787436194882098674457695161996482087632782925444920434011435597588921618594105667388921915100152685241756429975063050664462563637623409516680697627185515257706192033991169892217484800979160213717856706386551431351220161283484465805803012445481058331387256948849222575459838311829983323644040626783413727389251259145463913942175905131794664403092990626673471294441417199509665406735859061387186464604338677576403564728551507080908234414966721457920900340405554553577407563446293000790039804491357148195236779731709562444204679779512869646880610689864403365312598288779869647582016934649954161275385025097667960352171242406149585610885317909403255994021948003164026199162488741671913351863871856274288668652479682715224095610988627911876165981832651569962606038224945430258987652893509182389393000223945113870399392521461373129294158081910666485192952168730578637486468420859025331596615496900994864629470128204536414473018628016782008805582713093756677052602110717905941363122795532750725080403748752895172898209893141407124389537218024546599188875086767102027535777957522404530805725051588122984859034889823057419730495805618923033585843389775089181937229314186784947173183456081594137938112590119343334148167898140850298192835325225425944649629239218223926772511484139633666785746512467908498306898874796536623107006684285628258781789380297298426609189076013294175825231128114677709179245930068761916018383387998035161604318452067984988831645097070036596311213318432239539791309860437524649585563521691001596236112699092580309976479644741725797709252671190719584959670478657691423656409401172131756100541728668639956749158340158452813333251488510452080129444798277658571119005120556672689291388474140618544961391426773935092090587875924326451882622613826992131659485257532565440932790173088785545103896538718706635744629699581841762168700882674453035491633246857107965533304002596589495904179956677524598666582707507536456221805206835422426323879971432958021761260573168894404039640801273434488299588058512734102299718381476448577880903621304053213078786674348025666108519259064977309672990392454849753064960192321992557554578103998110651990144509884627898355692880472708351467120276128445895556822405694259732206358428347714982378015316484402800749490306378396276134660015430851051428139341391462497628697512717825622828321416193594202400985706110531724710821853803483914901942931871532189818492805479785002837531595744456165301724131024084163618959859491513035350089358177417761013912152127251092103464636442925516708014022011377918743105420748989828899309546209797530760317236516714441686550456610232771841626308350118051689521123123404159292958586472386846496288729210415926004919500825434969684648591135903613802470025492063260915080692131458614723245051839903259127606813544931980817910880455891239070135302353677001027220912313360855567074182073457281234070366930159831450478874584446707396834860973478952963191228958832772834121992039404300476465203242226737601787237829537979651381210827120214354327979515374843145416605140026664053010701601295709354779274988841334160667892468149106507972116287665924564664795360910535072827266280785286514579936017496796735431334010074961952367023463414285757452267830103186035310889089783584165532024421915035723227789967057908005768393171841805263923970794914114655250530770075447825135958953064052823201960435885694887061967369082825114355636811450414941142639462254473268916419225740556573934972269292518255918319410546826151501131800611098779758579284929730431042920288158450394656441254878981606475997691787913924306586694280844464880487643936743315387571417173357039474020953744648645191720370080498624366833399100382574229210820665334989618584562922517945492542413532004761917775748700409626073537061641567871990770219686697730595464168682662374849113013755815785426316569299247958399165092677852178816420044808811653813143262348746830922664876200313617530815717332104833803714139435439566963917352722291251665639168863249310658963968652006240675707383721543267400055006825450435332599998761540442178867764233146718917459594900933171246733553708674675730371619824589596197945295853731801871598720192712056495879849599220612260708761618122256765224702391877844583915802150611959014605909534308009174821140891414220214953893433362019625247051996902392057586142129072134804902974173946313535068075736243209258474984559373521131063685698851485434887039092676263403610123084251929828983878195251582065824342778401492696151940147161938707732462514785702618408119624422886741560706634357424325883051270912850961580924182358552136980073125935395157815721223674551394049628564320201623773831928881967028862331506568385456346114237052242009288819374011562064249251240111997589817873022388667390542789582895840921978808530728765063674560399430281630385613945917843826960733322349514575784894425577133459500273450358027856559446228100112325226389928991833749301555061124330523947679015791052177387231319549044751669699174450165497692962818815541408478388439850846169423637591415996129816708872879068928193389626009238938440694175932203389440808569330736358010418528437256242792248900324388639762127840549280147407991835029392113903108422868193370818118039527882630096433994691204080495964000900107596104668996188175634803357891709012500092124736580631537074604497441132380581981854206217056507319945483143263878389704554481047208315932041019412174347993763427081172228989848607373450884980134526151539159700068324821158862476776594348579214298854917990161494911016214268680113067022100398973489641979854931688371620606003718316102488948660353090433069164889739775334207399803541351708899988489228025291547832177372666410725091295748913315980540234954158054898791878532543244440177299527913573199749657763029315945231693446591051564309478665227486518352713545217916853425405787752835669809962936890219721351140397416190181834629607264423093916541870603703922993468135403145692325825047638044422489359986655773336236624264188898560586346073267207927048689565491141300867076476015989901396582937529904858951303359249385914277156168692427496857233747547443621077318645144267456970173539557227595049402372536986052503684512025769190227637693412690560105795730251991863407364640415647644540284560313851882011728454971457020043456161820659701520027272993904332739362451932068046945796826757275392448968782301102651806228134735053551767896778941089047272431019163943194285813546133201112910734958249102824412255930779963464413160576575819724597927637564640816895510489699101277535243253796733739726600908159388933737710446996191942478605406203337221449736438620203378926437940871370858517464717619634526267749763178762258883624031000900801271970009860770972541898125599812702059009787067126667352127402950961220579958902944011798670216312759481897370725824135499698378368241050358686633984666940167108748420087608023575339947820952167301135633287371015990122180574858276453992481999143549872572419711969525703873050210002808210528720670764249681283214650672263775877773137765628588772993406918043451715792115880461088731965581967293757548106469180236949809280436916975929066185074936113761278790833872731350511567316643103132495096630922952977715946438503438335269988824770435468447200736238745338299660975124128252004477105987714183570115362754392731075706614634092145822138781399140679808761980209647450596758971784179132066783272296311565395066197794865811432322116844064374272754163028327159693170612728388018308940927311296914423935650923682806112662379799747894050081303863859904765446316077973932916980065777995536066835162787005587153573383347342688190819813126922468963603460917590467009441366038391875386765983313227111139638470240029371928999823649230647666631908846534183678454499601388526056736995022547005884837391977628505077113600479297606806923087638064406504925890757239926995345383229762149499620261996843631898331672735990893529035800108491261802154218733209278115360921146678810355235475356017167206595539187508188017973660354357573195704508516848673728586438406393468788862295316456583660363046145240512331037698845798554465277901325724491621716581118204585555578114828174437148497402083565138403087785510014488298610158836935328258710288381784445737240092425567235453930009192638939579545409693059441527024355564664626605121266917977916685500563982348623283148057562536647266581047522747219296142800543445526740022802331118228453289435536012944156548403329595846811316737484027631589909724631940094808359524916397391964762203395735429047519037114233086267951678840785694907175933020082452326888249815485812493174284039747936210290830520501926969145107356911169199285409291014557349685990123012531529317218920267418527385942919712313341269771411373829683773840596580832419901536465258208209589143956754789140988974840158237223627301743815796560408777060433172881212959615159435267517057296028664769313434279011600203888517135889836609660648861948099941445635247773116879423218807701368991983165439755772615450455344239672642672828564479994670777516935305228097081898528385324981713613850449725745571797111352421904223660372979958625201765119010455703986872292663318158865314957039941860350348603038412012667462485286923815495727002721975421344119842960442925046137739359158721664974446611741882421003438336531543387378586892400930397450972893859321219847855767630640625019171747629263914580374875559068255838371327858038064963857781978490512270746991106564084228234225612916108308953711736592218656986587396532946064396644697130541935072764691767417819103972311799525834797594234406999381199834109611586817260047854680919746230618168209745657874682014449928314772558823664637939848483178868579148309651396190041783002562734217939487519457858720918048049817995541964259465437134102574909003658136056459707917937338781825434570541480233735877167985369182643806058893584064335607861527834590682700265597375769626282379939267085529456420921435483086481619797677232970644647935401683818674964326820967381713957721949084289222219598912730045648200509900596743983207042964292092240685996183034906668685492882336838813371887636636236146236618845753893674501045262486647592962506661653156165002079600479823664663165248275790598469228120163829464714830655678616153918906371357626948947301121052562671953987757775352403395898801086264552468166194915784912845354398918678100579515766737778720985599975040132845056396817544276938909252116900386338162930353451112222335198570579560458286552032757650925975189874409672574741445742062008085205922421287929152882189109210170087968058775705210006967172917216957278069136210729588928778959532234618150743063401486903518660198090083875406895310547290842594754902243004738324221619745566203927487445671877043645025865325436107894334602817197821752708181516459022488856587107656411986325821866284766308235597663046512773023548441044742365458002489939139495438360226404105125421873611506703866786398535941197298821752103900488643564825158447917001924587543882329840271547696403110936536403780190687104809846693191095751480445295631544836255986716498721439383823095684477909475016186759531281513039244314662511313060367760538350568032021948242479214522657085597408790607628898490862478523341180557337837915122042283302454936500663400417257236978357509111770197024054493352745381653425844070464484593048208531695447072794916853786288386081403645681882726328042751494373159542896878051986980358770947756099227248531507439022215130309902016728912337064286561564804769492035589011724949685190029012839551192379550394878053503871471270239580461278417419043608311762318362691356996051105608095957985162153126976084559638639328739234677015039465022873036093656106635600254228654061538946342301415401962372739523552686720717467305489025740985647773509419910613113325669547475830779428625544353380459617378906899115467341677368661691247082122930806282031967189827659455678816700074333406365897565570902527044829843463447483990535388232918990727368012307271309840999257397747465584679199873167438609820740509357560638636684694199217259607261289729783651119751479187005760493473252091409698874119804487941939437057556565494550255648591492184638037354940158446753155956107334109948618527485819131414234699913690065886542911242869404371827859644421779266455916374315107134178681548436061924747686134454746135433171612782072329907896668229925365826048834590162107188275181181619528213744724428276887226860303220785896145600844036309787247729997624132446322824768355053605550509873974389735872413371487061944931091528229134998503862488757103874460209949848947616939359810300808295591883906000313571224140952193560488489530548429899840500910254157965126354838324530451411998671060320064302525303495987872233172869853003830699510373537325830686741410836040540447630618940118425594043549871978872033002041052140750695839940800169471654475313667679591407608011625540546870459359096488076661269354240213868539570394944768192443321603096958094565088547153018154528780312254227202756428389106695852246505781614075621743149024528523573445345815325875657734226816275007417463444765035506669435738975465550336734884440809231587820172744329283186653746496251967025696048725759956854227179776430629286294310282810203364030178046233264855026369823727758682415583981966620247507720413230289634882564447655197875787803625149288763469639857045330719152738924084298275964554264490294589378398558496764394871624703020233205103711374948830142026007249452598870503607188263569860343718640617657587998830875221435493696358097600677100606345863748789479013249240360974596703791763272142458149715665842594286048987186341798716189908170144361502203759843711119374805445883277748383266504190631857980527636152893051246613657130932577551200792639897176219591453795585922907617076378196883932912000156305284553736350988134793171581628542157532353582344445725418720080491979343161899548132091618625185195160773661460083865662225055039447894357529126184091752289325602482040169160587002262776069349311107658182702610956029111322337473811818358089504091111497563695808833222185504121785450382898055717446379397955215199904952314513963287501420381198411198822897212142685490131707535776130370025668490454335417374461261974653377242284470540993844085444050204069467609212561323942222311441693449560927212989288871489348248785886870878163657399373720331514695510414635696452329503357322446272900062962116575064882869045912031975045307028945332931307099645697517185792604756591371326444276581884597811173373604579122719021914056339977817629839882997624438955877437647106587565872533041468775133581667027193347684715195174418987739244593543097253192493291659003794472502390785411585002442907449442902664079476541799293185872207579878195661881501532601937543044563739795170355671940116792297654253516586668588031808880820352766407437834965914830947175812411897798831087444742835157851014440020890501298579557574000089475615814306020558416893929967996667874656381572966160009411418863907791188374879067942896260560030583237487855690949379672409430279811076336399198642035744100528286084782163965018822762383315899774064435179364871699237100163002555204103844684712912738885391677222786930011186059200304540890668176248323210385191403785114679276374667102616837593229853895434633930265828399326967558876090818480244098547703232861789752288502073252329941467582940106235471971797219710556043011988537045593309910818608481079915336769916024666590790270492783503541650900165963183050712993771953097669985817826399148183542015676206643456175721490456158610194294909296898363528070091110130188464678465577360656263477795089736350108035552296869038453979761151856868016726044689682604809542297647932317504557798957272545560793875921732873990931265389435267227546858231072652944594946684912381472826852093700207824468051322929135850734563387623936485451381387959682678745289281108719621146082809273009503208611489395409927299948211161414944683044949450427989693251900276755937216439245102635614557983276857304997199937886261998663696301817254769317615635851879875229446034772555296195798931497672420870234470791900432551432356211061644435707752023867225226002625682763172868321553479551367312834357769283869065581195672307876263325862173865627143589433778519864735270186373390710222903145867873446635838713689487898010100908473778138580477966783796241898835926673044944708003522786327572785146624768955711610329421414433643585829738817293069018287988846098454307845057046818314111984336553368016141633927907307715234823345086958136270982521153027051395643625720272381369826893079993702472462673627842239373290665357567062412198708603346830468745951103923686343672670103128358037294326108525383774977164477228210002219848568743221437695217072348661217561005473975914866256688284666745313166060725024753724881614245061694889562487910867595023642743236957902269637997748514624103137738723578317369193980847431474835579881717861528651133293347618310639954371645189747305218123634619189857068506106847082092954769358456129039537592124804473711441371187967725336241688871659994815718092464299460695992890507077601605845111035769295910119477084548571844578720838828085749974633551663925405865685488954775755375035180379216945148118759740681477552702802476838643007186686780489069646092344448326405424903043081159452154319226116048896327171215180464406767162711145949085736323399836573013252031751800349952539114360931307336685232950356711842728206677593789730843574980647128209916633155396810332749052845453134492792726203068967244687562396423116356494236377419558157840030703717397185065686723966484799618714787263312023750714722989120349494616090879843465713104364571486288167378587386925417829153570762477070637742982694009740714111958579097726828183943648283709569906544594827052428840006543466434851311231368885596351542059026049488686285275835127654847907112434547731337799375118949594090996097652870868229766981356424675622923062082037640382199401827265014684167629726575684678940419038199999474222897488154126123121168953221140043492223328405472148137473023337977676275508953749052475410329920889638505401180525844195174498304183969294804855296625501784467938969381975010751918946611713071858346725973678657016324244694918013483841193481786989250314287576447738478402463914321914235248483866204837627738795041037785670045685713527848877747007472316530537556102897018355827711781329613370626558500366747896801560606066375824364765800293564651471700508046874087894031054198217242456500185877754331532484145512272618005136115996158116147396480383859385353504064411281063571570324567916919922522496259526106774810749239356282377088761285204538814962016645502827413247189740313878722301597901204690512074267223333940362539974470320595842397621218530499980407349145438382890343084757935770927833711204445553418970331006926774159863424522670460474178486712042121310228034508456981140830560199145236789223561870065745661849501366235223187382878693303479629824160090186939653309940303935401913819105399009499405027529323552056848126576817274303571531555259518535979214248851738197768673740738869236494439979666054956295436679109120190940979837053840801434225475681653661838087682923064480795030461821313216969704897011131820640346243615811697471826916101952082552489788071964634502369479499814390083278906433648071095389428598352786987214265068954182075899259021876684735830324169833927779710542997489724456512306086398081822115069852073985234572459622786756389410631961335992372914283780311792432078078377669214591089672516361996090042730587410789645399392025311360733761993676634691615313178619940063294791496976417652181360704057900692365582029245264827241068421279580763157322724828295828783787358676360044706684890629576507316551077726976497390560972107554777223899201348541718370535846274289764441599880064909622061041677118036100976562287026741132880976411945092507385843659036728920351470139414940475328016712349792036371431610326006104222635437086777712817337150223502085562284278826137705807212191164972432277147342036682111791721475050058514512053926349669024966502076449968463922966926671726344890258158831227931000549168838313270852370739242813341344937964990005029689702938761738829305926069312733928837004084392066946023181800229685551647082020465520892298713313457520487182103130197784512137380653280134826466051351848280291310361300249127815469438057476068891518255919636229458254362173207790208261138737306174739091679908071051189453924157018996940296734399730253006726010994770158408817490637049234221860518890304894030922864996682938267902627297934140144393489700961805348072923317428858919060499942515557301485170768300582264785746566616768821849072014147189996191791638324231607152368608348483704875843467457244413936241460533540125540838259995694883920409774441249973460487624281683778341990671018315775656559395610068611989702485056223418872451697381164544211392562602354249597051577803642208241677923506201649410704955035774854339816928619205236414669884130836543332830571912667518910005081664170325920666472494892712951290008113013003597307480837712527381978186104793071702113977299460996815051288753305403753442530591461007439894259923978439331880135971553050280676036511240900874292082975883491453206230001948496233370556735262336220553290342360955236351024334709698365815245742348933615219824996795119151027876782404817815834081346808145571302120768799592505457183517877714031562964774546616778733256993123201438046552610751200464596950604785014385027236328063202179036601435934346087218359315663755978046849207637866759118898942676030225814397994662991020261507929532762697351471772454924695661927656356786830363968320795787727744996248195320036436777562444212726339783681846192117004683716443785177700347736782619658390956472461179996874910327033669058708225204632983285791033471595294122882835964100444468438195720041744973789605088357902986343645225083054425086328149181650072325631874924263596046497466819939944606172221341087348417819372573962915145392506111793651331232376806911984713832015215801894103515518605686536529194806884374605832507743668567173859429005858387920269098009049883990191132508775791602616210618195960193139894440540626139937636527989379907464941782377358477166042649943849161815751441788846657207461323080641427522625828822397915389352758433829196008289059686828111948533781355983854769465662797117493840966217045271248594802170349696294039115447455301332067042685205860150231039393986173486584567820288665114230849948464142289786062583759324098886402979735014607765346201173403856635501026566823067169028423979943679116121826550994066996649271670850167630973546047713356229852844535615662207951385748609918989491065224481313528488168316847887951321375490071542958063279438517017169210207331657236732637487234620863147356451370503788666499539260887161216292035220295309077951779888928457532597121985638901116876822390998625890754410844976920383537696526756466182044289629893974503462518152273459931718196707941986087856414241744369912521384216197781198158673810961625279802782423795782226455835667527187977934525619107112745062034599989051920774735925122402076756149022202339105165495549206644333651946511898840360352996969437646564174441792664552982554288534543155294619326304037825086686271402881909450200079241201964812672131444141268726942738696721265265410498275268138402492832557506042206943999230395861837079490044126812293019142093173328163856685445299042298199703658139521204008723548109288585732566984890966344623344584758350543841970516710716329017469643604456454327881689618818967321716115817658573210142968312006234511704970941911492939657486827960509424563347744531202744426069024727607278666124982948996051744411395409053348208602882160023884088142339421787069137194208330515088058279433155807288531413694736483569521733198332080388592936595420034531250870837570926672184558525018162081891935574937155010851676963032803997087435880554175419540479754077719994377352557721141586179966930994988841536203407089470400609016196082120089606749416142144498744604342486521740596102486878986261260225449230252823962098305325513567587413607105765274636945361335249021623702971136499942166231086391679050247064572282421963108847670543250937240632979455020455677630951597476211586309069433482206654710956379083439838504500308047300147632195222886796938563568293659311819013988662934652830113765161433349726004875467940754274293017318813167625398633764805930268306636922006518460124240011442678679137964724890029821907682272251380448096127379770305561713313945927016821910959263159048395277701287729559780563261537924751910405192956920668903244876872601190872358662667032693613031540849167626969647113549321638388580694189743337743695738475985785439547814425123348250879118700822920186388416232698042488927565069156229833063748573050491916712251516489701684598858645303114046004987696767427609314869006828744173762463053309675546272651754011515033652178753294117975992057616193454724035616017657061040398124159909779653153568018114064389869683710386468195052767215547049794738120958694164661351769632977807918865530223223960831000189206880896741957107196625997813604665454905191058446352122585308180961656469614904867801676569575320438951029076803742784612707881822955888873113443219035870460542675002841927887745940107045363982591870292217948075928275905513118284150862936329445762836082907757860105464943450985823192157700653207733488549230257757798385866564748094530499119762092934791978848393297813160544068609638996020022166225680798206432159974223136159340133617650935330107928380170742494604857911186693203118643970819338264814536613389950883830677700718386900653879766731147583465269982126100357656477929140462913018446465270438515353538759788482572138592198955114225524978352974984841394029652591271302755999543073914986090913708461463802524366394119055992111650974337579155695345765721016017968934230704276990565500664228140645259165047853022300874735313158560334508502805632437609094153475818409483103730045431416355221038183767837661376096593838801254361223195190012865097661753134942663914935151418076963445492710966292667942576205234383806236434411609941044753142196943982197026605684638324878592209941263572478415872322474174146992692062633885245806642955926515755580464632641968220837210493105362306026369170122395316684894131890491935940423214953467047620486643386910626811143828535865791067519408079380790399454288834974510867246386244941380051371507926384987920243237038685586321550152290316328835181549302779382298734550692860028622391311228812436177525891762735618456785120656229979154852405730535021213243395395189390956873511243171451183833582771579312419251488474965458801961625828749506487244352728797677023396652478406696534608034914343209602644428235586667542901274637632829710267981494597239801119856843489243091315347665800670833099415384485690964778465021949414884549413649409365258013768914090248000037039529876481004862100010081734911034151496785743433097835388840704871015283705492222677866083938947577062092339835571328539203680299752030654926184358888971804818837460409535044203247257187602161093287307948067051618119993601346026499357504578000338031073108145550423535064674950098610861772234392569976593359204715761240385038740071341027419616274078939428594849550877930643835814704905006712785896743541956198444037460527844023034415349817836492141892700736738185235114324396514135242462823103713074683854929869370614048223383214890765937772126311737597760287648276815178386866236624947136273238537446551858972043777928382054757464106225354503948856235991286309133257032449317975811916802373949045481156595938078787191961802786301550028989229586151011350504697302618038053230729071388014181522839490128232512727757293553775227695372227734228900338971652339942942265103828136315579099758274420780400435515936468379937824168501747739253740390416084426564344555087099508733504543752298339293361859323529227448360653935065989032141257315386347222326690255098850281377349918341694907573937891076356155752293071893792514569297091438579281180391005579510967536225097209216555420764007432267980593557460901391607577460669851339866166580522246245774072035105022087031792159573386251543596045509917665127725201231512609241011065588844254756395265518308343391996985226408633701693174365486338858788110732735968109898962035455619777405980240188035677925496707192009784156631867067385958645012689362977238664154409146789757951641783440694619247777415644851421441428292182160854444492048041594013934418563543260794316375193190509397482016200255241580766795249101793229198769735929622683592214126769385498899496659642943583497347362233577941347978212511484844078080844969473435962557270757279063706618074565930576246043564651687698978358174996592364515176439767963639153778599426280241471152057373649223423563696661861670336048507546271524613018252366009532525143424861695901018130724514072641689310915357629224061660601710955400243305141168651959120622994128924846813603393028412293321056073535743683437636045263811843517540737155119258330026742951300255961548445047067709431697840582964117020536550087545714787029739088959759890702071301992560906586458564340152084088866623408614582808577960630518206937063414005142320944328322156329258622649726445900423392261539280103874799542793275844231576916556788724383287005692294472223652455158508037747718122388754211216056886022172121152425175327194562240303581505718197499842312137708556435497999882222669701571963159378721429627449728355599088202391989212967443308857909269175696966086426048754739917775736271179296857904673091746080811892349501082140603011213724727196643761320308026557830015809973309610849252762374802123396103476422317489836364149399514144798184586772402489525747714033406848939924572146601143374973623992532786829683611417773358728162414643762987880223405582304517871506052715241753107356243612798656721015934571464530459505464986858127468296743640123957268059367666498592024335966619004753712843035808931831756337746409418019343748478816931958735781079372395029200109324866666596533620113462919771894179473809256520026419872678513158555174000480301875211129614907842657441963951598343149124501354135330391327280175674245450070996828424341486437725826727318846944096520652675465227033014889399592260140581692287511191032440016163464269765361159435860141769775288604151751543353247329395637882428633516628167115119251176413891799108883647794809862921481815869789716070144563445193457007533389004394808504673388234865339831437315257820874665477367007689082195747763052794125252003988959609947079637391854712427736349784167794394414776614247745724198664418083820323716299486480065489059636739479930913017908451933134125305707291089476626501424377453971304811495934022807741407777232217760051867235485561990480687732975197764256054954867625195147650637662261414720708419767081513743953175433719583053097265540780781360143404343658767426467138345553133558983125279779931816526835753768436577508786082268315385816344054082512497189894703608336842364323504653806824587140200497000996571244727001882367767572342688650051385792733745987749426874492951812621672741374014794091743569097825668085642658743181173299630229202006108901482925289290972092974085317219274255352428206488742189230413623300676886911463386476553468889759568504446944558553096751890288137115939155844696816191804890025666927132215163083282332386914209270170285672048795842983314043533652294852285051782858304843548002426835614549267401800897866496226374224917570192620949344829738348321540051616895211813651083191223678602443686982796775107649020223267851168628390513552609598704370028721108516829526635848823817667354903498965025182862495054441599457362746759360502073565233631994491076854515854800137593935966360244827793515048415325234902065196865383289420735749611903703603303567057883739139025360087051686399908345648496406027495293009506916006164808337576910441391374698392291343300652524781939901987846747467998574320843749217881567427644384754366277059973574982256908024449624011082636369082099462332501197618128784862834938749398069812847623468725306152163607973364061289776001829154530899559531515134968860842326274057502387519701857230308832746978279656078643029707754847229991807884068579493934214666895396858201337177728604525509542356598202247029607347108993213985649587310049894023072171092317548968467429798260308230834293394842840861516070343082860861156635430656663560186941997588013062276157259985375115097627201137181716674177869283070578255343548124284221534099684857621933425735964739106290966741696995520383040972213029672008467676352303899948289544165770413814115994089297997161294662866402184110414917921253924948049367391860361264687141350196336955437326052365399452188268846803926843981770467111690554642968497266368792533047354981262075299054782548179918567936223779342983493078566661424543980541123201607623539647599076852956411342102048617279688209961236284197352233153072111860242643567775623583881493406599885798762630580126337761117718183111905592703852545426739395000896722446796248461988062797752465624429158707159304592416026735569308024890643718271581688036384338021385403156090604040236534513068946058709247057547549964009328997531514796450107095325918245866005158370582072288311502321239584435521583166330456338138042982085026766110984178786714325386378050357858604373842831323060571312596852350300563421206294829224473296148661818701286553377438969040320671920393199263471943298046951005860841090395175066187153704572912085673562826174816373775029044584396583253624589054987875061722319526992957976270935125995865159049361092416684778924110552618790412903762949287031907157718365873892177325959085941477922235754317954102540675602562070065240264725884933878022970009737907896677051459252310576186099993552636595215476968518084602711356957046506313151103806369550124290913703030271311981151336278291596698784074218520726121088795998179409988799579219712132057322320025822811507308482512405076834687174646747252100234539461923396005330512436494208522260533902982417936463086477322632901189934595790191532375827607279281234242901860638487696450020665217924780594078953699647863073312115954857052124537280421855510753494459267884547996911504577927603154557264438474390479933138664352952664935548521636858043559047852082706235972241007928389002403387682693223132086086775835066405080566515489723170042978514737911200047269541521625100259214795125670480321986817232839932618848859915874355728154127339759203425657586868146217583491395133137601102818333315750843284870521425807971177139059364402928777053585470018036915796438210827738562707771190854166821868780378706054110644544104310170857199343321839371695503040451235685075700361354706976034029412256131022259016796075205196531714751739778586473476608640397159021492102291740144796963632099351302034027101811784139573653669961741191000809721285805406338013026686539232887677756285937659358029618841188589241255371199267891791272417873930860146599281501730662552285234270949951982504822325956253531586926561223374746428398555611064834015722402275985164723491776885065447386307372001312873354751391799257749512008984452884952474099739308238951788161927875998072805353376235290374812533368023764421586423420643527221853980770405609868521354087469397247836917806396853037072264949806936208470017450508539359132207857497421093566035679516009974416358887586101411745155506359142152417327126662804572184916332366735987098698790603922201581813210425265492703211714881102106469282682360003437699665873403162682195976543291458585631184291157670898154973339953841137790753895626297942760544088475001710316928230439864305521756590541505333916719870553960673094443743780715872402788672514347685104136388264588897535507881621033113832284728599146780238823919264518510600742954274048534525374571182997304906273657180875787972338933232756783701481700945815890832713319136728692143236204018462011280387456700966149665115817299156389809447885554256707060291446441799312435522671124791473011142401336193287495171713187502715088114043041266262764458029806103386417193632150978562891624610144300635188390433646650862103057222540828158695991951364310496721401993757847961635474242755492922539052546462962931198819956944107818406995444076002041909617775015249398840782505283441697244233611346420512953298165156130678448994132606272085197009775665872446454066061851464732587689131997800939861359427509657275158855206906283550881172601040715010357720972474196279878473605669270158862139517921031400522925349524055153536810887919690872839823753794671426948144605764089458385970309527248562583465201080602656119279782953272245514551002478046841122987630704367094359147115087622760947717063079913440921462808916841013670445715078538710371234256348984847747362506134740983196634474320596836067782834349106584450903681482396075734057736039964558761972671301846527341315152805490090612854024356014956401226462637349412090269812140724755554515019740245167354661195504244271187128321758337457684825536751419663630357396863983240407577273914214297943198721788539801774225180520802500243115133499726602150492544276122552821366290931426930857794613457824887630931965037162087434568417602648366789687822191851617010215722522092646667299487230873793509163461693492005257375372108279041932576245039326276209923439499660923262239033909376896505601236274690558038018529971852297084968328485211072121464716115920731538233922843982139034957017427173186269496621906567275729045005045023767587709923622702930144742596945739606696793970425942686213253114711741665601723632303910254729958232753798567990386801649787278924359189492372731367460531024641196384615661722965295279370302326421611598890315290896800650544923518593672104081489397690599826483262455739515925365125294992847110825178095505422552375031125513123228671402886829984566035177930643326504387624350850144942777666383527693110299951946015937629279123844955825141376529694439853916818170819857865295997501557806767076968572461373666842189775951164800560546753942897067171716401877682102372332391765812986186749927644186679380061647326954057264533402773149692695098824980169814522770324161095206754178678779737390528951618960672937654886132247562826611159788476015850552964288390398097818114171763892904671703616035513956737792612104882531270786981698263813493762991342609305502284612484975604627896865998550164939633965705535881594395971298706204360793345543802119998808844521098889522328859458813497826795241806293237292833459136408441075103136868997613063756326776329034555295052721913863493481000341283953452203648250508158617128861092337364047784350204158546987802090675675119772501007229124909762720675891277026992229421006717658922241262232689540078906075235356511589121035493081867674533148729550742236974184821190960653718927563251649187773143498586274656793059740805955069707287115545695516727870119346919016676158797617059580605000334214850724294715603975289340357622539462186018275300338491366604250319842445595477689839684201836011574571549707103222751216109680228674924256919840171463588172387863567014342950368238604043864441464875218205405136085561034910136996158551679942466767337005756319525142654077067490990636456202293698403777754438229871735407222874444542802217181266830349498652104623570392885422151236336201807854570079084248706201987071999976205542852000427996206364614324429244782852801877581676355276380461487406490262475096598052290453647000769439345219913616602275881555575661108217800879462631633745461142702833959120860886635448384748408169447806817849308206201140740516297000789831567416661556861100513146489384986637272857948425630170002852265848730053432386639154131785972102154239329854816858440308907015162760330457635450473158141813168843544191272203172736621950373123711980215294480061470312310512971791420784357301860455193420089252111585792908820383259658926887835638196589209279392873349572928614765726899325590888350671218597557530739200215421189417320611621299756203299211126668149681956847174013046257999903331841501338950733158322059655110557758593480455920734797662530535373369206249426207011058874420127411279413744407100423973680178247783846994978277208788672893803964548301102057832199727033265655094613148711103126201644590941932431738353096501967980723018268365666602440884871659467850453181910223267636373355208056839130081573651745046091094298140479904712926984649759280238202065078501924525638624918089583696014205379530561295822987175326702516310416949058156350505436211686500279317336605524073390172125210074974663948665643089828198229475181624296343516645187888768272410188731004620990614377735048562763687482960838083840720131313657744250126887459714946689006227269262822950034197747078739469931786609712297635327599429310901891773352814244065074531644059677181340168846035234545085734337302302983005049011676583418920736010006511716902997218376103546413767600448966596619277240053524845773087589487849916608334159858845798098885309857257752989203172779821485602741479749759493712263137887808151445558252574661651442705256142582564990844741898781731205863582924437416412201325328529372726685735724675497511355434292071008393921423023041393536484002041015311859784492978137016478347200421054789385388662435706088714196235688385818363485845957178312034053858520006793827322133641452620305920684578553745028435050367044928934625513710320151261102071338612730624492935864048998976931226931195437719920260874129524104999134852913846498810083671010534965114473542518129139758816085384105476806716391077469275445610731886260588107155590156445379842022244367903448364734328517056793608981165575588202455091031666095550561586819234379812174752930202417817564435799039254620564691300064852352918161725528521440572923428586183863400848748244894817399591418267103088407041577911229817495155397102670315627952295634381035317299534595945728383742290629272888655269565059427127204203513176831349416260398125713238866102356706803292967132536250639408379228019214327505542364843700666638301670643498437938608253345271709494961647713292996667271454736270873293204810583222809237987392444422836936356990174671452718593081048621356965374561137504323189132220891958270585847083329390865490810141741359355015592728393429672324119474375368185593901364357662073887315770600667493786539736117134457906686655632479907516814672447654196026711920098434998351325852202597432289179955715240734274923694412784675739334127422950815399073600126057265151082898537929803642107708373891481422982618739624299984818495788969104236703842736135170476798443532810664378847767323585077756612279110226607020642552864133583528601823646696680227081202147615425853833945152038994908668870472435278796143109246655921822963011347697771489012459249893481837131252687065825910128830683464305295085543875887064671331168201919803022770726196887174959568661664720729362812095643664539133475836934926986274966421137990168584990940799118990667917434610542968527623709673262445457441856142534372691493279302248142692323260688973449567868569183371815850971507262543465310528159016091433512133366486764934272391513094962936002480412976250148830362296359970362951242613079936732687642847065463149155083320790302223002901112527673706049157574384720573930066607086505114692037391657691640736741656432172443351092229891520521884919168245448698497023819041953886312259655702845289278762745166656905213334046718726950016662149640358450566729991602640163869682182884389862624543032847455828629274970561583949847195117860218061107995879576250641632790507797861904575892698642791703060456827770905327825560964705101765769563495092466035313148059565187045854577216773767122590788880052851902114935349080575125933456539737368505019741871336578467950124594616497703381787978098288030546646829842378572219537679241454594497148234369732686754399182235869662479606638705599681378366934934922674757451980795442727824166469278809537102695370458020261107230455974022653047492016505065331975985330204245439404497990729105537392052042727981654001144240132442660653608064441854814940433712035718524245734766283385200634538256906447570182226810251483277549605642431249406018586271945929887594614050673873260033188111650213849515811849211377107527868632448172499326564951392590187221049176037839993412119024333266866492599233239902181633664871844761628510671786557690444723707868184739517343498042665582480212807385503403581429509039504789717262597814265744869957830797565169011813722407871344141741966536960569913361974598480113739876489162927283744859222151191180857262467548225960737335201658235670302278649937269199288164649594138664299757011486924101411190217208439133832496832368890362148250973366294146725212465328564182239230928341961505276869600225555525065571636511303407828654312855771966304599983430516571335388998598666728999717454333693308489406186611980847761332745679579759592643076298289068834453017450144293619122365896334927562913114644712839994409964802282010359664404226157157900034130430615467917364800270985417039776103640212217691854505840064905737673954898863380891645357644215380608836121275668684072482580753889894497619673863202582693542402062050786360448788921868308466977361541131559550992522061451944367896693769078568315365557245433593386162275084589331813283322909155672749298620662398820835272923446156986478141552800632473514984194080379122768811313836873049302750849202768120153489983084049008304990034600258687079021863012836126901698651386789343701702614593312888586638198639798799619908121663073832105364153562705583721046212452392681080614832783544770699836787228671494161135309197510277771055047965123169583969598878876873711339868952044179270911102137082907223916748566386122832927799339209745744137881196345380651583327530820821341896618015835626213172719367516917172525223634388459285052357809699172051999125377781397082042143208608445865381338312037193263078471732670249008908849296512769296693213165662408725576978014722238999414815120764972226313582583534926192208810715095539682273623318882150257378645142146626158006822014518663970004477840498211730240065564603848138794802830385678644228291337175152448992044539100994410271021155740779654663891426112446557415946114668643597125273394485682598517790705356328022091156148946120399121132814950745346448024534014366949129336058186546539124239263575447711208503281091995810084956066602845490758047910619862206510481469086968850088896330612447503546439069510760723749196297236988543505400178000528718001621131002381033202993289798862053150660154321437177077846555287114770104218377669224519409371089991501848846983083472825808025811100637974935924687580805074281249621015156717587646497914410845687649873917422412139682866738644174964602586781194226108406353584025375118917047551897696295462482833027872455988626139966501950432128935916563183482406582650877400667988236590447150555330250658444340807480668823652161196237335626231183900001509897521762025481880647358076895769809931192640836993049315414956164984736291844151075504612182186518850741783631701799430219163085987120933573253614412048165626005656493652344533640670718290276960905973041417552093942442291695501931958455679666908293464053975162600449238510617849861045365668762199161171167858291088897589901809399486771486647017984252178827195706085512823258144510856163690233197085788530272359962282532927416680461527836045130711867850140188891452126434690671768373180082724268960526652559235222801223696990800148594887568338351539156342929792802490484539720225720397242805984587440311471586863039569077416780779135503984055373471949698913012335843221415836637506300120405245858960381554464729696001878301577648602224887693833992572237846021207373699560574113823714332479814669416627687109626824883855072846135390860268605406091598567949490193539906595304727858285824697710547459889568445315167864076171821461373254616935095701063825687122906473958520468492521182837330753606849415621996645872782547837594366327106518403323434007919013132927826600551686738738490402443390801990922639217333192491752967794936679396053566312364825741051669306780009094674738924875295159196253682253494935401588127910036933193012489581353359579831590278171374965199133237045954167549658660290692742041100188712806936120357873141086911772723699135021994756661994386233190165465785736604417522742255660779390498032602270788848970748262423222901218742538509634988221625548060088787943610602182028869000873333006857529120075361225998909940486964515971039989411439560286912444999161859332124377709511466273735640616094905918392626666215492902156427350370238725960696412313018768804738419630779874409727593282925622168315232077764568622474203095004753257137892931391188966878634261730814239358934340026921969689121511995561613098679549324121766963498935712996415082828049955005368965952394973886123715382975899561653423798301348213324139882480627295175273104721923283525585849675155388094223749817840269351021490884115129437705405588029096348915442694803313255947865579234648029050232242466836336692860509083843451642958907580297236725420530576511202536234281168828688044340847322401619594329179020662513783873977279373982494579482107124018336552545621782647908847432516667279797747081611116829753515905843694872594815690301733228642538775678090012251989052067598629309875227845997225039582087204156027314875784221352144180567420726947588865487757184377484724081456978385640065573442946394911758880545582464206213597941124776394472455028729713122173106923102617623179035433425231488147485161706721759471390541679379836431388009577041253480507683192913731522868974266595078263254742255904498543802589428348366452484626330778311319461182516212108987769478966292442040477630299992540196097580335194340471477231877174278213049994548023020040133610563892405419180725918587945666461078606251990826823272504685313589986639919743780443872475132770823152387015969357891177803064794558878926292486049820385741608415928693413105594873636143319865470085430842335702123625764674628680134430293145865670390757718283251938006195792915465041743670258642598784543454913123953682469121188888653195195578149592333479051869174215786184742502939414166442307349817755470404406798257775085249004982296654698779376940204696663808188135359111002058754127131272462443373682765726692813672442806953891351248897912751246409793615062960662520824096074582510209348333589459744066438840920610437710429628713045062504214734717983760472805867661587347421567243384717038118507172950441262859130079290096177991059428197163448160335560735289319328201129336052624532930575496238249230917577946738395837161774000976815915779881793693380806576480115630703527079321279750911147075404702666486256701202777220954658108882044272279081962182383271814527365479344840387376054458235540487521018031869279170988931531808817681133151727842265631236503159464131850895433498864439959973886338102766332751608018475335123011111014734027090171336180631704599210818433563857264160505930308370614429747320276577353095772783858780662948390669111100458931909773672655535097796938647575292634120582051023878667197169498421425219067131931682724290820243546079095513019183748089082370210249012595421305267952654317770355468186510406101337895475917753935385080304671030906478891892633274385516384396466535868656987716568020399532195123312955608328191155446376064978064418962801335824196480339518759909544990311681548186969913795032904128101193077963855645985617897920110671860826924350919581447662538768451369937541487097730900252469321471578888868008069250808204524742673687688333043519393460810172342743925984589823633067945734345362865063922691849899853432073710025578650443744516568279212351305678420231640337766981513149565301661457663305652939001622129633802581128062504504003086116302542713863385052536718825797491469593493099281829227094433628411093074710354733387491539430649853449011085491987506706155739244274542124757193729613655583650003603527854291682690614638064581220411008922924700638305017521601917374040024488975350447752588031850532784004789585785874367851291562325222717946010054866750310308047108705341597729426644876788462112170678718259307781784748919517104135654504682178225000010260560887708512147409583388673347378123662083998866161964340040474547306366201890889367592389368294888190442651768126907472571329519914356477732047514231051472107333448216000850335884225206774085490773415039068589119961585736419579302350255184445784198408871409738971939287517115038038722373698529033544142499612074148296032719664403703529904030862940123595390792907225918934164211787672378217204574458272205189332805303738233675672998810144759476061642409935202839706108263742472116019191390231701491402959007486779011933153998091931873185663989949950363149005048043535116801326521898405351069525508706194675448127102485120340944645061276677057028114422532415720354183586526440208892396854255249084293731097932387078003519799119007033883716604010822952209278498881755231699899745839289034065358942123141664032349788576845223659833250296884915977352834940289913175554587993907277896204724388936693564950492241705522117599231154134935363347005963058572604702736786700180207666334020209508743706152245796405933194863265806653731328371784442494028916339542846600535776796160554984705291018496019806934032401996554274225752216165287442164539547861073655819547718041187164343848670533681744153033110904553297116112859558526587197674633960715663413520350340308849207215746704888014287409130323996986409996112191640389864449344495031624748521583598691236483106168425442819961999493560979178006766918369842143273159789050913611309963437961388736242227461188848239710885555710548305228051664372027535226850020256648731045141678619959360130624239332942515926300161044489117911252274355502437224762016995438693628638335110086120988402052126967648857789405276313200204446790220877440312564046806786192905768379276922223034638108735676485512140017822663213990780663720125985053184548724976650806129106927956648493698894193500074647102094457464722072175635655099411048715993351315489653275008150432808763606089402594574418973194554187597921356359533960758408079703048676968389875964245833146302687188046284062882963266489309617695541296518325334355044677173725952290906602131494945107176887144201474604460738066684703528623830339900800434397004208101778582616144229557740507205632933388842050535927442006138137050959985567321269383131910287039040534029878812969893974129849618011520079065868252368557105391650808184710627562998457038299185845808040852759748596591502061431197103359445501125097421090414829050734648856573793771617938603650194749501465395098625363983153418702881944481293278329754735997627913694488368267568002081698594954312260648679615749915140351938186836094718172624136007512622327609790498757940939597018277097959781663449519994329765402470307793116528296505215275491480617445679439879168066732641527992668277374532561038241380910043136871986203343585309100461972959810919001843391326269401867500272034385988865973355464759785366256204285453460345838730214470764511247037672521120834825960721138096108374160171332824221787506365082077927355135744127724211850643910383859417544827654134695001872615257093081147577573661980111327185461419061508342554643472332131532368838448490406354331325382367595799223161321795012815055541065729552781038017862110827505774651898293212759268174271701879211822164093926847178923736804945254289963933046442916571252795712779670289590436680367524266607508621271220789407951884997470301890332443932120015606706421879476581103829367673727186686989723576588396814955042937177357373039627525445430932742184479891049148083309247483814569288071833380593488639494471626653951956568317050998180408122280872012578467859243154023409143761888113414528043243243286332901836371170538963058379203279117566732066404234154272687799420912088562090284148113617938377826188447896453262651916454704916288309635007536316827940808691729250490794479590087187910826929961491519545013872311152044260060218231796164856511586134264210139679879977859768135469764782677338437989245199719485974658888524551771641622256757493954180269221646862215519160910970357173455992652758343636357283885468769081576125459795889666566413950239189939094467509151340940928453644764320988221107756063333160664189317128991433382645628067491548772659420771403015285688626055793172628089540238855152635523917336039664092519745069684636142273410157024863589145325328694449334843963022262155652872376036000085484814416216155547640608851577795296533856564079598339515607004746211142536017284838068112416278270308456117244924901959698040020629123177680731871943096964637127199848587474435467238012430076704617501595364120621139246473456423915619602976988822204522087162366894520149112405793757123723369394225254410198100088740845262090066499050886702903897159825789251387077183524310335116709244410348568244357912957423008425335664200152815740782388960560684936162784387072296203178712069282631115881928473656122394436380726589301800675598172319333309300864577790126006518076633610329548803847799691847324129816009002954621488358864757559903889523605647849480905161945227525970267027501326805855519021154659706337638094771804458166126551098331366087369279404863698666838153296291186360159359302009087431246563749619086585344310842307561396776040876293641242659945923817205908099913705687455390300685645290692784996640107254257176639468893555781327254412330494040636764024751606424891291486764690936488510560579467482338869259141919846297486325701217370386957246779230254911803175532634443471125310686961441692178081732569981885810865208389712685494678379508898916272252134423333998333333367997288261856217234747224043914028503792281273182855648308319475039669679998437473490136156883626121236137404277459564176792664060812668858969729690215159208681278685112854841305556518021977086891197823244462366984956014821253018766527055310799136332530433663945075037885192650933346452023037815258269530062646548678206988836696059712290290302800079356151467385994062448470053362521089499121404518173275104104173948493010506541001096274305500138055439234447535635661824880222638451259756802244253391849922506112669069668220428663560953549340103897294885054734350381111003657075266071907816110620997552061298594186670361626048663078710704839554730647130823133642529700691666729388959976171890574456616534097430152091129026367680965578590638502682809257887348812424002113781771197209769424623114023501798230141519805570889989093505731719571608346316466399800990413882578115392978909575030200319706228442178505543610077109351990399704445856551009287289527735043346196659709402950804155105989360810376801523056651519934747645717737217539407214095230102914749409846711082356201125610638670012838457348860506624264619787854587706148604985808018736549864835516536274346926577515467611632496435239806427949833306528613409180737610845234239331814209403746935807128816892516715201430324380098535440254247654594051086913540749652825245616954450410036614142632248866421219611691786563130917261345641780992398478835274961794595000264242317645333342493991732783454098473138639608403546287534626601710193228163323811195303696968549678900903152983413507555773691030535290325467464706516359688161661635075271819692070404133766914138463504990299376541491081615894150418107200701775081771105826792927700894411892726937944002688310301359409132435214372808419983765932621253256416465399780590946517381036924363753583933526405446623161334773476034347475427137457283148793975400492198486313942378787995522536102556481718236630859813795983683077457365095576455550129779626250917097640836195698965238406939743470126436434585118638534029660509441282581222816429978790717747347608748898481237711064257562731845141017983007537377305909316364738968709158465834208537215444331714657457824168946058672460164286441635064506449491047746033651908819779978642101752624367047343862532514640910786146868735256683039168930766881831435574895726773007501180636245637254983906111899417540251859939769541827943736395297786084792870282609663194486544464638399075741860002590171350333060255154615144443590724668039303495724912981133313995227517709198120581676375447436843548111216375173401390704184262116541907330628425497081373347482783904559263254638109819326444408725262457876008092856099656904804364748919449221422549503509570554612707134922605682437960598427013318001790203670318742916598865775278459232666005307694869213077415061425355726674645919506578521986035218840042191260523713348207835074565941917483488275664420274178052459150785498596239263554562463615335242025734837673202279670248282289243700757629524524400793651761274415281355101614893441034176604205115341167737959742413516992001006392275378980075761841545310113758289810407350669207752894464918592909463040093397032039998883571746782882457325519563306901750792991918322266688710223418248350866653662165036597192531401646806336286133742261097132337426950950690304729771765156146039660822368676726065918417585751083251675069168726646716484106568833545558476265555578497988641614263248505407747434076530813812217215259329912688163436314886791545717022261738932258472952786102533924672085068099405693321526692724093691978448937266294245180311406362614870769409738193299972206697795666649049446850157104139130486633691449129254322505018309810293590959398045399628682527140256229200264644906427138751706844855522134591383820712534892506393889941960886667746091503999332085728119925446383379559700333471489680619975187444899758572532992799810111922807640583932711184003905336734215459712429306402389662906956780438666312225600510611176651572062814889448493508548341345861488028699703029509722480708614101302517141310575452639474376622485940338116709003256395829737553770840433498091718118011355105517201185999004431690600451321980122106118820727845690718996667660237153938000326056217049679049679863614413716648018581571709620380997229254812107349246993731130721721492150147311849676541270132493327996405717273432332282046800978679213526894469772896289795861538699661557506559201229766616495873286012634417659668223252165631658798432677039893507399100197259426246470165120768873839468572523469932624249856781041496873689491842719025213573997221339268122416627931826241124788688052797643405983711289437477558596860524638343406940941478239156560449570692762041542225781374881636041103561941982896745058255875033073376278661504690709558248678423359868623077312459209519502181838885818992816301279617709606897775118736824610110678664844705787102046518099397842334888296581498882906853232513077795872676857879719739579186847524908421549111407947041951685070582918920849660737974172168087612152942101531199576879500681787995947481537454834660984040941932446996537763576264670079648587031362169623408764056374722840150527547924859418562812953440692914615624649353758903146856528786959900682339471942431693897361963489490283130111070880586350934710387991134560233235882254956306642410091955862833336744637657595112867450917905331967442181389096853809338407902033585993960576234646755010561912709321267353809099788630387123161089048972067786905849101448081168475918690988111378356205778279520308168743853361913771824460145766300634652913010367198476147281619236964112976269851358350239083069359898512085078054119895755819954254325864728344960668252571223386018895754322040632608472613743323110368951972966425075065262411503222753918999781405138465264847644725716263527506493630699847997382278287202733106821881257047876065052499260611643233058391818082971248602128045470946680628485274813100877425781113366436265863179438122559821520574730274781440831459143247420893424090117786311544007631719222404139892382298951270948551559172742505884313502876943099785024004168371775039998906567551677854685278193283548317108810884382566957210840945721630128783250569125510763487277841459649512044158766442842264954802726700386152468071968638392299099064063034959204659308356136540710453002613288044631701722558013409103548257462867414773062209236185097737642445415450700311853094464658934905090152696904123186226950533879565454331468391101942737973055364802814034964068684069954078161826094420427708505739782038914994014431594252377194929585506659007380853620035097096347475291778299919667755430705602696410222858703616575490142225661290011912376292556205930818693107287758152487074047084780438403380831427604267646852584584455489799491665957654799797100466542407894945097670185708330621677706867695984589380857301774332960315960032150615812973435532484654721137247103064382435638136674852675798365840736669885174033251703293759437661572910208642719816814897547311913666991868243919691832198299774813710187674232104855003439566020259868291310530133946403149996925793337112381949571978167833394147971850743576367606489389351233600333011373256967158044302484474376676331155556385109079429006183000977280204901395963948402709957910027408159798704457174523344829464368898991071033941055083640794632924185356035651605214046784058934026781649884127930479485771769330071314088519560710528171256683206450015110356967559436354943415824539496055102277336356906536183454355664138941938327015614280063041927604704001428915872507788739838222285750993909639964214705708277311790058002447274242457263654429138281178870201361159661213994473648798480542003704215348656766122122532727963980136162552234179778441374646691584367762788253864392708763417328471932739861119599286650021358421944445501855859158124686949346326914447171462563724245612740318192674167024362411921471941401030495804672191675135221714523033552774637870472817733698347508159523338669763406444283619894209961653052666669950491900338712669160294024740482835893934796919877569108361039979690511179978069524911010245641529069861728049928079332558261952022461327962331697281292505315218278582805378456656623446767400891177276669465393776207023879314140741001242360912502807336448956585606769596956151461133365010242556930901771277024022493223457819684620683864965342735430220678108985148943293582645482277166323904528706444433662219254462119878040144952750335298362224568022438813672902932417448234808298895427702124167860772426798876180952936229450534875857265648760844046451492875546498569357110246257037068753630354173194230116300744271337480228251097634108109168005484082549833308610491610577992481983942051262548977163402994703318432536549381105847486738235447653763662702003383749884145571346723023412108360365628691610393551342106967234406390599031462630798397600897032015655704218570448120646003741817073961203409442221982140279818157764233274580903129669609990920076315448845181073274864048218526522699311667007477457416324260780699196923721456365468327632779939331100647375976215758335783587079473549026388017284551100976887466378407326120048662628213455552818269746763263436353893984093973445903583018919322536498113876067211633633241233915599417613022780398298514416064760419658539201267497550027519372034691437297272641801106651817893509888797230498608842241620499397408560797283801560954958280837098552545140344100959630955449416276792819462269606562282596513791685137970427804192997745098899734930750546040065262836484901444866030093629070989186690377067823376660094488482560919827003946065768210487632708742848428631827209838238589493912149886372261396706253452572121312078113587776817562680373244169700303497277464385181749187863410668062975490184947597937925532605728845537516458677124228087375948876511028781531480652180727196659851017878611864630029807757384691970598918825508946891553574949136119005603949626735489189083061841341944085899975907215192979590232675706027884121701078172953499149639925080409723486118286914163328810517081249019629735691506427976222220313228944087373552051854699805818183982853938480158905830794294602660475005904066499796744471937642747212414286561898815401907901566216009933378521608753295634696530891778310050975382777111308784288733378815810277831271062535803146277766598527117927803045608676367602286406613836691526213343698482479541566013337051184141771256581611116023644523181915133479549178107919782427547572968008732442999504287499032446671982327882292345139145037185148567624985167934811577681570628466331531839059926761068397434002925598780442402834037543135336187699907472095182653257174978717465331730116445417335241976926441096868007500490499474092675952755309605200898320440916295491959473285421878145382153555366371912327817308150930949250797419790371320435941476381614889605428915074575199446308702278283471158237378918901717616271458072092654930164191068775561468943925289451797046795579934809884799089800971966829192585886879231277393591696153954900822147322078863385143699863851343803306154957564182460977419407718509255682314940806512131925203153443896706404153625309655411435284804925090958504455994921640722745813537755664256317050548817522646090387939640960953579627200732431315664987284319764973878938499741793675974986268972383310036950770032307562240117781254812201495219401410837500188000368035746686057268139494070957498593959214902085306173872547870553454877111425279671732509826207063330805033483802081232639466313954783067910416956380778694950439624949971063622198428523494303216388973135729685378588814779175968157234441719524660946390950001409326917020329137151141624370132453853438506034726219826916025360415643825567408969514920368094057324162657938768279088710909276882457217938554334337703898985244273539802083495296228434127041644099761376784104005337875210687468260238885079138897026912283584435240012453841324370981597429959889640803416436395967157133268179886661623498793440988343434467310235088133729798021979831972163766574674076131962853673781648743775251043679312022216855169235344012302526564980070223479908215243971128040597659515871237410905248912404604719760883656874285095624291414178068575902457179068123096945783683187899732952282623137551826575433068147213292492551050693224840093719452301320362842651273095246598194777056466853753070149005500193443168576871584146007742877190611959372088616808457166369647569885595317428609033115231964148633899625765317925606340004990314760324885439045531947973591441479291882253159386127292445964426603439976288467340307218055827727048221040637135998465450303967380713507706819000946138311146759411677589904523214820514601074137027258736436305350271575935464563810537597917193317233332384328371613443249932105735231031628107943610942366140107089320595098336392234645864788037998748394743911799030144539595730330827251352053004100659282641965618007703473310009497396734566955427736671343677827021070684903641233062950660175449853890176537914749863780175730396965495697636463003079486624810968523826805165266108106440640060624331465817560443247571315795420642076512305535823490508776656262916728061512966943072598392368817702138783169078073530320820284831999676647992369299478898745282758130795067775455148430135669626781672808559930081166193806203982424410186572018766400016551176731099206274410429987724172626259325302080907263490107860468318782832569238165450347187005900495415527768314700073767801837794276003269979612696195110186211845023412297286960138169930059052488398980117223389038874492079196030857678088323326471125978248133491420782919299019267096174881673655905999171512771640295437071404477514235867318883044109517709961593117473256754735024179737831370904059154751715039220181287865192267903171728524989524778809865756185032843920770688627250800011257979477260038366824611974105392803024109511178903143077588423680665450581547667415958996748469838929129184869768193467394450337412593956371194314160168444635950611078219625607039799577367290903219163191992971965463015654296777729855556271170522941717237250763119873402404674439345642379421251899720509410279170760946315062583507802661119707925606864554498876380011247745870036290219976399462869931506187305104384712631060021004302987037619434774800375503953666827044404487067925999777452212812107222697472979492190529612476368408429941096828533411811624624412942742510503197441316892122491412282824859845036182781266896218123581130413567823643814932933045629422496375461325054270110548876389262531860539472458617513186960221870216488076337566012791927676199739627066034071046562190171744021457643438391066000068180313960862500289574744592273037017375204947920661244074930185038689802891979693400757951594080411174128987295809384517853305486652965367480157525841764434998303179742825002899994000082546350302156990133419719102248568168495683751554414538203218967741168439342952398277455196288518683956132413284542647402915332983163735693829435189421096090448118819626325338145747452384580554647305577419277858517372600429315977747349459346474783230027679554159295430402469909176442694570171690571256284230603545680335465798827744322464572462165551588206899554087352127722445630983032293393381479614225667953007445294790067629608579845416689629556854544618716231962826374879642233910575065458707015623919707784032841025098534155403714503429295367128965331701406001015048033259473256235871375299627435760471902102958709203097280231118975563276982655125895290119117825048031366314236542968173067943609897407305832531688698513835477603289830497006213242192691062754778873853037511174832740880975986200557652543350185729854255299653812830561749974570142056808712277970899907757981117359596971939882199380492572982432204350237817850887818906403445165691502714892607923715442285391159456659446169721355282562183875023118631418193602753135767130213606665880605477182205069690349514731949291961689328334209834921861888401889528992739155636586452178424356529262605962395100208491806161890096446688324468288012134416874977977859819210287384810619290865545316265392696404485698142236385821012788265864854266940287341184953241776044285665802536489928866364044213589270986666959869158105182072916860810579000288036332609820557052292448602015742246147874126003692549223760885601009703796424666253041175056956785307814795297581258407497137897858935050256503816734039450887036537358087798694047719754499984698296341587176389637177520045116730675597510486564624295132176718969319974712514497909961019552143906937821557645544010781507704586317802304300326364929289704489420268856485012336608673370093349842001705955046056626722660046986096370150212150779404165788402483692494510682696403308719632997646213993597216390554528018181692849880783512118592160837665807555195902086292386037128266405494064158354807866928015720704265668900854045698096125121975705113961866025499692083394809589034852810115423503726020310301439909763163871145420661496401220640353386472740834443214581771731821595567301746991633712151811246946603364222972960576447555471155813064186457915261842288105082489671765595365943576633458685673234850723919717184253036028335891817975847969285776474537189010603865824776076264350476111691271178881467765564614337190075899181332106359079228787395927446746074036333764985304033621341358540325371232091807357697172241752489940092476582940661773522676546211083497125476470602017268715267324118687639430259956862400055966001402674567924433169190616408794010927680178845111125988631574436475539471506121468411487131486453600144945016146496086422094206043221869892047001918365516945559204314034587654239951970632434370967239327958156162912821752265326523340814135978967751787524888804751761731898388017033463107978497297969309894164642906380410280328128899339372110073770208424567827175670566579047834877834060914260335110510246030605048679487839039009054740295494391058549864255171816415804033388175639415754795773321901902017563242699583520197515304031675362941379903703618132924048914389070374402383502427710353496792396761292236531628319536498580177574743928043602306000482748186630073717130585048869272545822236302273543928075757182427103230705719176475533058657740851769981435627833709928604228766877266167092423706681469946714407705924767875765438628286744220478515841601741272410891937366023706693584624965405338849742444626443231672393103594025122196346260225865428895826913120295112431327091919749139405432278013672368210433604857600927280694433097923858637004231716707461738828812678493470030597958830623752661787924208415251249652861599523576068162082980722563396676896331775674922212659016255100573083058337749209386911832963652373536970831878525433567454853040239396896427574753822335625242486064769440375951034542041672056497717778466328208809696715127371442489527601508018682154850728321062413945092652596438791347495290398191234960153273614959561230313953227752731163761143140489234308945332471707517166679402594184812911382698516480660834205889126285115565705386022431953775284868278398400729908801524774733885075724815535221812959655985813917948403963987229036033362185727692040860212809075429403833859697412713746574680320904213361731541307307817834091968029442757369169270360634544657607990987022114957887919162729259334058223821772342739449078954624943387579847560234508924901143029585073897004721715837014331250597541163347871519669179448294586058094257536247644863350452527340931098336924329901579578815591571274040076696683835289198114170416832076154548514488608367824620019752523989420825477844146459409604289178092964634433168472710014783614681854076560320142691031668697397263235247313656068892049942935256495045448840899589308773394100236679666330680205726597401805785984963676881885540769567751337766301110480443150203123627528930944010366341733599167963616565411943518690373620166469702706342125423775083749821651116065907601030387856022077178856744763188630330414111753947364042475357795467417011834590342518545473075717352880023550053268194828213932846651655402262514796402199635618434891890058116730952412434930470030691907242287791681045608794696762219037201520281241470561517819961208852143899670875513652476580963406504238340731357861485981691969741456853227103173349216681577594884464767436131482066298216450697930063683540360577981367753630467057424467490525805170948583640556698865264669774181419560244879014565610319267001912096519130739744571491021182635706237763551471125412810493355209090725349931220403033384391284885001176351770009856965127979283390005840396056067868605897855313415781182538982586766422524214710519586366009140784017671934105932184349897975159181237460813064923377923879485298578773131924287198714562400027418683272365888567648314322130888614770128731310631426467180290529964850660786265417788385840302507275261962035097833366499683108476671556435350768674983805140403155514901979343958270494616591368502482096059989193382956965064057079446230617171998453677427093504074958154851052024186463682890419617440316425089790309894181021665269047425732056007958128768098637869069442418473764896607851588195617867490637223754819152341334121268505355636617970304822770510271053940795849448623483452911776881033144129425847582369387398072146694097548546198529992731154403236293227293193999770600528190784659860921803643681880288432686610653857547661448613701488419617861424479309802680847236787562312005131148385331152704078170904257602210985700557893817653313598933562050848447331852514517580861249752204701743855910163773105813518583019914321667294594068042770713787784450587508173833871968655235217158538495227402541745523391559966241245840808774342866261459729467580834615669376185600166009269683330893461325907876262980938801658676370292423588695583158349564562132040969674508228153990703822829419928332169369225212020530102897719580104159045921044256847775833441863971069368621057756148401572516340122214344760410569768150572819491151090422312139039915286266016319761540570703476870806251838937985729014495020749339478619134501639806661175599872645623919853206735303056292528383383404319338942188899902011570132453758937480259718154899532968863598113624814149296090968846126532039897262755815459735844278568612210140887275797778399500750323399124959172150085264982138801578179956568578705355645317495620734063143618680560672443408926320634909501026454114109291756593703428289677788975077703831042328026007253331507183010798092014462145401816498455447863119000479428389401615726141658138467705362388478979094919141240425197744473384569016000761456310737390033311878383723768540572808435206194177578515989900392358210340148967245728731001112423751080777159061845014142673978511353948733844422288364633831327657622417087697784740689585713767690470639185884834649344334051912682977347740341890313783557903709717144083887639684852532542020979607983196637032649071131279590613221066185915559030362752341516578473082164250969110948470490947704450689326409148512784206344857225065809513768283200829905503394829655835061607923837808320932252097130580684982446517448190104256909372957963926202742678533204461963780285368420534191650517780753333762384306774861655359069673701747199619300490182800826748753407798972932673707989263494110142844197963855408086679758515164613550731679598593436593882865887540454199816165253791567584859159525963243816671597284823606513256744803585219922944456166020247507608113513238512361042363044302954484261985267630712700986054006356271505054602440832115073113506358968418285446246999355596610790427139095780835799793954930587167972571869567072627430641296556237798762488774155493060413920343532748152186964272913234948312428953990176881618769315231302691010186479711043563055638290125752619581906843115560817874082564824798234110179389572946631972566481191445011269220449715421601602223979145966814466073645544569586649802574719607524344566573028009092554056350384401188965900361961445668411737822596668392449585570718664810961465760683782459080374464981715635864165917602651832112625751981750739145988928640227331090086396672584624076176964364622974163845650717778212421740588490581290252409251260774177118529576446330294797519319927508293982375609713859301963201944378021108884032423943360423667965083507461414076920977623698209337805736933255762579190339483390033314258290245678167037933705150517963417369726161023841378759181539995467848949846682615361064217407265681572428052041414022094810866435707835549196859709874883156562473290521038944469069799197061474370246485384310375826075940149119819383238045388185505544780269181112318106321876144067779505251420504711216438464056039344373901889795521861873149494322491700419158449230220620533156464550846641297602894966678152477255170473533504664143971921300118874073708537073974927432111843915687748535707748719885382091129304941856928534151394002881610107836918902254337756184705417806469191136698141397405388436704440701491858081126747427558798273553831331279360016632802006829094351751553754950014380008554634842454870521642896147520055852790394961787823935460676921409924438287297302814210280025360823464370096310427306053264679200895915126735341971161176911472599997224989966288832831828049008788319905404136927845190162371467941617722194394677944226360591926697300395692431001246058365541504367044097315504105192611871677467933344716273348173837310086253226029255161984498457776243291912319259838118231078834786939422202073650002155687214114116567764428532058508327736739778061855815065627758466212318089188421389507285452664355401063779022999431227164409152963775115712198137294058544256992982791919843747903832314177328731554352123871090391060020739610344345411565623674366356774471981099335460451305163436813097386074719413781810514099777324184298845274331922347962714463830800369972278543996549966224914153219405702582861955928102081080923725306610196349283426076088547730932771540263752549348266794655867758709771942767769162059354689991691613213398613581685691966313928349981877057502047788364181397986792915235147649975208800924298428786025159918382101202561918364193532607636408957012915332445771443433806963711663842111843586544228594076703964489331369602896632358071749873938991200884275498896507376932617312457717069960846950174412310146372937366374244937388594038063136728758962771947099691050686273212235780160095830847328050474327762544539936044391449437107096298977758620172732587755738132449873009197032493428425750627916557367413745202018305956263922798234204890631999853370477147155643834726780444723484647499628549715728635345578869799956515679191162852514575626247855295052187997344198060089055119757642329010734265243934100928387118725668879906816642304751460607912444342196161978045622527069204721856864440094273753075545066711791111067360585014057622398088290975042631775062106579477966380693510018436140800272388047271693972742598087779845275326986875033675030035191172598640316295550192557687117310138055675174472983096710629821623023856251452202801750943588925513643671468083206916727378961678110740620112505580529589922861576368437305998098062015537509425760484324757964486169651664793932858860415900284998040583622775620690174857811251809869552616778834953882297264068237396290544524834156444067583209040692639416317923045194935374846218422485489533040847216882316026319166951659166315015970003294717457311180271213887739215232902187481104272818363303461449964799164137638075151963056238267651172014380645993228923005515269187183992139648909252414396832434327127234999968234938108267408539511219682832053737120758641445615278225924319628000130101685277899647955545103663587189378029062850922130522423759385846994034468289624661089220846438975349817573550645280256841478835480937349843132410199353442962154989556146231400797116451511945959336763619631610302087197528465596047140937250180572867831558814308423246340696257702554182576882248487651251067658717248717533320316073159449439111352402514600348994534340506663297841485143246481277184581904955940880471102626823916857559959828407349415396323376565166736864226426806990176135818678288511469821713475290991699770105259084078148134107740620674371343575713636966813164056647999307833627544699693669869082230940443923402757546120451843517846791792267602113042273461825655594628931574679316640325131874520135102157281670688717947172462643623052560994030504702166661986984298507233165229233351802494526454187954411823603236920713195043855626015384249012620773413757487878994356546675039127840298308572737977011340755020265221387237258542462278477764334589873043891307835120234344419009317615510614552453692329560532974690905575240380015791798081788180893897197595623677603923161644139375798804580054046748047434914032968749892539877402178305237492234542201483370165533405843492187261799055684463809809150660411856292377262318335861937258248592462834211447407385847966743554771620047381485892267733864366480705736777924782806536348321058420273266995774686910053412341251787035373848075481763370435945503761330067658793272320943616370021369635241183418617577071206640720344519482387174540097028500132031827036497411816471201922981061606879576106454031003725189897996910152970909756403763454378971472373229862445004869542201802574576873745487754048435060797214900852735156234020388666770752984087554412634988070751502756292702558388614599314823088675508346422815499088848343990376523816735230855728941275476076104628585177753369317221489102186137429221188999593995852469402819576323357170032662938057104857713925113583863140935392522679628240671718896495209941977180766372480925799034395156541363691650136197849227184020225610355690110125587748887304581311171877304565932936744474894123658029428861916114706941716703014343766477573538047520384810133782830055339725439281823137819455928479740880777052993070770718696389875992181736123371826321863161369339348014925332231523074941528677079575217487671643115168982370231812404867881467721314389921462375446163195392615483773933954838882026976696527229658004199403613838402385713731296285527295646470587112282405005213682489667103406770729144204988066362997210550259959044497129340449534850554365692360021945626709516512039769617844063783719746527218079031292553112292348920652956898366955735688204544696252295925129163548815170050619372224723197805294650719444486222011319204634470005233076655272606506621469118466634050930781455763711472091091510260774672609818391779835558526809813704234945085208919416623662053714834967607119964735241317334561562497489075188628134952943342282525020348939495974057882430788537329754202608823259590654382225938053130476458972971547434001202859680001868554698076308952781682863937604046232346063291165840435651238924767920017013874255690624797065611320896949676301332304858987101466371797007944156293351249157557973205631570837188524202706179859840326470760625542317955252879380595117658319006445502052622563572498040501024938317959165475195500995993936123523415342132630314106819610820170020191889460551665058190051302667926947673317626332230330823073508190319621416030581692736065209259292733094781670569236116502117087239019123711365172770625991834148346039477207785918124353581754808960360039399369129423467525814247770904037014035443286698438449604552750681087206576642852572822243918680855784634372843930793045825912691805813096293655556891252145687287473701845990365230095043045460772715221840554724387440479747585898656526019323099750714115207382723218933990290785810389443891024934812804137317153388340569802321601220827272008106607806126432677303759009567374888415729289086087889359306037054936911464390036928654202466039087078500617049716770671880302905621700054112968118163904177476628400502333178447494537120199237717310229534076568524928112446717254237592315737587231978773059934215397135000731800348311108908734711584191695399616966439980239399050730084057010090008113764714353549989909750904143936286822174186130668934947295978530892108698865588880280162129709126715147433694686142001690145047002766891473783107504459743351332319510611392089413300144391775706002095001246404915136786330405022233047695807822885455421455483193639685336068540328141398412260091967197146200797439773938144375477521130465041608357471892040387549101365034541118416510874312144964842237501194195046633487864064369800934810984402662611483489345802820064338078386492019091855290434342437322664767208535492321216664292786018788191504439586221297165191944679368262598831111396666330245278980906301879750449444455670158363072157750393983056230198733089222887695209567957263535882103940084204185347625093946934120167997729876280590310752373705840348158099854386253227629137137713457403815576102844934618009561085655234047893536364383347416328673274062668461277991870863716893554831405410275864451872698512437374936821253673287606863544655015849801590837599750487323655967436494751944955937845411329655945189447387620736419940918929657371428603415762930734133827750988805252859692630520138531890535729296876291709594521837421118740343505231938400923382215257100647382474221000265343207997080437506874936505357603350332644204376137907812053077037805636253456059941177911539758710739785784892109013550047328151668367086399845197334524232019077865009936784643383258002828188091151785041912599909556827589280213288740249162127819714710592774981658872670111001425703919278763620513570305714595879886035821485850828837108267450738826109862980943606563206345641437446647748370201049849026983472080382724184493913942188518300848846628045946843712465902923862320615977648820618578991611084110314105767006346889739988954879140384055230711324504056285497109624320366080952010045438240497793023820207621061898219156920010579039330402485635901755778171588847004896229677816050444312381717473414120385009931224450482003856994139277046207951370649954016917206186683001654289002363391526209603834427179432767471580923488753616766854599692839354424922376405159382972050672200704497158730683994069820106902356935851992248579614210578512356021836526182806179739298200574571757774303018546480987857195920671411817838236843529776569992808297092503566942038907833979909990116704241094586095700778557491700682503794728661462867881816413685426665288849764761364955105332473541115703710878672104814409049012715989210307458431446374330173500250087365497032687545956986991167438628312195145282581802379079364409628800962406570941837249351251199515778857572494564097141357043964548606203460510680670267619042052621222874069451133384354340336540165911222793889362995438718556569296851127054198956589494788016612699976835238260883512652216789931516859854182428131917431566457303065056453671225041016924486255135504931311530423624543601670532486174180892901086903867630511306923471923090432134791702024298424464408276019013852022980710181493295082019465975203212165804157671613763186096801899517786317727723316282256541295838117540186534071411758721308064436126572558238621935026558250719809922876202539699443563384459654486024107134438528479321355949000793092797466339253909210573642139874638882573396673317894251108663366001965807792659276416485598291849053470103076231086649134254693590112889887697047499739197778220899635242784368408753076274213603619404965711237468694278743350955803584612055576404411735829508296644220041367489294374032204889167359907175158005635766366438581747820214409052436243036377592774563555578792777770117055827143287661200922906206880855932136810499226580638454808696346481623255390947695494652869039777239200805573469774463545037364964947782236767505242796116490308737023723929581499216822399068976626050038247026132052270977411422359597736586338263699103576840022491806210712948845356717412074141968935577359926403028019566577611840602987420321940411224954052646919457136813078718051365028337337752709017347828197926835011683235086768308035194637794917004022758025523684882610780341474260643880111650577887913038911001157506168230923249069816561163493598885741200684863606353348831476629470908433536250982960692935200820508993179667714987709032046930756616860645317139519321500881244769081352381702505860889477989241959045000087219744078839792423981734377961760333758140734244470186837832091867587947055701546008683425367700768546152153461016717289986437251785615423994639652333864711590759591496066532014667907325696253379198338149475634672827416251324132566323336664530868568652402877201170744259843909975649409420973452466515806216257553596030857852233605002747798920017722903158253171436018718991997054282742455513068894510057855135705642574024622747015361875448669246182055447071427609103231478057957207935512450012791479538618007194553916410374564925900864008923254098018261342854530583173903893679483488405103646462180071475429127674733105203111949122643488089571351305708780308025219246576285894432859835645055970155126546762256501363173096697433731788588710985244742684949442974046629054255437847290990770789119468322464036306620759232164174695743576970284216256731232758111233724644964371258787414936967774122228415442843106220579878560744188498902485119152590699182317025164617295000185677302492822104766369425935483323820915421914872306912013291292137249571882962298310035945727191327393787171238087970584219296345241247936270792022906360583186523543074055142657040566813982931468369902743849611774491905023291841365183748389255195074859073628000360532449954465478742117800274069973610682368490804049625984233375158817829647145721768439669666728290670818565641869280131664366658385675503374657255045020753378535454281358975002639814139698743670120086291113854030788644137150229611787444789177327904146714486322475205536545987888769022179336422424641294581826713067819098221179124667378406274216002015572884926123058479730778429153727801732360141809322266422610107815829458253293034557108443966035013131866251648407343934214119746830746122922206648182344047051226651779168303622731898609362922633287744246962476417980470029157391449649982983360188130611247972600006372726337402823596816163616481017123935679791466524349943070419948966374226019120344525242135654804990681581748667688149995758282321088635019325057215870427447861822779110707779796622859480162982574168855616502641903866246971695921205771215240267487270211470918974552547072018282239776356962198299321243339454104012082230329648869032991360098082602401154007018171999168380723944613058831503646544045653687717150161530695626816132070075223448428474396740049359541767795678370206453641800361763683809552017006796301605968514238424158618131439538650082276169064032590330578601150930191669923930174336976210360206158789733035175024284340713999606488997688387700937672357687118680017044404087912748197775195839434911680194936353617376581239841506225413802478007802450230730536005381377899529670220968206974791297989424800357072223824414487140676559554735303900938496278555049312588699541877336695697226956209225296971293781773289913267799917302175224990140135394496502854174342611095311265780342606415806303610661857272272583936222818973353769455839598681319136602990442600137607781000102889974056799498786372577063405179566763434924832771697831194837134325103038833389918449428832109860261774769066801676332208388602393999381072979413511497082697916037728845828350476000849221560242440177238110128575774875456486011451008121629187304886176683128804803990239343588020051784182747031636031624445013132907745111997846194408937214349904646216466693560844541365554677142013358561341561908620724721303758650165377036546995213981307933686714408589415982337481309507049719574696651628161583885902995380643381081923897087438007212529047254069719299796466876797197082236051672559000642409057683131016240454739799436096576542708297802437048100042538056047370767843115287688963431041021622049870820457749484246808587555826166880963080542852780680550797554780973922379071683446964682591054724469287993849768965861253827481346272759908282507935760853849401427722691004204313706582246266890064520687778598692476408127752782622009378678634851693288566055062659085708897298703830170246580516969063273701860683929302826134750582903252045099874737140886372090616703254853468015004133891949330740033997904009490183688792623535535343538480800520126294476084141926934588498896308524853397101780018538943054849212852581060060920539826410078971373729769685947118477807790420516110873059230704010302108996617230737116841493269182643800244227984008482552037926284309253271766857201786103052853415563639345103819332001378902885813156816945992312026874394045011358963764947348159528427747754760350022680534064483039296103629935769893383409282999953752050516521435012216218433865417928723429174611025288828888961188392859238736130355216053182455328088936827056120418185442533507075660666473690619102775130141180728675454234409472977710191600942084843091388607025656636739765192991171700674146869190690877614098703837936125530941084413941936827173569920228619215013662396856476470026860837181952371623472291456488771430864023742318263210251292830617621433954434022586251620288095445734243871384441946683992725137366407513478698549499099162837808918731630603612255452735258301845855780903021284325361672603054737379769879792419869852957045888939346656926378201378620828955204394128381089222563564320848645749472226259849823448140441882930869397598391113810797726568498378999202334672761298805344836304994511210900314057870564181701079446516997582291394558750824905633591816755184028542771270317209176017378630664247290124240849173790795829009977977319308478974336589587948439046564900055073118721097619097559415508130336952008732628628905322448349474786909062767143078171339822921286293764271527877424088286119712524558896999728791442073489470540327830438046700590147347317544547650160635658198589381002035837353363338775851436744573856787007171542556877303196087571360748145941654610140169247370128492659423771780141948204974898085247890950128824477883458668064975837929868339010262379764626185354725703478773519244633564542958065187242718484075967777256580544687921469446875722620671582407511590161759348290973169333234854992840311439906883841344590437136160786969768409783721672592968626658163332690949159109004420831617458327528656121301477123793375927943492578331252492822209426952170319450460196948143036094509157273673312352772585895245018166663388465289237786641611115740866923124569730295203197632504447219525210892983023302666449358849361171608712760145067783661876413815936242322853661926504259243937183955837700343394809272795772094165981600074054641214364280091467457653683936251577769226912553655106531416361194572115721856994373065371642676868458592094335642328617670429434479965898983207576795114737669116069434083932605938789686875227507930148543733288758443835561420292585824540288837546775137960386761067777852480722357834997767605386592181896274767553560732910041973477908070769988772652962066866509491903972377214202334038009930951566207909364858781014643383606820495127980275608083434553774301330614595437485220156334840082103842917834489465966145296261351725719343628560417078619787100859708914079624145287500157063470195408012590123661797645658578421569131455463106989360339729001466612790446688560697866950101942969918304410817674476708165848629663964714185048168412671679118318065618206410800810706887869714495298814327049638880387260516272472153518919324881104233029026822381506988439461365172283091478263732184475436224772208967535901029814665882533850618237133224199459878405757153126147341947774803561555784481284910475927273358943800461744494839049402721299245098413947161841104420177044476798090203684613243322019447691117237864405774980878314843424933667115952671075758294175640205779660535338668463882256856001309777419771631663481265680953679847678574642702338382747996031247665364425051236271764654148082431248767638932890693911974954568785705380928728729945943846782482623360573834889261738586246087974066573307603937128156435106357793259322385859419104313659979861715470463882556805279438069591237653789126618659839190604675730295584709080600913052546087450433961624053879457314809481876362184178889740396695685125863229120691918420417558114392008043232709930506904751484697344568828673477027607607010019640763981802645719662840987018940551396558704040424821403486257093583003786219041569073757112990412008010321862188165064059898665991050486005712718013338372419626707478593045747932673024728148783594553706446528031779440923214877318567138341670799989814264182741806277933217723790546848752017673356957595104280953212247756668025518048342867599235711207801774334938234828765837939046987767465096663392524125762273153554547664905665120561358627976837838745511020298434705352618185299647896468405940556984221363736211014510744379777551871285236984475592820459270521422995072448896904494386329563931528594660695616647440399296706146380857456780661295935954033596402580796078932917518655079510629373788026464994401119178002913394936807442441184979460707839481623794363559906248661372046561445080949129779856455955018099897412348007412789475352165094534128278236595019698597493391604216613427542783842248133324892850386240928529092929601866090485863421254657005468413384246688282516502603376148145440321258995980910583550319041959939842356456270912492576053625183949040051625571940369335095186921789441180415217215169363465431271889169236633408518989434343115694360020060051347352399557005515409675912832150556217623353282955588988219289387946637811039962682611313862510676373596415502196302673323943173406109487789237867409550517120632755852092653195277907118193047315962927646189177007370483666956076804168464033907747450595479308777185275371488305433512778749461801753812535115189319996276818799016471536446842338566161139838913067414791614305597273456621501233451878026858567892594505646965964736153377828700469867703178377833576858267477365864114296531002201486435961524307118262493230986472468944801450983195427723109050949640653393143530237952468070909558487454667088125334951679923831387768217256489972423838245009671397748296960362677657534524581890178547334754560781779300673589477070215541753490112050435341880374459855680408922167954376088669973103217816321498787936077927269714910497128671736004034033207867302561330114950526143432172885941876729985977864331921622849651970206932002071251824959098545561661086524866674282623400762773793647849569082123254623423736974989285602142521070641606599257465165268328345130662447296283817951622653455116895449771771762659155531815584267563770037900050850641229932301684710159320810327242582674080401253831449307526499297537159114869947930158799168547789549939021692978535720951904008423777447871067655614508376438168007001611897154175337395686005772492493347236264746480810165057024387599955462896464226391234979190291617295246014547613005241377862530456615398163802934438345772194467196065145073527888810238627723406825376111486652964400932421058993071367138635468402543721163286969301276830242452281653509229485588579598555762783972761108448986528927863683452741127837099619212575526046778951174469558259238223331541562338984316258689288588620137184697778965157677111177843428368247888205782438201316238585845007742050120682083292565582562134295100546144530328446870713983877758212800220802028324045961822816458291118216516181665100173718161086843043972603824179052039554720665389999959661404211860892171668642768733656083453944145060003459783230970585505504656272111651585870175933167934589779116247282723544718063734976830571477917384071509922198906885752252362224974471515351070528167200943562529858995921723923132635473452646309909941401149946016672166248969540433436153572655414643706259331306901264119167264411751647529555586799550990193788633939634217430019900258446905199207929001893237593491413663029954804667114592124127011557221114799814779189722932199522693003852002314990488417711875134394252973463308691705955710520523379414344605604986225848015230509067586828886747094825303733474795541384465722209538716117095183570519474406302565715929064652425599920752685558499123669440741175436594832430442615134521351219495943873638019416036325087054775415066899964825918149669212702376666064962574568689172123826966697950850719435657423124012370440410651421774923436832856417354501697822538401023867100498787452950752721179564852266066775230726252080658187205847950089862427026950503861833180252307996785901082202669919889194100548943058018026272458752344044664326913802768095787180319875733389332181527743688727249242481437691643743722978588296306841138410392765111428373755140446883555255573166210030881172093444302535304716161318598739513240422501434672823241418747285967625918679001370722076724614319486471297257673270883286373592803347084911691192930025231810053899264716332427050116443591571165788732529505885216153606046914229543427539817407433729178192603435228186780516403961153232745641293827671818612824633149597656162997952349878806689183681063835963173008686935616092704881422637233103935875028813848813474333631792292796840875805100702362883427241293496667050983700815331426406153044418966007483926962970913468813012470252411555249435071197289753116674697104694726315847342176055540105386247590711369737810506134379717441614387582700517185591175419701625976735027476357645961743064969693765393865109911594809050198935089184485918750008116275990216743981622256638391775137737605187965125525425226562769702807271977984882982229093573297555154003412872427879657974890252549726752096313481424039693052617078897978922374432413417154071164629184145715724391359895405816837001902997901126614329933907676838469197386755736304806968897082964000283081551831479941614343065664624655345179416042240545240624592365068129019242791986137037398582748010194741719248650710166269431103979014257132230425227428332199417634446557440849846812779544724457964471291107293201987772623320762702622839076116242135619424353383478601994440895727741484066040526104062402354749099915846198967175958104848934962708310883548187811537557968467499449842937645079456179306449473490877923710308508372936389539973388818685020350801137855641314660732048722857332304022488206998613396222409441931859676108050215339227097927896267470795265642034337248776537538307953071698995645280281640507792359482649771785296419446874421835729201356590594954488984553151349739899612734388327730822231778766833536135395676794542764970550038515741606145994890825087545775158294303730184318223769821686523164293371161611327790129693035340465177956016897987595559634169281485399218772372604530721421897957024989172903006936376516286393255695056984276181457878766375135999841387138691383369007313800322662208712318754131766488986791427451546963527595877901874167454107780029309388406766583520285001816014184300568088499419542884796152244553949888461377124999431947511589136366205775582563441877334621086169975285871165383831163194022872386010707856723322755054464694233944513110268152920158429039119832988671504438880018753873236679434104533741526816529582661274630922065951800565002180320971669238384258521498270042579532835166513369299372133586759782883203184434137623643665338100399528453718993286210510805651478729603445815973388050406223299307064048986895637952467014036472266736382991279377299500199591102305789239363662470603690755512066599582990753102926093521045012013570135481666064721984013817864872735457741743198989793373110261000705582650443783643751317686831287657130754376940650729531388677607629581418009811912194264198065210731544390525020420729843296760223651294338810204370564204719715389947914812346627129140434097400324603091549906289436717970455073890774185186190580281547031858018682834621722465777266159652171015527728616170781957422170979781092500620369550626063658038376217800186445281255603218532150692313988220439528135996763826372152882140930920038030521354088011817563815972460060836771235629080498955343052192685969898764133473416980421026993532772032715758663444672530843441696435084520596064968882385071194068029487460692120262669190375522176043701692829101395373944826491429457377053308906155035048765258442154424878206310140996636879365230691625455224981152708308292202253731409440574177543300227860995753452735817273698133946593161129088552691940840837138391268649928689828853043145760691391209242991443930293786653807815405714354077738769505501083658356522997050295803499003351116372790725412909081593420481365025194899911527102714344065195127796087180212426998710623660282157718250927174657877259592503047609700308598686014508856928191746404406003703557062130339826518950988819190855683731730228639801821739740424262993503286622964393737047240106435024213955691615172526398616137825283652112758248061990386717582092561718427762534361483824954057259649283472159415044213706650050465862419790180254824209186236272238930477659160249177177668929842477690569631752704030629986210283050070193937827267139814702794047693134919049265061481562568533141939778858715849504658568625500357441841684700782497200164459002717670555128533040796366613620554275586180929182945412122687583149656073638703881350601290885433686281068918921551219417769416959035196792370820916895215285750319496253372381526225909038543132767584797312022123701519079434880796298795308452072796853559566379165743040078331306520317353702183275270033184050004519331646238378701115132093936932432605958490073130489660428638136981809488079088331161137267737549975590491579858388237004071807125935250204521202514562022045793036079655319289662898061326438052881095614164574181591066348920456148831476835540131796710030418128449386102926059421378519098903129759870457818058070312582172660149881515082418717900092067324962271914737948531975677111197506204577140403948414829885741825348521218641896350098311756144834731456744472399558443288258067597463637998051446327325974554872993440772570425877292453013001101420494406192916313429881022437486326525533788244447822147265724712878491688798906724551765874349163047990474736397704151313170615754100246899952374690977311441317383898952764993541175063109027851281288051997580580109204925890307952494193039208197505217078848772280982306293398976897907439438753817865153490425392525978362726383088322817342149322126438090435474185822712686268246340991730481346621652735072069443248959503727280654664469136068569830185383679798135520382563750990278552452764598535303680538502047061650564462201172705608035059715850325496296697476146793029352732548923741189328141354368403686260610511317568660613222401482989504772109750719183885907769623937049557081919449231336310676279722320783257868350126858181611496785815953148074342192982852859024875099921800578699234294381294655770984090422876314719061424736578185658458764296533304673418620357132488083710005050147392157448064241067829942065452337852717486655734307058824343515620972651081279570445531105354836274185627479279311320168805751689442514199491338436714463015155145148536679013282296653758404118343011318937412778307332725953724068982179642879934758654087819807068426609393274522351397536547648108850486054499028843166418133959373566946321211969070723198906719613393859956362223335577950460483058986360962774877232114205423766774471672981038893989979204553185105662241511617574925774516300663538897504041944012207022298477680600071213423503353800239066173470937113692963256382537168837195811961248796992229292157218016902827872985604276183201196922826968104794488792779348544094189580180976374848990781389009965350135212356048157014074803579472398650359115056767363635620092538620348072043197895734775511674326170260236422399164826347496164134847378492548448561127285684695397762638510476444792213000033207660040944144290785467617467448695507418847645604990926127416299174553051009991094101987142401559065587689101443701169788138462506612986584440738857559275756393930864915583842035003680561300475824855548930298780529289769575491120724062169717311530857390138479050361375932962980648156385578174977517195528355413617826371941866345231575475115516540539738564339642265297918846306056263951425488529775686203038554257910308380036600357612535859547920422156297597000434576453656719687548162983832797811111235701972485787982800816633808576198035704462265684475865348891941407468610290587327994471193034184262268081364036899823097672822124189476323234545291479059417561018018692812332377396686685232755116431744831518305981652180868732313077591592756305970980134715650231186162289074150593159034732923119693989213451253097576730977868137402281052141838080426273542283308365682995148563595036828801570747918181420929928692849845821876090671277836540254801057171645890080668375344444015081405147914809346600003629944310750611923545543975220155242362687060201791197585537549711646721677541999979968282750537952292660248072439786743567801631903867396053690376799221976819113379394194263094968349275498573092225239376646022278587012730225543428169355532646848404091011905750358898169814112505307329553133429939241551474408998871764896898311869395973077585881556607861868911837665848736077865005443395936093728604540396435885759177054304720387237939478688059814141740152419402882209784068478661361565340311875711731773034258519696461852757213026831877100559250236526810403730225091325689122114062246472907600524766220886432693049054583336382341098887911879996580822275898391131040060777387587695628655619794551959297781637275987077927516568157993365761866565123134460795030634388714875916148638662059149012651733191709028397414566242528471848323715158646675150043237171256886602667997670890286235031506609404996717916973546098786556025435830792423329132544692192636761879085306665983207054683347231498537493476235798968151902236072185202320831228771660902392824790785231919771505227083653389199818960786954501596683021167117090146939323838329486907120889356335948786191573050895465645081642743653373772951201616153704682486751631277135557445874639075335682349853209134560544810695926050029043125466574541772145095180101987048242936059355360759883259576060097665935894531430258207828412706310740933994499727129037164103184949921080741504474096866704136366320985577979663085499287922119737055538196855574367128981908439068126573162956126985132252388315651134825063301940335519956636702572738107577109016217031107501425721929559861703600505175070362172937425613083408234231538700710975027185113646405545866893544238362592617357904833573068226898099847463513941089461118661429694861450236530227704150703031423223647801469832217492964919510255798464354693129051190018427660492887401894243565627345875819845817387599550174648241862088830849574325292922205183662211369662077382455787825403676787461520014981783794056705289465488335232570178058506210009998734256588143295807138950231712859161793774345324453366584078288627343132681841175554644980321485946286038404678071739917365811524294411300962725756505886597689355964495340271930146225229697255682899817908835373815144128864315742299225547563116028306067992563729401779086490769325988165691402262036679054336563597662635604197291482144031849176650093098591913463565114783038760029377104764228726414004346253767704476235882375037534633666780517546023732676847496213750431610699541093211442038187165066121749623207819349632691984818000239285189273620768966922128635336763837190822776121487545051689267954377634739366088418403641407963285869173388473087805426433630598739278147307086890084409728035948882379924538340858529710089422299348389496390172193017572574714486873361197469280319033402939633787119997261422041328264003990979770478851406913823483264172370359759572774231000001909125803005100406990880037325335653428954139094236196244792519025849248925572444553497941286935701216217263852386056713016495464883157374692080426497329231997169580327974820025451699766136544510111108235915222346688549292439073753004425012823455795976517644268815849991973973451049575026160321943278981559892271795668494962059136761804693264467324358470019275465916597965213937697818566921530304296263734346964656868025920992922950367966146053692493354783141260761920890087931206564511388838679749418055880491831524064758158253013159594602524266430716491826044994832873678631218998860511405373680646136071152782328591736661366931417637445027489405069067372904471733365881566390160369217976886827057033956781255421356666809175432603225987577615351839015931823583015330131907850554033302526953735690311315916406513927250503125242425949627546461964146496312843024553673901875904045064297110995474420865571145726193735270617348516862639875121455389066672583274978766205059994311610664525791271808091557621501497370607695384833435366577169505094724995751287492565292408438772607906880900823310966773689635100358146533372142775328444289814514183106808377911098161821971261305146013975040538887855296636363851600551274872664821820480024191136877950076774782750096995221517023619873876447155125457399651856808189753714766600895357342883609571172884230380309171744599476781904773662690609257041606505215644705767457149293116833273254002238591372348919453077055676247498955720912483025053323699595202613632136022385542491719493690723246870557989053888508354404978940243417326082065596954270935497239294236339292694625796835843053921412349535428910148498071884670732175063616782233046440651141021950423089172860452600913425236427921274965199490473475868874383319117757361938297873501627396273319687614640526251582619599917456970423357133803987868167407277673423849930166072460580191463200258298718448200358929273380234926165260244146496392990195609973662140178040634372818857426495916021046321669169117585502213010259342256302022196245141482909508097094650166819951037737799426589871132141254179381734560734535770465413159729038374802890645777157644691525729973015807586440909135832473659852729901923551607208297942389212451902185406714405550953418937452463471781415223431402640059773608490465841972643216588178538691809519171803902847440676709333787871866680367327501222857367477963197025380982084394487219551125652805675379927770573659589798388267106883865155994784940181859710754431717910986548656348906620261486038685482186391948191858970172483914285473709420802890741119424084644036205569141333312743388224509982998808058405945274624305696384330675107438140993181682888008357291298869131355585212048884162082908152720946140858573079444318049836140001079711544068259515677809652465551540202621285984404445305129250199256749306278334464933910282197646134645179740701419783805854828625185011594159627157086844119899369945983150432683414042855166797577088935141290079188866995652874592797909905609277429859888832902221841761802792132337753758892328601465677867144153101006811496966345480278326822380984036174898347703370726986700898515588268012571208704679323371493916055187315952549149962037918339792416576920804436259878688448290580199166762503733759383319515293919345835882700136650087080751887756387994510482487189745224826803358304498477550984316396947500280305796705410393500621174506454740310030283189376581597597145511079242854800244177234739676804720684695731687565959522981991775473812387799306647041381867182106131266693689392083930769686887062024309754073963678771142359316907997459985373619120500094223112694446963713219420201471177702742881120062904355387455397305046288753547492811831274605041945562363520781965138010534146507318107436113266413060702731557536022269783208208291091897819213257812054412049536639616179051502474185106704369311722583835444276656378851961246173389544680269592422708836083497306363847751468534130773695917778624678682414932338274601118934977493020204648141636287089135984061471242352188138903864124422147289373966402424190286480980771196348515240377779925839314445577005373855836022633824962847674670572406215589434468973135451073119873009281938062619544753724282993372846626797171792830276288874761151493477270759954043722899232933127077130295912406070189419183186180260123926520139965686324723669530361049028433581022549434876501128205629587796370941289024076591040122823266315110372310517940392045765570152523763006563266930420681625438359514571322638003479607802040450473671137974760228797198268609213306396333153176582640764683624390023060564265776675249901513425784586232633696318125836927976407495471803494236153840358247711683578123152248784201897001946619712301031039305561116822000910095194231356997400653127161244793598337261131442631556200009518853644073695408188473115401364300398914587540004093228801789212231214473913259323826981479574410688995462011142580303630202540684050185521079626266189628021926866809893242926372368823849649980907712126816696492270436993979356409970081519891991542068224544742653469828100213137265619145599568106255187059260774129075009197063738134704319399215580885904892476429039435078775985747304238935405770989835892952209632920810724408009647973158128967905200440980883381960534240247108267878866616368012449728041276554538585722278027497241591571467185115251387061156831582583365811268188381357036912335241437995092955181178890723668413874483233949310725946676999233859152716341810943804001729298806861109439947700711364623441741033312362211869746884432419285306946941411014076708218747127767451632000307416789013735405307831879650295975266336606940279380923517302379435088154630618019718546992270737825233245348268330640500054922884891380393011825718239661419394982896284182551206326925397226349398859829233391696812344344782646496442492997636675684783976688476444826771439256950065960644977801149617307182629580602142590958340895206883854144914827177159795878476740363486581502003491726664907276012055554602246590985936468643554515674514975147665206077213033809465446956065211655442243741041480504890936523507044841095750154935708374498516959685807958962912416004437407624586397666483205935339199984751258087909962975007427123247957654380650901876758963935893022740530484253945345720908821700297715378122593085299961834021464473793191514327590951295169279796388485730985543846147373016316503634514099979304000594704661596813295750664794654511843546063034229332469314951349171024169621802654682929996937297371296523202438774439561634566452211462719862483600456868456780252060817713275553262156254873766327966181068112804200923388405637278095386058266679765589452805767936441106689641755354882481713165820449348834874722325619936100905927203589761709420635246680449842028814636309142467002122309112299185558274622814104357060417439606848758541507273016240419397573800583514937097898066758958344778234567155256428723408386416287145641055532196692266246848614085766994405014650468054221134830115896796815742959536923817330688879106226121957661598125858083971738190718818153036895292297522441803869887462552819913519960650767536535648687956895238588510322444602174461210820395461861174222432340190755124341220955604086798054258666635333983837103796016390191040614829941393921309914836791592924325247448913778664382024650070237272290989868161885980162316836161877247208038915139983041649334431338424056560206744421752083106697895455208000275211052752872976141291202862733359750264244930221548467235672604222249597048381116752367460375166035886534349947656977950581752668381129794188445216697203770564377982909317703523915389503606650013582524214563049907239844427204151081824146079813689625625703995994777855573238931854218989472099745606081483233581660735180883205783223281823551264838581677928922800997989585187142398941278458238812754330969623681420938440729389664374090505257725503137433922222115851727050986751500363307051760995817081592591479121901826963553750285818541218176228617851131304176202612960491636369870290822115807069387343777662517985321123326629673893267936645634028663854414260056573520329701433603713475807671319818028667334800611758863613363400541917910759735158153363078509431522215435225087698122270798445702230140934322032411060922519904307330490857731609021677619681568284767614867257186528420442852684227323867106449551236784152360484173882825532962980517465998690899511838161755973539111961590221244256384324871513837910805994941514440250954851198429997266568355117712626671558163001286322171448576642446967124731750593841739739858493467286550151312671823008920066352158432556994679634279028790340991581563007764898206047205922550840676540179843876761583680847910661203204021645103811125123460345286055221682707475729216460162479097209907931475861028250539032016676161379300181773373396869974194650210553894744326936652582157541289532894348787826499767705328973216747813732799596026012708086682291738041342963854090336647374831719525269366917692773007204788578626525130570938204420637644143592035534317210867539662462197367393956159356068903440307816375325046869833928963000068319007007683243716038272833729789654840264833757845895885372215379216584396099365995123746366938684367567080350003730713852765619928292943205636663807523448512209658645924841624407234197007017423004765123593056507469495131642309055162016426581120527445162296431570316684599689865773723842174816846314633673922258315235102933713737333672769947892909800425923319333150289499740690018464936910046725085801533634751630641789976542196882270284008301863168236354727011477507073227299116465930052446974560008443331793750942346465650223619863830956031578045377772905502858270643084910657838380307986407341771478185858334275023983119548838022903829958886028320826338596178171897870278103863125184631915120912138200981701542833115390555415874233253825286070206132805887769062082595705247404077511544100621957177300837726072693944714571606566574503923793491989532113043300489288773286451579062564983037980938265113387635253495015755291751199211015882197977095927634291361916856634980183172100800830982644127312336291761989426399669982590020062440054527376733538362626986803066032347390554604130603308788257476694652906033103095118891374326084483242620245730585108107771187960530164376864009240853433322087078429688419445230602058453262650808284558491362799910796317798371540449243310706227967716203593498708376986508884017815790430733319701228102230767541852566405142298430573530983729894658265630994011892928380644087152070935060047028810847190051955886481930181495051993222959690498451716567201131511446098911085399733400354147196412155749826931943868131711039024383389415753282490082289175837483283533250976481452581845976378156143878048790866849489685090114559239755649888479358414002527789293880783470423407284017621277934121267653046224491777476719070983271149774710692162793072591496778324385115043042194786665671481189378408894662201545500337539963778878793509883062655574755720266972624504006569755907079388458558167674275881761601570479412128548207301347746474973887563581775666990131619707128311966372897900943148259669195611074078116938213724987798801393303609039599735195272273446036876198087602344378529810960529219821598676771126021009357665214317033808966648109950873256479867329647978853008624280602691357628934432825067162505370920484103922168570643625312828240047109208705062334279741551030259701705764245220767489234768891304835284722503498536458152052728186722137164910429423378265473025166340578549627780874273794064776662161009766307212470240909477223267342041312613766889457131548324552885662193307658074604756627084978114806876725448353736287077832976475127598656358478053955493952431089868446973261322054933958363660264719062177285486492931380878906743808409103235470603315342775669188128335430682839858791097743730464288627644325032057634057168630043044073395197142997205875598483693920089041763555631144907030363552354159481646524820604420654014146024375295953560133416063809146111762258968542090703866592194323552327634708888197043556373365827553937669216834210113789359648477207805529044931971763407191472782265824522363165057258484425468561785053090120918798511733251811546772925445015136855015231839524191404113836940260184979278232376278442507562673414574195069538901401874639334067874536443196440569059528598526457088093363161220692790178274161895196687979718500838688484258168179251225136104879126108396848683750914582070054425384057798713568316075612545425744656615136102368855729792703703294894470849817572072690405042468216198262747779702688416569424050249996214516399480876863363624994770715602073492476444800991308191150371871353990080408033773900634280733179326849205833310389399846587149303216733686053522187323837067652004323975679601016342339084278698528689164077156730157046332838222890842708029680224993984561085356836330664429688009260940371556701661677708702951355126357479256668875103428276816382178171932759916993403536642294661851619842426647141075898045420546126700535762055504405921476127578768608380843404308709058680405518470120994049918128969160899702271087651100538099030828739423215106453607765399326928040220171511031092147106888560096371887029789113240178776578986113744363738041960800218804914964136478942985207701297721686653460796414370451415261601937533977695169372135172583899455522796371112941781604141601922034375595899607747444589817334375892196695076840463745908344974900515945385450105251481872886050752109564736756685078677363545982530642558973914934912405336568133897748044172178184609494674012839708111618817962279276314677932449527655641325200682185799255410792046058478729165633227771418350329300784788986259409827285094005377091345246871580485309671532955448143372074459091312992515755131085580167016588818507135933479476896440566739980690689287296637571228116856516692771195594863828913525396701988164980571819819612597251074221887431680280822798836932727041602346908517386843677722536580145060026164589011986419775286040595860253888727705509738082733450154494422599721106719148794790357603497547344232388751704459125939206125355014386980337582792000664323565723537715807258660833410402884941779940671460602486245821705996921525831077459824403810605185681884309465663994209053874677361268351907694187530774774650329719514123382994166884635270460679070592885435926629416360541354181628401351573812762826610301844909126061276135946846195846187639020666737076570835570150211549679444453075937593808506106864232830634131576410965193540259783274569198461729442607547838979333695932920290622452911331932294144531631613787829008746443072258052648105345019614330329008961220149568756442027923439012012653170266456438570411805624943451331838298299356384765461158826121358071942735068295072010768661268420071180437533892255123451013326214148395686665940447953891985165026782963593910068924753681735244134451454399725779062072068757348813981962939952124365189825806051368475788343262266454899540347887598171915707727322120019982969310751422948853889854586600653546972835852837536761373923427173452797552092857292669708299821039915462451983756933791155818624682568680667615008232388774304785514716451858523682749112442486942801194152241407221030139949705777663945057578201611459352718537564676950930346057542881481317323594010786929721062363973334009173360940589821307187103756002656308955551394016174632704863757167521338511422478380514841167740829213215515249873918134979741348021447353559076119909617143638377462965578145145820464107558698846746765855458471788087119960475477303139020542175975175014447030127002780482615266825151647882397078000790716216177550158544089989279829230136758475036965480681941564472561725638876914015292735493415334859836151214454347889228120710456568084727441013347793027424832373552173519065981591287703336033614000364425638982840585670943310791068670221812192821834418415486563442051951410720011557531104054329736518793529621756632586989890100104343290073336550433075408987598865772737406560238340029332009678384819959625294149293660755799971074147997390135206243743481463657924861215032323141162595439551430688605709178843520763322067389918476365737603977426151950163592698316786562912243132608675884302987322641861919963397703854099486955213576250755069662861681172938389249663775200922762390449250870623419501787724109757604232547546395081284521124711005088754193146324417442141326001196666981382499887488342937667811260790661367442059572895663337776026065987659053741747286621358178372616944882476689673279969540745805917755201129179842161111655104978084304462576652548348469378857932531919344398628046662209520252243316271190770032036840848698262617576476203488375689661496150806493604318820794685234574663201622809137246110063403092616873612726235577357236238836925993341397252046843250809419196974608054752052802102806524059659037270831729519611425865568191102527368017800690026822153811158940762896439864738079018649184078562912972671748924973393406933139760346723117270847126517470343589905168326537964781633144456686817303155840684788584414750503393078661059764825882875021692686816018619981788243469701649529722797906319337546404886785133760297740577999727318665001683967898314735060627527875048780572918210123921977930669921077707752752080092687624869774992379311707896666693119055498900444818041111573975451238477905883360218224369486359561260033345158726546501630012004064818693080848216978960087228650500107633648685485211651381991504069652958489464426532814152909330861733583383130977556531918116300294502707914791432638379451596842343762843928615006419549671405537886362003581943904397721920447747242749821627379996220537608587044122362743341656954921398129106290476034913565776047328133745883318377940880847859707764107532150122100563337129135102932752337221958575573009501270325049254006649124600664454183438375171448008459501041151028224540194957455467068640751239928071361820700991291170316403965658015596578897254090551338345001650667374320621127933569345633715590465597868578289756046660477951542448158426578119793895188650116846658822944613764073824916199419530926081374694197469306443260942532147301335203440164404691022107812763291795358171503921465550835637214329039951626378326409737964621312069368980385135695341779022184514598876772628239687588134167532732733802435165954798900593790400576346476799297198745886691834971781912970186700211894313709050716499715716048086895819799623904858218579722168025899458838019721346171091278309901334554142066805830746413677103108899164220517224384194946823118606754060193457409125092888525646178711048208722297375728044181606335505239000943115892945011534376562290839877649669429132264479761433706866932438670755205592721975002044493910705022472586295091176012066954867119889442990643128472411551985742868169661847680276334387878901511993852866820927549015414070959505448074162702658177921289340319816365629444054767017383128950783833922020383910394093287370194771545060126401259710318122956006746626340065546354843065412908352020018856253056333514051232844245657223606790944021086162591476145252157326108573954902073506966071239945905819362951633779904806312812259034991293552880459620514973531633155909398488838323537059797116577559654202443951930742472292969923933183212529902064417652474654900596881903831824566792936859793264048514064264287511331225044403316688422473460964058545937653483719400862058861436023754766523339187111900754473245865307130395557324053921233076308368034128647243855202449800202849105079894252573754531510949604609743564609297714494137725696196818346582401807697148555393172604827401138326039284422204293990770401674665951819215257905037604862903002610755406137290892100732357335868692352391768686696457875770777796479166900545418478824820245502482967451154863668836513196497861728318783211764973673240523568866366319287115155936134173661583049643142609210976426309397817900462160729609153129761978207061244214910105434267521767681899541128789716697663051260588731063390019138089664310271892398155832619096898415278580990266519579961773106829925301190980122648604320645756316073150048034208568034291446555146115518633599767483002371661539751743901734250375846231492255667708995057072763278790940202773999849060349250773101605633141575401585859682016310815248541772044634518645406509884400334816678085335267738353806489735979662070856580317558058353398610314427580092272410504737345204000239902658160716754936888601312753450669544085205080575558234872667458267039658410082716749033821148577890757593992337697680790089122682365487508741464891316686096845752322993158778257685267009811132697048973565131724015294776561360174975410322621054882410284065772924080530060379184665204592898468139171117521568142338308004927884355315978679084943685438620772281495958138467931980411054996144707695178897281642372273393389892862985059454598718918287025134621095527782529138875487885757585734680717450331130399226893038185732471790020087803619037151031763132886814010968283548682963749545516274456244412201493454639483250575200391348063318284269998477483685333262648498214699654976112094238208830047109921926075218684807750464082786217181952365598210893876421704531841118529994833386216546401878424795384477636819821939024387982051000611569298667283119263768724251416025873359113826388368000481421210742889616098850146367900318559469742153775006942300123843713390692286330600223334724010005518268199639713419209292922902710962397565624165900795145948631434775144108475471882127673485054523966315531526373585025400341107480845169404471903867454210691531166939836626052536277335921368548857810943457638036305884112716040065154328403817162545883870231281761458627555955906345621993032415794130183931945160457701301478599215062390110104191786688654160196795054685913216134280368055688609758017336184546958861576701089836201281972240164572975555005878873971449265945899652303728358518516503381725698750866043929713618437891467935558491695031817564658113953668053357033353981326722404045803243381065177454933242951641311255046732560289300542921869720227316387911512295083254377637784498340273147940121439346558337986632936986956687632477640488768822275930430858261821335191578548986573965295782143652645463562203160142450760292791861435568397359221989530207186402567425310607614574393840480617321282252891091412770233620501366547290847951624993008852651812943886310140772649130942909199102871260892558949969253477443675298560225882939090079915675736303546335962427709685899825967510604412202583741527444303854367553733752823961122580755647564986742590339196932393210054210607167303470757052300362063144534660554375977578313113457976488062822361078685588019497721579881991098204715816851215237902768874610221085927135021435024526215580838031571169940713254514097602332359822656559701398702487544493007802196449286876092972942871460455037025291279707917113867362790902781512649150318994467807546311611033234130159493705851555168932322971888395998292960271253954179848513522876381678318814177367472120897429101445665463998195117866277435898127996941949681163907327600722269418779462516555986963177187035282313914091740714471428528648059994421373213064002859381196446256037246102422970049310775864020728044471650093123251608432209700498291131605061052328483273030118622942898615600477953576284206495146927696298820504581272727229501811705359974938407337360151807703403059320480925491028609265241463585587103817888299615364305842650061679629288417655465335831992261426651840262514444684728076122047706391387995067078555033245264537401169658631843458912127760769481816609787379406001946671978996717982363842312278695670439620725988457143432212052592183138548558423036157299221536704652449657725873543059555604181268284063381898563319908095973731152034849210995880040790771034731197226492006265028095547456850089374649159180256785063245576613924365093148207899988086210432492513797616176196839157997446713245405915734364233457614172156845736437413527298390820639617328114341088874547344186936813647292797369310468314466756699865367552918490622944163264381151913607833410976915319914434901578058059447879116925186288815665331441707998992334215119444124712004403117457904034547523357570367983637597902550795186832187201928349336241371175395700633885718903184703096976114444264774310273123361618484510232302383880778880960281028345396243714548392224831413796238195401036341020406349529263285586587313578471217822679886938834981896610031435108007396381305029493640888490129103216024741960803371830306562569924502233327284675221889644743132506545936769099654872842067419029948241527252606402925639727264400254669064579929283699353680118292626787815033600413276036538389299100362210513381477728798348234952375277557811338320297743464545143307584557611355022898089321611514889805139831689931314680583829341065041129657001294223564377250094409203465734214103667360155795084600855665944410451432926149249462344888765391999575321847265677722896814732645888875116694339157890132363089906739961737350779099676440897279252703922341891397261940335680995574375209902131636044500053695938280618420751735966794094804361840745730329498972890655778926436155667934938082077318362786369797837734411742886556747683770403890731092411133802654035739583043394870658892014273287856695796799801458258804276160625166143968374570845886792898422354333279275189527964530417002412900545809348506371782232650537004441465697292395063293130680856436690589596112764405563157289175580599682708439550493784587392832899236407704103427022341631355213015324769511620256506241631979072094093942799507634180603237130654506465654532813176068058658361120537309270119665602505648069017137028704908793893405572931015910915715271342310782463997894140068048135389234403049662789243653232216167592277357803817119885970531768836170699882348732249156374210444605508085528650137876809587729518986574874933508585901229098910385180889857549127951103444640315909415110280921780040200639873928049150152858018420588539203261044542871892174717642779713335665872546184388354317752249795586901430198788829568279266599511216029284648389711407220875054166806536419350162330758013660661604824792131595715570690032240460358884727021915818782823646204471227904111506141134671846764016624345608771058874318281126547290122599342891988764092638392567327664179219669339762318475596764745828397892196200498324164105842260405485881696755521505734172514763192003400996492415620625693573914842345639469342764568949524921157381807910732356515706336284622688022280601092340476061701270691910720414175407297507401174114262531646440911798074820561598356771262850221468503495489665659747731174597516460686035614523120067582416575143503521848705543730597516033891760740679020613300434894825649504194194837462836104776863241565713186828249083001060665232428890624654387731954228292624563050563606864346090384839601924177643904582903438910464221205738331152116227483590014274616050587808658135284746780024735594651816296801047980602052446107811147341191023641475410660042672412017820432566226862885041748160258620077641891724741049865255180294826714148840476884335000685731585705885585259896634161399945617972303141610089210018799155160269415441581869413587331004330776209440507007791127677147156573088866866409055197005668009613584093595409563165774372717723587145926616754770074242709252563161668118231951074236464751600417830838590844145949370968978402399864065274936550548929732287771759452383548541622012966139902388534790864365054301519811045170896514581894989787702223940567566085103280416385860811441741183116637770066929737379527336905031505755715391738226271355008846241029912739488149358022020531610283114628367761719050264067807547765462181946531418284301468596277399644100654445502722530867402360087154474379470343134600254206702817861550404636237561947663243611272627400838133612367854951966293726110635178617980612522122757989915268708850120283153099221482432219831690834870091443921408502228640122666552375678420351854191007923082600658819323178003636107339802863911633371555833517765422294345943497407204057723075350267152060423774848656325610671823191270431500935137507606743621871645759880755104421530065340887596331288214705022013648874306631511217129846362678154303967118409499906774492872699601256711374622877066042241702608927876185581716348715949721761814060687732382891767126369128890229773815635711492468159283832823866140360535971686754350470402145345186134061118890991004302377072022524401476071368047496895833018841672061554577865691748681226686104892630624446739242656188722928876779302966861541318639828087228655698087116063391359297877860318600257857134863230221166344263575353860490555239854848953315226365910119656775408834354298365856562576894101779730103817504764891212413669583707146812183792666299761183832100164102798191129309517907516517827768187636427508160889383613230690787234323769205552993817613298566257817807398572765247726596556845876180990194212757569876444833151026929741376127765312770409161397073620777918663832501440308107159631533328053021103284089110784975116926063882087585273455232559952628378652989041320803842023217628064259198240280387577106867693971399608341052083634167638897188768639401039673061977076346475487846805085820519567550012787401777130796479946070087699419712598437316312612500483682788805297058952143549263620653672901724901421902024628647140520593978756139671014817003560661369908583556489644296757057962810639880129886845448370616672659175316829105899215589140563682430387613649564928944487558430237640627155360651079187543000981870168733534696497822687442733720889040366797245327103488901767473530779676327681673982101985818129904263378390243126036827945704780404074907989890081052566316713713137927723626151526089225091882973564944025842914433064400150315139940628048517307288953555560184285456042917685069449913859373890847815736577313031450922194151338631961550605089366212139494090236491104556626730179878745253324482908023502874552696413413608299665742456212186716370663305544873979034348752770682675263286879019704119054404842361479754259627478990836382782337423583933582078479591093045716473811064290515306940619013969444147354222837470720180599927475647583800000409234912364658512002177589506893344371998113599315756604732549495898277958821031015320042802470744365874647413531110547607983489450021406665846966405928782162761531275989339199580675455574231986403839756648317237294001277807737173720073893083027857926922978894520463978318991422946339988519659173817414882515972743169381670231421359377954037390002896067386047129051163897664337254451502387854323073778605366329311690611053208035457815997803575806853558450473119430256428355606545891035772378715658684285621155564889842408847765578464937266089704007198505234803937600917432799575086812284304243805618165412700832886273206234358081954962774042834395163340379128772802601727094435488494787511762009734044242127725631276141486002279144975832389687544368000672739844228303968976421284851364042243795092315065983439124331489111633043903376635946182781076846524577038450030944188364465264798154995411143681736106492732184542995434892932449663390900206373798213162183364763853253228900502201843560692218744192159573422606374846611634360545038003979879595932092419434964424375979791496327711192839283129817134752360820780080616250383516494991467952876532631795099210263378059514266175949824923247043638867831280218385978083175773185900361512304126991674115654866134144436468063841834044721173686537204600738604962048945534867476353936032562249021317694371579140678356811765455561443710183771890350480777267236435536279544381629401656538895778057617507598595257302065177009553303104908971074166481211434262074133346182705936625414269378577216409114460278667609221845815561843682825254309638191457081968901292772442207159720028914992915055747731861875803841168788677997976786620415930589946533628095535831101190922971954231916380191974334299242652583187163537695123961369514389729432727596093195233316901280460121462428879614259730526173326487821637883500204116681830273220859777940988841860691340691450568473012284492580026034369243434700481466126787345237819734694973944546669648650021415522832420395302708237974753149396301123993433666378522031839592368146213942914521037384174287928574644899049427073632106167739061726001739512184315295804962615945723513074038151105800217352048564844332683491077621852972941447179398150053473334224087040319512682414033199172631276823400339976092775105570349669493221931703064841203370612133642690017630055319575365011307021623692259027829898369946596201610166328534773421520451880729974945777401291971651981200977748671170161221691827721407207269008234955797451551036217628937203226442478864201775464523900058246082179563726318358489469959576912200942477022584698861006756290420153005884618142956347071710063390406939500107992869033386992649300157207163337508067541548542565385347989168865805594621785985269207703501878594698399022185897949789268013762650490454109037519975631720772850970629883920116679794893050772941975529007201205472407501894042948394914508966702451677761766454677717260760405459380613664959296180441286433330078524257948935798297113814118429059810611229808435819272361085207800840313305816106087032074576232933126103761712389232633894575958215630541236689244351147289581931906430440231605234303201669783202524743167466683889437773425125173402513816770365078479033104795363478575590157765191478223960366915554043972122685093024099243442647267603367063994773593830427581542362283061747494225063566807314165837929895141943399137723073612137753420227382781873754709672194026409639586974860452209279911498089929143054663345521086057910377942681503135668444997293280718736048435429636948215374663484403731819391531319321087399695961329827728834030269050633071342083361634799073076970903063588963666046076279979496652767206343756987198537408065312413567361410216936455585673039442954102386716217063229244048161434620718461186280753068920125067122662275802845841626509302615206743500948977011288410369736364144801027424913736243657512785822883396938561514431592237492289705677296230008802010231212067591358386041410278262078878420640369843897413816754932795119989859785534019288144794660277492221771771575720043123475242108316119025783977591252518494134216673037874977582520332170984626141374605419060159272836209076987561485434783221987089989929726069700126581449004078365622596090965111246167063014758731450579241379498124550089177582810844145043453049380920943821446242676626909165348685106653599111946134859791582492631872774610351306730408125554321982967468365420150525579532341137709761536496150719426296738554910674722841886081407703286757339267841134035513310567008736134349844197251553884814042877585927344076059329921997533695948834579491662932573989965797847194706260972727508444677356219200874962932308772397135246952998916773280778388399207090960013939011230234456011006889672233927898206975373458576995333416473836851484409257597829633960229118066898147597198553473375484407302239529621453215347133343442740038292778688216930462567653170481810483975148865646592995035631527866213192302082204738349532797160596190668701900021483936445501370320032716596587365798210351996635584601059517976049870409185813749295422920172691802278367513080423116089827392573796918466762821969351641957195784478275937579036350053106687608491692290649921554140050432489662203991753574829259038953984016560014885599905859117394145170052627940474123909502244733133619203267377350793283796394374286490303383443688656979265156635163099206921835193772291795664827880660661739225955029956766985979310668386345921773451192253916394067133408894314460880278159156119403377073864959944951535884803864395288856116626728450623444554789593002394708111216548048379306947392033675256077192756494809341855327226045508454753141997901926596792102764068559977994363050107241313142360527141004344572284340448710234960750781774864315370803873107063637502406800077494575046718593602541349836640763896202123499221553293201234651519940652679197945080043976909873821377844627371143085952383980752339332603724657752128711400714382861106716735503724959657213579548242879102826849830885698069300301437461795883628135062313131559971100478050316059544423135083899916540977537027298484933838805690163241299000035467797416791604987556545172253815039265941289464971595832257509730497568511064193919007125807198560401064885160113075724594363827240720610537077984268797503993301574759087209116943347372276303313085116597697917252359925689654815076937790091484803763102032821896064257790883738324641743753073927979236357225226858775524403257610019714744179499153316223144790855753798823610897090612282124304657738091078440160134193065508787866039348387348098671595741026072499508041803638109259661676223307076036376953287197090494151173267203579606028556556663854003193083032417657217552532028510058938944380088152624599278976110537752764944686413397260018817001292030521349398948464780139379343694540022863191263241321202436903365752175237236113114963373250569921325644365001672355385209621254755401819192941576012830821750688709398539003341699672878787958340790645096894698703990244084378322239265354123920062262789630067638641528774773839672299253642751935204308846935056673175306946929206474997633012328632497221437013800781479076141118756314122447428513013523661034331265535209528787577732453141069953746482157664125276760225877114940526679313966805479152096715370529849325618324933475070575603482275542118531611352852448984814142830508848326125020243920769518384785778894949549678225915335763275601098896926741755953307559202479005205372059431297517636939069270671504422870427137566111038189213798887557799211191068892788751196860367045378558109781419957595736378238440465679689053429073092372211755968191249038280200221942562325480409129790210008673301434944541905530377003940778147559546263690558224034881213434213204629009531700277899439951062607731460204359855857105810352693202167557064148522616684337156003026664008820881131406602184597790131747561088592362950996175735890830811693353475634159444888613696676245258965632780355222750266829886299808343581604204123161981780690472387721880055042397081589231947380567556786020102372993987734179575051793543985514661774252487375780136269475589315068595113261391490850057545080512808774868963417742581835244169192568629144654744115874335092964672831981618534820447751064400240177400844145453049172120438568671912232366819300816638756399283382538586561967857306278096169466404177521894904760317234856277619634400455714577664378871919023505556107654754183645524373775420859357314036378955182036235479644013136832767547138952268131882536865942930980371546367643677180093081350248404167326103578971965299576727571004439385650566930110066111920029656518113628724627356964153867885714253732105649125465099693354939235552015339300425241143495843800967729865648112485741600504489538145634370385373998995152069125431504244137366783567422585128413140473069300195712957765346849958549172579141246636909153456777029074277570114702967742669357723914456367176853608602807693890327284762232893045188225061406412586788410224422680486330729604713005153067966418272684114512545946322533787398539291957102610339581187161917810729993631493903098620310808240889017522008625950704949120855201303500951321159753052657799785937727405845381848224892020239374033883117545105912539925319918852481807794055563170657680628741919461104785140401313881827217466364757600184485336222055753021009678373606955212601284099131853772402487035938711300881111277436131385717497639939678090266398659640753764340714742505888801710263385814847902870908450635731972696686268171332927632557619439210551908454314392386561677384811382883440985004682423995019449502437265082366401438429620482540874310290741853641084673160831049624865105682078437582376153390126606351009288724198835051219304741623893659688566599775817295797624791741400556517582135280223257683106088539734464411590613663421905875056282622047101125067682686652845777209835491088246729461577608348050637088524608050248006987140398216422347894355270701262545914376018952381062493795841540970767648634635548454133365060500953705171187697149126215094189503970602025500441214446618827775814075578103287221943517053317434429852433041259842125888996162215799003395520889052369440163690175619760080619317080665505866986805408413258493808558353695259973264062037042954377503027278624376113357951156598905133605937881497252893861418274908968873456401878378372343123188249568219968677240432220631671687305490395501360937337155626180692644116138700555739118153607752268876666436131940895942599882240068477427041377974561559328671597006878234686113600601999294976130594001701661414210489604999063347810900876441509530563049275603475269032020105245866075808992048443756119765727975993428938794852998381247831747490673420473250953088912339220205242352442342883693987446924709787917346115739852908368836850413043180099803568201012381463050789278623556155054459649093009721067590803266619007234150364491937028055544343425739314905240315103404805660078440138244347631580739583168096987832893569456617044120331828047522316673077514265451742757972787144191642145907214427168610740750568577720707508071882547154154110512636373632273621219430509052908526051273937380920417730489932962927548933450352160723813972582916705111253337742346554841530169720681234869048065782951952396013864483713463013461248869454745454572814158652808769102421992749710649826674915805116816418406215799798332640201991850748475219047405351398173130034266412585063902946290385737449130778230235169590879984302406662551356975371985203310599839950494892326327781125930781055076248899434745260899006871391248361486513569054886142371459981124921652793624875481214866040001803156957774790147594616401937422531758625103458218624513801749115645595046950839277252670511221598876067542389224693479611859429877567025764537449902051346399834622379188046346198475649913087500817243362561502226024962298954502698209133610964391398461323272249456894805934224945648924632960306582679395722964400772690501423389791029369664572009288485344655666005498041267573806152570992654838629461245161296921979968084717537520014544052670193897100998243577072093892472149665813100985113429665570565753813304548427158764865255945742696887588168569893666812054183945472838274226202962108438767366491148613518922772768373676830977306273050416791757280829889774006185298831722899806638062180964275682223788675400302656908333977592207192488429427085149197236582053444262449604936560436367057054083002232135615100123490013647737649391125102667553840005806209099798587381917954111408126155925656337401776407027813321843056875339681259202907222626572639136217071792682647335902494561567922517794928581069882598392587299814695365068268256719924375147373934755270026572698517820508747160256328844935331549206805857207776487642251636553944734704352549568314598286167748975905977254201881250574467271390387969271241029092591011287528588099148350572621824609228759537460454186930099292660917774581088723886936661867275978590015176884508910067198280337365818687153637744244320686142722642786788204565522374714166636280098453081238553560456134039695889970066759016797492045332923341041884567945552091664000553164024699028255838557817823291948556459666992584679085377173767410061381141434022643253500208255308956145430570927267989796112095579747597658331625450532830382693369515854635900379350192587553551157218455962720282410481802578457218988697940814050655269189885757969369770346653451259655983324786576289319816198639095175471094383328304457231558388328632608473649819352381700653374990912192720394968952008335218092978470357497333410677326607188606904216473505828150658615383620529390676117550280986389524666421119815899905782190072914848516325463860385258638790497035424210535507183848069980901930099530724651170631794572953257273629434339052581777520939493920727841556303759831676436016060351779093155838186458889466129028975323108251288584766488272445931451610335577226638503352995979664738076813479969879712637782226101694127422082508946235402340312575055765844920193671214722066245554526298219524922169408261899559151758950160557441305102121529583210045294213401189113340254865115558117888430759886425137082328421200793194922026520259073235233458400856741768869570231061281982949129162128918435682614336192697432784574166872621706727063581201838220055431858018185986131549674327172362249620118354755378232615479094091200726712442346251003930734549934580194519451486608029016531057056332538151450119890336229269518379116572117565209975018973025619654538884259790560086529071424076837126713241845766233856092890553543605654296065235618228849958194553882426040987214634356555057190400898172730047811916350712862915059514029043864175865958178958651844921795022877223402048098252610320477263659628757969130718353499831063196008738129987427397773224378146446688831860599981903946656550366084965028007001925128055885717428925664540570568272046261741352206523545304102905509546485782787285093011533218758605153771488751169768520606668591540550215290729439067461614084287206600877500029616945103799538982162546196593131185479475546580024598688182687752477678513368375008683832280352608842356707798960829604182689481849272121383841230475861791012937224774798670969935404961612709633702313119820467204806949316990471565516309440332312039451288920695064346234641803906267436018363850447773307303162862150359671322216510948577267089486561740061696392342262663831816750823490824831753723228619409682682422994007981318845753445876974734252613807362045942871167071293273043866101526308184667391396122575099662109585393446118741129906715144418012016291038892113344987289673237633602598794825337473981940731351455525399732685970065605396566440412869537886661099319104329347029301644308763111694884437861622645733000139807293669979404410602345529034898542111718017930363351926167517633205797497292037124604418408642694587544043189850781629841372976554462958667831487634179934996543798170418856671697873216057038438658073422885003830625964052086937738144561973824778070310246770925369146401193138257136810733346304793089671028203555226106347059778667450542369355295387238763958154102043777081083357298769595680352880327168941530278658338965337896140956918795335686272060314966417137443685501615858883793981458560993748014556934067358713860694546980928990417651654956605034617174169807861995422936632218817746948875502874686441430671938720593923073189877057970379096268091001301568124830820577704399758166154356491841830197715482024522198928886675062664684889153405804137103698466750306574240808047126972975492835674100578320449497571474795887584278453646356773100169140999961309767015829782352737997762155865300281709040733784931841568530210660329627925272508092801666524989316023601462553376883266185091371066422385689661313868959018450941471365608614609494581486130972558160799603299118465690363098877663120088298581471399941312056031412165876412457749662262540149609930736530854798016204725559836720986648638937687536427909783759967643133587686102963198313389860045442766441307252064179544461565903729005818206185151271236004875723800519521844655648544581345350699299653251700163774545821461198701687277493231970690412957366014662354749280285738327048521880990611302913233011519799808102704507715514056460650476364013657599665884425707935776099140479102868509994632217171291761637598656162504512205619418819378583959383305261432640808777414166113827665679843204766906030321220133096572943766612856799399134752054118641966342059797238198863682761241569936479316540867217478700965164325737501480462756565352552603256846794009140243447687759695456187305565297714837390660014062517256389600144922210248989166716209897072668172810477742451617964952405792465004955464829351476792529844639403949426462803823676374885135324341551776763888104054366991890768094379469196541338822793135086324818130833336610552854263177733632165780403061093652108220165015939812221970586435305297376945898040064754803667316389704531818910500446708506362084174893496345426385346725314474992551702874587665009829402742779600488328972261391063163016565357868275638978997585296867901329524627334572809347921394371913327468387927356916964221812102406203021494247808715226551150745650921831731960779604629966315335405740258542591107904605540270201572324323994645723348289304014876792371400346778772985968862916898590781739347702924875582549057459173312977680165948152885268666915414312808390145997025121265730679455042202496584775806723255474737734145327334255710057034567211469420753302189279730243409505068834188411083134552074873761867889715748643108301295739221724652470051679328514738844835322177709866794005727769669533397421786794926430689584367567121022902351739250848678459423698395076843484543141245718053507336139953373167258889546614924815756140929294667789479763381299451595382165296451198033262504126005559671393495813565505938653664488193508126041899703180437111354568958348236369510165488200450190395113929542056833346538641294223325498001657257078901217746834202242480160478443459890095118351695129740076818618494362768831265105070374597597959339816920497137316444140152647008386913508311857185044087115708275786438723601171513646671850237517912075097934147499453785551127614288680206395501174460354920536428468357659883249268865002082089837835108597564403686502502600658184876234782824685200366544283717822270951060313576269017055910321254024737315944941910089681937892869400171700741863361145962530316246907709463435932333922545013759693168279996491722132972474385321808582558597319693145182765899360193891670201195472049733207095772140930498546767638275457878794825356954345669409307000492055503324128187793508100183102427704929250509344374151898018423129826188717424413435957598934953702318189074510290316170150010141568945498800755783734330009819994562332897131787938431701573651539689902948167977428632163851538641369754668013962135368412560506244622928229629388427237883516232827684656584187117459157208674355377677197790959958293077874451025125833886321452856467557751258642210217824545410737984024271772972374311806727081816313712791250081239063412331839018871202871611435032927697202836384206122460533905840993818607323632889320120526802141869276638154305660158716509628885761913410672248713938413314004701787214137566237763020910693981762693787244067633568454983370018277032865255091672179078298672539811698663108965536732560762263987879458484967724260002373862809513540452587510243080499937464275210049919050282014373936455667264051198277568410145027940522173275651262449794802396068695245058708070149871135025209689485623240727201132912539501843876638516466688822665997522345884123846038187433764349319376277361585043485775282845732627925625761011066352118501453735665744464954479772493560157608002288530542703550551464876179475032029563982653452712643217247447061254065770003670634567175898760299734349911384469106109250758314271105338114850752581582154875001998415920214012713511458421813269499625992789747709181251788715621523011845406164651023927482739091718375328183781106057173312080051781801411243446133675090537360134996452658413316182934984125811572845820231847495071892133588067702036536392688961297198741810845584736890045318239219811113510278196641462495352984621038777731086678194999765298283800608593626717970729273173865049898078650501516167092708611191762137367709579217985133351947223958548687582882615339771671091510344934424579489808241495042800803266134630895129680061260925769003664202021259211847107974809010200846393521035008618596333009426630313709132751866977063777010918434859497003623431349903233346306288892297870977167854335021992719099683256971383441805018171503532797765015590681168385559736484477825873703314160836877970726896079868676596943503101474018456021938699974266836106246206564046790616859937200704486399105981329008481641208940341996949798523702631978444592104448569138583610775031510862446649532419026365677826176593120792886276727233571561881145005417992816716460743375795109660584796166173801710340312011894678359358871586702271576063330252591862527786069282388100049165394483124425109819620401741016695274275491871096793342929475386297978676003233155850758204648424788094680622510736837805801387184058058845218229098650715279315934197160164226817008494526386126003908286227693479151574563369098131446754718030596113675059422035798270634983163748425862892732254906455959636280231321507828151116517815022949000916220765570115503217320253689930523118066214126717970915716480237657255836962205408896740055484685731672603100524943897168035185073393803008390590645047453573576541405234783259368381497032192693097203523418507710031056859253553120540614098286688735581618868730648931129084866041104066091988779731988936382960114730439820516356296876883785745871004442262719932298113983735745276847899858290179995363314803028880448859383537042531854072249101857298720838327809163671835252477454310952589224292795343023579783913350703203658733943854639135558489122021426381288803715467410201531131079058070884217903530267669359456794638172440199487031167481938141834392560225016010403979800492847235057463116282529015818659077418017392154322585491306082476132695384369691951032863880178256333832341513392969144491706320134580414595749914733794259246366718726463166034994446521960521641515840561106492965615992194389642121504559466826623105572944157382016363687113828707204932080977220825973863532279697107262680669970500249314879900360984090329515608371363079257244001570237487362132597450873485029827981609622533397488042643638906339426194703054655656968230305985707973495957295942502621097402861482927146093589652274961912510629768631923895884746119516897449377631768760532465103885621875466271913483573462912386666865797545375615019133959477173658667136477898089351172508920880758059468566132608776751932571145807077104224843807186936790253108847779219906335836378191381990270335722282076855898745274417004603004661306758879471438880345124951285721172331488807135454710599086766459332746125745435251788209059830384433919574123242532227302761516902364915421258303067237049320773581717421426528453212276309219963164121627432131223839314447222662534535275857185785182014181995772870493196996542529732570183253058670651813467956196360716840519079735076535126847127758577161236130474781061513882882010636859794847510548847411472151719051604426171195864719901812747473251940703232573166831908902027476617450271760061353383790910049696080240919301465710441352405116000746845138670009882488557800389732645487260340097220013511632587754037709400447457204048855013166552610519181937021750211059121497153194845845880864692239042252000072530039245177640544245551187616956950651454273883587282199133022383339459412430516372438480914026385039611682352512853939687806099427115334198142872589853146476381808307527554664873970398996027071517898882434346496795254139631898394335337786089260145152603189004550559481015984481703927010629967079414517248028481662855056482230287519548031456805709277556136597176880498952959659291824289350989060491944874883394852838877231556501120320770248068588435888282342122700243463377342668471021928597588382788733783440660739822740217998085081863081553572523118348899620661948758708201755320860595486461003927725887613996939739451389718196318408723864717999308203616692351416550676378364101234548592095212457342261306056520008279339978807137771119122019213992184642127584632645019288372338900482428854593483071370771031199266409528693795999478735373327273970368216544568791448749656334632533606297370716053100018717316237153503988701336452215285920381003769207456726056022515372268239531255153188692182321458114456942266342231468635124054460837384062478634223328302585638966381901766066486071280294971792636411144061374239512489584646604637109489043336374203077244193074294357432716968949446641937849659579641901932206161251750623595957092381576347454933762714665033389019194853730409341815195543016442310424883684686029601524632136760873592813030279655151498358891121066817887104546760283021856942957892113939880946329958361032402664634877407774724343580527739242274249453931353318163699347773285121904945683311753571333154411691145031821885617553506858633941136037923517303903952040530777055016454693114944631644066472210397733263208143274892113966164141971085372642043307832736168759979326307247535360099231183058972814988164270952571499359657734246502866043413100432403653534332318742729303084597110458240513100011977754759686998443645142131760321888079540014795287760433395272467323755273628209904661349985221578202886662898019570472305231763690308525683053357334539110958247276303512114502318634911033677925358445945493393461924927595303391832000795479768179267704394950592204462519187206438805844863995610207178391029936390625015929451817862856880995959523684853118918274235155177141746286714212429000949030017804822206053962445306078010558922039694397751625535659930230541282620812538329305544304513745448872884890263784636597562398710398479221782399974852010204742731159844561116522045720683995043722897803858146904365779703037128785007931815838161843818286787211392259491078913579274406499613794911129753931231352518594215443599142794911195052035135398779808593908344664385495847654883031994016691720664687651559672707994975141694571208921363072920389624976092125233881378236924918093320179488797043512670091779418769436449879139060998108769511984249696406858929156126241368313920871813460880976675713085220499158555213694094581083486569915425632323408709782527860132339107463175229499374122307923855504478539054348947100823717986017499953338166082514047961656045078732214103202306382260385115006936147710048668590863315229034736116857385052211043451722503885297032664401228494697665163526847568677510287200865076496555144089860041871041034558538649772642124101485436621333681409372884187376478635269738646224932910575384950823573459967640174265853993893859676204313036032413370079588887463577402791835091594821081786303834351594705731565364461592200278854572061632946598856034393977082887168494443402976683829215957205770583135814148348930162266667746603176694384880876669379732621703060824930450453912370316539885909454008931758806370450170110835372991312904352992455467244808385542548202809852633178718477041966317574129805782692459031373284273100962653160507071656266662171102821966562355236992209735082880225929724180583458922139202961352793881845781995438209972197066893540391894857696415521977303225804049100612980263066864712714505825016575613506315965952208811343906691189240409454558857093676792284848477780008835960730901700550023774905150078342399595217277916572655331847498551274806037979763999792496450708374729904022749372925465002179360119233282228251915997497512561470592458818670014523064995388263424001880948460262039393400972304298490436292909494183394241642019974152023097531690008120594833149511675690553995429279587233021652516479889548480254794720922233977526729246251597707589720764475928105923796986620162043518124743619918381203957566747552591536832255470037275208184778670024871802648165267209279451389520112796086151338738053667883392760881640622067200988091292092442528607880181170810575523914437772393221589168335519834115506598968937185314021187531490912607674203808377742668771120313094665270760896362029403527162606881332227078414885642376271716122033115076396033646553796225530326769286049056372635921880329367484290784368973015917005026924160458972129947768002282442362034547903142133338573413525245678835240533882923809386222170191943875210290569651724678967346385717884358163150640268938298506256152213429459069943042587083146548581956290965566691283244443727736361964542891037901718704443770747436152279516513617680544711107867687745391798743426179959957277657945805824068392093000961258920672146559539865579620191222869377560731864704766868567206042497144568800864680144489712566347221196796138818787313826042084038500202411180659747277281131189742648434764027098922998501778790567383085868607562464008143597840243761537383234325911531211305437701074359071818849202003242774286476132627771528980904645143358544164609706946540259274113755755774746512400882285629570888388937787324348908359202848485626661937570028677058666889133991927720671564747399822558736091980583124330869121829641388637636567321216229633237776565762159503901488288240231475953203807205954495866977587377526640465545765310687808171312918264313703433622196591426891966724740583445720170635682911941923345697787856395575083912380268532822859205809385781897841468311174394231513111467752355799895647987516786357130013135370498119670461716015764058477328262046697343590638672449794139402595659753430913353256276444785134144925996681319874735123492425895128467883531052121418539886563741141741912364980456499131322855563256634441082721364464118162181061682268731659183415353569272451665170297066599435962129906962219953289873439563549247015816493232288882069788835000129170236204204927961859011494494312092217294307810941779815182200823536773718409518714775634841267737151386248074762711035690203802269102709989413316547870026326829693486979116832838494405399956965791477207236862940072176240382889735800636662007138072458799223292524446809943031370765221567214553015371858891656882879635760101978472237988901727736901820563492246401812721683688572526654698783395630706045871086357603736956477388515496827132674625470540070374074135179206223368983144799381476695090311000242817497125911671678985015135744075221326116962706480050371371043740977621513913007678638775269947757109666572257198578681351495222098911605013028929553283880156144725013458711462618450520544670063008429969845918908899724679979126234289370428803239977024858676243132400578444063078844832453835238508333244994486232179543762479163913387642487122264418275980392833417480852264629007298853487823898169345635103282185490914230713077539345226022122454246543647443444749574612509354387196889387237840726967783788242389463638808161849731380406529506182491136626460762978403725316598530281187111652420592941253597522327731384688835698181103201157686415037809532983598469540882541885189196239488088153530335374161912177155827418876718119198247279419883276776614721365839792393745054918807162240211919542299081051271617582709325436715664734472642206214117776565945197281068127529446899320968311680234569804932423839370900896850587294585232032510639925970760048659000129204119100480709815375919672667584677047226291789383529980123685228293037851761816454818389676256780249636621922497876154396600370693910887030820164369239663486332602609246835367224681107841777298625583318066454835255819700707252643555033384427780865121082860627332558846009530297883858821854732226686085575184325537887797322489826543682548011146919447174133679899514261201864527014757997632005256954208884563113346771714526301609402307263394320834451508052736776626192538221512311680684106768337749631997502553850750348399381374578632895676932172554644023571964170809844301037776687069613560353194431364033444295022258960453141449004193071665690374168201202711785910096389288007823010454609141647493321839077370235465613343288524698834521564797217105062528497408849026131345658419296623263976933583377760705639126796998666024234598661824651417740455910546504655782896014268601838547554507083306019605305619937479915386935676151767928753595292772598191847243467432173650768098240641672704376607806576317656157744798854259226814627023443106653686953259825409075025663254781290156864388148013598465395330639801186540886348482235342215314786109423914968913310940652855707956448408576986429452900864463390719189726286155764617115826877218504658648769924464661676472720116424179480218801553813212859079014007354397570439966279556393344586859103307893324358054382084669141248028464294008106545663520669293825489437401453017729412560224569420485774537805092600301400492246208779144819872418617337925797072629647389036679767618858468325337930560190940427583443975279565007793656808956434033894746421674152367463653724831614305702703423684524803619281593037903439791256563556406453959860147422919395853071438034795410656058677162820015415931490309350315373974345597902913515903541752307873273938345557117833177461385790810412168082908142715629055077050752261377129278179985670279812505002331521173243958240303176713196552624342695847622045513616314974810451898096337479357230820294704073494154351098900298365955959930118568508073895471294822445957938951121213715695709544720747318154788451208574632892265810462585901671203333306801162165147824794441735001783928624332073548479102410531756445885694625513599336450644004810779101804012830863826078733208206921515549606861275291205364173635238064719447398761894000076318847416003969308747746711307127777335593890932188595607394149273359099315174911764953388370455507829516470149681735806860802970826461742968624513871183528585755196134115317452155170701440536261142603744310480163426730024056167968784902324263756626284735383678467246595426324490421741016439255224843633977281383444115004984934906221869590616516644927152477687823659062768556482362673033941084694093094851252174980241310966281278129676318644435911296082772193715271441856863984428916980763925656706573134777746982298924974843161337466017223872310238950178114682067065864120585495071360382380610382067570049869432829023574483652299419643132696667777808759195347623180981624047313063123494811309180957953790241294936268108034884088899293708810794319297717024668560397555512405408694221160003221814475265847247882333527888563961934071770003049013525769549600068861384143286296143799499169894788659781206269003037779210005519895085969076834806423860258316535569197764823292228959480024065899728455486384336982668660884016380944297362372404489859356976763265970879313661574146858435332167167058590047375602978527350305116741412561182785578865656404990575763746266312208650534665672197230274968648121577256671408865484329782258876697522834071852587514851592322861127884275188203987310478032923679600425924302204853668716600690233240189029244430895767705170534825506387923057222466885869443218988985588282726075363451024599277344382744595061447265050303803080174138987213831938595274522767605734628594538440858006208464323627907566924201086139279127483494588427295758870558939420210822442390876688815981655859276174001489068853482830932560005196614161862143562979644348771508038617440311337474294914291489679041449825397108990733804435804986536048483253795205037606244881238318215315620634998236995752182549305383359861680656655345082964464902898866856948358870258004246637820974216766789976055474743488046013843528143740708173842594499461973784140106901295630956353722799214916587025802865769734966767556122862468414176170951450729928311143419594029657511439472813862583601925843391468999675557633778146323236115598211427024965966118403444294098419130649959965602808314503875747763937343958501898683895546810114402534935116510560982359538487172969162253888143672926884439162013325048610985003211147653293344032253794117581598105462003333119283347836193321029367858624474096106514365748210273512286729288492344604238599460827094892041487040582122147815206995960314036483221147626828210212700419161606400294426437049544597742795243385401875410271782915232659032229269713891198572439763631140875475006857648539092798923041927668229728364034001163597414353303835267902330123076223012134725086896658646545522191023812550679109233944038675677016207893788226844520792836368039311960602603972147064162336874068012767285417405873642858465995042057601279158941521936211584227048736627476224683118208333555364438926701424005943512895736000907201244811189741040887583157790818922536298971000102178692949677560045884360715550969430083228184086524596913750244582711386080526205610578740251133534199642469365681243794017401764407057515855093431225573828882077246846740355712844102324437633607102480570995086274819813013182664319411503120707229161325807353941864749580426779406440671729520036683180695754305303441563552024343156426014345117875101129207772249679391827840982607105224132897488350019297639112844396357680937423419446619208028545566594244472903431473468868862195928424410330037365525472724130943093181154682539559238311286740724161173914529318108860461944324179416061834493282802845097733994846596218791508818158156715703171744972296998437003775383089294442063297665091867942628255692313194229024502623641049038594940360237029852728057203670475361060674515190180967363316159398447360161797896678000780640118552384067818732592250998213880210523190260994115804497653689355101882369871380023576173234169217001897770184164243109799558072450279904629680501659692247025324932214735259805317055214349470422063939076095239774931192050531361988184070466080155401387555034574716791402400121937491780645158204970010471862930356671532180198637464079799831500521712173116034243046814477587332122170333234926648407056901727636696507417285850051606780774858255188743577975840029030923935476450422493225145345736863662230553430429095351826065545145316500498133233859223646257147842913653436281602551773210637226199893031371308466822188263979504811521658627601470026257228466793748360767231530881187644822095631996871863992348842739454146341977648780256032862876957770413344365739726790272871155691396036602148527130552546716318995077588014744255847711880160538879106910936531005228874850804593618940227167311511869810443963040589827322100103022418914789701441149216208674749472180033555096547072681472642407782041755723860829867813840785200398034010188521330383695033194881792840814113186873314725019069152781758749337519275863987362898717550253126779500626919287891344807567045846080359378058519236930390376390983782643862218593056724357899730847666435459969915590216311324015534213216792176720722690809824634827066537065450884645721995164013035064004368306948726133682130853740250252821346320818238921383229189430976563510956025069968411801357695271204453749716148258646429530451759392135380475137864102972533927566922901018218086185113223901670462632530177882695113740054199654853590620950690013342246145660218484354322520048073145297714013452562200613530870720690666557427300516813758166848623248944012129301539165912068855911700137039358115425165363022390015711025856159244755807758367742040881104249809879105537312561843761887101639500847500789788814568025441154744580753442265846352200947175331128256991865073702376987248394195111224626077992232445094252562988329015814155791959019531611412313077456578226082320715899110700688445929539351457230310418590590816879748869519767164997637941740625358721137764935704718834219364590372248428785847879206427631872748587484327162453033493950378681739808641455828686979691980129476969170222815991683254405839152172295740439136969398274565336290525235708244685859091924878529709812769325866079083133294454701442542093788524137160434136811229918156945534358054691716726984743458242614765532763154308241732223071304023693932045282666672074770067110415137850609592138566672230982834230644052047056151840065177215631823856049119990634374187528398118211285117424751451574655228577333563386643128405437454163135352279283123325614685878395253244921936744796270726520044306566306991003343514614355602687098033859943825424188053673336549871829276216694266943594232991983980135454514418669573995495901221092715179225022970599180872442906549206939223270786264824264322655031300240790738621942709986542657644625499646295319139640681437939132290231322180217924492508514619936786720885523931229484118670986385110318656693674059645559793373775564134602587568999984596587827535465221733900530552939808428908728308278455542486504679985516549887005803945191763225045335893750845723674624957803113156725123250235448954996785282765941988078062429729580899223292172818778496360426677067269614332074884857602016937304355775255942247635405543730356813625822216956180290372215843017176025497227079075305859548475894134838716357423996534058397573284714968838467114824972612511534111607866455955858087064496416428568397487857860773541763848537638033190589005160614707331048698009746844759711170181942918273649450441200824714164105493645756821108066265023576754418552866770625289061894874035435930190891408499683464518998062264331938731297806511583118720394791475917053323206200677732799983675106919086775727232860112008933878422255654958028001238144738819546613005400307981436583011790791501169658234568205253635670776291087239357476183324555358233766928005317595601509710932739603824682354177374983766864634632281007815869480931635715298014270243786636864020504936165289275768080717414610182977554833494471720101803567830697961384761130699417662007754844378047973546273017431317372955034050365618747257756516617547347346967933171216266418863294527363108729527683981719809195758819026363821342347896542714449971567591033769364690484493855160393385428025762772656804676782288238436391420121957584989552580690326736183487240646848081282102143757490190180090213130319340587566644057284330567270516417067819286494066680870248059899654514713614423102031657465523320593182256350443475656774354864620150432335532754876395192033901493875601086176136651674023324147366238114811323943140762193137353538458308136324500951363515000357999276143466885450922711442006183194637741963134522567134512554367799957067613306513478329968647275490475907854117878583756890495628948753120167852623575785416592175805583587253826498161259703951603694078732185914903318560019297764918269911491421702958135445104736821639281220173620840633520512794775883553479758695673486558495205280818105798539692629541901852882316355556545423712402679239767834088846636155511493843263411484701558020235756782322002957244736323389512270853677689955763081036346861984354463169575341035010305443569600763651872963449665433854649784799582101246645128742000606489005076305284382824061921858226524006809544007764696430076055626926016076252741505743472446448517286246143040357692081073731118379046765945137798310996112479146113355295206689533697918477839347482046365983549044687029455566819552428936080049484170404186774921731185259942933032125835155044000877865895796892944666517094261048485544216979286288230626201291646952945458722229443787999848614890544408856657495081766813601606907733505117659176866672045365611478849211700873987453126912443424200366146404367317849105854342929554765045432661755848356208074238117757617739442531958633432719159954784225904100808894832309169714108400893688494023543010314029422452652680401473901796214671207739309473645908624789950081434147149358117262463006367512030951610320458450355492593779594936605129248073657364143224367882944232995129072200758711565859726946300519343713421412322706135831544230609122859580030979561515877339884050811644215352353810436693302442633278296985251073061962408211564911736049316553136146549241518592895406448751959611529255757004581948147919557671588557588960231364595545075444282992476342000066065204656770676528940242038883719652945755421467576905834691296932551344974537321610231162153434552268872330788590867554524587802252004717771617883537595694016119243858328070625059463314117455799862238006608402718185117806989567373528378855311438739957272368263081585556638341018278638080649467921711300912606736128658349676300632916725175889292930833399753005396632238603369962584281317338561677054866796102323924786100432348077296993813774592239913500066910130300614505944282939433840952619597078271724780638547209505646605692056008968657261251044838679549845822279901561460909037030926772719806062342400810912870928964431906109077978675876850297409593952090858123444602184567783062209629542207593269750294366814819451410588197729425068744786960219398648515175682823203328877405599022833046091230717469737636954241670378117534652029377756710279226953309838612792047887473119525041886492547986857556625869139921497043740584428377977228489088178890350357483982244350423845005766960171935608281100487513072480428447696555909422487993530609591453654074689898820392724285029567041727341208331492468051519611323067841374010078232176814942075747896628757938847217354381590564901606649845775995127802689665628135256199781520871070429456007394935551669799497150548608501683965292378556462340469291583964263110956296002888323260622399262686387255866278976315227494738766403484883260503025666828153906336021623653977958741151549485000445883811294635760978930406262316156015717838827752208567743107816265507670208520655489521825451315866944814781863545303252280372579876111134696898595064758415423506190040819359947139136469692744943551133325020423535480505500815038154171655926119688238960996826074611339877747024348272763041254562863516731013752923710939138694421684850901348971253727611294664078689966118948190489461382590271736033589543489677097025907149305525304108272547094967654665257244130154072187322188945901218463761079111699815642802079290314317254014678954465486648050986458058880428275795094918850656846168648189380469313355596121303375877324835588891269183372246414739744650419227917611740107662231732143239936656958206762834080962656955461572643754400961858977713604819713040595514344013174864127300225978189743495961149561045327750971502538457191504202294463942886977756825854324391676993712814301728854222735483899828169111801006180687519907543037158247524080168517744019560913486266624163537148735208562827862433154222277647255402296372593839900423891657051796349258840644950624049234726803026991341350370717178710651955281604230506632311151350885127646839402150096093930820487585832050720814994424093788877966623833120243909282810326626868980515614117108276219421980725350028918507323416138230701647567418375316483928434140671544273695105999169386667089993994047245034145257869726720183476737339477064655731479319493029838978514847052229517193337660787368390084438960867816074463074091109946966318085325475173487862802968413480904423065793934888559209689873443491624129812236598791443832636846928750881670642227053562787788934406165260465265691522570003681335893812982269520968449459709135314257899803862734919494820415376583595647512387066657306994294515148242713407661013346477068688780137144804997143898611694027395903009992054938485319547284934939299240605952505001166285425091372965290948424265261650338924885238167228862198356721448608299512719717259409682201640709314571831832021670760478236890009755834424957149487099478168545310897459060912443070346440438126873350174932765312141853484297371840071578101088036225818210186493709839492713330405985461855995579538248236888481626098641488992539999971243136926494384741891585277840199832491616368146345105967431465577205087202754335258087049950270014923519151995268991729717019493761163593421168818921978857692895461587247670234566542557425829716498611938217302611581684561037676980020128416263277995677489267803389510738794124490995302034667189992020471125681667721647574612710097964061528763915436479976482315839747646162794750574049784820514299517901634124128624153920129258898786060204620937487115763957778344378922407296325501416295326266920754997204620699601065472568542580139397980619917001362625655778657494323732862031732065171688239183262045199136199492658292929796057304086118109396327410423744449828126536068556917162257478103442124254885097528482319114580998241990451780724385022041517018712315348032680902936355594109823959896983329590286986687421289356174846029733707069768249876968587448189296373621938103688485175385802879155911464762552088749049486684618811882474154048036178898131052148730103497819221766099587437772266544578499014307908968962113472377845224205971024730086861398559154384733599192661958466624171271317234035435883705413320158598118969808485408700275087301166815166476515011054255041628915534159991518924923699371050664425748773767910733157674505631314117431131556983231674456135667912292841196259622226846594672315354190792180761672189598430961881386968733093938241551794829333823020800901943872493480225301702788598437583459231900923290980647063880255619785707421782941273795715449095537990436607925527840768290686451765378874959653405372315542335564942869356958006842419760191890654636354479062373863696091018024857476054583926246383474078845879724246465322766197973048856502572811101670427381016744854845735141364405069109253434850316846243172359144392376421742975328684203610936576059760500657187674814956308144061847721836146702801556216641397069806052894657608945311958802613753739573328993747437544372485309827397771096827880425613596222459135404994204349831602999210941804777783473602296905426205095811835468599200424162920873685886498187419118133494281634535424960781637033642584124186065148248790362008402460220241220512382429408179068800542939877678600115104897652727588920904252983171358893903568425441446780636045304438070935338452652788837832408272167456734952169167446347305722794547277758869307886375975299770987833795790279066945064278734697205059324709468028851982266619557566671230813151823687055389286009255939612876226941057062939708685593988984333941570557591348652236745151451093079203574630188290622550013899089709197105014794703466027473242762717350069750894119036582374949468876119919850720606447455735701501172475159658116387005963263834092498303580185385850726711147946224978340118642251018933196952689151191721386666977137683017621002865761501923512288317863644844841508760909999920506429703538369898032747980792225941974613903075472257052443216640044153180416351414408337016009421257536162907593803568444496807162031953307707495342942268094923214713587161862518915113304019703399202829488981589469558381682894464754970350529193515072799813733386463244284967441911682197643009752167589980038793104491026619003959862966256003036410192449980782206798471544907928499325476696893176420571568437298819724435392866557860234425093184512533547609332071564832716574163560195120163948807799251387965010215983910213444956490397047294455045453575732292809570809984553047410147537093059932594663905687725795456699481854815764842108586082152602510128531598244117157144429014968565868957231884822442299570384423487795435484726106190495976543190312311565216066883847629665994326893867600508452867992337370625407695943577223448193773938781522075763274764798301423126912670972469200379113232332238719567451662431957476295428912933075417886381709359473618029242463079093160973087132066813784305206564811632737335745944357503763429577254908597679930736088322644704365828736755538062413521704707034525144961841108985723083570402490543695543211109101068544379492335830957537619316946526322830099018559179312551192573383581811877569219039255997713827519328496861621503711159467239097260684114496736822283196003952101177634592184285151835484756014952722440099517735839844429130374698118949064398393860427042896301344378506394952225290071036585276272525296163756405454826821243282287134197435731580022524777313324520837546746518208458271613503007562048567929079890123800713478729308680407794433403307346122327750561142526202378308834224934589900904371047249231695938363605709623880915393633288806575847944674053542422631494695062666737316875335602477517251783484193625775495700938888926748094854123752799326514862115049585016632600140632115621671358733558418461587279795260351155493199398571756150090431568015159292133103999541338193378146605087678386005522891505076123130561264509738424905462001744935362745873980633443708200761734723909722065910564545734058099628691446520254746133092543844086198846498282367221654882285037267613227018536381370279644119316064623718390468237882674392931030684636623856152914417692629736601957934874723896990121438392833355186338065046792778063566324564314915165922768070901589954611041539538894631804154967668456770547577577142634679545908039682855793595902727197210214935217682404956367245044774934250514633637947269458539965635400284574964902038566813254187298007177207800974430651341059435859251230608096377636848130012422722154442838023862925430002954061995029261098914141839244665988038592883817133248671561877365570884216846094334478538346246722953105961181923111835603050120119680386332280481095803853007005869605287233186450281103553665825522691964361548960036760368185883575647396006239415376526782884928391165849825642877679606469787867977939226493019417488403098847225122308950203517124185623509769905745362447843618493494715859752635017162341593262481764138935092700497152873119727884197753111042523836557195046469851527450888256885237482966050208530505350528854576822184180146428971227530858992053773711134269092135746262156429617358188987615082818775617676215784844338628395374784547840146216747669750969653084675333347358710953279222088765284391062197920643244131113490155987109595160714249643375317522542034489217713400317963954265986576757481306959076354242176460331388607336535505638123818389130611026577422999742148807964596800157812449862438039056854895484009031100006132788081561415835527146608516051921213380854836757117329809101465061467503732701708454212992292987797467298503720879651535518358008859473062375946954076539515936556818426489768674740840869915736225879647183190347383061134995813183540779306529974566204102023684931136499724204297169153877024927882195182075788473196750265605277996360061379597870857229183569545800263539452272831882546988843676362535921275746364419831048982129283460884353596719193281181097032555398877676269761027404429958722648396782782204815373027344914624984173215740193469920348155314487296032892841073240168431719074549648608261565727173695779041901536775329405159089510821615878382073166054511080023690014890022586448881968238411661456162742965074962739241479907513433538786065395107150208041042501725569693855633743495035602119584668897783893181404278609770242285307581772368190416681650044086692397454359998878760093403913752775417331580376551632806528778246792591482958852661461438886304376146956573435322802215561057221638809781472559004184558929228079607348267152544740635652312211187884056054124906416915343450847774764351306636635577307305059735088843283022385107862488315626854753526541501393915329976456086523315083749939429252899859995226196504881484209127903074257791044396088522487769922094584376877123821818386121067013361953239989281429980521256802811405003753449822297991086090265521163825509700767237042112018897523389175867223576389103669951650062955363684750778781311777950699659886365599414926605021103362133578396925834997265862599412097918936790518415972115295209741363908931294430437701517809352313133184498211386626676574386907562059336918101550386598857537366146244024490643911153448508192664652733026423212017061927637356673277941502652273912194063878626643106415404578584025443413678997935794334225680028679522924606380267783989401483897027704939711310853415593278777639515915477225292384537167824276381785696668144229968583323190759207890688354410812858389351356402059363547911205833289469330985124042855964384156863012694597135422175903570590060914326838314922587486997278391815224068197507208439578651141096888447921618529860525121694579380135262679834491442675574689322662408508590080671289242906648542483960847197086481986985604594367107179203280516466388416012354323879489002488226900285576759201997221281591107844222057560828841495403632510461044300994412674688050570656189420136105107934987054392739871084304576466820748213827325850545615260612335550185477313628936546709938757441364835011374808879842361090910530040415569063099147690336762752732916240296548224931933442829920222064363363615650225833415207357411409847908369947262798184068445472279954167309996635838264341232477213335628554866935354814375523722890609558803174191932788041181586379759971070463373485610867223593922973263858063408420067012508299061509442838316076857017459486457903775203318205795235718682010453409145843962801673789112517660724433525042680082399378653351888885386467212866329942148205332692919297764570875872729655109029792860327427731683195609701612597999186630747525332336803599230639619722059227867688860913243829142500456804619170415221284774013645586862048826662568532097363467712771253511054619413812349995941908301018580236572929649399853686972773074875649704946558161698994019620244227544375038640520813897572938710364428672802364337942450092916590756456338509424791700178916930215196562199903063230388856360049769276828445712592182524541889449626185526515440874433068854750554933201518399892801689834359195924352047901172882880163800173389508579687520988721213364801104345910531152421291679809302911066616395409126420502299179663315050250145316428749121196095349989942215915746754576657268409543986947485042118134341519341054809903780007812810825679750028489390496229083827498176073169207237307588669667416494057947092811011146399497660563051627776201579425375062682297380958652543741981008984630965031086665698614552601158315423274207838094793055376073297842730518942343524762449175601504671038345922152542298871016374979360025789375315924847165179514919732864548318843955009612008214001262469758908354095947386486456995508851119579006398071890238411706398301365978429673985108122692271502516511423672321741176279118137116058843489739763325724022348586111900586565615501651670323690238042525729136694495760458989725879991286979488271156511592860093243664143185834211718704991722490627477188894405914538630034957635905857396634444809871606607201701263787340056457661217994242999319590498695209679603762619586583753261003895122446595327491285785526844107924591996692194371160695851058666791552714407424876995634874616755825093523737145161447250308411739202276771231219620455367638430872173374089221077975198239737288812623491557171524523320879165234289056954848256035656450134885209533544339970405476202487274731023955169367401628469711290925746751881028784585686745294861298352022993149811855216476358720683807485739195203406986019763404133023878628588295735208577899415215307625775120274341493674158212481286916175641660028808209141552820250770365733933713899887171529362671914342508936895985228273642036447870244158387763233143804399802066686463256446816433246511884646882093823251412758401756117783941983237773148472266897357438502731833608834418257129456766610419765772166711614194151470586809409388427435023887993983280880583690878273637130642745521236781938654736552872160813723215619768190903465287891929363348180311839656476855964823883280799054142570197233276898249670058953312743760991470885810401686983577267109938219296312999714820428617091130477301269389567139564450806220889466648600550267204502610386113892575030025398334887009391508677522150723239017613179270128639819551343551782678674053957929529468591803837453012117734090775936412579127220617665405020567847163473783324203807453700061534586477458765359583846034342085451631632435890492454896203326614799704627527914732593218858560029506324115075451453270817607037823154802833331974063201893588842437028168062125574906585971445854986447955690833843824615619159503836149852399009340681310386297906661819824294144648160434490267841024146580534435714585174794272084826239002620727868080395994316777227690395211265158747733940560434436112602347028767354391750730921289249361465602698540948411298228813301104300153093759051048371393409062860726862578252103859627840606626441421275934503428538160822207464084884222590940281459885013739660583640197858550083812743056971321586362478193544181114536736115200805198830794308434600834505566367323625714333542676801774715593895337609901849347813628167935390287771774205209109472490860573137520170382637889370920926096928398793407322785258582459468836037710820588376994638183304227073625671040938975398410625993513732218560445447552080903438426135111015262790261269359360806070199372124438780053833268284656003902829002002619877348840924192885300155924922114851797570175776738910736870722394176382911812045141146491113851250530456890121794863492580949752323704260390594510618901771855810702955959425344902148355038914275833358268788989002548851966557063432805190722949945990440320822955902659734408494447514131397970989742294352522696377241242949005122511809801230999613989743996562001108628297805794326395910763036088055977045180157544539655652205674950944899868998689750144188548643637127730541139121582739618059627027018294832498817570454210199725494163216801264775979233653279115359802355177475518683821048805334760158941875492727933152089827207062572833740217789018831010241234744232346061195756242028549855525438632633072056241440488658602454298494236248792549830054347895760379396620995268088884270175654035258389805432875458262194778068673141861832466188135941884734486440458958824865405354980927414078565020620056428051467528833213184668486508013623132129882722289292103737239326119665882324014304670728693555971110367103211892246197288341701364593128771644546993186469304828674924396764457724579650136727870678955309112385478583304808909528078668761850007059537627793018963503474022567368206183616272718982829194713897383039902675136128397734314047068756384899836387588009231860221372276874091576297984233494015086875987266542748439783956497431991388443652782472876563923283581391177472977118306245808969909091724001881260029335811545872468817635861968722385045818859131729934732022754010153329301075977542720419087259517651254949291692963732650303893518350532390780789017956083804311148904626064829464600469199884743392332287370172528639751555769290790070565451949151121932808389483546581624924123445619618331161195540244895988541247940854285791082613328647170953386091455574445294923669222957236504759497374571604250484501393820623093949406579734761300865987467267886616628210155953693603789881421854916399544072739063600475427031390604866228094593800492820382318899914200704809250103728245201568628448567877363398904178165034464688334924835604641568510199672507275110621335895244168537347364863063229181754877260142905100612411061283114195359250856582903687099368931864810812587153489994545954884300226680230146554256192372372156075373686307930894531653857149854686881295420387382254947226396678983011546325061606241375843073337305453059066861670831810043669951641993433702639353793616904490506087158144659321339629149248257699493483948998675308996585452513910545176645512221196104684989803530078569793425365145987917649039462720341511716653203674817219731647545266202726474857132189594186314430847268445835055469319865755642737114271781860910785025293660102680240896953646395087828466364958260687330220781322700772909633268052425141275922684920030006409246820684667612610852456412222294126236036096193838004603728046615481252725746568570755143958471813254441765170461595453306012889843823816870745452306565551713465447494639353239446919404624287083696010895965564297286566950720773492862156704385459377735654578154771215061350150013121932915098490898773341330105310245865179777425069843884135050349818415111321544850425162185140769665123763523236286786376344997988731398715444770762888481854717921397918150955966208548666031559309533130724676777943614142326064913799064401192363651314953610544493760454842836664538231096645199957275634922499923580737437261215622398996188434189595444487430515689281656539919900013297949062418753499956455380330294250483670621755549542864555697705079167724310664559434567433037638608224524019366899457995906021553361227448243759149314853032678584109457168718695175394247989066395600793059865274339885960333034612266213793982138250702340670088709562560006523233404171800908810737612660924529959865917125980040157142331915037552670709108889254914656120657867509077181216420213597351642720562831958128105182355444450831531180042872462204360343811754942369665185814894570176471423935451398582322008733541388793807662186543804142034209606066600971846425022441952387500331986729710707183638652650702155173144107971598694604740219684727437270711972054486939573324317260972879537704928892534863624175457311618449041318708097391470905847076645746466548195157004817702106228152877531516025555182545380761641943120543079268586411623560772770877275253894591872754936528915410068963191218850785431360540849675433659705286462609632399797358255296205070065048559783936619237176748220937386355079744926538269030020553635280092205883177597129271114743019362974654455561095930837215036713307504321170030432509639185507907958798815966126509528942774650635652753714594779635933367550813309835605209271363888233981631001132832966017372657573934648170873088877843378496058543078462009466454597544556375300547821313331411598920247995431389693913472400799212046856675371012116993332347036906039856742659271538371126018195809379849334232210544841213214074540346447525044043758154274275925235040294902567950930691116138285511874802424630770299406201504299801509874809598361986384430785506697085819983643236137215460665311215334733428506400529460690276796993229681761903602992586851689558607371432141245562278341244028591286700583603223776168669289075475195272368399472369847536410735266467113541906862860799307540758164202157031823864097435643976419092273680449218282738940288583258755367699222844429660533577101184888184799098334484839599301069594125769413167325619125042812434164128086571997772516403110261573534358468181554041300128569388071337962175979924688678180082833622337999197182716279487565893281621020745698390743425055794010181132715179263724438467021519741533887060668810301410608358792888907670205910559716678851097866942528433281323224983399411822203159883819343725486272581794472640949010956229507047003279388922428242180032922706656173052460801515065857185999127144452063665102807641319329726393126110958548050802997605482602420624424467024518248583961698608749546050471919950577029610341096151840533211728947032465992502479250847334383466446488138484353881746833643743988171780415286180581901669384523765909024527519613302163347060876102948813956059665405433825691672923757362435880956844179641795181113192458982411046325120867859209188948617810991414921736438435575199613378445807078282970982436966408441822441759417110653398599249497381458938043368005788482097819122372538564640885769757479182628300333529864746535942210758219205729254438371830083395033151413000787876700100315225537853690103296718050750427032541101305589277696191285175697236205254925183916464616902265700167807060680703518499041458058780679077590311894110535050002790071422866448041761382346599264832768267510669839786282632092175535807320655902791050009964071266424875563417558314511499269887530522590089673379818491504502628370334569733635233589556485922154473541261224329424306417179812979688030961890970717307300412458691927055947512363291355601260386555233172090132492818195953008918848037533056390679464712632096476495432694009747609331657021072427903122584054668460604163864766471511895490465011625738375802992383838540220890761272264593282173342518045871368445950126447992917572716809860422483809848445484964426553082475373486369056875528687800929562013215452473102240327962896233594726120062321418710085509149778055626418038435491898992913664681091995904764294006849499579887725322226409987513960694210406388239635476314193478637896451559284230196005577487206351773752922078647106866480004752923997841808528916735878342820805436659010381233693092308130060851468680514705203407554932176666118856552898676043463490066128699695116781501921768761034357227248780672180165237277135546104519636016181222694636938682430772766605196116885597247098100019406192497343412292449323669460795210925516275494225460826379103527739310152600722447572883442861025502394773056832183464453763970074278137444973215790382655912654860800379315352682624813080531452919683350458217072210071185655060116726557753501649840585239224647809343140375273044820263977229237637066915853550932686005158418259793950439218820617513846099322654190574785585016246755614182376613081113254323071949115356255768657446307459103435771865486418275778058870621142834614911855874703431719777785670266077293257248617322757770009924783622685903952401812839339800346957168071355424243062447292078479029156209945672911826893041621332776781850729382349392176269948428582330404817473275173045900487288335887840476740522742288015033173836819429651181864542059010496607309973700170376255682014444854807329023273835352471493208189073139766681654250322416422467800283665882250658028968914882838006051544028960162544390299168750314297128043744776371084436006792656023350545154535834894426137257707749582564597876106927259067904789596155676064701720395454236903358874621915917444240712369353686657351565341693271760863469858517640808897935628085877627466739794717604304916579413422882836922305556348986438299522675467018112012678645544106824021664545343872528920781737659905871203152228068900721242884463027945254669831747780957712838909248289137904921704432894358128960735856388478478395480283819921239588800523681504858733390452387405281293502863120328783844322131952661402123060197899085995669923722026225622666077607357691217900273888808172800708614747137998525270405037088494798571921284198100169605118127183621911383773381426362810345393863814420300160994050174589794993303703888674159694345275472562314827689140186487614415423260646474490178520166309063280340708484179619990185226432819469419124489833386428610309867202813125015425856720466186426757779100741011789601414533535665011121062123656969876478554293640933773748753973203037648606032875495624455700422921366508158819991904756884552276827033361752517678567084999230750863582324173474574443473225018062906779801923278138381562305375472457052153299304428958395392615264556855874667634783130876628122968539808054063762828855136132362119859874832290308861583531948137023190976077412757399868206481733774105044575367721274640817469032463541795478300500711640180144224206303354986325656142000456992784966545326420502251792032529851072485952056996194136550236681032308029973066108153713805454803744358908334951469126818941844348897484971378210259779277495200937728765032867522798685551769542380943808410804215057121622631478185090325182417915299344532591053906768548285656069121337748959959928208856935985665631787398596712998305667582083190879717779323089626490867316762699138534814826516827930909007400456764235616026973062507611411184743495282875818173010126924780133997139387074839510515639279589841113280367315325734729993083547722214946978807263626911656876027763207962537582337767300702140723453645691596322434401881960666816117809299907690895018018210200032047268876165359215089416244249866006336122518269514967450772427606649938805660139564544304169907992873223214752546982552715838501115297422803604512545410136749614523018976156071924081877430898135763533537736069037164110790476748035229526250638528326704733074428198042199015909520684183388063736673073128377219820961352014052983782396370721248353544554701697931506086208051609726744117325972264519612597847524828952847852969757138461577912110650162083770921645513417203217262024232784731090983559054277729912597020276110373362975850770282551822604763808360134554995389574466100592252773081306715196308458735379820179594975368418483402855116188053978493835488464433608525289868892344024114414010308555736836197410913733412102247186303853051870304605033258575593067317200543264402891810822728587546645547209142098500562934716389881527704830773419544314379734718126115955740033963356588274281668213725124980561956359717889628070808923769165895572723021096440196665656218488519471162995201631970102669822682838924575717908789834431466579458020869427309544463986192641729487551710373558546183185086628820211957005079746208498988937465888273879995446402027913230302902641164884822392511817097415761273121747322675161349289246725410332798185471889665635718649475096062068153275934460327860296765236117200854140902853843578432074594092648489685040569438828430232498382082992950680351359484525572442142982487880263130892849908998100862429353786318599393894128211679328495085520443868246939322139656602214373046529734915409707772699535853805439389833693468345840239422972213564926887067259055932967830296279362620157786653299427398470428615213240526647599453963598867403434926063370974731750280682068720516996789032441602364281247834170132030208591195811640165328008514170352326252156151221931802442934400600004542602446525435912396163593270866599921396817056566640075301459512420700344260658752687953045531641192446981914754626573863817330552455249863277545032032876032767882720257892661324995509181341098467826549005287075503357345328734225514405700085036351938261360886476206620795522183423735628299026805154237838412724690093192346867416980533910458583559229443170796156625505280950586711244934509543058541800673597996021141240223975813765255665347125903364159878544432822327542958210657453748265465672383821337123774641516297978995920489250354209564734281626397635585768181216177242178513357476575734669854517360949185246135451784983531543007298972533831706605200154998483116242960553163302412745794359665404703292065283365455886312308815117437983815529112664601728535365471199356329817085606993723109424505813759136112232121492670612901300594323059156852049900050246875382421014773190024610537864867631067155114126229390899615494598610503784173218326848012817060495415672280389992049690083664072009063042059619574638384936520831282844060830115264108526465176777334160352107582547864117055144790592873289936256808222592171004677657762185202272890427400256398117521468412490733076758549444092417491838205750756944848872782470266557886799454887249023323312855766276841401370183135987853810585530600224548071498663033519019101619908693408575852485525392699993609655318788580625423090685039361528200946227496189907985169765062850899607807453961244357623979932529697263623614690158602041915356800139413178708190282885413568042239594768551353525644706717364913693225785122559357482687490629938740859375907329656338456047378187621771874972289972364278702180710069948723050862439451381916214329897510188650552125110777038444621393876040383086362187520445992902940238511655322871829378437352392081155024786768290990061689501035459614245897616690983460468195932350106152319558356456569667051917818318357864543360710235411044443558855209770666990218298593325666118523094607011544280967203588538144667912731550722850066552301223022295460836467148141712872192188606435178575355190289266014424555994222204105311661098359274304073053770324291206663821733590583900019260355149525430477969691113325514816848655076893350164379728818783044686392256357975736600682129800679708086226376335763366790496473496566950918272831030907343596177757099883447594292166274511267405410999969306488393043612421473525978275477751725321855738851279780363806527986592794961595165021966692811962517575534016587372234674540970668939341359977463981896134327007471149611886073060595131082648551904676389228123875512378022197606129216415480017487223064709682820442875601321434007986653431751085152172578270211492963759123841147221027195078225002723386422592478300321312339757478547748962483907931949357530299561825530298833540935869274789794441238629094116978994865863370439942634470039441092376975783882501606346347786133680114556210753334427930373528177348324818392558716180949292705802274817736555063374618211242598984864911075396029534165530204099553873649983306679779488774692968429735445131332503054225285663978048937217729574184260150837570921743743020019546383069286892773553945073835917155811679542793707593651134655895742260134985963276550590765030915921765092888367995363595100728908979420746680601292367372363058827457852428359861993024017322230858134506675625051841632573868098037181052419405966236786401324256610236652037428994864256247878678684488224505925542807742668650753730701311415778816327188687084349924938195076766961589018991579950124799394064318170979060057280948240092715731322441300308463742662636094411476613762704708842175240960635750519994757152944807572979866938904024856274513426341939245881807635929307617205888137470645108936846459469447419191198764800109910700831625238952186473896016060014225666878779758051962550152304042327642633078289218348555825770120731649000840340776984172710763888155508865053262668504212451802436761129477712152192126079005390357923570414306065837799633683453787576621412430002902580399758939525445764045905246429024518645256372711989689699388481186801044564270142170957524875032845183958007785643342905983016164898635953943060200360220451678334611301939231443526416725619708134863811620025592627603435063531254512116375629365787819057348266253738270021989964499620067818422246085687278822960438540936053168204083925530293441985087083367011520286256563586133124679239625377192519679327652451931655369215645125821200921514680165271394255979984395081642853089930220911931722326592434825596570527904784747698725661236433685419376720058662294405703083532122366722714879413510122437426846528314478380154355436351653841524220940085879652689108907261426834142031227700640591493814878483749570344306158995606643866326306917655699213631060271294911701411208626866269736742007695217865936400198575267170841465430115780780984199815438210185371285974435303129940368899959425518613020878588574840649046495986838141167970941265811744081898163178393717080590389026138123970840916779822599881113604835189724038656422038164096277410381654406389564097214413947115532917363196340830503609004421172894544261988498338878247254179442283311049631492827741918410771261596447892031877847538447775648256190530350701258953474993568361346920409355859063366363066745973643544854583379425961129257267163042787290251185077020925179407758971472831369880968618742651899438453598852554229060547185219381704057161976159428146039620778852790623588891375408209281854003058698205803164973619921116561686337387936286899340138800619021572604860629584247178340075804679902143222006013298612025552222655570168031003929030313056251732717505540036039212688230812290837671667459617008653100316575276537804874804717395537427845393151040235877564570770040688394849478006090103452246353195045239812107020593440702102798769505049802129463828975023019190013699195473515623649214539654667726012863856451310233768522670737926387998645871856056051740905332770195631062718060219609516085505689489715394648096898921400928851211553074048958723520949390190007657749907203594142852297128120926759912673108190703427849768411281908045243085643551161440798696831044926774278584637331715261929882078052221957247785351549583147012114206354532598402543248220243884065738580315352085505712439425804134375742270879007691084682180239656199048064728971349707166508259724560100579021187434178148921059397219939030489733419102845057658633413961454548146021812527859495687834083555307626361764503244836324102164465868164699132982400109046525748248074734265630411646490803775270694585888408682681963103067717707760864706177010257763533105195780429393027236783238879857913466061867483459463020250589398778059475309571482324947122414451737168984482755908218153030342789799257121872481990059656603014864841388546642470102766676101646237600743799330943672579322484198179731168610836672547365961600273699418104283489396620370743118866856752852070185334397135078819872258887684633354131324185892019449622696880237413176012146969161554035654088616120071947774397860173741270284233588696824393186539822241382601985160689657549479203982518167985412072530429726173895755804692473521034675393966887857691650014360294461928275931856491964857551836247056598717329708589363207822043068097146493951113887140633183497951615519808187562202300479176970918145411447211068864919228765042119622635956301470297904631389098461533521326992731873608203007081588663072850865026979774887433060305084748586515487527783779140976926520885041683734154685944368447819494294257103618464899191502505644935834499164142326780912548417647278461969479374731785860611920964014945092115565301083720654870167075426603015531396728704827317995286395559021770861971065751715383022906754176362090898175337421510694113424774080753754391459697248418847922692149821149211556299074055540624293031148251030395352558475701750907203306835493891093603479348614526604606659829250491599153164254610253100777120479424872485646832425123770403264997189881392556414590666587205890658724272671769162302683317127424363576972297285883186520778610060847430659488846275605063546827870041516764973469380378799019466245946436802397259698065870573320464552155106849170745319937584721405388817307725583473132915722140211103721551087737118616343500518590360276408322931400330903040703614321767030828733072115323901011432744443635035461214962469396372622220354608896108569745162907709246564779622182388099369552068653372125787835973688692485915779734550786295038125915913861007826495561305990612140999023556067900759851100395156014348272008124181969711581607584540842209409684382762544062204197467931792937379520997769691147952867982427990770480524777755146995130130297644327104363815709733919393410933901145625481837245002380816452801173870107815954962445385949270243105984405387278048235537839734109989055064900755824483014090998608463300713583731151821798526880904616321545411975499921781851988802337795875473840659267243446922620861247073783755948688966544575705750752692973211859628564294242577322274919066667908093961587545630866383860792432497946850871873035538170764013452053410436283482800372579690080680846320565451247603385357284179032568955790845673245338765034268217444029971106118814019215124532977622690866511245866179529555421679644366057547261076251934409668706978845788268986426302869467678489227606540828463052668411414684522895540603595018858451647126191329670269285825278218092751787863058649135295743419966971577794111786226635649333318397057957554588240611889255698055357149149682728314558330531821199944524090554232580479470999867085036152267944169775272105008765623981578633019258458791229099315397057860037879183382437245270764418336983609851672613469825344048455168990271272837457720246489191255544546000638181568191470998440296266016275302459609251194899569943384121081524102919578038959496371636295736140755286340385535764493340841047612349776988766776694110318918802788898822380476309465101148962333550419137579546828504200939855564446486277860435821901644988459770231560950626574624558111965184673503337074248320657630743163844768196091328705871563889555607553294898461308250774800400707860265109752367951447195925256265057763054964061368670669417641218636240642551439985336096275440954795052065719271592036872306150108877154112860130776973397506406291616586339669073152989116181889137557937795066779257026907582881481801152941528156892950254011639196468293354473581275023955306870324913595989340233378708331814902062031294614664643699205964005419205170664413314904956285971088949854937679906940542152057983854049507700963989360337026434728619362143433270337537593042391258570692189081716281731564851298392541409686906089379844979241729886823535134377036054431725841618986187015612101512646589928633274316766099433981119236086057239083868290073627867646747245220532491447467076345505818029514208810833626853185260131909079598806328984226420711231514952487092018835032131215437033929834478278549679917178866192719879155360874185966369627184239183339867470430987061749489667239158736502647108800986377750440919195355848819776536449101305470646230651124263804136229914802013128737334571003714784098615329720084513624285689683616216414506341356545480440225766578667180946662984790732679359364034851940226235065328074445050252083898068911656648945649336109084429462514098970118231337073494233525954389176125829305847817936358727769350040835605513629647154378763032297498435504707881453141817967330679410560432527165634327649532397472196296535935133372112485970464546138585557120487513064953348159318827797246010498505372699129520034068915653124522961822888540805140675136149608359645401699482798163679183778250303859000469779828863523921660593770977753316087896235002662632549224047057128601708356830511706994595443240830796129288566956129356362893211567027156193549500982113610070489650266940674421305151569953004913867208881460802289345020612921434225950423882036347829473282871385781467012567234272037710998443282348011763680629846343986354133108496569612404142004664171383001747571145780668877210634578405705866355858805940549533616051686537985768394693512620914455137195209993957673884675668342664814309915083237571568743401562994963800551979014645257847503467507538915463169671105323416202811318633740933476501439171986854438834417589421689418884344943244022579743541892013312691762642559831888710796409373316320843751410013125422431084874229843226569185683020346191958860316669515205003154263102302411171632767689083148734432521546542174762031766603109042972306200049994013906072738626089763352317486971600537154352401222966679802871461121401918897767016601116738850089968166503321423644658742045023435882383779529562269332147976482738565648594587995367808931374202047318085630490165606882534370639054592579301529758586726512646587163060867680571894786311810601726598663522202492635392361988859917331265123658235676065604274985128364686822892420097837323921737606859894597192663679501005002874885758490807823449537540732002970106202361646266486763056117454078017562610325438243965319002801735208743775569169370978924569696935693732949069809683636706275832874372768335092385531730026162339822194306819565056700852478942438592651334123714994852868233686235588171616570716397706184714886842085605851219155837493328955969961742571994080671056425735755444967882150759423413593432799693884209471851556063501916010048450983988559451157749825091820282157938527177842547944849006637383842506036214803198967499887877578857297030824135434058138546478381509069851076921498763688497766430910407909202952763216185074017359746699836014145918641598263505116355861894351813669602885860986653591119809260856651635674318853937751997621282442084796072597206999330269665240867218040979991330451655353356955648029513059064467168343712325780911080722715383873939820458263990180248122739943846712635251884196167003129045445761261688432571793002597552861051817127711843514612626776019693700399312997108074001034528967131083361021189927340408161231500243604199052542960915638877353698514783774812656842025870679761334146236735811696322289634889697651608781394658620264733100732333352309489895003816426069042677609112507720864313677079827939751054296910530364954828990549693610639098350249234427782749837401687552540369001935344233682879965805552297404504132421698761765526191896928600442259055292327478327086812842102928687030247225055987297416129785156439229270567925644636792828001336788589578236814835881045711171951446961139698171883290130283675667138049784164053066779479045725847220298885371147925326249543541462610331656070212781068101516593399366041961983725663362274897418620390898648456473655282924259701005048408293422429071387668252567910080389996215363629572787195323198525808878691626429418568356328532928872470537895079781690747660928937602734620562026062775215998854497964961454257391605187416515156425038838249562049176236623785013945397535694419264085856785918413420076293262858379287444043663750544843215620505815965236172491374211621674874625318651664335844830097983166439737187183263581259411467365110140895344738018298551758216263644065306674845198721250924690375721474871349405243497568320113640006029122330531773460042091129913088847066010989894522212729391705036527358931335383555057465824220807753225034443813745183254613862436583029671762700057520862668305333679283528008845457572088376705634816414336886722179684410181770650118007665725366142710295573742446061645271444796938511886319890921752333778502330641660174740751746893959877495837569988438130191667706951472614416968439731870418605915146010741634670787469454648821967025898820949143419883910945633374541022246038683132060553409323207028893118744090598214420559386350417509887143755161596487347296113162554977600245131768718572202373111872432494697045273320947739018198019572157450868375398359790920128383186911056377658848206600942171146532950508590442049730869300627804913538606090058796848694244609074952238307063722337500375766625589445176246464502592879649608567608492645591875371142273311694720571341851427563042670795449463171622796829798059424953762096810833521198075037301036084433350383809941217373242335533403696152175273311122533258447226442746287459647695103542121214573844306534606255377573532435664695125833985446859037182828274463721341116129348769433266219808156805696044385378145583591036172430246762140273781640414188312579384502808653679408050412038364027585436167263823352319211190428955109145546347258515749444616408730170774758980321300647921314347297545183105751735386518887358379556157677453688000503037162594440778674016532890861236245457011609546871408450922237545532888403361742906240246110849773721441337751387850980133641391371539184136374846956531315973624004891230359078897757751947257955924275491310627536954967217438459733836844867709917588314614285021751422788614426242794740178765529395808749702273578839629812904898316450957633808790575208152975611025333740738680535582405617807584681589066671381447662821394864761849044969773108702671603717403792226337624468475549435606450875810637532675713620724830346990376588998835962565916546395665594194984623358733113213928006735244739659327385214532245310178559850607984278496153640353845986509051861845650969555460938496699746465469681334077050129004746682124226647828129451638271069510001866024735458987399603444874077239199441551213245353884685076925675178008462241577743825417929348540513787459507544265460460591572790415484809379456360128413149539661254646235200729664415401100164998131782492425667921026947857762397370043016476769252502557590321049139666722147510411005406908456631426170238082739085170981395079317567822960154740991159577358812255939333866479662068597747624816488090192799088023636670596564463339349847414668040190888106297184046058507024356145904649174247416905153678026559824511209629081893802026718843359533147610672202539752582772918826983121745188888386339651967632672039327137043253913562360907388725283530473625452799129002568675903997687724911969717890538356203434463679426683497242303521120324599448769693565820006973241197913896707556144506899362059391194295268401011842580074189970332376282369625711962428727292895370208111770661542869613273958083997735896540244177779459123170198266415992730354502041806569857047283469964859324451877766630988057235201369743019977882888162799004734739858651282904821038247950770563909424515916282553926306646732288404055238324911188504396958375703979715571012042389019371610149056628182667445437350395471148002609061806174539587917121826800595398461456439682642423982994535448418758515266337867781243861040967196304191176388109896876600777953388622199502100332175055232651594463133159279616844942845461406170188778168160282636436957956063204231172897327596389642865706888337643573613734325686048624139971905950282035091668167474794300966368047223030302934984919512045600995602775859892499937341203381120811078322025336364181154862792840935238340350481413346603081698351812204292983693929938963733021387270305563199965471090648579412880011069348158981444207233695509574947584417892818319766039637566232808266801170362322258322798565089415394802742461082207576405970541543692168019405079584977731084454708797335469935947372685650203728191465688947541140805423467870238639977162676378049263561527437098691670020606477999393380647529019221651671794694786267566197010624560846639778795987728007794613233535895822350854656469723744250654899409950584155980711866011194959336245940267179754118758827658055503415598091735087206893867373926754126985623948278621746335183669123346499450097678088135134697271917194579819026304776237979381055221660212551383852885486624857923750510521777281197546509897361372082996986844387688380741824354859918502090907474590996221801362593893465778657850395095749480970720742914232947497628625321054985212468449117264640771935460330429232563913064435574182223887456383409627775980472292265556118868487268840927080517388887475850101011068832368346124577123000607964711350094091885699364938451801718181070078344173225471270709977091972071064630295179698400312006289058176421938543270094647406028550085353812555047933900565042436640384336087526254122684350012360993815234697935694852517071770990571953844285642509690208317638853413768243477070186801397726783080921645474365068419731262792205497998168408409472963629856204680575619452014288435299338750442396524570853854299544667429545883646990127896302214193021047879128597843712993694708315075109721098942344448290117749092496312895401513401348670168175620164062280265019919974196480561640308064601757155136769959830977384891581670909423450930599401314439295796318552596035881234294985095782712617114467753423904898673079149545953395675914219256790336261905093097504423361373847482287633810599583418704192979578458227795644341895809349103604568200118739602209071019382889952930011836720382693752118379725953205316484334118497908151398497410198537500057007288942983599542416267678469417367931150983058718899023797985772230203786759404773841554043543582794292422745579961262555454238517499096316007271044079565696688530251854727724522098176887017839203476823025454615765101366994262648014231483315488473093614607434260371956495292026950860074285874210491573004631365525867563235465684724194651924940554889367167991969257084273480382023759961111166870972953548179887708647889585567112053808075581563542030013347645953645454801372980265823787845458002928017900130423257713806501868890806331840665535918286566037588036553116975041744053037050302693258077495118839695236586522930587935371266675851364205718237140615434360581832334397851817485722221631944966363620541675058587012892010771521790734937672425874020507569107134969946038488584202887517180676489826515671440137564564799348201673594026133374168402638653782247213190565452260499737501972076809593838286932040539782135115349021518200040884178993327339368540206389479301628613137703841547999426397649299474939465895282790085237506045725999562573983378644858882503755583825627736751857418179935950079686479593268949360070889755501491641233178345460004872551722740787633374442166576825768444581826771477217576966524174886447953699766207375307490046594318299428471976220917548673836796710829530305798758672562723254494907259546492744679841562240137625281207619806924901028298432205157886460968224742049435637858840870091067232885605757134391225748584465223289038040317859663917370980684600870369911656910219646784821685979248728585936261973208715981155389793291050409984711947953275477658828574773224512578768309735732781737895832504770270152028360820670382087818875759807434889550669341514909895915664371161671154132020079915148614446090517517872486221319655889438954637554763757942954999639629093759281571252839888202332753488391605404934791730673252547646544854087887056565400109029245180872146176376075549664379682891242063161439566688918695321309892446647297193808419502148015506903700198711026061937813151937819430389988435103148831808843418913521320861697282775467948179589160826958588377022953092901096750458352890681711427680082866426194446003121215803878308897980161855346505650215707572265799427996394897638579935944922026336075230235027853382969683547939283823868005513893729514440579770206287102855019495359887066561148032555678932582041125815448389031897127797839853807522124158863020959049443680213046543192194814125623252693850471259418291750066460167752993374756921232138636752878118106073651352593911365057938988893532922951989386596982025572577352869773419874093927013468141249503545654049676931713018731111732768476191402696229346932970850356431713025798398155387611746954091807786961304562328157925993459707543698506942449922918519390449697346054335675179361114626237433862552997263097532445743377222869286632509821133337565544233770433525257100501289287070523306126992794471032387458878102570427039289006636774133138112698304948817549453519152434935998346445403264307893458824756575508246205710719400712157548964661486248101092703964050226436611981449364669165119989044381382577058693572582116179556671233559015637176214852387087604202489076126549711697310229868680280814461891088509265585033494533350846450092314776563601745347096206677518569795316395687415113965310174806911382452472192475245476941974883313393534617915589987596566569454754391373152845834546209444181682775353587994088369222346522907299403039493478393246757550436744613020286190300333740154685289848345582730937441426774292810151765996889670004223988619249331754224807971689019443895040479240326297272772275372096781976923384385841616438709007375027692107373496615485769630101562340462256714519287146643019019879465930104669531326185813992646500870586524112829790531476837146428659583781375742873932047854065321199603397780690087691813092617829581485050653459821857056093748928560041467712266518687988119765740089375812850687867831248489390431354684362660935586699622005110221792200319065755415144103125114609096760195665081330498387221465219642514155282164483763648608604540613691683296608727409964276203842098978928132938597257971595532264824086670223858529859563848955349117919171207527843424804599750429537177953307444074319267372047436947875671519138718471539767902751705513667754103564353352083572011286646814874799307646023856574856423060301535292494707629251571484643975839570994965478128298210143466048988848315889769989053937870901879221985290783446435008129725300966887959035507744712678140322855429746763249016680343071552678384326565406259575606370175616465399107902730008543566722816993657835179538946480484205348419784462362523188894805536001399020894461286894615453597660694769343402915542588455609514517832128094156533389410725050561618682309252014271591691139649749019193234636228093967679612162749607923137626869040046363110117384686894096019887800338249303039638137254686299589117879298575687973217392220275044459719688396054272484975882592844411158224015421272766512085145269988791066163340028974670168045943050883503850936187613545968788187522346141862818755197362777295033132234311810518966315297241908103358983851126184017812683171613263133911417080698373879359561703553788316728777860596666761842862005720328511308554034437077565239349178240031407722628181356299372458145594197713188140319169744945025339189815204006660435135721879031416813527178468664229911391617527324009704871001173136129674557336607947132390015875072735617385463986243584699516118801974132718441283650720242033948087150681966840450501445848798466072086682247193460706391778548058251281190726307860969304814897380423458469829760271027884753829226305488920477037271250650136074384437199488016260046211935167128650819766727961171366615476288819714200240549800439897059743072544215295737154191907964909966984743797033645772375703373377548703900491182693691331784515798031087929731916884437317654131061030039332965970810415368047755014298848718184852789710609451030697940327844146313159968515199351123095834426542054873504106808589670191425004266819778560658084822633895231984809756413717374968071910829511940094718525349017185739925325900908752525303325638459393586662407915129054340725491290770511598011653643430368746251796245722111008414608374186253540902260663296652789197485435215766323899894552701303575344441118832065345217202031429957212727358154154637687348208115814791623697696593502798051121418465887524615275303105495784363342940263703246846932439058230310961817037927456808250852807738522136791023466464369669398341046581561323104457962111677508195882833962444872150463952420201042265928036742690747643836119545786358290041946928578798449624346664169858524917866598399111615947938210271737443124992724435154539978836377786457977058823828104947528630560957510276731621773709149509178015476216244272634586795540865228847075689469594322284110434524834449836302702477420623048341984138279229645829625292090843266989814089166984115521296907224327315106239658625795027669769954761090257477258707019939195765873502999606309353441250560423728454658161962777669193172597736190199980161704940129831394035425606166553900902090835006481146985360512373657352367379320248495182712197987233678153416627784710812606997194850644765803417148354102642356284223821175039012906678867397390857790864353982071451809614393408035311647331168641425300674012839861373984808486461524958099737232493043731289889458495716433759133841581133621355443189374957578311855537721763676109350550538191027777599727727457426001166464924748684888850783066347480811499289052790764629322158865751132454788509591462515791546080027306094325432177763012592368372554012713590076176726858630800081965899374292167688278261993144538469352699577837834612200386671796966029244049415588152355817290539959374439816823793199856184845430189367653183811881111690720392109557027110471097624614724169653819577960096282919175494904896954649704578682477814598989557189478255451563549950512299592248582458746891838070704279372056476137670506452168512842468733528269926393852020417402980022070829989071563468859566964175913366376112682450330830699806120086334847449527397707898305779149593459788984666157373067093630960384600651614652207207559887436368395749993814885893021031989892322403352936622383418555443239348914058365610768361221672232187930936627296212074690648251881063263811878511316089128222075450943207796537673113142193079686343304678903953404929403185442337464788192121701675702570123919846029465775737724861116792020781563165926209225680170308994768991559505318205658882761948621062945895249079216670087870455328974159854197996017689181487424966650148784114047892831093936350941051944009930163044844016758836314812808600920097621259778205642156144763225968916433724728861138291545532545569567065486693838428183548473480237385155828314790864742548298818553489669428581594983240196966865098486591687195987857272319541967970161475578406071294221946249669737483958914551567721899777569004958777417744804414948378846541388504936373245122865005266977385587990432777587549858193828116304956390679355488707807603953625887126645891646617887840650502034255234834940895851361374087486571439584332010237057834329810162508403246972647015416980189289600436328311279269096988498538286832197652378302126136363610871805693994277219426259900921805744543237691525146255038756308455536539859649928906609607413643069890588436169831791138643078041010760352333581997198526466092887277278880530930270724467807515087166833784714865707464866357238584640375932363729091710158251723524137519407003342318650024273226271202893622074021359243896163332155336497141924967311613710842035601988552531521668893731273218518366644645884605712371733660934969988082301564548880881072654611387141717183992764731977574030997772923880892014144166221547571868571242247756965448012253767805850349052552912042672919090763394324680881679953069916520535244010292419841978214306599149000087415838252615596533736529430263490986024336142164799608233377776400383393868453567829574428263220692526445138156351378892338170276336273738887708818428967098487261241225672395824803908812339820735215219021586837255176818412995983138749835785071498333855032789635693922230019689330562519078475342525685232722568268206020619531542638179562378154551756235394358495028473654265391956823743010302323141028435575707283541338202389835077150263364272275781348835188186977386158546101250241896137176289234427021262380204584587142488740070158555286239594937892176363951469858987958458215364741984451271185527258697697463178589381852163477375405922277695027361785785295255798478257935106563438671321915289128498184834559305372105488304880284998899756367179107122526614706532374280749268506064631960019411511044872596775608833043002407625708633044870602995553595509289306665953003016614632887660119896643524508074064386286331666042863377993714727669227093208696047128947611811971691680067603519074465092781024766094780724514106981485593258196786765444732600206038941579942360096722686647471132264573864451952675326559633620040373400955998425753365409469274648960655110807916174459340442485429963217086295752917125237201091201060465651620328910936353422420072001975484557302721395534293477340116996114161574552297008029274750681430949432744200028708812667204019774972429465288125994339378336036502334775373862540422199494452529626519638604732112213967118157807987936983936612004677213661698907318278358194318243570487348846175133609114511575812345479394303296080029337235149563685870887691734240702881320881746868211015673158882040573948956490147857894993912696684736018052474491283461696670679119008821589334363803470312779655805193640085176163533234916866296397122692789877940849928059690267549209179183829009915418888346025024875170324719317871683919722762730580268212774716792951687355085567966469056778183577762306991677968632175900660208803420573377266139781495335136104869861492192130295674889163820805763895997713693944631647783992378860774739863816557179813322583264868668526523468188031993307927593196907101053640863932835016596727827302157450025566353881099464400942033157134140763186027992060774320333308531182772686847536139963685280620010212705006118935140859879351354471230022204771391510547653458870371216303560993229480356127956888359854268873381650596049443774693666766068360689723535771772227894703521678396550630253946352990286080318166149639045465878856205225122357862872669596524925483234038456544770866617715316203411299204337376767131728579891008371076868929611821967863386577600230242342684327335552923683503574965925328002240496626360412183549362232824871034964238155252369147480550747762388859484700773313321238688158499164745896680536669096206353678100525914296528603644533630562852696861960030152310247031634497405713941472875993958222611464690120112938256492541076250089238758457603421183142323908550306811961322339241870208237023351479837644064185127750873200420910860110289087057406427026554462361702013572268569371923408550363198823547953140891972365830760927404779030540290598242538261450489112098620891732192668780050259312717950130408151203004364882762321109002518006978870640359430992813408376666368961347333335195460602930971985461537087916949947819321334195547973355405131569626515297067635363783130143369239864935644263641638864451572348562024876598352322472445042643681971213494542315672647006777468807664844310896121490229509849502194534316727306974461051394174966831576905689007405844645506388281632181190967104257642467226482973465371158171690933925977720453088188737750657114076998778009469603253758778446151807627863831523324152087721450974920333520203200889657689845987555599484973487495407706488596064495104601579397269176832016938868487844624050275791968665220428014468541175376358015494430339853548392591571402934930667196727480502544454007035643364321012461331377170584020662652748671316196992485343378376601485352182758343245445361060136728880718608134193622232723394208098157181828320263052161757957909127597057537358912621969603730182528990524377729462578221122751700114500295544286077869852848847096278814365615287643199652974726914499153089156628810523431161140843096714115718697940782572753685404035688025054988422523105899038895000220872058091144366973422758138366503703535691576520758611834926313816396429353425156589547891069534490808733204000687986662473521217998611308036288973335511998138172233712468541210497221458017786595535045824105844572912906099627816080868337893121927656718848352798762807377666216714230302608586553451878930761729597949724893838594192326707494698028098444745987845315991761409813732899976686372937654507586388225600031754652897449531045631387239669809508957107489921939091037160518182893205900487918377393947467605207836888350975294565403333824700157091772370592037516540712556288502418409358184778363709061333937954572754411645111296606294085013228384300442257534273029501276594516303874055445221506549966130035618323443204820044673086979868871382624266035016489202043016525085835105632593322005949531037436455686145499050721645242446574975127396705026777538178890158182490929336581969678022275010428140725937953190765682415783847948013019455294007715680612438729339385918291852855664366128498448115194178683665824440225284101302607438977202782990015643675408263593795743862300246367450328755138639978603185886100829732638058248405074521347756838060794163430201768209590508931569675746411343009394217542526519316499253453767647044931736370509737362827254508001613650386745309971864436012506116110071698523562208596934307740726636237194452400548607964471679806956343959939626637179413289186406776596187226346979261673104624940149065727122251554627226531269334472113603252632232491172936759776019203184794569824975447394395731804809745556477721037626713640091075327069202658072430442318097559977573662435776184105650689379359201134693101112098888823694106756809351458496363099741254702108648682138229634296071084378354427864670055408677283113305883140783460272698180370076251531749490364697906747361454125152113791591530522065039903793450547202277350686548347324231586631675099118913019893809382439961351598626391254202481883174790003898800598335671007048279153523733499502668882996854006899721696179575273245495815578566261995833249202582642694486994846717230216805433293765461413653883469828613703568143710585204881920448484094369970791773983885527863174842285315340800131316189243903390746012189213547786888676042418118986711186544489857373047766055725796114000462418867952735530128138218808273889405384105698689703150285306157991974292799717885906814230948637714103749494953734622818294620553995204844419759355754157433744126226397820758121195011231904221126573291362660133487166955908196900966936252847953938205109052334300364487656240205328811940690912622720817550450434656067579195308504449006751960996105206012085674933197615023600806576914179565605006575026948821564733563449589623329850945705475898524639930635111792996759008915808563186442644724729271559782895501901456701810617301212912061776472466859447906353921388359403944421637440293746496859313194641619285276436976060420991054390325932118700732534916991195124603988920437516080913292855301716554156183420492169972890990161041600670587307953076652695382488923262774075167902867858524741458055689127366018772818852973418866803252625763377974398952960365732832921955213950633584583368034941303149700934952341572726406475355210791764871014618140784704405846297916078101517689559721136898938482077489403369950727578168895726334903434338894062417397609522212976849436691193801696393895541065853631653073331234633443293859960137716537138088330924880756881962681184774118044225376081863286933460347969952856999800302996511254549184159507288306608927578000685603471477275326309483877546647683386450400360186967997370024800206773591375474863805570656716600611471136194757803610571754610762574119632924734766962430702343966488788031632872258654334649410689982879942034477510217131480430584109207677261746312131010992037760959520054229300272689443508423003174670279279714978952571835248893125064728433450379983886285899738070914350216351221285141199183165300369296874610532292909571546795406397573277206561216008188023139785234720240117712768970635623570058979872236428325943101238254885083466458024829806487865350852959339529746002715714005828610395336436999975562014777270327492800321138343996534098452310375325464491878733974552970757166763412170065031954904051145087242461862043457213732328767088197163182890451642853439381707698695842113966822161906109407012111520187691621114696980130040084745009086567195254692644799040673662963878461840530660890798926388794478705105628079355158521570115031264388590052061904239223109701777688798605903076963922073172549570123520874022890149402517686727956680532032499496400262725650023505876173982225831664229762306475386087582961322057231285482172944520592577779168336190026743806468546068144977452081758007556910219927350738841783113716945507809664560821072178621815875725376289778270011256793912285312483551429906287825347108569418771958139472846828683662468356459648519917544227681776859037836702406436596631287780146755207263773805249172012170314219042362303932328236490602379443819332307796383795395881357127993788865571368932198108109082678906388276760274230537302888419367172389073735773387912690943226730904840156432965375331512486970384086160553674132906099165543121557737544531268049860460803608796733295924450390334878850544693412496204905315478894269342383533262702553114762453782079003649321359489745162304549397125538957047673602894732371792643743739080162603994061655888873241484414117153339909272513280287204778064261614393475670320363742168029343959408256876709481365189931074203191534485818406125789973547602653929498582595338738525060314349112952874362075633285454848058395048297263163894258053826489922379920760801774967534036911516684636336794442663759442081824196135065725666984049126857408128057133486938602532032510275474667489458344460239678757774728810255604215167879769265751876832547497721853153052714599257394447482778182347722022930244822608111495270774466123025799328005213125140619510883142658139540302937272694802291000999509230773133488022077752823231992241108704254291180072675221810281767549305553379781034321899616591035387835680661511311047797869190795780593226227528728896455407609557353554564257415215701755540798429367958528555680505271449743969582370818217965584143594193326808119583583089061748313443212099772751409483238533243521095564281335815173292074870026634518948865585317051617090076063452370790142225181624155525811735742225198034860297067977493446679358517222312889022220348065586482848659464700888507517670842204797615737693675584338406891269524480174717804505124592814248130745667575636658214176407872684117963640299063485924293315183030189818153004760386026841944078302982423074026533161147417240931480470618973579087400063845718644082113356770090655965464458769439322597783792424260841654408253788061360837874422801113847479878810761423423728090658607868693272578890367397893611647417777874875960381252910895414957377696862835236017557384558436030040262862874124591893404491963721186680365965629822577250247449456525171290733610539387050434966146098514799379188568682836805523112000593134652147054261006427939943550641500887403700414239735476781410347546449207832053236774899977626706199296274819981784148695186136135658142238663671624074412339907174716559566210527514142447477786240587307041701485360427363893488225037687309427150405738681129121859712590005040909239949348878962725837977669968379188608357631167210912778502674543099416210209231237051347776910691813112582727377500873691842394344886556030560400434150422447760779775699359283158672764567541205821155759847979516242345044344130761462171114722988124462207011191730215162245450903430394320965032532173449842842216563182632376855866596639816886942263621693806508552361135740624998299347095870137360131617764915697469263102738912118275235024059874019236635200176724488390883081156386707069975668545049714805634254372192251469110942046896290352002161271350979831814432436142012797876445134416091803853537276047130515469060753979542533912207938099989706908939966443815910545080259497359639932434429585146958615408443988541636166793868702623530507265727277500207695216256114751026111319512335841938731546841553689712672482960054808654093825612173868306240562848515173660093946943672298466662098600060338273893392130753863182407297404516510405026876498026905073286053914848313172200778079908569705964322240973783076693598287739783891424502206443128253371544525676714059252179492478171124669570098459285755821039556155027007134094807883161420851419405259859686426532174314579842333057726278616604328697121805371664656859228869837538110805536351866872256993911773462932822393719260728453245643299903141849605530923624858406882837537071178862560004137381477250770253998803584803588111805436407032688734326507685280353065923320734570539879823816527538526859697230630428969066697947782980647090454804142288178925740425197119628181611050037801175610927016111003999139890419683064522554601768543389233730288095740834858097982429192238235869321445768497419281998097177645846305685422106594065892702600143279699793417644718937969457308771003472334066022897896837177642081505219726011428434971226580909640704370839457516747565945853780010440743487076163012289361355466252643583368414056328190760647863036221759666001051825187838917808699266690351423976411990569758360495061414824165572580249514112971034219551975721232681534638116879865289163083749075488368609203756740687089462724131170085268881402346818273349910780023602179181282267476022223304256670126235642079430259091400869389978205578188785910164521765355897013603264313663229521954804498551975298424838576412712660075895719050934985481942116370691700971488718913432237355643692096642590038209873227342466902344983538125815921035534328303233588236395263745352711909953538405874803094381696003398282326163170822914430107921429694330865188891883611706346519120071926299402663345270750141247336488036770120133442129598384874402825431239072615155076315102029036122988338803598286523931802270857179039133325103369247267540934042611868059659194543575086298771592925711627848556932309856725454696653089543310704475218316401602240778000778694812439406877936048211302427322656416786236940741780093092192066395200053185025489345155627281527735912423717684887307207922487847686196708090889328953430657602406180729410803816553614534248432844205484712128759312176372241320743064945629135379057978778696777642624268991780535975902392549917168038478288617519477896198798905626842367387717517003209685751361852643203047994132748767704305802695949503762297806845063408665172088238429364228471608669685987731888677651402436659878316228792787579075183768097317933917764681867989883711109547451680322819849877446766846447584893161628675259131915816116125991383449109511410185981866588916910765216612111572934975735685174763186822290740937347777131135735200098745908117746164347478198842215808630841910437368300000951034135283643304028824573538568630951048137260500437211989990972313411590370409370008638081714881228590635878442072932841415834986835043293177884482072215261690831310859763577646011819880125569518761901652617786022365045229749976490046053890125508066631892022092859158297569624236070029035092450109815248254774226248650088531373018476899142193345918101753220203974890415345097036541986481810826755949486737152212875149164486814605736062497536895691580845814978148494201138042920708884527655913903076996194562860813443633756884481802210025157231351745215430270938003759851242818138304821025878033805501689276761016280186172179007048161708704478912893010908304773464782781564170165521559046623890891059368319183131760320660333833871908501798811407774547329642279552050175940557574822103744263274406531652130072494313670708485697341536571184562965100166568334514953392816589816274774975192404826394836754671785797505848986711710869963249321283693443707638064414626837404351253813227002011092714639386237452649750020924656108284679008743414245781705437095088596457801645671133259396336616463183776379593022819801548791974363140978801426691316253070747952485578988089071692180868324547617521354449686643221522460807983676237575474654288046830435952479138761913098449712720952767105793914978608435662620151185801581282091609282141327052326810560600851627253936039109889892108073050484289886133768629938768543677156998454608964155360528242477225459186533007026431176639095167192038763130163164958820082390960894928474578936519991045788123045871331508418839541420692299499089558453778343258811620953827129535135516238468259994802467295408655055875457880594862306914815836255428131932450527631864326923208152937206462931461408718002164326691619612073405644725269447138616412841458677132257146224528726913681649422784759636049256656454243420137886286882790018389045084418372433967233554293440223900430768771098920906065148692029822429450866965623857892824684240846829971392344958652774795968440124677918408451646734634186924965953598606829223669461464456583833607406394966767820523926424061103797678673471245461330704437813268494423327096443852330366435844403637271872398914570966206250941060892656147013168818667691480637400950698273042287314214314739995778493828733117463878035592984964740432739022914193145413514567566487559024216391465248343897624707188606933056647465439228570120982418738414756239157200367208290379887391360542674364273659882360480718361245139457764533081785288707836870330625074406316918969364369183898072549250945698414057361804876401627166705754169795428944639530389203046552371316374359104478411486263436234233349130546357832924760451605421764022105718436341172534165876904222066425320890003520292909350071018962161967720869184579293488334288554131065498776258334606006648748554202793056649181223299851758929031122989253055222544808580617400732875908263532698491052290042759380134753131991288667935961973333877986627075510259083048923347553098950965441078686359236815239615913694739791521749519430541650121275920755768828890198388889303138003677730258919129197722353114417272664445790206890089576226253966599181991441870835151944868416055275652790814556630211388423864853951293943062573280738801559830007296925627905962894115091416517644570819418818857163888273442005598753904269057580855857495990531334348981788027572260122707207653674049996946449441093525908530734944604795067966770570518425324881658923967258520208347437784329581171720704650482394922211789255175988462232073280204914284378528898851491866715213827519937749797575437677260815119442750000768093548932502008561370281568530209369804618236660264450666915865176850872011871768574976601908510328144947090771080949089668934402774583642192013149943201740318659028426823132209428842660782319629909568326487677188412568179623094837029458034757673608712598092293922651024081363463690566513913445519038574413131711078753350504720447688818657776381844187715135829059794061445776184749680771454997052817029742148526171566746492781008291271260196589204623801753202085618648359978429063327647353626789965602119700265503454184960905446195989374642356658255388772937393601919670829752311400139087526461472935685228276715320720928552423036015456814489048015083303868887932422817289481229141396692610217787236619258925939679929637639952841879414168895656175929642544799501066740168458082936570722065303024816086943269630716552507234932655955803084355824080346026418349973969663276975142986909180129775085855323745738850584792189153662281612392707065647049180748085539616012759628322563753008394581159943871243577218964768380442047322372248351430365474503577312094121032707096330524908345866624211460299075273410759890935817939145643460176687349316334121518083661796778500225709579248639931331339028777225951803922551897284701178333173586772556661283923060376523946898537081434849239603538968413003549510586241650501447129433107110855031827693144992739073191449053728347750875016068543939493513772895939072538414202612472020924922502264354176270366357484765531927214005163497965927132474190937866737522391633482158857959131035275864083338633221171990730949399495997714393343891159003878795550957078855195559435358381230684444476320025821477374767981330771001572347202168883531436934946590255713675975747439855384621737064251454311812401593219878280461906417406899419640817950863234057447965674126353162543413850928967135456400204753004387043408834205442093914566453403598181835196748956989849154618031897979444998265202369749706164764359289710193504910560702156181751742593820684472718802140177586484772092251569318819740938449981415814224913988168524179725686778847267699429671102496992169565165148534689763786853376144649658446110829623877771560157363697134990960595381760685492198013995503336018656648221491530791833399477307025635198504084629273896021056148347986863522088290752950918293787855215481147743818189327123813066414239206659440277299836619426078883942973762445204015715935552449175694288233037285925142696597914736346530292064885778436865035428727576791935177898309874988398187771709743276542902188061775912184394793897140396293385715477667463270885623195084199005147839236836783297565024454365020054630244177895397297693819533892652180426498161487165365605641215904423311434472488794310856340445142464600772349368054580574351568311207973028543379758816726489129566987935272816012606780600695834944769369665084439399837860589571491385632522032475380863307650988178066123322954994516041314728959623467186145998883379562715759723635007597978823663090141468532836939642646868575881180837459988750070744241140990719551231413897814014339883797929286110741164106132548245413964500005274353215365957257323651795781144187448855372652130894942482710944609267422868648437391092130189761046245127693082491528583640253015467069984963874967118242878125430800551300445832335841818758402673597348921281269334690774492839733161129413343760417248929780635204727731293325099366255567608802575116858112396854547629686140715703393632005508465670343744931296963683413863315013014270511781765918612178998738361143656852813459505721479861562212573579189603409057589442388252637874475600768554955289893227329290534819238817098933985748460770895793297814416614954772314127905428684427132674735881966745126959147124727439202103318570978249736568821764897504710104501355278491171910855658766786975002919158882058490750516283279248297005780513818319022614964283000240203365119262113205701245109409641035361363888466873767590033290206428637508616109247056285326376055381760638259672859061818435349086593282747040922120969215342022066625663139278811065170963222406953192252967420057663141329560385865494099756648769504257926145096284258916825448037875072161183630544916345537264174761740447742991905582647771480949292090440317981083989134528462653944968189868773965197352944826451740291608426680573748890441379894968139672385434642557656077025503526585904432858831629627929174667292757687028230737764096575847025803234735482912048451717124432505614923263937640792291984250946455380821030998144026693806756488335467286609438426788903095898687066001736484175920322450893733387763101779690659918346451523829224998341813231396384188157647165369188043249255081154548813720913500477668017789592760026864341318358262352933627647249084686886000699785341085152783849895248836194095960215151302425261115090747970456901240477034605005818517180124138302787157157356538575647770083948174144499819131396085773123725055878083282672120058743408179505130106524004875052983935473946579872048718264523177953251159561461586256216604580741363504630831514527157927120692773135012666125807976570250657204353356446025958224186313446079417271605592880554035297078045101353782929451915550130736918347205473103741558341868402803804279505341334563633878790573582770714794748186001744930601296980539681046766332386353840028135964306504378050162035325320933624607288881434719700441627921430591544324930069909153562136707501803041295626602434382692879947700989540504401396141030918889941440310358363362910520039158403795974303788200131932694373715729752178110063774702261528941256312123959934741506424208271093977217330713771721666109815365415622361785030467993520751560847585669157359549368251779640301171556582029951248895708337878123090167732808208108741663392254549372053888363940375036940976839059078506729681179954322022203145161793116198116413723601741079281630058951055569425916530389454052720215194450140759960733715644500436729599341700828592967968446062042501525892479070472052094868829386075038454363351758318546486277818296406435513716774936689902663845284069208194741673357880578709246487149862605720811557506584136483565948606506131927749356536351636771854159944429366775358666065293084649665102019743535982187901358244534287074306355664774733570396594341035378647633294571505004338319218069911281987249736588604006589619161731202540337860422935145886600221585275758418656507681290157764007573740882121791460927248691180151087303609474174317062675357904264564117121902427366702251424541264000081214273539087118657292758673029712463881492754690612401066854893057830861761235098648347853639372230877507232105536295836912670683101670939303531081370036304583249169803773418809960460277958010804669248389372649790805190165391291795402833008948855469643214711606911696541524428762477881630114457963734149241079668622803462592096241416864958781037496570398033427562316119062546308113512393892017868564827582105054126040435683054307762161858124903314240130778838051061022956691704796502210727924814156304879376483259192058460184936238098877608280426309127859708923977936269193221982865752562946846484635999235485831291466781296395751122183268772050288292219424450084712166796496417826614553985762909412909508470499686284098921450657637658268858869116179894774326479834904816147096724283634107476057273301454728400881452507352881282105844253989678545229711261148282231181977735333205707506872879358295678583689514920528428945500769152294825130699655109738502662939271382295972587717813340241897757508239294264897020499102861000916829513811145593494985385698637492513608238715513797820479403649536080273337524675403566865371762144281765108187823186238335015501697999382225022625668051471075661397209494890231563602935760496065320319344705671461133359456655055146950517539674501662607196635944115094441648376509274882845461171581638377498081652678070666552206830510393934386601287662392170986145169905458593389108488565321561855177761931185089375955213562113196842909739333698977551228687646794554842379286248497225768173140411356133433817580661895571337710021955568532866916604305325134201345909063225414748035150969516011319810590804509428190537329059729986561103136199967427826303725540309904913259357671057514188524706990004949499668540917759317489499215869176856300411897247898717721634585629811635564176408830399197754539112699494255958060812682595399565520645024760475597668680408203630706588895138857551868788184628432836624021994374623840986429206149257583222199970035736870436704809237702386299877284638129304082728085752485693851659572633245343436176563173551427088478911237362947761947676180546997257928393109210046060245742502554255179932267101076301732996217798834183990135225518967621536285096325420847152796922852183419723189043930713563661306605314195307067819263207208289480804324355653940632439689460200847576802872974163047578251931183506813164187724693667570435940697384211774937298035311657262829578249799771231824556043892547003625981514116335216233853577877238370455060218574725201203283101720628866156177498213038530751438599795009594448886301860462702789484865421134230500198359053297627353597236929701215736573685757828331326592815785523717272454402537357516736831645908610361372110574484812757432234231414059065899127289199118723199384668121188536135083482176027120189941667711644740860998719294977371509639900407262325688179036547644444290247947917507372785207906970066874856030014222442977015571575685417218425495215867940336802357455596939069305817644255295617400098199658521804618640324622561077799237862199440842620199450750029155472589008996013924029111364566238769048870432238281582790335123727645870990263550644450266824046323164083531438868463315562617530140609415094189759751613718093618963487624000871989529727527511630269944555595304169820319741539116635860525966399767578198641110238469690269860681055329941414952645664182876583252156426323132760676499872179901349105219272233369537817547580956825909715010231104317577503243256729175715870539927487774738501722616016490332965647143852089047049773647204975664385190833220018109972541920743538740029307778294879561908154482175828342802960952184983651277768496469947671892165128407050310703871401688196912159857019329618226162290081957689415749483245490907229454234650237618668883158450951254868481505150584872137452598117677857533932171851757147206157095229065579256358811181380358645095479925731742347939321419762691870478180057649994263436969153411372662891954268340657749624043365256514022253845665921989402393139855978009853109494491445690321975346253625445802850037738842691066979021645829810561781412333421224607905288066279518853138330840918580680349878836394363939739606981032799501779354457517214652470858113900315140739262083765652059458490769360932313950470781570177747548077240520593199804348439940870064709530600251214670395253071403872913723788390277697713335095383619062855595010400750475844184344090392449326250099778088083419945789658295051486421070317022911191887023644242984080134951456566787801820274884917388413725435288563398025759483622665144259557959992604069772134538215093024502015086709243444488304608389457497149578990424286979166213158392107257830276156780026909700015537276393190054154872314363211916216953076826976326768359061714667048535037272318121017757484561812575811429960583434080226308534702350688733218013856472922833874132545873375371284645337541758801915481249168883733190347652624859219269715022035540484202126662373398018950817571060679327593190790235082026413644242164322436002533587671854630774056731184473100975389588376731105288148172687924049578414632544076591699740057293456019968186375528870356464845157413991481819324413540671908360607081907082060455529872232910781670926173277298446360565201230157017213967219319816077912295741467435201603380990378517370977955370960011780958385920270579858045770672843994150676069447949675988416031423304727468136069541284760467990434526246421581121982492409718661736041016027279269170898534877252811184158740002031619064287649967865180462551005215495955252626888636116060583649779497327889828606852572815300910881686520652881957491303567146351512302457881431047519516848538820410324383974352154048618125518291713523358126494062883006324406748792697011276699868855650604348238892751754250983385301520358052532212290944054519741938889757901010696181127793684901408811349156552319819234466708541627071341947588711060839895334346839594707269340436812911879483646423843518989835372044831297602882321119864151425189537269936952428989373288919735052664477294226437979799066962747146077509210757176716617450666183792381836975222733970190133024813799310280949384328821090593172024915437287490936753250439269898928141501545490704854754698847670402247725140377735818382832059109008721035572363998206901153077359033361322092048135322016115617464406029041534481805031807001784813894408546527403567757693969820753217664910550035734567724789780695529475730313818955667951616501978502237689790088484737495746732999423156391622031592847694870246695846333173521455572943616748493908441361926590896089869401238916526835989231499617588117454392467926908181680531996825696466091585360176781952525895727716278925535065275776607403790215410701790066163829029431624351412532527852512062294207304924977899896122641039251163906473553253916702928108348303473063632161736097497937771893384139392922541133396741399048804657500134908407732208613792929360565540968852334392528836790200962592572941812622902373231276635528213770707358496648421508404327442701940460000181069078023830138486999471101239059007082308794791885493961708726731000664935765311974038840707018026197173569658020066693558686785406205045988081069555189809238137204118468661538128194789901442460838983378971658230830537338098479033849864082038931045518872362406410065211172116919831556945627057151074438743116649961213506994862099752591692735523765468036143272512228237144771068628985508292867264911290021197455293211180027823517444875147095543667644901904981318852192828155721261236786546554206900007720361579739577187777484686144078746071289430769828222338010577014079494843199747571765551677302506874628693888857171194267680826811485780025880249147066197204174517989692718861732861623757361514244004382821469903510599393904811690010782390986012915174164252474135749448047757361235766646933074809839217130253518103831660543163714154672110212772909801392319337762417292064313305883999690922468366506924651384093711173811266458781352171298992718677881196320427451324127086843499409072441528858594127475481998865683518340129819580690527450354081351846742822833461520594039329465125451898088670201636758244936687290234965848965923597903931125437863049098979132814539653289857917807515314104460156640154496813393753165568666973223493057272009338950321203482887049495664532153561752368061060070492375661148489980093595224853520425674820070937281811744422012669104615523511335883307942870196453383485293891277267455853774977758747954042499322784672677317488149096696716466546720977871218164795025528188422592692927905973753178048153432283120978278639616043306974049286045323327928050041662829272895722714563910495970377665142257243687045166974724081170388592312058107474581209458208963399951102329019167445350944818419633401737552525757932258786343840920094844763309650311813897720023493309018817053034665906929344942558165344008511381936756060047269279453908864279045740130486729817452032411241152538625769327489890073168572269580892764557565368640198562923430450470922558921581715740468769874235484138969590770915235917659653892701962243703131797007936880201895636437727148450259399893454968077273503092793272194455269283013167766907261876465862449156032927814628226713901054017990688056789525638041130631560504137247043296044364346527090003451192333530733947086451710622594160169777118127286301885430917923448343373867810633048041917641722525390927243642635117476121633232857184634439396869278235158524859354536030604953683980851071420258804395881254532938472000767771392669896525893823953090761507603345840469368391032304634306043163256384351496738828802096192200932268531499363648523581738768421293420344634719902662686158547858422383072413068812641676269314274432305225092297896340155219079538436910630739917279180092912784857149518457379999124553472301316673511663636686025759746453222461992490572228443537030364820336471311895120139686410812109799268664698585463492301025378330047866679256912299816790447495645975539802457174548790123388471009539865903250893412082749021284272044488703979697036854408576893132697586925862451754599566947749572952815227676423922451750644468997549551737879329708343307301162975765484792871870343004699582520735145618868263571880401040647319855807288843497854154753707880352399734778555144752168439395772846769338441478441490041092817856149503909592759242486047307320297476090341820778708565392794057732234731581070328708083939773446955280475395821470553444666985748035173562873576495913750920140673760785146340368620577762518591060113623703419710111850907102239529364482526413115505707649171404196443580316044453190168046169570971641839970974946838656027136814147819633596285683893423476729544116877497748793506597993688190067625921158030429533389451426332708053464367881239278493396077660866118527377778676209551947184288840254593814456564735147905340193683855452793127325404548166916782216237968420660972472812825883460691615515128723874935423277398906036412434334154775589194440611114704454413128409333615150943391983100611044851751456696880166907736466677735772548844594020365075788229993520515845221658319254000631855860886999458843622578642291990804747792023733135500471045676151674459208574944086072155273273068566938200582618413336361736685210209925303471283601679125243193568377999340092848203275532577780797136264570902466168971825556302698801926868943686709101649128837410593152295614730616038329833666805362682585294603071569464409090097200229545288468247056674022324464022165639663260905800451225171774870188027460132608099483812368143449488596319252457040346267774356991787881479228592213677363488197031967988625032164310728628448311117631672736772677574055841436574105071913951137315164292780781243389006681475825063968313242442140330919170744177048878399187932737311058973262228626428707201164264617706087935275866346609500746345340615188661066283198700315255755811337082406314202784679584374440886480472812660806252805059409500275886784250765534689183524456375906404532618202578697598303296876759256239812702761250166807646963631005567012931184901684125921755537681609167948081039228404660295669100300973944082493460168272887625756444825020536259240768044804800012984489928128747953618442947824965345065857772548846091817978884776430688923929763536001297580442343301385999646081319417901101792461605028503060826993911543501645923634784554657410261974166774627266032302274036469735460719064673727683228448837059331521746861127379605602119598282066598588097776929693516794041701359301736895711941441642181397186219854190189137754990453092170681878381160117693051456429074578000046812994437489410465466668486544771165611882250109790415473865960034684035121237760517291859993449580390783957307947227543702657575936199252186238698087395076278042202789637162244874729099224850007294019009127761826814516525786676592291075292742474289431353913889494047061575197439310485923723585743151523736246247499461490359808379452077123341000261984914595989423439434281212023467941053793831853543526896032256303273170008548609185811345876369624172934331965600373807329654502096506368144624800366442370822534915498503805680606941241983871836817998954770423080909673557777664478091232666393994377241667837201599841029171473991547080273260602862810564737877479662563010032412566364573743257888194571837691228777400128253834706488663904805600689187809352747166680303945425202386555560921739638695801149179905150920665865824371175476718093222192270397742757329236046321989167028123333475730951787696345105706988201303879692570378340910669192322341828524101693446620572998060901006971507284204829423957486295380830335123850709099110832079893967497089103421196831057972883744931500413559177046292686076042407753234788900541208495650007367906287533464733673689659129549416873797984082208400313742838786558408544977483534563891821036931725148258223188380916794931569525754334659312394374310845621072898527253680263527668052878607911277557634544044670487586775829928083804719833222288064750239575939411265059894628803538028721434398960141670666717680408920739203579676693313279491705890970576013125784408090702410921010795275339990155820843275185451580480097613766816371794522987605985548843652961663395255079315350815345922464037729201332959569544223009121514062052217483356715339875545528299252148599840081278051449661583177941198099833918079446790168236402515142470903809631451476583462050150857886192714013245421834154933834784259246240511348886893339414597894144471784997827167187624594914215899264166364627163768919691630512713174721324430728615163465608999508898560728764833316431366971766847585686033455517040340565813365907914956307524659082446090138378579684698124632149508572730991524572355693533035342350288039834686911162143199362958723690157387617291675614508992392740159278596602463062275704831596486745218121161110648647617747390383894878030472396691968201947215171180211365336793009798249232208919771931820071120268739015907219774629302014837329246185049937457415705344111780350008288457071045280075119408727067819163534016182713796262277182162868006502727807345193110742480255529366846375381809292230194803992945885125766488657617930062990185289312633291244583678770718356613218633766351410072010233388795296364994896620922508046663645173783774607778713437880575363765815813143595781564657058771910861978519755562257776571988044652634177555898239801996057164805211420980579380755323788396855957150161552731181882744807586399123509811707731649527333133045897518278942136164536719190524427837916794790140251633996796673450589166795569134964551546164472100722643785449375675980607945922460143805829784771713367659228934648456092256250765798371482024153193715287109085054569309247742543991518705852926640770392750733949644180719161474384151385535986254017548460178099137592181908050898727608822163832520100331465277238401283793110945152671334143684795123995587654402068384664060878687897687814773318759960629918940453624560235247351247911538913843454167222119635321257691175201619163568303852761749688780789623691059677274452007388722862272061826713043933505813013413070310211671885203807696332415473779852535475093207988028615928160685125375430619452970659098731881571893555125534262786221320537027615888836781733271756294534740366738908769682693897735313191170047660220559824465835647969339745805500039638942592147000615749049571258781033801288632679912893901231093943770624368502965259953698021528903410843543979418280064758456412392958824570319714400935793423448515531306647847420328695636605441671792961599852868950485839339716064830377204208153452733880605395506952524542849303516673125995237294495292209280320042307214360222524900678064832437320012747638500026285347728210937133033460292148582851271594995867808173333994294874545482598231702094342975604290221380494556894113471926003902238802187634831242921846076181350606736710191163191065180906110739813097710087310168537859506161815775474116091301255405120241206218832140185734056193559631237519430390611018688035361140658325394716357429323878620860026560042457765672532656059694023023673696647097029941795519792314473050285605685554347933398085444713142362748748675950670854379294648732275078402136836016667908499600927506966355789657439490692840618064329666122011720657090410942637996526362565191473727121488981923868280748286527716183212777256016390832512857302558498779366214392393406406157823976453375253029108607242496601475156518173915900324164914406906913165324400663817663210460450972530031320426128556833176880192944221394259249644130572613800963894119215896124555799689055432614001364375310051225482773292252225335612543094076121210362397922939593333578989608226741607947102667701793630526344095805056096246665630697159247699503292867269296603565835208749827120506869466952614653878863933939368719171589139203075883270757987367821171120407239719201129503008146116661478645051861433559627361184365329705605146620018520432536606219332259694877159579294871420288063514676962465443436958345541391186301878388534757831823039791254264008225533584237095618651053602626023498556049432179699756563836625683151495746811007893379806232739905740472614265525712060273863616381110876314775769958747631307807384613983215796610471167231625655459705006478831965714946921735772964624248938042598523058968341776168266395185076314997417627378064389335399680140311093748854059532862079361488774582175232465857092019166051188303661366191531848830742839904541179456924446902530720792811865425795741483626686909629873188579871202169615232585508038679452309491116660490713721052338573829563193109243111877053080656513885677675164223864843847942811630637898315206372164898131569615378586697882533880214806117549652802037738514021982728297085606392141245237955579772873734556517314636836093124250370454961263437283989647844931007879925454092400960343049181127866545692200636211915472389002907607035946473213397866674438676759098178036848192933843813128915565545680677021223045108448955811999984681130627200990037244383774681882519575219178468318334413805080362621467229095458795169774241036881467023161202749924508799319679009316986334827950716741727032378321170009780675789319746262749106629651209244992118521905663018891200348156882606543544351503460347893853940790444322614370369226460554876970390303246172094023059628635640326924952219820386542047976108805475461766558589660701150725684705868731108310812639399961071935494555049103105163636674192256988342251636930534201093470458724616734699799391509605481349625406452148305929646176850847742395775829326024930190509823021878521765816674388958008797461595986102779369001371961821191575425177777655593941108531769458746285502384805857463911973840515992076795320409990838487640102420516025031916517372772493435447117761671213785641533645270232811193603958082545819734508453681741139317101910478171961855493656294528567265282230773792662625946828153655659825208201176443458254203991595229145688869802592166053049098583451602750284074030390315590186811305680735069766028586706132087636291143380994191141548194903555437113944029810118414227941099368964418827038500327714177095008332106984085429525671539831472917484542923024174935648320060084600719862210341294797043376750926473069377876968334391233410584776411659799980229061155987360425361174142686111890677140338658137257360001784612138825044407377423166900061792508610938613576714216530989212689444700245048128943301394127104896708407983743669449657892550342918734425936829380637404414413951304964009791620053781563703817940522003700765918060583768212499364021512825555750615269658939342308759797917963695770757845803009094148394334733799926027299100936945291021962830463550385088977540087660698080129342591087049919382946251791114249310402576319453304260213889004848071773837812703709689516877354250143513575572364144497926565446627092059833006699010282079818016600383260120124614300753295155030808997047728880652288599958043876165828043476593228614125753341864194236512146913509729730879775649736928843758104659553767543123019078643963744978488792867273248720392106157618797367681969435730509166894168947195694207976033015718988459960244074141282329173640502451644460628676529919529604004594340835440551575389066729855153634459214952408804441519722732847579127705726157461524383496200494292144841559359390551138956297205624591688740393844612370458603692798619522647265496807040708226189556783754440259089679790556656358884509570223396001665041244669408065926895464193543548369757301756437689606087469849243506442823890598775927330312500180928136558748875738452035451829663241225266874525319789668248074736117959285144207021401518262129131130541961576462863668543319110711213409413590486535663833546155298265990743634265407896875373021144496681126185920999640611898576698376401667580100427579776936069846479076158540246570382640592730573373674523634629925431458221397592032019361256779431578015237013679942573904896401931008876878635633980403426347543208459136971180881674452552547109192565030888093941845479059278356392775776689731927051284054064153323476362394938088429819527843255830384682496091118545618176013592269406667814114325840979495164300922813591819712572943856803642848439122780459933879707865678577302920761941981786324778666324681798568621778658229135837873157752678345966864451633318464032918222920574644391533992224817397642953998250239517207838116429876158278508137028963095012432714878177493992182547516653510484650666166673466715195263994801045202231921185041056166292067595160320068327774293718271168703997795021214439420749612481712322799595686315794728406529520791183277078944843421800571144955911614570130592215810528534493487955804500037979370594207858037190499269738289740277030423617005008975547306113834174621593314972598994765078912033499192403251266469413920853997120639799185000091656085427746967343523075570751243425525956064723326014985724959241277372441942128469936951612743005478136204883669831845958812347046951198018425309055633917962865766153463372011925234895004139082761621233973951496767968127897565143981155726794902867342577788629231254401395159908471257254130619285675565141594615283465617311235098731792007381865701590175175350423102155790285309002834264363082864473717880964753038924678491163210895303514427855224439006119887407853038532784597650472061027443274911931259843739984955684163749036741082006500957335932580784410518649671052142450834170416531459182915749925490048936529816224242698670982018449260192685339692124606278063154806762985327410940396279184879594357070202850124592580019675747971336370218646906402491979291146313739117818816534459266560381213409329928878690474204565783253067299115484561115577258075266427082654937170843741927328259237530591245151279244503865444237589534489304754712138646129814006793728143956826194445104490676351603241209513776110982180816548390551602503059231256945391000086434912409564332096745167114634918467062626633878247132482683083886807083687753572946595017931002068809544219123011376643665679540034567707512318058140843978010189410085419235412523770230676176795745933537380014928228574582758210683722301891033626526125796898483011351008656547011576732944012121314709666172076003595261216749629931532336021188789487779150171359344421480233192986745199100325650445591755470705374854721354659395477886107991627182288329298671456010972791815741935186586082663355339396753562332520494374846077330012083743522289326352074350987816282515332955961724289105675118444007466581037915290078513476543907717583064043470888306583541914543946095537865898108981436589076072492345066315672428622193631215607817732615932912001254635940313729094292265950696753515092193395223102839945049887188341929690275190977795152093187695091216312322375887298607232802271492938439541532248245948380439996205165897100009131626832176924404024343573686438235431598805309880719155568077742000177927172665005374132741820710866330582228156353797729412514385560711040041278344780929703118862872390913667827795109280653923494742911690837510202493126521775545358692969405102683060260773156032169052200540872685861130598954145796428959555377347614157721890160113086756987779497279479835983613665935527467716379960272958785603522955233408337699796436752975447090125251147005673342493562191165446461305589684772889038896670644712205768611117444418068621942265336311869972876236648309801635322563658515997659880527816522678409727539192829019817645646279627300397592557180325598671795327243732125365749979087870436276194000786089908661389070782704819785526531388454531456333601189040820306701750822285138254907004933588234024432500422109126640349066008359317197297183373450804142202585586837578026279575493389587301648844540254383040877752535831994052651528282165011413353619553251479295078458041390208378848076681036327962796848809968745283665148087003807526870433336276348181586758728763494687189221055323163264798119199325155120838607541415697216084334250283179257061603142895590450655769431433428728470058125416813977026423751929296553740489828386075406209027948208551660720634176474674762918412462367831398139032509073117802625543998381758733302704233170020293847050906267008536712405308887181574623031592514218039499778482520341975360209472390313465564083922436587766397261564187678201831562683327615118610455129994551819275619587501368621567060203809342883500508872231582948858332148265668845409026970090065177793826668116866830608645931392607642616822213229346214252632984906409425319621950594758224589275243216226662363627349994890977418728139327040659643486625482839766472936649149521183456327570230216665628189165960052319492744260836082253814460566354906691651751967233743883393954247578810451839659462139164889794829224369917160106478675153534779200921585599865650670062159435964167596828616988850576654665537154588060878689339040121485270962376708745445438245018412765476124287229842770902070132227971413991998123092586883322781482643037410330681616035071558359356900359577764379197156855074352139946717806636061230227620472927105831763315884670460182001241963225674437651896156005608403344736895104417963394595914742479879376470213019613842422686382543013925860153824707557417077834790332341587397218702179641187796680140348070827038938607275475004475054743129310521266373834698296157693660455472083923042930895824266822829435444545397726925233379241150175746761813603846551907517917722360964913191487492947642304275367245547685843582529160007278729571897960856426291249268116399591441419713017932333672738714858977421078088191575847876335324312619073348482964921716121551373801800716574852596268097835882909597764132187219028382484463378092060759983479821067816144018436886056793634016643332991077145942172327226269480620334224502139134988160024644765741285049299317248750462907442023869989427840979395611377590974035914987322320563306548384854338703970701076440537971265268351909687787574553150243072491199288508796303400141218099495720744597710167109746820352938058502505151416841012504559209078999456382611398230403397690473715801303059492677756872959873603522073778526294766663228753884284483870170680062179465301175246257060512681155455832898054661493528491478696750295469148146253540397381123129281331162404028005295513304551284735093557918249271331732093561694755087034812321317687872802355198946019688140889313584087464189746338489499025988423509548310145539003930502643267660947004661915262251314847622154399601013569874325036044040381598407875874755619082396747037341421176608256223613123237632779137403727474662601429328239592770673032640033407687920051013577178975359413443843306461131115734663851111432878411050542290885965635509519166825274633081366781538162503503227462859512780280099166923529966767788078568030995170664957746834965394572622077264056154660856588557204416664840549975562976860323437554535243202251367809728405964029319114802351876445099293101024801629028021024970195149078883755785545192012770314156687531778448845762883838661656916529916199002228956810822594089040566442317978326700367484168693083905995340320014623576626383649654847469280448140141815763070597651563307527423199820614253757993899486818820838196066767113137230948982568754145715714626327541904321448458387284651010715938012926984572800886421815511654885750572830657231458914512004600173727085594962969443092976609201510077896609112948831715700263226695539946323694667273046173600338926906893653037645252664009738895267511417037692068727569877916969186076305658905394681538439069994998382192987893628694846939191975368380810351502063356356417284254246221534023812664866945438502260688910315244714560927706223173305587856779892119596760569322729071608547981412953575163790556969782992099438637745593074518822137923865644059484867911945516489079895690922381948043992834635646195290132296556786252342196576509017531061839937268181614294542717318326740845600211437027235992460456810380377227321612015271029849099933478527036466749087243094621779378021647590812226061797188686774782162745003855655016862623891963113714326815629372735505458394842930370296947639289236406798891922977927452180742512501604953829638382421342719219848452564905409174923007297398546984596634471607769709798269327664427203606657761570047816738749641840368436230246207200624038964694792527099854916870123350200047576147291572165037337226095301742499852075434212405697992845041509498951640332706488683371225507785108833924083983293338895738888508636056009548373716717494565281117452513266832546425418517592475942944575875248722161721524546032292999154941128361177573190525618657393009861127633661103223441809359763188903991440971975253863063733596309416337068231108076901952001374460409174939153148781280237517276248114721062282271846842882944387174261444077313719636086512287235843559259545901232267632641449530544669192017604070260162554050619728204272322473832111670781370544158618242176734761529031522509899660537133869163856039388177506111075659124012646939838034657427007926649556306627707114473207651559891709410243042183652915463605401776505881293554708738997702369075863727147964571858055009147215925255351626108909612253934229017087514301497060624491698654274697618867317959616581771521964731781884730305380126269097070181908346118616137176861529190484068741058928019665550367198286636813026991081110687218128729019498612137752289000359168082392421881406649242825177712321038619342990523264384406839349901383323147605375808107352687925559900424998878855396918696766523594116695282924845494068349066319411823901318082319706905513771334941884563251523233303002903225505281508481865316979628978433101850396135894674137377569060460158985419167091398270691544702226073161153981345443165865575679105840091176489876496102288889797464936593816565335657327126814515013589998675657455237219271225794816000881341254843269312298452138866392988436218341222602254026174898260008402795589110171589658967748537258902295969613000482089180458951042084778700109095723435306792834335500247638309263411644000603717131005667899372929654927208121605888040168752722408834438236815847591129829752471122150735170713595807220991446269273298455085232099019521468599565035095654908085246770728588449137465827944013243642260807704328564354014820403213745731508713682510172299972526918231895566717979489847620869590594368186542253916961177882047544649323466697408533326062770213343381651118881514141493296047310683584016136917466050612686454530980732920065628425440260061888779106573981097587036201684777423354429827600999438785367663686996938799432828662568565080528060385328676830740410069914773211454996390181724302934984064571397672904332124347200796469125132349047214708223173470611042733898151045686826600769772897431802238998176101812761385015431318759258520796964940932635561889970522624019086412388086858747700238049379525078681158523098689085077033838444113728439507951326085063477045437902817259866261655091793487520029445161106685886929404514060214974407305060751371599640665700663415782243145068323863444172203740102553758274275473666833808001396434680625225448977684401288119030537990548433245613384998559320213823380158142726331161065558505291959844227728583168810157693420814544132148323903878860193169406898970353635057648409332664270991036046698608772574842562454972391571346835586839267744413773579641341181918851242393361624850556515357542623455024056432841538442244317024596699260813395452135515618329854576773822966075386615536414259879521030716724772733939490630544821168755645801458888602828415898197597019955924155889035591927609522914817316267176586989145357258278506738686575512303842254900544338189223303066342441493891890632819595776311666899174130938850103693263962297127649300151057636246400566553546335752176041311621502794391302463746415133757958815469701562708228232471643688871580110563848923567787056430744782322723704334004032291368357398043611687781440684656014574807497085462523861166896413952081094275857911983717522790044848722385753863294447643194218753564741831379802838751494782770372965323663119807809082620884307968725396201368533891339473547593981698171375028844941177383963800719656290708761069181567773846951728974971556853154865758511330939194181593597195865891979806044133299892085534158510553598192623580941902505484937678497433841486722963341080770997111733276257668854890043692658446008840443341642185362814094017322456109246250010016140428699573866051503976402301558140382765351987859389462763673277817008370773807743734922503700252934146961191915116105799828537174772335325804780329353561478824098592053476374348017966352307107526817323512712417507518514345899332145090337199200746217173226373783371259366747084399998656127460375023605495006773084777056049127950243844118784350885825283870722200473354087335103017555465349158859747889774155426622254863791590766234224387978928107599508092666194848420605682254303026880229103674494785599516701231514173112760856821354420086026206690989769715119497553336822082874721566464876160402469186443892108048591472473301060969440259886860900282674971632483434803840038075243594790669258799658063375641192134894708417933773422383933339009267979410944640281123916086491046465580340863106202004270240156450033362812947705194088081365559396279317332878280007093802017740200938099970536012332596022217306985495726888768809172566116754338841667970869522459348810849441181119409495230252601754035024601424319967465373974146893234313674000629314062571081798589972074827933618202827407244640682730277035455704031597580508441136004574537138331304427669088431151795557104644238347677443557838842045909840161972899749233866384996890963059285339330310819779688103087307763515465253551472335655331541540541868356167863327293863964072246267747912150315210652299341289021957589916085848880596411196984224582056792881036979527355164008009159060580615293551068712709639845138267992167950109531939965178768592415272509585348183915174315178742422637365810726549664069129393278521349909378059033462575942066870221995565607127080349615613710760154129545655839576888902116079247215003617887438902248389662408835659243794894164743053089722714284262296896432405036623571951752014070071779276762414968541164440912497561065562897269610990801638128249254411957436114257872069970378940170758469977364119211416444364830231033716373065768102496395952585708344431664241523621857749830094425949035124700351626659610246771731499926559624918660267456295201332567897139086873857928367119433902791325588828527893300220543678883947849050836306688751348650657868692715579791218706186244407969858791204981819457830001510285701800137649039369948780473645622243074120965263737494701606140885985628049193487165967830724314522896743152909016090110080216648470710840100452716405640854685126524797682114099536122076161631739984769379910905822635673359820533277228269287555300343868183662662374212097749796202679253156699957192887977249931956437610846190988711064840487740992276102976082211788972871239952850286787512975496748252193281542698514169983436040459340731353958945756418214844753012086083150010037478971903028048158664871216730140209109746984394139538221069008562079686561028455063149434552180573566552692518632735163564091612490703526222037022735477355714629961120486014402627623703473583239738953845364226682948535619493254226868079923146070083915985261631154952100964823059984271135451651296563121540646089430755029790207988673644660957643691081218607772345960673025382558113404370358566218409618141872860743926368879634546112062298199676694802333831331953653540177457083781992873356592935441270590718667504692127924324104734215916633474041370721927194679923139347915894356519814611566629874921010921918643013351921581470690647175508300431212155963104226908490385743907620890596807317812361901440376853925988303583463032988502313139183259208113483909962378677440799914294837919141319123978444663499316411689124510819855456061765503031467348738788123878435571706781365950394597346585704992301755749350872923574988459924877845638712022630556533116236624618124095113801914373267299563257707414626112769009111926688318357368033271836440097811050125319441430363005418073715814373772745548884289567849136916386469538810658735671507490931344164460032966847817870942051731200183686208023978161486482335803095772457185787362590109196902330734002548297076437620614231297549725361889292501732866190061467757113799356340199907990225448728865526888382300358849091205931480964620911491911065690605591412030721025600850419846731649011289630875821719264434940546904736181932474374464037763478894701089126590840715558232457815723307554897375763497322517733247827278407471110344905819023361199593854429690256636549968598016776378910951438985400675188195737578895671230072561982025102988593531886729409426988110473167812217881375426562983911293164549309507343888388191055338274835131427614619287155718731879132109562834351060550009294559426030008004006398590906517684118284540090743129116659557232499848832188418872367482361623434102663649694935405872552683214595622436887314082394022205743375254724280608784758947704892861812899757966421707326005563325910984508091867601120603461296859027616958086895500529842698995877463511363017637916794762311281223964586549358724955504744366988844084356981492020467611677602996731006279670073858479081288243841257191460390809944786972941087836002731342855203829588345420687631930115025138915445029367022720613639653527666183082504927846425789954735010512515244371221261925184791637529200946886542802624646752694208086282772601049478874656153920081074507138761436981281776426949651760195384543514692994098251772809247868964090963621913888074431845594203895121144876194967398946382243477023244686036614006489587596566093243896659764343176376461388092237269014978400540267090259433883488234716672422370640500800128852743872512995404397470336846448400339361908983893177556312883372824678025224773866516734462112544885871261925919273899108425139613276288273281345786449355215374148531879674017225546898029997396434750142642105424333508134556312320807718107769254672143753369086627287306353274267053982628374855026079468745062543210650244776487464927771039576371586681568036784712369847027093478789770747424357394217158320678791515140861906569528210653621908866678098350854509081753964908335130182638244235607672968400924060255578472866716197345348935875492964743424588165027898476344778105317792412331139100926793366849687854014510128229632281343596724045338968038496904336243958227919255229358238988685953155086045587306308850921531846475704199790050624035374276817684366544154256399913983822048672561673587659214173455107841595822804577853157262806108951396205186890881813720945253907752240867321046021685416350463213008364299813768951974418265323891015520068672767988356544441893634522736324355039121186983177839576870880238173040331025714173362123402098527814282037007555973918421269010313047670975900403970986332767501823576682236801971559174392089687065008798230610044336646295156302579844314260814107671759506098580757224872010346598072370549844909435107751844541989326055589974809724698924577306188470688652504896341760151063866817088190950559894202828186248163207925719649474537693020999768478358046099719486131174331424983882555579510503146716772786665608986902955151097665565769509107596940416889164556088337221363037805671395426964517509077793238130376255600233369194740482525422591741347827472984819847686967051348046907224110853960220614868947516175217244465333683943513467822020786453862861653879226339560940216708808346914845563132210907169755364035708301976195254266884514167744742543857335571268475656287188466664700292647451682706988093336453909215114311267468482111081766169067314248290544796392407183089865901761947707376462028044172707889891195506244887581533027353394625775992761960161942497797789730041722428176635722785324303857734749214553597829833595498305474007230744150087471139863581522967669363801912099822997708041174970166127188703741537544714304152968324853915232585048378855631935367340792370545896693903360386495495330590162015653028398262708885633495271409135750041326308831295621303528024037315298459654578021011738752750323349702388003243535458711853143205061862418559144964710146069446193442865804537264258452544246899715645371576920314482526388685043488363656549662009585543728643102118461858855045160253899260014441804686978523835665620957044592949548678469838808887901661188323990970037720197637462235228246292982213929581772973403909417547797249152343825478348956278544918355224812592064296296687561869758744379583879770764135486596130467401389894987776558279738202478159129731997842500724710199372389363374735046461236281490071846419688899652012034051214473466078868232401934152019708933392586172916651405832607411295926377019878129058619610398559594732616022796910639060208086092692671027449428856897880191667319289660930608448987189531597185771335978024765488900855622346515858403369127779040225411351082206090677807148049610667079402913659422468245369770639531713771784277982799252217962212249404107457712987268591472060689885902685713434211790104883926802802400155903226181741210496102863111800488073068409981911188302008389499281883895733064171596452646082574967544161766245689504938335209896703910649030463493622337802655698484026530450972809842682805577379884839066354135521187251758636100869908125815405159153870146599643094664035769392965374389906921737265902203707091001440035561124050316368252073408990528055858861449301090663150584795972342194619395312114153320331774060672170628698110391016872525822424451663863457182454190459138206683792048828805922252187022576588808135821389662836201396764820036125263643720497730592751165958177561444208286133280211104862239213261378876640340554241229662880770403230714814118184019863144061158643623391030206981412424469321375932992890429904802470437375837416438039813517334291089553461872204488050114429424271866026046389236289241758099125502874001605100122031138414161834084300147256588252207226852855573219587930456240993596575241116955405704690423100896241997977728356028201313813980405240465784941270561103049440611509415965795924536731807362549628128325677193193360204333896894758872691663951856011873730781250351176884392776141897783086698178145186525384859642303456967482156460623446109209124121826851738169139604696063913931433881916729406156759271396948409140494481456553807206130044378023444528514801062380581420230058036966342529267095519962608760482609547448572271803928783593626721693131539390023635903031639752889794866909668984467436576863550681359479995141350456062697079679323958670253135839934555412640533228098072199178296839357914930851055747703950886564147513304365888029171049695323037475716706836336182296701001365744934558039908978607970864223004507412198989265199286068422067187400163696246288874540399004789639702152088564120113223274465600463118408501025672753818912121785184242123258235771395974856051033651068894653404845798027147760366182582237979388055458285069740167614800997399095586401795969124867302131118876858608664499733075021008432116509387604026269930633942445328739964791387260352883747139089097557542267235609497079100886294255925312125274147466275313744107419778995890795735567759615200421696963766269661393308863575989362922948463931060782012244999448718066758834294440507213104302433053955526016816639205484819098772024359890776134081897548918778953572384043555279902148924060900994178952119817270633105354429071357949312813095077627467705710933940797954931287401476690587848377955988147988324436063171161583331342132290808209086026158726907617416757275512774163134150409958497246245445560158731087700572843673624853978470903029294211656979753666218782145644845241292963580728949593924528830213688784010545846781171550852396734303645486810511827447333522948825710693428389357395453034445852782101951263563811761987609753970481418174267828010200323827589005214943271762342572174624287532706143088228761641550758623357181358794596198685858171214564286036579187507919510738420197524447227777909194635576130890803942549079584882121245788046461699323152199266536202487745699289686949958462997423141105671400377487961430746171406327361463968175489448215323103737786319186185616174549533341830642008466525979575881545761988536296775639156914425927189104364797679599789663725774595775263169403437924344534119109434185811002447075832020037101237607051686601029470239116989074259245412483683902318336063007009682582877259946064395149642088450806854587699347622324473868685645339556625152936875361050609468839069560652537326729416312565321179232851725072935613183918894124465721443988121919267496614221764172378347012738086447843749974014748790109291353226002224206367136135231523646636309808298944972413717249972520731584858625872311344976174248477420977599345861254626606731625697275796540406605713338217775663854369699862199375108720291447437397425781334325712065594875317390749753871785345644821625931908049682957651715621319313005569789079543158495873496590065534044091785112355064019072744048602201314331161670107190969841301119221503816307618821458658234181676388313877249612889275030044817460193985876434357986281821755307682356275276428897792066782119592192224815617997112570662045603318248021236586467556962778857728281128527281687568225325650890732964256475343427787858970023695360797619562091917426520756157429581894025891939238125978649259093040275817468955122590710888381875492979231261574680680303871112611476691937494535963915949628240659999752420342938303380932356475358436117496036208964886478369737574820123123943256038147478635501628470544883718953740805245020111885321017494867373373846999005302210463806664057928460319908658660954868895828104502001710690261460449650825969099626589328401871556152099460332140908825007589118259135817621293097447647530170363703835718834893701131018883047461611720167723078977304544581343326174445965296134156539088875245959710932335026547523773272450927937376523394039133146935506514649738144342089991574447040327577148319260534533768008759001597682688818784586377422777465861189763585238260914127539292551146924678862162414293986776683998345030816472594322003571083683663930271686767730775282654021518545194441040718339561856935365585535211187299769043699277474013113758506772440042448790986895617568641803416129586960897667572751893816542593733625144364073020979699989767339732341408342909965616435434725777131522146191485935019799919767019239123268686051157917975250764057785763870117985937667451927146723094358957942561780559097722366963050295756007092505958479421141659159090838500223252738530980393568488238011373051525069482792150917135350333958195689690352264204946486186934360930144496740926799347073522782189397850546231526412286345041822467840526541708582588534026613463129039147898847309221720654960597290391978233705786431517960442734675183277909160944105857349246999506168562908315468323088168567725261084937468779736712208361408247697436015691394781846241477106027478366881884309539403742760020179102854371310777458847773425554609786340895019654117382797987477795695649232115098413220806044263460418749826580011095572773432392703853283445539861342024792209344296322368330682751891056555514784893049540278584440480790624405308661083772800805343246672285370245099107417973709860706475878959380827618381079018499071460718009801193023770911477276962504653662718248743742244524464924496261741780467749853448978034838891224142820126036086988149742357846262942406947427363892936834150850135447512149399976405869858345220488337947925436161438928999046837847618062029053969044548378545187667619828028694634923701275294920725125355657873347537096443234223731698026504890377322893827806011067537070274784634826444368950572433947328287905257527414344537015185415479314604043608449010200393308499920699321634578265045874800723167639150973507152789012402514872419176989127298379815921885851068162796745512746725571482759484622664648492195016854893358808576203568733538808726659249988227602835207857247107493024072495811380605102768831354031104894867359990844552986967845225133331116206264904311711985671504648983363166954957244567684507292522087525093876603195372091785025494778412843002721135745841309236007768770454315593403481396955439191298182826282949557632427166140923142752459819270939237914783400203876241971264891083894201959004331705069417154915128205522532881261716238291455729516236088320074774828623525399157904245009897764091397410783187205674134446545387559437590385932735565730051060670304827376598296577379946998696298341443733682851492871280648358358533400943033024231472314241713633658433155195811312129776236902729548605095540481088447794349105811750849375168055068644778695298086142989386048188236961534998028187834980795170665759510308334997777043428302506730081736539685192366232874899067327908181403711364881759050650893993890941899497497282150678514350575926521840277973957949662144982341928812660463996517593457323183860638156606582430237790604018422642273263766020550705298438512562088131325945901526306751013846918684519068988985234592168962073696452497463526303361341455484826319929237645597801305418583621818780822935859885020949153802209175459968803379140191580431257001229450928317798630906554285133634981683241974483150924546407715604200833730037798989252691720760379293817169171458688124708187252233097319158715097802641357355723780395053243709777188028190245948047758528842678989274401605679463489878939346897278231823632327630495033586885206938443384670317736978132724341123120365941397319475786545835851952036414980068167724503076232663777578436779441352840863087013041879927241856201153496208623922748131478014227384296305714857302998381994688606829381417455191380815060571633864822780976478044588969494473297634734688260465163323032182511765343056820807537744775678197100193704839139289482593615296705449036013679791021161429662990762351232014191595851628580324239313149763478197243692664661460174568830460827840485900369648492368401868187065496901906245684211924863343507606573984883121175997692583412795838739085869662299653475686952695451195172303060746081512411824596962007452449999528940769539535490138331634653255375058048114050794061892922699479377029689778500171822298387272584154458971213853648461089278459115386826690142221726843026789473100612062730424486045005832432438905141269214700855754647361494558843542427261956771621667652454524277083527914627237874155901575841693412594589982539866567343784124878992361965957578029740131694476520855927990618489281658729105132942649857810951991304887867003563128027885194649977137761650837641754433768550893357191038019016547236794389708454451140226303787080396599158785095184475679666037011557566657980221072088644022268073023094942228732917615638990957578573629927950445664889638765192465016389559737974559173393160235452564351215671506514820835059066201798442306238310882494542297309134191012831565286672781578666847878607406760608935448628468532001229396126665757104970038635735374445307153040314251897480758875388386168155118154546208299110792205610983804712998056568495951631891995630107214867931754718353593312993691303201323362714845657910643121341392905945619011986859417587874714111575083112436626333584985913525685792995822828940126382403525432464010177250258019033140496251923706351528733059171031120502752985963933308381651504596807458221672499749232836846326554212632171697565995655451435770021090635953990086135310148680469942672672636059882504906774169901368132573696687031250244468990238883497628910899214764525794694724015724530000589785069552192250786852931359457653425704781969025165846279025822290868100892734892230144831804694748062824187478901208033964330940341636493450946463579881575442421759967353774654471081543468021565222422839829846480629005241456453850877006365705859110419300615923127959783093506285672978521179891493622310144702024051625476128546257133121279600953675611219644767360092424902859347833913529757164384049011213099128235326463057170454708375241192895782066017968451028112485710271588011449428562977077162045537883278413051892342093160890205317671768491536919321772387304085498957020116822165689615918813835632364120802654752256038067845993489625469732589503684672935837033332737005216586959261328005096945846348087948989984624324090801912960127237440134786094331322803584320309291265904557034471136911452943398590862698261276407769221658304895411581226193693652235511152280262495765317781748551217020149927838019812339876549111790031983450683656358462727423955032068775241769079042869380613487142596618249540949278406085647903644839566186001332723787724685375938221279822062356635576972891852063574906164633048586522381462804168626588527358988136809428646170207546915621176060264509798699170332025086716443412639903669842596992471972605333017647448297921920712518283645927333022132122903932324321272428833867423647838141654002338765672904358863166501900351846384807768331086437412047797565448436463474531985226845421889682301010995360342118211362513929752412116704821743302691239293900005467701736432560933823828828051046940673534565192042030662832391848877156694212746994575437950092824757942537033016435626509195696539747546155332705423002176812779728538814189189135443342823074260190526935977759691052298820483433751378873154611600332875612724946948172487646639263758314766736501037013374266731392747069746498767543183791825581861506104060505810597469057625485700953577360637315509847218251993031320124117353476674835514516721111874459797500863786770332059381455472570071260671355721918881773082319465629411934245058783007301188400227235517154091304436939681646440709575976929976532333443965318502221328582850419590809929305948772250512090141157130955695784721388268272645459426364514234699695348925946044720358578060935861844280310114114278190678714771655204357063130334944105922368487337281518281782395041283823443088304704778579587768235180662938518729222636052130969766874657535083896295092435388478809041732029263912892675954999306855485188565390765826556841123838953771284559513024158712498214719693623735189451807252058843048961706558924247141474577066770163651074766966286040621993482821422830166660994986774814682831974751506008522249496787723154253297086552332747998161151080587352910350379213982176039884819831305986776253531416847698185501294014469803805593121064377066548495474065828635733648088656402133440468539261987330699085897617303935397205553204339212242845504162613264424958673392749951646581329597082054037922027021852362391307749171723379174177744089524417454110918121031202536831494736242677573640155027989053793145805041674884705919676261002535913290436147048797902753833566845546190084475004629734283102188375404814510226550437289941316127212716511267892390950446962945861129176032676624058546830741133566899919649324294025072944163842349197541027422613102505305252744883952159063877995149134787974848017700949767465598274684833300685418324119347944648165722353444739489905004697576822365133668685914789726655992065888360912444757328059125615799585513041382086875358332296665754951322088974298851101430512804527596049333594780192358095712893236585908185850756754543196898431155232558783467776427231684004140171892759358476360410863231688556437439489048362634776082533759313613827340982034418727489304032391515231698035397776426449705993211062260483778121849390487917963634470833484921034055079998842197843578940871668817205751791509827946436778435284173726382222310628267659786610758519876349798003615435944785955932757090387709374094006670576651801661937126992644649191859456856813431303920419562962865688431603699563148380532324052529605275078415387983081872274479397028369927959468694788469091343131522673708034867499154671377059902323118780883295477139478714493238558164213695803200095121898032007485788899017266161032170633665000020515207059965704127939938717761804347770684278133638597089971319198761948523648037986493401821526618484289351271285582812398069613406668967517857696741630490338126093061975945943325405673656208886754806599387804084354630997968868434583179072759975428208568886247138186491530215783649811858831058153212105481363848198574658012756256540500641725407207359502892101446243037908699549339214514221598106611709302230090602601453115856357715657447529373188357295050311157571292311946479314572314478500983639041436072869965523114026621643864982251654502219992598626854404756853450441277214156109393306093171847960922775937152239859962198703735059742966851294963291862321635779129816405853593184649802907981824602527426303812792189504867556246425494613052017177938869023102244958248016476466185604006473475066622608851810464632775560719464644142135003899092773165593976556651296869256868472953190045858119872219522819956671869766153850109035421189759834568153578364268687908035712891269303255774560265026933123792991805587836384683674925458765162965439791391077161398229987469241283571823731454518900855472717966858694457450403264920589783204638611515151723837014395478849298266291123278504636136578627940125993535355844574826500639710099270744036777222445664899761621598656151577199242213077561181710662650047119779516611468414462350027631064181666976884090581023937276019125197249839348561381728099744216099915028352368248950062817978663647512655028446153303174311480293041270907312524722124495507648903939857485709738271743950126840442082532227845635963646891676974240256962613308096420514623063378916400589749230471186144098769334530887467801271866643109278711144426898811888101974519467642623431586677361591232428488169435884154716552493270504472346300494842120878219918217819287119991873128386827735035480386798925550746090115948181554299329000492217108407619220439176533301744595956851848613074198752015111304969326515173710937310018325531565694842372300270818924896642139209025782178976820498332601956687590567395330334571023630022488898274932667511432874071666691342634299697094761235743539818080027943039452342377857546660477687307565175806383627872170180006581365773362731929658183407837480297001471590393680006404176408465863439604162212735693061023474518777627865074963902764274636784278526120506249003459993843177935741123443813197812919323734519772370877173363307738498066603524103750854331449880651132533626370383263706461877391058188779653939364658223376010687190941425151598718961660687198106754597218899634865156656534617145506853974693260993041128699906023747281343316857415567170674043104316241753998176631020004662258457404227137961091126023233615543638373297253047460414198904739579596696383095172391521467922301541796191330416729433239584648640185541898266436701343590335221700173613432006777517481804048971096616712462499623060775606581398360799991143433727235380005544652607523485555937162540039407128245386098562977680499989855832256287059995272942807460848473439998531360437161611142041201918971810664201930783370373154807720540236968204036080479075207372908888614313583856058101450712581376715518039490074018051723298116148752422360227148301535876908713350461122086333586276233298070153131522443603269499021785558279786219393905947999859951188196809081614864794952489995017870337853204062084579409632403752366400559087435260019458737342039174285420731344929415266270547193936992194055982255546537514241987293464675971813953233905209791520303161646311427632113987515921643118880271598224206664128692046963311346189458382005334309698271840128311502291155186115567159599411357869824816150468206991913057994954250099412331872806024738391867968764739380235031965190824580560705149871745158371631998370818504052075575920546975346974442726710057717803997913833932376417400602318779932698166525438316974111378932113974053856773149050580346629045618227472796518679999477859775554649838579209387668678315020500354318062895734041502883917757991163597837882968477808604135945636883777749924686460605450554099187188656709287046127991004035584116281201668789619321818474921549192911979586243263888013932506364548313791531888078938983854624197790763404050609824572408771408407108823419740159277789701217169087468181771159721386261608971466404844496611810022288430043797712695430659311450743543436795360004530660491826562928664659297737331279566927646016950518202714640903674354654361565541538522553382611216685515445179801481000706203434718760211311135157217881931147587912826300996339438530255423176750051917267739469888816750171800913146451468988656208752041915735667530968532466612303742916203439986181638064597068301901321749764776740567059057070763441639671936207030889529006591502641987202755314371250115106056183875746763973531587835069119582574083424400242751967592513348521530615357910283053294810252371716806494703258523188065566119039494640216232736643696826824168932446485181500843139162560690985095204609745026362195591180675370927546260320738673502842948341262570042978031539146793773785709227477773457773830397924251851222601742543564578511074580146064117192378297004739663980328754460883397836782524855155694353640907935719457508796544400622349804815417612196323396442563703937671086704466355724706060833342375024711397363896948696820188159528472728751519338573281110114256269028076666597626562871790376525030513654741585238589099317135912804515564764625992241111051056124320527036904042459646093985948073889663744570168382839886356204640092759390908349792770810904360602125039759126684525713936014548541193894224044267345435106599403932547980282824313560140684489586651039814879239849267737526083655064084222944187310464371576018969916450591928441671433883416408286593090880700567442868676931279590767855629645287132121447986717332487640008033507960079537016633065728817571493059805132027661785984989880570443694472745436318522705236598773882073929934341494884994763639801294823389285486818744509627377307558140402074807279411150785525336623595669375891963891398194024253024315169929531937803704640393486719070956888302833041362139632265795719339732677591036224988810048727660380229580063131329060605866041519421844084119351756074531183506769946822581275849279958714492223154921060820384142152922208882958205459670536231931510633440163908959755822785508570501007523527447650779707510331457137110604859974230510762351490572440263702161189397256158630600765223465003100084896416148285946867769690033977818722990403136019183029440355311651443068332701144675089172918074229518035103520737897029805909609413404459658930060918413231908813243194432864373889640885072098808838682944097726776762511189279783617624526720463158891573391446151542674770124753043870284253926930271416814472115075960270491904489902483879051452009993627520007739609401826056960455854481832885890364115868534807952218495186325438926220925232778783069815986861618922143638569925976664058857818999959625237502321125509840080952680343440337105901244851116287536326845034834478318956631698079123682773070728988308339013699909904774020506148293718607004468659083002989724343525733498045633542099506340644993235623494387306262628965294592842006916978581314914662566811104017909932193663247792554237864110452330549985690511140405565912025638363246712584617110469206676678249705834863369766568198082191031629999928427033912422621775284205241671205513809931653163361470337665838902865547445451655602308834754654804397154523266403911805233014095658487264946556038238521820752577819828375745401730384122502253520993435005214642640813385416536928188061974324552987370631119143566102980166851341853264990303236706592029101947493138581154795681610842830066480325115392561030100956286150156242954835214516773128394539726243648042184248564032902499914032110001815707390166562095545584524416529281764455755167156960057526449865011764721004541435028411388063245371246676055347505462244721276493835562848949326159151613674937964648520602964603624744789572075150901278693340155000226981230338831678761985796974650703667438619314070400481931975349265608377113986219573816864159395238409601589843564412198408401401455041351876559177349658038044080541434695120138922072606454569748026560419421265169948779375844212305474984793931447090653814154266155346223569274729365093581303023416899753306956067444826956175999409878858868829545964035344733837638810928093990592126745439846475019105113026235572256450645828070846814440240073639500622535682150959935861887184265023655556211445031761705803940999019291297026042091903653276720451693134672729179048437519392019060033289757971603259012707934713355382155171327810342423389471792898439148581169081107624462939505304223142779383059310184900250387827026888500882392146171266749964254293362083771310195904601819992683741314690163069550705227365551910126454937152836156814981599972047628466589139842519837421414381371440130278561798444768181824735865228996455200118061892001030078840214271852274308692531376788507022127757283811496317300313679664746112270650638191839895512666836114285525471933095895995646684511949837148281126563868349310592361129984387461882992968718142129590469747464610304648160785318949218338635504559721214799431058678399796216664809729715582678011336747721311098174986567708692356973273419296096381194581032793996167007524569653789439591878750230341308555759942240009642977378558020448982176446669657779761842193162789204365288137820981735114616587779799619446506794866523448366307125832493229845123805657179479676426773602053977144968636513479455445178903750838765871928735932361054881792723532421745767479133293790483386040029857070999407228937109147177289281107300478155933462079246830877813694023562891713151551495692959724247169637031737712805005641954758764721523808016462900714967669485841667575341395508848073152380548492903334462697309600917711036855201118562722846364164491540856907020029349894769183253477377076824323635670747037054336735667960459079110185858448157714904311991372476338062154215162162701198407968126263616420311062618831198200842824243597485372174521231030934138909937191358874559110179259548792678318145832856412436827847022451990137699266474553641872987686181807582606947679521893890637860114668364196418429357905159390536583128326304833245606504712983633423761384398524738790786035543706012712524789899696107211574006758690768402595522514455241771672837811820799628705549674217404604711371078649969382740127594463644399646659651281182814312624909202185861157894071759216105982147418384455793464650039306463061328290369230522255316603375359685316425167426082380459549338795779124792742615045387440649988483059488033108752582628643670940285118166172727851615925303700588172907125888307484001160228002562589539332513814979062182746662600466884270839551924354060786859908684870852953041020986399797022694594562830114118454725498307185141169958368667642107328769318252955228656726227544770884328232157584741829741144088491171853640645461321569323146646471147746619678707221515650910528790765254543469870091502820698793593970100743813536618896364076185230487223243525205330354931270677720499087224964737194720533173936737460248827009226532853564723174564920113756111217182280158407251138354946926190874542932707625390427123144708088291793270747445969959427796478712305514323733547012023262576553486741888069672276432960562318142797768326491184053696800116319411367349011544280212575850607976873511982532200498243391813683633977618958691785699996001856296677175807869534429825932710354752789773104658896221676452248034140610060606560334475892251174707836403169796918418039153401550782308920593326449318282326483467832313829000774606110165876751050278043830222618040016257627468041269241392105601937897470525480028536132053644613763962151923572948417533195550230387588822359970764751336144812173232723373098806497123956807622802831858980402290621053301322760071707138449420253023887646165826031765098742338216034236484728372507889575076966284124445849626396694326192369528588148168927421935313311907946203882936186026999502018023348060244636855759850695017261213727860582694734749212398351853850748767587994285530265477556177005957388708315828297579237448130933745447789057675826934741258698276389147418648819800646542594191750704729200089258060761297706090705799828718753004683061661785988407985809939531179456411680065214609223068032111855668236067128363379900819209075694331378293728960951078012352359824270360349740445999461743913910419509310520411648251811143640535679081553119052630177268487490749180814436138418186940556583594436593551614714245969281400383562713915022431063793187222236162866100963548763745006508415393140442877024418070978544587075341903697714082817934662983344741694722172041728289895749120621649597684109210479016809560068604749956571176796045575816011979956254050239101891822052289254575923312007948712415008225389923983168084813310607157219367367830191526873782970684690619508390303926293937954292519156017171228841293880843511546578703291110064803903023579856076729562699700241828309424610106667932781125021945861112068711286867127727356257540125422845043618248590671611001576706901312186218372262515607514246276877677101293165682578971446787531657537819719120923092318602708885160552091566734857371134827828173200688370770994497614016123708882652883901055038816253841720264427563007002280814624581991077988416028362094753805660351445223238377622799713087769165702233113771473715380141441201173238012608292873547824175906978694034780524861029999407171593927223752386866457673245906722812035754976831257359921918181755683475057128234358321736289363890736140746557269649313986224272946602570057671905150666541822591155959494679597912628023517972672851910090197406309206146531597101367429889596417160947025261532099309865703537496029010408498590239973115617861160171439028509505484153884448420094556176428773964484380818619906112798172469516749206631736311211682038641922118669052531662839073732476683301839774937551119987986903051921928111754112777512802706122390619299008004309875806761840251720146957566704813313282056661703809518754924669897995470236057198251735981332118094141948557674599943942843668992385547081495950491716327829990498894347992145976915207119974806363636659852740291007711627027625965141299737172061846717289159814589715618074538497662848524408309876663423342021061739836084261602395736184478175815547294710175088973885481207376625099437721819939181977030291212827855169532755987796709086236002253280168021989338950734288742462808090644311042112527980781405459317384187821441368893789696442459269132680197498177228714581532004660481842686718973953507829766872808516800614328783429460408100203739723378225922234321906684132975498055655534000748155168368267356321958148232408374414149624546687883872763561911306905929196948597780311095498193972204956222461797929606544207911804523664070483924839063562201944137389166194492944105911370189796837134179101129892196000329608784988776620466375342845390440597298660469034600579374493871207478709937876045045769119598384660900916169726971768190058248024375416877427925293469162029052734721256120141591040555386887952570222942243711628488419873079103094348661353759138078005130700610113644148495296668230560222944478847923792851462008420743843180181749062173158942805401146368344544954007000440924406714112793057665835469908887331830920932882973412930074802179980092664925381636694701347679188291729784478688320047306724550240317793676647566858986570410652087071101434455448324115893058681384050595710891837131458603145293078772286134704460936047131418138123318674402053498318841472038600017251250387720268773071460610182565434452388835045961884040364220880746226898217406688315249589398943959679840379823602946717707856301076373884771231630439965785802852472634732273991501854171829032421588627880439582728072131820955999914481838537386937340406039641986367015949464194090805540242538904686146124832246726914399435221453003865478355429946035479470937851771938883689857099545203582568719366344155259802509926758682892079939042858013904727676645022647469346784802169089488365422848252739772347832584894693738071508134718441681912233034446308323583048416342154752987529588380341851773957257459231895640792780063589872774694094848070588299540190963205580583762869657184818216393935836078651010819186275094257434515340866653599187858344116440724799964089818092759729022997343892970696073595335151258507591505999304264429285722522597620333332204392624669613407334721905682834795390962994371042765775869492750787214904126703125853180661212127380995404953841019972815299946745937835579924866082608206547697478935476017697694990660948076204803765897277631793445230937459414268046074797076403893628299413926912587331475785670869034166031944034194609889105337887036081308058551345139500428505324150499002524344331735050554160438549463880424610621686059748447867108758702900888818027780168502582054293355054439066231584519243485947970109048498902408591321399655808691108234686649660864474914621389955775990900351654043078935790638399354779368357409443450181534467032722353648356839879990905113708651282824040003570496782419989310916951872072346587568493409671829692032632924933976471029345441390961712537989528242066176184676996220454357558531321575329889054434438618461423577891551739509685908272065763643379588141361420647748624611444197626441153834329529597033727818672603301461212661646560506036608341131012357571383113128463774918555397303182671323056775380269586200710152203872004954881926116414104353141466052660586572320560542543634291733518365866380274597829559009331038392648848053238401608525535001326820423602219689405728012590459524184777070119391347954362561396851364193769454923671094192431954123989574376608785818480580505073009053840287188476501640088448359101352519276241617658023018283020911610420569131539609088683271197663906899501854970012728226066982917408223064768307696031777578259875603573625897895923033906739715083029412211932338179840818308160276721253413231047922088824088984515932766737055403778849092435285079874781409477212572965925596654260749218180917674799943941151662552030830281772151137575356350509277944967388669370965494305947385137559765166376159994924937247243499224473713179144440083737356317157681057604532876154722668489880355244319615899742482781026227106646405529566201107102797256987849677365082256230584684021045527694006310867219470197037028994125364219702371680302473485212388879405928181846804582468834958567568537366116016577692170320320021384150734361510449551051321077729372549039581753330027962433528223956902128292865766244102017873771090866227990567549096174399189221120166393699407687000561797324448887951109074141818702961470238832986929557635424612200140315552288403258985451907370500340234841683883515697294939434266961448795989451874251555867144696986738122527005637095942267496546777153515072825083743778843186139767564172737000083745628065733283155030972607081008431202658396734467376938565996637908582982363650896135093053817137525949449409211231811347670179404626172776266855888981008941012537225810473338685982162424194492018547479605704419799353603449904113399314011585828254184542848752310531300677338544099753674412508081774019822814891720779423027230727883600867377909026864107678963590927969669536286550765299374157161299852918243740085639059689175374735255319068919787570995428342667569361103310681676855684502145616938250757311018930078159734131214225555716429032294154726701293756216406220204502859344675708593894365119086541566753904739287176538722749868195710373425150451407340078289860579437341534226107867749324774027907853154516755100524653274983791088876799481867012257498149402179605198148232700493908002241047048015766267298089440032837076404876518790437852257176177161322373325459006995223525502461018730260469503704774326839943017156752143306693842678921398985987956001030385814796993002245221713340860488356623263155507689047189619016142512369708851047167900448662439886113251266343131828323582453256568258725022068347525183871634212371645638290217223431903812465685097215049300793890582314925152902989894331100184549260927830002030113624407527583783215681333638042068179420069786518185823784604811564873975819453909411107474125596163869754126572594543998261442325730031758154500400880217761095847889455462854716311561160451466382521504713641952299675402565002401602070080031581560357088175556046808568350173753660905690756278575077046224133551955017016514805678237405407572756399698628341042495981714705839412556518986766490571355680254977151800300003231538416932988261924963989932269712267950971229804044157643524825001775773878242280169248209329392208455190868005126557905822350857648772616001990152195902123619292845761119643627603310217787318559434849239659814563438763759216079455414282456553956920226414608950407613140817987399145291950704117030283757497032445340081148233351698433996902392712013885039854569204046549366990552506479825746183477012875460109073244589111773163998592366708104232320398985809177131550400570055691352686545078883809479361005014673672923339033512860311603277452498719749456862352280386691396282716793664653211182660293287615616132855234930499431219866910500918008499856188356713750860577602221284601173423380371802587214088384372850070987519520175264542714994181813936760852169458440761270434304398031834014435682139600907281987613074279129785379898305159034822235308639475571465161228129045158482540130914303061711885213903235158912820468147758388257904777911669619010310803914185493421496349894425060265551736479833240893028108080445820477979687490568257867564835219902353027992207866790354377745959731201202406335226542563260174648134440591453853496933729823308036441035202833132951198138396189087590554543381839150518973674822569696354534565116790504468119083562438522676564121242353388416774762962152649177282522652911276014901133714939799967636780044170475709934012463306893298557426873067853609708500437346750125065024337556384977346121163419613891933079520347530220315671200331159112792230193857672902541984703201049398479150170034797362621019759800081087161987310137671857168713771196278733446562475040152906911090371201296309770213249871721296506321961223752054719963306483941168381002202960005069885720653102908540260411552398996309087566706401481918536958407805417716683150263300510900614563111594936131326445821242172993602054885144446084352237706053209579088734876625513229666185150305635253022490839351381417536076327526110372803158398585500932340195184875389945183770284346474727954609542320584343381193302297479146499990226260314591458960715498791209898611856166650611656017847776199287569889992948318757683789272434243134025151752317111875997007997071398650631832409683931058526567754599944197235784555314242620349936014373152027266682561512995092849062969761740914253125171253897664217543248936148225431353978678337460543735053137263394660158217157600302554205635226761793800824978387437249913841576823553257514127889141693793055450492660047114092180444263617738893835338783579909410288430294329178510609857325974872810824364947320274613477612517771112974182948366824279053360203842180802236996597109678535272848831717132407574498729981730630713897609140122473545988054747549858453140791148493285348367417157329342889998585092556751131177209087949068559189480407513834633392355379365238279408293427756809147633102544841157157457765189556294009899035610604057356074119753421732770288744744409179647575377644148738634284595053340369906532352512932674465336358387891109378335392202873399709332955813493132999102849937413970413031730945285798596793970198484027539141239272736034117832572925338370990664084863273242444141230703085515857776751214418120092630511094237417278752407338310038661372322493135752190648484703632764709306593788827694474770907343078256163489861830638475971540736712056852673046986395144287560832601850218314961204426730390796941636234794914819267891897551677022304806750974865769722161245359410758803616036902517417155218095377315251399583422690494929974759262504364571799019030028477593217664358654747550135570231116722970580504847484175483250070585375606612578186728330252162929854822628105351881661908005069684778893018330726011555983870484602376521700204439061256825726356043966991718545852692079207982577439550356381876970021678133776276975917013270196081540677659102139929639755294938132883658212602047254010109002329223006025499280602564870763267209244099633010713113998798095618723842502676491936905301946781472886178723514227347990939529623081234172690511177622894422779211386847250336342467540276281510610888622985246307280492202004021959376560695416960443981167764308035955974887410541738894391837934452447829778236042654896953490710886673255996104022539996573856533114043629339736697480125158937768047263322030002943471264546392041661063514784536747256093868729030470325052174335036459376685471073743327187326284095231049359437416597634452126859402477631693415740793570997221796346831630781802867192920497126203339242894256604521845126427973575275379003808087115238609037385801581727681479059844699871348008714433506337753375384211342518370386829271061080051837648158679496881025788245570345418636932451942729829832259794982755183984724869605140379956683907007949900682500094879096239840334974946377090347511455819178860182708379060428223569538973839005721854619333218726832452845787944243941867339317900389093837838397722964785637104790257427858210866394136935319415929513099793750410535749244157770178282313363767221061181209925946451056346144506987848480345456643727495262548881451744913179849318406338187784677955014144670010674452475310363302157865565372194439496128872812607286507004313603920663440670124642487186160996481191625944406357760772650070304206672827487571248088889545271136472325063065861835338240145039999647852902831121869325916501845466973456025919838878722685638072521790544535894677596322512491098531349746717929563026421675549591843305883069396469783141289961133292243980337347642187150749724918027770705044606604949279065424419138401360038126803748646493691170988467700678413459564669051872110915789879386898736339164152081442309291424792614085922804526141914469453040024465713141001173893092322738096009209208892771091078225930412972578170392185602673146042054523152318597123792542984990420113005761158483561474623810453717936796863243351592852953375165498434934656103163433594635059182493434389047776314635752822603766407910010489908190203497127552215196318950303724400723687113629455515580812329481103946993471570022673545074702755176367963831812604845059926220846986890987712986771179556675890464580372469800285876986579490512832807246601552868396935512320527859699127545584649592464657745897836389620919493522244583018846873504848110835134022692402570425460773648959049302782990410680897535979465658546028592560321741883305852459581765822146732532882246226371531038171038843625469068990134600049376478923761942654693977149100899230240663848166550541892868578104489098875075107965485950617968901245791130120950827593585342129473834024896269410469348358914498375286029604178713144557815072239712945195206819338974371968664203291483226332910245517518588573319021310955091561955560676773081441993873402492632224656396986500998092521651817073781649485369881753547201101036085213245467654424439637936944880441799932553532845259277232787437827076795462215774247947729361860881857112400118822747380365139677848891127510364044758473354332007395857051003474577248832676193520592128892096861662876714221577567357510609653586819206868486942263093521992795411491273934195730067333782153206725219282012509975127194211970819570781875430933083417780235095464928594425535213947567513003108179194965548535722940436965082979925122188925619328572545630512749209400330719710497408650860800200286184662273633482937441371347603403320385583737163967347536107248525547317826981896350422178837690331311105663713774951504317711837270975537724185653819382572538444531644227775918552135919057293309691316775339662645150053578687614367454923694540120296371002019283269169163268433348223768071328417294153489788096606650270680531729866438850815600246176915692429791060377142925383004428951686434828657982120262925540623111324128424646750080946725083610961946620943952641236824670329829237286287080950708418802110924401170900906700698585106492504211984980960309562416734632662833737407705690020609686005062952395658779967939768126497012387425887742826284014974843972466760712587468949243991353277881991537914318813214885033788855011960770528883638477750952475548338234689248480633492875471577499842348447322095671984118722335339115799778421077071337136312405364769192642729508632003416343716195735837103398823869380540841140517562858805047174366553918178195545321153231971593568752491626786177987931021367408362171765271327604512198896992282779566976604486128939223743396237119657919875893343781966596530272532546042562370804399635323210217083041209779467489106034886901230771711237542155192787819020638745975711734829684277186529436320069493032036742874986195351586733688178046555662521274866832862545693045466958499628705307699708080097010568180970376322258895101597809870321030403702449353075269855822898768938450696184465460249293533306279518940619606060703194303817639056411052262417875936437097417423361221752672490961226726930456204960787478688396544771883312654915118166925632245585509730106836387647605515749849394716490305661470503148946968264336957766972744275964613939646440014869798612596048300775292100233072868530761071481621472494941875286241118188216690604052307695655567413626240450827619727618531304122088053383310622446994365683619532478573478353869409882194456987119830328437579310022845203373134303161865497843543519265989330657037716186625294851864542880438610684329102510598643916497597061665289289118408480448891274777198425621082767001384561457504950622184689310589474020912073462983655722547597870505502792189624739546028909090068716295250177539250628451407185284457851609238960544180490944715185807095795202676632427192469525176780080842052341384243227169675600044105393481181563372880051633957007398372868511021680325517573680491557965141629233679295461093100233780235820552330874598065687256664278207226574565762817515229473152776371136019213751490829253032345205029700890817295614296096355751503272295677407403466090121336494336691811325956642391762758220527559084060443341836329796778483387282234301248228864355942634643266783958195680270930822160681174933769776412709483920711080170094976263027911294351963654748905607590757953719037180967954946903936932508037823922925337825579825000620980068216483813664419991985120441409488794359914469198564531174809262133835398690163737919003463409799701438716662318023937317194521130986496483201155294921944428326502816991631381304150527625085935172643220857539069901559993650494539332797424141046612031392094705164690575585869449014520782088875428600834683560545553955176073812678284630945122301587586257872873322888504242374020580989478491202359507515326658744307428587202097801726144802493090594166546256314528883810157577988843499201006333835808592675337857733285412364760449390483868026520766637169976532461904960779095772710971169521990036028842724820516067906369206173582025013424025798010434924039049953538775881689125552325609238907200277121498881218964367308897099152751762046052037455746084799039754564373046620470612639723886476887834523318707157540612073939649239899754979800998499599367218774479185348356487955016428567886270940791046925766032347042007102444257642295144184966623582655286199904575579402468021635659497641589268915017769673871335495251731936094190848463843371293304884618737869240861456266850003059185004769919975123630813609358663366116665858305572580840740255506534415260724395966610356976952655193909386875259773620368466628633498455766343027338896533951181648115845995165472197886359775683683084644299381610285767058579166202189714833542933460732128131993725720119950293482043696190447770644337279182545222980324114497496630382758978053132650792197671299102976979113646614783128398856559107871581786139945751322129080974194665200644322819587658362867047168140052563118981383165316328624879630666728857542532104695647453311112087067867168056933394782248987256101224245997668927700898528561976847616882630375216153241583410649453027053088047486078249594497714747835975833795843614713146879944548146080193005403569957430304246648525924061141124678878060451843784086018200962789650052210858525092601272696169723526280053691330466997429480433058007089327625624428236047585073512551757981715255631355626510142089543940211330841249746423043380810929462699508770618510120458597694942034490870620292299630566884812022150642593222954211557437913659300730891897624035842613128520012031850821875228962042055365404855495856385219638603897613630741712089650397624112352189985670583705022380425486837740437253521682188427142293986783263848171438015636652428361775080326462786444136059535259446777035044471416904941449992768556048816778423896881748462430670624972807600888279122647783826809214497239034172106826051823266100799537384102706651736138034115190451385043357685959814212897842634589755812069968459166922314334318342034646046339585994728656425369572068732810386016220560197979420152276764307722944822750667327421926484722414693899594473815688040821397395594979302917268588765299536300667559773758056886482168536967864885991721020619029100355820057631003505647468833988325898325913063341298496931810372496039574020917343152457398336509304183923755049399914169320076738505535294075434406370568100142580139459919273071186976927256278563460989983938685489300143573105737905630878948955535775872307035924752924783126250021138757065907590763145680666347361654751743436142729993910759170306726319148534955683592574700765433538615926864103140099164872490341317035396204327044279661374514855575033653331382572843957172666253003711402122508462926069194811575557619159122123760291001079737606408767834159003207021835474320268153154880136142294789853040746613765667321432684479604717146073095686202266685790238268134422695120729036941927519833947804428877996655437892960942190050990727641350490906891441165027011685623915850637604491274316164953074865839231247568189241343305747812844898169978077228932301508225829538341007118185649725562027245220327114818384020866512223640207948891527369218147839642652746586566506116927861290360984575301294081594060941765724219385351646372847334342539377649302753877572457949936438688284098485134927262720304598440800763973469461844800437651582860394050315815290172860872199012466928176925401269002419861131146881879270720953310959288869408135725767222031547311020127877122235377527372730077760783666111554610909769024624124601332086734813967797449734967422112714039867767748282257983389945043933363162914400818313416521255374199701640311169319305197039355433611855327835541581152055819397958071743338234431270866395625974860653047152291802940984565722455320988272109772603515493286105362556427635025835383635243877109264069584509815886594253139812227028302837168873114944974002069529809589119379299188761440793812408789033506895376769704613235891787731360686732526602611492995697405516231676379860468474512319269312132284329205288421999065072998466998335828196425262127423916566966761205884386895539105136737927591613372826763955219056303874724576043082870428998793061582460334717288434774205457530067453911614257998495777568961803517844424121844577939131978205548469638077256997657654361472951591959275827947040728032827583062716077074945447122627567307093564177800309375409675874865068726663479346203714187559786231204906280133538282129072771596412188009049517550409821002350682195358205217463153298187103428851123271445318534245086760132329468855985081179936949763737120236539797526457142646720451606451374020617250773010671254498607594561692201766695370115271869105419256414337245857898284477995026407656154590908878453485376593474632974869933317546257491937068108532914868418729180995175962382950003706696363721309979478679156523784259408244630451953550195160908828898375322984366059861278098119297212169876966603866577320416340587360489614790841101452023077041095584364435369377848181621662553026268331533474290036409800510143523657061023735428307360231110928729014320202991813298422583352979116616396142770025456573139499305774476601309225808802890327882088374990699713431925192363910342989630265859732093696351835505573973220720134002338125040048255890494503963148320114275784668739386041034016416848906106220138021485919296416909161404024819661921454471666142964357408558606423453091487338992960071455751671688523368920097481563553992257042263417506277877190208641096096891908066715192261680048880107421097965679018846925905381831204022704249108201790673978434110459046121263051868838219771778027994118995804533777318620761595571610413385265989763213590526949114853089537335738479329838905988988997276978848501752414699906998102138501339175457573936404172549609986572204605100078859425039690988128533868863047350157023256407842911601783475561640409723462985267927396795308313248221114523915841814233618491843024115344109333585569623946256762003234492322538307090395941370124117031974927772638739050804885181311255751114776148624214122094798130713947163581039791467942939705825677933489788077778137130022872830837075414347376154915447011544515574226743039826193500393064860033493809491997762831003274370562312250910941544337895935617178540771628924978756252460279642288978613149187345945994014688722789031083324305199415241849857666572987414530229772095754432122384531852612554100682702957738165238197168106220628753011177111408794744406653648423892492346094221196457901122033763550309795574595609041096154821085026773918060673153405977743583260389363016768250087700531137227262681479081532018594204469726384079675740122781179055934112306233992047882202057463849234829064881468770606763944189384061190707860046625081776826255668952369594355651876880621699130521173138751420744238190922377960523480564082559127991544884656713944481452049630573356287653507752337395574423513815152884644338931516109852524056324701583560311324281716803152944477602509673877068921942140583145488981029598036031374818027470147848516785081310918098111647745570778876560955209949315467300188879280041228834943791269451986855991160575386728678531856758727559047083017279553831032406849467015607143040855356601092651334563955161785836173581304495104452355953603632506519536311217106599237270329402557979868179771095659120889451509660943977266010520819621427101811099521280135109680163278132861264230644414767429635899007987348155228410119588785364218632148455295609407086399084060904253399444783167036643369102459594175850027294990999825127534044202952479535597008639111371151847832647980547368592385165148714423685776946906094227931251717397649930847233236655812149957200101768537957223968941551870219674213067473491471741171362232380246559988012654041212768570655871532975719708550596717240467809332362879298491108177783917003946821852536329953106811512565864635108806219129685265505350071917699233330543150401264156105866074245495466160042279641193628957908421902303420843538913186895180764716718166007873262068825150410018471836125436176705033711848075702583895585855956969622696835950947595429319493678552949932819462141505141274861696711952601489555075013989703271703727712395238287703712445769265388698192433101324425577235523579894690593514523214560785383448498974602665401156950265925093185024845094998821317406455533890113142215016234115640284537105827136912635599157337482775601870255787834718495859109732981690519035886872045154910911892339629152131724933845536668247306451997062462818222710004917090931961694099753793772329276984514021238493048590575528220562057752248450304627962411822733265140543025851498570512225160983409162759445793936428010074823367842457299421244858882448154186995371892829779606535808511344497513468094188751856983091289178285499675956022633187393691425845421912069011327633975683456885135005665556742334794293657236029393804573408601049603137404864104381240807366275101754685456992151885899306241476550543827033214814570731249594176430492786078148904174691966254557490910946192279514054883791427646963050019260715880176890268121120537404639623238794287163747994718004012359754837721456204517552763480861533057892470082322469535277897941815115095979969561107762256214730478920445959733860272824615232259409336208988885369006317911079132973629596271511022731993295770313680641569500634491712284330397752467625694178057804674821836346554774727627242556434360405628836400260650233794677869473021317865353514854007232091151763882253395176967132900730837755941076290825974314800657773818179901762960018651836627127784035846750557796218587776085220945725368037488851335036213774363932408874044758370394575061817393255965607015148553431056513461402062746546864935184362385539308065120372820669013282468132639012563987614578108691952590360283894113068440430275108719532432716717821668954643757741051606229883052002238771319394036010196803042175460246530665758035601573797797346993298090114464594994582551891147370754085709436419821198657980968390324881002627257054167922908997637107495341182863427974302748709168562679167680899087326420450808355287097307929081832489673461732477494249852493018335292147649474914958474102442794044859877802060296817819439524440314369981937334397535309524828848024589555412559791997649194757845497218533817137555014167567924708115107201407594567082593473372582575956444428756323754569109413221085246169109853651173203419917797376596556813104473726999936544422650074373440791779134222382804731053195784476071835850651075026937855408355722919384692745844209724735785519592995126222169445535831500548942698096721048997315050336036283107198291934533191534944941487421902347720595331610602931250980882457178297806429960716122451389661688696494347767270595666704820096983118222271205978490542669503747959254928984950290125247805757376133466870619380230297482468721705291900808671700485721795321562016446061822284831101751028175741394844205397718206717754173735819383164106075347886142868677277378610805487783765175650272853973775388054925323170821263013055710659011797914302963713803095058859436840990090682378046027095385315078295062739880088159006979769735778780119397314340618366887393043443181409664542114501674563025083544524666243139371070912741250377162174805632289582563836112589481684265514029791437487855112104148478197568822083783723207029516099640839859535826631239036971413067907910106629420247434405205993939775559930763028268299772957517339729633820023712889816465436497488998845811371404247941653553020989356293862718086509578114953901272334479813196100981500315191934385902469249909848435755091424353653272018555677595130863035296070756947589721135695837094173922257653088957492673211394665853182593399630730949332042115430004300844527724894457739950258617825264617434037083728772533652170185945991262341045432202771263846481789832226652106311955368476614014528950278931490890110441867083616459356955569607054968666088086799483288566192001514357648364186586287704569719498101358428894340568557243721459406747995002340259743897523459721743665161692409989793969815759757835838546001287086864768596019787188564381182089700798154524731277843648643145888037387575219689944366153398760275251911430551032865090877306516437060590991002359328418995473135371244007158801186174962108940615725358700654522003201873738401966615690645873311231987402111765248044998538652590773343916609339911554908707062373364380016059144109040279165990215461485643010242865807411133502916879483251765055519119189163903391004875367156688577498980839247395704047073097557461238099328135966291312380374653877799339387997599506944224479481726078999039820668347801715078718482339395185780949295635930270746955700244591924012823224044475082434717618999513467214045445363609475482212476696603783273030409907737986406841728863493815831715421526324711971843239730261205330367150171843205694750725247146231093267254691291480742103376672978653008113028295946589960793002796596006959538957671883110047034460473014614553027022313950961168619824810185196079413233433038361396784133127332220926469654997757880943842860424656620760306176547251239565255752540154061683398298079417301258880751326172375279326898031354284429735133349912463002025631306709386447807685891621023823167824860551252803692179901965075181434640204326158735439740189123925190911022507926155838555557805568534255584654508833165182884253438143476430988167404965176062624542816286389998998017087496625731636410509033246146718046715640912927088452363144346403783981249319048316184377375945758491901936295921143780222016748331197470819663491092799306458133395323275494178563641596423256727375359632686396187722164021574271637538231630720199279878578901932316402518142135957483676910296775695726928881183882980756413347732981980721870972540616665996063068822207943613063261677663702245364279270619121376217764385435884593388798620733605841289861772911246922239935304378192939163318281807649430143156850498280713915700272536473962777453378706213584020455734108587258153693723447822984995929649513552566741573853625341764285060948678509105123182569664976119281067478505094676988133341674548423766846362002415936025486214225323890298626843110485855089303892921089710666427913405855039295633234318198378716297189968896950216998561698187057554903246730403413174099271797221521705703593494584781787517256205069354328548978487941650585868859536951284803645219366251566069818710917131774005307438825547386007437947402899475923474619530518578271039941402435953931279086624506064855795966037140213142393269146956610736178478566232377458340208317087018739966153073665474794324534440853159755630098173223156074908132701916327542680156654534809100261216916937114919976715403665208549447459193429216455446964192946901388251853772050117553597554827837172876382757063376820651053528453184161931549429145830371232501284240874235437937681606156427882127945423110189878523680815014020542714433269697391807269457036282243583241843931342159678371136303714153993626866767063707688345540406976937069346717453839349124645232714659164165968607834269067120392249930791063130383525288654870814697008269476293829505791017715377563285703859798567741204764530396816243058228276648927740595527739821162973675032628547109659913836105001640465605635323094885503512348746117671016424091032000116089578482664727249808573208085194061600780165896932618595301948303789193541535615781114675400038290101216305203851329383364898803386654642345514568100192835083996559281905194832084054205039142314537170356982580345423377512514796229545669930485971142552683614525117874917416697905374704178517284475393156281884981209472828393332452169608223367140104043026089892510509428957389436376961368621226993292913836085412787720832966956242073300724419052765376961448314562911979370069020103962497247589740865005232237499285328821512619505594999496786936613453070845548921358834482745384813296608098368437853891407210605952473635470418963600481303171074616525706184297392885989438384664265369380791353277504689790057245619855541999279242852057727528414552086299515850867285901230463778300687492145776265663537468919710333312531471919909561439438795856479583945486050257804242584900174772861610543699765870185975733487290681942495523141094629218831610369820011950724018074901237977614526156848478026499206971552604519688981955031274159152935756137332710811274855341527039186893038353809184452235281506554026677711498479391486722989261441007631569174934842785205927933727819580175511408409709941488715790257696465938089358500979139704292849716562877421296380196091769197565624663408493630988445585544893462380626121860104688774815909022693466139151527524794027905317108047730719991295319237135417225788842170235100830444990586850824474157067532993281700750367723501021125721704920433791974557931685675114930180327004711304067454012033219488470060031644612053880177110502209261655837806176596570491481759797030340801693436648995865676295881726592602471342057037680753267096382802890654953730197630023993841927472362628421053157569880031797030547732156736710002436150954243811869823499047866296527815159119170429070991583125723635625009090516399116431282824355629996437613345522485595121543420615711986766111083049818484136384362109191947143593347125904212815624186902632129785196487638763655899533040969397004282070934447879704664561260960200219201390103305917874621107578667158277008889474187309562780595362855852100064546082944815810141277954813448831049988692415226381559641469283237783487193452993406878342284396106362873901112019549008337745652889381325375481738890690509439190012942419410704449327567453481663692931145734659370623188242006803030625729359171685538519485347669965775278041489798041101723747524431432941725083124511610307527778612296217407019972090948713275237845731826427033813444200576054231652630913765263727159155107394142562469117507152634937338392248600188772430992974679843356507819229898672372592049123220456802431103150704284519426894961793589414528046588965758493200449264359733943994497965820915338131247196448515562767575890258782916379829164700517308107150313591462838433178755509733067666068100333029812593121862982410144495867193122395373769897515845072161279419571080164420190738318334566033490092331130428194616935487809147997093133778191729878448203191614333924800592714516523153979509119702872045562257949502052705311701368969252803370754839947041014239486942289751692130895165735219751606575682894323445871206473287726751555236148503293079626189212436272006466397529886635288030972767892766752858065054333786933854624884343410816911496543431434062926480466330013036261741266044954732814261660349137961691117569420114772831193091485446401573011797783256728895165341048322939762959260453090085760746626709242743708760339368194841048883536157093596126922720541808248237694989826095058977743039873514355751045425948635645626157927945793012870664207795799834549242346327235738764133369330968195167393624081985562016019749060528901460826664825583231568691342978578724873715876511860645748259286109932816201187462115740692368391917579889656903189116210186885994287469858033661584228770742770747507601843139679392276462881653855265734491827657163587022676783608431820063371092918703858465641220225014678749211376676985156822341904553307432596281185833863589407614583919412309634394283480232288783417834465387268184131261340597755526626825867927700409767305367683286751639392545368198523968265799066852054337700844925534345267736578254310640630433922652547180369660294836295361844464127151135389167163221118159675659698734077933333018404550933009754453812362704061793685965439791448652674610567545748234704633329695985198030686242223288114559719266992919717816809737872627567020056184439112490695839089290595550514063246056571023890300218470709732103839888857986496929516839897792256435259787508539075889503644929275837683068986958950723932174765939502718113030074961033598251928591550981240420100438269819714738629740010361377454541595450716309742893688758317350486350844892553088041592394756337211843090041711354139767070645010133510190785029937275638875998555354165111624122897042222294484501804682560060201854753693805951294035461187782205898231886994060202118121462242786143592202958063459005251739251489204918583100664613202162091024969584268198838047529775719193035020817308443832094856449104746930569716864499376511856433255427091104880639541051651586289966836724129345597084113709840068262057848128766575574682869285245387857311639955924184042296385850348467465995744410875280956203858296177930933917039007576981561193872737258827611966051930589799011863944424333662508279386470778915106142463769114570288592721427472791839967588612522791532868437548010781451041444928098107680614840794720041922105238209627941303981826018137130072708422931370332670148126275321588923952072276969273007535781172879279760713917633350946283946251951774853326386186614599658826060203274044811363952467527130767420570015817397478787644660867368925711870475845682181382014892312921107712864880824330595590659652904688192810972812151378263279673227288117816838333314399264830086120479771526797559495382582290833536269222512691986571443897495648694429473257482096983054769444260933397082134142896855009919659098883445766081152719641649750798617667526824795547454003152142570005397424100418971050851255937548075621850412898050864140397912221824267303094266133224579465387636920771548117984500089374375769393731434919899685039639182935447454127660586234168303694435135319220064905038964529720388027965879700907937815816169948504621297203449172196577132511061478677308371760856452379653793766098831233348804756148816698632506226214936950272012938575175231003668920787021168974208396120432859696483159673332719751829464190848722820244332271690132563074627722817172524516664098514889921488210883388471806090080375601358420900671203099510651440094981228046409378727456615518385862944945443485918764443569559625445683377904838578012113334243371811987488922258823506926751172863534701734047869861732824076198726506199784576831081702465078743118999716419421738265609791837417328960223587529811378606103145817888777316260956859282422864134634892122031209896160975634050656417336912273739205550095134219185631011024227749808011554356464410786694428235483883620640399679330524031521133492800260348228182123095125199666002074112940878486975369113259037097418587522469635837577738843763101043471186408991791527961539291954704354523807202200024376150446513183917263663896601016902014793406171251430789897741581954529256198918658620686864604448662589028335458591881322214881730724072936423495422441962716749326387075843620276053898412676946925972112656045397989112726277922598217962129164386328879904457570638489760045988617258793764449517022873284597651335421927814653918510956087056937265699384146126752179155040790750503310223276822462696406727501846196257417534004562621050401948747313738168307081661341415514722922254080304819273624301731165833312995190684375540766828138269582598997272347293851685680076010807676471771699440606979905561068634092261542588610539165553350495470193319341042625637951277245703462291692670213462253824808170319529186856939704599741959041405343821256258384329513721338788489196332603138844153474666626503230462053074998509776883872998084390625283667589036289442267938070248752049204793671801623113215517883826358500170296547007541175521473675493084936858827138781056757524057805882590057658313874297859884378815250528933210673189765508545288069105046117899022852553787815297013467817906174624264011360100588318107924982186533906939066370165824457121071528432468453673097610241202142307144186185885604112365026084584434401790779594443160624630324254248852187007605601250836532683575998946934152688607307565009331455200143750241129166487684902916744317467264011068754659325607297119666664785311326059327709457846837740786799091505648961172515950832292311733170300340008497318599346749425599480685809336575044469244124643188744536063498375048363635460906717002371885009222456004245682289504911533405348300477736285698240063517894843014442645076933723039663332899603471567693361795623483812556572848792798148589821807279744772452157105456783249871965003002172759635660069851178863961649590350744272281858418477757543494603331811697476036110977363439804401398988770958187492057012970452290554857706038443564646105097838762188851690768505032713721847946411246495090709323329889886779481554072431745814210294000850889228782596490482803933792061850403990849988862289730969725869783200454523323146421168347064908188014156316671904708347930616237564935720651287906172735929035304965624031156539499824829446465562679931965139394466221267068790833046782207904736851960338020424852510454943404352715216837914469997228933820025562892938384662244132030361123196271536378157287008101218299287280089109325336188018315418666211939672196030850732793859307386560311748011803753064071124867234149104013030214234078083279416022534746941373566607501087185062682505841992291310700316173014501642812335097220592134554053855315781582897315095050363632225109554899310738205250804482886587041174904261351451102491358096176446193861771971899679688487019603008872530826464950083919131965019904622101643230316303374138232254042276202945196643628252302925439982898257989438898666358818293697944854537020949723729074867457354402896009016618125940200229707079707136954573658076630310363177149072845220659333638833726284145106913469707430390000490429058169404390276844832673410554352010739925334739521504604288633811065042867982317696058330607057413169059161039995705810206995335453346295703498939436525615156937564195217058028882975498642056444837262982635852444838747309208613009044940384478298368460275511376525967728122960305091814240720829479676824300162603383565945208050952583964893897292935544069385971193626977879064695147793311865688153190587505702180952097670404523142596680170723310956957163007742003446557324304137498787379423458845415758948140487699009399643681485042660415171616142125812412962721297782561921500169005443339019922185014799544048086965837770024040857035566566934318832077656972633062024908819311133015755750545935766215178487656245224264729340668379360681451580149258461327709638080135092142232286735017138399163485373835933493409627962135662475353502829830873916935630224372851786291013791880208915947715032200651555335566402345372694253305302005696099251979952229259325906971796869198527071518966680704328227318668848152164542072797280633179163207638013900856795012019010183200353234351202842183813051600894984381116602922280995168365978492049149275269986931239601714444988614745204607916319533563766510647435793927386015869640886404983744121393329709931264641687081948467668445984281777120259762810841541212567155006681101729072698212570396533060630837014702110979024268093511504991564877692022933399276425991479299286122274112934884942141414705954215944755615057389105594311415106438095629695790916290829776572016559179797585684928007246044787091510227317607874118414265402634660754663170205833863262824819426140844151121719170958700515813748184115660209025114196782773815663886759474397089096675884040951033818863543410103078642283022996582697128809456891199016894444746002700536469767870864403875434045850581198824584009071450012551680967830809316187524798498309593547834736123391103267510209466164470461411555788672032959529441001768399522023813056671835440751801893861253354306721554338312028118054665239033249323309489269224182272331531766523619798826898661462280141863849297365265332653449496845465140460802508183598519168469888143765941280108392134381072149775819627894187500301341326919472965407053415644574463842378471937365314421421089366648646698091660404965076136859194015184397045191122323359295828925267823219082287099743302595540880644274680598566410248866574275834915574301009597294966788671182206333734478640435339609668724887350738302892683395575074003182027158247694870022870142929348291468876902956582142299878081172021746883170215848781558941541105879792071511216769832427045052511666081028101495621251183055763006124335775060739662491183287934748433976297752193771086441441073290222660599001441813612212575611044519606681219891809834615698387215828263852039740236000171463315607968880322866504587485513516154913803178151993489779036521669848661692935229817558484717836170033019052984839489081493067576069285591616228928360192169432045023123643892599798958525021832177386874210057473591505651703648029944262169323552197076259964547076992797993977896218109622866233931288616652723275208760798857535369316676010205229748637732022675947467715666411721411886056505973572611115505179734630634274965458422951207419806953430420362332097945279710505337420760399736538360603924634096549598168206703435392058643196019080290399177007571661895538252888181154968065117934584672186690721389415470554978239380915833220416051003993861231811733115377923647277028046595486755997863099109672763055855696341656445738761946371272319578740049163460268625237309717732766259786991056281731917276683100537519514568697224138320837550475191617304106691239887032797857508661801623394607146567466050705011897789712054690562812351980580257600684621157347214949680426965553374751595076749974912259419122782226430766937915666875372587491077984768010715204742882912082520226287112330854266444836298226328585734773759430813206840264924382292146853029936738195394797660690798914048082673290209007503320648240142858110114125701564042622689359412696560766571916222559712830428302941925273138213037343432044787478500679518586086898920281650153319760312880060979995706658583382322736905053363029081147481375210055630591391828323861499940159323241618195219134760748989557991337377168463193596057173275047047688924918003458065273118582987719855243800816596125666074038089939553992144396034547039439680005428627301248535241925621389741659028099221033234597894114439649188209969724133715280131995901424715622151494022183871918868849236593649535331200628582097940683903118277299655455974539341484109259918886353821712476846350653496536027904457807882420038032020459134199605391708771556210497235679467421203569367701248347389688174813288603992179676928910884619004229713034475141171979820733846970342948959733512706544553055391782701738438238138834461644828175697510633537468471015586686731436686004193589795747874660421452891022727844863540944809673526218041518915725417508314095786701814692868463611695905084832417449278927087978223032779472660498616477890323277278416038651825207418722818978246398752393548916652934327896166110660501019685053006490426643403094883406126731059973805519311694553625207531009982471565665100363556797859884156296367777843787382301239261487668670796795281066932064863527093789956917631374940706721208805233999679331607741587032016945331824751236976763036493097356122322957873494037366512957545368675932382726924056200579831072716478504089003280710670988404466942891956107627307834215194004062918530861609330660668301598070641359244126925110784843206974429332484886845687495701805601648423750494228258180377043108469768150947637509752868731139185927516579549162459253737178210333167339684903448292197789682546407649953261658695607670189524569761416348924539148669197671211097997035111633113939017112837438769290952846157710600690593089715829697883540355420786944642481403148927412063666815785727245874913449119233492443936063595352182669936228062317137353340806831085935491260471757218163851515366382110161110405438489153353787008918188083306476318854399064663817440607749669145617998380298402157259147758820187047788316477705185050347497268397344919348663403343823338145199763349988554847714406010458546357716855984097649654461013576889705839099116901584728230419869233093207818618424724876155153105440993966776876984878827813886679309013521294341430872237520601400714638461022170093352898124326626045876956805501460269268951353230402903548616646823360791004282646349377992279557528518789595489104562559914654824877908103180714625666072426129679216078412978162722514646064895879964463279686763926549755030577818188535159709029571953850886272330292047588233898165411320805962940383606565503679149108689006171780186859550680291005643086330035688658811828334825921696604573483280031698704563015017113471116882015977640786249411311543759493596749116787802650069784152954862009682956348949293797381925456119848616214631170943989260894905348995896929704324766226885761808825073797672720408395138115059520255734540101182280267216383742636945829553263909726606878450025974299184976169187756498328651811416495422220532206937816159212163400719691950571373015347494530312345055919071290160326556393227706416975533040362321589746728001710394837200989705231523809565609596917283153448500527583852180336761166196653337796051675288737763077750237431221268732197956265647882066004991301132632449711933095757229207865349235483493727667012728813180633683123591723956435580208301815727331439139292951729946986523129660836273890641146813105450419660727115609503104903006697324779682124697028036673590162244869894845662904636036874259356190891750024871603687993715173250031676515207808315081501241435458785871325736403916572634090289952203505082331954833557688318995060037743558644271326721053720592913015679375790691281285434754302544237133287289051234151797694779870854698974488825916723792254273935702616532330895899967908493901835808972126244835986351961860608480819765208875493242002866390562326562085092475385806462441156476696761860317760186463652895313730413401159327814552242958043770578700957652379774965224566525768974879569355590944184262043635652610573059135878876323446426768296890275727742392860618767163744553208531599014094043927344290194844739846898612401537941917979025572724313344959122697589780979141688269018606869588122800071081612280366131889413869223713678696374090547640698383754916763719018831913151059719638149124873263454914812140804951130512643612158019534821010214608280615480429857651402436199193624040380811964202406238862148037924194655309117233745498884247184746524493961852373152666519475737282239725573112628086255992870039049574174919402046876350990406592200807916546070203792074324397191932057733390066234218736058998123570467462585410253648873225988887770858567975180694886769878165254314740975484405894889896570904614362111368885605922104665913871801810056728773177205368514771069590668087871529973080103198673120646937917215062464880884565513590761790355680811684442083040202471568459554124361834069075804027452012047956797447069850361501506225083187189343409779679522360642545638460254961875518047019828032951325102688486340156517578805001809520791720717783752043343179020659144293394231983886106689372707603097476786463115498014082591666709168608854781973819111352963868582463482934849075244555110617472095372154093368552483578066822319142087266717976982730449179389277792211683193479986598410756432085214777175875607936373248477517661279248534032760244403860997986614715879388908685715653224985384491608864553661616229341829293506180406901240921057641325994706516418096713896762988434305337291539454323102903165278945561570304440778529477350753653273251454474526693058869952807947544106380639565385242537060590609610082024881577827617344683150973191540217265978504115244723097439280294868788180918863615298943283985811064549940176543832751084741142259404333567086726171963172694561885813396469753178431676417332356429272357612711688091230295163115736470593508655080163471230105343873863230767368922743594187016819197909132692671439286345321043558073678564174069253935807879675783857697458074862227824574272440001920452446416899993714208593809650190158299609438985325859636821929152527293251453430908441745385381702415923762100252401533107239133204501119305659494496217873606355528385045236843034733074717164863397603262333134538411591994972037369192748061554386314134089356351783215925108106902220643086975261421358447382036353847461385492394345741094428022666031760927933133248317766483419694158109207927405186992073742306077735624083965449248812237670757003047806471655427864487249411444921399852785549224638590710881216888962796505790678759110207724381644833363665776070423885031649979466554945267178678628501357194671096640532585446512005694655235312480051629105637963139582799052537974406350405508484403488729947718812083301781900467139466582395013014182256882221621037504986847839201119000552319638275944109728007631804815851035183687766103920035157269603974042697388708891156045708979329477862426663359731620430536133233886043440534471968357075622032746495517089069493211981272225638360407055563801786774009602385002872879480004491559507524777655829179871504813111007412300381622278776121443836709003177120811883937004326836364411139192507042894519247644033133369004296405134075759413498090113512012284526666021723998598941780456422903080344306957902118526732993563726763747828553918443631202364261397839086189687991771318793119810744170255153794155514710554192424543595553098617926902939962543994242592558246403448029874274090642536481446353868172176049607225335718781272304096145066659850446432934126352921137423631121732993269422611000588501509332256020684350036462634177082585417833895955431566838750837457950205651599500557137314561898409503692839422997358391695505062483658628456046736803166059556575510514670191859542873790623459613703006097899553014659313845842852597116424179370696774977090842403547109051749864563834881665180416000838674285783414378335312183502942985899197355912204095127949053136908094573572894498246171912892067299858967764874130742770432575963880463005096233505720149959335773426902659647444778792118725041184920034396304942543847588686114072477513555334329301470594139163731789549267029265768426932178575256301850672375340252036586001868387370943236743724325471367377838960867628758259431595309969263484915540242669694446045142632808514094841447509858873818977142792794545603866581257148705955554374357525316569187717551378016934383593201621595747045870488420099085456709756972478323787187074643120165410253412335510977433900854844650158343973756780955823452779024162928142790679089294618571001307845141725742953019606988214073882035583987995837537969464862666990778157684267533099318401656034871770679419009983159305168968999806154357307733052692643097372650230975970250099249232199853154737720174635865331271437245638867842077060751152182692279214011155955849931190519290517878265146459465387359971216783443739965146621636588084783143860723288616343272512585155761095208661036970042683735938643713804411189660791754352893306874666906962793808553799428423999807876559948533414294645614766198019236100394686810565961096686221420793739509104315185190002530270105805295990615487024610366406745093354966461957835772404802568225749344366174744895933967556264690543149134676507993602547445642757982007039089565233583406337786020631904114039671503272082577445351930669247449187551935925426886468817384946463060135635640825718539727890630894580357704384755176421509294032810257593185082899967582417660717150522255516546080016866681756921657007594936993057022933430075476086972663691315050486072935573913525235362736527380671975345062300251894718113865971139240495828331752986878175467879830482460234938729037554949084472717651596225448935684918609010368275886228007680326322100179610990914620779012657045291976104253357468478378718119807849462027085609549315349968718319801415577364122743477773752286035501293727859619663153726872034352663811788266322576172089117725818877696080535025943465301634597792551794074866215551085346897745977444714426650090552822758598704447578559332932477032798572858491966558060072556182824858020610493006757156415260810745317541074192705614680801080466979193062053549738364270042316860332684585360436245552738832713462023114062871299848175982685227290872350990595075963096779930738050442545020289748427321296945763169737224674985918353503207914795699155807352864535428184462385470076244711648274652213860814997207728283048108771038418546120853045196504878424448480780846559352600952961054187195565200942016158407252591955742272115996059523683801706660158567304646894327693641740551260905628981366592602117355203304724758649724048989103811471351771841787309609887751515108796460675031287027783218077209981007370163831263770166527883563276703828460221038405253798404413331169534450710165858453016210313894566771669169855101740578314196184290230629183043956186953428327751617389663706831325469798561689990601992793430918789645045005428357278136541198707730714537550162336445349704941843049598622012146426485963422683424013900985334038140169102701065920595334855053270532567810426255653871429924613989031672142393768185068637824392741481690630080107242915380005006839062296689494495897531452162628111707601241176223933617346434833453698233889587879995708358488020593229014310342837853177448262529990674871193004408650204115459297076713189851634941975556201193928355889280302271186583775939161599435553176397568990780487692697642904832955331299094560333221178223960061096632821403284290033521173382966227129226474747196828288987616327075031543936760505138018709738201238858242500145871222869229575276542189542547217028932885950872727868703538643031855490221239844148428149034048585829644916570955669291780380022341084568245797555035317201641683528147347086297532153816294492647852897445752001043033164504450049037996895281245018469573308760337005014255661475713742631217249192139072541054075546643294344602154782317004398659185345931832127287490821531589056887777303704968277862360691364489604948477447894040498174789429653313297359614796056887794767130463618626370002563158673172621746892367973209208987040265078842350444135377756525645944594654310183759098307562680307270463864701284886979129145307261407771743336191590054175890375407447407012116676051882268499157057482466204604747009654770979901080786842702420446714689704163194679843901230502147665615790790494864599030810882457510850502933300702540475973167546416454326978508348308316626383943854835391479529530766843832253766304159752028491184689352501804514421858944758183263076733279383069882290007173297655139972923359365511850372017903250998909602037044686994206929017158491738122794031609584048219012539499167989106179159565241956640793441616386751246064324900255802058539622749846172616796056245880222774082846448322140317810876302470314474765819851769534332593139516474949209499155155784423792368197394375220117081708159954402844217527375212213026109346440044677394230649430342353375862780094469514002135187090742828707733520246891511554289288289318013765857852049863036597701860581267056088631443729925036852102196340944068781330479117899739453604553431643172623369767242424519344615777150305701445269304448205830598925537007016791936449384952486457528468382345243625333397711529441304494613165878020244618393008112835868884147504714581577196052584654526697671787749775300424278606845906511373637934295742775697070076840439833031342514821988983563319551779670539923066419663646189318427796654545749135464404667181771542084388531215975320978677568480750676633733680889160235642197443707522911874689711954355063020691206472928437288457860483237055334198900070692628068289625534676573369201118625040460677036871562621947083305618967699702570571344411522555742726965481273356510395084719196467397147448535979649675479196088146708910665426083062884171140085993455428319109134777058944396276149943307485745111005760659901177829429799905850975935522648517329822788172841665653633475422580316970781296704214162737500362283626916651569612389570820839552884804369770613578498942602880631483088373821339524696785058035611695302984733626968471288147416934112416166396899604939359318566876146844058788315056030321797924062016279901525586799488632555752502655479533040525410589280880134621824823407432892983360702028060217232126753078267738089405638658986275626978619537481008041501583032611152569919393991637277194821815378687314584216310923430905734911780314944016286469229753890426127526626393494541343579422904800239458888472233807347909525544060026858568757047015246415473600467827752980618179687244732617878160944629488216738224015743581337593668685794182049442523742176095054462775090127125432329661016659769069677736547159363793001752728094461707777318927962050133709438297394012533125559273019076008229910904940900062607513739317497683380087705602646011141173818912709405281146685553098183480540390260637409939718342508154789624510862651686522854477201648003621839082358536836704359750912465363822826912943160063944662959472623292737781352607897121157609722089533691726952948203101488119243585159654824053439084350958728664058646414362587796613004280131729438501364766993198363318753951089676579142918387905683139686813506805257053253577328397998513057953085288132653343892038217948428387301718503601077305383005387288429989581329839101959029409806398003217431127526047306021581576530524321980750554542520153345165758469022069356961436646263399535772186391508141951169010035544903832445442125207604351625385185144140342183251905990087182857101446371383695058874740097175407042828655848304990028677465408598683422899109220770037478377267074377638543377524626930014679042558071433189788744791733632016625971781392000326901389376677091357300939687535186306699586001608731833631948317027516557682030260932398932662082547099899171311214587925351413466560908601779035080951344123905462031420466343780432036871737086402316439238841866791689887437561791158034496136537314624721278517990840823259770748727218366261728673225818574059899417880852333664898407214188398782623924795823694102991532527373647679569027401931485185714844296112452454997638454448352984359010017693215953769019896486027427590221426413667171158487189461946327172908586064602309955638101402853466405990770880907197707507947608557517774239031998586047841551751224664051121052601589434660581859875205073485839842833547483515146020586102453416431318497140737681487896223914907943657222311179322284634788873181265104498418606361266427505067382966846727145781101546281581236046130707633804228363389269365711410442075576201526424585216513566394335174195478151651332042210077729656473448065939342654082809363167115880976860258686363408743787055300235280304403250452160123556348352175679791867643698360018046959336442629970125864767798470221557965734111597764960865480697381713544127329705757639307039391328735801945656264797049007744171390205416187214809887507592312239985607375106812680309063768764271417966125329510463061154379556911740774718215976774679113976377654861884358143259737492933171905321288346971652264971541227726980331135877096125523020769100530039975987192239078193523159297209849875861544592902495724946429964487927505109538160662998712025669821111355446699587462792568695071157146605359697611435017482386669026339888575100326068075939176649539073992889011499560305495801721619502562865565482634426205127546688686928160971884857375431802951060542399066430188707932411950917951341383078800194328909739293241689840478978664914497733312799071546242342182941060520384679309597737056539616273624337597716332391524090480037234646970957122372991793150481744447118413605782029882392446409916745589679353536808365984140039176510935492206192301446008000527836509605985532808501888498969729375380984487517573999249200983958843353887922502191905780897920650823268140310628810477558287272140520463289873465737905138195957439428777132277830764528807244104857992297888982369827657666221807239929246509739727379319217146565983539760705045385017059864755752476868916333646774458727520201588506296527835401122817276477027210061363980643493483208291378181163319093644678249187123288920652151575002598054345221228539308694652966871874173691519566876196998610065931806388751675907196204136594636624094316228877312479378039815409576687989521571946733582035176784441927732464447354710497421287165753140211747575733422780041399788973922112410872703378604615962170619018961268476046458711299406262819997632626409551147055397643610661176214821373030351416188828036672299578501714256315446833421503371129298023810053740420142823813017850282506748208412557762364643249075738530649281131586500899830645460885173492761938478600008715115701259404879738566100070372664805023324763836033173024415365103217411257753684752643019815767850299589901169266300650643720397517961348478661023559938956061608636265371119305507685680138301819760236446087511035244754876313446616526171152571716676062993533937456171038649204582942941241476443417780029465190974353957035793319478059728598271729427079902800119579020318167265089038686465738403298921460382029073215463944420505325825823439580971512225797525083948997297841703730133772727190542146814335075139006089817890266433308907089237388921136959795023940165147609492173770134404084296646976173160304970806422141085572748532911525216588639943971792828808280431632915349843152829367053446112247153731248008111546392048339803474364445231066420158160405831233627244465795729688428240567094186235142014710027702803175632532827710390261558332456179739757904066584698916992138520612857219321183073505371450534366436834512004815226776748863521157798325437808141595702058695291125445195208605334592421685982316200056511471010928937258048890463564315161345495465092007495228628539811351355912964909572165451836132140654412915339845731521603294475790964941706335103420330337907439786844923100259333111317282584226487971247289843214759886239613818917352542105366859549862246814343513770071961619840779884507607428055398130710312612075908907946522211341647395064664193291450284766198284694454824665548496181200439627225638320289766311763513602546918163419671045071654781876284379622775328687759146183434084441295985049722936193457757996512025345548129969306633820695480105756300186571447298910024043880255791295725947366697641513016601017593589575695179887218315185053181369608059625767372712678796637013979329258463046592300518995745366579666384181541395307443585089885957066214601812902693638971475258205917981776212024231302508236849584036620885252764334548610879986520087084307863524291509269420520304902729305324753803559758538006951445012029771114812848752080153463972118248645017282110312414864373012197195257024862991861604380038243385997610426256695590146954297152470628072997821665543542962510629995802456038300761248082120381913229319110219375194308679505368852046689616167606300883996175771209591781009981544456331874574110203197197220965485570665505044194350445556365651385163225583217294641546623018542619028340764736981200044210361775623768301844028362533082919277607987674656953575764114935409349696373962027440380005239539735532410697943482497897007360589844447219982962780875930456334263366708574358510670566218477484411511997813346167334370566519507768874578801051491130380507322341949633612589721771256602573223388384390982554610378591655771745272068511225702899666568501660399573681631312064094244865684195629899247660051994837892041244250262729241025463336249349173370491834652790731106177575239704356532917597656068091143074415585250258943861334470043434115393280460311060849949029122690125441785628992925461059577884407725537991833218252364176946492669347872802666209310672557627976487718143204927231540834008534446401339945244973282598755774058126617005487227327518011112889682828816819742904260615987213336554427824185356058226976185110501815801443100564872925662655449852326472429922143474996501720182983334514619070339563535190733887732837214823001950894663471956471281099579250524232494773991996947554257270261821207876504131741559443422357598175764327492742441278468448376494509520309525068798277521367784861297574336686553140890988475544427143510801990014270208174602648910826994499181508466969379571802080771974477848653383003306163938675972846020745538584482506027990945368786281645529297099740900568698643358945655923107948538521650589922305129654555801070603271231188447163821565903278477658766607719841143046466222042431864250855766608181297592369500321700580260077084198923245143244925216355166399654569321528680244109552415075677541330780883311158786641472801385147623100457829360542964925608071688425764984338907041620940541084890714388181426283919098143222982205383436049504524824935003515658879402082340017037973980882622612053014710315304247904779312998167236340393858637442567230422352322093347318166602063527825985855257569860678894749920838903267151257608857654784091224259488954437534611680674671367370688218497033076492163434956804295300667975059043662377395270632896713066223896150943191679676481309443972083869993740871802408850755391693315568565926595684121342101262038626740651336159555058339952626970398344921559437653436345701567775556504048889418099171165951131831002432886252258557264988480925681223225854848077805318091211235113290306627061519870901351889305561204048974895418593731220246973982752401483976058137766960848523155421776104077878471756059304259272806140039111009726884650640419838329283349560963618242370498194873062524067841042099705145700726563032296939084647405537313268478065829270118523709715075970643154508467480709494331904182926850385668797420177074476321199731912511714804883951777354290037656260316779730590973816448938339251096595909989229876960019463588853316880092359931462232072148370772841047331956227890384097181154732889902489126665649999674944514506222155909732598872317185796019334658129859078513258338731712635086062143367067971971540142653275628332825862327616997491594529769805868293007309052484924710585146975486210290487006386185941672700384031977205266186420590918558882753217114138196418776792244036221279143230231329637987039446289401817442422158441323906051838186296279386652078547604074326604159425947461338563902401469884888534575821247229278809068392380856918261935136344515939990226053559815164393915115342196815133612726212802919655685279170804224396790742341644651356085474983973476613342998386021852569646132840257212513774203472186992934678495378771746091791416506745176502487293360028692937250086010703403118462183686645665722203274527362221013366562647931922680599204599407896957229816084571906461444875985415111522851778287159884719630140480362875618091670314779943045253987372892900186424286913542151096436675398905221472556896410979099718725567428548915464575189791422197431311482508154091286535097643558069992879019935288426955338328261213104510212372507306684964108016479553263486843224330106938125225249723974514794943450242908042478085748054922131353469071743009736031928573265232406343236515836708868737055911731465858447564483127828740610598539630648164314123462805034966781103252446144280075685078692577260787696570874958176950378165341551302989962924381000129064435040118650447804503006746308506958258399293018030988144137625511124145961956898583221761697857991421384347164283992374420424602169980594636575265575875685924284268884159341533242858442149927491043936892828954665137428548034770979104322464546732740392092147167672408991799099599512920484486952897656217836221659004385648072889166437112444990738448357044061191691750886660704090862172859644901404277171809426813558227528021480283399395586104079120689111129711463823912043479703129333937480092150296947479798910929753498518000347546091917504516113493268289210503218651673688610976579172395164164117466454713831319075105706127430114446782819689742474565014718910557392109754564335087451281811811332768840508377337848874575873550114778586074883086614402185492125507831678220967617487635742124635942883019013570645295537692827835796486495612033180332972179062454745961486117928063301994770560269795718005924866418173633187402553537780924823285575320595546376388050094350050594859532383659326089193497063495386440936008438806108904047405332464857930221326665124796983087012173722823457051552403396776237403285027273112667862589434999107496126868687471672566867443123136254485009662532050636031862456574932806118547640321601961208181943480923500169989609386155473242236428831146336066293286776966777914043623256518974311906716014588962842762685558642461884426916708175058819186424846022086224402561647441202600033195480679302400582285878920869938908843317545844455578969360549290492491080905251592215715071396783493585456130442764513248878326988874142085997192925560537090905823561568324519910112074453668584379042016587920869582745280579462079872992427164651054482297660541831338038462492477862011431190600536788074675904968864863208750215460414714385452794169193831910634220952783214739403648318685536035675393020966052605595392178733393187508164456689940435058672851660118297598438266642868401557082497634836871935052988067290386125193480709202013981508670842220356958596173140554489809794546982647870962805247761835006592691664285104264980181271001187126349574575836743754473181662148497065044178849929713795186781386317373009435202040280071528282609842046903615344557771653514485428158236741711515854809144503718241414772418335469506173674216482872896596944528485723503583516400077677470136953157777062916499706164716571592508546592374838029178829616389685427708084322054152321703469723602067740822980818305688805146538258097092584791912580578790685050893378764286590274415173788097153222544212642351750402542073233843015934729215777268367420327543773483104778834598234827040122599211691893665418752964167788506636779331243296984963318330238363549856237833245210131949728356537217964735501018155046673623960384020998410559984859305813206422955067037561417457581211388194951122167075327689877511382975909545978356604869719811724090987777334342604252190811755935607046621993745721845479115170699078919040099675308268842913451973427659303998511483103105901909472838556106004850891176658842816028526170709201081072622012301576234878323148074742516037534886348459933772264692777927669690760776892446930269468644634215632797650585636325364916379547082291716639690865152582916429176957632869536177934623629109246037075159807034272191388024969154604578224004095935734091104562724927613876990591418570699848414382768211724058268437939727105086594921774580538850423626718527285694880384603413244693818033538171410484775860644816138551803322361304352549707572758427898017674410979351337772071465507638777558700039317503817902927128574242258689817909669965476055711988504181105712038816799410607396348143853378136255169621391936175079253205618641636927092224780712729696051230454103325064661470825190684480225285125692595335361146917277944247306059387353158785705592055199594054725991945316248406122755500478528596788125491581605968306309227956366103026499885614293053625031316649893119520194432409507651946715074848027457911102382802696518177902715997306101011439632250039282426395901798062363054017149059176222985729989090965532599715001048289841397298080655445546758346099423068889668802704616460448326450336033388519597114643500091292830912537101214518409009903205356892048986730784428072470421594243103821458825723978405768777814071122327766040917563499914998193275701981107134236647281634948920770678563483083876862201326140976944503743020422783090297569412008313516290534878000618998919370280873211916071968633716708762045926168076886765179577614119313884472048843489428405935265034980803858980631324512736940359342574318491841493247368229792326214355917714244934461999754513865970982184032173870433585787586435979012706681628026796275922995788216637435886149215142511657308202919880097751738471883362368261430249342543773266774447138030726714729007422315232670965097453687809370036919039844095368540192309592056493628362947406974720152876286844972410087009877346975081215737775866053375868437573731534576811363115498916065905467386331027286106992773705627187113883650934357429454556204340897462295708989141203234225340454989646447394666070928309948853173800151450984750493367757307711199675686165643854686532819900024586807523192606173548136258889014310943994251909974482230222868494063258760490139262396124494139388918423419223661585192992966011591087154253670785273335374624307138197673747302778986161429367842844163754233219100033017219934146473564154855584149054815126541490954531238938761680432093543897483420193251484964881295246791439665072754686010605067158940117337019769374317640729050848788220598153566917751235710517946856532989149405674358495762888632821151520566081342258710286133877659668173951828919567843713808491092506556930393369184514260584751382782670071699700730332429967657745626504770682570993641386975922741876255718178084540822087244204763336088132313107726532985300930609915427667962437374278975755741780371801740118305868563932794702806157506933148118525336299181473186361990749660086309760105476662855747096316072533780841680413467990472052880699362545032179772386125363337867015983846105775348789255495190774925112788818271581474496973562999039574098191401879844091673471495986406911399447696604570826349257700794517316883986603464212137196239267534501862965977601901219928583183298458904676376818061551591240673143625011822677669586240426541392636582396272608914433926720769783331644405676574660448099984521168560113854126863176831814248934737057038299268069859474597697960534778161519425751653196350933157836050497181347862034797333065981527392279049993846165375193558654123119178647063819101447213943759397542219876384101678704392824987794478450478503421960453477969824389957182106045285709670740809472525647437551716907472323323932416967462058720713496950314521007944918315574689512865586664111079352865456855040962475153966654984500933148234034042823149710500224406891265560113618937603433558740823146115257355074036655098253384098929456513421920574523321285400445134399428643987301485295797812781924898143772190804508565943749693910463845317369591664830868982730116998257563347446545824126142545213591276696809472463335854562454410545271858256714450837704931990403828704429961074364507944773600713398169687563182626523901272650282357770970460223379029485718940725617494920249770627038672937756793732394978985306306177305087253393418866360359338283837935922127430648446408671133289383143344103140104005337304656548508590532455151208163792419924871307155575562044800854236768302055601922072709061619234259030743940246287419588537741951871785213681905613383427428970172906699378539542983105895129386839819807560238288723835114659309497529975073565420178638432251610351642623180976765467712817745855805822775709651628018863572377121401176930398745917525820603613009306960413289539929269927290306167224439506682674897181858613263166893745326896512327684286159339735042907866583575134103976475551192123566994020315844723821612841143959045230478560666378447247129905238432536199419443998929706655480968856995900251479745537182673132041739017963871029826326589560478511823181182568051874931712226383680047009906881949949996263480842082072968663719395569408616088464263881541308193640622092340748849682605852385419623527091634721027686037977394135199013675981963545239530711979764691529198987334134727567138365670290544674761061053588117524987480448612710736586813997977869942178666214149638576584224416850004292497718995801375663842847381935718800848782178605288032290141872247761274340996235970490142741163128585576021008996771514650918760170832376808053409817520229313638534447749172976895221582023271916398385873292216783698930762591859009108126832076958074785801527908816533200839950531024851743573123081291376165869782058120046951926050264273133008481843421519505540249582292861535757331877340242194671415131068899338742369154983640211709715955049599637540031012215321290026833224530929790752885708358815275364924512375552406137873434024793795642181559648466785167537813706709436616108730241523376513982503874809254092219363648819488668931940722772836796187114524916030961042205312267917416234929210745478883722897913702107247209489368468360753708972776926682254447259870736421673362189714429589378357799579290494216642041637414165266488956170091803204253041737186591701038277191649180059822693764041186201875217983687006611188510516501631907981065198586047286812166094389724429766035877442955323694551646814810270837568922887242871894573333912514871516059689057331260716979736798451165148418974410198194184489151020470391990215122893003042540477347930806264305084716154662378627710590378904909255700356592116070697537055259598735082426269474209528412078844365503925554447565636862932824503830173115849071682025297757159542290337396795256497358573136710417670710442977405115928228412491797707321107300773151282490186416749760665490754497322922737809380897504555657570817601451624202498886430168731465001960288423414957364025906317513400231008002304805112816258946307760693676762402932996988587215698540637283837431427385446547338314468880477558229413775461945270634930702849824427781394579041381934981895173632145834076532946394706239840385043587158610037781061562469763266600975395905583496480550496724042646393835839645744705511179747862012707037390461680980063386434726845206107467484584656256988833516277369182998065378716689229946196016691777784011553935027774680130629702169463417611917173055740662007272113844650861791222539742955507115625745442590845636896917844802377066015308520151469478957226821548102809429862502999557209528446167119308411236041875380114451662924641401546335029042268952505220088479858832536290390233783526880460877371976595666229115300735608935546253083083358156173681738550794065848167274932274640298723848437971452832793458105231958313087501160734782249198481855292694678153067958107819333422332969247843870375483615593647926642598669505107755654884412237755886072670254228252959331438561697185562402579089684141878753895228139606097882896040046186772282404810974592152452792902373321156087720402023486954461140899926275032157548639806726390412884408142789282189520620931641221369853268269994042335066549034968004723833917156854230174906124186447309385777908098352573419745098637979813336627819803081870069646082308205869850621061153959357071659897550610135495829533471784096423203970372099655149074626715090556922183639559262932571983814135982719875084395632101724654088889089656462503839900695211268865143124750986147359967897611087567402304618680664850650616192252481261327849425591228914347806198153594947514898229105155680535530280663501475577518724506535348836280046014805528039651736769647890582778394112169099467577511681635123487249423390687776554544655652206731398370941885140301507904712482629208171321635383874996501738812085127352091481777869932952332991527425935259174702215131907868440331009616294575116387510413336658571481731542685481553667563597387159618043114196092465468767981223452042691176828090471796192858424804922756748292507745206023969897704704941028739723730703412005159280348536751937316338803928812692603749147999101478433731648628213983111669373271264935122816772612513358124780933273063577151886427193339257504713587055351829883709131028457444662234594857699870972176033141541277648230958537813287993423324039501384134799536584808372453580080165244538426816496622785208331415506511022159982261282428458327990621042425218820822388983809315315616999534576332178003813912206564169378559361794862381336597598965014159387899681633537675521159360353240000844360482575686682921816532990365715905735365107294164527447436881248078740637465402081083721658670978209766833800934947876041335844597948776937106227142675400009126485718054945699268419001141882423235127325421317174754839840951470334150375411435405075749395515671033800896676873561472321612967004987634888815920601142245113413213606387423047126141828897341808044747932287122027603516600467985269864620555977577288651383224608641095438316148307494140866145833575744083859976192299811152133437945894328769945266068082111176076616034195890855042444879445075851865317682616501515901409872485668000269295266339133268757530016333553613280217107879253962836255469742868094730679183718964849004050130658748536506637522732868619256395668471300102644800300437029377605102354128121464717991425316178712146765366309556693844595547528176552847191801317023154386912985726266916863478860828795853617083238221516556315135275281194845599742198520078402758208079003458278213571400501406352422456567769025542527148397148957193566459782765091092258881891648733193108838556388502898635581703887675744712420076055825366674409100914172531812707804266148522053488786878665323254813107725579164493012222063428125380141297943875404173657033673509733920185251837626680345359571069619596016374233987641829095392767516304841021550288222775729772487358929507186218055781036972862951609026817152725172716069349498842569982238917610503775308215049346877425510709556310861992380053138348493109709154401253900773477706143996538190339643384282678143568441672814638531540146487216291726281094902722789352260557620915613528551346571273040295867351977455243662658186195525796499838114957846967903179625415860688356860246240312376894102397945288874853237646810765485928171276169391817971933258405635140523935425360119109382878781285648567003517107833201525903036478602144323372134380881406851866108478625656193062040502132385276189658583698898098825258167399378111962965876934298818694340095315963797594266085327462943104656019984404347850505238608123004137049156186239149690725463900073907966258973797725056300301881833319008779600413841809757895020771184087112977535024417394962086296012550732483490059863528321952361648135799077048159565000562900244457257902383774625984746424754256259498166339736982997359565677398111008509327788013386236780702129710899134457410623763013870202525602123569646257171961639514011860938439317111834082213412092336184487901117795729090159244171404710941926069723242432503252921076122285762282811732972460622042096889361916192778892911083077106361622103303140288457433976325346373968714528985638136856087234930485367472237513829913280611374463299625100818898304806131869628258136760423076364944903982790853700674756875299520234947378794959228274512545627373412260976666528253477943718152473296502932414871252786633483960742813422265615592575851335952113169625628992640210777484173824297861441903592226240326096263802484865235273779492301502739117903661258973403086396478606513892672489487456834821575219965087194492819324281212570354402502767860835722592539823144183266117020737265730666540358138459030381268515112965259964238713878458914624943364295205551435716312078703378925836131942133464704830811832972881931242813999011756069586044241548963399641326583760928751936693155165284188830578302741760782671121732525683120658110149329146910584455507178761915034101341683371194225426089427343099763202347882152244054250995649482302704951576301913788055691274330169208081006190463626402734996466043948928764219955465335246992637800366553187062670846580322055470849088611481153983478762726610212155638417139132193854967302065465041028320097654683750667240988131419608443123735274948047568927421647623449774978894819624540318230669623950179795197648027954480018038518496149455846248688308156511713867743963145708354226896531324481656867582921015673184204709553905835688322476753476562072370232954804868907318717052383108679953650359253513224234470719110128197777265209207848860936045886687288651463974287346441095086439420740749546142355901542975977787693143791762567394522282703699596191335610955864617077402972764802574858540329783610776474142783753504226879982887392241729383041074454738646915558339895820279440084345059255116201217552002713211575919568112256376044860506997702709767462161543896644144818305049444648713262513882056401681538765851692475061698179920575963003360622155620265356525309934389214898094471211273993359193284230593234834520224531661737603124593617503808512708143703644270654298468541882288531842844651543806985910731160077358994271210480443260314866802942451199004255233024917597517160647508967437961088962201269612616393267326365261709766104271649659414974128212865790677972338836190292769020582875077186697917273441037047484133435706636518321275825030215291879982428653714595492804545832860095101623459934558188803986695201165705545966688904114956664747311752431960920668185543647631250605789984201728657111568692179683983550560260939517550914887615996914235084466669628861001679169509824157249933357894034397441093829303487495176098037531792105588254233895423719816928865626474626040627177152567040899411896079549656068270922367325892515037112949952257734550320461714458211260443535858970056636394024855714219618895953288481201027338109031410628915683131240179210739254604848999588189022139618966347184675341939082560457324279249415617146774808065469808296348068023140097223288085353847420764047194692769288291992842519955793295217910472759369714555210633983685806069804306474441550558376219705555932282354844762687790909592032854510975333307407311743800893035933739435775480225976529555655508525348082574786438037521506764790162654540156541002245178850205430932211007412870715808960061710689386956314535634770460380323932834340919536878095916381003905132459612983714350664120002666229794001831036809849636428551140778117330991114964067864628099876465169181213842259233218846492046373411194980374438998223200435468081206215349586076073093530763292489499956806820214029921932852893525277620405133302780667276135080668047906549121694645194550957761034093125567447144682746738579558734912039654874969925200152544936516868941686349670204855685542839779981807169815537351733056226418623682658502587875562464883797791504214428258381297013742457715153009535174266536511031714561363718189046973985861366305578597584164007743867442111829454610455020722255613005356885757418314805986544757604356051067855903606059700100194886379341054145875562440776964889489276965092776092400497173531369906693278962294543204434274801027071785519306264728198788997427841590831396931438143174823380462849992370040709873649999878157370045598757615273247202693569668551383264836137959730450559729903370182258580600324995838649530232961258774436191476200018188700086826969902536651283738249141497605205056004259280199333303344911377104350260022602705936527879212913933684907865341989440522720901019644136759936441210585815683644045803429438933118258445513716061698205099567166229599090166396397094264146482819532017049090469538570636904866117643618385462558469154839409346759884495205781839160829386669273456557392248673436022635169129073588418370003306722584983736965507485456013992431460622776271677221374763936658715951940178629040502269711261022043949815928159278272277437571840138961282608429928888731986013822978559273175735230544812702202622715151713870728729230260884289587574405890983808496461103392141537605021055722281367062304472764748724231792811864824823277712863713752475544098021063463493143060209719120611040530584822353907060200731318771238694090601735408589238814456159036565412448236525814661911009486629195867156734593381684478580888899944101724993399657952892583830995424650425225452233991420658850151739374406065530501847472641676464028068658012026989978152279540719893767320728421950912962073006113724913250248801308672696886970981709492962097916812312728249888274900641441891871286782394240311134529307742402947193923072169653157930565646598493953866131637483876117903569228052199150063402969872084503675764493098544905785215964214367887905618983976005004623266158219338593614728467563462275704376016035369080413803849303814093399935548074559064225717322935980140318477992169957342343217296336303335236970150275570972208599051748203333515384132660155550732351062034471272038796180006616572164941865231153001012616416288087223773395796140421605828478310233820879087644060270926605353003802631846127706913962601544682935252727298509603585508929891858930372304302541057160687583438892028687724426812452406400699871403339199686836893880925358081607336027780899494951391622392163430594491673902581324736254719409301053417121280133968376514240003891123119867689191761482944708471693242790127545252505204063224686892660909291231977992842689805638955643558568907234760629648834261353792007408373762159372714485473405658133473047802540916598977179083818623381097400926356167286029553997780070305403594220963080912536061296895550842142655120313998582164787029564840009647998174935278202878202086141446266280226680031581535387162168183292320186684729628355325583217097969562780270007177632747639356157457944985156332028159675326366108162269796082309706333971613725921896708672911616754199823765781749369814353758452707991979729103143329422339286824073789838395433658160135486525208365903665231342584883132798963744364589761236738778828294186308678313769926967792766010409474174818208078897030705368618690369825400417869518303434612642547419593981778635206554063255676139107438771427092451183421513942597028675831608579993625702060049676172146002065684023909363715531475672897519858178265444478867333463434042180326118904075960560436550168392402065300476506629889841965515084231351851488411228424683245800630026775949947558382344467283979042097336135321148884377471482469617004721166037061682513330170900391450383279690226139483387773971209939692303574050348410907653929119675587822417669495490414467404388759063082463649788011260097396203174361844751281713150956770742242037020869033858715350829119096676899776088669538899590375578936071541220965843384211345516149085150449682497389167311751230770486094436140600931824395088170679610410626450818765422936585090986768990406358699300248154935573811352369754957243279747490451423389705837368122272993081671597243544328974015280239323182025303177421044413986615486155930473117033448123777572894411262313852036286873490671651109081907757514309068603928588882306410296942099958071810583224975267343951966500426554844682300743351100794701310370769543940435792652537229306694598395734607853414340704944180663298050291020863523184924185984845859742552364982786989527444348513957596789937120633169754224145380583704052744063563434700208745308554175929360159932731998251752567813393651799773859951677118423951113771272352259528232238980246309869388551069393959774567574974199694489632341486185934204595244949389114083289578008065173625904919749408809586069288523116464958591761822120744300497451438521863051510400835171252707347759372655104919999566207056829018817207402377622777727780147665270637340466099051913073818002079283146438533751977225561088493402500134305224539259106100867985421611969436192093452967295665732135536184398490963797734322236096028418712735237137378612083803142045603894779136867734594308139968713537450655315724953018608964026246022643785912727524390323784629413036684952637262255808934163637925259794186103916731824271881526645561869230479563725306461417875823421061698920415377612829083623927259460664621756341802298262549248462800500245954582379644013557986698345149277503103429404625197658662133561211997769900420076218379528070485876569989212066937312621106965577226572691466597339964533881250577980925712169013824846951937912242795519150270237747900345671786242577885151083829722461004199610431596381804531012380023501960027002902487135794473262539057901142987050115951080186864883311765207594341616304688242531270549686378764155285991447559412548898036972798931864641833013116293740192991260293118100667684261345403164155029390946831284334810196072510640937869288773695467259470650959517908784778006039746782301785329140613001517165574439285446333725688077593493804735785349416792241624245740106580094053472242301357080839550055351535084422709115133236952170237617984604314100020676638501125485247899747182222159283581025189818499652908502922365314072095004528540503643440560868538652470416773792152963536406148324709106471545092377258201852777028435539594754254134695194614031017723508913024785047021127030003430209927285106706399845798302407827805003890490128918073224191373337990804413108238029509709834058381662868966361994611603139820685932930094327610163128433988394341619937723750877762633305243706330578354271185152141751490433472129024773346477414662352540935776104612475760616074713517121574392844209538737414075246469151582950445821983819990860647615810265681410973836993582959419959880161662141794601256939557405945795272945967461689188833841070831213523086464705377167167725750613049804641597199496385886741044346051296134147662318980772903549200835075765155876410313373669958998269376962400700844751781678362483221310524798196038638249385281080701604638697046901953703586226796257882247771417876301389376905144498123030001565476900302734128856282548291270196120584301405465939250150266167799340731830119908732414620859000265361368342586219060140291680729785799166912410487548242931880910497296788782788420132631923701089610139593321217752642804314580300784491154440116446868774937906881279944175874084747843336219828607191226241689890115110293760409181732879599690510289476463221383051108938730244427167758593438406926994886130850004410025129215965004754758332955012542080409597841410425049284405736523996308242341003456744115480232643774720317114881389213649097821061830465402265948073223590239431956225071164679828771863923055032770553877546089458087707239943345295372013550941937555329385433969349614564256583056176790056502548025230647762776801469895586919343079475761483019957195629299169157428079098814404426914709743389686391161827935213210748459653812703528881004928941752928854521088330543101882954693050279938444818038318507137863697139453343499651268932925911966845581532745237071917891430581508271463757476503615184400550229699346850769382348985800820737316087231898164194406964171411196368612387219556045105731814263264233804431852687537418810647295845264260449435609496063908363743681447618182147666778204486126560352246810561403145701897710866998005600745864712842019596149507125301151266975441002439018264485426530069590748601136260776788598053078020260618071795271862037561157382677977971196716447331973312713856798656342559604099215320679173171352016124291546860888010255040313199330825775432191226351792114410361498070786193364407204054984163867254882086664116898069943798562433746114022377266108797615511673355191577484930714274120572832466348625790810475980594294471178910145957097219984912211538410969499297676501777126092334619875923468482568127037492427294002258313040342468753429081560635194786639142151401043929874016202576682427231958098021314362373550999044702013051713590745672203298620628489489378153021285418642581869581199443082994855675841465279954732187757608308187557019036493472275353306471656363352792139456155391637657505511335777483463097266374226567025064495310883983198349138778606469107579732203104958636992918396930566862362774717557022610407235825392548902816737468494530200432843919680841879583290143730022368336615724561657939232367298230358957918303144251348883959324936846350169338854164048164343937954858339806437128390257302833153462804230128483408325058707303595190947985507750164335542050359959990639329132329783683556258775239345078555339239811076807811430365078317404611835753231320974000833008403496519270413682748587949923207369506966796826555600975318814781991609893035615842250250235108692609778937716901363089897134175288026208815870253716174746555611296438729275984943646419650084008393629359520478132853117562076660270289588854096277154453067720975827407530361126073882121917952416351817461822417297504961147728692045729481036171534766981416586647972804220930756099128675426619335386046532760138806034920032867028302680401417305226054653597210518432289755891530962372577204673314644921592361368711513469935560704209620245167702981181059209316260554444182338603204265553471249647615897295947002120770539174311855580916700969185230753826581066880579841087811859569962693689879800460434231408431887355401420707517569701313066735249666175874080075224279759385415186810262272553602336888180364381914138742283106029829785813733940517589105108156823295514621398475509397233828316933128313767087407894351468019764061637149695576929682533209128770781468238762233500788097903157892442891396928760436844739635064336913185569105890429877243661282672450149553582637948922704814139317650771295861436743483418534992282088952793769771355075321014821498911218244190875662993067179369777637598290553953190890786000239181990813010365913216829312384820951723510751773578290830814560904446479832609668130053983772156115099445904789285613239288240807372348894721243399665765925061168145400538406313564647985512928291434083524483810145626785847993927517222854437504178302975740108465035151224972520350239508143384342304629410981299073532701559905056487034164093220317777622750846099679928881305703994111095951922502126836793328221736624555384810792891731663859317810224318391987464598020166853559219657619204583279576420605527266509454349067537283220129592639491313611907667783332908552954694290638827805286870280100687831546650817830852249905081624597710905364888458388200227430877099547135815228940936982088168635907189707802975662752703558020112135831483757289390208655596246442663240061428655546283672202670042142832414864181844549529354618656914701648567282528793190582384904377290574766786786481300846704943118928966434840407862148410310834793343150542155846420914566189891014525280250409822671209482578046474791744709955999219741986454049279153460322996212969635007523586518359751423703410804659414508268202097520130337755018822747518832747550105708625821283032610801917667784214827323530538269755694318158177220235387006194233935955217498875946601954447613069233928519437565188539334033006885193902278489599905178835253906754391849816307060266622753457056460012360940140358954465345145883372368897147428184192917345540213037612260594975414339394386498400802578803376861002129884056500794010744259333594383756926743603412038856003330446993057211063496282155986022068549001110775066555409985286106957272478491855585691039029273620908790594016861879814410295168661997002880601721410180681707426780641906430604982922310658608840239051246498557432132594787442674591575845078280973020740182502287650581383450917366023491371195829392529491109914208448632646884027506489314480967609658638879867312813484937133869360187831625267351850815255841877043660219854012703578684956613095372178840435794752635453088537860935926341987670468532599164225868674935073266366020481937562716910899831708471096884455374905759588067295727740334555368880109015815409062255170850936485194499035870315784694250718315385561078150607958453532440305048825422780324578377161032454351105385133548980535648228211330399471521715891083508739307057924486439741870970018181525625648173959535597214878872497189005204621732006232875426897022617786266182446951014777638500166798116895220723035778625761547574730062651423142263293004662935189141074665201671468285578173046749273991863098348067284987263118455707158993007703794264553030534333475586178091091771537052278099465203999960611168702348046119183802003767469991367657182596638759390761629087099715341100032896903279704504240507881716232688196079747839832014737701550811462976490316245422380350860901316024363750525552188900295634390495986345157747105019877302695687292338318918238898785052358991175623488646966956603543183534972985700654165109503305611239791069231103551196008585093431268683618257600005542492745521456560343931257683859046358554628993680698575192308413296006876115159706049274694659473091365749499100383821778032849595996531977570889267870928265620647909677321023356317631588094364028153925548723624231902888280454471350832248712687139107535105473705722691786489435266215092702014217537388253254142934085031502382145129326900562831469642528626648342418034539102630072655105974000257517452941661766180820691563436743897208489009609817480076671020378969129422235243950022509660239939922841350489281294646474569464578190023613055036081436594354989809218291868209323544586137554898277450580114505790914759398529838292686512446321510040335679345704733443041080222397019021429096485106837719462474037611928121433879836359097052269932831361313954025179995961876290966980248407506118990295438974364314096154769870827859437486837111907481015234010469951586413510782020074895527838571503539872968106865525956410807416373187207550681661033878020698670544780876996964583711622745416621949964702963447985087826767528887346630894640555853262177953630637910086975398663180096093313097841759463705485696924834876020512992839309483432017190914711773528608298392617592674192080090389338960263410140526524216804897823162448343260544852732470205599547682230183353762062416868182334126872008142999196068916289450554070062679291830429121472802565519092875783839405950113952190892728507686028844805962702543382096333696859909063619750437501385368732822760249461789439411110667811387148787913255644824414721508754395341247369915513875705534828224054979046473727917592647891402926377950563163660795407510282845996078216164711265590589864199637673109412408447570229397277680993413895238918936532139006428150946861281385931714566423594954795023733170299756389154581208709932015460995660955748533744161973127753600656649992203453169776120608016115591402051044078908718393941506404188165179060040588027006428617536026507927912538108221584284893027404351817286272314857165525399504872311267602476024873581326827722970345516785917249266817207633931289752979109091439869929232075389421446228972399617085938233505801881679036406077704085563332549488048642591974936992784312318502722025160926459145055007824196069305696160059167106540394035127245625514144422737880526838799608552617981093870820404992866388347861206959845406064273721838267530040446935354869936575819792208349497608627459597458513615439499769823310419043685125647976940826974275965381218281061079625137233912257905433658828496613304327165787050227305075579425717050533674049628643425584414660089867072809362909652361892663999059428053050439279801558897140350819412729743184116462069861075194178488541738733632444163630986799241878150614659149614599210832620771008100004594152598169957716608664101655355459509879714869140129230517245109161512893101516811440629304629383195626806868043963764444674329762759735025387950785379068842789784247123528600118025863736568269719622824119453737057522257027363197498093876420625984977453175156628391905320564335509664506169529361366092557778160967452472071821803108896137665936025524792936212498939706256897115161071290651648319776002120122857428311677262214028554599385627658722419072875160626706692034464422180529565483660844009804905710606719791151940725197299727364716516736397081884268786511350194369115998934253384786432881890402705211540810688461321716337799515012161136507459888570588856526531861590437217650109246382448296643674119336754311388696602941432621864558280477215831576355586925680848765646678203270661461827048460348604765093389421758471126495605839302319684267867784410615108720458634130711256743539848482261533076994427032867853612576927812669422780679479980504623642534662981519917456560584021340025852000046781876266331676030056112474785076027467799708256076994075841106849343263211648874013562711768800964276138624024928983046842170547210925423766797851519047690779810919814132789488512732981637754930821454066009858472522266937594178022304951154074920264641276470778094626711885550197625646350077658962014929250761998155811529007706557891642148215592278020313762995012226295505310760360641379793323508197950164005867396711775448303521709786527048069015091080424466446678561545351292938229865559406764013583875189235473479306916431712754611480758271137675408527024436818000006976865704496002985016554347073405736038117304444139865133455061693966844938541555143719251557109642267844852396482664421837709939977751749814040102084590507740827714635110003629121184823118718748431605433279189084341890866261786828803034469110871784650355759329415923318526242932828958983802097845162876599932718719088988936615298057649157016194869888330424537948455753646258983145636132716274346420269356302658677877609241377268204587408920877467790544878501653912625100239737561537508054428064569870201263843617173057612590334072126184018946184418306404685510087196295782209567664406049158257665690304197896505351295198000295123629680091630645127716804916327081872539254192367901334311684844980599059069394350436475369148728849295825071482202942618534958959314724977291980480769729572868102439321907081403259824596693626668632846599921737553083745742615408425995769473859793303856810491514982810790941813850530686445619029587235320050231402560937038133858072236533482736666209990937596709501444918092019591394738765806418706861583454378534410521457347996446301491322271186504632550771418325556033267628412758741681399814917776718732429313804917108082009820499549821484902987421256260510793103887537023592757706570976336362969141889153429180123741793845998556114854046640213230511731386477385721429442980439830990927995669252836191354943623278149734636142442618003847430800436716311388520877961242748668107520734935018455091664904945498690548112380989485670917895172169112646627259559883388997676699404590464056554896818837129877076178457011878003067095383134486369018203021200743968582840773199296573838700903740962979870734290813092959933674566994400964081010262923519033972382709816256166010948241109078731163623136820686194939022382254011526882882379730090939420596498884837464444471758810559922292658784719485255825173365839563221789602984622881559018534162605023015940633601971089289175446886208138220789530433349281234087978080665992395985973789799760490497075254055870627362705749070787781234959973770131529576812217205166144272625917935985341568301366247712025820502879749482947765073216835766495681022744245952741693708774188129646757750518433779714263646115841852778683933509384893317557147994048304008154007682198807743403459570021547506927848088684066123519942072619759575916767139348021038260054398258770740757876001332574796538581064341053816953660224755569867989060910742659091435541222984400180238115852441609718240821863243632714543193195484134987409074277496760794154605885111498796669653840168453959590949729571816019328542096660734730488141974041307587601063379504077282383440484625787434581016978093589550217436603120860236869160110836958708813244757160946930371684816609282953353002706717005624824360319109413336852778026338154943644849327316443495486217968177162720619616120751998897379732591476343118691972533640985855077614390792720394725286079424428184078002237225207286918219562615440103207261605978684972772065109519613979637608814485327742473637470867453933844281692445673611224470384188122125048178466618252088228124012648958285201825892129781423105930177068780263770974587425663844961909835837005655754713582781767538681802189543102457692658052245052038897687735673435519784723650991005580211453308870977804738212464432771934648167185275482763899393145055358327997734405036193298885628355179719895706679243116657023963573208465915667681499108393659116152938971710318669643486654117491546059295760521802781666801137183618313771910072045845357357696799942035676672088045549477211790906677348895446486125310421472779802222123207502129448311778717776257959080409170129277976019507576233132929822608002443819307026513280810827665481209656705463034437524917562767502225205041149427457159394224205794404983871024477070253949673944958156676201374636246215888488242866535601978144375296360468710593364934917938685302665402178362964330863031785975568156802005468121753633902993738803640600311953643853897201481107554437553492890560564749018386835569676430650395455593235968014056689470488971635648670797108199023563911649212055494745254253086627636113782310694990574479410221641959827755663161487734079661905314106115474167609403751532554224146269337664990452182556426451222100175521829861505974785969296310193328643542099612046594411240840364681900320235322029010148615974806782138064576964759023345786854633698933665668897094570172686653779643914809553445252431689073480418754590095320174154272813130112194127847335194337060511496991111075245190772509232101802696547487048052778468633348092655915907747264548968876244149300517187721364186973360744269893228062395193542644156996826061996600577936031991328704918825295570488955040722453560255373221034345454993029741200850253971264480279525513729614706075910049198263394892951737258428914786483726233648358482088617941743460152799045638547714156810392419787775943743338365920760695112014843250758041204049270885330510833308979937521822058661031058017771313017192533546412548906753181533732363431732131743005671650397206258931771632304339649213274741977307224768582070351625559073918701136492510136810824130015207348299722268307686361300822629407456875416912544213597600287455880307635339316066447808430483175620380599286988462355716865924605274731374657580840620277534878817107994757613684886738486714919486982741782810889036244610053591550518961106348759459729839997235850669392732860989223193775492855085478034372542909325856707526414606030558295738852248805364264972662972158176794430219000817610381871373982775687762345354962092792970061869713048132074303152325131756635559688530478296049102158081066730400631143507177604976981014641361587880280291309180487233971598137602179025779753822381581346122816239266378862568691772561960216509967718333625444595272071060525083597614747005946058451054320320154825249348653307376122070606651460015792955308108827573528711677614682600705430587917865672460219467390054619141916792186193464694635560209910523949625689696981150080476168404243961575178588576344312816640363454716504044737329111445255827169476569645087317140743556837606498181959308303361589152775261418739928706767324383844647961286612967169662023031038013367984329127081001064041507051503087237638714720878414160833322245247130868160474470422846121306623297292778192023933222502358609230246471557581594328971747905448652114114205779696577741121988792605541071959117362192213765035855936523557078000708393427714564575192324420170837853328185794826670450949088168320417993946265091022005929202729675759319428155051102798965276396436176606441219566875375806551977624529471374884334191532666592261362169872793654268016234679955085173083946221113839992448924847711473126495016165932101322219189979127583751950493136589894064149395821569383949700860466952498237540446252454000811587119688291168918516812377866213691248835181762757037832317615535768712509047384359643269487885259451224901690754212104698188294452804538731900132239978548896473641101558251835295788155375200147105965483590319311980144126404367406941289214601841615163899521164403793633816471993543380561978954122325901808094102754222258809352730504724633652473228755557988210069979573705014289620733194408324991907614679160408254686933829725328925480572340017921239241074509078791437687080510485343023227526530365288857530807532938398811232317632974475184372853224881853261923459653551950938690938659843360657101938640488312143036038848738479131741236324594390501492781937468230558692390912283394053863314822660458692585842889064937855226077867390377934827411129050277230486901575553674356487982725933829659854174290122350555293395285575767264049840152164453971206035626833401955841651297553101068904361915008070591460802764742242774128196711571451911920281943005469187236100337204343796323794722033975681230762912872598574645921500345611046431538507948876699227404875076465962992902043123952637657232522924912720863167650757978681835953618185585176121292592173122748952735633570350641340960639300720624648801465771855323061668719749937271270494910735691042389954671902341671222782943403991320995420308873013706060147421286845918974961617805718078511037803369493504316263529669954767410089502159619973998223198592594149705161976685666259393294020450310105328307515878803912908828021697213220763904368467122596462960248041625431996768910110892024104739571112118229205505112767257942868010236541353573499748381624037532947153028553392735211606905202278788722373095427752687671245040356153889464053305001616185137042338286386478869590404681982376366359907587617189164817105614000274896527588622748299076661716490974006546254001198964092393984884377479007559038766298614616383059527886571847532905273363209023716510404840765975304471538309189096725819596186603346248405305060340884618023203023662915674094240273901263537375938290418036581041007641962670467590067362509108414638444025000767902487706669030897486344638067532339332852350618414225114524744212678218132500141241885683312450777413629106555741000009287083954993897392898596296155501861974645866784445236811648126888231127237719806576896363796008691733757710342062114697271378864954440070152172864993618345717474428307626559518007393738458068940654972149402942456852684616810373752773902617954173111287265598033804511073648911034147968107261017515371449053133978950503169243949728976230794531283200370763052599603687943956297490655096835358210517891195055088980165810731365002659448086219594812390685191948920022143167034483533981318112609638974666139748068586885696428091196590525130752525714784907762447178613783034960483949053765184636432185168334975890509676318456386588543271155944650128770988861708696976947919743992826493584092351750955766429500301172939123439885011701996391970082422837820904798260476744399654450964514477281549309071269865623832357769468648141229363407013060228654607727300227880994933197138315608553993395309146465537198056169772549346449079188786670151392555059771775387620262979325752515075227605739651383629254025632359183313010816248834995740343848440047731753172099736934772484094861368406733184906599583861146796452498572173427393948989778183235121226418123212407635604110958625211822687389556286892969491910440434087631903397793874250054513866300367159858992469789163219126414833374018918419381116536735342626547784352833273556666648507509204870017793760115558417896654951967226955376694704977453124967844712303850224535807030865409345941204502867174868660934084735639143924570450659856511638224662775514039503861719331158964181338728545130378533776654118203726022016757839845207518502528662093663185618367993805143171432518137080171075465276510360466711501725468116296681204796186448877828493010898738934529283270300035872608802357399929207099819473320622668797385372624543278090121296003988118923597667760954045330634007684920800405760954601566911800919912684508883604346680423919630626704255810115563628941311942751643475175011767978954844864694242579334636596965994884378210872754291441674825830951044572316463953888008562724888857537938405634627066582910713886440297906111494823425284858303196106225278970963468220306987729638290896096169065176711630178290419061458904255605936408675020078862168281328976756088055076365262692836468371005088147677858347917555222391527270332529145969786758910469412012362886167243437602121136484692162548606085080705486705627262790471980268847369671603884268332500322934087814840593078113221651739837974201980912653670929375946844079766172743598619031727793436509913946153745179783953538281591853998558725270875048041184357686820046400467628923988573633746667177845374579987887612404012627695894183086431111715997866687767297485207764151478650289795275578240333543225644978977126041465155386756915837924617684098853931089465069671655990204343349647084768289607089198805371976480615885436404481653259339660824654424793654730026275904280526382989482268069594701709986392161513102678796459964062429673897901475275709175157282698195869214330555178091682028208580729241420479424885779961663690147823715388646737462925263712127938285984657322574716017774644313176219396983503825514412638848547369532661997890862643203456904662068758738263524733967986675931216973000243545953030605160279451653680165919381862240156708088309272015749350671336846991789905993790676133198214044091128006512251467729728867107829063136138625381684833281455177259957153932306924987303271126919156084339619258394979251727039502292431202681633278582976766162170311850590564143682469947664752720040502972806907882848961909369870554306996132563533136872310615048278599499805852401002275205282413225752635501540272459831696442366291816774852158245665744526639905029699556503740454449577542550253925085938133128651273995521075484180493791273996673617922276657102070027470901285461052271339447454266529128324889110141962954856155908204483911435690691473503837913436696091460333866748857924417277541251463091175958486119327646341212974349361555149213120283517317800729080121283005217457184014513084150726334724816611889779787381929719088150250513770766960554937921022740255067336670946039951994964464694056925120984866464483861642423627365308139960618938649593374176196184620815502391151058641879241615274384400953218369352684448312193003653995161652336176044781769534188853542592053715800218335433782998865280087342183038835832818660125830876634603949492550813347308558566921807927368793619273584273211888611998284112117683802296338429236664641311246763253326171378758184936489724760121138999264912053311489978913138535334981320386452563436436754852160247187804886189338549195864295788233830022595523610664919621389435200943119800873974110658990927465661541210039280145192388485541222354681072439786308012901614997896239972087299019795675946541680337552665698932243123181697382245207096773031067089547901628553924468995288611410579992994181744690994136658006328547407190050986993358875243147037029401892543145886316222365873777456846890630825936975809612771800009411105653341070021829233673113376211524710299043244988032783726697296025019669995117671235255382187836227993754514697799309716939714535473069673489236584582723835335941940822952285960006473167334263065007098480901394252282463844762473079209973042916265563476812458191975516574319738041109965697474281457856021594618999919485200509970095074678347040127046380615695480296028390342784592321340176510545168920038768191246894614043667795083427041714770850657607580279628017733060788694290052860391203858126258221243550820699752230787584488046951870782983772542261659276110083424503869232622525824092197934539022117336267130893690810753708324832053158687617007486890046143763853965573194096516242072163081305686510619591949982267946714656018215667714455808432022623720490766004378895022945921290721401850409855597693090671828918168666858556331538111280692370514396152249387580083335136091058516151709782562133246639443231123434995278819172041112555978137685634600942308758150961299305739567265441081910250761446945981376350753316118320559273316712911476576800033306187867281459475071342738133318749207400270780547899791548411999135729574114753659510504297027624569723348656063158251710706694308740575125976501751783837358503841548228011087703044754184832459278903905404072654044855930188348183424403574953014537684137526500649505399798570981645721671844605350967985679100029974342484789704024792220673599828487772163762816142619548481580141006592712587472253720676864104104593167822344942816708251185601355736317930921184752117705814262477359691011744228893067094159932407597092002415901680537969455120774060233075860720076010790063814072839030357489560318020120158515169037465162477430450367122479718290498046506324647435021141468219358288108280068362616297519315466777891320764239771447830722883841833828107838644152779861383394461011009719694880961630158522229742812816998717197632089029425670917042537167103048737278795899152037536232375957617564196305911246942731129883393404665345288798075691184419360980073462278133756630983370828178498624128145534755352600979957412954071226249806840456708686255999328372127888601372676188680795236080039293528618195530570917026824415455464728667863224478244189921436882981728664262155348394841449723188910315871658032886210442703894443021684330169508821477680074119557875236468336733572702144377227303967465276624267180244101702470937124430162126657805858425467041903214064367705575473810861161834958611281503300485179999668699418829112399660752780998008052523255404290338202513262298245538367518457342613031710190229658541352995392364391391073224783741879017891230459117616415507585389159478841220196760324805525868955234770186118947665971720188409741866361082223923105840162301330209435575782451421687652289934792889166945384548161780242398137475863628466645033561371382679291159592934474830793123098278016581335400176750545141729363301217756766975165112376508719150413303860816034178399043620932459481463229671924569657817666898792587255571668033233061620691603943263333225021871343494730217072622447841409159541937961685371264604503869064059121393521907114908929303094393508174832994885361032412617630171268790263782508722283721037414611627211594203512534119113260112062426154197925078929846167940162420229814116647072227055512004650890370336232987866713513879745724170720900124613639709788382191691442118984467475526970100601337148107304718658481685612783453200361632202449997983604759632699643092108090409556033214183169466910509170664112401124504390534319447565540154601247444360683442781803960572403604731589875655728931193086865088556248098741383313454383858749009697492089807888337661747618497658870750273879510474097116078332797818244679676210701784116152617742861414589816370422637522847180323859837810411269680896251920884432719101293729281470483477650223316987116321364781286435280402422900557460491387516278236949413230787575094466605276428923780286734990092350634938802492318866101564162415133058260957062308452182154983424290094971302773613470454879313969578252944128510563072765677075048090016210879591882418684777084342236820170822819824379698840651651195972653541968196636176999675786536773949900817050028601026491677122839432021379567732733067960978384480888679308871629339242225601860214335374587099027963680062340314768489982654213730149825922412158632523029729162286965865761030240483647068731128137203695027076426912698027145282506223762435517600222134136347168656044810422657954112262993463565393865600226566314955445175727208915728704639786221251786167609730897702316744939823148716544219164327737140078948649119667309754285922930315809708851558981276540890119589934677494180648013942530430298933058414518250116961124676057918982369775931863804970312605514143236113212970923675664690906928172018563701992946139008814756620639905669124616682704641297081475788040620122510854796990589289743116556082515850693871458093155202993266266046085239944389438343783626839285753151675237930283109051087500282746532678316670730900245625433491574811207092995484342998089452541364513564897482693177951132507084901637602686071550962049158928526561019744263029553818036534280119046603521473767348505699486082555564162179069105511908265146747291285244969526427106244685349022300976393614979389780424483221642849736002008095690563635738296812026965679088953573903306595373742107163783740165326939322558336697979333818569937221411052517641360822001893770337300146403058378916189066282366511082627140702428622282341439110126665108554559796960862491846750473225632648103602602083809603935093167709569405403609704389156876605186545026480475037597157150573450712351171482976599688706652353696963282745756064626489882982086773867458670570390210287351938708891205563636107328223845895849824885022024331403283549048197936000762580251282503345443641732386129215272488689455656880596210521242131415647061009697586862319781662302272345870604784098989651295357088655375918365903297282777891669383633956332022523641335799312015819273446015605380514826550230109107226317126820826160807883223416501634587573229101587420046742787090231519092917960953901488277909591756006470434597810679273058882715702047558919380395377365436074966705066516448034637569605559640312489810404791351024645602712484334295354459119424164739516722077211579372028664026321935720772274448903259952189469584259094968208582851682391266019505189760744764917923200500523723440159700053361626914175508100497118171469313833085684879834678245093623129098708938413652621220948429054873351312743639605118243147887393394844649222852083725153856369969767250977268382512497659745765636289067951259957018085984189389362531347485217685468051944610641641662914212357993054222371567069273790642496080867295025263322303447085172968195347093173174044424434710854620225640821734900738400302916131571384418990650640300940743768083061781597626068171349445854139220993863688649614552575934673646806607901784441161808552206593157997137697880201367889870226656116665353209877200682267010548595807095219574639812363790298547924965809153686514098628554937972250524291970709435579202104205889215260035281019371773884074557359166025469324257714332968093973057543763993957960939389323703288096251430138547719744185845520443725734648194833786075634733560072769435322428079945122612253032450849804539276183632767481470214008252151347688192316699780418300438625084565927670096018481129027223249592609423960769740556678846962679653694351814847539188336463290303889236918998220242820005121615485866506656303722400365458355246239109031616615621458186470830238859018992636362944164994560403496126916212496026669226386718955908912346232778768262184043276925393179114223145937616337465379275046104365923870536752246031374072701262030324068161519492202442137866389073948772593952081208415402635971039563572364897291807750529130440490773521539881129135686996707886736972001733887977218276664885214558728964815169428129348193315896221698397097683615831346943825132859183373218455138305746888339928849724088462955749445843172902959062236303017276864174321725255727523909802955162544049192083122807810027134613906942209195754136272671957656871155883278781232856994605291481651864077008040520455168143690820712910654409899937640409466532367261896741261712979746957584233266424172670313198073105092425804026376380035508701240103915983680366705723028142037339311738755136071414482763679890564516675584245279125503032333693194229863525697052694194786231881760030231925390676945310030883092410788557655378574287127051889650344362266208768048398713533198455644100567855489193506579917316855920193385644062964766576207427852859847375890157646850201913614811298775403117674857163133741787506576595741748517742348459667308276687457706657517283650419295266551936730455050236054856788773957089292342804639938907673599810037876129024829096265336677282786578920499613139610434036142595838469047639552742227399776018372464928465466807877908542477004672786683366745949104193681438412721160770066948876583840680541991109625133549063875960112281397497186448567021057710852243018702150636988013207635001627070576688904831027906112869564780859712037142700983444472115292743253154918625959334433834655488359968972578311029577587700287192325760453148134074456429838482776637972672213191601519854827140556909660038076635213677175024930781986659842174309243744183676584589763337842201521876576758577483642352164567358090939136907220722108953842629515378356873853217514520106050482683904940471578865397287308638943598721545078301594180337839949340252054611483687689667408695701296566010053000768728832812715869365339181940531873520956275482057657952682415067156214246976058061811882023733509589877664416356344335699202915591634769287628626873610570522571580595294429952148223024217791363321573163579812003030101216806192712413433944791185976305863168773107262513240070606561598605260590209070516435000747679926057443458036122170649391565300429269181201121271931347183747021023536698693869236757315764835107703320702786194897951654798062702204298859339350282171926885361651275238962302222886884282829216980728594040895076814278857098380182716781835967180937113607909819960981174201183811062646436807667530069887610434807704980622696994719699280095266818565708886769846432049670647772085187169264979577499355437390634598593304619396443656573347051262371056704960069126558505409418565874435145684616589011344369335968638006295327873138523922361191246879995422415706419721539660762673460618686519806526462343781996405895931101527943672039588097300143999342825271175643575480752864726629690599398407220063748748468926097856683419346582581418685882262511764694383478257291645494413262488420010169911981772808171352694568578137641418712458177316113127686136801489861501619152057902298944863874286394517677624149935850463264739579838540288487013746809749471000825390566340470018246973232746000109605268924562782087322052807698939447670614539843538052351748429168403203957224600553229280597227014196637335684697184748840866166070466061726705327573684124408508191274236462704679218145190107485315354634327115123432390522392039614988747256149823380513440544138585560401703314143644158858781285507164384526885943001555063322015600644542035840580804385797803112835507391369608190499009812297756623431190734777229356748063518673613648871361692438840155784147814398737851100240117858978001466279926274673310368994260316423285230539862327829160126890496645557621269628444219909331145078052006265962028855493557391147178569634839567285498573801300968888206251017655161435571898870344910652717879012072714465050317572831119969813247908527203418993134301068329111127480924195139473998596985827743141162827391850098947872246591669737091402248508384078837717150225599215656312500548451226774250502043687769328696108611828091537019044486863870193312436128226514261371403302113914824180369621500766266061668592726826456291532024281263834240662488250953224082018270519421689574865436776918727469546435502133943767931675906760365234425807569513329206152129399083284762440157553895766819269045428658719218454754180175792025217787818779138851740762391862641412369867023309186880741388620361075979886813943077323547721650524850806593010404347361411238767247910664289153993194653409855944542354775006482733822084408248062106897246379075132423761048079232273833469178961250074741834202583001003113451922729164368099192632628969843872248317494383056487702824010552084419822437079174966914205161581109432140287810283492669908430654889459762515178164141421287036588702417532876274977855122229676838732336186012738823106504842131811602216768017629494377829302781671443334903134617309549772729130050046184798132930779945409227475029328930261029712811313518210324626137794297771956004875579641796588492784750682746397753006583841134150057208426831096623029312992811638379411723333779303318168964391335375691816036607746035679469858529524218200308696823235144956019586822378046662138598933328946679500923076669482348851235221584505104294655433205913855537826900747651905991067310222799052678304718241414267368307412997839473228241131136479218597412451913355138691026538079572977507195451224808724091127816583782048929207680605416780931340553943915257050283802681862475312383481630755480228398792246912876518643115230336177552927870491014410857356808565046740037196299776486683683793007243526682604323842818516054202484512098323486116511139698369685420802403306602441181869457090213740519546856689450836424398045939775571707452989885582212994366866647493663437417269661467347732955451446080412994422919239011557706115483014012067541548228383922245274660381038145305067149549103782775735643470111451217535261812302684146808690708437803916290345009188153838522630655638768435085455937835327984885767687592311080981112109086712310518885530062592294715572176746736972828826374003719341032274041820384821437784153251808255811248394713175044681174458507351673000585874640814083800905933262925688606140906666860780904724306355157052611557487438739392731189901261355085362120815312728335570536014448611262152483087738040693486684294884349202312970369754008592656961768123024031671461613749405891262195740441424094337565635298096938220714495957966557340340299229354538041980464751588509356135147799771454346026835547702001368813361863826465884300534212047696237607363307971275960148016720238466194812568071974585609459454052628851050623112247983379561234490315103425843034535412673024458547601169778446559988069062803784705952855937918031886381603379132630765080735708179708925515488161663822401184874968245285564432156238123574498999405259807054550858072789374406215223721639749619301329398531202657086723618333028161792039358384533990453010305880967787776699918663998152686118378854092062012178769858781964790529066682368711210929573736800229507053666074956584263893416896015459960745482833404416033404906640036488329191428498893163606120332195360156330340387537384882111128283372761256069459214430894665147930328068113178956075768289338646249288197502290926508230071820899136427860401209742801513041603502753765671328398042977958737834750295815317382741573311883523559450641947000049576212039500284469342051246599488745472113769658530522387771024953852559200496060786275089532173632550911440772755831426124775587665412467304727968261668703799134810372032993955671426724709644583916059661930421564286520600751753297911630652518272727772936570919436273548469215805920624538162628694584843028275632329655771174270979530008031439328940685315377830621872619315583346439869071138885505027563946450885373601281765091803019167420760974391536721499288257615331604741596399010962605709161837627926320621142788276125782094636230199785738369320884410596783658827007664735248916563001945460327222194967912999892730128997504203326385968583207109341645186548734886682862055462389219413338675232431517086609166321463348123768813170508628755969695123434119675023416984886999194926756513127710623440100560221490712221594642975547868209454742825705133398213112318000959649228073014403039240954081370962459552699970187058666198814033261979594900544451594811199027097280458250614794422469356084795093335831357182344312797315924078328404506095278870267401999735272161522581681804046263607790577313445941453811230556644142259344542388898695571605088497907381220471041735551193787064578970688703790392419746476919914552949355034714346424887872135793753048953678103424181464516194799857518272937808210240977860790604703105172029281105167523881014131279454801987880846619065238814949876776490829285344420130638641623304272260678814448797671399863759124313147091415206829328745457571441873665341149785931453666505846626871684938839446676455137209556486343086831168933471301449203979581547243707519231896671737094575774679075466527327411141870919908078021774336355230284313805439903347119869790944359017928073648881430381889258382515096351637285894492519612755710005144433504306605177219312553064277262680299572961594443740197076753205597499811896990996236049530348008401160591314307115629993978546782872688111784685022695965158584034006406710986467582535713995720440475324528789080535709584458360689928855823583407689961039646899750725786223379155377652500152388563478170969620237412338340147885532494843597596777390078567779924957059084430101694249613975258243781392697381876609037942586688205117123196658886507022009848563598467244487050367391296238840462437874562680634961068678753722176320027474406560201088696732081598923086676523786806858493155787642919415700223089781300184364969005081263148107721812601216039169875595892614769784025652649706243664368159562264790078307702466054596306391084734190310420233063036972173412541543302785740901627311510265302832766228613921746016410896735825878698500744327914852435489400787444993180854296067141721605802345370856837419127329799588919646073995220915661255292512259294028524209000910337626767646301946618748614918672467885632434016546264793054125448272585921956862297672986639837279220659993896265241704853199621259520642875873542472900978536760143996237774244736023434683017329730940964921903268746112671737388094532601208811713679548652104870995508407040350779252946030265282156054595342524923785138230510371770548602380607279566549571651005173973683516462115657722489099514176838860627121188293192652046491242496390802271050939987310058600421692455390963351472427608634719045376031530354241223461236435275961077815005495691850848936394657498089485291145179966901825760436305975810667463159170985698227508209748634481823024922543315717605766242638214165082479602205538221267584753244409387877727444617579989341950877953617458406118991577774301659048006966612139175149716644033977961202948057358542445699445809139309730150023683907605195552286928796701079696245045767577498659788536272861813688729600617847172345267196075879876043428282358772446990799779416160470855369626693333930611568609906746256698308506677342557715730103432522670587209290872817007720768203394513481907135560893263298003797807856344898538621137427523974834161483614767071298329490874097893603208383099722821102126044369861158391367200548138575988050683928704815499340950637709799624624290452754904692802443458901006706803622324633417627955460296120572419986124154956952602416208050776299347547472751030868106426724019130809477568942583093242693266730218755442694392908962614431819290458532920401037481725158706344304630055342394288773753867443347679105492031881212987818725149070087825788050537852765393192223460867453280795674882019872761441485172187297523961407620306777804229566035127593296348827197245714573915985193104456889646039960020739387081616136988460620877044706721667937968245743770228513081970246014828156645807758168563929318508992050613942803023670173425224053616436002771332413752024054590641425861658314764965698323859333854742803582319358958894128067224914550843698782271671268486739122242094430098558202238442754399855572074014773712711208526026039565040051381571986667516318942754345962880937905951078977259074980196446045195522717616572802900312953846173242291655590315059603155752714586894059478798953534853229885496407043178248585580778813123638103523817827635698808952272586925988196135889410980253473434597194449830015967529838769523474080441524039919344717385424980678654809709578690645687440981404431035854931996640925820716236335639367362443261382857151502687632313763221188158062509361156489568462807663595191648946452927150682798862092863904250592911112913287082911255206818888433559974533747537593705471883106559038799877108168531664562949690790526901375653613030549763960143508229058806947678883552853318430552205542167399968942658702071744960189210383887017067802640542936832880368805068626037991470198723107229618845017818589301323195694183518121389629213416414893152448906136658581222549713077920355195928917646021951189739416600604394589518057541779162899268444624885416357157040186662807780550900868075359266437755387928803026514835831364582013828571054445504199037183413318043831669964974341186515606539559126755735249010343372576587192595969908156615071888197908441889897838435407342444508496029912598882887315457035086662756976577561978442793219267736752323350728506011779195559837254591322825891984640795313079240994458529084444319830196332356187604298609383444696501955869331262945059134091721674120684782177422272658044322273376492685102028902899063685737741014330840752405216803770722056784102858142674951071980040692308236519897121591370295144751273682456596130401905792320235602540750169729643483460243306295835507307825414147150805743454607614593186535774185773857827597700005238477027731897158870810026547673475423925042898060550328084862604050626126532283293089732136089898826219942243436375768284297077128975402554225806320762259579662236015001694820412188648096962946979960326343110901176034595442644184543203116309016737065152200877911695775840488547275613083759532793738896204889094226423772738066448509040553721699138506353729329692972685584356906113654514508183384348096716304980957497066255759732844546305114499579334720813403269024848776716765949510407595004892757265528655236903247763534750908718500358304939628541734264394567006753399247612184748078448167525201728946178528040627269765447078233894315270782503234107844222524346906123808712020665005677355130549472131643761730411859566483076803689847036211314962702684992737219867994329142222877254211321076881129810321155979081410358643779575070910528472356132532760148091666755090081400156966630815390656794267077837949119851233321653155071009250806765106640814366678001142208772540931433562608036789421719412895126937007114049445251124707635318284744834003298315027340512892097294063912459307317568873470835825766965367979682249372740291815013214805656607055676442435980516414962425551386756435506686707098464154734561170070910037550980969838580311862127057348442222304578102860147934185188150423476562443017911783883999816161993006299570188631234357033798845047000438478290703771238275728242809541988973764791027455864803061593463430323329907732872460431892631564849491955512947151510392837466974560678412698653592253911483693237916561067485642824072424131274858614605747475925107967633362459938626860979610914632876854145775878330371244350250396628686531643925035766980854697869953231569252932791956892654478513904428043030110312012164483823843132839886874786582552421577280457534078118972418307862182615386837607957374015141673661405957927767463974352323092216272616125140855204347643114253843029563733698005351898775150398108530137883880510920163962557691793167941092720037970857558784580982921591676289639344491322956323444364510842172279230569051937487524023961810637334486167078279741267604313422689223116543278190746684256617715848798393977110667986867505857316044302793192007037913618423807655337978522400426709101349229796257955315465148223042061130247347815234389965101536362467866143416587506286551783871055622400604732857586588065082733827160129810950420802768542033409240421629762514011177966228369749795611823384582146618437718998037298710339893167236977561904051371434880041392289976024443022256384204645879476919490147165119047087108464624543368123603772305747303939597999011556410773821571393338012301397634417373153034256408551780058535989673739692046977971052522170547621753365732161837682862175856653325377684536110462513870764070048604916026289878816814716597199278010345661151591614984612754064644465887613410994810035581431729699950488327137931592327603457279594474004429144518692101171461793193182048393577611900611188546907881745164376378260119468160717286674458020902101893065024455887020109025713670912468207652989151434511014594122933993213045262688449268695022068298032928282031878600719726416893212691690922091078529821698743331269687800457920203756016512903193250665680368461599108656235396750961098599593280050774878432449558529056807455738282293009406092464740099382963693107753422539649851482989328540120959991387758997090215748301619517177418984838829747361516623584266845550695390204434642935461789265111851679312069258513707189476494612762113521558766066033216247296654669521586655010708982331380160515384816591160470980715246718807903755302453214448700543293506292454142884185727301800306863019797313681401608922456785218504000272012111179972097716448150256633571768504143116106261249721759744584248780243333648218882719479747877676491317584415702451204720878381831809791322210233467779453020499872082660963120426040150512412542320005922917228303520777151295263569164802468465366199625280772326791794363201470298944897912453229941995241797512407049581329102548175779290157023209182275763489520749170755966445949312252545618843839080216090816576698320473397671080873688757961233046693803229203021880199652600500552501368620141489653037727459990267230166517229011589851087302372874719060534567118819542907841012385858724111577670617319854727371077784265463229235931503337896852090639019098488240629658146720856505688309983503096732676422643101906168789970751585909449773051264883746376917394447047314494535774146620815687197712804856196110163109890941752613427387220412932135412627537409044736793351439452419492219580394823971227789124436458083243508776236060993172574139460736188097569689574508653974312583533161668171638010772106620707071201049858081807125571510463673482540019908393127701369030081939464527806071493223103092691770692207313265487523156919616889830145438729189716942418418058030630756377557804303754256240773577930923102227794886145114896984116024205010321931328623545693139421829204820098986481228365639023191578950893091908212632188017643778826654221120450058407759713150826474509892276820462675516801881484841447559762232183556849967568068761430732760278158628812957670789070462039275196781073847276759920819401847811292863220621306880375030752696774908437974437358371030870853131170967087058135859537230495540658626715235437088283371131969750225350804201447068350660917763301868223300999558286318761042153483495745426975521383536080359688116956653401612892535732266042506857683217519023397799931551002307935001124013087599986168873643151721539426616448222379390049137587509282130488899187403188476373084372914748947563284277204075765134560908352980237841157439712659014081960407285086013702452384945025076001149463270050082481128220722703577951435278051593885240332664381032666062754828936206844539329300176783498901977893867304495102003009363234317010230881006004277908019024286721794038408185672648793950384886362503938172497475442899270396963943891898713121282716105082613149497985759294934619549229616231835735497181879262290998745683741145484696251845153468883538547420029011672642796123729939794347519334509075649609029240696843830399095114008517542574016686509014984683109617292646019008554278907164594365445881005358620236703946368914603758025395284323423170042656220225247854530640959653287056476522535263631527491059601189991693166827768238659700549643441655427594321318120680952614728878404633315798452336714835094142296786360494383153130406168083190431305026861908792152810547477413178083170546464052845894699672823261304359190507458307486145927713042102570886876120165159450770269145248899833457553073397867116600325178593538634116796463775392905737056144738366806902678762025849590580235280141464136837681498677075741649772355626160297948553039716955595766752732372482327453625213612074076252323764200348781729495223950188715087328622769442388640822192683323132334407376863261559663550812325200269921727141014449270497597764397736046971469209712314376172035843871199638020719036164942391408726864178675669240153368977957778070985234200454067375130993704473084288478186595691253787795175490070956698375509925661046122377483789028562383792021769614847040089846451644003949453188622701950937120114864979846173096413404814754142275327592298363741431896206273302908417563746685316857999480201836308812696601929946358880631232836882694659034225101896515423198714191773169376916574744460190986731956234785829262167819393848112624814592695830383529954925412902972759760051613976020046874740363690340006567180039197265815176794098185537742790553272639857530240502764335193909203896601977608201631528181862264575299241552400268262425433083679531731551510731176476438705049560418769368939519442492388111035883598630847272926241290224693443273528679520830316714669005485502231196328448355910527799446064234060459106838681385221527565315419621424367909857315661474791206280652979842231235028946998092923700916647752855384819731892290400809274335619923301742241160699718153357687954860048582941863030739072446910929553278547882889890554805003021756772722933732251571589459873224735447047301832702086295509076440266146004081961915863326199463535802855121324045142855433171328037578123026514059758801953492694204609843138819214131687639653211719155698599089427498258512654468174065132651181440179766455171281961313507880187334838292403423597687880696841344812221991532281355772952231546607537967494160325109407461491898079771138589260422998585665584455312592150623359063285097645141408388554594264697251707060858845325314532800966058120984074645607692253302537439369373413855381250804297654278628938265244458820481498603881390128553150918552932966215282269957875680167092874073254514632152011041160654580380476404621093438477889969333091075558402184528799141852087729189579471551732664557191511606526315092958836451903041477818773000936520544870538575337103157421102138134935127975542264252347669950878697720876265559158663321385563738649483721549412920667035876091270861257843058958335364990033069481374202066625767198088389003778903534386262619201825171617212502663096241955776424500153230489297900642239462271628630101182067493051243883538575684905399527895831990712537410793139724509856076850189578506050509577436612518663484798602083576218439274078269718066994168729696072806117072228876643049429958276867170648781302064340801788699313837808333097444698501129181701027303387600721328290139056499913641408916617176703014542523541421323741936257033080148532369697070495117742097280556109651089476947969265282160274767521123447236747953942400897846542782109519134785849794178996974678470046175211420297928485556294298889418974676482575013997850946910390019111757793465437558461821500360527722076850062525903236347638642833303462310841289430395111475915062710328416516232626363265423438054520754812361122065856344716363525213181978502585101612138753481872248234336559682651117869488820798059666939335027517340434950534435458623514615957149938485546033254512895837894710224799841206887040724301722082274311700260664852499931367819588319703302105193357274925879179095684301897538816702244884650195300832559781456961558497434634407990398989491229437175592325126877243091671880894335906586774014388365062045311571832897273390201819850874927772459125163124646778638157079923062875863805487834993423604630698418484143174948872525853958845194736893727365593578868066287860845340411183740301140601658580064804994833281785962505025313786057164482639535050217453595375546741424426048620132804638532576483573652820858017391555287374553851913355088590463712848225065873612098071640773846328678003765836123580481097371678587502587770435604260545929018584700560896487790563474367646065869659145822355762462406530084529214994567796961549434123376672517864111500127595108664432319131774888926941829539364826753123882233292048651256325069624478820264795334446526188044261078980415721718709349675387219770402514201424033431813956802325056808324568734512095766018415469497817469355866890271461940071556245151939602878143902533916105084921084861472270230961321235095803894998077107986232125621651085292021342603941577412622390109520032659376035719041135952592397119231970744062653562004986532574738889282545039098729195223219086748389495990137981114154419652520050354564254827970512705962559775705194685936280072462016446352932862594131289306329553917149707545525828858701455845625578265248652391447361918773119505705463648727381205128607365463499902147919953796062280864066986495577889419585279577373118796210357434099572176898416015897462139814455464086478766706837794565521333093217776512908748790253064908673071288320127842983317198297060585932037918254127813070481241063325030150303646058696996704846291528798620257683641655686868162707125898877765554860530744450519441740564283956737427211179749671524544774827594514229394896707991820821157475924826636824332776998795391246466555232956984923637597752273364235186476799338561511492466889819419087337470425939044928421715011774014164234841563627547543429355369853509845591260803542272456738551046179545938817895523634618211710856685585934658044479114147247611983859943260018920909699530261738046124700280459521549473662959144674965792993279191039793520759582620880718296354635928863846231482353332591793944036854890580621355568601169254783742454959397146330478824273042307402295796355767098463610209893367855142849633056960790756634643070366062551396881900061938104775946613426200298480250630313017941964313880679685733508024200905481333505892238452884546595953799829684833889097140786274785713701898275735689461191767073113712987135173311243188718393120369740673223141311829701963729039276374290524111645487289421674678565213439373725910690259233897999068826308696826499199744070317910620665686189113732408503369161678175207101914016070305048431870476582889352359027835476025086512737814450596710219022161024346978220880753586426323008989068886845573583135949369968717027355364590197771952816578359395273625045467934347540046716816592817548479138385553917470673947100303667740906383228573330351460584718010479806792799661274509789083459585802181247949841689479881783824475661811101726803091029031424703103896786178771398191262034171093075565103305971882835893606759099707405079114955172182210887178127876761792828529524184616235970417110540727120866767587217760031014643345198415931880119370745688114902556272249960969146018189072404396890415241944289929350177996819908102220180700658202769997953207682243254636215471556511261276692402913629577602314157461699029990090234792413286548631453438329837225103644394222257780227206585239096762120469515440905694950832101980494634865607996628000202920876469080010125213921091956473019718617553178540103641300788259829218809156602680309973552583817904365844028289332449115418052666042265411700191292743929844989061674440237524460006704188115954695677095749407919822846407839732576135490112802102542657575047139900796406496631237242431294481977790915980222443427918393726206438801768180026942646572505417982927804830193052924789190595756240500178405270455272142435447133001105688578830152919314882316709918862605680137481677287376849828329837441372042100581738313293125978035677943135301504036758918512916489135295484331197364332043618091808520417729987234272459558260808295857071668778160309064137195763283874478874605495622353872223157235603087108615297104930334180387081226084969879324044711010985955143916333284283690633999800353467428613190550489693572341716627754213264691433316705629458686212223791151808823149699134218065393211226368191771901245510067026054991446112709447046582879880073671922851546652537780231632978549738806956437457012439179388813576138677704735653456763561632285687744249311477103810374087617986844082501149208261417785693814584378900183905396411267492418578961680216563717469206016140878155824040225816020314796798244920525840631540429615044008287730257801127093955138210479086455241036769718426282654869117196206633972598646272587178836222267050381839767679547553037729581644568938612706829957463727954539961660750464804153575162257350890693396511545495312514830709886423652848599101145967089006337928381345907985724088132920570013836707884646997199208098441198790677406056586656765092644112135462041179181174469311267295842901410621071103844769103502922408815276553907441218600368851575991382780883264883803776784587882815869283250815489372175373051970105269684454803945728842359684893422038747359877038544280509640189973385741561421799075653906657481052209728840955123234894631643310373328974323232498502843481144528699826477313571756634603911329859757543965215553431882802574309072473471208441143183648521854387817619545091447327661965486693078310408650654520457003547774084626187085916347223387070730689417028959581350339318701135090781935708947101910028613583860036317291313818731234213490086276940045223354077908486650972556049858781413086349877593911444067354044490174252547086056860874978268154229295046224147640881664938329968113443028471329900477567684415053102468512777675663523852847948139261268453792351488175288862251672535579274577368404883181150067842368767566548667852036711581490531881849359081577840604381556087376518539514751724423885499002439385565103118774642161891182577423120295772541260846097595896324797605029530420925282360509302536441634820157174475063295246059633899590525486770530233278243680615808490679269275569271419247247260531226290846467404412002498258897752639499188057858227987312815589460365473773506311355104659930327810669242432626422227828838625157949918761939043135897153280598713012486227982550180235295948651650046872286952862751974920413927957956246661882367123670728042689072860556386609692620213523401791068067096088920529364205991907253930503472625048011265612882926443268152406226448884346187948022486488715479724496716991192985372331492011672620489322281538272031956931064714442143913329383669344677621682599603886852600079106173656021033453729268978422835753998237281907060634653890512623197308727322474497778445195439822673624561806467074314168052046467133365141927126995691842443593918415607947361276320208762640237302837484172108971212428731421917112753745518629369777888397504423530035006279355085405105864761616181128267933955945302825442893775385507490707827453094566549799060076194137162750445317736833182736810211769453153617353936005409899180791648497029470156922956254828708041239969405783954804136011234691802961119907283233796031230346008170704450093558068589671739594654366658445155023574821021264406595259781955575147925166149252388394745348074659652114854846609591063186371267942554455872649047913739924454609329293536057562930801575440991176543897996803872493402258930423480817337249689544531057311650566673962001781164181202725889441806111103915809360234545621053980202896070858014565956141119163625642652031653171834434244182814850426040733648192648718620127407362948704315027763245870837088133119541789054310148183144814560074214899257126015585468462222819933653834035706848741852409103778079186556101973860505642602582423782533786040582024719981720085910806424543422523499630417814839661871995424701600093473816132125609461743738800343288410872908067231306192825541038359598916594572435830274446365265513042233674689463952190217907099215577020079456914093440576523223292878910494779933065937888824694207004996655915506651020189941904810457346336536445374348628706749177296048010365852612608733994610402050584224177177524679062033633509930484957980629252206228599644726451321803128995426143287232569562867304253899592260901427161942007357746578101890010033551744246733093371360040101047897593508745970474830351604704319156330650007900932080855802739895042365388404290961313014769346406540435465959430183693252281482616571783626132289104857230909062432651244807121532142057454283623117318296195046936645116950809596285640680975897635414364371021888500862720339381869668049984289657404500164448442133015264114343829463381418843094449848321770057656908643487939299497433972046593958161080728037492860475496248812915541291319042322208700493114132302959855167562730262225465097759955151861479567827886704850018907675538218232156665033077383990346858613919318347336681138486608117176696209431361763693433084525726316072236321055706174945131081082856250051239608962764575127776861461560494804131649643500460707234534089093313724317158839306987268692428657240351688233847210688261969262459662429273388505576210056352560811261120871356855844709667493596757860860060604599477644453200415790174059038353501255780790643036417041105746602116505766695458637961014172421060299206540792796388638694445149529095986425867545543489737671266623896031600972992789540809137149411176357930520154880459265370213701804084492144412174149994850960553326857776520077588517553838900319012274268238560014518113802709672012534307296878991571698436523420195757473963627511656861190606193523414779190442607978817552744405466499552994002075097821129157770301982948320948955829913472950592894548552469859110669596727491287113865059206165139360416332555860321821052674120152886595085667136613205578920712048376871126377567757859272710849688866661767531336889785346422981756358491761220782875458846717242642688762445251592001895517866321578481338650346121368771961924865050160086768567663446323727427041421047958744059367736481750064576791240920216203283725372321669115571246799614324034286072045209584167920121998558442077528619954603086612307677945529259610837243413685160811658645977495954074465416569381472023409152852888777316476456268804845894716223959519925350925976779545198146059126721355332238312871313374780904027355656916255628962951292904684588582305868116889372665616615985246476876040395627334250288497427056381935982421039391191785772506771962833708702013528038952782713015449168712520873212280436382191497396206094705471668538728130724202291457719573835029922121398350263789722722816502635704657554108522162717911680512061110147838633077840142172910205278406934366371966551122465700536426388166394474347355845312747212478815096855836882878438239448390663878502414958239847736623542300993243405258803054792404779471857804491979905733671793916051092992549554911992210700195216386981999435887157858476724265704746945219732128339759753886546785989713295661705849406700396114316413544873572246137244403321556482766285516463562354833026068687262920662270984948720228376616962357443541053308354035388782821415878600670515093870898483822284870208910781613071315529709136059913640098535847391333330466075044386620316500151323186783111549763733731624255127090283610305124640563445764967430335049528042622485396200397867377696806935816652468083738110856835948974519671400794079528462467352643755255518808804390049601342196717262590480741357220129219321879885684269289601453485706339400626588013721335751982565067959262709389170707960144038603533174135383774070981831428909219761631149209226013478765180025037355909059266870863895240801298470655473189732813353229872761501521421813851500147704481159978882119839625276391109951502093030464491166218567083196049922110927340251368193151844219713982839760191149215077896548731304620414907927930005579344052232417547338435353568814856267616878785006582600467754349162126029837275203316916329615474588001787490245092415232237297764667546660537102898393752314513172720430499648110963430297055419373242112168863547697324168536320601957249693854601922344739784513784027831359090354093729030444565148877213957166022494475025412314313930233200589018150408557183995291861969454334003501050620844954371471389376087223940755156357051003113867681087861432246182371097556340236382575605819172235918301813081807442607873633456336875640340458137176324676992112558081898438164549411731107189086089934913824162058207977789049301545870827963691186346657808076407663865307702437978808597328323224201395387128566999837505433828001162721028533505167465719151561490915914108618914180996394915746801097767106918077699816887628244716075712671749505099443174046925031412981668873504982549631359225342529877862003164815136336413538302566188188212784275260098676749004670827733638958634288664725163181880051793311563250340937475624483083955777282304621727024228961520317717332828615239375396415961434992305274344276016213676407305713084098459466335616740252725460241005688105225669822900486431309865665297297723101192590845852567610664533929789526316307552362156554177017815425593645241995475071244749812171815374623580879877359212280967469324898516082800235552637843288960273442054909629672305473147609033261519870908504948108562559885676205217518902991871209906394220956125736573356772750326595008907960488219962756296839330355054108376249138954503515380881009038070889215847252443275805953441715316096954127724653998730504009943650389884534160555513961019880176957663822052975688425950834894484952498199993859814939338346964318922741329209908260672510023631398267163687010419112324229917883678626791530398994321526991944276202240146822827734570843703206559399110325668737071705427298446675761756842878869657014604646883214134544375089093697830894322080793574787340992989460125798537017108665727737988830686177360453588343229542240490219179018204774870334043020123190583726403706527839793743782850813766727429228106337970476666715389781613501647137499392016569478530765617547341047611567886606030313410626279480349152621390103693481965994027770182910289965604322114832085184557453258014856333511861403787249323353437347548046449836127736843351327774686301417744401723963074929473033173165670742118731780949649933501837491357410570921664718925662464073391290426189420201975480514574057933590356569427686945349707661784940535865652008569433490839489959315855555828803040344731891840749093026303276529503469220800500927404629889188320015642938731323749573930935428285398384524530757053834159236730767668582808299733907851190181556966824260004081428064611359763240218419770048255985370629790436987145406021048831660357030090273674569042719380797254883639142123892054691300162919766344690317959748173280547872848220178913773409501877577802095148959880808946643735054741021946542126534788258985589508309017748851810747240161387912112223652106870902887570346121373859538546358060276418924382285498728741152721980352078963831657955189094586242913674632219105132191471825915357040791869732987323552654054549425265157971799248689409736873816527241453508225915604733288883592480301986654651276490480633353475753699521388239209507443033800209170902698096152958393154315636181379673484890405081588242021842350050865869403381405038303774294092270351615271506240272836789234997480758061286240123683093336337005392879636598494437018628817837877890566589961943067912315460827663548619809724059548027497502168780636574326533910542635580942200145311969545076702038840721879542554490498688766319197327592396486671063910600858394723753807444915205155133499841861914250297289233359255066908227832488240717468368933400025795892705934805709280601115937251780278529731529262508827669996719753438426403923718425199102178519626585639853845917644607479736449067447662805237282784408206488556769358123042489399321981938767536612000493221850053519780923999059672670205730211261268002507467889778382839210409734361025713477017799683884811081455686028821202297428480312125879948114993016792119755721834424292401065464760889488682368846169445735565817178470495675892083524736009475341096804589107570426828861955749842722903606215618807290688167834630835014661354849581260606209505942988858476036321555725077116150132755443179287188002423096863076884276925029898656790112316463979960196874380496614925709710981925190146554420504668953209467537422906449256431605035683501548105781794082932661496352476932661101817999248171500032386951787931439691808289899679362666737778974829119262920913024005681920853170351201760683117406479006153140023699856765198600685461676755879815581815060608884486398693406410090350764742819592571007239567808731092787787211540958798414191261047027106100724209220445509815602617983311090700979673005053818316116655988816729883252932657232083114158884049021484118689406829738298201445532118502848390251490448336078390573859626959981652488229178310091253279025624902294015301292829458507718742847132349249720570580331066053117320766312488466139465022576615731716404813865313602719477396701093164202686943066214236788081679320766723406490667497521019554836270510462564426120997375800878355708908387833326990920309011662007956583703041330305168671449506485408483712456940487851518243552086396124877631276375630283955529835958854888024630082620558366353588699146126829952768926355798843133563140545895169847032380357606466907325158894511512242019022919962128112708658355843353033003878053335403466913018374108575784719669692765038931958840251366120003473365683975744113639530003171548089505871724001627994671441202727405818540544095982153382641109960762478927587044234754121182431621261978510109999279483769298750348157358764163709937051975252672806270301198693646082202615424525434692089433855787534454278701719481216706745625423202009195817793422909732352887882402927885687867138662934306508662457749363726971782732917155045358959766929751999617451214935899209887668528252211289067366463377394937213860938477652466315741982931820538877586169234885901547983374040858695916194341519732553370235983003692719233482435704875157729405455705127567933110845040955158616439023252416725967202055685367688162003114969077390381347858909043124347490865020030835852865294578940478121212957388614339686734580359483534025916466785740231111432930708538136266434767715398059556112649485373484511224058595159849418614672010434926784736110104830398462843756546075683913318323695122228507800902211396600134313647650030286232664397406710469690055095604903120886743958827681545013872740470632639312610261682585194787862624124595895530498223694482340188921474868046150658340528115311174403180045920750433449397042697562545725783617293339523809571584903956114875559192579550493532010856553095722967727772452699854326056093197655242632853548673125656366117602457679124349823565110755572960429117174389366626548502017823385972975876376329983941737701702902080335425206038276955264131208031556720897340001269369777762502584635866532588623864138703981259512517701457629393854120159114630142178573651940143769535872325680149864317048073160821583758220388426292594573694346858331258349188821822095942867631873333589227091002122673294906265903719166030168033994113605718106199122608828348286017406493057363961249555462613457224400962552978602878215026760806706442778362023825277797237551758784507815974290391827592603734109289407297619592766405707588107315607076680146527654480256545757114218147571259893307333958729163059421458435671180312750366644265440037310096688588030206599976992718736798086210886808343892777626282236437419131975471471325202555375799023408424062614152481888148053747063304962340818533142839695306307324003308947281491618358548764032328908652372526886261280917576746838552854950266629263145335148411219677743218558560703167321079627425105860263247302827121332260007943607205482722705478158697199132298865277144988270206035392260469498751562745630469715010665213112243911417643479786960100825019515642307630939187278617923176511045854982752883458870093965699469105532826741175634697354665911255180026613736657431040956981695846610022021985445907709362761809152480274402817151254784696683546903976122247801335215668490551512106438935509174429967411668780270791896201371250994141569914153973701721982456698765131972030586070456392027081065808498098224263981293029845102782364423567113313536490261624352473121913056951769268915101344807081982782538119715971067268681941692011968759709689397377925588363784888266027017296444312790885007203352204898083096199228060140090253461691335395087302090019455132634324691333736243599234090440086784163187633627458770802480406098459787448785237848656109851200466033981068053680472369762324658957903290407435904047588972306706729047822811238281234724879286883100291404225630517604985450968779379113402001261314743043238236249668983952652925402351973392526962800551985910400668360253423180719636197371495240591984874440123115111264972147204760658095692765938366363095062234692183240520663668209857416415880445623630012275956062457352726657560482079259473887252972846230120027138378826297455018069256279414828571188840498021918879497228627312285225058833863096830358995636393074098466353353445246706614382772689794726379323812586342595894207671245697486756686117048370424092889672374642592957465340862162433298923394921000532216005897344608338732640906402853708028765768055760600779818630878590615826794099814445803584439254277494349987927289957040753829423880534486337487541735317797049224420284438575086105633514575573949531480749725890015945982133638615600796738043699042672017571898661307018934373241612023765193606510268630324266320970414557073085917561994216885854028365064241982762467451431285039771022623067330382691354366961954974717828804620964230546243974599450081494304784072673255270458202628693870609119261018044198453412902469181196160146517692582794952481567174304601989424555251533653689332593501889931082944029929534269373019467755375673976723124511899588883641797228197871691501470960194015284606875027213475247738477346773079261980765109113397237560361137964123151811927464870599636555383494346438382398527738069805736419211151138003077232971834055057031484010424602166062944452197458913874251439696265685988723440912540379983174656683573420123923302223058269292080152999729775152690379791971248150142280699806725852354325869612172021199487349464386146615373697762539163990880505037421438336200629554591994564361132860141010820440680789677687049812351830365579124273454778468716680114651072868602152018855251436336109896498187823999863700106736698923053246473603328029614490505070017541177664393448412627699716957283573176041014415912153772442174957881269146723335504902341280023448132990628387849163790560725201322985767088419408064519057509732161999514907214903144150849970101431148049632542758921807011821543351623155693051850655918661440678802300983024834389391639990669782190682367058427395845056869061152863934768488742476991352996065040426905412570687089037294982329605977846920411756975005864797260217453003475887772757141371517375708335812981302641919857830461017209593826652664888586538039468827337804791919401192948526269663477221297007412038804593524107794896707494503442780328784198839305354288020703029769153634397902482389333750203796918655409229467691107654593091884133617515285510366278805244301343140618445227456233159720492468250197061593576461659006641784935779095640465105133246028050831260744676037680227627172991427255968185558165558954675014306776250724884416899272988468447410450734070223359296259128539802821422302801130871709471670327957786799370238137474033787281314374982408868262698153990894637546917318312651301903119977700915610151169370097068747465317613350228565542269127134839707984505324779366998125999557461663733957376130925567399342761256503204615714177276705579274776744434442176291072578618234390549826438370221811347562129371107704862942706892652453400034238757864886749741271936452062274324406006818640975086238460787082042842730472120710693167705413000607236583897364824946206270915426643711548797926485963309909969905829629682352672348356072199921156480353421574483981236795613958790135047652717593892416333345778972845692276108737690637161192076774112416935196616777514125224670456897453287456658275348189409766397447174350460687227138158889968777734372915367858890158097196746175016271050047887503387554289587042158560469213916914578640605841578799701798294525818990061044414248705063547339132259880037271417249039592523221478743020710391984693672586972377771209276629301390419561236736675438771930630211227360746636927001928335824144738574797153691742945080615347734959803013018583400809627368475601974974317011306873961503331233957715769531149801931016192344546860474820045636838293787256254274919973829261931612388153442191853073054493998493350237193343494956320473434962034596448250297729744567872276561378194883592370360562708044261036925118001900509014444506898882930646093548376104907131474590109353432963844816807528199275787098520837807340350587203621294004323792105231527564615997246318545941738727421587278188887096497196889368379939312147941666170493030388667228508430797541550891737753193105751912411716432175942121478526227297013947502939651756504800555033796579502267360579955829839101663095383260420628867996988888228132643816281242870108278554209717448588851050619659701440910818460771133935085205668260436878555345135390550262066336043191506064702576460002852571911751775511511528575233288633191147045173976797289917817805651895563174205551889331707518004217750643687017624654585910905948483528058767502922935310523866737651955666068704284825416018347383236343802352461560465758873769105818121278785798711290884029596259300109484490143248690575814747565719246605468446039315400409448795362677472311341120579980878152193026613816336240292754227652050066807552932589674089767835537172153260470192558074486441464299652184240992546321513101584486708652218432377573264562188468584186991441057529509835615032782045958568885320951075758311367647822486141235063593930515479207020483508628799323064694388328734580395049340688541027526122210705063926692865682902747560248324411177417213343931897877371208016491447631319832027855499132823068241231672782250086850550610377473456471244341941622999539409315567977293087239315869846282751914491525127253328929313917247656096949719872726308244383479356723892897814775939945005306294219974422670546613640748251056526542991293158970593410319858466227452466559113057653568357722917234158292895508427519048904468741965867608914343371314317541804588287373613271173397982756434934298572002675559677585477273797776863331747641378663095968184860391481838251649848277928538146802138225921489984196104018693989098748482697972000598318295588781106348118154280304094601115345114054296766474421143377397047927926832858025964851690382036482487781305575365510418310763881024946914855841925184611588748372659966051969631322660464766396212025584068561286392759994236425782803035716108773761827143719890271368967204030461195845998849806559414754659813061614905782004657696607517795237460482891246586931873994590360669700369312073739620005343450554981562655480461434444552213804332218966942212954537088679555357709705528106779372964261210223251233704459051995903774101862074221138706084724417969691738999757459278790550844110314215019770906457759779125816060733309039012508880644909846988432910912806709392061191920562237159355434807283506044699307452313223478379655639888765514899703259167169072459171654799851033090924812894841180016232428782834410313199972058727665053218256183987310317241868617509348663912280652056741174138771247816563417615766358161287097355057755651376118820523631816823559261807864720854578548097215508720389167962869403913143243900759988286728289885758007781185715164734232896206469564043522257974763272424584823442779711074196404094355295428789496959655684590781574420403696092126438380767547690220650277800510389733049892486310183967490343096969044901969583712068421876369271952699954141612207391665233068113938893253390767582712011890518888754394460675935379192427329376250293752097441611169653782050309320411994479616854141422968466731552274568967921070034029415151018300591538147964413410954132674498316734937464584669052788752790405279235950332989511130522004937359193201249132391888199739832010593968652520096755776386767466235843080028230980564131459251712456271821750132138144630894230548460011922243757969754920777562866029812289686289111156014392235336125652815369163291145819816014242635754361746055474298157728114194604345809286105999962620594206928438429259154803226850199216432942878191457652768265080476994929422925221911609984564667196251001078458378542773422711208557262987562082031012059812072864133471798321227053427728206404164179117424484213463112596342668428119676299673213032132915574240835256139302448145735294726378348551916153532379992978031878685721338365922747686450581977905980655448948980386481162459268870116462351901833208413274479652901764149886278080997663013623326979787285129870970394754386996802905869081542505370769659839830573519726965967094032903450953304276422984528748801868970983429600622803724612442231606731816153645337786979909949300956671902471814422478909999296581168045317317382092846742247760155438476711954468937294827237020742825938451086013384150641213863066881239120370547193593112170903395300922401997112535843269123383430200768971833628022936929054284992142813557484464253518367550549707396876575630267620082584160624242102083256790933639683151373452281275608090638779215434967513602583273938002396526179682025516470503687355391127710171734454056095924021212791009216655008686570135866416065082345898141362131222707674495957262990553331129484194553891108256848962088288732542661561134477765702551984051063451878690091985449967617884702478393104673098484188120833063719297367681399833448172995094840310662546380859024961146916102874519614699390878184422778642175848229341485807853211538336618339903799384176060022530710534461726748507428032608076065668551237436298308263250962048708674900431217648375819439161242006081928085148190066479097426720398336568794210230302630960901022630453491013438890298601816085344858814760040510256251178354174461868461758647575304733095035117910736221874895152049246016706374745790900354749459877641764734990975215769364853766840961839802221309563140996300244449291327458709269482742051794443522838439542068139784706804153209169624438342979727069790396686579773109846813878199954387303578451462296990177745016102857039501151944320185056208991174175074769013686161403185748871517758190439824665215848813502167862501565831728529810614911379494677571949516427198206882865936744123761562822756468645440031837825355497376093627925187902284657917606908041940711986358772023897874870041097698346757832865333949076522076599446048106621386814801127147669754605951096151709611772141818237195211931674669308576253184142257001956900134576855782749545693943055743226773228740062154061754873375447316295920586912484496712633904921278180461215234562841974882551483784014338584535368472091853611753424245214016045589004874893390408499749417453887924277587512630164574836969199547313942939704405892515252442187292852195171437115712804620206303189197546889440159397784250770392629876154186373047021153341676708829917771129741619755167014916829209890915751788687867329997835651882129497599966582709260327037207089103021918977932844526758202463942423296729810737809561515965592281214322803432878053914103447855445131867402152627802511015091074038129247566320536940036828022132842196798874211634510704712681909657733928078603110979260528945925871066280108669757182904916971233337963753077038189427119409635500868659947961234604183683317337376236504817234695731956945586928425338610210413171646979027056004331770642727941269847920488762740557124962198476135568819668390076006274219334909406007579873648234925993975916539126084070166006717521421935155756160670377991854573116844807994370324928228900664829127589118797041207877655710679413156551629979734748597769712249527968646735123672927866750125546313401762934460672735008391045444269970554387904961179389794800777583355715964390633330553180444697886658007750417018215876051327635906613320723504482154186366916512107749411915877972629654100270037402551546243680610730468688216100883094806272534456347493440510580548008695658003623653217365734382976450672748571159398691689569813403274961313245231636881273525429705655755099707785185006602397372081088728036080195619921044584042646824514883945964144136328299348425883727058889791907670980455218944518362016871590850860740655383475874526663439733360618612366016695625331858945193082699335401025541349746748025447994183197074291979387212204646908717127903001290310655261196609047552542146232174745463116944974428583880108097819238169953739899866975473546091990450529515284566487021812252381627001786623313843010138892912004929250854342033097517700459255974321388612469149832429681972115261882694885884480351988650765916772251991959424338178041250225749619851151269496046160016029568142702901288621757471605018496921918025995723368479737975694920144067824223375248888971122937283172552364827787733775656296095258306735869801345210747426942840645474214549859392477175928320136169157678890716819590978112223436318272000676472697707015898971498005161024805476105401661175007678432266527075649249678242147989637707920941136849029018766173559871834471491186294670976861617018080954351227996552782355531513383600495982275567413583362838658848697398751115636613644591285496539092358225174495359783430776563037579324610696329550441259247947191926243316099418348758018518844584599944763984997122281442369082678667434033127804142854833878481610615655000417555423459259850459583411632635092048996919232677745211730816517946352051915055811497909383999053228034413478894663184355861441285923381827250509668538596355561353975215207131790801372735672667106289990389208115838643871857120994490238152966629278940453382865803386396315137690339287747838248678205734807492244401901208399352820203815156948006298403051790547320484412616019721076538893379059490254942432451427669366400562467137188606596442344644384460833045867263831838818302560395516213365743999471749000819478246823933826528616183764146790757507428127672288447830226553715493671309545444509088092629963356678528864688416197377509938439418123252184832770487928849989950994658082318921099939590867273550191563671079609729523802582294012639199807456574929804273524209277867161189277893183409419681416990558122764850933524040592022213730232985064659931544905529581966863125149690661630951382103630575271120305516397694809570589404633527711017167123148934967674487321136476155315734804963204973715061956341797268981804354337899002948998892109712017267995019515371123293027257505120794286227232021644728319854253141500091294031618309444588470406192186204770481611217286091620850911170631404737580640252187045257221006207506807418304744079375576482247360928643346196032296486829916811129583473552037047118540432633680815112904050540089725116281426450889989068453423411972492779113694676907056045460844456630405356663745992760307431466300651448929124628492407026056720105925058943730872340637689956267408305932236436691542126036123353782292889553802533715364387500643261178337719450379025845490426983458595254200913366967006546230332659906667291047452004027048785452187035747860691460745943551914928365245231500410222270354510448507985295760450519866822157376855113760489708710154610676928976516487695738553231560960860799015743572421991127114597912433154829815330951731786747539000780295241876673267119267170187683852494564994228852334013819138279337722376810721318268766720190903593960963704274619026583517376621015261356652534367954424010083273326364316254171212971440721837905930085846063261343963012430049366991069334089992114702271143073780243370265655191441282070369497644166893117952430138252195759873336204602019791292606527520995191037694973177598042941177864413651662043608114987358743023344854530885291726925961435649387264614466954911876166290325423961810422694469305493829218699491943520849702847221287981288432573209809057099832753481353768192159132199582328419516987832846020761132365934766281878046226097148570037902538858980270034285619047257191526860730036073796984800330617574980934526588986388878245335563893364760113359796111915830568054497151763948126399080816915244765428536053956302563512280414596958314466508504370930265773861132876015565338547048997896159881303804049663152973338489877769246249403240306177548922931517064854017702610942626189139567013849769317317686913623267131578909510354220602127081514643706763907090471675527772103400624386467778165277257510238092911226310024778752499619927950381667940063590026178851910935927676181434490131644209789570838109687093011823302036921052553281983393438978455794393146730232259263379395922679530075684270097383597669163317857738246783538897079414113829626483109118120859698050596540846404784324971840208629886134173451432833192676488836795753794708596731447410145879419940783789110914335601868951384406435948374914880751224273996505106748810849358829694357415779930683423254722248586746574269831638600793673943624026104227570190742528642820615500671174622799069159928966293768825952673076067715315429631415814463211852814668282520912483526308025522884418687247304767292288096902072812434623265604839104860968898966316989303989564008230897313304599896024988168729959976786855617610529775074478404092466989127126565600100943344996642376349272527858794184961075935740878884347949302617061307413837667246045908708763730489752142541589540465885179115133889943903182178125968366504816172528826305989617364292326722120824575254530804789394278842616062243736013108710528538647109647102388168623186747846767370596373729475975686469532759306845914957689328587447948560210679839515297527608958659615574059995855817054331972022757193604303159114001609959748787752565270496260678097215179331550196760548534140220610139035546720002121556187212668961725528523337639500946022605975762932321106862724573803856079559874369621824091269982913258855356092912871627732342174260980070245820931722473634916860002187295288799518845826025480562742908006137440830673344677538566085975596859067584314048483870288830833927222144530112548268920784649233592528079189479453448550066440076341286769396446872392549153040759017340254868689444836212727216823691669373638600990617054530941070714209599975371140534245328020827548758501606764816400219994087353322936585184629350994966889939301235481999071622569006500964091654602414786115889707866939287733857196906444312352429706607822770689501395629623293666719590640371036623669003319731804384227608550636392501394034841907173209027220608603330472086838540695716452066778899405050778691692972098928396210019479555548819567607352712243554539900771508252402992678029487259460430387594980544202117130047219063456388387443134315888065069463324891950442522655074293923206328811354457363511825514453487751665343883184537713782786929419738935907944036798255897546532744979459830633204344370821032160348900085177134151894673620606809114346560565818691436472378320516776816342658607101287084694961373479985818514855820733907947268029212015641414890475235295208149894387713084946390426321318535664067772831776300427776646606253484684075268028761188235482714382351891739534297104766259946188026212306338107454865080991128287292288612613214585901029784489614608086571861673662902952008363572924436267389105986198815253670967338438703902590920506205583857132779830724632103166481910289049232706453929230070745612146085197644169285261195394490856675589592233601385485816088779169187044174193228882215108538055135277959436558484565878088352196914401129509176819833679759292370349747848389980201890344546995036934881897692153141817153580074942823603786485658915810966908458551550797679845443445653451013222233469566182671058974904442995994956294996816989540497349980441709853917519095120768252336323199470375519232577272534403931366197703053281155547333067989918110459373866897757160442959822423136934912596991829004468780823737056935447325149983463230121617348306198391358320072696952425352070085655769088469478125752249220448979822587398328364094704031210223252187650414009594619790892126000748379723283359676477545713018109510223192152519548751191531119168524341785804678376337580898578740132153389050599869204667727304607914445409787495770032682186138347943807194467327037017883082393081678083013241232217670915255830051291752470656944977323112623816247396059790720411526540932086243751935464625630121354287311417236495546358574296030947208477274915825936631993365896984495022684029791817919571962444950951620665192012494112419633762640202321841277925232103430846130443223239918284380367209988940242229509677653029109102549438712230081411336823906824564432720970151995508014339944770565719424259348738620708609501551876390565781554162942757944320407921863603551294334433475234167763879033538373859491382847996799274014569317261048321054097345317490128495942855318512928366338074353270898872262182417047935918519157013803441492853243354474408134335373905668113285180761837705147759608540748489054199250031568897845973982352071343466666173193323022304940782640397168992502989328099963588239776441436867702349064353242338555003043465445875645542539843601407875474370690678049266891317402823044068991996443269721931277492414814004924795891840401734030900272510175647052883792293009777351110400300102506346005766249293177177440969305684784374104248618544733330802328824481829851490791033009808434753892195930534528175929327862484384595646688010629526308882326126788859251568464668131998647740565471903352039598846320002371854038022310205986628318974367638518247451278828947242984560342808633572784838346289307498911620328102663064841464682568819465470045056814299593464332811793434939631877113814701044391338882665505568846318717275905293545399292992478894199662146075549149653906408588225281096689799085976494088984683254392187852606312418975976134075263370657711125101980846775583403574505883675762050816283557611186217641963566190354160523450170856909010075465197559892263142497206149511928062972047420427155296748034488672332242160129650574331342442734433995503820263869928057770040143287808442368426853361949197367037223287042501211499250863640322653805951381759811185326686721572219493454136467489154147852158043495774741974544438024460572399020627234178257790526992881492549597355750132086496863412039481825023270618322197925386258710271512401090167130955077484627026648207070248530530528831068978455451738678013790647837570951892465887316142781032318673217138514899379386006807186191048585603677013019303788114745820239179184505304000043714586524006168557404145574022528588633160632684331892841667886201025436930678104973221924282036280997385026195975501751385107811864181603834045056895308822544962690903414986282350800091541595104022831564191593134823867678139807150865747957665691608282024775942248968644941404588991379445052657875889730259821119701557015292358781502540957255844901998500709119285031915152876475427445014954079083303937600603390647282637320672430298369165976181702244478772657712440590859699705270373910223587970223143717398557974435508350505058701347859307528082352419586424669517977676827727951894359212238711177334117739390428413174578085587569984137909104555798136531581644940147706933622169142887677301933081599789700313072690625985305947330164711412734142934686715206532572856279054321925575886064350616451570216148451342662044190720321340434720300527028838249676138284934061007246889754436396575790720730600965317115927614673379032470606778572935157685509779664165779672663339424144200653121963586536363985185979790087611482606058243270287104176224105360681379477130689708991629460196485308874380278915177086711833393510125647598044361729380872784514698852324021159206038037604150880269129739859387421031979881105920261760407919540026773342359310563584273172655139230831597126659593202085705130252707880269939872016719085300027792259747294030508196322357211074743953652588911057948889604312950490444765675252594261691245248955739315866613767590208692369003831108946494989264934273901060782362366833453983849493035882643678107179437842847489882004790252980319939893818323226115782456339454745623570981772922320450238694971255130584209138978047218191961319044838440517758669266753889973027944155156589439561375433907595183131972316196931666082938068157309670947899440861112629453706846406685493891714580109797492257855772363610968672891120349961153993630889985512629619262520239177819514132017881508271142124342699352194630744609593792300331481111976301203856238046268010203317066012028869975463966141968231511145463410768258460854254266860521209877839502837248981873158505957792407980255951771049724359004738527029961249747786945936009770475178136958491402550330719574508100685470093536012442921463775939795703894857634622692700598165109706428095480841383740035986056735213695457833815334163590495629982392167383482481028538059475745371581725730118239195008967347645896937581090906452447145373519486925991672307149828457661533255295016559639652239677640860783796308968694163020105054103902493995810318073975037309158805155736756974717349228728929708983680940270899154859735755222273969124795488903829939510236021782776647918608423692080104407076313768838568539644546459786889013439553825858008267722384710603940407969182363616010867568742475712804715673419029939067264875138320744734637856568127144925162754035229885872664180519122225308550774953614473691503482458947378629740494066237844030837471887742438576226265413873708231731498141069039451854956387505345293199678670547469357706178170418246379342310494070860172223097212985418911213108963989821700180535587413712738427201286301369252490725572925113391811779562227151078498484651334624344084869281600015231681262768991087594814395622210440886711888860234094180898654054692925115526691868517668808732267438362799346223904603038336379014153630429698391705872490454924745830730476034696200277003087815744670291512320369092933086089237438826104765456454829939564746235792889893596052924256944717373775926738133671274213698108751560892813683942551624949057220621637917362457798616084354874917655096295911282171742591542717978137950702144742256468894695580818886002292465710665175979295482348506170238855523354818689154920270997347460637105102433542543708623613880750609641336414819965235648888182223885919635220534435928531354996747797633146398217613662033113410525313413136629053917024105986113435209974959449987859129136311128392609144496442772100649718417429396999216353736432510418083980495929402585910663468272906256065560703393749266442425090124556670597465607664354681893962206018506286701456383666995260258131871591593302138458929229334499263570323819513722499617830218146763941863330251685651135759961272469896515114500764367838734334180241232927321267848275034509273850209318060946504577686632088467302052343581082383630008599601782239196328391711349720193769736792209384710484750023711479485747630208473778656792071359231928042502993494125370121557041684566069331875429065756790522668501010382976886692472679894431064358445609843494255955976784309404669656842158209966526473113890099369009575534709875907505684201422736395058109357990678439754688417602783398409258216296192373824542571866784795323506779514109064443892634964709847686891615695004782520547394495305499384315329405291725259152133357646051276458836688679673885539042858522220764201424905418517776397843844605966709511516237885898023453906593132060113420694904170994368479315253023619227864112381511305572522482598339518448600962568297885937927384644047997225338114837881099487101216129739405317024885162520838102896612477703407358632357367242136384693421848660489866783156797800789290235109892466610532087443362201884556747907114932600848984845976131232677223965405265242326788781649728916810178575999086812609137979272734648160921329905447790973496728889760505234078373877433660440260369034474543127603442893557521551244969895567939476674131128272801952125647559847738699915643361574419739181545837312603366375530442352466483974284030410080537642735283196900624939186593517579087020973802688489026204799764758006417155267598669222142465256025518164677940024048454179319239879274350108658191532453555662350663434678235790834295620306796323329260665984646549759893902710927634808057918571811729822962776509024609326294848965436197819356186308387997300870539712478898500898567407903379941832000086319288757864633829265723967765412621496725277743527046745954137049867585086668585090571352151659899660191204750905758307048049904325526302187565406724851777240102733600036398353929164628142087355719342496868851229257083970210803074121833106709423425999016177278579690656311117999851487034805258438544376503338484733669165581775522263093982115513251046999513961571490982489414243438384337720166960878646049749577416933964665010233105312402057169615083032024663749425694321012125301468992340565263774801455392486519923102480362819559717967471296656132793071200771329204524160581464652330348217342958450731469284122756614525780381877357472662261890165334926989564966099070055455566744510062614717403218085135011596014986107618631808294061586333071591782422759373891373851523682290136130426055111058737278354198534378883894568127284795915806344494948302019303763582074977857815470995342035420739504528442691678556795965457768866470329651184644045214068456985888159028099039279821519787715981598526873577412355743582405238048835007891393967442393263975242419936066915763180565157775201185390933403162796362460475001131724715831025565588075925365957984697936582281270589729506138350787370499394895512138894942542158133486963694748770700406242557925797243211772895971596873159559476926751775233748229867554979400863782252045440800685378636595131676683106738614912277109972815551385566926837465978348033001117309592347538581600698272346243355789885501877979946094597076798971455097925208473885741034480301205785468008587327132569196208161657120058340432587407653080340864810479795523473504571833067693453104913168749411627695861902697275206014790269045621058453924759635944911793241470432078424884420578510273668536397008350448710795546146635833114468446922808988694656116214978849511049465252882760697231257388918666569983723601689035300708480627501603821644362991312350718180362850001449942897619859299703236665506954476291189700435988678930294731316678653918010139050667674094316269969254886830777361319570181551605949948753714632130534660850659199749733765523677254304471539467082006395727243798890673592826671753901635642226588387402247199763571649605104664432217713707602088501693103619667997062690291130439022910777807299873854240690555829436068788112911468179196456219274229275419202032289676326198289355202618760001909632960401050852531051087754712661304649698032337509882810803189579135755042176275275314344745085829297188726030626831019684025575585933169566426339623270952138899560649320983179362065698945547654706612593347334986370113689612635452061131316099135510754411571483144533794948085739394228240468744423114058481685126266394792586010641481257509082028174996663222261162298863727525884527409847148308323882058324611063439383503198420722308078582834425554452134440762158911897629162414796830556284475051431719239176593610399269780508598132669421457488094158463190033201077755055806830649459762892805897221111013468803509723410939554394673418864824692290967321869051361574516272920375442897581565332980250531461211584824113802424144511498323046083384931364946976668565852012125686701864501674100848936453840306851607697209661285250155665663861767251108032764186791877419380311221908229713686919123482617737780939425495070093998281152038479662357730403842794003059166587439129602930635864813319133697955213430918143605569649170407660576013642572483495031086158299955707911998042654766313516136709164761486532173360029599361502150000716153510095078076956454681479139847349748527610040996267451850785837136940685334237215641663047378223383034693291273167593790839688708160962434202385492416378241246843865698042170258893796471761936082490373642965203788260926777170596007492682045358186042581658989050779540968386024397650711624323755758817856885229488719539392917654435829795489508259980963433097512807114604165429672622020168930735951430684069103134728126050949115929200548413932367282702936756367650496047784801645744976513517696963756493371066980347925955799969608370393998932341494334978563207136040674472792601968796316667019743194069035316513735613430119707387505367683993630913227285365744808089352458422863709833966417544192595985839670481005766738844655750292561333935087917718904219063522760362726925430100758254325476080475005186237952293868086436662256259420651151856448028000215823675512104414603539052246297343658377587122043256625234215898709452206420930757383730304712639630267459970616113600061704938955545527056557814195696095753307403924990446663556538181445421656682399816794941503449401044588115971334738753885735131751667545785249632039673396759814837967646946096929316674811463009718650290955018127955313081032643633415584055640767137933093155243739926934642915175406853641608326033863455024069857879571345970676703477892141854778526560747012010344322546744519553337735846358985012268366916632989855254697171152993496346845441035696384969968956029754705666913137836216434412844361300438595164945478334361398375652666061874823393636954421902910217292296970839403020380831177899740383559508578220820017310514072089674280621885697112063861773301657045421930885657118377215565691554892561297332074556849462062619434492669284752637249211652553010878321304854765063525032907624347989513810920342485595831996736552337895617188612178069406617964127195564086454262656281770744581899848314517457255680463092520696860822255389565103288640132758318793115259371596222924233803078733158739484994761756681500048233996573952076606376463266898100090234475740129327396854446676615447112311530595318234473253331108188463987647544438951580810386917645433574910289936710715353955493792077117325631842032195280677667269818001404851785040453884790720245329049198812684827710516281929371761229703460287811336062095932094761922059045862933942605259666387867882845286097487599827832287488166135917579333776462657546360036043912841013420190891166448021862700503087967090606470648693797705175869883869177982759217659461509461207486546771095939127823705104080537604854703359793739013747386492828538494298653088069755465736464840733850891531405688906765455096683877654310761912565311289306897004781911718947415473529107038734518138833328009778699563176487097643378807342298493621564929388933493985808943263510019508548246760868418554096559973301832225628420057022523635136546735549918432704171256485824635507037338683278528895067145115128859254479305793033909250239919722195512622795639355400318810394722527990458443485807198540621145864319926079201391334716844339628786645006222882991252812087455539179385988390695813955702385705340333907674281535933696524965553053742841884373251019405892671719393697647711101960900217114931471030916421050613309124226743560658263942408573825172716171684249212341119897232415149475428347331060102063427765956236814059617182711869786274724390279664527083602613945993371284374837151887387130746317184743103578280623824777660130711147383389808163903073086700486000469914702226842367022718357155448929775860158705327500587300238752773184774133137567827481193156925409034775175780362897226783717644253764958613631421738272225775689542787365233523563129238290347812765392658364282066734526926404082940756144394438542734002653262460366650325121546127193182163842482135626946087171316807365487116452541078154623202589753892789604217434742907561735197779295976425655850916667377778780004929705747031475644926155972246144217190987518004463740608296156969823876758446656403283861358725983256792912374132435881784805647612909951674923024833317992383072771727495959731007957722509087249875375257062795857758884812587678835562367855568689641821491351797994272156885388206137808358181167919321200559748097599834784923645249855096398947551550283485279812708129748086692816628295471599664243183190574231254815639799096701393079646703632245817639714455429231398752165175891548091561006541228667506453082250967038582889215205419829398738228218198985341516144145137708802818891361381603724199327118844385245401242063984412094149984571186122214613580148567766421906301498426225579523092039235383062357279321827355318781404282095955830730311382391347479570273830204499987165471726296037246389950579830270743820013362367801422469494894044067673110108838789210671062498433724834609337998612095939396414648321578676349637420944383924416953093604278747549898966423885129933055178652638959853577678299276755668324255240051340754228164010752462537174966480386893550769680220707168682820006511726860387013206601245965344014250773316803729549991724491363576881132811247266377652838804381073376348575852531082758292882893198497237409442756170620057648033654385016292898213873952940066461318362979286050253119605719506847592424606883688056331133011222295976681517836167925566930960432024388216704701114661649363854451932433346041003689316839072221922945877531952762757039849457453886584111984846336252709963809849947603532917950979963303159645544786264807998502524167457790926617069050797616418089659475376301966254092851404850846776463773038867726437912027858581066567138229806323434731152853245775391914951123725884711506342792157481002835429255408626439377933220606147593127483048618191534191891048126100959731611274381275944382260815208015781283529112862037248775367439723154799857939239290265708701995611278444444220347153368754729031735137397724200727780893651894292215350839492347833502296175631629815829080464180106494484858646076627411169152398295235788312677140495410541226991223119059768749113901190964004360271095883840342382506815001014208048445159198379167840883847776395863306898663234471803995104247468575781032791994884189251042909041691301160992478233991589296374361203623065911445911000804642145584586099443218072326010624693955022600954708652694417966500459057741703792316633176405215729200550915043043157413541954338632347947851731427490032804338351127412627944651686370260247507191711409989159861325967205357006654430418799609477394956817421288368774314152777694891530577465720285865755770915020597164145072314709998454954279412306335129169648232026911084921375094845918295654276419234585966266595622821393087961864348247967552049996975291583377595675406724758930493003550994229769784809143290887316182095979086019834148447361048143237617211861743956432867971026812696765671984591586870196808560155588044248022061644055069687547741999296284301018525377505080904168068079177533944682329383802093406793100116391637764751652801087379123613721296673502794803127460945046402394487696920659864217131720885646481632744377664067988277514547390463261308228700547189021752013152419158651504629749807997691840054122387775082068725761580835505166779596615546123816284223728197362010976421968878556802768729613154364292719213385822694103649900246698642530800532673631395269295653439761771009736294192456918430501216522176934460296081706750177227964302096644666649733934733946200203011798912188990456682018349204325559230541770455597601426579645498279013538266231973519958813361591746061991487727623916796546991446429773894493492707761188274751307735886355785389368985488849675587414715874151966238883319858608623103108815909985380085429171463975489115954156518623126650529021582831054328535466888985594455028746639793322644586117261961146285058510227819821857535648218247281269530537233690429899921450971177905424621137326932942102319928663145100328982970058273904787694719989503147922226417950431612040318509986119696169392926530971202889582465589431706179410073815873284397395605901325874742461023499819019797633832026369064061292804721971828679532892957063482211653048309714381143608453108876129919919908516312094566506026805498254660477711302704626089356368781462936284477386495804642953669209331694426707127531149003136520814203637025925472271440342455956892941830554473627647169830756123802456393640267649320351063331114001134877238251619827815597309755724744266205490442716352990608902093546798250818503147399767236365300072252684049622105581316663332248787518643661039678695611095277269388777700512340115935575327900869152763954924456488263511279783210492676625061853193859248919814576956797552936376548707549931955444605977022337759469484804110388132302638782755035074428077312404772230585465363764805547681531838844901673380312994464163287956225706118291060648251417283601761924028892105494082258230328471749740087779831156717921662085226043387327773369894527985362401340095823964552140503652707909181762564029791775673637316538973951939206460522897016344992106625467190162755867594358448231103770341147533484329014349522843567195578982084025099938843402579404226539717769745752823240682741992747229132500374227109716133475166056196932118929892915512383839286381299670840947570389483017625430303014403986726781053176159829854472182118834261898703872566794780512421042329141961365434433285993636194189487944358845971017807389984694026179133848438327263139538801926324678365475411990528179357675444911971203316309125583898778823092792503832242345111979638875836759717564562615851618419620218656601137200380730817638683113912221747274337283393433413757856241485696940436717188101185327241160442352483393028811296766228129715211722649110843227572878044983615215012297791233625828366612998463900459959074271211242496371682556711454575265103021775513261019351894114528791957721450629692033500877755796660365438540728961280600923595215034905735722358391938809064165689150993927838240780087707808916344505617757235544518522287649921950744127039716541515841047746270816193948297561103771289604585684248437758991916911804113853046928339922378005624795780363566389052237908885653435308172082329412383511380161257688785773690013468030738657280221565884611033713193893179893879716727549503454269879246027323610347807102301705223931087834458301170176690477044362142273046371632340305218309096834172172541222898593641901058732948737947932965407921092924173560334678883221464258074664876920375219096378431542319190680515919222776302019851038340009934902651830416837973842693906974536370751033452787426639572555352581724658842645923702548896289215352915187552912585287730173978266680179713672768325425644682159022194176924740070755322646571363404144608659907105485448107520195013306647242668801481020413537966093406668903718968060454838990998612359514069067712365321084244078652507305706514874235393058143481653506964547975839164057846868963757687556613260585568099131350598895413658754948189935203134927957654359350684712969009602901510310168808742187490016327545012718828671029564579715805772282070665583329774017882024938953205037257218010551770683582140009735813942702748204400177406358026106533025618204194227446404258832966159144308986189405229820261529537538094411289971914207430644109040259495319229585143162218856801360828765776708492051016048391024529431306280781803323359667456800038055838758006791105184181162791130139333685291155288730428621677552164249228434024095102002661291838962687002413944652027668656617536638502699127216184061467740309653811520301151935310427921833729375955023713669147351239053189608476073852618235993286632302011039476289696012681103638813238492341389294290397187605732818589035826535390767573068298602558475123595005892586551423353540583948647140427934087108034527599568029223794494052978974712898116832028364460250305508999876427209791747777837911125845120632564569155712890491274610041821061409420260944029434150219585595232034408821714787316680107150574463588142615254466829048279567792032913939877203659915188713366992022833269553941529718394662961042291003330925299080055893767560125085290407506443558299593672161138764516796513053388986686202674077761302826916699074025303944487049848817092601363188298819729577312542206077272207874834848029769922490311622396906838438299786036273602866069192585768065343980978129723455276271020302179323701139345485873039033767439248455268438101988956625937674568428999686527546715160085232182217459631802098813856654535315282841019563763473486696670089087425076766873514154031669979553293810536772063599582414353242068128382945115325786056915154485121197358544575006123265298692170798871138131186011429178373538627247225900740656811337428787964557478418214004765699503520680608924683050419523706553111747178619469038592684318721212090663433005642317502439069768946780811221157117924899405777461485568779839187896115274060610843322685033132527521795309852953004353588851751713392026088104509314984080931081459606594237855155242073051044962299891888646802823562682116588865020917729510881777921148627984627847672881855604988156306799829600319472694952834708593788181853923381227742424325422708742844027209330711606906000233106735495105209416678701305656671720933733672222139531938489712685580645372032453166674792141594888703974345144440933425790304525068656239329825016987512936272251760257761069939596398295644132727591515367618168120359268439685154737824183072340950869251469267464909893857412772794509313072035487621161456932951597784300413864888936786457554922481219923577410605093451528109991256291881249480270553424099335043576507544536720890536907436087702496871051667940975987465399626087161845651494225766596237174031610174413551088841888797904753350814243371172437906902701000089910645542223040859401635451567987988465839910362883330844964158443186911354220645337285138998363638495066510395508628504373417385887118435677664423368413725716734258696052646454160650695576488915855158785014539532799873437974933967268983598879405691505867535301127688747790425830946619908937617609489067034206317759970581205288365380472147865297598662443402957184458825893180504532853098533214726664048629436968611246598964080544409823070423090237125770506743663347333993566964017313857646426637467396375870904427053174609491950922490988817563473862353034830194986179087681048205083733881595317371071689075375119634821945947076004723867610168481580054700257954948328013852700075697390292693914741501361845053774522356069881846281427704690800361407723701889926455655354044821064262620349369872113665357784939613885773965955455238701278105390028459161994295898478983426679280396667912953255231175678696728746826071894520816749025098035634217858800768203166483862086978318424412146857662187946426259791800582630394781956980284599526022330246900850648375828600655488072219746191600786278708456214281227942527342260292440130819456322199726627177994605381708000838985210759637978701532592327504216642569702331552335204048722979759598687285956778087865429522866428499410947127631124429593802936580268022524783669469429983631264417680974281063822651294565193306488345758355503384370032329061484307437986491107343153994376954318141739318507677238982888968263525134008827418476422514388721966768413943635345804403782438790528218227365025936696474969851859532692004391833760160786461083044787458837452773947682360642548226341719372118900436451818300913523314803452909837047291908951573638911254814983461361167461099693387077836087942214253626559646433809223681782492552734394776169709182246498072780315545218696634920766426150777820486168491891920636605482475136628081871219647770285902612539469708465906191976558451223176838007538151641436237177182167109685837771065589603146484323321131794619281165749673364306052351524316129114929722757517225355259151358257216126255894527812753040807030181052492820013161104059535089662121931395154492620421080325186952417729437403225162894951382380640466143513281763740484456063519161403130037631452448169858276234019087729854773027383824894803294599499967261960565136471358492620974471247779924926787202059797593573195689852154841690721378849728395322431850505891830921563276405698811152688623642739201015731275990522296530656289601582435901223931568824628366871006581797473323566234034853375131322530554952476339133814392066021047820274593010026913085986418969157260860618318111734096393296491368833686527571711357238136834506886111199482307769664935286817946478900478617093344926463102900601365194923306146823300961481556158827107750896288682967589216598705791568552413220766234636757317979809493704942817072179469992483502030688479264129612396430087779531926757306435656841144960228881402421675625992247926186854761906258044661250109145088715053614435101252724473307042712625181500622884604265685693612790275085273052758162406892587156500907636054912145251852900363491736020664974908835178961097047490672608114574019320617941519039378177818412265289670780712873454956610979188356253461569067807807987124142455926297948498988538790524077710551291061715077807032346948343374191334140713355626407222962527413928276767153985419652681460210426483328468846657831104423130545598220667398900603136166848416291563666148582266586218727165731840381224200251454217324633186019146439418253509632063154099094040037440367144039073441315766028596263755470967462285592624912442986526304470914985143064929813898128690086941869552536113162839714893432055293839367807483261120374000031605178048408161812315376968921410033498348350131057828586465716476610389227913695950127242749074287021036937000111683275283444910514889665748973504707599858163419109178532940042273761281116112762548061528794659433079569288798125512213381321514460909323027597600328522811025950504522557433752277999415799712065617373865653261482790856186481322068931632372566462723789503385449535307146080487116708119852087232533829446298363697026047748516063941392985593817617440258559519142801317858409894712820886656663190382023707054674814986084250598254955651120624720243209076748732242620576891574666004857985436321577959922159413921827547661140614646628854932349053753058971939124364728097165997583687765641154443780284924330991725249316417159948979831007532325900392334628632910753736152856418728307101124896132809986373716193691641089364422606883828151610373958182244868753772917090928776649050550467772355295991901619511207180857195082881619813502119078629825358479100177891550805119079036809682424024107832314331655249944268741001907257443886812537720087732533289686819107711847291417288194694598914853720847048179111807304297737459227412079675394106105182764499941725946969523612434016662645076986945692911878920489842202699714736098336755107059528918591724305775037011057743613003042132393771545007359949583705323313991329841154427794729929732223497993611892540108475833677077196484889163501120654313612524605225703954821066040002470003018787878089870148003018952525227626507105354121260408918384142840902717122271981615053626112322824803457319700765859012093300822437198878624362140215196140855608003829398435839284911365989227551914174749529785555759701794504578251586413784297140289362122988937140373344853961285239769678654172668332796020374261300762747086801357470191178736123118984984068836076973149521790900224445920908974234229304426173701383503170202206443460613795384541384606578525624840094420401293497068572680608489262060431199564793345956774214411368627528751701879548327250729052182346039166184601611155631497015442563758528560363530780124322565360730168788546065402932361488847481076005735319976214705726237481503077148021013808599983375544527138082976699899896742837492286621279468251976166680134656306588536849016754308929321846651954076378210974594384940885077980414456114006323239314718294054068874138141475109825715986076787135564518848674534660224150319151556723212820677008656268086371159352425539080691964764019593054618595563817146301536901167147011552134477005315341604511613854252436068942726559382059236609507262851936843327832479470906131021027116806032195315044810166785682268695294394319587071131722367581615644562584835636009303620985745483707846027245855864268126139697194654195286090265404239178002455387026661277436631184753672519944456137403146957745522157956941979720889719186065657697743178177365292027479573754716591005573236641262839404082096430920849732040006734809010885909546157816893286278623777632562950691106367602347356467573699015790756730175938534102217363575505572990560450010637928742236065099009025602292070776195416600344061435004178846541646374809378771823201227692681978517183284716371470014526436904882146036315485713011190804313031361151078775719968483743982762042938892036126698734520303834365253439789195962860316075547357834437250392629980757977111302593371276861079373404232892562799044771017946076345072122758055514630425097619400375939666495384459000931281303222197495180606787409785285516123529721926627639515804443095809416823886405084838787849178570922138940958851070305228851627775707995066689767109036782734649374690991409067967671881869199713266560074593914758011247669586207402533214326324645192760855621174114689036017014841244023913018773211634534548506485848295864071379516282883111131235839997730340132054702667095963176060630558852067535486155810355324115133139365002289627660620251402158441594408137354536254415027514710120679831208672602475296312059205982018922033002547268255726357287580626851464698326931784732605383967947859285721041596501828343609372935283658578223802050739864644497891753486654812339144256505941233263249609104120500817868612746586684540715414491093093592682787889667725840276366602065837249406401612765551164735784564514777695309114447805397654510879002802519185320216423602756539112237789725803349046391855932622693717499159969871928139785944812752809263292866832606042472006787312652456780595073690386891813346209103460508976110876662140690369960705994275879125337176912960822100591118727259787814180953239418131874755023958485717392614875460549487540275486899198347615024170909478989083809942228511129540250526341582179912686925284408626042192087033176763754386594301808326056348441038308804231697148703574237391077800307753223620139642732921422978052787328649735974932731891336433739256410213410898030499997396690501227136456380425644199414412677940086994380249592213635254409305162412403572078624815218326211764844671634062153638030830022002227978583477892344898569388641503873195363734403000939468983080484949359334103058788390437206452466381686278975812096355871924872833452977083151891806930736044554687639093514739632877347100404148820047127314839801547402370716104674873415988421793397022529568974300550020261195976481370808029081892497010300832496260743135224203009388560657895397884439769180920283234348549198229846989968487498375773411243443581348938534573209437015212364666044099153893735915207772897212608031618409525623285521005138689107009289842838631405295193682527898210527270384055945620532836267574119951278302426457688160753553926129526092103084007736572186320278728723768194515456974936726447365810126826302571229273591745913984335890759701295562792979818420921110679305036897302127224436771767860226624185276170364512500159428857255923746468172665004394014898497107595863707088677095033139936786516291628256680491133390482845270436572508829032242726109086228043308628950239835016454061389482358188889018097610042148648679491189672663481211872397231228916636402884356229531819346644921406330061032594711460353742871359449701755991705982473799745104238864886002972985599932568671173576293798549486468697939378085470163290300408723258580155814088705776251878691943589705139905225515295442655976137188016101067362883849799722473223578988170414963377463897946478303510569581001128554620070122802649986318474765004946282149047950366399739077048933510599720709856205603209978100593386501229699571074173823678872090154111467565079382468262315430491425711209649276335961808705043755500346231570885045653554830804757136742741334372984556723886896501796708564062605893527160477828464287154429218808392350568274013753098786126080466906211543534101326230862070469244752875604302087018081557722844714594464900284548325839761784125103236248723928633987184628370461520212210752348433881213540757507790174955202483037229458794097108670540404012011147311717490430542836498854079916501872841693987129760288741270917387173299550481464489422667301563664761804943829160389363754645304362499072496837312888960994155323293931714773188941095315516118747241444862674928448546196072342894072089760396164882939950716190945309970495987761758487631448466199000191944151913638085970701653491782102273879177720395866981612756810916341500511862500237977305272517596890014629726966237811170160371155817671835248944427885257516000742592512526050944640010997855377602782640234521312886143922444051872671279478327809603184362304964275977268910400016127451096898710569407849563132443610208133316851000026804887772467607314872406093592907191610075229827250659845845306424488013960280035035528288754473980329003669829251575794896350695861348756802728565201532042802430689370063562952724425501651394507652376453043699086588011199222869527575292224167228536750413932252537259179444111329209998097394009740489825076499730317085130108483444080312869915531112532970549185023751418890732646130371424443051503968119053459885503195355799194680239653200206010747399664752648065424807142514459101246549538727095121087208912790745059307983578784993194624992249223724555565062176227446692211997827842882623265726731141365934407607481721467924707595644710876519065257623118422824858085825220503223210963268428357591598804953716894496089486725187810944132776774164927113676904923746085392637630158148371677407005918634555753408890977142464775386378919424622755843584748932377004478705303374599782400760074260863728637756042707873079644578884266446040909478584298782794220241543016793219141613081569816857670037929951942926702876765789410927924720407907140734829154370100424321606623500595774076603035568579307498419483772993564598065288539327042974607688084563906224688997026511027788545825726228009526479743453233433940309673648225856255091796936143092922417034549929577628740922291457427618644775688479503951265373368300372314501666600402882026464347327073598413206967102633289808802948293400909514821970549792745523519827525345021604720226082926046172708494598604082988943837541743888118999079041907495518534671239445054820506560971644661692360797189926033831693554181126333583247255430903921922181792413157580845446750152039704284957715882364466967598934472902603024349810718287483989726441493944037226052851473261485361092846687584790986477619249472134887806795704506906594783926881376771496815101144724920198928882144813437450191326762573612252370465272461564927639272479172165362198035161216544032322984427108844618868538788131810111381041355143322114176346712126696473048070452953877729538680778690392147901362956648336008560271338199056836511057199728148019640763875931351990688001427334814657178758713448940914077718626373596950941210933490347993346573958458960788377769533886526532106599424174908660272454442418059886247209268112654574131670149918146750600345410449373885638139741797328741635546976428732334211134059303822141125593460356992518105546290199087498497119397744356347143003285736536293435819739187600689996589348608839425641182600037494411640873275497832216121001976560477174509913066256412501151837070619071193983361118580509006013054983916508971284247141853960719097588582926393076461554329626445811157222826687595562699016444960076942465301278503074239083578703703605880571184432635858171462994097606714098443631041407296784354493124339128835879244193256385055451469116490402401157389775967795832920538477745146540093223031687509824512125173844662528116252664559584596601512005826644967827704549790096479094860437838356023836688540408303963162046855603250697006304651381785117500527902823117542493267293328622155529667721406971469080752548337292323053946664706144921143148942922139179195953016373830067175440359977398755919621507374781608551944151271690234987662784163180344870226504306604168898286297187402994343678474593832133761295510651116004366773380520744402317613365942932570192228021269032892191422117351190168380261564315531785198689423785947732736548573336024989261816738352028922646354420949667438806896513507094394717968169319577308684987573989789373710823076159436948396349522750861688675781655658973114523024136659681897245949144348270478730543608078789427098508215202435205935345718497491442956134876872804122387432346454631192034815815532783312771106681147207124151039647916796906582854157880796327168255399685669518163114002644129708920673326308483098931810799018163845251218982693110298444019664260441737534908580007080966128336213744984289586381597251082640773503712810913349889993010503883543304259207350262947360931035248608765109449401766383030117538368222089862542407178186900921783032585101900958169380076843550076234524211368571760725423376439667951676891890245151578896838409784606741959714766463132556023290116406107827700220185034404726988201753890274685106285676768789825828087805471590810565760032581187915715944263096323835692859043855649347869245442536608803790095359882835319699009962959215951051181520421912405411776678232502885527481636041536287154600346226019292265465692136024605735757039576080883011130111206113161343945207044216511138333945952625327796772539542379410062031886334512729601384758896180539307326088934877964021111591774804040697603597062422016555943001435820763246084025233326247786577635182862094961801296821916449215777193203650763245283084075104931894517702551491149920477168242122811225079723357170023122381768915213576642227871112512218233158226894106072696723676117180276424396846233745533276881888674955222848474981407938887853707427784008637595604992219438949126138429049262349504695888207041318470253022120306349237442292745462831697252719607904528839702792788473018195516965599459279211615405706446495515773509048801702350808649305580868778895140788302973198940509341466412635961217414333491200147271234686848800124850784817111333690219507275415783261439168071399126781772324678581409302283113106145164122473308459583224369051335747979771048814569054434413267401119766705196268626102347212465450096312029830650033372839993073232365305962171855082825331584856792750142497190484890604104126274675466359384242864367570714088208582663967542614832023781127856853113729495419988127594267680915129713144314659630417387378643434772992627648285559368451248187866440506027123152052676661465063514061080727336813328281407313110337985398588774471217050314009360073016061053248823003257175305689933900835736625607533291435094797149951134122350292058546321702431265684654363791059991522486475293049166257386091948380472511089311011903875329107977205935902720089930106079262910625926656100811018939101102603972694569727054979928798448364268244189144035783691282855039331161148399182740307787509530419982537709502493632189834179939686464046803846073425806331997916971281312475877928885092327605756473184836444654583319242445025522065604683269584267331044829580199391400206969850513467625859023394235188887202915822673018645116345291587140121695529428781171355495676372420153246116173123783191519460252078096232791521715528625719035227323169546836272101186103653659738543372747729904763354117313460001682439185039092185194944254492475434149262325001699032681251492894903802195677360610681370618412793906210763605090999985163695237123014723344292926647923459580508084937516155191807059123619659677353778921331348798236774958721348727194600843985985523950503599258250101291199056556519966619044087334688582034744309695542538299392516143040065421316977533585015450406516680257252499539072545130767061576271856595548185710986481495215852236915723066802979984531723174254786710516180140711098184948208361877852326581258454799160310838593626293022281036986661009061579146651086352503916450859940002311685789975071158468553315087235224127598492372035553696720197824339273273098820719346025897529918874433327477555844273590724840623653943259676430719072724464654389571006843525626515026076193313201823187166723232192425694309063780864636442324827894134252058540849962802895722237360625939325049478973028393896787945161006269061719207766694735731098751826481178582460041019662222266333203319918985537797297860337095668996871157844657577889840467574125481037446364859994482769482878584284037434805850777122030644772447080535929279716325367487333376286651098014013806734029170743904279130340811699435669850903372889556966831518204751207846879670721805806184598794646121916227791028699526943237852479172412122080492888819904375462606907880348147526420197956834368791037102183384008202687113219222104068086631758512139413096504404696997671121425040024241519253004973895857183426881195965297858688236648962760275583323011598125925552229639523725048991083143873579627874515997822014052391387253776918735178280856773267234950848371990953487083021058013292502968980542415037886484953799412763224963934821097040837967950076574365020879402358798179487620494355581735548501573090958339218272621159744292404679255588441979603401362601123619528649423144169375593887749186859016147266998051743990014189848107587094455078457212053887124525930180694273982469535319663732969267856711682121298762699952164720162526481961267043219472544827292654011090350425126933360264749693900084461273372438316031898744276252302614866916275138474425910580152813478352091434407583731163737621638262871399461721718228782461121013487959258233542926967537293671013963480153420497662599650342543658694625624277072257273994971939356474468507846547107350559749849723678727894739529442870606509059733246619956273064117720873701862499390783542327680428743246735746810548767509609240588042614448651753750741036725358479525676133253948714762462989545009083391207418331552169940782625119804439747832120795786475245889372866146731646764168885752515811542090541726698065533775883223488980362489440829019148896521678247246993568441926184084289487430584657521146909078842275722222038830011381695541373534441355699947904712709452031855166722453022646460019322011605595927281120661060883498904417665550975031194979218033884300231198098136645635961583830680050025553477827876676840845939067436895297019986246591923583783286910192575151076314106589982635019021321500248307146399288364392698718324992502644863935466941801206209983870496723206649214091302027460995782467295742170468178328629417554306230988153305556711947750205171094693374699717459045652606603372010924788029009682327604396262826113091574600414646462016981795918436043295612510532739367652681473656316399834750861459650803998624740436517772226316458478617737681795192212801704552867943344752888122682471669073142532078359628666028789543004877128629425642209919997087127527844690386817939913164791941105606530433864459127955325612688859008326064115869161136606588216323433023408358135935872072737136752826148635592340038307554457393828270630815770432360057483264569536423069229701066248443017556621648495119363599499542833031857980200933750475980231880344624441751513312203957350953089889209000080172760379731529679707194349786236928367821402216679057461116010067506002049499823075906874948548340428079707709755124754047483832971893480248568908421621266142668617859033255327400256615031921606499417945898755847552301161863246413525253354212719143051341706164134292481368460519482618741671246894499778904390731659033675316235780665155869188217673056181655353441013201874742227953295634313253215612937769803170353555610870067055403953827857817854264722146019999783483877425986016074732353383557401380634550604551248701759259214698573609153451312993032969506792548415766469437222214106882687191223617683833893265358594294632491273512977975088722966005531013563219844587685707772802513719341259974548222148583692211097245626452730628948451030993268163819002143041388105477961166616950286394873684547453701311595458804712109137295616949023605765853712616817168890324571762490909642062749551157290723429277348181720661230775231730422065993208002931244314615547304607566772671239012184132129523427010922279176290951618584118404791298940534166266571019726532678865629335382421699773625845989875592988883535749076597458608451025450698289885218480656760062035261980838357336843738029849762238421802187513215187911858236721266318059378468217111820739823463896781316265096254200273610331455848627530272837445390226011914841740792225084112966011351560270451336962262038933855525619006333588046804627319577950522583417133331097200368588900976771250274684238891390345137616835540683519052946975933177586711563185993850599235560028021918209254819300855359969074616228462864063860300811520439368177187341158021589069078044362755039964884489608522174849465211768923128461985326592493897224906940553747521793491292715117168736368359178393301230058186994434444734104204958030011084554588708224454165230246781161153228296729352248761292803435868746490206366135194541940360094470238343912168132970891054118270563621430674361299712313397941596449260526510291292662021888120744619409197201850277385461413783958161563380637117588910899210307591555513123908737323201779691118221666171720456530103137251522614091030801444000433620069195395633369807359265994085352912850834725969016330519355684143562353376269895613667345842129426047816206987369729211950660761313331844355076688919067606794408309235467602883021025217069831185817796907681851397652368588551695225972353601141170489688442881972408092030473083694561304086322048490443929700111313113643033340186009586775184827885178128466990466306129966509597322691740499406732711129870672603820063614875118424100651321533084419722694988808840300843567547896193067103774157288109098530004077262552155533854292333457305919837320837591905302190129260555562262694555244302551561095026531592277213250426996600466959914593180157370924868870773756110945540412776757158864780703206340320006242467528746591143222638780920557685383344773137499253876005928487674934913598901719234433326454076272448774166154941038933957824562352130528679490441334745611834353737617549250354635233456485700234504596286881881534949201695807808540894415900829885158131811368445841216979136923773447846114238593106291603694328180658588937442737907135731268722327203815576029233482191261299709177340494367262066168271530262891063469520492750487743771457330550072558954102183217544476881141822706053753243700235541058820617276629545625705390352177672900111776030430393289642691917709013505953832801668009674017892060379108855364810564989328783202005547905776561026368532936750301465547355304918743611476711639838442258249632997001984156849409953142373132704568202711748260823720921870447391651339172586657435763376838429466258665792009895421317814214212166117525571049362900060161402134568154392579466189681140762522258563819858314054519468620100882507883570389924279398844707964982423368217365649373913997107028870957824354858892983824228474111107228591719953216459574940392569785425621610303553631219226554827201976645358738879693823694260943274785587791413958930626750594676458509702372899627893008541444176188556451839715728872826748748187617697526010248448687080476892756923579806415721531216122664128058741968867467454164848184361810734828009771471114696164429176581319825505212397359077674816774041721584207419984726092710682652279311160126143894983929324984193301399335056149086625020116171380075398253462802468506808929636017722364146843773203854073945643206325611233410968674635169755883685496432892126471476749405398792938970710618293624517429275384823304656295555317120025896027337191240444670357257650981403924502083700814942133452118569830194978111435754802555303669607585073203772713391105689195053551789261746127058065208046896414115797073754509634515967981769210092517357678349327752526522001519735518274523162014143792607253612036717877899089699459739806637755293897468250975193101960840164727731549000043216358228011561387755521450133353598957596472097248884544650966264863409837806068721127977297551835812439280565137708372307358718205984348181137133559707391566034214212575153695433964226534251947382209687644633571427297778385960076901136485165574020567570773080182288892229160516611704534248252575011710956771609609568483066164264286359005446336919407410995356719258936283245975307694456667839652150819695733681093714144049011016574346036496071624763134337953962926951840988014786156384889077030010898075382337738122931173474775742600072117532905489675919344512041181309042186355780872385781070788724889406701010012545612645559621538526990672474989578855092964029668387820850566891235063582736825440997592309856583870724808920879754941278550780497844130467658859021455831824919274826066906388138504998460332333949677996111791265055509300576193284895662310497725824304644807069991879155056853773276026882936318194252356602248544364446928597867213350339299449631785933061837291829275036009697466237699365900704908833887440552131472307823797048502010110112792865597882872894760104495079354750621494898323885087845797017142898904133105463691986981414259305039939889112830755808968050995445315641975344910374500483817568330377723425571356901989907082530647577058823202756572819565357977774120052098738593415609575966881288161616097056308820592449655258179140803136033334216240442328196427593558090625545450547257389625077532110100888285771960101107162741242146394394692514087350944148742107650901816887756403523350417330769070892089115603249427439375116136398790564212956185737073347774085129488763233673438675422767032795941383733080528123036849340807060133723653504974917782421897350481546680798950131758424488024481324402521806718410886653710883283192972486826529366394778345862615654955024079890551508369453593465051839204380908774903354739987364465449361035494049840297684179974037210210365494713443120434825066479844761510374454135827280856962183431744045324973372126429176486210175130559969425767037450408563048056521730600864625035283009846079740344198190275277274714659984139269855744896309102891334883113709292869591482282404823340758207862347051272345386884722634419905423874171143774512819668742181104237267419780295017342353606987598958561864170387580707133271516245114807068558436942578957525965057957734061760591946756033799682282738734024707588314064788651017900093118583064425551232640122086985811959331162705168647791705395503676174291599969091607591546658204123414135247096559230225256007716275508723352479459626232195977857189681123596024537000681220721312713764141629208692208865239381516162038257795573367679155049480751981897998888928142518129093075395799930416567561296828503017445058348512453369822830730296193004159070476277658871107969621382740405889540704997115778422583801729725982395740901729599404999176395287136293060090543197174690168143996871042550602020497472979371105445234066165213584527964009131583241791283990315678462553470494412543061611306297737596405883876893962700895664935755758185920065740659041720395173044041332241777482363763437524616871115105678402972403277160696035981044266208752619689869175660974197642680196033507319848227541819924665954864416361059431597755042672616175147769909598563831133260976697358082915610774501368321017129477074177502782610065326843279260911314813415332349885517838291843685138247427920232607335121570865219410619690535783589473654690487387874303294680360380184811407571858000441730628949518568212229655209824685152502657179279004101130427400546978144588432925115798690893243157438168622660188657425065034446472076402859553881697881130848263747963459893594627170424723215928346380026538800343216846514619880726243931659136432949192994436766350858712305596396570505042970853624178646959847811379809266649829754733629008510541888175730603341446837593827989334477155990562031618054352698654085622072854216526296978982580928272515918128207694381710692021302675014149274204843328783976314562600298629767394748776766320326286684970605191506791811185582467353051780307058264857100522323285429568816229481831130729219312605351804031632133101218095169498004273504627291436963877425789256081206994843899113583643428102908505013910711368615004872778077824236422612947737404165167754956077145241027922870601377693878071280550615468249945872858640559953602438763506618697170671566641627486211685780355799661417825146894217056745808732621553476811497446522622046590520113169447692309573858892420529884575681679167809470425271656739533732498082964307429689605719026912371394987194373503198394343997967441602650298178528313136766114442807510316647587937916485873807485173647026303721567104061386489289003036316514619959425453135641152981713691759382719823928512744758374546406714460080234647786912504182211887831981105651088331065397809327908904381049730984551330127147348424577471474596577194321085880467117910408638493017379808791407213198569734017532374769342340547964872784434623417983257056633781332226945423813206707092892368203791155205989829550107449448421132789504954918092825215659334907985431656776018897806334383192514674614385455184281231129891645873883110012995674520767570261495154556672807991965343903700827622642053494726473538806347900670195050018126854709186064446220232238663519518402121547369188978433987356472513240531249196782615165095535314747512034920032225248560911804563666778921971323433813890228121899064661968008200408047103563546508374296435911370846718216015403842672894132945514865555445862956497106728253031167854732975577238674867126567846216480135952002258035051045570487412327770634785903057092552429794186399366755163576858139443596255778615502397287888726042138471563705572412820830311528627335186715142597995090021486238707127842139033534543514268946676005523820376278602724897149622544906114768512048881579839878146370501068756239673868711149493299824479280755570270465827518161565628436142086048543656262450459069818123895097478616248107374237517959165320324408587530403430316231646076008815290929173661104650207727030605885203093336370338337582467803202736716745172289296184666263254596298328184028101679769035619469345770361285005288401996637073528704678202558924995809111538303028772318671832680417630878718825862494900311690844600342090286759640811682823681624304078774006348535447172432030189710384109689316110366956454158091877845813450297327290700048731825442613005311046530324382027708662475887187152514820883713235775002400133584070984553152994932505426535054555822546210161855332895735995019946308993797543672201457763694962339887547759447078242738463729966927133321251474681312662409255216333970117222176070655125421214936171090705932659214024605982837007003492213581740440779489551710400234064774158469533776328955249819191348838268230560954643970482219571914667959636444737373009780543654131551519570785933640838457539499339347124209348001248258191762098333460544925386856672897534453501047367596377084739903428528402762044818008583369726149460453993573572672256350514490954506906932098138853941337977697791175723343509220994809865959582628843133462626362081221263745374181066569584992897051053432394662125417269872185447215889661621869042101407479076272097790421626812731703374946961780494840682120759836102647644846811953665767702121997176448517207106244500395117823761459520357611636472798656475279673403215642897502554110927047088207695970930341000144282867660961317750343259438194027370465569043964554224983463951761318947731028956002576970079855322289069510818837705335781507341526969323584756160889345464589762987063534821796801444712192852297699291402149233782851583106585991251119167597782957997969880851929519332476702447335665198125520166414890572647899343861403961450239612061899354846710109578822023153009471637016916630048181026808009762816914676490264030970545038244392923849032481954044454608554921927443906421233375640319436763997002549556005428980452003747131523226825983507121161743136592640758844501910584265296076009740683910931705098487479813743580680683320427959529196633972402962995902852049237224815188400657243873409509485946063390205463820177237810730812816583791876987050018617723933450777369311691337217332771331688294213531733310508652869327171595775840230560340663507028402620314698628889292481590706812746068713918379178050764222031170640187200973628369038515985053229763368126658702146260971518468973705904467468002379962586233772638901459863703691271091696891545462796423489152538760196814950169874236072069527709150923822426547533085543965501982238792119095641528535187031177432982244562727738048924293867979144577083633778508387501982246089381885572486397510362061810862853982787675334168295941957179813159712410600529146426585708584976500467046832321651030129763731224312976206064903198279637312878962616910263937801241052694115596670040169754755689794681175284441080435403481477319413154239253553218488247433516029120505752314084848931086617946111183752863998620197094902549955171515657190687932803376351796703479178859670789331140535842907171758784916115604701867275824699085827238504138539913053995165745879692480165697433324877646477114522097275446518077155622937410176783262188912044941791860157522363105572666532654531445785795559409530819499761521826369347145797445589682595738471642518453721928525523832618828559074665491427381767438957534592238529689380324487159311884851466037488346379152778041063956715911397645811213766914294391915439092897961939712930762473930849736219461670707517924556963352579596714629384811969756016020832983085305677015082281389712585426718937306235701182042523972288923408542806819730494543052905890323046048954461797810958815377874327982679442355603427543554174793001569386441814982510472861931019638531857226515894237732648278760323372228323640502197571721588469307525150435544318724002935314263200424496548631997705855332173581680228260702025861681703927810252483943622287797382850143114403081521994259577711461941387854672729450616817602874224139312564558539366249591852625786439954037884042686008302008377060711071650506656519269000786469338192505464819695661944114683104688329024984078214899012614992750759427446657034346334878753569506124649896548030364283801272521747123774432201031980133058100258070051312210554366045460984978581807783007320251613085017122442243036201767806138149998817046924484490057166271808868317158135648645995673523935731401199536139945149499179445074867401807195642610185252558765236151197041620772193459294247058739271882105223042570812223819426105034786627256415650501457048482428046036732150675241982598241999496247574959007936794813994793251110886870455550055103515199703096247514457414738426486826308114645343644563669555146882706784899758743599210791082326719689114897599708858472105670370713537187252396015016182908340662555011780662570351317655910508571024013980597399110129627531898155085147184580333579778654730895063101027507063806183067853622143513505629326169836664572952198731203585389900975960699757682574907471777558941673532280269449638574404076958158875599835177872574284117522674104637753283126384667305176330366985278894727108389055239537879176078737489065884243287548436537841016072127233057708926838984045899364764068142386962380030023103577685075186443447962905491195017462041426417679331180371205306867453558362843232229659348623515663676713386764551269902686781187558290142042390610895659008389970800772318189740307269729372418645944045482243215082771563221653926503377848588688549729167934194779731744378875667425479796729759716388689241956460356084791442497947758673438617339416445391559837573194647772741898741228800207705208245437890572047978975855147914181803538527230638052589200654148022065626672620457278281225317713433356393652932741525501242007554858523083846868725706722934326570423424325783524078915971180080255393634290539739692446621645410230433208611015286389694006848214764210438232354481346968216546552484532985545653606004840293449146656373778029723668148342592931783024181132742955274215679717522383508968318270101967441012844665447581818128237218196623331053021472334152097133574947683463193517477210459233004644652819402172711510426761998708849849750818505892778494660282399131574786458282316413429320233351594032222226617158411738341521111771532013411940905769947842028381223962593267807712383968326789781016902995982475620741293538693412442384255119682917476938781287846970850281349516362494983747209416386009788983950796331520611245969927920816567294025713078949703517356257425431698409336943481565707071533275524131676546763477176088452106756260720255539012835954993488155046069369688708950428813945315491672566296506390999341093952168674353338785937377537722557036042575727238401732057442627275334156896944650059164977365604664202406260575243843235982672624240321265755324110755080259050900208333680572863034058039354848922437427166511704459837925851927730470516098979012533121696294918249878394141469545391668658858354057606387046957675703266220060828013343902516871398348397996822975665508627148093719776479013954085220325804874269179514810673962264540366935302889397200229205217363344466975891215672425425286210739646979169090872479831956556097550576248008730518133384472211493961707199562865536284218342255276609763577025961710454945530625950955798336588590314670559370582008707808362066698319978677001072859173991025227268194128197849270781817657101422795639607112298323271341550266776963966788847637662847537653248001761198343800422064446144584013397261193137089435847048769227766130626008067139735995756477888281620362216730741108511014260620886984284202655293630821983395629395586744760624996350493497627190277827113606184144132448916685594330821367646616366037983308622115300362980368712373115151156076003332343234224885641706366644320923088761858006381286307133784383518810105988551240263424090215275931723432620966555036626745570353860807116223538899090131748054448216037092181380026325678209110906595884594634259400863894756824568500213173421193988081873111460976824378427542923841873189951340960396498902413024210302614068122744600664112476837604113780381294710563691858766215149622330075129879360228898728395910803174894333949745307607130112670832553595362269669965807200820456239465648553340446902015500759913173148557000295788637457852008058411068779634227707967300500905129817848917372225247792158668281720896411454264409570225011502239147832100244094932649307097114100869282223213518012327795707409361184341125844646845652839252296577826302848093964036599123927158900798969243100151097588857708509920805416010149442110664052218197288529562682794493231254520487368011322967747397431343192720194141931330267614193666960722970982186370992829173728245619307047100311410162944856531226328661822103153660378958921393906714900925856088494339421706894979475082844253271455364681975053181548336028448931930325715339742936445534962446205629252232937185146160450205772539747051726577144554082976862858071306670113693956671563894007586368215541797690438633988015294878980003159457978004113358812163841990656480536581281188276524281289304417869929342369919963913797711944826805189924515456457173819290715664971168270179346966488398120471651569367274196248635704099707954960695969232563261066356307670426765424484251062530481731441807027575574313670644351769539309139621553742314192220764290955870798177767108903547309744045887032355896968144859499243392395165280607856142766158957979919278012404094726591485222368427545273479671905443238712995452584512420966554371822881488624772785111816515997334597307882313557786280227157818440684815282558201482409494650359007149165912846157596739941360332239252978012703166899469739221143269869724276044484858902012383668995495044016108180045586091153542461629869016496848277673539579426741708242168388717291658735735421095726129487685136036681265709770696791749701956633315288437132716884334854013194043607041919817655111227214984570003901030525575101198816469222407057204296791949459364886304017833235143076300820381531251245647318144524299421759334346437023252541312563743544369872747601283366498191714035565718235390490926365050425668311283298417801686571402283650138122811598772263819126688915796174462637203124675137245862374105295619565473524740357839161317947607033517144990630066196038750052771581391179021769217044844947684252682774922716123880193357491197286160135878506213006780469369987308935982280854943685514939820969934862022302834278909185301120243443217230201695687969063124161212465411076586434391511178110272279286076632546433403693817974893908904890316826873568608953830562637866941251609404692652522375498588293587241276769526767649586542040974360992626934971525279837397426866168175223017168484287454120599986465002598692927985373145700428934709086213125858675149216090035777124594697235599211490624911949548809168424647974760677607134682882754279465427239627328033271227691390017706870246146914402888329163170132881107017227246415361931673900600147949575850347045707327514245588701736175184439365770624520156548321513492793112603907673541993229785903970231134768077313883979617836983307306099760913393501472922267245053165216109969113605278007602943354181437191748906396838667594054070901542298992230544574997964649679706006001172267649905448919118811031334929048926104781925922205553969423409232883974176051165819780083867320790212987398451568618118714028071205261794399415070748005516146577676944527013081223201943109962906604644208702797600829457621810928266689731857449047681264484358417816050767653698915322064533037658145590625909720234173890707417988532479871220612119325326788928120901797307389123040884277589911770461031032939353689437478580849269933273669506664464158393252617664902519787570921117452745103758955972137677925974717173504574781961002028929296942481768642190321819939477244060358190924504335540025111660107930515141585919784179447274472615459931893509585124089696101517404420704961375153194446115529805350539452968678282689978755357326148468528241322608737635419224975036360151136493308108712884287824827606384117516810804833808386124717854469253713355840290273538900936346555743901824425387764062235045498135342910422409266543492866164315993291438714211091786426239427094346442527724558708837188803159060964397120453254082844321656480941044659907001847172787669703376013667455754537647788839224482088585553401352389283269509341532335171436429585638295454337727830470871125967007770831559537730185908327046871151371746616279371102294758691483434904169925697940664299636426162344173921115820679132820738446646843062070803009819236173416433587600607203507218329612699231922996847156427194274413340479066647126070194835565537754494635094885716334224925978389358880630772590494543336975833378278191051421798728040435135338735335919394555595322851781312599495366677167256556414066332168698351631681461894279581823606879009806186030370436665435354637752692593819744489110616141799781867924163495828075509476299144994027252202970051670857945583879664789379411193052905775095400722756876953706864042223444586610959263195377944778132705868108045059554405592097210438847011901694473254741888566174144606268371949738685609364076484374868337396718649185949359759618501144659247787166337218102869302513881216383290494281513849580776455024466390923134004257383774933345355617123348890396202995430422878228274775124575497713838248752968491789313949921227441027523939266228671922017189237055899362169429789488897338107600016669140331874984102570683122249363376199010140626767079020200157915913966638772276481086927352560021303541419647206684079493517983217455898246270107905514813800434980031261222591267716220076556613804316739120272163128517501597045226322578465496041576696456122101584824682038926092774395386182710448510588730414098769207418283514828971650602966844114522863335915284104792187493942476964797270967113938035043104775103916594490208429344176769421818434961250883174702684676429804696394039760360328019641091201151190904079323364761414069349817835409233169776367109107859442087873260212555395100526262220801158856250918523875188827074602087387842397767291792672061961207156326547577156818230896575648965549853109500022406796500445390378427975030624837328614282806129203948841554822115410497064512047927428579645620800726612294416369459053545463049733559662308738766845546042873744887822121397550178786226055601458975035661723930297679971736578840455315085907060635894569487251340507664800060065871674914776893881445908999487907815897144534635746257339130229420966231772834517747402045275744524100513290420960142570253441235700883502413369411054539450083123002670006201662263625111444399981483968823445465498129645263402984935984099806214191434409499490107007576284384247175786303688240624872008483934543803045629825822479794373193339922933721796476781620914328273017002982862260618188644958463993504531793561067581318253731603439823135805281002435651012328630939704743745539445899128461413314912542122810771986284886424922714131212086951222882345899820119680281549202217109250896398684605598029420769716572111845139806691962993425817514605872484376971648903654811646956363101774983845052853877555615322841085254778873289074913700195371583445825634433798649008633157028906646603032741761974544130742469857682746893061234267857689733356580944362651732358724948349272796076354980342119473376180314743252981515191915915147049799453537925277825805139149931270047637807233281691071388366753125348526529140783535366204113049072210151558818084230984800473012843122788687492559769446173533089199219848206260208893238318451239494651029544429548505440649412772199844633912621935253010161411898309910822612246724084157501714565249687393697241746319302215009240772227336833461499079779760035038921258045316430732259592104158391966859704326558864539328075847533351901808638335463491746408700513962702970154935362260151021516951410139599674536966340632207392119699424451317133843749210950014998217569821033913971716539394289010228755479332717786838702311147318229734149304570281227754947454433962370182892110241439820753752398449454125136091483083634460256556262513801543278737505329178338397183030285017214771132126836607673568090066864361733344177884940896447125488955183692921848899764048478955105273351935464679286319083017278796491875245101740139672089307995530454135723048814506597536332988582776129577105869261549848722595203405038757703132634987694676435959100063373201806237752150024493352505860475179956016529231858424720256765460768095360307581305657250369093987740024673304959484423641384595745696507778898568596906936634795736003165499048512032088027533840916334425854461653722898422327334359265768487333745233357785982993701513531343270740390384068980829341039235808291136839633724007072313270106775278179967927192217732902954277107830968225396217954273237179408410644939757852753497474045397752027263725655211361279358632033147180968577843212898177924489053536240069679439345366474196918493306203427934741307306750913397133515782699512887341978801903200532935738050226691792554961754030978304517387099256386617832888199879692211562686239987357218695857975221092827144163719474436477619673678891790633295805287340895841607827474886446972063757568284166677062810740488332616576498708834077078332968917379230350956806952914518006665098226027952435320453836538245444638674335393870673878336697746121157809173161606233647673614231496436453566599011531331099125820913286477725671074654149403009020791534691529314424188139824531659307659955073876891887351254877152759532989199080877368792905581667411092584096791169175561288622842368406937360486754321045736168447620740096635191075625608401664348036156268903472208359930287523689824800962017566819983954591757870895179608767190685059225274769968348235980895234022892759362011150896643016415926731457169203698773010543190007418057157669112802953650937472668587698418950358331574070494629945888872184393875966588536771694538300875333134585996603716816426184349268645558029314075509490190591042796309251523203935879792945442456564460271231801076961687816954304943765603496758092915790833371094822266628063961037744340309756352559720211162041217391756045094226575400907040756671073922226226874353528083834309450035750368911173297688461251356947140140654778394585433372252985429036736411169163188895242068948371702348772955909676054632269169411980791913965412829329865712283112902058117603089641545346442342991515293656214129097093870189319404027911086422107163734011354151758866397170381426552799097536310257031784394978118253039067129054517608789299501692124315049844665418700605286365473001036991744040633399693278555472231290418566735929035170408198357712857412211246163947842112845486955438147419760072010415597276304152302049433550865413265525247191684222533450904033300602582201718637408984853351411891085059165384709544999923043973340557174319682774082351055215997040801033219937504192677121168111040053831105796759670839978432031940298901671424032524168750605735749715943845819512454014349471907094210448772870533180692936445257452490330708924375137609287884437609574847857022034421436842902271428306055116227857115209069144816371438632088680011509142073074617742346528177520183597836903627438874224289401302703655181294172306372540883610452623251979898616693143085998638378058874010351663060602004274445273893350828403344755996232310759073035656398269829768643839002710973128151041502093452693630078233614722266370590168540543697097176569000989191610954091184055952107624940151154626391020994894481423975344129948796004604574382765853098242214203560466345703529555511960584729068304440280136256956538821003140080641090021441852188230853391823792522243533338957678026827108925429916875773836298371005200415097478725363158498513787988238740783582786056495805967514715915140737202604536529034233834330779638523558072635236553310273028732220263988662153860250778190655578175906883395099747683361624606297652085456419306700027684281712238488541353477282661436184287183024314177507806050388479413488741910196248595619355994284822580421702934533108430763543723207419011690910113773769579685869372837808356354606140027984487163316209599130014792712713209337201685587436544335499099012766478055744540293509709719390781254972314354454356869234870669808196590782882320415143623511527632042734059762298493584999193216482927047467130310996133437950508679390504980151780832779358707362643374648236003305079280975352257535681184720592034326559591421471096054647021118841517017206709358026440378553693067703984295848300679180590041971576669892837302412821448139084037546463919436395878184306512280296025827529115363725136284773852815318535632775224273294522102597175340843635522139019795265788612716076911981201139879942030978185794009152346043269879729728448592980688366171225594397645990094866220407919399820101703907758630301309726746115248740095496061566871353276516982604610545900110571767644920260715476272186709305774631263028593233665772237833716276958247785771416562777425936574325126352703618543911059272116253270081464518597912705075212539441527782789677741863844646390359141945712007606655953951952532139700413028396581734375408393625056684172755533287255535893250095708422551156777305117192416859838482450065330756442337938070350707124279230856021823981786565739990055704399707105270615669514324753759308115483204051778002920901309576342619094760606922608796984683692715302259736703306655194813972596131888461932820032612249027808843179585959196434526905251947991079910584209348890719813713283461778228797543641715602319769501570627354076104774262813609124620107847287157395238489334760910683915586632971334515598539083381153060725088385055794776939018718462797335445917615664327298852593429255152405968067171351702193145131720248911104804012133161259309269137255693426569316647185151906648590963096198763433099163602003667414797000220961008542612938184595342256275692961354757827485767826817660822433760907558003467156054508730263567072136971793975014042550296334434538255069779682749324348136629920739074108748768516381837444763905232441561738239461983712327243877141771113119368815323147553120223031120427156348951395406266350592923134718458031667420551155001992643016455407818492399649906187395059357781277506279078111507311417021477319718030664175593432683286023994236857357182115922995334366403013290522786042089704670672083391850930972553846245092206977287283019704258937688149035666114363391478667437747566547316738664122913650032613310959932856683100187252867518765646536646580466038800930202015838629578294744310743437837941462762711997262897030379233000699956868678732863010455625393914723528934449722083538265891282970114580929072821775609788224834583765383391100820893119980079786526473824120594424911191731332624912956147916467111420728756186094130723157739903807284077280155073733279980728290616868456462048107513878570170706159832810818441433902046499650141336062635939350232785094999336422744547289946017274835545976899710269866691362085285929409133403516621890025725741086202564455184719098345535453159559481370972975233958527609684127826578531856583513917677610015235986614816397039113872732692283629597227405494574813769199116906662501365634847648190131415969713223079707612564326770290122831021667230736348834029567479890325044743564789696282343012276769822165554084514336204828422770375401171906204408704577763323307693336911152812032318875596362623181310256634918126595625824659823043327040139515743325136038942872110522172972481560931453361665858991365005014506662974049165032814497316386046581160401727311429828822581497066431232128209576550102656550830869204594269157308719330488873925993830254280443655552370357411013854822146381361491347524841623496545330801193213451301028645684925236616840260384435550352151859081759286001493526406981691650848039237646296167347067077733937360163175502171087167550477706604435497918539764304696260493461411435598105906651906679518740665013610984831301898628524068282337681126731968313653318137199069080984213913061029398905647583288329319358717436053809252732976912536769090912090560375655918673511286105703345816231853531775294835763348307067060111213598005853081497819886438252762191296188726791438937029993748210895926069845161804636413733416511690010842401003509232773877935023204313750594287909341571863762774327509329191910560866444631392440678192124191469113940044834183028911361719253888911699683692865911642559203543708059437510271416342738568737330844088101529693451414310921104844310467962974386643613019128637710389878589022975129018691547622714226180343137942536707290123319762459103007551964936965879143297605851776887187545069122554390340707648750788578704408363617704984938599807550394861254896451857073049777125982550507898903657379002205758512777339676782762823775803566037315938784248901894614525614017921791888021326556624233681553747459790041388380123262166333307711992133718514208532493020496642287005995897143165627568521497846224588090804564217607414073369075487154619011994021398962667090792030089466059739605676243906241786937528707250682692032889739858555670098441777763149437234884530895250149883073964068209371584477889747447831374457528561882094372819265667319796870945404502912076799295889348439510712228232634784941560005212815738764529443297648941260990121654992563749631459828550202265858985818967609829069502300851985642248920573293459621668022161127296697207212705480691966286600203900107673989644389171227142116384380096300715889869421187811238337525268365231220319304716118705321544208588256234010639581452591631304418920278206446981616272198761732472559809329438165102870763497403382496527256577353368607825314747605183621534675455404481919054601472705319032919882624086176157390806801977540635492056568602063588382979800685427946818806515555653223428081539859834970846054750771691684701795016138790426007516768000220040839228065442704480594549604112754429427246961832113418733980706110223988109080640341886257515692139780615948349678513388457369965289318561502666484201629257175415937813786475490974612349612684174286728220360141004973003819106659539955248357598568818894345866852234586183682303356162899574208054140266930251137266022172839255896273215049920753183711848573599602376389349537232637632793153709158768773030348840220840698440095947667725995441165232974228699472702009813446131871074922446014714962232524870900509588116507794116520366997347465085110790900660190527664988646666467229467415666259026688581469007031126985567594821472228642425315200164569450136049231700558218963660277582741247293534433278090489729747258739178512837598549724387552913685297761278726991937634711715512815332811005576049780708253761222906832814337174401669463447934218943736822053108372118371804135264068178267641830854609039488439831376775414064955490125092663370552202000694235723421996906535904025257957279443233542189320109029192162023995446735122588197110066456708120781597095094732707372224783780938711308567806357083619671325727891634265039403476221083160798621501499444438969976879587966892570328054529546015478261246445577406960900829134838003124259939552168241405655987852875901563821175057435392001158354948898340313707907026778048886852965755737874868623660184558801780470820230573540760457605159503285796010673886514363653776020314016060930403241271350697104430830328023054127505813280205422543879760897764583269539961188269704444272103698501750053626869747785492752813777562169075838875893125065976297238648921110738858334881694515734148550644261119275307943477809807372125328553236744015202558833449151922614219474277197728175301839925803046953039338556638650767491812412488312218192245634783333647968002090058042141418504851705694652866355358510559475478085863304224495264756080080935617162367983896731470601724552184171947476382528128998986228736067311550842403408741356064701034307931121623360501441101910485393469739414253448898485149759289736280123743164804226056365383319359619090288451429296013300167057208765828632159202982622579944178421541725468075413193287165621752716112323958156994431113947702908285790163439965854869261154729270789131272222164363437560572324850070883749806268827788673018705260389403937507692046166194296616963121471565988280557761776725396924394501144635417860823761424016714611699352644713174285298703255927526518912042018126856471183693143228238889738377940855738167269803134791115953691918882423021722238397405573405307986400049072242735289731978494558305572905206260548484438909162673640606889965188415132312794204445051416764760009943652571401542601657126840594806740880448218434882033374771505426569601069706659972429565628691128299829774735493379595887293011148883915521954053848253219282041476089177908340209163653932084813369454007255151716272668104377649735796171053338335543724736625753966358569506259703987052310087579280022845327667494582879736686974834288927029888051771202622152407874055759337671660271957741846500459429661102320467310828390933479655974006244202993256596373046390135427251196696923389774164835138961606151322167463356935088571450880658376971687270760909573299013300354200705540936742605441705969294628533066583207447377157484076698325553013033427569372165827846894359850467771596727431384322584988887817618034304014093567771523245986659798752820913245535048511407705870240822812596124371570556517230099740472956904508407407256093689051908757105682721052792922669897431889822104313378924275711290894626549240340800692123430086513534996047835323615336628397797025210722202233576659318674581324744619905410136190929909853291503084983760291857202480901797404200513226650373915643003197775378111410492555203485973651138929750906682625022994257103249042138181443502634228722327801024840575711028532298086532152301455539186198449212475751161169649922146376741593191473716055272061359945352742304945998282380711406302232085651151808647046101969050481744541402830330433409553548233318127649909378721840696596879029376142355379550812305531141674390461155530565865924608697550334028844931527964600627679839103430146272797448485138527509545573142392308675287516734419266003010698643595777388268448449837751342504150752985094933326136074982127855326662211764766626351989666155748775993250567027363772291164262171500151135676231944899327756889833302619773075841984890619757837848000055858076842690542972915532581259453436100813450488594121720316938232966507255595177598725254021511059734930628651566897814578987420568988956165258667659958705947118267840750351854360272280024239206210694315295076997092106147724604378989288130204757297798864420004069050922671859074068288094355569116630208609676263009679617697775285824571577245383808779677417216712031104958043586720557764282167230023053717979646582164766879558203679769233989315646424532671038818688735538488778560621989993691621208945171430956524431419103998703850377244216596186531366400272403238895649955603116380609802257969785069400256763279460074156949259489079079488957062405875145070653944886973550230964135113519900485170998875214819890255423305085693191600596071301174242112228498186574545182983877793916261808521709997287455136251175265139318279734461465319119598563489564544407716767641090397952394991508278291006081041105416862152711778333347352795892012497185397375367090995571156822579534648664495508570504285843612426220214292360149594152096276800486115247829955098700438744151102416207059878139441345012007907664378361947708213537956721372983209472237166165191192614615047470361061390064208851346523115238168591314504497580850097850015538734727173900283079030372750960200625592953698438966591452012355250047763921978562721459219488490299927161472112052182857327300661666507390983603440221258079050796974300029426388172913232751983286991561646026533402983596718883266792934627371287772665725217863016436687573329569723672478890348352935997785050770637610311471944675059888461078430675183144559812754138545635376053927616661571981617375700383870592112449829884490403697577328110600369647644137536507609395380748660782635072147197939911018489022951699433612131360726902124127674115846470816624543363001767531612315406808582191965258691297169327627611067456754705103816939719133998210636656131342539729824469697048831753325950379549754186844010619128398438761662396958366364573687290502151181149622057662480009357192459619123825696991645623464773711289908304410372890070435533164153845305751428607172913823420643056768586200875000825250832856895522863637829023727679732856023584448208972903103923113379402295871084397253454088443002227748231503894156652594851222392141302602637483486054112056184766505960318694405669082378685738355441016884399922681817402455464470279159860789441859205687379245597424212086093705381648459509391323951287822035844080102859706327746158773169840978631719547862722542780246683257994344127813791417952706852843823988848285130574146618358580132072393085012268722939870810729435739005351690534966205362419210231420780692535943304719756215729226854320320758152459436783558348307195481129776503605624895002149392268311300882792160766150350012289017398259169855356489644193312108126201415586516455399936128200111263474472591724469865454722268598149979086845316495068918832217360173309276868067317103651968060226554670096916814856043323732954360810938237270903836078494346981047720680285195371081050711786546082994852514418696950946621081672227564609708976524743391355235443906205123791297967104775538497475602671865982635545180198156079894403302246104020304645969802933801947088518290193645226553762733175930557159185623676136163038351540954825200416365164618319845368233527815302532883965835461217134237647023305664094773622557830166936918556077970939868464059377628590585883156875147784160097756003275792544989958702534243053470637973797090947548956803806272296564180814136843534808906302530730597193102901077698486289045924500707716486061295083495721691029848241359742807556709540510411565708070919755807494907659483952234599458378877473819123146279334595316238858296882034077826096679452481435816190209274951620765548036192998522347856571305704986804082651371776069587089271949243369804788773604849176877706379532406737029091317846677909197082047534736246300403710367588369740008519383744222186377062700879169314431315710874152891808729776246667148988055470536524617744283209280826335742550458952292461968499250799532871951082381390551521601937938094704277333750610509408696135792637212700151040329919059385212249417206469545040147055452916677822812976567135833325875628390118889505239702110721587643861395160979023576723247206506136557367206379241185001479895585508097692792871931275704954501683004269870962685051232391411856172750435613861081746756698171394959618795865438340262031192355985343738409616352749799508073421043225208369775589306370018100470673850450234235797440230198360824328764439879677541529975053675381418586347948247422951946583790132272122422218266528103113033618598907462139711584588179104187132027952824823622281881240013793602540997985438610441931323614354763338331590399711906745163032971449584799681514238583109760317382511033022472974074637675831860446474460517158812946538438731553759172713263357331737887872633663320194434043406710922099636024245651015215009297019518895380309522296734433969296030404571166174458506840212620237076994956658609113786117642248162869695702515057923974101330277322288621016773633714195033957136816302242594431805047165690045341386055146493272768532424638321930122549612543768656419155387300964478690501413260154163493252439810167543121825612842343030131404263794154672858157758255162234363563121781290280062380631828281237811130999557889039658505404885882832894479236731249962111853445998504207482735436870692924538669919004821839751343561262933679556815537526907100066024419210109148711041619984100014542871683972345550182076968261044628869045370313712214230266800812851815216129644332646813240169243940555469688530324817716934415100821990353826302217100248692926778732608630247518078301173657457158728639826752199166890073359242897935510499189999695361261438622810576611693283001617683821873110496797879370458088042594020484129003957167087059608772210151525427585137355206484260908923028260734604921124895090592674681105944415202167647811358783861621249077343368943396527578187671731980919254308048388594986305938206470545996143818862686006946472147974956849312408040742131920776616448222889280315142608327721244370153989048769680981176577073470856658195060841616238832418118420625172239758883716631420456986022896885539898884312589934276634410715861466642003940376264192054104706422968476506606420872928283921762001887192517719581846935035078652079491038287925954404310442046192327258261682050598814999221632423183737532398992864974702309130752128098341430909331743097951174987015883010265589569152873397219046521773348553012769700469480784570018777308764323702293102103722795363507893964592661603263314016354966312555540246802516236357417037737113639186731581393689108452723072699551648963334649461719392891946406471803197780196253438758246706934920575049314129397628535142325507420039209058703961842495904909297751642329413689751711164411320362333582723209658951993471783792472216113615352849041053451078326236505562522484351047165746108322839397610977588482565433237972294531667550572308199407980139809312003191235999901918130323099750334908030852150514374940962431496586563201843824759967754425805351883142888578622326659462049876703287079652438973052212611330980355703649263169262341302809580147600660716304751248657631342419763443056733512541360802805362139251857777220315865608095946836172044539933840956116740628464585283037847729729751298992212095374690673898377418653265702068292006842556734473556792774692550610130022173805932358867944931420503562547981763542744549166167015439785116968004006164323018435730683339740657852414996850728732182810080031241016352089532490600016863149914809634807656947671282848901883776277910675824120564539870415252976918896085204167410818491870527756208402638264448168065349632091613799372463269692309256534235936805537283271096023526969632697971959883277420933705595096084897611638104540889017901085779464356380944252843037746828028581608104042684109707110560381315264463993152773466652360603293780364407791529737539502320968544170353430637662264006957840198370550204044220578310321309705105631012158435287541227375694703153874994697875378010755062456377827768411611957118329186251530526864773349905611148668230366065369253438249473865425565467624755590926084465862083529231073394453407402996252802638780326039564595963230997852710240935193684805093070972077752402272114912792980019038272797044303651465620209750495951294866076493983785310757491926295897487334939692314557412326917587454625814310852070751303133904713933629687186953657291395506226223167453183450133065816621085470477911277389327443378855270992966716610978871516931767655784444862435228688594814774931863460214508732561386533098697593009297567498440716556291709445769245843545257281273575385041739222225829167554602208985944453648272369085358792922452072268197053382482591980106535537840327318033884380988561369055748515401644416226442353944894382501535324681551476065193274281921022178219408552618231134156614123839272329928482520987974383112538544551924905308227612560570601258067134363689476770669569652926445631254950706092090587810069565134528344797918905026438160997023688954715719505336353194570062474017766552646937602913972540220964658565428552055194237496662583853754583814573347561458811698533588687283875546729842598268976993588393085058010489640125111697034695931962654495577228275693703645891130776535512025906220992404363857265525937400329772710425536907862638366563306982473319763304798654575707252013421259657208896622097080529715935795107723788604587880641808654635471353422343086780557965441665128687650089101069358726426038289090844038855635634092874851322677821640109196706429133111372774232830419860714433017255973747823546419079999251855767870178456188618261295647144863644019427717773993422903098064760393111418745912236760937178372733331985319601634868565296495502589860832929897829786428855064077423704972714308841644149919746391031881893004794633653011128228193115871011226137698050365330234200731083989622627625699631161182646210137903859080884052606260509632437098015386723653650127380968324111652620916252730529232521584445438630479259018862949577147031245937421744111824102733235850471181252295639307684574887779473203384754351997807230290338876171966812276203277596477837670194677098737238275145967868639683264981253936652900941962965382452564599436410063665008001576942821860021831085196765615099295979252198286897969235102550137730809481936000472103586115635731600781685137863000642571109956201775084018503279621071511589162575215285894229327208389603506832488252536783713325248399989498913706314314114564946627581079924439912094713976389181637304278471238130429904667812157092146154910052688790190992439819060548799131779029531014597538249134833359366433053036848465835848384604641509218932225614562009122827588310750756660162984760783096103714387150518858315623146550479166253501604297481656375218780606519886665641698715016897890839991100439150878644460567593220985126737855763424981420740890119024458526296563687367096868144530150394866243212462535204276268101765663896486352174096411742836593435619595208128652748351049300684254410716801050480153358758891443760238537165449565200483220828167715027508953765279103103555083422194277048437165415782969364847859557507192058692028483284105384626706092997457618775019501823881171499800058855143172816661014827257581656944078752618565104609009892353003459664802847405244347665316980467310301095182454005231846194256650619143778096934053254589350897727337325946793321824827620370594905652255370886540843361170571867727334645607940452386950869282735272766506905825898382470685156300311318992622303817055131875250432330194166752292128998513991788273947581580132537294449340789154223025244192872307885819464014590809198312981086553321983194735052916884488718715932815041847638064141466228990651164697121263704585055257430976757848780050443416127802333792776270472799371187503153219451016788679025809348172105786925919304268527768630702097904386794494274718650329701007702389306635602515842764946928813089628801879987741726762217692217613787258031090730154051923863257769047090974360805048784212569885286611439676397004250056376607846194000030274726251708744581518527425624211006163102357918436143498154269900359930374693232120478918242473447443436377434870029603166456677666644153696933644108090855593843683160427605810257533164001688681789022604161187448827363171975577650393140083049924994535446525236752037024869902731756273319313408487708705304076203994501401446012911869727759193130858032403271690815297297971188790329077761606447146874310864236178639909038133937288974576440342511533617102689224988948496316176183679432769245806083146032705453020309932084619531672800505887445050827016288031741920894701653739395571543498296118449182363250690633245339635558190680946190016385008508273782225801684682204411679221823914083919587109368872157292038266759380360856655886795429620138525176449778207598584940817571824789697994200675240321634002241447875055064803645743929951471892724781338967404903707612029339345196657230886811279224093778670110824061660526910822509366124987292614674612736109689782381967205318808166370541475984560947558201510449529591312938886481509762597005571653777745064910192854666371460386391551357239253287448655860713164926306701536320164293953268843887763362873197483492160225049766640941040659992872305555240631620749377192350509131021212104237236063402821273968822126626083449058266089289021640038784451758968659039415783119426206748859625186971163408166778543327794426116161895768996816116295465237735500868857088666141053630390715833879050555336797510089474885868224011039635901694285392482249673543878200548935166656189739885706787657761066924955246692296149878186485956785602933866759718317432279148269687172265751004291694816342057801826748632775747235315817472909167260747040681417674988172415666263447040679237393554593040387830543003732391539330472200658378774640404036922855676577025860290383365147020104252739131044533038399612899866094651406251289592544096536412429196441458885011195469647592131975032591275700239828805661961370126232423441088053696809587402766818849950169421188672997445516419161502464635496089566710173170877163457146358314588705742220146071403469690206730484815964361493149528058123199065146075101343506872931090804140600993797770767214444866035677063116060573373252094718575831576306562505850734116768154213200366746190988692616891682623734827437104018264680286337523893548078765363602089573751160464384405970104576530658851586307094982313215339086062732495703110412195937531236888243236618068205698959323610171465784496380259283232485466971197818157014064410178683888067832248976589200508480630294422341335456329224731851672127837300177470942196309643854840117999185126814673648556461788638778265417639416958695498985654179887669310725969333604608831463110770960939211955932202369986621906808130676991762533511392363662875171009476758004606060931611814404527183456506223500784796747432848519653420103841497945265444492971939138390965707774542127097413362897433130471418787644715453246824418147815966299664975422798656901036388624349608178471791015881916821972376396475383696734880113901339552093486264528785002329362440772643646286418349443884198555626090866822313826174685089606733291674267565090624940471080644744711757821041197983752719853850797574475936944649324111571507552104146774096370835392680348802234563757462800933555393967716941051596782825806848021918192832839610674428596641655818067670914011569192354078645417235709107724926009651702626298475217500753716631703112472699271115837280759041421131907384635533334242829902579502767271542489359564620502802487700000401225535958927039852649637716051256174083777645811799475444750881543162107158515910400966862020139259581365923738582288197803752917060044343801978659246467903292315847273136429199146312581797151682379648913828634263001670890055047274214370507701413084157529040662549587651916668034831811253801874809051911655122768228997119691527679419590861994717299015366740585004739945406529254099932031191799046447161983224501735924643530960613159394902269008825209606269643030182893257709574354595513021754754875302141642665419578689906223836571499273057218498775152878086690986365845465741513668864236908303578938385416142418772250755040467462193186650722987332179734964626417258995028178098746072684748200947546312889510045600994693511110800955243934914788853325658468328407845657254271506460361202605904950122114406342721107465139933386765889688908173171918171962419121640768579020307462447810557957438878567307129405652920391510674364528444126623275085854785447310133971958654907681280413255874793246528724733263455094899717507558370866916064231564402303196510388212119575619081561154351514665875532936190822498578830204628864263728833677697637461484828201653884166752638248484736226945610542361119275593868621982375555870208602320608058059491023038131472267912837805104906639881828727428182074331456277573379213471146216769580243552375080432992495779219211076277457623624462366642397393326022819681555918741321173376342063449067974807081252675516500784284025209012909905201704589078552508975718846943619203795722823597240151387692703281408511817275949606802282068216959194987006918405418586391619932201019595467511048634170555536860297423219187967225968796048791674747236814963964950108346594362863631457250753126531452395010467444448710361512343694041936179432585138621212311322364074171453703792592551470737226232322296958773015292583837731620766712489576154411921871510515579093176193975608059362675475292818951512713240680956007875524212809383459104145399498935883329899915948637764590037811018440509839241947917215434754907142098500391348761209003271149620635094287540639886157302007672405667579343144033707096717909612270295957532275905247926194505862155808139373126975361235638312979546544110494891491378039169636803717945573917485314216694992564024165724925189152950180126667712534975245059359426616911181175196876591066670622269403664144976209112758487323145064557920825265457291413990280585732907795185772784217129276422844738928605583634236599152847586093602984747827190891273184452768951841630123429704373636872867928510632360800437531464141993101923639090875146896357133207256941577926486524042070747823724343963823629126553875072683686016841719451561683455608567733900373036295978462466346716331176115654479885291622426729368232839946033173292054961572771427580467083803714603113608922862085080791613389143293939200950443037919319810195044241959751138831402157135189273767613933363183298178013729584289496431115622837667560277357907767730598080646765765035995863044050483795449865058758703532188317594149951819675769182747385333946345297571302076909098626095203753896938088448768763285872350951162513563981708354938827183788564632519312009042240938667803758583129046765942619039629961083327363276418773753827447532426377990299466237693620538003274252176009762165003562487510535036106792071939792688930980028575056540880989183959541026824860398772691657769008271095076747596174828794204246490593983899109173692667441165630318476889889444122554362067894070097937681718224170378602162856631289999290730550273304112017906519693499225921442802472936230827402733838848383013473860008815534137939041135717653862378905574644721577110883340281626733679101411093056997798291051328778970404813578672898945562903724493401990445661891898397124323122773637103433705233018223035812443966661576034587062685153179019247996306440863592684892829581822508224420468850594585720365636679140381253373191498239105785706437369285584170642565048254828168285405863809656418828788780591616098261877362422079224834176131628208644633849549961138114088671640718301042165294376703367192130044593193026593227932761975955794109822857274287193427698784615085881128673209105792135352839861232971092633028799288942589017138467325530154762755667706893749678248623088594370631604977055715558592642622623147798434552831686771704231429629077704684798766120933879572358718498820005979733171916981955060481035525517273187472413587925807796866713339140245884262689767677835004999263890544400463632794488199436449654861230250931601779713492800503437299592598153954985380340454481016868608289002303441535545642814573315055787284099848436304024902097982450935701572268267628834109194660016283110959331176441737154271881374029829537572592430216789124633903696071126593152230479395733997295821795169353389834323694804128587165629275546613839097207649135128077909077522987056236764811516885420383123297871562432122722355558785753711994627761127845464601125127350606717233387420912984470861133928553288294083967575386535477313289552552843222278240646589537010002385122064251548893606350190140818230855020051644848983589298070678999558837860201583911407543954521839579137944004713437997516158756143866298283631792973016259824689337479328034485485797235466981997639996613781564961639269074403053593943797322875786088350476270121373055618248573160735384448591088865332573008399774749314240326241201282163335506083126295099248496433918724548740152565447656068063800252289869367890479638299273679809944176497356088574791123599649956881672320206298847933038193706363070409858874981427486941878138260262913760357862303531610337460158810306066879560699520040624202520970776842220186048625088776670784380451169195270527636362403997616003556411302702737672173824436624834557132727453460972594883310254770162277738708728000029994727421038708050781598452246998621743718310045962147890251421612775114535089032127996859349472245211407846896878455355731968272996553236486717874059377660033532374162686922873934304384401299502329946074987028029586876291848218349349758918157406332581566934436509743497548371282652185225460743399535068189771166719721011115772977520013895378669757284112491905035577442591577741091829005987110920515176599182290445768755591393956497272216987760426220088769483217206733178948684093316838833875622310732494434117051015123387533796436019845746843773666433131749062190481830084361334534040200195542564193155664304044080898579982257996467992584988397614205897854406263361749505067760942752454831600534831345698510566028786600790466013539999213646906241265952672013353683623665677300301978059327142719542166047415121471063206730401760354179916220034243096644622966143295179460445743954673632105371745277924851353411247866999039778245512325303094070870663155208856324950575032305191685524000369839763701998740809204063128164964696662510380851965719186111861973348174423061179395791251857833810524281475490313355888740854012685234666460438254773106862245538625688860488281502942511240850565266356860708054872332435588035125604463141088365350972110215297762035149575402307844207811442808835732698909360294898233026198927300166091392717795643279773659816335894422609708221411281909005006403138735238795769767683656188806095041943649238090414350895363012555512117939917696899042856077089981663814867879186873703473649194682134461988357571177138090770148896621412062095521375660593419533799025374961825500698907704359212694856582248255262455836589075323390321963377572715809058962731097866587863598126583677362485936608971724411412900444570596390601183143958715235993103082258343197515711550840845761577580864299680458510519149137870073903602862470995226145402783871489176937530177653461492080706763563769992329804674907738606300550473697545972681547741017940925820773234780865292389108546642338922205008100007525145080120967268216671353914989540979673830933666265933630662910938113249286803249482014261776479847574718183694292357824328240845051539583826046389992344593413816816160124814880253120418686879437207577365841573377485135539465349025025640871077744369876937163976924429372248037601572851695146168051117801319565184471742940138127394472657419457431144524204445224147985915396356574191393556711116241400521121619842912109713371862241836923713849255771453521250295500916734727844370327337158460127655559681489539739911156628656916255004740946814166255260698568844266449827783147614380014986444304833645402183065412475804999495634080135982068672098929781872230504274358315956761978856732720988796613668966221214401752912220083291094085171975473359562548461550667663489280277915748624048746763071629824638246510039875095554333862033939017468439903571878657954301473695754831490581254924707394278162020180317958399151002363104689260027149117445291985362483025271737929709730118912113454701949483904863875997936463326363523805375989684844591938450181916346768647693557024283985856861198716762511621759643340828675915817179246691510709943507413889741329406381574437283002452991628290325992872838253932331891814654959085804111728950861416026325361672171269866140240252989325202805987111650650097694327164759259636774113778653037986943533989973356739760946288048268932187673610323968806636728912072046661085122434462799723457152882225069309869605548305404223942658298192882098352855372165760373018489943681318886539045740935714975028851048661614359931881244254929495599333598286895595683550440382402788288375808295446523448886852743303819522742310401367665290237604156552892057887972803981063381625421019612514468202258581629549102252804182216057653343941072343710084420936809847575325328470061296300979589767342591693604711056843878668820261955761660323282265892134251764307650321486408566010389341862977928637011722255443435353811477708357938237286365396451970180144058028194032897252927383134461522751710655058356659701643027171956849340543376433270946838742764350871937202849435812610425805046909069073512754319203656486889215678222375181904467332081743762077786666337996114877215017725811208698047353393311450012467471394583446075243088108285673649263509965434510634592335728738551093765567909316971616412731213023723366433952204149585884275318984873244362054169188313731597473366943684863347488659863835247741801464626022947100104512004805539849463941161136080543963205811172692276457935199309950331415214031568334291859111704629552521745220552527466522610274353987773669540938431735450565848462843862500371392396174715313677581962889163507425878569050669494597801355821010979537848135848728006873666401416218286746185750203942271953756816969393853495278704497174447327565517981101993251496819088252313947244611133246587488366721580578436327550753821209566685177960697464196402440035604952850213199162681258033209142919741996816376342274526537840653037113465274010122434857158521189066116882300484692974775802809389612965890431812818441131847938601439176769379778890555204194744599037674690046425228467642104895764971238784967927120478336475109471143075605454237083033386820190791288438917445123908450726108161549209815793028577523578949452326629959063487915510636791067342932855933684723852770418823700120461874555738343192198978597076701220959589545071722687690442940107333870311921825848727338017440848016935505523422605777790939753072351581605150643470415567005435694192559770946859089302307637879613388303318662896586143338169617559918908552589358024002829966222669460773952328877919734491284650762286408900140900751071334317615489623131430092805278973406161565404636691568970516491952217590126082483887506364165231015565401752963024676069145947047157570848361357151075794696661117903895306624107090778151800951814572994910310961001416223157511875666215095550493017741191042296495971273342988781220480141022015964717745418712885576078043980618096223703986926449987781716706094194989235543282710443958368666638560638521934480792460176149909532617690974588134338464809437992538176726609724144273110182497998582518073437349350271352034802543130621182446851678058073958501681676556336613847374544915302987122889313748744249299648968234805840219320599994804131589519265549485894822033671504827204040266769447394897582363836766494624861298871625598971254955684199615347534280052871383330837851248959163758748649686278864376248033833994614297131315515461179272031575537118535889568643015045952495832499310081789661175094163313053056289879686075756577722315486534563754277397385586959225463231265782242157383342857118469263752275346955812505189559141373260208400409059027902037147267502692180659295002617660605431729919544874457098572955412385679471872564373035764425601365398687969845636424767205342004142170689240856087457049756288413203304831043210290778108132552471272388282871289391451329527031550414185907827228198282925902314039171033197496021798470604657260129449407654993952602085820500496641875991811029548956443959003402942470068014773708594096173503251633625125516970329492835128579432417366174873333347165671760237069772022986932816662284665723299639795581171676966295211142063482489433274059029685573376639936343653654339056483962825566255966179151095103126273120763257030418694501719954684116768298113769049263754836879151500042881812889489233130616337020955952283239348882924582347834279264451464338278740993020428038722981985475831776929178299114748429028758511203204692431479409331601893096220303579562640895427557967492054549233202330038786489088627186892592879621120834481129900864852135401051910151279198380833964777986249714992282073558541735860630880363895069762216652486660121988034568698323501061902880851475844925069953789878298659031056888621119226525891882402822231365734208810971158934303392118010010993209955704065665963235234177645530458036620087552655242577493113326003965084791582263506653409917902797385942284768075303119348072617479314740674426257573573339604425178456599802907659484551716667209825293574985602019539649948102985751584169287440477934560087102746589266962631374107949214375195768501056931042320624192171364067009666432027473268275660981005346778037952495040819383572304434174086712865508844360423874356593505756194112503271987214006673825125620941888671768668754586228617425434785495541774958912412666844382640124131461774567626229723346527599553923253410685966955228596628963817953920451799500846772856476746120533839264940832726423400096073827558193562558581855573281999848569420681536532032010514929548286317508290799836202049743162021762908461518189669857230583346752392982005252059360188080999493286517563189714245868973469639700747355514867237246662928547425091584642188647456079260841861192020722858812737146347040360768705824009272165809127968726084904935544202102101141603902604078358132534891076952636194949688406907579944646843903556521925091209030808947224258791831167859068359685997732432062581306552347763267444065367373721454847010979134560462636443597197963881398260897251046253580558889473464279009032946566464550216556045225346086495482727357310105802524774800385908106044690597094711689444310780805514986058066385073838140068672961027540784313113148308673565145004094705000000891954427939945440444120555701757620761003704300496660516306087071463787423389548173531035147684847358473117650488314645212688256326077982365662631969261285238878123592226233149313388592692801673890928213268935567991151134713200858486051158607973562510969796309039412876133401425740655857711103635814501633339158039315029386476059880725733449747470198580307469593590602650937097181969726758603130460188984812416541516331897750641748494147866435215120635244412576837198042052236474789991383312803082169328058893591739370966584096364962271608709900880339667463864836755315988574693841568935370868575239611382379082335201022456664620115142439529769752428732909111031056439652930480185237436638611149134514509754617950438411862425497590251363025326866080518951933669127937706976478709053702407564636338454024483803809189792309541918084652878508351211523950667755542449340197476862615277403773182229860280128438934704020421948343541847540684526401936082945267761744759877174325943663607570927190045877574241143667855298016607647905635261012874062486912353351598908834198355412152816004591918303233027419953381142509634590169808778021052176630635391096747418946751611708614152468322454403879488919120605106780944564174464168166712368148888112891609205994809942637841071057614661686032649630079232405710932242197053849897558393518681181465232362296559377225633862712031428516443291853030906541192015399539763351424285632452107474418870588583962649030264060700686447987726170104510362150961057863039386935478569078429520264794822337186425253825776719564022265836647363218864855240687943615622888611527112792917714506264577399613575242407890395157256243904344701567838635798487006201889727495963837006011418177764543819688217358339036127770530797636200244914411572540398493330180026811468065061042877139618443535169336262646903522995395000548591347906258370458056653261530057043754337425504507912492697669001626413714098579957509314932596630642820787057609028430734185827557761446742300579166340884364303449380214026448820418067085138356809763530327561970517436642667468986040217895898292737524385781325247768827725525281776386947397218442536987455238658450206956057026136952208853536929482449458905169035171031851275738811907768931745660772413074194894377927668686211462746565918810433169004844917673380795387110500094781055263807458141120299213354517264504214841757977436953739669556590906327073803998116524885049515619704225818282902951843724580456415369793291420724825497625248313938394769368966897306828430147244968357782929098531282886860491720373438233476729437789290600159190655015481438052625504528476505145777668708628917325430040496675514442934437520723190346195904176357071800106554273976716041375643202166784153272887026634205216672026007022654852659749159481078058092377050314695269128897831099688662099040069260434738178081076570011092921937354078165853863112116656634187802485429942740605689999921651756707966288496627759465439485757242061308171004796723735171911409469777586941369243554623030901332422522424863391574243871749033027288721236721067676145049352047251907240668429605280997855650863657366614400478431876538248863437827844756379374570397601335707897332117454237611797960307472034255044857375866251306754090788939842021899303365604627576026547409939046648828473569734915705263042754205371659176010908926298761234610444289719815381744697790945905427327990982709024855413999914627268975342687159737636101783845904238748717264192179913990801818526526825763263854594860830633608635518564169985280274582514840758363384584087041029310364558150490811712658686752456357576454669684595371915341662124936182504014473296090351448733970039497339860686568711601173433609838281780227467820096083175203444918759377028083296591026410915032763770831733903485733340168730612059020622970797470147810986876774289149527730274493258591620680605610765981322419990810827199187326208596282491069482692996654319691460693658979419256723648209579545636108999951394447278894402334145762699737973034842172071056366226325858011208281099222158402630959107164471672913179297099696827895412493832785518633569494357561167221591975956725817165150865493788814492989990718250385610831689431230697661677736714259811499438509473200721479246403427987051229299112458040862532292920438628216967781263826390979396359607620197284057982601851740260888504108884612612358024968198757294893553299352373648890820961260819730868676045979973722741680688843314957490981348658865081198550774288786890704370318956203003063073463728798010991668907168448526891485395462680109268066020988776403310936205280140460925618782480215206090371137971251941491556195786575112890200936075835078127102606963177980349562222219968307629196656639799610923917022550095605766121609239925467866170450670075475601147208887368500444898391584991261269231463632673500992287878212311392306770560145254439716336759118247472103613525366428343642361507935927142458524269683843353980048881827880213163456624185309079867088332941981951746001601163868805287937979202014317685315512702759170888380556309583821979271318921712883255980288310839668157278245821033036193394586376029678606073984532943481657781613047099343563135060212084438555360961991417336727504736405172276666105072557171486887456977571817999947171407772710907710182911962280962344400468394900510397393542456101763814579916980186869109375053263429053623485296893597119864683941335356710035625449152072926706236351242505972686299918983578881425518818429854077772713510380483138074586855041069406831194356564314857747469238566589061638404578132468105047798049803875634297518931371010012648871098938974202910679725267175245845034287809231238633612835913622458670724748180036168053177566865117308502435721516029560001802421027314353272379546918159050778992660408650535069016054091000419511172540112814991250949085473738811917173901992214363444529518406176935360346373221069185840830646212739169292845883022124135174172947087298547814595958470793003210859913407279706075572997171180140903471057821609137970223483475819882668455134404612544015677877985093996321611434109410056828604041229594948671845212466475491321821654504389312456163462698815352067009449635078019003195102906565736105242940298033732247278260204982776873608992118896943297287224750748075543447926099434738650972423022174050934692200448400180305596373467466123673005026277521163939564066409343185481328023213335139964791137210125621167226786080805762112179166832036956620217818232695035018406352557055873147752692650600819604502177182678099069572722989736819905819612487381556163528113994687731685417639586741011041443932739237091766387826159387776909084478997930964150354291850293924254622719277446196581656644274792596849760740182515342032777941994286153792602997200805965405779837781014787329754331312559357340100415975436225511933532536081202386346389473590448502632811082324403723401172830105279511917903728590819597172437725068647931315387326787992051928003462694260771827344343384212678731967697758585768834849968751721164266013484952268421574106490673589927091264159707605695504055676506721238977010232062833186385663171141752682049764457273750243519675957614413708438431160804910781899268495044675503443001391997817979702551648993382602491239568433476909289139469827209364337436083488625277514734573424520301640882148861539861718696150771990424003764809764056184742942277496647592049818640770851419874659066884126878094535161421592573121205329343253880726828624224127726684590438746218469257647950021572848858866588694258125130873506156747555769766630876547223225731549569708245919112623267323989270664017476035842128002429764311505345752744567821048591494224461181780669271633636194152911721564833050463968534081205856061355023736273452154834014019789762893127953829820226718676767372427640443092897314046574685832999475649874010729247893735171631616768205154236580315928903959938571111222382209651688573321606614634403362103472588354974739601375336021353118882896577758592871542473298864354413965552183395218536109262888124157140122370929772994134841719247288295445951885956179818753228597183842527877121017757337295903670869638991311413128056169062085513899907093833913286235369603406462872725767316693637342287390835111585395814473369467667885425878149736086162699291817821188243168713517466533982525175685261087576682006297179186741159836550271896072334086038492177051357696974811257312693441842602653054548555735331399604264291057663449876877047471403506190304023841253581794931641885263094109017905347858275560301542502195182487277469803548412264032684440966086215144206875002221764946539311592931790719349673479021454132067599918894272887806145868862130605264483973134950065125915247481243521004322900890147002713944196799176457871347393652333380565913263820671346613906760372604003663557902448469106697087410394707424357183257475732765893814178371420750361147112939799788552769206746618858921814367452182989543267509054025658892304318528115936952308559118104958288151190011520311141760810753429093302847096151548122052127872571968670185889385577771939428635616785740670151052101421851877219852419860669333613185359199182842812069168594028393840178879439445214950293577491372858449656935021276262004246713758596838580729157144980508015692172650111848778110292341482739225570607738261271615297208838480854044212761017174399683147254266232357579797520806394043089591981987324024333462545442153241466405911380890815784296457596092632112491511371793755359249926411355130806421447583450000763272268253827146310129114164691273038419673362965859253934107864628868716739716741481299281931566343407111607102352582925687839676914195711065486959031456093579418515556525087557104491206600097699741835416749720849559725203829606072341319463482734197924139279154247333293884410210391370261404441544754705621132252430576993553316587109374487280851730115281905000892483781954176369117553975585636307352791120009153684859234002542719830815354209666797600413453162411356242399075454207137321734354278337036377558767764409737520289368103418755855723385124372026911623124592069344445198231734650034288586666237214904686958819081769868798188792235596076675339301855877695112881621919105345858744175443105124588455211501514336446434330854123669334844519932387213858549826718523507752868137874765851132033056811314342649111237478201122384515797148307878854126512710531224839936231104073064639764291152091335452047700487980601053953281242034845423229374338993990268608100583666184302165094571391739435518539924585009248672814565655508757459898352473986623875738548607592400714160770357846093681975972303057071568513816121905144177393146825553589303837256009059610466241190047449950229338395114142178498869817348085497340386400565057587512105048259977440826771233405311951964477605194793201945756845209285158956334657730490578939554730494206723989369334943443025722166720725739963734048025768233774243349361078705108515864310043694563220621844068419337377972322431163772159720520671829455096921712436538295102154434291129744766930649159911687885161277137202593834835112054732464495683812541179107530853780023241316538152847767060184139000456470049976574764923277797260476726230937115312959237245657360924200593110303145889495600337851526772886526819113476254249247519922072776399118404643149297882224804324099365798364692313760945782134125151359414629676354666680389962694365005650249147485993881591992359624292040322983133868047530415789431568580169614904854539847222742805194730474739555346011017770663950825667386713720440445849453747861454751046364427072795703456887137488099784833604001422202456507273474629965882807657782149876698157222388742510026522673094163178366441568455824814978664800560506717741911542507318781961143503302555748619780414577663054166707596607485952133092520444743235708765523818710159178085080157597050203022086269502530917358212736448142278574545853716297088881340802402862724245795461037891312567662566272360995835921175919989196600251812746789368715886251589844220794606704360883854889910824892767907222291296184955981639495429282381878005960474578465654464030267786793095546436980693997997884962106894686395852277179543824882807241224215595750341764294173435598926451697762087176784135810922012866932150120190354687587173253049551754612872758944499048700309375500517981049871758403250573494091312355652379952586022204510787500872507430106768586233936630117112170839401985482170809375040869178580249820073499729626886544290120494962484852910782796216899573732147103752497729807416870773036752343599788018907583615658065620452134608106572856179736279797055034982221218556184647762119863725765446641500597369967151753416206760141501338972992922767065515864639869801056317007079798190374715707681875018969068780899787578841446297137977547450406921804797834172084245488491783331337763694549054772442320657535037147284419269873627625919646950924170644747899236071005537863271188269954497941423552308262879237669788860224442352804131905433734226316547817055307497696814576594013621124171855265025308911347897332497526610389467342619331153408697699875874662532181183554475298142088571785808783833550269002871807612414952365420061693105069687646392331512637137787846141871305871631675617396953718737045760826688021768845867880484282925261128569482985783378980924473479991075356271475168528092735401674099318541771790606120172730939793980704947944655128197299474956602299761886573053157302529912000011296301071785340861825838958279999311944099065146134523153916504388781684104546371943763797733908047090916560997515730541546179624059910543994817743312484552343812311714928552653100429691682165248644890309586590210880981316225160048540841527168334996295048419699682350387250255291383859700841558694675389484105138089294113707025430984014735216080819216714726791287853650881898791571996358208476800881502013043719182852486266268363628706966217864850165536661380399175942664147598705655861254561312884168064762285178717362405846841893095384088969169769032856883472698298005468784332017660099289518522847216036292012027988379985798284583401283360750158816169808774513198203679937489430908778323242601522658721087731188901890977495331417224167471268742408152175307531726282300692996564983672423750133927528225089208242015998462103586628290096840643340098253641785325370078409686668908083868200365955458327545416905208664243583205003640299220323816672712167708271275929685754494660224847885156252921664728091931505111404191054291640643937425869169108968393389964334094167764755420222703408503311106917582557510484191923611643763487029701476271743304581026801385616943299071313113882051772043549131549503440857305924352781202941638050599074850307224820427845923700435853792222587297837213831391702179998970082631335002602485282258040544945307117061307042975755710253157985714827574106192854221623090171606798760158163465179501154533083864360333614751015300330633500349730203124966036650391821589614634814107948424758370352652192934992220495684249540776285473032424210507545671402801970760675817883335579916139200187446683718989256412636109090203889363395975968096326522230074659801742420051834031650045945180192000224823135790754358831849840588260823821317875079124807891182171583837680078488743924365688034616950291963804574161005493842465857046310783125840888454749673005089427176136970913482330553887105270414451942178413353304105727880354346010845481386199527200563360236204129474449091216345052560743255476599538361606979400492967616320642391511141411815158113487678113799806603750546001610140021490148865006294724072178338649926763159149456852620873768232573766670975028325358708920745099770445244998261279723213208551048593518483397449757808388596071331113250653786178209244682959169301883166649517023885309562460569663087749492214835117957977352042497468697510619882353784629300033627508606906290658860359154886227432503262064879228745158695409667035979544473605266450043326837618815021629735805338703421472177392751384197622898830601502423383703126712668581137955363863942212272583096135979279693514503590184378453366011961431846096655511314369924944943650854126499174513001816862338167393318756729785370910758701373965428673958287607261487258675606762491916834374015769316210317828285515826880026495936975652986770472775760663121311901171436931505314464484690408707083404629658910388508576267852652016213124958477186173883558395260678675694577061099866286161111537347485168642077623393337773567211533512723034677615805252392714504565872851259870559405721187579833180434398499532212303566422487810006339077253370737132091419226566612518540610629659194404402315001117312722370717336875394148756430213288073138682424503484720588594986535858617825464739054082816615457525393645535896378129680774218320627769299038730331153145967851765678962131021248207293849257520822717470284012066316225120071101423766338010884140581824009441801028579036897460352177266592538915244139278255921977102582618681975286032978349046881971960203688612865197054023790047260105761166398009506779516271775740018800823988897214251544343628713486698726961822122408752704749378770645186713406419343513233453970254906451626998781473436123152423764756815099750855513257635439118380708639899428691841870914041662432417608591715621455741928669463921615865048465606280242548358304895864837835299604994767614062571755652147573540608991814455332999391554274583027081917609557352586418039638813415112356330661851263627075624865783674092989707827035331411684918281428738536966947061713985767622305565984531725243590872630241486839478459597546858082136074450363732368646196980057473827265364942950158873986428544350121362823591397907687687884152053380505323810699855607401537185520647310603259921292305126212064048296564275236438916580531999620831689639920009742598598320643355942918761099016591797528873199700103235717792026060708163563697919664900029960993781021730818675856618265226146637863235328002300584472773640187788414037884513767753446709762731052134892218561168183189675853876541906348873638163915205979468083446174596152119391776616406730941218524451998971627760241164784461943553801695776478770292581141689555542692615510549599396810486645361541557820717583219830548264724796118443875335299724626341849535091213711315468482871780569126330419124519887273408653873351293544274639877740981138013594552254191238870117212740567783295300086781564470647693792745019110947627375093506552573009181638902208833343781410559349184939934167064582413788423843625240092964946317390375530180048112001383962277519098670908269989834116957226558270577144123313782329996843869784149407356076408942470636219330513427555122522149279487862591042950070727152388854991228741730518943224532275525614341844426587253830145582066906770638931525966561773431144241645685908237915364110750641873540529030654322238821311006892125320580413404484634296612108089311233149990560706400031189844035690064437444919276152816615775970936336061583517285856939808436567358861071698215934706890637060810994207663251968234400111800674380520063930679041865665430277756061067935602801053761934954923356599518491430425841553792355695077523015653411080215513519204206635466770709021865812143465153376721310837635679531261661676898795159235723336715683517146745921569054848662937721555425943691501124596556871250580153628653383088296031601036707281853542551909728109171381785692062672261978922277800084156365747136002907600795271928912218602994453966216813994735207318836040315788548443585115775812446500495170133452015012038327544340262644673182867612382471628740847934032604536604759547534121906079451402857881954287818148094862968927632490490328421845763352069791600488899222577461960969955368759513880711061836166706308654436522451019365266103685875291782648433345929135164663744790342683488627739310758914132593056335142867426771255559735100101790746457047138058381715856496376215040757175087409717158169621923240017278569163173667901283782550117542254299690518091532244505565562365793314901655357011949360114010534994979511038556832978746807376420693692310769755112686842673748667508109333869002797110732810845793376603277324688283456442318573529021164738079826026318900777435845341114827127886037085129437842396796970151750822566611599823340366597184469334141529019355943584463175180706578331152623952085244327289773236790463059626099017379876794741489578175313284417288307557061247309202739667450150080019500390534104410306037497841942303363476526664435264102233787612071139366771656698354819913954141685541169430294214442653790459565322345977320559162692100588673810864868318039639642223426244921551751822519525217560671527775314842524843530028317187844611867648169798817051506821382019692899043919486902255936655858480025986388776243069145119598864234736810014629947484570681254620920691763108487981143246351056104529988515718709881951647221304698416671371058784116919736469826478982277358321998361537707502414532617457895586270935337858924204671379998868319538127153240082913413232016882182379856773612587442670373601073687780636873560015611427644169661682154415977497764311021266445828757612846301847924838791572123849946939154845409357749713825594640485424887730474202122670966373918701094862901274224768420394566214803221538604460368583239453166541739428732461634389424961368378561938003673694390603972708993658870884970974000623778303878942995265094289382627487076879196766084838313302831885980687055225567115399204956962407296497797841523781944570673236069369653759721528554897463352587184281871936590454556765081874332733352427431279428664345290866786111601416267658327407552827186007087439728110029198302843614604035947988139979318067685988594708456505480859959678380568715696105454728038053173715615263857213666819567530142317863167480761652854678516935760368689198622178661751999385618039129863336674722083181899932949075048474207697592824936741903985708616775541598574771235967081249118915792094600996069495893839017082980186079380545139692995681167188979875224498871227815524531795569039800643324330298894615641118176556364239820351251172972352062422283320458733428371184096350078444313153622186836110082599504946564733640443678481829237179342663584878923528738724277226282390272404885384390150769249130331104099882161009197962347238111606601570047696328472413065894887077189369464397350761050708678137735329269884663666259771333982940933141366351140070443429806928971893822173193072106983417861430214584756298883791203283847551663070554915776042416454949870699182684417366311175972673670145711494355421604121016096284209845004347578682350977917892941181751664209758864780283186242582393376031773198422182621128626801850122311295172616770228342513384154534488804133933130699276232926474436762893388860665649506713420973663675024035239681710711803440816351995375707908435890854128265234232544614305142127828925477425508570291548491983892178958954357042337031624580600348628043577643876529712000962195376784041618105184275268040294002601690379544701706812106081621411744948179371923974425198568614808421964824987442371655942109076448211447848040894863547783566828772173571693842825651505014237765374457903084107104816726032226647648659971022559935143928021489242759083753317762453441773905856231351559679449177453165620192554762092560779106272121945846343449338701918769501100457205944474571947774503364688399353426636257987795182517688963806066330611311459968279423983743587083604202114854411024990749174162683741295089324715354197342969757765839122667223732709090418008291212120783877943726410195041904809770874493065454459803324859211973841045802436299329582069621553478498282136148023677731414935818422808583387251829793723029437455071217142520189352082168645049627213493612861325349546381358587778992992783652779673976874706283697953060159740726900252444424002892169493379921662065874876185463441852784214141368305443476980465621180196094796609805281722462550983955499431937642507675403960381179739922741458709605381012591501056972955464748794738361982409576711238686281987975555925530682386604699886081591543763151909608469916612781985383069746830277685379331686075065478446419035497686022112730510469586225055209812612140124436188605428700098678309673694599656662407339775582565043422819651367149464239195740878189686883447880899374984975583979708293460466455010501508783238982766128537996510469069764363964037210483888141273369343436573071744413603761679423113412231388330108940013181550609293320921108358063565559587932853806923364486519508532913483698876104648088017050486281819334273994548523374862689169834396609004291089625801237954121748838827750416820227375360795594573244792281963670375833463719435165599510047579941623465361532644296081406078037450590072717898343720867363655584295598459080873796593990241541618977035057185764637238564024995583106514560733422112680623996432589459872297539783765591046393118388851652377271012430774420317997581047217115909117652949117889649664941499643773295997721553829481658221098037925881447330985329454155575038087989623622404457469094231348168858619056399939366070330231290211955172623529269307768170822649494138417520372884969662941111816117562562508472021566872404649349887641266324399910377464641794672361381559894250452206527765786889844400697791867215182984775824460748100114443046289447320259960082151979926631740364831372716754515223628337873762927111596580448143952954080384658590540207409213598705318983250127474132326243233022250111109282486855902386150184215269945072502695381390934247168072645500695239695771418503751123362712808376764210849366726089140892592989282259399738839555291936906584328408836654429120286732642257057526206141577312388902261190469607521526655202759656116123207154237730558037074631471877217535459104866055520435637778758493709212885348632308812522745843246328370189977689352068892078508427878865483750998101397526526762898508835275193646655902609886912998576773516605129726639237726171623050947077630412825585903644276313003477507051919214078473755059075812399201381448815355130561266177571623811359339093401684826898506433840958097313581758277667900630394211751078929665280539776547085031580063785911647174302573250945697866306709815430131837606472949442225539893401820706079024648859429865270793863299237383458709251278904550270879151492529011048652514717283622690410288209126534051345073906934192001794879616533135213479321516267191263901185238034617790635499770733299564339389377665841218802830224722437071754754130147436377420852640684244275398486099380513902989105074150502135585982277408158344209733425557849379802581512733445250964859422121337749836735896246543785954379012043448819733393643681939062952934773558481642001469801028153649540158068107582584008343563194071250804030372750678767252846924876059305884042120763073609173488838121890457747847981789841367765312376571827990217327938007014034112828784745319357595135571472898583074157304854094746376102820481654608206440781621215164634438760109800213617010086911350199491000771393864111835375440608907220343259606346501418398694303185360722397566290802632120184064103847211790054773335007117924803593348314257475789815106158972195870143249949012481622006100841689657175786254783098367103735608814021768554172588293491722353373400111438198065858038305187208009359964710440751891148133065486986756717419519360107318943347764648766198733350755764303901714815180302471553439788684031434368772733282135208322176006212765533820683513073180558102959923729602131040554898449939310559909445915968028277558849574796082481089552907299217295984262272344574411394221777432336192721668856779213859830776931612849570337137040298793428980547982835667936085009055242330529554135860731340301819073416220979402817614239439530015396974831611892626706315929616961756514424330146816661258823052940917726060269008814018236401076009895634082268313941754950036935527469822090805323530089487610476332699156506691699868573979153751718963289609722219619849432536000479048893231156540787492883515810154340041037191341442003492037800573608797398745421238421055097695834977423622916141907196459801609520179689005071721501234830305119380523686389408852747745906400698488160139395860796643815373688087019104568030564466545540258417367361964676487807204750110155288849686757474550234892295102697822203320168046462883690095130957227425956739130539652360509430229167054129864635500693109690566155374704447364192052857572912485295692477823062403699881766770494775008744946697641821136121744437129306090903966335358352447738251373614895204409337818985297941924122704389196550917539724630685694231466134012817700689316040379969136963072920013536502832309933199965394752877014910042919032273596030735333881631885611028998509474521400517263542638250002744455974813173849724663948189049307924706537741725433643057193561016550407880234377903059528496827639811397893455154367114693024213436490534336076413354269437652358404901472105284192695435630790504260043063324271451320063857879170861175017185081303189864469399056725925800542707228004364621110485015011843377750046642100899974153708830989787928692279592617981542924686691916168132742183828785861351365240555270899640425968995869925852895827710019226091253340223680383421418969421712063641864919671468857332886151840578001893358659655355306195885803843473201474080765050385937479632732415170691484889053981667721838211704582889554345665417340077039490695576480530939122075336990145598118366522488111715062440278613982570043210920888076238304838007053723617914495317011324339823373484099847790740464875382910594153920351282737382197088327387383526210053479382107569614109755966140004048574872147495940256291120660259582770996574400814033254559778962189074191330289238182764203481467874607423859005544604059216565237668211518900240838554079335187404489874425700472851817446764711951903977161183700220687698494595471927048146103240919565764004575098291393585285893305648009856329454872570181988216746627681288842051448916102268580263312347723691051648034104078738022882287385349230237444239198978311214335339964820249204422725571874123341557568167658263827160809428295237795846527080107270648727594852404718448362450739069398705021167513187802064222587646607304699794541056496038652327499770514520561793580641582726484248560891661157990146242800404487242762246240123372935917234508664160551517351332445570768024824811618024838988510631024959610586551326278981055017820969396415172787168683735159543600944156103899762196440287992409730367942405389389539491950553477730075843578774222635841532817811741977326946391341804503372210992558560524290144326911159658721181767580002052875551391855909061580720701238039525281362006922664951906503201477283418415213412773335176991201570879532843297269142157361317748978812545432442635728608183186234214325244242886107554022295939333694494318615058316668356894446446222480862445743002288361139110555501747421316238123688304819307634995142332174921349708928290316010358830102244564805904540285597873528827488831214829314217372105995231728943130981036312782721299040723083154380830433517928609954135788089370326277266760355267408287842632477753722240033798067532512585668729438613919983673181870421627210144322485785133745605041861673330104773492745898265130694674750362588367250988215583101979004699839324698973927335385637985845972276367635896628949703531742306495814814117820590052443239863713573596108693283534489690865213163670176252422451748076086739160568896473845166989900328318896260997313622431891795313446650801784251870941359890928735437333668794056021992498283698040060104922187725498859549476941268341912440968702477821747342704351547920033344470923445709588310000532488478945696237842519610321936794102273308599562638349922255217344700228137406473613933688647209524247373177015731043794509912472818145353839997019970092809519353678966338893255958885562574082536151242829427847738403994688773971500412160789166715841723997404456137813925351162320050495310446075215646243697480539998428183037265056306683856419729232069130248612598614130348879374705575046170476455313898938709807943262509501720030237776218989686826721982754497388279695298958521681910587842575531253515457190593722475378766176115138211397218783542916955236883793197572016045230848946707839322077375878229437164354969483228395440960991873851852407347869678680114399289215295400046143461807282112690485378973469938567828448009108888225911218102719148316060099635202196954610503310650408615185694762876734361565104267939110450626752379792867699735996851337657554061414582409725649069055949678466543857398042870037427996331338528486930581217812028755553123151895116405657782973402990224822460696727974344912960691793694434426625504173567001938372476168167506852089497128173976249817576977172524316817219099598190549237366906150252067638488796438814752672514769050082261921180378415071854407690559050249660747935972628624414050929204096169356603034533446579614445203743674353609311707395506470609489453693796836750730046897879127353077599574026738179815069264246061458826500461313239719185476907710061920107249084974291301455742046550288803102746655685248834875220053106299092658870259991646519425778488487112509752324147867015110896755225395908828839262688363067023854504016759232460476611752137432565692679627973030967566228036254763847076042113158448609781341086617090547648666476946919040789066517147731940258911630275937522939172738137398272402616517794355100434175967760200933450914632737962389283526915906616489496399407607480462305532215707398821047487224036653266641467484899055614405507728236574253573225740950012608012575839642330663458461875059077121091812228955914268815924363598638968550530143506196812969038980391035360636718101617235876834119681713102357750963195817093476260667052911129133061014229931190813504876966575606752729746299422246206326372722472620261750558627511892485168881076041360286721777765913174711884817729633792266426547435020947061408918704450520479928614083372732505203628295817752587284296938146659946982727805304915583137723505752344594460388229592264870476961270802567795646188035319214569748485617921581151852103915481963185441422321416718176670852489576084480570726858375089405835546593817424151129644313352435752751523372289739776484211019827852332819529959813470077975122117570456113008178182622867191215066824833935908279355427435904492285971909773569748125809841622801905179733444777870849148566895285032104954844909685988272158159120947888760257526979627197612658743124751604496573357253001229869106963048160299977301069624459847027903662427002600191633623086191899691986337300193634143913504057605415185755007063555144016736790960769756057308552670021806065738382398329012247234817796666167122988206769871641562811978467332173353451511954536222749609713743838611034282416709100191444258676167152218332544376238866255407008056406286768590768626290310449612155449214146576614576683996299025447393187365847922520478871269920017206606983529822615995969238755199924170474862966630933327013252486898406883608060890161969150905269471546015932314187220467694569690949327952006437573239073908535703173521711313826527812528780443212744651605083398787060236825633502557352622857962986991339839730254967588158804228036658908839292180741809111097440749185721540500255380676998351083586770147322274912962455332728071363627662895404460694719109426578002514307300056026403023563104561329174069914432474967276253266188033223089574901726059053196642912395787996258274849587753504701158517723152514712230357468336416962562654810157455467307909368596701812461492990387018308932355513034138744239686608654307712249056256576713883009547206657836398854937173095497469363914835179420734225392091672007043030731550180904020553208243908865301540478826749286248354758371367609281331397381518120250392927193183491447697283393441057565211194996973329591903137296796332561767558359927703828837454227161682077942420997522775490012587441822986192431992674998967592541253102055727374456380781885263134285060477903669103581567074731385267270361411371842026582118999612590107690530109065742866186837590847902371533568293718644428782340737501174700002762506295769259424483900320488467456206381619143240097465313625834690696969437116167698492951914690002516223629867507787002479494350282002868294243249834626295068200089755043052195498923918199097820133691109458131281642316932206890083960934515914175484077543749380647081830251609607031466529744055748468151162724907402443864918899956718961641285228864088013164238031469556681769738357109098486406450318772465827354708041958593170213555953388952068549369311890002781774000334916369239115544003117799586566683333893725128493764300410884818441522552474787012404403627761718864941790798821714059051746271849327859086689811067361502936417508844378851498646818846401110321844064098754959665351533766090168543279736855703817828653452370088370845769420601906008532519728214252443227277877737407244820704475723139236964296062224772930569087737776288247773881670463203088833601474846749892726647548302199352057238582018359375416441398801970447435973051666121557855460184559185541679840104487109890475696382455547033690086228109312003176257302102682417008943837553437825912954468213921577904992955273168243150257492823539973896989428926719676020411749660804528017835233966051533289222231519261075639570492489193446383249399494048374147316676692069029200617788904563512058744901625454846091885088122643917826037446567734864209825774662437785796621766542865675325255461708432466322298607160005275974124308780160338449574966997925414889021069343862736266793946966039162238491716175600283069530531090098873212861763792820701433139780934557575217991302446019168685819625862477921530468353502214111966427373743680038732892131745143990645238713996771984621585202692619547228847711663773230462754582901875074793969148319095715986058922622008833038918378761277066919582726494449566974677507900980214771785249159467242089326878811171049719966412177039669624644028892924830656319326471999716385041176673003091924400271778721284304300452347801699072130088623996510203048384539361000880023461945530921924297684986418837861579024348703509110861999195117743698195640929782189849245048436919587875321863107950518336652588073111237777557608043655267572162670168503854221303746071406137926140186334581399026925719227899056791268787384459264607473850678395175454546987611666289232510226735132345318730863209940272444648902155256800654566922751445661151367960360733195172533653400266837479060955523325455692268815222412916431715988098237279839659995263172038921882233688980163583282790822041284349186366402408615498973133770097444148426044342610484178917766363347784968324968891332917276518357895812575129622808907952999440982224068610772189906930227622469355792297935122786025668470610644453679027806776542097479203341762913436900967721581288776449458471002491417392779218556126137192325309810097835383029993589614456912744950134769825055767632462115010269782934253366305042114026033301441624670616773839343505977420501637267607334512901521606274851799134931612484934403835308844083606757722171076496504998314188720853212623235450274761838603015967049898244625372212404010988773619983194278345258801590868371832498779759928398830589761947368152943909190191322881209047278374069911630858695386041853018241853993875754130664036960124887634984673247304112145214746325499433038842047234031765823006229352418890508217492059552447333064713647630731170119752855338217150745718354247376256022840624561967185467476259197910891823753072751095905264107659302473736704490815626620341636719006564636669099423075326878255683203967683029125492631913970181045378249255292500383114220919238251839447697125379861370424459249432826518340371410839714446287606103514313395376678316641040746378934419622847601933017422081750999430532475298766736780920991812931064089915225303534613474236170549187543409140389486622360444178212646608829243977650414157212279028371858293140198257389815981941823068370477931668828175991819794367470294196555983415005246859623637265051965786556195113733481477924391852442314614600804841437591789106482403183310271795260269430177815535427764838193988267305080449005039891915415419928319456747145894427399765732090088345817520482282586946656021504260610474805883894681787722985449692181181084256091767001762537979206635196089669025499756191243695751967497722792666084244223483916625841898438842534742165008466654175042440382445789764631141754542571174506060257626348396296362227402151006838225986276221299333053932070750148137979098088676601583211324262614923295167812742087276371191964313951460659899113227691486985022006742196632773262536795858415208348803238820747545229033340913274714060182063058185733450632118247605312179031149587263138465938131467667934357908810735716899832774900556789959338343205640323445984626325805060679571697377185445171345802522690596232602173561143402295150343817690826415900821660733569940771644686681896290374742443416700974600939822353692982299877718156297425373038988645568021406145715578200510492858740343390118727017421318605692858068205114332463460335758219514257769358038809101898980307994606286478804170657806380996490115167038843959512841849322341250809281729016197874736459948725183378466340139346949968643215285410333974578177402869371279228736609879928657828057102546835331951608559846780318060956024216016730693317570032739697318115125667460264911728338161302113926507228491790963815021315691320498447231522597450752989680813550370474242470257325056908424356540969836179349756421093771250741785884319072180915932075220686710482877760230959927643889581925249454803360477240256176106386202773690627202723981956650788580876342328833363577153731351398457935836409164056763564196853072541794587380743338596758738485688942562863672870125653092042404363346447302230798475113174159743116634051062500996291822442768901654636499163355325809344057479970863888255454933287478589466794000654114341686940915636692316720277537176584535702511166784339538433196940508548945725591356646886732212986351344952643120826941967770364282002565380906160617750805986432537413873782305670277631660868785874309414564711413752728788100112506266931569961476846580719077188376656015212885113409758659365247589049733904464544022818384293798405531652123121220348167332465113768162759433945506626206612793289505737381589985649283601848121326017443715347877800691912698713924690742439343778540973491903343095574434525134561112886731039841099476305349303325189172948197598386596646405902631967708613601857343067583761439635287077465117111653768723373446189639346663398523076385295708147440297971527675699332571193757967392430310722103788907934189581198703301943481119078281287219705966126972799327533501558374927859897480705672528858972756112465705672072321943132061739434679115166258506075559688610752818141369564896184367983402035740745387981553776100326418191458484490905225021914401969362116957938212646578522773268622531909078574378763174191552584868964447051148072281884675921681181549805559204083835833738107449161901760490892835608376605280649242171419616920448289185477398834135483003209444414699985141531390966901837661681095117894518248927772241543426162907208286497662357018702661359409763934026606484743226328377791742845993397827870241928085229918707225108757337870823261309341673142088764662606335066850270968362116561727253886566051926632965019945118708428757682034217091784002415005688229169692702535584991364890126884689415588623925843157216788946814009423541053294263124460075682058597367744971983005694784736105098139926378261634546556960978072712886316009894183544384518486044395965326186724723261796513747446340361382415296334312716000145303808486519384526683368755741842727031347557065980333735278595622893750502253330665025578162555508451167059760309286463437198224255575744595398723335448522291340127210291795191631404747495206463261265912870731809231735360965301813039206281120493860783466863822519273084320334928757598976945391613824135317473122081777638258444199068209118649124749868465748097683487262550214106531362519480457704793211665729695214195324350633463614949959255086895420422231374039611681522494875350529377384327774668612545767104911027052663765910829583613035290278674834327181706442063970773015650265418973406323567814528333051540561254424522731703179863400392264737566019424269282246072472682069668919047828374065774296716632683818155263838746700895026929321943927875302966563436827484319317601844864955255279765468548605798399314676191525975880995443676644245525755900022519319449398211298749977901364421417984836306031199312408723079107734359060554028843868910601177512543760005385858764517621730152349480494580832834742860078938063043767488746639965987911916126505606103259804025022511988013909727817178232546398682645038739171939334335659031723564170747243588020134133587190562194865027602717277843153476727339622461844227916960627550654466627037747880595734096960229370006754336882101566773667730473328901267241143341489161316365488883294865611821958458092803194470277850676132828905184297574967012905469113184936448381089495644163233272243511444955631021295259204260046843053427867575550955149348228648601178076117023501343450575135125213603567694496347648296079080449287416369462751986889063816979126162485711427224402510828963823737991953890074538559626922381077739768512152685609766811187533859200953167083906649582911818956480710677330066337129049147222692689607390780609937099881937977178831916991217777994434644531752951096214683476915913427088032827351592051866440021166573073998527923226394780848804493370644104802593180500381571720507049500105671012359346494191135820284949783811092004487091162422226588786112379284561390744583954676772245779272140251869453924811797455544534073269347143745894295528537299007739973278732287289631561509290365473664549936371307639770311779661304934257188986455502598496473365949173194971688383377099920564583679294084275963385452842838193209743104306283703746922320695166374044700927116233828796114971138873417316368692608980689186581471779351546735351089919178271519364615792187934117947755940918771329221554241436626457584869003146497158336225865996569370781786344071868621669446314603092230119077969497290836895703943812489055824532388007151482946092207132761400300607196018113902260149806529974675747860138891843140666795412010393635081365856846542350940624266311242942608509043604576189384416750732825745382255527632542351557280435612130230627030702561457357121752791824816753986577164388671975397387356306921036965293215510606342165902538435762457782125842193958951260774248536155344055229011171688075999254724749853480251537563570544358985298430638465586791907378174731981487239830261030627687638793787320559300770632260733501158254975810400485760808157717375259760545422573957134150541627876957767662099093588433315112505605670558122064298507731615012100753492904724991732732145299493451747432196948647009615670726488630305668508032028366893383595474338917508861343277688535023448689333781589054220755628361152542891112425277210585943137443517102532365910540208321554047684566515957995129072000164749515080261480352342556195264076424369810055201746559325160922538799073050973995432591730474083091650680808109852914937263708501052826292980397231282754850773715563916353234640241487756807002624733441918442169846121980448604914694874562653330566483858917718747998630813552823964169231523236247086767861172961056943142820570681057015304272390270554582561289747460306444464801578206151338592888870075545917795384533800619856341485409193802140187524207861890798407677769928073094176973172363474891888750725593005474511271675100079076948988722506511578246542468590985993307413456619203589225216543376693448558743315602650290302698818828826993541604571993622528112136591304048666534858134437996068244592098674976524419703485407994096227383513677087545684316696711539683171806206196814702795594547551819185656964424749424480583201992811556670621334305449862026192113814628937611760075731396826291295199678375045211454846646150572029793493851349770201513275754409009247189473249928221353701019802393058192789336346560193562321146652611972998500924303916146503581830335889570785281935719821049887598795085935843967661017920018054669242781439340122470987587146000048124910176576436043362383181272882827092190413591022300061544726920311445542547314998175217899301959349722683563258907454502403634898038550160410165043038671546949461952667364179950946719481938537041652315052148495148544700595742054277997739380108042439590923033606204917914036614866814834286025412407408414312897514318033373731468487996788782111402059769757796065573300225522440470994181974105546402521517368091713022244346846937834897523280886671564431021991545805071496362389864390309707751535678989478444328527566943714294490204774157622170977700306887914501048053738763452413403460159747141510972828421674039567275554880973943788111197664087904873484695734648154407979182937937771662781020466805069861497321518165459537630381658015068936026735021036274607688854007443465674174369661447473707917224778353316619749449562053501515225421763104785449090467647876001684455485675169150021441574003218315263262157276275764257663973223956356297719539322183946646712959296784891260307060744638839408518504492129039839549167005388653583175146351567110444573507739520576738249256286847427495664931421703712556639327538692062314782311451237716885897931232183175581344556932146830214531074289750313483687662861142002128553844843778439994402101356351212591950407656763727227180634988965139198774944417063155566713295241894630919663028748101740894346866292089612404928694665764875125423808453294383032887855149426792862897172007270664016182575608174906331778344597338929616539418458986741393971159294317948381399410086489161955677327718092655401164068325249350754389984989624236995199284207614161180783633071648813986714283574968729460858380848425587466078877719567085031056874663618255281167949801397599941612039327780478550610513770793802208699754828148527659948870837767690646130035008730941699802191428125967754950655782972934294015224083640783050487193257453834033839270718675992435195127031706044092927321397489746862799546709091078638799206403818835392841898073619216849152529128452936883454969938646822137102137198936844667903705216304061989791283184393613766097583768317350774141392479451170675305235236837017471937911011086547017236268114179382090191428137543717380572191066897478062151357182167876329415516740435014067437985991488638907067008359666813746299976824378061703875595797592627772968721716234073998964148168207059688594317679715613678636143744202939958505913263196583678979292720087242241392300090325925325875653248111740099085065477830255567352399360920992746907482677530804237575607352535393463312364911858670569827730256406471878966447085602729140858182183205075223597563709806637921731120897232721400235485007029948241932985609164859347610798768319967726658216620485748807471878008320767485015032307523796118732375329303386617973691730812261449446600044058629492531053053098904334624148458743225235420358719255157334083739649751646216557977384179213242755636250862897391748685530257165810654508124561735418145422361014079097595568684523031213011284723628397820643180138792599381311535318917438795577055794943808146450217206278164533350041623110406165711891898860373937818834146000199836562091571594651644600175955788197712586685838361459693085703827420710412598224308678004794677973759434216410491106427931563109507243979754690991735559873390655676519710466293357123280590118678085382373222742246422543506067155631748121651138335145239489270068171409392642213920720883960160661879794262304923673525858856463671504892434617595167011094720176028083156566928168539368818841510684561716853688869623445093106148712745337682353389838389217413946926333579655220153578881988438456018563957636941226577790392237052117600261611385898980719449903489013038823402167249504375646533906820602509813706248892128088705931972405322658006905813285418038311487633047882519126012472318027473543153615149053092040793279014216967122647483562507202515527741560845707751114667506176422598288913764126995696203496174170990001085138400115099218196761015248027400957301178854114040414953834400708794607334933711828629837425420436742016028756927293747574642124743767253287648756529746296089964883172229147064411079843260333674872892578355168114282441482663180722645226606430831228976525873294235318417583563129333473641790409137961732775233605652795380536141581493150239848887948961110000564512678827199674608513063756969911056963699771862695654956028174985337721169255448916619001750962516377225732846482403161336027993409693125910256921412799441259488663064715040237136052894493546472790779301166427517677842169554540402636070669608350043365947224254496185943690427428712877919705946763103299261906230588685403841110941466724921405361567635514929046920984479212852746631327729742819348033020360032674503655711202279184098233465290594907288888326948127828610769788021095598869107430406702595571712244151006330870975328384374075046806602820732732294658458252351796902289744585377054323543631326499773211454523918961041755563371539852988990881848675315337844251938898099735296209095148623090131118765756815188936516822485955267487225788767333922761685632376716666578659671104975018978006990453944527532987373390517984300069555254841850227164329801281129623168281666181010877063053870529610255185992123889371225006888767262483748692471970897653129060196395034887557314799254323961681409092643811714021390798503735203462982876516754790150449019793047540659556400008912276621790764153377320660729125079139438512054938147601971637563819580474358297346197619181334955897140609432975467013933031720043832079834041367523699829480203598936548672030736781871594145885912710605465370573597170109300933625336764069534723867408294883318215851011287687016841041985992958046652072070279187984442015367928086035545177667939424933316078063335754354819184094699772250061369091973004123622315585002786945135708710995132811026142934294239514749146523801281411104565741584607125770386212455412569010535404565709234518908592245703134159810513058957101735674571250439018863914017425259842035977131029329938391154743016634676044253908953997130963212182236614556625195561647962326801309212552231566937475149588930936649048166007229267779280969441141008576286760978832561787130593731379734383900204345533979344826003126275573092208014296520422947795769648157900142616316784852437399420705278201072380720265151566145231926445690649581898989493989099574048884099670745462334835948639063573497965525159379939143705937133775092662860136723665880346453948630522767770098428011662917892753607532199564750995105626332645752539002427318308486270332009542916265783175255942629556075732642480218595563885750639609254871482528468716360793580000523344316947247748537283015886312511998794777334561210226916417583191938459159847238905972750448375161091816349813404180476675201304470498497874684067082277904418958299028701000540197718040017679143636587971370852122576379617028553580670822491291057929092581329084686896457915791720882683293354812841577322912614453228514972852028479315724504861825786491331085210487607835772774957319450957500723352111715512635233823030712194688973579700311026968635510808739710368706042336180050708357988413701563668813773274157482172083630559795842741338724992384958989784111197408036355114695192322830454288410440739005125957725453072146234637405951899695041240414967442045250980555652469256580588883274263668971880515856139597591131798816407660664319248641953767533096888603060708251653513506468571082683138948917296977091658707378610713666483975628247466223167717988775209194026473807283009353748422577125276937773435413919910023087126599213003042142644439639591427788801597685195994275018051766759658886235480315150041020686153277687252513351602577080120785042575995192264349057956357842659091102564785600982900920504843107867921934175944264965704908340419548980836062604911253167815919589610371681258770809352157287590180336024250253433602296641747520115468461839731017047107256245162920167118014937131640993350233894086255182074170015874854041398403783853681377696930203437638654107330068091436356832583225345967210543728571818014065269284154318645184145108442146821769539264668210951623361930540019457749789632808010019505436922069612946324808171886934291963567559239113558934032011014637112710648066536946440458337375809862861613006065539576368011020809984806481992735418216146770632763960665100133611600271111474530748434092285181632041860604065718122705936636200636405280503122121661102508316589168572007062461340193801199923625708642773761798636352508559769635429582634674832134799731157457185825129070376200302027598847043099065922101086900627390076854945317298830307023723220955702565555025408807770000006554878409461216109434444565351988687648423638454890186098454761570102399167861870028327201816075228995048432897402501908567552485847544127996575120341623492918651459875216173623436638434059846634637665398130466260180230273666884071753170252612942056941198883809900783854739033155511778005310907796361516222512253687325355027376366977361239468671224566934900139282835254471929967080557255072577092917162186317706515172708970551547879002762973800601241738033573329396002770018433075977062593771986714133109888879254940130498451802847212575101531227254462355385605162303912543195650677292745638220028724327126557594021165042364310178764820754009976382086195275417547734800357298491726826156422458781156631201191418648808204611417274648471106013836934770941050777823317195649661193571650690876705769467403817175624656348255111932955773322758165692158169622865143259250150153760709752807286567915649290194199825042300889821948648351960691166169330801363660276819478987179536028526268482842959084206079832593738264029998257517300322651994661014861220614245748664921920435196416325576314564062920563207356330803198024485533512827506648185329877394038792356460093454801808542532855732893761116703520383089619412634464334780554579603344694216604937581274033485926424149291722165346665464885172603934316651735460948822258627132281553298850645976803699505131850300097476164764202100347346712091158798215671668324340930062759499071445109526543713135847127567103691965671917486570837591394181429175095303412738734412040060900336988373944662365345777528004896352503607841500687801728338647550516274906983318865818104907098396588024410265827905266782180233368061046055519036803469462202612135687681947007217331568628763182610205224399294029880047827578453468071368407869552754516928405385696767162884064788512829134402917600007113165818447152867449440475951090342783383432553091100577846151821813270616912027012981843278898942427701624715447484077172819478580333832061081547824720626004938416347505614813666692308377064900357080334320404069794598018893634425193554241157398052247074776375407135592538405876554148858216276155981244192944891520022166426301107231369824167595960860395661853718197037820417565550886525954562619488473704303445469873266984399951519107455213707604132937243208380026938933640277163522795686113589081721304424295648603399141214223090808369673294536173311712900991304014020376603155386359275313000228509368832931741046905686068646315573536888887057428504994861946057659461545407923755886337073021476311840012053395585040287101291615655568456872052122159797429591470769555215821501389885390626897448380648922470517218221511764104093556630976111645132018612179683076009213717945621365936998171948117874805628646054971864168728456230152902004077001508322711565892999028811540701727290209831910527605003569771625590905468391711167156091885981259809657440996971494591861053272277597077363623217490825981543931120567743099124574590949850187591738309219175802886462154804567739704619852531239913026707610628903218492305198472897867930261636894337609453227612090301078406199747243266608782491948604453058530605195950924772353854927650198031579989693081133239456327956900711194505524975986733440772642661860454772238733349679232711868943374127335872488953029086133579883881377691322721853036293704134610003241612420084175727132914115110642529778785566005763122370097817481454193223277336326400656329842971268830132312974966649869550284302541482382310311279061646428746818669301242874973313491920137053527734784329425282227394835490876758855274856938826599264596203123711841094881184194801420357480217907197692326559198578019397685982953522829381205725650420867867039728738049215869379299160287842286864982055610909365414450025526263606423897118437552717298196432523846871403324013879037814216460380124754309005379473046159123103604728840618408494091688847138660150352248410520056678324706462138479457682749811229845045540693977714891761235580990941157003351300654213807923847092692041141508821287333634131028100159961020205387702920400674417189180502694486130791022748999335158007957775718101002067279748298103233054455934554588463668450858892868637291084326969963909313994773278730070375095931512067967311991068974804354826624415830223763588424396436254903821148842961745860144787120973854682969845494048086290054600144302590909557450874202055480617239209279924734377248570533047674037120977668510090638133608058680446160493288861606083535442148336909884278251380942364901217109078065980567264007271647137825594316126876368715622484255032843949145639500669035257743947323111977402487930935593072108335966836422127681438028766680059192509057731958839319393697981577046752958078622677872955339346508674853921781335238700318471335305497314128824168645570425287422603747678795052980913507373587012703659194360385326043396838746939923366281293611045236023435319446550686486141093381090027216389432436739059788219809083596027645854950929288959935318160618495154826160029261789414320492388796386578261693200477429976061640109571664567355005339659637993103925374877891419532768413974359404379327125030482309815152182038581074764989076766402501368627991126719340987965311723309168681747347401448580655273201096539558259193136687520728566325978645104376215316304098578146088656515874741532054001165264103484056216201886099843113080866011288495132511887463851577530523867383036762315436682979852734748621656450487550176545134036629049619755427836857696940493041389892487337219075825197732652956511192723297502506135567188368869236975392820140505629690105054464232301415739544684110654190452624653004294174551112624218967899385899817917513615242747865456701783370504827328597020499658561267747397833209326588159204515298562412133964165123820001297656943750618284239340368884691522992626318453169397264267175260125128505401466770352072641201017389517244135031416612622356195958369196672143559874279338196393519848633451853196824829030153327915504526863606557905665269383109618800580317202036129137453302249817049252777671699987983782522300659939300747186343733276677214352969472240501825706823641684619329850990155156407477852919565787305540034321602404165066240882355361788107575129426019555209666768237120764678557747502036502606723395884211276708657332808898970845286823087084557734567407573134146510917519222828344854921732962526709184124908824495854023246664226318804184302001969627273556763842916064328253284006384681523017569135057855494971586336071905987285398249418300667241632711715615783328331523864547681402511534364250224433013128959390869190679858988769259598356414160980803735418893524320685107883732382262278405187292296117726050595814312445295689109495430179858774981807671212233925983703283901634263166383709378089220143182468750270241856308796338315657993404948065787743572197782017784988094442834760124108348499936923466721393497422516970193975590135312228920321015274904291596986383194058672191796544793613092762935013998414134167007343949168777286897797540459974553874831744165471266406810955000214455747796214893413484888323446045622726505439573968166492211328250285595376505777916082828601188101998757318777462594754858779631375009034061874402562956138852136014745066356052574251978658518710240645368714758574070948818463667549654589632133985714458901480732682086932615041667831120066351327723309046494827601222932082822633969164190158864871790351414657837295690176386888292302409923918214016085715608629145901777603123391666273571373782554749430533835913644016518332713620800576857466762385758924683008877333584679809460044776131489808386919629646038440760205281174514923124820205064926170647926601288371431017607533930874425938000181749012242649504508053592265003989607058926147600428010153144795186112056277315449941443549179073324068046012607492651324394988064051178216933959336167923912855253971530446581716400085100071790082000819581403530095564805178277780850769451178398494079218352290802815327316197048650242534817470948772211572140855095260034799640783243182253265558391018070663172398198484299873773310633287629594963989166614000602896796026681787921634574903470529973428587227298553098044290368888108104898709498409122264785132748994235374235859218467654673120508692039890463995963994884096748403808609794739403399925131776484105557998423335398447996380821423647282293316653901982766117241606093865702340587323729676234892730379996219690820599083259941716925412550875305154997475436272178405663205871449870299400059271882226679741611553276954100304160403894731549857945706556868230806547007776042350655490054587169085168834959256494176200124907996430451930035344542449125490607608363021491077731224670018841256550291057789451309023056247110989321855625321286995542151842764305448031897913045980452147638086098198304710296541009868951098072387595235369819077799568522365989216573761520243247686486395062488129652603975307585484212458575177632993599500517968481024714308476274368097548991826405776178625153120477352516121305619546369427825742196985010597015063612474295616189514052212339068119567617405236071855953445193195050958364885838731467038857537145875272369189693310854814507839302543659523145766921005105403847033751689690596702757884599399920036631186223812635611502991111628559322616065344603608897128310886300759583305752334823043121716019129508680743076150657836582489980643434342988485100453963833348510996514449109198692321458871658116520863742139403653789825367200857508849798404446562525192870843038643406661137005150396512988676796049474918250547515957680938551490657375889459405364819823109934052554699621720637450823913439705546141548103899736030282784436973948376405586888626912691137229318653502758264199386750014378208233294205785447640934176951316209477302974202327279436261209744232132472613751961502560661391064032552360409541236124994791596771539252048344633941746467131977641620632210071616607027805810724631534748790631330963609168036195171730292639688844957955679615218593474474527128795513431737620592349452760189403245047188989528985363824102074965289653365924409072517403630134309680277130197387633167719729417864812105694317851049622688697931101037542514662432191849606299667780058657418355016312230959532223453059980461756384601032162839910267723828991626853750955459611791234209667415161184023873598665278904563673158116939966005881085740889732589697946957849165364802178520023113846387060190509612151497675195577348695769201966693221640048968321223524005681499420356040870423440124142395369068016454813769096696473415710685771868854668558927182961624665492876367355398360106061059497103226788710362420391289312797407554040851363044319508440897366242247290989903428355352549082166964210398130606435570647767847024710824164955518862455079168869580153541338124333717805699342906369306226984042989485810443390304012111741713369651296990657185205931170272399421416041571181469135413445914500970855221531440304370205303771078322809947804722220226786432357705200038800726048073369072007687678163204083358574455499848866333901919625567571553069824289738563505249843498304156428229491356369919438180188171490281759159407607331936522356117630875374503544512195733661542917741843926800832557429395051652515449570459235806723437119944218043196338685449865854712181345314128542508181736916169716122904176101057800611497717207716242341329595131274166383694854521541076936948205147818701745636732557175579759272589577737158477547262703418530732633564829311426335982931984882133610499632854159613537511763841645048904736501670709757086419224904855579234064166691573164698549815616237796894560724648212151184621383841288183160874083681519692361875882779838225082750326229546354097615367662198550140338548493267673898835607152331961377410462061832425290678405922888008743283648060876921878546320470056209904361281374672446326357786308237724436056098886372038985242796143751263307621908826754132239433069102414840412087051353898296879484998573549666918239732276367642014466278210527385720212486723903549994879103037093467370581510954827295995323898177568211982029772513759446217199717437532285177578121673216183347907309612743633153402059748754585112156650588382062972469894181934468607226742101359029411174513142185231938962081273963745717799522777958149994009102409416230673152198490512762479983978989015028310790111686013356628702352740491771780152768173011274818744541059390885400857180703355584694817661122201169881341341536363207116174827782728107875405180233400911895898067566352598659667049208908935014678858057548048056754062288308539032351317022875082817952839806204789215422082706896919716383962449690665192890846157009042514453146412740671010328820416124419451482024954077138800165583406547392755672256308457854949283794025814744680805469942959420290776658447539465389597233709897606465000631565648554362038111225576778675740930449156508860840654576454708478035674793020743355021949887208858457548330749641683092231412206063233135514676870334235872866855935770349348938939188755524543948055232930751859863383196593232739158383920292960584265238557168612359474153018942423142898624410843949843435284528575778426622523884220380021630322145954166751594342654144201528944561999548610439474788019183120822741079984102412613966214002909112683053161079005924086691158590808441696858678028977581398082201558010912424897455021382868075196472583655782951063093204930204827048027718777548499464740967610138780875538119776085786209885516172061507167954772379003993869417471066100665774461110343270662678132990020813590263492055796279550665755428830718335328484575123859562088015005088169181711705339519070016964782546180357144656809422780109965362856867329149423599429958893537085054600454073634549090866410558994153279918657747587883568345328048236752575015643471706144438675178979771590234665783669202746474220365833839222035524613386489910840571107751454938376267863959959963303471579707755479884411358294155415103570761104141255983419752404685277674289625701015372189851928717034809679166605424185978282834366670963791638656383454896426502983487243322533509579628781704305668142189828055216236019572733766099998287665896945254519011084350202181602114343055478254077510468281917838016139477588348188528469791620870631870180024256390134671035825703173804618276526161738716596897590315979210688939965933160767199908483862297725702115083126626454523990753641349725121338053504583557786916713438450543166402510218572606320851600969933508203368439781613288797354721763976655792120229903161707951037970598551563509524506002021344320133829700725792772462790266542412765264510367822650753310906093550115966855397098311367768622058662866433993607634473067457268949172226007985677728285579325840730669682460747894345090464842564309363344475098048908579628011656388181642252431154123718094895835887132876043450173587428236390321922596966039118546329680785359015348781634755427895344182046600248500703463822300371410923180641378377453975521003722984678812812384150713743070450346956626277345405486544881431126580840679392273079108573361544418246047244001527675401617671317386346513049093695670595905897295351366846494021848288547420746695664498159049217048119915232994917099139213306259951370296546095509070356854265568336818279144921337878000214667043330991490606039720108800102890916044898912036764419257829801591357851733662663589741760405214590659144213205181486947405103684779891970721404720747562737718318654645032796070401613654132954229196676247179755437990756989023159123710601646858580388639615364417068452772489583839335289958774643318743195218045215785184068414031155556495488767037896227555971778554490542409389885042451009715857078341855414673956878063911614509096218732022123510904530145102731154108574152283600779953707902714304484759073488441824406796845933919003223337354419611615056814744012288125077675283194376233033584503306838248711712973390054284069247905032561843056589738698822967816568643868454396531420661681222218962157331609308993923995827981227241594599695375813194698782565603244843373976004665413468448949010782094552732665202990754357610039212824536714031781206758666675332474286083634392657025280300562796070271468251324211468257862618801028765154003643299444373402853009187198873160094801620582446795930287640673575287006680597787259425800700442964914368106164827608131119185270202490663522967491911307207515384913672218594535625035701889785804780673540002300965130352684020941840996656518617698715243582599527463852324415684043588552476048987141384243169032661170900006653191896093984710473934775594272955728225622892415685313408025653034412477018793210059019169082104892571966158741477723336245341785360495042885997014549744077970822368066434546003206684970568668374682186552831372351775938121600532721490904672547619463689961198720757775622450267235198051657925593501565557501325414097469992200102394705684767913743502795094668191412388548028684280626537147060637266566515007608893162085496637226150519309242204447946688728964750502886314565194493633792425633982902794066085151999455782897697693951187956192364679604705412087203656577242311438624365361101243509602880549490060973892127467088134145206615203158002756335147394425913369386138782667990548141030307100563799411237681707176546837212038071734694178639228997721224003697491305633815466663163424787850628589598917753455284734288946463629324073314569405590104822267731674205709010604373641219348541120703253649306664875992330785821114667226466714494283493524583202145335936058439781683291064620574105800526273150981216025541162434821303305854596205181179219583052299197465070965836357126057287194363208476717176746396575488479616000295333609599754128704051809383802835458116599778093978801869131456236570043172630979257358810923060488764547124420465904887623440701689000915436109011891352064287938251322170833698977083137924178957789231195020072132104118595465533504591653265336497513088059969044496452087408186608892973434170076163675577797590996199723307589430006308458225265065812525381847354200693697288461469872855985123237263595293286209322675787291222352460641184656711975124343686210616131188645486889713509012509433126920900648599297120259319993611189813674308759568068217723178165978615063257752194257823026927557356969477368638947936221953922613340799564823681124320851720091421198906778141033121785582093181603287412710527613116696972115703374451182478005655907778455462512087792692932161404360623366548270364091139802795131734047054204200753560968222674582939684062734623466257888001443746695032542499704130177007058570439492711200473485661978994566381610544706903419344296423603770876347796100801556867373609810977060440479445966030024502813805719840036145457082682537881958007576493624664860303278845198089277949054014243386338982948081620491081818365004746644555314302583846715795406342312457271858625487780450228340498049730238604006062247273379419943863146453953750220299757503526823135877193062960749092291151592654592320330814999028779439250754723367671481826690953583512422984428694301551981907229735204701403084555989107054224143013486447467257744500965453399675958489360349345632908409062929756508174962168798223993318245310335935808496459799433238289649069919333991579428855036249493781261388827981236783359473671653202384949503911627427090927395007619815159222021509440251990361960719150926895750879906000602846765923180431257152785059184475600907607334859631687409687543139221458786718646146743914164072182661082035078865050329606244418546889953973281776357185366320031304631234694847987533926559900755159189968014515809840904484531428838637272202436757970343273561174396589838257821412799939528014990979364965345085241407952947040349709038231389717468948602280647505615119555257586390050946732802054139108094190049047653844268152711454496216804579646752089215239462252676338185652157886938433750221184538358965651830753059606225898518176198968847902085193242326579016199294657234767937615474000722031427206501747364201231161525800520107804469521023938324497553593789243990423354034172134534048923928551743466763901184344142953652172586974340778901173483215655313821638862975882926968561796462946546646935235033243143133427457694440039735000540697112351603879192787480082060843754055457513576058293977398173568944915599075462868330577992979638568808244033028272537210520529597174896533117329575387528566779878196551722402312353602107029429959151137370988477879729601958597402405675485277551695428330168585801424846698075110739437804170023965954840731109810631490985692730481569788176295252113133630003297539747001338634761576469481193297337836566705575880176569927016503145079927881325441556268819518972908714410199907968456132394611337997481013578652907209304949362923858364723345169040652442410426592925051124113616738352395769728938228711035916613107277490927181171704348089323743838174789086429337855495906260059153074441906503799548807406546181241988551259900290396388393665757234154340130301245324547933614617136958379121794428587527729683124071541111731315531841421907617439213511661968175843379969431922865708464353989643635140328918503077590431371127531922645981652256038006267501375869677635440273358705585602250064516578511957537002207568803167042273869938191087497129246487578556006448666533429040904694809955475133245130492153117847046582651363065929922307239247443288405041600363769762809530833935845204939005755819111615279691720937396082320866193197141451851752164944961273958933000889384369943632316450210007594686618974071072304817641395122981741969519090570396333911071662624479882948080319447463608066630073498510452032879556812853334433040699643238744435824316137822078418350008020372980420496013320977305899759664544243065577850901785101585926637186259670462519569738287509613258690391011164544697634409077090222291686113446863758682111156400316571086235247937668842537059354903823549246742843364849738908620905965440235487811590270977673016801521535772974103486421707135042802481780406816381821397520775487604780457307102790892161136968589794393605135617395079627889626439115744593155277700599887720062335349781462967233823683791263451177235503258311403669301118732863105150792361132956007513741000147006697438508199480722412483132226937600213427751008493901788623882427089697986137040924872636853919234827585019794663512436751500328302629126403740675748752560583093290380368667615208407698192630737457327066569586965083053710071005560431932273754382794417610774036897385626721223635261649257126033864204772298129379363990681849129722183388861320319153306370291775144899661725561706874069389258162314903883223369457794824437054375836823737777668447719873739107379185120865390368400113089038758674449880226224968012207356992022114587580412229731797596416821270727504026697728240625789706602173914770484734890783878499623805144615693297315427317077736781583772308855287650343020499652124005627414207878670917577993153703803487650365160542303063962598933699289592971534085373837609163205145298332959971861200553188280832238068574515559531309661631061850026528226316199675787625201683130890123342070418977966267786486551341952555358886499308804744020931737981251018937498558243458765207628521297263458578130206899404896414810970187636457948400887767589741076528088101439385088373995104811481769592510608225215792186880666069091265355892278749826390482555301353308269398969832976297758990732523280358020218701753964881521813595469376390398429952001064385446097179151466755057753931962406998408334114561860038787609330942621258084045645445793701027442739422414362425104969143359604932100620127650563256619819642959664052796745364700956266297396053077595052827883812500455456473765646725677110144724842858464735987139773612354507805526876381138931478580143227618995639180195240767961041354083123871485275725369929509759224014452674053978290966588893342876226641966164052127832946222976815607816533536579983781551247527930853366947422793695017998749442674112952235973348043942639245653683674647375188563636221783825912001186316166035658948137867145049866992171508808757954855455423553573766511301383015770507339036159111968206275023058552381005583088233169307493727621830414083963166966608899056073587617039929211380638388443125467266544357236472500618788977120362239471684622134094844633369150718235735467592265888982990726638371501817947924218528589369245327822393656399158159498527495218774220607910399477421245341123730107741995878256412024957650743273189310745245977138994552488717574473918417346999799243928096227596495039103610338116519366334443240891539483921110847974368235629902914384010887822788688149829925658101116371381658524876171974140712888650502632334917231828382348690908269215811691449241699898651033601488506489628757635040268613752147492351519573590834654497304224348584712646903966404245854735223687700185851536132120134306231567664023451081604400217011613788989111772671041529531028150463991394989987989139258575441451182888622770103539524201749742274185611251874811797307422293360554432572852980645466337118777849550694950107771752111932990899379341121533240444151054637039337107489223042386121905535033912634544203563569127083377264679030130336245601264362826270796212453126908948470945244768534160598804610904884327396093516695040603557090483994840521746898337618362358290765945910186601268340803729703640732485866883458640852044408336287752111438081922423022507802038216984040962618799771791902059155006435286637639828703368142767512568271902044175798227708139212970040470536621758094426659061455051042984177006188709041538758495892435833716852519211241512951110143480664124034107164844379809932571244261238952213518381370927187647388766632731738834343309159743310505150974133915383514657637893836747390531061133260993409357700823968324186554225479278857712873757296149933140975316402838244787749167115602516038058148892843613626606116101753950100513497540524853640210007742717062831241831226028992283873780675313206145191342882779953393922471227065306738084242089691302024928771168358231864567044682043086704547114662839319616592543144503160289524325803268722983638959859298002033771941502272005876280410276314869979229237354446802635503004362224244841143835957964256050637987943204565447331894719893014443441817938829265868526640959870984502072069368381319624686086187152582255319535759767539781062777477132002856712850756519254360324295995109519457378403965699794675937874116516913265999445648545639349735778317107729853747759115521752672202955807753577095560676856844406858879514263713682873885614891902384719736765938560676079010708593381046830903811506365931372634013776830089113654897901656367841494928382236208094066854199894795137384230080544253903642198708658059975579295788184906265882732936629601336502745132049580840465576325593655517037115978456838152724304802205180185756461362373272226780512175723950181112428536327173091964445472516638679801468963281093118488108022835813199491735747163309755759023014375717609837493289217314953248451967280810413805035850501412080964754878688333087350538051674590400020844833375175993624607897035341514009519210318857722478370331852291545143076999801687387321261457681901859190740537053096653799353146591660879996477580042647964078700720829667845633117147899329950755490872959607347646023757683982820616589989916237411516078152801882610526375002435025234855192775104616385594010131456356904003607598505297397323353549201849522818941797665772596488285673309421263208857478383242102240512907734357599841338859331395167003974861850037617106005350986012752286553080123571644793579597407766158498057060146399011351777659615683529820854747044885361406138566620424011207679684823832242683846766895895534188813020805339041481595736782482267497232905712493548143245387311111702969546945383503848346143257934310447614786163939302347251300333696146792912942706661263946619443916916093283106328852849495996045081225856604909022906245689421868271801352502823604806712731688365158449014040452281690459333149662887797130163025107583673666316279591473982864598742336808209989554444200247762231456431362046829627311725054035074825721891891816866355284141004743381654339829004239675424414307035986276644969274491613458720543285277429353241940551338810194435002450513895419309187658966436830048499293123594607689212722092166609492240197581031630999009252125030271591243258236637435064666480555489258591274470691124881576899093672973587044518715413480194975656066403216277200802430278925199892062924772870399054764271797369669963888826881316398287971037192075152592168146130982842752757834838533367426802926491066079270026348271361532811446884934335303633558090377916053445020210106075311203860096132387217150537298726929080403963225480304145004973129107618237051214290384264270276213557836873577574206305800392538353536209977786536097264460802076714278887208252536012903635079894003402407783024515191712840289980942607264675828032880529740737555675450838311023310468970461366910731814905389047607548434041416390344320421153967324536972528729113716993316707333690160232514428787538599706930500173821515430659055410384014035343753214776657033600719210814439857882810253005508825393547232215512398057011565426063018764921447484191615039865911566227109571749310896095709766393452095482387883831094403351372107734136350474424284581698468184396812065421811382624303340357538497036585366468080466805763268055576385192667735046801710957746770752579927991421979737695566168042099181275629719685616005209275801263144788682333631000114179709388309258617147236026528886894035400548746640308820862718313895928938063373417436014807711102245516376807912756291673993094984118123677122744244099492162288438927434606814964132355827313659759202260524708953453531193371849613340758932311311990494896878089152032369068981571410164276947583875493370123909420863972121089466790586887921363514405012717177165703886252520586257956947316211936427241629316533390144777998609758010158056716050034055160740791037049163328018509330458857797309051937417646215936156385104736067261738310351483638079678750424407343118152714022880347289920911063021395807189669250399351460822449309140157783613342073943473736050431800970841684383428309716216032485377675498360499967756576608142650363993804482483738988221128427960627697461267861184233894216763572920401827872098653254651285826038217684728909691213355558792262584484960649936925477632183006104676243742969435778810788329269114227122462678208987370470161371211535331099243320434958186812707943225577896680040248018731971125314170038549076798994073100181320102844115285073195735742864550442979391989614967821285417955537685261741742109421440020806416713926806494691422952803419532458612110521255191769899814028496828343214992357477193479684003307439688949319318864867544113911604279679231543081676881456477377092839302746620753384731084457492011406687775027036474139068608968055150687164089675278511769074313241942854287848790712945111228921192324164908369301208552743495408866866973409803775433344097022531207540175765414364830658065598712169669342383589807805674550223779277001394584166007064799887004192996715856287497796844454378255800323570124085531550055274868724029475846011452482385984690363954502973078371918614659808741688463326080781175787186993553795525566236915500772287139944103970547982078557756472167821879738859905536949095827090876607566768309041917122755576681316946311513217462209402815557448988672862013396865947677354601021248481366527468185743728877215028765273110590330186316251156396660978797906960291829844267059269473978002470616537349274177221038291075972596085745253790504069134193050412197906346902304360223373636721708670297783441769354890331746348200499460589070373445643616188963447234044201924215301578279732025779576597664466473780263107455994558507004504252609031274274372762470615711935720202269060594164279242698849873102442025190147068586268494046403705535729051964237514502830563716652672258582227425737598766909098253922908899152670885948253495493789240669799710744859961287078432525482758770888737108161329306635878504606497635944751240687787862855798498274906280885592760867611750001934796935487543927650173733131028838841527133190283082776969976583951076416637519048938608607072063674516269919059899149402018678033486483525749385745785907469398717431887409492207570718463137230818796105109116385060039857563647199752971255619611867926742345581044745240586922866894674120441724256577903275735177939284156687840704676186480013729529672439630157077803159151299029748796896207616165687984157340967697754411268908420259027738107575686394626188915328669953015864912169611213670624335255757983417148025333286157320777912991834855730069214991247245187778614944258327554087358750088088407126232549648350576157060520611212250360066595826167016730769795826826552497204698233262238877603894986571531650393990549546671595178295779695747595697183891350523330960294515057305154614006123163057211903571810729615701161734151024281153348910800654354925091410761721556878855755278097830599597635745396749645780166429832219589764603975201943906331519707123539098462300310806429857327746487994488414556780827550350812627596715043807845590170893072052885366871871778381900953160505187791154850590641885372159683117745633333159436525703041408678216631233363797860527436564667652944292599571153771218189332232364436362865557826678618662370117337349261861301955196448414897200884439340360154758563819286914537578906702864796552202716536931279421183489299413522576736264316495849589564512647174202206604973492155039037691586320019979313288699659460267199187190363779847486392946725691070842208362713599374188506127318500779959547673939074914329642676166289954560210002082588910500144560121732585842749902102489056986134157967920039057323993400816995658468995084365591146238965478369733161344123581926864519917548337345985956879590955254584997653245240443924548705764632334605130782216499918840974005258656565443620831090490512360416064761635019301406296963709037692581889121030908128492644043257278339616744330927469439478976983340067895230744506549943472377375937046924370956691154281513145204242410385571839829372916327242086820523763226701583789841837758922115611785897408760410882601912964176545645589610472762863362424908845145449538665573823363927066869296964032696485029643593401945839442309050912087392757453018872030176975293404412793365965540475520835122889800632722356941672048810862209402501390836158605812585421954487528591808542910934123080305770319855391865669485799393438736227070480089665470819762347550535445943817065830932378354401372341869955196541148572981189739536270910526587925288488626769278008461486155296858781058354656782244739258562799670459202873970308314663220397147103329365797570057450394886456391564259424770570357586226387871646518460078852321296936562237579672562125667762969881770220688656083528548290530310785518101318711907545108478099934669670078969205384507185443221719806619817142813000534128966687756803129780015290737888122207568561727382959306957522097430075943233824885275704230392518977571348582490049121992095256068323808012086009834811990867303943613761259082742849907615753196265325701281002139637985243135227706713759934985187463463504419354179198125106240498317492619786164542468411446145418297022859350015442165063185330609726488068544659272730452024240760706066452781717262669159348206134173252538285424185647020412320125169976458176776040299322336365083663119833333481887564026337200559978718106335231600547667036392825291454101586399117514851820627352365527442881322324409060127333909456516294854785363797302782526088880259552135131657181754466679349580231844021761585254749218686645622497876375369097133861692431574817144798116607381142337375811699062639804156527170549970967872630315394906090382793230297439566420435463574537348669107243267540630162351104764804647009280519889237244430636496396185850395652122924446338023976624320852725176179010113183292108539132590543022544549879912272390494590862920848025572513448680623357357355383708039919684422361223728768770987139485979656801394124800327363785547538139459580584544266082363874706190425542709600933825435212137525393221071167554867570005270762268757537915660584928821962531938730538924318707904538784886875774073869765797568539287940759094561111603627295169615878669119371361601849733954630776241940283072410392280302688837776049282075249635803334731431335167672673306482671765873812606842976707162791572962656457685007877057557211486915533058281487580927882174132612530376095113242543063981488529062216632949520950689059059320862015020946735810929717798227356640873037785213433771166414397070744009497659157919455283784102175051912512808879146424045764097078758192698578483648411363016487246947866601835652646675630764180681846788040810626158987582968858350685075037522992303052550835464997362079284803956251503830327034522493530035332561093617681160893572250795641667174017099112338246456047529159470362441095689025416144667904551427422908853406605953700716982691674030308932593667497017688093600319680026006196821440924036647793857447641234701005317539743233446151382238697943273799231345227957634873226910364789525718201285971074311340612974346689135287677586780750113367227574304159240565082296045031376203751034516587416705356365904843045516634458668975808891185214303462114296819642980308916964738154240235586091383011299119678959478316708844451244733505518122388352773117046977450930932556130736309892858285748914092266882834736431181186598049887536022087015323404986995697524608224663597700140175591524205524786408504853742863994384937495551519275110603406513638028450999077618814351492255059101139887345825542668733445944355305415679976697233909883546621865852907026524054409362085018075810344475260247843810299883004809745394534479262074560951963042678376585523425938088797293173759113779724699882402053294333734404814770280464067317887666493812257340374349298490044428679867813153036314253060111759395038630850564044014616388767921221409585601778051468814845211965680259641004685635735487267631026465140773811580830536461680594496926489234464053316784922898647636590470570754213616663792295616811813244679627493041341563403696408894417287635468211298714771536692370453470360143031918800297031775557750246657652069936267162833368205359895759180881937283397042145167941446716002332057218056591240287484371636523395247100954575147584915359702480783059639279191008641572327580507806050954950464128345836484484444319272116027941986561793493509738682370546831142528925956970746032129037696197287979086262393300392188261257026413076048140691114469913959147561784192939773349807692653092539763404215728631250630302210739522233650282333471828406927448364852087857034187720951798627681055824628367201742263457436991442602279333341350981311230213259032320225830393212059427016385853514805024303886612124178587573842804987739623324852387931102442084233087790048777703915965883677621703306940798786120208572216485959267465513280245813429874789471077909205539133844266483370959215690461703633472314339160673160892536036181729769144445536307538498319871548467806009761777238797619686676135259753237687723122724337325422548362507159653111846238329157189389962672115319619399873622385323636611176089744245245637758936145642867661623873493819645281059016112536154174861612235563406821350845755335299148161780498796697677204430070815101742804657500273791639505736606817235264732481514105245490941773477226032162634658564350748321168797631913324991922111697760137057041106365199208303704932396518654118044866914716000103399833921893985639223061666199699102583748848907095027987036022878416406422423127383822350083275271147475897858729143849058557739780856882966216523420373324994119668177359072519353957332431546110282607442891444769705384170640934697577715512429637598776699415584871149869366991266427962947524459144215917696606759187467141373943311228276248433038089606546743269609687026277255178460174057119072725748039311238703014703446572390680549050770362368356820128782910140713501955369456745848936071105443156687055914523322553724387867833367680434253413469547232128605191989736484767938233809082320037300099708740174738050404937381420632971901231538509654298467189721598674454888375633997774365453631347636852279310048705099198930743416147188142021382266057494320273321344931738942568319066429023278322708088310966824577685085117540970274789971907070480258644433414637015581244006563845604888868791415463724069745236284122161026750506509106953159752906390521625400909448558624179802483965366140321531026535857225488884386071149816037233006920255194556776536868054992537013136918556209616634889567444815290025046167757239547706569295414344372192851507818847999662325936702852920347332551053946478633680644257970607105001034316191121725042379166180882246784075981338528569003565016610616001986517170809745911090231471294634573536867833038140319356759962341494911225354705531246527463753723247215591882148546512580083782776964180687163659952762895487986288317535544783471050676195003185003273621533472428634879264445123514694446421779574782671471967158885995311499974660826061565907343440128493844335223949755338423004882221952251357781240510974630542439311318687463413587354702503943224165729583062964176061858121358273594502083402110822398534180346260815007871944932126730931662407452774816238458336213239433887501494307187571216482804162156293404914486552825416673555210107692756795215837751872496810121301853789796831602256850315060217029527083371346028232454883722502642700173372585074700075458020916658330600743124742194311740709090863073565059231976098709836465397299269184707911647866172084378871119628401622299094869128726176838038026807703120734552121310728657005809462395216771016354997148980404565459181678206389126005104668499908382951972111861630525383395446783828133467045130585131034609945177020600644839938784297299463452851607143657772642958025524949987664626792014213760493192950337813732574388252458141976476590349760825006123945112974312653974033001474716728559504504362002719040209029507451781172811433634371118474939491967492279805412906822196978648568604857882223453068059898989487083045771327478523008056748990149753001092256403873875877934997806505822843354944603812482961389683827708419927518636506314958146175068562821351964725797917489241204564437117934755323492929540651828491508107517339134885465710042475270506333080499535331482874365697533723653334453728153988830839387571946357280992484572522217012121109844455595975247852594679446269077797156194979682718434792547941232767515628989983142017314981993623047151354023217722036233270076058086631934463269782304656560384122862184843423516318042523981239643712907878843050554282849049983961833534665679123919351822562264378934604956190542797588049605647288218679072403292349590350328076191912047315313452654605833862526528132273788877537769961824621291215227861506145904701261043657138312430215618147187558243341070635866038487434434087870370176582958227219154889305452598149693764072219974249322291968048571625533166425330730779854493510741775226329306539624839254770208045271458721860673387687658306893150427430566668062159578307655017902331062502869266468125574932418706444872077280759561661288218891408715582338601924673826163469472588787415713512256588443975937883048748628383384070733373332355317247313074889037208031478001650217911306914697611298562198561709215257314555632183608109638771274125226743141274842206037478916714186437221424648288245343923791828608193834805631521273885900337596914581526666193605901736224415504230898516545105928045983758576311230575188714421935880756864444940197107542703179076314883602235674540627059898306270919193804643137175642491300859806131528164597354958360143655101944065794588457435565882795971571688160985028854700375565667835720616197475966226359925140205384889327374584192430699656224919384091591668651915693770402760227750334023214185252432572477483511420084723799682308286199700849186776692614900899153100914710500204089258754539650658256378787254569609003421180096128283746064800643355322497044732082196816245305063149751596991046894495645379242875888279280225357243747962823297921747529921510780893753116114743291847483547675762221941691915778389740918913366226591181572404978106566720467846847391540200168377588687942760240221101054004563795680905820315785514128359994849548646748979408266775332071153761218577433130679388166417017583791750983580843893770248917193508539850028054257899454377297186855525539873759264922479956954532885627557080916412730925729624238414611494909696205921194369841977855861199655174615589012429109125129204933400117232860506047617538442862889083008925045165738183008087629636268866288102648726976576750915773219828118353141077853016419810575531160438915612837436977958482406372263619459423338231609765796435710683634940771816663615076960933647515712506347503305742218341251308049267139714495343815574345907905481081487259164802633851410432382277285150800264690791708245952121219213351921439260167026794526686606877216700590853177040172100496485938659420263375606697852862366524205353800915305057336772774550949723331637300976296665306495537033009275291788754553293247649116918001592785282079230389235876637469269190878335952652915339158059702156383421307545377615583465634025198865910191977011043114968418852243494850155393630245922956975626232276709463028938639334696051061694419269578990031415673947570992627481829210384641378157950574408594787347611036141754797934163297515057299509088689925971511415694266009896540606987899927888666061433281731814081853042019934065953671766143210452001410975757218497675463479888461936400056336562331250917409968909085436500753883743280049933852645758642444675871749210702469005417417569049954635147777085160190042456453998018174190151742817793382798150068844009755513113703315192522102118578096749402879619709937137580297541284565217921150813107275155177541008133568994804449340796102828834483046973184555702198541076545135541268948136013263021542865288399229490311520117969622866625724605560882203598011702143475444571940837966345109956164663727199526468561948337752137434518201802201140728533820812624797797311557134382660002030908308112086838934083962979654096144245790484022460602245259135158481694353202444827817373321668411358363036176966211864413626761575907736746847211395821012746835048430732162085946025435839774272199511842222130841449870541729265802216460179012618448295356083128314408984007718409104054709890756995081421309158596007146578557168106129854252104393810557369360642236289976255075139843029779858479398304673377669103832048808527487034096996835512623072536104414383382058067913886556140800415775604439222047907986235175062730511945415753181789810034252845007065976902372313739888461332557304525158602445377451350358549460978938844251443198581632315493023712995460652234864629495443789334266358689729529086766430547519643605108477584288961589520822780902708763771019731223612621640662476246161964838911060393390704332682700874394220526292873258923375812470986655448815171469165365392632215008735561107156272541637870341084662970696286201515384549678678713236905451077529010923576552444334541987240748402552721575877046736957999355596760362416890797329465538357203455937065980791163336075963511287205664365032397741321860934998358942325721812650159714282030281797427471514899482530504676049939071704791004443802773536128902107202954966760501251389221387179954501936046386933030005526728416276200752523316541087735956712848162019880477976823643385079853637737619186330615555118894346368956031180019305090828265527977858614987218570608558682899399288624277217020479133889803877067162700811726277067541503058882514546555590427172831263064475089349023557850098814658454898320408554690013727845377109019494872240134007568682340837894473241711430053748870041953944223606877619342759035959559620135529861783775227655493303663957630146394598895786696702579993037432578648039729304240395156777098838702184411565612757925050633909877894099433136753959136388385084351152932352348420121738170964846575709973170781296759920774797360409950784415420193823193411291759802553587605623208568444389098685325898640472549274021232167551551142334183296960337044358670927272864812205776450575822535122418389156591380645768236014779528140519781093002365112167709516751661290655446597856681689028397478198070900023958991080791837052243202845344700607251984072783358543533445129754065538991289618988993174168711902749156370307209059837375363436498116634629585891610715091765294315126362564330127564579276720441680234404353922335249994010528888157613519999225561248037490503433713707085100108190454477293086805288957153711189001726366241022535512849102526966510517292159724762947746973288582195410764758049418412371425856475825210750226994043109259068345229959914511341471893071012991567532326098138484511689978595295113015168968973217596670015905974626511836270172514544118799134935060342491841014144629974050350141641748433098708306936838804679460845405478797387217584754034576671088498169499968042616613353508444108863901458745365904498897637503020837294981899751162868918388211072575831993889026795110592034662879582948708647166811264552883516702570555443218530018861540021745779143483397346768703338849843020494792809512521173862252011256018823932592855213431820799979275287922498052309880138462736381982101483763047007261719235700100153969883451529022382409520119904222219056130248373763295311205106912141858021377484948747824690859836596669256951315128280011281233711142221886634562633707461002922795501876330004118015788008850904644623047590201284010964636272425615270628870495463547755058425425484740115608762265604815379394871788624758626764833874790713653347732185809989304537167586331090958559072014618185642268738595279363150563078120146582448815498975317562728848698883452706042860755492311061983817745728058693276986048833137752687077088471034358143920796695907452451636283542667075343550997496975617765283641559724414162932077001671507731857486489847891173339736919366611769327741988872038590118073741788152864633014343239660146822172596773710478337055498529493206389074832581941490076447147847226143273684037700961331990283302932340073384624367824617240915032710157625009230053828518740364822172829749744132808051646563029332144633309246569163736835647892038429384958683213244405736990680278939916533788882854572573201243981417651972752796496129101423537623007145079882719727926202873505191342136003565441308048906695873277130777383579991578638030593999116688540010885166040811513001767003152384672256145530069787676307121889051264285705301837646737354407522836665785425160863100270995258700726111626924492925248841856410888488959591775311302320038711397574164431057754316903107775191111844767871944305850561467153402297474050078447903943538641919018223397314495942338852832334634644960130461613505966653704240011670744851167918695200944656876429142378274886528380807472605616476095548414189350177214578541753078275309923001641955088785433539022172032495064267538687229106297164163777522564565605583153997608964166855849543428450965827454604481491976384058796523728155647526946241544754275221597485570112440118952603664248772524476991140744657492607643949612234927980301305931076706521492211587261698539668414434555454354153327140307037739031065569206446854693013403759876775081855330355324037648792158701591806259784960533130713003188510557828001429571629531502283231822375938987409910050000303907585521176909315254667527381861789907642640261003009179180374986469922979485356157935657377848045507081799762669330135933719986403277608218084519314048842014546840354408230788433277393130159878167458214903405812696222994006665809852717202473257539492279485998417562515490479756478692172400223681891719123949015024723022786155510435286499969639900166125153892742434506186217161857230543428161767538414204380194563676581717679651211833669228051477311465762312311978679649909852332991784794648063402704522478969241438630434460475887582708669085509241973701753149459180642864203865941669934530784013098212516287040107597852191736497833358465652906546021557494448338796896718672644850770640101231674781363824201273887506031259508058619684611057524405278949640587681739218993705914162269710777035930387505978677717297459375750759814896579967572869586827917879707215671633721281089719048176593388087882610296014798411765925554817326272606754295741117782278895721649337895476020804139017569972420854319193783949725588843648382888560001795816920551744598177663119444296043151087713719816391031377745232818463819220631563347939387874261877244915949614977454280063156352672074008746033072395132804925110845836065297131164843876645228512172339302427845215945670384628617829183017909027495356532902884374804966412364618163810921545032714551842798960124554048792817419925130675345230733274421527706922355264939530363777747223534552256612444778716230802246542493519004479194507772712432022161176863105523010622985620386270939262144262066164578267507812898967720978393137837579927596230975441428255767694587315400849726256712863104957541209693542432561148951726357134123752549186962849443451670071788836825160700151870575501482590537470190186076517122064710227873209873734498411650158285142411397279857229282996563655891830986094619079225733388271545788677552866604251719315712782882527888448452825305214658975048715577927202086066062759842193966355975860796528368575307936972068573024336093463795492042160744253480648600373867379010208044628374330563674566923919966590295890221272964598007111545692547654735889001989060858686728749746513241218526971968160189201872579569762066632421115189622347915438972950156135168294861414153596022206175296356115927258850370462836139482817460714306710191379294923938017253023901508518122999249682966620325385913958313328186177649690293510557541841992195607180129272361436213419404523615045501500478075236751255266876914696715321622755519078073282721574066467452648999235708703194592444561981712068674736411117761145348167664626700212259046549710146717243424988689022838551164968700401931164619419109039037964095370770114256843628090980370013944618103492249336364660061688466880503414232574745584540191896789508169704063784918671314188219610561981533550889664744223599353268410594906608156229121948664755561536701169096583065007330805947463574097812978901915993869073626774869335848561694987702277872133984192791797119393774770062022780996636121832436616139379929499005016883175973151162893331337999429162536000640797562011018472827354963444292379331463398212052079496109029683940527510266864674390772164687702419609392076949107653469649571507292853124967961117509786411216898369576718874670093808865106013117863513309224853934202272358093897414258265907475127621869484806290021130098792035825977369193116426366343440665987022714757210817860968535852969691811986325326973075035303618855181471400703311986554089345904903003349316060653636985202843457877634999424741496610568758831156424785462979054785751057163268088450396015857058281143922719308832425571020145192572253481613747506701434677675662385668364113658985095073828343909828922665936346706256514668949883356117328165812386347173427014921166849844389210805600170844951802503873057634983770164830698893954259452314908500197841415498460238141904190111268352673287657508145403288554914119329783534165929234304051446880177179750711814621847089557413049851685169736261639539975542317784723331954156291854083169472797318239954375955431998505454968036400102892539945091064011090815186601180759776767464238496337953578719483104371507484346483016013030816306798453845599508839987318958247238220565918384689086113470477455517590166924536666849016672084970510180408534513583377153451489357646181488169015650780044459690730390968687635063529269771560389973169835378307271907419979422572198424535790087654369949935388413574832064746214304526789731321231847440038902089189868714458158405334348022748619049803510766968122525427187235675534343641526572762515332371124607135393623720338989184699973566644393644600816043923425621763866378304814113916586184177797876039853166937665449315918527728686012834133967289441746744826509203545156779565565555771213177277436748595928017402090665511954930659444933874695628608057355339282412596288872874375306160715519026179688885145318328890195105950492430640046294567027407865871029262966332941629318714247050402188211845582040168027784639933731454436476694795971792269173644336488013238872265655734294302236597700736232448701058451442891241871848759178168862036638907832230725250335472128372206642046699151326786187441348955486025425797229545868481445070427852759281968421415531965542676929801536599444757842022113147875732748984484615823136672631687292672240628750894318569174637858370531750394468665313921124652767788727466274242193314956611441081767399090725756538899285563018465244620662191298878422592022387389795039421761122185082955457374177085085876260882718020433925406454170063268674668869959378009704056547191558554723416113706797171304408962146087922606392930412187330172679320299889425985135174891779122248944874924829697074063465366768912624247275601804924903935576686601697469245651726702548154276581696497127986512461217525347506694583491732809921569053460373977156203691452558846288401146189846860137569408290748406625570119369366018891025867506260517976983374651836204053230631239166256921433272847822509903047422986005834350211038035364160041803666655499909665855419043605494610032838444501302196906000852885875092449912149407547478112769187495337515665148520668371923924105390183482669536149130698959450788185284840164779283602199718926153615074216968018777197910254609372646344796746486383399462954762891314121250181296384195717304396113186694627811615622119518017705449079697843350641127284628672271338524721496652062394880073035024841329799120936257787300160672554855371277641909722355598721915589766995029909026148968425276988082097435049944268606527090493352995870636342851963814063658285850935091234697742941527563943546102289943918922494457458827773085330196510322189384818449181672825363486587790218353914876041450120187676936549874074973218244958093286613340617071573536350262009584007063278232520218979060589077226501692665111705193215063657101685898354192245139809551064902650678183706909938055973008191727363834464980193033961274736887222649296116625626938171804755058914865368031699215014068127695265074417071960540219031349535436871167228195162671859844000247463031171607508676334269081589819514502681310878540578695574250242834267607670609050835528211199305054899258137185206949212981382024418313761200458223401358249424461993102979915077229880609740325903973167708692949061138143438953542664478163262010899548276343782359017403958893732715672763031516308483632068480740233663750971747674467144420690911134905587618076842526133014607540046396129728532639307455350953939488340246687535339153847566708357437237874090362487130320022364205587688047600743813071008090569224335137141381483419691751088262329887706109929474041681485287377216653662353782167710959264730503652376393017489928456774460204861305847178320184609773606454485896772769356482364045100772347348091735445359046607938776638739252176517605631785032848922499353328196693763241356204267010569963055406372035677560710205501304421893433167480628585912386938744928100055886211524814121677711479943961319942934672198201913880742363562410806718944225978237626344313063656120614485805022180476787220034776717507206479267085443475274451998223161106296995133442063328109473441149586992454450489066563514819273617394900713650193662842441710894511337885418400175759514125896039664520923842231333634898619429552349615486384566838244120298427171076385913741502079044807267217261726711640493812461846198531306402093652182561904329082750760857442670193478608528246340618428972190077908699581209204689891926248477263563934346290517973628322299489630975329049077473310944422462392163155343070292178973752038574878092764053909461076242183600721835650423721273784124513561174677792008671927706191919818690439232187305344514024865910607822894484573797587965020143984138560580788279778783572865581398451989936863819772926925069755069063810497232875168631602775106148959910109375292300581424342688248582383096195971006872291537052551541347059149326596628715844412133646284701307799685202207119278684112735460172249871883373597240286139517784135753730760347824668498415330027708671003503292202027535871118393411766486036859247184135768683831767189300687783377050546407840933541178605935018021908868113013966143185328635148494617409914477254618240488358545900684172528076171921675260351454813669181765534073773077975730473877350717086167364929133017441222638333908750131155296580167448423319044078791248314227398367173842636881573035941790292104070168507316993429063122050940390684919537993383150580587905261869397808813781693276957732977109403890838918561015500611385583359405174702478121796765197620867210154598757491161091234617373076386235070281943014902715252729886293345198254167569350835417233116016326659103453551518958814897371601098307810203260226375857594535549163796834930608833549377856884105927918600454499159769505758517447435105118986218913791874895807395072124422645393299781685884853284479503838058025220753186018305460182385346823423087637349441579903083710872953453449913774547791194955712095444535909142405192707856687366979716652541389922278264417129243312009769769502649678246749513256880504969896488802632040897227126796103791551617932272815562534849500941701573840801377498531212587699523146459162330002010075717884140795575717908453173597754053906997554294450169951740171334332457907305733794991957008567705811077029441031791429903187594600508156608150511258928696447614727373877393159741551804591088527956937767960917690096962597610863510721940622061734608586336666047651715775554895157686969747077622122522227942119079272311587342085709485306528571002470055762556634422790922613527561543490080981864308626670203286277192178602475692651457233871424660238189883632837027608585743834003695628978433203516074150966467082851266082594655833506095484612321313429143638155047884237887893716972056558721085085780550994845133184291807237387006314343700678580859087782351593594359422017746352586738579718910693316852566601496140711703431799301413523885509004212489045661812046358955762017256189365677570789223734441806790873144415172415642167000387744814752769728251522142356108522131959790235683962691447501710297334678335939829141341633662469831421699726512373913867334420858775039271791367064791071635152440336099614428817960076088713709959539972946148466285809989103803861431587797220726832301534490325693239510717269607110232621485900570160732385174798149304958242925685106626429826940960460257093241015249602787007916721602927541492806811760457985703873944550032098664192732956986916220752681902783611929670551368716904160792409181683298271386658894266420536018947544740342082293478276931589378785508453697392299153828028537796724442800400036597178473988490153364736037222694464777037219427668221122634850109789281968028775915976907262770229195067695475061884206944687741256658325416687106184769171130868277252730972140844478413737008668514063101890399350860384903813771011992740612415984472745378292556397388679010232257420227210336225331045825512951941321407243254638962469089701708999456836660934170148604443186188510070732727362087361388956626061545916793087533775598594112267503466276294724923237179457869768629240279373946624113444867784140505007766342279984264031789484392926825038288811189985497481033230616436650869178912201081812028351221486052388332415817401313783203063075658082250662406585482977175646108175823178743225250206593265506514594144247758671067375820915104547357825271489002474696803929157477526126027970895852506689321438319828155177499730403530298678516979715065309618722120523500655477656180118176217056514603012783672204686375572018248106689237520633222644334751173752623328104269084891066689034452979698144469565854274806750627328527914200720220871093627958141291862052277625801786808905147899866369553420385915570016715945975096448310745876022900557135114540144123352145585299190840207233934762515138760642709600775399989287418607472478074955352407265282557202153031584321144090520525343221979847157036851272522880533158406742197640508191173538408491685704937491690355655618635793173141849667467316980351410046683440228358677659558068777010632434558369498635760651738162168333868267139741286827905183227534537115789309659683596070724668933633578287985806786845115931164756502759955029799049877319482787460787744400331237572309001888949336000865328781871751501991755770305313002995989358164126998079283376559280946435567102172027883506757479133801296556183931406338782716558924468806924615807009680850782407522909200083745621636306672760772619530960212181862336065741898976721806667566441532400272089023707932183687469719130616547364167778091830995224173654021348409252316575430772624508309065767365609387348551994916508463043164088581050298705784180773884298085472734808978630808141158574460640641911573190820376259577886956923873731692029939858734547724004277291816696251681831399337714876144024777237995869360680170483550935287989078782512100855514397253314841011289673933526974679797936857667602662513236082999011313583807944250854407445458672653978887651879817162801645821884618706692392626454858608751983583509641063390733683970767061266782539128257465016687240871146446469997506571048866238220828665866612183882751785551375967724357447039808762803665774601951197619860204828506322534289274500376097961837138400869128887407564457822599066389496075791316966509816239182188669470617172379576513833201796895038600659310256840313609939604780503498370462039976642556087948576382694617417677908027133135761983155316077898730301115501918416572604988554024441797068121301595536045955921291538151790628371285847341883944374945943945328153072371268081438581609285382842991796832081037903082419448278698223994953444026513316721233994756273616304733774877923804693575237018523189937857268894034376557821433112434908788551744292254941847059140287051439889438678515926294429130791750101799902392052877899064463543560131144555221909512287943074003635852206541495982415952512674682878705999327211776672783178619409378524863101159176327937959544593367865192925206997984211670272989700016962959656149198525949734338037365144330579140732566374549605392067717996175346970919206822938135108833176229629299402568059677054515600249603373820170400032283383391337638695352452429280106689162216555215054841208831715250189236551193004360427974262597635884984756471365620390688820635829558011005735506406934351126664340010006393359518458851581203260226714969935965067084411155372427837466028132030915701358477025248612288373619548983464759083733969253846418623643002960858209302317059325186233029871600061269056077691392341856972941412260648381298154924581093948310133876389564988069199570007463582589836879472941965465634421000577926588427369629571899739844543938874499657997392057444509672113665810648074053302776889658745359557739996775014337929081944444609334413586003532633778269440173071436581574951426388828664640388541271126796048131560883845310915596563129650395641371774434001823009677964129222325884084200668037862887737742719517276957891647411073998419130939944970790794192569659367284845493834481801704752869636180134069573427266386149533570040909492846896854620215264199628520996799618137315380037533257387236354283949450308126899777660699201660196351512494959090983989157884396683997038632313655481085296085918545849392419146916965863334020279698010490951193450287576821422634490317251320476832569121539324383488519675751529056031482594713566098840365396528501676931687409753964079858939607220925824567816544522616268392137077343699066067932910974990315653337558557503738342693553195248334878411713108282424228911281790419465350483607890615207439918616592120293242237135181286989030512463328558693941364179457389054179278470464081969441995868902518584438074118887167802928256306565361693243509850545634078579227896244004245239182494296460564444092791072577269307510795236816409423569941822035877800216766442176790344238954247093179003586025643296867145531147866054572325875472224800876276671855637127742818416192115990906366722108650874769989599268622202614067276352351945990745469317639019090662817165248413469660281648057377505132639184600981893533059997773506412227952238520285183710938602555086077916563034942824650060363786095354785696773852946479199111105061722101950574211006098771648304763995730035488007110710141531928606232907681830083764587357765078490827920937159640011701128706834578843523178138655475542372457866942184710052361549176842304603057320573786480254863282323838502462641778126125884944437705253960851648745330289076875309803495058260204248774615142388914341825744186662122126719514961168299185694708414663037803489313446615115241237136440382258799441433204898034397819737427426589248420594219416510173858829752460548899751445515064233530065623065557946537832186401851787044070283344589109594896987487973326683645667466045030745520983429487067943474132489563875744733351246646964873651359341330689102592497848745363622622402710384335389679322337063662010227959197054957201508015526997093767567149151307425788983178660404875198181203610384642420048992626008089358944112896430654119384046531640380696369261334373907021481407838534726962862464050622290584633827718649248688649848683813934498675779662508874732856457981984976612780893460325441774295438594054123774300793006587754627525149022950319366391234142764516779777708790493270680537485509296879248124895544374668888415528864883815631143382617069373111708442373554501395006393272306500944505437851463136251424152052627500015114735500928499337899357753452830052594850817391369967078143386719061846630186609743508262361031234910578148316361694125891986997978424322006991425892123288368440168213913151860687679581725948837237400838388861795869755137695115531425088310765284573242177766960220995014101000483525986423065584971283520650117468785292484274130033106932717077828966403211537319949743139852707700807791137093260197478626271838433144186102545367328867256369065372121808655049755547241720242384574818155751575600710023140851660614312164793230698199761419918382119075495128656689018374284586318519489196556034941326404095171420109134587224956427774570349915584670949838383197124678258129982777258524511576841832206435792532546204265059939463343503869549085763351027023720299988387252066855721007450784924768026595865920648349056431940972399199944537765061722880428008870198091290022058617972379435939623026366173391951244560295081117161521989213912199434654223161134409285009237801067935453333076017321204445535186270008133225237246406695313102409872215462013909555086192513582839684550913134465675853177188528254280258669459057385966605853360706798483426157042070822850475054922426641337415573591006045940978324298050294418227547673346297461981463490848940125353556458332027258913576628604775285092006275592287291439395482325566739403856427986032088146190817481069720872342088609458370427077827650792761912066789257247999867232009758479377503671508043628446267321176425991206343474367032090705113546353285441602071643167293052319257800472531032869008323199663204593236155797920942514063640213548403705616702967330487236868302007463178829946659135160786509612527233913060934904877709492522017790443519599097520325971168926939259835867369453300045277582668936694155903666265634538462088388573312987733262402252723298804070550581960943498303508186657710976375253314017651021697790944525838346698445191952479163858839237505124647168354547293664911379516348561410974231540469917391780724972769513694746106224330299314407471194700121282103411341842183056268158075307576102571273577540429251048515911444429395753481237623625875441246091174459840314028242074699496528510938728082416040738444029405489344449305999474135486622431057073772289728921709963295559614228281043237482553105355720393919394588416763186606524885651785699895094617647291538149516008287636877868322801777201549681274705727000778572951946148752199398591167767910319438983239587760769680150059610002156123893775537578186461454390065750814900185290779204342311672530440280928253572853687394749979667691201761239153707006961989996337468679589277251562310829567055627068786076752406948394567823563369380518910749711312461122442174094536350257195452948533224658133254625860807351152029545909695481901081626082338690938574360482353224989535444899868503952914529536547181652933216681943996385722894059563884804398401188842057806701587401075066783807129241513706963412719353028550162962585956880877366984481558260814300819853688595731799821202415097850010507654414321574325638583755354446397835653839575624637526084098157271632516924956249292380365854981475389732667432176189019333309285492093829417558816577355690474367963567124973994535183043892517813675993788769580773455238109469602216763189747231242892321314559377340888968816686979410074228107737680803895485145348819423322045365804748416019795474426861444214076940333953587176643654102012336061030656789233150661922276751362675195927706859376873023548053689698383490975765062772174135998243389173298091552529189691659092873598947797699563237628038054559447813383475051347885669218153498675147704885545439634917773838706905168373859580828680302124091041505278011400690942526555890778458054015746443438267601641857882177928603323454241138173503346046086101788567360438750112312970048691935665166556758678607986079802148126510633099200933408977007894733661986107761419172176058964690356679710712190578548087568530954124542590213983678257855913471077034439204621794795398964587997716144654959790160710240005326231301283973959836715841988568988366705001026880454409223252814951046937480404827240544379710809497504970185278005336045474640689263748706808439706718293389925026495707768549060448915928646722457329415743882357640204619714980696019779418879499413024645505649192863319954448113805526901432478062477523899841098912796955120579934306151565444823232140678746820533898089555061255166123613617205508137329675853367687637277663322859292705286587162961407026957468534162783024258683925468348210333493637992594109756804831564279957079971621670062499355970141972003739053493912164232695818416108677575448047322052506237031063556466061953319821796478037221750518076478771733874172033202318711028812203283596830799295070592682150109882209127252645574049273045644121440795942731568419676307863703725523712801223789514736847318395885484259539777613628838086485661068570695644716918541689775619341720638488140019255244799850021422324308172565907914132440985933379781145627296203695407057623071767737629917584311848141682538431280473187743076244790816419097240717682608499350096295081022980813874169595006128347747541405806047302875829936512881724298321632945970737908876232913167691082466693823592423468208957271010407938527108486157261618915075806806856685170330245231103887658856275208732065722866145913091093201982908623762483038373240598320991510278826484492389802350744481350003575684449266759118509514768999583759849191159019280052057525378095251297474829964820409674918940455375474994178208111062557509746016447974120401424801898802205222193234881907756081378792413511367498968881032735344221079726526723693199087791289687162283220752567631557158814326661541706662365333935669593491311754320447182136495334418640436863417456000319029142816055544144161283991529496069907807297781563725373021172820769141914763610885883998714789844472713222411348389194731772883819169592708826011537332640129414848302385652836639990403788495138645267465154746307953867858589540955328865966574284511917250820257591097098536861931704284462128826762991485031270386401881072561700073404867533274462520685004788648302966018443884695598718573036139826956511224060301857308894933278933747074433288047356480577942827224581869145832765252814439408315201489616617859673191809563369788573700318527609816439824580791262419317147050203294702144523601411469361434577309119115386111459045617866363692514025672989619657454252287559155587262933175112892371743255775929540373285383631096766278296795745507094089301743454123677079413665208399706201958927328294534702217635224217667278686406743999007309586796610885016040875691106132544224908970870455065006587013433591886066621889340246042915662384116516012017143752000221789932917581504473079954153145238403584944807611439761907089408499738877948159215318726399014808902572470301358574397108941661344925505130271687707122621527237425156761186484501723599412236481794364486243727392614767137026384605823972612627992762584401875022085338650131307547881108876173739217203323310106800668922987748194594241183907250034111768358199649347583873624494402578163632279023102727674955984934222632197479875586055043534005047520799527553610765271826745288747480344363536265623756637383582434318564541659001821078477723732743062218113413038712537543686852836987239350962368895852262537687557833134019494975967713708853696698618120587294287353045837260295897660942317412696026042520429650742001702560206945529918687738218283601637289790389565340963090827554948892465121811913424593028168647723113520530683934083858643261225516536511481196557683377195930464082514573275630998275987334256861982443942609262876594004158609416121937404053055417215749275978310180592602060526789495474703943163673298260065157238233034669429059999352165155882603152952949400203577943329844533814513213396231485679400033266687488413761624329917832000382578555561106980847001383821239894988473761860783149981191729506833168902634176215230177512663786752753080190531333940555679790291886153865051218020974949908151519167239789236785978507883092600511248031910783818708525867802527685426903258631945634909462098383386481858714915155097198718505325749051094966485953043133825496131554661056180917336141072437886649275686179216240634097345320868483674526456376907624126282425778670848157547475062283182868576759258499041001733836928228101120735916741975372874904954321724197765834420660173783890427476378814808685945630261939436492270315828162781245660095741287223077574970757066249643606750632404326638055864346822392809326507763431656885171898024702218835411791439896117968416090739082052392099721744832597020338439611503489868245255078013621661245324423652420158208989371031268554958448631508623184485025314420489829327339781167382048144895192188146375755081625971443189203734453252299059912947927869144648127147345334201873923834546003215924616704113607097590575187827822743653498504872461485795360486205086042703944900735743269358915597693767888178170989492079689737314409278277727099288875176376655102679493897658225358051954680087231441180754722958211610358517726402821766975349538455518301926775182546813787656207941956176570176948777991658893076329413003679450160790133246322893535398093841637972369588147502463240131035050006801784910635466747346951986766455746809116770297305821114844659687570549945977908921485334728117790851052872108143145803620674472028653863101406343625356261066321814795856242111984236972342162301834985379459700294239751793364823340843790007293228855760627625568385055035358230765867261981376194630228040375446218480517369427378641009192824627829508686525970201422378843953393261128071610490177227798988746550643536167113567280608146685436777835339751237663821284922314805615443260606138842377733418589939388650945187386323906068638111118890012793445680201566189611262975727829177572872236301204441931275983654736534476006275198008110536537287076230516098289887879513489883106734651468007072297272160309499470242784669879991860799558589453373699784058229896332111679030340230854687682744862087729685336272655555621812666141610554608461898923795124899651147836242619110678041374072799815899506086758084434003875606530427896401677130393867785354393259794003724645952014218751359161609827141512165155964373904779718767626008154947763660726883747090987013433329131672692611936492020493141869135923928724387682337781814789687545214767389964259245149080702052416034029334593969771231421351828733808237568100229198593660387945535538657907471914398496015864467932657441432399931234575326165427955695607271585372755625557150056965750509434954145982325354147691549584765996107306446083540094051740336795358136054582801762431907284558731298647230103545444179535607590067254711328907911260158656461905258237048293511651297167807854502362074819124322568999362578749032538012520597762691947810962482629896281122446900344902629018530056287319836798233842849461764962243332911606904649198367029840036870573118625432069424264519083474968921510591974813875797289320228150481303042209090950205005574677490082328837848327328974515289058291616693197735058858037553532054945609305231430023738805628665957540723307954244442692264883047227892150622350604437511223117751122862816662519272108413582415906842595513911102678518080273623504131256544843872961015259834481992594646337114172528470284468876378102327166389583620469375944312404052991134166844589527802269781569771136732620977799507116944801865130820358155144880116343801317549231896135735401272450954126553249138695648894948159838640554775896246665393766126193818978687346866081910174486568588232022303140141810681718843078268173146608597818469473040613647737815226901181436758583126323184674628386980807312645540472222903184899465109319628532668108365331344574175558638485960021733164914673566292702505914739485408801161648732048289183726944857392454696125395894291376698702356084975849451812079491684080572697487926528029618950432142175645171047333662706531517607776800700166176035380650838807732839391532146755312374998906321938559651598316799590107726856627713619195322140278337979751493989267174850272262917772166632151984100697723222998105235594346278497432773972901487486086098698179553691406993087506702559575558212351005451753144345452525809805557276646589475163560059745674332805820042515839642401865365966887781532052948765729562582131953095631176483128854039278997527253781234747804482604990638211011537203599626415836365473421176971512948542152794429811174740883251491607205753280151798210578990427005812666968891816748103793846261776577782149574766411923453364776467715063743640662904633600961628633037945868417868342366872513206518495429598733203682260292959503276888723503232373412934821602364374668143419291208424961758634044848416135621107470920733421883982434353206156325664763680489295836005025729428505652225448964399900395979807725181628369999744691543851734644953653102143480987573840635808887426615355326600749458421924993976718504089688779445960521840276668355340575088474705491039607445423632719646204407281428945663454019964367751393241920193890814437996450570840572382310316402161354006105108282046454816576553741566437245267846320767591992279435670995063028891541331611460175092960154812169097230316065128066510237049243776449548510477154766783983117389920267314149247057925651898373137445472134662318849191055957624377315374058567994111861127173831265189323437317597542216316736244427552335219598861312190682321697471365542691074493417393808289467543669655688092508104067597485351061745014947353951312637831739519893163543731399745197453957591706323088424989950152163518247417237829870762119265043146285676927406354099952025633659611177248038025706899548743373855108578645963903094993260563995875289845396932174457065671847784521286650545195102823432982561344375086778182663706880734220064145999741247879371027441482807798140019922531868705502459493707114052981105229129649462500318777976304602313941932930131286127392395255368043192918427157160497538408980992140758267820000613857682008171567987583625686399807811661689637672727629305997799969208548087848009217121486604373300001894178245752522303433061996134784245392753774102371386976405058774059673050159859305234021295800683008660693857894593715058453024035781851557209536784348080811953890177424229621116484560370673956621550614792707103651595349784501286032856099896590473938006752205991260425676830958942084178105262883542741061686993387898811000211735255622300620949099786055378578979274542265692795895435755918227994100700762554650656342619787363205023571128922267037237412264415898202420956902445201017226914358483115257199024768192242436927651377659702480707682688391795398698915455621124291610242207398264974146656914310127117899932518708065469791854430491608441352334875255383765554350368231043430894459888377662909706384557476014991822155793759193819343765054428869120104652785526451331979656299954298470939014824604638513035488319777874651798537285327286313391941169190027291704395777015690557593635831517453304449766449819731512894939271668241990307751404180448480440308152993469443778389823496639353841076910969732554355176686486415403411910448448444162084797527063043904811086656406536370121332577661962072429660632195555447349554270689550477035705828318662927479693242936363600067528806937360571082611838579206582690225992391930817401986415123563545212974866706570180426862847365333430050265350335220640221064886841400811990649116174738756496536655628010529037621357488482310127676797661661304633694541900275725371810399831688683474049166887929762362463866140793180268936315253752059309404834666964400305694527032901509059875748535805244252555361180643119455842930180365874547383563898508705518250278982530347903610632449099063360306481934232058039817727867183925526290478883490502809352696585839862083501111543597064984366066896709173297949426136188392057162326603586917353485033204487273545444183396142045409366406332060533974708433393025133978959179123740085458025480296343106606558593356848231690080366544471086787044756159879934282050889686054344174746046697204956788885718754449596980447622861836459492049798686714441721032681373999978007337705270485015669431074844971954435955289413397001530357853151914527014534657958689828480476402815067795233830402200455537891456923251840132914631414691775311945109742128060233815945499277335380267769786490384197914725657325116181191996040020050212150883323527082581323604449499308579758499783409415414601055400321141084186131247010501266953437026686605801444425384629932705569671358352134723248106387097560917497412916303062002718905793835985148198982303793393879585364561723643499374069622022766702251739576333118263345643760157238379715096445609174856153258091257898964733418543541231933509536927061289856830219699030904900784222229906975732832969097936289526115955139212985653498109492765590687309508706902699075852241482588143837383666120990903847541104275404290907206442937854882470568929699064506243470884471957279243900554254421075610179130689188389764151998054434519580849065834171497721908210086806773145992952616665330708639246485551308777418507526697033494888931958374032820637179427370796959309433926671303410478263770523607744773115646132853893569451051962808529270213408001014314200034427292316240871815730136743202452920957065633516336783372818106804874229318875235613827036282312926219826424150822391468528717302714420711960504732838634744124532769821628008805442528739800266768976447564543212952325310074289426527078707488794916750690703279649281820138259065799327776833289384904220526861863389458807921749988473336645172641835584618171638095683206594683541969829907759560823957896902971414060224016093080511060392328085277190589252924793117436764315374631335154512215651782178986075863386770180682015624575992901233959404876939847769822189849064390438829552115974705902872270205289287838005076090574983274932587229882107243763585763174277100628168738750815437689975329138724774437981806013568801493648708166460643607477655855981231903824056927757748556705862173567499760591238734604882131843533597720852466792335224293309938020255767974703476778411390450262059667977760082445070277284518787352096197247540415299609600976552030144367275374556833098421966334721182557854805939519048393475741141132934715081709286185566984149829695435202106626604552085490137844886551258837977554988783770346825494235629314934867965736751047676877895848197042080677950863950465733430224826109384935244357195578062747533299016675058055389405466325877227475312152111081045317873035401664164758825178580176380437057626009769127396924796399323455016558151383440356662657073863681865418685727367254470663911698271580999259974143772057900444065178370819614773526384243876606844754436770684318562957209922861074464761580691447571721152423526104005417295886242628643092659697432398349794980192606472224888774947613618485156933083334734541396234887647542113367607167072298707619001221463702528411633616503102467556909526233835491881903100764085187552412100955744192343702558181169416746575643761100403130552366025978387315869651017443689902483859984282783439546389280822364745362951377003369573129149752013461730539945299667889168424996802902037531498055268498596790614534423767362781316114695099609601734706867591269773152387725225231075806183043584860043854299077584099171293961022757394371609012319830988006768559328820703155328255558737890351781146271811594438091447856010285370227535381438851095307694255451706266049086629652949441678976591167635927989794657772009271218946287495935707671726578386804953273680224244873788071128135586105219682380237355696953510613823047612550542314184310199984075215001331299654616285014059142110336608062173971171576952074936031301840626126044091000765724579622432734587045009415397384615506656116438817666073914266834285837802970298440343236437822990576200994219633867068123747255079501280786885874480852239115015993161498428265661969324761025892618450717500797750363656862843556807739427617094086093361112278820821971625650799709591113277601246625075277339949808492928848188118878732040341731793338619318905605980194554285992041491224823224800276078200484678135564612358025617115973380061342900622012552260588857619647421559318787583156174462252019351527786435356266133981109551619522806230921159779169801741792575414088887643944709003529018280493656530264681863345021547108300122171758501912475720786612424041081091835425726598429299657583876133319509948278714915139091044852748342574136308021454037793795326384752991113346185820164800696669826767501836094936172040377291264426620916577616069355211481259534131655835161560309934570090766663508846302574660480735525214816919298847550269030516525578957093339604214978979912508049651710765172210437130413149054489796549707577292346087738824899018118456466517629901671154701716186441019662612793086807883420638989430377472990696672826645013264353485615034791583589593540496541919772747146856526667852351190286698021066014300397879210831357942494438197914191493940901866560949837213158743981773586616642304325506270884248810669571180039608765405236474265268433810134778964810829798311815316986893073883387344685013386947508429378577012760654117919754725641300817989060923564056555518820236838219870621211009608499364668365083698538794835684653060280823110128710411657349616978329466061936239072231953345743465123828318041305753566838226617020260531893809645780200373046930604172662097834003947255230254995551319733926144033234140459991313535968126672204623988319683596729045955113265436561969022626124412027258349173384879214155842619400372014764804886652274034737949513995788988361649969449903096773681932884984599973765200903237555585881952774292276651347819889822853077905539017759930926240965326900300849620084964316004579202610840940279899402876502191254341075096184110242963892223499837758710121471669758636089378472183139698236128824932317448955875679867947992623850693189516413783161110590809824159157026154765462277448800211426672645737759102294866312731696689289700243555356487410774608185092519947657704843519187510867139314178384230620380724797839965820896586249524999559416542193337355051768340884268060269370695791035051513711809695977784946049492737555501257686282048760853195002480365998480380044569379070625382255880148056844077061551245801950047114227344573796601403870204530924007497181442721036112319148855968790342447134462371726187619753825241121574701591498508618205838632031744552338864631794936378775334995708076063163132040841164563997428451152941324472910173234415806497849160194527394226171437344892031399802801461620355641679186167085797198750439194718700146092341734409222595679789119960577863528009320814637893308444306259055120777084108880661019086789115615754715931025333654963480940322847530373605691333282732989919883336136595107595669641030625017036778042398152482470859009633919427935209579145776150662759242200714142926711403019721947700982623294843637604436822803540109392519678735338672545360033868212240701280443848476603844208158072863430203037863021279054231025785901394272870070967263525058472665700821541890872041816818532728318585773145441813961884015439582884022419572210641447977372133967719150044642751718519468909436248160561885586736849751350569747520094079122628205103882063096561328009848394640143795700629431688828038868710616587754522481581684145170690254362493212182298790082057565940977056106988868498979081852725108826981975430694717871857367132020485576389827494870746035699267342277680730394848126751094250889614269202942420292464089104772249716880357177337131051560007850059122400404113897252550577961704866229462409964685507632902784517266861786005904664225875815338633718609566568695818933655379365380099058459304916162603532156156111877610946388816363225172810353558622799650651176813387937379423829517042960687160655279906574204980811259141818554291275259588385473398470352063901920830626537310177017208183211654392438499749079496763112148317563508842384677074089390469862440314440007257138346183550107524859151664567909893175751667855437327508826136422979175040621160515804455873325667460220948536025767028776345622875146899818021999408159883779463986547407831020548070417143031766146897688592228467623198052071743637087551715448799186934296294294462651884371973142182573708632765038572488730019000857533739697676920717398828486014536161705701879089126015012654377686238973142989052548193740689876844835556068450270141993384263927646037357532114456653987903529771145272833587702258180605760108427862230578396543935504072084013291123254508798662896751047230092142586449093170165027150369893581384054603122476517401262413717363887159039508404823114123331887907645768395030330411927113382776212723018260761083394562297687683191830793339840084056237690391648399559822859686651993686051071723065134373624633020723235142570007200083235659765430544117212848427082805878666048515977909004823933952501866479089677918095063567744987554465653368311482253306313566079211393790711709164018159499357319322557267257902423237897766319802596658880635535886213304477054454783725533959770322262134321116589261379606112659055513546069480225310145538790227993636143757910153659120027942120741358570913714995274975520839906398884774672899590630720831490161398749683403691068704725926929028986385239637818904073850590512744000575867436935474022343365602967638166996553738597054073008298822708889502047063435607724044628915680240172802936112982173782739387509838577244440228893258502294760608231624871474183992307546717521998804369585739227633535535432625768681621483674795863053044734595578576405482856727021282167917123501502398363242022255226164001033228668058085867625899295297260514031268074789557389436430990619656032490283436258175314693911906640550284554263573502072406397626463808214426325621605008684462326611343831110105926009890643833724419244739936328639229807121929950736784429525230618584396835068958634669398435315559069433618149070038912006230438764257763424942409802874126407033618944697671188508243432512542822343467787411195529064974867562362142461381586361522296480171806623839993657498066520524557959882971124325565359802856476948789167372315140883528079543072724417411759210213304684323758171898456265324949923235404915511123609989168252511461933805020087669118630421748608320277629315139559574770677427200816068739134887067057309625543938992201129544776750368108567524378364012659121989882320250629354561106350733876382757029892417026168564250486111198424897862846484232473520152573489172994388430042153193276004518297461589542370064627795229828861924691896260298160316782309441978182215030157921300134204187532394795367693722933590031948504773927972817505748255149358226573123834871106482508013137499634000254354078250503558672694797620816000839742707140613700190118575341943217925971536920890891862503274604303212725960838705279159752388004382746447028048032568236705443670503540564153124041527707742745968970734771272306850503809834817078661908323592222990787375137254365511214822574428551197525463306794862464627104998461518719286246557977632062920305901229371514851290350000368535820920288688017851344925311157762666351771443728793897006479809106459429104167877852829141229292443316538680860736750561645448303060131993736814507675146271994851533965297550138894347914668256504091458557634893349977409976437905755087777848033178487298720217590223151305791527266057558711723377030214153150126374066573004287103428751092171385287571172101965356203143028104223220935788890483334292124987221849703940610866439457051358201294700617731201977320203179582824376685329883482247362484320645883252710727300265773562133357787879431857648828469611695516867787403698552861619930082833784303546593361532052569320642164500520104375439192588149328344122543904300797651752273996575266835750314471610195165211905800313482880645358003492455941413350232298591792513387639730556696294229446384103996343241940666103652493785555090808440424453065103491879276506461133287176434882561573515383054932107350553961671434459406681185210065650335017127579527963017245772969447416103500522718562417943213242996702166201611723225153867352763663013389539122857034072970367410813538743167198314231661645477028935597776825321563702919005799380972597329513819015816592668535819153771391846120226935215346055509988920489752297516928147386142416679537105502831701183199230135890344255317627613988007365059996979867224883751589926451344095177403431258083910158708925889598669799485021290006010711425241951128364464409422145985715376173658456561909046702554825952058446724610927817145337141740063659961959588874528721929657818540086503787933600098862695929840200750302758415648926367884174192410265682366383905552737985654547579136033053398331164127215184972395920126873977557840585578710102522992872760899197180261741760119234315934701594910205673073792583572191683236762498541336663842937658233841727893593172416388586040583409854300663484658045699128414102420164004342190234138160407069125811725513306425429217153383974973570404289335485412916073871666620345712092718282931814905380544892889092338689285048205220049461749591946104364776389852832646682790994132881782435835434580994032168645930837372145088099909744083499087512833141705172649658724636162959168885069894010291460574552313483918861019539009233786989358968529455285185737031842440590740322085557951419718366592224474438968546907964728330597398848656474440534433772514160397613313518903213533426672679966790155691974852950854108713875605395069287271926756848799330812187923832245572190212080847856605068797806378566928023888473056718623740894131413079173263000746309477691801718569662744555889287622938887738893019205067202798180607184863483551380316565552696155220559626274721579130125057068223680135565248619545378992089928116309913900539560274817959118504900566436991511387402467162316653667519676806094103794130691127873147632525429616749275457147149873127435769345655236540159474177914958657421127037114037681735701652927282335292034917591079304384495658125414568239069942484966456970757865405319341154930908758795675588418416999869556883304277138074981875015559908613039634612793739692542985540479294976823708713999678174974042830922538930901578897435863156478839716311087014475409363061988006580914553139158688086035480509717062917214583324876016488627601416582004362706110951319721094149562047728622075718809456380682760052601486722419794652378785748580880542120183557587650922551389499989683143589991135821298003266528098544921687670822417538246228559844444748393873696341942547647524909288352904895837569176081326484504448628348552012143088717205954158346040894199595104262621674692029967860765172398636672857637240047595489744191735863092567927769349698500218447173100543455606970320265618859265241723889268808060011696884675286985774175694210362870173095019592555559944453966262374986416391938651130100619969945983077746751066513241011860625503077287548495975919804109232453405854993511845804986977362232016077662967017603982835856388904980207512505240722112068171441582902172717687471998244977993063696402171861923358949085861013991863700324789357462531069523419130333668536739039892041567088754819373354658632966801415822307072376632196558513775516808892762783404506883437994990026629256685030287881262454902625002770267595469233441089515156755649442867006305544618278606453270812698906066343655364766652065740720098821688833596602622743182015351111013027740218486710368012608470651081819743787657168253927461176336310510596387675289634921995120689244677637312571006873965159396300948683960222837768033351132236211959858712213489756767878368785859382758457204526868919485744207820058325656674711690367378500010456710190449455281953629578074383717868367403165174702392334143385588850728902001526012197485805536213590130905655681323069186740082917934446956817059553670567600912507049716141912505227557270545785198862932026568922723914345605978045643340888666660414073283700431527703670883281815781573662192557449087870549098605079897860892431007689139788263277651287114083939294810491250902006510315350854707221853196232448172932820438898482396255489393522439070662752991563275023738368397283887017217502858518361587994538323789113822747973889571553006119854075377793020503292752227344022242588661762912517374873402856509758321769355590058739550230349276036522661630250113159199360993314941140876622386718591642265670409224313004786814479133989272605878322379239622217132922927224843780769555483578949979266777668987588687006259088143032130824999247890373006081996024335219258822917444849251199946311312074603880588937365323633738315225735528791003678434055430323578656580883934517422977234849158774290226705411737564225203403667017117861719266775128769934132840790931036604751758991038897857826491179413159274975269070734206973036499758410372011618028700697582453614026881711260769704619450573583781249318129186243408567111365429067860707894023114063059052508170123175707490996862113537902762943575675605728452223511410713767313019533247854144180495006458804351096121510188263044223440610804464918671045319546558281026508609559252506161037797475599436936081633031106502489220226801638165419355994387011199002831085818324992877967277259491828837915495488915157075092279977352953366673699084776641235488588027427681171985824760876364251683183486602263938412329964235019719203138400360591893640819142717716945548669452033447603755333546337019772559948149402174713339366892231837843932169612281420589160366508954174988274181297092823942685582301439422450993907018081592336497889711792175094688267923671320209749096618262441843738208380591947489317797487769784476032216572989558336925245663361540348845612810483181320227994698807287662237034552218859883181868194863275393998880261678998520344867471977751676758562786972590513296708135421976993250987568988145664129145984464908893507529377826759970096506323484569885225592519001533861064587950800102311376573525517350107788746236837801068886760584449398976894909913835399275585465700948969236994022850973024147439885597883861718436719432368624630388238769923849131300871531334486738116284903460801461859421988812934815192980532485449684005317134238558045586941978532980259948815326166946828499291999699081292506434958224623915344358389340681786222389943991612557713123415279627989856215159298457667208040467460349809190756039037226997793174304077860243342773736126615693648928827478499186734984040340897490463083124973902891438079603723032265933949312292759646486530351941103280311415904691525812683375518993487033531814344666865071790731887027626341088537513570786091531611628499020606969835272874462487957414358235055185198265409485274044746213559697118230104735529887982642503261817126199192602959386779773295982077199034660299525746366364593407607049587996198549780466224328864898492803883326082796529791490178420048021299447963103940677698347249092596130274702989735274049387228837577889796942844721558047460872785154504424391344753695098800905622205114087828664384689534622055009499275972568059507840259653955030012249904112194064451336339603232156823004292688267923895325539339806051157396083830708322918633998321027257664086533436666474611751492129086899584334461275122084844949570140424259110377945627029934506504761924634493700045775745686345228637192566553937648733447110204171483376719367786716298764267585932869060960231179608958743292929149267753704488454950891762923353265820749739042292477795963310259239267022158735096324061855090244011776332956859852002086956784336526060221009927683927801718958537941254527908889602730181501387476340594209843427384973364923969781447403622288289318933272449579144732149603126635016432481587145065985269182970906414130171901862020034043614665398096350914323263331183987147133004995549360616970535192097226826258073129232820544298630355527528884914117504884608018825484092573961831458817649966112622930731138149816405367720817410613535044572157514643046665457696880745525030829952909666632576754961819710796299953934304129432325144859947721357986478099094935994335909195634416274891109868845693715407514361023238222362444952911040297417638964684731235301059166111028418098751918510496087123114149749531394645089603382074034900553801688446854262929435619729111268737167664185639218221548391266358195388147835462967773179265865111582357335703081769179313160801446083659389455539151435575101659906829877629155355062000830436405765966204873362302119010079277967419329951544252642263344248330926905826996180245051600260788382581582123039383299787299656523178911983111059143736523120242585491315955437650665925353501671457783056716679243023358266588895747546474855957950529792657870626295863476015726650673771588181414743269264454118231558418109487189068728161798452821654308578722841535661811648139809685339436097386677246333307101912786921629751962509916202932419190490899005836845108772498106832763407004212227412200439881981947729610829681938731634500060803677988016688464672870864268466526203727003310950163639141437032675694222794751690809217919325853695979883384340280108478609177989536373368056665747352961574424779934813781428310068181122193934985416771699500003130781661356119246021424558887167971366700758233753437248565554184187354005435281630931770672788860499338357256511216880842298517555065435733467720808407266662922919866322901031010287136056925836235831698394189168766245993808662193663323261748419789034809735399282536512197054411159326057779856945310425755498165959532052509795098846633442638203743031728652558900778065267978431015368340812723425535101112683299738685184642848979538405757810212680559231320532688073384403665730638157014596958684091616165435684039813367402444302569958420541473092606105711666359974228966026789301649067787021077366224847162007315886302052340858102010243970657786539470378936630408673680857197473031337095466042943479214112322483811670428160522467909666886468835525684236371556422646335398175202179859660432408103888260973960974728613450024309519356687348598550197466772928386315818261591192036219040655322337904392328835746710024544422817114142119067526110723954078949269766545811758254390549967713983217032991485986045399707340485807597882428961931226338498663963819993301431344373908770247908341082923455612189324670085881102777865740612591869068846928130472225367865199954503824243531461223737344290114519988288907445056895240349448303383280264492077752625411363871838728484502535754480574434704092563707110180376872846386172138365497664322646435571593359890927825064595511072198513909115266927643491195180564495225106626026549483191968564191934891888651200810798142078540906337057169582302585471429691095181916009628069750346460616412075037836639166763616647731521730727888249057313256404676748279839303552728918862979228936478695716008320957665698432591085379629515690735176145955100472577013198682754767648499694013065415196487506758450236970550514131881084171704061146417573850136046100688802211809560382843537875365829369775965089626111397581955390136165132861305345711324729606852602693305004320487660098778062062861825933363471863974872465432870829888803011300209347319856386671793957568546342202257751023737151526942348380547492820703357823079492045234292576193144330757938759585184665733389675281190817880669021193057453535940362873022176591056709771272653077294232526440063035181772697324130184132036334946002821108661289121609075824953195659631396903997569104595196686589773598416550882136172323434803904563139036251101115883147163430520308495078808048365176527814891195227477518797226487835491357716073934523444376511588376027118423182917496579231299537730017639499965135681010737291849020743857012023161624692227666259810752644860952661410856112424929306012512137376108840602841185234743454166929598925236256449903062240068981897230842939302155848639660576562288006600801254239843949070793685347509151361560628592558156827608452366537538176138281524212078956954751460357005651152275767743133790532455034760414002601273380324105042667978185737727897469212961958864089840608275307589846445952676437385849004647167959946506761579456571525085081947641487670027998308947690859523729670515913804745165247560346770463320713445213076711968487655355870973642770213190323365151094817077477621895604185093441178681737923736027267040427706641099412947884448091302287325997627407810438772051083285473847381272280476828198015077873250870677104291855789174899707788160832630115819760065998642519147503803545392260438005266737393809287562387974618667528979805579359710008637796431020590236855676435760905415659590561666643680273165636459930541236991139293145688928537547790616135531984575999830988121693885676781283312226111975719019545031178835483925780992942803961724347882475655334612672668789586404157794542742153398002987906311917256898069356900897884226738643226659734631618295033275932264828664348675994224108608654084213174849752147089092451715162708070003085220735505406119126534732232807853391824474734170825458116043183287959834310256372264002420585264106836569630147238120155230717379144459306857706657229689133394744211635442246450242145912822973344898953203232984791072619704238605768110852592003031386225914645000153435615648715255023135946846818189133670932559128280036656598083669633664186640277338370159778859593368112952856410351011218608609981479821187616823743341861293965687438227391284506567604980035791930026771907699261858154591080274315731081532729304724768390700764187297166255407661235859084505527230392657111486079354353329730083639709572416421044840318282775825533207700756407368325478867720966475520749009907351833427551825486028805982327257547991370815141528508147543366962677491021619236818661880547512714213943731553263948998009692949514475840307178628611730640707061499279465895988158064254166151494788935180799400276231429127306901010417059784799402234464791241155981971069680288216607681207306178914992350837265805002088884276786075994322836788397454556861356229158678831263475616455132870093296560349744993516300410877892767780788309009678615163568286532487687456096377770767489775244787733492430368288800782250670612432627256130596521127664952542941116643455495763142924275303204623632702274695710005519028010231465790959028849314700654764946259841840823224554546270520099234634168133807640448736824208530843400960007171149118536800658893214495465028096830296542906701490392021442285993883945205474406436173238047882080866542112739454072923489071831153327644825468261698850000098709512153532513908507612956550499090947094534803255257224019830674647690636195325953171423836362874349540458502763689684211691280372607951010940402240819191001338450538415122234352198439538886650716163761625121425939920537721335476087699288927756717768585429953455652044033233699406968019981099237296368265012061310271003288495766572899642002972573293535465839157848822460196063624469440192742755895418098090532569792826045028735792316646170928385689176371286791468104344700343273244547634417538050872060330921940936698554069839892679842670479545748864596200276625656023143239867303207176492411125793054536529834920624218037057602688357150338990872669850060792622040933124011414525852831831742902622015817232284803267480390323043111693058054248430822638391561768589045815366184864352960765170758730775851255207033130091455105025762928349288205582653457681999176329550891961629628488855505356204383584909940417698687395431232881463614131979308182242879517991474658493516909348211027493787892470257362681805905555710426604246174587048959787317480555884554681225730115046843570074054480009166705554804555154836345818201997071206905072143515979824457292904952597419504444329611345263520940175528909089065306485457167208303844215939816438854384051488931555903833238826605075337195843496799149961001415259504635541311551024602120324089922929310436532195172049051071200275538600172598035927592584762016523495600510000409850666324088391978207372951077895275388102994871543305452763785826394581798855563794178629085095708938263535706150064552993603417963577953632935100937405084493556104739058561182314440032858069538304945076795610290244578081375239194239439501050781011966169662428549595767659857973351398503988045615638175782966571013900034543970453227242705911127557846445503949208160032031633347902425885791854181779579340572295883733866444896561658195519562646540385806000209398496820785878984288958792940631961889104213122550553739505195039401049395407823329742466478911290199657600618054520142688071475677232458025858899744191181354130481625779385564890328270703764652924835021567819396021512262450036748068056078564158187410412981877149806074698997653738802596960287857739046829340221637729652554293310943061106620659171265281288907804267540950051271508990072166531228240622073637224633474484286385550599643531830540476549119033942239980969245749733633852345007302001966550389647466967749174914328919522916185469757916822735832939491901047422090580840904968202168818498677162129022063795081824720298375154705545539913442952399664093168176759756244096854494195367671741646469274001574571014706167605092239388112209062771213928014640550260860802826654179982969275214594503132973117336355535898925525307959242301628699192580856911550772893638242442895153402099797923945840110972671301885152916846749499975426203659970622739118858366361788815441935699179023822174947118813262607880556318986350741348506763493621120162598116680237647210140040124699171723682804236727510112710839036624618842353657934592561761669205493087410971705681387760150823220040507560183839031245058039432525729510985323817891626992703171834831933579025729914144974890509729170304503557972795457665131473492419775694600691558893454780546104993749544099362972660878118335717816001864987432217463720374118067194597341243206839310492515803087506047955840347981006952583606393066506704071378028760455717313414169487398033936745982449145219463929795481731755239319106042169477920850573169782096143814674753379580602849191995328677740195816753911648887537695183090854888375231100316769969985235434222843213838958082757297715241156585825084024129517548995588665995369851889513046809157570156940069109822420871204261341440736645836688681329009972898964666047440915741918448053651913312541550903823354699629758603887491799342963223669416501940644455633769538828597753958652103981649985248608087451586476853607081998935495892261140363892837506937897379536317806474161956517889960115654351144072275487540772625753556558640688050667949776744991647436147534494827851138328835642107714333464450955512758736632315470800119833848433733521338555479436489857009466284627401667806428244496801571626968471507982344623472862376071306282686020818053484393315361331034594685948925076103000915523042506744510981017982669064595128533793744423674473562803435421791975300221893945304527946436167038792363940616831191888119807941136562389812394732616812385828120026418164051852452804852189076335098059146543386608696365012596845164269779513625378680707236835047974565284498364028806187905470202491426315890346621425304277530569092230250323646759845399676596266389170001303319787852059769922658648721705246290276192847247617663707008531074511897578445783169042169938440206262567591014201904067150811142136371536283286329163057824164197796725805553738567958345441069005726497374963678057998261046747485531894084396820899401138061740362330920173823481199810126778941464034894926912823117198762365389988102268328947246813070818423384673716569667591076019558909431879613328917984308200008724305717557008753924818343252859667547424765173585591584439585698266123934330644905030439204922978610180456327100428788580972873815678677450890489077857544231564242283312522907374144459114144328146717153916290201634037547855969018773167283823674919622559519495666534619502675835660344386967375500907433356177941056657759224173893543648486138873338993805874461286815743971145473941932459912214989082684469519131019514251944759851173895210267902912500665870611081822079598555625236346886116324258700785995525885906404441463103041258088475178024572586974633957795883036396022107532973644884313182036773933459382210098827266187910730558337572962766172085041017061100739986422053068819913591137198066067176272435688241799551270523126708446625098428983025522485686595200949028943979619500353334890428883390693510964701871861283036374887259434195647393240684213075271596559186616795886132617086746520484032645074195370929851691007798265023623244723229577474376384906001901015110516862973774419617584735086608981372298965952313231058188628804052718632248409343937347719746500501268409717090120476085943475347892624316591865514259061261772908238933126306206627898545144465811073767187594546987984889704308808186915891824160187573475366385883876844552247883992790303908548797179148319860413600846248709111856014200074550655339923310402302938263991953795512611031952606246504163849407673437377823861378644765095023334846534692901375789272132503797964906732397018362492563922743107026490398637652593484992274625671672232236490710078056309774271420831103081565302346617416803254617954127091729201689349156852726550880895815121699605016871370369806231893818993012017539066055431123799179908034002011533490316499856531955399513193340187375577427698794211525603280654941839664119946862306828868805287820243584111531706947765315981433603623033953744526357643883330716807406370707666997711231867887980125112492048940448489401934569580271039719064000782528891646369054187879355585821194736469966089860500464949403242888179203698594489298201626976501957848045678436773402796144367391525875429077307240659388875328788265117151514109526341947229957358241932425077134022563093158811700744897106711625858715869723572505500063942421611618509267578863549655525287020324551466478013780774734445380299276396720202566681262854452680615590084168268446907826083184537894091869984669757806505051676440135774729354881112061064264623196361201819469269427955218473937493698361885723818620125555671496766211836582295945861272896759412841880764768772604084876070743801286889932290156170016045006447870019306359519898902428784784482988879630722147598397569641100648200527870395681601365453628204310325357853903405450764749914447673949919533551654414720584761750540275789515653901658330646943761094945984846508818258406409254514200230805127888587985932524681803225974802212842428110637398329651015721821015848371468321362447570159289362941415198627304956936273646017265914466657638947974159198183972490363388101656051978906432751286289135891287813897095307842747198742672080140703178268063264198491380001732748079722028083442949840113644974059875094397722052998551942783282118607001972046258501038449135608039290042195192482180083078179409061436396518255206602505215869854524224581877510268850642914296401109052197248684884081397759212678286684247689153312543699471767861650918151719326945779228327391660155808168125630497501278803080395550779932475016022163389391283250766387960355514590797606983550355910671909664988089196959705563452064475617964067732449851135183232107561719523588123082955675056888353791398254037677196072362699129609800225444571114082912877489139681887249587133455765287222696814522982882941806335636644060053285636063406941031208034541899452480851718458794817245590746756917352629401052713451074847819898994823067141021061404098093947911473770528378032768839146276410122652674079888642500227532813169423330776927063636321243136770868589312278269159965481838526078541881744423629117899068165393819018278183756655874094391181024750126076933879205605830630050912529961897751576051817742227795773789946743386110310145810972343402261871103086276121446055567904356619195806028404802576248186995805365458168954906719834376454549971528825509822423786151519650880091307633628389243634340018178277563107097821215358027931854806541084776229133113772643478553914306859417034924958562297041473136944016553314093785027598610444820626932024493121006341818354602474474085197625616563086924380859795916000664610328415406476488707034465508762201462246379765638978615034211902617710617669753917390026209449268442805419446212557891455924091752850503032226590335112020017868571617618183158574933097247526718770728878148416227763770230969732423879226944841698147333136328665761806792853465228208356520788931818435342848878497490510732448872432916045527950612611766345884183989877212243828277048505511198647185861726187468531519368139347170831042013321735807589475986060338662071588090891605729522892920737708732825845706795302712217552884257438186134428123201238390896879892454990740825735592209592793274649746622560323540571827163970066139835331796279501597745498298930016499613429457938326727813249172681262644471496518685193601416269147197107016457926667816527939101474401091489761076480745374103368293999092184586062627025793768133945399652953276526437099545271366613137912948026960294969620431493557005353158232897518361729008082775521890420045362587444379482118343545482241751438574939289067078631508167225174369915253398725474875512106856896753735250371397223134491687846102452749641594456116193244309706428152250746352315521452078096608485261112096086569982460897535724223404808091662233073095004311733557319673738282492071712000357923301433604747420583934368473105664088322464691875077762282712851769504445621401119782067930968528080448721321005474454013648580427531121232398932213908279314566742245725080348127422562825688542313810749786044547039321610829133806929445776908050387033324406867827183004962967499853527468948514299824858660102174530110221099253415889000939780302549364625907179827086182506709188194902892556788145216610135319710539354862230852850211102134148689964128058531427220279196354600464239483630106642749104983500628265605989317176603130699350826056177278866786442028674713152613720986225979730152820553267365088652243714951216180525399244944842586574192470519603749353641103528622497468005205251458368494261521505479812550848786925102773909735378583337652916420392645879113428058250618807869634198735621191045452555691558918981035684421550296424496198535632604493817897986757674403718757728991271433024026564983562296001678640478441901963836733626755939902777537449632663561514212126375016998443157582220211373405843227386615775624517911340674097992202585536779295441768468461533207626167393624397049101099009633488814744834903042799757865323891153656959344791382176622643657788189092482884792452200117858237014987417190944349350545795323909071708737347477008585669359931482475855862189563254665398420922604963827107512664230850369521879520514645641103973082269607442946452181860284620673395020613338680093197498497156703738220071850514927644543320601016257635574176301055931579185200571850886632604639985607248561380510977711256925835988805580884701667459316080521027875466437590474967431839097777940079949693155278033789953173552099995099845491900129771199569469010955126562063976808380188237190281471901488400424830014358409909274071195276888679407793632256353632974070454069973238736948480576017390187287393957537479431489482885740429754604017830760794879387045394275743096180852212950088458886584254195148818422189454102523672951076480542152802727481634824221780498424760348933514170562422290541888388299729531191604346191357322901916379273460991165727889323981397633872365552295909581489427812508563132051135746749504514060147092921142338863714437506536713005901496938985702531170472437494252337413837712481067214850968926794177379444044324508014134247467887251315156909610494338148361873895930034762096752622453724237583737091507959079456016613543471922708201518889422428445243886282803698848829318035188257632792950357026773952096233325946116100993707089103640132654678358303080959062805370277604216803072339978032733709964466404791977853514813367289209720205517839664794466766561571367887158073319608724121267508128321162296122707858829818109122478128365302655291551585010259956189490595423501546404624465132692358763469049069382840607482526944423695438245350585042951755216280979179371690419851386936880146141627740343246114474781656167791625671428342350695302467017631374841462706071599684488980423692287705547915929476134392787232157262308465349760077302302376605056011653202613228229819548479610714063583147629803928923117709033990871907041117772708415220181286024979330339723093919959717439439193797364153867943539477991867422423146426680847011446683829522413045176028111847478950804532042522490759256105626127455670851935590892103871851622944703270990836545408340847496584683576843003204166734808641290681341448655528258981749670071449146775493068600495473364064438353211873603714501571450840063768733941882112161042998138652560239314441505266129931286316703777214305589487231414099937384494528925656716089732805782608251223877037726111127577645962697556844464765598923222113640570306377004319095611017944762725851592650069797032650434677020582653310593388350807407576918676177737299977322767911282731409092204927508102525487589890640422038061736321630041179987821390684602949341501264191932779786840251036405222076812145431703033481874639297598811288683180605211894154755517328084445880089131037352845852751130271872444548558175972827251197579611345896196891101481946271870728585362037708897239729888486777936052529025893302940666306866267624153790248783965863420443119402306154504034612977464192440955567716746434986467841735246207813632059168655592263772268085439668009551669797418793007022221680045923192340646731262749865321685628019993336209449759921330285045971892343640897059197750417602073579412486520075571405307952456855421109492076442074963224247035582008703597998815896089688972754394357301095543657302976062449541687988661374724175374544368008307346972571893034576614928784877036213355480431751360170038817316148155970326925417449687367921154213536207813833948128689548118374261303521560800035998456590859866489114757842613267816968807948813843755134960728578010363920689175482775278033037817610755538301000736271152415471084840080486339958398784417437268355903168899649473929117391783224486613956250242485326057497265014124234590991868620509029001736156086798981107411034972187931201484571144553244167406966562726944200584318608125259572017160392818856805895185731542763836736360172139642514068066885132603267949471990657825425110526883429082061783511033085561648272201867909431935289243916773555792633847302616423469214086159458509293541598631498994672428008973560609727676497700464964568562895995449619659162776304760986212799758282411315665985643003955023706606845877151441414648147148485903452610282370190585632629923543216058388917647952257627522541533739105352638800198497803241705472692783404257512882261907483158073242404974695507751132531030308277814885459160388770814629447500068556135014929370861852884342666355094615677986375523028663077460456637106618706226354942509926436183543064412135953068418028235577141743839057457278676005864869122377666799011506188637643506932206185584896979769395514637666787837216470146215836710556082364468166999890635605119093185943158514436671019046187507221108403208200954749802522420866474249072153080302386365170216921723539752705881283187058962519164950153559590483674267397029623249288518075906795621998639109720564568290405117897351618575038134568490114553084308235225624226605181608226966603800632767328706136781711829621254823638612248922637552035814828582240276412982403578523626906376836511354786566088445479741128977659102925357735516229672221159825426430568635667372612744649929761046338220067284341991410232835892395878398301292585935370491293924817525685552097247769931482122617172024059480606048208627647770546626991047909316899770567260589301352239399580182693671634585477534823048195560840723492905140754120826571041220126704683014985166858199897769304049948678538303089313190007415719092852766632774200647956376432462232193273252995032310825615468996465824765396866402291463684120819937035046596654689191928556380259458735281557096666255448202437454704723953059483767654427514852966808954846293312527948364453617253128570812800681620936563218308422184292650652758144856566250630860469029832041149097138535685497114950283614171767807869146344471969562733931867436879173895387275812124140262684348907977315337778987861555559276004743748433260919681243052446605150550879193219327249578789895626489653438282852911162209335356139105166887194869749206508692748719046361482169558414338545446532444183176479611216054835243151985349700700730035003439689430940046686844927338216815266452205086514900822820357019001432078840696386951118487102046427036592328651032529112552474714690972097794797852047639049150396743469232959096448692831484168892899477814316102486868111395248953418619671882283357594270441761297481306413693062673288052798181004173592214991863833874820792915638208360473360592478043303425169084909922086987840904608405404474645221352770198395207247587818948196969159792152488279669467800565520296323603480144888604785247075338532930316733303193332418079996106672174973852480250662038675466217652680525530048593782503770028858068782964047100745608267025065651240296548010118393602299540065423683125404680157078137619708602184717560406188509448210099598968186621845082471064335829898470660152638167537265586712651600659489970947250960326961996990197584064569928715422709815620450522925231830236206332548968519832647146740446453361634993195839484723934491780351910183993901657985886693351734928335022888661354109665724358823637229722674441487231343535468353892821972487387820034937283058563811900528230924735150231359388174567732993503726931332402225648140973391511925210418338191894970159731640066098612358540810674037654285769177503854122642246748350316660895322690851231611720131297273751389782683772066442525937591981962058171700571986686990639656784203364424266534341340489328521801838950718240220640021890122786599533066695035841131622182438290458832079476037503926669112000457664316687301561941417332846278091484070608680210552501111042456104080069595469140893792423525912302249228660112510912289271547667267420656387524439863293583325947150487816105586311660305352501510229379267673548236448825041385209116773152669716966563488521496664216936725285387033683724258562507493421016691565973839857961121705332077138214745988740823860859822153601967507289766707140465401543636255870679930592777432640674619582207554191883531426996158273812551323738137592613545245875482930511800323889016095209872286488198913860107510294628816860583222145733521786522961197279034198989927346597718835064011928347658542889583362826555550729995965871279833721888285844760883621657249842915229128917026109006977640921083554459405579890362174158041135445183118764863464649077813136825789096023566092472694751215479953972136460294518063103739388618477762864715266200896906577850383832322395163265850810899648766773942722485314591934916898360557845992531662298470078993970627051208176805685351400836770465151472316599088881222765226145490410555891788304074028050811575069690326698557479320359915776360596624030396789247269376590280725747828443277567442339713265109626497856649284782349211728859631086602597739422839221179392088002870181661232755870355126016964312489529527565704599031027338068222032592065691562306970706890286490559525589611620941254058530671743670368477520287996281427147896477500474774302837310720364242379594086598438856377471808053566909107110999991376179646393625817426701698450745831375489283164254049526966560098742198250721842990210565465809004295653523893160458101492982320046515831318514952673499700765216501475567210506469343902173471623284518804243709512717873899301722421201915410974941432198108488303149996932891337373752399161660244591186342584061659852101530570361569800218804828778454283850096978298635084730866658658950519025228977958090998082469942356322869958577305013053242420822993267351513354466530567268295959328669354158501527095872107925272800772630849950938460928889951588728301991536058331228057185488781501260174785420699947857161324777559234917816197495564168955382118735257341061077616232229452662257245349371019053835723778883157980998357647582382163418738144398219225525711554714335041126232596336515673534663859017952645438657963969996252712378009202007606545696181735564314140130231560085305766082258599523020260412344953411776016130377353662513140482164497627068316118343802530894405801574905470647868354390759378910624447690455420708355107541731085113189108027222880261852823410642016502038425635946996625350235070712301291193296800117289073863825274990147676783837396082816138581042711554418010985326619923901608232595919691424958056827241232435275105571115821998679386414077781878710100433598384791131251656363434277643600657442722765968554541021695819098783872729866702408958573572809367100773188471579967672455593085108564382437894383521657588145639676782980808532423441353650748591389449796018233305463555032985678343315284300700601061634666445564425078945031960839679121288306006486669349296337305274214658445790721664229710337707544841938128623447065706824561660079813903592252409484270495083244015306015423592179593639555137248326943823864373663448467641631569097933373820999657956459560199103304579187548062192898788686724214648969886332609496862314521439922424952661456973473671346328181845198870139804691873641957319584621687559033144271368244720218915935970368238854386115032255636732000837575455893364843866333258827880413355485928241937709945255427278881333256709288799218234294221309719055565165335161508724034599014898247709794064104748901198038168285256484706807873424271813105853654581111385712481101168548866899496196568530501453124679319742599361891110680435234100400458686194997606214240322896938216212021630447576832587662897688722277624705543546985215013523897060743281227141218607741313962646652315696545291823590522752225813762941253061360745901953981498866935314965945952031375016033478452118898831822854436203246591146303677047719553329100687848233480092914960415626014519302501821315986834542147773618323406175673016024860520534415374356504641571853969307935012726769089102685029337495456878058206043273104242904341612501360136264745725169308696457548008980825379284801373324780483322605105698415729501988761031485545451522045494474778215028184614512280020755655043126726244979326031479349323399600356582769143573856340290509327763489736698978449191299523781756837337959676741437354972581334439167716346091377044122221075496605394227107119786361907666203829854534531151744489826633116915817750190028422348999208913470985134442035643634991259939213731559208058088432194509761682628334876537641437090660566125480163567019901689606406524525308852881976308207266377076512066964564916515725549890577402188857713106861174430728052830016845698571754072181671838004060689473340928512014468034881011756501435893988807656109864805463438780833519412266176922576719204989816125664300409390878328528787872087304896691500966173004194068595269845562928059584480311031325646415476745515612972320486425271653540865315260749298998385222492189566220315695517572348020779483706534103887138666996745791537219748045262903455902485848050185646001342580069254441379569628880002503145219434681187502644824278254624425869430550287984894062031710938692478406078666266668073811316228006834083658784656596534893632888103409891551077029584628651132808120838546980976182244969009463926938349685562986246988023170197099124116236126104640133494120262052675355373462807374409126535389675322800891685021962994664599531645350464502892644253303624717002695886392137628424971103793633591164971862226051098434431294510510435998484429381941417700189275550592994269368349530346335551646702431471338400486718482047438033546719936212477514153670298844119163397847019551131407772030516315161350903227051150917561935187217186305773653728197771630563447468113287428147075948626336728928719014245510196317829337088404429877668023900560258319591507005359833654636392728990908244894825103509132439694488432492950324795897136496073269744187363796699714533593403942911747376212594817910690731120286473794214121823766246079662082395257204775214428931051927038175547707611899506134342541747216894089582001630256810299378476146626190981421026691138766944398142091269412935335941157468089381671902967817357741015678815661837316723111136508097745637574968881003028160619780989614995028757790161336485740196936091755776529869332313546365787778074794968077152694954784047767398413050904135151274861859610985257677555536706743880699940844019173704600138875772205644171267690607994353279873559662991452539786890026915035457388085057434713374240392546782654362097589267743225976160158766044695494072942834540906832027137034336234460024734720472820751894537406264252124632666125291926646512943828783804545944842494086636897603152611223853560030289004120156669256030820795096872789738664742132198485624500839507875242778679240123659835033068725671862897683656327195483419557212195784068115729882327587657948628445068105706648441510734696564184130769245238840798392679209985513688690955717150527536950990335175321200579598219715482776899815366783371959737694775640734888715415611071554854721485453642692467471244173560457799560015142314437665550166729757226168369723907560616731960799836132542088628618003244233032642701546751827896600874538897192519834951765748279233035703198435592687264979177986087624331041535413981063017711666540002210824559342023030050248987609712380043792539569061133326428642213758650122164094977611361536005215195046381276135340344932363144649011765811410340491516034097007960249073106542257091464970103834214623369212108028364480190496385265989590206708908585922558464189736681235585043042600323706650102874539200827691563997987882284261409386575870335867489350126965707617524275620183821853145697198496103795735917527956119746581427254989954931065988237446610477279668435994266216515838567619978748455420634627900896939852728136913306072994410160421511109592691516196525152621340607620113225796818218503272126374701146946228181269092665501587890745523085845829096620229015224132731185432794557215466322516797616876576489718033854536622913369225596162769318533859844106153928082610385025240599837156985511407081333834223831022388283769815715025665087237064649560576538769101476785593404858238085183748247283793234423051357007428814244906274843916321053499113687275210042448926286481205381425911400820151992097718351818557009361994585160098358773114291791603203102337550954921278586179697000067922762781786145452267900470121727087473648994905990935792604452175618623087912161322296146928051581904073828320322009331073439362670417428517545853530431126221245944132654310254839987092462483167976371465530900890554021744171215869476826895342767634488088047738519837472852010708418242457430500090008108413480236819969271027309824221284683748364396433142576371651999759058582634513411957407686973718823128810547029211399005204320361029707740095282946554503523164294747700011631209445283313843885023347752757787390024383161136307192265287003577050972670569069911080515754284691167592818484579018592281143299209274864327955642150534849007271745432301632934511120907261098867478479303995506823676941155640818412329287842631431025221797546295861593984740060988534164405145081541839001267562389264268712195057011559684737995339513185511755127046457790223405106824365586505426099442311705429891974008400720414558944761573830396373543843101991321039383571164555890237178245394831745726558974552099656173449808705847811824698186530628573487686379126096736759672121285792722169291038010093040767002748224966603865905035167236927544077677321756658799173632989384850884057837227668047924177456727118851305831817406490728997383833797947655701906464303159069756082976772122612222628652060950906644653139343253627840693250330513836693140300625881588460961948967848565214082947008660465714929775291572522380666715376290805186622878685773337578855293208463345899428659188920394239278807051071211415376694679748291864930123775836776915203807474261053187102960738855940037090831209937336997097784444339284666776761168064165809465112343679998851111029181206735299494316886933909738152643415287965770313144379117926671456574820946703551446413359398079052196421601499801137740170615148540070720862847505075989013613364572668542911351626956986018087791634281166683183647499526133001748082822022502638260765054260986503976935783439711916793479953146260584277142052585259871048647074107567259060629612214899169814255752266577732871368280160099253556078211745256505968539490250264193566270210610677441373055856598890329715880840823988842125108860072728939665148090158790101384843820319605687947279078647825009373975813539584243962769965027848432575236078074367256820214230067116210343645486510244304412843641746795648683641957118957079775887304511171827823736347917132134474033170394556322448435777735950183617702735349471365382775119802366353718345281267058824089653487482099391332556809747050014431133893780610935188386711901548046570381846813206163402410604061876040971796121020767562493992339040067574654851527239468154704771130913049013840567546278805242581214498084782031589429228812238048528062143268367654224501092788172842061487964360769841464240133248721883746799873475912404497421338564837645760031628396394266402143763004613097412940156941937569158907465554009809968245490553342667009440734169337814886557031618425882524177314001724537284919122719069972254210739024382380970445125833708513945499498323928111086600018892558366071873141677334777601478875312864823730501146510388121040913266259338358504660871746572276919174986599462606689551069313661491837943030518225725347989235213498464421801396313030170038129949986663579173030506103004008115921558251244222062814527912005172249721522266975181025737781334310974115617696697673812829810588577132206950744937978602723807103917341269212014828616892964852240935269649297009004560320296512874314701431545660493387370125636225477782876169005435026398442979409671946936448979667014334888652939267512061252452561067411116476911317375441659236748251114808094409478928076953899158865668655563973891773745248743684186002931313622015096315370847382186440827497765701132863502604318358524440419189309594774496507051537345303621732767060650444985967187702877916453329795814914818662997634853878460283503604559461026270817669700805889454995343864519828169978851831419353109993376792025229028582261471860254211814799635303623718072125691355060863973115313926945010741494687003049041988744027068144988680171681243947509841931741310566999992130017690657235916089974041455613017985765092981890506147458481702027360327937504872001864565770359440713582780877482759201389002852374794348972419220409049163630604637285242046151322930149109465357384594096108753441526676697995650210306790962480605197808686376955162150587724758488797784449867443232964756059541163654910511275000512100419008694554010461288977636044032134852454672998549838940744359611328578146706187125323100998810527765089714399442617088626544010357343398153751584477851725473826952324156618208102723844370126720746390919419977504248643684210270844765830109562168326412541553081494798026897870705339586852903063431217871711171009736674474728239899327782589644007616181653376858522203852382019195729182895376131911246084102654804824224401747751039445675077506027303367763405195207359282960485235136332217452173962179146289375498631113475177799390756294400362739127471740920915906172286366619448473645803597025902500278004082273470287162505164829801759301420830909426415053985897221903669635028979698889941451075847048131496779315813482530767318384727876532707519617737645391750414665933556402406935733931958484139686599708743918627331473817631261058362723649532108938973874496708964086083422229013658506954897490878779271525026787164402905686043947007285692129042810651485108692890107949060790449563171065333454481102496709454774241346823691276851886788026913216898415954399072298031490694472775941893371998939498313157425997899628041081025040293456188147159108618910872619899362963902391652637454763826015505573407873419022423758732237887668485806989047448795978102317518388693396862012497300131816261919136860062541452322393366411345982235921659519950729077504106636293850659098839559076748678574187101429708306396042469611090849240503924788672732018601730316068906874600115108154236608645521234151977529806678968553536651307163480718206556925562730328559119580549784368391250309986051880739248936418186285862169243699125579381249255855065750308610638886565097134806200524250693116696509315630173866333089162548776214299195049728302791898800406731751077597730319171797321278294391432530976277438036568179122162827427296375525276579596410418633857307354404597357673289805860860332740946362766774491500158600641383020672700126262332964165214357620643567540461727533126558778192231861096132079605203728520590965681858700560276387679731804765637327587884484720833391901340487710787173136928788554642025206040590503310884367061301432533315640954209235411973225192569550919744741137364620591749932414901157780837905500244395117630292068308907139188757364131386873537282595234449585506660777718741564882240739618664366784570307022738333717765981601293865675343284803585072131910344158985143390082173273112683497761337988288770062994520199592609019255064528706594703661868772075165118224036430010464877161417473068923344040411092129790041203416404846877204074214434732950670703913990323544995141525467396998965402542140351427778377582678073438898213047893161424927471820367669854448328444430241731440936626454660426350608205148390754104299592765112683215306280078199303976061654086325853607880925128970690621339401860653004538690269828105929323070576017665886075120670441645533991519209022867837386505213567719297086622474921423398797335652653195610404486928470687180153686747545322675053869539365985105386747766348119303770493883719882050097771181041664483023503070149149737945773008894547526415289103545003203152695104492855094187056755282280832962240469434374625401055362416416593495054637751588321112280585317341878587534352031562363802766130695329207205863422168245595601234561502155768107071684729973833937519394454101581476618485982982898553252378485879461920749848807625448245252293010756859747621579801922666044679998616085222644892493973633351968087008323787099095587119839926567883167898755009437843565415303882246225190359053530263265860577826077754730893993428096595405381283893386776058758632727249200966114653460029649512989936807040554465502374511256590791184509079343673872303917529929132498590705396921942557533915653480170172406176710991001744369740645360305144636411451105671093703928916413303737936936370873631029830676147932836523419154307033259756717512835694018917578517252186373493359840429334610375468208939771112244024258722826039476672251355026562065453779570667201180854807199405481950107729003335823516849526489237267801044550712954391650427002012127098177178642735093376187664873795018401846069875480319809170886835439839660376867097594116912887981925688436101870997190539157560418443040909965840387023045299572116359217616703278403944443860467099105274429585790201265697681244470862193513217288746367208096790208074167848033997698467141487981794844059111698520907917806833747824123097549989115066488124552441524987394720844475154269406347384465711861431051397761472349904081899556311961376123400790770903798696333079413871132969595193109670430984178836892624571321367927339461634269236741170173236920701785162412755527285383071581914396411380631399935354013682816328484917375998130131645622499834084155103855488044538889183181002895629005937854437262347386276871990588842168815499977822276522149865768196482521703211115924585320593985040184272668644673461644157956200108031770614151634046784449629617927942059384130421590636164899763077497951935617810205279446118090408539820941892631844540896580868698046983729993148497283598576078514683752993316861602757567459652685960808419757244051791638371524980939881620144350423750571168775791759140504903498466049090992302076710200578747334706299056943387827994438428192879037388142831775084318656339929505902882993448847860567312081052188024089422557404156145883964003653968353494803409652064090387270868071399513240963140289251954405716010027863608338807771727045339131741305027000137914849703234651344189636401597715059852569565782766826478165845423337034273212379986593290255868415804833413036758729491796688146694040255901090321218282164629863406069781421592911904616577804840602251141485499614026846531151866221587136838018956105961114729872743235491246522439273343722344461834346355796522084996518741923432585400768766592214097108389025916874916662112166668692838785917222069080473671236480080331497837728449668847094544665503561719762934059957743823093894806950008246537322130302539624204947488790390622999874545063355921310646630986371753274703924414238948560859125988323011917055390196413410900413214739881336109807261778589646194723689908823319407774904068738524282031839393860498169692064685000085675566050846926399692135267550828517234560248794727850667249137127441750715528798140010585836107457254978156158435830371597913327680210822836438092182807061100534941512922960610106558091854949231817158103016762031504531953053389547401807417875203863697501084397011562217994601569865540947057319411014573154623303623676244575887858334507940972184821981737491287823543090719364922669240182093066813992998090640099365580578252096566466492545924002891113491161971693213770900270969447398275207472212033789682884865902272531714689322754632531855091506462936796217241429422530885800629794146449919542674948574424047445500113596098626817673830083798693684623883109568032042265721185293393865088329146980710385795097668380957318296972138953822275308450284739042077074442933120789594050817161729390711672078776704794219311159137945822001131144822005629632529235995304125077626000515859316854311414469449510099907963060257412212373230346235220666664413110333975205567137799300136601274283605538334781472689073992550341348653326803430598086553170141405116469205303686368524420651645916728594089148344071368718809331718666646045591983146326056940681967003832852439296758906329328132109934685982970784781299645401119011210400473109279526587140654958760208938785489822449050440202119393997325652658919024784794138913214758133760704270555951904301192814776370570092248470257463448375054892481708203674485343755216282696619881530367598717748366045119835158055759470654745173127720408920438451981486492912194709035624969648034845454520937181587170396400590660329893291191420814698113323068363395785122589238883042735845081541834838103179025932965563160553814141879189187117867652821347721656611259732767025521796842201303487625894093446233294833279720118957990275260189168583817169287836811856670079851970544060221384651820434502987350739035905511783524239737658474771111071821182134196470117932066115571941971496965672019668147060425526157181384294389082959871341152023676795535844379049404984524274973718017027290359005028742482348799038804820034136362388545752410150846589976629891908896402204440966566648416080084352830838265458315463429273728306731767195069095467983945955766770570740932036089506872835084136371340005982460983962357554392014845591963546500196087227107781970879729734193421759632669780804120870859296481429662512999282417731025716805163612258839974393630035075129399455598293489151025150976645414047768533746307569066115495220898819901016997856699482127989520662646308205183461149052720648526787400632185650204391001916222322316181521878788858796924752427274606007015393152037515497797208217988288256074746016574913699103533484353905994252525823499805092237959712033132528556884197795578679302360698198433330423365703099287844120013531377059631486107674065499858646225356083625516552343043867578287535459363159939553526083259670440477714328358351469666952565149435572502221238099826042974956291836008149146055348559696906875704326269551716033378709494766905050025123128297486773850675137616216346544754380861933949771443239673110583461554518565227037158670212923466664444655231193852532649096259843074924802667805623667761931226243425553907181450001415681481179524590890731675201445761863489285017171121763094871116928521801433577292842123253181677075618537641551134528598902103426063484966946740172842889634874731731570877610028463351237585549952407995844681563770125727484904802247999917622284514634481954161765014736548627601170789607649026765694326853084941225644762169347002675385764583245599221674137962231240134913006627623965442902343598275070477193838552231432763513234306319836685859058364307003128733079612588713982757655934795543006472039526074855586626643365072453799853720363583232703983631334830953366319903519369217562934380281149023637600506167965845065113597923970749655122215395671478717232651742701688551585440791262255040613992836325065821197785481354482654153869598752955794095308003933737656914706675483786857706958024638138792009910457305173858050370917449517235126953940454729475844539583667842234067292830549215766992282801607892488815204366042360500654115082052402659997000235260121728357629011813594915098982226160632002242158435487745228186004123113524912688540659479223804898295919604717433318240370998024037633654368317169270634100794850231153338695377080404186782678820909295240753761619921143308955532345198714538525180881968570362864383331293554664517767825472308336910873147718267018001369124610320904197337797388801635640689563189242294867429715379256634767835419962921015767433365154498935310720671577331988946024025324020942075859351389150587111320612050281665690195644574476795327582039424495460636732498019336402119654820138774822542855389454009628127682781654675961223241915302817777389785984039184454137723042577845731286182128234656403666999553432771718939121022242519169033230116430185276641164322029479602634200289912276771099935117919706223924965060740540014829185648046309974047685734962133123541074534027164170208803896641671185965045232375895132091759445807076617559024704314769273663253928542999545371245014127371968704496066431853799351678977332936786778110990252131223596913918445773660991943680105571004834130968030094939978620098535271152262168694289445491561360117558742519997962597363197240363183404598353343711761036213197561953575388825861528554231749650688913135005594225447205916540300626398442810236090507549924080456864534036499909028011618996068605084618000165050562142488342435855529194116577967015541906172212483695791794775062635236595853045732097145017632657782962050593397304630845913158755234132206958738991519341794522526663700678511309080864261803604397068098456698037141253500651125508982497140677576562749794776526024078831290213368466350995481418891408286352804798014294928252843460966913308515286807923143848359174882431383159496114275903818295500401138755360424702932374164873659545598093691145809357963171749521554746026537025734606169446072345514864964320342127433711671132637549520541476161689145216804601459061476974923535823579787410351667804820900015347126265448435014094954775769085573249653545340392786554648129748337862583902399289154744105953731632125593014996664565655371486498686089414420862817701041653188667158541680561366971531798513830765872427694532069485059818016361950278423553649355927186752934748862680555955356418310607913100072279654543660417869564174959423861848930975011936749862055244397816576111461291958822758409565943284976579899652549478756378693461233835536194377451246914202397861061575192820982329828556264613335203070006260709435532157122811888324655392696277675621032581904967185338331062686053698259265774543374342254826749962349701664718663526590791470341325620495487778125795828171664286007488765929123994310899820511744928943430560884191836885969611440820785640655814692130327233917691190209319944090817366108091325903563850882921197312714450435575661982529503622727975624415953774610643379642592382011576889005760107024567009857752618368420693692062152588479075563675721915623307633241878145520714730727803781586819201192810309767622643435774399841896492770925224338392679974997367999123010233066753037849388475058539781028848604018180817833461562841493736636536130814022755727879506097706710943950988104797199203278668314973165623692075789269070669722201341081894067891481349421142836284405601284055711035598505147273790311141626702736544732722354385415656455906868520477701752127150010649177039425150850373041021484773575417750131855926182762173501311658935607249074753521441188858750301409185620574634198370237806685798953878679842078493740017048555323141149794894650400174830174147585235384641414840672147015033567469149982756889335475145641164059708658961420953014308466329749626972588594155845351426259926820666488449769931539144383544926265624383979133708874820759251227995753973566233273818233278352118750062249278509016970832519308668327882180542066405901581106907056980496320623453436297146335514545473347201678182500619916320103289470224346955631974523302825381767972503783352291683671287584786467703588007059820177340567046228436602572125274738706570793075830246872698363299722146167748179836428947171965353049318474190763859684533282113569885461781263331307220452203628751519997661451050613564224880242971865535907205371597154488177771125260891712514946923372920376519193581116608734824560342642185354330092902384959926551665675069214426644150369141460382992801350939253822669210303376492367964014979976695913075483942301411625262079072221383083187199254869873925500370503660637835894761204334188432094686604662829681592189142417390777618232641767493500504069317321692948303041902335488102202228655022940838642595633876735091230734987852815006078451189830962084550468198849882022623941164912982568717791868661813102257375650296748113050677435360403326220853541326605006723202336031088791574341151619686109689915434081254243509501283665701775774218187805155455449889675667223770511397357397740460088613072972718478761200671942434675415468184555409275891289653294396971567058850227488905202362203432241156361596276902056135219119645486950211424847397582971678929376844446642751945796137337312285035763182039893681070846372720168173746705070442644635487766146186617805995471609554229278372778250259058291146817648642657987472721373300607123340383025579656105065365027698017266843920168108702022677046098981515752425346880500834918473147558152349092119455109659821634746539722960078915225986389691758614129739001952450022733983488834251743367079741311695472106848733897980141572588300817065302458087017886419049083166889977258836166172276763673229238219465423306672426977500741853443214861490473958328675128619974169193584779918891939476002650166940315979083649972770634123955399814946932001198327473770402377378941018782270184078208441101266242380894784919404139227986436208380741517664530088030178714315723781855324342170594155408039051416148851180589616028059764600108590762616880179887453026481169166930125538343963166811726757159716075297240224750265565179631014342052879979422888320045390481627903871166254830556420958553617906913516255748712311773954716079522895644935080682048068139570063567559231263950341697650272209338465348345166637285733410246176546925197290538489619489558246793272126120268285716516005537131523768460622716454558340543522346945209530463336422698802271327709967322153289365493505285057956791461988024160336310827055791984156344133632911986437539435347304858360020019105514647675210759049824933299945093684301671948058384086143287712464500309748783090846391554442622007315042863288109683803670188984607992993030725396162178006307182691668239855485658115325100873420860625824059012655436334129785591814858378849723011752893066086605778999727522409109646835635737665471470715426017743027385788610933186699579754612970956548425507571297708563538704708163483619588436455639968126447832248119653617269471952290512579682468504143914527506130034413843137161166598370050400402339527017595542315095015403757860201092394150332664170223279462823436547973981222429659889663337706621435826853304663500922122456375804883287838403455182573122773158641645772024636718501178932488006169590318883417599657603765248878347260905274757562111505752367008529361723440030778115404687930993956546652359060561261490037334207492281513012980007914752674512188700082861624286471666812323130218842804528166717382383899405652352613363769692488852456996774930265492841310753589631757923310781602587070941190105529762565995694075013766603064476326092870397695538835795643901888438215319994947171225880000653411151216348772959332519731056401351188890445363501189159608499607034530824828451220825474885455321371906171528729935195755923319106538364933360799965971624651180603641883615620238680917215108180315997531684106753278823282181875629222822980475950832733202571349359161129393889464351081146133815148201053672285629669616330897004654721037986298060501636210506383621124061424400441563218935196416409579793784166177368641409354247353346027598560574940494294888493836741483454497235058040863804573642489646483909632590924898343181298080051068360710853286326218916197630212328637540815979296896989741822051098817424111673863322777292795293316265622400932349733087886410111423065903550066930396523250456021949492757232676924867586060027249829215825514634606096601974247421764569246750097107979091242669341099766746223668978098532005635743904655100057031200760498394086364315329933610610754133044446737384739659085569848094981333670709121192036384427256903016234680703518686707321003190759592812142183959594480220134362028389225873208961121895154378744352101548100830778039608311612099225074909001117982448251386618617700275578259670475255919287954192263677126432811122370206064442620667107409525527348715524444941064733744901164129512600562082430899042621654473406519457046201186913631874625564278904411906644847804612217855979516659799375112863280566986059410609066149928977065089484485776099753832725737252899811787971860142539512320019610240802264686447076221377626997410529493343505714667973265747545513125806269222489202466461905900559394965720017150938521285534659883683540184416890726769649535259909191857231760226781869591180398481561401788349027885235181680645693378206998231578640634791692906431396609494739670474795619032264871796746960576193184632737627004825416970845331141521140439286321080469610281584447323868952470640625325651691886999351563770967057176738187794903874024499632462477713704172205817906445625947017783780552508360292847066298326005177923244153918361130133531854247524188428047267718736197569320128718558235004551312440404345513050768842755626908817742151106447180184997077328546467793163667764478780279585389846309243705935283756454452351206604064040436519114321387600533434757020053550064572691107312591666543023727584906317988898330146723816407229258010214238760614858056772397290010453533174438208486070706628820054892869006193407579745726886996936615129181792078595463172858702963066345541745375320072169877764766017638431905717266086409301218405153229168961490482437521462501226662534106486065525366062117218262655771825957073903991445071017591876306280213544390194793619016755280186094828427420675909593295370045015497632319868566401979546570499472864333465481543117232726687093175042105504929025346972110236076968382288322235562117624484350591699186010138025929221980260849027153948681915932409841251481743865572961490650275155603125028867241239872684212131786199191741640881196784357000272510923731688256413155382432470219770017254148551830732144088465887392990627096998283809066672749352834867935191187625885399834223379536009900689328980365523828579105091805971128997842219718920191357184748034463596414440780007140862197819846294250501636407431107163503914747434054071620967964427390622788594329538940151950743446898342669625324460681408670032646241104835660770985153073437492825442336573265879174062545298959220816809330836749646808831344137331580602328620396899464489774387516728764481267663661511511586768336453545518040262956432583615574111286439524806492724797612508405945859847557867640541060914194230985991017689133426005092028749640546008251131148778101782467433347305251268952586905412622321142445668306145236793151463694782451020386800474696806773794977634367601572453330003626460501364819791318900220761048855415251071998021465267389358773281687445536518860230591809884519492696427277756213603587143079671918733272564940343017787444360865729674143231658863930044357865322988368351274087594299499654652011693990773440725498971678786616477406059800331670302622070209601210737916693382435692636122885806540361415088276092966782223122383825778639453546999560099332014383239298338758626652143085864605913262408022859727873424986105004729830846197558066374377860859203268794121914417619454074179158376068485374603044010021425922247655745543522529854791384185751021493105197679737670396136680877953895776275125307356219714804271104798296755909313712866571981081174580280990435909501954384100380099620324521074356354731642043483307799215791232966396452477727905984919028309801913124028870654474228755765173385470523718056486915851604124515536147713363850953321751796827651686581082875782849952957680407663618739833287542762782309155188674843220493065317887460658895254289936378635013117799835127839196243503557044164673236917231731128163075624927333609859672802392296799879678601935495746514725798373481073817948989638074721394681292787085549615164330909186020662664729883258874401782979407573677660900673154407359942912148023902418021059683116768263876931701771434220487672897798814382923337036933569723874035720626064037719115143038510342876221467820356997978595022062472668005856072460396553952298203835898883030444242253311783810412223800210345940330214482269716573369296092690686311979486179721345975658948500880013198756630664107888717128369439210536686492418308751587924695008401830591228960855354173760488143552973289997034344743084621709348745927254308784873229764744861177835218010497290352505381129782111930780687414948423687429413367571073570494218668874615232704252510120126327152418750526498643087090161689530757786609036485190998751425017499546319591655657468847833892823401642225137122447259741351881615840083743189944573713011850007052286324102754086338978902373409498252098484436758916714190568047343900697794935409744700969065511489269526790434007428109215303246597030774110843907362257949946506059351053473418145451296384687682325878395569813058409010411625881396665334371978802530600984471580355070144114358891716276795948473850190299626531644488560539161801456553483982967448606564313413718448082639484060645589070120885804449797645044071668577662946935682309024575087411631872633002948698489983417178318444043275215679584745264064963047629288442838292602785359136878025154775282411667882114105745074006162534401567689919120527247204027335859911517501900065089437633603145784928489905902281342150937961702742261564351311820762089796408208132834366380059312412291112600725885589492850481777461410025148661660012160214626652794118979073223831439739947331575033617775730351911348769542106940952576123006800875789042258583256195189302660885422100745700912207751857799031197939945455820805342897539131949023868377907224427160343890346339929287768301594681411585252253831256720455674310598419981142076749061611820876296639004819554511586728220213557339693964374170139510223679322085360348697607793528835902341191110389134349579678218088954932000296672076814121818171795141560606859205054619760039480143757284716211746962736753456311196739729326276400326939011770503533154500930081795655303513503203676626272039534339929315833586547495435850504624113949965576383025328815821468826467643154892593525826389021192411404393778457228968745048262307517988300744532420164714361135759829896033531744333275896643379162859884610491865466470161002980485408502165694877651279741860825118958864859198443056568267497318359505230892664955214917769321797327562100386727855490952540576061243094633772984291897133052279112556113520081633041859507787511456000608914700861268553697764989992630876900479827430294657321479614726502580749700695630069023342843182330570575929237955586304721176807787872208014198695671262897425881346281501083622779334929390680576965142600913067635968825913004244245038995444317994615234673830877897636532442209380582811863605262606336578987334333807311435517235745024006531356925878971573690159947888370362673351964461184483947936812775679311332820827576794402214302070636853441035735438250214809062304274976355403881134003400976688333663624189873574444519031815588646705142566450041462888521330809157725000806251227627959023546206216842207391735688444915409010332987395685627910034060795469287618417446816053623884908224032738758153481939482306739469654857741903907734835660617421891777335804501376202547962844619313306670003012691775998776050967704216784317747672207220929001710815895266890127474225654814622914631218257570838068577795975908115772300255269905440597372404516031615223347895737276127930522122620189110310785362812781828808915402137944127032399692989137760189197295211446714847358115451665198464103295223573844155511827603278865453409386816766479569564330460126118755167989471922571033206076897173390254587350467697952666130690321968265420663372580590955909107559538319039601167967738177439736301595126421209431390216887867251237673253485657606250552120621358034705460653382086018096454782287677373946126708877950608642105187583192950806267739825455560057698150328912198153393542031652825783159126408026810328249113609380877658745789989276805363556380773651040953787191486181340469575767201008248026904532480043169588656340145911390223615374812558506773157804935530212875111876123713613645666176198895810469191701730265837965836735860880096460213109492839150836641304841178462247619937573936996452654024724905579003830336604444754692401905794413946335237696644977417837022015670146857372939615688063062232856485676211830780879667529306273126481255669076927574925693722982974303405295207253815582007882184893630486588942856106831983757878156576162156360701925624253353825753416183201280032158877434123219848333354233904730387022574041452843199232136913887078257653341646465681994240301835511250508504181926429772801628883126854261088833216180052209989425915295843688073659678775475965236315692577532623862401907545222468540013549377917713522620367653945190902689908824757470329883343614020422537315127077657805015699296238914563155461734189815589836252598657678989498089795665280881372381007694675805719152712832386570521461965618878838620027691509908897792542175861128265952340704884451124228527092440706151361416945537603140817926597798598630441118009541756589618789767768466044900416826050300562629266864909764148313456170208765181872901966114731167193835045004581763204586810860259822428874203717994703229035820899447207753902454414075396077258610032517710903991791809690073248816569224458019989981869152303060131528995233925894782790033457970752461009002637839225397991325550816638205106449326129758431495684816320000617275632654120076261307880912811298094618665009983102502650400599252965212694869847258956465125685142326567244881310134499763996384677346747988813333887939111065590555703232185921644270762859016340954758555263523981152467752534506073689624097322581242921200643484671699814178440307003034345157010705730565109873170688113501474389925087377923421034043416287782603648211465026422733978717057456708431748995492070496225752593709719285458313210977005656696020585236202347915305269636098977236100996314205499986105293786719966262940748850239954720639126115895466903163875571818815185446538877225690900245007656445023517207481181443169897719986432547826531422946668781923648976249539645422033081344371683135463738163381684440084093193172350346727112041004870194162175873023856111400517006448790445973395463122084203501447475387162946702202148713022873425832057116965510397095650520938644513428178594108780360115747837011195073080036075850121997504871328879329325523219959412492809002669668674185734907627351759974741631541179074951834403469541967810141624725980114418933770582258036889033625753003730880665933827260561129930497337172827654017298509907653648490376920670438416508924470467169208777232138000494884595365965506092002079754887563426569710336619766780861167471874643334272696480863468940108934166735080116642103414372899417506220232836552533403358425194833224237278617705643866196263059609586808301234560846957054967366285767846136125883510780294000007277729594997839599805890408649118293939483999757501641686388552329856688424864310911498261194518532527371390028035851961863602210185979443577752697548031738566430864367437763930464232044911388127829020369769805564809522346620587616454238279880313251312809987622289639422447326338398489223648312765915104632801541983434928113868747993860964837827831907272762254543204448668515048599303965269013673117978019047948278883649067479445929769182928144090365531014764466487968380880045605203545646847286612475962608161250390945975902687631299134442481237964366358995081069834154760494528785077387223430653795091679375025456168966986092583357906953686338872397439351918617502539390587937899009372457563530469519518577026704255420135851262933419568081717625493476491564590143942149709358352727819595696477346715400215612517502954386591377027021884372891153379817821343933801756584488831753566748515348446752708515067074309743406133742609365418810135801552670328922283376369234055368286997331690697906071466200957206247266561628511269372578337930317467924999849151169496508765557423312430193326641226361794331008597417598982780352149229546663545464779413475749168147581131411104650864066665816639392605446419794791150804682124370026410575333168942670875658647798889188713233653191231225433954015893617019918018589784015870673784845946464437249651626354350622463370161889934927611218948759589964736614829669476852597621799019911290210210094134096680885066453966732042247744597509480341666754998315619039478213867696356449912113213648957000602048869625750448962029164041774293316982704729018227453020084652227212623837470412579694171140285998982255841693506463901997520927615954314887061983972938767650652008632673253293898878992163450560995609903635719564646378163102877019355546297250792307677480546847635526305503396802543423495261405747493447966586076529411518266011171117536161087672265575707868109727569560687068631070661002117624626563541765959529482818977996199762190621299425701988906799837172754945940071621429944927158257120169620828767410073462478498667154944217117712929755269015233089896922980248731752065286813989052765070996293307086134678134687900705571370468385686055436313633490327671823678540953684021895468709456282659570797722908428301728946090200634930030426225919393408891535498312584846805066820482776002847809360057488768598974290747413530239930383377718022435924200448490648993246166894956198663462207938045318452368050554164724737449069641718363220466475257317562308421563261106268491692411106305357704253765837037684949712116855903777758308416417985206576197490772150582701032061364573192034286359985900294317994083376267465518108285273458363465160673596915198169902083678618061138140680369747817803851808661996644087844670436040741088395103187982524480766998206933151926435881555137841956017590753340929265119893755153199748761998488372317026766741182651666222617581235158089617766566204360725744338222001980282517273464549596866707356935109031582436149226420257659102505375613890308280098327799926461237659372974107813369517471326802459527000482772789999450611491339739119608696564073056194982751898202709750209175156039702289282267737643992434857583263810287897216290076610301054812697524662284992036085786396606922890641997333485582975881707475011448489107393942428183567073595826684835381887950186606044308807751267215573406226832538130994670698634014293398223653661031172152992870382122349308409054717027005689046157732178288472648827445503508658114708382252562095916117506751586319821313187883310723238911465268502849150063381807432657009418640838739504516551817754191688406689183397955229780164093252733389638273622304229099897821322434062019002641183958732385132957403549741560211480848770775907127378698902510195508108880688607149561187466110132374504827646072806808829824387038290189751559022607798134970281581515899455977538625612722840198380094988805640070110820181900992304343724609297408316361157156142495912904242938900627648075204992614510433560621631806288314927307048084351068326435407022786544570016316177967945001811894958183862953272801076867223859843039003277979873646492628454921130695835706702651210599920751603401229233187168087717955469922113909809239661348718470567391352147988988512928910863546986578504517654073311164311052306405967936992131517885785407452872504761251434305829474637964124471960604187190334176050592520967681136455236461011802619031762933272354587951719697852332553808438738584533104547574857191905884052671991390325405110373025599941400820086441558425310382171830950956101575685582678765876511436171975018740121596134322897450552846207893958284108280954757805492326760629874008240936790394356382260189048118202492200926956473571260729671988375044060340795259384541688031648676073584719486182144937023780966468129000247468045938803184909315650188921301306651520769040772122029554070265399953266453610579756419421193153291854887793551517341736304521373302858418852946575677510541257764557663627859759558322330461847839568898903885051822586854775319555202004016694742527617294028499479567941117817071837307967952651808004392240334010894968068428932294773688458799267026750627272003596014456667232091870524878807793425772865290965687919484516739655440020936279603687118160571250289544089403933050783455434148826818892875052431082204853493165176331267586629741118018745921331644405118095149366054491717621960039467457795211930911151109176422600083488245805802468416264652237738013226613027414698662049365318132899369337389081368802748693330399713738079727684757957733202947080237555494456116264363062770935408433395380879084641800522310642377116475315583516173836241818467404695055720558158147737690549773785000979110890270136741912738646146207991508942598646968262874356465254220265944676334762736176248949671965532131615672560271190003695635728215441755229839901032387218314457111698437539330426010359084888535576000654099839143727428828972304669724134284513579949542633535506403910122217375513085791699541103856135639356431494478759920930028308824934558020710195891336676884838285842726982376701189944281887759365326786637638040462306230489147474806613992365226852177079106490094366425920148932638202534031705173636480100162987869176729478945808251433213448048708010079490199777900105743520575824240550649102858232946705959543212037381457828657214032899786080686427611627078849042898125196549060622692402633308918887218721737326997123540658916653469992574787298967606326009696490778841260737096413137752540174707341845781480319311781587056197295043086050042113354789225462909129690266513237754111204112017657933048971313035445998927098806698861201233322676081352607076087110244807418407862555099241752800934868252632691720302997382780486913804260962171940497092019670927744732540169135252899582204719522601731620083880839490205712987969201161279759171315665032792152115530853981470876756839013274598257765865075013745954421198237141058713034882043953898386983441857333376158491593320212679773703361031383695775771862833044968105403672177269905618058965734755857906657862154569803960999664077932954751843132403206300496451004255086756933245250474567723282352655949101203606732988624457812331659196904894830337190543143960720007913377906405237104726958554764063546137004051230611286756233259387620899347752209159743694643738487441751759097216471636357744686114943112787321903425311645987501355697332854087132064285309222897343080677467424108937722411033899886191041671459427489957818684181218078672898408619086447032710651169284766231816476965982370287345691162470106155688283393396900397046642651261635433197149638104631334396210980594796501373361560497127307323443605966903974728131262206971332222227217177666494001492823063199982156361149926941066135593423779665454822728423599081972528088671608656709751447333878058173135330166993525173033102457487369531644934625392328912265925783339350530100160126900881324280189645655524010875200093510473664384872383992702723154346713744362474494820478454835006883378745584226114236070175929116831998100248740861207420579533044472183015445745873343742053993143541328009542017813766320884741966418125561554564567915297240409442843141715445651058058038380930226790480737587537584547139536309229285842206659439461772392959143128273911924987529416833068431246206220538226875347070594592224166345161956429992598945993292183351466092725593537013211849164541055687124380414932760474949334510698582995653940672167261946600570831108290744247350393089128613380643721214231486168701400712843860010211299292902920472347910061954680617021763125524409011204001017389727902452983069914955018973201890381284249235122993097522593173261599519345055581963536825547995479376861996739721786888308636056145730830330086524254822760074875281285695393288279775231013347036499352165415610171360498448915281946221701441056301844684077125560759276931857408033650960582799204434809296518017994904840750294020325545352559441513764503099807318004500723945175556419093309026831383313587017285834336216970419869565094561134849941695236173980313477330531490342292975247430685703743263318830498086311199394113411331329944970902208671395256730537485172901240282026438261008493076026373049315148749951998851017957999748986461559341346630249379362487111059525275969251159010689243709575362884341146637181470984205133814541598594960367250576555340398281585789082970831451748555690469549937932792696528833809305374481442207686491485497231555419520970891444810436405900244739676534232765493469130333226298394705766220154168457465048938502253593050947296691394805839563813547786790374887134142162186206504374239076649140132361308368854001537032050462109258830622634864265078301194122141830952841656521928316893198099827485769817044136254278439390161460234818449125232753384472164425376375625070714416200423370624094404357911478225638811821845477213157345191093347289123019735173850954596547837622516406797566410167136522953755780871713895958962944507863315147842744837868386652889620361236658172803280466840559600840896800154792533034692032704601418705596829734523458416391176503501095384755231720827517497528195512622120785469096714535949216352416990449445866983796198895237553360176486178937437146182474784811083080110962911294018903180837480287679958211583677935911084690649826862391175525429758205362496105654962638986762561341070393521381836476540331897901383923954610609209654141669307074044347836750944952381095949355857481862118250131373736419947297951158922628029825473602948345652194187289565301856518784384227165196482735654772700156931409929726459979871946498567789759975830324376765823330463826485924335775757668294313486139502968488609789113926277271529577822313091842447369143155800151939006644706514214492123489457474187942222563691615537407716987639133862736383547453771279557418625040350865275766541925382039078212341751317240977835008813917927459092879729557415178191723361874128404549250970525854315347892312200726800805053109857449688008617996945559206747778744037352772048436238246292001879395064573351219376431301167689705559611837175835485707191544334733011031431498775583946691762493261790610949261476787042753024896423271577109470707306361890805512039997358442524728717920269016291554497390199620304392183988672226892842092995367197731751550472062255846943325761360437326610783753603794094901313767071278647720492701874775668111561428031069630783586381799666041438260660209916257928657521282749498614905088107453548674772757835726538449065082971573075601665969027432406271017340479054717513731259557546723655543831436877526600137423575314370630888199256431903374433205798662307020031035421855058296936710313513320715761855732295339834918386844132026054236132362035444222759828206700415840949531028956823047045887576811795632903732766038334215074268467603665644921111897158434425352777832167692948014450097615962030231687676523207070227588286218667009307576126807550204884090465414099063452062479998748431418634053884808149070884863947355180254037947514644670881489066958891302206099089540103645035553809975316402144420684760028103444402228450431728339912052888439342056486426025533409966100734119868800064358563904108182235726472700662813108857467840161057871340733802729905655881068594506434644022636081502873554783750388856325578477969134375975995195512248887231185553578766033039698642715857438138645525477450495001409466476953228559821834830540321628838296577121679204438055905047217067495487916844968950965351804987438869823854410886769534411114429767226097575096466154384082878957481954366276136040318039266114981038365130403829184602850157708020881030690205229880487942163980320935681891571060335376367467996110343259542675955236277483709635846180011114199333000629333424553051483720484582662538676198327843631860707864597550633418034256236137835576214587444916097167272867730284917694979602449376733489424613224455269061998707766522173304184139028848897845603633978769233933151653255703658854073620647366341545674821352516403286649537431636627989971019817478541931498967869213366075068354707025004589478092985223236564261754738649578553039585304328228892564778744340608259052086549752645945253937499011583782061144988397422224097461977375878028300809960277930607680736218952804849180358132634484536226880787867126796827373529890603150906824585048771072633102184018832692239799664588125619752203165270699326647367704430222660037877323073612152887358902073123946384311341643500518133992934742666501356110603395704065373816834891906040533323162229712597042829816655635813726585239193740826795569022976420037227448595178584779678369593813343048439651580479344991322213776855367827388754559095423661972625221495801416013920527827284389232300494827740310610467295809159661803390232268545576865440650711998438993696669024421211122989872876894629355451314563024800774460010430691039245059936144013799050044814571412463042436868292008595281194098064791314846231073149329709792671378698124594411914968852088121707485229230805122187001026633917695345712816314559072845311383255793241493432467228104922936788974472369205310328175472002902209768068209980506193343741468645840920928024777842409232417415088994104561830721157172640667250803681366136113029231953425862176407261245228769862562017239339165509164635431430902574237188512477221457775650897757022394288305157910113796288190589738537232956883538774158470652718345392163182750648026505313788197146134478198519633550719858358792182956863483656645938358784910262787997777614263065254083622704660470118194504819718563255581096094997049344535219451994252057213855070954188297495848452300817161142066983248499529583385719535365216491818368092020275426111833452258599242510092082318050650976740328511656359993774053179490967676717565887026457540006013397596938780352986392227866850083378856068064091707460658575215094931141690271233215880905773054881467083186501755892157654068432977788128683493223455827229838015767916611605739791881362506156630310314402896408553078433623734714457030556222273868584321315803712372138852933425298891508912048164256011331383676767024587519358734797899015011566051051631689899462513290215170326256201012535008483280730858485998887897081339233974432857150309456887754532480633847892744324183843400027615170918964497260228718576125122686712041050620257323085571882712459649358665799925436692986307823153421097713300426978129670928055991970016603197949832281448410154285807432962500274635396895842462665440819889151325018965236923915634383092109877045688023598512180889142845319727715670221640823311401769116735497879201330584827478711562193016489867397610719319916817615414754111003830820485424695323537745041431683173493543692332808480614122716833784087234174089625984763628063525088210325293485664653287404889619327550155773959992170473651131103943649230654882199745006435082668103363977097342621252473036539668613919597818668734699059658598654041898373595481485225180457949495607562757932071048037995542716017690777063268688461065832716832464772755116111574907773855944832954544691067979759024092653628452666809512437906442336303582764598402037898840441087202705256166230225505126469886817707646804254614408837855621386482780274645456809533553749806926430863508851843310777808240073748506757759727032607031777531355820255403369908661796248228578962912092399792875074846755186971544883285761271949298153941925714534635289605868455650770797174199662290149931792485410316413131749342761299027737938301130541045353136061178858091706456784655689943080379681536345253037416227172309762091575561892575683107414657152223744924486367005227574078147494908986444283897990812690872717242058335017313550770051563537077917622161985149731512283523563985429601594657254485045141013689516125455221058234446434146379172885332852289668912877687090263248718815362342358753119919787326223843258118722017550337971574177159278637949813341498644710556425411429900340146688697040266835006773827874736540583054884109866103062778807610916895635157241592870851554673037716450748111756502982031195340119879657901817266613021084462396073629935579712141060988156202497852649128952063871913777820890136227797718647699593057997931488833592449196445112731951184703705139039829822735568739108239292609706878293160843523258997057247610927422819638660891234764069809728057926103355400278699584873312483299344739262906444077559698667328629895621568759391737625734013025129229316187422097712605484841945696694320606064575223885072636577322120815110313366204767644336776327568212147931857295694970606707876321591571355947719870973723899189351624567660861107228407997411223505240442860584960353130860512462953022157788223268703135092922372484021156703713930892526805894909258335036838777541239425923188201439106858283469032011178440787298802424960936983900000443206262855283655101350186160189765011999191052851857258685297465010213815091678326557631599864815815391662597587359197250942742959382770252744199135124276490790727211373130770862414198490771636398464846876910282678238360489441117722641935382890669038995914259497787410964764968980283569348577679868382116673487670467968002696251977191246055873422086190952452113145624903687107100270484612598701041641247515769332416833785002129237228346157833794095756963510443333327134774224976633769411348997670555903161730390143383544819644612001035442012716318155793715236642182990206338453663304876354594187262656684901055445604996508409217705072217357129708753429781312881803167988533204412551511305509784159674669599409057357426825679189181383031248425249676330524388069823193180604580628887772021609469683431538699937149930837112341278940121040763640824362035594138728087205661749172268180744177446193050260905580384229553821260314131819856373451385002188543769957465080510112579360587496700987631306872956077232434719257709909938688694269549038455974886520293257273876006645835757009332062542533409181143661393867896753237114528472925104921520327374352422429813565414555619276756519480886082144773419044044888670934231392828855967952280145655625536631220894832009507804746278767972700597196054405294138830685839238153228394510265497857924524293180364586631605901314323070078881071043385543833849283229601557410707384722203297456784435037684960465616607200704423370284446147196147197999891152523781716362030950404063767813744135626278117846386345828472759921468011065470702303499689067409735308824839581904792309023817809370919794263666079380257352019122581740882477873524073045907868611825478230457392420878638299434455690983400899979958204351242170048880615392860455538071004747082384895788994188508943476283236242780111895354759026563477567284535398087976754434955821213337747755301305971608802757518563112238217251799699171656733785939093364562478504892314904924754558419454083808172377368070171446403096170522707717643202198832857034199744045055994808059677435076027186355034577861917689494203202493467136285595738295401500081187655283908303253461516391603722885334628453160610788406520337395488767802685714636829757437066865182458028879804020975409699431787246683619792855698969896639091229142805723619614984272223338486711671189405403407174740289939488156930798817920901710429809509593096624447556690761033893211783824398544425931806976025492813974200614448054622780924132194850554948065289708418699312478180180767120319666385337841956134170649686162449779081536073973442139263731811689099291250004154776452058228085623738257385637084791795425365367572887543949731660144135595072732229213019948861553634159818925038132437575405391409270465115359984974304214002737648144040604560589917101017429122093152596624149468360554130584745345022491823037530739897773773293788227937416614272404943768274017723838695394803266314252395561599989419612527427171373696075310366655650084747592468580775992057535099168388720726848297787695299127767493686383151846009257226914727111614941241116685998922396444640576971153170031025565278544743555052265123222347629470817419644964247283361275113242943986046303883956382910816316883448211577106533758331722348176914272188269704653214062304969385897169867030196957022679937796758594006721855207081068744856465583762780261062672977291963477387665815152206938832881930307068536908670329251610084592948214813226953448022518525033237942645110746748016651710869657763741390180165306860534939420678247811951118036339516058684438033157237709699441173304887389746426132545174521782164574616553281559690314985657704433874147092963172842449415215033601210663403954275354872366244182605949936491974666189929601658675602064892834446853430415558279665319568313010294733195879182331910867010735484474574329689917730230184088609964368983977655440079033067832175296717954428545792052189485282417719073714295000510776414348444962009163820498061669912691816931837379976545508455625876135371650096798071901982027570593658029250957869215536227978842840691434670229408959754238871079411342866312520066301625693529996998193234021285706566295080471022483564169282211149395730841170921157112069045342186995257968543567769039710599293618354540752490425761920191851502215384855562454051150325227850578244297883368707770216730041827343020284299695576483812512238816389854134313538209595709283153599131710263909169008870387487145273276097606368225870950332251218560971959299259452055580677979792059217748843269728868985779281792170865591274935471900331376441720917999246002969718401386955439175102328440941103129836158462775747844760487451082177310778708989156334872348765808361528974340962225038219860594289522131244425814120181853933226487954158794027219988091061235897742140696722286642446030313960690140727549494770765953190521440450927750697433704219082058951200278707753685023399995397627385395189340040808371422344581834011658701670619040669334665627632709662968927940318450184122019903960075599794128292107895284694512165630271677433558982606811616295027392233865177830514533244007841842254587465603430035456518601785055622625779844606641397718414468502005218403485683575569738886506456529740018528130694794323332234227169313235231351495106894306190647192697621708812775045367633313441614256508716994037529822168033411321884745931789854233107980272278825281862835551024919110462986958012092549009308654718758388153576868552101273505431512137138858536725311709376421803788729010880365979499747531759429679801077104857053691061118839141464987561719859300001456526614847151795761232636496830806126547859967478049635465329012168489722634657703704249161831027598495848088566955510890033417807430169065063581132431490934650502097952062420953388393962102942960121192130052133934853714283705980754948244031729900348247431555870467007586057630561189437752123620337244167447141561899243098148668633284457963130229530071536464532682103260864105138536727956280100769481249334642747170764323930911975181540112939842490491380121910082664075191427198166138912312689235625971859018068791676396957912711079843815486987363847808849149768588189611689128347543004297635227883547214870367097030542739499607101364020832200321792795271895377134834936040659943335644068628162421500257532208577188569091694831247043516209854572508920317031001935341508021435941020004139677137323969948465370030054149261011738836885800010911542799595593481562173607404619981575747194552367769689213252637421801556051595770776553531831891736652879369130619166673083325201846203542719179546915350196451310406950724208562588868141421544994386844444429469144860381338609683409067788552531832233085342303942222628839570233231165949982614412852014243238293387210835295930813354520611506120252015560976786314638513229525685181830956870050307365962338969316828565155188675784429108293258318811232352882722162188617338951397078440758111927006034834962146368170285627866281203795001181114438771316884355082418463135170550279044107569464067538566205606221580133841878157727111496283151838934375349809105676101414106780368061843752124715037741948188476347285166219479392732078132299322550113451623543024468527471244416801332905776877499249713820292440859722933021841670503064990972833431876254667940124928490293462074791023115226541683508722431666110961227698290289205979695116563326322150359669254038889905889466283614230142292637507134546596294917452033952417463358971141615982519669672147132089750169179854933204277789330054306003129999584254554801456345349049718128399152892827603037399201772871173188083552750838883617310639282859955859733427612023380181401806297809616449776164021014998317412426537941571845082636637740610683664722673661975669805676310380409788666949410501725916553970171864461399070176872257868604864290580646593448343939422653333921641487606081757887204084266328614910045945068254082547700236502762883462616892881253368049554502631304383927115538023851967128189159576625574589422659360895598344539268219459945714151377019497504520076327638136597197516330963293858231014877742750707272137842987011205932015153259466056132886374058872131486331335271617036974222393874099527333721225841050605648265821712867565372952315851308787536352594479129135708152456446696057338092684918937673280783484600354382315510607813475402663621448687483584088893663613133282864412172412517338386078547717230939817176843061614509725286894469913972825673756163455507992566484964851744162073543753022012618440738082266676179598030466813310347046490125337567954596033207540934084101176532225913809900235697448894613487491959408166719029540624056748059768140977376704796799824273025293768257688250793665989069484026933352720930116074170718899135554249361949304782398252874408366894978550715740245475685074329259861000931831820852715452870605603534974624474990392559285137327931922973484217813246060606148985573043170817775192666970957752547677513257099288939967383011716782720013413465591232274504784687443201770132142411884641158383421667491789535820179892350693751490095051203760666238577136137957595921251807061978618075685052938242063983704924136351491033234834315571852108447327803981880133418994924446032788652978428286948018606847668637965524200732370589257626522389298377799653252325465858720847593308223337922884668480480390287090209951449156282829971151920223096925874673096788749735319245325516487773223629227130845207232074269451568555562971175216134172929296093552285025092238310308145348016553633442344078305015958245330369673783464547064407252792180430112126081138153879467731936609900698237348969904358255070175426113155915183624555680790978507650835800944721405760918716230735704513019465131907400725231544167384999795487371110685730661276141331543350461944512021762160703527692765290735816312611731090836842011459208032759631965593880224679681502418530752370312559518745773714638510298196756342675685375507975286290186983905757058744884790101728716998815361742674117581507468842763548588672844706177484195891870314562703617929489704620402660004752384712378008714850726532361609599620079675534776508982428158153355168445333185471935726651416326425432912291817266319166997275902684897335730736231124828750248671566308842149965567630079234419623385987765479865646014469433399755445080558671041760275885488622817845532801044009551545353530187954988352633833424259671410311206986727921722037336172191149230026822341865320151035820583435565793708981967338057766986490003576071462209601499337499321670241000310784812247571095119062367357003445248354129117824474479278238294972726798295289263471768786846621829141195612551071992472289951236693695279972791380917623223954935121173550733495060395922226544152796770795723772371395098627621804625845154239006127407165955795026562841889575786853278299981078992382030392244925717695635864102777867793882905433661339860784303963531557539729347403417277741250594062008606117817895838974232884312988381983413491207180043361866485177009357643268121094022947279463353991252136333542415071663306205438010444613671113895056287751364855343387153740042111090048788033646026490238156687045908245761335667382824975936535568162469324186740349931692397538856093878052232000468487165940512544561314133448680328267861437124560142740951237223386335314100975528811613994897139056202812015263036977817566399955504007423412179583862428501488726710659978344568831049865692431600676187708797318446205813755748660187911348755739801423976783458752933965742594413318260455328258481924930905237422538976601846125118327812400955779279961370155109100921578626543071064393292854114389277062385229551337351448675300706747897645592476678753316682505662467523819021395112279171261100189346230740495408578514367189696981516647045235801890480986267821255575118276554851013259562746101899924812908395918551982569981507038153123753418414395088982017619031884466752165378501845037710474713616288115345201933306782623818028289165375308293151853982267983962228209969537039174251678679722612732012192064820795099564086401379054976168128841203769679861793639978286056745279060003788727078234950164481164818844891157199476218821930926083680181969057981016258596141998405387254235581564422912952973609103469233641924476269045263002211494525827640196339273501911563268915202871239927965703070752807786964506145011641438309581070388817047157561032853890187776732465774423641993075314280501126866647395035882499025758219731981682779888926963787364692443550824515874035522820646227865462141995870454281846749105119087995143781195653354345479448856709555602348715499319160396430825753396317508625462415460613772125625250725412648572181652686674332507061155959825913903206486549424071100493742516886616297394970153230108209222562324218978580733115560163461376505950562015311747788156113293282855793243977644867891666656201413178665553528168161138038217001589666123253464905204722665401829039619783577659473002211208594611617616170783637517718832731292366227632129456510319527772342428455495815736408465150945165102452172669958649016533610436183131869203281240098078591946599240764399519970766574874768017817657822279317975148787941513035991646482662006590744551092123783144538705504435226762426581630305994379864941744874101778233459487473840124244850539834301853968128929791217528706721547257373817339226601121264767973272462426300930346036035196862359034384499578736441181085606375045267377802995520802586775758380850974719546659176236218751941076962682913224592848908311014073481339779292585213034020388991362101938319216063807451296324113772129866617114883646807271745266124770450837438975725948168085309466094611796261292729211180450894871967427096463305395201620700633082195617020973576861781492152349871550413316243296222866715621980014301865391402521323866865409185911937420979090549818044295252766654852257242797728225637825616027584790944883051040878775288937614666956758905770814328347879437323870556816573233668565989014973556685185298550656484933858797076500025015629755191210717415057209038749604750852685184830229431687224838737408849816322047932062819995203060716906601039319658417332796933507053516749556552006844472612758965116598567375766629096278365561441177041255439662632947364627715895368522835164592650723354306591023763910792675547786913255500203899645985863073729063521742513388951955297150093260901109902410752628318330941880187892302866268843638876321572697278507019594911505430134324877688946006025297113173001081579376307581065897621368985330889388255776239309266765372846208439627958490685656242189087790298325343424459517743297554512241110133962939329828089693938586525833012396993339379755808681481385036081970445868947662262762186334755700335252145531570526513602275667047343979723894286511164099157030050048251083305798573039565341999741934356012492143568453184398760313335311811645071836850854394292843632786710302594670945845548122775464752728054469521919735701962433044245159543650055016506054960021362767865282352174297944775692124099439891212824693550106940095813013204592348282084197940551494467036006489337594893412815081968033641683588332778773626785278593549203787936990894575366135899167897523079611341345796665130714878900705780152281244184084876970694837327972790805458427162127377331069273031390463061571860236981714424730698552482878296822402402924256828894957569950764069661909868776526387239343410478644216487784364236233043678410928858252171214304531260330279467904511690384466119977671075463763230378778206590523256371891343967228453272739292903408713187483740949905277538852589850767138123294129568405224618563465280406976152514328387770562675888557277597939898716260820969689302019390798232533406280138301092451803899108393932080020042259733025841936132894761744086302681227352825937830093505521348451741592267207984010351340785741377554334521962274667053749514030322472711145625988666522577829497955724328442447220538444880910644567232603562315302167777348254070821550146126442217235988755187750515452385387298386727810868438245205343241411613900289189366680061699554537448734252876894691640013787674107555812561257521773036913562227378406498899126320571814395231865104278701248069824555391783360384789710712400236752132169086856457862886677329588143911973447070700505799204373130200942412598100872423571703168891738146582767002001589125534946386703054361667554365704007945383801177347077225577856411676074141260476100349001222253171328086715120813689303571689475476176572144119510211872210597098566794840586220791273144825985494561322324059611429084090589752071594354645276038888644006069861701583483030534054474684730258702200897399602168443502413435033827089260815209719380924013682114563928724110181168458548434428240947010698879515332375893093910890134039319955688972976638925381153834373656592699826986654624077144891355325312627370317765379854536278900569869477563046761034245268421152146816326470604364834748687024335430644659438737305487298884922310750015175015451657075221460847924815042697415254604814767268851559295164783095019836773070855286187223499386482049272712713780809483827356327504731690935732480602933658229324486985650000968667936003834202131455205577239298648953808931634609404009930411034719904794324701270679494106685705153264493123815890141849992838116762654641178401485592848800321057588582020690995033458460906009956609719249910187811667019327864462988441331400435785000582512195235926803739670773965016794432671490142443864090678353966382806460563895486192535534479157985845238720122518831634981531183542218019964596161769602408230313297225831854055922023433047361776455239977319953933563807824200804253051330919189693009873683018461292011374201895391567893511108331730735200570509970864485567828249256824067289014336742997814375127121111054936100548969932186946845691504594951704056343967102952533784107236597812014881282153533628567615229022404155700032619126622639373006068973906245381452931168873822341422947527449920059449243919984887921635665149202811846091535921488620097953195363286740425423877113814358916620848781480860395092885863991449624523167505602570251508713377755666429155117736879631610241329663687999012763091157242230554417536966607521936391515713755075659525650429310427392636686576959141967357821837373661849056729931632440493816747473488322306247070845974272595235084764004287751073375952701976254515753637302917471288638124057656565424223621851492241168688936802201032223056679340542505982522396608851906010596084963575970187578726530525690521097871033435818685307882251047065925821318392800692633783519257404180774608364727917602524829427507351925013428658751307292909296592246062219406726200716209848334153562986378681198113901941355186677965359791630815325000842304369957104402581902274576562264503906773145216635176158876520555821891618043780804500976408344672649713244180213688310592223337603009645415456493345322129562621647403850719738086852565117788517185726917716460182050620211481933371366163352752110298286103520691870723008498443560013437703768356234483841093635400533245151627205824212993347497011605237353443523029782464136554208671591529670219111453005807311033238292572765545959461361112261645196104653867910379123986923626521396678267822467391801737912747703405027684905426404133081611722950576876693835529830939227122898205578972707614589229036062208050667946037738932694081601537739448065347003192047063530440063339948812810051505753450113880138259595404538888548705225580748873360492321798788466677492135131419826133484657808985868933413538544650000912261815155265874762737517244822266607263566490206836445700990698611819740661584459235605183103103927271257011740445507892753947101629538107304737763833865466002471538102229348861453794943994900251506461486380942641485220835520067431764223579707444314436047160198102652804621518451360797795925033432164558782145326904954675912926725467437483051418745150741348976091604144953648041862925632390707302585699992952840717775788278427878596812943849829116972244643398939795055268619834245072901642929370887450961207515850508907656795259335138724672756359588767084161450369538547932307488569039114690334551324302882963222567457882739985794235930466145802704723609589708490462125160086280189036935190779790340720587870124723414583568606323227616605204534653269121547246422531521911640460398606914478512227667444190245264166673155712059726003385132478616380602879703024778609648197960270143165872177219213978388565800968840160062674577731855111840422532999284766128562684204890091408839526635451608560899251389527363701797218420239377756825341284499740462859903439595513647990525688489479065301622696580973008928262279041229484520384884869486475918080351469575861733802416248689008889888555332648242417531312141216124484424061794620562145122284985476436552956900411140312828572554332218529785307560298549324697436603199090227993989891072899131348436259270323524640894636901921651442548091363796421083687862425359166004237137649027150215449506078798525539671899808017119800707390219826074159299010865079439938301614472152170404458475812107559242650838276729924867481427320374298909545806362354022680183706472505145431901544246618294861778044600938087981723861330085468665681621604710799810615052373382409957863023750301762780856483454146660789693200250877944608964841624211785744610646173862174022655950050059073328580201756730242518870420271074838413885966822436699511620429681948088859940223787244025047186374893568929875429920128944003424407448940282239639226705626395754616668124870841051757140276273074448824161214344349632417015510957644215984767000279595346895024014437429578548469837719729940597637403938916990207591310837042320453566021803463435016959368796046466316510136772232144284989886085935546030112882427936791121451384263820643431827705581573044512992255622588915463157961576282493253924281629971493628116523736217910802071146476544267262173455055499000336114376865352785425735507857301308675229132705025915858995108897291349633569768813082149423826596310940390868899771563855918545946083927852007032453214802396889868980570963250573220729137276723113465411367079701688345206365300548810046248037034297269958464883584595090005769761792314487599427333990775549291110060692043257147322256680856090404339010652177563346117846545549887934486089671924826556767231677432631285901411417573858942804917460838144604664974102383443547998860252230568407473655515634293691074294140369574018354442006044654588812966580630621132321884722371051610278787658775883518684681362752114217953483403499627273239679302156900302614203078407931249188827565570125012816657582555580899771895853806084947304942199717249593082072062366128694003552978747576561458756438449200141099275487052596401186873772784702580789733275195463950632139647675900832422862838235521854256582870877457394190336543990947024563721526345806275188705346446657556209629651963711755446691154398988213567632653630536972531542762377950549255168301434701064540892297158756140755935480719859636012260778683157782917630381762557774423844945034158029131488926276035938789030899687874310504894105077655205556168857562234455099965563779163017444871285197594204223120396518414485754618658859702393125033607316466429569389119154703285644625804850903718472958202855304850849481240172559070505708393521225772533342700623915529629076859562464857344685232784934005577798326042676472452082188960404428187300446695144537286684629256646823453394896981611755293371624680276872909988562842314353099548894581379687423695429804573542840915534580080124864757079109122821484826877778958922074979298416446343880058927161215837744138397554349863086051353683118961049833344033512017316657614917206118414422045653586714920508101644508339868441138008892344941542712909453819940970206729347747255245958530337393190114530199867537279727083011066760617111321497729727750632034762016987342121575081011957179843672908256306158636564192457630750675726828911774166781751369330459946617547658170308062675119831746309701352181665880201614632391615377328979736714301070452901415859337482152352875935903889202946927649100418254154445112509236846285532243599506596221633441125695513276913657276876060666549272919704510457780328090431286417884473971051502729141583107853599668944116911221674255166576794206410563469434434821378374917561349192727166871991778328157052532410533367566859044990426689238150646909908508484556175933966404924397056281713069583249986421500813047832221824439311119387308653388410477662069534108553105071300188678013560598569486337386114049485452206641383402513781724827028085836723759231492543219927124956741539716583470367550731519220548697507152216988735350221958055464794870424803789485138843263011477239420392927474339588153698728320410067650415637568136294747512057512453638784024135483070048368785288732927365226454743112686461598067122356105044421696948381539003477080786370405994283969522166851428739729251710909078636649214637381210810336986649492978738694670048171067134614890883235199262762332545469696484523305665284418998564382553063307741435949464573825034477898193345846990677955637741109789352000311325981344894465417264495220615861202319128012426572759399934103713966767134473349731958327217992610322362540960608990506483400306338582682619261590786402922652766178158789451625229547500028358392622103263306987978176810360090223023393061117708215950049476939722609522974585773834952624357601560559844759939042778515369300142690805448026287566634554167532269062517890450006389884809418216818302067446443253820073911433693795825572710862943881384430428659969300778493470154138143146823582134445766776474447466429248194662698207637191262788681994494188877208908624642251753102552017412623416206944805510335382988646834676218941447847447597445612117411753323203817811359681908739887458400429108532186151381645441581485176343553986230827178148669981928849496667074896196167063411248494701216433088314928718862786070568123430875246930518008313470950849996992924156649261627517059560396297683510437488068246063401688161864369711356988735446205306723382674573958678514417634597971905936272977989550751550570950454311287146786122099617506828677319930906861779723659840137234275917559218322953259338787362893597883537377976500308189227469080312040564499870756091119644906896857477966481904010409669816674399259140160634768327531343752398395568970206189653556425783767705371818464181920200933085376452574405824441328613700890601713925132235491699433942335676245872856739057852423305916304633308251305270080342035291394209320171208348064909098834661716768359670203153151611218130666368286291467539969754646295609020726336208368917001691104785229966552661537726419706898162912196984061653929012449715140950985180031184472209590270000217268276972326475502004003407174659348832527858943021998012382406162249988713188173377670769505319132881739868239104692714518900159418719341316847419847329331879691226058664724279315780705053398642710370548761573845447439106272238530505398932112126169655853838442041304694454270087834753979244621210512348416269601534352627573777779920960633807292201469259122946433222788884865240929256272874910876312481681872931925530230241161143474799865639207810178314367445365527937063704800208684529504144854392023244428203210780200946877093419431461572210243306045351336894122203803737562008049949529137533025444277295089541628098667900291651172836424328664473934100027519004513931897479059483790376978495265005467714975491170967722328355708288780347685646093279962522539094381051513936300990013686993259055628600542374672867738845391947465379462483516166845889113607888704330409183298347024630406249460505639713799521593105158409421157641761872510389037280425325007543055147755166648622381059332640012780235793234871560457217533444016514911386422597673587557759541770396576767745851318290856591863354489557284040672651098713452537853670102862755545627198649308678466516601487949481793895715528146384140275305933904685495336642885134958896799264847409157264747859981925364244240721251649133975813894986064424863743435579502972019916211203135934498321570791641743756296439758660125746546228507593856497179841251508931402746014669494135429554780598432660128212529277677263619304620776313801193781892019574756507810862010135821040382454550160250112300453531974248769125844062081714190849256992657371539317392907358394011600255354884779453429629965378391247912853738029718526187508794567205900484389121076426579842005910066941274393098588666207310337372114454091233145967275137006627548525469665475723998742767402709296837172903781330902912392950180943483177850459385686696455283818571501821880788825356970249405372842591013670226184447370058279289673625672792917955511707512899706100355916008538474971396610633541672233283202509206810188774123728631559804263456990907685482982773381909072229879663809144135896792635481231759691204469065662142813252715883968219666534932324763085178137973333738766903696421594206920714695509420924022253080997486019657183187045184407697120737699332742372975195983198418141505942241265635344751137266431235761214406590161352955069102167996813714554218158970821558786605570822261351432606925066658412344680357246248039143760180597900184468930862885831002953608423232138721338855267812578230218243702091688923757507282203191670020051881565128535442164808966941542086480936324810504710979708097162688831960865021732996559826718533357569609672202858606477127279139539709410906611183797910006822882337480931179360390639930588815867836263183720290596035823097267468814101839427225896300098531832054358969540159103692689481424083091731374625194889793679924678166602851501857438540246947714471344875299559147250183795452745883558409434445735535245302336895466322224732259292781942725711856382985070768096223032813172396375335545911135503960024431589695515536965170941643075968453104609334833081482169480771237899793210818750626037415804532552200976209459874110098752669557896201374250576444571983230194687065996073448143195870206807968262332205678964089291462698486202834820277603689082408392886655560315011716761298037802376939539120813357463375547735831916714122599940559779831032434153334454579570333715063396643668502213359397086795919434423377816150051957902797435078718821626952025003961861013404411697315239166189214495437799088333070071346809389821292532285234000286653013026751845540096321384354355404402319410465864501441765839991352645215608080180174052086034716456848124975495275657391164979154439622527114664966919195511317632241298871352621525517171088633768543988949984316746507879303364233587040306733427928120555556069830891993122788948907205006080144524000669412491593300140073747431014883009649512250507855545176053709164618965121622232911571277846699624670994662698438033940787998177242201870832287570437114780681941805138873568362073120051846831080122516059764526591242703850694484976015126986473182403487171640183833442323647881805537650768754653917583397480042736633867030988867397676340273817324720994591934810476949601938839611135413451321309521395806474543703980292424939196901504536329738402984863477871131619744302967729298750143354754251928952664768019965343104570969431855798921838131085266610435654057419546427384950853906056174624649824153238872636832040410654258009644820238705041542005757727044510521123344890761469829003297726023506248158322677378048870132747375387792324141368142843214416495834947983461229104327766737579138710413270625925817940138306692692559864662988159522012881391284958457955627316945366979919551486952891051969896555777296925727085236420995548818862911737011197939655794686660626249346253038942726247627987459467147204437795903819578164976366345785729886765014189854454511330336122931987077633547373743798141547824768244668750212084466336434637511614963462383023465635652252697139238648558711813733858486332808192756778932238381109036430101465618594456978059376683034932091873921147712813618317329110733403330991497813087301548297657849818466486274731051277802204513199663457612916848688162042376624266338466684812234680966580609654450980979374987484651426313973127593869018444284888898224550587187040772038091787163812183107808438111929110676704442307970155715392365621761416197534338126412632975533267459411391220726531595647955093956587382751291286046724592507864155448206516675634947361542259277369970302757637944438216193345318905692807895901464368079509332061030703140598037924649106893436426918202684515673460307554347087575240908602530951260251667349399607542018192645927527410306126403124056537377816545769311904456113483704818535072430694280025226634680379341264318549928153018142805425217588404930012205133383044459038016153237183930964032536649944093810384671013177308969713451932888637147737416334645706385104450512271308010535478943291083070321221702052307407579558166870715443628215515806815789112265685794032522421529663340879222431206712521546213462867015055062440407912955702707787549842353307646935772181495685251071589891711182759589372618624438991813046732800176403419080545422793411167898895909690874708301348956729271523489318431288287539634427491892401487780753340064405380463589146104157224149612080944786090460609232199927350742089259757375089342847522448707123412484016285670544524020965261904222964189832442846543412338656149841295659428396639713600909683675466488563524843709023692671776420500444132254777999203748156628673850766544656355886700231687974820075530790019239042603109040592020798377120130639238253251090791816439894269122611657568176051605993712998956290730404147671609750906077933696899087831460197569202575703901000132395366473663837784355292374917254464833853605364349608030357824098230647544148030194450611781831907810794242580292545016694762472136125220118031980648619262250142492520051921834752162933981221036294476783309505290417197811891996134952855257056489461213345840378680543052343152652384941410558391287944006031318739433023272205945706247300477704039052332004963979987506596013269006681917822163538383607994442051842814163347701654075368341544890653276341481424048629274763426826108105353628209668493155371727577616935285942806995889273847164877210109354636634340190884478047141993397409168043617487226800491975224878143767215041343822655648724998511668142290576130768318557756381770556325598456090853106286518608655020835827951770803264098179179430833558286653254265170616198604956892528119088461670722765494521708806352107841189029405034826195808627725895589074604055055212089915206255347324646836187951355527344557436634719243532173188776669053965093203207473961468342769801842004329193828225612698255302845821154415076778717417499065179518610045103460157290199042948364337421536031861616161270304706252070486049271341542820868130463570919709051667585653688407890738176755978249988037934872796888559950593301864142927306974239402235079340151454894781859753046135164098360202735896045657988676021006202585760182947898164123616033658607522518061658562526750399373860834108075858909603103974796485685607199740948203439373935506510191039881764230352470236983588129522498722225020162820214480056847492757496864614019250381133990361072764416341546305743499509695415099216011910829763410918775415408487415741920694738065115189347673023309983156098869417706071690360879615347998933343222662744556327602570385535774037382517109455089785915579948128971140885243619009275117076992303249137552187403244853837116977013071659172135756382889481032479370368865762921973998759750331183145391506581419766330011700193539447976599671034345260396518041532834416102447582544902028865908724622764699080299921354289496736807285015325748353331452840464273398480529396117113881470012970778181260741778061118323949421588864376529997118226271548786618064319573432491065448316112426341199763206090137430038533639252315737117529817500489534889252612950889798354770281372009315347763711157849413828898648875423605721131392899214863168874911720596490681799243962527578351024156038559370383289467368673048214919074657803169868888683658466216621942211142639623147359685969881547350948171853429487181095068785497338663344125059568402732844363399761712759512786167369030525318249333702130872558837136696019860262867928587602833770425824897821637590558264453224753670739241229641624201265506292019476389573181251594919731218682937577891682815279535941562491045281054233049033680813385524146495961271038784311003416398347514125286301229481686870207225629123687919010189042124452754804789930666729810804258612010317619749382984123644745681162658506307780570155240140892298854446066489794115645583500155928918475085256535005964503250641629625833707306957280366245785592140121687192889423631627795001279166107637790207794204144714471744002558577488639805806748696519766679996903326094078792840585501724845271177040731472672921166969190404884399943684048724506295020273004882801469343367120792635927154773441945052033349427592974979845708928973697282569104081842012291057482223656241292336813642806436729464773830513617263741777614812984182171135064458612983081711588472016140782697645729418592553164596426134763328933977972680665640466356429064622373975709001788749338173209206595497147430525077494629655686201733962578279938866562675501288850700311462703562019653729449663333374365400811859563787018474719783307656885959315749860284923537668902570520351294080800024157192592443380768132609013263733076280499066484300734868191128958477163304300480082695933714132070611780133208647094105451389367799871992927011690878026032189029303690797593036084866591560694171623993076933936489611297458384622647049456349248317607885183060853356730956690211411612535441491267576623217741115929118420722215486624775995764513555964998303237499350772028852474165402487315367895505008232880106310711747891091977046366945468164374974031543408756293968763195450483190436049388246710517832144195882142595000536091352247286892539680911510683205997001738579432473028420489917563479588232658571474487429344050849888759581044630551809151897049798388351213670474176084565588943531063207748435582745534785197910917663995209001193200291868778467287319388879235542531135824033503673655371877580892273587086490691083468627647597990613912196130622620633551747549253220250622251724953548305943080766293617343025337797521555102764169138076566790074079109500122739144280525816665042756390851263041236016457166416598584025972871811098845519777650206204280267342325973874196330116469647548564880550709170810579592705216924411156852162342592910585881935563681563814756044201162309791104589797389889682779494278604149150129897557755557558118659939164926893573765957376207426954793657767313413225811950038015574494853387485330289085120184432415664139180934069880130236276122935607441019771239235868376420227689338933715583353259752031167917051149789036062940009000164804320850394356326843384469920566259324275938690566260912165851177077288006362211394180139946650077300356029651081108849670086734043886928312765372042056111525615582475972613291828438954865032218516433178924258219561559142944595824629147994411169291925230355828945333527780844555410255854693380780364129695324003377649546071351356677696826266025699105779803971034152967224674131249867587411183618143100306083659172825120683948485009391464806515280911206882137713707388847562072076936069231065801642701426250272759060078564757388527439246158029783746002923017098730743105403977375644234488711211539601855261362425265989743042937248787416753922776690227884710388479888074881430230968582526844690152603512293050545769563827816557898933520570848380506933132499804942757673087185809933961491909128345147559219992039930709872486785084964960260762922744032547474479900593496015272435579792272745350830602795942563306877065443097031140818937065809561011974953251280214966752072635591978157459024712285430333635032077138973398304829487849871408812569900545964558393753344174464538541410498167448443515012291333370177174240758947834012602755514627710674747227895216211034969108701165402902743748473809580624329450676306874076710085150850037821383906135893928933370173239979989387710228887387757851125319782519231522838388568956313013085180774870180756110760270867762182425579629959234199652704671414797702856050934852438692337106944764293583142845526334044423945321849348758211289945754808208617156228934154428114454412147773307941209487517480780768906842698712207970003527197810587226944979006856443301585891404746431938395453467159594335800793693946512229832187923873142298347586160287640007905493067141132568273500053173743196579026100453469712279073303341051054049674251323021997256429372839432411815002472917474183301755899848059968345936150631312014167166597094340943677302978218755831346020544469318676112576776344325856779222156264233924188357161016399465564603648394028248514100386472149029738752002121541066503504649051484985876996393788867363240988942979673927074679003810144463030167827185399578132295976360214600880350181502588247882927817611934697804032608059169124034826136761243867301193525572482947421025784817565265071278419810022816622820543747240325555833656533363803045412791057880124685390423583345391717438895515554322909881877063979025436046198711895625284181784506533761055008173352428599279770253492083336065611864072649468088766213579717126842908849335411109522771756309257241603292087222204221908321124905837425298521828440546730706223758706124247860625265065016709839036108186959909653987853261654370910154012561095468290070091441444160497327766480061507231154055636506782535330819130258156285196322657448337003128769975416331144226873763327967457244798990490301090495560876694317667169369849488404259971652461379083727853494941767377009124742843062882857921166085377202604508198169674576789134959990483176701196457087289695866424789332245309956074008684303332820851961676296123172153109058819597689736200072750674433753572762730999980582823761042447821217669537743991876199719774720485950480517163929748805788636329166170201237078646033269532788943513999663550300967556040878861214016820123031040558421566284404635388941053247710287884565815810515051815575472655852744884809376091551459942719761700296833488057720142708641043677577337463538592844599657302979671172683237444305976300733641338531421235014367848943227073484475420018734538320536938458509647229352706342667804675243556792441188433327834624125428913866297766571473839460547201597200237245956702021960376748722145844297406773209758443540454335119730028247360396259764985789308419946024068046071202765379759313490780714636731215849859251317225662202386716508972343544431636604331562283294937140001286433386031145746488961464040905403559752589088821671765423021198931181307524412374003590337326689070478824089130090241071774671876729742348783621265354258565151037304591700510460064927625862467377893099602688921457205168534215208853578970345364666362077586028632164356404324702738655005586386159365254097172277525142712549408877791806044588952024311625172717527456877384922247346913496226214916743365082767792934267621386560960862361922039238952876943931759796313179924791148745116390166537436156608385020008130448250844469761621850771170849288673516763291689497761213377096764733219439923363428436155598229616860605678682816089219281396251330309075712150034302968167232000350218508278428075069010322077694389637964698206020818353584783133865479419234723650964726137935770149123769881355480995337184059132305450600339631920315371010913142609012757265825075889723612604093866443087795598368930953549107719862903279999897356494315935923729327174784440551665189806233358018741433005060724950164334668637060747218124480091426823329995958444634778683616705204883454643640483081808536693804199889974406232481373506166031901348845428654983074080696486199848888892284310618083917298893689667305964105752490833094590445548445801006017099609971728181415233333096702024299773898751519794516470470692117591679046764711623226531321438534080279054591798814744789390534157221183747084911166811308700515318584231463873758733103980479660716717328033127281380923201606504885436946389856887110840514412188470067665945121589671977035157401064929170638415715153134704288881896647423073589141785674941055868266532129821351365110963589717584189042992283277313864325191507054976152223154596256746917505377148977472629483031693782638631129023884292800982240673138960713783322812659408502592695477993341459394373841694771921311656393398773450760617005271233611223076713116930143866411195534738401806772515781464272910797594914878007889108375001735435939034548910602276483695231819147997707782569937463423204461969285030446191726661820877584511002234089201923048068200487139138439394536424969390946030125384305816444884691642895527716685116117804447805162781056975231240930044040872071986512413617011795785689380939097062371048681654339500184813608599529414797175066566379558256834135860477208877506467309082261171242026538307436263693242362313818320416272291315825356910953979949826171771873430606982102070830732565182535005944750139673130709388656202136903387113250629730096704309496643417251388640583404984464291781403634929672380771124367451108981849078101011921788131180170277956337008906533431330976140628025812937784117156144176507323906648354351613070389328812146417216300702361309460459406822678772871015975416480127187034025473176546316407564973014670032431675724188753258299921746219534315823500393212872154989613568137289667481192402211975261689512467301089556649196879642934385776387640845622209986342250336069502518981465324411442428373070465145119386421633004260264274570840620736048625801454219368108440351452796354705182630378576219234501973461156470701126319917486192175844055463994708013658419913184183761379574078305610431469321343940999574452648254336634513557862124358696647944547668001470728296911087261690435350869177508728840744960005469801317596504956750166025296874041727119758814287726366133027741892646199291057994895513296435975603312670924952839692361035819819921631332119304977298170171481149724911981393521994997628941166019831633441009141434968958084646204864303042487089238749355318791053184403000897295769653685702647076112899351549625386265971023907862568802433823052073866601270225019444289432821983631025397496546951862774235629687226306192041411136976611906338561026727571283803475806153048747153771439458007449699697793818648439853084530731558591180520803200352585550985214013712531255635340060826940343922172662281253613297640006693975468230548683128282075772288097756930854819246801122161470980670035568700345005194872116544857342159399047563741492663191173163066878094410374202721904408311690390149393062768936559177540626056598793579585693662074633136822729691933949188866927423024818996614916535741402630505365587445347215749690122619108048038043152900895807170570586900026093944038511249001558986873635554007100065325412166887567711787847156900467570634916462924969865406011955369255965052993494424216542317081046258295914669188580579346433169037403379122390396716904503490104832050399498681208167400018083931665958417175703319962274554184252647181405744545992964575935520517162415077784510889299736926305831698504886906978597640119682968258810158480789757064191160485586826620934264907984853184568729378106430663583822137229533203754440953724612696074701029236366144032236661139352889097185240462412252860381405631787323511606158639028660745547868752831249403460240979847469298865356461232259852815904034717193715382690135275325834353682685058954220753987597871032416252852327188757542755591841398688693202101604729772722838861762241411384861694644919737738823837673434490892070470228261326256571571525950579770429441212318650917479948827482696521008516020434738382136755252489756519665461794971645048485730915863590862330227290430808411547322823937312957542123487553768897849857510327489375495525307849121299189222789689606916519902974230281206213073716758225487253515251140690703427128666045843236416674115979670014723835649372353730020363457137767524775343236236623936339438225563262196178403303003621109978267035337032158304915414050276760480810875213934765545390618093711267408369733791971491664505184109168949011214052479897328663598248708027767956835236932166998384124850046841278290136471122601263347907164067902866723157847139148107216742402049114067094590460711161578879620660786839955616150663917281804546672639293054090743774837040702178965528204230653275942554785759599056518433597758571619634188536696295696993331351259468248234619659730956083547866598555151743743908013349824964341718335305532109534889932516416225717531028136115116807383630853797713663996370978951379101733778934765753884705621120700751169901017072272572015328696691967001618172284225225619705711083948232549237307275273412875430120179183071370738063629299040220638362956735706208512946034286104202742019382523247034805127488471430194097153404096014009948604898597772960619726795502297513866249781455984700258633909646866503003341783489672223276341029382164646382288748879196298315305746443328597675633355510760223273660767396057681840045649232699569899339229469273736613568288299544741172801483737003175915262119564286816595187029239259277469534846304921069635465900771986275192679259251900589512779967168504604213512496031871612077701725029317321159489748892305000209323428564149313315063453133427006501492162471689429668676527532895270243931351741639389060478463627404104820319995898281750178387161495781350380043283921310225442317935664205399090206419709417710750450933491867631600200205085597414994175857435385315922341763388927145283435786430032945875043631100664144245373049000877824739503481570442014160960749057238504225802140055105789422456142020464550112803791777707369567303574898019616637896754890368371709146043710876503864908278989491028815514139323044405345073493310175449911821280741763294234967568602406298411064655249453981855663722885609594455658433841591277451105614910277433120875105520460047517182572069918434052678154731237210791098284580229777670978388933604587278574442207592483654798224585820919672948717382489492076754449895076890312802007623212858029617684605475435819467093799720571431539394679581995028182953999607654974637773285382622348440405202928458536794983235874212006223656352461320782970147278055547579846277467957665057356258620440920484166223032881113383113677790804194770101094378189395377667469710464853763173778522800998717630478274974821676475206039838406856262121840867731173902772334085794637988948639240726378575673657099719775998134032230035946801142355905186444978710976582007988225610117920645323137528396138530373097457363468982699243343543740662756495133285730139983957403599206893214574131647592738620899806479047398402874533886084693464458915527289035539441412401302613031511431246897922259605637513116017515171777275772644770454647826515071794357963153890317645614360334837323398008379761950602673294909889684974259339247313612799857597816638202139746680329232118685335854364834156466662981638668252439361284290391920438953380013717866065386474296591897126678716772510819052164153611298066343219272545830451441329057948566890641826177541207490471059117561255500577613488737650295486288963073668476320868200267050520516985000544021045124814843290220372081028399094909400282435807034559623603605150170847097052727214753183349108526620938146197667857881120701877589725650687606216241765800909076244628845398888311436558165857254938448205234234146565460919091735580499777804772798014783665644272354159077760411675218063947631683723540712689718087477500312267292961144173426978053669319741931058815053664565185047734146910072597609980663891648942887039371546768697762215218537022886588763058913543059527332248737043815873270131022524220179036612914638064265549877388852295798448798932485956569823433598379206531091687488310865151486321431618055962003177399064138843040552557749896068608417140524657011557564149314673341619342892509393378800714727100627068133494790942028503633820975865471227102048242201741677300146397408896490074881214488967823488275423628319862964705712151157020697413403965786117980655182767949385848118090978211350792027592414186484036240894066840196341597511876790266437844907397390928713926032838566942182303501901770731146408793140631843320306581323814116642908601691432785466463222750858803686446346266052566927698400898969480126529979974980914546487873866209497986144820547534916144112443348995144159355355133542053537247608133276332957335964131511617478789496584395690322132783705922297109660699632758530298186309329069963244383507364338107762061944849833345091557644171797188855759951679865503844411315458946663653778049427110282778672136131224137194918462650746508108610796564897561969160919923726634830734440996558289900728013519093157114417770314788527180357524436568494782066999666082274602948406118450114723789434177819151831597214499660979719505441023010629822261954309185294948297217645183019008089038265781967276523569842646083693809782254460088527241455513556020784573821519469848614738299477655968096426418164642061238789681229313749125652072611445079977953429507243111598412407632465067155143214288758374455664314820204375746913831538430004839597879427904267424539472835274851068324742471471500671993433243936205604269992770548199687229830680505623673270284980017377945895905647369567277679008676198512748301132687789735015405436682545859953486389876694265190431179501821565348719298582217617656961979061759976570723492850583223298118969131102309422748376822423915615002971664253029211990972662356283122951543732624210170752524409083393355180002737286483248610388532004096117881067509345610862698793015184718625384102946458555529719551682972934025655822964567655416502823893103642404278213951992073419900519207146282604518495603844485006153972576635408137745870544581489531305850432872682187354370563528301449043698740931462335096066999575671558498500873901076055732776284834258247748779480639342468764394319649995945569468340259331379484023312975802356485790788270921173626346291038137257182532042809783024007990782815576444358581329945862063946695308240199078551246105615621924427783317998225613573387667052350116697737383458361273999395816480062511339784832316416272406661364666111099630506987168912900481052345059556118607300911480047553694051684433843740653688411923167730128782428337135971405420882271883935820034438454655812743034514649979895758717390047424002985846382647544312033426899090754595577844021649549405376143092090887316189194447265037190953569051698796206692119766234252748692266343072867266923337461723024697307378092726931469891987085135026901887824266693561694884157131894756443292251186850517767722700834282744370987312424107454399953263831251939272628396888053740496037875782228480527699812231911706374108645659471955280060876305695407278159085117809705153223685039752136532173815726322543063200204186413749947834567483650467674950729104223656745141273484880441595333888808407963201060728091519505774367542329886141387586481780950690643840731125893900422468984726880378661252565214453608402170324553400017935942894820256682863274265558644323272101775169837083387713764306426630992850085537586116639563388741527423683861700944989941480128422893030159973412836770527302611344151570667393009313209914785682014058531841701480900254984476677328137055177264595439605739554721319926230830648510232672127822554153626796276780769285708471479590744311013970435678963122752222277798878626256170425751586269531192555185882812792812381370844774978756568962775019593480256851919556207774053376453092856999346613955546816122767260094874104842888843620513572015226192811921174579845047829156963059305316992258010077674829181170511737431911588486782558315093253581255622977468660263033689807825339246609693380998497739069435020804048869955726931093471236917562733428633117212629148097795515526813854127591025486729443574068376139129803175824543696797042873162610836592292154523748658650046556269918699208105103252830780203500895687095318744302642623882303300128176756516509833615539750190623499877722393692478011927606529231054398010464669187491050212600555773539982925357028799645873852880098086368721602743870178947120013369972387714760565396356229402793345765634306840017858885775865746757144423510545369109404609003812307165614842484892053635425366843087706806427233326126806723715988126232407164261803044693061933627962371599436405624825841419832149962680549833117034301161333216788860804765382799468369938015150901003285221721081902553051377347347694420426288149699318452982141252810062490332824625490624185149317718882898574230418731117755589608632736221471444880683347687610541627002554551749825794416370520064236523726528761981657921646620285400128024525219466569305488209166146813947646874188741248380230381983661568041468159859645674183452797848672762998043106938050235643484506708523516694710534999628464962849381807666634639984865757761614887403504913435308731557071279916357282437618318641438099564950341220679155065848163058181659978205767869569271310946959661343585123887024623227576656417865064252451230007733655314558974045598058879645899521290283103691414311560780885760267233242158037320239552658934255167414403866467077740201010394623666059670580752497221654598530962966048695999726269463199280828869054065018781710454408205938446495651040234168186431028658031774757397590663629069695910048879314593823229903336343267967241432498920954136187436139793987929191971613501856560688176855673674731178607797379143439826771250593533341761692868495504800965210577765425970733149755281857223620404621810446369569404893874878706773758101904892003857081727007060924381587813115451243231433506925115607250103131740391161805409716887739394513202848225096820325884613948001574476519617261817945137025478950637877838176894568987394950984845534785413325344942378795270715823574677325821489623184754730331869114334031636176138476562202556692990261028922727858374497341886895088390291730372624639814791413178039368384664873622530179795899735984177332464795602660267183067667028482090596342550961843808146856978893591931985967135513164940576080827367058772792353681186279975710060621502725027201125059940052169351936816018977627854302177074366015552143550587737573667712133561310724195835904514542224973720220028730512800780382088675030574918374912368828073938183244190944492366046214390447880320147391505367400450676854369634953513277721587837897166207552380941038960246632659087705987782554766070702105099759047704593257943506269617794792069281875660258969535108634291781113161337715420463030203519371961469254423732720004271386197513087596670425349494316718291542809134145204756159140872786858654578400502683480117350913627148167371166211719887432386473018037638573972503157370429350538363989464722736537810055760331438367370829841419964803738662519477595351224452765497267667585948532955812171215495086076642296998822639369945326798728215234318458059924697374491435937251027160214352536172381630399056631560278116561448604804457973269989160795025084083590409628151388917886021506065312924289749847154843227924366964135386577328327811748314040099913429103648554449344117610311454672248197957210075303571653908828185175014416952204674020034869862245062149097123425486337128564777526421017518423702404458607570187236017622932674659802906999443174268732618817896757181529236548779964743049176492207111531835398341668742011070657876797235623027429539232102305732638513947596007848741625168745353358038087823879818515729827742445231083617804984788327226051831141880089836674623284926821603210840426004207377078460710375271786255378880697505205719026902242568626347224909838612083975822192914287721424639243512266782783186468746779691992531406836970602074930082924790691931978135742217771810836591416150330457372216095876861276090067572174650393174245015334517491421319639368006419197586208207967949985426497706192575057006426398146025344544743479280852971355524482233857991499391060540676066857940378268897242941524927490467691877472108652444569988934522066850318814030464836405878256492119514727162133841629339556884522717370138278894526482288592834058816969796558714365045514162212615909296480856184911480591094455481670582511459924052774386105483801565807120349726504946475749722443655111774660308441831583231370447282310095364202342120590051384711002942860627818033471564916411873406382782097665078789121270809812165632562583396058345191241675881143046376807532347706517321562180230058995779834400712803181456728267333779541404647419091395054586625301205105048959200107111257565268722595447534622713433151631935749243232342151403450996067185293326022315996304607599122277868628437278612836571641557516191038824188980924920332748048447498243173148488405696214887657504716651406428994032818138295379044604084851808446095524619071267205327862029903108216476244080692101569962338014459620858387421128714569689415589223000958534703290779765373655399775097360057309311714766944375541845380495959819670857442535001923761784885164942056692776268946579238887656696725033548467586732328959366905191696228884381863078205684087462157574567450136053144851977179739624089715264551025531096804664947105911013822513117990513450633237223098705846394820400897287155148359524993747416655788456237263158726042546416115592832467699309039690196867793343719697826209107624802679332674035613098793575034538805962164012213765812838636275592060397525866365495290724411273383075792581343674505484006569767530666160382678455152816052701953536346166733518109075264993431794244979505965484859695993007242031095284455865680565182242333885306568588627417284005268278527444779137967719735440903056328890192500840017403610675433805492042432735714577705700414726637858070975606768754216706870624254346690149223420142737363042174102071430185007347916949167082307159660916724246030859323995400837275230393025283495286479626690433354576709257733036484201415760406608432813972848724850689390918468282387021872496802972300158934810226158399386805039903774132116340859668951653862305552835704314867103857331721286009601777928729196273965660785815763865337821904490943956906320742146448934855054339628240258356051522237866152646773229221076165140077919099904501304478229278601124257759796143016551682381212848205946992023681266464662049052137399549841474239979001264687058707006281917376938134678357781330068768972827083100312192208442553929799046343678314988278476779288978621732587749143827386902351410133859721879725661632333386598600268595397681701315859519161535756220100452277702305559772873474998396718218762781603904021261824815333994132191138139183764966728364212123975904475902295832183871797968717906286315480122668970199773698181823035926510682180857275966392425562859110563455351859164012436456480357936375107934547925904062173949698662702358911413189001094636546990403335185174949806938650142401934350740374825652533385805894563928409102920246912930300074291866314506320703106467105969420621602701245357698039288851890109494492068728287318201278686982909341718846906473619596677720918695970096629215990664521255190189413806209327551682333259020785312907528450563058136109469351877339637360394947629698926034669049197498294887631029748455695020397685177032871746956676240678986069645735492083995309429677013190638730160374669618236334490745302983374484912501158939019777823183925019228849536650742766301224807325150630124587605001524560962101578609441654257729946086554950013559503511840359378733414573244079938980229634538856317178248611793615221732113347878829738892548904608498246323140881808894572055786872190933697837025337601453418440528430371856959709512971359259122566011786472201214581562152673098623267560450904633865289499666103547749698904570947568774521249553234891302985168475854274903044666163705514146228971719516020641919851515630572653644478076340404699746446128657427004290676432081870505353139406368239378394820124056751068645420288102080861059568990863216858749943804558795678029124984317591042705203883852111193528450933063287367412476044837186823245934252247155680098587156849775375952106725299541484908282671112853045485650314066205202309161197935998364690890727140418768105220254659387330879761820153821519225839117086571795638934046499186591315707105540974660451871055401691732736279028626036669759586742784554088491130772757073275442597609270137732806006654762981853053030879067491858191545549373417785475419597002039503257084284237392354377947866845928759487577791684130215959361910889211599558809097336895134583982471225469888845765624315491985069955962605495518999229597098289919864581932643140903158466916261779512071340749719706654658176476785551817002645442488400526204424483180533363519030954299735187909922276405808031538919122254340850491361740773234183798572030686602027729986403528151000990930785504345672209858389864703908820317038296103803151065268271464203635776193501728405708671954652533414432072634495876151020854539533743777596739852961045738264689566789294370448347273555362583127346455750123677920991317782305590655185830739392187313947698753971838956187903767921812733504717578531986374962816495114983652098266116284166619342463959508030825965946791131081662455217447976313064167379804017551870861054636724057656377156489635000216212526783476726467508486782758568833508200978736664942788989845519866774573073111624908640010428719836449656036174889148757000535944445139600158141508630653961958036637795242023520241806761811097363561139894241167026582525424679816003783810116348773432922444913219890112324546483050797379787128962064457230255364659853361436121048129062047395996729852841719379781485525792294536287268249889517333265133994572362267800267894401154670859561345079320904506081894424760208949002357921859148650995416308494434983844747586327666762200995879386240273477101165526895495604673706365066819497292205717531081420712209592089858695980631687963481556120554271891826608818429084750839103627823349776582497776936469188722934479901746288826346020939878500803455956320334278521500812175276574951342620372296552624882981150085725285520559258245501839733426101243651738859960596194942699123628547393657402564386258605980636509774808472555879199087477697019914950137550269352911310303032614553043053185077913451918847658768857749368940643535283464621688843153033556405575035032114578452426684278002321793610285074116034879850706013128522663491408494421227264315150993910728962350356974936041451840483726543737295791108830305820090221828838141891897569554599165462941265813222260209482078882464453847052149663597468666989072379385938146309454245252987741428550983384355015219272667611625949173340388791918870400441849599127037544450541765844262254962506645537272706807680180743425863193989784451686529339948379429752020279321176034371335737105785951905633490731420405248739343043421922870172578801635443919194242588721570015757986522829099730518278244584155827731200308460768208937961997203977667757040739908565306596945689012374736137764221112677778935632445826439737439215924251120588879906581449013757264943527711078653256347615268931484585064115307525712359692191648574358482342504837047719513767784260099964844873400747200819666418216350004683093846767419270552090123600461619373327614423199080721967457447421146942375332480421887698553910061671893561139149942789877951283074913103373364570223569615916723447270461528953631281231180097843282050255125226164911805671969789574332299570503157620396328233625519099085894910600175956515903735403615988888946749079036073554048450812548078602292718488849664823003694749177388994773317211230173120076612862096595708284634329945784102108587050303170979645042607776239336756697868124121771543475784315760295934603814460929273068108913106082312476540195392904640422674204729097850275053365859192862977755357932648430321105211842951553965659838438733942805539333208998620400674998597362751946117253565929632822870059037167185625807282586627122115831523351920748889221734501578902776763337840694611108346908131809658852919092384582096797566808231715184727697860091755046693533296054250079031943528137983585557782589656619106905516176396900407618115213896598660215296745589044021592519317734023554360059594891314366182032102487925999685960972024418470291640015739064235726868745455824992897426352295879987758712679257155801105851200463298383995232930589176190557195618895194911884320350301914408767678346346379897831005000014283499538983187950088635828612920957663903761358884851135185862157866706822000350330197788925302543562234053885306401759050476347365368721387302177280668372794032296188815128949935485358848714576770688462042933224457635800144480563703158770099351467696818402502439021124640043251850021524098943358111318065677676714383357564806246511325203430675321561295563034514271568109220042611749214448218519567813121532704101807810322385882618116966485303869000558471711462445861450578279909170181082188257972640935859684171293478968061052865198403660418725233285668638024833065552714041227379672877643298986928251894557569524040974917351582700189138995343901856458036597130804854325701240023216722671823052748166132279375217755993144272521111068281759556540017317562484910405004428612160966165623265803953691182741689872009998175167068229492816826027646422927144137926400720012563187472789694566654218856473489057296920613715595615021529383630517657429049842759523009426003154438842319580282305576124079730013431463602419556829558184790475312846661102429752638796447581813585292082944043671654630112340243904947309517817304398561751658043504807136713943699221673238210036234800256657353217551348465667103273895076635552036375557574234860211777242157597348696551007442774601714614401922309746933008555682355220964179544462588826569207798345620779846251869927386559144110988121633519273529226330810213696593060304842259109191841299443656067511380012344604891171161265074149995442846387030479672874984119589576330593135873570683677907832086748395887814493548901520923981291149618100307027862282094249795792065519770901515090260079965084287805115697242921553567803060500788747674388171654082954550150905512708056436791881564625518056401104538431233533750050623721860833751677283340962210096682706569833971033614799745705807548526088758856029943767187918325372377714256323315308889715162431198464253686283629911074475456255356806773986709852792795332915644530615185469785867778425092795130684241168665537835814415677398508316796089524758667272578908724559621584256610654268463045496381373851545500100654519025712874396379856614911562506915428306213944393669492111348869764669289582459503217481060985963231358288632363500125024382456707621421896097484412402542994125975386373021235555014241505361737629520088614040035110474865243931101303617207988730844195659591477205888101717722223541232113024287316002394690595332946860477667150100253140615389935808292676754040145667491362174895223927400590370029178715161011437918746376852656958423010024473193553739756309114429730132263400584332541738970428509213864596374353458363435189254325105209573649270875275495431672527259493625859957835903632189049840727725699533568003964427827831424178509715047344423697575040202954508376400568448460350262247454524320138695878595434202067441127659094300749359579001560847603822521934621971523159533183049363298908527903775814423885607941550898885504314721714004855937531070785666288519387234202158046375469030398582069538353110757120740024243731829843726492646745754186934423671350594710306704159962975518853069160146481035599771490322643159987303470454503930915790845482415229708379968730429785880222501519452795201048695254059256333407937995971781036141721142619666034135621775917814232799387139465096796234331576957828835611862806020261788752400225529704054491447884201921877987661656147335448577549797773719599191683352042629381406615671466100923541509985016226589635022961563394282394292125805255369202417139789768657568348748193760447904642656112190703885501205317660907970678257822563814425061300013198291176920606727899624665290771226551367317152723251089466593519907372752893286390382704699081466204619315158301498473762045183868263306221660418204763752517516960608853923867688040383155247179371999556673819587556934615922926014047830434412665590538868481743354449903659473663316241238105958885387765633188632547556403119702704384069213248788796900074947385821993131391729653351515512294325985563419985097683780611798542755588417873213393098817779030870679584939528477473687616078419655517397129549070039548638826645683479266985590900632978216009440055837826969736922087619339508172733052829376826433770092042556680626035210979574228090710757188454125705618970819948428951352510606083725464007113586812536479325491280028241356437589079533739894836021005873085678354242991753672510419370199614264342763242883265165829587395462622441650440170369644636872668138365314162712955890526765564457915635260865208592120003411626530054589089747327985210068206472272945740583240527800867339397207111573127595477036939852052539731638721216058495697788465232664952300687486672193160381900502135249708455691972819366951135880862341007502269710394108530544465978468232911165861209224661056205160479534698360625260912494168722888186466391588536663372204275236037195092917569266461951716595549471211378287035397481087831095505418513972419537499536837712668734660230772246991414242966407585465824341947960991691210120108624067790225500432909347111732316989561831543393737312080948635270591259201036948413068594759952006405234596394020357784047555802833181543081872004506335264545023594291165166167877366056586009141792307996504881305665390064152026959706991752917812688375630602742454920296096346093426181680605291058972897384196562837289552093435736320682900894534154603466187098501018913861219490460569888917384012899874214254991441921894354264316949816430019189327968849153587706520808481205458591576543689514611177415018695766294800353530579007184925885019255047572220670470625217383496224146459712110694074631675905295301692331180261651281910128066732075505133226223970172885724662232086982569859110464771159716409071767300596166784154780925462531769432177263815461050088949035545777864771445443660781198494263489997425388667820949004450748280618444852554018624992102417176810557420808009002718687269624700145482537733814047265322822903428668146195462294945539205751024519878180449174983995502843355031270040483841056466796502438324837135309736465677682212077808675665819242794541717461239969469363823840700008044226262920932755980006427261012465082895713413988434349717760097645746220289671530578557244770124129096136788614813250194695634600684549946661505672036591336247238035925633136327272413691781373671126323999680455998540370624057613878784184363454861064526120720707355172281829081533661482807710064292777132346448688741995491937872966263304008824742278867015890440717150707831127699150923034962720567627807443797029532931306414547734521961761955950189983062513131808379292887689667205111584176219481292676068015235415308690608711216710199561836232663220725888305216573178708277877208446535471985672060220613233654321749824238050772302814291125343309895046431393443117738097228913612514975993266682001458786739529255698060725613866428841631985728386695312330722925232685981739180796479424831923816221905355127864466120412389081579875065547789241903242207315563490433646903131595688014107240310469660031466505231856908730339700902450430971786630202262741310569086143245624875734048956749191409748520837937480293960666601827498569499494335551761009254169756415519123990024586483718324211045184994188545179569645190209892810310125331959792382666325419012962814055447123720407149478351367716396257914873960625102359059465541604810736105449505084200627102040031647372751410716226870192390842984807053848828162108080919258609438498000342689294049656358445691297549673565723832510385773865251311579667393684574721420691902181441015390263091632683144804255872256085515428832431223144829352095971665582294856750055958295562597193493801770806064269766481802958031072548874850035578634740770543291072300070502372506900459523418499818884296209770670127698172472721905116893660869840583254568605212502294440021944925052810716318268477062299280086797863055384657863196413201159539513849665539261515991143019478502213233211566101283384019494031210263829016359553215581488064942563588477869985678527005251155329904333086464658611603656603218300018300899760751025062394512934126369180294992715096578930430274029442876343974660518377601528146049259626307159027503646333527738552050402303923801799734713610718921891588800602958635085404101553500882185402503947670481468852525021673657213850660167128563973809286320625217021322179103175381346632277525524058951475946115338500649329240309569868764012816418487759220536193684840454966881449711254740361329756372392933300138349927555523140518425447093522001940441542864891891525795320922931482724428625577916892230321247281129821264289344973487029179350832910958572846592248492489458523344854895607268105132644395014065618829044021223048957492151449680468347543180498404061511308673366718948677840025343541207797792547554979374777094047330976989310530287798938593899463103911168147857540551155249731915352745894061388402527493402920961805248651399142146670205730534172478775707637218256977809753839172043606911743922488258918722604854932807235091383095017840730664318486291716698110755487304245561988069020908145876810756862926065695978260145930101445024284325105359936971945047097912404935635938862523009474827837133261759177280422867932303487826517888299006935693339413285867428929588732040384694206302192485392439392019236827786342318803809632250574417944342088910835540249325041045460815811297422182638303396898390867949192192537494603592865971524583226317517711025917273772023309471589912388755765926156970479164539031032074802972193294899887052951139119733680252832031248416193147944424394170014905516148710932420790390875181600427221673314455616156217501368368162190038501427959846533032503269474730793730197099805510863924312045734623089512357357882978189852352108295206326780900666647878895037350146303626636631429146878340555997325055227452547030178953483445244014608031325050260921470797659248682389206105512062896507875314028129381365275272673562350168506299207661742715576006504893306370240094383373168330950907000696091184387827271449729108354492077851358267501829396589789861856939269695341694688813414372980774217064578833149055774027796616616747479320338290881483000473329302006172624448828603629291570208195280806252584132069894461344981040301137932766624682667355768820079620213074276938843616323431183115667598004230098813581685715525155623971360467010228993653473903156626386966091184531618712441165282129239172126346627597003244230344956257210846006089953795101995396959561461361029816714477778890800436778640491126972122527779459435627483536613829716449558325105885141593190833183894795751795502245654606256732232639945525754444991170839742990353440702021516508119008256129698975144468541899304020171588360884891276895127112723830656486705560319295196652835329743423521719178512285160948754363991339134400921133634126775041180185867929223879365559189220621362574794886327521273404023839881106210353412150537345833888681042021822406963606229383975450584804636582952470895120218690439133346089283259642498449422537702638771716666080677433276486216149762752277767353356218846624044904951948866479158702409275033797964189719192142710076317177132706569184904065544934330833125189493644340843409884978944618085649064240058128015827529878254015225201444214243169582270507336214799535652513105581344751329977935613576276700187285847103638292724262593460728711760853364769493025852100354724563347254002759906832809878583117002728844527818512971574278924317868337266110931871467395824438252629334435959958901458074313732663438328729508653635326366940042135838369079622190204019503092501378235633775228688103911260699886605247921714315909520551513349588338867463239335638772964064222334379575327551971826909704546734303787932326268735749639103980971705020994339537198212264133804195277590577210045154879526190437913932722591924101638188333512475929036518724323492188868403780076174262855533865029981170975757316268210130273589675539100076829140323130502891555676749202631286729017672865498014619133424022468710619666769960336263903723583030256095780597368050677905777615396926077397807055800757015314523327931213335169480266046143417670294643719688220009022944798476649122060751674600582730745160385907286213248250296831769610302224885983013943153642994178926970111079626644048288461499515075211801851570706650008034960922729971029226726497529250861968159203659098840734376496210337060825306422822078909357482920184326172585751851734192141774211481280434535262044407030838554220595097414652518833017501646473302141846876862401185989873445069027605117175841020292316059564625904350362918713626663468024226791726287774649547199269830589921950579362625018192434672037417028464548498742001741534499241545496877087625769689940361030603256988512812031021755492517216185971837110962723320147998081232530105494920294598773582032710233336403190093878823254507426257945451568423619010583574433418520979277665933491237112310112118576964359269967745941086398235738694394734031834071856564293868497460164031011836425512339470618106259760959797869782762842054716418466921262148501193138314588513852755303358963717806112023766409643438891971663385358446261202966987870395570340768781233092109653499370547387258528232666095052872916695258553008568413141797218087890854073342741707211824458945858357277652888721893703336485252684838356104210171394208729393349808726588310366153218693439129723761587683308561266570461799740358339692245968182810206377976793070682848945413978079012955708078232577726538677462044617978573526214609900514790518733251027349781375637297516907832722157215190312805196953053078138484671442016059901434600071714608221288995334187795357079058655719754816158664362403806279390839906620714893132970331489848367148873932630977225665743892802892408775079798635121054740232452834597496444183057321978808114977727213348101286703975704992526516314700019635214420520864644284731963986859981342441797114047053405437632018612533699740836750469495951426064656854388109571865139153228070970533849364851796694596808101063542178560006851878924458151875168886025160493238981947333527787927539959362689624835617924766211443401040530480712860562058162630622129331400735483693836406296295806172629495616522151981272478212380598844797239817550282319478060144766596896932125504858916991313101772595023290576523056668600564107452145749413909774504916866332981562708202045015893696059472654078705532525664724652695127162440649713782505145292352101826453235134047773605616583262482484815298992462139649719440012763398415192397864672277710480545685176989934596405642498056145477492699334145297201516046922607758533438082248729081943691239545485686390290064498024152059896623838506351947303314537419646784881181433705843732525351371163184061195095128731176345753042484432783000254298117358072009500160349660445868493523606302761208303127782679834777267916039448281906303478365641203983875288829606736528163758104038602522367098290488075183763737996632969378481059954339313854015755957258123474466652856659471016376357024353236094548670160427763561564937361204732762719374237493298046456818552918513960695232263493088768877839121334349255502851960852359694898898344882342020961035633390206280384615926593625693456302095667493795796975192244160286484662401615878996718705158797493410843238454433820794809281228420536188595780538237681884503544653940694825438756277827238494979958650375315714504961285241169231130892073073047365945257332854425045586974562370341485607425260047963856545650272577467359029504828048802862417331635477250130810003515642650852625491179572501480924866555212166105012215923955391037919212796695241739066644006023730491391742816435339265649644675494485290254169315287218093695963854947671779014076505099303313609136403964754997427349424248247663899087012401955987180157073228682909941310655216239707800008072567210099391912964392854678917275591997434780314577032883467879549844913898053280100426029775160672448203134157104796972784567502841523920415788994530553876013413061666842065783108092912192302619175624566323407758581873070276877821396679715158874579896096120338001478190521820540005223390630006094972858066445005486832591550371931866468327528357126008574500603541889339506527749075129452627024530858483365812738594018774434527372087042053530482931767941113789473928425185691284950176619600438280661135146771865681133273432150247756451797873874700541514222482076301568032804726919407332750877880266981255515119375338555640535922943644659011205262800148828935988486857202116643121198978424966083964128571642613719349539677177700795721468423544460386490094140100223033090443640058186549544027930883124079985874255191312894959219776236132715579701746016480018907540170080847704005641903100698402620830952840247643057277106226694783269099787026806247150491350970624342419037388088035628375944291361769986851701846107846643481164537241181062735425201195151106082064796544077674980780671773968714581073785961990585137787857529640409703380616861326706809395352973505918894094866400904621160164989295372842853151971717520240690893026946420852551177348964663613954140951853339998492241420271954072536228692615048505497162649845930956292212240997757627314981862017658846093914411466222683495208367339593372024834950796059672979047838247504936969054857845223936608144963674025249964320776244022387505030093890525897448100563256035014881270153805249339762215991995491526723469446865036807207874228141055567982358526095544741018937595473321976692290071100214450681245465730446361115134730628803073531345301827118016705335395667355710508421043054553516341203560425542788748756685513296670200861019583545419663261320065422641304902465114198632054130980617826183359217101682200873991807052596205222557873799844053185792551797011428207255082034338537109101573928761757283457259279617182497293030970217927760066465828952526930828782191654660845242665515494829876287733526691822552533700226254119761151730845948732968426560262122410171754062483693921823891648901625158817197453497493612597873985776325762590318731882340456699616941331498161374343139522988268620661809390219912775275261725335658569521707414380191999201295190390672984364246703615121015647204665097233616195742122383056521675812856705752164329854949641364083536992626285136155344052417070310879489175221660903486494457699068507158777758348438653581955793125947901705946251602423025095028345688028143251572913319658933955636137387210429347309292715860516477173416841243191666206836572684354937124951045864301590108048088388359165227881341378624054969056570359558063183550609985044061397917151305906631355411392379562882009474151776144651716799658297770018788382374061870472338150370029784551023032642098556485409932141518756130056065207654332309632790517372016664969106015729311133183187868521217251687448383559127544913153980501455944220432528574146124340272764846894201771271405068023828540563964735157138352613199521257576335784979355114512859520391777053485353772467833646933533901023358044275944597017137619790186719941145176740223439947875187872520657916895838149266366309532395436958930562808125756207671136035866770905886514253578991046402097713334846023277174822860091569234165969371041867254504078937586687008895293166369830357548456383564444078741138615808670832182155377651522420797646696279870781654041460301862559412771678823303156350778123820598617668532895765899578234464707781367422550440517263185467642048340490155891655563668229582087178448247319953400700629400984600013344108838159240169108610844159662749069003520573540276689835987146461407893563059395199308807585167858429269283975586776228955632357126269430886565447011161013169720014759422230650814055853252807791566072429316062118044707906136410393298112792633041424253319527225702078396532730206935000737763253825976807456547016163185526033169761298776577714282179885329995652979398995675522117977447082680714344823748388676979542366770210752538394064416020660224487402294328516728848259985895468988632542933451763589178087560769612273740212904630287995431317650548909485188285802734672344632750563190958560195607969396301860500792866369789165146512886014354181511677122996810351763654999652653987226906360929928377291357195052011342989697573632455887400803419149119981770270007097669276514146144420542854349691225659768358430114828287374242482430395390588719965441484059941184571695171590868327324082838845798925335747084330596639561746585056562472585194264351429278970030594829377632510712154907353176893138655228436533615431733917075278178409745413998019840639295977025892911774195891331552384262275983499468530863487004215804040786033968442878234920285967574548488784985321401815007628814048342251231156293760180568928525507376917400753705737296946897258270269025955558137381405379934575240150685850747796281487960393938497658323777073712857801645506064130387368823003957569032145891466202363240452646112071846710579781555409046525945086203846803144166844354343312069159254847093495784337158216193441887146507305913567403853544578641881869522216938392198591468604397867694939588118887735325986632836236372997086122820333079803737504170361288709953916744619731636437089386192938409008054154268801142258547783229424667289531258411716460262828785803903274438347745501032248459462918406494825731289918344188216099254169451908997785546453969360460784546991960733242100048446107061881670321160148819120724257945171319563832655616302349757856015262987306346413436270104880164338248370801448155125729254249353537370784172514405840952608111899407156741543329319751905595758504434598465520657606322670764900944508186223549800400918948952023715676102764371144875641217915236517508137189519204248987238126823473197168004587306212633779725642592232271749414788997154022559853084550643152544791485376486270675062291249375067773114679926465038007017220719325446667035712948528837841414146200842056608966802744155551035728865332746001541188847655823017598713926052828053104338308131643873247211704873304254485099894869064221588882650712971844578752657189125704542927710771676478401516359661292969192304762541722188388184275103032019559614022859066419217353573980691256534160569278693842596678895266540991479753262834625856565242212155468609532049975844918505332652267135754837099319331573622835485771494874993985741706866823307357300486679896918481302413072839890882950877278849490204635433311520811204244587088839290354342637308123254064123798069162000115891760027222710850682785542989426505935887379486679149546648737660432157153642899742132368216020664293015049339223141817937126334761572191030025152576741435204533346414830304406635633589372880253006723110876538274204034349583637891554633524639221224552883068858367698140823599121241450035558539200559362813400228143118372709654337121325902314832713354721252098523581194944113169618211417648288424256177817844506523162885808608371277033263377217765366313570828950199869822740000217949646604170204811191153322868534886701199026162687326415343122382787692923592014348990852171981744064205997902870080727673207190373074804616599391035119812315965230051505061016693999316995461436114117102993733840629419512830946578418616170230524041095463606534507023885748122085248098140601049308471200454125261103200578879714566190379106225647593950124340324643254571863527053213696211389177895626376036447240083337738573652220926234556633108486600824811377573093201888369896496505808612134133915752179733984870614649443476408276776064688696586524003439523190436646907368282631959115306689295856268478682482616956278767174154520469652338009401338198991611641325055058011608293626762783509553929573781257919448416578635624728192613164231426080870992547249896908315020985575006558363674608698768198047900576946562792396194114479946436174060123310493863022802989027748562981096783146194593322261194745570337600028201485886595821378632258509323809358738444361570524884727648681552931654892642757702351562036651352070844696004142217076591628278275401138327068877733168796102390467368396535067004255320796855253642431980076951259092049202836254679666090091162382012160171869392620723642656734000783879915314518263523546616049014117608298716969664384935929575673343139410389562777274076195603069294200798482149288677728342269602673494832116353210210139693993439304998938475367589273533276096702770292926027749481046161862769577220247727331073189579066944257766303511948311269839107771317469523556603833546225772641496356603053959345783630203699040836137112368921336609170411312458230684301173611237428087968802885833351568835943035943749506850382093302850578689620970316072007149725979496892541732498737703653275125866294158518047074164771607017792819369423402551957781714869894469345096046738890863810119331655286968258642352958067713435210315341182370884094385204548086533183549861496997600164907066997319287969521493986963544544897922177932774223661953001761814298220140213239252829491816226857473360552188135262174763082409268659623501383862495039525165367043215179313414929768388949009739389353143995720831038574682184531987236050986501459373722937093042543110426017326675182752732364389422728745128462652859141222318100995315544835437866844173278000350577299474295483671077506912680812569476714321973895581435638924062539723452177342579832602019819909585354658415547645810681035957141929079650999048524202019546724027079008127005588896896964858262646541847930991583143743376578933636418090928132359843265858193313536475617677219678387874839860750845525585314010334448954656083335888897841651784198440203650187260906330252028117279634832020262612821762014017993147795375094451135449857014711958134073894373634376202177982031139606060169493489043324624660779184751566735181425290377529232079926248026653663426734023062450836182507562119093862948058616234862595819530430323575260956514733133782364382342068292770545427448186300148652920646138942517656965344690237242590392214177922342078774087407763165963974189120673699384785017691375227336537937493492751287374829648549808714174547014559115683354546551259190339597938738480499713991917170984830498523855806133384983897486580139778744564174146488154890202683820670264529112916496571332222251210759009266817772495043634056889223437495525514096176707479791079978639481885344213551708883715516824991129442197032664439393123986526635700089705790274733055177311610917528376133993556208014244605218477023163194285075019533335990984606467630763681552070513184861971009257441863112399552393665767257690573924821853316213868039605004295567947745460515519993694750977184201805158360603366198822313830467913354324711236539162351120667524270563572220378062168056261849625552976281379558460461002225652465987633770512577764305155728298692521017056113122927729092144251973623123346226628536462099765844522413132636145441180885007744123498096041928057476042575270339634133448158490675492549475242786877655497867148185280784361449781716068183683802610141538262017281327393978199845956498452951475273107272365807973061333583007870259453292162974686547913211560307842988605054749457202576008628385101241443146018137187567898597722439013200582909918480919201570930098793403115485961906368531593948394148556821403675738166748541039486606088147639322634527620775922499138490604254920643574044231266176894375729215868811285151968044838602115062133681416554943310825555712023266969437660768082917450789531420084959744326976046454692595641445764904268633056810252052048279956861043533286680046399879699607100415144938943601293096761732484329690349207361139585307234535122719397469469789029455106355072251632902124524076056006265786660929249308101968462928015100444092683315753034399326816118459727661464117409953447209391158195734365070871737489784040032346155354922786931428448144430428520021560833630949649033907697753853238268571740633143972403410013462239930252000641281060134005268221506759407711210792379214625730219462465147340096190998396296475872181415166007967680332250009666869895834175742758266553722901158235164542510866224840157113221861544156103942204804828213246908565105413743550140242920025153438913455905031408895129672439917318433047767558755887531810031418350150823707591226007982327185842717554025096482447070260556552050659967762610122064197461194805154704227756711217536241989512450230079734843241373649290797446791998157734028349834094559031496519176437835151658895818325409692086808935604623840526335270800081209099542506214434392677286059683428343373874107959595900436957101936848641846354127666562449103355152164190648825910876277109563980529429518707334191489612920305632984405643207113145895539811736456251640745989752394320528147876443070873997783092855537691866556070408100738562201604453617477949179318289284249116209432046655923219797693628745200972064178363460875550651579516772633871941372089894317051935234150829711579390928639033572236107518686892622222948339670719092463186466930133693622430246986555784525494939083215293168052209444743464684539131649357305056691298416928688841002477526377678597173611984534002032060342451838737071659655449516363332906866313224448345002267405007655710257192051720347485393420583732957593658722285432561525507231639481194185029578823900628185831547627134341171931722724569411611314794538177335158189200544114768211346067311580316248071984593845345343790475706776877396931035450373436504866984772471289889244564963942036952514176716273381856783834699856965727321784579424595906979554478613489103370850836971664890363163736693508992112740911222785280312350081719078630069175674027395688876173226643331185729558458029299193083386777157955247440871491022715296838944580441350758825951554785788302614597553202351707266023252704460096336959750449848837360800811620899293154788747960273324655733010627760998380804956243416148104297409849220435983669469628373649706699564975886196969689187164724945788629491061378987577324624962758318456162696081793346286700126495255219072159898312029055618983353892973821897154547898548941395190176464320090816822687492188618661866424559702595651072323803712112923511448448372734135496641990217342334256515260172284890562581258717676476757106107341127684221791456871648262848615939411885638474248347182815552546668730211366345158850564676967715057023950880634841886422088624587277042354447223721890730240402933539856488177948409435980020990068326229197485177667267655319000853456414112541445778894327136962663937474083171614886309150680302729389449271033157062005040615054515595047664349089969553108728489406661445022858542669847114947091872365614004882602604603416763619503202506453103660368778296988173060640078050575656383297689150228300041709697397211254680820650919046592157410001933898516410264711446999734616464178292090811986052475412572505292587950616291465270093415236678424631432299764181135617903091647331468740515699793072694604656141275861288011273123181064085207614958381259638130016742849769043563738327004641454762601749290851254352726373642077281563998138453414587225682285329727893327633500400294190235693876406140020721532253172154631304634401317953224845327870108338800861443089484841390104540284138907485728890957285504064045821371891894866987972949602255598706678623126343195319897694573423099685529326315785485177772126753707178061077334037197307664944913723881854039754114712956539456567965585909582893099275144027225511706240743692988826525727239235415742142868308930009329702139977477430300953153227534885498254672008721674887381570203553284895384143634409041325806395282991889254131544857320351428828915003387030590228999592150144781530795088302455794368613906422279051398288285819309738281236334607247759432592609248835771710655869538757916246399744253190629256740364928778808612363609829576196192781464158827309661745107771847986773900624166518966989399638419197199891913096849590515058032737894199658078119304112687042328122736058720599217309668800737595982551019662015802983223037419452425303647813708293817926109024962190263448111654768634958585613508612757358660618871365505193882587358159500473880000671890525395247267722951173421560171538295801377500342530947391071971794697171857682773449644703698131185420422786489617448410216789949274775210237457513707390716664213789715336568974415147136603126177141461178583558287324674702469236744819701559689720008887315342203168236057971696263745545859134074339846783482206208944425870998742417764816965493608868341245094450193395445082439721475704610731893423434040698230708284576383786084817350752256569973893772682296939950501030552231801365045689954776719652821192241962447357727772392956245696760103939359103382959970997491910398380733184811757169157565219988559764620109191641071114146170644701100685304279788102605995400024190646123941772754733377404542685879559937068872284745741497064157709142971893640251482578078236839890459737776305913804750579468019315464072586960612808113044950494025156940689322197641442343014408622829919268346838113671853481131070504414089110760137713380662809294181600801110020594599019869096358277224002748531606232073674242559902007306579844554184838944320192681795300646435508097711367490645240940881235412393075923840650025918695267770956284024223015963774410983853599182263570283754176657704081004674864900462435612329990826452453001861410598158955433951150194150033299046180607381293834913016438973115919527687664159236607605889166049199402704062132412193557056614879968141330158893051428259158258615072363251774365420059014080891998925699362518025330394797885566328414664003355566953393416926748549260931008535478829674353249669000639112759409624535630245012943996349863738454399847313386959113611968341603747416540304452049305820374997959466294725383154833487433473961115319589542561504725868458648501588261047046767742963602462158243662858647834979023727473360805882512561309203968620996347745252486313074604147128806592684467532573150061381420941406068658512437774358514360223113723021541162669648381282980280255688385461020058609574392956632348856031463683436661255180327819629285973739093309218850684244823345059916719548293118844212062565953582247152965661048717587111114563578700475414069776073594560152527439033618582223908984076249571902754974239564082055374276427023984675967694513790332553624703386739441906019805609734641402675110477316929151856494640236592032048381902762718826886474080260509707602824543982035850475505032885121192832990886375252553153516809090431936705528628118856270756140241650764104291732706725510218972244606619491501488083970880747346620972232770565334885693708211581326343418536789227886433027158530802020954269444293773302398449557126886344199814596378883765529347931527943909995635806400653318978668167806381596919874836522468864563604676073557961164825656086038280392253034796320225335485840442392482639198608220152246347405977345063067270144360319086659594109784501432604807567814234568031286631680995159087408054687853134138183014998832277409513006245347468224274019000178560239388650648126632817762764402973170173115186661700329484600028350213549690851849910996352371190174542977236379714562177180317342095531212459670277120070284141313066098832381944041157522642690238715204402610938705873827413471667778188804851495205148910187479961044291142152692024718817883439590841826944453594428568887699859769535047729447302554988233571693052040823842084074366804522473643818981572363443570715489918891756281882218453328702420602819130029031197792042898407685420461588779843669015001182108767097280435301801463723195501684799782883080838666221592142317674672214520756780122509590576357493714208522903096613029069125746520064660736973580227002399874362423899104535258037301963646818305482845786340432462025188311672937753909704496166140434557054497749907480936551039830783342404267530305689089336208951002085321283502086076759062727426045840681880991367567988945775192189746807653497263216156828228917594582042423375288454349896548369836004698327102714616814469757988158476297933129887442512320501251076458504420688976819603928426247536247356543934356243787035444803126591781107738762918288199759262736921252098419324729427595579434063475980659737642353381918768522267183077197887483589512547282911862895156556054336440846713703340768486850542002597916939122207123919879784767734483584506060375109930477799792428656220495420435645380897274164342926130007042754602898756568395878222085729263432175540211846250268275703248623184010294695111501759976648407856594843918464708564835136569933838688983710993097475915875383090215192818632808270471740879594080493502653063542228837831319712251372636079035938389258383480448887715446552194075324894755691291745438079674502691494078413693021247826293505229026100205924667831174992164785646936061015140215162742287166876919803685266004860507448219213376876120584034106878194288209245074251958492057286468192283804742814801740364873190170091141699660823092758097778217830975999067286522663258951777662149584840427879893564452573409364433867125735623809655400323354385769517877233355450351378763610734212021932329888612132087108247580272720052360341846045607818944968591929261455572939564251694178113007605744431092245814462757864410526529380999656702067782331536080917347593953456609771840673974671632332125204077657356205644917744880346498350060114772609653218827464009981221864548580079657325496266427187085886572540980723879477862061759837920220892412326397582171002103460635968665854467296123465477153963618929605302995959750183749631972719605225777795850761015492446438412062336044713361281440168337993698894397945579703129401756524775502730497747339813800122872024699804542648426291270839753622926612011288707223568322024274397490348349629076065680001583811256809757738758209439307278203187539241588395794620371824008304521319171028325790191428189892943661850756036295033842984667429648980597533153419215377038368456759504771183585487445892804572324478061885632984054978056614368133624370311986814965426719212475615381342051724826752281514648594110047933982482341767211484571238394607752920740871647942458375880801687162822882526168151962287866733887802729045766823275809899451020393234747850267470936048117512268342534633411581658946179072771036779310001689891922423589923948817836612410019811251560009757001364112974545354105131364536942852126304487377973743651190177145504365719986014126590296498181363308422159397835703356192107427234397997588743832120176896727212603558656913240533770360920678264794298927922343197289662679968694710468291814182475862862673355331392907681033252673189793645932852784423799889162937410037105059948271260851068400796579473320616928620503527425836507101809970109073859720790539667474088180040513070132493277844595538243178379119026966024013388526059436695360010696970253673672277464986189848107562620331064142281550453025007908288565931852252923681579879549494626684601566483744194810411401781746428057071522108023783307097788829098098761588826032306956758436433643303948471788990189305474914195842870619288330951314037168319520915376635717553731440544255211965102379139432258500857046572681332135311476577751237433916113923899285951268160569036945451066428475270448432095237815352539071397100732422804126746047188579469820366123170820101763718914089795303144102353503119094496947277098481683451211713525342770769302624659076667723748658595435500177794787309060816231521626888217364063437865674997233954059266368355322108875539403587904410701777206253645782346066847997504790258266794664378744014439182835085565288978208672696567500197941489438689497408718370353050576422415933904293691813464304570090090139401840408804913065329576185569021965501839950920922117136107721618322094238714168862272407807092092524250110905367315531042616273256693946287384807165084646462232800014989534227016753653921897021461357995077796014103755617214594966191378867811231149540501512763767737145375052992971159146476433953440875969652134785072199577532182335677832841097992360166083401238569321911605916570408626133425238319604650563416222394535145023207738755342433930815154048567866412172025114147428541937302710761276784115978513609427390753357057904059094433744261179252492770656551243204433701909984174235122867427254144361155261481264454039645237282028953192200683453622225945359566866363535875486545479316951972670456629187457815517276242104846690296485993705866293360293988998279674931130180178792802305355890776123735936624599284902746698166102650937471966925499546164662793318186869219086650867464018876637333869933496319509879801854453346529727877954375163117790441329276546505522597170720594795636367914798754554678920905237936997827415731565314437127643524787131778807282093481135121952315753382006525635733717897108574169647819484160553225065809221503899901815653435423991510148478088950897477573602337596421367649822085466348559405016860977189439089808013818090885174723018116401452350609009309280373444385580902600197629796327467415529188366801689827695651670021570968160368871188791560695363152285837534866170672353414531474300987029475799121672015783150748384108506765052220658530472196778206636830992706425479952410182530446920485806614777963893407055339862690297798714420720440533079584867811728416140880152334293736944023752543523565087585795855580068027137367855979279598747095832331984963198038103784840320968497882675525889788596678172808145016747749437403063264326238195429147480427035720504042070124400409306315606806537193125397646458871141716626157853677137714373949593944152957010610818020183563120528801096969036151494395298508047668567058463022240059862005802959610777622346824093314921197243641893796258317560731290293295821174260011752902727691192613605681465874375046315213308374645988764818161779602898173785993538590933079903076243887102299564328166238309060817505255833138154196179843274062135622702511767134856564473394582734568811601716959727899056274829387771918369396399621330563072454712948379972800075339630437004909164515868899931812232427995259848666465251353388785757855929922601819060025149830060692281727267526621460511570452986175548814273032842641891957321007978618172383244636166680513308575745485887537710318780042623658058207440416178742234181094679355261628106083166602691383649204645384431403647807091425627116292975549227842936572829984324425251291701126447053287111076804296500100315863145069339453587976750026713076368354857094543879815794854168233941485791912167312233262503328145027086576861279849398215407605503246257634222805195402294038446490484474689152961453735945870386456612272430205245871000016194335083635498738300882447035347540735640043986897012099469743179765634981693284826045316230609399680141970574021586109492096043416733615557089132969110467214842286531563787290293479821227004077872402907053210450024472097142889796804087533167880592673235974499511022846589527583946488840744673420635110219018796785921476444834018695519747877014726306209561893275714751648134802396386219938654114147840184942435919986205326931128261033144651122603401462057102474836172144468387423546337056265159449352774948302992434725048436361534176036756730005498405974542754130356111581975112190622739523547684121284400631714502764690883861440681004757274493727217131792396355926009307838155873072745064778680343484375842618397569472691669744654423627359178199399390442571738454287737029904958664945446547346654711562907748579532901972716411478739018002925186866728404562851275758244369424420569599909209618450905853795746288113429873477813910990226353679893174622193075602045319833334300444401411409107415822326688525754632723990336563185200747276027874769087580020205174079398176010625700843765589816426497696014916259162994496894914135720609897831970942106356608788273465906202073565767560517174185192849273115876059967579003274355551095606770862715879865390922065714945870447829464491460382370559655660314694292264777724758303128841270532440110381705411574195377383132244506422228525941046423075092224637033617768662893208490921951729163709270861325509128481551809527900570643564966215956071617217790031913983201818919985988362914192891296792046102301020754254844938820753640532299124617445263496339177506954335777140203607299528788608021171608272827542100837718353489342212768570995580328301758607182532125811624014768203337071000053547829056009369868005652876411028976428219360462225733141528268591750790686875266872028771242881964939225057889192578739593315402766661724219998555162882783698691273521249527963633807410963967141374432493337989708647866914561184030118876573980805919559040284463781038752656644901074316128561468204888830273965539217483434814955987415368598928491157980749679198380668191370344698877133355495377490233837727142438547221797605502014667624124908529637318792010667529335290916493486555857231498663671868324421180979396477662786861995418179478840024305158510712869328080644854526640030799606922152939159794409121507837801735597734545477623637037546224337928026091208747680842521298256256386492930695849768092099634729619616237303858667693871060077497320090463143778793985780150557574520543850071371493742538665606709167808220333492278561147267257005940058963190219294930121235587524924343892503241400881794660682914227246160118713707132387290326079190546650492770592398739378836935615072948347184450885855448409326752833715723625719824202202948264475721624832387571451354408749291530691516210671595586849035874924699055866321229884741471630430660514318962061464602704551534933814075150947146690645536578451779391944523655327934565026971604757084665262649948007609794919345316289194444850263484375636353449609442617986294420622363528125403663713026784192739476987517226220003928986552927245889583205394623909929680344406368899064476909636848146843859975395855251474183944792820004169987508191359900613175894008758523876026352298056243352632134860062248570740929038727214490878973300505828617746880606717728647537157480903855512722002740587212036177549073974764982607738686573484985640160716996238880502114140063617143818517540363729681873200283866070430141242719095870967975386636123550169154344550807750690327557313231799897398844776855531760336459788590306512542203998450331838293294537624059316844857252577496308274677245618917140743567054153533220887926935308941634909932287973309541618651317385020279213848964000691223009421294837391502122741843523156498254854892866600922454853549725781852340160424659583320079713580153853855649058018642680352960824720722194063011056543327171305245405745114072625767432661006856470772458260017892614191926651049186172837493210554396574700536074662434222238929994918260130185073559054094808614526642180644167038283099367634575834562167504190525714919310459355182648906916578996712900633608057842640399168199410993783767045572592509395036727464226628591444717666227378647727089757224637892370971442425579957748739289835722087631312811016819002592888804271914892309949662713193569826122862477271517792050343081426886297494327750005783985331295256793657962897019942768876873748360015689226420135691835358819764648596388416348189932007911758561717762122118703354799133504046555015021870481910767882133141596726838499448064070095162470484739158907738437503802939491672857632576970757084533639973087028821753678112014092469011571000222573083486999283832730817458841348644395048505184584071639803372798496437123757725136265157629340933077598863128898726264221506057514372602660686514709549551544135057127895309722831038945995539202414969750792132941471941484389843934553546289069453511157772977110651549522460566832371643914346950347136346273620076330490428694791098515237258471440391659189308943471488510689270577221544941331252370010249781244216602843694788754196853128786469278717661905449402650970129177697862617688473228196417963887821454129200800596301555669265221082434437923948219207561252911593106301356578668018883346117086615948660866614860764770162175872914113029764849729120461637502232631966684492086129957751333702975387094440954048316195779522547608802483117737325248813497263326650070094718901789987589787670464522981015472402009186263285996245288140284218924542441114207451730681027670804478265868827103370906464659180668723633115854977068131907475401274143813848355274325522736285336000176894870513734898858238732795824976710849354876903411287581348413233711631863435375036559628653193612551396713030756341182162502817572584777004932042004018969764968553856692657199880544049486135873095176800006367859590896330947661373109171207607310513283409715650331205187792057797559708909815887099878983709749606825392572660717193497467036874385795630177013012459253357749869839303694408411360716963686360842678022004490069004906431352211306256880306648657128758511861473152737374480902257244977835349333825372740807321917414501069959771149866946526067049980276688320966368538178069366644115612426744595644728625812637404585587381028215900030330461923341416216134862825553986791956065991381243765037462855060119145272996607890171263185411976074384032235278899326432768094765091322340903940577848619732458420066410886043163119157304336201817734837820486398135940211950942953398669536285746663384939927920639778373372644259932063212124427333639656273203228986436657234197825713392891917753680346363541319102887736528291501891118018142101439214473533599456627545032689932512804088355876357718849396830514497505095643677059822398169276192264098901170078433456906123233125158185809879643246854426204147807426669578326272699433635404389658058158748536991632080757899751370653524179562902479820154092594337842295977987466278256467543261566372637091366569610525702585861498952583756073536538275543868256289942454799777105437005519693534159562961111732251884343976990821820262232943024468120428119102823239051267744830129198660605282773832371290571772284200930733410047024118707059403130124307507578746303284093373754521855555616291169785742415602187085998285828362493890648820799121541991771744290675390671881741248082831705237080987634368135507997513506887969340283763561801196584882711489935081155194270014958701156860466318268949018529945970349367511191075088668119860385088460018750591691842500968865664671885303508870643946524764877882676840880684174636364880076586857302831191643442321574772987846776467426906427238054357700670672025083588660807807025505213198194905577169876004729048819012494656833438676389990133739864600985879445922999244905869296871889451194873203755958349586254116901279923518145861175323120265716575415809882258493816583694637190893338563133751116377982344120796284068365235295293024593996837881817350615963259400626935593360145171489676958959518945853936249768764859225797364522135313502830560220745821281399457770553734263628796648268155020759686771939933721487255709791931406780583823949078029753130567768809131148529376005000956570425896440416816676864595881988852063084224214272686935886590334364240463982454769921471970304418606751003837202631130141503775855125095797756797813921104642308331860939140567825552931284644244810102941605143233855333767471496184566844462938576827653200794207560557429173468317201317926940816613830181285130360275439037194230943140340941240016151628392482861792294954855521013641751223395287769134212072376988373957337876052899499709636822669749427880075343949999252964667416282134487788324644933889371551462797610313370949862384762387977017100370740558889949808439598503070067342119930712206144242643540388472417387907626604787582953819033555370609023227277279452751272246594756210629038457930631850556675994530472447080659331086090952052949613219961556301472977816199500560026011434280600624380813065586600642511782028104328890889264942169127136099380568265880828555880679978032104860813639317435159376380330904399797132714184279820928726340513125888415643353822085363472991218547340191338183321419690311882485782778174463583227926215045981367043340247194889374171270781133723972331574213814816210550466485321639260339810414083037741247717837909399681134738688216149485453174388798927569666326259542526823894214146011185931543493784336578623122616211610942275384547991446668916411573400659777387076111708205152954945983933488296729777371886239382937092404649359020232766408367727828978275402071494471048331544820773858012152697324331727495275102062209263423473589770512994077267282122800871270237554206084430371408581628666710393611072028453466608224922767154924126719457417042118375405613842676876309279761508226630976546766504040389721754260201937809236776433367776270801324291287826462947634685934511657745719512812535466488091429812648659856866459121494966042470239229840361150950999771119620218907237964383092362691524155437023169216452850004708393445637205740674042107222297562106394567472354823713408707292532417238741666508943823809592575122564105346852791533608091188752225619209490190778952387816310038960283419861566785672118302587297523739422164796269234309647532872529571082425297538955574018270482113287291946345199077169253096543521073242356743449989891591577432489667060377811311263597419892281896067300581099811328941551893472255934428068651053840111161431023351937438813087331655274029455305608946604008888527616278778465049750479562318686661828557801224087409287872153102365461108838737676809821489243914396664086521348247566779270747502514144688669550941392647702004649213018725206164104188717388253011222067333212795912564818613689967342059293320029406659679240984117948730021365834314196115633302560101527033185939815918107336019730139814769933940868687260019270278107073384590479728627112315914410192326440563495773954975523072596587726401122276453550231818772600607816722324824267246121007429025277111787498602340598238323164094284041459500797170299287992287509777307384745282805569147869083093160823749125409548590274131041420031182940066714610573663897630152045094676000097079378653030056797468800837245028981193531967112828173089029618697203386596603801355764590347108288301844603172927788643369758926813389275921913169254936134045302844119019088536810306123764671093723543439056695667265535887879237930265645109361366796952097877250970573542724358043044616660714028506389916064719643413141076580003296696796080003884973850454911644899989453178788785623876601837071476784291582123832428315314142756007141252068664009217585822933278819280600241730435456380836300848440293450415877941568018109274698502993103976021243346545656449575490545530882409449465056638426886607109252248637833715624816368472396538227477806291984441374925376353600786812986004643438729365863610478082262946099971772052249293605676785266216455437882511892237374789771895330652558549079287744713979148070539289783685200724461216182521553430719920124137570554578973523892114423764575648002210850776903122814778464302050164615687324872511074037922462693119993015557946471059029541442707647471876044237231937988573924284185355186405317681873202653021254839873652775688051037172785017562756874787274189041159931418594259225428603482005193121846657749766454885636199655196164908185552410720025385626758074553209011097209246211893517091781840341635067599025809853288313114471446799462223775267890354772349944242172506573461467358957209189886880493245433157007372643906752620587550935483186322764131924331047637966001944409443062779029211053821112775882339628131355331897332799629966929787448094826357238545640247564027176125741977446888228415219598132866096277634141364090819046808571043255120180287715208741550345246724184701155098298699153747196477700863149608744650090966112934897031832226403890700215516323782313351851711089370424322152633022985924083323238378575613933861512335384553349508864486164218558624365485663939658488668495556625637754838819931552400783096452706022664411652076559029709291528954090251371710778876135061710600848685496428382778282105344727420289702742887827109121698423293371279661320066759791293988293600893046274297268430018627923501156692748364063921339838066520099999951712737074999051150263482731357647551532416835713499212867158194691422157387937928725915391371493203225979016204326009110606958902655934513743907950509350875357358059207184117873350942908680230990260629226537911599680545977600688941989044962826114918783077650134970889660560842547758579954096255385249964412685823274940025122955196218837176726154484317752919851662065395927236381708591535814608027349896399533300747760039910817989150038545215083841025920818702088765826007846760469269784968368126720762808341431283647595800202900639246065430497260542260163617314977199037059395101861702318890324941007729599129298578971014061185962458307808034855235647332278695832752898259495758895438540476377412151959718540839559270143230788311474820670842568417223854961852553128195053289952485562045425923329848081643249731555957661220668706409776301611565596894269896458947872434008566795674342468877818362540778964134503763460134334459034377197606416613874825025566641979969149980429496412075778522971247988575356903767082235808495313584742700634395063422071602186554861597823358859391241731138166231018527379957707074672850160445732263067331860389058106067441699933382702858674013037557738237724917861164239264058156150629975964087864397801298375606746171695071696748687956467348452292377407339016224583952755081708462183764445203598667042367734402779630969779909442285254939313561023850118514935847504088212566696499294809023449365560798420121931673827327254126428661252840943223539359850704202200961048883361249269975352710184624853738336259665702772101132612709497210294009912941812158713294761293732440164177195709909476250519088333044544174331076247075253110470002089789645156530949874411487652956182273699930119826807975606214413408403500881535374744047513717696260128249170941386535280424134145553783759441706456619217241181548947608100935904283955455096858451258098665844230527917889535573796628389267821809411073335707937777657960213689258437114671071488004221511070762372953055396644725477386211252743582203132629498591521582378975182012480379596653417739582771088411580023996555208966258880432380766424324514216152479517417050059508131588050889468988051460208045761728892801179502384610993631349413875485196458399638827567961017951785872887998720239094938589397150089737941301358344180823541118619403766852787594580734616504217996374555884147168240185497999791838909989954243755799009931940972573859972368299780249262049755114321605542919657949222999802540954207452750491416288018212522713948813277586406985222851651614308087177625415221723093183830602889126225674019347835028333203832181581676411261349817980285631226265243178162794302878601350953554881643221243334052875698706491852170597553325030708312195780883244012844063386752067076961508574631846364298126804946133415887027740677709492168451618022749282122599745367599099993017493424476554478308885080058728561283457467670974513467737686683335421816958133760453247647676793545054337423047491197283701826936340667358690024581458730604598244016124190053354948613144461329468738112580630095929902941026549232713178219644793507245621758672450957167716151220459422797028596087868483617113878792048981698086866833181368822747136863880820985862492621115886122448488087187613368185907550695188039997908560319006800183912732489805818079110436666341600680953731932808896450660809493125699930364059529361584461231677069615274450597262418566890965195641400326961322776731860473145128483897921502638820967156026535991540094568798715655022708605663337498626439024706965313863840014911368813122784200035150477434343433206487821305463881713024018896344421704972285095965989521986396858863054969426246424467265719181206370050408703239492843595733091200693927322174274031118176203448188897023544098990411822646963879899732617050531201226515773385813053882596827017404754308129667469779035536809346727980646337316308186604950306362658183918264909370236306156889250439971205325846805007554751641118441401172150206375277935398361976097611842346249547510004199782625799431441770943204996472138536280953657367243265175391475471428930870540601921677938577967880072487575433245838246323774479982668768732202051452665461685616976696061651285463337442115683955314626681146135272391056076765332791757898075187378079512939873567572386086413523496628387255906843401909659834340253832276237248826060240684502865598830537678093648387535038403984173382761392819195339880631185091257247641710721248046916045120174562931826100187234993193042808760983044496590240407626793056406526791887615401331829909802971518331235776269701863204753630183422292282077856116981209972124547185595025014522367766965015279310086312670211175975102219253294766208552460618569352644123320482000339291382419175390744284934198595571859154938904407108574878189928418459253878036486999501160139007319616424135574736536020069357178788765061666698946998385941709983101419708415921409113773810834727226093999554458561281130520085915716350793406350353901027737429973714482293286262371119178761861935588615067009443781026727509101830231949955919484007194020424095719287048574384111344931361214362139359148543261827121049749528701648082660213168192734720504552328025181472059651154413484486858130788524150763839776976438262014999778451026704445209370418539628450629297720433594032557191450314397923313747855962186768413834715720719365496076244571439476822730768292189093903438951097985410226875132324584663766001435023126668104488201586481672649224781909442791993603526956862541986974231465621232178156297132130146694724155756641951237480018444020030794647475380655556971259472167652127010381547377875914221618665580236625072966047778293920128043188925529294182516125827870745624034412412967428474421392373702402957799136146077065218414217333774722552385653374539732676551617144922336215468810955256020553071267024303188989812492636962449027063955829775601173316537090152197862232886107591548011721741934965970082134665918718335419441858014261335749940376495254895124062304564540327659086735388149116512521815180108603066645328947497236083806130696169043469527828719323822902243510639245378584667757310428489585559486938052706784502163247754776624748006373637337688309155681740037681539593920622593057709635015000942448590137989672028067079710026482663506508651005451306473479324217429263412115035213757057373624643028208884811441398956244765426343807720389424485049151134387263974720629569224376627027357239197519993192551826572259479434647154874391066025787714378680649270789097182723197384787726802298164237869321883346444347598648815506928999641231260956182756878309557462051771818849962143670650209004780258247322959891374627215756735574977862395032071196239963758190063140509289365044097692035233843682625327248823977974445490024580638721151850826348390844166700490263287972697149747587491100279732539480130554209633264324239769587822381607731486779931016861125325092532668149904040789993344133138656720088770202148904948999604923714781615260105532298872391507516838995960831547500246797206820564274843310998501274491202184135581412520859209561663608189385819079574596785347473536231826343348638860530246612410810389078150361022650627808189598212643916388291824999335031249498243421820816574724710100690034544056254573086232313176560204448431483346447478811389743376277229773241461841496989285597189839585730571457368500882654489714453310731838406794363850793567123619220355848875074600351162014830845912630001315158366521857823785376903021463314408727011903888420592009539199277678412768777068883613412651683589806629003181005875497091616979451406369158130759523123297194135790539143992473656080550793021382441433661337924039648718142457580760003720472502547282047744758553040776870493206167123472275078617995790333729247768640951788133302594023702349514987890733627917068391849632632096978313540138223529129678066592482424608149045402096964094653595969318142627403902672039914323789184569518688499449789447984538273194395186679101025744559401853646473588605624788839371897425649556236048173245425856000364295984499664367633653821561476768061227917085919499088540433951478567494840900991884747192081905006683914627899441973973677615123332699050374788807128868334968658393288308775043755218024551359730636489296827820353826995430442160929325267891471552342017956099337925478406739247089755548136943028057481605925975103474814046981124199425591332403658969260829919145414700138586609715512104001187923105181204673392012188008915119612148589601964493360777707366455292562345585630232555665901884663156268265619282476487343945490681412148538512725621113691746213833806100179990123430852313474225041692591496511101550315288264458735053829985521761941315551476411391843523321698081186054362006305344577363467411306384699032328878242218707115746824223321030207598861854656999335548827908175120032044775609662934371091143217207174670436203708556200480277240089086281719329706113266612550845598714383989757210974478079063336196116957870605502451185998326895404697853420879994108866721906302691047581025673759586369953574292212777866345442045759913553213162775253878055402525377834029347214680848269983177088419045283939324289726430610747697995005473815124840070315156044266261327636324140866640816722093139623559585592744012411462597644691185686318459878519300608302970938203140136853278211529955510988825355154489692794268555436728653669572505700668830506673614093182942876272070520947676645255299051107567154950024646158663953512952662282689229666762221151586109855186895150668892672905470416028489287453005750353871373882293115673674107376679316659821105850126424868115577723121564087505721808985908820962846650193417811027721667968419907379260594876946131613123460480043630559400548478204987668710437000926283808262726393541256274236724950433724621680724460813465275756778225836322352641807859645006510842400267317721968737658665973913663232440271338276808932770703173206368676359434232739749940932214966876776399352816341576666827583747814845766708156278628401415063357098515752751874693805166855249755614022133435832361503009465896116457631050228575196214047498032352601544250119684276932357912760349893688848326118474617559049882197451336186967749800815739966383240582191724640319949200184947414805532466842718486344314081626849962879004793296126769157288602258994438078505742311707038499697597028612234008337844271048209491589505166229303566248417182773477299707812427130440260343213317433167063051344123148668793698504686017199530212409301117930510811848115568772287432387404463927694455663255506116875487428282124990499058323040703458104884461000204474990791114762897832118697800345407795880398390843484449204982740654766093495663239568822754089056505651734125980101691820258624222199413919377425124979096371799302117522202955226674419231266439338468230281674712356889112866323654857267903701792632374708620851513688680497867921604788704698589964150613562402825834432999732750668512653432474791803043105109407049701808598165805218604184732428113668760614476088312818811513833479268211791515351289580615453243119617325352629822695467953690990307980366726804218722001980510230919157158697628578192788681450495612962063756280526217468118254395796704363294417333604915160983625256350258053427437488023890356978699174996096731751162187683958883719140285644040894645409484165256048318430759799846720324558703926028278982978531718138709085879872423062924929385787247839701850746652503140176083816195263353613308072259758407316773801592105244149766673934452507236457565331630540544462244443246297990177222179388682650149306763589180777594774967442361361937601324400732658364766622063803135555092362065003962090023776959614924105216225988575357814812831697313412706252662927576250286287979221470305503010086351576236594455000778785193363401245462836780613175019230570661301539036302489830636717328573738270676188164750385141523310957609067360379434404969888129108912486353449284407804361053466953602388081606279142326936818417899678277387818810099944263246778579974111631525059846206403979628064383668819901766391398250985333855098254655049943245930302428296691499382890070580378776664809141872543656141564960964717433727680418334573438129655347822082736846466009704175821134441750133658974808590846792967092993942386367532318537631945523597688843522094189293201130224966867805106054788140287151425393329873126016779299886314510429807406007643055829987329048214153720639366347562168493080028154478599697484591014738693264053120457620796631945592346482232213674379510146322002943904560016390089449988408933493965580286799429326646353683606422080946587012019472389224686831099647093861546358217731448363184179846718237109740355751660010981970371761480476318711711953187805212335380488135713616663662980372721393494013431691398744808260146463115819137740320116428116717112893158708215725554002122812036717484325343727849853736685743420665569763145570753848223621685930003401945297821242329494859966095701707811335075322381830882565077129338873284096921029242530419741181684005080596988548354170049649962476392493625864337166777896097340653856698907634357783488888189429891682247087341637246319411320847826318125655968846112817321813079370649663911140976252160286772932076041809749694818694980667848586932993028972080971149232704098924385899980009466259673858347390939558432948655698240331993984976440556965941985538326544724784965966489058509174668775622031590410551009984411543214425219049300916645899298661146095166495193119459878073165743389294735651463041062566974564400983851053270920879712572035919466767040163264348937460438707579789299299644839549350365564827527249739139606757452552840609880157059095698505565876438477486679718507152683611831838883983648740223221626530436036532516377506147588978840421910584000398126911593241146950356152235539083749593484068209674517048243415949915872742032973320277742004869300846736539376328335953045729187645011446135209839717272313540977954710410370813273631658000343227750363648077647212872285293092233138285978352807421170345683488048471096658008031588648122086846103764610032746617247951502393243202669402782593351486275695186258328432079278015370920977755998290774309884726338668307348958047072209981068472321627177456868371973837298612900368729557179232199467680020350239688449604941397853234137187794189970822841922401085269635854701833101770572212745520952795317825643672509939322064054433804863873162587679705856536645622466933134168546398366280673354922424100872200558200463487710746465109369581914994798548659678913761888646620489365348295172181301266517225828452314323448065040706809873836332197081178746760538646554994433995686852466295413654530391089483316147610832845616058883794858413709577621347580328535031246389552569419315532217807666542394891635232646348029652124836952137970095231605841585724190010454772116580753082639231875460233148835508685365923057175375481577273924459237484584946658887380340379340779043675311206462307142239546220520898521256290653147327986338970812332630308253693098209880324195902026178313140751184750043582886901240575639750959593811466529579044202804577556860217649763789917839480002809100301149607195267987529300851798103725191061211361799317922915013581045701304179768481020951529136524595788869282884768044196221393694615562835276174087393034325089549440103635275688433170602998199551199782207916204996583007082668715363896991255947034654153432251323414557418763964519862830772343078305152716142120780706522132413039203198377945716716837404110476222547168278947542721786569319842660371327751537729905168797996965187349536482473488787128396731408640605215050810919882162044597640994186526664349224317050391782443707329531766564431516449759188304735589720531452261564122444455248795405193012183726099922863824490082449980493047880498423698090303464757201650702307946917225499024225392359748376124329072556803249016701131557530049753288961282117516967342392657456446151826699485895583134974807168286436583547448017770202566097163231510557473507450830338183983070013727850900856958447735932815283023615598051303063334749896412298836761846755203055448044992390958057107169067969340495207009130797164754458789575590710553118162789045821227361315934112890738582892333606809809130324649336221706929688074040113753763591339193803688752738807759952104466158532274262220728861933318709326602905742717961460703257690482074342192750926969379783597154157882409160945875970153305042430286570559816036585129982623757799434156649942888870057445889762047466439229518842996740496084404441063726590183368920464337702968736341504571464022530702904431790958244586659082426241656185634423376112940083262402104929650711283379633082103890236834102226081285565072159000946910299310464618457559066621473317161572523426790245866724922786726045246139229500394888055130820774726522880290721212612711409619349605658682465081496182882822891959349380606822199704543713737435552283951948570016628090201347553133455668491938550016985203551872773247809307456743408969715760208547676356558987644913793928611448286482245224512365720610993805704578430559470542463457471064944711999972343115432487001764848140365135361249378742705549944284957010836732369056092596644246318903829388729285590018127741584005022442864345292852427146597338914966656048706151151848826453074959664408097518257555915777774074277024306765336560938901001682756051124451109144606377854848753485383106675814602937563277637596628788708544320448869327841394723267531546507515364334304366691746970910681770520730593992797742429714866184621723673449170767323135367778887664809121961062155022805805542406787046294307065191506169012748010856549427132090792048233711443386901304791832062862872127930147321023749050647626527114275365415078942543285125627965465833705590807332312517467022284390364810235171831747645915166875016581572886055604209441294402939640283806007796706728156616050991425921221361685367119497000999742448489494174645423573525415615885506785665546730753552871458570699686548285462641012942881348262397294744175589566603848324322018830835847399672493995811291096166966821255794510441110220778969858720512195183217949394698537729361950116087588970751915402669607829775521261603031219280693683206724620526633656459872696865093165271633344855913749646881259498119751275032410802977139251097211192302699580801912192493143030035980518564330879932838147392502255792921616883464633883393305891802010277219726471029180465096071858071944859066569518666865099168661295764817846658798151561304826540231825930056623301996012282078170844244185023956889328224086013905657903196760776107906504975226715274332696923433032174635644532865705308604800712144437626305343027367022449882947057104027693458100986837674728132700263307940773949351698727215723215829218605672964190684975673637153224506041796314960682037906942867184831882347675862157188502415888471002412733814151232386110525184744402762483439988631137687328957201121985303995242325005604654887249451863027790435136658486039161200645527301074658587954742558622471928185236283213147175571354840501521991589809371306544917869836410179999884532437943237554770707078500244586687509088247419619008357060039866263963157183262566325788629081327554737119457293490732322476961007213521898671278714108726666672822072003345577215692422269592585467351224950643444711600343381255620262003040818010127578514755207467155126853490043655266449623913730932673431821464079838716832896370503428913986981092245723892885237030684437716706817769241620246619313154216189023206694198034975654692535834920146951023202008802706434736911580815402179955036241660609786668768275237984486791368138019516498310406691812150615164980554098308805961185269461159115712150708014068454563725609725996375167034187756579360367555746261506572854242462160709299672187557636062681587719546499357176776275095194909154133501615892207989828013586397808347955663116135769785610712777722001806734151412337881922532338542780327873474056355889912664634342828927624881811082698766806349471462085997917055158038234424203807368576960385481517203849048610530923790090261482556796268876604951160843790069360027137707948883604382549052588474645281863297910899045380839103887791263748848077055434256550600856878818389610950876042317240274719276657024538601714616242609908419649762667414428245048110463710570509845545497009414794429855969092349605632023273659382822216129745555937940461025631934333021905194861818214997912929397913995153481909436774169152201738051730505193650749118930356324181530957336252011245810592946456150311556462672437199526572418631634778712797413061260935922531366177365875150124901097186533737897964050394176642013166612350183727601815369090508638532219772810401244912107839447673951484753763544457230932878782916894578049212303169527662206681857805602003412436340245496238579419668318391862136667143568324537564282383182724868802507801570454642067175463030603498304474366759334063526651017802509407847863477972783441850667965138474254377350540881922196366815437147288603167774907460538188150261763482243367727572135251906280560817273451219623713517328111437751357364072627411690529462775776237662247087829302933281675101719537944755371664939892076330748523371721812412107965760192020385559522995182457877117364079778365246437266486354708988738973071748171731841605673817909614904458055512386461848640800568183436458581635613458623085795605132881651936383091284619226026057855183553235939092306919168625725433694762082584161084197922539398580114897720629579088324036492939411475697154320968465895174351957146707835550476544981788816871327589084135806660875035430313086183945264711715316356092371319153641791699635243206124754590945257292161765668294671691225670481766140244936849748990071313796020887738257402793436070879229445184992226526611633629746343443669719877486944055859146712294191853110864396166006546154874445190045471453493569801075602884459221963024719654900444576381577300321867953723178992102436520409528153906971552326320056383407751462528777753262330148360101313092925915001655894713384898000222880194775462394809744101461532035409095931939407708937454093458067273773706788653380872411966149923051946620231349688732222319081918432903675855867301481303301029633352335694599314308327621227685245473194099839730277614912526019053618521013237113799445979082518082209122269598377804977457699254280033870789386240787233965393838685544046714757279077761977643864252903459906738086777680773886897682650202061665138775051613035623384903464758780043059768427270618294810965100816167746079177662761508433207758889036367695431972083767857405937652630475500873853062480942159160458936556199164868922907473081735911677740449152473192306228561510254880188839773848919992182371024937627495098408950817385879047440684365843071396267625168485809831161699176528249213062798261552679632376761234234404460750145152766165054883849855002560514015259262260038485913133078322733022289794777740337574715822557889768572778625981324966276400962260270154305914230456964668737724148772672784920100031215312159256918465228894091868327184115229124967486737919727039295188509684489879560006882476959168082949891310848784754538970441598755019684473170266732045162861247007487622449243214427690875177678574189701676563127728816614670257959584743426824200528318400546857364168039438354399925400038674048465592763540170192379701862847429072095451762713080154806858915863217102783353733960770738485062294013842626078992109780576220146691114471296175921584635242687584374126721931713874259019303132883243103229728894020771035699085471336819938892178321448957450897677149279231733243108085714482770566708865823899541972329804564853323519350651148747924017681771535118462839477751867775585284244357748303362488092608799979212494478750804850593433709365965233406712493419427484037175793157074937964393217453714343643290305492158466425773344735881208971159024782034759896149199802350307142937847706320245419181887018162586606090812860976681553828205262481225244995865799255125950559573401486916036992089508609634505920207853180851352865052268793800571753875527277102824967043524279064515000646333936015864368022538111194661851367743917145548525631140035674287225698404136427314943441568978271013651573453752036088674140969785392334155630653209264609386444384391883408508097573329178703393860869188011933589017340538122882162451920360908210006716388833253782753071598860532207104024436910888128440756546328994791027101500903205042805660567406657811555228738947704741989523171157929328627539125023158532019176168345475306297511449302410402033683078514387329485174302086186477693164061880594274136964440567536570150434091946482561403779852166985281824957998691144009528035491082033071702822358120914477068455504803772558962909611982398129158215203465885827739570191774071751213367267549679958311766479633736090022838934657094414894702161117620415950675982716160122506563884602607988898922484432700289201372666410681527504005576803096885167009201101614812207133063619052078548466060799738569201635222139722385843635414600262005876334154686118880411047561705782809477464292031870499814482303191291564715395169936061103578443786706078723835743458757819606795551446416131503722647074350305627428966829914173778284840055550406915904962051487677049363318404061987220965897860121325176118425249937272258526473109304413026053298841722336719831060465568763190857031287795524241909761994033408699395021271720730233260628125164567825813969676759751886245746427721353569856066160713720722289085343753614458489392863715590178718624443890174053293346343982321660517452168517188745228000524115711424337506795160542217197672573726787918949420782510778039450588461239847955702403129488412287215575604837214125552365172650044457979733511098839757420715905947472761632936644892253355887266597789158806669453403624272482244883086158493452951742367214077853984048934806325560284358282379468307630878614246086682144668624365293408843128157795662554537981851264585251281845049519415057939338496028365236687498267413211319344726556428093731744604188412964335939344193714375077563234026312462709170159584257890705060322873085198001309142574095818926832204887428213084403409273184475643949136756379889404725453891255970590090199733246376360655302181698439660533641524636602505214025463651596657088485880658651094956968168370199810275565692784014887319835515393628055288640472654415884623411574357204773520460225956379908878523877987989246219210386812208324742546218093841363817805586948125756109743264561099522162226961208823834860009134227258046845304891679776654620554112837538872133627986915210400662258138730601087033010372575606920686676021106779746207141915529945752042449195885571803419484996637440031394908577578283428077422412944637776692440923182389941446410052483685115550224761561426705194934128213461041271390128085713926270818165725825596207019591513136384929927645924372404198258380116847230132449070762167322623496259826332660648308585339612155433471142402662830832797717071420726737110074143186990184622781320328943044311034988378846716471744064953189620217424111979796206572933983499668130175699173375242376397231988671839927251646265410523955833246411807074295577829685737714313535286210646563932784398595438037217054139947355701075953939226045785197704447428198282179756741423527179604354936259781829748771127172182195709647577904266702253705863251520856125723501920378869135296132476029981744644296535611019877305172479815978080959797238743431623913341956497285889408936192934116707990913620840812316045919667557251254735139812286275426879444859003714863288954935506440907297587464531646950243495081185250376716134208837995934970491158757135002649465672123357758011249896787699538806613873817629334492586650967166605970251595644433429993770251169825027139111056439538176749793264459425198928248110276272170821034937271313718695608924138435452871651287719557620487079580779194047838740884697651770546506249487140826038413256152255060709446743522502173516648316786367474271200167299425252189813273303636447573291680228515722100195176510711525080562317183569397735586603679395925995190612084918914522263332653508593541381552343059850199117113628596279200173044093228009089243904145154637112308763470815082696188813489042562409246161359820106869280929842898678881401569900344749799630397003596555202028472594158840803841144973648460587511002897214803815992305545046559330058494242711260021731625078741417259555899040671161147674227394405366971771528749312126922712745013602667812080614008824118106984839194083877735027679444850252368383803296820964276175057622310060097786967296052798599404837329181995318841777423520455369567462981570251239391972751855316364880330061894673813094643305113850612229201915159880968227593167877143945972333443181466975239489663648528739796698793376064462143753922788696795972189021590782908230548394767670941766521592543886913055446748321274813562343783826664641389799569387927304035262751242289148744964741652489405277185832687711300052263660135654896602756329379760074357117571614429290338549119718009828167959195120799877693631598028659608157383507788839941873199968825611183387459439946991596923263298939878710341291990182682462251923917415779319728456053381403564916651245207247298766777136946498863373294933654801989587751471825310800092289878659874750199621233955111867779392498978842681623370154387330240127579635236384594975768317833980932746827365246457217774143990123216842305016250309828346361984918937822013625688395028004436633305585611431423555586176807861066181644678881545134943251461959402101272783565651296429999937114742786595472431809638684806244446590023469721982708199973759106698642235595376743321190608046978108129723486830171658180684090662690731300497960899069821469942242731156821872863105947682703989996988769440559481365019467449969780380908070976083849993312331984432012950298627548535008695230576490203674606735197850956781717396434786465597629830982146238646451146509885517979949436597448723435877744479645770200121219747933344179941939242846153329258877745894629272240797153303526456692448261919980314973938466276230361419008453306244979796125315148096257333440899881943836111697104984825192664157057693573203037999116492633687442196797746297033581943864245158670247636410147047215379272668445073302971107285022965669027267451144282880465480558118967176316934848829790644771665466875909884633580960462028438631159831294461873759923922980209577496403477805113249678783966286721607723679967342001326065741912852326156634003632390009269361540411687667449066576339300342835613933919376126422742099583795599661438432394720830932370609135840526731458152368682416439832880954124180632528789941087802886006352102343629429537943044631342067504461755729286828542287565296008968789873869423602053229310828603172320601251640431554415429263105661964663512605049041914993344753400735112923630259363184532674595775814152158957604838332640006144540134369233610977859294859449704775399021235651611683833234509398301245864837983266260580947890256645066421299506291278149611882705386651447147702555877594587280520968475957612558524321063030977229169026161452061348282411624031242126923625185750237174928751241522176467962607210957737858681141956010596059045239518993350239520180196255492523101728753304260744992270677853809412263100298107028795409735051003414694509012254681845345472523557557805560089791495138519677104774773439510412838966920854568843739343794266393659543762035487089101065693831289703485939905967820962997387244707865405718865264338732407242909955570111407711413938285696107806627894002016994309009585375646764527124132017550630021243013755342287432055174808740480471430016268002146279730201409631736439774535178991529968911336478952506643043251862814890335599627920875181778355332320578538947748883675570101595261259848102516484041886273315016658391601921435283093974164929061956056846839713034959375679032176088304324714759866896720568761671982039308109955329513005395048934470141125461728338387014321068182632289351794267447328701558842084259992132460007251232060008345196199391037250947869396496995794350195534970391314273712654267214063709436041361884173558500301713020320518391447821866266027666751253726437496588195620576838269078799426501716914252359205554655340985966202093044192546943231666771675662874942967752723360395294919480211976043704640853949157006693859973485318890142404308163185821272521207528798525151594132423938705039810219508202729502761020427179391481968790262811189828445357929775162700971375656556798530283956414774207539547441617066290573160536270087829079466607129678564315944394172124167739266300497495706100869923893318602068879922240295521659434446144481005685477887454259790593872571026523178731658763468696759589099067875648514695114589647153327956736361113859193583104575293683869428020545715555197787723658451960915876839338566117923664110815788437344203471134246180439893386201163782658219908173052845634642327431482265675791237276815774606067684695817347299650635176229610583886441693269448646767588693989330082288566448398817795579136340357400550249800037036453332300250322103601975956111471255398230420823360738447454771056135132713043345181567015511572621845367060841650706680356110785555089328215776676035192229895825382042182276580750679101272621309281475150755486347826581903466017929534928913911673060012928228801122160195079521060744127979977164397389314047189694105018852819936495212720001129715069347580192646469000439668326369652177185475505187710502826868908673597401980608376639857921219280924846791808290811037856103445566723112742027025451253015198833245080017250054030679545880277894897510999381488506396770375623560662007649839693745635317929219300204829135895394557887457391533978495755546098447782896736553266238808020454974553228976891623095853217432621283852853180129465777199918346733730284096043545578068120446357763776896071115933802371029983577268102113723150729132516846412171807075864480366775299976982075393504401592824241205517402766334399139700704810330897014285198306453258959234643047359443165532109969075751714818334642565264561469261322048609842291136000705863073397382367939792008179267273024242360816698639479361011582510008929811901813514272220440681464110389034306140002823406622806113437128840826515570441835699332325922534651627047772001999844936824992580120306859365524100262798051948960951205364859614671479622196086588225191151481317430550944249398306917480538798383582341152380057604417569862492627727984528822181991287128936969419830996813846312071525056830821413611720713597381389828408900247908986592858677115275969931522113454199446147767645377131875918027609329759212421738494784695491205129717159752981764505589251940572811968837169111891627535781474984544181750590418010045205738596951063986109550869584589134704537825886325544332512426925163991427898074654929543657699361682362785251227309854079692454525770568003952958615245194795877134489776708783499956408182333713991736359409381042441624975059936613151703543624429972890294748753592414449088270851700734819132195428130486286739156841041913894874264447088017940101322262210280613619547095976879517947217881769152867107719514413596005057502427746760804174116866716460737096230712640290886879460268762238578266081409574126246338839957366462190304096636760924247232783473659833573441108690078513867831437463831205182444408437238841610378065533927167318586248991410943967648395014687751832798671949885131415811180778231727234061443263534175285833269003557299106996848646326985511125434626913896939499831510486157034479839760426500893849436558491070620417363182254332442772285686370286835189325878084573984343106978821055972799471467388498523363523700198285658655898933045789700728960586255874779069747473560937565674230487435654494000895213922279265030623646069853323114875028315000658482647610746892237970810475971079978486606701912439573244461385798517409749306749317894715620932762029938674554997547392935732386594860075484162579843604415644963097119193422092892882231667417918656043437879206646553145059307389722798920648136134259474460390729968916942690881950475898177253417311034924647994625615728456490018914165143774138717149599854816110893419165049187382350433789133764466565479399451431364123754783051286163304165618365093413198712346198227334476127649727777226611872923099343365699563191849685985156642322619658624120853517979869835891181282603129416122592389744543777866634110275677943369388732086990972522505070572882861167444509977792871359960163033192050000694341914434300198654429856768323217109166680914729631083558990140695320343439465329875029998533824029530185511459618678890722546541163415526099519030306469610322825939797762693797438982749602800756085532437311065316060570369571612949328410839934655509233135373155681144383880664801646159252776048012257962955378345244198254337188431177304543965519936326747437954836142140015588396413145373623423430920687223296720982076796474024824816723699161147026313637326938053152012880487569136751815049756888415638515479769357976561067296680452344272433990664441488103256638572570592109400552224732666461546749792509467820959116603451635586935605526063580565625022947203937187639055578458471397497679987137346461820774331900747034825001387402468066910027817279484458569015595017004688808941732062466442026100473387488294955315465509715667644934558507919166602582084640056408064272034992288947841296348238085370945076980651217680068268055878520102030796005347387002237995761451612070539203210550122469463871757527730726574030991612707907826307129208057257216633202495330442485709839345660999341675825622371109713603483033645872653859480501633989966664380889818756638955298501090805517320565047547768247502603105826153832581885761434530733411703618153022087120459186252955221674395629016353803032560336592361742710133812862555446496025341762186618076680554182021987943457678172734828632875626842916416133602220658392601944858956478172436431062876612894872664507435262003868571116442055294409876238264154621092538721752194204972475668912902737017834881017205777262622298180869071330344372374685079552720566047579132760607213785184151963431896538489489378484700488291453183944106214435387698799408523972814271782103230409293381048384884999816887721752224945656246705845356669038767512522350732851658516307956866145345763400828196270631247954248161942136607245646310949901218717296207910279025359259350310155965934909951013354144449598419129339207387021215077491898355591152673216076095952285714101359107297492934551884305510178789977095617772061808201706375034182350467188954964366094388300090798371208405491444361394628455348427648429052114946030781963018481259648813307807063127588494303713738366536799698276283924140664328481145667211198184025103007686411876354303013486950197754615483402436081540448337277868507611187652401908304710038085930504505994791745258945750915425873447281776672848157944421705513824018030454634304949552813165751120462836608823975555223303696905682441532670785576526217778214450340356700720259826853164078850602052508475696420183862221409534946815563512605714350725577154553810603479158214041661555912533476075309955983946717620732422065442314382140551522343066399079568205414615837869143995786660540855509042477272530323795179990375736727882280094396264396946731528274001828195703419950647506842080452216038452141292850398554508044072056873110794405775004078044830564231001012806026401001798059155055264716188684020483137603816783300914153620018231475470004642043319194850476544005734965529215706498877952442502674302651097729643725089201697630385813703284086468263244924716220883938386257652540653395109676961203876071973248140215977705202775622698358800603579923168140587740555592231912007410499159197444459557408891886438097064192006874051666640069912264098852884770247404668218257895223724413379326671768464497425948707967706890507460128726126955016567165875077590399866298911542967116208538199655118890941521117963151434176038821489442880844325509078234408384247969340465617671151795733054812176940314426443519304416700583195636906357544259043210365487309410729534330591679073831480801519099763052869614974124787052011133270823608698530897187677408618460298027263687038621465694632582480223390335821562005064676694327555955773388470340899983086287123488806901899473992598372956440684324801553317648869802190311383335309955979863822177800515553046622272064185396033549809561900033741219981993887567641558137119338629390734485029236501500020049005456492984349025883560305713565696293287435222008767325386219610217691310200655068663058220558540973429737740409575587686701200911004568566385794624117103555828984705256825457165520461983302787421584408835197569159327258325224345139772993689262404465084264973364159579548482526886864203288466912701489525064828820855711813524689678683112819692432368000318756271212443326055868916818157908384358776057189666722944051984469040219701800415857116252047576873726764119700572672575353419789825735899746323125554965117159807000110247868177274116651618916876720824826994275230027636642665292979411933762308055066888523813189370041742959877686360653816712724885556431911370723582265817876477478676164754392124921956550182590722500660287686439361187586718279022732931292128593060574777862218674952723525344362356531609114163405923020628953225966233013527965604890533010479214803800755827572384185317573070691166488069413485929358052615746166505211005719806064206182243543716848890484697317560925950304448964801012888315134875714791825745441035829536480177208901123839175915767850190798408614779481964809271585234288768963132696170336639307364222880115272047317973696723761511057930398781299190239762281971782749274702622445121314086799709772313484050520296617979910966633769490874604895795949043587129517928967791101910868794721460987220566574883664596751273480052999538596197787439889418152551686532198743552260241999231327498211592065810110372222442535191954637881093320691310080558372616626766045924557232161681641202845154459064572353811168182097038744897685365662329121608037513458774616873118464095306288771665557107031038064880116169989054642180670045946491660761083586081715994341558352181701902812593381440469136304655142858554968926015478559648072423306553841300492143617687863166450562441493192962160572814843534912967294309212338450795041059430162086944728706218446011445363828808075954969808246245962785760593838461911070553546543315533157516696513369376166704801373054535504311786392546091194196877143792522003113108611438450273158797150925082002117054293461787104784585605630588613855430248868347079200059265744635852674642165826918045346067498350772459304486842436741162953988204139527578680039340076276968257947603996581802264969844515958526113516325408442270391304527681269757469349773529449339415931700273526999351705658132023758552615201133569609280785446410062397985712452125086065621102130032060235207503589370985315171039602093806459299105375584118962735664372042744776858682218615245783411920053690235675133866176894667611510162336984262726604026669622852266074164290151458925491420900684208051768373102410648454844102596508419171702721120174293776183667107683269385188433503628024552273911647050730682961643911550274241092904202564940031670646290342218540023115165007933950004508759315739204305341645294476478218850237697561634610497633411849546372023417196986954100222574622084413810548268343085897596522681032614462124872806301713906534362610025472571887172571665266952528980343193367369038020030759761791092398229866472796439670113748391490664247815848509361707075974615478106167108797865240583904329054929452069538112979404221304149215840909686267609139335760969557512142618287020862416686276387804757493518836900514749395644659055555065012102670970992810604378673473749389372664697083637819435678933218818648801718428002177164670752396809232987903763177124895929243821988683143411635039007807951461744818713125648010978719490963964977693959739904662856067497963258309871824370126728888287368521720387258313112243752844496846979428295995771586850004324820245869779227636099846571511516267999270229755469582859566879271357347859110969513236141207167909059313567621509494013673803692053218892370073628196316472483998445632611951413482364340829606849415444787931611065864181635476056163119661276276890700156378037050804338030132525096555244787156711579160909259504859426281527908704029902048725365880264929840631926040099411903150843156854039938739871000723813101255963253521837302478841869877200800869925408169629038713072734090850594478190553304400204480165898005088857508111795088152742813279365516789355257919717922699011878329010284125495841600557358289117683688474459416043780103741650322273677246472109280472079874061504546116559709454454120062741262767796666843918246386331043372862459721496038773978817486586970201019626938172415702092518081840184532304967916063393493096871343557358465063173541568316425450271974802189361860080396107564791802189796270518075257563200220116019149295521915408058701392981572206739942855626413298450734294531182762103177280701655970669604607155000381427543933419525131617777544183090435137685850623454418074701915448684206082862306423647661681184312461855181522261869799305741709400452562236087402246633896370261396605411001372076964488180745728065565716084890229078003422109746447324130292987453246079459179065852761091141583566966586505522272761497161470896996321654191537952819629937119550440676679356075373836838195877585068987744827551832445456284913624853279193672863003966951794511532371611071960448210090789153749255859018108947175043549307873529649902140244111838749954202737130912641501258275502519147141650497994578320287772614408257318013103888825700359119858311967913531291171922938832492446798399963901059241152727875516444380685942677881073465123020153183322059574633797575635067092995489635239431711164429640449608288430748261466341877574913511816561226230424767161499540173517445450627488877098440855601853680482724724966628298457463119366855305254428008197089072052481972960890023858088699471229176603230149588496102154047232651322623611920901646754856070778978143972389947617018553031092898780508209356224330555738703123431525460405684545957226548132256729892490556939437138301378887936220168371846754834164998930339522938256980911715935640959919662963955559661098909797999865210962693818047736161480050407563230778726190560284067398458318682837880938805221338923448987101748181473167046589719052502933640793201906353199087426837323293727863604208253586178875759996929377277966056714636528838930637279577581709279283816886904258650730979296530947435996639874014357138532727297705114029653956394804937937968950820735136240536639354004208247381402466039842325475114703263864921694322249592344912205102255250176958972275383180552599002239879196280970000074565213769595195397083353282185748219558041578815174878865607571957774475879118689794049329140690808475288954026739756556136141654591371935156025428437084334296995923803760241568385311884444943672218793380887164434984631902587354896728365062990348634035533547569124326558123557641895622144012229607817327504185322190232388776315076618625355518564393872713489766159710727784470363502421559836052097839772292837369754208838426771396076077750297538898674528041056519315292420120050582484997069678551518073633187911998105153495557209124963532250761722300436093178150659431474711773925025551914800893532078415931724763364430088190299677839149926111152517754573779751549021453537001660774446989200658413571149881186674976854235057011282076779746253940884134730118769691845498210582606674059349705165034129070854522735106094997920575843163778197670331359570113273509500332859124078675545449261396057014211434618293439535716314012605895405969815310701069958275561446627424790755345532929426929371958499679895480008430538387400650539351592877797995205535473018046944297514888877567031364609219183037698006376116150889964102370145341284200854092411923386381750914615820092025447807138624639166718785624268187837545614147179081469800541814598225079942726531675302124747172359807122204887904975834007391139492157427438489910949409270899172218028490732817700370326240161210894749980638069331779706351961529332408084753773188500360033504977335235477429585745937786128606121289139375713982489490792782775628851795184037549672575687741073980807965997772896105606334106077639451992472486663960083228453077802637856376170693609778712791667397100467211139941356004415632109526810154413790802348352227752855137981556868621831371545725411799054287702747400380013629820074987747146228872241267767363600478753843710037163379106763115589057972007671923982400383601451472401020409056255953217175287365364932812545124076741526383791462996155501315412233139736586204795215656446478986451545427113515677012594603331232098892480346155719775731316831192331372904738969478191049704791324864002757380254811085083856987012437486967767516504956383117256140463393817856865267830934395213293751733904835467053840081407172428076344543234604782546153368917923828091817842429336298778809782503741549788538759289996511852174219847073888116697784149893437514625474647068137807782091865636150996499317047237561381964500864676299632069794770098994051945709482782217335184617951584653359029140213828850991680345526117426071786487269731049751405184607122693439975444762486438183566711027081044947447369937857535378924196776410529981991945906709314130851773160345289367860275893400004490361046621072347630206547760050618111923706368703271966664590839320005535385855413614223201635033823804112580097388052062744646004821737504191605434196215010290023765662313658249594208170600144916691211012787732373772338011490135560555087924885123371656583855957967617792543941592939895626440885230866338374879631066583578526783886637395768503299143231092361554337202527109667307764321108560769581509077488777303158560814928452087040863304385601745357646282662263515115566358251491113853441314689981752007388131628771746345266848483584628629257823770055880214618305875653208210170001299790115214425682580703699897880294449160134637632112791108092036156308697170148095092383128247691550084508450896214409715151816726974427326152474133989496591868371582952648031476787212513819387782800197202369753902242232016492118490389168558059725071786344543843783156898452588597925163752974105335651042209938903745557428287891100144980049688272215759450210643837382501572205902552472386072815978956361816369779848647883674541432682281691764042538351047404838566635523466677235549340691541869797934965873366445202046819509961920903127996829693378448827818707982753096358200660780070182269472514709606910370624336320398686296070150850589921718058463774324298807280748108450905755209237452487801888643933547684329442012608829263961660919355237861811873655858855966972540216257487042653653027036514845166311506070721789736208024965252242303267560734800719577594162992912805235941101333886022616195073277956291879402686469635694170473667984121371787445387144919209079024318288014654558711807785286869877579732565364700283325055959585639365466936441666738397287380819478920768108860325346185842891775060389437172411242209191260273572723751145987640737510938534786856921141663156918504611637767244209783532145310422390323771193719419554910344015973902736870663814347874864355762638000937788759793884005096050177777389348890254327010751331849172552102662662469935792663254101992216933554804117068775612204876818618507360180943083226897308145085230979929384219031370349686532586264796521146050003509586090436118857843153586924435224303589890160734762568694296137478410977074846460791755165193725925967176877725680188779298766904502747559521795553758953220920665446852610528210978782067197162440728085624946379856665448161246093934356570812464661273875334239676833314699702118852713995801816724857184115988807149773071379785797882903025581082089314653566393732200452747938485859493443681009397410714061438692268364965863091882265952299983048215564776535387496934929489922882698606383915336431265309100993649052979913336408486529773412798409502856302368514285553679469112297802640576301779084635573254024133407539985120948836767568780532942491595908626534675230103040990620222230545100975871095585241529776040337755199609966968327362432190132621482322750289963342760396492708306008297472962944182903451417703779267313368901902145305333380235383217178739899272725734117200166904079700298077911939005408396401064457141606729662963284427070504810057554901803706945539694527436827108486686933928726908581247047844545640743094850435637822297651647958704474367185362315462351368477512363882456955660501609526610340902640996267905344880362855045473353283775321666540652384949200650165153416196940154010792716354573011719831269985044290761782088445781215432389305754483990422313489633499219590434871458109756568632552812754809000871555700265044106414078294021989641533564247325372943160630966245089313734284509455163156793029335981970230879220821540419868100945334165096266374506807479102573611895637209560403643787761764816485140268268702390165500435995747465005928685507035822168253404171753091207621909760969904280230065716290874877209279121459806771400642664055488104451379242869070810138709615312600098227766447758248337769660403623199104585571130510280582644848628334141973524595657650323548915327457209799561883400777729575346943086008281653256296812131943818766155263896535915207826978910316845447085392732770862258624785978648226994133045466660726169840432935414501563000682428594474437100943332488358887593529874945123686790646674057126042440347074408809233001252485919124091571314295971609770335856378867812529778913408017617147564791317091810428138298198436608887499587278617237044153226230437460129062338690970342256730793059307556832190358309850913704403093047738462123266197482277530578551349201550590145068572566899259310776958893046635259956330704729097885623915525370975068461618333239087685365988225498826642397028664006991361249498137394831729692516722246333497857918994149132571971882325882194613294623797845856592451114736802704825262705835695218881410263236536789188912408672472200793213698290532080535366654487841126711574900471032628318019792029956494507725809130041279699577990019174217018794104516628556308949160882378522382356124148626414512121399469064397162951703900371849267037497121293707196412687586561274282657945246685986604783068513522004250087364096962073792700981283510370548218731936546594956523799672345733368979861603445538178590321380697887777665714185037889012642001311251251204502584307090439050248482475345618526024817343849639744801430810481984230188153808967201777248193306552263724710129501920831451069696454050223208297568979274603172912562542391107925807144114434121902707598955752147164751804592055050477018167482965447155832404156041193770823544375894393018119380904519740559024842459613142043126941650384277647115954603717812694338137673198937884475916031354682376843498872702459774009590046361904873151117072167008641589394319422470015929870288469987701142736468822658831954976187531106826246550203130889528197706454709300460266102181782297869638940196668646315080415737698913307180606658331233658579161680362261969920001369724835180685260209854323064301892037907422194026043044709907070322704070475558090454492518088402866545647554369729851871134769960487961456222747648794965624153809836420409980956672894457745165895212279359302200657125234327298316508187526963209117874674162334415515271511956032694930481169744030228400435102808960270776089031858081744761462559533264631787337604143881473814637691768190111856658461839506864016621485588719928249211554769086802421136354301023261115362612101968933743662394900696108774581304989401069426186849963922870375832161649116511794798830391869445331250885216507855213483365480378594823583493643646101598715435235181368087427347697859880580216552241399935546261750469493575567629073534440062485303201492433081744979671326974473046517400644371261985523921255229593196555551647549762325416842404147249256645470535171862281895524911605593565437741584534647539987256226820119716061999782956966962538809688913449044942294677323454966482112935163085272264244350326692667384161912499357051497971345745794679521079892273241691924343784058014332271499849732906245057297470861867886273367060694616341646215884794960698848732017960220805063862738963507364554798756320056781569591622890263277938260301321467527686850065783278660927506446117280700703499661783841587241323981532858101675925071332269242578829937645623529132234615186536852584965584332990770913940940184617207983089234040272936512744011162157273381853158252731530228225978285298584536587613540755186219444418314528645609747579172716457848582601091078785686458235015700905882895186550064866741314549360260317979614663495118115400485177326090633189019357299624751160210620247266299825218212876108322524706775258707248972365173444696426108188529493849520795024233075228688695547811401711827929794668005712002553462095723495422049476403131558846211707052284606672716162412303722360010288741678425896355588133904856275144408761509582876767123338063580979631400804436197681888713826361210982507190857304809024545709528678375464616033428322401668339574326857791858062731343854040832495952894572552690382517890568089635554857797589704161828419294044076312201743851513781118219124104792105882268481388040512543352800507018159641237283397851658748916321602471639273735007965074204212262049509791856475256122870507349937762463794572458551542210086378484261505254925474840046740448747843128065536583916020698750687938213816386695744931000937863895719694580701933097796059555768578865685237926958930253709294332569933046257219961876142237850869282031524403433703485804041195874978253340587564791098943139346689564665455648420861444105862811613553044802502945981558755278710968319982716630761143239595507757957801699857813506032127970060085465744434540472317825863776343634215128102735769827379515012184544369229887860941004030745108978203894073261014854718985205443129095371494878942922735559516138921283109027123755579075612613503213206434309789284047187929611400938031525210258675333316546238765392520805120540105315794824125278199319917904022263138965755463514756587829420637947160041575075971591541711799254949201643239946598310228926426517634090347369197331655175422884356732112694985739251700648516071627567565846935253126815563780331416162476412181271631044396633111210239335512787463412919981557230463270070724010605467775588087795223912568951665209651616189369071294089968359286998303713269568496305672243197670885604591622642842449060267535641583455123308285654219475273673208310998060919125651734293163171095840646317852929299550401183759107557874411743470420378851967193853828978974556287596090907190994607916021823522028415781903876832063059584727585065868639370704785694138756040115961847647686946106273386160991347513558619573734143890604028133232969673516263903104392551457120349295478306829885149436639545731750835643358671115416600191500230713333278825078051880168548451685262892550251345476959437956793252540337227274397780179487472435702435909460970889655771647470472641046518283470465270529734760003588637492469710824514887221657804796790778912972077084190945798200574309770760866846602450857939740053826963924604602947783629009005056858860484543777612358620717583996936341989303104416615584066849004264642299506811130824174768313522075313958140220669591301140871853042088486316456117315225400060533369936342344391843226975624386112561809144209024815625457330434587740661380947775655395504672503201966903835259720278804886814547312507536672375850769598513693910433056398924306772896769626415337494331145589022492832797548558346942299130109380139007597327975468337706476575912353387449982526991518239637809219860232426755310753963429972532830640811607856975867010564321897377235133187894305530222126391851271530471037571397200543871215476285112170958974580134564061794860900559886953644782986403669870500297567172754977761635197108698633133902576817073696812783415847202331594520914433474819406546737659807106632262720736017916605566932892066155005488220462885019303627700170915829855623817025318620921151289330281057144383289749716978751697206565808156942392040739255009933495027592615772268399775180031376774214772659721689039074470306099197497644158645756047807355724551038552134931136042740231828680284194057161671049411631505644459169048095060474712081609928338870155050291268855927692457963196182519638208069942482367192491559109912801014671925487480536729094114529055890306393268523704779058921173921339189238523018866963341676105512300169889195881017925627938304628351279489934579192487450921485487596349870071992411376835953373661183931334443565662148991318278761962013739606184697970218104824871591786889438382586271310744870104215348924958411336239648347175083353976819949590867723678558782326055882048126256965283450286230565577125337293609182693299798169681609629210129497045574443298880741437034202923596132504163407033353677459947705639466125539332959892505741308917557191100210197879265004239021723015503543389885560594620381640579003844124969374576674886764794795568180303337715930209511804940102245674475230402379753197300616631937677245006726538452116233816741056299777755614865284492806642295521742375602045100493894466078908690312678387658897531446502447708089663897531866339273249137964409008922177582267737026128578537154494154610679107095662788720481947307548641759529444179190071019664052789521767937373530557014768795257900691682999371432654577074954792738512616549106100857459071720142279845493831510193281604953665775648919361685771855755406624782499464266544276549514227510641391930824904785250975514194403734132226134628632447990650897769554724836184216550442292749174477097293260811610725959803774866552979189135518844410124319404361103633990892561926937218337183207389065279163026537807805087543403838511716195283940678614971567226135220117067766108560981003075835485543978399864762475386417394356469965426549392177318490934801978605358594418332857362019971185984762207603320958873227564415050400515470270153474235968398137209869102697240039445150196462008642965904825079252940780516602208209448263482769925928401726164651989174084743473256763899357024760361077390521640017460383455691231815670599408821994716639969106937617021534339430830084263510487330379700261205013130371165454417076426444074688302976889814049936095471967593266846659338041768034011705932783847266916969413748941885140140236568408810993704894999314494583008470584106781034152722420710466455607758213500664228283137395774150159944715920989450064929555499622376930203641464875832068843776802812134064056075622521211266835602673188939639069050980789034619765407450589003021072602262929752349048630204086384558026613923359515592215420570028757034531253144170183053041130946027369294889662223008549344877458375169793718523734086854498841560382740272525172829382046121317688581031282255610109622967932234891893785826092010402450158313401586803270584211569166198616709097917001165500637469769157119277627252074652439518750661594279012647881470272375525297447643225524363548505225036696378151161277561243988660851533199676363457314956128335135220255695906652883714535014057073152227085799600430686498881230152440165357127449256689875391233519635109349015386340310828957093145994081559723360999119894438928014562560197675083282763220705895007125580133217543908918177988536552583873175009705107726773611278359110701774662303971958623357055546604295033210321959943152090517984603962571575488225820590524848468317997403367876325164744154840055074018360951133016530871696785620812122058267940274632216797231829223216614714847008575474321724085314779986440719308093190190224373905192419796682917122983971602336547839429444291474088923001200468566688719466530027291663310906610691710403641228928996545177968261964718403948142847358386656373769010723948148792525002280033216227840292349056690845300526967735374706175928680958686973206119477403968111372313206599456639798797817605910874809640810986033820005795198389133603093499817688655015140968450199509016598452866326468182112998590813210189824777007899066907341973658839043960177833470000200622460562432661852036056222621344335668226135591781701967585736419291195081259765718006689025950132569134509774265631578426323600914898302039236771777369254553936539301839059048274181522901263350959101029653945887796475302430753817680717746373111939313192196116862766586112123713409343010051546624848055172057585146951057422001738344928785668994592415001728734759129008079690318216220156180952914322335488796255582907113926849119086449237522139993326441330081659353125112258934742504097173289940965704565050742869097723829383307554187022913276139672428076186696270320353541055372799244351772805206006548928071812656876940505905188726521020635472525436077659032666107178043947627366669376848184035571217431757976396716569388650658709675815921838053890939411021627350292988266153315576031226882259273900661662731104094597781147325573864777084909096183789465907329364119354357178902031494347599232746194572068556503083659753002517488359205863666752312242471461693724559942607734367118794601390480830490563672386103319465746248664511999428025688418529161179681268586342091833468630911558794587372698043665736367515470115652091478013724672607874057428773840709840698038700283269518719301367974651077744157982996484759282798327614224719086198818734760359445376967022102032151928249282640756623630192865071826818568515857862401917855944261795057053407738019112127912829505812354007702198589275808582968744572487995880986922512938341803566575848027458156398658171251162535972015230365294644659835571861166549312587951771493092481260950620872449784208975711218583205273938259146134649560985939689064576249608188056759958243452851385894986626753820679874632236678322450082731145300745910644223355009590377031036977307451378022650176806845423592572108641974041847949271280110428301228364775244300548657897948331469410174736444770487178208949881296607460275043847647559984013317908009942416197699378939242148953691257816536148889746630863105805186653686725884353239610352322958621768357313791002074041526149228533060347898175714370688240114074664621365300929063632589811761544346394146809301973590563762103672676568837117244071447056726417763842897021577267380925146513645850481152916318370789816066473662555746103645289036029883566217532716978003066952121107526754477891906272988875395587147577904727737849101661735578125187332580695810094839355819957894154803689323894251860187208798944338587280394848112772429398520041702511662498029947410579935874159609575565969941008284167240466802112522042123625817344274186561220387422702919908813271921876605534170776172346870399393428971890247066559928319216162690282891667312656603161736765659584419407563082087875647333148231715453808030730316078534793909656181868673320011032127639402421275048669743922430204849373031692527469794875724206108668624011201416302498994079939487929034123558774934116033482369927376666099290938229649293114663742460575311748333113890151977813192892401370276084675591792867563913660088237433903413913462044426965510986173405623667408378958962454702208846534252691186476096635597449196745298818340813557039751468691423345129028378687390841639895034476630349272182660590103377017284373519923325665209935527940102455212170468789505164410218088369057497041715993412647586833189321801880603884772893208245149113824203646560189206322029552469534814574546015649735199505508125909371935717459899337267356408341505341331649609090466719668252971018016757330462140407772187731984607493126679697801201204010827941590583521348449042425130444902580645257466149066226677014536338750766834576201053518813678000053722619801611886673914244524801717021064260085153245911939772574678420112384770289660826876295250874418850578246454889468470347276493058778599578789486884657314307126319904045395187255059973760355439613529403932972210543911057036766732594798193212653256830990559163494837789575029572666049491868131098366354675723443513878177920588248457948297189462273125186587587415795447416469802709103678259051982736856535200204096704075634648844546077128030887501312853923832289243167735206870871019812367337351662557217754411568026880331703737857577572386801707282890282866437724396477713606578931650067486173859296876853533362044504114192635665948302828399047283382441165026819522594327538323989425342155781579877217273653206922660785808462553096939600691852395519374368447595737165029624809180935008053883545866043636183793833252012616761392365549704186578022297596468028351532902682380257362111763789730582790162130979658841973989815757991506201136207775123254590716914570871857192924661556115345890214882597619660993444553533488346434974762778967951340159107148221873214868456998204684745720064869928586390533062776038587925766818689592515589937045715268229619656760948808207045222282781686112333903197645458268198561124424618113228701020365384215549979509827429875366938684365114005923952067487330360733560163205132622670465302991054151895463944939572951454123414373524603809723919804347539932669223412014485807302460019926648048086060235719485923443672899930786590483088112512558073091420341047330780375921935222889050462331266257461703514705393378078913495803131240890912050289649486786157999492175734796983197371160040661268664154862740027726613859968306315060617943929845648665848045588642378236090825040245275546476376563293052777742730529166907160093740348940183289021889173037864337732486253302805742423972302990930657782686741846818234045712529339497987022543270827588796980927956254191298029925095442482877930177896157826682855837387386460865945532052334944984885180857609099788918527798572237111439293191688121696287938243756977218330790671603387844935529910852314396203090643245155223469907694728327260938886871659337950964462815301691734798936628699902282078016513411402669493194715422918355327006400256899993057870255878193095219271619706576858936201169436703767341035689335141952419367360601908369023885630916050551086510807153730293606169026916618826864574700190844900590735320272167873968856614298014298896064884335862458081056761602306387243710772628622115820037237251556645096347048392145285232825436490399373182917523020551603270308471246571641039024503471309047008568259785595772898481238189908657669985574352323001925397534701415227516202279121701779908800557261676756168722467857942207713355557821890689456933301333159492209793848944378090540937278948689508879357743421509089205537820668563519189218605934889616308048716816713840370442654955287550250440307465888097922948205631603233655461319453409628413468871606759805996100963757688673276791807374553729037670086946029495394169042694484714674442881831619942304585228480183802955298212831168280946988406243259704872494130459321471716397328683930067114225321843294249608756936540688784835694462667658522035294503524558891637673151230091425427910807602630352371087106504852060704905280846387321874475476777096004460603476372277940564839275727973555793577078268644965228284439290135459585456140796518413234461534321220711413809685599934774395316780019942990391683249119880668993922250359685954321331989634218182600673590019238609049304078082714366726260115550476707954587259112219663987653998954755745355658789919939168055466341809527825772589019904758148055409154937291222974659609715313946028749438889544193294593689706269269351369597944004618193743063142329373083114134530373134032724119934763404949362004961555932417596605278425883045850565049878732267954271562871443330988693027506455671382906288142125926998909901088818750431151354330757159728590348357141756169571891596921247394423222044835246044966699454816431111198847347442986323159517463174570123094711908346894065613360985837658726182990644940728102444822700762912719998476359590536982305410393249294277872963491675851587633988449373510044230372864374621757756520929050724497082422188586359089392847309458663327864782543713833650957875229825286807693822718941876703440362590003049132799063713729394897399926809434242933448963718170246729549945037805691961701670733749032801579221355276616216617499467650195859574066834839674164773684757682764893060884812278907598304051779122046120189039174079923364195266373176890100103677546065403480109223294422079721250261302289273747481281005053871558416258659958590350027413160757090169730255491273258819226722273563257786399226863847334134375957298276052459585362244394805088286713777632185861879387046313632767748203469019461256049725208482705298358727429092685516690512493935074419388761745197820106922881004926784127304189314764392733904361382836964702820149931906673591958344166916304924591057377226275534638813845318726245725524566826727731249607622372249460147189479330117285110353023111796820008420770347774038573303145318659173688272278660070173182446266316964083703503133178915378511408961580188291744588299276229353409466668622062719691521772212832232318881288460043634535856678101064949684926879272015365636746163957219515536646788364591909945852489131425587822594354543182531223163724001965834832740794119292233056541251826772485083757794385323159389338420306447684556297420189121226385714584883103879375674387400083653717905265280079184763610373110781504248225655425447474083575444804241503942699557979244770306557513368290662704728536739340576210989623817802123461849318328235095062010894813914511723809642254784837832302108473383490071813554561342074061001877118563745108963216219540162458910317660910545054347712894994457115035909510730369235253324755971319294193413734615134956172099935841222481147224575174209295954439745320453365895162850971643429685238740774472460398683883546331658655460370655123121499679776690583912125079433429665554143545751981207992737573836289160795926656766918365341090249609676681485367553850100632270381000611701881047123969824241899884491128276037494732114902263496765613489948965162385903541299838943030511895475150013674038055751983088081871077201381558648101624939565571009128881251427667513564785787077236265075632499272585863575276457566071587228538781524023824287663424393704950596215050564044839675552411504536537815203161543662493249767186203547672035893079934836829509660012538806802786853889749632045625660954026346041131283335354423985368999089896318099981006944300881396450616755116048947476852455801212928928689049282826472475356772926483869607582158290593078317488178858260402016771587847354899813415462648627492325942016489284787849227971256178563357439855551262394404507392102752910971929375948637776557799996335378588657709780414707707694919296873188637831905264731264080772273352810148949127978085719603413421512053253220024160997264923945734330134278306573421366080064649181808972617090791685584689708155284629703530401141703956874409956169691609248991542007197739710206431406796522894482466644535329536602023080762612797985052895210987805236424140988538880952318405801357303574291061696139633184979803242095416575346093193691300435670533768978316561185269605639628044986434854814498781785355343689284885331324852725321209777330381360491957843343761050856935937177253723105484935486545261044181827000887448563575144692587622394529025440413589871703116525045616737986576323379754329305202855833997135774272606155029044177253493641036805299427188934726087011239578142507707543624754907220618525929710748581320708803220786548785642164879881389210180256876069634170784372911494958869715544490689239901211474897825365849555587009005375769696843528258004835624060176717435964661740839315665438052826084634790452833758435744989686967086034423408630477342195738900699925644727737240255033945244461217109084461391486825435379441753185100180128136115813572518322764696444364731976945903263310352953599108942299603339375387266366746264342072933301062236820681713970513517380443046969448842005008013003085835571203381119383472868713925830449922071006449806353587147548314711915823457206307831490439534901002441005264115752491579860133451250760073468652635314505610663685498273006178923010024693453145283827891828332488321208661572073371463300975430191147154518623646998570655838222224682877897916318365550023273190043210061594969021334610548634865328344769504454106177639856525020263565141523638587906483367945917489501808107432056452900566057099492574472104901472680434042793475496741455220045059380583965364572332904754050379072109407736424230613541478771025106583279364325632540405625834086397254890572529190545713966216017568534925972890824338279034592211456427693831561604685659886888863703084468909705754043983670852960567266946010673902675993427790266958834634540768184066215294593883627151066753125262504910204519619404362373924632204431002557721223788110533432073644520394358165857203204289931343196221587426214541152825355201700320396342256919092402920442811129949720395719706196718597554005405450881094169502083114303360423180547490081438791179831745486207677053765791210554753883651875767665484629767276827527438310556551347748568214051170687149984089873315048173790950484967172383327477491620996222847405407627366597690994769218293437229828535872201762694044782568822537357404349886852778977743163522530863133552470431798265213801771071672529247402325641375409477071452196051446282235816660017080367084734389305599665718736577956758830814178258103663143475583913444011575508738354925823592894018675469304410615723791019466909896620994331466478813008555387967807878786235336797560778403582234844850782493873094832072259558204915026554371827489487814398664921636042407304905565713215056648993472549670230264413430240039041415492456911105677527157859969445707545941278902751189501329005009198429746044999723994981883367676320207636874777361393160558116663013484381109430694166910046406028844017618312115825067745206982487560411212557025980162878058317262348704365346437808542457900345293528021917723375209957747804091590526011868843255019874231756073929115602636130370432197631983162405077350983356842317985323873929937066081593553189077642220966206167197517238066136314326970727759589067958103145289925354549028485072659753631519483465112223007691349494215962003101984823239130733791327951941201729864756077358154600606854192000468015582950866477613520272524270667608634349524846164974466378936549275435607659361067315006545261119239979731773073410481054705888026755544826574585292241827004262015604544028312856720657226717050710147487124849780549406984181670750012535070795730924177966016965702349182447592546415489528915179310706171469280017791063358986976027128531445817295441736918860076052392151205911486529622384840971836690816817329921625084077575992810912823508233309751645226325162063465630929123637330505717634753983679811721215159868969491826653415255613763921038546580797242003854969561837301060512466534801621492348199903880397931370157506083726155488254678889078948945127180793726967331059068414836675326172372015165175533469307724044322071119476798291314282175407342221874366834121545441133157605231943276561268063931214877934818035291123624794315186249437205105105480711754138964354330826334198098275165341719586643295185455157675190746263926999600553309756272279280124316082226170541136724091102304867713169251293884885720553926244101593196394832174053383894365106640686665178862350141348048526399819178499186089113913892822797236514255549135032257871299405704657157744220422018034024996147383455239201739040314513107260835260073182693785805066135368732553706994120006355774732581105893761957970611354542441746192145182694585120303311209852592774507604163825302601970472731308987188917533563155186877605321241023582500726129885862662404592177548199029450009854122036696853480377427878235324874051985523738987385699612662993489433853341330379337965821650842442543976233133180607639673488284338282204622254008113052220610218864933333236353736382941494248078631120502094796832589063875150355324649570602437609356567127914201616543739051159708719160837677081799720980457296565032557634487265026941936607608551348069953328828802389077975717890850918273407595575248154964024629931706630928473821249021329178137234039406526273023029790883581613151918174291837832458358258717322967911349003788136145451053505872009396129463760942782431136485483510649067907000582538368681613502855174134014257445103092398653149076037642370022467024310357656260148388112261395162866562223124694938767585809549082447364963348755877557413531114341157387513390467019048286945691514785791040818283158752942477994501615560725536474102003161776789454557770576309449227018887206872281174433100377264364110204235004476605641268400467774364106277677565515925392388797534131871837266883380221126034008647932715856157627434596287650877110082785487573032664665033614022376847563646545398001116636212694192473314676795621355408588566800378046172886203819529073533594637489591708891191564905349558450196200811205925620505570130487129871242900563009683863777655835097418417210317616502075054037280836053216598523168246027785916988047243234997096034833145172544852736630776656782944519893199314623164525356281032499949074697450440547215977156443672121422104329712054065959980610281382378375699331755952118197855467404971334585894751065082519666126988234680380079717273400320869530963622390091586010388128814480008074958183338880825102105957543334941204405221161991590748678274637069210524542644576703967139310321892132472919784224496889936604336970800504031235827045580507788761545296619099684133344149069604050532649660099191421822890946040956040616638086668822303675265522207879505039805344040233874853393932510716073208860146628224255335995712665313555155373549352547738093014288343258525846951648318573808712571549566128237545524977491021492761122169335841451701447007349566492618394055967272186958005751572917891635534454210512386801632631357715677790969588008506671257260903954987074823888676170472520247162806534840929157463562482420564247558715820339175916229415452771386823743980739352568827143974096105653046935967143987416884726471621234211433063783814154839178227485213553047860224216179932783331491361060199494687271417152438523547503627489135212565581313688963673234359859924896636036434110978968367748305374093629288530321191046336228444303102540334980001319891549819173705898787683556301181013515149404332515329781834917611528805932102924049066433794098277450029767442745068614254313285659896384196875953264701186187325886191376265029727455209962020023359164051014767035198702535365922360398844295847670228438582603090018966848333195698331915037940866124075943602391535413814630833715433194253921039794805696487642414424873642347189496675604170556099859755104004058158206802084362800110129123891169083459881070664824845730511423414474677828927669055347226767872743299691894419359642884918890979477511477944763718525997376028128258748012639630898491144506229704033440176624266372041289203938316076400858991280470202523531121049955664265403257801949789003278324880019377809066280053679134930495318044140639813821880862713507387985213599364424319498089810328297988233412734142266272205449363630491726394918571463449215261884484309261093971493799670100860588882049554654168533914128127344004962448512106005279733846764853970343445900799109436259080953798372547912158959872782639445826506728254388626889957686423773158397983408929974179812848938206854488951517723982818123726156453978466624287319808504731165369218317484206725838018838246981559621487238831955499782589503154289408141159724941491492098659370371544277792972946563293223062248049783101628135069975229488495686188591233928428433536823966562353395967325500219693299922504164413371398278036823724625683596550364771986852766267678848146425187021222790519015682491820927081115756040160448607691703125300876299745970560148379901749099702230085188607013263662146337593874297529414525075975077575046301352220976278314385679476711766947020395108319326153589068916793530336946807945459506239635013865819126135196685586260650570994918443544895147160705458948385922087543275629362845300348393916349442807397245848225253962318382817045155831809567608606788200060998704245647000119304143980446784460028407147729367720456056887557481462152499212927300339680680163005050913323017005460428988640348760743050702426335878369526983970973957489380764824654763091122810829903278476365112396360381548112896246979833475839788212394706336379363701947060071601070321685795205560685736987046136793047831000158703108501523785672691123711610270561927732000173639295709689644548504017478999509681218426014797588944454415709825401152697553826053379743621584707813977119337400369491976285836347260606967039311649406444924457797604313545276380021485312649085760794645096939786221670428615765712846316764991906026205775317323896689397433220629941252305043567231737713418666460355104694776248863540377191866243170905320872178949268665945428646668284755736644578235791044299767914204085734625800487180349574993796552066678503519187501511961557343543985330002365128144002321542729514679388736212033299500374467325352162342588725976055400258700480317430642514836161820743132335932051293955585754896349792549683087297921450132034919245282024709309639105714111258862287752272629514897102149522278852671476547899190190107042219528558222657509280840045829213433258453535273621566320873270635466767422708827123026925569592380185816826880215557712336637380057190725644386495843978965027911911770773495565321622549554197773637393392330970567134546375844815272095886247495735403719511070084925914180048215968641956344348492477489486699804277249679815656975176907627177234151226428542749062025959006966666270627011936414402759614261738938420814039771572464745045585922122993556584476101361997349374504990412203053319556378924719246826225653354591095933403688734862789531730755704766822484011453007530010317975811700294456080274462794203548290505831770514012377334055325379068391991307760505773145322170489011354489830996792579088443787366969763098110982725421527715561981544957427612337928519357745076157384124031353987927775081006748091989562038901668305979113498184019633582751759678257363653626231655844321442882787713805975641751746045251971187189390585968265963986037092960844113888078175706924702283274652736804513030776559239960467212018571881866183529951475822724206141396994662288363915872574148412181242545930512169022175269781620300112749976073327433843280405894971589078004378635633306685253901460829186578415688764634087159094204944495865919647615542856800989749644298764164895893766611626937401343361019893105462819803301340481427852488189498555893060417808035726684973225543482959723579660778835247646941288055065934159734294670250177010706457027403221679989300194772146444770866866119418973012108184319348932706439606243656561885624747295141371966244834837083353894217745821399147015837472541553454687765441716870524570329614105602432676430836346740831342426042378053689338414082452898769747705094624485506977112104819760844090665765366771736221627605733995514666809419537341415625232658955437023744416442274280199086511546495744584752425706265555333477657855104603015997467141080239104344938311437154576971814494490991661263132476310584390272820087096124262682654976129690169679919810097327451126516974029837803951795939503366001454547732426915704837147103430599126722278309303372853958601706732413654847000089913211425302412782096636266043861725956699091551459230295704226713558305007799180966791800626462858643768214390226026312742610898227791205130703731884578511913288269070257218108660640644639007559994251446793808998805744284362690518287660270783614609553489588155269186518187525452558957841882453286220873345828494327312311571425394236073927788234756995368444062339756539216713393499787216921384722575473837873730879174712363842921194478438502218914120556490476136857774169839505977388048926816495280556679496721991177690773534215205447574391062107144749708727348416537836447892431537764744649570157479438806609739173225886572354352031478846643715371889209723229583078764758487857824791908406530677738083330776686992160803153345963300057115544648328371661407774239366168291165984054061285681362368726593169172206868442019182430615714913526783042222436679189310285649077451785236643400624171076690147682504975402315391356493654197181458904723800708232602158062406526076212191224811266536136180246666931793353725671126840785539047892486662987596696265803066987150788913817082487147673932122076045615686026100931956423085965549025801676644105205850812432814331748581992238453465692246044518376382525027881298119809312205918244587031311306244931628940635088737586977452961238636763278569360130765515920482326175013882806663777549440616545390830278670801296081439059689915538416995003580954199558070511207682159054028463413964048606851207438566546512803106315754611197679992463415847054933724494784666534090886889957562806196162820184274874526158846624143604127575854988984407746897086667584855392435509235584066583466671060271006898593572619236362285263740716217898594804653509229517287270855988579172467891348299799311525396645287061913368209609499161225822102872317198723051900213031263728302026695765398469315111305304955550809875684607012592253838917008155924010744513415435937032763779786243907278230790085772260665289269648533787165019750309910059835177186220160132624913780859963782553164876555330255287165169087610489012426652921436060467810160032798585543172072471701034314570852608568902296264621459687619750739726226491698539102254467284162113079863289991436894042736772381517455335233688124637048403480794917510041168201316072085295934679324424194387543847047830915404712055619841585483052314596834442880473942423913448696277949347023376745868732628745685325276808112460898576428176321806206028103585236648035347367920541379058483865092986799566657403025499061515421811550914892644756980583363303336758373397249963025349361551373935517874667798603869724459566121734960993826473615233413328433440834455567657369306714455977537472393849085262931460609926654427714550556768964105339584297942721836492158903306352055741490872051692526449247840770635199089520286124126768765572396519537245614392120790619202599803921052723092445549642778435567728543887796944232618671070746899209996202939822885811727771941552925426157406796295401050214457625215812656678303580878225159507648090768090578102300799253258103645784794132091064021398416090027297720965776037279971507055360244318858737968074969164734047108276952758936984759420805579774727146012671160295052839664578392714320581339924604430265597824070681315011429591326214601301378794389871007266220005569260462268206249037202371517631601260306807609365117441076415655582939909404415128849050214315607053356126177015131138439479289496568298024757032238877423502869332485865806190848935159026763902527960367147457332724884642562430741685707122573934126134436959824816951205289585159615575077524619696561230932736618357055961623642932937733045253758469671229785265289745710304953023750911436290558554831269525836936450674846442843325056683728694761886810060889557139659622172916156920005808020188102142770116019715567631827912589622227338572014914326822070658906409258796324675635397908202051534199146735288687249955596115851605040718204731228436013440393854463671232251038284386747782956507888976237162562265173698257347607591198309154767665380997110661077118713473832572406212250741904826006927912075428788216322506428809556584151396474633855398451107428288838328368211926963026810695893618848825025036902304572629386021557571240860640174690991821655521728733915582444502045636967827278007687336038021169426747154919701956874498767247577951813028921596932519491315138368185276871726293745229053310673898275452816721773530078771990328428799552912113321982758811051529469052141224416828419946788101945902985412217722589973050099721614785115873053353323946576476688533923528248484346573973741448440280989463315621253743345814207706514220639213389942697797294539530652892709963225758150502704390176521032441748306488478501199570591122517826363766087611593379786599693216981397379753094552547797038317013654075272501231583702799971327536352871030216884158723245624596838220282501751764717585925083489431920342436867647753211915148556478152592474657202224039991206198149115694972754524307539980852186221028358171463684036713330693240623417217799898725831400028381075310596397405640534609417066467202438672393563268362753597961351511696557022144597546915794403449060308348349390650497623572784171842663596854803686636059444579271498913869711743962363721001978305258882663628363855603308996714466937340616011641857345979728915572943262287135357963666309403266596852417138993219026395840353966094642712476348673146374514320556574241351547059200616589399794658925927470021263211783583811495884089841664640326433697133092838909945048358742375047447056357547260454705957246025969562905163666520581483950173892960671349143374290621088915717682274087549121706550892927517053548216170150649252560758747724048400296561273651541576902147044879164448449164423566013216490429891801403546317116323364391036702037016799947312427620001559250907648075901187375307488888508227522637352115061648757856727388002988746503064551292828213787938632704683353685061761080136015068911104614597422908402667225735194136496728778520495856670869091613512215632045163335968691346056501660145450168397245784852424239355418174924798514144905045309327983414922664713658125312715525285521578809412782751797694765185548630148752513212425363697106057807457238940673371408860160026995123952046602953221220055809290743986970052822776659403133236845757619148503203272442982362361239381630846776258704073807621874664734896925938246903808061101057115429805672287294526297557287614078506087851352527892392398247936169632749939140598263375712229673080857410501810186212896099869230659663152826060388052045222201317081050381696208559223965573369825602018736088033900903939899879626215084051400248132493017371335884686470302325583173605352751154427288702961665942663324377080987415444676897672875253832770310598691756668215767642159162491977441628546381362982923647265103301111675103629374494912827355795036232266537248091341698948829286973780555926925352779708438369290370381164401692089315179353833139946749804049265236297943069984182714025943530541894051923382487054971981130155468172679015314294122269903299203708815314716966486350272005571195030355568434638212947565036474408909558739218021333627032259434112426740336835046618166503274786784083038644321022261895534212008036916632270622481050572403816436323863397134121190487319892440536707702223616695552876634838321766918676425006604434075542889691916727721489301984943028364110613525786643784557632597721204930706243770418480728302739191136307778109529879660507819362882112737756523406153081311952565737209142987415155826565642874816507443815830915522201119720932179478516201118592232723275245430393605453901947664003213954350743039570142810459307000470674021040700462450609941318860283133892753962519836975036547032518311486740697591458329980195798227618344607308131901379322235277132970097577347184605178929075491318209741228283321851184059658611689914208319652002191314453032110628339888957751168074871952533638869169893526660573170613838535954170448403109643653557531748271089372169570004642438303107214074970094945817704560078594455766177758934939377132525959545839143163555893917462767131655883410624483638658719953889546163890137417338419148717347722502206876343387088886003729300894487033308165941432606900791381984463932524790070405425158226844625544637567918533367512629583726305147533491416112142492532306508383892874432178905070923596220809825687969586470103028731493523393722322235370596960358870375271385316357571947081552535956695982409972008370616114038117206112395861985274403792416592260074073526623101175228679021334973767800136753635089103934315986830943748539550176281635176526183997517011401540594323132714846196147812883066660237117187349974032088499158527754320076799029308487961406344328318340975374590710576885223960883976888556306293378963304962400065829162930308915173901221112122565566590427393971822798653923200387128900042202696557847242390451277759173005028393784778553587474922461976492484920768599255356226483974839301828456968437876459022394732970054200061660312070668493758219279791510182788082364774671670261975203144753289142784241420186365002301088736747758581151934781759304178231127883422552422895579863684400008461759612029590234018474416545978055642035606077894137305228652223214771029426613101004151225497821571736930735933813068282439864365586692064185972738627134345925658965721980884497956490819457202406883801264860934065415377044019440772373004096122165634542445695962311362369411126013648879439659674346954943800440389696627925509029575742865421402485019590244537569715726403024568638043801047643455035201933243024485120683568499884300173412021200631183486613176558581609692903657987121353443839316709038374264753838483615159620301746715806100376453030676169430471539439638524854091713174486330298324873616734688965991147672308851422303379305764568151338627544263439259117726851668527755287935203282764715960853554217827162241608076539539467374120574809613429731917825225790953780530585262168922685012078609364492581224955297410657479836956854127142088772595460889612780479581803071031274021455448652690258344432238120094305826143425371018603053902054625331939498532609414535030418958553608281618670976780607118143453541925720761627142665474446465564023205951546182016607523039005690366158961766436111093853570458089289262697796816701825970356942359804385224686583102769349550673132913872305064060745504143500436712329654358192383877682084917764862490729694980311472809202609289479104229563838151396380427709146934188392487135528663276561771820108479338012953495772771706019320677553371939621054337244443975923846395790262650990427964019445686438314660341506323906541403348104157930671038751181011870624123344053481891410919708223538462936295050805677734658668572866034135846759598902722796993590032950769551818241926427392712072155098450338195560658900716607324169304414038256069593373285857889895060089323908258056823352845683990129798196531338088945396002575883307220090279281383197559436202543535315221170030984507792804321952723906270487251186344396850485723032297746483770617679196237452612921255256478530433329564277523688070696059653919245524003175024995700903387705141607356832628736646875615887259886407573409274706056929089019583008641637797398108311919860620774983727318423868143406329773297666558054889858263394915337506174912932099083703381510570548912226730187321327775523511632991146328594146609545116357731565353903232623726628883611919208119393213707014256658049606311267756317404732129486103725490725455815971458810592664352412548239043042806873239722551426479270969135387419023498415649550898469996679153486587507100340088290335664106785418873906024653094250241235431345752104385340819702625115602694202415112881629944585475338302386823266215772996686711572983730904776124501839387398252534115750240773000277786275042130775326386874700182844443871463722476424386346662192324140904684425663361519842138115603774225187458991885673780102789548932766749546319913316658360691515022864418432929565495894900300792492561130596120789797842633865245177946292490358579755001029577206641891852874273397678172864487663390260722857901569041695063950325244989176929289220344813270486761827474711147147228094896486211172609132968154718525766222776746087543258055074245899678080279324876654805294335854553302538576453580684586206334811128291283696599344872120123302262188970798152367030082465108917601818120668648439217245382293241309582541194112390273256588235730930473679310391272805795540932500643368913194122959411967263627961338225026861582742590492309038705548374894451928812675754305856065465697375667447193147831214962083151060726348811935503178691979620053730199711049665828203061537811100280580668740556820312348993361039490820745579993150929801369230609659091385394130583998026370115801763100965374535146478986222035153380137802744701132409110267952118672430598901263371873176852860455867240196636314557547273380000276753829590861743379431386617485025110933270821832333037395298560663734246897137979399092026136662418314468616097799738140392880617148696982675369436917313842503787345514415963049725412143541160673374772655838280068262945823093532885182550278818695069603567871496088725216558917357091936751399235300040529654718553508620903039496704420555439077117315676288280369696231611371488606432876280913217327853877767714961793041815550656927072644376620113512597527195677464168296237250362337888290648990556739059697773652969072204242713574157193155726040924269958684601579879481674157166546694790200592823428940854556840811270227192278022283836548377301983682869416986075394318634433553241705141029681797263243938101973027079547959463889404400712368165090449054913909038639079343674958299945270432915312221414766804899204183935107095468355388459299832233351885338059940945622393862899557883788035799338608609034129516731531007387104559731562267791379163171713726015849162922041829030461355210464883865794133415053135639969171450338315470923402647055343451861531790609308618366299273926479170421931893369224919310064279203172782058588140150491516564040429306234462945884980336088468470978176376187021927636582132389078522690201231849308104713929878511741435789720205584041497444375440922941981459610623014371854888057658550937801341143475054547237686359419482855606342230482835517804307981978013083113313977303114483669774039297857947048718945073612073452993940632903283886936255273688471503678238126587535560524717957513136689886119918965805280610296251041580907558120556323101252798697310540007452578375991840394115109335352904157206446768579353151172760837529216827641738268058537579062435485864322318553737859933808663563411331561351771590967592431522800122300030003636338281376286452508358966192397063054225865287998119933982262275858534764910286986765524744906925178282183691092397460523049643047931509486444186490766006524672577054878454480577842527223006202663851459133112226407880988095379723657871684698310817374938784816066651112268747649350401593842336538416385523976536468216667929972316701272692191597401700146224579853408772028415965769949175043841477176177213467188221663632700227037827256948813668738556058271069742269972305563660846729859778792153948961818576880707321345727942572518522825012848175817608901984140861847515705054073975643071276991897622569138995437510078531231414610954446139853758084382468118520475791635227759442704484826528256054842753268662679583441030749569816099984954827781448507737854619719003397056452834930916438158918286147569375748573343228787807958161622177187293107537944108547573594472945207010285819431450500086885913813485174670779018560716073145186983559901326911954927211461431459082104589937607737861482788573097622369350888448977542031814253051517354667540086084129971867879853259464566750357869883548098443894009887058975684699352121397206025100756934090179432795710764045789126543582956460195545083984794885635261766615095770745928945026139739436033927827712228093206286850835948534850881626167146953979247560191307677067892844785376514763849174926180778496557474422041844070993361316062486947394870547251671800736125719814294413329425776492217851743231885621488634426420214932423754964478891486080277114074720973554692763147550242690668476534580266674103200894050914342333799826180170531218799798383216609033958113950809050516190356915359180712677249321549902365437378470763229167506619079696763069194336985222903318551363850508726267087671304592151904057015972586008219268891783578176526126647448596446310493782364590309030221318602464035576021393239640158331055664164950298585378497917179539923077491857225749810708587239009491723904447419781150445295137650971822224168938321745440120990138768424049806535120069562104282082351181261373104336742854415014837209867969355473328490370908270876501495899425439577579633753577088082519451862431884613913295372658695989952873515132606188368752752939163048465029283235900963625822479339432037256853812008793129316452167495381464902593104003722497821464646284937087311433739104655021342570123755986589788954081027574058516729199928468809189768721880202047334737245208477743987566826296707387176620230887508276368392847483145255268384542036059590559599713407429843335655567488936217168008250483832975442629515487015360190204379357417579059312122760720790535939374879096793571176425730799103437222880510658141011973156305086441358200787104196798069244957818470662979413168840313939517721140180550017280457742038441464493462424396287138709925484124756964702047779106970061198079037434491626449515348250071171383447899036719019635477199963296036113842355277140597079953526002029540807549017157337289849142154105770831433831803877393938859636295696021641574090524590642854123305155918067090215734637444233291811226905420066223933703414721545402908854050455339826862788862684731853645129231174833196442385686201435399822929057591717279283641437257637300507638859679721666502158843607323490808558375456871399646052370239027945464099556954807093956689312151303778462277933316130083370382816104707416622348917003798281931773868351982450468845432623683113132363444341761211752950487976547761170821106304572532660982131617199132426185611733529111898394534814834001481485872727691353056184625932674606996756099534421366125996844056022424565747673243091595952813433037901847320869682870671590062065696903403750608018103442850448618599539996415802986454267790536465607460892810654735642943491773739285928607861070712515462226180097620156965436032733046353342758941598643785658158366401332891308740867299038200780273959321091447049378400876136440446631598619702125525083574995092454112922722990511285585848336583479636673646379481731818067127431248212095200897826638207582540464590753775297650937282230318072992577903072381486152531779643112920203727259809669427383202711482990016169091670363700987450182534493180424901589667324187724982044693201650502595661962729934333575809795875016708648570397287679463776175107180508845587470486470956757665794679294140032883865071522486331553669061017399886322803114638384533856986528896203664059398356255402571952616598967567538506629717763021286432888941893745332237115851978123662431309575592287411170422598288641986184521612461148242092285268068281364453102987058934648937464653894074297685085936652272738503234560627075326095790333183985624688016761183526962248976773245111096232224094875168670171376677242448125291710566518780199790433256469270274770170056463760483330808294767255033907769384356577657485179592059231388762998944942783754259064466045309453779623806561783965519852255690231647680308715805861161612015578094417660520200489408846650712512957444697714139749309813080196158254769997846257552468235692785968735846511688319864788137113731254069266998195068235734826279992432091065446463131143904427984765766156448062343855614432137323622269730302152766700770770181910277986393418602892819118995525512009715033729861398518469613047711910009225287829412020333872200341737083135986604037214052606210111655540524490099733527276925604756773213943584075988649388698807169575050865621181226864083635063947590708228811336038759188242704476305345733337332576284221018375733453921603561564982955389642090653942635716164900676082263087449743491011993328506141246344287098107941423544634124977491821516820611248289958504335595611624685201643902669959529928649298756025259740060404251504910760116237657133759171063457554216941875538122354872762042805826418767543119427452650185801967122313385292017147234421485958460991353327077721422705590927692922053865803426695553072154983151573665157076099347785361164696710152833662682617614655987728630842475036830463456805110520469231286301649536339875329049559698683829100593242420038081372825290658838518642440031795404007020489375815285388212721112206277808619918021860808499701093438297407657308473539401959812193459162680906243221706852788060965805268211114137997636290475923321284839675109466151927084597268835245571237022626716818503488343180352423827664281211242391539991034887552206124155880934866148774188203412019012526749977481678891012156508095883359281470390820538167887209646858452299311489198263904137198826260010167897633375184346125638681418909346501483117288540446668389586764937603142646017589683117824593346213136136679346117337156883782509802958802842256914767246155548506237432865251568275624247041322536047169431324606583598378104972807326673000954656441956618010126215119520407479283325517282671424117980160663807740279721922188113460190908705405090117764229067523869382742632733735364805233332024822091381173790181354267972272676748178804005134150755539448167706370184497196182075529342894792963035206682382541302715554436712308454739300244227744468018746549158393058466158514709028860216400028789009634649000227213274923406902174844371843464892061314538753772257555308910741109681917451218429486034001159874521051562142303105512948851376545375152904009072280017095303536796599038262028161087287183501219941621500420476175482973680834808426455029290462660992425639118913952767521539711437503546382681536839878516065270927273283838697688123689133776182078341040117696584983986712841572999119529699225652031916038353431906535675764462364961860122933291981820375389104833310206380662737168196839411645938725721394729290344473700765578485434879067534781085220279422637093601217743855564285009749298953534173317581101411564960183077669522552308006335304540594911297646424788215536407348228438361958869914808276306158448180882517762919177009214660757299142132440926417127277436134432314950683766666405546537089316731437476409295007144294508837157560572688042764077723476379148004173159538814642846083579371397759426855026000774225030621964691420853410172036861189296026851614533192737137778329243936520340706643224619372993825637900125455842663151226211882407569138813700875212695536778692339535273240750220817713599392675445080147588956899698572534225202757503548127753782583902699244155358215186328788755144534580044486041492092356807490585014684343324106886030596034559550532189220611995976589014425105785640066071703180126453666765126277945243137496603332211474358620461409791775786602709922609549450423164405018264215872307516729108210300229606682920368440740912585414404964410243846602567786971058827749113858795127694294089990991463144528121055851367047952832486628301131242493573628898105084969849291904282543122588667277336565783854667336629088765831440862751385863244866769514941210422558945836401093880780884157763395685054163092268128636366656015811353458274653460904603898327770369704573428873456128817964461957107047817094043150012929128536691182765889778708652040743014933109531405455485011771308303644736494810782697578673354587331355923147079083121733126467837402564143376237027642394195213888970122983980269522112549987520443673006226553766841154824099229973337974753519196265254108224425898161221270355376537491882567434977076155527258477570868790859239061025616335157516489349845359473406977840414378038475877238931592567443162214577799204603480887211013521522963957454855693804306852207185943789587050896647958863179624730254365196017759989454744125833012023532223414320438119612428868833193491726368201372154932012907322902553007917201630087245556432326529873060391986216669907381769096247244325287301162383982689233543390726186096399989907369934526123875857736393326168593634460619574437491804748985867788450437729447285732723379410160849130520518457083203404390390576286204700935555899834761780894374290727700021093795080462699083287065927247771254577187966631219005170429552694310329664061511083573243799322610649145687205113367559101707838434993998296058369671690101034413796171515080400644814861471103405563239958838557983854592646550794111771635799762558766098344735477139347787422155605257299365675989612690284215515016556531114294958091230436976954054640830214191785177489633018854444431410731762840167837690750157837915659780840640026155210318683122025879851610050663201352515888550314246820728653764848285010496344351596498055005837355383284449657877857066952220712741753951354166646726131445937443497534826092767027719792625941611508530894478731134177917950394520964706022215710820454383026203931504425718407636035379770765009933246977237618329365375640304495914030710275756107718297811488344926586037192800990121504991904908121328534006730674028873764074504886670528600850241339860257287805484655130321741211095000331512030577565159941351876533678340553995469893660172735880827759830507830716419318769468886133471721737331117028997513607979644460261208602334401329192715158907948528024439179439155192547134005969612522406212205211363206907231113205888121832905968481627821600221388266673067103053039950265979999506610955332029430098057829040826364925082648575689047237782007434640911571152862540938841624892070761776164459167574643238128980261534385131802986903426001951196886947326886795135531555195780996077344849411098457591602399625007608831928328875504002641442215768506542055179672744267709808134722294794846761655802973430241247206939670511738794587982184392509677246295869931212423767463411348252306208378680151604350529779460599358316702461619043489843660674100190136739192325421004539012091324721904295485452831669616936731489663563313756959544307904455725246941479740725761202584211204240859039056860697499487405943107284749409197668461605338041112941156228899343054385756206982173760790143420395440847625828044968812810329701160821135210830737285536852812739790893464561882741571654481549486398747900076218367537432301774532709933377104630951255226770180164026190439965670958899179230196398316270829612996368597992634626300300405647566588889385047353373545509246413948855328124303035892288210262788687795100287770304916867528345180800221461141812218288878830573099129489323716916721935218307770630989822194740187024843216879232579198493215652963817454687019954451854343544561809845099433859657069744411429091567415783866869127551998087927965711508589249160031247523286050506791390698441769099284437631745939634085189581950102717160107411217950617185672367062708491592463836846886972585248115282868648036968056616981625289768795839763240078612423924258946974272078150969453893316954997336318175395149877175189056577266947933845957647137605809416731889566214690067958750545790007169235210237364954019315034017619647751380240074732456508700622094273540699562489234010440008978175148637888796460146488069616039332274417028866541647561642252903677398463940890826665731310213501578524204623748125722353271980632468905073348762677751936619987406472985061046338201104538058713516735214597884982532520450196442831083036209560304437037581662046327502878422798636037862682712485497006946699832044292745783490273115278951410948642008424320856750651046679567050651815495889693986702369472694626799200004205074693864445631118017476289398375763030611736945965032885933186462615597665652973407987819714437129872578222325386422361598661330938683570517244062838624306909951552027326289162399057434974651556948691083796215282331536795019663152103946519491515075071693432214172487371052819003065937928360446446969198049287786159551241897270853349714379130013292749773011648322279867598731891961837788402619146472411296647734776274086621157644101021760080012292300782496595142362491595245294235843230756873061591735987669754712288129069297704686414717757791573957611248085944207532616443537843083631763856006960021812444394569985087602732587327482026828954499884951865171151817753798706698777632055623638956017416588583256916018151929340438296538145173490921179128587540252815473967853914173991657915551144183539824507174259924641155111396440076280053444021447934850542097858310051141254609145286168722771265973077815936615753793485436021354518284186439313655347931034395416806604379269762926443973628327855087638474463963140248907971372381943666076743721402491189298599410697856145611054682881983498137104044311235361374178851894232726877735092319865302823210414423744967649250194877059061494761412947146409672275744567941223924071012709857783604555520054084544018277436426917623913338360189082042536447433938491439454729741022143573077307124507153437608708582586602141479847688986218196626939349482208486247647446775279524393648499938653075968988998182682726962176049680044116464018656625105717714893798861684169620422883088737720101343986432978413628974318241607918340033660751334432244257579302291187485433428506416552225611516548592455478262679946838992597976060958799287713518454429646165098169709099653578393846337454991144154049407125662291107469344895832107865109411207908948856870553692349873449806186447007846599134166304681657661986937957903310958387971635288603191593517835327840184855056251988002814850944546266060490441799025738400408594127884064189356113902364109448650971980073737043133885262314813837272137557557670834311404696198487779121301454221539836585634303452500315167457127836683328121872536209641275923658643116675296641519653708323121229872338185636978677811872204082656527147151210719599011011040155285580855259993067858414023520514675220105395224804431465677452352206630264366555912637794943471749282891121718852025173194031451250819026103600007121243787211521575714986048687069092000257548366005164183592125958892905390681071478527261616804735604375774268286736178689465953619291614245820366007122563065914172840400368384167970850947901799467802599255889298453048658938069212705389415373633236735392636560619844536301385617048529240858713726859203942300754777387353258149250725783261964557872491212597041329308233786073988535280366119436073732378720834288780276342323918572474247594187487553786315314350169415859359017360414131147520023677073464632555520479227945765868205515485968667468365352776354230895146702317572615846126811468935752658803986011662695941660148485255519644123598143722147390654851991388940005156651669519046389155238352385251004657524541898868287536467425860245121656648198164650173323786483236225225406661225345375772588737118722324455691395678581949795863970138937602870013307479613380740816085749118903219370647980073875021711457789971865006128977707566043097825824254200209247476325170278158676575714455398414918796987920011550529481527869823182013227787394932726418396487756791534467161740723389929443383347301554856949978291780251948030100382121110329463876549155678466110248352793945262248327185611320261099455554232041292330403678845181061335356377442082229226050984686375914123376684693131722908838913464241764656551382636335131156885726708220316872942962775793554793524548615331692211123177920956737158947976087618763741235611295761860584395184036112466777821884152052895853222449171541009317107556696873519315773324004516201082755551855571423222635759876720426780776709986570608736402178437556386466185862896578255964433997622233914544407991419230597129541355073888863269186520095989995921230243158702772730097398786761716206694117386183524234240458753056494538746775266872580580144643288934968054712954687763224382002620754300050667036234770419455990870581778422994857138624462439257842858656457160104464628624738621306293285204741808616680611051581538406149461174181841344385282044681742470805690783419326445050457241737654659483795962074778478914151152754812444849759324622853592774770071910276565513577549158762281042420927478916375272692308859662093431621307465572342064799752253128539882538433979752872531314425965306937478472231996342966283524863909036919892786912073780427891662375956543921363567428652612217551069773969967904621218843200701793646111176759499627375473830091681937612384129699462283138495454878978972313696301932214891403556844946236439457460493571404635084092967935229731243954173214387376510263826971873957326128914598200240846608273520276873470117330533962655069000412492932230970788945580157771354696509591967025752724383962621210418164519459961637971516901713502918644627662903688246340314804205356641368750995983191033241526179458746443609233209816753730989355605503770282228273688739380539588516988673339173711806190123618529624855712915520446026576896626516270810016025433366318862697343522381372221364118219136797458570922386012283032722761813970045746131102869923723470968091446101117432199243181424410534215350739355181991934310963941228691578351884756068559945829253604562696996342297032665619685100032379496568275644670108924893543334367838716107032390676847983172520738749740699775585119817936778699376044096332590063010178578066538185996574757568824861468750117252604463028865080804989089019393291967297563674207294744228912797206131508651529059412576626656762656439099019990602099983433240591191621983581540162179018591598037879419387215363291331207672221236420746631083472206801254905497284712517182845500439910550487096451344591403229137827817332879126273709105680719046863278017201620254933235540419703834971679163422483568962153745706820524199480910087768877306206975407032042093287976406066666869634935243140926123608929302505049928821753606550261818086791697985116178196899401208628570775828697931042250365361489212898742198542160624925617039035179644243333011009230304646672447029197838238558827645656056952807865926156663385503458969837017401945588778155797743028840970849826765910556322026319122719864154369171788700428162260836241761983664180647350298627645227601702083675636797839546660638272546426324370158101940156167841648401094677448191552619026931946832286857020499203231253862644658692916742792309008328423476722108981028892046933093922596623533422868826347578770289606624301740774595335823905494310774619591485598137785979277970224149200521356654244160752089905706919381622844088766506505459965483216338612066298905028532831871833662386537514818565473729971075528476485494838379937116211369027841078182308531744370270457999790042550310698228328830070127427512558124857097666653976506678851566107587953425213474976176566894602434648323427506662329244125394264070100121043775484620563059538193309449589917733029429349281753694696996340800477857624162623200757454807949756300016124390011990986279922548742139724628356367950782927794040568763209881278220201779657337769516121226644974354291160277138625624857813979783625367205368669413492563917267241947104925099167764463409605464862371838247044017176741109692736162932787061625315681080584444220431475117616917155829795528333191402478641486151885017325393330322003616012785211783809143390772982801259771171573756043168777195163765016768987500370494457981355960633066630133746741345201362773446055534657666126103307191634792975322067466680061366293878155865062902240774490514759018839976542420694579294890116788128440311740626628443288300090052943597634666675313417393631351135285915629714992961272741614892037526702558071478886987990781174250872598891130418675299475999615623361538508717936078448485111674069909987873415487231081378484793287193253308167201869215813508427340542358301776577112902027426325386248767760750240074866917054109644598473607408635922561049534279346300380984985856342300201386983917543904354960352438098603454985929640088887527410866010612091575527536550851764415252576852575775729407726620213743656993757541888119224127128342946197409899111495706815576041856738853586352840678483917295902866668652814724669903185313035691738407621205829290298404501396806134112593713749033857103705937298473657535665121060223072985212467805863943908762084876360750146137591401744518471741866334868804958107449399973610241576909657939456920989687899848680495980417148763506490325962713080279163393421534945656634748275192354218975430569019024985774263891925522490499538723024136488428482902390815930512070152499032564578679691185209843908457249991104809868710377328864484835009039541322581526634959019785149565918626648487073899949550423875891540216091181089673010244179686070464172146168042738138149150866271932130131624333408677632303812255900351027771033058154225925030402024550040019259369133482174516637981512209868345465204093162840636617421823061878098394582832720093841657776293894927834593110536881699353503867588191413588900868670292447557419474791485416252327376484473488759755238900556727908212611977561705864775114403417944451060781375459195959763370436724205843290148202921098033458376153854128052298154242624661302037034928369992186027757331097989661653702972337385300957240072035253634050653985672897193538525598017272273489551293977263851943268032649242751201430492293737138592329013974939503260805076236693820217332027118307297794489184368000758608767679818858943763257424182596187846758256591765712196530710256966602034387479896645328663212760981575584821488622403179325775069632501077123822886445425113553832754418832214171521961540763814185479105581269757348949234348395425111563670407732243160502566297541516397017447242113909325274419599781346062470715237994683939787010388779443526347203738682173199509838948104818649629565304321008679791953869304390621808640685724265479307344081684282807118928546810033733275448941624833363522669307902318678875033724406663329524699154034185619178737170943035300584918013179058976806076339477912190367472308439127276963322096006722505551455182267982132185441627029824507795396810110216521611280121007584860159779882332539507786683344348572160044850502881978482390873391081781316166607942730487462310086322381904824784411943349757445305985468178832270301258945867269365832837527683370671015831749315232421982448623620008937563185090351624375870245683501620259956548836491326829416312023253086006077182821419591431508219760134364993219954701450163630565922920087148626606835986395744719093312719746807613793128857073875303372451720522162885546329676979018457922034613612365546524569988516579303088966908844510713617771006550780258732162260119326378413429825784638717304216578351962562229623692918807360888991841572210389829922827626214232474033658076877843764462931099482360392595820680579286045616347708552464801372921455595452295425063142877049796484551141484956724089106294470815725624194726941237319173439556087881365288999455862536724907312710210279012465278222600770751493668614720677855571115160489356643496453803070922623722043936644479473343109052514894383178287698803081200077234256388645875054984999452778655053164012999203498574835646255149473242628290396617330488481467874428287760788831619593802886283244073487109042141143765451837117716523650642601979627807041830466435337583980446519817397516080555002939392782043168297728242014218056122543810562646019863996265761749914000748675499059372524567397310731064774038534667511560287658554567058754877629906618332435604286130981439086083598638083916775358653084881545503372810735614559207419950771390123077024760607856407762120539796923230681378000421828516895979421038364257817231834603532358503326773612942800958506270302288050392485309592221290687155853993032539990573392589053786496390429907272892420002154718206995417172899367760593090301878132729535832583371712583807992346375301409776555202335184967563183698241516827946336652927214313302815685087755377972724224388700162140613383353612152186300440531247062454383779132572620133995199460693669122542113638285757403680571252443229962595147623284951137087363423764221679450066104457359405172677354797545151895137240229535340425775783192177258975031896000351708578228178302442594580874511299739721725699885660157102740392052906324942042922900370177911422740340114772168768197589274650765524532162147092714874104588875162102757586555639793020751808498897165075882579965089401186624560019830048945336912267022472365235726092742763662607222109799956272041432591287121057538373604824499542246119817463300626878667779758827815044606791203715594955744244227033561981732393431686160900700923479872806682241861611009849294542899688183319189318689159292832576787097574909303577201858449076507167919713111465900387910537041661434084924080659682119122113601974910066209068435263537653665996755461618392258054684088349295294292585729731111105062707710259664514596602091629183023858956028603930822176770507534103999446731517748441154286334182427513266028648022927584251753820396319862156361129702871368793777289908056251322326142423295720032534602261224417740960685656806126328050200248630262978335622552655005592558066683842031707935791616451677818691908911401311679578425304359835079898710104775658760264952329919494227125114291969420919086642657139039013840970849444574214093301972496934273567521764115565805751765055773817865394945726384676420511699308233085577917545181184921508362384500523030782987527496342691398826921549046419480639026400469135544335783824946022892994560695875407056017183788992515084689936070881725465521336202081484675510880771615418335407891416340978274164639393424440284998493796225748041549856911455243464658204958196026225417801908684521188522343273421779152005576171885977740931424596533078014924442031946464775217600065105097316716179979529854662142946955079686027164173360749777218459943185024657208967682891925078659223552684280544924504293155501234131653259742766410243627988947675743851436816059873045096253219465427217111211699179385051129798192874961286005317614861920457227411600424753218346077394133252931225014412973596486693832897750198551559638883577932131609941824152242330860646040474485001091961767104812900684856431629798349172173116710314152613594019546323965715929052430554454147929167547987577595290642327774607888367785623289635474626526352437934346127345870218081675546140257823342094839134044350785216313183449703781298350379741367565160237419447114325442740313100806516075130414796255412072646069040805487197521184646176888368376763882127080382611875693028909001123984202764606486814371157828623966173368149130919295080344998126612372443900363358748047765853805020960464052791681926455361285814032438953958102365023257380846285195915592770907806534852590510695382289719028559948436473980552304133617426461196094100677406997758149803443366093538551048494668545676706285776648479934160012507905747377085825878438029345156231736224806522526041996857664022652040816649376268953721980658287405741656427911714898509058593293940592296410829023855239562661040780958791855274094174281779770382542359473937359769258614717289668458117302918514847854747216154012039028946236451251754407982847776276728937827935834331664277559343882964042525782531350465807620650716718658475830349239845987561132534216689652272357122298057092766711255632982350783326740020740736346711203947742124011865992874835740713693858895915380344311706505633359554161399501053293154644771897794220228346020379336809269385959568257509097757703981316951736147251877917979713724362494324968263483137021886192294799712803804572012058467906413942725874553493198846027862592387639190603044341769794139864877615883209431425773204623541012413150479185665396006532626468305085683650932404317006277536490202951256004941939090667689311228707075844091063161428529248870353980596774144362297081224968369128225321329534596828846842383185074260222849786471658221278204693434118756378183531351607258961823347531353855257314270801976310346986403430097596620765620266611593843649545377656277234265501263392817155018541509869440202191289436440659087252238328495509403352465624855585471013332214443575638010383881543526565471903163048677848752931201768145022552208704049752099374244912327167465861949656682842782084511001939469258089631680567650262551558772095290670912069596779752408819881334001927583784509378769693524308807019496654560696170945457373499978923135968322822351040387236687106983413410036919859998690669333673906229786319093498196567611718728195904988638749590556950314893378805045192395444175563177424856401266376179555427888051054780201946332448577560266173805451228550423053059448009165824231838464998900646070922527974266477521514566353156212044215422531976331716882469817312822685121456829906609100266370700665757489581823318268325367553522617423176953982791310501825514495449478763237505323009214184219335720504812070289400963917381529684901205257931676741533532614801261189183940181866960544120091292450590559168497765983732795979302612570968381563492055167581130414854471209068837343431276824868183906698835004085274232256366480945999421301816172728674536479686003365925160774806102822609461684168357150749040021638221323398611677985695242916840336625807319148507795985829554612002981353459339870743974844022447325684389320904340223476371314403979177203497252976279710391806862463092044828897798090982286079178258010662844923281464166205634066106987263203201309262670261028360583667769813474350570594133105428589693953441593507947491961419663886817764117154052313448259662427241026049968279555437002961323720083478737799673990298266243242839316527825357848036918027087187130865318047184795548115778301778699259533659793484941224472129452567891175672669758857179630947634143967236500878089706000473733348337411725190963151211794899638108107484308428071632798269861682598571302268862335051461656654517428956382627813897267849792146007808929994398355319897539529932362026442541179254087096945819510183247754709390749077375294360643108057952820123686432420081523192805688440299418991816860031990834335573070295880491357727436061352800221201417626320322768399427020542988781151932324433319211016472415917940049326633974112114341160892511062494550725034662194921563357515003889070425175148399605177033876712867030101588529343874522328833364692116999586641095849036915701819398009959581492078873299542393626988229804127448513209476359538150020571478158413575487884193587282300112748512829178475259656232931943674806991369589719946597019273799322802893384012922769128135434627320529699062383322206962815096304255783448888259290082491358954243212598692027875360832770367419281734367600609824948355894558192891814926936716647362603777986839065142659354446568542705837491859983935762629893352764723267006215089182255036561846467852127836538801629029888558863979101675351342700816366015807243108007313161675035806787703335205919902700425422003369033231550098937909545320015189788325919446896716454695835177158627142648144659059109141745720034631749195171688563135517812122557049694363808464899404592616813706160831491909137380935795233949970640087565548310098743029892997645749609610011617287199161313448023463828725427767967095207602251967220871025309408607281880332841254362381270467933582142690496918293889129356038029841524780401884464216501578066795718516715688344996562378928879501962044023208386397111976255282334283368538624862006685486935199514299997536380567997659567539322014335983560412437294621362808031438816253024759412368460266435587641199029467894007367931669587848639107330968058508484370466676164255446686270298911214468344278113798933938725745562185669672713270493714961417586392776172350303693330994496816397377680594416273209744458906088196434734236122008911039655516278284383235787071491365187780555179695913288609503941176797589008203703080570970261461631555602819137380283398743965305164744591168236536253047392086840544046126535411894341572433244950367617630864077372619594241376389493049244211967310124012120969893219881085056153629707635767448421140952772607127497913763512568637687758893926904152301429438971599926272427800831566694257801463229576062849822524684203262480263562965450251062440549768372264969267850296950269220467647117403605533805976265642399002426311141832124166731671175912498044960925236974030637749447394855543224323486523869429202745598109321745653323530372145968728770979986086873553608206612388944516588370887044074228851767032578214452042106172321144746995771999597203702310159394529085933967792939913283516110402772301197138839908341891294771212986723456807921553113080383740599124816878441501059903123428167325306351290349245292922753188202787545688263519978863482765632578529774751613760109229535058287884260837465093491186411520455239431172003901264014180991890083828970619590018069467848406786606201513636437088176892768281851521333489659821169777499790914433095636456589753079281512948667130817353428826257427110348352468542053607048603889831433766306806410448193549227233605426696127450697678885821875969006386640011202984448740340699989117762148046634552090384374738719398246466977581596940856523478752124209266680955029338526630512913309633334980915081996509650669825895049453807376965754694467829938193450846536332677070227453231561411748879159279675413704819722574771533492431053318944790385616209713622034320007743322759039021115617644493795849586068320985986628638987890460058014381338180752060369329538896722262093781403600354013251509520987617617499071021650016412525761003597046872333318381258251296826769253454217637662905700617965283515602342131529216658841877524071666141780292520174723684922460719045738699750338636166009284484821750269585321474192598510174316411968409003260967455068533599157442542431130081376374694673420671230794584802009721144786699554244458477441330620053170879841481679880047706249440161567517445628809706628092808513229305264683558098143674772184287401426240276295383990466130814024213762774026174164830691206244877254461832685421910970519014001816187925966748621303704785241926142122723994266083532362201314355690819355123887136298089057215512763775457332402816947920907327053795518462775711023219348449629446003376736629300212500320712495838588741897021634921733682323904010858332405112025683989496355138477731689987368918097394977535168358883365581927187159397345752236616176286115312948834231523542550176827877646115696965014632875381819015864592423672556950748915571639827400020896104663863896713273819343089392428883634985211842238383254184337243027161858303790776297664777823247061956368013437390143959950114305373506475993380386518508671422722094132598915519070453974071116452171934953579617655877585743411312402619934205590477170474447289897514091145809825116108638633304686293351769210642128597605876541062982867747006013523214226213368586886594860164130651237727188640673031516476033735478331771898242054833857795162109057873061956338326279083619046754226100718676462249000395715967156743667178678957360772688047195667870150838185005168430993468525516815884374066480912466004047346960982445264144904965794249949757819662226979329533664407341033356117328072556806798645442115519453020880719851812551723087755835798473006275229114748550629026096588514735311690802056524317172664365296660079986867473652289773257135640715119399805862657182520132084382498472080138460352314291090835989606644637863462079300048304937626938492676024045493081491303783155707344607970202318385334381546207018185806968508694166607677598215133597327669247958270197914945874811836240643721194219100680298366759242613496114733944425029363706868745547924665974731707803745139236314578437442804166342187528283408610735816958996377809297423842323679789889583791236608825763814087741077818627039455517265497769488016969113879975956976698283386245047366953440891121813290360349433075718563382777099344410558264479625364155861325061050919776000630242200922319476531838507931549452751175734456593267851799691399530181642100344699618604016882407247528776167615685623412950435350307026827140908870022278550482052411676670826644453325959250322740221476209008007100586729436895980816746624626436668885998370411847766417506332325464875137104206074662576148755542806440945302280700211382090662274140150167640142312309251836371086035985900389124766541852184645280018081859009658736245163354982161551722507113909620358147914679634836151627721522772693410865667723705924252928685754507113896956944974592537486183813774484271470793774906847985693047611198164902439519868624849041268015075696730146833092195642463682210170753433219780052914408921238671998944073585622707892839502391269193656514079239693019951966197321680271440203534349683527778982004969018094977626357407922995361860578421297653116369603693329707436408460361491010795513477805404821964107874124672721873318783540667358819105021662277823266853283215356452741914561921736333356376091408188232742809612031173213659462473563557995573266463055565475086450484595514126737536183519496564460805427984070119580889370670240394432400531672707232107778175357949774768286037492415848525386989811370181316795572861998411532444419607497796094290395957023280593839350777468019722621570324469582562295772254378089775920022807882759192503640008458627723945423808588572788368301800587641055830651429637576186164835446849843309100896089690769530677135047351419120600585341992402746571709467693477594240334050478978811183322984167480962233379800497869343956403755289741220943450821769718718801574872474557497815377336242978579416556525528667472509285521793998478138422727371950142699979359614038963530354825288539384484724373395474866288478671243431046949905317792695938833719687824545885780545899765874997683527848761203043640335027181628441858079449840726047403228748536527058551166383030509717599242109451296474043947725659859124072887827267863529992196088279171353471374018556909436158900908100744481876915701761070540888472333613230561224928926240113019831919960609623882926697453230474345734585574995463200391173117422377160327830110394259787513715520342091563063293106413453092993639901218761475368375547928518875432278730038811538630152243955556549249517754685175535047145249354175784867363060305620411718491595387519316295488965509730489629158140488024904149928681740959050807525435791174531290904785091115116726139255997780477455535835270269549134583912917250592335530603929020313225979467996040029274773033442998855009790866111091498079836373709434962820503043935658067957172225150537417591764178640608583633803916974339405188301582063697924622389500192653288430525372125286753137054548042761744616406643347015470417985572162424565233524065561334572347644103574365991438466812569905491907176954201742051774336853817400228006828605704627753388183012610046163692836936985783733817338472132557137628953426255414146989856039068062809411506467905935692825579784630585594342739200359102782552767027959857844282819845961948974176889103034787357286352196436601624476643305580923854099710622491802320065266054408288374488143216531478152265730760573108258926071356019211063546879240808046390193237632630451701035736278260689708807852185390660909053126046008390848096510585469225670951049230441380376539737734949514552209793330624049794265270416103346468324458961809392254248536756406217942543121705054421106409161415816154896618873545571342645162860442810179173040333416048484687881236927817677760344115912149015043446721003000455944975683595979168162620612069838584989013324133627990636721266246471733221347573571142224048861864203262745412495781610434630608898622368821719583204524890031947818368452033925930207293681649626511749434586411347333414330704439069318851988975949915577207372617020076314130259047508751095178832606400940071034573973273588942043958418375647862587832283871253266921304071892388072064105034714699248231900130824912844891942266684313698282520936897775358608861405380035862431058174143109343566793971094420013188335011021781489082044614540596030226633265873338765944353687530129250190224850446062406431798444629577191628020750063952574445958976172074332617779491057003048067394434761753581629112523438198563852178092248757020069322621559381007005180836131949488061640395095765565035577779953126340482008792253283168791574765841943516238302021863353486153940890504220559034755038141385046230217618048318625732757312770504140158925299298814488936406265956609213878482196491548054298058604501083973594786610965454058280840246985700266743718939249331053243792906707475588398061197576928361953370896213452583615449208337897688871177714191152062962610274762514887329220381047083273870765713057248487970898129090663214789044485309298532502241310340609387593223228530403808589702001961521605273100159705699947003430910238832009792015051486263534029949691678588413321780076342922553426967848620537411315255677509708297284905190746193964959510864970349887008962263362646661873551305729379605162586227000771623661986306351846561503224279340640541010797643603401656337026332792248124851807752765760496581725633090428571147529499213554461198310718115039774755250366054511963809970516249824375009233029932634733072243823820665794278572064629066455830345278150013618582962693574535351750014272911112194025873200003435205592429937244000114871433565112013300384738467982665267227983333749530302337518502584339328431433887271080648420173472915272332726147639868021541975435940631531544750676688724153662837697399315020446199987468066964910344509563812161163495942181002904488044353710520247118165879595783694186526044670710829959114901596421619021259854230063977273575029377742994488419637472739346513396746751187735507066760224089198545355223651063520841042207938930517274129391409920309981144478375040780429303735926728529797793802978995487512702954259226326290485690637285217414177183063540373811316254941406110344350537007522267912602121305839054530755451509748831746331073840347887022122415903824136812669143677610965184278017851179957739829668480796175427040722985773448762667672328846008347780119570404084155921415347513663684000390495077228747676686992195582622497395215480100121829632924871982782895313799027423012400616268672584897861552596268524560598064602906642879405032040402210838505333700669756049698176872933423651505144763445707096085280932633978547379099566436594584170233608121370218921408277417888549607845339596203297770531678436996526420231588201934970390042016526340501829464747413580288725778437968654425182379441446530111658127133905954449243960971714449227866820985722651269964134309497289748329691292693477622419119145434463885430936315969320404909926593376391455269642427978387603747216994520312922870025580539713489518746994837948684560326875013218719729461919343187772136396330045099984620195265837314728208061941880550039695685164024725360057367992343411857315823275725008220058371767812443366011300043936646081328995429866366079490401400860138442703348064332455838366916912145346183802517165361155985121365730242368110344171473903622189109503468885502403752647215955493303826986236852423992415044854527740437373895109474817609221788930813890795706820816004188457026523416756387860800535809913897417841869050131839013290056793537418379347457475181517315638645561467115557296953441217203874282101731307541002115749845703524153781672365974138173754612172555631006844456138277476743556073377949632252562063600950300111691301086002142818976222866416586825140797322961291495798006267051508147098097347361837161730752318693294265676333299577626122933989473762585850743172115580737034569868713266665095997700132163170257089390768631754751832171658843782569269308731411593754521730861801321100996353973969366237472220475728623515456708655073381885401341828309845155683464434299084663188573327369494184818070624601701888897240491892923327379299672373939038134571327886111787153171496317733381035100070686581437282447024425484458366765022073274548322206417436633813517539146102883383507134361108822803173505393292824750604874683036644697898085465212229219260121687450929479516174190301848216238371944457103821445402933200661930194264922282622789681522152258756743320200987816370728701656251620104793069156927132219716156873951751709590130723396113010633567573784157293875598674855767133324068997869740841127764168432205884807296323463359538779276308939958480735672405049775145917010319895624652994072347038058395954037913230593729698616488889205162569857991307393521678340648340431854929598450356827102876307800717337392559920275360007789340866338439957644907507306349546191106526298047919132536742238544575694849948517411133966144204953098695346269681006072963519467850325677718874100349233234623380114513329834289468982249754344624968351581182720992255444607569312579638200291723086172393460113622904957149843410737930449234362409279399464476200045658233106271853813918133889502092133152291082424355878346873638094185271876534899752292220443174079203700164789111020571241687344791747214018359979119670080068365605135249996426279192328808613870162352462859658946932754152133205967625601673461720903289893763107445981503447111521856284192504998495698951801032849003185540247437365059920669871060795538349266346968863652011825291223275863605318029879625517561471895274824404262244502445099901963187280488527435950903216119107632719828197617503025588455141676674016316201368322799968134215936268320703773242927832358726981889012144672060562255143435942742143488004083709970134748688978494161273951260317394438725037995279203112961913138274826793542163060336459093807367028241429958025144498849363680338208608903965292043047094448986644903845786498518177133877568829245594175670992650719528132677878360772586204805037280497296695121684773865379586050265057350644099483993490813623070093622274048824420600121595716339002680876560003154834564372015008459699145997126454108560237269094592862164784192982613279412218839416231427742241017152777786459143847676186595618408609496555258167934838691413357308803550209406022865450234190813590414521734535019596991987799954425096176536581472997479491479026716039217508587279459467926905548186653611199385160001733396734244512627870869633127416858046314624603362058997082912407259029600106403504065623104434789839185344333123251959093730244696841253853539491388186428306709663227460569107850601196226977997657068641272537393017611894250737039610728680401607510139866067375248086466273188096411131387541858218413269017527859653192717545545892786321653762946630693904230214128184057100904046849899588392764609985953285413645904442499361674308629529176979197969373729940917574739203565874997142804384914491640892688027365326274266613987699523308094171429817960668618504013916320265040158524223719767961887475228755832913974839576409770883301939580672490581048997177427908827479921809261063669795090396025509133019923783021775740512059308959882806341070244024265732612164458285773326359474788950032097719537885927299150293983347304958373634278359570446646389487154140377621416985633854431360687084834339034256548095369873233645588258534183495855458424338598479014319303020421189003725456374071182817109684122627604738517030762633716987404353658268453595547881355404798322173820627825931932572922561879368136731809300907897112426816051533833871283255678617412012587603712017427906165955671624027619166277456045223924582600837747590338445407306529780418646591769052168561986141793395976681006232444197585725337152489744277191393432746922107595462954307698021884060047734122796726494102761850468365961882059932236669560887159168174481780925582859889127148040979743200937988025809494996454067767181246217096909415838113253884358946184738828692736368573240013985520715024851740448286706042335387622825035156246930853710504015629190747913865753168885298178962046895343704736832331198849323283433734704462343027270154672532361563095548626967087614053103073656309596459222123947531915907392846052617735372707743761207607660182577935033066717639736081918901495438013499481767626978323562686024894491041726493838334807590624813193691077596196158205313068415385361212107020049493398485844821481503854796818551114732823291828827705273004210774528594099398274547777656881265366144292981979247977204142423435157180267185775743115924721439439732186445158055311398605043099431441275700235244650385140885226605512023396793109808150759087280137607498945609873385076017364868975192190203405797502242720265761334119775549295391539851574869124306548678779960756421549248031967133414261175093683051749633197111201163885193794299213368768032196356235559004937740277770202891347100023943486067730665604321971163104070531959500083332906064533013768553767907801687144387642418735341095834793662120477145314298473935010112823302430483875223786121565131041775755371397856073515438982240047283383932645041199429269592126013533972372281088007131087309670870023732258770450489874513998344208893795737569141326969234025300169874904801900964573095361489081413094427248377425186938349088365372789076072530258471275014122163077343356794122059013057998271259729052905214255219797945577403857546699540072732390515092223207942255609353753135983697066296833566301614287599480854480994903849489103445416360224823474632854101490132689746877082812114229613228934934793972706557053876316013855517693635827052970204823584250659858001787979570307061783123217874979690502455979040013273383982511178430829998376237347064586010425073762278503510748048433926545907397942246187321608009125103136616671906068130895240333916069184450615788529991052656564189783831091154437307652200825960110239257993410023654963281622915811880182568305848966415252887533570337359585109152148537034826690344552132517317354929600130109604002517210872092407113616399643753532014590551076131271614840085131943170471446127615887264771162631874273166924094250990300617338899589368819769549269561643699968470361216952362884824560203619631063701407274924083654075439714572833857774878898834478205725010885222336393510183105414239666318849313753375546337343079343713722229430854658235537645310584167041837712697222179205290407144751717010923820536431863540760239810403284404996057385907773730096213065660337950606465190036538529940724143782914227574663967069043189568167410788243713286613777252574786166272169888284187605234708290650502929132564620258581055330596092295262324775546038988211725905475437143908018034268176608088684621589110371624106090047816104164116525819505038343241879525029765658011717548561803906091613306563892260204438817960624466063423772394522662128205885603500751397332025634668662673752783780482611974892246601874370212844601038224005369861160082073188245041691662309949369502954782833348589186404642584702164518961874877926027136107835250853667458358073675166778979886726221159695039634012521204155523112697000388219722147288351267036328070976954188831266884122532859216893517930971009468927232281284681198202168891288223880752147752080049046461371650646954502305343051754956247905864865403782996027912578314604842227299358726448034191310239780529959075297794451347742481395709242373810391506419327709921091997937548646085740351794516542303673134398331436245641141471878972207062257407770338265077072358549989000158539431109354544330138559180681207042447830777727314280084557719287587761696273197288820560665235589229501134630783311069066592196965083998389938739511922516349004530944490351678846730126059176304483995389322445365590424236640517927043774492868275339439288245358239890131485925557362260344888551591117540364925329844427830691401564875654185005607743574940600806750532882573408805829778504277721013592223907982064113298562580778993472932225762101479129750578652593298865021424710450174177957641562207960905693745670558989305590504316551244752082964181139183432971748978860186591896884284566913882981805507707602336951052233411383814845227794831950419896509073659593782035371573350848818769654067425298626203788708058086177235873604346107695733568734291521120646305553551180822780618332493967821891497379774682519610435976621671566993505063804086592337243268033659588034336993915433098077931351463179995964457889867582634686168263512195478201863184621716736920542994543663656812112165887916122249498119174818465162261493525837854199525132696433796382943730034189430727999093454913881290415845787682979502019382474375781875386852693253804554574486185276439284909362420840300464848051705494433103276928066685902651282656949756594935842489172050640936979806596373969209720748729053941709513203471594733080103645202427064842532263677704635219938859030726479784609275600911594035385094087577800043495918453293995092013731336231414118713592854418025479785407157301684384533362046818181886561967917411222643181221255848161298593392865745549732639654672867174384034623220575566314731636498296541364964721734755957357409926062621347786712344090920895539735301860474291606251878777700027187100012467660526254241980841575873384480292851921221213390796786331026968013415449293040065407209423360686709885244952451960994582614348820087691562031898633549393651440912032591590578415115086173696175179587035882609920610814429684427037222912692829647193756981067657770858512079387155124651356529563677775901920922454316816686567144002568453469880601021195830863027942098739842913424936304013117722548762931484660307965644498721171979952072526621749822123973952770522458670102471665488377310328749584513643158896925591580824058276702074252134070687217028929664961704872621223601803774121929098298065660078273346254638082021851307834193878851643983010580548852962858538589401519312331404412438700579443131367474208629323297273419372845747121495078596702676589774290607899657641197598692764479856430546696232218082542758831577829138233540302183663738560946987019816970326098763556922452628134994549948983350617865020250112808298246307501974675336019748973950330434896070378009146142579293502154578899248198447728377986076039742107573148946878751286889136620175996733335514317302295179693491768530869965642904385183476252250256388041816889903880367871040237408849970801309373397860624783642645905480704272527386989397782322896160053941508435785156369204429991016434140898257033171759154585427241749423169490452664595000304578228816309354690350498274439871808452403017259609399572669076095845911018226516792667039001406455244171290434669768623811856598782200273545284631409333122754778928368411347979174804100556780099885906447933030144325187469148391744860361185936327271321809009906176710444484622137194392172332905411103092672818643096118716581568208602604355265578173514315283273685385383983775075243393045699428454548946291060093914933982211250599285232316334029390449235199558627628879024939197133449311648342949249220752606694156713430058609551609292052122989873419859218070113934288335959304150562556869619638041344154139175791310587300678498792380610243650773060430868769986854468851284298381503706277155994108141851082575564002563733192618849477710230732271470749324628522450472580818120282158323849302878381158205619632850616591098634817424180291620105941559284115495174126995107514710470688504410686303707578368031464151725348388162796922179776609142514138475806149351594636610052271256841205462825408021535532788482097064051133416557180778231966995150392310001284840997948611750816221373497464656042567807217282618824899749401310799213819598150636368669577277997628240148365019281072997328993134380186628061414432398568022527414824567154431631744484873384551209927240452935332432034188827924312189325390722719369638694336226463373344009700924596583043448105990281261514709071628474339353386031098256984189052234389643853279047156904139930766862907365968282100869096755714801196840361877781890157083699861680883266192672704474503668963014303137423021138506412977325068316844514949285911983640121377488118142387141286007995611389531211502593100077344950545269224063252564071656810203524326009120581820110286717463850776053854533558025554235939410501892849547987546790319756247467077865041742856507783813535291925981962842859089242103845900354695189284790460748145185991095104644318592375602331038671149419273728132962807462076690829352431719486418930202611824427387049290518672477030094990948849654478608450063826035164432755827367571741015774818219151067657580319514902536570801259699125987096450192718224165469434612989543749440148154951827393844769086203417183430251042024921296821415128149157929297878834548701254435271336174999873122500976949179428884647957480772454930095350403662766161688967730890569703834352330110596464583522027111562627864857764479980588731183327311039708525071845951879487897538006375646992528020500595506985520864106669087977591889194117169558579644187786778924647351141111714073112997013209348678378085214381758331715001411616822372273921660555997093700006988556747475944631138059363774890147044075563919201062557384254294180861592296244121319868437233937158566795466261019507836277892074131901812597467904697554759578492088613885640119732885803437964997490565595391006726161452710237438145497946846508959781344254259155139118351477481173788832961605388479067723405065867321838337735849333147100865563443769529133797534879900675367682412929843239393013683746327183373091971581539735491258627674058617909013181256022160038925995264264000940257114815086216130316306883093459784802108310541073502433147168982128450876774318844633365757654682987587428413104088157725545070715055194371442813105038705163766705762769001156200497876422249935877507803882377770605390692590565977363398796282620302343491046387481338249175582822651210802034697533995873631814126948930890331857323246666708171534567600991680904060129844248541563045632509045758501453830265540995785195531667382692016325633508575226141304334946097073159941594621312762268200046254064546146786679399473761904276175332706069915878067641394403827150616058320281554649787888592649554245613866494310708785823406892049441620577580083456398977362017032488229472927262431540854867383078201158243819080787894269832679723749605444705798649404135438414556289020247816825139354283695876876114639493523044302240989578206523284280725297003307611150999511889792575114432202905997389581755386685817721803021337846077585881539543977052812697496910089632529027427367499971783979880440386298234129987644930698727069021630436688943427951738820270756977882282846679674174014129890015222458032903309184623232653787118897000262172652587167463957512995933714807771384248853174135171754861532966406404950328295886689393340127746977168484816333498399567626253445538080307482377462613594311336518998993010731653744887171265631675733427365318921980657560107552982706001230509214384582826871546891789146681088830931533352845606537922634161766611620792316754636212910165523229070057560332226993604095252141964389481292347341248169238709050642929841596236965612542102256064080975401058272001871347405667905070084417441373488807282512836080964062244486168629139129649253324113522072470010278926255479796607736316692070469814175312716115913623229787497312746305822386357987996526450397457369083265609751272650457949919733847845999230614106982689697870857833498028660949018641118414259613153803380085845806822960312796855561300336156730485713899190963337778413924106478612996255173173211808087209053830482594265870033202451902440493430510944648656246371032908954275406857129996493348133383642495370297109729711898669828057768577174272525169216577338602583317720543625231759354534998255135309286559938084862250306064645010866521560638691211195567369180007850617667945634686724525402738824417791324101916920572194614477765971166414396239909991809547467366563329635058785237769688613326064992609963338386855200377829129211230073027801741217808565316010567386422697046306576074002860933449970736407415857786707691687312645894097859082625679109364843844319343963036112290928581823667461164822557540405812930605151198288233947003637967625174497481318481128014167735993077235306543198346107262374624968739251479469026429168952051260016687803558309865655530904381681296771545403256742712820840183138431014783194381402620370313111176660518855793772087109747445709690536577146713186976983193086037923821765337981994017625845036401656063161641357354406078760626474125979985978476197494850346591007477183239587042716257240751971804657355107148989381911774427119119423429898387673698726736716836096916577370754915360720920212035380874063687855316093982673669564601670830651912963547340485201578686272948348073507411506984185047074623046591379416583631149524669762458647160709956091503996308705656550370747237534986694876248046658915996539637701435537682559080571610333845143573199732514001928488965418777529722911848484437685542115837675260544104835557714977378400624976015795039072925315803847834979436481834185525942598547191781627031309655138726496837384081901981183138866548188060473915877662559000428444221209956768702330579390958266204950576080774120866127496821982045157772527876184413644346113396526928796380487370238303732852097754844771998652217409655264801364551329299607216285900319349403131584235582983667874888489925568077361225092321102807976878860351364038379237798032729487470099237682803143182183159197476493310301293571000211802529710782345003566639768018053443618822664568145979593915392430679878465753394579685654272334270640199706455627559912442938979411091009604857224209297425709264472717825620616178873820856239986640117251512697640012867600748486200291740210363462113459666501189351091094708420938561721589015716636914653724074797567501123981738963542866067298192614869230279634080377079951611279422908248363026980912854934450235406618966048298462298091164328771028078531375675232057301888666251385251986545560148199784959241783824791776628995595610510778943100119894406316315429153700943941102353635918254916771929360803378884707581891220290173396169435613661137989036502219511248203369783022223685555194585690426381110472566381993955728026319548216371266804808895899155331559801651964991163866971919953365895281695986057500019529371735350186048132368891673404254257343434561911843296294239231875659588502212943409500700990177250703331273550742035302734461496798767849685555751437530564694427935605130987217970811861629025773670091906337662814050891947476539989058086568982021495553093313385347810038295719945389050601819053175751790925402834471413123324392659934083163775053293563201570215050011700049719376606426791051631457089773080795642408348672075957324787359445058557367928866610225324249655175685041516832664507291581225107646164854321453035207587467843383854101867665851813529935774770919908291533080170705110797162484259031657542779162488389585675583157732392754977684483303779689460419112332413009754041431449675841034162389158269003764714752504328850171354193746098030061638747468282434314738195198870016258148699868631207002608284027514910013637201305175727627166060664886425076815412513823423536699116464727525233565920973489169169292519320909424925723280810316501581411772690535992369996101541662753746703792097280714600714754973089484122206507646200430517544218631161375159386244035141981218251762289363834522640432040030840941904888631670046377041332996549922293883708488597561004199755150273322576798548858700650218586755855781210112415808690949400376512608192628209752127999550039654211118665559690733676707216506425779258945076856045573973178147063586511529118401603299371070953210751038743205953963526562136806905166101068570250686032534098791974037037586425306932197935003424357954034265764946268894477271934966192463687561624711723385338037331787800561147177142715327465930521031297078855928555184749155645410163157741782803063074506805095361004572175941863793382047350032688006469696424173455780441624426207932296299747785436817505043499837835643357393322539997923463551134826729304198550517535353896970236733944897394996656704397670040614731809542784991133774753184906309658724008037684513913114229632529467362370725385746709509623701424543757582582047140144560194119809330690350119894900260722965411672718141102863512899243675921943375650526749236578324717049103822799579109122443924839251511722944823175431862036806448946480628202345760210711658121898935869585904345602434018046791625674899070209805908009067594206807343146130291131164256308650423928995021798027743643542504686206367664716965799140143408138817338091938317903397347470143310671310651769545781373887351031396783858657561982672929006841111804277155804927102327089294657289795332754010939924905567367976828345438715779519850268521657851180944568481165121551536173941026308898700980803672942876779157336342300485608439594469409088135696056994605953296689186533009409449003197551314458472797654390449969586937116597908412227760260743403318380307582423046740369405280788094377207833779506110760632419849751759490854573541493845835037688747865688884645294803436641126973217899676174420993921922433761277361501779476687833921462433379787589432702820434342196573566827198255687276637517817396474041594477554323379240878315715935580967080706187891613790589333104156000341495334133232764441277757668825314982831422177736716130468041942334903926054332120219540689436892408675864179846583216177137106711881500134769454922540193277828029888740428532963174582268123463966449644947804616348598839364510129255109980957650111363087318547622098086668155968579552238440394006792932333018134751935061886188877041681668194365658760614666477556264937214963724799208568270991651023375972069532364164833608558192734715761307316791894088097135955102937535071911249194864535904681902404938874315161004929794073957865695500973988382311416479554051910210082458222661834460699723110626630684003928987190350761439545633211320033249958887027120659989695315371687778721500775011346670232491590120589432011663634597560774110351092768905217429583467309283366366918042363595124258602488489068175727823136788380024258919066760552176610909145348817873943345354147321124080505750449118337774059058217462239474739315807535574518244448985934328995446960557919006729278464999174773745958043046096130530561962981351376944285133342961376272281223678511117416381537415244152232547448468596347850826651781958672590396606228680088445372683011376897089676291886867351868360371176165611355630926470289371781571156370493029593879703721926219898794501256070212734240952154184872390634298001616617463834589379747179967807904402388821708981301216759964957386933598578000109953851024966020111811736630032470842835937474787383075412269144427084405674679988103311614345131345997215463796048456113485674082517020541542241642723272769965049298271693920884714658541391554574297330127199394503920321936510010416976263256238932818434798123170217986758765321642338707673605730627132796036658153090777602120968943087402269457992643700146941975152823173941872984214050138277477869022463709623729102156774419893609211018066422819948892969055050212627978117441415340597085702087578252211918940666172052045756728595339377772382719903179719340351907117859994071682322958657429510084192165119350102395779213969099008980922212307685553326227520031775588597717377875881976115541137419379455633295439016288195077572198388209696993055310355102747761063599095934400685208210924962109289629261399133918942847318313268670899769623382032864933966295491584194864738352262551030401192319444104097038232420494088620702297132329791841067953020387950851970903968181455286613942848342069019337729394608807402942061930892669659997730173563777384612092557900643317654813965479719408230856480038244435242775018493978347346815737789722348056665329525098198610229505863250629185203960119808222658589870509155046098481542878690797884733725850723027831704502468457277694794765935854698525271537618134437767184295506019475318157824052101525985303474366582726521571020933460975826857830268639416485346851077726738344338342058611049530192172081751815586274013460585549117773672856940901103070195662180804178771139487217314438330162494123585733977430266076073612784219919908327489346916050607322636732350997627460933365918489103731511672148989031288946530652932558152145456326926293419891425868239211677586450329601041244708389713591841601886899202904500409519257809882583620223632716861083157326083038837995213583816089242999522023872544705822531042367454503207902158060259088582364175393599149757834424649979900268527740934856616278931437721645063446289031207435318742900570566987305946031149094523816431788895110269092314654051092736446910166814826282336092309331394428830325560002735513340825766129484851712351337435503871977016282703482248656452767042290315750536827972850817171830409562104656725055692289870102141065800853208091264177604550699994699144978754829972081186471846755117759946894011481261851917597176911332182331949253979150628342661154831101122319770522442659504863266700374629323118463118637235215742786542510798061000515787442998103480562813201705556601149287469294771964174703626897008775438965889939019603573181859671107296005047173420968000085083685176707179986162457492071715444539439827550855973988167807737899099859326721779925901191337176160418885974567865789020069194633402148243398795821815448576810815256308356331470381126752312027371037215603068046863360817836891327786181391072531172515207832584395214426523544525488052578058628073574661109275947434208077302932358102925543106135946271963254380443247799878083869533024083771155604826135777794151455978171904534791090497515068437327504762018431280171956864036568215628014975540984513197696930834618726631829473530599986383800901052972023792270549392380184004784934296922142617854257431144856969297860769822231517773111468470638285664199084204204759592630120446664519174550201519372812159559174617823752382257225256082020314489674752228082921279264122222940117101469960997026540628057794676671440231424513338108410300161996963516563467127781451038154546801438574998904910784115389982918722763491123161656798397187100764619559275881727748155286358482249739480655671730135124994300870555792391516538368391078759080698978835950071994996103853120085392952245483850964549089480072616929125231221228392645339201489728332269873455427842370391820264915491843703763922815564303817655023954653259471416229576035723563945758304997823592421956657321237946436124403974640194515038102353371061466594002867218098873986869192668378445337295200276748176956049740652045676683041729505310763171260618501175656491326312798089163783847897692210960762829555653694604627869898318682563200069998591258854820660943250644370140383583402291319065693014988935906572657064174342780410927291736295952455991863048090834969792358543488757416146499978494531780862621422137128888798905659440773263144972789479122419426628017537216073447843536151263012636383393639847443662218297028311126080718290848792358925501001254927073007817303975875561137664550629869971928467923002495353939756171685217829820407030371467101008345742627559486360930062677418964754223332244862057293031387583465141135778230081818396455685296440944823832231482230367819102406473873073544047827891628545112654829161845981363911440591694509814661360909325315537194535113179079220908182771409281608362844188475427538870199882660665157560860789256297831427285205917123736115909911845780160672564450991697360629560651251147812252954704425093313457944666232771666528034597532994923758612810228597037473243188417740832338229715068842127283735764709594368762614132452251559834487707433764667513384138312241406527350712601431954274929173316376799708910971505522003226637910501592792427344526172625636918317340094428343985569628750196077668942522227216988665319713118839660477666862704046666875036993473972110506779543586559321379736679954473725573198825636530622798082357996967798416453512884341775583638102946000120556728643325550105959135361681011154690534526388584724623087903990139859711951534283582793120159351035109515100707717230324547204776110324624101594267691799342713299891942071097194527677449383329545568033181981544846335140293434115396893422222066598014322721495177317779614359072968355219761304753600846344448269346940661104458712139684856201744456146051724873470496899015859170957729016198883490831034234406004229316267823075353320574757180550911966953908371761498960882322548143743687315709024012704285594140721804633669292537582510750494849937684979101330898507718747335028520837650860916517393325863532369734331895563369662620344707843120676098534012924981623421908067958356570273877984749412959011607188243177980397960746310108561552918646298233581691121425501420679319945039656883559455385040997231723211754166259117579785370290099296489702139200592721266260403850154416028908062551076606318579595591959282498867653114270389382128792773452230122640023899701171528672088245539462437906284307703044475553944970754946634096489054953533881736668116127989051776375698536499643642106265773469857224068855070376849429248457108564452187873648446042106485371986112951554177954380708439323599715365714334336103837112541277025478545582329599408849417435645510626872920885066509522464463391837438212114116103716391782404116785481957246939519820198110797828856440743566466005007999971062501882449149531819916253585667735467230729213474899379402150839956990655508034931159423086846171091006954634206999944636421682037611924406244875722637339908438724177813501591546494471916179702134439944241144052863685666881365754607679696165265693070957054302660482966768151499637191647925110420699485692879640257814017524335093296032556026872921997144568293537188633507553064509183657417838078575027847284519411708464116215264264345231923940662930560514714403916298284312296925706671615191103790920368611076858118843728041213505187050145826743672817541118091477800495487749831891718190563423553100043668444018231414057272155964229875460101752164451785879315326159453240129352270632708824938353922903751400760957302250188035132033628087325921514700329500453508435724619228751647253933018596567832267022093667639056107450393893459144565999672149805246250484362541148464662139428168620819941377265242431376959829598568686587974457515923859821342256981816813181592761291479784281319774250965409855728123355546388948250993061872052294159135033279049423154852299899562850897484701369769002190243081521829782887977650667132520345124259811606921403517541253101632109315495851202444370049317840735001692313270674062199986099555236000261738191041749379061854565488182129420412795522558768328302385784343212599535784704187166322715899859975814443534196497213358485823251126918674195100573936991652787741027979229058452279999773911585091006047682649262384905596638394091176930649409940601342180000818210976724692831391760884287768550545259546060065827573661200497196609230151405784207779223250541065243546521367035539293720630501790641193105291606923868065023230405760554231362673682004796785950738761699302794350543291851784077987921318435006880616562039618843348925932990856255604368001162604783500293673316393323045474187542861343200715307580522685321680228848994886264755816554841186373436776542846382032815816932357490223303842424584572109023595336399144744045273113709963709842610542885741473515559798757415167155920658374712601071982131779484957866534890798595814013379286809402784365734670740901579625002091220992221625759418990079752205493980863173539206603088015003143022642294890277065814713687914881095458302113538108258889244005678154064671433726947345056818278948406768401121651741092117471750268078918535494563503160429169439001499858444967301265817278121862084322214160538243624301263247495350376554968667667480102123848418055023660616285113272411884781627042441477255545002874023791583898986076335303278448575484862995527202348226379327299408452330727635477465234562422000479687635796726174766301531426695075458486703794481971688901116398008799404126076556513957145534936807388138896877608312043699366547698120441587510855226248101486097111843258315025497916560590611360883913535747774546166701061059378224405943502410808617861946162764495126412738681304739096121544076304011474101058667638393354082122760101254670945907988877155778141877849852184337766586883355274410915355467638923571296380530965667314134848842944542981916938507229821129117384432262025435050592219473544054824335841386596783167545555971728399498874477645063921077451093567477589586298816165641958475100752798931803484797301198900870348287990768577157476112095528978352383172275834774713433369814671782413295810519224139146219541754928063160978486254678151380591107678323035593778129500146910600669168855947730833239483362872606406139525487899637377976079932799413565475346157514876159183255259613255417131159055839076739843285385955367759345674745169393741424065999639196734163442542713948188043759259864704107778808313548472334643924483127440223233991581370016914071272751116121567789829029942142868505245239048299443545067071466655810736982063960917441703003002944202402297424808356696715588691446774316861220658269042936952374860935095856330254638221591352636168826611674274497947146887443334356924501382531413291696066441243544229481118945103115317801165796981181548489546975868243977533891641253133325354157659189088128336309272125891321875341301925317335176058205197190913292878798574758796977935399725870856864830753060457732887160612688774268779758428997711603607496709288386149830787257326326406901371445937494269897980354677255018700512772953565840068207775754635655055758703099730747937281159286675720747731740618779395384234170763400822745544869671603417223888074084511172952069471988466372222722573666616787329349897410663756616659923229833394815280417124876058190790534725709283367585713362807893323436698159980599930131426668462812038157839419120779014769111380973840890382127898288140255778186713626541755397509075592629606104797902889370922888965238406467245122559450339647110952590058639331411588381753843321819771042251669387137719384914068655638560174412665071069931621213160193335169818039027331786474177845636346830048767760340024443519622749792581070130350672620396994372506096866846766241587998800528657932011349842010912156320987777530059455072905730400656320780332413770188462586850105260237887111642108369505892057593640949491343639666971992734802345520255445042588576150782685075564585676142643273801608857182343015600586388674441112868464704746510480731426907674861701810535448490521073921446983790514949142025334821807320876693640086964153810149480709494330380451524855345906061324440024059858829128887713003706696499781119853031795552998374369985954706373529088628131745450160978247252649821667565644785491926349609450565248028961055500035542800552706661232056245774813237255770982812556485430430117128802330598934298772777967690729225103422520435999532862577966375855432987958286761245754255305562363196600120731340890271767194237430285749809017138373718794510149056649748370837411018184390398524691799404147860920253036983035478490869009059842246177392429013875072120493639558708340779184521656280057043917959201640677594017991367694355578291902711067386704653619042534414235346118484255082940096548379707299440989984715329364552233692876466965230064867653597464992356323790555546461709590674367805799186893042215331035042188674550254895950462906709437389592380502493402420445164571148921131353572684560886623638315674971760581004588939946268851098507448891740755988539700083679265158057535139561567251637158334271308510064132311062812433916626770869777981458437969171705315708655947761570502530530331075241856989307859748934472241509064487712812674316017826477633739122134219171698641669936775607005197545245952720134677553562041319253335835500528223348397875958679812818983324041299817453898691619556223393676087186355605641722586414037343041362293382637295264766648164886938508074134259940530554460728782544910459542434552622844382791414377441585370231624457376156676990212611439549335454505718000065149358917090207797622003455598723066731918648284094459283224142432824688392119741098151036473427698306251487852506430960362326490065860049881795247641995493338020099390339101718896115551541620694531023336115540105573540458252672862395458638566900047286904745930547019332697348260133396273805042265019163587401748216303628575640581916567443295588244396772552925536386689929001535073211842046187190311684189079505650934315706551852912431236901485070182077317642147499678643142938088775211948653211726856801879109651203194956628397614720274157741508514402103687954375757078252773909814674416788886874759665131959684988833350061882625014270635414111393140027849840497393700534255339310040669080309337381987163956106427767875619044318666681782474521273879254356711418018834082900844753765791094229325127877817087161810482899685896380718965773604941966392306053172693169236077896728017399440470533986777595005820351593221910768510338221619828344351049044694037169732117812064971316060635921972337200692077488900691017873374898882830933214436742822250696879721468601516985351373556880770005421436804504003306241635674278734722841839604394898470166265266239953038121645521514148749587851629052397699820544995833794328041947988956161335966546065172388942559876747909386796203014134761509414285891599790195701841308266793908341052231663880514117940488155239306238981613906313563697547424272855945993398201064080220515328772133073894866195900949211615977709813417123764976534938014634457803983882730449628800511694790841181092164747241934554043546934612491250099059390653301335534804034317507333084002684207705847751644873135271115828839445595816937704798689229552917040340662914030099358352567397668652484681385730246226442819211649357201631376878247671575474109413970134450543991351198175891386252310546908021076235346499837886089368471376091359723914940473694116003475963194073214881123064475108786717539405543362783121273970321572039518862751093598489035662970644443033655875004102955883594931669985506915507119535871648595052562031144683237903961306534572097893388524470850428065479785389145929094477663833058187270512945389162757573773268087554478777424453816707743028169498915639197165521945265534928420681272334932292317909888615483318045255518402128167665201208430121161947417606556985523917000101020574302211739270946353345749239951891768601756370398632867150089881957073746126770441313679292502895546561419472436090261693153334819151317519612042048547525738592506282558354791891874646446697251655963018858182010147153758212315261593950241406641190650581934594838761690300026473419549273949425194615779845511559384937843090796581570919259920099514793831222221211152681303267992385442593929217000560132128078846991766440944103621889244321759451830198894667842728539725593491129447991116066122082308473668065029041194715463784419448154221276124848428801278437007709222205754897916715121024926188531324032886111350126252008527862446880178157308465687092684556990560844482445471608679915093026644032105839166068275587191193650455345191894570838210412370067282329586445610930359931208613822861455588234511751352389831318109541184851056430300594744367339533392982296103318066616338663980779656120870766218544195241622111124246525384433675742347559133501699272189483666879785358022387907139500326769976644021277601285293715181288653518247022041392740358360055307366984766941426300445390393081277038574037766883124356277777463038633396887138395065060040006283749104152125397603102258814425678833779445763700468181686288207503049307225175897035316310700895546573767997634201173127245858779929836771562534146189806969979396395712683520158140759751678582383383422308189022580031211009197857639851541654370227203366306223143536091815003779654236069640800487876201355473511541944051905765985433970141841037732694726591724695841219315588309926664456467779787874602220892620333823240099330520607158519560545220260508127881358058059457582834388735744444222983207448435751093596503723870816316205108309514120905002615142616121178882776126090023435376496225160402056557333032847481515005738523590929103135974013618718490517803846887858717548384152402584928351294879547570592861837141493730897662157302141306366950049899592954343551701793696941507320640534184885126283197461373590855115139413811204049514277983311860067695193063688437283588934744035942896163174673257302912134363194171439636928939263252631534449223689942503209447624184253006295656218953599182054915532815797083005228524862048354853446968234876200836622168907131621301082692042600958747304239159866347639021884282288810655952627710892175008190409153966034580141288484141097529438591051747838444065428798329163281501080469022739488454099327072817198373698372450153674923580850448840547104500284588461169777564295478457328126925059145395614447391947025669989545941679437890506601131953225338638854947248578362811804219905826959984026972612820123208210901278238232560802900383699583395299262929193094461664479740519385914183597717748019804187562039254321436427826687903148712401933482948609419402921632549777856363413667987528423908316104893036797920794265406861861761856552531705918187738790546997740534692932298990227573409506434416466126988227132521894559826767977073844389859060338228782777730385644426022271844476664225004928300855672717256481531071580403713733799259393052339224178878728291814604443571713618012365651115661300954272368169820036698678028641989218313123133281059465325648869014900819190345360255429100546357383158484919587310812435527839311542664131056590512086618587951684077785834736725824193568587384531046741411778928451333898630844914779133099777805447109268961098037721130411181313839639649029412373408372032151466953089939446373419327321899355683962177191477015441202690751483182131257522918685012055964376641702152004486637863779136088350465063776794300319481080948137602273824318786058724934800033012932153644206961284112618185380396318660770600121036419403940908249793028586956473239704895375673010740414237172221592176237278761643719048946284626588657262237885311448746741514926590693260251454393124241777645135961796270111328915677277269101166675683175678222449942181560461006458499628037368953467818612100938076225504953986156871473277100646847756917926151574466900292777022684151959220324936214841336634566663423128401717364702222160740163824758229317399496423618904156829243743029251846693738961614146614011424753870466210785214437066803557891422501200980431270038138398936024975534670678627897277144104112533220580921297583408028904716170456876159249250824319308728812868281005712483538166397342500121902481508074427816867551130728717682646939929508418458706175918989576790126905001229221647280786168182383181792514975939629135764120541499252660577255925886330682937188239240947175738503710439885133571061881643652970930123225944145907759484867887500514614389026128462057348880094583438469824212046015677012155996287373379151021767203909975866961666900415014441328840861299626421738181665720567398483456409277440518850080737891405635662550746952457328426861670159953325265448350785215499162330200062949807403899486580022768610931247783286456006813923744537063178418509849735709743325968080057513436548725429231177538320194145422375365655380420102674888952939082470923245213817552294493827976369238442152842379852736075238328567335695640396996643407978740598848870141060276742233209207812678194352916403129075068260217243584548432652405496570382842229199116308693957958567122853602070709158259718155418188867514210257310942243667352187184326452573569997464736754655334880404695873001404657559438128639219772342954169603065971846720260314596149629159930801098024781496714873838962847765044389921452098136141905784309487344576771260752516726807070844110183434981254530832459668034912065211574693486532678407822389572186372727687197921996708875352222117115953227960370094172684079363699252949961404958330910986995307334412355832441846796377068685478919558505725398680030818438875324188595820906367266049723889309079667619260880969319069057067794703101327239600124663579844282673437016498552610543134918654474688365255921217012091964118205304444535232140052259275259475340744379410545551212927045324129322661701690633132737578466471916444191610331461593874188542114267710110246988040610364927157812948898450763998403196848555306835655774672153594316305253831084591337760699009181647943381829266220526962991293092172020386730124044161876316048493391425413698544644883114247788852055849988116047354879848544963776396664463810010353069274140498747604869142150455204225724145116497784453501568570648507135454399364122377751909664611647811396467109259069775711034109657583678257063269875002656849783182754915057794925631615405230382749027921993721669314894018446482213543062873213961026033869597141377936801574497356433209326490070796038813297854788575040227237444113000342020835728341638886546765352004461772076393762256378863413532488137742977341403292035093636993007905732538522155924535901732145143707154807477062690978446577804478526509808862833467117866832095425954027411637659899012902096521747581498553396193523959349797669513901763302031978064502383316862477626115603845715081865377165889878574428914448290596330512868358423205208156596311588223193600727216813927134274025144552073016137050773016290223405145719891985819833183615122731074083334897248471863150996109693284604517938249821740919561426290374486876526635989236894110645620073562692019440754674819474415467224539726290540178287132015839061818574842443316524497040805659258577726983081172887320800704921962758088008986154001596305238487238315267576665049708909471299683695515014159277258274102472381128261463450444285195007446530833863781406812340417714642305098606576400870902966203295865842982945849802015570630093301314746143158554753848592897673728454339159507267422278934076383706994297184918578278323341937379818069069461032585287679901179677198084214260160699859437830575456286656028471503134754641339856386431547233479773686818544786674585311492630468601061667312518987528409484381586263161538618111999964917615296149001368928356656498746373270507920204308380552473604336585326847497924234220612006224104306987657796547397575714749145213125549534674844457423553502689632891854111215336805341661988610299826930810800225383477053998497476102788000619475303287000134344853773656281772083312964708832520143847374882511467480553713082827352826474560437670019113445708956639856466934617446545242406209438307098441111865124718867002546374068624059738610046025675729877725107897514746431918615423597302964428603433716054434690225739309748855616426465676097046741989554726381209235709322687171301570534499245632401502244785129206018893530690156287183173358325996681253581961843644049289463639556662265258023873876346121955593771045623505366497247261664226046346446071526782180492475112719747568533998428220556799831286560297994244128045844117136872373481518412245609176545680886564854262160271383063914612548133008762268975510410332091804798240291067209307795022164431680354048234884248932982875995991793945182418637126083474829748881462025194665310512840262097769564897697374904480161353800664467070801974263038241895382916784067101899797585029006299693598421822496397462238215290710790033813195531255518265526714064596003695303665044258219982921070357613172559209095702632054402284767140629479246992063523179018708516098866078445796424048210537926224253460362786665035059822411274533862231299991484334399371852641545928298972377045905338150414148270721721955028895048816613323154697000443443343191652235681757863277977011573126889208094741019659866423242573145453095773886060875215873626529032266682468324208028365978450255689296899833329473118900986753948096233216351210173613904811911782185375066443021253257112763922977820542440552363372311610176143873357290336817608475036360043273692479421557416252245039074257675827220763063014170066182142059016472992312643530921256678478909877644097728967882407524255988831956976980123242125846813520430848709067368749911728915967839189871955463271110002260155470264262835613696487335793799833910460392238085538042108142059579534133517630200358879423736945907043287666654793558412245262114613964164853717050042972851511526732094695939536093370026346494196500671413011067168352604429405924331741280151584228948272983713375028134585668916174876155056772987555034763743399511655866299860859700537321940360614211216380344621959071185036525117817814541114882024465443267098057510570398403203448380019177489342774987557156319239878078176268269269712981309935139206671893725136256245813978614768403641783658778836901081453651626070081351471812807401893381377194840136668184773373896829859026824085923800918535347619353967593982953741855197158440192649900112222124178421861237969284218199647574775180816098876781331572426690322767989280819239902669268721163346425270133738007049152166457737945065533656528881742951632467692174598334094334777289762068129299787752416755992137229242411878611493926925371071165053571480274596951758638104473577557211949393056068202077461198769840080219137341117995562091238515525634637449542965233129673415773169399073415534448838713433399774893593889494043728610919178339453796984780704794678830534758396163365171418472695748509502672248069569128697385386568402345459332990996444908878124929735320296653457051286821152386109522840971400112744957929924102548620252637949503294832009743085560028270939481455063053740060752234353791938194465386312907437748894436719988523843361288937186806283033374956031021075962403917141209930403222209312206751389689681768404487608177972050619662452151175897093702278521038758439678446871698419327342881499289204809785083819117548498758945438434762701439209049846191044414474050165534815045135480955874902940121397510435858820603594305124884929988037944485805876931606385736470598963417042762696592680457468132527327623029988783677475077413225008889793498455057123511939678254711244938856858403364598301319448662435869055588602327136668990750611709594056101093475766487577741496614141352128881636505746564028220117784229176705468053544310956410576498182631338250072129304032266692351698030848275146103903212429391628519705282877855492207306455827503868796387583745237484005735063361798766442007418319013686199253673257356538163400834175896338851015797521207171289313425993965374157699880097270208817835052765503219237597628782382572647981483419659241017893295858602093115927339223765528778817761457670879677790076683618704127705129854460380932816023183678579302079556777785270626096911285890617221933348636282130500673804186847539529410747164722909800985971776943571171772617992760033390320816007218687178978044178956134885523943941095987899666498307426289904064040381094046709546859567708906450837273839770372203428107716707632258564343287589044308215646538159272368859923429894992744000581143695137003786850280138563472428871120666995861924804011151077349325220470913124559894212072653365136431417940714261181007398147577205043689807058222194407451865850919684351498227234145982002110289049006736393543450041147495647769572236336937699334159705873096533699127547566353916529749400976377271469771096620871312774073007937138494176081417558335894453188980619288488960322734926634360034082766365817649550914944037867922400996015442984134081657808500734853123299893478916712812347449392230937618360762010002668921683892548194818367038100390984031470532357722965035469103080442466479498186633941950910151336496810498369816808715260142402726065900371538371747023108024998237864394815149306755839901107785576889572841667870916968011090550049725347218543771455940997957001759057875941068095968888750801059044652802848678838946407805772316642188205697854823919622542675592174887394751753412036765208142328023752520886917397371367550340481647946193399881751158865249205776526417148420968599128648246733288258887281307839421012407068827382696083367190476510996109656211228209022045856912794274518917559302908608484916252964632022478285377112590418615176922827646252144276726499721142558011910965722614234125051533706985159011098067410291612608723853508750667450021492608442598973146466478401110263955019731386862087143928894367790873366318610345130115841089886259807019289848429462602255202468819444874328550547565812757811931550418526361720234674634758115265267619008752200694393578396593613784186371393021757564452573980892979317879344119108001184361498623725282634400778363371412673601817912313492432082077546493815841136963424439251534703715224864382569420763278904442262593843760080314919458256269004745622455752202980153720790864749689182469654815783364296118152173367361302687543143929188324442858881781688364125728574363105603471199404582057303433785936975748051251758097373504871340759632279680404617039270345570442750349238815590413630361257730032930998626919586711980850211628922458337832106445443875164824075637091934327505926220849211647145254125093920113066011678430547335994404875839583536369645844358578469005798563891549834654384810287367555087935588330679142771006334513286530621667468805757351872541975108629883945703987082972023992248096381574804397923526154777779118606925407895518347805406595501837509201257626013552403085884370462470861898193118552131974345645437662898460470375407437059919284482787378828951785706381772893295326531776189320191001651692032566690893232667188070798768173353615950313578093141122694945931907358587450951487099712065144319021899332034617576723697767681814526672044460694434290852897902155047984122825644974815795018195198744898875192469411060152680281127686940357135803294071932307636736329406355567243862881027878337160224721548632682871619015400761449670691744204098140677074200084250782708799347836397672774288211308022471397085210842890739952540639914954829913061571300241048228442170516374858915556270900945056006644450669723531868827250475968514631769165719596105972087418809986742353834140479826202683271790170938692069316992549757289853317077243707806937034240822668819547148612040336488188396880369593947389871851660231854058561005015455075811108089863805421482748697047958071247352002660559012991755823618602718612841519413935106214006268272967036025148397197247380405601920831298678757754204486966191634456577537377525664302774978986470811462667285134015750142964502693595686001555566759116545152541931898571940493322399636772646305415069854050845707815758458093537582999288816019421734913691049504835761187612145941352506750153050361727938071065310533690786894130377488034431483269391102144525607577223751659268615709593950533367977333117996371230718211110570166431043147037370542157489386582214732237383515809903575756752414738461967041104844796868011478230192040772415563904555724017441309480854982474775781940914078496075733093216229189627409943983038822863539634369192081190233558200787589069896577552025860546651986709641282554066618275969982570555798290284221815075937595914402758816307615374475999029869964721334359766758259107980864101305984300630560685673952628616453081223560972753706857728741720363018471597561040033796559771910837074627895662658584003146267217645526141399524321389667670532665141316741527220296570295274417446283545020136314423968298416645795235207803004047847717463422772798928561793130277786767517717081248652201076088483191722596963725109839372642950783748795268842865492136475215707843493136039529560480089847094936187037964273151731340135601008073278446336098233452903399168752068920692228151355286268801676669934843661598899673512276365882371440041187462583845132522092694911658721927664009969474032047053736744363641512937525568155525573871203820933519304539154417111206377456365432584171654799231476759855639959437073105407761574559560044768036814359429271516423239860304895845955532418255530301762380257271442676693819925883940487554500552633031320145229048359173041477706272079202958127351252638331632101777803968080874439084142203501188674457869854647762024940950633783460300696176680857606601242906921016247793217413902744192001135512155065359423750668519803278349499643403496245389235356997532937537515292596353439598527964324768129670346596862511057506957455817162336277026205617146664418742253603730470443885158428946383175239606156136666427905133372916115941349048573323978886583742303816314555940708176090006770092192588695403005320384584935340323504850939882925244063661368293980290856138367789920256420286517141562655874364183176870464589300226648091954711216092762061143099567276674199443351198040837261014231293919249578338491713478213417900324206185863595200369524897062713743151511253105449651266598560847412467010730408011202304459240515921655973433860030572467606303628175578784601003528388467756147259729456776954503003671407927800975164463802890174124729348504248705179095281664511588081607901110224511051498231566603984801657641577796810159480967243356875110648790422047122097833935042770359624940671767107596765096065670638254928606059703195655940382964333435280518410194454274405668009261452801998521842559934150601789299763371485709042098476324490944076123408690451450230858168268775407988089223765237785872344851408067422438323529449526813415439510938767643556072939435916761368536737248224392146850130381638879236791616318654134471250534927009932065572789191691818670372721225267818130441212919733706548128994228161898255142904277114845478790186884621042438053781286583111259198437668601495356368981227627650216391854657166186571702656668315169352719122591133917662754947205293129208347444237251508737728555573403196166841755562067957200625496899102062864847329008307344313236592416904488388711234519869335567646392941086547812058885650810097978346786161937488904805462183491578817048896815450227414401439841570884945347027615546793955155346081074545504184972922338242293377675873291278064651747531589150662731438966905674263371135043240659691734511914264688910671635292309200286141014782939795733095414682818687582797102972816450824020571314090872244416466799840970340064901549298208026641780984748510109973992942535183304971251468352589880257228377400826928193864844633031444523010599840076744625937988749202090140215644292518776922402600073233040794104512838006910084029521048719887958956556447637239957236080506619026912754434985954118657615424495977071758577601314252390794753517288433306044778680858482086840488264164198321117627315361640430490185543979808673793105181180780268161260908238493208450670024432861650371795495664632855724221116470579442330809908300934939437782630438907165105633249431235337509564515941833019554571134989408201291848284343901121347065252619434960273661212800070227031026526464977988500745490542134689334078176200038597918841984846927080030217778793082284177933972434960396513490276580644166741122263576523876450478599397509588791525167584420397126147225063783463480943720140230909020414326276761649858550014128975146469668991253283360407284607630753854330615805332398739577542781376498371480836075281630206004465248734662207517753926817108043064192897892031405918000628496561182279631607462805145919038310931918485563197218610964582746948327376731490357641148166516043749053183826425279175510109201089576575372958185576371763053125622978037909525839138599256950357670765367043600468816675423652134394992671875603762572026668689676799509571147894758546338243802687315085532031975709708955575806689260553690158929216669530020687813003574790299318832573854241337203951687498894337312432230432683058381618074711575100345737476908507683236194070140391982535493675663910088649110670442856186925457292557356316584880566893164943306393270721595353049985382696541760359551697763872249399043915083143731267350859106310314007095260520656243799881558496044899535593453126684233063135131875353220871072258690781813775874589367365324001243983838884956067405903790228505205588661929783117770523053878354553430258840970242241254286060938684326714831512192421574009484563123525315054993244321501800253888710271267062285396536638916346606631075738446008077733938239675821351368748387518903780411120121403950403738867603608672245107008971708981703506347210932080906878801714782324528115619456954838493255392472398626048047265809680964114347836604158238584874495515197992035406019763572442669970458435739698492010837813524484397597431322781715180289206310886473386939600487566557774783760262289006002150828232670503376184414958409726076524369970015052146788730776664409706336974400128415313561333060918068102153798427318228120203190305521631178611687642186895248750636237189481788737675864496114073363530660162715876793824798549568192330629428510676365343897437540575710397661599253090204104462055175768068665819109195837116158869988500676004864471134966255283647262887820469296884321523857633314855227195431699711638600844372795183336922847427028815213442222787397444109597784532157136080061760592870607050448643156701663949689473121662435933577256720395472258820625548274211908735387056613887562892926873558008449179644804088220616023967291611551497882944844759809841630322094644699209665979114603143767208089917687482516001609373150146688869018839067405235758041921931078374713494017329472942933112283035184155083293633214392122519686049915672475711266300895782397842041568539148375917214989303149205538577458524779153346022054348239620152659830287211903654102078279583296371459253850807026535049983006783968145826730958256340483896619406688602312719808314998820942359399424625137375368528488026926554259785412874982628254815492480964456986135607972244454671344636129086645459654642856446121167348007902095075797067674881182259640478127034501956418826616799444806355157852059526376019687935320417744081059833388033949720929257481348875829070519754245923272658236773184438232640331067367111812134910820725817474598315569119607824037688071219294754185889580038854687960057798571252329690272566224626564113853206249808303303224243114992286375945013814742730822762891403211205088380972903339870382567262857155828646184614512752606646242844256857896198744443904465726073556663370033753346922339187136623617419754356368480988216845612161764943590026081172447035942094476179989180169644904419306756039216963654421072074219793276135558382817842150609231566849203739495158618480596062577940883052668590285241613304737259032273923741120568673817852522312833889401092417709707033972189910488644824666485885267717680581256562214762601941922607750240053374203339542895388803207197147470208870442740846227232980282897788888283790755404927331182809913088740750098757470246317326907470282458753166252916884236121699812628164040635157450656653443934901211151306951499290372331312762795719847728086116592074283698923123855313863560547716430148171300954545054246185678282988029347642779080252497131152412564662375506689249216053042617463432079963870098229838684949673448378263685075522925861267043705396273716888651243213243931150463560294729224175449890456312868679373309786310220640085464609955869836508047979630317750607807386579737046886893615065818346488232177424749698293498284544923048698028411980489933580436013593306642406080525974883831294621629776824671027090479307846173537618934953792489033351036910665945845019294353753300043243540054361677289195247119942349130787428938913705715806163368183110691902645596196021547254066800474074256790638659819713153721787400434194940838588701572600523741953490752156608272716734079590239356402348132001955952090085850205434866118332658151147611748726932403817360104773106669541102116333496621701216083268529345901701985757813779229173961169073179483457577461713202011933881436371154650529453756558913781526448252231600676320248876697022473371355956028719114071367769714494921000212127672174400956316317763151970075058518685721498929149727374423265089739869784735083779732410324707784294713707659803687703700623805634608524373063862467550319200575862419589084778121627655847364419996010650323887607049319332344678703469087109771707384214034972889379701022856846492002403322632106376214551205718377958401771837493158106583929071795208462179079725689501311202375992480981495366655286023163494355337108310511520072293324119025007048143496992529420647834763033248937797955908073255587262725655629366438442971941508635869715789798165946837944962492003040652255933378965432225679267336623925542699352002690094118645743318674350061690396583984380239820669655895937338318786738835286651737928009145547477887617062073896925874734493204131163748453370891685432863808979368420521833250754753175137573465395732509314876400522342090028162205821324297615732079750208328321610282393173136020143158405768428006868526617175087179371125530986547328672018745297953705736673125018596817954337706825572295560390301832146479006801688561039444683091968825743499657044182310792158530735914319291679823276977320693846983450751633015424442949339125937612938636701097993372090936853514875818253451939929565068097392363787621076104637260182045116424551353839967791286870531797983373568746545526370661918618634098089097891390333330351225215183897112387692586933837813809832388825944856078798060139202889056270941289619203027025876576703503987386650002668865289705389316219346132173162871660287819831232071646773732767244287374203342900206516598944394531440228543150669340732174762122654798292603990419406916893007491607874486151313535534366680045519595547785083413312475025416693603921782382720029556004764483038008977521278643356853617616642886546192113582735392854166689735115468983471365005525149575049162791216956242986166144228710730925284285461228415318262105565618555153055723705954502513092842670875221008968229446326889918076970934122941034744865717990278214083853235557303901488609568540943421755248470274591592099075892462340974739282647537362808440994853613992999773173882674616686448336448148187314308576409914944458171289122442591768185560047585835514571112038271648958797205126582358493046757990392534561402768835448027755069094844747800035146751382208840435620400823567530320301706057310164559822221241867558279556766432466340300601364669371223109835469725563137507238910574043599579102830318304908954690410343482350739742471687588843797794011068728266781009408494291893796071264853050733869469060944515526006331840031196345632146962614060675735950009091907062640119507620880212673797747224028046506357212505142475500697084274147818905927728336929498875392157270365843444660111643488616651799102209269318434737045799664322979185183338721979771601343581039244691516073112274392070052086175630756247697131542853979299511600093356435166453305756918090833192482781392668076546980697570990137947249743947087492109512831471711070305775127878752879837337255256609395166544460419931485082239918078772302325099594232375811497582486807712438849609448276524907004241450023410050690914671673491265062414005625482750018271885719070926299546082833919182255318573872959379294072854633808260449399376076569327059926384185301735838487375758964210992087915334658298287301962750974400289984506193643131943797972598646955387356398774648019712922590736081497030705684692400934622168311960061331927335071294893891499139379564825941985287990768704889404808835482463258213530576002723309239405951097974767910510787068906226466090701819258915797274048658094789020452316200540452071917130248158925137991595207969187678865876541962162889491437540603006738401950629786025743550561918443210340504104824654656222779583992522518610992074284092873797867545895420877994789010204925604472236331802581285346347459602445137242993221149858699628566767404660537658729453002848402670107062480027315600204037359419546124619873551729332952902055549857798855672395892182004565789872151624275661622974939387065446478145544732234044572662955074924761150214768481179062070535550879143762875004425497618973951348183421473111342323725141965664532664752922464318270624797841853944262644294643050776624472685170446418615603888013904214048472687627228525662280383812428905846377280497712298502860639131289053357911801420472645020035425600754006187435143373049225605834495783497794014253879794992329349561700425766213264725333606710950095225562563620502892143295287947177642001420500033243010579963818404796577151720388441980923393870421747363420063044500843218420163225781631128675374015011103669336850466511397614388920629517365247405355337476454550297743946997600551554898052988580101314998035123950669558129996858500488915259853233084408856094059756300976549028561588887914154424428387618556929137327348200450902010467054448264366006269151351136330683935073996388369766671373506336392266149265528999348506008642251626994768097185411326444967916067335994390806661702577691627648156040269229839124751893190247339540102503652589307697040143345667685467385400933612818358363710533675139081355583921037127268281536859620709324238939571653154466176915919309895785903477851843835812595338827665256741484494846978393875387444301607220015497606065969549981033156400647741222024404316299958753773684948414767412125538868222893078712669365221848568625840494227529929892866342920886229441153688713836763653128143043422401350934272516179135679173857233275250354593595570075235446239717060577432598247511944941435635674476754787562900427021986123722156342363981082553660854663248368604864015394908954831597869081930629427885116865304908500708601219861696811381899121611675830172747361450385914514943677876392022974223721401990713021095886672528073287440283445822316286023172438359993485948924946883495471215705399682442027823540356750421789979968739133013405824857262473798657972817552545261274340011060294516859738022533753789515054690045272055405009719739514731228918597553623429597666612958747966999303594164118900612693374441508785805750457077039190528303589185128452083596551280794623752605244292392629301374964539873882379739977505391075867219337582084145872666250720236735285138293680961417685162937600865273681981848213740292933839375009144466857440466488154606919706091538486751379806328989795903792812116975390436932131499294180370875839703620601309545250978988458641416737872881714528670918732153306423985315646046771719922302654140265834836702640669312924580542518873207215660558034022493371383818690183387993963085582495630983278143048443027735537271788545909680158702205972873124827563552944293086132271747814683494669335738915643491721008288034346269134284232478657456588070686933296260218206152105653583413855254683991778136149508960829830041674571456166952880184596309481449301930169813201668823048365486352793989123841044092175685005167116282382440204164214555533594890718706309872452828695935730673881832751616315338863958156685577067486001451893173932416264249604758698795816445531364203734923302339342865333965398170575879997354697332233089499800994992174230029965372291193549534913462087421606423126051898796250170230726854016318109474334236066507198892303112926124479519353327578197003067709392731804426498858320703312702380522908587925250159131162171949293662185912913251694939557395226849252370526435814070024799999127708326680064700720264444467767613406287777042608591883209417456508076528612070324637427193565142809464422429045771080621540404138278207610761796111142655111866238822628128535499724557599992923142306786403865355434077304281008063819448649655554287829273280765014203939612952830484993082781963185630248995743205544106262144930780016223598868002366558257080434834560601344531957030033613824032658025226392434506612224172149575796380835191711953696723425981250386383966373167227036648121182897427351725192833998515426730251846933118532811489410642510100355962689605927252999741701523924093713081879236201096631334957174716436513025800724820197568308135333033761603395961769706441351858116188298643848210307720869604136213950615045759529197223604465554484632357732521016436642827394166314399455379528579940880598816869331139596614926090155008288704370242957566527110211477596148578575890678979644668030377086242511979815250105600447158113849927332473673589403672175893629331505333694286688286260934309606049245629222955513739381350392797264989518417874363518102820473699549244808337440253452309288524377617512622026159576400542470664171785795366308515523698972869879683245548797570106341649748641983710469890465779178945549995917380348612588436356337263519886936086131849099713514541246422363292964264466211343200941191012315829299290598041876564847580832618423597079593845740098390423586111182086506249780259925311149374860957456030568207843251749937706888704534629130826149413245401568230661231207815064802461393576070888265593952031641883084906718553563373538498353099001163205884458779576896185055758040596869025741717154866047640779182316146142186995958209307912617902378154564111197547829642858197359814547817612425525462335371709868072809334885008340602499597817985794722423644202380483740856211887380274019726127016330808000502428454821720284888092317567187850578653658671145521295872053276738651155455916401525538272375589912858321783060648906721462796686579790022685707952753400631199797846597494088644034506111871109042428962266119665336478628710596721172887063347069507501624490136370686700620160023004785220286833880343142125797520758391095205294853078997545389482351712067570895314082400397194932256697819145258308526426065435404743871571796560491118448598301958407405879076565984627316720389350414176606856746916802219022834994951381055743320080224704156001188599468253211829198232575516283031741141607618499889376325427726151801492449795839927570291057971353972813228598723113548657555918197515953521059027016960507466799879771093044164240024673083560408105436769065745597170305125401390666856373966323524673882344251446201530371708909204557389971713823010882028946961680077475823745304297850757870414112061468911422288776843374690829294953569437991440757533068881245867883491012481084714194991518456316177338408841533727200591098632178293381071649198499899906026917130034929538953583280968998500615266236695370384807731001711282176962172541691276013159819297023346935181986883883643315086515549179506224716942849748181719945960025134040461918820674887429315403240980299790864474572726694222538613026869866645956362977946204906194045246505209727825533793548278361671809298123095865766235692515523065497189161822706256589107372172378590784857288524711362873538540857084187653865435952045044804920725651205335661650805594353985832004731791297427719664096134630933450161189359374672270411442926077999671796672190100294176051618062054509800454570052337683923835234539308106185652882799112002448432665873271744710788471987166006306394283774729622348295996820119115935904547287882156085223137840725135223769737482036523145211171610701812331579855654289374879404071235839344024143343467548888201197377268591950690478864105272222303365255608387747080998299312770157170265049417398221623925734323326185348740518495314080904820971215525371877560996993392514696824001598247953443354581408659090769780461163850862762050521644864689462790896781100981826210144238368860303764954423928366515037831996801153899463530757791645740588423878068029288078670758675111629839831261383788734203162517716852149734930252615833322048043290288389123179868094749753787853780065389417214591286388729856453803194986176259676594144840312340115199568302750818308959180469694084726583947221903715140267082360281614376917234734120391125630656119698722929496843579719820989161901639254298517309768576607618742960333296301335264203243112608950088197415433937511721452084049950043924635385853046538119257061246753211534460056620550907418854992369535893174798244196537935459764866925746765836749313597180604053533750333634817403904967252721046193761340251275410379618542942129379603400574857172122829081166342286736795172659196527171358091890921934892665131522156214065505658790806694425890230820830019883797630416296297314756250544562089756224282562198590264120629438285514558807253646485706367421864928832447835060076387756014930189623143464003049734321213319043218642768916443503156046489721412810175983558385149101782338868434141175555154778741832005655835022676776760902171177283845604583119109435844563189790795433448424621459490960791014716310428389250374285204495669003842101135827789848288221947602401860299287954690547077672880563476374118992283020606110792062710533300861990283848817719623929287044130856059415898626280565570862973253707888440832433577983072632216840529336320297629624192024214621555644961075739453695249013045444627909576653776280965631959574972653219645891880601180871913966202396261926109924747542092761528382669961769229210281281624914493057437101900519590028127584455949993349604806508980782227395554947303463628791180462035987022873382861513753861931116485123760555378511772038975612577092151588634105113017146453191307899131935207523626801130750105823763722532288652586929152600709150324806027471498524461607190096476633191980178548844914444310703526135823831369643675356057267029086000433418028383672034790837720879500225588860206715398575842286938042366969079861843572212660572651644515024609872400646252361824104342170949304535070352844967588133083556194744580409289828092140271499022668891824326696080235826400330838325323512422440097296779163248971013303906611724706959848393418949227355495998249892427046449717394669069580108476257846263188665569527765670250831851562534445609553485929824500547762910498720199081206131517823641775586150344099139745213396919292240187163911975710991564713100695999823235002577158191339334187993617671843338757661257241611121725827704528115340811066995843365417614999823271909401511940505825345382677823197833869584628612862404167387719350489741103521839446050797812837089545583760399507854266625545159113964227618486732405287352400521999991146986667365321657065851927883898720673651224350051317987058345208557796866949370076313588674073504825456127007022066833544439441123274457793214172030498682778406148446526714244739250831103366948811682628331521460758047681889730767132707859614816784573657666861517688138277957607992110807594163946545636728800549212743712044423060770744854111658656761391052403771350974800351283438246323765789589576139967000345734770875477345178566927870483666351009476949786217169210592448109661262161345396915277648822015899114307555395007613199736348724696574244531215882998464217045314205618971081565297094395292892138779520292034034881684216075691533610805184554974254955879181314485271899635366679634496783132042536754580991340560121301422068474017183183896393835307628038379494887611022883242831049639137490344923068524278327305876990986055763851458682849651443317585617717832508617036003927288729668377223103583838484973317529807185020563358795262602742746411371931575949406801101862297384251272361160609878373876067688053156224086747809343375979613562544604842401609708881930962936362252570843248342043483147598537044716846189001434873965251774804406315978575724697810291002452470228954938261504533793733701851149732076135826920885720111120592735675786776040445317944468534728141166026241988500746771985472800814127435231080673504051561386296111172049711036974311692574832794531228555625635499867222211141423940550722419956059615411156770243093413023213326261649755765640500146810649058993900942617761538852998687097062154855005702753777146436441507713028293471683200046281066052622740393217230584256131510979185794244983750281929448762280242102294594618971129699851672722292030578817335849423593443884344913995146976219950867177967874332398840045911085197157042413750450537365752030639400280053035071771746851841573649011197489073978309647683859918020669328132448456361354741059985036666322820019054000313560095695934818749112323628961531057423288298086679424000277890488632272844121742324838934047860991818436191965020384669520348376725880975396353832551796378986637878299848067803363495590721676049003624339818030624097067086297552582711325406194967302375614411225093402893891819994681919861074947445538557696716020171337617985496113856763156525158376851918851899210532812878409391666720452574693652198709715805239619840001097264566811345598095135456631972723917809448856491824992735302537564260046804612655242769676374201916655514990861850753325960060145990670377251158521063506462773811288818294023508843550894914696481675856609866537106070980516269095963401898376035988421856608442741334507820184230577058007688928414292851006334773775225222384932520915502539024544321910283851873449723694698664978470057206671218113986797551615378680910811540275619024148044582866737425405110949874819839443093116215905344253734332667117799920418769369809058285735978998633383911677435402920087530533831230378921517722631598646309671380719995979319211089421491031530158328574562586104576070788124606207403448276662222152560099281755014071921756113448360954468000133668738081082889378541127205150777840894112476561993588234357423717615765592118013400223676520240876369951456178929397793045055324936119203656028874944607883824133976377248952814889341941896554671261507813881651075242246510255072942741449113312941049962495177452971383856220336080700470201763261449038997810776351594154859363812473461311454117552692865038288093961657552305294051633925954099881241560332454584640315055974673690963923889287791404522104479557715912873199769893772563286924383422829098081876579124802104834829274209084748923044283476864021450260702256705765818113184619154140145415552811947068853856442621996722848385796629097920842585117784909770712788133574999626932019959701138235449568099570881827484781916673537259020957821684596025025884517272223129738317436498889363895399103059582634506192077541850818124668490125524992110060726043421698660680006556598401860491933515070720350041768703454698082781336186946921069742105274936932635343599653415044662489798127053041961158917563266010953263698810819132963142674975898296102457371196935180808473099913733132271239383107648594491389851612747948826535904805375766752624032057129728798682948299224054433630996027074967688894073434745563204253906397229574570279480866642846918873039314831147021330776084626603165050305712732944474721056515759291861740327325159371702495169235772335442536644082466735343239456502332526419699751723880207562915884178263599038100750973471434809994359055559072426760377317591105397676228450047479848388880320823704486707248244571302728142035525492012826592481927874990392219486250415430764654804175301186011482548785781304296272815511363881488578616719369141104522018160792938542694869212028871307978286475226525392931962351224599432055461181455746849744883597201534408649684511152790340470792547534299503951166164164682064612500556688590301457235430117416077112012221901513150783178931705709087678229918411661629741046496400387605147069879135052520961464326979484663135771350503445498609789086209086522298251232835792033394304243364866006186084691920438961339478965030323482849063654965082991384076233678946067348377030062006826545063045510331706995590865485817762081629073782509229837035307009961521793989254052821607123854357651116508168938083904446800800978424700342419311666146704583099094015355958425068110460813416241581689218607261308217838558297722999055261722963779387427496473446454641307641452612373103139235900938518083266122621759896422753220666164159180043531719072531259088968925685470455364353966685938554268985339331392653319128169584970712400669695558627145070077687595687638953464651006229996919536660175692326863362929988727449593042629116464155248389355091892248748773927704349093799452472033371466139922274448486055498725985170707269734773830104219100349715005319298501897394219897050322444528004965916640866600231928190597016699947031914137429151703070056727042909023341981152223974008353016526803740195185994311006233045986543098877867254102430071141101574202651343500277459152203440868280230545009958260967958031459825428644165480289892607510702343353540594013685588096428742137847366633461312306415855438765474900684848541896184396558266029332625231025183709483797632798756666697526086491140615131149834932449305323105710350199275041529225637472706117507430928108139384812902790136435444996557822522791507342741444606594525522979944935553571270422066596385248470251557718502930194958645876632892870420196312693006028135879025611443396940849317163372074329341840153910364819750028977623119787406429208739269529799117034199261707796778240586356751825637184202842295647295458715421156040109250402079146415901480500080441702369360231018120386906249929071690058458140483064321142890602262753672215012599762771522808690680485812472902221062667297875378632948954396677759161555603299350993579763073737576167576455868884085618511832258091907016037260660214662973187770890245771352424400477283642132050813292380769197208332536399984630802533372283482881248213850381376524837102724657636530403013665623647721088697912463848483568812162883636612564775866789811167563564963439377981447044889969164903750102234224946396922850972987809316885672388663783640584845972701736681482703844630033847554032563501300713704775816781819313243690463041383861517426792822266185754697743423412383636612818115634240127786237618811954363689438534341301264419449128077355568190496167496682199515205254411040678647468820176030989429943176401972214729864085760611460535255410894059200556638595275518738871423847303367396832649977163091869661391020625308347653375331851312562328871454975576109084035410328956959215032764355463343834629410985538906786939395515328574732252112690088624311285064840312755762602885059085311313299129147766474610521661559634739480040852642189873578010881890005822573207008164248620562186610244973783760749533453550082980067934001017459175293490808554291993184412735914456309966139431001244564935219157986843328831581065296343666073246780568468499501090472451990085461024089639672754729758329613883067576323704885067664230268077074823152042953769604308392106988684033668448073658013422444283305347976774184450859540026525209801889124150694369184575364701259516455617556892239961458664693640774840081115631060069597565815003472633738454312100430655113140815549906767329329530710421484246374394298150191929938705940648550024253203350154412245096482989898938208924953719901571207481368773427589339950678283907561016765642938300995130653048876047800104610863222204035087324249620663003623303037918734176873566785691626672010136872480346213753603222906301419096587347169961448225684126150036464971846821054332129666628583049799055026795220688713977125970738665701175158771505664174848246103596853852461394117022364213852888628212024905022375629115857905121508963080656731851406248987188940768948240074601734201461136732893101616038149126107313736768993986021748419465808320464418121318258166089627846680037935987785318483033011213189979226831640565667975911833289991527884190969587901810240288643346417922822072281051856254944736254810646817928666812376105103926625743598466353015905980070864146734964030741822564107242612218623724704555178992230865707483382962463561242518765531179397244402453672006668556938200427414945122834687432933062768842037359937920435923040391194013476454697627110263545679338093475313593953766259332936809064938675389578461396275467730651683227847064661809288026827148287567003511626462166004479942420399171755425389285199527887241810443578189272290008712530021796848119219861382382925338457262459542218079258154271345945320796874922213465851964229618757333707181183348726286402427086801130356850925520301299840162581152496956430230323037045110429847279458157396403651170241718309661094976469854680848695812902915577785492496582465881574227919114189426062715727394103271995897437252168260147630045948715594212908364223338306381492866304163755352105282049644980613695026046207281388250619480371709089436111911062334925559153666163347849441922912664526621094590491300814681117042354885403989441921719147933411564724682678411118471025154842979671274478750805506545957411654115454818087917825900822690233212809112181547420691667064490511789977296538912271184815960356448480395607788389340055126642187109889541374580732524532123850192160320584489721119795821519300036859296126917192349103726001334403656314251557527960963929157724064213553497924772504682191837627668261898504054343769447888735277960845657887529608799476728561770982451131844612576069712460763668186387579896797316788067648881316443049398900584923550226866242928940237308099793908900599004259094216544585643751803288665010359874006443216015865893163244792000512203434665631615001514672019656610354563256087496652033769985249410165757998487048954912676458415093418316956469868061385416499425583291859308168971699799870776192195355258741567028519736525468070846459362672287536315590503449161767280456997636774900260381268092720324466731211415364087298372249340324530172514847866410542440742773805895893243317344815058855976636163738323261048189305948671183827914871912733867157413445031567691846500979926886846798132200688980234498147543401252951911400628750237744194639729861988206344394863249700648187284280951637465134406224637461548996694541330087249733221539272116619957640019733719762259199793405749365953151137193219036607601913730836752982445594584325607094774372993371544792317338085675394439604730980353349251455562228640627959638662869805205351428514602569383575587360770676158973140119060867405512789067506127855925073563452697464213581634239859882790856439236927770944561161684066296081492750890935659316437897319546983603795074943047893018114430581607576751403658921272449466290799858801769291644126767842431470250667685546709884926272140031008676215008598534737767525342265500010796509003161991774772619175270675171553480849344880396416117012457598301934511692321050786838302675939812371485041832852950044758882351775402574615629515711546515992547052580106775377212832317994643921202564252311926761260291901636496839313975737222422775117292444167726737681310560569348032600415289338234378998925216138992020525748327105363838550174493192336009087785693274989141075918552455330825112681260227164894476112298933279155595217710633415429026825557720345092758051946128215929317966488658416428711812590869163685474553786284926930275834261328422888954324724933561054629236796755265326610163236362384100177029972580635641238166704252242056022743601202469022699420306683415655778346822852754574262697198402516629462445445498764084809191820124635881688441911095587858110948612479180261903120816240985954596912825298650745315386966989818485254392684713268973549172578372782606427888097914145205349779619315267709335374595540495872593869275069734828135019754082827981003831861953434535294625020983673524165051266421473494515860512527809701459881876601195981315963681374100294765991740490177118965660319736665050669681942031334690941788735738176235110585913669773110836702226018210086268591196180012919777739526850325684020147332258769131050828315479909578592433386946585385035520637244661915373905644481053313156421981332682260033454158624802067812778894722865176315927603328014687480981777134066430196171005910892743627690849326520434160460522380925075985529813281924184398654031565025616389870501143691565778107165830952545202269964356436909458521007920768941149287126953516964031091118965739620122195255891777444125704164545998955736117022494128718720118252780318296046790898849745144194396595038250252778580351765664935971788419054487326249743488256087192119516400523518810070844298320086687655832671178771537088823333009013086557463544964419106499341199155529926614176599758269064584469327936742266630407752224596208462203192098767672098634737392714629785867362369715466042373316922633051215199805422893684188483662147165507631601361099561545454034073155100576727681691556092587722169079415136270546468268939775882524832461399168471333956938146684733767300696732304418088651659976218183651209117771313260473063406145523903467914214357223655921159146571254293349464953506178445379331327920175710283503029777645964446546929585799691389601177671916127585320651824853276698169707718462006595362923223756974497543192494117871652350124461453346119909796148743782145467801032642057202632539805766886087691044276948001297887561726936605601994943275440620835009866968741563329409924702634376356550333512109068557877590773738105280583252873722953512919080246248563676485120515412497041286337207778688926355344554148216170047870484456659094062174531462525904831996106964430612010186880035568566247113165122384731178412083368162081160242029652115790886555959776444828947371491411478029645982949741661410855580318844262123468930538815992832158461692766477940957445741408793797933387128943877711203019013055046063541165568619700947362424419116912686005869891275893038067010631726688782993177566311657349371825313272222612102833474805151731492212333948967186220051352015432913148332501561266084612743189712567455305496726349801244721830190829417045362530662285249104410286377960398714740617686533175246800682356712374722835686261826045077500067453124545792401567941375650415196442561572283407662634525552207363859547251596044758942847668736700160425982559836895896719449632016280617050950074843183059114827446219169717601278409578832368291247773869812780794797285731979534494141681510501881655517091159221369935777083107704645078711559128173631324520233955134216596740165002036824328286536839467188387509795336770983993673902293601272120689156650901573322715251894466197466377205052148226059091212181156728806647834706953336384544762636093946091903116681691603923188437098581318770761132616700619910812737673798166179437624058068431790166619005340534627279979652587239732963230464841638132794859556698657222205675308054385558720194891993664594513427139845927865726370551134595888210348253704218144995026260267667080308293791441154837274834894621621097253681451532069015787709948338455834356530546013229080055846510353266056013551649684181660327842865619077407841467083750750454075324925520277509678136149109307909771270391901844699068421628921871835967070934261420924248105809592797713099562686423145609920343703440432239441974834758997742704996476973285608948083531058078302562462371379772546845153582064304422546735704602832628966109567783435870036930060517845450475965769146428189685929255848576535519848124727901207099313379286817074897693491758251071574475357291530245093036132446817521820175169629396218116510140567543477227777107790964346701891545668240939555055099003237292881771837138872049528442377130654749506382235036756883056686737103663715064890010980324302073427315685533825202220774317064175817890124387750447382879243459026138716440549533022712841124514487389813664448247695215487806592511585138525944189792928507169196224783509014908859138131973129553441641022280691814260956810737139010636145170325193694291486709281774725517166504747853338389274145237905574592753344766606250610769161243460447397651766152055594282709340908262568383487131162461107746967400045531624994345440291839837518774710541148246373324740031330398363911202235004369144667239915733781287157730485766887545070366533995740542828306532934762283156478460595282890495029600768489442525084859895089412413006021494240601146340866267163974392725110217714378385761524104842656537850237160400660935930747364190367171869621380296574906447009061983153559436592060003425729242953627999184776567529087587523788627821528413783095167644408118012078148940696950621889163006939680130695574264334203081614518212093472297066686762003189794811794644957453135519909195473972190816364143639367567876729109595727593862328713793080356864398953953187800960475905336455775586972789971352220549266292317836427449045955589300500512033639345212046654170452588851827802477854205861119730471366974955909011579923381593605700049592337124377592222212505995552757410725337224842080340954836637215044531574631627156063912617449212433891470843276796205498002343846272074229496806125478679649763271696781851861231332706962132214548555214850827513691050411127941000885640576224642668342601701949608647998790701195409375822541803098651277693925569624525604400302352554438487180124740667962833226669914604963246849599717694378651387655235743833927603578609704045608145808067975338157805959221338604444834576726936943003482714603278681519961275288808188140585955081978287230030363265624087303897488540030577330709943787260210878459448112447362212057472152085871102500900256676605809795188998611438604810854860765631890446171055154733957433672226771970353226384952043245922552000960113872966428529343101161788637437331288618192905034571330229302019985410044477927552727379666816637930097149314548729146179664283042414409084346973241052319995693146173187445235167150430905273099390158384755798703253562362316223585379206132412351144113990776357718674199422908842237195787077507512238481982878768168890111437937448112795103824710178814369028476320479114140793428992374136401030355491481909303005805468637072035171568801379231591773391602454327945403331103693626954117022343336320584117737756591153623704506509972517791535683421899268799588634791838200711229862001391688630593362779303144378331940740030748477947337860509552861470363381069227219732450655561890735177604601830744453991726621484300244919001333209279783407070399851746913235861189745921361531939080059761235652634831438189070147435375110796031060263711353973225739563812659755062509653734873231691277015728247627728818903220316034818384282587284812766308250784632850180989717884709919711588221111409778098479076004655066254121575206313470533393259046578561069137176000386945008416242640835787333327400518094871237662505415105817137380009486745492286889877723393897391261121439945780716771812667301245391272753664509278467614282344869326900818150279255747432289140092944380924437555350411721668073812903745727512052138075440965500939280451955920427186667850767931455908097286394403648828289871987635875677272847179383224769964491950773801958746856591138227118780106352805520823307450130394736142183665876780599519967008585917044226366524009494658286626391574850535685408883343216611346288211650449957137686264874102068467185664614672676179992564828435745110287072446252680416649319427034722086268016769274583038661602385823892387626719762749092159871393589023681600464886816003300337550133554994919964180937869425470536309088130641674640230952875110447158224624062357814971501127352894707723067422551997938732727352248352636881811874784811452177409930593217850067349583790506397067341653885644123454201446490736972500573957689562640457761629070936659761737143463884033389320582592033721616782236143700699922107171872237160519695202456120962891311409744148299497947670086606776026153774856562980424315489513686382384126791066009882110095234032556666253431909794678002291680565307235480547612570923621892467269150453670772913495934277909238067669192598784688108030254960732432683500445936377352217633470450501713740327434445213152765124581838443317171667878323124177043780064888029229665422286553099731729926100013161131136607406317420836204991068769888666275667835986458562935582803234429622912940034928250888502499330431857168763447713793013588764706643191162861449771073049403870739720568447209943503579159609025196967893924413538389790458029946300742486689443644547838697472947886544243809147672440044558200849197741537367292352583975840943450259951098422343366522182116733309228667201346862828004287187877194367022573575659076197981428695958404081162499811722180766068667667511979059243223106567965533439729656328663166115986038364481679111064092935561261432512258223022926642409941056560734630304871262795978162261739066026088533087434714220074387078610258612913097939155095672841492616200280772075011248368387609354741965008872662272045884195438425618491887536315663151301779379183537914492370096172722995862418515826058195101652813191629673879939731390694763197845130686080117475418873652517542551928957423222080001646437417946820220726857739482714663940943526932896225793389559542559099132450261004261948843530942416220487178866472868825462186957922015012367500184993536926819957371673698167940601851558550473678117498016470522406011472378830349607532975440726124647536565982483213314887274044602941107939167056253155642824775637144603774054977819255631259815325017959721129513566093107066671279985705624859836664594239134401852511151325950388493157527438028237076996579679366248069731031995357798503052025711331900052401971072880105570928132739571011904259865673556485036978262718515091366781381915773752135014975105548351446869448978860289442745835954860602736348568001707523692584194043352021777993175534273871423613856857860326221214746987914660209543377543062564908238004812841523638844270888449048617716830023031064240849049707697520832384521581141856194804911815215902262735973064032630859628146476805863424411302674408222965696867012050454529538476418786638451714887392591648935848096150134940610774519688341093878241420127550034021816005897097320467466419282110622507869517439451657178572224677146865111745182465708314043116436544968001768291624970366859086493080224989779071748694672419848848502532806058278070877595423724212558335877327954987545519864879035823082556725389035398718630047137852524367480739695623994632262411535125850063350704915080326651108655890453223090636063494267191849527827919828579806070534281164539839573679786379953392492024009187456949926146693837253207001615054405948587215648825337951630362156116554703496821929201830698564166150474732184138217374147560086334597859836170056477405355316527073558247466192834667405519754186990335884798580950629305041679711891962373662488945797934412058873164119408654343902249012590015404341879468830693032003849116308890443588853500720961600135186906240015252767718457392253410392258653403030599164447492130991810120870013044839493789378874044751790968836557780952375601016039624651300301538309129891008916690588756488571461095407364675876154190070057233910936541619305999853713701332696050195183571035212283439896353855099977796770947368829244955700509831076237069365253999460245482972400690848506752038241091087891454274719209678243212555084559110607464283529959815731208336150467753755615576153785385538581212790822230981837222654851715144195012362791687936023846463171306021974623361048784114191409218190844964874384468828471935263213707638763921217486216576158591489266507981926786720097064864242539337863838491042977835056449026818431531106502664506258784146430644791593795748890069658808969244087230069198247141520485870883541964461462718935908372050383231568407418555824087552919147426120970025310893986839960093542591342068175575052596816894878571970253432184991450225491519711701644234866078630543472489266313784778700766106182719250136923685733001522465604112106104977148212813255808813211676223897854106875225438560334665423090653933826208615393872124165383736944417725269546046350270362024514313763561271365712833351218945253234520279710765051645657463332477281791599736237980870674691303238128378051692106067920871448486908317011538724189202004944459225563908988727988555743979668636733472335159865578074492357920915632825294505523126248020483142828208941523639516410723042235704439979845860929255827710055589810007937173887739388589273739076526427222221625927668032576987594311555061398652612209961200527891627844689528406957812666359460868451398488219364852139226425190562717664434920667285015573237985317318377051308801558335048853213273531224654475979925768332132659607023426908196302923917234032540695820586831571033601080090105890565904408425740509496821621697164858021481628655237024530191385341082860256251662376069945565953377014880125333840352474706873229670083350469544071630585970815971968062697336882747056273231441702571906272389150723848274450112249654437619976573471809006565087818033557235141046710189485212643928481866501190646653928905743141453365508734744372890706378991519167011030786173743157979629585151913194489243838064785357258853773251541134866978414493521416770282910258533855651900629551054564265374574426724051770342386726155429998439805763059524052139998976761220534589259630184671662817729825282952533724363048030225602295750895817606647582696280217727286653694948451230176664131975387138635358671089917568426379117621115565661042710592054272527703335791589062057970945458542991960499020813861376102292510049224901835171457834642626329117123154434359713461963407987538809601257067958193139890411428299149036054287709935963800815492606087811612029761057271998141626306870119865938236403352224269725209339427630831355403238486424322181207798881385447899692897117598592803101015045981698032879469404864182997181736493351637086877721739833617271103203324342983792115532185060002721351783993374769571348150102366291331956308049748520853470368387187551253709898279436604506683585745806761637148702117869848056067688593102956426260687276755117591304058157166050407152511959357529509394149713705540066164989840236068515546439932605482070687018632016451766523401839153984166289593922022138335711917996532347317080736180889250703641170260816283380134459259812259934165932504946846198438886386231481442428703858467414015981165584914400708898162606856099503227349662038656252583050925647287968576665536849130674128918004211661796617195654358045164418310157226748749014781159995146005131165531869101035753285630615526621632993703077077179507096199514073160761965921797384432893389969235374001079118227301124548873413184131156937743459238434916742702401085890129224704241768923759324071108208993430531998929661006937098418454317738536762187612273166368633238493949473942301814518235184867875350775266077060210953106894698639791614681053392631577522137258802098993005013971898104575059492836934129474486709439456941347321355030272628376908380009061945619034691310455791595750411048029032267351533208935849076747244707435920654073498283791490031650942742927686763861359370178481544567349913420805570246363012636335400405587893799821976963571232122435930155018220368889747392634911763746437487494238635141484275905792447942459819591755758509231193000502597158125746972331592235073123339267406988863393302428619295998885264132385690196665356519626434908321194022960632154869535108260528583328166676503437495866562179540625810350998497306580761334417540875886093836877054791682399136414540293544961413020136143923196189405237562264107238387865446033561210293633799434927443550079396086430622470955769923284969226131366301540238871207659520371968159908321685875298758373593722376112736988196945242863548137865170638410395906151814867990609121863128984530420941665541995359153714093285556012358866063448946937466610243525365909768837647022390140383724501461627882123942166444306140618061089722495145879395932835972932331444279491121959439790903189905835538136728949674213989796253641136930905232277016348557489084216077272649937026281129971701355589269693026908327817361555740375431440995118728965645287221356103431783833435898693810639380371984807080587394838920496601102102440386265446852196537656399024084934066915695980745695454755118241129959977047726812638013334609308583667640617205895587322949779538076730349344004722588495915293273940025720582095139635897288136488433947312830431876770409695057339145788835899337264626196375233661266833379616624037167950608546490635177030169850814311380955705018359983615490424291437733479623601434954324090583601924357477111615607676668493283312260745367534923867522910221133513346908660990413468706382520868847234342872889562086675399970380568705675796246077392321395483304516257438616669808149641921206003838627974128494065175767581644243148429266402638052043212363250984857973892601016898005366334195071747506615417050803111309047032107278108890988505613519649620613784022553858641870032786925077433845809151966711092204818289861636024400039962260859548809203341859518607912375982504934127823576217031373762858789650075531023001090223706662768823728745686481514114861546798656787419662726562357551435404584138227024879904869474095086075698876860536460309729749957623139716401792105827797598613693698047352389429239232524450565897928710213683162180274288524863047495406814388352050910914135023837197257681041262110118199037399725178334015684423958231689540976066973874464928281097086210732011961280103376910066783508451803474228219989867452250702445221232808614331408442515630699913521630534111765263546400493092459258339272881017525883665720331423553130091930705006107878240997026178507536016345177321837150289808813192462132710786795911063435833458180104411882287989042266644159781729058174025147791603194807306487110968390748457850377133191209938550951968856938103624473540849039677280116879420928868068930152125751664963806950584558643337649362728891198763064882264115054754049337557455740980873759586441786006994640767507321298894970847215165159762658232945781615482911873978041622140188764816822066067826229650231873934168932026637362748049694718470267047524659304653000283468694629212450101153029822838330918356171966755882839201737109517069747610499578716063745659315988177129361356517654576411104574239699186960008657880688487481908835357332739317156282227966141154867738151522688071849739766888669870314903412783196033357665686845029692190051769194829389676611671325708947372784333265240656824034096655082684181634135383389669233350055804556117403663830378979979550573186701547376466531543891142554263706622934708128469369918117560346097924639018956526698141271941198989863791514086032267510844446370397943955024833935666424486263051281212932955584084681120220419457169418811523798348068215672114000529895784266705339595792932050478677287173866454727952433191029690435697748725515220303973021703282316103706656109752969547147834666382954145523435303716227821041322602986701840139248519982463944157358235748803932581424966932764813737196274490000816908090742770914240264851407108357112502170757850589681532750715550642220462379580083369640738424351769243466781212899241873459152007229535280630111598456590127699297364426735485200527651136490326190259469612548159624797036687531256432294307308958602186178412571858718132494656020740523264243726565871199865812740510337512694647046023920018680293451456809030648698681097057180220831166785674041012325858329689029803726432611318353595950946499899190664702854799280226579190806070049565772098535851457932162583064005252527185037495821904427201493569635576515473269500446406100901510514574512168314948025178985377029888244694427223558169409430978976474488113528760549782728733703320615667169351195021928111053611325039828702010401242571972832634471505390710185591539962461551504918670724604428974760486580023089362771546489224145673178457161626975200881140664876919188624463505191529908486387925699532469783574422263049900636917607430919340992979446947518000158716659744268140405662092147702241981404857474588179947284792529497529679137830285475697019595477405041808528550558124317612851059541927407431570356903748067629724407157833865055251597352173761020813266491000988455733449662207324809589641532455542709371214109178521451223179201520564077765437800189487755050368908902012638469113445306882676701062608775906499083737635250933583651464916456895891414900477399177710023870092439468904949791603697762837546356941707184898733336097724302315636056698120994552143567071499683816839423147288260785874609752832103777250132403456103463212628688885496889788948274572915938085683982347753702199853331671779119007542598222914534866109735983964706707393958030992801784852826967979892443635328832686759600872943803757541463637729870286581745000607465309334359044300735268498456407278503938692675918106879071592969675911670201302063425723994236069872579851220935889104658583066042281760538841848896739509030911834771708435650925919391065619165163541910745263575193945776678140321622715616361140838522303875740431130643576916925262712433726423526847833723238998092741743265461681255558174219840785845240326506657102628571448721682965289134743259585822783676417673059827506806184562725331205661287499904021224421196075854022815230829883968177270848986993815024732380506550393450636501114141329345043870932193261928181116222220213071972603332300878055744867856216933986338045598268930740489186091070021726366048534023066304694321799127913675144079252259749630743220310942961035851997638426396210345821695884744727838812543481394575282555581579878144136386148403930552423781124389021420866039010309941122256973085013515731986798732434000386949133173618196976375865657222721148273776688808119692273179644073599275893410008142753425222088775405803934356940904579927893463307608677504336763202189341785322020889557664572806178877383924330605589455800873367582746990912935655788662087440372316420727009199146980552318783682516167220153754150866594313973903158987439834310954009294986135803014993907042098194807425591186966082273074992597898155745183170836080787469827863992726131294156044966570766841273753690178188233132809442760175182811771370593384647476041363156236600504685873517775539347761652590194437835555926242324029123571487412393073244675232045043911386787375507371986009871167716012534618070945491676055392156223651441400881248400436575911899645863792782693048185402030534938949896458800989975219704484511098242802065060992282352982133784163927301379072922982922110558073174749106799384666350450009002772699804848950698439865501374306440635876487442150299222595991371575194872513151628492948819169361538638051340369553134735021258438406217104103261649322455655915457537249393162069455079724444404022114761642173304722389832062373112896514018312114320710619679518016328068706682804105961372886116017937236579137550804063402286176504772347434497082605677657280968599214501556027732566353221294559630625392759212736408516489606320956218320842441093256326343620723802715883507606016668017203611213240654145735669709426431491161469504899087645844019352883475053516404544717446328781206707322002113383555866230717872416446970589384396394010695742851635428211191879559251394133894935730699039603304451976036020322234277922695931571835320978256369416005065389103273858255585455957114334276679521219696641851459908744804062736794984311430077175691437977815139927679679295202954268723717467221184357827411310760003427036875397753692869364645044845269514053140957806106881246887266639945307562213837269719161310221639131863849596470495164116335972848046063489754699558067277070015959346683276164116431895505125458969931270143900837722030114357731501113128948142223709205297130747611040485222594270465837333676944864769733095676670750067408664798989056897973794446955301102822756355615151672356741039032176401455249105704097897609933891464523822694379701645273379570629174376775190904445403125717176556516459960023347043632152517712324888026468409853516893169839260937814336967761352594017711283833573833406413035404108212325124918253753396278409341853283571478463465621661275828490521586220024477394801916711233620665926506484281149660688730927376528132513892351195418401379867923708964401800346996465867587179884520367805804594062712346327935935937390657074242986759209901244918370266688856416887495620068296518869523464152255880545840616589749616297524051862597493250360252853580402876632440049268715108730337102044596843492967873622937857380473090394438387735594264781296974850922136556406251752225354513331884510477569903161169329447869999509572714310300237414252812966117878146719671986217961394281686654242291686462914417340905304348753923833316329035555483980666760480457306579544332333206508682692390114553265548247549341218970936916287880051307849527799196765713462653762916376578954215419793635849314465056882694472591020489219605470350335420668959114107040003744503938900652293063289867877274505105685998074108711213864657045995369343855791101593225977828347266048937290044422159950760537728137820704510315546162768380231186913777337351486872959918247518583308377595062179313286698255758912608340207230791204885108817779771576773791270429991127600471414158213188221677994688733598921447760800733370926306334998697520974538467624510916044959818595528113091504023579169510383597007355102135442948756978128279502045633769483104153853786963337036225965916274406965587864363070119685262032023519470243891181650535786692221628259564377582729734455929299952671133575962685131879421151674572612783366820439593575035857978121622937252514014482758953010252175578016164919666148868169103470307824985280645471618445015358859133204724793546560954341524783925752503581580179164258770315203594235403231693569859713181064443114776898830297105492679943547636944353312157541910647386920428058076593531351043674114721521661622276512518309205728476968395782766843999748104593240508514080376730430537561645191076779997349413948215684355379753399235294207011800168652397027849233176478053524592005842918899336897536937793749942273839280503888276011928365791392999225227432973844015065198590213451016453474638748953650878128190843065980441842583761644797496833627399051284503123807121092119297645024922016517439130412302059402455799865822808869993602505668445104380808699499004928218938817791500179345527598646580306120395938478269229665724966831062491159225750163647311057503292032599569520070288505879840774872907262912342073643752078594178147982981328650796483078921638455197367222857765229136064001640789922269120183837933350786836724814055989162306080228496425723874322990291971336733684708522637092746842180860395955449055584925023486750677361093628578279729176894790844998147294436140192980994086386254939611060609187214517968542828910940141555338264461259237715752875236816229952291647047132522586645307668345057163977611411984983753999211486609979215522404083236770798319844296666150894124234882180379792853303335806613075308587150424948310447860312178653787297744030344074855360429569907605130595010902137292264430726173455171833655129307441758866425640006069238226497843924700225399706400652971919390987710393576071495983855041019142721964205065751631823866698984024334716487310058475197177999976616364817413347121926863775284272077394194405536452141064506313671689638923779338125232468003747572976125277336496144603061019841575087474601509168994903507172522272035238909523093294666717871610829478641885945673511629622784351487418749236723401589383196451387662518218822847683254499407900006754490176544888650102823878469490550335264568621894794208278825572813912891108823118871256567316149526008198725221208587191156877183760766610914283168949314810633192592326802534375795016504687496776941142307780177287968346796546427898469845810449591295818755542269171152077411409241032937439478293118035422488666013885434506454799689167173299146407670367422546222135195763568219790889825053456243232994701568380579112795230121168679491208641695050516892288321773917984088747914587903231225623569179611892654431628847272643175683120334649060108617662126379492435481610224146239509481518912140639426673688356914793012938237476801819049163066260022159698073944424460532526035747535897919538448273711100694709023773114686656927385857216421429856661093016894272238479401510049260366421140957087653922556126828234177589561830303423853311563177912130094217404680422635624951923304378895412209503081514195949489353423681614267955425449912647267850983287054506623439545081100985417916894893814720517825951389024816563726166399208686897558972170897652457294687055249600555432292316533089430583831698284787436909411619854892679576144658565261267144401739144774484925375293141461006298759323132412296379978500111022438656228389612475768387847112715925100043243156436787468573963728610288702869373426412953384670789432793989692831496966361734150227335558390826049521848293588134094312019465533744960917440130755816078887345079246298199513381311764470573715216384247543042358393233077610753818732709452614520022441302942097951665557590320927366508379663316413122206554964858383196877756804349377907015896045646998415003837890758099370646197243569436175721679971365973207957024378464895173180611453229106134451409111525044466743931926117361850056404216684739662044140949210448121576580498954442572049604686856986141995013626350743773286515973090932787870658269684311299919994880793897835086727140293402249997114609628130762200881259408227399611163425003848264063945552918425247505612732856741364130134241465468721204068335387582524453902910829594799111033176531210297991483109409472439468794565270578551700071309643078571179539711504635511445661335673337286541781324509372627765796989984277574822132553473175944031092909839068177843114276436407130402862139068063193140424656676829974676916737239441517227460715767293365229271236706813293828110256980941376631126683551338812937715471455858873354492932254533442325601468691178627007959460358332159447045195354708551910288567619106290387683869553349809198417959258956442985439106888908971681754841029838949002496572445599960465865085345925748175961919249732502157405097669360513066521897026753172964965481809428594481435367268135571777028829443533010946376180231125795724669443004754047500921912334196070947382095490112592670104716825715249943863342898161082792353553409432156036975828713602013277723653386081932432980488775590769858308249635550241588588827917526794414803918553079903342164025068013364178473193205900858965018130816320971443117009437519199153158111121842678892957786549991294486169723317307345092030201852933346449190373105346616786865177372779346842713996981137759027601767341858632365180776517064399419900894248845050163655422569262639467731714370160900767371130658789178460743812012983711318615257381489955323199529870764675982506772409980491580425247374352449245540925285448507681925992903381867267821345997745488764462095787113387015146501478660676787507567693381185790755099483410140275511436884249247690257939953717276482388585520005952739008739020732466528238382395666067700795969499674824357050823114248162495886900201014238407073102603774310516992283251289538911876746800776575176821392926270041747533843675760080378897852604527481581659110124037255968409503881303675481850213586368471476467463446273046581239267187352448831304315487736702790815975819213040347498628922216002593874288328383689051218525894363294510013055911898866379748330540528379645842989991241527415509681272624808508307328094663603692381710932875141206115616590449748044083672858774715815016014352560688613311318883086685625289001064295006476721133837894918447427981830356823518539255600422297939384565442112091273751175060120417586706689665980967236036941725467104432221338376743597144857772933202300839313215258941293389168524700552387176509613300516938326779938351900967131940736007991756885950712250097891659890222662623149135197136347219020537516822356583242125838326362315850831643281656244780579263348777251393699793415302672149536411617122076099437517924237191802788836980922196368977667802704984577335504405210822479377538414403790771334748264087970287380884268293430142208418799446145639547690621640167789912348658491302776489820541616656930013047282606799491354669138534258210938936767848164873827172093621872312193793010755462015261871085556169478698640371275685348140748845372297863322193231233882001662203731398664870514132640591697713280007629637389996888902079429035419378786757360511886782717175057842674295252818665847568337141277277679228768371218569026580212655659654234416428419115824399056226013882122111039446075625957592003182539004943175368500156282773555104002047413585286267946585876119381406096480209194472807060095696821125347659797278863977782218007215690164335500000371710505200677359937562853160194111573866630638490712223720421153302508233973108274071822098509832349954920844232739407779987400335868463800619480749839807210966275624972191697327665718968126602894044873161493151923685191293415229392328232539694506829008508224260525642472364811195149748006245161647892052078381017152981003394658730696077165410712686826272616815418501662811088445865811962265784770778574174329352146106931520218360466488917290399868126442120871176564708926244356676198671426376484846714488330421683670609926935621940382049779460200321884608385605216720725415295750804582485085470048131369606380320058890805186196390641322440945471934556967419029615579152974496117752813419118424113890990957367762155137686150626101608961374749600222485561143213841141709938159432350401557178580813521889151345800039341740793769953050730579158850087362336876649417777902449903415971183833528871927632505446488752316722579926735715058973843392494273324880020077691822346238357909524138418734208959989967528629834750746303417634559040239179506210125069219996567731891061918004674618760183177344508755719839075574100152363719369792009389371037993167115770012979843209700828783161839323200876021426525753339036695031099616483417244341194361991125180441699338418628787874254787888880329897273318145409470051487851134439433003142108506457141280624345849792060496899760470165512157443777557224266332681498532102428720847051820334180009980245257994941172602800210714306576142920192357480015656088444762844628114768827442172048920156472341734669710305857347319085536334263286022097041835111381586873162451016767538081496118036929589122620800436060397713853140805451036256113582571128610148104531323809287241825059161235445790483171898914416882531428782827403445082954781821979148240632709833091473737450803852320354716969680629227714432144358504117402306028841357575474442097331171900136021955844029281334360154039281882444694324503360588186499883024484016119974204756254377088722248684965800425621371256065381203384884262707925313181957504730399294700573672606158170803988987966474056499352003721029989880050335684723152329124576752103332391894441965086289351395436224703303331141766878879108752459607582764231685688015345978097884636825930270639242027922766736640204412952108701460985948145407029272179196272685205385839750370349292856481816435793615364954928571632317869065376784362394218271710551793199334098318298255341328870975400524357314950454091219302058805278932340016646145527263019956007897482570121341420043885626172302162811911264024414284699235763375473900168478433917714635415200635094200623281745518312607458251759461365109330854751119395683329434846735147627062315045041218484519025938538521429934264896114969002489584335325998437587130007783778158574927314026970283699646080227112261010577757567886299116483834656983983081753245640865037692687707862671401178091716831892147559339134524946354140691643458913923490350697102622020964010427945508287371327388728363904641594888413537279953035451735705621009499046384741679791321644010986375122556508030510406721667881521268772064085937841588832391252041183806685774151408745835826340108667514637236124519979220253569344500288111151434322484817550483499672325373466677567218897169444750130592002464822138581197832633451326723097665921156577725445956285108066868545419574310121391149677470433950671469542297158749898013850711162312967669058349384106408618118480550257043951942683123718996609077157393936008537113310357001165953918598447603302103383856705947463520263158776667133953162422540881237598528495840113561703730326638690126342359896125945932729038856287534681186325607066846501298762660466634665138663446491345079682045697505839083380069572351975987086265648270151700848735087938322380726943192144055257205260769122859792493747818361978738128044197189881118618979530538284481077427889785136766678776271727089085822263311115917168613468888419778926696868832895871529156780019766176407025757453576180672842766408454944785952690680064816436531812016891442043823318672848027671549825440208646208961616082340517986275048432434555119878484634708734930746940194356715859693271739331860590450827817708533682722552084160653727847559047830751431288628776072144890415606134334091262138162056335104461614512277574216876996517066799749377142688624610744650948800497132823683181176342252516635781536936752233172761770093002181156074573315218703263638356799778109497218923987328331806452606331539944069240825961562081725452706029687189953470412657025836768305320478605786613808104303544353967394371240311414065834422962616240093821673117912131912350648776284773240753893397633890642930383952034949181757896096358835500970201733725480677069401010927505410255295379799686944128758670268358859855340397344779208710291547571635338188974340386043277083750288924528008456612143923212321386520977479906602709999661040015480351805300659939006706564869936803509258947415354864716208005935599197026996314756847112102216069150089181565051629821943029346002331173803114120501836632614250239621530502829016966588587442722827020886825989732427964989589006585212897925321325246389371961586664778254307207323487299398454500305392680182496766222454053474588338790557458196975515247971456009529947458507383814822155191199527354669424589933539887512638987930675025579869177552068200869539635986103998816488582073282950099768563628740205724370479078937924578120429154690385019438523020356004286929452652065696433797813442898396685321351486962918017347692297656045806710664468085350256478129112304243076228508873177717746712809119195734265086963502784813217117724065845483283869521407799480529255650134837497895478530950424543763382428319159810898713866717281758903081416816716689898858942763174542851770149277022227886726467569419132982804370035876324752159111407914647752544538634660890000813932379447365120744018412202416368645854495236587901431475359272341032034026048666615124616941474489282589216384680012100721833521276830515719707634750934837677452936112675660489255048416772456403357532732696372010022194331609157534180735022736934531409676214189771165308363028520188872430951024770722721706020497247800779599060749784808228116011481084635266029970238345817212810905013862287100458452402178507441767283148016904589119970130897098183640802496306876384750259274623824713637882778747730950761974714322437107636471117758783734022831774801937283656441219432491164516285937165165560981330205270319794112490974367281795731866289327414669015158489373524549317566336396336841654032106323588202533584226896033476029366418978389205647554463764861385387813163180410435346230482187519122928853314153828035270428034118674337795352117201667667871190261897869089752527846224634885948836772492029156376305138318375953547343084095751453536417275260972579887338381264303429633465061127822807406542761732460112442139484179044597536316294441891421166169185329214630975127214580423980624724543350063775702564985439535724343956408552870360578515731970226439459591056003153173507507355648181853146428303400890320177639891415301374902147695227383527467975606007468727942826503710006950028659701398805088846267752409678489420889473646139717827603155646311645392520015417788185578191742845345566826704336506401070841034360247877934830748895230124318378964185829353071110531264518503766628126240883887183907160013463787935558524187692429104983555730746168745289859086629699592476209203509300587279415933496635902987276529655692989335079340339660652909490557855913470560011667368977470382737690551372583194840624771569501267022407843254284987543667014320395066997034265518189618220015919231020378906223706751241697025141919028201615180193785211778996956693578193873590207809018864579362431779208709562443522579708112897572933961924897439787985911654894626907729571352743900971731102384847806354159567287569057997444640005099879799681712948864273990439926299402071484673372741881971756788298425997941349386187267352239628211425587994643609976629864544132632095423995579451623544703948530376967739782065006809091844197930261626185122175578859519729936233651425650708399849504498524695319561506142059161154892727521254239886382557668200178597837124025930066979429745998095504504075399487925993227529579551724176621899033406320529960775979588880626649312098529327370854931325912446100098572890317070714460188115221593700320411104755067100841065193066675389594613097455974037680292667665311514200587245804935495139456155903327829802571655078953676668504841662791201915483249774719573160862109101275987306815878634838609339283418564737929328052464278464987662883587976077911099350583422658294889346743157154864786779684714427350619857468573335367375619174274557602686200099845417681466764779976771885300299127020914336886857221867884002049341401549993506985033817842791049948021386868560469050239090237327460483786447457416207630267501650782440933155369919112380050677655111977239556960355098262920237311327309228753429231771201239593903682768315746864630777806692378343853843815626576527188718571327063444204074384518376072290230473546150919367372223082114606403388416996977093697893597217096729562052969626237202623061267490132803037247483611638219495594976890208522847905688197706910052401599333647931375476642495553190216841681182599733832742369870334821042303729461419171147736502308594648796162168221776360862658545311401079569133010379894758499178494297026528893024247226726419958632666895989447423334487401619207568468910568566715717428623566328678600605254841716322721790203452912884294965352153066221538415354523440358628341738597455607031084414176755091235915534158217109787610658147569421713547081844198825723966808324923005115966724892377648680902165297322786710747339412874998622629119008310890478301005296748372052324267035894881504834843591149641245561040065966610528955031014649901841046106518330834396871800369796635910629123559618315987265185480212975274057296369334242059869005242835738142109746444498416870838893807810897378989176737253003283308570293321632858667116048420518975428932195748651627834887340425615788840339199997137621244960049233188377906804736507557144764475687838040183869210084696216811351539276084059331868132368980951569816640893480659895475501702889045556140476675870635700088887255451033649360473977421412707656536417458563068531152097571593764978921750653300975271856553972931740237738534987922624185027900464442714748626660292933785193153227732163934173817797867383803534821091061254447093551322907161717606346316956740944828195818551781825511204378000723575429227895273177686495285844154571580100027305769073897512676246019208775573350239049709368702405225242970924299109154063277863892189043137435328969659079401942191034683194556836108829323718568075733630117985990160851175364128373400460188874785870943622624735122301045281025873735719802456688974932686080124406577546753362598542238360722849074599184535967841600139983433428548549654875010387466107046655657239165458670657878727731630612234134145407754117505373461835293363995691934072186497818168077985566009428570029220511767907213653971095185281550427360751811109863130191986670970245683903943412189735197064068892197041668784554236188598822148944019114797687324716894302024559783079669536714964974888396806640698383693534015747444706366693041269317858514158735344869550953943228570598377526103623455975264323654236404115227238186298362096587797597647736769291834922472989819740411290637811233918017716686630761515232035432835092712766177086547903644343543729898610077415437152257763354334155547123168587726310758181884369108185524759849745836506681221086069254472168399851541849231345892326756177792086720989432064574065839786191699399522196128990739906283755695285064201793147686004974019291621147888130561056047549024824457930549217760971634272585081928750740863320073703675073256079959813621483561434319627814150151402082947819656744278310411401239935124629449992866182221150991776540621342350543828533386754075205546241784629200235745258219832969003089995113285133534993972168140418419301644089071570115988498954192507655155243520478698907759798045476478755092618218152301342945249094006790822223673494247663932429483770986301101968356193523545141511832133593759145807290275343252413660034142873025653843922136281326166964760233266186383745134176090656285579947645217236359680816108032567348897753992450458642517936714783247985234427633446593891357751614122034005155886454123624258625793921062226534264573889470030710062265148575834089176691178801964959768406043333169671778565376620778977066305175423251982326823604359031126169814291694215446931020240245377430877564816623242176483828055688518553129476590020347644494074280940018592650984390400256822036995405130485727489935145419212821261103890458625878955154976574939799676941415851991331011078628624071676547883734286959665186648096024858571775541681920033517762173086943914037269337027998754315587774838613898028669239653893092531362483901605978460223729899083624611514953870854873661566960465005757683308084395892304186835573603769013014756048684560832828452949790971053940367173125140505983079999261414862520696540793470769510960083168367184491553446805146217017018627456153960815468029603066565555023184288908806780594555012247017804017319248569064498071599679855951698131559832986920999172575153045149699163030828211743585999201292800874725337579509512485871940173810585377027654581855063099172339602165214031787827891432183877068668625116640142393362041745940731133832778986938964955284759743475204795763145446699847740764764724855078414536240917358658856968498756752053457228268280604521241579969379216786570547044808898063469588660660823933227403745639082791878769956817477221840838621161374086099692020286926814800618567840606866373521531861398870097095532865656956375885269149891451879437185888353611230433243752663624172748035379776538213909313156463160529259778034162622300070943952440294986815311603335929700881611105556529984726436654419325837639447766174072602346797933310654246507443078195410578028463955540720463529256919319137598749009214963669098137866479428291069161980106400817794366017964321583857602761018413818110748218115037357952327266976483628283916631472353788766023979822857249781717836252864064585862139279664136887329936306740557250954373337586740505027209033075719211378577722226201166235518538663913761345907240106153930116919939537634007925903700525970109177101952552065689988149470708705329878936534232372211238903422432333063420153842595198738263001361973128073789745061787034838914227229019237154405038395717428761919133827917515664595687055163538619119336625061428334402036988078491909944153288297224012661498190896835465590455439435278323409333787065039521436793939954325053984583008173651242426500577341918545842526241614690242405739355052265986949871286670249645590001581151000735388920668192036020585834491992422315801972484765748528931414735749049522833428678773084022155133239100999773925981328933164801335628420521819594944479908661786121520708939573384631909870069756070138171643451924867962809876769931790356161419438416089815523428403016076077358899573308597013681805024274949567941283535912314520193298888478122538577423286335304225977726414487952604892514364058313565407988853094714207480518962978050425763407069655252938697211910423215494431654988121585090139822530468742198743698680302270029961748338454874907022137324572146666281499620905853844718441059536135432539525873508443135815407873392391078730980604015734546809002074759552752341256734223668620486431552570889873170947194363221901655236950252685181853457007724188359793280141711032751715603979872424802029679153700632188314322008746672692165319516062276097359277765883678525409956615733760469315264932424747439449662857251762874723595632476230446962329287215197789593418015577532401352098986888054447204133610580299258990584824087303204624176504188243781294137865147826252427038367779974186316026088884465348173665628694418696060673432592891725798671943636995818812595042643199062294667469755867394771915117299021372165004729674380723408220739376185516802333970723099196384616418890452211007856954376995091443888313722877895338218033289107780078469753821844793978542381269081132436959313118720828636373045883499520107571686862411505287733388780081460322615560781488174739421267742297928526522922941020689967766063130801835825445164023256115684578570961502056487813880162893087137749071228014189285630388970756176663108787635177461675356077238694173010552116927837733054795168618313175671280936494198819523287332442776083159927341084304799770453991407310245245718613025605897287995164998956975528872406116025242521471174953583866469468899417611127265296054690313085101541506927851159636478993358952234834006837563057978111787686899641858080064551578183534982582301376699275084725262076863662386564868192788834074606202083406779102924161311789534828229218011612387775669849331153869194162761102497541999678081800266165456135464026685668823681561896811492887754994493124099235559996639586710134600017701688231842606204638938376637334593710569279340834529375915279343228229354662242131183622299025529039444077291288138823019123848220806185885258874330481811457972925397118519759943787563960240856558448527432911924320308763254507558789808960878227409169847489876140129170927201621623679698434709534840788984254809285336327947996837229355205328639390988273648352656572992351981043461514985158101854048869285439544733488206014750227504751627719312541228412939888981051427138248657600509425299445032173384011447761691304719321846319840737650985107458421521947586663928766149616962789527261582347533178221006437437408500111865211320150540301366150968012308460169023998832250450589568319620770329260046777761533946146208260351652270008369022095996912243169448443921346602003958387191167986628875623990198450416632816362133947808642478095077289637469452962637282707354241394680239877933302718491163936365747493533372536177256033147315789066170380364863025115580222995726776704662273521301732740040794608393598839204795326701415909122741318513768702586916281266771824230130486999676906349410702059747673648507725873809017117766521746962127756256779187077310850312337552528663349900695183232512387328297927528431716832649682480467579213546268460021426298182622456788942264474803441791924964519420137104500281075879577859370496111332369071147848448662877874167324306207237815461312080483490143405496650923562398962295650687258555128624725516763736274376358866601124270249127930478323806447937530242603539898152971596808427671152644597522392336546226630686643096531690301919977075356125588143122499309646424835101234281244527099609614855720553566604693128874423066004591118384559603721034699049927361135775970164934434270690788463068436185215927077481158736299407357310412522910399153848592542750980796176254865788182110592224285233650296358802560090644456725507897165388545627620322796355649095762086810825383224424095262718487402879523392704136652563888651416932061890263791744344886363667709842921316910755397392261569248771169476995945818463918714382728286011064329837028082947050559791597725783496161184083649626106929903146095702793986509228131657618377458541495107912348656944646602793801521902636385708780496172714228054745716723848160166324944620967566398755646234552382548008846494754676464022688479309244902011893770269175139906051317076205499788390156404882772191614566112601003595356961425861207490932445209815084077602110739276652870161052521614098155960690523675523122128327871445734037378093630563487395665705328670801660068403147605982861789278364622702483702424696395183197183820557039751739758835277293400544614623597631941168348710773478458736454061278298213403678721509727411983274775401351063634596738818772699922952355097493905360519631165719147747452742523142073415654077128280690063755957661512985158715461771214178593819562378303688296426330276127857751404082114045182462732851494690397173535099441833950113017905150202357946196905303247460207285748019900674514850173291756498688800553130920395914511120154885901893214582796009014549332625438472680035789773066060740258498504947551560835819896701114309176089714937776023431465111634602201518148631612872397419449418447825802889374404787918274929449654582217655216719404943341174610337755804823088349404271844907080029324613069931681392302891429223072234349134189794914558997414013233944230556126667634560310361787710610093470025956178451943860889641990162824215685578799492858379119154050365454049149750512241708962710493144824015958031056186263029719437729251392250197997054695340543062968539755942459960600744799229956229045649099221535849438332626899155536148890816172444406545990023426675694251383028855169049917696296058798028360025451021313838937980917042799776179466562133238040649111853729654291897460912755861234690711775943672568232053769666381513113437027332362868520112398893546538491870966553732838629945552142762872749718445350991252543896294313207569425189386399495468190249137598417290338564674132887139176392220123702550671232465935093565371340158322086212791160576377950779175883755480332524066259677813127243749378060926653207160450029905983107484468570272364405884561453129307203609492555908794385606542321790201394847198383155785990537191400893704419185396284832104599223687367591791693580470039402367725414492771942246995654028843375676146944711052826524190699670342542804289797106416054081946492371685430548724982869370271856292363252404605853776127257101134382847870723281098777619612003931586190252871366079720316655273172688463377903554589609419435850887332061169339432528023987236874679264298138804904672243862636467021266166660056848437436688219184339371206529441488044759728864524441760209871095465185584561988210773674959585993541046891891208303562073472376034695918514644229645555278365273369109962068694885499247925867312717526193874495546511642454179772260872290801486528757108669046450514074733595148810762315379565208366082399988193932915750766597291249831769158274666607751851046025825551708093375519077158459563580932516411244542460597275944335218669366630893224707379804368112569813178436390494196008350346636196115992556724655279696335126990655563379140617235789452147518082864155295638022014523910935622088353680099464140444040518750375548633971577171969956742449246626621918068637352239433736490747863163013126902115017711564254150728636969233902651144558240096205728327377892785931529944396632060452604338930563824015882509498318576651540253096630625528922331495479658924892815411569802296659354798498477496708172521392155365743587531435460911881857889461320320393964119744283128408881593691056265243124015019540415023991151787585242751645419565662128415580723206518641259806982815007409566960472631743578106655435780269166038163818203521574399734099001896871000541968511251437617796303946534084977750798746818212303276800429087672220814219927766790812981324862949055869361079442449169412175123984601492954585079344210657285536970548043521109012993578881757891096753939091049278918095331457660570173983203174246767276771560993808774172144137174909878578344287377200563148310467756702966791541969469148621198258192037270323006876124134197544485573074304849460742879922280191863233247061410660259705695570278474853229415736437194148801868566278944602633226118231857412241358784226725983791877775313668700961083751050893553470037849956679359385912708453522568574893389129055926567704920959597975409324091411259864244944949475587619560681052466306471540858378749190255451904859803564615316231374900806232115724213772467636872809088232227748695194287323828505105889280255591847061536778931950395460359086610622090259796958349069641470248942253719239483552467183223489554483169898396296412792614429099231457253193267400249317698982460643653657903084313886758812244169919425177708484586528980963842970400389208006418460112135436527464728749260054513751161693014815929771342028591059453171497778339707281167936637469301116800913815559620805826173737045683083361362353410945610633745743595780492747146325772264189647089876702661236222989502868582450368467944263049839222401578878913688912638794021589181827204956695394673484612940188917096035136768911539905841346501572185497047414219390198820079425571657686786153249464826977432938404456440150015555056357778051059162949609612981587135555962495539458224969355085042520711911786898816567126333206624186040965630072501325818941978965637665321855142759257192056750470902676955545444828894561476053314207956022389897589275117947276929808046125760809148110687658345470295592668710911402229937069062128189504241171203284542037628234634609332020166607307926816848137415894498334461007599402045598487364903654509979211156633623769682485229948375574166231676114153140628549975280086766439586091360485529776319113403511919544761562165317259883876003366652434536850533179026523024930429214268600069773252216045290401184954862886143555673155680851736641990080309501932543497072773660531196927197431325510955891881543744649386933005949396202892120747680518935876378297453138864108966018014003573816232793070136040951027341797058052833005766943650236963688030491788371565969408016649067869226915789471927397235376094932531864917916658694432336804080744414033615128538576840393292216366201255166816553370562510314467376732194089327520797557925700340409546959291387195656410102491731937894240106941752217334729956532265907950660756208360518516799987034815462722737209027299357632448857138876699738736897301309038775369666262618096523560204051939416534426262710666660674749428587454715432393881271017258486019724842155399668938782402515358268414499968566774233027166874276127541080673525721926158115432383414000059009497353639853376809033503876199425446935767411447633321933175675605372433078491802468592155039740367315132262992332429854380568983859487496096443995542058572079473812094914889694617267991070572694578026845879725237943921636391508377953928169061245742789946116979454495056727780545511710373633328824359017786345383882888879409794169491590474984141677112052882250963497587717035784310974473478432840108733745182174426707609841753576414209439815594992045250204033028502292532088962874924255439630126812353264592572805323820806662752307667166545941365222686922386028178658049215672866947725913713480448438797666215126166523309045578609503145254875515222247513682746195495519397073746879001808382316111386848589317718001098684586895122507641240418017007990286787247819477978350217881916162751213457986161736262647892930054061774255319872957171081850793563251422218870429911360382336595134211231604861466462537111892395353962635516716950153132083754434235295235676494237867833234378225965021083832082033299270376556751927098760621748555752740806793624200631471262537256554393449327582495940524568023610616443804392297130024532075179382330987854241784735311029144871315574118557277334871704426996850584668240706363102355812057897747516490592069804087337441062714804139553510717484023989356507202476818442154215174423961223408376402497889465146473592418392294356546119553709275547491383972955709825084929787152216273571068222170606397237784134463329746062839443122745839458924256830587720627835148795113732500770254036520525875904189873048037889845932251658224833724224776445533762293699643341930247765354985762726554746473496319493876348646505585970990097076737243992527175655571269255101799091921579092904671247174701689825933967115764369260475891152923508353926433692821644432220150209670675194325079932971535701899591287385435756969673823673355091313519642794827113858050159098378839162250473300635130009004126038149654802105642710157981071936847989969972614574229650464200248422399497123284035584996088626752057758358088026267216072053358967306754457032928799467397015014310061483345054273427847861901179936567735460961045024543100625688940430496620086035189751852818508576203995134403312272064794375156324697873120195793498124484772713596695167070662993724766406151126783058629718627833855772792799590960673711793992660796699496677917426658193689820324452292225563286458552348177394744721256607079286416284286502952998183178823447971912417715735798402711108970385759243419764150003563772150868459185215737256687394276716160384226603680936391662705362602745490118793336979937740291212940709180314487995084344019088982370424191856675840458908744458684215024493965547092623589992732968176836777770194740123127919218539975340948140275047864238455590493549778199413801319605103619027155426337121220015100904197066042723819982805418936459495551229986086237010036722590503614331278363743439024609158860922349541578373772654860734768947932320086868854702306426767844409900100420680807511571991116265807681819835780775407350024440301975907012221190046360663928014978521858359518483566487305676740097609575414440840541186006950713371022446953901748027784077816687401273763214950046145692132785514741675089046187672029598287184289045966246358959934121441173574105904477840700800310743254843368797559333464531926125000245944441047870756548179311412117115785142568479960630170153897093973510309851482017481032706483081982221125451935719395320885324165541405036749839320816455872157132223780870358733824008993679280208457758002443832320260807084253344332746751215797856166583616762007915712496169346065708186792689310286885266669443676161785372401718178505902388369027920622818387098054972607605484880422621415631839032800518256428808674726337944337410660836130859778833812393998725286013904792299138494718470425521601807991570078595486943026004574380216227805252813099494050380837976782225608435908307585624928935527438777108164215072646271628595552643640141063435297836565625402970466297056990178248258538909771342513301128840569345341995084129055094444808728001447150344439300548145829205503491404240454987117701551381687529384082971413570544616503998705647932067575948235549809720699902231486679527445195628486448702543608660484572795970331051687747343863546205178891870977656797030538489417502375556118716936922203373791653715298935340460205238215930261036624530195455699155772574648895230829604054648092214467750746802719224537260995398999875603253034521615988438817711793345279421209012524281039122663095724852950192951116854995627624074826108471260322052048205928905444172114132769232448396800642771962665443867677543586482343279596796462811912060297078423347334078771471978928959456842058290082677123800806264480736746037690011970082997992064605311130843918921431731104070693641895852998242684981067445607650589976053330252130935994532639377149407070078973858988817195288975797547102041410230803254549329545286703521857412991158612815616894076044567008649057045155582803779951404755671812655788503614103878005598641308382685306668576675319322291524651818298605922092186269785625170749785882236358140068923454136116786930030049109551314487588028253241069039019162581776713291645690873864171031323112791049127971703509141907205568233646093650155200244965917021475259679892714205966807544019001944222317216713071837139279154556377186777138862192339887638202464738212104423394696319932586696455001433197916571556529746477728229716280701268857979132620148090664498810443575844279050006253789408000942395341402750742270844405793774646840625097819107965641730347987715996066425173959312631902559989333656163816645846808768541872037236716744169234265142371237826728297662138080262499962211241440792223825659464052695349578546084759577640483612368902017552821881581457332615634489600292970751701364000066708408649485291848444208723376238220534838662942876995823543537118991756819140520297774387682158586080071779799140808922077232458530141188404930053773633337108306771331490054257489340270362018730888352891555977783703127626706378863095127500170647544032040892887196531453319723390917584312981975023751390488637276793801232289751815107236047631573861548095230033104694192436567367656286204209794346474192527148892553396475783094174347956507612694259852112662070504981032386514318726173130354487125981909157650306012027018512724600075432126308690416070206033851658887584608589945466445200100381124659610557350884516200622954196000994128042915113339261117012720592134732750293582320588103858841053140264554889466854174928728740393883158132524760426622327215307253705491644041608173336342587163469345624954263849340029373000877598261445366247048710094815005747596228422632867092539552056100083090435679463992222358094600030624363844426883063572303495267460580720027468378859659619360050379343547749202348573553066252749522155829184653567731659243820422202779423127065475768413305593030632921160130056247964672347569411720567579034091288863746627495907365620206954727549787630695238627757022233657428568918422429104459515186515436274368086859929197222493918921438966126747842379295109030278329807567780252286603647414372053473234921164328384864988653799543143259858974729036357005951036574958811395959393424614091964429177087662793377658668864479568289008916406286938382150813199743376728525830409405852253836268501983952488627769019577972072005077386832741439521479554492513211570671083306174568194257927583013387985125829998979271497096518967167262281297927484087376503744563306478283116778798540200493520178829439083309939145837405548241019595839987527908347516629077550909411015685370647520549904601442081971837355263753472250552918553482165975508531144629775001339918442138262281477431587910690480829004032640045789904138690120054752611165763103740335044401406845902726329983545811156219892424235775421208137172560632015605421120162074107280061519809784148342015363725549709808981810575134153306575877000531110019169522254905242058157338756964915363964122776477916080800860611033451240795782854640866507217343946767482860675818892791195746350560028880428359344439790916450781068361359399579933011800616509055844107053766296556340407096798053575827936641928937362683674245107190674446554979339904350918804719038642274249282506765929256586845861869599020199076844707474061324477104168230899668204401854161156848303887452207097614838862965177683815308321530611295764809726990044986209724699391097575653015354528281561752615414673263331057208986088044919203170413942876890221575662855836530905357368157743705579068478123735097300915587450949012023415528741824342462145661204485069285414109272190702219415863432111375890677091066150273423356535670525208418529691784080630842826423703173773505564525059585658357099497366526164387715177696209179249963171812899686409965558590264430043352228400323854022021108474829312376182747621676754713835836450052938449707299248200011766365632294148516450442514716014406409930803105059938955809536158804245527465217593005416188389237944232750414702823473300374071670169018067980251394211737993935060582427274995530126226260302140816811296775149211130576616334109380712950074694581942194333194658038903973406422378471270859966935108211233460381314336584498210118592724134365292939536096872265476346249289790409770818227979625588001443227020350890993694781879772772159887965915204143013925190008876007157096566215858371918706649124382816065483701420898749907527991864752930356998233760324859534739432700538880307084034384113569948161208951761217418841288918190985731270490306384747099035890196864127002034815098352732663578474886545895714152749554929162219236027925082728822322387016210979470139968049262857333376996824510543943901436262058284394157971719576529992322704673157513301263129331776666746555888584242483015204783623376536166487315822703871513149078016124518123734327945317953433562266994758293371766193662336563283954271653679004378997875379730611823517624995182651193913750547080090642654455510526042265198939738944972732641802491566436977696698918689824385465981113181458086687874616407755385832450991169721548855075580719063778244061783639681613714994092845980240483535670643257374911017363687507136183959133070916415684237073401384682821003280463582291872553766384183649947964013959752248166984080403734379230698180900518740026158588409693302519020884402649430143669738227839302249312129716386737426462967433559422913621920125561035285556320568809272450620269129708339057658519672779894418934336852752353477212884379805540294164705995856903727234612408296582914327987114682228841594012078577586780279064570652133711719002599800200509442062385509732630358511637851813058127035235747292454862110377991757395035192213707084326555461118346816550720607385820557277500944175074542438720057018385428535375069305239218967763765965490671517040717543158277178197813363088013456940451014285567184235238711237313364611562498825608585087364624248538605400409015997553891517794399897031491874705303649288434174208587874894801706334801124381484231128726246355280743746265127071180703841839362826511115062764596966034806321587418607792552281606788119993066962307837263936799135404727831049851823326337636849289458589646546827316257536137354872962246162530890423001268875848433772072606593048293878725963439556717156644381978018675505589649640908721970372248917645018848726493175194506569333942273049826716642598841218301396720607656071065505408628021658321101301017721144955076865120825549076733987415103929631321343680969027099628581033750447734024883400421074296776997863159137579556712801673696590079902900869477861135156548436151279307334870218611463426763007302517808146905857578363053485428635053574035208692361255756863670036384160274582147435014873156578528004599917519580345525943957897798484344854088024804082850861699716974068643820378519839160763291976045986183787033231986764161782185046054257029384660837900639405814650994191301841021499455192106404706117499165980214145385895788267363898542803849206804056728263238289413811483154760841612976800037978724544636130275242459584996643453371666252258186662124646042544433901001125889616374615379873333932701478130903525228609388498578052301368454095877024179361994165849325908138649947947679733232203884175681485076881083061989942900210408904939984679150125189703412081924698808508166494795125608606899953034677714196416874970204816308602764009411355943925234561255541669611887407805332713252757572252618630248244129641191128368559031759916727237688734206586901412559016512961613775958659850773160399251008621074433936656447176377862633290662067748434555522717512054225453322266925694535154994723323855634782737650228313376668335972113629546635690427710525211407243312172861045415635854983865511295554127017338944008639641970128613185941621458266594368927983588783021699527038440262284880799110660851350236737970424469411260672988367482840718723945521157122463829404822046299744812475962071960185627546522189036264073781731058988823112386571526279612907643250743783841115632592716884359053307092060324185860398889713044952121916285788169680492664097214801376920332666323573221891380896421215975223844015809806730768436742145532263280282026330344941276448337281070959247045241717531772630876989865577183421682673464823903528055624714553210999854582394067935646956719172072884658617004512082850929129488919646020622738406176971846368196451840764819024477380218609416592506860431650154611343452059517424920311977362319006029991443356148606747433558880015053431020230847786440808949713334680103427532361459916839779999722840820405890680711109659992823969436666685618006800605986992140466057978965756314773419592833236317411215555024366539102254011559024525647556239662377506854495706594141771077332206741822644517477354238352045266264578382220922622690128984751217320444255081408890957931389803126065155505837585305855121707496917958724098189696337964238306226243914808418800382549567799438385487275983992661701891903553218155419844124495382140975420191886257449395093312842970723701227371421492313068992846434827310190474640353293459559993508442427009852169349966301302961866419661495796318598962619023254424220939077951055731906245260512064960231594859370053466432982126220102335014305940922947561919661125924715254237853426927862134064285628723883905129152413650114503710119384061254064310228355396653261801947534970749586299791612603825539008396865988703743494990325115840459490328415479672486899602976114677741188727246302833637808815229013466076890636053555339737964700657800745247412774522927683591554675368137126378676564786353247012353100720372969147896691101567627373056009069050409226219582336609961841401407495119333238031401916315551331384151386437093798161708817625838441277523598932000671994321397393470483722490707181686694586886071118442372503071248272731225793255965922710489578898390821355110711224540186781322181567298102661555045428652753125428042208759537148870162892004124411820062205030609046716183417834904196148791812093361243901481408734824952426215373505712663835349967702796051189234603217783572058557851706154511619004697582871513846754001284601591562192086645693040173979714849199071334755421634540331684099649815830001586032423842460340082570530291339283193499042934180053228490145470290609965652533983175420311901251580119280534843626517640871115905706797845942041704690641899561925393578093096984808462687075466931659132734682242215354577349967833196126600233121994937065236215015185476800195473362615114450423834881795719875571251527857807052116972682419802289036071409258997333542731296865481329987238529359453491122796117238408692928941818247247105654411826091200679994598452497721289903311781075192433462409141174971967998449961836616709222273120629368443010346577400880802435978088182427354878794244053363651744386080372870186194705098979501521079409681641204551857114792824998368111130823850802174876815445882647938456750217454770690617074161762825856391029684654043801432766066271175996892064945716556950331483196895926449610715613920965238716695171839433910007408052426474881227776795060069792312911016007023014713130860400155253758271798307272949786115759717759826100836591141359127299954931290965419314230346114195372158959142010256235797439730772910450448478269085708924874517142115573769120412798412072668531024704394722277395445488138573495204956458271497506150424531694882678623232508006885620951763590355500576961773534952244127042443492435506360859908974986996937171812146255858827947893786518967303493372898872374291096516903139683706891106229325818845550026266540282884983044917348782464956862567036692735175438634777044858818007995886069072425608621418052848792211507875308969984621077794718311414087617070082102668723741361568207794631130982171711429326574428870117784370452315654927143362482465012998777256803171286071612665923195208681427506485575984344797080711202759045174218004657740837374390198470438662499281256974587794691080235332577903166167534418180681549989049403641913068150286963020884679624589134002328495730772289141837820449834737975737338245451208982561203056988844026002613316002835259979559555651864685560782620411912569128672033920007804558839500694700993181748333985443813660492515598897812014685587484493721955397026855558449416220054148573819814928487198039457483555514598769249794710008601811501251233097359970182193514073073955774314337038780716036067630160068135832075992964896990758141741749686003895144321494753170537133104151404555097623503267599728220803062893446419038004059526894584674590539735990284964670758736110188599501930982179942064887975697470339016326453174536736533700485621607020002122124741511600122544979909520980377496650451879857506638417908882289550304827035553566729174999739089026157498439428656991240484395342796049725082851395296651114376890465135784768661569016863174817446533642172156658193330295674992128743234843595762098667844569276765908945202403197428261890626846665475009078221804962952058345346429067531853560828141209840457039974771427139940680253704982384073100311209599424371247029880133505323310567031342361381641685997868442080432437714061252402306383550498315489725339845411027659729110844687603979485385919667850602704766109034876836663792298849453431654474528028064947930092407608429122932703260697336803260379699727669346029615538675389167689262908027733938631683573396857216065444942212582327939509020826429410528400955978918015854918577934468287126955640948078001020006763426646579893172814458773777777312622697101533145756650482960025270664352406759427512982461076240685558886985852916630456371140199707430959073226395305830833960791898756962387869580787129934672531017003809534455842418073157690215819894177286326363610420830260729377017478544826438726338547230694046462340798772043925429461093332520122677518712555944604413478536324552191910846638645779037196152010653235807363257892578135227312836704388784876391493958284105675522582488345568261980829242621633205541947044726105710473968068883578583403982425467175845405731096918045847262948020425090610457984854105857921949361004270515022007060585586373569626844222411126880293841805443279771793987682952314694433410039108377573541923578074630688864780039454460825617055037146975619668470598407568891372790562929478452160240858573849581385602662792185133311166216655652786365710566652198137336027657181075472698861354505941348973527338898825202855503233918392211124045212947947045556899547045155195479179890042305166949062635575209056795248975191527662816514342877780666746717227581481233230174311971384937595142462724809970477463534243981202589339168598870111247282061380167772020739165234561936859162552062732835323195779640882584993278165225361648329488874027897241526452787919468059527262279660345468631810430558433771183811281733105843724793923896150349638181779763909819879800229245120761596119520059226667390107730110076560168587968435287342924471399100108128018762449377430318474605194935659099473838545454858595272535754334664627262292129881590814037214404786176402326453837819216130748758364555549597103343143848101924852169175110786826206790468832227972361050271561162441845099219343070129300205045341528290374428675574421736316747341730085277824549773568772306838878761149120475358031034939107917975622851067268616137699195777746115395335891339230574733872379334198334183253271350410813460841319569222831939997491022091591670366012398909450301079712630714145387636255610148957164544987974582950051905863467225664367073160620427574980112899559837345035829567655313643523096295718087069060662429075433243499161719148360057075339994015325654427943582071813596852210652521816593110194983405855353338371238219104001578107635115567817068727567509335063269378302059713648535441725999945218338102594285124573888501953042460405123091125609303234131952691489919911950661147216723857436412647199727463402771502585455052636002838234630291496834084071925179425400795665344731357766506468138446056046952831959718707840434099264677068439815182678888752009266655691628764583825574409929908929890599677887433373860624260355891250443136171026042194992898783066365044741729098717773603718975624185275291141998036781242777759578921644679360643557851959743516403246119862435440402945751664103782754426560646756583045084557627753480802422807386177138261266391169509625417785051946161637364120582566509460407133809904185760304929389572552099648772471461443945460716218833072557159306297171452244881016524458842997664618769679585336216084160267011858320546210343882679880731750227798755414984125528318395996656184616710097965397037476914973288547670856626430080730697604838020584178699606387324014269117751390022186102321567636894510333903150186598077836311225861478243331032495863946968116513590721597050603096426014771356395485076305309308673210063287458147343769308798665807727895750930019583324586259993072376805399591127751097357814802424052078283127896173941309022606965488824379381708551348644415904232396477200421595571413346569974928170732006314198407832931397741762776430770792218227340315481198988097755048498200918950811397293447836113607692469910733380923507539872235775569627549585582608670110530876163353034904515211873657743757827293752348252212834288240015930383490738864198944487491510830633518316644089777414700806623414674720898482432139074775295319651106027490615691976036510873497056913210922479829614973308355541770337318968691300068509257991834655665966504039058496307976980659879095003342355269715700952665948042923929612725424141601901991496154817631388260462494623108177675225070976762115357158987448221608336203968026267449916060838977587701101759885866861146775219367325541350887872330644988515370924675820464829677050319644494123736943958037172793616401372169096496919342777587965601109159626067786457637291951739506725667922730468092840285457705314757055994269875378499878874452411036011086886016725649416627726461426108555382471705485635856075908633944405144769762008458507557789893378205776503738874706538221116060506605577760376279554975540315416452090390343192623966053442966912420900165706754626015935236699704911577393697392601521830809686200842823386481969677629663552335638981837895311994912957252979198703542072287749788640496049703135928237850556135654329238277063630976746008903003957886006236780832709751134339695064678998260048960768790021878934851455120176882993961918292520783098153721078533109715676198619252205795240779041942742314021045105142530271034934898209315175145337656238814112949074708220594476826007544304309371620125219319958635332571564944830004997537583112636055810377076969152458991776374302991441925899955422680401326985205820531976440956239413462798891184523246576436284533445619386070506902378675909720386521277669957306160184860851543536258768145857083110402249310088665997857497066154379494460435631038605592194543527825195865923167030619795587002752814940633420931072464067553612550360063614206126778982621674781425928900168062446213151203739263772800221032967911878964785244740318704666280525452586011165108615923375755550701482368353617189336432536830705943961583814994166869292800408115776131779853376857841478719118162799378223963211662795785119954341691805489511585732301507427629069332701516481150588331929116235198916904613419870359374564075195751307766869714318638709331119768432677386214048244587968714768488130187708405346366024820449906284132089848089477051268910692412587173255465693794589147674730989767576144532972199227349239481620209678517852822902157869700754831922546552477389682549892620872963726463133072267615031181617463058434973246305510671789082042622132043883527592002789703566221985076484123236185672868690788298686615195129098751323919704787466504056180350582642961753560059444774407131340900181081779743831264753567950657198152047967986862617031962383635072961244106023340255455917348340121360770447114468150629111182749317078604312061569654678049732828556356408892572312880059989420807083824430060062944882547362368333856710112961508020408928271642881829576792402177883567653959467223388518541284795482153398413994220579559925063555482278524578055396901710422184991516950100801323972883193963386651793631175568182120861451997010479026039655264455059217797339134863559469825755069499516277799942541659999999768332599972758788003581863097457089578425820597676909506860828994043294190881931312137972113633036424306988666796891511813566712259035197735511930840882358365964393020558018819309425218003252757289982713119536888992715502519450474881123164113166109451600429780301584420706450542191863688087429652734150677578713198823455070947807485160472967391451172325361832747601109877057773525839513977991981024349705174079146941425487806225254977716687137477023871160559230819162293714200630496592630070883581117371206801407489596714158437964815207635003689717907803477745839766936839361555209634628330127297098771807176518408504704917121916714577991479299621496407739129046507369151333329769546032959816877912541057769651537492199695114715965729229411166500974664574407827818874157928465937637879709901457101716921525782419146141434608284567698041489592422694623422613977390586691581675264785270057733177531617213683135630143185656300953351253018071479254937627936770161634069585474157965831718714610070355632539072555618619857021979927070404928310362076317222542381744381068894088920735100908120939972581112241878190084794069502928475461000199534185119944953176067858270751540463177454481141424128689328625125236270097953064901936099231618556550399508385058997532408148875779201524456656175590361548747697191308592478775379175070279589318806829146722108601968355380277493886657037076816250297372472559324592329886853339416582023528743364427052526333700648996105094351799994059342630052912755523827454375208211963464801544189873422094668337529667828824698854176048787617102028850413496271041173112952526664239273217137751914547491159138841126690107692912346528145130408222867798461358405293622304287972412611092289456129803017738151894541145976376084670770594569215222555331056651981233722197627604109544942628780339162950701993250747020203940294474163013476316606139984634741544116882072090394208123916937066488708483887821236530163382231603710653880595746411002719189196116807900861221928461388283316919739517603867213670833165628878489817735909409004573899466630698735363615180555468531076772136518742608942320677482071436246302453357471676043199845072730695764091948543142791181668926067549032537953689443935195799776210882435261118929096750662099698201820579024489790618198001504896219282905652808709698501284990641014835211137274865541938625995126947701200815196690087910780337752772226094149135936924494521839235406887504349856640949754215571528543515374118222729606333122847793928199790637767892386059595227000101868026675558927003542352332770277886875286130552370330642864865935910532619198517631742054230143157734168140742192632797854061623159457245283198729475078978661434349218373149528855218328545244627262187289747891179208416070873950411460581507160027822819304084369530375493844495702428930895500168573718380818050192028777749711624546454458710934633585473349129439751163829420611232185348017273945078933674895118798229975959958883835709936761621727868616087936037889569341367576055127493064814667049159565780749285213637093586083496728131404062444500201652816190163875751206516628044800111190826935387160181486411664713640596373808951350774113312660252076652460858029390216150406181535248445859985512099574625460765990659966160521108173723703578023268346858907316923513298410238161927351647259109819295378286412999435463372050832462742610268067375684038072430301474645226440077668298645599228549264846030322001740304511648493916576830639237523821943870331577163684775862040630899213258456511009595416955855830219651617547516856882057108556958745535723613280450740832260603488074001418094767801007375632175706026484544690860562066177620972669017754595932010338692885784819953662844341298559547613310905242311506249851485106814079820582515573874744532443569374767269414744772246326899340083566552868360770649921555658043337994726309875080222630751407065808506784931185030463369997394451554298746993025443414718988439887799949847805760289863653036991074213905163709586023451634745984033819848301365598692696912706457580595913380434473231656322315863657126759750007167375984429039990429926989284729013189601649403181933472918127770382018399207281170598901334916964463691581783614943481189226164341709364932019827182666106061967566634579815102321921002358466251447694851841675844269976844583856074049791902184809914600012087988324233437481844725004577182579389569514772002287189559392071813127354651936502847439129356286032678456188640295480327852277448571483823775848364272655699522847495685124021299579637635778827204344688464676610940084924325394212911833752165253673610627504175759623702786485152689061458514108473304953624023617556614828521925572337165782733666165383370514751818778721991158007763577659575871660305841085434295855149952263512185130651926645946716626234913157442254605559018384133887304621151108643023521586091789783678093173824841356680720796652045977678137479439165883405819810845737169841707076681011632959588423532464475437134778173627290749962478811493714282808976481097993953722975496823058943487630400861853253951429513196859563854891342852564016941483412059961120880547384478314981287389269007006872316608889621204145518271944930847194485984815002585372126011574607342545396527397823410516546077539492085862818896939252225868916137321840868566259739024155024761733322205520426571211682461589845992989248564137757782352263273236453909729641621478416938628737300651010229383841231449530903314011994182637616385069525801549334183152641307399731752415493087581526134853406181919554525469684642483150390246143632298023358768206314766965563342657388111952802038391688900422771388845330302990980445426766326598856987038826407580506198839615481269271510923671244451144521509689669455169315979757147022177347816425009144281543112835585088577705421450453845995375279874285926069297643591008331626559545749652041824733095323157070227429510985593766292133481978073180414521853384116280686706677153857898484815436366467472506898592823547733919066683125266207105131972193103035681124449319678387149041655230998984391470226062444114957336069070396859871330332212290936154180486918923100752877469839386386036734175900332928219843675588301085080588955782098862133377380094476390716534396204829700473138257486226171639314736684990497489878469021796461933052716116108657123015484744387234015723336575258231913353572329875418516042571512180835198709671407270512347926187413219103208542845871025874894471330674996830058417583842535734846149798542502388234376531942993540337655146257210427643077741183005797416957909160536409217097438811058593774057063927371737310829089251371605397522375094312288082114992782554783151654071621202576875047555250292816824263834701045533834746485155034274518580734303055997057228937687722504819564203847473915711667771461359213196800406231959294953488341166174838715163615828018770349622725599469449299600769704027144951124395973168394316282871768470948791791513430072869378243600974173624732299730916136168518228790349585953818399985964818508468345468085228643498640739366204078452594637567569970146350484066887961779664083733449161372612946602591226929189316779365552427984392043029947132013392026882460669035516033691228387654734922123420366255174807206595078480228767797267811104532682520129005414114520196599577392897143213792011280013933665303725982013541605345010162724516713308163090035478344826651374810803768238980537544981542398633397540348483566742165583971597479940655245683013777071525193043963342006383626810898667354516496383699691938083847356363677688975080103891616878489288361922928089356605831767894723709918708265079565246381083525871614818569681146467758826238342229310871154216608584317992124197417390025992572685550787140265666127074845281474137391844725270207529462846997714169783395596794920467872285443951279605262228974694987169552091034030403408253262089572509015148149863793836934870189560199717841229713755988141825472279548578030879559371334782464323187447275997593513315193406802103494796024307696457278117500218689866765334418762951878089671632475432054446339514499394234935781572416633648048409372319047518193879640276819136445625898871399633033439035071374984378661654936104528499381736422198587817453654671939351638841500176843425500848711839512593531918910588231767595436490936281950769022749072771721374616720945897463360087931140560212133063989217388839841968490857088792484570396384534684670441847425645302997835460521777632111624387295407652710324655152535400436350583389273902314943065954373749593456232236559880234478799634239940973278497946235309543458726405085545386722006765067495406134295307773898088433691647150952799424968334937417683597821056887671763775934951631003637397635316753687781589921816605547006542904128148980233718623355191234986601756994405255799563824748381965717555775916629522522351399765806259349345301221374156856729533972625415622017225843592433261182805439085418916998061171030214051851621913476647120748202490820967673515176783924117721790781409112523701435423674267834172593489639696432414688579998191914920310034226726810406592551584759901020963422956921513525989278554062460527667744192676237690179332200835764288369502813527268522133765922901319020079532498749455928762890640706309309965473355074156296180904233795269709894967905972889223571590097129653073244388017471677794570889908934309869319418677260462756278162536728698731936485675249966566766629012025123409849922575091582438089819892001265935519410140405118666734289181512803550048598860033485200071617012089121810987047221552609105232952141856889629854932229757511077228438885520347539103123254673895410564601631055308643920550568444951049287685666682224880619606105874211873829241389529037398025853300479580187564339531821537748073917105822643917952662949664408935657408519099433548787249488047548414544327127298843213015792335435524280997928169592836943218371075325222016443311459076650934511568474189591488806007313318464386051014296100786267302979749880287246153517849175530593470885589704993866725147115472670230827743145205268499608354110804632809576547318685392869933110159308407363112950401469212386059122112975527799419853383420508673130527792202320459671352200912573000897228450382407255988272691001679877756256818988367771083543562118314450063367973482839350461430027921616344039390679838541557105407785180539806411779504827617822393517184365649285464316601106807362620224660049754343376177598368214087089797329285293315812535232689259221023166583297652831826988657410037606930158310388254652084645407677177291115972101245560587751826156308071706337782734193383260764191477599292419906062908030662844021310692400505012151455469469314338479912196898350298661157383964042559963037190556195177639957559233755794579566613155619705398410928524742301097218032228377413520234206509509046900581173811627014689842358986245742457963926750561437106633885566779806206218834836141657618644804254016211023888897884962116147088391504165422476760939948438364319626486810679373343727596961266419695878962421986153409862830332806179053145534127091068481321538508658149535311551278614901183992942347318589747056777476298798364462097431978500257432858149428295846368540490805547803750595704495796375174244463392960581425709993098386332717621362663616975390153107301185135600250676160121298526465471691156191088884807301056822583853812562965525459806826259773212239709911291892778898416978491186276068848893626041817902029460926209014368945078799651687157906079827810309583095762995792334506064045418164256366989850669494748965003748116785198740824875177572537793278798371525575870777981427671860603186805243086681215788155639671069470273861997166207516484574156907065430509984238178967952785534813904928393583306010130672750157965385649030769799646235516136395428050017978496843059696416166394391973680564385300239453501012213619179346784733711337314542845980488717671611099780761885033110062017664425377512856777147233784215897926769857315974378007054077956010132083776981519996905784403302049530162363654002632887042093190495947349865230351993469634368477893059736197064839099725174041486719702339574582123200464785853679427935550529235184183852726268111753931272511081215568569369179800999795698744792900187958453764078860207981319123598527196572472665605182228028115887803832401222097073444395991604107236138420774276648895679637702399079287713697169041859758958046432554657718106690165127589673787586051504061952274402124467788607334563712341736369721121567593561800700797221983902361635364713812515341382737641075928156822631248068604427260950691438141018976091665560766526089973860292514088274669505561110074918600939461774526001737061497834738220448860030889989169859742774856679389242251330077925281020080181789596726044826685098001173972360048084617367548533879749131654088529132201610457484895581107796748410661117247251870807877450551160767651595698904242299218342188081249784752658073833381672414213005993920798101083398679942717280893601508512191893998256334677982458233500869592094719020747296244157280754034919645180885776120310361926590478912437688545433920530252708555405411610980286274787842489328161136219899131368954877049792607752662674935622275517037619583210049199850585596748158254620908698146456310931514568119220909168993002463657976483442597185650564287635997056851505177288693531278762344456739221502848311221505733559109441163631313408117223353907642561965958804059239427165206031420006944383431397161688021327599173686741721568872269467556759789644952417959889463516670682619570347159674683389659629227274601170782140477360056244720731614005757450607455350582970067756935510162223313756589676172508215525110616232014469438008696146207755972016882338601195033996576953836381331781415895315896679636460707201761953743426235371943893867886297410006654579707487532359183824442696596355263553895956443232835026695749651271336564934159908693079497939061701552484803979309978707055028365109632296381243144830383486045568314023825788927341869436204843438113105970656479196896191220387836914524509833372850206862627180911376484423417137830518288258300389394137064417057200802667803638601835320204911427459220805157087328576851735152572897795369048792096303713095971256305717491004672431574573988283339234016560421476133147532155848391148363990544208436482788893201737508140560140440304599726369300840837726283268342942760794401689938732140370713191897629724796201410975072237332852037534415898511648090246508190123529013029158484425455028564409381722073268993842773304317546474456421462349299303082800289636246640428244814610946698222987401556086533715819001828468184691497665327431298953257326073025374133197124443333222727581972559000924316782021356154927453807907363756048897502760915901306630533969411455228697076599244370145147187795134230927211075329506538323463482943414302308928598952470643659194990473292456263446002400768051692561464243078266947007395025099861132354781363504631721243732754739165357857966241428325555298098955416247961380740756830554853906758409191735748349992686843473779612066467716380869928452236632917780898869575100528152106447047284105709052523115071422105717232068651161716753059546603041299977969579152753674763070421918303640775653305159196653723018155342183087391369881294911621722522715118631114335790316218392709024236247531708084028354179472695231039241847222018611276075364501402985685454729178646769438918115030305286799295729464545644959987236447393103592337037445941766754559737235330033772649917469411205834473541154819381462271342648676995945145244418845984497990210809116569982070274422993264805226413218034959428263178293031590861037176568416953312522354261289064340706683069586256987606433130978691759952898238576809441278478307870732010499482613129333428489637998403598727534261026461696537486792673787672390004904007000160188088068366784967167061553038563853964452778132715476676128076851445600886304972661869655772113104664945664171502194524085816477111499563615667782970530020798103280115980320079494114878815304680447124576350474451842992806711826368144844010019826028241251312628072743623419483675533970971818933495443286876767538429186702602824862725035747506167845446929967048637393098794535914876274692284912505940626980271984446109882703645498010743819620538223785440461936255165430344076126859727535762531734952563236473941171783502291903490233253217719129294156832907087911491182115772709859767444731285027617622057338336618313815407557326442195803672816759627524328686243200148514122696824391909602539313318780025186239735495188053403944980592682617388128639695318404644436931923276067784045329958669745093848197556228950788260869670218881181097054891848000093090866814662765708256674546001740310479772613581887301299776530817539792222235581105310645075189172152924336437976899313614325180072648560008756812095627030672316486458017210946063392864028690470409940234632427913202567760494693889804642502545138815143840521952547922032252094053082705299010090228075036792456561160405747754394030424769315689724147931744423598177057849563304710204741565169855295126017410046473110690694425553536662927833063864562523272037648853957610298678714865943997012663871860289777023038022959841274231852380856563211197909193484758570903894907614665121976632739537364901547398900425669749919750877871782835777334843271991288269110612811969067544616795838076108184606259321620318367582157875673375960430259248791953230998745176961140408337253715351876078179285949058215271523727973871909343178405993641039017419028002204162283141740036482792015012145870626499290965812021783748432385057736247622726040510149532533646829355332289308711427911867881244576577512733775334343586238719549220178454484162928543375048413912424428465264409898416910825772581086363136259680576853174595178404407746755770452266198567444329660607902625637431588078776371792559222535564168253510628839895854971778312098314218439633697287514073783592601361992365871653286056132115870324886231953769778751773409615856373801908709044907928665151274108564290704574560996537935035975775969615943777433907997657976020372437415179977482375790174668816499696633510644798126601073797360304400221726544466227756732919133889678258663471025518552491076384729743046472314692455701625084040907465641796614546673744527984432668831818587562006346556098397744480592939767920272808139471863704552852886630264133853406084042312702750287841551899533705166724105899400095163405134706906340684256495060628770058214463789475893526683061074482899565907904757385487233798900141550372285088557701304565706760842671791066359894858593876823085880308487170563938010507412598311559992123942637957393112998455528431464612988460616756659206624327168585702819648870074976687256052068429292732097895562309585330769154374748747048096874953411963544309607200305592748855979755770379036063053668505015095673276531480127712545222352669372186493112551598660746904002089831910058370324034131027122069079868005081590486085140964169574222730801090921543362310836381873772657966311387025851593319089186209759952530537084216764041948475459020293374513170394057785858775983306466388440468300366494684888267634472767953715702779540791873481850161091523626374242896132205238440506335460667736786803814959888420721668434310655540757228794408575578529707252971131252869170910049891320346264813277595614807484442837836482260895677444586227788223073943268789208066653332700219678684345369172730050693518218530839716981080753854750818147855416611708060341649096955869582651421615909290552651155295782360313888515199259344703105144164319388307868801149060413939593198398554038749428338352584087658402213982334619526491685245938839610208780556762801481603941546722211179701853306568062906905704994375004354992238118913671518047885070571522587517190161332995075770343658200774166063653185637167823367225877170518974125428256489085764619613999941888723036363764368109073941748394466036085874958101269640928556726098097969279909133910284347334044584452122916081100295679568794630372486606169666759577164368930819326294673565548041719755298694826991184976513944108554031716159468412902260414926142630073552023809894983277598373697796824231322617602021231280291171564430524577403724318648241195277138870169587591969214068424852667430114913516260409310852077641753598103247064474930129562783770954954993531831206376481973483033607311107387890303259234749103190404973481096650927869854760717199489197939413144545508977269618228864715200061180441285123036004347235987508227380863496370011976038888159929751115436039202587798317283767876710412509922465936612273614365533134765557598311093102760457007148545346733821485083049240244426258945906268083884687354960220135731294965006490875391235210802067792158642987064838082208453693322302370761668940074997763710081492247852665262493202226258278771841262686833696260951153245945907539070113934739305195395136300370859162565586187886184703145399933377364556109231680696559944778323917486963564527398158372332926331871968822963758880561678877014152935723828569304637848776649503578490040121495651732762347378474020254567801934953465579506307103813339682176036398651126540566081493377605737574552853619463959374917355387797998406273510736746675425079708602316703396906632193725055948013541864559748832821322852810627021645251799728927690277438713688101602206450544923505562323011561429958868569398157525599211797024736869900774718976026655665955132405720948580186083589443726709491628885992899082694496708287204352199679013732089764312064216367917980397655934054675684605370441689765942143785359607329725004422800722354307701935161516934652192510139506693298926160406278794639679175766640659927350684820182241661642369923309479838151353328380104077582652125350767659034100843070508620182782095092816865680922503986931247020295611498263161802087706474774629676500437341662775215007923928263925135335629289691989614153559694003559403188618423683220924302595302423831497479230445368582384818731414079536314209448026493484270612781719879364465452410710117178133161197006434127732324720915791388661764532578754412204921708068433694058548898679629285205440524846111293613244872597724683953088202298779201453976315634782454733320820495845970221117881666078495234363245577854762849042551005702643721653264521889849353992850022894108803469236162758907801173244131438047411908198962649521691478944076763745438558581740378770300543899909168574912703558682051053274326471567854868664750723935346053256652417250056823819280185429600917982596223540763191526581607745721997261517656314215490158165196768689699031038424951263397480213921256882968501150672877737111396184523929261684906731095840732987425262115343082649546582268731066931784342605480093156146831317523572672897255286187065190601420575614246138621825354379457675718704628669530463826881050122073495061327002588631348330238639149122117302360607478530848891603465615459182204395551946678738873399248716829157281380753534002006310197463638691410793653186072372077563326571355988270304008647196796064957779333888030350824994347213032339674719989942150372498409527372316621085644682820484870531118691325842285184945231261633442682486352239320254198342613306941934292911237884267790398427361222710196460422668208052269169708387395478835486742398622103000051426605115373420056467798563873046070710644238091309074650592935855057644547318967692999914851278417961694709672694074821667651547135659352561705881291679001894690109660014963492907069493249080916124409846307579636357679999555275570527761355220850357999226649057050012337089154607851246538947246157069890243594251730593271664951371541383364269644855353317663001487885371255960901080234284409864206886012476007293881991679283670064984513804061519243961434486437206854421624129253107379605725787025913795369816859476174721559001204074157754915972338289342757365711732376034869750736116560775057044887535456586045372619826294630900522834345065111575444597805464337655927509757856310125964525146651045081164330433646151999953395433687550920266842101579360437171855384131674211743264715975389843031170310492029717465029818712394425090227757738750344902516945037063995571392134619502610023488549538513909102595534761878736564617006495102381592264525231109552533231816805776577629839168088784025164549104929786198720093563949172607424089294801188032473561444754365549622808282252527595175739134620736013617322887543990348804694190416484284899008371974002096544087064464617766332369753722623325823035862323376031414798194696434852438592856512346791985032943365745563216283236987247476920735816470734395493352201426058189827265025809545735727786436880436203975446619295907228124686441507095298287719187432517952222218376899319994360571375643192212008373823322652884194852029961598570513525322262156936348976591165288175669850815639465809226628007492860833120434108398346715614844580722112679498356334474146598967484576795444135550281951025120264697582587617659376545565782438207494863651266949235448281667732721029828991874160269231606672248647624555643981070359124781684111535904132516638022368494490696324432233735856757434605745710278932093092829294151670616163082662541338148476289965790894612039751503324907226217234699266871285972463058532622811677694654035920432034290058978205395288051677507746437838497335154548696406033956780231876670925693924482309617242930387247820330562240909702741849063690021287843757677073860690910567497079795829560529971060137421248212184607237812724286702411089418795391105016298778186154327346473038212572149377706595634735829040876257699321333579326576870647109627605031136419955419872221913176349451860928285224570079133665269560507311906229378963148035112820237330120179946334489556505343591582483231886348758947592741118826749480586487042734439577298459948692019796752834417928092577995212656928759053600756845576273287905912620838139315299319661180050448837104771430414356187577003111965596862899861233087632281991305857139055125520726774955391115698387596626591117843005478350675385634253648021363496011684689146439026160952339178940615802689966927338395241164644158338779376430919434838512132978515092173005543769815743175445073011505274886743117506693642176093135732479127819050555877173386995512139443438810164538319181947546884025905123155663981114979109359333060572790397735288903283527785295388003727228922314489741096928717528508120123438870034274387209518073272949338037587541128541575582798887233735887619202379348448767883760722154850720536213936868904717549428014899483752516535782124394374970246819733072459253320251910530427268857137251961418749420402889797985988252662729871878015002038777862742107899163552845798999472832620891668545867147060532888032848850632500836799876191226734174257725129312977605653134737143365113670140300110820596471709179071587531847669840857804177381773303588288675965028298170465850688703604675240367525459518103973196088273756787261892117306174214978548867883958887013692896729842860326110182847663123091433679758674858825753904789046846937358137656210788181371671569415909690221846199430675881201813097405940797385549181235429673597025529529841299559179132934333867475031623474388629969392011468037659988856989828210066625728721799428462732086013819448616210289914800914997204176659887538718476860542501216424113074233032616072529536118992709675476649807106503484485659735804788426605939133320114602742137464698100313450049230612911857237774156976796656043706280301395453821693785018737853747141202481315160099924516049950408137891841120659817621199128316318116236155492830562478207692560143268900768301079434007004145424592898484434606172864362993918356260682092745802897695209308125135900263142376353548909202123256536050550633165881948086291666959643118904439257194294646686765690919973807947632193601245141853356171761344569473819979652076080954952016219324494971973480181538595500863351960661670987484140417594450726520558038823779756208082326406042202238647027832681267750123708476396104836008039527754746964309840154625931690878320231580742890180030127811994718609486080534449386120744233067806606172209032173332132643138148962841596030042398690039675505756838133925756269571218011921610113457262947649337539028004779620615979561272062866975060329874452984191751997097576778673976504021624504752092151181162949889814735200641472153609326493710515695167472040774136907623890316115565421895842700373965072319784232877393666877911032983327356830822059739313186786105726531761417377364190713992897796202185672308576802542577385582987222615236174910599450696029058052973024732489260454751213034443236719180399810206581662472162816438650224111365533952970803821332780164211332991196037587355929949386156449182446540709950736117367456493572853105619372764689447044087682472465675920895995372530653840873354297889839321253152981268345675316595790135862997018464187013281596698415499700536623150845956351010880377673683639145079635946398897694770746262470097654779197739342070679484423563344433037590578869488914830660105439577469570591349279238770032303669032596821394749353832085559466818323605331427981702991368191657578911072217930292996189992878826064623686736746415115369764536953965469418725541718022170855120792494092553925841774101777661576031087214122586590655668677461005506783048842635595549378713528939665332895450613709504547219431972568053735925895357942019809281455719634605636565237325125394275695709086452603200683097173544901671923753528859466446559611043295448581687117349542281530167111488123775539590506218424565675467762803443400014032072937101519893961974304925940679778735574056077255291924694804771826199017950503740817744443407006087305997183838922788695104235410870378883959950604361978874077710018001355232741361410263488350763301921967837029681766534608530333204385663220615922217059307439390641103456778859786476509738726630441986573098737157209744803509405781913185781067653984153210347843751443216251221270614412966918269554976561494525067369644294776023445729817324685809060038201316923713470034997597631330538207016876004558784609985898029025771752810968655858593504471886558805285782104872409122240567384505490516912683014394184508279265777649875117737214567112688091414442585075909507100095731102881825744966004221418895577638823842448742866216919429593659280294664524803193269593009569387232069578856413476695275588460299651299361288932038005747028082632486720325424859579296463459869350037956010897106469945337970451993074314429198821359587404026391328804066105971955317553743443160358711184971134501876945464838016927196960085734741328757274634567695531289633698320939001913446405791790615963971662126240185147761534730816890707177153323116021196259826737022649488036727550925907791205621809408948657184967917017058414281791374475176292314333434124319260084897132808519427582567129024358168694580006715362604351541703064921413361079014127132004102618780676159473812432835162192970162674757144671687711657270366471717057897993179425742262965963207626326181443621066050859212382507341836367574485827953660747590315969459309036908907560806151303677139808548754688522102084195548301547313344450920242577819921235631936337355172674782400722483851486203994596796628763839692113430106201101234709962957031185873372561807364226074614228786404839167029409960583631790661148055300926085910862428655003632656673373702303048213878370815500939581511527293222227777099588912521906671173269035405914006417253099198142040991330917561784636679550954069693126665152849214305903367821218309912430646964593992240921169185119877724394407865030092133183698427825724495791926752048101866542424554972701389970985588056184047940928144084783371963609517229040587119944717878944834471182494876645323229764557005164433591697166625250870612307820708777261144856679988165548849789930286015331280458955815871991193212937019859104335469640912656952273516351706230946409133149276017485841392525203464699892983070274669740262769398475301693225453046126316232416323546668992389777357753053122682623621832605798338491245799675856217290991360820367373813622650914904726734522147409458869324857661012618927134302384955695218419502203089457005653149449841711048124474159184428151374940254891782123874132677444020913113318807326418139584282643298481362440341911599633547387232131618723637712510075716344520790165199036694848066580917303364180398177928341321644172295029602776311901186249465723296623830435937291868137922400345806182419360006598719174195622671552288241788002801661673914592053304253447204533359049589828765869744505487766670084799618560316408485829699054196052560448712614927274287669430425791098762600767180029637625307234310348639386625186561755441055636320172531564705391815131038220022642667654835221896043541359879611041069963981287346711956447880688629293770536500363523890324280713970157642616293308362202656529879950957676599128397588954453472503141706053853548763460379133795087572462953668434204721872644281130099336393574580930177554228893274753215633803643633070468022012553691404590709364433160788476667648400743518570367148457661975246193530023300838181282400357586458961676130967997518871062007211858462892074056315062644491272160416213586791129399267137259326423839945411968719736105335284422626987373629753631669516536439668172262863601582988261666475654057543597642682917043883441297240415634163949376287209440134364362191335918691219549664931872361163362790641898626335063901824908608699722986418132684781764001119780094542212738071948451975890613304130942889852763026048527809636241302635138693597506792157251955595614858581654738461352685639537197409660322029631973288338978145079274179353765197232933359191646527144679657354350137481203442770144304287291821890536915127933902026849461024959832843869435501392058512205394792853288861351623901573338419225211798776048402964745674054635970862659972084904760252535658495548688325090477840436190204836500315399532324905293678007853453429898857797042227689794328248321942335910835627860987699008111296642170706797694704043855842036139138627411777469559323368024786395966253728117298662476549904593137382206861800862126937080742330507075538371080663309832785173638894014730135127299765151637677616531566377517024268439966137701011449610285007671062893818047495309682154619696473789128128998854835343289440264399331344470615651761067880948363087487650396578489707502813340845490799435238720990171799295317456543875261357531912126114439662946394472064944214867134600213730354129791683053427395651894977171556625576805660517754445694182053617603695192422460919707215289257346393640192152547724684716049684060860071466055731452345706656135830214144250310013457731174345390065590280881107543363412055314544688771710544657719404287320960011493446299273880824309066536292637757125337953350158892556535727761564978261252767354946882623017543333160079619602781120881861634182454887735358841245768544856080386100891326876513549721839768599860824770193304797082989741298698783134523484704561149111926009211963362078514255368674996584219857941085473374692156233271596344866075386306425349539891121375252075383003433419533206374283268733976187693487300659871058979446830559891496241511948453911889274230183300176230678035969196545823561232522679658189411877730087439484318131567863602350939151750598145892675492785738533474320254351367220553845495958100315798638640871130618581862019950998991071182331659935519183733116627816607784116290208053770250030497285565853034688756891060880446890161903595289235214295394231422157679879630401380565425911572400957792819071889863451705451241298912922105958712911031327074469738096993506134532718958892005525424897435260807833029591627046380505488434062588987511277733727106864278822865584695535682801535320494339080759411124202417695932914467926895580798654916262254539052798245353223394861306256807110474175107936255578025403859448477826190290045590107460027941178811488554769056992965804644326306291275003673152780904365317320838836096962877299827089754411607437941098298845149743005535705040760927565208125468033308501139323408341411521501772052161665706014887269699137328374369362505206437978496108244013571524741432469458350848248673430908896117205973950502428398382919898189771954902673980258138311607441985471404210877912832234987204307043033277654253590619363197443455973965497961730850527103623462600146984382321584988671991337881783764796989973296893224892930561211849876288215622055482416049050220801517768062856164577362425229017345628233497191175089206739066146686855175580727680637185330171365971278528674811829858258541640163821117879667585632615342127517126559146263567264247078723215306825723929536966115268123802817867259945979319764250317583002015757479542074850616302427836249820626923279238097884015829672347661398685377981069102282680071677434656949476800964160104863511040887377271014714061041136454638349051964103316189985425651286803528622784915104879036689738806472803021217287158519036630004284778726278554599143729194341804084391334925711617581064296628457900552894314491032333305492867890472592776314297117567353341546624035295213930553345357620591260813773609288416138448910319877049474670159747327977088357683042569495197838188035853045621565215842204428574351675956599409334205504961411956329232344488050630948126060851447655618246434193456983688949996517105990365271024855907636433341087371845060235416364984547891246059203481466102108855912097508818848027685241935828894141972644369722487202354467319246174694544858500361852304888162672409842121555888486916503059910711753668586057206562050130029735436456758710066176269890726959237481307060630430744829939308437246676902108754725331538797894806379376774831081239925839534026905212841687213397374301089512881426967437559654845993715517161477174765953713129898612924975258329197591652284258044827426515476051015360774659908834635556197677245598847090734868811820009096366202319853647857805634849581524276318971407784884940870970091889317485247244266085840386781951089430940359379535693420580270213632020625630005945405148314323542503158238886638916214412744913308476476885717206066776782744220557272221602238849377465516773107801614023863191264737842553798336874306667790698662168598421880945958605350249327119136586112364839589741922945099008994129996153010946172223956641576440059966712226083891411266674576663211971729635284481013164052949890508350818257520176357565067896357812647615034913818330630025800930558946224382502372239609256419418659491480898816751512471437794693963050971197156863412044679466561722594620740676271748601875723838714504072500719859006185231955591680126099336190201617026345122475245689976330505378971817343127949681264293405699085320486551818455970258169213220131027571747965189941979483502725583143890814593338646233761974266295315189581095263643122079786281851242843642997764820230583025374251856501005458543213877181946925067310518575972760275227477543501677507556387252001910540811789393696919263245607876732487824151527108590557171595132917277291544086346814356968213711941208635422079302254921553890094745629183690121876209612180373105751429875222829076865244817911102333815906013004961459016175083906013079403668698720555801990644756466512922335111721531288720505304303448392941824116998170816134101480969693614824825874827253530499574800024316835652870293090111486969784518104010023176625408157942462220799381871644960454933471518565448818135580962830182822454814773848214077402235813442186122667540755079974866632251445785741269195157746965075065754400946613886348911314074618226926213518530948496978876840629079271244256899831206221498317714116867831673555050747845646351498898237322757255216659125699593628401388980414874744131470184611993384135391361995684432582296486393140386365209416916547566278352602988023915202787250280069152090488960009859152443778457034380756604387634331019228880501197030342648413210641899171219512151395455598925034862704918384102720966743466453886802919856691033754831110199023841967019415051732331457347583012463375871577803866818472190645720965205888756918909104478290213446065044356340843970633368727827929589714216730616132694323865084993744038633795577668496936409523075101329428217437764266148555501073091139653548188476419969639349880110670277383391549255342206038027734590430781652433224359873294671920245552294343897910476248241923690319456007170118909219843803306936770344079735432233568255716533795082874623115479722115936228331556691479992567521176480823578021959860879381915537401419299011006882566135950432956476939087051716290451331310386987948040918127883818806447703200128483619462620299434415862458548782516909988218439476222867962991131483026713545085336744764304489381021710129624579944219206497497706886407594270226438304992646113022982980003930237916679903912042656455976218859793227879197698562628784188742180229542647810483922758968170512809448278586267269822731577412971113952851079561412794181772755394507641335627300899036725533588261111725423557905595661557576309619948079880633056419576287043798325694520846806962402726179882624381836953611475710046196912498894811347017172587400906288811207439617417235892859582670519214956690542156997926701294185960248553365342093799527863834422816325191186125360737324190143679905942043778251432189252875797527319515578768601749406985333383068411605996820381486481236518625647594482548553153165467060868399129683469587812519577693045503292557344377839866293348561004565785384378020651488632773037664473613788914537835565247039757302023999390835993697674201226329983254480238666692847269817494565230236960846741261406486946321059991904635555767126734775281423812399121530157172936111918209622782836306615779653895212312151103273534074111926663842232385562258338351497678453041734707652968661144786464702109942832898693676905108563854564667196147840950524347424858382100452623710565174839568566453235365199641676730774286708331078531500909311942516165697664846679446985306449905939380701664285542206767630750160360262861892205669045812243824106224730903650092625802073118455030764912385529613930880292016264572264421938625067837610832091693323932251944479466714972869125881606845607844682424007018218154006071149409764349150158088531744273085349952104377871099699703164042853257702870546562632718227958318391159944188630122171130102817009048910559426897233642546635565418417972618610232109308100139182402852340554341059212864927485564951693769981661338736936526635192352730897564875203914485210224952588191556846371648174731720027359676123941868313214056508918468990847326849777875796528911570025610583261963258243602875578288062115955988931287364948770278296014937561857937267035297965012552337357771167009477445563072301957877075836965498210799490350140070673513079017658155654403091792807249764603199242525095271640656187166676632056235197254356902557014690183011000568523593962944473971261528306105688583969530737086339473338396082919599955170020574051639275900883620275603950660222900828184189258548855071888152520123598953218269328541044751660988953961036356820172180008852329920179263035341697654960466504084174923931534405831415786326654051239695840694424230148154083623556908621530403907341299036823825679947716492298534912018284048589912625225133376369138794702288298750830808588950048234369582505878050569789980748177993859570805114392848335522844158642289037903893178516235373543517708043167876437482276036988287487440186048065888925439458682544765884685893445772442843162354587621960150912079778868842098169527402671770223605920746486655115714714767176745646748473414880092902408568616921350071111036317239651851991608520742352562077761322508660880980501947280254551987340722464991463910758290161497460114735342142220704544337566590771992384269346880538034200675801965539004411512553398433346538524023867875158950369622107879765778633138685333825070298353009562371903386166497745511195649816701430962070960637689514934865583915621853830157845586650655655659755107419174194346382472181537072868786603366857030721234922699667119202417003193248177259614161377037269474059488437326722798783313195699452893867043640546512877034750499826097296449461617183753097774943633276868743183411222829061992857157024888011670820392477127553157749741551895974047206695339780843279848708132836198035133792282253364960856799908071180691152080059964578641094874884364849080278004474573362555225169089428589142520564065197759229287786571989521439120823460206829386140850783072646190058157679010517063613633499144180502641447923130032440351601625881254231057851068300967685648079531389617544350074481478944657049992701146484495543589905300130463826342905967493651898932731793825824547694522093487665064009230030169531471599588087396962861940280947323119727211376794596898911309406970362834906794084079769083414727907619832311358025381492224164213429669374548673337528207789323972841098829692371013412709008181539829432474834956562383679756467943971077775737603970420026029373215619152162680242160259192043854785843420475132855747530353915442801864155791530761101517033780031923508199167145147368786864816542697033916344986550792191772915139570285578534907278965197331429532701101610261811230942072279488940013453590909910032296671541920048409706603999966121230776001059508813005580010974944344395403553707302618929136491337998653976243112696823415040108972053797158333261156429685817403869885253493543522502543944283806462530868695914370302293511635378374570697950356493185056104428133386058626298668380271503055409330096643902009180170304040481875247244258713032947824693214421487485314316378041410624637762095084740428699226438574661947242392048887320992562914132075934249594171066848868968628770406459321931214652353882609380689830609653388460095055995309402476519396678155259849005269199086174527348893904427240206538068640737098527326934389073217685987282203577766885074675935101688201838399219894374716864875686429969838871924417871968647683300961056398824602753225346091632286616997320478310191130748735118380133689772839091746601013457231143498741328695855660104262459138440348445039285025570291681917925157085468702931184864462824199282662725093096766239279965185335842129165151424902741541511928691852000936932540579600908844240614969348280953173775725930679447515194898464866984363740406902588091799492020581084147322212793323564244376301811957295276111720918896721079001276381784018970873727031200834139867145042603792495558425830629917939077014222052817191489207696003385710680575788414987615984862723453777254073167070203507809868221627868512734638918702415772218242878330115643542524206640609505485088339708013614871207539659302952577617142072115013387436542262511085331234194502147817995667765717397073747747582638810352879130782127985597645827851783883136846294188662418673234920614488696341435882176092803080590951035535090591797920455443434667451994818156707591502852761271034292265387025100189491015136538560600960568716122877913823962828601262716467091598278045830292133202488911798114055373523536632988111952420336938574471715212157793625637548970617597280500163222210828250668633325710354817786789289483142762542753199572239105756278125372861683405454256172916206819088071758803133774288658488812824727964471865122304052525187534063570145141187931932736753054403996304118898072943011992493540050844300011811568989998155614553782644550040923515340985533577823785472660014828448073491049725558723735389341474258285879221483322036615871262642226469148340057315244391187248306345072726849184089000379772236718236174336546703371970737497507998094165890796391744986010394609845554344725114108691823958068311182920002882047874808204751023442982341568995551495349697206383114191762481011126584214648664735029178643329449455107989984705569377502743130633892435367671702044732769886420859641852626044611636913898994042504555846084107524082059147581845309913206045669635970934664025674556601960858174847205120527382975962492714536805549136815299937744636701923851366970707206472649698543595096639202416459549435726224841318135532084766395688841739811840777230580487684655093032187031478763743861942942824854455155959135794875647289033932222248190000997385987605408603502861434911019328576389162445052478409717503714715242009403013877333727502384511486857373072148012339063673906882462092439659828828801992101978544002392397474459875201927743842049665248964260047118971485556077629680722959016603512601768325460101602210292840527502732588405595734330497367713079157928322978239410199281971292898420584760571456877116508230364275358904833954529257215537616611472027830154303622704490558450831942295324915562085564499709471299869622874985013886069771059818770592721897597044500685140034900774439220928514007838140467049666641897589744888598358866909221888742233922540097191925336230239278737957423921731099671838966121019238257377271036019267509951819163390490206556261480285641583020456288285507137850495191569291039107426446431687168336560327067921108268760060508738231525083782370866993153975086924540322840371200111565904162411319031146390332178386003663293354281619118731323204383012462358164923286560648205371328386133018615121688890220336234595635586205055558957199411144268274065625935706956106678329316184310670224030869885360723294632548189898607136194962832234728053436417937174631544920912886596264145408180552631223137940257058154726704535256679066607661872533911577576419674080816192364255290407100779821968519967205346184631208235357827483699089579495873895834036966232960408043544803459687089633105726592181332844488739600194088053058777048330996406724546255449389645654011325283770749028412553868047121865635169822258380482077638199860741498019397968077181294791118935575063506131177189525113813939639614470764852438977958337316042987007791064966175101570729810957917308273184093878360928121634297903419304000113689004907251217276540957945836876354614831403938742419309555478420870080970516286866468313227861811839945728391573413649228403811204654197430884354623458102209877555902351530676486986319888774189021941836767690844143809076194371607248665694204913319521582568484982492438689511279759077979962534717638716804942332934971852115300270334175567961718123398924769450599671849789236933351803513182646641913461629092656600913204000734282141335838123031727493078553843233370444214366242530153460957185672083593749668130507992680062009596762406792307140857664586031428345123902914953793237660493724229608467462423681166951467522926168844336421698405650195500346410291747181794277706251708324205157448467296606354360156037598119465308193472964006294676792357986189650012514876912334389479122597766712960884270384265068421499021998382256504290122474335104624550476270507004998775406962552111210493807780761875227749325527878382796347875088630327754859681439470352397802650722081666723277193822260110498987292213458419378003191502595783671025811121956874706078622184498252826506976964847543591768761508573769612297503186527637056996827097028425894948720766738122114439381615918096557683079560115175406435300258765981509498412780044671304238156959705025804289031419433894793683373919662784684284658192311456905820507246669125213106479877417246348312202679403448422813857245314791302436818310092025664097588076602224276738039540042396440548299449931298891993079762994269371608954520660458207035299219738713687814652255502567661587890130990978073698713527539440303490545227673403157272529366882659570657012021036832110298333191160721606470275675911661932036462406847812454441762786840943236656952576684516543509910282352704714843769680589822458032589319842155716421708105412997320258266224233008975841420590865736461290295132243959916492395580032028478509459060355517808603770956679597346575126582847246088161855148056450185421255019269123945711972950626405413548517622839752697289925772923358627306356023385403955608034028548193282110063455341186417565713343101097804652881417611837035138853867846898401154548263797672064277015041661093016016436880718762695883159271072038253748768056556529296913804159318066902791810237043659600465238716497085287606061620629845786428346596726532460522829224758974769713430659948821713393328095371561706466083729683284837485943604235283773628862881235167226822032930468706325465485423382564765153364786721329991207020509112010481186634360035413485116525787237538517957808707741625584337649143522306604737862166480342769870946669010864551857325082676438014624518524751645785979582688364774875475355190670881816181308153339220401689995989985373922764927600624251562428730061435707514843796376637538156029390734502522205227677080260395915177524000808944903952696042389255576308882659353155155787939994365820267869302373965708959157196629607892635375672291775041384580185383803009015150613175798854284051107528270036714538399822510776498870837424228106192806553103158083416735067898156380517755564885246077880512440682157429781640069496850189430829383740699740183721389937386698972737062698136598565075570773890641102588378733457191041455071964716849153597063517823210054808842149343990612726853384883151062039360532345394841549902873198938999149545819126204881597306782118204121015126366311318868656394873150818782551850094772862971848150456866860962803791236154180804650959542140274606243093041671825783767294363537142626821764479964421177742437467151286115521123908715282914713590188292068457577218794767709626767051827552764971012604413922629013400702182321335900827298411961066881953715132117184194978723697208885441803054199235866521744903450549614949881360360619529417455841799155187837988160106969180845083068253104614167198266188397877247230757435983201719984915540744804257371476456729190341202275826623806064883616862930483387538002686556974444097057606417220840265297784127381100750932044181656828594015429755216475648678458908897453176146994062183441459041053401353879927918576434348891242170091544428107017655513718509957952822610363901574778290517064822430673553828379900792909218627915254462571407949771985481219441888309451539142770495580065252114380328979285780620868449817948508517179923230372458556905124504272238492205911921293731125385840508350908214897286729661268485859864157798138914904512076285236742826351034441088913608984027381090025372511148187462010223088120306853082059638502629690657545376966459770117116475873464794563912734941169395939305103776380545078946276974378096482654930575538017584206553063742058947095559520907797298293493956820929247852482920363297885654876466581762632402315008213796749107578170358418208023219356623096943165335093749658524196822536654703083396486866550892198515137445688917640745104267583518119254519855909383742975820371184407874108646285933359201757362066905995195446897880716841325219155282777379919337467843730917800558598156362377909284701150922666038471726924205403181124482758271651076445803834246090811746792498203262296451364239218406896739324800986592898722994553066569400384245600755561562849230164370315767891301175470210626313837822176287519118347824026561609594698880164178540037038395970177006779785186772479089877528528713136035603542374235760965474739965970634120093434858547351547418295166033251645210773595506873867449803447552836281113943300459080603638145451809237714283533583774854045026065812637961018188625512825609824827942093133390394579084408226830395020766178519307465425421670455145095024572066960320297619878447880021617813508999033664723481135156386458576943144619964537753190808135525560716802912342515765185983497185643619777461823227098447626375554017287605585935883344524385087033420622582372008828188834798659753931487292214598506987349800931812038086823221350841051708042993497118438034748071662057134559788927674450114519792538185054623105309738652154079617811678970954344413230134066196246157739275504675571670571745580374594709741170125041204124687036064531536627980335238550252184574001566543687346102580148992185679310444432520755026933073926402305634933894258817515863493797782975505690903822907144815472433174350164138279951951563054207188962319406642062173206637983980571420209032137746022224752977987531596814716056245898822358052204448797259577570685963737024551866657144122919225763424966678256639037138034472871908463418238686014279560511742817590819232685298066679179556600025876808604565246008726636303738675657544717021643835012687606203523032506550266590814609134979347831957865028353658412649830815499901768664459182068725828092798273335031739351111384387440047947470046915523825436956115725313411528832568891386402446226705183669922388879570580291655295546892189289819605396986745442817806133296433782372012406335952912474960197370756909891757528430114947154413816660660809208397585587605865845365525762142106881285263080276021934047052043609401735042744471148285374065656568064614134781627042442908982752271276635429063963288795365825449218091526258009098568919791209019044778603129736224870896940180773462645794167144530314603726986917868400632493151820421725598459149027037519141463077917918059507577696428620082023583775406637452135534002720388244366216125656510382012028665512758390743445210570620753707516985794742463124295084486191545173908214526954584099141637835917922720371129794097276811725107210682949631679985587166162474256929789221283090380966703328090515877022109316567085795082360661509282108806599893964543252424166470017625499209422645698332769908433260446065323697012609716820089263495272951981634568547571304161988681918469274070249243841209458662735529367666482363383036517679099910180953751134575090147906167628492173245831709149616831797928374836315074150307143233604343274024203610086823900053246978960555945186162821915580678892710891004304800230092573573401079014896573567310690985104894751498014552377630265960375840678026841253792619383091307910987171795076820210856151726515969988555786169445590739035675018076262972353825518655304071571321897651223766795012582166042968263739823682525636646495586406382320827087424840292145808401330425441507728080120168148528687759573619925416660353659669397321337057686972620042467720587690608907545034078658917531981348838325739442874540494932238845497162914167037819839213543912737141352782320792246262123644301884319538794827877833001940218894738178437951232104239401748247805084999450180901390799101509374019013900423955321661548706781221348885985446520970146661446623639123964889691033542540193529917650265808416717844599900561898508655010320622334336888448452839485471275211720227171428234381727475314581551033426807454709316066542970812755305147686566717303730080111149591934269876696927428368190747020240512406046940842893163421316993010876726904117428181839410155835733832288793543815689948840683930540557824615940010367366395628041096870481159778847506956600366456320081434544076516974587518889302795293781420113823251809076640223463528856724538869481095776869800243562968568600429525044807250255339552159554759448060397693606198929428452570545357045610151983221326463737356464792194913885438549371977697623077452926868194876818665358501647730056982454038235487238834281409976373603410936508569395329380321546667737400347028945951513661411005205375502887302066949782139023305858025662745991267293299587071765370269427617153434196037418594344517406403499068905545677855617641553002496864345874528414147499142920583251531729364878272040411230610238784752179863934155851579543985877323946215329802221548655356899008452290643259595392673958578975847404929962091376233658054062638131832841759131790714567752231822401848402932752114543706220015706807645493622452686314639151925278317435641270818389632528117558258779824006303411266411192083059213881204227295885366710256322644228419504882060510719418522806572426814392325252133915176521566678293367314240962068359003537415775177375867391013152582398748753468169788026902740578258113757919238598532579721435292699836429995554010059024469996076430549991472709207803330133799712151545874909397531554242149096949369839167020020245795222930805581965060137007471133188805022734537188330875774991865967190794781004586882769340556296016994946556398818600602969195558056158204922689319613461901515311657199547011474938840267484355578218067062363603722423888558223901693564540290844352407847947107588438315251105846605239505641426490182112609088502958302921432284274277170132002042985903049209687720610933643198734330928723711605367978552714825264730072484068769245829094957117927607955197748177261285546396119824722571459682435104488637455265147261666023942112275912112086507838432766852234686821017834375138363279327902528291145135716406491535814486998921083784766943911331710620532600584698899545162632835600039762086132888338184515523923069701197515193229259187807638984402235587101147427767098131514780127155540086321622040328554707815787804093725739833653450896741366435933497890653270359448925367363934722054201741895000145672468019230934622441876643371140054190371591879641828578032900760318422131098347901455891003840488228764436723275716610829941020771256765178618538247998791227876089432639445306984241513425573553418758052209519105922098477584715030770318034101031221966211792038296267083961040552183429941408062500993797152663710517518282645400049048686203301238660579389201075479611973187339123221970287815034262794317335869641520938661873918485505176085125010145725986469271955877043340797331260424896420765736261232826646256721363830845219682313560318078577119187224802210419541619001886561700885320131232188805854182884740262162960123576210956195482472223208277162624397883964829397308394285711738564891585134218238669712717766213046010464590216504811932398365687452464159921112383984778941356903735921082224952022270997866836150423128459722020120746510483942275715427533301611611688669085382871506666328403075420802513646040594733388276481949006880653395684349019329318269932488825492917294223076593841883160782223697595388341750949241635540585717498361721576970743635955290215937196718846183606251798785642719751597001589506809955899117977185736623858857899527072371067628506432999159938152105273076744069811188703690600997478807644129482203456389959165407011025995399273628755940316063575584957840975553428477423220624906221942922631805911974601504596467030984570050604292932964638780570172765098318803566937389137920327380866292008938635990184489851001563831979461569920798005382436192780135505600540128225500666970192736407270149909597322729914885234236860270852784401862072085131966656150601507505987490863430261051918014841239637043209553622101947671036449392122714647667139352306531009915495895303219050011093668094071978537781977886109908222464671255431619113821270001797452705431322640082476764288067031357303337850810628298340928882738956513387077296577654734712160895398590923412654714308524292806140993662376214638355381687252429269603368705268157621131663907300673639991913616961689707020675947009859688443684739849189945307861646724107200411441222537235754560935689204642255867738652717369481785091920754435630922971691684403773015108335221769683533657402098396262484625003227587074815877457690677730665569743750536209273209711161279579145968716051715726886290890833697775442223184777267383202731004102858590780996746162447757068618105980819753467827431893088110133824190476822016875234189357041036324678151816668427152086625831002981559515226059570013092969337913116341409274145248618829682657627145519548016734186990874546724830800845506361584551393480150953529032343841809099188501267791681640447536630794921058115118596054019239285162516953329984366110136498905951576637396447960216124968759908594301904877491210927346901281452617151500579224879047375964628969375056939003549836188105281479137623723369866216160558478834599756183258632726234310726984337935018510847564721864596440540212395556075500053093199938398815942191153856827463029519378753296392054204333594916846134590832948964189997875101466651485954356279911594817285932239335793308859883904051852741051115697725850100770752445191759789636030790182458332362861593635270565735672482022310674685407668472727749260312061154131621662249373689794304948021430796001348795090415065315788356529248270769435628838838297595796378400787582507103357805346203690796425138085432565582969364596390335063985503424868805387679751930788880414198380037067404243709824798731335060577311314886940679670080685819431708193242816511443260964172117352485903976095703630843954289257549237167276347696870747507486318516334564938815830151666917499869036311308418842512876844823434928474234206194867605226525338106384112514476882741611412695121600207077071857753546409747368789889052363536565078666138983278266528263353606159286930691125767453030105943560148582940195558831983007696393372391490673292976905527451665111689993923640825078702413680116617491261330625710637162516237787291427812923764463336769618062061125386902325334404625847125443939371085701895960213401007211171042091302170434586321408566859481696887214311865732063106173594897048303032638608461978390112579927396494782327744184783308722752761792903398029519694245018852993162983400758199100623868766457615504052005359893084819110813119215042355384379188426262678999103359141945327566317961997453059663645449554108599052982256084869874545202827152064996437883767158900850220255386779900233986930265789773590952246642140965174518127244225072663650236059420010414796148912308848849185637416692756287328187808750606386684635993927059461518089773171407793747663468117601144462297338351558186402171417187230713189570387433218485004309341922732241893135388992756428576461593274733818142070208868626561577409228764707336345246007167055365708325275313137940296500563372890691232909241824770592530482445559228162005646167402316910115069386726266858676153652262451748508252910351730733374845045220523354202529194705490542731548410118628228336334102582854706154108748546624802241668798443022966042953672731900445736722867427516158125418612655340781650896119309247067728441110483433179771036632881144701910287205601660687176722186653404169046756966479412033490115426179541023770369148609434144353553313925039098142755099790256279711292084728685152373249052292459132942969876115497350869758087566706721218939126143778237067321088401657473899514506305036166344874942227893259821876575896283734436552760030862442902169534539811619261681384137918521748709168735102725578766048708625671982121130722823448317110724577510958267670235855430631647686601130813719433912580303697817838947595794213186474356888750703512719615381245991028815108195442922448434041748699367796012594583229382083206710536010493331300396383404051463340969078982112075980241310497204287417357744769595090810587817735313606019203302869856558614600804962224169537409141770466547423646847204307739295870748755956931525125802566063445314684748391375287664359631515158506854792073052613312672011728050865899823409984912509627229642061119487790006850054668168107724639137192279844540841922975371199470708384374015877286092924040904967616019444819677536812684369268997798736574616689880759796560028552848342557727367129484696978598374598986554753174111672492448911297961826815901780132240623038166018988622584691161701892878674200224667136930868075213811472654162925731932719044283479886364656849072192211150527329022982937955126905073635309010541157571502191683782992106872110653923629227958706494827958134658969012318057016681195115726619865950440137162119915588924191734439721780923292245833893096859949443407139190149248229252659440714012659267784595433599833465768426075126212841561437889580293834784706154511614594512488679409733991318292172461555276257704506816785484060105720632542653951011180736207732345082789276687549797546619131659351578403284656385962875691419060950391912358249158806454460148054804067653088957624505502337711627113771609263464294353078390514537557436685279327347130012323882811804632004167889472354368529768298589153139271175087142681580957671320190320347632139449215616792408172332476179206686542948292879835925684602791739184521869468144548119281101904090420335706123851288914832981428221396474111289249842490568942044025346932900182892735946823904255266299350795279375006877725263784673869999847825297217332727672269442276584945434209902714417339043705970378215140303045832408987084696483649051251997328901003693177301981575762466669533842974278752938597636203087890011889792128318730236956466249476034120565617529248101714231668266011987098737461606281317644239065543573020691303935722989041840973890679606630187455479361693809967828400418850909723943367942462982652564598771732194996037290725486171722988890621577413079379981846368787255760674352791569718425208624858684207114054464800921096005661382171916051784231305005823093755747607557067458161913227563494448022058954063525963562869987944398158843026117117839199579042648969226798951174842159495360928994082715222027911341661692741163640222437859055604856701022732846880187208333967635925122195500667029603610955661321067348959086364506321129361150679210174752839272889433775424753801778813138295265677374708052516090028217118402949582811637356040101905455344376375841247103456721684105368104723694828675005162226012081266232076436136306582164137719919981100539195119209341449682494010830508131137428595526974344355349302405457415363059327731191522405720626036961402497626196848709399936663654500276853609687732846596723174710424639550314200947008918926513876414045210290143994588775012160038312820735202436591760265611306584777545890144573352891634064444016618263717172828798445665408656792755155866341517727550356704772122634943061998152591563696170554495452280242130338642978165699357814118365368055415500175714035239992181885359312702702425240684944431353503206258609724874127841045835963211576019986339828681831922816331274340098258499164571523831743221914904221574793271945707045099603724139920559027587736103265734328209534843755348427248846631234448619633317199563766518211574675056299129813042263539801544321378435960420421749224363516452762101139086099683028143761176894535157882595097235100683118422937956596716020027044187157646410171397209042676630111435571298943232908226188081695033819013525727487791581611954725326761215683016335105125509161638393671917033970859112300124939458646378345857237924263247551278312056487725787879057764434994531400350373266936741796156962468973286287715193020317718392963634345006371953222541290076882016466629057000798534211662700833846994780652127732916336890202242327756849272421891194185291196656220742389882646583013474848486378110300198679365413848142569204682508454779162661575864631760019645829573538546823957699077176201463869504458844555351569464084308515489085524177451576720721727957257262151435495189703171091422353348807609889184772099377062992378799035648772328871584693564032883113047980870857683634004458650158812378947616389540719253015654885653430442295805915774789910523807881004773307436035601846867319506586511637362722528225466238510289699677028777979449079248141959985178719117716853484645312561234728908021012275412900551324145813163249183810028342129220202235040069803275149212705741590735233588497039820537522077455457458994261933908119399569616771546903816372697067593298532177829184265325943596491384266624902111969385470387413583503774350394675199989658037234172208938838777843220771753984056582643744888404522778038313385890041851049803916296366758235131390500095580336230616361204932707163871919641168704725026263499849803597881048708849683842638601407865210217634355136609796590701736404938911877128426912093324631875766469938768719442742856017025575625103021704370492811876577551559349731231414414324870532020552141944675004440520871116188263474843466247723322968282530062417216681863863747080711086808130314163617456450460699703436511026523998063906009236914076419318153266620909936275063416611115440232997080975324352734630751214340117912032280769461036937235004629223799739053317956300938663574847438343971679664174218634812881718318249964031753342437480036168760097196545519027176275051490354031701293644927520350691152939924932924415518133474238830619362979159965131254253666033082668854076784880717200814825872923383057292178104192417872564698137262957221267343545123083273226345813987214265471372088364481223617536370698896340752621014258194473198973347672870531923162729125657278544444244691043922344590735391550165614063165291286213580992111580652840377624607256629456271475060856292988163617914633177780802623399701905223105521193084331450668902476538596597959289023578045323455912136982311898021993689400793696827668630052461579984933935058762186868819713681824224042760641736962732807520288415829350328483177014236089546358888302094448829746140916575858239476296447785748298074468502435162803810854781112878252022076513284727766847764660154457869771731845845644909202845556749171997776348256429523082407871006390348461808740295536598135514164917887792060445158685090599664039856310551692272963893806027301498385273658473867409686493625401731328040701679973274413732474899058868180286660912716924827610562985438576804177494550538728058030730894841261552833574823709693109598533106244309703001473990827576278921803657653587648596265684180062657419929139227783365272332006794482913374413021194608866747786780908182549904954582408553932837836849922613484754851548582643793192595857556012749021121294383791630474967126984388016726533411268101109483982968514163276077198197005476107234160831782145000464320543549279876812944977253328494376622337438997064311884602881232747913600815552140271176916442219082687603388532730845141847064116189821256572901917898904384419079553832067848187967110415334992212142156615383684421003658067880573494475688704713950004814252974285276599683190842214203254887888959959895030092105428350595017338935737359760190170380025250321570468898357239570094921788376179523275784015904871172890285574916344985379634198954347877091040257286649040445489964319514436525660885816208585620266235768705925485519935563474930544622141508398114199736496075272336872193678549186877210974416394602506048158642576996991851575025433717232790330659552213590270604546803054694941293903691143945094158760510313276708572678106857723329771891459801428263105541602865624117696580438648626654588655955609921441254582962633089130779960788120361527931152219548496966943704776945715623273627970693534442640754742810460019515740486323949260999043675505324761469581651534135646437304259212168569886343909590945556058896129276175726044742236522358517479474211462149145167669300330830588401038299770781208912211850719783945016776493064365608764622345984651946418338762457006778345168558207113061738657197369362012557781681647273108589878076746642104505624268619279817213084807827267933019055620505104157979807852047467522422362770071192368289901790426833842572321317622495447174828907303185003745539531130100016912373964013956809512250782061732136356925846703195508763085102484533945045628757211404010978955568764773353380555844919423999164303248937978613711540754562731792133289085017374688825227464867315549955859587080209467178934921244332558517956412703338039695921280613931693740899595691343673088636313585968390540636209164537556373817320487443906234648982719203794251584112791734705148472129285639286380488656491027447803622644726298346507878204358796526621291034755258288730681746484354323688601643591495437778182149583087450700235251019722891710766356155267050685851032434658809319696333285029654385740504152905516521420046747156156487156617310818841756243413903455737112276385456191113342158337082612371083956117461603290840248547897504373019114204510496374702104497874919577401108728873733174869876379241789912193025466202376417502561197818900754722902720572495940513408531473745809337325681265894301764402433613543793296362171307116024145340150735450545663726933756264088109699087017739083357004615092891614750028667345596091060709235780165003088608009472422110986641131001903421378387125379057151148168485657373283360593477196608842618638227443072480659888801131347291157881004590683858442041382244454321372992367491823434512514748424020951208075067099676325719460199202265931148711899254845502637043254658423841925526089537595752442629087730847639986673002241947514582916148382694212046035109755425188159772347777522448903021040841174024725972377098519241777599690119841256603542663923461250093130005250753381161655854209906277717761436846910281376199515950445625036399644316362082103931759581200204693273366941618828870248429055179231691823156090194970549989161420120154191147807051981906164394667990028697798920078059186054229279292360500512335706462433711475330591690792829614673199606217519547229629858186063814196280354129889754141484377100573075640560895236254168723651733530019767295720687746903244597293940207353316353976748947183649078306732515435083869312998906344659714373056728369323173358391575387814308607598606245591164557095150897573828560873819802783319726196020731375250930924818834952458855229894361554850548042816604614589837063239498261223753779723018542293470550762611083458119586693877808225621456709350980069140201047130208613361769795141092305796831877542486860116927527182108512576131367164646013616823341525513346175473903027635827170230794375776384911964586015055862640182985362734136905857939608365138660508805144928454775720857947139381974189790721387191230182527733064292658404986087838625188491221143804935997116940458744421199926726989998093945273686757297115265597719098322570470561706431967545434454423432505251398150675452352314543796541416132784497468638462711925870176002107658205864330708427492839524327174343533748218809375632583657578243106486706697196816054250385044583223178382967433802386468138884518844250608152381353673567919473594411819059260691259682422652024258589504759889096705311670524185180149031339362256380608072541150281627702749446006702810862310787958946506331894596858552962728803522614708905642243147508183789078587482067003175844615051363573744050565246431997868578642903516364253158978732801506037586034639542832284379429190053497438541916252869360558536827295422198857983930410779164459612905635566091473212467289903577678445813914736208120660576720879601754163037722350468536583662839802788468162868395601225085950410702241597856170598589202045396326919213691479323918043614105952796318410882147922685404878245118356657217143636132525472914349387245560901859257494324778111588967037522303810504854243110346564113691539122647026220076177125812466797223440442115280547717492765071710588574294123735729367969018181720233849962983679311374414242301981532159868810752450789235687450991755861743074243827802291176564363772031140250344143385319218491029381726421679485323553636683477568922389214015697793113448557880717111662749603082797792476121016308613476502511443413021218146572204805729923766434812402877618472019769352428099264847309610712736130190020159268817899098454976617063394823615183854520782529272456258270352360700421394131489292623434003556237555248561999922099114541507819476034574673493038501741455607427294324819388052732219751762459135924799332562300221590332070282775467662076416810093387305689934932397929875887203245744093780798360144316601729042458265457677838126442151097826734872032839284889173537511544313829945554934171711608985017905971443965461806432139807381035445490658268188427983026070028200420345164821173673950715803527391269823936900578905277106587988533550786734094551871231336797427534507437255520103989820456318681691290041155539793892842483118871683480158725920004985340650540063923225876288250719630967793781977276675022040853060522338546348791555077477948865794825623951503556459287544112838622433293135508942541721501713855410329111466712620890608302937012274612509172147592930421246471575871666893345505978393670910650603111710509009951924336158129324714669424200041673179442852936419849464894638658887690328173294252044766369650647325064673850536440266063243734897248464613222634388645020203452788848101951603314756492234282695751916370411435295023558411609614526607300382195307616095909347192649210828178471244500836480921567095398289748720956573585051728555816316985231367078680712061776939342363472164497629833590264258071695686922265220334139961836147122461059818475881240699604679927733870753243139751260981579326254225639424262752051093351396399183857002329625003675927561147614051260943692959766235057816359259764418618755544327778567690876004283778314636451989290529481432399230181942890504049970813677078964872948040714298276501440076894291597534490484713217797411252768727257817676748539697770729244906868470992114095832164090498283961471132976777249952260586033850834503103647903843309818989621084365180288775800153654748401249823797963075733874635687080062155500958586450415718196892155110444979097340082090529080534395902255369989762140333769915223710765757959454386121413873835712000925904982486778921243015175142057657211839159228528935902426342506534028987839793689708524675300613182539420855362795261327158677351206088481606675155163444035913785062440142958602039859059909973966275622084395963713000846361608136083468677402515094903512933484665172743896966046939566859250886934695066604601848089979198529984178292039690458572253610016319418897171818949142727519370458042433105322777104730796596070888231038762456250629087875282653969969283642020742202368585979697221476844668270459520203918360334576941188982385315628445036061757562668470426832970037008946416277501817887000505415329795830019494267141967235722704337770319623608170113599322102471000973714213547979519412691610598132952279640282031617717971762267997983415926770899903679596178254710793256124030055031447910295614831566462881658331940382780762530168305824211386780985805780196497700437425908898918063639918677927228561940054488968431944129166074286493992530034529655288216222488192238638979296556981387648159989877058305498430674552416105238739141215256413687801942575588680350567216443916591648456296382143187287790221538966316267724465955510978795901560677347049377977946277458797761603120308029779615883114768250255447500650895475403642132465222204641418820047132988114348578844072573804935548451838052572814557864084609373477247939762509869447960317168685493647189523515424301053855829142737526510879110410478694157498720310220445756997285934953374976158452098921880248388038224733305655840001267919113214683717150571846633550687211730139270295757459890749680427081257190944524892283553958650020859231824040582368402891662491423128837497399354599168059420882685171159886889384075799881257105840993106222243015538064702651177972848420197900294048224595278269598573217245218169536316530685247195271485067373100329201894809072798984357905853091660314549217914175033227340845142670009787243282820479888168442467626612500330810462938699088303083783169848297084903202299238402287464061811221668685663343381209790868783637511883147421906762173518038445190539574968121024606587502115860922434506774604602314653749414082140438406006732527777654879249119570221342861492443169883868198622025036469374485112196806828328118263750909560946657792470080598132954611975900765595753954567365786669919563286505137884450355319628083095378953067232925374361587672805017788598782829144427311813384977814702654937260976629326810547342039185749881885737981182899822390597318836430983449432612680990722130467270396617732267132902571684964596338137081356347028023512296077045991273813734551291190345742067524339789173358215300295026916397214676312595486099831397319717464452218205331324958964867233909516489504518273916348990841378334881600357672020380836849449289979451695907727632689737793428298175552728622863507858019747139245435171514967683661058821060268918526683020300950491875925072903181084884863243361268836305487134328995208844539921078824362374129537678272746297142790741925490976092053958970281134358971756438145384076532248778194131166570264541763367591761354173076359039755527047084009823250990122524464128463387087630919044018736186462999364759328166376431348118009864508224832001097496955600046859436309642038267710709757154818541571957636888672882068875866462616698579745010267302882106931959574315965151038442298125172383382229623867856293748222907932456571739436878195675937453096524588817766509068855518654926733477465593141640374055011839739230151301843052029650291521833501325964139620353452781055807572064356274565092433739002084109391496277061722047874462283529574775974014416720204047664851576802478701780045770059643851457933503230209899778893189896957179763872885415347623455920415754078868958067189258583525689398882169716252814198894521525677379944020273139695907105981811442966303989909001267261055095716517098298631455440251293647629336990387014983790277073453057226554231220490299271552144338506440794855572754045466880437365710821510739742540837077214968455171785295811450779557323026586750786254490412352171294775518259325410639745418456597657757717453048339128536924297499111279312293201930610623806645906916376121355655966024280718762821813302619595047192113895380980818181648122562449563869375786615625518991454358161455608014104885549208064561165579408538238557847566822052889279248013541610056503485583094143924592193586337942964493895553581735050141751098199785820350388144725971545767300914951709327854196941472668067836314513752062765520535100236695988191769673061827928126284769254369678377660532410567924561143196986681391576975415336634531086164466770919445759984696307766605039656879272894507622656298125870630585401886120299358145150533665871440148673808195337145234915899080049379319835065963540034481010317181220021280083628418879556737963424023546166014218807493662143628703188940761905902929114505542802541724224712219130103475465663412118652830809616776138935196715478443698273556966847506428187006297498341579911512235035136749633059273618487822458854696631427509998940794223412475612670358940233237160552627868477545789851939206143621025723349786508160547155000898345898044842593643169181800481312312774290176601704927153822192697765227642505880909068567612025987105864829626566550630712107075602332567186252077124963574117976260717337544065655263721141663781287840815351726207718206753141716267699691468498638904420618599014999522018748053426523330111274124000038549214649086784952535598374045845323487846182140908017830202209840001460513607029387283891604509704280644660063235856367968921547678753878958863252116495040853746103503323410362278188914287683086677006918738574895598389562507965913806570976033748933259791912386081243913957009756622230438279075781915726635530590933592375092816396978137273568420026626964603944935190144645403791905098173186212266537364797424422470854385282197481372632578840870823615729555240850186892463082877954158777547092423736028701288561646928606922166754511137168450673294034224624177805883643200241674096256855739741334576628774192502578716354398998612394753596437587659543106613101801890741726296785785806253561119441290458776470275389719684733009622063040259485540874642356709218519165972343656205521406844832443151575207873115468956214035823181060017838843467600200168506804110471972783343717938021755980105108918166460017784030283726628189377251938456842702911492613381304169166022061410104853163085986716266777652780780381114268191080588866509584070622776331388481752026982190049583293101865319296697251488085015537296891048693690617450486453274280909039220472010745975295038307702451787253356348310326047993981759337085008468930993317022990766085709624601252501211085983079607572607596788352386312156281356584787666463731987395821145933803552191525974781123995751330679512730354376885507859849512652295957946018396156300696341615936924273349841676795265592482659349301409207762852607313377132368230647934177649829266790685126851024184624672936083436797354149934596979320582821588758959695118504608857768320355873740233583824946263135341880441303380451875381937867181376069984594491743813053625669775017322225917784798332023436137334520895192350191280453615897174790126145998591918725264305829931968429323017345478064376568458026812794618765068707013233667437979485707421049052308942355454953855211720381234690195790179658847863139401191413488471261313317982747491534337822611362507011071195386971107300848388976102918584051300488114570958293893387464320942149191470524178765546847332871556677782457731267005672077679676042822887237641607140505892842656446932368666939648609019904514573880884954576972356944510375014158693978970416317453738888375986114597318399937346457227414941387293872947084937371680053613317538794847468762966377172243864392672034301793468011950282123690863659034777009383006963079030870844528403456263371968902909624276057799129711083886387571537945137023895675089418277205884889368844297720429475820847018240296720101936679999445971607466751634213252723383802747068479261685807750955373976566913324331736922085629752661822633032914881684292354613648940306419952972340201799978496148789422976708229092648936427340846179564698524529037705846753962958102902657839006599591535084212731423997780276055458479552072224139987755737189406490504562267241845238856286329150927974773723933215235328434757689989818423969409050534842434252090787340748907195496354506505029738307668747946411847280835150572442372711761979807646702707214260328277282262675181261730520911223119541323436926682188416512550831394423441616839880172431668512875049690444199497058301894740004967194122725443844650294442852009117605237220882888296776498280804811872506745218175405130463086638100800494454562777305765065423847794959201753602787222378694611242407873524245153210538948663640737768715002463668121920040832191735265782835337658097010000691596455640087569239993684006225009894399606863961473854797526992769026061146584710579765831156824341620158314280450149033223729731051714658669038263450486105931121125536236493101526164828030953465473574677233304630676218891641897111785744789833459871909710861704717356267406207606155501737116268942596430766901471374027572572934669783817969506747293859696797620108984946431994528498794595390816327372886194034382239577854134649111507488325637148233340901719575080464476838840900389957198490814112516752801877237697496829367167635581629370840881252779091085117991405155754346110181810397478946911546700275677948892711788370109754166721630791239138174678291309287034566976153211694728927194518271772906248313405825858914406590777256073072371233506175177035478167499974105442027077779390881389842402187078596526568259605769688963789080053485577314598354824670403368665003098727244319336616452697668732106556483195685506846363217104770953307629187463446635317019808726412782918597188599254386943439715288649189736852097156097648374342527470280482827332535124337288318931776814737997397808838881307220829323479702287304362473489872329585894108655057772571811401028917106948234813051057139634731649964814435991680092658826310164064522378112817266099215162594434935644351639379163632413198751220082134264703503105144546542310976867285447068060548758531654965423710818190701866730368264846658152815641611007696285833406200164948173282497144866888876832169620983990365501471884140795028432704548295806763730575024248735207022304340794051032330115236990508598751139761329610527066152910949002887309459295252936732446248318213192609665131559939375546543121715884923500374626863243215472388838592900848308388158997488197840792486622698536137964399674309057142495245047009791958150803999918114386907288894126199630608916981685997767041473012428452153921306415262585676269402298379484383270653749468660036073938185954685598045462266231269920503840380744270470624023843059272055694459580623273492203500741398739258426501525873736639073957809856418326975125215950495687704284637368434987505289306689017389341008120822782341359457874466657884858973690798805609898897955192557018906219263927537248709972741465547226156510847890816133699922945979114404554227628258261053231564122034486844829308699684561512182515709101679894877206489432395672239629935299950615150089538746025243732069999635014202773338803551939365340289130882033693474834077837440560643667817414167785497364405789809827512770574704697590625000804877402661918041335270936464291014547048081557725503070846403155337340514480106979142990853326966346513235495079313469398228646029331774026504428751833672523020913557992714790768496296809251122059870803855209713185681418971142678435855403939901388494385495348382099181735241037821787563984240777658875761142753396531166556651942344731012862501407857854542280381585926969154599355647479666331477355980035448865526775187685479654314002596784534508051939738769203532709160954137948699157276063493084751064205562715526057152154068348563967034785896195331016352526745972157352467575543570535502561021435371594921194532749371770705443307768786288674001630194290397656793496305281290798875085831354992104649594144293072502185750967966162466059225517513482680466824593762165143791163584083003321264061910147131170070325032795391526944371577811306868054449105993488515737793029842935718565845152061015595310939368298758063441619093152012797769527351405943977125562580030370298459409296250529065636089079035117923568731388044771626491329497201193546939279795876083346577575572826848294968605067521865802286674037082896749965495612902546237593641302807637019863538932247689962835177096533442417190394248997764398982797663574209550132814101474234152967426813434996737848744202959655327225226818545368135479799853352331294585766532164574687232866454821245181790110522673052078829961239402033868832264835698063052267738298375190674081806673691984451277615792639396323507482084747570035298371785417613289786050561455138377101033245826919005157506597613287618449113187266186584773461228709243706421336225206904184710311051101786749360614824085768181036023525313661285826726977208427003770543257231795913017724270176168041849214312145383739851618305415796553887897629447916341888949291969575335168531849728492616668425746228983406283797881183701652415015201970361998228997221235454823833640145914463685819851323132371390534276781708446076847188969126256566193880400009350086617518220406524773741286288300821079472911189488506228820519483707698542945252375486008393006008127220187507264093429093619128453864549307452509972525610930572710507401092990489956939060442795938515259603278361407293483682259303334965825258770135219328689287138003529678337261213812358133668628880881313977490300278334535560251178521290715569415282566344165125256731614032289414995991629727520267244811379603951624366326121803645500451802182643064018999788555632376139036003723602314274148216924552123442763141371941085929484985396903201752211797079868527592160292416004056437599220654767486353411457879336815002799381658324530831598238333578664255616145121067989421965598770284662037083564722810047090292308003114356046597732330747146742820924751289423852045930785273656628105696413919994974617419824862725198551381473597803459646918886820948172047882749877206280783218518410790549599018117809522932496326940298829185849700280095786213687803003510062873613805048840799337039766766384606378278541234433337033445929428671789305864525730550226337005567051097597286643397045961872528480049414705914559171450131205436317641633017527277001699887789016543890887480697303067096884600754346728409852660240661518119103320845238240221116396131726151576713561246974994523647675910618583761838744639141673314770626512128665668763745861910782872919046454437652166849274104827211725666201406345698320192802466839234221548063137872288698624489487060563281468005021143071901864160597485049874494645080553948748040643490221267181596185450570049885168175377470818949180453107988751182708689978158324401519219892056608029236859047682951844862707446104351778027848805625421964417841534676325585487658158117112876515365187628298393088890390000137092640723315334035812856556689800346447321574260627037465492519939126595404905413118444324634999371464092234692470984981451494454256655387653665045781385206333128642205406087152319296645380805717731200254621783512324644229524940739149629814930099151914040777828708351630394652853426410328572144062935216000594798588354587109539120064052379219112548710720887628678902389527617347082230516042196676239068416792471339290852725386473224427704400492073494149456711178205800391478969928051156164358449631810408220888755473749017428777556677754854842338941407300860527302301593261963133167162838948319441138396464637889242773152918429068450894285627923065940218568951987914052646170552112653982737331667828255648487585611575427665980700053854276404196828300292172993546252676044110125303991979636039016408811895111431513462900882198927484970323127131815273130722523444363427762788382079946029666600589530549535619526890921673695963181330685305641692959507136205916885607072861066411886934160419446983053028655611319482516572446802771943232945032573937873769431812474853340193134659933797949753130437291969652981662946626243255741249843351995412327878618444961265778463339871576054343805607504731439812990240254246512083270452051452062065142709037711318448101679064695724285150467741376976634263303979712410941311149694055548520320652644527931161538322125844806430707832701431794698341479527408493241136397273802315328556434584012305614702707451152698061679779919830345526421989987880307878104229934769914801329602154191170977298125987805919936612644638796702137959872751238395305701845639177220508142378696538875635954281254059123641730823104908475430372422000307069340638586821268428532613638345049682012362277774295095245078807970488758730207369200292972794553272574118283913580142030875625664411344828851183998655336937065604896612531176882543072723447308021096457717412440601169784002324438641769270057388311735524677604809638089507748498758326340128690688266273281031670681250223524692449353945638344185103359514668247193810594851014134312646169044989649486714024305047126046554333694930188682843377990986390090781947812812470986274486407225099202616029315103953608811434970713647663874154609254755131488035484129338369330885415461361350358223867281597033794600709807093660858035494797295325846584506735729746500644106946334848435476725516962526704922512363152158326878813606993641321228535097948942769387465429314427904555732571774661372784918103181634036246509686072925852743595961665892384677930500311751238831813051845790931040555660785062891038117405234701076776452395721847003024830956735828340671395464256509618330970381603280228375587828430425822585308367347133901788469608973336092316036910967042072403841908653598125383683615318472802045511421548789823171456602836832399632945493046011421521462714644362532204072353804958102188888719088004657528463885984900844024036888125646470789757109914017225626994864739300437921532532842410823147542387751508435044984755516139294902973464856850324650455709011957779379064880402940422205579332221512997318663754892750182626633057258096531521174290399031967530690778382921012374132097256264513034745481041340941405757569569092024885738491405008580189631171832297493985770358637255721547327515158473070829438982581426012983108676670462297008279591852343617101734649229494129047483551702860142318372772027764504274435830328110623211732638951919108045869982748729364176268062259916684280804959080525768337246488812761579821703557410078812533093425046508693777266859081930057066872410237142876366984624301369955131681997424520224560261299353484780398772696740666826143929575670640019673289679228376685240935918243693998225871285495589227097501628521485939390700114492126704394332665291484727432938902604156336674663993648197616917606177739686253184591436087790239944818292387100445874461351183188052249281911937344039335015891759138342644090251192390800593326981324547700659016867874221014471687969519923328895942208172580973061854328578229379931194722437659607458342515752091862815688522107137863351929450539829355441798701874432807783179354674117709097931522433126999611319569562936829220179543744844926218530183424683949989155861506760764307479108525357840977797320780249971598548546614647122579151861821500347321049898756329913870327801430476090799771877229915770910966889276242795223032481233402672657349266793769957511629433746760916789196133919122545768661555505744875683972787646829012600376392625180339686822435352671925620020676828423424734499748600350408157336669248791627631183184056574545372034796616919113472957954155749796797297693440845397637791277708713893136855675977460135769323306511150966849621707389767288262109929391494881327039178495198710287620744474297061794429670076126138508967948307340066109532151027136178137617098551457948349538083657807729847742125600954085170525247514250625544051500821766516320075493380441783610831549926349749319551330523628696197194140010831802673279979144515311127939119794447841446868512298445312533612968490598025566956126861908872301823466051637203310049215965406902468158200867062400893170395672047303384933271351438073995063135441463843174563969539625183451165674175887006663298043320391039526333285529620071745634023927839664807660844568569500809299470506187411383504318004570010712998677752945426567416784864545095910786960292539696987639880819555892343161197525910998390151052760269227577914823700081012083522098168260258124153925857923968454205932216836299465754301441482394260315626890645104036371769425391825943974060473406357775979439559261545896217848890463115032962654482148548916855946925276386108816281768808857887624820866845021601726796851295483180284914858807948415274391623098504604448124371245221242817667439776864181680041725180283387929035043061454388058927578680823788203325967149252319355050550167170130961992054620728178549306719970573740205673519093240771093274462879147547198581216243623079210125985974420091490140740612726927569257226247889955837090487198063373356856379638210612339971953645516841803169965390591814844955731093490510411045604198400196492967795433874773540942806280533117065187830196941610867263851186363169138444588229161839208731153321049198872103462524964658220992209739728717770412082477960468650377032380921931347138464099162241113451146343952135925826091533856814529675497305752375998687048790178960615517631346024823547621213644543589085912724159525531002935104743396790503815851880344412634471406605250119422599174910509459310246204669043758610209320962436749314375125634662698755081105757043820502514903559446742029418543418098472447083613770865617480087495503020366870998642614301016200695481401990701533707163616210251806860732106818337333196670956076094138981665849515734841100087076924592473120343997328594692982492782964194639961998051845806084873554568728195450395640985191207159687538037182686073280002064727666859735238263929144938203619620116704700368454568524387393942043130483107619477760764755446537333336529384931323575811723592996993772988073813682608398582244069856185501673162264760138078218988835196904602221949135548654682605693505675595195638526353683494027766614995047104898554406338399109300117888767005711283639413372086361662882938912011822432496173795697875868042927422313364234342751035912527666037410739114154442389105249123190805690472359519998403193237295721886686649941401922275161373776216491535795546781601387220678803534686243197777432443846319790658515053855861262295535686137045685871635758087183566120692126289268345736049234032774640149916729367117712009878628756159241104294978601060643309400924990262281187804210003145867734164367771548524477722278084028269350367475074851374016947338823978309827442609790024389932870531836452957229264936591991971654572388890408851416433227478626857389186214427838222762133116675076168422586150056468558318983642454748803912947894010196370214047387698269059070314462670838110558407611441539841941662283397497704966246998037295597769352037514322888326440945002598104213838911621617400768884390935258666417726316815243788977381535510492580567198652447676303944006822881376845631392336056361243191713398195369877335114465968811483224283058264739204450731960107809600290257347687324959513149477588884922941642072389993239989811367062748874132831517759483573216739513864468011073416865101526743699116340370447060126546993829399486153886478144559277293551845632262555669998840107850274967908385318166643099439911341507828730052486328108521928066548179708562552015971237767179772236796314086191459817334310079767573293489212489467751229244389798074562129034254289909087931243466780775250059375311288151294953065687220374486526768128000020977035083216660609453590734222426779835350393070348742189085191134416532444246469900935959420879589647040262947026957635506256604329071612098574334787200181404193275113994824305383395680343852485518218222046477385558464206762625173127419888858074492593184460003633003263320516822912877243069557689024058527688093318876718782947066080125085697194937498942500431160461284762517597992321061459220928460204253413126021872346396343924226361388685214241348676125867945824539280566271737749675486081292436755939310783385875352130915832893846014265132349140471776456359388946435637585177342037902746030482053832529038435284993861479846571943051080300973609559337068959293336081167779908220308850187409830738045245147048664679768620629345995534316457631115950561255062214202572937360406936485256190922574191618588269714789729166399052117315346782708593123145165228980952425460334323942511094787963565142114336587799741506709535392080600792178696296048218978857585960581536584621540623202202954823907751145519275872767121429171501749644072820926907375566491340975558740429182398584376834483685990695804869449693736814046455928789260917582246232083013915826833694962926647542404143965047434565064938024767044335779703164870696649813253441528290725608445874392896014108730243758687362486848022827400775747907402309998566897675127547176492209230018099557923530029460273243181797196613636143908244467783148119238713325979513041320394160388766470043440650394020118510223936219483703703849653451400945337942186934618408805577671968591000451480998641499143269082047744997271067651008761205009270570607102030820351426723230069687849741071907953777013658433839760605126358708843049820450759792343537298378549093205020071388770267847348676737163533672651429705643659500579535600114139169156352120437944533876117904165400700634568556511592157117073462788814595951123753241586044335110007934365123862916103421029359070744522049452619307603256642184159149336620998174855427753106355586454875092499491896580350180894713099047804006352610280466721956808783316083249632065202425214170120787987011179868197049401152415807226915617581012104121165140768412402426507364167585337392456979924119555809585722368273534990041998814662073870981604951232724424290851676403387895280046124185123890113290755907784883451640394799120296595287837956253169908549553263970709326315699639223134985766129784194890993782566796779139127587646220792736034722637853570828878636069255629022765630919084575741556112708407828408945143035773004676186676477864081321105936146852568163807122201419224210045540201355741738601860145122360317387494786016535435072275409222008681996858698969659774194067590896312875141546900692287695850985103466959900888635224529020857367514184561693338776700191804079988814680374258882594326316316121374189810419101055143896371082282324066920106664434175615926331571530036033198631572558007416100751993218738231644713742633408025548256233604829215251254491556442374450483886085398055786509604160235078581914838075993031006322788761422676248627002549146364005016184110572087389096093935911379765834595766571308707129782187753636276654428719308895630411239053413106874286216557291778743142261191738374755252812880859641558834489238286973816742268198782182837426249443892697619345657778834230405104297563308673840420775287861717558882789063210031965477547608682880625421005672932994169720802666704237425820029044307367413609296789215676887154903971903497111220422349717020108658453789462344222452135122895002226886772163067091900735676130573991236393018852491436922417571522594245290635044055804626685580269225657759276105486022087222967142904782373400802106299359144168817379400497846192371490273426093355518989070450488468910735065821608183794404005816452419786678412251743478456096598708076527209725204417847078217498280068729959340566416270233736891423418287335887641736802194410376328929213990470488895337913058171219663259818362318549920798665635615621885245993895374335683346812567720840053311096516746841224608574481762065451195914568174097615732317327414578620973824848368991595887181670396549516382435997181656904764091054437442326273955074870984242020887381533828728775449329239271730379886829460023029324775119816105322426971700933208110370039670717924345577435108928780476842489169511161543915199204237549327189932374393324369603013457241047617782046299309277354093366896944606976722275226587853810297916048390584845580569463845157472712702565661616691473289436678933087059436545338917157411825793162602110584302470055434244627330975136579521207570354136683254313776855776366426812725816285291937359963989866714855047226258898584230107530385354704303850554100930903944428023452509017722639533192932111655559301598776969942493794566701943186989039931995233307121384766219379480570508833985521631861069621619982254769776340574157544413424308445829737744139755403472760120313473724884513893642268916216978339313188810844712878792565217975497249591618087742334149517510418873790065016023241347978764306283925743480448356218155957955124995996588515594326308460415849599947545745030936103544608915408378737396604572041494657354555085421562684319479359790565068424112934256581269835211833709011776628588072206211299955717980659609301370784422560071660395252259129083053109631370339461943974599908461899129412128665949964334334488391922354694480981109076010252933505439803770527721546744058849414854822996244622469996387365415982909310592900831092275706482674083863738851355543465582631046023116728617129867698687064315077240659252760194390297920095307594449155523214699256272190450647036170269821113681091963522286348451349626813191932040159015708878218844366841747994010351683949473564090812284100536272629392096136887807178833437488154386642917245599626287144127147129041293186347984151786909122548743637573842766873656010462558805056433621524879350964622475768132229876894865680710031097804118525043851740387320293752833650639758587129757564868973856340745418576898007049525897142574788784432559903958797984684575200863320751477843803647832585230653759085772257840311553781001412052710927141268859846150903026129616072592173213684545025967422666598256184256610746299016007544929909415895684415039579924557520775561294927486793524566750444656540766024472424827098746693113813413450432439804397403483989317375871846930810121057376095513802132531020277268333154295237886003445176905343683202654126833713509081079825713401291181548027311381917852587346170989327808858986472240155982964295433206446312523793475944091269059071030613418800007733345512810680406778031017544627780500287081725551175226067753724133897152128614710423176080079281958332544438024730748836324547886366899224021585010144164154932153428895602412728544391041330075809487023904090353350520016627780498164899917947281889857272780985044950250923382104113249098899584518493573928652721511713798527495954941109103517947399530829669065726264076920807179612062918013601421406227367559623712828168181595322938619967939470131511033317457775522617839193058230536083011255421621326667724552753659962334012558986414060315431164474872805377936469015579494089056187579159014567289691282098540527982837304350220564144032719433940896476240616045680789781478649425769375161861102981612316777904118957338568611443829038574917010630879774161068086728216421091722272307647960608835067628436138603540628051599842258413455844565737544322135532856523995307444344956269937074158991788240026349624078904134752899130073375765588643821258592464359535739061477599840121936020099676497874992861679297894718211461472017286570313934757025449892789675967421853251455598426106008505024819976891284026221830830954513073769565968385948618982104729219669827250986797467180368683424895999134796901794263503609058648947423079261600408573461464920217606808080405441245782893234756780855028282860391346260686893226245427099574591029088105200126249773475206271740372986365012386007313452587602729789234654387536926656379769579328768393004787434030865875800158824433612007412874432675492028267649598795170810245548488911746862771163304657519268839795788738680917636426646366864765347018364752858653321534159377611300843132573255341289029685496224456540063799956144640893243579004164705013657764488574612977469947445663399442019879364143668827095232985999100140468038305215554654178267368002779221130485627386384072009038194363796374103531286127156617689574334913429567577981175276806196745345174364103268285089133432808811305285549887730891052100262353439907637105335326504374186131364970029147591885879888209729695701692846843751210423611335761668663037494675966045672723853512612017755136706769330712037425430729556416896452287473125890872730105906895748898304717295671521166893710315111767918511432557297401799497852983484742887359907797439293160566059587727201454580628780799578012337942853518039710502087122602236686151476578915795591612237850706890574910290158764778749490535745105220378534886570563960356757614883862890747135671180288292620499108765597499796900898769789491853664153169431820983946848880809065461326237306587375787903531041095300759438424284624146402017864813523447928338938917842690850309068842807644101099560587786407255259915734943949296620048553583154081108327114506531822796506083774576084390078049174802581229597027282003898979621127457432119534570828138718353056190473868326155253200354491431674459587200941622985780918662820235389052265309781874742395808640785049164649212847669241647611286515907604614966745241446915978644546643250673485290770569338358946021919412058315978828111155928820667771688936616781855451390536905505725782452293591772189010324629077272162424589218888806731259211734512694699227658600514530885980244763175816147429168495477552087605587446998429940130278419373501700807760871881247861384956226245848335904693866569397795239255348237727957388645993095497506573730356436033155409294151242450085211278835479378317427926647877120832782760870585678187583557973222800779133754387527357169949551409147216286781358142471964368717081683256100119522056754192821283099282125499785024399696062709594587227252799678069550712326875550434169813409239596560737157653064771681435620327435784968725711492677894347804873524998130412609393197663451302671610209289844738885932472746452409892731381169922969624827451899351866187646251732860673151121100149699765602837488441533991399522640204096931001657479069395016299202157110996220150769268759943020896522622745619652844633369036879654253675761456632088574109964218718700286681119928807171190560210582854341684614239243017779862795691684034885579539457060144483073006122756804040712730128270992297124148731236674359189900902876724536304370022267634339402968974981871853138000455675510798601239225054522428174816727972632623845198070236141792036599920552832940943647525465765510100950513938262453918350380768164118776865407424049262672920956899302551764005202533185577579791487051822374800550834533601559104013827015167042008438506266671224539167902865537040068429116207421556409312228311117328594790947767863705303346560407348653950249232118467377203807479463292331089213648744226836723520623658579537061747411767098514969304485384406918504206586165002996697102314865123138756768815335977998295363885660015784821969106122795376707617733082920836027778290230314631464978528625005914330503479489527315935992710530431296374428499558368805015114187193890196264699291341393903347724355719919802899676814776818874919446668607704452112506588346781779219981545635269203650530308743598583368216420034386663156897498017320531300867873798896098426950878155764718979351457937185382539592408867218516197344630509933956507944200229147110755386294059643799119291007195277322328106501865059167049397407117771114852038116776438434615547676083706417081356303984405725353296686259029518102243744876726914111923646334634054245527831045165996807451611806594798551182962182955841258230113267023766999902064658412093050110375385839540419131702179398506667918450577154413235964609779046492512791440689142707607196127278655240269106660558762060860479789314093164556087712581498345131264113925203337568583472092596422889286839882919158385646218871166965487088773041748564330120206990464497634962235302481721201624937861263911744844132586479070970893941891604585425687261329700233577469154599707549909662842124703575123706390095945163081402680830907273267927685892610588046290727120564715304553265955589580252944476452617279015012600181189756133171770825298072405595081115390010594147347365346236591574291817756485179371146214726810256218604927398682437633374396800311227873837392264145566557368377709104372822938063529518030603099603238796595590813789179086383579280905966922769893390525454579511643690950192872802082464007544334525325679361169947137143043207235277468455955405928455656558157595045805864805901551531664355906597281952210066495102048397161151352127038580577497047619054320404651811404968897495759567411800488398910608330211965739224989906756651076439878590093748474485233792319835269770458039609651145665727883064043544914116080231744952902033651089079626000071055176794819539350954803969608709619156824345134343856980149308892593951988271526095312897314390640436603295104457912089090185552299766888704062117556373857252407277287865690125416854749977737699686561229881298575211776259351192619455238375615406834180195867158438180727712447213221828388729517771151583060846163392712833729004595490996513764934504817875995501130556748482818324385866084332032884088218800790300267433554453723925046069432964021580704392908493927889431806154547087517361295522320586505200720384814333955193689527858033228954250127382193214453483108064935928630572652504675402891998581654969485105255784273659080538685669598807583262997603535706439673940066772914348201420381988030274188434352239966574829655016950127601111533407710242237680859049447879260963666523585687638011628253362154172974560905491719976692834736720906374886049019669660289281613140732619674079644179909701655600106954876098496251551355879179771359554886067193244669775248711389339747585638311746422143529210898046213414571972025800484844654998288440577289045959805222309955907273149537187589904187030984824927180776269822577972579022276769456825767233404658017567613642555793794510587155884066238826280245483492691272758213577506489659468927471649911718596905180963985464888210341120998476700782984649253907232551770301469315065426540511446891988820834080992095385535434854949770486266577681616906290799631834929785028203608094800030592146987040582733532817083363840016569830268117442394668057940604779880676729764335529201033385404984429961845830161995462991054735173346871595424439283439336032403099844056946119883860771977142493781250386323223883971860082858104328670613757602615999329529551772199334057361736163949849682054706381061151222323863073853369990112672221520163041994647534009798801228375376485396428098964962882535582948181618334471780778626912496665241167964422914158291878326554375691397972626212774143725649648011205462719476891342445792467495759966646528669351301408713945104236275809608748744575941568948384796319842303059887944856502913478146174494374625471935180705722110147928814069471928774752320005413363028132614776572505290587092627068236774245339562133606640586893626730275456020351154126856821863249477503346242575840438641072739200785970874524145911079072050054578910412975929892758466277445214665222468170207563951289805135757756874880150847602882966216369895306540501233723572649483588945630147810469402535777292544538288074375340165877903889497327057029618845861383076528484486558625639120222418258451491155362012721922454426904025329946469815759715955829920825801851099064415949462713188626455601647943874421043454626327817395165282746903432526987199722809606317921399891293641070497783654699903335015744250908779910587194839358505066825543644135587580434088699865828904265055525933566498979312626787607293020727318262153052195509453019585241760706135438325586866749084925232751745607740252936487464182591136679760895015795493432463758303282173755855459510802356433083012724840077729759632623575902090136309634363169684821658436105448291563021118236914697716495071957752385737757076394589431867609335265617141747833837063704220205580469177194768261776234653622504867933244984347653863349040036236327359147040587328423193737068560027615803187473751309074407989861670719863344960751734882569375059941457887865014883498743592395713498533214492281979514514319610233414518627732418984344178845767912200149326949500536528486684136798353751415668426579805905380660032582020687181573749622797224881376642174922620033870069410882773837807161656961737487814353424796583959283290254517947022979320559891175333216504454977979510997161335807525195260327493179840743815040733188387285435629498343041948208474356928478733705593251851416795691919381414332512794526728783072927221535551597420051942786536694512429365783500697639410562427488469510825328112423745285461515849564521006742280151411831815218081555768397014289019290318126993456762514285279272648104663224865014186409070245222295029372357216653631064478369412507193243045032324569538780506480002788147248866371151683083764010165869125980662624582158492487377717019070242783081921370241561817183787907802110522446796105725260669977797524259414905810514368944079403485494690593258389071353304560263146380572052567497346291812315124806590691740707019410493431424620666762596103681272417297169794600701759361168576210311767537539908380940740131019280617285763017272162747535273900736398136390637211856938671184762243470960965726044455683429282083431797052388757459416587516841125242369032098432232816846715362530105375750824238566114565551858800652184188930113759518720400399742051167089006112098947894737397279559264773072436546451834664528051107467154506002688635195791776151128204396649746544561473356133811626333399868613098823638491665541416830934703932600544733879656228296811383298670802464647553394394154478698360105237530848948055023040811811728168759914120077534508865537441303503422481427234598474462630468689582791630104944442377521576648922125511659547380052020284177691978033646066778639761875437076550582685079303250874963909398603194794796491197414635180741951497033107102485179452320229741187824067310746991993753281277437191102072911221172862900341401171055474916005578904560330275967890860615203855886337981952050554893711920384427481108069451782966735906309384589173588962456933130448870504309348356292762350536187167973145055759654469981719284234057631011393076899886211083367847321884228926631630527901529179381009055332594202883050664980905320126895455529400702797784717526593418624539964705106977805638898932375877675603855303267575976163944268539852348299601723623301372817262297313876171865056418525368618396990558710596347208168494844575087842437618810782826024826151447772656106011584087695852312998408039073514297067735852423412695323417739253329952869612448250326018317769338027736273772470916436258773867938159507470767363968170809957922308419393335272528942813135002083973389868518518030767159493175390880014226918338606285741771619329354370896247919050278550843482802141353904139473529145492669808089539138268691602681046260754815443658095504260654444594561054266774100752380775546936821656891732968125763241811880335110786116632165447737337860805306099456760560992624597536774375001130678966893111175623579061187158248287728587143360704467791678518797812054481479156000848634772926407941799666295855673683797136757867073531419032011077923675566881943200034404813024398224653241992057424881748531972793160389884048821761292809428439944147441801247097058354061401712952768752948749702877091345625931611278970023398384450817190333398506093620631426395027211388732836595432278842342048399220111010696062440156576404499463158137371391565169338007072286425838987947137541357849068945881643788121016268649516122094663451426463558074264001358832622770194750239687896371494920941661362459709561107858674062241314322101669567858058833808128380193153606014549141933120590503625768561789063666524755315232274921138607715358413765672786297403129695246695000319048338661795781351346882246274403844141234479996358019487452326529518606296787020585756078663494012829374561688461865691563091517736448087250954933758304182253624314285671668202303302505073644448437334019389728377818918962448896797349262325822610298662534831926679218930500721516312827986916557697139438820103216972029133050371781705222450146353777211701465422404026114582139194315478932919213953153351033272244437132903500079860817700849124939818595652768640846239833117518580951477588740311558198032009071801248212997991908902425256574135304939235243097126342000435372834872956992899066320964513467230734123960202104195260359713879497107332724410170372475917168597584874355156544139249769183271690691108672881863017164282658970490444555977302594769746215165396984563307884660578226449495285715283708899119473773088711367858268629727104627909672052302835722273279540125794760310146993050136217554239469890203084513669087997886335194911434789880672361551663752802654857467629460333761734151429284697289696119284519099976648009927160058780239523988072716246637324355386553698724335988316679450098420416942212086024667746285606431282764281363072766540564451540964431638284700040513001736801763674603174788280988195555955014612671816568569373662154748717053624909627284046515663782834568513893120165800279800485805964239212425240596614328213283548957213852648813995722884794092918846537105344705286094476427033229576418521757636047344866937869236665288248720144543626953401017865282993797787489809958786092581677030374536420127878876968219033566127976287183971143711370971900116855744673547231729383732496026518424316458140415842645025953476691601177464656364059744876582336237100958533829359170684168463387254999549160451779706448975136558362795981959537062814955313998589412760197109966690701777383751205266252804946971058802449276408449274186707694388882047215636459939343493450658279857785826733099430689938539525327346691252401060161221531793837818884940171902141363615665694771647650960965586407308494487664537054954610819503832597737282686753235740007791245655928925343429000571995491866260455960319717045173254919324067605407011841933162894835579758100915107608028758275108494406708881213112693169949428499799640028705274139702345045884965023302865235151309598903569742648747692034018333485291202846637408323102868348068090722410824530954701786778104270930443719682266228021606388411528757637284406496361947176393924630542243583212560376437835955156499387729043735159349267268915724697653745218454959424601451364034364272375346373030350688103382226798795936360909084636578308808301748433841992078239654953620688685515288053458920953221258909633084983656022652256223417745336861663514437630672205211462801392298169729997515053928385272877856011530801961688457518235510735388467056174350705811858604028286296189527104326646701100694718485274916568838491945281715785477799387498107269267102913865976294065577355802375965472923700144511528657553875589271657255600208656219961321596008152222643720904804439292285226097293201472232406938214687757948430174946324178741276068594935413050474680520980512378467626945015250990576109270412802906886225690122607872038868979923727670321830196304281433557579790987155496145640922306998063279126172528106407509170343688054742649699263322687804575731963209713923794481578698826596489604461424152949568746580231534846840829497405754320747553219780492542146289468365651809153628296004412425435164894013027606257559251480549758024706420846692223990796400425557672199867960758688862643590217173869099043274004522780338328035154956042991105037655088367049507603332836855601114895904916610272120534695416793085423890918444389302079506368209984812685585419914208403762524108132250423271310693329836338294694364119870572012925909056381549243345722131863979116295775151830290424961086402778391796148297037398900920321325639330099876269044245829958153213224962806078250819192847004567971872773790241793720578731424568599014492076530083205324182928544778371508277376597889619582465077969904401488203233839473258634764797233989619078633256841354112905098689960446730411493657462202957767555256635741160752501165396168036834885123271161302041141707117085948683898575010079947844041380161349134934407384542132311397215362838028791303590308982456538269215488781694949379437319099394180388788983280994812045586476305210021351351801964496481819576541684482644894029626695233812703540214810537982399593548420345339990741206898093727874361879750094477097827275661660009521754096239504154623285459354473934581231347639544471163729394454914439937090356442139340702154687448537515035036618138485005631856784159918764080138065120404791045586137264504819842717334236972212682491102060202571554412648269746507236073936926533404662268391646851278252007961946389683851424651353170784017095534339310709176498839952384565160660634072621438144824175786962845042896414642839301103070082196004023130302434350787417800986978080544841124111369574806662992982527334301000086362290464567521002963294625392787618850846534060695809366487334967162147531093818881652017539636844374859307313609538644249084091367127761978758495501106887570769958263077938380581810894505371620109318205867827457472887885250616261686902687252949511551863726362024130836307132915034230020517899561086215094870655434018523549506598501661517707664549090449675979031264495573052974299462157743770349557084398319508084623571633704498273555573302262103307898898190194868753390462005561855617960750990905879146933934613686148155785574577760745667980963212175401317553115303430332492643520572122813499341938549990558956273756862334738365997676066168014684975450967846335908059831644280399110269457742345862931777304574508522412218847915897240203640833945260693676005661155017425997881845429058928505782669559036655054314588225575868712240029656390466146658550147846620436451783680890229017275717473056288644268014294042533376984152782065561791046442135790192403464035390814566308226496315784427213868312482530141118875245136932179243503986700858201796725099718463120848530112017690721015848741435167194728082677603455441719929292944249067870333484179953009305665208245287849209606931838412570017489731124461948574163847196202839048323333884420524484629942316230670372273872950151490388888563422230296126739507247212929360280396934156901224440678391595329836074619628730151254741487354338331923847208891303495798809180796425359611612333251586912884412277042822764740291346322837992090468927221629733155640416272608892052220814210857442154079377957873736647665989869973207369073027485537463742453643607803799118741245978821767897647343347243890853540070627457771858860045869932685948601984543904882665193762652165475399394199937704833018739184238171462951142383836276383667541914728695842497835146608984719939581870873959094436098933126249985509768963145294811325585900672678074921951729778404699165739522519748259324754706106866522637921515843616749906347016599816263289019298649585006031502457222033086118029176560283259694344150962823855206390575313557438364317324311181042216773736419378003756070411171539852395434106427907439029044817820078974607882840674894298108628233931479451589033260484232930944012078194993358917938526734083625503038045329899306932884288548248125038077594916075871272180907505287958420095335104452691937794829373101610832472714249972402828602620875343752410795432729216123125567290882923100153967596560955359089981108369785801007665149626498520942620755296703731798027756463226386402343325256914741395127099294488926019907910352643625370391673252074062554357951251066162461628688073934151948424777952033425307734592761350150973190908387659632632207490882154365093453559938207652894572121421684226756362994948674949686402391507352433705874394433546903661305975255953911213321675112902019729962666228934025708861329477171673450304983119794242520949048638378176146927895375519583786057738357683983920760701022594042051678424491846181762539581350139475783299095479609137284990534605722310910359434938026297047716024333967495579895721580798270569649120937937333669158667383970295665833874643659649107193850563138728198676452342110601086813885247897612099451301204663789726707362998104961590077494611931522615541298651531249431336037559005842101941275677739232069346162692450444469009317607527298866324067744798905490701377904734300639150174172102440961343240810877699919469770121007010249080126136831476827117583995468401268134938863269346386873492196955179222340105076256855628229732925641716115770688098710221372136356398706214526536195521736893052085941858331817285656676085369697370527206178782821071221333884130696887299087449334930587376637546793566260859533436179844936810776944029503445889437663734107175548946220583723096892698156960642492076571188820407303815669232708742238428249890173028044630263605276415614391013924159450947616042322676256059008346699244978144417657387757525960752647595723797256637638427053206124415911142807289647872322743686083384053718461303285022587737669036980525125267794332080807503659809620828715605085254567904746106134789147814024336189528482951314159087037111819161870896680354516418528532106344584924736997517147108391452269556342993149470701068640886707444062061858914327424846116186098386936596038272177421456347130476093107877439621524602876964984860686118936811660034121114991149816731215659712520930865591762857687239643144921054001830195302233425331157827049486275189681163750254855038038425420706271099134023475129609135577513917044177542781254945962397797638368677999107223405918462140405726889055527147046266407892803702237317129680359141258045639508663147574778729407133992407350212816358295893033783072862710410476447225339597619830780635041157809481594557382262553153721495831191809165161242137924641915842586045993122381365190685864593607330974215608562378617020369025273335116913316827232887964948398113179304369615481768077461939994172749981884159704021260425810922695722435917502864056574946421438960340526833448103419347413237434074764878088908859228182147302066318628013245528741230226604017385723056898472460494845487395854553680933383591705057948976976316219583302922015149278041757545314828658912652583581395061682459421962331025157096107457438522839746182063926427458510935001717895012788475607434753189175111618086353342404004793270910178033259484032773371319986795066626086707851429253086326769825925264495492045367415796495935240010798556901677017100103468129419249609944462003448019449344072331705435136454521763412282624267237054260491038177260877018561394807600088939650794386982714635423844013930482301916147327852936919376810244362722976805313511508586505115385922245888980579293382648339516747351838172529745057793851614275631551893332986689995555882486619220317439588808014105345253668948830955695248026903465082030336125265889173879810189866965154898616181339514867479130589945613925395545901191133482610575746238650296104277646034526625788829083073335652912500227776879544146315004532362130538544431806395985536267588315494318554511989483553293677128879918689100983500767204462780668206491910943693416772830184859831562801973664969379102373820851598647323755182803734909639208887795863350955670915469188428006844689854700961704551068128463349992684891542566336429503935390235942838681171408014679650102260562075039096168585533343319779358655636702099126693821073194071174691650356935901855254158555477583226445351147881908322107212380594121996281483217099357949608559039204225950361861839678987555464196451540919433440433276673126705759931787048538256026565893179870920977164045669437093860286116489094360496090833675198252610071491160027235888457839689037467110995758983881955393629507743820283631675858486377297473697446301051321304005680665037239766749159500458845190230490756034723103239159366058824073210039732972574578057838831335215194772043237693212378004765618399769356981691451598826630184689631535539170148251548576606284771061744369306119411957645232976830385542159379213690079487593776797696028888309065379318135522153447688515253911109005746085314749059360424992537643086619944702995056074721029249542883420104756716089339567829680573469309466820239068074297654530362925937426429723867059440936454698026802086021830543190619837301961309801612800315818173029576738956282821393615035552242185368449171551372797461448874529312894445846647323702937192431022349641579222448906234552189358023099395747432487039347436723741436508473481627067880692271244817302131628368112602727706204809014330811207108744925716586758579292667872178505754989453887384384510967931978777376249785951541209433156519502519571618786490736962062579570977337288359957313390246959090268614731899763678796763094128172004452244327119588114888371521102950030354589942462836780971938504387052115869462969618786855202827426909444379289293651558271630890140471437096621261846169721107485959291135777170952081219620627793711463009673399564383929630243607238939387790587595570653178760177515431432165942812190949113678603846990573120399297575300576990777223958972232895504175286084309323980704036260680799673582322827538879397117094859191794257043431784618557141676624202615065716217835306847768714192142742752118588790390902757494020740875465161585169143071658532626353270559478462969914771650017436784905885528769088834702907642797309685723663274571237559351780568362410957373433720260655055592562410177790505941577469213894270027933666185607063822799093439899381154608914860676801194976038183006408676899177180562124716868721627479699375596745640726794039096569014381343691387558389840511018582632624493330915442861475997102907616427209761896993952853607891678240122979059171535770335892594194338527410862169787847386432605393305594826729086109667611957737584650309225271191516761601046906755782386192116777066373220147844774961616990054196303474566142856327028295988907881242175554520023788724005681320810522224071535198153851696008218284024217747908230577095011743889763985178186011784340154940478026532101452726818172163503169238608496172399630272550190669097879702665920506672024986288157683670184453252624790080765261756844608573174016431127495299412992205305227065652671554527358505643860076561249906099417017636493908023187382478828609807654087305129634267380382088232373970109671495056955509890518079772911760268115658911826092580719047751160220044380992295422224089481889726945941315379949501264707291262800143975462413398986077508411446169923340682430010129899897754232032540328381697111945571498345765982332195192948444388091328707499436935147172020244216355489542502680527236781025721830720177379697867022857763329064846543076687612791122118899400798976256042764089820778216631472718769955741000743842889188601932266017468009840027268979944230690376397443602210660984443208018975978661109484753076544615622205583023847462400856430116969305974971976011179390589040051228012159570131827443277191048893637638393576857666597704040035502161017972459524773447768579842380845163248291839057141812986742853502073441577038877647878628597736239364088013744244635325732637009234832133018161870910768543335603761528494643474301481472591853013089038659287728604911968452754130025686509052727623934736005544112584793156798330086652418961857670631622306189159321641524567620555026013139143708569790596495164733408501144384061082106726872242091545039221684349914316238297821256132699713703600783946960671314248963528551288802368264152170785630961533210422406888504688424143308208447538237472935111876304212095958121195451110864633259085554956786535770032197927089908724415531967056072414346176817326964744523930257275866869229125946146963723365801459111486751437775348408320874781188326737105894960968472698756111383839900483970631379810601942228848161758545179376926363923145779446512398842955298687810366239295014659067576114575800309514426753045688335376244409906574455865278481768110772238995102544364058796798514381560726645653384847616197910466014525040743295505194171430666315854023056981900181784229470653337432266267148927514856519646461112648501504081525387873067947103522488730926553489534450058138253250558795934143994542859144215891525734584284743895713489811215116861621515071926151353292631480712202084053871331942152030998314517469895122028542638813144357543657797019336738474064131267959208897788426071443457743042095008661497265280670538325084656857293100450804125236916881984088272626554679828295126829232261110482293752233675918313752462584652048062173934703154838844469081363725223494335865941606505578382369947533901437262331761835958831639645394846105404280353909464943207215870135575652094430135756682447864299777965640083917540323142965871040198027285174233512683983832288317616917620242056022604763946269490059472656290979613367302464366549703542318577927937687028719569997514229509533257335140146915199790073798402849450898636399458713988893944026783161422275000555523657291462526217551524637810357569546486897465430487088445621509187256944933624756279346402981064199679953177964726139505504169354028181912815714157172509130690870074602282767007799254288111154153482158205920592176913710804249848288157921356941273290141407522387483719125265964958163500671035567103443898595132826848384276645952160749581791557341902966625992802566632192899546622877107861441244557458408366609919772804438757026951698779984794333487494122646006410415909176755042363622775429053106573001617070083529380866816881645298363472523129189292044097710947673111094346250265630020107428603968201236933744020347800843849786629300627317419947464452766029775935748797762006419469366797051327508048459042666763569874479816634182977906409360414786331654722116162640701238917487925490650152987901570514995396984436510416179509195267091731411999323330209033973920364629752241978768150890619389462854053944390475652046089316877290120993176514976932154629203425030439863888001181289350332531366639394291383138931718372920848534791681293013575192205078342098508481122146657853709781583324927383927935573574039330302766538899740640945417769097128832669667962740993083746305124923421506444895688678020362130671737292465622980036322375046030303969623555705656203385590993462784938553564422307652419647594063130695292389372635122621655441440036899475019537621797109736803846264017548781063570610855094457885146788157760049758619978508965198116208410619339239813224292609534520688717647309486809661648537003705767390728988648095330678476293981812276839101805562756890866931345441408969076139146255342885666737167329926552477489639207808183113846860640231247957798127680461137707997260931011872651426967922456976623102923272674720891277452260735036974097230337163726511647957945531509310652297776187197576203440201457836978042947297030853811143423742441313794437379472337310332487022035484914697073828323733240563183881354508542410163227716122751630822508353911882989899213246404188075248889836966696488934463487250859093147297363432530818622590464149843309225345034191750613876844685109761113743090263195053064531004944136410151254152183748188814022874074193092688028213397210273408888532728496541034551991716357997548974815966113251970616436778871797778372360607586559202403032200035876027494045229297108878402665753127282751698424554536421531399071981585048057498707357214871919110487654102347147441061133194054531079900513573714267600642616806628067825492363917352960398867478751434793282164712053863971782792178472202396277228371172032444370537986945652353925040291780135576924170073299714837689349058639150923093920971142112730708139268583376593656856743412472776339404022368661934667195964944207553641596545828786574650563012388805949188746166458318061907525501497640374695652820544294313196383455055154581545913956071519985191548776830508249437248744391417068551640934706348477321051248533220154445895116007953029181344458468705052308472909012618584112184546338589457291157130942898051059452856337364166031640713243871166099920533659241353496344055675304124224546059726415366590121480751381640203305770756800910975195720223027606465165263425837712504694784788745723342667402334678468571782579254655361342933809131716804220386651184591255023830911615479976296770336999124466126421021720635310768936056123027347610450693450520899773929772809447411555484922880106277108054607131477576930524646930560956119273168337415899582340577482025006072793768719001885975988912654046186672008085628048860697510490115298130274724367556078611638819176611025472693417875024920830423691645430729039214112877613437727012022672481976413640063566149733985097552349201400008862053432876529768322845162201640901599739307513150325974702865607749980014948223556195964375237965138265597217450044567917902914745115198541164456966109177729685551628205548149123887725370043042120246320444347590147177464291447412742750064068294411560840771798661268330074001758868724468236059804249691494786546213539470698877882852249698547106627971615040594131182117342136545846133691048476584639746816985436280492590737355663173147779205256340719626729045711405879394098672670950118657132112680504929293425301596382863508949041841847483522642274746587529108289053506580728506759821925273754170890648889576084749355581480753388771181498505826452785376050781050160911928088419126050334823327423823321347617105621233855019923313454712642701548666620837030359275276038491422542765012444050832380547060040449700800868255618008395750884785194102265258541974372375834540399366076359767611976551882388833276715451581992682684460780012228202336040389274603679825778898012312481634163701051321499752605941389896113161877095156257719096641056578742420230630925922568889445558427834920078083557639735086732742071795923792164482743350702916379400695918608997183318644819551788270801408094172962790481505622707864814315395704849502171047944329193368527490576258152564431622673877314824315448745436772740952785245248997082654202343773735545656575747969760605793939453361671890422789089911948658371906299640888283501406499415866313048960728541718050410444719647773821010266713622468865298132692130010217020282215292127923614524041466871863041418678705002060980153797239151611278003327356001510321676536119250605467357792364670890688758444930254110348629926544468325694455225885715647377848439646677528715443235410049489905583561261152579610727164551023481174314339476235403141170292118092889264239333287441708736463576336857473699049104510283414973839482337356106744912906848994186609241405442915116795074915207615482077267224655070461725606643096248521366575741826081084651514327670821468269880484016687935304990744128407824553200529313760450599135942715535924353625400180145113736439561101856206683782984708789736572944108481527455606630260042157177608286358770275998555995453887100457301581183122975370865748069114488362051724186084640422611726834947062635529390041258643963965053562761050457234829334121681416345695515227926364173973653321395685773302328082303485661703257411723108665822484111789496207535282184705449278645559447360489493089064695047023917519142038815120431948853324480397032517636534522165386134330402126890258814565864054551258287579393032821147030978632266292113888504266849035205042818689316006689149384509791038123935029555438414693231517142481010706726237767421972382227479169811423121438960065347072012991444511861440148015050855167486258658419249634182229832457053440723308398451389136053083350272822685416485672000235402109472651251375532940648696073623266919401580419522360133699568642313848994351848394238431329622543977117745160059897247217612940700742641918161366862531828899993081183450283566335341011524907779717617001430251704713145777903805257350053292423689106370131476529864313357855387320556503598475616665760470305319128232490419832783145932596279372880781480232653997539696801176754512198459553358546102668804481923937553657395316974077721411182344519310013917246054529060093452096129356842371420513556263915901464219823463835726157144535831793031293653840371426335718405157966984054914555202403197306990062092723952351053678024240398367616789341020447666306436466441854603101260769849560419125740870726425200235543654647689863142852836535992612398999830172726901279319128074021885557534603227302451866903069486408494769793857582559728634261318849051629223776851918920246947443814668666722369779755302009895836128754588458038958946094723570920517879225480144042756544794154050896567609226733019989092746910281279470019440022571040989736770808525906864063449463994254512401145443485978090556513855148993507004703178759576405107997095534237889916008704908170979035051886079559069634091414885549846783583952554598570640825277662656950366687465183138016663999123283835723210857249117756516129007949182092477497377708940764318771248000142504295972692693301851683175614943444500369879011106113748169230675323759092949272952605403795998018308099677487253990192850767605650835306690137165077061429675546037950996026180815089399985633764883852570816100904106184374168933397650477882910540156776753056426217039833555725489636863289787916615125988430945349566707526550125860558832823907388755622745142029505464480433465909703196290694372602782682506467697034100007785367529975692719074367254125118688780205518832789412442730719421939516967886629106168281726329926666416813989101753383100358452605712170012529927571254182990475404490250321927430240771847242405526602634786437295440475113724126496258358782405833471686863760122523771073432350085938093252521547727034663503953943428311332058743067731850685722194727105614818927557886904888449638863033502137714648354589173906549891460384431310634740911813347601098670542466103310761327424223899503335552784865682435250146197924052862014858922841074706224066719594515005684487011524143163381710501019948494017793223477740535028203765869059871787175744409746845677239722268888881457179983530174318731449338333196295224102710957998364268102827737731313467434900102554020348986404537197000094378162624162236793336730348754490122195465935269983437691641950828105357840725587868785679811733101901659943740870040971183817837844371304387479704540015338045037432815373847704686010414410241069721792283485355021212512126918069695684172786555242010317012406744433517604721103799591583664486260942251436442545405521469612294936362259486883400283444122350035773948472072220771569908993268867875688048533769596491912880038459525571449426522865459255642568859092040920577513515582928459610698550146409066904993616420765688294902672916674130023778804084985787255836534404370145572060257601250153786557475428596376132544838706272884495351029885230559434688011379297067094890192466440517133968683395570978502670796778757342771503791582037074256798115438627454015038372252421119678147626525582374634831844308762423674176137446541610855927842683972742439321134146490842209132890094395217717376229322377615711661939969891442816330946579866404866307850075838262447828636260058152787969780007929501843003442761685930110071097420607544976805272617759111221768473594330700744756030677578325641968474084979921341119987711624845655602025689325703180037083365119370568441712517404645882882444873863410191320400375156059433262911005264642648249700966118314471578346938961927191707990595484466072372134873813486187420511834880681992129136078628258864906740667873898009940325904236289654100014861531139989717944934289392795076815480470712987976250486385737261566740455629563911780994421437142517547876123161700442885521623477641179578243603935983591424534946372362091765501290734926408306064779293383934127319011861486636440739892245510543324561805602171665540079829943664265765352759887072877338799453600143777364121054317771266941286240769953140379202080900877234629610252089902608397822773209491776932647693837059910202258868031964430198506194450769129421664842108871682899608072082582301121278188775788158187594191892876262561105469890443461569240991060234576320599477409387329098193710689517300625664973078496284532643539310867939187018661790102510566343916518639980495931894220024598035343724328082136023828266707616821678992369308697482009865081531028984220404547251015459042884825096063355388847426623919215569336137746845497431849919657017568759151895006147390781813797223183631886712242753186195106047826358787883071281936598976292820100499904574531297289325335874469226469548028526361401369383832937057565734747751297325321118354494962502892549149163801856038944714753983139766667170431987127376675812765134037837444412062957812715174266667735719453216948414497370539827227290540016401114384538193626800769834499246884785724085506906802888340042147432001223497860857577766878217542742037117646503799667668778520963429654625103731975527069918221350761340290637314399299930055448007017232834413698087025493443029213477270276574013992895905276056868086941703958323080846257254551411567050596527767325215282305494699083772425081069018234276363789995729277343966863592670782524921648127851538196045636048757027482311844761726243998483934403199343240311837753469702429925409664319462429012763733111733191723356027381684536342394769737532819034347207324094340999966500962524582026410156409462026994025038214626983405404718776392419938544825137243937480484166967389968829748128120701439320411794612378818907004586341227911651472880947659827995169562994232923291407349607501760693384544358412997833694513282660102915205142431013741385919920577930692985035485531365092526451045478144025830347213056508870768527519077223889388403174090183931174454823492489963685672377029449149795754611100420625120023531083798537681788866890809741038888576319689657681063876065167368248187217860844279773960627539463297528068391496973144873100312698587905441259577011190569633725495551558970195381252918383399535235634647977987365596558984612538454631777523081185809710705220289443615362686077536195205382790423656981062585266192017697738947153793048263780673114474578965123889951070452776505990742971373499020893412467062756702069372260983618233998260919608882432255038992188880666216489462328098922818535918049976835817610578484079829336825210900111689754442619785286012559041129123864615239258592923888383446572620796087848267105292761857982248534143801083688172580220269227613434465708398189258633118243474702755483966728430536486203951439080186662510994301236998422318203385917429442187955709638769264386753442909405444730491547878673075086341917117760165342030000884517769436262783120812596490511662690368801574240869231615588739555121551069160376072492298634512760464501637276592007096337861397630136954731431992225122655074705013856241348106723154082670756656571618918477573030641019540344537789227173766978657173691434232520359271068020296805149198936107625307491875304656635821426315398888872548529853325399452833570138898844716165134957402704300019168485796598027579256783039888064683255223836097706792021821848564149653799340312446263500534603014668903378343502345594510210590872982598976946956439691154505318417865249784514567372027728166204834385147110348980115507095371664920372328227899926570294566634506424970362676753932386884016605883409589641344195618507292362236603440035040023843239464073410233839940093345194565837836174688711038773371086901134531348943847405737999379503314771315735211142380472159495749401744032794761474388966725707741762060962680481802287305598008950245457262903211585746937394097072396939211603516632013990247196653958350116927214867617270998254118392443123592536352482988674122573535767440395247972244426507571951749250914115904501134826507878002291071902927598872683611236425761144486770202155398372610460916480942718950475615235339062212582499978574334536966476671498868242307260012763155784445415889724969415587497483553663288765580158751820840216576535147819658762174777926563521500447818619148383341188239402852280034486148811063219062671642600825162890045518048664090598600570367736618917993557500492435729225122085900571052316853367985738430143303260936516606292691951662059916793424319287797425442159983420523379813185126339051963643544244487524961394420147295830054260134880841415598852204644096363529880065988679106186431406950761231854327951366090797865581292346808807464643386502647040854550040122080656772834908271325203237034850513525712599798243703264501514328601321222783890859039173842327542912226008902362976410106718369173500014817599643840564424002427592497200917869328501345112316601085747278548033446452332035975170034171160382675749757866715105184373311842554275667777455027077799576109962731893933473672072149627246903080609247015445343898353528747412015840590778064303511372102661548993892272225060435959267874671897095542505623232574907136792457034232103498887260343960701581120721231426024069306104497778624561554357786422974925772125851437956554493888745432738134533920837862072103501028266678419517342482326668087100773146999914755761018709057675954499758435652107336281860102725693194462769528797118960015523524393250881488135362628186322722900016994782669841089705468176612543717193836887215366611172483924607465860516857354202590418571322689549090566691579086738500464114882878880971003527698875426608170793653203049332999091983464883481537032075817360737879755995773043063038443336022283375214064926276303244105386303267926405415475295212814243842247219025637346408927410315614673147195367304026777975991970707390946858398122510173980382661881330368189135394055702202935689312787794201694064397718502097926036087781126757125226816647196920257044982275535124501008893993329081638671867506843782450701432707619039072355918423254682082336640383838505310383013161632349473247058169455603775750728003951404927333375865404097343339736094671293201409247911859696204021667585045434990377336913130732769312822020153481331844837587881664556288476141649094693006489413820302094117791305508040718141154913603020384490281104040005451184655026081276776526185672985184454602350841055794974302735934872787196181616452606279137602811723943212359279980518276286144038097987547106345861753404379976693171470448847031469183461976257191729744193730455512483251521334207525805815489178667489960420787660192113110611974369266007119525571006165801039218821611476266477120731995660485487833905301105044129949592310696807380032207404813127459199322989657095463083526862616526040605881053642695326097653308084188436980158858510978288344644213319785173890565777253319954299143965494112488784434860710350057491745430823453377877077854536079100250210169384139907321479533536402652765222337973397162195599166500370216432940826388539280976863451166359898688406270245773542231645226605920636568283269232448542512558082158975852790378313180717846977912117078005813237914783778730273787046856962447000144361509225472061954625602364493744005812029069096066035662059459227839357722336595918834702952945124895171165451993406500063392386460202244584511532884854754222485573567059595465349083343203302823262738448822089333634039319088969192072837309420728537435524111633448687839755728853760447225086572891453501914711107184011134246754789808052634723673456252843345881566668093401837235314871808831892370259067793266657718776574740226446019795771826341021673438319515579000872221417870544086640641092837033149342880548898229171272235362263413317137197753202530137672765299444966799559687462485801142456115983107314703264815272840650005618316945173229210284651396453828965799125371750559371980346747145229519767808575499457015816505725411217166015100366761221806613933005435717534960883491834118207021457887015990970838960561858608229205133908618670723186607165806468630414645456766252744034962870569033564189772978829556301539462111152106425404725184209866768232137194021505890434338684932689112125978877914040926115201418562298614851991097675134485804568128816894249670385207175658614595493081222449849319511796713575497557926227126231534322561450149195244917932489951406578411933347508186708199270313636625698781535069458663250361362676521602286840563747852986393054673701672878768363897163560888986295521326653879354892166984825016088726709500088135614377985024621517855027651523177945904433780652950074209195939457000518532924964907274499661345342464436963806708579649536565917875509289049767523717964782150505118104306300174945220466016153411346180165570051149197987523389629349336315227307201811255290464650164938544217074162309823191166670413127218088579062973091681292548558099255853497363881129860717495555641377966291018413588674199697794737185550591279627931738569818192661128405386567076168193187841304805688342122147664225570759661818669191604300385990958835045674220548882723523924639171998151502416281503169811393423913952510510640756483912223693971854466853157693135365049138357504525260537653982143130228644758123179315554978417289495377129028070133200607442427570035905049411378723391095636980188898411895227904072297452673027242088465090740441525948252536852269624606550306999542619036716574767860664587535990067758478220601428396613101368223230862521239729642302211638894315058175648585744086619083091550520588188421630273838922777119374968651270350102020546006194067830640835521419231475969443868982097219457363563121102427385605935420793488185096386427036272015159478437626255495807027917993853412154372317712534377078434353554437527002334773701900599337866318887379824376400638313966303264162276317405048786324465055575571526182279511761539020326666077150863427955608895171058015202535404967121266740692907009960689925676196330304423851014898735558396600339497917663362245985319484427333185396080543773850521236861903527301424855538476409055330647574601612971480153011852651859315136353379046252127626876929786526406741454628062924926543011753862235107708563856889397509981909154949805675966531382908217224352099919369162632750691702963768672462483999789553037746090152303698831691060048014567826466580163343263160302924546851723854675084347205143506735481280854696652484038990354363305285486839678445653898895646279355336959324251733962193251672628369836893432900224365243266406385385064809484646938300515273803569007734567098439265196477236758906197885757752295865403380518372729770516203212243911567609811823185385404551959399749481582472520985621721192258898190187788898636101447937262672142360939261508018367229913086102844409954003337475891126282944760005359180927540383084306124031327953762381056907505078298343491616975172029280425386042931725514814191548696806082797672124536107534094501710032586218663345797761662898970138965138046136491581100995954090152247500648133682244938873274475180499045734700729149143536682666981967824932182301207282310392740359693309771458551454962626790557949946291439565644962202164842996353263181034137126479988109796946216302821443004955109831153459731784138119564650989473811197799834415740911023087727735552185253490523633800070040704577471293045920931922535503793314590156415710207245438113723939816862757548020655184524058123079821668103653743837051400372756194733822164193039554477053813906925222669380201689290445623670481130669203977278202083261583572713198356715294525333866734239472909146965879403134051753711346024331453684928183059710822914879848187906491476288286516970370999273711374600364353526197999272653575223590095594747651131643583694785203816439947617139882150730146129044785676282052753141407722569235940104832745296010868190027216598411873391308915036938206244563159423633663954408121532980035829654012549392432273910018851515595099071018123249755436497348101321052445870364987411064150319863985199629624891720941934004247980383579570467519780223880275715468591574155628298766982905511094290227215757760197548760513054763817302912572864613448318049704527347779296347859550335119078077990735808990030336095925019536862348249086625432431301339951466166537576940017851287828824573238086893242991168617954346792157123950022862022205302476543555533025680523372957821307392316664080067031979014792638248952777099798664085678900190498459252242036791561855907549234764187123060254790533702251332197693040402132734638599737783062761840991462680706048257763080225259386784936966803604078705066734660313887585347662478213862534977869039484166042715628180511275309132400166071265388262998342043020538122385087674990908310837215696515986599281896359093121538110047156243478210909384416536252627909606318468196563807950923270746742184765193105561889853633832758310623421720523649444453984336097454384836375343894087019297106970691450648078344675359380037542946700581414353692832532186972307288487110412476174009553607369084205600780818176890304785313318434022435310904698551113248714140047503619974236126080889536984606913798180597123727658903835889356519199819116119909701932858681816938980174364304925385083209543711848346970083703203115095681532238222011961827650556937432332313406744023054860122684171510591497320360401395749638325927056044434018722102431512221326301000810936402918562292122929866858682417789183405036856163273798917706716237233275865881276923330438481668625241430025435741441275330129379589152406598186713903025732097542203620514271416892086885283550266650158482395459483850133630005399973007032500372060355646395108207837244439621682321070017477125708154744120400258714873276273027884254369479042760202678942318145870425547727420161820833091153593597522054812650874814080705472260749533631733247704396467556337465341816681119200039242440219564500187031285141828960267782422461376686332946299244528589975780213819127476282956755702472544794870572030188155304080504006619133457761213368068852433900590079488344031623204823002576561905815394399072607907970241224648522997637869483973781572828565420076824052718531374503435802006125865262758613252710402743855948160292751404981472699920847889618200541091998319499716688493878555590227802407484403681848495167284091062470988442884553099869915959082969355370175204798585983494564953660493927723256856930000360353391541864508370505712117753175001140579336129487053076311458355923980606897240857573485671936511546514930333843982086225803574636227574062710855884764681129069279655954427289543564984386071704308909984405230109916757323506889212077133946703949703618321190714190398746300516188144788889154369435341377747718725590353590090409041891423555888385195433091260797934024271763121528343301870406825474075097025470413122803082523861181279678990516290343675519108213727684866533656935482164877920863542947479501749141290469343904928220803228508267446689428183200751515449944776831802494208984192930326186957678921933278059868656355902602166381755620201009186574899298156222296930007755026115899081822425514170315214558937855600944981932758945242137970066805576719720783290555458263391495034581140197487802078935370147476914593437351435177985540328316274071145889612882650105378737434195691469634707323908290058184457152426816330429981522215958095739183859128150587867341624221308269784667590031299730441532438700851193921499860208192654428277880964947902927609554347965552852490895307555515720450111582463788786373546236217876554803248724022588171311927883041514733133079084648908191617355522228967769598466636535192228532802041025028274103420418517782892236634871268385059797952304870563941823831128919142937699211040891275758461909365022668788074340155363418903940873327758587130201522495259532001068983458255565924357882750071899139533435834842627600104753098677298206156674378025436289277690194006837346437640609805145276230455501062295705587777384694694959019862458435298424967182734303438352098514778267558494181762418349302027439335173689544022239052201578511291778644257475012906882287807068981654940546031412080753830631613479405226884501878834224390307079224249107337514621419256672027108106724813599827894321598210647567325098440052088479663109978867714652081108905177322097844573294226670809406118766054572585636379903311258877737924201302518983333694938178716926252921260282375470943371685623409633230996915979259362995253537355717025359000629090525080115310241280401947187578582433031272768526336472260134660123814270839200998884493776077608539530964842934314692212979469971599351839907997384854552715281683387749072229835717920543872256739090070784347665188611584805249366348791567701004113499356833306816240458675160971610511403597928780921084160369904316222356576449265370173313161784125360047528630954041531659391718550788232459387568489826728959536677649235771530272344994717575366891043909285404210333882795175410081881296857759975383018287634706940862129882960984298654893061560215449061616263317001793435556266785513118368107879560768946317158553601109674063926114127150389583750053849517278770363367097613184490898081001582085810074071167025166722231917083473765403223688806854003071678060627951979041100505720953748225509598362414015595617051953244742348539889319786102784125780186191611028328252206754288300627335730119165852632889070998540655428878497474958217775789065686863989412301273688501356411420826555777216703219724122993428015437428271278426309248689794818681819280036691144221963042519952001027056565530322563429321786676626865133797988703593831306276245194166130041100539763656895079289285135864805520678989387048633406544757905434517668706479656353372434308354055502781782046583919683066825839161603060052677366560063279570303604178213470480552571505053970443672532817817855190548146840923644752476500488183160330572840369475999481663729063577477437270087764363837078940130217683063875663592907917452605193893424239222022785527120422337081041369844975278451787213721303327998992645113218998866472046105092465379214439367620942023379010974826188401409548615612633770518179883085900322899121078039163801389908000104872745240072294491439443334781479563490622773946877325465155870797182760327998097852039824583496434337635269276820264065757680555795533969073982629170769456035557827534774629714564116511104561109709673694938032266370513002227116545192101711687509647181679933086045219068387958656684158997746125203856674895334613484444718876901061218114083367942886967936634750984537525906129245666678336894602894624137690188708086030472857146030466889088738077359976497518965932692324213585534998284272729611664693867125522987811711956370125178938609521509662612664857618344628752884628744001350323899613777330376454755527062124954518103327815039711114487961380548175128717966762533847932979344714148690781887399729837141286731751682580164756264298283205802169726278596614303652280660565827867191061368084637140490088743331108867659692880949481708617179081509566539454680156067745339143511980954096955983838909485524956747153982469731824025674142633742342430806837551629397984367714952534587660607925711799834261377648889475557084637647059381048712540408700281904377164376484855679390254175865600326284086891033423070361206480159055128895303966967126581820314671720943975552327077233188256565104407053070300375892083339368364356775621164806685976766710915492015517499996316200670606741305492745446054323871080534955697889196113100461874643305708467902370735692826596187330805776214403593635478916130415421492876502442598545727934989181563712378905943928661390453333438376660507201702546857034909296392915601237371131225254241863030665011683484610773779858781125296254700126159772543570990233195321410999985991226604413295425607420609764724247885723772893581256508834190371878923169437406062743821802866981819522170300605722341781167976799398390230990647923660946170578531329428400228267559950271347977619985671651260362601810403463632187669046951918495583900206012498033580441216346212136565153350796079200276108254064926143894481111656282398144311284159126631746339948642369917548901769129365203483561114500834277670247175973168345962136046723486910666424147468797410088236097420047112094602951626161305477399308186118307873255853512326210290961870291672243859938302542829821033739178505742720846499537241559640416135929022232884217150366196625305487858960666691077412465632001267086959299685256480301645673872543651078696987411407156400416517859276525247849772362786703502535331541340786122376210259907336088805361013795244820187249592059244764165177595032037766452237379937464947593349692948673569991064971166855441690713370782184644369658983833049353756754368620587435902888421621571648458221480189618554339273142819750461907036373181991764687602049874367138161833018290938403630001684309234177108177047556002199064863880925268095814999460027415866279131739215715890867378031859377592268653097790973345491792392730686334038028301454938726264796206033829434965957013445758211811160798627197879136232505104293618021925163802730335468481951590523543676899166000375703762471812930096971437346928541792531147843743548990483730945610288423752747232255684524137935964122204829724088370613698128142431200641009344700517432090009327365324205727024114616368044960344271066997636127471598077752710791070973827118467568350070333629902462743120626325313854583243842201229225225785408577831776743733107123292941724732117231439106148179764880139501521964330691568297848739660270996982522424006270564228805579938044763988568100543376738186068705866283784161858149591563926768018012464186966161912597994337200077677937445982318719272741211987994292887439954901085712785151229422263859877031700320343435459130462250049351255200797903795405036652671714202857843389981315126045131113756709781626903810449716923283747670141304040415111165560798865827517731417815207261728235587386962278109105042856487602537262261181183246054617202255198988892042745820124299315925071942061520341261529585626913212167334913799866915137523364863567931500077554334164373603544999122166738937812053539190764769851679071822119399373356195955022039133747335905405387690785565946662772412445094637348137346180811182991559375067138810590270777470847607065914621535846115209606739476328378633315439199180465088912361690273641982061950826337722241917044436500799617593713536222691225945417386367975055977743425715015513813909901182245822663834302931937958384583199374161662847339901739514345529381837564339791995573121904689164435409926395205141142212468282137984254734331255143174373213552274835573392757657076112728813112951795101558060038612075346330796557459325044438409171344801994339852081719065420060786512459116392111609045895400710136843764728827313951041291310357439071334082876735309563044303525281355670221120463587591345328215837807634424635914307479956989871876606464409290729959418025628750072227464646116606412539987524060883134840401228882139609035399599884652892905786473934436865562694158265992302267378910544205285143079502544525539786789356053539908656484362376034849562596068607615037951834108713515046609849334469444361968467423568459617321336803925165072058495593019337673995709648380684554306799934464943122648729886651977986351625224341267592271431490622780905156242094073121853500058732342649602229640493558678889766682043808313984420836886235297001068154150487557489211115926188841235599422388462320844755652056572433250563481393375951441269908608683256404431917058885482199681121228807595089996104420964176055103283563648828860733512727867598969228337089282375611470623247564530961588071587429139542948357076811551504771583230776081737673351732674941548349957479096936609002018079099412011344125916373230845008345958822483675977792992142750109330508638626649726303257748286283614263519303709497357491476977426503956059391634976033903360570639042690564916775246091213137653776864603665291656578092358927158089953733083095308075679925254966861025411506231320834601828746632659905618568535667967703558372768154510670414065655600522274233292978807962627330533245300188102820824614402644099463569551816159326002062194485306663072006726080514203986223344309821396090360116556096887511842968106754427683614068225209500623203898650554974216278404768523938107552688881519191557683008040412514111102017037091850468059492180686617216108253749397012929695799297720226764813667695048203691312018814071849771689034767131934282253751969773517440531252900313691810857493264695680937369363861120768532711198537267883046746917217205221860273574127925546692137131643238056309317129459303238125023467055345320737136372181062724248838637326777166017048972964481256355429287772722542692427444885507198642816529738070060196353564592247533300542152292654524313057137565149815722701116220612093640130431448719093444019022502218556655272198105304003937320026169413661444460070896396685000905596906040883990817101798429289067109767714019611675671921381841486751397134370757939019544343420857362167196910873243209538455820022987928849830556751331675243028997352407470174784241242029253147841535179982763749042751654503631144897130124737485200672348143483728107170510833984574312752613641035538578576673065716583952554377243458369276554985091155818767932142909261706108438409248923700248582824677238682749709448286349685230684469510576900192329760570888487751574635553378774684717728844529729706843887993440202067045966480395981394702267507626378188750760199232617156741846352644019253942937721953720229213899223526325590062307125645698364318926208340523373459709131387135823096506835992344565287112718573034652626940716845789574496068277455618639128518658631964786455666394147642205891385777485595230407458133386437997902775160412781598559185985452531771214664849249867547861486138025918499984350659409043838072116194870864981161298427806094932115430156440071608785892033438742869041386834658846277198616035786452172998377568110391180345719614506810212401456488445137665809309360933705233263322521441064650088554468686729669179504182277270328179252977900465307233693221624699257221172934581769849819604554864017682490511382146646142009005497546728522788370219945253570299002649715255338985044248965741032147754469164341606068719072786654796255160522474234056314018389623899611263171417360523397247164868661909045042083154423976078570860710042919616596561384504516333955017977634356681294271677041078410882825387589308286813461639337894598267872546091217762212408990749290987708679013101382405964648971294244970296960693964290508545856234689024676685428744485602110573354236620781790619988680303754029081345951582560014488186182832213536635140539202491547164796223186596341666272007084781573590596640631533302225042431106495518033085604760164560890414504613019482474225166185216394611182014500272460990989821999661528884988333589658385807447448811967211673036798186598494513221731604223630891608322987955704450609129069541991981256137904140306034658969499341729723145629855515523112836652779849610796515488936867104041791492725710976586485216284546788162038839794720295482795622130299227663508456517981256898443059605905702720449273751088835684973856705116533528492515227173927452041856240874335998415555927032798758644936599740625200843371311605752482559903259294627224524037484694661824166671560072226312252016182363479219713744972592983334675627072901139245862801355044512580514341212566818082658619122201421044241191143911999011709756982959219299319453472388277123790222149050411368427162021744394024452418861521907351754342511737355212833131073279095689788272637813905572337793599786736661685259474785244752889371413770755348640222544643011014896816181163878294791636093017991611323165726938906654015014022204635253915192217783738721868464487373004095207631819127622637072956868805606172823103959774847799423995122747311166748952278257164854912104783290741359178262123304879819499811807993580129859407968914843874848457570731698414059403264873701900529839104276501826331956606316098158393740448333891479277028081927380265169836085375070481945608193866248800209688966438269117427781017587673911557446342370941027193774935861966509034386495732433155297374646867985623135827565507977540637305919743228121740704740617412067090789592135724445592696943474899387509784961680236331349780120114052129914871590907610913269635426079275544807736073734266000983983660978908881640635971924557951921314331293629807676293332066700068059031582721460342828479158175841080046972832997812497194655680312735244064270743442132998675579628585332259424662628637393144671044373176032174536552438352172101690626202434637587809638218846867067024784220429807951683220245813932831579843204602227491425257811654095475866795513030958468709365603795131523058227848327306199837464980366572695088074218509845745983369844733719141036997767363823866566911002222947962001913209270525559793193562021076966921265110939275457443642828835830085981059292547741466559963580682410578303911743553939287964075169983831862628488350337528019116825404870013610931670657096460151370105618364480058610630407562740331431893469629994406702125835668262189219967675339517662624202849300254038426111175600564931041840846759266984444702761477168931412160625537594934285156490787821362025124138935906926760564471832900304964315023077015708420913871256259861167171455047062277970456846972837108216736467907224919049576228110994767049977006046835498508197940427518435905019627114630054210325344626933124866046339008198401698304914286968506736293745049996883209965976605513448920026897320556822419346467352197980719433492549777736688773856976839544586883028950056830062351325497915841497332273669140630552989516096550639940618607110658142719903183299811862588224387312649709903622623286559368239548384587796866222201962643524379329602406936628533751791596740642424332340817502372960705934568202716019361839540853072569697329011036141339240832124081835566019180821535691366155414423660295594285217504163959819240550042601484828365857999443010085796798191634029386581451943643526467536436122858570085061934397394470636141133159215622148299193292223076843033132506730788702424931127803172368231257757114650772997684001916057034382257401919125555244546853175337676978110892944721768970486249648336965323883983072974621210868306440402612748498342500318071114597719290340325120714168863609941237729333509361635395306210601518386811959772499066782789685972079381788047638386464111008824439244444494945243167218034387376047951804463665568138487806333563964763081219965401051887180468930800631193646488524360779872340882833744341997627345060858221989814493915201528389497993545194679055887879945217853064099348762399502102635346670497984998232196608628027812231708951635147653785796156896371161628805839639536892858926379285136893685433379593158614791223468556988682991211257621172372136944755769881305511054162198947712888812978782418614273761706745933260302052536528472179714468081897162593845384481126927157920349851195355446416715011359978262918787475102503633196473168440249798202767416749357771123792522657252670524666995689836840839153300361847344612704717056941601665017115384660466960246008738457467444716854009205743266070536960255762204887471044379904061408332694841977958905668043039742375529757997155700857015509691861683305156053569329022875258543390151597994053371628145836762075400522045952233999577490377943398740114594560118427853122016092532698808129947962116592523818435208229447744179087759272980245107458036142898540697490727694896404195892636437294629922235802996037848979878573409171502261193799043062114642481825782240767952369471502860604341781427380719525515013659980168537694196950642931325787694046764120008896207515495900830365095319441226995638640967405515749039472920771457240073026289450697531762497719409912290872609859672246176335435056113782482269294468171109671151032155462993112204385468419110680656730104507526474857288702830700954702311189338383783420283204248955111640988571705163102729493215056769721035463380653096470717851768217444812430754544295424244589081178359781637514495567637342165304099927188574090061545655792630894590192682208577413654588967457582461535896683795504150634609563132830029342261192928413294554539649428508687421654136136000759926942728444404771391454651630000121404074996102523191420628715526736571162357584132546864494420518349446084609905548868968008867272126999537522658910257762253281912980176029069056606665117712952745656547303686468115148546544923585582879245154363980132454162727243911617793057262133970909802801388008479392122779790364193852697002639832536683230809599089019958242783412387643227693209485325532892175449321923146914378944015411354679612991876137247949205546016620961589982366237504218401863274483995016869991548000029619193581135894113656417997391325986063612027625799560134219244016542452236961744531019526291641745943060042037633884951685070980766947763960749987987638161687138757500794873416711690050868432759131809380795512652261823519883838538128649732004224379086643513634290690625708287149606003834677334150594345346345244227315132460811855341004361647260511844460343035429708136604559705648594636279511484863862097795387728475436169889420806347173199871779421953036941591008488161799031125860412456926720989086476636371863107387249215282927912399739523327456158465989572649304129244443850421057632016516236963374014870483852644531178850017773821754529631190387142186132667794262796732582100870517941123646727283536353759473590925402919477370560787038982439439444681921718271479556272227800638368536383527877652903126801917790080976173202930358573768233455052422125782453828111351433642570163199022293477080856991279054736743775277928884143229197483096236091238225055551696177460469421457667628978146729870654390916233837077447602717010927233099778041192014511853490306216918929273586541201524176865013692878580943118443015460076062341146620199872173975354721858624948455737327108976075455749632493751881208459968188211068571798482454609103913493032060636062891820909276332817222253047543206966738133763021793335923254645266576765288203686270252970605307200163333105568469182757278278934747498867190312747651089472217525664314080489907170890099216648289083713403689400210978960980447566748511119119576445638332212803727884515420097878742895208378993977750832100468019566834685528808664715288938297773437950139312407848130667484707285677364865669883946726766264073412418878815520875297268115636198924580499723722043567696910841227727978082087847162003139850569442110820386862302900115137058981420387604819051982608031936709486913736289809407388680028050356941905144506931772007734079923412918906861996375602328636879259085927651299313346283550880578831439248413140604188816352927689344939648964679358134869428261460500427607820372936756147241190516751419209329627955231004967987675822562394399531068760074442615374843546377297979367256348061905456292908883990316047420948007881055334382511796997782028685314272437604410789853133194291100765539985666586151045247328353278071602683247424308421492727682410673679205698811148608402312802936187067152962109310182308430724963830656310162591094482927327370771880816091383226121370654189682341023741797844061018107135566255509468910800664962330650461732429184550186114131516932262117812917991119206303653446960115836887067445403655655578789686834778747861916606965900915001257309251508605260377344514887027792614810567467928096550198970900335884483660068277839620646903742664439719557065441527664804970325020619605334357234093299793152654515922176393594003989870092104092621781506372591317585738325310653850950897861589768764665280669190390905862273778340573993088280276149585728040777378054610987073609269117742663272956011346990829811130712532400233784666155771098331239572393537556496260339910571539630609261634239321987286277045516735385815349935840122994020750107514042598380791264708790623409542948628607370779774679268478756055092772884483000405687125542718935877571336098220711247062632565997385032478126682048135604833856427823694720322214362449037964892931476150021547649064344540609202480770283119014131200810892960495037037306712390376969973923127199462634574538099281086756811104536519171292697196416373043521935579754318639390338423808675503750860782213674342818395833701094609367268410615428421319482254737091537055924848664036395990213193586200214492397305190845787482975664887011498214414493875966511170678212489528055345655078538387971962025249416298188966719606854708410838980242416386298145695692474208997662855256149850467190506823653958070486048122773403312807751704116187525827810697616806266224054218661592077634530670498758180885313763360755039505436449093794338133371414602680518036983168375020623986152884582184945690535197860512690260224970459036510174906627447673874285994953684976470484207939290201449778870052956703027273076908067818927498202386630106283859652407360646388744206105482491190740295896467984908149345501720098032204219284501938620446983730736406625976555846312987283015454446571116883073997294959371874336146734025355714845420508875819576947794915731636973864973476152325067080362999397113563366689128130183021016237511266245373320940548831358376730124049598746032689754989208732952062982366316908562159408381024677288956415587881112865084410787363352739283525176710285221600774651353603010515354533667875492679327313900761326326653249681708523982862548794885314684609165663865264989841849363188518119643031830226199724223285582234761801641498432033764078445806860136411370586393892472380372980934659347020221819967930065817018761838228705071427567931316894092503174862285620300176620103659449246210962871382732018758079873347623138983472813664718834200031643090801545234657864855288105094574015277765198439572566092230561801096382110382423864547758132068645712186013583809107311363647254372467993678332002412512155066390537472124674260770353634291164241720662020017523696274332393347281072694535820727656037833930600640054390793894643448315213071978719006004529792477568339846778018097359186229000715409516187124973302161947037460757605204187790785931698301688376840729834913051346188762033164556097407484897151476271746887746481817673333870244683307675413602749899400069089675466260138797247833040153924701997831777269435851951136388037287901194480973895894858673519641399489168296590030926756735822681827682072564763160547170592040001890251476712054511006119217035781224098978334027548248949497187595021739427767953046560217552510153562476790699744840759785594847472799454496489263994827352261415904836227927357686286538505326021403523786336550597779588243326305063298426766111980094824725343156709728187664767853872426833832646584547278130882286456240580737263521381588393731021556700589504032253698296122795490517212428623893032177532856165844770416469752441186039502594174701173422343737816556768284545337705338793480321028746364989481969012786653413076501893962423011493066653585832120636000207113510728171564844826612068706612763211146676791092257013815576371287009965197612054117696709796541659689500640748811623636960274572551830051803601487874066121101430550864293529363557877281321433273704419140011332260655141860569993430728228858532881206495469088080173606848292136437180546965170093972621510972870351673106548005310899345972943126755256222352334201982864710558188637254155857075962414302155202987998158880705360335860292159399789834218458681153432712139855200699595127672945034110557111735029512754118645183438142552248316056136231448420566447686036163577584473679995147252685019580081320701940683540754203307729377407273179832020830681303537609134836402674303781072811873005332189119749504911609095270738342244610677203120894189746463903560976827266221365811109989797576077166179602443701747872486832548492742392761669828809376735551345094226789672524118522827418411001998534118624934806663857534259024173796523545928914952792512655078335625689746809321338209010181117104730589512684009559412138888409952362479047322111677023330693719717083274725687466684804548716510698774739810548134519928455820041790876429986519250560006941134566590802761021845499549096844115895657461047151306301732774851148233927284069924436525740752538534683295838097051773607840919656284460911577247526140526960887063889584467538701810966671066822672146899500028283616306803751037696914397077970664628337245974723254412385153807820696212212699174626992741022707118022348866517425450345528427003816906348443212441217396937074875800419259898363305698884661324613752510249917792121178634150073839500296285210470378358136960320987730144804643203220517511508529201838349413134379769946483799888146992555665710130495091469191014371513723341688088288798472375636942285434453227858646060094627790959546654520228755814288185097178168210027868587787890201354770768688469338335293717901322745172891605268834469358062846683611080765263675368370786732943070745029393317498344289051116248528485998479499659857159045617190406009120682249405611050967501232513829388412792853225845597051503196246176014739157512223738711188019139765348699192049535837570984962734697479796342805261705113374347405596663147116779944420059783003622024617748625138613301408168664322573853876754395376973550275751562119469017031960139195054193111921267404474967263286617908122370238832211929922256592417158384486972427780819678426476000994103224656848943617158614969007780326869241855564853727519278273182731154462754951739443305685693943367505827150492639876128793448643637202406426835990680140924465356495234240175529297821333458011633664808545184335615532650982587203456780280273377483754469186477809242373335088042482853165995493473042990265718404676125088794885295467085630002016846104432220527504795735368779687311408702675404679426490418312119276792154389051388196027477580975112724216114214325382713795146182454619299952431586227940827411554454565026512019996306376740147516689120067077913012208419199201178046720291191981758733025901005730660996187974849472188308540581056251900130734144151382953588101079227607974247956861641653194201037742289126231183566538683238835068160738726151761764261875733517717754568683073636127753535068701655297265228766659310765027758791397618479187429636701965745386336441141878854031184621542666579595255277985448268098889747590762471817340966516564086115132966710082502077919852190912413015929104114704183687906367234067598364150832371979885910878158859708267388429514980604628159568250050186829798472672259061009331716894941451444076779179998581661907790942481700357577319977041927215844799761566053994741621441784335797206064102800339832809159661653788107403981324221339158137665297562399794107320982062314213087937608340259429261726490850380580398935358296551997869783868697966857579620128626852835557842336486221560572092248389434322526267863044926014153757877645806816803885773277365306497893753298148380336507481742947670904428448716005780276777856053848687476609908897151184757020183950710558026014009245534560951262303335585656087034275145143207169436194621607776528173286822578422259900451868108084918787655269868362215829441402002754556125632276796547537961369528302592307017881939376684818606347753464862473169429166538118563079150419203059790210517420301470872827063349365979190016178306179775371422275080105072051915219516371807592992152126278066080399004129336477162712314424189641622574039368863386255772176733760286995435104357877478220905764404116283443747815034725642865512019449295444900543459353549663396996666337192674225981116031559123775459169482527738578145533159499691738033345273995363123515919758401717310000904220558300121505599567340237591480884753081921710134697184572661019666012912015654804940725955951412538068599339390779278891035211671633587738277896416201704608213255141999848428169557515687372657340512809395805059989855788811727323572033024773948556576219490649526158327812428907479303246642198782274966962306040264248287306428009704143452212646163363730630511016528811988864832187311733822018604077644872781169842558620600988231743185056098211045802621323160117800538190086262782649235335198179197114969845450920014298364574209162870849738177787038915399310998688040407295528709734357858685337726685009270027302907240890772396881357283396247520014349536213808661405593308764252761205096055321478563054642011396309251893670654715548809700377978668738809398843615705894643326712765569408700535043833506039198147759386763001663367995247411637729077065474438343007560040026023910956165220362517481462926776274939141008075409467969374139478932012847902789597509760257353378069482013369456148474163173429592281091547453301013705218905046208305641679355465271565650879375097594703702460911941664716335235750615876955217079534260834913038703078456339355680842874461215026581180958006404780826574007679875882053785657903145373089322868009580579027962187931952352331985432983048325191644968535828109376624533880134951336730731927664243753353303612846177744980801892576544171238460140075500828310131107062730207533138879064128547512322331992761146875617906082921352666935954495386952055890338140835722718706644327098854582176984110490009951631203955986434483036497638246716351929248584334157609643112943607309109515276350057973171591504728518212959524468773611960660021426242711344549820872627895835790416471555288285526191378958153899491541129649085737323856509376003184401840018510523632642165056469357582380236832818961976038798320198832683146419436732256259569088483473588718910873870796810914382115022343979244433342434908481348569290932390227243187367464436123926140922699814743963106340244493943103588746542229168515183993504394405370290807961709994863831762790726879780765383771438276157336627644247385114732833491038779878677266239405862117901610393346280601307710035305457124989597869438285732965473162810424821389417552541054743338439989784957973165403903570370168253156992229641711751985747184835661904035247215207772601611478734720315009048290062764332325255754925778960043796451430761601771251014549004726572809163165176195296285616500804791248914314327775063409271711934109283593521341231590430508486609783080506266080868474862269837102303255736321773281644530358680036509420682546575501240614110082693231452747518052393283038238335753787473058255888420028356008016740472318028856819254564790837408968291221338291508140968341130504916406952663410316228114298448014349220291185435940495562777131016170239972399975180771158476785102563764003261037686768755107578163424647424080239364176684265730066948201613768881900883053738231962599226126022080164201027956720529911754050466021947451606596549902400718972424185610452815115571868355268854231215957960561044852510671651584023738965296724826741754158008693632059690004411831539776968009916941065243633759619351496885968061084535650348254283588165296708411980848603580457175262997344541496901119490580150942052565404370921824725980549458527168024979855396227403970088492076007107904128574758841072201691536650573811347534211086789611908083685155731179662267438525739569695169976266417647993724760787128867074899890078143842426849337863858541277689018451134783205823933643869348678122367135601852054314380819341603210742922844772689462557842451506236022319033442389716628272648686740117229440844758785436837763831634798236497767733195915911512139350205610543607808643694634719426239392301965121314138919468622618076275873262445650535007055265943516055112501022157553326625560815762720154048820141649439900979056283512907254271423144902302077170853240952193819092383448877420411242538328582065296315134230821638755401790694304244684006246086702239236579518979338983751132209200010284139122117722062333550509147360717378615277004821172045758204045053543124279981860899222555510155725445990848378125920037047641312090128833564397447470212126561307489959539949337175926949195986053100847418243517646406454568265759937682982067313367817058417857053776203768598427409681344017432581547613697904829777608541489486978038488911071047762911678926003988863679308265558393892435137168074915071420020170108411999475465679617289592934574001804906430064004758840333886822083570690358347677336711883450146466302342282544320187090645933510899733865941940526903444887507998875309595487517792401683287318361472224263507981435574933827301283276154396981201814331310168768764367176991778009952233758312566857179791815866008400970484478337299832358850535780649681852110397992427309604052329843220798321465739988290587982099243377113492591540543207740058214609043672721935342827658799562181918771257188056577646022681956592545826263103346936013819061711303032647017764223639314937743401059272572189669355873866070769340874360939700396549054253847454960609094858706779070359402318562837768809502548776308605531185229220254887685433466254140244790819343316358631545203785347372073139861212985230590527321616585221201944447108035118977797125694495115012847511434495778879014921576164657018998671147166138652214556896240503286837154804665520880636887069440982196806042586047438631010684526539519970677677716640232430380042626283678584419339487282898050983485867979761070137895657218347131108561061066773395203923167437685653492894320556224840349025599733252129670652797472460089439161360292778029789430311261059022295907758334336472707513819426189949351006792239611447579900639921966930058207934205210583922295933876413034360765271576173520498909160623367058514186268541254503042901910213775748905546943274386964771333450902631268363036187123043865513531644152678758257704214082876010476590947481891720110004986670663590935421034146849308615893834598330776541591881689458886862036259955434628744400708716584801766895668807495659813626270264483998851686415478829877863395949285157563739304408227741615517940875888038757346303590735392079622477096361759493515373387764089606535279895959404089882729376601169427249724622417019966551767474403735903248841921436588399976999140126476153573478025713752959309130952192566878351590945917588716713133590917721500771471122570714435817760755982074572333848957159406747582413850425686613382387968062131253529408520804395632008292832287853585831071872384884844368844953142945593616851881051948430292114090260162677220639602157241804644305382768879158197689204099935258621712861057420251608457836527217666785072189851616438472188833344432224075417236025295787964582945241819100330108998674447802676609721501429042484185613880883717915301455621365172732185049856846823901413637975582415193680985503484053645865120443108650951645985647116108310385999617705814312317922136552277583899228138653824319772448349591594044555469664588072046039710387545434155477012446689454057028584021269829472574108029571439899755273388777315112282866446183172080672254127990452716020326823355337769918937591506912065566280956581263939697782472909954375753722894072445067345851577134815257029696108016566195312984655411784812857339022928105381770950743270295576238469846371128720736316506131244551954645550617619993971937095923451934357757321726452023992734008054771012538720255072159795055566430688130711309594760842239476069699748563113895531514999457674384767206827802881482178015992706616244061657847679891586595482777729531712068229192772715159280168733208409839214505640356062897480419273540037672691845246974396045585309420516009831245773123330494388398474607505691996720824636757477495472097534328104212108987250644880454205634425401538321605793907017583380553332555205035603154931624552367242130972693517042055956885856904802932548256424700072019123828310207070131623051002457027519320242283028933150880697765423531373836665273563616510144079239171738719332521484183854701184653574078327060534927919053570941389877071037061479041080279995174238463716323501322969110074485361002221204259737323492509803141266702234301207030667980635484682764143729302283309182045012285981205285078262344747370549736369915129516578605628464737901389712025750109539946810626528010496024136036708936093339090787776501368597650027099304045293221170015887369030531683740983397141381628503234668974080080579338524279030966790433274614531365920247332916042396404928683916668678111801198552166957136554282701435031073712341928741692104900361039275144642834160943493264022864031373847728665805594614169170020013634559795742837737591546232499232858874543522647640207699571217092169717544793554542661262824204841318305744099336822937462795817476870924685082288514906146817175545932183786312158053832196553811900490956655045836357674179405413057282496302775708584894941771971171577513498536387661612714361655945966574354292162830073830556833563339566644817750405375468618716640339939630286747040014267689261782060145328416961289422586381032687470831810244283909206104263676927374624172863752311763383096144204291515457335518579872664306874752145087416340752626440884254586543826425457766299663845288981662444380041514845849628758311985309219421296437044661149419245561294041895635473399484787351232683823848940203617845363038189621142410988631548590630333299450347600051983868833442550147023039261688330936034914808342436354168564208893797032117389279465441818170373504054246396198990407302662788652639309492936337389018707933444561254269840232783252940502724777118441324465711727505948233627521102382578934939723904456510397185788949878262641296737435504584855561490037273414697644884492526970185897987694117889016556180143108159639539844689866921553377278883696702543595803617115720830167018073402628200971505827527537247989184396202078716501506199012171632244295359420658871555726714711941358784120130822780704489449625093051939020270396802825648354489810026230528105117433152010303520245743108087226966334921415554756138854672162938725880093618881665595582321128602831936191259491618987344920106489816212906035469101617970021442430441732401612993643826430045849597488244020043452884731045091029523376221714924811620610684293316045689938488459448317848192625471687377176004372732730111626714285243543572720648109212341266099507882752642949244379542614259934034051737531423692443964102807232733065494287236177151540918074517685201171108114174318747180550524885325315812688296468586836295158521666500346405860784243680257978060765990590526844752576110952863067543737338151387729168135816786580626544654976099787454661543889449433415701937645529176049238563009168338169202285762289945213289432796593783817818912952063324024257138042155505865866268818385904120689327342317025997542758230564328006314671145882922067057694605361269123442846851827879759648169396749874276528199515393129444581412925020903478044499204214291835800389739577055447270655045672190298549654868394142642790122501538491476532456281924062882145697083475969103524441292396252447025741119392589321891671881785945756365384125031999865865971079987674939602932033945189013001673169120473283696411634164157353933773450679571979801210259091322779899951609233680011813310810387203243516292307424707258890365241508704584937107696105197112236114719095663386899588254994042773519509952423113775200137277973472823667896708230400064661175639249851046687096088018117394528547699666283348944748431954292339904722465635792876165010982551786327611767292875230730308637479460332068901324850590099208993921228282707862998537348758300449889802328501529928930314593533506219209812086742056412304801500685777972373184709874264902736881882894863184312765391798471614173563752938574348305327583919121167461868741833587449946810249576254879126472156306557554852642526177834706718939334889894914014842059187298883590837775932210829781349763229675729243796628168393819617501541314700045719624629685589977547080872216881737712494111111855928280573398195060635011548796203049384593936397295213688141203373338288546303754622541943077335309882991137874841343672277754826599555970362569213576241808183625300198437588408613796785375476629268354774574934689945205052109531077139599500116403283671358989917501073149938132450036922588191415667448463934788965920619117692382219340970327584777057165821783411052552495588003859099269542892387390146899499884280493942507836825072068420938813834589811748073375411629491974639784124846226972520974508656698345042186098592674028126335770723882761568548277212600939143458043438162151915414560245340223409134154070933371337665939288662225290727793113867950894407789027376563188261846559699442868848289278679741324014806045740538457236094145105625657957058046964186796488592642295785293224508344709057352708985810810295657730595876723778391044082044019313706390859370661154051000300712602017883926594176026372634565999622996383929745503689269234976671832880396123249062533313131976755464626456015237946940193774155816028638079200402276628913025405277665867452990376038601099146812205341141144894696672078149537642433543922288692842233692768079321396327747524724176055198404797712358928338802020360939115666119297210472573196353457534661847236895931016633180474570381441398276020396450980358633907351685939895043933439051920336256591873705077278302511792628728054582134498626198909540857897151942647925536022299929078156829405235584145899868962180742523877626747771594535776358287720060592267759829460484858833336737729602856506893194536603893900900551500498483390936644699911752944500700663874781751236271858017486417139404885788298173092716368020565374819071234469116433699231663711684017435183473977710339421371632877522919398024202965987754285056802982175331204330154710842614886847464568804140666277926975291229574590891951020161806786048851842335518347865495617178066429567364523603214700933713084653672700833074915106985340551592000048456786256311710014668462387126129989002904078524317905847458569502055201967858388843970730963502031946383674607016872761877286161807708012515797910525089063844466524188150743724544330866423649516694040262946168861173252914284699518406699040992672940540170434308754293301625793088219298296497982804228345163067633590673949997182389478693688509107533283040901509761232894455366522598226612430411371796319784368761016913514852848026668574124867286310451280904356758709037193295150244922123712449455695183322512191629165183520202705193694076501240728712979027013354528713683680720382349153654697705817064033474427115145107485860171705523131242230806973415051837306057435693882628763545420182955415346817437430520761058418692978425970188759279653050156822785460150334715428751935203929843234392498333607667340531547804220770904471228705886004373826232525347103660288546341643588286326842352589201461011025258477104175200288570893596345767837588733642801486384285201319251124525841621923965498423595235943302403254411010544026553524830836608525466130709488687412604680215528764687648197688493727459006258975484885156405788995323495275504009573345812492727025290738046072483581369042149746277516659496272631723445677133101670652950525119541000257078786869892990095680435901833709547400017573191377768612500174301215754768797454361516702089311107436563376928911764079220670997526215895932529657144814489650439096722494831334360397919075120042256748158263721017852193523658169681303453209872800309613891009493497596136897042181047180256915278615056021671477362913336768629768467356172297957092452898069450292648093085036863012533594422601960344965445558161750800392301560427526305092601240397399145773153866830371739399969760840711173776815171545368626933899884742672929776897756864167517860853034410170589794121508741610731628034762617063976989712409228374106758871161205613131034729201632410464452309303727257959190702207021863214382001715098616414894042181051576840234224290803442132259508297067642254764168506740538411697773533267795739236203250404145789091678845080835963657261415345211707550977604256475816434058285327187967705557545383890452484500530158782662976233904579020479174127005921618388495916804203128140659243900122304717511143305535142648943778860400466751565446902215034687926389400363485385946723119500861027088710507990900874083261892000472540712321187235744874255550758211783036760875192935922038159860399271307628790419377795905163515398501087350285212031121028765852215839287974102349101851483286451689680369270074898536769271001650635675483787445909287689493400830070138619393812400008377010430727138808550396093509917180531864549217542528175971837481907632136673969062441967502329347653150481853393637433613763838734300036509403020635712682622189036643841885898574610045597981663887991331321128911229694466982412618715780158363835055016132118449352383740828464877009583649064087789139762541245773184531050700707915451250381292200425418681708419579511401954049394054730133343754139009759261463641446795114122188866196237441372461311372742931242116435571536664551267639872421083338147770439776600157021773517546290835775867415785428082632507711426355365954877812322817173824894663045762091323677733306431070007162407335223822263171596045279516083326676929591721711707426644009869584879350574668940759797589540692712855871487351190631501725495247554328257007817242442865077694437755344570961331348931742479237418714934484870187955511780347975504834713747479971742383972038812018774684607076643545184955847194926288908973078275781340368633792544936125640719628159290067382175524976193149284242547371711443443308230013888338493170737774417991659827631959038269164033529294060549574540802534550404869192065551649162835760975629994018185628461279691344003437091395571788189703708393950908620357812786030473263790136988638922359246567114700813312831064729482717846667307705738824827710419289477672275195997740524573611111516751798974080416079176277586872105149936917351032322324757237597019125099759304152357561642435158468833485092431015217658798597584905025623479606232543539194092177283881105770032981217374624263035284700860019986696458437695710109072800501022946943277603433759778978779267145745770514162697343776641001976235105891342575525580455775317692513374440343302014958395283637855381278437034348902807969704228073838782379754835617828173303786914138165331801550207480932532935610999194020239968839210062821495063322997163983713371326560294883425018385483778426318708369238481421934844134951989423179729732273758795157562453539272167237555520738110170651221455763356091104276050460085080811249447014381286607426568477288982650095830538552023423380028086679710666359805724907761072689634837432672155603606852022372885739669655542016529230960713160716159390041142615891036296445954704990251692075502775286983627524450586237407364292036825795787698316281178690412289643266585787352398617929348141666120028060705631002494203176960116363848083110092501745085829443853767029156864167638913131190129721980058328941708818948667926905258990896885404637818793585718863197207942100740431251157161617775172010433970808915430846906068213325184628181694751846382529269286600124297928563007786932518973784110046731303938737551193207550113044946418880364256263825115385194489749322279540571998523799634542103518617192586320554607996210352423263896052291932535814209966174186385281161402794668167666698762030168520130477210304587191505075863921763047952979767478518444037583070993607709878242439675288036673355558189559258356118914750379702609204824172028276810454705189522904201499252908025714049414897533437194960062820403034886220514308229304456754630290519482746515356917819392394669121253816112449521077086206129842395429855661857828303588370569092669532332691974434087048922497801475702637838376446935973730161311579724151348367561586216004448920182921126956139602270674027375700949125151752589159986925662765549490047866413922911846793468716214741893145029321616636579462443326530653351496448970538798453943759092986234628233341836966561596764074957246581052900815892134711498043864123765765411355279017904567420631873147945228165024456190205103449834840384558147366609179352002083832858932743866314907818176775463679254996631635536766837887627254297844686142403976303770294824521820246007831051420015462610326480874536722911480657966416874479578371900248478557509549735394105666860264851998236925587263362781705740138699481211153695438395151705719789643109308518348938617345372611085252069692201680321438119598774080256052823616875267084724372118100553669513029527243578379937455863127065653604777087545665483774055573926349832762859920547129550009156353806370434649118882303597444730361578200149548974185091950026673202991200616239365424673909705719320269012823996070459573889119872671812822576331942857420740587079745830501321540323273782112544652440382315485898649150992778551500920488886102941818951110746470012232844591943422346647479973129919957516578732080754033928988344338494661642654758516326785402734284151701351397762734962985955058978566637569266134403306391037452401804176648002024747997960720538125016249981937059091325459315675448335358669577135517338767850203505654558067618092101907198982313692841285890516844809446507140434379921496235291704053145767096397977709288135814322932746368862996646822061705657287571507795489627407381120764332976220848506419415308534568505856967060447319225330014001777070657952519712308324150657659549425462790267179045201158055410911186086930188744291242113626521281553309450920622994471629911158382306045470667712982242689142301423893669649501475876185680485384094013532513748837799881057474335397975079774304196068020277344386269546868128299054638661718985628123891240934283435616564659410656008666708018013195800233412605852901318504510156048812594981163096011847032085894869709537577662501122965676765224944921146801626025982700487578429056778410965996093388964110051194343606491968900225715215670992835214006076138895783515632052746617314139267613338065110971327911096867658023566428605487767287838010208614399251722169387921479035332239933232414345903709389419056671480784698814833040243245071351171101597109522183768182765117824751845964341073341415746999300050884014779124082680016829613342148537468668611846505380180904732632601088523837118482055253741482978907309240577627348787667892043989088720684171720032864675154318201014704862776791259820846787718409100921811086562471123659934075381650602327179582484527236049843933522729376936366677512818437329535786974989492481423030085420329047390254489059716078564527384582732391535717888424501316517719977751745743677647187662276826847778216769001617066126451167685907908961034508719281261100690367709333647894818452879937694131719757319544887679798238303452511247303040910010782066394225854969298172970165379109762014017593093646636803360186623206085873948001375313640179951517534804195773012035334780555454967744423323903388606423504202299964987151407572626637243082813094310330868236116477657508209912644394514526415251112766336867910423615432872886257624550170342946437362303880091691868889833321358618002936907539740762972933105428851110484386943006136203823393796954308754954654531819742012763396756814245867162374513289279715276476035644549051200075224660584372482287134164947919667758370289343487422703174359562781149158037542090321742704778964695523575690343167738848233757330637648175520899015351817816467119183451054105125029283713036418098418251961707161911050496317548658442490307316354124276943381534456536015607930759706915752885481165934851661584898016024645631447909184936607674844875753990222544565681877996048358835066962445968060419474536514986811975534642041789595191559846680814704223515677563589711806872571430968242426865552652513553829879197233114103842642066085490547031079527656660780366913828238309698928157322225995532124031467850460168852240926781768227205602019809945703351014215372920254561281567957882860260183511359609711478949391866156905893169363095055930207808639119339857689399364771606795402177481778611077604602108657029585105846512663584554660642024712458092642544490613337539994036732420991986045739250429603607539773316769919331631840278707075520655494521806239583196151292674212090170680761817721893717633970706462851737382420730229925758299928955171944639763601606399436311197964722676967046322091511847397557027883424835758533238591442731467227809258163975388290739985409674757153094374445692014950056850905904606333854906046994869092500951869619928007572616421218748282345326488079995028097421957185974026763267670935191730166789944391038546759078759216677812007240752670415329865879342824427091587594234399349806696370303522101202191285063090649208083779391036395228288833568019600101151341184656192711850133866961729110597743368038276677479179436821741085965081971013161460897591074276677798526092710689065402255930381138821699939149856164406046452279835715993763957092077678429483043957236986142021809586324237181123424637842573377051225149990506569592219430834440507901594564372974566066175620900611255947305994687171393266700727227343634495832573678124163401307556127421662285473240710190619960933637603791573282329525525312143602300403939946710317800875316871946878066367574779091761622128323178803398245943064059247459925336737397692752262515319498626176104895691690015685257419534779610141390239233215496630226465698849228625799516215223027007833997931434463777985743736563075552816214254795533643856261369096406663173438086515995829703021391998556152662766716315249685658417072647586447922229721895555820309086109541109962974879624311565457833593966205793713021116731422156067451344957524595015185961381917259320043982145785137534583028926305172816743755870476825036106880442576872802683395487338286671342628506791387879818835117262539148571346386595765353541708282360354143500238377283562111568329844619767024210064927903914937516432057509377761730704127051043454846700056349027048060826016087266657796315366214856893044593574092371624772514130159864850811898327346710767147885071661028181028063668321803059862604385347015169570900390500225609903740781161465069934339129031418412578043600490979161408196343517054939141609199530994493294315490260062388491468773490857586479249271288891643398646710134812770549380532577412776620011118064370569884955324420289470242504187864976871227699444172898429008873454250595070389297986764939102821848143285616816121305417463307670592900320255530171036907666870721674409976525254702022839735575297496553150525378286769771202812920604968174017553131168982833781952268592117675523706426567873464188157783944147689606435521650814826174703069040863674521647901944247648959509141728546609338938544650441164598784285825519083319962064428862788602639160120381354946885634296529908339873111891985691484163645821669936798301076477416448529187932545311137220901486831097776019810993105310749087115490687958431384913089874600432048302479523807364904041080500262563490974458637986546942005255816183751633175851779554422968268165336963163938550352926844538641817232147215259796196072402922348007618859599711800903830967089708252810346035729411439682567703827117125027949704474470695671325164990443934229218944205249804288302497459431237472343077865009655790876547369255581959226152672311417011759774431164958897036428071590708075876081944306893007074527403082500287662826850153215412199474841645131201114704987800024378560351511789913274123018461572846077332540750615352634231364749064053534411126352062974032546848549677289834192854682149935138719732477196242801440327731808361711148720289930142500737512457424437815677194649635381417810651863734657492566327245215217823635339609292354356033551338512257524551112379122168225123793666568760591652239900405693799589728731002200482950580830206008183404421981083533356711782065161029024018504569773627851117169744200688344061180690037553382634446895487477582422897186418027973050053953492581396249784158034210593884500831905229586162997126561966441869157485001277948187653487167778483667571489974687484102901907840841155455693969060065429986913973309157238374051342628668758952224251231612997519313323316805368221000806509160741088004642475894314356606372115101213736951937991111389768115842580705803798361974495297058790257045719700494825713486404875578480467086867865223666000789452715736738888197122865633043513430314635291275253733526534418840856513573144811287301432915875842072945240025871319023276643415506496876710951812857825240960392050894531300243558849993256513493182691338404839619601206466319112135726230475347648029852563153711099372860110652950393568063757745443754854521326619099475732112789431520845225269026124395824470034761086950636503140100526102147992256787738877400086007432284337550535692009368539098049046107755454080505113202920272827349918642910065874056502438345902190750062046347528695954802101741644207443960866933082809638397137205689344573341415522037296963059307047394502668945725540694967435920230035399705676463231035406170935438535036630520431603876770030154872546213598061914060721147274846592083795691311072198387685208837173761266669962206654938892234614578630646864412157263090461625056544423221688270304169007130438013697354442370978118718057057242376793381197579768995324322710842229565237734040785603626368578474178601466705750985028081312583956370878026077197143226646177555985037665478176355015629968911850186584728606097741192469422508267417758281513775585521067741155195117501131336200338035109812702892722323550287339962632326582576508929343164486724331038677249334807969447671050483350035528556572773496531086823488444645154496252724887791709141823279419213720540566258060166895864954803001296359061240180053154764724974703506475167265128121028327322586635294558589123149270782508794459194156976621926040144294834327528931515745603391002013917678058526190894693049408334182978912599441073033421377133684416166513408580722110602281689452406070697360647302002204571900261001350251078060778184532180300286473367412672714173038742559669548462400215216131177120374474395740971548849481413748487106274692479060973648513269733093127997155714153691733780554217340954889264007561213908443852329158441418149480192022006555115669549160244618653309827705766684941175729804532625541988692510446219894444598801667014077429610861082465012276094733166463599590742034679815255832877711514552141785684014691672111902233247689363017416295618998685511948971157525929839632386593671278905101780680114336814146720612650349625628959590742322489154577389186743589119640624589577327455594383582077404152438721794184246690388970777851530792229873923871957650082343533837969573402345873903207844576320688225082236162647852443972513560102203008658959526309598836339604531682800184175731560442116826604839000357769413661296979373706908114360478290757573917945952316147274000063736075836513247132893943730748837496613412456259904394550826025973907390316434791239263314684204990093701469230259839618573082130209240676757404651024822094899290682277356037026848388011315331025728931381976353770491167544508173067125948300222147817550681873321474241989312748727044583609329861594760909082342963254699612261158369106888049595179146647907257126083526912202223828509212056319865701998244053786924980012696364125510448722748559901748886350115586746770383348388027706860957358929217642061192936161035806919885555070183668475033102651825249006626863514023097082659177346420909297636223168042744965666836550276153251441243678147436401513694086819947630420491525782907969236981382940207717162716668619814409039638018112575899788537075826821220680412862063406674199419205763660375115236397819086535470620155932186550854843166891248088339120762574361872408794253537596773310931487986121330459201463479382976471279314125371221754217217708143413534201830312581101532079864229127362540475920599121558777599498616086906294946977673316858272299466867462373068567139886786266940727993358377511704512282350087799345854495955082756658044551796285457612889929728735694323134598378922171054726051195802358058145187140527203610840439773135906052396766094004198926549285970905103627387454352931409072140985452947920955758306640666227209058076450900243017156257602243182062946742225892420918171930700058341076026048267262087787640325949178752501043976362568476054015889543106747217183419137410286679547450412436220875923042770978842022735530934869372486401919326204850569043989395399469502503512676195468592838424258311573841722818595575774637532949188777629351314628800087858081628501893254968549985131645087596028267144058642518675207208700542290035623493086526565488736471623522595338032527123415041655113903506636140139497596715091521358886453935904446620116706143663895681493032304815948147221040753562082062647568546323035554069035622005942196116630011659391174086747717152798160642695649911394819088292250874343103701463252054886567713862680758918731736773670365374756976100289661546451804874868942507545976387234576620934313633979326477011638241035500880537159866447795888421357710142119689219096766401415040013442837549065006648247666957906598818066189262057668377908379051171640722019161456583891616309710676476156549235855468495164556703896086263649522496851494786055113148107833573576476294483881767522214654163738492268321019517148091164823975489299572265216825544889620856851910696025025324185336708126718029661307327251267799762038047785870315508728374553617506736692866784872152939720819480071604865234378678000612565283060020234079768552905826990870468894604512330187364946585311290451358850250072521487533998440629774133261839850192871011816798253220747768480896179018832167603495988034493302483470799044886054176820591891611869750862549682514074557210273134943645151168680085577014787964630743497312369791017146505382697429930849741022093261360208714131924429771396679817565027497999694186602527463772328498772420843842413075050471883206905368697661364758862521277956502672799390414697275120384706461521680710016041705890523238677158001474614789491882106426894602771167674275773958050322784527262600968563532717042572300254945162637731058537606085511847080402986062329065222114495960470545716701478089446876824814766621844747668038858064006520266799181132586057708394990468154988220921954765430164412133870438213741371271576684804612233911521630656190517883515594620786584695419603457016931771791460351745692449758874276817868736453371492646264522828977052580988010540182692533770922911306258138983957698279010020857229143040624801790043517682097744259768874055043187603681878975681268431996404844129431592422531568023376189900819730073827373109074430122690624378226210576755642454292098977389333244001726356343703182177069898040359265764484650153137513455313232669266551737237679202150765623189898349617625623799624595968926645939743699495219573491516243077687144183754710427063345419143022127040254408623352340709658011886729405873742128330831913108265506191325564890538504113410033767520887074197222619631436646663961715055207269454155814602498660857644364191097321520238996519455960297310931984800437956307146201641988825246399767271889362145828883850986345072282140574576756320403742125858209252122501006910710457122055944208778216783663370182183786146488515942057553223024922843982340663196029529302531120902571878219581240553280036619506813132308213376789568099035909318770191791298494237010080792897224521584976402698330124122373268340297228618015409450933544671289927185478489659551416504244924969476093649994406491978570472921761458450418650199661801929888435613458840660299777119381017197809951235840160467560684761526006692195143889861292277338849219484638597163282246196608380366715785792814122138952626061288215193831953639830338250940901227729171358472268414320117959596220122056854654791340194647977453399838446711909008421532237951934402544717271119722899188146412243421416798400676591758637816461752491887189412465831722959466550841359463159965155276231099142629650624148758304559668295207366584738238529956279053411197091506860109961220209418147891097471042590167648131741037679141984121800114059081996715978171582343678575787067535954025287150764282645646805648856828329340593125995885145642407779151967791471002237463368836198472531014311379024491653961606165466379597399003346845265690132750394570356984742031607478036552173122392128652139365975360024914292104020378511255855223605552549092997644609831152263085452717914564555780980692175333148932450998265264575384222947131256226030763763058170327813368512666261425586565333731951911966487610206922756571930010875901683492893167727653407111503917341761021949142159618104680900512253647625485021697465201546625949633726568056081398854085472799004500670494002878371992270439377497960751488409871032270248528497886314856696823028237404111989886926226294211176451206990932250863842683071408769765912666495240317270760574221216219951390223107370421347181492588115947234435180168288897343043563835466153845998003165558151527123016375893667054661198675727492801917993886124532253314828493932254651521370769912636009352227731507625551562030367135353021108363394246498410451377209875836274965544225599520238305886454740921194928775792122981622409878027014254216189382839997265440980650502428427453750405888869492338765103540074727649934597202944053428412592369285723061569230288337845819563396170868032946904608547997538532108411950567316343196453602045574569523074469968602627140690718372571789546397376851350281637677098206330373357698599639714512702627675755074619695652969271538527870355154518071065891134040151334103319537863654590347129043495509058010725748106874563945350170939953195332967567968625402373545646134062573697433152571688232109746644847088722036806718393990693899758797962480253266176087249103081002357391695235543677876746516317703563907217391687218117735733743937338183361285301202353349882048572528095957936896325540926616741770929252578750975205854215832951180777401719517350444918962859923490740405574036036218656887845086793935140523085217527575670448157100265364141068315514709279389187988057098925294662999176867141803324770413758828608588111797744092300611923433242204990297954746516925614532262806522838486362649624467504482186468515865434432141982877639782514265245222954713178140067593021180706950538334453112021658751391607967989549454782771976206920847180556034957103072058271023073957408171013256818892997852136630677253766663799761599844624383893319293066857690411033156954222085351684919905035409933727730740550798731726409451392062776357567556138206463121896495478965121843291376530162644586280421647475165825593806761324532957329611111142578772838671625483273546194318622698575826811796840262400987987463796822912372607868816628905824759696792993308842102685547603968061439471824540166952985559759681797380270972708044896173470060825843710753366309532197229621877797855972346521102468158729366017448336304627322490955937785770625406394719782334983269422134166696834397135196868643814470259598004806395821050037933303437464121480118696945683685534680723113526169175104270112910651506891130010253987578658336165714023677707340887399498193928282701611779682909997190231268262415464166635720991481528320382270074731661936033310565681296374098679950143028548708902012188984285706774902094378917037988611080475732816007481601029258863773446926352753112548193905410595735009301899341924676017997758241151301344125614539580014662206005685955046304911445924121529485693271039437456388627522924269523196902248878762180069733329652364689510249836835440884435750991653960502180257128984096157304237314245179148392198626729067122330575131171243838262061267314582859015274066056139359749953046462983076181410090121632731338000987905359074939770946044196039584334203474934728756025362656624978085775581539259885733457708639976672044296536135449985329231958135680318077329332573369677081073676977712277654500964832958064540869618212951251457846981247366592657363121967185158372704865222197703642475410537238755624540398807938512167388089765712375996185155342846620357463126541955938073616701372338943792344323148827316871375682020220143869419602386271892528545208521399536381271993347639033394771755939937622532701836846193705442470481294692406890364695180772075325425353881407082940320646323837188897852421026841080833687396055164901943412653958345647383540431916826380427054813115620645362936885592433617540593503980208128243715434901517220872605108648802656955988762060596353551063394966652147732914486045182442942148319254444957268130758873120121826385593230936625384985870689434684014031538997574308122244549049027105134175086326542355169380302880979517570849781836064167031409793872883497367284645560677556780701493079392352011362292257470456175710811066248273286907272373279963857244451359738319764753348807572666980819573076624134570590295316690772740584350762182034546438084637813936776018133244199927381719666873141004496213778360706883944548480522826137506532525983930334437959375007849662552644331840922052079523896863398789247732412149997611389569153452375241050607859423885976892535124513420779474296462421618433438741740867037841766504733487663676198174908458085800070046190207423429033882705477433571599231454205857313092061039450840691818317353413075436467387652800165574190441513287842737037009675166938103795381156797496458781797939698975020329764380751474071161870943418926402873271276206316419296890615133084209404260658371253945781474686604011148908292644949022390867784615779546158344785594072914524993714575810486484831553018869982040104734490119646941558640135389799224031140153747866095103897886855345225017771457032132312860307525670292373501706565034343889065569380043146364229401832443725138246656406535597206768064607177113443174991424157860199571570621152889106929721697567879085848224596327015346896183923508330445059522146006429868596235767997436210419767738465306197338010129025508851020144763745172261647027538738836645792478207811236841662510676403927647327312686321544007212414998885273653490108259650143113777786022693409795250373593119646884828971589255919282515960985248193908860216934578734717947833299898283386818250224390814397874453507607754074683941154209194617932392678262226911459231022904199404788495476092456295933818741412335534664548813472130331731155034569971538762793517014473040777590163693563609566360388434346234533621305602576548844625222720107478281064888301017658237677344949985806355033315361105449310846472846195952765992334526890659119420326295750083443110731182899799170642750028999307372718380312868928951170006295977522514336923139856499407402695155847639745339006206390116837994364798928469812139482037682901609243712975057322640624278048678978339353386906060082643218398547121578859457189396277988267684149725198435687620820581093669657937871522221176343717880368226877903874353059610045603292945589277290262450992204027410081790506325288359431030871702740254941649661032746864080071167056681717311384576065754033971792780428596491727216339163522658506828408859859293368766815780615146022032500194138536663315653190350336661455279186335898688309094991127358874995124062579682154830341006996907610766208187500116074230668130728032414146158464036545797611200135592112749842837643230995979557576808403529394054065780573537478203846322318478409928104985584274629486252546455283523610752635401105001920548841607305703112301389854609489772371668333234948855582210216639816551587254817025633449226933696112647491487834728175786307870149893666812795737161951909397360902353297097895341489841837671249977225745709434970731834134652216419568785436334375494986549923266366828195414904659942259482853364684613426643043246386736729921878436411247325345809948348600212852904928992121018484768282253704255062949718264463841544389420768252997589626296099091578984236892083833410384252485573896551683885658501995909846636553532933254167956067256103515493972324164317636443344417543600018406305979826099058582165831073603657056177751627897174266523121057854859400905488990770949634723431286479841425916839817659214806483624939793192308226736483544916542423867238881545156254739855125229869758000375404639297023770684374582966957772072084101910003659161435375211806856063952006111430715527063418459449331511080048090363348237537929194988673929818031023874181857512974553033534102642692122672999869328889792627499969175208418772306075646905131642422830953318644730602529724114553388889292132831720519725663122189369971904413051476132815921317875600234861571544758935311056484737007457263682064265902921595548827010002725714425523787719040366069158521989624942544057052645937196264571833348609217582633800618035589273073215381992097271720852608646000076923300077100485926244497807638445324834846020484697627090925667452903210082146848686706754897263800487314146973755715040410215586898703727199017359895692338227792894364869244179868754448820656377630204872578042066870136119514850737883587725277919098463757504300789275089817522101926236702186113533720639839676069026313576896560019277276350049220181346033405589192733322798579387905416899314584100344527374174672901276727607740971815401190471355172573613469247718922457248363157293044391686255607062177047851341638535823821178285280556063259042956478771431989140550257459388050946187591189802795831881409627823847775013587921861670881132600800628506606381834862124738781927818844265964980888329401013533475110357100540892144272330436354050143259779775279365631673789205393988435570025820870204342677393817141156356407176549782447236729715258474111205477648660412242700861574744248785354411795312563226189578693745102915162153066428671528994217182073684784909764179731336891898219163697165266932868895296756128495896057047313930320647517794608486158815592259927984387292195540642467249150563026883761447893027681117060160193125783077940845078552693443389919757181999979775520888838692008583760728979112605240390927099643980942452955921998808653319178308446502867269854148431440327446373772392464848806819265192906728103970358274868577252566500054017218971477965472984975654718244682533788805753936308827941306912358833251360421681015667578149316496109800195492589268878566385353843865131856440655253497669234339415922404635044596308526274633537756836836578843417207106605606239970699790273227910200878776478517162363488550878939697249865315180676304831209901793131599909581672038250514423827367654193669389990025059740312324060440843900944515416463329770674411413436053045842646068916456211382387821435710960971176146540358949928142660590075689054807886163097401381457184719670289600681400962912374031479483048314547601086993878153954360550353348757069534582848049031439301870086969127089776706730855200670057361512825735065143772529444412539893111601890787646027835363538833729892070474550220115315280622796901936675590022335604354445087531403778427639343506523728332061530288012957007395688387585417172156307517047086105018631374436094408996958042996064457781927729543023215737808654910833975626963033601037737455247447624188783794084717229742314758693673022801249170750052171961246572720041311141925936260445022649581057933506779443869281172314857642039275032723062552288180273462017462425458194273506843084023693870643031304119797914219609547260349201510198957762434618564074294019478863545365828655820876400204038769206340340886136833478792947362245365450235106945650191672747252617135718909357299376194072289869738822232582934314491128550539265103930832244072824830127251799186730431147440243713970604492302851278058136626191944440155613088941407998565198098300045713212685379404445804459123833583208623298562705392002146327729669594325225897424221211217430577661784018791740558964200498381905723167954460683069562711999142048497527743910041896428705341759848069857779465583588642323168014145230183326198539762527386606219459559726416414388116869943243634797846022692724333174439034823375139263026054186707128269977613012108185050166639596679473948682154204187464906523035576627145334576452631921297375108828251586406933289600649970581766322332133217463876903287440117817665605158025908413289924902613435249365851732968678278094052902186269595019553205896750254717634866194622864477313846429676213953912138662658916444376600904454004494792713246680124367515476013377567760759989982823460527726875022119149622036725064849477256647473271516186983628698946079009282298274157226431627280998997536546959321393835291312760409982096630236723203157943483819689153973031447538450300232505834062663567215819129586390712282227638980063701276316104321250064264650450057057653294597169858725988330885578152164120121145862862760856175161714397517692566952593364104637914850086403721707566801760408842303193711341260396961950242514111204723120798897002447840801557693974292087919662013235859196976954784405554816034396560039214696282147968844805624165974575823341396420834622276731599418480109461567038364469083629692547451435232522060997183240827622075835621280563682313179596219481806929301255263367910230044137457576695735323262351818641889671033668054900273517915807587533943786151457891454514660935624879165860739661390462022036706459078944008297181136371694606928443601601053873369129322140383519548465160108682174983135572540837954697537425666542493393012883161509348577609792650319256853820739017755881321383611742554318052222156825607268799157726457161601595933851522044468066743060339196964608113035457122537479172742695681341368113306203771078650085344784186837940310465829865456104991994037099424408118406462684606133190175698855175619847510058145217944800627432929787550754949751498801257449288945839349097567192498931971597609743849702000709096094110594840353223771426345830383491732386427766820487163393880046617890017994273029674214171177764165557176011331990191289749387300500852347027883376307170999241817306902275825880241980036080344345299105492885037507285907450210047442108347500389947256393789280463769061908385896380427368936853814619383665958704723218313414398249226032309822089749121683663253521455951392611001279957541498286853301707242750916602783785463687529543052080931473748917619616329021149232818548980308000446983583966217221648184150018446560836626051343941452802507656534580352518167160468609963424821645615111126197196745668371771999831777011813935478295250321065537504590032967170209076828738460455568547740111078824635398505465754550103739472084652026179744544456147813091204211125147768157603612460761427919218655664820911315093559597245115017620394903137355648050645570866237640747868052229464398723371793597102404866294118892383210010193092781557067672708897352530136064162681108898546581504423173755164245776758777427681546693892751779524703914107918535703804765245536885887804809885137017862982415250870881141784983311861101821882728422584603749606637648451216470991186095729806883114460563113829622135858834854496061872785154489255279503522943594968132567122843794758353683315682009301934922081241558558972344644683882238638325107907073512052565115423092572206003651260858636528006327352684538696258895298457715604449402644595966258566626818006542193899263410397253838877004713157502334288105023874731447202653397296646507685935487189552912857658504610732226933672878783627100425015571857550926725821583900571252103997185205366779547799337231217132845109495223270201382512059702714396573775176319048406907524154832842327535543576269436669824340662957136833806931468678171786868275146379751172403019665768479432570889806550049139998135905935597981940993845851150538240067561076851093456267806153053054846585975353696456814782659118324262115940834893044577811667401819694109739694583032896014274477654392342405876631088573817655065417516372729547409252835974573748311399359065894122067806188550460469315935274691631724313186483107058895975037917268970575538242909260127043287305079034728331180778585122419211015496728436148209548259204782080892026921003618515033379101607971340574953561404260160155093328943297234559345602491080128843201198288685543469728271760358414694976537936184837610861511527904648238903475630007868363435176193807041453067420002735853962731442772540558396335357237109871155397253901124349327764635886450367318855476736577232068512389835504329331855977909999655166265887701116521246123049533071324453904086752522539753277257998589793283817619003534831865147512268401674475169400154326345847231243539977732549271175829138928619901190499541079774972583115527663094645987235450958268376371138895462162449721915953978732303768942805715745447331145278773145678053550573568263624254497694478147193702664500300880990704495425107155035667248551527296340555418584398006791197587528804371540035041132331203349706957661498725305000272764475068057250744108913288912212088164135273299481531821377108467258110673374540597900942660003706056059447360701272769153397740820201641998474704578208940771723638601932727091162131182595479505681115311560715265780906091192199981714489110870544025118467820391651010492088371112690919985448972183412286067403319785748077472139318095002035554003836254838559698280626314773398591237195042185593493325938084116512758630908771590369148624988750289335410037244641095178639335443586940885245901620963592917566614813123459116979204493292749882332640270033781172063526736537808494977355856590142395177690760772974803450528095205408232537188125279086612884399729455371624481664800445935452018618331938455394024688767122702828762389475972974737463101667272855285339595814139381564389120003025254810574988443063731921951519501310324685479689435872545623012320832651499329798933408836652846483012679323499768796494473084188284911587081810997892353025550040386438739300091131676411256158178843050344172410184765712455663030355849743803705801416550293217704147193971571935306307221480452759632515446405060340402354678563998707221372469482423600998507142008392195583290299231009610938997465118117381503720626645677837571237040064700026150446014580059102349440376463750306050210239211272379680061251042389900101133222031008070057540450454068052716616372313049301227482665409271715814926655776930565517593118422069248715786930535200503515374412755909976523453425778030436059585005044550389618029341087893006105122619215705785995681586301643062947620183193315557685284010070820624603200272668277552168868915375371256171517492014056995682518129315376948884740279064586982245682190538053679851623283888848241757238673711965054131665508648392913033453818033223471755991239806161494936487479687021277161420846900483394859452149775555923460252995560377483964550040049879761547111705527333733615613918144203282789939964900281231477415535881536381387781972710507150810389823862202206897836840660238543983346971811395386130278847721136792086452128212092094625053965993011960732524841701783596344485215233414855669203561518748727913919188717639906189301098930738115693259887171274976347391421653800213488846281858279308867080402340094606817245250410036231477166955430569760937326411854129727382555861329961158745867793203316736714179780721580064468299931898644642217205610842424204484265535155205125109718530586690581358627998399697471189231307556366671418209157728547669483518952342134435331897842858251656160892155378473127852897866142873265988012050961831424575199076289475787825019422021386090209752249801286439157495426468343566741632707340452345030683100120394072522246723478833814778657689572649240826849057766916649265200170536985442270825877054139830736347655274508488915877386018298498030614821440485585637713799529938103412394744139840331107261407175344725097307439402507815789764244650677819189373062712213305386713846244083398041652334643156361177223167669916797449966379777151346725909134222371541852396558679710734866867387406262685973799555960841759809821930032575596362725350340034735516216892616813213193993202126229281119971980525473944501893756592698366543707459077300874474895084013232694039449551899261066813022043233675148516993513634141429686552538795577590480782323322147184411319821177734173114113879082416262823670691137125143386534861986559473398397397276519694646574135963756741104513773801729847781309948705827971672446519374658937421030689761831915334963652351744266993096914684542949690616263324794276576550166829095630144210152839139280915911021478465690020374771374008757288560792302182724603061612819592354377599524370536359009083161688763212010970627720878122793412680217995981555494682471123928241244547513687499621456023171414365846476916922723763449135623682971862155384929276603458209425076269260580141182476652573426837456137205257768110712815356003778403130224872948202598715310860181722487603389234071408353526609721455056949763253967086604366080424129767064533878341621522622929107438657665707111804083950228766676388785736809460815797353552294731398140311907336400955708838618070180251133129175281879262387780162414802815916096459857433703893026492049058033601173446168003048572980793515504204299312630171183971602388640603582211265092774619493047251852009171175101679101874384011997309203626110159171823215189358610318582679548725533801664537572920960577728901234532765559116095837585821285669379528093896688469954699964111905974852343388384226650493124906572407356254886022329207163561115177066068161125410412387602431545216147119064228134006145543479984806695695963698228301230842661146543329815671422193373661993307843578029550722027120357604546854810718062526434194210288726774560663895077367804612061026818746682209886592270763639612195215965496366238371030556343250815756541612228148896853164024328394664271238558870676773512234900925533937312766322094622116646742624357982309743415866551761738838439581099411797964341763577081947843371631591350265038571047444904923966305094375821540173728120510129652737469825084556352194940126322883081399217906440102591194453942284188401792371032918838167052125726677478011223392377602846112720023820535029338042316451169657946059570072670231770045739628491880789646130677952655976675357903085662335482116689174667652544521864877873833783363464252873792896131799195518071690495497927580911574051537843584859407811974088486482144179873229154150368675401616546358371905027706574013083516512542972515467712098938692165276690216194393122634423832108831645914189049948824512284894084713914382123910439284782830023829567336210216895601641864320469227141272815224781173815279219987470641952254670197775830057882333472103220230475122555768104204223374960743870357263693563854435783284535642725850492555459545871688857221176658508734676814532650819910239191801675174118905392914021009986274592370609410604252168267132726728530135480668883685469330585937645002129791358629201472043817897453089983410588279449218866431681914785451106020401985575995072498481599275363384648608127122258474130844481046265983126361657442956857757305184610243565802252874353523030320811745532421260925719452367728265688472928078575451574309360315274464903546047294572519705903839908263340606124623920791628982468188785789463001510822541546620561220235123656464341723012552738419327899550579577281436050683153628551369406042716417255216342024071730466114882034930465869657288315347885877646671884143440127850793079714169262178841502406949882991608738568368582914202202524889429986610669172038146968943262466164239602375916964741583675078265690688040434367803872622898882314661643430648232243939325316562256889830197584014630609796101799431926408950960336623001948961013323719929324114804486832713127224308632194541117580186273420934767679583449094845166230580874386437345349926288715273439966605901601253477024417156402482067297089547486607500617753341003772945642865457114762220088354910216854504369286497940213616670670319962076258367738574705715664333923616337536740233270709896087692669804939933601192306543033637471445538428756140226267725664907256861899514409155864202648620139812125189173153220081375763902353447725486191799742862393329484548249588752480045290676938537816354286497589749721812924297008925533780777343484298706598144419552539539683984886928852336718787435294432467401531030337127473580023641149883462596215640767078376827869123432502672326205734481120728700515573561341351572346671271468610007700947188783769562848119919239722001154218453122164409683077685856610229003165494683230729439448971116661809084993543867724255855509988004755506147360604868812596302088767380701504536800430432568525932754672589142331566193552450562127916557122498253509562824325493850367202709853779403538564145157954860418711228063305214472407186814298528937366289091316092384823524179366323528467020154653545045939558922696187120240242837921970770681429968096560735234839235026620040455008127129025921941930580372643897382131885922628167557190120553314716351862328197760274544678746268441964669506609760827997957274321524690010099291930730148517620277479341205551993795085285843569206710340604160228209712571543195893670565002422521139488439072930511095843466101412430443601259623536585761559238671379955353165668774028662219611908409500503404828795982564453949821921027680884858334982194662854015209314564663454763385808932038493526389256210388873916948103878865376640359607854926386247662452063115278923786705559291390747758580027832103925769409178348313943835967911828841362094069340003644483554499394785237848837663311128080470182709183060244567459951270355985970314270927468030265156506928645993964027130075665688769653816169237497367685526822504486882573368377006036226705420879795748885751690293793735788776347214607900118869368014094948817708335122424062671644253013963553653103886343001777252765697061340236776978531884728711400949079572226567624126677221977560153431618803634873275851883725731288611280309809739760579261187796284848540577583636914530058025976041466697115555143443181479983830294666205270695637791974663747625748268062018868432240570842703797912409697187966572349221932749629245634512700272523856343500628653545544711321333003927423457545875924431049411452427174867755643600053174325419774522911450054815783476955454666629788957427745063361372605790350251134590158869726289677224617083388841089061498951580777897191953388852292037317975467969024435987301226979376242021869013935424525271826770863091646695642166889106338572671338784452241410181749597871894802783839737033259278640458153149701045512513966192707115065945006343261032287637385293427768675732192298406038436830345474249014622062151997404525739364861758414545712654467586808729914048795110863392352708214133103650945963743748613240890651353440872972769285590791206724260098383892910336877585810511880443990777329837753256713995191765111558732700947513661571852943636018659830875899086397946669350166009956620364204109087243118461662923950978540320043709827056744991803787409190612948147702374438572341365079338995775426010535342980369568373834934192707563523847979419436473413133674770245840185492437380025553986919333704853416965108115473029624864756652690154652090863787308630599750082617905142667555278558700527015614472635928470992133128096264872533257712132284088615508593568756855362175124375601155253703349692314336019357237481789425065795940236437901155564076407272670129671522091515634086548724259657216838020513631561362716469889344466446622078697387567950809567614554829000203352552226286457524737379293704718032248146162557372836590836351985417222595773376970321473191116523487614777140646238324484901287130870050080484994043375197506515523274227066645245100543398600812785709875315592227402089681082718263701810752253820654819410101974000721774609412448901798274781201992819674821570606174458346107649137716520038236538168390438713026395777917975709868933482832169843792032744686631295624192273801544470127876735909607107497970826227575937253690533758000160280782302930592263789722317410530649310553813115940690758568784365784397002689378644580274673734778896594855815431299599146862458808697880584836382952400384394588931455565212920401921914327726200094478092927089342979042468789298190851709668407656414537620890431500089752489715966680520236113161682594549598431973711581114068852045310067426721177316583827750007577426303632966337733274651799484621491979184903247468890330935031741759236833150819191923354800280150109784430415616276026264013580338844136134442097103595315767265356467988957491442069771375042769782907369209166833308156928016452919720336390748953135559701333277521945579244539424726518312464152231414590767556202805053810839484508333881999718590917189194014562476978216207041486405857952530325337806031188804318169559134217919504876594721958831191365008479384495936700926217008837934361864951233407517075236878430258828526798324535915285771202717703273667598195913778053076871947428747140446668641126821284935665229823227773658019198146544706836349126410456071134273192978078928064715572103009988480076927860240312542244376489509570507928795846601662851692224366875965911485276497916077961688862836605066673997073185169765420075964781778704125930812176183502181451984052461100606449526427838016813394601729632411599152054336176345320423737337330823923685799276202902885379987269235642495949990005950806475204221639253184727080123348474433407017461862875915944367732089233636064803719949828002067872249245623907519269566142416955868090705060704887266859611217649557085608723058232864853296312198018660412659269871257961221842845970653687022985299339664201808509214411203920469138000120747246619857299790055960954258339474607990532452660934526626563371765963398754560445980496384684035598044325720265482795194762955370041905142236406377978959678438803147665441663982881711122789677327691145314160360365524917857080749805999356035571228335370134377888824906653071827370503602036075244290758530653291262581096965503853244299333035263577960351236002804390327642585764300645521507245025911454442289046536633949194006073238899680413386223433960867005069807603741615397861395479698658928264107579986017413128480479284433274198419916100868110024021976968100501025380861365819192588958706508676359836538293866165625000296955417344176143567526388233840389085639533534835254123976873404025239912651294293762193771963282795670762038273833882318838712905999505045936031792782741803941113129458152086204752693308654789280078849904725540563445122338377579701020968639298033903296309751424590919104127033850693423084722128442662666362175402558465665944128599178425937788218917046055516444929440506240612600000255821806739728352629732627584447756590871382961170115710540802699457557108984274469964397566525119038956286736305432995044840651653996723809230945668590823916280369137552082857643551267924260535169445466236978235387876395539707287070894192913196135982550962577308594145961670514242677066734081346811160345802051292120014974919150247875466273668797627346147213985045796950862970065813332696916255832918793055463859613440138768527385410106774780656960199980276926193860181896174585473998309629927383349819562869625134473929186015118018854404377244351877770613208459799965702918175031903944406244077360001227313400915838681875560090317310830422392704644719619639194372554787597504551131970838297429140188485424963529781309438085909392978739625355295286008786792503225056406407749387599859154734132123977724876535162919045826702794033001657365973618368982609420905664416521099672560204761245186303698587061210765910817295802327914279236581760181483246792330331613918223327852645248445999480923442799945625804942318498811266543936669982950781737053288549336779250699104963396842188465723722735857073950769208069609169140689293363202978052975797144795619115608942736168395235218319193528068970210002056049427044595639078226850880360839319577297594698862224825327570357218520269944559601350641552843029856880741520809713703489355374911419095175531545863247503062124141805587706766605439632772012860568117624961342432662713228144039297981339487604200460421468083785492420089705032330451873677438245246108640524759105424905880864740586830085074870338659291572734072872239358308110265853107412963583678832516721125325232394412703138512139901785468307429855212450468466228251441753517029397387475049065083361726586966098882422817623642094243268052311327698942464059663072367093477984054337590742015613454591105237548281346680430039399955500758546002376188184145578871788975660484083298495127651060932448275600212089863201972159721839619972065853901895576917027056068713503629419994185149365065238441742021187765287060434882558591844418489857567050587401835933955020635047288351511903728340824392551610412134990525950272459263358140498115966487104667273045642463941860305260508905536041354452110966259620506199636396472575452421515525075450557912122617811008929850121662404011315336606539565314654493671555543750376164503914517866647237084354223603054752951325582937434765044864392472106615661212920981438575790764046945271814292492156466982299719085644346063185575051288300320905569167769435284358086561820091631934554289696943604151438738022036332685664261652306010076752648302145538085053985934726870990480722663939310038114889095536086077724823362054721318446685753015916402920754467273660068247982896092820776417127345805469846104851191109391935173856503332507069510554938299231498594856484040637277384464180452267958411332606383511557867153420003903239241004167541420276760043944354279824743362922339166821899011081795565269659951151676230849448723731175278040954821746972821322153824370656821797925099414449278674417954588922485878917421095865467152372620378592841164902030450332100404820932752334412895106825506853614412763154510091473601817797806624495596051544939469020444031666673967491883598907580125183565912535940067673665449935787709269210780129750555244552558267601453988071263989878622344181641188990640366826899396918767521356298125035121842062012468516013076045927710329917149297532941718070506121929170080388657816644679724088120698548549092731562993046304743353806314619449790440208410878810728386756466740944648908234765401783066778732820634351128025058703761721417869709403044142135019760397287149650472262494610366776730076477110004952440617554740045528894473956954161757458868672804495917862361658447434668411849307512546427449389279279399913095173548832761128241442278545821509276160669565549873234335894675908131452144697001633776372093522740569390089015377741973667773593481303435782088314006718817057545402084365733982104037901439085376450960636554865177746890599312519439351105898006662707538087836045602339702922627408699163048101970939957095884544020211012767980704970098006719873652574239725467513183665901618724621481050572714808542967241581209645551078503512754771246237157606915660743643666014781517402554715749752202867616769795718103261547574008125142849369916257618818872653925995425457154443154077335491991675049933352878187085945842964219114388253779760139881044770299425294855663889040041878640107071714693890754618453690642221001506472099040887083354076751098617196810678537309274195140322812499090790850313605385151374402847523551620254567052048015721136006174431887395627369989170523714237298079847735066031429049083584847814666295412702459715108953087361393879808836288383870141769938286724961882288946670271731671661669748654719021096780924913596633198001114994670354686540620798264632514271992603474361475417201341906517916445244861190550083117292934198538976094641755389590867202032974493983494460158983643412521037264503730971291126316749776973915943173065450261402723045529164477956821706479846114035613029468827641669520299574519982316278136819215050338206414124904955119332052747004301827131074288589823327345518711839152485675909686948734976802703406970723192440465782298514275347041825070392650981207536547785071921408355716577604777576846462882132274329779658019937819215823985875149694796159613877366353815413856773887508874662090690626933995927111851395089094003887573961097162202299118828691258228428241125369381891955047401715947057152027291790514747290666934808555586160025789454968667278398714534981375627528370568715973489934906363925734359748490566683485408499555616084608494746164481673010220857850773188225178331625172052406226286979066321330936280972282931278342601971907174514017745039048743622593997423821146931988620536295694584929588035663719992566453069606924314536642818369429176793188259457793416067841853510352055879795363877323209461901169846137096873355372049576375154899952344301286975790812281465712168468692395459705228756215986770172215392213471238856722509958372105629785429990190037213728396916922285340471124089497992329426489311338949691790190672134517808557138634729789357305487741093895640626397194102515136400871892538803190586672797859125578784850128934225585728641418600310187353152428097922362907220254815504154903010924892737273781784902104267125735526676654651744682327661382547563853911774986540566592760396986879301616305708791588073612326469768094071684488587554507584319975676547046303128259362300848408264723074910179803543813347783424568966126811146235353074424990664985365393623618320568697184941997016248137010708588142884270870791629631538315742847559926810988404358273526103800896990030121831683989824339733396395596764919295549874874433117405157491435767124936446363510180073852460257285156617410532654528621940931020492904577696142622648093656059030227337072769014034546863829788312344007711399348326616759186520332835502010953272791174560988899109836673783026524442924279925220223839597041140552925938833065633259745923466166952678484326058093506293142313447298999272300710921140569901599649857109008508361341869803214159460002118163405270218823961163168702880427045614205885445476147310963135993378138290983235445895339152654103905750118656063003944487741800250853076686780404438717718169510918373823633719147993008333892730312438210559599140758794454025937179961417580451816250570137609506718634205564489506942472840734030450288540228625319763025880774802584233660928134830050969171302119970651589335362692442985916349700049921408087419603909117861376822436927811853373629254023484370108352141661799666254435825886852092259075718274859919601272523576010881378775402309677501813646596614890117902300733471826578526677895489188859973268764461578050595747694296563297187798834503690792534263198724947364152112396037013905412394504106941185146409027844837486513589412047922469265207588855975320215557439839651921039682695490299398160858032969113369920574372050863911939129123775644008367595580081018212997030611533599205566222262140780792157648518897393632194630887604697730383186854079436429414415568358582852502924983530166136509499859016257731780050320303909835282266985982417366614760897660124961773762312598198907860882754964020526380513699753611096014888234497177728315764182118601773350711681072830688875741164006731659001864157529855768738887031671694401324817517134450306365779934899859769087014369312125252622660499650161820984348413682543207697126957402255614522843138385346571346735447594028768699440338509582048302378102516352816551674585451803789098885756669374580743237166686925426705378448241348687610547510798945323127175599570140782211435738383487693982354882198791861684115346357414681511969222512881190320138127674414729128526980523996011634460745654430970804021033527425346071691017340263833555619187816984808983913884414887477184003636613411785913024665386299837706936326920797613490513639430582818074952063971449396535901483792765347619119281501908200175126136957001412099711235840590572124009008784422417564614967276504835815975564057659587778267275913016718041488015321088463796290447025367729204070276757272863730149001970144472225544607813155616950878617428699715802789917504627491095555504154786256797334396653282547595535469115111626991370011547791336397506344480224792732108592590315529001761741823625132752239967218295947790176989770552640272858138650063393265097722637652856521846038334274886585531859549796454321642595744039665407488032662052435749504260961133619817216922523941792663816566760596396398947447259146868117349064233073448579056811590867846054492679546942162720642112862797734545795269923635695774891153041390676202140118830717835471570158178628469439945402579029042131751482192223796104387125975579510499818413271097094562256698348298151847187811339379860669345924421515806055794913806378856279807276630449168234647751112325768078827923832654290428201378430639654763332120289040746831982700872614785514248111180904985502597054260813971005015122636878480231698540728130722777279652954202689219591199222283338238532750794273051241306064335326067752111026756224099013760471692891797109646749190414274518455320678529206682778009992189263433647975525303447441435319690643603810476017180207772357271828594634708055264390378595173667122488200842808845370013522244717980054227116899635370351894553491646217350827871520665110286752895175299785101154994545756328489845086129208133251075574257011520547344063241568232214813400645295528323459520203044535271452545346436656289141814171975863014169715637004423518294438366190441818051122886312381088056554689687140685265539026440870274315700422452005110186797221912050184903133875934054831731524729584228487454820753910161006211088763819823084463265144647146336871629592873746578019825614586471752630836127849560059916988348227687457271622663037305796182807574482875635199972933125064504958794693569888790780959737369341257793482159634043953436793577994369315389008207711984192295991286369233899389867773829461902935157612032153231865060270900559095185369558326536192564490689577877646777239920004239915540734678097728052657294879465446767073089447082480516072475481006893536229372930932495060150028395241933253640416031388337694857716536215402479054800329939632941537650957089092648587429058078107095741908295113695114063360314337540894375019835181357645477887360668127747682436815860807951766703254747017728647503251213080475814347901084784756317083601186187573149432283206507998522859773564074570033172734301555390619208726411211943919591600231484816730629221634624705535384393645373079645631122831188770798526177590847652368017940189199588590002619267744997120020870356090205648604894987750208133684353802200815538123872752902142650230666426798301480396190163415766869060633955380872480207640468972146724198253341900761414254051117370817867551676771223460364094513552529585426050892851053698686620365329411452401989032729974168251004022209728741946310808782580888816491475586868652815970346356554964964074110546650132124680832244664261825169634719953969034191097117554581211663661549929645227501781393448153851900515642634694354274029608282544705219229907433725301908170562840482103729918369501396881035036346412586413791100319505738371399108950853738149558661928428982134921213575494106352486824336099611452062637395562330180708293034438448193652126980212083506865704775192232068882120072562366173731820853234080848565416779800154302160077408503181730456056921311797743337574084134749606338228773077966036978404808845780413108527623651926538088069394887859294317006961896486454858945857864974725669354765925211514552904663032867319921453903928241633502204781637813722489705080378127829075802694592526471929773108354044358753944123330087320239002396540628702735775074857142469739129868265091796961006011984156589094978256738721744497349155218719902456911809186321606555279075355979575715137419945757092013124255183257881248830036494637252020365592328496945962985332769073739624513160501568791024297662139605753222479362789833624503169761690596903610808433349474143588288260823399714119468701943016997039036829641362380365797080913577674409822705620244491032880827963430577229668780204259054005274255683365021897464124365881938987345027297937358692200498405738041868316134821478606393144779149649961147747861447435202006459495779114204446287804234412226744900063603828337065793036770126577909557567251049875285252118780557559951509329275109608517485725320298463929452934156899627742220715324501891930606490619904251951512999072084138573048426070761733328472822285205298278744657798836367447812319071272631798888775068593296181453198529333783833149508062071048064468550728789967684529024002802317049010773828665400259682479518163984371118454566624725052492669778999136414723713819069797644131376894263463483479092296873030098220086553885690396465213611128880125040168529833935700467459216251604680670938412620863085625476395985505434053678494025992548610408152230021724081394373615837400396774611823930116972515914459652788664725866211303448678468672624196383351483961647809095789019320856956001324872169417309593037422473751303641936211300406890198665046044881836084601263442198733869245173717592089993218880315999289420617479581155883879034618044302255297865026299578214864909170720592513141723297499106831948400652952072057503239596670696485270321270659909222516886331792165194853562725211799227017315811541790830074849659932228516996788805184876254350345805094577494614160320857852876319386338809212056797867370687101092473316435732519286748545353715105530314124092904150271116272926275481577675929894129202386953180870019867218758918136005974750836941387401089517328727916904627581585075871555004077519071776099513576487401450005964651927025137283217680516887487845762127594381287617102118923955664444306438060086186378871124850443375857258851406832958228890109806910689069352751876822594739166418642796715722559731667696692366847098864764041030428715432676777256192776486005051962924566354914190927997805599538576656213246873307722599226454826078735044911868018608938441563889725338351365101169684103233975515764275939550622978136869750842418496505702007386453881735384995803864000933086591245840205031143201951138636918979076520375555426264206289595820449043406562064431095593830597719142885372623817233053227996091180859055611309919694441587374650123170449398312495395240756386839975133966741966553843842654400163902500194220867076860804828863279621119362625471707959595802572780944271151396401998428947630470205899364884613105458392604495558845830489887382911486002134445149833736209883646731270039512585361678598983661582595116181495070771466987683525951591703459475674566378518656387661623703871190427072650766710806995919198933897733575646381556647409259625118712600978614906232422825999118406840835437143032199330498087356278652072875512946612402581595970654539506570052141763503719542417531572457401181340611078935209952906588658132879850328567669817154663980044853983905218385370009989236866240375332307560259832826387348662396103303454282011830454913117711315947927906711127186318110100620454281874544940328109403899802023538771953157832059908290697655354185915903025439845666764271275789754510813229452997540941233436544752186992521105318786486560341368593375226150743550033731700671728088255337555172106059565351163338312953114022298743249312503924138527597332332805760092231573126355095291509567843391098264478330109162364180232189181463143826754946083457093350103290575391919480975825435315371649951603031838111935757559034371929297955561083795982403838107977303110405477717931369745006664727206198071585433483569141446136900651932740146950538151270925945162290473536120651463910940283785928259757688715149789384150991062809375480962049006388019342819791715598189836098340511295136971145077822784706487119010739357223668665045669507591289565362292636524634527621278530563416626140370395035171028350288900902106939679465474228285059044960368849136400100527423359109174795639129975612113156147335262337251951749306519433206201552376732692460317819463856278836477555524805512340494543293632764735778131854738708105866501699485133916283172891741645452810046037683394074137178003162549849413551054046627969930129537085229813840913758547385376798160906600839506720309767829097769869152635554121260662709613535718562018251487208678144765723348564156240452394817446352304594310604530813465094146127183424911419375376889399765461063388372719621399166872347287127176430558785227839230526820439513160468276631938130335051168757267655028518877093724155264928571394370370909099171396176310136700437477563926120865015526842802487510298804037409922111479467837758010561725341073434652929224105003005627217041241255086591029498985721188501478347127859870055569106794908700416613526150957358030463355673423795036510936560167528456274664671339029489322152618798173654153652112318030661666688967273728152178805677419951687681683981161729519277042270018536537129880301541778598753956068485799579607580136115963545825380640991417502341878105459085407981887453731966082878286718562507091137833707767990806747937695058105655542157692061899371814962205634399894312285589206536091890280102255818350892074369258769864055595554383604369260919339099136075483772699444620876892298419776173659634606030445951864571516900684575669479879129868446813576715601132174051502860128989258290475346518724237180509311224336827165909352223252867113320422777152848033109064776376296276063150487812163873877931898896510013343690242107368300458889080550913676368924390109997185026959489660786522382962704719150098081904921725132046370662213826965189356353972425849538965319530951677952484062487330209186550212781440057760882693840431833402423042174610777861883461763876516159249879104097740248234836486855839154121124590516595184115635960411712649302581377710275184496699445240173883122403200049493036223170494530937515269244015143554588048132665722261960547657627264819322934496703111082646442972966751572489139739937020674103010418571677662362697133025386331759851771467049347394176768046571178347681577185738741009524581891444152358527973376370193452659841803883843656135325002918832649158758889765628733429308247698543193517653326823346670660109310007118175161117293005293271305324675403276423682963343334496373228318083107432323974109727087129384619664069517584004503589513465370930332355495048269351955941337041884816254720188919895833119771531421364355537856675551314170233575603121730157190505049264318745016681528539449583570676648338756605102946420835011370067620725537002219444441722793511268204530324221538263919327275032298695739293472283774884520265121794468668529998043577974801000022612755367081721979362733189361227745717013023679997079537693100317094147689147661475871173465264686893010340093075269164136679269734666193518045055672315276992744960309192767211317364000570656028978022026974541198364050582348264358947840076296446828053790419990632322986949072022821379841532516666106775099759522862491301042081227530224194055603751087878868258435285901273954497750971216272685938944434802228793481936136127844390017726199296988945840712033631356452809121822757322583059442468419816902935100030505350979935904830539454913989829109794190280521600423494044551153548859028195364308014620692805663045474935080671207847849783503625799742814730097224937992097372169330544297845804799041359458639809115305191361847545884774182805065641321901195924657342598885636178521303009737589899796836621086956427301725589164236413287141551915660430566234255875262569830303729441366817573169676557123371646372014474871770889690562886041902896823351602492953381061636907761795467939753419345173142032762682253349644020767349491156067732088808267601928017804725958626781458472909773999469507393109988123675033266362295743025916235920810983464807820950712033095439729407371339342851633565377683226751001052457403489511838021602149173883217722779320187224403578164116357808991779974945292024425975992750223836414325351095786724019368681637292273644658428021976315118593409148926080096856210244161952670260702163941752743672641123642188479916124221216353547784914289389962136650370070960545128923089148775856576598828895383174848943518784402325811016555283318944955208456871336132411442963200296190754796031469880808665483052981563602023980306144176817186839090019915585130717054176645365216466277658481711245452671031334084985715838120875861143897843748699853228355136340065742090906306673359425160046636814781608513684906730591287137455616763280991948070927505916818322413079585396481635040226925892044391288944451540925643197032577711801273438002220799919796530996323530116274043534318933837811680569432244914368086296179599023820593540148229273841763304094101976381772257191384762927954661146488230755397303499951077215532277562428968753681184365788096738503698566412606794431808413787132269455675702231455419999099047745541551537401665840908662353847198158554004417736097072089832126855662300648404541903077926421601721447562942876562012178649324026526666826815859697709354962557785080588486201995856115161855627979526150899532931468602749424712631437408568853547582568501271510568531601572739168998605329884182396253902419591770232259045224792978774680317642934447814772245562036230128347517364036538339009454070691528563803610635411809450253118189552241186970468411417550529450896051074278848365496921357860665133717423807138398390206746501950395739057674079253934509966856147120402443886124165807714105755846294521969444156301198773200228600041525555566868581317353841979709551714523735840927009170414039626262311819557718900698322172832060145121207212790512295994715234214434045277959325444547450964942070353197717836264111974513452862764448749063741597637328715225641558807493092507310422925778039875227378980692775265401624323175983177449928466113075521772344044326595900266239725933230779377812024713043050877462681003201904091770750504963323706855038332154381534283341806873903798226279906354387120192946813220398265949045520279992438473497345739589835037558858995922736578683928406068627456223027155312900619288088867302907940013411419251764727610776507805315615246006067206593031237217790434090562577729542361738385741433163562176498504205416744326083542089508261523785996239161955864714379897445148651763208232595594167142955170426869652852639859795414756272314354042826497286632900388594388996185262537400086013204604386260015476064186426196419884182878890616532846705359084605077166382349998008383478121782274857687677029708050909028850985839852326687124178128751163278583388050865807478074670865949960783896637499950405207607972019982953896629886005484345125241295430802434347406856157767394995333329855247076400765093216101494596889101494719237734719098328031806305535059719292127207407010671475664757527314083313284435419195844097676033312559179051205666100311793876043631474353666328305195168491657726958495059639442307743618160308003944892980193747163416447460909925622262289587847420285901242143320592612711293346740891802455952038969397679013124170487294238051301023645185080335554410990397012432331788947615302090291669269646422471594352221657289411314727080017391455943134733699998465248291582191190316748362776287655258068007822467086803657574228730273561456749367875619240695594008020814738537388020917113476155838382421811845245757856912945909434241688777187814939083315978980839476147203596450389423305265003243167865949897802109854012255772094846114015921050272882627704511755152158744593350579185896013018348568588093962079308848087684316555077489625379047477741973900230793860508809181170120927859083602657195287139798452120112634187155477806026686547133826036234345967500704260654212203621082319451949575449253365832564182015788804993502674194478827042973878154504083015639388554475978164818007781343484924250049667884704605891632404875045651624149095131978948625271790917876447007431874834588840556846560267565137905596362124721041546073680522410899886657018074627513437455176300171029133716610827635370090469477244734621905381551622537944466519169196756427241302450751034197902106237164699736311741893440400033028798175013428612474525256970137219435026867278948562628558557037530118606468058370241195424067229058293444315281578983741301758421200975025077891332204136773463363914307906018243427906999062425494632955274338017865347537614417266790825655743361719574812919504198701786662130245682490590614420189370716841403161549316000937488590583416734630112931413155619738449388061038915731743452880192154285234699838789750124158988257441864814140964938435590833049532929279542294298482773425760357461249179727937928031048081139679610121704708557146403922820421972436445735782265398054816309386997084480707377478320510262000167956119459888967683703300017377627867181927069681501040369714244625934786651848649127919412777356750666237426545531421868212229919716068351543983264616747937494650749956169574191390934687998757327193533608814277972446874217287824304461027417814243025134012339113422056399395271867289166115158971214414721160047449966565514105667362888622796871091289799114687387131852043470029380813196250611040561094685125962188849701815430453372450066467608630227701135193941842150120937812733075432653815960936698154020253438952337027890913008274029993464313238577782526648712021033580338836757221592426231211749424294300261185314041344073155651403807332921633675405367906677391323892365198957713895527666653239453377491401434251627150919232974421198554818914270701326197596722705511136051168879658952150172468639921708131354778133503843174835485791134106793586325492346024149052329833072588840676848133958613938650409074218673593292824787269305630279368870601230674561601915285439863872905776632234222171232036494598879395137667456405502662426674997351944073996201854862129174586757969091172387952878426826863725930539315458912172239562619128841255995623331469725140245522909515749865908439763194367866712332373382143500600217667754878362300661723833458575790890523604980216764683581437234281786376459464899542179110030797990149235881450703513409099801415524924879597847056694254665420443167962717524093738313856311639535687750255053544550817480152585569232435069606224548313973687429054277464674133378016934246664730878834379314197161357731412807948067324990274882063982261811994012133000989815838307760826594620590022788166290954659107548880722995797223745750148290758786664623873104933120906369101041166747648449075064587234047017958153417465069044690158732900293603885286532297954851864494633136181327121798633743488576264431319380259206154206874391026947154366773407777629540132550518196127586892345925481738885763774841410966368076491272329611817287958059277287446724397328360960148494145342427520422272397834817998664642307993326147438625621924871062640132139953375885590123713051817075466118037969481335486696018964124298598349542318735064595117901594715231178559223602186293217916733430720125221173208146090493040680895805949056518600592212020307253454467388266665503853495252100007199706188699742361581141341910549903024994711907062320250703572501612270737994431884078430863631216686723806268999019995538139409934027115431042576148571434581879962069382337329755828841367758134182096808854689151087676490044096574708353082521908123047289349741047582473453346389998047522005518462723000988674835918717549189206841950953389920092189624775388849528547844482347386476591947506504548432299656477782888078067087581959649246904275773578413839596389176616978534251514932828101199494602650047112025257071225148776910719027609168105688826861991036212376388976005549543317357943985727687882242142782335613103824211454477899171670569939368089054584780096428602244396370646992937367630973259702880711433496279567119749866510117745580767716791861418894794037106955469255707402305656322132926714061008622562952069880889309192444795802695115433195520836827301998421522769887633305962073104161385216595468857779279827487139854768619594029872883267281161991505028356288968523761009347683295747220217501047697023703158450714011928930114079381899172254948417823207566580252209563545824526298545911879972415231412596858491151105382622125891473815362545868815294903338909895478192390007346840862944801769765618870644165142547090724426311016868332923868869576055003348835556913429968096302557523804037286705900910786833763051899268684528109432653306553644083053112425758945407277356124418623485676538531532380257925742613357472164759190584947696462601867198890671741079006046576645143175485785451289149625139939141033996543657392779080404229456940395512052010577772957688261682269043741956798230009613737741112409165717456928434639049400014658834572376442703222932559716488610915498091179413023925271909779305633285269127991462057024112369789635087445990041680592910515565719720413851854812961458218424462407757483889573176641889567825718994859468964168737290939393057444397365173777583945908157857670098288824025370473382110065751266282763683698150459378152178124186781205329693202482909011771812306638710165817773589765165195722019091996069100593973219666565044320022931494233233757258120814519834540226238726614612632772875061311449955026028667690803878261297016697911938508977766845243420626164373373800138146480128130534012355658646658131035848068104310293933376108393051828649009117769379903323978302633731122639698399787432336955026108261404671027378542071600780027091912090443396789830411768234189351707018331909685234831673134825656047201251067588879773865087339407542187175305821410378206438587187866026246032370964933348195475141195110748004647897484393135038025016652589272535267332536723693044026696763318559362572407306198238501731023032868253523195305854018986462371627088184935628471129266638554767106567000904859197400919898174474025563459574062791346738690611042700507675301968517407625662653290564466892893923813293216526153150313877230753532881599027035128249510548320983992465611120917835614445992504503535127303662266335255210558854367050082721472176304684364800562086862005992900901656059496984201127410428283088626556284772162523768202049735097112892419558813892869743875627569090018536406264936368834275354200430133406698109108721773005635446773537116143318582482226044509183742962190216712709076345604231262014923693573656221471577572756926426346835045776480404028113162963764962129559054855660633498970943004472472060193208079876751819041783875922538313593983516398393732772190891529875276770757977844057235912288292980574252187675963383294683433064808198185870041984294477072916679209573422368958183246629921935384102619898154257347161027864278380455404017903477336556130866102476187247112134650825862089545123792989163835098700385754616166049976373351751621310966549176625312798776960636140015766513880063245613545967859468210517990242983157243879883652686857361782217754115809490333364136077611472441089309918365414533448304701909238203582069445040780302184555294753767084292767388626565828748632321605497328929763436025013658850653548006575317520415168326327028781695901726679132622579820505078290493190579411379777791245830426033161424607194737388796576592463670860189453112095350838645273333504120297617752734998707709221864638825340855724417326354240750619930474923294893665587651347343729285033176438870875313675349987800784749099779575934467075985327903979175582312521770341228325932390017414283971751324485680286876819331743684061779478588246553496554332528054719767683259778722041743251090383910043417220352952707602041021296461446066969616457469636753646220771739157601494594592226263836162776988248812564399908705349183644345026064882622996535862891652549582277905115977331257276617525494060927530044509322857504398623612774530522215224338417303514099428564758701958315583485211892441889567708444602881074468663068144815746558990730293707885723870377640566208658981445225589496637300589185099601396426284051295953425025617202544159724834205011424590931019162976100617718706100208511186186469851315910850307350349142617254834810722988073229301284515242094782042438422734905936657130102270343236008315376415147937844426089123856487186882080647717039871621088100705426127445124533670182899219491245584594121114490353646917161424582545950163917215020001272246812346349873010335689182124951876498031337581013933798507287743123820682301548591672636058649921747499469378102831402719872673061532324330262015747177354525313283764197850662488644900571051629593178253350405522224600074685536900445270531622784232675934588270180430039206150024600397442183307899549718912893784897369385086160856647555770821756203208086503386325124882927074225479227361139896781684934030448440505054230433944527163388931863959968826709755740503618560182046849909154029010145939373701772635203353625760641497761447316354713649275682751806606628389709517942375468027951574742485502933845803894350730999479530813570831479515535704268748318177862893968820113954317323951494751397269313545262059257753305794211162546005147499100318210729237507107070832393823858276127058178451366877926580796671668185615138602522397042000884483423158388870537782905988424626491042165706148735074310672267267809451836614250173654591371201277306767855316655524385700674155363941204701429059686693976180633796020213190936986663930570715983043909396814797821447294353737524992434312132621053626465573527012919098576926348424323895411537061983266475284013457435076498896316768611829272508930524420650112805023325541133424138960975375885008754383745402893171404694766280587438674611951270985213435254808374330177057539677155430383150861343914825142155256877798237038714765026790839973130043595295640682941201548824621791966909801475682215336968847335511949639292826991267151012741707370422511008606887273473508808722998971353951498217512669967511446039304927199321793597916300472332601943861088128492677264163012775256432460854594612755763828580713112287587896029729734430679215439183217802332563514599954565711633951895576166077741628766396008645645952431762735642904980654098320093036525618021682506138257556919644993606634562103151368534613011293985359199075984554098245988058288581121216807666250073734318383651587728248719703510895448150634504813580160580946533429978725206100964476963899307927988354255583548739800465222673429989799713412466956219459268247216611890777055326015609243894632549608272919669716875979320667103465524200275203010961724272724869927771960600839245667314562746720866705106267183007760471038527576104979151088649463632595947681416028077903310276104721623881492150808622962932488936975374393592171200235302548578937719682108706019072005017851393760471557895283054835040299569705369247125123999395536524729645255217221220614114208151072114403492630886182098517395961294976517069428296305828840034743223127200527154058807772526227467623048742457502984831383578334546924306477449933125947194266924847138014199789419830283643262047352983454288643270480509796233016797836507402449919429698574889140119060519846796380376806181833171155086789099257744093564237564131215462862466261352980801455917309958013260613510137061026124675355077698192061429806559997007677254823275009621785137840988153271138784959160889283163821732857810810431425917000001268184059137921462434215188169112977656110024769138415107044441956409812588981225071028354992469936678220275303760249095683267789427827241084192363540012648752067644179189676878242532876110902200960753262371175144881662008126860222667740561408748363867392281466622723889748586269563644695597044219364165948062031408747682912481913185306035333484506555773953241858725233383557746395205135744687939136988369181495610276859066101408734505493397317890756865600417241185117690294914232978294151392833207162067608915147027131249037361129167115930322274356782703426330660555681897425371301979896867664589543059274267283093843537010758620892032416295910864512098925071408379113374397058212057149762693900854962856863649066284869900452678669159536287858099117913381621382618666141378900279368787631876079347097904454804760926788299021372120132558892342632105410436001323544204684510124056764648403772908809392090474179020445545012784709116567814949886360077089479401824225181665897045333946100110155633011347470437070375885789368463206400533254735024138738889078829015614812701228556926622353755420012709918947244132053224394414556769246981842396055197624200748614777578846041312689676416342425901816758861175380735689831863972410838987362854054994901929362522027097028030125694521199064285263490051785778272223903405201011880849768375098980967753480718161466412568632627280291287660070233337199243217596906746085070104933953575307152228991760440898164792372025212815422391031028130887367110516484525414905360490342004361457446243029020281890815802871527065091448268693558096059372410460526386181162975577244971117242896615322434896666987240523409346136528295434040440238817830765954152844907849115797065371985365943881514113281926985502092584571247250751329221675180143856523001277746849564592420819123863313558116298047191995035062303753236243635782368711555900851820815316385583606057839387548932330272424319451267171432256686390274772327467582152316828715747449043785511321234794325908587400999070863125280894731741820295867464881231296330861237711171362633204368190598707818574504735082440843529053629989702909994595122361522298632884587437988136380921541810355428027958097077924476388593010034916394958486859320659888589287561276210390339570371925912561123603979899240190712701729384761192034824061498777365019717075845392244014977626481181487883256771008089016098130166759587915249502385124217950122227913117278483062458522236911228112119180736404737150353296596716109167850242913143371825459881303410712562531881968544883836919308542613061354231444615868628268907120512905375189728510817403271238895563222051984644061871474985936176053166877472600740032649229835498884791541386902768441685068863330503977214160486187569387697792213670616983516051762937003730072408198760234941076122838198689005429979707043647085037699197956380634595107713349672430515269763589540046509004175000745664189812191493668308097015553980019881460083735073201849518305216570391719152731913669874988045712836530076257480326616649928774035918041638708205985354250952267957594614823272849324554923380981932194670597951084281520751162468568581025061298912140088973148809278558313261864849205831778518808845607832315191563839244976019473311862585646967012814116756055554544102556250610037866947867109126244865445063803037983541910160609954782684099349673357070228676169199770133991328409552782495717313507370375131095334234836745331569218298475587693931425987060420407601367289552625237833513035550210423139945347691230048446905966857036274396960776660963128323104591433232795861180204034079693254188951925016661570073779444811945119175801611809447285252196755927563159746545255788821011614090496621317152520348269753830121191149637892306628171144393524782519786712165505030793059855796304238287333055743040497699394580993978852284897067371623197186067519258490204670823971657162639298971744289833449514952487512434619656885911005227855097452304590210144394499696423522933119441324076798715839788569608298800695018386495157663831165762488140237283992625807849269761535838053213133519623564329218993830713511186495140135979761885070824536984831394356501264744675349771298219694425831617737904652467697744153502299750149863050079871719393929050684358488110006190082102451588397123692604296162705639262910744796768155334558156214491917176135259648025296981654057833235045347633208219179359059973645469103810322610213171748823579870201837115965511024939510845974399555880052620886586229164489272510118932957469814196753398208515598923412945901572907404301309559130513642765530226692428779188306001483117901401597626844988573607262723883503553359364998598960585567154165369922645235717467485422692483770675497731138940032946696700000661506673210952380250471523106264016710463404203141991537577924126017402769310158583105238421568517904138099793897492798746177501684264781957490999645777952788441007809686073055967037763932467846545491510407163268831994781394500754519698846833708867587046393721809596521661617095248719494591649635145636160569802729103889984742531461998821480749181734453133089705882327606256854956012539714406212235996525280819327650720126873885820599722992099196650092893798500208219735352656717636965694516985156051587492656047465887959690175000944982011616524457688134246404482730900228425421506189258680494839837240420216380772181082498291831556774601608784877866963440015586695378540985128102666072881803106771521659479112204128065358001434574125180662086055021226348290695858291320571834255474412241011151619486472522357073803569610637788873445041672556223345961246359269857015930528228104783692736015191199700041173843965444594652667983011805422142421709384708987777147464203099271374482016716019796997441557925960399697879512093328677370425222306342432206586790095465682312090611816081732662114659118461146581709370535481756965416179238049348902534418338462909989564878637764074427264576461051742976581706651163720278227005849203234966369310129581978244050508652184998612388955166471831821038344169392104542994834177730011699452499115284217585298281042898395512943332836235204590117922379925980228864170516965985812045756946008333842532040397423933810316615953194128996188688117842012389279564508498911326800205987531577999656760217953935173415076723805426243673223588980780472423675378433285083529379813177955547792553301745138749878479811853410166100403505642921203717392463272746902515233332562525786023009522128081743902322679066269639954957737799766327787238347097109468210841828309263162051961021673456474418248477506197447618227995590882690250820346438490588172705206953325869545373493317481684455253869327042814484360117183204071816141112254539086355196969464028923955294451311014031515665348036013896199862216016229728894200984381797540341187493255164261258962838870048389810414818428942618117018006982789243677482220096050443706015622751299055646097534236327393872609338630440459089113080580055429586802255615079887948857866727757443358369167151082071866227827245193751157664892621785974614894227783031854424419830189400886338629622108267638669373928023973671554939973487031153515189589927234913476492421301060520105838225439761829523641481982261488726877638491555680556939421536635915216350453024839204669993906072931724619647281638385099807776245278244858547964373866575705495605461016257291455775115935567502756305155483899939580847015471018428616880234865253192906240936643300131680347782088093032638096109782960359166247179812265632207135180925663120389158257869266141675915988681689997861975741354806404363612914657585725764719623024280036948720385495795751873415659086076333008821302768946901693252888642033453580513814887464155640958847477309010406436446062056906129831459006921729035838989182289497056877208294824800969643240417304435214275700105154513373464768447765271563311963719435475211720111288670371828912209912355598766124932533067400887009270253515160598939307659704165192253980948212786837208991157289187923757448996060054971357891781284324593679194258405521066713192101023756899084961596128069633583064879662055345097173776143942014101103033770246162152136290444279497722409947462663290744069656944470590581257138400581292824684590025101370086388734276244993618557488913060015583512687301047469667612828656181389088941857960653506561566276813862247560904340145185272750854594823827970651633863703347565682962210640252342279352497206527236644269526605705730468051533754613668700994795382727841064741028046648268691578769126858250504937093248611733732186724502129739253880414506164863555111416368537520360767294908937296150281761547566775434397724181785204578536172552196631256793826104682082997126703273579553850675459884877043640599972536412793796975941283520460880963033405569502276197205604643424611178115115436399903881403772937955183716567821944568159246573444006088803086360693771625498910610177342466917677976906739594077197746866802885355075725660831339648334399910064021880748101349442194164467984709030499653244792702201497761011961687449490932735478434665390689303944101287824404747004847429903186640260911792435153806290909702706787925914916279397470692621546019376514745324855004112359017781986060315380067193628616417312837438907144708780241196007509621243324906375688464659414588041281202415308892947226879273864364425730908353981341320518034933681087972491113417447566851837398961262246110867244154035242916321574076703687405269627519922113595428689510617666171502547384854192458939294163572442159194817217916259975164720916601042612964075628973475100523899976670179926940207580918588448913063532505527160755175384454895555025885122252653900749357310112154962635998126505185842734642730576580378442496779487919615578874536725811067458499373558128650098474462366215447238923596662870139856336564006745585988691086602597136943400751887173191105893812531207738373132990431706371237999659064874851791454791542690740856645533729295779360942169534849486494947292412272310949782871622179142466627804092744624508005108293190957252226735559976091182536822854471563797314282926615211969289646507358977552023866782122654768127940778141461502927231471302443028492828280680472372862031617715323715121867132834730445742012351791111460418272332266966975024905511841486369459427677312681727198881143213768229114539218992165864252488356484934453678787600658658306156684536474540118742526525092453193838714389722817400459818266975863430791308432488566558969710521991534445559699989462477830644998832026023808631156729521334137468208691393534641491434659622568910714366518942825895767888868813201762857417545180633122227183648323634674803789339967678430809262232465206485587098979369896681123931648158891573083470715969328915970844934865807670683387380921462610223180888994612234491789030174504163272747316518700780816598361766969483840787724776198207343449946572359955358499095839062927488772927443866388483759747482879596303673679799042097285155305472027969751532192499586241529447363026639429524040087252707386366958565316972480207472395245820151859641689286085247503934537931101271164131228710692768677074572509664934012286918831499329841020512536847624555579671534472925298539887872183989979435570090346554114553968459784641581968532119615884120112651021877082672014576538529806054376661503830732395719279582695691808886576142437247160281615136629656016664789891252410574592131920164898683837465090053570061674033330181350649541387644258287888434838917057815578384523795189062094586853217971124134824538122730771425244645758259679433826404642911280081184549326860285193304490510050632456697322759820044624982204847879549255497212345556290578856534346668982148842268550476869057217100986612743312934025419587842722746939502952112152308729215062443041723786330876019807476743572678291241122545583935894458978615265137516191632181382306009527256515545246467384505755187914135553890010935982617413431240766560321795288335046421667025859381497279329015493071152944190054246565578751224250718619320646330870651443103865267053091985101783699091513782779045662036859502566244585435506258591923998170514133490698136076277865325002194216012500343641311974791923481598554006953081402430595882488865888933002844506231362326861186158429960260271004763834331362100708397601469108074254943028333339082242837375563535617493078003654530458197452999813270475225701267471544596000167055160228844714712285810365458351786148132541862825462746542412238977797932844232784374330468091744834133688416046400180252924753914280592459833762710298250397245834544961188801478089254041143225282945714920027365291582236077764594967758786970461283509998843468410430195760131748230278747847543721629892649654161243044727397122839542325694155314172284016341937942104586046495566067114253368510249907560724213371675141617801992974801336585377287331854998323874066210511803346023591665355531012447508028678179998654712533004505480806783297971161578514917830362365370566361073543827686518972841371773254640356895786739456534926645942275766671659603550645287083624320274975370627605904618834025933471385902588933050683818263028556321399633569658743589566530925417119410932007831882281910609968301223480031706773504179563593588507860790751451185417712046248895903880510160690080273490674607243722433566218226011093487841425567849586876290711117071609516037818787548223738335824144868276984022391332643693317213847184015157130117975429235906270513240667289404526738272470764459652689769239070261453670923075696056266737959747584262568893248666268625121021649213983100181679538876923354870471768187876653216077467488813743704017156484639575908803433414411757431878469167274919881999644940068117524732616943502963905819808483656242715008477554438437151341059450154287940154341922970849925601833370082519218315735393936292375707309941151024862641653818071856373690179471010259111251607661480815792807381475022209201405339061890013683378219054494583303560535804166774350084344932551502641962046906893193419560178066534429854853777913396569948397479905614301267791538857855332127123035806842801875517190403903515886489338026949217833597121740697870599592031385569921499728748648678413898622201954844473276481463393876207458582402321452181963607023332757647602574052714731532806277257230439410421026750565070166989593457223740904086057546383012901984485719645596349287589596807837393990559914615798771774291039422700506176386993120874719120048007275124412976209454252614837256320536796349222204745157797758055126488108871012088085999362427894026351225902161033162913940410465911177792292163650600422054511539800474212285837715575304093101335490083457868612572984488658225736232423599020120548853443941083036552305137131503008980387702333872721890232939228458348652631176167908168218486987212934972984303221370188946630585578004646060066602073805259367823624976648437058718695093524693362044852011413366369603749698974768764626688519342195115462639370657311922378588872682881708304592894931492432598316226562627691666425225264177048067410736496805043971534583721305320912624896071159426917718503211640863033061624837168307548084387737479510840404348758304252810371914700859279001619606828339429253436805774485130007414046855552852258544395789620032912370796020682793631380566790998865564460861318195786425880818295820167503775737683534235884677394877752447455434924032138832958342908834729526383062954840595143877501590639140263453975684839715045988457556939241521103955304783356221830654457514245144831595858744679960051365103653894244912813147388256492358521285311737212053920428206273646227521707553047844481226377783872999397204198093362411961255701179148987170589900133003182142683756092822599953581084615389357450915608301160290002221037143903849788558336045327634477317623500660684282327335961030337537656932014170574473302040239510975673932359210356695310223983881444417072831473866896073160269317439348405181637526325941627419134811378179568109133456252811234583799798851395147854543549331770670932576447503384360527319076756405402270148041235157329813530037898849048843526860868896694572818862142283713441577863495996393331603458014554355504228406146045579049688525377311977729950865558581852818864592675345333880848843063415459229131012677322942315777824940606713473139427883614791749473880900579709960912988200109435836982384808918804248311221415869324340846989016314466357388138953694528135405518290741489534370347962981730051439646922879080412966666163954572995893759883985094004319673202655798752760655170043348325950108992863224734146674491667933985868703542481288114773147597939563966930699621192072336116955386489844127029011601984939812842020874015043807196589688578544311332129103043338357061282633786510900426238510346267028243671058170351898100354416356592308948086795715257182820851453159206417887111746813421876226044038500801875930614826244938792890848044775224236288932788683623799759740444011940429972135472690333343616569099734365729840184178524101761543206838724110850687904119272801387440075344115593970698013842662970840218157679975834530914108895719988122684199068618548631550531553291357670962000149197536226389530083570927110502744987769298019047287233751156545537951010860041472620195888343813785665495418949291494762834779296196029813635036934724948220892495806023111888878822155379275429708715435509287927184281128503908504946581978936400902017863697270036905129524974925271965724114719726132363897691355365125759518127242189549003037284766101390955775258523539743780602874209134163125585647275321701921304263863580925266177168621556240367887541803351877071221452006668482016976601941601463338704788425460421627480739553546642372445334927645161621087828764387851000929854341102540814063509732830503382094819191088725124130985094385084270654996394302721886400964986427303805803474094253607754878536165331738908886206766206222498369379587654190309105688616755796121088755440560220110460368186097503541084524401220201159902501070335935571295391287102494901460526619202283744319978928938173320605669767501331853239775050262923390560196489544591627617014634390801081909047100636313575532484331913417357516165568834434490143780391249918785743658445462510363047796096376336875273032292942105459174216855013023169311904502589315066319888102887170242012235881727838050563367876158264029713144663282013862708271836961220610502564060232588996797111422972772743103980297779780146085779453224204543340378367419129165462663966875844115373197895897024572591384876593795518781765329101368636228233938693216950556224932279074881390526966849852005866119559986510300085996741711157740969710265644439195382182367084268399364368864584260053095078794166723336091554179096889578496381944689867405631835163597570675906481081381452473430759008416045998617197614673078723945639125873379758617483093477404908200377328923866027610491431191977962448047279601243466924580705347220190988418459524017408174145509577504647781234733657127827583268644487534602884785344866916829376938573347475247923294195901927924428151974745488375897512850344019944772573988233321469293135106083487398389781185347410781656554349385538368067435874018978519392173657234719916435237742875762138547901529812594322616202021458930721494206846724677037924321506616952870319587422166042593230919182310322217340668519681890859166352191946753569481310113144215420077130994604164695397454654372985371646892671218267264829083771978467312113177357111506050890167567681311220360656854385682454783005996638285566505800690050356137426154139748421272960702998201620388217027967843536489267876787577808998643733274005515081343403563608407772228294510108013578134095750884692666780902800701892904862507795714558198069573643620376702563138020675450177948981497781487385690269797673592725484786709691576132841456944141018233545822102551483450610216668257803497903573434706412888070296162598719681243897254560051644425749019032901125587229322759286908817459893834250190361718514887800616344586245836681461599862682629562067260116548522075259319384193363325776049352753890154725499366498147749433100480868427428257834601377625291089598289285921379027391781297507674757396980413404617144426774891700434382462498001026719004877235272109243894275478361509943127269835265557968071959014014809617167597802952621842512107060928304056484942883616577057423911518164995799492553110712341305094457877049609417284408703305507888942900012158574339187867230765724474492599529513104204948491873487089243372376305994648516339677052081716030770562546787241819044162266391573671921977319511770768505592647344765912226053143308995766698502817691388164531722648671378590011737368842083040256996675412375442530232609358631587513590294857930854296986063812169152786929909740694906446509370142702117015001280542548621974045707045964167951377578565121184019780456501531085643197504640917170149326029717027576538820719182177775695045847569744232172557066478819555547382890156589461652303379397742866503472733747687930925317969898336743526155708927760518600607919305954363374142538220602698880963715573550820590441332182727055367514301443545454031912481881739475313686368735380803581441881504104821164581024373734257130179089820092286233439543493996000552181349151236331503150107434341939231920971407141723254432947664464249279577297617130741677597351492305581635026288086143779437047811582159225389908804507211067283190190383568073820413899332679338722107584868332095374501041260138082505974633369540691947177613588971981900340842439453636492072561954049848946155011639920016793597723276719917681668224538046141824381116726723071615802831495394843615038386961517967176747302635612118337414815407792041807352424208697299473645881947662649715614355770275192707759564524630888627564149020439252420675563825628676390455105937446480947424567384703928326292010296377327573757263621758860509478477430092706329184117725483019111829308863519389652930660148538613501350437191035644937833545195096203051187157152703818657257935987725178342619567423353731638882314506666081413453078577070861257695985286777906952173095155806480471553359290975171550968383072343940256950391022934005365963708617393103344072970079346635408566098338212909753969841370439813455594112225709502347002947096059368976501775364040857640914599731808788714620113800894762011794059229960731418031743717450749792247342326032545358516226652797083856654940388960607334527741762690217529306869518137120543603939308278811767025391319857319200172890079129251372902159058362649222073177427878396158782534478528147086224311607082807967759566298980541105913451030347730129116899745890149643672853537647886632890517830510753661136881697865850146883942645895239663004276634033863184915607169854249317103237380946098022455290826034618218400506362185370543333554336271494547187241961371069020209346926080474456238575662666161139755457461752917194186582562985090422380425842106414367494411889845184899662814674495343607017487082850581989357209159921801808437098934661047748648222580003265861283164372242571073609422344310992709557081347928146194294889412266743768144773991278971615955561107199726010676168943250952813258405751333688389105210792945513969496714403187948029964167751468320258980756074285066611029037689084918566569145691296431589748893492824718811800587045024690270912029398972878389368417687900368081594259693884147054652905457458888161579487441908533081207290174918399484646765031889598642633931692136116254546140292490782430681194539812042773946663056966594183471584594410646688811013942705345070148166746731109750625439741730283728839938193145504737515250063288886174330323150742351781035436693844985103043053383267008481932059931273294953876156067252170887619081740193229128176844177575992351789972139512858293175278457395034947877430234071954280340751176362045284393474606607144033918756928677737949789159465460935867104446625931288137687704651855600437903923585727247463719240708654247874123634588366861404764583702720039606376529970111005119104996452748222023557985998912118902704598799584262994421246190936512940576517672321275022403922026213156050738834503859727286869848257840071591214517626280068876651716936546874045354897321905321644304780819867863233155020109408365844699358136160699931501412392678537725412338316296003843006063015671354310272349924102962271948610493524178255194891930696715511584321515611036518292645597903882763998489486458883099205764343258404298547769208823716275426691118835172316220565323440801492052944781203674495333375914678949285592496987613711677037180515175596630798144402838586978322447685609000022730609525029342061433976994668187933323853652541413165630167463873596814730852957875180871467108808918955344359007949030435502706396690447838789325802929509772611948752125496882737640841943631797611436757331453385113052312403882171359275907953203245192193520027494737360383511650126427288714754844230966290658501763386177565711511479053116011019587878761527602048193141596564037924406268224607849865545107989387187937948913232152354368599119354892887417272299167869660142377941840884129562298654767934533376520073942447147888651448282035093878630083153238033734043542804482126867778265240206719088336288274022158829701404211478790469673732322978102602826656772863042677755227193415204128360483400025003419250228415586207736532127089568207673132066247195515871901649704296301140660701075670819780162502162154447568705358559951939503242382106052828220973296947941402529712554542525073539768155860023326514586334104504911448415788916390072376892298959648988501145006332670407421624787495050373111288206132811525095574287733867034130182944805671999545353459708886785625720744939309576281828245165301229969666861466891665626774156990421935573450100284803107359173643818787594059897840693340432506338880306408810606012962451908561914035151611808120177596439668088645937674574868398199874091590639208424438773035741058599915187843931225068826995859367279592855214424321675460945716297463244715053479018553908840907355732833255741412853000375213946761415972155426179414219205621472124889875970462824612139583721312844184374776773260954161895359884636715872500857019801558895969831979697012939022348000572464822377115576613955128066924002966930373808023405480571768275945632244627310839641621649823024039491532111085764129828307983038420931672834695703248567162930476256981909377205768527135774822609799040347850185685107942426808286028406987798753587549605033829281121812497921629075866030922571991300891085062440799377839860476562470176652791138558276114408396899653787201257838097764777362573989040124920047112268759016579355026465699307128827152384871559852289553710828656487275498809610667863473717496136413595414408074066664142143242932811858787897627041153568780664902575122485507666126631775893882325553252154055806232733032506866762205283983910852814548960574932667539786667877314664240361535311786555713975658607833664208676271346173975614056196971044179337176008298744072617139058918328083662372427638556785536421346082270981941992242219863122564589318008644429274372855248924147350290816998045045577923344788156301137103938829411827531530660348504750879374473120981930820204882312640538861564587929641991633034076326967361319474595300187028552549978823391423987412557210805705883288765461591608455953213739001839884436152164946421238322903437820009712909376568855549585698124225411481197794989924369826381129032482806484554690419409858725376796630449178002918561976681852123424576951488917116581365893818912924108716274517700801906724495036392003588335820179063561656878161054417761999441663920343704570037514216641640791046937931122777490444290770474970000487775347554035520148887321135986879727767931542511030975718311643499907512439752228813634148998508206680807200921657641760998283253272127657794053090674482193555083089750845843006644642443251533192573339521006464375235356792411109221205045773753597342220128160044197577327254255990111840308832439274541868567772116178617428713498178231403063894598133789184072187147765163139830420819929074238917518500351271033971505947870149711780300378782756227199220675547768800385874730268333994534181922742158335678749547224636039191754716073329688063912959776033702827873836707607996648290654353466754830853593916103169355581154946428122176216047342948054768308401968238942193234550695342408825396844725921080865465403754705263619995940768081124015541344866898091702971691198598383336100755092715836171756506576491415279859745109993525772073193581380691145589112631987792952215986879531187946643822900792767077205300616981385810547791114925082216865135245766496662910509407065022237200755366060153107852383383090763831048526702041276181842276876914993530808532789403545549903805877001489784072282117058850041721692908811559285264541174071715624077045023489537369273610782895200807694999048172324126429114072097747102881156436142489184607690266476690502044507910001016273169636388626206406525754537866303130756720056745354398240076885923150174081299232044400156308976847734687738462578854399049946374734607438675117248087028977626101015002993711367364219079485339813564138791378637145816289126354013574289803414535757104324563996012955728683792153549160793540616785752101621633879499623200097071843216134331267663178674862216588007442884182694020406509762353416842910667015839731899366866618371996573309090979050289975083877124796953331321483530161851558384019757132333150238836205859893582682688668069041618062001301397766556931399354998352100128799177280882583611218906633744176154936234423125400618503922966219724095737594959315390004248550760602263000445105619884323228305230029319619184953826124287328335589998523481530558118199275537917042446614095113022647499170528210602042243560546328956469975853513286472066227445562281202661011182490210048723995873351093464489652548885454866552022118803417817244131187021821580930551710547643828933704716083368134862356796810516429601284599426518799440063429393339523583858002025400499796093811962700736643826439132127420676400956239839539926406108307797517100188725692528003911649645284021776330375506475473050767046226629423828454138696149692907892691302468749410750989588233580492834472190886690583671641324983108077281943323197428115441232200943608177490900848344705539214066555919470392612452690364835031461916345318593435605865857467223862419373067672818769709214549158988119753577778207325828250221328025011008533272646415043039341528068610552923943206538730593338473360321187828598068378654589495428139129771712150077308766102229051579092568708813262863001873585718560353845483152052346138331368565495616380111951401638245904098903092293989545101485204128447946783838534092205287549096879381875896738034775088503361861420031217259041080596281425381814513436204720405525523012820854956550227970430408983241290721158061040038868415676458585974118338516903345677882183770051581005324875604906545400542970502190161669465171007382541285037365256946599090555012104783236309595675749532094372690978607475755581585550467796136177616311532707505484000529292139229772574374646690143741578501637930065370800747527011107148374691110228193314956199562163923244216337494661253986636656196313080868909541038811627400322131189673153652898339733856599680168766075729641307669547098540008271293599183808763578556686759401760308997438211513517622019350043004281540086468687310132905780104938607844881029215592224061583716313237592117696872485490108588806484810596386391742803411540583138062680292934611844634736451409830103702398965118946011246774202426657830081011689675961913050959077349235777497055501523261524983791138499058167550497623847203182724181652970381920407335695788909893441270624376701594590832146268968181395981184499933186123791600352190335314771903333130200363662610590341072569190822636406396954157925751356926533574162199607568664409240555856965960505503539494917486857606003320201621850960643241314615869154179976543735544268041738899634654375388092800723065216840130377461910414253985861207609165610645725439364656295077557289761869851754160394568316196841029762431279352631604107997940062415602508150596500257760323042404984787311255417964813493758748290484154274819564520062845050525903746896966807060357984430977285064271120354331478203791209599050882641222108019251169947212244252800096530733024132035778376373888563129442808725689369588860859679496034135645696782917644018303000220640952640431720301926073585852822237363470506561698872477817813564659726732542552388581214209481423968150671369050853241466408395367055780247511809973848996928773529271290253998658395821015567638902775754674569959700835771138391867247941346512403940598885991794617773740360851913066791950925322722594956583018497948299235775910929407828130909771496968607265362755608116997720001953750135459623706205951723660171940516634300589482773965964806051042824340554216349211000727671430923476486470043547869169041992589040751037909982837996730559177409139041204501536334557998014765275331910102098437176801380010656943468107017860888378788268437971654486082358667663489372434606945223993258224648943453928799451375533945030373369941166903683574482090467428770463032230636511003157680239633298320720913532839849619260760766161210924528373175268857570461904793279807008178265665803991568933547818715323430107962960615698991720486303746365086530888522133566248681645136119879252232968086950879348733228818333884094684067206846955186075777209964828278451867153869057833565904107829050441328669540164292899092377929002256549723493578366456316227314289337690073347218613098107583249076257738659014991533505089605727952276953314707960368633204439071444053378133703313078937863231343040778015338791891157213434007511805321401347959025234712130224734325090786712998646107609358047634099740449601826969127120724098740613586290567257431765484184414891692096068046036328379717731727012701193626857817866772323225056518956143427869138122853239034438239571595747456054494761395320310673944207073458094625137110928204174949475425996901504784971553488614141243481715942979606183614057771676077782195221580538456749520908030707320749048263821695745879812941114448451297809753465688629637810590221147080281227919834401211068377038480301370400879739563577463483739586792886236977635014374056249516337763606031417205130505776337451942540684608593150550404475636819175471729124324988266503847563700188927104903722981642039973881685568305017445196053352991787832068270577464806365289609168511234114525864691658357421985591727926047416034569829221808431321465162860379250204680349208375966904253857433470114695468061061664425219712009597999441138195426345788374176923172543447211227208660281156068333787338595425190691756366772608315173896077549243492233879519733704624906840021528252939720276333746174042429083770446454890429631848398443351766245855814247399847343695480552497396213967269794594039143529279197990765191275135901539452586656892603252164232689110252484451053172202280051600497464079602697017731566608552997542162740025931640965718321880958937157263917405313984397630531387887145582378532509477299925893106448450761761552043220073912116796263357926612540314339046624742876378393449642723724258730812318691210511534662500495947049380326062914986157634929041589050913118223615788719081209397822478533382489030181022424484887236040090626668391907170813561366306474420597388136470347454438015806564955182131431571259277002350699292073483469986160432424286540599193787240623686063892375151166806953077379668605393330594977775625522024289911098644990850739176027997731824935705991837453591218123202278869915468451425846259320462291992085827255069595176120294943251341390231993160365003876772363719949627508503175129531201787390999860616375921180715932468846264831215274036516110919058921316694722315044957885144220031904637932104992850618293816867387683994179182229916902238643403409805877122978601373466943029226928650542270162232468156270099016427472362680465400457623972319519151867584918356508749031730348461723063888059641702514888296115317120110512368402869903455543498877364105958459063036816120527629097796403507937906332534627941021208319839598841205208494724971775434119476813955847271303285884420844759599853517602026475171623514301930938465687564702794440420626063110258172738932678529179459026649906572102874808863647878157911107542374323033729041395485164666538978098651660936064835592032220519544527420294205588789135099340250848706045138962199310173308145851124156655123131725981968844126200980174106429088590262921163318819030098218169090141654102085135225308109953445444290168223991992108441491396017213780843947275777034458993503177865737577287309118423180408901277610082496694560822955063928765153271916959824266151277156259689983684057396631968872856365022403075420656656492029092827029242424762713775367808395615395603692876754555068605762807375895857478673215120902729332693314148480888854765680959955570581860274017698294121061962090887022170291400336886582043191569462176964201955015324095282315609812896856411410625690708936757593152646993616803450478612516114393922550096969492970965185402786823569422238297726126005269137783681193068743143867673618087770582251496401245933312727876845634087508938668146806206440358418195114395436270086275937091759351046028399066427878505348576251553502247445477012688856230008990747316833407448322933864575826901464744109499902428910900807598548306982951363532876893546426648138571550148206477102764679038051102845255905060793508762396585533328153555097001172704943760224579982626077300972431315620230174723818835778055934821830712439993927100982813230036516857687333489179844431013338701555920197087527271967560314177711558206793334128764945339609222922203795052038651306158190567315687308405014419820597295940349022221061486352889977119572984301459257114905178805259289496072485801168428642673081722336652988850881823157612493407810807851439400766102851036756335154420553006717681992368321281215196669446978249538679795914062831504269722072886088668831368231721891909879546076211322908601339167558287698234405375936144774732561601785462030646608397221947539372532511402050235042251794377210574466539354635586581174458301378446754303289267017627619264902265296009083300091908426523326926505579647639594214733035506872770280518666582190954878171265668407073358651365628906710187215085887393272753407677661453476266894861455208940723392434377058988189083175680882779264999756000421564447154954434044907241918915242039561414037337856008242006569597996979742840673461626509787411046265169630590994975831698338548565326967558607022541256677973938620769735024386799692614440059616964172622356706604536374574900406538536420482593320240746629090730094189708049041979618056738979115327682714187633686431071387921270302963827704863473012564357355623977730835231779336032574457594673909163420795899543794984633568730295102257960952455577153115249003581324675289051393454172586840979195650558634254696300147610177722469702018267535186424926139045888640062846784571494688036906767843138188421954751516366770052615558911382030547249950770201552359325527612753742343675791874092231339856655079064246262292012279615392604662753473330180478299801529973426677337499367859318565970891172690544550032882748916474171221042224951791283814076080068737402931118182427258627335854094392356564406836135355297677486647694896943883470683605033523232958293330423253544125398788259808268777592111211489191229794846050583148214739939841021799873123585328689902513567479019937632171965975384028430908508266844496220137027409508564546700457058320866710296694266534114938601717792409151143454934754517123374898805604078950160923201121116483382335506858030260917840732897549591663522985722053058874106081083495071569362975714729901370715150688702687820230164126434805596681902554264595730854037502543721994992362731612723358982851436922086225370644920658934900575353507263422006281819837180152468411157326444609815622665321781108788672262796148043595079563722804310674234003874927623965752862494274677239301926620483542214849042267253144542524173112179590353084271017310918274435772343015474827456720810678057792749679910307193100231683486307511918297945917075596217903165041833099717408978907490964312126010255909806656785014235270884367478116266716330383036850163360354703445994379005586131476776982879028434802728362212977483122650889943340404340966380451423571360392928348230207212730556185855481034217781763817698536990850389769181835569633914186207385328136137237700466126670006426141963821245232151571469129881491467312074826425734607692910830605917018728905364387771561152725656756122254750879972557721052229936809654038578076908187476827061519172642991418207260116689103598658859082606065520780516117590222099236729006582203149497048346517851758538578736594976051507156578320830233025589072193451282913083066511537372542528490058509751053770518455925838420627484381929648365274555237483877573722506233950320104259032769436388884547315164202966304182913635257223213332469470274333043278551668828815824421252603414772191284039247962802545603443167874228084984445170759131413747780824218354913502408961281759366012282429431599172327723828676190970092349470184850254882341631704459815761021757452748203492348557600125261495419553187794595579247957324986600959212096053088525141699043285782415346081449420757798152776315249965029630643343411992044374867622144372443156979441931414916678728963487389691483110157804439355922723497310371668806862218634474601510304062526893616363008111613596049180756453268394460770336120896785198260838682415111679184425879066014964118655452848401534759543472341497652479137695889736933697002222911395608657215422295988845133473908343015669302440488239068502085118908521708630448168525897935162500525486497651067336520602524581910795684968764409902481710550784126239963221678451639597305938476875316008772763955725613380332619360412682446302340404960704612914019736657727997537166542330487258297848937324289737032739544003934016708153255022957924624860638485001555512426866479785858962133979140231369345664353887433943464934734463768482050002520934903248466205525414319219753477192337010752997193494032342915803902560732630826000209548430050074709108182105431186403754931327522744968076788636966482225451620471201506795886874728193754936076675386425816626621295625517446509898690763648878970881080847430145873993367873970056509335142315324489405718401941678959665437235203446874882181093632224086149251639946528368014932227475175414005986594316159738640880008104378397739598279221376473164070981100245316376386078981144537059078738146501013388353886585048188540909672810241322057314197053900621797207007221141507552411536264221786345717737463579032845915891935059716917782729318525525649923597263364126581921501766530915368090793172758030565109029777915032665051515134527567016747563173295217601505525504357286457648554240527209256315384480507715565930100331093422310231364173662542148757988366784389478572056644275907386216482893298696716881666032717030463870220811751203913297878620039435246685122985391955426374349410376612150194896741873127756105215564874477345533410117025869155328948944936504187241182058898477380443506296979825034699186549243173994166933860835384487041228768064393546910403824330395065830020847311095472785968670490397332042317326170312535929855065732011939608396323601142994539927831325113197635369872167679612662019784019337808357473699278537995938136821595325232501144263812902547590252062947168128721998670652814554990936796060165831239908998548437007406239079232016896581004222881195281404952897600796058386053161610637333673891305743428335122608801222269859599466862198432359385341562311211206078629018801224189694411537611697030965993284406872045444889595911514658984033309406159918847538187171639178130623821198133655138361887735816428174225873393454994443414470605003152438994236277720078948957680248133599843945878285169606587053694424626987441102383216291604171451459633295397140060554971610490799542012643443384925578813601460827481534479930959260899540038817046623215877146623652662422921767439296775630942708044653269960044251540187954579154446817025782608504909728113049903789616390823160856859520625328819143525395186800336747444980109010397048424163842338803345880396533728974010445445955741441237533496192402480750462874522400966328833452214721108135651988821106866930728842109673372928284205249450970998551905028682553172517763892541609098977927411770680684817781894656237431424254779574421108612660205996855317336289311715381208734998849775131690482889401468453291223796559641063317937319695515958959096214097840654065304644275123270925525996155644421519048261685257783351622902440970932745146112524831925222437420535364421331208982237821206632238156626931535956557779691993707519352944081011929881055160989071113391178899284990649883003813902584385115180872920868553881056414855142333308266109590940889006711376385530154239948033295718199866462136209952958020476967755894941627239295334157053949711618592475111358868044614665943305924762272195428370878230768044703577327733675373522689611215467250718986886648712491965931088344870176055534570690661800158995499257318643340329158190763880310360297121162957606479304088925143323454608505330472554331947927394831003488194591877005240857278976480436786183506672068828857378018703067404150122412599625393812779597968843124174847472206010019522475026457280465346984024343757682144177795563197848249495173295674227930114704472845355248742972923862994010109538774636267547452937582492903451319887149702729821990020614342717948568884902857920346469003607168152265730713137947380007021889706620294716431535618659727967280809912350936125912051810674901304632897706588139461865943782052399725914973590722566119747659121726169518675952642756407609496061983227596578396757074758122955604094753512838383455128203802019019392871035582840628722756019048017395364203581779131117477722044813864384370056990277759273246321385214382060490367911548627106261104832176381584938403062218573095362007839806225607129300253045562077676928576850661736922881118182495148894965438021940464174473807963403811180564617986909272537440123721570966894833323826721057173655945059702712999539876004395705362542460210056656075954641859065835856417210828674411089713916574937305692282436397095410797254207988875762629804455411927982342769941494248310671653802716448986165673172875673706416239344260471198481629624369970947796646814315931058753370952205007508434414573335397840994914810090828299385864153668592359562574826528553799304247274504841714393305027663950887379201094206848911967017777568383179239703986260408381018205734764347776319103313632475785460983370993413461292881124644036662752811967235078616807644613853876224817606595778921542632435583853213658626114201854623192538193173040100284523779685843896387185728197913138921050537740391780520761111442034316802159064165200609233194261324256481777276718490060335121129439632742163827511642822220001147079464514640124538095012860671980783956570805739616479174144437620509761035186854150706528451893083127947311364209011911196636656869654551307755638446694100396323806209437222943769169935098318538064967841893928632500313423413229303866123511768141248119465838334701642235987382896339361902421932615626576539413672895016054686291351176681901799330135090881147387144175651143024705387703280594755431081337980175062976959644405360864661609933169417907642071821784215248804556284724980710619387846960141020566589677944182355118851908210357675571206495074777287487804258208175736913478825008121525943816452014368998518696676791171080785663365515427989694742957822887330848061199928715915382679921874000964974311037301510334749645446044294995154975720686804341428090394667248911700396991164621520153424901951039076480460992320015652587751542013514381889829468341492055689539700538735322423095229360300990504824407591845598907306093851659030951999760228681108329176031673730173564755032496376704662475824703138255290684641175937864774289956270718530396456089727754445256268408059647972739886686988591535046634318256690788173390740340069097118056379643803835922667649549802957244857807956310799366807871508702994607385519341299604730127095348742709802524565007277998754039288938692483462564695767841011117649158318291697555883888327750212452499310788718348306830138790972011057750595981452640928387295988369909073252750664310437980278843516918422720922998540407763935599727491709625512545395892957159984566579628855861151989467279747000315506939913528500851156360671148131366087362930701691080041352260118551062940594488826135835173478110378522352083315123247430402269515719669181314292830028752496632810049306632867547047177659971040437122849011914781921758149863074966768227746776861762825145857776931879286015913940843247828145386696868816467146408675345898466958929663165227634447579349265349786307258011345208239350600480544691935852547436895362532263937032889613072003587967924919520752698355420087559446211866148826913235658134484064422200639345993742462024427660345266765379171266871967888283326756375938532419924357393977977700937014499445833099580280779907148218207890152244674510546892117529114575050573514988404756769614575861189546072968635707613263639706674796120881051349620621232337976769858119072174963552154287735734626343703060315333551886918299849660132887897492453980399429156550619658368149745640216550539796900369731376224390647841585528196614642588429058552378305683646481902476301827752616642599769458390944459815427105954264104434322217358452439992646350155888548530015925059284194713976671188969289193995937735498592716127723796012135108956639467314392921967902360886479611616737604100891052194459821466324803011491922362722516847454897395972178349676051590976823711228234496305938962542293024909705498050992789676885313481172954724215205776309334700692181079985451860955680514046221576541578941698792246333081069451718532361448620377112991174187977700386607211332644635802122095759713084180683288741325312525204184002612581408859822005138045510999422263763059212956033904885691284634951258195512320285175409489123444703876598169031958336335716606903559935733403738388593509594845727152334084559819372056813612188558416786989728528256915934525118212601386881995537476334658367469239461072013658634332021572948452154264238094318935071435905861465995307547969474802966688397111067116751717334404374172005330823465782428902993847581880517812291874324943241685315657380379773889643034099025333082413203539861332435126150298224156589726166912033431367808516622726113391095296610952225039985665669913301792652652556706633166459251307622197517008393226507455887598799206974064330643084539050916500916119099847662130732240341944114916426022688307434200660020838811378375468745754889865840429632005484992566831529610400322508353221791293484918398519798924627061785499470513575208134074493907617605836156258561085036196798186550235617112772145339718689588183010676205555532007555208185092021257741147394703182027021546591663321921875235265100422173194596678161311186427137783873165288842482959961420740342259660690693225177814373796929963807900590353242599652021989348921035197879001616176491027940257989925184642226991529438226978156159097087032024688857741507345797374933519149101067721725143563777492005672495594584178535886609983729669803850592962374107303644377843089094860791172300063120069528837869971933441525392343297523906530611667394446447319558318486212362929716652041750266757275409420513484469965462264379164890051369459172095681815030566817775742939584356149076395507001920312442267284083745537738821680223456614089453345191732671984055217681605425150003688359570596889986890356181402045037199634235052144113776790691314380802069028757889717228804494889104680043783173629212671727194578918054623331985660073413317563488042157730057851596294780071698431637657766886749085651799275210336219265578278215889859221742932490923372691201326904246282489079500261269738166509283869977978221844759801357821815777874974701352351890903011127254152045554158400683490083989547470612702477672430866545801214611037501862753634046160285921965097142573722008226774226053315507596425011476516232851879029702900466000209622260847248472771676192336511739421421206510538250300169295312420658413754870418430439073388615673505595043096229432232637469255478925276360637451007744231786326407992209679964479837716597863968579031394062647912852355805081724890096688805351671062424372671993618934089575440411902315179385611039305457620028396400500127786095602475269302754151170814438075020213822171069460691000272119478342755668765181590347885992127541860630507127989377910856336161127370394313444863302071322982459733853019766518771572632559644431031762288469201787271434038877000246656750290762383526159341037535511071464125689048609785606741378440754218585679485638669743792724569361634735018093030648370609141147920710059253931423580372447966899193170829325794623951560529863622094343239277643055570728274550312043341308854634534889542225290698290753305256108503306566275350531005615911333805996161073999269817616105024142881335184252913900872505798402544756927616512178674276193846896601149860720049366708620405929120124872427627580773955654648390273193410418951759012484070086166953132977125701878916775185875621082590364936276250314489732744279379356377558441355674366016676764597158981560082151173320328917021762547244189892092485751875466689997528646766999715462124287909633507862670567100666514530766840629633275165292708331112029100392601358451148952783687330376254124408963265510411073547793063191604151365499685775176181696603200991866399897314826272572094124664702532638350565710505537713890884885130041249225890579106530436169052984890613114783769023159769635409607644526375908076487056485104126519277586732867408005387803154453063605334896366654380556497207765596320379544719448514805703693049337612867501117669732110946733450100847553728197451013015307126553971522879890707088737423253947705158394009382684943248723869139247332340167156036193711579641004120335560778347836575485529932350049408034710605820768183415611234617398530741887959125538389324467495947484832225807133483638921042571899788131122972596308849633134003883796991908980717102805649869082554682229761259949140316601707925175664398905081243932571794396079547483234590587804816866427693246806100423684632278742064175875284600895383387217130167526227676755828627065095455726302026849818925662628787419976550414752419695288719131038341099968090411293945656588936705062907477836072554660512580804482133008413927317666670147009427315892294098627135269565294917955811945356939938646303532497425797056317521582547378893455054545084239701394797904747224132546331340440868554262615637815779694209645289416910879218081313175413095447439009799863017771494977466552490383411498971667251272853054574896099076270434430388336080686341253877271726174436918791627584002530304900747351942542069484044574809566130792479086680710871919690946454082832656036270683544187204551888927954653193008093610137489232586689567565358938872922213345911199678304661469272877457996116432549273559448115511808332441076060179108283476263633896390423233784026814146025405653683734295699483194609889865953163816890977523241946798998404373490881878401625112434075664660236211018846301666091477806840620353804285342211067294215772201703766526014443587485608751849488480986265239650431247841112797437563515625071414704255975713592824034417027124772568915266067288180424557940632293673007883706227541652500048835142727824611743722846629556238680617453134298589773070367230036470169589534269654965195540906542204882601199124263355377687629388131110988789200048073131560605584956895520063125195932986221194438737567987899338150793836808653872161730573691098098422908255562610888222527316780304980743714173636495637583837882899443123113646063082051359619160106730552515301412097063899655307788300630613411648980868130426776583477169382325880941837939135168731349291553164952097989967646285486370964803004845467939950372119011474805127988674200981967024025768559772626406843894360969874132737841026958222754470999836906864004423258926742565106405766893323176158305602139094429445344582525642716219092961547037277699119651370177372842105800387094113688875827916259689967307670685483774814056392738558818247269461136424642772049077772680176797780429499302985430690476887893614918111157604433134456326329135479880754780392555681124062126726715444955588178127714206134244707187883678973625280661953970678453988534024940907618944312497012263954758741094592799353933531645596233589473845591508911803980029620139618975905787992271151004272006347394742486184063106199723524689059854119078807092923786594144297262035468922204180382591520633418474139113621526060064876731485186318294845853136513905725553497275423548004621934329896792692025144625837690844545933607404211188743294830337015735381529203583677002909729216362888927252015135220908242079865335164323737503320114163302670246588416784515917176931626810846515962356315223135673442532472806740850274347646405042452659757944382178458093775545328749861794256893697683124711405947190870085388186795839309402158703244083333037687727005573184279017487510975948717320395142630989593052735885484487149415798596438549012422080128416977015432882590134426785535240487674746880319969514160514784486736119034978279996832355128381667348351547125128202588388542443518535976099391592586019593915051493136072431529675823984719484994670783156977762786373524227172865024422179278589259471987902677348164739662254271598747209223582112712734119564805966176879393882717138988320309087722245512241253686201096784249759547287143792208333371857849665288367006332333180141054703624716299418542662145627353919569826400530654911241251398143375795974363667579718547709372585480199141160681782405466789432162737998709742393004471236450942778366683052054113220216465272924051590019092157867514879915731213935972979344589278432090776929857063636749368981100919560203672414195015441158593945629315273564443300295280397758425005245987324255608850572397176610011172766114018204851528684328822474955384332779067518278623709333943850824423233457541730469571692214575055693243385073045476274316477936597792519270600877061637360562163184459595651196965866411754336491802499658059880602907653358119527946735681798128794294158943187884731091820832317483229372401638758728575423308618355589993938516445245008767173901064087576467429070752624790639669004310163271898487676496995728376195261182583638220194993576894604243865974654742932026660824250168207678060233771029136115448582015190635427728043102872850943751117668125789747882421336866203493592786764156114097261004672387995626704933044606273457313727276718295045595648705105809016501811525453675986564188099684696922712851448983223648583134757575607362943100375558511852478638327752427018830277772462567917908733423064974896528756183328520850017951926590073060467918543069779133233857744514443602961468627497121134589102112947734968112247198500367853051464163370912346843434701711756714019848229670985282279094076634031756808614149808644652772628355916423606535327492861353415703108786935402332723790831848299043656780490744882891811137276783408653349094306165431285098548208035686183773291838099155822295668704563045243855871160315128620714102769425896334489721327107873364863193463020398288356333073510545001454466627001117177805955151865570969576590376999020728043227527388941556870117184606414504610297981661987284547440599328829949299132281414451947968920334903020464195940877080749991983903921247110244263724215965650822427811987641136068943326075450642387433245058881089024407428597541259335304375488896942657224921162437541291306575065616389017775472475630618588987051048958456444777863488977288942454416685727178876071351169406313719071313593172244866444436955753867343525922329137459980829909832983973385359403107849822541924774513089950344907794276624006341990768090451131543712809733821765091500001462142200175478953348612808892587163027863087186347289628622244713923520742570731258482972429687697805897096710147520452929975999269880343916331120844593596085973832682323989271015695640875173360556883590190644694295560539791953542927784712934581316748589747210226381445915117347547361743049812551733856458026688436596611316604701133419907708762866438194799654275381477972112390521456479333770157308035255847206226822703995831140887380389307974262960618342533209309637318629252289265645170755191350840129043014946348507754312000855443612718410322573127416880936344449478021122743345770399008350420313124498119111509962916354754755316536991552759354183197570826854607246000253591991749295096953065655359792013095742871533390594186354336325323380679040004140178981670030473924207672850653323089862607015890249496973516911379429726564676141454100349660673779961054686475932386546012091101181392862998813774475417749600659878332581801580292570492950569550645691567959858504434190994992205175762320885281527571246361732065997151976852274547602450253848053101845168865609340920937994952394884068190618039994092920228786869019092965918704806809884369896135122611688770954828088802272312018043542562507259264873966322625468119925722641756538114358844211830196132156447565991090635159693349634544799528564664528503420592067183879301905297245990888908982931888594886010201439419179385086739473925814371030857710090316965287525727061094148033013895708288752959541491763899652287932182275978963264042885889374771654796794778437486612682362400423512929405961894547950638212429520043510242209392914557015513658788741693893046587421205035302939455172189104020961668020403069374442057111227156764637120925307514405465842645337195239723365097364040518387079737235272951494839224560396256154105342396482049065396545522811369074960211794225734457852922215146996894730602450646681519408419824589425079324761672109086649851398352530549028153904226333415442732117015184161266447213361203467862569136738356960719430552934488537611868354326932911854315419736227704817282933404544581057815462065953577235628029577624153544139916535124591211137708496434128243298391742813418769422719700423440749549486040428878251154706906141813687550748311648116541460252649512383359874160632704378424565258148842051412135908847772277806702086700661758652946959836505404457212060497413675078754801739447782141162177172048007883134465000071033895009192470543724307828874218692735197463308072198395804516889050191809974531000004718436523577453829483786617526265320286679333786655233762027909330143127878395304154646418269177705025121462894724833790118162630917879858847704115894549700784384487502829275514187420482241896013733947868510864326574999188220166545683492135222729600803799771533235424265509329121205327030818286228958596605392522104274609987008033980812853308694118364329040346625260926501932702298580306804020594961656851016586583365859952996651368643240895996898904998955882893780020299885067791442656137219536024889838483683539427986764948885225601758508104069695972938013457795032653080185313313751452051574979772740705708542705431799859737364746920594867259546476116607100171055753284519184673055722921466696822649272537591570811910073695838177305676776468395245501991107663890584574548032413902479480273181474651104238296660930916915158036132609323083618618361441364967317674179848522028496603565168956902900818785840393804154460018685940337438187951593579703769990849816574681002897880584548515045297242734556717932091776455425970402074864772370715585982317564036210801222761438394096677773207282685402473616956837888100733024732644199220265090134746109991987401498663813849717806159228814113262023988264216872911218098237988429645623735341042716273277930080412461609824473045717314257979194542714987626373972911184519188247938131428842632062485960479582983350406324703163290997418090185393163446584736398734974457325201688622036249931046149675843005448918255140678007864855171107036437999337848963869965302034866586045271144152439230209211783281618286899076901200941676390950204210328575569542058666539401128970242261943334098649918161563890721224561574427401835691850258422408452692911254681316731313362698163669192664940501906409600073278975300823696801602829128531122025373008106937325917165278313448395196691362655535572132873543765168930515688460474985465344227925755474616494850018578694472718030858072238889764469634771195023593212707519212466991141454087155980028770661324315594669566618198784959244673565333618386053799018755943052930464686918875154824705342442942895925275349833776192812487791960757965147904828528662812645614830041172978200347452908256888227458022514577198204592761717193175599577524303651694396606587041283133825921930632169298125630338429816550835861037630234738034006861018926848079793244183016746545824612941292059173054590614344132527883889646824882967763330042640686511013185189142118556943240505145971748777700476173077735360641221943242677264923527063803489871366476235049109794391746271217733394608547163606943970622737836665795416660696007916537187630158464312267120518088624948531574251691302473839650316118504393385463731150450818760390337354711879561956234049157033479918745974876116953315624629592537680979805619025965148550826849100101192956798294923886437946444670564840130856344825813895856339807944605176540820316439876237810288603518408022957786976079119385515805545162837255398960373054730076192812256753234154164032841687145298743997900540126557082755997241229335253392167465719646879316845485807741556622460926208107978455514059291356627631402463575601335373816874947140016137866351817333733826249279379568462955015991590208992977343929992095217279485148298485262468452361733121472033983707739548117783782889279203847914500525909766028356325950056076368477306018189838139329206489895815004756416559202385552902628732039017915639338538915901901539879467776229831828842700589360658286374011578390817155080554341769147788673273021823189286505639290688738433950876405373034965524236622564434858784656924851444665155156409934276451106190836434315146702706458934306301822878921113510857074793874671463897010266980083762798978504128980826168569634273942120692937720885589204744698311748913805155851602581323587990737556865924532661865782307095336200273223807593102574186471271962582163997847472414312068291569090421799783414939583423040314016284726711980937924244324071450872681062587476311956761818247416712244236151198702588887226982604555773169499035431766876667295718949443688143088877763783797564262946957683007787105675456860411043382516426351587652202855822568598497264083872252595383728475497193397016986306502299489853380255834858214259487669340848876132019107015673164009469706748960960925161387909407926851350034430853942345031585632751306352879278256996440224600202189956254558536402285147130451979361749008034517586248738488580544564762264094823321993442823298578368168950288116794359573247223643216326130052862095312528117647236871234228290669179513616561023225088453158253456830909385962727943783836742224437476446204263801594742538858506831663266679733754474544963774642250558138874615239253949870822784063282684578885798518829688608694534082629004783332496414740703911604929639160245041428468956522705911256138238104410850753220735774316532261220656435790075094294015514697710195184081725278930566688819821201330954251640070340925891966708459454327507718149922717427316238433345055862002508882388276628326473418960618737743093488797344447206285684517814105496996426993861821252399943062395700129936825439212684290544843576732041425960801668195388159603043084918054949123019859269728397487696271432162486425181123285266254018660526569770814678483777355941900637685674260092351880104111888484704316803294331719110362565132872298062978876319687604569805849336793482349235543747610654185043722559568939050774766067262688406696089338279902641830871242682422214256937985495373084623952983279093323935587159380015579573080968839806100253518918771487596820705725949405765181769484339198116456805407347169321498323641788256152598301905323709045152152027076631006106540014984671598334396949359024895036569123666184960932024368906632414741496510920815563468752058424293540378610560298751447834539574007544876417499144808403372010077255773769886272768004954606918424215938449113742321504118557202803052578633746891802862264403374878755188717667248825968958391780719714195421673470613626265716201962284560620188231113966204184904792407501590414414146592256927865627186438448033998363253856841780166040134541084893588126600868629547863061262743821022570345372467450034672226282287870611528036771441659607172278441206555372697613908651525008799424738209950317098366389294775353645631599803090025668646842144787360985223784808059251522414137333177351123444404028495988607341309478372441808737996565852713080624858420590817354869484813167322979017333336237588632164343359756710879427041874636448610528711378666012737458045115758480768547037572675335123154742551249763124030189428031883855599082558837602765636228519752940226175068921264305428184206796674478151962434689319818312155023160212048287623683866433416626083229207861844314971969041052675740210915433921138804145129197288388470281343122346823980183393033234915101598409544765647481976422563561696687391205891218953024204801959828201096122303404314868307281253990157113928292163024248806335200535149036003319233079714251306538095263426554569924224259863189857750958655450252747769383733264452215213390034343455331862786917244800797635797924272556099054886276528556653600834059401776437572730777197597454924018188100223370152050058678988871976162930210320146091840730322350118654471629542933613573915796667788730388275213810202341433985076887699640190534236342962022327574751471858120884169590079722291887684537978312998641578097350977292358128863669228411599644195300990076613022733641053316079510364090577973917993944513076989030567258303178670625375868510647644959123574735174505979362273568467868507139701836292585939224126945549647119677860560578246751098227197607181902286017755908571029240424780918189727176596087021231741056290033868295121321612372827943771526522342650140118755562647128506731653146095423759185589708922092930818924580403866892489289633859288765232920269038811205517146413282546952619974081153640192884364183706591829253406443895150874696673372787121521486254879940435412661835047750175894039972361370837389450945407161607645855143120644993176554061310951032124888315234499606634927984574433974452636466216029490898605319897580042620219330006989732691517539948829771538924833935250390217212262679405688936639836519134659202245418789790645436435561012343237138608631815167668126950650763168424565178242445610575678499956868462739452172334906124122115114665613251343870826528389022490856650738882386464591505255936642289715653041960247400830425615386731341195639200570260845935370081022882785764252539186523907743302714410206870583364481676826334342487569325858383931275164173813093044465156345634859181417103045295875070766530261914709492269965301840423680799955553150660574995074081649427903978410392366118733831640466531187062025955728225690296511779387067629961296058834701434380878268702540854058021730252904577193893833190758128467323918240286721540762472144156006331314366299496224956417747219649000335280680051100598815065085058585013258774084477203185604304370234509430963555429386364179675523983887018344195852781178401432317687202858536754483360863451178235396100946825679519761747675631845366326965738677412913933013127059869817337301436039832927030955573903744159726107283653853281250458963417692602461583125747759133393250817738605833292504398536756398217897020491192673835524901917223332873759438719336105103950602325737850173062923708742354576664221969163536844451735085621668510261735975716597279171459171944069637026928196465973671499619986597982067509730607292761104256696306828367840777054127901238766338547466240156818820482001395344176295230162988337380807011964781339855792851875542406420847680107109420639482654142726288833409702177559600335455143268955625796046325376581499434796797596075606405154924026418802415841846647950065981706168455450644981789567805179505089945856167791257108643812795183671900300928274307713483966944538511153233766271576193942917345083326579437792605902195523396850920610884238990424697320979970303853593871386552496573339754236531080508639507362606181825758559784597371181184340026354779958726142152837643912101382235244518593241579167205847892917538783222379044737223064090772176979806579601291608079422115764453295699889121655085356928090307278295313952689234313688257641807139341916197067581805336570362894161743264526415410471917798133386888911102456981489843965580961442877988616511505558769410737258295805027210417118973085335236669203261834405055634428212922723488144490569444797132719002084607667497383081066651240031220022320087722756989911951549792868071277324024593742269462371192099171177964603191396104772785779922951246222283611330576648205706239797510590785166953878403685901601985264272419297668962257469106810444734925018827768790667698207529302583802892239681246517425419790560734566586722450208753888939648979005553722674180520988777925437044664370548617756895332341227429849818318763114920898357833157348949372331046790498352351463784494124134531808821438096947329382865661499607513339591510326384551436532576334746672867148101062913873039018114038026992437694669770738890147421326190669757369943741971596769827522360332422911153486260033122268291191464818949285429935626738091182096987789308451101580385781314315341593139202245276258869609298764983035641597711294919866606453870160683895253917675585241717376275998023901411145352688252951845330641722013256146473443882907057367189461076444176642825642599951319202542336329352295477496946915486812787165734269436958750734933375154623967098199743480289023676085642513287562098766475994595878956287289996518810253283609947425067787942288616268284427435894202149433687845030957206948755741323748152983253092801552461107045724398519445688690902776751451196771983112554339868203535556839604523674878569353126602660943954355608897831301993192816991249402666489685397351896540362237909474915708819188930308507226774184846003494771253067455447185809676684050539318268374132692653944919334948893581180152749648753331126442809668227885897664057394218720517279960369694941032048866298927424469232524635990339255832675028579836738690438980281903561028118549110201775196599878116755936201499235991288635705597157313365500957307607764755747128016827410683750302785074582380249216442517202266804374738434956207061591966845614042267436000184135923735688223602960507812721710774477950851016979739999798625237276969959834820827682751526750260760949758870695272475861341183716035042883785943142909186187338865679743192943631935377811949488624603133744165676973193823269837161044139842194035191273025338365120776252365036013975341741827592794625091229203615042198137715944772918387273811053710506559222973848539069563308085437684717644826906461621857240228164311672145994100193540457469276457529140349301013211964676700967508244331384710352521417904132223578943602251411867568166583089540782223680065122387618408062603355225521888022511143925356221287239244882242896187864518137479596754865978740627416534739660348831017881450561609323496658184090487296164136828716086429493787200092006516171609959950786806772396609207602560268063694817604280978313084347629027770468807160799984882474649893990285381230818013915530596165915195606551093622641358002632143570341897877928937139710829688583013894463626684818688574832319237573012458494262600296544756979495547373082511677326823454126698080721714604332352838874312520961852942420720700898915543602007357741173593242375022708040832399675338759375982770512257935135923718873096068780383648355744152290529034205448367237165184447899212225289963405324197277699876235327198215026686089922050407493040539271394069206042193560732684206950981841585914984105801092124654434156893914398912846593537929589952347849203617070913755726938787508096992855550670842886100264415333195111944431980620567017235090121164814573208362594107793428354900269755343793801075623556616976322885275228059901572335877182665721771176348901447291802982987004944323189847827895049431593968988402833537790478124401503156594867873407099618861312621791994163445423513103509291401287290180830828936974579990712222918307328440027325508851015073153209450649687421544134727377138659248150339265604542286827424047648383981640455906896337139392193337895456560346669208817672682194842857854215462782256460703722950587880117217630418382512679672806664721714820003953036846178324351673928632684886670887705842633564479293713270064369715721421612330354802376791518570568886292150861295421272024652368539767447689990515646337310804372987729947915331693956424788937691982097846396829081273607227692272479474815247200250747037516002138077338725567540412373502374572768257915847760789580824686498345443723841493199749957963353704162675054948316999467320276650775610270081546963298043565266953911445248621746237156095423425000201358255024672118195605361976743032965307035908553823743915721182104220971286039371938968692906372691232063250243892635030891696193337332177247429005163069424656191970116087521514646665089417641298983483235336495946004695548301640063996610705645210541173134913686704970314712995353815484797458398946220606146983754095862813131330564231527841530330233720220672386560860380258356824123922549528730460922941332207680163687614182611096155109669288287181239126628725375189973870999987866941734447124265598061859191533057546201656161667253695246506057475893477681084089046191762735473681535603179556637740085323067694905555047758838857046092097299217066774148567194191208495394826494885874358966059679712911826539298742999834928211161953938554862311358574192799224976560359843323236683998844708973912127502780913156466533240871484520198238359757004127678427941744959706700829936164940727974778856032057873047663909971703144836977485677266805935225445707600685298373712556803349288270232769072749012690198864287880947301569903241006466131934894153468419157736217868757977979112819402682913026345879659019696248863018327765174478702909477440084251820515973858645282359146265512531725097696633840920064189461474570400465274969626898445144476561506547253403501760455747385331885286293680625087254713905695334134840594999376696692061036987462579722599202329772674202130982645321826509334779821347443315579746668621886031674261028564276520328329394442855520667237936379096348083474816361742333005773298665196316420379167247950592680000392532496888056024062810338155573153773531803287019376615516452080031243322563612485061683546987450047457110675042763527982056706342053400050106099440425512846860448648571172839269258569884195864123427320970175975708877533446065799697269455993436774785443520610079278793634762648941313441505632046082988815238149958198164663883221605152246410267484781844470523613028050192164805788168173112999873515238114493389559089669848566606684508626679919499592927254279629932516446461067145294782961396617763017461025417372600364101586485461973229541294307834096256992381451030049559544146017187959924897693111441125009911960836770135648465627844639520861860918258250976919817135948614767227696513465471200961597048533756066325096226467116355140327103912330702193615619135511553691090576543743346541680035080936092129909494095341159446129562133211873068778321029942496499334439125862333814731267016329205117435046178211969433317998574723184718252444799015208677787428431715419053139060890986592477344768291668845672403641745294752778781495994447903767467856945141175503563067206514716857769498482266440347486548970500505441375448813048546565754936227615416155513413717546713211691286181517066292231925478135296663844788176776965502538230202921378442637885237856104524112770029175605934494231522313980917809614442460087658111409404838424920586634401320255605955273009325422298066534831092376935517567908403676193477905055736274791251285556411262500147103489303925902805008635776801769845671914595008993995024623090684059687724560511202237226972650933113455567272200633857643087588725933008847227473800590807680365697495123495983760085111745490478960149277452813203289501989930479922907037255219781924534035768729462585172555131829887729614136996623075994551576258887315357596970637590227213094504193204257924672136805095173609165097795950040972007937813803376789408686623410061783016230235030984170472091901521781156848829462915594042903128790815835826203178770046601344579217865200407955533557137796956573016680262422667368478840061357622716517821696789862831714798905426548304293329007897056574726093698491336837086027699420775471278559394904479799329985218580031929374093062357499048436651175323067544312083973368226264903619400032226544900371357271711096935871421487064733858838947299961214077345736404161543906556067149550935647673014627176917462807215948478607276862007298437657238371110651088784054153615019836724120150115745852567915910642008585799465892154908826760396915345763598992448515208718962220867264813869910631927785524930893958783618968875463182985406129588441396163330126931830051955726833245421280426375349113012090854496027380022181782119443118323252269348141006852446896408204784640830412712528144120241355224788769331540325241751513630733869727592139157874097917216559588070114157372027998726017648883315659792840787537121920036860832166742872813769534955048287526918943794529235890884860440811035257619366013633650047565536927916852450150715149070215647259341397503353348664655250207633739750712964113861053788765519771834891851707426122311974734724046743450234405601352958610798617491410592226123631427664784775230785987770297770481804826121415877569839191632024164920039104981069704552059761460406740955585652816187664657431653548356641179432209820914842290897938733292824734468360519943390260113342305638930795971244493392731275001235542386531320492659552075908585480296293151029688125131582947719334129774263079213322788093945077612456758092955845174648401519395202707936165763957986330725502421187830798856938507580313430858897369585911723329993085087112870357034829778082923334840663977032809185117962293299617903047364743173902994143971084658066373506802005217590808846937795151459169370071189369209775798848702634940180857514888356218108640676600385290883112856524270609101579095211626013919527321854013597812284441589134194886752232013912206459375895879443011657641520268595972188528123485843686946040231195708808673539965364715126126537189517236712394265328311640274090259195889690759989194884102956035254850791982994212412991009163331451472772022227117515564352705868816206479035220600437891192038476648774384519443012146963706199542966859492603059050929422014204481398100554654794967522120312264311508385889040304578740983162804252126208359712264506381776419163348627477179542992561410696098057196755924930080450790060211620948259701240496537101879705225900854433835126506291600679375721011857263214634725234836704063111674329073149536529794158998606814953434732394305681979363175387687092066588917342288964806991418129573502938803121695526832568594482461806590012073188847019544699035931514349020500374055569713891659905352217567559685222673653778650158019128171785231897550018418629977903388693899543956654280775260461644059879576354268999746271976661088364164860446282698255497259125165414792538787707091437717450075666545554425501821260392193734575252057185760793522446025964474124323189291487666820523850320341369831650190223472136871531588943586702185970289878300395855804323873515658446480710387225026526630601112194996093986265883147513075698191412774615597591079190002267286837768309315093091596716647882791979109665703253612058499164472996596011421352088231264836662421230226115223162024362532641092090752447842997501129602659922319936901239725691526447257472656344520965910565583996655088203423554798791523295394768456488587480302428317818059367183101347926997735603386177453069975875472796890612545171835291038017214994145711871830245257308899426219217673655223366537181568012704629902291661203211938512548364511889540618830526704238018412113965438116490255724086529442309575390410873417405767014896403612086260685754057243992180808731623788311553681119088269626493962141757161434250952312900157858472231619084112861279240451425426599119664732802582197638712186007748396815455243384070919455615106622243735215057187386616041471569429086531350197871557024780725561370786137861244604005747849214609701292907218622338637977043850508990096970006183432450865299341101038284780913000280136852686273130881240807096235148446841186343158965510756612535452142179063133976807594301805330193119550532533838766245444392928262250181054319810501387665836961564527693549424711559937451839097675414684426244217174781389854071101419330272126750885630048745424857365287938142201989608959275369442943344086960812703862019886958050169197769774604090599626115917890309174406811318070206054444197359119829373884917594930260440780446870847933166786944903393074641845210495412445111452699487668438200960930666134240627284121714690649990142048860021331842686267732670301852308263028695119238485811601313103565675167636219083328942007889594545952111563847791628918275394676049317777044527507404462059288738658476355192127409899419000114851588731561498634796391179426275900254912372324463805950614426870217750225405082849207630321923512818867722764029153603799490660459181411043090786648423742818100522852535049729639784171750351542632782005582934603317538318741593562228358884754344744819707851266999822547206264557242303557976403826670393478992634747039801994662205299452950389283355544045914321318716304294818805750545559361145874616865347087947975437627247041849439345223330601521627676929356831731739610011338378451328647991049095624653125654056954446818094554189639932696393703012682126594108757695086875348309215202118371836625237771564190373734734708761659074317444024584146674736959296567406164643020443763543795360566266188204683498355528052895372788087543000757508665080930691199057063932379737208652812577058515553757298571877273781688736175929467844191248748701367213454353691673771991450732266027159019939470296108583158777234403550967254968961303253493915806676103185857782836777815175326414665772211137938230192332346905337857119542155619723414562192228373544243953065162458718155416987428747715320380163562386315279479609878764072531001622619088826022725094238275894222906491271376014669979331641153950604129364652440292420537376698331125182006622360714751997480275961179605407949199633576302186146806968078287597815658373168863783641952408471995061648105758141076180347143582556623135896504776415819953997596984861924805759173652155987500241508104247815141731992974925741613212308313948575564656512790697334718263262489843288029586789560833086812386593696590482201525755761102560231110478197296393983273262686518247732040256390824660426681754508544455088811167886014885187785182598521978296827914649620192994793947005231464406621018943680247731979461620306914931394912152904077763800568333553219652294210536188642183350870132903358942891759378469386329255014200807696648118541041282138299845496540359228234524116396701913465829491609304672938243009580842206021799429300873757942719790361308331671099635256495504958954748308215922985990651581641218453367999570114762352253695432917832172176330312279518201956739892547267042924604439303601021592199103021471539764609276650939978556856956925164659756578071298905688485397000918422637442557950700521048769988311636784849053989929372017321065176055503811971322498530014607019726136240935645052386745133205336761567750341329760754894983463232179370663204778101504227727025337345971840971180381421520858641748773441006979585778162672298420890745944469916938338700451027479498872272696545440914670214263867528476488578630948436806896284604050947526380043834884529087636302532456942624062212736079943001706489747183663352646936769032022690898847074132754659702572458638280084343555068922822550583924583881537884403081720540481990684355577503254558613387132254813467196605066615128899223920784679624304236651781461215712538284698071457565090595402255114999907452260308067927037408027676883183908442678180175128553618923599958176337664192000141608374641766916385344283317232205464957131743747383005101149859835540720986720854840881844854793425943301981382752464734581794764984175750958165158087274602096632438521445123473404017177888201792604557747177326953164139892929381059104006661146841215010723020899764371512439742218757440673946960676860054100498474023183978110384376499656572167447720729283886660931710325509885622808441864821812160628595147275789031699768210843190465891318554857129717460073098422228107276534946498628830934414976866007424755339077486912962737550703825776688595699060610793120561145757149732933327930847932379998580202851785159743081181008079000958400539110873620487948070678480238849268334405363016911153566139911231039568868957524993077421787077337413828407209428450533006796652798737873389860620615389588690630099020143676784887774470554204807132042108696325217097477651429594288160988831638143458917836548263660535691140624021712291272149143838858813322634482455969252102886902495593866732804763675814299754247886123086982456275599794042299025445853219109412170544065671035374034563903187865456918975345695679709097871028941266342453647062665122621456850752415228806222035773371161016234028671317976617833069386795043074987089140274512407065730111221186263452321360189336454769914505476939810971686920756398858138731480846331585640020466182606270512148454092339261370425804514838375419107147886790981281816120812382271515232672027408364538027545658798821475233232923328029410336421634807184134141248684515564950595785927909085412081691286479175974134608001070779177367487342453351077032670175113321271038650936581617771852163119855405187997638513792970706352175821191026686684166434509691593388288346884591357698915370196890848946333018390634016045391317218196830450566715689379105344543889382600203788496844768682191424186510084906038979692187561655220936657732068894338023272572762253404284153643437178253638281646961038499848831514279898905268200207167185356452760988467974964088790922221828778993132255887735151796553275481923355251322697925411231941026080318195757094593877232159475350943725650984423931109215245606225087411321372827366919510202714661792917995054911144586201310481467797765528411942730043042509494141145515096682494133857449642405113835102735746182281194157685368975135571897079267006042169162781718287311325601425019527860884604285151421559986802010631583996348766232038808591024014146073876435796605103977604266268039206448030739911033553188738584448442473032779668685233953182005371997441354621458315935119503625322324037844842535983916446252737036428386194130375384624844269237183522049440364805809642532866227164590345776990599517765385869975088928278937974143189755986475721832188424419511830894638113876453431482859333310161977716920672008598629178387617439415837308360443754263030400967524938711936108179974441669766225761339062111350832001660386140350124371484906992379402458246824663251444778972806883535750128937522377914346715424182155024410630426389876417659987594726994915607002186788022367214410726884249783020486062393191070581684093321848402553586760209794931760345741935790481318422233965856094612557631317132207440491779765008454547760824271292087987243035622868866839829191395883056043800750509690106311567139081407024143458355239895272867109373383553776256792641856417013799324108931492621440934496788456175157676240197733598278497932757970684386911870047865473763614049378429431534104656342752284418244344109289844231990586970801175069701750937277683379283627909449822262754124697092874984415733847382780903724645977845617856931231393170478094605180360300355984385043770154664309950091919481847098377466694506801973358157958000711624825542134267053210770584786900752252906826699674314570524402399452110977916928571675221717608769726460858413260870083749762827376104190767045983230774018821686472678281538541350013309990815646297164709245997160124445491887619386532053863537869073378219763350976946981521301473745762241870093529092251061398557947406717766799183061776091715294340146554405487532143786089239450226084125362061345073621922812500796206745841042650122551950752672481525481097718147445435166466766780347378521171837128874684399230926166252288830825842079544829869902079137102775371713622264633153423149660579950481055807749396037506324396202000942935350518390414520050628178222972151441628865421146396436478555211438273868773073184928509476308472006760939254649564936743640825794100880937988184471658375800443546054319168508257207688483214484014630886119896002586701735150846383135214437763388658783446841092874955801726609808883384692298461846834814153082441077667551948298236473086293481438810625777776527194011150510203788955747956691482390223864895578387764017771786172661388404809165860156669606652114506344466682295021728751836740529108693660621132704846581528198280350731794389801544561104315951152511481464452258413723009686762732751296619778910587446461247082778840388383893370308324982066839031425044108437046710476840409260130026434296828606628833601447828885626454848418366217000665416661645632282936244895565781179164219140909026922656347917936960420184842425781100553816277643846499651765212916659685287324460843367681985906926108114427216764053813744718024722900725343515203493289127522262657898160752719990125352076656369675473063637420645413680038025460107369706550676310247324090514246999251674825338947820592619495780968263218118409543856580451919999041114593233252110551595460430472740954459209172891644827987177384285651495063137418630183289737861366217714389742532476616958072610670009512515462680420129561162594801515692093884165000829693637120061578715678817212642360592465558695281770478025180889291329688728835835341475078903318561914013318767332970890468214883946777516578750190727162840018468884774806814876652209263960909975727384942302536636338276672809307833576016095686378407549689921983759028074970664814819337927336899189735502713884137320783765499153152148024413511466245783946298340113352194603862817498255703172781542068078506190610924936967991329166201001652941417552866947396607641625124284203465790375526548120810816312607302568909845645703252061334412963557543159285338689950835385467444985211044186894000870723364510482968781734166046775251365472703681276667071385771580060861355533746176525848041411649334047991323758877976520332995450432994852968293227873220772041327767352055658443355930522435363531822654708812912688582188249439908854487175106103305341000579090145481318172342733748476258444466979752687534081864673198720717506599730874483335871351373516822748951081018195870401429535584597061509422597198245540785989277121581999348801760613129502710684039775858252008212699112197957930432957061533565050809611718553453293941900874667242881334884135188585100169635340527292840356300771080131871874591023856859227711619731733960641790224919830525805662654846057176799725571116521653950995966172574177651238960213575491589155565666178231501311603596094050009186278603169443029776961865635505296559499124105262018595272140946264812195613928071255491428666371480221697855434743996300098715233137333885855963076474073446296762037502811585105460585253850853685563637036190825931168939327375947280492124034337156429731598725077481801024949415142654383061447142568277578382379434722878541031319930970406711978913857354506180871122684575930378749155274478351667577397409067240778264203078500236964653482646037124908357413081682776523958124807662400686233323141442624691872334203821955103656687154528099961176030615216782462864285722041733908736028927097540066448295279200255174823492001775472616491715406066260105529044902958547532630388013853259585979545604934872590341415747299876843165755661784470014572086986369013635235617593265633253013175031807911380327446669372479437154551173692634575782111580429022354437493105848450806294594579081373930405385533556858194158910519351762859625697652622348820272079212062975176863147737520305950814851977520696852240736347309741419734490048305369658123888762331556085221530640604082192192168007443793063063677098838691481799278666188725780262591416721511325253683042466181314065712828631754750850906850307358944631782292758608481660181422239987604051414261375825809510143509632039220902584399779004750487083815827958284892821333676291437687728090394744669162755850576059961804631610724890166273852980436245338301550267119063961760866910637055716252312639938356189133845314024528373008205323767762506979470657722113426117557532610979865068303057435162923116251100630908771333214730986575058028505124144112023589388572097543243729188903615246233305590090083666674102696549707486510940625567202254601719063007180898780104474364240388460823532026518281522325166949894958960709727398012240236804049698431332074682520418603522455999811225192959645401012379432309964343810971101947889580219532276893230925164364873986041074856959130929560345656984013370444024147802168471957212118281973105873268257008963583284045938978320598770407024928083118966748311395350159608374220799692626352637990710590957735599796209018966608249308870636692026763351919667123679121805572542559741740029771599152350718477350371006067640649722548943797381108387520200078383617695056324844215383798533085140444168551405589755107406646573432316376450306143208078630392493869158961818134584137048954199687417496871963423969419429965311218763801386110525582004921196052116914252293204027960751219177111625722216329405985447525155180161538827813757146862613895521605541051499838166570085523790043445892074146169290675112032444546849178522592810417265255308483075513992226468215588717683176928732434961103503049312984560012142089396073252056083670777766773719098790920277905784338564314994450676113359010188582142254730155180929088349552792054497221729227635532282830618548321510610076082094640487512473511941938375319260785553757683574358777016455611396784759113163766340160843035852090277146994852886044265650849860456803188429891649165487533342401337531736329468286087482527893463593212423907022271524815608302490915023949449097640523371936612090704435986811388695979411253530182829710744490120641247673182606483263124630643539448209061702175286249903781822277582735740773992033974409778268467006373346509734308019050022129408237198906017061459810469169562817402173125726564973722537189923308792241149011681166860800657948836480697914828588730985435790499846940644289040523180420539331531997107402462355683187741615311178347188133778979233868879741019225487468715055315787705176124405539645413042250806715548435041115888829210552956055924852401323403446214822582862185103732487219066736785418520296886776184173329240476466816223194113430768097928025900710228427360012117805836468269219452261841538284610310294669769401355815117767369153800122931026215266880519502079094230589329456844927613932199470652461646209182598113285977636914287701845599712599091661472470481096752034789375891784022359617909918041005833515244665816464906344714033035985936290987318276833005979462344046859536752599271599876771540109903929643425373254226169015409303572763180031327533411392130007985173577397317491402600661411215593465904357992390212385911884461953142024208300276409083195532839736037161642299086023799717781238050565743035393567154966846144185412773901997246150748488572360273590651683983521536496486731840755707464517299999176733559833339791516487954782658604619598869775840246737059877221430572425802948365774637859355951692429074194252124015678036068513333950966449927419748270580023764614663571696687972883762408238382658242316896812149694024391226223532780210775355614754097881225842808133630186196518575278250373453591077032324110709142741255476356633134652316341645570801298210591322898145902075500125444448918639323378346807420487828281651925126758131382169348182795355026271722019727894142501601817842654830267509407174075836842251078724128748846294879005237677576680506837602207048195896163581923150501236525175679065043210191490221992801360934073346992624181311558881541848519437194441600940542367359241884521908366741685480040597259434303977219725822236901096249113256301302427609783200099553088793936506531478834901796843958830020321569938036388452732333392005830047800178891707526974569866091852781263780835159852836461665207376351086876953275011945355370199227951057438945623593553917068086697835149692286289771282642678730382842783435332273389966171982932836578207619759240562252738385616176730545891932640483183949452410329370118311795425458549053707272181197249752587291880377457859977591589022682208114422041026238834351855785662960080099964171034240925827114003819973691508588788532753212050485496351663595194170377405648120427790040280031225384032471081475803198810433653143715395805945734917531106099002967822820185305747897539101685634415490305637803718532990708937112499967170190440657080922484765192329142325728735468092703127632429836539970871066187599911372894659524089796429317358618470143978320640863899861680670641950917406178144139211484224747079259896735537248122053419438882286658981503254604126892650187303824421379139714826112812351964773370586736010086372016475431902921574537793692648554788360243612481681707002371868417237287825144626349606961537013692060529106146376378652762951915876129431558261007925963313934758853487065652568038293975129633649139222554695738270833960376229493219769384955900325173018818124103760440498901045544641373484990397098551837731679667996533382912074685375021734076434085665671658971162841018590492507757102912057964417505163334267986906115585042585862643102593619893938119713080116584168294434448352916792103357740154027251202787060887980369889357060356110244482856561332849338052581066568335793038683083551834730258579284397654115276289184971284689923636040705733506331689785243292578818896904649833289504306352225083286146772928200722126236356016900894153514716161426194135250759174183060841830096550626643577181039239019106527065884172622615841151519556878658507760095807637046805112235298487836124439748419778899057633059176887105506567866118025863860058620109615649825614812503264565810368683451310099083009901900525379441337198753888112420039364932549080619400452176799719449054506783173627594552119347438744010141141910379319336212191074956395727739624651461505022945643030147930623882659049749290860649374543107309853477000713870136904709635495658041051996114455884500032183206150143269063477245367210854384450604847527788162087116993493513759664042722297003845712210572823382888082362452165708238169034885515758314823023782140713383538189917862179029056227466152633088129817835141504044424076753496842187379460789043248834559560878907035132107732456558220217973623902526316064297582229701544950814028431697141784486110295850445855968631915374123190184085387235933026325792355777454192712684525919382063048238231032646647940547845014791250962702276601124137787208242932991647505190257406834574966459589945578450015827429287874973266506478160878888206416561654958593346196824719047624172043505323861178301463056440823058260379589725330573145296683068084241804701724955730032287854512815900068498263711606622228176083879088981302325578126728162371156249177111723152710222142573736375479198848413955315323444652199985553756824698311266549099684392828731067027915005212743602781088119010232700699321931593920250092627493801096083884832438339847355313497633766455823440826295973857107283319590950409729150031575853614334855037004372854350794242444957909970800209144111356750483445661817692288829250659653015522175257831452021229296170165185952885333055056400482424329071960986486487024667226670459224424604465226084855913086497508832695740003200440779081902652168165180495270363299594934117239665072900330160162833519520084275367946593417790767655950534689720085630652661060250492520285195570287713760371675820564929606598566311882677245312721144683181069563945296880883938605618058363361136055489579310396520065549017941560224531069963333234164266953267985262584078522988181999915993194955863423020079740683716885277213384190172534526896414749578089998022177388889465299006511924270717395302609107520404501760180407230408740812532464254194223080919999988440054887621395467673416001932984876101465425323902590191220269445831259038220221885280854605269979492772279581458369905893905787472880191013521750629629708145525612911495532171103642977469522898871252020916915546435102950069206024597598639275043333123393591753619071271694165096140789105128221528743066396229530129948107461665893481852358609005349077763784378482866955843599202202772423218898486589370473262259107437280796595297949850585703286177320854419569156846410300019347907608844913653449700706106755851673544553959458481376412646279881902077656683648972312369608297946947445614885516400597212907739658560903012354633725004451078100792865076544494205173126314879856286403809004252412871232080679877053362227375337453715997721787165346599962799558781531691997975264107353814248161617913774018980321956950249936473097432654566631707818731362867407423211033308072652755096821206033318787393719957975639656795385876860571877773398005141017659931559562298142668953955525515504384587975354703723441443223290618002125114320021712303583243365303549972190590183620791297759837312120847148506828638163760238892501291530205020766436996938254155398997025386587722653006924792204068335878853870685627736284699494359601119564758455977987240726722163758006430995220640618347004805585644167329494215294730323230211421086616310691581262181599415628694362149275644798305797673891486408617310121706257136358150579619755017603527181675111907125873527090405727489267023861286414572079963269745857685687653524457281982218033734030137044876069005915254422257566494203061213132414374874961192534188042197435513265612518631464231228371218122553053026197438251829236203174744057305234196335216031847380803359189636020728408153219505762390451362892800841384760854378537555075025247646608888067437065653769472198105437249770398688954133801438545237392929884627696798989562734692752969530031060062130381577220628841533633095571025561910940867781121342707932965683133415655079963823828007116322316478296404261982496840192853734075518620207854272851672031866597543777842779890589440322140687396099374271286411136170720913321848091292141117029988111104094547960369385568298417093839977174749383788187539529285137368339442636428997605147009422345208998531545371193742890239789908419790745967044050725968954038372825705027490760517897400504362489022692735027744394139252970702821785580127877187825661343298303066735374814226665468389275020327954402666606812213055994648038317404867372491977860780511055177128631401622418521914043198660452576398471189496746528820120025124853967369806190678182136898335282779623816608221927407935357980862291593684652170378595452182478996502439213212061506143448315410052751302386788763856857753327877461320890416351062148215631010147150508688244989959427731623014751407342892991225235705320916048218016392163146433573338627109301229158645981338932561509815342324489244372651304032705990167023648868329975567076505487415191898506599045176730368251191721446865918938863807862470554063229584619986158341656508671995625100853631049804766919072828244288526077708412628382588416021027781229956945180948204103858432416473459302054716516750848273951593063993763807832246931719557938640807155407802161405337296272098676914464152293810020571739416785794779701087257562704049275909232468682497871131050547150537577956811003294924193940460711237472511928882491485529473717802997045956836727275992531098918523615079221694287041592326169385711622368649013836110472645326030559413696472668858252187865397560071732979270794045185836002408049106049527611603785785488961840524925551522142871281339226134621684061061185300481625174449602992920647160280716804017911822225382581110251065617793946708946531052264782223980029256259769790338121791568027618899345729783949526898678994829082391143914743237728775159690319737394894481177277055385919492641171904183635330552716314940107223970552271593351411452123972024440696872023291874453712631857086539665367998559834495596974353902683179005444484564201690558171203411235209602865853410777365406685733521577390763023994591680133662284629557629556321948384231743610475440494665103243698138379229755166447757268590829071677779171848394474138581790634208954629661400210168855535188817486295993264117768852345359554699737406844134941730166577722818174790994487757903958333218540361721313779380509348079563625818367360727099214121455766592195113837536399735863164841088889190213664437483975453154690964529975777043629342592621859610264350141318160691525842958459990407748066411381681801044637312036876800676386989086279801885546325713388952564063434674155391067063871915445222306755906185853810268891530080705532738583392688598478248828312003676715189928291945777356888356135087941387595947289139178371060767261280673490439482173190405102558959231891675993507924250003845756183409598954085732790105188494380075889107897290588656939727515447024106567966949070100835821508411296179956023568143684806667945612682042612535385669993954695533382861018978838998641435986310230076480823450386301522076662555675246322690389230062757388835417241281791730151973756162146425017920959655850618369511145311462984125578565601659961555339221089062554152035328676939740083939236791633008449810391658202440919176204929658327298217599289817482991314544844404726339507636624576142746460994520034436879430107092109743411044001129369090417723703889991607955607790811342750149451165092381943303176978690342535658405498387504641061960009556507564329884804742624070341483608796437908301065293822561515702965906787532156158547029672220586463272273423882195086698280156542223382776173765900040072649456840319940361246824535248668672016909676054510948503578801494105009352191994938631565281029987053026344952411260755519482470299774166323445985487055872837488322327891289551739623914547643382393973806992294136107568700726800546169177743681951616433993170086297055423384736548693286185434854565946497354484431776405774785317966898098435480450860493299014661404680815281981570934516051982590166831037566740085742324296658472160176130240948858692054531290663489727484338017302276332956217476991239442906431863977762582184904492610918770820138584159647051428485385402138790600064934686196308291905405307417890605302733614462628536162017110156599457038160285826697471812800693295172081089628938474081954481002921653715661318598493012025453520276791319174634115107122414340252632863011320107408332888282212769037940176923305298775329429861190332131563423849965397110342337745435138297555065978779963358957116527886139232914660506359326700115195310396866052577671765146199686149952168409963581070199326147076253824654793049863480332592586885298966707040640977838927423404173319468746233570562208935055154500074696702781425349175411109014726442937636790239787141683129184812748177744632132895284077192038457379748425514422127501897258059004706811695366585945360901436150454154385964084246855646010358184697217714324074900035645123025878938106852679768744272269344054016522190444982496815160238357247510328064626183505383607743652327757951268905073186839838471948784971639514382113076489824861211265284148770178454656461441683120689050339960079987948792212646005428804479652975035582012071535726815381520224449052591372598273700645455485498864902464123762122720709437157996432070705342608320698060447415322038404349357966919874880013782737013091852732422037120134818236482247327290458252910527361981308041459669219577548251370108863822357026731051604279127113801739818163603444226760369326201316467400311641844368023617037720181995566107552332515929343421442850883642461595563004443824698758813517197652563135027908121580643311139031750133786512650542412769534445090528216549743956444870585032422282992700559415064008302081773937109090672195377032738981898219314339872550998437400499318976182704345889566396283109011262907703658145478965913547927930977624655841279852296089494356049721388497222664497341247087238837396910420277740826205288774854556293561106630657599767400533908733680139211401722942218741746338454519619906846006824783299491145809775305154954345006149493093158259982080557269901025620520279277593769150261675611656977497031118531577750829024109058997621409519455027877468431077965802617439024251445342804158219221009270496684694332980094525469856909081148647791885061744712468590301306308945410325872950463502562228306727107549839677564098905600655068111292247296246596181185885557783441250282120356153827386748550068198698335018959435902281659007272911406553254238645853519980011339893025731893473004580844048503857556928437801115455737329309667270536440598390793449728059500169470231372753763198832049012886574658218653651060567206436302067795768626885143353286756578403416077369687060679584037053529564716493493296998805346695072758414689800343707774248187842806315070663510215165284569144342194964963747412278660449170730503965189858088417578602258875007618073884864481187495009131557079570645725202121193042193681987169591473497027440614249172040629710095641229312933761975703881045918546195309850865195528169122902902533466180631341789683342888840837140515092956423215339065225737489367050246464381315755113407713292969968263332347774453720519417884806384448996505730834577147324976236646085458197555682204867656209527613810977809934836785465830837099601784498303040866723570977067592292130611002246981979940726391115227398378773749578798421580041563087784952007240912815173258492052907473838594147172494015722655671888900996019517655710230355047696549646633774061993943422029964538263413842252646031748283301780647320131529498372692867365327360194718543513028038962157658273124439819372841576747361529207592851575592602186881029619056339647806324262240403393259507448407972919055818098014026095831825758699396584175668083687478607380083744762257997202856381981232341224644689232929428999863493891964308921241364618030470996770262653102257093726200117160291496698301301533310297319504143553145732581720970357961215002656928232146042308466955766763419411972841664467204639537320262329007676563405636921762352710805621558401045878520496285645360291836975803647648479894678257230657713306269659829111022199418478153981806667541644490662894305804319006880228949811898101802714068653085381000563575480130729946041520001557327409928237311626306442178142950980036430562072259511598606047974587271839509949608885532931100158171871469503201093771379290623058528818021278859455851431177204897195814523680924246904915479102022749617144962047498345767562317115214911144020420770051185539468382726008058730797758788520849830896384326329566972461308548107120334876775827207073277145685238472528654647417424675827632073730193409655122359041721081176509891339416500760977078125993524747805001964361940176934109330793799662374084289925155657824102023400339636120001622066898015411241319809673150066873428401995885322293807450423189105397161189491207447754914036759365237761806015163026167651765480468179992919142290970755529040077265581490865714840887371004738308509219104464490190704057917860867043500299683626650270708506993704262367833179183303370590654903645432483537811070793421807848410372739116801558660422780680954176651425284112990440072912128117239482371681650815059872443469179951997341927744780378248734893467756453241672721327483748404817174900702875207544102312846091941218332796502800113319221007670127376024978998924314079087715026290751724957230857707964004837689587490427920441439121128265709505249171487485996831573324014787504402995818635687442716213392785526912947235650162656075641122837268837851551376669215600636793893017180507426218878244792190827151978024347787917535549750996968027761841030043529589507278372015466511875756632872166788642317877667860501797041544825242602512342359606027586764225838109230063044337986012043634535493094212092393679610232152586223184926145945921202141716558883995698849868448112331588311624744758694522947343364313396255103153980226917037701498883994439239255473107567432897853932763833415680208279025006192043302016955571863476729264814317075900984489127828239101760899547537601962880541373309677227950039279531314541887097998592398456495409615563762620487245053280253484509095640415833466674949688740559538013555419219168948906245260588595229347677709470464482222404319996692160097183988708648187798648412690964650158185756661650798083289526670527696019051884324783843827165618375090454410212199892318921524140498062354562036354307348584414124626398897735735540929614168436122712149098027656580739895413388671075652571829400177017473639416216627226071611670195935807747506575646778371152129085448703269022108913431750951068881127164864173095270893314885145343871226407176065779752126047442806997940734655811708972100260466112856923524411678377362411663897177372247902582049732245597021344031292451771116638297466544377915636540897027452226983015653516684378494498173181699584689952640070529550548715055910781271346593704720285642429013976760498929989032344075629179735279139871006517720244221670312541595857665831453289658075021771674955361142643210205037730602130684738780259632617990405977495402165113174735230883322520227885605697192386200604276456610813280288708108761364170853268083166480365385996965797396345804627748812567351283535962227479714697194704548006582091833194101029386412238007268313808643839936488334494359754415371718817506909183285123728852372054169631581765090679169891937373435825365374707246179879156687552703970954249872961559598877270930245589176442052609473849536075729204927291673804261799955685685913829795025302196305823129677428036820193475191339892213736824538230099788849171016291759400989292596676778898897670236964561261255946820256303152575621620908977255982442569053370066067038003474302938115219539279673258945061621590681980201457555517023787480042354830097096295779802477313612297087335483946898890454510140666239312026685179565257208451040038278597553961882178652660754616015238822645875708563476546676131932215254326504594131740590057810171908269088836363659351158788843510096536152342667054533639260523654021417484696122981786324184305589623457006412494987454051433427873285015632868488368531927014742306063173444625704778363148446818453415730641415336373374487297932960949238160565853368124193987720487435112924002899898405082218982661533667644429530657733376065760884056161827344427591134999415446298063804435714707722341194862195120195230504709729102084031302943525479801208536612250078752969573939945795324030865147656732353373497659367211352469784397933883160896078300605604726795399835413131889004922891181477013139137781227568963899269335168860025328558756333863666165630329862857397991759572631884365526622036705083489327243759461809004116205364202134163041808182388900546523412098940184346514220100184407645637118534176856534331642931904231434080678475311820247178414038215552257602378141792947963045646246006251578878224216218486248954622497826681454651494381114313800947476462390087596595475753846706462718114274621780358065346383996358635648717314864633297081300443681135167626341947265117032042106065880053190586246813031613603184032750044126303614553951954229678892538637035880948080419349393395223367990574952556075065616975634670969581229162273659579110984829140016829692376803473886679657623471155102795054162540090441141804665028445651350014643399746751223928668087470348822425417844570833594452843611004988579946481032076153584751549372290118715715099732217905098105130452594839539936103228824153599537050556329998655751680845888701754032365500624364670100706836297055613268769756109534237582329461119113293729176821873964881279045424041554717598070367653113212513217480469555101992009807278749141696753828611517757830756706176508236131316534450966418540061884662707733071539423278250762345365929012467020280074426637135661476826443645511915281311220593446671285447743474366433017005264176219515191739085989370916803211064571553685458632705979898791220839312882900019576431454416230937229322039259947919519129371430315682524921272959932532102949252615501865811715021510094280017690879720016762756211277415692643134276457569937953612921764540299111283979272420330354280553162782722695689505252041592127419500735201290976883105059757392092651874454521120473533059937178531236814098065948849328122894801634746682171353975178942776030792590532383411826855076155108576122187241846222720392256621318948196541238439449480388678634506122261714543585055244118384369612817778534623874164804574171375072314085252262857323112481340440401737747138883246614134680940679873481058642117846661750471908432260906697942845044877731867192527437263066896016614883854485743243339131666903582033179601535106444853027892306432452535564258090022531873896011243719613219098722852559081000080381682791467299186720440652506501449688671308569105067309098811238317599669913396311030528172311374009715227159794245708775501748593397809084673314279225795023307217030801554313978385497387171645936454054902796589314980527099742328778640258791858618061129470018161617694606180117210776669739021373456004707969515885186943504213878246890927767497714043286111976753357338361349806056575742714076118300181141138267615609218416139932218268594628484460303509915702109079088449515275083357653183287341607796145173682317438277856570261037149363043039083471577867908654744539794682092979907463900410828909067955805072758943329385595835192373384089624127700536942293294589652106960387133103556361005093283409124979069517179840638056961086980629646510057807035594300069210021249957731412304253583440805696822009756571204792654774630936050098856480059608290625149443612546004679217606779265374767309358106742558321019126327872914601538665256198570758761629763031372621102871206056295424373417557250362930452067821771065453148115685837631615899033583997222414323749297677516691680209663771105975091091349424022797750640065864897096948502040657966596869147476385049634428511856168935955035733683906357005320090389813447422523458093707644618700033748239840667116156686381336996042077515305342462654574877889976990551883907175550675990680543046553297198007002747353344486687454787242385698718258734067517306496866587407325106969318291868802815764643088656175333103993383151566622633217137316769745347670164348191582246866020901959702494437168693254629003338262759145375156986685267674516536016646672218759633335987029306649629669168386091796135787865534124041515894660485365382185935007831494392678938539668151162732040594005365991475557979638269879569642542236423982229220450808769975033182887860597255469216231134614613849587867362396942061735536771694221575557677403101548976986314680773664734851183306298656668638119870023818490662002145044376622899300282291288108328937757035959288562088433989801808876882488115370162966662911530089370104778730729620092265634100245553982861495763886968441897662619862502807321435078868068591332966335162915867612640004503301162938350314475235031276947096170827659068274740189761238621244932043131816215336429269866790871472731081771238669643766657158297757878592963046888735844465376769290456064274412500907861667116818446843637049398813067978994732372755214040574728646736624323359653130139538033071879309980937568020950782934138218747301816931340348041894696831476351237918207420143926526543424550940902564770036265402835623084084334384373590017039549461594878444302262122815354780598286787187638419798855807607157018494754545534336215286129654284593859004170057851554202279412623350737289130714640641536476192318053152296905360868716606818656541375132712451628027082789395001991039611154184243919850170130619915157424227016655352159421625907763202232169868828825154761769625004339767999035281699165707670733999293278056804712022288757587338366025594922067104774376546577489211548664861530294145428659847837049171854567616133730498553271503472960627923729657390472420161975536045920531525151562259873990034122805299443637474630900980271426423150077036553864699819949142396400512358699942698267660740157882948310724446350868690174096966272857596841363337798631499477003559772031782047835131464211952087650594550885959469535854641719928101003005694907556029988559867493781153632632949235706951064965455838901588297320919510254375110610962409321874390594841835870539438349694019004835756609390275759710564600659327804166011620375633928927249206958115965366022050563380230969521851473954872137162053349836683556023660594791992560794587197037787112288448119467116749416316419202784400781260006048520831278881819630766922358784449441868668563816426647532505492767561394866213409145449238373232429570023338676296211081024148963166745502320171586161009203232038235757152778850322335710969684768266660894868161787699950295731733796704487649436364625216256209763906239205304925838184773696591165195961940862922519197211216511021000816326860638330416364908439939591118166489195773250030117749205388520354210286970013163838827745179438724017504780437436453590641565602614816149105002325206774301232784387398372778684754794421343100669161140692899215629135123708376322692909833451721344796740488325203522234918704431091644443130450446325332674900879743025115172861294934244072441202238527099764683129571758478387132348481792312720725917013794027004929529589613872364077459880892360714398657899404790901343138073527432014954962252407187107885575585612623957717844779095603460223833453365385490266250847732373493385648963318977055116251570018016452028163158134286380105835932968450676102812096497398283627724047901681368066561714751110243337163875690240740635846439645419384565770268120952237811376411497941470674125519598580281490662873510212903071550499948515750761874935141620318453472290475643800326749083476146782341125222299494185648021462431820764265681895196894773932923285014551472200640720115044384783673340868103719338729646554888605019333178764941621992063693885546877254748950361774287998892766439867991053479112937212697049398733741033564553862391972686682524432995903600381756320667085896274769960367833035345229152535141752471364841230748208189680756268853733809988264735029390545000543468863590125100260514895418994394342420551342080079990541141774429891548560301234938756772059860856950112138949681361875760412265631827639990527256455004108171396421030014860099930746968576534190272595437749094447706874368701879338007714285278628781628108012876202772203180169598864048745096420455766870278335090044767786758114486717395895864161849411043403962111064700597333552555111920068413611337345779575623307319157022807578140655076511918832668475328680662296005085244452541280872898427564245053210540624128031080704800032220119714217279922700607565634192891105510809986412748292731343253787046507423535489289646946620630319028317035430994119944081146209840590927334925162727996855351990476607893942568723804340463851779395473019154310817009576809489115844681547822852834404198313377250760504034379856860282553178924215613391351965056786421399960079236994736982106793161592257285658836277913341203245501752652864302365899509760436294195276619060800174133415567753621200057520924743583547762354041017897810872140928405698438238180751723359897778541419954175929300815071152908056820109051943177805836307438329265912505217820015270125055683158844097986741617819266302047188948899367508518585389457235486447360987258940458151848367973064944340000670489536840450495119831979616020460350021550552350777330428961406865176600086474695281440627226087180994291898503278570928336242266715107902497685193074418332505518537092797423006459167292582413053787673137405809119669423195291695913375737430572023766825715682764493457392775127112542865694720749003095245191741127840686337206331144470654927295059898577011241795729474599776573123112705595341165827443880610937044413989492418782574490625920432380661925040107187267539627422198295121361837849383059479834769114831222060387594192545338443917877716070690427155856152670085239629860044900254118065908129397794919414323454007876315312188112496378289476042428629949978123697411022508054831039950434203934874125161825499200673360711956757732464659210694959389785651007036960410036758302384492872291220790636446193643019728813654932339786447684170854460391577803804403441355502844928422265278592996147927587602041879084050037204078120001850414820052526661097384242379868502879812762070865175276786946740132065123649283288903339846939489881520252839778683811373528705899139648831880148419479124967768617143479654661463001648909623007288582553992189362451915984984385133500950431947521479300778644316748816166644519943937429897637253691795801729840063183530857849863821419510208303149421569865956971960303119447394980759309963559685313170917813242755597854455063996925481997459236465487732178677991414576449935428930171794418208857258534598817661325993090378417254391511802622307402164518793822870730700457672845634877765311809230139706737849537353337896526621079911502550045223079826108577943982106685259314939726498908215200853917867812448018001912297101580005564898354589323962332367095871661197726004239569711220967097638347179088043120238953009677696142680595494701598048532338174477454593907303702528146272230414290722000446930178293833738026961434446764000878073737802634403230863596448321664602259080204191884938114400510693134686119876280299352269802393899038983239879937404331652722175925834523911544993109827016394937807400609687288439690432599495852273572158065422589972353805733637489180984678460172521844975221146015955403371610040647458449198429953222735227559405271010541610391233743200597333589696621359911614998868500012757216446321517408749877406180735156574026994911560507618929920821106598829042724902360829817629608209341469325826044545778685937072918872629707733971154137070019458998335299019765896925670836714469898000890385964188217936014235362809574011212540122585010318042074207949963502640660449735039552432518455458245771195828993742991328110134559927877464048104988119060078217925407885190329815517231502314156509571724149931315967265032187498574624487067361825824552858854699314435538855303906531323206452176085803218655730269617504991980357846999748085760008558676215774958813916856487912813268560170946475347762859001931991710746695587401723303255750797498397329312238039332570469015835229794970993703588436056440151760703562213857933206256753539140074630787493166993797628130868162141630551615604114656788835715995629560286468083294217308269136440155545611843322989053910886059843674017868915334262670887156991209925013711685407757541778390051999335368544778431079262859431037568697499492071402704343476755275353367725163300694192276111105165712258091045170937268785355479238849689359507919371308289464148883358810940374716539654614573846098577088406168314118435240767546838006195402959515577298061017043055286430272724312389457100989969668496037190023748478622511001515422732105174908475674936783913465416031535810739058759110154448802104624250104035202623597135449972694971080640617856927602950751768790115498439368005623983721327011858952635892274882499093370158564464798650197293110370286449760358383467969415386987191189271243575355259291903971892580157230691419413754005420071229959751601890265150015080379422895990357380402391917539876883807985362262559991426996539643933932773280180040198973746921593440062204718834321287972020608446241130825531348646973249984632721347780091664859075739746498161933395579027925995350222106151866958541559201892565598329736378917940227319687496360200873544119853365049627491412551222153445975155656581121430231132521518418184468714609864830257178994001482100091967721202714521719877354784933894337474115276501640477328270373881264375215718034743667419881975356496088831321145952920444398722972612635900725517015834404324646320327441265519824583170931116330062690298810928044317604063649332313216691547072546882116101592340632624252432129679358604952877344151646221300810356994974144709844018910573685769398486133998341880343973170801893817892702864737946026741259627276210346535932591226060741631504967965737561771387358967444645583696455632270063331005259750698065605796365739379905511789942130733621074997621091428450159474344712816891826519672031246466087344253938480788539191258378262245967991978212553817137046573612532300508662993684901431224698150786856478632964165608594320470400008483778243054414093319736220298029155142732655495146176391084244150596226807619290487533520400768840580637386111450796165663920946723072002305587046504713984107337861922704976082244120341187451860998248201649666890483965493475019904157920289760872736079451738080791503082596439781251849039637552323273650678874270679458856803844334571847113491469165631080806392454949332499030429253330631503878286639014480619813288531065073818881424079013158411288173887382539657222446937018599338865595111005554458433605665735801409701482826918405110862189019557525297637299874100115077519020252859743631969158696692293353163157206682093903361645004778443960485959099727464164702914785771125886623156063341206617278060464803915578001940466993292522335357502341862130501500728215515077214282783456133962817549429519970174493849800459101546387531416504582400082942181925221680050589862820142845679054742987519484684754050898093450269783565250367306514536424947109339581345258768666768275502580361582227980470505176992501170297285432615108514327926680070332304435385504384985557058516051446519678387705115472133343107421775095037389075953556518372957646961503826200355815704333418000772732477129771351399856911332430882196278139753645135645608563141699918736731556616623271357838776499762709665474805578503505553313717713939892687042945771472191335496428098413054112997597520458679079716765283073573708691415915789294999351763988580596662267731337202848082482887036253108563226681130344752891290564758731646973143863191190598597288197877059715065774982707638401137011064586700459694420304353636034755527969830435318189454799123077008331016713176588695488037517711244792380381694196892065787974335253086162523264088501218380755652460738513930735413303290838364522953991382379127628744811546434269905865229782757827511525100748030869927222814008441000629693354036198438802055535917586711554665472995893890902757736498440830861351168728342172123035368999832894719535226451466134112646930188808494766417724324770267857537623912497498666429542742930283760768919175188367780409671451219707775452903378591530067700084986658328549300812773908445127767030501487406215207597611778569905847933436915983363177930460805912582366540465266269982599900438343515057366117675020022039227667264269594008393047307733418067125505097509845895064017028771286194307309350074492184557492846700807726643065303601887106401106468501034996066497548721959184653846092886242812082615302386057864280175540304313342426428821027973857011748606878313917777284067389589980476623901620208757095383313509277816532570279541901671386150266217335618224565323679894703810228311367666538122045160580374056970825273848517572784228389834868992342391530056784085760094881416150019468051401887460184596643897444807380868772450891827877037808333249784115303846993933753372305149379485699333165769561356284392713049536252328814488137677580021784543803187958929253118747496732294573224281723413625440909836104807425219300311980222844567135274528305854802383847796244750448604594056047165717551490772077743320032048330129226477634581752024520481955322396367525921398726956222538495983278084717683906600649058877875430769944861391174554759912415831145593316513512975590054977145868926519270088612246706407265614190274255512580103402275019989150677852948758733240829498084219226573774224008413139065028426215779967450844510810803278685883779672778043096491016446099669107686424357493805877042075309040447873945733193886239035630462231220488177496199201156401344871904760225883968562672946602384842108571978098987848548408299145166144291716727835949940948366411272623487657413249609995286617288959700968910383127086685133220539699479030529355741040760956536455049165538885551172114498292006265128241559932519618490427027962273173570440185288640135003303555590625741379956103313202928623460260013286735474211451731234381508683310585420676250786631599453043259677632134061759503790805623505083261882222213765823325654167384984322783825776294120210238036947951680707955163312585209979919231807558381467944839297125431704468402336719698474839916690151030652565481111368460904242147561878050947817813782670304109498660666663535660171209534210839615095875357719983760044772086846692336262463493320774566363681987194694620956576061836031479924919223486808038592558431630381463199787832517778024274902851779060180101461980877603391997111017967748720161361826532196125559708416255318536001265624408650675800705991356431174950823606032994457480518309311157574180738247148173448651788148165928367603795705622312613965894060393523824587385936899238252876769301535246308036000876612788456964881595394902092413284274924611753181732920731986684287530463779066261049725982155034203981033420973138395927056002723113666103748146910343611963705335787029072875445019875258116623847736135663654178933039586898958599803229020986835170923998880733277577808532502115640714769853586543476597224565200983819015944299619157959355251346220635897704302516507150246395780431155458136821641540461049479027704079499208536276044894303452160122844065868828810095160999172371000413032903123906441164936275544379550676926869535477801917606281127340855191519880954017758309274255305785445216640402780258717111401515744655957082412234537816810330187826886771308315615078735236952743587397401160247755358886586426992291278942355577431542070663087903954296623423670280054953940887802158692791188078481500698409914551238602639082493070837678980217030233855636794229982788898971145402358199759383098710030833673422432767408696019085874625831728428862801876656517681623934506163997558981815686649674610163283956199682239579833728821087400523486179866168343224833097549934075038207356441757289434080645564469775106305487336044000641722500173169660129036831862872180792688842085145789621258537122896920135861923989874554583474933071910706236767923055768320160499592621599426363407649135696793549932348877279198686883666577009116876734271966033012751758108291909432886855752465956599068445151621633163140875271502910960091221391457266083567201449402304453106646210327082326234960860135652821658649039600487645823909427095790288835787488374086040184680652057548638393870764300715726672423649087017168582104332392335960078061458767025951282566197981280579090545541202421678556055913616893399818811656265772515353366889308396759063695526475639261857756688540451723093852337687585189340920309594069304578678814657163623937624372551202504952876983712281124489774749934001765939226936916613356115027891676164024309982182308888620082009047771441985923775496267574374878100979479985261638038042731894503922232719411306107262600966138939648506658347264557675258287026346916748262119121214874903146690882604558541464326387442072683604263930386495493701889532053296766869114808181589007922684266218425004631742088413895975227517674000858948725451153924662262444060177442273215058674777519413598358960380552957553366152282823653557491308419781160931264503444460319756325264268069454584048540224902920896442791192088122065523936441258358353694707609858929543880254473814725908940292802450288411320331363681864337376818348241026496085732680127528510321295276447006945669818708167458900111296838049535283792183776062640444879258809669506150896134961245450510269693294440549968595283118278222038712439823338263137827450573933068834844102817932486414822008189347521334162918282255610814529563974482037803543313439800863150574959390244977766797594195691306618592752083186518884894661719640215928670965288083378478887987894075176438923662744476091843701144315448401094194350351907347706808840238107137437512737431421165208958871336278503063675569163906057109778140166564811437232341683884489702357510327112551168462433862809737343970255559281656376751444410857223363073597678857820343786994782271329590998306971821503535138387935161595789096616201958791251480859718069505456850353120648279036048776950350920643600741387956016528955680164601592794574263157965202537373926912590449719237464562507301634005936929492104209024786269210822555765171183330363176929579224395582852671913797874271303392371373457225176131138396047618495679876694093229662012815945783470137173857727611770975284651731657866937146212197048888849475328253160741738327785924801567603516339237192281318691950360205312915117408569933139871091577660448430586996115494655116276042641825838894196568545341498445689456449604283444109946226195419586780788908529554033931655550620852096903679030491776628009237315559081078733824884857406606070090732447748754140943416292450303066070088078550948762638740028752533733453626500746568934618510693571007665681764459187690426935993664886955687675864765429587713794581812618377729147665959874783089888107597056651922248879005589537499172620055620411832029725166701996487043721256919635727004751768027879276761101847378066391391792423884534908588785475196348039455641987135363781870315539872529164237965051111674381345577541005967342975894566346866954456194526235407896584887505341175151775557671532278268964838429905821441889297350552138707511072156070466514463403916290400991545658656127141078765292302751168319978953667373235210327039504954325323641804333504798919011337880295827231072055530319965922481794951074294714800358869598402259874576119633058616469141938926055591860127977309076168906548278977096095424950849443449135560669946525568115279923863289967898941998784310861636482123714138325775931741041142016905542950001243754352719651210167065388751199606948430077941588950802655733605793026156733901677172802273515909813725474047672596928688553356816485207779265646328273900066561849633727405363143433094763345840884654140810775145001001453365772876504840131124208720370194364937985351256436071429270817713613650302440894243097621858321614120209452002281653191281175551881510315834509784113958589114548374720079958179185263729169645412231969532332047015295169550988284274144602319583668209638374003959652423763264132571235759870923588195741950796223496103483252809321962257680955234214607170289264513180620455387678120326145151346531633688733091566354688452775547067540623633022061460797927268517450904818184005352701358596716469921199904216403744265341252226324572820835393758629887276708870007818629375742805106949513258342322906936466414222723715779361028994880078400755942682777137757491184396704646420882795572300534088322469278022897601994380817746738799007422691272348158080542361987062702626294036156773436287273386680820507642153811733837880646491907456334905834761510777394683978652363766419442102082559975674615616240907006348242820275791274152629709077000210303320647659315969510627145037201655582180787858337153591456326926443656457697057477797528924947659256242794979130970734517571757350511433661563558018664287987940099839669166679487696950352084748605484430173904732199258747485093431505426904812197653035259304382834851544410232903021997558432829965703415893174236817804582979932110293866889254904313267807266829397761557710889372353480647527907852510968051767997536495446283333368051687267164544776005174244329885436339450155935868923870360362084524201423126904418469732155017457008154399571617573493194642498184527116983689003846215961004069576207128290940563249476436845878785025305312012103549297267887405014629993160109450429539280372804274582904598087487489200048452426564453269348964404557733958170163669106886613993096977819976812909304811535420601380505687341311748111420651136069003476349542053461667555088105099084296967661197994658582043440324811489908893336815591735618479296514334013954565153719573730121372877578698100025410958435001346471328152372353053204013979332134621804211232462845470532627537725123611597712587798611022667793160313131305954046596543456242884078254310349631946834226892699529422685857699361661356030144863626275746006390169714490540922450094366749442497078599090795627757851428932248884331213163914336733767033473934231389113935056554658090263697622066944717234735413485163647836407110797632782695574397595945129591715362231275620182388004307834691416041051615914014780017058018585591774083847982715211395115034727317354423622300400144566182742792007040638983858260727066124119266781441884778174696245065963098830485344172668057813365346305062550054314948689383978406256888177418287763631665038332211001952087953308879816324150600679009108863734722011856884924670083504639235250567294169147883728992382257115680296059259738680573679898431636347826366682576416331257179534128146520409106031345424500100263018137701866010918836469043159507760473604549850741500133584572849828855860964084075484666790109154317352709768871544122486196600118827153499997392401723038715687326247325281930196754369935494653536282056671957723622367794959968541628679098005925950281343732552179288000854440959282928941413078916538160743972080282130072708108646129975411527257439766297134753571465248598835710198780402771566585825058566684511260604759013014418204377989840809588209652381640105745851930721948720722371583979496270209345294871869756446894196133969420254050539265574499100347271838864239003280860671860305148729342926086550940411528000081698192607209945460576332211159671284379851764668222588967288213858281875053017674405314505209523674697932621417186767300872090546267901570656127880747565636061664165876535124500579267416548042476752279490844884808835844476993911454681259610365445516443860536724905393277076805786790039297991817004263038053923412972452412924074372003681894620098691746198610500209277379899120257191621316204083296221730821759645336591443205404849395585896541449231022808332758277620293341390363793725699002824987484874522125998202243257916169881112010802471895096735234245685312170262258131815913387652373745500336674838565824074720586798350036746698949157478181420621355908117117955123147427033213140971259206331381261237032323182790795007669862681946716158681913467690093922360583117801648516889108916637824495275372218784317566339804719616726843783209316433286034807093644344399837537341554666484046391881433018899604102689546429772919305144210478552797762982962258595927404490535363448840748168190438091432934605939962630011493123011929931365324853080491053505267929737669992713317909829507095082973536685541671522086663413836286486754677914890342982866854818344000781239958405459136147954460600918264604911751232471901840635973453905615467166395458028337385214346163371984317487212065244009304525049489481323356316823520157073589169725188023651174352345688507016969744005340790325819540063053347116490186285699054211250980400618432734996201905879369015434277078094934298173579065672170927509278273721631821611958615806384459966298169232744785671422777344539469419000589189862186997701790899392385853071414109901869422133885185951746503683492995860174139842398281367286200143315173645432422490855110419907695389684553056618132225781631299260887396339388645460492096795689258580280347630283033618691356974595422222829236877521307244777180358366118237435323420110606131003918921121415037885432718711877948045771196658120938640203745863910593243144573268127902360849080450505025187869995020813837194895487836802578721248557528257578102000314918764462026794150439615009808301385823512678906012666261207094413242102345331775015659406734947296544919852434672944919874956417775844521584039269597482024232432923734426662685900885686801252119680253722430025288978470837323914796178124475855469471225799084521479489275003660859112714226870450219641554640224100540884764241978849000023996250984105101622649864858246027669170943722066812505818923594541955591716076424229810107636701572957810404749157140865902008553028212742626606816265684050890489875733977593673469335386185355040221869711477906970725047824964201145409650294821014775993600773832452458823541477077289184827278151070168592495212241645082587421901431881085858948229975231911925530186195127458232072213996580693808293151044952148985695741141004377544708010020283927159214600765797949301513647639555671814270119769259107251654875371389553000906997846556334128172752144262891133123781890277401630968785515602621967920036812242237660681014164061705969334067383893978604511930100380851047619458072634571453114552536947166155360796620509196931438547388759115672926529339603733973277262121473896084396210897329342174402812939600138088320626877362817389176420998888963852005052864024307943452351231475819830146615212490464213188426564837672795190162693043517930002312832880519950105860766772908694855970636620526484342637273514223023426753042302350739251856473598417468993555673828239673558860142534540706807741581430560973290967678911690967198754357441212657524861037871939020567239207298289475533857417791862556313664252028303864323488894758519213409960770847071515484045146215545303569840073808215710592265985799323326723404316589409097285291853682044661432634604569160059087728746488842658230362506651494154989367792697476525903543934013399976324845805071329846706437070446880586456954419822798208886172343666544775838691367828072799632139898113352343188455169307696023703541212031744958147843253813467915629594114018079223269041589241894108714229138278910530734942380027170971947170385048530276785816024470986238712793169279013026251057719153681405402964473749009939603382583285964923836155593464441710365715680081701293048880619840727726978624644895496868434081446974640332896563720340783344010446891021865228078756295882139220773255987670080054887684780466849188494634780972631715983707787943613157524402126062482502361934527007535296787516461829649678469899956798842455873435058426643038812803595083294719100933948146101762635626098603972302113117929402111279570575298057527654352088177391915337220869737826506964494986297897000147624239487367609280482817333784399622736986243932942433310802437181239628520913720354503053018677566429286547219431481777752686897865613170731828683966516068147646202720452003051618779633443614567920718407850310548264988720605598119190251966534890945420759645240070699514665119841037527173475837024417651836470037161925212034944988985349484838435480921104775289832557788696742340315374356804003916805354772480615304738858804916460290675028290979537206681134424267906911087209782845476370191189563352846328256025649952398819706406691221559624773904946348610027210252526203951295932312595889507359039756324996785072093755855537816532376205079249133282393469162613872493401612239001548986010032591606416507808821999888865031229357385817552650523695327468030169985135407694141632543673133558700075922758000592836852036259365171068322662297686437703721006038519726798624476211277309566674718310868547056556580888983662271236509584013895526781707755381431156536309657638260004444131049874473483475771857420398312828762181949388663693889997957926555915291456129506769406212160830246163773963354402808121466595628279633668351726231927578691367307740520638127941583430433280018057423234884000853386571096309616832511264562347705019080874352208922562085604230854136611722006366654380881915825911691433075594868076857278964067006281887472772597276935584132285403030387453762319263017658157611437148600771294501789275375298319768802758648060032381166018316657283854387186719096588525096227639862349738003107202825049965817386382826459214199430751032844948984289597670253982732890131881216020241319362472455416520194942047455795392742812067122456287003323278269572057593280441946438485667799681098181884384064399432700166326049313255811537652954356555440726571567199315055204456047320804115766626926398423977146684901911016811278067816235061808126329862163992820989320392677963215665641705515857295152832042861740578855521200887969882152811600105147388812010351247130666466443373018128843814700334627757721396124492092436278727435587495212949826533137277169654097895352545016707605782752159852379905313716314403593352592734518479780005626821890161686553847193396867967078556469134574339930303801728856892411293696265758325941763012111651467090208630784295534065925416584283417016902166991969690695909481844480038961104233711369848143589001196744576255762829031812147266770886798340289717762531048990081951564903661090222447832071848562322297130774631802047628259774143627256511212669318113291645929988180465721416464567668637841207947648522564308095786205223438008422925677882510047922490283878794871558486882609049833562812277633246806624471098983830001991574086375113850775922667337669751566406013245043181603095547186421601435574029768219974243822724492383678393475481969966014057723785840234319081830273427460221199573729587107733793410887712700810321857600974033739351648188700290958826010135785396031463406049369399779161926520674359589620578549987058248825079540252752167947395735449599693883712681465828138116513511965032291246241763538688123736447540875664923918313621777267669753734516798383283497802335489908770197416002160392429146620348251873538371629978061533014251515997653124305561854999324568402363269953917463039212907579349619749358041091771174146052815674910947864749432476363754115285740351669619414093060589053841380224844368677151446295670427151882898462242329321746087192506762552168889827361687345965366023236856877437818317311232546151286553063468295485056409155051521607883693973325612380153858316223702046614484823442991070541162082919158725615014902952771893711654801933914155452764372944029368379767348330381740085580079660588785358258089083332670647215702877333721439545605866261347590245350747537076382040433946018430174402079405229013683653780269860253203852523283101177083800724612547114646153324847606919745263473384313250742004382966576978132280496895732760016649707376958976490644372427153856180636930465289911409081621750936306345510862715747079667524604808670819692933796395127578546924939750007204733945783703504560154994619068290843813955829004607702601950108815983357477273506881827767333838893618881446384489624480093218064701558988507280942556224058848443313050454010588955732043356337991959838790829078119355088717962819742812633980209798572137879586424922019598172763305443945050463379293464493504388007554587779539627342642882015675374702632964793178606606751819214973154160301624193612724274851437009885517872338825113526672520919232169823276772586589847613583005092820486796759068386806380090424524711988108000430448514826685498516151819158570955191361085354890588687570806792690754610469856131363924898057361217570594872417642837658428465980058386258893740853705879001975018371477865929201317111471525687712241363130806836946819486748867679342573679431984958303718341100409619598655124869016593950546427406268316380659950446268354224136245012739019084041646521165018569781833481494027340849671585726210828647997679763637679487835442729971252980324825683001834785812893480412593455765666074800065199478915129990045924571541094577003357275827647174119628045878336867344159706826490730472940217897501595661675057998488729713293631148399255362872007864274782028229144227009503242847171453600775634613368854630210233430551125963654141497474225911298420118976259692725185083053846424831885065782312132979174133756108720004179505266187513350957574132582219996122306430728444173052690747943515313754437837888475603428883541801797055313425171943939380266813110134315080101268902686705094151544989087904818176128503286021433670214940203861604020673770494285373259869255370092246009802006569150279917010798289599260050935348574321324409903167028625448175297010519276867255077688403472740349476426859690672521731831232750134560710133714434491405478459612160280278863872147330413247846280712771395669971261282457440270561698286022253561493928886219407114089885080906903515157219264639570179844652532407060568151055398359159568874218550355977200762473030063110697839235503304975328024766497847179653296534881181486069839831282394972949669058421341482795377521027098598448265960969107389353863032701836548043023187874505918592686970002852490764071116115782777674631758967495819849966844265467152671009847078224528209419831417635918816361012056809052785829363663942598455614139827628691627555490279238128024444592362704987104678352578138642135729812920650467824577662861421776705597131910579763828434847184562518346534486820005435737480569768081611987812588115935576207786459287035639618470418708190347895060976415407686720913616460529270601496205779589551970325644713263613704193825370947347799976947249236251095061286469923012889580444541481620574865015193353328495677930544298869467263620723607598515884060001025346719075978491027556124437849161995721157744069660225442860866630190456480778196412647278402778352320599040782636048229456043239531223282297947735425575878125129953405783805666469647092183861915908192281247387396014808600364313186678062013713541762998315866272633499106697342621584430291116456164510142276639752293701432054179870633569831453233710650670543105129622650408913049361443969996423362843971502861576347203189555853662799360878068050205767545626132689955708657829953632827594008048254897013636455262350070397537978743889875668474141478736920219849072362704246787911610610513958299452883859895431092692715533472225927991862881345045411943116587605828433540529961894250730603969565897560938709091070062105207553064269154972147445963468487648772299965159785221975118652868776522295934116024348589055986740051237747909093745094512432122698934954587120371027961198919984154068971586892741850867032903381239051946421811675127988109821652179007424705319185752425756404058959936456413653886774572716932238196015335240204541037214284673098098087243360547783941889333331030827726269583679746679723123541528739008549050210983051554855833368132330383264927544799176546659401238448330200584567461231087015990903414383116418660116393542966855504325152921486986020970827604526676977534368617359262876317052216592423489703223879079058710697467699473169247972242590435329356738047459455784735950740647115262821987555770689014949637328681072458685597750748741499702773130020126036697224794155294135284796323132154878855141874799476348106267372337240901914518863672657376733677252569785743632766884678470470456137990163310720731591243466382963641479177495495987640975330430235626817474410102431986732475671411377826273150416848987064552746879189292423183349648514020537124223899554786896580779176222424425616959910872568901414900030903338420385916115710356502194024353047249014788676887311872934472356823191450226921037688986300636180371751330051595634566436701195446109237842436945211506927202308162058620955970429586268366244569816226312970540852643516502335832704215006313229992925227136159490253985688673468565769528783595757555406523495286752330231813403259391075704129208793700258283128722245647636730634326314763832701333155402220241563376329571411737671513234810540336887614288880759862812334278086307444376176706396228442113861655586116636684806022301895342798557995934379961604360566023978599962312658640025721650921511021495964668634928015486325854830525105619006893386722592262791312678524479423681107245714784989702167941210560260229005857815305381145739618596076191847798045859050981242253680506416557512822639185516112216017321496450962814910660360427014049729783858243894686706918010746176534035356572835462708706068618931228127293343821918818645233269646225488698643230745583919909776324763193234025516210958571988849135445296349977369752135981426716726582468924210991378729864859711950420336103905049766257246744226895660520388863576701917376600749731914492589401376780451350544687788962272051273295333673706739902153467301195025131632406654896837433121758909737581263567530658639340571558598145161892832221017271081562979776044725265533001246135254445187634869925186321272365023027125910849365117174388438887009513333449653443046418026946508862914561511932714950319548689638575188103713677027651714954891993990138790781701055011483976290933263848361308359953663264943859582826602919405565970972647298552477678470545724086900165350830908495342184524817154443968505569829086993845814424914992307315566745671483952597936849396549682982810080155625370985603155504149384353282732371882409780019814577047727742315784321638691947308322091802507506424010739554914201340866754677930424011147066891914402437544169494576373953830956994844783882774776733660904724183084864837366824839980823304709027415382418857692587214054941126855420631748989047417548932027125996064765442110322071102642122596211635331810725017490317126914840512495935659181972358046574679761278258982778331463475482585477901305015352230531337245428470011004612287948466417027714978204882038510334240306550219593385342079369978383683962195985164617924761990343120212753294305868634257744157852690026151749396332398189165084106434581067103089634495707985561918948452824457669208165344181511732630213021860490232072190612582113082943073599635715248681799664431420213975587798763890201571813305363391253103006134008550801750069391817851557212560340620319842528378343704288426095281077252552929802471224635554726783913638244962775717136404563028025159226187946766461479859942757326320411895100676462537153649286610852703173481799085700272790815305584358410419222825374158159956769782178822619630233780218899618624031955496672416220841516597864218709726995172360520808428566651925249210138353386768360210643675610427767555497160958885359638832266414454556727803690324916976461629812400951852476369207852213824613873853107887469495379257779546213042327188553683306458827762745529773397140524206865633378214492636585191639034511358381355976048321531650081317275248627347670873920850286073756964435552520296036201997486421750782536862564772507488312748809657069027601801754072385937180395341367855035698558173220599371880759919754210811190756046738556236741416394074578121390214288331920049689737373734360010239954946800050531650830360721921973385669579732863528937144007823100221613077884614519141907781571600790385004352479868458514095964888674728517790412998752922369123905330946900171155515064506351630376801124319003398459444261075148846518082799018184104260177936923196179672755191081998356500900288990101911295199407697327072879222358213588175068112843009801831459202252876855172880807996138885625156451559510211992973321676565403998133065392667637190821995233107794877105284755314569832283632504670228144601470299219756957515458455480623503926899299421469112657811892977981113307348428662079509565315704542764680914449791016738624916299052299254971243900002234472193998331051475202059652851761658489839800689111325072504327497475652600909911027364729521823753212126851967251323769610924929534309481708060888897861160542427487521630265001737276660620497191691743179967840073177712101808128259115003915522800643744025367104335368158111397025457503962570009051660434986647236105075005188514737729649858658612474365409883477044325961790121578828110353623213936308694963358426022692325391565719163460335413421709904653174809761264546358914279009641844493590787596178185374613520326558859000324871745776919778840446600581414720844088749597938489085703918645180903027480476892065924909840673447614077752347258711549848609603415066021642858840757092485166837045366250446445588178320419611149351701692445942670349996019421995525203051575602753505212371041623659117329269326182658642732752274960428645899153143053778998255922439725497509112110479279360701028579681004308730900709463096348101222133601216915457969637896132826195669973910193637529018316532525000294886186480706120732108341866851943657081567475704470462279202765652486615959270235229435764334458462326973161211120259512837537716618960667691397141823399884345179167391927654140593572397495853754105530416354520207432764895095067816299535260988761717528312238501415117467648684369007193684085374743694961189531860811893047660693001899858257805691335459867875121201088572780114454964813352100522659165372950447916751980187744666663704517887788007540003041415534506987468699339405776466644243520945933490715810120575561268843806478190511100329406509097512826795477934690593921562364256855811765847763634892290891825990441825073695008855179701777635648445566558815078799342820092647718879312871857065359777159900974925827666141113917118148505498466352639337314287308850655076705797004555302582640874555144759807066937642247619249465307522108465256436249589457100608503544231140656081955032575752911063760194251186878513793164520060329460495298779737096961452744321311216280643602663180937799391329161736282494454462376636880812239581788751044112382409599727886287092595547223359389227511572458274867002533365501608234907566953170108097033060939960251505370038327108390286930463471630430482001946173773373674136374373192971876283075597731730187852836518054852027971015747783356896264430363232282475708964839730584920810073577138385244977937670398649063320104641189122624691659320089093994554662474045346614225082885008924172435655555025429623792266802084521555961857352707655918546754684199319357892779237380620411378172171738951407018348243560020932590675563165459793905127560278848847738485990040466839987907835470189245214785882777924751047077340072777492755026120445992088486336827021400791450821654441311495092835745592570429916983335963398022023997881274274010998021144594711128102578172194364028486230524834675564603472513398294281396768417585851115410614858516138218557669737733978292749988815972809282010899019511231590755641782514239059234429940489277351446280328514008082668952333727622093082214691920169673016439357581304362605291907144044106238398524219177349556952535145189402171154160607838549319006375299586221583122237710038964759116182734400615489539303387993450203422911451495902457096744722782967193191867705299469237873715184057909425320753266470244531341802209723822541349049845896990168384088523510945238552842134790751616282873813206179308302436529846236352190360503384122303094502110068763980598720019691980240115784557900377042247217692268029339151786815970503168548577340007874677195604289218737621525214334164013267597616716419646224871194604895432234429074295258026779417255650508882994813251583591681985957457030208484428791269727307457911573205648848663539300006753428507295512747643553648125768217512010771103401788814343188148612036950779195143046112303049618386994809902083992557280704593352484691464296122764039337592779644618164685720969141384318802088661773940349628836861185494382299343254057920314088345104890210625692447133232871420489824860066954058061497502921733917938418963245929532566710876549980710914291518513693759625280565787540479421300512320337668147732767427018037074759327373518238959760185059450806220185432426221858720992068497797842984285254025608032720349672220535229512104747329035297721446967232639386836215555400871613793460233073797004808475484519729160277702457968768450982609457612624239011411556066656827779327601398768906858304783492140858923510011241596942726623015716992944932068520256207235723666381020080971961430684844688686981069012486434567857628560870592565434359142163854230827627205003102305422506144419622535517605078553995167579948066488759395816021639977226290925787145708723466557498952505895651204001754050866449538208905551950862687616257251923991194662704755350652075064337418174820476087822660525996468027409734781281809720961876275248152687354264944560514625097239061259214933994834010043228699532941640409707946707779566954596396717196907115170328375947074738265256904563462842413572423292649620188267855164245911145626297742958791182710846377459157885042933830901147522746181809164816829419811896316241660290594678890392495887157749199278068625947419709154478796033332596337514277434086590313688824106030173779611015492701310419576464705715790597432970498922279299443180882108452739566595401266391945934824491432525937053534175304223429361833513398516486100623987925589927648016269624255048938350356855320680165365305167387625436941944271500507012537784963826318926302279147266861375247951473890493243730521147657090907057673850480037247129664625599020840870034783569955367420237103858009692118856000833631980497064324884570947212475141530842243767752297034097701654648406149441419436586767538989590385006566972266319253732866759717160641540246289707500986675409250798666095099262368092033906043914288697495553218898781317551053043164799686720375230115732974648029202405350991573963295807098752873600453596498365106457518257178725362347956736250958821289547471078782387376402096296714982958169238717513307930074143939422618981228989088265820665822336334318636727980931214430577563799187126747169228359308321828349452805434824491796559379351972571908020798317081824238159705598798860202242844689508977554813341237249240310876578121486541156824200760444050920508595258323611707658566967927963296768173874344024604957478533240713225017025221900865205680364937510188797801732379270840450589486533504334499888948625251676882643672766003879429216835261123257694562641356479926266663586240647951449720041696976148507684664293814172023737199096813028219446494500818608573238042429053899297233757231538338255398540937652231771904521265288509024048049884113978672850328333715208652454708311433671189349207029691171718078227990046411443029398300245894693979075386530384873778796986930818244012448929390738529937864296491450402412938856692171424715425441294909415494194106692182058969963315326039206826126100104322829709301650307949194111818361238455554092718309505684246681139754116097142530697491459007397836422475172924323161099583736775391210824304892712982650795593029445997119573254516721502657376076070197900763259261349053324269066606724434229383144807461153792816119561262930275386592456281868459175166628125040262557456567571063412238017164953286734658828401464948143108905316167260857064722853567556428176886845796634030973266777144212724434836990613048921530937033136499181547994924930400215620251566967077288376254430625727902336240504157216282236408393324358255288481628553877627549415022718149823657993980850070859503568628816979842139186578620460875126540984761502314053023102627771482113040079589635313108066107320078697388441112626202140064866141460382729467771713272037128389040336996680792576624822535406119980998778489151491274631331530787878313866700188279955818432888956292279954884125947239667786688496001684539681311820918527048057825468783402812983333157627704771479862088902010967359384862649311229688164623137033144797754608870838153097985626703749000234823128335983037893022111005534640826570965478290796146132156617678568119664835586941076918526359634417487016511726791180165242229929565585435258096444132129915711306478978093513645509202977956345538359602900563163237120874148150649769542751158003805220236977870321024657700725705166454723697055155741319729428411662352759426984330445591421977248828228428998649779666493298666645359311395482317094946928420081061931654089094175205173778972779587024568237226325058170973381087672208193064875266154024075824951520907197643111814834859119947215780381594479855790633209471676753212871170584917967199772813197298089848678637196972267012039785496079715536484174165800403408610022288018509459814235120385436955281913768298390077599648078297995763758975428377894537229933614644191769932830984896488320565352569017382940643549244455688225127568767831315150883474049799157230992502337870443791737303860329728354540665801471967443231270791386521441455505925363181156021115586578171456583632303708558087189566727249093839992775657550809435179922406102858103852150185256198418035100548670892608617082869831423544312631207352778801431350380543035339115403631796936433948697411265600156247293778500444042345539696831519375007958766191888417062154824804504440518439853763730703474824874219550696290499677513175069526017843933650776473980580128887647310491373722579953150647040751244264149452636158295719824970831340456892165521261342947576275409039000799089864154862606554589225197725646635094226736397146865593158620852897822491591413589329419022099652187140782290456125980872574222321793925884804010730502343689772459384355079316472594923447503617109940480409759954384572111407455060777898437977741863273759404610473267799764879164343602343228533297491732399361083115888340992902907808160302592454835335544671390467423472433579377763659507956556062164233069050563268573008759498537658288303525996990221798278977215474138232475240006107403950022474829426144008341947086099877179801563579989255581158942135510470852205166316656340800624979478132534463261472196333870412433569574682092587207499051901382221892942112115254550468847058257154841982526083608576209652500559018920230982098587612378990041645535509828673094236085159790107578439610159587572865018708422045936207348902507841771272653762323843678972015254479368185188163610332359975244493143829703778349316359345750407436059708233002547179798475722259407489576107350801470894028127554496896324948063139359185195093160478920732987901691994790042278024763080903854457288159844692039017626441959544306316302870160213314703066546755807872642846153238812416717246191861639462697735568355075525154467026070222169894057493437142422368814372504651465773494193808467069973791863144814293906568795687478790587532431365819517675323772359021552679989199046480524552062057570961707826474176044815483658282277627830421008770931565575359847456147647553953819669231640541420316318487644965905916520886389085487086701974672317145411034887031490669696477183267863339437628791548085072373486657147783807810741806678718878371435147702769696775775129588004151192503054280321460608811373159301316939318816053159358518924299740423357881759567609234681662075843514205035655608649081086103290401975745360715686062625575718596672477358716537191571785650898165514480742315987454871126331314705537144935220420121343613582663399543739302872474586892557453593535826598686261350484858425650170869773694834087133464157046188363744243663256135706046141719058390679061623558130199654221760422518210704838568624906215529039588508871126693795733579267249788677859474666838769088885275160682749522397028509886106735020911954226593737456085977011801192419215719881063092957047555733566190155088353071381003808920120360624694494727834981039128696700543891468125720253232396117916400434350281112739222935801482022988848849845857811703915763338508708867511427455979968663564984089263735292819189205868949263254546711156143725176978221595428560632359407014325509129119052313938683546453769916967888722029813765366034674218277904111174929444210018107641816133648365155375064061444774189329338014823421968272173248271273298173390138088065290925581251149598269781037069054652335067373704333560829843902273161528855834163763315988064155373424225566454120780510786904340639940704668498533293501265557593060831855015815089476645357562681886483394788873056870768459402002278133297777573029970541461258262610724505176981224026233956893465485217161367992320671100949497849854013078719747712264452702680641051982387154874631973734219540078146110609276086966725671551118286315934279870937973952108631135552774032452867208659574409869397800755006509054536661400163479471286746463715910531139846429287215559739884649782036969761971588663145850348902795053209470014676440665291140064277843589662115595348294752014268593744045461668566265545867671923259249607984266579824636264977350400703156584992897585045091256686333368002118200086954818001352729140946283904214442031472707558824022712313269797323494147611581429785488495370820255318822238301352393917392637826915095629086377664660140868397645245967570900214873217907359624966829219484730751259824323320212571789074452037923134063445019082177114682237720026441654349210525624836195723142449622662608595868617309371019522003504849645607693335005860327722157197879841494173840398769158698140367302202158418928625684342642346357783085951570401495777095514661483685810068915767850844810787030007285009339864644496680175021297792141117392162745475534534033223464605749400026473310249912541213850677594320542941168787344139521427496223227197485657137811823865830846750837482978421913166761914277501061022689737501302890607528379208326576518201690197320735975878740066146944036481684533505871255395843289821713820091790108191335415412220819861041198430386626324582830142495404394729090477631571085829373619792046086742005559355907068764839495727345677305052964173014824674800558882060056421601879386233464495374887733996932091490528659111933679490583037094552520136897143845726981125718137612074885372968130530089161227856596861718674443406609744559639105022934762793504410442445781958490345770446440096437826819216535899989860316929035495668545421879440997995618661950873302142283485309689866358635265230177606128569152480437913302493834650740397448589907298872437458184046716085475170162604446696052281786681226688946213649046729293523064847433277879460540615344226020632067580162654380276142453202277404148602485914425921549970613708042178923476484518578965190435683712679686292866847542591073649651152475153223793851210899099521646628958492415660983409858863396778264732810068112308973281705134998041048983738118954836838784058625026750255178228463259937069550729622340772095731767157469471442454578006551029211830780218082867442775407226330078618319162989908108061728574006087460911481658780208980891622565779475570169880994940109281412653701824938252346481384644088924963168321092137946523217272232397969495408574162472540844743524209160949738486295274947731051528883548282184082039099951609251305027963861228285530599592418251931079464127672258673683456291716127714458685561412461000061797029491669640553460850912941938644765404280844021996099597811144893213580663944106916697585528788029341928024609496834765938307569428265491919129736803041483211526413888027253403991373540109434412081820456809545176218118133120638077657912592322775879708816372625232404728355455188359118334183527164213306904967061003121704301927784845481806607820493526507464959576669841229422534766691939619616500386185648019662089874954152977828159427322766775381855970058714438974041030628533634933664275472320243138679335712795228348810438135699047566575840524336660532029206787316469962823741730125288030267328207190151887970316075448830908661452095331707041337366183893015729550284296353677022625226010426305828158961961135570219382676782972218091750529156550118280885018263122262234707298606224126724841009128450260859141113584081921663080107112358158488789452223334980237670225923200908697112753412475474319524121617570792518789232477208580292898945154739768628853534882395740181112820106916591813563357375283481853046767064287964470149416673848294579609135606537873239029692961155009421356276631396529864519417538511438766800214945445532285891324781954445884779830656331909665234923973403297595215617773694195864273913277373393214902154724440372960890637771055772659590359021689434896456403118429066381508142894206641288918428122947961331291680837142453630957648855349399169791722028631036354156609291898839451095949043256487483453252941019046482023313918601118865081805430833918552671602183220990221983418361220196867488189904629711458314436050331818599546438838943249579516177832519158967424772088498471822109827576852231009041365970244348887582601583161747220925962893272826140460039738087988597255566268446763320399950566473572870509786807443281921885838790249678220948494600312355711857870710906275155266481402396732416100804405321086374369684347203930213582503033842439926532268315611635163851569952548808621722568979510801341499926555062339864047974970107502468288373359274376884477789508698366346363673654778292541311224013021314258189256366323723032946067671349805509256358578098290349809829062901507061267906382273085736774692889413183881036625030662226274737062495893805029891986335021946800686506348019318003750311117258004281594001208116323854137115370936955374587362126711377683943708253295832578195579410929201100128915729913175097660286064308223635210514829174408484801679124681727838363947237255243689769174837609652210974982900725763778005114451547311403888558088112078152184702151365529740554555301808619527597408423111205231894482670069532977584234009699311143469759716998491907319807154977221196336054432494791528219456032672677038239675720448867969192824982646235566108161151252053470105953460454474005624977760201366755741374341437527340646299103607955087279489037866175567144747871303413884432394044121186503571161205875225683113588125190056881378294672386623736128150001197314606041578196002172892114768687602437641975721905211490043835298938420184636053943333361512069620344338667094061146490333949012212232209896040091868839082295782707815705518676387974653056785698696529805117839313246261567478800095471275649194349392528470301654556367610791129617104993127560064425012641963790286241865550834448300191150354208903040460137762435336353501197448306013262890831371221500317605772353747178258883866112283475237562957930980871756121916723827935084922381065982347042069445909515743990709591130797792038825557529672427042126974652845385811775772010180414012422093446339371752918602675747894669181760778688838452502197739396955514985378409000118367709203165758436802201189662303011723897959542538031291273972186098944257530480388270954871004421186736584646211843512382750886574930438029278131958029719235331696971980738219504544358811978399838033151928256589634386636635854698571507481656272101025040942982128449602690910781937171817624576755683515440235939567883285874363604315873132210186459197022180316194370215098556923023921241829873244424784087331044516080892991505361141086034021779537274036358608703290667860757776177488048563911296414203644947037245421914304728822287155116505122098973509723595727164786605285421379850143293547361942037482079499331630432439033438818909997450689211106172641596274942830876380260068784506558757478810646647856061996634918948394059912460367787491739283262138178951715130331278964368235007422559765974983493284490849116533197368853326806047598952942267673459436254262984125968369277340408769675690993165892131549841361183336912541943329468648108889439997190802015998778806588888290360390295609761868270122673975427066960501276922522678515769611044385908598825555600975204417106859260425916719580022455568498042657676265371351194007306078033129502312697103017723442111020016390260677560876765066337521863896992504243684192186754913285421833963192644511210037124601632309688685564499950011014871311690081193321150991747521166636042837445692175219832989414171967469223938671184753551323328256420429719847692173298879403517255406164826908636205220136502041087179614791681049049268651842734757092351985347124069715508389812456901061351912970254136489454279517211628503088147190971421821707236159721760646349691510771304807150224502534599529020756855640989644644262316862793618830236558336177982469144241479000248095450466787439388354643329941312511602072350003494183735158664691769776724506881812729038412494872571742222705228013468160113394581396209314471474662489286786073708069431525300434623375038183111992506249512804341053589884832698366845907562477306255280045155449217002702164050341768734751643893421350460968339248296648535164255375000072418419731044621719521467806988136288421000580127886930745072943154927247122214196928600272092516520664663192447541463481458572204710958884957263972985150442526923898208551480244433792058333869467359620329239059820759895288923915161400984445111562591423526305696303847223158867834829376528149305296936667522604673994665748237985379487453151198358353519046686374222026790257566802767201501615937243468048637588294894355455497048727153012488661635202125786065228500178411671785568813233665974301978200998278712513429706238372808814213098935856400917646847615482465265578084630152572047248470646537547449001054401928184827456700638699056755895453288603464939122709136805728556306985637467036926338539366814246208592307770302276839512531862667196355256740476528675896896037154378120925590614321382275186789946789234151654541382022105169155783108846771476020835673471962741703132112446338154635942862281532371747685922108873144115225777181699625002766749690407171529449182963406457853860913079565953062835230962767401862701962473472527250420425056372873281924592168861206735283299259861663875289122982535991778622976922360903754404455580116195161255416487878082859752558451178052289617811288121788327323306009128082620940857867371714293399353026293160055139299699038756753457019348836023309534301249838043533254461621322480519450776913332456415705108652087186511232541676311707532815047652149866694004057194771110831906596438316528418400939835466639921374273991061089466171017694658034819319270467285730912297105975324160976786864302460844997787861274734826014042720206222718292534590045952364595055344016084876974748065150001955534525639134023856424195652984640820913264771761515357510540381669862967541837377159710374703256615953144825705861696983560182778829703907798450229342010647800902537405539486811570697425381861916178626943470791738707104220796878015766882222163387459094007386870524357542884555854491765255438259135933629505015916520777897553485609295543006271445475284279013163412187507997688551935515624815455697770934573819434188014823537712394276720533123627372849233506842110967518458354920413896889642575388679200381057033041131011399224372883304438597211771266539585571893167015033053077043026851689265955639866006104408010863473792321281417826381661290087769609806747161436245539605099943261566022723894184160099808675905779251647750102246841355152515715404161435871151290484206046936157626619227010967537869082256583346249589990604665494674424118128685326103187475741396746811758849385515551544429499613269676998765836269044042454080870640454503927640137331755039434816571869683889342096296321251577681499553328575910183005428636989354859392023688624768062611042496804634120605954887827630693185017255416792468609018967511930407249418605621661743050757624404975612155072094104659254943137361204299703250479623497028013925285273846541531790675520794817191698811050851574352331434569132659297121398057473809737593494149392373779037826887357431236875731562335617462474131612484691765362940120457469699994229183474539631933267554189279512232452679274773011598543794328935324570600629217824546576791194466980424164721584649259804490802275765902511003734032227115770618832578375952257591310841536826865364282275979645140993001681951809859576275491182196264470383933111322458400595218037973799321209281780348181076363391423022054268171685243767414431837910380944690144590480168721130284299216057967400758917681285717772362807222566174375289225098886025980210061464420891132014518300645091573550261377003840237801450419176187304415047921213520672813663797004634485864011023163650274238475988369816040522385442254817843910526610106385350030440468688666745478120691492536316526615373508335546841826489069844375260538102721986204744497084877671065615901298462470562997830637620491961665200825201640087785105972685487446718790995853281034329476115919496885609223988954021996316116740097020212486780774001541997041388887581325548685805137568600218874937502280154265772277785704176974190555638633128970478222136891670198446706423507013515254118141440768650842696059348172330110051224845019467914217555798800730974734100523049150248488314017140761372558853491585347931277929000718594662348244499903495846888631885409283365158127440255820956351564106601105170942990610715953768926333620044705739811509030035472398309826156123508757878074566542787288976001914078849185111465089214332632660809918127017465780201845788721634005194591043420037783893802466998000512650487445137849869290332095881352423101507702546984176096361959184842158290498116399428619840047471822226777953308166402789054249473222779600802152494530047486702421218215750474401432519614448409787748103788819816613382514519710901654513947200365426211156214975034171218671495344935850155404823133963449023341006773004674673476300409712924470144446025891782189406509589812816294634088006158533758196419043671805841801311752754344892204682006144445712817325844613722639929910105476572639895473606108607328028614892406912375216446543153956099229361794550076425584695213332601190519417610062081876594459263798167105129905082256439276819289107847578225924242737400836039219182613195052694298003082582707717360201517860854997756246399182160941751606638800167878611699821338489268133601119308571596908589710409275915381821167295887321848149637508292209813867455403428807648839574410353995463527539253608578938902295457350268009920291171295758524425104508973135160556609153910780032526067805974734821138804544946627549294108571133117824822577686821003159848761965267233046411190576456985438976158017184727341140897222958724810849296505560146920872025906409856646824418404584597088177841458326968934816289004085241454960246970457310874944046828974027311528517789845886545523750071972961808106926479960595728975925891507613952509228475629225438439817512943374394778834458349587538850779989040336890110701412942040671619586809754829996904878204715338181005577320138133591670447716399727785384759047428528978795291187397859666474921401364676415516650693603334811658839390513570233037276579067032554212490414453198236284804100819464287984670682155866493822434230681434138860250655571050058085878665764345559495394898115685755404607518123176350175007132349889393252099932753734585923400105345028052063187689119122277008449803699463241708115595288697228539167527924596175045912704619034542011637849590236113306855822306301465162191054666326999696139693730408543037813280053828419871135330254750255883215867129468211240784934515654423009891539899425127666161715806464496232342532817520618428948793914759449832934826660672212300381581695098569006164158652823827767259646989633876126176474336892538554959604185681275435933232496488686060612650985739991445384647225470560213691873159591081601550861132066965969452460322754186215503839311014188446940637051735476325356319873063048165666831698780706301057534820001659629705473365173491587437084155895256159051780871497651256649403671276548295037407655650689044095660217855962773928328511860526663524496775954150167646706775287136487377061086408767496690935779810252108720075955691689056008258239149638184743258716289044473189473349316381960527036773574134346016450330824722659240111760749420625626399112957573227019292255315802172685939897526341866513706126088466479808395208483133078606908949193099109881822797774368840272975522466313172717157605397749214325647534871500930884147848876685876825313457491103059180272311750644576350473887561146896559040314464508688729030124029245043154733682898697323346225697889472869633382701245522584212254761793134309230882586445393521910230176142402022110827681768143530915251762439576008809304259556567475590506971482430279662581998965164608397760464678054938846456626360061070338280268433053425466592784686433856064479299235401725409381408997509029504274112055408020975309343879116694216285890306914527585143753722888341606123077491035816826019216791820367878553955774651374496163916447815309810629124626070564408868933949327315786533740902565508217891939826692121796278353069912969765120282762480004114945877055620077708148934143703171320955756344499624056222847465574780469596781421913150835560705810642194453866570501473422603809903353232390548490463950097134338999441945160031665472432009389313446724098466080097211755993486592042696541186593331640325387821564211647434736381392105452822450112942385462832021757926007639710109459043899675566528801081830548763854503915910583532322956020018069778915077804785332222450129664766599591694263719768692655400779983016604145064207716231976598495869344774208841528649673200583620700783217667598159434777043400506605066074225118022982973002425442332693261834367724382602818430902228282306427639844257793485605951142694152215064933540671715258836079648368884716665154274265823080777915588867743960437395796327503169548164358325642658613354349424523825699374168320984276602862347992251685010994203607775699328902758764655804533821685471708516360427998892575007627647098705969786538793885907424341542225965790110936086885796153892659062255680195407521780389596889787693609341438525755738460805643627594545947000725975172957979855866605114318757726145169152989741381444887463298794144969538795885961809773004131550031845748680015997427735515940426377224263398295941113727252587201961100806752277661573892921385940833495800456878609079464245953384519542640353834088612681610766488234646256321077728687282928032042822014971150127638069665188617077330231445116116208551521890224079153793746023630801251744341437526843518920153794005673725913915349668515683327324251874948489005146929247328578670164952827895765250216565328605964419003946355743304367014954165221702133911333880607105113565221007069327198047753148872860714140589873876166867204955604261449342904265553514275195694187209661525768071500451313286748021319269129814244475959779894504302319014520626054373769504453917644818435928673620902388819871167879484126851317486395792622455087412397717597752889819476752786027956974093772497476105245958774183527268469457796279068585662924892559265748531210147158314609660680380684604574174969272249468700163533530213672348054345133414431456230739238509868115965033675051186705015430758568331868514918256182256016024229275003081748666450009066016971312333061034048390617782502250855625292670315846026469963133726134933526280634821805275179122521644784269059446418028749609312290164038652682926743157510722382984373763365031041618418944653349791834307755871216629957604952613392277435862428275363433280041222884743070978909649116224880917831166699201914128394194413001351464732683347865318526000006598466839894765066544974263551852266789413710183353556023489560365271947282207767383004567909684802653257565530469230418379795111791434599637430751081910745322327288943892915564086320267254505529918093011202591588185747027219835155453990328830653471585462578945883324536161909826496304866103647579259424979226463274087732463980687942993682958703701319015241160412647163730607641557619571558914286986301374948714745622750969094222071782580045124139781338942683147247649076695943679231717260170902195632501611895911736070531145943363678442772445684041739588907194679430568074852481528111402534743666884065224271604666035675161345114712790887654976058970556896606134686916050597372405108461997673883279386949645450813783919760578534526499057391539564977124489002229045600736503994382633246934396415307857257754124727394630560636309545874821102404583569528626347154708229032722671148750891941305941586333392286540688200996765101961111187194849046615072649948006339156193820418271079345608155006848644501967115462318785167949610640021804664103594769317473108744339882943258255419495823321106121287461248445299471536626013753738042917784295502215432804005796977312298659594919801979091818967852161004668319367914134580486612874856289322623094904398702112148884478381503677023386288702475561709539166158574412233711931538052154332022319330302413310984260968368311438449876192374801890912649598875805764071248677268204348367068656925652549785727578229586447958521152425874463943187240055705966197363103970887956411236427708969706676020744987335688827703324114562344996404986617338257653219700481524767227335535060166973443916640556783514933357400621179268176946196356154405825868348025864853206931835003652714626869663995951457693918223727691538989529693461410407643923474354179857686430898757605270603689207839481904188493116562475825974147997771932173297109084300159463605566548844577612900325300920099885479751360415683464925691117767531193629253416665366934245205350725784321134807699869272446933646487127068370181572265045440002205072096573287069999233144322822326256447641710756322122666500256358632607911479592932946350125289311279818984074226986837291755807297403408018955676253308242677213162591641528799054167957014865415449223854035661047742980747933449282036943897639733740184518668622358016098680470895769463944839332767799097888688991888278738225131578156269647425606681892026595790699534969609606192261351069396871450021121230163819349778167096753198104975611784288570593153538560333620829696178822313412401952745558889039692323280468486413215333725361879947332300956854673540247298474008448053978472674246886695421104527312686379102593856224362073647643967479877639358957405093152751569209387207799271985957753702185150530839951407487590161354400754645989682538985668998705937015225761826699095736157303246313659127712937631456764825680472895514397359156259030410210204766224281311796994392644881490047843113582327640544556634189032916390130297589795190046962559191162264519445515092167747640864643651521113468134626073886521842421141721445292376526415844225000059469285073339331763853695216845252708983465082717310902695498796919142791349324943140108398069253340827167377034975123840463314980586102641586546464461158239126332548740368439237436162200830457140472267193831898111483478790974022011777445632253956301146822321931845728100106586635174655788044828369584080254383828954617157629077964262434706394461710060875788753676600515959869556238776206674003375544475444949390997010184799267772658946896254330583308677084277984386159734658238239491260763803422594233197776757356716400357216637867357366091378354868152934883824589957021738363279910671633256479063809755284430708547721980820692937395616367522822841381366510959930979116318720504546115438142949416169315666608874702106059585679773639633385973912473622604242037834459986646582890340673866649454668486023347965382262628660726053889562130754294923104638769473186882598738765408016842829667237751759205142480117032644809306164280674627591237546998159468668837897137402909925948643023440612068724002466594053449421092944973290795675212865576206101992909774663536396082681538059470986824767156872400380972406665049824528873536241242296999831595201263813476535913460993917095522429728344203896497494485588548567669862335789172156257654739099632686645842099215557054789796928747429098755375991168431408953105319644842467402924638351777462013118043831496073577301432974467420467950676384284366428144480608223054659230647159636754681657553433592132912787974702584171508240378760498844544925255899692613530667876004525331170617979671124267221520999575052691670034169187423446922309082193386066577563773562793231972296583908915368012983011776157007252962990593938285437587323608346902788785201325168231380967102810341841836571274493704575100941159536796200839541955527792079102886343738938091589072169147307406488455999472577186562879675366804080822910939371105556049697742677586275874435455578325826322363566197300314160521708952643618807414236157979608052909800236842260373558146985934309604677742472971923749731592638622677982238057128193660325821583884713330489355124612928134380619828774381215248476747735081044858424890488216752316310400038198682258398761272376677085457618511544504544467048120445449310824732828574318374174253006853331902777318511901649441860244685150605126875231849942700672690542194642633723520424793565840538588811820507452865884422459364443805383624979969253245444432604787619272556429945811502226808079651801629487037898300591224266307466417071725830670246474427061757781108170582994531720883819505312035179626365911442729273262373561025882127162020131421251315020846567154963181382602455627654771294388488932861949940696432673273293835930859636341943705754473259286173834490903589695880891198444524057530977205904463529780852819871555287033366128624162795743355161621888785310241891448313641009255734910971338543599120596455910223591322022423533723032087782318670627570682246825645985837286641000663340580901234604294783266590215151811760639946925690741732060212142951136020211343947385188644597331403588839523724679032867042772561761010833845147085481767929850617670965530084378958180800778776108331129190712783309560379843326051340845258658525441482058537621810534685761508713429556125105889560433175775090702297069473135365563645265631348881740468567772142941897545950737172698366921478213626232031586696050068752923464775288883418490029069050495940338219477549138414074405343439949753462332886087160314283750579932713836276207119441098846083654677732131910701982525221309474750324449925988423226355665746922677565725904327097045613520487084790688364572935847792671343168810541575063194229482393810463909839117957927065323412481656479900976847182150656846920222370004235912660433965305853895292027095582869644381258883461073103416507259955515262146368792841121970104922660850024502732257661842578265522441780920806752201777815795231435015805619291498807139855449814456277211384906142283175638057302910254011111966186059960957981377319826447228073540700743618880655550631026660063880662716784011571437226892642796214539875064176012652458500901053467631932034593609225753373944157372936718844151165627946304212709608604282906436469013732644228193001487087010488653023585660961898003857539378116397115039880775254979019619800764291176698387229071108984405241051782980306758058184014168390381470779733598117846034868887738762745299794666338481344312748408777867564646869191023581948831588699289305897624027647227089988247937858551849306818102257384156300310297876337250824035224857997870577202327979723853789908130917452838865995347440216073894457004579082553192159010592647221457127776718179372472393066567438576285145112820973981101193473638290530245169200521562235714018604885578579074042171099476351558836421316779207364201861875384779743390480642249995014041041111042599210183229737767671857688007718540614952257832132330603960577967687910026919378786836385584861784098403292315365513671728079787914016796834568715045136418935433073737887771548106340342576770828312310855346512619509242658921580127789691699142387764686567298669009102123700504130232531261004172743132311523640140295964132635302070994924084540319787700583876930601522107321789823860847878174651952301742866267325322884026625018054492951829921499537998032752693900968480634426187886452131161106028514588733810025653803716103574978114311698803795226817015124003572360050999245886455596174735753301057497803396416712185941762393810810530070427137516838610451471208262698757085703365870408419209126684616810110952175462942603073978386089789120675360738837096335669687227430870923103801664840012307635491943298423758293890276849768551504376531449263301672843485405588679400879610246247098583453991852504615329855640046778113717934630519084464462867224026089097835223399058294826614360995939922134181935949422012657435825989046745805878270274999417042153675835812439315354190084658033953180133525434116787454418560199534317916961779369589604362125133372888821071473886471958003367922372964330028893392404499791061718298187827660226914133987768428143393262876125318493943727470979198207168076946384592858518203927719699338801360492252922050505622064850606062661525952211264178205153367085239528024418097779336339879385810601601606617408627854360504281393316746997109543234021827645219535118472256205946742190847247616713792118637500168135696127426077663650666701348533441035321919115234116697351276743698233085079977523541612262818317641789015192100096062152837094117408641637642845067391447738359538377261186884353056651124041224297335800798544257307001395915313206981583129016665633653757430050655628343652328196010892961973886818608282031461127498531841591172347211474246833421411387721986718469168272000919741918995203982903072501765770523446138301335116033276458851051223262807604663409862240457802811331688799447776826013538140305580301294486113832837610024558415820810295988447235956600556909161962887207484997572615757174523135479505243664065744621826305164364891536983290761681763594149102875511750232227637128526716766166401467139654591090147856562549753776915150768887352168784072739031743573824073528966810970397025714114577630288216314403888682668221817231157182485593535544785159526789946386389272727830286402186848529089237669270827432360430728354840565663518958770182980820349274682452062031488957514226880291838676949309479758577111352331426045331099775024997328694466805019370964238487667747113704513946845223114348189047355066836253957218758932674362052831614190502164308672156428680005173725714979402635815582645031793053883325123761773253382665896619969391142530953740635759521047923196118012740313566494984221151735036785024235873242633861978229973738422110468823304912323166000289193973953834287697915356828635338009723310945412951308967889061830133845643074687445746695355943427656283418109239952242888081668996005867897165257609944615339252193006796234189515167277376943143061317402603262447262544384437995095555989546726611271985114700594571549914550911536329479122592986241602058757931836018718707822019710657242444912198158144795366052889887340166794447946479872115070960013706336213564741165292949072488307122424647124373673236671122441557407270581888798172521635727487336231707104337241412618359016935430043287022291996511430606152520391060491213629313259938233944204968003212058280753276130046221386692357153336569970735454090025063629868121420272313874450489070819469031443964359003511739632060065882931487360690995381257669373506187951859900037423607678253610766001967218814702636114376680517692336092798922130091573906750070031840911491349973786698280274011922308137273316104246525136902940064644975707050626110357819892147406484076611669669714302803102637394390114131822615751633093314377368399768998893040783379383586845864956349783069076101540511478851220756185191615393483705195164037428186469561475157018345051022784370698075042222485548153649358629381197775781725207292287152535142140573225871661591248419635737203836054023471446466168632022944883933441974928816884618298835793281333438098155437518999687104013164703792308305239375693849169833478654326852295186365652525752361712069143450640744581638670439574140781598950822248166958238540256811752750189658512106862515006174267061702956603737043340949728244836718981894299654066478171517377466000349082489589835775947850162138433963977171882348787409479500413126519997197812310838928875934596540128948784255673588257500379975816946339036941531166437150601333678126328292834021529976775842458547186661541978172949085888063490922633051943291064165983115940394666211176645490036300134182498989027787921938881672174100676501474752654775895413389387641330717061182330517939724159318637170092066925809494609401746958593014949452064274196683726120265132539813790954690028734802519090327691255709485955259985145731704829653486564933504151972401100454792102336558138886809868924644660983576109888788159252275449797527927365065463700882071568532079455975312634063562468466129436612968111433723267840787627363168178936747515101408782927399850877772328098126525070373973385588875200566290338890859285081499442209014651690076737833044521476657181089466598598784382566014825601249116755239957596364866755788847524389161006860236316689384693349044506045080670582710814317024137063063329262733321559035088266704334061576826865297181282799583965400083651362450315253073001980059242747313664564350350499675535893627891972703749997615455385211382269849528906094546171782224980427993831857891865718713618797827731650903326160551134459629478926700935473132824509583686619392848434141730513993210294404516779011044891579052543758235668941115391417606961126552083777690793558432682572886444525749457156301768309742531642249556388946682438921733668594610832241119930671142590339609064318093834658055344009264777050818638252384077413433162087702432485370938077645826753922623349985409754733396749683627381291438513809775596674662642295324524300676571239620947142986577055963831768563525189819506599949576988441441924168060043305590587519354649035089236843474430744347019438099397354418235329488744550114635187176697016673920311699226623047181677419802001295168674254319443868855310915093262840562524884185124698326979659994172398239607860750127071384952044954494401537327485786433672526496983045524020504112710861883610934446589724488262205948356314441717361455696637316180974128051887761152375721113621632989144899814195099357227663313263914022307667480952070613585720687744353926838793677971087285446071851252345962364926534635068546825092352380521744691389625353193347375735934679251462453054707812271593496551774420995711109981701992136089810498943131197685081551966650620310326649014676981195089749382777303296315173118051935018411708754439640011459644665333560565015725797511613036758957994090190863470551544135527818116222016520510000147583503623590191185500759305693145314981419180045641676702580207437999290093550884885492014148722500199764509588024481757399455851252698381108382070027990772695860633594857974237811619653580003265542603416057273843302116681093121066711410958948552331772015213174603896189260667082221886962704084554293137683715217975775448446803757037248198438491611521001312367507212611112843238036925680624811645783520522492255426196949189393632940345926519460643967879481705357259895160133571161956392737546168873436040307591403470714400573187543482721024055441044457020542636909470065297935296134463851044983945660259120477991349688375164908635467900995559363679946764165012121483327490679903944660807716672142875646019045452338689692816292298014800880955925587837092574417889429401249654898364249607372390320579088001379723866788530005793313784722529690450058202835714236048178324131482802097842038085199697210590128509392412430004066353694291707423138701959435221281895434383107365945560501662976400725786742813492402620726701926990768956099262492567361198148120235910166466279640119700443356944948090460142036417775567593740537163998255356201043959355169314243426992025317539040832285208393428583419030649242322704554057419035179506020757536635706846109899684543987129304202315919196400199158223659874057324163373004302470482237412506493331889759823139861997950397124674388706370495201021954741318369437370059119415797629722897221991568206653358610160265018640508847248615672021391170327703378747135499445184380606315499944706054472000544685303468237722824044860174221870798802334446687463678682179716133270177053554901747877241961951871256484560930456799567858340923087188665245103798650431368964695012234520437155758664413285661296543962835421463481191502750262228759512983869552225576186043378888083119290691471825893477831441138372483581082326670629379958033089067154218824142668960412501792802420238058385872898319789935321599397795056416447262368392876598460759523249098453245192883394135119744428526701301078921183813395783262316013695914925826253995630024080612716289797959885837039202502439108282465018293071198008031843631756514543247957977776207135530291078946053269284986019751479841552179865328779332139247086730437609248287676206347162677517799285262052939954183069900433911830016981588299876540391193123466008879690525497669436695280128656745991260552432455438560438821680241595175176688887568053007825413237706714695650419635055105883854042675808470253912154612446797670025442231789002033136955005238831209872145603166967103321235549565652585923161664787954760798582810832976837533026720493329688193806545104233691795566696227747967188470169387945385759514747452666338885318567739442067767619165948943180422060276212520721101179992024842591356768220787679178949752663662748539515805075935280987584182935317396896282785388233435790248504016368566685448051734947133627862001040598803225824281916186718131252405298102233739719424381623526439838082716268871073918974252221815974235530012814309210083909225564238823672869690999881873773099263059992804030986430206899281064464360231890115667550026778288962136878549559322362420936197345081363537784583958622254759669979844144034849963019255589837998956777230797384654644894995698622290509105727344484467448262948100336875090376869932399655539927606205276343643177517972070682250385256636394317059672334507769651713705909289432860871169547551420936810323927848966693424284193292264693126592761662109890607116303233666451654029359624113384242683857262751863348887510904701543815926023712699628001237366255274744947900892930419268320195446516270361965641788451902951043606876270572091515453760078593151185579072895765421416644376327048474352270071093410810231978821012538310899228908411820988037342388967341022560232665377918453337994985912885349019190253292102836465305666705802854108676842797121084381445675583907543390527428748227211501090880830120046202398489358968842849783422982395961971884372089797354959851813896903399288500256953229787301659508555179102728231139638113808254995413456136151279279226434838742654349526489665523623719248216937742241314875699538934931297654358420085901740993449080698369210995809067469771957555294980320059023851952079797855283124916555003904094930058634778793805301177512835159214486287761421863691662887654677132352520102066264032509312071064637687675622613132680911736394316024619643444124510746728144438627511827195449155055664008169366148490446479224746985586254441634945174222773246325860044768458664617642270427074216525200533021603690052759296466644770298927007472100674209630664387613261513480566926380966930389818881324409384048041410057630615919940210148019632307963833982078495827904993642152200447915277497877353239972164060582520750216170238229112861059627615467925079920356173047570268873837836357640753020425293502271878185193158987036776962816187621554722989529802800808657673421116001141878215589762226949167180989088736837284540285588794788071212336955613835997732498445707129337307740983557976304577555901898914898388884094537133676378187218465648066398633691359494738978252632695605121702057510747274100637873555706849304809004175029523705157103284790462483069188830455622562245672211756069149824971222037135211252127254856225266808054359952828970071931612098004569881247992448321285679603186414086227612560669819944745157263844091666720577945796019570381042326046605098312464384685589881929257081692721992538612035729093423805018078491994810929201973774190671443754478033768287436778337506441600321209451389585707917248768452394038671344713090076270052342749234863573664167037740017127791926048654448738671004237546125719914721176587488410245639869043062381257981224375122863850155354021278108388321106538822818886946255405726062516515016843214101595939178977054571708977778831106291209561452175787659791001795134581802281377455132894286172807201558295362587582096045682410095830027807299874536424454881820321653547488083888187505994319784925753339114352704167537986813233152872441665507272516982082988450047200359747737751278960793540099383616968621737132509710595202529701538692857232420191816572029238773904999225347407248871697980165535467789103133478551812761245514322980716539192290950114135823998934165212045611454505507215523757691998827043789612795921423248334706976132689658898147256822746181699498782935240214071100609129583669745650977418314003135175075408171751578244969408815482922793182740909367750420806050467445423309427844264215165287484377394313393675307612068569060935395190067143510220760469482720591158947810626532929654648879564107997286287012913422092980122036606400464233868479914585623849132966033827124594947227445541468421815987261290618731192499553857451689569380194102733351150128321960638805842827694774267903035099434430230363161266696124550739424892413254840855678152499838745466044678847950968540174634091591600991827401514223762260184404418558102154106838097630871984775165931662889708627134061406606220623229670895651533824984357451201110528285376063913365242162575393094550145912995034149983080989708423889630833345829789979235977835543519144682469319684176956836832793765128799831081208882419719796227736303313960695833462373690720244382387269249180932212795522297882177215742808798399858548875911879563981016427513232389710335068277286152942856441796664718857376258544487396466966104175254792614896613558786395802386822839701825963006053953044675378449443384568051715959077079000818544242157906442497673760217123588475871986485229546589684081946794994918611233882023668863521508689559707317492145472051435503818145356353513099821177296601218749710910837468533151272227122541169444297683311251097372033146744124600475666005372058535526496287258285919976116719426207000160321869758028674008017934631687977104880324857860386359475049002805440410386648337616534815466918371081788492255897100545102061125011480797551676595981520941351936729711579686247701378404260102203250877275932772289927372811173619935243943828401866063011375891373040403242793928135366455814015893886667224372718494217936069044028749815343381298425447939112597202543771984509305075786869270374307240020388948482388322798193086922463331876873269788743980051213665389240305902358061762595377196794791720531761213239367266312418428930330835699630421706558571309816781795693296174916182896870722537249087240865414903803196058093861719822611661145798849035076873268258763232528063294256241254375953185967008845279094341955780694005356933672037776020130397262503807128841429506917931637554218066074024243864707642606769331357868623910753425750349690194334973443707639406366411200846162699491391659570737399461116404873196951546363160607801808734441033136678483967474613592426286847784976853241405204840799537149100073094938503039783695446955577934392491877985134857744592915202740700279908689628909098810683383289470391901505673009458477085715721964089504126763198432062674959978507141888809830380467121192962915699428094714810777429774898822573949799569130515404948785321684438320799666828469418100133871373659384393641675376052880868514204506051681086774696533353557294372958639637827058298680692878077011162599744871785339661956031844037541405640893045283972587091055302406946416685297470632701508894313697738206463642948770683882041883933579429695743013800981683052069407349113482325484008825534839173429956573397386604130992537759457229429996647327310429315497145095022200286045315426116664534533809074788595612488260674907370093825124397324669035359662940871482029596097567769990414638801646337656276118707153221983904444895010722040806069248007721467303409342051916525837018398173549494812923478925798978559436134767674789378518676198909273372276456760610003507445496056656155685957374388490087490275610280644787752459045756844965946933877418587797490667286108306338211310436069453626173321596476151099577294678220127164090598189362484309996109675316145074468178563874745965270564903268139921075566153592061802661580744403683227097648424394977321157085337092409999598959903174579879951891741101971796958857303889186976010788390521067359998715695483445937761057285117093685748282647636478188067966202665621978691337793849222817555471719332867683871676526875405458477536652925449977230846531303158021606064731569867320339167820454445508422140378488411461701984293936130551035878186437826222803068217978886784551109041910454767695937170887974329296738578468058957368182038147160621543393621404778228075392581997321742398309716774610460186824060637650039063220424891687749952434412301399896957091716963776114207049585361086313361959045579486042064692604615909889774757177023599744484361183104138213003018387176358689812486261798850713789532293299691178101035836548616406850226600728574627749723839366883324695297680592781187889004709154051032903084749849815820425300700233995064599306499425742122904862947505411444143638330695262289323633288328814466285928159552847264168298347022239477509719139169279375731657960739700381627212095490124080305842694341797594871520050481707225699270779794391059403655716453556505109395833200286474151112110018848296925674278449664708845077466697771350396896780340700363974923347752726912957175386869707488268694271121722074943190389627214064856385389123562128058541603612940601999300882734489078043956156677628592111536630783841769387164694454129246638506247879823324337575341092320402120594853946320174591713594908056064918379038903978590639462653012398270199407556776134916015314320468532672607050456231731654303119097870592086738122581776726965266363370971756813914862477882074939326892547970640441031985366916897649929558706805485602301298754747898446874102847325986968707260667340653968944564204506918156511816094580629691068403310025659793925109171518363392429369746236955560458331927713494168615551855991948407778060376559093699673899355063016451670249516795922652212277984290030172082158821590413756500021129778338459390610467204821435638822811976225789502324075717182147220618557421390714847188014992191545181570787707886345551220720573991415845886673870837480376307000553485842793402295028936457339798160923770629668799177034782126069384808137136884345728743866685847497231157716987442186464468076705347326620972066754583489941880523098629970412597653082112354018789452556962631431876969112425744402197380322577167011109870031824813654020803148659239390959931822796155628022127343432019638044928684577757126516830642830962478204686405463254216620952265758202615515920832631551543089913769795321879637576401296642062001289392512254327698681858857504774761172343008760040744808848741983273867667862520612326975620742904324090422220797763762758996227873174507036097261827409389769207863415522826668899155800791862933550361582912962529032321867884506793812551427734083354601301258335291590817166958026101341119107376800711757051322141393047682882448424552577598023517781374196288096403560008535901141485222726169483638179793792692019347228360150590437766674838380196278695215651134910435523862936218921333225313359673074256276684598681576427196573793063822481205873120700202153509934203868245361332584290545023726471241390663626580864884944908423853015372090295910550929720548935525791488281432396935078610994701341178123735405561010750983297307744759978668090248245466618199510686234508072181263100937043721269462463741876113358677799105022383985591072993190461091954961377707236672686299322782762090961383856054606248180755875681163927930648528842972371347256939161431900778388507557228524684680092642836614416524339481541849252455537109574187316134589791283534360419949548790438720869124956071953181427105004983134209994480651694491191231826042860339459281441745435209209882969116318424385640829657100915882732443187242226195175159373673385601089977815673017887944909888184454158619988952075061814245582330327570187432569497088515189210478473963743780244702597272459655230965647298825780542529921585125280943052927874936851426248911017585993370656191280886768309938734808736270161211887913787422396690065317180376272964765562772340889040451368665967088362789077629269454083536320392620467847046167997027092250481776194529222445086755505040888639953184109907880989482964161480637284300916120743999426210547595279659783907326506505058263733563654816777281999621185794637449445443723383867432400845296066292401061682265163533292949852953103355849232356017147247451726302156221713769481965375332769995359265906822857347119712459466458223222886183931697634456708167457834384056996754290251637419516980763967922562157655676108228265432892890850174995980173274903977333856705683102091114959432453491458600769951653911842504498019104330803141737398949764582101703043369890820970588291407360690312651313862233524797208116971179316565364517674507498017939851821386377635913480679601100102769037232635783397035685573000165739111826810264226675409675535196116159196973009340646383074196312517924178832866656003548834504023157209584600084623051052853093079834002597180757352643724157081190236688728510108274962090943758641384866578183616229835562941569468037421791820139022909439789542369025210463522815813841638774617886513204160024543471576065931924737298990860506063599238630676720254952464035533900912411747180899409158873053423726638410743631864237521368900028238862454757510875300716715728789130546543407673579627317856055778582643073680461640829242608741322152779288002242823770787766091266363455535104811492520755346875652073430073825803803762587848155720904535346234995647003466403068358216205742832035537550889856549949718351971011754905425749232828846542008092861519707743752542816720774326800278120693522793298701292559345473670969287713950059444358617124597760023227896060442846396205580599163135409085671464616145982764260609378708622363788773727021837169372297263259198232540368806009439235518840610257372122382735593691864996143430349392667628564380503183311510469837743649419271378855381092230035337479165104072220114990376105387653584140230729011648116191701838472419530184443031612449077178532982543933786217321430785334953635666377590482680079055993326689392410429921410843439252712668363137405264436730870600752447617925117815477289765121573974356901236285452257913550776473487502424521413561432595680173930328897505123264442158461287174511106544549765834911610056322780280827644035267291126608927156943311355331826095475908042873334425154824137783316411275807267432058206799422039734098779690689549590948759182052902757824459422646806357075293474291190345590479226781520956879508210894011766301057984611451005157515345752274709995379977340698087363277341643076841411260827065443410920388420685714163711136759656427549241622097552803995438340079029544020362272335845959443843825500166730489385721443518833109645914260625078818044789116081886978547309732650809547228382939421186489594490595400544497295475422316747378387962303132977257603965408890374259412791925467744736813351828385587149080005179443359683209204329910412120691065354888017517368318754968508791935829573538790921125838011421199144419437471953528952169841545423146479369203015140516563225487840432747435832624075541366943608946357902807963533903582837053295805302812212958379335413460939962185669567947871437455145872282028347212246402783157699496469198077359765692787999248308325906539413249601107361483786411158177940132705640334780411274073599570914624742001269612972695603964452291907742365839937387313148472663518976838652305921546058530860612220165729090406970027278308573381922750309279163563894940887006700168585591003818191940547579428521826365090307381142185384268153147437398077306678600946880304038095921995255365478319872288080877870377218142859805181165781386795728858472191960189979676686336569716254701338448527642434843183681947466429740159780005191217083651591262921850527294710340378683632546661833230307959764283769667489143686673971549213682688222398021054927370875488966271339578881134728937457383272073494234536655937342952444024073055859845962571724158223374885066422757632865885839396696276528572122712062382968994404396086442320509642022732682109082268150543966174802740515234812931861246101329555997492937877631923791246870766594794785429835866857378264051801855593993963291872657394343953513592288871262995777398703152609990725085546126665487633726158936158260014535625989384434618961067148033388801506884687239762397664887448698703516548073515989858574925011275907872291812387595021515652411029575053771561673255037243432741408116122610662304922029010943756721821274030363819502290159727110275145423921462762938400756116078931002756410535243397065586056995204218749901058040228695515795429013319474436272156759973758816398638015193510164983362557904936443186477011116004102661114810867676645208835725291002067780631860845188863219563622325020993034380474530955584878623508937454953343969364143741417377138331473792178096155535515520912770897673491308161062505482308674802574395299362759152079913475473572142325304980875547974027833889031932437717451836613088534714761956619686451856710474762770259163491950195679345705367444822919756379537437095696387286383653640998969577380471631580729741917781780455782556645017458452522942028350569360705355468915756489681626732251498850185284751940774196829854579343860782990430384041137352242064122876352715465054514602714770037161887486891736031004845000288819256284954711369643286517341433082947803729929787192777464255885904163101884341692616121689297614989040756528606635683984227849307058848784879981122215962120064958145547788709831779632094815475079817082830281504426417058986430222377463897099172673659415639256657058946663091597227737505569758704121819200239125133993299042001850137579112207588752466522731411225203246015538467558488696642415541676650543875438835586841483379214620273106037173945637840351970887112409760441618519324733345048116882965968910550930067719379837277116934887354953793700855673855942997718881099118038757273934616638046943753548655141931724215543347410128587363520951360349715888249651112328936180219660729163869537696408171003974506482289350240598480224607638699676130616866181227572371643267924812760675411079801526515554419137436302242191835725348351729243591233636014987210110908958696339635238297939591106197279503367386856959720048409917220337393609841762237736034604569732621736340931250862083579306559168995643721292997887184039027024038890635170897778150673437489199951694745850532410158244933832891374490545741913084932575016940480195652816573604133393684452068993472782015371419121670023921848155343404715880443448717856831112104596577363222338342801922190436532036429154488453767309406694484945310368960007062748892481488444376561103626884827456453212896966798799962368741892872424441510380767617156530020112354419103440104578266906244881147869787532252444040754313016756022256312187828925044861449557413835967678652532528534002428118622894949164367489300384118203299298487324729402047507251372471619040281794185083638064266397147473221921428845727488090983919700246768872383932919089739791827557750551155378867500306920755497364021718134921521317642298011166032272131196999169788617308302760979165389947848518687027119977670901903693195353004904356577030836039037457944675683800112052941686311851447510479954628155186191936474575062561980863011674130232984344553358909245722128199605384426191791265891265224187044158199804106943583338294507520701652422085128595448568850496957792443821830938655825796404646211052389611053375361600372966274293903002552229598382677880164395411453697604496189152127530379483494637386335645669505360384946917750433996814162815644007069040801713735104541231157979444657460986847909852993787853103190293460639499129953809726178331845155247800804927012468419185279131849146663476326879547679764545998134554557750253806273266626615588192457667872029716014557031547391383508820213252332258011819547607178798661646950637717822815548069501571944979585049913832479180559839467282075545872949257145118999560471509579871182877822921397809884500268050925007024003002717072295350335458505930219640518073865922457450548650664906559063998837687714175578192515586499145534104762632959631103732035889970226762960497764551568761164324378107634869393141063241264397691771561871623935483618296949794659904175424954696385976821963618546147666620119818399489082594449249206945406221627439263685599009876757089148508353530247610513858161040648388687320663738756690615507843646661690602620692955217509148307914109030262031526116764638432953105814975424234333953479770675246376755848335994080800199575990452909216721479144713252852669775222189006639104278078451593241308966383035105011391346322448412085121060104548053534750559324206642978320505152011190278603144106758395510086319864920552766675582500103216858682090758845005893074377222331370164286261547947924305258694192642889284888278562592216538513890682184950502955523146607647900610851762230559656565136532104696570004698308909038369035605469368714980189609125911613215283761418737076087964228968446920136969687602563204727199200001819874146549814521550462089952204748668693780894368544934005567948068391052351833611740094194460507837226479521339613119459029781729717102164780603106960713549432173127720209498202538836201680042823139806204991826268277774610782863917158065929214909764900482885078241760286679303905132320025017481382673352348234720626620992436524831756285133882944033789239281794563035739602752135602032470871724178731266034714450576095021128046501128681863681201086008878547650534003516278579538444779322441439345965239427076604500908782148775758048297242118319739800650078349185187800124134553490521226815259355837861602284076719240193174579710200259347795564136498521327503088656661049433932811230622379410719059445704170525637611997992829082262068075033865233527412887309196535539964136188986822666413070258232288321679377624084834042515575572311080236436763680447915123300425999476947539820891326294877152173031831124255799534753466562040692925520880857378616403968122626681657444372295027910541550549520094823390058487427742608133932377085623489375118423849032117720813785441133764994282167065671922865841794378393126564121070439868999038344855293178116318993080824878854824403975000459384489574068272644715630720121504186556015323270780142891526711325370141242824954004512024768500085656972342522069026728211493633926276739109051038457560975074835875122793930770450297035304485137331478933608807782892412284115662417514566946990971816213838719684718426572745461512468416984650100608471046912850854551376878027215461819489425724825474575464380217656561495737714190677506101151694823455888784413314598759755112354034681213044719333778415715100655213397939070189593450774979057534371045664990227878768167426449269373304221879931784963311738988496905939853974485099747467294621671718576431758412340085184610499863145941880935443313820146115044774099471274930719056072020929527145959459287982755370732578669947230860559868992013105247678868491434873065733390484233171287438187389981489388923635127567886527673680910318620658023676669223480683021193920687573152873066310702629172326903647937336160155471792246375926997524856189284043014528440696152761042013831183350748764932982753379413804525726345803745298092047252774707658980409849701630190263256722688545667453059087183180114994654053815200917597089461257661184423702634415964994885183786814037565500681467204452566104174154631550207336465123981129228902483070625084288690074931282503953366917159056841997079319004234283974222083014378558576540507908445238041352143987416935258017276819762304045272390875901953777893925184117432308489555852954951418559861758531905359722295493153486210413483516723191330476631252295326775086400986073128503187964236782421578286197531287924428885188145697184766563598123417751122275047065508673932951183010096376680297864107058699999791986535106027799665407373385378798290254981933121222782089471382157571468316586326793571665343597706725071029079013970446623815462816692133944647012278270120894863977943856832809120552721727575998400122580490724874289861456058874612596775077915942467707369568560632433615654341707107556902444043237271539343132107602908436451171204029194233983599394899508888132861070182816561306068906443901732267397169459173711748789033901965391523449869552404914102225620489387127973335500257220594353888815030294595210081087465751756139987219095592375115614075746240215200783806108762111905722168793288938548451682291330664004239140512504394698654442468696778061674327306992174772763734620780754298853615453862414400816566533575611906627800362583260216638720346002827382290169952704297655739232824034234690030614861245465794668851087065055393904936726057349277879142811922148391500696725923970000684418126690672502218188922091297980566086506930372060493390552077284491269857108186307345053510237218161806805318828922767978010293084382756107634430507343685496294441157763134833365890625841806940397069792755671212392542056614963094086333960614819347484147617852169100808178920456459849849023998933872570733968741012521600113235175887945653000995672969414104783471218390657414367403737441933083405286677503045552139560556668797154898358242712469797540358067305385263007100826421586643915032205915858362997981382874900099813291491141217350336470050442462443390348381423293515488026716171195955772419756167445365715482964402440760624250278796460479662222568276431115012381091847551560530891649711495696181211232362736890292647028544849479915752273306956942296515305441299193106543941429535031417218565436282557473041793132288363666061017282373142752340580467430803265971560683715033295349983230052909681382203620109912625377440086950381593289195938337157526608764254211081114114589237037860681200156949044289563900467389863482598628056962177028200847065382774411869633272955232254099134006070045818829775384748196359993566872906521158533545533817334217891164481880893122350922244701131361249494843890662429906956408720836887860438161524402768017178868135263738334166981677476608729644240744241084364595586078082787943044004479542672829070729394235235478185965369102884976441122028309947988762671612005345824173447949811941835563460163210631490116486840774514417324319314092331894595115168091331899313999808473242457597329334404975012535699386914272229752553399267510190601863470030909157709762288217699158344491914582235897935772236297244083282562107707744990912583556090185430632878737197439773037525953499499091844040943363791391117552078028428286551582572172407473683939644617936316267147314150195935470502997840773656578866531185043076312394937029233956428718564988899409675257364495841577126186315228705707147164230083080785104812723510153845861499489402470164131804997248486560547707049687523054618807306715741874242440008536584740521579357941677328214697100625042394088001507153913435256767186191838885686539814659461679677771966071667001554292853204981750325890420954888472709349393968898689098781640103589894854815083451718400060720302024435950763702050867153737697427392763081537085788082691128755635618686122316779340928256388133296185439268876646277091794806570325186029479953661719548878452810268995176852002586726679445331413427033583375372345147055526815149161999801402597764170203074735918379962782275209223659004215057312679973199077885635313674843234804246596614881837034091768526605383088887473858353222334369235785306401158679932655135412111473301842730183016884094857593092358373373373707503591752162036394450735896409155312501026777473495801706583728623619845493139077109213450357624938049707186114904124485006611465636121926459288680885962818719852164369943177878999741556152592616816300381025983391858056767214466923384046719399275813972969625464450225286738202008005286559794187113145504896322531286962597394274849705655268304412991392589864661080525301917472437050221025736588211259775999635269564300489355465339796446665950195545423769231302678901374945068649811038767803419240283436124039312832849044279481896322711288446989968359836185881081478119388376537355295472966021455392447807678980188420819538109925509029607233744056096495104704207959240861778875825546118026572329291821339474844134814938562017177042324494342240329781606572756157569698209148575616180875998794451222711448132395671155217480322783970396683292866350214869570509467419378489011407798582423328309531200579745772486714467993887037317963771834766912796374069688654546999560219930718375354126474255160786822231775382694054182534172436788409624233870927247177167036759301904060744543435837849300590856941388552137891299203903308209779098358573463517327310889503226824087347987861385812467490972797541361386433676142535503911582827748147051659662098491675640373720274922667530573151405027618842478879525881059307075005629637822202548131707191645108173696453388108742667602664564211316961197746201196915260580695240476094242686238702866485568834394720294470292817138342709422232177148801653797079105685520355497537280074546246043097216729657313386318441094713287875282019055613645497816093773854427906964177535556676171096043061283036368641084856677300044672905123339224627233999355593398783889732804545858696737205130839166810905530936275365278665081065354989484731801122670163236655254014558798844031230932112558946890365520341958972227112294952941207979381747954141573756054093914104534624367948758158438832993473180852628435287526434784631203947616739592032194318691911055099451559675347554587003999712072788100356327872246263751594749768838359456869409063721466395412747203866860240854722510452823413404380559618731652209768119293223377324376982994020426152254603072957078913496527208407594657956734000240879604819244911267858681440692728448521206651932299986281649472968673883782607723803135374210711601824889627363328548114424287246934889185687619015239360013708675355910850818371970098505578491987071302385778415502031660819007617563128412471417509941734087985252595485229635919910283738963601807716208605976554612249377417181517010841818755808706897943652914426920822817645307735763770577910937512132823741644512579211872964309439563532955973804324144258896077196525410848854123949164957841700924347324799222579317042554369037728902805462220462417777504408063903858964701922381631409266558009895635613877377422898915736394849755377155353850375256562585563835628120236329723790863062546258416231982630846928616821192980914804824914616009103045964197140321832523863363790236741349892173328344351704996319417423962059230688329818084563806063679609902252988444213432134609896247887118656441906239192862951933447769256107242904401247774322358175209879199048445139193339947383638039308196592326561929935912252024458572947076339108305436361741924095839343882623462405032119749275889909038978814501115763891735723973652081674523474217527265989901215844672060265411470683153675140137152162117235942227035221329391113869656571510532684813403939552758409740724890425238492459782890987353790165508225936849085673811598549608519499384277618130755570294810904670414163810190007641189636869529730691112928430348032278771150401223114613973176969328917176011128570590851511081792327765923095493928811519444236152224172217866555237063439320579139161107399967718036011618014059328429891752507244357069528241409240702002907864772442913606143565957042883365587990788797462134559133781398649173882775334693722254740904082315872529343679677664925919297736089172495051653782728041704597037767988459129119404192769630569859673976011729942468921415104715934980567888037556429962840335843773652789442296572453101838774570804456686423906863788923178388435852232237471092846163949967451586325263118167978215069908077446293974185525848286541576776048009561880269533281590934446733616766036970415078420257508388212354929841847886040778621846591428105400005415130405178905719889158387333591670175559112965748192838818487905671843700840284130507254031221776898084768101347303716449319847770519592147421295186338514894056738153897954783925329661742859360129933313967400236036057799643620766108489138795930850386365347323993791154427669257785551496947781323926396277366896827021909621978488486735312160338338061699793837625888164449209052628206769887896982604994946247863557689416298312745009576890703651848342384185458340668770574072533107162703096961332476774077218913858589501805404471969336564141513474168563693947895280836464100558061029338028907538917214864781880306254534135002451483272636376290222979076166714133433378866089198606343047182667903018035270002836294814157778211241156690437959600651073219290012619831611433366357084710418276777063862824083332565578532275841996765116457895973578541949255955648932880741721958740471657077869822303216396222791258465230294076564026344397367320356702276587337124814313589070609594595842527827556776792699760420813282421492716943377021544645317021004275439296203327012991510852134031248771917324744514121972930847886941060057596006002748856325349130615464352950896666414635349687982906900804864254211454932281371732242399924718622414693941919106499610050175336557249107137948072158431599783524393011555007647921631400072198810483014130107339392788321027461979526564061411154179481013417005229167270230409083028489002987872370518382518291821925676892065050564758173394307761120392744369798789506365877596377440908986938590522704792090716571839028133414383578695661267415861780115625562361967390245980050828958667813308201764305481157392977105940626614277560056403752210568639785233151762936693379771097047150070525625896430775516907127569128548054470183343842687167721364800292603568885325449605155255883014670693406346490112457553991110707730871056983718811144564269602882122527492573392730484968012586685099956566873415284375340720633415898299177632894993255843184788923785996981221902380260321148668916962279161864619287602206800651573311862918012192438412829439300983994909422354687333902803049635906811176646593248655616080319426697580027888598107337992063239733093001707384412668724957969859922454872097095550448931298128969619840772802401604291846867763065709311189380529490585695988096562608581564765828575986738522866347349659317814279143755392869597377528989123624678367487362521667314042151744092277314845927458048278413071466977103383512063890703047145416577163320580987821205845020081373104716073893150599611280553136739884181439480135215984114678048425048612871790267801413769956348902844275842564866687746902862591123028005933050426698723724802672958829121015427424439315061051585943307410809205057371320695083919014649748005180102517216910704873701009377273476723551343435585533320587264149205915817440063223936622924220357603691766697256475955150602933945825110168216228319724467552256420490502868777854009102991381159599544020003244912013921322511672401770754695707772799304816630140855283729097672543299214473469240166789545273029089046455083312166057728184873981876470485681358485866738554373489973199581199889552772310320486784586031843945295154253008921363844063774049004488278959914281982138894208996553135281210180687769146631568480382681515285490229149078564464073364371689538952561399736870091414714610561718092432089116037787104085072626226733205083001336617502657275103991910139541553999259970435881780231885618338211206466305664637498371830169672325366983921957609927037640188682416048376024348705800478056942989504657092942117662288484714774946479413650213767144404674123304269640136982770925862916476824272025967829764240552533768616546755305248577133091883657922170804281600091575365792977424517284213362785974092746217101715133299211245747564966660083791423866586533767315089001532558057396718625862151514007874479850765270893794065675342285675789919280676877748664385405096043561355386936225787989534001503720385001113770502195251403469147108347543315965379797717959205999871180747757328514322004984013591390333027509901252298730285972568489750370821425806399405929346933199845689503563069643052787248282591696212166141644768106280611927477790964464665483950914943370681133521093569508783857379973176273387057364885464347539720743174622246982206478188700200335168895512114757494925211431795889941984788940900508002148678505566133994993026812808068187328776668610614104833571645191492689147048357930937372259033453842877051054031422576964150017559792625553396126727924431318651994482013331217751972042516667755535850662680099413451860417856655049023460167917660128453406474724862825259254092064227719407436758581445616397974325152280383457060404296322171124079859448293233747636015808443854588232625794866581685396431928433387883578607948364612693101099012703341090297960628338406795453337254825436383648695516263831731166899373987061116828797928260157600914826919185601913530033046736912943590798815456499542698506709770403132800960183572252883523462197065463829187358727319981046703530201669720652818129511785355087697931367814354649818607721519232891492399932560929818678960730642890346370615924224092383434803386656290794731827053098546447190233808709423897863121912722642510463247744778596415656346867032512534109275209332766570814481727533959562193783697541096059529016059698754274454515247590045173919563870607403502533262726328881976607032634710871841672808937351658818145102976227909948495647348317135900354749155979985853336235557706204723122277636664451969732014940056846543588065221445462423867286940305325940850887943099253155635870702080740745286752370025410294764446078130418571881238805077159443794090111839762123816965973508386504125521483685326052988968121732180200959355780090280505071689343987694212466281927217865336034129796316877129336819882246147320172119397684451894959789046491753104043385971498952751479292457366482139007769745104696892680902900437212929120312944937711622512127026490512601903531246728082532844747399323728962916981630423323675226529802558749931594309754067195009279885972962964220159238643519913248018216456172960143003814975469707171659326494377408056378227897599943626686829422939973063378887720366059666286275597566730388429287997370232179183426993724641343171140993859063618058809761403690728122193162428579999274615994801596490412543735718851406448175289566505271167549967543011561073473075695668642387479000258227326768067534514417780686311249046893004583762333597647145915401849132360290979697215252932290848977744196017194566899067665004336580289445736886320718294624635422927487209648034711546876371397023364073336658666414416167377113648690033037388676460121811680170054229536317186918008288359651104680238159812760625370128985551078321726555719531354617786990968374870641494563134102677509847144904827193494876900114299569263801036407646475093704644775962972013160580407773757348846904259944119806902615961983438537941929984705334447513112358113074384425428481371720831506816503880691667551982921510479442656356750394103234447724356082978651156364033017383342425513652907858763775139011878762527687424736670481929097469471859501350025481177128108970020064165245551751868462533596084205942722512159083643967530452899126098841389832663055050161662951564599587886569398455868997871387961402981990341801004117407757110250509532795853330562457846571400357105394256879616900030886689366868661774430769252837854630680276304126899798221709286523008090583650007433001775917555790625344843671263976368750116555512437920839722750451811554599184251297655810551849482345050715797585018692489192312372895276125504825434031431860723162263977161655687281519278442552157859213558068302520316341285633194280429971692963724870851460381230120300067651455769536068417097305950265362059270212763958800638514362355619151593599953169907018489117842892430379353630524652250258777928346725770366540469508572242997290489980096225536010920473481921012714797790941185324380819243671634279906991011559351973766376418177333042317458040577884357874810702251514645088802777337838181816788626208133495029466857052847746696885663639781411447719214997746352883339283840784532542824918780223892274166738485831697639705996907580198670596429653861664340929515331757526804693946872400926029339548902207900156288125917248262266467144514731375953234715961178238904816324025418674789087376764599119060170277111571318575222588767870343811929897731142603534169481187079143002802894448920498526859485354917476326340105147966948246708019814766884947207560171985010981426791919195657615007546519315182959615388470292069355455133059626584319211796792606619325072113107778232402401372638047983478344223358863545683759423662330352597613932288842894583683784963025943102858844574012319152507958510874780005723768053117592719603409875738065498875959620035741754750008959926769351663647299697627524880801758197309109883760381250836125274832924873973417627488871419137184131399304155935446180363040134527826299364277506017668269332227671275129221069428239216058602142222581486870715472444715581302897184866958984875745900232604239690354213096336934648788661160907331222598576634987852114803557111524372868292879562849674027150549722420265424331827509102447744524994841306287277702506740119609854697025592983329461822418908650516302623989884095671549929735390324468194370734593186736473747930723717504470019349594470243603758514032743145271714811375694285009185043895177997384053328114234864984044565977708593203190650274811310281678953825655016168438075719869787872945980529420121931112860680648497568799973289399162561380362408539847860305926456612782787821753456833230185066153301697405930800828912198271495398108305946938471690229581975021379987529652897924966976522745950897912359720966453353781242556188169086967264554063024319393230811137425042523871100528945014843639843722699742526301157409948479233547835435781294569001580510620516338245752782588396289217156278920854323961261132821979435374336872050502560127638151921488871330952860794671541193272119876030194563869969525699655711014933133763792868514999845276208498986033983452278037488001447183274824158185294515655284437122078611611343206045821415178463708704794731826934850822382676431187869571264338589244190449660771854673917827784254419424061119443286609667071023756786159428430013457998288305008616779783929691157852998299892382204656308002320019960224368145576428233511161347518468987737990273691229850904833421868760652682145134105018340824787350996957867486201138560560087808089664155691459357335732375576979927935426560527321136940928367771892637154249386219049677883356342641049815447986538246857102706494183298697326989234287907959429391201335841374063137851853422934943954747918113898435729096830683387751433935530684615370551982205647869784089845443842544237700329293031178335563100091921284195588386918079714725229234373361933149026448146677812376582902750336989408559505016998016330162170401724135863074506445379782243738397463267433902930745635174089978225766560735794008563930461204703494139290353708333971004795623096510017347321585752630132181987658013735747370409753045868669101332599150854139613425739481117495346835743366899437434113738240541269013877797576314362611444261213153151939767905794131715302672251477742585166386117957449659025534864174011693693221143903610496712166340870561607893504950025518181245758824885302633781056233297440036076450353048266549111185205409308733762973991643424794389240902591595952520517271303331058789843558987106011273690899751088452301976924634602052684468580702997321181469774771685803171355606730457375815578743239678740654922034314518855114150001262509599224754417733062292677213948312171075434609457211301232943078931369993342384942514804882834749185154051685722369657679445019833474993355484126872686368899899841218308841413720456736548821124639168286175860693840228613667127866154927468402798655236465579169571939732752123690706554180221443490188607555226650273565857781482955196664817827210731848147036688119697729609978148806378020832565631391907943570511301722572702141011078650747675134040028592453438850894205012476847458411233376691535560490832722173395897719853782536858307797777104554597581437738851091186134605134963184282269838673249809325597754674314263203695429861527352437223458136345919970192792610180228260492108808968016634131475393511699940255476187207073079610510620474956171362210549607715737685503055004594427051328133188658523705687781370184603876821271344722089588177332989434728689076427282848089591881829903467436740656520495861428828851284241837102246440881700489503723384719570349835847170886802051820925546314915983333129214118772040256369141007848554152149478666463340803408145001015098015869530746647922372578552263721488465118649858002603592562065859039011659187036775879521115264290761424689871691719061693528943684524269891561825006586827729277009480816055759874162271082392886061298301461605657619382477356204562963301483682308873264309272191780239257629555210130658289295987727793803903623111371961370867242423328558839664420493152767238154543965203106993232051077071388672458924556610871184287616010762338693428888479081640090760148430398914040418170479253024840075011190838355385910755538083788374051109585942556880441254938487407341386633186858395204491754105564222062332352345268812209114383643385853829956386317978047818388787260842270484108815601295851543013645478969102665797302624953346060640424547135856594835012662949615483102132996100078597042799159826221869451962614817430704175479061986303891522188085398082672224307040914703882236499062450725090792004546045654393394153404912863154511592738245776879480443299147481028012491279751756121688592786215607807798780734153734810690063165021472749641961048309438002080980238271679918796211198920482053491198437547345649427067076901937162764464769584579727812373880244176106207926723638270554190558654506386279604430168279220040935770868685167080869650854577855584869917951493607037102004851757010754588053245087837506934002924984633252442078650209927256658299291140760646813532799368471158225415387704674538353793879534626363880288704213012262585236133073705467001485274079296819728510167587726475942181934368824137066300985782167043092076241260723903111363063114990608517803907140539888244186339570486474432177573467795449199885190689519669853980028707982597050197583056661132182985564701616153380520818279771961031291806990016295123266853735538951530756765409188551429491829417556250611873220345184554600979853711508416867875421700868931475147130811756618152361607478676178360114362318433089967146967673422403270704840544813603721077222212504690350491487845234359606907305654143986588491008960957153720638888766997899754339134250114867131584839515002686084712345806677173173119204098554236676155292230069525365701990787614845768539794238496932330269218216259622712311533167426923073193636635482222663411509770910126626723753600272405145354425342359666936042787428274814240795896050034397095355421936652161968589051624675506597197303672798606267121495311730828530077096269242596912864326105213894819832585616025070982545329154437492999240056563591999190044207647367348978701778934657621379001597011216966257524130357360090394423603693294480947535837969255515061679046553533522378630251831432025876219811984244771141773821133954510083612795509110409918449592511108020775600227830781199655801679641827146739545041341140336827031562995395519728790809994254501007299895101096724577692386068971019977979481467990566061108926243464565421678853027528471348014735748444421603151251650474340960078510783842965359620899222676430828248960965229696063176298662208859827511698233305313105244605004135521142681191096477143072307265258831173207971445720182533720521304373625644380948693203120463672581274236876854283190912811453490382921306926049935196363989867097622644898712684133617041109148278292635327562955769746146281448495845537330195575451828639392525648111741098837895436405252387769840539792362491032712671271706868596464604073043952386395969194314437546179584129209873368314684693518094420343522922206347769885980168067380919269027473995661125261703984252066913270142431337737446779500043089221390730354794720063823083904501466760976235083553997560387530678107101199155234188477652514000129823012670016841294194056732754041254517355103016127054988363021970410676966249929357714388341382167195026752592612619718574314601635594053029446214351014140248393782358284935123582656867589916513422961579816867436017437331460074948368263226715257630518670926804762536513840888127224869015978958529639037614864435551913110596341662302676291129615778632813504133971918555371959269872903169755411596342182617259885074444571085094853540400681774586934889591749827371006844036167846622239203854767056898026684994395101584531575193336163429225654783440110488350983188191016346714706414712938384592949910986600007485162005833461480190987242715874167287246060599835054384873450049427415949273979843267027985815123100948444203603287291100585528931296639071715236570960086552320369350743597769090399602244853636018628354101303442291563785281154872273965646546949317569917494941341671289655449392561141206513600062869392606682623094031506211525442676164534322711838812217215584182830770783294405051207099420735723296447390671721451497783073213575028385496604933557286259975919319501004945285182193921683732428911497913351244727141554035441511914932984521124246336844614118418057115109760888156208232468786232474000668576130921294462063184793379769202482254456598793279739776065735467098927381442988419171504444058992659574920182337644007100840479099799445277664038766422257978018546910548613132163283315101070755496200163787370154325037067756254409775174926625911661355114081584761184238616578816642037987292217649353860467741202701201296869697268847681777050189182586245456079091749664867437317439941858902872368625286832789455717897011344566868502212674416635725211490764201991299638365494343184097152582333068076830928777930796792796054967568955353954255529181269342720984736256758796819083207593277986111419539421306287356899887511153469525243438557221413121237644465330554375646235470233983931421899191291484280610326304162384460280648566364844978219043376319928361702461546871995487984418385166315271627376822231417520091845881425280173969852114364952206648684654148620724504116318383419375831942384143658124457551536946571730438227913013789442622933561154457614750869079006788478024487098394925959347690287330726642063068263763926544717843486676270148129601787356697066305097372236258358586764769115356248768250503178712014359154496603930140051773136714373351444732032059881417100707221376626233130398560674807233207508406271706785563726395764211654409880762873490038071383705621291107620342967561125122868334661695708871741800341576864987736449883145420081594420930021617289476364761491513268306357345816897583016345170916392575013445382396031335746472037755844518039845000821893375602477450339726389435034818893445439333857278003126070418987393221873187721722382354536162760545899620758041855678624950097531726930702136972997601589587522642077088176815007010310815971050837038904724819292540997248691827515809704169271939602132935967637010317124505480614189487730989676935049757621836467549500153064772632394651651649693308758789961637615875178878809721693185469062986871956487242671753945561408881687888691846673431753461940324823891072792491686310191027698899422675320432877043801162892537459065911749540580887773380183709774509753830393234359947236803836764058913365282645183232934202606539395490921463510937752376065192510522984149088978352653054349244141315966749310784566183848838890086158696431545025391756415274138575274305110168717031180691736125947787322110963489914070780896162587044793304483391345719702803075739553537555806325379534779765042707632166522920505798452017819322190090388955767350389851767092279677080400655326378788441399865908046919743227104692805212981102736387048992748921576138921012249291356197877179918285767854800089945050016161301712026760833537763952365861767745615237918586374525912150124244955454518119411778178722057872789540784097702334711678270140536228876803529300510194421017499563021788708645127669736236189060484538929275561596515255482200581633382347224213495164667180204556917886907272676089184923327276639791871896290755355955484089404304315663052484590725368666186789198435542457130914358112563970639405504689936012496220730459251901728470617490778559264134037178980690669326804260755599703405318192470306898984491030142345373831685245393300379775411669517134649480631219226664447580760862627123913949348512260595223097625180203293567903821249817341440626902006846538289172451364452725729722826489057930930811369262052774925903891553833942765259283998985194643337496351106356000984039000654124742586191417900017508455778941952307283994001578486201457944883199811842986550656311621544389837451186034915497954247140142446335434252701091665705956734936340842803044282123618276749306064469943803025752613464205931913183888118195689083141388546932138360183121441282591848129117525964000377804148711861087050689464020163403701143613706494136485088095952410786746715337907812150704986620479961735458477993954930938258232366766259449231102105820499425677962106113979847388259308126036941510787657086144642140952601896550961685331139906981254159150462319735695554449003501197595597045513837450231803021884867195644709821647820086263998196589928990473670793499814437634554963172776063126186792778245898018821429501338869937518385850847880586490056268922964656186094315721758431864385510059721078478761245171651236708934705438657486973183874585973593184136985970343887951671214777068832938970330420724112241413008990850896935337609966551191764103256471078361562398972333254451780844198730979679004290811233972096895935712322969259390403634955327929595095565062829404290769569267413293636287669453818573220038295761723100051895809547800418976597017566742905187146838261478755052496450131399927342372141604525196321692292420374317903009057339498927913652123491865409865829714886395338015923746555579519437506286611909658906063355879224869730900123123151052885943823479756671526061211386430212232778714627727821070666502944653422872487234686128386559550058326101701727107971433474959431192377900599118730122696214164759316737412895609939909359248905913986650118683564425496531774593332620411126219198499715937417116700296229885868347560970746882035064780731203767244638657007645751583824708532873988977453062682512022139273610249930929018941451684647877688571643566662605636669504490640542867643309104290500938480701393793899059473907823917669587021291371109257142547124143916965096151511737954111750613645850754031191080003802491056321803913107519613540583397559897693567225969309299415542512891749815375019460879103128784340429353466918730390121443631709011777778870321195756868984688076068191910426948532964621587227538323735278616220078356810881584909868741468370072379840193418663515920800226559713192425239601775037776923775091469799259936034256029932376590019522800410483889702298945953080655386951336235298641530986261662442659584854658881115886579841712964942110537561227027752245923369557689924866727332326770316509706987556562733565644953016979349095465388629092608447618979734903606878628370398859122008403409839632188843451834176507880876297716956501108834095314078653466030031787485830908213493032135927881985765620354352558008331001025425410863707198829144999008605142168270881823197394982950706656226062090749612903612196949386523887628533439311029591277948080174295241269961116284116840497600663393787761654436093079976069849160589869247413772299160582396397290113361921064340821590255827794265865024378837140311327949356276023076793547794381810171880093979330126635997134597126388599423469868374003464709365081601392972711309544625481543276148506295261805335751371019872690722185904715917000751982043477948300088214651125022766989173538961110662219395592969187454615229432722382162493206202505372000944381570963384481381089463670319727510658415434154290830081221606915158346592093893100369096645777290442173651380366328166982721112108900730322003953317444356378439172813411373857656212335543528866416100470273104967207734121840831742521016321105486508810114565133737208426984682702670886617734827290881710268071127428894800350522095600043131900801958808529867801132455926350872665639837623547507509453705839833804767821381315823609136373213567485403645249163887235817797882535860220231945864101239426543799309272571382490801672564793136285062557350080569424504774144598782255712375731671883272419579819655290059366774421568920056939304949231226639945537797878271224130584719219626176490618282835718670417178040441173266035656275659835923493478195822930440998585479647495315126055762074184796110283108203788793369526581478920869689466736103119401262271249999677127317798474017148760831267675859650411814012662847468411900395658275419923471918178481269000311223192249416837492058425547447683068769017170686996946463537946310536549771924454052326447426712199755160252157501421744662761808035513093688443339379646080835437502913002084386182460321894182234768212661468862985042209588799341843227945508410508446973351927888429013801571700877389951893368447670198212723592208564071788830686662169479740947376123197623683524319836039842432707461050481023844530285735999822717592974115469389135248608909823749951423522655441284050707369453342763036616933879788935947628935606657215287375353931475373447058558967925619518631337910967432322416365069986185881482502242696592071573886652821441062568395489786357817599064948215199163426774432414068278034852934055256996889340898348035189368274603526805846553403641075732423832901364930205536128086198043563450217189211146558411601375179683376820238843158469243819219640683245318397872363965007740062260411584634021006559086379046839736282523156888836693075260302818157669529410955638285964186514354915282659299975345857376202400902443200056130016526191253008005982535538425623915673238894429977586308198470878712349244029241723699531818867150940221527375669500016328254848086742129849582926028060728757340010380425031536303899614692707700666219709146159934427815498801241757453791961266511984400347020863932401164487026449814657368499163585217378415746182823159956852691940754816237392211102942948623488721536833000208843518953118199159406427605094569025439517462737599791323312073922113448548132383598621202894318761495512161582568443268948203739320248733568690871042624086820446722130275239846561929466384829700698520947995498051851413762185494219460543155952404785668666526337846114584272489335449258721767097276344678276853785687227018334547747198872504246740964204223465825483955212413182533707763279958284761993779768377224497536880490968511511281012690475897384303459068505823135994061798918819365744774414018844404021566744155455002241247917808037219119384491858442927259743786583487321140786360883589657207271222249546329040877147549471216190242937179376713509495817348488053880188772609097408014326398650312023646588943847501949829258869955831064989009081803987962999217013010850117453922053281871361946766587604529049245268493916496263593965847078326120386698653491163004462725351783069243804508194000827609377122072482320864181777961931869215285379518565660832467386700065372261471662309549962934574238895834850126806843999459096313352404104854309001322256591850200321877376297162865627012833526925651938157493860187317040581738367044659661383218306735444708026074900171883127164875007828147371873977606838242016584571506969344224881184424068906601906340016870199043289992545699693864031947664938633361347397602635144882147353055825974790184426456137285154007138711959156224637718047791038132283691723064413101530968267390626396531686581074904899350688403091801451162588306827308359542326638246641431664148188976483338017454471299372349196384644435843821058473198603424069409760065613342108705783023763238947184446334462238867837300533887113214924997053696997091283631793860955476482799970424470614724052506558212658383618381405251523522921157816427324972796520635352038022897486085403709741713039521021723109316483992934696830560837978958710683513653529822171375372957843014177267929455770756437273290701329756526624419565578853049076489492815321145472480786514486246713578899060521394119927706730438395011471690566202391032355348354874830716281376679955443770977133528303095798672205698621485998677005635639595608680265148127034948358627265160946454980061874006810514509747201440472422494438298081872196430865039170942266485740743393943968199035924294550499376844973894964276899549053312286976382012202438351915129364421448695746031548565300407781547653660230698805763148272019835534556364614190074711321452064864591278951219816908380723478654503900342536879201199812577256860582465156208402256805225925233931619042296998418222611813082372108658770004083435132980979218609278466582566017805908966434169171378656604791744127004392666425739562988856467030898694572172839725798268047123531280262580860238111434387229906801557993028510105015991165076536078890103021676181030718575256367639043818207626273805887652509671552403626877197115655692824715510254211708721210003807825126156467295818236231413403961598843609603094792199900221617645478560499435433429755085507527426828363972055195519390529532432506025937450237230208266170609900761626092204417897063293459200304819269551056343471874206285437319588189483467489827070982186901819437497437464461930741364244566068063433326987394932508451683277373278668550313572657567334356179172887574794790463054093922030384645210674265762104960176233377016050817244718013263696911659953312409131536016938876407080059236811988842925437140489739423676740208614281183228294072448589487154237407580836287888115975648032181942143832036774812966064371894324297152920554760574151560561118643987657502210343385244985767876182000244577557398250058150284475759852497361715486017951402857412863801838336122507044438189116611937623693453022029210602528490664651315391835211337017312123532574832405983637072186856253334307269294234795290217616235517830347864721890594506205296843898477367338303309919192200386212690331917252322334496584969981789985308232403687252690742928238564127960499826778597110278176147695582765317602038973487603526896045651687882839595005771021921381107228921916621892518657556237846680304152565823413140292357666462204009827602771232096282423821207486298428776850334705236459072003753727333660663850632201853442076772594099956472580887953210290751330900302251605579736379080637690987046831262313194101760347879905437062909272576485930387063723223473731517406390279648457597241903590787996889725224661807336140664808687251809158221598979078443570523884464000414427390077435069190530069734466374110165770393808813108993662945221509407605160784533726073340587243858122335491340643772554642081887266033771381085083222656690508092783673312050761643476908656074159437419429867507010264194683371721320834604638078593566256993827203082225918749929959114472643153946175770170331709244752183247083913496804200819852367681011663777509356172634224967952044483884291794347519731348374964550884524884125126281717552990280814553476205019337499463370636818571733021280501754329944671147303841260817725531031843406277104028040884842517731110339962982800019592617739695930206625774412000007911454473983913354972866492713985442023764447772522817232141701540985243304773064323151562455327657353167819415601558383040407718033049997377801726905037117668845502537594341067790945195314664033608247254255716310255235006149411733604953159617577777023831681747813285023852001521557918618629949502894797952086664685689856863942687572020719148364103986563091340168861038082426295118595576793556378361534126450383547181204949937227622258030736186134314421734088833707226768695365527765027207406951915955591505096133546525430298349854003194978746817417472679087527490634645511058773841314501375432398708415278236680707754313292878349661995464111512983594923217049833794296975681799249761753296662059898179965709333414011091636701689906293345605164979122279784006317952981543742835923296308087308878342526593749200642442966087486591642001247548050074287558600860559144046233174519060543193402802331162231046553861139945964081618706089925186012711414178933046717087063800139796121545868794050730548007077477722135997048036647951419612739190227895459027593748850421358997894384027435078398417737980990211050702214358009394589131042569203112572227445858926562795113406572672202429497357677266145265799480061202180674381424083957290567865158510091697917797901277027868933702182648885091719382724284035639931267674656553118506707011635800725740482815268966823087708017691326799304183492872694380486671930067557332787389353046697468103705148389957528003119497369852377486081925096246912507350189926284254960260788269311164304947695471175816342615106270317597887166392265652188540556854438541617788465862376036302557675505907925932980966882312852968292512633271279493513050328362616571468452524865385816817301405855133194635548310612587444495586085953903551959813284958244155974367946244899012200724556360835383276335920751692980499156835383324096270647137748972675076000815886257444454546469528372894413578840859262353452951693459793911490205428514560063475891895056152047207112567254755528665734066052507154015719043904305487979034667895953881403724022534472309273053246550025294400557804309930677916954924475145663176717325762675197691987827398489468629515271622537053300733127096460086216878835550692115725296275091647256767291129856537793532188805538737920856857532299616268456686502829304844581607878147847509809399223775929795981246258082496581688489849787206295530140548290815504658417953179682802552929429390116733296375648187369219684865837408407627882396426743275878285388217911626156116972679060302449232571966050871679584790086777496125284117872332697999479013417711860146840691742384118955148527038983555955179494610131681227053168365153455837059633616682547408604107441615421291630966560670993623482048777022621084624410840765202360818483067170630918114510428915331481808512513777386368122490964609611330842395266318576993216710001547673570504753840695007674721719810934928122530914221855154341578373681331589735285127811032331096984084262216766250588610606035559665631013210002033099351636937676941365315619869931830994185458411817138598213568239711495864953633503551017948187313678811622099766919032331847086662830191725244785495787984454150541012756533785131177783937343507360826467365882034286767151166565373394230079665173226100285847772122688195696027022781929185380231413825301967373940762188623748348879889204568683967063438426893435516250270005078174566926963724569348910500366489426444585607668279468447863311875211546296351725970420509703289378948801084489489883415812098601863187206780520954115583058179793968544015739516972013007898007359119466468540783739345817550009410900851732947958554593027749556293343195638552558684720271830366176115102755866613899967752141824562726936285131350146558744074582338152551353906377224101554725170239798131404198020794072662515708853502021081789924614978522112936750099477819486469347721839920803407800600374705050991755034705959209345141449239019238652121251443926667852183701990299694430165690736456211372579006881455450050442924643351928220484650976616429367644843996393155219015743816883533720370502884791165110689085946922028163854805809977520269368322648142942694936525366278925486630847048024106362915687565186532286340553534910754864720869358448742515435061977011170603492335745997028641612296657672165314802943659166525446631110810254181219207731188085201272451202990859350230568328580611909258214020405390450318421704916719803307832366021891196321193419425079858950342185157038724101255727643924126927100861362932855678620190423385772125602238996623779967006070904315011830732476356001349025104277213061099660364764402418500290639655130171735079986076804090615208137789690961809326653205431183708176687540797008235389475063449435619011397240375137274612157993698045455579407486957793969163116831114937280491079231867088119124715490815828351392186565405445114231126677803791471774982954888395988293263653786891332957986929787434201571428376408656740452685504244625588869673077242860458539465551163921659074982412443584571046608049398512184314466543881178927777909503437113009155989239476375918577956129153288548494950908655495077298354457447590359120060801311092032542606457550174271177431926389358384606648334106404860490558312887472967732312839287626929004682588584021682254256511520299253803581132876393495603586656582034905003799017074693463516582473970098335345813393478901660649250734834261481144230680602204955938592390295497949701058378229051444520807925274164746745873321180481243946251406187592390878657681329512525308090967912762064791898784265095706230400458985809552077931556343160256416884314570083526574242588120654240358820277703725993374990729865983317834406331631018814726807180630396665203694958081769332330645338240757153387065553140493468180164577134478395795521806819034130987698155263778706850477701287335924430161091640935928955767970785338515050943997963373633499275951514928063325794464065051113828335473237324693147544090305103723766543340901943849135897423870134709168420276423488169694632759589402522378447180153900922896341794929025111606044701922288691591535037754561201620309461665997188449364189004652952755063977285675994997030108017628561064426328918645587316704587717607564192763503318451062419826068260356245438959198962631773499627660118770171346691831729902998702456568511119401246621729143582643306747974495877263229915129640965651612569465742956929158147012952747513488316090512380869583192094145842212676723808534616660131046432287980434675090519444208650633650933778939311976146525124310825914514218149065703462077795434681370650352531142692289426036630942877155314583797704758322213832108610113950935941770322264758935423409300070333930854885803796087168508545836364279738332156974855907671290634555485068236631334092644213495654446148599566831727443548224151680303302348633691733126740265896673096042702186146026609378725818094889887667594716819100123976532417498898604381813137284509714118718190650250704844871375129881006458382466531575544124843876683295546370378373944854657598676728414962903384305750277045301479493601872237080545261377118657312128261347107887625879401803694793483917818837453360753676267783346171892002528784866197822882447412686610480236751017291976022048211386250489759861786388066833276504892579515337641128468833095384130899726596836226948903878683392052603413718704551342438082796622876485621071334367814814903552878927587265754982107203141904152899291442459073528378421851282917175468885334941543213257709203502707669243187672633546411311413244361663104905420170954605238884288594180376368278259396027010653052410191069053918259071486964477749062078178990650877459881453254144029433153839495559900049692851835529736953255057136616605271785731644791057798753987544992631469378540860977705783363235292521351342284129476509319217075634872783961598922213437882544841322409323528443308346782000498201456594801475191316556473634700212969777469447242989360820341276166482616768580811704058419402558358927904121723786215970261314121167081446107647784077242403968262883404288571388578059723271023027314454246621481254959968335826720305197223850993462080893721255832570595651768395580553675552307246715610248110708787792702854866319634123590450985972656825651681752411780238394432304602643109354814941281931162176257708549381301419350447896195419001535099743086043967497387149408212051514360830205775869186544990560815339412838061048147400307538783397331122481025273801068127883478467259750522979546145581421047816625409586737481350154042667506532458908239810276458572945422854864599568643289632077040184698728993230112255559023198299229379694006070815781893779462423449268301430933368605089229182390636569188105601001557787721926728006163376177989880845010588120081245163920846431155777024948724868538302411660698941441737993998627108257112974883312353693904134624571815973543983294064362805527706158539188865650236535130063189190209388346658541233230930248622520665218464241217010158833957658941897142594222330334468369771854421398445183483827959502009249121205456739131820320609256415262728590775824222333877886277270268698839174718183708796822708797175140456033538702322633145468033492886270280412795491340054331219152410432911073187526711010172955247814229915868154333536427559057990066872913755762292473912259873302727955380345609931149951717147862327455984247473276696146008912217589127878330670063146062411217850774734150700483138551858880383342868760507486586379646635138226358430298935276691325467648079242803177944947549134984228866636512829636276118505048303469996260187109991927351217423444980781956056695594859562144714261187628990505092341402573358526062711143026131012764298806846225983419828547195833322727906375852496991175730667615672905267534127059344498834635220966198452645937562518896864540043580371651982874212323555693346636282652967697438312641126014794807891530890167667061287567881086668799028717077447879441941754443085627655058823571205811892013096703162400268162743415200180117423697298522694329248283849754762361126897027652630649053042045499086682257179301417513441305496365469889699317362222497430184824932755134624088394998593920957583681438833031568676398750314025092715197305589965972017944469541596028264764150976878747516621789098568453060460119586706631889859095134457357064361956806717723104893290122852980900709331574690450793459835760792412691358869490499045118174146591775946636911427084370631343221526916747764841109742773717293624489488373196389401531507131707659252010879648454294446792081424910342278329970777023251732305779275262897987850807530006493146774644990379062033295209565030062881635232696924749027683509164891104018999089993050369997208107771576771212031605865404521242788998606356086118169952449905620630796438080950219529252766675773713316273154562825373750585932925272303808955221834490112181857005189993608940402054376007409682538051564293815743342825680596111746505367701012007055959136861732473293264404334870029736060822621053249573141318471335494917466419185744218454179483930787966053672124210178533949613075718773020271011819626556790756179816343598274646032207699940991988379890648681930376688346450844893858048022649679363184886106286363063944992134069748922349756158504430460158402885923198244025156874222431847100938058592648575563541235797724360571136959708433885330269377135078022561404766035585823887832033608339944663253098035612489524941270708427462114495606490218942091911972290365723365597113394859323170112406676953564841548675535507620478795129420167342868170309932594269480373753001991940711997064657190691291844127502996786329548679425372897929769044893342902901489579861170071691115204699113954778200577230741842254674653438489271597900952440794355764179799971089111626413384016103153874287637656289576383531336909575614313739558270629801257214605432435236291526601540781749781407453580362263029322006199759468367280894620990647329708477086807497779193488249415070161773389657137247613196913075281717820341129329180349934148502982518548133590056082554455943260599449459323422499293227211482842659120821123807830354567032049118051682509911541812176542265794685445531967034402327747128834679878442138397304461699518658386403352851290914845776425832721811021341619522173530812349187001058194354435708491944391330015854771408085370323647402676732867349797785585767570928287585220240392471760431012685137698347996072147590783695221914404157396288603939015908554269960245418921420240069413664094933594376726687888593109466905316241904449912175560565572651807557170603815190231902792893366280124392107694449390665433707387243868949068159196259460605206906926463492080146760204510290801061447249962613093570271243837085180663662630292214402059611603191963915902040608107564973547985270884985280113505785354275354168474217557818654385053163376180482677273875195091627644216851587336748886807379789819254440019017898197106890535809336608378643671311724782663549174335885038378198563493506092950351623804152470120255728339236940061868372117197028557326921114965999136205994384295769221401596222490440222927544167472160438377824267172594480209395853584340115261284487433470255970980258977068517723241210206281598580724562567851924464555885651101389153777530467439909353344846378450798790371322119024850580355889627331954803940011142238516239487665681435998136846951216563106392145372136084168327425798348365106058046887705723622281240911114658790024180835661054100474401038839994480451922466163287728434905558316397300378466057488453367513136284447612034420977840288465986043323824895472433154945766185554506875826389007152851907511339775242632001552114003957586312567213054993481691309412850723322313797432554867830041652737911056208065885055760996225506820869630443955836650025374352775457771165855837428178862887810222759701022865020113139156628880646480091563982489231853353462377649415829303227674341612955924043904569714511821539072566600177591579672888735996747382222483199323615551666143541502293089236075287230856028263509576318738284637595790068714496349308266064881863825575502770872191043987457623878364416509594063885056697157923262277559570047831125704591327513011932044276344374242555025617690011448076052675261035042860637345612778559746892246717870258825848701703887922336796080671084961168613653203728440170613376907530748056079392774018600164496644863677484518120349587633658337226410424571637739212228211413036347398756350988903342604613628903400025533266138661684006420240698838963599166130202149785489615366196503229030732921611318521197056200721085989314012273315459093321883461730781632393614610356929500161293411486165492668241765739354985119533850389943451206866993957002720827815108100702164907182227878746520865952606891848651957305831373725825733323462785936356499105114046737931993577699257545946557171184368043188377763752175135970954061163721041171512338109181367701670692215164315441272100313722543146240710114228732806407634750419179543681839970828338029330765649672177829050564806778150627754534986755209899457564115872930657455622894627604937528346241608187555336068758574626931381595560430024149092097131999126282054252341097716807815926563768301470887947141529946692957392958121213021121172154783036217786141858361047778516421389898744008872947065408410769890117926661790044695392536801012570212060662880025768969656905914493229804727809315755997995769932887948635060485929737637835483503611227398046072023371379887474712606429253545572775973336094216711027241481698728468208598243748882580372338976491707854749898402931631395276495087257575103262413640374723793314900319652955779718906267390033601479063130228758615162168829470450524969649032817912385977190714790927521472779899474427860606770579773448466588169777000851620320363165536184519552553168229498345454526106688517770849979794528931005609339015485131706048502976179626003912299549597876721810110170827099928942953777154649988796959881521827680749151671205367844719134595857853066141255248842070751128999779078411590576240560286837929238828430012031189970237476277490937741415072640252567392815896110711784707521195930390868669504722963175163824570850990771420197998472616528062429249657878808828637539881616101945800574524942166776570739523236441624008939407243474682261794248987607148423715689459572333554931056838308075186464519755786526827259398141186399719195187113683974431977097444593433806211551265089919342003172751828402297340579166304553238451124936469175277820674355806813799464748659164065805712335554185788572969733018820297946206104063374620058139591921121033373505437682835679057312986191512661620913619072637238191340060400443186599367563178746141093258443806854232636988148385172892001176569616334336584450919867164126795627080086323620662113497872645564610459041451739601157575570788265368993498648182418512314906787404867776034982373027429869958987593274762460244324425520416683437822668891152413017161969271609723403947876269333947977223890411266959669041698634736398933058139174433043267113660052460149319602779277553921127237153918985348241359078377360318667604738888965244954380743707452489530694698248046164930667582937751901130945223789951508311237128008824231416927499222929349528427062141175737709950115658005536264044171331482664649475334697119761813924759972465232595628340271760096878397215542927065368920107486758993398512923164970690766125750445882668454492332568813898467757938767700517417363374561001178859150998770824974418906885283847210558863405845447753813014721645903539320181727635516961332565847055097234343319623559217062334503750368596315240536054144808835381864703454152785562005559546962398391837173221073961774699618147580828345918504238594445364307959283906731044519793808773614322086160985563184926254437061566079419492379736306688394497231887339478047126144548260273923186586228523640541096826886648356953500413972456345532199140744838268204501705376179958566059901362601639814497806416075440736398660506464968421504386441345061461454342411652599010189074669402747861890581801739271769230410014310707113304849796047115958894116564159338806572222334299771757141224097790424370475890286598673383693823675649448211332728886777895265545759003714684014517466664511089829235577147905179951021596884306207845693123939162587973807997654343430959360488195456828697970369689516451484565275009422402286068836044085591415445148060762458286975232733355837555036902781019971789849764917325856619432734951625413849145599219981795360949061410013264040964747614997690018857819288279775137926924565086666721392003098132015848587083836243130821846309244453423772843710007969800862813981275226624177826287618180812932139831474765116502995063997337915844819290812633021602246860640140710403257530863211057273779290434250832558070678242190044590098752787788444194125651369613633397324656403074836129521859357986576149108833081052831846998239453634936008668099373920942655604904210293087778436595273315975206590044645611610290761066176399763938480178521945950576262119740299331384804428686487266170994337287493100787896394239624825279558404079948375812126272978396375921196763975377355491671140637643645851166294442344655355232676687891299591076263033705804174884006202761742779383846752477130337119703285173709524618329740633583765431109587312148886283279900616545179425034906540578222518252467440348830286611783215957619804530957143827704997963685773889786740828574358055148456509493251466880499663248893939240624014121550672458215789675647303300558053123233974276639004815715389247117291938788466526847014862014907589727435144112812140530056141700835452074953679537860485670981939002698290726059419712524931732468437515324095937346536178504707210595541242834105941311056748584575882489283609106687171245804115911886612628549668978921695254071844590449098210569704102843801546481788521301258048171182109447497312677105317438781422906213793137833812516508690870015100269342107748959493768105714299596683120366892682347666741426375626280936991572658452071722510526492962304718571815986571133333507536227772952543691533577896809923176664868737989194810804502986337098569068538053023341381350481204860892508427301372540211060341110510491939315797698208795065370427681610661557724007415279183435046830054083521247165390833332969970543848423055909187252630656068854397049299516325432378977700940234725020664492599973305112928226443951119792318093147854970831735571934500816943909056060347251349100719144128835002885538281658710607876113299958118563550964621210886514550439633445073925301682756338564238633723998601434674079720478850464017647211228464134644640379991584490438959448618113598613826940078084159918348790567972056783651708606105704418045121127795134542141431618637397906398702665382370531910118940571089135753963284788137068099336060151631767171006967055176623315167762761253553826099083907409993657444198081378449283392926947163211329687883291417543125117112357389771447634493396768296949952166923444823632660437622168384389610423981929272220159977596213321897925933803186604765004365049985980500179538057475078222378685807865017882801287702198375143759232627037297416108567457363238050358348963061905195347312013814707739614749609018280859952288151238414223936803294587713579169377880034445306458360772194414052992456179161245562507438831391509228550803885440176626165782083750439214223337995680554156835160738990202411093029594591882980310833298697994699218797723436917360050307274319265509211931295842282152692663605793550984863308421566861985237091563031307013224948959291639544608386730968872832170195068199291215284450017942063711072050066463091465900695372340115461747125613847123380296223391449222371322093199031699756602233098951760788178657075076167029203058759643965878604399082111281739623972719009011710893898925225686668778975341121034169411218613754427233694490288717035651740474407291029538956438697266569305242584919329910925635261452942344889898051535481467060190779506717546496462258743445640454664175227703056662076696625436218357193594004898107831830255803366690924953860544034207302939154922785383240914288243798901924534867856052258242850700091287481926030985717491511608482041896283176792390475790436178873974781343912719309459394819879564435361396100666976387914637019976702357687590071108886784052356942792540814243250533749870069898551509673479127484906439893744254349088891951961947179604433850627206456939084384299470296201865703095347863147371401915923510612680843885606433606436942612688978911053482653922985678538333241846000077717087517920027461994531019307607369810790181912612825790465490662036419872497696109509439367592427653943050090576214961618080622522326069772732444366101374643555087590634572174195265449619589269637326348804440384350408402378856325070804623463163630526146076442072942793382609903942433276468303043228923759484172124028217979012843586604976291743085488822145190965237731983463741929279619864898227489852646410784653628313491613147537551791889336962970995902747503574144054672277323236420185649817176323190246420741225374611220163196586603457550265693568251494379817467565306055024787797517916805135821119642879767538179042835897381872830084974188704861782066936142573894638909223977830195639640397001307964589650792421525058611056413956533681718977059688876504507452473917451201672956789426681861128512436800526489704606876714604708687766422822987647088745788138917235369930744876696090876777405230904976322643494870899818902311663019564589306411741599574969500127529525202975546378657409870718623144267384798745123040871101276382744881912711430753714556270187737162548464923314722514797301077826515586783394779292231130854868556454949962882267446199478574912267493650830679529406537654397038805535374986650020615044389252638397527979451552616151303738883056661854799467381826692066614374868930199916122542696497889905038331765667792828790713933076327318758188855872528770109310202005277430260120728964856661190758892693710663591346689779981999321712781804975750952046560441321151015995272537663658888053205890725431104257591599891006137993348765480973137121860282782405622964303396508810153417315799401262088166164414526846460379433994573930993245294045070788594314995770603152157301680670058450144041482926487125662330537009168782705596766260267987910980003235315925506253810507147027954078850982932187705725391762616434285573091376856446058019228854145460309592820908350032717627657227301245693501532185041964485922229837865333519058748591702873287444316867341856266718364037641404067539351359195419853657279339421701890201808035824828698359621092441051937188191418366770821047448391358276341253244863617989138733824736422945464807644826665516950184845172381151510401870958184563551274635680875953959793917792432968615242435651414637683604790231767104077613226150236230114751790536361408504784151878299076236101930162298123846602602201615394675195114664083604256011991583527050177120448030292859282051335568247621227865921560665224398451456591402799360835802766317159537097856490160429722556331572502607030389109103636263084505274916980240325413551385569307237164481120601680011749836174580939485252177556079441440208941361634563471475717330276445157596942791488119031174955027623510467864510753726022544725761393857400277748348658043870222576646173962918172865152457241382083112532556398652794239300805564735213266707345128833421964489732772622807241129709178753359238139801917396989053796748653803552387410143037133667374131201511096893300646948164998570030656916507983360040751519827010743341148492687924247678172817442933965847620950980890825512076743998700459419407148142861690282943435305475253507240064803256210801969126871696511295869071950426501099021189064930717083459838218783294082228761214202772074246454411295092233117013999657239838202832964102452202963510793475543488397370838097125636715787940004184872859022681401386338930293370955304746292783025008008857474376522770825339626779325398652587958162490784003159933712956416690856315642937064954492091110868646448747908315804906665832463767444633199471211407254049179422578121775359933102866590287856018085873942903429907056823502325702021923956908141806761495632313322037195556841031328914696439065842691605746438756548390991805827514688174672740992864038000720271805345166800133949274155560968577369334692433688919789053191978292995140937892011478129325862452662757994084562900326132449217549973636927282836905566337032826170452058958406542794189182390819088942975343522239733426567921387227387246319443106054697964415059495241279385294560345094550626407764089189372350192046652398142525745407054804275014821162879599811192625026823937230941034718933144383725830211225200663272033720412821676000767053868883331703822311297122721218070682956682306888316776371437494066535632319575797068658069069124573557066483365255715344678429657985641477907398154785331532609028629866216371674863395634911959245368334861141769015279173287065973842098605823549761449823044485783449442673202088363814026686734967053766285711623640137049050989655719911329207134634099847680471157423430582227395549793766348244005885888216853313001626196112990069011695540367332237023263761477041088230331825687145977249577859105628918802496964650268229467010062105368617350897155640066770013564188249402330331313044746925821114606658532262934711048053896100015607030463758683988033878455492941068555959804739217386541747161002946068397657598794939015378453129386138065233459553521349613156904967083185907728592096952172410444336965962187653963510303211867663934504064005168260047150925448941873549639638015581428083564923489237077240314859095397795873622052654194048979174380350558742311204222551377226445625628098393691884193061636996484469771449884430799139271760206490916970889262630789284881285461305830249510964901448478865406956519119365839342492093006793273649783302821802863875721538350849203853253217148442236060085669948192179091574848150102017591531438754965919062847660231621385956209489760824811855765689777834352677817252149748578974846049200055117032679300678398857752325551204800843534524916071519366012658477842585081716009822185120027174379120105673566150490525487659775166809247906384455791003443106638687429769838471496155630729324109172055126511379472782612549633272975637448357331883091709032704105712755470315502698296809702728767578410080142906742939387991404510325795454191781034285672618917780021856892342450005922339767573227035037555751137249788122754651343731266222840595447004296513571694221188753327288577544276240364099633125050186809463633306794301771277692240594635148168430438532402063330873720740416866580575482131089713184434673494517748237407124378116826679802716513128163929272510452562065251271642055043622955056775369344109155006235340366249598942984031060032719424083033695618098085536071809164299289870230012130741190162638119221451192469085214024154594324667834215340622299177864583072798448208990248990022418415047119220468059439572374739368594278832736074758426355061746395488110533574844042621087901136267178369483924880838155139324812980676753680007789672972892214362044774514284018539637970859678123106862358842183186064065201768443768890469643575888739977202147652160897643667204507912870075623377514199864019629396517348008666101887930921157256286608925430136289859802537503344746159148395257535382276260289374262415810608617693325918257474654656915463710236730469594410600327785195743046051404284971051863114995563123084411154579393715243722400686382653187520585931587847006587748652191911678397351592841534253587598881310106641337924280653723544660067389075311832458653316533108307938931339320363665632219942690166603587596227893219786579474302202135175787095198018424531974264166100052963216058650837745528878769089311672802795170419547301372540527405932430055370637649849604379187892759374836709497506110038812228876100253743325031919694165014510171246716240272014864890752648903114828423147352353176745112786789661254661816234359511414585737092384772902935467922086524393718850952349968663238015809701777408426681048289526856156382308254599781206672038043119334023558144622942919468091441667362509187659069438468487907608717273523497861160977275585907681204741535543898115065256507753038522209599307673955716671245412642096627805863296493348234190666742602688017154249977927826573118554398693537077147762502438694926356357156173787529328254182306926318446143721339237511263097761433204432488378328056677386663056964041314539797832522115111530452816825463779031652624958904176580416009092180770124886919245171531979076708462190750352423029067708749424542519971883811248928384668760009289655661788919973147511671838296158390676762015311711721340661624457906840586485587536264845540490299560323187621677227577089103230152421345296360339302832089759513158993465671776627786980131272556920226526684387651734556644448840052351028345566197847612976344882926106268227133511249569426353901631965747766293672848545086298019351091604136834750973612756899351586783481070407845914475317844707024464829543196418783598974499246758414081472877264405656140689933913205091199385454607626546043611464642628518567867006771971876449468219582699306640875799250261619988894816381574043733324531821234822935468255989355796758093853811607275212165631534209619274925876120651766878068944683815678895229403130602021281510571624078603638730325182894336284955170137524958753315300436431578005345479027989690037009349288670651716156413899415747693428285961350598195139964463687742009277158117832508955101935765184121556037124567691676857140678896625661042560090815398376862446346138473654471372567237386713709097095212898726500951922666729724305836643082788270945224441859346874870114957305614153731207534242376432733425741536816336247651699192786401399509842140091855429107257595085711118477306168924565347065591510668360224165861632229202040128047926236939407380135073193513697276168524684327367388357291350802038890847683627111603109937026720253666848540159735885200769013545855745922426274871332537340786679155425268810212867705281623964187516005276150505971059563437702001589329314793478873030310882720384709841315107279395817293902536498017662221910569236642536912369491500818117998557984041744853393042891428743721153403105947867299034547109525091274916910697827538017433611813125605838549747026146638600863667315442626417173045033931783627722947185282055778416356450517255938128682828153117345451665982046761916435971718448385218673275262862076036056537481306236412065136491409407788337273127790019759812803701808256010188222251362326398465094875541523888857059728214335643093525291812600076856595155719445006055358578890925359235142605256320434834776099089104644390427935081355912336578663355359780441354713880443923582769088626769972828760432115954330806124147758555669704454348410309530457800436209101110182206860628614683737808852778720148383070539974814042479511420779762810887637970560932180052589678982211318129523652532954792244770120892896963922588606817149021733253765424981032554828665446912137238033105745033642303741929811113680820774619255385305971909309666922167712012912055783776362585818705012580011402940712118455265968443229262958695817238441762783172468629571147486271671067526028212692013767163339024166421704823583608867202932425790283083868928107883800972584463476733917836507634659243310125116190392719724594100520868526097946044399344117903738279483547061752753004494964709815911771763300115204431550904736834675725377292653305172221252087220649569276666321252482082637490709042005785275072771329136526623663649907772293872503526986484931373464366626018652269137090429744543271378654391344978809374132330916266905699600121111041547376124275897819230877417192196518512671065173802427622544789795298810524857107523914950464506433428428342193847255353918162674785006045190220108849893037835784492173866249475070860542542827357995783627213085619346334756962810748463277234509724467927467917253312476019075860385030485770531403082446108323000207552295942678281179826774530637980068328222536376194023514721486282840221813790697705624431759824260049034994726195669043248381269499147725853913835935990310603707054271932896144685600658852987550849375726867741543616628728995305672423668796711346243691071171113674378213000318562375547101681454710421563261849088992827894009390698695269416085887697586177785467067451601582408985709878922777014190169496244743795375127491998051683524133726947650257518593485233799435426944108661389440006637206691060096640215161352044314512155424734119444109871077675737324118362264462908514302360838495958236138790498351420999159249046987173588061111047074505902346824074506065752410292363714044573469592194906301647077769142068032395031348788592895229020341836528927498905742016375862670166213804977196963719176304711225400470258953168180136013388424971171392885447067270428809222507922308333064854159678663614333697219043537710985095915751489694600234747301356517402479740653745145370377559208954943765325659954076536916340151477955759737661720919300719583938944196415986124303388395012475570214180683204015703881415525584162341495036948057439743393285411838103656534489751236792281246719376972049138212178827136091548948360459075951354313028655893842741919608903938599963002840585960833888531572349207024690509892665923881707113977229355809503655957250644645476699003940754289281628932016110288926268585435828855292088634571255514245595826566760819233494132160417512982224255803977664624360047966446281867120297174422507255036469603993406475619383740155029835442180461914862145349950250744008888233129444948982541201165382562733518045493688653498846420248189905616829611533809113984850769785239157725386256403838371204090339697932009092947510932788344599638970268316007718180042095359974940864173374894521410667972930526999273716518235369665252873164021928406563455623026799800699850204411884553535139317494864879993989033661711110878972191753598080372135595903820423724414198295122274229073262388183107998530124094506751157054356166066725460628704589138637916395066571017108037175725696617607481612540196850694291943716136709497600036406003324604629092542798462447329869504395992527630761404303017391524389389661746365129668945605798241007709324706793289003170849166611755823974130071856623186352171516150981499587738899302156694448661338678440357561661626990582570642604060672625553618984744652818528382787589948214653186103122789198275267334434146912372812790065910709344363264559117848456167081036193835492152884241542607694640175022646730830631346480315786351573233739099243091100709679640679560551113116863685004933437285771348483921853034100330015797274138598480207242953130882741859239761451229256247475262537735553328762135345032142590712439276970149375943755475552426541811035966675260545997910186324634816191381988974802698603669453199723323450541920876768017615637560180787684865559256104342163910544454535536414372823792536783697434412648242298285343046637740150638990309205203510399313577451879759668619233020084186991563635327444522203536814456877796878600821206274325391477958392827052141678308504876744646830706663587487241455613625996190132012771249300441910664483039250137658939993615996749866573539150389355453809365278784094688332363417631286574910772333864543237719505381962711910294578348608902874625348703197493033137708535624749898442746993820540813730028416042541771477003225105782174297889281427993777999860617355282534381256431499860448610173775486480562888445646937736806403235968715403397057603338262318159054141898569237368003097226616006616471560147165419860044091724947799166014423541117765613962797951001078855927521681341664895771738806797760317751451199525894441432610330062280197284634656075038195525489270332305664987642403360708618513013558637705086985083493437567076451496053834602423939188021068648565765409437871492815521492563183415994371774031388272099330424595106589421740761188436197702037972393212034075168743821138824199468598834580730928939360064497942361161670136317613918111703193395778203346976815528058085956006441104356340422645347410040942094992483359872782150023873172932499659069561574788076399371978814319599823914605795656463345810486958879855114080497894123496952357163987333168059687499481073973439535635523979488201349692967106732267333678247506742482521484430521867835122148729713470286986933042530118617549256984027457015819094202945060015085225680150360375545427705434123047224780748649439781571912092062274820757169553101573181602505088670654836240366711393795428756594844616255574813287055089648917844767270634742564798929010059434344048148003036457143530166369699816923080426829038540613475914187157572932713691991680527925937983785191422770820475595726678994989116806928036744641227294769151681154790801469628923513816064368727299780876355924240242490502745258889366877710595308073180864264078127463345983604913507629750400660323590180480249045896730114103512163927336104102586223066283202876388869338510554627620765247963341814391500836255955431388508949942794546926609328476095869444840317914666827902429316804009984361783446675091762266707545277170870058606477931097756018371826278930786715888359195516565780558681524631497503269452250615776496345822323206739576797886158120675886672704422906104380200151809012122046586140805216977555353420477948066764720497719414838603152383596624967114565325978727031498832186550798404152252409632020707566463063921994892277778814380083899902140168027184791475847349350847726027028767105952347402927871706008811941703965156581072510619822868326386956052647439978891665499894377530726999516767246098769244736987021364062733329988865274169430329499862481743212144883781801674384244381946368437403359050783097498218210823111675561145452343055750912937688433259804080366953828879515897297689783496759726584956427244004972962024345652635455095983866629783010296723474371108274744071114834650532105643546750368412938593255338310690537041856993008412578167223288264723364685897598044775835963933263070263061209570271524762537199088834796293473252249028466102433401032642571149311012160733264335004300756750576848232566179927578495709185419724597294142389247641461215621198340797732745131044029118309126077986081899950990974633544318165640844116308567204138649502608226733584641784230394950642186704967639916876392259215429691361936116430684763003883995711380745906444564208072049411092324036775232219815144003193204834698010806822200041692636437135531843220224427815738541633926543869561549592223255837475680039038679599927519436546445007330770692732806299406303111143120638090132023912351924589237619527386004640550246338521764704850279512542805138163385115314290329699355880056275885113893802504605060268200674139210716409679499933581405211330721537515742457466573069536278204738434407042514334455090438291399296640926500687475340947732457328031999721584703409849287514605480247693040106135762513612350285184183824566311314798930868175575598821863060474454915022056070268082192352844100035449840191582209343766336112775973218254060862839736904142174735953210115096545929860389256053959153815617933137075938044442145395846518335775223178543616187946250732223554928085833890671455636745162397798468729425367821353963836391720870608715327483079449004572705073711881211941039721445329984091353342722044309642666748159897526466873685293757842593654833100804963421202279705176481229120496861690248241219384688386998805026951643526907478468519468664163229829182248292146794917696932214857596548173757797695841679228155153410530975690043741786739085898262004582372433527390925483895621505106833249897977297700219091142450644168981044889425872257995796249889556790768851132676017211266079028307350421680271305030387542395998273877732415806804969784273736880048666923016533834943346562086083071502041306710994033343684509867008994777068261074078015246980531274443241587714965125432009643809865029566529948320740033629002065030877228785587944436595668462546037719729219778914790205543822566870305828155185515360477325787382638650260782800958421006278123194361813760207282648219852863334337003182731288539389278587683675848725267961052993038312979620856572112286381271658798833894718832069265854850961959551388437581052550258759918710471331421964286768850068802502459832043857265161704892544054756395824683588127607343687615865030577596491210208092218235042563142704524602559260653280631834410338329640433456579612757583291509798729751425809633945529779046969027481935000646379405877456520574420165413937135888497029478717425067117903081505161811812988526322732725827712146865613129311731246567641238935407356221729998674753954495629948906132939357428018678148652411810276657182079714650817277908933200455235733483703694509992537556535188127597094089593979849936236325217656577565956548420809310884510294001557310409643169555191474949344042659663245715681819492795737106095679274288708734815784492008974611598043522675213224009355705427868837495058363910133606597699292990500915195045265139181712207312999307735610987751293871131561367532876236794351118163083159277776469439051827349668457973816878588572176863692561439021853735822827602510200675327615723589426743899127519338170714087838859290701421562537435470573623387694527980042210802727446453899948691748554111716733330459717556828649461793514188844439887530634521973362501457969408331920826418323206447122251699073762539523822643001216462256558980499531759482767245428819530675302793509262127557358776801194116818323438753291176767711066793151952909428606511776665946972437668088138740278489720872598769630459475191957383014787484072006188407040256501933154503566069173437032228542704148233288875421118587900756868679752228279770845177096347582764874402224298356863365208528246341145613748036790560465037317751197202588590689822051253560581855565104553738688769844638074835995052415977251568529390834372112842037189912607678896820660635423603720078300818898984447135885851400228163683156743667372111733414872082210128465333224831345521888336926873621797047849515660236502035230089193598715329850900578084132631584358350649376513063276533900609746308459432509352153462692200438267226438784650137458400465774655035738463748349269085863158636051347583617328701830891481222527430721405854699607364944673123370479507270975578681700483812132657886863439304393775405923223341185170944995932959055925121746015827589287689593819459052760613955201609669956283292698063802464091489830421322345106047238786654241964674776955532981104592013867937993156613135932129145834015541765980832633661079041453692783867676448578561480733121899940640242219202403941206818635110317726822095318205675136112439502513754836771995936563380849346913909745260905539226455951123483094219647136192388804624918715486992419566326416190254860536591191593063869222553536927859141457180212078877598747133515870467111008978404827530777856616556342547179456164947853625389690693564140368945002727604023806343624317496207878298951255818744076560609756457527080841670355947968126474474707245075845053261786157840144578562612924862256836576179851562009989998460471575974153989023231999429411316199534391090401896041692672625179334525832892903093529819193730208748233799992557995561101751120135931876230915806539915908886130283974378205575655175324973208620874888986778228793666802600989389087502650694730645712619361898289757945454611073254768837468766247565287584594864743296635429956280810776861152786674194304508458897997459624541774022318731607143814241010997176780806072973964358823637627279668200747391213693214876583103260507763486069906896165912514181100785075721132281267083965282203852719997237822044964724865883110104557068974739774134614491125745806172309306897196195395511924249400972933034067094346977456410713755772005972562816369023869173373310107869334679264631260419120441273910901727628441112907992295009763155179557270616552780710720374413869706637325945942287162822111528320061973269099596350147612344268757898261018738203964945697836010163011351645440611339455311683445371801347514233101123504029517813598304613207388005876816377765804794921483930078003367963487059441953705730592042071304677126377465494129877275653038221447170898777746475590011216426878620417994658263106612043972082154620504801116205087802935989377010551430046446228854192970091301099786328760531051165787463939481008354319011959715339573942770821504240116237029514901127313163538086968726904848497524546091914888554301626538123035099034869778064239230248764641057472300390949583335677672642890716906894771349722021164981453711979327000764512705458899915172446833938402578870316081858607376802991823698330212920367307576595760880383171679687658070604690668044489095574575172859749770260274148055752743989487414778649284917621323225910053203054422737696803471158267393159559759265265520053031047159426950100844871948920254287933806306923547387090437777131612892057093434640481563347037061522618381498742289388842210596295931708763733480490215689803007424831326411100089041981128113922026126025383999568778023748223203663935180754782577882873799571309176687388411334344166747058168168621201211893453174466680870986172547602439973474676055433332912728672876709396478096383437486048140153836586152655699224095294830250193637242624513457577445839497512057489907987510273525050446618472956252007682739694459589822800077349049667054144255033147301393776493890154026842022436103548970262104289646254010401242922333679149384832089672419684316031180005241917507471493905263763839492295284016888098294636895306437743298991814008605594434857988748040801037896079853866969801453756612210927086462803820184715358302748976158415329157615040690294702301983594862625527991550910346395305100709495107404608074298474616226169642195858667955520213483519620030247693302944290573400937892133517043621672065772870067765168324133738244002027204841525126464260506775162707131765444674040049026097376300076925398963981324542106924379471191137613351196688172943953067753585532660010022520469791773904339344894526630635543771007182869303012130802257972870871530544960390877470197142894010945498299565037753437383645243197110857313911072968164961607400400991119127115582199659947633303082150373866502779863997422119390475160628105412214797267439163897800079543539574145052810875757667513876533541671834444340259927712461951448350774534351945029539428606198156950867930306063882844695428660954986026617251708961961158318684851991147509394798762295389392738642870076252115805710587355299442025545027068024686805390834286180778785825683231559526294982161076616584302414188553979973436890078903458984896315077576202129753371682061764975298792369502956281059804156590532214306361510799934888525853627573120491080619689984325623030470079130047803275923917078355490986927469438748483910854388307022811662596635147913432009238905283273414776311564713040921780558780528978218770832827496335408160150943906672752822434615840426606264963771204775017859874285991386040113333625834553372907314263246978060446739759871805434906269148611477699266173430171108968130432057697235507562283635142184946477788092633398975811240951665335154638820820947902456437134541742114430172043697931182489061989363770970555784055197944577397625282683691552898404037721307533533927712786161645069538768731939422540234427219268399785586931527632295362072906763331848590096658159238600040266494780352783514831732592348380490568105242148458773564480312095765034828181659271267459550892014584530426816476125071443557842305912986949125480778823720790483293538765217925067279988646835786877686409978907302381345290115872442960239673862245834445529640134144532535163750774662976488833747646418928322756171216924983628137153246652189892467855807194366575946947160532728356400147043032329004825618670985255531551500269935310651495123396306794361171180516537060150516329070885020918655872041112050111629949711367724176890901308303173455606415636643523413129005495937040801745727534884132988508650197684091416372040777701709247707276893087622163835342445017756850156380116862069128529362241400380092284763772270904736216237676205299333161781760384443509320497954398939805771067508666935292770560208049171895286578649690665641222512556403034910509702514686974680925082253377450482832880171181261747012430105628552594201505186703688962645411717193865509444107566890427323649719345706283545225492823272634334294556405464505746471310681077555739198057956504670392083023197518470853525548834429809508250553574798998143691582935498596805606533791050283654495359984195535722203328910230703324503588209414271541599375052058145578945070403232379683011365992841089615374446498822178810874021997122284030983812917262909516527218772425175893314835587499915032720243093579328840900441521073067522130384810685051809037494207103875072171057132097076373360648734629258792239910201860265792016040376487844988299269729275481513424149016262794142670011909476308506584317941306653513560637399429969266203590820413158274499006697122831111245848957038699675589799895233810497714207028720705504012796522303965213825046429023334302238187122453399323944003085935285254411978855747579783239249115465014843802762373942764974266877331708046506153673505258452417930302228789149580968616073825835048039105665509428405550217443828811780834553527558404240911719802031041372119828849068811238955981346625552310535009648336127643363537425105368873752844217052703668508905752900640815747973476923442584339373219572009048712958084040846771906920441360504060587496676764315645829451069019847266463142816434668021458361067589782994803809185540185188778205540034527996116043638490708864285694988071710990327822658679663831485028317286173626295034085779033934990386236288847677878062847325591670156298039828758797161289563284603044482566937760016821874615517913740612221864959788533034558111439533322280380672816103930550962529203558952464484684180662953963094172436577638231535845709141936358832558481115174215511091881653028220419266425329918403617548941587472196022174673125020013773527699180523843854028654896317221034763415402094329571917801178119014012701406076366077786385132141622706104785431518993669959640816840529249234875996368539184060922891421154755760673833479348590127890031134361545891293687937844681461822018643135522473293464846153989137181266175280944484698102039279866141955197683567126354341246552269094138831960457289653550279853388953069775740544764392825370979641837527791533110249205613982305120082696106801017387441704650801526641534277797900277296182265968914407041893727681627056743689183542114484323536925393324426079158772549516350601879540808181506359389196601503863011443440092229262919773419890985630648179314412246944007037933484756513245795588606409193884172160881914531296737186539869050211374731265006620263235125433119391850636840142349009613499993321146881504826606494218828655954333187436642698997635702692732456515182221816798208812530129482495912043333718750639696298745571430540205521973302838186522190353641282766385546918227637117204862561238395182884067089635970834364759057533763781595309456861586573123782741448167171451183338591869519662882358431200290586807244467699546680224477335894896837490393771450810657869452271317858103345222809371531342762581831060246047207266196152501350735788537110433238839461998883770247300596509643091179360063302419885371828976284837507206364604078172975327845624112003612498509463599014921260216367008755444280650304066429964089240150919642635624240004589181429656711799679137472385933742157664658900235940110815213269069263037443465835936985045578806274509162217291388191339991179974932879558803749788315577170029861533327883595574367495993796871612060957619136512633906799227840148472888354262339280168985732405968825383467897038736994653202934639465326705272893349205130805438762234375104851571574277617335759465917694381371118691635584683291969011666161586379869127765873994709497058448574175727598081058114320510357940856892447537951184763677304453407380963734313281231566343856962229290317366747218012928636057079658801616806692551196543676809733705083326472004338926081149398148525457819858766218572908231593236348891382185016827932736313743309492002978898344977976697045836623062694792814377782495014914047737157243882912843029275127042777639858999169281988695284514587779944630395315185618341947872303527702486961077652991200833386735861885680868438734019844839585338981791750541906402567374446807489508982484667707929621300645437526413390404347326375570214444693985881275066619702348540547673752954157234394034861978420046754291957344370576931007305698056497013294334864862747385482347367149417348287412498186332539602805762859575418606689674419899819661252099130441036066323472293750840551350027710450850549506612963933163261856001231578598353880733452721849843669265833708704669939116214975792127237696514257489488619803892804876352424938328787571759384123623125139400438346953542888346298029925301968294244315026597538418440964709777163569006129507843150980207247652831681402448477431123813171707622450078410009930488237901290446858555255249674633990302309474684653800688562359741899485531698433587245287941456031399403812844349051610543035982250725381659086850768025728737784363202603034546531055049522477583325721311166831654059059505753731714059009606776883503916093415179645127064888526938666068265825644502670302059689537128974364199427617942067871490151573925422251733800750878612217171751173632193212566847064463624815621079617197702713318150148045635274484036662413759557497522642843132020548768355741824813992310090202285864058491308561940697165473150929926390814172406486204373534899609332110291144361435996388085297736332299328520236357407814987140628604201287521565365358856996677083412838256812842160417589776393231353971753124806758520447008680999670712031218035882692764443774566646602869056139522134840674075872119279500570656682770375575643489079173252481869367740879492781943250743647050103962878862303965242667807891556550453047595556769738196217056756978747139624028880195451210211187075944737791456735639290794863673959739964564197805377103305716705287253666276109404088262873752071213200938893295090046924412486627794011573163679458167495001242644606716906064401548821723840351975367400430589128204920580103848453041537332962700828898393199600627558676682421373687240820074336196288594408973215775788488543930013850061622350479560109114512268941480034605079485959710813962786590202625315343152903799691234571218911251604199865861034946567857812162893693936377772015154444128068609364223247100608154918581475815778463127381564446144363943337016229230886738573975494622772250724854641780646605329413247304326852602332764522541526895397610185262963868414047265070015793293570184860968017979153729887740062412213656290611776639673159588418443896553923201140238332954361370630757928100541778253571225680946945108045189872924700293909358097137661240232930296328844513935871589417335408136133076152727386812073818460974724872544128206136188131350553932141976938329543766422052577527661840279804725494451789785746449519704762042607316918709243324045323194667721288641088236417044354622456321727840662250300710457405899187248376047340948782163046069554744099898860074627245316914925002229088453962964917857084172990103241143539575677825710080662257611418790123729889659956849168961704773566777770093743600095883866914565814885842319626778925677050135269255600216334406972649852329085692640020387471462188204378716784404350404395115231588490286439955671834357701280908471356674439557037810999744330265752960751439178417636923417184715828679978415356285044681594761155462708115149646596721284025832346746831187758411408143066145522466286645502150327109337055315189297204778820932107256912660143997708776646327313239997753925361075954220051409497758161091255659711921508690228952589578371956461339827620774485397749494884067053090561294482051207411843581891168166953832274990110406581757797835204324529418804487913360740256181868756554379366712539476307638736200130630257134237668127725843303948617063798957409253184333317544632923651434882185065460724789920246844232734726028679731584732893702641724464023950734920503816647498717191400197190933108773441957163959852349514842172316636956822870968755300801151042489288118483035923043199324010886905158006563670148782879405421592483293465005141583108432005040230672992217925670654599734563996142105349745916932570795420985995305374602259236329474225918859998578265381560258145312675238305332671886975734487987631081222097397080072724026250746801910401465727224435923248623688184606067878872518879746590436663205476562834675106159978338744537739625905640908363786155884338277707057776000753840408844836155011622727555061837216599282726220137874991450377548405791363015008532517652305897522690036435389523931029851116375329371034249781140037480165429759939701625638177444027144472381454059710965037948952233587797146182283780741366745257758824631655908492676851144110250890762248680169021342220412647681561138057232535638564646365051917156791157950886361828538075174901065636695280709363377803913302448348545528774743215841017906546457559809068106952579774390985845672098340835566166002166306029267337059630768926704799102034154226225670227667103193057272951415751587382641668783393368200077495360107204684240176990198659289646705071704414409562591307927874248080479849910478947990379721036421548541936415816185766673774074934084818803745453598089474796770025776872018607527682544097720866776672094716625177039015069085013254639873753013114950765955194801222001241161213402611170984100092068961912464552950053415949863749557402282527523998650713502987931444569388562955697653335063416270987623319939808678501984826676720293883607399542133766480029180601078516253971812274525106224639391348734245551739657889285430473402903411538633161108071521419566885107390726344353568826565300237043781127917124422552401484411941578569715015827756277426218199703549480446528547478708804443629483311542946646167875116179343046701152036141774421123767512290423894599729084320094359076860745458213438425145871308644887755264044856344115314720587570231582153959297665233583673271932214952041168861039459312378613917061176470373047818313767436855479929196417477253356393827254019838198832411932472990520956521822442387168080018623929775846884569859164059449066754300856609608329115197722719780829209123032831726736957822649720066070044737962483044463237823519598131357321432559793598633122111706100586386321152435352553805072958960140900680988495569925596398555615156367342934222537730129741480949468812130420059097128171431996990666137823217741940104732697642328215907777598165483862013431933018396825594145890393617746760385131023313336610120228180107457751864117938960144455220943030711048499940914871857626211719004109207789579081086335321848263559180774974158307996830598001996866097533053762924242418524333037492954942591131561682892938603439991525594580421809569824442250384530510376363167446440311234781932045233094269183228756788619489440697155857893916491215430499129941056521227695060799901888303536635970105410680092614994155069064278642874011618313421107920057468865339211595238321906904401003793539510210061866391997761525643876354484911796181764521497946202452598090550751280139462623226517657923447002879318255785852284718789277908774479394696259314794816829623886250081871876566140217855646383229131579480485203573632261715132199680951941993247600034494442920993110365312015753856207577070622757244731257232590045003711272104792808099566897992597734591503066096599186279202425828285316924247053562442262706525931271440288254539551596133964409807863578264313931360004519715959550789409722732350154484566802708539263228615219853139922991460173076909373173407073349368693944747724173658249334210283113073627904635655396656031112298380335604396757450794973336776792004015763319000607654801442016088852120788373783988202144732330083856915984531662796474544325517823717919848369233527942329531935284752502309412778532178508968573337230895395238817769867148526024418860176547752923150568471631992054284964572468309916808646476922018966606244305485758006638183029259823648233136695195806568804204222427247615362713670758953284544024626836477406944507778958961446398328403736103487614719076695065509392648523308748118691993375377074308773777444597192406295827135949425901066782049904438555824205975952304502338683473276975130438492801218191738056500193169352016600952635141066550552145124439828502551142218005317386716208241587069848290190755397651585171652951807329117532076082980364220233947528482943893987984073722824089267158215965662916199681764731065943114692198419381446240642134198139850262200182800289307042608513886858504136814306486263468813258414292100581861255241710116091967584346698042988594087219125538850111569636537467265276122222161754089060151564685935750969810968726105890006238057735974947792855688908886519762818715413469887841929510266676880096402014118959461166631328455092258711637390931603843088590176674091470025127663484237599214016937544239752731439141672980426037784155964346722464961631510243141374784648981859854709020330586323329039423806768662400620661207341649559389127420579308050050811084252857443710203998552433254690297212293797657769936354894877780884872993514365876546481927852361609216834194146970834517853259922928644641674949026852115558448218447663468717034679657477033523781403758192917901931507105655295163878891224756417173537572715981083190910662502936897517941310987216645284878178272480369487077953653946890508196252172367161919055006484293528901153144607115996150311634768575838190501681626369651280861047804069245798059616505684785521569982759919046033146828741898544522972798926323655978808406772292155051112477245800031201699867325907876924314859649787592342299786940786615739378245683401678949379182345951070540086641601005220192917299869121534734785726177278684336368251539205829515883771062900725265586068878070623837823403799877537138440416455985358261622286795222702564945084324099917652579302098870096590600361736869585721144432074351170303677805487447411788149970861272125165286223344878917215715745977195363940518187382496703538201813775307924443590110087754506366315606774431931084036222129378463323140823098218916779868695881044324394776834235985444771276958437370034331635295361505048568960296103465966945616080853507024346570236215555030018896785442211340815880930309881167004159501250031189012042423029429026699748009918791094882813193433179794891586293702660930541028501158518671887398485025237951074771309301321614014803134204214309615002553661111166523620549834705384037464791086072683409171074993054871204460212959867181685644311842362770319115151502971476083527728148382506665904993918484561029526030431189537888319675017301196781616916258076813506338978022379400118035886050540308388316757925026430645057670971416966154072537905007141812727659088010880347528708661725152992042103217772721366219679749066488962810488811338197684324939403288365963257105658934507390111173870145049294905130550926593900069065478393954432972384023769315266948963349592267866559211899259867027129930253944868797038297060343829722669423912944286808823075711863573620250299326414642278493942712670836217984075392863397519737837212099235549905453110065496609572462881525792698460330031135065947680272910867446534671734133658545791774177476378286759476794863590079355004286099415012286375215057303531910146988251661236923658790428222201969188138931721889861506711189106940345675267516889620473984964969164133008604408224529766812291363505995242327324199994849055721571211615726361287175972402998736361085251727583052147929262876879681148611845029521889670101021756438520826850426840103483277474049321698393887775938066699985666998510524326539750486378619054193455052851080851461473612881556960792215839116110122749008609773794551837075087767216824957500304014358973392219705760477059932811982883529524405937424498985172736449716931500480330296213000971086039647998692723394308431524619686816934211175822975454141063855370877724349395324718920194920729149410733633028590192687464338004276163373303334052281776235151558369681498195988249411725418006081769479781684519581707768578980748124071111995471216740292058212211809747682089420138458934328231963526583646758346918973327550961214610815057463150016774386690882836366464170562911652428964990099551432161616370367965732937099486811944523749176703467993440434504471522151093889133051005833364075417157732516905613339709547563028639005673569331965947931115450420627231393950565846844695467914686953000892016748074972469318660445227180315588370901936228860984268497644651448931649788981972161984511308720823014097053238633318717694499553855948633498341915350563761220623939327031696067164040201654710821556409841738362386652509597939824326614320514475518713540249006034158541059949060794054625387880334873240417187749014563646778708470027681403655977516475211308604696620993984046067705291333217833291136404401463856082854887367286151686197079854451557395328569191762766639133521961441235131082353670858792401680051588256322195429435156745017774347768213140072590102737150257011379194516205752770997172430911121222162383262908596792600508337422599819948274595062153596421709564260795558491938820123978816872220743431669218385888650371985321648817342425985667728282533467032739750658842160769108065446002356797175827893997384392631271085887022527444059755441357523329187620880183359510154000782623781888901543995132219903786568816175894998874343846583792658510873310226908568855982513177973491324621718320387883767303846603461687521263505171562686005723323374038956598357866491727193903306104751009007274692158069451836813092745416436894851756585305103603997768029352776637563840763379674986546024714314752123538230668575189083169795169271898052975111389428531227719457389814568122838292415581590213125837473664885912652545453200067947152801361166228442945474635830720562070128745459011080995337416523300136860573468868465550233292063549905273061873169602642602486756193055357517935041669407192788772855267227410129538292013613674351211109540201540338039586558723219768452107525836649412440203541926989139065009332152666528615456733666803960441046398619188878008751936536672282689695639905087167556136240423643879974575225722289415553522941190171521788835654373579249307485198868030674959383175614354033724049217753603901880329576606413608786824047364371908088164169037755218111243094690117420964285840878234743939910547566497945053349224740114999166451660297667550711150053884840087687377563633090580051556974880536706446108971275884822438856026480120803233016303619937913821217784293163391173936232767355965330588500266204769367140343722318888721923161426220853075421310082404936172158734238748300929079424004472287065340571130721718810856790424576612203304010722049936447410117300236913754598139328044722809500540646961437088571219007647657578757213761582389965326489483856049316015017754558642550752689251223617847653094276260161206596843302323775583452800322726870187520417538859605860491837313538473059623115715627455430038797222267474421777155773355254480991879463281207568657106384386712978368354165342446034568359904293043642371759769696387317171559080411616459083020763010895958266836514246433605084839858671367160192564467162067157813058995142777070840034675009126030239335710724748799289593688711845614480973316977390541014184802159251258004340274933049246063379373757304003870975041100717901472569580573981269825436986329436514443641285280415984356646944530898395588263033042247438503212679023518488600244761804903830955778573505535907563522635037510062495981894252360715116068424966325135552408069136618423238531697771794014635533260230631469508203856944720460222832016311389202781367021546103532538105080911906137281800825166628716607118804798272443319334902946210192236552409122122432945624057305591799357638857050108154431369441915340930338459708209547419128817783905912428548043162015780409071656059578466130852518692205745445039942362048499885215908444640475384807365950402088240552255223689774464349446297207871700114086054555031897713598861603710226533689453364152681985927810625634473384723536131768418451131059335440529639434101429815944815299435370413561037647699668630475018724388277240732694102001252825448043028324823189438030896656224615555658775595872274130233882810909587696274624884483060253809720430219690970966524864388005829290845379187608561768487240754739531829221065817586998339121126282242297605117520696734298363497447684274722626543983922080230128270789771493272583018152548911974458940333651114421020088927348056123895258431163357670274441665906318066688349607699998499234203989344140160871448660508340272770183229084004144523940532193750463350127304855553415705491528491129206605591150641727813843445283552447105655399344020450141788444180046332097879702330146261119361879854624809660216071442422150847304184064892746429451619432845719162381412565280408387767140122004805099134918638498304290778970476847055427673134756564308734825199230740851688263168459431135988494603834740423524578494430336951174559488349230855365266147727487464318269769480044289115202418350181940877373257061209416349897496668246060104413001341021597915700029683901467586950956656049897339546024721566892253940227385092875031053211208991057139083502865781773969670884146459607852731310540005794637491961717287290419183844280686435779261352567334950863734068764971829928770264412237328867977469217918660854152789055729400363337164684552628929493009963330572945278773740899963038342470959118553655218616351509136862650278785746614589876110240070903973090066721029962602170832793109409490474442543157037823781143872758998195341012180317870546137537777124387807846328707713708672339490303669722423114577732378226689355630892077763084474726519846769440527883007714191510229004583506185727076939844710355954462336318546669055576440036255939631404583572735337247573617152523784711993395924970404682364333601253359867126796593162727346445174447926416813959999638943703581208441539669187214932472670360001623552652677148533292638129343041372793872731537915938537839296690300158162860491536749769038639786211333041656079501462251427527342228304638971705821546000041204920634330635392625550523166390963638457107801347511398830445884296999139057432292330485897990966989121331079816220602780924324000208412598066010073421952219156847961718902678601828446954387680647240005451077583173397694228443215015159390772119956424610556523381970022790056629783105827953512596154310533844778422433622726353694817360070449640043297788578278964819167266171743527988315950021611984480168427340160305372245362677833072963911554566784954893300171280171633322742879637956974563623110568040746021954975549620461973129708469963758806690877241087048521649232453743290554473927309752263726005548285881719381479068392746391970503366777409419254720554426180739428175151301199684053349281812764268372939094668085235538324520609169340184457200978044863328294833590843868787542656941664004881094567461463701620239249787712585309262201284931959835822214468020838747985782205796768098412251424175058444642871022011430564316433084062445058885241686905912236438842631629209063698920694773525697558571887613693006856071948116312050733304593459490694583460565711451514653533706881479243432286413822584446848889086431948241671550029412689062517501163547700019745944267800730119421118328848827470896424102756408872821325971905622267787235316841372512177515400124397984967646176641782163473214194844821266307484780223121623939111396256945399505471172467945978224418415402895403584959783694975413638222734237477637157606394397783371577590833809000969980661843264887789975797804243986123787899374320313937910031788844213882006349846587062917578462821858066674363297942633446219367333818203448932297143299809997558625826227950861260026981131872947424438706100352360680508682531308606889925835987614351287883294555744301420510760902579687843438748412486729757776844747364892088289319421035939781253222433916303540068901162754549034792684377005535313335457155697205793803611658562522385659890270212296658484950621981804023993396871042878295944355271250039137029471064266789073809123160552296024056981382639372205733257144637439514526123159804436112206186815972678323462487500765691597929642748804846038847167765926323214742830163317075355871025225549802995794280331661110112374290003651780297388907529976603084913477102315300601375058174260342187271086015656112994019742329356668257263745193997587321484400000445176645727453742244061657353089087054283289918945870017540826270554111218192624949653545048784366094789890348898500587679783121103028048462473681682775932919238514744844254869854740122075361108844883731435702721816910155138499050752795457693411656050810499362895627953767292614795179205999694595285896262303054816029554006506983342114322921496911648404812904140567396634091996894801978964612702099116184779424118021762095612074178266362230133686055935464783932041745928580323515571405681583503285727569217436584544652849584625630943392399479400967727212627641279193232616106254975847237928809604118945423386803467276803782655063806630478133333126708551000110218382842290674637188102222571566302996737428715712232870994061790212123421840684347363489177900917838995324464883644486660603081779355325144969819548669649435597112382879980461541723679821141266750125985143218429722608838516743303399833251577352114761738525363282581198013681426980413291689663071550056623844004203394637451144749580296312316376355628052802876684184407308804263318119067353476651972642477751627133936987608486941201771985103707827234794744302180191912689741608294398325758803390127452731434028417199197594183294191543336141985107773178004188445265882930932211749154652951425044321125260554507603889655198551930799383802801816486069577397719974691439387025033355982541387366590557646721894159373449477093082971187398391676523973410123971328369073958285074202738746731713387247739683358904769340690599268048678906656512905572460677872643224757545196470186641943765800234675475532946970507895503163699593734723073115287915137622178822043490909703568891918511980702147899517521309247133122347374708275037873112410636508752459102003734433334166660296666263626493312516554224430456775703457900116901518407244610867445570863481041434693936419653383241687071572603038962014568323330046326775662303484643997323897601306185675318895064480526571807929228845088196324866033739028823362367033016025300789565048988835569227411860268021053096450214755446489378928540072189409694183178256613108725507898792578634331878404882184504845276051263244281968252939389002575448215481128097398782187037106200783639826934958308110710766575418488765814855665510004956862802483266555993877417117315354337822271092917953203102027967419536689350683093639074270507445668094836894433270916647031814101453590857820931163100153697635679844258186341009780638848114225036581021318771145986903541334714006771362373214438792494345476328313586398236271742262514110140663504740658667632222615592061191456196080653184985775446994375824956802687634950027150715744605839305463936079214570510828134128883143874536485378768411351555315816483334387054903204136427047450355649151558593570650989564479303163141437315645870202665904098169188660083933843014236372563620104767448076076626873217486845653335276479622495674625848459136059138976470174743134291298022154251867876768827676391525431263287094973538520776384926306700327774198375348596443796280282312402528052921394799565418584948123991817419354392425923225729446724051512245333099969130311530548328032184303043460306856406112730375247177330213000122719347916005336368998992869069798046687540360376460459476446321631413885889524383088836148417511933962227267123232295543322392226715246131067972274185548347908170909758951251113264633529246048878572806181447756021221801574841118401395660427544403458993565095878873746978727158981389013833652936766586092687693539821964358941256424670758339173136847529484310330513219835134171681548079936849753286262740795823721450429776484270529415001222401367167902039952544664113234207300775029841966618091684587110217089210633340508513558199143169297171874675431593205546853984203621452573087217780445703972686672034930393507331833908811223137182241655559502847437151965548464164487486755414748851199079114666430558697338324077370395852666384762971194993005979442993152398673505043817517119362361863299138294473944731284677552108069480315804899819660221882807837472679769178240531341094568664461734670002074661283672280663809691964821044617921879511012473820771927347998346137248014435651056190369465388934105867957554060601066487195004307738363590671165302544594896965923727715590735275778705967756879474551358368070094562183902990727148387237495936834175422280028216192952283605949323796316796325538992785697253775180863832179057501797847760571941526573943007081414504808211690274384170915001023670202337963813044185614223864762681446731458663184410799596373636127687518854689010934752813008836144890864550040452174753531131210362085386848733956565779153904544810722612486141165418316197226951624005419968979122290351686181360233105238884763339989347006681910975564931511261867109785113938991679891503690521627017284307502236974259976766704052692507201657504716664823486953181910550829535022370182247159234800127991285123632485907029279173881591869380466562494324010959189149928651857177478848173349884675344382348448904930074485721776385188569751622186950684544582894035914246501280375584505315464557562459514400865571332862472339486230283092019849945088738969380288291208849548502411934117958367449171609198501202210510466064721609820610393089569949174876130503830460499616770684689747660460565433764144328428995913572856945841962608687293539454441694283879588898981925825987237655988330566527952224239644689025175965290741481834926548439445800272384587542887365363913026071051049102427669324987217220255010918631949510458951918280074892451957652248059370281813489243987505840015436573744683481642076423481621905814202391277639808352775091375434918029354186264518539243017346025232537628456365361555329610009057674468633166905303573255133565644438088344648418450153856778285356212179179237364474584508426967741571256796356006166069213514588554800307854502979055328990864013281532378578144886661120257088426029169054866937579272273671235616046155108484197835340894686916949324972417960700452611216797444589868492205274110943995024411663473018638688784546010313018501162443102352314098053085147497203912723928958130652466456256761218020513439250495411410756032278862458814587147441662978734735180100927476862112483843173805152351882791431947383313208358594129369182144942512476593740884634886997053587196802240748147229537491995107968888059498627933621240286184527511139770171535508413223991253911723941548007814452682798524848872587040580857859552756978584893021927530974850414585056845069662464211049664891001837119629437777692746843527417047715308624126870535495169218254630271271114398846122940405015860280666795998359812447045648408859703199996645641612575029223705499846435089601733629388627270863366265389556139420310093908649053709257473182420514638536520301409930150055500256098738748802093496922195464808286605860226215556927033013019584327923713364532978765705769943778242882028172209507379634961510182797695326145635622721311394636355051432610539222064403309632512362358324464736838978055930971045456235874330087741156389231649770014722765031884704286488839564783200599377127291145828358356442935910831771005666131631953478992293741439183651879452626378780460664025014573453293881624023966808699894262666330514188810893408405350192898393235374105708114419375458061931503053854174353077936109489529489875254209365080710988647236498470486629424080286452632814751139587404346411589144889461506408739951354124868881745337895440062272918949243155017066989759199006560100565567310419844215677288255424242731728879441889820712121375876262844363204447065366488763828501891678619472021894477443757742927283920344836379765436070632933795289887714851090083884898026946098897367991988794032349499746738281571897759525734663209923103875483911900068909769827564148192104903936311205598285195889464643151032980770393008030843233068632323245788238647496452550956009715251215029241429192289463669814821903088997355624179536611967688831880749593393759564514890837176212708914424763521145177254722400933583312374123950312081087378398617407740635746863588560989620072179053004556707884170515396948031968602034804482477966829521768405388292556171069588202133524685081658450669473110323772164621758676852973256925237236404640118248511886490795043517012010443492857554577918150062146779061815759508459019973217415527001308273145378004926168092912199456430844150034551387757432750093920389874316969941455573367576794876805348732051578033790182705300311412859905495985443367899270553161468961818889534084936066611892529460793317703870261182073124661341653783884646613218336394468613184371430820600289565855630759280276993402150734941102177843082614841177474514948363081172254826554595792675412914092618259786766063111893285814792190349591599786338726751611274595932101540708988612692602736318837947639457338303598904120112497997912591780115808908707716582684851546610037625015794660412842721391568786749959972166229128515938389532377104220179855434587566278756798433406061862342022535958582876713186134736277624973796419458820356256005112951367715788039192008876450558859887546314739479158995948755628704049465971920511064797499325172145154149849479585365744576762357276031681379597200152853903449050745808975733102124039531328207302231581743094730900995739081410196300633332180308149178805477174989834898167280190331627347558679363642389556160489995917525747248831269798484651006843611003410987049656439906201619127224605840678488812320649994160540758393212718306932741362253077976861880407924237649108625963304072579674896944439352059991422482466876662760148098352883156154435528192586321862559878751576955007561570703508039046340121501559203565899655933742832440493391056428436294529853798486704098929815077025609199810397899683395499640196874783886890870087204677621986815256276554327688445287512584863493434046117542734127902476935635692886043300825982228174289996241926134143376043606934230388472572399353002942012639502717210211951858565666372866628444041711892694762027403860190374537180909961637774699632910744746163401435993523636655258068037941165418470297769884250675993447822595510225972198578387204838847113073167736585696515127647353147498771541613532544979289980057039774119419011695664821860200884177956255608063777507339347937264708549964623212510687670236268308552997217961878888509505835341987832936741879967202672257469346547332437938406817780836443447111223006921900360167683527898937373244978156243359240999679835905314884640549349943892701070788457904343384971177132967163802700156802097143943981494557598129532266858453658765286665674542794163105098305304489919961048812876767037987304319087336734649327399744956857135848245384773475008009268473276139707961037334228753347053728484306912160026689702624302295490060621984729420514766286916894766793495990355881747139899047397392147965472113187089519383806466004111245023945141856886621673326202536979259456710330696640403372729672592702903427015589520030527498111360188562233921803325127035472505569319407757668861369449200180698788914628968815135627442248006206235298127883808342083964140581797434154653604508899281885117867101485562672471996087635968098119397395207765992672691998490499489228201005239344125996038885181305142907855879494750332445080292415206650308858667827834569989012152719646355309515495553817539282925555963239813797091041685906832083848906693102196923661557874153486491865362511626528771777189099164237187513753944157310707617849458805614137124133960870493636664515949387844327354156878664213577996640262650703420262745713171439210152447848587129440869896043614515078070854916348880282481888196814431736716819570436454982935233248518225598142711810498604242292375144642836409074362420885929429387164952158149243391242895215755887594499212828552035390214786557028735899920305974588837184037888434446311845918466571515729929421109290705941349839273182040808014072166461103070258637705153387735343635733710665575649452471205327053964839431692466103136519513828878904160492818102971525326024579169973627533201544394149296735282369549056711398341019998199155407754275634639093973967582000819199802245122655607203225436731468927411002327300007698154097998476913566276895646106534642550177450991868430705043454504098696676284855205343615915469148013664853862498966850859877331503179449047655563277200627550009363715982820384228909309555913238915425412081384318353946896816610339341125829772613886950777317158204979521944985571774400335385198540595869844046290613290491169132907696839380594069623860744381851794349687574586838821768791907701443986842306175552705448420129718463136166150328030145227315803608279281449020285421051608974003556266369274278568467571036479898856718026917153413680461865135487080827636528480302601273386108475432697886795540543426539850046272719100991691627923235246474151622400388091532934228453986042084245186545087847356592679527979906755255417659220426024332086861793602291060197595948442467432661980800291549783348230107619515597283637265865628267235675364699872413959661036559956723655590806336009840873978787086164673958674905399416358270918677293462858941139332492434672513038668521627835814632207488778964326504800930993961811477425000315749487414597569526594345977917463892012810087396725013945722107109193430927146148471606279903940675572937409180523046304890174526198647411425015140074535430209050456500302919263511402227638006092797803119232133875704890195451942085606952238805029995033241697755316040210648657153803690000750547333816667675114182539447034330559361172757342309158438366234487406295313573373132706824902461205125287548525726704757711995703979510784150102881826377603105639306831218308642029092647914781293782168025983652083453716660636778068311301276373739679677290436432201801896668344516635958267639147083573641153390830682915383862895166388725310190130935489215484315627737434809937056091290630979598962772634432016615169688761064695987761293992682847786105329505055241761661862053338185439188564592118006045551605490596677324467242333385335570781039157618442376890329749961421759796935287574345102904476658682941983955309296310694572857204146956374983478012357381307558578415985129441077140474003032807625963888358069049027865745269247630717717467859461477870678122363183909617487081842728968768762523343398278514142914903633455248287409121544285961453940875073248175872294767929038111380084690619068922877566395026089281381101139458261467024656939574471459285861538014470012299310705146166035252627345965679568849010867148563873369604904489267570282741149602960308345788599106362272098548162037851354193074475489172333845217625662800666053447864808442875768488494826891174454384940491034601052496751505668377619895340526177259936776568481221642257191160814126198714421536075077249686434755873004652950760244755885325301834625711342754543405903914615356376236758574821862172342955063142424189063440523690243892955477331202366228566553002252752812918081313734631350849279208842698914085878178433752380678214757340667033607120555615554103148654168844392793830316350039810849814742094646850340532398938106771055464466626679183652168835084087669207367010806719098877496117373111260899081784242987704824863638920422679856249837897114259613969161401858703346653774904042150485588431837157042144313233351567792852983963377620854345023288225075122082541258845310943894242800968165369318045636264834348287772868320830719643779773238086738200586511688759580548695267967441472044521551467670973523938606483915786663411081398876943456374147871521463002616609409891112310263130313898327143443290027395275484109625225641178303658098936089689592056610311411205485442404019697682201539180484148879208166607060690070046487042116683429055589431974034179411176036132533159249846218641038999160994880807048327748579940123993828070726271517146114131803616602281985301193931884944350357780437970515700362632728314488390099473401298048336555963087876583667386205015730550168755817891656137099696035281566423555002279375455787769026180928925800786379156734729929485910562004534177685695825859129079803216665719452041669194868925918907451971425880102537231434666878523512420024310970503615846316912589612328734869963183992222117001551725832638020347934589158666796598349380662054196442175622238763123681944503791584564624401886998013024065873875993330577797117174852526260242985197594951822761878969925192443586028207718975394579281516322669231107670700735027078852909812237037227342127306596586127584557936133070472360049959558105851173758762020679278500907549089067540487018177659657029939655109467985078741700086883984053443750475891005538342897601013620978494226774913811963399743863566726528413593165892119444546276757966426970503689705532817247197582218096922192160853155978746966223225984363943535635478014246643316221187941073765935535405160201603376353180810956903698708240923921998978907746948242895178673984390094215606399183127049525486667857172492721643449283643812057865348308698252524829905659995552884423125765866991253404098825478305811656728379187078824151953029755059136577082857660629860309970826056748688005880390088428085494526118411933251253674586177098681872599109127148622020357092089492684592433272940210451373304285340078644063600318931948105941650983602977021695434009944188386869806748440281070908950330791962524472369803209221898011971818719281046029342222561040252146947024201418558156868459959870061154971638645050615288072686363367995001453884336823769915650247694857725653852119210009287305569488227652218724385939976905862755359645068325638494371078847152083622133756838993715320323596480814406087545433225294062601028874440104961603186994971720569176970226689606183801354941381078419188524022504813821745462454533620202882144394836506361414935315491509897365739992512582726644717162733042427044560272628957435000395427094034214126513810064992990800459790302835374506823764569042770555205534117485973153111134465132354606554678418199351116304068048984951595894364190131000166316233342673362617093859553318462835719963875410926553414200478895923544977562701495890521902990204574338871859371589632563957982106125760278531834742573166529763111384426345854493798718759983971273423047534685070901967997450023590274290399066989868285144718120542742879433844725439023178228617076699664550503513815725789815070656542501865913089807511727205661007473800957638454503531406574842048433682455778453095346020825012849494328201929628820397286370267128931871636350908532836307390582298965035998080399822192120213372844370046805170318707017153214718794807855954889724014719639151588217054658923394009289334334485726076897435036783491172386826077253477145120588432309656446281270149671162658810332788993816480897067139461140472694596907428946806490735852814022940662714491888428734743356267721101109060453155652181319595351703012226756254588441686865099425868315097933577599299690255936595178542068441349028669556735683954389883242634045745129991396573379400898722734623073661510834521606857638598132933398779917316983405956899193098122590087500809413988018217996280586519091341951269513736175547172707050978615098099128011589223032093424141019374544582044272964597071864533480673081649360824122927723136988867576594787141439397927156977032579976825508784162681582117931059058504181718616067855160183572397482129156872497805188031630573453162792285843509059350084209061447398669153752494178018636331521235368511576002856359852527292241916754383915331490562708598840694187633587867028946324297822008656884401385507543395613745610752143542532713401876752473728343147316045912559912395753158715317880003528249152877138110568581163071125036331039604622716782046343242447454582958599727036347211322715661653318946532794345160774790774321972211023161941714444935533897311158019467208242078004361325577443685175805638843140667375457848270060250035292306752958008185116313424506757076599634145190820541693649790297732254657713767362614595714281113706552060881085514848619286831048481181243121344412449994386844134680144938544036997565482291483820697886739755940224063972233822705332958734837484717004070648750001791311540010217683108439211211517348808861567532942379097592065403290950612351555199522292204544091540290351342017891272207901687733492088690626911245726828788542708218656581853080716945800806069434600068957415383164736407419809712293338708545302605429830036142231934616862887721200174830358116331380019663549191198827660072416609276053353297884429757064896893096408995643707538634620491207765689229903497323043050405491941206093534709042873325338749147635048541640016664373413875091700093907367366162242507785050456589848641237160240636145090582602521909633119492288983743276085338344744011125907510285177704016617652815976710224415307938413474288490514654794031567741160993660128679813923342072570391109982267350529757367691568190452890430517275602160799708597625287936935565686916318151320418535172225592194722363220434989122003926677272182510758437462328596781479299757077507919121487230347119225449030151703722702212344786651647300014440686433656644354286813080823461160623188569433547731246184839177551649046842340638328484524032390778263713319845359373461527049679339598200942573116693026101995560415061226567722292405585723466821760987122022519994002802112943342811354593249414168109636130522187048999063464446412106112983273419899110375856506512940180864437234193834636397565173239257033252841668211665821766273796588366162313948062573998606729237514318637041030631335453876555829027796214561310954160600261749407092911208230657717461017054254582176489927193053571959077133805815021411253501936888023217717676793523915111209521441011340842214042315256263130589607301550117837936317557875433963378285943230183138242212387765223540707538569210164844683983839759358711762352608069636795296187641305406167952596464801108656675923026713250790782665725172039072675946172320036111507603737234110725757325252726977232185577288037634227922906859532066150324693617138133052040976896268567368398615747630813662998257159341524962363340053894254231722571690731184380177855067702216052826362908251239812986923230508732110439169113351166263078718814073574856996149652643312390205620811211299146537566956203781690201241416377851994406563920331931668106789803945471034235925512072444767333438709243813816342415255639137921318676787110636847815401726252417697189717575708742874653404572519960604916625256563453114564594761910764758449556475815773353078624170693344052528859311383963547606497617337992083690056897842573521866787238433154809026106380232949044856102260361200007291310914025451530506089064437653240515345427668542638311668080701658128466200198909672146797715575667932622863945233980202948821599390872244349960808051492809947431932325493153978756095167251363467213414843999031518431701684616382696164684421864987429911648588320331810882749688029810724367902139617580573714812924305054712881173207167682744370170211238314088755840382846119045466443045461454702912005301659187643023268380666763917546067761122180573905827276137563725229410930547049614999066281982843638839938615928339902503507220451039881466964724791711194822746042512017197864195455519754915433673652972112308503845777818802406804983322556071478848874070754594109276444255608878409513912881797756133335807964560868018789198066198502589799512107090642340598193048884232149724947062775497200278525802869048205957358948687298265139423082785403270753617234737734563810703244236415594199176317447819406953547799164403707298298614621372794304176923642780597244149680740847165263206713080261459767503401999924628706421996637092886211301677517597773804017034349539118559448247944954473871785190154355609518064765907555552784970276705437292958401940861928449077468740038477414633113886318803829816692675909048318295871180086888354839263303830085266911720558611447751574215811234832856515919432358678926008062860621827379056187837977054352076907276472049028119233506435045586005345554033320218426686889593879962619350411703453297267366227137741125611587201979474731594220674854892050330588583185630216873365095153712510691448438012191128243281930898593633681513797917137781416897861665578885720813560779253735771619454974220909073621564205213270318265422415269355387716666343235061430637126396958507151188172414647580946397095318676610230773410748923512946720480193347686672576062296178982912882299944321284771081324924562515676529384310661104358179403797685151294332000512563682803321429908336850838703775491308484403337429644701022425176657881093909154144303268962966315193167289352917830391732395500753938166440055391876616034889726328781994621998261630128693139498542871492888454656470352971447700805274332175101995784676072377015182253233459204323301557715300411507485516137155070437445864093803253800123138421597381609338969707811960006187428843459940914565790494023907970979068319092253949732056223490829082020751401140843113728860860431130089990479482862805231811510290653886046208858565435833436964882834807263613493065693133390468572062131674190227971817950105187328529014055203934960778016428451610600405887163611207708354593955983930986331467222344521815408076642974596261047458025475277185686763987509344551815354122263322216187533306619409036251549433246296038201747218055799903952493360163960514152071536598085059270639526178631086629763130958625865508313307113603185849272170213516738702623274786980772910161409536475621899622453237950953513775855366548325696780986283553122281477263954048634837351422244582012302775633542502320017939536340095070227226592693066143613690881833923002050975576814896502579252573878230320756420466047615332512895941974655522902725855783673379828202234791109130054402840450200877546447702176524936255810955360239626530638841013782681409001368468617880233096867607004316662530376919028105762141750718775607900104244910524107120860348927717652638088400157328158840997268968023093757644005708119410637149481168530670964829586437208354398086006590119522522851189881023823102049731270072380388388669153729469056928913353379774411447674339468106461591962636844727305027384628391577186590596587285161536405445269825883984021044461613277099143077443258556444858464985410457301553147576368379254928377908801122193824070293874116786076984248015266915201829184479855890662387275960472134545002762162031591293054377268423597438839746259480065699303861707550030712152667291949375337096030179622975860981249826123810465492975518621144877003080820963441260533975882184604253572760875139999877854370205183094769729937581969447842734379805069966392479044334282860238166446000649776639669676434514660223669688306991655266156714683104962989016307401090757466779410727006887654660218075971125962652997858393449284744332683266996909428195328776401973535626231089021070323631686162273760100487241603820635510703580188956900328876240977286775628385255587471365680773768429494892533213833009894347357688529960726092071966068535220453997787969597256330707154508993673258930375297074539332345292836635429869163860508098411878071854130078090797652581334108501475080729257110645695774654754969198236459301588676230512129699049359274860103301747013903397277672752370886259323320459570563873680376374425468708969781065402420887555385196929710566005357845422183680420685134967036069983832372272611113914973503191667160643698516970389255522503212929642171806062971193195846641523695190312094111439144765563333439471887357208050199640613474273969194889585180554356275850731662419359552564126090233182984298770780054787604967741363588922370909551744923933964378760655232366598195189494808775323287692330751783978870246754136462505126307688837340478827379590611922879550111361596676115379183931393300554141417573888618811554424302709207895320540447299265430300446417423906984442200253325445859256402815576422508930044070208907335473706599491743918539507622414621388267163659751092245861235059474102734954523807212372542746617744574215557557346567739804644113123828072928865442093791353329311019662711855320199884973998641930999138868103968737118669162365108582269644962997162193787617801742719454745006932602910630901874642389328403817440236304006334925591872988677138363078533542102900886234164397987683918685916517419957419774944001300141600321206282593044208670691549529504923162404701457011640291718891971232241984567926975401389839244714311873157188177220068943508053689376825359267546113492312923197294324895979482944479196121188068022284442531063591697315743056779214527607883121879969438470433323087798318896727063155827177152406615592510326170069989446160627546611058582018636406782686838470521750492042604789259663949738649447841708084306923773592191570051254446347449678237636718292278384655170589424358064709849986145996474743177984835229832461919317910955354318007876814692797926858873454656327168160584846702430014267036589496990126079345467809444097493914422301386391387046978034227787158906066444123594438565028956808257971945904264824283493258552677847105762448128790033785582402411081526438991554625549867128613158566052719358078468096001139872543587150079995466057111481409108442908233173517055129022634104971751782559169497968034775663933148282792106874042557053295088256949927268423208146681382885687202101730182160792052134530344026065829491323970125225451182084608074875143949470400918464654334787104499519419347529253418666657674165917675292213169171936834769548119916120780786329471727668684188361388020457887119482725075997812461996931712149432175847017463925595016666175152757841562233865050262101705335543063764380501801088322742759492858369029374645120378635513998852874819688575919711401709556148817700962457202699874083745631273846712340961733070934821076934140380794225101617524525633883600792216502801504101761647720212579820158633692104064093181446792137844717108278125575464656229882206751027204067762289252064701545355282860015760745091214489329683922410612903170692406811986865164660650789691391269754086144866164055934866408057604330083702396503739871149832534514833302113118493681911811154731759400716361293134036293921359463790462589632952160004181133772177409225113659710306860765129821088992367813759783135409903621267854884490803696137810615575443858219317223565871675996438910776402356843464662023822467575584005807792304873322482596289922932343431860208557254005356506756087886464169727194374027823702744059161016872595116983284057826421420044284649550853653177991063261894884281273250347206652335252696985453512476848739343759160843383515258564867370896338981551819544888615403281104208877023495980456903636823395904265857109596386142444194850231770162634129432710526880483753221086155511435010408762966125405148606474503262728279814728608765091848362310909854347116934085981878204755884905083835726231442484192176039825713742805916497787778152070702076948894193197627579026568948550539801633208211967647837087494807956602218340488853969178169729513578928405207010333078120706062274966454332285005920279118935000182657564143695453134339449090659352612438595696516761647066359503363947262260753086044212151482599144970179203193679310108994586192886415521565869464347869638594372637472563395367313114841551152260202148887400447884363310157946808788347946880100255682242185527879790477452840480255120248400124837034756922227356508044624880834134797780320653433511768698507286478628811493567827670487745485613409205378213349819454776077953045653720937572096292255303197179297693662622009209266651894381611893481959439333605833641380770983224839541458553286216898381811032993739262076022927173966697468329512591867396935794984581732074817300842507387341162433144222984797973097879290165479768545515928361210518989629046847332795419273772269239201436298406023845347176593616776664215045218206806124760267994093467542984211032194627258254536224356915335593751730669501317428907964052089561617211983103703164460743387726783482816726507448485603654006024008199607408015440101382602035247879243452324945915706884795185603537354152060144352140773634713956034247267617567459329781360904309359340720141978010983953966640069463197936487214508823152365503848024632321945028692062382100898562023358971966844599319442795794793183144360749356337531733073538111306712075433763903937513576177680878483793294038368828778965324350773047007309197123325940552755829718624324413005518191701621875124498095394584648291776921271596171801795074880885742820701537167963386653528607073508121115484418225404217945324524692644111445771383501838006722976925870668508988347954866393702114810337155201840371079021811696271697131476892123770035868651551371364984283975324515812933406542097076747619855562847125027110128380867352567064631638663926994519491130258920175187424668931063761101086114910769678721613780365901622621026954280521859708425780965842131694107671354967809859250627947032272405438087570919743563210804289392586137185041155885309946142682335456363931904038217340915532748592326622234792543209332357911037064658598747016685562343880831152722099763042510401904433762530991038814082061482589309252623211988209847185757652735847733923597718508697152551116727855747226545910643825030330946835956919143538870305191055989794028094592564438710510356413847086599207136314624322956166533088816380626173005799709232350272381636755801814714617028127476056491099782862399124590099707965840621366123055312478222446339519403162402442758050419923029427035356537292644813281934800856494269367566453629611300141875010891628121620891185287428922320211514045260789839253988777090021733829657175462018777129056941337176518528332253819664358676649279576675876013969890660560302210781871667064208766463355333326375504308780973273305725021920919819975014338010287737336972199946143660635153038659511828683577765003089762137076039142729108683372803231648080694176083872732187032377794777598789084425976504955350808756703740279803117071665753684064034094559124904142778548006603423259959865316627743275117181939271083060332438928743738702636479109682490204916759256316101212095745078436605854012180414057951588901626221716730474844376131112774847462038446820246274235872543249646005472636495873453889964903712435662249869007168092680957133235061360326707782909814495441046770502561288902132932447490685551954532700799183227228037909696511600628917777171178504763103292215941582953910747899113045319168027528075855626576699723987168937080189101317584136030884317193201269695866168204791409012054984912386325803338607225776621063848550237845689490989371571285414366470611496525716820645810362375408559209432061728499258089761281370841642731531283253370933401715409485609182470836694930674955178774246983052481272763428918528820264072043218120952797895054451800549912391141354854028225673946864583399282245764869255198330112203494125875069536699577223405149259031483350269517493140582645794405867976373754267983897199212530521577843696877392814724105360544012921083672367255204966502603934034170692644857416176875438369305156681474480482675571281899404812691205614908365520922613481158179699959685910338113649072480695045159840480691789792398285180926722223791345420119626853822427165507592131115926757481733199430266080071340821524683432406528961823364059340598663642322179508707370157417026201803740104292004861870611805100055322392627591526449106537833085476045303692224255927915632103220373915589015614997154664666879372294765911092948161484681378763605649924983216949527686272419529545515768621532648525975447022458969360822114732118033675584535142346227677220462242999798311430822268383835468000250379521314380919091467955671063140328233619190333183559753590989319682532155579512902028824610613717674814443692067220338299481012447284299325167300095755448125077097744707543850984327055528825033161321259590226664490736283766123370042082224320222013372893959655600839731202289435416830064250375380083558411388959155337885807796969695729727683280929583680149957012415990323560856415526199102037876186653897658498053625344146396943900040461700480593709837809309866212731277168751003036060530547665549932721633669100780507192642843186952355531628779611488744278267516178311143674222276197915432466233242190748155279080082650886644075590805804773235759857842629953410616964875523335062536829648353572011961520299131163345556197652171781849367876157818295868473509293802486035008991497638210238841469161557528391047578259898642165250875195227790910387411623422272706401534945471032596042957677552353105734389578142852472548349542228631002636728057191679426034828135628686053744498902137025816969006177294411739378390522027460192095546384905926106199937362818578349500415749929055315026381597900439014683555005712589087157055565197614142824010016051118606139206829092602596154159546120422565269120796052542219507593853232756583784135390595258485410496338884868120803917552164111537586001557771049921893271385987169088986515797161763485041295241852483245183081542572819424990554857259647389004544054859929243148671785614584220300656369319284775913190335015483403309134768111820154978262556120814168031823936066018861792192173309085844975613894964227834541160766315878374636018958792179453649969064102507674847301608028954346735134452901036915837088923378375543751415448947293195642771879647591458454995519097114498839073760133913585092969551488732716582317179475514557483007408207924010574102742266547330420983059245613127549068221777147248600543852116964866926316432403918643015057428120906873657368791472551085101407773179501951918580729979889942492912543331629073665772443462632114317380847976294283665319857281041076947301829302293868148831340954448844387623069423164165945266746629854939658520883939121770487667005413101301419820562689716957860543908343697637942813618803069498398294695699767198882268435559565379694622469104989487187942364518755767223026816565721950349855845195427105491042408382676037712023319281531309832772451387629447008343475212760926026805215227087442849395721016308660778926861376020546724119856916421179506954195045244723695991516018763295257029291412672247861509348073683088281878334484582020604044130494726776560526616536019455836814257835271390674588452454206137008855721613466708471775118286670048769139986730225437242056271663074275245535388298116015298716716627354835795825757950817426770012040377069997100935352601527122866178757469600989139935500108592987464079809188715455591062253874195914952548913840638153426684552337984557198285646960818727217974159997108414135666280862673203628168939838410881533069813642342149046246867662063378038355754619494606372980275917069022782214658370890751668017357149856983888784914551864557532962086616254281628319130197600131453879439306454186868904194911995271703132084428926216052735903066951787003947911073476907466868643518694849450068174738878252445018207403833504650214278070075798304279977233869207010799611888401235307932365717835989890295830081575681395670242582847713161321430352577233928987777733542567147762379597993718855421200622389487776239213952570370732166211497234559274302560528444014749050488582443690265373934950852044010717617281980105666387778720423413362318115422868149937203742493975518392182862886249514882338559782213731702450528924455570611020723744698605661879130391883627562043747744197249003110685418162518963439290005934543323754059699863743127818283260685581919103198307360159657097670347226671031793983182581225321173277052146517855366744466067269018537167721509349202157356201534436701587293699276127811459576608968742093408763451134765924239467264766849875543281868167665584643769504884036048426877684762112724404381202710352815578978618490927904997494751368815509270740605666069259128176937580015098743226360540248432003008212767899076978815808311261033089520962887119698585389912876568718827649816019563250873752122482936669326917931744607625944583933655414259725658522126554560108535880940451638523948613105033441308210004664800618046654829948598613448330052281290510234364085993905837653162715778500986172976686383136822869908256739331516155649430777949007999213556891680818679510081742144081011424768118583608895176440292768648991613210867774256736292924558569897625986367940895589274847435661718983500925425557591972683926861399344053827994902186660520593513919502294856500614805126186967005782591866424595014181410216519238852446981041180724000687673009581578263016200057522483036945769796238851534379379256918396600256322848939042769086465188487915148007689222869839111894724272013719487404417473979429201682617629410733980142139914995081317100988461702570904750324900843973620487310974954076070182153324788839456871100338851160950457556200601900202251457169889521779295138721043801234328018375512221633066381503795999580694306280483576571115484875729728359207116436956690503372537880678517518376171000082493185426855863614753684138615857765226457698675409472478073051230307013673487368173074683165414320293506754534073874724505489967722045770738239120856490647363643299128310512979620839774351693464331349546581625327302353805051121979830780904305517410120725116469126081892287899527540067285723588552848640375706126225451489824674522275574010987534066250301086436394898930688319926217680718903805760070308678075837833245970769442220497290004900530985811923055463209951301739669010203257150008878654788358278583111817225471634397748381610758755283062540760610464399398829794448675012152116351824418886698613856745582700268558367742418858218981586301381006448013995261107942151326082744294971159548369515456636836913577617772353684042584160194182844902681732952742040096644310049370269240157144162383698570032846220601315648639000119835018462880927433561860573821370731857882206595292573371731425604215703032614439777970397523241374767773393778858547320686789202023672168781901215452521888124224529020111881206215235520279377234793655627808899457316976977488172818095424960384178485327688280881348944277026652019960428318441050876823608530447136184369045548220100572089323053866843210135942748515868510493125505104072988012547695981453167942553496448784814825931291274456272636874121461385599955595598628696569652457718764727186863143850599393545829691105447240358619245856986769782778978042977557651645392942119655321429351295462343013318367341328329336061944726857730377337329302069187932243897628303570184050067329978165593177912787782100614080277557745813102867446274663977008099312385271863398958650527044995068120943587358523210913852560562771498356910317007344845479890848876443669770238597261805568021149201731992694672145024048330857461038862184259379271279072884079834554304121806118783937302820337077119866552863664571025547610216955895446979904193092407072347474793881939918489938617509731577631176353690560621508831274087946391804713146422247130199278888062446734890138193966017323203663769534749739505734882874701385642503174060161526845529764793564338645932738066159596522066245768894340545484911773319383435002005627697310603586749338111608294725751314545545740371628964655998784574540482993134373364118535889365130908720439894693533394525359459087419402181136688056350863352518788085972118105561917480854530505719989222659511603101150283720143321951081727805978506678617496113872755677942125277236256161952350289809396080639208020473894674463110019714583613276015513953417703493786868545434283226319999474591413304025959624027146321149540625371089698639804126878225126902426861331537860142283604215846258051579831636839519993923175696218738569825229262966118139513494177146856282083392765774445722491570564027113815132142905239255957635087280395496903806877596837167941779814602489823925838489657799744921969545872733739744921736742182467841402138033561820655646684249068553395541608505831161835572457222696755650612823582584147015180262274863050267831969000461836029113481947058390695696840745259565388548141395172983336864891005312759406584647713981847549917922831629501402843928127036632512473645149232894886561129338425558813108354974765595697578667322032498246498579370725106717763434522222298930802457150708674739875039535906541805397377428655738628550241661603129059241772464715147072445920849375268611930696840659063185554052368752401727990874301058482240746121045002739540929217051415120176343480025403820070228401100436531938217675005165889049205877669785071355066627663265548400025679660940974958070620623528153003722464894836981754133037313196156402595762168852455484058045858628755946433303723527137810372526492010312119533399018334476159121391721693142703787335111707445075174150762326666582051070596517822895788997382653336913499445058599464936966718045892107342649505329580232440254828028174103807099926403919777092740933660816008181529988604221436581291600396880408399409871033035723969731972527545821402398296960839306906809132601679163117870189382066595652502719999311347571992007970541109206058624184145981829903114296330063190548387880647836688749812460955133455063964133770447172261156394314810804600503655543315810451550270631311178811151580894733552407137079495941508444666919344929816381336442242222016127084320825781364428682875236916250784944753797117899888723738648693628299114007459051820075333849480133810005661444241344393384506105641827516852884995817778616851206037982438882377774126818895686271389889753837636366752645017667286192438351545407383105546051509575323256394530331471236610040770230939359459659359732467855187130278709438770137719452674074342513612863375340450146470637765849740616098829888037153711178608278212521962161190816281024469477863577565604084465931842905874794603388145346723583170195819405526084858591759401863601039005714176899471463422971402816027950186977545010891280503120425109637602090554723993837914834043370643016736663166197504256799636449331624401841109514460165726906777215521603173525445712667861714930061202517894360916683917913830366773628114238775331509561034534293773701625689790364837671849897248444805115158892827471736608327843758547953845303041821960220386711113843771166396291591484193987608250032283774327476554476106296134643994638368607108379292377236707077407756974406314592363706538462725144003934308212798903769773795272944030289618381704118328294060585833343939084883076478450888428104583597987603407169451954126037671799409781612306123444340172617527564581186361336792161979979650427948758501006893626300437806139416444337723105584424572295507377817267790048217283080538885283035163053246100648913770435127313190385932048492242893037096996299483327708243503780484997589535158884033383754741835211561733495370607301038735571885348276144024887443849560912834131577276893238203355737373265521337084409306901151297755643862840985366644648526096064723984549385794875150467685608062984522075652303839481185140339299402851143754831591271209829513707984496292654636367704893523716383905400254456050879219050287971484516091950392644916609530517907956660027522183365838656893895489363191965163257060159780336833009763369214098692613270124671879159581911306045303840540484245013910553140965106250369630610294373229312315186222868659279643116255219799890291410991075436219983803204196402884679857342418237917279181646286807508724310880749288160102734501534303008819574814623511443667060303458594652356415314883820025649648550852519409663454861366480108885831460279885749462648907113762754070761941810558161576043191801228576026458624105872602348238476505748269831655733334191005795760042710369521729233267907694556691148197069100049295159572087022320280609690330705101844761169238973227329675723614401446474096152131999748892590277672207804107952818185551178024617860421809833800431163987804005277258237212836323696168000268391132415803340483217960707211121736530093810505707570518039103659622788714340705054946313393113732687882007844623126581875597482006584056342471857987435936234180684922647506973538157171686323192089784868920953788534547661732504566720547811993265203477858222814869870983996581369938978930611085663892202823371567467829475703990182248808027514739547289021583033389722746525814433829349135623994155329164765866350026461093158080495327894206500211900911806980715850761942023298419329293694098737952634287212995442902336525777693048814244943022909979961025136768074730577808894167664139409981631461390264745259628282001930528438775285204194901005746939034715429819344904078767339533063163641469208779800415336205505296341247121830265844854046736704844837835428780053495474228989868038828695381959216857688969658321777165414701905292050276677875522009264411827738235043990432881074912722184620089363677878885669850260698698470240876431978439233544171226047173759231364057344322540650081246140169824601440161336869187693207503318692189586123606840239685106094318754912144672908697290864800246756805042925538068537441215826750764233007031811651259449168715725539898768374196182536267472227053563268492241731238543299676367757847063681257366203704231835348271510132078980506364937309254431916254079482227080336484353937548364117802229644215346960432662419934801318281539531513536860974734262277191451207032603161992900190509566317174238541236634467342841257826277697310465189466723020808432251215514707808792076412726439945098229039294991497314549631412413979070169115310356269510099220107435713441313039513217898939272563064157001098970851373400917093871733330595624838612327642430449629165133224553769776505692970210938246106992544510061472476663953647143891534220276311686078704017998003289789587758741055219832286704733051902812016676537325519059327774934909637843144863091326233377175295543390493070291710115495825479277011884461316322747882689399518943900140028453621113551039775640067892005963207451870338405418980807147760130021841512492775358987343795904174353909601762171681287839927146519964608261787716057048971552741607243884523099970290590456733253787525947144229693758773024318057795438331378132498174800104385083998681711039188593071620299570182419947556462411813482911936928292706612437740827001299405294541492990697387327527880577759688957087410851139419130702589834217491903567886174857755947036310447798870605374624702352555708072309328285732598914612497706465313353092734650899012293019110077486681680822462273319873673007587088956422110149702377693826126375783950658599326229015119590344704821083688481922622585943965190268286483382446527587818405968078244948410284015683932210017315629919588041650714587576558365492616370470288303517984511970261432912765409102225073637387082807492839355650112087070810705247106576767430326373068487300670668401022659510857481958270700524077796471830881449991608050603099491027125425620085414314292794626653201787860994793771014847657714506727761153942339835038272530936047323899027137851422568298989617710792448444726822181854651667713833382003020989310537997733897220800799872811931584071106503781601127670682512725326949123791927280555689199084260957074270574208853973037116533248175743895646891044205864488923127896203428405038302888899985689831322633600422789591598125412559911943189081970089669890275519385902449057384162128579824930096270824167572135907124206798143362155181180675063795033238921951872488674024839676873695312253565509116202304108545837627262429545073628866789672456908094764001119734840477829141678978361142996627221336107503051152468681132492986717388703110778872736903774236986764727504753949897635852732327802723855178592145953918539773497793625889915675393349498828696283564784668563586150073920571157145389964068488762005327457426307804496407642742748168047597456939656033696138668104666470818797816029164393982888174650018992110340041035548317756997057042096423338861379489694870624022824698199622923500519295716108700054954067008034182455674340914943891615966489656898345031678135101336493659838525490155774605994397205978680274247567774173210055305721354871677803941968774068817316552847308463279645568847579054217608704610760867833739505720400979794892216347556483308691459134388622210575139319029822082688329699004815223532667130570032802145158115342056174765571648593096170197195072914728223514578556469560830417087460675846804035285690688904870574927592811256963905577703049949264568407707372513663295195363558283324627323033121180669559219781493641111811005198887957852272788518094929242713417487070691424947175494405382991384948826173527806784244480976930864589750528480225999004420320789587564817066462386344261717734505285665850654999633475027960719431280692298217669941647150288666889356386835503902802029617208467799308856664528739093932648572528762631575904914376226810880903494717559536558711739911105484084250970762812042364164753869338916217407713992541096412248116893799531479088317802578489084789848583347651881682469924925408363690871320033483731717304747014963595106433290203906319650826089944918395590347947639710254005419656322435923414267928476537138457890084453851444590972268702873597210727984705698844994403970779191741645023521125463106407214528930305587652979762663276400900997001769220561672987315214581807694685803760367836800368833920775335847840095987893806498306264893781187222946652633076921147970435482624471853588323499895989972044607293419711456283387925372667727943950119873744378850741916116864112496801972194406726765175414852932369704070682549320122578043892588750386261839965025074221971200672210001626463089749173388895519397104806670158988763133401732788443591419106563190152807844068791616400769632678991372629570433920978899914002095482376198158836162880020191472753758970321076645608924646112052047784918600849770431333804348318560157310329382191196774336225398422980578134865971293205054942479142639243669675180771697653442259129372181716046230202157727780548389780172556008750173941863169688972276722841429277646243974238473793166721856608820151352139157826790954606538966199266980870052635994887641411432260094754480799330279473796157734178207180635944451224211254913805818611373099103445201612700737512835761985229323009893229466581140917188216576560176373231500011712717176763727924389327423239054247596454471405776284754962308895256384171527870561313515857501938427903783511920794508328158926765907909081528892748927169571052573521724058266562221938366492520891223606910263117909616519134742722521302589910615140483020062296472609851018616808200766797177137102561995818139682718047224513129189711822492545404224570169456864803200922078636401335017431951000155302165783085286459374134626424734419724161373642675990396662474585910873498867793048110477622168574801800511598321135010187286737874143501564230280617506059468874320367085487130612279170403010969501677027244874095321105228011847275408833710523630927388875703993842118995055247968671471105024299092853383230492105902085329251876054779224489545593119237955332751292978328369386726955213490128762804091239161891448471007206842361117176688940241603065301055570291643185447507938806042109804189275060298778475021224522690505440102736235552879386524663983532146481425054567063693693615189322685811898594660947941861488447426381672367189312193538783005481464453874622972617849042633837490217516880749924525990611159969667137112491079406147894881449592729705839659989698745787839815267762971361391604939957546706203254193626519311470269280024511927296347960341277521987262419793575941744318181122258110238385392391712136833334123796303624962287296068745601063248170292640819407337382609779550770543193506306526451435600854617741830550230789640759445739163053880200969620656958510637707793617843829971337094109618531308819141541743409464824606655414531441473912093010338768167862080297077359706570607905901318410976516146380229680649736356004752888708619616051994134366045545955059418599700312956439644127517939552938609063541064018184937400038064618232076258687293528244076578715240861288572128610971676954414939710045636567432995624852161543256166722045216215362054791378341801391907907251725881328274880509932112564867566366788795136373768047462992531203166008036629840071168049077242189810326874142416421440606883033997381821944735271544965932466402592727805444948077389636240257423779335586545951506735578118309990491428011505473521218200977072145088961255097089482510695939399127759951059413516344789468205883157068865491715045997162503615792252468597289363146942809417886557007901814923824379932547686970310674758032540505292720156679555765115250139643439919324064621297844584356069573811150389146954612902225801277004280053405370320096017904733483545268702986157135488980506675349729345098489214457667873919413718155422227382254860963935849358358895391434570732057477639385311249888973564265006367727451008964674656932169858342821412821220101018455862621344882042248089344923261052960223219837909856961629730226712886667344699174225968246981741425550117106428908516099772818715962577138032133244886038824241514740543160646355852228351487887751780134598995107679194700591100032389775390471295428658105252045620998308911253228170966938985002126515804098401223097557863948773390849344592342036705213886531170210364117581029336046474124209339977935183673866213774491611358086475631930965908045784228173500191056435770404518186996974510505881566642883863094055933359532823393982539264578581762235016460742222640590552254689679028287949316182669539830221721720642686949326068560692022653746189960745481971233263333138687274999904921545178108157555984111661226206717543321071500903454386203226894242047780337717277421462871644471333781459075180312983446966712538529851704272157352020354241284482782107196018183132582983839328771042518623494137359909695563065545104122555889664207527256909060483872414303575938076544989229407604480156346274630275053619914566026501312945941149322173092923793141681734690514317850098020628573050647146978915712525321327372406350130165928371218341956940672143756411848736357652359178478567904560645335624791119959583124841478597497618300348193922602151206796694212840649796806953257768460471221301129433473780735682300126952818821596429119633001216728957811076214198330835822980188802953355492360474372944638702846640511657507991004044773802929309803851871612496998009595982304063832387789720232977110351995616549623465537623619797928564048667032857183127849290922307904749754665087585727068790896914803972212934665265839942528649889383887566248116632373691400597797222358411883820645010925135580405333009364734354286760204970651313710081614090093262517448846618865573199645007637677289575120753580682722545433476509606715974604967662412422714270945312472347938414760952555008454357775865861201017864139282587649039516235519043067608970662286780008431699921034538080306943762911401544547938617883807143061683858155685203114861864321878687676984166916659904545120344914412389539443045746456535117146307188936225038120389897775823535767895430720854307340529398344521029898727510874767750254654864730846086465289882628525230824044330627212751562440022938907215567394335991948778736341245872321215163497729523504956040107307793253393144487058051414491310582000510494561633057103415594509956811702851133288774695897223820282191204925100819962879502918619420832481140290312184614198377441738795136618623298394502816664053111847164010831433356799158317153951396902570163094619364276168059170360411770640283166507618792277075863439055819006810332190721163712699385434155352541075800003920086037832528182243039470029560458416073369550813998264271918930296372590021999902165211899057620001554811278107828578547299666837544088333836960393715696113835620755009376892208825087426151840275478355367132483467181709356001772206125318148009758910314103103377837576979411415187274938929206685082561250497049270435521690059382136570835113861213937495889995795539335047277040189502599759434080043089836220342668229849302319019465003733431205773571028178355512515231835158732712911131787897797415019560116749229319526862570281730466252584691198245030309162785485823982815927167790181663225861286079555446439017614944296921220893857732112418778624352336198450325095882195925785682641257403717725287501413649037147072047030864044420690005207352482252494538905564289229931972078696758454883042110518162899417296592688047168473257897166376138063412491980900765343793555591284270875999762976481585991589755167343219962250039799207091170328160878306719625815202393881499632062595983264074169201557107542462867413241651969928870494457453836191015405226291418001083533044075535492398054882352060921418491211443095983252207576447329971600156301876519965580408600438891430764003857833012583102396539003356072075796162111140851954707042094474222716602616538192109666049154756940580143749297378417134808238879553632773598933248356358163792410054131766305922897957409258771291856478073122531712546771050683163819592376965569967034090399428299465718459544336139165008950471964236030645170942626020092710890582309610799820266108265240571537677916721652922087748262602121719176878242555820340047716106636670750847814767838195946049110419162317919842408057913288832725494239919811754180709805812088145040405809014893112330401117762325214623458695806522538437679990074722406462354820956546693214784998851238521722443781551133861557360733333308069998808158769440011230798359714269799860413246717306994015379586208341029587387745429298223498506323032402689218105454037627666931410986764504472116538768323896487565276976162469515924958989598553489655291827283888753388168494221347694522521671805513314438498230158575414992632301051013212291285309464926626023670790908483761335986268690543810590211060340263738167584024880830788083804454747356099972639632924957390822564580448624473781828627445753299353363959482573508764879857776207690359537023363103623131321164833989101036760367103510472923999750448665930120266848778791322455014727910128724540131571468082984573991689135514033212340263950859109861246727366796293980415982820391876002543280465288058348818903094739448252922813208351825793498356695692435841021089840803171233684341081859745805477758412359897824118476027850150417947308113612923091763877188410968225154327851627912530062964678753539516331627873767530762693226837124050465171450250472620108271539800523546998157050355661668475558701159410540440535401383954273865397257538108366437895427683736775366509466095518934559347399058090594772521217790856172815402103596262511036378396512176514601907166253302332491112272485367826129136693168426412886996030844735342925808674773550873447046113392427937722789156416327357830620549544928886937059692482998597177949755038168223464203390951653010028779017890810885771005606235580833977620641861681390114988266763715632727182299667828173826605437482323190333176684076771318431021001849822066531358718264607860692729935233200739337283115499529072602400520469587757661490819045861171457977883765787234904405892079587194297057453839564433091041133851573347715018091311857096797667659710965173399384610184842727503814997764475542174228851840789627590587470670146793891221000433927426085364135913205062709802979778655258132817633963722865063346918766435149267364146448630127864896400053451229137617966135163696220958363651466046368763986992196682203014460202944112399775174352971766059132612768380282102475150195515649975608899095421932038818838838015598560545436703990704364079535619897193390579801939301305226069707066438415456512398018011147684232511861225939519623776659604755176105922077616640539810028134674299711384019808690187539217649723077232132390484541807925199856908516364626040242476440246942657079343707314214496427855881043391634053902782183264663681720774703076457044645067863904181693744657686644165556879165474250074130410658832950389381067867498801422109508016232097363122970284407228972277582895838566316235503176074198653684306043732376234327691674772230724321297157236950034033435607260794031499884119411504601618643576596519728834347353781727486086570084857558550668366963888038017291673585609652466309544888133304262178090075192429299879512434328552486947254998635296459019381329571241465021658000040701386191887846206408406174818869185775784923529937374388210138376581494643152889509059500987333974512194516331084158755358401793168332977163536714883485183020136098608494115353659397434378064689189569791596915905716116012419054834317552699978516808486104350211469127617393351248974873913657399418644674042131349518846011530905840187534850042586061577465392753441088551775154026082121412837124541108409487955075670789098654177584542305935641460074718024308983826979120506784855567161865109386099931697908602863964213084624982731956403702919995859334507709475937486149595470389543272736121067203714971477245976242893532147580044569923013602727541329059145566881001884844813436524320908179153552020564075346285659065515730678406990847356591671440426589189130679781209489535571030360261848616057192200892999894501693175425108141093989794173253547920930244929236799212686422169676856027476618815964587644810064250850025522777383825114974016172483999085115897326042548790259745108353271269629601476669938933526870604045253395897940536253965302334718869603790491643253359280173521008124477647009506318552580242082134612670370698975606323555582924470619474484022143980246457829966121087035948286874674037813158681862072155152932933720646075627694495705215801730912143315334977819271238182295955815365055603922073792632273014119636237251603791693268652733469923576496253984244683511158097592984236975213993496155599294999211412759783327256436035979950380915707172243503458435783648096909979315978844777906295007329100779960805284277312587058947358018833177166854044513140078212468123143621414420205203138899864606707880043779551244796030104080788439074204638037627396179387358941106085008836034068072238575755540180558892960261237122229360655667670320353106522138117325532058350552745561753934489344658451908402060066379861053404429902033396591651905351447784981594933995541905546236889446656237150215882476194018395113403854960053576814570630499414039539344312238765042540752270188873671410931721806485098042120395876642138988926419022586767164385140292445256170583926981455816393902500344441529237207579765678397969061150637903907062748164830676133059623509449178348269516206184797380183652964270649152977672496555060165964251325850647606537422816435144540333437630228062822551053480507991278225293598997015185850508156119056168576721625318558698869865295740058881259060765258751173345030551396442810386791546381049697028616645255174484638169392715643967796494850952337385754046161508077025724838343343040410263962102964153344823383866808908331618343725433571276229024038619086826605533479751690339432412216297588768714239427198941301809694234059475809102285529405047138686287450407620052441143938212507944885511029022697739517438576199045245636695941651474315351071652048149086499402536721611435554903054562490144421279155016658388622264049768166514459283463871154761069347936289790946811492697168706837773768499410897341528336197163053893773958819154678118221372603551254246744262846713799014940593251165855102137500818857228433484125337315918780521438109628490749090515727098849828486370547301534384602019994494929607885268165600103398272443192048866808296536528739397265708707122939938094327729039172547979376742938839897262211458070194773016818847243414292222178387153687149237330270650526667099396705434662502201014570961914135448407302272914064043097143171770507491657736982949134292361531617949618335138541727053947822311243983483063687807412886835338232495177866822138772323683558965985290772859258303332507101703902834287026807591415712314291152694378358465415569363665509837931094868077155107492509984719944375328838658948142823943795968862222659042197046387499009523640866873906668177195487735065943420888719444946852048653109188660534394997144707208912475263653457656069140312256603524093522667454784804672277574336403536590063238371046518701440930722917766331003676864833517869471907814506121899146070252749087624976173779617947451172295594052468402975311026508996564228332653902469371436009567477263161390450825261717172241658297691576771484746884495137800693526842973200612833399383171892883704086871484666686099354448058462795164662758903127332075980224091837790706583292114468941946561403098380229646959997582397481601474234987807193717797491673889140025212347227001847952079118539023767497318200842554939449347525809407057256435778715875817411022281402363355617987045917294948499642293447831754832362460387268857361900034644502443638399122244585179885316042776713106015840320943139394355595269946743329295481587828081710639876184078866410948973024780889265902981919071813497828651183963009444719866687107687323108149435082274581939734928097048846857319994087547183994747427797842426768814012497541619901622013043396970496692438374988380683571548187664293832285581324356645166540560973152388262965650616883000935571691506231749180707165660987903465883741984723141566421618574457922463778487462787775412522740354273165303103798675417119481036173479600999285135694886862379030615129768487269578191702815563129556142195785351326605084934064022069220054573656328054728230645236448722436271847509112092182844871874238729702589618739181827968228654883115843544269095007854122234257933249757967647471638491063478801730648517546230649007783006392682800711034463088902855988334567527760087206917193213928251211662171038244741837714449096021340915952490930818894943074457714412114706561201505821776404329854908925954336133486313747120838976365127728431949192515901265765357064556855513865641137086324142304911907625284734735582768707020196549610360363736064065977816395326831366192459291026920931817298411102020221524856905007998921490127472894955829953472035808956582882004544821375230679304099489940708468375567874786309391220207051403858619886595844676892398540025266759092567957773520673626990873277624108759458089225721545971998625084254116619327464453104904655140174808259199631827714684979344992154593814645297603391672468122583309023081905216905373927989562548741971262703915938509417238596587282575942836264837768372437663619532081019114683310791789710851799168455713712111137495034194677003183425401327740003453684071631424917715965250044611588960813015933544802159356945987597166529587434789436711796227578712817376211266809634393630159368814369862416075679821874366982575307139942710147315460319336935434957398987909369893509969792889437935665967168908066004225695902911389045851207770681441663190954191408902821835077160713063833348703960054330466495538091071529681588821028312456683296584027895524832439677855346449848297659463474292857190149328522481510658629962941634755975973085945627319250910647984445463723843930604156444830425751490282376354292530002008684850816501687409507060526041474420041348587135169917965272740105533933582342523602259543892472981598393728700303846777916648027459036864600695534669142175719483491853897811702483022456637223851872202607249000555330328765932929413369382583604419167686212994309536656767195888782083501127409663102070951287387748234941342301638740837125784601471089589379342201697314364283968316210097140340777718470821225823489495933980177338817237270937963646421176908300452801520635819387589098131976139222229521079169727438657206904710134833490494725692273737137405038698413712666712726071489646921261224183988687557723339684587301820898403648174781404509293830235181925155479161608586317281676019629728339617648508095610217185932438632745296702868972791702611985318057819229326357007628275395369717388912489875443902488700866614057629912308198274259069794714171024907577925739578178361056825530838713148085067572319267226891595878178673787203375879209490215061617796430781905591660245938422776064358039840132613853232508866976353911098559000496160795428843551143661460609366367109306549753882153979568365575158644839925211393051560141555348066656572747324410529767569922098030701884316021771590368732877005531976365674672330736046536125440141072233505820131947228696380806532802724981604024041131975216239693314085729409831298221136844769811160831567172048561742027680308374879713748570613358205110867581617988829180732475046904133270917718130191056581824328649165550183512150672312259258016326435890601084966656313498158998796349196947897854160256800383084302395301573292095533976899288225539161984714998115309000946039772102023032871757235862672591935577367045146136214596150911536994207465911137212326076769718043344693457796731468207112199158007956093355082871990487170747476088544238811069157282427404942589318740887148123928324896572970220672448737840925760166344493762929898823905320390296413604991489839178780516671398551277878885771444659100821371111026175748483137088633497866006853539985253472329118606653744524781669872149530864025136844821937388472313024050795245095107931245342713660339399710340594045218762820473137989597273836004788172353095044622482970247580339174360471334657379740332810298860905638596361585091712995257978048505624436772648638116015141274289431202810750018010977626128317045228735929466121898473064864677028026199722250510754803505110257936151251201803339799001977242754644521109725441743879206904435902487046020934376634638692278527268076382501606761550718861705630423753786012648141979043858906051837571060976452398928798073383624554085447826545880837802113144004273604470762549958818917096013360533038287561814063621652471010955387988806157046659320137131079948701745057521782565841131623011619368665627167851375867700897590830508098843859652974122701296304148916845604824796436716461270692715211699925842672944968944622987413802911482414131994072173215097618439715335097893517749272517334507614968890564707080332451982966701948135857071662384732000402330034118982336662874106357507906345034761472542063782680739303837391573504029792881196873131600636115777912693512112565961823336992789442029270402855747064690860235179105031020563647544503858124800143115758532177891112444051662744649057408916195637216688395957878439902181323011413322877059850740205217694023243648114615092769204652557120703887572529243143462593600970897554361477854145830909187995537623318981950711290147393286737455116694818260116405051229569166846857305378171472451226261168612223277227571797647452546029171868229592778529575011898098336595422185431665435659754497151733396318490224319483430489526703225116646404269271326279408141972177951510407869733495368834950054093588070486564397888089342054638813078617413958537003549734852942781681693865965731195916044512449471490046454518862375039493808087929297242528598539915649212645566990904560270977796275973471981621827161026747667399304532404549166451162938834381047217702843342780742039142161991057434083143600562227150659141661273203271256378574567933533774332822291394813472447849909269396801771712143418033880961632410543420686735478271850635127210490055033104763904721150429846676234179460028995690410099912863213362754996608012075925536740544519338678153046688569339306729345969142742864831824426622430028137651721686377215592836888636593665043883644605248147229800702230332084473610811916630822447363735735408603828017850232192795063774385111080666192576533346543879828648272666177747809454953861748146498395659248021009390885905728260813036064361931585307207564817298189622124567975354176130083909098748121442332389767082439390539857707400520612423869151254182274337705776844654818397902288471582542667440999878848340070662453889198146693497695238960406267717263830198003425349899647394187363878615843595990966914989672142361530586282067068074384863244834148921249561967378409537906616264363062123960799660732360132233103436457427529448569930458705402372517652668355856186280480685142482035763875284598441637975478363220999278316010825790578803650875814012322236712039799690086765519930102957211633297745858201170262275574849907559884451852997726583903593996969866303275391601674686774878422456503314661136792535350579113002039640376518770934196372305037568241657854241413305371266201804521988003542771686129727463838615802849750030046240414409341837485832369735889570588422976141654897828507277185885867031117713768815887456789887386476952781257597243422616556458253938063934719563720863892477295299919770927055781327331191450376917703329184954774220559691827294807772583880204012135625878925054977899301435276217060757880507505919396536501626896798041693083656301064552873758568953026850358654818365897773156689358679694569793021654593735134137356354623194738043179808750483730733960480127524033743654780658345134686313254765313848831692464471125345925663656289924286622590919183472682815842340080516684555312023802444814794240252912666173962301835991859231553181624098605498756685108286907240295560719713743805179835521443631550637263284380831848514242382013158214028809108932871022371575940839888524449468600484087271960026996808089033423839536284586010973418083285292837543964549973233019563426131896963589787014713711360708649644255241991276427977996718402614045955296837049540952016326569225476295908515001282646078293452457205266405652824726805339247525062166123350444719108292099609177119262805644940460098966283163688894250723937975314144058134933895852754910164158697097577413429110391158357610423493822019419814700665579034234890578677953392144427026278617225297214273886040361606977584487701083388860300595038442846221045942658765563891110313055706577509089213846855246207409779826733979171141319929164765155529528944225868151442885235667564406386754949580337845576219370407885775609334649639602126165581129590291814454917452084995128266748526838393368952108307886369617341136544079627174968145925733442418146783114070270740883761165403319185294295156677585786041509327606139644600283751715265360108279429541338814911582992632631808729134004473794307346296400403328113427287230774844358903082668917480135536208506146928629683427723201910075762769804700625416702448892980862097702101987959180654037265196855583415615667698740550444967683878175020033349211511948914537335251169775760789841678679414646604874059093374213458011869471460699931816164081680691190528930335482513258788718354227455311794350606783828555304437574433101596573799587726803803287260941778844325718029515607157290212799875176063367242158378469370899871475569014391708235247157278678251300007308152808387559164253115703690463713199059916001479911813170706689602755176959848668276316947353028452674621096067163763256415308482852045306690146181481630447210029864679744603263619984425334828174040361549462145616013757242807472551482259477490124503373356815776238050592851763561657230588002651427352923948654609188917238964454965196908683131473976136510020435311032768378943732607083737847355208560600602855929933197972800645359679234403976147135265241743618884953196235920163104567761419508934862207906828590037500860150964280504057708175422851966668793444679565402999215687214753503720220702867398251187804903132618832058815067139131813355493136233845452807677598963983219130060193166341348300358563500098119924072770574292563840374305785148999975027756757446284410517463992247783683015659305362954645191752393237296263114528254847201570764915090600234492122464921881155328340843839133754857442747647393702562898681656349854291794853046468734283879887233799160560711037048720030672761367290455675692370099079785868801424547465440796934508689504322823590144139665382114104930333701562508758154397772774534343247888203337043689354526786420810297940031133148907376015337222491673944426219065916306733583637088567820506538859417970232432264166114345582405728166206901553158082214201020834944556248879454748394539017124032375695628400344948502590254309791688617326133309131360280149932691437514473746565176194529645831648634952089387850768596576302573700599975427980061911855062386486675108486759036443441016285034750402421655574827908936597383431825005703285015411067190619907689178158019235770503182521111167313278710402260706209445292669276909768138524671568806448500426602457001303363178581909712174994742358092840994730709126656060879371409738727824182653195159625593246395021703096915231470329691819139638137098778829146782811256305760360781977983952368249491327278456159924611544375321939868370407569097277621561830544712205266552954193601114835051306045213655175900524887832511080224320852501218070659668538933175529053889311376921151441363734674987063886777906871884559554570409003315131134069985205841558095581770658069403553235354795287273981864559493589804448121974835190147201326546506133283377452975330498495039458045819504216945018283874723868925627542516921291611131471103129082915840317112625026276745048071729854986387562968132330107896556428456509553922126205146097202283528673134203682539062055656791097638803116804975391249701081280113798480965306758598590757001401935182742224113710838506067403346723408391662198884563180111013183984588363039894828758827840139177494321478454198574390016905984548757947727389426377724282098406647982054009439314318012279775952160503265242525843352787141819111619871193025665060902532402141076322039934756174608968864545269383780281557795519851231386797333183863146105740143416037057739720413099878481075911046468234377137438383964045222767834775721483148523609554009996830068827250119209152471487388331911766600410002938698934766856497313781578355137282044941077362203576281796460831527026112196457654368610428279804444350499184635449420007184185897289233284645132437724597391422731554097821065404453042919968480028181076351868002139317401266817814042624172307387795444816380348357843617158719154074703831672757574314395970402038622979567783845181398959603590769127526104081895530273132013997259426549417959654058303099121364849371173451391721080216574696636341135607410830364856063073818563630971632179813094916196646375471280238590175879461568093379763215461458340641778720005099124134422369555893620528423612091753359395164774528795151625113565648476915523358584464581955254914222573737396771862146193023613975289445182699723314414373847547721747406208054870991951537844884215605919513264158242667180551251559519637066641971620898059645577992257990902377895991719478212789206483519147644410527897294806481421168028268681062745523843714121557130317980092856502744476966822876897150489951502506571533431244826026821433618290417564759020500666218468079469251795492619227220933338368233138300083251616813141997633085149504161047357419131371740724892609072747632476560279094535810331920943772617138575767557138235536499059089388504703472835401171196225141624869851325098526183597143627386355519840190469792756715530157089921756260454780798454763537186184177758467400959557903835200282801773114986325929189595029616626171656517395710998852874685330154937133966752752736590353683273395805624670556821721496891970865910990619848423539255130305820934734491242515149872516264668913245358298716086903196717996874547814901226642137925824119271838378958081994347660622348709213625066765957955718904237813552360810105115808530256376223313069683704702182800062469752942968952926707255174671402737963472362222993010175014470589421305443147347473986994795629732257699991631469243758026257151068633398559924130157767174043252090449652474654459915148282273931200922025710994794071147527009312996418004773234760703527855423184285683506330250672306083130420793908422198872134187666539127721446876486178134664083660996397959798803160436145371971158835781405674980242170154911631828909504910714109465525669629145231655282989280523010072369033647079798376728431554628117376722800109062329777337857849293031061970714849426604959720419820591293946866915863530815463458461050134812942807885875119807009757140626373376213354594043649866934349148334336830505420542950305713860558381713802656537317119471122998265968942449223756927590149752449079438835325908504565549249249357604725418263119065326061876470289971447044639480061261754923238298772935593001527542314696843390938461570259871006068661300631969947409191096719343357621723573941576110241806534947082898902739901145005087577722372497537684570480782459577632719470698536294493904898992100764363939232929739545781288509496459965961140942528422108723786564491258473604532929414690696162046539601026950865217231399841333057883363263168499420864551102082807182349564840322946041617408238054030072858972475493806041440625791420455693964533937271198470431656775338607203986667727396301220308348528151370967385327296038195052185762809508641360881620900312004380667159331155876959854209405776953142920446165374022378738815636569254363387926661764001716665783622391733779089813010006042490197648343261557343453924278479755791491788823819493005218201294350871814146816258291607096423527060673501138686422567981097634228095357212447122647675855549903681710781657770795421678313729708266953236286602003725620090047534519115203805748958937297453796161797642136023701267130109244675597788525825990667731075647105526277751875497392813665007075880667915534310768693285012703996371590795699899736203336496795444906766591173124343267865965508426181346531445234940010099611114823937871444656513514690449330872442657841353644983100324379899907548936240719962966277692662972314223791104171165274294962917959600281763837970081351921746836016764746071010658203204954560316559759855214801428980771553161522336546730726079804187431712283514670750389792134394735424997043639201877332855088459489130703827016618880089444294653212787409379571893759912536426581139230552852312019635591745230248867750396738779171585187807611378551589102180011611495524696594563775217064824249692246896597246502212595923365746634959626813760125655785268415888676657481654958660387482558512904443246143386790576376946897186986909307596778315144672003655573800158931721544151941434744706040279429750797297550237401831198508717788801946074914761881209261607372586933999990552489660591423480455813062737938269849437963283946482112055995513476241874233789007773199833828095757830159980919568314106141326553029913450059305879994486643632864852447400008667370410830217257706591539600644680028004455306886312788765772500458842388847304854648900559937110373874178659266568384886602557661932703623389000856571406261947683416985016818718199663184858036776861546230412357567268730974157827736108565165575992923568632875313319128543395789314317676110568667373158373334055565557324267067506350776354174139817752037326531892917514285344698323116680081952498642395985103411416779844055444284706635488235421085879060349270710141987587257284029482565322993605754908210073139184043100378540373754617095758321614607084552270403958988630743828412794197484751403871588088315781648114913912129370532761129080971394166532055673117244461501475354437646137605772938165430565213403317479580736719011447170457024900104283295524863691116969267564134697988065232876015546253261618100968802593749007544486786283345665513330601143379713593201708156417067679145163022210536655106079297100488842361735928632519606632616556202546779430687811021503264983681303127882486821960622703016210961350861751672849076608165242183495878164706119484188589423372253896579897000410908069028882774008661886597924750698148332309792995229363154923991870166122129314529386601025644119414736613355594051239850419533557402670003017789072848744410474376725289683190799733814851595913664766162860969509635048562456194113607586399196227801381429744901770701215895016890390069730637860873985543581683913711540027154623795707090090885261331709579679672383015442952311625136629219443674422885002586619928242025632673108972947942566659614233017601994701650402664164646347999350841065972536896776569942668338780061415323595392084489101187358020404758441467397246112920522984436613084870841383214700612221493056884910816192409992462263682715465459588168613394194179976856118228369701363928188187489276111623357567475063236970903268702404534400491849957926066731141759541664167518389087636396143143838026521222148373371741733004461045138028515287622726442573376053179463790794088697596870661372916090380241207710515956968924179431116273628780781543020699907412227267337559098292750614484511316037032889122861665625032595737016977380921608355145873016012171878012286228595790306851009966863843119843491614955815177767498172505904512180770981754145325152109914826842042452991433250856162906803856072179186205056854957677838540203484959930207976988459745348339749120753435535468955687125564750923632835957103321324108211926837833635373375097689246091365261838849177183042596837144777499753840953590570193948536634168513934866061012778823596641137964533975423591108113140089174752631886232872131381778237263982312305837007285578370747823737514447455271266246360414209487265985802429859391036588623254443685159948799203791687969981188882966185498882489103812306836983667014976835821125671741701301418389324514859586694923313603276215573421983301747471973801036641071170693896389794177441541039375630436873240075048187292836771510128388486719854628512622872524153305511627149656852932821431426037495237404492826634434890250503817584046794147765595801516673608803192473474478312072847518338587532163216804613458029275018574812052437956480949014144230779548522091848947260887967370948327904578389124463088305348717607650759446215839174641097126598526960212722466963287826266881571842475553477645631973797351986614823931259102283590577321451056119453522194823354784386738014218851543249307325552495669618338281277356540114936841257933010902512609237249477390738684787707079286432420040638615915928748053322677958540549769775951854721529880800726992976344193321209697968254136478025556505351211253164863026637425613357563898729951397658639085507530901820893578763380250653313547400186545603761637598605948474252852698744608247465844251838484170117923076251681178506742150104076010609254026200458248970965148584555177346855583798992145667234134977194081563850310575006394957137508389759254591198716153281470912031284886852216614344396489617324032639707428818303968689203322382713499844285420275557995048299609467527459571845044388373779657464077514838500898763771273492717766812187939055650462537632321605643691090334836452863115184792707940697177294072627631348633032014923743685707753527854394200329442956054435249788091552324028648227261573576499952586407735072397904378352562681809636774634424153431496713699767209478210947448576824112621496436689757405806957369806616611938610763466267610590400765696380844439741789844007741809830038450888417231999272610890717497696543009867928341185568047646066685255235214269973776585019793264707215386267361290690738752965064584829475050653852443802642400356206759319657511302743750814635243263915636944967527628740141396992671358658829382473830201219867612867076107218111143256997583266874593593597618564071481004232008073983239917622847671807939282754604351250546831873336860854056828440667197325202677752396451165455608974265154787454958250054501442680244066408874562628308132839154600391213877400338694789559305061890976402308108253636613232647404466904224665649604531893904344994089315066954003264530766358431050440274906393225277599438901791517738804870318618597963479345264471482367186551192154203207727000102559259475300341739404702037588746469300272787281996339875771002241661349366622591173763705875549741569507300694383115521298783662215291152149312358852489219230190436433022533996345689851687953716976969994373900629049542902418415192699459026339067990470707466863393030092487004667889877888950223770512490512831248377419781020402903511595732287340812828693345823685257607879023668015072175215415994173873039933676955941675011908209074509390887398785068887623140906545559315713228650637709874576182359572754556622073380710610179103078341184593932466423652722387637386241219900327117634569815241994192062937604564792878540857215713681838219870087593674360044436690455785827142934443654541557654121622707180088359824262244942808253892514712375397135263638804174813868464868402511610871454591072409724858992787040639006169270670064770801861193235032427307743483359449360376486009139954286996925436584574479462844929578772791238601318960214163792889709808290838884076358248643655831862838906437664303969563157036725515198155015986221847031066327491365580455206571900524951723275545606760770766254313670999314004284149023723933243462937864285115408771668317352945407014503585009221860696796080648505402111190641652808641526931567758610372157376711265305447768659840299172874665205516516378776015383103883369582705002551974540370958054465535870176882409171335178297537429198984451375321665113351179785664880137532103048048372182510561090721723284260961406713701257421931023568908841946145602913340975689605406975628262501497780934400188484055116233501872592047464660735639503737593412851025263152729642086864216499018094163230649120460117076422743752138056981229900810721414265264420669550518028274339336717177526356430330748920155645070193534016465270334971371829228085445681812058464349873898036061704476783093917416951430239830705758048710594614158173826297002658599260542851063415667236254993244432918401107610566556952736358392755452649397961177899427742854138670839206103385932584504292062475787494604288813542102507023878687035220890589851985049197066146493548664301675630086149198845255695538628405530609170040782481686767058606452163739208145014546506020437923517085021649741005581041918155886131683832964262110362743600353326016167609799406538858925284138774861635312426132084869708779223093408777695628522318143632308038241269206810969264751740259972838817088256864920732298883494225388309476672958878235046033081130973199060630309030551726108684042749083740039398460498313774632937097280143837391695153336465975814420985525302201790778157023980706440023425998676676602299497922313037914338567221246099958677929245413572039483871004799627519758945345885372092896948523829122957134105574390176367662518315440166223508114738343331086996672937820408064436643012493754283291367181295029350250452270263829322000274111212012288565883558487343156583574727757183076814944111350558758416531919414409339906207003510702513729616009212489918817863992536870239008693178655476864670377890684928835846405365019335294003890478843558124996595245465673488339702547560129150592729386475177329697687250321477453063916959707252720333401720531712214887500523865412573771517231497419339970957629799687329215283891141489817246548505654693525204131667742318392810582508367941881074261281012884729329015766395877075754785495711123656241378894232087032923491159193906186056635560568036988287044630774076149012603994920408285907451716655043605352655740961117998894288397540094036702367805303442732314057449109802120403008391966144602721107065056869093024063142590986816518454849177544319447079618101277543976796215934565370864401738550151721430233410221277932991057930731821867620953508059204815240351212671616001212266097786716965109483362048578017907818990136518006559832390648887785418112169135604482240784383595401255756131618314429730807005595007152496520672360946636438472735180363099560765875355538285537800551215226440456928923085374073215669073307687074177234966829473287622865948767492106811796172055013837835959973807062865592971816365264000989150648462893845354065560365848086261212571502013120512675027757733028186746617199899300766920480848475422652215420098563987812699417115187096669731703590780431251439847711953729727310062492111089006075778432895475232990510178259912811316321973504431442309542964674397801425561787460043578842038435888223415937547863714260478809266382172995650998639880156080640480117836860627520104103539406016252137501232364516669530873205760254945852948886994433664256306451822804015949935557699617680908171274927025446316158184176375860590781468696362930534030635809391581591737369362378974473924243911566540854120560777770239052430225613718620154012255590380073871727133417058614810859152445878589227312345198377429364384599248715415183738001396645331974450446704196737648745972822673144320800712889032387193348101578749598643230324642697557878819094934615001483440466067426951224653552351635946527963578330179175706955227947673696608035473384427063448667008828013103079226122475926336902317815953001765033821495604123311592307857675593461872645978914808445406620689979780704026268215919864018789069194927253594939902179981297365449155067523893101057217068685522351803156620294310109569013168877710911291675038832955043165603897875260405196510378307582739292289390336558165878695441109540314332781606355171846386228815638577652177240905291087785988828887742424740144227669539476168154451199984294861661667036767469089125129239634954193075830384200665325952077015050738640742559449787794329228053593158206411138126231096167687821214875532816532049544910217161648061976980312716497497436544355808630665552771810549597748760027345793756468308833145894414297482189324683201292242344264427019981040963456954281650235393641949737956888939354086572745644051377358686419281244454870942295637641118603249995678119577514100935740869663722624430030913443234753319568263657504102559537920300660538719199537096674550714923982368886548156274688005614821622779642680702707708240004694881202147242438033194442604799381636276174518046653430630781196247493421266837349450073090496908465805708627460314202910537408772881381844144800616264424592603213927747530964849753637373383282431993985426640435001783529273497887303926126036782226483278839512865938771338830100857170480138077494755255535393228121573498525298088883456843173564962849839346969163433722763112366837557444408215337788803446547362643781325848724418253768822991940907644674885303057939377060274703719519332652624765060072056632688758609689588661185380646689140865519217685064952254888149901030426352287158182262815107581915574872756946624431362173625636800071595798403746697862393798941352288205683935255887021127581925187121194348099839245766403117144873229769678378055384043661312708698022865586152716366899152940746351137740402008227110961583993344444858646391047561222589095141682729950364695530977123869561687633999437696738883325352401599625341357845936503026761517473697454166719493829975525720392424202806702170168143703827095695052411650034147144039458534539651377057449464768521520922954631701804862005825230718903727263449078564334035111971743266953580908945005797414061582669091537320884326507255597251621301147654512450822160748528947699559134174065248098911763516651623130855850528534958867847379518804795230927000302023356039769003181544624320002510069314824465242666016228854176732783909598853576942449223277069331949829578743538687719061614801973187403812858373635241247055352030739638101049323041577762962942475467220685219044289187989209613671119507220210232774097205705823358865987762768386081350430231287678587744814173103516232867900842210885011650013020030099994934871170509799013671244369771861939256457971303042698415596425699412170725529506695686746411538168416211265934100986417165524982193632013386815891738173344478649595012394796473699837199602407242661318257689729615512202617543886968869556869647369860710601911273143606613833328693818249535825837731638621468081039430081733046029978528158977240656884830883206181923003855235399238499478210544250279569464764711483507007770685077026164664345052800628725026201821733546376853847319500238036133460079949245498878352691648822033375286910293255157227599212854314650603253574333627722709848361473943198902449947891883103383277195779434687257662888044487026953002806628321129804608666737534872865078521691292151612755212641157275528523057189671212353980446458434758313984697030930774016435895316791148919353553787394001953647730467580727454761046564027931663769542792288278775871873914418128180175540940903197494938296068730157096298709973408713529731701312651045884025863259187283028056171174741305363179940218252986329628784537625341290571781687909509131966058064511201849108099954577960591623983015054174863101122890472854750511844751282187913641733280156028999184978202354358014035148844941447341979044522308465274315269804009822408915847052616269792141141227688372229494584098031747661049394756344673975822330035620667045007071102658071511328505915684596500631732272561469670639421347622072243859167511239728534229827480321228244935785835589136303170955787291620020533961746108117484119225846543865701402544322523399775397332375034801030761880649208519596681872920673794790795024819495378311913344905585342881537689326190911723085550556377631836730556946224349828581616495590512811767524297680363782891310986870688898180706173998010532918110859941329511278629323244853772729714187990461102558953412044434349167516093835889698853125076554764858561280740088508907303960950028311622442128480762270418859946894467128484390163603279871277879489285186754187776068697619288022902249130705957162389293722509556661824265444283405159484662321692109337211095592983094836752093150036843469655291293150789654667310010352394090746994854114380093061619554233343335685434887665059391440834487278668737550946419642686869595461513693414263941236200118346101467938843038405123793752422952542880984447402291108072983981459023116770725357832415185595792442484495762017675794006383995778004889720492405864017397816934416249747754447076271948963500029555794728602606612983909615256847442766390192777422896488326927376513909484865497557119398921886162855337451324843747599077973686853371729577396705245402874204219673478153823989835248595234168468043891631969801512460373878623280427820457484303931949901987483875188926679529607031425660398669250555154965212892008019503193869845235520848165904608109581425052134187323187586367447184789835291496392118180471320087286787753767073749506195689359874596763436257805986269919420485446065785435333319152646049477788272199282299244915457412740983879076569709137433699705373783120533318030704492926169404632335517398773396652135762373377191315721166448136027019514098117126825348313522358721928672332469132120019581219799123012261259043318346214684964302195778770193659216189920557274004875872064961392240376855758558863737857975944997164345826541569014398470509698896163986481724375470874924603909548320472678478155874495355442057089235013714443055280763881048370245876880012879851217941231028088919452369227135967104389079236712575149685732360189477569847412387607964917876020967699069279622858896588966149052885168825280988773450525524017651182845868948353150151438056392061976259612554175024862355658730559157265263000773731045646620872588671469550070447143535663755088361299793263881205716069404273281792264790667895403752023528534833070896444846297333897204692096580466023573997458798566418439324672945783882205060786725183823941576178300545099958446203281100343149224613236328217749921141389238889699237033644877230166641347167601673286747305749465542308653996222734807134401203369015459072432870814819514261136211632843016933831442070172416069198966238802459939695822022761655121061675662344983877449415414010928678625226926932240539896505814607297199632217360637512226517788853441753034548821694711809059222720206406615262227294694986770822178417124078830753313472675918071392278462387320033000543065372572495953346143951350216620109360761753396318942334432212841292687760264650156235202224956321243991938846986884053427575175279348991969673031032649452906364304133246600809722121837560877627930348956762136437792049899790679789189009934155743249870901327250805960044410857887218643183851925265165058183909099235951066474337542294147471219988846840243077272979258026848677029644095680105721886574377225942940639923186558844977979295555415776881716929625353988408425503229710441626599728925404596479994840906186576086818160989122970827531902328639695303946190402912350059170984424547020220784209241476973245267991892818354781565505594865309288971179992352677383006977903207246876254477178372147737732590299591745353627145042991497881348669483605541723633575682973733979196568517940052782153410203322280004910477319533246334243035865627427296554330845657942386903745089226299403996388621740224466893533902690783243220820579124654376484078978384222944970280576150194496356798382125403022316822550212096915090446473031589061336233416247754894373907065510423066945341478888259348039999901724245575544549526687267711004742902772003364288013636899959352233506367198574128387355147772679794105731808283668642824955528001685679930911498198770579186924643591805294909138892098516085839560448538679031887196093025225299189167360590164589125101001963378510123570735138818832642361437916161170123278694369855648815595908613438522485332742304327651058998318481938586971850116378746021783754513914312410157378076891192844136638839307355522137992757661964560897903851788088035759443736811879778681756192586917358945922898968018624111864192248541509927419047379006409985020857275099043917464352122518056627859264304839086470670114493096136485271326320397384246089262149690329597102942056095830018837701021502847384635851145301379744111412261528011950071850523774141659209164030835907026843384354688653174442518866737548255336431361109378396488206465248918972503034041400717477259120060918315202633135063986201778122101893791558586490121374225680128479237835681998017493491356680418447765445290058953222452351182690579955425227717141797676442734975982054900810973276321748781552069721153203857562790649937650222093259594763182673124179993703625294825227671095086026493585335823282011706372970419301930379057779733405175367443739559605280080547712051187774935300453516819903395096948780935693455712279550305047084174305474878085406549448560227408897815563426557010686259743122227180394613949860778416100782656745929734750689964597984232532535684784324554264798157862194492169241998839589682729061316982388779134476140608134203840385640124879914280153867520548293818391084384707448631914888412387007514786882509510885216864016268256500978051986687374371451544545004349499947488265118048834927415447101132654114343172108688309345625986910303946185297154217069151837048490994893061363480175750894989231441933789952943310810088647609692624974189998211821142740352130380100088438202063593258953892170822128113974529958466329708371460514434476472844074305885890869890155087680005893153954479254276700475024052595211102712897215191704713974510926844277786722075516924265546768530044863505898715110111777507865288354667240051784385284463042512178403298841183816354167249744940995164557525305912316003903606433260457929904082873973173197686942386055009537333473360597570736339561322182215710143162608775446194143432585879305246448619633726140565944886948161906832524459200883966185242330005109544830098582667195418196685763327362544471670137071605433395659626647764641257310734776674342191799380238674457666878937762075586755317177921135617631131625436760886315779428327025506223388695729342161332100981534296661596100718678477806976235621520696564069045379192497012849726278388698695091859948077906394281638914035710824326222908485570487316634821936052892675386956800597851497372991758150204609277169643621079062978461698782012200116100006966294013233239701880033858521128264428484016856477996796981340406422703258951962382545785383050804997599294799228183012468963639086570594717586273508985284339978666398933888780220458172140807984736846662586641882982730003587425158679294350574629777527512506015907199074753134393940022069821854415459864733189761435279243861952169903022737962688367774820222417936487560349704492809326069579481635219306959280899655830896818974543828730790087116489561549939620438401088484410861889349878676917695570815845836135960773730615773668125900204720411508239798466663540958094381026567133566714812704377808480273025337792621243954703500912104991327392171079242895193486762661206310332187165073096108785596884558762077716099865137970811401181807493449843937078502007998527179350056973520080708855663404563507113744781122675360568851988510601996084008673982692233420378726272084187461408335800313306101446993757562525631124536165294185772061444057269392289545414908571199631138948660432529021666097476297450903091787723965234358750714916800570068662698950282286891311036108512101444636518748560612173286803348518277317972598418191256666705352041490644617023753722056723278641948879831729988100279702334910877068962804860629475172123749568273267896444221923740833440910617496647084820699863319049107082955370658654041494652213029329204178044216280264353687594267839318165609357186331987681210135141746144539507477142443756066855927321945410277747068321606158833363068438558310748781503099306592661008000271340369729343213193171889792187328377902157373953002707464626503605431530976207958605789055608796998275040422560301046578372075904307610082353460671821469141242226186639062633166351690566015158156528041196046229346072755265933567114912859629544597405783174149339232117633563709012880725246443787674377363210555004451531406757946940105505132939302736917329818056546097591754874838952273743879405181076569275449839079067614651270081212174830204490659244736527994629407670331894224552288859748812324517766567646228670087926287570620736322010624454774634174339811750211351827247966330259930971806320996417141326575961649455023531613408382450936184101823527855694769950693649863057182630946319687167899950339421406465426646503655116603808464672980727354120055811333892716090696931461721568481543348576607169937460301045093261319417250876791008972848578392241114572962768995383571523625790251491295642598200158358097878991276759930506808180295124999750258503233510296960467117700510080388085852673586283389997444450283780878143527513221278086754487312457133372902487525322969291373672213358976696320797065670769146565690374486999465353874524587550893433155492198537731101366342731582222274557696242512643457813918990458948857690646166284655277710913926660318241331955532736693324842393430753906856591714059104459624600603445587328871410943332802999555596801577265608482584101094215546255849083464484071077860427361905678309808386760024524903187959766799683059732210081206075950562541584543892127684457420798327979942246333922129180439652858038727750651970230636961141021688001204135823217907477023856548943791276363098346763006970502924248800640364402714962393460038113468057379288551529495565866786003897660081689157007995467545414357433753707155755869487942471483639367056899181079399862809104066674786283156597195896773677261116056671749511573064386147192627820041306530937921489523167865399832460135803030405773806789192918731274050689000208417866633243745880464230795255364078701426222250633822075879309806743136167039533905762349801182143099612314648245135785857851440007911379998652094762374283990150856022234551298280772377077753076967544590214349729706761753075587261279940078133338145545432001534047938652532216908091778941193169229114593678197034590769935592290006644433146248470884701570378650539076874318078039712986144201269395363701754819319259062881142171659039003488468610469696828318893960317599613973975635802764653882735382222689839930878000078726832421080673129180453067946753135407331660834120120960497537707418897622721903463410188355496756225230829826981934722978964179853749474747311190924945950016120735436759129630188574074456352982394872990113371591257710883249055538600849005242020826791090072498263077518094421682988658315134855096470769435343985128024595121416651251181838650544215013592922621988824504145165615408043339215724778448469843808504341396338062842468275970789082467351738066661443063466759387903128358888001685098480638157875859113035610073860457949611647871591001885049313158725626177984721858030415497648109480508285366212775401893840073426706948193689886807483200086939325337452615034234205550509586366409443904880567176795614874212335716594801626022677708217552943741288914599045964809590403184476316845692391041163342757908939906125770458175432251205156884438092301542470212357353985673705680530895859674490031619045291653149134004150938505384993719554782075042664399664650889758842730832823086276291500498535529594905558220886253788853190636707232555541714127773181492735600889204369649464095530361414906812776383030404805775504166668913765673958779368002932987211354166681675768846118686824768660410286841890463403232625026405797807305672161278420446568745994827036707742686466215967233251778557799549961304214917461964032890749639313464466187646575389683228629561311292039308789580854591956671342073236516879324556798637347191442559406089037941787714393349801777307261443924017018750103114850487452808514732129761715152775522478448332895513916306042728139968588443397678585490230808574683377932123963837047532444008682151903762597402884793877146168902050072937940219990308066274586036721572762047348429182645731518876027185396581790249895962538982585140459881542532531393273335617839394832329043267381782005202800541516602361675934580451369759057416438229009714238688296774006686926203221188756350392389567707912800734513494863859378882170284385888892194192717281749423092773907278128645055887257325905980961032110441788170961894189720639534593268390728521697206726266146536920299774614472016655030504264101329815988164626067246628121994567062358104407517860876079367436693180051201730410584668977634010312670428321295017980283544198965050457258221264269682260902362054260503810192752165258977845124659233388102849148817208420712526594018189162445236946547771703416456522150968377713124198047512666301541171886808035392572045318230539604901272801717802609381216715031149768875902656972654691356726287168849877159637462458192568954629703569497580827944726817023798741449275094220926142184403593909644464906939501943803741824307634822745323777778699496855512444326636651648432607768837971563997424271173048149953653812870592437743964291161552849311935625953768775404460474775278551274183916194575231065397917355566486311652473257303590751926533548105052773083609673241671537963747324543779120993115982734920084898165813385495836373170584917256507223198656536404113325945539517690532597140618309590563606168155902251641500655729213435998101418562735000693886587178188937584640262455945741020390699647792883355799774022186556347064329124146124039202255380879263014688485693194226438337798342438267613288225297851375324898643075107742072878965361730534837256837160144444877587712066959041334826062178787935965033609757326444577314617961214298232820288875200698943502616263108339067713872867555418745309007449060895493135535929577537964566621797502729939600887722514540039410035364796636786720995387144330294086861958312262510076401839406493152041255643580718496513987700661090442090704869023420594568583705047070498027549850073065100090038013236053874386098625476300931201079157018309644180809892708239682010134647753255928190154616045788101706464046522817136973692636707158430887220660423460992178915780295849153347415545414458268154976451982618999203699370266058521018758561726648738848502935740478381186888840536464512504113142865108830862527261362104648476795187382943844140810698332793660648777185530419115701555789553875834763065202414285838791497520281686067554949047039429858389084010113545080265179377356099663676925496624698016308695364049875136875553338832195806539963616839599256560058422970901175692813721595135899800892932022848596257915114708814949356946808604566370787160876675803103689722215677218549504341302379115063921532088446108099999721353813024065060940856174342188529750574214494592869633439325870994144095665627421180080203207992176242602923701657966475009187974362461978571368820824142580542144595608172254546354029454640826728422345646888268084288480318316035299091923968165730206037101880369524374824110471713840717635199825735172361386291894961942561858059425331762201373084766169035791544002607510027139714795522411584053302320784340757373781952686665109831106774124518847607641280748615322557101752056916831099755494917002376215688519827060353107178754571689947292416889257720306337631621385611715584536182975959451096778654711953444625787672914520592655592761584547506225831018242288595435132121129113985564554045920938816570450418021357681119302460981713832591234410120111865115580134988618852907839262845596186847410689130231800584712268170461143228421774851828787158995473292760281394977263961038715406053403067153612604139398736228638499011179060924232950311757491810030681569037874293352566000780441024231975036656025670954259720241711780434902549149880556045040002265934243094048914767894259655515020721443479601122740416674254320649649442653559590144707448742000329378751926296957350426275693738783944382885123725906632578240500212815951098984216259074495253826603336426629713203456509933417160290170457092761908423277892368310290510477424706181289300298535258318600324132414870169581534002509382873663264883505208775745578848033947324473663395268574709623292375039221414297551314776560747059019331203281964267050864295388188697029407273803232331786069606882845001291241194315738168746735901484824049216039967968747663608797876097088128110947235760301725399585812149603987909336169095428348233308803792073827906330526383681111921991546292639139868147011389715301990700125750872071872162245397212606229635904308380635724509718462899463769282704962557518090259546902324146235733987044287091378407711630108312907691956910525984298395309715424814340484514358586707862361914690390908982687908198413962845967550712488053249314130495830054935470050758830783979382049517881699450343383857229622643860352422498663010674605370217019061106693358867888064760234468437549235939468050046829678514988853589251900259531155085769299167213832340304285905400173078681753415658302672825284909830647838433354875983728295847577702254546505975291070173339982908394467761415731368501008846763041249234486922989282442570566598337206127460855195365163148110025510874476217470602653964172212082809043528365640374872278572662699488493226971516714891330574080565698376820213811838947709792185233586570529278928488934703669975774842973370236154495304138205886907604388115794769914712353696368495258637835506451376292925676424291370428282506880048776496118302289170447611707298343373380699554274212835991535986472494251238747554585848940281987386252943048666268103933572915387843395732253505071087587399949812003570280534480453148845707277295935413420968715168972132362791300027895604733058933370148869953260967768098314895219790381700227279299860494223955691416031884302358218653796065824959689053277552092377399266505841607129950541450088859214856446301171800354377260799591025627771294573139080425749639244135872624164158932216958413575428811275156026314175027821932668794833029944000714927971671119212459870158271632903267934142995582292639626103188011393002569789626057828543585701646824777511062100294032815602240038538187812625578006479446723616484420163507763370370947425780300508314816344710502310278301774260037095417163915604719122591706520805240752945094874627126970483271681727246208393130548564206005459657354099894438750077714970924898014527037921880679212425888526076718823157462233036880455561758954507059216377659955118027671674598181443740935274996550113351971065072095885060489606771601370231182416342804996003600425680885372223770807911743045616955530349526890418280321106508512453168166745312327604044419749778490753290771132551519628999836050077359589701296330792977614769732955703823600288909464758087934937377925646903979530625811993045158851503936035301752356125485497379081079832128646023493329365399051435566395130890179449578263936350106393318483989441218030004435511398298727670408307387125214389032582964734917852159263756442172799596925899044891628499008724020220945446060997196277004644308556770942750317942867379493815888142406378127423491878348697351530294780927761167957660552626285642049630117932448112917518214990579815237074487936033690381525494274465063291653034254093873620340666584292285149109345442097872728415229642370710345216365163386767628528515037377491787000131100191855763395093939503746956992003985294863381366054942741017281650764884316438377075454072300168271618770007042114203965449778979557063201776425393711556217428751948195582601666202719323385050129921721127375196330863067740192835545556281797017184590870635326840093897092393370758703565348199038401339715467064050640960991820567492129901691549849096854323141596681014925730627666292376316105223607965302427559384899533803770462542120013114150349658319058233893910193503632782363123908272140999933066686911426332178105548683162077480471334272441439997085952174615279506248260861761655186101539751001111221988829062341283367730302380913876647443436888570045363545077203226116345347507326392691667233492896529757022850485700652030902270529226110396931579489090214742669299107454870490621923378019214996997675749027154841744216764330929046480382252962648455933909249791948240245411948806164114400923292628790511516763990730368087624555421801669692666250405845563628534412553928004283911501927234068887206936998992659409958992477455776210822492720886643159589532592211380846884860782669609856270478505657405158534303852738638543489462386563160066487869278704508474447546318074909091033612985957708932742153694816804529875682097588242298719985079649985701680853537972440084681032296107324972918791263959064026779829139002327580229645038728772314344981637219567323964912868964902585266127513800126435574603337306790427392430260307141739096103046673007820446701566025932719826570668473493990456519336917324593861324121294868283307364992565565532972688343187824773164090227244683120709009831571367936752841665997526859318005777185640049444756508186423932679099342608064344343839889304569001175546101235849823819223829310443717416824274171290765652775021096960542134686307622063464508077233971884377133062566211653384814368568638971939084754011222254362106084579831549065426599655981416515539887319263025655051799636526539078973286153431049858615191964628786923827939720741859370468922323075296314423383655418076060475443329707152491366676293714997760221695166277285863003533476757083050112191688454303119667070648918050882348347014696155287575559119187366683478964211781557751371202255493627537382892975165358496596749139702454486067621861900863861910408360488995725251877109587768880884622955621797859113241270337410011235288631894342075680734575097706621173748450173697915787270998788381917219385650432962065526882248348005532049357700733882772439239088010839845467289039217275892699329679684330512609663543447869219204552566929168198125062448289127591915746414483920629040204634148087073130159355299804657390310436427877990845763931088888934999095725913527872637861848561754334868559433365177772301557191941115411514632644279344077297510208438305851288293408390301892285520950778787513628996360320925359324445734493497850437656416226509289892173745434628002133405493346884921416507288884289510011621387161372848398729379453025972514542464680746507847661826551427349161718002063208848673267468840343446552996228315225861050432751976369381461785012780938265122386159097936409900944207124675989642044923110002487565123772936167978887359404836428271915194318944666870048116586143736400218992268350126056733385101550608804709004577552217790602233554599156761191087733362559335125261459695936597145272821757467231327963477118583820577969974911071036543012119664120232984527581002649751050279793045119623818973383341609030353951155852561229205876867342389544687961725352353482066565144464768334072360606399030702933316565502457994387464820901346757747571441895831177133456677946490216148995446402318235894371711611466778066371220235428894650892907503634558477745935652733298723247510795473074570852160099897352352205450600753296871741460555442931755916198504711109414563395159935339724254254489490680930369429727980900188241480736865223422563791765051139139052756415514802718822022690852409797017845333930555299480400754311250199475419846551417698366396756431601444536042906716192459848170893736130388015921285057938227006393847544174904977891108408996458839365102043365920021190077481893948681756330216172891434463414772789193137744020364809155619989385694438351522838990989967368423854455288998450155584314560816012397693036916779142045668547586887452313791613017678577298247535131312156729475370826937760968437167598407464547517645572533421638760348387138904142706551588242902411195609644147068658140235971503386478240654583705942063104539517555974021072317690940586394858510764345530789641695159251294302936215868115005950722436681707752356604603361751247118232903229986492918469457948447403613880205783146902026213224269980828185012900022200648702806264838661011502136955499844645152512276067327920622771118577495213240360590852362173779930933071464089783789443499085960303849895267876721390225581440149318608261075472962057867709811384830986713272747221621172359267286679292534845368117216299261806914560246628529337264661168410684919438135777323415940596524220925976884596298897977636965113544708437185112058152931660920936144152488514865780444059410633519395744091422338226112962565476253333998610053675358862083861558262544055987308108140394385374960412295931606347575863453298302611876825998979120676252787615670563599843198630131779467700643573055223267016616522923310428499974542718609021059731253258012547895812621270563411889534218680981942322567892254487091012176365524083394493886339585117778022090817996197556326919400622435966760080121267564319474629316200390440287271767748191635250729605713034446808232528708973945225449526126086515566015482613414368393119446344717181525349706204927418500506356726440847102002725494012040728762160682429238380034315226447154371720233171252077599256846965842954760586338237783008558981756839729684381500529093630393738037255362878089820541076605838639138553300377990066976024441608926842886951025521918453254789143437927875025143220969268605747577062032022841534612744691854937262251184905845558002469685424834411845154928866441604365727100811089287619596779484805680020565766967922265461967196860970365501101160962243536959125064142403113583020815044671257808492586342245985677179473123645701932752637042314400036640041977087027790375444513946403670280070711424209378339071530289296204923812040238805377271976983911562543968126906535779793680818910643663053139264828963580109200737453136381555455570159997556875014456545716170129542090088658348518988331444383136771266244238614597613715548804126985705058187860439809163005369795004750466037090980450519783047777036474984995003890145008481118232766136132396443172108575257471568788337407834461396293675023189973492326561869569055862342298420550546850522218180923862914253500055617465120323148548742687618656330060406345855575445503364536278465722061126235084709447671290907229285392218505718868697226829555113244279792603319571095942691333657604948169989459907228387599978349619872881963371655911519377876364982307210542469229893168301396469342720566279933239105379764073513251404438897466060847390889536632349656703848234368908255759699122662933256657903553972431304400225650331240652119581452364022858159994919653025155380170618103971840650105715886010772349044463758550736220383602419930679926579333628178115535141210235469226625737115786303852291979596945803312164480995458514878122726518831174003368879000431642526275567257947342109713096289863390045148433594311512052752136680889327113209423418015457203458026919520481324198153552145706464587204721678124624079596462994085695574467785735348543246522397685214691020324148995543155103909761247618423558692275480456304785646770575401369064767214789794359688574871568498497607883282877988338583158912705085621644591476716304410310553894606606121322039105664173738830045352965422817217012162422314469493915335440791698478055167760381120794695770275326622207687531302644277765338770589219852452403107658927100930010400525576915085161342954081058346492025217608402843172021534701060743067499644974230460039924538781035078470969193371139859374782511981958559387381913177989229032583408083074646770040836372056790373045395484724247445830953797166646215144634002895667930083583570342757237281833464701408828762186071529720860755816907802654360116061906726922408998453605848533674006770603088009238413048706331999933579118089696990920466765915606538849485638921608527985020479283808798858132536120513077203445753069107255898037738204240078801679969597454625949718118958449514185368378679537975928960611132018287570151725374691470476597349184943981447372736898154244102306460533042737256640150423234426746449273770759576013973144579235273047037478244045407484451515323002186569400342636374841202208953398588255415681493445944453880128544655887466006009590393515848974676766964322900076337660886665976430603351949395435850118225497080680700994840180793930553585700063243282621838040122386935063529303757140746456780125768026524662096323868074397439985970497174595672943859990999902456953240076744576232874976003018594245027534165431257103463226351355902960855711198583456570768640376952129178737555437409744465386354961316914037827345382392159351544254910788484342735336935494991805064144169826546086290246268523831801926317002224659421197533057052415668217680720335834710050465777749120773937334527560692205810725188787305053980236665358514453960444437395331538006011067666842192887010494851991982315409264645332977326020383975996929559789088189697118070854404285454805579893536676222792698565844354037344801018678818180264618170848060505277769989609450367476543892768487016896295530642254264351843659770759403987940315396368172396514003015062440636404369596669995554586206375293338903114152051593305015606674342743213909911285328985909163704630240582369019316539053342444060863813626010957579000762206327925289270848423725684512934112507994321513896232427104611873590236773740950069387433404348994359322471121193761827756962860086185939684656349305956966863053838790614039099378540771622777080809253531983884011626206577036936253533723821601154311312515661907349564210147343877882779828575089545676530862044135786536823967126389574849435854793671548751480650900106006921718531324485951332677659650935056975993617054305692936695609506211072861599373378188396543359686126110030661713290005584423244313860095076382997615701715702328979980090175240085504708607794526178962985896322472116275438398731605372654144101216911058318023271859097835924403182875866085549207337213848735136320466224659527194095092871478884300152115903906747085129721313775734543229213660660710268806796870557638545287582492367761031937995625003342636463597729749382642809416534192378162182552268366325975743742279071067908553653670071345100182475285561100730614931202172646443752978519198762999545557414632435150863437344506859332774674746227735838309609073108467746071961370282138353641373364679784368728523271663004722895383008567194736538978318744270913823545598088664690564927581287585538244659374545140448040470019671647545521684999413948123061539648041064720072121221924588349146695556931846759055261454484052612533835263029722922335613954256059888523734451358914217194353162485877300597525216825013224429084832830640285768557456548165363751834783344576471882087649421139548664238544062615600162113994438609297495718045070158271927945901505981362257469204134326755524739968843460413881099326973843653928960115294247831384831837469565322101526707002003003599710326002531659703263489667076452984299166961588682224040378698021419191645140652272244643064481191824198890843771271757916558697781339196628707370462262081722199952018809895111535090156537387840836963494774727881138385570639983958948881708816114499264742391694169396821282725848856683915687722191081905106868305093177180355790288110362402094615134119803792820401956383049578672789894554074879539386124082157004873897235476831284814800470648038514587299765410254096232637191135859924616628623301633977903281097731657146080278434921506565032275270096393796096401737122926926263925897563401871138113409060809217066682659124912586406487213505725314795999679965007440620975947426170923554205427186015988876428582666809389052782500426581928224720300829744998688164393358503822769716406063062613786687793134821239800381168736904037637243733763217574618103357151466383619918398318096828873805279325380901446446662094455128975061554023857235531901412627410442690505049620977160251031187612566484604917726157939094868949085652582689467873673943067807115540837698493570116819678510440081797376672261925760344849220871753213735553841569302500422631122832982970754605143165952591945212449099684352248310572326683218257292347547602913111845537382842488269452399788582766627159751676227154988090536055814873104654160007573922384677373268881170559917022150999333061878508980762550599718417438507081791241532973284878596515893770414905272198401907221937074290046076895323104224035008274238606397672484577973033780345617005402621690433036879454709156603897408644659712408537431116999373932510774694450265970766242663411632428224841739562718276680404886189745634733750391630953136406128428201858414570295690934123357586338796226328987738969150798056573069496111617019817784417229052441247203579699567645445289519088427332126129515404323983322027195043292283520462818131769207368683000613113974487791277080267453653224417404995482182933611443416193973215680203202646081396200925414980762997761628506959752392282911688456446860980233548977450726340032788454490431893930638703837247949238385451936596949834379302177832548796195360942332588806756167276114755466090696948866071335550263544459621403720045122064372995068170791866944369765139652176595801966902173406247112293609810050149932459345997140221922629924590286268170534183387241332092482777358853826345941381095838665884456412256469084504629442273805845282162713636791996257106725569046879846346992685315562142203319195210770865427086505683201216362747207256723350973538404723990087599609838272424741596633247394258081377840635006009035308328678761435546554079757845911334273679328828141801581327319454192228434320343023239464769368079851599804176266614144982791578958258365500627718572754651021135431741834607843990439396049154200697890926369018499008256448070947865498607222241473177643914288086963464921581170247441979318728636007943194595548580057402579710945855197668232938812095088371941257563727890118133052689292451111128860575268719568352621494986009953859364007723265133319730634420040804338875732345442231098607098583150501657347465579927676853036553180754648365360182514854306029323099022858964161775034395986421278069700194984229793206950393618422826062670921232546666332707265039530176464349529917182024482983353111479437203664680140449296439779770004865568245665419645174033031919736625846759562849684229907683372480642652464049433553703518011268628823477298000786347185757795123412753156212879187062575480963066912761781451796345122840815438470376275560770411586275937160220043676337088440941427143140526068824135870536956853509572930967805185356111134665025010423580609290379303266360444859718624061047807343930486175276543133817032453742964219187061227988862891563967441587889312088039640959683851526488646816948943454010822764151290658696410192513353483786611070788103762522357341248482542382560356267509672759060447345440572607633157731108037207962144932584882414377377689906949930164002811107615550504633276667742518408166173128534004174989035421201009601890221433572634984829178610248561321473527733851916186534626278948668697411687700022379998039880617809338927150256034968564984166488598193183285689883570544266220527101661116805217155483072720191358641958844186490337325759045327389699586689704337092330173503137473024280258296821140703919225817692112347855613217473398494003010893432681859007536940950490357648682335672636255707224427040704505954767053414337804991177261491504401012861408238051784628077628401370148974557414659006940432918959080659924685212451012763023518226417941863976509209676036340868792470682894335244198566445436611601195676404449269877403158360326271895821743943870981499935560306194077962820751986474741951569952647610238929092507230427004710671359555348964521848266564562872735277423497625537806138470452280634583833186629936175084261257633428922271516067929494844590526817605419925911959751520089924280811397904872251250365314704154210038149032388989884215638954326653871123599143128977242100808889337625720792305448713233184821205852049321942171036792609873571682094702132300440432131228151857083289192444482023828844095235197427505113512830767089780440378772420242623930790091251166371304178038894979970030861127529132143951783210585046398262144144495454335564320396517015943779371817622841318068625207938116298712784784786660649192450027013228659515541747679934758849846074972495701200117939468773395356355300974827476832089462552242741717741704159045376052032117599330288523124724816240140000009312756142277382681547705846051865090687464632635231180670404307759996282493728155018368003430196451817329296557435838741635030380902348386035949604760660218364509068421412095671114163521342629178885278255335385411715981065455650656955536792908927561481274752042074793758494392384985874402030648783682165436263273885788100881737504265877455513132996681701752585951797106940312102294025448227815868394763668373390655184346689249847553290385608179759652100591425953912740766693985452366115058906818584636868207640791135896772064172709795470586222627756528817320699961198136347205655648542786142584714835456073797708697346697242797386076137772100926712751937193040016000975474821219078713124072940472937802936112547103992982285497600904874735309074921702509722835045624599288492437818556476784482960753169122956754629479937324400170246115928413964849887168779064084575069747798020621941123098549902172971139957083006941358954814622732976600076185389440595573500569613420119195188492124683433946309372590398885405922721402611561217529690437502402564186310453207802439157597781943506337876930246311797056444350249022961636167044022468508532675227687225949363143686337584308175178152412701214130018105269397955333278666436540223367133598524248925361985808039604327169006542840213503287630403211722915637804156392170335479402566500461395690552234692568144910595545349904600195336214058138013516719369860681996814393310839586746315720404320146617664682224729022113756362235584407220062155913121099050141729351386123969478083108721415380054563629725749229345777853507613581138334931909796574307544970482681581978899106096874729245434343270012941365297208346266633254988681501267620207766329774412462470402908219402179505057562798428616602229848906189429715033704649000596383210392120836159884239372192087831024913443045851807621128373229531262497814800180226651873500873325844327175326128240655465390450048070058827394265896120390676078871121381307111229282589013348257981563448515132581748173528473240544132911411815109448063560609576021458424196274324484252981251646783120092485703545457019108726658208116876898867990371621815741460383656417804115537227379087442277664376609407741883410998571938030196135529410831851690018049396721254542056153255590699343434977591656998246913438142989908073863202834717730243221487338352974867638762979409655750605291202207453616556080999396250327550099355708727896686002581010084010343998301345773901986037326042876312312047396203749977281473424607320726453734279218774817781546850797355708784918017617166332300828464498666248010188142469376928347194137986861513514001965224855522478763526120107677121603573994422777476181029243627008967767692626982190227936480200735711775378694923843654465603145393406796389116497450296707460890764388762663070226329637136170704769614153054355836637081928940188855384501819694240835305690305994566254530616329016418996228321446515543645937283625374650089958820773076711025477084295927590758591953489815282741697088016356054790370071184580420109794475780493579127066170431401273587448244179564245547683167549159212029912045529111223408462182801348746574908654456647691273093756610684022144154930568546111174661936757274750403262066258768009638706135760021928550109044313156527076192261072299484150092498018065567384932604082179452970656260002889925315681495233784213065451947123681895512530504824213248568311003370065626418541582667136781929254164461631515960029341467984554430269196107595747888398328909162199720672960779048731647848710442537546679983515337587224114802390023821120254853775502527823358182866123859658338859532179217970100561720167681587136432417745677031555297729641157188814994123196510325280396223323857966525356405557775070906314447059004853434370338960970160850049248411332798480721813398420963176582147107298813111645379947574609053900228785109216195851512030863649633002844077587289953214712728503477684402072178358677778262365350386013352367387899577402260371117889831516904479851911498669616999389438773011352485857858333322021010057093756617017881059257810990843018562595698670259655423538766720075780829954337372814731627408318783678359734810639243833221521054231028675737019018853919093390161511982181122191633227173519323161427052173766028782372591804682652234612936303709145648563387588063299469415906362945526432661769493028743840196055356455405199532135358272157617869066557950277586395339683200285535349558285695510355804280974211510193001210950660815699016154233892672673244506165430795103592263587484510884171761910194678412511074730022542934316586744981289112880495705882089869932909054615887812380691496998309816485618220811836836361554872095833889744249396433078782766692123260959211788753071219611836447346903220448458938694608904730580538354865925530548927372611228167464825099697178743348677607271464735783521215048483101676542635099182648314533479395820369510952842772228824434659248710689928832564154617540782226038940239558525601922130737467500783232517609089163597880935793448966469744533824482992653271620975790346154253135562717382563601706966327271909777789938730763406436396775611430289271714288457375752119585073189299466605594120736676952693413969533584681589202094601122749285164487707531156634254044782784674596257300176702411571706756434663701055981771972118878920959678661194264353823368410277358402811036680281808164527540775995564179582404454171267234323039698027959408704583838919025702071363374956893963515199194617819822552962504745308716702979813245897551419609446531721343061331609490275477082587449269084906424278435482084162182323144816054734645164346047497533334358445968697081829355183132074470390394465056587803192785964402144762250678465722253980878118618971928549740148234858741135344466755318151910362541558228135276708915863399469718070875347822659135904177244345472234276722448663405970143824846220955120902367368891522348448570080442564124290103786251199395047477373294173758453345752295525202162220242507226600528428298555679250947162580565108018455199383963027614186604333852237030028527522647995448066867798681904150321140674252092714944326273077286977853737940591700914970853483632460317122800432596117998064438720065540096696999048232130242968416561654400841833868409107171993016398031582184203040849622158567821616559101758854825334192859579627122790058150048180872439941313742354549038753712686191339056050294740639947518975261702300019814405239747773475978094580995631071017259054442081933059807148474256812417105746431394379582207648002979984543613540992561470243632701936419365858908029868428619786739907550310094810127343724369289935899572615600036079454084979840324233696742701568476956914810815608330844676239792559248502956911218245085406789975476089818551982172329644505574367375836719618986468505440992517539896300667366738987460161935317263822648878256949088342778049022259362498590735328314741295105210386470352645084881439892140100117667666602723788670451849805499627137758177278980556302839155372356889495579320853017496894760823127811869986371217325670965078493063491069900880609850914905722101281953439524444457746193638601961840746838589072380290010898187235906883080546829501328505205988153574047692102707476113851333971060149074447141852465851637001227294007869460832085340667255546245083783831449974292449749375183042509320517380016979472975292046165787202417826971562702081908216412929590357974310989584077412578079536403598766329910768381621564825215891758727190105740571707036831965595173350021751599702497973707261488868192298387891961290771324950440586855440504935681774407227524025263708480759760293432553019218835756526075351393818319955473756743899489213334154440778777127030317555423576376959520436921636594474995264142725764229027898528661849378731072618432976653088202699297608099117561921813985424068960907132139489534168831145161268544155284481367741441563001377428622319509562846595391317047708309132222551854765328244062336118465225002616195979625318865627965401805548324019553228159935103980418785288714784177197320569284898331394682457976623317419830190730101864344062395493236819469587499996116633726074144435980538133282242960084846653686946613366412397269082502116591460890124471318355136694460078603805467849592087063230376814548989271252390871200251432650732086671570616701957049584081430060593445515157498702358356882327694864406087232324748554017227886690120198198247911297658408342324794264149892250333340446525787851846431513084731473816292220075423415561959936172702020088977908323333886070591107447568371808614886744940447240203603815580511496804229168801159792734460049983997532521944292549062093026752973685952109115931471682514476529281052054688132698294942196352719431603487748669530559274451192891556621648897305969892122177220467422099172685050944969619239079620914534023304064117333914761684120290947413837023769183922799818095252904042410418629037569056671064398268749779128360598690080621413972046557253885455831550534996379071698757213223906180199328414349957541187783874349073208720826946766231774497120948517640835017621204327055754949867842231779652371469632990605870499704302811019824208668349346996530876482672731125644627036447786687581673961535357775933269946550034591680908132471025432187727878373688790148042064006759554220332281175949149664537605833971784722285662272441309147847492707435914252724740841190374500895577756752947724589729495490440255679294929345957769581211191651910386959406870201708855875596589619472588454512218424864560071605158392135172318953962367870807680535573432822859299627724441215622598487588506675925005940022476043492489045813244977800005776812686255188177984308725681181259491710338461120750028095171129064990885072979191532148460016770250308766539970444182203162510162517288713363073607664387930571500524774343582093914033936246514304881187894298338131456684994064719673030505533177517192402310973381580440567967004466836186526462919983345273092008504719958827497864042986090700520647362599439320836656609237424938814276574988987406329081297807904867985158986354101887743628921186568096970329448192355933780803271918958330085762559841206493730824233257342153097933863711872542662725303244474506223875433968660457580567740241727975469706252184546596722087447321664596855397452079691205921775985165505799221884993531053226509703561169896222161896235376506694662841873753519434731347633265619138075650556430628035450138661747415119311280963131050755398746106572746048091511682430769484915277299227079531595971448829302232470771858704083495079044441319862951305411626234090380198830088937462129441480147167183343222600391135122857770458471535052624912347821310995421856613568314900170042778726967583127115463196567461647737192287029398930631066569382455183010663299386230590776306551286330180299658061770322093382998071481072655367260977191407396258479511063658545172032991472402688368276056701308976788112306219576041280227255671515680790198567084949841631271158521686542988935333597905585286440699378727869513000853615269411451944380123136964482909880498356517138837886222111948423774301803798688266954502149545558681370936795925535225611964784514261327040319605499915860265056799036744201495091517553700663001687443283620489163807130499934006459235780549138296872172986178482248704393761300098911282496397076743091168331714791621592869704294256421412884799492045481200051891413107112532122513442948002337159615468791447778828468898962653577009980724433681819883024982393200222398699991266926333043825982633605141943778765811550889254219367203969382306952075424684113653236624158507558844551943712659082722067439194473186949058040570920014557393401908662920112154113717644503529327637259803619639458960086279846531318541681342135656502450812541323338413959483265190474842595536803606819149425522540825871498324825430884655451919714135764121191946580672593938142837044754585917599347505026232031029920314194946275110814933083627311298288578217095763368117709224284362898624719236579799599931501498140271738482788560432405607449120072493990865027517086953379670245167795196451934383148226180338559548223218465176723333407361161346870219751281076109634176742149600209505357830819405356255115001537446763003364158088517928160324081089967420251417089534354980888756061596528761795668359327963058832135027143247568060765693149865721400090239057904884935836508852804978597345684518297365279464525048074255320725691322935007575305148649382540359624587780735678281228269499233901658025664069730085078577812783917163575055366056049584797988453100914814433003861256326095302978346445216012329233956781298153271290833549270516385965966922283370628026017427114023954475299490630518812697953610168390780090578370814695738966816905972797181009463747928430690033641233717771576672825985114902496076841630464050495162314367159441248350013456540093172868585442023157213832855949919885128078660069058386506542601232563117076187576160985841627111293853870636752806903008447479654021605247645819357353573382951351851327097998315336987716668424216778195212414515168619999311294697500426404843768477393222595892892739818365811680245363745909911283724786328758340275370566586315243886992042157935335912390918149328592528714174319278751531137070748521199335615272066681761979728197898888539267532929233107839856641599324056466971422316740525167438965179072992238017286136433040258082164156223266367885656240463346079642485577763501078552102755901595116182821528179175845774725568633532446963412715942459309745931920569831441253321801258344561733347422367480503403190646037516893510482452322114651450609707793188604128685035033740363889912831806848403742840302005699485342388021385358732648305178867011822473548428793689708125589713189424283901564838481301242549642220845267204759422508492398197714419202754739700495497292316941630143483723451567299787380031536955040482763103248382099269416202374923901137805567669348426691828033587529513985442043628189339241803651779031197298537488832411603298391709713353263132279510085745456881155851825544413740062389586892081405527990232594532515594055295222716990060548652333113436800977123915129753473265163159026196063218271287966533502890727473277889990461891818305686652573290791514515977333783892184045826743893909794338278636524550006181793496006976544376064285938907075518825707940642841272223572692010536004863567034697314887706883548440120958915280473044636262243156236103592792688299431793515771061188941924378764131406020821133217886643693542532652002756872199575691081694084868326175745924043273763316566315600754431651391523692465023938207135111433391989847677906742637953906491615257101266262080775979257261043088080186466828520980786610789479133709590567682687990679716307877975058352386870395128907673024022233089035047191417686674096057178510690879663376463613362309865240739699029734123509664976022664376776788247568866549219617524536083513570520946819722016560706221034850337191059912450347868470603682794306912885028085096182128106332965199908586044469254848042045677468827263561962914099388074299882609752316840901690681344184672261708355919080635315993007243689573023105285906928191165441218567180628979455852597503272305765027650013463784064044376860914138253185478867938964668720178123155723052410196957791922882223200910669621921274459714566136415003464363870786080718590850196013866757151335149452311051874526191198785843035750809199123042667075797473681795149405302932377020265189523705457995761301928594922241915777840974813196556318560894428321197577432216684223348375292302368527043705365540162243896516620168964867248436500070642668501241080831050238447665637703568848929051601557500590793660444613127075509192110150523117255551057800009882927418022203379072435442973792496086063716737394320087503056822363312852326982791234355988824357771172585375500264514947093229650573064810220068290896084297949506786746773925944011499607271522384063012760222128661513559279367588467507634553628032999549589203872708109098794065537648470355423379477189955526503090185538785206670837558424509758852023588997854512454508386215731643671970340287732103128083187403042732493247143064295538518675878175654557070391403677894498448714813148030048153646632610940365892021689336760646844889672461361316949103075410762474629427990168108829041899009344411257855561790834683677401710059277335421856501810718355378583034878414318328167451033089245642549175719267714827755356963415592023784833647370089623541662449413811103101050929930498194287634320008318031263744659975680985145823233751545008813834429506776992133716625055468449222934124595820373714924821415512639752064589979155396430956622903982350683071796687762350951348006275868886714140307275037190861138817138308756952707956972676863457690981985448883178594718331449561143656136511166460454631384359557741277815870185148404542706193063185229143398580575969683948384631809103821959005579303057036024974895853430958715442318327984706050134667779642953085819498851696280927430959223280574511602748085237578534898769563482781380387558647208369707869907829645073791780568409029199956279535984900225640874552697615060184748304204950476667992894738252432368447020889900336120135688148751779565235153430666103778272575814434042278320570267022395118919541465733179338735368034739039044027148949445754129040074090169410669184970655430259272571664160544141507008138500554267435225858639579216540136820845107894202295857935436463416920427268005558715659661680442819273256699337971254795972743798183092066686359053993597684159562470825673366622468255434501257273455757934569052576132916346409655369780970679545186893804392109069841564825386428659490321637211682703974277766310400123417994838719683662948427117421001333954841342616038185541594497632609062694574932266225204654484010479765245455670788358490553463894773848949257887450221166747651220874456539795742221395930489989608069308486324638419012677698674859207722114305176635314484479544087704631104606352662609069182939634540181052755654422869848357019302561196743840466289663111029880734454195459688560251658583242675878169371012943608946121216742822167276279623665227121841585357610813510260784235940516064050327873353970596207714990010723741522737567579041674939695023319275602157479855790936018881049854579095105623027850277887286234437421340157493307505585579854957532097703612103612125867793519399304673754796069914848191891052529773907178152466455530182277817138221133629346847220993508988625845139133047185813743999467116013684232088270905203607924269277393247782271163445433680926965181588817120604942928194090439796530274288064922388205745652135459660386826569785988680009129079201467059433149372981173351745021092749861836756659353374077701780755480676509562630335979125422103819974145020195596168212086687424649614017141156338348223652480320170731714181914103574416332105234739845546801946799111730750449761192247716925019604615371134279791351329119183046782391507080836171276728604251895782635668840804283438988445996072786839901328682602648453943655372310475101412084949990952082696561175262874733717797204901952736783239381943785180537861255363431105314729842124777414180983451610685045991097594358150396348324383507071926910391543905870741500240712682325245655091444019264373661842029654146871968550776276659395444142049942760206282815576136680842723737684291048591520215327518873306092892932361229639119178013092406502791956934190287619033744876258392966666875221270237160740324264638652586981394003268405396401510778959150826004524819160577714276460071523169579368385200324146776538135337599469298114645063534174539448971240270702516215401601536196637835471729269454440057420056931062414169177135714144140374384025684407878487058060656802938936988090595133454909697524030729609099864940352422972278620314278724274379776245735084102643882984233087263948522758560100434080741217426473172885287318797630763081189167235181451597139338894895164585406713729775022902104704733257939139170159112700838698474350498720259294461413151579504765698467995936346936711385779740002140461676915274081168019376680645665051516833202552633804020192339388392907229702041332637681447729449195879101778197569624512220616544032416238002137022519927141781975037612367892997124290800491686163509079970629838919597284143082316000478111707082076266544197079116925808782244994084755776437994490617487325039754341783945596242719241717890306829234943417719116874747267036484975244011593069411535001655211137462785167919627239564853584439438410644621159148095577054215951412627652077994646792372983394468618630600621812924878817019232678583351747930262970744737821023580138493890254162973627486348951412034933160697084323651553817800201303461330247379243929025626466062142070535920400895691731071561437407807104288228406201164804405836925206167191880352996467724993835915839275202597674810290056549546448871208818952615202185273417763465891476705693748805608625352873383382092935060192903077352874945036647178841542900652396707691420048662298303754716096608509592975975660260889885595172900187730329925596765365419191986296297241317716580626054782459452700917446976530668617333041043612341817911779817099739051231378349286249745840492387658931747227374213797506804441380370540117576145461441698593819406849025379674013070866270981466214107908754684113580198198825429218335740285970992814435452290624924301444162703875048923824042822242346992907556217102619596677578340755990933903707639185710247631209064032237292777323615161564912348137896715896856198963545830992394518785744909325013724124310918699559304560878420307783539825249358952649075151719301982167399788826441981165382374371171012009788676844049600204531737955852271723107595837549776525991361725321767114780473704339014276017546546112249117012808258024381312395363247281344708287303459419452259358591441744132535380362244953758771105803578772458785304877291650452960200195545643737438644967878771737595281031140997502012262548958550949072202298066486651049991986483458071660981742049859405794236292417004942956257328399769567988455963181447095633647126812625258393963093752934699477329937041175115173980935436591388849989287427604538205950543891845022005397001415024963884468125754473397594205076969544571727618340401100815676965016267732893171810915219875463005349306727722493341899157252417650690119350384341885273179140840867919854554702427674486864288727517205223215237886112784554034959768769570993458617325837623394775070508478910124737173957597456933306601040395345919779819673815980051086277159028381283855496010628131933178822139049264906923811195159719158101162538532863108597732022730450461160737560523819980381564762337611458503721165810253780543696587264892477534945989363883947003620217856916860744226969650770219583586150596530858484610939147468222245220117896463262895271160995521874175390918512870513080564764412181779033506566900883291393523958710891066537341417501710044422672259551576523660878891305794679121740455740134056262283896732564155030288596867117601110846681580883348773712804940327951807612390709678620439291441027079942242745847370830300906047115495776228926768144257436331726549054012366594436167771063842976520191486166007587684582961104367218995167753256778621259694623098430163049740713317472173454376020920045587076010135742568346891725745215828290926367910630071917215789579050671771553998742784218664067807329627938673874821294162348291842669417792794241168666065182750760301467014843260320506268380421656945536874391154813668570693736567128705708324118055560220707170000810834833505706220658766104097395929425111674616284326926467401538836841170105911492803793767653399577953215113688094292681997359616485413951689460283066215098643695702224915371359641403726528887856731032096851939720941033524642895389293806999855054165597178243573186035024096031714633268896396540817088694037308500130393180653691094791815018518833190132871231497963836417007168511897447467856660912730470895011692037414624020841298810550908089949515069419724178727965239241138817138770421503643105078953028454884954047336839351328860610989848299968963912266424401459183973316931666935873876429293199902578519799503150385050092549185157429119737437698701613344065085199144625163931598885339471104700659120016254112472830477700525823708936964399343035994031400200975841990152163876134305981952528550139612526451887755933742160460913310706267688029286910901365918422010734781145307375410341143043995877601151897357394620602959957472064546483889919400360620380806221706970672606095006219537631397255969383532479743509614510323673386037647701299152116800219917485830192564188325787241244016609939771898652226374365256888053169227662641868588049996572296608875620177824626893006173182775631061795875443066076116958197746832711416233249691169523250070454778620035049065977372709608857143083364932649621297564692136236136145093811999167204713336350717148354001400892331994692803465631500750765601623506034355407848006105748194254907414145885152736709260826425271158570885250475270398270288560116195643643407432784464595822627633925984133441689388187575391684811769931052575865938760137245557366196268952822901091429497288824322483080997732703343359410720681763629229503674109860536457739010563422783947749324543007854373128726362285998784508717522749528157090170014815952340430604012544919471291810969689582466580986518357699869939163276394106108939211166917123664538408567584701692055323208657202338461407816209829849840450134814576558697477484800677784931560945554392130880989688575671283953956264153536373465054462516019796657720555060246875483208264932980428888950143542957778651940521506089742574247358449277724383447025370957042556352221221475285631069022293559891969496410977471843110374458902299335067801589773195251922829783122926180726178708419708498217125502618985225968952770676622729663829972570724484361363870818053803100609461915000183819133571149729645482780817582466060998279752582900080751609075810239948176782296796019728965965936590158499468034327576395645657882227785817763252445282058826923414706566929010160389167887066673382400912044576873320039819010633548626469493819713774465912552116246524114457181816516722941496518342880546847328647239912940718926054170769619188841823133624908051255037309443019505622546350232944829835193355848348717868067050107808665601131326400281700692750346301688537339780363346550349236927562811063682391174555608237596080851410497173552908458909515562421368879825347254969045212004341814984215499389444874488387783384509718615886627655095641982176429946848821841441644992572730664564141871242980478972055922110836040501724866561845429550989586359349283380708516145596956675828637949658010087489814699660213014181187053729489306694787375969962950453138887968038493462012877219891909592526026630442151971340447018989851959771695584946110027684664888623089891389797288971086294645101414401229302196386215127504334307090022047707558061564700414394438120246991995592458200727744384651928788986017371237698884450453120110393387987510260439671539970307175410916497966983100649922532974069507635936894448242466340814498692346048240292334136709602395555890633339519256213021945163013395790046180459291017699106290260485051967243118353131370522101665257922839673317650098655132091310969111368740183366736276061171238511112375589422137248083714671145948945226903131568038995500301868194352286225646916222419048594859630224551121366391739991509867641548501391544415817544035192115558119674602751689087512980681517827364735176934667452733448993939956446300943577166813197766356251064621532451807301397570684127849117851200116063809788893523393433900932325772811252506296337439214142159442050149450508031180784790328591400381492848546301697413891750341374447324295003771860508519651519528114110996860027361408034190153003597689749360852533836373762595895548794785067061475229180764137113318518163249864545301186048039935081069951523722313812419719784770010717211432885260828300500900102829232106928563974066456280870838696199583099376411572572080735930780158528365456397804992889653780702895462335123600878929846223432015140857385919786648071415185557233557325009422875684941737333877998425324659873814516756719591206796059249927862323752160864701045369772462623812642856488171615157381532051378832709048780984409596699386618789247642866058357628162626500455183291597002796198664099994239233655559345619442963763600178977190305170167178396670434524317389113676653908666200912936699377478377872757437606504105266405646665862296003847165989416299121464292451993354078377496383996443124354357102721018343107383972133348365065737534189405392566128268195347469982080380220583725683147750519942541949971180936872196648660834360514283443078617359925451076141494281743516787811481733399957925014487113793389933652696288990970775325014899110518711577959642245398705110238180519410274068107750854581623086056637608152492804838253527320900695987675718871358679910959313327940765060975896596250835718146376112733470181812276782253486583883634089853750954692976904382881740361431997865846842861317318945494784606837237848705984446000735225818460701340925368666422441530766463277554842399111391746205668663241591346630737346367444121151021808680829479357954380141194198049404742198435179980800311520030923393615322059086278799548225741250596815349322122404475551349862663515079820114482264072798365337027043610678611864412753573265669008351513550447138631975759383797165081602710203966572961838673354474565962492751299676406581655929202180773577047642767815936517691858392526720559142300790200647467134635266121120763756536086672931854159447329718088935739380053392035419752630678753257944360287455747828266374975723986557903425087675519017832942165736897412139758904108195152067972296172979363001451443070389996041228019632727894674984261387446409410474108078976792540391786778544352283867265875806337193992474708110568380760014307975029895717557475319214477179800812669553333911944271469910655940489830481060712024074219616320197256438795530221912104705062503994233047274428322550774909882088799379889709140114628911415429988694932263485383852048323527902677398212220159552229244371673402682091716785228623030923953808301613241916525918134345752638823280377055163611071361038230568625594880990562697242861374702282822165300592104824171247767760543680104447382080824138686861452102602083546695738534985565548099369613339520057439251501068741483941105883664468838731990791179358645513352515978675445944044316042529758254589395549654632531546882611897813621667520196007519263438824483435031101665594824419750040514508854740422341064072096940433276041018184000925146430348696532660763741048128510518329310784322271741789140662866145914119477953093915308441520202686419823017090656516770204623985836582101150001254863535422521351363176587416657805278030647767839062572175323106555234587578580295583714280558844185291178090889559602456134287659773206937168471896132397532619272133570910680907977238910181258555570676381338103771929672677052178055146708548641396007647864252195190645509221453652310120061951131102744235805391447218927077030584436631097480810891493634502317960195481327102668633714184935482102401570750210788249670398135754200301228828906643643490423534645007168085815504836031033835447919412150465158133565463302473961485176334954432478488327579954708443259029215637875297205158295867457056358828023335555545848610502765308182626994670578605020858935744333296525748157028750888487685763548432922562926041836239525449228145099882008861586285614463931505801900023720881249573434349972562666231639905846490546072450620110403940769037275919734528047433879509971397553222356593645822497014399051286231656394675014161698603135552895695886757528189792335482833352002344624303270966290344977321724668470036668001861192322512324341673871505879040809330662440662410389843648751961434733332475165218283239206578806488738125933576270122976694395109148218630691737506373658475927928348369486740512374877257328235839963749326006311114840436857387921391137896569164407065377473011607551114022864835753620868135396753577161149053196349526867135257182465237863480916079741710261178596075672110626791286567805003028959471524994600560231065235541327502263078402324422320475797060377195253397191468774169408572762824754402103698925159319215835360536229355149839862213377495491837951074375433057538080525364990488821872142647609246196692281329364117448121441080522476597381825761276098208570384217021104727320721039148596496933319374494882629392021770673136084210387663488350541925477670923675902559228637842010228454219130886591296199670786282835719926572515962854837032299278156241458601943857265114796487382717807008703234332923672179389478563095321724908052502506481141025021979360021295035569787167798796948988984139264897041998835202284998035797469374952859559039653145350309038711871270784385545168677514803285340829028596018423441751807481872711663992043436894197989078102600968022032469416677221220864468940616747027575152198417249396158471394648384611150714295695650765784446598288712900991917201183126015918086852273626075007463464086149315005848585601164012254894621755421822818671421262792129714591188224413086198130613783371601574041226706722900211139431288455258911787792244747701182051869362181235421413086237253755631924614456417196858631202129416257385513846982718414244075814104738465058845322278790505710734413786555970857818404529249046919773934262929373040669429970187331772818163700182151170411125197412511031821430242315706587056644379351783063709095498704763617681100781142868076533007980661178587018106737125649849373287440323115800459393179047381729527886086396723402745966233026999785126516681693490628509789951981399573936307137149598440781578741239847770591874048329814168150640641138255334065874896733750310779317687629918358671196295331581476511125084850504472826761239516094487410533292667407505145723462734821290278244295373390084247872610598546116208862057190519621500457887207716661758038724902734553211909649590343899039081753250612569307594243810665633974221096845341609066334128208348681277799436488564938624164482326183066649325568523169366287511576189032182297477944208641300225552470560762685408639160542395085092020625225825145347807370473408584642906846032649756980317578179921905469237192046829026455655957151222938710017038366810791371171316623745637340133218235693165429073061222263874694897815841389430470269048665424186054714977914030628008421843276453509200804634201203131205275010196538269225523127726920444072819105913466042578940236352142783845927150095579396537881222193761895158148304995391711299152841166259810928541330666319488263467600496616358477887717227524192085595255729015843655477118057438658570285036822308256418691865856965928051195949717359621581844168710862838431765141068985002635358716475382264857094190099296734065348986245655813251676373637304679140779711090543730351887139521578734235517708268917129233883821385139500299033228521638219518996837783989554755640019827496195257695108623232993241253039982896234568468343661926260835786850678800294318819304130384987272154188583568900434208507015531893505054260569084458814003763484891921912240860762081526561617939071081971197313456283045663525997602900506554622163844178293089393185630331003936287651927866882006757204465660509192896240403205950998050858141026866899460286819411720348559471129543512869950159697592886513179243607608825073935487827503822823564380928321655091562950064302598052486876491120727104078062885767866781774049135686931997943348536776459860409834572462382369397068417614392757925183714982621181346279334689063409534295123040158012704917626102738125902552034282689653292059603876431204973968055651028165625548012030035638606959365961126847694499679065497922655590234772748102266038008609042252685005047136691945786306918860949819958567633865861462651640875618732055512532157678484920037284944073731787720394498759017670747555574721669454281275993214392052588521577638619561531545891285152788893238311110077615405002512615733598764298430448469296146354453683933011488421888805932519642626863312199547120522393334216386947638696613833450761786052346443530222501518503830961061567659955085203527297746211221817047556383080209600816168169873947050007882597215490509234502720192936814635958622386441164310063287530864991663165919589272035696561345941600319367472215806557956834786295473866943828355002741355288042083843090822054814668993728227401093787331644801663429245556978751649926627838422687955814721122708782423811053605745469821670859573121370681133378282020504608287212110702599621237813229733679769109691878572068079371691510878257230913758236177997101664916716292058492522572195773937463350268033131440296457383801225231059077415108882971746982983399425270193771661740805184399034982163027942065611586132847141252972461989989173849330242206148268513083169379327933573495874245630533677232648922711893500409303136883362166200214507744112345006789302695439118941394122721625035694021743141821230392112194425463950341801396252925308085400105827317054615921045459862544716451507822643527016569910051661852230697776343006788835501288404711792080728930809029194613627693833670125576915888060502023964986533084335855584494638614524347514863153100934348557685668029195089527957373085319699826827369387247457921241577393604506723941970838402602369731740404121586273149881560201933708391172552871209837836086443425423683787024614139653475145773761625484105422461487558706104551210523434506981763394473359019653312401485591734491422283406181599201174031173239075073779750557939013129698005845360642826218542650040303879852258803333721786088901635046999515088056210834211685231112496765629683545439378579708013560238722417840166973680740876463935646824174218878231339756929972420135096809443701677450655413970720366474934358081866234013246950763819821992708819755874017734923134447776871994703345937830051079728219611833252859567398175347210158441353210474911489608339350744871271477159207114856621546937864147085182328618027279404206622876152065630918069596948945478387220504846630776465896079298189413514347551242148136747256725702619513062044919447892512572064326382804049219030667856633126755337653200223044777186986920320079326225039992583412451845066229146306581489136164485296280065598110349811429369828441844658914787830764895263142460069745269552978991487329372698254638823186616753784359700856217653516852781396502890856474407714223486507404369803747684667389613725853442724174351409411224616802926018326372987051389059961803868647413362784934212926803537159942366422003184641560333362118799810334773837579115654534415052229429426703346112711277531895531507715396258350804997756379710432522119257215831604655802085850396028486482080316192881980796980831860746044258263027707060220153120447704682884092323395040632443474024604067898541634634504815108629689650635730446002368410042015561259787353763182463511115899828720397822910189388663474249734130744180566497564168809378132077591605932787817365963636823308934070908119072918703450422204518014853575611471538055654891160429369340415742404769381509327943611643349773317426046812172265345744703552610107809137630551771442318577348847412964099783969833557718161901194335430018472730503006609706274478107846412556291485518914852155201167526254457861597420994212435748820611436034191756666213008656088607531247400073405267332366727173051581937169844442532656991427221410725577001174292411963351515314228724436637880581273235003203030507541489993416229345361492109493930413147990743915999336321178492117085014537289584722779524016956735223353262681405618170503032395331521747118634876309204507838733696045088293784833974501942292017874584606599154267090652314823686192606503473402395900807968522658367287834442081703972294848047583756675762592592216268703988491819541657269489646715963177393894631137501054593338990073603967697043951588743135826755948998713633638489214379733570317890506617775510277451240538798735024203191679158992492399288991970746335377815555957475430043636718063332686630139972255202497345524742939382312187298301820459227924754271853115220267273576601535149407250003003863828786652028685472533684397751697537910297095877364470751274340252275609800135538518856514043006883634957177530722889687217671046411301395163408840261949458109249001788401313968175077152271981441229677053118862802593213286738983733896798223386193203473023521304663514238923279211068025138952062511502176347944579133000737934542671070533708863641494026893785446609669371182147324149943396810439807936412659865305385969873970278483049537838737995181011641031037695313868870074860074702911935868572319330390691306124294382275401296492699447495956365422208951972751366630776929083037157405456075747412335329399809204452577462186166822402314483433330871673433275552531109941065320397334443352047978188330651375664974366133402884894543052207351762428927392673063509033883330266387104409497087209654873367107478607933717779629104224260400287287293704902970830158183555436526645089126069186868449548130372892013688884047296092637018579746854228429248055954012984628297579333177078529771455153768682175586260399038814820027214600395056524088348534497621125615197203125698445030494123401433830551695838391874806633897937468786970362481821813662237459134939612924575027385616218716678140965396516274319119256771060057210175768991345359859730220625173325689288972526527984503518047308180710885131284868951932047457247443043944199218668674421173026864462829667234541320628733759579998892814176045386745657740347603144293225356669591259251009052064986312372804695958649340068602686886010483346071583497373474990707279143355220871646538537953253240299092280949660671671010655028994980952371862749457911474632831792159355121335028568392259431690858267552129016885129340323040941271770571547054257701887482335025969739625302343250464906250194726557974955453310407771077143587845084628173566289287437752778884863398395777394218509707512848346050518814591261334465923649469220132204013020448366782907663048641066371502704790116266632195910684231111643548734385776332036641941200132588089776310347591483145160528117001556090095373221655098162651210452760052937107591635764871770220456906828937252212430327747885376846951733934564382038940908815467310550743522132865318502933644110995518194034239039646232348075244373931714695497681863062454701639868787495474042576317340065897086704902856583846062719191032479252951146839666031999632309084301299381872799021861300208203409210856027825206050124468266849452288928908243109495643443804333630915261247410359653997587076407270188429951287441457069016897708854005361907813590538524101888975538368316841275548719812703616697141726592849426958286892303785065191805147373312589072050201494532443324335106202160715579991419370724386441811465181411038319428777021522808836018110108200746489481231870576498206463280852539159629303742701294037426016726507281366140455892342483740070265843634480558792311364314044897394879146601072497523489124423025567197933324535159331778687880248255624409668883279254263323318711493009663300378321249931226188488684868484771587704672692586272083483203781301078334258073272153574397535619937193319597159597891310651583958479570031929872727772613126984406581529775780302160626068168737700637975560182715414957524006170665972018777702475618380025380100011620726242965019943811638062335906301189261943112815292626879080580892184679707339218506613448627457854200098449841987256023176233629911603418580324535517890943836751039637924806175131240638760293978580954910499729682791767239323771707104576098935566981447268211969396538899236790902629858177601139534102073795811619281876448471100801520488644043894026987058094662385060198541102271560005033201958827550116844191356498965745823667089879962066684716972727718731552438044040457539141333862708473911336332296491787049975179914519711508642434732839641395042210177177019265584990475635100672062902253830829979859426922456056131803039975478509822459292443228004133062590504038814487818228500753989143821023032595854303105055344604052643413834678230149530948729381560628014675661136213614786532679763174308365687254975884481719527589524500915134964248735397961200996079396840742574545663643352301749616354230729431081372327111746395339591288852775402796688635161275819151255884623990897285009731258135374909646446777846817120817435980393948912831474131414139213465245157231107358338600567925785004789197512791363761623744134924296554774307322219024882089861422371260761774267878183595872393829105223180698534499832932531550195459389825603825990764923134949407046683630059996710497640979466908306787300357233625793119387819840790122140329002818589735232727375780243050103100034604947269521927637463975368247510675504508832384995221593766121897910532190634539599961621357370422275241472177757189485615338022006901819465593922388827085770137240782872266755993655752336692636004817938014272242663851617405948266663910623005600598895980684052432498561508910283280827346293075030653554157419268190933079960649959967985960196221883151876034253867998083447692903160703602605767100851660170219304555081217404177242676002481953711199504849512237885910129738810223855751652134795148719226450015777525409618344452846252978798788404176599593357951224983616232892251544873960505210389038013779951728464588527552237591944320542735386154074825470042122009568165301193754780631457990402138229147454526093201975103882140679908884919558842320139505462419910752513197137313025207502005566236117301846585677778077086054288420522765055273347929109267683552646468810766272875927875517550665623249105069906841122442281751197101756272963710716699871944912302436555140516941721777843106132289906070725852057750095826938904860084282268227261288283783212801036216908968952467160177214675947720346949102630046806144820152377352336360618751128664533082692956878288597342742779296541749027562882652167032689211769814883356456262298222119799271650582067780946154829180961237253368636331003054201849691257271178220380829297151921375335190926075451034558148735923441111153711299362093880783912424990739377173239772982743542412248176355298803136570153899959477362224050866534785555190513477825271753517454622947568676384457870825681101244938640531193703777048311691429051442860818808018812200280134960704363380989992794962037491959151709481060547141978685966453942092814116557363617720279266341774534417744502947613577118756418768320754915816525409375509874300324193619448078438441719984572881960462661306435211524337017591595693395802098082804897792670017063994617800807088230053041832651618643792296957202714549830339144513010815872973188310936080947315187486575299846069221985057068088324154895098373377381072068356901520952324472980898207746353009114538915723227004778595996769418081143095739933321775850389048700016997581461236584114456011024625286271627314734371438243574973516818148564603266935478740311458195945800042220393901402600598609460263303083805941000753157200175846415867578880178033384041831969712602636606134874263109043585522827076625078089526989025349032509174004374724238148695456396095690945594634391650442856365980391798849551344680126182537041046363695806124801100090708922677014016928320187326836296547067677823234719979205296851672657519363206117770547362041194983039743372095801321080390324902682327336398496350958540620468372400523445219727995393017362475596897400835510050888919667944163258247344755556453453882686537397434883072312162638442633710478141635203319163522845517366675124490599658212182543465796354587072814603208776651796097176260367382732369912007641126366231273704094438521419008706772504827328102649695493161961574218839233740469192152815465282909360364460377832441559306677765585880136751259354471558281997086999471014012138351955197844037836539921912843167933544102087754329151946766981659306814911675029446877732989675862556881328282030351617480897396031137230313963888823014546563348120080490849191786646643464138670355821224670942833223634232823802819495823412255814604568952913122945323007688935494619856679627872499792415674735151709712406979521954996377957043141047552733382154502662834078294812099078209942568464408313338264298958854005035758571442430564202442287699566533577109516227534950037638677309527196057818365244835563694453204441600006364827938450399692227269820844685836872082921062649944193348746519053628267246058927218547030075673000754014618907215611271628562635054007848541939699401606430503932023978160094375002823204830222148841845116106095863436990697816955124815395332776995743518406122665938075638524255977026419934926730572922084027073168851257617440194849344712451310593305143719537920992433445173852976657629864759822404536183585878406110363058462700198723764535690630969406766159145924244401320357659949340736194591527319039204672618291292748301448623448622892960121492841394592106582964145311268459467091166041206978784104349919532347093690185738745683922295879768895325519251508671374392590711012152061152311721776871981584361487934617578061148389805318360276343894098911820762100193431627044876264537609712058079901344186478976733057792588636021836850856098395701941668983124876219367159198789965670801692831324416293742729818699370414993724834817888650337402899890112257331123761630562822617310418506207996392560622865834842216784677992035364894855524783470114173656583595672850569092586555786374702175045946404758766204813830111386495905397613102288432584294781834987720493309219432249430078408336239647675527225636130153401463609916871697466468724183892713256444941150183956906522223848291415341896138865960875698590749927284516988002870064825311571504216304913728963672077103633447872909225310097367442199532707689501404319627299323383420246349963241485579283961592355464769961074737645419062523137858388443300529221681836398436308337103844297362345364251239663086387423225867206361683328924640608380504904629963815409282251066903221605777566534330834210484731279066859783906917337558734295448972092349802247699029885056098100980369084204834839244975127532397174417343909007400727806164283682563713997686436095389956248017926236666085683923890355846291542968827784523798313745300187417247750757331892448282114957885246831531279507993772743980266090571190065507155505121065540724181208321134911101311967868176954270485461159573948767098245341609613785356143234287777413561274450697241619805540914945924501677104501148798741748756061055012610689571654841283232816781586169582482380108224955788497558724707960228390372569479945527276500468549412242037817670796382474909934619014179352411591438786645170435988490876980674819308309053471160625408427649519331428787266867485448048758065145709520724098376039729137265850990057863850420320130736702462186868701204036523596427286195431350357712111631210332864749067793089462806909571983902986227470822564826247209896569854403629300333128287205712081631591385349191499592497852197332038093624487620315386363551471000812031131115224781418753978569309491372818391719550846747956364207336712408984019588674820789055147082570857126436417601739895591628093009015777988025588966215080015751962302981127149267669251475092928849504681237012966955602353205727369804234706828002168304754863074231450943667552293946046890862285916234571752571019071654278727068306328336622758465167600077033638351260140655990143705737203648677187834206875330265233095632844409461427789295535423071875030755956323338198794994255718833804804864034410793627971352912776413283995670475970137238628356712299268942574888665362307813092940747658156781313756736377908360395973847864110175876072098955955833814059960209762461312586200903009051273727070594436213655992139316301495821162838927912495110485714123211569797222455320475934313709501599806532025061174983844183212520242398040198163445378539170076550009708282355001989249278355786257383149962030294826303671980563815278688962395032482590050362972259678072837801546265543367030212454248938181890102918840398820467994387730146388817666256504923160300709859114709736890919071032295324574605295965156700709043673618386731646373570322246144004146453304360009522478487392760590816609604494378246807623307726885197113905072212388655337678733907725756983652696769249369723295671801150039657889054155446988183305656580654140131883493770433355808602226555561684580301782937137600464630779330967742658493726364123008418905764540617545092193603694566101517290314927522266189486284763218449855247779974940814302993074958174904529057535193858558161354602747220706902042609325648365786389005687896960230520498449184644032424087838831133915892913412882011882937596386959273096069495136244041289758059218768323635527916699895671255064294161524559517588388200318093384872289108153883047637561497616815376275783997475619948807833719723518379934650612596833548439499490244902992043662211333758459949161172585816119047121658980142437214885180118532137901559731088771209812066733792611927160764009013431823434930385453109295955639026780319234875953677540605912761623013495571280344803848827843893869464663934157336422520752932120918895291511450993168510969322612241437009010674889366251309224781170706386229871071284315638535295850023710057091229790889491888424882248990134487466331298641398256493919772382636816833997977709833788781845047485851518685446313202926115702550294721676286700313783623877670008606586609933111894424706057908543077536318257707613467089982588259562632659814832221990682004190524569201242843766618585429534945533573541898596349767002875874493138002825039703893167599841354074731045075706774123631842143137441660857308627715112161941805839751964444849944854579040199804289979321836822681313237897982868178817530668967710659783080303255840814421028002412804182346279164112888863672775377402577244715989784203963142880278382657978757332974773272087946758514789900611549418385442073476136282490012807424637111260437879966237006260551189455088170112447609435697810272123992047370583483220050873937755117685121213282256744685742758561245299577887624760989865879402948176358595041456152336337527734323894076577787089080537145951931445859011229037147332100170335886197389580271264454209312939048270382959200342073381038183972071439177655324255367588584965349984536996180458433807727726020299688677236659166767240423951617557454472925523600642334599155977119585088794806126156373953901252897698620194334674380541285133973912240283415316075599777359655402098111959838681544267224262838595618774535527599978277304178727423422025841762548163895242028263737389485055954050345247202626708178879265453827878394316684655752075744600956513972120745907621496777070281273434541863205609090229919746101425097162307462940127665071786160717913442250174664080718339883520227923708843738935208124732799418598593462960929304673089838068932766429245390913158403246489552378748927088297965875471031263884828775579174934983122624298095407489311198816944280950639794268751817612850745405151246084858331646921155537360621808652773607825696063652618709921961413059137865507771465526985195862661138669086151168923411974000724521262744855052143501328389243238229906019643921598774820188789181608303959181226888194423813519141440422199951574558923234488297026097296616600012268913050973961793804965395669207739120174764361441482944326375904388513379915430362194835580957921569690914069924804780622748852358876649098965447191389137258191328115815444744027021055315448797720768547724213850719434089222844158186753121446630842773103173567123302212060758759720777802265031195768035014069473639640979829227385322541447408185147117909087131469145810664310862585822386971742123450349265555699257856564474104909634729460040998206340430053285113985934260787787453743293270253513256953229668939678192340540316097988798983111835341166473882813723247413733003470306839770131875428846153980657811196864025204205617592711689885540168967651151943823034022549095387145587850618573767300404415218667202281626259792141284015872216369340177462615908366766334071414219231581509377246096838777684133402563252349941334850610277620790099504063677589652076686313224040944256795531059326420114662310879463634259947542594443452054202357466408404980716182094186881380045360340158648839629408683403703031401323639622857015152218694343733584758308064856952240799586146570777794847424706485180890268828358402403467638625700629254296139125153548622326456316611333485903112937257175883458949999726442732602071762335514597322823717845946127528816656854023623720510844685810471992463752740435001107769618382935442112781012763919001500992752963930200996670000985835550156458753067496511702854351324122526517718205991362002866309511155557200753113443609307647253577004852377452376020084551352290272536610275354649338224993304812105057710580850287585005875288323100743000485152540739688856508285973683830678710987010817135566955058821292536861950764277847756146835601249333124756580041375293136425830496500125713140673930870533374954225418297523289756377437159263992975218858662194687197380282714290063923130588892475147211110809060574747159007004270945540261061711643633900016009901818845856068477808902168151501321849555628190146452179840882966473990640554447432446771031937982917676816047057554194630153424868358905133880680286185339752955308528149732114718765693973519615329557229899344488729124967701235192407076631741095830294589993594967756744938429084385291702732835328452490644966415164562052664626224771337914930238688693668619575136480169406327550456834250618674361786089961649562625939776550327536185647651514447930519011177934682503334017121628372917107786238863097251167029886893886252718783900766781351841571526302660161601489153371917159739668856459857195023791670313984845673907980582291460979385879344583155237479751721096853781668563264954038328500506252627056268510378127455608975110670306203723525128093914060806479932362451258614093687120371903668189645941280147501406284942323269606892936256886432979234106888200885510144797554412879048644053270964558221657744717764718894947740127539874844916128932133065319375417653439204068156883917448690417922152155358146154175804324714407849433583013082358367326777578311195354267501838637575946681313368093580109989792948664944299479853588001841041391064745897390637698935610550702002436792683777335255253323502824444809334744324020498367719799058077302683673195492226427650843805951268128998994026754709662542338697791307720012969894698167683111919876658436168942335285990050253402804072663861852311614796088039176357782387618629409965185713288142675718085246078618629506972426882331342664740657253330954849639946150205324764527818858976140486446865588305512393188440805493446681441924150226526697192195948597645446706528442575038863298707037078463993621918397973209553748658169638949208906092798917478596187249419593304554782916661319986120406010507794200042871126675235755475223522892234518968403256171644527104313030576275819514666210685995422185421090680458853378396146969081819398468071012558733622894754867099014969319050538988644511701035340826547672573919217398379936271911985106332245240081032967115639978303863747912303820413254087519614012595031326695152150147096913907486240507402218837086818054939612836085837952398586773202210189317073045127628305827674159219752850799122852489888547704019178373549845348712393049974395164082049790373019552003278522306222526432567264210044042667015812196063644287256947122294497560986619804094392806745013823239626781081200597602210680038144068843054128634921627219528197205560842648536458867526568337198062138663518479182707008535067019922879319657041025751606430637691847743626827063787589416967102379413028586901659962088047381496776884036498302808708038658575238304361248023428323192364765566100844161684730748961848171098137841643999789759930535449459284099305097020378209743576315591844953895956925530232543352764897055298658226960899681395142802917850056758739938558380935551636526627905420880685392926833348215650342333248977518370849103306294461055654582246559093979962024955012161695853544964304701528746647278992076577656182095935739192383381044762737929911867355691076401774382973271343082479962080345134370747401924474067536058034428628039049994486276340735205474833407452711954681069944917909576056686274005476703722949633343533626272705625049926591431051289137674348083737962166300378147694711692917426994199632380856741657704149712580822410401334288242105359376391926687074304640168177777287320603517141870404915083643832263057773835208372366875167833208441028206461632619234717320059584246263416047182291347999719763156067274777971855360864101040088486930659560462739515327908552650451804604348861553108673217694353170283296930348894994362505848342334172283477919619073122167532702648989287633492565287584015407221110388852719243981257955992059300091418519895540222266184763746593081281968216080816746006938907979899434058258715236038955030027068447093159467647550377033118416612867348548120831344003914556266856838999958492293604663605262715669515932388640886903520512781168161463651566963297755474243626354999948301771853977281716311605424272769843777397847500703604245678577280698737769422876675813883779764292191171552431976913483275495839372104212388131451629549320075358068225756950421625907285259372337089433935771357234813681507509301149411405479590640443843846096967195733706493951805906385250579724168902214807074351035732063013932606931834810924934122252349741983611113946315991801927592621522013967848176200483793549782868869404022196110245714804324774716631257090992210297102776453687319010408445333350331492607907583169864305819576820322353581471836358100626824665236664138968448671911096416639422989190706716837990862783604655060916163364534596627112813563698581981292811586918343895090155955374434790010000994397804201878608505857048045755946740196798057984007709773101528312987079829877500042905996723012735840818951784796032363061096049218309718113410005315510461650935329280190336916201933723681833277694894965368931095686806377145678566043969591700633911330582957897522568188265600062896245511807269738779088878829526284148503529787427534406454430023627513536048224451208644841850596574570898844873926443530866094275531204095463387306400610533626673766271661097478562560333996270070179937546234279303996409585831606062150919170263665569516907567649987772571675900219636490407513098359196286509741651573698685068980460723959302860221531068242589181832436025190152313437469583656876713974887189418239244817292958450808892640665130344493403333927349015267644434042014123723695271585835683470344136426003875087218228242285386358025403582930030022147497831090828078996664618014535684321244647389965341211277269345078690724390348794196507142327414679512454990826274723275569478751663849559926805309797583086342926273902168463543560322015747142107922494456166207144042129544343312706915017025362044697955911473314021889768922893041149687734685820232451295521844057988722562253044704502749693423328031759570418399420990240214631354268157083957733853089906434066412844747356261517589328676626455868673869988017307627734606373521911422895866899864881775865288072877454705296793969798029983349453688309830295840685019132454822753325821248698239832379750359482575388492594620055012456341914528170525133251828840490483780965085151756355420082131318267686465263665345245834684096553438332106653661686500955365801394491193384865852384044356597081858285192144392535285434275523830924942779346476166418008395182659557561638504739398553347975864287147392271918762003760860559099013857023804732894862393574402141953365759341446048993691497337289227365189621223594316662411166499837586471211192754952818511198351617190412825605491470349692030698905552274943021428034949324874069613177082912543005980578746143472517842174876968100547332622440795757502522089249038612209175471262241106106954464708569293934983847926833107781879726554593555130394838749396669267662997138741237276371825391559989357828236789828533813433604500790189146260407918191230090710485931971189409492602537599849090410834248419408665423477057494162873513764888239914527852728814133144076891601069151580964462811720913961633889756742628664207817689991058388954330759500759052802415645469296825016255652300750246316977415713883862205339399788840364015698017125033731170365824249726385564897348210439717681376763750748338271491293761223199659403619960627373592765252226263211557382650021677666403207588897966200474014613684990147304190462147997528441374701786512475024687286918960429953059662950374764875422924801631785775218811586896544935053304334002708574348525537701522009216367585885168250044677570005666517750433085278315101472292986728080871737873666327459926066779678018739183167885303577672264135049127010783134716823670463042340205986501549267673588282085384563706538322182041355276105385605078811498653945395553329976182246777351009496806081755213148001429843152081495793201700855485605322480781781626648067276893063154526653004152980460580470677054635731446908766254261586938365011491243201834543155254458606368556617837892694579688708482398336575037871956870348397219831079256848495696214781534906348309958423099479700824163880212496844206515414093050079705063291002289249086109516820295997299810710908772798211089606633969121008717039367155785678515936245563985897539761261782534564956155705672542371837512484432242160797783193796796185236033214117627216068400793930124755498518624384395337301925154664345245940465399164375302736451838944197176141796925921134228643951472204096857023479576827875111364313427800379514132209589054207083307625545461666710878399298513943984987931342450068390087223004316059842368515664873700223200227004944694613956829703086400638905882091289249326669991493391252953360545146936732078671277037151087500435488292869606285547386329312789299819791145934784375278808225249756921048494587109868720569216992747537623369388067209739970587630250661376576352032909894997585383310417935902648914056161062519842485630173605250177588911027756521174463372176779209509056010563736357826812538672404228662559437589094062092748625754904858585724964313270171900040963507503620364439814510895030407695382902745493173456780872303180958517044949994634956810492461982908033704346574417905626629708638718262828522204331525030377359375873117588613071248048070293356494227018935094452294715399786797438860717329354550987932213842810106352567245405733521189776343213015311457805470844311639966548274607765757403723118222922590009434840034773466721435537578862928565245417694874482749307847714107457778535449027560327050262653976240523841560479356965333452603138754936806141570569371850824558071610142758099119660189801079571477755432227441875075594502332640715826371874809298754362208861554628605904271907401248977407425012351472275948068055870957287960245990589691767551548543971289889089612500277097539736457922922816285729808572945317492851929776230366283128751556976225139328416666910207677550611580768166725173046481259604490313376897742803833434650284151368538636937590254441736022867264460696128299242578980555308999371489652161174736102257708981812181593839225282442508737134441652172557509819102594182710079730638215712786318739036757989539283455294969878820963293848892823533651308462013640368486228385340426684577616972589555312917235070274130045227074188482436119971595171699468535738081877492432625003592222084803500057788103508508815802858036498013429524429067929909522720709384427960485938014367550881322814660881937605239282878613004327821581216022359106607592625547827063529728984865120428074360827502264609843392398929889299060565384315929763080915646413953218701976073512842831725741650016892312610964086560140869173604627096893490651982990451311011648788646844882350782951979818844414257515787204114493235905677083654927223027564571057119020336429270243944416654675778464273874252923838600216488763893451562659384687499148224950449862242245170782933449475826745045804853636447545511284821910707501927061914285021765250401701109654387361217689291753547933338188388642163628650723917580657662352320499899461178813587362145789907333171395141169282430753820514012601908156956665042728966796523736332058018826336412003119114508559285057769389125625774876913935850834188480019058148203701307739672449720151822115124150834621650120559642352361588173853948943443312386960332902597911127414215550030208859120833414620016739713300887871319949445355330246826796245089225617008805155651754025175119654784888881275794056985450604310738363551069809393379856317707108424535717641102917512828464906893652983842207193217331306771777933083636755431247515508410295362293597380481847182724335909612422448283936188845684683052251673077240722155383523604242841901051499028009444021839540208484752430800267406882686875199659399818053177974728507392117795577467714490134359686611156356480493549055932071203917009429108375731521741774465666531749436844370718781645967645170849673870156506347371807059170544889442786658702794790564182090821375461619923867254095583448739361539914350064788761093628906540487695804528838727370544290862936446403938104274119931505559115680849796355026981181902921372476827339511334217132676392947745089546241433254194416008267728367882473417779233545402378776684818361891964426732787723396971808909622705760679503603125276494233814330688043692209291934179807375112134526154930705346256955177987745462480178840314205447642983573982320659385026797487931238019403270221015510940515155291553412180473047342799820426539404006303325606122439122081256166997649808039182760035517633849744966179029210624433281017393574095087974824394303638492731875518230551760546239612479493881867011113841696088311345876863659658766924714389535099076645243535819456660195286640026170218516262152032173342094303035177641431598111088210389797727202671292269969290740533437817339463493815530866812288749451212905702233232498074806816778995672066915956490902404407681267867927057351156321136781945060013292145918307257495916135477096498175677360284852840884849807112487063748031623517377920865808590367118098147861097441062340792839446421560593100980812024472012758113454919393229923513176827680529198923558614554718421253123398986694333821511782479086583069227434777208961126757546746094808425456473138467563056528501354884289257521550824358295073485530823275945307657902104385475057638166392025955179789672727896418658206117575286144618811043175938553094988458455502509619616878399872449134717437500812247024566161939556224795736417399874394785840109433489051193457484757847598300503062742024996863605136025634127690686515360598850064803911377887921678977161809598574447425740630448602671647941487645814721784042678412764512898786496286580282322035300406495658158919035016648434129327810286176901697327879915317872387230712156826358159222950912077021905014126559708727351479116144858145008279956494939591308520435309919533097277030339449680183831951586405077111425468823360315082788148927178803004436438163542437748152857533501539723372747653916569369130591504241394323039872635317398109135867265748707923935142177172130967801761910728632819432707216760425643334425090582743340970116075094605481798216675153719769212050290133804776930732148460279940721987053922850099085040427071494902844326142238587885166289286028049490679004418925760911278730890065024244890169580379785761683615078383901814748695564495519980974582719293389809726353017545036294100565934240830561588297451990121329669758965563490840706289334390193960941564482740365717189087242640862077621457789439499290406622148172191917166895706021788508117621997558599401921625495629367710875444361848407149351794491947398529551127050713058864012609013007731289701875510144561852473535427727901042098947705712728742262830175909672468900968517872813621936534102707097379126534895037730322196646144958590375479058933709460402358281931822061619581846624642902125275034769286979253478606689813736936458662957806323486381537732050335939749405128553001474096575924194663401380355591208359008945877707126114891392319624009932273806686896902211631753391693884677887460655007729566735908609613336448766445936713797006952969757789105887273954430438485993907779223547394870615735551435748090808240003067952346680122795755289045267442979553766711013914791181571968992208334602919486217139300680254759586490476286899468222968993648417121522211117644056819048135152150665942518878031283320495469456113275634863690801631908469848096032571840820168665279133774236485719452332223842583297944612629600214304936300256365496598917898343791382214181793251647802696287422563434144147283155149701839191741542006397855635811250490091462910097493035321427897346170361315482001082454675096615851696517181842246629314024659070389377616623517232397189225375890829201794662547962622519578756973212740161676683875715599506067816077684178335177903684948019587782834352953875393571758482164744255069913306315372803330989127966799585146755353968868904043949000025796071054949383753086616072927180512392315571531489568007341728516471939974281733842485702889966431922999666238881447855019367197173136189901715999009442128744821795629681163277399162846989509964218730703588581112358200551003181586036931624832570936949187628069292334031743291308564872539023042964253985260975841617767528294965338926996157541284663884228782596176071792498942100718652262507809776074054221531591140394180644890660734802025516952972350148062556340964168121227150781006436263240491377545465671444736793098253877155896607811470932626862371721917165424411766765841203063419113803775001367155611067414989822414150790369247509875526767699620183669229498712437829583376513533712785982631361008125507970524925405666617282871017405892615879847405515466707354585334440665094801460451451273398195918405810517641372125026672732539537047971448189914033253778189882557031508107838524510596215230569224951104924513118972639135766410473322460139620662967140837088096488738281142914854641737549275262276138418397953571652739615981847923841553704654895188984212587166734239783463966708515021228224970485374313186105002315652563187833529613876072692438480092504881911857702873839612674475905770715621384477382231669678729646088084321078974924183308441687265359090692592121366401225519422105129224497131895244334140231325515331199646678009708964097329110494030044899298503526177408519094142740014715745687407463374484618075132621966589610283062444809927995383791854041923447377028201029960892903963764857084309429916024787785740764294814080713097128590717269036124315040051715511628720909727979535329639937379877849439273509710718113580072581075781544504535903616931683404251570775796360621353839653640088037229494327014789767832177278689768256913336458795685714605755722667209741651721488420301697501039435773205770803161897463913746655388446661005125941959669421406222234919037876424920957774607909207568389862357566781525083049895215253421561562241718994818340976836292618747026973593845413180484304986351581286306664032843452824967550586802984545211840245395490689833105577923576925544612771111915258646336463950220045903508746897178679966033210756521060416777111477675927663345529089120233965010490632049912194815075439138459885939034104435916491502726389149757354289156126170280837956561415089097056658307728389063204017573047349213867388669753449196426315618528697886852493985152592497978309454258608904081194941487642675815535557584943097272851012535934948990949887137575683342056011550725668644488988212766284725837443034887703066517533916704153144664611157276935266756010997463912665865236497043303839406778335782299888664625281554544563956407355463323585047482883473252657857272804805677401442235892655684451002385701889467823102038878575047022456584218060908711317891824262546575118017359042595007076241282710392395036358642314491948414229450550210279613068419131008535106607548296363379793981785556007236464515862105960132596844693219281540497252606096026487370877203814604476495182883013469668003796982657296709618622765260245920479773575803582043089671397792822589776386644681026684647375357857681886508304743807060693897115893615807881461233236107872228511056152982134871246126630210410053317713050465240073266755608358428133650167483061211670710495288094902579300499359689743443545036431643654143335066155099124202925919022156049353859164865993381501819018994753902523918665100336633167506664157168826793391406976684006200552109871740186858250513901023626362965811597715900254814137904143635998131552058584919701548285201362462377463105441184828359770163797019297712254033545906778811579124876345333292833624152181374603186855097425624936084861424535172730398911308232538116001999401126410055980849536714011874767345876197069874088376056682081391556727883031221112106712171099702425788667868737823660925590981323368235529785523306129136608495887264007032139339304892017016260460077555849797163413532700710777450880228900540872439216364157287937313066839317547894584717344288499281675033005707396755163492203571365856390977364600525176213762238301702206893138486991873033956998521352276260603628930577740015975844901228890765964378629859415743505107389217471836932931649474387615938217171029968134967356093698558069025476881888942026608938854674556590693632813351769683960730111665220437130775359277921691048344604381928154993715224472050590490735312319207668175988985029723521584248334175945660752567154096431007413381190354062268109414205352045993388105035364216619274228884821198829870423368145988057617487060374802101080233684216234946687149416926632074201345384845711662543960591388244585243611158303533567656242770553606170338960837538187419301039561637000279406937642662452934328867782386451054199065812845155631958165226670040794024162198137482911005411111423496374418751400367065797722675376974844468820698275909105155781914912080709839185999212380812287302660164184988006528688993624158569935567240492656062398742506509478456140463844220460688331939403752088030249549538917519900796776796948308974836514285751802793436925022423991184798101844724392402693998239636009592451300672118590337989445966969945562359786343398444462806499209071926219533414147325488744559949759314452648696783554210645481509901400508096087676209045072156285980770900471408383140675021993189084489238340792009918894754277068930750915168023529111383783132602342704464516829877048081381469881270979000057986628754524251985654797663381782461898393641475502799528923928992332253195554766217918266063750800217454938572727153786394296156420099161731359214691466037141615733620681843229461533854948972866049950442816384228180532418139056161464687946991334613396813914837964460812477534951955725543659913615984598545468187646293944073750480306980783755914745624277259657978678635240448155627598291534240961892614675218325317742965166519457851159467259304655678180442832595486366784831288626186923938952254013612034677426509211907268413021951218875972572662485055506009465112705516517506677670067591219779406689862661143415173078943233585407029344096261561132733534863250111387372180559373696199872547141137498187284096638126327629232177875834889340301071980842298347571523926247892877109853778422593875414628410484424925514307705659432646056485986097582515060333436255745302114823919264673524170828066992451057214840159941176381802438383170945001285812918415863440038590489738829470330443253143000144349882282988356151703995370537324922869166401946922606658202433273314271896062252314633528643775102223208594969549603527680252921048562310092385538469933145634650398013907762763267252078046347836040210450599308743623465922024143302908181610215248517856320155245114037309943050079182663031321255376417441418547699598059174124515895174599013146084610704804057470626736029518359008179313598627966791591536999659142192395491069471000097131326664061741255436960265581438238821126708878402536737149686005074290470275861479455567162984352599309114868233101505929114235923648569789409244445836466838052860498285394807250929878317359982072594302676681278775171942541001505432117769651106627577581583429849804681451698455497756747024577457759895592200315082234252638167769282111317053561976631475567171822800610487352502297245682154597706465617659078411440254850904374949611307124951244595076658903292466045923513645372965654645720257343704214084518925279363060830486710228464666379025989444740657982725380985368044051547918616182148477104132127469007856074348600557869781456383477572085002940297124355186535135928301724056923423846531511342787961486434171377099276307124788094206147110454282437078439046450361275557222175224017939202715541629396502976580800920191765213366993632356143161868348069114381820768619549184188992133731288095178402165493475631267594390678223500999512488648547533281522673824360402736283834664397245521303386624394334977734847923028834577282684394562163617323486186807775058634290301322291306098021740559025209387790152560175896493920796701696090901060317559503811185971538314067172150064095063599932112891870049792835946504041475614573450203352138482690159448268838937537922136328235715370468207074001854991085072341047556271932397217038662980426065025229283941191115851197850595597784411142501171207910568198633125971440171420649088599273078104445016410256597612765172092511472039093835634739390752204321425018374274849601433072904774939744525142440496869997832067227539842357291896035983973039400267592883992703838602962847107390511792818565924643093135202832582199714673728105645857913273077315201575524498081680957733950889772754755883183647220253769553305599514599759003607692867411970426976136293306663691600429469249996263074737992504883164484786710620229028268195233050397528680820298684170652887430559203463306884351945849025956186012042426787058606866881456458028300399211209329397122785169697442320340906052361020945035249013462848590824487139385235057358527867739435849199003721304335472995188592412876766650010336176627370669437542935287704769221936270367423757641869520641621594968713552088341786042376150755590803296804150350244674960063354712014808513003559229004193893652176011332507017452090994823425592432899976590629940909180588518899284860157240495736903152952335420886355384905960437604308471524874042486739242511269548423540960037195018136383647979868067514738029168214485968901349584062606222779951584098120517009506311667658815988250187300568452949707324867077609380358591548431718769466533772858875003187024167814188600714518029653107018393061729853518150871908740398521700109622492795997304715389229292606114195738203535031805788253036454555740857072238954143764276027374786475505245299811503582629945711075783663066051779042388326270334063229680566715064945497898014727652672677920695970531506380909957360036245926172448797007033932217785452091455639012741894943679896927277744245819066049116679932263667463844341038933644981958667428098134443240492170688780693220786021842989664593175072201104696129138345568612495882686722415092225095197312313688809274063197856426633211750424222826344737684089776898811059557526198176540956242139911493877404631448589780972797412114883091674021873093601865141878695803131392454946535782903725202137973819133417849907153101745980133630159404133498965103049544576984055773478307861912193018446506380942176021675894923383981375268873255598020397111077267946268508010791768172477634358794337839093584295416649338232276184783035346165479072028336700509484057338220963144899051224818991009166220324526350671008209700937000664232846936590729144646520131029734197191564726716805649940979891485295294265494360619972979483802599812750362667560325598109510584960119072227596539462154965179521070648965569128931915173509500856164476850670128500982511382476138128785303267609574343214963442937792527286209215996042742926008552452016493256129384531723953693972986732222107315191253442556621532472205331256614988027023524021346398037082305717575124336100082836933732024310489700619424631345717875439529646175975160812880863676159700908979112441357046717331244885569380759005843918785479843886543424037862531488076001359688554256792796008483112899708944015673774162215186686440541309010935246713340903260768757147410561166080540175236803654578636689108250742223592098468853567368867036237435099532242506566896539599644489863922229034723147629957715567259659753997522104168689565265237233441505439777323181492581577772560924873277420688004252655916306349394141558711315273073749159968414829011512481942260842658639938324459091853304098661763325404452908488266367422998296711501121769433559178963218233696787544983554123391813186356154141010040129698487470259150382821894852439428748419506229271826493146338469490306407167609094588101187178494923681772689037690188128325560482895850181385487871363953865434555389560082439778732251742549168213261086253796753169422970079601633166342282862410818269515410683756692601750008137613728883869497862529856599432926427409487533888448477306804758303529940679178260880764299939149018185331042706022071219611350144607946149088928795793137337694501530071641474515218815040552816537223703530576471783196272274033918757113198353153331344003156931208375466919351909762655319610973755469076088620951520437694995163954744360535859138579335871154157198215568932257373665945903812147802207345761739473429075458164245014171972902471133944193691356689327706966754698960518685472925544636246560394353458111758417805970436830852693821244487466910950765624559288081048333606497038570335053393793370340922429539558135386060132584200766461431383950312894293875897580325344251709220462637942729261387913648366436131122248353197867242636505659247580394867813888400488709060744043140491463739275263596321836845511310761552391830834347157149227871179295632091030114504694430565687935998408167252491885096896758435322506434162936728022375284875685953909130861051380469770513702254321514099624582298895765872366592746135183790687795617491350732768924482145974060048185193991035328373420522648104692594542311479972042934206360551786873480778297167967975269416374072932837096510461314772201167896493398367625533645237050447058628290320249196148663020066212087219811434026380297357463545422347508944195234977641226633599349283993520754992054689589656447972684010350085527675344239934581793244114875803849219903445122425432222963809809963995019239826368020204741924725717607058018787000521489431098264909500620778958649758485332273939479676520101046655675965852981850797872588782576706393485526181285099173919426483385477727603907439650184320294502649936573492321863145979209316983210256155219939674241012469048831612716133000248051188511559269208253480690558860241884191194888281399059768628421804201146462007407371138984782405585329249359842341652042153367199440007622171686126874447810761990726361630911512753199553453980576228231599610734658845649209421509401481485056150076341537968731031307327605106390299476239393503360014241545505479721447954272839892262449594807086573739840052896805696460088799258541421962709319302668358454587044771671536441629420720082234764938122020536045318866110459761606705930797900593249563701149795718862596713876491844151513558926012599035630884860082016194749773601144114827031739417592414728850363685567203736436692503495879075923004154577125921671825331034548404352074553232890185318820881268871023086882733910203428725199365257712437465215614319279825315712151785680239119105351649921777397307519402101435373163720604300438998656571543945008627455841440875329517508183120910157838799191037473284564763866828598703403714187961348692123513556891040191415578178578708877578560602126595400213946086014364739739939076387115415134401340889714975089367934408421533156086423142568850891268721645264435218051729648323979815754195445911293093417764447726640691001118288341413051601063644963303765976055369987111087965588132142619390098494569354376009818791898023073724004097582458075498123440415330201535108027585198498192730876862825636287398287654017219931921359845259153405416228380038889779055488863838851800588277978930843083884308933207836843924324521375399884410754250749922208792951510454844826987356089648471517039814027806171298740284361518314090906814186073964384088340590247061750896796736882951972634112770713791821022178826330954565672742259432535943667334206427418078061165786722016620886582510909262619008328173435773902066939506248149465124664492778222770886763483190739738895590765845632150725834149285792397379476223940260648544149532275435900853080590579414627050556394061583758632443260257691793856375904566533236292480082912663676612334893151905248972969776977336835309007755906869880210283995147266158958109637234996012167136279067652440665556064164903347991181260676295442511522796990184519128012674027617025244674252519040904078235189159837886942780469222457857284806482931433708823419472226393033714850838576753499180589398281802681556914446114491270483240645244001663995793158354372853035066371614788851084562163508853833160340186752591397495438872090550715969448902807726640512887796032768411254983360812516654620338406595528982748890886230097229814133761098759019089298823015086854727525890117085302381460567198738364623779220394797344792553000131188812745126998005611258370652527649599832190204133457573159219035123392643914116876115181063008280048606192070928039691153870395928174083205183503746380375868300845344195240978416865992881547582620491359329398209389114946846151492819862725605084788731261472047764800838088283720649179385625576060861832759108358812238285709823696237409809382749493846132273295113392074906297144451123691520293409972350969839143411147626856329115277289065881652603232765048062400385031111978129042625144042665428487605411368547693870996637966728665169313060027074975948334398039596129488268664928580245808797941818549856585568612463850242187295449646408895813917142601017994559079368436659337877984254042790586827462035665753577781601490829191612854276279525678382477871257109648363757544461946775691936516979517194082865811951884538547153706589683002639933840298822549980017997444049963493238798679515754710729742955806631838783429868550997786117941810483514229536689191179104223231538518714849414783331304235105495653810719548100955203955168546045395227407841585404815346668605652235576796860962706688777111973809726165179533575135746345943950411752886786377767908555168262221180886080154208484107138941078950577456088970161169177086610659141592320055026451332745628040895576022524956569697901154306256419531776286429149238355788201580431400015970018648842809969741067697432994648550876556048443486379305437617935144210241402208759368849807048692517271975582914652584837153226433469947251072014670121520028703175392450104228920515245248490703522718806764463966556510476871185488790894568647659944908936674148073306014906973275962919895623501942835119331691059998572538169341414717798022553375451652115464502618898702222094376616818214789395391226278584697097854090639684651435405215466624119341945343891284527868954793623502172064272947492683101584168443843609457656502479745010394448560748262745057448321240719224478474468395074074988596611692644440724276043284327385998436498295357752192535172863162503463728031861573761810817483163210669804974959446263722840426610212927317409329321415050988441475389673351885904273767458267621876951906584820646700810386795771815962747058132261057011606062802301907014046655944821412376414236489768528782695757359713653919942821561266244594947795807733222566905264273510605100008068680999366590866532813426159448745115994772113546017834955334278004742853717199197496944767435216395514546266332014823710990760881943662395033556717331363229952616866448191151874572026492639238787918109046053840346208243945778735211331609513073187812926351569133175191597512850437625878250731883602731212804903243268511857880561364265575358536098011397430311782656441280373123441328159544506894874185087058405798502311465567122707460430268323446153166432234377852158775132573622717256123842246525086320211460675951337944639873030828664402895056010863215772352466571308106563110006018384658380324499801926351898256242578471023506944780336144464740971930039807960819085810087319269243224596034546173386539729918171311263572727256406626352849600687061600569547906188617339494138159305041307035137997371089345517862948360811036087977719213238161958716280127186949092289466720239386564790554340652945388980124655905445434135958833680613635002852940804274647729005044571105611659219797439577998651382170252476870259771941639959318625804222596333504533545138546318055595195648358845568800470375612552855101319948412168792219037670206498930432549365990061270510342991098279172708335541149284893953987600172329627741494025137331689661941570375868448099369364270634170961779684748382106231432734727800726130059511632516474840702262738058210323751782127564790810977313602563656325002623133238217821879546068229418287185713947266032694594776833542651341647771131495614071773179709343924456558403239661110734558279390576314986021039189647231124464393564306478042584523386889810220615476666322521707485719365981910370355750122034445972965211562240019668054248634301621825141365462303201956580644326076778405274031993368875806007300727324331787381252668606289550365221941347038661188660552479932296082110836658925844767158342894941368040555101404988262412747777027779460989745556582979212976106292574142313031130219566154148864902626761395212439685838308796205521692568467935150762243940044303010177507306760602413898455999393904003011149875350547606078124732868585405572912563717732643772316677607202078162720446956471871869848649008854602689628897726578102239646813393642656397446021865188331268037370673769623945055688474357403896018941440103588589624177657425351515615176730073894615805185329892065200735709720812637286743443836723730514031905885153657389062806903375867545576193924776143414722448551173995248300352452211418911998167981832843577936459452353584812853295001063662460267859910325234797618871959135692774459036694849079692458120637976355714593980014372008503405624655762719661139327758581623483363575745400053997726299392694891918038649667435458593633073357619990108978959684206984796297297650015900213838385457877911061256545418140159595868094928423729430197569478453902444167230282528448358153290946686122096920422598680361433832611141654079687869957497154294721190138057935363386050112715680405040656186722751517781724547585464293746053572206804155073007316451995547698099876198888705812809920402131954239062906156678628816164965628636259320839139357227071109403675027032611111224032701018641728341882121282112595563466805199500813514317607016582408721209017415976067723251519268464215290486125162817983792484874808903822418753222070913887791357238914109077690105390487664565364985432853419310562713893883528933508218452182856112403369254068571967761029796677250818460698676301267862748973994848284937597029495941677566038572557853088908601060241578112571891428495041193274987050434092750779705314409586298928465260468422111036000591319482308472231614474876230153172302453389001704708146742318296468062160972285380430007302097517052668202055313236058675905807685317732911621961565189490949992492116729607400305822423886119660144188759515325127871702292154558096101276744770679917247437456433710886698279111404863637946150918914175044703578784140676124365046528398685672701022159427483183377597274741991277899564116141136304673167029865924666406751443299497335288403725729853577973436058645656481574053000868353945189259837969534627237601536251469180984616783740461975712790024282274270301822733709063740074567988321814008372244494474396366595596129759765164876011218334104972565436654946046194356950090349020890131249299690580570619352964140261789994173556475877656655061028294622333056245147666648210065891500073100271994586557554575295558896904790303103855357438907198278224644459630007289294987849830777882613451731026473190852518574905723676709301862508370415450276608384067725856430544887015651263418562117012947337523767710464383343316898646208243981023376047282863458050963888013840419078582089591745786971384451346355162023260550317030705411411212972072191978825936134574972911079162555946981457685196416331715508083519347344054063052535178636852574410814413020966157839532261950637918762650494088415867126443718654646456022240147700327799857330806546239352898163492154661673916709684305795596716429729095759005556078292197413642445353103662843579036117834997760863993965405751557829248623981105114694198197915440029388120007883141517424185244530138484399750564268379903840150413156648929028011286794235870189152980656349879674815755198743127540090945638151648235627766505377413756437618010865195815010761868820035336823630900846415149202429109979546566707064602211030853103276234362290285692833243542826211997051393525716978212007855078004492227291972572786116743297197052625900617768531697002448986250777821584241654550688561864752985487642839009971903703492936742931939752156439266696762923345049805194489709170155793822638572580190352830205149089933525790655967112770530089957867395408005143592045499356039244597860172748550097834624373226374296212040330050579104034363095390764884971329244901601458043751634302794050582284435954125459255516504817676206350593015023698437405490711871901863610428490985888127197365914271580234357265345827876718478523859798671044688792552635720470323027058069169430603571188043237069317656920784385185542337979132517020213420203142688633386304357613578132860131193435544094105466194391558119977323166780844296966604093848868185619229467879644566016549077761334244214835697564414295172589893984435350736527347156309640284924666145168771604711801930095403758573447037571570559626436892090121027623374383161787905102712395935502403599316731662794613117401676224929106334012094728115424749022009213204013520563169885552982075784848673791399059078642921263772456165639581915602269764305373288530077844913482284667829820889992041299672580234978247362372211113199565069762306400493929129299377631303842208024023289872888340483082365503087865338874706614910250395829901080237530572525317140953563276231396672621065567851194329048718976014010965653389922036343739055288312642915058763480130086790636832236927202909028613615259841775342540679908828269035381798715616815705922368930559605503026433364828140903003804038108261110442237511048185294887284719360643773367357066839892818170478743410881478141725709999021459754418168949606799748089985759848814693771193280763649375050105706169736012146034986232998861184345945329864116091416877270432943659560774976603462720094606980936610835432092579375621382966931393925966180117706179123956807009093714197850725121616857529359394331422962426408871426051460895481307150878908061949541045112899286445438435274249995593226976444826629653673200098350440283653037636374238966483143035725769609699481184055176585426856811388623875263309594487034769601315334540645293093319480748799883110529264178498673249949204434291878443664514472085590071466008204449262447811806878748636471162349836943640105227785226351572138336959068569811922043534156325116495853494492760847787625875403475841523972395223530018879245869057761766293117285139136761124718100337811438334577256056518994326426994160659961223587225578363419622134603484809911435740647365394332231970703463096058358032368484580708589477572165781022728419201289750217081777136715881625273189985841419507593874829552282556234022685141389293369135840259570756120052026256643363472409017502885436249925680655415312733440310026586817898053270707422934402194286999896361516101248739858811754912420737841701764509979809303986273210174166513913760174036169692333561265599630346062867068375321543910719728418152924867807552482588104331474185369555747500734821207856257483993014840743569066786452548320808625968005571205947886886398794218890459818251862335249337089752163449306318563788215142213152905964540942773922876204562154260593732478905192466694871446909114139374896541819554761718277022460518216951986730146029811454603446236846633093167304414468194618718261279782569186455431187670372487089841629357496150955144468610160481988989484888261426970905875642172103104547899177265444208616663499941877500097029621718773213329383141372071330377352866774052568134040410368903261105007699341380221534259206099089124256448687421931819420814853089523273106196821108156165803765920948076059775940035726125976515863717834027277790493681807726968026400496541708834706311168873960779224976043892349975413512173084265956238821221186836168926632888270938356352773126112494025341767913842645646863241041388309358047802015879815061107176269922162637074248934307601805141286583482737517488440857114571055046889388462095897403776482033168129183464048424238458914287133179711185665461650425961855583975380088541239320090601006359376441010793501409310784136772573628971096310247892927850652228194381465783300187644550760954452254987125586253058363590401399186265032543031421002859996175311640722215309457292122557358510419188794488331472963320503736644076418828264193805082487336026364408418994917755678841955797450473245932876708790094942792403827606124666452408479150863435347754053097572141773297586475731066849341153554634177964004353796391783215144549600221336107649126581120911039623498246546458621067171204799609332600242701420745543006262189783199148897397914389215031212337454975995905663401798496281608130733249806178153883276400000251240104779500819954454901161999073000118810633267602840818226851242517668931186966422398696866669206640787045599379378074573568075270920277987084346295179553885550619124075835563362890433413896540434213758140644838186222149210369739742859477389259405965434245030890184164433790752253976764873549426893801943729359361565397808945723337732741322994458176785300046107737381257386121998971466605201264622494769175200961302056818470945788930945171552155116860535933376615258820362383738390690185736751728270460944454026273482890374816417480744778290669150836229176764200369521753852498068354420140213887637659410975273781819983128310628033586466723108441778166790124442795633236440905682514505429864920454280710404462665756335413738332883281428031033831598281715688756127962588263703901621087588074620532996268643894304289807536825456466919965996628927389252931455295498827414498769103373017227253818677375977312617837643590706866621144132124939918252937336120776228629966495819440823506148394297088006121280849680330128421586529831178852065844014493195177615646925726222372582018447281810121784852793009639069612877881626697764696611611310642317945227674652181010094925684824551680744428122571731268168726316283909196458714910480578774288942896846221697388308245124522329844159294660685827685950405516154827533570508124985055890154079046797052383039715254555227344685516299413716766529016183172889223058789805047767242215859951556064926400527266899109570087779977528411137061925287359598737343239059912023777869024576712711372346125458628723293746979444648441800924852486833054945357199985970492926701587587100602748408328727759484522915169515693284751691404872994467923968184136291616171327529018359687356603238857460682409212928007913565793154269105611120633301215104978555045217695009485135794717403439121091534674662411454981106899882498210536121071829286233487906520487328905058620455903776078712489566092456901414266548903918194622095612404396827100235156661351889848351127467937966776550510594261090664916527568898268880918240731305318142780917458632344781690944926498006635802605256023543142681187357731580151835740450800239004039470091268570079981669222449540725890900896845927496481517043140320241778004551015374071279641051529079446728180327257865303943534588908512822848507731007974276291225086071568754904471887771361050075640919486439680724708122102993404968202441647811319629875403475068701718702854226025764751672222493625317703140682108837132438619378591800565960905920462512461980124855583077915724700200376267722870429679360243708407523330905953846909648141327739080077262240974062010172295944973717567072115529662777465587829204192505144062759775482779207517399440125953335693433312490162506084331559091417044659015041620109276848566192607140576723813017909316574365940918014940712623003539648235855002269935424701779080371607215215321295388907592409922472128984496956739676847948874850821469619137651187124238585316934718464841108053894407930160591365941579721732165965400254616706611808247843737327344035145585785733022307065144117200780976468717366519389816653111359712329644612894251087158153068897882148281437298365516072670521205683126752819375777617707414234822067299725588554077800177110684264860422503996939383314011906371172074530414709266207037678997171905496452159448964008697637354310552944496687592783734111534545007206793582990366204931097689897441872960696676807623922283064918359675264585356419746049846967495739209455013863500400512238132499434944291730868527688127792134757118319661160498680441674152763315867474258079570793569046818033246522762041929550088137719597114513331823023870686823034072623646222817809189250667532451434301590052592536626215997325296334700582205779141455749831228112632944824770035014326693407901346637442083634941332093960992808284031184909511154224886235910569487455106233780858242586299101865774600450190411762252296805683794268239741366590276107307605455863975163890312191351426054416646910787089257748035286094799901787126874752107133771364490420081049687151672049794561218947385746058957035554933036161612597869954445841643976551179694644466410645297350062376998557056194913539315187766996935620774804374321248748948746487264198395521981301292220648024010837991215603596038861135928581391470898902171082796041275185841044043337178102109835114502264037420715693010101902159222193794837758829674241107953748401481071488875322082099734784090475928891969474392860441796969670370995329523329076979243526470312141723129422974096149289930127939505546708513984105229051706149854069489978205146853390792385808684235707755513854765690285261290540070809384320060993856203100926988367283134544107909398505563266673749932021427143369980926038495839240108907749225351393561821644826286046929421558815532845403209564012046193334452769167615738888370313846548269883211027038196653644590796877856633060621563720375119886036509617787175488469421743896586285655420830625024192107633856414777442831815691923773282990696797772513840275726614543953741581095120855459512587657392378257475181409831997529386657157140837904781062424360034395936724133269179835355250085473638907591617504560672304015592884044842740910786410068354250988272691989127058442015258676579561852006587711490588141079598127288480323461435662610454375166673152299426423290653369400424476758715289648478258020713466582194786894355326363600624120469902981433332891515411951356207615965407027216711174294168461925165122413646901456525816058914105089826970283880349458677221331261577900085183534567157879304201065461547666111790016698260574644531818263327914408268380781007766223643778448449083725383226734864530348889905643355674484300723886767874627126810696358221867716535216618609884937971394195394389511326925768037716439111407007278029525704278200624081576241294210107722552396437839877461555587860341808920034899133321542575982940124147723899291796513122722676276846375413333093180695879012924389984441054781567967367368327002784482725142496963241428558785270217690143096103158140861470467630263466627300067012844198721275309713086352027825085145017552781789734382360516395672230053013587170156707184898754591287103723920105841620544579887527976651835407487510631884282463589628530716445968344013009960765565632362475823504780549710123248166787154374687469843137377540860178880955047053967667732545900145375410322924750432017549995960978071723112816387479948115996835154995711748052298257101685016558693116119453291064746643371979281788644053926730597924512004809093521641311162003011142544572311006263232887203403744593100971755849195393506368632338504761938294769857882858166477861208719694429733219273140626293148235377330064446156895052797476880998678304734648106939958534834145960505443119340455089975142655112457030542814471506373054949932622902725112001001829615295765410142412180649396223047086291528106361128420853150749570666225508361936315210496746632842273055380184567955124538849136662805907678306985313558192349383148423028556815973517313585055558057497452854004763121064512624972130930176846371218659725401152287829906195495422863824194620389851012576280530817894075895661699786893655874232914405616228258047512698395768745493155670171757453961168844228582435665788158965505976080182651487208472767579124346286890700290497702358292773981182307350913690845198648302262295462335662938085720372170194611029464837835561899699674620316584351241262384533045944615147211346283936249598835731119341946283994647456581926654037276220925519447314905698869236457115170361913994509322168852040756628297886464560974735124297736355566181782812466430934755652766147496487102382599752050818204423398385189796299268889652970979841218315739946148069954508475229910833115964521034277328122695561266325286745538463381028396109919696479307497154067679169542283472161100068643201620674467494273394345431281988923373476744244938227624691641699171402861833382444549141702744565939650272920187008882592939501752409983969115561250003034934850543231270088433651008618734258012450266306567301674470409769960268361797581195744480921096105018671181137887243016045078087769740048388155369692652833213853692719561040436035833967706431830878157052757534648720239033757513440449913058998173497313237629153692454484291188392906000332928518858672441157775154276427338776571312868085520681371247765130660947492226144159487311627740802435776777692373629482215205444678594386915781672515655226217754009481512526058283192729618076900746387319630703283182822583899536020383618962609068559224556652782705235360290348924744235514718618241354252239033904044892948130972604668542627242247790216530688678927603052549625301298954728807983786590266732425191391854129740528891276460015362067598866825638428760317868044463851810294816339122760605280619241070345608230011718984895406483552373512441023196199940307446560681502390890547639298543314825108608615336769272570104107935441264352694211971147496969115215392820490527987424655085629197376060634929543569694623518424340897393700059073342055273976324590024754753205943131398109462694521017214427695452204196061176285878588311614227502385922890787800796645993411793143869748816915740225838660267507331107963257199249629745489509385768104729638434373710809306989437563190435753505006744168922606410218158827824406203175403205158668126693580189822042187908650074798785757009429962507516325983982935641913218514088753869252995182704270796576220951386045095952473063027700631876828257899866138811000011735050680346580019047719110364668355547204266652908695336205384309496732035103252150865984208946133830642292391762698528162537900160082993205289373608570800428169662833383972070842456155009348092767307437513206431600269070990428972905630977909275550939671008025334898462135280899417213976732124561339457770397534672746447041549800241066263556204553674755262245874862623430314001399162372830059979288510631670967218354127515309666044618081412166154546782224215014878563802220279441859829140537123288682460022487024522622446456624365639631447022965073562253780870624707877244703377327629363423868132106519143710910153584966828165213584970187596465644273775351096711984376926249522361709862998848137928769612572230022723011457524392910889504668026584887684768449937968372838766684778664965015832307127780633488770360641677042781376850865713854552819821801207609702716699606467355325447009801368531019241689161834287926270753007701608631096265706335394094906491251076909468749473358949448206662251579437019503365720183173777699818915866064396234114333067808584109135247771043379863495452211462886445550249226668143389220955895248501350952258851847947308815817361135280686038864449110332400818307248084724948205166304020212688762224717776607111333029545318843006287298664482496696766303750583374715662820995632558125982423289701990596649351984942891874877222142314334730812357108107851125612706292307287075236091432765084117569976473494810263890267487445449080442975674908640933720673041931037750555011220890697048144470976003678852635767018366253996600179995093275183748611304612977337621087316409632987497717937353080981527058063006690543855223366143504200107115887713267354937332669013343979158704348083784420701818164467738572391818601974723057109242180079878561401964381998016280423064737961391484922923023451370889478898384521816602302563284473482465069008547524434303358548957719635855758190029398076818472165840776655326141304418445848783875341970273540927836002878381215416492144320053582592078938348088955205096035062508958344564594580316615243322911592279594493284939833586668433815455243796799899326091303473536599452212587347025747376164571601280337849145544948514423301985218880603491680370806580231954554427478716471793877815599664687873667901766595841487421050685002940874454318657862545017915899163280396066835917936338125714044978551471032667444482694315300154439781750949562333585024750611058128217267700190961890991996496283911225269515472885896423051390114318553287569920976465847291339939741632918451819379918125813717802775345359121952698741224884737278009142630566778767020067858218235692948820028629533965237131074724267602908561563464206478353434787901496645707310811185926440672334865562460819925678146446968382988214454656091011822387775147256779161295672542726202921226176651664233056095155823039546284953474973159719999966699742966670250263756499334598354214810469751342952619397014105027074321355981334471612380896626026443768896227597134606825946847255217391650793432338919004086880049360135249930692734182578593726412496124337778521104558161122639230917090300921250347431654970469388140237922261037152721143529921639255001568438529048363639386983981227562143045977515262774394747811266661925756525161051951629900655641046766607342326066029113789536298011189819499120428354178708604648296872378920667735379319372091519091110346380855921029619339809446237244689623029998357599566978881947045375172105250985519529271214577249174358466665931080504459056973413120829358121267946985517749306930597721896462186644404094714871425788042351134157209162731048997699269307422464300864590902424291900972565731508032601439219801874706982097357214596327243967918469282910419970499630781105581570128649577997467032950200486830323844205620742227433418852543755420569752488403082278511499251480948225309102740172729332253970019651651097376412108565718660406083209726989661465018533633994003077634284028144873924721720906793829875778018530796263910315396706410841602460057917544463056121380685081903846064484157652224803823645631396908232317849206705368135277860676487605073523587946170623528626810229408578298029839429278512772908668257006366473468980083036697537527919181429385098993023139709500619980462029219610124523109208775035327796715748699353318603301398905347071815326458750329279416662985919202147280874573038002459593528259145673427482879645250261977838921252816344367203286007360266384012756107967425372441044553856762842399706544043278497393802738782065653915883253419573339691544211932274560788258133087052074308107654579254740142944571143046255874605844562244079138436346769264574087205096014170552532946635646337959114706889952690091744996990088823016472238444747371556878819427338688945472886285363933789893418802283199391928989873060534492618870541830741166255756231407932027406232593264572030131974150947365381619371719328486330951383404970838157474220947024995887503519118039321411559295633890693343489833423078526260866558876672228854744518414658263605659159922440403557699664309124455658835154408413701965887354250529625036545187988533975399396100976599532004493466877877629782083952543726242208682095894255058841981873543401711369163402048348714200576579395460044540469973524763820486524871248216314387155216789403191920414770202559926908816579238009065666670633102132627728076208113047401243912026991360359653918568492117717468857281545926175235499707590205866280663267252627372693557339914176097379112816351521650186337716863546528231026202774339678468718500527371771569051676922647642242569185528728964226973701929042106744623563220169541376903218520562941272402868723401635673573702663847564901282357012566443618333486074196042056577907956525032463763906354935746181561232337378021688641130867701492685028757852239077470768789466291258268713349228708212753035288486674604338543356881978302743644141145834370970072413812407865748897176913085707682122985275305479137192774037760974399416851297789143865207917303609019191018985655084559983765788886608121493041382212869068380797406304219607289554296904271657072340758285121968727054131641403914964487909197195843135279588919388487273143717118709433536447715130609080444694834550410052181901234346652871671251089171733724383389119327638906837071021368446214007590248730922642337548214910721725858525732895152541853839661824639140202390960322353007769831162836213048096318232449385785444269693992364959670227185705279747651687145965818990061687303435120942019983585028024337250145153088887673139710230640075507959742170586127388115470868166836860521251669224808093653694084202918842135021114442730290650772556981083133437742184465747983585527833413604931912561333111464829076033155373701212116543550047224451431434536929675157260725421514985852470579141536658049854499712462796051888496015929423541575381266808500840067577961472882016619122039148300525055131575242650280021193598292641003494629002209827647924455946346865205751977401447092232854156584156711323309149393471214503377870560565929663314152725837253380245893734471312869620874261433358262180826957237847482916432634208711566773191230404750998260776413250942764550716071044809930038297584625471784725471803755107411984192926771064604306468298706521174010933118174283047926542632768472685116020278321140766049635675846796782745825919259194445435365787237501709079812349532702045678151095725707192459832351536339990046545590616643570310732440159207902253152041633485980621565033434998635296561700779281883464235598226510015998208145940787573813489537307492218455558767176961786376765773694951786859551582396385947247302368820297685491130649705255738144160979683827839875387425829012143105227392011422651470916003372207344226832589770541284918578797713708466482767851048101294787833370024860803084412541924088783442450345117608286272206426942130803317338051019131184266555358766816203868120338384976227427726173243021538077159115588707349733033359861005062571244426909845362298800322205144358794017415356793884225920981988727011330823642895928800706339551801089792269660723533434612730789908762327408305647670253669886087173070328801065793067637906961254653757332400216336486483670738777078723763246921281185819286396148601457916734061666722888778613465896344089420081655222318529440425068864531899232683696575965683971043381489069943550718890352464236297298200007529685649467007718956975991030035836341887795672512567983494537615623565019396795439543898743643018050389097098690223894777418916291832054643255842623297585303497080176237397107849780712637540061175493260149659912022331817477042634543546086293973243886043667953800992730932408188130810300532098271011978237391525317794297268757533746582993004974416499070564889982828538462177978287648853412009228811682508438861573830414084843161456471844504791709366348387854220683568873889525521364848510256008785853241167033457122983797585391713377665273371940336482313715259188945289760509483310117311722310048960089540992570500147751554705785826995867158036008817219688732147854372321814464546619053045155236811373755960005258523247364026159573151554408205360514278668362964379665404578642766618646106748987827856841065689775096337107555438348827251994038703483342795022205057504663102826884768079352998246387137411420317901678091721664224815716757572998778887654205425329947369825957114813217182024714711823461543842876846474969102116274263990361007288538566106695777803345440337031632904014746767529739676638332804397012556532590865903286617062709182318781524135005735417294555025810455001596137845304958758480589315712417007301377421620654501006072443833339538435953352443233185371621660277481164295633698095559695938706475400945841476791733375495163932207675113910980207618158787424469288809122349116013148603420885311362839182503749475543799777242326455127947496529649906079929892389486603008338259437185657142324493047011445692559644216553112850438637127955823850243810837114242187737293359543874027304227936113307096729136324651854254492821839293201523360480708121204785366277448270966643131934371639587752124719524433114008441348628354861746267348724387642582593722932974099208816049885108942229102103844607174112827210664507850786380127493598644631946551074938406174706253883686419014986378829786894565939217804771548614545615375406692348286675492807381307606935036119845077451804077483868449927989573553557782228220371302114603598206352579724308297355496137546481299614495080047169345278959893054885576691318443797248190076282454450138079141772660524469613706033333251429070660137887503192221009753849972126748435977579571019457016106885150079510149862150039553320978047035309939050677417873154286392972300390972455139644111864924580536509465903033483981166749110641753772751410335450813326683277392353869984687931812123066111928903441099715767834379696068275441276081283653876320428086850399388259291805111761509256096067475669552949360077626784531168612715329968377641947678804705105929074680695263240817859191456805588057096963458331741456288268429657115640109292126475832097920440584044797975744570624396642616327211795186715991899762425065935804358874478615347725973066539648092561273142035306352605085640256155467184108299473123572001248144092244096150155420601455446777915278130291875768976516843059373864328271107350759078487276697712319179919840772601283582370346323011733417622655536846217287518251605725999389128613546469303413847141709577528187984634066328231708118640377489857277581080509544537228517854881208091865663937220497103300066766519497699604924833302940200090324571502798718680891684884816969666837431538317629595953867156044757308989820442785025638603661418303486637908426132522610774267315851543290927545149576023001766088380260050659625074795096429125614997008383003990324509329559238555647124838992810835706402395153116319395503919700848717109035638906615710417204674768418576127923900117177749123052904426927718162287355999213407574859261514632296871067090002326471260060110398426086667981621694222174147369307974903262669801020620762006031914467213362452347493717045726329861251749280158846854799864403405166508194815144979512142605545950088050053119409364915029834569742543301762907995201101772152297962612103818336052804766870080082034298986279332522648888862072701039586528389679550284294361826554953052600247425103843870568509181035032440362842678412269473953824842318420435946915407821540576320837388225046918712814601548249240113741144264626926646419381825964958337618012898663310676187591618801278265745779772470061057203109460673964791501156182096494318748063718378785507900394370492104400866129476424601637997928986876092878953447749867848327372115442788684290904005784152026916275508096644704505088421554234610380764002657699712476735186450076672893397263566740157603671945176355752722464481449446980662474117664944642776059797159329062625375621379102677271234227515621106605090069188643049792012037692789256681877296595981974622987620825837606383987203530719538576910937545134101275767276008917474647568629557889740013555825416519339870106076779225566322935032318170351484254424088851813706581665846826221774270140763067003170477349655258006429209767307904962681212463294122279795760538443607357847466272091087198909228081800662209272738215019679525801440915654051342536864036277740514265279455995737757900814641895386313521445606732273680637898888365301133765358647266736242522253327515871286761448208395132415093278179493623203655726039266640493486764757576028011636213854750195447429134940891410360174790185513805778402886089333492807781273041001708794023364370842166131783930112264848204591750272543367076202711688918923926200872176694395547867971753205334676033049997513949021477515113948326544205851901423490140847023637888005841040798354970640622860028784762830266243916340116650004180722800230822842575395159500366275488933333092270092236940196344334500608937533410946145470077337153776702355809143167935686505808294323840857810990599353441839164831446600382650095357468435056813087064787937734342890657666927108377121332079147553089544484807524762588680145825408694578408142417413238165006302899691429288959946621937510751100741050571221226581965543882870336107412866240074867288249063286108016862304455212508562565345183499775014814438487735352795142831810598248337273570500300903848081194604814644801538521812639480130875439925859912172263187489881054208891848885759246892972782189637614916606134709213410881027410879673884097922427900282064399678572669063669441164846680701173428466871611758030335102106450899044800474299124436767474639134230942903439489815833655187485733725414876342699301740112079739129617479236963658442703558291853868333146483844699768685513907622002894508066145495422288491035814159053441993335152586017351972912784363217638115813145655174319694599899088550048525018791545105123242353487297972712600280914193277888223361286397731860987311030375572507054849758040778908125199114772263034006737461669713604595971445936797797373138130815961782037448196535452891748419351752877643771529481187312205588238681446094045431869727065748267238064712451813252486874633517950739165638718206839515815651169754745057516603422675474376557455077911577625850947146074184556802019095313756042516517425199253079389799809551083839544012830019895533756470021348585649692911343183920124176095663721522280343948066315060147172764600460041955921314671291416874543749964194745191452846441005887206642531331249250656677320846519678397102008521186547461493497185174346130370388104040130878988248350923576494947150946476754455579374302499001524097811872919521414066405318776263514129799558344900285609332273534918169709676653342047630917230837212993468569719957931383701358686641440724303171942657624926078051499054406760825772700931896015722381005203523260755030544136666409168424491336710804627272764546434389027410467501621419313064527404876387890685855780846101271044586653869798232954450047152154559434873224318265575638145658960942151210023217662234041483800580728423706438423831251046126382723408022662884956924002209959598107207710899703547287040943954418694700990846271864291909898616957452216818810713329507865785314255093352837493561809019679835066635808541367884589858986149365275844941333384811131474166610389275548667397225307205250357419079813381332758380079356554601962369398504945306997984289534192685540551139021463076834443028299812685453580778678771697549905298536299148822153331742104504602730851917962564832533109449240194744457918817965958771144038708454406417969798511556769216921280035860712932480147056874131102440328085174506647407977797699719165582328841160691933929786178796119315872881984607188437952413413078852825081916864341322186777997351485674115574486797981963443446813460987796095665615596391004780429342380101374785931528836299560967667431171068834428627624322566575790565066707562769607889370305944540564748136208951686546295334723266090701600549196083522559667212514217344285223882500543379977472175520179093620515671466895365445471894251753343357536307034484907886078310364765315315744649510832666143462469727913009277654648917302982087592317941422218041003492928226972716673660901185218492240776612493999554975533952130361206016773541002834816292695873439937603148179365341284270131919773413889558256182135109460062174760250198210405313062282353668256960210273320617769493020331971570401054689938680079096834491624711531098408950333482868940274791370216111403454525637224988031186797180078048849770896206807513549947251128225880241111286282894329619704348994403170369721402331216567406981844769407108116932888903418346000405647966611159358219355395773797963594728645799491197746401193325288039374500713227644296347699797382601817484664039215460870552262853950105746003790030624261768465642859441759266661160271962929037008741224259973254740656760612653424531217544891190113305822266718707652961716362757176973343176531529562224088639371890585795933550900227990366287380427044438598828311843683872748546377702324652345599126430722818753403036529141521998217146551644091902540480994284026557190596098083072050606593134515567503755280193233661492075351775262671156193125693186486783212011126682222816790223326206880911355651567331304881809008516902438261777726084130800328164121522195794935724759493500799904566113680609675597447909370601175812139460855381763054483011960095867882210731608519117768952555659596960153155611562671268383065219423659286705061875482809998424997824998014398277125498664512552634540364897844250742077137540921913517412626747831584002856683792701414599330606431458147900166778232246075641105022198244957703185980377625690380664195520281568091030872859461375068765705979392464153017396337207563857634153212974042318619423664403396928625728035493685232945476643321743004896067156441985926947512533784701554854984448531972568924969311467392960579877046539484398778697604772069247857394518098656071334537984110553465081521776519416365476898547211249641175953472881177439812220817286761172453576220045644369183922938390600677635301787517655442987498852105894003853871193471543097315270710732604734647615836090032099197333320401557438239435157045966582658728983425552562730473019283201983753762084318180486733669150309889742948024858021518576263039992817433916779730617789623841593989003669125665475716453038689152950586251783835491763963935682240324783750298635419626458270006312975786063465649120657126651580733294195424699686061747210578757242405469411786481985640882783994981991138214402205469333214918606545830347023751184451089520562167448606432110135790343941935667991374284818515804884382727873342105609170013053977316655505834645448502030098354810141650747651152310593284410995909249717720255316547416248887712188639575207711833099402518255038411261061455491599353770297359992447887019082160210866950393841286300612862266144827243414814919255930981625865579756517841037906221253453799024241820423903318859206653766738930263791163406161512235998593412828388272608343598006916984090583526376328587899270697194074995536605942507044532220816620426929668996026718377682150188811543628660267095269512645023102856033851598953467017377530923932671505155747729504923340045629978792073337237944783195580442943010451846949509055472460522121383139767846033329814913942442266694563616235165914125532462272072045711374404237645075644119190420225528456937957260502418973545816847599805098596717155806098239122805093712711697233250559041445590035307512184981404887604908394696157733824876270713324144212520604828226935086471929479747904294251039558306361390927715066580826069949126088023242099624736110533403396775892355904909092482190666289554427479489816907832130503405510441160568649578631682120945564572536485371136718010407122083819462677195331423993615805834517816841644842341945466568070463024777239322489399585212760572812288333451945467327059628030136939993889241300813013563850793562267498393673799030954166265041694748808419789630840694250435341164892993800084783547497529816381767301523099533315615934853000990219142601901208079692847036888796473341849184120272230431112210638435510662119190074402056802444441771652331987778835285652618927448868570578131759320276865031155036968378988166405313006280757183607705770331765858050807393975699925626414075640383396914825085350813976165399913951263947233533115640651770148417840794216810123771816306297925269237132693087937064054327666034135301589260259953647708397696938218853171226256674237268807788592829398586956345169311463564743154780607534922568914110686086119973032389939951131155733895860526032211416029449591160276637215780913995387084684866802052765887219781565247148679974326299881855982818609376622875133810244466052289173596652581208580334486812115767476317751504520332755405555412327988822505368041712217372608949911093404209013607792487267650018929773738746272363538607152278317019647554426947005111817903942320648303637019787828004740457559440128329335589980914046106925544768245301237366971951896028004348109004870159644790948756541576361409496929822819885619384798187508837466934714155373617767102379635965531290249224451442027820069831818957902316475384505873415319707992606273678763917798487730867989639716955829287235976398199589799412933787239752000348662500170742803184150241519670041655028379690504554081550107792598601255445909578967174136558205267742435852440821307829545343334432055312400813067898092527787835275696048301502128918362731229626731713564976885507366816206482867101059076792962163935276525814138196818672355449816838136368035826045725844695667739364310346518463163634479592277081314024139385137192808286777284457270978836775563785247969570528311113741497951167863504953267123475684235238195440289342301099614059813692933570742897357095143984970074064458630633079710169936308614343133462031133187423276940997478764806233667045752377652286818190488898943780580760912442898958065007557642417211534389445635794282004692614940118796452885318762708463316535105511317724723681969877776716630903121165070255658834857925151381701725138325793246761531091999688516149310059415645356630427025912160339739594201611239727758067470633156460415634657304212013017794677134332749564508462472397695159481281092207421009672806126015424680268593295049000056739353463655974378493317048979550943991066489681110064376190807367373681774829865815866860128902541391638398481529891169996321485619247407875244129022766781147636672629630384139579813917113451666459586438657200156338777314471076525699784200145401878202301403721287562437770712188666184760165153796600529942665821037772553839952800846572782915581698557351826178499091108326185475575643400543004505925714079237426229106054509428503191513456375880431489776524296531600040561220222605617360530207709209920469406009729456490065905566129191282910451064671177172514052820878892172261294577581358686359310559168292780764672392428394829289041565748622470637548353140455800031947840776683044888416169895348883540040878636084899953983853880397613167045344876979631930822136774897962680641526060678468473983410001253942694655570723268086181377406096558919199493284086268279211335802656046557479349637611117914645179383315738351290764537041726774529357747788280598975595162217692168484503312326606829210298003662603770056907429157752842725744137533800870676912015476204946986329739741181222542658573719205233224125850166810979912842760881570254642731376981985406858800483001946623754415244022936572796059547720380775247810058394283105166176786790960728906549066577709525683644352326090704814579987200377770752178474956726247398307304033584342637350248168013608845248421639680142635271609347583210553910496005009723620395071252991010392753825324070721711459987740639661722005997751997429312909882021181246339705796647275508951268147309793340371586394068906387951736784078210462825266650305540595710963288117742062182144185770903633584188126846120210506509872844091083078008286193796608073283973183246005874545544741493033071017029879230181720465129229801130242499227271535851101090704963267139016574919087215714754507766768062153878332234629250544756150513589190638397585400746878365473410820120226450257003882705529284770486539796701695948835735850049963577166696146820732790433494886966594933038614477906855618485526371702731925174789519681018382818407898892055905680572616797832464697776152156815578368615553340588205020885364406439556638293839605740580079634588066622933838541945281896491972636587193622476836044442426468209102967563356179685165747955139106308317205244138156629148138027527574191654669523138992827427432474205651884308713013091503298315065299223435320160540947659494711922713136592580575936767686011085999771991384500194970287088322079016041687915300284029952084420026482887944268352717132066811577249781824990029997677271947841246748885703502346076812257736862978395654422901072172135071517994737485755371153556079711395428927044047622116231399036182404464238585939141040409371814509388210672831113074566468111243829486562140485452732546903723696828832081507128671908057461874402288190228658603793998526648900253242007412096141050348339887380875167631839584946355646992975421365792446271897013763679143724464262537332357599238610814389426148801049221664651011358145703045704801970670205127784747801527778084336785705196338599967623936983062572439695562033564914841967660620658455397464601738253597333212814173072428215394688712728609894216689435551874549197796444211814083984284833199268013730320346399723245149200794962332635032101929995188983192902390780481640670965649266988672207892983548560258640991323690936760806993819784011892705159319593660345605273386390501341208468681247524304141442922032844793832829221842575672234523893904149393489370190486900448938759995755673720634803772188484947427429327569322786133577174635917759442783422785106540699095780843034037614768516491652957985362935520379774315426210958548526779338950481300331922460977898042119130542725708236506726659747802122939344531128272987966659000629662875519473568742084489184992755143719323463782993936167205096340682692958371793895924991746763224777310433840368983493748047946302856868137322560020133077262040125323809095117160921587389589899391698677897107944574488160291830176753979020579894383430114173294477600068656630141232570964006568435424767433661055514236756105162453271932734139794018429328604184734284090093978200544173963359321207086471690692485808262129205078330503448155607609958865568826151116986758377315624332732595016399212965162879109308950226544703829287540911177578404785229393564112758688438315592145846108268130369965565265081271795363958577600944389501448205953649535813343137680332482978114559553890612194247949670259240562407812489974038137215628156484216122425912776699195520942834753779453113062107569101371595049574704039755523454410004341511830627991349019841855665174887093866032654828030310833853076062204886259249439330781076788960893814200765887146482965309767139355028371448616243250338156593409131296256078962863318686507273809277887119974415997653931025495475301669852888437216486733881656246365393048616384009540073226282529651072876707514214496784348922398573621827616490952331967849638800897755872723953534455096494395819803858889088692575203681636807490300552467819275193588611144836896876868036223356523986730580379625929884867410336151094421932837079950900633249514198546392456303952238282756235399042953318733122401016059981186256966157774399472524791951598100495685112935565441659720186011342583548276323159913304077021304439532389064534252626391946961921970816661603236118651958842789857644578072057893686530758305111264306675861524492700657012112004343213440782202083326174152441221156952475812956067033644798941914362416245967657655335000687962750762886454740099905473483969911254616049677998665724767281971856152861765207705213860500426048182102910377860362375340821849704317491269155182157118520148194890802457135549638590960475345092309275507420822052018803327582663287150397476931422383798229889293617550484607745846672568760719712906613239834081504720772323429618562439620121421882852417214876542229723883903336769536463669669925581712196647385179149158355494359289701900651708420216530955377487823625101943311253537682288670760071207954139272511401362475386052586770760799534692230742023550169472786019054483556959755242314227075841249724686099260982671920638022088392148521573442967116181567233271740864801352337245759335264651592254955965494610682689992185088812559480765549735721532878537921410258556729218522953945371642023068604749480690988700024384515672642972221312478085553492197882512870169358269610674449292250379066782956815044699823550315747547514012381964208718199646362150069107722219266061513397665226325491307104616134910615225292371518903079693479753473991207450702852603887372931809710696971072607024295312537185804092463187439269287156891695669792687623807811029003672389711179048829990116559582454365980441577285312516511468715559680471758547901878098099501333821428998047184952802016521049665498438520558880666218277006457286938934720220847642044931854837551777889085942313559322626428458841103522264144697602610388731045783602293977181366234474009682133056063091309327042152728435195269583375077724885664374345097447621979779097264704224607759687727586816525067515032124571873479149528291776250606479384874654880501179390833599013611452951659945177091253781987727450751804789428876682571367964579416915706724685832845838278303099692686253998473996597748658268610526166922873496494068729882694233857909372400425166529782011720841979187506123115039588939417715191819858368354693296505843119733726929304119734821875923618909828301295395871742525241589278109429616775632409558705416555197310035252478478205363960242417540592449525161012430298603550229133178792192201003767007629060996912208888343674924585212026133718441876853657088143055914833610943659026098835043003249623912370737575507991630770384147340767720197953704608746524652539343084576837264732730529384971439146672921506178206360025541938019006675863109234596822671094089791020266991056542868190568205659577648254152398679455360737520991085754673287168119918025222203684985265676902227175572023870544859878834588909632373075111002068416790730890537335332192266730797781873195779688210575437663979272977507646379800880382201840362478284360111818608122419771636738711878728905833070358087573818834495966178798494158302553050332581067341570364262668196264792429631559624665505520988798267103259845575703250558553553080182099237410992023420006017591905028992865468977988485080406164110841311203868950904910880664147113699921805839740479664771288388283808242652759046647993526299282292215966563030426495611751397216340316629260394690392135959380230528704580628979773463983998498705758692677961706362639839044291331783897156093762668990837919423389606018884250390138534932727889840052203549903187002475415110705969073357746383674249017370229956389648379087085050196786773177154205629959027439986524219842549915118640565382985731935168449580886641648815317451149088852025073454066072424718140817293438454810699393182105289212483486086951934297444687293870561305508434954492867235012128184416745217194959753590229772521529255792553114542371784117745518317386706634655094842721810066218387034686334046564661502437350449357243865668849959435421823036335083667498991371303392402439721894485616669564312496444384092657863942518713912464724120144389372248472454603662014550603659182668740832126467002056477748978603652324537197573857466242516123125258409922288851341636538530890340565591793488979577668072410397144530287436502546968879203180096781708735939706963269615473077346116862108395508482085769413574144068608966165241973515511502457766601094080966750348820558841298029245925459450706043748296941174618414752412574901348054516815804970934553823816426549497064928342567525575477210995010388095088157017503335744281293748978598649633394847639299398988495169458034198673617645923842818525306439492589024856898238750574495555097679053577981212649655203373960082365372459699981162485305001308923179106668419478964356502052765522529250262572046511290559004356074520195183910831776156545069919288145008980578819613160987011063188229172161641781266928433731316838660497161819491017911095547314813137641761107328449151604350480868782274293907873140500659297338221260440852414965964259248562732254043330664354069917662039677446274913236752390045902980256523371740274524905789593791602758837032859285996832128761433647007096366500979700339505817715239061200247908841457737005963274344995199890583104041458991106710565651996050365232091429843330641722341450136367503013409752676032109944491006165163414181191606582078686217732565551280997866578941727629819361781933902846990400310389901498286908218241604505542456647580877380053069927948552773076447225561502143144074898648025390961337740428019968523176912471896194948977683549940048534297772448953921241347901885290239649817054488979191361048049158153804892900420769941675210737859850071922988279218060944530338305938257067613264717644755490272186260105105713232747076695728624729740970180807097627196874479694167925895633298989595026207048390414345849445905782977147354401938453579981547217747820684223276003556435413386444711794440535545834346002099181931664392193735847296021984085819921299374683289624048669677070119959479750418997366526211439719689114896755772347574818818298139085419955691034209873712681965583001948266179189096185862722496847093165802793124254138312705367528298165175547686997053603479976041204152013888366224870302766669025724777424368233109926034478806688248130562321605389831746343783107748372422367161132547425518437647502106651391874216178524070902911062773229130933792297660626124495257377752116254068202438466009629460724946371415569058384386796296606589152962695450818895855116175824749232818459564242007437385570844071701426223210100546839456500302930942498829007618772989874627509503245528998432347519093878629572267607327202345139923179232403551027883541675256704599477729548289182405020742803351999393158678165870912865030689303722511765711345708513327199358305624485059843240606855386233751128399188412446326366640203089880615840713337090055598136693112669899279364816724107739469603967896250518209401424469516724085214036684901777175678456882733593213741723269939120282005894579152711286681358522792028997072819459941463678292519407483108496185394759434503508688095663575969186827120815649552695317973097665378478252653157973862676563868274123794830240756877055988173538341100361894572795289766389771694311150860123929534484898895947213709838817177226255995957478885804019858140503919092565068881345629408300820870551856593408699317582007766646245012532151053941604979063292083251789915767649387490391257218046993728504736020549191113491713005749732188277185183353793715254423914730354868541133005901661364184924049061173986735520057453174949807233524133071907008908356668294289988781158525094469917388782337925347445871979585852535276102814157879499522922740280231297123026792076114014410271255528536220339125381514353563158835876674733342209705051444456807301408786627589437856556449335803398799909204500862521261181713614460842614150558454447167744792950266701975052861783002207759262419537280123475033928335070860283629526964612414289637306320380915818967873089857537630915651031351592441004648692082374713155896976532634799031202872971737593923160502279178676320980224962649288433071632253128634515345403069894527039322722065504921233258435072503087825111477784063034711296370255286248211392722805632810550573750780935691433794042580813453083912318006209765641310860754032227881529334753539809302329353449576259927141765437340771221858660464821893813797123628617126555873129759601781291888167904194571717206578334838775962641793124796721807573659988058015401793598452094805532025882547598100563040938895397553176792126269981269925751134513402528152727648358427050498133827950506378060970779367340887057730978094320163372481601146551584764023526017643846888416943081495764545028254218460195233452681767850463540759000200439666464891435052971853282863756316770590647397864203172229063043242635456914738738698546938041812405865590149270123909759010494686312687347070884156141995594761418993553842573059911766420967440055525766634399039059100985127941212708014094865173711343998451825574935731420984888886946447051668695146275341349086950533985400680878724981955106811757946802090067483248238688797586566373228821524572088979859231816733233582233968417712516898218240434233413547848016349137509413204719301703916277059372355060546994432313675686999789898568474038579263276637225674040218835165422997505994288337643500239785735036386628446723167562234943006876315728039804856303829504845356480576652872735418198821767036522475945800306711933861011422701329089353263168291675888137751656815137858372540709434038714837926463865397838843120265393973883424386485964194987387415244256206390749445264045424955269043992674069144207860581056376532001449699118074668218139342371230242396871485387246395030352489820031283891561360157828938296345086442344258161110991033779556056942160222461867782398820184979996491585532302479758117011546444572382110124747711194117605682327314317507546302100370288516300040916651336416106886282757382969884492266085850490521915355126583799963444695948906752494172137200271710147813007038753341086768587181053812786774383789728789449821619042799493050977744473719520269160380700851379186705881289245864933335216613233418910146955342582699905989000409476820323404562644218827826269744341022831200360991772849464003669055522328310500027477935734009812800866099168996867802704075746536653809149902692724004793965956626024767641081835457025975118664288137500418687462642896274306713025726080716716427372944369570509365963186060815158464904846553444196195664376239851548589448252568901217693875664622342402829442843292945850079131439595992095661252859830368508933242760155091115264977293223426868739898225270903997170738767070070974013958909362077916024357919446840453035989361080606391660431269443056394780428927899612973190585506306066772684104891984503744281959033624116384898145185613500709473837165854437823616379354363236530266277262914748686610145613579804787657939496239260958663798655365159782274715429083538184320805859680942853727134869055542777749853731572928443916119735988071459237862667587378154793784031727873261278495671716701446952394022447823201686718459087755536720377654740297711446936784905410383875773962786975384052268742084626486839952400101263160670548811004091454512647930168721870132671629007087424627548860978867885967298368145759966885096438865454096904366601618056498298483986349923718482058516612062104777669939959000048023507947311102363116210002688619318555064373426563366886612494595913641616425380172458261740232542769056975460840602287579705352722272449581452471829542972415135196333978130562860303051874834848491829854796636803391115631608013506686246511855583610263563776065583313698235179186972286296145867693028509178432378782799431032882975710514028543298406004227015571637411070785324080905310400273939908298604699718665997302352557269413010851501158774378994481278350299176808141284565157001145717176073105834925175951762707244147435269214844949865578647912585852614298505345108637005935250852012664470786476166047705019558065431445769105261512705516440513966437129188060096941316938174924871641115335195924151172324877662507513293514613704033310155288348265726901044205520224786135960152025035296207165385655637398223079946622371259731065840814157364765304211085298744784082311949734782213604489225340278765620237492552187597756020594177840652662999369236512635083865613387647422261615534659276821934288861778277313078803772618202202516755108659951071697194658260438511268508048290396121986479856834246279438295401156203229815046241191281354556591665654708543585112119473215858335338209247441435692306742824430980179280461389500876428022312406952151115679986448508414629482195245621233117320138350545752139819451817773444283093848841046318340353393399194632624519670349565505672433651130032259465923028005142957523178826039945924375398541277904158089389525043929564162137580382262266838349545389474875124827689444156684369669697649079818901964020903263124953946300330353910837830403055607607543805795939360102092763314340878746519691269434517288956618705272075485251403923339238819629312309074841967511204490151207631847614120963638605061356080597415626741104477214813411238034071274628610042435300076659473822543891331834795162362062546032514536629613025781545943798488994242473552146054910997801593918365179148101369906487111991408413373327836799478814356457465347171593537156604607960297822491209939039921595390990187532383832753399340594485078561510483299065061893439268931695224089303517475062379994289698525569625566280457355483024449819200460599488278167341773942468218928414642545226171194544729377049154809891722109044219852739845532739494748412777528031871337861452516866768565408877192265626958786048665919396557818796417256350394190373306360204904477445542424629222823019191581805531040278319268052021857272108391474457483752672076859900321720403246567748138996184862204424007078303854567147767936000121162541964650991398051441496606157864920757339048258778769733783012826180612524333616531769894586179265324819264664718811614772269852842422662667490913078081450335508824417067047402591396178034040661266367747272578811310971080842705803487332417407147394531005019438942669612847582192562590441785946782243092694021424089495000768965705461799444673901033391311766769885494115090134591460846639309962586717637143767614590511516152563749030706713115649915408543209444240327025483320667336011281294579994307085160268433466753300712361862795742759833624052720508345545988655428605306798805342462714905597456980715110225598817021304042165320093483021529058657941313940133395194989302973967138133220128293026462513100646829597666419921030600545456977585674077736817097724551587733422661621009352548286634552582568145543932067790473980791566150341060435778183195489302497731289848613256415094227037044039547915995976106291672873655814734692671370140260576173738508585910794992074891989000432425518474761666240419744946662412333204453620784464565441733929779572693405308263025984800001888607984385742755589193282985412082759382455009152074179032615181606628517892341453451274696300427380564076118619748896408609899814549844303031101966361331966445168195258198531033368313142750988515852475783631488396526579890027901632211598918839393801491190972211661543645309916427850346714055369501739343448319938266725612218019382494262558036183168624547469804796166645185918481663548827021037850740463049389490094213293644074463307259437744202657361789567583620432242102415392360260845636323080593511931514022242255111223802511789896931898259381020553113838873681246457590370888073286628241103275610151302908235785844479772154653512370573036657265306190721056819571545999494552666636399571440511928758078397101629780431940280156577417655847202009368234556378010290359097230045172437227578315650777079297141672409504617274937796161703679808810855382403055481817338901568706210577551199201433250366520840986920654661395430980913596820671818403818514690335341632196928688645556965256245490601754705901335034379663687993390980178829398328096779906913718132605582747182601657657999908568602283664695206244619833662627072938525038675282558362151521940215625595260615557739504338056247163511665529990158137957845795234775910108163307764118156268364873644180584965779868694142758577045021425044988540571491850896875490540024367480000604450143682839434429351547453590197970836998402328553801997840764196694543825899051123156807531517250683704262910391479208926016824065189233677591099690966735152435547188126209153890136961287040082307328673642443354231755966802746700074209587144007937152431906687432324039983543371651192261230745111094873462431208477661395923914939628365265027682976769417523244108146611157790232532955385513304057047949784638995948904299736062042363117700847380982678708137028409635519939624805904563159649160226685783816083812103153188517751319981410977710234506967695926714950738948205177183340859824358279426483960008195868966271551828248064722624297013676597170204993154805668451662962931028655573705822966800515632700964065504214664112597830988602462631342032306376470950701823012579220202089140249256525960260319650032984291312042806516157905131337806940258176211197393286346151340310115059628392889010542607770656652648263372101233012263381949038117381092722566823544771375320491355560894101296009798605308872724846964721778060916948996528683572578160623439063836967537986061383115397127071802912042709374449355593883946972382072387260816856771114873807716096415948644621012849678868994838508959403168947081256710272882611593244310512118973677900394424190347691185368648198279963947966575948384911396203517791018799747280076288282970483093397874929739564097090726158947143201688466576026353337289522246960549491746206485794589233663152475898157846830321492646305667502753005620472675075663002768922462859615932775471358779673485542942594946828256929908311579407065156374341864455819979053117289625317596623654537990878333272116198677699777032825090512443956283054276019705053098897958938433718211208668475175696038830400775052155006972780357345969175291013767618854124777184179139288874584667151958579644422889451235384797335512452450211852091364297615835961873746253214662278334190206869880251344182401639649662148833324957146583039248893714351785905386524337023421899919336638772257042361177454924157863405161619287008202228498823574623111077643105864017181462698355485096866827666492264405556563466522937536255667642222259234527623793851471260333536552226127528533963977821057024384749733418149714656832961265663303755095274040999152235312734944284075521445743249670136092870023487684704923667599134076447937116827602568546133131610213589292077919974206337957465319727204088549414156493458469134809932328412408152271919051995179462335280920016985113816953123036474471432051902013436188952561259349512550450345048248811740817400868847275811027515425962337401481693404395812921379682424369928125329532913941775315602739972853890780487498968032296969001404028855069427028103963871533111501885099915805357580155239912644971586413750005945187281599299088521338244421675604379025747886218537928682883832296721860777770763652643407890180927622345144242769623370678839566372942430237108558608350327379042031379672458862311028044213203189311329366507852620728574304970383559916436922278997510818431823928364678038459208721140781536107384239562388320780344192220294049879533425420806793061098748261576381178328242844055032729952643701787858297070941399398123745069834142161840963006559884254319423246696874659440581345340790607160257489961504710965071214697460928406321689381399589215717090991440797123956243874224293435815124938491396258595309912801967637375200975561745960678462200149272576020794639110795591208793495127545395282227844720854528975322940261688591489525664667682928170613642081966881310781888827083970126751375065377957606188726828076821552368252384937181302745974127547323303390159742895410900104582526868545520300680821965459975938231229179519643313300201588001543618452112761151342314492393067818166034135716144479119552335564545029615850158430027318388254132541121894327204793166337766646643412378730643698320803573859531023058283072599020281784909956540790699763711523791173294462638263897295208506320474035309810070271391387798989330729145148574645738954828198334424318052223795635617536567299509293036207306043961420260306240886064365416958257122780196356371452462762290225658525905961721350125817736821240861435773906405111277199189003053426400690009479639020608173650645395326114333713472721574033647074220898746848218025483653044098659770953259684408218747686543883616918805029793992276997131726664005716490377757177387152167867268786178111389029725993795863468269109756308744995463968618236783609076703446694975322473167233656828200111746335788348526711185930695780779593938710632466937920922624587139488523080012126259555058050780336540062590206325317575237795253577723349178409599632724040640156852072422749994647013559584500936958217725724894796222696602423426278385987017629706270142079925488440755609406804736381440241567461226785635828082033319577992885798377721938600786350960708204658656717938505404555740348962631550997699766870259756754264182581727597395161752833947810912402358932328086467939159820000187624968342310635054784764486571839967092643017770597147332368360833097006817157286812699609196758264901813582298440571200097432483973028667582401997953927295381624101583371159957030249237521815217851932893071249089823202035294509667446955077952476119916628784755708451125789197962788737403620160269238248620848953658756521964745486565236356512410564831585589390418565047681222879560572789788230174425028221869470877283505717137530274011277985500698239119597555671768664124543508596683083868629956623256899872814077840641148188051486753044341127073114507487277146790835161582165217765772304495566637192960897678897500313382735143632281630560966906686360366781085309924148452055160464661243146893444982463836990291413485945083694461776240158032616882373503333645513739495770359966446190665944191043446528381426607629184685719968310995712254899933486519190558335704463646184525793730154546617814636157905145511561878919981988261511554853565065626489218482938584333227093870875707559266395854366102024497895325098843958297504632680142357763162617130005328961076381737279714964818774606240279620165192464522062620664199222180997692501026897619424870951997123794994760719466612496110669685913492625651407762856405140344569383061836602385817195417054762066805480496906836043359445303822928713804058658203852251494128567542735248060431005297774908794761800005952434228513772692438668638516935647925854147132944274445409904626239935720371229533438048080395198761100749443775465974429477350914157061555929139887879728709298358563125495677121478333524739593850620845270292291074345771705157204033924275343416888761027282683104265137074617041847677402882264869166921907308189691797407841345351677157301933237057795810488553049636974205138479154605819873253071437432127094562937358922045929848420676046839907014843285338954311195231948546341894224330436286238270271105095148311910067063492333838572939671967862396365608763915541309408463157000579604680035001997570722124449362398574588161186024467397925210300441270693991006049998648464417679108579354310561863615467336208625378885657823662058821801621244760700028517700520861545795794412241780709281945479543327932370371706693718496034702263048490823525834015950524130496015907385531548186484908790554277654193143844679757617214659953845708198577054109368583946909665451407351868743258682357463189553989226583435205095559920378406920572620559968539370525634630072599306461399791336873327595610097650219189704178451622239763214512188914915305886710651296019397040954473366958781913287613636261384719377813013787884031576907967263371597503661543682324635168255035892930312439039512951710894151832940047059466304917792373595111322743923866140602163553317766044563731899614964858766431446953439702583476066229226749405888887918079212207975693913714287935704494006706890361606201205303141733630854861400024377975837463052884393521119077248352696818758762268069190442196150057129043599278352225955841657387772874703351127970490582534236165047504605367105594403563884332320595369005378678776397347214187828434161722873784899381090488736161583360269336739173681273870603744531633597058936741588882851093936353795320059954133607886297728237450180478668152571794954288260815095851605180008668539666622833717186925466867572697262332369201338633091928355442687175731724384372341006376688654190115565987794547727829598139687862633802001031936155239471092231015759191427895981110146373266635148843865858827202063244437859451520125696734097875205531591087675006321063369738992640032481517547483627317816190530700976497783347663620447853078798706358224652213714251268071410040182812410498378374719040991982335649747677898557954011858459183001565466400188871052563890049567364679174170112069261676352379650808620598193704427019002335056395312023294768672757474318211323964978615699673293637817352962627381874981777691959219316508555718940582262142689769814011580346894048206679699965585706154511602169470638295415124724350137008349372947410205256348335981618552035550689294988395301244823057016111794383789376761828083485047073867659021555950361083538885291372807841831223806178953858807870947227958313503548522120640485631391267422798908497670342001824070462139664540948521912497309714490743855289418504597051654707706677221935964691422054190865517744683571261726347345218440303464450209265838727544589278674873731166313242905955263383623328873497462840079550600433066652367654593756058964422409367596308367287660992470534858929195234178533772968188683012830120539431614011152486469234851424077455039038899139533411760066020360779780734030890651238403225282785342038757108496936514328159999689312509767608473349455132117874497165280430987615411095121484050583031379730193250428123719872754649662177142528816991770387926581662603441679512404487128582938958707254482872739330218961678622313899219160811716439158756644318843281698748148048551203154315071669062062845086969675934016367859039130590622770034517947274247259419801523791929942204975496083524723163308196812191663079478207981886138522228241446082048333483972178201090629039838811471476273792537770172149640408530518064875991560216349151453824178711255773525425318644071820094248080877375274711848223383459199950407116634936741002080999818763582661215809107914306661139811201434639096330952366746787648928189950157068140178682511651478571954465589876851613196930467777760402747238178984768044667748569079720197561237984883217796261649315748693161285283225390889871155122901103588942766947231116421128655381333257423012491430023475034183928051810548442667286573396779365891791044212089505351543079966310545033558685435200428512485037242960397830465193727428536077396661819999123027912664797686367195913324575945327038623226956878801114048222968157043196811144366257782127149808245355041777330419778166637772190174059481867820416541174689301795428968133175730823992718988785148549839560375434137332212235479991326032830413481447314641931754153939095866094854829402455029760566262607290435937430377022519494614759958448817427851703051665502015359818206767095005202160163405190830416074595444632725367225728167844248787602802788372491589638279820205520844681392476456829882670625474124337264307587909566070385939930834269083748888008817902865177885599094892173455467717781100111776903163762759048670926021446428138223993445274004885807001541274014012460916734382706861037934902506514486743736500322278136176079460288981004537805683852765122279636426787392417337170149361555898242694127931676484887414752324557803643959475248861751284507529212994050089248227888458850728467465719723135579379626939656938317127466135253370671637860135918578452894544054501104910360135305489414841481500022692260091048049670216747578994126871428894882609812819104630324926018322389045318918510689275535703741180707911819878569964691580493512092416087493896669930230827484469385354035303497778311664476859230406121973017529022382984048698047823629423800460694633620690465652437464777448530828929439919998990735036362063033590208499941523127993980579025771986003799707472853987995801355434759041653202263314177379543024210413743271756072949878291439751618703955960997263934030019587446195632580618512696028537131834384256971593294511869848666796478710358315493217915776583214879350814938668674492831255020194239244557588790745468591195056052270036489017936971332509849027345742297636212416592055597674461070593420265518565350954620630803326491374492332206547509523211534806088197645254691895188196118145896405855545937093649050899312379777520846067105369901398593631618482398665174510675684887600610659860782415496147702606320576632515662656486717055666331584928790568307681448953472275706418480819082160925217261106627583287050214249566082323234384308671358439033703074206738987556309574346274547036899848331627705504164031878004826701512646356076569353064226876392587667918003954499267786485822952935024249199592558019732867282857411728807399185495864476235754964744269737832629343289567115214618429195701070288896684147863654843986193654290115672576543388161038186493853189229348203477274537328031602373296785035434218671276989109118643138841762870250321935930623665584555207770753320065213730891215194459835981282638192391902794524708032134231365276382154106869630755892714807397954591197875481730313765980087567610552094072426704150536173877447455740402873551167644172209011050194227037695103506018730955322805685975826951102208088462550812189056599389674848245941277146720972633183501746073391043802541814230866429491328103732858700458671976903351247850114809502096460967013725847180420556115349331708894541974257422456016981032139073957680568737902154985103345008174277606928247115240138480548375822052091031516966210380578017920010785434087879510629358328166526600250295170033792908249583157815926290730834262412522463973510100472010044888579981499635392914921391194431347174252121963632812478529295918421482878583797694582635710479449646958701405071586346738039714720735566880852955900591369132782684071182048885080457023076067052098702785415245569646620297481225496474502793599329485461195797705474936494828789159053709704081994798863171611337906498305709653026888218971885337111718699229873315915483760005998845956861799539454885233841691590658194329214681677625680768169405685031138142937060187945382208326027204758176633379725789170698311402941949893884190236789343192512494999131811983032889334117148559623873988624097937319801033981765793388524279058614498695601815747252648256139569952791024598315930430609430041300564147144274658890181754063347040576237874352874850729009592758763514539163788268789911734158402205443043169005007915187695532829049999811241509514249204874420895758055507411746245650395626979858446617578677725230578307408668853129067696722681638160607020312181692235397924606490521694253774316680674999321785048296038221299425941521769102691043822468367811029045429859901493728701444674471371063969716460016677832605313214527980610313523091479709723565522009155924542751262977729186952412327578874135377855461013469656266571982424792796989816710695256125831152822952107921940845201756618494519699292783706391543537565439202833773693009000097758871513726238025947590217691752043875219515094547022891951023889864898720980850822263074467536049695666509384921080976083907574856137545624478997747904348661827604107328849605753034602107907688080023280393882093377713340442336851945644828254881077863774636036822640888986680686620356351847453589091062119458680997574044691136222260324397614111624278987701539032582218945410200138108519991701864649855416867261210985107985570129959997513701200175750015807696665525599243640798456287482047061091825590233203729711819399741456029663120031125749652633710288195890613639189136036783886565877010079652737808232418786170001920313404865231119212475644581135598002073683127768078470035422655307371078618310361075203678232702837089423605988074080411094467025219389769160635011529628470166823452928321202209012244787316767276857729412408123077479261497979735911065748007470071848793025506497325191863578401484366267271779155201912514907148825015978992741870141647738529645518921458853794917940881247434931987629403104529278131553512284641267834149004348718572790965855473533207913912674075308045051279002063196526534325426474544092937038317983752780658773513686434697390623307389051008997590033273558256599973384638066812866947768798713124903243677946048382864513417533692422476762177441764585810418863352897651982862682279931008700061035976221806190638994920911199829373972276994136727464869545094783100243155181744332913996009810747886214093472139935552625870756953194073770642363507666064379997849201707493023533193257433815126551029558547037857178038914932561232043575714742067784941298434373590144572060526253549673828458678449752911260709258580140802911103589986654147322917860003860467170598469088651186935515095209853272246591876798631876596223379656334241974024042655317899026922543574167955933736286149764244024174752386219458135946541808134588753393640530668101160851406377542034427282064045010431613770281099923849037327950767141917455509792972779332476615532014756041536382496986719777530898272697126415851643918045819570452581249150783289914327559422007352269951117793229072571406915313647457538637875146947434567956594897592661539877142461134988651147226530781063787934917569704736936129270184073754592355266713417794220445590867564218550243371185480627673838727428054083493242653697252148744536204564147095997951066733092733929944844730678442237491897038804949836134553636193402315166286689299614864538119331768646092426661474762859350548937351157598330619163301804000275424490399166261912472627751543787528141033386415412490784515067980386597176457121177272561443482083110070013519235916926476885633747604211635323950882150184924817067069743221887939681631073996024105303595209976559688945020494497963116088868326490532938182237626951105378216780668322745569177232250560601763194491865344295003777293877646567698939118764059809625846643633889940979373040109089001621254094386509986720324710208549572399847919968326363548182932421199200840890913787561490411598475852051932843042705544357425525790307416001900643104781325579828070771790577301666831264670719049951397691609123473080592144058005424205524501712066056583510339161892027704308253353858049744921948507319226001317471513758334090194567467419445023487759725194433366038825043023946454298921072440337457845101838157446854736534728653437159231300375416094837873609144552904223633904254020098031091629270896795445921206926233084964344430871082643132138713299454814907607658354267906407239275124067688856669922663844809705281022106384239010111808269861498650324696644769337488810379844304760815074576560943083308017279267802912412609995352049528844282795327306209047456256780922243064607585649315135794790035307820709308508955843596528903847031720389308029055587875023889254556072198377669794039584375404879230545372663032169252147271717173980636296977859820154945043184552577455453681441573245439614510726278398518575422025533783531931697318198945938549648475915964505580951149641979374121696282270241507011408661438301554037467718826316186876011969565125797697749833143719108250627637656137598942902077628621720902425315450697879361606840370891839489449968521084961354012860793899583211984711066381036307209081089465642830491104586175406950652715938183786520326426878605377709682961793658112873878610294827052742577769680599014748108245440814049806869289087348965394890035351130398603366633376620050642599730396525090754568760749477661556174544112656933393695708568030055192017291059589365125422700975390676973224166469866238264288143408104168940920113468574799462417110453369106155209206440918772894341781666717142249077685906835884925550896448390398660910244176757638433419154119627491825266913395357023374516654688934089831532881133152721778651761032873228798989725963678243601249592116139918261256621769335240194732522523128263529036169163423280193951642277555566700655964226768932771415954879876232655378515005598488029913686121948903169038873612610816492160221855947960159204952701128112161716117165091196601935272037473097164759331662551042226658010113035430841346498676211968735632390921190915095125396131327031390480977793235108597457661611912920497139873372657374434937357926972878430260741462323536670851910936420272253969671088214010523579735659249635407526918856865743291904546692572773408043194302040776100428707877167415442016606336887591306239783250244021844326587403105888114177023970403906856497190284401379606750651691396423535692508357650181705769532491753438743459945582645598833476941407325729771869363595393771256337791312012059175325295493652149271239561562485604165517754206491679135388478576570955110418023136072698851379973212184333978477323892928817124736846977743002070542028447791262577878430644259119224118124130403617445674280310344761498699099701267945978317604953523467094274067461169131717177568096244287681827117320006186880416152211125102481768806078924331024903618886539489539278086157310175383720250448466729202920518644138234544633151809196825994875396671521415385309570917685308560342014241449843130404847385895386709634043850680941546995111658778188359141139529635664092764299673093125290502458387620421861065412383329863209777185956314556473336643144052132984503518947844976884672779146277943248181611056365792940162098435101381422919385574579929513801619953273236284452232709476383536090281962440570317258525956970380173429830947340617399184362958372544012203874723495628685592657629594617160738161887718092499300787430477445176732990788233089869441151754847485134193311685848499495367628650134464410060415830390311381522540500647542465482341423736528035671952080021779698899703389693998132648713309960750529830319976561045297491110985070382721802076599917952402651376189501761697488152064445473135170016080520482071429731507577295750362665706207244573786506181359777063710710630383045109358998440599506389928455655650758711311680744199208543100563764250289863772022926241187947483873384956141959668365274704415690608035862177024281105439042169100806934435633511857214683005929443995663867570279312375457875772036904737876420711985651907324889512378458401565883873200604700058691889398845295506957805748398621887163788020909228890852302568427834603512289007440617940021829983595705167771760889003283545866295026312928384490224067766323753309160647365876720158132349307965051612146099521192493093884418693704847127334725141858552158198110698807035017680844489107157874031630741169696087369582284878457955473138480009516560140660027398410761000156503889677865230613716177818406587668621068961502231412533663175771758777418471016606336912343227260333720486272397891725705688344725381128845777734403222321020831279101680053405539857095701437373152919553241984979219762236045730675130990803810334109967415851367848763359169882875687524325733087779541162461806993781452670511274480900239031781149144964569394119441175192899777294467187487776567604087865439710297156491569039143027110338260823735561498482298612208685251876031494646772543230870709728464279140469556162362629019163123884909018276712971022550816818973076419997045746618181144851340455253243974124004007448330058882830872274067258493778589530115461046182001224583900747954543189735737169546130417138556165376791000185205474479121279969566026665755198092969835496832548994070847773050972361982536632335836049869747282898081889824146824522670693421909798379225607976550271623022364275418989578632294752149766807180595574801401708857009912360549195346324870728889940417693253860540015482084422991315984509373126999003867283759823659495548984015905701172639630728757333556617528349183661726725856118509673083010186876125879429909809161409244394857458571634188178367563552947232135312133559754463984918314936336091235160194869498225059029831643435343272992382574097434558599187282056399270219052419602906576085265300883528097247237686738769779337768033051796300412639238702597769718455900734217045843731024065427382140593889838285377166082460526926060496437765333343352352896618709614612292246121590100103173121540028131766446928865078964739225317504086259711960244883356896703816395817896272413287793914588627636352218595779214658034196976454885765003888573385597714793750165445116452591430822477880398954838421043752707710463090848555274913076946815495864379859895433023856203360766433937553542051061657342360652502584262735165559411182060152520438615302234087944046064737979877761407390154804888577787191831968490781324574624934728095812868994710335372417666379418116711639314223112403040504896474434904034330343936824894027496535375006181283511924255480334251597052399925484201216624999255241628684909333374614365867604679063724982444445027967594377644325377734394326042991442940746723872263775964572242470769124123037824350016942399805057642184502178077470579239491890212011075601195014069773081241900624301400025946410759496318316748890391269237663863439285940607593395843199409149708180367259761569364281438236053837481287944646230916963517523451315516997172230380234739007041197546907650480530986832407529947122316109515509049407126256175668290591400521016106427092993514773519037355463587650121341253525995028507398082042510301375430438986868405512317018859425124194372118436569117872370322836234173660151193010328266477468778841490248983641494926019100592293500102517268032773617252343601537302452042855356512399915898321207795287374208488816110311972073060630719443991929621081416342014854302420212179830626458736892933510321621378948757528705038349374362444862467250939495568225962232491507902435010091627677661483033407254066801057492717390097434912772141138683966941532501052446374658081599336426761224872527966629704160526926110889091566037551410899883179847738428495437696166736661617367802654949637415890849576211616156409820670257966168061640646813873381774526298699591420977413326344081727636320998551415035155891282621375806264430425311517987403437750350157963654371330981410914194644144228879197676894673579598226094356455086417701030478296894658891496860230289242608758799007052868271006717867580025023984075792440625074293026825377888723201851364607177883222363294876173220299311931935357539556455947258699033040333842978776163607627710598013254153640163723272308826056155499486437005578155962230678584945695519638800541957590079119768244061643219255307961663972197952843401186780888216748358293580792550762456447380766335429408156917590468614733431398608658905737605895671486940048379147645676694366596597057135495386219680338771590047535112896198743461286774429476661705068014747802716752887407107392844221383749793510523182733547163415222307722873567702550731364910425305960126269006475558227752962423375609576838288353751680239333514252597195204108582773159911922629864962129338070754266429336452100925405877652503003279557234590823576497465321361576635779739351044118464364759006524278276024209201654307589382426482438878624297918733650307293915812941432746487140309235512466980636911612145066711213766324673744682546685600021436198616164031777990051408684305253264822717722812150265685686585383140024959115325259778615320659887553563656002163011303370272399609377102258861080514038071338832913937318349066021115510597895221782930537193026336759348757846527536373879982594628762025543405708893294223456221957436650606253328457402124844500047260951684896098567576648366723694766169411179892770429087059801479871151417867881090826486025928002702276411984723775166773960066159931322533230954050282707168556259660272622670926435802436872206697240178885772897537384968228634037222516342017757467947000205590696669623961402875807137566415137342935052547813131581579565058306472159157293579513707111286888413881381621802358662510908759495624869798478422680712652289846774847935732940075971018433508036225011935204956749141030255772972515707592569260539165854868261871573263891377144859238776108170558021292811643522031351975872411475155187812792568835348040189047835827926274777256092495417397847723433322470064307098144949519299533229668187459501944663561940437784093244788183119095992636694185429520055450918894316955337182364581258996776731007878579385521199077388723230869228509330067883725839168524331708252702943283981475106348836299278873230377897221654694211959991810355227234251283248546779497183545131413997169536013539853658188055441027379725657188599437862159071441579331187942976690972052290117127692599327923817329870243330973893164151233422750024454162715864489737944977051368573095900556215998884168739212159654655659717912310140139622667713333071722016137212419750530957822902966743138989416243487800117218652923726807692795814165198299358168659015491156758915673108063603447889206790122201754072614611187743115219436243041856857417893099638380301577510915555868040224396209329631148944472614839234565763346103652019592013153518462375544447694526885068752087988958277269334513146711841991413453874008925508066684880290709734011635021275251625466305719067263104862005699359624221970718577832539838726218509153134394607876529490132330927555179527372995530185481989158734872270885735232596093254081911632480199733614675686372937655658785040280086045050591411846737363317124199961412074513061753094662293720234749039761345944177770475902860234802811122460990368477534359256288813069358713642205553487651528628561581601078481688506709478328064074202692564197415031152081364824546279035809823968264771808477990649459683061786107932800977915409801732150561704793828624508577908769572968565870390406850684409873558317310067981087928767442982222057882353548144418408658076006861226914058502479782938267708200338963399433540044294691029027924563573051401210487857110803135678975968938807837986919311320261004627502530002334970523406714243414807133831383188232898441521146905152551483417088352034430591835036744338421327811505436970661680797981744341359642449309326093000448591659106617405836581890774929266921103258427830364612606778226424412313438232448377430575212161288628001838301840185226072098197547339341433040170773024198503962199308258271989631852714320057126477426222391629699978473196295058737519523017785875940178436872710478620476466642035103543610029949086311265017259957438479414048469622179785495593073568791864882992472523678269511620176172746374120005595548751899732896264058309273813936348149441656671312614669443115917156227479571820839130462963137571478396791737928335067465937203339041100018225038022564963770719870483230109243740501564140198881742084635067609811017825818226085824501872325228213048416621817217624964549174102727932345150712035590710983767316192912932368508508334198563751189662197221212620175347980370064784286298321539991512704357878915349001975476936523521292971341633382347897944810906570022058338803169796343138547175402011017542735644029523242541382032598980183026745362950959476500528600121554637993383203915439240733176807932631030993669116531423619965215264559611708151570317195867668818298011982099062032300763349454980491520511546871185951260589171891914297584963822354904914745690242540060255963048754615911403250818638722669587521583179897314847911778896992535484615693541626048971931855020848338196585495051120733966553855840826988111359295242602523463696489861866641885199877162906603321621908345809731522984305784041474321997117956340479428343015365476643702920170829602232805851439827577387698468791579531706418796108892774134407866220956939702887406746883821192772631558559932340912869795639436615851216200110658430527934881294064763443707192714382189069374904599050938108449305774292976265318183725578812098458035116456145255613494077407384690049746914636816299842116459657379515461331619063018990255669578222368833981847106409530510559605386909157876373929910684520286647994039607799131720992344980552330537673978512636827068450709674534199961149147952634625805540472611460359445278813749545739724451515074104217453788614992105302207640124843798847055142103188999968271670137340675341882813453567891864669901103897975847237648835759654841284078442621434495123258181695162252371867513297447630572188013248104076927370141839719876152377578908739564527391474969973123838789510259399041393952874033799746160853366430512092370849202249911233774929535609106733033253375788958775773088017829554100028502885415910711580769156375163059303144717246831234688007353492651706577193180719448570966171949515688067964175705453546620496482199189751061651662107210505215237652336931195212327896314174140547344359365862389991574009959511071245116770729036287068429942179782222219110488856743896871501360100809412649588648832033132857525081987157376592669166792599415287966067574503728691395737838011721486211803383474802405427682014694407667308289100715722938091543597178302707777006422801781740502342357235666612706588677631875490691403771425526082269033919956555699646286839134924826367882521884786409189520621781162879003097941992033391238878432561876737764216537630534973593535799461308151996379408592017363201297226053187812735980718726389818348298725572063693952656126307366197173310188691409107049238248907340277492257233965756140268288396904600912647293088614107280577825166022772230757950200328083927259242161627026775004738407309406676788722852619981509924953981847977465846401817023456568261113131902009126708532815202180797323231136965791850509489102288241013318496733669929039084285553802882152104395400570246554693815814057726199132742672750350102048300662713293745769270389912587470839321345901446585650002113964395711358918839979713054798895639899394426917016623116188397403783911145396652307444729667224867098565499099519318974402978263966219532562079055342491993588157631613513619121207964450345207011255591552967905759271692586116588831933295646342433488002026228713890788352630956225801912626986849757083402735210601423052778422402707058721487809507066418520781487706054995955255281696213297044740912965523582259440221354368275412199319389703212699696960818772508938480200331463910805999470440275173258813037897592028452656237624065068428944351718218772542847994073374458801682577570617495024688383648161165518064136467109028052049412101681376141305496695347356408681550731172254812631592491796602538315401338297332485181006990993482423539425047574997467226484870240947986022417497348929071791369629441854991679521721544567338789432797796167436685018769878333540429851475342834847139298508889372220189319651172033589880157227175441853243428355951136318124027434035145136339188085984763410711082136570959223200789222510738819592914853487599219467255121013146010689362697059139219259293568829313854369876944608017640039088449328697105748520157206740721095238391954274602095564999397046385588217171799488487946707161295774466849827984436594129800303640005021395650613383459445035627631111281074333161392242960224362657197413544776886790914666139847299045846136869471386837236935023990768646066558656462895505594520596454853285719353641558032426110036225737127068966926125171542238559536244652197359983491635912610972797350992617803913858833256106933162609666591787033284829308616087241644079979687767771711765450521268678686147919177025292883664930826389089086630200598603596970894540186518648704163262913163770515255251893043342393991383984516262201991124650653755101259153493516588163286786425556344847505627688433866330428263408466316855121453474463593142570129188752137368135189905893946581577842761674455276925512166050831869797464322164365512427353988408494491041048668553495813349132882286596678125691257007486251066402029456242456996456620189074261540397224514506202895759256270525313277855613455042894205474765856174700363405727680162321065015620257878247218420187443540513477557005770604185138999562213563835979784883751162414222298221663060553444373920262147492797137036386936980513012715628952042166004967208698777428966883978569714805310093566931059431572424399059946915623744776870820630804121125912129919927746907351872698992175421302774652257179660101297777849374079053721184190010294260450042402956860387551050007958044159973231209372563796117157862517836581751202680080721141794702520042031405330065458728350556724544704007897938784361736283557022494896605926397304255566195552081732819294507624680246868645558511492045547389981341019311930106007232099130495093641329442416653209630140599727487933204165949858243673307556513117130103027118579902299893770243801136325100864096445077148740694851489901563192347021427406283041410398083176375290350379734738834315834349873676494158259830512594534248405779022717009402639219023776443282097044398951356711812563280142301636440795682090807895570103178001056688753847800279593624685070872393004781532985545093852440075320150022029985482248356576235387940209319598405857205677513516122632593782024939385059854939028456508981638131828934033347048645062111890324528853321156478392661216272165520373370405592938933142880486840829104926993205088684700457595461663087925287552558880737504178974222639344593576150844573366889976355098457104877417761238190158824475796427941346973771445659286587928983254876988329321049261133506819311072271775599360436449066409993295757415014490971564629530633341439696563724249554613890475221569424980139810447580965625454406374472915280568614040066611320264071469945640546523831972188500845567106204314231626452954314599722511288986809385702767998789575184953675943416275581150102189070497960967505235207837877303314367537116814677607731418879753032334555828301044264119584850885481091817792054939767029213002981226822665156060871759047071320545092478528434938152109764459677658014978934866895571539808611457085301585990062813356120067153757567483627951929673329005431737351765953324156413786468347485963668612588737362005195104704579576356444110828554300117215950785162903745120485844644750496556954219902208955432319734771837901877277881699926700424992499088947167235194030066187256716679766961133785886622993650627211882113575880128592258005452198593378248252225865809635023581693401202622958189142808460177467536039652129855291203013887721971027972844038258140751864229734120274632525901213281213118201600436815268951774759325536198732629578576179699925794550649067851374277638262888974402448813292375860571177857788298658733858280003961012571983907934662936774855187491103665206517405071240720714504400053081199923555176311706962110250806651011534536111851621149460457930132968498011903035355111042803965321966210603305321656263548820908845905528082894902377366755635600219344017765827402790710430440353585266008159203484321200344013149249574626797849213770291676767336228640648411686108525110773027162248731957732321553554772859551750257863285925182520677706467607647712248104378909968961053300123481025668073045931284615468918064439359683810312821018574740679314269507179760617598396083134826936689658912947429943942953696644529603107046839767488606709973083195706875272767285561634713278368236925245713438177926059489692155008828295527869836852636588537174424272288251687927366009923107983660483923190271522839523956622913438392669398166313760106044644309384306194358187431379847223807335292069176846631751347619062577471432872872274003555678852911509347436322336491726861765381819581545149583874222106377817588036720237378080699919626490220431150199062239368916603053737900959384188207712428963392416922448347503354811592859302738819217414823167038451633058389869652321347158065503718575792044533639335722627522869239825497642136554769059679470764588952968874029822813468037138823078148113237407808986209982572159857900722546521085074188184776803005519580429374604625718258968998945837141877067857549512697893831287411160357047320770532332419319479923949631556587349316481108301154383308172218191324546448669878835503423237974045539261717026729209201559143973829023375073131606370806847736471032943737320722330241018776528259573078321246113372810853224955258569273418813392269556553967605860651214589407430341759034492757739283046593612029014509590069601879816994242721806017216255737617180619268741712586422859580148155753904877134593723627845607381755891957222600400098114827039222971319099567525727169867728514895806644411129935016109250671021075590187707962654002658024098945186901204820940180948187648090299163187050000254453525867622991764334609338402713789796431182615610093529372629517825584889577282845801174832432594440341483537624757389212839457357307620017795983939353245684088675353517543622165513073644341452285817721233678876416164991520204486246675335042899711388353514754419945593529374422192395495566611562507387964071491368284789702202032141427650201168927630225688238127907869674459022753061972265488501276409576668960621254417149346173568134620411870582968479026984528436720244023801939278840411964493902842893165758102159211618804292690491018960819741735017795682352163103874508860824032896250554824784775931641932158102114092467103274506036106514381571135959717983422178808276848819123181087323373996315351891939789497075087922102183624712941735493433961607924230177728030391895607796242274937469466764933086488439989609307514032255272795957724877620395375618623510238357453478500569607174075844592509704295830111599138042938570776740372518735154606818935431056875480537910590864170034709934412582418983277098393255508281585948659672914161835660146818961521538476631812900702961300192246354024296603067889992944011574144218317194021302519780846033929038452422902706904079341958312229671090264003980641869718096080711334589108033518666633953568034970026123082672278888046150706331058240762836457020284053062626139387273208968314672182129310543823219220478657269736450253882941908096287958787487383412649472830335692140253467206427661528155555179323436127287195730781014010766103398940554175101135972697245986201521098838714555095442375764064442076113136754899537388204909344378157718361965676198637467164018767867328977328632468800462095804670761230810657000972623338361177184695647258434854563670646877371592587861866667580359059074770196742686096078085000033902502606185433399146481390317450978281340303998339148001517787347343162271961337077267989911002743871761993455121962971890767919666705066370752041669772088394457398675081852924931134106106888542029306721889135207629997555160875262643094470611698060569362520479350015962126674002241879452186747627100131017915424623076472824087950262837982637507080622427063243582520981111874055433033020788436504034414954474473050876378791513807611391116241803915613912553309599758457374689364032516115525532124013047466824121534486917225017919113453751438815984950037899807361329404076118471499923399326163927765454364912382805496945207101371054208141651529790068185400686658001521736757640955236763878171243426914803579231113221741078995255406622487600667210394576846481939078581186632838793254764066173730244487259752899937505538388670270550147692617792912203913759736470744663549359013103919657110863116577660111432118151005104272092924910272278756069838986983216145401873070771692156267505814936731517236369835282866458164979673172004947822677511045537067292540012142568354760065667660339525421345381903250497427915141566399325717921979440598688758605652648215347888844992333213701386904061482803375378047694831424708723922312592416426080822553313485249480846397929484723726205004893761180532330775804202879792174192593521457032323314070552091752659723720987762249921222945876078435873766469297623779461534277797582630197442273663555561065934366060169116912602130239939988833335522837685224135603450650058673156853875391818162780121904976473897559120128099032986450072270934310291059759206532169887806544944355948183156890245122013356470408252634540654896452672816212487023031910579157949048850170878177591126240011887598815119495849056850743882798529573453056636231156708217640987087169546603011476418588618159916219356798458973268621238314030117518895436138005133832441575270841715877188423313417719057532846558250221919920355213914927982063980437412807727067374966335370622284490140676914253464179238300459311054646488473713775704164959668216669203901481823635738091210132475888578602721029570691359987278657294290444479411238635184143660929793563945435343159975342817300200785227682748479612881150556036397712843154869237790254039922552323546280272912778684027155893031924772206417765972973549993605341630737690911671651428376784446009187828356866450985185962808752588841282303777003917294032868611215296052808261829831935080153825583518220985752708859204248049350750596751078764337519416731446530730234534065783657843276363320849558247311972117429224725470855905238819413244949212224482569660008941750291227640725998983082167724435066182338032052062257675606998675857546084153170852870498967621845874871892495306544820670341843508678290795377833710132295004882099323427531432021572998536711294859856262821195295514732563017483968421830118877270843368753237464837142839958974477147174402967826355310890263784152883627534680463566681301821241290341336797602222970261860454676158211109944085300406430736384755216691496621808155238962714026140046254819197566857608120113296215491189794621484012565308610424599573627940074569749374874322493986046247949753181401026940396612661073206363926123727041341666212750479452199478593011578071267481401099465236384106917924111018956152568843074831820376226213719679706585090736417784922856664863928102813967092588934121471731829442853707451712058475416243850893973282873673265506467194809333036311795608678048104191658789387536401352283215471822147517495822376029852126926506058221877494882843049799999405335926110403556408109244228809781263573830555735865458704223104816146684782438943132638969699355944249268312900414522294267242360751159911090395232177156865864174360879592115540535546238658421793498156859584747083376645356338310876873731611151214598141613778294988949783066331448072014248200127141676038463860143843112276900011576916100893351801535829719626919700304984032316418963139496544864515155054037802299726669937820260093314881035534813676426891186580527012490022204956229780722535175279204270320227942509182717052329034531258115549337103782176513878036510598321406275984640733430459164887308567846216823120077516841008010503113700445767051686811383085185766060959225040046064841275117445616347950884963262158725863696168423705142121189047298255709895536565321143236713059457618047995959877268411293466307473910898509794628375474746767312149417915403681264995074675640607411499957356068319273827175864057254562558125871181686637690465145075298268107798790412953885228885424165901013458944033017725733540180599272625324587000221722130229249998603612320335119697776831155293018350256077157052382507654158546452882436780569747146948055311635053486705877650192356523582692973492931210214331140848179936823024824986865405204969407069745903786619262244025448622477614956905231137933303386074036407655581035543268007523979550434060662609009221385885834025461457786167017991607066241928245959301359127044838495233753421340430807510698809275861546757005287371752123844804775608315241090949908440057237877446094089959422097472163943312955428970472689350379092394103817119768957412132478614900929765000318820979566021971227481938293578095605204342561160322899661995030249802379099130282552727582099950690871852093547049710416965875604644877707202243150895655923328776732852158029023889016282611705948704523363897893203093588857594268284812883467298292264784667081787633380168822324210933825649714932451540829247528880742233485592110586209811435216329421877525039957458262231229146876231931514124716327415603543024124397307719955410579932155527294081511008776191779833620703875581915579799861407564257461596372969893133062390801293106693130955320612256367968816389879651113751396700877002718116889237502288943237664494854875397084472183338406518134544955514913755190100868961362336192921617588017691866410090758491545111179601921161904289270199659765278057800858330340985792817006867870616721605408689456033351190749749852857099388766587908421925188187424206349651056468398265741810693537537762642535673084689498780417782834040320766475613018082796863690067465859052653698236697050621813543591165240465675074656182509843259082027006260013761896978928489750834314121692294717984987454769180839022026405045176216508715241221323102658130702285683834624252749042602429183777676565565486367825918054021908755370525962283630812853242713786256887426483604111490974029260369959725221297931727168415168168489247379950419663964512517957249354727285992281651007731327418366436532509842968980890282488660379574132685699455531948790180946237248476453696398734073839035973141212201048659603591461482280468021813087565200261538939796668459649597805691731522821132257728737946735241529429169867069509669613066264788151773454357390325579559224347274469979855946611310714690871266935615623265103711408879732396499561369492228385319315494771453726221957978997607213249009876190636569136541801355566265904852948465249982456160766394204747397451822044442832914553330662910863717562283199380407379166537505552834913442318554513715667241456820260892057340309007599521299004752064100080579384210039717172129967553464020723284051492396861479975237407539319504634441825207934910207380980891618892884725706091962473689098482569375166507316092275726599024573247163225864587176107230467452269003030419147441628746582019123605320280585662002134827588459240359085139846120027813915896296411142832092757770215124634857076586332067005245936455798141455882360889326150910013128042455542197633891147484022116467489129034498489938670007840385597309609610862603447442932386987292266942104145729061607315069579661995767989885318462934126824166549967285043039967009227041306457884619907141666458873993130116206204116221126343336068922335194822221131958108308482610822390012632855367903242454359819561460081438504036169386112216206023421999031931277597622274483697629119488632629901082701436617955247302372446456914600257400044529801006443985811546456324150146523415135581861917544616613626532386031507998205294498371742189138846408845412735786124867760174436847348825259539516124007769570145389283795532836330073197757791987448089239028624362524601771026892576155010543957158346688668452138326025170301766357363999966865754983926363316531787445917396911692014995232074764886645241511348015717429679914235651014470848005259175674079790885894733843933495013159215206365758530533194424724814631724026328578259304534033140901635897470438244336864800590892054451899411978199751964304579218118716189024982402224048010819521840643969980082235396492343336449813040962416314078313244466176733983284793861318059396565745011483446843842840399947995326628501423085322659153403798260668412381553567999819482025912094866232613132953359352872500469703726103516043827500033207069610145023279219197198480359846229894727300867698972054059299611431693670907829384193312345581878797581249238594818684132527324307176910959801153397151741991232145245411642821510281730892838969528813951779574713588048046861549533939696285799089243967684172239073389581722109814485874363009126184152520615993137197156777145225195026156167203075828492935250991633908699321342188557471570342228611330394718402445715212807816046806310714094535155426551972444345683602976283318007644066515356966953764523927617344900175231426730924375907674557106745873742766131842566183308706063861268969045921179830272756715461970862734267014554564219739285518303126532262207590065461737014123305989217648953328992487495913002482250959510245244379994922599186699143287811035526739380303902760768626455106803529694785532827736254269269665746972069652295172955374342648944453752716262360938477317503671497673516955087923598044457853465771547184301299857486467424787570638574650680954265704509231647673105008262897208445165880797801931577654678364516386305955918918828034373825899081598668574664899889943128025844087576241916898641833700005170473436952766236065824188994749775387229950180999443794745198936141379276797759161232672860801030564070605546788873590146325226142558115914359458514784468364095639630749096785057182375007838872446539254779121356898361301448315015829457691920112577062443774943085482827612432191262796854249228862273435283634061192605683326129423402587612904002266306226957419746702451641915898012447337907867633293887645829244457306511338632511161072570001312962882746181529164826780416574474683398412221119005136022892289053197150769559164360222510915651937211504511362909361839467093955922894659695311462161149630963946970281687253939386625229846149074655178492218719018225307329504775212704386739975721380931136210533601917778199443864180505988970908367719679597425889696183679350595222450776492065694886290389863775605623355167876854563486009868032851196756180842607118556132427967140097500144122658132502084627438226800868124153555205254055844826781193363537834896471267026249937668258435593871931462444147348854055633158373478142551035173399644149027352232431111395967335063116701408447641192950363176842261718919155010985472360454271532229956400184304888584472184283029269113244874295056422536857554601480678425774233236905114796856826512543299715552132961151960419773641794734126486360694214015663675682284281047082803907769397231478372032939536678698215802983849940139247911871915550828343844529323505994351190427822947201622423805013510064181673611355752504073128677379217259542710204943678836054533564197147999444080778858373325623745800629688700991354213438454509953738726369986780889058911905265643520973973889528243568444456081267395629911188357529577887225532560156598752391900055544177956280675374176753766031240688789512930361601630458221425621681675634901114142198166071906258669611612760251288481688733566363471393655782531733773639249996949672837438628306782558319930231983955476867809436651302536321781564711318315502291831543697462193436867805966452097591838991179028698831826113792173943574012943974974647834920244869491480623125787954707386926372631335102111079774738740882804100878396992319641901595357263711220313730183294350019533146510729331281095178950743930429123857585460557825264962756184833548857115527733729453815527361234362735952651391612942384972325341262454818460254190226957349349340562593691779785189160412281473736109909181363101876641427297024919938836834491023325669811432110844492429510379067058601762951409378150807089261623408747844383647839494813661555100204159843158267844985944287550880264129982312751709230400926569947795035565685220502815525524367838535851634590598473003039131810831722594147983920363160207788733336706659058276705917825183680882496232829355268413691136533628588257736414221084951191774121615579740470329378135842427906257616050432434405110475416890293406471963413924348451210661224082643903917726506414077972618270714790080807069684118994857022390520934223303979598790986875840806307653667514951512932337534011573100970636723309879059030432801489699593737296637023217550589253115598855559172378362863035769814791970890858083858301109026136174259034949532165765180962905317453347355615956221703256444394523669728306011208437327921968734551482405128328827148252391599698749226516301318111777750394035131769361252336508774304375624021762221445333564754385946653656352329079233515274304319781220327563634068326073801334449041041409969586004922883513803829871974426334636433658087706862618742854457857236987445687493392393000553421664468634670568555922411016533359815572811810080215868881173027052455566236071646000068863850358685140587841934394481246565485218460986387687464062781520482415126982438837267548877277378198791769724783672275974616961917218024182723871511192544975919371825496526970955487646985718130426270923679989847211439340176252643116563055226496425359081173062428035187948363017140477301584764369918889273087756419822128163266428599277781789971679040703054689420264983604359100392421256941749173065389530347563715846980927840698308420102292907373539692475288689222244218326843827661315394177209891388565570708291974626075054545706183630039158721258623112934654495992614130268148185451570380142462289785666913090170803025056960543416948356499803527963252660236770911419433336702745539806544369304106149502641078253374650374197469008239392236162457211808102210993987681494119171510190512456477098836749068216538574440318463566633129359173606100984702899665462001510879853307834266400832693136276703623817872708875738888976115606811415383714930770055560438202029317139609561435651607536672426408625612523344963887169901879789752989247922819275556255021298725006052906490500472973948113957269001412386353001673493403931798771738241604658024996824804933408883108802261904834549266481447237075830960719092494580494481124867700305264797018494772599470873936592484390617779657265296283207465522474882308663306565600885717426740479715742238596993396206201147585381430536682563519678856186666006743325990843927560128198784493191234163649818206711218436554407028380158048594257118630368695264176777249419651884859220857970724314550700812398190209101266761648164094161900896300454035160411553529716567306783747734547079280236190657077112159485026554095711165665498170390751145817776803804954181134789262153338737040350867461544392044696447334440093038036057554771145599404063053707545212016386428735763771941097343284356460456606842151740963253748939140338592676183906481737601678582968773037754825669115749285725645387198240004198804397580361468536564070382400225517541463161599612515570557328492484228865429415097396398769054315213775666531583225655330915287677427444028772913074833316821280030995674748158091620231234006024319093593886053723949186827270019132584430532731556256036812074167031693782489193431818263543945621792374074175854733931995336901098198018440810964496137123189338427937403706683317450153381179410170424762441867667784768140800432294813608754348820593476017574231042037206846101507227819585557721645406441131607469035682590400707545888570241028326589975601473008596827796261157199190565593353201482028695151075895568120358362047807527916281863322676906405799391382730279082966113117345636205771290413709446673527856145136871702477155185340041508180088021437343890517822479507987872983637569359471418431227897649513337759820792050865940060168684697041346126105359291831432506431636069004956364369973249570548138529228747760962651476904386229183549181128344763923143709414666288236094260367261259206874186404649988116616395738124091409314241188043390991315063631220148438234418641910638577745685955058770647001975817333835152812043602356192986435373273373968555554606842764492768685991530361635364759097206593451233467761676595124808182531553619320517243440202187124561699991211916328415322740225801552124733624204148334157977824193898089983536394375576614631268503125305616996518135060714461161027044509427065154583216092147344938744583965571551063865512610436328860738344451855395961610256111346953300064386772984683789779834779812890824846376695608834669738960164658190626756427594764838611927201878884785728178992468964482762000780599522383756135001018347303852976845186291778193666557329699967853988618458073836599614485061621844828487256173499426924317182753283402724783371644007714101148082554766102920869605704499647673750621598323058630247288486809253528637318959762511575624131791830982069274218038594183262283737195636296965386690866821130360462759118030854710563053948101252695855749839950829643459470295628812070056453477564986922156308488593495123737349078745774360302337496707989843818715568622382321604535317307448680249756639087529939535419171473201548855744954042121267343339636044625643358199364378201080123637950655424099859661984614466748053451853226939638239035332944386157495884502601782642515381812751243560079952953763335877068914492578053506551768093828508107815555801867924395135216572116630315633183492524680891141670345975774406771952978045839476874674371025658531277467281432738231584073417753093027260646166448888864021435757757491126938500794989839141991131310582029338320424266249450927400310609062887999552486666996068649461978081357297253999198705272014274976481924085849008158767367332080932403799934352011811009139871740178809883164791627809228631570320139758825199841808040577773757021690167837366149614647813089822886077826989334885244714044361292217186348189475180235040879398490002391658725207113197185223495960799739435538412012293213681627813012798393337602070868479926743927997514372075854799929670316332593533469102435474924804065306488688005003920504613366787265101080454377453469319489319037879490289068144363571494153392590539349419564182101722725528062682385146328437122112978794983983839590461947896718016278351104253947673856402124343722963023041433793153602158628229538608411528741843338091856955701069402692233737454415359883675697778637678428268318933930204545217755426172133155898213352565503643900440113881785220008574211571432196646600140692366009165129381235557102591637417947129227701859235369992236175863256355198475911568934478461910085977442560784964919525396776664271490282911098580295850755490225556584228859906730836606431282453466091305453403622435648455161475678823019354710336369805771082951605986936538516369462703672123027650070136619910677799729502141237298017052161465339397265275660805660902149501173860189096320850744337129068483990976027040252962163257119602660110141830474750330751025513343715154084849113554700495274600998738358183883367810925809355031270174193674478732033491025127803582546074713567165608014489473923805296482630962545111454652430410334591086464942087551908841605224865897057243734901942460652850371220551622547624560346811043177778896882225603858686898105651497101791215819949635319142514937278774900272535144264443948269007067502100215264617623076022694194231028892506363693982363306759624312016130154112190724656660971901075424182815839846848772792988806688898656892369119590962392281322468290413220431873430653424771025341539691822472841676907681833204353048877422438019913771770328934632291638116627618843775744682038614313213784728151761367715931363493123145461202391872696616606039272671899250969854887077438351122877064736473426640013967173624262905766277443683693434765356170037723098895595339887532175311759473861280026673980169164114128473324691882278228038590177780064887544192167602092420487860499887627258819556588717562963916129878509976759640823335146056348601232559459240797325212593720989425241170484101201828435672481327205332615476340883107374371193187624237325276757155556199107833962343490650930968449075384706369120722629417788813076885448692652707545229525594310455214944484462081585753468974517257645722869966203259330599529689182850145104492264396164789080436387703134624515768973912316918037739073721918778116176955286456238610872408127985401776147018673653981887536258569124281513897025833339336292193934122073320093270597422278071479859416449714735893697270898090563675181376222054856911342788229448235926684916619763244754573883609891991770584960956327398430382235709524997370175312558454018974783502478898915367244578486299076108672221301386781447809387625670309484318088405221458220364867505211013601577313704882175847479362590268362210009563023323620065358170606366867794904619644961259775007263494888715896665275993158426373549853818703354295844617145538091914277940462659475583533986746637907747120620949922716442789233531187059342288767657192662918159810798028118828632089900335030817451862681709889811556866907534071604887143104959346478463223196782037873464902678297022022231554015518462667624942361516483859827979569255042079112640295050330725619782500077758969317845985858253906077645008340835958121075931996795285121931727106468683999723704188872619192869327194424970969107321808721397963682723555410450380488976116693725343916981881164488301111952418332137596086731918538750051547864962020530915272675125012239739804174638930857946954977053488412093837855032434777866115971885519134271835603701830337761779284200659859165633994459045112275562150711722661906823284616647590598437041105141068644554319658488038404395694324818619170604036623625406558670212847344033104324165977503863507880110475060838029949553157531077317781539668437257235395848503561072274915870139507935407146813858797328671647777613808096878638089604109670667745673362616012737061456946416483378883726844801046320678282715287404896822818678632573723586729811893067324788178497079185264397379552892039712761084618093241498209192313713402142648261366288517934056738766227572874424272175071599800172878690515642833414758774688385789244298525283865283379517450599137187217507992415253679607483509110973301627811964446669289947554546886547841765396620790046205544371363062301985460817873865626149168074743041097468925558003817046666048300448961435390142305841575016634673836951551200438606391322154976905596658460106544260521784568764961024473762643613429760117850198391732112628531372040615730593449169314727837715628904664662086238447000272073731528138899824172541330695050207436376003836186507645523040261888522435241906962813610070459814497624631858735338213574812209095565035137208425174678863186130515609124794526613505999288358503138659551193857885466927385780423835703397509337781333260169889939334414756475345739024848387072952875017893563130004012646808632709066907015681839865108654472296449614091156729915768005435828538574166819158737721649384417064677255094926686002350617491323224071736261260847299133989539225160949912588622434978936682602565515021913929358374402568393663195319906908160843587552370835847786750262408343444034868726041196949268895436062307831508890790523906105181101841758833348216218372186907823538775650781272826880552940032082746813566921256502420206567892788005622464377379541730006474614563613148191741715920706236155973494827166487258870503601395542058587236354793341646197502830436038756055092932550992335876501151265107938900686204008655139733755951144742609561906188134728992064612556636935216797437109120271517774880874015722481219687133893491876172961155668661565999574802177186808308354118142749245581233927416944272082025293874589679550776431547669650619324639320126358470748529663489595903592144065390384382260969805492185309890771969657528715330660358136984909954754004325258241128741186206531524575050250895036312190307043223356633663328771841572448006961247315398833782329181058749367730792267734213171524657204945317661046338712903160023088043093852082393378836701243881601699797209811235497950196060277931627708205578726909198187493127254024284750917015234778279142125725719935114814554042780808162600241783652349042839760340584010795728932220800661982796996138929369871381627928619027932304508872453761981327552462667037114681130063914803312927184812858177531898625403356933701335462933612866748079353001703727255490991595415495248405769873569119352375257185379820022687998528352459479479540521591601492733409701001847043022726128134510942299670001497632007432302322865262603096927618783639856122309446019279728871063946089744112688367776310444277171780935291313265425996347791340619582286445365878900309936134516242916893674150227743652186454205533538492112647211455414561771492239693084587693630449712240803522174250165967795862206781727030299308753605097251449825070262468470269337118521790849054281084557194577895827095250740177223210529487935066693441424434493599311765921688621692746813444514958283306967077339694532122034058868768137766440819071027678014183536155998625884056061114781821639889549890532006641848446850621494262594008829592904443096083797095940059647238402825450334837860041673376553213704348944049934792904843008453916584194975862410898842895202676040903831587409086113644721440511063783886494691153230361684819502318255479968761767518187956899954507112494280295047018671539777387562917436797061742369013686041207809299798487397717939120191526582727187044597566331439964465872384556338460300986942684361074831372457286535696321498661329920512810879187483364057711052663430921057010647380708657971939032306298060056952882658727242545912796951293078720738978023730040121245010767013377501251679959452976077471328392580833459348086035569241630143031660918878861521294505543762732536240371644044836822932758511410025123557551687643088067213834603181331345951435236653238015755125967563750767995909281659890160262992215527088947819393784540443018216334041350837991432644173437145195012304136833234273332599203585744831889476157307642840726891418744184379132546729646698343975446731759814276946049546579788456772743896951181289908569262025898813981203651458808359525420353032515777146767121231627073709220097628985257799264355638140479749374734570590017632301620539123460105750863612682039592794739462706083928881239339209323085375237724747574168509856467202748760697896676422965319981473479944372823009339665025770448268564239224639799765514435355078934870079253080913921252399063006291901603805557707826339879108765233080303674972531185460705842486558718532789448274280321675770949596740540752479677961543484045182938718514441824008524471418455018467421751738717051523178712605571903210904425829880151951998430287139597473668054604167594421126371102436933855431927061622785269739708504710855371504142887492533882970152514626985091734082881756087633297064762631302556180670865146124442114194783500065690915058617126861879275238982710524075663865861083842064926701623390807548986236783393826758169701765860474162751861844929254636078118410857126785374421706459525682646074820335842928269295532059374979230897762594367775450414035855018461125926498102724113087971123065986413719067192676052123381537191436187114129997592420537578859818030890139573189457115451883932161907863515865867861181627315328522276132119033113259632623580938497410229268055631330080054762585627186046142581245571277494241805405866403209311548044053091706573661012845289459823606554788865982014405869589230275675272583448286869206018364945400329255792770632441622340195033306214818367500808196901185931660558252618717101870723721228435185219603290293230406811741648153959239995135381342700449995070858536587410879263651422874674832397675744485720028577968751182725241778723488345164712558832220896255269910145688511978506033311277408168827063303536356348749999625266663434022183378920150189093426692308251035375045347227676156777119412564776829358289344550920168498733860766113078219883211060712087882600997644996502265939375032231025523986443350243155073667413038502839953977221905935654093852832987319896309561194089951483439779178016449906673330768780586491340987832975512501207260815117317129044007058393944891637005784665585194193501041173360458573607172121806052363841191268457843277119343734866927900186970255073277791707831771495402255632336668381349464434128325148482221411536300168022647593299879571614830588136251731886981135058086951578757844020057948790469712619760937873257433893073872060313746824462607268294557441632673036304586163193803998655055484937196813016418418152552894181567103833210303731798925306857192682728969798584334210936232457290884150985606982662103149884096110147783198526607415546494165504315689442872216884390626601849440201964037752912884939609841606228642480519993605625162995055515562367330910518669632925299997444859147662373346593487598183912914139065031206609144436384704303402328832619713790314203146732335874827607328370965205849233929820590781061524405497363932526669838614292083075339362499110327104464052989600126096489785082135463557394244469378284962299708100939710749873475207468220180195429468286259210220206559377341608599881271670244916485055031366605931502629559870396996200828873766821341869591736771630693080920729656294088446710395633726116793417985998811733985597469079177893978406117255292244905334080262095940492292423652552358165892875185600044601325210736466298222649577256264243673964647506828913035548198698344033107544204953023219499375210165209234642952706619559218683860705333845433975428063863943549989449095937986522274197871549328258900776417648445549216651182533872596740442852539303085258253719769456295254346273422987983107806214268291487623922773665320691769966396723793971712276619283279245458838515916118376972981782643612022530551489669783971849547420097037933431592123771535184705225213640467412176377988594033323776818173353359634706053922376859463795412522095686541406634899310698606334262807496522479249947351171262277966973128654870979826134356384578390411392134344648709236224708590408578935426474041741667079774093991951959301837985111482212244725401674442186167035540006486910478521867705898297841011926272757923731815918982808466851599132994751519813179852259734738338687519117220626395813716457273825962259217743312778324213747720813183313068704593855802043022551632999509418481472307775980227703368804224935406127770692254012793484391408066968167536273548979148873821849063558913377323716160758212691486234397256743297375450140391037231001005542999725301030881187386058175865493733368151032939963893215765395494396004698383427586333508899100407166223855135076395040909102069567601618815011882541708353926947242067200773264803364112824470432319731629630424721863820066156471908724848746884488415531070563073168215553226926917407867414761927520526285463592418562552901521061889133419420544584122624511955144071192531787370680364644110987503067763667375590559258685126549929336717223919633416001407928419215555664758725940923163197800302779195937787920185386619673225844107804213422475427629419871854251302468032458929773020302955802855649859308622902332930981959459900492542247431313635800246443176148607753810173853285233768118577860253460890718156051012262717676612572653389922153361158431469590558150106302465094340859826961077692870104368494300017931083293397115332945787286210411647622233964137614839547198429002107772185263810145031137456759237455216069247221334280448971435315667110919393528530917710843218366276343103870114925690281903376353485106957645191339543088801549901159255349182250919702001527017541985846228220525049700066028497937611680653888315110869994317251612167183589203412860538633988265797290581897964679222957365763308744510995983413661787258917960507511991763647531355657844748696198120015432698582414471600756100333646756976252876625761004848282336820793014807012132706527363155083450657236105384325375352858482927247047950912568209024353541287547765523627708281632057616349650036795874894868071481765899573621973461564022383422402556239386059514191056882112427873248358857139659031479018745212227696622251334359445047226328088709215668781774119212991742730036468387340368541479924793041397277624228420997712693399493800931737760189345416560179071541897994889112465145160283319081945006820094845161989783990800784172497513476752871234313826922020021886523187421556689298971104541527081607672880440272849288622300307607920160796790209518777701040109100440063386444118113744222560946490403877252112993931741703628872917798815024475143342447081689481721383636871078928451681135917479554453570042739961954018984094910907365488413781902566748560732188265751188062005595048628134357209294395105229623983806119125657800420601301610417636567476297149068186705157245880089370147371859818769268703158636478167968253366731293923145169587638468207424620646286302507648067529129720652711803893119317457746595135684880599876245523570982108499345354711873285918130679856650114241108423881483258011157680884396522606425301492102449276120943807661360724970668959302193897039223088293638992058753109291190390072284684494246661981029440416969527323365831179866155933223750267164828417274057023774802459517213940949479643358061099913079886798351620474996234228524847960232543954261077465348199427306174786734468595582421400054380458888300350834265990571174887667136998144382741055727319607778093924405715951996607657903964787240418124062302030250326436741448674769301632560762437392904408579973428697899015982938823195919041015464437392149504140457152684175596696619929669306739328942762487681319504701080772503114889767672301221183379226993181834046394857964958020881900541818976517449210170945945542482565205548624787815500720331794264708629431749185438279510997269454775431542400889953026295970581260903496818139657337209695491726859379177340732497147775480018218845132976213071304901304581173733672819799253103870619348662281633242463693449960098252904095385579336746017622784452632926708274517985460242096515045457362718549933231875092867072646156559722531640641973069903520544091080194664959130985184403015264643490925458058757164931310634645907163425157269188549336510990742939138933608003374467985816396418663971169549659314492228764228963167191334057898295728012951170366216970660222262399160246577753228760823335653671876838571003800360303318835546844852556597080969420286604358497748627330605132291505190706075622991582178275419932849525122251733647156292912489553206035382854996259051472486550424525122941725805910153155259996105755875527986879596121179859490577853365451870361673417066758738950523786018407709837393430861172643013208648849270829819715281309506219381300720129397265079687429048067186929718492544435443314480424931721338107810787264439604507047798296957302393561304281034617160140674539325567234331673795141159564982454356826376563353326291397134563930714289185685096441969563197434095645234061162737178128878314709102852794427623243835364146501968503919726589566538409199026549173428317379348351300494756575534310271055064598722385751768386427180029464355381286528422406590548733066471980546349409648310471596403867636229663194379296808437353112310897101478280509472045575086947398231534525114425818650273596762532724927218700562621451134419930172661078611153503635425031195634375047639110371848179757307657507923726875422086703431676414671735544646443486146916310061025631252533155464023651687537263102347395559728246574662558544255769718530031179183801483794391562839749379952159768439581711646121989712659074755590007406874970715052195603864443766623523433284418103110372563332218873378786967499357097765476010859130987667571481278237394140186396028609725715062832933214273248691962277801927594915884151521978260654228558415058765162632419755683069335100218178165220870351861221074801280123421130219556380437318996967832661029992230189773508437199380173990123067326600618783865204926563772803026239692344469096910828489519313509738653685283563061836057738821472523860716899228208060884247842239975217340933849743127936704875662206404977215033177101416836946947716366850797546949779573310735077131576711194845541121299323529487506069658943944023141842590909459183898488012439111945229772484969166276897060781259952578495488758485301764761613242946781681414599513541895092690629029533688085286562454592893779612390576278170042962691324299784848843099111303242951440158152622645335555694531507512786438973468250042018065110160218289994338873328722721891430227492353568377901009993704251295754729189088884534343761246524953428056622506853519554772609651389244029276122938183353288993763125929334023972393172393087614990721983157548187260022981606572197543315909197262149568536171304049862054867532371305716305475565363817851462774872491396183280073038866384874948505966448170544303500642683626434385418644922950600333780676644380972458728700564965657113681964974457633260608390921915471616621038467137452861963368083798310665986658789446720855151047789791499256645811554399953323978179579744576379984656520745272397280248747055130817985294277625136888068536240192214442202849607924540471617073332755543674846115119358504193731447839806918835047758769423650443353184026555549730753714428988101083195284287771153561563861749062281428921294702740638085253851971596839127696631692977216912844653312278948402246851332884344661110562715147159953497466457178116160248586948685884154686677710511506991287609748119821780883879929733692159668697300996066334646724526941413998686996812338872796171683143770339894186938129281629618291933632754729816816547518455638212230675795098801028621864641971235672203812076997951636174703073480591013314706714160981552700850649295055670000509133010383415796931969960268295033669197871651266034736241746631137297693432398073201750939222892259933476252370035479859200959032064141601648017807769533400694127466377395695124864171903885845248138640224736154651558220396901734635351541811342163089007716561206125371777653558781737173005135901648893394921026419694644556493390269693386410505798582723516777587861431956480601338534878820560943342980620414278081478228216438007701462057743671625559842997090612195588493048155086062177738758521512360426967912289772413141391165469384086489881873757520276003034155109025514475143447043996919973589728049182184139424543861550835594145410607946018320171870718525675797493563914212185089535822933002154437032094595845152648904232246276334923903405245805154305873343109740006510044173690975341079019112245251062209050645108425649709412886171282515083332101843521333247954820824398001011492243224416322909426156409274295120451656636096877431657444679450366642305336639908747997586033091647627543219099650260094238812240978413565904674479409850803948497543511792386339621329889739839746333776609268223961186115428370628805550570464158395562816438878432192245222464779044626207616604737435618547995817904872854402819877039520253964897520876484069173661228917379816335083644480745327677996993673152779521503577646458491357036029985426067524411119229662703421808449209107678860073171619737697436193115061708592806380535437075434070474795538402312995747506115474627806836800300361295420252754383185627347696256363486546489298409136318600239134828173744607712741052488601990593339716880724513192975204635641183443551963071248569596500208713106303834372814661571581524814302463399838988650771732082407797173711720128587387588668544718439136803303730322272662187348751304692378757521913775237393463546513377457684248776438328660901106300941058741426982757115557809547892582504761632696143052699914671622743962960946812102903790702552274868691620858830677538253198527140964350737602898866303501144286498669987907979816140499654499228722376657724890741037804114788743027946889044817171037306193896207785333990668717722913163726213860222710973005264321540996331503190069276551227674881021682390591271813430047609189862208288539720695659409660868886638930509208035360728988282562729051223707549198971744842294805722530142106454323890893533363014629605073759977553160003199918855113417994746570290456565959821888103238687439466146931175035601967971528173090127008346490717121722311180535149033368619318947789491904854674979474873759335042905143547336441998269655056192680073458669582743232272516495754979075480794329969402214705732226427188047683833987241875456236049325379898504125429485944760576998005766953899219812585652095857844040681326230153659562857021947429765487321300298160204143218080060018409148337477560885309778616502232243264681397141728758504201954762310040762885662001141329029397180601167420414546484660342766264201912182506906510581580111269864541510710363809503799970830168870233540404469379160731027517975873886409896505189034691208644240910323852707159239698638765147044712762574426821230268905275444618290312307684249651345799676199087905657333737048750621742395053847773436519807177524150423674830536012070634068739017862081436580113204265211845009049393319746770522345745158412683744028889408908045471857149782136971970392972415897972256661394600379883160208631187765719671083012961993824818074738874315448131756176751756679002120482720179614503666428459576977938480016874561670726080037877398737961992165442310968588588858650840606342477919931020980288520786646459306485954882850928751084201692904970942203508899464241923618001297469933691135859632594615486506514123514236638582520798991587090008734442866627068248296307751190077679241438358921949522908121832773748730724176820695756792139113575815394524716813896970013186030936930682175615245396022766306513788209633986870125331629243267495453633977179128491444338358776796321208727153661915755080465191388030787722284993335881209040700171292183263047845919714378901490981351120322448175300829993653661762916142371348967864087044434122396749400742075080597855291497760996619474832673349744669928930514484719252321311359824401657990370740065757820079751227567101237363239685372857784792700966484322709946356719943573459612851781420702901836287845525106370667686650328159856729012437844078429020449602038385346573125237844788543166664418176190827415392218968297347814120020894729546674972902369537239373094638681307366557739664044863434807308272225875155252317269616282502888088394407114819230818887219065471527145898806888755409035868670622388028565059267988895615603824298003009806115116851078381663197584342952105293180666131627072885132387007438310108312567948351100496947349119954934422893225212678728528559816442841753449061332123749658333054098976477827799286141682568269685898374016253195582473335807219008111730782684810436589745781526665802285767517681649313203114871068373402806831292877336327065022022743863857900600153848512937744817593278902375654959187327425055218242366723199617701225985062941014200348322440404981070096384222160606315913245975769935938162135193692279883826865397181602711583592646337542150251606916854626160975830840986328325970542059595437922677050216690830237976433634708104620506763750111774928301516457815114139467950002794693627449265758221732169466653747172955234994786800987122872233915845284930469563536729105250122642774805619307885592020077124668494249446046296813334910727927216307905339830217039483359491482508791129349470599219950507489343788750753173944877010298816839209021447999752196483391980944738314528404593772759572003950838204284834536522323689445080235118430326448044286668814003010174956493599599660454301226733496857753772212970751554279302938647690342440770252176300178957152203121528891558452757658096572968410588211503717572956692231317492090483709518892300798739089021394940760169262348094291697235251423019919945518416511252722631738820697364559461153607494247240095646890953571355642848694494020140439470217658156045729815856535800714946481992519875062683874514681346534274136567075318776584721501334921898655506809655878465939699579748178061264705061369339595266820184140613190466264240941169748175942110913715847405814031955381054192799995439929891023717824290552098318859558396174711365833309633792815040476440459692229630221741686439669103396332546921925949893677671325486632583824603493900251078256344123303681279167103086582681403352311654070538366589928224899207447628459618635404338895392477800456209017731528622727082130142339260521480433409251696364313996336220879468647580909489214512262628261575856779009861710324357677987741128915327127673818008754552747384336600286991478640483318606637308245951691504880941312006245312562919948284539345309868721487152450493968576359897689452445680783630819767262111582258486815275839900745288238643735952949806561190942299644822561645637988217485713111570745765806912270420737374431622384802358319984197072614490689370448322005709272712976013002232795200577871389399734669778735724601517652656429931738426990253943565560543580820468482856769833285068531736306714709036595736071619420631289861325379116112559356553848132926530149492004120584943273896694478508096716295231501925688019826953682822934890677027586218397453018805325255566235475927942038172155142649896672628369134908841761829325941609849622491328697219367265179076795207491901170184941076063113518001663989585708059692574718510458253360726180093616154140852527637044205389241403398696673248570666093726636565922964615001252565265806124184049178670270831322904053356342227268120008003828477967996187974513570711840119686955145339283941366131510539539772970298689979572358342324929395086303666607016238853158699081832285623975066589657527228309262597400812510120075084799689446056831720038001926059182550861770516677094849087008052297965390598380533042169419627471245066173560428449677937351120849119060277139558747567825505454702879543263562879436163357016457648538066233623566557884520728567072890998555893361806151033876592671181203977451267056597244301801428316026479251757888146669356026299467473365317928858383887005963964671906418682850652132075117360625851067136064179918693181132966941328404614164009389900963952720442635482634763830488909140055522044149055584806875832644765269434239653443571429702187020739750833394410343398440829462491005079556221056761522492258058228538462547201086747398860068322417575861532316969235834710593989648226475151279179827080421286721142504268714004687768058417214758578003974013729504228197168075061655926430405984969877361077458373652726766267609983907683949567894034807639774276720955848588612453681167516753012946195881069349605503793346886410631874508969873962291646960189586242833476660263616722894392758694391569306957038968977275820785207798044378310063621005611730197730599679200682563155904207235805915827391750879043770423040747438965456728467428044104204736493441866215464662564727090430995925849954928925331967045823704494261094780523368531800076720716735460713244163665062729644973277554448377951605807970257288235326771668084386510821230201888073832677777275784957092722072288301312567167301210795301607382478451553505094658835563928742377488232434204811001294104489264528241970685970218735949515567061658086082170203499054621225790008497668217806143419246753331109630683892922740999150407790497685752710208790637715207036205787125476580929169233579977548116069096766354667336788196131340453287793044952676221876097801111086657753596758083154877883127980768126647203303638599640090344948292619481333223631605340992655229891272301087578782530048544500710706807703334061466117356346495021836451550584002391000262436931282854465495237452808758087825726696692286831051987086906163175508383495861648494829495975964137806144611370838919714096758417578431649881842529942702282598508062154715360908109648656689246159253906578312766913497703834018194768982218841018614188657985416076644039507485101004687310538401584620090311309810225109514534790673885741897727034737308806657670213804663768350894933832192494237021365841830421122869383392206156788477048717088363771164411017799598406341245872556589682679878015294543515794589775153423177276912286456247261691129604467741408986721834084717278005321191082728825372556600302928457875185066578980726738216802382970404096114138061802020383671155615240195507935554296846877653771111402101776912536058892625113909538982769746792838659873306407685725417159389079413511828908075984960968848339675246837829896009681478869794821120280449463289566379597448019521972625836918166596217022439674845190270115492247342773612056854086354795041053866323013312253326507404191289361030482669307070593489656351508919339241831523946846665924487353431722180395931188765830736292018448054633590670494545963279808104655538340988564479431504765543019689195847498880051293454048067633344707738547564060891006571695879207966450711141632156878306379986577183860109213985793700668732589014407033934998582897100604947499833279255655547455888455915254965151940270152042879025938732914302954394500192920746921026442179137808045277061270326235343486580791341834628739728093776456129535260701779377029831509231994377981071809782065572861922978404980739431708316534743043395979715159500413123558836918320143851281589284503561440664405471807828193628739338929662379447881575130321702598899079029249309845743038399862129767800529142506070729398617871257557863488792368604618306876860336935637906161852621872894214957032647908142325022234217779463971796510994584013017305739611450594793007451842840554214511225973617177574088474500061230915776038330699544970093583200937055671210999061439965050760427304634304979528780740555452522509179680374595684512342108095818203314194205838109006398783944959484031541468839620310948306077762590012655457268879214694042694502935667812713492161007639607006686998351693069726983802390610705770038118004454861711403524445323513854630047103205794293597541223960670908508603776004955570523222363369460017221538789609595058646968399319216511285486489196492474602229528890198043763270662764677138683921298977190236136459596811944539515302589541408461079440800377817562659619648316693107699690143278889025539197227812892807058165539624711664583933676398152636868002400898842815089314162021703257091776535388318212098060109795433728559394824613093004119887606035933232539336607322315954825272413436723747551752635931233075711400251423469582859435283864159040164884580815331794565599457073477274009799294896814032728123475266282174801497437735167650062381051342070514264258825993955084811147177894827057429431558647019050310361429490369180265842568020070727967646068139872937016616329672014167825866811591014806197814427335547346718681001289817962445416795616316891387637987276040667181785025700065952177241659354671294246012401685300976123864502845467314437578038840206015788789815928944554605992410393103190385800923872508179427505749746556073133382981832937474258552816166150345519420763694227491064958154984157906715258413064121440148050218269087465221930203524254827727062318658995994691620220227973853367003565870184470203721821763682885321865559152116343698671766470068683876157975212304263690761114662466785747123785601287932222135569921415833797034752102936403179943320166484739463944765670864295055286298894937773762131044201954422178552611418430434938985200880597008204158212058730233888220017105236920339149827289578002511778777906448574559001308745618304129528993748890605993400274815873643654964933651065266841614929273112519871286363395429789307676205462880066426507043529302245410441044833743083313840874756358521979709337026030582275262381621041555581927062373569530479851245658056135244292276817180732125551581487128801650914505868220696294432720047200113075955662855526068707913137239465009750796034956380492196826060700860366259385166965483938547240851758699386348581064824798759586844380255900782583005418454324517565791001371918460464668804176789823924666844102660425530341576533939527350739664817591180977108786397955455891312065090221355376268645109979548722482921585992918422850200710408411326009064440772126562899423916923687043918961135520835154872481465781482775625841987110723130373073635111905613360494730440102865364994120189546248632657436945073728183811077330425694861183798977131440080270535965116985484955362955400456059020062250590073079879259801748490230847124984295860763252629915003772277513786627626122456091228614846163172893394955704889547482466887374270288493800754490886486329350553733812609478735152721134791831539681801773781354159433038873929981883676812622111829614112394680340971440722542124092899973056706659453784983838859355991015087761782626009919676188131979583195510679347472304406262678572082068129009105252957119147279429799138152784166784215373903377282896384599038068774996696558330184103888821370106764867038229623695155917637005531685906453333505603569819193237413704298031183311278567543675332995888884450837823820813803017492211966152884560674410834112015931618197812977534023216171646976910277583901145700367165533879066283528465281684009761686097217956318583134816465501143116677750189942605753784297298597158174631039460504615409955469986211621012602954885653724341622159996041474004592729650733351123126939956779259967418624967204396650089934061154944957789572601889825096799182755010677770466658401665840527299838945601619123380804680816439695279077877034452239666167588348726837803986880618831607701936924346715722048296033513355449810157121239176966259556136607604053059350914339347498047205825852751799155878253899619634408966483550466052816589890328009981105151036911734958372451332058582304119405263920926084292021478387188651492738901675413238709700104468717820416044504390974046219638395398139635729086567944083660128801400230895539746932311845907576333298541565709813631112487890449784386043626352363411485173552238284577849525023060283341933286226997967833412073129532870084488572778502041210898804133985750924164368807019691397722557842155321661411437986187552257358627366671988203506100745686510098451406488722198909599716619412177956899599332657737168181397504249848956857989499730502698323006038353029233588977600644823229471270797947243183867430500657665893724097769689450874979122777135716927340153322774585678730658365263241070490514777501047051461205162752236055728115246915408148633922434743538377323035555562136738489894298842001173204211656679310481508102521313138768707060636580099652689774354083516727920998421814732742388657706629881755049885968460937892363385207494003139000503287630436275591098085506870295172506865539098671890507548584800853163627768930820863265046804534255701547004091669444486310625278414899700566986712843848448155727948034339452271469052584020445582888674924398750017695037324339794116648743908102815195167965712520697255619999732551644271718232384929979988588878186786289615016251272562109946706431064621601563228855399860814940834696756830084395547263224806175768113309345067081663998526361705940273321654314738106249427963100905165102931097952866743787046490886039893072403938474198216492737038263934652291389039720649516489360158631585143363807396684363050879498214410578212183756415699579434778062941972300306631927480805439526118875763213552232150879773980173699863956886628596116028571746562663412040364655280494111639141578979438304402814684384822694815445087373164694807161154812634373683159553011836365504449249145898114116057962549044149708691727324119876786703590856883791295772332080471190197955802672112538432613280495952330066628848363046783147832336924524644133566747577316493722009247826844697728279119902945728204857515538035430083884168542221037251510580053168151051737682127634359990566828056411042275508708207107858924909535905267977462765527632700032867540856742601843575130599865118596083514199698748575923442676178494834924556530474329678476799330024573232567811793852466771882094756632542290866058642748468482302952212780435095296122872038849387449599463639653851932855873607004310808994733439657567318348395316210584660922284914339621663944478105060532511594888779580112538036639855848864937925832205765129082253177856950856184961879180335175407915263005375407149651376062187990997677393961941766076308498103950666193635682856369569031805452290993217972300302115984224964744117094781032402613997067698607613057941401412703981492715368985260604902816522192965938630706964718764218569081322150774489434328087364913709054329879551377007371582502965842676039761638153940651915002095496708671763456090466120529881476537636651615581869830857106154981186974516681260632339364348724828410892267240757304284366743419652171537908348943329733074472641741369595786257994793418871874562458116541244599485160511104179343500493021796273551699776292495568307303165101737488077734501421365103152803134939509098889042424128518905739573594917717265530985373330783101059325829959242152471371440891308430876558830298716784486022338490982656437632083324118074564560972197416080319397624115364039391472494360160191117280785480240305409039386304334093474841397633845501302615222443858413881698754525361542173508466855201589881378040859340937929037492740202581290845681778292820923469917324941803975877781910732173077644578133879892428665788400194922069650819802792865422780858748845817291861950385517423193410195091510703077511958829975688334018727414900928020821696429526598215504709322604479260881487902774327193626209624031535231839570004621953812129136416333242880179263506321593215173884173406635086652206647817487658664645242619768152935228633495523010611725731867321617958477013990088602534732631881201007912509226461107299607571184228515853715199972160854445646372951843281978415247331560414331059172432962557698481284557121536766719038933869589513011201335557474491573364925545219117000970776441205227430547663216846541506338000419674961220436728240708380697274295413989833165700750323425679132398715466499957568004539219998243179773419429547645256233585247964494862431962573908137162295376639188247081887926206117996842725582408636412132223292827202875718874446527607919532670491070984261296759598142338202331939242532445192325435813624389477165017858281584510093577123484140890589997593918939425494902620784655098359557587017693343728716194195978699138891474214653667461000790615742157806593007213920879081264631503235679480081502023944192377399721131667485073129253421659790336860976277260311960427905674131925163840557791517031548805781016323318600086692206848119175787826824237295429804094823863347676520456935145533538017837431960997300245468446004955665794841630304474946756427991683109000015034826612548556162621091960995944798640897433224298525375117827688043073523180291232741935040654867838310882262564891250476602954442494386403339703266497957208471318382332020397174124453160915974238074969319375548884394981734631743378202250727554286937524472422906661479657440771537201071912919424986920245366106639131967686929819567922158884663905562738425826538358403023538959691027802659318059770398181039601078614330179483396845780462119468881954899907578271007831917622397509123574756294392174147226344097424308404201536342946139633257513238347295392738176331897989821779181516065053424688385326807007619850732853765010777230510843309310306074088168956490850257778056972147070412931780858933994092265083263363568674585448769590977310752857392281089629166282929931370318478303731973481017128707192152783046692581531312803959003699407621305173928032524017273301642122401434035738135656000025520502941726516390299256091819334150851808613065804138333958833622753651882870761521818568884993131718404704402374436958005529552448879111289390533729203366568496699969810768339291194532581094937292046273796375873440106882208107085847340867973329516529516145399428946517285336765815331543556287529321487334767456759945165708812538372767534793490806808123387288202354559363994489098228836569631328547077566729752333581043217651323135758538152513221485956226281338012394269666711766228089888174424349978834861427126539671542914996135329502126198818407881061411238709318224611452633728073183547936270642133535804326108235011324396251211774486609172507884355491931032969712160163279642774415966994457288489616900700927907249350507995959839905511869494530471721321136624692446740891042983957508170209551929462913829722346138653626971539719751239693936972183579782901963345540998168645987537727360474600550749709933158032061461224102734377495567255735452103328142298180003816184213627751484404647196036025416947421633469499326030023919086855080765067467442739458193136956003776554163676958949905037302607285892668592575394299265067559725123481823317839662508195269821816767636587378784897018650197780602590192360434933618667950408961325848845567715365375157162622908747577857252309554121652404897591823387562877591937866820107411636304964437369374587745414064337894039295967798862242130826368873696853973745731622966223764999148410342964433327264424019347591162049281554589563500902920921229120595352056630032442396113385450229929985972725215271111784231543659923175947426434764533495379269183439790053372800914006842502888169137579010536764876459262275674524848887304942409681756393461160614163714906121791290935871195714318772563052546238622381424334777084856441231662265030462595656646686035347559414525635370638042401842478043171451341922261421569735028912900488795075401418555269441746884808421056411991286288094747410133495050292093994483383256169491390075231551963570443176571171317116343859266929111330274430220851901479243462351593230907587055747726613342389149416536457348768422924311493069277060381033127213915607374524895853219677361533625893437382935491300448970144626298959298488335933976429696894626249039964449356913980145900897345823198754387430478985604618654939973320235709636133066850102544611991707910518541089766095335173019857389031849159956775697597822534732298154947570427284267320715758475174880915310309585901600395788620737067781117052317067611338559455955460197940410389768809342785079160619603530766376472078115625872608991074083245713406945958088729186845014135546280870667227487149556598212260280997935564061756249471566142998420949522171042768419457325416465075554622514604738007565731396331550839803229519889994326083864423259757169555050670923020681957225595999331052554005537863099705394829390053847784627238466798309514486145458139398334161088770730408006274034957876351534913221625017532394503614423034826187598742003611999917378962718183940891386688051524175670692363907752212581354009608775720410426505352526584106388396441486084309557053299011877174929697487138348899403181875997765002495917034663274864021549222398404310492599269794249317867839538109914726545768612913782080017725873534633405992754948618090969408495521757504862147213531496302332164895166150723466618686242047476096179296966509704260676339438611864889520455508598518436717013790879407361607306439181745938795681872218648279727807565728768108499770414153718229146986823704104908742804636245274345023597880063294638878074547969052959990432523625326336292796256128933985026025723466506988016628676267010331968243327406725193165062149650573862876524128698237413792357026638875361435630863978457545268423583069027633761726323013531190494807519972240318540985840985779591632274307693394058806668260592488861717588240530469397096548302414527410622123967509403092400403052774130340610811245438631263702906673278426360939291709166014005673838024918399783970956295881002862401775159367763864437726273970024598400554362320443906706975333273812752221600158173101296294912716875488347700776303799164192291604143939090963115770786013654721896526831523449819761742312123343725378783625751344429389334815328082430435675253053243232794622102851079063035053038771037400648327069106913682147905250779211911772680779970279806843125867780924497457562892523857395077287083436015808035824866462904019707018550757702842517702778973128456967916505105257434401741557405559293888683592625638210055222849146286215854041709224338367334299744638900427575099575889778009459689086159203075377373884413798863781020664704942464507054825386210131977252148124517809366836206237183510024933536169080130982559210328797931115036732327790918702100868429909058982664708242399063168176568716535776640221392990866832081183720307699002426700759675372573039917255627733732396704463019207152351829157039295992713947923858644949990786945117776609459116828880001622460957134527782022060312244936586915316322009878682690205111927282624048985787091010166920318510567362008274785006351242197275496778299013748824727768164576561172007621932211819091478529514914751600904427174280513913204340883890413351217239022539650404066612385702951522891217750538045782501275503453151916849394843087228354766996285272313957374646547130368286498462616794469354563019872940160139247619553501119984854579572849592316641962950315752483423511510785729828726465406437034523033155600293033372558627084882235398357463268871006780954586940143952891905894645185983307884217649633696947444344148498304888640396736353223845523814752312939226228434395763170909320174305022854245378822477479608898717648824386567264553416068374728606611078555366396850832169907388870382618231680751688987116226773738573625552481982058773404951780583732864635320930086624662570737660800145230362859656191641335865835258206249545267159571125664951957502100371229464489257433697810137230745130252019795091587153321347947944508724115031305753010844813666651239569018734431476764715557868377683354555563669488031072689292101930507421594751572168189669359130639326513985580695730709783556283108331640005930492616539244439351833151699537755286562390210315665665974274689600495046337314027809893370818472206178998160672813467528540203327049292756825753651469467650482984081544263972299525570648178575269406243801032435186848741620837316393500178528334507096530432608111251667579220302276499592648191677135511448883280187864596441117088951507446986807140909134718379608395892511427674414542837011716671330178026929025184862348921426857020140512947174960689976411990347475249255966819827609032052320252978451974341119626665199722892072533561460198777816182134163969894266294149098829539723496810392206261797283789901328962472620948108335399828656036323270789524790252852498961747333754593154420803420169156020039809933442088219527793871968689965922140441260445750402144710350290719409769035770357300816921049986037882727732760128156013595565018611676164046779755842079658004130682862044643636224796362244554460309550403363730149024044865190540473964427819147793379511815354023975894633894757310987891862168731433747160168721395766655076187744265333745047330341443589424467142186964619415974971730240744036253187241005219564883835670795171611961087441263166690111655551209902068383154659483616159960412695380093440286383311650852115941048163097200896760135231595459542334337390201876746897594165129494962929467753181294251672997374540359512018453481053771576394092216384952582992373605731262600131612294866829845374012713516928019325493278216905553999940444541050497611265882669226247120397536732285086016801027898621109630724807891200487774587436788275765532166520036338934457903396745610624890175147621308492841849436587563841806135165981763833862372185274891650147137621679341718610882703252772597261914603427833641801599771287984548441879580353456778100678855039917945267162738953441365324885406810207268160643201136889941542491580729311486518757128707885910323294346716731010137477652378425272324029916527279181455476416986802112106399113547656661621738584362412916409090705004119742044380483945594045545779044301738993304770142573030573541562042190652260401960976930235317576187048789864710630430729212266112900730101833439979606185880228562334456947330516600495037400912705195150602573751266551577157736038861026125350366607653246619895347339558918227884813222707660623279329058789516145674192781270498491072569037977160272807389935824447199723810597250313654164385882401008476861877941302380750790782156860452358568976191502269277334585374052947754062376971737578912203877001128479798281413937921098721732535988158383609676597451890712409339497475530690358962774823503633420023132516306080519267421823634734568582681305620674770803007840421295875490353352636446339345292757591655088403154421109138888494512171120931007109011968515557936144448660524038408024660438578954831930478918480604462570217307423373495474127039221646177478972144346645418082909531438765885677657532698854732549346343538247873099217108022390240495417573588435519599345181478945937973368150959533446704568627830642053864437458715664750304735186939984624680895470785653180608283492749460438201457853536112666789051292840275893182955978496484809911398200655066171622097303357980242869295593471891067286310816823826475917473502867415741702780333650630621845846719810978382707175021570137002629059919991068059603252545756350094769914141158620585550503597180439888279988141298134655648555004340703517290817998819899203772387402184579661631815278975730294022539393240721541937929416473411720646744604959323495244650168485882275125893981766006075346961183256472722683233123181130930020794002995807161163711080865796636640041502912765603348315458306516397063493896245132504424052536605888155698205886596361429920602453340950158365999603813852724696271949548711651080160775104266582536465728394541677556420015516054506945496075648201564424839798276148084630105244651503757587985244326675861674799594899321351308065128599939877730823031004739857410678660900538882013706694535224219394755723447140554538693060853854137092964042782700772455502425843321034181684855185846128794848725928536829146984685471322903265857947055836720379622159103237079337688158561594918461825216178977691876256699624878152444145846894330112598668206273868431159305695264184500584630242879881068097773028390913292326779171073159738231868491435515663890249811716049108208888795936409819027353224678832515006029014838563781712635183225563549667718317512396656199343663200280734095656491681978391748509278964922675014548514750096669379867788617390497387436754883488346900164600722556217678371125945176497266118744900048018643141679960602882645535717728604082457344510358299377771986006095096628933384497982073354006588198500645711254266288303636267272013617840957333760612685315281319848726278179822262838889069893172890992731434652339752358517440388360205874116796197136641965610963999457901650939205531553427698313275168257770469224346367152175050829777156882931497284434491693162150936366711624653547335990835885043475090995835363854394258887071358394916025393957487091032648521615912983937245066440443726777189205091540368973727638066309291051434672416434624275141899871033547063344910981661008277592714551285864884476595949753615789594891601781940869965599605623450036513138247425501317847052194363994224413292964752939863214654309256490206023917999607318214785684533720369614274662772021988508655757622937166509301096258967600269569231778095604715405594601216717719948860045640040013507836590256108035950058868469454248713164071413788537761911420238910643828488134617478653781152194885056784795269104252176584198926956073679086376775083017465234033726607063424591760138318021922683915922393445006217586235264435883971176058338838029738115199337456146044630800616152406125982354810265777331075045857326770135498300730556995266180641806095078712167715856493633030837950868348961604161783869013987993470572870459204310900541062872030097020496973929203004644163510816246535769562288753090784828612054157030112971772700271164770893326419537243088384561931509885883533106107068568062911195990753961173440767806936953850188482257051901796817614648157461924878298792102954225142626462117491254350494587360004641400563622078628767684151916829732629723642357653314364093348969530684751331582062260035236205940662891087943050125094458008807443290004399197690985516688012897522316386512408549958187882190549202417595301842307208249193001895675766871023003386953087016250944578599088075243192176469802089025822563758020714839389273500588375067047640685949286759013016858181475302444270786583693028784237298447600002467259759979374427025082358572199960964796430599877190723831264134298204006015382481408880862335238607419830009051925827409284298151559877159842852600075753415479981471334275092490798891974691243834763595055724184268612893642575660923658020777594373818318739950028935528108448759484230849625646450085784504432911494172983451814620327760662449128765153164831117307225526621993448130718224439125614723121486877917892327964526867864333064175284085760980661405262706343216367336074876314349670751261329728082777323553911499929195562959708131248047791758703160973644271599292147307411567256110618895960108471385516009779457085063459707468020336644876822145642368777285051309649935862248994527910741925426037638438798363145273162647928686602869968976587574954547369120565081461975423864659973182125387213180718365510108390051356026158216396876501794079646665731349364851963418048022707425112776905513391630284378998663038400300250907358223614263685275316537543934469049402623861271943651360341249004420861108568272198804846349811294226733850136337933813634141108492631453379635568610733436461143990267006338170130892076784106099842564814755689165844856100695349688788985691256205603014669093163852158266639419698218168564025035554945646978893735786179676312304512528208163587263053443153312337098001230115889398527095818673391980685428618920528400290561402539782576733634584546479608993378589968414464855461671179257382889280522014291850909448616238343602308680172679288406769605560780196152058136699262129067716342101660806430377092051271968203367257241027879892182917225010390789750072738301550825573741497072831371404166029179352051451848327592377980200213869118054263581471017780140158316130165718061548701615201483512776221949615724835321860810743750417938700058474048380055525482315954145842076649733701228807892710893938176671365893738034110091042381753464991073680600541660419678349902995540848292631754279804017951212674642499420106675217653217919449612960945581127392343250824077660655254574029233143055870749971978883573349817808909073756777617919321958561955090181185007863749211300136035717921884939094286642332579062860780736243101010368344920155378791186533623179277303275770802198864801525014438951297055005296178256432431822461389289940428799873125295890715336843161699202426453072605806443372276553146146907616708857642054414843034604850206151684247189550257589028932868695731789755931609529398971264856499757340525312639190439623539536399705886345385806955046175242859250225383514186099849593476042733152705292206044090896824307644059556093337937876934529474879441333474943885555104797217584982362010540443830006766091918423599932140183272572812268236293589167305747713611204919541602597236834648518114757123544472142751326414284298402112364335826805099521275234422955848074049371314162056846581034389536962050946492775235248515821942108297526199741641394514179385151568799138378988766519683518102807946333100671197369708625355779428978969801547918845331752005202121770593825811654347709491753522203192387211401301612593954748029528345654691514088650513817187163311758023505494751368231477168123785659591732619867877984216503061478733873626578460461962043926819353836737755268207393282642617482065650617025591482793310946340472729582662554703828732604245426906976173282222291793526152786955307830156785214576087106626604111908047935221643910403385143236015965507106403618330094364988386050806069315519007051211609557526309286555382904313705149456624956939521832331374222564194142308680472755497638473550671857867084241547909968469774336729398858459464031234039467055717933523932718094134673858755327399221190834792003345051188270775453798850121804134409587537536790236481746508334027113710229215408947519823966576989997061892904253470252852545967254717969201622721978024402345323204318492974179902570789338352702260491829439513582860982839813869263409110039473676185384082955165671601391189891254570299535695653147924417174122768130588268228892234679041088781059908073104044011692296476326410747935156957881166037249541555456698326368605928639335063808838394858232707712329884590409786391263837726820428963808431055775055830498713373432258143725933933198940505791268674666343520839350964559522772285652482717395983339530099485134219015377722145460512541588557422736057377481986714684455467535912209136257018295095298973816502969138962880812698205619283538073704749537801682301280300825998329876163535754154667067244018937070313116215833670377146694502151032540498029205574723766597322766718846908257368308405783760118647975087281413045564690166279896059577627234323906824840858372660260296938632594102612547802417400016593418053261276805716050737487651559720617897923705529513873467733804548858244875199562764915882952812288976393075305074791754221523127417341048007384959659748605680487536505657670385478151803313722027592180220556017532417432073154650423109205730906133897243781959493800276647283277909306091531719602160775808077181732968917152752137182365858548162922956733607606293911944568703644151823826411506443624224927509501925444171599090329185638982763324434552387993018676334295971712959942295863302814473687746710879249413742637215331673112573453612131063617728590634162273475830609813153136202231613262533885277787594258600486022481664302133250281492554995744430743089892723434224033120511565936711920567719699024958256322979739421249735816172118294085734554542540519449057993900855495351716287154990528232866626750691556140904114878255667867624269904280101206421367775452918031652113901090018923464937176056648076203556858146307734766479965233874778087972647278502326029064861030183456740311399531641634317026365788722452892305432531745463494828901699995982351935766556468105767734864937404367151772504717510804338162565846870061288654579132422198034587348283285517344848260247145831406991622338861558964626046207565060245831047076174254638085576280149652085452521408382941306770425160188337708679691612619339505681339793558306698529147873968231268795236919877339787526062497389373584879042750190801298950416043389771978114739644585993262813678868629083469768938839421513689696135949823586850590097907725837118429484596760635510433920550412786646452822358720983917781307375966003983858026235411416690283381427491512970592755768370357827705529189932706128678194690939676687966989410943114778276099683215828641809989066560548867222187955196987203182009826345804862964723559049767713605651959989980401455521357060789402795302637373905238189699840683390028928860813644834514842092319444821068725896881838960407734212412708919396757001154719743615662735118279071370877156344340871387155840048122272374150818200286593803509753014465592114487958511139687662710630569561779082852763478697792310734172478983114633540226101182245453405873760326330275075930384365335773791668080077082230989480806974086679146365852717991285532538418114501621734406077137998825157204345634932437695624214824772916953508179869965366775635822366818908371870540917308646433362670380274566614674133534077071865686893643324892048439675960305245714183482966878143471351206658768635268538357400523663399391084695272200184307545764644379172026372185166020296505322729327884367775795407832828627883044852440054302847172057552254112060707696846684431290993090158743369842241586622593602005118330108140625189816957565665520673933776976315645782453468835406893279314846806950753667651166283811417785232047751378413892265483043803995403566681428300335783988376636766353569760548401594277621811364886044873099678442754877892989489560190203671524784532157024678430169038922355436974967874879638918729571237652984109919747111106521502093890037498389155708546061838468141552673319309985057633014906036303333814804824075770242651747049961875289266181021824482584786807985270277652207938245400713806272202651908854295571723599567828893364938965334522088854791214765119300077024967204737653036492857785800067638811124102825681373656200231324053342239172947491036214332888847016456089569686480713015884232564364078869765150662178092915838158400501335724381854762292780052100120477274797745172277237920377725217496427354978261125198002060382100112755672294342174166102918462367394239048490625421224427800006607520396249763971260005950856527658153819054376058004013493196553696897018619015746264333894373237206845584235401745115925447700318427279449446356902681217105925964584475357224414640154913675967441178558491006011553082108835847664254377771652686584607860224708304062873420428287932280818887017367838936337639552099686061404375319598788419396397901716343749065891457031525183027823229546297836225944415622560570428582738926251959581628606100993269787960042449602372655969656145189655804957622958519476145763111555478897625810405402647905033484518203837259282124591202428968819189307668223074805267143544602557545300836672841512245240650731441767670384985785396963679491165820488159070476248642345561484765645987666895168664791819159433872586123431561710215967514606445459189069011236251833625930946735032629347430241325295313517266375221697108714317763816343362801580518801149543568638255698873643067275591939048164956842230215863586971062479099465387209860463696104845120667704188125177552865084349264144973926797774373526859370054107456398513068994306789343976839520968423326520722064485407842253615141566449442383656642425827402398854771664264828758719218106217208988490026357037411860148072085602033522455832567692378127127911193873440027769998772213864563805069645568614388877294687960337314485740258850682940524360871943497893516129309529975449132642707577733524834168156284238839336867370529240990494348767195628420330130732633375169792386117738198613202254546643543038789788870542887547617937295578299606541062594019049636459925922911691221452305779840429380691236175669289985361356338070499181973428970012469685306455447961359599848715319316214763290620154676656205539766176855944949958308026484203451487622706246395300729315300690824097828099625897582735699852820744770257557572445208750518961307625379826077021289859384667667267287360315345729381616206257403688592854697460830021094996922129037243905204556511536417475426443570191542229818005149001855341271537257675225436881173633247961324958297018525056699373513473164478454652843591248636533933523868031868953506873918967117857517464728144456586623597329108576716695572470665012435857315419861246403264058088170824202961092232097470250421568422879285537819768836752498183030145605925814206134207389677843222279431428923959134236186523846823333188106694900517671230584183683486569645045169100294174016253411266073123740648996318645352105908085282986982404834914887170892629515722031791538966557187184276958291059093988182079550823755376432244269103413498079376292122406341752161252226011947065653515712017350130370356250288120886739687319664568385211771114876978002742916725572860208838185188635984663099064100129506456618583616075566155371224030122662049343413923700150604587918122951391413532210147737248074800089162339161635686966011121530159602791689075035703710914146258531143844562683375060870990811673043091212690971549727340597084543347732972726151281750403895858702036724506964277984679744162430452130337292246202901505261686459606828132161233075878507353018357222229532545813981029663733370824281423534673123054213767089629167616555202112593755571403313737368377461541000878345469064461581364346271140629249128365530472706740142270978648912764221783676837595824452671914159343632289042815216556049615665374463806692203532357423878252726509458860929727160383820129419622197069942073378811045456425209234716030310030577031515181745319397611645859338406900936976832443132986164701954385516396017241324614451017485595120916335669763256692700969561024126001671223597357131039710774936684602182767875354880153732074286841011362895224911452666859297587806604864811283861889264204147460171391760560791112770701620912376789332160001751341557989189249541981566492629679833801303928365425405115777616097455904009476933910138015840677087520721084930005772706877972245891077990784347412389308842853245085686313155745673369556962628838524481937444046263726285406082978722814509554982356268665403505329875179012099480924999241724849886879678808442232947512115542331207338155513713215275850855562349416114422028225251289209319195420283763469665388877332445508002457310697398988407305754954670901893734465349269792811083631257565468507606945756401470540792933206356426122503143106842705540434921692715107909613113585700676793196309499871161103609770545672220203099353047743063097838318205399537903743189286824898106603987858137627249739778455096591898165363688344022806169189418116313599064635381842120863264857484098705915425239010449773213202345130552211672140877511261527568187707999888297905207241831410843539565535101110900568148400569894255549977165727281668519006979193842173144692715303480621997353829722336390091413604182046275427523650193258837794686614925056370054524427254902995311462667170692204679868370438057158123492400263409772534361516133277163098023786214191829745358940809642239251726416558630974577973188231795993614944790565400960168335776527242450990791700825147198309622046177624542561246947312630927844994919615004448668738302012964408875129288474832878940230614504888139262654549471663944695590844863727751445574040282328723150695408724733271777507005213937623961567389407235326521923329428830918008859841941810269847281407541837708738622961382660027992584158859418200312777762959994613074493944711161680464564743009478157968125980550813807383591928452752213602688336323418372148143248426987976915457568266684521535914959635183442405097502267192022419817316385507946603006238189335736258531428704706959887610558581094658950225140514765610488219939471458604351470661457562226185267568894192968829193375034921202044561944735757324327351352385422445353171631378562312290903584719005307965100429630213350769317284936034530097678075790530379530020453186309502253407858994073721372724108892751848926091006300003297856849924699730986811244926431936072640443204220076721756994139905509883344006786020102676425905108170215749012033582225359903078664249687114940758573158919945118195800388712736293084303471450683129935518036629212416032318303670533998290285589124476070327004541258169543176774318093876452015985707521623988177615710023910687741505450471536669196314525711909812333382315915177537419021999464700038643839765869044056655451967240241504376548880615068318419991535442020864911206781199622334655219174911221313076107713517619042506519770573763138597026015869724355672401457176262700276276025855471098440623556045170545819152754503946552417516862025735001723447366272418847557670268889352724753771979720800389237601578442546772543683719977629816590344029651757016279194695887329764405957711219765136715787561234407080062154677922943042172477323800909309771209528497086658953497863688605877155771406423515648145883011698219542695207033630736855328159164749626145197942187494252378815916623062446318095761409070703318329728002880193557488793942300121756313873091312099018760229689789464083285374943588703769521711594157375919435192654579938508400247872286504204543065049349585532150368102108007992014142322839781638719199845336687379966314020276165493688757847928162924393022666055711990862465704868448490509190059199244611558655927923516939484912958032884759785362477754531827048664269990378213681161449135371634460040076337323342926586621720288942789753392854822177839582717501080478670196859727373797627100116686813921669823074807876595816258074054780391306614039092638178733678027697814488606046898131822688615420343845431899240351683007451022043180264104924527099057875686712255751882688215593684211443805615565174490791146504199960349164913698038453824368458535955259982037351590507644309882662823839248711101959168489292845402058017200481527306341324915087800326999426971090697632954766710111411825977790168586497913130249757338644538954326405328088571775985976965336191013225812495796256412437119393014844549337227585309105539747709648056485748641270878589791822550455940203455415379440578522350221317795580457912022864778803944325910688356577231171246467717820372221940353974575070322726842984430686747528621307442876404142196553802064119152075991065237402463018245911168529953595890307754680156545738590177704408001883480113921927301817957256358457586937648203657796641889538528933523825307476363568467072485166325009456863062650202104564144808543565876768294601388112936538244032849110065484047660847732945096500325570679385666976192640413820235371688005125468590068253323107067979146833592791606582853887285092037010828147013350260318577808259065050917196832385661669389373841808337197112929307493641221095813937350317099602589351690561061356929273073471608711084286852177637509474956632307196203612055945401815316511672849161116842096961685417570679863810297351167738716124520296972349484629752287841054280320407639871091923975008503146856169948452827249619824817244362117727781713368653795239456135982347616558544807282864234510908070773860341377401409296871832507110065876435765641857362714797378117203442098624117765030892312073317636131512512757911016063909616175349032070619229530527594316681010000755523163829908033285850005787959082601457485774922458031826620604813288770292499849594173472705693022168011174701754691223285515547425521250733187085684044937945199226617900812487398074642209203174163932730186476546744574966300527808070048811324750075577715546488877100552876835023908224783890574736991999249268408701054885118272703480794681301850740969198779024964438958028993008287959721550446203889139792311246399079572932424546460408934450529385164695644604167008821498361694052996292325762967380749720784770168673359029286124934627283922311922583831621467162483131131404451608485480644624128197017351469158012860824508223428136355858587634646432720314648981602202776495301057457404534469639201343014273846209981717972412450999516478687655324135648758270285511692268011219433690992889168723921554845896129088821840985725192286061706877681975469785411823776640229175513082405697489702533613743801656632677490765184618528098743694095279548990305989984154917686460091511904246133138659541456173476315262112067435637518632240038835557016389663367714902111809367203336461880559425646661885133358309968828172219342558361248060876790304502558520561515268847081227992141370975481663589400261818250054944585068456209096489239526947330989622851367236565473588471849779120324556935788926402597980456705508674782209542149900974929945547635267680958891412669330209109973814481214828689611868613998123618766852391978045097596967592774682611660113769297500001504777147170040731661537442626091600478509263069415086453010091653357491714674213565828055367646295626892182287721275635714293141408264030507131856731421758106558186585197625034165261190287856136565259474179408486443489961531755961644868990818934858739699402152830436703191334206614948094621346759426052405186584694330042797312148061657240600026193412884869231839318282217802055439880072091065058363203164668663265914094921146468043949917628545047514859610143264138337933575234608781222186388445080901621798776356936972717531959975058216217150502435716421867917578579322254342605540391777822570445027811142434371399008585687426909806798895319791972229866497306677416828903140593907448369138324475144719586646245994565489610550291420349583145189452922869385178286567237783272626461810278283636180208834159142438823006235311557939026943215558089688645313877278130487273559268928432473288867865991096408814488975340001170700967961560374683092439661792050335036439602840897924341558786496976673000268684285203048261225037767876465948940901073110541191009596776306841789483043600431943121701979344179394769704302187907098046678818243406570203299590058899150105786233722195901562873650305929371163371432734890821032619076010395495144050612958225543619646232115628858872545501990273494115415709717111268258545459403960249659995398892269822510151949301825070701274585269094109599548928513171500557785223226203734607947199114979546171473762935153923978098931477669518516188414949196298678068984648912226337372881839774913755992514660395237558336573073795819702939118588870510637617995178701786673491466173185104206697892365648636953785583164675683615441001656381927135182525156761592561634840968097245232212787959867365952660128610915651629386543131529737762903268664155354769334138763869873293004031195714302249167530572969574379210226774920803497912176177929938106175316728513650766451772231060582798335671088467278628014507153173286021433540523312563435374700905688131718888488367777929619380385907518427884240604998633476143688937208496590023759123911854716042283017506214495965446438239599611096900864753458933558066137269138708168716200953479636748039131685289041017117085041483667128793668410850549203344694513069512551936909758104973333468911644501095996907674010394869664285754322350000931280783191490014988970883282883050138560431044548659341510696878397533255531770002968395629544892498872350005499068176787655699763001705527783839515325150972171757721125892580821040607536841851418907006813131685904867073841255640784693829177433644893833966717248989817493871156889093615186542172127494495163053810857285842693619121467717285022658387327480102480823047589459159719409380146771057887751929786134584763526854750458346914690678519997491383969771394358806675650296837529676115819621380211979047409929781975938202873174818465398987838642868336991509422534261889252333820036482313084513289798218420908397596355193994909431987170236954674020450645324059583879209473830120487060919768104080140272789320690487866962686305826011933650499793216792974226866919886768777274389278830112917430532667432997245559425608952756161851172255048517204775146053900530937985506912040037280796254777164222520891449948394859403358635076742531611671298739448449859048385286018244713570491821166005694381881437696592009157074225944916877550664457569599725317649612398531163947914632639004396476372024062058173158986088233600875706077279326529640726052863666636736962087982156071480616384679180707035674956146741851704306284021322729778629899349777710679058333220258682430767066626607425957855888499187077506583980931225501050280551020084534005944631478274414164695801755278124027057183984138024190942617459045270137223947325801049794600536064921706473673233067924288132682261898669716431401611405186423057544825975415677758771104138985916528276501545883669802830099229384927917682937849554341804575343384238830721398399097528293511458333793916070316728708604560404209330546381397204783596416695634677480370255251388653852610835822839502445271631647343116298925218387891868383941283469863947689096456296538409051386413743231327434681460613792282428097837696371497897939688708819947441988152137775236534700825317619042111539276921277524220600426774679407645206527466448600841518798823753197863308095444433083357696739666086074304663609356302410822275991777457287877193124386964774076282878578705794251990506676713811290510107977651790567189967076272756457677398438207799595682437551788873596196731786880353914327730289973723382178583798967751223268244269487251158750464458196596924038675993635215416954136019238436548132243324847072291123367244006482213881593635558586708297473825317349740591920397110124548848193239517346600776332346263166371023316273483059703780942551561067059419306833719204205657981303058464785225079518384996676023257024351807654869797995226935244225502652276287212564727326181644353972031631919210098900303512157750589985851976887146038392101956557681137165281864258485392944835466802315688827862644949522551319375883617994160327690829106769454186040564105120493657788433159522351032642041872011118950315405309543241771356176272316341443684170656124220308301225499693947013580089501772668276009092006492841921841478477754708082314528835903429593349649599953075502593465468049296619837952008892980636686231763577739843739558374855764230722415270031996908132341955128151675315628491363189092383532786668387089375917211712472605490960596324219624937676459895515983219799201886416041971086924208258270534847311261755790858581887832633496739954125335467715205098588253615939575251629421080703343910663409873279510387748867743435428003531930276968647810938744477881254937474821425799176526552024398504510840829339209413358100930299921410359473901398719480559632833865236509959839531219341872654402855650502000018412744758313661957666972181461178127453649001075878495846254781963329396158197133467338936101101520839394065675447646849877154265751690740005106965679185382592390047373755106583621054326578439925147779685836824456965250295468017212313958404132197017493298174342366659810901861934577981345881567669381035999273757281231993952154306631682377303624196371035945119545447972162115681218559732726008696493293238762421321948166509996875690539256316207439997013604008515113022145664456307098371155269376940729964974092012284115677125571285994938474760756231148577112304041285715458905737779011105461588239866854561207726126615974948037945476072659797766234137375654725367614191853959774317081951188485730972998290331620328109311344948977571142075497920727265324591888786944859637019951800353731536832475181692949571670435068075196030676921235868472958564470732646763448633557339966856257886281352056280955245612804442110920980209627459959053193020458196377124731057643705116907934155452396135300105348918234244744586609642666367107451414863007547825281407864953245144088981470390008056945486728049044190652546967848311238073794702947873715371164855909899197882579808752412484675281504800167581033677569563035844800669515996231727558933561522069597301720500428470485111144834090052609466100930457045527409074346511639551178009231243928292559064781238841434979778490367848231428891427023685981472063596376343187118188038039206167046565357603570367807923866737894287117726710059251268130910079746131492401489124434713997078053407641695434392496413215725379238991640835193781501902059099266319018484419156820365135368800059356079902754066264355647308647841477141510409487919985217119871596070722567410155852722567222948724836029633807290482989651742540248591113164247827906387344881585878992142129596950034298742263892708786618495213374460063788558663559983493647552942350939382785107727256096989481861072764102287552106193132754839828508101392580860836942894739188280305635984341921416746099458235424366777863270321324956946387890978015172732559823004370580684492315295012283368187596761377248233329183275695511627451185331432294088220704344647654194076970381759357281395362009952020741560959832870452404663676493043640791689303682527578391373844064037217968299716063636286776014057531775272977724965926203616275970997665532055767331141991257814731478265503055173545896513407190583700845738207351533145202097393385565881954091135779483821385079715001879037866252644373064022354763560886964938112169030895387111458210858569244011571752979170445546347998662471971792857373486321462277966903741624376361607177143928144046268302257000188212711099465735599273393524456484293545386473585834649934772237381273647827192169662564460535754876616360842157850561876581554940216947373720479259156758665685076803351637200213249630846988958575052343234633948844137387475026598639544216013955310054339352293877121460533908016757640539528003266351261874745566278051485575974656754227121549010128547426432117329539612585917032534556653300597637554176823546300329182661670854439691520458208687744601610178420137925109183713667967397666445757083138633274760270712907113071060363493493061976549536253669189130745114084020006377535349017999571238096834928032840967449732684025018560829178819329775783952236405674055373163314759503328100168041279321016937212857256970585679530540978814507969864795451731167211663734803371813483308816483256618648395227800707936831089351346267074029669350614254938822335300833222516478494609991781186898592308520939293718359944648500749326687040077166263247162283616419884216467809789008745008786557701717880308482049451716149436079816259966100971644888068604152135535873088419486682505390226103913173511272791885599865029720993296031145004296137690284811397712159461092825150079424489973987893096745704311415829020167252175149896815563282979678070513804277785429543377610421944528001169929520094317786790725099013162829120352922482374013899857601162719467416667987445706242555029905851882174188830183948114094255461232658139288605421519980726582427672061415429511378160446158972931676023470231660429142134088076180384810508791281338317729218468694603772485866523871703233654553825827271793827633097998665028970982351894569976209303683682092431321438578952259826658137221561655587708509313989381704873032054131418977702816176591498108641871966847464805132988272134607187549517393186543231114745740122362161155718509581128055121192454519445775995276315670061208745377572307826479461689264546575478564199292448154378517595109810472898893146325349407374044720925484250935631321211977457010527187899879588831849731802717981886376278643745660850106918099215456949121951275687510641651408345420148294257979276165132079171867363799952324606743237793119751153174328092155216549239582144904622179955731024895270290956310036478679623193200486264596163976907252375321987345937244226520880542782916043991322572562052046864489940629553962571370417673809478598174190110655266763754675677784243413519267337697441409629158858603392459275112269919273112967251173706326835219768066867163296206907540227428952473372118175918320642120899920602965644793908605813344137743439977346529343141072199464656489415406973471814782862828515229363516634416631296863263774672471947906351810292309050825324836457443261537220810764389170972272718441628144070296514760639412153068478151502524949137405431118798760849387421222993163992989946919375886680042545885783028733139467267213314341431562984155093140157681045195651346644109847895636382040228039139318899879923246564840184709227147945088650647698620810047828100033091742056788190339563134398974055815548044069309937034887027871702743010965636500977277607489228795345858139744461969035373550135593950456474393350677543228901325565294299044148019077972891496896182543888962617777455342836509444723479892831346056051656255279099304114811846070096822376435917986146177550858717099183468470589730351853962879166605181923559921973116595105939796926193179178216860551425233741671588384344860352939938019064465220355374111009198016231047311799011164813039711279331710147589949790282773196057050804284320043366573708715056916149910690284840623609390423083376161056929955217382719614127397914773617731962443334435180064019079427285071086563781122312883566460487079008315949232818649670607670813782216993963198566405332309133037525676808103151440146408780346351271367637088616836916485925612197719943772924748220280004464581219185710350440755058885512776594493326973208112697072780353644956933346106789000262618675338545721551450561590121422200092416357966604567318823700117325112715543115502486560334798149256090609085936023058984164642739110516274210818233667096736439321859638642587419011552139963034875427426102717805008776997725278988451936277480414140443564770240726000855549515381504425136536091639329960953733049936548945892347757710723676954804000573594271993178404872304988159486323613526203885773839279343024954238587237856735926110026331368200447161029924463866536540177520584877583076130181845108627368604561021942806345339638786019174730127367300563574351117256154349121323624100311513168020475619629246081399797466630800945537060331222916814554528353455370028551010468720670260712737432092182644048324822998061680393936498637676012250916094189507953174312959178180031497030993108668222452097609721188146764674724355722066013450622764783790219935641004939173826426157016578669670695963745411298594199243181736939817634380696900094622899043123052729014280702020428936537019651353330535992015403847706286245856627841316439854630831341248412995659317940010802142341029185010703212874996906159577981987077060278123486318301635235194003128883569841817063489853763962390246174712212935799072235059782369743825409862417420432757737180360861619587842854397245740238368361347737381127986331173338431893782881622260317258286019179603383375040423344178754006291218142473072415865206054864591689106829821899330625504973773369760010396109175194616578714091548635446478629707094200136517445832859221430488559946861118634211747195320441768154085904300148171828326552895506861954261892870556020772856522685308216684975140716797747071035130079098992918906659972810273684065512929711166242058400005566601078862884768563634112763697931136500095498839026796648942279770898539588856582059222249614142872223641751777193911595616396474674506725669018700922509645557623600058204192346668693944720536113436640760946804010044897295419384931349326047697216857745414015809037351184492572381123014782629515639352690752298106078675243773278847830977460972243880768975553120850772543615487384285428727139882106338855617269959175046309509893412246836199686875731581937201450752562814086052451340119476866893017038750792075639559751074237680675288879418603545744635014399897631521497931193740547607816189265165208920372378023993521391934598915334153667410668131920321791083588503440875518524821136815779338756015792157095019460798451917918478036975021588288708371536646959772898018239526470151385737183564896642831556848293716840260399794607520313829364786701400888284497080527898441424260650308298788091705981228701997629385903885769008201733447955815635042286958359657093985272434282603713872826801068321051663645703128624641739472994259430399485073882921726690398895111312736417696663566036027474819697244264955938199043452819363325374045105205133689632496632175739262597716080741715104108329988310402367428165910299395717027224826401626007288051556152529998251919930818711179465920660397945211554353284183984545245935822336994310759310978085725786888323167410248512358408018326353594789765857349542633852547932472937035284436712331452844759722576919471586885106719846623166418247690431444791227357167848120973952241615267847054235920328640086973833705776085279298967508533395970834950787916232754657773610487060537825144165394312022779072957045795671167450248916657137731191691336149299527485528581374941390281389419720649427341241089962356650529547120314313523522060037058354134641724313556452520706545165416220660324300460201316843290226450427739283313792848541198950032223053578522666486679171627258523199275854162184804802975528344444810158996469466835898314888215384929569030217858552748190311983199714421459878587304511065922360621264386515120934083427842648310204876596997365728882918135570735534445208223465037698820136079545501428678007533908427389377405844046588752535671725194235248657748039402493774315220599273400346438624804155027626366432801529553711212770391061241012321730029405479767369520684651194077471522652411253101045907729900563745686366825460909742467402136418364884955385567807909287163667873452015771498516820471499587632972269062926801686248478111703623146813211025001757052849720176883821491609012596633038060749918379118839424729648566285705076207295428907934521363110624649171656573615564057428233166730438539761796852986037411316619790762659811553078421649044737938469324222875425610563561026159266763453650783442932747943294615040099244005570188679717713855711364250157626026376145250509342430242927764000032108764489811999080376426587241419280436686845448074771018984749132649022877893210108336237591420942427127938359018258051619726031430098758811550580357655587075652024100421327912206585993629010373741099738117971752353024073735622864990775411919499297168269418989093915363543407425945658081206581200847578308021006604927774324674816040147059315544531871510339256785519432290526531375466231937521581588790127194747709171326023253847524243861667687404070386078180527005000573602933653753404045870698492837960218478871763184055568837159803266173191523663246931726336679802890404273974846707381773709159316530430610783698351379736509287395850465312949983553666784212237664392704086204556028325220395381967388944620631939372663235971792137251165013282158456341228653959349727915452467955764687603690619484578675375024798882741160986891348989800213769084628704934725619105877222941724361752440555378993910103202788514568626807781957400737498182741700499416052646904668389420410926368079690065554571804913386500880618058398077058278306632729735761449022465945171942532117353982769040839934021952141403938052617381732457568958313902870723017317870899779779838405574102206721004159604573535094859671129877948763640809895146619727728749191417002488530603430166731950805401106214314034612467634084102686618499586434790913861389844314953388609089648140630867353693325286205526575351842752295120496384804652797630601075585977594390154153914314364381673000567418563907237734401380479528018396006101741680172983501983609604896609957577848921103865201482697800643110869568193823723015864404112515988025021014939738814560277441580106308375910200401774015316815889204653994485015601021578780857882047827878249270645643375513260273636320207608231824008456245525426602295943191538121901022297591906847496827484843729878305446991614786990168567077860428035972854761910211050834181631768386165523771874516589548538971382706350845702150949178780811006804441878011617328166111415565776082560886530385391817043816901097268862403114049513443554543708454119603231566079551328117291825361289694047026563446980431825222918748390662670081765917874414828165659346064583916234404889554975595213919805173043301980552374577689155003831779420241737551390225186403650855611688013875931547781289849154392564893008656777502412527490558372872225249641003514123976941553994559934149098815546527518825967573205997833268842748190464517265984732010223092464500883887380312011261304694860543154419259776088932585731304242774225410178635310548310894197126590485725094736842274522274458761861885239517362008099599225349912716185154175338691466891531346464562438065936001573375329792052868942472688075782407663133305749742473656527264343571993596059132124031534295710992463796202514040649175252472605082999347117560312372878689423789304697727495152212475728623716770101480851775589211251674831383220685138491412046857158605816342960203743198229157154463087708190588808469889534440300128108233185809683180204523443342103281504802367937627259446743581397625575894821170796119308306482086670878521973361678547278099810167202296340750889405887818603214322200042139873856421359388133931668898157704199525919354914042241848411667091870452349317913263747371624520408793404471294330274045877500644130688011116539100978069470620820997930064044562688590706588491349038644396631224456493767617990608969537706228190194950930111623776222683313367062850947583856355452868971514101038949163575213123535065127167764614832034433489585221491492989388449505800633651140390547565680241293225286865819742659935354694149075423106330272215558352527475532995589891581811526010678639846755115623383433991825443931551730202569784437065021176485083004125918671261547611278122044376747175718944677294804028239395334885978769010066735963135675655548445594433092300586738963459007220808786754744712307241259073105141835156540691855422490144072885277242581883132329327449983542469183331004374499674515320557341108558703997134988058556421345537099704015384388235412245458131434755649423899283625370919626417401987252558657444551178736796260000949755346630032644190098713544504406210716806603758337688770173488248466405749754460797957647756261996450168625008011905548130933391722416740962176619655762332555622244153644288552128805467654805901582568080660289531919548748976450265970067066023360745240086146766080496877765769260192822553999281122247764396414724219655353588802826186087912975548726061495140229841140977186736693818232540088649448472557093542228032295746439483444753616851536463786960150521561002242707906204070486410262663076373285361680146976047363377118472690102165361029249935386170352767638631381775571833663638577594299552513195445223472395527225184793959137882422661027808103285967752874181231739991320005071877194017204851152092133473457563571781878132714427474949472938483257687967143971486669528839543536368506495067203074292099706463908761859092827118111527507615339366743457676924847416691979335604831770221973589388793518407869035558438685249503323481603789794079881949105433158938192814652392344905745742033045926759139462430149020629367468846991630411136098176547275389332491430091750082322239523835312124041685688086668049049122587344714655190191113158123812467029555632439378184859385000781181025129913562543875668102910955596366672694000053012471433422056651094903805988773531199146090723214091103457787302834833777544644356894063219252036111026649472600650746289353115638059916382756745962936191995611001964088662275114496792044509808423129650583091856547531686628238803209503897326079800974386889946563704933194063773028305640333159240064298538985703459768365636974694958251758575415559739229373210726268094955180060015165786661292602594810317460821578557298328988948805599487136927297383591320744864527783628779875229661382807658781080711760662089339644138862815515085829552627331887655908005939618755417092093619004669620616207098244272256432515701047144442857996848513699251093049042436630284893163274497813832378424408520403618957887403046928825274904137828610975349762537554441262901445254598403789646530090902709325118470910749637319110894586129763320548543447927875038021576142860787363410153566784974217038261328032927872180433282352297765604282713926511604429041536992765656934755791390900722965025826411307793450477454767063389067904693607275622139666795171525792090000903890281884357993513283843460172475701139089477976116385423004612976039084364144101654502506826784001847551261704849262023297814153677090969252512029035970194197626478709473439485527192982645074296924775552067721405237006068154478505732509333087931921778605544430409773539018822136745198359378769596384330735683751018448140758461416310058858430355630803175608852901244547617559990023986542369581319258014051224218140270678808949134274752276241813135543618514501497653224555378826014313946932083216203103994551770755894861345833424495655980482289110173107183816557604166378059031768166318556363246373061356579316162621074002530170284737656778093332342287374217857868011483670958071694790495680750200202769384993438352672318279101475682466265520953649325152277558746331671073849737886877903893932793297439984009554176864930866581582201476784605109274474123205730999166599754866132009030258545645995495894989570003130799183079608577115727512334894689904844102845187214030252662632607204967002551314035950610622518324901431786269262230216652558671162679903711879393370381500294391360220860405170859629003379247664375577095104958059168762356230991542240685419366071335332599216212984778770297944942042733309843862634608435190882141473016000374197421706917126532132337326941875924324048944773883261014173437491364022396909301973293785809880952685564671887725590697109874372955232262448339650513497114256986090871257520678566678552273618868059070861359442783058173661031659059102709541370596537783930756975065890526888802810359514737444708523270785036317453679026409112278620110992515378652081670268083726409857967606884297693781669797131612439568509900367767700636805414271181693220938875724614932189486464436744431412564449226048713804158617859586722809528372643430045862938920916096226294235241777005765175456839845292275508674899919257098815483813311626604486395689371047677353164789005375432297815504063012954419659390514824081691041282601772441916692665206372533563203101522883203701903819428717089907386729475278323907729149327010031772741082882110890644703302613522146078730252055758317406777732853323896585440985711920690373311381428329354876135903146174209528390213235579490956471002614995349606284445721500440104140314231460768759162106508797275750534408572066540918407558563086233731058630778926078082486206360397767637364247244361433507019267853521140062796016664871482719958148001427604405712038909612121507048920349820469750140541334975356904667743425205717277673218470488212226370183168134552873580672457278921975090098778352235633840848635129611218865103756377039168282224625162490302942812885360862219767704330008428322371770267904092204571537973254386782064022649955064884477126866420974787184279210716071637057299311161136425933688867044287300531596221365465242127690785629924329125359893518323397095280138551478168733993271306200776146234306433016179844973841833775263833858066635890120228918563863452253881134241444898342881322216803929439293758394628966381428888288430903664968401251016310595443473335185727299102760046644194519463950494539961751881820075430808444144680169352294991342221053368497850780478778400504059274661380162382277939936677329118821700797147441563638352654827445275118881838734598489541463018360083166117631644033248505349426028904699266689296013559458276219684365656270592464098473210579606346765312684708041659598058379369382033385201847429958097426104752496440783372290005704701124783931809224707794824794467583509360301207730128012817328953069055798881234138509982079488255585164026759065949699774112290961368524523313464075604836099533386071409956404581078525276112314686634001784619934317698089149086478073509786240819459569337415189877993264241423693660128332366566623682071924148342807274525027702785575075094804571039903053446441277798584992692914528417996424138848196514628310521940949591822200521201555746951228846189685025244348926564762663277050834078191770952702892583469613370520687290711791149662451513326713632944895401965826560243787569175745124588115935198061454624369896058196103990255033055306346235511422725062130655122072640047989393533746232272305242902470776233311344693669147593808723351029787671272187834292438565997985261917618735174358106942968673072952120482766155309599662669146125770058362704409265905158623608656955903754993131883172854625979116123641201080065469693473367477401378116530093436934080671167732851143975400074036853509764048056797007697694483260835369934056625143494116544910469679228920688864650589863179951782798691080101613591756021314145642905920340222480705871346020997985440883524036133252094357494960494558320220431391168546756043716634605293831547314696224936876630785635002204954527083899934693582368036983353469364210871244797764410402647854207563513469812175951721753062075496410521886125906004646281886229250830233062573525174663995023001015668106441339605676501895607784034240863619518731562602280133115537845721781598792773693579756381956066443295360220228315357732260872091964927108226769028251570558185571597232322007878610667387439057130112565623629881544950409084304227219044443873426236827449971256910621547034887403764813305133335493125457984628714219836709699558489330878735171794846914185832108712820901229291167154424693742205675978163948498283159337807100623575829368358010969265229988274985584732691917291936635379103891179634843514950656075232914182021041215643551943895999496722373828821651321734633233349460180583971754611085627255913121901259504012172724532908124038287282043348775198577642453796636362263390419826660931788192977278775230107715076596380552227115409954148303955251319531817465792428919317442807681597365802430183679777437144553295798230536932166843593436382780330784278024170923100374166178551747227596486034303795965636434249900176271437845954397534412491046703772228797008340940307154071171382496490189897582677341291626567305861423486973601576767050606668724266013152253582148017036277205569498099606798253295983597857248996156014430647830004781942044723883193065398523324013029383388281470357163847697086897185285751316147179160723346789303066223574751434575562724819801918025121373413936108634358774330365723251177302002561082343017427404573009837388842666473599467473299403261713632574540413403407662400465862343038121093961377249406379011860687486360804615018182805385692636660830264272676727531993909157880044948541844590785350652201705903282531519969064494326863787545041816461897957430853871264772315752239983603348307213388405996062618330556872544964112097015378606798949503169357666556626495630133734265786666114208311486209717841206110793534169961477378970106114694439392520032910523571702066762388837849822249816729380105660061282751585447450190298574366496654528628001585956369054682523727969824307820042404140213182389828433387347748148596585342340704918833303919940701971309282810171859856387840035535537303138204686157316925316430938662052911209397181974029842445013849958316727578734299002170957407678144588008156421812154157899714329706014517547325188217115277793352703638719979362376042867954575821555375954708085119282266398627783775202624052042102360750770804197134231165353869624287647599727348809709550081082314717577913137856322229507530275653811754457075757753288937938315220865546218345842732020680297177280122808077814853158020223665794010065444057672209174570412610602698857419506210606547019350715745384145807978197080070800366709689676960453055295328263099885861283962911506210284324484482321241751526002523027024927118822231593152623220443132823923306055428169701709072222708435534537640401974020159779053924056479254820787955045370787504773468703699993717051592716227089878658319838063799818741452903579014318583646783846155333586466381130080932235675489879676095190565364316386126453372762169519571066785488396765052572691225573729816785174695752379304242117908906656025846758051229811311860742207781617903935183589929240032491792313121777241215123643091629704229495325197543801030427082169873562909828528444470459310058030467532650988906108406604256914841186685335786150262409659997550901192706189188460033168757522214706480164397689228665118141344017465495253520100376888947661731634679436661799422964175819697188369250242173999746743329216182384827345294104018305391702362495397823527141331783886371865620566100866806320732686547928746544226938861496747286823802731645557496683740575197836338896735022789945952190614726429072241700412616227233241310320099470469448935160822326201830067440243864443397807995364639255549927715939906490647527438384069715770246993496562573946462698017841726234350253534191609712634908027987079753196467353756121069455848832427150721165445177519088183160995962762341670812461748564359820616038471388114187155096467792995085775512266452236993374239042307865878270735987944772863454226038420817904575111040377432162616861094085111176451259080620900858196181687325429456540557138850146184387505730179500291214478546873100785321511440424656572378599934585438008793492484274133627794803376326040515087302614587216613888979051370202766933250994786781656962926844227167507740870042457425557168066333863044513153123945389148299917049780321714257696630881433684179051763700647735490608148168464368021452029284432041781866018600958047522478919195229313041119066358390855019620211083078991077812826498931667151956397722444045842377487113249135153494026673407051428763208340530365215132020214352924975774854070740192369194287151288153756849568370393317791726451153554886087744326700785661658439051944617897789010779019700310892712024570286533517596737338382766780005971791538038755740599340138830874348416655623087850308584222900042424948650403416658698261224584838893630634666967349993195396740456555899541362751116796683102787147215702696346746155677709361356431627662970413326323523355957944396528740946469590678758494608612743886284234132204730769741781795337344323492997691115179868274591566008711635721309879245416025701186830446505299025862798960769355787801428472591742722406512989575185478240730981514868527088095710912380362635679151443884476300154991602078799768437188981660194676579743542892622490550159989291390126619575745750524842990195920781040516483500230573531088875840605157562567665014414379382940953304367537431526446613155750750670780786925840647956739529261737354846434274895587826985818080941201231982631779640471060575512805414548428015955721512337300318749453471724319728679283324583673944530380388957241018554853507817116033302063374159232184399366323171794414963857979561682934098458787445170561194718720920685591728808003638665752085079862145632078139323054090233821410005388392572846184003851525085580248538628618468089656326431252589751175213629228676563349040790724128200207048152786588509925594763442375220395718180950252320233970153375126140647386258896927334172114600339640390365414125947682263562511007739552321332486181191424240105261417785686483683417044271146631386366497618464089283450873301428998331635663766066092307284399743366167814519973434783188508819671418718401349273005571761714655258380681916820636203236925626195243438483106537315056000565594357315837256156340814990130656753976399430977068149281033784269712804854462159083562541986563022316132041439639502359169914978781783015553362856366510921321625277759557911885425155892695219760031146726659569057566662819445558623573424829587292322908337259638713004032086153877808557843670740782373622711525602648305937053600759928678621903064277611332176285486009455248873201244925208620046829080456600027585436051359576066817444046396517392990708992845949438040900206169059278004115721063227732925560665532977440051231858105759239185745243445293159945997377257614919916185712914321294166490936130063946978151463539291561022378735080093358577123714375430363485460570370965652094153092294951572727816169627433295922375698752719424678691873040197978046104278053547718230799077067819965924164676127311221631721594115931799643364254325748060498983921840753722683270195664168014637166198680165326502346835642997333995190796755288074385998870979708198724108600785967612709311368496061955686855508554376654850976691621031216122174689549828627258246139039389521306330055622209103718427044498461025567490632908851288759913898348496421172720154305436664410998511049789243199926645739311897770275791526094033165072153922320017859619149559534028298669179484051825249933363760893003933557665004318562162496115653080965552955248782133804695984769223068940602313741263286235562924570752261267109582313449909945506321904321890438632415316132156265671572009779004678869854147686231493136547756198167583048341270154266570471440176447965332287181791647464285034472002973877661936755781196149277162068120093102945316171460446467184761589243855432529375649005021395556069160209553714251809071098392384732911502640611385544635691507504003252772628659280858679954587739958124950746989971007303790947638354743749686866873319742197448182941358575407790131738754570461228467811278973623694804699013565831620678626783144428756833768315671068621204040511947423678001204772240263168184370161760540910922553206443594762138606281358375830358854047910283438040504279479417131767412210170279392645434478293224520089340745925339156462536719066087180289393909723613958355291653092989911631172116223290603853135786315460576944022900165776470095556988947974833935025879944763972380888523498752406765594136578625153170061792334737361568958861807816854515769877672256040195335221555654490149884758950258207591876670192745272768641672368906312608220362861254313845057007262253851881756926963566089457648711120679196948336089206260711298990235867696852802300650766655928897139432547725230679457288046768687538343675695753623513983297102870837561096153151935883225716190295754390047897545035412852962902759423297572697320700449464519461161910560472676411432438271001758841078896274285902244762729170345147278007687786990932211075860056622635893526371633514507748222964114893556511874674362871574310937138324573240373262928326883898266865487763272105801528220323797400762851076707066717303025245953469037030000034981975292040544136278875152685444336673499922077222376958933988901078047910959238279416570425079432921718343372143217851285495045211435444875638469124631079726971367114121490972586783804126551445646409673646527660807320746732473865424232413726470457042885233417379878971254396313601464228463848007823716631769323648449597611648183205807825878548650299296227864212988689886923406702370917215197508986277414978155725744823183885434765449585618840881980793821623256022463730983320966468633602912153037811138376550305360197706218798461642641853543697541714539539598519100969834936754325656160357223011964858078634428400015684146639434811711009445174726873505052409073656301325031343042613943024778368653035056042216586967151220709685946694104125638063683155138998561619965971090093751246997149584823884843125478117447850571085530823283599658608421038053412191414008330108791167494563468836763690592043686033174354788860650429272881788315449285040769820929068460345581582292388170329533531053209783119738525457085380689503354610684225234749906219622059436131832998838239770250923562103247001069054521057344372130075464818268021192300858466595147720354227784387450689750639444851507574467866577398720648696684974701145252926520910048648723116966854790001171070468542453474816979545019549007714449385301753648375864183803218424040144017381027409868381138732593821892098593584925062463503849742751355551575200276239884136243409743251879792557039223284180125347458085758268306792589480487494246740900779097352461979041194341003601475152569682267773507707374240675328638289902187137281831570644296741563577733961359706059249871031046647978122662148604424639628752047337770273729698722744791372176688674633759247879339433620585880811483157364317739048991374575073668370053970152396621643688383098839967829219701707888896402385290952284990166246760490090006643325174882963676990840328457289822220271864677438252580924410296696664322891322995806589807157835787281494343837885144471369941618680849843854172475204941989002957596526584110603493395962455834892881930132943221082110413275065713856560316979409355319803339354042491817920715149003142745325835513419492676246009496323238266187396267366712034897565097466003340616544696123973325881578052567626386717511218393070685747696909054140896761422150347349556643493490321040701428237733397187044067458349628886870406080447851633601241501624808496958888266633947214665450220511356632014905508423737574015485079276531674681059065608334863600751367004684859558019131150772289712938167824399162721173288712982749886313493111443083711641675401200602427667018627027428582538956862342802555754903864971005296942622682785568189151534823807903270563851502481224521972114255292632151854490453329320131600745853892263561687206989826642714846351657548746608758627639214241191999865857439143944236647173747898065405302827609987711839115869853287874396923059942395584016836124401229615651912087881193967900242287345791638544300415142039081364614356605203338250565654693948898805189695100454308047169912444103750498924995811303622836369493839141136416353937597012144765261189562698759390664689189820567866460447607711463783981342169951677096676669017965500789985537162664872022821354270447828727362290267185422293214245777762642156441090144722254212049920929084533108206895040140284038562386247976005347210338255223738513335987923412842423796414320464946243660279625913610851939302128653862323115339152422630628537855183751568024270517306658241143336418997920319008791809384287667521205996130245152053509096669187027304639034614580423552410707372384044141959940948666511643493402322119699244699198140212212949624826727611367048845348240155339637915997429426698661070227038269433064947335635808338550040808583014139150274757693596119849654867640988151960288680949364098576649466034341298924991989988519471193472373812773957981977284532914182796857432939626669890219214982220775181727354139235905041445921922755201688981067933751246165434884950392248110577138724300628567283628551668701864834009731932665270773042120891302842840251698224477355083476543260650273180600300092576749756651714947351360990319599816276708643999030553508517999850094651677606974363339051766996619610791870568777254846240856012524804767548456756879812869651954914739398560760907989226350772680784917730825456886883599817003193822202714959605742389790144575475104278032030641818886993139720054020170913235928511906873032365612099603052562773259670729874543391681080300684088428366434296538343049177707857329191421117845846387781266334199670655898080314693236600044142869186267630148875640293214629807395569522560592464443611788399468861358789809540678384982257943759863297704678958011025283536510361579574848487641308786526001666302023551843131656342866169726958644038385903637556728957139359265163692398117563822996025271819938347137162449194215213303381628371089733211920375948383251439728179246113859619925810300127115351328986091075361613558067286314413003984256923116352457386458145757807881150774358404940639167839029921488567411927736038671671414986955976138323648546114174886690083729609912610230340873841331606633863237467216055278481167629142526258663732466876270808743636900981341980437988331262074069966074165920447439785478356796432753837955853376880548979912748709972327892366137233795170915520441489772787047689985760886628599053223222806067545010142666774068244125452057490053393575677956394570638038165134993879983392060671947552758948841472200283184053111159987857911826689677926397027797450366105087934303804957948474923544034149149950247472243273233497437061425667874318939118657380559452392090426637914012251665240691659203835103114061004788394168167785038626627281884692586465891212826871999600209592244766586356282966183618626381938272715465035454038104576534386883983196029510205645169074445752539964332973577759052902721422687213647935204865564213217208055937007549874089397888785082938864997019248667742361693658233302199742980417252674182344876143740838751591635381507129431450467363141760152211726352119457694632232411405509960053819195339332139230538586108497514232960824980473564221751098795785296128446150572425968308880795877584768257106403912054473803057571095826348582961071420463387952862926540578177242032887550605023778729422027524594270473805640284663261926707382062466976914357701599182144112335503424353357701404028306862446224556042477022993142368694004304374594010030561217232153821284545141783113358383191581666891386349251208301008688437303953192565597118821413141808396348281134586742185155755130964792019878529924300463280276849378484974368247965081475424407490999115606827320253382505814313228364419234392586210283375833596261878037333843415088049358348175767216661419474904832596182321550795157157637010106977439987557111301119775799024607738608367132668924423618474634915255755088371412359245233943569873197493269731057048687209177888301708617328637472702219960475706295790096965903626370849730593529810622289539360519664030434160904527135823189560570976226117356043344957275538770282424405749099111940697116667332872851864177919272205183624014107747811662165813362778815775286221932337280535882412164086719161849404848533932669424677402338431809210335264566782729265828515523296510120666913381975546789221782113060340025174758090826560524219048179601307633214331444658103099360642089458552008031037878786180267459146850763595966263872704227496137121495780536464374771653660371904259815958726371069206537982812712331841840017062068271936933883638908263140798434840933945522653255901539874521636302192879767115380223992328979624335203899369879696939520361309491494511446037058293740538501646422643503895159910357427791078508911767227422700927527813840048527858372974187314808114749186541398546508629946733819634294270291407857184862739781351846303251880030919268645789557910251442128705551678987909133992452252812171754521190706372156499895959589279728590842345645416245279195796170663454449207067174036764544397069241197824075276316468545888476090991009040825343983024305692837394064330950769301140660432626317003250173791937004209884238988676835447397091928882069887641942002884512059407101547719027769810469620800611123520884432636504818586481419891531519808853073203006584022286214551438333536172771345479123542209094247337700924940007835372422654815880548799621649052945950034668850595262306209798011844440420833719514294742323899235701110743689103066400144002342704484927351934067793098891141338511609274499630095789331570450332967680680479239171077204293207663215401139725181639564643214745226136189667758024624071723189919974203544270284829415249982024350507675977090367925494597159878358406648078939917573824999481882212992470760882721294666086725133345853843303431655335830160198455788792875729757577110002789065691205093184512358691663964893070040163529928927041108608855746898592532397722213314119681898037114705534652147826158321539437094930933318708485517798806677173373331918297652777753300433446602843610500501102277335663538383522301027986933468126875386678293223549970703694478468734488387654018488905952685879204778523852977193601891596051772320213230637996363203202477806122147705400227298827508466802209113613214232545138686410860299812140838305047675852307127525174532961756591857420553548293396139878269234807272418366658636152936016071042111081202862663427395161621199082488236096518835474548997385173004524640261325037694408384834872162420096593730943396189959236318331585070567756376422003733879101034207956612388186939133108465017338123590610655889746163354740762606006132299003640625308371931194631136466686631631340082773197372217982799391190065789784388704005526053023708654127277766251541959156340718059014853229150145605719656453857326745002078985352514441979244196698950541809178532930768383526916283957279145389444852221284696024299711502071680561215922457206620618543125570308718534554241196024379750098719551118419548434806377165069054261110781049359965037906481327720957568127809375019212156385624654553796589079282240136544899237890554863533141130893865036342997135865453296117249802284371016094254757601572957024035192461086587604945203804807631786917870043138854355637849978807212406686626503078374943406756913807105876970313405328148612587207418854114671250387225214121507616327994515364874699343476373459159483902297282169247664071812973177843545637347610396450546354140879377944487193328890558179060909914125343942447692696630218281266989514768577071406174967403599124215131056925148055173967652532330514498857459899809937522536039733355817464256893900409540326882202516352166398746354219507561815552478452774605396364929477134724336927865394310425559744127378610149102625591024140527078225444289570329847374391414552872172973509729741926497023584325368319585965085411692838695448858244412997450067209631029874443597829356756564065063459181409727527318491873070036022511637086942573734223151650836347034602602483600619541187050271699283001403750872009099169474731253053117306739133446703696439918744705442101084026044669871366282810001143069441746225878999282512882394562013090928019442939285707525318981131642658314662501730537340803014579359244136311823609083441642325061072248084066975735077029461204118921139283158534386139137243067888640376715402570692766127938981478061685571186577495342102029807877346763318517847172262737825561119213800167069904825981293939167613400356399408794060392351458267533966638451938440303447598460369694937670677786817537202307651546850744919727369971988216159016658756409927398713093216680528610687755940004287613963103128021341828192333794938608506906349163089481557192942186422055697170270350355646950943477093426428261905499685620755999950306398794020134171227557510993268758065602141776568413639121210367072086023142291053625818662692072943771689970343978530385052054478516065983907388397112153630656762087579333761102490201508818453370262894771943044628468961396977818044036949934427797383094324963040860276692526865951343875411319868392200147811373950096890858843004558686333983117020532417751839888522123052524227079339738560534688962021835517501857327326862491914465861515915407525389928122349837207690381375812394545591432741585923419366754228802895033570569573819980221332949312733245101927493990576959090317759406520519839996547836732829285634068689230786469305774175807973277963245988602746226508666883557293350396163531833798481453920103757123581469628354892194638486165087701652144836608307968486567991457394051802849793740289502400855268331547833533864263185509108187494799750164170449082755266228498154185120133746213583362486994904170137197790740279213890509057416772232352042478571502852247924959564764149178482120853541401003734625029685978764215069132298779773229797698296344343781259377363096520896002294199207900041193564500410271960877473349332063697889674056073245008267498926393580006607335222999575468740219782034708954206272150562002118747525251078284180617421152076301000904268885546626106574314210148129556599402764124013189315633450293562490892448771107358613600825541638101923767844512715127915037541643306819958790333977714215056132789908537477403793519551849502185948155956975195506910095832551373152589811122664091309407707195778629325543816309435100773019176079906428695226599803081368479285148583188930381333284426403405516687405457549381389158681560918151229422275441814712371987443586042710708159337803948571161866592802692635575207353620073429450926841714266123258765797068406289157216398412833867116577248705901354941222778478410324870145533222101751928101483568631666123189872268430417920764497163632087195387897268098389270513761364424059215207443635404450662635640643401722046170659004776693602590888072407036170955793095860713048202159029218493637464078299305757987145775297610680073473867651672959720339650512581436656570089453193803199575729802065210429906668665972672041300641047458337031465255554042755326502815643006782508304384449447593083068343515721015407841179084296319333172280343711947964417405228987586250451063172945534497613164834166744320371337832072260063005064206752115215809263734478324753471416313131162025883267694495546353248629371967655014678340375644181026746376139182057520213498539959982241817828063686240982586517290419096129882186608356522403404268858177000723728839974202444006586256870812116708059554332125477612858049708541265478082569725448467141773419012905661550582266382598664955687344586491511900973749508776848302030533081984051469258212448913916122937861879137552618548455295110182707052916937163903460253831726115997553566775689455148086287101582862784170190333252713219256970686458182536892311258327029692173217363206735837850799004128914103336647833828133286301780775146875790447178649258834190557786407792339709550056027444672244494420318522759429359149787664747125252603400002902703694076917581115378330948256966503969881404698013423469955220991790975911485679611607370949136379547147243741682016350361677124839821564326099365344714854994582235071949155673947530744923312546051397524926305927505780395585573609254667129551349541773096752759490904075046930104481536167710832744649032416736304751991168816139708250120593156128299197830400189394067591942041993496028072447420008791447958582689224883133476863522586866558660636291294584518781003266945604175625570279513717628802608924226213259729903639005757977509479003258227128213559756002174355024346683646048232247856616525223945895748666904490801564647989458082154382055354776542994846993531571166557799923906532233848825706134377396389790572701745756838052593291292075484964655169506983595179629017247689605968467340050386139939059703439574659609456279404556594085571884012832795887253257616491070225363426264177459568501293682105077361315916531590641174597459682639692918905147758527219263981508958744571810303703368525046736550286239689752131798317308515976973395528618941868984980432167421957918799237915099662805584467997139582823701542628430366268234451782855942088937039070017031217315553226109861886682311334464733050281595796913771343634443861176827631183178732760800658523599838576470477225949578417422167480715793990068168147438093866565000389319573789515591216883591492590184838801346196710307770714059548185637365933864428942996392511056731843191751823137453183751469418676490494292486145389816932332961536031248747731327214827057743864300666101978977168830754556394568764531674254951816956145763018775595145787790468794341596406971640917344410582038416449948602029120362297660145669197604146085662263915206160777660833187774423289517832422741727377194355963487221807092099033618044300202874322578574698965539588708127854866432245698412478940887230973639177644653330988295052789568774647469548809539157950775353156273547342262794306350530845308723744634093748925770870073713734093653467331933012717376354261668175221818140783932405461785434685206525013624590926653183859881726052200192819113452669204363008613840960997075101599001443189319624179361680586602255373310951922638324106698657180736637621440562871450703847937964368298484755995048259725894245626655222029550764213930954562582852071477050666622478459312888499607361080315175205442761196516126105061887625279634033417036721262750987424842641493589728108111313169247593765626124660071217635949831843988525543765196666583377658319316015632249806703403755562239518997905672690953660703151509579064504217666304651234884273768125895371965834448641192024731074063940332952088040780940899236881809135381569789699630220022558721980826380129708881726839012110022188295689887764942321044204946925284791929069126512753361751787223741718589307915857923188707119323304235819357592127570006199443696429033122409005651730724502023014886820944842006978604200341994997592759144569908270536087202210593515790122501864144911719499330595804270200814198754938646176126303210777777436744483570900348751930780511752258303791391974051338963237607834681457274711501988472512086779293684586500685290840592851993014730390513859346973932478185132551018506437030035309236347404295548658256243375267762140825343344862990882439799280805510871898208893214999725586577095973946564633772338385691416411653408692064298168447749382589239639833269552736856986275975277491752926553446124919784725956491867837074635757651397017494169822826684614084686921574432523247427745818210051178640515325096308902372889846720414972391187443112207773633087537305385888348877263348000303292663435977510978315558083840279301952773252526247366542616287191192648755861693301453835078771333650101221039927329865116532398798382395748990973101040001573524159867378123854438373598709261136816911194440715536501418669065026887591006024415637837786613028839257232940637290155203805824054893702654058844235909971976798717979561723548911579805656950952944745197873371782205430214323139515880158164933812074089745878196289163402042891083579623727479370879864314357915303925157461458726820352790114543496310578252839607858976435705094622881400497444819689204805918739727328538228508997256517216020164836003344221063387203942901438125288329948302644182751316720245733390750044221081630285193210198070416381513512398968026434949764259369565991228319240032278031269929936252317562183574182605674618740057989984705317803446720860712018492598777020179923040363603167003772684317280896448409935553565658300505461084598974313889018144526545207619195089763047586849379602988599795085555571063755181404497286341180397898333287042633532268763335730286284375674744920221738921075875424357860073090473369499336869136357061816853942579070075177439871686095727794625536485589812204354113004532617000203927612323192890080103797669175134336407859389650963707130537618646858090825537963595355790725758171990685538129872542453204286652680956507776158939712467648275710313197703714494427373405119709255922369125187264246831718211095008157843333078467964410745921347191540252976831007176821005572764316257938993699171748837343198810750326401300067142527003096047149900915431229822722751803832831549154137037501275091872825972843434820010803607192091281437094909063562624905807208472753668315161372276763297202486255893955440466514195503227516497511870191190151511105769988534567760547611642980554491713791704699678712555037363828260450509957718983528047393040164327660749913139446066198242913603734515801535614346073925703175003468964869925175848292166084016775844566161733373900112351216659450505647535314543027185588351663257048208368667008136112342298552045755654637815358366136513855644292778761259824833783999062161267717929640163008040816890092059800453678179820152007017482612314333414330494558772435974602155545561002955087003506606986576194190279839518714165099291356148442628398722065450776095568507685740908172431190791086290714234293784075284567063123113679661071364429567011668250517318785274519272212556650914460023325168468237864291374159718373319164529512650317990316635556243196937340928079695808872344952560131157738654760008500677126880165662475099284619237008235017113317425056037853198019010654956617608113780651868753378348243086369674163031344258099508356820243232364689342865015172481988896294736404515690001460395352210932201609864014962466608358182451839758675469820732288850659278447326730993984264121132971821947412410418492508481248521089250399792743910882042842611589766277220927515699656066503929018268423436465701906043898420827834392320340354818094361823663160758235851472998760228963425357845646557173868406416112752531910507714310412803252659285142260218442487707455732279730170496429884895345158937445488799359814703915709633801716713675314172224947690788230109364430387589647539708330401525621687060898384722227942643749845719741156228926483098671365527907556235922637142497416863763551687836046829003149400199308023338954175095078781537760305741317815353314206320717207280716759155622307556736127868115395964153440824702868134641651073851353461068618608467987844953527557510347536574016283184605718665165578729607567500095941436510887928411401705711613329976682663685419230694034783832547129894397121379271070216185960312337039278222059815423032873027916346204782141258348808374978710566291947680029299443442684199470532381340313774672853824078422059029321876466655706173286250033260426670436282884081188777898638514282775620517711695253410923831444192756544783571230119456947971594922659895755255163767797281251409668819117504593720327241824492501847839212131582752889767534123388124999846499295967586295427934875498621480401811567319113782605627979705544552938236366541597583753186470170775281811419804523777847749822670809586793620061230645249417257047129257541402702053934828023404143535060970118148077558121567239091276590010421695305200141142764735944522866879756461691290278839954491097563857982228748909863978266146532556044847913975737105984119794874516607079397973311135745215496788726759791131695057645400286149896959542831595534410191965947227225487316897160508534468538111191950345481818654500727185593633943480865931148262501423820440834171081130087273141157793542643437198313571546649825578728103807434381615682207147222861503080809144627778688472087072234497828257220516247336167353512827541545533344283648940486495830087515772445587076929500313082772516816466321670024688540995528904004633642950218949460116418266740356860008988228003946208420630584382890085967575340195321986631632784183621388378353071225070557785129795055487065621003343560881629413744042666361954611221622604422452537661818620587489001921067195731532246591207418098229337070375249810915871006579431596305897962560938978008369272321907780596720065950744532027015827452536094330188839760232278675486459208264023988765913434135692762023948608689040333311641757669785087163926999761411640391026503541437640251912323131338278525504408431537885190706550682728048499129921139359560937836873463038813848930384159866575965603551162338329092452362524030784100503352092166420992129537942501017426966965210554047344449063150606428490572580339231708110360169039566506134939213304804840895829565468008106209586926839655282089500771403011352481710599143579276608621927603513070333435993278090151007530465724965641457517626925417294249083470291573761081351402603021611116741231072172414899214617331779662813553235769110111835079060773396898126733493771457431973281090977190359417894908612480706397703950791619287596750943756220646900352902758618578916486788380450552895636413458908149682636378087125711116976195122136590056317758873970804085050508732327052369566879902264013297307167175893285060354375698574677205631366380555802622448819357557727880781120623672635559051830509282670459843291194928909187667341908360111754091088171265502312591201158522823814737419726853907286494852701026361169949178215368764653992794647906495240639163509366018239521697175550926062753409843567979763572446690718785053536239507949294762280654204436928738956135843283460591274345303085053225413312076333685075646963337733728346778002003665783895765358638545090996162786319885566265475774073527922316932168257549475612394707727572780664425245503726544627853800402011682746043208248324753042105017061030131944116258372667961848640727037583866461739137993237881687363908668841955326860308969133516714044353461056702399036129989738179726771487563672787102343255459270282920428307625001274868942167708083880165112226843769557202342344232844242344776184236385087922596119796728910999421882360228715711955744999104202259183525900249996408610631492919481716577418942273515417810243324753145493120642305705978262071422843993294133707026872337400243921780835268477839057775833841560225603841454827549460697152015991525057181231641725457170574120825970990902045112199804556126993314676184535868800220377821753150628032016148748951083700657570264791704810406153159879780157150824659981073856708439492138393839676028769562709556003442140528580375968190651156496753487041439214746416746407037527859824491498069419701366000154489899494642129307385286235852322682651521868582647793757555305979650212611262001777284343901025454843113561487516025739185058111651509239502752253836906717273906339262338261545673869992295302758684872542701776659475101667963319584488070028441544654619487264535945029177799927352767441671434556526474255285429164430802301011293881290803110942990090883410332630140174980806734525247106898574363481757140434518832840513132732990076102000760606927657199652855235933539226845735501981546420312136305575537857552571650013768632902279395931908143721628579644513878668588373652622094306012858196786937285582264493968186870617779304506183257846822992160454600292258865713667291909067759317839174511875089268161519814640281727502035022175697574506302190814838458065455339678742321216421365859906793548262605726566359723709387171763165283834916044647349169519872724962325473863539447695504510427972354830637513762136997304898504175748760623740271399331805163657812668707853355350717797855280091381516362628552425624939095459949200108826379991050051249479344139745860047296013679376676202901657383099752979101114384060237703230384653811670413332656869417992827524586984269384828249164484942712923149473412654880952550064229057184950055153907735410952307273806539409498230151491325336034465687186384025482481587633609569616078076408723144799992748745546409367880161577024646696714834439959609467021646904569534321992521250319433473751788832440728496603161133171653091130231137900435250541425267947983055653435656252013078227941857280818855197837269767600742305369218559322214211942035937957311389072422604221595686800995925072711999869074304335137529712214866043559255351307654075099840182671410357145200289071041065540107460174796112404950191969181179243452555484427283595870815259640055718212464942396424976090880016342844401330541843869633936356961000005459403348750359190183909808238023490412341857447274577472053521435742212225685575042562757033690197562761865145411133122814401822702346430682069335023428538983961379635482881998203712060380585017066537717807075997807419242464002528416840173677900213824938714407776817166110996260998576781340173961965619681649155408758132666041411749827237660983182333056160096365291971757075884197021686918759768771304979520204765036466186265570910954594485799076575266788249600575096007809945144148391039766236213328878329364401026189612025154716260866710616801517088218289773687357617654144340050824833341853527271758186314656892684851856937496620384416120528382202727427879283167786264589893773879244860914065390077552037052097037341882812640832961731150412615661589605252579794757885249529639663297417443877209585126824297228643401108940611180944372952101578916445884956241641932557917662228991800318666771217579857010103924322599700722757640855681548439712767351060063366722531673901696791737212784319642193370299093479454807428476099211063843859969773925824224610649591120915195261706044198017918627171240639968924693626358608305860009624607895409022780473120787592463535912201532162311857924126224146866956029176160321872299001590776907634543102544678006779891770090112132118827427504147720855094537059753129835095496758471519350485706299262943665766988737176421886802034847645269817281986917576896614417201168377349742632834779342207443765912369109149379065186727711583488652434061989991944275723800430719646000393853261695042158656424906765031176988580913859287387574934906944595044650969197427802861695293105330589051530260501440445500773626942054687651911143096033769467398586154259814928876290172847126327806707794255749571751135165695106288478685891150700287987904225864808052428733508773893539630929204904325085712005999102339464243611198020541256825539443504819676597518766622520073702651128275178123834391740448123646976890160044035729648272821925516970257265440971805330119420325016630338988948141224013138360165977419820389223130578269032139089552271101812254816957584105377744909169961168385500568495478450751768803078655343096231928966587946049842448174013447192451913491966081460475762623158034378100119767742661416941532824978638713145848285487160300654532530341337893044645792569016605162424347528761545389961795379400457714488036605676315704780832799344362897259675321018543338497014788554757450303707837532458869191948747632351504041515415068619778087326312386007240421326751617236622166766355023428858048874807983228599627604758250830097179487656384150322173510467750540669573753569467491225753826860982124174739598823553357802561905367971764671325879516170903677473232453940069022297877129675810616184421625119915764300955104944833203000894942057941087295715704260434824483466733161100064667821403052415869759167957643481611802452550719059902286662925866367088730213659375554409334393300783107851161256209553874933525907387725364180425736534634340040754727429946781439849462421482522663721059791686150585768333598509761329139784016930293949693928836925035955262280653387902676227915772041261939063684370628474783783414125821766113879993975675034372633022368565052079797920218602455747500844743063446743326018434180507486060234578739778628160163401195909732392246588076671340733761713334877287260789147276104245536430442115126593194868839043964898133860403836623755435545399835226424841832512405482669718198276101506741380184082221792598697514351916032190035045300142215294304206634666089329612486798668821017895723025889648046337407916811780297556916201240262344048705700507060445981757907351989315913710759924258955662701878584862739927408311666875810023774343554458921938877353259353900953230310731974383117540878887063685858257369661483333617703968133932729190417833501912248099499511182589566895487861401153052980374749318697660354357127050983193525624059201106326637330344897010951515441314473672279352088041039695820944238046761679538232720259725911400638193141063816008099724696799014600865439559469128861648851456219261493508289964264317373607330040894096560693385139466259443884578650448426152521053235120410176844180461041772566026748551240954179982805908047980438073041077371508252421567770150801795403498771075466786323618835422213489731821744357022985413943911327305215278704464909131323509484518364438317814126166073800084354731815021195453939095012095350239877891894543183356931285529097193255906464110216224340212432971909301897797077933464237038065278193224408674783755991837319778647975975740270852552421687330108504849762803899441674366288006948592755249605995965846818069103137957846079543580419233258927725476453147339896592904100470453663095605536470591794758597694700400575535892331058769430958347418514314781763468026575313652054057778674235321969652609443737941916492828540701068944378354847353107011521894517035417529292280167223163538588476226195353206149660543995633186054919480708677808095595053445717179983747955253383621410634684292432271186120506192339682964662300863348191791815704189353664952373731125689395143664672666252479127394176099245227718728148555683132745869869415467522596854503683923187793932136480863328484615543698272793130869529510895562393956252309697844854736411384269866280295612597093842072710665940244759707929220761916844568189590092747196899811675240770423138451739891181234983133832904650714753227072988398024491034898189949465154548778295508350139160559303314558376794794993742658454003131000413688513794456660885562965296783898816931267591228825184656440700301934086959278077928420194811412243161867614238093198028887924235258092522376663336910341428675894308967683341479346214073934516220454735797544963226044484718145431790716207170657435348544745504899625026786874838483936367956379816953631294085098722024008973459281009025830784433325003884514253665005729352163347152859486545668944675768666046529078713078824536589094766068191239220871647379602664149374277981936293867287868610785262055844853259386480409246455694923010987697144647075436064250135663225426994971082994279108228986473261543114929044360253051768757823561167923204239384617335910720945498092144297047179916131171701725867743879824052540937057493366948396892677122627421780498373236018584727905988215415851366495379669182644688947238585622246047521282142869771737134277239917411132822535812050809917620896818202104179397173232424437657986390136850432036307577929446994842615903643152911484105780695352095327632793925472583420877979499649221512256397614273587335006460937456209273028639003600780670706639100100283395715133904500445235909701653081906315119493796880879919222226757569356642385804016782392462879643886085821616984947040949413502818930821457690401151924644745363901687524276278831581222588956537239928157547567200457754686098152185116265544206120283677120167004505964085422464887510314114773243130988824088808398163597559396520251124281617862085610534131283633523734212545587518089064969343939645342520260579688854862791487348015572845790849059273342740409390566231134593274198668370944416504003794850618951151543544265565608758549097446649694681287001632536044101241437605180347803522523120388461561670892732298159822960355262846940981558997780318499914478378722121671088837470919883327440013001169120990202943458133682300704377673571637785267407413010156544228505579296410945837564771463443785729939335050444497968949511420478126972022015587605084190214883242939935346316107247928671115890343534867927318716615478781813278077189673718163143165113980598124618470417361968631516914151722387961850655423415931452278464385716738482318423675477388582185840854478941513500189866644865900498140451638059605622914106366913949956087077786306369232360883002023169934821927963425294184018069120816205961946950961559915966215552970252531005367850781438565900848929497949592726096193396359172593826748621218624465821961894326649742254354037735087024395027748540176825186149814169518153976759565016724847886218267583639548418621299403601090858575649625294603419065435212962744854639078631271979021475590142668165810697955350848610366366647909633683569896379847804914495660336693470902655474446483323749448826044168123096394988419321139008784279014938656628123447669762014588095748848959353519908426434007655900526013306950969068643307779631924672036361055976392107138085200757934802219201539590367760742348570109297352920700641126863181923512407853537771078465534144401565308774751415973144442565679729932124532703329495560164976153905914969499634707127601057362825981273191623499833085336081686969310326356640199706518849011675193523998299252890859531333859110947416547040332368838609603429749635225260916650138728545627104651768815194281601667367919259392701528548953335181902721707695312692356079030752912487908793775223691659794692498202699934772134877514396699103395588481872355384484043423955637630521999609741559657315800069329932711216444598548071768006971720340365229754359398303740417539018307717165394681674503754939039433376466959355072762673656597786418619952111025220626932588601401090287288460912250221105211423990368997197138816864089677772768372054867169045330149479403363532570023453262568633914246564005524537613395712201128527987690009035878744379008414108005500333222487096276192415303029999683483876674880034725515296041752124787173402814120653776326988994125309523427645215077305422970240165416182773193743989334505235947651906721893161680443219066685501184808599601969535406880791452373446500116165495594013342484562461868539216548067342067976428443496104233401234687257825305677107111305351126641453194253922855246057275620115379923647274995711597433113795201082904483402135709531555913114082565572228286921273685023088065450330403314210474155042371201685412971959435371258947075332323681630893441078007897046235189639147770114889824258936252096440103192737291387129754255209679645557129961301297734912058329341895930740908501574603676042463172064479016866744284637929004480289012250698877707479858428297250224377763075746174090968543697624165127573616379538316952181237288936820719355920240881327586689954069780655114711747399601993463611434852486786499815660828085073150422200582294014966986935947979043605806727616065131471502295380559000001792353677362722847809687313817770471185905956758049260351128128456203749394103561624581812476638903100632510362841321246692327353688449052750200486883127500153639458444706072996480608134345158795355035067521686092905478672542816595759521624379085146905204605420121630673921652702068729354967714067454099251251869189371938057247584217993174772600901484237957123336876774451111649679280693841135757280638067716044061355556564891237282203847899928309680541575743168797131127888787966945617546366540162879077118785087889378630030157738372711437514505334814630662407032942555490504277509303007600049080302296177664684701449282000939122264830473475217153300731544487082350618506064515134730513699284198380856460079441988330382958579971062110439710961654267622077154160319393232067713701012563681925535245961855034830138022093206281455621148127551637085106256229376310503228576430856124940792967089423704856909028323836525448404245839226356739009407252442469409161483837422116381441573290406421148529455762638807217803688317414511612737574025093783903706848725203038491061241924760075352927106482115378614687649755582381203740302413460603614372332464626328278758272638069330665682810844186977316231392429795320341839994112426030781707313973636206838031268257407076683390032588160177178767779924394394496700014929421164285482542088441359185579085899986396625561490437109772689085779024319327303314381646599369127798215094178628276781204759797179925031051264250099217124180571200513554366607091886790729369240469531805894553707391649555685460137357967461421273016952747021860101981112115424761711011795474098796266794604413012172677061052309697114924297190510620615747627558128948454139522839382173963359800910937846850403949199704451193050919027498333138836065685514681374676708217700371679082319959256526199728503986354555847343525326640916995287543277540928475454849452525010500746292292629501425246190655218470233948274650770867036057794090500280826754603954750029953879307088693294954949041763558890440505010174448255695998046229267609860981597604491260410280829407111038819975509849690204881278860520657568413498103970789998900573641587301393436613573320322972341435780303999162857556769775096850262066960080544979366493643758372525497806406240424652886746608879152750763697717875897646711964192771085781254981252532223201397366519451609083460459582243821750900411951235560693752288515980416348927221702722998146897679227149505311851857024044581114084334534381214309720738696901985734933375003241673042010325290763730353506705127531926076933953351080567949811186243676128931859722270782838653679342818718617773039335938529880126938370020362134720809372307227388905347746025926169607358648068634230260959517981199229120383359685608305178199679351061206967287313988371138885061135730378932377064008394759445729133035677441122892980500972300297548484427442007648437055684313132379549043935288277603128437875776065850471353537920268275871186122707449364183622347012713744641698916789072767658989373057090458687220059643613285382018118459104753354493963888616067801310501974038946952367291836221573978242482062725833668586935037532716425053538383846055239469302894454116020982574549082799234432412086736925384942169778991287349969247957901144656137883895915562907906204387608833111857505932200492067198491145154063166817422496085873815327610122772045881330912433794615626779155570794059693823242463337438021551495846268011897535150488167138139035941562546479127729583962674835894260986758242586058087285811780887973008080585173863330538020412700457755612515112213745119325536147706873679632004821562639706034744497312880930083772089743192553020782326918327369483173007326877995111217271344488301948321528122168164307874527891288323432096237735291137546489817069659830843576094310091105319833971423532815534894364718283105109011874808203822570694280919008876213818200391313135592449210908313503863868384038519509312467573265355757786964194503590945596620001626357246206751613932380320996276256453979422269153074765390840778499066836772675723341265420076947848071816415064750943843752235093209996509025197302980553376859220619863931354571929098640703898968240858783564220338840652263212555911369336047651309813327738552465513564516282167341065252038477360948895080204775659610116256698202313301138726427670457734155509171144460871032930617546430703519469760365987424082472068379867713985556192979202337727549782444867827712651728355372192423321388534813156722151572304118534627741906360029207650790690663243110517833829461060767346592258975233481050700317512064104447932160086518047121759523315968570044415972971299844756718764332697267734374211760992397847657588809276783111248170993649756652844839807729212226534450684263262029667510708144131640737364962172132212728929661334427147037967657182765332226569838231677319828434417394750538343940401436063940189821049347835649081196424925090996258078766911310423566875188942429774118866791883461421465619611815681968678817205645853702929214284945729795617478855188947528587117706303796626542292355419283170320605315440494547537206100722092634630245750844779741019441947956929936245916475191027394583656261542310253270052293177764736906991021165655766555831724723811914991045345893643756579120923440910209752647719240564076844775246819418351123756860300448270812856379249328923373048558309902004526042255267512571665441310904811172019299152395396585492855094872316153871554968511253556733372431917379553170896376617433630253671926409861327993543621789513073326260696723348601394429674145643830489292338786519579269941138474708774992235699421761019842094259728131163223753087593154795968938718058463674888765525184956904621076664655950091757887593049373334017659365563003585796153177672823888967991701352400037465386102632362966596532443242133146177116517091814756019710311865941356252113522968774288362148104503854318648154491337948829665556500770354805764294639716943418351097377633005481912344356490942482178019231643385530538386732887383681170900340960059240918930497602771912320638775149309346222537512600338947605144182071665020169898791141736094113882082191257020972984569253613135084663890772053013006698971319226672868994587458569660617867740944397148986028536985460920677701127417280846768297658345583535761040058101718834168481831216546511399424199463744820452559141611337541632799847455594745722715091477621338384676197292410045410777584497276416694642282153155646101923161583748968080114027683552345219020179894373850920265692987940913247403552755510107712629551813406177454231084297211392815715304686575989056440654851880380334747267199887324897117226239591739660086655039360812863516547060245424215811690464338369740609831491783926690151996565523462886862607344098393209207842258892898587023160788825203725482671713881959375383840678296319351381974583307277724184637496956979585728554776358275260283206461979043168110629489004569874453207320345286970245095221060291541507818442431719133956175110905282261283031537628698667048264423242198454834737364961664261728050524278166753123772044497076302413849016890729768394018332516550093626521247236406548367233997283624041072527348148765794679475938565637169333384116925925149207275365826307357999988348192230261768180914304010793908781890740599667574538272733947892822834581688767791724967776660563480734986759876474547263125411939914643965862072185186461112922422741158197678033384407837539843004403342348581025679504783724013856636333035224422194536576762434579973026384812429888009019449491026601803463382128499973211968225767033902554507708858493727796471194422050598884931767330240942510734563507740187665096545862613985505875504660613404729010470632214276374814607429775734320323267871616322909527856400933714438789442076264996593901119424329880755008124273476867791604127638102826442669282807091201487503501403872598998706744512026250832055265026052126428953397127732866986294861805000995141673301125649940734013715774058095667847858309755224963393943552281744913576202312292697494651914623575454717260032856748381797197281417748052951019290970493190436330914772632796159724079264586412539298648073839058084417472968276152869390394256189375612387232855524677274520984586592030706593735603665693650223061760311060314828454021663362770203291677044878635536404480052919071903828828289571261564634533779841317123731243063327244516073413294345169839352807461312332856825475740498803734822508173957931299724273469242443479041660724628166569109509760790797915370098860849099958456453798719976770239074959762106154894924396312210652558964622105878535109438145785283753418906258284916821196027154191333565870534312004490344847663483142464946001048767171539932356598152451475010423171858970490593986483986951515010678694564670369512967081698554140602998318980584535980327701353135954451570405529983889229934660694821106741469019386011096907238137645406904440256635696937977359512268353527394413318055094132294341530889536135777044245946152428714454448221359110503152756507959868433808560091324265451783622035279396773033689414603517945361046374947541774510090540800392586430223905763298643319366433713358415036856412366788719036832927605047175196576643546757624585426653210439296385956190500280821896395843514612666537975770566125914022930633040219370008481549283734762566700001476903692071131749232523661344030407741521030445242786553431910945783241488628301362335176972377329340433555621938242498138761088324136016486393917186907332256060326708763568695256032400718019413146471147740200207301029633594420738346934470517651137470913492197005534283008314666273877253000466173076492996763948763476863828084161704276970171519214766960279903444711798767541837310769481689913455903265921758107838769234235386978411954939998447408975781319749332700219325822628336219373355775478532579165389830254460194494621599067178678891434292163472844346361287095420590663296253451530683156666296720400479854636211737849358235933026709449837117872024624371882571082578611021964434036424865470124116633018736467490407875545548062217734451838089589500487789805433399873003988190357071640564409444599942928809235107554463736999352755603306399515617661334049069110175552294356725865786228002590984588725840970818965211428181355606512384989324919633575403357388694228600240155232631587399631479930292298278658737707439910334396846224944708260888409389467621585280814358241895020594104611013493914693804603897280370203172031283518552004380232045444620993662263182462086325532609479704087637544828590571952940819797801909128556721213077948811280547891747547930316337326078257152891191503094581140736179580415165886347012877367744360108426534294314053373287553662922022112928845674652212528820263845643705779656318028449608254567417812577224392761068748275412328875281018147407073818865283625164246875578765166369757665906030632628256659211353975691976132567264428885425337802763735844427615999635376970377077596863592478158779309299951352851470419362412802780402249750445301518479413997650581266502758027938636421264844538862937855613622497629894925791761198915334191076608364806144773784559933797445677256942422110656052185328508249764944826288782162833150851347824115713080358508820038622356598995901251290414289467571312537709414444226507357296358615792682854421730326789098258137874969239536640078819477006390674318476021476614959251747385220376353206738552358587115450643014204634354922367001049744968429361122560229265784560841024993374130707140822812530659390446729515477744080005597754251041688874843523131209072377844528284739305476712334080531599073011727375251174790653655104332144794483159245632444750977466911472198112946635696704745570935943621890870363384449931948862581750262704245835164395359217816430126932806963566412647487392465350086105263905553452416087167032412325551496775811007231561773779105751833349198524409351013615883457842737936879409198789002384614044853796291150572279621506054344446253144412506494260624224098260997843482666666649057564487683100685994742285678081489536829202078604260185908355711153152011607093719504185212573502430746707649406192132762697443701750521618733990921714691005816868523966751399116190416497833561355452954497765283047913786700989818513473547115160637968706785023241043494721775065076312004386084306342672341519547610931025832135246865538048620160369465752892857807818694096231324374411386446787608108864113916803498049879653137404039543219483020927382899979301347995550140600502470844632226162270964940480328243610053588623226892357493811259495403132685576250659948165929784009846777080340779657502254386630017045011305533682749511887234198410295065223611112738372929754648476182424436000587901991972297098735751166614347420603630590113601700228585031245009394290744855435150252937466419645267458869307614628957157666579057487328451502085049971665354186769507520546575413991938556994723783771515658030385761226817121323321662852947427327617623818871155292523373810978087109272889182759102463627729302099717524617971991222207477215058720690718358622314181999688885673743038362515755882459449885054091126318691047217556649641257376155800798125469684531268904797013391881699626319571570574397818903672531599902373466211318152442209197631145557970110118494433614107372064634485489806761045622305268033424409143605859283061057437335158540817956736311970523783474934273047432783922511267579582099715191094792845749263637341430878058581091727827716271762331668884183330106368464391836437784353695414396367061807562145057086865048303420145441968096687124916597289754433748596546989265706932242171721940437679001271030922951819491672870403723382362307239776594712199565808207894660207644058968921850046045648192055542182457326538300662423476472580881824203046646164058967329312761411705132644918600058506067314709141680112526451394881060870381250595419938675459710693764307178158147867429182803355840254589240258928909197570210603284489110131619667699489015910251517195730387484678560665276693922878468845507566033027323954018550847992477039831106948791998308714034912788930765130390052126129897106514721229610378247687279027332203246277496452132655569164074562013638036539670224158885082303141537388841166048169155807268470584467267116637529817973598774778642241291258212109164179653168438480951109960294342698827489008552453241980953582107304531111975391794202137618048992580218021702465293635034852809335701146652691084674796658634643412720468473148139712129721329143417660539481358477509315109879559601439813372512956033287328007283436560695749612659052405117325471213707097496658534460324713057818191671539576202801620038782521262772491927507295025120238658622219624897645481352660695638880747127557164699857080309847031671800009951024911462486780066501259689372166543158753103110429884921895213383715413157053843020072419847991293381831942445300180305223571543175089575624326213284948424193527984390866409502509386223887615509801622810621722139404045489346394852456545625149032387887024679762511671414795475892968318183041712981615073347784464329028908837503601213677226660449522954260684939258863568873860676897250363174597268992539392878822592461592192250721657589767069227503855810150628831895153071277698773250442970260386831055278755241323381464518294077206789502814991014019960706341571229338844557446664925218520129839549087214702081508685401544429497727801808292110510234679077411064584392776106913362301999991870568240275778550171410521166650752797895528022422185705683803993899030645341289108021698198807594899829264388537066887762432815459005648677681689069457098670048558250923969820874670951196784360522613072835983278138927590728367958351428608318677091129117821186703407940996003476743239698240162501442264032610150156442812397425771382083085482723418321406637770317275542193116047834674260682938390329013269115490158090832644748783548065419784660913962282427958131319588957610400441026026283648918493693724481149135026652330942780120023223837751697611976493155608299039820360621726616233239987660400440421609914338132450061273107347680815019138776903029750706498682022338004895704561968453464316382635957349390292605692412513341941884093199978661378819491812183111263143673142289476926403971319366509786075304844005928125340270735208650426587720327907374524383758846128701898287790709416811764221585458743541872359449050966565834275934525598807665375372713633338427181467014964414426625606899152011777373831371478034025560866725424056397460865025412735066379073021745351051116578282290859536202575271122161187195111875220007217795806266084203778152650782340294665387072339923388407055047500116767542450014499908237024608600388850751071083869399952273820087446507081515862623813609022277221644082027164920458184648961861646577080889547400666577807598446577440541537421560919725518952286872729405107996927294901688075254455768960983937644625185785297650195295686935352221972504969392796646947971527946023391181076874458879538733213035336033526696535814579524740854977371585112848269098156588801448289978403891590628119369219856609881218101903890725715158068661854316234160877408728115888168579226029215957135263511600389094365629205679676701725370342550166494689494190561651832520060984178357529496064099028504168444434993012410298395383789691029484830409532053397218539728633638305138045030813800324300283966499815234524512057961326052132609060646527374217875912246629158091222227771327182816091478250333135625947241867363315817991469025968917337730020048476833950474641352269173073373631384314750909666163663787650006882475851649381636834794071092732545880796086242445039868861578541967535077043394706219050028560251091315346980636174256028027292663846526113359733796001056692757766155405604349205405789825549675604026002076608436116729607383644850354196214431827604569971899793415418523408163054033044281623865922811706215108954653761243408756833457109936826598024157137879592567825558179926225014287003692320679234481842367315432606813161885000102411871362910294436104479698826166295798744421274662098768438952677353621178600138566126871942292714065596648364747815646859389650994441398806917546303328006124017016263652662421469215620172774277384287092749765932773559619247296548655027024760256090311717326239599452453825378770268921153404754779303924181975916414788675448025517358815116157321359956432446485564074130594336366360789755991716751649431502186957249279051067787166912337445093401137266692879871793959991100356408234662392441871450592416053730264978767933678564425727283015101125779408496726139455885707230779834178102651021844304866254689596185386273504672625966762474007806714604510956248432704152495111191581905937987265751224192101593477721657269278590001524973159747899123824699721967401434797226690563033464694940098362049411715002895909908578019179479342608809863328905344385330879921049429520848599764688968628386893258825207249077000541750124189008888515865541733881702070578667370609538041658605833978724940440225494685541091233832347492442199579253441963043572053626866824164628634905544209961510794076929715796377913708099492449261594802605353516625770928157851355447076682413751111754077070574188545658929549682002078957630606871358823451184501937310788603131565632311902480106076339600066673419025532945066696796000504423996290745922097133891907081460092635790631118029932700429801370405726719549884380009415326041636824789686932107882470715654440275715724905309789287301451223630424571874059917179220683408272296618588373780451261873137048957850136751266629400271444968662982702748191594944628193493185979347657059195898046204942703090004546092848440164423842271211833972623570224663715079243643474576565748486455850966879167824697597578458512656723721683604847933220613268329937301954227992354952023176789682369875082793176924449012674179864305481056042331122590962675841760078464594180386720390337889859251310129942003509934073473750807505251377868237739086315838270591924892225449266883270474260355006430067866421724832960047229859774919044544196687478841876405042859230925430432286072788530512892552551101227779462005928316644099293560102731640704977875884384294584602428988267095669402985732263904538953889654536483805704381654200972432074233729661748815217266416608778340822506683672164447156986740060997679358155987118638944465663376178106963179280714096728117905455873046728275949991687135135613345557412653917449124603979687745377446130414822994031805689093360638561695675437015217931809642048338351212714918430966796885822755032392234146380169061019920739436588856822749841369532429977257566155208099879168428104618772300122248569670439177448029158719077578028257082223227625307917071535404248461248399057498094333135169281836906470606600917931911413072378265941523863804161800088853513844934643096386241933375945777080956341275921808076982745768629391640057544290767624371139502028298649524360089612906962600700029127548457496016171180742165522795299442634632244045815545269475232179722399125048056385718281216002450790790936335711677538860856585739075836524849092262720018098415592783488880203739716523746459509467200162368830205232663992980981707748392840344702457499577423692612814615552332088261994678573533802122327837495617027274918402404010670638281865818425565863429045867373516274860029911454341582595900099087809845075521016779339670331149959194319045620947716287523329130678141626126638157093158044379387805837258368257033682323268792170786378028349446663513908299876253897446328541825357745706655763199693263392250045349228046581570438838817301869236863549796921729994343696307160726836429707936517143588502758397366229895735712190235834153276688907112729774031550267178976191872676889947417859884185848405958489162936305316525110996717587885936017462226855632393843629453846135454495690281243980805726988197402551784958603914669778286517830261559525390770752967593442665098185867230770526208512605878380168164710730099122231492957117251647152360995809981346924336571465296128854611061167081757118509419000451128789645033724447214214908743697088311572689910324075297168395277066447618261263325210829423315064992079077807074371217834546163126876322758813628001108148264761072673618457763700175448450156112085779511286971114050272834287469144858812417068221084548857280964422646766874206325597986830039553920625515767559002118523914585829622520986480157134780641620601129522268318535628544453839177961126546316179310824305779112641691821945808732503752696666259977018860689638774489363752487947726965872897590601898031180326744030810442064715920919810344286814615940205627561315105833361756591688017321196470031423269674724607542948403163334735562395038617701112767812819767931413360767600597915631122373404706800538025883297164040362247568932882862205848415086781856738789351935394002867707978871849188251655582476554707046243199506795530261530660296990683325815083760175649824018340056010102981587924421807865722115628200730397157114249561551034420307599354325224506727785494175736470266559201571490919750028386884004717090623027031100601337694981218385883019214575082575190866522187856981608045994316937140755377856415855616803504671113742410956637578036270015271748190860378028689145983411585512046862039946456475501277423831643403599095480818488584511512531217489253629281601428467965527541087300330994795182029418106145683234064005360704087828180035920657654011261597408307732710616065201494444837719009937727436527081194723030550293587030845355715351046658426713601260251825181998242076854812120109387639643588525947873139535237487951356872132392330303112925230057568615193482924707670410469318448356858851878215090494391188071888354350298125611070449686576305158099981334602561149814593195124528565489303457148595267432250196741732439287787258984298482665016247858508166196178895962375130856742133923525365059346984460922202130619904460390415859298100598303696506253490006585031315595479438434916363500906706946506484973069993308814013950390266027890734982442004425146375930425489987562345941483149111289926287163867653797017585014448454499847576304655098387073336730994652308876215708803224609431539520139924462742357635621597277574823908224367476361198929591422087568744910717363831720566281262964583435347862408574918958259849769669040380868577047070772163013486984091602490378736650230975634885651248585285441870492800666409329920685700745027226289043166317199210153517159143068552281293597744235739921459258194590539569141582758215818336105674601477088655029560670911630284878968813507411430787603483689736280634474873446220621311456736847654871450623996535587705895354975548467741669780458460178548044324702639702006201737258653493961518991229707480182892356671794877822126029779971495569327979801043511676278522334513818642220800663637095498601560262343427648254585601582148076530839177588786485779014704648119527364653527224721030867398772881307281596120494033761722039280006253207162991425859160636230874466468563182258290841313344279221013569734586859266272004052129747383723926439098455397655413135513046123558060785468887488169788117979147831254197230005590833322119342367578869503139375296068602291314696534364952282420682193343928118570578823290734255637415620365097828160327540219836839407497259083576241062596317646204526129138666101021050465239097418021740265502886504940017756337246958056675107487276444739129182027142459393863031891754885851409611032884062676174531194659649671736954683780997130461522321724173950853167559133900277931392494731083390360062186762969407924579521157917440263383296282905984592811906746240921461159771307847439292359937073943750011850264222862960605127453212124407198833143828085834216462908700514402528582422518815453317069653260633246417029749557060473085816106770260447386594524834551479101085694485887474373003270031187104985062059959764131438273892358288952703454342135671040957939911641343339902819408085760266968512311373568833242468482262389931137528538520108434190340908351624499456350538634550404453741811895483092844283027988741446320718866973308268250320467350747750355193621641803978952653855671748375225116535865897786004148096101996482744067163946262995228367444060176707368475995102489389173838485393422470864286388864436251116797327719486899653623018351194326870578076432430293297977028269128037326969080382792412060895838748241345591570168163070333833751141924788560930786747645896790533513048228236496637758044379033263443185595885711800570338149953092927800843044253884955069108255297372065379144542463546563070503853800070583149374673603504366610401832228722553525671416354074166059520006877134976273528861621618391744822834588099444069356678995363866611470204270798273603314670493359036145511490153873565987921034803169822892202357091564692459871216972297427825316632637158960756031314101226231222399623208320419811906691374849605713263844116370263996727615527290268311617393934125741768191566937691762294057706455684208633489283487918418628035657398696433712489494588482773315392451659797530286931410260835926401167543605913550540893768239152153193074471490774953694433871234093855475087711392718377296935759233948928595685658905662777063713978534624002785029979356584848801767640304780990679976560647127868482841726766769421887827885504742379444046730106961715355078262817111061778048886926574850988747233399505327689712454097533699750557116651017198024675547700036777575169218325788279619472251325863775846307091601300289158985782205116216015698332848247106387375600073228228177074395061681637492365386014000116235342144190649649553752932655748412989317589981535813582356044501123695218210266872597676107300090407836986636180045620710994092068394152968386218992666047941917149483236754060642383356799738582879205588515842331667716346988955805424888156621973037013281000850427312755105341957068893758624263167760398609034347629130373504963837576764637468894555190017788643449765739087676282997349774990034389027963423711549446690328950427810913932878360628428388489467390611437012621913212896146141619628932176880513105881358050770188384169512148619018011274477054642299505322116981542000584335472393409961281929083905743869021955662380853580524925363938330200101596248716358220480227571929838811834832184959560401981107415199210714065349555363357561866181767729343661198924217849288340283861192013599340721341360045023259815124613113801877812342035281141371454192487084013643222356797449858640898706548897008590737915865405648960738800425222652222288228946108838503487227762636323100934746806453170611840865580222644248871235053834816686176938219563556783750738121282885937541038386365189849129649008126440709872049746195020819746423662923949943939562726999543116624333091462958645650969763479739581378568093939057698986179719382404137875176857568915865851010103208366596505106250455299001450453060781886398942359051829324343106613855576509380351557760172854434428914838383758996032048887183685131637498913173855040040564466590639664213036794761032411431647350271474224285462816275577470682663172325324705907742290237805731261617703406359677610465957949225999249953774568944333824430374433852764692646330861655399358674144838633638913917373384291239260984544179491108165389102562685030087936957452455660935986395335871667892010211389503949715405179628377760880429119892529877245038119435468478296284952838335237323334893469317348836963544375109201439765568180415067323364009358865217171622469902675956020232563127804742194296816201911841570491850274495328548861990428483112249564979102122817445095401895442015519743764364271872493838462062191336395588583636119367977563431963180844836654233667255409524268662360217050747017244495760760961708057085681965122281235993635178509240947387139919114354987630081663594118257854734650866278822533470386931627680100286024893349029512205657953258816603999272153210725620170709031047112548343739385048536842805348134630514659418258633553079663261184381267450065130236896197808183764427779463967415609639273258776246023713704760745567886174750866620167077700258619046825366811430150744772789083909442389066112397830491687515559269933760603076619272886893041835581976107737598985899494862403060828075673765916278782037602425757885935311726360640052884786294867362258626161268216011594620930441478376030413608896441162966515465446171529716752275536196773810842024477717153112733101342249709771653404414881346523750195173471866733351840574377060908457266910505057813836055249896014989492425361430779777051162769864472907241994807096022897391669196863089225609620591901115936045557814038659145306442248018148149989728668360720852980038032216694520701716546687659457235104075358632147122334423278777163595545286733991704333180907074299161995094719090479200177160916836263694709550757243587819252477487705579381990367536966401464032058410691433936405725058039038489886033624382440295390467079688381730538284591933325083653227159104898941675541171252451558459156859586985547039780658638763766005082947419173062172556012084392114343737088027404426300209738679402835970331195273171927454025695826520345914238540539034747030235954498715694246577395874138248137687863839293391738965148572870289889975978416867049515064742447709734125397290812042717563611424349644153268241150595933851006249453969602003071046454660857942673081160611618041490055134535504479862816731544513518876635383043916423919316047494889623943740715842904177560590085155820076168028611346412801094997470248678501451208262130971547520514778460925008345643710479316082502603627134411632969188975098960125640643773963581412223618089120118072457738308195604878804389552077153206133495494103668918609251549392753422694544801569414436222337129108536804257097647719250092057805973478378202791981789312063969785184717213186092352899516456158483759519909524509542384390154597176059742289485139429903084493220309657393690031107251992592070461821108653701788304911633418080248031169813163599436255821943396070371797414436040714939976635829313407161005691634153845986030854279163748033619683860859944882632290889139650468106152749010080513549081970804925899874906082946931650041112098504918623599667361473390077406549878046936417799060422818511061673157934796529710060030849588442199188533982223690621297094122875673241821507269601936222497212750389317313869468664000797854017062139949405345737466938008005778108065664018310616857419193510516732130532202838450620199028202837549746799893655325832050378775435688206484971484227480788148182894966834243269175034969419162041252118478891765774095421938284710161336513442217470332766101909469906103750505768758830793664682403200569291147343098691935628988793612121400659450639976907655702002755573283269086366002772714098881740630634843539892966317022384728521950639024279833745328570273494700242835981534354575132193187345782950864862776023117793561009532089469990783175851464932195889130381201025244941307135966513684179411357751404170911713335650966733441234186252184621116878785576392933244748430562983518965311774735127120498158311662485330889167961241255722226609244919891976783208912104763152133071620362619369898798898737258159420660595868352400038496564012438931376381700233632367484829551803961410358740985003235849386242177102625631342252903163388372327281283671353134960330890460451064504297836278591330511742263956374350945163552337448534538300968472823736785930061150615700907083023005494987163218938894844003462155375181127055751374491834155255795505514803914823612633383120491237450017418422392509852675372014470937600690420720657549903341116720765957394913710209560917832620557898504223416406763048530951452509296289398543779134141336769380811599690361832359240573584087768883312959050940192413049911605233858785460468597530185866784930134056876414079640350065074428721364094786509601964660639976064331101632120480111907581421245827869551309385627770360316829939786469822014708310452351959040848099322516727050326116621386579297385277358186925109693814231037074118094437895892748476766044965687821316136642200880477496664245135361975575980407813717376774893815154205498556675156249637679912490299896229125096803738064262277778226567749504744839578424939052932083005894635501319314553927107683133475044141424312572849587801877325647502575206283496427872347550185901275452202044807202567762144126400114414272080508800833750145405158451798377012174114587293818721191056874672661677328150271645997204163805895569401372130616994801490148436469174827368765045321437104578019039883130568078422996726851583674380474657938382092911437815397147235845497554936815483511849539835017224065695998474003733697245435298577811485698232546167215313143378365781859723837681499678684161393241915060116573544509178704758567299561326596607870765682723227990635530014674080398289199438164137435854534865798538722905622592059097955832806206123561810688760645964918238343071083834028170570751127980295477444196444079872754089333229023883822867506991278824440629515227358078484433192109274314385485558297518758139895672158951820833675674329354379181427210568487160070073174090369866364438815878049956580991611772429346656833811345750187102446794811539445142306099358424270236147172289376072355359526009537359104284616008577075700867769739012561076300791568663834212023611763484348170806207864427221571275157677267506842473157426196252917464001957214774574381333257594972757185363431528129383574782263731066376134088798991468277356741318516554010548081769685750499635457835101068935020267198207938317226550366782202679303535872006478572393928911234488636536821135848064800747675912425120974614966973624135413384384862070690804532530574636540234486523257703932573307294086197164365749316008185479770644796535158637646338412694793709512907019446009573996664017968890857614692921349179346209510248060836125646120970224826005234954606033744375911480666220406137898419680259691169014748209224089095469530452836328620892444213429398880839980463119830537399134659228658103955589430287652069380406551610475889025209601415694833193482707067754016398971105721691790494530105208963381406021113912106358550956318809134583266520277692708251819123334624869745703091419740439825845386605688893600049680805161116913644005395323569725085037942351828318244321502460650648503689344623816886192396016661114231987089583017701463401247907711020521163379277085330041429891338831714776008632538567815969720039114180481997484720943210047444784198630344755062537894429706446192051911369493600557428617666181433651738446578629830038792175778309695387671134163842096785973417751912163189248810240604386659375707274709810171749724538948135340391914243465363676837217475507103486889689103039689111303724916909205093044904085440971076598641375482377466877586200907950968946729677215241601774179374273277761892375986316984434450584365422187463731939157266556172938459679790520437968199712181068432717045166659326298346832789196003161687728310563449206175998667067117345235648471049728632334418536316532288722404409534006827492781970686308318512967483749980910827659098220656988394819002687823380645615694389539551781905738931096151704868332807526893679012857004828242059768969080928672293895711046893764541570395001176527331722830889058679151162290360653949630750357436677097550468211237499055141399290964822222502794340363700171856539746544953643729415513676948642958866156281227399001279548471824801517704646384880465119527136148093668291410890507024806649816442264862805832570982667683689698544766247633545724215132896044579218697334865231118092911546008051047771303274652238841487405856934351713536552632987861740203427418449878112532764642884709160028054831885724574897840029620696398665310894357016381609889687149073796429005146447860521430824538980824315276319881210434721765250413852376280445347567802356773608450466938984186612570517991536328962290042170512161265604395909975914020603365677799776016993705889159252419096642632276865597677213276909897896020288162810623886076254992707724149042552694608681434456340731498462593204971155175421066612990478655875779444851417970657180097586967213346787480652328459333794416203785536645923094613669408298725392397427598004371284204417051260295242689301413954680085684290830627093134168972333956280456003297472712271987341563579435938949551227040507894964567714558243942276385366342337225061622900720683780842959772232331907763727974439361150323022320254620004398158174226534219351685013040166557143491976759152745533619149434051654756204112907907099258389997902078492113049935497073747006596656190227365462883056699604773153913407452161604764196773210996135095077853845612809222179787049480061233309603202804825184038351323754957435706877875969074300169198853196599861048617701343888797416304843287048618236125461653546015911748136565250440706388709013135337298065912837001794541010496836308427536888891339655630838745043024311835892945207314696858369064475073172405661594950607397047251082035840446108942054220539020876607216750298810452222117347965252818454472299092185980208939002043202053580995028244592770578777712017076459570259489242990328333624858167231860104579175159224022277672696701454049608708139530347924785802678961479728934179423530613255550557895412658569239350418152027542925794128228094108487418484024528156320298052437980529250478728657804788434761991732069365333225868554128311656994028763300784429763617991355910947382041464669845541835270909844888863091466247505570559806150266102751346924913506990759379914177855618171013873988035103110795116244662918693164476185924121822341264933390238150224141795959416493283778394088755694274423418465985899552176500681241075742892852997043723756545204930433269830895649922240508108334913157846465872359466544094180965216227878912262137189958801781687675812972341293251589627359529036977542938555947056809083089792424809123302506632957206020635469574450899488442718873381956240387116396432621180404613568512577935674436672683986316017577430846529714727439714629427294553350403658410267868681009173617239744014046646291252575154494607689531568814039645104898236703918961624865364694294278732194821326454099840566778270561490980096920461689870338615300494771641446668243950122951996456294973601960291806862113411518976293925495932167068495876084794869004954262697718383221429892726617014094514836727756407227094434274582268382757418889873468793753217106037366244501353563758391947900783534284033293110625653074175939079822923751745094702297888843660281942679453994985467535248378672382263058569563907147672416881679964802147917488059533037763232749936299436021375413255780699789841138948789476049753657488109992732861936585122375806441587196045564085514307407337319874831042551036730430599828864890054106007641855318484012299373949708893356059189397269107537052647228061223413610540962563241979079834129609228487086720052141622473500229343669909828340235677790082728228215315720468131993704147134047097490561567317143291414872813344050972277343134792237662483742825667820697398335758800621483940959792314184092677762094652837696863297870079781447043075589127801487891111719875971669700212824112567064920905244661221891774978002115543849097106436658355233689912141238729479072945192505568698225964947354287545311215930265435352860606326792341124149206347420592622587703982344354908516587504332134387299392496729105056344894707654048462722261154339945833539488621665497508895491020869509989739261865152868380796043681653303517664650747628597340681365332311468827924636643621967488242768264086721009349434357999505210138933732228291297420311064851319561903113365995811716367978425082846872384497569846748367154093885711803644579541794476638990807221539300634189038464963772518420636515545183022267435678905583738862167672825267965904835274871592781571088391711528951936490526310353354284973938829311794710182132637361084863102059366887966238442837781378847663272428822166389648702134534782371568521333074300862085079735328714036309866369572387334043567232410779973730281703401840441030987677711977294813086648647099087963531053169627487723322564332579328347036366851686768576586427327555426542387841037400568033001174666183873049587767392411359121174627258765824659173274141833762412688823719394271731978859959940575779939518869294641640530861334792163635689037973459354460794781229411902781835266169201180882984128609866904625938882580682630932355752568997282076813951098354104249281055386510403647100531825563820593154072171637809571670477131932610808761374523794749791069837559285655626360030489993868119020764625969519349792958487527990296152744542772962761975583837410534138734219205407437055877402931314170645534813664753626006353796614609998625653065658221424621750318158291919695935831070623677970508296993202733320319002302475162363840457977321469725794614544952444220930931731039988290547316930775346872214162259604470835614099723114212705916792470982831315890889476228391045183793484620127859469682990323476642611075020712786444292521496000110833815948114020193486646281834610888147363896106171580637141699744642390251154170016953983091372883559810444122412992944664275917227846260210429362974962726343744056416870226749357358829677259199339513175930029993537334917909447808585509505132047216036213420992220949548253004972353970389636756960142399933555035388817545365092481379553842820927508303359948675197342581234197359521584260936853813354664794650671002348840774868015504967454823287290959512258454218625850589368486087574290859418922635532564189953675504991181779887196409185244249054780523077069438856708497130764165365798590391665446288332903982426967570399721287284151751793760576453473783516824483897474887318535274501240845944693787912820214624270410993620644852276929638365533019588722532061591263091923364507972962996274136281972792996514042076155611554931392434851498325216807491934927680911160163314354218749672064712428691782112046975747409459047526324338178280078075263231502816423089525378583167675275492171659890283303817665331659324694668500220663277382721389637239327113212923942075203864422027828190107444427254846400179147017099375088660537652874726738005481791672185784138839448624396065845373514155097099087729462229276814222252922916876255854433180822625703188415436126011053422587510968168831383205554548822896078447423654535732871827445589213216673186200962692468128439311339460615486941882623416655137918194343480743089848403785522170733186038438950561033891323280664727293481707676138586098799109736174405236040012129904183655332266121066728173740440972932591847702862226398830352156534923155807891097000909253392680133620141381157129555493085594370645257189776874920523009725333674396034987153929626020252041332877087541937758222549531755776562793853002464255345963333078904732693073629084559649632130900236371684841694633841767907070634772279559120747032937646381405745224250273670736451318476057561897884635844904238203026547301346902288293470085345265648686305083518138666562793068165915544913163157229702990345142713369301274154102667043983421756731492899140008203234459916649736146214819057888674427349674143784951267015330518667890238744159866308741358899006644773545970425354569059267670853935238196741865061940688413449452586967780705881794046655180297391810234225690729976281570322858198267547685829731594831468016512229780429448695811195414857412635415170228744664257515523420057165123835547850194255816293241392950354710331833791102800742484660850254607050739501300313251268019436632042824773201256395594910060546287182140783150410333961944910137391433338893249820885732043212633240351622938311864822734757471861086186626927947810460316941216215890553999571055698539411123936470403781631199991556938913404775555973359802299243047259326306273379763173871315684771736024331061690353347124519759118710538387351838570056441499970732188173167860635154295708684328079127536665415978585070730281493710579737936465205475436946897318964089894049298967981075359729949197904012039526754936182050976495439585520142268402783520251737549447962656917056061931021550418623310037057053192438905909464835540058737424120264990664976389807591010228447612888265804876746933551301950838268378756376109810486981378004788818031111174880159509551712232864160217938452333707680560627485411961049355102736613938744639362633149283726901993199283220399571944848605464772039015319591012607472927215744889243828964175358543753633335790967604161770267234257262226326093755757628367848061601152327875292553121505243916322250188261618752944071701292574664710785279360785150016418275368068086665424993825238134593060176881230247586216398835379210443287043634842057232007118236855882550034021938561286219394171731718979597896101728180053553070823693828198421734864503023041846675631845714052947729322639475068822742767795475840633613548655299018536722440318349368642764199451940541459819970388453783877738350819428460951872272488132370010757854611383252882486241939053524608705870018495962620599380143746138006365472496283510775366160306121905841642397848739127172337018290493742331305645726852684230741799731611189147843058999274163307870785445202234570255884747306384245826574789990754048418056637217101902186856104471399747025033479841366286053903830552321728758434439759281314054943059879721902729238122770461288739773022728549863320395118767739450522235021853089206109234411199081727218169772946886290360074287356777563758154482135224425576171908914338089529877657714321591900618068535432499935692173762043664605326902116294840879236762718062538748339513715408358983364114925690949201131826513471617448024736695819800477092509461448039964532068599121109245787404395040606100066339808198331968301263749621547056447298561795970996191370132647010952128480348666789553363704636484769658681593101592119810511616292844044085230425874770906180923710877269091492889756835526401907010876540489070906121513191990959254692701348704750902556621445810291318333687881495142351713875392706889514663065541553954334759166942259847790651714023266946302132452574516264331636289722946101867769510881053606218827776884121825895655575690835796081810952049967560377521334465186174185609174967944497518114474389154241404836312194848261682310970126520660996459153467191175400983779889110753692641995025834702963002096291300983191026493807877102442040035129004385141830934401285144804989620610379157761029948065051633348098283704537171044588667109826318947029172829908631579057509920194792791927011528433935549998624286708732058024600279721169717288831541525770176950829692475043639576652150014664609403533995385840502007518476719496930230363204020066165558717041420385641603510057784517619707571397720384897917287008169981309529787132153170177182818299322690943451614360679303238151896672408890631653576019365543253085363832938483169294760459207474965152159538486538570267755620143098004783073594255196459120571365080549743826802075625438089046423847681652166346931111905730548039778971325427071316997024259108603919908778730086774646798032626418129327581853248847871141484984303718823471437272295371702875257525381771340601704348540199455189795332575527621585348478122180818558522787551954622211173125500816832822001504709223822422523083130702282524409043410158065794462762659925417242540326672507662988562260571497053729560931443596322490677353489653158891976904498240474355324206993659104323085392857374877268108491907292930755842492127067723585936565712255858691357359989828392303985053879781387981076494993577971920364932882275318236317740523457258092873866010480177077975017196511692383232073616776403491223906942797029135472081167858509026955100809785828194757206281039073784193206374103384853541098631556052645985845087400990561824401449954172622761574727525065494831789424244328360142820682797474701039521754154572293588012893745419387021862311055537938012293054538269133769160673002296511427460348929350926594309378229404233430843636917876414101225845961509414959206606849975819279964300050449040564704904364251378976058035136995385511962194628024808432035012417548891187207208254149254733171754649469064429042394194502611491118904082709441704587614511286309636747944138679109761845810786097818202399080413132830364144499371643679821877496882112501528826339090159340112874614311442734644961744468785529453536457435426771795784859701374647396663492354698459186743612499967014553245771149915877261305983356768667249309449996476401775519734827347925230259541872566416596314155696824679702383077628098436298998713373179686646770931153362783341769865498022902031874703048252155935071572880591448671664459056007308988623809790056974166935337193188890266460635199088134690496522939203010516893017397319669575007921172033930354589436838205301049752295127509783744852774400879438635249261897680518576503846931243498576291384405799512719410349400445706496295151794165816957571313790952508925359394392427697877850032937833852516267262197903061988058115494055155052952960292989008679585982799212736059686093783402102657830038659484555878711221500864770976322304874768414594921141798036912342352271694744816499456267811595018802402669005240350437221496880055715819331118524353806147421740166288941755227243277682153293876654222976951478044802394039215371719071858916040094174477453021396054021559058167920355283056316449521745122427593654786933517161721649211694057779050377186310777155549249687672760398582816430031561190207491078275612428626625465739811176750730732461633513746019685950514039224338272548287655744828594285539931910619025722103263277421273111572802261064041392158832995204213235881905378554753134422725207688854770148587855854166362166601605402738372923093909935389478633192635182002908356897751857892217540921234097847409483428290852724018912680149066684097810603501150562890413129303906402892422951777778620681907769583136861814685843392359876496864907167821450122150073499384167577358183658447477830904804594401527822708100854709597161852325301825023730937653125222672442318999952949337420364519356496930437458161492808885922648756470311199118469423167978878460391872540568848658959706738426043575236948223362653976304292792846856341341197543916301296779730002569680622533045413069632587109771735700155278254959969132310740740488334867829469409915265211206330683430994060094255022087322923697478897180292652755783977026860557564840293658846395314099655895939203201279396198560738671803933201884383096909942616430337283932331888729020037851089708026821541393304850191278940093428029105458464898307834941042528657781340831704305720751932117662388207273927115904229604249098844219107752224926254188710895049239508496590375363706322962956788774797960434170871845256448608308158214440712177938082505386268276957485084198151924173850905853133591385128917317900462689724697312014089493769863694033392024549922073529163848885700675269829054516325123196685049030839801530092798304672194007335353847657489609960808133539953346514975240531898459529352745387392459402196647649800608549421628626154666289327356097836396883311626764420468626228667413631294881910058635766455251967108489068213176006378200208560011201496602396159366178412041233562897960052648759469457688286001394039817690455214112721219570735249910274915661144104224297130802523022337226547201531155394212477532046475649718129003910636100177295555671387863365551378921390974953097005967927656022958559811425515078305592370759718322162902995213354993732985492222904630757066951531056729103771006104375769985544389226154174157663773774543797844368322399500239640966403480966411936179214061939130687259954140930037077853269447661908944047784692241388641884976536571744894339587534222248682824051755784311388196055741610623290459477477885995289478858542889855682519229893507677289219375779373061937432563188050205158183608987579762297151422486648204922766354198605142879041158528697923294368008562708244122112714524116381609209727575512828176396328382674851603624104927266682297830286586803770232730171568051021681616922042578889129527422240411305917648954820655202051793412755326706966806291371404676593439040760840622224985342948875359112593588015317819492109836468079351340831961408455675170480835561033992777528012927543440368723847359168512700683096670528690651895420852467116784072895300246262003449390607521649719561098618394589534648350823946703652097153145534023502074366088321776095976565563415781999708713137687235071889255808311781460470585086534410449118387722799585076444584472667365635734001802168956831840929362183639348996212218425997911729725059122149258979415514123703191724420804542902358089941411311144360224661622633355740752786247955520156654193093977287986799730780793641136159834152158312907119808985860824884063419837764987354101020534057607526804794152172937915591047124715384897679075117786145753721814023955392127418772790989348900627685893946144742254169618927813579707205118941826569655097250424492689451864823997022556524423353960728161741309873044094325939313114561396347548020428137974191324200410313475989174355436463400751374809976037050828554323435117070003187142429101513676758496585125270013822579241678170712218534276012405357024000375819858100784187086294418161650666351428327946353120089708669347244932595284113789747188790186227296997971094176797956558098175180361997349660358549390864395846791018001742779230036755132436613557722369265015439388211326703552351790284226719335988791563438735172241806294861827840869208325481680045268196276160943322250411032729931415148356112667348861719601208469917004117676754324915683006056134215776992654070315153572348231222812308526084092854762180373504037163957835409511302164031730280075312896602591023956821078228018900403768128285392291851470931574494562565260825568521736354816875015933094648609952768051277810859883030817928342361782256892969925406491811654048022305620008531438870533662757474580475172487233910339606759082504448775805239837919293697671267276964615444374107000671693700266286785484835427244338187388837289727945819556803241440303617756033754973079959411405357910162631360676985672569648669436789532674338744793674777194811559433625399727429564658327811629292793550975337573338344562327548073946731948277403953646845233390143148406713297580889620072565670652989323446423331485549131377027002730532136552018138672230068523329037804183998236948467347891740961701009568908601660782560370618518730579517190178820610990784339281761887456884397135594920892398371179333684352950825838469519237242684452156791516728301942069862854650123970483637910433582565866185302864868389279502520561752797286858866629951681241959596676676486593995792012711596847221980623949506843054398608757626108852470317898804187782757588659548891998700017067483849481215199371327942754363142490473004655185095668504208715079993928331317397481662161151893243750817364879663394114824367167943183856032943942077848301886103010314215066270531736901697969671159580342387554772508876562575036593827190410978635219142701041391794373232088025481666042545762076397498506021594332449970699741610322072903549817705967354643274187839637475747122032614751174632526940874530770162012453054232003054697556721579592143592452162819405010131011910352502494772274293207463762056994218330003178722869766096512412170864061898349456471044542333201293940382945881113092078053437671767333585668715708235792719094841150034550263220674602054333631399869836486182627300043919672719918329156414739130224015698368554531888456674097417270569302148461831429863696106925664639690260818080421440028106564048421349415001441034697214678123673446391186368038684361677043248106756116133377568731731558939553857014661928559952265872685554107319921911900666217236802895175561485644582507894043322054228272156505775473731807865592939928917763499969333906557950968440312163218936251864415576891425668727270027351981733823036767076257937224725634386938624564540820097027719859918630675717230676569929121446373336739519492626215140856292091512895760091961005133843033021361094785088286833557392936793996872517948531703210377555863440303631931661106178809178717526013062372907845874964347590464844049620690372737521003375011433527093442471788962838994391761912566383793579313919672654675787568690797477806284775685321917381511006495775662097105431562845350429001205187370833957385130131310741989702406679128932829501292084999250856597197354595514230209202265165158248713577338861580917135244695621737154930084253870105806775626980901837669863586310140576143616606517681986608683065850305837011529592141864865627902992709795226572517283463060332521978846049544204377590277463965892705566175218879895936810230299510633633287597013061863324112919354019959628627999097644532608587768344610605971904359991907648375293795416778062547068379777162233914603045117112754025517302019146285066250182785818988463410513929329212607693598762308303708576136211761426628629432987057298848885870086080448693972629984198100301155075037751982595266129115907038388735357582155925957346450216372325548339275534812978649020949838475230998045092064266029596284163883293932995933417191718593361656802843897178581090752551036876511727609777357886649035393180963746312570742570936579789315212056132247374577450876156443292346448034599098345994279256822436182548493291868002104767048500858294770314697085725660979112529847059623769135700026323896645280711388623858411430370708540644467873104304142421151428457791332381590840861351593962107241770991470531803593703929846937862187149833492378917281630669560180962493289350250291299952349673248705094054200805266204140911901695848412734593395072182689904069336229889112230402962284393517766271243845383812143247706345433006298496988942845570896979859838977002795836746241804049046443620427614812350355502984487879468182252777183007551928614175568999699744032185149789681727985024521031303488833974785061309900189092380466557361239799170971265032191221676391007746737843200547469797911417460116101373353257967603196968243240190306727405083062738119167671212091312119631955555268050681050765812856316048221807727336810327483684124632106746298666023276269262945219200812731527230102192865306435881749961739720259636900204522985358082518352542047132015766112200574672934759996751455938204797768371509687791053654743126197070464288433489089339508773436202310821749878919460271774802402315811775164797505570222591626494227185786660796312176375094825971809369985610683206342351984449286186988299672019107345951945840611182682760880614297981608479948599808515344252676217902600251781287517936127092937224873301754592367775955081384768878711013703950866424196796940598801893102031655643162587919775635567818427690355201227576726277705752944190414201260095193930452397261722274984122724749019259222124100896821040810104481341707077020211771031612466935858335542482899112701477051806754420313305753217814628269017044775572616677464151684471712191734038701172989433992517200346565462949322769829108127641111905400114040458487385882754303309431197920020400791526919389168911134836841332081217390291480250293113973092952182547353430132579498662499121632765736082152835974194563394325464624520285732112434232950251658477180676871601261330031004285084952165268045280491631109312355573686479804775480760557106362488360075613019247979979191558457902196911042752240974669898766753498314449504831336185622482223302720569134687463794775041222570100296770377354557942339327037662628695277882069689337522970126507510841434097007158337058844136110406517220148180811723421256024364245376623057748749786943520050400509779355766427721481509153123157154084776408663192685724085475007753881967805801951434698717161780926841186301492327026557474329442142959465192908484026039351775133027477972640362832404822099232380127684970443819971522459073714148155563505058834532619640367904701892431454784875151809032255891513394139344985574781610764697728789395869579973101389312507402672690927916582737035509690772314358034863995439326720599792481918055702506128263618701855835869657180143682189263180455714069710347958767298345103297422167367775880386234886984597855808399708696558517987297822840371501434329830872706599075479256615353570285314864533116409903710636314515952552197150815764816004348838361392215881753439772459798895389538637312627992484223204172530264133011576866960095356402014974682338517826162444733890055847414269633720031890512291142861346830403878563576024939065483600236421732878788057814905695684079092338332424166912893043465331969819494303835127923495739825842454415710118430891504332164347480372594637632540567422238924980954046541345754037446255615206159210767948537719985111449389716310114469793467317266729094591692939735801202385434522823443457465911563032818998798644047927700999856219744590335765112915082015476441805889820453132196014404307742903037585429280770452782723872834107178154670258985625363277005092959787753698426982141890660929096102080869906112072385797128425520428352996797957856384305862391495516542702964512831773624552640530992012653282423530027714783417455654691842917006158765996817046957972408516564694423046628310694499246159951115261429202192828918734652170473554196185878848490087917406807934218737751511865924593919757108281348607637691109646648581710282266084008732734161175476416687283519612088109491270939283742420350048167468461275511491183856412196728239122920606776407629978543379466558326583634647283896048543967168946906660860499331920965170635157800865309067599802375314832157013394135803165576408151691141025392111674242267649254575426462985590123647431204889884370808123109361510022973955095291037035457618906882975387291659260087494531757174990418064322173806461565888310249872713650554468392639430116734304252579495366178274272766285787205243754336373483225408492147110137228923155360887633684820011902801741879173441111988476526147579651770538226905531539854744419984265228833802420181405520103156707461840716295412089104365301179182091618630250684205589941105414383599246822224546410169410485361744352431576261168652299586992200829176159639198102898479754195468387408356332563817984158102117028848151963777122071408895945682178937957345307912108798636248643305989312668765700335448337875253036514495290671111862928557987451739183784619692103919491556508005153552322814461856988435417108329676933411942153362404760903059629178808866529536463208185088930974759677677609500742555782049312581674201662033380634533629619295341478279570766762166175850665002136509642784432371529655632797882310600940856355758023119096436464181772026122607840341134140169281044182407658725321232224044242043929779260442782771059390035746445418429522031133961243830188987762493521398729587104091349004005483240028745616338457340718288910722155477465977119596278356497713992154393809158370397014224580171634948637257831737849664114751340479023162775859467919247237267948563381912048204321989568092347778164230184555922522373684853634080776680202549739352948564583765455942853953290884020356788694130383403214068813196031389046621619213300689309060007459402941076418707281572421096943071619502312562151992731713645915163555950936837788883394549535896789572982985484385634028277660970495899619911104702683003476499280095578235976738932934051189880894965740060083869550745080556165715465792676284570555491604364534342193055015574741140787473948835997769435080558056243490799977217507029219358484683757409033552101078428589090433380193308345354913786445461025885581861890976391565420767650941866532785926582179327091504346815788864780693945498262043792924428431677796812473510395273259785608630756734760674658288762169784587631375441623494528950916784332072654591366557433937653657639214651491222444746733439738792030615150885580159858679091066946667183780942776180238321025227412828130473980813952549159337665124077327131922743384834905545134345047275927172974869995906377416058947077375587726266763908488054152609317049019701594123124495527903431690342037876286905204519104522751493191498927908034397303567721220439499497204508021114305555764564121503668974695510431671776519492822198936208481062841716104543005168199674078178374975248980351777225824890480307610513493870686777997672962172250502710399833750009719175851660832130430977562607049838776235642158667292870828011599497970421289987009138360664579223828546058391744840564826046577139960140965058351882391502317217732412047647554413766387691540675104844106024246355777918991767326368593812963947099394172987810470777136018224943716531096439772227002629022919456109573613367948285657396683806804273553865690070744826128495345651753311416416789027998749200685540123195249046098168331010248531284514830259638296093236095127955910720419351308690378021954824959168959530339881352203205644908686738917524262312398401301164271719159560346344173709079905977659848865237953688547032662616481861379026324490902068115905489765956682694838453042576336490419380484749903631243207714610491889581174305939846553589918264655203912789504557508794282686762109975928827209645418304586066040748996396924572176501500677229916053802395330621899226134043536591637755646758617736680146342101492123336095310871147665885218970261959396679396233332393310241625193082866822936373817055653179324129444667485982991748270812703451935088414837994788467323503389385353922080821308847882879616842093065051209073654653269236950373537789479738890071589084252619994024711811023942739134702215883879858958643109872600304001859263248301512039697589680312936065519961795967697833168838554955956604360709481338214477995002047843407038650470595403830876805545352213065790750105586120236779220337586131054190209933855700555792479244300470311308537434088022047662628323702164008409298898517816214599947918527259041968194907191413065877571844677341412014534560392036502007301727934986211718909849981890793874302032446719767232556259887230601075968430665671612058149713704647437780893751641263654384073850618855335663985703061984522878615838968440254274394980455368165331954737920641642470884414604877961730715208251585411728945453915564310450956595474061105290018482937904898057801852280366304109373083425958514666462272286518607412832636666457727262731342436660516641874320342237013016330151914140544193495214430054538752438614752846367102113645313961805071415336757996849514686958529407555375352707934517844732559881620837810584726885042217334231451427202717571794964591529080699566544770926358202418072353770058335438511816593001202374913533277326898806657301593689034954777241963861793875178782938577629459846594118821769346759066745667117892088151398680576578972794693443114266632021830931025018746829879952839764598637091063919187504805266609896162354854462751088827155975435027829083031717823236327388136129018805941744780568627896234668333252401240499261001310031947658426260233311627850018574414411159352276518526037695201381956343967572652217278340090274749964103468128424430232858049126991673745767540045428549115828218285382044180943797523788539282582380492156204116534243461362965996182860256282969415208009071064856953420541826677916675191191782845318251327023347462383711012746379069992016074694858013749451361739233528886626545710208999382570970456901781602243154123543700070767042586373940133787561135535326020770592651660246841560614206331256116366149813530604651119956216697256176138564337695217610960011936938288332113843396244153892694077549961067808553804140533127400442352896664216596456479288114998098902888768359949034447830804826518187763029397856369905969796393281027854618710775762247125078804792145114457855624336226097981043347319263233726172588955071213827729558390503224238841316838854872805343721018060219798258680902374542630269736118193783865699048685654666293457064026817855457881346640241443421382456937037053129194821279850120746724518070288137070832195136880402804995873004439949078481843372165330942483780906348801383544897446692764022731767558997617134111300440010058836653609875292240274443805758582281802307546125811013647180122191647412888305646555735957845646135223801993808658637436289657635410147204387838162395149337613569909423086943661013821136119352286433546293230958265700419347385328160094657136540770122805590170943284028637675924006325222240174245799134459651506669164171125873765694227661380935309478052836026573034905905166572116968287080816252271273431048143566496995743011992729685496402318020193695501890088114692946616556138100040213894933108442644934398837236866470449567688151720300385877855615342969601184320929209695688042643790474378283765771547617066931854892365210122321227145290896451088783962980709576758889435475251626916013681672652195891056147444694360120093470373409518761930130448056854670224729268026071103561004166285251725296070122580971767097795375343594360204320396291630696421631754948167678470166044882044413088567358321631083285870581642483649125288607948686959280395286273887717420836151615838740515424797311476457965116095773521051881271685830037177977938096056505706130578088160012246195827086289924154962899387663618330321898125317343299530652509660804383216901966924428416700181816752668456917467156882882641908863569328926205507566360450484792765947056853617958886863028017066427232813729089724071287493191186980386016561785074616970775261180703295189939400944670967751106280438105160498530583552184846439455841635451862885528460844184260049975283807373144829337814197974426580191677914711245033177849618068869008756898899673710649805967888884290232825115199352923019906857395261399629305732628871298081051984356208757970115863339855056618027019201260053668304527461248947799897586516797599365333302386717798467200472869614205327487513513007291115902049385116575704580755965313001159705590963463685559561366014463154627429620552266657489899126296637898317380620389499459454797594571341285414517656700213575731181007020922403941815667319002547426169854330339383712697579468553481252722129733385334476909472228909475708543760025985260150187140207760521644825824706267886702535876189764943232057075049433494687508938393143629755780498368622460070989158065306045801738806285544669006547157480418634699708072317748659984151511044676489457158732706755509700956002588295377069459749506439012064999014750772437475372953682898928894333371586163254039449064050769759347378711980604890652882844976742489686682205587365087749356693097515280892770719413875813377903667360608639620639369065076829667964257459863536284844390936252263774926439215665160207279924973636684214515095583217890252044054763828222077015002398865593535677942534405300222750486780495639164474316870747596863004542329720874462920319249233892960091911899723914860524230491265875350184110650671167073583366222233070550618850220389152274959498794925704597152611411028762050157480561493433047323812448902006498635906937405740276516660868579214535034686960922855298041858789681052408766548508746688075085922991448393127674999279979133503071674445884507525285975770199240093939742331646386735193271447203631738368570092936130279111621476793095769719266029559086850103075921629467189404639288230696857530661693724027296167996886100637723514148102754447085480642359740049191874486660115586326258260874195579954567023918631970888476937955462129822239239171997320648264284561082360808416498767350563293687839043909912834860550866195192306604011906510656614667458585408242106052889051375143849990505362286941571492509469494605015719232563769249444232071985172255572746069345518476320322619217423522088595666705502785519297065381231716614165961479352367325737522978070330162926999011482550118719377382777037654995587534848853725172761490613652391503083990335738672130751144617933270612175837908607755358622336560398225897939874172891090526885296098821782569523833336345240745063687935208740165694919408847119372619287911140560776117344016201047206277733913247723234915622908770878322941876461434955839197555548816312733840757648236879791397666832727924226864239641866959367072825187827577137871658290837349457916773464149511564611975067665074405308567591505944097615483255785425729943713902339849464558471560980385388058365560402471378337456063011532340923085088240722921020234314677806894292167517591772626378550546825133537713017699314410976206229850741646181466738221577150155236981833674389558106985361794585507646176656283765190557115052861618505793279792079650296816340762347907343556075622429263516734334274464146991024274659461466423507069685576025004406700167527747974967723302086913391838844097627913854312369124831132511931291777782897386835130266457275978656281157731495407511667197344353398951989154198479367472594626021402876357546454072492280776905525350423695230729924475121856384562015484652382109118465856520637958354244624268914882490549568810491261138409900455804509319655518277680831912972696515846422202538958957981847096946119199975113762703937608643826696704971000177504413972605980198821987410119523689573523081901136526801954698201768697127327019381913803419497203487328005370675341695447973855214789426835431935091758497144892202223632518238331252695209500645665996153318917443420264381562866533849864744900778573363273631281768783892649620589590785746425698778082019183061466389071043479126245743118176367639598520567524926906445912485072419699864814507090610225292816747178046197796797440709794746910501614150582610314565820147532708131702856849612381814592432819280114300861259232399383468343419018418929764839827086320365163930327703983906820738355132480043606439488166360308507531125248202925009996101411812532795685683283422858012212824402725506317217682336545913527474037975010824469560181289385875450266255207444458139942806943509813743528548845820704909260772615427621049395789881425583022091905875126070841169408385959981865529906412240931123331513775650903228618789546730462066281689561218552612466028611790534991925471749923291405217703823219142063970105999516293737879596357789860976543569783197060076456330846301365806122997500791322747726874140961028177188777898382894416728668926819495215258558871834796979322332115194562924815109264657189170551963510776919241830218141891060756949638230293135710899692729402779752034073038991976777206179569823575303387133097231978679367962762306543150790189924762277545337997133717851763600663333664464217014467074107335725590254199006486081764430622063105399240826155523620072304996785078483332422813832828627492609572849778604994284268755835361169455066458787553079056962625534192314548396183960666873015680788862558073647583074440214436244730628041613562410331090615396522319419911432282179971962457843085721662745391250936873518330265486352025292285271051568200209337438549540292753484112936789009566350519897141395354216122696097514216119543095658653405865645133225704856019880270636164976798385500895309613134747169696894727044289495657553365008074559017878143921475245218597822394551097285679345098342340334982639139084456338733701916637286944812290032830307946887443249053143923570664513313603092354717310035247002401047692150996276804990685051786073497907142938973141803915089190775957348798154373602835150475252673464133398009350669419518568801446005307254921540264877369126553876817437912966010493404406828906278485869010757991808004230246216765609825085066338450501633233311036056178846619152004375779153980224874140134958576418003331557235751477908926345171911342983997323259026558860591346758179269830260869262406774089415507750752787006163052982835339794918815224531878094275030507104035517313276100749059566924172062874560538029965665820970939116269821954395089200558524172456138135091275195522847807903394523682896796221923637269916084292933656239607339571465006533945830217759330255459623924395846108124712438603631929829790992326935710320160151569025606710010415659312266664356417395097156222610595583118982038006440315600488221375590418924532656633063625871558590548123021598536321733446577555785321911783264395342694831853217182105182113397461926218004095870280429053528962875765436534405754374534920307012361095728891108887912602380972879239218827862845437743411378819154818062548399992269448575858625239420007849366408514277632909440210098160900939925603310919023498348387974884873196452888827240477102414842517299575776405956722703449440718053426087145218181369808871929328393111767510166046930823029936741729140052905371310227390057802788132247262682358396496937907847647569290197198990745414163818506509002973139111798731943867807102859345494076166223847586232970016251624055292145255986693875685091391966334167996185903518750964324617317589874306006250416089694896452700239573866390096675947243538495029204018081384360049292754493344661033442594192776882837916076557131046748235348370690629036596499619081436457485951874860690607558023697650363965300375083915991782042784018757778506624622331508894434747899755344574246042882635910908230293330340423438247627218452810917169714549694217911653319263073081163591754256310127071208507453708838142849907510667986600175001599763895072679230738902359257088766927629010986886864342184794597246695354861071915378872354270191164322822039812305140125446843032881195765286671765846399237967582437270889042145295550855065956347586502006440104619138670658600864284644992850152549284420814492305828184012324000686842600061180231740819145961562764387271061264440666220837437146544583687799502942475199051789498896793965839623279265716188153324760022962383740811194118934174288652484398689596521909541447923363990354358764334705558715414570394914096450486867715138963802911846355805896503487969186923057197749517220581424319420876225342452217758528007632220412676189709325061580757139720721034587946233409648881732044126573828282536328592503242263859000358819463299604772969054356673095812248977754997862437419588844683515995472511861308931516615141768131556729918621804109737952246973574532450736071781873153430191535127705442650423705625206618980230449481217181787244355641186942598743947402605520486458330252719972666304804128422524526420839030913047716090883618531072626959881863812240269703577921376788869007004040118263699681615631220395728358313628533873595477045273652417523638866433036004948532164130437462720193011286152115506840986659994868266281438335634831531078387436857581068954945974320266150934889233063315048165797879467245302277650095737309598038484487798318224866680221000834610893066304109168649131795588666675209629890299478807414628890350850441136300004999730384475431351587141420616067283982124281061048189770861537888242581861447938868191935525164508358850493607626173247452251034193964299471638539976051328123325100347637050741911844617715919117782805982790730631789516134710138272995681759564653232784780373959466314658773533985439022691966105000173901953905754994201088055552710292339192789692472554372305544192535213801890909421340332551275213706865774555251574323991531230082573279004339667017517955944324736823871496211523859109676153474767278023251337289821981681485777820398329210602956703024377190258875401433594171652920531144202265824470025121374609185099753432764315418893654735131305056783067890949346485486068780094710813012433381820330094726082662828194276787069251682590964253749262835316296592242839588007536491183882353032382465557220684659496572116289096133803630765135250868002759506830626671335729946774266872153236975842914046139277176724020911651729998006538993891731722881184452418004562762281203843968044680060573435484394293066666542336397733204803192052556225096998476947940986560017929801980177014590150022581065843578427984191137158744370534036694336044934754128010065096846982223302799797957424718378870735052337620295752461138338295797958604463138111123249321706625646204208715599253288176572424684711973378917064968050380614778453596058566781652861346602235901557877292595257615358160138275258408676818879074682045068437410627179389944290466993400440097445800106050166168260840375604577743838444484306120575711326837170884339782811619515524897316372725460171777999800980806115500565278958341980345004998813556501711602000179969054815693106083403422456683359279990320511904424103279761151775195194854860622278756240819939411468949926435098590647800047128810308021946068279908519733893575392082731762229669515345471917269133181355228621945193479367166994132538518885932401032484733570795498254922782205416017842764272198903218704098228236183819844801874139817672918641996369025261158052982270523533859330566087550815679250062938396381742334747994466964588257744001196673987634393294173850220269741369397866074133094830949179285396347088228696109861387059919066439313188337194056459777078153420425158138419200752921785792123170353434877427869840960997600722542263049639883233386270287572316624536602765594935969651163463447047521505590921868170262531730845528634305600650383631194635684430732221881034528682220168116275884282536206057293408612811770827411183773446120637975698308018806827026563351726210397379366311678156315400634079745169428851893058144377293670912619456906647468963250773257861598766549564234026475900480236355126614946894121987139260827859783756370297007336605795905551448044263189300909191882798517591598990614240042346846589414099958225928175195309963985840226675669855385774246774891044970378012544811604514549965210672025218364798430486139269413650453871336052561571085025108183826941583189940679924980868489742910712207633062530122328771783806413986325208177194657915695604468206097139374025451901515473645961777963818874052075983970025917838668086273729988474356985675667708782097388526028957221249761997827725623899015077633234298545133449755853994018206271428400460764884177645855339386566992203529183628032006575668413513770394128241484683172241740987936185590607635450937558629138825020778717837781276248563076502246245596271452070773254276567668473006349314076441557033820979191673305469104485746367241841989064712202978509162203001973719555876309604717916611780334448291487102875258573944071677371047793019232037540108554403040119193989534945944548561672510392985275830196122168828353246522574691264230458047506069018629815525351985693429259794628844720477872683995844110652586574862171795358775714618607421630563935138089910727027342240343814001008325278941716910198215294822000570570526649886664365040642477828420127273058926204843194034040081746163839638946823532030542243123211918887853118001381517164617376798998820763186776099568918436392497680432993288981309294863935441081520900468701383218583291338748332846600368553589871795527468522469045506149171374839461402513770592871942041545867206106753845882303434227330343221405614638417964302607729099713119514853934975313638189883148374368163747091811413631778249649774223577130344206436385071412393463036434871511050946085452542514893814349814572461950075335929491372816203387686392066778540160710733668421838605923370275962860866031672504106775795890785489719555787126102512250385314178687696234534100564623441338636180834507122330458738104817988402715056918447325636376957781336336648054540789285143320608157472439213093844027714378425307310972024418269692388968913754037914465746264005621908706641825673094012484212103315187677804884775375605675196999805549445885170899383488774978474161705948206676444341148567244295555343482479005663512937631374073998629461280617195016018160319828876162035237871752963744488083575804287357886988914675219578498384548448328330021550030202225350305981678190714291752751016317493248721574045784442505760901092991823864742354897456883808830437876540527763315911716989331644779992419964207054635499909831109223108276092310990230280080340625913743965908110229296070694286387868230030899103240830467419677607466892266816640843797801248784991142561416405097196666073472454851023674065585703930586825852440574844815816076516474288569609400043419336422430839739655365041261797584939877490698413767092433988247592108802224380056499603181287004241692497553591788406572734684797738994527385899165202999111448378182812156894447100055617531584614772128844979963095072279133511146732710189732198337725582356852353999410347614006737132699315461593437400296595535359762156489469975414466260923609165271182418856557321143962365777800837566024106848088279106144513827758518296602739457465797166350594801709045052566523453816525695758646895480245791457079297275469372482239947094325284579278634095146924676458867279696538539487880747622980859657453473147711799329910290222812377688949179038659947974900889478579950616039285779863091668898427319978279045981984798527382966706038617389835494306442690106337911035920774111734472166584523506189402914111514033261549806868215382227295567389222581862291537766508660551437098622659117034638767478862915854900764770889144060585064306214408358642957396975748103930099662382493659433986053084915713177671111429011978407580489015541468404956547732902725035818185014408851550125914164686568851297243963712291452527982245798522521153628650091825863685338076333561825474303321942997918928438977862557411719352808917102481446728736067713228942717985123494396709642137346753952714743292445854707429748392953227130373609021298660597502547950174040427777025839265348293870886190562372691756558072289410256646880313186965235157205659218764346645793518086953870248507885320429305291394724175700960740415557848203703659390685377929273842627078469259112744964685252120190621275567887905020180142606170190138476315081826659180015041087646334159083149249441935461005360676355733302464407210684659334976936683377050062059608955488656999855108548778436735204519873736384557287144084151794561270353572840550140673693154914196834331795337208633725638782305728124953545939523415503695551328086944540203889155230737715849535721661242782707656470787755783281241139494208958596005718935240031955719408793829543393380649634657195614456861150801999389718352870615472246482454166879951221283060115083016076197535227069257184547362433426631100881441106261752394454288380268214254704633202814664661153359462003162076105886155418276496369978021768016933489903091075556030270195693362513186338219916840054713721271664753667466484919481499323590193566319004317879150298005424224297560075115277193676759579436926881280527306331713929703674581639155432206201710721613089465845674503072851853520222125396674328342612621394879118100084042684407839738363691259796215883273570773014260848954201359097241107205352186149143432476000502871505246762765323094111441247554282860432528626799661408713049072600664677209372504484934073469960800555377116164606653098524614568837559313159551779177484367900654421448035408398977081073109475386861547973014084257979994605273125815750274702298458228655868683190434253785484158011377953353955685841141393910326227246010144669130763348979660830884640396701588002963581421309805029992436814769195325146370358730191832597999747626505232018417773873025215948776000803744930375734396763741516088207430934747064823185799855381376128815762772911973333410878407576683857580807776314752772608693010230640526686994963936323619279508916879467807433081884946820404943680080883409136739192924983967299560693048338693801020481744142936677278712248997409039561839236073456026014784566390848105083192236879326114020916800205481785831067947966291747974830248882783602298930401353402185741756547156690286043589742869818509488054939937456307577366723356307844756431725490068509483101567263483365455789744106665803194274298416508502553816160617384847397158041547343251295185819371732881000732190502048737236549551459059006559982815518273327585936041099966506588923226285321591593363115656082235540471333203577281059061219931902694370728436098835556440204397846039465290904049099315190938659833532528713871962948238663301567223856235421071913363267734164684916458553898742846294728055535824442647963084117557261688788504622656147234902087776261580195792084693802638986576353731496453433417236516969568307006599455899172966373414925271866140924656700082957538341724807322906906875432334466030285246165439459926777092760899553718438380756894701702231811167616387074412022498907522026991524715415881925108600198520199370076540402305234695099406272870973292987448128408837267155177352552081982980114362239006747963361663616983312717870115981355478187868212963824394010660470104837983631755503818795075409821454763444172475584347429544979877727089943719621039143018715940155609863819920132302880444581438208582767089118105088436789533164138125384303515711947490036305638403107868008189364502300545470345557094434157770520994529787158486143699259633968202161114415207552208829851819049989827698076699662867798504425525934525344037772778060459358550442692460748479650219048421652485964582495865952792972283355256003392026484529475932560250699995174823063349947701991352866063988493849449477504439116495518747927512431083841763075520291405806981987285711995558255599103588911521140969236597358121855932962869106476006800286091298257456693744349609079816708069548292620032794510088340716914701558197972837315059245991725184310818342025438243394240312639058267582819621885340594486615957845686977218634250104541108580524128383497824651160569419246294539026688913727536587607543214897169296085636406385154060466469619786218041706991844426722520375594077702367891079239266115411830738909155724589678787228757253438356458941123397498634434263139506745603183913113409136647648842837509830274631000074566658292648241064075884057818614273193954890471311362500498803008449563283251153312878295739914631753708244714777202853138717019977096349304950655087343366079562914144373865367788038601541865242725169270050831724057003519702157286928675166162225906991168269371498898516325495019451807918343861534222551622492059594674584699391477982546054914608222760231280102234621091918700757122748165040722238750021185357158141935335817643667828128807243701009238045409859217710193386229636439730456288912764220527403165985506103465751829722619996334053530408063233127968537211187263679314903343607599140223200919858136320489980153735699673058294102745527973388551034088056517486510298669294988074702046842847339266250932158946687919490882006408743231481992413821368697991165639391596992729178295909738586953879550707504034010811731734441625824231472073658801267512590558663358612966775776726653246527709541688145320411905008931267732062374283511555120644416529702291759649972829199608209545291701176786184581156191042035030439971020923053134290453409047748432520789479063862377512716564676974047597139183514136431225709640424333841639898559848073254763944824752120608104733357401158821668159366152512241856413945014669283112784545389236667947728626532451967917371052082316176526296548294331241308729722670597129587072071550693609702507439979810125598398712351023315783283919334953275942827589274167035734571987879734401369542941724221535113008442503259710610156904836760689203599563351398540905734314692852034213137801487560489854771688900636093866430364452908950722689410573662001992700709047218023879785088516865288933771841232116598745027452263374486299302719941808013697371548297165129755243005995456012435505140940895931746011430459281852312100992920691646262711804564239289076696541677203341728373730646217267667255854310341223125914505404038254792987716170179314572285329586586012417779509501398185927947008748097290130049387345655040779727969729224544229047867923921197520731940242053364226732726502447845786896626511597778407147215634603091740502427644193249250823098225986176991067461092677824570589320438381576735154779026620449606188768888203061742098878100519652696949638050897629711948541129221157156670579376264930602775837400795208029057124286959814606068012215356839363780764705794323193708316303742350532535307943295549480453341697127605735585003220765957487628790598682088025891946518183222253630380927053652787446204096438808938807374252126429697301710984167396511856173641030665106190149006985223458166319341733576846999632009789653046552321195692033405537073819774634979002131997380410044904806991470020029753014636852554384271514049986913540486764560778543297692944217867198537481762644658945960181717500626279254742366069201227509647099313264215153051036799026179736332896594558386496757988017394955186186977564694081813514390994410484662434060726934301992525077135321038691982151275813093778050843213070386262175501612698215097541252560950130300277175933918538451446649776204591649429088404976383616905954105541305815725807992359687545171820154892950844526715630265952850214501913475294919548033061076108194994623562881972701754533717987773262581219507344364831057506173101687972115113913476658472224826826921463878078115788302585408124975605263078499250322089201673074435830019502641475620127600784473296245656843105127656098167164001159523162100002447880432542917232921593725293702260823796989102161623096073034087985185057613878017346717460985024833620410002310999572527083559930587154821543274054537410569059779893176667793634458946264565384796633714738560881822501991711954551724506236242635048246638424740356203524538535371323270175242062211989285826071814265284048015569201445529668432678693417196186240252839623386683364173926778468031216968558246361371328695810189583498191960418064142232338756274651726823001917585734114477590528898428493078578647232625777163504467285375066087777439193575602412259296736143144415969616598832782379399538624919890837359339217623894125027820295006107128741041245606299190024148315681720814196388798221763940647024035858878071464150402234688643078768150818472386044638569455215597693941432903885348744055474559291612194969778463500981065299008487175848469415183756279667079525594547114134143802662237778281689359590129632201690318922717884240852311200266173575842273153127392258365165946607088282296016235219036195932822979879040545894502246754117731367906103503476382969292991165846166267009657267160229052269644219368720393563033186850344469219768782517888087655121102173494632283325712567478265258435321731605339754911093101025565748489954029276755758068417795333247296695392055674328529064468149295886078388572584242641274306110091578013264500845701952322322867647783380714299021471004507216772403575078297300363630082779595809057487421681386402193455374109098277891923426889736473170532748582305454688732080742312428285889280604760876817958213677572297887516158114309458572743220808245247115840786507097260125542663316730919500897502009306283104083595105612356765175594320927042150084479487462862339283248331162554943873719962479241510260597217923954680221224504080617000248143601762495674427349893174384422127419452321523378063607012973948933058301866779587956021639290744273146236232320827633833580141752842061195967809103754543596968592769501286290860427013029278374526816805332458082304072496926804672899664024192513931577118570809458413003381281908384206400936699938368323005031059247591992263488668340964093753262908686345832744271921325451100914285426546794142540295082129773217024459998730259726852155148902750729795896570098871795347933148844879311625165368921189228092676230789507821937056783510894527217530420676033521544485003941630473858696901517020721789258242822813471570447472077227478955770642364487881783735805450112023423978117429237913145498839555887047066330655669465831664585383203402250051098438885863674850264916006412720065787423904516973604881309657448607515357273141505218506275441208940189635368731123471297156573085240118999976125746713899424281315137697470286725068605754984977950214992282949592592510706584997935955140812471836408373704301655133918477137539738981474198076323485117395868549450477949611591735582733441302983980200019169524285301463720660417964122298920962233303981665499395096038831134152839004466468308788233047171781674839625879335756376059106166224875448311798821773272314581587923158680280100129644525981737832676635960058546696204278501963998043583253310777045504941077867342593610881861122243331169246218505824326138006189803074266073269203632504566280710734839646875054447834115982372253444118117658798783777128480709263349062322513699193746362415162631182228602445240203095630828915246898872229088109988872821530651094465746025567828276143404230911984006756342259534192901024297264409929091532879943155862598657943453196201788543994148127527301160948752764981191143805065567128974428039321356992846523593806875083605980298650118398190196959555512455376108699874379115591790879773029449323199536118879318371136431196784281434741639466590106470009292828047623281812826246019358648689018980677552207299490271031518985111434606508848972958344276068885435661785121354312784571113594777565700309017035200414153083510596983703337142110932863355937716670917180411197726150135839635808875848462848133871701213852657377142408359614877178382213813921949729405976617618676294929631903858524777335997121917567188722156569201070512974295256907438352281253160935054291223131523355982376335423148580985230841679373800279876257381486278353273111417250217978322102423164658208890195041315683649302558680853629819832519917429841000740356909291954545382139142115546404473478785784225181929216571535991433568733720434255611872145426007698602302524508446735855496286051028799917994954700859877903038592093627631988112345991795643560938066010239820593302957665962784344644054018709996713570460922067052541453730996895557739579219503246766525235213498063961815262890589513959812432520804518340943658464761017769958432143980417746436328967904534613802599558284659024781572246593190415263811102084505505630238156460778711261073190715797644843638316643239024660715453710027263286665959313685817644596974476950544488548192270002640894764470547344427841622040280594252122382645631851045012117169133172268849013560513108280001356669361155536030351552880823180398542361413679576010166073597954134814014469776940898024676042252238529122793449499130934722100209876432374370957358104183665341156222761067573750354894759843760506422769996327214356606695895119326698215003945171099029309520321261710751607932687065404215633148469292081997726864042213520354976487025778247450132771283155227680938103737643907814330640113946120353037566317297692572726074691601979606400746001317381564492623896594226451233353602150526285823498545345914348615214056694859515449908675373532864854529839241927524077060076647304992220740592399919157445051613876242012286868804696117839164482091984381762301109223698856548040601201429161465030355511130837909048889239091509043835397327211781864457977345579683718672070905192403942660161920061334657283605350009484381185444080500647800322192735868017808036495193944876372752910440962939890764865288704743821084369358072889167614520072720997114896905410383779851945649352757040615530349538080732848568329570529648921558819645802214130891777119128969808205835774631755271449095929351918311847307769746626057311317040341241405297617395859036328045521497667241726496720652396800486903498657949583792939869550874263927700355242122995046320542826965358646700760412805179798925844446259655417265516440795605959199991928033492850554575008206135636886167345611055682603259343410726458350877558432201676517783560749803241830356469956103785296175563435397780643979219090025989454800696809228262966341019493122615301152414072677871895971038418507893533777536306885804808837210435324563828393850871450355128909701293024318151996038885818260026924785449891942080503059978769691280371928600100300924167395665385483876858716299420283193017859457161282106999047749826698371891119588660887855757172193841631694861258360000243371880823243247441357986599158337120713808894067059637360648267857579774121938392342472260961472289012403122597804877294079480463600557992988084753024191510200037963740818070661165459069311501374234886160201703854953579256732602208601282652154100302916882719482904376979119283877839459911404434529228162748802094147508018619461578763246404486466145808660307063776923015605225127934090804668991396490408869101388785465580696892815825645165563985337559876622615879245538092010284986142843646104728274766334788561684128668158830496694382814400432608024443282685254423964526837939623112590594017671621569733567134247680768949147975613989917592182046024963942593027690711980052307298154678886435991956329432936946636241372116480837829855276404510239869343396375562001473753741839805009691430731778105985064310892103357990892947273332844273663701293421887988989343367694618379008481923132034938486574487364280072978600025776165645756132334850623736906105528083303968782710140563258584396191188868238525379175293112815321270791129518066488177234546195902656090520762585377967300944621206567639824124645842528347307899734325413425800221529985588262768020901682319379845863525350833191938267162015198909813888193512739011895825029668540950381692527390590856916480978826097072892395367134441105251781601332368528567822312080783404905013813071950199471111036127153639700008995640248840765474650600491036640699252771181770257773485530218396021886934766692200718240592982767306592703824194756317510532773342837700290556036791163179337878534614051499046681367793429412650696258746203517267965360776403910199566123436552557960027637458927921555194504889432269109449707002396573944346159237661915175277670974179790311162581552474030622630880641107734994929503586623762785449608084272156321625308978971737349674237320639934566410336084356679753853643208993634037169561052671266156159733691851569551317652133603323929521987104366291150781469321009528298183201957794138206339022167564475989832739355363408114978258772746899741448731378477445587486702398220177803314449466576836328363181575677388718701993237411031973856996054320662004306072725470273306461708504623382769284433605387152933653741930255011295698221074937982576125350357785204065103183789460943209312500037403788464455991647150576991828035816766921913647213879715589908927151911810357344951322073986214803572459096791838079619015507024957706572122278969072135339893843814688280554055363188134946359048195430136413507144422587872219820555152713583256071800061815652354810105877233763869787969556745487061865340054793599946297861906925230924087932552299451843435077021537864126226061003597159749021076337334897536317469347638789536171517635544209272022054428327737824690411516532153580983372624805639599390913537382568012204569231140068093319764439757513952853858912699292641428073462436440589348237602655520344061800601774452521163355966875774454082646918778647364060014506432602012535728038079691679599005577065086604748101111449171208586925374007262072513067033898350205120799258722025283487533964001271981062133618014053584559387289331331874421942803439992022105791305009213958222587481936282735803940389263337812470276712860694123148584864151158660420424988698599410306355426645810745743502828093668374823446631701570158322705268670344123332583524974053749177455199145778963289451795980585541397872646333507103835878794364681020385199986193081338692393246857372285809176016493581366860896108310227614604511109262683123600330777981773249391619334334830945798640877641766898117393551253547926748713847475115605279708461715944484253891238245116386196656511255072841566916480433485995170722390757963024367889683522731975563275732610027908024812290230837380410984265674500867158020804726906968687411167546333587864790864946087143841151190282041797142086086674080842540340327750133150639854980634765492321382675783664752511236524814183763264509215252844296378908722540994386361326190311828220125540804654405775663268065305265928638632550337854551909032512001063825796987304760734111697533687468446276455932738292515572572401266277130144684341424564653937079112486012929254489181730470798692088607916253981802827264871726173470033018751974250301306461182070035053606386147668402492874337846920032909221236547615030952895473291501978037842903294029521491923656468668633507623624815126120641804679115139897509866675002755615425520591344673187550944780789049342708761879287716064304923672932115920953223434630119586498299757364504978843573555148233149307329970652268380356869779608067123126676956023288100457256605141727538208433154497321859130507085323816527065972715708823727321170079878444597235346318275807886205059082075765831310226624787578789065437010611262236343655415570466093889120442970701631199810649961181679342467277629576417083195797206019967545454454207727098044371155632017643223086065508341111478050264217199807594773195980324164833768014894371835792847593565984928402251163961854450913055625806171892860386353581945440513569812636036747459830261823208896035456711289637527637695611439259215418811602580918020560806692530584989295575567902279067902452690293751211148391088921105481028724795345546864134866694413259847572425391857538395637128037520129145185496963411520860245300688683975686739832610910004572174077591205606390280825312544915259079379096400273766518599342937886829657440108434034455182474368291328606075972473961376533271689930640635328897677114139476943086609089954716583953166998168259223925608516531103428815345627935999655256658793293317707395126557388091244857393008235686276844482798274836296356341729008687274325412840729006855563935821118291764018796642761182604113977115752264473048807781444739521995913502870748416834273585612814364777072824998004151459280768325234972302722930802658191141018440555568488420614272565118910123346530088632767738747049517144862071432100275524864443124687385401701399898027160714828486812570057124641667552185412188760038402379312349887071816615875501003918872231011002616026748414311511438595262774393389271347941097598869806570291403541183777109396914489413458338547622406810219667328841571251477442811477880532486617376421285747607719313179019286507448713705730185213871667210819839953015546646951788751794696540705428078723928738934447971245239280665934620603051364936498717963730484504990975510620134173932988933051274550326989304176070848931176605518185994777480686246764407717826436956838569150692956763959399322401235370344334171547842649582729130059836168683398049005378822561530869409483586793757616735640041916409976769131000017211799143254749786029120951924043077890063812736312968164482788562157352211925596993898515989075588778716226201049385802025467863562645590002528873877471101606502916715526546225345011935045602220728745596579910673376798327294761354229129472119312392827802517145563010204710599995751585309066869057104975933805504207372860037114275301001990551228935878146303378565709069880569100321310807856907033786143112257076493486879057380266352114483586296950485594127596633355191149360428360103854182339668715209860456389142389260231082800676853896952449805882516487969646596187855441791988457323920200999431302128956987397142612875694682514892292485344623277722202391551785161704645006944135272518171960972572405927530025061188007970858895219199765105052288911847619679162425292223216300314558367669661884638702031710538088963394304746561456632765616799284101185219813412385045816739952268982803463377835719607295814333363422463894590153266570186809823493602515972342432330111167643377860860485747324332490873947293797109414161142388772845543314819912740136707716088323179312102842883717761412905879913770779160354314792136584387737538212853281355036638417410162251333749497307868492099254937641595048086604018730586410653393520673408783836532703512956632854250724144267156411946589364385335477597195279517970329015502788222275498394151603373401258437971172679037263110157540999477088691364264223694842123101284434929342957977330160276277575933066640654477603094243874264892235268711827747479724127864754948637574348621400459322974445889682076948878263590507330224074897580957396042547732101148327554624151042924090574094581970972502551983101301575844194638040947029868555179549784414570232303905292941819695024974062304857767866893230870997865845587063367624124513546295868208275352904786508253518615030798208796444889760364436555721807005320766469034892680182095681649965085029764738262401569751207860294038782017962919191052209722339557374219491646159083461026280668314957618258212952902270467839956682775197244108302960394974054910506963695892360800592216140521409731665631575612572764069677365640254759918476898782757333886809473035977025210779321339489784917296580429703904802529276440970790118494309901855344610780027938316510597108564491215479427201232630532654933170342784800655325267173920851739645131665533779491216809625430257945089863360941165858025197841339121396206468809396422927442207068747915678649492643281694621313808602488687686423023672978700334570540268691765072681510874366545131615245088955205512818247977230561034410779137239508353231318102495146255294598858795807740671442583434175292917661901000304835033205606151135259725040706503868782247096003602095165613483395267954067453513116271228414417368896368041251063850600263061483188549982899996415033117793397911422361626436674601098584839864409694958312116642312980360851631775788885301006738298247590427837201826443366296930362408806454983101435924516783609656603576434207526114339403866870854023527261225548608489130550726301126588787811534231003512145902356929113989530881929809751656106281103804335873129171482853112444322674200428981081441299453735982878294961066633425365779697422874304608207975179482695263623801790889239539308420279363492939149046317733655412550190236927557043788321020124828137076033742414775095245522963534572580728597277126941579672850523380574489462830020126263512222044375519030535740138155082960580321143504893620431142051312826896939273055627012464277642697641043299070482260680775690896548982128551396175102025156792021107365326051894220214505264310666945338133209023519698681328749144672512833688981851632385134147731363511428575682166841764763969121126539434915443831996255003439678923562906951863895933550702762581447410121078093627813544460272829290955599367325132706566922083436511629013415071237009665168889379133252792201193341098022273419616279192969727543617661209949749793568512132210253427106984195580400570313749387274174945083312893821904290614159766826112461530275201398249458030970406581253150327548740961427584083481273688128126929674799972586143468408512523176373843361940812016982358793836345723418373549648085666818073219241491235354599604915645614475847301254174477784894218364885573728416002149652800849217404943632988953318059105197042332840138613495260087118446763094323001981053359385391450147987569647949760671188207264056942288647204325005453861003195896840633702024778767217759081426048832433311167274889708914284778664194939470413635849207863831637834109472713202351720391361624579015046181371995952192671146495484142535355621849644184604849639181883884499155065781816207924717976660051864864993180349758729610782781490110599566421188885816396049063842834775910160886437191739618085634886731217376709454630072291170811189062525109856253087795435791569882475807108665724359480899619351642322391027228666823025594387598251997910990517937260543745429872297194225629937638813864428733011089447249492192162620146388425145186891126776694320356366679474998267295908756364012129836312331793099807824963682575988762023974679490954241577382065018860378166838313658668771865677941885722753578115770301882826777489333405297495858958790569277277064675967359138038368079574659809271542148658118731422081764257140661771346011206439942726483140955986486331682155004209476748992859944512421710392174764943877102154495652323608390639752243615467661127504468271857458666817214687562491557281493102721849009981655038192696111487745346897356209732199721638685174197224721354349569821339868699687094130715591493309808770607253553266054003281808535098728485836916923247540555777056047159620173410079398954405722494028271357492033153660662227882643849731387073066344385097342446323384517572872609679339843462820743933074163374458442367371548775739817841917774853212000681644429431606855372397405483738166122338170395511757876823367310847605628559099054356994097304341018589629301069135222788988050266429340424843480319347263574125305005831470350490357284018379055217254942877107242880680385018048358730788637150591292962585523768486632659469438862132600331956890167318235014931838725193439823893623553640209060274108468902027576836640189886344624784424371603309727072243466448368453558392891932132337538125837659840735883130278970783920790273586747742596071959325341973228572671549675337313122316614746301857328193923656982772201573570049453120909202049145674096836971626624378015463254861010032897692463240537630099792606622573086572978556136439853274356498093832676190919309079140069592691107714161359106994455473482657876779473281344246229158410402835366276525962428082444078253720166786452875247595713957018617942648095863374710815561719501169238069443492743349141873629519001743373144247849236567140607417511573348887498384233320066717153375632836900621664087408809922693875532167805157143102756757230387077690821248821176461879616272181181836148819958776810204316450122442917252895942304879562679352407226352195100196684342118033681835335823455111620359231621340499408215058317446924744136234685730385150264878708298947797547296843764394396260651470023667696478533774189691311536922861706114997669885475309772764009173269421387360657137782788998047855221399550334534858714522968452934831018270706070941326500135337007872188548014064248421625258163016677766154541968962616566627923560812764506295022092897239862640525280702630919835800359219160182506895527154434611820753306367828792523889705028106305642898986352191386456191363974392677806669209784723136347034234356007793671637326108330491827134194090172521193757083067361879331301509984910375317488258690503998380523387423906553333678827052869716473995293951054012857193367078007935511191978264132305109106845541731165551233811107059640465433189136988251237028747284565069038288112936727033581257694178852708791379177548364088509466070530457224234934383115194819509309895647284640127473635320695812198032870025456281385520008615090683229672185164666741492206381827268568206323971349674387772217176241902784388451747852953682407026944196149353482996964957451823728909323993934848869053258204367909216710752648178287053000202138921378846741266314128733155213141874285610633001032961020137762800490671652266354278591887040989584710774559445355895851695670997072788975546378926375140283870405103246599669790444413702676430235377446641188081352821421502374256924944569122180658234140640491383574649074741071228678752190566970362630125430851135423094967226181620113628371070587412263421846917455906224183558867099569018739887683693962190567390831351014434962554351509338097653549987651383171233248746731692441219751983024203824988254612105886235377231651399781332407030915735145809565503057344322115731555611078422495492738038908205718847947838223748154687594658558877074430735630409223491162019946529951636355732943438632829404775937398901809600179704740196529760115320026371670195350777019946623596025265903768564400553815966687395793986522580385350743472178460056448833498775927105708571058330182391535648633329872512892476373475799120070457756716093166222189902465402661727298735972517664823741846452816806678632432178964646299739543734829980150291178966202368324251614256233418620350173529421789249903668223050111935256535985529439014754615199099172478805599291511052095907204418020347002912445497019787571826662025790242750254540296035762341953419365833450055168124322345240864861360219172519484559879848518353849432338667583058307408927192203793198272273325007865774074602147655545848584249473504814886773418411367296990384717550935561645417229554507612575213300536524843576230470636052548142388491258425260336100469175946875303858356622332459979343599051457297648547078169196575908504055627415587631386472354035579300075472441849520267800564778638674303909445401524551098342094444475101390476388683560007081494157308382286993858267263481639848781482146464074720609764205202105579881520598958064561365394246808491216101281266680321439700176735741287703609731666965886323994746736563474168027672933920799697645727424873899101076162903505112799591338028342926882695309127090742596517985956280215214603822232606670562223014708787028356529057411156899175153728795635459112278060842255096525299057558148812465999552071514399417563847809690291610320342331618555110194767177163478855204744765028385641027075767352275275699078962883954837643640897079532947405625345676394971587830178353152987055136666321730392014671834009666716750586016822260196827079624822078592875215670481893338858913815050281907622062386522197406414946627009821558526163554449250509953647975377130249422699054239004756022920870309238454727457892480144836771431411973600319910928317912299584621996870774084775684482687319461355333783455283852697462453326462817505280610885811565182654302149125318358961707694687169955439944168066048845342735857480508813314808137142917133501912974046034085784656031464237334101998941090306032750925028562610161194901667298138898566256275516231294300886215874303669812856253083630653017341022525999391314347575880280918841014899782974345787144534424902513784759961776217789976225007941252611134697141262695617150141600379952968067042108537907107267993500234055050373628291639460728197490465618529904702472457586560635182870839904394563489360780436900927896071278688050687768564612425834728352313478876422111387823106543225282275519614729615738673037945603998663867745977493349722595705298434549538217310886217988432919456622894472071776157589991265938624864594141217944038414964819535131421483505858382866466349345822117839124588410864962502233647645169276856588203833313405331443503553211066183111848444652730276414872320044644686940067637010758411667366595590891350579260842690016358496342812367808420709674559508012126340238191767928586182135804499050919972600535932860737605525564766042148690096223772861103524580120127739296291384791754889597222192423201890587985773827878495665498933356250686327072216283306315357111243929894378416036309839813865791355194211320458586348739876564529529033477740437953402937063226099666540226131394701796932171559621002729279794575206921252210121934336281523827211234991355389715263814458597253933589368582647015835386822945272115223048892968427264819486211853955044264502949358403771760797960313797578031179880175397725401879768013632457227226713513662688693618321312551618425225719726790707974407005608384078776864378585694729538208335381807200083636351177133631257716471993726766944252372062129523570550257648265039660750814922000005216453183716568977262728893940748634297523842262861846513524082856007764170187512732789966333029574205191780786405856947287075154269026917569403611441735156486392980604231195234891985109508708996153713716170494654927537611118668489922520106832890374916816549458265434197157566162234466235069945088959549537964660876137574011100406976271284976699914106693018903825641342126428738726399056886896364072046568073088603810064382904719042482714640154401122375766416769014518995587411102139385851329975091522153070496207317076844907704874999670857437769169463963688316367839377298317716864531753010104538283338163813484061007505753352842042368902873897315723697653206002225988459791365277150770013882300831429632073086322323459628825869040562515026203432935919647142686156252087536895307217316581464810883781627916848332688545738828596434929761993706877036674108398331832596080162033816239713159290007338288994138428398210439481503663967332400657151021019524756785730890587020827523026527811519462306008551634697208447429930765753653734179388351191540537194920350468047371199352834070076121126953141283993731822675282460366142919621283084388718233414135029454806409670148468044965372954047802946432155178770120643705302352015478397407811621237284872049663353970702960901914899046280376198623572978852549084544210992727585134250778777935698294363651249356361218473315334715231959541457204369379195605847330139815720328723671845996639043730675733962792350659929546007986047201076197667271390405393881518596588370219689771932630317397872779617389083492104167649349169631968840633735406186570609570832152425957846873970460345994698793157196189030447711342816611482277374233819945516677493272359073327752672491896191206611520051874574265900718188641447103629031025366887483692986367470718076046887801297651173171400821959536560295669710318284619383963514003954474787255879251269072286722713859403698902679341428945098079151137594420461946856455275108063603556638911525240755186815081241785911866826635511840519717280933877123981681474732082837184309289048885230114563075403876301196232134547740811846444040251282756980862296719752432279291841381735205038804665794212866950243974907754179799118707656978398564682938306203501173081354127655405241656650802175149503336441877555648505444640562744420033491670697254697323085034114639449331300597725766368718249920549318850415682680012378034315148867372737650230521231066871922286944799649407898325272907916056891880599271679195946841102627073428109059865671450573461062326029796293018770024640816845061237335285267294725727964375634993977969926200391243892111692387593750200522657785916802577289783627857117809044684964706450630106209783317213682300976151838338381027788412933573005325416638752981830781160354048506510384876227575627925203357202776301328629063211255444895290211459772093416653725601284774697911484057586395440927832396106234029673971214695195035524377893266441911270204220445914848999855685387916402865555115688366185418003131608985895790387749827819241044558991075932897724712614184012065585012438494041297335981017073466326783360531638718753645547700341401147553931307580735927679336554348419156065177416438664941383427381247252144756733883297190101320373323534393361799734898569129342127763203942156641595206351612834077694897753632813199983511008919931379149000989080239305564071499406720798618227780305873284228697572590933130652541950838709139005098782277041471864382160753061103783708713381614298005141252055780962013062347374578770737586595396366760771927576695148126757643200286349731061450735183582722812310787064943020917333537133834865235915225551730779479067092256689011227348382178130462088266330582247612602559152147201716692231027636772332186583198047864707144027821700709472945504609306964677530366322702714000384883881305815182625243337252753907359850276072579519931997410418981452745330844008821173898500470062982903206026463690559934328943229985574425698167721650309624475803037721033370506234583970667320175233091147421821286440664340766677847567365127136861358363582092418974043773321214043589913454996124069543002198328934489176122544100143846869894288020723704900771144185221874997967458678475278112786646928676793073041186905180070606214050059100667721028418334452572861012567193589656444479620458208637262641414310286702273924727732745666587973448697843689011278954634409253845652776243093003612749159664833708476118658705865262049940340179168026318628316254847731724274009308181804282054966512164572280757625430370981220475421827959915747074415936569293263477622842290666185228273782805732534224157831898328166593741067495730164741377542253309786700935528595709743795841537367071310758356808751214267795489160384104578706114874373842953607372975030631978451028101261965543018396705637725340589320304043151561811897754247727194948101777489487370086825564462740302639074024653745078400938551906765638480432621287932317960171639398267156949674113922406324670404698075850926771847292901864810582756869715089895128451591442856853605778810192034208987242903078022326928987142310030861289115303833587868650628154898507159956233803562998454159455803980086159757737202754297818476828120093786850984876153077060018098553953137282639912615857074898259994826274259717835462872236007982846712758376485898016947408131682396723483267712082073455998067267181738872176464649670535242387517840064216368931866261230599162195107128265067109858255450575553834037864170624395311489790809957704862910619573349138974991290297954149019410051857307440471565021875133292814138131760218101095123567852407518521330157587613990268010622088349096880310515015177265851861491599094001559632507228571554166836058539385614917146686308557985337288627356986943921383393318043160730096486880583822510251957306921524962085394337969600177921140294470825417589462653431491925630535746492430704811150607459539875699326553217619507469752394940360489793468224176269157041262411571412016887742352401540338997074540752804234805127282214807549975444309628728280470069052875441207732813326050772353800434752808425540166995423466690222529993856356668780280542983465547691117282696920883504300025485994519345011298051683661163917229796031533544623304404485027432563705360521858267779221472061884329772382792573108610820191582667217046363158253315263584886102428784477735211423868580949605921129882722625845977781360024952407533841853399531824893386266887371907723712757071291061722510447371177514457944135817154760779764649833758057070837821050744384911119851216401625457333831870259789865536346372878637132076611876832976384814022350057187308554492073936630185608272756193982179636863327921342459523923636717737637927033842947808759635771669644771570677067892625505692337504128002385148630791559411211716771867286221340105059339547079166491057312492369602316027628748224198334753634182461028529797436724178288907934560105151239759142030690097829555456829067485375988728488321919882018991581403260467329712208663672585315317284208089778544550950452184449634916995584423283693533430790562577456851479232289419391641988957029573230663572123672477565144004291540045403077514549251644006514882817478755796858138337235415718534938362535377097929450986530903586764827986886309209603619748260406256242997455113753530643848743227055214045580590119524968101616707680201261119065290061852639267562448391381053960348433915887220351004655641102265142678708770747437153309933123310523046189355964710258942266306627815913503152654670450443928599862818366674899863840979606483696800133810553324363348603757544269302237131244442890903160804182066017425221707978342671028259678148335215985071173883602323432623693595523876071417806062116510430016925174941221506589344518734073827120568249760942051599493491039481787907344823226022801425701391548272916111433912910478897610252359556927125992298332379492221211359987174408181492718420182283773829452363675312661990893862217772490466891694481272752981792650763619758542244358286027405932029902916630312691246732604900977664200175768051750954600985449275790594297144048115560151655263650722907343131528281782348196942990057358656887729467565455399756783128438601666992855697480835532094771395488123322892335712771895218462223433993751186330695765708483779541115104819324562812607952662195767041935124987348216981019247082359730307121899185985529529865579504584143347510153938970646110931164136833245993067647091507416262331525713970493110860328744057246686374819187516954302673790383251002844790961924837228578295181538422426253914657631684246058613068543723520672873160445683139259299286089720158310779792171610005251066208190013916268382671362514948312861061771191567055594063000055894085352694116510522547910394086939007944748618945972310272351808328958733168236291499536474764130698131628627096787836707879091599409023482173908767744528621663227781301255219430432250322257850155130159843370331604931630116998613166083556856602673198778529635448336850102050750948486128616391792852801834770362976834702065828142552977206635343005116872903932685090986396447779801501169741394531745020196286491823435590233641011658833646604636539734517464238555983034089536790836526402884518140454212724031902041484049821616346122827911023056948587151497159626455283326128043847252183844982711156488440354515623866666903122139981283602450803694183493388090426486442130433985210976097561866181455348419202601220330400141508641001136137920497620532091721941765755488105934130222167787762333853858781452032863483633030513604146314140238023420251757826982943912795828364390890172965836493411569232850194050370655290064972380342100994848062174605839350941371866151442064801714303682361200632488022280985422982130923257121250052977793603489765294590189060193715891659202805465207393288722836848084958066173001715984293142473301948078209872858612090525064306390856631422357526777782934092395066419936773947785638537535508933877591562477505725667665802044441369967262587461911326897306683489392572954332701050474044392808320677729072181718796713316646408744127766904846377247455063664408873658136164864541663701748337606429078292256502446334682619771261782554225229803253865873891096708364942403159511849933017381059151966202729419273245674449051308830577749747249444518577641345146627127158513195700114907004987695242502022295018477023162402657543765108439668519028295066355230630441413647140600022427656202698254535042144760015192835733884976681439567439846150363648601980197311081534057330603959174126662200102515878607532018664423057792068179379780537257641869612787904102938410639967525166708644336731071209646387226044776858234539895980382202645037021756212253594804599035949843434774355966642223012020359562789897416975496695047079739800456048315900980589893681712677358775245795283565489455330624358149293348439210755819766946229565271188732520019020501453455063770760123199869697798138793351802708209776420463664055594138397508904640462132044440863697529499438595480082294585594922090614321025717859550175451852595680138581104316644165188453079115334296125092937908495517379352417790938761570805542845983927064996375928572856429377364185506079138920086853102227631141458985407184852297798949037932018597017027468107192752989433892110380008183962758352950823650956527836427870532014530152447906719821881906519667184194487820940119181122661586151068111148744099570203732153235241942674224655264300693825107013714671101900320662287190106573573335457262052939272829243938322581258826359217486206107140899600460329268283965671607202079084017268904021773832684918090586930277561150660441286118977764969450608709417122532951169515073033955520261242678998965512884478643947482499037463570900656495934590098225425983259967681557310620781858457482689050850873296696539085864401499289222967417585400213896491317310047734239569692126357032050671972266996362823360692480761183184425739613697339758413961826467964818757977700351324254380502494859018025675573131027790736249918011585818918672456626506139820357319111310886888541905141862750608613830069171819055410715079118822850643731689749910148473549251016051555828121255273956978247876967588067113641018115053247672994655043781479172340434693345494433148241141964678244933246303253256797330981486093263693089038814724702352486707725796843844682148026459715681923941277776430746741588673211927010378125252663837332466610636658931566100855545136847892497876447458734190170543638244407448241345127680139058455294613272878201511745525322530527122158564626546696319567886211775957122850631203584522973326295490727854568282993255886961492394453526567678557161125558717039332931090448798611541947153513400411579159313851875132318138264541344572946858948842402912185349702881763780723144177805265596683596126326838291105899477319708662194841880984148755579558629546298599150564778502574123120087934088240012808696676036234142000754318050048748506450386732096960170129772048903691184275679814131078182743311893274115892747766200767423601192310204953813718595023003954865190211366197338827957954957817177226376694049814748252715967338523976367530793293093160742293045558951878574860472281043654372439799911921727154188569683230957091423550160516174206323714753811554397044678700768505505935693513802196594609184077517087748865837202913465863685347966045681823536046114036494090921326527087129295637380434749080206920449059849732145134351837091659273266018826893293142820988451410887082715766757076999732490582929872102338646711570933007563367681178560671641658237449072805967349435166061060941383715608855013907624106759461342210736271410222054298695907725231901223421804244898544455982876450550572052076592765669737459529753280873589873934859243652162710085825256030175100237245373772841491193939682902650828326172356514616361630915061439265698468561645722593129908113846955475716427232563027354512442825129493918872315564837040229233075621864982641508359641619761408193742531210488541269966609714837113611153490756017295613121727111220699513539990545964040661464851998506577962808394030248680868400593533421451736596550357211905612293150213145388271146264045318467899919524625531171814123132422884409157648043732166544934225522636672242303592130466561660876419461036918299680976157110877036807112011890220704459829223188764201353333706889008262438786498545897882907265269371445784627092934635888755065896012442280919189348238480418111147597750615312140318146063012461928278296416197358719246962698210530966454726667325666653468338228721171160290047634600528728318534187123498406216967513174497584770058591191912986408387962291205644009989628946441191388688018147015997726239258461875871857377434619903177653979386349691328017197020379748689635749861994827324571373095334672958513130093309117160978169203645861932781823665566143522647154558634095915501263700203527509558764167650901783909924359225047247518700689483958920221059782541960327260047182446383384227643123404959800675618520320045161597102096580547962061174737099160323946979529202065128982367959559768337257511962515839170021764188531933951518598200376664668772990970639607112191848041600112766025000538520174318507388282764378090178195436592097255227733756453672607821275918994084066565809872010034470044637598929801332146749858246809739530683608743513512717594018529549079778028077688894767916458014277528760784443933512560091565584371817555187420554713359996592818081813186201986813242865704070987920332012079106097851451216565533773126812334537867599885274012257285296735157070939433538598515298875579037347552671857261730037363348813445261454412279517948534386925718746079060515228006659723033257768235571535901593678223159949093295555090259527200149693961006230921410598771855239312942374803831927226628890525031041835123325183743230153090909578819105994833407208901247639009356129579831800697412025025844116289346798207518990312513604837015686405606304295566527776234042924590868708313581778733807895602600817941698589212645310293999878800796529335142843378711844544436838525290409052775893338202190018311456221703971867444134230345545536159721702756978629001800133115538047869759023111468401348291497240411195487115966139670335218848187064493144274478361887067202515274346363675658096245445325150350176640883412555889326792826245248427022653625907498964282603355249835652098326648822382176454189021134256582580709252929217936043751088706892267427257790546415255479665677235033554516200225186807876623440458036738337330579587129522397431586386763315642479833843810709541297630574111501692639507340208128839514726842851557110002787724656941701581830332182762257204053409830462646680853900899234193959456555418872107424862473315225478472458286365132612620124329106645580048421040688925389685441765350060559480325627582569759768313994006594060984415311682432645236075881242665354701343736168482791682345982238343087412765284344465148453580018275303758372481085691123516780744171294333968328590423045601156556234776727621625426710931074055720195526526377589427063264351565237260305859215160061680656340765190447112000941407164937073265981678386426708430374787219137276655578356372561526350672688268419203070079374763046181212335831837790453881749574556709616845646947895701697051161381153027281922364337555637183097765830707745188441947597497939636315921836263666208433505248747004481896978945155305761630311431427805502867034721572472429003133695733357155104884379137394877519233613188707532388717280927552709663543897612054245775797606386840935904567074165031264876200553024888417664240266627332664542636656714899999866020353050351428757583184693032239561336832912486854544515122201022662624626660448428464336967457774178905168494110266380409426157093419594790100168369342316850983974654508224260606511561331577054035701290793722338609194490681003685191493764817678395826492071070399637456050150089838811634562166126780174548248733154248599652307889867836307508872896473821716324020069653046868963027533129906763764510909277505456676749161294969120116730092226044059927406789084868605492354511235035224892030605953676091000981403739116813841570774548974173529163523665495489988100513981068521959437091674293393512256370845221557487370827123124394850879592669680555353347993731372303138716719753679061494992725276899563555207391412840497163434442914700290319227531322727988136106282676775321586493491043642646316358864431529526797487121318680349141584654300700313366528623123143160550251488923503302677180027817948723937180902830388266307948448714083666398567133542527452866005093595960428483145178067853092686836076725285998110457429848718484764690441460120870082850853350620506355957507103972505225372691494739762068766295340261002207105912289767167213704316655168264695636809256941506808804136699787511162058340118410162675433972776913982769480883366360025300099390487264388953446173795661063888530696357631932430773211704830937034300349172318348958928525817480178988147378497052730742691597560023240790171401279235178059578696417330435156832716819423210640441800729753923634948537080949538118815101797744542302186457667675804952457987906596952110308465727225151896891479739995648161730550260019498337018170053720277536223968183516658513156632429177883563889674949645259440743876870949672159195123326242266538765332717671550806427619639924380121953095466501208081604577327083441645016539221155260021932328912226362885978586624083817386200157150604898638232122399193706989260282747207998007086576952740184063530832472084251006759912955624495963667752055727031553770359890524732170326122993499956567663985626286732921017569168349623645919435582341659545249267382508210647511312919565819285115655320722895501816684656280930674027445358129300868145965815328113472683762576526698255290726494296776232575102501380054803502635295060803842773886751588841773733481591926732930775440120941122974462560508005067204688684703614220183376719565838026249082648511102586734195658622015620251076269071778418285717246242663492663897835540621485519243803255330365185480006465454080902480777643106002514996981005283048594557790863103973890203792833153113099781007782256007135561002813206897825106485104845926830746873662022813760019502615592734778797941074408913731201605867242929032978276774794685447006885479631781607142794874489477540753463890474979066849190273599448710149408472023570549857051348457552285705897501080109026468664795142529932982182400710147065756684995239177733533336261699013856954435458791314219985702184391395686852450542901471810265549041366110666741345815894755728746413358649031460441839598133202833483927007755766345706828327263472541932646670120307361967390047373515883682360409818211420089671968631297465895429696480078307050438420813269888920500180091254346002095045058612930304075722190164758389883075539851187936095681399360884646073415890605841520294814656982005233958781948487305995561577341785458357515842703235053013580791640917997980612394484182894934832236443624813737007198053084622980410138243256364116487806930904212787023599349292447030066384600765787930547818937721521580817801823075602556686928608702919795975498515906841913116313824013728950759785714642839169103803505956577315860082654253068512706766996022994252558626987364403134187243114327411067801693941367955757687597867998842689823836005249405347335513488281058028251969689234894014670304223101360402687570917286213781084211950338206697749604670291324348052753759632955702770426749094804729586545981135257540069736062913054219119285031661898947604950191196214884403160612922058176619388123926587325556608130297667223249333113523178468960535989288845931266680227538634779464048527217164939186761811717378889349729582227952278291660970010503711468352581400788641452301054587766176944839130004221718599335776462996128216274243651823101727580197850073324821531539201045723635957711906173492958347705051483578372585852100344985179246797675043541007264600699142242224517837088901346476866210532064267571197298006573160545995690632484810766749828905337016598128028326374921286083100624895060079178852815410675684759800283535105961272933125498213066212285025453772543474775629000326921074942195268987071786992315363581530851025052452629793397897435615543991694887614187936968927617179164285264745528212859241942983491791414881521839534293742483608684101761670395756634852620115164023757222498800860540437112605554444452047371888505681575370403560080480688483725433166024353770308386082665494632197065775208931057435602107179604301797215594737602452407388251742389572782999182600577261218035004320150983659562839705011483114799965278383806717754149492655388653937253449749744147433118224408796195815802693600062689444676446653360472038102629997888423824076784684551237412213373354485497900622709998518586526684052160730576902794860349648107452118293357016632554232874317606929094683113731418145039245639939965156883319130850321308967794340959233375422589357866221598282249709832024293471433189301641500925738303886703833519246967978069375619580529786118759317347410073115734491210453577743147231767258443139090056502840385206261193182603656071045802879965248677259482776229767491455066265946858935010479326190110735982464658317523657336775131824766188177024861257097879572920699431649944335637771518753119300657987992018812704134073717553911829416420655143298138136485273069976855350464423919517984363670812393619027294945148360674870910786490456788329890092619830904594672809804002228849939599094107523729794620147194626543922929377745900123370055163458247551702566153276300391410042815756801114664925358001923045849192416431690879906431848437303544959291499467087424533423497083090193296661822919007829029474899792170663173895642372314265004821463892949254212641637875249074695053599659616521151507081041861271634118606429958768962189234068278300999212360617360999485039807947332242380837131268509859563487785193818112327841920468732798051792324190720871649802014141392299053850480393689868072958009590859136186841579222007594685443200623707644068191959404417589455338970021548184891000101252716021269060280857901024434940322319492421339468946261090204815895642433736318144318364524382879851153637577924313757250526383459776875628424354190659326027337517000681357355021683994281200261584691425417819720137794335677871925325122973918145546390133473437956985756198092878918419664437507346706356118299431335901169702479302886618241792609400146002329071379246690054220932673847672860198122228900358797389959429120941134775189935820524482369446646351921293916029503123411082498989571605444577709982481447535400592813363347844173349701403708479782990122486426018547257406254581958006165606577818955104694369575836479297373472400474267900128149181352488856569537308649924483417425540902868478509255892003002361467814251181548943183699598125859484688973824437390225280802338975148248070233990851713271451773662933999446082902569206724931134744107757559572783292172260121685744423465174328120030913169355983219294462456116973688049737450955449930557918591433561221318209481940144828705008683781971761418955007863971799163581507018281480892713799803768106842512361691017305412791867736270775745670528009046864456119712099487548095254579899392691808324599893944586703522208107809802940952730308197507995269767280263163771906649692760586993940864885583360031651496642945657089227335140116690696607756780353820207605857989692205748406973207603219129286902148044992296374930170673490452575128640073353816663261190184313142328154184308818857135679646831314840712456969565163661187677956131835841500981150143089101136548519883386543543529934460650889149761305048557460033395291335281229672127922903542295369780538438329046438270276356215814551620899196882358514456305088498922820319407780955048483470544569158573775858427722816632722822763347653324860013134443703769732892859818445155708521310142050022053040748097052857383594294622731133153372282894205872368085317849502547122759076937369571571885799772580188396231635620692982637409135156564981953095276573754932021981503472407199617835720897456352800634701824444776099762450573802572473573553522215688767718270077369883819403350624225032901414137640934659963746465802175762475687077856752438547585599358876292870989548623547007731748999881585253388467104557394948781337091049583083341646147721402760888353726148094594711146231249112411968558789803712259941563133459632071548365609571985259844004247448868685213201901312982702049860417492977244306396595361584582003656415842269763814978558912095635611755151316682771365072334762790913427861596661479297958543277046616914458018885730632701024655119213908394833269878521494206250381716465694840551858040193427549264480567458784805863220608345308949272926197240580552543235279841763325523348400532607299896546971359325547658719355561011668454777567531141796895129097481872243289766554858862450203887782167029731600472025090188450655958706461052421402843270112077968161819278675400862828506489030700532498269341546183103391810654485499271727514928387098385749915224360026703193362039864717368725497308635123249276647361154680980911701959095154136689713586770186354449153519222079929873734939069426586943610925725697690194641546049188283333415508445265378626726809781506062767553294784256942865660897270815709178284900367181888691363205326459732642339869128918921472712642771801356936068692056480701919912773404686696767256506982598624144626215880804775934542802703033423455207914765228994703025622494762327173800869523226182572306727133208092505050861752225713797632485946807023215649627075127950386067142855291285289352932393266173066558863644105688606414702168192395801650962569075125149955611779170429407816032606072130424647664988323900492056437234355806263081210907874242025630588230264637398748016681012388487897919980871573511825279249714516668837676865779318178196106551855371705750378438861574975564592706920381407221431291387055081332205199462445097724579712102139553123160978539725700205920398362141389349964953230544294220200857998089761326133160276635973525304546843454651306554504224124253162256268267801006519338399110559699831261867334419789679601005883671965769976837627351586398790428270061467993553993135698740327056460246223430771416408606384329669622787806485644435801862454647616491134991327309517724679041511740930708235768710975279933452754795492125432298116652205823720761722887424368868423683671052268798255381571977092279593316108283139779614950580591695690853868120431735345236695104445158575483558560511721340029303600933886353959307965257863706542613449636694829890814016761357557333991694996465428859041962053169891419700562881364946965640862344167390862873462095288013311207953360718764460380712478760974118385199447404257570332483709029946712092494538758128661022524634972113485882164263800637822156766544914540861077049796888350481639930243986580469890001489015486021624202285106385998298254664579092016374699102080685139741190380366147881547415844644624564497177511406346515199727831023740731944555801667065660747725541227843451609355839536658139602493263005369911270808501392738853489185821777257198443057088548532862377750086828787534793402922824179124960684660806699413924533241257838998575293762661831576044209364646836042362585416051431795035359918622822110792494980492486588194289229865368860454733548389901220536958913292275964082396998770710504344069721760919463994629594707037260802161504478593328090905852366232929508501410164704883139954061203315874813916214586944658220019479065718455950382074009151923905336342010670589022805720067093690940272889178457695742745789121130323782137743377659992077609916448419360913854262042341901653105707816178017191476855196874091444826057988159016257645660589669172642989553050962140315464747813367460250478545354539415864591144701930065214616834186931469710157081793616415689094862431050052726339583339138628391101305434954604159008502715529830435285055583627693605924941876364012958184113387949273464795717381784694742648528420503697463647862880595793457869757688495720014983363953679219485081525968904844849679238249400869551549032665677543505237342991686007558575745420938211064047085049832181056869552240979099527395870232546232045223171379156647448410212621789044968676594123907524024725338365524607365411613601725460454572157018574104242397841943976148387670120342349190210859167795893477439682113573705408829972502801603319518043767787450066724812219826961594637482601219237436963237446334296158736066743209047500150619434971517416432076130235211887417726284520970514365558180170440634446406586871912495349254417446371364112149297794192929767696950111731706535268448607590373968609365430635498691886407361966413967861102074390035474828504796065252356859724580412638099459210688457939365434539306918414760397697033198893058480109340564334489498585196231519611128892597611149068338952271317118642279427986968728125141136452234524852907202480220724034826869922654117299437145327957029467952835768081371760069167390265399805943669865263596954812825194424371920484943886748141252904195353773250651672835653559381460300690111040323799930858699555331147071877392306612879233108225922016686496360999024800043026413152057171417948701289389862498022018715974860169433180000905927846768013811579710326408495938674602475684861117275664803067098721371018882717619019059939519175965683140144513958082912669046426681526567452963100463457794389016221662794753556964128112006335527789857833237221425697034822881293530685275622631188267098298439815897871143694684207499366467059647357716421262670742043502404763349982751569143976899806091568873360639880665714815027368245894997974268564458590806755071733992886377152758261545011006361347941237055584354706522022395010927810538306237733428905431944598419679272979678541466874985277939905588365551659083583440251714136209578012941973624350223688149172974436020370602539990050352281169733541791360068890906984713425178090081252094961353966136955138024260315561348226611805281436807902894734449814519640193609869994295910228795956107061752271917839527408558771765086180402193976511732018491936754359510186504165928003588245361243951567577528861428906755395446072859133777411970575704292481791957790404273772304678209167095928032835558258233934826977948656398151170924703197112821504094725615005912448638281260900518008132835588750618767873755196125298865664964686080223604715608846321454552545039858734448524013081901839649204656504867805399187517262446576677959253799850412143316552022073553550622249330937813909535973147361287151594661421009068352025184048085086406842282518644726778461136984824510615533419195703672931006113706146396570621546733508620666276150911202006239947862559182800215275885406748347912482242652777940780295663112127269790571661221722024319072492875951965624579201834569592195260836138072125177350598252743104317505347194445193638104962983390818765596059951281590391506329532463009497582523183869889662959538462072552929919533583788587254156812127265831425849285714790445437717487038004888569707959163739608562556137907808347512790121690713296583534668336426636616937719930774551591946595494586541515146692898344624293196879741897280459170292204985691102500666664719995996135950268707064389973667820543878600872118556171362320066707311321962004987293155241783763010443693937636982792229854149573640806356393313981712744215530533303873596029149709813143671927804961637313429033081585879701732728553618199276897658623774491600394313483106382311991659260351694529324486796261233467595299982268490977391619631890445179203666164324439222465876165920078006382238241659328116708715659067836694993564847130799977103654971320417093240986189710372567900607483815665031258196796111953516783838783084326914506261061370679931840907165534406742601440348823253852006704237482515670415618411756917853699373294546138006015051376726468547464712823920271126338192008830509261558785278983991643652738302740611950482137314459601155784801475912714271608732822091610291024669770076642164668276650678371726522813802044090332637483255133686933418976112133832341474401971012837735771790885380384519148593989337543613243705557101354910437425800810251796017793764055736707119020192528332524134621236820646832941777432550488736509535704104098885852271751010473685037191674245968824073093872177501615525330940856763324368954179921242206719848697119528316337533039205000291678736916428229513580554687945662105759420851320054427948016667270848430388126709979557280894064008740070201202490045672778204127981161533696721234890308469040840965160481200673675582411324327273349977352996061005209770435100726961079996595964767095294998461300332521112103799198538128202855516021607572910202949915449740563078384880257206083844534851780955737261081982467190986880223418541597581394406381437903763259871589101202385381199460952639030781671668440301208181707379219104967710637542003751454111641534835847197249839904640054162555044183526578333195070126665355085124157996931019363580332116085952882336195824688044804712499700448614661429504594785438268666207308211371134459277788081329319302620009644482144893029016400274249559074601637659149553366634181929228534235544013577727089955381826286497573699537857537977710449097420463763433135709509066629503039721599393704589556023502168365449221061984558647410171406452114315729225465931003639136200226001777431940300216539873409242138782161224681977089047635019389306327719097688726246459078851709117891085503713107382750503762549072204058278387643473636172808541199869421373413919903409744401216694567370524126045628328111589059431368600063894699387280369896926739468042112235739025889381719505753574057557144481792259476719176451907292776097392848938741280922775436570934551742537150570649680306236363403256700714577677158779656253053337947255077445901027079509195270757691807911905046275294040875537298633864809169277107402826028327141180684710625811947399326229773406679963127344538163913634669526575963780910361699118632918821599981552965325840806729997284821236971417550320541971519223250944371970640545824154553137529191394133390508018418718179072803558767819669012189022831110832406033931352497091008743856470510285504209365397272491348709370215246961206489753985355911376726877018621076608712149342420366973066057737717482149710985294455960025660666916569682922280172889238790261371784365799417750297259425484874242035946522932530455028629568756884213790285290899957869770196674179880738110068881751268973095331372787564594571288157702471667894218231963048499715884471126989567347555919915192507259210191474127190069779539860094252889217350608146309002540824119948189717061598008237457626301955347501325664602187615050525812898693554532940779658092170983551155290682363613014290777698887313876773499940099136566726999387201303012995050818862503006683979098490239726415082366531881985138864579995160318191012990071807025007325369111891546072767306280941918833933031327896448788962662528441847259085545085207724445478048710430992100732272010804605216446689062208287986552243037145056133106434894256847360205663209774207880098489827328844735672505329909157795017190640217321389467238599675154103003191314026170282388926360926816936216958285201007600619648454475064202238443453759881758593232959678450424526298683618700833978238773838946618367838427827470383228383018297421170385389212818707882855656882430811008430806728286463229238875313904403302843722780744883767993477777086254066975322452663875321043174953891237792865513954230311701383341660386434247816644530604954287295190152109854150999014003419647399161788354593778191301110545095042235121614126732306449530912349066004245883946118844965480412483422573343042553625762333579990762785245838800561335082387040198943681119158851028505429015210775567948200337599502477845088475012921402752010550161226739348660704254542281785228314395125835367424509233290065349554484826280355572037079608913542555295516032554879327678021233556449789847259180416335816206766965713772237365746310233151765790008693488728931783661674963942577313900250135635034017707700269150895218856497719660901538623166712275726728190043624180394511370377870926227250451329612999130234054520168619194694920256025877333259168363511105623253645735562932734436065258312231017448053432531735052437043652770307664411977081656323264752305326823829458504064542137946749021465903881998056217701623649165194008902070715986684306758905769355619264667704887538336819777414030408108959152854391213743533941374518646743906982758284624873761004867702050706686543569721164058350200612963956265629663000224491099406404940690535525683234101676063232698893080961580944674854063008633634154032565377049504762905069670189324217402055634544654753924368856977739177624721319728903153266847063890000925007746527799972882675257429692910195284044159158594387275368288375243407502855447208102556177610223857491354812937472539403568079036165169451973259739768089159496595761550286859920873457872480924022677746056132319760446311557937247658808208468361377425960160276602957328778430613885412898000442395298023002709272211834067541418229822275516352056468665478792965757549174631619267595179882005552908344114264080949999712132365845306390418929293711075816924138058541993622676156102242013490229742153688843373744419823724906264720900970125395137021591344520971078309651615870217341180204955632381241324285861479053916947745467609541589795059026130641092690057274749767082831959269958603201660355510237939709572903062924751689794389351953935193336321529661658090510978337165605496422388050154923219264550343610914417548105830095439808922057945230002050744313308543418617077353104061035026069619814829814894400520107656309270978742092001464024456336854588158836387982606017250430566864443939378369497754046526987007398467718088264291082476534523143404939832717598516315078460988263449959107509536277803604054767971543330868447229101548869101957186092581129101769775531179116069020481315795881427124173356753732936282668869908470804488384895131411965015903212655220741030033964846912123300364389402476429798933760849653816699735595177206501573337508064949291755120825773523271494745987450433725810297155020903452392976284953336080527514489176297861986125158351073967544292600510708624317037851207209796027137828405465820761551495866809107265237683579514276732969040994297560403498685137823622168191037958596418700326700691408178347914238792439364331058936940582172817382696489322781965105186522893070807222798268696842751254426599202718373109417687100328274840056590140042725789539614729467417989881162792750416952420709961016424012765447658942917929528580615589225096475414982385174884937658609753454463305642450059850110396080142854175786308342897216811936469669972331466558980686264859081012212679498901617359298326106089715471102127816747269715629267916548989926238302361898655966015273000441070264332124803660963358570323433670907989854478758753806790611226778291007468398914172077172764770495085354921200987892898937961040119176379107261405629609618100195127280116459426360039843443331921379590308782909369201610823359545786066809138191725525055934663666642702524150333281135071270148258258449833657635242181868559317655442400293807769777020683976877245274753506696431540690768812441787085079596015369152823111583998552524063818187906449989577095735788771807867450939519284477009103145043642609285398404105294160070815677883727255937254866074260707920341342649400029632416323972701127720497522787935987504199550911756718273797406067085083113971994382108009251340095324891566365474934237297580116035359607650196593314499036056263133423618607279274434802452165329970443199592912553182204996919063289088478330273606267285590730180323425780626571142481720877007838274563822603609973096727063640393277676665130744404467031090148410462073833715539737356756213653334238601608698651648006417606155241407569813760848000640602181651749731341058482821895833965488042461594203767476695140819863844812614465521574333878473244223141218917984977740818617504608352110867403629130720781050987295222773244685971928709918995655425313619791291880984521980190660922922178038197166860183678336217019199635228040299688402131320563771502415539524206872181685581912574843921379359877231534616162402941581742093359717885608035501630251253691010383477686434039464366935706965405870075472360423639481137791625388023624857341897281856802017041206376100660561587311269049204341696049277881861250132652923720859904386160086919722304992656539158894086449557643613925555888548882012954611798443836161744261752516938347186531183749251142287359223715287297666344305460913656003430813530583309034191380443910480466368933341347312695896859743114987919325267560375355056299621492109200485636776944144798366349471425709010099562143698530330448649257307448021308186086521187429904202294583343248290888433268344307946024104552885538688742196904018484688503941540967719459932485284745101659116434183820758932437982580073648532252097170357409998473471559095498886583625726352403934075652497374951168547684403721801692482268413693797859837702019045897848832499453672202820193328993745349600712675563348491414715962368322189187315751558858160246798857356247118020560986808057370899846795933262903907713701742150626782305014057833815465884697900099984286986370240366144965285730730071092261608188073122328258856203444355221133742319557272925865669124946337385769572181534358913906491489303198760240554767414511558035496992235107883513805507871944878812930136018879755870314664492660331151908074516544338140558476207361320697947393742853967647421231440979939019902183385111961243111846308381331553336422813261892038495849157132239291978308273644988680998473180835461908143629125575782419909488447250680430800730104145499514380453113415638343169985862244335658508845068710690466968085621929090737556535932914792208425477632286264362160169103909325910347252069664241867286171347478489483327042276766509448524239285357299431624205703243455336295298570741577024162556139432995697792161518200449546083564758401560703146416778804019404776640355352435422787984264959291081963624195306402269708852240042725608119238130375303921971862999243400641360652612358215374931653172325273248453563105598872392749681363591017151578438040316032286891595141994546611258972388652710838130554687326360459638269300649504733232621690048818275308169164966713226381751768106520858738175279432160014354747586603181473351151442665978206034207218327216213338873157282131808925602165763792094854013626949877130026362075526900949524274953213226123932487511689360450102671437487652644717893798960413910631299671512555459424792859049423878673243833595958436960847975230194503025471410063996276001350582894290443372974527198338195144709095361137446140356892788147471965408768093306868385007959090303502914596907328767813808375019071394190563467404874403101211528911807240851442796303939072605732539864654402823473152370356221407899714292548462302689168105343682500908460680251834073874580932483524313847143608248938179741776031368537925916098995764946288967627058332764737354415868597541688354238344388043141390899657750757375077313113583144735964061176102034016858551929382733472356478957020554216785857789959259628665139523346958373555389798495331988117528004058965869583097639713854245846386772158911377746243269689801333688058769103383104083193174033527868864251418780788288890483198977030949753536697662863517731663267427882153611692829881582381514585025236885726561354366009379830205166390957995294857482300750556743650837421214241099377177781296514812246113157131095645250259650778030065991305284467338841394861097904051909277923078515449698655564641586320771217856260152418140138669690178830771293735173629309946386089685273390012626765285120210334136218848575282095997692190088950578826230954877794511888782717842575919879987554066253336895936415805544975687415652117686759434933453522753813504618208046139821074159244343609906922051896112786726129320292913892485967884140966128941276740677924598141571485004863192349890919557067069981136295206333825145858618033691164215570707852912421722292093603526186421432572741769581343579735110496872638167483590675471812557869997002945461554700606258010426470844222194373339586676337710303024346669017272284214857290284146558348175803515838584271126512298463439070550253692451038015213075241682843983640972141352930961297119334143057838356643067385816559238842882830177732782314155866736547758010542627384143196334072504881433497713972722118057384500805249999174438034194574173715132570464271456139844552446010701640022168619321610182860541954753511500219224103245381884974895072391328937459300384462752193178078318727836118813856745363690454512400303827487033473872922857163533344480811887497610259910276757332151522283741146219924789339761606989586955418212113012092933349734357917687460342507963440360063316964189481134810782718115594365564079393089893565493023884283634586409433674541192554011087485639237468655307642484401010559933837990016456529301646171738309950294879042626067094034484031762103572820248229795713440589881444911765186473955755082242747578433927561620564179252416819691495542860902211146132474084146012309440127488384121041062247548630674278455912419298133534083837946357571307795233000503386205926721188629208521169387417405121396361429720982641792479181440092544420345312652049540208523076011346661986769318728986790766585047787820795569219941866105471577414859715840548682350186632973648279326504639274111715509507234973573328853930095295557796435302782804833265658600059347004212568148875544655040510566504661111158979898660602870417163774239229068763914439163047081737950602117396914129130484497551017885617550982218322876536981868450646078301509794274123041443362182054270421196053067406651002399147782341179067402358571097582709105952700633071662401467648510689388439317794182753206946167105042866980642588611525581842505906862679995012579333765536562619383983316802064409577835824238172733171495455263436951333992758472313011576534921495540631052305867389800097099276738740988887492830143056256720272607318567695446654233194040034848006326513062817109833603316468367769224881820781204462519128668563085144920988945799583759788259562979128555948893631199808070301031467264296978863067413784852568080518892885536704688753475780669342158614045045512017591181671216765959707308520357038483103308883182319531589421149421240793901279444002316271021287709025297128245730276557632824930406119356443762976798694678727698647369346852222530361439865626241888485666125803707639031945766539157749327762599467478300775441025236658365743448698163448811345448783266162418301517059882521106452891591538039115049261980432756817827744464096518965931033772212614913837242749123594504944019987479427281495203874172542200112599492718018490973308342150728303418052115357309916022095037251533655195640978552658955216470831936274730689480614678999958153176341870341731851040501649270498129027120934979165271504979586022880198910801823086502383954315042801164814601124425946264133207911339816727720952829945496731607362643746925215913645269156434963290688559999609167903346379609938472507149230847022890887447489097193489974680422787164682638125599482878349652645137514527572286985807096677491104868490632045785515678175082414332733800244163507823689106236486457815165547295055036240714438319105667346387027249561076215073631461250673300939401759205430920820757323166082546639428722475233870824070723872255543422093606082123889361972200494094159780544336338394591903605217440504102283485750298380861208963134576110442381106592980196087326084548526109545535188537254674914938036842853644390843741471003607214143715285716583051951010361248021444017306417900898437896505833980759040123355849904993333873738137379615311834091548751441750352722679602470664854019017922713351935111500390807499980951062803081850114550703908920352256222067354172512008606957915919573925554154564033528624997461935861189283270863590758448866997529456308472267838177778931085455969685894774662341463169818352928466015020105786037231041448387419191703048336898812890773229088085659760250679587978944578375363787478289477420316285618803479786446454663358605967683517328284262035807671238333402579340237908561437232217975482521250296684728135471076513571612612802314446382172108672502567089708797450790442439348155535444644375343201911391678117692073062382433824161020792534650505124564471800585943098751825659902340834583126605796313781230612364422944794498675663156501469794725509795652532509176863605640563767592213892141314202986353003635994037771853818667057249768358305775093039163091422671497522259670531803762022943004958740142380555767707484280536769288227987444349783269655718619431302737253329502042434078623276635555342271596651000804339084642013010000694237945392384670430565738737555776221775230560245946928463264684612145120873093109836627878680067889938203180338279435712218145400246478905700645966521818127737576918384767900040585417961420611418615857981856314085962118708639781112391710197333051580655415058368446128976358395828212322257971266623480446198475870454019996519312668286158575290717961939702095823678645920747641944515777059769287381002200775777254248681166358856353451696971623889476249925686686138513755610024268448221980283812235320230182343696649129360226628888573030440452033749821383929887554738992644985949951718072723831196262220678667662668119441620049660159361284817530691613857763450574734075614316294262736881672290326449759437640432003306305798804511729404890318562556593911150344628746534969264842323826172059031757295039623949475834094488632309302841121414892879563148475299483228762714855601814920806795752702238546791274641201505704372571924370324534104517921542846187033329650069926863860034958539492714841166131610552565607660022273574650865219187479954268487389405802736272783519067484514258931046116786160795490803263347260610095916362323705670758906283856667290629577141533406334144234408598689800494090588952685772300312832031461601022209099880151841393316458967382120867131166244831871399880986215243169350014841705800660906896117246472332547420556892009408312475684025474217672918317758261018408456554107591325719985201711253619278672007250606561050040364996032103888229225445522657239412720074196507108955787487030725403110239242294734001191846023531068998110961662712258598440055277494510236619488304202237208875026873948794460465668239666458289541384837956141250845664655159484992461900159353419696035200164729466183206222494513586472511329334715022675694118933442996506157366973456969253704119545567658359487021649032978431974304057475436568284014968335861479676264312917999953770678973143339030496495942450109549393192356238639913049611444208646325977073634935873840915423404237192188367997666582379634116487176512559947325453906340279009342151815781212804318246497888324304750904916672207455441387353893473688283209333014455861403389800436936965813632465188852195518984303165257996303614178257574031269781616899863113396364504231221099264964377622176888254277300487474780757434807521332020460781484870656730680442713685496917864688762999815486938331515437443741365628906514380447967047582802025399482874350671441595288550866759504721511307924464879897115176915234029310542659607505721894505996602133229647864155048891362382919090683291936211828792755132670702514162182739354919033092540771974569880467419944632895695864899085307045817832573974791830110680853246272943625741568099171206127172101200163508099230797500737681886950537774458289208429375364564697705244567583298814394896046250370108050647946960667284756709754325782137465599548169210623852831738486357118831653687170906055396608405916030840572338382433017425034046070015749850905000923014994793027584828408848637979672282094133734514177595360229187640803571799872893013965204628677097516908489096052231240876611485990095838667586458570943218012197718446792046299446637142064798767443360965021527165159343687761551621673317093021280113901825216695040098538041627155388594471799994025897180345310333728110332302823451878388481114658921379500112764023455559971718807965022272034617698254787181404700742093070704507175978791031954387321412069830519443817241978977993835707913017005784115500936466168629464449970969507264726561810183521082686764113745674896146664295100515480144718044311738276666453140251619929802479993895052520186274599684463011704509674296303260337925130315145264046603099442139596212383204614983673240008366889257429101082231729435910789812831972692842796503662411011241918268820071946517286969796843983036539952180474323721436101011273623404950342767519211556628641259084095735863793436160572220786589113853157151981347366201031145816989703593331454801673886799640399243397524182865873199374920886284837512074269348564737462132986814436000346167868391697786815904379427817071284173757136299844441674937764801750970030332363499159312884638597362147122339376366406711565437245714417401703104317689524403329847080613881045897817498576437606146286633660979722333295883416599047403374626243706239142293271395138017420493546685733741191281504187389392979452510748479068271488722442057470234496715577791938188443562729044325792479826222193393970127951608389255531437354144457606236510789109502532984802692168194272119346795606022934402011085077281582649722074430376248558423922858480779088442818548729418798011242246509719583350312609762615858790247121747311821539449427677144314715384525871909321962747067902336874459497923181766992849959837458808464252074727635642878454419677999012641896126870736565714410629528031695610883583718235448567698671991390782909624078236464916552018394597456893213437206263169354649666227993351358931450042891124180505470626419680624828693431430090921229621821899088809934357880876302553718177985126514078457297196828019536612721586259208788526505632545413871849083287675325707258034919449833996993137024142931156438091467108579330037370907904387004993530643441984015198293308821368346447661264085523279941838754909548693725984034362089046591908816267399623419111382178193495530411738979042419912835098914254514598626214882119398078071304795924469194682593493680600792226686515357103418017617232465687200090751427421003298347770707925794072664645023072090914885334698093606980593099646213303465696611109677269792572905401138816609922202914614604911541705052363749659704426147495653741420204372297592848797378897007728059985473354251017238725492467008323941620098541313486138722410431931564188406876575966021691615016128627917487722688170816294229100704503090021544486421655525818926362004792696959198711607171266608454740179413486967778042903738162475199891584759822310640123173563989275364359861313134639836900931579635361003091110107282539651760478201998961047164823665189389276921180583390676702107381118607412641236693263732024054963337499906431582297194476696840281048836167930223408608060733933477934874801636782189174451785659424756979415215197491995847889086845789773680070704038544617374017986598232767023041916182074470233058182931215003617406213090976084083909643561266782839304617745134926040220948051545083517221539757986542900404061455664254154540057519166988778016269499397329915385530152417336790330886160353168923621549295492633396487328992652915594219584543711809223702932525379632524018832886839841677211893264246783682227284456487952844272883959439211963060476504058225449021322375879769702569168908225787587278390134220405405778106831987692994928969748263972219840813350391680900387877686239142818380989455795729421499721101221388826600801430721810589974920785533479015070622952905930141741878994889542730427087074879821181482606831608540036272869614603337344318915835244638801017961416974993680160797219077967893662883192496130121729713082786944687619690183408889187889444069485668822160276364105838473487462423501029097930844975247524077827536648106835611780920806920961088370870727746377263945711787088054890566592349190043647560089333717778576164305014452311947693521344427203433485361165519672078809962036069106952870550604199330504457176624209939155387787062368570352809189935956377133016074610374673993871936393422789420208634406532079952939375105244806352075874225767267320310245443984157429535247888066021768091673602645305888339933185232669367713794752086787184305143756714142590607067561764931918950721409057608287619905751272152028775485255475744236874223859315229748100333638476600185879166757980865836554120838333858086131502961600885352213694157295645943389624424227644132692409313092792403156499472683417533144954431245161003409875000904355715726935395546954273352141507527641671015702993996909086952741176275086028562451689523490066810168391634717457121811093479982993725992806953229641735358734223455007500657138841346083200930920479934619977467130821667233308416329299138284466445065824908504083653454244230696874102143358121042134110236570569749877065877151428603916902025004500281238040425787773241240473196299110529723598135136299089388155415665860352802457512193952403772546366547057211421854415632441195312698575517039391249625886724708167589020923650820627828718317449613306437180964854506387955515821125857490893111766390161950868146292216711712792775330203857695491295144638391114269789923383864215752986103864634565030097164429787562938600236686464533994571772080207346599700224378224210119681798463844881343508872952552606544739290881178569899869903609120020307984373783817272798810088657540190272344286810197077194868615565661139904349725210143698456872322739053271813991248828297115860568015847946330519370432859660785532239433579686334149614976662322297053170200930056929203193039798324669279176995026856179943781712174040456651108620354246500567950596889708512487124481132959764320164989119301886204447168469218792879286901263321543359495339858862665491768523664837753403792985613127618987419965805563087548394408191269591542092388544263768435982474038905131146453377886059934108408023978588313888584967615898870739305948560648580991804597145590474680765547139637860771902868914560523390802161471723820715732653588916530589227857049820277614214305141768107288709351088102501834624701294387680361979183197894979822333604820073727302567293640574163049291171006156317642445881033381939135774236619682079953533504002072897073269231765408127271726829668517053956322372888803342009001701354549452391239562267875206384022487410912353977642913737174816681041798471662070058551219015538489717003294463278201251387244336117905172860373424739023833628140965353641578441367596990770926108715593944145406656245642037568843868824783461753428092494873375114117924272700834746905473434954445328837672812243811635403942740217255346739518747509553337075359749034245552900475334348271334987576087255361309158487060662671565933320229922226942588337724291211821663572868078137648718498695418202857031854986087935696259557780097575298171194523125748405168362212398609310546023413065781015179570413945840636570351385027014757131672195418208487041110028721391526099572038602341344015110420937289634377462959332248877404729967012952240056700680016789879594291374578545706330805045135845029701878231605543685584434340195530345131397290952940534618010103486393363192119121651822573896059193363599748343581598499270323482522080653616747908297253164819678322671526419709464977752841421807514535197460222345576464376607664373075086371163027360831856437946850792077644714430827611921388348159994498169845009696277051603348986056876808097595436166570407459292175419692703729166607310330211248241119393061220126589545938640963056949344025939612016078274628452834721794968022113915251606462316122182224761417326708580718275309599270062888253145910527946797001718557657316290243652266008982433332947477236697431684009157105378194246823127388549070789805532516567982873552955475357820984019042891595576838206180970374923183184739467465540335641021911934105616823479123079086408660137141872545798544203949112057586905865545938906632343261177069361119115783067555434357063224807682457766232865732580654312761631809233204419823362014428830889728197816284089859006105071657098792432064262522603952032770970544271744660117455346976703950490290738982608383673877746064286537650190351512677243683575321237895742212136142972534826352060973140646771961770003048990714868565440939494033350464380355477763134399327086619528590207290241254761566520493715596627059509856504368347021909080690050711503835356021133146169509133108747983190549090038544985330985296311794599720667618776278006109363829204644005512264848451078762300164309681355734867001935616883724451517955488942586282113867121862840425278428619627600154761925269813460356606963338165542412773014002458995203376581986420742900842946112520440877399979585637999122282726786174621944926708756423250874847041260895974438796819607664125086566297743504746305952860099243769045656785408243664111291489522536831997210133895522352560831476844649054631878718563441439489161704827105413673137458000562833745394844972550866065112090411487903070694411782251385418602101315378798977071969950717968927957581979108815417897193633658250060125026310840085180572128283560501224834457214213772911292856981017899316366517338922232312907592623684550593906015203661367125289640194193575105627741082849622122850269362031812688458435061051725995757509565962643931977616805453391694571878970495782775559856498896352323747604053932214166497072414944579262125823244349293629593843388793560181221083005895559100479956149862896218287578772150829309038402305138228958602105427278088830268471311262102818040093913732373550107446242939990226205536499387377682811560294786945458864228705591850013390100342365418631505686771599111229360321113466932148436633904636396053527824350370273732961266494231113885153355966479447317859800023129321596842537453333212310031399984918409725688432616510045641112278774043216434459761438042968521551896049476873324628655064240101394002470517336379889354935931363721764893333621875152372839410979217902954334020054873158162816416851128464939316605953792992222053443501534098533253657901754609311247311105466002239954866247472523454159896450061258622664989171128638346371121091512530213879139612607543679758662212149897931213128679475061648657864289697843367120772554625199603138581818168099334897922131186551075797856874446189951899970336834600440012475811289611514429150012321952624166013783608468238401679057860080260028021030373703498606305788819029170035515783470819051011276938532193999044190751776743742282516891927141794531586674792983999992477869845861508426702453392873952064353735207304147459825624388826786941967335139047339290480921800371521738869681557326715219951480159076915602464434493876074545768006178916038878425042025226838778895602212167095366503646931566568195297992643472283593080911537431463836968585532147486555045315968847460457888354717177146487090617763482040618877363068271559126830203457129642191206356058431483465146888958795465056993979867723463282229129655295111565287434510714017294435745464697716525210363926476198940879696929791119257269974023950893977735190027091964617146921894506026311849702657092582271290957447972655469307421517772787197567986678835547228076708473076049337945111914695054151961737919238279596081458652515591370531939146375419239691394932554675313751367223880615253117361868373632478136090190126858839360712917769098082833924541461981678621712425462056132729995351320495970971377279249381442387629444091001797411959706911191442600553510997107423950164254951932279865004896680745110769481527576939138467513324343201804402313063602630307337064019692851338683579096383157884046270434179800044761300620773158225009832416344138918343375525992609804278817787627328638973075732850425292013090119328086754599191521893951492013323114707773757325279402288451468209557307182026765037988442119679204350798309193067671318986696209079961178190262504077121958173735656720485034278597399956027407603445938415219352878823530603666648041914016381289227472373332418656982696835825765384675929003330029540958068824229549098894705441785479176481429256154929027209670599888697652717624813635815728987808476716796003516942936430967306017972092993966323572616350912658516461032508507288422940906438000869129779657268122881053958278308563841816206972381882080973843239345517811505634276219242860613247546893671900038404689730622066992693693617696861721792888203718805815598120325679041865304891411595971386095939961843581071586434466337179518148341461091146711387977900872316835125444579563753895471603101783014855216216412051821986269868319339967570399412667646978789759748583501210801900107548165192192999362985526314261520764091211347145922792433034225807793585213009718065182935264671760863727109252117615579004483534294853012190791646525532769887289381366603691063420051870967106313773027668099296190281007617185104064610882083154130386673866416757353107230219626090281463663698944976147833328833320601096124479207407611307511560016238903042458248647412685516672452071265096511968250500001271146166166320403186745438743916827145539501905700338328178515070607829699577866970689099231319085626919658707068056754871139971139716625514934504883917780918082802738699556168215213972840894348848228789936075639118205388844008803448873730359792768435547834436909534763123805984512783532450059723327406635324224923685103818781275644865458532087313663517436574076922357315296267097693041107577767614747397853853339471594322016706852517899340075638925234009996483969493772133765209107489133493342446625215492365734700913342963760362652565378011126297562219372227250121808833910881414429942786262297082357538441039181527696794241002883977519351073353220514656942025993943281927790344614896618855858325046264984882770132657532828569987802017071653595450687772618813462352896525782548820451682333802842692474252217280315450158975428851519285038878156462000984603634104177135435831712478167895662263493859907572933029357735145711751742005577906262191548174609801368822085882889787972055752719906818400023970722239470214654880467689854739990470842596551278797083649226124776619506159602217943414502070372569739227546502546030187842074407715686253952401954589453251726459708454494542787906063903645798004254679243453987293997565909208239697306821203835034112369108175223761600217718824619959893967901519245369909941999195719799663263604005365490969662730642824615737657830207101956216326040122627765497833489275620045992412143158455112791307097106662737988593973688245302036990199805935072878736164987661920125321990442562456229051457126184372851363503573272501098393448452008279795522935748756493355622288627129640559597566646102570649879386839871493301822862846361086343585925453900788567229739535167707967869718310316989087311488992057337293937425946602486983602018000338058109890063101255799159593964636772832201366887617236667027687584857507505430770915521887982721286226349438445015321743429152248048876764627276667063492137169763480802680297354956202259945036569468365769119130869899259280842582461547345540400195084557345995804953359456192758202398434165546851618870655943729048642980716572917345094487510229257319080248581767414604834988331548954757911126065001629382950119195835942475635245581608819663777885328561233384695417545873321278354990178371700122471626525647103028442101614319128442515447517096298968668747760368661508593808262898566484933644430128636335844516747700382014907306255123428078745306354107776914141700381773554080205940258169257496673069972633907891229406392124103866216300097298900726703336169761902283056446260761471189494197369152825960717086410614110081111729113841561112328763823194322953467003237587310021742759852016337526508127589301263638188191382870056415574874224310714579901601887148092184839831408462973058199437391241988098555484023387047128394940508384499916903277837798524638173214640654545281554867158365225644841441870352867585678707864598204365961220053117891354245837615712983527093026826594223391626276441983241906023357507353161733818290239551522501876103191650010458431107238539880764114095866712280639366807059449164803998322409036095708904577161303238093346616550446877833790498472195930074691062856124362560912028540407098266525033731346993046424184350099571459602788214950630942125650683122858029305820318984454156921248320967860275609707583899386758857248740466350381460742769845284933641579659544989173999758648359718883480374283023955490795081121565942265704353246505232892542299469662869146725085629725832069332414335819308178242222894905624193557369282173855759120315225589328020685337275655201857186513595605307348001779616002816957433239032366847524220776770797923456551276084773474179738763541824628861256043914855098624757324426284034267758655204519336524508276300855587130243268022558420328903311652814202127347564582143436003956609327025696555434856585332368551483257217515615153709895199226250726513649443814895896979170988438197096702828698002119184378817412607089425082869675452909304096121799843775042087060114620751061537294294031722238375185142324892232662849814157433549466650187602164570367951826567759004292718616976581954511294634791600947726296148971711761564829029729447564775624018649102458976904332483988165299367308852655903107260325997356916667507048100391038312857346510012978809234601149555057767635846417598440238829291476149113929083796836804121616843975676046747598220891890912764613535305300720403022418875401693003317856644804822658957566169987218051130362491049593325647073979426485499594591376322581323268809900208259001901806085146705058708992338304244316453845691646539880490822614126477140112740293491143803983276929730109427640361163784712552287887533648678580039098517454566153918396644670601457376969598390443779720064065389284491969473243512820763543826482257387933709553117384559396098709177879567723019191159651474357642497520311542847615608935893197453403750343557973196599831609519164580979344126331021644207725159877212378343471970686958906521300657343204779613385840971659081864198971972014101677601682364650075636438282588031202522803225266496819135685496726537472106092775595389056777125218362405224335008629189717083847632201082309676155141651595432351526699454256999031800927357679120936842438227311888413451617757515038417543521733609834772635349408727219677598364473095886523560668182208414983399796815173169391853557745081458675661844628745562006617163979091911740962637062546996428630612618099473427563976226147250014897509737487139956011903559143899793660223309713681590996799025665305374424500897398776421275162035722046901997652692285136896307554887206797052505318843513686845673623388959257956297739834541097144749841988914823214898535784536040280929648775251603849506079450972683394458116477089864451680161948575935141724064228137279857434368760747758467152658309702456891082138047075871098567461732616389343793792246527433124326873664323679326114378333558843513540828138467482274179299493276683496599740765926275015070383339018992216520488196890280979515079430799463959593229523770051830115438989800555067276640462225447163021354768817731885365429626142890639396172562955314745229430324895931489133809952590478421672065810800508262520317801127965449302916110861318388834740730404943110590123896174660328154595503940048576487259715713468125562106606790966828593988614666768090318901194451747522613824022442494317584546881744311716188631231479428374101576039490010974794677702980699539899294384458869945035332081453445126772315641403315050436810114946681785659851665362790794610668911918707327989584557939538447041219608300727853952396032348852012246173044850663277477113429791045579666844309799414623875662183004803266705198512216678951949962268279860360331151199849584528049595381089059763763926764534421579078211160917045211811648032276676873067270051398903438978996185885779396309930367572260381688172307091808303576605960921915189126319189732759758562571740875159856919017282804622386281303658891110298099533519145324912566352359653323071764518656934562090935029350772866036145115328217212507982543482011261741884399984022853162286582605980283129605656385627415394713020935183999802071032722601248344275444499640488734769513778144776417510780750993744234042821973920805152965931998465084125007035290448413748206812325703789241212735111601157080961958474804929880182386184411743149153441510353060344639985957437525820913284519465323398343576735499199835255752744379823589984047390742282375444148684754315037197805855517143007055057895051718051536473695880146742752653864071321023911222164418277279497365236991361136238363007320595443938456460278700602081804587068212504097173227803026121057501826216009996922916438180145691166680738928266898162869810233572039466416581679957578482934202309791182684316896215433357399322218651979645681773505349737837174048888953224933185476541519616404661530835630120280005992427608962783463206597857637175674218722277280977622369831846669866334952257174942488445896254173830164648253333408140890115827294320468334160913667984681659919645771122617709538653436359756088504512091877153459493968030785787323402248587917952127239109479684036625180869583552523004937305091539964828182057017772404892723531837912227695981874463144385647668745374916850033231792857601831080825978838040365772317933221730454824973704852859341741944422244512017755332037486065399815069036822943633066564385274062162613597488222044163651354531755051928995359029224422479555937449533539958586922163905433019509314396815034403179653370865833645537837528087764023973325923998800982893024235147557139138168332647886327469232750692233509229869500119026169603558465826644867074656881450942645218138387070224203015599851720645458155481763093850525504890686592545261638039361732263761417320408015051294129060945542783144456841679980616393452656437032149543172667193381741763638213093407384575259496101833247985394718306059411080382903369896450576706165964735402005317705421247019095017856366020115237967694101249754510782534189894793120828567237368856872445433570289056770600102865613204709861600415611558128039505406738288703555160230390811275773196695752641162946335945893660767289188537032410357360881930435169443097454191011410223427010212032768440912010067936822460148440128105153916694249103197347170073375541055486098364566705083042235908708621555009524346224257126210718811588220687736954629177333566656907019842391842901481511795947316221525528746270766087596916734680542838183749993665536257484554620112824946502322377525511001960437918590189259563646164272768232045982108989412142464501313459185611808316583046973633201614246915397659208914403515678157568731913186520887898345588703972204733340388558604177425560666708565359292400073213566871887549614687341202824780608198602048900111413188831035620806927894477179344815576008964847502203513271654754882989000899981984900163953883917660273117782616267853862724402527502340399973919799994762275324698293763394667717021624072077280656098732321033215212231914421989495583315341850502853272164994534490819098705848908051993733095124477054784560897805607803423532745820039391886860143671973753835170353084463576931374588589564628923517640924013193856896993880084708938818397843166076280443023492762202887088713269567437259367613143214755570184865550809609095884617835386429147332945253547638372800905236058966024678606237390634276642917409021800689293390048288444043554008457934018836476752800476919002945825971899523699137379445814026730230682606138474190720965975359793748132881531221631436192250650307297339463654470898658046001806608685199531025832893673958344124550511509160846571539494040994893053878277949434746537545840766481020592164550764277829857467056724441154722751237600033399104823534867963688212297208760518174568612530081885057963740350883012812841689679538366642789042141942971878738722052114485170160636173967489163848162161215482966339379912901458960574824953317070860293073127840967440357607518246080711023678355936810055823631217966122425723969959575270519871135786146370562130668172796616359979157623430735764253613477107206500707354858684249836545051095999751759781449211888244542574225179661244754749725856120614298076653816707773639860969126888480864189319685531910786548209214226137130156383562096447060971522398062345319674503918722035821905477894566020317741324625798693358231740836256228658701365158465985418768334128635575839182743690537361779130591031111010219434922346514721023195872250128304117182484021221472647231049818303958556838330226422754914497975329972328088283381151243319383070085510642580631802687103024274948710071770285168896210100643077180350179087190698256738610913797232622551600977497468866830103310244282261414340979694638470875760500353962540118720981273222151478175353753142779373210702525106663163039321201504613943565276554555220442306020851316946863044023671637362831231432006951229732715815545104285565595144445691660938783881916807521839890325429796880098171814875437676785630610353785445585499534754356180771027099786705868491978577707299356624279234298329992684743530424236350249120583080494806541976271531926532410497608974167660654924536789334277750431455638315722991947069495208443817988975905461765671637282524800961230008979783697786735336485493710494951303088645209969510025506116188279254519850551051288672220919924314607935919245671936773421475754733924123705873613309966679679454764006940358128151812143526334836566163863596533245896822231688736137991574646984446360875589623681610285152563261442904848235865668059292945062537122517872660917698697901911543080417095463914887983133896213991278691410493185247919052641067730964803643850578128784929425745439970501945944074613212935845299944864662749664565354129438849308386512202995296140365298695902562532511540487630071485318032415408383608797911465294208981977286314381646327239179131636894241848340402437751928247446282441214430330974065782011982958574124204470773852429946099920119367597648856461711846278213887650435359777296876950404184334245099719817619086716940514839941195128313372192651254385555079603120864965379469039390792350730457299885789731273181099573537231783092491843673441229055838708226524588882073485010051127504733717376026106153399500704837535231461305700645809691627685749245979124461777631439818792748379207884885341824156144821495102639321163022260824920913465023126614164223337062700728430950992247977370718956922787591299900495834802481725603987878686584793537033752659654570515238950452098535435284822797062912879273431816184361347221083723137226837864968827659237100033867677000095726697791699860363643821412849868713531211908636230354334062786531609891989732873330500465424547347388924360538490964337311529877958230155217082839452641448848443409722618559326629730235678681414988748696461630739004440632312392609779718757550523675912925280169395126966892933323432789245469207214594083402146218634518354129737391412189317391176583495729749200428092253706114129112087877109515568641661666355558568123722890492677434592750685386230763706365178944191074675554143381347632910032392958575278947060705908339411391750858260152542270677160583209574932796995337542086738116647728360322228042064702708648858611574787633501080953486898646649170038025994988623246971562280828716559402256999016177596748645895879613236193067041232893565230789998413234215396333553630830052120898869007890921428225412743537938290176211555752236068065764472372392733453972311927131489946045393016952141714268180089177566546646790629434547410779880198310203622036044307063684911026477071436968612637942406164976040589396121182437439856126812089330433304425641387010142997131922583585745396468384903843324619611635735766636075769824409162789404618192819270675312253374870636291928845125723753540735043605888836269685754376539590838063127358901234694346187970809616448503772675608496039989007384784915047730082980475430269134498670033078342392986657969822559328226418619035423418362406152854789284904834463778241342779364435703603644504352304257861749388537207650825484907348590152128587774768460730518447488581550461149712288244906203471570762580036572000305426730534294213645553953031401541300376164815114124386510713409561929039392967526745438262387735940729026070238617501602749104781341743203509124048764921080466555075365436629333102468888827041330533085610623983683379215453816160450490890473301172958852786480323718543903562168181716073616184180465623138861713326895125163572258690841360268113723123257906500568791989391254892042323251082332918344769551998596607945467942014172313847403256187122348281556325899717427711617928055310994070419519321759682134520909759415214670027235411706573840856257564395558611721759730694162907833409545853539991443115086611376496892056045964971414199049830794799036651869060610715035928694185025323287555182445073627346116629730572277406430373714669882866704070098232783090573663194457253786019431510948339555716950692661662490656708198198001035518317456492264562429102476626045450632462215229306712670935953594363268396621879617372692744846201727659384986054564118221547645531965968637488614123951035158108214865786739414518669776753136210250773002200219217025116579064072840857330481541297503427469056114556060523824503885739874097107852809663507371154342621233352118140855093819625374648900705715847694025704299410297349519909866805916138946834862239827401976865970300645011766011549094179833609536499285007595727755250552876330797597128675948281540919238003832862613163976448484982127405605579619384177980299771901557056227097955275952422796704779665496490590370297597643614533362198579597317478205514564822334682680058921009938999864392657710445771234480798688907232583946750289090286806820544255348046243365187805856628579521896815325584820300923102018547175615421543352415278314196135435441075080265017727960779820530421432506765695789112936676766005448009707234015644249235924283324982586635595397621382333320047164415624482450347969037146842954879450356013778272761912038612448864825388921270964208688066777933308821734445589716358807702964438384265771190092338589113457708716726910286408003867784062074303633650553346216040482253813642896820972135922928449720394425817884868949367488810739279917832593925313546389517629148361081773492612688807716653530166936437257651352279561373778722113032893570979885428646414397965851843010460041245070670881847481358203465685596176980369314703288744999875661782486670982104730126979688694266797914123933959610591519294681174512542710919162430858518402838634586312214934083628706157801840368395440259918744597989324868863439205511189576423627667379998139283981962222743152194579720390204979112026106994021697792381061986731419170716112148075043715192064288549731695836469560085459893603608173992960926775287859422361663086587546567443792884998981259878540696484102251276494601628621031906197694195326220090044801920276540699044389765995171980850181836416756020509772624560783800330237574142439324177006248598286508041024739790635207863951706119765221599262763238820923512482498945379706373150695441444793961454940216566501777117688425982271432210788533628261910547029788933885464378516167871690654783585665154238865082317853158986393483448067986765773564421199571300471866400275921064835663892409275529930156530073411188048837294317461295826720825377307802102075447826659487218629398646393403814394869313364297261391828127829353387082072837353709792638824127793001647964756873238834837127713172151908244150178903374844187613956117579781593351560171867069695690518312116952501188289536616875418775931247775265963753100872259959465217247210652098219624503774060448641388335773763016244143569467726124643177387244744408088609979580454131498961242634093928870430453413024654323592879486749029999977366077955726218124332096763787015854788297094011860019653144643072355481415514890879186759477171086812694795079049881243666986745983477236192310871055852492255970579480674556863303561395369885031920358431574285284255384624681314340668922653332982339930312913773001191037996027116968757079921665561085459341508019813695687250622717274886205916863726364368615663372455164106426756304757047957315938815000775940314445288235638786380542733358496987085183562931086037070547820453561062476010309460175336138088120858978859288959853354950105835764625835717495140498251888060041781504716542166423787476339109254567901511457832926409295314049903876412079518751599379038004125435857175994435322305751252601365137373254657440159237701687065726578297817831737390524298167423235153145721849561571077610891294421628893330251234316131270270023580336149019367576757173716731770805365375971763515217108983957489562856010138044035971228878224134844819033044424088267385096957489289097151111510092240909691270171174542860134125419530624187576094064389397637543727612252616281102126549851029065099383407373970072263836626176139291645856651968017408083423881353244236414734764162442168943473635222210621677058792435467141621250918897083320613668947498190664614197728153822017298661674446670916531271543297455609428772321244163540221951404639069044776171837688514603505638317949642594962474664129612009229893949513640023762274822008730448906660346173976489912189416765571188980022588522555833261488008465646656981311171050968486008630456260789325807813991432034863875597059180099891966465639584887046240340203494485281256446504724244029619051033778272325989967578421074127146795668571409121577914336981469947237332960873374572582838184923580943580600135178248776394971781628188972400824845483587698056476577770694581478561036025890529030724833633748570531032817101222837989815743003605866573871220135322837783511807893592044010925545433365144728808485190138051270832944858487598460976223287586656762523961923744816703239336648180232145305586494608080214015025049876801009600592677108710767355478256702146155573484219472428349739488003801160255205428489068773466638183466035760224407915512717691982011234644500359576555750477857799692877537561461468244040343258991033840599132501175738787730304262510788616187508716531254731978396924519458997808224687469814794820198702158579699851115624516065003161928123345873327824210142217499123979305863050642103857959469412789656325612944396063662148604307719760914312372943120136463903794567610018016154596643412526265100337841341631301760991799079554042435476070338656045051473717540562985432115813948608834482224805323659390184589017634498564280507819620008353345098527375470628603790154626949694926813975589458079023875519066382307754516941822475100764781362435549724780594464391354846784827393777035780422287932087438676458401526027008504351674265948097677855565509508401220972540154257399638309649456461637120139162801276627182933532609373548037397888142570255548744143744433840429786680062301168190255506027563941778052339343394044028101377922899155707665893500893093870702945296999056868119274181675318615505216581274285977364310408082276870320360522114619747428934461477028491875970965975520795964710074929929138349853796235184015640734076122394946596379317214418648500682230502097477260669190114988182589374452679399412898327047235646425090297938094289041506314509963848264292451793094296853550217850917679218447036690850088958019842279985515908387876367511169987829456904911359661388161424719752229994288682409522430500719917613864194194459688533456163271977215750500858890700419245107199591717614540637161456411783158163716258588587683606395189387910476661179175645264329182894507766734865575729530372319464403524704598352684486525902070875679073808080202540565821618949546483785822558816173625787148930301270582765974670038408979621919546865392869222087220419258370873103378851268004046139362053015479097982243382505470499809109248215840368576595521870110476161017036699838898535336684845421188648289290342794503332256271675244459235289739629681969122312707967147727616067543169791019219510727930012451771683229004137611223325085284391414104699335481990998914146299927380319710066195382645354531491993483924353966179324610845161274605034905385892840093889523448341968884152005514518659011320994848150079379694709422457442559660928950318302708016497487601824845422399478912313982498989252979112488267805939194001311011546656634834792328638486798253108120427085618890639944504611816015850189762839395240901630523338207128876906330540406394536201921427663896917438757724896313710208194968767535335051279231672935770014244081058247582464020007404544403416462852489881870616962986689707420520974615205821468200184801296531114052250984581449808518693177875119498308963052828717793988312414731907923173689210429892179363745401349647018332092698140007652064746399523039309404911738001340418464672343508042432241569696934654452500317539064635386413445955546360083802024303884002202297036367942458522598409643607213088191479859466006625032508891398234698885437413066027043159575714719623253636068957311159599781670302762693139751606777777703275492278145252274656732011091846491986595797400831328226669008616028382318988992355180998007739898798946484176455726525697739375915800556082765839681896727040776141400967833758268244087961102687133588369762826277040501244706730090269638638309932730732564122422739941349284027165407227612840671258206172959398313337194355977235773173714069369820880223079378451950624027480196293840379582739172357848255582390123298014596521080506832139697791738443401197954452025022054270537030003559747735791351610048071303198004009945577271406982220688807778238618532644593063376115554004198844253712315518213314182573718511096457904429122207449457253533575400524526358879687545983235816220755260346696733153018387164518036212177482683803940409003976079226567444952223090719175510548281451460043819118583104158817402179018556283317244257709599814805482582987519281730839771698828479112220220732707574702662924651674474195376933860397145912023726073660352384255234457320699520570256537663338461809664967820359339754200284981307727672643504550772664884287866624728136090954962142118832310262392664557364611344491873234225333262417065130586713053826206152740291527328300139921025272625578080362733147281448832573626053651293505764900064617293416344355390356752607432530021302749806695752327896316514580408716872822821739140740808684221194870754776016474397557237450476545379935883364037719794102598194754633523981800392365757364918804646080611782587812317902875051937619724391533760630837078133904556923065569628264904176026460795960724340461555490546135376366799137611096783581734673959315711680515097031258154256573115196556081262877086327099713237061715320417886556065546775437156277470704333338662162393034065843536903367958755268812682401167060608058484793405631093029495560166268100499457801081330520008215573912176980708920618419551369387590976550892865357898181408506589885618299469521845891442779274211268302730665598975737912450407127442689809681743683887928112254986439473852860041755943298253767745090554070550105622663920681732039772744946303076589248961749402468948396711289521526887827998770859335273675927263092662285486389510830757446746372669469680522739219160556450787769386245892274504172107617424283758982116378016250882115058317859252499651440565479683110839191178190912697219118911985313703126669764843183127795179628616506056725068334153122202502891790884774811221627211908349768614870843401360786189815471426968857691572669943947567022661291565446716527029740797856588202516999421045788562663386084283645228080079695959596034841383754548857409804247796908482676686398211124466682904156429097461909343280216139833906163773094160598152781213609678459746459062941857679436304392975099708564284558872599530285647081698494634433312361187830010320918164991284974646599797266779766976937702225604769913122638963147309575639003278703686623872119193921951176069218391694999437405903369364299849427040554384980184883778262645957019560392434103834858341281380072950904841243176672971234906946374067984601108533228779181018081593932863523277070646969177658123640544148211156007768207541047241494674853107367276807914583098532477088258786414176671908874066678945057225210251724634229334773870897193402659211239943254897828837882139331676618024252274796665040468341743844302539828757400375779523170143402546068950736356487670165432231229224940389292366920012341846347295480261659447185230787448460479179848624686032960887557310689244085890597498385284459275663031267755715912415687068127864419787409265045338255885754386362121383645483988645996124480090573903081841030803928278804149340911308370764190004366585107930402053349379086059510575063402232085443246465680213858343311358681990111830644838766091030170807885002595476642351182691294712847552131175036029120838549472565990306362188344681989348811920830262382509094429561089842815622597551537658540833614529218094223856355668844408451681855988799356392163785027368858887101299281167612978425402811945216189018864298899405890220743621131799236937923740688659334725663515439970613031942683733639539478606552599025528597068096120106770956221381829033173080682218830162910871323546614512804531329173175614934984660136838596965683089750736799859527503939289370983044718854479733545254272044208509011171879993370060569739070623888778315131383529474362816282457808411664180378476761458680432381956374418504321637115015041012151969520770499224375473796671642609858256073041878649865825336523036909885529576180261596721337837668489255047906839138512991095963046658432830215385664319246253653820823252269310674848927680091592383985295160557517695114063455543778411340331670817287911688166068494389336432691576117755510683444547102507866631873553207602282795937723598022980160028178421329632989449301344484035069988586929461163298338535250723383406326626804036171235388557223442287792961998634015341111254697193013454898177133659876103977738436973802762787160464604188728018517314884543247952815056749082107725462211968869539777783480122668387910093593230769348599925454384200280513336595130308015316993830246330089882954394976541987585772840084987776118540946355417035494759317550976512977768911834139879068005594722607698511035753701937618740351329352153464800381574589040411804236563746770625180325166814741208490661790583299432129175007263295430572054478418179657865555098630593829259232596195420681836317697045726624027324724496867333181519068242932287312914662284760641581758481483662662174675571642149692273415980231731073518236283734784575270112082689032969414787651456765578259779033304862099725737954524594247243247453446466988330537740981595718881624631928652356790957799792328003022358027596850887634983612010198321806517350209724808714345994840988459126148836629187028738373372534956831192597604240804355544813835799978472257759805263492202096935331057316983098760975580755219037147282943998733296157451365654427559086238340482190471830320822288848844336017697197480811915787444611781863847369719680372440833158036337553957353863938751011500022397132233875801398744013092396413092318802885382848183335400835618450085213136997323977470292894565149597358938988318320219267714332698816736303928502724088973848672798260214083981556648755916720852838115817293286323661090578414603529266034000595877310804293247398504682071382333664129899472413822244670796419371608813083565189350238908339971267025107757713234040025422322216386939850263059436665438723786909922250724624551865302701269888538589167586071435628047052785475408533406261771202491878926691031411291437782797781019282374851690218048505883266948815917205601513538709886817541327167993163956300724345297042123675377972029154840544447446750052483035451737010845968311693043255642077251061599725552624845770143604354938980881641605817711711302017252590460486825981179773824154792532483640325412458440351368589436090108275364655425225645921873921375428602414285951530549501550615567324658844578351117848115070112752836770434831335196829712246404984928921754665437947291554125450497532721488829673772833183360859982233012083130981074711619447141755340716192783853251042898130033866381044861092241549159226075113166146883484121816947213083582853359657505906045415147792001742326568831418795142977351566310465905216961913349489882526268257843669442369669968709975518793940519492714517021121978300828049611129696371035056557639527078058000514237558917207907951549126741946897984353736502697603725605301910705392024373572680658793948696822664626463173967276532797105078334408053356231887550646784885293764134807511464964041043353981020687698599783683060239867583806970856219262536639201023840970074082314643614973945060471530836046131308859408082055825176537414922823218735171913239744193593242997772449997112067476487399558485907473249231441137821782466460409045057840633955217634616585023416241121356347196334391155925981012863817076552053980659751315996199764885645713120712211378973345832948954672240969564337081367086530825586609262361394577046465436443673073762549839555645327409518795518991109293809865722927910396219341748249796510295415297896804712561331319997707120800083805629289767712849279941279723707643571190304257098448298675304464735648048908444224101639537041048797543737184789545673005909041921940016808971165788673986955549783145776044488272250301121108938928041411754645403592785432959639047678677233897868150335140101834902426065451243220698617533270265459800554752224987614982845197584294161170298849396740462638913221961144184607271081264891395536246669150320813090354389649784765775767681857591403587559431862063459840338698362167141517106724159353318070564288444013914070358874498938512702988080466610345816044962026879768126439498361714317394352992166638487160795376744633702804746650083343038994039886853939928324452182260506227012259254800787937683908130736010476219825148551303834480950312906499404043670571942323843059336502262239963369746113101513524491123111455689123008222533552389433343819064463272311112168751488782320690457926475343199035910086090018817973117645967347379809890751359260895322834491194108626789882423070549020032311261213505559242817966590141882594662340927719601234024449408718196757884472004919463315887573648024724852088494754160703596269112198248267548543365650846093289719904969292243384329524741044486792596324422860892207422431910764367426499424929631935945033726287365987197019991340639018355803549604377846532658409622512815942554829057715951328883371199021127882842104384994014722393740345679272764931404880513247922632023056671751646173768508354705700881217603584257716976673189819935998976214579286487446565490068346248457507241965352696722978723622463935217167067219658028701623063992014475372063163846488838444997794956453697830946830464695216736664143170898687828831985965250726076901382520054184333920376392744093846545686902106303323572746491867779363149351511764465163827115965125674528291634966812241484824702857641685755473848767898827629103115583472463524974903079258820660163791364706229723843860317959916823919025375786575917280791261423490745033897634303554183085741271072753019752563008521343056111945760784759652492814074562703160909049027884885408826023990096346071007500453101144177232418162416856544820052561021659515228128041192242882846338412331187346319690977046655636100629189151869558798183777049783063613512026319886848273911128647661355465192971840604885040115507993773047666476139545646105861799648463414500713452173065055686406990934991546773299217360542831121972125718917565027634189538031870262460792080602443933137195430689325140578450784304645570069964084596705322643943516868337717347495040194282375106015346412080080352757074391249145062152623787743214371932263393465457910244233718924243758540407712995408211853878539722064680580184970573019457788672545534402824394553465075832245231312087390252574560347620423572365378180579768764479177906726879736814652715636832395761436641066447647998610194189268245449503795229670736584977212615744432378446756077700251665818680044955622803663556382194596772390511051390448904949916776569871005747116532433662566694739125391324045051225765716319899092858515392128003053069806262798728943430067850929646941336883246566694942943922827746547700040285074907948171977875805153241629710450711203804047848573512826943779621497967108907178248498417696417353809392118526494545679578483678654792758546005361560404912453345329739873874008465575217614039528163324112499451990650370858896348453880443459916685888927514923039230445333171094482952310989117483869502224364655719422181356452565727475471014028672481194751969162368801093958367518646130192011802119274442582645050190101881894034506965925455867336956465699495657895223719433192926248694642794376250251531796776178389682737379252181445443523117640069677767380189176298439397130980713611590117170467985643367908042132582192445482712174208139949040257735097253633438036004451884956152614041401642906407000224280748794296742388102397305163219427713729666105891276003200159321093739853990497359364038743434505733806999785566493787799235545791674599346135177395082787665505892058756608849594822340901888057568416549096187134203642556763727663117597640907138915350915824456438924250313624977602210478160648911170675135056339957723642778562425441156668386505369709204089134885713108679749829079151145411675621616364221215041468893293964658514749344488596181492689553074547899950395865713372386324869427997307335441810545290845904354119132376163928264609843853929690850653408484253980872749222440595312316011843679551902244827695636815647636527993692827843142081269763653701925150204030434225035057204551936965184061339262016406609928408744251557452373764303389455380151624600481303260371040751445067530069462361880093589157175739442999309866360069580136689414534940159973695769715594644535081091242092763106962269805435319986760759740161785714195531626419200121414021209290758178665313112034396522968646940951868717347749059762712355480836030094822224149385964818963138886216398366241150264308826235794461174536401815329863337493882320097845827231374250913813857074503417261481556744475761712802566657966755798998280918227414763308921018207735816831664188351562719441627842403013283127822999256864284519767051046046717940911308370721118550653711767991808613913521208968368536010182770250866615825495942502249671664531610933338622652581776967095063173671012544108294616936591561941472871554295044808664547188040117900143673183107286997106146177836730625672925094511700964319569924385946169359619018900073887804061598094141426291365451746593460527455691321711182344754007149166546728643355586078998207419050101334033826446764181716629524861452139847667616552164793415458540395040109781113334598642961394219639875333298845225636266878520022246775921899829696035995598562413523594893492766145598103958124665145457139050570370280177124796202087913091398328619146684932941048486186411806863516733242167325230465660976335017653599994039283823331098238604683020927680135923297247163429036190240627670624564005702130027680356938115621198353508398469499598148984260788178207361781998876933861614290615728732138125916377762497627839263006451633671228872789069167741807850381787650419392242053946019971197743773022896468904946923570093871449312263674136064938363965357849840226121526330100516719290825292486995265568061356195141405963727991752028543470102828190351690465989767666712562323265725270859248362813569374715042974864650460110313069029213455949890523560733054697652597207384589355513866092218679361067801548575821976245215102175735981825167905961503321412232574575171205234395687789568964277318315558939124589377340739777702912672822103524584825059466331042819507787468894576981531670340163186878041571809767898250500817225021716424899734249644221413234437906850560593665980185333422758606417024721426901424247486202391564045714783051578001901015022242841544170584438085404706861994086490724361386890892245201287241098209260156709501842681790482078231981296570526890552606920956191529788901341035371052906227967644990432133420892264701892320755071778624088962314793537969500083751738259006164213827910805457865633686002402180058264170943870849132593790569001801838677107088572405376029373637851444697806676752548708307727078728982418147426592583473434718939685126694241216050946394963562516333252820476955130230531606128230625673540337684925752876524208023499300287820385698900991865996974583535430314340015391170881669839899928347795170855729153308171451716983461047512896622674990889466036333982524713739452857701834189879720671787178527227498080965377715156415772564954260582890322033705524277696822060902030370832055023773947037838487220267791580816864747949580144032276510784999297064398969551027966144057130125336135779184659302349949790110425017075343311411182222280029835992222712978330578085288883872075233871136502030614998125919781650462157348690298498256247127224052684153749849435748042855480387111495237303581296414147221284248047404901194271611496384181229254436365544784707027470081640436880239722644454083632728074001933656516343573209321787395908235662096770672643751257462677250700314031251623763332804060181615512907227457806734117055646626177258615244640669098185071422145906499761535541883384014820994993211541692597645807666704243975945846669066422588911187152532596454698835096005490623574646987563185883378559844826282683114066682590177354294590747347926280199212393561204649930868726648972940247870046736569973583491390218177323406412323500056116816951427173008519262940943830276701496858136119089348949476787335817306942692242168031184951444682844187491676703302818327682382544268837953787132139997094412194782430752276877517959111489102386810639006454098951551258464231520348634149252517473288599083969899934330929792543732905532749933014372851937461829162151242615244093836364301387188570275982860392588850920027934274019386433521169021808591433600051016550816160109948900460868894752570098230850469022483764271805878245199535294769531770890798368986006405299701928129222074220834740291149076429840020591808456786775470741629585900308359583328324348491631108690575252992508377031939019690312823576140631528371821443180518954161636256952580649245444673640572122434020410016445215789589330715490769574837478074544734867695119516958333300683089294379542472871880835604223273547617188152246084457282695487239510839680989429489436760869079946070740636042775641074627971950610140274045146038560020249906888877135705765593750279257894612151079031107590633341480400322328450130205816762909767585492858632463869419393106027476640319920920885606028286752999563042484491720497049426114138128257875172487012437035508686317114194966741702362568971815829074884383571317350011418725640773418656949826099627688956601638217688668811605144082197155979346583246951752186220276211917929411254329093689236066534474372709810661317373789989389628465989640152842138709918772026208854835299045733285829299970718644527331805127235752756181203772507748714264088332467477289384749527378845681118023680270509493451653057132142126405926292685457691501771498469186899791918431757317923257203216414160378177270267986860703420274636418413191936694263916387602798256110761071728342692262404316612715005797286827838453441605278179743536284308250420479649386092552658641509417384652230780876185421582893278980973362399837052855424319249483680396582012387108656825831499970454235960893205542956280282421750442201736708064009774823972160467227193787854374247791289325885473855509535745373596724096937084612675395182033111855092489479079308352008934290130390293293754319432411215544017011285701228657475909687627363939036096041881066940054186952495303830461858095666643314040532666383579974749284212348858578276632664171409768880597822981379051929130833703399496506550991356476293743193088136155136567794456832017579050444167336859160517117184571385883798208290744192752577689773135827141524218295405562121097425514487194801257920287814827070317648376143581273705686919912093365090482698165439549660278012351110437133532020737427119506452531707394881800800981072138494369835132403658771823475342491897784712595271521307218491648323553196003995373534001921683661971010514216015912708658971212298782864252806856277329761271532944383667667090541816746559563786241776074293501343330917950703130103189263174635114253354685351500448805989293661454111315669281745014414321607859350746274255442864748739486852441395038640767582812240368018456721894492980917719960812611488649538371256959251117776560522751942705761228822271222761583170300282550348160261948720647537692806288768463024532883360856124174390379692294831020736522548536624927490714780189686078172071054368901551296376035035790070376383143063027081120886689348728945594086169033321995784462186546703888956624631750698603700426654229175714188073123529641418309693979382800535777780866423091160732859617876792492491346489907044027641658702568623776447275594207963741185684763000177135845521349031018707485827643448022739443021241076504880974564256840564157675856386395995097353879556220294522529912714979886339858925820977622684285910479404292975800336572935277447078995190330505459872093413446538831803030658574074330484429135324131662190696375272335209205970171924463859494680841892626355420729083701902512163328058222354202134013714282165197769992760069089564277319115279912058670202004225320439174391858013428333580470055852627911679704563035374818920479130570324337569527923930678990323575932310361714045154831858424820544701651740599811330164804249911005031731934298810141258697788349316362123433567358432789224136872127275243953544105237435725689391698258047409695086184362006065543202293682897153461505310010710915904746271386715941569099721937301950618429169843885680786489356598130116960367208602060118482021936446213693934098131714171235145124494459154909346030906824566986310784913821444865521116140459138730634950501916953153658712333174212889285566787012387719679429457417550561858314067119810170074944660185763799948946372263140976302962554611840910038502053931607307610476143643206488743158968733823169716619841651971869909258326161006108994507244516123247679504662872089746598320486939279725935563353224890091981714950461399293930012443895850064224507911893684317399604606760892695982605028293292164588539231502647328700714863738436338882204733175219908333858824353720904919299456371154763357873680328931194962815860998974382154574479257501964038024957578613819207462841062724899694032399441834641716751141469519340546580672824803218033981189090675315919196386415152312004334744061368879530079381485107945243690281883906913376402768650478502856004461434586762709658407949391691465325536070936215274161903517767657275061016122408017363796517643187577216397899951717559918211671421320347335933811042615638975927889101749701323556461593442782431728489465147500060031400765003012191411335636624817971933603237883782141398598906724606587415730773926040671038998698127741689760841894331893011231574578934678205620199841733775022921521189554670882629798550570185998522677761232520292947039106373084841610424730655223375844164588967327242989294092055429175813988699983249040689061611668868888559184518703724386757835985642213484613316753051111692653302750171495848268950673054162058917545278051130999149103930317021964231373542384858026490686225981641581982292279931377907081128991567435140883561420184433460993376160174396810082237894537606837662470254423927809678345246183847784216287147530257066417815497897093055289528496665055268668434472187114073790517439125515832370949304464459801435811821685516149698154815522959745185821756048640595401449710679646556421113387613936215999764707737246075056016067962785833361740211553715975007818423832188556613992016795639769590355605888016203544833029622840551231612179559833458804323532436585138969185771089120759286235681480380548366513704850928252915225204740536529762323676269508184570857492287382025614580305720096936286619000095142573996646801211104125847070991863831470753304242053115940424613692571748389854046626470792266792786185919019513583814447488415698332696796778242860984248912338422627969652384699507135051384788546170045080542695794505218755146583719072296874619077634018095817518153947456104866638666412270886331162278529564437197227470293913705906928416944644136869395121540740319266340886432484938701131553181997831380433987757442258968884340939983609509073434064252264609395622569168882758799777405653634556418905704232192158564683418519557422414501649601188922741313021546835829555964261994676945761434028974266143678774541317346128697062459636346180913719821215344186530164998338395630211313170891880988555546582093635300890538216939680836651449288172868107602796064884610237976355531091537669115472778133755496006400848676722289910816588237033641875367355931338772304458637859506362466917549654643954758195955863675475355996124051584753606169285642014977589724001875162433564592675216310548739676892950582359002935652548544157967194816826489056499178245890074658000042124867692115567064350362437082308711011380260182188500386464760878818961435150906874696003800020467236592718938987330446569658662102095573723382238796330815521293210614567245204790848954841214265798414757569650367001867661679318128702359293665130238791296076873016686655819393632101860132407030460765032879816993864924315977017805355999990241294314531379567743800988541691628321397049991619840943996012359763195186797430706695548944157625950465564936256263593084255862362812467597560147327885732625130413791377177379986208993730005368041611728786070598159806643496898844513883757433022336062916617621256555658803572874427556202121898666490839240244511706190273263278576584443536242628883249840179212335550381527019116849016256343335868092024010075667031349163181815608344515484529275512764833989093853290617413285863203221556157029683693580570717900314689953502043429620438221689208696489901063516516754457769589224934547663393130806405924656031180723816789930175721797454859029198690685638657349046743704654774771395631666454231876342872634853133473708559459475177049654583002446370220694634627267612215734415757179719862215229439313713236987594979510657700549605519774808083441140410040572517413930410723863892192474685065744817037519878235574063362163524606053559140335499576345622323300946060483131854579418315412551071340799846455697271572897952128143108086460756707846485798313268645649209531281007454699540957216556782657533023767621091783625779554969035169673013661286268402226121438281456631433109730827872872486578414835777947657720356942553259260456610505884313705859694499705517458109211560951584306814940321664821982325560862346203783855768154467779965409140247874384073056281808080409712964197951306245443283523004205144224624458207272617775875348113529721750809740619757305264003983443693966249456003773525805485264308136620296650163499820504223304436241273588351692864854024759125546670468461744156079274985175367913505633511096996961912983979129979991868566500334480685857847010181830005403651324031440142095214473089170985802099815511031938076970714168419715370970429461159609946430764755842050771296511647405331903601094375837522716945680696797581038382596902466841314970299144173144998642273216810376213217937497499849182375142556630884063426058421486506993544948719655135766133138400999398451173640721161026621142242164867378828875370635304572079464962107526527829181661066845136999124325863357725987605072462640385674240008171827634156436264681953098409977083201008758361703229150456458239507147727484740587855889392489670151900433170286287778991115634065839255863154740039464833809192050581397151021764890164833366267626711826144545130439841474563425458938201486569820996113014935537449566754839081517753466621333310785107603180698597461633140298008343439827993120033453945855733660690122710964283674977691661751056486322471345008101256832966460160387923329718991030370915228526570720731678416171499923887609763822308012314725740272994497595295460314747982824156627954561009330023195568517184965204215035502786786122876135518872242618239408820174562480837706490775366329065607167953029698701222698319875248204727659159885246663738595621197932303512376808908813026035910186614025526379387407817552551306710728086900987352975689278765772750076846085996049951385183586450393805726116668257210710872527556964299466362740351624008836792663073161013535367113951673834108327731262799590083895935721177120157570700856435035480088691600044296559341262157311937871572568541265478846171078224692881258289888987041781107832972744661245619680500777422113953128732801155702001102216056507853475091658246474932607060978650201557866464900224795441134966365109055930003112613161616448974519341358035092986599243781630594606043045551343499636064464931903645372401396610667226139392886369062076301228506533819013690251798297738192343988009293054445104761892465915096906784234849731465554458652858564313055816752258967247706224688777791198811347814494606862241160866011628930752454043429630547579489133899484877208579554708259664018261694168586804348519229458802832735547165477679017367379657233038863165202983252657490839393200776994377325178793482611430444427949031704052103078857578166240637053252344028172699235183882550278037105606219286573388164612189375546483654945332882906991492574251105524114115332663196738576541552886393500944560677501327409991078507576475723162858073884274701809515148798044422657216720433344208261696840682197626201652814484156598912904298216036220261990863018472244803929987514285993568215254668084498401612038947249565082169261818457769669275160554434855204343305916981004080715197809240533209244451817565034247377077930498501463771644443837159102317909023835085981528088847064233423130387787139975812957200180935781102990767982083229150999497227790756817661822178907272999287657618101178411055907456685509429623622692096829368279284500725378851519557001551341934196976473681251395396593328362038431495404333971658608241283238297641928556053973445828569662396473307130766913975584889380021050433516153022248847827262209094571704224645066624801504735546604926737850091534946003833953876685644891512126313587810879486151814059622572868540716680512143118399714360880053857896598249560643761445231636113427563084407153982495803031842889861998892795552152931679545398927692885956925774846978085613044485513194502097018493218568354231018825452101789935460710770145549440317623143905554428184468894507667038562017776177487837887805887548886352171835038975025059504805445944180869085463326942890953193719923980178944220691279581824639708277744860181385718586378205567417375125437505348617409090257219012656175546005096710150902401297074988845793889632870885788824663411644638078533641162381826499133661504489550143575045939646395735198707771462730041004820478590100845510334504628540548954833262567071822950389442953114393967550014008840946859371322796803924844233216873146342649788650243087413151203180072161197078610128240608695517819025349486497963122651533703088293405626044272397659017776955288352387714851237194741007224006400822474692583457864338500647607759954941538252339325940962870303937957135110261165207373044368446364925638197564500539567283704223056189488921686951083899609826069353334101301907248840201959343400398919836064165554757841332645996631046443462790282727291680954258291460533550411729952574434963422275153350372851978157813509811027580917318654659149927268953283284079466885713830423703335108660916482592595395361368802739654067971508945307481409698146551733687283632282537727962887998062639979325938121750013860312741771117444775318866738943344694558110493406687223892321184838233588880630435379964383578676968840500333357358225641611949146402797336558954451675523771812805166985512492888328905358905603602668678975483818532915076952670400886535046359595962588533251413945478784324745221366908121019023958277137939929335722227432594839561213471215082974943138187480501484278968346316763166674044407398335214708427853621650420577121945313780782410766869791118793964419671737124518680655750826193450096839201290330543973672610764863869950307030713900563383303357400603872232710777815552447174682143152981917404450302449674510734847352194440342435667763682323827629633257228905902386881423502362569509845988782482940755872244310294033222039057107534104380831223204417129267202124627791540486980872559495665492997967245760501477802189974378474725239207912276257452721998411851431675891341249096631995545800497762053124550481122580739141388340527338168800537346192348585269223036924438308989945541465443937076991843499054325985280741828312737688030027664114629036532503983580197669949489449509661136598605522074396946468824495152488160501876511655970570804385301557214034666932233692456215966016131362474765179636258041103753886636133013343705491938908512848867683459419958225096389313607761233183144173592360997876036256449609480017829960201415316409514169118463906715885345378077794467468899187584419886076979642278689374360204381344923756886574646590874122550360110590287003469864927704713649517494027355785685110338062510176933688952178790426036872323145280584399383524977477368439849914330878665582438328921341285949402776317083550010306404520236449742028519616896092716451346484291878895013219512293744974493830795530538436896184026114854894408194686609355499571428266398464838129304180977737753637227462676242144302827471240128683244122173754073639634669677132472270471604041838170880655214407949505442793617023776526567438919807203299574862930811607544100051807805522242320279611143490677041241020018170791138312832204830892000551577984026421682060242015847230690817879151774053580612901247354346646808998592510093467656903566844479057892388758075977345626921849750369889853911963881131191931935134430939338734318382390789691751107892852188587118269788070969799154496701872774280424058240371819183203480836569688011594709773558574343969397308456354714464461274220280060459331163211865360078704927754405368043617870476243198890398603962618176684767489418103813683262094765176741707698715107610507169952391263796309844271134435255551767852188075402071629067372127763707870870123581906453988436573601109892260613130864929419160908366884066996622018316863806472955783728521049421582449381108163572291338247293397019322140340214175522955841762591250805815730244437900422323378629747759341484608072281988114812809939491543177800841737480122632369682086189919000852223672880183346161500836004018339634145905907122189986279188022071669995322729292845229406782251098907228248835531080948921563494936997705456005251157291117531211402102050339467694620557408163927236102598389818334798211049544586771262673411370128291526771521633124485686250479219366714159463555913346109605436201060604691785337751462409110384272577591884635723072975828449130993470344195702201744238449728852759608541825734792813846207659638646603586487569745618137674835483132182420768860870660149676160214310094262004601188049786057007907590528244005395533683898327489605206743753446753306713864165378510666563974194100208965377292402772281138494393341805715025213053888112513711293230061757112040519024974704362784020149370486082481073797350229783829543526172500663627629383899778435545188688318682667710355725706468923060734698678523865948499934179473303473708191944878779241901560441281831526810898837692637644099578099357789424945838324889923525943581949187350611648247012925877834281112205585253659481258108565025475707566346732346164864037997418136596932822500071495556566335601310314440923786652009487885056383751117598138053663965048744272454193589526367053516295059139823991294074825749398730490860649186066611041693432908398071693748790697912197788210215783377415826398443843729986415773511934723080272488003522769985484174245588775462364177911256137877614203257987859927752739300608199968096902011871783400816351139579407940333945655323190810151496467064610981836158377806472007417502299838646000330308429547093723711160428496739822470296322872311569071369984426198547250197138024638004865194863553381852404422546888359602458544213952792499822184084480418682032166541241741756595114688850675226027363851487064107486668240384697207139382655336357188719149808621470150741525243867716681527769396087342410965299575442295421412394478465583027245934573062006314701785215341880729810581091821072566681940359355644819608454662720498996978408214578355565733190514960345983275689635474595971323150285634676240891627037474328692665248527321957002338613686152093147772779101187215859540726609318708573262118132334720734678206685891822965437252950823454232144567739910753412327930983200370255303642106718366910152946926528352862171693990072336702598781004336637473304635422140270092571690777368469171392152534418309853698042507440012339521000549338985908372435010042776342431186838858803220696280798927526489285113056904081897485625231477586031367904313261191440770938025438074258396395945675511494066091395437026246656053852979999088722082732459360321980267544945922716126238700409721303192430104787428231409963297853723086972623995861554423392799298199704492941750319084505932716535580161992510806420246923654204189105228717794131417611592854717760475017340715771321771878098995380010346597992147482285924534907113355960916417749790258653523706447726269602569035991533025975648725231309160001790374984524805648672100779927489288452919064785917779023601271070947622165068382713453042547048571677448569953911103169337621407888909450030295460294460009475906518306170502408219935577966189709909637673771493306681799100629320553846127933543637847686164505980207227510020165318546832129222873505367824621762035604275327038132612030902872375276893241623745703664170938315335838238448810366026777695432826943500148014533867526504893276444821914645277880286550323129516133504908662104945992917288289661594379993664902943761129948382157891868114544859992142342647203458571402338562473308796559210111404369923376571334815203429426414973883807243078672045006259398258519233766944686807616958722304258442454029184935738628069359229286190978861032619980408136926184331090138333678944840023524905089732447097395470247891164773001982303986412133249756578021700123710037257000671710668867090298881788445276240193104261861833039968016773571402389823062239523335664150461756816336625962844890861371084285036634688395277945251073458462150652292720394920615733616066700590907909562420465381629392201272534420938373323673880395562447736741965083991021824479189557421842301363162377067707323481952481812582709271891009673093701064519095193132649735977538225933430561905966565797999945532058165347228845534259861557664990736425606744350843272227224315468345338984640542221627060821092666945067673059758246731811624017352906256534356177006985957269919379072137612132201487333419479798826820757193928940834195727754829650573776828807580561093384276413602512636992776442690263726916119287684599875997231758665152295944162924248394258106692979291351037366106779316770473438600205374854849375773894104185715873385539869552681792777439743450179662939129316325125841371980851574072430039328038964621058927427488170762230387146736246210431234251105974956406633421307594132020258704339316340179682827738555813627570533434842934823483646686774429158681705452798513405484835290809488418923291101434252385824953818171881806831051717942286656401836139764282115692311114634053982138833847494568669075683388573869812630086265836936101566973212074316488097704851453140536239398683296141554049009740497981975551699283817101281799833348654814668905661792608634240868762978847891735254693359163636247833811300638817359437469414219583458298686749640379916703630944513049309107126843411611595313347954481122591738168901563377154980371852794657087538494674744877008645916858327231991442661044268364107583635347912305335718417513398296616731706082712421413913912440235773721629243995173258358744682245413824707486954480197724745746290482836972699131636740251546146180114832322660394117950260127449977292237569925456687275750187668789479648400111936072775829969857654441561904860929349143138602353408743300141649667123974963615432770187707422805033854761806755138662375866389753631593739361058661457630688088367234122862738036758162478515877564970167509883936887720041141677535925041974635952250860699610101607588356745907849010397756718607466439683866290925980106185784509534577631532675312153119035176122513488496883487810001182655223060475679624904534143759978635899716486072391017224819325731125921924809960308070047537978907643658369292282136980415895340795937587247968807643810629138920086902531953704341400511858576582465161747629398463498628406815126925386259502168339875357368264885029207519481823474301949028325316449021769466817858139333653269835951802573966146999072446376219876330258343159753340523388838472016983274636965243629106697129869072005500371361340036662617399819786695029196042373753014399393276604019408058655808121297839609171412567370985800896656577605833785001188758373857138600367433619176239228306326263246105684867356374204041853354584949746450824982529940706308128870571754894889978363913640317620038157407853139754603433075228481398127923939850395957418294505832332189519009676267063586940323775537695864816637470918904209292966267049106417057841776573781906262777236755861337654479912185343190430422747649799810461942454318035189114530219601065973260236405329741874397236103233518970576254987818971900432921618121315184545181621961164844546941218934915807148758956619477454744780516212805228045437364763306877736451729873877623858397256305113129015092945842016796248147670448592991830359259247844924381889276176379753222396698610604457088901035924837712613534352189137523523657427034424554337688805274760957800454446769649074556896174862505868687524117304424369561035427886397268515179115178423644590278881238893571290316301936239186684433045153649472962795625017183182941154146414000237666930889646871638791711096497996251745881930573260515257413139607901652292858253623613752212585673869532918596734698573878559767293979244703127339363399179504566735548198514521050353483254010802788592815855188450788715234665433082921829744749540075354949912149891335201605070693846425932747287388496189684299379093237497030947453066216598216939449460399334772404594489518460739751313924550820252678033679587280378163362253958269503470243459064773435853896244948240831103758535982357028171400107865482048710314213896589011729067317933445829635675402353357575574594091227442152782455351133675364942603777485452391728094389034055004045102446191050032664662498650932254321857994964785829398700934333174577776681588170931789872292840872740387950725178697293674467216338120399923407174750831238982233126132757265581657852386001052088439711745023925200078796099596995881806041334009957808845352866643969980576965869744408276212176629190778881031005641141603087028118160733549170331694637495063007839410471589686243646803863031847122299324513946336885326522571817776606688575277773103526660835124869320131473543305062517029461938157502337271958833102950065367273011926909694110835146550451208854108034485993276870978381772995494266471639443582789825467361100046887203987104195758191225702329361798762911320084447276943058249752699292809294052173245518157851238641741160405768109765920619975027197372517095005608414081538967946245643574657053887597969685540415354767934181134846049064130124069281333374698930132436053723628192715256470001065122572339619453835326198937841649460541917701942364032063529922181889298289233161053264692983672795319575175474898574885218763822900896462608027296665545078598277973831617397221212106607862017136842238473076728099770252162884445494084276755606301108212132323964610823983894787644342932908084053269951389574579488236764808159386233218347832558313804996313251064974954137891231557134757355298736488842042690071804483085526427450428007910803412012732037955126835970929721207168270651022219354064945201234804853969361855067501528973295677277879420700923989317480227730246574025561636558272249484160471438990336719893714159638167809814391602688049745569319548040397428001092356434071873552523303196175405578879828823136403066977863429841430393038992154165677801035228826813818311087207581168701758628590621685796088800039682012145936955439031388889819717445366417856817993992499425033678950340335540203476213095625536115350336934239141476090364700027808847484257850832635392775792482898494835680314043818888653616317345923435157339628533885526007580015812114923410511952498752141300232268239889386377870247253709803202052093421433987798518262726615677036999018335496755081017510903245626668261813593262346978335892003859816462938192105578587189162458876037011866138991598576822373256802361765986184276680856411773908914226016048838105160901912554817050888180022607706534716849642571974199512478035227839370915020566098620156701282050347527789229369312641045606456839995297040966552041065469564921358102288112495094761530262563072558929735976817604391619482317146748799692384319150160376946041431014342359804558601806204220512414459938399225181948465766902812373626975066144081537483859146800803996261211230401601403119707544248927114834291778741736857089606413113876462613887471140726581767860743835763512668146556123470729927407672890638049793989043984217419085077354743378884695654861979309375241584290629727227081052973393589514459709770386173336644097354937146468686620385449118214318614506353905602838254679148805424926687620457624917331374171008601868211550834993276185932081517843280640764064531829152117046912888023858085317549233072401412852192653053044372842353151239680899149404063368008098891693974630664705863503028520090654880826640201272405174928116271850938279503263793886515010067625669898212070972990903501709787374503607052852160140016187237926624985392332922543976029939276558114635860784586140842090873273166275453899153765401500189219740648041328375670061287042245215797251957289577548397602335832423542134884216206916774951726923322879590889637844253196610918045478841911857468380525073028390096364208292121433852172209914980589559664233670210149800800860060153630053058113641155317896519549654854605703357782446709335694054342899573877354772070990317452653260346927390008094321648407378405067935737115379865085132367009410181636436860619761064493266093700354856296470738885713561657864504985616707941920586112847317292488159048282759182861266111410012270223861879838205937486485339744417234544822578017181419107574424186247841751804998733340061703339867601687569810521698833755169498879685591116565361339237442104627598759096111308368710600382022143587639843756440010532059666048094521881350469123811666017340718986904711992721414177322810597772300055486880249967820931407858588179183635074345132890435646931571278460562230001748526648013703603803564783626205405238310171536898988400133035340148845705513067877570393246640075109331430286305849269437785740926019353924076130383842567402695329599139520961796023431923611961519350565205902690477606014091297824392380592938885850981042933440940242364007386364313919115723206415473021733438416582142158327060514435604174573236796122343576376626266297201459953429753146710447531862784060058899495759739293197981120213119374417606157043175607553024984171620110895829857472697747303234696608410077488989598846448601471156588336722899419640301984639631915170407858898859941872167624688786834859096155811773220005199268936181029746778619403148787584798772434342579432708174780552495085224581791483109044662151329132509532804534404392201762823420493565428535707323732312295964703534356789494851455977732583628771121044414669025237789684196847691598753939289464653671946743584977977054633556790016725086674132762915591303811508095977343890204582163498010223439667096119301123931688810003391533556378418216117447818777850360178013216227772064282751810093736751238181952147609168049825390397882299593864676537491797998705563017366552643727587151555746003131723677377347316508870623596432155972856151651688739022062122283293989114473463910076738879388341418074566776083936518528587601629685739142674266890513633599799070711804301528130650452777051023066748889755415300407449082885428725312198757350634036879206836342479010902440029235233416507370029342329951103543539982570329209333545503869440181708702928462031206801402941441992761685332659133927263300372139918550528562604573151368099632656587362490845701294103405306742438721821483178404961888717887552646314827594967287420120629097971403241850211930375187465686869206662804647933151233187765401960156008266402920812923808497227777128170331675701096489388402392061782589008608719868359009734898746930319582370888905319386779121932844349939290992309315738238847868957785487182140694528287725710167674388178031344027830546281533555225860472319673396283558800385302390553259311329827165383603328857268107397210840464781154345031379437417881253396257390120294716998069772641469652547863635803240711252376026650884343670057609531210431799630604822075598808163240562443678789759624051187489294863068008001737300751357219375092609011936788604954356911548205547588476402938404875878195051532455851776896793931366903443502346755270713954691294173199752514054045515797064858474220331110273481545377724691194822565893034131093144684170643052641299485881177212049566477974981028163649697191579248329911697562366091182424362033508818115019709974348215502821340077805822968621733170151499922015162486232573134129709730882654567845704286095085852084824496799073229083978043394872061010462744727585741035372090371724773420650440178715204591146193647708151460420358384225449548472148514923947308179843614229377839211138145551690287890040190921070725726169480232143952058293802118673698261597687455946852792789707230628333161756813927155826164447138871134517236921230879156160588863746136498341346529932473404942630417314052659192153958170462520397540668007391933945821345340537726645119516329608265425135299049805201695717183644736598878105146331782973427651045654630834472292324847012656835306434999863319318804162846703714271463706323770950110559854915436309932678684512288131399381910181439478615915116659240695509097388637464063669470520343530804293247523699203660266274291136726714517510152677580875159548919209545301565270274307390238952663618798814737256405352258796473027024617429573798652944527672232587652154552640616917419666314517976873929417705254397373414658422461570783390871228953067183067520290438212482450473387934578779626953648597946170170563969587204530902923568547567520501901509077901230167845868050401138291376572909592007510165373375164533947843883321447008435108356134512706771796575192034945408613329332152231591650351971648696544707813956022282530241718322518521351702304254355769955296771018495551711740260070907212980331412555865233835550434593731869629750766981346057100621963319721650276702563539613363644157073104796002493683434034290257460485770831019656417729534988610881137427971599202946698451061308723552803415442195741026610890732537363553015737654321296994425663362989495785384503995111748877150897941209879685180988512771141024152620525236131518428622924863923638215684079819223486654489535946493414850623550881453961453932705252997887173318961747181832415675554820548810035103144831737549968237151513253545152321439473085520968834441062240290771414412016254243413460026425137204109271375104168898580280884189218430300321070396509414757900768741449614547191159638214028818649039477395121366605975456914127224485353205940180841631065343504210392510691288723108525845368290972553724124215002903583422404364291682586840850947127870752010112395347012703777280166423004556973057029079587337738637691285369384584147958235955936079234780640907630204016558652901589895581551673802804111258463236985546266157213461031091031316134645494238102589141612085842921580631210476705115529038761439274834259036830255279674721440981846959883809580272362822224949234961008556797523598239013432203271356947819077881739850897025734822050106765830012094271424559599600878237793574701485021900294890488608917674584640366598593596760244319233084978820236622410565434601829184689653850552385491155991121374408031286982058916027850637656599638743097367988290566406906711708051465519983832045388678213169082557929985827308264665605244305920292820112559522759184481340273642346553717499228109454194521894640552989442376998086447347647906262258258232636042713794168389456347225162343370304307771136183757845660821831541327084693946450420753909989577515950947129116998121121250883047755544584635924429345561253594274238528441569438997911429045536404608464957428002414011171870236247297060815440653065167287904902572596247102804824347846240978695391184279848397784681759322522190170614520936364568457829060207131759926493091852393163591897941237500803127185579266538303462597074990276492694564025195996439196083861580133430445822671354764053571395648713146932784330834862042741504786438470700507989230456083125010664237511146786391482517714758979173918896514291829318139454698060734513977617102317394031381929262240438574673675878539871775630180719870089296787711293699834784261656206219341369440917738882638094607491277826858099853036655100915081119876014529484190572302300031152900422995343815101593527952600576147543943972575901141006612733102459825433306471128748890496197253939871021349144221985771886932759708448838100925545285380190073652365835604541133381229555235421386531131888763829657108391424325806220313243211574947248191886883773736097788580042708363787498904882756161033613712259578274635805126312859088860291086929460666391473247316683096652801917754284699553357376094983577418464423301272367317752071853081148029502227907929848598945875815236541568581542568063932165247084711406228353618945958652217510989057639281384967394106587482892630151820700033159352562615052535648487678374722705984002865801399056712085937275425430096970455811641856786235989629474458712617125041877293611677501560949269766557307089122023835774756602662532323014818981660571674536335579654903161843771447475809469299112694205103721477927370839772823835576725364034067890822974130129503623863766673893398003665805476962046084992320304111167429073629213579544928956004804642584642261509112231532136129966114127299998505361880685291702561635145368715133323123424645240009491752561416195638854893799403838644852394705601708881045186484650797054489039424394833370788726489808179715590623198349747589107949623909963277771145108349497205168426758843772664076666995814563321220629469219990694525205223412476604124005155853263337382840284216630665320181767650763911134483147072922392939980500467293157343084492030312826049170016681370604572339260387485042640868420771962869709142890515414042262391532629702770953256523540505270182373498405759149301248020148214522473284456675085163728674339115751292339850996038718674384903644675910616937496212145518079076768613304197256941055635443187834607394425489227821616511176630599890125904819633126581025366238702470436001781034455321328756399045936145323673805056471101783739169469081136266641986991702046294892928849219829143758952465314667093148374252444814408576746646994429116041832926563059427212642653740765122171790629730944383666411752786152950202400731287810069745778398369408970893477409873985779261652859040190445765564626138128565837170684292087906313805014548974758017792014999664028583632027716003568310290636972176561418729604031611064623763010933145020553857802945276945389960010682406784646197082179483198950147064878275665653820522167342704428351084095149956024786933056551041143836462797315522128847453539644140616852863761523932454246872901799908593523153415995156266848575965324907566544531796106747787200744452272750979122423443040291338755354360739736486566641618608473549324474189132450985210567758921755438339274313687079297672821857937459071875873805880292258469076494735915746012755992607564798103414277104777542776229518988126097743190641080802287224124780975655320058633711851150756288462805241911659432772766554964139428309570201397144469763588358305976851080379968413031655008203959780539219390816822956051735823145131111302993436425344412724967136226593712675775797792236389177411089352558134836010747392701667175513298262741713979499805470580459063734368309651011664466525565999782227364482966222492699272113392537156579335858318573910211055864971731813982023985690169956663816783034395540764730368452129856280443663873250462078616082399910220699756636952125488526961024635287859564941797924520933960909915116238013939497245490480043207218805626546594218490147794170343326288458588641806119252514621262330120733441421443682489587529253909675219666555494182609230877879439294001123954903225835274091701027847014961053795676550851949883819899393467654561749904963608855886975024418088336240599327508299017021208050252528835285032448607114794002124151327253321257850981731224375513752867140798069851123064344488442475292150784082119769551104137877736071944237212516313800749679145725093268003064218499694423361370820001504488091913647388098610324539222464610599148947357812160599245189023672854544643698370633632893278619798781949939176005824493972999701146867006338858470829328109974167410056370867921642491197529273645662062494421061844786553346079505210732888724804533476738755909183491882111739023304749868146455517572459849017712707262844059861803397679707300080708136337992247337752774551597428059763421859101305452084075649327550176952928113158293391044512970311757750718934709421091954341470903045449837681061037873735825867425093334046967332899817443773999402962084717649810791109239939240643864703586893239232788531876567640140866665902635570400501842416880490086901002724673122083953841791898511559860793126735434191326065170682055710110628658255091416934561545066628860100232796517632066208362946458206597572293196438020530754684369362738311427348569365512054714185624132593375761787812677160511166051449468956783935260662193266417730009321321228748147716923233956429598104091453478393849810650922554069225640199854329658052024860049315806811658648976574439404240308863387563036845188367966249163814563565616949919585001868462333114298391826172401913850538156183731258627424670041327955897261341337541104812341196931126122652758130922171295635389847185577853640683602980217856945229773640941106427154857752143040384502733478671238946875479604812737712490177482384547343144443380808736620079984521075443663930468588940881093332398803130562390051388305495359372097863661080855503626369690776608741579500874299850016531571124748703444249201667444019793609245262999887317674396157356656184876490073194481057536495243478605897464682988741887716887890255739948771843974125827382861524434632588128494375868283800765906045828677091565230270077564175730071560833250774271961531329005807502798995665668833977035853023955876760599834364147394425830348155992960906666822364288904501803770437146780124627320038785468102313217233377101345214311128281357256836060666565028748120912035227324291117421510711941021341700971020109732533047729209724414701307914191322523813476361262145740564792366830058189759051019984491928977053161188395651821666591799706624338175983238051610571975401352827857893592192163939402026188178391280249185538366411416910640684450953705795652721862163452142386230114630855186199595136857418846415955500499813965605609929721727502812766117146829951547918693748477917409653897834129887269997714492422745524258494162887135010470495880034170963581971905907278821159727696680913318125615886379244657775943435500736012528376572934318033924285692146569397717967179304502359592343880090590884542037883865444608749126704120167464855292683181465754028211528762390075660354657826269516383199078897403671207309105107242827889301167256889381702664905016876785392161998782448540069202278226808805667678245125010024003004402945877355926484097889997503236066711865044954294526295867289361713354044423594880509044009361805881046672612596133717245263054271616964103065267483585449105468807826795392641348538837769194326365722348273687924725285648011818211519193891685056759460516205230345068485320477762155480301888180633991326488970544667251325806566175593501002191645887234155428961791661021831334650176973262078142540541602679958956478494129999033671632612646349323317717357146135340049232030750663017282951322220644162630922091275576989889004788971480814952721799127160713886916091409667660956950054174198283361754090938610460189527862643244381489627457220394231918933018442492667272412326113266830212004796005469044107467989008222657294889148165354172978756241120870469854198625911318578515095329868342676888014220867681301628812224064541041169853118774138703972589304658008987305441864977133421033964893232897326804321304142457227159077860757524402035756162797015417049147253165691053353219361568838751798989721170573423960686422411085325654677962378678854891488087715828772900561447244505599053019381932944567648739074915299125424007808666359001142432300628640957605164505563699261976914588713377843478525222584749452310703530011432551924468815115025725501464711489642717626943431135354719919865788361705451326365265971350263013236856214873623730845653280890011643655964265677060967462220519733645317843932410664553041681209414983675151595438203153564192982097774359101538123867049355997056965193504358658919517837340280125960916513722350551009924674345726319068328891237672914865327272714509145441706324235554610518100404294526751305566982882002817098193858457139969949806275743658917448231938596334279680516188471695878521790310608480901802131074944910903213431838924201173935307440199572691569449017454681636768102196414297500101462965473690419491114574652234269089724849722642967065744195086351162882469184608267303919247052763985644715749901779967091326981239053714530886574678248048185913348198357314947892533930288603258183286305340889742637648963827863680370892460763560769062363042427973923301832745203988893141876355757326527494633803319870309632988799457034263650332005568767327561141492006909031772076975350857375354678515162953828367841435183000508091967455841474613246906522922077969971987447123080775873353936722507459467484426197229247743134380337648606045371042145451025084508882349196079262490614854590877033264304613090066089382647709126202766899717079850172619199618387769691511281123609197805293150418385057463385533765449873454167154896894476082908034214987254887222032853216913199150195624716186892239255767329836619868923981009431815145224778214228374083784223244688712433195237110641696886157134498389136306506555643819413727058728455012372246138159412584550320476970280424951672630706114114638828392735683392405187955400337567104727668508075577887241817114629949319667993583908516308164749345311130041132081787181645578707429742364542367257130798995426211869528656578115880708877992830351024275810273176784654881215384668195878650211212259225032797861088878228699256427153313190385924298165915942702350829854475365869688058340666216969087096505401346172051536154213930391481810894329135661098900504457790490452608019440271514255302022237816110063920779001892439550699485226774081206839710562111548514706016273418159423508871945649971989179451706889614925336144188217617692094424694592674217350187748206967002719582589261019906092971779848495495639448812543575532363679237725968938748446429527022462841710182661986176947160561433308071340808639967995707000572683373731913037704427951003644774486935429071606258292927992026999586414515393679180397411873691511349844153776716581887041243521348531852838135397828019366567652965784025866786424057797984715775089517801672262065813695822003309923510940795555362733244883613724094441255819482698291278992361201933610882055592870682921423404175321235337764109436078585143652689009672256132250054075116043480506555057968431438529054032011806486572649655414354296383702336101667248858999036056248010572439398279581818315790626556656920462000563590830603608355135956019280615498823128476461101670291436150320751988137748053857671891943142287052460545784795958389770389753336662689771539847190996631452481079604232400477565378478982847509008882859194252232498021745703211242345127111834018004373954560977294959483033268145019029282787666946971946360240251090606008340182910522686482144748041572823314048256545256295723456697460026624030994750447616320591971389599797565834021089828002388199300520373209911663232068853635720620287199938145324637361324711426125668875686541976392558370818205428593201341383321815447554551300922581215453374338916056368505528893858913759830392301279665825046895958214268183969544862860355147243284174802876453262481321282851830813267757561601474113678612169259047255094778070367026712575706074370209470270433621672461959324453227399334080296046799086499417718848980846491201232778816067558844184492475056759239492596215279752250079509625331125010971776300110638997668681503594503942980039278445113902492227339265692497382729751525327693545975919511649038184755798251030177193685593300059731656545297735557572043820136724859495590968373327537135664441999278606591572164485254379350315149765192669136945132153766555858867805214558408027276652810996080949286586602320944890309915916622302211695125289669860539705010345506660125278930761061126422474310329184671064066506529013992384736648175572500844538190970994770667723420141068676664343658098745710004096915458685555005479944941579695746203272115008713254784045805430803014065825067963167614590796246343385162471239998822847641501609035617729417273956543801195319909971050589583491744335010767957942316993213659075060331086619220141350691775796617550816859148821917439300450930746113824223969107523536528625789501154649520843044388731988239857271572595915279696829219553583406939733209027371565386839513793823895939240258076356006897444930754241556180539852198616223840200466378969328401448655076514650423219290926498398184928167889029169911386996297548242862819315948975349652742470048278009794570288342686346445810178106046193126146647113631317970630008841169988137805844340531572547342380238825976925306921095680380416452896706829793308296292504793250722364438354535135138043411550941929907356652567263072203447858022878595455789096335332978488897818480813147735983399169193873139207926784472047449001486288460049261867435649638012249483650709288691550912864781957270190906123354650004579931027597702999673939177262218221081877070215767489953509029248922449007087868946628871759820587708477927951336841666564456055909914715041999480308115100010199180851643299196168798808203386116301718669638726557192789879214578651002930529498050540664974706095789333984435887361485659396182162590708541788467080561535215340230963840004688551557121629207533156833511033680122868182305934394377564131392411750618297957411534697147343911534163348190926309688329042693685717765535509966793728270280960745960718031002997636672249277776567437190685544555574439334053045288420585738235160160254480433088702532705800243317574628749399550201479103411449842956260380551170983533353769553333066836886062129385857155502256970660571639395421193417523410688901185407322492760374909615307586379226344940957851651924649612245150631372729388424891161414960694824741491819767646929751103891747913994096748433579176029992667619466953513864762124826751679054456576106450117991418134108548822984251733664815703270251037212036764280280234642880709560721658824398030912430703414464962722874133491519566143725607104672556354063930161809867775838322574211380221434521075219225814285450237295862151696549078152738877491735058936372295293149631788741009768840022083898923787184459724671718862191105679718892716572395139530310007347699358570938665419151084165905735796458197409205451179333973099316365119106735238334136040206537932984802130810929071193804895286505272043996849490642473677693545993498080164347660819494625915624190917180598268644232126989956822267304113161581068237958304237607368611085205025274757549337227185806500202852236948840168505386611909825380169153944865848085946801264951749472200964410294041774099565780321027381137744031958762506239438130111513987455749602213674657941438560586519926201131519724112032885754076514319673171334445946859129348123313522749312769793947903346433059679082300063774930553375099355436074492067056514951283057333757734303838468231408860941584368011438077542531687140570199555251754008958107235072700141584373367730632093545909753227498814418861741748968064322876208611235021580811701326246761809120385719673889744901698604421798201253752123566433981927479852550867315218251477719211060630152807030039847353098811845249578419627155667023578984975626540458960472666332557908970884287940715146652394029681299313625201047346318063770138964918861339164405917444864450048979207322469803920695926630448344650239423197242648109603553867467922983466001755348672607256743397640809807479812948102501160842093817688306677652201603076804524751956370668166729808471608030207513827467066324403492944551736059083032559483183266364543915057767879545166211186244783886871447628665819476412275010624755156907891555361996560225811514166233374443456610806351350177075950267070247537775098283922826929229828999219186660795242284504769581909781425344122345023752077354486861611275475191824240424775200575866240379864016845425672763754551846692832740045789823919850583435097285358719235297099908505794986986833673156391584949402878811355024566658703881822979644433267215904464607175794820250246360505667186105491299767693851355247099783673648062790613288617416766183853180083870889895818480349538653729503658219309534812066274983399078033436561382082366532719584881346019689786551200420738918842472098124702214519148717078029200626904026136501434688812422006849712018567190765176233995059787471795586718954218469520286428920848449957060143391490998071333502977838501554446023998428540031259106648763287841094559350026983309206081608255654269359619546308796649630966151409097551929944808693065318234784065696981520098942567145934017851866095292256997233281982170520538375985771753557617972798682728852694619226545939069345336214125426538286204911278601667443288075460558194634628128942451140857114003581951558799668807188506731138623434870404555975119624818338017073027326782281537072852790748739674111301863377560473747032035249955923189399831302608654688440784664409312046110604294069110187198552355417751997898267084818417388866185885531383625623307619735644044169436313575251313043445279926280577181128584868955770388893290836930936865194552890189065056666833530677098720214414179619425153047597713654543137495176207784660645214037453017992702899267747499531197055958336652125550891187791932912537327847013158157335413323165371837032350718351815430652647710285290014638962227986768978497677248730233696894654201342338220017952619969677395614890072321075032926357207064027820794643243750298518784240670102932655057993088820955061541847105708346166266647868442966206776788136960422699785927968737772795610536870025986165232191398031817199728040161125960668722462913313881695802361187779859334835016829940121877139143527919751656451555980388200577852112932046188815525352561536153366634831236421912891607830488116085310728039621558358210429357547336078164946437467616941133514223028949760912967883927434030913407712348140737359585597056077050956485651816479532688217833220709375314585356948608754971963624166356957202610534243041478614245531217590398141564092989461283069342961469668573447919545889812135674243564775814567183894890419773523958261447685575697556172591915663155527301830465814965287193556110647412595745143349831756560225773437779708687749250964898762536361328910126305871547920623878976282307122991313082180706473138961021803517157796247761538911107310428398536646027525089105594848852942091069272343310741938961224155676395646790169432886090147706921624924707071392537144310128994176726502859856542042533970905049006681851909349277143345263116491553397465698560611049592460550423697481599453439337259549011181051980870138442377297260468675352927311795128516440754087261350342625312246742625720590149423412337239459809117571099621692125321305951180147417420573479774835041493168195064503584492752823067109805693648308764350187675962662904102286812995464614245216201989760006348058792765351166278834555260745928938160379679613471356868030513986766910351089035369432422833177437414194752030488672674534137936558600818557893456459201386286645448301016323349197340261312532482665320257775289578770421257346935371097880361214261182669345058006067143084906220615172265807866807236611290753153645602577763788777302500939968443500493109785086331778839641746859693364572019004038791349402835644110280237715088498038588377361916833465484627326354077930482961601722776174000410342759130286036190499544549697208952201546088635106614736438000334404678953446400991486426999727042861042383786541398178084350071604092083030913091779441864055098090912327506743394268560689809133740070461549720670254332758110246588108963654959969942183584971266649912477734946282619464010992809315710450711581674647289620860480007806287053984057842532636969940177931657420084654196063440451396892410422754586526679309383919287288144734947986755377415083888439410518519012366457944747756046009953792309477942574697300959989707110784145841691715702416431840481160279892995862305457496127066109317430540806660031403754644435790028159707975226822908998497486724591126871322413633183722817525618435538113987553982311237607255534810787539749482279011882250035950061869237394595943827927325011477718295014541913344151176625916517701744574674178140529147422096362554494237110294928662991938734969051565929826820060959859325967477441914285208328128805358342837086613099860666310035587533358650160491039668880163353511260792660428156494424509821338325084583710008982220214357364132987079796055164717952814439480098551728366565220094642159042234315243425853957624609484231120389329870712577035411355618681067715018500546105112192909709877410432792790848833482165806093656520994747651034113356463795724250852745501170553937942450787127290913474890889223108554423079497432516871849899586865091826060167750867920992191893428726148667070390919747401221621158180250173361161460869205140004256313470246537372765325866313376862374399151235272846408764352167202954140043815670083353062103664077134198756208963307377317030913954266468643455123974857232242852463020974145099274035731537290433425675585437212117031695069418700951833932315009625539752833930844112171858256910048634158586701171485478072038620413512089355552044768104693171407935695296402468098202563367598635310608372067945283220285071223731644812644066709208114405722168382410756807561915457667169614490494954212368577612502620646331970106731079943686868406656024475176624111383248419702540319217676646215068467793168137421200766183283864571633529892859567697544618279076102452895616356071937463534735150262369448385900734896419881681976628032063177202986812176683304948933170372100355542056258274405350989953638655241825625741490517128207163204552190926636600431201760904779041613886083953442440424949903104957333834137642304874899684665373569905771515226535441078271040631820886897455437926785561868433647679837558568481529132020962601673433156424828543624058127548239511182469067131150135205486983765976980308965148071071346978078301939887260313526969662837460230862514968664839628019904451095340866929656238475109096602374752678245376187294030925237105615502040266583615754112608074245484058458363320147855225229309594708263109320561465134075611518922421529835319163276022613536956668866927709381507009481965794912087195742758569611331068583581226464650419818579200330769722182538756820485169398047471928406261793197037600913682660318581360060589227430524796259117035018100839908692602623119799923692930081014679288652985971718723242763962286039816586710151018621763070161261239190203311850325858016370816658186723579873059277916237049508476744489520548700726193219794819194858871014188036733606210979186155726662110510295751987468527873367398728010223903009516445309529416843265892798434493343542125051223843419418862296178019709631256490336162484402820456098524569047374325523605836508824766968713000773594872557914838598456584982254353655542042068555151449532466818934487690822238174350639399420386475545390799852844755741323883043154971914603173716247224340075123740799444694727214611624823689672065894984524780078917522561908899202920737021441763770467794935269475493521392977260784910968001052802172961772892175391175069485652892701468771158056738897154822797500800501136610353383621402488489125393760517405720676390977316191923320842323932634911886645916034840914021367668053659179737780374050828699254099065858943768235352508607317847302715773084458793594703003840470254410973257938100071484786102296209641979020766432167958904285174391069622072495852980333396862021524014310762440687046226063335017290152623308516568366133342721643164510181392731598900163982322454183690473707582211272355905503724288890454148128927968631038168535650810567653351986862100557510976909970495761105696753142739647152967018463887425469804856370785731731709733203967537202432470141495568482054949874800353997591714273554466984851496647847805166503995411587921976762579793901961713069426118047212895882934289010070360685299351142290210692897678545045530560039346719959845850924682998968362259370232816163433131846881586359513733324113038794543741735397757903808995262769721450180665387896747438518955544591367054437130027009017908745731835296852506797384187899075066636169745407841847895091910234054434796519709057282345049528950930956748738600697564352540755126852100807434459168340554366755268486414894311606727971809947025148142021891479644801844750110781306966446986585014436519732726874169453603385791523284912255660686397685936443208932456836017288765852885899033001487713191980028091789187542330016975798650530361000553100685078603254428636291246477360681577996130144757381854598219965427715991180885071438339431554400000163081265286062932296513219630339659463520079078018586962589028665006982659327350609155033212374540055612519793389556322352962521215344900515577496070942284687257147038979028357409644037102004247508770664442002799961039613745778114779213273693036605370170282959968045650201313456530901292770017585514489054949126358999613153483834733346539193982222700370922282315620721048766574170589579928462750588591286755413014531211461934643117201570562744459331526000808777272158111146985614802738165383663913116873530495231667169028329237774108690903629876694146249825447294257235243199369381358270963059972391415589406166576730964647408777059668644807665117143691125409225276727355500133851749397062144379021611699376558907078434854282995512848019422236044955162252497857083444586651994630156940885649006314764494627240298726635722813110756126497346437589172763281351419743046437881711983106956202808737398932064672328197271555795283973656855380968874499643287926443826738116361486315712744904487868610831974161937918651318466549167529937976128493657341516164791142558770919360201884892215455776892816041529255735419602600238419550462260323606744505960411588807184058531484398388284983143499877067723337299871948013020169857178060053460927504155232065584324350485272158303133194025442730976115171254490549204487950796365922380149843702551877313277441747859598080597398617723334558151326147433417196889211228916636641769461604878647563836108701564633753780444385670308050717409676250333064883941539337114344204716042540094376663518983897195441674627331779090489721164883616927007071442432044886581212043136314349944123553469593920033420153562073330458611420214516206915006799100312823549023271748574419791439163737667437621629200832950866964985207438975886180574902295065732161097105400651416375431552189050761450179964469386990288934172360637015474877935158619091528477069296180248824187896336962048256635266775005238708487072422641467895075480174817179745035962843319202033433595652487724061273908112136209819613237154024653739981447526881368821761471452089012567894553532975872344194673947388574070417199656328735687791555294352987466473388680014799193892398166781965409560076666532632899664975827603434494666918445382932129918112835033353881398588019993712190653849148321832577832346355617950840126955209717282389774679547060451523361050952704029261879371154503354807245421909251246287749232267093391737342077133435006318457212864759104804678354661940057581667512044652736074527467463950999624654988173358076235300318906219487853342627071956215999344390264225028274635623954289902230992243322632367944782807504423163894341340901404948284280712809210655559475165647890111468240448514578474930730977466299081926738387016674981323273213693970179639384455427760047865745118532889568400909899799686369586881987056751551078260996952503319206573907529005943103294887773242580710425773177000988074448702230126254924820294395501545184819343038292417308078819859147604093311097953545167341673095343881294735790048573758502689254986851291789241655987077348582918850636255043973146390898061521478565884855323775241541965965702030926046148196502629679715779766111575325223167979892382625396797140530061283043591423640953721741068461015044237826548527165822061014082463944421511559305278051379356217790741512492793977461327977198188395042711251739470207005159317292512703475001664278390890811880535218953634715007943334558967560811453958818467603486035664430139036332915561798502050610751671002296024834224817998279535788390762135043704759638808348795323157044683269838143382736220997771461224184673086531470748853085571901542876420798901340684884210725766264160929622972080255847151008905976703407472671952946133165917346035703893149223547238242807283491780496223970944948907905254185099561499860956436471894299570603719636588863077247241180491129610869601988807087734117092138731524654906289644224390143334467997650819848039275095295193219794072893723471052867499982225615798087716138107278743115834326122234619357092634028572461734179380931191221802493523940694504884545474552949798902992318100712466738534674567700262049258606534457832460038026551139332111569511659700550976598655335510783658363364587889881330191220894212675879186890156833425826217929554586377771815966691418266284165076309744722164525251222857104994931510862217204831948325405202119893968829849326239937331679813322259175199710865823105996727067269944325380440452568380913728905006485226720057974055227744604325704581633624200048997102843352746670710063551057428291166281421210885708219027191157651811931015428811525456673444228468449917275380448920827863227726950619844917722298974084631106796253433613314941436141293428309959728256767321846723999528002290436189491821337917223736458302262503002294294943135259286966511799504979257691234783289712349705712102663187198682451112678627244095166702870304953025982756535540892026938765468151614988677837556713481827909214280184666128330677804581603980583210185085231299531768552793154304888542137451071844073464666523219842466083296289404862290098749816611700245678139651332526183564188036387432202048876126530225578532264791558084305286448331576003583187165315750650027766027038004014546611363106980595176986763399189337158319044020020530873590689732287445837578840815545453016732673608426987172843559990465936384560236953988209706638327499667940663623882982811453808078418490737442879898677219814920309709801973149880700311325984472342842560562295709420238352717881977533836036178859619007372752786769558124573087575042031422821644910683955505334319111087404445339095746820051020901470892192943427968004864488059888595996381029723837610688678180673397274237824481445632033521350510190425389490641893664726345800144474973703391985917163690200114509352315528460866545655391994520780337512988641951000756360668611746190299826367242776645364876111773347153809564949822134408123408919222401078679106179147450834792772486202502292759483446051916559905496458421294595115675670775482720519907187079172911061939193803923687279012468783356873898909061449241842581914374169928349686865643939643520089700847449863276587605917494308383441658506484410594683873078031547023716733063843867682711029932866324037822413997519526862457558871061570265567911287812865148849721275438967807658014698995260850826584522443156593890586578214168069317914182005778801397224713249327925128680608785739668047359093081106501961675781841252126922160373308471857341703288276208164266873101694848562940146428238351371573118922373040115417724439638078116509272907442311401895386766847069015001425341638877906289446306100491013696184091962158561214040258940012308303771305730421476199898584303965638751075159443443404936362113225149811146043654958562157097024701428531141006320301195324545127460207220910570432792431916819113956837306414981344903598814939523959165024649382362297668990279412862542390012601082443173883279886003026004024451334350311175286709017829099965421573364087226119154978256961443875843040052685440195189101133266854111545756069296020481120216920439692499450197007202638489283360634478956253133396252762331526922580433548948221333663584340274102150401332038431647743652964824126923911438785917597306774517131366007269555523322631244943074086043729678068793572028365251169373642888297435159275059872792911834524944642594487159097559138976363109941516342236161790184481410606132545079254245681827300157268198891396650639753587053958786828712870930610712236927204277572672451503345959860558968488396185244376488332372914102128390003473529563704748602047741655100217022713100948403917919742455591975582366131467690247070955523575289351486500615994552143668783911932675483473601887296145139539503052692233199250572207512862556749360640006413243136002384681637650402234978112545764334781651267327525568817026701730717358044535464903556077765374805445451803310858595976410960201588875942326485338969411037160627137159092908979133778293596024189132673507202280375982871554666771144469420177053229085737016716104495787607985997683067644592588222350184546011388900939483855614615823362899174340158083674238190002282189818573366319985559333665880277605200303254013378086844728723692333121616525836661842258253024832219477653100040508124516747694928449416000325647898427845854824894623733901051422478697178884180178135270370100562633217175115882968369455831228993469728541397606245274148536253231974841121401282135108612221287561226240093630866460366892603062628445128565784228559644446486582221835407147462450893237992359776737330084030533110131835462472578020601092527035013269590474576349922769042806358430701174757293066310003477694495664443651954297156005480824891865850698593692918663800697951420948088488836289962311637437930014936831580302504108368306930000838783053622891406962076107011833284435114224851565390289146426120885792627259534155475817064051973338448910464669441510771013703290960837467212850391908953778129624987554380582070410779028445303706903536540802197662576363133111253381439460081183419586089604024638865416478696604947973048844980277215896487506579620331972214787530555487970854168411239051906578384719029649987473700140902569013403868595954147381656214469066652482285756534520173202792978703004680095137910275630108034828835143089228688722123898505993897591659061674933486822998313448481199222198776182929216321292852726433480897251438930074523783761859025896176372193959653148238759556348552470350320654032970771186482068040162035384401613591019473449933774262147664716010148613687896584864300423485640481374823549900280690730788697888845091277556722641796218258725958311226138145026495565500336638970764749463199775396619562797540385197389774617963531999996513455174640148018845655319433149591407036123249487658894143926947177322600785450346113881879058216138546422475141089780828767123853082034880945207201371746525636025503045616939938278114385657188408381765548979992353095904877491715493252734495781857340994348692821727077791302973937087411087393933940516258322846652054049649869467218994344320579854093669848637411274194232971458677169446432803812708486005886016148845441133248072485356806107525461816456709253815585586541925580504263772010162334909057223430705726985294861122657289223698396726218709744111017644473803067413797652665485151553273840641976017357491948790612034479738291306057063816096655977317168155654142269769969050824806812975878285002521410721733333868152677486370319310338003207547941785766490200472254034509510547272624305094767843651109202383497954370777522287295679849529102657928556685829177334154594267797283529394212594208821776580060572114388711881519445562684797907668492945842485005154787324305723094781323647357864518167057807758161591470623984593001685390416899541208803350513866255925992907371597710209543473782210503476296719587056804248931198777276767662306168232903063148175905134350401140493216596731650444503896876408399716810168965539732965720172361110105225179720536430753790194417621901487634395337423823517698993036141040024214110812756408928303496985631277731113892482472694486893729808234260089052930970239986707279691666578362568543501177888070775520373901938527937275497107950678680968594200741731609770235414817486393601631424961637430469929090534614010571853354695394335467630817243925230444557128297086784774197138153389944581089641226899892329222601724258914617393692347131818438012773538006193168944181331802250310319255228065308517138017751117154438851754080055226773489443643678343797658925019444912165350590926798013310414305963363787647244322987520859606471383417240105100712411875610473245169964599863740652527337692998327315279749865134846112988841795392098253873063773536394655767236063939519577812758250657700629299943036267582931189658378138241552539289475198212712776117734210495439643551131276861400056145155165794102523428558303427408493456266524845040945755511486674105077630774011862248337365542906939516376618816542521231508147386479895171255480532638942597103995297597994925204377708061244123253199352650903993326311274752039204940467363033599445059971404473923352755320602248493886357128972848166969915476324223309092643785698691802128958934851854587435644896192122956403831502035196750163396730873311413414565961789212976473963633949354390445740465064783257636526642349283981128284309502208796043007931728589283510474458104380877653101960553698282538414988796428653503980617645496645180245286196807736159172795395738916116825994638387117794326190922273978690796415301378260063027864682381206831181511098324101852376720881208390653036456339197942002244781763270778805598020566088523607150091453062448667261545011072132860050678101590606130770248654344374282023120103285292156486491054776116856904108057767497625049653408231317198008927722214721265207383532784984564863153642939968298358048137672452618547143360203124331797459608272173244622575218832683993723889809104562392778277204519547044311544674281452661072583744927880316069949390445948535793582609134097709420781490279363685444351849427943443824645107409979237032693200404559156848366117946919556686140824704290405485775270058719769500920433967824303100686206144166061721011071784530416407913121019770169224921067582843993339422643903665096186669716492825862124984871292970639891488781147855185920256049243592270548916728371867564792977601062915680939866333052172533606954648419769815951819462879743760627604860778867493166003136235872409262912728523178436507562734829555698120726610840985796279543901351474576802677739454040409333715994725876792796905497966456199966570671191237244007368527707475211916410060001516509906625203581377043653581738572399351410780777382097763899891489086055655841348308022732135673682928590244921683600364431095689218174515540591274001641744251871688809662053770374736276347025289537633977130618290153431562600125241993109691118563635456683363516127093430511337233250795674659693679377221993257366383420603473492491146511077989374677743420380191088401234532550286918524963219902085315029833715756126035238133805796315990024623000898801117333134570164529274464767717284374954208068016779128992874122988982556334721390111569121084565978680819214268990567505049956906357813415722261169505641502981707201138144463715586209169456031164488996724797507294634986692897119057426198669392200727380270236108859366230582411186901503520209714813440327630996248848429016935306594378010207374043922583212709918545272571351409817235730097797742619372170047784933430976217821281110581847973076640278796712126652072716894307014078399450160460062707565943564726670188463638223693583121938222186535264418198842728115613880926565872853465686456977257386364254031433230966913102316266663430188295612938706150382890462867804513315153376475161943260431632219119917593556904896339071672687692238053442859839650808137034211465779717165940552371128708836027087855415982363753241344383162353520212852484319616931911757161262625201504323314492369812162043028908217559598756451147566684987085869405297745321922512391145505593960434291508213811006344040161139185287284930732570052669948269607777478824954221059175038027951880380847944233802906043807192984868026764876724135003430246485931010690919971641163219914238183472534993124779820613698817173036575349432130709349877862605031975912524168559859334421793154461391843563359480904986659347532048071006723535071714937408229866011483676785503111644126696143144834421562844342946827640963520793989454846991648921038107937540862060511579934707384909912299898429668561042672775364733481192695348970304692524352828709549835726328687557078063505885027575542898262437578069328733939894011447366985040663841657648547785377395891641707356180529459576650857385937268737822111143382006330851358850030802924204687344038362475437328967229957988505942933489990380881933717742583665529741884932357687147837658793292348227078516672705505154408960760889417599026279977575055238852917602975550047915440515944009457639437720569567534658572383638457933487217224175178935044881417576180625236321064825952874034081512270871282175254678699555721155857842881630575690730223687108525880468747375434603080240465688799242880183522177488614896518664802704308784663281820276732332334072003700568919935530170614468988266538496200763499128013415448775139781536880333693425140432422200687195406671766178936834694146972796864836847299041245109340676126409221549770136414131722534081573853414519461563285983644326232007443500033537585898450958315710987881504724945894357056653116223431859199015183316671110170675586611349115364450405172919408080179186584781880305003364656846653540122947371046340569792607661002065971081800068750824538832530432273211223280372084137302522101777051285027631467982488638952416760544026806186745595946062575184920594302333223817260314751117018786418126533293636121986907974738445788318695498957886516056058100828623947434227419293949970466635582835462141144549510889819103912869832074547977562453305998892193789758359526995724210991010549206404728686040430874481341082839296122698452583484618211232118680644595867805749911258966653804319015439774078467234463521321835617744094963580296476030244513951015988741226968233866616465563205493066849295708441989766370886387445229788984619765816692186016549511523872535460736422026472746132545226159366769345854164667533784349560862852462855165194795559042711529249153925262808056937607439074734008479281630841216567966421872172890238473604195200621709885940878944998411832538951797479283459243225498339785841616484213320416877456301646857407464397322321560026199070531178026279858499876324845272191312714751945295553547198517504833880557405464180409119054675030733655138678979735219205040312931609922717459487539737786800708693833144920849556396695260648100126427686979702863422583508302723957128182626722736497614697858900171058076156782472127202842087429114714694258490434050505042617008757131732210250827974699259671666082095712278167842835001358465398306124441337358708726724655442653623083333417618213841188700162845285808402086476678688249486759851985503364228933787517142155943890545691868182112375043341575030280765902445527059715614865721356052178194304738627183041725241464046389400204472627139982589223591223113237314993302829880960282708412428175087999033805746013303395210638324714988103274921267589888702487852450561574641812416365002449049932864610122796109017369909542208423339181187143737337197553586041770975327394098480177554162504102904814346886574373840991425734099559410758831106014126256410563926829931026963746047347718814801293607278819660331996493971249859710941238813920988883864385433674731531162869042573418966364561617068625109943810563789097507296986924102944631719174181791096162160140147389928540712590480778580513765335173975849687097579001429935747020584873138547138488165735147811921510638073069029311736261290602681550205766693917323353552226269281271185602783046374176316027983670356824694234519010601587890709115199728072357861790655315114447397739951779582938936540578735006063968687887514212691099219333860062425615658496092554213934982868517549687881013780029353053661773020610488274033131453098611027707358699276750274285110263134885867835942183783632193359856938400116585169209271337110511272316487689296641048350023103652531943333943883406267659652612532125141369367576325873578479536653540216298008643756882742359794042487610417251635198716038406452265781110994411088790402545342584628720682672722214277562318979685675271009908596704676615897117838778380445024336098504969829074450433609087496081454701984591097637343292624269015234612462960641405043487591858467760842191533127108201544518186977260564434091770564873292924096937434356680917640723357228647910126438686203471227273708937486129051067129215698901645580767381730444594843139350569986810439025185425187147887597426780024034695250411587356048646746183807752278925598291635643161132736315945850549380073716821096072372665591498396002851118028130058055468717705884774550620538424853478073278339719464291170827138655562820122618201823377707546937722181842143904484341729052213035811373957655102647368712958729414056155038826716472060631374981840719560212533611391314703334620011261067362727697154289621493563618738196291523562104101559600322047444957955794459570521581100537121798952354755465500117862122856917778495651078893263405257384952661303721536264062643856091824638240049115728104623544151200795719404142852877042764265858171813854286057622860847517134210893053403199099128985444743249673402939088122072449100772852277995278086192478048948490281750073712390457250571644619477891812646737522241492725397648746127300510197455448133120196578634030426601257465588750938735764414165575232042703114967069257517199610946284389320983992688513438533625355528793564058825761479609651285632032588092795286877503275556660539985752792187245106469766745215711960702952406151825565911380894674113243124940411561212001083550280882209625528257636369900177350945590343871135672324150094084334956698978359472849057799639829297038394974757098382657990563866456941088626548428120435345679786928345018579165920324234721587858040544830641877832187135993530857302613157185237635664074804180590211685814635400452777766209133565621601316370387623193261398728149359492128960342044917867059952225062333775495378753704932337443311524618606630137811830631145536430912014083254046921451824983247670082993052865644002206808659532384047499052722311462713562613699156203938879766470931922954465362840404216027415815967889214114319934847528245566845620609719833695993542863926634785554563980811083017833063703585851984298193223966164592646414101553979175474602208093876060660445378771761439655647221401386056369581425891897099863731458124785140138939496024596219680003593839236586452364343350599594586333111764383979058457735021384298479072698583014184244512855341868051244707657663264939314270764491872336967685221179275608225696343651313581552722099853228630339292271157961437248245784735388775373001550523721302866867016708839129660139524356455721661853848807651118103751382276686865183658295086026208973222424633844079363133671540346669894009997070741075969299821332657825269124408450181436502419803082961432794901037372381161576667110869226215671311392520403090295637688700131054630348218621856159700189186154268795440107793550580001712605424470811407014441139641326037013073756872118012907538308848861420196384497112101589925712968842257997430343446571219716567126355356890458635605629049660981358048327925130590194674900571106235839845575672809836433509526197884924385634555374936222057726563139456676122668697339346649227424193309772884479003279157120129509138869880373717581266562782455391114709503009998134409426921940580865329126235049901036597084561170231126434957986296582232596412298852922435266496674997144066387216477373038572699463657485402389548609853912656353105185156796946292296996011065546627290389468464931551159274039176387186545220549288253267179169652447110674729603864316348438537143262608441787033192028537262580180875729448838659894250385007618793411418451488032496002574033773572969670563167431811678700947688600979757290854088776193803898465840200239415280124679045602932346705822288375085886104817115789956855398393469313216705876318478421535443912911440290561230653522294394080302164684289786174557052990356536710317323710954263561989364028840766209584219617700424659489919546344918705980044150278435195519303532451373315522914668702223194448761723249382076383742436342710253083651154647978860558269558857459631378071295954677076471299894860529400004233544680080619361999621420714101284273633079383610268248425271219889714081488634242373996188053471745339201423693544996562998899827660988128449751597864808839582807545060010771644356698875222877831857463689549274197049896465438353971376957801301932768528820990581539307395984044657003732574551390408943187181243791200692704773070653917378325284595445266974981616392044137604506186442141772781160545116227603804005656146669453696808241734194366901067930111984523364431882395923553953350772530426307898331428309457595464929173093306683643396989426136565465509132820495503136501977185083263868225173547944406116709799954079806158413275149122951848372871143235402847605423550769346998652603035280287007573361265840823648159451327498903331813109792239048966314398646182831332389786998132012304153720077269065217804245968091340747753907338632036976422984763129427429259765859522616914189096581346814086121321401534679466758286666229600133740757651061184458755723488594504151374119464649502428454064579205572798887626628010495594755564865962066387157589175332721113398481176350905549824499298953812670853000933929372818303015489626908888026096833135832181151412141172256554861324702619313688098955556530255115002696708384069291918086076865452105341493489001382480184221122544609729281965259311128331474529513592951085425168735389285097235802364855564850012934540621833613210084631562323326672907218846471541199944704505211080050120365749207711939771960428918558495038791472514995024894380430965720320895567061452506862765213863811785794481973717974406160117068624794510953432551261906849582182229948258234286505460163841097509747781881863212490924530946012554605425562010884717363150094054839657720338916481670489492293699687140512026393547471535510637902689456881142099731315522136764076724120560376872224701376430789164779046314533969856533014866900415189908311118877023411625535834298364431367074402063828892229409225250872321901537572513571325527112499730687559632295778758551312860344250652858000385787295948982675384113554261918068616751389463444455569147361402136945029861811449530998177557745559169926975773942628684500087098737515665304016802343000348131336017239850615405260048056067621863581552476167715638071399176381456186847823402570804005934507477292001996007875336020476457381722455770298295070734905019629468657527507379687009232649593144466332608028893724478685646829842457270373857097761762247364107762418405294601819282667454666063168193230984912423531100045862154142517651187634538451257157897091008428792006240205684829896436372667680317398904344961875686241346091175391188884030112438108101409621963614620386774198202926914709571509776633654828820024569385060728331968139061789746329190693611633548486803752572335389773998452305047264997954363901786941801649580909686132229434298455680249664079599564643603273499153343444637145144167833070250446590709264543110538862960107535837118236706832543428503896981273925974784241073485652601556632549385815482359246074177980063613031404759260575854555422281543960416440497408679135481765768339808424977928860837242747240533269747967114072330190059636250747060004924916850932854888804686943810429428190766095186254753276167825891285124504969181434539774788883701763527720623802779635194255984864452223964595753256451020156491308600785480072457785116160361633897145264184056875631601034696213611192954349691962356008461536932019138582293067672356038122489902688421007193314203664702839200464622476513682827164805967426846509437853676515910533326826751562503737516706110008638466956136522513529900505876733361900244943452679643558069475960851465401569540879198987409814970144158454643182560617537146037897933785362442023595061741390080897037103680842587056549827323963904830047840373710590501385040926641156188005186245146072223012066100576874571935401273416619063993358961120921743829122824860293562334619493378230425073451705157008953017420790591113612889229692105513321787822835018436739678693227249705161500401348210045437854974064818743887924237376799228965267686515909188140754499661176089082993292245537126301774729496915219427831024545552015703088181324055562988820253420723356447723880250032761824432289801134982765131578008879614552951050074867487118288561189659758827302567236826437471472960060171812107817803854926052576904342931182621339196059039474909763838530211295501472134253278079791478517926290287496157475316569725798052683393652284539331004162964745546565403698508038106837605240736756530804848031059588241093040353843588609841564673043739063167618147439323695656851540680638354263789517140077186217040639571183806272964489806755232540074016909366019305021029322323483201610046248026983474897999261291860920768461587732721640511137726997581355041683510135220358424351216953146856459389330790512801728364679241286740110752025608884976021469417200733935096735105902258273888774124559217926224185538733968637058918979168579056507339814993596377762861054888517234256818016833953089943753360031015190729714504742761004612723953829851865535959113839116688045347685011612855802004777648921538025472984167977395346098237606015351219191577002369756269640781235858276672648339125051331544767961319099881194621285935884100621071902770118990917936567760732796706148499067519021930302495671090010612835655547481446889651921695475762937179050387172593174119931554551485689150077793344642397350995077036764079379684553671085109255821210760875393666983240516641274539138687632249784750111623272378484101728458281341273857329634822414554993550206366549701013290465438042279108510350802787061387588744020553492762712648413259121101294735181414692048175870690930084082212642205842029333819630942537315748257835276765611948489410154051622441713336874834660608327685995094329946541895868533739588638803285315926510808268471740168414307278396967828437369662305466656948463495814136754805937479510651398503837203780814415864858614141864839863792274394929249646479360713734399571061547946781877582857483191310522097807925882157444727359254410224477402735006317265090762489866703042503313853024548879735389328142493840113636148830905023828187616430078678297971388376590507042057627904646043269355487165619786654985914835364986146011848514522472703799473861787034132789637735444796708427409043048726072023674818503818563041049967456318920152597686398445785912633398183001989843267452425516032704118322890732118669393003261606922051659262582706153372338958046689501403267092453453665910549892923472751643615995510773912701596541152987379871389880487964483486971805545563284593636271126086773740370483116556365211451177580214386301560002922678686271389834717821263252665380126888249293668194751869355998313210449295730531679173825899338131640633369875852812504075271135916606841709136137725071529822914903629734299983903946588528950013547042421226584639318531179588342604838183288481627731272985959357442243789376082996745655428578855340837295711020663790531155472908626523889907937388066548957089075173173720750848381187833621427135272847151533513994915954533903424170539694441392708345165244001317710224284909469828764389641756551000874809692689040563718989251885991905383987744576454631934272414404275103530805950385043963345371126037869031518659830066301501505099971346238617767717376270128566605652300717326057720424052425220853394296323735271517679999853878384322987318052974060620361738134321425627517123161537488817282458103222853065725838596051494856966570599212543329047762874556197532110320624081747532981817741383328796069342583324898897219391879730217092930385217769859057227159636247793658899719387905335748911592461425316247528655350213060067797022317595898531086795755203076043554590825252947077870113419448859855476937779132786815346015258703787233364103246400847699198079158172322579296651700001438022160935977289261247765294786191437658443929187751774552677242112146756096915854204609643070224511759165778005272430610704633288012034955621133811673151028565890785374337220498527726795187626387579181331553223864386906709214480770028032858707794827296841053825752363294747882420768200448231556449698443104574415072010801690929882290079842609125865688773692255677738645011617172989659733614516716660716688760224943232403566878401152044041043960044769959505335106698672733403053415586505126995814247506769423232566434932819421760518668211057765359467148761140635326813593954730264845780070866989317088363627286560766136593620076820792030416848588304815595986384426067589600022300442743735440561138896560547507896856410396236963451822033600282186310921152163646637703419648281945427049614521748704262751622133626485190989240706655305195480115657001011322256138118958036767059056429802531819666063212478038730116209936415923308468216025836033961812187065117912664639978666853525119459081371305928511434267650942736085753274282956555105667848274443799518103215078078824168319524645769263293231875126447409448213616404200339223027140402162938698924569998898096988166541168460634044833892423114793327588383708860159262372073609205319372864864526516182686398998928076855305023090549693746031540519287401972565988621580169301794931797116671381344728977316720096189421664658737834701848330199561495943599258142561946760889632345170909573947372265072782940695451876710716387213751565385040591619962133952712782313965428622258585336065714669734257428635806824608565316925104033791247507803192212332642266492346123812257843278485680896532467641446309011508092479280047654874446851195754511773746049853440311298225077606304991095134061220791085339975346820151040717648679161791441981737160457848035616409416263859960543065306452232913123161480553798631497392958483478052985129805627095446659709527352968007150991055097948026920844052037392034122103180130497998256000794315012011032461083092658658423437661819441429395654194301728728812433190048644456279305817131349310564990163575810917695652107502276449201277412986998096001213064425528237863965693655392295294837173699162816239864115151942583523155071573647780176800429189026600932510798922446019400684972255149979745501223633765844536321358479470043701512516443585640572152614448509200582646669916777766320207901954676249095403847285492735927304746615383072609101925880683710678553472877974786738613274488960984410906605848368516834737369681522229150678771458168333499966571951116179156689822139037313724475399108365584802852643031049318654999312100017941429172569817984134451667250736771055045113889599879958710360710523071995347241743971384421463311109564102004642347719794865167523619340143258704749809125950009398708281980323297938666675716420130750024263965106525668670295496624348522561143676864392504649523078426063778328145129336040212051213709448837255882927313048259897623301555891495437014695479627709329784199575262336859326295155038476540730478368766660637070652840650139299508517454391171016208062006646460821294081943736393815226268881574598639758931026496445132641225895674537190490607161847376333066017417323724369143482425527480471822693728719935269096298182350453557078006832059240478746164990606400427130081549313109166184161693686704450120167163081911469770757520607768104146179763771204462316765673495176841654719131069463736576925899061715009385967919137377094219649031364689016090811420319750338394244939078976286289853603551259183877860872255125270121677051882227399588992191141341595394799484857560112832645379265961946893209069860521375167235429930151408365878457354515397261759054438679658933833297301310024168523784594093669107244599437361164923297699572384900577469463773214672992809537387428677952502974047060512037544575352292368015306892578070689064002643754455466697743006371268126796596592259188178050238777793042166347792476542563319093883703499079830862681727023820638496999838613768007715175055504458486128254957802292248212553782030731906325602446129588971755218248248280806299551813449438525255694838545323491382196799615467057395758999153579379061757714982949934107000044980115021222972840455863704846303315883269652487431318005348636103624982172217878929735668164480188242775939369399954309119974735963343067794045607982567968802697851766621691710437721850096744908782754542116693253787167373989867027135268783821151785654935386929219920275316467556724105109778140622452446973795913796600840663152991056855590607253677616656410785381573064961354363523361822967349556710265949523774644387825404539413242046042508977538042541182746910806059888324901824784093158083105812246104590425655462646624676646832182961752489673580441859915875927800377338047793653493464849549948856311912108287506479753147484715990912927566612852204737954535494332112192924791622850059275876165682258358778214124543036846670223287901761098556888838755591704823581112853127989578410394395204088346543500145357038850298082920694847669707145194716072157685628366590243063445916313014002050345449257003378269892271305029815354467704017751399682726762593462778246712454598369681620291805282361883314647515196577914713320608168184182402158510270348302310892984523876910932775949687875707852992649779727935034151572261258920930969609174543548582206898782741321743413272818524470619335752815073430038569790044405496676984450750439051536250267704500008404000311826917712219661996866543249502661291920476342538246983956268255209270536316788398986306639635830604983684498141088002613374239976371958581889739731934705878717350808093812944081311107082092804621190525612494194965049544910157689741939775189657366930688735309512219445917341773057090207110424065153130605544920959270714415009483274950186164323269323087198838038200869900934954635578186426324502828283718626707770192027175772129351616757073375040031080261291345937926374908679221045527622800608232342525529776121163278574106363500313880823734456347223422903579419842045583017127787351175631440374116539863695870203161434326401778891249713572302329686197523096612315197799371345756153516565629525159215278071109314268819809645387537358032984595927914958961861285350705368185250333843573525452838329152949514475726180553271682480610378335909284443562453602222609775555899564378134000534338123118239690265615588024666210889506645888277591855476174293966066056560161662161589602991122852889189325601106391068179040906208197776005965462224156486276617349210857928196884210138296072774661510012539000455635874040230719643803113151833496019547260203214683464358639724292243034064424572036467642221216703956081286938400980346103077781697786979830782569724804867113403027598571135877131535482330838054534488852062077898113599868725444591830796317218647137859748170025756228272194890047905575582768495853607976604681939764296662809853239667286041275975080014605046072118030895011537521892809614942101733813119868426937747607258237482970476724135752249174574535760444799279959594763369834867007676648081987462101029691203619283796978967370888968766508046705803207276428925124008646918804542723890364637093362785200480696533296882513058846964965468500921047960548394823803389137939490644306590395497735857494376933452785105163953543398395487631885248084982164982052680998532238422135077917946074318163493103000966656051125431536430357627460100616577484946755422705152975367166711654463822359738138121497137917711217446520980783507818307640012103831738670055395958428797354020752044297195219523781298712051091264671080911431843114794804744789562002756558315131456774330531853202009410013316543610562737705199980125266074444748466547227936040847416027568518661053184580409395962297686014915498566736002390078753151530678520141282361904350165804591091444511336619340175067170685920767527578973778946731508332216718536891827849261631693082369476875073049687858136969076207238289052157252527852847493058517935411728287081541926045704211858031130358894582552177995476277036577912165561027126578639632392880739496925094959116092784227721243196180180062441936660065210321313886267305755101766954164394536823245899334604848558173747339390140805343424798835722340908875113804096817951354792399784700617024361330611894947070396967828046037229153303822602706075293717450183240409150510448259966512507088375519941861281017347216327150844208436540688833483977277120208562685928333688100447662770757750427169077103691698210483233946509533127033653332237916447817310434810427651679966602941279729082832420183698750966625913813950507805840723137675671104816923170752417620476939904808986118342757904794010623048627693691565106077869014181342531910768458783919903660974518170339651561730039017953337965916608078077960368104402979191407679390456485093265748498098273670140262369953634578567965906268070024441615369610422753309000020797074174694251789315076275608133879929328831740901912347253163641019498696760265757353651213585836323700560993964586320415182838552099975427250664822647698733147768731354307391674197463131702033959787173772212412267949179035387936349726202260150545012926322688498669235634453803778382474830052801838848922415301142808917355332243664281068343053708384884298907509865469746517453074332023843468284739385298258842583423058486173507165083947152150618844693419684991082528959216234042646832178171398659921447640146476924726929882426332673312574904910226134877985799508442637230340206684939355490716936058321517868233211159302778762403141446621703985632750955471214188800814517307882715309772903529300067125802092693802126611799697837063977208016430289910372252132472438650364375678963341822318271436816971317040717687385917215750150798751662718561647880918802373172914562660985302838809357205522972239338665769283048118330361707530843178437083128426138331833387453959591928042748668998199373895986410462210578642772048357415775948117040197671748781948446077962636652462390533141285717677875570558564621394017390834879386937229144210486403598970201017940902549712090338636219583587716622832227172587386676178632840266373323383933934952224665885493509585602364063972459210902455643823173741598033102797821728055162032118652515310738950631500876258291937656510194336714711093252879434230693361430130849874370632895546093586447027326581692404698565633202066573626420116169985072631786654760581330954875626570876813744381485320805301986603396930524006398282119700556272781657906446119762179016514416551157096772789389091802523603906277771075522007664068675476071829743034692997925695723422890169677194391416324370563465451734944914564086352825599959227090081220832201329639564794207736695722258872167079103683662337266024563619436455529103247501125352368526046049333549784688561644645186687938635169212790250249778486647476350489672068575412209822592981468319120815634900454456514453210104837078288395880143302408665695512101249600921975334469508497890890161072745143889465281368487680571427223138579002866610144694137559081911641752616646816325323327369383459867640040157271235852848240862246375069615841902744090711873690263509449034775166622099336077523705593924172455419104917787493241002103169640827429352920182274396556240517129136473040966380803342721222551316852996734347738857538652387487841102464431635023993968068410802766376186675898114200520589061306936236507671690038860164962475977066632772634154271438749660180248344413879256665027699429986099454268964873801300935127554416744244464903630417180429947520318164042874129731100346515238057503967830446361059210963825126146756048550117067803956801532057223892162125784423779345558938304789151670760053063964100278837612870228140451200601250869413105334983391736547883761806956234584820979914631514027027985331087476382501922486158282673517994545881007524568672357219495776491174307337681159572446484152521175245179754774044781449155228617635214036640769138796001192263597669500158390441808922439252511585276239305566495172090718603278781470137525031802832201185852181778990700568536091963968810010009797411176095830557901134952472072587695374013935152806653822362337654899449774502452217281336486138623759291550588019761038683909099566916083973405505975663828943964234533974113758728422648617861731064403586411326312272468480094497702036396743996992396600766150732268530871231625292136446639243397915029215610690621664457637916445502652438735633826858895320287189669614884931142980026676175365662879840994407371620898720021261154023699931777314398960838314193288711703004865929171722952355410490650218557678225251808005443456379111863218648197946716072195240258173545020096173370233593608919541209517948080595370487173404910068465652707876584029698940010643815217684073048596572021373089451271946784284327439454138377922195460651021040119850028794860046473142216643603187792600578542576075841047711070513226724542701386206002343634084827342186949315319201192464827422693943264529300253267700836333558331871507861857739383441918395515136664013982311835120976543303444456142506621624611424238632111563916041220849015704345605328213684080816859097878926231859422634437391587299608720249399587454163641594782279883349566611268181203485469019745841588438961858279729011039030386020964682174144996772531555912127943565893538679469062448270283328948242529319664541755658366939575816538979756773736358553248904863535832944495109573083964625487902101644201575659824924794812667095357610326216969170483123415012066835993167673044715707104129673525645341534427144153135166027511464111663938427393748868206122705959636539595272841404673917143052479637034883280425432227896363557596426412744116120156941898632961069397142403397460060063381261681904058011089246134545953791201310639542843246742075903712678220199199145236258469714542713472076363381411035484840229435646370536456786383778333883489305080483446830798722878983609060461346035091569115405949546304301924252514647981951989921345890166102773591689153877589210533118416078809444588397170227400914520026903532828741740409292019058334039661509795108384673001850608119334269348680132519972886162356688791928725572459203554671434115038197646777359935061393155002349179191972733553884109455669641805778061521902618759114617592469149209491679764248376066090104790355225192192365945871596947130867924553075792587233477448026114385236268403798332906399894034167682096635758455040792514448129506996581024853281963503772790092985373936358785184388725453032835854319214184433210949987186191402877835915003700066741585510253806146856439874276189086909551643969246936546082275444055446943678725562534184027020382870736852855969429536575490959777527019135462755775197111515709732984276889877854501955411938581630624432363397130948500177860335474325530969318118784353318389680672346254789214094281489522285018438961286519665267364013583057296856307133225009690199325348430460776255203332470806067084002100282460799443789394806099729564310306663365435869234099427130137638858335502882558920010171939830133714702418953594872339345288212614505636994139636663877578989613101150227237826726952828251410913632607273140158700635970760103258301329914681783041600291656394614175971553311358185048980389080038178659726538585045036192940495470320592719073652966523607911709748273826165861142859226013825105945355552863461136837188229426250170403041693567102750360298478798594286877072203948447266868802509579384296418255273180646185026060038108051271263087447597997716431140218850126183185016508598977307679497195685573469827377417629608885836444581155521411868938339099258245498616774225633104502315163841625463993674410751171983506471532704293798305211929489277599530891977458293119595363753454931747758397045893985530074695618434049489469229107215777810993041246092645279243194328959643490559440422296321197354642156344272360490130955363405898434091863038248346864111102419161070889520037528504541898137950580797842483447170641537423598124630174007694189498314588780327962526251845520975811273435487080865943062231783240618439626421394343574351621631683333857715607082655573776997981870764012219798230505255657785396465736788836684464602265862474412739618239601339821712294077022108873460839692402983070916495876647425027080540714067976970570205456454607055846767382331617473065559923263076047365748496413799019380621852931509830345154028193927171407343814184227810956705718935182795576325753220061001199929554849487072892283760621628083575115012214674592297573583000429397869694945090589889116000080366308395915982435694976226140198539503870001938135155676540831596013895552601501789369496504509926505162942855160516352042773442050522113328888984894352924031146112963563930355281442602521188816444625083490481412195093608028688813474196313401837364086231884690400450511549652737698887426197460189612073890017452795064630396339100812903577839615147852252489100297576894727141500628620639131579027177496669437581449378095031194878455428927566020557519513250594220651693149559518429985926928256056535090462079847069789739536080477697375059871876466852737068587634410057717705932487832687107754285460473744977100448452840975377390305490921570383765486429446372476922681333142457952393954931927157704214796313547897791104935038475572973605527415078766465613619194392724897343402597769797524637745316937963608267003235967711898727971292165942090497031716216310153713956375228940832528752302148253399668626180385751681798297109925167983775124951894420226349767740578112292968897700954936471585673195855819268542651260469011877097624842619690264763558570163269946427027813163497709234174143654995773579071062740547897507917300747603427021017353419593096959674749659744543656743594663734237918786979808555937903941792683933256755148977115802591973732423353513645611910279490341469447333921741257351215623423968141137594779341890129224830288651875972472985701224592584269432451691152993534088423704573908359477843052059759748231217930959182659428556021636027338332060752715067853994856196625080119574986232484319045813188806050481453385776785789379336237501831842364631019478373316577110972984936969311178439889193582622321623797297237604974555823124945111511574336571206592179100552554325575542836268678120062434674215829137686184256000414659486609771111557837483949766062466794789288439732497789212128192351701115183981065361458107540489569747523550030817200730799779843531544088220933763051680008830374465578656409790097713125783542963077412995038225961343701400224591638661638273565775735147426290147065503640249212970684609543862747725375765389826373808593354364506905567482143481662440678939619705780653164232200020823003072098853451139101118822715540494960811031228398889991098521065582958851532815660826526938288782613266502138950037297072154857761846296296362480435766427418414378907923775888885742717576129672026584604089075081558908839626177250977055239298541129357866003274626095717095672679274672989217697231516413129475656335720978334676942776056155383259588602439815390284027066663413876867099769802812277797212604589880755828741132318950251491935642699223052380960142053495144860946266853606582567310601512628619274511662152923945445944474583143982616418188407992402654759040396107870841884166062728120992877349167988595135220210818453004614576122448700393460850701319477853516040029114593406200298693703501403308177084002387640285376176507668518043551126138260359655007255994615421146108817693601859103461274294267010816088638727670815047207887707605194812251120209173800412939067652291310658386545371678793680365168843686809772735900861467394975085171589974387675189813668853896030560941007179436283012863893610492409234161567875789068420682173837943149765525654081812519287477043789795792415378852397613844234657960160960873539550344173978836426807010065366467331995595541112990411753230456889247474761716423870564468808701011910510385072298670830173289281868891950968292967670845558685487019718817821487353291293058225104353101033683479084650197932758949569261933454791544020541890219224227933862122194499518243292244051937083116661876574631984479984882673099327516203643585270735231395237307035092234400946603374901286985128537339472281722231516150369761319628441317968438437523994696516885952396607234113608595376032746031747820138190525989845114749160093002759063500725120992731596809736587856317642285742624130784476249620290512970780566552982498030093676715131848563710089557495804341521976462818830834245468582217026247594723765617459380417507958987082122721335074541172985397127613775041982221528243903501183407534648523458442388328282095286136493026619476152197049786964865433237635369165657188728878995795477390812001577848252223722921920938510018216342813711492601532537222397221343787403607462262149308065445393581836060751112161200261995767485716317710749847867371327149763313873621636746050933511475482139555748168205594640311856970529953968717961539352216838295330400656014975643363044408820684372838053426926859548358536598120723660709593917083721972342568626006030721277736544423157799157957897684024504623293965571931623515819508468970287370779730839740429713719860440933968435441721180697534684030839514009291410671873630636529860041077201431020376444553233209909106645152672349160391279064218402376551825505943232203260047898497593026039647233340512976868590066860377036247663118379954057203009954901883363570292329459597273611418182649643482549650990933243835240176953240846515411703229491899803425241991964245583626776707491999682710917149691680513515853680385235742749264408460015301626882169935439780371167277783249037064216467026325992104343504870062975808595185914791241064457677105373257939379143213140301110673976435038309726524180884182750697782527422834313723319327436115390828319728739046528721447190510325826517984299888344005834447433355642570788239203301744455936413766385640736615699195390426815209552785754677194078297793198604391698570375508928192004357536418359381927964869506593381150152093213459402313585296257772407112560588211029268116820451689838242449724716362468804786633484378089610532590316217820601408851727118137731624822136233255368549535557861937229437671418433863922752770819616567922961405433566006783025061982665585968970965263879100116073081903479852982335011153583967716270502810502010459530508137346359144384177529624739464647184308733437726308873090956315541680067427692543865536236453062674523462577388115055535655040811303564173224570763138422168300395053082017488964581667899813610556972502020564730264264103663983848686580450083251748246538518878675654163533896913960896180398270157411887083972150120264663190961351075329725370212824310924350592752259068816161549806365120736829653822750263481554307845142869356407481694269390569395935738749934126782053191418617370301421087486131120077202709450190201794394251118858829582077046567144664203438669968139949191538674310501100159893466297745018717187454089530970047331920440471482216590885025299875211988999829967878193699825823970986035429995853241216292396281106689318333188171585529313336406200547909760523047587569022486999433850615980000784951846500142711092182683277068585428367161107636022205442163013087485031434937382166112353360148739521383820754179401649828362415631176680123703290927163740806111723278195848430754687886803361746245607742930106589928929070904983177148739903567632374763684100126972020805156772487634829289757846656872744731787383133257453345383538695707766471158780870372898149493401251919828544182213664154417892541534587153362123721252268783512422873985282467035100009611080658218119355977781572061023088543675368594528545217712786565154672894630828577206921564985293270232000187131758664906805543260758198331276436482050725434975560067614485967405019109777776857638036362244362334014742898281827582807009687908849005158588177576008861307235662189252337763334691086063343264747081278952283466067014802644564648041079614076674233795645886866237234076926009639481301382550113569346264350287679138077542636317539980453665844317988625831050182406352764046606867068197623930044351296839551053466986800145691296870207419418513235668287127411681768237475050328643233617826257780410650455025053692060158577263605494770598420277400931721888496047845844456246914979628753813995757804044251382797066912384851847922286483822661615194027492714031374549443087940823483850565684552448515343485521018055656598088139304507363606590860821978536490927349469743329693315682852685368681786323831234392577937694545909177198505562443546034267484139950760357421201889117756736365795505469793102182259792065155854459252573711268165262072897683245344252992389369007240130530944691451091047106641253690375461318783818056885158934249006318220532874890109667811581656748148934012199851353195821822513061402658522485366928770684120929023802010302677228514329819956157567000936785997324985917267764573713215673656668314212339732365901174423229993361848435774206329213266554511001330499521003945726379683746498117072687952201465050351660917449844192966012382362383781615164473820273013185770747225164464334994450038696121212643553917142860887863879912712726663029713948808794063350523882313596289066788115440601697762884719809496993180774083653079113084030838389130896324848396619256150955310552286512989476594290247823611907855182714846097690254567191661835799912868525465699412458186556530224198680949826959949180096738209333059311205751269048139886219692144795771449290583821047142879297940085059461143823319712527063862749764434813651168041625433291697726864025460423919078993569542612349992706246025005707352164646947745468629467509075252795433351931021316162805849230022651316341813808512900301763463295432940729800649966878862884061383612593582189071081588290659475262881204622140090786625672297247898834505176456813608920660842401592394507812011289731132135460901089669838465742226615136588236415102959624671033865564277537832138422151074121729301233600553026313949230636938380383401733069976099630959692683140206034958122047430979019460900085396520493893643058219527566189806709480315469836240068163651375221966485528286535275895172930985726612932931780018174627478502038921844402175458266909628750126958646950774231057306966944398342823062753901358176735562925949540919691788348015099647768691023117048038700203995391743223175852989880981841767460834524834465307634765871357212157013901455102819983552717876067975261017460393196388519936859595098180077024948304892043393166896577281074959114737659544964188796449601660217812355329248862602172962488665844079953202711849060440428477549084050205135327001014313051637969936159262402588187997878016711353184947115952154277535711472291014901050046948265073515444538364498950182706846618729625100261837216610630279707209055648707198692444821692373044433398707781795142459405679845426770269832360050636745319047383694868278060798189975488127542964217015095473081714002915279156983194344960444658143316671741227869455480819551130458082491328030767449151566034355049795546629164202460720118929859021561996490313408393591952006072393626342267162284330198514866279919307031596886385176420755812514696878260393910380891071965005366399076308060007061609282297221973025026401231310174954782455947990754504283464032160961464837820911291728362268903200148060665486714723487554658741490174939960535872027141483167112832677563131412176375361527590174829357276880953899171470135329313507318268688416730314627585045295915732760751634969424235131040328604050066109410814615823032201095200499896471498016467785269981741607135588913434724526407333337352461188439739726441702195263398555685981311877673271506433964452562947603153673224389732813100596081002062281312503451793130328321116592577955288097753750724769644340176843432255696230797739199831796400514373305953684693702625985768144985464775093406126605946207957298239872800911630321145484568947430345212791190252682511614358963870966351384044791877120704891215478678974436776088356711783015877922281614151086043082922316129686891860328745163656399340031716166360349633134694134581325398500292112781611324683797101960241846807290339700000524856796267626257635842426499344139545877521850093659090042542422891996274047139224693024352126092065510301355339567359593681061892032452183486130636546759158035680480172958051906217529930091966023147186574704752263452874755246696382890199230893396682045149574730456208178293320081012475922653017237364674769367099905417282230252832663563076972761143804462005655521054523222547237443285987695125041185833938821494138589039484423365538690972748643793587615314792212700511691303067340985444130782761354925728580582261648371661829003189322800951642430277584029748293959084479224741120882520403900319346240045855496460336099658962002297698759724367750604814572281749030427150881865065897714298354877951342751173630369208152552111420312043654919336455159735143635615010605494140222918682723471262218149466997356346032341546566039745579347317202576670975556289990913562092095148633275753602738651604305366521752765321497497761069735809951635080067373615969738090612818942461185350193505032501964175497373962873432966220377787421644164321946778257458522298296992275497059105861217574325066751898192006919892892613997942061569128864161921196054827616340547722707799304944535690665209581385066632239256958822112533349364745811838627047542287683263046564879444072443214120909035348780941157444639708426479989898694365218022719805207394287342444647360884146340295194500054258013511589234461463773229142168227819336598699231438468127415900403839938915544089759199584922131986470146606484766013948222401715808723895326489666476898207601905496783184445670671083347705485087393694017443063693592699512470129942926555278243736133195628708460415121695951681239976901811404324982710262440100691770997273918474529655057777096875768655465465274849616586472073440592480428047579379362660753448558105630545014044310433731197681734337579623484387661708448458658241809582795473482726502091278585640383114346843198248350837836608033616798624355905126412994514865806531735061105946347061133089407897834354302747237284636587931178859236092277392669483928789106011217593165783836204798044086907615056237701531280075122490958912401887359573721207396821191587882395865470591532266931629189876739965028605583697481180640708102308515396697372408612221818162440335404591390680621841168455074500032660734795356061545384685264746086770933941495689919951645952554605845038194373800512098889544643196406345888739160560978277183299926220290331814061062764331417575629897758638428172161173739161544661610361349511120212938275761696256888232440701593069775862035297775400884053549332723346911871471722628303904866968263217984527307787355136125429576533102028599610433474716731039714802395876525573477367509374778598096636629930289863490421971319156850847037806546997764000097048665582257410537375030236877267956947854468322143227441496838362248607569361691610638482767681681675671760317627446349537333293619271855385764622521621331777728261353145405974105104275956568954338170746044299884411979482213476107600917678589824263019504942523921741206153884326465892209680914865703425677641817360217279644973531748320219582418348523170934318975560898431919648992136134861468385735556396909457237224030774714788439587017198113852348884452671202518491690672817674723230481447836437942514213122875848761051835438420581929571260831840273322598819104615203915311041353983240778565478468691526352496466561137062433316517302489030031083838511792423773636123492045546574258056495001388348118112768499826581056083607278494133759747728557041366058273171465263958756313049394609521909656081829207902909729641829063301320103001892116718603286093661220066111912376936167928046716823096977989190218014749060457536223782815736980864939405659833329206241359818038766269411242160996907613257066601092237410503782922532044132542544737769547294548537176565663563446406839052082321691326073347368246280714566074610581072223951841140071860233835818429944351871807758710440262032962492721494896526401688151846373162386632210893826540190641209291713561381785298963102470658649622496558296406420886039605451464709183842561715594441203181762839115546769418487355841739796265069056214362158616234610536938808168287591739159042910346044517458727907139688414983388531130769055303440269303633184638848542738223198721036312132868869896479728626409180516568959959437283850332672483439955570207213812049032587306523233927303853746808173754554237921629756855769382508290337560530722620470449698692174211042260136260756407536215527742595192320690502148934219392192482213437317024598914491379775201139424502214507687329902023336502578294390135253211187116740036879098497747937460747620653097003810864158614867993262960079331963427219296418493836949492841064010244791522953444169473448000447326341671073559483838614450479174936265217697413369492305850475768916887196097979733771695755962697136406141729049429253381499206916052263407780787875627180519570230367561194747103402491547073080541444942593781359467815340352801867046115801286174140478283588343754044578010551355670306459205087968057567913857054511536968165892959184127208294951719886063449441176917805759613478705757394845660704455833820490604789865610702310471978169732001769214914533835839108605790310585206274890956384059546798274395061152486263011032791813919167957692546982304250466363973468665990983903517790466474873073180386656025767797016377112386933007965925689216301334176291505477585705604256559026753442392327922165973053950717602890143878185263318544759893417626492626775080079196156470200320259910934479917886231097131920038827016359180549456882131820338796108794653944494082812055578829492677686055549317577147118132732456634947409759560679521629941702043014946277830613349737585588428567688829074546283905903786888755708530298000171448628080912185925598978128753065331141215454286534803213637636962534390642458047295162357390773830957219930302964598140041492413495550688415386811675145598202350031704743972529517630141898062377422057475564932583866264370265509496283657649713791660590881682595958623495837279282354743800946800387062908786300482598441067752389088138353623096957359608574933712834487088431313508268554496511981473702789361785856373709935104210250552144856938319218383342614621957630865163305865709963318572420121091533536675661459768465436749806724222284926224574029211348071633247177263457433242884239908822581602488438187544938208925322840716582713926035486405135608936000621686205407827463338321503941250446022969549128227948202150985047922785474873198021496381018446108723067681107113288489067699661430071653083746964697109537860674703171944748382983937554154751008926069811557520550260931818002617632548765935681248568488077597326388550201249516940192265203794289315564476812588443276959160028947083645410212636298738878713683493917824940839962581266685003983754718183782836537794374859561087667058783099141197496916851077690066164972100542248911140218913561316585297682061364301176197338863203571665293955645928630995854474579424649899655616769497349952631689498567951202298864740176307155021206266075128147658110593096747093912063641291932902523016519891535313123394469602961022408225837733088016058673642558781859121164945552455012717044589941788742057452058828236166313065285636554870172348848371717287037186907353950503490571803106950413262407236286909628296253549506634213426310275588833898648973731452683481965364760021187601288748066077290611135719370297120726835502737677309403888291134166932418523480544977277597275021125881754398867686049102694698377275959484701555144012680495623348934545572001846766405112231195208788575846113172847859170030879848944464454709652691110318266213279672742408703214575209910005084327998436823772850225405118080461980635894292166844952759043840979440361120126494690787376383789266520594735905002697986373963826391092848503568498905577698410326796828671566677233733036228997347083848373416096085116379112800508449733742001169720491001574757938961163561884682025293012693977984495176422987753010854308182454503879841252617275200351203708829466419920027466719454888546653186997949519021167949390864516186815741403720312939798234353826658841114195228498582557525407848455896997774609111170764515038840022882100140210858101285423176813777292638017497870511379469461843071646617523383798768707363556993997579561989327368752254318938349592296705719182522899394415234440261573651837216191466102058199586002093643006305005877593422390907155454800000743531477468627808590474714660810551473135968014092879187527705491929145312914703650549740108473582069393473893926515329147275314755488000064529646736190390426131784855050333268455217025782647794377780258692684936079329981846881794522317167836975358322255272754412252388202064492415992396353485731855111377348536816136383835283933989884116258455124297043475427989343741193351405192990659244082480165571547968084940071039727816540595212998527127247530130575661213390899719990587358258475843348102843700688717314888923354963238709835010249230447758842442086176099620431768369771438859209331612549563229433278614569514512410560592065479279588655558924833327535380024464840108349451232986564902597765051137569596844846390313746452109479999864999133478915244182790297909865133526170999639122278860047502698098727770098674611542464443525038317270312586531069153383271237186088909731828485670756877328343067105902714364336348267415644426805085098568880776149722835469217750337120089563771117445623817727730338258991966524052507690639742591951537090238234369288637126974054386723996355275952074171911291169701204995906218492309778035371826846132419777120420642989060533429087161107770294242528518699850098914671318735730961932043208890361697429972508731150816827979691541901695181364678905324799545572708678133975106583144957965771772923878144990409908663603239393126934526265365341023472395553244559792328534230404763438157375633400669417185198532597852037184049653662412884528672670736482478406818124308442275021395387654177887830784763403965373739055896015426110301848140962931442472181602407208393328360908360348996188423387091411673308254161174357990553174227030529787158840570177347456854098990421044087812725526801669356608857531942545153001023436258364097708049961809524617529334417707084444782251582452813208591434715655457359169328123020574089056466895150183946469782999929041212981683403876440617176138197859370808674216002284870559522511574742295960558655805155101475460626167764185255134507073487922676411717647314158710714474527484099235177886383305838739603274770376055559627313144415093262887296037956534202995736048166484614484751377575155603047204490415475946089113310583405257253182733302730149603846178794748510087344275276932709415594544412577843660162605863193420952447123520766979176747714932956419307260116554541383813813341856680387463665337082015264347195705349976325533027120022969801807491802658418377460317228587859059346208062220345507715859597726960424337473738675438128751253098611682200536742533953464832561369626054560672672726341249370281654485982431378479279237415875662042658823318008812932546734801177054253908932879626980311122464128835058114702018851891498815948095336038245080389503427941423731941206284693109422032533776845089748390976849999765758894116633402685673465712708677024969614053959805655355850875652070344029683681539319554064312631237177075353017137832629685883381133096922099217669270136292499403386897029252427467368039094383628093131737413654975071609519139551294035122512210291403754114621582789351769669742194355977292296623869018316810213606014830830003800497675633091936366717535000745832243128413732622585163836438543634709410651386396471260540444856687421871030053067128188875299752630061995549219665652241630953672687313842817419717344233949087332443464926605826875488000826847262501136587592721129816890009980213350440908826107406450568887371314833731914153301913298538640206037291805942979393966490201674980299960696163067286138845390244926490975603504403972376938402878900334870803052576471510829741895820130949860729274424832228082124196570589638234218223375302875932229637121726703850354561778808137208298804866402652826448172758349561585606176320997330534295251438655751315055834910222978203268294370240791939886520578528962531262431882465770509971861478865390457429135335739589223861124965664644031714538318487575450857449225305563362651513106568774943502296713045856742700421403459959677777516242752897287495890166963102135996006475477929556155387099607372110849320341442712125643281317136407235775975886198737503270929333824836696961321116088163844717039471927162205607216877533375484843097921043868110348672637670533810510059577554014340833070656509306043674765981848431573531953964723906543934397303240699249357532525138421288311847302050660480697565311365293345245335585651853332463713206563315086469255221835004129558318465150972485748469121621714733333007348387893780057788019106301881022750104799019951596547678526724486960918477400570975620393429928671141561505430269197414511740742205177363752320839945790313311296888268773574936253612123571541918909213004815760215561952716824184088755186853029481910208163283505513858584248716224085780882046394902764813431800003329517254682234928474697964961845322356322719063538730229829319650534846050132215821917448493081665979962420816097826032721264026933496615259925557517109409132433336644059625926851251835003950382803374988838773227932004183661557845396127359217189933420733532833406527072857654423205836038721905542238038577093251797319291697130800904703467275739361509948321367515911563422968255354661728878881163062889980091697414804004016973955120036476194643913315570297897668407023450515941106411006808367215262799741199763122681038476901807201050173774740951958260901392120396262799903665860120411168997302714424983135731732394520994708454115709093225734147003121047413408214189180120533457652331387502814896370340660918448297218008604141843857060572897143127859794878723186913500841897711722302609391179105475919874846380827940298739800961784565972755712268407219199810930656892261704262599798157886596873233852411170472582113417622965470828614028289766360314724559333994031144614287540023284837769068084669224187755422662774101786954302656412405776877379794010834363247107761356344081020737276349358428554984958113281310321271507551879100857327733748525756113947703580874408915027406958159420203691594902894402553187523579728323339799562865110456718725942592000750458286765712196826345363990678618266623601213596080324851552227782339627755802352890556842837075277415041601554614404596899932572283327871508966207462107063155567316020433535051393724254727955189612972314173710746299350545494527142480898616035267332294051692491812318745070850264491166761891515599292504696986683807192927574328371944366443832091665402069033877544347430517690430578317715772982099590276179629636166877959395472238120656475304136440845739577980201973315626963695151108703193491624903443372182577713210391194613976865160840876119308346029264366869558670003530094412342892476310520467730010426453852468541767732224763099319648312610018976743457135245327952619691625369758598201510517705253217426680930818249556732783912625475679972035918157208273271356131469441594502660114622135511853895560332135771905678331248337510587217991179846457221403148712274549940578052443978065267178717499562414246669962009212562567607279828671755575052838776444781445674628613811485421967598494689156995531676472963278605429740224828147167880837176997024935872022562483542227244934858345434113050291563106592545330272995627041682450558938568279003745555448842648811367152917261899010511550735855704822698660081131690462835554802066149587862417433625983226980693074498310378568870139543709579738175555638962599229686946394039363786743935824353567535114098521469900248305995368550221775411469891546151941669201254738380909024967590372332062775586890227293485512509418614732713111961247655261508483074525911344758368235948127702588990582352286473470115627024295070582054908340217720853900393301626777495744076739396319535761614769376167528325572903095336218820645196089334090992568065140208243970742533372243925992522230801870701993913715911687198101724000710030551158350086315534827820813884911425321418274347205399689516784093196980824391684341047937362466075747624472405546841547768636912873075777694730392816870558026911421122558968360184993369419501476976268499122218430807572126720359865914656056483619350110641743698677448164365080578504894948141109917195343422006302106526928752338742128726700813842146039384350490870724659492302017285089781603362048233362131854569980392176534604890579306579145754889892426386376991148768967211949324821176515579254601912882566730714041880230651829367052339979228453657173041501119542869246583849985189978102946894010671458852170216622241712307353354867464220349164191379584805962305967251494299901770776653255834267684068959054254689662880505130005344186884206873942099085646432593202331302425854686359863259099198453997221463664953481238389861776404842016390572983586652777769554491878666536252358578194131687284008415776719818146177813678662487489366750095585702602800465006962494656911615764416507985406741246688101877062518185071945522626747848204144229409148513587671066684770840625515809572815189312500758593085971460344103186775554368821358978077989502603125196737339131710862154885822791944380212370707050815717688182165408682232230921580382752739554248032590573795262098147497068528572454538399788929314649727562232258446105652110013549702976733112253879092930678168915687407489047281697285103581908806639677262238769793903068080368555849036456827819075118495605871896412499698967337403522850605162289723390352200065153799116098269310029579957440216045644540970704574755344013223145223094837677287207895144191935624028403948745877914462680724448400930425593803828978790205466467702836280725301673809642872472106430136653550297823447728226703185993471381419750451011953214847663799380683157883806896041567418576733489306974362143877647328581852711749253205007048617771686320606952242551582524937781674430894325782783136589304918507593116075687794363690166892544845842198148416774750989594483358676531514428554243751631477606311801539491616813186176748160420300533781492557601420778683606648239980038266269335204126465367130642185814800854019469569419659260595960351348419209838219823351803197021695700043358093279321064071633994232553110538847774303996204617031458981575413686173326044033039489436615337252603242649345342020333084462863541331153544632007277644215664896983404813481303455667077663404106353239658336483979163145989586872931897992098089029889288800642031658170098301729016000773832746475803158807888356401866971583893439163314382776700132942930715707831511959614768903563322226261507682125454216290116362330467577685135420133212435527565319869448008052628454449604255040612831372053214524106875192949343479176472052517889226297368721816685147067016576735788374867861170351580537734265782622069774065008345097112113761119819317239477119745317196020395608889468614185627151001010850217942590720122426167076973499729818423686544933450658659595948834206276169330078016980968477061089985226928338510790816583547715771129459080093137976443691293321223319677648312450769600246731592095354219845447913190785800935158234271781274680046032502874684879683820975507790801283298233928284705046730161658786056085597399824737212557894706589117847156467387142201773957716166537370036474287988136716008681658597129494702516128199046530059894340502337189437216273297181008235954899497286025103023706096442216347974858603796508348437169789323167522238954406451884712901021474535477450662518757369585115169670396871847527151474557847492245026618415114285152120587820605196964793373004816159694189969651218812408370033962343906533581368754070458045543010816627526750850228183433434173454891872413388302245974960074650031642890771448724076949325485583879056068946105199576561545189299308838058263978753103141137101263403933032796077409498826805881706093954869247679660166536050711770977586262272054923768096920264911033091860374230810708792136936049758154481956656595855469691626556022161288593052538269527399160399470917990790174861609765166587978151684299851870235459299038733022284785952086628100871100266352714560913586684071108865846173137356855643800050966350112465844447539628231167565823716533890704200552443862093274199731268867408740571998678548649922998127812154885382367181301826940548462961095774087084188001287324363292085615509437373005461748330657048731072546421847069364932347687225014461635791534300851887009183711200863139094065258667089381270574705898824520039174271002197849300687401194728228067312191094412270467149047122404697910079124697458337006192150632611560485714723003795835608374624598149896600223442406483625563922168689513846420811852761238938351685468332517198818159307091954405616164928371789570804851689248787689180619987918514834330621370814751930706396889749768805303140148818871709247296923932205929377556372974608713245934644625485373280073879118356010000508506508907025621101496590284627845613404824546849041475031881650379255948354850258555183781683210627935125455802197632891633470537237702278340787753312203073185356137989252305672675090323132462061452465606873673236404822024668511205018401165563240110140199471616191781418980565834416840200815606670796691839203692270203984675284593725328180423808260018578974568683240539453721271318104240331624890779332122005453918957446899002051357460645440201425778525986750863753308981842862487658711289406147982232718831082269011924873217823611123553164057140161952726797745677154539311726969867240123828271137949354263757210159240856626127405845410510367322445203108883040246518619015671986397342274734358065386190077628130735241311463809486458094783116535944211317999772573286669024639923356921906837917265748669447530083259085054734524804860180938087417398251484769081041581526739544159188812252392154114591612056063897704822665109441280215314862022255404249889507812267242396466995759371430465956511586501322460637749264414773717600453212922005290727275476425786351692741795673020579899029683952107820443242636678655278765955843173004172594103286811761272273262969683120181082552740128912866213824376579323226155813789873859200073946791106808981635711142712700361024367019330029368736359563669980268763906919945137340530689734012742911769470335389323661353265946165464032133353211526814111759762256149942238900102015729502424064356841624422410646807487939313759844188155383403150132845063628557655713992696086466641226726336899561947426355380869078424068451340333133390867025920176419110555544672578345910809431344305077712622010392903034531973677952572344322298023276350419952949535910156311004597809070653065156905127043361047287807899182472779940096596792374274463423947572482295807968425818994466597530580485266809607834250129123258508128924368385542814686622745058740649544703164943355240656173572062212943741298552124878653436059244465200009476267406447536236592213888659251787811574962823648858034199385531099219797388597459933771284195265870113697787524264438953229787152220530501289032635316359299788531131752204581008211193236338309700200073035070064482417505225257020880733101934713755956316627155223508037276056208186853137150898862432428026903653777674727237334006203449864367792915528321756588075005563297351341849221063192323253398427797840141762191570575410025018781207157154884612380966904923385236052781023059563817432969748879422539454175157971772805481247473681034423637107467321258427733357046230880703808358018156610588881876050325674694797057109803016466136304079222663474435559327192029745908030967803141019233890351131852266058898289167827684131816500046355821279288924393218362761978820456589610043493961930776656923785699700149636352902172040489801394601008898184570266335901782620538175390197610985978604571280750903046191866089919773868085131944574739285375581911003154334403967555872059423002614503946942775380152735013461090041358635036264537990258873774795207375232377880306899959444099367747453385582847206494373084090445239965584085322871255708498673629348825585565940209839517812912667969160038761050660363318853096380146897285626145735800473445755672029096870373911765712633471645125356847920373983316679636830577168506194588027482942121065169606205778399618862802986288033493995684830131844257272973362656793090774941854340818474325372246369337335672703644103437844308407714649918210887805588166907254355024026164072666974565271687328404611561092574272408910002111626713446842012491559898978056427612550509907125481042798247771980628812265975547481075439683515480093659982399781219756534786010816474053356859890228217694417678492969831987546453691656890430240610403586850835867280120384050680006376353465718086207095242595029043209220901461299912650709615943959277154174560817274199188470924639272474892759701305672102313519400744917013270665091540383514866022930045030384745910579874432118835020794912323464612294196121233951628770354114780710329137744422680627985104879082715559544977954866874357728533826614352789409806367788778901965428165640633194629755027721348967176264059965210964129748435719359058411173354146623745950956585495379752234523835263492528945565650064011517328770698146899920356935152891209021278207366845269848012278203666372537155314637151822852818210955820879311781311652561867207528507163698793664317003148100493412456886071227066658600192354690075930261868333151125105197366690724027393353375949214448698084908975704269571281493580246699019410216644642629774323822376555617481072496963063410657011471345531214562499992377314089223911309457533579283741145835822194952581167968362835398665897403073565403840778278246865024693857482191622332822708688194706508673940652573497474809636070675079508228016634268760165779800520656655401201976349165171416275530906727023256073154336524371901305601321861713633492007959035695431129555247041550867131897777427649735133944303463649980011037506111597163995667426025515364381408513612224662386847247660543254915539060387005010078896656144856976372618567587872213880290285708817239210442678290332770102347123930798899204639879041657367192836301970628523442234161984017631273176325575137192731247268956227472099994096390627409567494828059548831084791927149971928081666906224725842990016505845528804956645687432478762899595050493894366631128236545058076946456828438489187584233503341761647311367586854055191504156163698124113160347930901858160612500580396045636948792808483905794624224682660115583122839718747308998024894086698505440433611239209296585192019666047894942020967117887242784739800032550659384748131303870027622768151862287474748869341577288100886505572955664859557120339950375143266847048030600841425154136725922918583895062825500278939832181347827818123417938263398302592909352318495120396227059239180190278392307744061303666892665218450879065197808994253693191462797740911779980540692279757509869918815320060246454564397033246762973179958179682125138586416747003257961110375503459430489222227143796091707612386877621748817551231071741595202319460099022487737622226557060119268776521851082650442314818186541515291067500919172901130823954220927493651596130443771052853013777633719095347672052173600695802913781097534610592048783128185425232214888716164460484728920541557616393996934903289040688728485947215578456691187520706677504445881336264224109749386173378927019210255036761996533328854969853758079796331980794231808630448986517438458746898711749258958020187988427806763352196418513645670216121845958941135226856747148558827014813466218710945753899663845753834742286300467293416329019344072381949296127161927619942543582665859004023476125154494851527207903006882238572604785411175102643428048678068553897720640017539745225954881344439133509838542806797506986278537006254378611146274480033488880564246375356901795755820714158774184616717263002203080815178377418760863157079836477404365766782780139940705050035224504261936669367720843412461697335538276760648006160817772870038552836375189389790275348515378997205650919085012550184613225506224826300098769488138733796108005230866949225560213351378961382153346050943680809973588280950764269564543383487501312171534095269956779352864429573859613953968194842153119263961865647337437781373474853337130973921743140030677502211920998445736761715914211006568413976833772302428244580125807873611278162458985365766562427141184672299297188722177680716642741941306077791890577342284096007440873390872820329058856881751119788310802428168813388636178670086698737464050884869312458441541241206843426279097655218138365422223116176533232610396893800050019895433715664632461465285746610494309177654541015589407206643262958673392302865563823188797507838484416616009908664031204796088429071880306011906134386260239243427340760357006720706903237585076187514242735708184520095525498433106169899072218632470895008978748766554721933558975297164242752215165305619070448864231000560509311627932905145860156576342005991724018524281185795454055424908006430429159177670190661895833612143393227600020662793378566689695643302139642717190850177888111847810018874287623353967272916648949465267949155883028880549436240138813494224917961625154787780910626936779620911352030583175701593525962670150411904314086707106599184781008990142765959107483566211271198100249225707758424845442711618686433705985741839021156431807340168334898880609076117166523624361467754863598683143072547957534035346840827339057578173846734755584624048620242711234899881349535635712629688495151595510008514921825741410994431957861180473382601573776306535924506803579347279219079383886660055185552119362653297221398560246088081321570323391154535081477661266204408810713020428870076508950741724542814800249903365951361741770581141621460512621889658179860314893037278370603907470231748982877195900053425624680744715264842469978342019208417769025697162083285333949777198294697156169149949090655497339564312582440130369439836265859926699854998304396969220407082731863941942160876166547573694186241924277779872939589382029691929540526361322878744854911018954239850938350121001481700648933796445486566706742791800267413988931745628350755959096799746289944516201956143220465139580795111272095503061798304007341985264125847574050009384959719596308533213170213897487539557561377275236793118468686080981913970816529089889316166339780450013664626982756137010903109006839990700046477027419779807003457481974409789774856896720226018302135568953442371837841809867033344448705461777486626703488172883110205956411744910512123579679590212961741109404917474040500437991583311255895943916387981495754067574646084157714942395273870985553618739860780893165818545157394955000528763285388818832393467161168013520418860811497805862206191988821827111317341179965349441416361103715982133431063768089986750220910782959799731887025648238171550542108679580494598346309751947097715129577002852077933272058611377743541521524288494812521555056548394912376625442028327549293401272863664812006079436543126285755606217207378035134414882243219064244314212464720366274365892202587430225049660810421445231776172808574458070762175932599426443443043311523605572921037907641640514439240463349684233357514374024362149648371122150450311454897082624472659924223510660709462895235722628519476965249852407154157288552267228787152922052935448806167598030887655424542126376046669963953779937524658808474664287349685830492989486515810595272414534125199069144032234198310404329926951004049762130338456113537615031668545571908165552997583491588645406163732574233300161002729724474245999337249243886180573775617394496126590617486587764090901642047799608356459110971499996665757097525051468280416260607736949800817575654064702218752910452817470248165898186091592797207973040834341284732002374634129208510524403688250996714503356219579932054847470829926726314478123258353917962444502644705720991601122133884872590178908638382203660921190952650989259772087341449553474970704455911723640184307779493616002200772866874662129273299517232357889542122213627344614579308889883767657453596524126275641983551183265377383908730777499330359697145545355391462638726939335818078344619672519018442078635781105287567194594759186492437057846709329990925143449902824820683879077557469803949926945855310048335878266635937903371850742144420651114853017390116145658367653662662702784742563169330907181267470606159995736512432757720587402182601370583386088844213093885729246559694704608396743906696483858677966301676071206953571463254496085185323891122881077917968097786530648131772660771750342138523410535489799690674638957694546838877150375913292886827416275543814689542199654242825988381333840428903184269217863528000528991131753430883630183124824738496041721730212527443535939344463044162648221934943738126132912608197825766537135883516714151507417683319284473534692808725216530673477735974440887760400648380914458154105662453831674560657278206461488199808556280141347946388422344676560287238419438596847017379958372612199918486743870251956414623952279340048395590140336088897555533943446288551579446052857502703130143382764960073096411463167106682768471171731289993539693408145389183798124942265482201781180041142586391263295248309980675906346890922982904684876060874695727564312779629341476646197595897577595332053524708814242181747340345257095082723334286582425719287980906023752518375463192180415351595974497146492782594892473821827779465728269603097926032671909304642179704530101466575762357676089671733251423660343872927197293361619581959149349308652798194645182348262691907605172596554945879901577000421972389749488352443556800950957495003296769343525146584703619369936319541673595437141791872842330086018782187346426290306752526550663390845138044057304262708143030081984927703512950152490423130136144894030619830460343416950081131933960155861955246428575477774084249009727356478837337466067754809347265154177415040043932624636798910066858887427457862895184450049621924874785776566905848893524743928607735829237539319613575925656107625388772313367343393512305985073743037899087136870477129495042574642618770091966855400997114956845392804434963764964452469760313523167870150535016211914896421013133401723321870258851151242286324350609520032764210063463752554451743321252744098134800630445590782168930029242321159862182727967010916122982166470437927778455120326059057757707500425058177653290440704228741089470925496041426993851613316816308984323935489868092952968984916072657876901731482815544855031155120925853444335930128540737898201599179084392344653016059189289235660157293063750424607477210027836083093512805418184392484322733604198341406797711117228328800511651830271043020773693002987957521628297783064266247420551922760371402380482297573000657171907433449400424971341873792857572226382609911241285809961925662600144504834396045596587665015714709254547387039159706887626260109002242577189245086281164714523198164080403283994000938470234360408347439506289522328817555962643147442621778836550195450032164300963933262165998634051099504338395887904168045810676597462541168326880257060517223380751264893950446976144203992044371332212158076490409577094465017029280497894345117389757692955353119953730775521831478652503978463065997935291031891402312702232444254223079838627123303559364219022873570059529820597404140995503981425027939951993737399746010167695958943170060190413383108942449211739956381595988001034597516075713631527756472038556893296949526384506713121221596478222489265261553590224218050982769031759500026109631328348551670720066633184776833735541866479630408246556815262852706037329311373336893284023868378582398293997317834423457231378436737907603044223409882640615669809188119670738611029364988498867395895888224729680288850878119323609309709500268702630726033918451182172214150946236805146090923918243007478551824438418982625844592338268631759623027633161602422505909840154714167222387041392053706114741460878361987977256628719035463220254686495540305932535100279902073717746647355840265240614864437951802651383549309289016592240704676416310753286954431578166292185351217952413590067059821157907657737156138108022450879194054195489770751445104794237133381668496360739147599039801823338914932103501506677241831635132400725860395043367989736909267273875326943672199604842287081330746819047723364388200963594440437843223053719050526972935673793176926452857823577011294967762239913849315532099085823306775871571008672657041219478666780792318879430179933408893796344174249300764114203697330473409374800043995753343761312961577076867689171270450622138584763132869858631509939680231997269484738814472415470603247178065063634178587786934796485296138955061190945468226636794878166562537486858295917270247206809503834508642548112329818261092148456979522400246833175123524606142878997090227669608426973620556080357717768591972885120119507113622935762430211740387059059650542726149375220920682862346250405562551519233739202339132192065023201819842129023752254427492214827122800867034156798957367148152939280089575810458689908214196436900686316964895884734639515153207683502360969719735129865190682578366828460452374434224603432242083199898223063202566693428061337514892286051460350869617553183368447876606480478803735911514932673031427828122847023013540095249077907107829249965019433551567070313108036204408918402086801225567822507391624601214907529139514243515273506498324075029520197161357962628845046928137206190038555933008165486973095510114411647308029877965380973954911811585857554978389639971879280160325056239671873510847656490000717313775447207838555893868940160357721422189740292597812008144000663872623323169454211424142542581056270917045468499611325742856411087599862600423358143806925811043834422940163626546502287520693440217093022856130619207477528376041179293481962736141343537622051537902321041039766602660240856037557138038263171455654087743744959451375802570667708413667995389114070162201633029431187365517171084803668960520594855595187245663061939379219449349196586775484701286938591106699068756983478869416212325748758639865953714587040292181541666613055667725206374800183856129024759307512645776989187203207950136953849176601947802954799838208897181827045105794325394701388869796993843508891687364775588507476907692992028299540440157719104232864331888251061401557325345703358216065916555857290456399202515466911182972562600355390221261327593556864147546200651313933034968718427311812409511618954344251268551752131555682877000576850803216110047706341069931409183525908918926138027129625184418924988199505579000569220521597381999825145635926781500653690596145249827456670051019643503375669615656028332442462253241286791465612485190554149351406754141779026299942122309930435326982186933131113781722989376256354865506776532272309092666477299607401885897543150578358874883422426530450297291653260795598292311824498137490839634195027796640075581829908602693300559807981890286123193411076723238903822786686127272197048813356392763983770892024725762347406605222481729965059392620964835701485582750990802035045068505594839755867194085075305173997749822347893277636860381100689598046621812601134619963356430091734078109139833687020563892073219633194822893620187346615882446046252157116744683860810136036686579447982363910392775806363563363699695608440922226038806624789424764668270818780178082435444446054602138739604790788459699578170629865104317057866475517547291175864738669444499393727179656997843468817094555839545788308966531573968063550406919991103387676609047469091552916949935260009488061542259281088278095630079736917704584141586823878164088962386960042597134788768673188350983318963630507805610997344669046375339831252425176602327186361539745998985452029932665933708860544770776104996926167900715459806760350529092391069756204253746836512967066871501793953819272926596283217490261927727674283212030821773936232757404193909077355051279350442146160757750614337068620289147908588442754793859919545335998852516122377693464859589175772739104250983363802117801988326371758051154094276207642612670496097030651390863146628100801988807188404084659423729853574963769189295091734284147750444482195679971229732358929371368223934292453988352194656045813794783339004119884930251726264793431517771648678695656912431160242385801585042250656653303314378136984929221455430429810074105261692189910942698859088876040311178757637986319479735663256641772588355711180693558086298515533641915524055607997676599253908165014709102744217161433380063220897408590412165430179796545096428628183138874611243593690548610581308533359704928836305953970732041301674721322104208434585120975418043568377124235081045475093613232322576460825056994683735233957385758611316968733527794839585491242846580307657391288111713353197337440658933809759733056290880140290457643237211708077784743440947329073615720619452383130494245338973256627963806004868934457942888639776003942151755441190205815867918556678405380530048302995184054837981347705089527991407131221695420813466083327777334792791937970822764109539291078737831958404410235625684567042216280953983379916073083606015591849727644028490621146203732165769231506317932748130871741662328984792494022042623778547361082911521746482266881968948794333926445150912836480744638800143864197410095078586390002039255277699802914879186497083745038576025616375380228992151686052302252683942475552904575594712977372715974911579218153941087338798500148789555306392244575270835168208140232331595321157175165462699209091059557790173764859054485778274488915178050954229090142948808282919368276789506140653030905441293198087804545930641093944490713995443857233607539521876661279005929008553328368195938730556284554624550795248477942011727375035350920014579625306695128646238892437460388500001570457157667270587595808818550962745755870402768140092223165893051937218929377286762439527639672937998149643795385330351516696196518564067008509896551234302208899344925205826663650565088906786143365605984807196162877688815074214099232521107578796783390447986820900178343232844627253730847632714065335009888499461596237084907172146659394828914106090465691950397230125512939997111122844759735189862031318478296559548172924286957706398025404298955935301174352918114898861358588916935019551568037755317827895654897784434014203298363117471077342652000119139679962215844639952176335560200178385035668768582551611814477247519725166790038896917187046823950582527901947511071871987562961534621069954212042137080035838036657429760359302227043318812178062195865214990891612726159819096102720926739584315422098507499947994067741526199505740010071379229234364080119109304768795328932159799763858914600838253075820666427751380336199987712542966586401005368727200057047490015130642393929655250740476731627635256677627841793146063865925964135626210194198185605248374361422039886067286947549043427011179294269393909575583084059977179927327155279892561015135182847122997927281732890199267684487496387294554375728553927777198890976111242373612522392289274021368597767377030206607241656181021376421511241490329764401456026359374344708158209939832484093870236751076815753669949043023423619335401971075943313655930294263992250271526068371414101648473440174301489312332460032687961076403908583381311369274913135223751446422341092514342082641593476066329344928720653563097121657661776244952209466433542106320950917752155040503663659764010092166709415169175743890811536718250255061598816730505373840669584073771907684418109568922201554332317957053426689722651126431822878456689544914028059159126874899988988641182980183487351016509743266071681531440632124718290126055400740378824154236570508683900725031322611998476995964991991034032825137971645930088487245606587428880827449652350364958423949335873947120751566829113793193916287908851552812380253688238816541354960782978794348694331173890147608090220100068185449606104848811869691533175868993277678778423208919185198208313896103067514397400032780167624413702434145652663405326826711474792995530904894685055803191040955355931804073721363216945700165428308570641374263722795601363257251483469863580498072893733853017688518408744695621700646488086131685190677494243858890976221509303242658809619855505694906532762303808745460497197089237182278918105252525785419711335866206207266679544912924262612212065191915024505563161181108285747457382824038766519909108533202664910175568420128178991862631609617428344768607109552745777242522079811426150036536271626083022925518502002898184261489903354212777222655273923374389282576141901695837419367526703405450069235055598692468706726047747624407359116567025525265656254153919568578969716986355857339816050732688940899883863854636141571621406321593504350531204731624646171913766330435690208973131298081932281547156539382113961714465434689925929574023290270245755258903473978171883138201285888998994924382748493441278853111929074331960938358532792525000079298320691021292616223726772812185210797600638489641722015001592474855509576895773723580214447588866664945672603684770578481923859663140310515209744767142944482255726052314107299915108289910847385365496310525290647802541476850564965651300675580857864068321764576671391973359759263347090844366446736496383517609891717434091646413067979037524263459480622421554279402352580555722636739331101101981442250336860165534783360684735252417567428349110024004386250072574641047370653330973333187964272316234129006455105371583051661553957537962399013525257024623602489316952671210762804463138731356811222520892104859408418848913379436486470925726973174001526285501607960601254977752228409337326792202589234766551175391984694110913423771279830329635895437210048095464987925517259641970862121664441253756344593245280355278667125056562359815709759468374147230750019851196210069703015016361473714440813814361320009966911216408009632772130110490602034318379405798623674900074736404156251030619536796095453227799696531581454981011236571845246647944945649749337123440998698360972892849864857806261460245780078915423227009925381948367833431700555401223150418199364149938177745339929780622760261448088080623014137473436375310834440154076651707802128939924760112559510452421402021782661561805061594223156035460288769652199487116151746957505052579146101944913881853609494965718004258984217654840487923204906699693264776314346893640471750475949315809816060436336634314965021090230130807581460998026945123592672743433066347183762741048211892251955215217616237359034291805968164418232262034885564933724782246493258264840162136215173539838112736236785734604184740494944063206864046152750610111432160445243146462325699560916820532224204863792414027662339333535793867126023537048283978759348801956781780860497684407737327052458698295193032622385864143142636719576451092945804182415096906279062340398553352254454135578927393044579638462932830683950211684173315876275167815186489759225009176548507630505963294163408131234990093480925619242253779150900450416522540549515201879667886620353431220708419123233150512163323568899897198227967056911543587717268914727602118604748264613153640643894694782906771836951210438367155157797180496132204649603109707699508927817776637066389735599381336489022558825267128743487977622043702288337644322026448443925683038267215804997835419033668902058158513380000839416891055757545845247652101218956040782810914871508421324978734606973169499120727350863088570395125108388416025463488006142098672235979194019387931672151867025452426873347370025436006281668542387346315859364446546514024953931851749329714015125939245147075448479052445264358169029075559264176840362142452367279438223170192455020043920332068329619431247453756678593910718465660105840304236862196098065230119184074033036111158053291790410932396573965303244563660788597082409450214939754334670184165592933460863371255743898192570277976280676944267819064318212747724883252886210378797394738036056009456686934954882728919221863815100877121564461716485019902532238240786775810044207673471167042358239421639245148394408609472534681345487822813470681593520018027766547351226034348456920045725446287005362992168857903034609819891212280923862997684126678299372983041307231725291621892978005585081108704430681932041733637900251572727492389787696234333296194986604080775418817798314006567285507902927040192871883169798790620069275142610575874959959251517814134833133366713817298307001141161485175974310863342650765974519667581891904247359153043523077031312934029717408324199813696252536839684565076213039806217369149690689893640056850902030384975075324135748657556790589437699990338615140864111177886877678295395672523813100250743618273266333215754534841697965060336056632612249292099271916613094222449674070567617380809438482864267568501313980700858079632205688417154731316892406721022521984708757653115321239768900397028007502459027384043872245009600177943911997869376333231876541954371185982544318612774695031989329797084604756153230072284770897797983379410708459646828288802261579258707327370541522631155749446168790044338734563430751838654610607966829112633238930068387524615851535452301964202989275198319586032377763576353988515823623188638095194260454632060733262996478312065624066290598948042878151216561091772798237384268207053353323978279874984735183184745626839685207719780839984240201118441722133097703832030399058375302294647083910524284756488826245134222557580892184011218584531134158428183898449287009113004092020420584265640545027029940160918634063697693913045684535181037965667729409211036464034538260776127091638978612598711733039466133829353586560191290569691801142907165092174985098916678298509536625741877940444804094621644413057740977789674154894871757960805679722666657894538518269006375669899511746128998993372237305484758518654045341804718794153465923168008990622869370428822059332590854608802766194699101069688082923309997391269967361194685388892149229767532750994364843747915025552365897245026032154109523526484605553309053698272560571410596293752282226919866137289847564937010248322821210982343681838825084407538107039632395536897122380887612481926554038068706298917761795623600178447442708739993389555680633639222792463142151286381482298844459394284177882486709875904894518449595204860221619603055727557188160709144585190147654796332008111209952568761519553583179556326774327790523133389185502383153542059847254185829220237219252884836604819952102953540046380868002671859848027673593746134451805486616425258012505770282681042357765788485995954658259284560829037453321991444199786951394009751022828066224309152356788918626944403056966996703053784338161451825031553423541839837986157638181970467135316355791170490161574879515410070751691444372901204688943782078079060572592940930198880141608899476535194963705405655974433769682102530534578619492564953311544299278285652090638641553348761392860941442178489843942122499386819766700402893020109480947628125989632769973845022912931115494194388335322075982579166239213736598696258318130773076496970375947605537513939515800839017244693101966340282852690838478704498262153821857586381400618295072379496505482559655838137684696722988502194494495783384837659949270090631886707241823352381107885986831794664915333978523436647098373928367583719811032708361602211806361982082961198349571148337123966808787697251322456025591510594874050614028824679500884456996477254680145490997052939319216405344858578905460881937945634130972155091487384687309120978077495486265903220952860040725894003451941993690256934114404419898951913487569085542199549871774143250096072834229776550323256620204800863884754186317428011045886299273455428341932106219148854366555851514910596304037009279552489101190151025240333230629643458940517254117184072221391644602132426436635489988850494324735643501469803124899666974270843110044748461213384266974190608111577925133240774047480562589675261217907491893343734997540971007271115934468971613795414314717603345281845481771258063326086204642149767974645408687824899051543130810102278852463115432552676515932057563266036532635752364501685877347364674520619939150159693486478706023748261737805783965234243187933969233534446401066180249912828562400197959817718335552172219392563648664079870554506336475610524216484507471837656353355348360911539701654731420958046897763465214999507729595526419634497096940343377062560551056934295860667130134912537382021303320301628975638975664605468355904140460142265593849273642500421276964736887727644882407164764309203006787214097397697461141554247151174676604213770833744535306512768879847985099577413339829002201971703188060136138196237018446138991462538779965234492797222044738527435223283296891552987256535359969904257013384937798066407480852037127173272481527912861266806146039331511889349563179301329816600876666528114345084245219301607334469741727688799501603092005077675568305926621909722763346436741033884602975132967874230208907715257043511382074508753924652989082976781079670253042061732094435512653809069717520969623784024387393315895704898733955465892892620383515085627532904197856060411538194160358959052114685711030419232131859182372161071719103633573934917397022089256226543074014015927435570702541335370128276099792158198972963542380153592785811252370660168820916109430632436415851986883122834733090348975301208313720413892090189800356488118516387053769946258967406196915653029392436339280135515390130672576145564622885666262026669813721555685384422024443025837728660640373424755390832512134863875375730679578801437755303353755886663340853552395655282001471555531034140222636235199797321065955212609699322107436002624737992666485748348624612655470131977040350861788131447647372987341633871728782206683435383530703637228082902258398593143201460114800407746312216823014921540747216148921946192185237054266109799020910435408209867098963269176909272721188132261081828623880978187233277851965661695653959488106898793204589865368189201821194431190762242503880361026793686126465776354153320709131637058765807563747774499485627234261531833362274895544716087679961423832402991230150313458237281084552155919762775446636775915975626957994775707514958900918408610335493813735180546697151833860932928177151256232951861511080804219139482412405874991167798849271646374627312593057477742789381648969127122223138867750170189868393604476248414316337483812536731926327523825199095920132793786661683717109865457682373490789505252613408530861428957615231285781737450881370439464068022809963742002297852052358596648593792291098849016474885988714540860890749000630036588176901035437614332806440652165850576946640839240728041969114440299443813580188882338742579440113589496454508378441079695060645815651578452344368679951212869199377364745698354801847810099971013970518008114112236933120401951305842912011739487954009041515787374529421710131415993373451017825855338689693204255639464424202275469001778049371837698096173607228310041590387735280473019499367114721910264054534381202751461618924321639378423364150165430375478183371982632995107124415748900413783281724529729392169134863801891517754412298343404081262654797627364988460170080779665711830602809967725397563536791136821490022352851047684132844683614337872219517160052591118238824125524513278321201818251501061772402312203612884749340613558492370484988111416647183672398011493549668520010518853441998280847403261436630888572640734585541311423554821343382932063623354609657422122678017887799642259336255412732187769572926555026140939522653080260505394661886725812294185336432021688878111919745883184614214478701159565893922585856056990255396202947243403198685658981916894443804603640549240626017184937749054986906399789827312489835752781904719530011464293449327393969697631905136746848206528057838206365976008881828550527998158882813978115006282221671596914427838196184958165331866897736729060899085429197884159446029559264995156861244425139464034125000209743093362013468413918805255592745136191772533215489249863070770467564964525142461088853398227381932249067216598791778679486366362540295728892649739229422183931845207980809221329845134600361682331383787587416815341799503735915214183947557685312466015290063419569449308618713245050612250564329200640790883957900574501479374399214099122851362822592056696322635758805148491880829001657583995815471217894788674517801872168423593243955492505533735540747187838295381648987805887786503739390722919855018216197730893052681715346207014262428797672510084682398501389721497902645951387610867454008989580003887351954758481051646211177901959190080604826874637877045177973298556796911926021099892665798236488206284399745462248511498321427139546589032671162095593368158412518153259872723300965412761192953926825435328666823397107801515588651747876374424342686768232234516379053992405271692890658615614561731338890335521857318239771322232816948139608517263022201929260301123131536039620732493040653585269436917300066956708326632715263102987524016466386257898406168762649501925387422589580020469343212335304957184579038046585264772238284402115553265450240410934571713962708409003820796471036826992374931795704693199693584380228999827005336191878268967753281461471593498458358894608748206759430267982397054758851755173960165372971124279064398405947034489705679546834663817670592910681120116560213896675674229438297855548808429340032044475248630914421117178122850691533958707030974672925068027550432447402694188723711202978622056283858767269691674252612109558758367475212718630906271024121004853382256381556386083483207215399160827913753906162427012059115110907086756300269080536227481726676096821127419170934270497926727670940259243183823467583347608117128575989930119424864337631316691281730821234020496153839306407935651803998732464752056772905144879556777787519888752431932327186863965352190953674666303130426021017331939727446401366949616614622833207235660463768634824075319311430201684595692652987732400914405021245323552777117208743389731936777546070035254589737425070918759162110507922369117976490628751759680605377175531690874345160008052009286591487853153292104489751341997098523033295373244214413703655841279032447314486796482625127090640870105268623927632125382480419591739627931281802131703483161710875563005231239384532296219861148844058511616617339868117813152573756274430078559384889749037525924767138852875085324418468259658952904089999524972778862913557502941708317232528046391319947904406838511199721871775566188494020225517302869644692976948734738802561865398072426516797904732044354708480007312707936232405786203708764842224633989070493741992303628008159266133891905623174157575431311000494432638685297914881546992987073478593669891547634579008128688808921473031697245474131816624387213827850038365449659194404835387706424441780750078261359521317227042986243282737627260001917010404256530876408431586422000516135449700715004654811053206516262640951383879648837453033736636001603190304315402830204930303195990989789035112254100450327525791459457551289357387540065981660831863120421141593877188990447497196694264727213327711273378457560356355856145023293818060995219425439327556774622647315849760268120758580349605670296766815743841452916504205569766138927268826881016028724030634059811055151900640715934525511873787434283223611753277571770430928747315620912512859031928289513081059071115413663097667221317684161583822207324485786721171222484509080226529572205588269079773171907048911828995883894966000196376982623798336137699938100749204733338399056255184352659855906259699455608852712153782299152251816393560911243970737894823207260737220315819044447328685864395155638323077556670781647833307699195901859722676547280585616942212426771112753721010058330372409983088879037195183005243895756184281666442617116999740063425426505498382041199384292796636054414282088429714842624339230087587610770563018807447436960061206388989931135188416403579722110571751938612798922126763240487897463280716064632723918423522051535107737333539506345700063382811042872580944299253125249463054377217686058481938621452010112603433079252154788904946006320558782009661065966898910986939528698290772927410173206694899540833313145687636496410618434816057027188253801541319619483758020225452321512381484948444514588610296525076042190646774058772043631461962013664256372595350579381478840424892051755850822234076587318210735501177604718059267030144711711955362392184313549396555308505706801549395805467570972783059589906679803211485329890118407294750678007822453433098204107798845313585457020127353245000074380569688501961843452715368373603919423670730870123142181221809618295467383306844914035713761114914488482722842100046838730837207401908605398716561176215349556128830070974253472852135208106393500968949537201463230389558336766284998908792803083663668324696984743206867621946465213032259809816190208962250219253870775790490681800333701958611318491602066131307735819585179543576367107859926219856343395290548704965118336607095119835941988775983991211189133701641716421285391353750189717004820237184702700632775775398735730927934167661617716057778656960476290096163245122429666506433261926025874837699787285364492769192520840991275360861819979367027276869685165906238931472672516752007625335767849887416253165942189045101877297210149123617955615547126879272415517884801218647095207989819907171049637396675145198347220371945982502000381077489141631897964662203025435771658685018221748258776053742081923150143650545459311637809092645390420316686736603182389483698607457668916094862683718179334764264814729130002526512251024540699433139532840813221573866900807334049191086092961203546635530814477288352089330960653909468502140313825434521160333087998827772809549730686958703247706563233788626216767171391933012254096324137302446023408758152966282913313095558756380166135515998671436492070518263290238396032386790662196468003958459601807094158607152426116038847842130934034426038998436455305356459756390068658977596599208967538325092355460401271164795653833900649079377387027805801859192550471820858778930534722799491494164562989576371675973392151981399048621347535100878090184529512594907473370213883255248026137067153581662842183870902407181337099915466268402397952624416694226918355751565373306343948710781884303806341639993863767734761794317663437041738218489566996051983075688597452161147372107355660029003250808062175436735708646092567696218891262939243535820781251120170825305904576472707776937017740598225226589769808113724305126950422173965761896478530612483320567401110936107606406635847556817173434505003863374305023432790441639200627388336747275329571077948718932151213350610939172184256933825249806259950817873056196930563079542702632426730395451106129482442194157483467221419066519608263289373938205492902367838616959222190296414924891761113738764549948615376382111416301355559264017885896817758452863266911618654904357619064630990829210453015506683459135746520507752933078043230453247928787853314488138329831028711534549995351494346470967621777409425882465521731562278576307077874844720962596049873636820041644613547469580321876007081034037695600356539277624450081473130646759111273594195854294785058954124458668097881640611186939995043099749993408595181465483582828883625284310386885295974180590340327215834019554035014863424644440748880336562948435689610150436198469689426788245615158908573018297908736564385942337909937924675280438816370113936463729512176511410754002704018553972255006435950011685009026724761042318742486921666943700519278267174609302426568744706880631704310820818602296936384726716905191535123274583983793795395407497762022159278294117116571676179591348522958186425750710016723744192963505589780057176061526808484035485851312449098754977018812544950698527628232476359309024508884731812238392189664116975813475153369663119625565445130456521710147065688886820469337215780598628394408868200527150593969856195673603472145368390207851626962724534988841105522837628894206802137891766207356153631934076501028363854560395736804172832586931772125925323183499112754254943302603068242980285631161851906584969459547196711535064721305629078408574391177665331250061188196247448857093210365424131108869253954440260349751665528344868624187921796818245636982990373011103343388198472542301093947534976646316224930582770119869795463973532601945893669572859628909430124502477835083796468990473010829673225657301941014528338864089508308539950466067205580250634699985165839756851786264920006396697102422449518338606415494378529183386248766272623839652249114469363532838393492082810202948764629254229940344489429728577667742509456447562349720118358257696045815263240390913019700285686663952403088068630087430121891845574029590333901790609087680941439201634295134705465856233270530710657171307233263617558626521639186832673921853775367802894751557379920315258317538816088397906555944879340059472120672196185875541441721434511178518048606182722414023505467014515553904541780766538576408658305631535274433661532568531493622878555350162656097784429615975840922662382421208195162610911064285382989675797238993684613487274040060846505519053365189412363831488483508550167241596216423361420835103944879964741834294054429329227847199707764240671704614595478884032639378565542821587551752352390446033392604877468138849129107433724413866090965277215973781283285062471620744443057534429300002449203702606976120712382348122779086594257934735833776959737262783726264856185726530381443012870362729600690103497964922363190492952331427977485627426137091502174923150886705625469207526755663708755957609783209410341826973378929029164717136257778616414286790360034617866126678716481146228243651081155974286106374353553934456012618009419116180239421541752083703873036960511074111085181669844410900825130544139447004880223743246429603556123393154754363870738375470391152266199442687997173884769817400966679482448766959227392127233533706342113127930454150104534875256304957951119770996114735000715335898889731565344750964292872555732524357239326730625915722427689446393337897633904381640385592104773259188710365737027358439650182588048607638801735820013447536198624108253386342313735168812852788436390293151360118291594137975545518882993500543360289698967567203300550972363082703873284683132052996714008982190594073348710152165453271281229618011305699934192829813192518138277702185252364893820951074467925053158014989726434052789528869760187661883076689696171869713067210703521137531101610643070095633688611924398730155988533245028555726491272846330183077128911573535811375023743185259266027038030810341603360342853760738810812263922127578287883259486345182367318729291383220779782972496639438168043481746568916529227614217909981298537100561025115972049013486113329648656672901855416210120093690905694059389996685529691273625508149708483583904446576355618754228338940503536794070178469364452554852533655771013666719872717244879108553836887111978462004531587666808581089510194197230915563717380501741963677156556477862931722730631770265393701959520068231377262744882073368023892798054547395387671203946866253361629335689595807976089000969136143745798769625325951063082545725471813628177184249497491781657807214194905582241971842284636230383323884997838068128441119114135306645436516835944438703739439614405475024825828054842894252931514674411311682523863357014435081958775515365004617221906906485068881261861905912356801623218376980406747367136497937953618660448298342107294838035506978158970940684309190231953613285701711749432493072451509093170249480447085461646064823061466736843969797355706385277436811871344106368699809969419302979311134653841999210828604524003270198585762326986470318214260878696627839913694544942744457589084503410247032377133432387828447050264711693229866565828250865630274595134313375591490174391179652581912411006600192060743687076315638171168378735188529371644983042891586726867789612926080204730161684499359655159475127436607487890912129380833273823319534955857007988060531752019505268868074193175596112888216759332198440686483436305122258340052587691473411804366293266659298409892526888482791321191071475355201437339323261859449683736723630929602273945665394455046984156521774695526519406167989440360005424689860002724036634942640615279372981760748140611139303107794331045663253611481007837536548562738267169062914216757954754804906544710058604515443509154084247938690220322644609321802311608500965778921749968176890522344108984525357128631514274892096543661690454125873304261469930888727552897943397349174958224216710876638862059417982914733288614231906384868488258047296873203809429979339308084699207086807262410625722524514317743980450057271885956080617846642131160358011098759601798645671083733738335419889419488653781451312074554069246767401549371674521074849171083018128777996885004168965719838000827953576556037906537193496140641969382777732259617046907713577695528689848142544044847454203747087629816278937242135265407184314287420346613787573309942620211374865243159240946524508698337794900096007126405644604078450153213874151085512288673118815230535316510732493160196821336542281193574316899774706886174114980830114942466047807715988388685160800414507948348549545664456579082145437614309294750820479617377131919417409985689259077745938592208873793213813361370723727623728008035462972694799796540988187569740936507325760000547973471306600463616141931257183666276804036609578751434755359471532533042445540253919927669917312719735956584980488806313186571828924665888718472526794140581753394740272777262729915013909393625790901267410784665330324000232020515070154395382051537469812850943886280382327645761407116408774037057985651737782612518582006192960833803767100675589052216100499965003078306440285969392063736256298082151695131621337423418557657920132841943415554241252662036045998072008362762960313957308800961667675436084259560432468550845801966775014085553248647687034282669103453845356835594938246936029510419301603464860001658720871856663098760324955237885000822963181522099841565447705920341688107281627574257342116212134892542038013886810067079441924919372766336884115012563221906748620938390596349144556987131553638697984493798484061938370193788242623560940617231561099327269768714786566663187848576059209265550107000789213136512529493701387019896577565605016842107294494462078209493730687474410282303720602972716533453860357382805748974448049242572824748930704353918119952473182165409199688978914383061960348469997469713736361034214721093407893471028244514877673663998874607151327918591571534174195016263386351942551146812644474826080592529372858729495159634280868182007754625788920354427600906114314096500355739612212920472345180164049714763940085340150812794809264453914533137465487569651928028265116882439563752041702823616989808913569987695812845311841048063149529486008733162572023659583145054089358938579620903876874576641480041953986562237830300197972695206606673486340173545903863785741732842148329823658272189252708853338371776614174365175996435508694345281964290631805091103485863685648402887903184651960612426225779661396131587452874166049805553100842161930853187538585749035625871075856831645249030890903855481985680377920556596509581592888823679120979101401475971601571131884775263922266397636987478907563740733987069228348862502820857966053538444748542262018132484727997913711505596888339668488290143204197532481090866090548807756170675068523865505170649740036742039832420180495430377415136884530773809851874609472261928222722597108823750677423959541245208717436792280262893282154237368752062362125569473618441144402565332337739490897268825620266484804317592904590365913570152524154799733599893404801063575818299826849322226986289676983573443721328776055552572683437707300394604142293732521886901089488992833998367625183486808641909792949251660002970546185395805615559894946066345812165781299469548528006191490837741389525741534656818055920596193298714600267190234183869162475027245951374751031424396833093366923167755755189111594418535459410922149988417042576231175670468388971671839258942326734914062571010727859817763232045207921469432324753425405594499144257013611168996160278570795752755389942632521410288982622236413441472101087017496578787802624114691752982617940940823954024240630956299765670140665304265135001108595809421807548940408644865278623980555587755967771462365560499688798894567986171191112547293006043552780436099754210989081513084137828005423248107271905599252876815907540971300065114968801609506764621973444317194447136274340653237435833737220716968396493191214915126005534188056041298422101720306747158192709466635360221219529067961857309688771527486948543829059459957922190134986314171100091620713661168125518298944587928888727503824070703599737512829808219961770385210244187358741784638091411530893606276647340344779852639153612368340014497671353919797393810532864107586631000255229685952684054725302536930029257998213919213324232347124893443949884830398248822593081636935315602175815890286534596485993169195613451045527612899404631118199072227941288812058622976905778691095437228540996369485637913632743016465302857940829947588000508418127538067220874465875800132588930336649762593443895976442498977809942005409692239850428964372804492262595424696740484866779140589632407458040958049033937163701129413442510894879965245296342219651815757454435110973065380730597760212758681642471419884711637906930400531039885858678156417084503763125100722146649971663918395792633715678283609014302742702322714871799922369229254226753110460336763475382681771056150954215316105303050093050849529991335422124960170208861561546471111189676141300561381487611457528385832679917803967015273894754467949895992637877395517937460991671142637561908496464946339967225983087596572883852907805051228331880577467188524018023303032248564511838323903502133315356758507884804261684441251550508393040429537982117521946420234484966861169461165488528546741804873116173207112435849060864010536895390028365602089117907692151706749580440526621178519112443810772494450461636871028001328739893876346512074591107824036366418990075952867532360759121414313846750495416498051412281174186522141535338938084550696648939212587257956796783927593715750199838391412993075122555835727347997947084465362899659778044360356912541921070271717566867384814394992773970778897820840285154508417689103623037492784270295902600420667936272659250541039107858371855372792070485159375120278809679971090810585966662103139634206872121962695673056839238048763848435167333920307053514088396546254684798438734604927161669697571106663258673373759749932207661977952675813389559848673140362472938550358682551698496586634929505009084954128611968371527982313936107992749110127263808088371668309601484941422026365000016490832490312884613028015050308992418879967483041111162940970432595909416071940995131179053005800997292503653777882834315644057122853634054459069832587443356417880304495997406381253024479493582544495269426398344134800561263036727744523692251214781577879812826642976934146633460194713900627915033222508666523642025822179580860765746426050607647737023238774977194775552203418129456452295874555883977245315750450943529232759860186369330096098731339887019119311196483866197885856477341852191537291732545777557215326725549441144606256077437417446665284382855367214472974327785804999077757236124040593126933901896762929620762638525876107548319390901652398981832951787776792047470843126779562277610305311327518620615380262900341194649643776149640067585041189966252836521082500747536033798979735018898853135201568066314717550329116126684240387942704515089113005591399532517172600434368347558840041741977797682532152459524925076404367700969897768095859190259850810536554660192984381128171021105390855389893708773067431583387479353893911544874875495077978764468170940936576593382406944851449403136678728975534855828881219767384209401823317942386377568654027176239102414961021515133380640706635987810953871338063793893979920310702059816402878661875950834710593919951382791923344961927630558839087014858594035289688720401364369330256361265049884889249754983304876032623241043299589933740534385304781426310331034948283168888176058764827256489234158802320864628085146436669097067786649597192792866337310516720210461954077944144585865630036502908654612105493540132496096897299011116036785562099477480551260655812823112946200884178548328129814271714264261650837893316637914897706399050479655024269407507549244314851592930323880163080490156949691547851920288333373101280264108546981154944504779509313298042124469206459157036942669765129854462652137538259929327044714639548020021953269004134136539171185922304041768857733394280742514787369047301457760516145229208699217894223440688823317531649032553290190037006232038050115656024762156079916773703415404978430777537701779379900260812903348925410195757829717889900701953504226575140704198464108471094870913215197424150121068128249137644879125149622827994823326987066243129926196586465373742902614369157486998744162771644938585765583931990237283409516997843423442590214490992309683066054841902960572952444877162727367670413204253222632651522919002693495079972112199528444731623800139289910863758874399855751258093422032093522179709324496473284560533158164223400164166748393917753123902784459702909208358748957530074619138716494455088331971766409688478730921152418394744671350080861313800388933033488944541944038498702991394410987168533172286323966065151551421240526886263084875892940796755575121808538076706078647270873215070675130319989655964496316438419425329119029164919813559243392875076208682718082437748728348766126719870500011971157516583284053535722452608235999512599522928269043954875037358685987497829368397830857222612429782876763163090560903749257899895274271379893193371682808062753966274506925337564123912607980507108704451807807953101161902215390179648140257039718498771435447760706906829727928097367444225914884046034672482206032316391405910389817224327644484924522323566457754798485998713797420142699379910349500509294495703411928424699558258748811121751079728331036091479374624357949793623836275572937167182291731044923300306874305751577559741709246005737794693290644653193284585879876722766245219737536752967370453713092999231710365830550066457841145106682420566768157579205475539514576616875420472153861664737405733780472880419853674841733676008115665017899143499438019563435370869537484845875697015493401412983414307407610094392321137809918837057003812761561909269216715648828981522179280875484398567587728306560721366593568130629851364984555163424317076281743929260311537077433598336370294908871726765749639939824107620857867814373543395276967376178711075700161276323160187736299292346685428128086859467585058693521779144209303743465394558565254107986016702331566674538377001417204638057325864859888165100675421286323422691024989201032432445646153319310726189983659033539915293088232026079461369722139662678422489087048808663363887480672883100647532367572684879069316561440731206763874679984889038196550626779954994606947313732952331095868006678198766594525604604439331352798992168769487225152005208861798792141768627576712003463512083570839239892623984966545369404319076082822862019581231185620252965476565984790462482316763592832693436553727753182461517634118304638607469485704104602887542731887650649328263006081551176005674783504597343140843239865488290484318734890020485356609683543151106781705571585453364746500348638388383848995605569696435622148883882796025158295095123804494916167247484837896689964761361725178046852688091573242476410062380744829639449328207927457612838308038532705472930886618691666356958164848514785048892554285763181105844710391097547744477057643588027926103772633539442326896992494552801326707438654462647110695618096872080732705095268933696399749287213698441499050052922988870127469913981749746308007531705079445079719608986941515996039144893117635139524734938566073216409998470179030869691368010166168492173562629936777997631805381404569118462159541054082933741443110612310670464154598825424239537319487423975070309496040302416174820789446372458722248507112487107672720835559039390905492754995162177772896176443728283074171656918441788696562310511040392799152956118602826338975679314164983021495397116496302433261264129478353955484061671212126027281387676790207165131712521276485265732162923201433142568723798892965472023665414319457930047826528569434952713336409342675120108871773628196877220987791623530740406586105620966072719616808479533989320212320192366734763597869495475484494138329519432038360948746306692758900422660979155933749487868785738632604844541507991508806021868273967604633462206971076548985090683594868603144321742011611005744323421365724848729782663763660685601202697978281653164555716461106574023762733971512853781401914705584046227151227285642724099827940056799739846144458053362850885109612932704001848855344209751746749811411286034904624874732062635418246305116413080785965385722190854411766237746259076120344614037216787171503815525462183882253899472458732963066494258933746149203808748603866990629521235509954233241172447064100709829364515506460453790643087396521067592399504641916200020669397013338453332954461299708072954909850689348379196320727347775313048314540134494801073981068098446894158887865141787905712595086272137300414544034721510928918339929162778796349389794859527127885539777717202318368082692204753757649235967738218461915100632594394898513886963838410651301675185969064447711660361612008962268895201526115121848280135804749879842397907795661285210937747557593498029655003198529478341159649565414319361471972949949594792867947345886817942870806632331572955780683653173638078094485916915688465402388282149653621986885100907537212807387646428152372988267835536724968333926406893127482049879560201339320427232792245892001958177962148965048508783700725678918365042162743220500359855509827064145184696287169508026844641538652542705329143044284391131750134746815578258857658913267964435497799774196587000182353516043067357110462372032235487253086384814328405066927785980356796007432534612087941128569462354728386595522444731776841648813965636238813238836320000578108317597066249766337298867121162372832145679285648869267578008483240759481494345871593304712427160349099610363956788338465829323990023189037590877892693319104469063879612073495770766537104942245724702038959954530257924295461953690376464257928628313087712399363710298933972575872822065664443284529904566918605931548198774859965021556670461019772527918850527520530598725582901559295294517645702192913990878917234891077222633401264726785887251031632568772955005039433760386205477392611775833127858114728630323594628803195073284555624881642894659836139056449078064941976230302106259563158593203166704224662654846253710063317969912804912318339048921201036140128732770846893479970263455195052755660000130654539081269547372403080084538176662960460872442595563929264372755925266962020145476120614597228502611033707911511914375389439070337268157814498191958992373521164835192623949467646768884504033502493771628375584543706567609900248018655155892695727509016718153816912170623709503851412122686082955379229665111396759476548550937121844945373389442825465143810454600187415840581166732362030785575804115016186417135029579690466198987352368101129418683973787886090338061512500233560266113285076801788026300593901875952529294823909848365735002728683557424367112788629395373407779331151201341991863574938135833315521522580152153747876566435406253146041109018467683047779584353560007642707300108456633807452827670367402371396826935356835039289146871688154402739414511001370722964385415915951833799276298032061075651680439613944096462780120387050996692408638727879425814575711288286678272270405973127743267074548605430291557166436973942659033182092379534111878340880230392940740594886105800986683105667045848903213018963411939613319769637928619948360956449445107577609983013533462719345595114338200237059694343904535799621260225913674148289746128050096295502992567420280508345197943616474822267103486567895037481810941320402680116824964371239819577469503500997948199643344411921447219289505439331784916564761376630183912099517864252639059219830131037388314406817300846362473536969384867148548934102702516020788100750262465926610681433712454768250475885763548576332428963922823036993325271124135288006557164931620500066635493240480087288017683358805848318451429035833060124399460245882279533139536982045679433847060198088219820148953355140332047191421842161559221327522089779695896111701613888146536027201980289663742321950917552315290131086654355542055701489015950407799656389350145735961284405321170514999802455279617959281622312050945803138640266748785161554477884615032890837996388664761025839586626070917155788647255246296243803814397346285680409687911210437009831016437440729415743582553225645956613841600134302880974814993536334905100110500517510351688305622116320802443018625464499158467362692717043136241456930367949866314547495451630576790348569047068855118292556708022779586263517900472358173026402533613939822810335901322332575184530611697703702401185684801693990520710953892387489910395620816889204068778787643349671149428617483993697064768040920998467343510576310858221122631220392365149860921973704020321426657792568643324289732850264450330584491696383100597972365669744216186405978313419178796966625420037380732079000438179690596390596805423332241012492169171961413638975112729312120873370000813603051412740305888484155556142428917982016870163251880923079832925342130116746123846619928925669341433916658598331313736368158814054861607527238485663326723169824942115248471441238452289406912376461124205356681654600744664536417923120151896230035286801083965283742883234069378261490887459633252966887413946379835417111099745492796001652143085332396168387903903289195340261585922735902266969848144829405419833420358753407930002448501293081442668459827551137524691036493510768026259616433055110549589046417562790917380266048638653070746825685614271533836323654094501660461203849415636040737924825497774135890824979910829330798546425855819689905572098568517508224509412157441794413536393263738639146874844495187590498871196839448364466513078347985496358484039482246932246847925985045729723343207155705233755417696741724305409093873724324479673233888625246484513078261509661554204340050268695781374319376785987990593007492909215160253505414563125018578698079779059242123468825086355235840258398929178862815155880412740983743002397222945451293375504780328081859900550576794359040865824053843057403906303214268104386444482584502496369201777391418004332516319205230372394460595596133734569306676386020306086831471483607395776059959690084924621385227605848040014006536232713368481806130002769675186043135333159839330029683062259146766177109648285717756061827909730179147792767588035628530299397172695371901611107328961740895470948815747456023155749337941624337072710737418214157675769401567614300464558067175288471486003182204612032726467220707303180394827027983977448586342732703194621780929114448936810275107390983962230450814777873628087871929848648893988934687137493457685760723800347696984326255291033776430142819057853269303525316334209027627396383116001407487941154081398175191050299487093937447573272815481889695281787223106594390165883243057788407190529917914590810344069377237026918312741258614415065097751609481217059552920445793734823904107058032360533759425039870396821309797471765852554399153690143871471524819393035580663598745567791222959427891568014576847010205807401912812238109160240044620318439911442785401584459691786903011314057775885660637505334718508075390234317885553342371341070720889972126096344300726718797425926699565286278151001315371567380421915906502119433596817697619449665542452124494049140305683496136196373450965335442068697339680756781803166189492127862054773079355009459703969392480674440820010717855688930925247609513137825130582882862182346476466263183701044177910323600947629102642760216825939931264018837690639706094560216473887658474626502610734826258535967777078142782781246971180938868048126528543299022358547702063816555416067422264354777862617123252031632943343231020107917338502860703908740486165007994720598982639334483064957455545524400387577329056327939278860953585831778217181056824897157153787704749582115106264734161238062549642669971373491012603438182806881422126170870807074714986968907969711878469324662593980246362407151037271700093006540340922325120885337350935155108729184532136386634736608813399293395150522115580554028776053863741841229695360242902707871554515993321899904772585106215541363675624823278081928017589930156979847408187758138795353395250894272140172678341589799954067446984514956084854736677684290046130764191132111991570275882032994563999874421104934961374132994714997004596636148090247635190496748473949806909499526282719643703579616245571402266375999360792442233275057932504597483798249948261021554146274815707388215885987905699070474090823116800029628395338729495480793694426987335904413095153358614932922788471187169194258275249689668108256350770687254952735169328559454888314672997051056590552202573998552998588561064945189719620736414191677708547817681697950241415972440921572339725189941786027878782926639782090998581857920453990718260259976728081869219742150577824186028182283539793606470659630483744002830336992074522427302174833057564584346024889496010284569055004260397674310989505067316925539767979019905893114946321107489581371807753548018807892077191663227035276853885257319026409847353256660036978897810453702065662772712370417788349705603016634639054690880210066957823106715285621508444495162080974016260489835703193869105218792427247199232142254548550660595322058310315126489190730546074603444206927510000406978266118153276923153216147759579022604475232423771121634717325030163569236231073504990052118566523546515236079990067001571433551981302370522157018640590713089388349752874078467976477265158063552330079745571802390445983252077178726315530119077806009283173128021586283752254892354356768439566563145203661482290725562326199366340754338398801064271984686638069400350180484513489806863921357444079732911249520273021253612896301515702313896578230685362884658664200023042224503487288017238855935034104579636691878705233121336368228279797426085343292238849413459564782915074559569044297203753248548839684375085820097791586364726180178923782333328532974849520952926314723025016885347508993225691367171581310566141351723465604090429500021152252859796318987006502736964123008070469467679569097987350664022013006418431467448059394343979523197171493562019567348562387520475143017101623306618349845006796872187986172651626295355011468177665499509749567984334703500942904748240848140784928348976696386409841825571305234689430051129594021079344691838364569365550257739656508432599892581353765757247949287878134518428646499439690294550901787712803238654168785531181172522866008779536826420371307244794274593591052817780729061706634563084821678944158911882444767041317830336574532088105463486451294319624225290450853687255407238607015683725081221169034733041904430144214070513970797114018473127648239622149815674228802693686055504615527946800410974770787909246485950570562501206834861075931772619851738186998194843703219907817865333753431980333356136591973151546780901392951824095025001565956335670674246533780289991075725679032023384927695644962243653326484502356922326679161548026658449216922760756023556014981478686406755685216949144599581583070017698266817532783166205775306522143686049779108178992913814388033986929651578659764043024965150197790762725632084709343640088928216037971330085131476909019920784721212853915946773093524043231784397705561145620625977714196493812911884629622457092437400343581476065417968175525579724451537016362947638230154244229342870614178697828414921671570964865924676858760678482674808356054815721319325024962574693661781783610604866276928338451740942210924707981969835800472163830067703820056163184526018783743173106998165861103797114025962280683635316709799442546901568618314017678989900724781891619037510819297565676117269071885098475895706591072447262937492983381117035835735345208995896683302164291537562134448065262355467171217930252744494660092874794278451479516283609031999227552195416687133648617464129087974425342526582849234213402685061392289550734089008287184904779617438580898697110132861791242097643905849129934694647971540370766323966406975523147844494654560649702820116702493969715692252076791987408229758562091388847690902446332547110742119495949182389834328332152757892881872956848449526008838266688595148770190770020327542340264017954157863608209958094714780011155695584956651251960206887343718713610717429731185662520998011570621078513178406187550891309447109410817826681498975912732551060928016393355791071110948549172844088683041296000245311736820021328652610695546666938734050605634585413573861027115546794950652970182849078211991866221682610302132882744470389592071023779065789520161583958523731553991775427630214367485906630067420664554755168513299705921618560785627539326332304617802534992733905286410495872119686724158671024026207530034016909208429243161668452495846228982328266813467395205570771887136821834340671674269030198073158026382670753582993521941838210431693368850482153835904737193015539527239856307498255267731725449551007872371879905907404890493973678947953175762033270078442982994535731713447964606241400083563992397367651212798819206563872893124601407708321468143497301854248369041393789480221401497300015498212555322357486370733559752104704529391696376872670551524366011490478456455558770589999294319241986925420099448362711072269417958138538529960476270903348852377039452668230113989870170110437877367169273544388873104358710857538033968142714763409915840541777033551605585991807811611630189428265331592089019055859903266690200741699333126475102372084209506679195691309210312717950041678899177271803718106118440210024968374176124618615955564905802336812765817885066432327993426690924425525111960479872084646053137681428018470204013304641338573214442281206301653323417754095440503223518029515055382423558864228797042873250219291030821350537124666943898452485982388281607703476009183220537883288840742688375002234448037031366597823064981454446438766089444711023256828085296593611711604698254994205229032522398774157857701711422699541392805929739479938094300694995313436598053787736661544958693402623311819967696332245877247312739396566390828619575274100168651301558173002753416339811262299757762717429847744694900134829157271716862098719105176965025915112511427411697062087856898125546399833131111550803531549169366257152359404149461967649844908254273912481127274174027945657554753639228569036569708225731929685780940685374417442939793329529208771437265909610854558270314606458676521631090512592047581332728957331910262163446114582825655824192282643362097409812060830540797282644362692517553849562075395946819873736732845494265476592499155939945025227983415263642497360319586259251612290065129294476656888113408745243908706835328412351763395263158649877750916908186571731799381140565755570200115495793511897905239951026942893705422361840666827009291708122047899401601914017306654216208373515920374064856164181912860257803854477380081614759916474213440001492678055026043216859139067432429920060449756947475301489321290454546419443588580732773350972839525196527764409048176402706601603749121723585865634486010823753317907976477664261432379843149185903412262517672061973307576167611733468578689484640464277840089162071524231696885358164733185430427966046066759357731454681529502558226506672006701386364270938713395213476886364489034763830511849848457392388103299640352369329868734972725448392903550741211832732920682326884892858878656009934586400237260783650466496673236955551377245204093789058920916230805328376762117215787417048122695928807662128522995087528552009660733105850025466463259103214350300829460750196920394713364867757099676141055733628646551262228538221878494454091297668048537316505156290403664494426984687178097963532831310320180663728031336481756738377917779990382443251832271115565026109746950017913854260690378437542030793896428204276295074230466850747815648313825660835103349832020838177109191751071327870556511232038447548621260445925217686675709985444335263892119555309785254003370020977762155994997269927343953503369573762092305334966018936966608019265569963616118414898101769594069870134149871820949276433984064899875850348411244108649775711898271939510789832980401581619384597177552871434286423640562629131715492977324215972830804004513466535810005904762533565877983599747634995714079944082812742069608776775586356916125570895143951584833815515867878394232699394989613921690666881141933339466235425227003509516743387808792661082004467394397212430698138547806492365571611516702676535069507172733625308701778708364910526612729006748494384396854023207031199440223945400468597931442869816793047159226786663678603828049511601167229897452573054651075045419283570839478198738050388989151824698376915355301801427010380282888625502153839538936047496900984626551802085462420171014840547276773335828500847877123388121067347137800460336991549155057137415761387541318904338742931063639847024621803405817847578590597341620787750636417653073364277604941111693322662582213748560625560781509307194203925755656449700715375700656638367472500907143976543711974600039086137713417848407851760480683229269019341210049293798444114898036899690180720617526988243742845790234768996650449296721392044898179991664043014185199599445354169323063816728024168523977712484177168905462129717455955227407187110309016270725630539099492922587409032252912354625086087316818717340897084974579783173158759565064436014844891694278951414363848755308609462611803658059772595519740235295825563184273166062717417262507986999462248217138917817459827475788930056902358727779703697410910600446335417660851188563643994623916411403884564693606647230031289292018649523818962878291337829726128645189585058016502639465223267017070521542967285156915121202249551501653984617569008250600255923168685716577038615941745612607977697088198205264543624452820317698340802036804516964749672070888876888170774502361514305057126453691169028820346674714879410884505352579731779102925540581742654336333918596971054958984964631028194148150382941745329366074369187885307086825868635826995636237752729633717301194923180667274589986236609563187901411535424021343740244353905377995182135698772622169910983124486658056914666116197491928959972807752104645306297665794926277131004238564249304117663640676932548220918291390774323969408730366123576284915688799101033686614326541529327779475910538461173701127037318823042156726019516707570422456600551587040118626165719047966856000761428817974830234828768620590620593985871481777413038869661673284651892602490071185680472986216785481026409765716298302083429590958981637087272868951188048526406740829406213548552218579349639567121817972419502545051070902288263185020890418605604760565800392340414773107036477628922581350537622464769288654359922479557993304635266058834119860573872344976221920994810307713323064014072321476470930736109917397839121239802523867081349222196552725666027121378882466408061675911692500303290816514985659878503448116554457244668747069936610230593377611878438662566737694662777647520865087132533622363301813189532458093462049297611501443059115574218298247382607911037901422824864784475897743908023175684787584552708271663887842181554189914545042032321399418556868626963541069277608273277974333824877350085167377391520352813128720960976859798296912597817945422584024480563549856029418229709415851883226716968150385657756762028523437479033781931834696829900354069275460515561196389835753106867679581257107797051976468181179233794545883688437485649925388615018047292807876202631013778639144899709256326515496691763672624923994338472494682588018015958820500288636578067713755198687765257017536539205286378739630881542490180083255952349550083236949534211170341122254590530706021831119750965795630634012609730595137876263646204097273706724032762196712502655196029007906654461143870601362529879894079759062266850809113624973259862935754902849284404612113405412939864388023037527012695999654528211218157466409585654623621217759655280704306299803562503420741624252606334498691742441487376251042411435226969992190336670738048844048670789220843491279713850734586327960220876779148091253442522462424991947099999085268779532316749643860419108796152329353805244147820466730510710357561614450296511167363569316874390370374172949684070387569535604733529253608736047457826977032109074455179608508267243000467026909778157827168406633190387323146887726888762140113624480329226479911806371236010631646088095405998799439881967453127748856542667560678576094742626589720016211395367564597453277064415520137577812761691836693084446200511086641591232314586763799497982043197490816582815868121840133479327393812031336315777590422387315318500102667036489269036380056462871265553663914463623600412981861499840731267333023238327472718992576833083784392319473417432580579233171189308501704474718128374178903983823083897103294022975695692216037746734448995453018541139622305261412489703246136643643027411492107233387845693879021881944902800570963431894485784385829441664880926343215425101938415327782203364775996645295087419373416535901715774430659086294709702698623692269634463657246377353964751702775587878663580072750672023331576841614695787781890768525715706975212489631494608238342811442931885753853768301281232170844835787978396149244159497866852305961056226390990638273230235148384661791708719772632925565882640925164594954589114528042050626303406277129676271500967343800184898331904427086627506866734067438782052437549431343854043336944029815106224132360622819787409932160830425803643278710411091999402049923079994874557856726125131477452804262234149619520261930148484394727979182405567299037988870814477977031297507232943374127145742270902036996912390635708904316731834005767718308504179691539020753793873310115149922628735242656167078733691379139032983689007954139290048852905436756299077006320768474696340527308326073972234105946988510222021933159899211933656829328643043159874370409887523262258786982503251038523436104623340553009656102212905305822525330543792460767581916896063532830297507445295841713521643003010401092936559682709164629305613352833208742518026327825130398915448088019347275160530229750489709972411659672144127992651704490432822063071317909502720964064043587337490440251835544224397859526393244560487631865028650845269457431009092004723651931742025880388894121591198967772053659744695017411448202489378600324150048575892408885202125838443331748155270796418757960177636923575472491460296047225849561082665698303908485037871633699246997377261350297296438722122376612515838948963951632570049982352526180849498575779673464399502025730235621582361047439701533842279752798748448911930743104620541680452034121692765492934981252636407717239406640173387782055182932608294412965888837743478677477962144033188534092277318243729586767206814042364239462534605688384411193254714962823992696408488804138575986702727786368805715227831381563347678323856863036519976735291800006638784266256202101739753844333982147402210529956975738323947619016236291259697699663602898343664753829023494617993013971649438315826973938903545665390355775813120824213561785781248255501260623641690522922521027666334531851463458050008287127303382178507878536434154358849977290505033762675537506348989057433033724221259214476349723448105238879163423304305067641086664916833575653049451175350457095926481182904021317159951648951010784848205608285058627344483206265178784099386750342699180820836023953414461118322883729376707522486409983332704712513074682838911156166904568516829181254343730997665720603932127643974197291477212856597264552523286414912123041309654859690915869133698179924917094554964247161035746361415139368918413991277474821416391750231243622501941541713611042851011126331374912615048473664795226294394130189773783126244207475794115829805538733278368535967060452739287537906265845057862196714625400928239364421805573619679891836349826373960540041335932416615625029124297814360083057817398552252065393463672071112154412633628182622285188326325088963428187026900705571671723583198582213224141775221718087713398965767514426497458918542652172663223187890931353737598849180158095135527377439856758787143318060047073699928712576112630763909962316597796008779120572934421579681799596652919785853120925589247768329731116398948932975454111494854414850512885684101116960261984981102509004640349318676394832082695096423105722056816908512725610155679508053859950240602567188281692371085625389396195216659175388440884724163796321949803345024606225878849595194314312096144403493060219909894675680398011018855840169754439563524194062140800911574203710620299132860655829543848020437233907121625037903035153991884825596654994198455781642513858538390621321084713817169641149385379012237315851923027981085898490935295984128052728413442910166072617202885844177423151945260493401078388556510603869498986929935505748286755153560972094910644323013827812476967539954357927156223663895033678125059696052126503204495841933347003094055955350296186470637347785800580530152435110551197997021573557685681058319696626517132527167405502871569448661693927175536067839651292494822122051607726089949996476939582693962322166089714341372602354998727023049696972874946574414743332194401477732769830537700610324695974721016539856771852790178417782049527842966805103348590896441040733698804713693578457358907466276805430132808157814716547358701829196727455259471327230651974297841446027476283863599699038813228134997562192586667844817508096463064800800617594874161300300376448747902353391337617219143899320946425383175531544394991524631198598849082735505025784394182551046624339422341777064159662307961489029957010585072197477382628963910784203786251297525259264745243880089308605589758135511768722665841966725281781096913157230651730248235270115532011159916811158757585250803983616102540510260005929540116566301259338535285013199029967145242252632995279199095559573628632814713324957111634749437204011930358007313696888124368419952376973658848062860290424574792281449598408072487261395919237459065441434834333797122355053603540587014877477720394913889632193811442623423735342734838952769395794994103824735954462594476601263501052115123136910788522313545188008998126353724134927490747771950211241902871974992381191880973957913605885168614013380503181811775533002456342493238833038742718140514685627007724180919292942983196682044146349989094965571023645370222564295927878739122235871977957325961163599415891660776529386602524249359921696899818550387524084360771057515855079935009066526222303857256227104599408846121646532148665244586788677735595639174087013453802129243669103376450684930439137654316312038038061961894576694870822097623702945911684814806789324833309550251184997811573160166454902130661271678948778903911244859807251278437733104254445763317191043679257335809180282324006790211543214552785901408375520332840049138509602895118590520432699243673292721315497975885889048257769411511618028374406728104465685908463029525867465492276084563690011394026592432263918790340160141168067186120644571085855224647850714918002263672692221922865052563783523608607957837203244037954753026097046385860598921577594442951791698908712645127728294513305754932318022059807314240270369929702332699074626913677118006208922846693459708313896225414935220356923831738711093106818944448797029480370026806755566246399840696552457325091557253250582997021778070575964152556112305460218956393934239144986426497703691476264481442767489991031839702914325300363108960302354293396947559820190357234473852160024617436652215470714878745551422326924596403999320239036433589078635500377288164832693595903711060388368568314237982648284204425937297477506717752695404855143772070094841971740811856214138595583214365092917296179110309386654897022158421245144527350930937387156526326281558802669171912405755464352543437867665740352003472710515011967894703074264957397655938870509683850612133229312158778066909907747318958452414808322476110619293324553821549282253712868336244435848387724428372966606018031035347452747938358428392808197586191427642553041964274758909993397005199233162476871332826846128779435217824414525052834257644304279745262508583111228468181052387782293760983756150163609048022616696483889336873114360809465100437394703729751373206068740519224728121002060793356733930613151806307977386639981497930453680852586603887418432552705328716295311544145242298981782420558642137382431764251249776192798100498922889423593323667741003157001569364997668191755490169616917517414732928686303052820931715674986369619459793680507096496777521670432230600247330170141126141558507771840725024802162851558883249942119130361234100115763464208188955279280598249922382175253956966135355712811445995978738323340623247448796168980508950812569894250652541971839307299011411175950222101425847602152366330493533330752242548379855674612701837990964261231380922661931161724093034004770163376093421994492355916475689986876919060800363798906006466236872983755222432066464758055360479366416760298503570692222924274820784294998225858730056992565416747344695147264220405159537446562612675496280900237564046774099643506561297652158135169889715355062606377211486678179191938225107029684777628494587890585834926799686796481771818594179615949043640241665789529087868909702369729279401922595575821677050210274967926553078019662696832310810521996474408481948669770077492164301918586445885468702500978822466760785767019006401639552108363450916971077446082254281923284376006472058291242244708753607889792305001304857460762728726394871086318602963694054462488874737401741947044451525828393948763070936239886374023612010606279992434207288449269511735511454163711742372096397094946753796936345753994920433552517719833502300740958594992784645802110268933986096653487766092573318931153170035677203057154428216666722157676593985170741912853161246731748626543300392069875270555959122329002500848738814127536031441151265599951304199799503442647049779818759716639439031676265351778538754987140560464237051364665255585917126282463893631763550999679578485891474605660303436267213393788983799888714077406332008771179053014531236209481503824664404712650395512145441081760243936670067855815670758103186166983862724832894562872954354690467793498547613408159895614290286625821558733062213438617613281935738554485514471607819559338440818008970767790719312687565788669609988797942985263205610469169270372657260554778866340952406030685178784020363689306909382904377000994806285072635752886734359555576529148598518116517662915914879800348443902834523359672543013280732680547171770310294126147032526047529137610361912567512948013604153829061503081526090154852804816275756906017273874971395930546702695519720104785312955205782861362345642715948257602508288584908645493788335835970669888111685633169850925352793426413954473219489432934165116465546058052553002744636225789281324827141940191068492399410981918553549295061378012406431165101985250604227526176813105179516961477466157382553905041575096126883437863615997848924641288942624527648839280044876861311714152973262480797978298170501521984613199575809050758693096848657370069220548384697391182742458333525592159054782587770570833508336873519651710276356416308108349945633919005374401227597774094932358949012362915534874918330594976889768520494946117740515401616697667816796788947733370697955419143407463547757841492795168747769556389465070899807716390779644648550122411165537705505030827637806898403100253079233720020860607468424979264498178261506469167703355786334815056456793972621790532690768552812674980145675799946169019537998760774206603973986360063560683282641578302918243216722020715851366854320598859232458998034786221304281239142259849988951288924098862894115620220603546936311158978395136998975205810217178320242154814212310705124151945323322236491017058183502340341399816637791012924571479555254533134629035620961677942777853596203798600647684905782695467608072301221956094564798899376467603058406088616556075499856211973593012791109931894766720339856889655673683600950685212622391622611759931889588860586653331949853334950524025677407643863684532009877230792842915384047396073574570330818501551972537193582372516646493807028069292851456365352217845055795749736235675237142348211852866986468708424028892089449920824552005223128134805691686477423868992331280665773193676525880110127197495671074203165794341994986976106878442194398909968792217436706321944285943873933222876578407984456138342306271257173455863712272442339062208641609227571558591380495544000260894967144767719575048858839007506683697907655651965388122167202718859162366299956263132035551148734483283737217513172587563733722522989117999687464562580290521605094848095162781465547591755034974825406685470843721518507248441016968107304292042337924111844850829503231285276609789253760719172179513056662130030327281463893259212931967691505515081776173726767758154347992698755190536853515351809922971988241109892415957959336822558377354848115811282414491671379877252847522038726121282507459327206840187236609056417330595155384859371166568408269899669194330669347173430858723985529287200841090531612053872747049815964742440384372025051240777510523075401988289000311845252164121949289993470349152059861703503993552547506067396673322804814289170400378600305532867882590363454721706273099170131530584550263075723287352883802258567062793585442228117174361996230929746892564423468087628373915500797882799680310240249959469486906659002846753378887252853184511452887779433188985250546994302852461705057591270208597428695309745743640819465003661122471388793622003604555712191508252919940210927985780710415427003055242859040730282327061584564044664848923676641311861599879008009277135581393266449851206165944232698801472988893678532955447071716328016639437454348001051544380365629347104840322833033474362619939492131619793018299612838775271011081303304609427241257021276131974233001467727868470774926997299012139029799322428969754424428059956474742656017236130868782217601342174428505276060112428061848854444578871803764155023009731304305024484756836869269284820250943738907771846384135331812801711202400748076888643524796842472462299772586498477805126342585092332846373949697193933490649332609561807684467301151050938788307324995823518512520941055338984269595673330834849765640239516502465416108303335087507236349272971532706311161782006401194977171066655572614639194015496617011559118782204388051807218497588278639925938163834583889819921474563716963407850859835622181947160865341391289085774512110805308359064371521874878667061009321511752431475262296772791846383382562280020789444704417367037495207406285011571239811087067093637805944855797545835861379620802979918629888357750522422474259229510511247899936702831743717991689048312781470205686173133917592444920605973166286190570217330980809692710576050448915725914541298810401221360235920704949033002895621516904095599405175203337987035033547048938779815041674909338647278930386735665436842129241882285093394222375210760191404058129106412843057917122394967071916753143928419022357185307551632948460049400879890221939188459266475256458457162707015974321169393950448924252808897486170890283378742981555911970445291412372113175605646756597443367029053942299392037109248619256223226980805090218845595383241568616432473883238721178769474186000210761034232550600326202776760248287387833782473329740572350789021212075312937927202520824135981020996202868695976256281446136387569556419551902314434516453890706880719119695669756748997676480721644852885783281014020376474128734418776992756797898772546626101089404008916607229497758486502433791597004866719009549246542106671351670479921616259481374069192030768918314131538470823911868292051312310245714081892234140955112156173347948014547191630411791424955836549117030881689293112274590368714748791757547974792185730049298811699534812454182622311503985553738277195499137539320598077439844159458100987044373021618535203303171459754956351593023870660056512602935623593076871099312953472060582204210689200862966233967100709581207649188503900168956946137922643580184581451417361700322509881835368729161178302344669950049709100749696095223823887284255671381943261118043988675976284738963220621616419233621053185466653905379549949787497876937214016529114992323453383418546536105618029081202194318041486507142849428779160901196683215679341872109483789935713246872506563255739281813412057846601368556616402478763586892235167031953438900009482654367688082470344747925610375948077335946117674752493922320209543582256258881003025884268526524082464368035029110406158106947841640152120471033311024192672265686196296777861582818508957279829324615804915995551986380589173638559868115130638524637303471216875536106117694151780694586405672864086823993532785045134034203447782199477809219589971437716833617067135713605130803531466527306107976179569395926719885369304740009834895649862295853782870138161638176368391463682956157907198533941916863745472339034368361938115201556499246680229621071962549514026414788068251472045598164693352867171093621166771360269673554611231468546568706352569844955260291592465584665693543692361143923423673183335468371756556439183354172875611963178693891997710835698423964376455641129912553522653345343161050483583438472142652123155014211155656414742484893224271158242262930705391630557725492613381655348783526401135624402116537608257184283284729764336112673036938724778136455233007509230857603628080355001292676710818079919247815722738416875070273907378249556060924073042017360543436574283637787560140033606923671942083050067489110673844210618949344715495828755349452733466576978279291094055895557522144444778944549804128071897353687065025831344411187599184163253856112129450983221749100579587789174306044588960229393201861340829925540572967895848401546463858699563619899134304964250555294839256452630763951722465399044768494294490541384560337317972013757963664031413785160275325469382231325170435106548137188760965285577019768899569712545900548888860205918326720132865293822924143765555293384074495309061901855568399567802044647461417088652160234324755250728560791491010072517708284055891525288528621356627572326526772166462563067033175284133190800147485327771681088451276209748363623777587123625408341512089909862709004747039012066945766753838641255439743590721251288435985218177019625662386516353397907309721410369171357098105463511492238003191675954447663225069945910058622599931710571383564515908307016518132912435862583148992349469936723735579929009948719113199785520551122956587982693310081335670350468974439333348971595036266003447523646242941629227935218850985910997657022774521724484455162743523493179045089612357796490612464444807865468090883255765549031330991648458192763962221509353906778558140788222489124538487533731584791308272419304253524631458252372086635939713225879239306173418504297324906494948899793156481961405661195005871200592531182215293237421608587573651812155090634622044538795302324777691015440163077970810441902089058302920260607604635678365611290407181281575686393936129768735528282084652603978564161238219857066401910811526706345024855330169863461196661416418083136719527257713693498911901740233852024583457529352200266457847767115483407812908419289546712549174545460545231431748651225453563456799814941491064404051541905568518138704393479460963099255271428972188223647116061509834173481489541485809910985730507969384877529218773953904100924168009422828085296690487045136865218253320257823910865881002512768855400599689394348546896067540569899741082497892601480198249559120993243795612869633423525910148456593249541341336364883748596399470852528947165111155253215873534494918766073488487646938732394054036538844097267541608656327040336789992409024888148773493151073696967481983458265331643244786347418511606380343976820110266997792684673769665591532011482018849388604554994733701550212290303590440538800032513859455971995342431994552386871838485506547490143699915089040596679353024217675084789214427501467595942277628676796932820093741187986619693829887969879592770887601848879068200404493321199242015717787629679765167571334149803926103956934394568561182562893964018260714406582112020489803053319600844964973304641863322954530404272716203713097454414978116624335076265778283311993211367833922300401771389430252109363927632537897911797881393639850832533763420906949743341576355612274648231652168857546953263781762758074286315404380706579139438760606115371410629821680560071093112719026500694725833935215748771631722558591585824320219548069191796281053697719298830778909620573209246592816172373068318126236545910950827142501328508217426228282629417002222718125777213209393497119772890672001232180154069674545326020583801861788608561654151445506577662460658042065547531349055676258583565796846930885587272503896047749756398749631012062070329233269071150123538802799123768004170155478259637210614008640967801905001576247969810771914144046326432193585807963628357340924956172753609818664983692473251339777374705677461372475003476635310527948132374367586886899335524707747668051371142376003203919431238493413174146883720981819056260895280658387249405039027596829914932921783753635143225864726994760733566900620014316250362641367969896401159524843507475065590982875984602840434588808274022492097413001876407584622059576108021314237888382262335931181438303212530164315351956177931665648179369221195209675211163883612037875008492346106682924355456885659775659395353819893348440793559031997009844525751167464782719046236227518940327553337789050124315981976158015022608386136242238206951647434760725084353175731101784057929631489811590918914332117893642635948053697229346928426465541189012586902065153851827701756657383396400066836188095361374134887042214873110583787906360832086727336653449982149624297840426001652404245621207662055935204221630647479073457127095602497993403463868216385350310674139846671951059518565933963447793767933017577046723738357558431252635729295878949735237383377572434646220853464516365677071075274087001437150843970568723584863552975709228091462762811214192522286464708038694287246644594792553836270100668231795409148869309581648959526680182600408790943336258912479149885414412868977429641412193834908940217247068182950267703024800633909827793772162655072476842578221023017996457195827465256805154973660909792090982810494855589569275547061874282073885359200816015570621370432094444382540857450874659124805770901516832032127397079723385881038215638361476267040325455092894974186980762404120090315414523455555089453777673988364446428231483407647509593557235582950176502537424140310702659915135505061399887742339712066183717427968215549790325672119169639959114288264143018841956301303237952247961936649660880144772655573768857918363936861304708559328460109976946069894470443874342637049565058930605403577773147419023435672856671896226622828171781041240530328123976296795550483066915853908542456284910032711159877492144175550050126618072533605994834877268209751134598027183228314418198051091986209365739507694805929982633256829064888496301028456438796783767120124531190352900989435742599147286028494868532538918017384599350545107788210918933158765709496847545965627208131473261937900846537006870737869472790932022709709596245906123458305261954018837114465215991719950287695967250838771650364105800120830858579151177207702645672862473308868296341871330977716600331510693916823175909084802221956343870040823510375964555135569006086700743779942487282728310553741366394654417419750788365371239867815767992292765860703192314065428208755766992746127124693447891115279622052948556449102375404323487583938744507590521434137823138546894977237974413452054495123758837093874498681826295431714797692150812244134149752659783164002749985025071349505841884490802802562149343641062484954662354565564059665212855557678886221991377535415182046072350476160089781651421699353348013529148798171232160759184815458606884460895458006810858893413179848646510153190889843495362462189374676044429236734281705696911880907325836428559226050661120364800424805687083017820421162512506713561430828173354367103728429324840832128985160562339449429709655580280798620613151960251442257246231099407721638348659172197714518178634631175590680471537116072512499535396363700431558552667021846092794918857295166713729005418797002513742893296521527625500406113469990029804391810678733732455479108634737493321537627376504987031885616210308407489782931064579142165617510609474535800254666788327758252648951123624985922731296507349528272022945282053140068380910850838606277878542300862213258262364620208296651996461021727350291143782229354132538728293634246250034221205584830206446831441006590046659232383705337904229882412733766016657710515789372130480971971965331407057444278538932964803253715029487795054188466506583670546343614094661871757911429750990343704377818384438487398206106124196774207023251313856413950196589002079596593303918260584003993182524953411421518444720909234341966035380046004842770060744572842537709653809034663562148435492217488623660350910836640256606049152693707489624079131584170186312918681049525103531212685094118799267821961746958148279788989219199527875228078864852086090542338758113092313303543052663991838315000244736607167858157619546189579971366871534704137933675031558687624862886656386756015154974336439188844656141792158645384299073670701907219544613080095381434367021997116248603524978500739373266140650627044531984726601896522913015284460056085017787074467504002327990326626684265601699408099309717243813546185925550878698645610981029453250192805349527433269445105744723021334278377859378210312671390611558734168021600319951306479808166570272892132311059294964460342919462239390551918766405264668686984252086495001244870377775981723912022676043916437383366534169534724871166940193927494292502782994844645872743224311137090508030069862501493349519343485914691779203794427851886505621587301804040189260668157161993937481991127439037986294575790883543609259686504602369833412406644159911059306617548795747030880708465835018687250026525593594184345006093337774192253380407358649208199091814429669583155353619803869189397011588371568188790898681137369685031986289663971029454388266518748316684116140838511430569790205532811607707123223468294995279109362493414459764398532044739346270778756065997887321210656454560631136655892773958066202114207354483193185332781756075364470647497989052348840122467151354133731861292002441974118862197529143467297870095782567157562911895372283860344335366741889813751530925210946522327309372135186631586490760597927077698571017977626176051175187839057289918389359845885102666670594922961472245155731467420849363653093658632590877489288950877056811766144204904953929884794262383356785715160349576119456842257276451327678918094723747158801087719833068834971371615386341678153054391858227758708887978322779856639914652195477395145604687523848866033910015294048670366378805703745134863293074679946659986350771559571034953301863099307499554429020101336922104155827628038707438407385399195422700587865045680773628499127526708250951896687754676880031295307677323297975936790664965875913089679666857956162927665377254348594873273207789298186635101797005021614833083655040599304046026472794606915902989525396928982146350546735194108426119167699852501288749331078531888362726950051168517477669132862250751754667603491146018760685707957781888258638592487270175115844143683471098652484389927698206420306669756518538310595056228425694035591986356987414803962714324113169198268729826085810304017675093028566064980190475225039166364212799173335603281525192540512682874731070111227833468112636201377278699367957796739812825224735849325926462493771136684469577185760536940750746753388253810271261665646521941489673976594049843882733306956678238557717124044260710137610198813661278016089416499432114017943724826649846295609170537913911651648811694850578453700893966637869334319981272779043913461732322230084950564663675460192048088763574715148472505530229600555210593396348039623245294078879736183287595954033471781093324396180448113663436304372999576228805411706415090200825431994818833684934462818277005180252980695577482429732872158043058420106136102642370830498101007594941776446567928171678936769040306286587561754477334988568545910130222444380811306073159772070294271658629832585662271899964210565318321853907915105853048149737845365785502505827027619014997914825945758877616353446476688862556293840571003566704386895166486983512506515440481100448092801832230466038752859974751558564659804421567973123812607048065155518675874512332116175899539199221411041244641885202861318419636329465563442241484556921256915201014769861231230324329312460963283229338353506419888965866284360457381589920830742925614702508341978325343906951053451907196907576204519326854533437709482711425532054570118361116082507178560412057029445776990660168023524878756664195184301607173060011659613661733679196632105791213787114970277340753504444704280579507452450167930652345790348414276327493185904035899187587489516204107261099299753491975489379051112490300231643686655977624700620877281580223340302836584052117301913434769826424266080884859710658331959416973398168481782827697067241940625869527101431785282645633470447600461268764866552573580555782154642170823708833409484190154528496592573409104076011979194482806096275290344693604923258810808550073310838938659459904246173862093251951876798583875895356879724808198506424060051467195357979408748647569017229767945187212991421041252312172595879294055298704090306184746399227388135767564823307104838711970675153082409798865202226490671109743331687665101448700455738738538035988599393874550361143994130104325891763815177839639039882606001471369488072830834324677452424396295948455746106685761799801169714279193305267502445539840645915696877215680194324878949868507240599397840298159065457328861877615844568480403716464644852173502454362519428188015649440679941533853197373297812021309659133908781576587013381417629385146361524014062928007444000417394449955869175139179187203943064016098305610835009609149973960399400927846977036860650576606020316543123911609898276966490054981077401739106464761769573044754949178318895062961091542127798685804362530130073955026570574868867168171461188397928971422540554955588807661406878537504118300308469174217558344953573647891983585027215974263480706322122760020541198700860505586312717455673040558939601261813892847989936997606429492182040059191187139610087734567797564889114614583918187047236270630930603644724999248071474474611348122341533187839596793984605915612956034864178006586322504979413212850556894426824816384584357474425435331324860673455297027578614054090134440175134455792942420791021105361322488885265555718725944090984522237492758529060367857637469809348354006504650682136124275850012912734240199513631806686633867540847532153743734757056435386839846735698886891025333905005307785495919238300608606759654347166816896431058614207348730733945608615679690456674673809154038517751155403044099022750223437408779381706878641153663354437465469831655916550062454157740052734019227989095876334478870440279728835258308177683458866360430288517434490077386659418058965019548127368644094816192388914194888766287245152456728850495101244500239865068489686170409811398503233796322087030513251397110152089563650894581066931598697967290289268789332666377484221367874096861476454410331914400915202729434847447036555731159464242209751100113445585025826628511409098732005072981753359696861762789252674524654059974710138349941426055405779362238613754340531191613084629572652871390128288084548279690333723790268158625103164722473496963662771529277049158502480773744868553866739863440640080911063163300700792637952298001496178215059298542118689443749354658371993644229126813347603166585672643447097548012611271013210988118640590170854268626133239031809348311207031474759797728001414366692974893707708658716070330260577540810988270391831115969547631920219804635614492226694866808302997820590999361686634123336814247350368573698443821899571821945362270241542753751349020462882969282247253549256562334065834157282560178529760650213283359688947183341477985552042284567069083444742387963468538779015472168496443768408216526396129159237141012678187166985486235315454964340691353200242273035972801982627269153940899596957204776543724907071186405087625022675963733564755917299529507090083910566161663989287932492807588901239947949837473461294749641475918998155601095261597956221758337059914027566566086716251602691188770193866869500662293807910724081158436014707945901631819879718243833032409516937984457822764464634387684170557366034995281396900811861507333725421765922470958275651924554841451855499809300074874419060281379120812679018918417674449897719857072315415396693849463747634124628373015832660209891047397029961057642812851419379899570370466591888238139617395267975271666140248721254626045410512433093446129338909657385907214294735603930709812714588967361490604292508837853183823689108401817618320471735260622001731852655827495121262025827889677971058424404419563302269426153669948798072094471770659346530965080769576750158953607730664947738425796953556764268593907471017482295510178128684200301444844023337603557585321497088104936942020173959460142043524727492253934480930597218011344932054481490809728762329949652480587028376488108453018031333790320896109501696105364259220122205557012794062823643567248751262211209075848344027591481780522384466847910286161086135943142318909417724970631097065887656166654574790796431463313886757256799090422422794125072504714266784704771340133027435949065099179309421229676806840628087915210011039250495599717933111111636492955520821094800701187548227762611041174172586191904268241635889283786018181859579988921527243443007140757293371184879891387096842933937570889476918108979422224190753221233007759594463776204943092726570669342731167292662393602924966015290764043046515317022245365400348671138238265272778209853502969205490113140104947596979273583050176581665828265996422246609227783936641374633784424081944210153687549086023264665622324447871504471742677499584247130295750279574540463983499993894171794125343164235954704134854093014301693486842653249315827108015114129710502194096165427384052445075996157339247898808275724021167975734338394038026259378884993320052458306548874846804804956705540843330455988351158432522580690103670480389892539856984610151742944126236297490949235789235221983327563573094841969718266861408924216863607121826385369593835281106275659958662002526075295192970208859218440933355094292376232045141124906097522283917796434654212094815014721198103133536084511405295077532591764177931594013443249120408425452128189007088635362624892853424322370651721600490476932443900449805929862349931500869635195844988211537115043762140135536859985352072381540568886426466769260810917526843328373334004377985268285773344269974107382482368330170728314682009053878952962913343084116356923292331788313452655163173572641402792383768981649182493149667814986767718988115858887284528508843059771741759951625510272633548083740014408766042378368130940039376394826426378603249944145202151243766899633844361038306477824592465866286332749749818097735456555748153090472441864366084489418434392030820155530022940888782584334300576121783350048683739615374443541505016397921820637890811439597796828674307566364457653686937826366264019585497695132211374897305119943145051039983275040377501863285416055424387084775455195225354119722690705062709399095467805840150470407355249613905187299309633521964955957277540607818745020212060443113486027903358780235973325297482953987343419162336505112463356746069973422517557618945671956936276215128811817016804515104359195710753251831011006478390191426448005715444822812695802540568270021703709324576581653786734016918176458564339014120973676760413478069797100065623969066773970539617805862240193113215400493538502918463060902476152799212724640018728481144998666016848049327529142146342349914440409293233191131038261428403678384490511662729183714181659577315586143941856670218838291076739191756811816361724023004443557667762465088890316092492822477681055804806404236964334499969619894778689541164499250298682028140232817660119803861116106301410679042840949628592053795860507649358719010995908995129565285363382197957145919515171350688478596836229980457703060248777296315099898695336872742109613705603262332809849292447169351220516163425004646172479328121895164949118615915487535554687484054701878013161187035000011755564399527573715114888671207435244646086733624998198141825387810626109338567952831574215967440569862909219896756215358112287874899953955978853259115599057213178530096488930121095625611539137611664847186088803953149505262757802466769628041561538527862519336405613709114019645609611349369893199078204844440237919696023230702860211215019412284142681410624369165986469131805916371376806953457685203071321937648343972560865321494373525408293765988817771080543932392793154216618518528715991322698429913082481497224678153744383706220002189718220254859612582232393132932196151317604582705627100035873015794533719184339398216219622830673089885735392219770333099889275486976974982537578469858421510526807893233493079139906086296932867164528620815811346877665953165959185013037434637197091350329767343818083162644302726311869276574790798871519090341447506486814445135569152830841066835008711530433237846630667482534692339334144740573040486640391119269489968015504567059879045822088517823579746857095902612883108245798678485971541663993632171404342124977756404023682069259730402175539747311472835147386410552909648222682880478396482021560910533678705465684217909410619113445646760071466437152533728842980231820842695839257540355850338924719614568078703473805661423753225227258883929415465281033704385501943279351763700837982511069138279978368364568992580622382256742214049311861558002271813982525444793933998913630582233815529224373238864561998064768020223901930492659818684085353716590222399074514256615216513280418187750417805967509275322948308021245238668137334086114916264602302404989253083108661828703402214039906064651296004157279388773036143234904406485099708527814802438874820223100267880756014109726607741908785204675031099727310825263271552684405971684675278863382722542953508966824297828531414383131998102764681328416292590297648471245480671812467067088859716697493631023660214563150274984037869356930807662622237453583150125577949204033445186616670235521046564781219266985744611442346622988240681640136152187590781651480804089858618926934568843277044635993034749502363874723536725633935261092869763169762529549155432851842682654108025302221106786494696831593016405816598471941487733641312336807901456319093143810753143749369705694798627792056176707968685054362075530784707504246368187784501568174125160331854891759881240615771611128240844138061542699215747331420656030884429131014337251247659575404928357940726929168320904074093911186432789815307714021995501496795741669602704406493656401177107451285033546099100939559859335760416596683416684256382835464305754627529580488314682010320717125361850015153890390787708182841547385645334197258897642254309506441141063113902291113840176550969023787101858800686169752568472369687390908409254509513702135917542464704892563705239390175409531906054774560660000298001249020699314314313719291516068467450684754369626454750132652411284592216308186955246427697169154111553977891953090697285489742859030535612034860723050033426126899907335832752468646713964139275513963229115048016443821360607179888656393577080697374826630252359029096301292709761132386365833440489361669081595567844847033548052550635597436585015293000780894551019429695743520413854088950787025258593340515935044951843577359039753918031076697018824483870024141790979839127201268884063791630563639641278743869430864535114169123372129507124175682650633739608868284116356606478494600752893487571592972275785136959188842139952326405896760458993502348416590735963989491793205658871108543169195194642951056469831766783199804588743716126618428430038481139123100835597824363316860863853321649863519970697763564446851999255783894363557150714964424057415470646493120790688323032462520311097509038676551208366209958276680494197028582288800623460165650758012232341243087292201310119371825626665847270933711336208966545652859415367740823981489642556679132116141561010428013432452419729907946665515388142489970393548574399332466063967681608569418464254547103048868207553459186380070974382987620414750312657663507647840909732035074434940446224778357532885374734870978186291504434504192257957526822745340288363214645202097723748453744396150915526150071468145522450159761270288701416039268019533176815311250866683029425345346650813708901077511752297848576808502637259402908429196244817394308151718189478875783837776092934147199899970247812861647419776191991049675595700605532701627716446069229739349189161936864281043544442201174896703028124563008162345465518405053053739905432658152049018020232295427779254395514210652812450152083050726554287974904065209373719610581090114769448881030124161462543002578544245168351155405351567481522932412244438492399368807221230933204119826292665823216711203856193210987452480122506942047144375702358535207333716971111931189154842542052785843462485637566804763536160559558930084285273045404138039052624113286850461477631540126737404017040187795527271818065464111197948646149924548655553954053076900319202574255498008026363983412080521339695322532769651690614718985283123422469170161422352001538139848907432029366351321925833227405984128175611278617135683376741203980674879817754544323027669366271804578853277639956377151119068413434211927741273182390083475945517894696191875158766610312383301894992536213954235913008793514640596214431535581946809160339996067604135266750067790459566731148098487929584402537643022202923848394175134606963626616842581596600589550409260454683677015486961383808886638848033522462589621922533642507997772551274873776769116179716351486597209930828883904030249670451762137549908108604672500726059767747615477110263841260065667419121968871107757443770122343303202847269768556772631882963652904243358503148718096931124017989480333174106659550029075988546820626197793477424008558644784903685600263412358987098246877776561824029164513485288143588148811278464921582847637196242249392164159101842047655667428860972755081661737820007425552477527252072588716348505026099953098296491620623081101656213396038343507696639315825903132821950478598678935387556616654989768546279699296472476403553565261738547403066946687026226428260526649273956009721295233014663225954261928187481446894829199026900921953501798490288467028200351502832099029958874025652316257673072662850258350453534543370298854530594485512413966211088178294832257802962362274330268384064754531872215622576304487958134789982220626080068923437387011643455258584095566669087282732500171625598604327816448751598929598426500589591282046331306163093608736305788729459766197107442656695639322576874912782884354975202990221909698024223238439144514352610653411799669544048577601958268804326342873710516577839713961376753029880520896633125451695482363893914145615818622598307110309312741955324388524985938228155874438102808913787036226388320118425948207730716822523787192651627481848335472744678337288228303581245329316178696456462381031885568857594472006570557610221618392174699885131211611754151125066070691679686566943625373457601625518990317816685554044714121858697755710522661867410752154540701510562428030278764946909825707359728279639861711404009308126211138310458404029590859854566405828822634674045888182531437130430261333474987367251938153503909876423669943638461047582323182247728819097576940726399277156913726675068652599131716706991375944004392965672307873556857215392735480272103229975328487472650542816174445886978631551996070344025326686897571694847313882955000482256792319309736154593419619943399966926293608593571344473265180039272510599833961410057646836181076170580391158221829582104660538148782899457858289472884050506088220246461395551425424033040293006669580848412623144313705275469530050409886207534486571042675506094237647964411504531751107057625111825047893219386843036207967098261529462313213085405086603791976870059824736029433024291993597618217713888667085867426854943164571868376039856966062025791487652483358058181102597465473142582668526525481567947481772419652070421634153371787429253485167149086341358176859759610105660211615669965102044063689526748202496370302541354107801984241060351416509133250799904392833863906417459082218230931378504186814907989827215366352471615599015071612673230913570819173397066404355787627146647916451686050544437506956492449298907949246038338044503801479449574776664516252917649625566857664877757270633019899004071992091280710195068225216472299764549762284120994259755922124445056348804281615735467711813420754841861718785037729222414374281134015153301626570179322437598073403630674284308296280916051038307022874143614217006108285657235591176855202025751261981607374749209898962496945708890878553494423735268087829237319495969677179409424943232806030465000389393811354051871477405675616891194038794422792492526362869318081636179564074830870493183111071672639435911131567817186190960145758568641730447986917281951041738329949252379100932322677365676972576098701641506480833064792363938706296499229487819485166111319833830497053200753579050153308821057967835080058555256470314524274482766729848784801304091918028187835308960190229336553630301239242622396583104450618818133886796010353553615664661094839740075757553750171206072817631550919352875754479890509726183108526010072291076078050078260350540900175206570061253197686431693477789325693789757886101089222820054732615411984786223740135048303124542782450989580534581828649135190430710391910758745678378732723584148061549040093857143060018224738079173543646574022009406996602584794939721072555636804449753041799195402596621672635595968215422336873410602440599197700147568795786219878907125214064471387919691962566038232004534208842110390308404557955247366386180667267569756138207691038251659014124938004395491315356991394097052329430351317822015129746626047385420682525869740258803178206845108760413440658101556701924039642120132284664647326591000401719171678258057190059598453678398098695854961494598225276216925813631010645041532387149628523008782334096164093522517976271913029835009737116852901556896230676335469973086247754079055958275736692513201810715594243641468723086916906110388803969932795096763253520023527085002929866614234694692654885729171178012342414643705409684750962303667684418722574407391738681727887857388386956322497344417259619224283286546259391960723832756773892934786591672941177343650746227314087961746625707380617993104325334573506913445547018492600834448348039551419828833011398752839666557230380361682421358789228717630355657386046082135108034103595266851909330709215087537113289860041892249033622004460761630345457453643961899338895485452188311025727089547552245096069393852064487195105091342229525782486640184703078024786312546744954970221642349546259336241822648867944916993027008651227314897664293447121796720005187391680737338475037117001379590399526090914770511426882785164834641426065177176163121545920949991219981562925914560265091075033630685471655494614037542716575072291445632142716281097091197900655574276164983318497173842515262474232799699692450482067820104715319681435587481911334340521358488403996654506056505863869057511649048299129984252304079639946561320027237693401733428355474135842208053284945854593701093339634741030460601461299751087537830183296521775446408694199551128294789433830669163701484605746143972519777391918545810191572090180806458303531151160504466190297577112014948808355746674982911491569208659418810893212136066039970774888865247761367489000799927098401381218086108343599119275544641753290740226207356692089628384361624197876906202786710023355465376408097653964564561438866784958042859177948435961560001902092877206537853284995966249719218325275817890406179835313347368530000933897036337289550753431245945095370353116983933717213860420034509059829759789810895850309437486497973773969016159316144794881146259891032481746878952017825154224798741179115677709416820878654066295639552461908107857131727943636298620966367666088906612442909645423366122248591657583958889045863398896239593074280990995496497870840400336236144760752317707745588333760693120007324110403961792836958746176456639530545858597945695969411090994498251514115285574948415524726365561322964949179141079189766157779213503580590979266422927619118633850374283540715953184449432605144346036817794408349913418972177818481790860860114598030324337033549545797973970778182228471476673043736851999295268259451902717208758453098108267896497932003477324087079090041619898633052772765041083542461342385901208531960569263833335238799943050714575708659190982390472418068676492996990606444247351604709682471838571264945678509441410838988182098541232996095096204533667591787094061841020668900563508684557548378130943685363202929541348053820082810508299427480646671430199443722744744232301238769261169730579018832973136843843577416629223942388964657623086582166339862579470047466319045737424397259736980864213805818132318862341684045708004739489877715415594627440938959317090820218393884469198681314065700921357069177235219051860474562316676430683494530522814533879044419200977997339606000941660873918886702094880456235732334105730820551451392483519279371101481116619576289071262940397619635970290360754990377417768367507824440771075916603654244984685305001273389295780625410981443126818934994448004662496804644916070349667308807333430512261205414092372751773312999609779936047050345087602254786897205628602729467450885275006912605913912357995110879329245807581504284289642334079316710498395938733846384160900543037043258575741469505204892688875668730637338650322355882237832570677114276665960412022724565521323372534070720436503174302218724680647787428699746235266139551638315285319686802056408902704921392433751024095067775061611749424313904416372335391195118885952517247237417535664400438028874086148637540015804717243443532114033763811028379248817228400092672436336118216812621737510106821782238602955582735963305585932639339680142374433142354000138478774017037805232034130921872995896805016456257663627654055743882205612578852365370584769567074385274947346863864967634123936201522104708009633875866403919500925093446048167044327232700546950849623727493407948250576881705146851304647948226656165758857675241009843808760793917989646178225919400230840918942657493391814186307498594191678753436782256586489444926201788957162668178866085630612788768623056355435942845758020523522035225674856904765575355463372232874020000198951184954789866218335697727596385050773126981690956476892817981468669214658287704612889356641219876222292059327664208444034863320702750499366738453615702942921685899343307771228230494867895660121262868386401446967678265892960023905976848323434055889157929753500817408691052752790236709245239725653608836597974134137190925126767115766295456095182198765577096563372775492948105814885824273279874429783399672298291286995712354848247774781070764737187990954144940100042566983824706564874123706382480230546217263941553027279432951506306375849627161386669287843799775520292139008462441336454421142301733475083503191006089543569971109984147414844036368215248523625210521453362371639628759935718003338784715493401758760353346321072469588269486937667841952048867925301180055560177926447830327013931349082058686657222535995679101262482609285153934640728637870108303826856278537722620593975442911314669390892966050103078793674524440131504688840496510322100503139688533843102384734505672194896537577031520045000169242838384636210713414451053831132392064198703828246761442752689915687267431608024070696361660451521412132749693987245612759681534252824401490256316812601187006892987470362382845171882907248759654609923151799639735163429149735582806736910444343433617655777681032707658460622284090662025929330662105551289113151549616681889122006473652741211921110683161380746131776699242771134496307546701239483528254984476393097031887802390598795816018135205595170054272080186641323421609749613695452687945277100013032120057165564628156931205964534691127003760476532100625075610372488956252228318809542216827351437402480255335570051224104364352183086355179222156739356936488598169521705242293103276251032683040460989515395705906241180481768400794331276222404556203461635996713686723197710415066908845244989429771538505806330499862596943354325803719385975076604814356053791319480051578312128534825828318153081723588816997438370130863892187714751509965721211529886778039211061978916582060216193472707638290545426859024094315399817802555560256067835862906336567834061043013117280584810191892943739453945951880266132526220542014508118791133611850169978594499205883533361196120987369921379040234051505893237000687842133732780082338921755269352609957832992349081438400027734283035258820787884834423541126120456135530781430885042966790679796889033800885509117975987910048030228072089818056704174259398480271910407687517841409740480710156656741033656350310031400925978823381851845741488775268467645048769211376450528986889276746251752376701456307988068688735947755972669683346852138848210724678796321567950644524802929498120492958446521554245839097454776268226255199830354401939307636356529339555488384524757116012575576671608026714866134945692647530791331897662156414543597255653873060164606176763631714276281221713757533200871413160782166338220310767989025626021332915568412055787803757230774346836975351678419908448540335518499597678941216676258615964168611904170436582707361297979619534439260416778578404894181671585724641205080998634711209106144945104309051709197565935935712142291662845158380597028796347784720710727573763874217879194517451552173413628261573534326187168608221588386906849687242240302816919169674684770809955965402338906127931999924000062857672451487768116138114360469937902372566970356869359309628075802905489468074238913339678746271335187691528998525230601408939777301197972610775416486757913305759248214752683592707152234344687896044126614939780806609256455143689840182164392031857889782977395236664703223913513300973581685644510609692900323906891404030770831374321213849041094817262095354108390734852859950930034511851513947368433934601102375021666726496820876827017991459840759327179273835920650253687958501310682373840822229001899170340347721607572555017012471986425114429404811346486649069944922324913930959273037402807110540076445060755123317989202890208106734583904727781033231316136065883386586954232516915829757870951106501156616129169621878150208282118070286580970512752132060344732540775132934686103481519043382673031766968503347243938648710495992402369237544779119756722671139418499440103185626061862309620702110350700404971389859045059390212861704232643506657561031912984044592793437428660819677105122221360579060599619786981650064920881701636839387709722549870293964866773824171441464481242110664239920354586868471142337791941770958201091423983219425100424497297298032127979759688699750629640449058639711303320373719248537352053812875031127619541911363338997890923345267877228296519362333730798152947139986113635240056428343438112294914478183450199164140167138655353207676800020241610540778410589401611693070554246673888874995094848632230661229746377216387736996186195313064108858979186015953476277385650563359018138662942753598977889165317273020414003410702690340390697952269475359556505019579204362672257720101574513998366252348002358852951378494760830820395451795587723682412063335299204421304360311957362211982834053899965032792632624648043130034306152706439987090509471055423711874587202740847860185402890207163697064046049828859260909836353745230366252115281314132830579626232004216999798521540537562978768120655306347150332392569363732935245598245425659123704240908054605886002802254383879682223126526446669040349109544783443295459662486233940639026797881547626816810498629470042379774561578379563951849998822108848946556269163634428333443946009744200549905617959584428907855219687459072161417523968650814574013429547597600725205247990012248640211257417491556313243521136337973335998776756425583956831241951116611921809230187313663687896286536409918797169320607623849031428745683602913355233690630472995243991582156118432544060688487794910868568194424255702872775511815719701590145468143177458086756752293241515256691327620183483130273123251708435685756764101679859934564834778664951074761514638559205479089971558560776890609555229147183514830585527875011522399150862512746664241302753955734929014954734426318596230569435254771791096401510981458919650947545301401465351625229880538448182956503925899966165687044556236968663058256445170574700439859310531061888814431876585734127847710280526981288054844247474516365573571838880830759562213785867265302211777573532946349966396376885183017999395877343581974683587530104905407985910935520983418776474361244570955424216431189656484129508382154374102194434341674087770341996704549366964074578621430639023178890457184692567054982106610191890001956017965767970369775079479755415404107283069288204261887556647068246831860343181393613448492551837766134703618455864397834455464888816741521548676769714785850466252248346963555570624547289292475746215968778443831465283833866927437006107258755676731485199527304774736108006233236890344484964597170204413017146220611967814216537147159428172089170621740166308501038901267993455403329013660108958882532486306820360136423764259465946793327160714222234388606749889194717272314586395828236627861245859302698061859567049180914904894116611431321140546653696326219788669185180478345294614372280639610065231518854341480843093587570530774852759704918999507907179924265563472258020558149721505946123739010053775147224790272400143637988161244763305808851612357320118082249127385811566696400459494179555130710276816704354377372328943396925458592401078602083421537641740646965925374094719403417114037780608036984783605226355473809253360581269803093838062595215883034522529321766261344119341119881291401885747862950574918730607520931083817140619964075289036086058071382406800068023122092537530998686256503051699925822056442127711683725303562876626315067040312135474122465833433323382297136950123577536272607105227856434622556074368171703675760124875922248882806813293968036926739410661804992645634062470764579134870378696419999235200326515652184632463961833543996268759993776450575207170493313532043238946294363858620492206707099947447114149008419309440588432856091110090146411182827107160341701096711897879620496438245549254386604683936822761187744283205442881817324499533485286487440635037243591697701942548797703376684273642032570670971093326137984548774605046953420214801548235345814530002509357200594041520050087048749241763517253668046287647512262989197308910126470216905618449097740216920282520056500816057410514560547151202440259068626767899088550347951227744979302258029785833817014106141252571893470034682436300416839727367438268178869415046644169316547649803270615094660943766574349782335748779376266069505535768545093155311554219431755377201711724643409910817308613919097302596128312741955878602328473819074881795508790390679543591821370815119752017765326144610490388052146082042221329054561661389708856906552589542083191279658787275961134856498417474071044660374326571918701232104267513655920980167222913583542453168526620553636433236246172093322616859125276360089812989912976109115342553222366156458087561886805632352984204443147782193195030564145828780464038934600930974244319702135498477443832202170265151951550821217182535236381802907111745124613849842127830028644550401330663357682634411806461408353381398064112985936577773525795692181366993888172494447542476537094835921803342290448448478272283021230480100013891849604061561525298924050025702668218109600941812305689629529452345267420530170032162347323015357866480168501502302635475964823644495074832841075662399156910456230307278585450066385536319223594039754118250585901850964452678653595406051679796397627458697136067989936527022592511131158413785564234821208563340727140464511328005230479462448690729720522220081537987593297304938676451304825695156298121639980107203976986695509468813117614830459248542435213022111709924380750034632345734766102019438875878946038264184883888757498086931111773442645574361268813712312153635084686992669178812064359071093881590300633983409450594580493198830311229073644342215880151618032837134346372372954206670911356431122388066495549229181226886151063936598122156083065742331832682836287038941477167294294605825559096333008325480438133844375596735386323701314031045417592375607954152580914956344788153298931767101910451678139271766633082896315975257672424578442608382662969018194960650510737755871245092737122888301523460425938064696726626800161356335724914448005709078070955836097163035078842822275667587240790507233186084287319494042586233599493163197088696192782150131708317630267341658684729239325682777216854437481737805322410867297925320546553427976109765429170722548871900000530491110503128095470312265331530612542061446408285319189786253969481426390363000477320924786378797368248981457713462495517714567356258508050051728581250326109248203825665608768392628929904768523520208842365464646119487188937500543790570354304022303761723974449213164582009375679466072472799031946283433058910494252147294545861050371093670090386592322202382931488807363966911643490953028664915746141688014373780325128117728853293884226330119685549680365303598203830770365928424480071948859035963876266881224888813301186832925910244798691202082580406633298844118466718845458699809931263265165394819308645941486767465155443529759956028969092307882576854844048787327450444651871581913366296848583322245201842006579007469617200301576773046965770140262538383289574152306516105756615701801790036163275775186775877008163529778724067450041076636197287468216098483068882099543767777643102300902293357762496813110172640598121148144556042886793444226762170905458104393689452865458220834318557714004755863785004985213756320177757206688626530974859413500595415350900163713975893137719317094847068643164205790690351575537041491243979604297350091399108961607793405841596769430177775863996242183934370918065555530132923525916810648028095296091688362658006875904210188762886982836192660573161642882253452512484723906174014804355159963663851715548227345031149966313716671243490586434192184322659215900543776673356794965877932688548013892281081832200668916448748469015686263190103205211848468566034982649336228614171938219322100982236931852493425718774904607246161250683651503711260181409072083420541236897251016655996200724522554254619220583691260588426053849469739234720281566414708593781839755120436759267525779734545951337899782105146319086838551621919869379202248778139707206110123508737580942180478962812949167020174869385748349142432148347722267991880808326290598598967921542255945881474080097236393830550745205662300753836663213825642080656442329579232790082034021573971010050565314272808371917314880670406187464041143883776432490936558648011806765479960916462900130854929292902461704367861182415994167479447905076343472318841347980441158375004284590884283588078715351254303787150326006208350153938149561573687346738046008487109790069699782228520087126931315500675191615829855636312111734178262149968971676680273413381558106222049510508240321308530763230619013549642023709512576349523806411958911676465401544698910887041327392148349064256329659488468464892946115262845774333565083681348656679086916573157081160592300520869620300629119629004953125944929919320338605061117803817079457903590228799230121632175833636251057724754425959548115379659598542170040451355447047925978998335677754586738524831315422478609163197715323985659352827925001384562063105986789810155056930609230190149048238724843583518890944049291293862271427283248125253840734067831717935011228951953527765080130993245824450659337289372571014661386703139463563605654984348599997496817389929097457698156904468940541069272847380362698925832807220825919454318098199087431099469926543999637708922878225262840585807520126332341465018974681603497600179155408671488188062379036278159511824568868974933303740969196415090534014063199922685763758932822132315123555502489890173775891941451676745070698433808371631392645059569842426419361960349332429282126638623229142003683553548221055986153236679457847049894814754812322752099545948551882931894540464079104700202208265605230095652045403442024133034464436439218481685419379210517927518817023022757443462255104317083208568017591420518599192416040952184293789270790215018211532209413033190323368135773391737623850486296081617723845801616324803872434999775266799109764819071125504645430082691061097026340755536328879480413172487526306819591456629501223272899114333080513101015567706197260984597123118641293871790779141166699754331068716563897072592189955498499133119592705281249399640494109293769377038138159307351515460126515396909213798092990964429791789878100803394143768007760023579897621803625741906406468758870482872757789257745880959604356066259834546005860957952269799744199357370474893319180055844383311279110285898125945790859569562940962141795997855864645866050085969987080269714448473770648822627373152247206814732342866537487355237073396150233071507828262692241050946638804542213101966271047874547215527351018530856569222237726115040683055336052904717512265040725404953574807790834138254216631712813176942895456393839460966949105352231266434974720742193785399206664030913489359470159471696726361277736160978509007757266666297969406589485153157715312233292041723978423688059550235047434342732241850400098434656409796256960967497188710655249167099790119986321554471482094767328176555992206858460522808374344376777293064347052338675121680754460703592919181278235499573698109860969776545073076236110189872630238783609486270226566403458267097306346356739384392438722604008925238886007853421495764017732919305363100624131967789772732766513564314090661879342896905596467050741136311612554591710431871179933747011196581869975004093645747659320522837566929109802939333132650824182436948468947521764650165989493749435629944654902597491334650632015198590592465339567654485195196721782078107064059244070594090072421669988455176741606534409922629304635117146424877031257999128730086883651670701607095163283069550836112563635322249949178621073057428028528290438066432534046989170562592821430119584344567842178710337456981998802856166732676715191308783150073996086577005517080624326381037587026317663138513903725248010249282127471504868592889837339680146080914224369460006792516484392686033927680378089353337929026126449635094817518189865209913065087869586038182514851362816264621292517623767428769456338366721616707744829515750999193655940412657245832449252522175899561873197268518101144022019289550890669370092676572995405318931092003412877183028502022829316369004557338351867487486098342892971503454495163910247059738603493313693813613784531926095013697246814514206904618605889222819399843523327366670831692165728308998913202927255411236276443455605634730836006166399807283104608896774021873045287078022241869012046447636964398264679009807583912081367686003124315336694208553158530392129797565169118771373574661948319906121738186181534626464351471304487477839987365885870341596790007817241594524172462748715432558854701378301785283310677341296475338417122594263212630225190222791252524519047375327237770003483262128430589509128504728146921517542731187295729378432660681467832375857426914151321808136639297111819022732966223768016505669978231153059524723471671147149297304335892728251431524734362440660556338561190921137762354356301412085587142457408469974480558890125856979122610097762922472053901379908528447053246625360055249393513549056856627427133307994327647480871650062495305841731853620545306824968056097485875311083187960014754511021711724654105171083349063133476057832580513186684152734497534731327576956866636342521498460004097820679332021185347900546799714610671396345949737048729796078585773000647756343534082497608341456432523915123945681416247608911470061795369781863321117919853286840859411366464491095895750100511417922591424384350020510387228932296081178198680370889327520824929113783151614093860843118033304496751234854157254355812852236516069489626191269993609214225381572614140008722262309300816955408885889980900034672487305109205399823274019978770051593379693370302995391215596096245945931087281079941677450649295642774624948620924030468107876284057452277099369132006317232714515789895488243822296109129292288168844687004793661235638618846716963431804215576582396054904559027898071791563989759596538871125730830523733016571030765663384632375722087171697329050556073738180323701572570695073120553277747176066082402590527099195271907582164398927304267767302696838210470393296905092585069100225826005419310066021855979333288147984827370765361884241823364212541932924544905590738018900850957440781622951103890974167299813832686513702932716134466343299706487275134343210097880946610732417780356370997918426702876200545337702684333634899473819387577043296708025610393851805665954287823231213418933903091437256685640672668734876593645376727432390189884112105267188570420461132973979189825077810155810287759947964479091225580752604653578247351121616846442493927958558121114170043496357611883868299570172659328812155861528673056736196076908734529110531647789658043470184652571063258419537340737372290843062887768831659602442858814526104340977433203842989964565543008795500358372213413447235837927078118802368934327511775658176251093263444119444158713116158275287742857519116367436132315804385492465662687459498869067795626315259143656078495569568439476545356352187731100249851779992898502747976628485685296081098717636845328700959504242565210174749581812042547328774114076759130826262073092247984592227318183261278936888694682454220271601620046578812759640146883163866168016636806085459489891496654933643820423423624014116230835369598352523675209323765877781512298258275662287949865703217769486327070860417474062000229202072772569277347806824789542845582451011911049237520523538042014979767693845082262704014786194341472023746853800647204365564383100761412906708460627748888888733969888227931124051966702068087068316648331367710898828232414863825858582492642715993387743739825808018692126430227958303643153800577625636045942522177074040257260393370165509027037710305247843119865654756866575074172273116462246504407697732387715768032296168046714218764908812630406356515683636313457378052690949500822989175350687145516817670517252795089017117770153445524813415176084826683214315319167016102847988149727803784883961713845544403024164451957929091193211324755356522875183590928496407564343500883321447923708058393335019790009107675714727055520954375209367076916971272734262137406727260666081491295197142233384043795638386833790739430944944404451701376943032915164011616591373839114974416049837842976391920659615657044069282701486169189082136268856285436608310736210497381780117385407162954621801643422926302900358328495426549305234147822486412160576430495768956764370225306946256559405310352729201984302953462550728091203077376665813681302142538709841662786751566516624926423355485918643638293965628363513793394679761370629110811403493101459476780676906997872477696481346226589846905617209257692287430570723489162842754627336462309813139864941181998011902066296680843300155204557900966168674266011601102711738387799295111238562231961536102145396982033944636336571879426821128292865499248129429156298546893599274840158055155414432402100747159522852369718642615779587192077510798929154658649380876949482282524447412319279717319265252145477640969253132091311535885153139856280065527236876787736612211811655997386415368189636370780924706702061064693478788451399670681872098302707701621818592808523463342611430061351521737779797548550126691736148490145723338329264024225815617566780760840846625697985823403200968899907503956174129448867071456889540604057801579541840765417812857881577834628322893000103434759202809805121799231708948741005144130405399182855903612657078309407262120551840412589752742965895381998215074932962633212041582348281057219523587256749048398735173461254200000857066056410248735052079956373918933313626538344053013833492516723387542948267553608378228325664519406839097900161738098754694232661039190529488914048199127173698283562708676142808301823721394198409647966185211331085988853723106149849010853146706223588586686290653441050552478410360069312955518988362947134281848959269368245633206567557692171684433228432227925760779789262165265837252008193829779708198734183256950268370238925648544788668995685946040060012366162027021275871691130959055479510635290418844868238339548741869361064604742035038136650710809681634479521197344723823389867095754338672076455929162940074994318529180022476123959353819929249454827961020953671831047175377178469537677408597075793813377114123815578063697411040839263068477728132457656345511396869002967373542305618020132629321404156401761052035691997375978917679489098646706819365212056125352326770581438479227793672610635020562531915554375985213316944236733878623941783491972336178990900899864257088213853218866279093079277290895187276833815019634909655942676898712835001733619682378980298328700909602810830598104831155550852515334722687150029376454063268039606946890718682914562152397889181711526734062909723009550095936842900834000267138696894441751652918521372599153380721739043474997605007354181101254856014013420032190636570115430930613706350503214257413163301412716816843265449004788330539830562806158585798397035365837534449370836765339245910408477602528234544029421134060812267718517288997145789575145612461003671224850087671350159786786793994697289764130483803997751642586778841295337632851413837192995698209117934813357271588436824840543636040118549325309193137368029156445111091216176329965333966271388204315946745574410122904018632132880472909403418444810208883975942823957394127626916608598228900429103882421614833893749264553033536400645610873405412142526823553652742693743582321835360005248630316415700456206739781125810308148135436633521998217099283911944575173216615937140178221556967566971642933591221773835795238576242030004062480735926204403251335641573210838746825813721753342486468761619103908619333804380899790295025204926862330972376087696727411912131283441241690307601273335647323007917534470930888189814153335225206702038649820731172681053406382746663082399739309579373177901309189637967173095231234577573273313865542252464467479585870601590745811955676136744704479075760821876507503943772641766632417304392305433807846518528796479536392978979583708513315634758853006181466153753950123690143781869146573619769310465910724679498039233967350285826186641335952054815363570967984981510184392764763856954877827470774698477232276800696523202574338328670956605635570608540621497639083614230273542656257730794135696250275944265485371186695990078772161644441752745366879636015914950641070285008376475732218550269046650818704853674753492515292557752799295962129550811779614125364053327209196644998512915744734185357759530140678948315267763079084069115553782442347442382809237158689683485705194065317833605065445853013660850367798090313483655515872860180347266263193374639565631447683635202666440390843092163136215682823984700591990397539258600998557231243390925656600206260281744059722245183402463412515736249210468894825470299227676690232153000975609608748667065823391447493089727168955619866187909493656480183811585315872359974518516815723760963486837595314048394899563249990470818598557729306063031350848091005835952960738844148878627886544394070681035949692169076635913073979293406042510758436393326804187549624743848762858202503796260184398369999911213783972895066086902755752650035335063969326954980158548756768559012219984707410308622082193934857223998324856737581139019905802920686864436526620653194250576921144381135813588371530037987928641241058553402277622545604640925324879901023259534401989763226300109102244637501055598976252302911108712237172790056188747253797092663262263191952524613115104597113412866265659355795153165845322192410778293517765530522701165072096767414640477440598615455276220309522263989977887254918056321707371341548052146195318881052111474378551677160402394256933874882256159061334450901263842987707776551445107440719181628806170105554776491267216684181251935079633025730341876992106105775656045918846977694455103512548679881365493731827301690612374925910472684684141510975498148990082804296017426792280975437057787225193596333131497655937613148993075400721791153226562619864799219949682422230834402109398959555183995314356736384826645365179813313272775840560690126375666129241621859150631258561175123217347132240791675233899537038293801810959627840073894731429264477619698130235732750854386872357680437968273235459842887375393835491741833575437151505851460968642517869986677107668809393106996726810420686833022174129788404711694946747829691371623262999625222327734697788862159447108536451766622584637644813249119312355662737139213976173102255771949158196735312831275325377019307863016979262367646839083443648527047838513727645260020611451606299656806634986440205682023496343519400909528041566715062628113130203952098768435501339103585507446768224788786220630438529735775572905553978864100844885218211738658195581814807290484616272103011478017402391817278013355909285485094210387376272078824006750471923394642751725270479450267482323536999076499225894023606260942708931383820524225779759779132831998045372323939530536170907542370409525777241055885119481536615849146190663079964749825633197905092318861824495172083163938849771885471876216403709172394986833400392999567736935439588758526117038995091898911255427813391187328821789622876453005178313975640616331970235602902238294366726827799795783930826804007060898718717835491035516556379404582549271166697580021445795293791031773329372003992127862844232818840058839599147279731803448446734986417179669485212454929901343565771834344254954717504860441603633845579692136181274806588911360647767548468307059449446195130613914109620366696258662095529779895023185761427350569987989652135500037335754846678448405472275299803479879720464250113576732886212720117026848348402113068107549189556536893075092897269568268642376090661254941953104736753354828007793968012924708909344281682889952278673352554319754057689844270364114052504562169545726584239445487554266225610166479462474521500109389210994066062081793284490649562324823548588937551527368631616788167155082618006296658142415048645088771076813147932894360335739600637684975322268208361007947334651144560164615747589146094168919294010374743182411176528958949226885138820847477277588763361638515765028697541688229830165833425502491721340906293680734652256557740787448956519018350518925935180522671971234639277942875041677195723660218170674604002072507088803031332441555741254945553102635045474511748523199578048168211542793922517791504050123721778443560398746056429259898951420746821045442001432078830749892573011952883851984786137778555961346372403844670418925897398331769416309187903510294638518956685324961132862004077905147123429922819902016610359900275373287305170889986302937540578382930648314264234233116269051780444891010912509816943929853797128653451918331445319009680080142506905100944705021605455400533085426816904095623916964523246863992819321900951599737755869397266679823998300077228779556134142186284302421957159005652454485641436289205388817698688883722401511344306485157439477894567433707151771601128855032831980078816007251666476371520165326978131999989278311970516337806430762957576990817597265788848181936546485810189960396807290145701556226347975671275524572650660297664967520416439706994505392049923422172474602316367114536189299326385522475950496162833896505380855509013247819460200184675337047844009514714054780921402737274067920682482003310006482671045414983506866789744787380068462896080164688404977829886882168253663740855560749928247339409671978853314993779036339228425545504410576086700927668985264125774616951119881536681677090240604240007322451953576312146560531388571044060034929674002219992267858270485032003093138683644763585084675093558287449115850647602826768421772908060865402999518971016264379489124303398179933535565270230307642092451135767653981018054001893689741934054787688613923693579447172810052759111950392626774639673762014986014325737458217585616276504348645572840222975787911151839542267219959559374165937461406794592319992698880241679479942455143209543742138251392139594844033901446046264784605956094482578062896062460459322956529819344844465047678430015993712925511804086941053762578365073935830041881728105529558414887050661145715657455179170934320935296484237355603857619278990675408723910856974617791241212497640902501923532718307972545704698748111989159194498980062211093681327929140815322962317319749801296322321003741640445815038494163505614405499703342700020598772084953334492286950080931124475145287635370692235222939466778404313818271604428337360395437837476708961769610618289883333922827247496450036649933539178184162755374178704444780381303728950707233582880423695084273623763445155742371869813772032517623272898619916051115392962108587335217296741018890801672221311602152427663852449063241135636663870854819826743791706253160992595128103795444394450393306925603376471258560944629350604262469300427170228857506296637084733076103200724353055303406109825912642196650375410130422010623931659664110209204655122492644574932633490505918131705945250072317437537656316636278706189410963399569182395500138929633767878297635570050334500067402995576490481106333147065571018979040878201159123184282898566774795660040320393007409494459737369528604766204641020509634613817151236319762398306588356016624392537428125132336610832475425171830876504464864314924217099746438279359513649011771255824449259504989285313843580478115633566484305360754917803570909579372805782664764958238860567304716958761119827604191400505474758852238456262740684886046992135310726251064367655581325210790013955883147163825504782413624168441947064086481960346818218845231983558699797912290447819827176693835058520193600875553653262415253516980562147791721651954360353658729230350280620836858997495904017440778088394474423848267980317792670363127345152922163927738588112638828444419371146435726319958101537371168819224229238117035253675346323864487086524888329882088471695557882402537893546631468233242556149713563725068662696096465312887349316023799561104250218669256672464456721131926142636188555158995702331684262148804478199441663858808287774986775346907951799404185150897466474656237016749023775864797722067262780325710403846384674465718565784409500270011122616350312235360653035695108983034838872302894798241443352800879099798942871528841153447683619383697178916775793017133160234850179538369306144936233454846769400691528763242174961555887220795270848908268050519680115526297519966970113371744492719896434342401650771045895171796643677108055996030507868832790604855057603266399745009989853493565198848462454932948663029159653840238234596786672536301475044821295001742917364864701669804807715088292578953996593911514042027048535073530237895563545744572865966720581357997824653137269695212050489741036334415858212478086194618696636068816988448462642125659725263382342106715339069612590682468574913722165941000593354517388720743014770242087387306409801765244936488320477255034031656343287729376249737828024122820351511029117447532192678588949094128943332107919044186400615264491908229699736781267465817447402612729298044891056882552989488713823787227658326107553310882580967594759537425755769957075233319284950901627932169101512356675866967793163511900134409115342286115085890689581865884501121364851354318564554637235506787435886580799178735000134053919579925000254182323869081801876614322630644718492880371717789967892949817791509138877650774483410072852056980523605155901126465025599176696414433140083148715621398504290387662254848529084052722513027813408428505872706999884319000940249662955960742127220399175334501332813594183882008525787115503574514014966230065820593134362632256074937796166891723206701691018128488561836147237366094424039261999370112143789061362796040718413545591258740626615121780134230185107379557271235474318474072936053651924788210510193713428085779833629496435181479251974013470508272793138091780978746642268221730478078502840012833517583804937468422858294050230554938551379895085516442018818378998851891287823701996243306973151597112177453196022609398723642141885841120670868518927872844822353704610863919440000466824730474131992349859745903541915497330363597498750782994620130991556816837706172654899082708508299225161171644747763698006176799336420504499632934981024402946308621630548137487948977721562744831342198487351686871165201920704530783145028299718783014918722984192627626833202810680945850238516819699709518689692389230646091015097213080396848569539117012974390800350498389745259581883221838118682840715925021746265536837948330400192990852606690775955094383362909694337915031617790440387323951590186956322561914087221477188482957710670459569015951012307054679094788734222305733146441006499986847018470256263103345997271161707617214896255461481773425264428131468569322480576630432276115439240141463124233932811195363193716494259250303778633851490339256286561419179541373503623448116670524505134291069395575781046402259214644491081854636958593812234767731357950903301791609120639714783944035140644053715483035722064222575295905487382845053754079654904653575003999879861159914017952545221423453051027699905958773381660296055961955341076131902970320554969805970923402849765028189474857294846239263822473529632594737547443384158095426558069183701300688477715181685834093281109858096855400213449426008632279455230295871714100583932295132044637047380178904759634245278767663685614645256984526100863511715774503183068620631903743642894700105905167665121544960370465886284092959703480779672615518681162938139014469566918007933372011868302714126847017812698682313931022269371422842367120621542809616374308168511744287833866361356601182191003744477660048240077182049171497180244658039080708677624527581557017757610497380460443220228159099451254265216737075437539730495631694016557370327617473768961591796882767841960262294330288820731056262911386159834175017010520020747502692615299654652192096398758914387686246752615013277811212972544339204273249843733095429935168931253616617997379196513406334384639618616358372130376079069750023672764708380070485501111948918138074783457616872516778556091112558327710956454155019493405283060307282170719298778472148703376144558584334869815109386401798003601609095128425770374545349018841221731105138356957321530382673361405275008451984614976020426363566828664675115831599662689317669738087089688111093432008496161153651254693998339964729427366907718301770423629849764551204935095551929046519804240180816972456546466668546962984051666705276382621655316779008237762175601175283099788315989232771490735048133607041848909324599246446827517482740445490743085379103966476292193443148654226648269871419253341025486145315559446656489836671981962484218551651154942637252764817178090605845440476297741276309945190121984847475667247043845116265926802366089657581998596732946086873635923186399117766597543905020806374837803259768749154471606859580186199500328962742578619473505160375036908648847314096499817301456204594357977771602257106006663239134182967007217976513830967188933895704325472613443763232440157145933371773261995162105931141021758738519686273460491803679509662500621101991640767160555172981518256621858955479950388861112903847316277701225317241606996610241131021705252632341031026108557804906877669695614254224350838641566247464481034544443520709315902253906344638769938933529685680323620662179356220387535863106209168712413874854568915550292035378186260435785403846812747053284217061052123467560748652474050051157728685231915482258158764353340869652582106436371821132417870766878579636564762354960597534593765421251387364506998275499704542819105650493244338798701466403471366227584580022889769941891051314297911058445251815499017170639242078878565280664711887065211257980614862730936113736341596736888513780026008256824898676073414746143060792827975556249504359201288909271625550069364127180198615141266945602291081151059694385287883568886597721360998450279868691426458884734089398801086755182222097821126504629552488719738783787515259590732277967856947792018110761317900748919881581415228392041003324626643956712060636892022170358260028470209349890797704054917057615403374947518433835190528824135035028309587793518258464695758861154565917185292171984024867535852817867615189098131429432959165766355238267009838077200700808995375230671040856341471565363967024835263173743397322804929150348798846460951051837659359050880285583023832808529869999993161934305926895181332201143231978342915818680345600987020819255884310302711165634160444998492714745967454190214917849959553283717906665967808763006247506575568156566395521290587328716880520822453388232706462316521195321588991217830020232720390705781820448166986574189694005595086959659820536705878540506960704910856021878551041747314056206896165763040979074130546288564965560292661563667824763012677438776252945052696363405573231239262223926196390121010013240054155693002421515541583902318789322227411733332522842756305507916559706698210007707604563422507567462168379434218168261001856095769769195197185615112066968770339905851823398349659588504080754611753767337484536093621946253710155236729273296895413448170887074499073411730534590486580578549212304649643816832309924808959742274917598905367155329623607755901204049174863963457202749612940509663312833889848020595969899466516316250936828091828452966889316484003886238669029357152073340013993635439335962518156916007927953703144779576059515955326467898584592804247583787242489840600111607711507671503862964120666846455039352562533765378397848198838497812250331649132686310984580062896615725901314458026040068156631414009583543099656015695983652547504777943732867510261717582124086824402100209061140230068721087152596185654456258022826610524671662843659179717064631197323051720474523475504703596966949736886129307666942380458286059203506800547249798190456859195468011968308016970166258680574434883607839097551361883367110415894923853890124601920341017087640433244613156846331581200362350173489104568473349717699132450625759214918364412229515256426007252905351924258351382364605019301951948170804370364856631896157463362319545746975553638519601315166212771351718890462952913610160633047211328099026726990993223498278178193969760387919368577341549010241225685456660573538993860686559558244832633628368903748409152850545513861607784337801304896057900135874993032208666756572157315559170358006257012590070392753635087206743246931698525669852383925139108993038860557591909994662432243685388493835050557751007344676223875369365577457458258784996780286470553787507188541976243068269811507048742503007227043969626121657672010573261546073055407468371466688763327123577150223845867514467547397546943660855726190322897423264731660467965465828558577132966145675514945665212806718303067976826357579582824569410787730683450514628269347134509870472487535834576265423439668301185095537322150891303854553660637503688286021741339886847914820888641807298248924710585838199466819957519998286758072385147943021271719196144953183123093165881536157841167683835633972332327471387908804958401546754582029551920431148037131444419573363485129954469985906452594341004901749466762711896591692662823665519708361291351556000846066158018952295954771779723963307095127319726457069563230653661819758913174275336581895946069903845574457689330960642339322797607079397450606350939935570976241049616872637777101398349195727743320902404453217092523746751951037887876469237035702894199162146376273510511812278241283319429512225738036169914894342836763061975297242992353447308750152830048153670719778324495193166876045979650411733857864676993539732757245060226618996685855647014168998839490604421152502491308753124583409726467892238111005836022928751427972451062299410198941842537271850129731743651446648790044298771916774917948600948312030577783186990229360674380897230310789108079100554663229230655510258373606277396687280456322205046527174391977127552229414430444247761447013423005323687892142952797993837505338727533522814317090621484360354002798415517023032287779723972163595873714092945479993579389486340370416431563772389211138842237555731781869131096219273571024126959433376151189465766819422377015343407794601330050174584087927401700804619683318847151542463156487508548650187636169269689758983471821057439063072704380777638104185644650370841668811528894651150275872196547582624082238168369885996222490116654141484059139411160305628375101421611171324274591015749126825656805369035863468328762825192508157534261748182608443297314545015657762310148743855035362733698421140703434336774625463272209530289133322399008298245375748226786400455400678831977140773556479548062112667181335793665187097832100207095521675226566646756971486034235491553475517934682717814415378701540996738355541093401002545378228613521915497036188629622245056343989051550854627069538084406034825221325422258478258584938350837180464158240650980024525009083152183304229266079148099912195132553764759507826034530941359904267888146936194692923033206609234984759935774912339398067504346400963580391106918481275357765967045829268733955640929644560960026040747582875556347177519408780512771661995921530697937711112010385168887980709454012447481591802200482002612819271524419598442469058012928313070914857056466877734028254881183907608911642027066638045505296541659598209269381327670940981576308420925241188588869167550993171840896080530782743564542741763215363459882469406652436427251288144896051198377943392241791915593058444591112697178616734236045901876411435397965590923728655525399124056675835069302395061171876053175835968948699110900425273546109059411910032987830882677037388041449395119377407766898957553127751826978382722656259458386598073946605136376385201233668729365566433985127003155015780271201789487789392820130826683018505898159618135983248063823248614165397730334840675897354905200267618976984705798423100274826830468973957092808601961675148484241286301791874936934401187863644786778962119109274857349186052301237696503629420545380189757765523566574495171533342230226307799281411003728678594107491610283082124335682736969171215657818745674856964686170608996814717022254563167600854594217882806383042965602059948470617161914159596732558741159474917792793525453950664159761757399496235928650908768254280122424769156257219374107325624155820491137585941401975542262011102472549256590549311532034721802503147068077473629602529599352078725963039713561024031965770501502576583835630087216222615868631502003295373260481432661031889960383884713574882351704598615092969034768046902077423065431722129414159678664740900863626535190431177211759415673169172042912175045786756143630791508211953756681636745345223268340645955061079024409523419359069491358253934390587472222155264110371394338131940058031964197829157269489998576595393558138646394296914170187706936449725954108488855500576764824341747061423105307887186419828812734703864543624359058804971994351580879656839803160004091779813772857978905374551660840813883713208620079193386356435009522151064133658486807580752541206703949116818101814654315006471862189429737241015080258841222179184548848975005338167107590787808406993074325628500819480100118090888283657182398340543797690742829769161781220095072189328909331118864221772183913266987860972599318593393648798804949287741536675816952635179681968122701479783324168037341522857781438182374407305531623400157622386254705869894421826600203130084038401180619943754057500539796121734397683300271741114743790128031780986547916593511178123626957133287696255414702525472303563552619030778053205202797210242304578290453640102709249877375930136547609788575839765240546183089532063254926897460361866382469973950336038280339449370518303999783703945386993884886652702883772477849837429725042345358554282136787541960048756486544017130304538882254075803761438948639086714158402583924291077125512457651287609420996443601535824022685223925567291088611611511982476140786380412294232661986411847829699620625522077108726568014954307719268878686820197740810499940586679350448514364815723141712545084196901866663327807916014984783666837602093904447178983759274944893232289017697301450471057884069915605206738038759724314127672807963149409308765510871859341660508798802886709602345662564768836578110898625029820852813054642174977775619498632631597146667811101787505458950696954540027718624331693996694697669646512797883464011122924993314722921674854983093607508367394775160469209213776843664437443547260478723133674812796090726131091289962751194873000318974764798314220895617521650910406979466291928546423105553325454110879518954843529010703675411681584669983956104725205153451954807365465722159455559189145452806314518803906054138195339718576884982138935631102609764272392943235968400885231464547066869395348342899232308413500422034231364382726914188547478358961372866709575839893192843460711935669272693225322971164308198609676841678974732120727150207547591826827997480462955589923059243096279342989575613397454578587241842201285621653628252605851301779237665185421284659210395172669967690956699691664581149976807296773547746759879223353861717562361071460252585127879136246298840029646502158404324148625913271479711552613091940886653608571430137807946337701713648270137888749101242870907411436257539176780621400630671552523407495878459033449662813388720797134086170633402504828020876781901827880474212394147048036089611339206181450234833394134249650864460372437618537772897283506464298974561202773297239081683585975943760670303538148397585400375270675991679451660687807155062738138865239805673780643809602402257197513352069181884508847624527264082263245352249988126772041249134489429254702191130879940146322737839552164695631476379894123300729854697096422763705013673877998098553779475435979878350186933305869600240868647363683202024226359137266238113824815660048754883699734233096562816686719155637890283246482831073004310100950590895344516178536070222709062336733834890369988159625367454857996090146326676241394020805179652052513542997080614661651303690663361775307819588725180192326594315216038128432644224690960100546554943502074213885476055467803984497692507659545988862082980545314063583339542511808489574355041818808517551845184004304968733418567128845156910981893715271981619173778432893443243711627142410865588439138888158729020114991939200601910984970053685853070572794574625306507169920572129155490759262988041287254397836458655982203576994772763661498346940875947160516798076083344002915420218025945002374660105052502371980782185562109301470153952373743826680504115624916838347566048181412462742550002428751991686794504103846528494273276759772165360373494257167902898521990945054879661433609497997646069167723293249904164716342538853757635211566848455592684557197596277654760932215925444357390506305625600300049614681103749910537960847370933925261302542365074553326179596667796030752849672548395313667686334402130224277103983568992443502735573948299179147342468455394142813658488659726893263033606454170654363014787800387051317742490588730071934813778940835215785392260308503851806833981439414165385223146692177380906163991275095173833220102397488095039459120584565837436078033283515777946720485180693440809918542068658175946429514617933771029085423140358949371634034365383888878179038043711637765400157104896797648967075323763531788651480084925304873636132721631773797264358698427579325084185925658498271464140988968367835365726843105636397012631608871400782122017364634010179467217392996345942791846029789591864800114375254414804438220126563823107322277822095470992204751166858658875395625571453467781548405259208660838623081427151152192335100335347100701440901347958431421603471245159703799391574406825556343542271713290025373279189831280054300570437757025670156993905456198447688553888333280942784418780576118209779279701616045400240780598766380742778596622634847863126212721556348797348769974016449419702275731006243225387636657601353849204352873269368866112895026599864143652959740160309215336490527160833125734561957625926985782852656942598919125318644173466960701000604855005883071765551560782582889800560015582845741306697890125744355653153451347244059721801584476945299193311655170990576814067940645764618851093174974829440500027126999310908993298738346447578861008131462527715479194677569798464937018775438391577489125626203754351695694450938057486900547622003903907669786797601686232219667205175942146679930796901342645922541673174425852481240804172473684356756604256769433932613488204192784971554170549613279976890374228371081438057755563136915484777757371816207923457536564324175274238794565469904166033540141751001873904428757721865746999139629949441934160370917118500967615061076470226754092247763806614416450811831316958911798680972273254111331457078290755756466689677913741843083728577692923822744997986576465605838905465645475390368182855960078616217586045512666138447120150929734843278324434944316225043035351376372978503951366957427828046088415546003424728190255817708580321164626371592973131727945895750252853513170764343032986385676427144668661913294487418745157256181232255083961660682046601568518028186253721021131225901823581073781863921150779107255027712777478823195979127720943967482028841298081816371434361591937927170958293626963377597161589161543851598460285429085824869837202920232478612081409998054543128223836783238383045315153760237241243652758765100280745892907121415629133867814271728718552639805159629066486785181618410348850139730059802674937140656525857860142560066159934093992514676274792722817124485838224497917365152853832893319764196028316486284999624659777404479996427982342005007514183810354672505298002523305869341952630659349742159120744206640027134093324755108491073724741569803205332319566147917918618956909908192799542884740301157182723874526264459786628610924903974105480885881134334758107480155248592841454745338908957285153376626856831127437894171367367478443420111309468698055021493758302258365418973573706146881519021339311363430931323870204911807963825738889704995745738705189484983786318451450287997085078165543134175493210306183674861516312836066146813919194678695560771434459493381337713943466161549046529330200648780836563069703303911293968431645591834079284859149668119629775651160367816851834630394384423644579053335776756408006012663793243152565119536958526146823585942458873682462125771151193392773063619443139877447776715230740436098440145996792460079004367423216004421846503638591153149463986225753944671856327321456358132063971484795241510474805955307726209743576270247007502614817018041635564815722378638347575404958534414690892868574417938088832032330328034345762066992151327818905557759082822925780363680034508120702590515092133673286728437282017506937528263279490900782370867929754490608595884015764827932384930237642767295982898883506521587574980996572158600619256891035084293066691213824776789870049058701360767368139800515969108050938595605409625397378299960687916022989227740497437029443271538654582504179722794611255862582145976912900297739545567212377269332917901499967054437113697438073182655747125346930694527736233080853316611419965286519855793851567145470645922410727320056582786571043779679130590597643083071985943464056821855957927206270307001076319194472257920764348169501447313247319248351108035218102740106466196974762457163574957651122975631180328839219603684445978023311341848664679899358040085137412905988807032308644023255816473380997584698897683239653127420873201460192796662751574081949651680629417096905724599004900963004984093704768775652277317099502405512722525601224274897137984809764376554029215632073751049231172112169900988845758324342360897076640765921557116741397370437883492851688628160286241183894812647165844806005267386554979327251016307982725638381181575552091088409855506625321514103550591081160816151068989030533841434623600680013142090016710720549119451194595084241210333715009702608232638580752963072631697653023953898536774605001698082266140434431916191526381695988255524447981416257247784560793837182391488368188287091825566279519013162875772327189630720192401036267600029472651616525692804165816639620206924564755717087254508701745968534753831447787699830652999584130891591300783008616197368176513246266414571101162221232637346542570411293295007428599879526572231368888263673992137784259988192170638632312347542588135991097578680305378233079049325474789777648677941989570289398756497128972968822063800076179873566932630032719055864689141904467542141413682328038032364365515409681241817706985153686340657354410462676250024222617268019997247235007154340119501705213693411653688473395256551187345092092221214017701549694183783328566112716400156585329403667324044213737731070832846308051733382297791845831244752324312153863465413438264088233665080229995086230045875806426846156828341971294792947939713325471523778436985728417925342664963857087511022826496552648195601811150388812149381967639614318217192143446218081377903702122652383200279239305167725197344389720469065210533339810217868853489919371746119626162219311540074658843202495495183497357876128545379026122757288971059466397813801132678303994793118694125769958553669539009566016957279409718290638615513444237854490051114702277819895254648842160544417114211006661975617180637301966647251828107048308467790478889461438526502911656703611817367076270663012045926790922284348012623369218805661391698362669434759812417847379566269073107956593498752014180627118349777738839098547286907760873602495599768346090762692792821950830525180068286547123981047867365219620203433478137352535696024836396988385012526142357447116345634404935646749471359329934457109866966914218015987379505144072442465105282394239752953545208291170339424838059075892037066810992728277050250332497772749350193130875235763813148840490609288459525743412841139311813567363811993750697956854665926225006677643143890115723174915484519395162668493455217248861800677804854730784836862137563912451551114949043780738493268002794193157510660763406618370005212157306709486426675856361250028621106951374739545608387055285185065402163152129404880203848406644742804130001905135154292845987933760379948214160281076727693634172256434929480364385090568873470274625686481304025505032434768837888419352534753462651375888973178090610289952381582599310911671211009105562118590255337992418865961396225617217860188722388544487018880968092201366189986148224659256137043715839515749678364996291235517269760264077796127337370287326268830479546584546058146019423841178849078673865447920288623980885260266494577830568921374290331288685228612554007543368965351048940684331162359912738789026740541981215403699198941852323698045493491395340623613159915245122300485369567838612421473875276872390483661276156658322153139983496475099198017805011443716432569496612403797006598314128637800755541683632899411002407674120714825785305918576373443027653659531715374374255340470255866492270021426667668186739040837832744230296391769148533773449355180623490949287820688171276066446671054743914573515892948681933948639539505506841564401840604616433140094065158181073745635449855492377501646398313522878340981418545226929555152734628173699921504335737916406773875470384748730609855414963612650031344639711818028547082798028785233330698567815535916128129041470445152586801847185164292736053555829614114330731243941632348215328904681564932557239013021657890759488958197369833793301674890351452907402473265765388603911749512480274729725728670572467611124569063197314418168444566727182751319025217487603715705461784365524220354816761557547249379843257266965774468522225508723502996937950105484989961084315482856049174621411955937808077801465021925148940439377737120163589308241174004647294645125191840083266687129916792078729430003072929082911425292024340216204681262610161010226945601561939549259702097267613641898340344293526546331606591899918082003487368749762476024498030896814141835519326589910562720797544564976065951450953312174639802002267233929614199076561151609322356655485665504856355453192053316327479517477937003120705179491969269420333029972963860018513349687220347846724391150927193384992586874843494371084215206262695246171272457428683495820772437665055060814978400506509369018142605250776032584386910262050273954840404668553177018916136251686686507855254254878693379303678750924047842934245948206250055932948283897198938726563536381205106315868666948385459650192966255617755872642121666596719993386895750134978308998657420643594856135881349307230670469356303268221993737278863945578932873235649004375423527719939749600977023033174974481607948178922032318423237900802924841890597104268271543780195548374166224051094644989998062981137478419006352069963212721751528647526326644329274429709465326630651329759522238472086610392936212464041694970670405978530335176113940747356730171588708719151951093826918692522552558103463389420694871224156631019774477555694959933906401408307220993804759203015694546176990388818172331854262972463981799882362228885308003009324021140383226771278999233979655882884050999828922960906129502969310713588084898379187656303401929519820807031335193216838869358497173597373824359060574346097059773509122423740980912508246209861284054892323928163441611652764898914871499592861935918088690806710710394782739233253701876503313721413472677222680297672126636421737146977124841644593582235810188363178824061108110627397144218259428224272483349636289547226358627192360618821526835425431938740780764841934538585608375423627451635002741685617248938609961678660115180850007654570328739678869660502058575785326924090531658539616078711504099382733946008473546522612732656475498385479624089239839098698385964563007331198669714473382527077879714471329508494373499323545469980462460281935721681296368593002586020256322750431522049522573765663899812519966910705922915535454839759641893218004301067624634696061789467119363313602730096590608655770187702873844315165886074984212431789336651007827820477507247111940266321641127332675654444727681029183217824300648414112494632304611078797871930502894914744025193462441340009184964812340970428613701918810899333225941396150266160169799017003072628109312602873925984471039258463663872474371868526425398735636022264451138516065930868538006794811474045678216504245926882605513275820390414619435774156929258719653222110159433843084668087916846894413170216543633677537566399475450349830429032224916878935017886994195316251641894565657385776479043698359872882096313301561760884061620307690129604848219799574751555459554141495144082129531478628777882803737824726943481006125177885948763241381870811338859908256507171383419145033745872576648029107591554728554096520045912136340954769633625722613541224429873132557856267298254417887533889745591105780563455517627254211709688990537284552133406117539472459630683524021344527170407295416222370412631826641539899065863700213338190610731684150099477635762963554529694378803445080464517776584781267065343714721973520864380836156110552756449141451087404903886984798317938276187132036490935392996067759135782587057327686645530873791575566181798107843873608594209074433814610705811420681053734395039564354299844706912242034887901073921242319309691974255141122330572430415456345321873332898546763464854774811942784275030665740166638191658317336026694349258410196103737814409468113094802719723639379226521692762929634223268623853729213285188729874385813731042358209247601203542169102198095994256818671433599111206936383362754690767703068141448703611144964935497731083818673358462555074199333497693206584045286542463533126947647130812633535268317486170068321631926245896202772294319407201053058504480472201014279604836403517668289011546658457927047447106386704411827048071904955073327278572519511722442587451389219332503111117300138615398829096019163703938867665570996065692999920361425306677593386375583250206420974492584214274484597720024768065967740884795071042420666300568967197696529012286287808504989854420575183697084151855884510993075152018881512370400389708456891206844774303775832808340536274860865990487282931039484779326561691569849473819246247058705144276410194728290140304404079129657023481864695992158907897031349377923015156639469414040953573511740515635082369200255110540875115053285943850259346491542692452827034781094646658832710346547729045483371168573271690086218629028159559684132732753585793737979922503565553367221132040803875462162112485017223888363641295970914829949132506427394559075687988501755948769689393986680909311157102396909847157195495497936636155969614552648884457807079233969167014620994935285012789767454038057896228279589389196110866915015524080330312821853396282724994520826310139522572065372611235179326214800668125477582387442187289390217994406613955982223060596755698142502063188652901613743739103554950322152379353229299048468374232660579116812188346846616258103917920828935962837758923680293047298500072909718931342651177490510115984123721137075041477580316874452030634242642175761928059471499369895164875647418705637698353304607690627307201133382841107948294524393418620715938004385195696577123877775967933808231208769776828159790666455275986215508353376730263083079960003181283417936624215262771347646713437919524196106180011465390709642539352570679275515927048926080031026305390025926236227399149325308999893503985477906367513478012045030550674050147489488831780144228785452622234676100132322048757653515245842459369599612781695601566000575141484097756392859971395712472384182120095217389568253411346125038568656284655082976992612074846303395900796643851630378898926448093432575389709950717321622155615003872119263854981739653332392178504181060929804523964050164244093538861123256788786189933928003984393381192063272822945515622962500657359753777563496855527897993298084733277475112499453461014168758328919583678569302097874267108703031493718847116515904501342844641255629970661349169251161055702222009132495150354554597654918341355080042913911205020833936961437967921579505801875991943413410702088446798402735148674926895608112239515573447520548412293644607224500440267679427210082375629053173361103176066894148644162410361741866331457763094659053571738341487652342413265491691017970491251065702344804827289470745789406738634194626405154884828414514974943734729435483119769230651411044575333869787721200562904868123858317398124794922618969741305201724983728893454492483309046211441764384848804985150447601375721859469049770326770258364947403433016316984783471147440679251092369636215256380844755640861801905765707966552650136771839709847901441705733586243580764522227000232781918212794041978806214925308930493110393751890225598381714986734557435145500033297467853096403569154169879382994370938000786023626463638602943143836672558266610505688837084811323729277303976773458771083321699257147839348191975192350927064077376996401039463983882799799497374413805626602326420444284220118007072979628076009289603056324874450093593218370043069989825002854944549433233818875792426707783098114152266397968785614276894016739716782137113688542118250974854624000671219110707876226484610397934961119111611825700083897169406303740163416790952618365770408193468966956441283475345101270931076016534756747809201869870547231454945242315616958142348188367640273867923219604618752977161070935509714779100587347738800133509071389467383359445852747943915514624465129334143693072308429487645934092218479692913022342829505915244431059103197167466766339798802295723229119554422256778258602356646913377604335126094477236491050622629569513196564146256868244234445264453461857578012128114606255904964895837473958515041542239921240153146359502391560474712494347280255790593372629979924170000786519447334195335178358112941411081003708235175270000446107597851509959901277846256042423643207931790475887396797982937659302302456284343390641185445096219213180573907767130809721227122083341744958864342622716914755817463538582248882684383960498425066320854729408526526833321519012059686756067143267358504565307333241213709874357660060676090966791811698036406349159772769746346194150373578610259031896528687317932892693648156270897570812903066429900007020159929482633910468144462863052089097633592325525498623143867900154195273968241212379000420891171028198492240488915598560460875418076711742554165119757713111107485430182192944487191403815582894483920232631173224097298195919807855701945128269747035778343792038228932522549274731241269376695772632179990601273512421766056190485780801078633265795481066517757904287527196840774604683574287118535598665600005285271071271751260580656965091254175410623834768641974952426006401451168535402623892654037718413111732618358807753737545759467685312150766885457324252501332209091748583665136582060307066296033654361205105429683312679170292905776609187367080857271769455573409601309283975784874208566887342195742779435100281864411860048453996810115655867316108437556059083653530225743605628060449974166778776816875516265950233704081482344113032812568294870497684651414033756010500864864113177031024062700025694971292835383034425446388927243164732920122341056016848176750897520595251090048445001273378324354641437899218316513799705415540169224788008369651867963072497997593109143142252439352625018658521523048650638745521766726916988182536595548361902540247193847554291745629168205858519531704665570906369184411409017342706299619159080263216787093456512087584368958689933587013835797778208675468650413850268945770020489154319547581292049085609773821950382789357604254489813110584722025707630515322691032181654144183142652412941767269377808248336456298167322688294196324394837539506685478332355444074130049383992803320584796018525667236023354849830175641926656189019101536612539118231749599417228766098235051303240888475454172464024915650515062943706749943994316925253079524392760168259711916870308893544797496040665904295802942290331914334166798239283975342759538952774941894681470296533436921969622172602116532843459578743335663902486637700189692257954778074696364031020349813195557154918939312653350274185846917717054374431790248376072453782870651288019416751911379453462018872414982426324198444146330398376892883445661330098989256383298254029239168163884888047227921318041430204354156104001536095283430625820373518614850981510978996054517408544798387156494777969529574434993380523239257447537381380578155376565967083690519528891650139160426589440711709377742468497487953140678183926500112334310098790846704434802714796696965683190776105114508222482419339485533915556208440590556915766406297169428657041292680875906240536736812285063456110726884354980927996406701817644753556779601576892037982511460185751702408241712282145884201120096301700681833563832347110459248714002626156973648614743433281021028770632687713688316429848156035459465627448313810362067072033947424504232920002593136536521063422828129238409930359637364160637989281261553397878832156865698322343964573850882290391923733708722521030274103228942127207378481823151582540315980697553189509132252379200387441132775613012519955481844541562587657973470777290767773033045976021780551259048115698702358265089377965223003522751358384591651165071219365523983595895942658906114393842583566209948663669906882661166128541283134424206125752584213890759320482643019302020279278215459323154523043182630123856091555334557046561032755956699609052065726157323971084948796601767218589047176376663094590582661011650794952553393612178918786978208889304313032910447378986337812824652942721678058312714002783565987153484967650771465901031817161184510944317810709841909198995703744989842276232014153366789171632408496092433116825303524251732869915663858983142140627241921642238886044891018967205282761358314401169611333831725904769384505507049885549838631508503659719303869315612154782729981363948532053357834743938956333847327394524821347631856720030205328961258575181477984010395819712860949292748646339374635875570444142811820997372700865712682168022463848935620570951947474311139207039512016719715040099725951585701806951850249019815590696220824605230830531035316791189940213849498208700882558397879227614290843195103970280629159633072532579390451432918383555549738571467764794938580352245543070654691285900847291683051447592009397735462146130304981599461291065163647303404105404771644954089039436153312893322849191470651499244815124563563137463943759827816167103770898798390341124410583699075620998912693230102606495785769812579148262699956949198976545978754498848609611775720849157807928169847333092285617004634748344135629845798887682503468771243475919906745566049181547900652690483324047760273159649057676798830921780323589267750684829942312717744006498994321612522890480638993316084917115342897602153782190530906002102441013809124114610939804233357026088694574266218637707367606989918703464583706887801062267957881218756601222654912396584803228734511812006553688943315060925043646893408030768577096799120049960098316022766230229112728979880882459146096685709364346728745117004489976485771112529189957497509716943822437965522182319571149597190597723965615571449281251932986165874715894421500872722730655708932211955860392686667679506426483938175286443978177736627441485981125351142944461531649048709647730789366057315631149847411033772564927235299329244027409257461182732821164622133519010102131859332336789505749924293809597556169287870146698654892571691481362167373542796581437321452375048494121376050953245805965473079223662638591798761985399131395048871114757768316092745400024742308693565989441506678310685700543267142529762457168643137758320140671334166275799616855105869121584740693337831062711231928272040176113791672769289476048018886360873860116464442083437111343162541634242775023186973234893699960644512760384697335710332090820118275362888954709688747272476678539835381901104289062038471775006243709202699479845404949157712553561630535275249794969614622515618616056577224906403550562294239931297445492421688388918950113127312827694576542865607083764040761820787949088505648354756897499841078276571911834463467265209111721024052361142010647698202211997402070018944046574392285476174934696582867845160883153357096777362012631978648410710177082055512599227040159890442879768680915079948911730433635091809232453157904113966278118831457810841798808000681965774596558538366003777276451875707237281172544711356350166733260323053936000938129445743349544272550208671270558538453246293457538901604539621761363730666887238373724294136470040676780399281718423377462436163152743741656652516365823400836267013858759794072411023286986028316398714281379055148136855587323669246588433369872553597641944402430735393232547903839056900564179337277590583192268780327517668094991413039222719598724932571041457170982660310666995575080340743363494174598579502211668140804617644153491281961318866702132498116208146803942321904392537336217290498860690043486404528148562452485466433158926919129974174543547178843919936161349774871690884587723239926196780971342511809620696581630116636452915087689776111431440263967825384238664241980519300095300290739749491577383082208741552891244898141269327444885508932319435807147602073470238904536322205562301603753142396737166360994363264498455142071436914501983913216366750892301041204028220966557059744950623853530791045969895949790062077431040369015580412871029600316921664751390344698078060243943065906135556105621839343259076735348015322076635554111413528131641619534087350260009613302731368731365616969825061057402347651242501382968387552235261140413468094063777674252074095332947294573712157045138437646782148335513159778401331656049437668083718373022319744635361486410650430605188245117701214817797745442163874383279979493130510287158551828335870006609134580091610402851284134979694268237029211709557314447021719152617528502910619669956968303100479239481430236835018042597983629511484377923384290647511699189676747226654705492705185633371182916664192081419399587685465782190963766948288981936870041825523879155163236434263244678335624620609817801273649577508199271136913455452245988807911667345604545994132146378123802180840858202868659284828527610239300126594069859249030472522470941235411885453357035718806235129129341383602489010060527473667923000919814633721581440593010457161200239852803780429531480440331218985499890309167135271796065987817626295022966969900632929000479433992511084363005953997969353155725931856422434655343687415044898655874018212065565406287476348674090609482606096686650713929610337740201870118012836760450175750116658099357497550919569397506121451079733887568887601469892398555254409020781491029020644793377961308052287000402378202915188408323315516240912974768584677022741817334225267913765038023073353149130789222828385582589170396353695025080985907339536019226578157584477763345363178331458422261806746149052234503515926988713073590208136195779766679506852328950695996477489073690397344256064862360897976248382253165577381063517727324282483544662449626004859676936875847121585385860376671997016512338961310521026812456773122974461916662619106049248598204540581015445587356147010331197985480382861896894294046586742437845501054040547562772619390408759668949593573122162563128786711367504821568243246124276740349391967824156817661264389480612081497961155195686359380359925056610511985078540216755411587831551546275552569353367255342902642679574117480918887132973671603891182841165734184011851895574288479166435891029833023552454791580981620511842166074570914487406776898758560758554670052780175743049744302340789601788269957537767024613670283978423172439976917154378028441493223738211207821762483515194461224805881624453645527292434716571922889160606002645866907074432816366522176001736463243185679268882335519490521808143724694034564188356571764966901820483402874124872938753320007151124916743197888371987781932771222227851184143591242440809641060290254163290594741859122583087924557160629139323660011549460511900652945592616256841570697319672953327576696181581054270503583403015240343077280741987517852115398603583576995368750607189351315203115044892518005398374746680871266920628167800721506343504480570956709760698139070212995738456650443989695462430277452805113691754858441842693132053624775574624157824286084391004944179656957798877795656016475874282172207619851437620623598899779759491065681151775424737083614270733266199429121369823525437509393970051162812501831180320601111092488840234325720091518218579671809247594665598090628252609420335736774184834701197536247285450337516993891592004814732075329795763933868516214261798459019849934678920544740392849088795026579460146630908847181376855930981676919555643707092174101735849079222335470590582317949761482312417871908974680916930048843751764863962465912089025424003375126165095668664733747276551452427951866774651282232999026276278967497057642064839035675355052242893421900174544748476848390014564149127297101665791670718379716884428010748818537960159912014171929992856893428978491309926404423155142033752205617909919998023217467392922550745700090070367848995326032401130287873562705602540475296715952112215015353163345171693227580049426136174669242386034749460587758286172552682818710970455903295266146931712098994816929360884784206866620561154883620288941075504564735834201572892985219955012337605839832014727644586274198481511304359338208871151183598528466844872578489745439117928435554719961148543571018491684886170540731122586027975568230380756466284890012425159114586866873767858223679481424195362329302439148797331702594919109000042415120183053128314047484414182506454825862948452254887456450948694992182870068387354793900633911852938096254588219364204728902289820121853264314379831694899630618466760600855423106599177116576649795551268950901452428825766387862471176764981773756662344836565285241319916234702844906879252612810672872971204666376222686798764384132262332575338400773373771677906526881951637905584447546677077771655155854488238229721934112778499304630073809746720265602066275208001613710205482092773971557053552621119975794869512405382151425289000627488142610478005031546492641916497605354629415728958598356956997167912724023583580133871427377638188148396724515863367224822468412162705505247752750497922392620322432438613178902772857257983260587859923531007683210653660587880887462766927968034981180527780367101836916020426979098308409500698365659713562298688518770281503501292840282829742382114923055198079839048843805116713543018721152743350151205826445466335323010863929522586975495501865612679562358070900704980148954316366055916196381847438651116697385540889009735961461597387482791126240102666586661519543552163599910195974959626784391927295991997423854052129114180261872994456130728663981557412522621555051436235816232869969024902750410041379070961956725858332349139114143292332561287255494055725893520894039195195780113940989267246941411667499131275620914338070545171775162228286480034925172117559572363329698045141671854821577469054243302340630410855684454529302269959668111769492453497582848080400235831654810553517875986544095414763267449751677221329626614828046418318461320414050061633795791421102772823322580865411257307051422935492689980537255318863353483721602420966723576531526356138421767849539700593277944435558563780984667191063298342409019355384104162529045253776401533289639985580454347850453083392109871988329588508895102696413736151206346716112253187992634111495365938919878511416020790394569676688018331142134517888215079728041241843465270078812390522067659251565280716850942704885405151508915732341201924924398015424259309634508958739037213156019687265948983175029112906200411713249501539802106486742653096745594205933336542997102366874079141793375300279211359772398042355511044816032836479126526925292010645697424846453973187667988827488191450804736286493609579542589399507308012241073210499975313419800417156500497282367034547585065852015319405776293328788874517913385032538284480982499094503533929652565784292488021539129350949057198199434762804758239282472911318295785534638285786691201415760470906859011021365666133207311935246890355401153160782254103893573551290495894978687199340393354620726161794407817466078884366757433531294530598386420453820579539364161956359220078308695149459768016900658312515708187381717232890024225317048723870994987463716009476753009273431042973615856977953794687334718129546156643341186999380543229264715510037967929806417237434414146600850858397851779933788509042044514685721534047115692895426864909975007411502570875951572824768872697819450730589673845219557656924073961012524312305483915847074610014989692221458829117249869386157761641278960594337202440316171960019136926238543587883888665827142658046291566961114282991141862847467657215932893408668204075423194551958370137569466021132535722333296555591377201587792644246347461776712427001079519143627430034763160712245349665802934693997974559382299430248886598228877028343298439779197217601335053218797386214738517686708408427124542860258912679267113975602308551947849388762477789660256233412381253263003733274449673933085259593049366555919529581818770778172979929732113043127306293192190615757075661543336833459296945118702062685359899763383429983998060336966761282872304459766177490300852479874766272820324440123741444076674252126650221158301835534041418085032676510797540979048467461631001013511562071763663851482970049909324405863354757217092612127450475695862799840164285298711643933077064607843496682247423146290414301187689790260465420539824231825093913095119994054335942346330113046669285060497192632330812253251167053713815369694411965584775977684347222833400746719693307144333253963268759690522665840015283238485878664344384919991531675536837044072601863771703215960673403998101628706313080110573778017488072823693775772894712378187482647188023271613444756502083772372849691740162071706379311163622006212577433951673908958847499969271591478270098404537683018536090275847660313377048830974049496055289476254684524249959109774974834510665696092852754577893174124908216462020143087807593095656489391480450903871928803377452260998336342153932276549873041789475532648754295456302612737277594989661309928056075523373952851809255009022283112003196574834675891339196563220173099839873399796342807031988453703770848665394051611586998247500233065224507792581868552503834761275521675795439487744531889345107578068113572609240236499241952696671743683713563157388380610696456427528085661049898465474933096742526102643002554884150952378567779854810638986597245784017645674921358232784631781685735725097133793569198518948564367776446195551292362897162219043960010319771435048040386799787709940826636795760422164675124999830971433885893815130144656137818870287516426182896407637605584526993478404140971679184940866894909889297300364632308815063966524515639852981597985978830174998392954625692616717484080245980636356852812171745635906661659736076476811993896394457389012222889956689673484126494012296910068852057363264221838156496086903559582048578455696687917246423598602382334391177163975060631879766629730126969048631150065263122067112279209454683645624611363310143216205880890497267272905620051823010215634758715692221021606567822661264270233213691943187224693685773935580699185788146122842360130964877064282727555196612715486663778268199836930323792324461466862284615100344422633092772450706226663814654759563310889640879974779118651303935007033834445395984387668800062987900718697034384350945574947253019352171389631887694677695544489232675692130192829375534146810253317833705624898174563317893023141841054677597666409894676210613368294468445413188038549629161248537749567326567017677980554291573224783246820526979218024574836987821357781515755647300231077913611384578155882924774658196168418157698779260865654870347326192787792288063676221812290712456016480218837346814688471864407057724766492440869517853830614294447835890018915675284718164730161703670435012742561685742808005580892860882487268636583192139146917864425890938110083103364850537745470528488035714240790242184245915614515592323526647445559976789200130005279742843418624093044743643731433912232413004302937063352711241712627628648174949351251689481153384115303904016444571519106169557721257303491338809472382890248945142649794341948946438187351931337212779918976722924992322025179676390323038173016204636102685442724204656280431556831850605843430463289258267306985377079791522692585602985254582539878907608662930881718792673089572052616705224066964400626566777274363508474479022138072597580336024366282651818746901067963233303582293260903343561311042949852325298661481977629185095765877717016734593040900947448966670671736946519865578735329544952946564136757989666181697768586622357811191066693850776703388340510201853649666503089246837791929075907340837251970858669849926820265902896459145985620510986981594783106451878044218920584698941205268109335207239388307705282803535112954260507812259911884323506008455032874324880672085436901581723661378958226749433573503203861570211060667055546086085414576572245174826340046304728224085295630336119119868366279751510880121081189222908351732512578638355533483376025889151098134471174228316609720199126607567741085931193312254041058652253421704425516436040115937385625365574350406062275794529811568867005121168756151489768617687405346269611641258814966082305582212001535092364093440176485399079519140276183835524193889319397291315781247898259769839822127972128743231447048020041756991609590134934347209949347900764240594890013210631479609574928539045787497816500962059317517555781145144053826660663998476561914924583563075911519102398615344511285676536674024860902261226615272893249197957620814890789659426799798481900552813929950205819626968834682335392465646004316460900055764792429027698925073691272271184191949469892585530529066399590847163626068381599309799101497120791321654413180341949505032134316449863438685145340359846188570107959916641152819624002145048974576627494544088711074986141325230341630879954162851649859839006267523358453093638453733248722993049303134556244066803372568696098797407720095821881362802496720072230477994901024227516163019080324875051010674420770843863567564707165133666202243116470675911758403822226102106828870399464440148908031041822315264486267122054985431742543881622290337794970537408640331414466281277821863139351757495777603717836317228057282264367529369507876997557530426771914051764467042485925184847114552405669295321938294149511912289270507819139954287284840381795995851671947837590460099073483195226716606271812555905609743192904762822674757521372887591843011903362028762803198073988439325573235007035001976905002194160865082188175826902190675145598017915334727562793973958605308962118407522229820372088670073027123428050054363338633324096908842711414178871626547149120434978352308954698236999753916497557675045718263891939604482428075799461731560720819138461274040414751664363993245667922651857182744453666032171916766847926567276874932613750208937885336465808732544340256095661288781818348303103596160252223529487704687611477542224863458321360514812860065891292187599694227629246154732475959178094318226201971248409437058669084181297493391896464186259251414438305207780057704241172633145847004244515860449835533376289044056297495683353646839735736240958724505694436930067981094169458498321474978318948365139813711462212340671274702565208081569072395433559219891007294580610083746910217323790677092054936931789590860366370895906396874318874465364901822467919181559470687219806645449139285946248555214605087939115324387880511703906033793094226067157580437913449274030290254702359661977109838595262248803112278101753596112339540024051068606560488437934253076035030183056337492439293229874069947291456686926645113050613629211169269310171578955538707594084891668356530351174244614237976307395470111972062502883977934477099398787468700406802515042247203298583328927404208570019063561897078187620906788249307571897692472251462985773789132960955467966294405803423171110480332923096662696345244612761067991239319709322110017511893867592554940405691381781124350564150569184897978541113151684557013113225154019528571658534841909786008046647458146416391311030985393123869553894177855415941185315197813529577060250419708310312703452617458195689467553297261861451369817013352214806023683481087269043869363982884095910716742169568547016145564561178257771469966616232816354426172113885739128246176397734367743281481417767069476486551322966986090698054270381300199886243180103579593024937677450263410705240229141979164978673183803034079565724244855090939518312836389183779950621987622571885611663706604079713498403158368707174719927890418977579156300714283075906951050487214689694938348027153653900895479073966781468105467895710374573498169890664124417685632898129825969892707583474379105897549578593181125079828491761751999248626298461021295120106766407280032762146211599024944901984578842059795809317654949767053651540814943019342889598502585899953376172654915801226134670264200596606610860167525521618970297187745367256426793981630029236463742111416549974201368892114912156913580679330847870178760375615406871511552733823865102072846798040674900793824014735297409616434407042524630523685184100678666092691996725622321036926621812152918695579181841886069894245920253072567755066747005798271185806897487261694386344428718363014806207367777139467839128932634776107599148884221905020636082124240847834711123860583841512657427514708442599157945216354146924644843883989760791166513302567029228649286808749791390825076499663808111890513519853641451383898794726218810514498089083147347921191359562406573919663108635944524554084044273933752369048069667775984251137622936137388977231761997820069007381377250891400162441837231295940008170227058719124017240058333271951856360901640007286186162377140472031828647259410327683179578409055053187825512184853725672903043864750028193273813117712016704487782472237532687230855466218221873789236289692037938559877868301100158014706996269124166298393735780329374439379007381451061323981338178712371058175744937319996153752083828271083133194085356653505077424150766447519762863228039874371042817141572333376044626797598267481945294962023617315205829392197691440223553181847159157736098576529233570281525171043865477752366784022548578598816664344006312090453055299563891829870804593850768971994913356090177231769851162403037177677731685104306081915889229252159685641226696556019857268041217666204640404868598214394996082530118074734284970294566140174319142349755842509118371414614997682095010280031933638752886924357098298906882965260018551599826895396666947164012109004625612922930798768631199375719112556823488196821374205281008727543658466941049116154394630644035238640490615694797035656794468050435595860792617401620092539552375654702789416084162752593616717026078506107240913014116803262695537274766161220926165183738538147851460161129563524394889123447745850982632111464010720489831433419926886961843295297722493377071272121672817607729975742690295339813695753008240716270432075199970775255165842606558344946318697883529624638775111226773683413232538447144766703946073908820552518494768801734374728066409811205996619405659451097649915272489507887130099222458723071964986567385147921744453317836807333203953740086456448126246231483283297175727092577681726326085716299328117348027324794055719959249967375604006882868529831882151536872215726901539277868023796764957645399179689171992348544385357446600306597873689666037665541441753202790844812230103483378402263712179899203441178108784462620102801909043177291671535285439802206896604412100727903032482972733703320190663247112686769502389283711219465521589436001535195999308532600965547844117054637592203054480359648042323498949150189876793633703478287842724793848506210681852693820252745031403733432348115999632190942227645469112550198924342950756221059124465210997649768029102956586571050770996645135240446480135461950850084291883508692198938279404718241113197752803811386099647540223897092151253153898240308526682807746178587356853503689163007646355541772471780964480831241050842759921992976606443460761793245469168454752505986583679756145330724589647800687227693558154075746172579584328044940643382810644038561518302444852213111796087440617306820391255518293783818394026609859239241360128641905961229049588912606000515661777792572516034035410531865333783081560023468347291928527766926894873471934213670825764754050082139294693966226721040071506113065138441834041265712915871718220928944619398144872973753862260179117991271438764783812869770533424417261710747826270218450937698954904992021051842780253529235506014652321694543025787474963612552782377055001558877409940984653184231986823922764452996327129623202332535043515357593898588451076130783283757942455252654936947674067610972571263217591249506464955851323418452538504320727773264784270450954743528967932222501550543610480458649448800441323705357286482650784557955459450491486804044390794192307106117569315224336995730547886271305463375868149370859516386624868868723054662348393176868019212913385754997051130628998515688660129839621459954980090848865392609369271960355953756130768954765909017178950912146708411372187782067906130557993700140477729146860726801803250024990444957653101217873212545811563005607090812931314379677010327484319328088144484738341764998702909705777627247547798009489706987670057458799855490588541031739251286156037595266229576671777884459192094291596133126899383627984292810700358292028607587295140173406780514291093721626120041853113169099586269247378843925377496373676879680900728805229741168158567567414809500777902168458648416635420418263545726169327516770061365290062725998578659941521782018026220051281077001480751446032582502539946718598480212315493563439567970147048502112359317807658187958230463844689912747434084084378314895474056439949087791296019868308147119450273820567844599969198601375833446646302434110890154162192040862295988613884509278678092699765314953792442388135357746264277647329505188380415497517088107445495187166163004849181501919649532294636906980859090010335081850881474761681079501448473300662037392709396016165398295002346394359880279586190255336975486661260136884780645196082103065976438312586160707796427766946616120448750562789596993566658243809119795877893180016960073342304668540187249486793731681300218107674666836006693081838898619494609855220769929216414218202448818915377772987941296420928670000166499240344038024212295481678254229586490957008755182948179129817053474739783363058059982308495005622763548493306552194638243284940634393991653890318177229560093297879398116674513841181711998960382708348705443051750509197249772887447433798844926068759640520996489855046047176580257520279367369294418102593745123701319049896911261738113354121766128248809880156485472428774390907880609083200393058649173453667836349093500686061756052380066885286931092047556750992081773911825536931351778810890114936704759601891231182204384103890211595808176448799560810108765478187940472493832121368785965389789640894383158077536921616667359305087636047141623655681736332726517387361989677017327115326950256710585435807259779606170197942989068393377495660484536577252527791491695746877367864594793424813892646924808613316875961047191732616809155232084738073489250584837620811803423962815339836667507288080758501306079534635446015782318608920321081123521554397945472619713005783694155750361980616163760221545240661186611618837257614376172409765726048863503634285842382751320799882757520983304039754757912157626767471796861777996725805605989222099456277958822846488565182071103711842273682007564821582050615171112511087933523715479562350942321058245146927028065882173001380896232841256219609295104334737217983956806096126881447739603618705159932779972224415854812166446312560323784271444376232981219537346851800199712416823420537236322402652598466966742164462085121860965571485200175783067317950697896185521071909671624420181662717639599297836841938077067223907425102556428056035404396803136257520293576673762618414950414501979577266561435885333731270793322606017640213423272823370237071267122216717503772565862438649809581381405698051121026918840908482274165958050460332810376780191438584878874319135294206432287764523631978016997222739162228062563632821832905088161733332289762288423170664569491320692077104934778106536963353152087821684895808558750562161099006231535458047328115692216643256506964408271538263043189870800793314621536264541151242634198719848902754748012788307150343252228647460373456548818941858365852198583061051137263590351984701313615496107212761609409122240293571549681760187098065822086541922226275287676703761395591681471384313635980874321688229190776285250774328382683786933571462796595847031111033617601026640966787341653515374202243430806676399898727019515381493016262495473613657449878769325562567573360689225681410205278104945701016555439570276845800056671446540942269125520744037390925186041213462758121654603429445663688453617671244155647913143949873169611110577010229176332341879400672871009904021779550756869295799563433935613660039773309594692992987463918446049405591460015817500766087472912457694069134461575375055205834153510075309895217370816434155488423147382195757800489772765672037924179638332115486463555511406811787601728049300784934150980601393706862446037393817048149311656589490386939330088409877268347903541026080328854467269986245574698415764421498786302796545850296138317058317531916041777937127248378910852839139158898833205177039817094272618837508560122975858018998866964248278956276406775343204147812801098429836365140913575576235961276749881098324161981740265364885979032266173885908386251271105730580631866385052392611197449583404689277594523371774506119982313868359031269865007759006806946725284218299584029734459984013365089946767053614226758289363164281616417682959770995152837536017202906659732940818180247763597813177292054198730010644503455684626639260132122139913601568801959026637314740175874488538002134068877452013877869796345674884988748332612318005893633094816960571727426445247811348819199277182894652967414118641370736260507530566021794250030831238242247646323336589637962749537078906186505381230216375744225305490186373929114704338415887394231078645422783487207309062824612522243583739108604904475620260194716698919586862045684553442066196338138242875681834243017507829182751530919825605702772494855163931161872440869478849679428720122359708876936135583633725459588914322377768946336974879263305931055640561203494374801645189596900381438944079475942617611806752467999487229695640338122288117900637469886543017869293770963453824902170390583365069380152825324466753873429810281332492746990044535506256564431507162178006530359877738875258802854053021440431350778627403307232913463524718793292834890016968314345609199756609088234337097778557133423396093742260541054229539042958277403364787421001414409215722740507215298944984265848576070272300533624477029716155019881151649120235114581592876469988811329243544114215704981927222133257319177971569221849329454555930162046082013492429440993336313723316264622124401951644090099273468906919871470904844408738801422966372573766360953848185659286279595895667599413530963994762954585026028693110595738149754363351627005407143302132345259097040492184096930828490136688125018327000672069626391259362482168596049750323749976746666268681250715768759840506657236764865089799450258753463989980287724780929028395918367369654948219520474762621966386784306991428324519498680273663929828210625246305743339080606488629735983185805584569552801612897188171352053508152294926016533121193273958411615442795215882967113495506688494423388835679395850173290954440487164418506925421760990255083419772851800400249112183098782729647917091466985045418821218940636839241490061499236663875039308218299413790304331097855919882607758699309680267896667501345407542311585250137721573939074816399065706181717291934770796028598291774290488650567373552560555978681128438306288938352705322816399223470354024703835200606137881240117949169695538655523354687135387217371195541482397636822888523320436410541654986352801600664380881168069098081304478843903562750918604561127479360275299403875947574035702243529720504267498143888231772580648415739309707811156121098815576375464381115359969919648287047737466791694377430508480389466095332791538242741223595192711150491229750300488816979269990228998762364828124444717389310223658446110421504961436493990017817272862277632701921785194025162134385248896497400771689995819157560811422134311887423762972867891911294731132153475722802181478719060681631920124701072833597206815034300357517181512192086079485063436037470025517267982176213952604712146304400333904457853533534743990317060191194966680465606112909877094536848827930287615783556974762594902260673159189174676112399960686488417020756312927706634570722078543485909661976296714932953469730733496677521474917216951005994325848411233915227292233214967125207209172616348996368013771124495004272604929602675416180880604360139398074377703534923355052793605293267968455827506335275009983321683104909798638165862159400515996064932606565041067346242039503299768810562928917170523952908350182738073578479347627543028977011387793486946142202095119583454712942953801957588606103126326222995341250630631038400722577294524871969997651389156151034796122686389085360981363609802715440823980943336169794372397197537126683612823168371345310038398169941325456045003189210280750548821001449378828490367684131153993353054525243535531440704466590651423682257017538215246591650909037752413754588673153614619091026472759383467099109139381834218949515110636888579577009239524422632033814964213118530096211361372225923888133579688957647314988897376663590664620226640295476538956828926562827833360455669626033597337097815286963535887593996707584397023113344579617914180636522201523392919845377491158277071047367148967320415400084275758351511037481835045355126982213419184328878738791989569954525652044836769385608078112934649549611909037152292663497112197777347769065160834928199559691211763772532303485558083259736599345977394304720409970561892067601744362837657863819170628560815313108106131270077914837249573927315575487769361036762361924661440442183536034312360483437841968340458775400255761028137599052327333161474956916274736559569028498341862013646111482981343416648492950008032880259899720249503048234179790007384491273051694666287832483531005380387562149061072426713213312833344250169005956165736979772435680522449600182815427860286759870843519148306655176824360428454019516462603244571846226011708349445880097278748821131523041150556314716736530099743584578643355070579162956037554761833498048833248597493735713189389629320026724154852968803838330819493137114981447929799272325184945795514525303536022512170702151961043234599051857038020179247575755055145726557042093278088119315792492027189764981456408390048807165618997365986131246427332489783469837844254312737116540231434058139566439389110959502309679651192016723316424049754638809865483232142389131476584325040447428131323197105823239098385801671421027389680514853057154960999695052180682558575877863594648599019286085461036372178919365884801379287925593095291563092737450065415736123953575092683968554164840595150136808280525561645668551578330385123973302890839393859012178284369417549568996330627344106338571108089783811208820186087112012460422771416043270347172437132585449640449111321346812992178642702506223895945329865395102527460931042114782510232038688494306259067136465848921427329690347156162140677778348904410236554934504105452787144419606016234323400433393634814344248463845989179758068383732357876063361020759207543789012234439430375974107552605162052407686811835289418752330290655106770394914085919965686664494296347801781862285749074106014357818747111287569283483097362252969413268798998414590187337813415530704903288404496706820197486768010553961760305273828856031827292243361569187832197441479138800238070810852559864934420323914944984382130337801562502055975573819866044284564963529448719748911906996439045617706403198787695375290859541277903670024144709055022981038123870151741880412719986912429411606023371371777798718324743981055288042276856403965237805049164046343543329094559372892200276904354982243231611240447339979440171039095082956937084033231295358162776135172045917960213066391711787732808677071609368888210948242377850843374496663986012267232535983341808134577576486718319882159921284367192884445867320341018746603207921564298453427419224989948560999866599585723711469091521566176858171221211759175154802127064952422351303172249144923908270938188280366102245434845168288410917742784766106956665632257911537171939713523319214293935158587552272039623768810387975245331040747500017063754193074915236804453701709796385660737008886799400962385657039159586696314921924645002205363809128488601896889724284496832075617148182172526910082284246940510641047007008053538685531976693485342903543349303564157930896589153076176651402425208006190722929267364843342376116661139809485973045801696323785052567045534991247517103022217450364217491111915392032293677355920037517104145016000691031448513032491746022933385255989016625870311070980039221281525011574827511740902279734262174695069015962403378620652893568653379351428181706461343434521243014072554837304180656704124492738565942761839004594141959627579395671999333723131830456431684506425148294179781143395370736277536470126123356873480028633253402297712091802238042642791804501680462984403965703419800094754180435813682965007791946430348763899581702441485905835838949636235260629501948358655946259262305701690789833409539092553575088042906120893731297434681846358128475629004937640114575876317380965840450776260307881484549068689295210561722746619605385151620572769966517578866257093760562471902342049269378317948639339618531017015125817655649977549189104179185478994453291486316442860390770349465156233743423515188568266978408658998811261597188751871926385732188424463790105468277246194172877860138564138578448093589762099570787405383593475489012448983277649199461887328979028809484172036423860553066631783395251118926673967366724501926498441665304080335770946149272051862556750897971150849225164108439427152918725200299255393372227146867457317042116462668615806535921133102021553841361294927173411733773036132996409978690080983877169608956981494104794829320420249192142434063542101132645626940600075085556660549863225699955906028842079104235672858434485670064584513246059513597206412444776116195964124885444148064310698888292163030654774578947360922002066030227595433765983647508424174920017724360212618182435607568445439497842993278297847595627500355348901552576434691988518802619965283440479296596816775544789989598600547981005647475519153618293628792651602996177496992086138082066822630217998694227173519058666262991208270373711322271805192308956019295616442269554946649223476653734158706236983368021856870326826031477567201553019425888491320194370371291540931206981319582760328768331950292051946838577703977239025713216212280305636072006988913418296024097123133401992269082209786567073020686077892209650873318630930360821136575310971995643213611206203553273356020929166642351708667296122742416843970439073278423744451700576433477289489637288716948530384239670828651639997533270913304025424136930143414364707850642887223279040376629434881666244684158788870624043906986434300949644767425234649835892654516662536963328167380544794173643291124531252106621924079240978782435875141480504696000594175150948148693353057321974796680942404095943614799740065239687540964330208185301373367810710885458359364844278770935002809151766284108439656193787089558309633350295632377175214104235418637030471413715036475331932962525738846521856047346046861885982135334359053964703276334946840887128318772356594834590970854134096514527072914792861278367360180501110178595364069590176413883062619030738257395898600317391842683983425612076002867489358778101713627877416844506991328503181974600929149517760025682117512294287406629015805489039606708021236648593016580965598291683457953783579940881423135730425142811731061277920381441931273843370028263638850527141213942900115405378646657578035268865190678143952563423218498611089360757865878648445143066135861703674403036799519564772857494493833251818352142030723779240687524563698179979789032401573037473044525451877922324173673369438141881136408590583425325994928284309258261353113670381656217811349913099713966559025103271978667903659661974927552684488909713560504855155205980962881463940634885803737248492286005147979795647887795040482822896909969529865853420423308233058392940209487206247964171267770016618959569607136345672265345708928270422666533154289678176799166494054718533444929464196322043428888668410039028011843885682373674055739986265274431228308444078232932641885252090486848971624760339235991248082577122835633631015781185581495983490427619292669428744269988111826861015609490758134557555974492886256772962371454321096084775034341953179181889513553423329241910303836568536794088739536807931384070410736634722791537197024085691872652296772150391950714286768739955403977438836642166709243259224334455167225042016483686900190037521792953998230190527937532577940067521077271912166894791143359364062229467972336924484591918919837494731863931892437877781790795717849560396100239598467328001670877266241521191939485564867342700469990252947192348819844723275119201555259610331672329693425549316832523855709470791568266406222366328355717990961964700913813767038203978539734682854636069384535952881231152740770157002372108716523137366756117243226169271394514998337308416244384744271926048984963492309162518894984734321982372443264207964830272289904079674955490944769343760492874400786869976106458306756577382817132564916970234999073008692786018269624019646060437021491838558907477278184536808035217948400334309613293195300316036169698745726637090117113434597951430156676868504749241010657537819819798433036733642141757023696900461504034516144340342241284549641375172351873596665438039311668330635604698640126407352913735646018979961254969306521596575582997362182761231353351369309058147505460739958671403760237722852644554438969379062475683057322983889174341801388389182643606444182075212633780035814555322993748980671425402909929319116225564583140304457683635018462168320131155243248693997466126266055222379045979913444082443670951577955040456345477727877370811489846328702853557430649044071604265212586375166687275565102545074811430559472619391533965545080836715615067593669975407783807657125670813014668535257828198475055242514050241017372123088916776528035147952298201751514266188828836483920981387477616613712876789112092578956580236249979392250385572648912042625455389978823522768028484977584499878047033358596210179332247244124802242103479208756312378298413933903367060734768231657350089308894068700443858676532856814659039194142205618865212371304229724820626938578385016458936391577567380614224123428370356299449838913747501580639383752893551634065752346596666428195466074685451932105596905569712064202905245919848697435548321855742465665500086631692238188402024197782835249619932621079684410355383152428865987425805550624085221919986406401700507099261141498018356501120744921428972874567660047919259840447609045012243036561441163902829745020849302607384630899494381955819084030921557864397849120425559031711083075671386983759826518152355453680278695034645409341714675030534707230011167188789438112674709027368606619862268347247827974437450277424493652474397252427462615819228928474486218046441369047837858057945439850863961418552904862789646246309419548666142150878200839143162367254963590135256824293235346519621322189256394311278755651754843340916700952240317003724975808756723502100132250530539892478872439476402291890858828483222677878707719728214229359112995309420751307047959538178229999258134975267102637355908109545762043328234111761431382933629006275517313871189632291693230950102097010952740855479705099110233218917540259526621211982037331401744605018454229858008572203440212987868391618940024449579317931448915531030077692591797913309701451022858379348023362362531846486778015024568047912200310078504925704203544085383050236737497537891508696920306775152171272553386518603275369946684665481804184379475850029006926716581699279798541430020003606395511206521804801407184695076022241135674354543637126229194796781763714575527438655745443824072639344450116116751189221529555065333585589503458321626817847308443195944458072348637258789967555470736870968068296089076409775078695941429485247588903509450086239449355046168482379316372175564206585653601652140956273332775847929820729717052164758847441369499638145716724823707863874699469833525984801292510750033166272089446948847529315635634252190550041632225872138043543024630069658954898586176380531341734533021025600882770497779928230787432282434595732736540664225588854152449090765251642467247865001096812506474846829563489892963687798522050788270749181504270737912847386321617314248280494737739734539963778940937314700160552318677766511008728407943463367541322875364516199214362433517249633823083061388433105999982203963469597501876829898842405548112071700942757528704204171813174270648081726194832184539728153192387452848306422052938715300608629504908768298982382062734357131145592756928641536194113460432881160365337323557936176600408050373601473907907583907478157396237836887348620538868012325397450923450633822851571928407915989978070093719668297271781694464255311793009429689827015057775251324305264226266125948558659863813713247590541201509413573491455881878589840297211134131165477806144682198628538969605632789708133990186421313638160676420033364512732147271473240949412713263067429260304425272492961482848857363419680357788440967969094539001905003813216255836942464161989657075277847190825767924956817296516434618242892128594431301836372234458951839943399226208873361244886672220827203363877746986448733562677670880856013618798394340477353093849632057137937783145667244572088384877590299588361241041472843865205284399796673111569241797754841609616580461670796037009849118610917752825202051897784111009036638380971109861939473887131697465163357225800540456976424490551673831367007958237759577964249306418699185798525348941566684246125365417931861857635589888847768580723039164336189333241392434047585817845788210454658180420816873235933585725567553079554187925913245593040676565711702897745477705984221560022707485713529647804488321874891120995726867902621910489187286917063964264524538311305389195387090670199290780955101522715112092821388280212269702522532622081066363110598307654117577284829278858007228705602985009312898379862913409373799384320977287264304558465151816991366721168990170436717327995459641547531721962628892607980591525682061187119938571869928761907405026029297884333997386221730794491371897724834008555406544338176606931873121882202984712933964289699292533021622784501635071613803914752369852040801468844128806227308650650535465605679763578122945223105638664160569636028545384508432394609505287062943138378829105950305933080992751176377815966810612635062337327478332639956723147579505360241405957032513030986829903729071389257280921171636167912017810706653632403071688530598584427933970141372623783090695930697806313593380323430932450790311406327946376817215227354767649665030188981468607271710049243856685854416183088557453803054835968056900073951095126545973310433902740333334790644444292066576750182329531779562473854438667383807232084074811581448174520737610426162648379093389701158972890578171419741000579516609967459280144129845703113665103865595752417481383724599868811787140115230265761787327640634832811895556666675531225680058485543297774855779837976435617525878312977325212272864250539105873321682695933908292847417290226555928162165431731609147553855063337093499944515584721731283440780001107812785633058429778736019997510186298294122525133686462316593381008996786205769396500359720078790791586170039602179638700172218399262551621169227804381882645327973414544682879832708205946752847070719640108882407731881903035743888623186575673929416955559503660965370284238975039627626865059920228002336944644107482250334947634393472248917723650239716542539406931388351354526018986132739004118158202435596753469609345541285099766319301985008451254119098114301236122171370635111508081411970724252965319595128594564836163445673683027052948985446451467760941234144176335695731484921527403911248223473445306153103199570087403093054660528871831588887017969359601971391374328108157489049522934746621458494699753754936080299690851504321271025260491047529986313265220616468988133169024693367700969074305919730857428218535167885708341595176212599545156944596350332639282699332964917808084918527484364625813767756007184755456641958046974403858704486785519623161358178576439161194409783003384638176902017603043468228419362776044102234276606884140857430815158174045660532642804284353862419799185834067154987928241024111496539039894793679479387145666994410476768826585114878999376602184211968064205518254053391548545865621912459211863174835176553972988202453817512037614787379540513572176856139273221442434265031661209977814135378295278640286038325379451935647825921982886108961394623981618609997398898018702158051387347340181174037868838954383934755798587977672234478079760543205766817320467331952070194572419122153251050760317794136023194842547428772115524833270062211053702766185816119515559869905517725852845524425980226112462345500461075020526699304681438137718198309399092658266535167578906895426400820340764040620631052567138363280181241634441833630556285454463019845389337101348915089617920110850793961097384325523338647713427002312900929411166071953323032783672914436672740409886540459084587776112015382611467817651216331614807109598784097652930775711289931386009888757246229806562305372182526686621852132253604602700854523234529188188719384520031082999328306586777683193955892946770447694491141880931884617788700411156807930994399946941581011480974464522709780686584053558864907714088904164367825061280288403315511713815502904484162703160136762310282260009766563344941718450996794901404106792220839663134402072260314285348605065128311840392674765739502960013252124727163274229584906471725958951289804338906392730130969042639382539392664327653910024588979366700317710691647741433665452191463040548088517813027327041479226977720641784713058268765295688120651683323412177964438472321400028833413914235553350427400181438270386155464647249947798889027697684889974070072941123982479554455321924510662773741308344059536501670603478190384157225689390986505824705777448294920299208076774821878969445667106646618951568251069073666124221066503498230369675258979288055109057677135686584471473849948287647013954515406332104834234834938702589873424928967973274117636626063080881802556532009249361888514903954142089924872020119823496713720680184228838759145661422377072655446703754108847339662447576892161882175074373027184291662623070257678915580015300353235218334175982807586902560042812417775160714702703416451972554538415542241902622013865092015188558438138395220966011304695817680477670007708177062908599218176731887076687208734642486219770137233530379150301800278753247598547380204063265441755657893407001707007150065890294771515691154685018810387288326088637894749324366810432949325889861199051949564285396885433508694151380133969784663645296220280671558638813909439335541544925650352156594939800274187697557292126805360060112667858898591439699337695008615642691750246911966395743030376314770150208570793729520626227613099617179930380634643867961204297705021380438826921972992267020819635575796320518047123321156416536592436547576572734495337771519306656612737836770313255318489041528832865272644357880302373219515441944847434676978266464313548173947785854607682743301909267695227196683197032495180014895244805198560689737926846215029787598960175152332049525965554785688125381910176412764804989247705437356721584189772182462767253704837395485123570524503822703175017678101134984620492225226352352275066439341208359511130380440799010198560521076186585095471127217656570085979513075278806297732347877069095555306032230515576924594529151681160158506948677035419611062737234492360990043778389262471118514245809284376536436855510597792808986777844778005303125837493526306811102669124106596396484787757328455858663965593370145959665254911280777005635231791775162097773872210922044612709086901421536451225792300939300417868595047005999203021133174796574319555197810011087452801797127387294855606188960192123620103915922420105136423004579197282284647720882869899439794769986705403969030636416904254898277598612956645260928039120471565799578990887467552492241839542344788016173075314002012533230410376861792527208062614718625963943437976218875984402740235132190244834156622272604670306419533250703826717981039731577882411713989226406583927235679186536424107281794493213526083217859396819736626792376712648737268769722301728241878645704917181040795647956474949361682074314240255602579946123331805512011276411785000933828142494736167885974604925810216221094793274777130523542816305447032607576561343713080704508215618867534092709434233175471965684237928918489732749878282404430918038209569892519039816306489514465311968675561808959727363318338048489954597784401951286173574553138088481528968313600529180804061896999484831475019893906566392878120300923822830480579746657302902171194634179709595227508008045601589948435012544796766485421003975014084292283123459229475447437209243858304782784566747196884117446213671982317847253942305912289409508804285100157498277697811294164147617713024242114292167899605406742028117153807370195774941561984223519342448921183532210579226607712100358027535880704734182493110573299251623351574555275527730904709140384301871881440426600564386650172186347612096382122340857391719890196470593620445693891593078692090583021261997869910611509368543037608724345793266428909345080717315344492917886553051281469845423113671052924252360101934703775073658233944553561813824582040157811496831687696589255907976017854792525845410784070818282620175099801130668209413660706959606393185883516816542245096738578136757187131612829579993596194129339182248513319743382056771590496359593049987635266677088973928477585473054227737908269275098000969824303977734141098540794812077040800518461304306561493786822486669349042190395133153972640939603520508311864081091743557241134519947913071233575333030362519959320148716155452300994361303155919643820082861097554599491270612231493582068199386296054445264044682007901051350643660908730920242861840527656642337204656446239525730112060925174915723775729498953872769687270477587696431890349539985792591384770707378240377543429687342890645574777239952341941468234527367903412797750805585229897694585289755319003545205825019555941798656279700229455270457052347195222642892629925523809378988285597992441980535590981084662289436246988072596901268351219263258471545269590703690746561540994557162704208102754231251819351518968920570630989967484940897449444654123611008300934061671740573811456192285482802429589045884938511748384482454881263868820499953516909078164532465540295776602287828262303893790395993645805703930309423814277811816980771159012411281222116373572811811688725287765745441105962819787292983010060892116744027804062844079413699065808063461732157147538197747977299450440794116236521453634401874492547801931578028229280350030918179304639565093577163979069457426435519282030058503745322043170506577063050111311087014839664069129632354076289166795374848516189034436210743338371224102339127749204720013451725849502846874905834612952316660078409237241157614985773980059081574271414340315856284317685917636399934005440181518392172866727146134199844473805018567812433575527856699227608465835495211160813740961857021453591467085453541001007961676743303364144099888946280917757049592563881154267678746901795147086695840934537648808548724825716818618300857080967321537688546069818052004693534561351905824960981574364218975590186290937399863231187063091405545228108626308956501255834033907364315363735050401465920457129523482245786647282866781865045167644812259010032630205372355898259282839339979344885870575918851968193973430545418631011555385193207355782124627181799146578641745978352546494715055980487086923715031865688300435782227001429509155762208726308681537810172663384329366510655557473161582995474198247940379727083973174545740276573919779874675775811757110602670267565032247990587740149836284701563850586196435816556078712367025607679855507967411196983028643376552553060070111973871782275964728970143937669759433895771925679554953031731967437501226502331852629920693774063359100412063608484324050535861518936760236392511113643459596783834601601934623406576640114716127544577895428999030851602495215724954883260528181438638706041329653183645300885668104034820698966625636306617099226920698016791163467507122276827548093134118248683959776195263251588160813339088526859236353931123940657709102934314018210803131696142587617984871510420058705599752995676169084975974929057669339186885560056918159947431774700921738132391718628831562505643971640645506573505750953104971254055906061594854184928390500065641127173815670305874027560905790870259393617920398351746662933567902225835893665781422612068343290348736062266446863242852865772884933133869277337132962590446810764492258946131768253039242451674010676203130293921566023706021542130729816552151875519712227270338298062698882788216307219586890534804757134406719646912496897943920344554968025856639619873392120625398052418414451717294048259632347150806949005587158561586399804709455596211159312011557924656229593858799120742054876038190036238610567161797492977193853051864490829142805944350340329169116737831858938115992587725764392482161991418962925621155919376185293125735075197353768658570500639189658260960315221359872655230947089074695364405010021896012857604450263840469201931053470024843546672003417373408456344980993565319396997918807467464654816615368445607943272053467011143785498744043465649671619895611452230579987109137136689820651702108780095288666294851247196544676483233346958916374517574736763019845546865135016606345282840428142937254498451976123100107093809750857357063354135433130945045681749346963873068571994810294476326924744293392928929671459484887752383810631276762254025512485795358678587383392267746887810665457505446446258689424842854885395207748301987941062756274292028494523203537812073719183029329550820542165796805941784056953233396429370073495878880221764517390054520623509057046107501184516171814977409712212644870308090841628452899764759825583369646946335981851141414410321679432537328052582877228195760729746179849029633987194023694640991596871464120851865795470881859770189420103035685621131586968048805944990956132214934154266425918089176334179931507849414993492086989008962505985961986789523340795524468022260233864172111210363804807886825291276896530999142202652151606530730349979010641018160280584245216054942280717182631315155531619790686670370829578597818843581602953799025722828219871801242563678876676242454169154450543931532337995168910264582386221385915909829057102457393829915765470061430270867168544814645100809422936372363017790016831627615015270335668893999329625617269693914683461593756904097778971204021961533572333339499885458390093771173242474385483370457396721302086325040405857319238886918669076971219100811945679148027808798652118785217620220508236131326989419361321830737360220819476545389696165524848816450297207815835669555659804766383076055006001216806856824821135157736261419722875617958566121515579859799911272626212597094036709086050318582668277140473549926927755169542362966152360727397362367507249410951345656174982568597906187262479532194111523484761275954462457433285605969836780275463886229523770456185190873722641025670982126510060101990058451087351129130448869306827296885269614222939890071061944436120835504743041964513065892389344550206090615800709230851512206018913694546773879391106966472000187948696206074326070211105896937925476915930345818650270071462309628037740965042748187290153540100343686100119577432604589211334088917792042945170980232363039416038002831327621319373129399260249843104896230062964474169499115239180485182711077676932441441434712519404229585289850218709185315736104340359304047312220009063667348114125290481081906922853683975663986273958512967437199385358563315204678903058825029928387033899959108848113799431128055826841884028878072107049528988854641979825528312069647901452543635348573028999413190573475770159782052372360954618491801203043684506896562433209172003753163182575887495972245082386065111296036690037601731741145563689186894200312661927107789682934958018875114879882962596426090886461674240667108419821185329841900787873594128258616924877479151603791349662744155053240717258044782980018522372783449139917106073766085245205883978543901401493196274555538302905834236876049586326538877144003511363777120255218954392504740775627833015480311204435852247797141744878801369441206483058445235135345046118528026510685036581887420200989145904453594555463657411147768344183586029222342873220462249192768775441896312320374993480051082940593700744124077379455444653852335346565924108362225278847457851551169644739297676812653123831695794162512330138946591945794938936994795605759450626749029745658556868584524698702571537157304188634470198219647184828056342285822472556491171125970131586542121783844555460346502657096837638528252254631024044679323884348742934285117678843029012278018785608599127599569861000417596515664049052805959250238608746708990296531914641198577721433880167353660322551707420887906032167660810084260474110106818922346786144705911766069197701740254916824463641132279365426217086065985561923205723010351732306828026717922476553214813011756634675715677975060722861073530264741659523755462047402788020495834498415675068050586997036823978229565742967603698826344279826364406365025764284463766280213626906941169865772859292709556297421484554562438832416594549345807558979096745763375387520067871280855734471695218922610320064294731591482862053748256989579457388413317174018373179110148904926410746919394626689988022706612334614102524722202597726319341951589265827046582869155633010065644547525922027795036548440623818488586986611465886316196184964228141275680335681975591209147338819919960072893922969053213257104711022040695090800379425426589123190390752063917127031065580066700391036694219770430834230528908148410080501072761003180331714993664105991825185469016462525297047708006771564210668088379468140024243956702104773959118027069359193638322377476752078378229801602790088475792123696600602335599874101389529622967783407621698241318769716173874789487413800490352299041262753383822150556470154251523746108312965081923350848084699712962243012271213327940534882876332205893983051288115715202007674621569653311228179660716020981940262464180771155819816647210925834799494462496256612163522828984501042074705410783770841284081947417813046955338113662916212912731932452411801873348587044246389515743930180017817280972190357862114721296073791162272195072394657938937418689876585417213875615223439865802412711639730372303413247469722209067272562799315958933297311333448300752633338117810557842313600653609628564297958188830368089169976199845654685912086401721737962818457879503084094892881128309699538169558834817225578667325452352418561871116625376582400327123469747185291290398098342436668144184461506722053344379538221082362852578070139041994813774848445077473389048309667118871347415697734213824872865787392686966495664048707312855419997043332979090728873041172055599755341906321591320804790742134097272330265981239150165757911395989234981163566974516636535009001293101391688721512726994183060421690943335067374255234403038838570777448399364041328471150770747581870423038695092387795730821938621745089794157271663748666122702797268019848713755834123926479354267440765798085137430215575199342341868796741440495048317869669649269957009925229393747023371233671475269152843712995395829049870862074332188684262522073035276649814743407201685265494901975256032525581102617023642904940670671306797388833397320995633143111854475173785407494940862407016513645466863125005984621649138008934717477254196210085452594216276727803201916760844536823393171714952268381728630581312157366883319601567170709141911322749227608954106326672046752590068741949506539275179580898910522524549019856950702986806095079682647615491310292469834380994422536299320169528227302353987117958936850123627137237487602087096756243017569398284767207748102781936659902061699980929678816777537274204883355806989421640220634615852442548051633537407602129779548393027101110725024577192563095493232799029930431395493701595749128523892581429301311202670964174388487588463423136394705806970793942290209912340407841327011198540262628313639146642224888556507460914255140042366552169286280952153710784657198423909729105666494468093491769700240475607450372148107590564955742185494912643294731152313071260716159387129601039581587099920759722250827268205842736899251934333356070882533313686744783915155194531152569511510753779668180437608688768768044720840649343787156125004588000012130713025273307983189617455395826885006082724205602658976806760977087153174740238226877976313451913004964325982257703609394536810206660050333173742348948380816449121366853269688448938174089442395669370235896695818328194992669379661452829998877907799736574111827375958930058569662992620298546474161186936070558645788096924849550432991640380409317390430697245631737270629193386789818310722444788326914606438575653952050745424758008985006505789135023848063372533854630410096087009050705615685914602787855516486624666139421608396693483921505507424682345950737950003848085230853723440868248305784210979064318213333665509128387588787426036619950011833074383275160030152942264073546338576964299682777263028646659575516999865055995172753849132405126128645955739869749763129184487603950914652411598237329146714065676373913335628912806309580604139724330101346708014954516588186043881184953359379360456082438150632291580039888658289338730067839321130264151694354419487065234093680934296792981397858267679464687200200047244942821443271054410041721263351296174989662608634736584373671490138460394860674847452000387905974995201467927201713002290779319043537039521324377504020692221894475354003311098070600203883553375555310427641516453983240850056840932113025061976202604505964095912961133233822559758596822487026644660103460355225352109347620089486715789980575484951783943953671732236596594671942910030127488334117388609364758978927084744917992789205194915639091509616730932062474128624063517308718550116615905997068787282923114490991037224487094795163772875213905973378568148645451968971812054232822921006439953651515847234645871025194486417366038986408654818910482358416789913870794283086755463820786357376880798534542261720750286519820586409997397229093345447518197568090299574669758036871694583181423584305102641969442119587987860438202440042238120409820467241911108488991700356296600083186507919410158174107134427009379124179663981536199024865774499214252166945387220057561945007063935767390604048911487119979727452276797437838082275923146079836936053292856332467700030523771116015347006337106988537004089267620413641523620995078600744195623855849359677261160789828234420939669755582715880759629361597979904789629923091622686086328803179117950795092176776514586117303512855922531099716673802031071242244577258261666391582891402284911011945779062691196257219169003066188199211269811387935217040030104048873478991300194843488669739048414901263124917472231239356751886382933573260462526377653887101545931129108640559294008141241751061257390789963976617577931057831978410534738613804429071380946681596950982417231446433598988926589894662630710650922465146898648706834272095355984166605526763950725755853323072178965082871963106355621321168051539389131971941079404721710232062229095652857518730989331781688632493782695078278848989424722456619719756131044789802967234405107816736611372313871424642280870633418149438402207719642993603065230430009893202072945105402472944451232541760473806478482395843895610764406190089008875857317195816486742875376039721705273078174609424387547303937748732665015481477201664118153037973683587433373860681038729148926030188905688237596293151144761971551204162966789348303825298141609400116589961738131442620768207952783013669432875129593631653667134227612822537008351102243998872122792106466681875085139538726986563524986609758623268788469016302102481526596313441830523035853023040610635609775394755688588019587673055819290938751346100282602226991797827930322190442401850313987226970252095495361044689229474930867973431591209620243713188159317079611173140479028622082001029906851399890903141252662618011168322886365440419363236709260002275013116575371316283789825580779708011653332572384654870414090190605490906674166516174932581419282015212427748352722900588871341411663775101202140286516495317427527942215441596839155120606995040037706719019282835256618970560721560716460996901172502676332997209278257272511201226571147155491495449821155689230666953809452815698324137826450640489481973869443093841399018914856457529289690166016470990194135176903679294835597757789862555523097410573613841670657579456899774249243276877979429791171620639978794339722248822287893537095360809202407150505469411206855412606206496677024743315624457753597391517499621396077160949025521206284655652012076445174525694513072672246040998629550364793772073895691098949450226933085521782578757382225124154190818302143509562757958377872833098057864496851264393327841940356736493607954925692402532080142268563057013906251128857990393900097395332994998557618555063317687243985079238128597906915550305305388412204079690512373691391949930392792240827945642248022569844975021141591672085253304843852719286617068688130074361900325234109820077782224358554636491514891640588286501336492516806319784502774827786634475040566588766811410746423450991581650509016347906267664189305533820309666898196631042730354527192834528408739373636487567155790339058025398033851825859581088082446147062332577339171451140028828661874998910906530418657335678661969957957246039176750298142379879487025579610541835699905354767394201297435254505316768622807578989233907625675409462582056414462391056371411574420626468283057475504618010893375109199396029724034006009526472870753521473563920738322032547385109634812581791342934997162076394663810050732269169876209864859988858979608463655030306032959460177973329620699718099401889761756671086638696632141493335999475417024965671544395651516235614651170184105453666231406520587421783254097713361368224619485571223773076975561350277911518415511803930845360320189136987501469831450490220862371094663486806740910917198376318670342511234759255727410892799437791988750699581933031458767485947292953765481697804137845292681486050459695821497501938292898635508764825776529991455299593522536316520321632254758459726638570134829720381515745432509093290019005455309985973037803940154256484471614532998820399272662843867649642819754164811660004556787628134250580269309381899030270284442229228833258638754521397741297352879893267483786693886171178276853092141418950161433465317414851841019352854598526550217014875030247477294998908533354655727405557488998975395835668490329373275823883913063787517390037416758447335956825701597629297836587899177117081917601024476266408540720760267615158283860085664364610819356492951190312347623809396849612878214730937155947945466705147558575664294112381583169893327515225170092590017235365462636140508940380028381670452491379372682173448893349784177683793287062179065021633647375602396817365415370272088344769659524504583589014139619468722837516698809804082185117080775537827013084815435398933865767019890088524678198403043772642239043829233731228037968213925333338939821517726153457833673259147256233376184497449303185590837104859684041547549712724301141919067427089191889124597970626112814314360144400031848226913369779707965200759545062735728038464666412609960060967549226374371199504798787841621525218074021219528858371701729276083671291670692078305766474020477072428316925780562351623806889537915341311548023415769743220515972426569525580856991874088403969049245154375036088091017553213211594346280731810923208350032437742332037560748901308399135080174006895905631420171562759808511231116868754612851631672136032084794637456804242318340109455914274377679517756501901151100429952947943177002215941331785228572850625911186752451125205781266675234695948641863590028527893157259592524870733043431687117290836868172472587085939129020235608726345512900962092013723124500665698695122764217814789014667674534424318726108116643306855215560709359295836901005340559817429627921651537852121988195174549439128976174121878970647776201609201347958672566550197343199071388881289146576097917957217012725261287984933178971094708723439884554273710474626695787825875691513048577793968971920691310888103700075197780165774027608877323157842512497855184904867477732131281750579902133211864367552878878006106101056095423607959120889151360204183746155571476324144410321969347941774284813235526857332880173988189731288145601846179621339621983352456474115782724139016536344997934934909279092242469280169209423865991035664519045828156167944962795313002187611781191444125862957075070870107163071217931660262089883204735011251773626025503713573253953248409493631031817739675801669776545007723212158054311314968551283078422295657299677748817153772030358251289364060895339599616354638554336496799688522338216842260818786177812425346979524028774998175684395899310275153127255388129541046583537007206475788414649297306401319087041194748474546568403108246985440450229124245232392108081708899188172596811763549247265067433449871958310167155186240263035753054465859209606651068902318495657547627847005243686998371892658180903719460231956508037592902639214833685442622722257231917372921193479317616758987469501070689028180089645696796531901235649154387330416389659854530319400894923762410779403708430590882953273661383989712150396595849391187132231665718887093441589710793447086536422723638047133234264303169288992383335082113340800025690910332514284580428058402242232113940925351795840184389446476921839713346918746825877870328053328955784772764167288025045531310234068183831697875990533051403647160903196319159446731170825718717230895661803413367088735833748075517415607061425016284078005220250691406505637563087069389545241405195351085186928621333756415321467200073185937076188928742072546385628356887171749364494684645281915922098968917386033522048416444621143294750701454950597604553992343743117305165339206082041792449795281634794282674876141788659078870598927742280456781333415765748141369168057763678373868880322090540894829745073592495554079178506899758615687231362395322903338317470818865931902900153801345068030832318486201800011654560734433841319034221943721488748172693302302548450342387906756860843990057012811303358882437205882117178163984140595123694165724825794648277062447152358738618511007193106101051211122212212664179520278201442789969060030901391260528044640111621421974881404571991207699991826521262648701016688748177016931462996509594739004615500256773360461428676157638167613399753585093936832287371436568080079714087037569542177372054514041989450905217882073937379436199377511251236387039316479313352464973885972286062328753326350157481755398058145796136931432641502145736389687923638189178913953432447864776232699804409972950077838644660887536239727333256578147173781310136308335005680248118297514633329293217723149955452465736532543692961907033237967889749931602947492762589142427090874227257542156808783942778906425285236214668166712976432921041880745196924788456630278740418871451176353364196687661944806222935761007670340892806004288535260954777934194950632521467676463376217357811222203575850441916153940152029831324846175750544844815169152120228165081213018950524477715066823526948809310397073529830403378623438716164888316774650267414049092656840068912529113798404701141730480312737079028338034352391553773890014051311506609681755509806104680565023387664527638308401289405489644339846194828930196039622161662094635771165993583800594125248246431917220953739552983330101937384212429846221298859682506770250241935656326446079062427554193578036798738842756456470001465827077581870640772475046701661545794567805569168235382141301528766789382245665954128096488249315168364090207795592477451034252555548976748822834316561840430379677827468551187738949746723853738517274825803573629277088294849705837033975235053794800307150459408869535164738621877611823496233671499320112251879858458173580810309271115272109671234325796445047125817226920361104116768459258737543502854317429065841075241889544059656436688428514953914879494053208746727642035869229296540839188052366284637510375423861957196225839326417392205515588516090120298882413899017091800491706531931096753201553403103420511243817699934294513436796704748349313769794721651038990861532712465292303746685363209538077824719661611470521698415334843279827245135728157388341139461877947426424880597386593620260036986388183463542648547308247982965830660561909249039110421183401717628958227595294598559012419513195418097562171962450974567725399447262875369686884806959619660832228597255515498082912030498921385404099883017897254943172118793927190667347766447373627806075631854046620140008567806543618510626569583148204627619433383005757937383109904700490620419636654168259904330781880309527970632964956083915280538607162456862146258451656524735382245956513360087515122537082242966677416570246585544116868287496007901138463729862645141292450414682779395218751037334014265931134676492047090910487981254705485327536367077946271198294948468248725971987468200500623716875841211448001431079293214564664398237702982191000386058577106797707525999584461990331170279669318250980382158372612251153510152465142064988786536138284760299819626098326058008057164455431540558779117401777476870093972290890156159042722750447437452288197022083857122133237702215695267156634646555085342890693457712289959798646478507427316999737620306249747881671329261519354210548272048537149703776199595681462761652714590034289874304914636596713714301653570824257658492200056473342126606654515192660540928810065125848523093715710649878362736925089471960191178280280370963153409190453993029772193067075000590371503607301633504934761422595221243193963613387943578842430421851134954465413628090142951328127567101007292060405211904529740916737403357950677071703511422825912348889849428923082061351468477047929111918689755829210369933137925207276754369572422978977485351868963825033772414703889508721726870038582786086993556357573922663047377080458576450882103867140359709440950873591495219841498022436320530076389453789670154681425458677631751276045392488839643639810271315735168790042699978988462696524646546433186810884930001403063134008887489160311671091597575184720815991506152159017135305694140304886036083990359277014114170626325432246872277579729274416380822056213979023859875112454566835359091394430108571025510731733514839216944074914823547959054373701339560572172798739689965925565075837731556838717320736334634531913601954513888195749310173020801532095733092917024512769734617997935043202267868530147969419694946031027520400926388231331893190452306892254746383993847589353831122558741961324964712230446302231699378648284721966957628955229962642679563277709236445943049992008441317164075883018011761266062203761681368870469519345474393899929395296769937929992452640146719196456624244467178751451244395311291683336382985778270596341396069663889670363800614603770990754860126859599316347730954609856806938223032343862912905448168303349276165663643653607028867096024869603979457653124820352063542909862009953688833673160976901218384525604445690410161097007026913462425506074714585752204242034154414780785591955776981586542696839835374175639471548847654240479357856643289708076482831198166979334427803331158216810884036372627329733445799324910794062448622722360063883723742379312546573960685997050091728837350694771445403630533647176583883663442110821045451118503030365794799842967838964036765422076219820102130340560653179471281858358677234151980345275062188148826207460587846517876724635738630742234196310147946751118505380216453992526008693015966117909074697640778134888131865371710781433745017899599499624185755282134667484411560846583647379241238893910146037453744130816338057552527206306615549043826173740692218019802864709945929657988236144908563595436462779480389737127807352396236457613413289447280206711881554446468068461616805943161928704595728587123557354794909680147044970498476060878113623591192001724955878719730585141663754520202170274224707357696341241239725126952261973367093603286740542468308836383618595844232005189055437264998993997403856237056984143614040632284425356270949259952202342372434508273121965943138234717682107797698286891209382082109710789070718769423074389114911490782777998219678808296065676397954889331483742376861441404664175039068071436551703025100742501595963939307011777613593798052240531670253726601106297852270186848986334764608510088751542527354420968225935258358989514233559666776396390940296238728945741857986951763693949041717575481402218969001199312740212840212187930275105302829787115247239945609754937166609030221415710740937002884365995593425313658056013618443747990419889905051057625742850798741248616553259185967099074522762238029299084654964542282767741758199209486775342417992429150846610122309647893216719369655179133442329240205056109292173976897513565337980660692273410028654636426390331830444835715194816867836528789893960801557949032465467732031478232892663362955112037174037539827475489935913349930863646659343056392277005648571338534615497937529940687109530476354087484742615988876439873902259516267869193679738392763424888373701576871325332908617636463589565667978166041548960064992918847528933904700813257632632033515208225194599269837299229292422514273910806403316068866966003964567002731166345789808020528069526205917325587365803034856856974596948643008749613822053173599290812801888556951921479286906992814747204885284581658924105584909205478667872615537316015136765313360848942195781852256856688292324099033386278489564145859116218447895856111218152129713654401402633476729522313199794698047389387833795315948072561735352085287521145815437053506301132302249665576765292694870390830609273789559911508113555258524042790433443924081148977566805481212779420261521273646969441474116760377837461699531139425322020301449139652650918300678909437521694773048012075841420210426177954082695091719437654757127790500930522794786782939592324916732825908364118356659114901471045737965490640825766653685704974689509508163646994293524241537462506829190592329678932322781511045358080982584217128124987755474323612831587770214499660082268257464569004864006679744647093180962752351176908772383217887723057582832272323115542345007697847235716609206024019583871886976396205909339927856101868044475637922189792855277878059654389680399058378786997611419176729162618398899015641603552792726289228812031549362926927878007562393380489648893172667145268083303413293657097900779474853133018510802259972768655068548754803153600940015252695913455366511958893758802027828466815743445382597422815557972996770436415008300016868884804449398866192087609949404880871792157493988846369749637497606475734434087997419718956053971964581661567779852480737924425841109872421696651678813329462496858628233430960108916386082734898821843704276357185047088154227249321587840489507499361892492604658580179975898833811612544185529445617212829586622173152556974592842155958993563029585791575099291915700488837207267209188182304402310797376516370533153395359512561127437909167616329801836523636251487670634999591262627588480124492587961677188608215395448913868135335889654749182327619042024407629136732692081282105439192786123373928262375101675710984145025600310028919878055777547209117522114850906030480019839013918406554496503555164137053365855045576673172005939869730977674696818143361897339422340543974585280016472911618647812186441077186195438167998112112611238529875016512625087426114857985909012060438638209486401736148944046789648637378989009189383786151426957630533686145906570598800930428448413717715143607137837356271146734650611493103827858399663860524823447290096473157858905719022218616261509522845805368483925592667858682534762381952086822683511177115917971702027974946125466337412359373115886529142126560077974692775949116562015227050294252423481569671047898919820639400643232257982676496994290429258349964279957663920459881483832071094145764093685333744525828850850283925528205322895974498539348951524452461547119210857767208669558901496820417183538054746883942293282931136374287090457925646705332275851416857221400411935289114574039241036794037998532053465000213079657803646622658298203420256933203316994770886479917802719094123530220043885250370659101061332177279676611111999904515683464269527631245698879659251781645589949174964468088400939694097215929000238961828541984903466539560056310131346207928478978138532902224638934289111854340448579990411003805044143572332514182169769153888106615480756413003137245593062594359081241214685306441878517279348729996690264755371842976232937834969490340164838049165063540159982522452023810996179245767932701642294852481428317028368789450511647143394098357610186828365806304816732527470336484451618084393840479414861741256016360458169980060744694173453320699032991084511225423744070632975721373085155942782046048579607473669151361006388340007513495065108182349728732897087911220290811749873636822442590510764604143825975227886021892557298475198518725414244862124892564857890214313732243759465028473936958495976890279340919274812749084083830456530687527594471195260008425651223299147050844590026388077139741628198111067325522340058331458485870149379375045880481657174359111810174829771543275892063745432500300227914754118841585967324259322742662858163315266216047443096951406283888581558667695180530029531816296969295551398262697883985839487205299220272716391174302432497412566359004807052421385133972815730650203597933313878712405971455584339094331145475977169974618661807983647976405443512568618843346699984161559277268765005577415974652093795177440031251746370799234813655007262472996752445413540766399083869599285887324336944277192878766173030687120706603764528079751323272687777052405394378491622663876696025331174749120705781493416642723013832802609602612019067535285891023282313539112834679875329583235449051762015516261976484756841597799181494894485317742911223664934922119914113686121324454987218242537660255252397102196153223987630878769778260491574095321643176360750647160715836478197323017270643603236552239965467079632757817810252082300154108080230606940062946513861983713749804366099320868169998116660222245941002737436375054271745382520595953291043835639876137860455368666199604209348693650443690104608603864040389844786524423187844973235465342733785663543497565826599208483905396653193949824266375953477150599242123752873181315315543051835592661697097940584158455486785847411633032669873691555023612429185356121570688442011112966306495753105876777795335256592919743592018424604888659912602232825511260847466918889674414618827914859861677803850390966583873297672192155612094637927511328044989577501399759181919732018446903989494225205546879199129545168863101556758902037797876169460413586404017715501184267063743832154474227448869399364995086125003642440774302578035507526624651914505062285117510825614607445725689355966189630060502713341558102146380658877898388083189055241985984085972727845842283160761304409101754720196853109751965964104511036502406519700188913730842651023946769107953564002736021281103732251962519108298512950230111088386443155364506864727681524898757259418734475982035546945945897164815194726817036568162046464159745413710173034274064091744713331826846583782531255398602363822771168216172745939928910042656207427876104936658821596359275331457605278178027502862921370324532828742758285469257577933147910176830320667821932812913154116821508595288793290520343857185484841450398936951858783627433999853078768508800291485742717838041339619442278564811809383835146034471632544368169279781604641514647592096249602924600953637181909190505451599091553955345391561186193107034350150576653103444165245943855000954835533367606386872363545217825551792310825248412374184242144753511687508201428422056642228223425876398742211581584945324800003375892126600303851601538907843858252347479804680186967977065826536889097693508541363920754097584567251973868521350905481574971943059659804349669150160083806808712479380767457773831250277564245053785166506444248054521122562391971796766756672518744262330140965102615967666524568152324034431113768134482201585912682758484962455382955416566861093424486441726161436427173867034744280171728212423919094192976100842139642167670611370095282255206527315398583574180246247708360184500852181712617557470628618240598362841946151233572087509524340406148737283729223459264614320939743330636561678636575414208342668056175551705905555595603407995833515473355812290639663108719736154212161128116500622502468997399974605298915506116390974161116928184513512159849463171121656980006212391614684971202781744345471311551170826181714627283284655960469386668977973019185891797740630955196047715553770434470489994236034957898747292414362245410967216732536862775846260907110733201890502743045882739725082470508472266210720164791793811879255585799451976218448920538637441649961582913734483286587634233416935491740159238174077109136887642057206945685663344888729005284277591645158461991612687953182756089753113256029763599206248930310352051302239429382385869901929076653725539426835340902964515700281662805530131637686075736774729752278277376829582345154335804175467465714384286282774970362031534534918641971360530835664887994706485160375412679834664502401808869549486476992928425050267562284160238651292233434829018931278741347228724564593036069340336031836998008066138602995372037580356128839867393869324216807466509192148097604544106161927906669037756549914779021553479773570416718619902108968523835759097268670998308652197592272097370081892481918685552681394189845258466728669911631380637143557677447829882190308446841612565115770323568815247628097587463753179776540349238553140026692222588774665926100413085775511647317365892614180062452933447703248618841090808118285043729458607898889363166063956418973565012201985589582038859819162512116804480863411630415373555382091180135756325528465267936931761956138417394351627316729680562017771729184328633794214599040173714617253118222032357059455667899919270175329322506281277542372026946808530303772082308001397792594373308150804250460397827939496167932504800429044751796230466543292705478565222389972597690084365293816504342073808923998488714819825219446682107636890272757713838285134766214083178158675000799409619371552209141783135691951176303050481497414582423723234000497779401827827559927190245062667173678551407095126651088657128981272057568995201674411447932131605838178841366678023524420845424337319944545097479625967310529221931923760017037587965691418962570893125175091958716280351056353550048096588025918914497915462641396563068188714351224885945115454718781405154257220717595840111712836705099089747607237751770659585709633677207226330083301953340402594981307366501073773584866822525425195489528098017784332080895896517414499037767644735380471482476281882517244444052110137397549238496237833693650933941793048649987447962573446354044089743270645304093578348719440602775713841440803406570129050593713285590217368864057212985052112441256515968102665275810574791205812336530983327003011114858384063314372902659703008435451919695524702898764821171095568575856907664247670161435098091325043065250429217117365627075731652811282743864972354819381949156376598929099188472022728487761176063360264252063279287842445331732424740161960782541804783017465981931640236337937257566068824695313770916878677580797042215946804189662785642654003848775699568531819646586960124161968787608789229769128461860249142403874167375736251469714479192410834349898059854793537255279419962966499754728433925585881316632826098112214522376587560499787874393345384170256010836819564773962549456490736592144677731143104783084812080611614697582897942113853091028815248485807531986792538487818261911168510126255909510493968244500108482093277681758845054806379012263069456666938554299784523795302466978610869474160207558914406369956924820578313392200046042279120667755413726998964295927144895679413667445482912835526703406777291908732238639734445514993411032055256648706463000188620666237010466257896664103787704864102789460124953852068595521966511486386736609631994968223360201837034659003999484313183821804491964448703088827783891338252863540606135700880900089472114977971469737950636831368779606391429388785462376682697477182919927197901432850773377479453872281293628217438008999185214071983401139133671268726962378721076844058096213020782945278510098587579199319932377437518351754149844057562877244055400823259959629372388062241751006905840837015860778848028195388315333919373959209495134602872118069716795159724538884125536256538120373854418425826343853824339177184065933243209333331089060784436301212361688691739611602630744480949892381510756310197049796216174228089025654559952559169114099327809802174380891799257819527558894122564566307306279530182433182861341334147330159671919622586353922419425407770080959769799629297092237547970388497935183072732151516045320865414113317155658141566394695390273327723955864988888966905764556308347290821826654387999270789652079441502602382476790906289510958603507807759203795727813623652613945264047840569666375784206521151134780543180563504941758316139614811900351475028228558159328307305100580589050822930446837151772491383278255242070242930100637516805900254689146615622168689023553276649574763325376708088464636055313852133632101678906298112074536984945569696238161146196850575904075788701410850350068573888622085770411809039352701626400939470229376025028210338888375617452586871421223328886567507446042277782127465645075585222017384407369258493481855373246585326671929389412831658596099110812057171864557167984127640907930701181529345763157661102452849573651378834204971206577574318076980346455905394977307707494033299664863700115989946144470893625404789959443581259196043202517288704406685295220565051239848645585512448889225222812971708979421935761642379662317888377822020089640490926288031627818919676664692120075245140036433929227942544088306089019523324770907046266246967033744601444908544588076934543516194840284896479710184741642795590131110511127530513215819655615950235909790614611557794125276299159226493604028990545572543757443058837315595837841090589553584879672867018961983076290800850885712475230733627644767774292846043534329474327458900999060667880875862739818624965515771023276851263484017415853941547083167631949986966900087498794670502951501502346102358493389068311672563331265249709622803391981747757035583964628089272055564146230052170603756704564587956143281906370755035240331015484723153293054725761344383306081115680918232682039465889776266311255122253805355862219150381809412071218037270560579445114227614008082017030852108891252246862210310022148751622867576157886211466965842560986940757943866442174031822386715748749526655950345103459594642247612078070376479008823727565608039509296921142116163179674364662449018310128303691612515315185680659275137847425487817864121049102215785747070027034313036383081488880659613987879390318672829528486124391922567231128433362246009539709205357656940597382073793777909873999125571247697014126558747472717540806588444118507149398803730691679622097739899511209771565082258288542511508652649327952700806639156864692840330306740174485119384943007965223693235320400206741302745217931801650323465294505803391583276109848483520803172295714913568165380463255765788982123505366666932304551624018668632299187093248415031507834806306483675700729116649705119690458474976945082508777986232970867276100614551927544526896738319783833181650208709629847058980350044600392903925017271097946611135028307623331591258956773501788030338906476810127651837503008879474964995449489779177493945440322441538322289480609211132414124248152990422914262423744103471025305168752548827671556248485281179649206817068934153548324872157206165332008057906331344383546394785706556021792761007607569994688717420672545580099052322238750777176875827611192350243888015408349958808919971273884558531273599157867698539686437543936944838673360270789607468442621820849049920459466184171901822554608371697445484063496428531851124626602866078728239627229187492697024845127728366067364229173624002025016631704958593878528257306992805499188540394786822725201890769078036263436518003990532148742084951298269543971929679178779512743636253602179503815003011144558861461187656370207926277948457280540158347712430590546904432379680125132866417564430403826651907728160253175436253853883304934688084053082896436466083340209312028530482492032091051729263113818903989582901111825972682598733040780419604835563549987954453487372253561494628085476684618972274765638559332852063762482619764215517395626339792925009631331710045308602531234670804869387093788718776628208627479225118472564293463605998167449493481996926004949169589659831465655821866807997711271382403371115064458098801496134329421330678280935808962165800943155205939626480811333160694557111417193713479076318920125713086316974930357269105548053028053262666856292758033777078044187195008209700239895430336703992370418695332607633889984494817507836977001684578180619152202932304205469050826298204467707157950467790106147767287334666280519080135678477037430449436392868529870515220901193248002313885826487439021460689766749856200985492610761534787509900700360309241492646738051488908240261775633793531338842679469711055658856384834623723877895880061935521693188695734211840368616229386846140132431497675304394939528404368913237539702519452287795245874929795723235765664719586285372752636205589949531665835638995391722539356595049868203475704735388939468822300394695835945624066155379118566526085990817648968198127792862469232361203517995498107811744171973598918296157500253973056409180324255131083047044414565984048236452266153488577192572834621337130906081551314825079714219461185188085439049769214389888545994424870521962997648439373821252378710225135188128966526308086453421361990833744537546385021684967235320346804466128317366276202226113153900420862764068715197943568973227023655753055834208948113418777599339269222196246216757720436534959107630547882730877922959434225696300860703492893345553817210846294823023617901528987983542440104692082535305873641216795326233570080522578148034521562350574122299192604857688202881426950383182759955598225394935637483371025858271870282270593530745772040521938091540469524058821937127992483826469651737096691311410652245982824183536242260810022657011899580391270438798168873263162574949348764398150177463219268995820983989335027192374058671896965554245473369181181199796305988319228277073886168852003912113236427804536775698082602611990033055714251495824710763808459024522657902663289205096195568922257689439143298448147074835043719774846650433785371413128192353368929835028780763459013796516007383602956457006759086849579706224642680795625340509339378347646389588067815004076229347142705349490021210764800417830055186785242496612827627330084635471027406447481462346974345003757270699471052410916528417666353478309818050577962487814277522415930888596798892594309844556695830698301900257496965599614941704249268986690043133019428670847228805627512512172018558617533011254928593584462919237748402037450205682903046444691498374279547812988858221573992478202861104097413671672929404003589433361648165767308127986691844913045612319577480442545217583375543906554172013213849367636209524349461341249966345732892100126664916606652619134759888548457287656559726032876414586418425324864463158602853688247468765468666994927125194326259682537659696287831048522592473783537379154920591737645378922041097450920000379261529757761042950956070012591013971954288604758745081918734518798608889992727297765849791711100672469674537134721413099717516944578775176182127981448238871420833806373378087969290084275646171669037126242521818245531127568492667609696651623535126960888712842824600481976381701627498738637027831416423072304884139878215170446882455624810052144658240712636464419615342998767541432137833597293517638876508545204437943930601702284659657647386129295534901460130407832198169638076157324086426600832554364388194093352364371514081675269434023613290568754264840368537523728035488516137713543533015046879084402364349884583596200623615485323224745538280910609598006551539165547513037681507552691681879668381959511326801820619325053891484097511037178420711666065017330659742521345692486411168073600603951264763701188038971788756820938994112519957772584262706384744271274407007975274732366378095180897416736382391711363195798656117619988181116658768128561109957486463565780990294242001404840150594819529739125932790904710414344531629232735505148522028397852466135736570878215021283068682280523786668193327195323808457662583844558987026165819517607522645463417515235079609295436321380174885566168811115805963224669474003574275293527519765097697325336953415237528517813675912588622550551392130391470466441065974754432463968941711811231166188195971546516120488128478928263806701856499807042396357780548027679802582085740743256263862151206473736080847564676430336269648883037391040086370841811943638481306790119952903219631054090348431624478300356860110469907471244966343961777345103969602749459641228554363965039565737521530433683432579241142788383998308188867932115760137173167354494740275910458198965483886546748736434366369578492522635225975555204981735621183991481603136292591256897735424535338616487520923023283513645855221273315509351796253880998199481136265470607472626987978778588481536609064230565716140004516622905615825728396558074201961236826011660252806474725497313548506473760019365059891435933899596234577136633574431229421288086442832334860115753842317480364393080034519486512804545953101309770459386760569264562403945477497090403917381014327329423383790441877312343456448666658884604167037023480723121922541143286247227058316287617531309790972585205263633424292290430167074555213908367053149986036898896747292772017405672945601115369237695070555484797004678769662213913830853381291003235489688891369758609504547341038900747605215474784945420469946932384060717399224239255912379465758054646466911316560252129256543033464806766600159951708651630303502738580361693988076220636391211789434147165644268655004196053084437270129593566965940865766855675575474364911568996956948227977176588049153299926500823143378614991157978510577868471395247626028255804542640782964572785652723486356309635006093656342863556488888837015939173201366196873390615583021025047640967111142790194268182083368576048945606628019571418175925106861129905156828950574460402625218772922925463958809125684946380051423575566743878213944294435164767987153095797374757029059088840427214523838543421226340229066374965647163123109014483615697448588756452342574954411243031459825611201850927669502142293820319773253904062118580229619364593833155137065656960583686729156860119688216307090271454639745500559460673052930492484933127992583018462911423306269099455991636748605810840329671852540638427140993782545434597617450761624809434102392622929694315708589445553460472223285353348808397362999910435821750934537614295190318208507181473179385442185479963919944831004446812728958401032402521399596175957329353807207870477732622766392567876815276806318106619168980616206891789448197314291714115513989198197547445755361747644455182755416732185683995218420088302403575764810173544820369838636316209337367955263220325202458380126109492785993604658846985528912309522779891349489021580405899862504470824275812588229052326229374273537851040586257485217926392398691416840693429764863664571382297223322527185642034774155170370053430415333712867568440379490996027805430226207757556284938697370107308868171674127718061640609210182623745142073040798064357476070541685580722014789443755856784513839175483489957061961380797534680412808562077469541295150079392256535907087545784419509643413739472811513544959172313992396771540896251040955571487484129743375558228021967831049550433390015624104226141525432520150575712552913652969746946077350773429889516973141194323733884116145514569525869421383060180573246896050145981818229666559966331468955105811564766285687403152329803869601618276273489137592836418035638584599573131920403199945274682736898487250464612079783247063440631228914374963022345677706955782868791644289694683392961643782274231481375950466605606391936588600699897982909830401838287216912312341445041184446139512013200479603355511953251961150597011564888610863941782723473884055060656853675352713933861332783689535169597844440668721398691396338575047442456203786488556283681346288420881429526516342812799325711496704683646034082974080015123845082030241647257155769712828158285661549136046429317451422362507861978586138629227514245679566500883801134904613320536657521832898312025489196432857737388769668140414843585113507283941258562155606609211824492664470652242878455893353777732917247758689915163781006978294728926846963366004185577310355336273685038737128966468366639239692509895709054715245072328319854864077981388585582725920297257715457493073159802642782565549807048616429755539971603695953206590933291047990604803730017415273679689115165466176109731502567464386633872988973420170393500967918614684933569787592806290137114307189214298627038166762118786506747567166305398321734488149096312648641087124147489326975830097012619680671244296818340886327030487747342849969081593689762343475420097022314455580844418985517831765847272112551251803540636147009710384537339034326279391844714821690915176327258617039939183008678229556846187373100038270278490375879656689731490365242221450266262821297307211571478997394541575391745434016352730954561513110865087397239183996956847896201330325180789915511053210494323678910281192129859204058075959842594229114789712863760589130139558919260006662056753836868933553631008338983220400663698629392529703081363868223963360382559708019796321750086221972483712474049893634014308497480255332747010404287623018850784875269341876467342409865040534180614007703040257492343534725451632130108397810768181617571936800958841056157150999945078296113715945565603426416182466117568376506357469142882484643915028476597387285313739695211061544746259743143464305955752953261620132706448947049229834488511083281507034160106912890435518852633752146907910109182997872710259118256813583478241686388857650896644270385627372523240502988895307789514920079759221627087508303697613202978932286505261161661432016428974002502671812057363033735981660883841454317566555327767894112826665966273560910119429053452327005202894640973236006606751586347156809316063685734229490093756620631707112549418674245313539011407587944672752563228942147881414975695903636221614464064860082718982398564566844140232881367738900106607943421760319821627595440945811377961293061916412705143421469143652593617368764032960702566229702365859426218748508605034765677662428210394192279917460837396163833708554746003573462924723090730876907376377338464420063095998378214095115815925924639784925406158376648941448190022798405406603138241871436073068266220637801738709807243889768963177918707252875320216477357255965974007048523513785312204631355033050292567682462460755358710410145803305086591740816871971345225938532973864459356242017447838667155474155861658153562444523702669726980800156406721585351291809704264599776037367607572415880039217301719996097006016348209739155777263871454274649290011145008603630269791175384950670200216634623123199740163102806573620044735807150397808959496820499142391624960708556992155386738400405620346176893026016857696590475649737691934755334804282740202068581288792912883376785554287310578110121005907730987940928947626756360118299720499855682956985195782063510440387641920436232507456746513839019132918855706724618378143725034016983143532807599762025324081410807235702203413699945196482935429696742884931189917279025449310413843004644257343443190602825869849434577455410647072042703325445902666240929172071419031439489112395905358326301379388652015938965451455894349568946886239252610469140176372820502075736397054141419434087614100678887684708750261995375295545084107490133759005060329145155970959587554475094828332818443470926072342682778033761569151742532018962035028046717558746724311309485437965685489099220728314970875535976136366179018001114835825434848126813155578267400826426515572015634077539211186476764329675643096568780069168513548120940383667252315895157235215054339684275347556309372451749966799669907530468516612415741206074887857849678830784187123609380293884536590984933215305934530659813139503842595535859974098913922078472484094503695638840030336763727399204142146391387996748362103137427496351191619445307536405649628100572184981401201182975771204214435802134776089884773980576795943453918875873161801834947410091965912575464647274753216869141780970469721482814639186320305788621267881974864530506742574594304660738955386859690158524678145676603961344154496521807906233522198282257764624577236245367843330141603770121056715692733582434934252729831618067083375946074633814261178974568520678172009753405436233180677452759749617826536923911131549819192780934984066376581912761817624176809147022237760223283917786771641705838666061754437541658453094914997966111893533311453940725321325127656227737215280638524195000137776144082940852604108183190502614141538583880074221028385156037852401058191540150712937141573704114166049437669240149753303586318685761634305099533220347322841013745419428288317848116688976861001948253978237839649879953299910432815426896126096573425039692069671942090852760543867444267929172833077881012713655757787566719707644286676573885052873238126574771924971253230116917144045728909833141012246083613319815142597397609568941890868956024357655639042188549810572965800016611161673769199644028047456216033783827927644975478756988035904776028334848736567263441551781112361866777982080488543779500455812677904232670556335049343130793744199499555481795978518671272898723721921884148728368582994428394936051984629345181765911816107060943609782634876915572043218684589515205168520531879229639080412437273172977028637995665600940280668600489227920442862085488954115985264285209723273362780856011964176912093783791108347546756325326842269282153416949310833637273243391101653467564304083395001542228546029067528279197522285397858665936112919965768791649178496881323856036944466700584931938295200730227582306594167164281651675706109158330317863456157076260104692691372648146785622913363200968804363002645629693655626638750827428062833319115044130049196890742490524096460218945594885327262668174897654054358473756867217372739345470825445150772480951714339239147566268918333443164867373586058768261947866491667805297323064100733121158855833870437974496670876967444663050731833060833494253857083669868133783370011969155447055588377804751826632330391838580036066700643009721231370862618882879759845998038977117766280599681876591087262909997955074008587165174895116339936505566392639861298717621909792881045425488606750235926748268047549753491756884376547689404625602618413038310298879211482255380645141534403268368701628311249444613575119562561760368691308151314525808212002073280277564251386648047560154767610862526064775511084877594021500182753191846800259514484175907031037187112306275967416423780639891189836778063671276675159563524365690030687654338760227425205249507238829127650706843283682849965539106298387341738254122543448836499735688502825529451557793353633893756024579202255655415146320796062588474324381395554463219563380211711424030973575249512717211668431493685215489848520363560862892878246234959910280886263748641186686095914514128174890503240639612163906715313192640812909849997203517382355402096236704276697607157102962956993460716323915281692473790078001799653938178203554601322142771565870335411124889962979111604656665033476207317537283869095406470071125591887741745629100380953235884424466972326304676184830941773123688410011613641719880569486814731899596609632828890356079242942057060222982391899999451064773920138664588554919113085392181468434764491049262148254324172353037498492565831773967474005285127960891494475419692352282087801349436045212054168687067400433123004911399349158742874859474428708886373800109552917788632304474359245176769767953359291335974041749701452103891727958272581560748748756890298433869047654566996500897079590430112443985701784815657928784688765873939299555365895442824809531745195914331802453495191440379446595534166987301954208064276214861652662829353221581967580470093147331992390307106697579626270499692216005170901265801598098219308066625111683096800835079280354057189587109837664171835143120090515968082483866833804889396297791956675997890667778836186401021994909279116082019746537214844364325336672787563872064708964386614072968881924613569146995902577736927405946832791427399347477850245476617162311789593834152104734648622201166531886868176214110962215156355096091829434651217575132187245133638042791958850851417410177335374447274476731238193260967405797764015714996900286633658626006173126880093091223562895434464936421333780070190312056940955096261290011465857688511866354276709144694186824155415524376072613738227770497534439461174316327896891444879137750272219304158513943906575839466567502764632798620305673957963163151205396831431498309384727379112406590846077504177804964070168101621789961933730310438740518658270478829471821191089448592107944708437386282797204295355304248894664227470262508455841112537149006753431856474258223896513233951612469019008041929395000692280506465143856045660578340461771910896424188628093192142980182717707836540748947450455087591466593383095285806273853974669740483303880336532591385629555449679647344461240846327133079140610545682017444446195143092185720222039198946473440267763585477774812297897720908405314713413128525657093759799693942683963946318199327650180111196846880089599353327376566899346091475062592657520740216256901185946597144296601072248883777735063182741546888487521431117155477501240529401704115476136087594952742382954523149514532237928945693956560562496161308368530955474378889217714159957809555091387914305615508388996315313956301159819230833862632999486139781889655666538116995498779676692503923385964515264315277979868500574567250699095195658181535577503751587043853721635785296433554380398390296582176264178496473600980847216494455890469993473921795280768610671427022715011619023953026062509499361081580464182632804781237173659892422186425089200989424538426000528555799277000062986508500635486938208989956403043202023232495545425728953851450384651140786504419461389785943713842373692060228336150853040445481943829212340070089280238010045270527655234964465077656301423424250879930338241858036932435249518691751570166017815684489052986145640574532505150815200702212308042885271849649689324278071548784506175936990281175689475155735397429024673575903456837576582023620380134420693102289689296895472675731406216840736471374970378475400635712934048011878418220931123121293552348395134034641345106570797714372946804168145364185762816902030670177679580808339584615186801518645100611567640995972939923865364912147245288153770023006789978531112100169225658803078041460407393540695440124360815876133188196297684129105657353684567486614533551862352473593300218217549050299883894343923789655691751276433608221673941539945958279449476744996391887587655616536926275921346768100723368877844373709549343422537337213534345146015124276165167294320228974192670575097591755059981938475442650032784438678196508759245092639651264218600287267461330484709790090775024790790233127935110554742694473900629633980771131983825923862245455818709147903562350729434721560224653314438347646100052902657788603257356624855730647090164901002982061489800572998635405187319366987658808135140991287209389537916085333628109454413720296715867014327087518019090725910631006368053016395729499933588931534272476380572906400419987037962826911626158873961847975482071971377666515423965955406824315060201339684807807087105267472531398190382252032017557834056640699121690354631334141684704432139206479368835360337161089921198653901688486228705635151398490078151810377272967299573918640490843089555356400765533714233121308085422353997934922223131227337481576235314171578616464880207213364468109008813445046481511218829190311081549115940475220528138844065015818616883723004579489882215524646360509206580258242764941929404463827680082917872167256609416068872298699502660483362253606482030786978761639145054220033352956916455582430499469574084535930504843542313851452749565182867539975835683684845128485344700848971069695455761573108599916526859287605925157947310709361580602787161701736798613662184768522968973509743417875605479881850365879849827980398468697226419268868836766979022333148779429052231816795271655337295655853190465683870299508779059534441047257220518550438713757938402126632802553946424106823609479422299546876010944856660130261925811111364855811401409593822073841938227103293981653044916946502628556687066562340847224654235854493537341535318964533449770547310753229997340626424893976748447499218322792596136020736081627614883396515402569343920157064124802682027351956371372936787853645475185723157897169877503170054031510667331262345499232398877957240354962859866333461753187981583116631815518550067572008972148754375866930246932448053751821596401392346231089265503047372579592983488408545031458826552354594763561191514663810942624496880065363170907408812013073309070151368433405596912774894367758271127327632799395122725562924759327001562223659135702445329745524366352793097907325575146153813469776143781157767677605166903003472244429210073477857161905251286662317345597223145729880928455174301425160436892690237467228046620761012541526741502809938159205308289809163409159391465145987335772241049150752820350807684991950010824692831606378282687314959045850816878084852335335008872360586951372702391564326726966879090617590585714857186875698413192101483878357059177421381941314739387894906035420531189696069559054880919896346892401347826345162692782979475766041046097393349398980186020225901455252985381676322859122184584082817739737366929899488804714735512359842577017592785328166521550011572457719274426079422587749770056728597256009735225116584736436800838262888137886082225419028972649588671328908599485891730655929304398637266230023538779579250438681513164159157309674634396563658686131041077362368711330372813113894320372820919246753498543995696730477127203552601245117756778205518125211830594584308835198785964646728833654552244991552226205315408765309309007737801755943740586965068898725868799174945403801132657652413167369365610331451779001814456186503720568667055741881723506272903855657514830829185484862948875305456863955888375000490454156821019042743096096744376098558797624576407730284915691529141401667376271095017579205502265767641250083049404248573935166301225988269980963634912724713022574396219419501244232942419731859023010442696681848380340607561481800945593466651539756169279288517099698568584688787511460686292453657809898020321557091542771161141371612466974827338150724404388134447693930908905070807875738947543985130207948002194027492312141947699035998507268989319570121700923515061549181188047705794074388980829808185992618798496155404539372100400338206359296080711916014975322424875807168682617598088375094133673096456942683022409152424874981850641601980767384595378219084610855870410592775312684637161587288585977789359090531530275238938294173917074720697185726693165216293054574341038333237800016221278554794074974013234306182665841517001808193226827831956526980777969283181405484074015475881018197909983129938126602227613375303951639982236419200559769760487109881220554448347866451649950077311752751408158346408504974415532238916789815719518956711813185408407478491337192481472685756061411792411241756800010356949224078838617451252333948305461348198325858823439976898873019737890578402573832548668270246607282932914524311603154637059367368333892548388617846742235868892666151583723564241117202549199885659194151303335493984912812214161278614724018049138680308920114381882337740134166588246048056101855085927281841463630052823012086041531609380665281046178993980705312779040431347201483400527514073292945661060535818642580451029181325344499144176277161912950308923063722819251646397205248487344468740600695547111161308402663432387581946927696083849286432891506001348196981954712664490221927111550100761398856323619948395404871057179952599173703324509701548324959683872658392803632357622418203772464777860862868614703938358096564762780266632161526609862016532027255562588416669457899852038089033309591585242937683676206140931498134965287421710588219429969258253763129537770327649477295157338034596123373114863324751718462538130161016046653866067365415985362377727607116472006958587413522848114590495987294165968671128607399425999028006543247773023195786485223458078202761807338566365303932846647575713259033092329317616958325908780162819899731023541850698565008590526108030292341553053789531972515103614670770779178871246613175068931814138870399728207418481959595075527364684213113131768788159764734488391250344007409674240606799016319740752755341117804611861817949467777217855869938260853093972671432310721149361796739205091630319464859012061210750146033767654351861129007614761834237081563599161583391670195912155003330724395312079204559047146882144865840793787945171106074307259672876269127430461371036923308455689510825969396630978828010886911201064317291432318222347121126172663890256240738781429894289029641383813864099671468581727824160579505585842758823357694023553322326660233917801503639603410208525720764763408425815748939544950291932584019695039152211718282577459870664516792742423191449067916264071846447707058390917444809980453552894595480914521249025334353004032253835716833480474767746414618616095472883299708363130401851308579805533863128320773854060836513081667287184638402280580470154636239852096934712049119324641315562866336988080122078610629229270700699380467173226419925399241953871645509870147086089691510533079750091637965518817127237026779634432337807255829170421784494869627889258174385538544347621421160179674296721272344978570236480531888435130570198845934811369922606771514183087313093347074942292980850455055734341821867264730309025409595087118760124092275679073400322034008857701438822495550832160351395437047630572078517036250205329507889184431664146640621179508192140195199680483266918600789525978753012196485732379761966324156544283246918578324307287604592710030403355052995698670719128858889036648349574284709645928483029613956092175320472907689490856225307844750735059314292346737014209405906566075322459959285178301693815305859158414862836426359730198597187011154713509628615311049660939986610673023291197110816149408918175846428901156987206203451215637003239663951597186904826101039864237397883304358370479818852764915575397289208139869457991338243590510130368371727775213983583439671494301640923339308404860807655525238842525827001700410156312760498615352990546852269525382442320145453829457050832591266617350649271944207899661756335826242493072047711015003725721354211516299074496436160267616522315510323877806186935107949401322510486891762131130201034614630857626573345994044200984140405791254045839345440088800126475687665854658491422350129599240493031261831552995933438711959970995556700067982910528180460004908878823758601988034085749058749848048522801860533002521632650028416137129422461022403211753416025510701098975395082717457201068785318767766458400967846133717310892976514749216257316999231532909806779938480148185155099554438511859912946665845500655339661305733075091501707305925747143080596269277833534715068135574734539864779948722747498235644448452978580435553966065549518948060158221084821284510400846845135182934604870402384152859648584054546397700200987642223922910479065473094919365946921107515005154663981589782885130610848476180894764609249209322674645823129035604482793514493545395874152987528566145826905336952988555452044817001732819248880001099421250777403016165675102180223735031159360962565842734204917385672754646647197077187988438754269061058466563431326422757671598521506456878668748697399662165546697846806667165678441187257974623661529695790686959287113542949326203146135918305111476742998084091824005223695307943668590085477663745054383154691887417134598001135063322222729103466424380496501446818563524348980542640392246511056033015379600239760562261283347887079734994690797898462990722511775596535559943520197812347824003294964744149355955821641661135421038740445639638717393355474194888837168844484224241783569724435222518795306539146540836098409881626387468180071509391851371506676719355533355565089115832259212229218562848310839586499505055880683775723405983836191332165951411522714438628462479652344424524848727722182951118076949617825423569765304806060511760563658263815452048681577280327555458012996941333803914250941555736051216129947630818957784964976150443348196323257099664132099075838583888623924345959707981126096721356691506104503332189120579129400508987423506243306139847717677057141182206174103627938546026683647706321628725741035833849407079889941753825593517882971507867280187309698637885487602797429429945293331863736445739202095984268752208047734284257630965173608512013773688297188052165827365161841366887821145421182831863652741868293765836632029407085238208673530562158291597777736096643916169154224238701238704980746515147783126131357223117595308184871371878439796144059611275533236058043953351591832416290829077842373105299114467025427206234318358600787727996455637042984020906782316735033802654678870451746139422514057311686767008289416070362893959286877181197709530605577906039258403032848750494569405309288495956488070369239551999677101168627958987784334129927571155900538157282725309431339447646891926366844721840487512282770358847249706920919570736494707033944375518235511351685780271505313041525537215707573244061422679044657114519758976464573718232063725787339266130629697317786543440699898551767905856940571575351664932265067998993387206981932773038787248451485227700778139304407923627176545932208440510791463540035929678997313919781776276210926701779626252937796350448868802347438845348403908063524800338988632634456278751433418182167106157970957085121727563597799156022374017996947576409637363591147179683806209555569913447102498970843564162166706920891768417545850646494960503042266422168178262713145620853847791521273053007836361333004679361587393386254139977474205239423984664240272569161606251789775151185481210791210454403899283504027776597219826327647063112978764099543106290795822638874151866125625370410368958118715527143091595336237809964063996098055132041559744204490786359326876233432457500698168615140789222446516424492941001191725638608719345895010214801404539361953155169057072291875313223577379170321986314732641405710887673353399704991599261241709183712510054348762630991855933532919655685163774674302911200928144197128578420282687726129658217727126745688909497111879104007130554835069907943663240335156729418775373774091139931600165046862856113805601429646907753013505175631148286802301113892246085988349143210864996934336386877434068899867035965588745683836920078322709774105201732710919096194002200005077443228007980360462332427756410331568466703278678347874004096707576257518453879792744570988517305125238091097810892729555368322083718423683422774029759079738388666086012862521290307968092055014760952608953760654381268098190670125433768366269542105597959569376538547395575024824604371560777175298464864017759321084337644127425790429357035034280207492808583824509494883358822352664469586075989629158745576413337839178275645481627368350197649339412654883159472830332002014713048430422078677660264305981274780485509833666136551253635488138256329037199486380089041883901774626432821953126579459400172567422652377564492998280645613290192429731663100872614645863776577557271721174497242034910896271206968989733412120584332105569334239879248943899876389924726043507372679468016512545456174443356813696453424410631270364024364667651512043987272460559780938390494653530902179737393649703835760785580916683904634323503359012033727744582532195378578804320193712049682942261481497073885520157149236721633251458577509907323681772951278004729543082383221544064506542331097619603534359416857631684453515945058635203823557941182074271844912349106716288527696709536372731248039036457405641714561887392905241410091988271819305095206181544239537040509833995369121027015221639621387531756322907455787669913947202296712042846801124425418731678101391976997326440175930385206887206140113636142099755562240369757574026866741586721373320761273774440849980125041624883726545362766147065026926826696833555845033751900085412761064551863752415866680304406801958377619571749775890314824353488732601219552675113097653094572997777402574210542541257763093104324031468717618509759211702065154583430906371544252381413454616901973981046317065037049968732678561671462537998375641001647754629737300960724738843677989585122102809940879739664396447989724819036534934187502911291970189123485841462649477975818768944714034618711365873043262969631656751528731193703285589858926149852521438698438893761467373812908040153739669214535181291166615805778288463566345566570857632589091704618443089462058599136148544372526814280186838375688763754520904118598039022223435902319981862216770672065700126409750543420398368458171201096103058420243401335249563731577579097928094932907039577797197353074500348572635237234957288884808325595996168007150853247826311765533973327556625525660113480949157610706178955770213003727852989564493556517150752362726444235883569119363922394393963693565312381666896681370829916552558302770069591701975493417902889733935267525376419204162136799668163441922023351574350217950650417876113836011426119411860210060459978150121481292429273484885062273884261177284567046566625465548763678236371669466155304808159725521617852491243659299645780029458523210101563061970289380342366004724353647265223987702395407783266413300985095512619881032118240163632160220467906773883957082626496671392189022353998604637779274069632314607440157209977888500686803993234541608351702456416143910657064530711831451141353930423052565114504921459070171291884256297198722074353796076429401405698559805749903577038830169302296896077706093705049387735016636298317951741167762994277145783878155133719056300077972947704651573031617549748286881772022362055174284253279056536021748408967711443850083276003498127789488194542527936928615523108111410998081347641159404389471379082836618681951948567653675275691356432738406766268625675505958446433393564295689155814792115933413786045656388300682252886652269252605869293466773941283087845471385207034827316648795039136257196884029656401803354987380403507688487530731513352264392270282276775914326843469511111297967209185182279466084422590486218871576814033497102146820301780200426517483346794052626566354936405612644913776586024363954317860042350471305835191787222085115787784863970774183475556265719943206504584570186380460346210386202227781268394352262774823192188682692749769517979204218404043352585923413505230606041796423627764622893310567813500347650643171184899397570361364301023459491720562529074488206093346980950162527884722327616846885322726888281368388381721573697861818331573137209534362798832201569982438833221184848355980826736708206070123378687878694157538565732057573896094473723043282819137204288631356538699453752476698273673501198275781364015205643176825513938025355914980204073351832805861768961190910088042936541817491420801440487500392333163399060588488084129723020022376102462856520487531739106048047402832534935137823250659117566128201286654562999387070095200618298606332934216260348649425041108965063827680800595036541217950624582105698671774813853666131277428284405699278510633992371595432647750161543971798455802214539477466459228150633023304141125134608640982807749661733500141924930258497108910404096729486966758170249936796924279451185149114763386531524455867490792621170130362234870498922184967708511257021970310980486094299253546041414059594107763903695160834294672673185055732020702069492671899203591250450874913519032119197722669814968491644941630337051657798408383809551617912050514269206830020521218024790040570439863223218981028162740844340038947555271597165599209838123698370856719822773228607657302157704944845040355884923135544198703071173064937495946964752911409110233044114618886141440864520663415055066537374924760745372471729695618424506502733606459223550566770034993138269877886030569604755373667096822246856029120463306722857854236996109090677057665485371528446595924880395675592676579461091964139925729151647983451617920058493999693506362102406678818466996039467230826183167474569671935123528248535894434494002151622227536158699164816512264927246911642019038792446402317801215754068179604288718688516949056120800935862321096814983746822475572146476260421555383462291630984786319689306707238723781616312834473135976848639885414511707377358771299834258463739143661520172307884044253183250910099140004958350638432125729895199792767914313771689524447821477199331732237218385422572386960182338788321746454538665237004324996990143255004459907207537948671749626815632742113128431627377171193936617781847336418429634161436478001743638033764847423081333199961372385372269739285307415918361662268723077881038418875633460261360270241000496460870346602110677075318346267845846275837018082883887732497141083192814155579306212954986088414004131352143666562871539590733943664442258414353157134451248705063826747936782330438125312955432636090810332609297225771941918290932677520635504629937871918617474669542368763652223021547920955661942745987200592314035734291729699241240596920924883050240721543589938466846323585745397373255291240824906169326048361588246657064035843473038146475724752893416812701822396670432637960322874245460458370191578873556084863862166852748985769092846311679250675155075778286855835784874041122370751867704600247195456537487649092602168559193669000048226919742027067779812239626885059508296170053205177226085116396382761116563706383980328278620867374627235978524953529036917666334375109119729088801817262724425758736567743907940503430417784879292301366310600820570176336288890054193292319045391658857036162208607928849810878077304402951057423242005895645409332085279939838047636432256714246837067284774740333006588140748954370123187825751187220534222656827728550986616334131447028232550855113586884912250719433661854277241109891946205850648863086084389979349545439917356674454270840961425858132954346171125433957684819952394505322326364119919566444277266175439522248077986501814152817114388710334250548059308174221772096183466842074942768194174506368310122376599064731952587021087052538343753562725466926674629014811619538587957316204357688310492962726733196761251690523603233218120314932652063478319525382067980955361991067031391250032967603250271991922575313483060429759443945327365164124342587803981127028927218086121108525006380968202336536130700830082096476509165291246177009580818641655632012745775394217873037548383772018565933478521160769496931782788580698892856046292643087784729758133746474628895006295960842594907909232753660436317191427293021208325159239602664058825278502815695926966664299916630102641256123649615238240904769387860524464616043887502147438174381055854293020004480922635548010256735819561059959741816521794199717225474256492106012835294839903022781568319340553663981056435802495171221856316781897414810914212527831407887325480414805500720492641609235857048944485388664553048646932594110719713832143947900916532719077042500890243937276954574137564424233778437331232478209011810831489322209718711003848671430717619881241932189791625841498784864596682487868450193880984916930263086211988558657704669475176715573174916352806467237853253934190042722475267048603080328661990500140939217385434971116885477656972878697229081210325447867066387585609617503452180181361018224480405655246353803342391229768384867426630144888442100185128671080796346024455635596550313326325065077515085167748955173408614996726442743401560942907892225151473926484846607010978112579662873435014385983780572500878486347275521067708939030126488965848308759642519924031699906128829289400863598515345431556178974560385484631265987771217900068817942250851710760352673157387234657220113549987438806619940907040256507035328805103866228420346605766819278444132043385688072163227668355672327562343822110169526478239688716282662300836084067891025000381618234843672128393911644187710830504350407768119662307483363030368599293317146323887780829270551377143607523081596468119316817036099827228638740615790357883871685510168581201201790942287825682128688177974786947594839826053141715399345182673635333103028332057357686172111839476234571667079889822574887767160568645449678435116026936555971990182134969923606284487189753401980440413016751536306384103523652682192867973206070322776885918529970790846660503784072350697481531540533946103012579767709536530223370113476083643699675340210478716632296970128979358123365199439246831865048524366609099987122972384052368524393216503810581104876516930200064947460561841566395919650672331455449341340278885618639887613753333807173794099206158414684744620804209520558903989350725842166824444538799762783555423555240536542239868935597825641189406097326982416792766471541740765984255578518969243063637328475417471133007610643604596670609520417774944921941273708699501552476780318571658849869370992656350381571431747961075581269957461925708226903161581021136252431459113159807710471861310922606185992732070974128848214356590532791554227327918394742901584221904118881151828269983821572912889819648670737357573792326849870733036946752715665561141635869301167134844346561654367014863806006328622862525052558005209424690317137166847110627265841045039105610998993335318626544450479383364558045491102376064275696064290326398575278762223937095843416100208097747839139695167323038640979245061818415364089839698082444032939113269009770465678937983049485745883205646250988935883325200762887537714917311557012500909058959123039965683200698237587319869279048572156192218015508383105356492515879262822787838336242070532121203490996563463148875622672333983414221896655183355773043777572468612648286673025215364901313427821011096171264387818797795296052335758083956634893959545381391033817845212384044186008408209936198337011825545493854649886880781989748680124456539437687290452053342889481259321519108400145397416216412703724023682492368697875428210109605811355626721824457566174188602974815146122523650615228381402055033163674610377105660732004046568708286616052306847160677800103057478200655289852980927494685716892441591276247038446190444656188605382473868957032730545851785926342869557264919352220016663374121180245224655881737857380803470533347250866374197180462585748008686735054714090625904259646519511218859111341769136603126571378139265188160524308427382207289079946709765269908942327335695407732390679029010147612099258203559768360484415617501359844888463441774295235152415293797418885913005567712978007698491327487856956229802934852429733025522315299834546295488366618511921711703056885852580268946212695378696679356232793184024234316638391680895382467436126498081794084615441404025244963274258419056835786575387892139999873573573629665308765961126593408464277113773092911463624798573026794204723651542957047151901055980730728413156785197618963856016861718656325404617002042900311204121855945644876248086077813164536540424884618122302443125522182026315934117896290555823041203609512322258574903266672013136441912701858175850179760208109133696944531439985700026693764221289573294190949603664540715627530245223416876975849075201022569900488595110325715382979198753009504290366584965021704335702670282824236093371029891175420594344956408076440778782528013557952417801280240295977257847237842917958247619761757386960028096611170931864626343625300143835523215110609670442353621687910831669963163331198116521899923100913542285593666799687688576554750819954805807218766482846581860937658347796578250721041278755484407238717804078391734976860646018091879228891576535981973188021177402419855383202846487888034127070817437129212547189761572005757883937823628249632132314842335081056709966315926207105224411970989849918043441923591986853959686355763725758497247235487670059843233310362672278899859135755335349533818139506716979276728636541441631558636040793956978969509876296256003337915371467744461653987984465931030682008680424819062190852518939557693861588263561937173878205567564266646760833608224018678862075593075420430502975026633700353254548375601585687694084209928250507981688548641943485654794024433650594566872943160914118886167298077582968520587990772894133664902452884451313094074005465877958858137394752142816105495194399746894561216523611247190220013418026017013751568105454618960038998405161548640719771927833397831516218579135072199014013407572731806039177475584869239680138001172806496169794268640265747258911133640118660412510588781268263577693785086847578116981027676499135237153169637155380794047113484966893617820838520011718999635053349850356987083213841605221128926425645717669567508873505667254495539766220230778919256942634718927440877906472207100354502444560499431109973498489286818720098558139666258479520024168648215940153618499302669287143987474226667092271300117313243893465763852863418720405579798242383966045015287115137772239234810770241857585574724081368948757955235034867760163458801206900061897523090091506682101153480880340195802567817752983968905748347349527438815241438374495282075244506291488067940914007819046504418458360110011172715539732216918016052911162907524382594549161033494254779746852826288221990741593580562994891497163549531475676393396671556261578177492870561742262767810501845425773793402637271747466364805210355460279761917286345970618023856943754310183387369115825084600787661293791524413631446570174502034877332444327641056564265265260529706370894490748406860962663172899743817889350350327413951197721665558045777470056914467439551824848633998696361451975575655656623341008475431485326396834217675621407902207716102520337036872431145948112810424106644168801087639834826266237125999605450081480117760596713961960996133588749952577360175854977287121672725987786465966433122200281909308904267854569057642707517956445802235119380495834948172999799150948378898653117115513187799287969451029443421924149834466942488565278301000268819735700692651621323449588233230998158282371673090349657729656594364293178253109154150242282563798973571749043570521625575758835489969606243499940574172483095472692697962390031885845323073436594412695792094500169389148450103441959926531693114170095304444583402651242050484878695215485177266422252228331522715919219449028317985390889697310514377372535135247566861944825319734402203392330451432452822849325379710325228512244070974948875867848211520587748136795802473481533309959417400703795617060331574738574805512710668332527381432835903078675041704344896548264002906685396512927668264219611903554428322488962319034988844411319408492280624700196370557947557073219077192813281161679934945863308361799648920325739021583529496908209251413317721609589735025084813761746204016281660111298528786108967440276565003510874662166054407221625644417996838659273471035815413539343831051420726771967191133877605719303390428097744380574199670484882217196563113636365357757211539974939688404076231204083946811549289992553098883588007157565594298519379151570080454474981308225708631536490868552750722960966400251378432923618223472871915098998307870989900804727392914616773534297805355623661217980184146431723677012456004044020694079496450774847904386238783178510484081573997795105605999229584173463719601996257774822143502236999473333416398836055612280569674520188548619245599757024823128121983930942388381465611539025592590549814281814327339347037834427506471196334879560307394555878320077275435327039841409377011127472998695838270247934042748814745278246419143325535984424954357203361282140792713744968904675399470372299966094795978605785050186334962644388209200152309748997039038718977662022053058211298679283442672643187092573346718381827995240029506667084559795534516202788764637939712730553559807046007702238800106395193144476797734572324175226651689001170799689673816579410540849036906082907768075369703860276654022534885243552437798763386632332081380335576193791994652359793921702350275817351717974886715944209946929813900976095160732680330160443283133439115547694290053210632152218395123000194315235356407720385929158414649615155536999240844995630346167875849134887813015798078494104154521226117817489786557377991182454361719946694618953282989900950871239721129396523775763545243966360293934861888700733580390248000867954846649596330309153899542769210906239630439146222251195902415472890098073625554428335340529487966654406938828718892201412041372490918804543815530116207556822103893706508665088030191302212279215925832859411312886675514177820726172058256537028692328139397014679723033795208166013168769634744583554849937419818248350987021011710535134730867875106241087345097629782299190076579021301353071416885947356294986582656296404717935712986168660823279870416120609787000123095377693511743233682563688591113412723270348078132049276473607355143071922752404586390294406848176313005678334866305449700946004890934692527018130871609274429794198101422578326215652101131008283233289577519470415290087901021990428386959860958566324358339586047996904003195218099174689441097082127717459410243578631443605089823391316065175515360839338143931709461727672380882570403326492579393547516141183929355700097562532472115909115804168602383177424915846457385231244928495443746165244005726680701143527444557073225700666545294940074136120309417566837404671300891517182012652045908035008058376912249570186809148424721288474804064995963569709786642581881386758989488587365643613832144995419406972065533445342204320088708528459906899844977817771720005878975077003387097205703062777892356820862740679326630962693546416412183340248117701704158285669187103170979516238656531199233574924453361818763867644492047934076788717815529228293104009423966248549360936481600815249313737413737930204903559093504853383828075709520359853568120311870562919253654056334272040078101257830965535694488298340908792197228191339847786552752830420026715856279922283359110094932252422598924267801967043447569468469257147979449423700282724412827831529918388542145567408359461576059528046586438653575898082221363125641222637962797305971743235538617315215179557887835164193851269445567734971867254887580727693689488815463949893306142801570592374121611117945971395427120847536149268376801987169017751679229056058673747433530155906091847632340997513580418502124746415010806157316590835163467114091837375266470001621095668078706810883554300988599746510649909547888029706573529422680638552654807582719374126505436711395788893226307513038614163770420979656716014054505197193707767494312700060417939676920927523638145515667095670469315797704462621019241667453718922306503628929874877995410078754168344775474668252753383229116129428059860390158888763744663661856954529754101577564424983781099345851345676326113732101611906424268606598391435927915046371325391822050155180721160405229087235443338601230028761764280806687315752641462548846247142519670419835316376629394877959468886485447236074001322547768393953379428979592737992025881900057010015741411288064293544993675284676658793770733119866839138075436522594908911525286580776499308545862402225590622473261329381551062487568836021709465716029129338246952625855779646809230182536490782367075296505140857939622573509565418956756358806019305839563798080150970101637505435744628498672359159349330273078547262182859114274637072163111259068499054170517709275683271367254156727215905900011857936120097657421683826400642039107058764441649437526174791693431772613268351807577218249013740907411094093733576345886434824273181114164293564943284179218450461661007252251479897200646602333384146634262201609423241887966914460588010595255722469637369902025065142390989090153572516704602261954513684457113807077956096769395383647607535618371391326900353427892730641855025109873768825366848974224526668098797348307396863781019272125887945430188128938002939231935737967217136390705081948397889317161362011912421850084183243828304374187907399488410844520851939263169933935576916438903272337011865292111459578051987241580520863615193039019573528331956404571577817020791623575960422298098354856005191906916527669649933806710737600553037813304887708933951413394990901927434345891596178135315581095770460143834895105308817211841646840246367336674860882227002577427779668727295994012263522978257642552621026647316421752526590512885428258033778176424421966064430668088039053566580519662250527215335380659558508748060449442566390930472336618097363825899520586655560016703544611437890964954323666097214699320505186960188984290338100831815881673481269804596409252112021562705291288777498948011114220473132634762377000848731426710224052960366578070359035545231029180695701752400554313959499454110456251090712239738700949604312848359394286076039720720280858900725258410239411264649698840047915733369338791818988848300954805613665355669243875221030907040420773263247631178934969993164205758237096365495282742403279858197621154401262300852015186728268438660679025670602435119891456206670067142544250718911744555940000197297549376894853540205304884717256079307975276448391961190501779743450912273874669764451172963937316482994952411125930904653483280421288105176670537739425070059988368600729994533343759745835188822190510333494027206749406901886973809089405329295419450852233865583097084612830790332754345040923517034657841664111242166256381409092662330295799341017570242019911537070386182843548912755082238483804825146389046986823102494946265188110747351834661070049855527023453519016964400247588628189646038950790467760639819793796785038195763177029420621367055778567298373889621975205916527526183910907738795789254729810629516137452408067635383013336055147090630936063549335279275181859677014239908638231170176417815422921012604996464470941908569472308409249695974143082238657616922750091973938746134178150637925333104881636204520959809713914697646494645858466586408939967524245418747368683572956511411698716368475233306942126886396582318468181067363005856548503735935999842497190414142411814730320656322196828743210460709567869997248654668475391843780314783558055250000289916981921736336184516040031897101948249231079821797662189886235929656474495880628622524317051437837002560532152417086248674737915347699088421481844078092842195678637975862932114901131596216602119177166415612377422282369879569125760015269328907734710667963672108984539881151357229249388902341959274047927850112681005745115368621635165100885996629865186995010278831448564224842189274319159182093744473673183121152877674074310543299490757384833323776648929557099871744188835102553744971944835595150269588866638725647860136449122243019896969057673627672997741857538049006779305845697624694080367184530319887195856128529522771002669211053899583218759514671021422475884545387966414700177654595162113005810720922226317784802550751177751883235327543335879669393918224063375988230957489777281373339042540610181812770230228719345304103236570700932672395908844779834463401133337191630877842964326304441375876949499992849096385606758212458912578065819552000985341028511739418475362627869661346840253264583794491030772268209192372429456080950109273272599766242750117547143022816322513696871880534049618440748394479426221095446261550124923220176805903759088104920887803838503766345599304332371723168859807415474092734771340232909611862716836318471692403310470020369399821899268454291335935781317249219840613803552662454630881562531128394659804048128805088416127174566212129323459001734644537785609786306614486232212536817140432250118832514897708834594806435862691964143475577308251131524906599253901361271688596663262080375940288448310471294513749773013066574836305690435620952081549066972879136306845154009248202375539191418614371956536762602899330467947436335223050791216370644889732521271260443823049514053093235424840128246725557656708815093110600137487179998156554329414278176471891476104276714705118812735530261894845068443805895255930348088825775801386969709893174229776787545464244290303759333327073593202980777295711114685597886989096000673909248186544587663029494614601348751602319023226327601250867741971387799531607714648993357917724590268160781244333486859770697380702763475143996871535174445031691756440297640229195515529439091916152741998942001158075663895260988189977015398779669524633881187993854868575229435744042621640777452347635197159068193955848802434236070498976583311201346177520019159508293370683000721680926252180394722372037486694377730244594927877292283363801711535673876899586698296710084320293229106703970365656656728532306406488258940658939200293620921289713428117298889487298856996342472914856362279956988725945741732458234809187437975063900923305313813307387095398288908072937964539946740577928462456423402624941952948335296040302223557026117474037634966648240536437552138743541696351778635355569716949126177593216060777909449749124586167541645090551955177921118485434888629893775700862378466806373045937574982982579990957932668723452124971756568103646069580912089315526020924704733761369727644012447795209712864391519261125076257737846726694756208315759486298990964765117613892573756215857876654260420110642849859256903731460187952083449587218454502376812598525584661265552595775121142081193039881975848710751624912566565109124047787891366428865700086051720278121136224412242052836756823265978743745440460602479314303608614290263542146057922394594053683929490284569107079839927391607939336633723777502181365178718533247083748754946933822369730190971652916356371758346897966735024444332409808198193986381039963211798023694728932432394021015843293757511237640952863293870135434106650451710845471511459329764725876212387442265374044467098545979881404601058278423553157046205611971714052120864310516981370597388499776138912492535481853773203395801412351108193822546737613730176897959059372191640910392959663606700470435953358027034939527959545002909205044031395039605676084589519030582943643409626024440106830300568686084598974350406149294051497776176866390021031861077783385515398790384378602410857215308630876691575687119812273821109356280882210663020884334951892580015743365570789479168088371320339157238085484341453479769803897394269702260584456701869679376790790645144388528823068497589542442158758727184093475427991638167984225633609284039338956650778790924842636192761644936268524702728540063218577273353259678579134833093725226366138433032024934552080438870899319890150421847580655543377499658346442686891571770250675974045178796936718573461728541918587130689105217107276772613948432233505906519377186225322522935425493613796830755083116927689716430425171472053079501131227540438584507092562401356118693206504359560431201624779704208199058735466318536840756333854451011612224309902491861730108690484495046089136232085362051447101868924735580234419382126075179264115895866313333479352826919871727125403680090705563078455960533217154703129137981045210649729345806992968319834350407155938444372001132346706910847697376822316296849056879098905245205572339618263701316353603123443753404361238004946272233645932293545738305567996951020244464844756145593300915839353505965104568332958681684372676115711047047312840702884391641015627448837507091575606204041286482027457876627463062583268936981407540191182753656249699356289510534690275561573849279290624252857490700107566413254687054711151781158547306388990217282448366631457303348086792006606509676149467492228472096110030204615425117204362851487482699013755725958099795848700799487548676314437367781920477650512001654538490826137798137330510566744585842912749153479418900582127684074893257458526418309127751206529849082477848694163493207269858861261337732284689183455526594130025797676395121199751904936152584184733343072063029155379723199642478604095076028694970675925720997168349841704733100316771905769907971520476021000503225326749673302070570047037858155723012352140884798591693260527752727184408348866874238270648914835695066260850743496092469434451630173425426323590549008916670303693107813087515396702937755250953852647938655269252749786178534443396732232240633857196970284055134020084336772052171598938089976172208300094743296466210008148565997958571027515500090512195976008461318846093582324877168418350967121797643866751036981753692969340028144667315149496048228328336603147797647756067379026080445831116553272752920082541061462212605262696087407947512032409566412104523595484699311165540142749261846337590038463231729422987636927644356264412667582067424462946751869840227939881024718567963542057034020257882883644294752033117107338825812990813455964174585464510989573299111678056577265668808711820021726766577998822813754899324801028624199387140387830639929497750240438769744725466076472444542464497439095939064854977500585287023756723396113900829936483379943127318452260196977405964511272929771796553162238236370634795927322795949934728470801446233651979129574629762065729633134733975034008667086736489578500062510247139817510938027787432523776633648794531954298502505326912527330633606982169145639912519728743003034847284197123184900373733034116955922091311307226280221576825597559754770179804357904799732578779223197755416915299748517180875213458371465373686154361669773861873437065735812401980117654557355098762413889701467525951749029927847363442821340742268688392284303475194718361457393902345010707709298069479897540522093797464241669768840121573378533663846389459836117789891941452619041996656385432710365824953349064528800507104116993881465169280939376169092704016201378643503184355742545411513486691510110119965941520888208136035343960435357382660728085730704096308246952484384462087483604978702202666101108687478348784418585868847906817571530012475526734897166608935712259911364336382450801379697493475774339219175568826913877598894299327486803330557957027097855189939836880828368353683896939467469557926070490537540561437032566543077987530383539229361936580206613207369535786993175594671427666860254233984369122450134524910928939792591576382727392863384125387185327375313930460881515780051813892406803676596754160781307301156570730899595011386903242771940183684961522160224213070577305914420083051924670903441479002036456824440270905322508631369657172052426274266885344697043578738973719151522269947695370081442017876812480121712453750048808718147089125399067715953059833677915251405002151685301771309579095786566862437212157501560286347461251594087788433312357040427378891800730596261695390837169267821592228272911367559602701003547685814244905075889750004904006937205007262788202575304409030879074307389550718474487985941396415832869748297931470701490180375356920102729180167479740985027630640819778188424674917917973971005380548659038841813772584251329538090385293561754048814860445252840515985366889876990837250741590260534435566499924080718724646712479240557320775572709803590562261281771528373371422076237384098767977594463848402488374194546777012508556533525369072217286833598814046443278551990692007520279911789385245002821307039374762847781988001158950441501412656534572914334697691792927683179735801517441606712414221163967480378044998425967292491629344700367455238726845087061957014968850868399804809133164982447391474860958275474946516190043913815561161375227443300132260024969252780576341541242261679725641720684852441459836832141082226303317744500325624433767378950365724688217397507269563156406019266865964877903404679636820659519333593785380887750970535751641820501028341573226296745147327560907731946489776974070213655995068708619820187326139447539818060864050468585978802690048649248510068594796863629464183336090649547834671019260906851922700231042350605728408116341816295021033834526938114505915221426821851358253163618780600415409422537497291685410146885379168028616731343093168602242197419068676154165809255305225848777495113538065432306966117356971642816787344945192590303254455554639771982556853629783843706899912418920202977608696555513009423943767706516073701950457942159321509426465113834187963475921051622855830525552623099220759194384612325383167571561108360080664812442120626610125472738500740347846976052185250506824065412960955800908927837636965781291337813876951001513279610443329932877580974095675900753774649457172158467367878901734184685497193628791062025136457045851734688292998605769794557280126744089272259949799585075537043890934486872377598507545918310643262706326102430076945247046307188923007794136827557013328976977740188007174560871326831542969245190955899852197680821836057234404712644253368775374177631909218041077368074726055442579345876001272995718889933793662360119177462353544987037180270112898353198643902338528301097339288472142492042316518073027285714330141931359022080709504578004174781475044984813244140116750028791864193707438225105379176241543177376949883582535774190865668840302639771893275490691857760080076722068851819340257544589188623014650939931456138262403121346141535446710627048906933470780397491735703283878768787529905393140357242329568496142814280130155104263953735371576603727641894006999316351976550659143132333590847179095564032890492880275270133090786987433799067480922827040931896702913152316786325308898243681530394482930971431723498366948527065455082054175879528755674295012916086171224483619445962768764097739244273485491055907350651562552171935371962993460819430482816291076595482591895852652206165402991802966854735671313711068843410120877006792986103893343463469489614128752472755926331078765774700377531303669253535064895778786692847189031269741652586735304715702678697079801473734449529498517302341750965194432105029965435182270392526159706120001920727473771894873573087699997785528525739525588781339003449817118274942990496598578821129269253305157390433335528034687043496064094502480278388775193742920979245748657725495660083017712890169596785892384340698151321911341685150481817487188924676276171690881953572734818174361626480138654919963482799551864267723212841844411502894946193148907900436157095939562083650865225653721784163051123181843256757049118476380925137365957956020561310229649898024461818885338859936082439452219941931830123459406711811341963375354048978421798770170036738402337410529506503316817381464103936253509719905778458247831094035492931830282698582841984339557581238500974827116421880268766312548755506565395559078537099328040255209022289036216424702635025753759310519346638358942501325342404190111547266268105403154795760935339781592643498255260479201327954105096010995931417757210638397518719582618986419058304217207380206674310641589609269137987049592759615569415935595626081873756048505532801422132417441487505071060100032128015423579026510330868234066746771602964275147791930045156630674177853518792982229895250381096310390384873982579754828439228599593560909928943191862691734613678002133508308694222383873421143210517374857375312476494760155100291821292206156254673279950698310032267167138526316620603593090025736197712084993228240828109475720201434949158173731377815669277261457535029418802615765183772447785071643563859135122550191868377413959246892542249413122967421290476167992854609362831584073505618238613661430142589912222598773419814724452953204969519455209971195304430629886455530292462856726369632948235445691640812597585282003618170709614585738018551423425385921203404775885677648267642308520246369518290386057654345493313227052160520146705257382822121736273187372101724607591164211846469426001842670829811997630360478442255550005726912561401690141089230384878745934240164511948562370955882224161086297018512565557518093350528699216396589114802643047498956333045293924412766444416449762255272365771476520369177227659559524782678384689210083700211803126505560471920690905501744600208888671654441367991569275555226440127308256621357178026181466509282321762394570719370604729767991482039338018505309684403979218371220996754344576455692368624364001343918758116211576822090058669531335274377607309979501348645253395105894440865346822702668126118265089153246642867307177840261040608915899279918132038139206223501494393577092250665937307181832993747993945153551219722181681586446031798736993080033998812971997076544147806705310860705461045570238511863050245391397069315239584822204292055712912515247416628719236584971287639736118512875964282302966071482384571370866077333363040094322580058618689946682803312191080899948636924102683156328861341236135440341868696608461820421403078958707267925385752969149758708482849119588145538579248140700025284099225880569456784475372676096720928148381371155846053347257934546494152838239123743275853191951750469065490757604217132404355387040183030577864066297338003118559831144644492822591589782335912537330432802337764499410303072216535221318249494157278034551624755286987793320994632892042335457640736625151394152653070194154339793066918004704186113549092206047909671994625993742571778416795599339931588607643880318256547977890859687249656065512518044309731495918107539445918116164411299263505293648038441196741547650472033785079566147439861141563779823171659556327589536997355512080036578517124243953592651155339788459412736308759485631684889821606333284340549740456699742195347737213164930835000392640385186264345784707043891240622057402204508136491639099894665554207506595589746897445108288974137402170621514869823195245273981072587433935371766668761973982347233587672550947460970219212634292095078704862141426165282808512535159993995021423453906292987400471521368882946910931252509446704207661139168271343060015256334265936725452738834449670272920271088401240470995878522006705459779665654484517597051089937644132866637174754346150968243751040584383586363023794531029502838682100215774152839940116696515265711517192659718765157655824562146411501892834437524284656316034557717959430811784491535810174242433525148316287639169275449004596214511392931353233425533289572671113821392476562564048858091537885803810290775077196379564524773479474924410688808117209386803447711944524517266715776632408391943232958558237451377630579905544102003299948137231602781624476987442499673618053983546869538570897644210884483532930859390562892318535143104834423889599338316988463525853960153413684553135969161188149393492842642507487244315241692569752405300273425026535039756459723452787992394882365420942025656913475713767091265018093698701221251155692338675121811898090068940270380336552344135241658879619972610234706056615143402219589184785246559155299548063453691820143267280102519050608950864906801987506814589277200261636589377708738788659588795178080143848967421309261068108614354214654474901403889773126161560625864672941088514358701234702975613998930108459950175609731584924912665413664567353379799713890063542684956483325965879588593180788270873460455800507898949939563839965670641958737489444165655496949805993698481697499950706763993504909819144246182590807341832963010770423459507106622292974021721312188852248301697784694875165473208933583981915190561860109339628996067804484475807494225697007106702092913078094011977250907949589117684779667240397139837660083130615227311129212098301436862641719719351007352425279261375563910869431709103062139424622270589370371382027739885922873985268651165066270289461812104711236702876030297675378048053400776825164042985723159017074018662378401429600454279942448162301712336896616800494631627082030579130957431132584790163591902054958224909622352996282333487815225564460353644878704434258375970456976229377626116758822256766967010846635587089406042046078151621929740024911872337843341336249107820680142387613571478835255120862423389799704632538780490747993867003696001889822098595396418394654117257346977995146224376583790034733553035614304936624948305692752857360539417494039087588426198326615790388957445779101005001152124847499950796328120256319570951823189087365707974787076410732449729737785930740169088175906604389372981925744979962742997338809330664518068696005816776351601338542885432433850320841252217043582943636762569732347486119535659250290309017078898343180759098839418986209896667891912077636971085578788993764399673039673667594132989514185711527835890114204930641292851950996694770999511413569009309689442611404802681063342636947243994871018248642491025047321663107969118491726313601895758919357166894112780329353473552649371669502166446542899533083317295434333796259930253192092558368868630595268398228539303679743135901650760786382792148819760019647632509234937078989361138605024000958556714415379250437886270667109201599242495936382919943743043448127623192290291332300084224213158545260652907061774698876797166285247481100822045977195758805368902220318405150505667745973921308325554430445815720444439475496120465029298272450856280993463439977168905140368933909547782292774076514607426620757203728650869147817653004287767814284914327420086649844774109524583725107585211554917227076934177612833054933517139248252000175372982401172410521247313940258019035539621016476981718695921358810812882668602705445008811451196521333182437030378413579746548505337672400614827109016572156204015534925254750808697346414642855316239568911253201059629336351758597414910631930271012936167119199364012480432158086027237748472059851032689019854494514074058649038457637311209427032129822626231226934668748283752038484768136351801279998870901231714861313905702112211274884166192315239410235202621638223981574720609821107855527156663411283857513600600997886661588298455321803107821954160951436831639775683594238967643420417914769155840190534111698015305113827568542452806254609799891534401694658318643822915227873632021020434182838381138211810224248031538364283256910765352121971361329097818676764711505997533446890301577214857003312084258227783427967317786897542627162863451924020687911449145357547388161998801222525434310706456474689183932481180880435016725389092409622272840161917399204140250135529619621406476558882219136617274616079789742344609341786208666130680052413107204058533798695520740167360003236149565218494232574167289185244929023731272729361398873444323565831649557898692160912579874558284569452167583612544825327211130317486562076231534361586287631393920422456918368211427101232742135141379863344943556088780841656259898347709753928663332674510384274600143675716893189274751466146796801878062110170226152613829382361708134090937674551199753623588562181321918168131673994471130591985652274594559254454319061464969405839887468263518843033893391013427962877138045396826134017344000172264107370298047789712600140828994792306283585848425130223137795656525940000273387375410429563739309573380051536522795675148687601470870909726897847384126725844773607803954379772387788109661972853188954292535626463785410124038787713577277870401522406097726201675530321622474472383794483683199431232521208314788479573561532163383628258667567135528027173930839673317705662608017143743416077664607468634558007334747718141259712913478358016393274695132873591866784678061805757921178673177941021628445262251532053450779087940502446988088141947002014712205837241135754995201466373937292881241613333981602309158332288237805717780659170216194490502642567783684236809304312161888250812800132509367069526576412129361417378543737422096591776178441550896069633861711795399642351345354262497553998075468323519385211042847651566145171415227080681966579282380385789171755846474651912210028211911558628044442029787232836514873341971069610399460011045929558607228646260783762691973935989919968905404795027887134663246331745311505017545118402720262852659712253166759335970542983357780952119903078523639858708191673059920638155865045900801432269030332622281447465668550614071701520308815057746962161454796921837584581826479590587740254244013568733472169702171467289772026517646654929820752936678598921111526933642445408579854911240632632910150360312319440456031348509808947415416210088224369348478996877337150597432157703907613375270495459145033597671156847746349745652085399086318014264248258344636097490621351255236027288976387971174194325887608891374580256949398071838051332777965322702608708965230245853008552954984265521877694123262641888226325600848284235138600000147196746978435304139960415365505829946550317005345021374011235583103330073338626238968121538752077887229027740695397867214963043591687562807645496253423702198533985769988044669928752870355725633749053065792524316507255768199170742930581074051954692150999600343902114678975123351229782994961559741494860134579496758641186113497565758751831976262347595521750733250162795835397965080438152339410955144986187877124433177567800581492643001751785502982196276519296506487627297526418613416638103930909819774941532277004973438940550110876972579230009183957364833043885888847124290623423038323939723500544188662589962295811933825989023070467640676642472287051899094305236888350027010536784749947751549370991948259057327541203135203981420425216550628036609779524496008054008817242572625512425634264794404872525408707648376819463680447505921548443991493595931453553141176507527252824296605715991002100040521412775009466794372977804335056911882817381314597362271009290408065591276648742262271824703771689305111357892192799698773178941644603191906949717960670307885896612244772090961668590735271591967246806481970140127904622949361553332278326481996480483012844316125949763672804198207302193679309989605455055962008209298322578036745177834802860668264260657977426340901400285977089019500673855468688252423770821190387502106869747070047392245936269524738070207026733022036808956396967145486698199522303897031429386027385359477811337138784355968291198091708669137875474435344876344325708614929662212125907271350826967008143394239196180922391420716248305512953839567399835673060675088502150978464857828008537487112470676342113793191735689606715155447262105393930379696830260246435552274841877143155285386454623500692723275846267016563020585279683721654160554386504765782324893502502855501953984877208650855931133219728936413794915347437039650129725863098905677786740484284305754279383522094289859395259406006502720514262855475419262274155409557989148428203565914625249378150297309781562309535161254600195432786130038652755866192208924451683326436834782592883070091677887122005359374191962208889442096174960249158807293368014321389488593643547414712132691149084627643860375080968828256937034087955852618907855971438715777039050024115298408761450647876000729392699797081007489229172996206454721076586092641378145911908686615703646692309844514302044454172675140597029162623182703863884957196602769650204119179800745884566113880860470040479234270461956887459000480536920150433673796146193050530225992604335675888839319695357509461591380683036013662363454215184682033630249288324659134765064075836548515892467444898194314896491236962423942468535029558585959728040796777152932521062762590825388517840020248899817977488904648881532180128042607492072737255817854960747381910869665401854421026968099405645564529538130218799298477253669530407227754303761078617194501941015350717183542994396156881218310261828504466418340548371560795384113303108096504157774421336716346201779166326208613014673021908456698114142592213965492330931839398105022794799431070924111478262449238672316486506747648536000510770888290848599220029874809936333781619678919280704712792586232168528540519355438396143663677535850367953328361735256201158191000363162376284391731827808066721485113934551264347317553637197269668681087508694827437907555563971337365103161908194870668562457148109701810680146992768917400702936282255119235938135279260272614302175451378902375525390529213074944515295044637828742118145947723947013497217536735024532400492727748381196649251947406723779172694205701249656287940404008507881750124366854381514113922570425048773432468952988323615322246526981813234220915367834969894989985241275960762326797332420830391519309986453301730806244123527171048383442044885820022340002029372138395732894951172815521849777604576404870771350596322727155092970000904081445992515132771728554557515530498644091985948471124365344011625764919191667153751323832794831847579246702929459433095799776470372483449514543310362901977732859274718385422790484406622281702978377602504661942329689610986729573713489841260757719253116084408183271499306169867472264971946843642516695159630946642584859763148470594104794749212237944501644497592916522372352761135531190892878213439826127326853455658021207262653898958615391852263251197690624277661256684697468382329409639897891680618500112153468406478995607678157029665218471099311560379728853378100550788782164198548589707959346317399609542977265261124804568595416080646168873536002049664708478343664121181688631070342012683706520394472277655012351858412423110912358401237569704498409001248415805265362474596000906545081737845910013826079969687297283581364460435124690293969399088534849578212221793614201948037376238067022595186476489901081841886679672935102626966309363341077099291000263230128587219142822531306505871996468836958051615503985131286877540620646193660884178098182345387492178140147607894152219004952413999966008313061894196771423198423583058348077278329456189317196516329459681995674568421806047012349920441762752115728193508363802878571039585284558083430816314138435554800519435068351074353419477681921110812715680283733531953992003165866316263867676511730534392624280996257902784216014557629656585833270256626860310114731501601303379949027336686263777397249825377536736584781710423064397375875436898092820329102579478783776754383084798661669483303487552199608032387590949649777985256838141117461147615723780759894624660699327975487884289549117619177820214132181614819957899591906925073761218005633078817224286933366359399421022332154295041468675953681580450639027668714466697920580566430913159825016830864269838010172758440104904946800194266448764185627357679850523808444467070582094703274675982843955803747443612317534173697317653367181556391112040761400256400597301132065500995810924537458076920847158873182983779996352694061869832508679424464879969177500353596725841804824184513077540909660579031873491637553068449717968572757499188130785338532811135192571533305732878122344915939407361584095167643787020343853714433466054414537577428657643605560787959843231619459728199299014992877504452139388255562905716707462703923687651739213844853829623564338722400989721869721965192536057286383793309355715515290450765801523255169682899236174987553517398349716436965914067723607555723793413625721624018021610201727316118305610480820058957465389103661873605060537541414602777223777379753013781748509816875928731006560493854793747607220834678203229090540214054692801391258160288409058937188511910089089107086337023368840844570489849887624636270942381431515720917729666107714066401912300607713540978558290323303918418823625411348186384841000348070771757208926535793722892704729983669457880504223706551190526804971189027756080631408618449767908225496567541041333670084285902958477891433546909083764188145286262459784732487741222518051751551926011372385261358801190169802457935818804906742062014236292641624888820189542102303054584184541144619681753830350671618067453741749158274654007071046568286706350343737550363694893344705097074063558333631437933649092630091945001180421040083142709008214547613189005834855352242169723454079063754271278412000632465414858301960948055710557776963003328588721375706523546651581432554459187799153340970583651532349603136413245647081338152668333573665661224904914800078343645779750621687592780061074496649867678359298278714189654238270968607143576125824089241832817415614981260824342371968455831823686763264748063190891382745036655772539637457816523554638910822277917615098309253054661751574013398876519697829561146542472663991249875344183281403240822527326100443213734040848445290012361976650311729970890913896749945203089821224898397310085277775680689737404297221617680912263486408657871973121063256902640029547894346330794634699042311509461087044877551391728658806809385539882099850358193110187806983549666045334935819672245434587408719029476970383537267029399993896363421221512502761793795013229730926695055548454048568462226308698799741551181433230470030691409675310903620642898266594261443570127827774385362972092455783103986531961751094522784770772819177462340653943681161298743765052629771016442925401687070957211704005979995463871653332502848985965897223344765866882453666200564940591587373786670136995399084179271416044544550786212798292729232509069263840028785804729455422654625080021893376876672145898011704106755090667746097256084556289789393094970227932596466551188184707443114794314068027159222613958187564012281243820693277087887423151118555225315694346810456790804461185503646248628753815509694477431202021910827474844322054633060174354168807559171692326717500700261394830092399637381271496883298192704077529639378327901932761679885930273168715118155666001966738015545315975184351369455019628514665124401908661687534165459871046575874075641691545417448655693960957359041340645160476678583124776203064219865878910427903642235439293477033929260625628395622051677727239544041200142325825585749023733757958919920751367000357909984427283857519336417708071276623642140415325319434813737872751789093312665018584113914275321717831577237582679435754711171685635243045283616830179754086022697918327255590672725649019231433860973249642456706428436419977771090688407552237604420889210047008825594966019508466132699904001869230971712893304430175531710694553757064612421771738262638493407242199979476975377116664001957391973507982861300403788391586247484724509154128091901296841186878243590806479759181454080127800878541319193180458648858916251990059813579635462599381589186211786652187276807291209952618235128713631599067099724217992826963924054642409031417893911812106614265399250221164786127270249166492210018411010343240639827715893942463566870755925022076848656808335667729958677152581118818674923346110151942573944913267616390235574804461659413409766704259285146348987282139780962364323030150634573264811315844950274066024554943505562019543057079458840458584010193830850221405946294176347975559502450031457755155286285128767059329006198581724811517226610549360567786739737333823931216227523491691759627353427154930862218350068599188601969070840515875685927336703214275568040965816152969374845232748037050664338260626296826955542957866127584173534490254364421291199890243136274366376758169921759697028507023659823895344109401615175158938430347605316841058846887385741189182707328622212757792200308081876647112944796771621030452712983233323513442991827600669139472731121557628063223093519566157643710184756590509224446983750430370580885427035470231987563489900667598335036004671686489911771267805672102693882243646990160328706534202789708027794889002993964855431968077436126331706390006243826256938610202802457168374379971765899038962921872155671705184572900378344535993165593006325060958573654353292990231860594831365575804997150508843616389717036754851726254636480175175278999476077084690203525549079875160394143984918583596802887265994903814980993968455895198895892489854493617809781432662485689897279355015614936681023390426011234437344556041521210433040223709325926415250542255806929024209382289970802971218724388429052412243149888574659271536920103357949562673336290941394395272739098280222127588344936696728578846759515582016278200212939879475083153044776184471356211596400346997510580358607692278769478585538018749636072652705502485618393774058723487377397728917546033247893193419100969483918562811024343163754776208173467042446503219408722021302233004082432306770582276057717956235493727173852760314059869075723311790583959430974454971075376734297293324984028958032665542498290112393347667287631259613062696168649414571617920082845165263657546500255716752747247805842495085756666427669970834691576019140915317972994848791181362445336634317385686076845431013538065046705432041774400006535907544818672274832847771849620548241057884761470358131654667122942154164702531729999779282916652811307877632917988787845014884047818336235908957458298300263061676915137224314214548939487109605400543982209782310482997159460051927237245201114165425460017237109908435925931930525631991196687903844050005156086411912343235633709431757708774777811245146218297534991317557913123508042455647933896619296890579866860489100258034642833705458854496331379648118111159870198246721285920632389319180674944471421826588239990044897775599345323666055104953464625481264885251225111570578534128406535424050166696213288806446366855381100189343669500447384655445779491871135425286178976480214063770098053220659906563667992845857310909203217410711337476789258250480245020467937746172437858609610202060829742758263751446222936876565640706030169032230999226748467896148442562137355587935513042463605610112195984197473119486545431090361519607786957838086465466103251240877199454022552409911004667818354422339692351139344586331017194430442574306558012624420406500463511912184325208160002660124118664964320934302861685342590366818821255440587690475501987750200061281658068085227437949928721290663741605733139152511699488148288366043024080530610805364039441555852949218846020849359604750206226516937499462689517812376667172182179046161238100565457774660883446436829304513802421895935469602430182981405979311169344787219613451795855550047937687695702871420890022011475018336476469302670184030574340945962280871411437901429775422149528752899835280135533218073897471244315065496361457175606624372705220991302791933945822347044456849696487030622292871459244242253373349295354845608315305488283739321358178536365659634537970302763626716962586374370394746455223482324267151422072626644182655510473095287789316507448317974835757861847436491733705734138174402266699001683969585143309548702725185439236220900566231709784048139325892413282226753814568484264670895642611015771299760972753519883765800495376067629154671972642476705997395210195455106967545764047132232591720034187264850817127481318333003986588087478143894497355262300373452274642644469404129460672620076135825430514647854696406783236516554548464198971438491865333678947726282486817086651818226234144763687259845090166402151916639443522672469028800140188097282098355402585831581079551183906436654065322743309804737635556028733555744704916960824534630560241423454793064204195411521259061599614898092695179302591456678109948521759388630339878595558294641069014200972515416229702097521760717714740805151369608808311899334084761240088255330977756827307246396574907251222936333302113677111612816895489211659670703450513015098204555320943161568538085949218537073148748689026441872812170018684974274208973890817598845359131237655891220215334130568392968350703180607092372077911528245364055252688392342569174263157376912469166347609920830179205178164480646614048441708820808906936212118054189215420323856607783461915377494612356408668918350222551121392270648132402825039510604635782059518033286232404110044522216110109369320542044883505556421111064215094683011146858413471534326389208817424287435657980088967484606244778220906367814809862439215479875409162829862342858694399761526433422493903780998682415962075882246037014870616910572830083778698570740704619093283097163369538154559087824634795591525734214368525593775064199264252876288065245942147705536610546403649249477663049100795237016275889279397198965677385234470324756544047423881829342744028198905971050880973904003379456088179935951581650037058127454228903104752533156956307937462788342161909054123052686688826248311614411942440229760258463838008120713853116906990959553422823984880666752137808998127184503247286475795456465491445055125627326192002263668001030693586534886983476857520813059581752179608580872128249277778247462085592394476769151208767730017698081135075161040697502553514804695142780791414292869426927213109919233929808001280790176644582539926627518261280141650231421575635941997127921887591911334558294916462402261038799231998221217865300257271791153643097030510136781443844688652968661163821120858235041255140550713767224498216906338169973491744802554018713467166473762021082380157665070636690598863290135333026983524443636557894957141679710129893666548134577737468588920319128262377322045164515751735620379950218788798221154016486834934738260391650154309053151249377624581494994500252778880496299131945270479511465545861584906055651638043928403942345522254622442794681421184412842777037419251283001274926551933993611385579695166987948788078579816202576079989338462251501636759525365089960435058487860080862775572612524678477963418926374438405592921035923522256209993445293416432482907362743255301048097547798132962600548665103443648371380867149829939068345737371448763244260045433312120133186686616663597561791444791659050799662352670827923966258169534369734428228708034687880473800071569599263591259531097469721563780998115230862909804385128277610788734633104606589348345237366011485941291643496521458359599341900906776080570174771012973736204164287835558749408916913208417601499153426567695849075113242087513311283231700535671944430200961766975385445430080527047481058677495260914834686538700456375790323129240588840814750810254196083113788007918513924599307165576518672099719868387172780887877019072662919586860430031644676479362847145841646411368688604457638258509472516061940040518702756958811564127746555328572055871667826838629148617999935801571065957943039701022671158774753041577965118041277891347266972594954697813940551282535959270606012610514437676741790583973179956426056132411910846155562741180737972925860084427520011472551824551880696318325902413016348529518901277135667464700853410347001093022351491544634631568484250078555835611931401936007742513205214723891583036228906791393420273068955415006325706045892486427178809420523925848500847960472522279068704879474655418215803663324893508565674999699588388029194313149738266575555171094901655010727542425155296513666185389371985105339099447093374265752828551905077913171510786797405672178810918819621835917812647946692045855758446748016306700627075961118152626581775776293741494131965774441284096741005493959523926086886213592077507941005765193080803447827164358413293872948389620939184925691010535854958612436437277674467434228602241927781535877815090022786878334725840445562444322011657456289495367867542274224247729072244177365942261431720623392154835992384463769536205802561013179165114941097193204746604201266474572308924176229116231956829764680948378748432636809795933137371457436211519760329574879646725899637790877132942937518626662024355202813394255073134514972349473301240500964521374585494776782721667796549550813164534213039768904011092018228985002304231463209557614416471797547920455591381705390583573193472998513336736955602597137608152978722633526773148976802189071624802527412209837204127764971361730291787951311984938727394515419736264081344179188842427534267097546033554249161028982631609405701887701500909012771250919234278153195853848796684098119227686139763887745444120500954180209648832679494788856380002646283265995227049084577142780037444748997107277429448120968508506346003340578806667712934887491155620251905324019944148971820936574417479544381428460734119752425598777166533311793628438668290671286762012964152103865491765485663412964109820046825804603829209220335329176891995472906026166927682666541644032372586521815672715532522517502248161051750894926559233603407958451224797678453723913915996047560109372530003366970846794400754443461220368048054671564598234210802399308406322491750164391631551467609917548765821638523528547318620722293795789939827606383790362942731577920084672631313326934700246610130262950333742969100620114995590214884586935276518949226042349967280177861152722843034230752558095164101891449896816618679389112346469583476788041557559840320357929732582099078788461639604318792308132227075799789857538962120055810608386719650834347289010560852489660634327791399795204899742190376562159607556550434918222574243111310978112410233097975416207751383220335002141133532414920328481102107948710978787215550232215957561943816665930894988129946631987655815145471874700573097973715229431243323905645634821100375128988966618305641952009513535800724310794512141395150327406421797568342661899712731040168600928408539660537308848537625820907630750389724257785521182435515560761832721214585594634010625308841163786512066609506131328562619436751038146481977444218029987893697524689191266848359565081691605561556729772861166451638787169911270639231795136275492399740538506640375280131889077656529141891398792605786296482800706619382059865971153446396699494149483023708292581079778718445645069085311636352746377289678938102894477908931922631233555274537897651312775327646902261509295248696234009887803210465843084967007301373687920561949498099525605107053302285290961052371046751439503933999258458897210188479766922271877213481697834755664424790625217607158288529440145761817318086209720762916347380024749884908710274283260207955543707178294839364142485186817855518716499459917346626790180840844386109141138380905952368879743462952085691965121472840560266839071697692385492085964524636636485956532039896293388904104488126734953883789135115153120693373257337747733731714736677161241941496716361844689576514681080896191730315882120981507566059860014815544103962840052543178874115220365739630827133713983565410764257652713242953794000174647138617288445995245241955006406192829561950600850935680752722902466502905513656017903321652942435508365776482065206559796570612161798946854003087580578634612306821698956003482810825395025004462894635975585643155637526706249926002236418680190537130701070075179508447773313322183571989857920055636949164835905179670359338084616981122997790309419802122770438887918766693275550289701151034868055470890851468679544061416172398122657542726294548752451466427726282955820932850869730104431103565771839749830293792234473876920629200744777017654987518630085313660053718420274149003158147988193460274959323779873945356728679374591016807876024591641822921017318597137127801067767186184663694866829772747973264180425159738816186906056093687859964998746313614363747158025464129969984118316038061776529205058175418622583290137835848674727090601957874380164588993328994965177331299274519306062896909714349072967344548356688807873746612854127492059410633231773365306852373111809902456798756392745100457393984706602357286281079284394995706214977270263888829087074172517328748922951172418650746015762638118176788897043405128556040167845654766801461007641061552279484468755691170615535466963985454273897656998416473475584845144305022864286406287480395834532804414754210771084971261574933001647352488026108398079973992952784043644169011521306265945884641761210126160210264619447389817348721188357144636232264125621565319582112662778488848631188269475150308806905764050052328606966708996815964892113438176648230374480041365544598224516021643237786451424518133526925590503391069449224844377209512668405242068116849869409632809173091765882324005261065570256190005649371937491505063873692934731019666473012461167009735162471208446750495557698242263316916509364350223758194360508917356511296083871598226235724065112545026116544855409906293733402198011680819141922147465806033184455040175816951509713840891765235743156749660948769242934941372492851654012092089307180381325569037313663351976440763643666660205555390352656529942641361565510812741046772578635022201751801370654592816209386153110012726658316107617345843172428744631604023439972138373679754987857639371437421442130878048349895654179399337252822661024321100858732999989868999817974563787630198459562282444305582734129907149291761591691670444665853532327680850077688998062820834311699952932754561414792278939199722626882452950590839031037577006988843758823311669160360473321937503111698781964821152882317648113304172789846235098017934914053989888377482946978035219069851550410523132953127097268811920964798981757011658906518093943188274754056875682805951924223690987254784716299362733322598665777679333943821119119919950362221876252969116444368531696669145151557262442831960412450957743915518282556265241739108156752843845040926466780992330338525738803974385910586994649583292243006443099609838979389146016530761796857454305741257952723970530155540163765496759220883803001234227162280788798730159003535946257531887470953675164523196923801824262177807594411991430713725704682398340212031495201696110624958466520534357376682105048087568319297292885280374239908319678911218577793679191673070243979723319710889255352388028475794410445031830479735581230936117800449482689216514013888601792936417801861129888018894558113462015925276156047192696561019510312614983093374874462137861577955436298830184094181250807634110451024598826596021400860646025131475788153298926479853951769978493054693195679430349036465615352095625880024497464990748936449752637809063980829073475166421925385572577316539817072655720395061991362800819173797166503042962482501642889678999811366250963501730006806227546194785635343221151126493606557829822500767518459260947480014744515826652725219044760389580377705804746907798505132674927189286150046926697207640764117365511280420794574247315344506394768891926980134569824984390549691314688171504078065573770517852735168191730973621133348659768856994929684216534558018906762101243006248220896905937879311692415013294972224889975515928030733895428615678885561903491211527221724728230411540301182037871767533675765294423719558315283018771894969648242459432198440084349195081883333541569214265316706628414777562982574958451848821548853070041096485917925934454503819316819026407964203345040722888615296112685820186435256799700245715190823539350361982632065455219974951529456488030816097324695965992793460752519518582642447699367929814878491116900891682500524693345221892329883887653755873431346117693175312796453128079540556675212287815920747447472890448934262774927937432381803324349600927251198027716877050059305992166197423780093926657034639953431061593307184290791387239287032999348818838540941550418278094761223105157445430622152580101187263443542245337582265855088196028113882705622295407972158481692432199560928700355765411737401498361269430702537652375360145481713998227686656962072840865556675387337512846480983256482594306799620267304065646435448491059580432205620107119850094716399797958837437283428915154983149089012934517138095367690615719247251410105751041874213541496837024468589223322557188834090112330643261045901880569757810489051700817857607243292675837232748460011843366805328872486108381665700019412404220611815929264015263399546871377176346446157810459719084279720141516875967625247367365240688279887356114640018551163121326932251605241884010479723606780638441700168699202583590692745826074996065705160041548639119932026283674137051827015192001574738166963081784264172739136424899981524601772113291962350781307709809808848603270156761314381085312970876601615925285390904649665523469687195461842347518539923200188683176220678959640277371086155340444084819902330051704302965843854306093315969930992435609287139469924045539300664302604571439164134952892339857165146009917838809552158599323299348131193480348666353691157516599921668654764015774301521602333324015483023267157033190927624730566463365818880884617000711790405567608748739165234944993803083770239311858678721331048954436590626315884113280976239806660517174503446385002991345342481085593389715971548204193820563534169018305818245755648018397414300396133770772882931365137007425034545688027648772170120299024528977433828941778243489246081796905874712217690011481408869531814786797457289693798655431899004172452368830467593365165923430220958477134828941512709736514352892139021380588567799728549707064713106232600421174831260062436185859985138533906509827400326317201419652165299368145680644405050297706591089452291517490085466330121126497227008021397268733568031872358795837910715104989617399901899277800077768619220016858353404569250242589926033773015674901824462973461180755644618174942294883066807871694780600510861663655228280576455126724231197469604826799291659602967247678230233314378845792654396005611104145282456693308388536696674597158059518076874608050360549069390442564662767462094422599500342753191501014084949360758163707945876014190194452171587664078500082406904535520677689754683368825630506264674340706204481973035717701047769540015291021572494703264064562252758118889939369986270587497323600952947017339730431693836441247891645315686793916427473081130152037267147476798234116752051777319067829088449927907014422555880629205740358114798721666530664739407302644171101881542903574328102653221239311943136174004977535156708224342779200960045401382364013558670480610138133813444785552694626837387549148977281093202354076437405735839851004425660174893815186582343250515019503216943611311295998914546697500671738591440843197300739029361011807867053525460076102013071850902068901964503565095164992570442494540571551667292052469624281374223071333692207883999816062546988176363712014460888228672174678589222381926874920542274784394785183007921575578005681248481070345396960548291232907900619561874975950122162879914753466812661517895175256689276418327697892542224403829984742897785916316348144580251467485988373894615106776141176870267494710496113180740933697571537996777024480565583064174527961316237292254876457980120782131586330343045835539591651550028693852697002368603921490221768307769505323255756656390451764626663830595245430987312916559869969981002557800379648842117960561735552363903313894594400925947946452098663526220481323938707341962046285212130390136736689095896424925775644858988541662928362101139391357830134329590448779433421553745181361403647265989310512738730312412632237509039680666845457940299899573291369050784717514707501179593158831676949309654834402977343066588822829685291356072664197610666520546876994317961176819680675946081502859490303538891879928062114373221545756146885870622674389683254719145891444068715788842031714692297479010654744629543729487534218212440676524771445311957770428117161251239862067925352326340837161961999653815514366280779163652124882603447258242852778253714639930608293535288584737618084479321909294910122427739598758325695201310678799332373841207281212375741930485695857979775460964689433296354215042310300963828199404928498212184091075450419544793102758907004545929567184737491634699501331168208146958132996252200249681297699896118695348007981149110205271773779534290460751614637898122474976555037470668653436693217457880995311133375205058335978851035032341273759893749242795099596782596664173745326677449425536251633090046831093848375179747684909484861339553486378664943529673386595909324273002991057101161082318368560976521326878301710186982433313751753554660934115122138084201978572864232288111139772195977899828202523355993721140523398514127250494853461598848962666655789909548207864052621103332123393913906743895461192637438656527434235939611410245939352954092422854170546287306013468801166314127492769952501584372386615078983762177177646884667727990241264263208355892602445861861424981209268241134865854888069518594712178424495574853260976011956355085431862118868517631323215938243668407173001863241552589679287764167001624687965907982811048412154394324522901364490712987030671401149608700312973285478099646687113828596879797789433302581676707865068383975971431201761615679585219513110279276685816134816722089814332386753132754827964626615061761812673941463871746238114648560578024938047815009154577480751778766511139539672961418471989110464233689161388319393591944581501051860734671421835066086562411302964250299144379352739303214216698063279923888608068249495858597989237171675354996887219172557087264227341439550660828915533563410310806619228641487588686699079020567608741891901544790053326280410609915252204212343968760234368149086641593677368505954272592801460824224779291448694397681794149409683434587901980599971684209111817992115318642060755208870042193229596787264313243096176872788025881617698948336026460336101502882309002366114828504876222957704024578571278936393914574598018846091546387947475208863723637508327336114158250867290579922349706817253857719267992531613041423907141521366194352876031340564904174847157200753163034180907546261943079094013437558612317865343548405811055092935667581622731597059547372655057853182248104254997369955817561275867907504151438745420326783731097524432362442109328870480457063703096234106837874062926920153928011223182290267733831398980605597451275192699473206666447091471813490872798195999424674719936296748326631890023422329005215966231531168750875291576277638394578414233394658673490113639001839258070838013105375511922150407186053461296555991928242890091564579466481369942369864758562949880427840910084962459472234623333548975722692351447044147527296177032058694899829373165248701794647700063077937096024178025227388914388979824219173148114771947496582941590652606957137636049278010633795030730211970739320455275777688385376001391943286818394777140968408240072351970065845593358296620347691066394068370572575884116610725546596750978746378472299229523774563645986911364242275725899733225896545318360701840588404001471419123589389867984160253353923851330307981474484438406943959957586146539955249857680358130945089793747225600664126156395286981325430771523835273903504178979233639576216683793566774266958884520230404179537545771015069005984745201258336201851262506722789472293427801654235640641710724163530574146645785676951914756338201599831016017188134142609549663475414296305857444179559783615074926618616195126969369700555188621073486035705264303346574284911356728380093699983783709325621735517561506520709168922078544368243793879312565371301601612383459515976263114165711460120860475179130981382996988496257070945111187745194023825332704317455897956255863853844304236118351467651827232991553327666746909820455297230816750169770736352338587680884191514849298164049358479821474291510745680716754325367786430445937951379393563177286513593438837684675100895079816300802759068497632734740375867222726712522721811999206249849682620293919707779604208810403051855133486252753021951523006440227680473174528130772206516228237976959484570343452197430953912283923647732991760349675292060579172932773213697129740519856854668035399474629002374090132544384363277242033054440315617997123503785358188553326353213824363149026888472214677622855747241550437680801455994498822598408493169341936824974720008572779527542685091169056009454773939174476149281002574191943817450724081248902016467145067350887427070437825761703701723808972292000267462062952311741572607309539145885715400745736538861540853860605755358351410129300130190464803574731707254285350736850886336101482327776206852860453751035227158277359881471994985713726659157219982377786866265996825514815526774254990173526274804243256640803638001797667653625653229658482708040975345970844606121901717898292373631796888794096012428917491694578761932087819418417623603692008677662663162616278197633380416407015463322319977731257603724055064670098604889144878567755624364380136711383127057020143120529369283289194368182321495610260015886455860216481366381463957650098445962989421285943639955281645556448436369141114023838000904285687684084339021041049335111475395063941506814260073753479966206344734790641397313703967791375116656607989623179133851258973691031705436858836970299793009296787330401298419576670980122055774660072649864366187697797138153788076184862757484325660337723344315188588425880842061793796589962434998686728317145007461506312713810337874545685288072615425210414806589860439938794990626738236715242674566865185782307399741448521513916070179735565786630872094212946284422922380366041353255662624320343744130195702244006788583616592090196582516481716210121514614737321359576010397962713503428559509038919430120848134599114825670245087209247821962420074544657869497653359712283701853541496008628231291393212290668365155511206785955669629567476085169272690229433980888458945509592637181289089979887899224876617356843629271122547546213851641296581274955619310255519380701564909931668847366625213855789054751296662563016512193502009668641902298326761173837450626532676754959756049611635339486319590273332588607645507735998363038776299452711611160520685958276912742938703806350194195807282258103184529610500671623062468081669953463833594813995239854651739387620532903392960023453754020103484378108814284642234501518966072700860919638769905994590847642650735862875996209437294255971494715125442483705494389800859820395302546032435214749874711015056955122966203588217890164652573270376517411735429888306893592299791571130481265657174240253001462834921199187923411486235776671766960186910320407766886143582345308848067027049616854397194300605061608621046873188690033745837376814233984298805282124197093575091672751906571880630208987708962585580126910754063407315133581758906092130218882950938094050718501856366642408864866414079603737409356118024131037738250120590425642506523703467832787335831054826091413049369538066921753659579260726403834000064744708675019662783558436718287651074166237568290318630536248450264385423050649799982966253736649746219962274309394410759413079925886269418464698805525716633361326982735168778506861364275369131589414234952923703136138518798902982524104492751849101567728806155881420148174022361932472804820014420172011722701669801458677268002669263865969636620790640203860353732762950793067751534271927376226380186721626302120466225339126233590169096849438574078790938051631621937171150179380307536854149891582788846521269699710797489824976849936049687965737893517130940853258354644268804379224849197545248378782981501534311458648593481100829742878886239209617775242865940594558579040877223841632813185096416946250300661088582028780940905893300109440123174558453645689442913990886287758010017484963976632590117631965627060879262786152237330794748288580621047558000661738326982019091794526282108718132752897604362074284213140217637578541822865550275049325630407811363849088764735471076663025142090916256580820278918102857034494373171782170616809234934674191659215033456063457795530027612187885576357880158989992182196839774555621636051685312924089935552638842752393271630863219153382224745733674883308165644610065252914951519871285239479437741448687486756340539152225017829236170999050116094011162742557525103722528893432634256556481512610387051949202730430196103106995198148605212433821239168257806966006082782868169693960365358956103324017491492948327800032915950997527384885675453071013758253616113066974031458665541593968631264306645268187073847311669541006260739186788868187490868927971670956482542304565457821120425058424094068574967958957488321100969309055525349377164406807910959043023492449281707230933665255498463695143722203156228158773245292516776804236097699541585848326680066365340908701091702100851817774567188995993085581148498404759762387452070706792460359721636076704807647179542278129772422824622752052380227079907813508288989017297790791352792702567290077762814513067266077657366179815527117754854038367789867116918767865038946272083105638996774384734194620376933470159431578852780409619056598028517399767395441601301921981890583205220455256455178660537046203762678215297192943961112794489817486568030342508556138177246261375690670758559166199971326238567181394274864126293199851794989458959042952941236876685213425699771865324376951931039515946897027889243373389888221487623116862326521840690140409354585887529202573552835918798223253013162641231530660384732593328699763257677314657603459558138398292952456405107786223596265169306433379659396838901144898046431387446830073290593642223856142233934501150555610756549356489257296756424193706645520689908759980715622009940031410415726009933387418440353426733659509076187748865047883068370544912534511047063829574513406619932653029828449477134917061345400123162731714968540609656767157294291564588209402954497155804049149701551175840475093271570508678958014387215039348253342452701176147573207323451083317218857772414526288154591074158693947912115472549574477662989147790555058374337743871002287441205143521931520382727068271003949178875721883248073152985137049788856489892921554738977508363506870966109195630246778972261297141899155221597261550781008887782907856439898941383222056885489869654245952608930665925831669488430357449893541999774887444546368512830435512176876499390129244790341861575540864521266922890694999274710377102572204954561343748041890344634630504895887712009926828256730255946311478911743408541443829488758738819110930351947797949308285570729974927134745068109612830003689417967757113574091705303180814850764716473603367631301686970712430746163218976860741260802350948048752579296788226227987569719038653026961563201197231495080385083686225005549564494695988439314806459973036590522463063182526164042495692503011103815832297584408110484873167517497488157901128389185418148860448192809393980280990367975971588457686810237348548913852801753997831861300372978686672002050055754399556731229426084661637740573147179059118112963713516076342915751700957428036221388691935873332874441174622529367331624143336480712447135037737934384075170687799673015918766450527951624825224746238847376698992996634504593881398410573598907928727289794921559168661282835683245293836155472010615660517398202630264205941692498170328300950247113712721382097862333203446588001652591915569806934685796853008415763527618718685403961094222028420334134698300655679802588284883213798657427974375610393129231719360396448879044570497265524705636728018401800399948129910224426502909488343650623603001206583804329506949997901387960662809044577334460707725701083198816965941773682092619737951275635941741555794952643917174406550551723528285295260449278052948448393579492790891675024447783926660534747955749603246293668289354270814259139408080987584533864366062678798280232689459907287436377776824266949684833220102147688643181480368109368737520706369835533069855963267631117556237715044082312675250640795465223774932988300118857100084443112592931625126074539297129484292678328160077321004041688089360830644934536651685048864227577633992871759315740226404390292619139937040955182868122818214464764558857911735560423983059797406344233948256525250844485603847620503902631116436985983861814199462945173266316108989452930425973180684281448418240113124292076681673117279168401232896695598399657845507980323288180201979660540100814940960553114909658015907054989292373669810469155751965023032893717374536072092495541965742461925965371507218421547140265372326475118466574722481830212888048261442638247205572654167845745064105858739292144668302307397592807544844659577876481919187230611103303142291781941138424298062881555008541041455315125296916242201663440239696863770366996791377496392770187333444997283905402317505340938245977654220295755937474513637863715857946306013507772851488214120799845011396366617271294926549819459448942763896500791039430428609335828378880966586572242132122756687531076065083943643691201412544958338328829918908000707538392780406265197777131501024236594959777530771032116749938918504579080187593269008081542650420452570007164351609770225118575813938368505577245539327267810105609045279140230362064284393500459593378825775787774978107851492955390628648095348568409042241959465037641946004590453525217398360868726485805415878841725343727283722908398994844378774440486718477317175987819521870828357461582643407156810282776810336785380814916374173663042428193072205764013537134346414664813754716422637308485414145376003456996343270408109077432191839205166581192620602195002917813388154964314380298129479030582846904942255015736608033573197319978078407501163815709329270406398511789332734871576779988139215141428336604337968484977209723771021764480507447020444148719865395191345318258475178118737636372667004782146279263790489774296188366648930056925098565432304139923665186350481232954590179667867568604334057159028139456767312839212226161554071347572148635155365547154529726211489386559651747517246616239831556838080579050482103674704835194903295245249257968825982425726922453144638617818384986661782418297367226357863455645926795213616161163580602574532365360314268406135039681648655792699986435695277296117672900368238596016726848067573220566090896549407242798902404949776759252190710663698793557929861205362370461100808899508315112256022377331745793289657803451555169754976473009132229947760422744208841550348790620992813832150673901778025402968682731811259443298944994502559334211449157074088695459894207419566833880201871228918825547617424933265144418961814617331715515192029878641524775568553888068008911045302879540447445782879204029955358945574051531654246617282437939126199940915592191610694913999077438125615079444455495938720582585042482674693130721769611898122739463115341107317714396926768305435318549461254950222645882354439556239012816241554081295790995448529610744339734114871738318993410606129612390639025788719648421801190856658013960491476380788893136835026871990540990885968449533728342264388382379991790933380026040509942054950670382484845257472353216172022535998608168425348681851293472175219535742913790026492219163951222957328197596196261952748622531639974605574028065824445885570892085739325525455709755234442204630280742334764361168899421200433387671543145916596663049287865187186416350462962884786986010934986346078695951892347663121686011766769930520924768749823254174291252388993120200059339439189002534997140044711851592515573028786415967443972448895541883299466747802683208425401154451157466300817063643955565689845531084858885216863443527830637173848741380343913669214401051027282206057030857453026058660407093274039282685583760318709954192837969261512365454813836321777281683508202040586001213767853069633790509635149485818928742719794313161129407705673406364378772476126245141456768820104743985523078864210179170569615246824433377535838023552930703395606579488278592298402237808754711420784183146772253345058790723025941729863390041164551195135040372735861964878081841981834889613352993760281830728065210448696535822015372217957266706433295942528067563865018360705954704839879864578439002154330285443955500238512816058552839297595547398791098943469353053200029027886686501725749005306163863762364602994852750618647026460075049033785335307768978309136708084524755409247030471671954475744790366246439612880108961818266542676490432415713821822748971859309457593970919256119027174804035745474037134763935484842049294828198125340347100801869665189664336351585778592050274429729854918444832853417229755247157630198543372318773771757335798488442109955485131784146638302486525759117989214317904297090469399260609161155546630998153881567115515784350532965519148860398291362322857095760120880408886996290838349962944576253861810110006181601723051201721351164983994855247868923173553577487053557229861754748543826199793935441672806736325672701623968739948469543860407503262332715771149221208101241531738720163234578099138153091502074513476847298081554098580150788761022861031964330262666405940963491354125380305625849166142091134149276397719928857236843238946876876151242761116935682840663078402892687681131958173740139915054269148882856194622340689458671719688310616017744665488167691975540719287257845705258710246089818675715095573765597196456309516809503682182014432579356523505122912275330665192930515318990022186141767036285711322908720588371538253325191806045496145522950055895024553595695390017909360015415646223039975227093991466046322286760311719616329342373503854985729556321973902204062963932103794973332303032227936639146985310960796311783438042821164561776688108362146374198183022536085305531119655154949533777314507620663448111723791473266875890375412256632214148790894498235159247437012833093722269701218423303150559935705944441455523915005582526804651995436151691611013546896587180448790968792916045190852828170534261496088635263234299854734480251610279640059442454805549344390320488838160748272017708053905135532864112330016871592740338204108177440012272182254300027627699287775629325368843602651915633943406168742953188267139815310271452560160267323400249525787555667677695734903407350534757024631783825981224384046054840002412340079999128664012994595376017544867059183145582232426455626906681690631261362289668248399559597713560761322672293439289715525406106801116516646623865577263413245221542362398696419344214991706826859575580284229459393354978246260883189994914613941625675855197177120722087630206822797204924580970956368167634525008238317495634494257354387920512681488184970927241345984549136367155287993572198985075954050978871348537537612636498012633083147324679990507712042135267560472639596986588025915126270664487794933918417837047736192227103482387056840615692180924274685762341820589433851601030482053238632189501311198781897688077803174531300873809631875560205589706184522846902947083005873360405768887428809235168470119187248135629666266063445878755811848664744322842704438088117251909764206505745280514677571399023446797674687723738326219394380207997634988260081708744294755062097432796824317244532666345755930999341692302856600176025079884470135416759076724775925422278948174275864984942137915589284369501013055410153668482422599843133433455246648058362410748467188876840379858820717729698211136981012331686270975043236211075819575140837291686018847376615639854426478259195369071117179547589202522121242502951390522998856614211534207735307693367367882553623941512736647609060425824183907350162099121132545095017530570381473320330634229200450467971718137896051474712665402633570951905257843708289003422680997430673545872705093541580971240565524812615785596552169174001827303436160949145061361215846105342303831859426230088828656401846477522227107084278592084307596461119923449134272510471102888865640154800409538724734740705978611864514058275852981653336046438242420249692183312219694718643642480385140411198184502430154575272637664663635058075828743980412596848323741125757902116671639739684355315106190675790265849063129551576769314402927073490302601945564597558992341171200782234755163883354400312148049738390840720539620570086755123680124945504324190801818322093680470759436957127955501462223800226234870236544068195164228604254688456450555875598672305758342007335579388138784086287981217691800281232328993722859951300623212672856295101172979068778497306733830526087320898721180237740891166003414435657361718747397195147272848238900553890567824932327822219090435810515780749746160760093475350173727495235476831604879721119877526143391795181806376439240884992317894467229624240083242048670391331722858566584817031018404989647978629690768937588189381244585642558955615640110299930427788353957044835280870789657304082513139297280195371492610037980890316690417831774050618655564790024799203402190526547870172853420270141426138754563658823580840050402833491974741109174477786781107207605582568722464224718414434456673135900125549230425120118950696066058999326276249779495098538341621039389991982500347580243538487211744380312761081681836720675800427909887324875321979604122340024336312619547448299650843487693169538841850830541006780359800105808661780088991310288552354000249143994751322514320318391752977237339050239466703863125119944906896500943842613131142349436994370572900219603664516073083601503938794583961622970470679330630603875473086004498188321586569918858330986779513689967570542414213910422279726246889232254018106601110758013466211242380629996384085166785313021542496354147540382117306565141712573085789196691594136528939377753031654343663319594456898480367617563177759902642925281252581464914538113555354361061041547800325193617632868400064926029874455115461148976832383747917662092281316393556634379179870283012215362049737798730790384458786674199700287429417128842298981675739191076630015727217576148542812038383152760536294431195524819420584406006058364939679252855653957104424838304852756700828225407770369108677449735158268132107802212809665019208003960666961883770320013963618579180837578947981464893540364674900110622027362143935758028741880770985377372884348909709674071740140744715049191927549958872065509865331995383930347128094275272047688554763102100613872645844367201323252579923786293896380237074968015657266237334357094670313809712998580483383851371014518947343344439023399520859600946269098695134089753886155612349123975258133368810861221551221225226152010265148012532763205629716169750770943535900491517252293673086221525087392742814604956661118397163625440624745308265891656884523628311184809126274809310927960241170577753929579613776757038440840828773597600040356860775423975806735503991233574468273415922581930486034045667049467332535610792168463522685330080005845530307316981757820471134811092586580335528236740930809225472030074009926322351795692810281197344946321740648920013659293346481329722605003183573650831312874873031507452178482083499906723829587476464227626203350107818189553314353600967479529017986993784480471049249848719819662816846809127053368908413127880232289555890411130817729592256270938958541488727431563810710148566791265058566185123044518653896543643097499368797388471626023859771553839223288159764102598234968480054958169321406662259718110269838336406491662555516061587096415114354648938466194125652766908232371816683949558663255674731937953938785586303698927298745441357059573055451702405404648878455072466978787575573333846356077978875131817695478191209793384702244704250440814584454165537232012886850294539093767460984571047822453982519438655625286489697245903752243119679713639302305165742287732969881230897314127690573001016159698965240228835169202727223105007893053504366237075765822978812319395191499866405861501629484963509971159482296567439843714517540606347620700773438566370834866330718650574010372618254830502395597268283743457222130685472065596346859000673064549860535374226537709004733681258916222362200079693255465755134688562242662203157554330873782089634810863961484565926484273328917282797800841589771554170561178061352875654853437079026784682142889183005543659870140756064626830950124856553240025243678267563722015106245764457961174022911717840375243251293863751539538383117175049163833841331579761961884570087366035721816834448579165107062361543837387326685449157321587959314911891632743043320593183132442621186608079511966234753256203789330846170460929769491187985292963589191567927529761570665561607910918875114990697279372859607453794949510558197009332245410198599877742721885053599039168346935163184353647721494973534145223214633625024666846416575777954159988157315508119777286165260366207556371164940487732019402986938921281663191316360268932702918778397695906953805821124227063253893062710286026570460756071707224945392268461663341946570988115200463425273031928515273796703878390074406833815507612349201060869460988690561769077682039953084214555321313132959690196180040993296795895808584041160463901900171385439603330605710992521573846763769613619345712197194509959147980629086643780845507540609153042467845601418139558663047912489598409165984429146733148796842199461360456362605200227037457991861538185714379312017048055948129172338310595960377085202680048926986186285085141616234552494107091371234591338842232430208300402938509680681401284215718676810230039804716759952512617052945147021909146910318955160212241875397190363087202725135673983185562129813109144037255241414332722801444301691089841510332447504580613670210744694284336681742732806864204732997355501181046026195289739102433728262884543728353997604911269539619724430085520792873521442814789301308908620172854927764362824463165350075813845191108997573426488051796183835742219525499281573961156417570529029441141507776255126562319581311137723631639097070848820955170987158382656219737129065029934529798312107926740475947991692868168276798657414681154288683215170526631208484122188843323326704848287104471102143511467201924892742584740891439300859596386492892598117282021155747843072364335874774022904889637236025810537127537415059155051302143466454924430174923996632716090921710267501845720389422887880386589165393863231981273619921862254895442835991541941288342864450700794819398456102860031056777111140400218923721231223319020629604076361033075442546180905972502126879731557957049194220943533299890751189623035623254025771942957805175902769337417438176198542472457393402339077289698894909257658052865663772285280734430850574016423862035006925660394479559386977952104135090027565381620575058429041248124704305479094832442739135138382152470771666326205726500331309009104100002330648374331170824717668304050698575393472104798606517840974491183520869050778380555599755311561379637646145219135221927328835250984620922742729156657521115487895082801448980834111283701431444922924637464476148505592191317270983855296112110622431862841639549728935430120067462706503287080258855809796785356370114033219804275222594154665180606331856724247368976014160126437319344603101732799353627067162322051364935335838873673292761166374430636984037962251300843523128717043610967755782430793077689361912887730376409892798511684177374629654075822649061431526094827450250116814637336339472345171496328261697606528266125995174430068801078154856854501714411198430843863091223813674099830841008681784867057247049309644832552540362728655859887734208868268770887519527962109355548140080046884237423127844508270456533809045525290197363893640963343290654131698912441074858937707229076420938797420143681976489731137789423184623425098069648887292440578609437567593871431792421033582046212964853001033898062744918433045025471455038970228828196622943569839400172813659871527554087510435974617109908326832115465935058411080048732737907346975197758500894333781153099099610596695224723646213062767341135305485166811321064512377052490017336254987076364177568799371019786820964609520469792130672642111952408632024184975365082996684235139567490904759459730800694707345726665643339601565540751319533895608354624381070221288521488613139942648090783801142119264705913587762862186958735964133263712903219346848560871326019968249866484338143239977507810975159117637682571713662238546913663112602397248669763226048812500060885499327360678985513817736644367629721013643840529384519426308923298456590761651041500268492561990700016611998398946083822402301663694412301107894509718003769871579463299119436134529994729749544960197727070988872002188352012307455536092380239858661851054689075978232499644736443256411739017403858480504410979913725856202258672170821884576430022528757552526204939412940228087696890641499596478209160941660423349727505877092844345571165943027491239237775193265187156595170964322488779141452740884180948962455092436856523596233748406324621295540011983441341916091638572654566944065723451663377729380155165769533365951351299307915934820941315840988969830127179641531614211730619452132972298852568558134829868937581076180869251340693384264800475140863592740537315214003678374385514903621476671339862184269966981918893563055556472482969830960192970926292323279809372216910707111387202683507307380653307243787795176521473569264671113433649054589671528075989798729904652914110301208624095667827066009515718974059926670966760818415278859035346336191335048324951095937379764253070933340836863039355585108918761218538626744554807421317970372016266628235935913867955410137828042013177100175586315581597814158073261691698752356014244505394757899100945878093474399703693028496056448032932992748375324757429005576877532434945784784661675717844940857174655473388027233264583802735309016847403237658648871864914951235235420897873631437533493223864796246349113791138093355686820738397244902987588043766183947486317298986888749510062516320598607906439879310234701397948099884317751400655792652626504739777671222615999912987951771205229379236484738802294539297494389343700123079574851200854556454863397825307627760252040476005534202526935141852706400900669569032436913316390053965842594322549027617611804114813511054279986248161996600835082473502395915537969565709747133749409156808502997540390236940844262908449306877065608268305469053685605107595067600861109594019008822390744740006587657814965202483994801589772707718546761346441750337622654170058168996331427377961850489026718569528445647674380335201634578114689003000350269102075161835078031713167401598910988471657056891600968128260153045078045949023390351209707576738338972449877610165598851506792849625449061132952075111659852435136751433867154054125429868471514088101336441188025077625754207942840594979757999146021489487582464174562553185059785959621091243248066072324235648457748632043516772532423241058496011756682565558791834867994265598470462798265882089347462335564821643705847749101973486742967715668231185396251394296437634584961806953787120996712219702620940411335136457977742572730285468297742449883875563533653050530797729636088451894152614781159124583878394738766356252432876324566319519723340591878891760628607847886295369373689155611504263102588700817325251298701537771315206885596618162722207103367121480779851345366426132679059692550993252056485249973724535422288140304207462414816674983205584613498578909201122927591115735618462566765574490754456396883155343225900461284897758724727020154640921389421280980798526435669941233813633286748821983706010666424498653157641731824491035090049197173965522490569277718396732253416483210348651090210312759667766119435977943490466039356728011091024043332793222914108997371237491577781426575101662077564031735099470636043131189012578215357318013897005535110448963935926606939519966071797645455775265868601805371195713941507512174184008765482495264191409983827742122665204452224142572090489285722143947964422273793382974482620567095090444527088608085611710533516730343582420946634627584915008743402554131859107292165252319768381282224179872614731737683505982375293986275132485686297017498768217149960138101218721891424900726641150843224443806158358023394542436176296815850846810111643282823893355723154084294931134305371680955537779732492247032307207684984675016011663810369131225774703235989566527751665453965034754467520907376544950347032389822545445189010435082009201943155037138125997067830571094917944825860237072661888430814671252929198118226961866992295796645503037039365862785586578630850211991592238433156672631771815469832696909658326005407452473869990283577591744675704460564131988070170684671869245235745725094909873662984082934461270266255468617790175657287763944817506526183633373701672767153005282991755421465061091680424588559319713417828122362033527078378672519138273300333679605895551768869615193314706721327524844276069402131910754582269022531498759301194447091143597274023908389273141452221626507397347938856315243301389524931342850901029327397512182989871742771479729760284521334386664398902185751377360831702958503314909414799784056496528616891852499411463135610971528329821018818091097970775529677469478087149686341225175599056868167778540049287866144421578859885237077543536708992131306027016234800687676094876964894632371705568670051811939601758277646300389537993866678904749201542920014878751401860503030994882329567737292557652001389130239907552577104666317838051524116857111980457491220643396810178001282704639037005303732404967252062170175217180432565000198876981198806136209886025128237787257823729779540921780752002105308533664904080589245843471580616332392029207919222838942906515656577653326516180468583482722024426871605970408445103619220360999575393700363162933206779905706722685148142059586914711778665389975674014828426373325900932677371977544500846325193187349496600430664096158532668359764895374285372393699351636105718670578294939038694386812310858588463923655595847690690165954119989376682034324464518653897788787588547796632777260766045161582238618893723620050192165847001120876792627569541204181780889003515231594032689109462330585374525566183007025446767818333317282300211315798658499622779973781482437255690080760814261862931479752480231502975699480632007749944906971541194042740514905368774711201461579351874801532023993438506634257678448982152784564607738875742953101655952409163828883734206922177199316238230115109715039931583249880056872230814625016960265330718110740972524960429996784253012332608191903596047421644876239377191559804477372266538512415702772414159303765611489649280168175556477701243530951713237372694081918762456430459301409201730497404781477134273137603871379008509482900662659843419429816381588327754269360149819008442808257508708269530893186087859575803754148363830138225857459666663948623022207772694501783377374926036800353687310178134609558224367211719867606175536281424803222372117457260057589130302412016029108771482680177273983396112954669684598985103037408138032588699513952288949709008179199325513328972674774232159158136270488363359332558934431673941727140124615273814792606871424804599863813205013783784071409377426362993367277468198537207611511850018675725372436949881873955410923759009546658036365771982325742541622767479787462005368563960647493702239570254772771838828530715399573184773132098550534236254667696599432261553434027571268067236460038479517603804660329378540842505557557313937578235994479057739694645568218453875995910078017064357913487925520541729964597560037475170043569432118526196784093495975395638374729104995021461734783382017544964150555784573685753681329280984216850058753605829872081284940632821466930273036252507832314222704513156516859515467399847915199819634521353184355484205382535407055048333333450195458999990138137472387534405349516340632226739311222069986874157402119702028540767914767935198951157956414337901917556420142432323929584157537072521779281313819715768844813866426811401754839200801650443741521210732089088504830475895670321380213464570093622685799754401112938491731887148172520702527716991559949698525794980512100595488863946864029939436412142746798609107842511607572897320408546890128372042683824502399056061831210601354360335906486170084502451114528416060701480013322182153363055132963284679851285525192159577220203132002817138362073276790468121279648204889777638015796740667151698607596125598024791996118510423412511106583811219241103225949591970305562675671980998762286957951155544506961822166225422517238443129902079383104701610035930814254304245569143262191646266641318118845898365864486473347332873251164683507024469163449944929722109209111246196427672822201749946675649278795177998763948394613252910633251652872462791950427338685622525734780106020241373750251925325957524037188994277454252052090785419945496370179635306377301168149058845341518427535486476277290996381546608219714412498875349031597232237376258739679693920560982686818505519786202374823766177812692559497436427520945850867034499963104511772987783088802238269746267223082715800889917185895637930172121235233745907556524466498595508122883311861361491732101257871652186458484167961332022759639969038077177284320545509318211605559624608854660703096959731519747775954310247108237745219618688716352682967709761338037857016304097357052864136501993124001596984485331333725930840574042001047603674726758801611134671674235965887249753081355941772691884437357314098018809600672311942411548056747918138576513468157269996025689464756162717041566242904440840466036758371526560728042328758126395371451117866089590423614721468534830445383467466642841855435164579418584252100141547500790839424315536779268681679809943890734817739421223963144750157506459490538830161579320931733471412561486775688193769966530857324457143750882907275969038703206307234174113469761711148881516302162465461826574685089170278269375364866601258133848363869830219723793410873230026061781071349032072482408189747474070767158091904225534377772034019142465076742201063127144364345990283240704681363823089991832744991054127334579433061366707452328329289969085780068861852563940385415253891952504094371598275810744297891409734684307593191366828867500072766164946023415305030055687224702182873433347872101797651665406600972013718711442375116701659864661574788773067511059706483061838280554397805113709277957213510100716297872120113822752324463707521947760075169397050618368016128591266024087545889692912839288578327732897751786182380795030829654832856313937288114300840921562068549123082653850673226927100781471351326848436034853702051116223828709228165709097601073187639284551082678801998005679699973311584229264853302539784928324613316590906242488001989952580243307774479468647821930644784103364460538555277772568762849526065605806465978869065837164547263618271443986265354550012724936961215813424251407465120941687114167271474276418086728113299428325160683129025309007347979008534465527729174729260658109356235026546988985009126453366555655318839822578729524311930348743230397793325331262493501282691380019067853941187345396091826609808027767496124541533969752567405258344410719982211701802900994286078012061210400822177306045809969743506529492171300299791554453968010615887713001725969015678598322295696315735740028970250836515913617225429044518824438994343744764597766020669639411381534427262063909698940346952997179723092176884348383125998961516036128008724199112544253168987425026033315089656264870023465305522962733271113919897148368067927939074048610174165976091824138206653811502008621834977497728536876080619431428855062042278229389173772706523799103370044778303381911514527319504202350023173806300412931562308985425180600304854647319382342419118001909511147204806981019370509747568807798864031163298124121216438187561128685205866677691350347908649483826465475689535523594256101111691172888216388342745817895834543016607764131795448116886169168935563185944249043759256406942501436352484049682760578227792402015188010144905741660682576458803014944549094213235811448286433273523475994357724403330267784387626164014506966767524283700204461384160226463524376206731411339253288406746199483937195285259266103202080607970968277086237621538185360822356663023912494773280070671471383758843532341122758239586863005916506902777815095131782639598705341126661474420928318385632422176769851958313127518987522292401031694107753714464419665247355214750012131593474932463574024987947892106878424651070515978638763972098735085943445693878237208767331507235816458882202099699478194393044025914615296289315160150744849293003556332409015230708136562602134265670628741008917867930714191207968060945297245273188323424472883882210585751052572762143408063272499092385646841004519291729346607701965367669925097656310028125355481867845684806330606627090275763209372463173528877873499587198741220096931127172459160597578803512974549054800382333396657043491212261179594844447355572083142909527073873380088005797792390338839960981842129487217964319637454100826229819426228211266585691351184272503185542869665860419351333187307654070387036637076563035564984554944605460790447039028627432352903241935012967668828309712460488521975029492685326586844949022551021069973269439502149056959819565170985679944041173543882113737853328613614557106193998920956733738190618176358698548054781022830691953151632503780938602978123495919433745588065799170608899145410892099251834768849430811954556031742542376832352255405155975340732315678892330940258068121690189292371707084859457476018368851747968128591963767036289890772618694464663547603215309700281176601103460117004372707295480112418835525354475826439071789176137527323168287705148595058863413273417488124223871544191210399591266634787323978034487379882381890376046147100762403079268943695011770558486053902502508419419666146133757277095228076037770640075282711044022419595179036333966242283620586375525960880718646391344908692578002616102940254315815764145917180176978818836555680632853422091339958253784751459185593864358417036834241967780675805705485747692175876738970937948796568114023919229661689636856641696006440355292506022138954344879345532643657307823360760482641503397436182149458080136099308539261186461776331970640158443819406959093512818581148555672263486076019431674729629601124341995907765997350376603154707692659705509596591210640258881236875619715851992070458244361713854032614467548818507777435011881455032789578987810525705601989151131985671154964068956774980696474572993243961256296479981819057791444049454124272928244429355118578214711316637689955307519178172786556003403924429249619406822741600885205672915619253026118014914297312153206942858857244860292456809812466791027625770957057473808972216086767080294295609300131029120272972731251059938465109189396051613727446645542713835414653635142520935201427486473496969805432246555120040472478322641707295402300384023864938273227872855367294643812836421090878277734742623471651918319694951893583527887466721872371316288918872435098734753951418812348156528709723859012542474132519855750137182604313964849731425225087862452518336754906259844663091256744028857505893679917616659791664542397702829964554265095192800744684013277937993227460860863799007845986422635768539588933086929016172646526351524591695430651498657538173011130585853007079079684366026102773968843831232771158980273784002548516224971500177178824379193510732042112697331924626852872689988609869422728968716075646441013019391666972101000945189423197943452720629045062528300280108282108214981445823434791656830036454790075208545073587208324561859001470137348230222658650266739315613848084556929465094445188186237210315602304990196079578224060209496351243215417455073919459587834628910147419014973695025602036724344386128687035877000567343182992389550571060856445687266989537531104545365446682013521733723593181667012154496554619723865057637816111112763180581969945346254853437612263536649908182825467560885682252484116577523706792346058973910151729257762741423006977672876489812058111239977977139488571928254414184158555471409273313031433211064296830012573164076494865448546201818422424002232777869467979730691183114320709459525173427154933434949566716142684311995510806952970101698695871858214369806788607471014285463652131793826888474663486390132132037542809013279841561100376667689034086735368686703253054175908738348509321753004125062880299894193772896419243724798208735238718108324372853920735182385265777070243049316900539779795295660226355287564419742427986093259388272495073331525335726594259622390730038946147922708456995050609661556398650073380256534245075792618847179378926748011219443793485911741069376178873236143257479033621886388395619238832220947848835584490119791568343047377601877213681093628760558597285222510389173080697845223840325531769026456120378216562513831940507729111450566641705504390379535631088373938624406927047404998608924373413838594778381597679449549981508050302586726598034035329295360408755631660736680531501692660396432350593767567130979054094393889194424059460784184322739293069778830062396824575717254699523529909462365715474515698365181111137619888393184446534869835265849307861293213717737184328355311947990182719932012704219305020210378850296844166486511860785833432345812049843999067306456244892082196780200801022599962405561041990692110231934628777334732104876900686865942917358994178207921731185788481320258242753472295731736570881112937080031295489645636753126386553270149971599785117808977805555294001873563267253365368138607312125487454500981810544489645550431686981523732321415473832037278681681825304031668039016824407720221695637211055079387787852517374868990393289439786148910085231201291238185067360776389455236401178650225204512646964182292279835738798407373083664084341056066711576141673508382796322051671112292309685358850882186158313015287723069511693175157359191537551089944193881608734159517841434326630521744097125040849447526212131174426347288600335087816758298936164241611464045709985580140786008000859554478441007855029876531464783244350239397383507755355416187110796868639699820111114905822288386257531833790558719501667974481155795583588508842986444070452193960549694520586425088397586357898303853376772385097011656340612558918394146773087645610559154010429450970720990252313321639649400843923331093617639313119918672782330639534747112424013396303652629467966075199222148236610771576021752990638707969943256254719196420220527958506709845830774585153705756974771981453499836227591060600316878530614726785713587971861320477642796893169026864363902754950211311115322141581248280318012428335313812205593883227320686565867662671373736856252453592393057513184258848058499078182834025175704215724101788933143431268694275229932390567710147295176036202300616160964699858983070771647794973754340434436159778595168145729658887845766719862950250805904075405576297242359328741835783801384028198056988408784928164797058809028890565981781618546365615404321663492097694539669846144901529090445843754826426076187992920957803806740682470794739714171747030606754905308832759792783970777072622564469913121755678776378332864629307600019636484143262192717835001290668342006776013415706311931097244006948090915689023791536916686244109728845997970979370485404774526762671522937132814135252763982881658825933732400299823612608035608930585338814526210318399079209051442333771712717949884598830118582256216680764679163602538635455149592073874206753017172733770881429866483367655894809141925483399679042456835340350976867255060896897066926764841888525820964130587389188454612989894924829721266886263815598281094656119699894023454292507525879641675166197925352962991658056239763247726721175429161289181951134590446290718809219145162714310039945772274175706115788356179655556885234068162888112010159011551988183571599039482212383432325032687152865297201082037189375468852217094969105007903325804808053372952057059767082483589232650545031616541800403748928071053930921970537286581603980905131708778107636832854177778005093456167649447571059880317104075946569810733519886694641515239098521723850063522863000695982973298365275372284127510431374774264691024634929841539534344101859726294114337890281728883941588546552313148626160115898953234560660607724417901710236885910394180228755580026206208172617357702960610435285901385705506530833786561173174595490237803858058279184261956271988893360281592898549522251954101103869865276241862072396885081920694478290193258816682337075243920831582471599919050867146241016334823609229098055830226266650154876549331164620282039013855703307981269630836414433392502006031111791245100766743417846684372870811142649408321698953304210166299753794389642792299870130071135688460918570688002173258541498417829360524987665467087883113166465475165007160425328343507165960870961025744569643504476313097941237729525996940715281742718850288614737268870491210580494270742578438675136784939703582128650167122818050016787924514090517929353652927436075626923659453789921672640020319521848229084536582541343882323999217321667123762735035141499356998501039828244200607865620012282107595314486802903425779917916848034172446869187395157007799406329062051343609919745945817628645209960079117360401984604293194028387083553204360110496913195083225754761775696633847752841856309789221065962736774047283302828808416582286559713070166682911699468715639591034596421893710155559811397069999621896032405857440602343476232831903201672891645398860211750236548270444432968087224968472638295092016629034769321104508905726468822180333973505600426370902336769239014428918232453348208639968597413259812145157242478459788164216644308940023783113515377767423885618911475718332631069028710024746656299739481647914542570898195963264187164928075284364291773661413144556814570986961874291426180465510663546024275500383686640889983479601341103768408356704567113850324731872312291358187277039484100513224149198190963978356432776735891063460228819196280341699928954266262364484142263727838116151368603125443911201259152149589910504706397916649799831471629471697221633633813774334827786367994412878869929148387456446010449577359262470436034048961709617214293213754225547309221388303225199716041860464257332792251571616045178185499517014010503361935644498819780304625401668808230061414107672158729466936695344573690220883824184162829943916268739298696997323835614794433841395823668237919322699101526234994912728691269822161189955201133765949553206144770255390387464327497224519255109288810737932485852179120425782475630485515847900853696362134073446342266545535030053314268856762718818293658294286142508786582228927665715054448136704219002915303228441534153943002659440366004503619113114179947358140326060811940131178084448422567193028606487610336565570860581723979569337859639859992780518570032117990859142593057030611994321806947978638915543490380332818873811464712384937416693734134539399907691205536327115624067978344144506094887976898830075485935238127972342368745139074201972939263627197661299231206425141351536164779788196846523949596769532664287096432854375732124923974601930511824981259932175738475150846042825805812929590421695539167508546278590600367553721210123904037647758165131194424891402515551730218524541693245119656372382798608293568928056247775974373072063720439546625206508516554507279344794052142232382153336701835478314110963900561409622718303193466958483268120118050860388808760025010210323298454793153333894077748455912934867846458355023456476043220680159358086892441069628882046803157924108988397800039362815300904633897293694891322799441814036372752200720287290636430677954211643413522271632758585302835419487026421822297690014142565061670036999721773634477952679647868186087515751539181664065139328170325435038765433452476504421680274347624666833287176602799823811582887364475721341066491776531833786882122069813923346428364264839990218881305540025444379897683113650952270542038847344298350903420090983255330109002890336990567536253280394070313082523099936037698984015727056882449876852734793003610849266873252105127741691623599417596256470969488469817262869993280212648812046213457726819324177862276571060814955272427845839853141732583978170495613370343035689069252094192776963751239562336973686095890937119284994673577923401214818905689528824463489403883421001433544528820921050756286035970649269786065405188109215194949451643188330790255972678203574405358411646387091577654471726557521543834955771446505763365436588350147448970176636725046498956661510777715749892917518080027122454878579341580878632672255257841220332993483041955491385351652925727232355991000479321359837119918777847264339632988767365018451867038288149774689222636796513412080383534507957582499408551040371077599721058487169613838338817915904630556254333092292924528275659572624806436094032419149997787707688917247842751225044986596351587843312411811442597694100445369157913954081243831418641535464987841374126414666863498925827238858381283151823728551024963508755714732557984729697294528252627116110716578812120486400077520818647136953401957655874384799811312954965526270137345540216832032960885593925921175159097172751433085981480052854244039195296617279973618452200469610722702369368108521445824073004744237164732503690727453731106710819778375412213076610445799261575908581055421231520494483877107770945450439055763725551707905688457148347665027978444218422892917953266832644391709848898593564108872801646119825679110898271006023759622278331490970404138317067049562791363377374507814042814616984176978372621773671796696335111116291999801966102322596139940605890463146260410043300015891318163031157145196677635060965377299173600838694327013885659603092975597099549986978330601335347118252075131738577165583989248281141512595219241837326359785001444852822883478256842741288880369098285571578986922581709134378746119350501650276143530016442346388286203206569351684105246725969249727451004057836387647844441279069302352531696024294163342390366722808989604754658443456815333900211726073437398833414839789476368900343530020038233771645355461792586404842213293201831959157192848841565962590871673444494752285145693395665549396169865924552331654973215556938946245651065107334525880529320809866899270256038214951173678600589600396273852628600243513541564753774142121385083674597972596861772018612800444144071734898871404629527019513528934165304276280772615139399845255149036226942678224694848483037394887203680397312373212875267179121066322957520088529691127971404732214587284576805740109731639424526338970163282111335579391934749013705168561667959715427716133795508274570278422963884159403875121787475019738243252533264229069074902871920073618648428213761247648393390870616611943146054578903890588097421231585192673131594373849465897436584236138102590100115494488866660085233586432622391193905586067012035755495374678867806335874923771576920359179770199531053627731816000125605959120711809238021291297956073955511791653530553785830725633145383462202900339791152161807159163797088672729402121177596739010912204038766674601091811730424122712339858696709142934258568476687335288002472771158612361998581440186573486745848163093411693918946761049898933326360355768821549455609649794655130425470515785035197956132657759568028619055451227189164469268297375337277488680405525750418578230167303547034493983519878378134442287344311923745658335840000225355867856966554085304218726345200802867602650233912650844325895088206441665586334722900072190487728074614737887618081909516442215515779132674842877450613642843535297348548160731381461307493449027357729944814190960853957506755626973706592340356489700116451359175159566243424059855746411081038226354576913270302171917571902976870285745455932851242603548901552918563599473845533975364702475453993318487949608110546516718391604325440342307244492461537531996436157257848332286324683356337439638511409782377633265456865852922009019184982236807784133074617703895473221409231013751831829681954409422151321783767550842105910903283817959973026859711412428398997635075319891358203880848001552335426444964404336138140515010758755044694618427540277657606805590186451863218464565286216703670006079635093104384633029440190987663082355932035360400988466302537673136779054387319235187962382124079700151131935160561684124892906149118191779209230869381004276970041085685912614030773474955769893135974421993207976995857870698133115126419914813295073985673588383880017555842199325267372276413011574758317995728961602786043839524797665819782183337253751215546740369919805516780118640704385490519484113322874158844676283545458378194648719632073700291415523545168561616220392602256110950815526354637379660950617963170230575797510589266233944726276242647978779438107791252760021560493839859536374811517773159597482245367349158685952320688927031905016217426375015760288726813295467264780370801618717579943951892619529798904123249943730469461072391544275456968433186726639747831068295536421980308638204206033276780232494925379678581643498140132923378650569595234908418403571711897391861234789408392866813803552549107865207361149693322802533062838200341838694050424316108795533281748582232415452154655580566877633888992821009996990339511083713335301454441838830665731344287597065256161208648280477997982277309303092600327847939217879600506932089473186876486034049215881448043381484821196380978909444648157135163112171044094032284036112791865287051728928901808276084299064596438111992371544438360280072835705968175664790835646142691404444311039037787933620049427222800598772471604647133656056126277530252549596338754779271134402043970275638707835634091007417573594557269075404496448371320502832724140272914474111885344387379154030557714800976133676118555488723148950805155840596975445078420522222138541765944231040172893063310564574005199162177375139479916287340708499511612055923798222080026984981279090903250787449985427663438691100126014189830648618271859450341003905062501651600076114247644331021008659185907793196562362103005907066157508079390571781318691737767032119300928760724763196850539729805629361160598985692140663307060197029067763023205613684661303576452900869534310750464343227798425758844958360564362377828406382665552345440142390367012451365050373710319249180811472518776803347232232469980127937057341844765022142053353295221363142101947346199776377924179183170385060266166108016599624315983772793717509241539444127681983639285859310202493935370983534838529419473094537884671804295241977551126496768949995483754697468130601402368761359759777716802968056882142111985811083143041575143205772438741728432029256933411286020293654793335590509473591215631683421650200417930599534839753593162204255970130240360035079175236508890103244035181454632272921876598143349135839851027678474952860524112744974233546151301885833235159897481334634929628916330757316740673038841220143151015886862283929079421086922134931789834300213717936406982782023768532588692864050564134170369468953233637378815451245846885105988310221892705602469299827244562436861179690104085064520442247118626098177193349328555503399315939275134856190815927851039002949684875393222528633158166421933318321015842304343697066974649817642822403787018789260293724991750841814846316989471724501253383056917853394042637398121805316551053030131319593673703176668367502546656766940271121210731829859393154600418435756661004589053151979231993253981211742619821654442661507638576509272819171656398888175100565211922284895438653783482696292323806641366364877110084733357228870714397225819586052741956399653397480539226561008436023874871201819256225668117106535718057341569629446049401616114840434859393342067956487253049385542901165358065259354958034723139937666646697304186096532714931623204382066088237769320456125826713232575729068563301457743273259419530128550207142949112090872723714462861769667069124121786300601501742972719459444546828141863475878419404808586605161314588895490764940299472842741091041034967482502176777871856047275151654798736797537099659375587901514888606613044059983030653918155619255493141641825693249002931714104079170997519554238845653681178965528778833072563073022379885174114434636646760423793023881893680243050358849798550780273318531657053368596465808512764536827928885761824611295744349653416872843926441438886070274810920342402745482640066413712689105047422879483460138755275285598768602924383271997924005088177084123651420124752034759863335301796097573567451251522307047620997327763070744041394066722571903253173207678749874451957055187917109791645934620546692197039997797474774194464735163821676069092887168168626968780124560246197038347085285760925676263449715164770970658628544291759346744383068865254028211760389041074818825436238068079103042779571222087183914570236235537321330625041819204123852331713822317819651170339651029566249004357796104133632876121300957883631806633569756145248930036297843194988590892804066633708215052189402027010177062066366598978577061760729617725182530287457155941765497314313807735389903867497015435277695477759726640076870054597204959124264828873492539218756285635502229543770030316754155360861810264496073935302685010227743763768705658192896989175212789416547598041264918991084315040882142572884403295676501350628166027928516651937718061709339871138315033581487027759197285793990432839604636485649728705226870784021773361061942057748754081575056368648335683960005929173166767639524523241784394025959396766987913254937326315223086303535987469614103437365941413897890487495869830486362924138981409662919842446185275485717647354715444440747433563725929319010337570589816402149631484155583449308992584669235216132984426820596210507025960782527888300945994062029136006004452932626396810802907790200657121242179482563942907099972099569621965816910470873325143205597377612830267056814010427091944710474321633952926019926419512781606231152736817660542345856795040105881039514372701404559365085060198974697644653991529666445028686578147787386622778986696009119212069513658062570133998005476225589352174837030546286945882007650539019621884399925949192076823485492864233877950187487177637615703883684485085797147031855411555929119241612918059689863861843301324046723976751443319025582728578473289508728852529040943292987572116057031571608282274787063186794770558079886419773697866618487403024434186385446337605447109468621661275871493890425263689469056756737736746708623115957295422048050192138430900312912022404145349546147469861191945616999443866417271976322466249518830308379971870077000131870759445208219850626666585976802529739145290902954195035062394460753677339193756422674865065385030238100641995578916067093528216012664768362568720149340085234998630162226851865222794370119277756127521697382846704039868048701961330691024092511276839122486154127836858193061956716273443646804707277741336078999649555314734122408178735230122303090445267576715315507646827919015407638983889958657855708798206486490336438540831217181987061264045320273092506153169855624098389987839468788507932345480137634362730007415444420208991894114195619342156010869369901632119114080774969721239430152443278803420234280250337274107993000690799808721200612031265577712003052482745196743006544299536748739507175555449602502923020852713595854118899495171003130072252965756568323940698710406504846198410137081710852895547196589970056087680985702308270866435508809008699539988115738010836058383330296215708018559023744542657104842611066184357131415053932687048380143624425863519073407184507502296094666124046704531298013812164700943191502734580239862566997709486897350212293816479059528722010215741928310659150582245272747658078228085406163484474465569042972132989706703843177441201118891552472403742110805886814050908595938870124112726188886427742972998127442400280551352745249308306122142344493128799260996597646110068042687192862970416576831200213309518137728590975818732830423552010344830781309160183533858245103387160412530198756672832652443509547913285024247400577858167217067457128439695457866112369184834564816054400390442450778621768614784917614812898066602091980649969622734689675468962218107184036253754305278078261213745581534759227696815325695827112929438568149839420110586480804372133462505445803276479238435114337624467796523002956734541674118316120005373596327922284445076737084133349601696645454690227980281134829698083610536643467338788574651115700991136046592784331395023014246000822622882661937493617387854098880143246491265514386216244920523997272463490292775536688131641433767160545644807071183745958458194990773922895208703267648470873209567450294437631036663253113193840335681488191919202193124341801222420541192785711315414455478382186482336200073559650721975486577064508370434309611203713421959687070808011401888082107484843263932080658715407998872136160893817445101040365391389111769302481667995741642317471838646338479688718470525901376872920843207942236915188450867057240112758740648184770653659356430787151349265184724236314591567383261288561699567722447298683711689783843088811416904662084872991377931259152937757088644295165791686783010964010440954014448775940422081228292827394093863948029294274296470019625813335488849731119243479669432640296226771302515847572195968678967823349133063490760341268973566159144639490517782288400334390170024795192026607287769893836741974060967034366206831061451650785813938467078936257535275900966386781738717454259448301268318176830354449406291018840312970373789198932329402505336075914382251698934771152969622254842174281334295260730974886495312898263688820479957421295543149924516058434315493609900992850808798569211110468521793039738214963744002057377556533263822750113288147888640407361115104941539346592746014664685263937378002875654364496262485433330443444275088479035641222919216033818608285529568081232570910896987584148836052161809376670917540877168225637227064360587588654344483632892787091428176445063200170679332538791697768149604555893475619858223494361968934806643212746483439967260444245316592597568608560662294991744763134584292697743839480322088916851517730521208883464273183836326032680132942193355465237639108493710388781481685701501019888238396154515549599177030713266240144581747028395767731257270833622341398046486070425644037781483187664878555731113498424512539796609883085338185000983790467570191973768112956609279978273916209665222581115206660286152173216642361851842379942397410175921078482884671542240453448901177482797085719392249142075155031928456105185993951166630492443309813941242345354236578460057129926670883944864216008144918623513570189186091140629959852205436204354376442725856103982443572897614797553532672829182375430570714926026466024037518871547072534698103961582001724169070672761586575357356423104023579685438790187926256406153003074702514487310195449346829736486640149102742048970590030686616254872306785149759220387645637883790462515537088964027456557438446249914175077447802416032205730012430258013326761480172606699802750380363651852879877424692744964201179484662276808823197518275730229727731122588468644766433027364165383655087191440692118141431943019490843196593511989081861630701757015374434773212387962623608228261878937950783187788747546933241720079495456531781461141737665625878889778661707518368042689823224880813448615657571769485767195484992611483150121695646538597685760189458748222195789800853304944651222090327076164317394499273904806298968009316952715839543154162089364838429489268751890673886383975265957180658503959804287410087611842720842796705585555372641702590592695307889735385287612742150268759699180715615934299564316273731291619465383626980218860745812868613595855817050050063639459838200889664923220186921784100750691504074627891191757820065825803310323720940311259281326879271784431651414644834088313118389849235911544358813497547008530297955352394498486885624819891572462032976292123670941744265726653520485383677617593951612126714630701114519395156564524138463440967551909722744564407586822262093840782475588325490803466012761964338053428883784215634706443553142825121013620632972030670195823362869399867595574453067561689149556031874262048447626004723065212381997541542971245950966446042070299864721697069958517005158925359393549580862642078671034082335867412432637328027695600476089600652142615394633237401987773298553283753914229666583295507286424757319525110224852361134497203065112682443383363371742627544051654293679242841931084791200716040783273535712731498429096854816746137694912174680722098284002662677420209027228326832411839742618232198451106157011593265289632679724115561213622950440603457645231631744178902666167881767156098011873032261851278115920048658768254298396035678886905368426361558947468301636885363049802780012885798558233249724531914401371012495848587378770746015325804785604392167206966831455728786058787837613025291129717602379664788744002998893631163956347620050681627533258439556200565188663140101155360491110375395910718440148689011027223685657984167110942163006819232632018230208287111414056378744069280318563543891742426250987751962789447203709379509096761816791553957345080842343158457329937347647715878737552263976326078696434473650987103634667345632163867574139101575180063434943431218122491971911940719495855522862771867660672564347677722851870165545371248829116490132295082666124980289940965493711271494632492508489488738456169761440646001713903867556774717729813548961356437258500876618504281787290455662159039080076064261763692345233429180134002506576388065057196853694616739058038579539948068231685999075217675103063460298378258502632473416266720973855891129329664469287422925549664627124719729373625132608623698492943084125009093360825668678646501489069453420313666385862901685187580442533800733856243367542780531784969389318868088628096262627318189214170737194425268743383725047677079098328935193027405321002911186951793155099965898210425742971334738802103362724313944813989165741957556988119327003185024941090843883475401779493584300714574965787182388441218488360997728031997753922806477996001166048190027072031143647183902514387110154035196634754950308409837842035663000207034670557086224000819797525558336797319578754341429502675766925902412255418357821197028939428532108093667683048836585276072171787623221659350933400693123548680274192909369180941310724009692567768167529911963365000283781058912783342312978003218413901547956992962342524922848641610570895050598096200746365975721388924447580011639524872241301670711712736747805076430587450250687530554333249203005263958198434842414979123736304005423202674243655283774323957309989572954654219832883824648619946852322892142095598778210177651444162343471897469971686873872282324498583758380953088138502081908007212222306267618912521563543948216721467128256140743250508303309837019865054932831403088247988079836171722584024959893168197932055125041043846951977978071160797414301507523520328120948480403584034697963102859067742959883665808401385960204687168022954539118755882763418693002002996156827223223473232011606176144000804618956737734213673849640903498724276670029109476901144934891110964493123237739717172398780990985802088410813484093095677425173426444687375330276975004856239215495436756596113957408989896399398254727510129263882297661121009588566711425379074048827195707632810713558736737225335491626293777442783713658808655642154974410021993064917639763051812495046749428999613300304861685309307928882557247679955218419640479806168253493795072619921974283979934047697787852805781602612154934137587325731289236754778778754320100617258408171046743272292753814652900890599232455855642627015265120337249824544101534780671786015139817065836572042509343376344729081644091423448819329610917463131141551222143908260461862819036402073103013108733381391191832128443011034823486222414777232280464614062095236525485899942785104075770906567771400709045327431871494020902589511136849487976591939041574214102736265710737658911039953485789902385636738983848636372925446578191022922166720317523309203576193906083206806261949827631215693195306641064620130011205499303824715346694916580223829497131345560118462423637790638188011169099674713208772210484716097678032360368162117341357096572614717640640498809126029093750276501058872302379881899347494617114928288951603137285865882006299898745485060452252506066251502665521111819001168547441928432023426784167706847135349335044123614970921221310648852249661089771032749185133058534162409317764235547942832646391728377218296193746182048136657334252210831348445141202833450555367146165089133021735164154531674552031458496021736740449846513482737746396489287916600499378232346342243530003830560354638081915364418932018132857396854212245661846928946729349269473322459581507972623300098775233787733054998295113994360496189751223936544850661392538631795916525083209905623067941105176884743150388373200060154391303834033685138714910576829808512327493970440495838375743219328460128551151749102998085895473629595544212506261536973148671628333592178054387670381890676562272710999499953532985425457593036755310471871114744988394244660067419960999101780074118072390837377223298323257563097028254489618799118029793153213247531892128772588627418545801020401738726780248339107646025587343038193861368824409604012711049341812983345354718448755485161534703366014252413359771441839939885839937009130010116625359037151134433661729545499888228509688451545898610798368988409838369844710375710911088270212480683724564686203537871085217002296075468957827164152729752598695823938503711947438402671125652869102358000553442790663661171039511455252983764962807791023850904646289951384125310263109858951965230154323800555343953463697884225892779507485360694954860942971297096057147944334289953491640107829672466530860944916289121071981940392802652396474949482908127417776785608309837733043644098459063704429122499462423065988484486102713567832639426756685640906639380662665596918811848687115721982545467748174635507339124744892624208108651467142364748862704766170544009511547803101515554597576278891877752596222437423715203879191654164626953154505331280511810963654972008290525233761221012390026504955372015237286707743188601247301131389365372958441890693305619422092282525195780235062405419973865041010588270820576083662638013909334600668248529271016416637593653358105575772577202159217703791432406272226508695733402504115237268717189108463049429828085395532257718409946605395740159112710409232749650669525610607410908758816983873858246657394187851926733047196318580657907824783517226703640648143770168979270119115742814765347960042512823395099826536816516151911264707425318630990761806429007528703754173532449063475879536982644530983244365252048498430750048169853871868872160167299045688901315771148994895456865328946968270072066249530976544231426400213710557698610209463747180089182344560047617526036627377544608676517760237919735637301402213268279231776418296917800511771897364583944381238719778705676945815741366348292596416832212002704014646184233349996061777600863615056016668154783693691630604843524314951948125570212671705232139157483295975307889707049785566446305223089267923096399658489328059821117764459132350093363459902401856892819088402127899431242807516695201459528339072396159787759013743393243716977041563471700609212919070897187702838859730600046476908549351894084588666142988385679413536278352005532863492234942351989056600959779724355534661292507700775572975670425572783416847229669455987821076905605623220576181714833650109407881080495674605411680528261356256374371522321579011939620827736163479533428112500291772592764315726229988466886581081216154270215532520702265183023655257211172861508945230039291560550217300794639464810570948833035224724128135359564326631825254342883505172775968226708088383545557529685109180589825900051720663829352286014748931217866024051066461964414398584185207497638272325087319183066640053889529300783948540170974920086073929760517054485183079924838249562625029135113745521528246018982556525781627361355181318485557983987104273048615210547726676350469910568199425677178025632376542033747855612695809273925176522171062263069837679732058944038094464349609595004761056286476451441308245677043257926797635168280922975940592818139273090927064987275109504144069844695041813230599102895758135674832540979061676674123678481247032990289163770643233980526314314090908091251234490449052936394311032389397481751439162106817310258497311492047742296786867838319618785245047018777179635142044426542012861721940824672781321488556650998367603456522561013539414477484724168188748196108774461965229568903317414021188857790703105732026479368167414676129343880339744197984551593904019532767015294599472340074735612329915973344857658415530103186024297161103469823650229776611363351854080532790477300532802107170362463026686071163351458799703498806211218958677814062944769418942122910604611606732040457036823972624363399526268383356273952662678681974722118099278825483680986447544472405638310344236364140351106164699987134673664695152470253078616856152596951503854982339380852959967361275933438543860439990400214857529586975450676096933930832877017517110623584064126610546605514687883002327821525459629894837943483289826597113898654543212928590713793441573388635738990783427969304450076586918997362771362929206953920980436326121501198855224361952000859417511500073386142612270334106344615620383468471012468209109273081662744807602120692392601158998623684261223522711827249302922435617629149609649272709900516145386590810751852030664828930223802482541961387679282193657876365294059573141098989073053901446419059955996083310571332478549441349754669147357723209215645935295307165598523924679663060272522653086604698715244885738578690000871352679075279633512822997432212125219517041007403125668732044732640104783978212336090270731271016948580678526538086807963753684258181331238457095627328374769309445342812693781589441124883991430981441118618477657936909439324628382226903200364497593145949500814342634614572039014272008361189527402542572173566318546644839360196802329943650159902529771608885166408120987306309884337869006576417394853415712283753995413789817593317567388627744058335034355730517037153412434523274002272662228750769203854060177845028047199157124974740984792185179160044904099716743205855440253040493142208108116519549967449712668555847086395364570975878085828065837627357886739471622605034289789062704835953900074431064249097411767394564846900721243188730586449551135212245356341770495911797917297683217790254439587304841687770784929894037246288357805950788592717980789059148307209513789903846554534797477540158835347085835960194785430238653546422998547065055048024355809676316479044781552375230064337587612241136764415245777004942089193992460203265513611384612062639817718493431044919125850999747362627177921206553560014640339107611045333584173123192482039453638977770310141754542308279971167636450818210424293789626541139515269099227030401969295364634691147547920784957039995615641045942452875900284400617882947377582910396988236565050959432029718098548032766425932310994548033627254736734760620997947148520285885488524979829393505594318899521191444233250910155181775594864029617594238369010159152064599256914959794940666399837812286734300500961494408571547894958430713648816668319046087900460895566031239344820315884207338361354070738319557578866330583465674396410393854143618528615360420265804848177855707707948821829349769979258837185052069506384905878509065156564339101103715230561797288548418245218999910822330861835815305968755573128836010927515738952857494504941382234342367594928440431527823756168450722035673435310005274939246100034086660080762522191802907717795086496023348687115348429393411485451516781617561267891385389800936180006629417068369961116512333399903764053132060142155950208218096072848262049749431063981592930642345577339855468878797160399205168547882413535182410521031920928252600242054774752922951828980689243618046200270597658622536458582473838680692521812888373327563338214778157529801113387770940679829133307201146379758056623773607958442238107850287399409407630922049494598521940542147216852715894312354648172965793655396769756333664286964894824762455925842725078372967333168124049596953231332349509030732447268689457902786130085876184161389188248030309290843785198543354698014021201730629492352003069054809231099185224591074061889786294143386532183170452033790138801270075589641468793273816229999591448580066217336488325109103424903379848424583350204879195150751750400922237854967584451571275782436176490482230355187917822264278230311497476453484233669808788557648668870446934383459129113738871655105695111791558201957072838071158298784943555302354300808986224159228722544039117761321873470682447907604489222241562420991318412838871503437071315978660570285023060650155315430330646190569099644387208234569803515448640957299380258929249830090258053355523721987603299918598630654228936790428141181942845469632943404308034063711991863592952930872626953076115332924537355718966068336791831160218804133073031109777213430696867062592731980281315423055061565608284334159467731984077735525937341537523616411587528385642239848952615650863243482245636939314610339620686873230061150471541299680940943711992331281677532579868194930821085499616571625949869708305890501488896037637098115256340455278314817186991355079159293312751065145860296040083370635929159129815234571711428867226445379795711117223392693625897965744519472543884636274594652125236722636967849033936941780732868893022805100292377362561120889047029228716103919409411101305983786126226462933420328880541183360436641794875490515671728555124891433503450187272530754083181662334695724748276666672833779686098040295396699043573489644939679106933183539100916893344214210633034720267806530709506204980971729287532390502095525157506122305848999425904238064217235815752399579331674672608300755406440561576557577827323734509028902551886995402874242311151806365266224801630108145136735520114057237567906409129308964612583162652659846916975819794121614230592761913316603571456156941248447827091719407324367608935417778225002767085708675095698561098603545401879856631781829141895116115245154686131954478439387344799296643947788767258621864583341761093982617625582664629251544392904532998665929398186461222610470561371060814447983024279729884546062702976505595092792252837753404814960367321654406121689734764011363062008714331082672786503199938762842475121288213799468009401985307317184266081694417237442226787545782911205131919267032764723797088967085702543580930096812639087963366068193509566559794682954329332171714559966161681262064208738857924657501676465797462199602416987922680167257401546998135756844646318325226916501923599282001719643975365047937854906737800630414961135438015721595655131618099450387035127039687775291320820692783678071957890521700368534465770857625579261884663904396238881917242234221237170481646751589361800169833254088536078171477038614952899699577552137765071002148785427259933001198286075584842037494845454021515724237661393935559780657564053856517594674546742531431525899975307211645872747014945068982974571907518079621356361543960449833860496641580927738205558269598787646510128408055436457112631573532667135500192910475865678971240939538006061711437567680459283228122161210689457879494182432605364561224207287020818515859587867952637091633746716584534176902203621509123867105717958810385095573325078539934121607068416537380919388670841768469009782808274855252493314011585284540685177207502049746304211209095179873286962607083332462787702627660084697078319766596647680501249911226312444974572277942381338749802415233185878154092479989733182807220490956191624492638300755369375205698687009076046691757233992778685469192785319986835168277087051088647809039726270328248207264882050244114558273712038671341599897604566877559544658639389212384942959950923768399460669343034342010107998705857455798592102423745876920616265277906906824891538863457059293385902168918995545970301528988351819072300691925850967507741686043496846934197448947770534728113433864535569732901562767608626467810184866070772941090298020369195315184967764929821863392886270469134141487950076507044552654735457565459391136653948636780135658366459450555378281642521588473539892371082613345898885769879419016560720872602807296751920841134763301551142203856254239161016193111859421103986928025307706184455621141621010545683406117365658760565740303902398735089683798838256018465614678417573880046144638938034393868539272863149618750337619507634075250646233594661771800287315037443388466698935250002939596589419696823921698192029289754194717579156501316743554609351360034406600213894587700102380145686157573497928320148063884865937419365202454101379832532148990657645070577706612406509301531136941058765219594666753218629093755732248797336087997395682538220282349168272910457031330507256567665113942252334178743635401599924227868989872951589998107090421069940946302674102206984261364500776733983607809831039740347731352338023060104781128420549405281365326131980302991128051951593261665157482407863265800350148929086464358009900413621255724542743666420351113009330059889455520923165859011303679464892101297393334273271159938703588431368871627986145708623950839623482593985920489639820185968448171733715053873018641367241740748345300716104619939542014485331332337331018326636141048409024276899422895405549185204750827096468257215793864130225745499362313153789933446982898937829967375447117830019160241255862506119692227177967078014649368170974608285155433699355431663001249753135715640774359101519274012854974454064879444826613460188238642535223249516487453902578493691462520137145526858707576471309161723200189186514249575540602727666671199880442382319950735002729953573101540433709315242099495469924520599239409856651344258505318816986094354659317391547397660509364150999988033325913524166614401801384830696231856774911321645056057974037485429815600430264682849820764557880196953265103162129719908678431618046513115998182689190926960125177401230239919573633706013154195806795417821795962231558218873971950957750995424264049912474515421017107589064902948143405066181148276645027961910738561795891248504552401327979549353366023529995377595325266476142272079862243625356677578659217473537151923148406318675731671320417976939358208060008982246061296198600245226303372660626867618352565862815825340212792058301858876739556949083407772233123107322133589615431395767615357650588908454299535828254518834499695119045766718344901386801328973103738050304927238226241778203735889602729081089765364607122201260571160345938911028477004688156201757183055396714203888675569656870908158114276973676772763084601442521171976077372283720001518713469043997201067565501113025728132622971339140724874980396430092157393243565370133120938263864967290067792584681235036474195361552881776013634145763525827107580398625524031200280712944335183300156692677713597427821479743231273524329834771621182524182055069383494702935457530938739595784372313883930314021915510618915258875288305788539486557094027792816704248199402980649455377678852335527927282593036021294767565579091219136392838529243052304593100504301748223497245751826420134254193454379821464042820314944805243007928585268431951745652499050732890062068827761468551996232156288605546620522457320229526562200613653883404249971915043295415175136946348818107459157702344992904663381173222672196197999404696500849363620349808101126998645267574342842426360049025148070143556633573615917046638491081648427134117003669832800600096870076590064301124743874496395086813345190649899674420628056470268611050547491873202422459770383569554818828946114157916280911188260726969813647218569657501959742693555522188815015815656672431694235051236418593520156648657938316730720962530025418171527204490578211560910590566353819038534982816915684305922571078113910451282372402984636172533724353491182987717114363081563164530002737252250029384191352116002335441601292493254209640721091118747847567811906749811022961172395510646330818285300406290035233930599601186927644729947274350587496784521270160419078676040477063732640620567723558537183044344178064863591577051141569727081068475695824930445101444381868973650798025909421445907079893174535788836419601701007322613475136630781771036562375196287729401585350136677724659137097969746113164202262901388285882534166949291558823460082644571421809711939022962933265449650728462189604932420283561027073979529225460904188831139334087709846735634676835289082948732232668668573528108295650637893293957783330886661660134696452677514227500633496693778776406184922891321071778918950282485664810166477721640889432121694598174971503134509033317604833476519909288580961828648520505193411817899958090392319452629349529870557165999006931602932212893890876754978492020853759085618865454895627081737591438842275448531752064366310842660312756965367328662242257820100153705879482849039250268531225967857222318292736158058637117691714767434051599323930508690211784029525337458529699319107128410335617953476972804302374370825174598447747147857058947447261214503678620338096406203963326625551816431385734638107010079830057004466205188874446520377197315603571019779479189298600866688576833041678818131983488471637175005350191140960416080243235336041271523021808571328696421681939047771600965162326033231932564453581034771588465157469050059836672619541223583889296398050720511555805684597297045207389151462696559360318010517425768437810483615263352199678093786812393178738863114764380472600532189235027738572109230167971230105640353556764750644858068752608421457209787375787410508709804256655794528122355700104144192782098377335991879558456682202880306398985981280143603257359400174671684428578978760433394207357605489613847190712583711579850853606677515661665487892109832304724546779763798023022736555889763287031635215522070965696726110955669773642458901897151422233406260603894535899380489134440901643448537271004526214541751245258500157152859018223140158660071441633084249625283520836907829682839073080369115558704360021633224447503557220988541125895708953384925119061996766140697035088889364888397243089862330542873688645694439315306389449925570697146602918813147106173556127793389221697111745094008654179493059086460244608917044905095703363052075758777965360712333293404615498405250541154543418321297465792076797440034473770025275417443366996688568970792471934322073240663960438026127932283758397805431087255646206013166033186167175778785350417555049435116972501395844686719685979138295127702959325927298172260128454530361078548384793258068024216768638714516431002808287685641464799264827480210119947865791207616803279765636986715275491593351145196911413280512036832569138032309345954057569748047479207712086913063309400551033164332716564348041666551573696244451474139353835356215975366814289037625697017913152173463323822276717853362287449078631537583875587888933816833333019721826018738565304561492586630221550465561299270744479269827351764097743593744011735278024985207462360193311498194847664817589267706894047501660429639900025599374837479176616852810710322656500642903018107796032888951524294259622258861116463171218805756069492510089575257437926883801378482285006713195364890773430050923322406098323208186972712110991331569987565494395847038545549752700162178833323290148264607290221641313715734313167397042964544672589869415924517743309803163719614039541470367858333708048249969346618907255140736827065676069314240534216336464731683540823863230278319766590352782837248364161113037030310366880498651391196719369042855308787705402860357528266926017878148285505395341119774123893486143863764792693794130115458477074637937271226017243849202120524265174381239353318559383638289711060539454466534726804313278492501092110201946560895819117676346227448180786866639973422169852009944441227641033621365792595183786540288167884923187542597176558204978347642600761690412582719715322500471260038656366297763793178763277744604741798194410637256200009550068214167624695381026736682013587979058057086369531125682929284504381677879531650545685581060884985500738156377092414578714298499599623139143103895631520824167029465725896594362468749206101038228574758934310064277859350158609662992323180596199417276085656779333737544018076868307858457110796386725380890656802217210908471875669470256564621713101026468101939322998665462722130014382212625326462658694945908174102239025049634694447211369524992489074180693052775766514950938190668059944828585924219369867401090368447014617011822668928934107773102973921591825275620113944459249759668567334038606702431947396356087865989638247306463161377376475368222135856493777096583912131777420760911671676566082227978841672623977507045587701995439869467012492667312124147670302509213922717765621559301702942036375493519778205780163742203107813610658957443867019419057591475114276993593405891037683116148731317288254081819714942679905652882455625539580587059079351898203003435202273004925058020204914929275409706976639524279143076307906423469053243612647799998279571371284656218602053592237707341559150351366124535085033301991013457879442784022903148062087310328527667843803876475847619601706429380122024871477298150047627392513783447023924509834788370561504879089785131906936039026099108760335151540850016404084895886001740138458362017235902603107494274996749211734868308732867824228637642460394456259924198630308182415202614100303360968236332460388412903546201731341480047573664076140400027424865964962717187222318198346554760673885134414038575115229905419530895712577371749667708883526228847422258781939204769301146042331806663205925105069363661642372125345729888682010308939060669128174848452141717234579698760563752266343031798837487840419272576392269479932571472091488911630029003464963135647036861538812462140000634269985502073632557848694260844062663727184314357769262597876156118908034295396587081165451978633378586784466816109612961818178551162064824001608416138511381194524714633141084519382401675571185189040473257058591409146315402866912550706162692523827803528408620847167533143125027162939841348370125742360831094086826969724219368870580510173546428573827925706374281792127526533226307661539698960022194980298088020652700735569515969811416848447022111056232583773462024237587530926647382222008597795597331302241130663266868107827813169260858760394721241388863030944308961695479930633335487959391155341768451551365187307133278453397400667133851432068357561858002132784501867828870180908583987836460306173484965618443837614049374277128193134784417447947571515266662329240379077587280914330642604827077859584329045105674302951912222842807818707445295451161243526295095019362815559921724119854082168007067618873483712639053448021045991449076260985868907569504546534995774871406148514630359327105308129809404538042464817065326702144016761274581984102055245793086858446955324740504649499238646978682490587515966826243082459045643109094252437208799797943511048447112139510559075962897606956880591842683689646590988248924057601079272122906764127389522105290752384718447170979975003511713044606936314188644985628357505358787754052487466978436849926592562259061919559575795544874927946353298336059288822694744393811065107710533592174949366375198125692746505547470811985961536144931995961379882085814159822094092979156381968357521178681905964034480101259558900676914197642201308509605115195394074896149928778199085237246699820598441630772211169060890526081200006142591541046632121306981305427828412635278571281832078986258595043727664484237721657109873150489938937105514253395671996776993213285734244747256682497144316180398285208129772460450805127485617915703213125866748595378438256114713888588681848933701704334694035578647159235352246582500372391246318210454567296435898898866977272673650035730986494521024031479681150800922783757193011767384569220592542747877578711531629107139998838617084673966980351658832668140485488224776652640706327668869307528089190260415395106777920412755093674908855646971754658460383160829919561515725398221455014367721783817605842290114870108176122976224876865468065717130138565782141091248884364091289354192672096993928096396985057259857878019766229256344699005193894806923456719017299336714436486324099682200375533842365242389231903126945350250789530419984220758350340846765510347590677012680114320153621914274101720560351544463840027271808599405804525951787092922139192969854872858799652401163003215532493632198695453492542332899796598991210320214499024255556759921076785350201200232290590643343887682938482635399469936746540248947259512049041006630672771445068577315776417873663209118865781233463553369312987455137590635016786816217370787004277502120969731181759785635144237344829116180162235686630096635323611677615300329546950131174247782428705034114342433383273375979808152456338770997399342466454066984270115912523617443164247577287676812185696060697616820325187813980419442300768213214090793393195858716973956813677860228761435001905746651198564974435771716257790147068862204889547522282272627886079703075617241064831243977075938075361051160601953412008458335030129641983743569993882521999344758584434642726994115483553799134872084672820535162494255749555157674749052458351234103931119184438557696303567515551466340754386081405625750801405535294093548942477745643114911480295958398843686717291311591283687551565982656664679969772640799582092195849416114317536171778620601074014205521038440028464774338049007288229265981004952504671175004946796925227890662934641666612879693675306593136304514909298979892750834833612279352329139572747903739270746675297918874739550231818106092139384159563241597964137269705508786386549334902494458715840676259726972521287429820718520335188992986886437413699125177719913193657892175211324193512657118692479941968145406675400141172965047158545050913429876085088949052203573902453246479589221431994098003834779821527579626102512383878293086307650953028825236124189199715897435894968037930531789126972069495355268066613806821039565654948287087108382976451332973118701372738514741620709537110826229853404614078276318785264434897420034909980241859118893951304279008762461403843518917291217196407229787583522543742686637217402740667065344640620575437019365264115254173981838920263737234328488356881949830740929587225868669190979052156454047427899326349913756236536669584598525622269938290940855750582901350438811358396803401603811216794573876997824611788729451780622923125330521672907366575790695472060502246044200463985559366891735883451553178000631419030964833043350448548212313653993565806892602439918822949831647343848163918440578876625109973418384981114728774634765363495338276697821589549842611854592477969313606654657046732261318029126531555819580315110057133022786568989730982168208650849072867144060746063788549111713350206998614807706516364238416017702575682343303362737477451966636880931837160515250486144944432007496635673393125280867867632888014128755332776377827567496405192010498259958593084220276275817882181854631460786365313219406581164701264353698083130232808205530112831167599087916033888630787651243408305826147628089625558708398238916861660071989332639518305503158848600841418128384492387106136240220438561938880660507019092299862039779553421931091103061314712578917089484415870804636517400361822367094535212071450132295968055935932176765582959463561607268353758482155966872530685967196728210589691651283667970202700068111488381624015831115163756101752064915966665912557886035172693010878481947861770608880655190440053084199340105710267178981624351625787298641523395604216611088844814576606983652557815095295547517547732342130856490873437360207776278631199370226408912037278927129950268647709786742452167840045259063554517048985414368030610939581753695776367142459024325626268493982241994343619909838273937986065585844028896801004677955112479489067889531971184614885185867805959806959589770799030504428301371089773157729384831504789494265681974560707208115397187267106770529015797544309095739504907568804890594702722076856449035692038216122449792277362593155911141262397785440268397331077707089943039978469016762412699635414713071858988296242965471693244888463651490051790424417269408917406822293601818510331116974830418728619507885468933560651551462196438223487448780325777256207257502426328342363206516821972875706406907073166800264020094316499478812305945154957165537219736417732836900233528432578583337288802586045827672474971431852908408216279392712431842337553412868412376039300863258082592214760013256680268374306728813859921583964250453496321872777904255166060577460136841836559567814624015940687470872440459144327230104150267173479529526946591500535914688299341765285918029822748655857430269658794209245082136508448200443864158434093979086966838094336764687493743521721590572034386947325855031533368946323855781804620179384290525885482491081357900018034460350016950643374952042965450029893026583231055689840062881261806207092469963337594181353775780955809862376809177262279654713724334919519135939548837682905995973655793733190665911982877922536723662620667638338982638924136490625036676142911035237350779615307737840427068047771125385702489185689684459776579978325282546291527801994291315160874260946781651267159884591443323199617710368290100390231087829069524810819481222356623670721847344060531422326062269257290610860140018458418635936171516174373598659331741873419982961605232741495395788194054457297624883580499604568699520487584757068702637987424743926389282046169464305641788193767229884867298329185085873838097489584598132485683042725949388670202896939631882612938530300037595417376068675657943107763866764637573611490737998652121019360915741324306318705663562454410748229641246292909309058443149557935062444619600459675855163192620061531356811739072916834540131225051478401899858378748346457451074144315859376433155526835219891308497268366391995651884459745843552908103522780990122901011121478111745065797791479715646766515397737277280543300393245589302902946514425016413030425768660603537710384163982403081803319274239864901823526480359653026049380584953788023967240291575226514980683406812148976852070793943281382505460912740730064767875286513600656176257806951209546102017352704264179006590733853330106880076951082342966982903519920164792979137584212214063756912437213972992261427667434168481179046230545224772592642791214667635654100707540690121981185574939897444411478889046846588379630238909618580716133110026945126967528425241912979403855446861071651467969543848156876669120989272170983903873953096957197607153313906831291667584673009400309979390281698308258432197584082781952565211282064338973221154582185500167775376586846004456418441476154275221260546329652255997831666890913848776507814771122191923076539631790030810003198939341700312163081784807717525353022872285103394246487358780785934334940479313409085670203388339282660569704132937363606954279254105366501497573743483669042041351387055800117223231182603611797091956125750756405333804129886706539745515703085808819673005788874762859182317310720129030707064901070229799596769883501309896994682938696145170453552026474094868553512520503709734576231590195961451215868046150535533336648493015300408210559219396168396181760972037961064031021768703353628458323396563171197997590707502248470316231225129758398037985889358757840756880051505101675633569200157833638492610436904183675395134069196131294248566459495079102907537287667373106447576307489915428313828149322330546597180158971533516684020272931288537134884374604525287606061861275494170297816133615895718860423518790449143014055188879875085054184700268000015426011314020254473138170812071329971589902556411060415542583394162987650057666371150601975846659244287726460537885919147701913393937473240398261883865194883789809577354189573092702731974723430085375611160242717109280352560532058367484361021945284811417945174516639658464822073693599478031190114984872142724149507677448458629926382281309139417351085175165636699583901286480587409069204216917938267104303332569666978191985988611501460196284017914192210654353590512574083762727767159293945213840997839956576230231572547300026499369943870063334744663077337432627254813857618841697862834614531418454077723941391042169908964430010046303517365182206115235511772761945930746975055307984722476999518048897738821378338296058546251387516583770614923113000161666429028651811128708761839758344899145763038034971641952167859736945831900479863840138355990217783396119406875783691780172472181242295946515847620522390359528004085400465148605674496132698011881756754411989762091905233621801326046233989329140807224059534494071600374037309211921610147322849170652515070394984148222040393382240575250005704468438908134982626546416859178874248891257143618072364009514973442574084700075913387612385837588556846530944390326209160662425095356060494243292650366156870808598799100614540269285437241379792559333376489191188747612328655436351866238698664786851554632006303284214832909823712224088394280891378853805347878873352362256309870753856293934453185176077065333627108434690190772939946253637299753228326848886832189138438525982931959270532044183882793256568967413564803532825342696330663692622628444110979921984454442657378332628227254505328575061489064094693484308845138676121377814549507143699493757547771380764118448716882199791796202714938385723882113281752469563961041685671189090516822784831426914522928496931898748586774147545389468340604195253523204917303445467913107868499147287299612671999407843579707061600782199287231915006880551146583187927153900445502656364499046799014606967164052301727316557065087675948802392164711848095449668999541899941091588913254466570478060686659155795119013400167046837164215880156773384876222432885303768625441991450690510974731280643074999846819979836197629454030040362239453090391675192415346038394085664860920707967403187729533244065904975058796216588906829651620718233144622504575592256025471948112206282074153084933744032336339270965036018404509380749147322635219459407125052654296402492793031633696858018701473121718883753861042193741357525256390751156733847487976096699263594562051838927784965097460979054241136597778240805527431479480169103125690138760084036341266542010135622716215310713952689393409996235837970805078945435382292213466167333183225377567803461835180428780124417102005768027570969211327434817165636397200850814253770579753657220539244370115435361833563033676611709416928555844776272786184213798370214066121621960670835487014959658281142280850941343594171593809380025362514692698148935255871790240336245820549968057329452345671887960601613021044589994539229943188040393911510679564352391546145648622139463808922825304754875959620867243912162755201433797062086476190832027432048168793197099090702251468218063223603567577492661226276075202554820806587552893780204758609696593136278759999864712447407906113088966154067943816818617212739846021337654927986943280800974984178304319122519255969964761264092203164819590195018295680854554822253007242594582222011409067631769620833257593195507380665859735491593290251526526371318660627095144960648307845551327428372757701379695136039924843820832171101602965349253071167163343000198342596040671792581623274005823556489972732283814463721086750282064666625890188359951258455899227885525345320069829393634215148725836814025060554655594907075752080969168611523046481944785731090706824711573958717405112721212089756022010634477776505933779789949649877148735501909284987957410004631816315668695960709498374778330253479214853352832097107140629551156715399012143680983945984377436067847445291693684348691793017977728613050422417064670211707610087020853556650236443995448967194572831556095145829422347495040845813472680370231406893755049680906209896760690220972432537109743053349267028710589752962503142935920595736714725455425624097883117073325525898059748645525442979179044634594453784075724207680651592722023934959906716897607805819242171952160749995018321485166300204355350174372390150837467610442363041468641326937699585572880837500356727922481310023921465473793246479751311381038162847481971431755544992232663997770463073196040464499796425358479766009661929187454210362757373001336233304989001010826666831834164291104137654026865233593452964499975623011076867728489304666680015577143402484682322088362094476564754129705106719618475948899791018360301461491055258480760962030946313646523522634758017935557332761724899316661561906067397765885829870670260440202483546975158022876154353094005951351953973056346063229705083491334407319055390551619266129969396356446154996939380792570637050623196789288702844562908264882045340414764404267999029608053026435362635517623684788883261703402700193900406155117454614094010769540279065147617651612296282071159668039566972359180387264206014589968574304036721769321741946445651891402207234512297629318170010981794935293247470515096088661910222902569817572493243410674245783432666768340666464299860755653607904313687236501716772372800287086348084963551224858118389673227454525807146895141402694488834719259597544469234908714926243294489241975903619054138689223019763686015096313639455083227034849499661496119927934297186024560970028206906703689593648367298624562819664740275620846124764149188772683639884053191876345614626038274862196943388775102253018212576975229426439929713248528670451030861781257783142081593570700895435592953734909941706664115241616033020902505138606865850696529700684142566521496743775737021619293589768829179287322367409175778955838036633181422498700109931892516294523263887677569582771226865669204707860927169246144243376524712836733308652273131576432689486313720966878544925427814464959840685387769303481604139260002237746458499425739468403604304190959755537076166125609763552437493903840246346221748395326352942899160049937057854206544368102492374204334619749744266814433765895041930860673546592353753798991408117113650798933933878662600418399460984233282985447019954911331451403388084368104075958425868245524363039678968895556081799620786771999160316249303287603039636849178108514520309556585735021307220350205252986473615877607544116427397571445617153899235720381342992761390932301252925570678809058927033498503938978215928172672750222165999618577454700057128434565548644278088291306797389679443139825248018718066737050307256326214328498968774157602747606820829927032765762960588474793600101664864441470719544009037605037010797407695984683947434869293928048186122270038903573286433982810537589628808263558532941351037373134769167177131678695041184750000829079279593063635738161226419505681793008564292331756796851387231324022227414412101453367007306379871470711245329694141204928822200704573289312609834776634144497095933511187378952156510302984731699549411226068366319535576699784093991294099677191491720734015791037323890944494949319588777731490147787919594284777186608121985292079618152935024649225956521718432899921423559763589515066223058663716483635197465800862548883578300312375427971417257184928061069199602508810104535969639897955852637926189966215260831009830365824417428094763294230833647037716710700091974919154026493455071132584206795263564259357203818509809878335869967816794257538111129916811319483712532507087219948815300806866085672621652671505769860548872343525627014964462697137053723227938218377239383227068243767930537111991228943816315585260667546170007486004319436287980539542952072700356128115784934973925166204725710239498886407329046248986853197760964631310342383492978506177695675677109358366697628204816696837703350531934267820906742634649970164506185028602555946900031523399522692367224509178926968066296869802287990126206863633390145116394121619805394800140531537274599713811100252199060173883484659990543240001590026353098345763235386496593817677042353675227886592443554631198419885313242657619829999652566452631407388483681559489895942081309022695740253922767306049985356642718931557724755226617978475485355533979033700139296859051837060844530049119406045073561912093338885968026480220933558080052811417330549464936960591536026657332011386470410641718426017836568956272579241037257042197852387801656315306787091858034866133862722036964251464224248525761378704825210615126319664143006916864884662652283477351008777979957262192358958621393811452888092535984580508144808202714602445539998507736432969339258204838524186079806457807020779259572579746179369346370035425303486761171299873175591586272517759445185842781820808106556315959478202514273913307719027512784255030043146550989808327975662791533643060877501377910198858200003690782424671220116541485586168420731790605721667528089772453252148628310316133007513955594182849389432417017252136045110261363146447187352241255067056069441214582554363943748611893356893138314097277706415074319262341053472361387269201304751511752551536907048013394993837935649885684273734845849818348077474646752272164721829787303129777969343219803539849003722993253121333583698557113091428479335782433885678083591855015074099883854731547603761063435616972199383742218804431506201622523319986303554138923714257294661997062106177689751664421703634076018335941949393605501801497792375740136631230872193915481802007225021102261218389132789992395101135235962111871108020999289886788272033608589727482153784992514192835707690605108840748563663479337515226518070817641877344388947794858560311653351661505126800633907394732059564819175987234402468980022203712991585020198388228470489295256832754650751250273464618942918403938539439680862486416623037808468755228751720922046046999491022635068387927210216049825454251706753523874221864947035542236943364931956033303833901661333338172951773624001021384288893022431931852127285111035064790401872738865041625479902651996992543865393823200133683504918387922670844488568922592673213759446040787159377894009140363757140278612155921797194540227588497665362596821690385827229740960683615094549580007580781668649402225350842221074151867552142680995237480196292397128503715704606711547787424925492401980396448219849730036591336113618151140676982307659108434597337597992091923762232260933967577521134680387233201363920716196806228503633150415232182914335254275440180717404845923057586386212270979889582903853948347184835430395215750788385431422745289785478130569688090540203148007323481603889536722030471514612946578741761652209884406832142221759575577268643622417214204099072272389076188480007288223208372239921271702021499260701539817601815610729048913445263148408075362959974349177031699606056841584858069264223006110154198337647551443259704644204654211312612418048022971732317387205909017226357364913238603804200939982399028092868928946622582311435950949713181753821887634517815780405659679737017746130192874433709640798800064558028555392785595849938431953900695314458509366983440837473200251506438160317041265965381143875597138537917461242629823588588881461747446199029235439986628485106162271938093434592735208174109306574987863032905857768247819045681827343154061331185636212134150221860170792376086634904705421474857302573713901236078698722223587400797548112681827979370609193993189396309626050931120964768398877480551736586361367638365539318556739602273016601624634196839295201848266265037221478147619941907844041340576888673702995928981711662711907082231220012792522702883772466626853147436193512674298353120553418124482988008798988416285762582907691853089115542396873184799775350972028627847442292050749377561163418096680168710335502376217693250474144239340883704659903341674887459592817510051403812364291050760878005798908686139837790993835676136677816118041669353392389908022782646824090140722641849380565627586128830234395800538713448411094405789130561257897459234002541547137838141734737594966170577168140414299674028758659983658134565366533040130387443554001008035330425213640463028920825762447716324981629775120340576694298407499690075697144247084798568757790033420324199080695673925681594479306328390625414435523884885913385342715121654413476821059864341516240221979266399969356747199739217567928770779773233694941734848780902716432058958029769139588987425856303777915529474202211809810496617231122767171893244436461687680179697653895404822005616539285721868098182729186491011430365389528603741235742897919968793061952084851635298150563920986755053419886079116528044077296711166899676520998632244310473017749826323830096843827870097282863456061020279863055305040327863140320143035996537184535288343949220423033583111380351979038367088653612310455768668218403086186571680905721405525747637667229994649355645030692564082131102612197285415136211861448184359008226674350809888217135290334677405258760951988436157156957480303574993695265486054989205872144226070953637514992466597375715894974962179733245146697330902434774061536657574206101550864317753997425740370959473413916845200105779094165676741223951757087848973731038657534013648297189952964897183374173129507848410361995808810982782120986269227073311170050574532801713814450595322892616803109971935486562370024117469001185672927646403227123878301889314178776248536436894197625360652162997670785452242485952930358095930525722116953089263157465907380112024346046479148935824859612458470072972405106577887929878270653461484245340256181350694745830792860012741606285599397113645347435413976022362543109518503938724651509455390497869490253342774703993595594040855432705141022075952330495743104176849534339936411285430258485755824112029754206510666477630086063758136235499808819897558918404046345170975620625406098424499771115542582026981844483066914172499753084369769370995322709086508643064477943497940838042280556631339467153233594465631218380252535949770992626334476766760844149066213773031745783054996724531673730400678935727597014534445195678798314448410478391011820273752817835905562503039416237772512791661611350305561991857277826696581713206668298812556028172105130482221438647455653975882832303880462575869956181632555830036784859057153138952678666128573645198107142847824644706186930915765465236854232958466193647417011397848261408355855887384849627827477697805840245265676166884872079972945613313868345219940496864496634026316355763024054181019628714726878667005697289512068749468745616679016228431273174783615004757780230839778840561902519644503834889678533016954133302113061383246684909959609172743816792081262044954323689050151329853130853836444983881994141015770482204421112198479108924494350535389906778416600640942528678914926483342283904577412622155126822855514272883209252268869101448471239139382990731135014625114850982401294546144698065536942940819350559687300130050385181761322087667069465283539173765294673001229055686995524967646701819912644729399466102004906672577386097608546730442693187510356752280751072634340336726562476812229717232417614116592700838931404381283385133796385036269941095002122459985556119076727180425137450605092426069914082888529535980145642483131890357532599098906977276154972690446913487167749869169700131818473125180496133157581687098611602349802031883591309085104710214114368298852451665838954654336683418943019598603551646037092746794387313340956534426070591072711238745703408455746780713098531642955243230498164910303140593719191548181491799002295549653761370274805307026818588991494888506914685555072314688443155123774033579297073817249565881171154358246361936555660671902713888413984570206201611581812738869344729733997906678379176817760363903507050238569434509847917907665650863674186854598394123284282603304713119463013888560171132000798164482689594558138800685876072157044434355234476405805395013033389080054830138269992934448249504448939940271306901416791757441476582381398401374545984306925507369226910688333750238230533451967633914975480505540593795550910711041128145635611826889230095405728411803598009559585872122793497138197636503327504614116823960441530601064312395035751817990629572214889283777350038461263594144434700402043083331998462064895210324302648869336275522477335359617112484884094748632466561479061520972281714072915468766293873037600117412899851981797840217802831928761054487694606240237309963768653739504534469361121321672502509264213371371194813253649331522218871823725484863250488859848150485539787022923412487145704435422908928888843687465778759911730371490945022867140352152785058577996963356966062372529102862159365880717941978041684337334521961090070814066490968032987682279258215378664205732699587675690005581721264615131901568090022133504095311118655720929788021649154437636153301966284965350345776615498687727299916320941732663659776590756662741746806452818969612169903367370281151301128223388905188276550916584971571987959240449425116722848661895829651110724801763168780641208721032128539174541515654154481976108212303517448339791724803864409826090451861159550366430481526118216767596309280575785298538411339362538344392685654625760936465480554344235898687356481561879723400520404100859684199511592638976776830262883009727327400394049841903183802288294542431934375768713114293353945264645674747378058076827555552882371674325308217550898698454258245009109999711528169990579766633072610277004567916794378322745384829031871278239320012392570509031618692914087978081687102342477770149793841337984580682301608497627582817713148749838893124792216456715589631090004793892322157053176408417704766407665242501747172614085526523527882465054535400744866812728019293058440613381982147775472934157807993224029055165505548050303272615798244272063335083096400936124632347535246201514296434716987544689237111356460605621984092526409096146387473115964002560746749172120839513820899677395890767641468253725260308470544714964622242432287289915380697860783935230207889957264600912020320994789816231119403955824837847987715692106006813364315574365192836022318726323886730737241561190677874306092904845848581509226143924286300099138040162108377006968308824295761472181052629881752353174344563686266644836847660198904866474030288048913518599766490109797591416845840340706904928941727175116223990246751715373115052468049440601262721068632200464745731599835907046032234598564998949534017204884039648871715760076890034786651152949632320146184055227465286318349015871587240685661345064051680572345831764714878690984583405190435351520573980308334977576727485384508833692958647650841115627304324653260063475001312279517301073670740512919806168595778643465195036332174977487235326883319166681092866347286636288775329548273037212385329491914258095945687393262907422635023933438458372112395103865357859584168736385833477772993269168078221335320327995030848785747990702283303217900380566888675059269244300627682964268331682381727431052702445957187280415433892743010588912384033981103347957872820039795340512612362071355097119859474224400414833816540425824681406945298376719664529426630546857655969572703042606954860411805408862960495502335688408709232209002543488444908710570273629065058103168206816619522744203847865110344112901677248830455836622011979867573430625654543764219396424345788728843771566966447749248302954968551537364945702049760458582373729796775522591983600260297808493698388618147158054094857612224124738168953829740214040658160458590050708024832352323541051601524133868394286862147724384521162101360235504876260478189524360902448356760577956297772630499653289767102067832037256609490537065486609610146633879044428610753738628109608638825015536195402984016031494437391953586024573437061231152565054398737526255759890804700970883855353362647179982953305289238945957895993296966371090049125396121166254239771521628609398047018787298912960938073777435920481598816708399583647819986254880255570385572766911748709021548980860625590077096770349037963955578418342437182732552483824134335497437060304325141054307147721059270430131124295658105527669913978469580792439978014323240423208144220986232025732641425986885489051855274676401921269782395563218765303590039481000314856868283182365656843559074311568861794785349866451357297169589609491106146178371604040079639192782113515411336353081094100496800460006880060609970073353246385148690066586511207652281886171628279474648434031183113053871715822788498443483822095535566092266892359941242799236752107501224477763968120685873625558552581233484172078634564140276783604594486545234914024918175157057913955006204706173150670863450801178887588959344256845490864967970300105420274789739029364697708612850378516439504633782005413076888312052110656803210732566970503493004534349387225365480905492609618139641731898710058626101817350614921924608491762196877670442098247781283882892167316938273327975070317435095640698541206690869614701354918659954385939995122671943753144990302242941450592574250949157284097529950591532343026755846197606895800086937259598045618598192978830155350300827091054080286736839923736159786056282305085531545583770285287966849526491006442797557233084432750841277592077615177023970627712270901617347191903997778778567692200043825330456173677889310525513105589585506496953480204680165498410425143982923729585982809891662497581357950766100365376629449462929511275641050254363803455353959561240310337897650452660730111202980476184010278630024314842614468223231393535034668396789406681959667643036915347642035274739355151605517482950571908410799148160241151245854440640972128376997551931781921612151799859782878415392272591127894121020303919089337597843959721314964524839828622291282870066372157104995746134716685260172553775499526111527489549801911631330412314721851118127832699022425093428056095269141514599435434226268458708808950838726253936777286801113991818082524913066016125165434368158564720796547404420885068891963635524664942247534739330568105846750951586803857969983889566663876794816667551521484687393941304634871009455487290132924424845881690595690292113535479268862531199443556871646378041351681469642043679847297800431272891572358769260316298196536640885692088360346780201990363638695415849875915391131393112036299777037324838718333906807088875160437392405215524032557412590365559666815870139750532449980321749190794465604112702638705624731179135290264421543186914742874162109265189765941526109060051047206045893235793481584173924871050419590920264905155549745937998024131282425109390526820984923444338325426481108755267925339448768958085577790525099031898877333433067823214042048178023889154762680775873305361469013981887575514380852234686157306980085931934768794709524099663750448254391907701622380759069865175273320804692299907793938721016847671887816617704155599670221677247329956017762714988368676060133370030234983032720043182552046325584052343227956954799308451507114118249487811363109481221204045594238050158102261685428074740651632012477113132716268523969787666502291217429350810363103037712053876555764482989570229970029215124512152029153145567989762543304461470087193299483898504245442117957529599799165523874646846615540933861915954043488998624729779631532496617496596996371314240642261400298357261697865248107754983740977730412651478996283062943414378311349452370073149473027197219167252302338931662124693219230904141200242955668552026997657788899230138002957663056323161917972110304003659459168348435674302998651394630498491450846757603760369855217674636225354659080094656845588862250570178681636200569815167039038382363270678571635692162328914709971893654561929701210337006602717628614172989526079906243165418153383059771308686599010673623183440608778112378645535749411414477548609066359324173172676292627791700398761165890429613891602411685268101924001217225147637436492317469232718685920738419369092557346771199213856093499863013419258792256850515248669319760171737366137476289791690547479817315326832500351159558024587221238731897877314121697825909096345363352848316464116072969881388401003800675633743869851371990253918430231093409111740748965726940526630631021186893851058548264132535473262081685975609930636947791478869305091142372843102160612092365631376595660942359570714800949200820636905410611587292750073681685622947930515801235039686151539595477150858560486727444918107847710060102481530188240409795847829071322207088026865897008814546107392939566801366121698014369999933285195276851904749807515271409996239341072266630234431459123835632579276982721634271399092524928988831460615134146448611647418164409663347685750890871157691795301338942986646045635012860325841902435432037278499777680397353738251164904317944245983668775824994828750363285698857174046184847532287078396834182895996873104622311543744060714623615701304305878368492070521319799026172436745844397218026434804216261774979269532223694574042072607801772352944310998328262017539382014906603540996376973497872483349397536311184022407082363830707032780229642768002031203084406833701828834307270718746153466458236098092596953038468634232467030744370839675226561791520692360854019842196362514801674152791003494383009932769198529887870106145517019468409769478252220156207520717568955911921799505555198766454624693503829423393621625975057030037065211298290974761715040753435220294964791136070558060785688536903624057621070407757791587910112471715599458982123981926720925550463792793806454867756020277446721347033942300927716196471594332364659069052372917985026354425436202069073940443138613528184353382055560933474764039195750930400917796137505824315355137977751617767459918209303707382719908250915658141525132489511257171086019316865852227094482405152822012521562831460581863874135972808590999519698755728594509917284688096724470766173541911696486529583325846091977255055418143681003416104683628913684302463891154033956698882306727558342552555191726195158036105660436198625820595877733788653276372077830978158532935666201824868779512969704581554859750853206667091864075119972104066226036717495826740844695657514403991848652453491009505861384905507277189321334589534224375744702807486203599185904061004371071608685400703784886876437408793044025199703435537672087307358331446090283585541264366216570198144513233479414383898497373410470822345274035357211212006678853596351157853283833574291700350814680401427201473648414735016076368001241690908532474574633615704984702521594413082664607316685662752451512442864376642347291200309469275024407791944941738499863353054439474516105499373577977546187821748760185305897337400127855366652080308513916475023300892819173680624756365996546323910070877605769635800171605708559007581703600861091162593644896977472186002323664162957487929775120442579847451663139039494948660837811134549493135741369099740314190584862223715380795574845110860860672364272823545736031831665840418526930345887078685204565337015121131071975848925151927558682392404862648465110179745088178360182874990536173767363514244986112882980067731123293281519200538921185180728172440418969982759890802670747441446441959771087975034156286446619146212452591231183272988840365065428030289766942167666523015188790032970992834797521627067670906284963193710696079114651542906493058362033609233767410903847781846802917165206238138632498479669821077507792384184994447631222430212119132594385887053105418380881299943423316858188864827537822177187176686354759945601004250020759376408432682901537943901175339043982769383738232715035041237654085266872903861309624735415540756382973358280628392514666728069414446978439312083917755958215143440696459106472364098839171073598332469425705222631984995129698281739108055437213777884695971247833024119113183544705007094702197514613448690530210808860421377825895836568316420570916460263158373592484793114896061697259848480602931142665893709464529061239280501001578460157595888005265342819759589285082823060049244922850279921489990145794718286339806543782583068559236414685803613292362990650392838292763517120057253186211814144440916822121240508847802770689108944625184759430240833828479979462929093939270859231813673372757242445774382615566883089866655009503771129654729130494626305480906246991781283717237560815780811419589966609819342957968054401817411668270377503296833282109505547920454427896305193690566424075487756758436924163693230494763159373232207789845990360749649450106671734380720024675962610639759861182937608783608305426211468144887442957734840261167871598854314413585190629176267576654431272308992156344130450002254886903029491789062009920578908733953176458008032974189428469024576642313811358043277086342857780814105787140445728468079229873275153089978730800248908711769896273700514756427122350904426846524699949325701763849416745376589011842334711027521715639265808210176022981621236080700711081355197479442774154151191118404426552499192073110504489182668795364564961329664693130569957933878552744721363286682710041898154700888121955414395702948168300228971547172407462977133451975381828030072492628327281609237819499129520909636736653697665132101580712220366776687991578787452715940373472507061911614968949339735852321681192724970655818427673424095291671786632423370442878247790658195880823259785679990377912331523709906260822037002962766453355475818796335137372182877020995307318640057934845757614350399006931744271533209252665287846472856214499441460168185628954687373017083684603176373378743904723763870832158308262776432840427897989723609516186386913493078318525133978854901603856646495867218437676006878548253965476994122522596210935951688288927529903945260379068528656523664669076380702538443171396124864997252424386078553682775400200288692536714371152741559923106861035567883910833800412812570180114258946526339337112572968823967861680854729116043473930589892988959077239502598596282318152291388603347538554063240689589074140006318113768277204250193783018878595393746291061607230232581881525884539726511789340254083158563167327471664504985406408780518387503901687209165969172664451113179120675166351994942152987936125339077676248990788305376005560745306808485798107842679518817259311352227656403230792425723720301604676534252947076839543536383244098131710446459228970935972578624668769431804908918683821677547424587550475323556802015286571246465256885130172392103951814917227362318054516197795203760502158167671894287200491124790683137565408819482009723385356419110254317958359508164945836305060789435749953378865402790897905805270848420906823306565071567125037315229253094420842269723723187965274233451905374397546869947482905296754637419858907585967248234788739389034737691670789197829311780697668797310956143761496026916970573044567620995821836309604424917670994603761285250982178637831505332940872079253468558841464053707018927683362644062867207838082407083421818201588490840257871304118357641031677053900037354878963064501651386252471697954247563388989117238629750920286533937780274162928121339172393468326963782723284977302671035221848298781953995052945388211392092859696372056219222740473950092137322084514401061300085676573349032940075321041610488969529646043557100689532523439646455652257672718013707961918978133757743211435299667572516992838122262105294040881371784424206898869164477954082875157700218878072848123587802465258570708888519280812318268998037881440785031980389081082202230175802986058414939384749742622777043015409839564198503751097827381453381137770383818545737066259249343068322013283067598422357292935785954926660407716102144525823101738056301387788669353051828267394141218907926946740633511594096906001662817267014317178968179717392783593808262424836924017994274069625510664721098907562952181444341646596489734701735604322114732887528230288164264032647897518091136687619229560651155723162360586914240888136103672022470386426364758580893599544107420833593484748664199155950313972552194450215352491042377999753887320599321863501929566200153514374762976000219121707360900372429910144072005619726030203618417883277746421195609267288848824130682932843663745682617018190453873538121300507424224683174336171699691109320282363386085650952025565446098819161424467498332033277458130110839813865469923046827203906158889131899305188769154769974736093068431720610917238068196912005585857836546152601361011833623739470078957286565112817091397190064274759226589860306295333543263656769597959467388039866370386996388213252909718117575397719055023632088675449089789914901871886805803265869039619010544840255227175944072996811576941511506157190179691447537782606487011814933116409811573912755771176413509496828463591530517339790999819839857395030654139209204863752600867442447128936874111541883103814230891020442982578067943140521522308979904055530644398805787253165423238696332367481607760706648131738306557913440294993000025962827760373873863382077809877078083455226670586211787197403761139662521150276816065753237433276449689346253165578131652986700116135531676776589449685831522560397896507923468271477162729261643882054289922204074325691505607024077909302367891832462991655485418993750351160707025776162063699172740276867901277325068405704320409660612314802520855656656659667246116109572477919290583773908115716226139456226033048589402939767525986302820798940313127455508740233276427428663200604493794153663483028330833755021044604313225548469939540255765942557172048912815734725026535069588934948092348196265054906946663765334226884622769138522366171516030108993532088993515411650258313789752320680632814646934466078463659521615006110030874428883844025578918933883861569045082403784587533137627298938152038188662573498361126324805959102180226250883766186342567011462684389650868452435030866912436401806080045149190173288061518361310836511949632889039219644957555396144813321021443108089769587136093364714207880759846178728089932976887309518335741533464838402352644736991180022271699335597953428557325278140799209680927892498171983861779289814898051441979674491408074620298633559895082962049864580106247929130748451932247916921872743516365448739923314600831799686034376441969613189018215347843466996136679709783083450454454373964500868027972110416071243182202261348541797851464087158678363630688814148671972447392678205996242418306709944983728050107857897542281150944691380834640478917615012151584195649244245622049469156819073893680760232069498419359001292343312806337160889592508196396775174557863372823714431674809781160856805617025351986706039871324641118200995142615582228759925444761256128127164161717873323451698802640684986755889488868130052966938659113196355332897901229236404016622415645499122587933970528655609550354768292943604318233861342315572168718439703841934653233709611113553543415071313495469579285965043140391037485366433226242119813384942600197233083496932769120084872053411057927075889106482596893349671898293063750768517156896642880154250329644535365986539662988203719174415451040014344912903042147794482835354726594267133479283184799936437862418300723678298782346087280844624913841678267182377434485323675393985642405884977338334068651943300595313524009989953263764715191430600172413597309292630160750462592779613257256536546793400671563090281959642576422293860453937044970204360076666983470046436329052381896475417625557194262957385110223099857321091229014200818840969099380871176275001275939756328790299211821500872034193310277793180826193331146095771914898808471554955362230445743631835760842550169384193741774273512894894680214420910574321006653887908727659749539458380687042608194316967590454666495104812908100026273108184883809977941946922110238348760921642667651894418663255376805859007460525110134919565960339761996998313572561649876028520751272350247093991379309063913815956354256307093059181103999927481259276326660389093287059846960875535386155721769355259089652852816231324788592896168560951674812765358073849711087017176881822420707894570974063227053544437551806512531331636120878086079472096709313117167621552060240425958240960175320424883776194701025716573732890210530908881518885645710704291132461638844069028195314208163946182536681369071130928928819087560414158571365817211308328709029060999843418345859598337838617976857775064859354165277992086487025237020200999947759682715396053755131985261599571047158358519928312774793624793462539198478015458622494600002717144764667037218374016080898257223051838993929922123085475522525342428691069194644665482205728096846776277353579844990887805433842346976980949754487748215424946175802776932426167983126990227122094629770162410019426910094254320889078773704290430121059653255697893336720429864270787146305576069745586076209364851091618062806891245380040593062251648764042169100527817251801635659976667225458223658536247513003418834690754431239410443216204562200599544008809983232468103551957416323939223479043899010052621465001717741376212077872263823410978825002931849282391889054747409330368638781371660715257934609194682818085082845322756597516054124760738720397782347788104425077055163364775788119963620686198664582533160158465393941498293944429214333828002703712933189921481144453015526172124272829754635194395139497777889404663339087616885109890510961556051551173150701562423859386597591077341610643797816803970269445160461417702367625934935310601618909170590438003995133542006417169839466029338369584131241216159004474129614836603815391123487799375805424191613905891369023203258025752382061999924088193975652839639325039017105013787513857717858695869387482976819178794452316924808341935245717336136129572237544475855899085046417073561106936270955382314084958466937836876466890399975945966614740069683205150992156234439494923146823817741209657327726650628583743241683453496275941249493973380585075409178990051134193663619519196014497724356034914765922133657742587157397550994516549839357565985463434542787964800782962497891901284223272961031867241316017414747734056733627791894680555222058412229225467914990820620026506491283320380650906758074182487138815287478099239183978238023731394479366888408253023516269732336282765214513445103865864394560519962892085417902316342340486235070935856902817005455740980240762788918041734213278383114204754009928066330605189817606405626108865657014293904616345191376927877310059846800178516644131593795533969899217012812703247318088302634216980393788604919732185652442048818122282493831460462704679369953531553679386988884586824891852658258521691362894726687325004016980139301638452021047446551068858465080371234054958307501162652253398635066835770877067304133076773204519038506728609058777042755704021553064439887934472839793014546646719670862042195782088425879513991225798539279732082013790667856574990178197443232244702126086350077986655955033028029614867131341662952874410624356275870120141576521160751014696398290470769926823020378717510071825020913190028901169134315767903085700144232589687047148022534755159452830308140276654307229223975106791259182249887000121763693371364624517746113153216129370170945416262944302214192844011418272153979193691721717764593165267395500676124642729337424813495567176794636973040708084700785605020105248460150879592951517233600661653001574768985658970184653614540243889400389746196291452059402112604453444275659943703413024888273640557917630187556776353720992748262053348591956316784666288511142403140725731214667637102382272196529083151410769901066788245334496995061669542686596837517013711103429901187393245387450003815472331404067156012192183941242144673848464739247682662778912227262287452972355301317015255569710219639983651432407170639735639735673409928174162260446119149558090869594378456890844312087181466288541343359276306036253672674086422167201442385433132325121394004557494765620907444519295792396031339045142977658025380307596231222584835752422390009340322543647650642234102106219613489273458257106584705828357312211406219433941346861697884933923903899858375862497358337398673087285605635643105156733527428949516727370911217833435071796123792366348712362086768286543228927050519781898681076891489564769524765319665987813401100572799593588374558894090981261614854475872238093358978960656955353851477888701393652298990910667625302758666667082196089575329429823843036425445123450324055270493482310475444330959957906814696563950686267528318058490171846451966358488358337039980338982095496427543769890393115262121794518483514584882219162995760393004318647052653279643394694495868089305626933716220012910785284506269811135478208062479378496473801043462113924098411600049803624939925394673131868719118201157991259188294883727061704294689748860545404884668462835740114713098423767085313203855122624585560193231330654719663725101242960822828285538148706511296956350261013452612705360704742500971530704070203675195378072079536999833986659877298905042408755710150938886062612969999668753053225133433809422431198034357158861682295929665243138092638195143870391592827394892192174485188019630182746501291679508560782453803332848585247393015959695861137017963527828299553677174334422474517432982221364891765772149855556358085090877322586144095625134872785215791200581598699236179509337923560875200275278899880350435580420024054981798093654036112345319631415752714513160063140887779302125070175704939069879604828420856213341542883428610931418192849288577782504493773664190497105950433885036726357680246306149764996412030763508130527902375807788830024263505539374143842283411475921594206789924826774057334777914781853655028951922521352994614999015666131251940362734246020947854632494592109859288263152767410453145203439929753856814912234078971505283106866244189632785356381115779997498251538738956208333556603044581136552664646900859366375496907077916182349965070594774830164063772682247467710365397127384586882947612841851774678751715802208630169825169926968914704089182617866634106035527720460120411379967832078654166400688863735282627813172499994318368283158294025813478470624997399371380199867594475958852470972395577704217987105533948046823918661774303313036598951266514605777776783465646138643528269208551918163098170243570608436795072589334556675677173016388616582822458919335112530701083307577514972785057978126434511123524591135771319847347100328079680978429155180642728686427093197583224607169950788903401690599305018534121405071299745175361825922660715431392789017228563481564504415631350659701113973328102779418898835234671286139201174815125377688493082789038338236224998951709433573023418375988121521130125848199215814082991278613936793333601515206710573349261474213887062834085221235697021903615430578357095631390196349130123679795640295105328186644838607416288934959831339554010475933130828769083163817994614353270392629173995630332872776096355562174894354204643274401725947187514138163482623110376151901989029400776184444954674296195350036662794838998288718462640613887762277108962671443718257600103902409693698082765145079770163428886736536958025427809993990533810744204854916824571663171809229431695096510925740301686402981700570171946655145403956692620248032101832464362940782679511280903523097239754097315171579484371819137213023870630173763989239629223306094953607469406601663929522361996606776838456854734642454744883208046068079949512223871913574482555475364501908538773143104172311639642190395292181654880752165197600441086798716559861541745497043131013837780969065523095890946901301930062726788576000430880975138922960951811061087800604450857214217717130736537066642220635447795225361824559649461407872916868752165956871803124214668298150365667841225760283005765979219142398300699923314732730710011704636468781557274362576435346343593298255738613137813521879181529524274363937354556788267566646650829198723553879801949593887962047280222541155825884999697323609215457575057892920781742732325034002525150103629976979721036732735875566864788761231963810313170597240835640162831387681742089150409656198367140516239667522492934458341139730189247457201645832979147169581756801256449520668682870766060099500221331305428032070041192815909864825825970412191537838780208781088366943922956469282445955841162709940156412900078097164539789191752905165857282636588773400281291153663684283022667229900471691506419443234619446648731759912585563386001836298742710708838838139878373945882883255032982767289626242681519229291939906209546771031688541342905566027348948681900664857452977428762580404059240544223938050980585848483780884259225548785418117176867089335437664257815532755975047356278622023365810500245827359290901689770765148495337341037542118260257121463337893816932615196225155534453895515100770729148987000663296911381170931316760706925854987220784140912556391999236665008727623012930090486496654227550232061283450755172672164084158494076580899173433086952052768107537076984586215523549064019086230916737047659841825457465428601103634516938883080644160321504625443629201711518309110320381504899730255460419223485306729228897874608752607359390133355518676879821793085960353223873371005187453636992104051526546036992893531866165447940360399010851686959265088410274511251050495369128297829997487482554417981572893570782401583296291077411224286318305709081953965984858469366969206166236621840587910604674748998702608117366963081799133759645536173035208512405722451090107478583696291260316267759399067166179099001914421344970251761252580365566978889508323936352122306121781925591126072170849117037660713087686294027314300979499825735845659048889377934700349661775647778964602689979507262244435282519317867166587179804238896502303235879619805975686607531328846175604628501548994684139410341308215986949059940194937475515339221976887123088973625563163675490770191622169309121912658914182599749697339392644218038714642011418472395261119038562053985173891745877419298355017178154320594151610780701871891290635877393841346401237379504960945040077477745031888162682505033338760821189465648110398381518926351681726174215892867759577152056651845229545973631439173660255211470748960107782616683443264678013915589039907827929152959001403700336954940949575493307812104997697927508036782376094760917613995746062880446714810738633996070467119590343516750837216764950825084736120077110485356875799856263609992378046880753681778807647809715959762327465793448890853193660792043695063650868143048371221260933143087659226386620342108615489982047047616095361241052121962455308184709963185913920614249774689087132680876823812307038290084018250315189453977561040496455069408705926805496105494818007292479209426603259461824319211604097804151266316353755052787588364863980249803472071831311174650272440232553961194763765906883616535251006887905549963658290144419302299897390290590850691890732085003480977322435902751514434455229086901264106667810590712978140049669627331987601229166659233607694276939562796567981023664632583553868588744863160058393355060847931486564400428785476035700735489099147982013751879605518867512168758485264795925373651624104518364613303500778420112970665715932030779828317315561721648725158788677542701129961452216542114639498370122299739023238525973576843866784755793218182098857278657747932067908939165351010216014221113120910552812896004789922759276341613460008454367452968003907628008834837951264870437889427041479977452230409121639822396715319169123159031017675829832751419812388753544240314012663475433895869533586678104566161392276914395818621401117124559453450126457448861628250018914213845351314087779709232660511066693121263159167091071990897028060144564221032288508865797803223275737180715186960545823677980731870154562836767034563211877321482323078831532560933822262611244435344434467707333317071318821173759551968610840491497332951971399450657705248305897097294347137049064535482934605046753335261113207701591970928275741270359963925957640287022853632505400157774803687693347877136370148063145231131044692825055196697534501290531667089576075402208996552561602441433196415456229123950030906560443203112907824319360636521850849831952078943129807281583132164815164479337369582365752090669376277296681319943300930589943746949580008556350243141394831663322636016775897262790948707645342439073764564106816632612972020099761741438417491536992689439359757804642655462081955852371285544188119637582123825558701275395299618902276999808685434342660467533520862199279338450910005153407044140027521977228958952359436648313831761396535088053700768659022079337113263859935216307148352874209099893801002069692534336414847874100312809486562064515333610484313442092537816521678468455055556503641962538650739527656654755068998493528164266271814446725406933687477421610932642430269514412124725904936122372914200594176390690130943296066318673801188791533742130826468690819082448506594847163883450957628302760398218685408207596380570616662160850851951187768855111380632299747260714072139781682051307384388483800766583618734794169909684826874058459496732439351329763514469647668767650225076596523364284956980238586829129486268899885808833992134499837315520470022170499262406100796679981266722472608389089340143284802170407994842943049377736219703911704222056070502341036911541902978642734393874417494348082574829029031918902332953015823579521793582982718985854124238013040954069681140113282698301423342594498777335215449846560496953422643586162027620408322953891713441995461541451718014370119747329701334596459465985509145667550633801125391492531126709087593245629365734343511119141577740102518289841800752285918158984198893908169573718358900530914517612244206383567835970471336141002748174162021655947417515358596095233810958937249833883462259694870513738025198252830850392690501829236528991027836223178247700791713840105131471380850035812778518766095800989812697652025584184711879784780637579601693307893832464270653113630570271714442071864224145062617150890426536659855372659791766579118624888739252746531644609429815630502641211816817733079115706083983723670274350891530568745257298376718913446290570499522109720084572587573196380052748675842842107474194454766866485818874860108152184165855021461752530977358439507439453216440921524386764641264916573486339503836292734547474033091180881261544731795811601483576732402061841856448037428985932255050780072541284483666030625246159555419384209907264953483111007354327662726701908984410289901047852278344928749390066347532010428431949758110134500979847645400728193664879940905648283663203073417937272436069936858667979437319938215421677630126110183274578569309246660633602829809939708851748873753253465175735858379291577713996494879774625990006006148952023733768125086104288891578352713671858830385441459292448718906719964184789390171200283922108384745410557142527306762396025773984911050137495885405552273235896333178196212076371583323760503559871012058013588552524708364556383626822527065006962007618647173850209108521732021227624308984580438278337098978385466581259107262755324450362691008080432656347505854798604886632614980464790424143028957092342338454316283660989407018277527888728758765077844006810746040919032067073199972793648737524201640514679904230160123994313753701469930427268570655608830165184068143758305873675444724636120249928456440917003111022975747287551925479703752881852882387666121155213188081765798745359450464561458780622179895088448048686772516767405035713073497347970529315097996485750291399630526242446642333767936250878698959317617668665529511391161961770086128694732984164211124388499216080745006236210284137020287565070163305549035786456392340483145055274296480294285787899107030538405703625269524658073058916929649909777260247598956018834030349791779106572558987448372503651777254615045324887322227291413984498084705627177199229800428899989241944579171938922949181081693647644404120283842603140797715962834726878531611054922011696752831016856897297323416180509052397948446276555608279607505609765541606096160303213639129894175497114789152883838196763035710576036587488080326149352052073772632785440633823407613111903508239679713555105605990508513478195159496144969198372141291840305901985346719617150005967820517312947446408087148305223141331406186435285296248714802766541163952567271108199541952429285108402435515316895606482949290427940218581883228047817224315996156027813555120291600873530925022049923194210686694522863745856550146215938666167007935789925050575719271045617831338059275182228996370454999105907374713120494253005761230787552433370742271765587173555751061026919536072892960839298852080153525631269751632515597784003209728921405910446614013461804947133835368241685294738466765140456991854756940012463156892121558517999332161892552034455530178220225704881830369338855101457902575165504114317218925087718106995703993048835925835405013584840028018197023743525977846753873439746611542796992174195017320478886032443082177545166081884944422325606185257308248697543922662367671459035974699708152876384905807290927897688672310515894852676102215506014444466984180544465562066161798639025943582575573761696759808962094275604899047557203803466572704451598746961670550110636192091315275866744746196512636353581460507781281081240536218300717983797396559673318653246799516048319176833685089855173823311114017364235848287830599968073202846694025751754621785603053544334014558040753267963095925660826408039411092352643401585955366871388827892167367541818631775043630380676958346510862177283587624602770516589972812135000788066826446675609898888858439813531314497926215230887930549411822724103872982851669031101633709735637686148369156769516968464454844390556279977642725000964725921756210430206574318420582264126241689166231928084153633392891675294066890561552837351966674520448134280344691484963855418201967098722962526550430355452349257083528814324895738339689786058195302841978097386387051785082521163271168670667573201440053086595864335515867474670886238193441509560093999666538075523773110538464885888356921656175362743906294103301099674048018006270485289878824845504629605024988502488090351417366656454397598778715104082811962546478745539711100804818524810630160704717521396405249265904502983494385801916333570525304271017667259370862031154673991980164856399994690677162476350222850264372998431184372960847261098189184280111675704714167868623179730938347286769573463710805705954408676878828985923659245016625266741773026612378742582033009752067307277208913860595416737631197260866923029072173733169775992492094647571642967757947210098071211250789623594741451353448135165327036831881364910635106565290270494080033840597239016542920130922056925175586481572072471036852667343312622613367805885969985731985666397779081889738067621835610646059440641499713231876490183311155459919572231749264916946199254886410422899859958924993098665352146860972803035243771553193072061226305119249559048348981745573804426337922313063315369444285175748503842551223650250737980013367785088741351729850908743973219041891620781050143821636525587669206160163391848322704856554316648258100332618760106767524628623031992353408380022089327126741638833856047258138463569786399116210999588767364666841716713274704529531662220822230942131135178238575365697557537575084292285960311047720131568335903624465833426617682627964419564975446067244464737342044541737251730946763338463116109197037754331115742196491122880813834945042170085667810836497391853738628901010873591575136443332803057463389628876525015360641591520231937864849719251313694955616250866019842339069034202841739728495254712410991924513146652763366670631509496089762197878459833349144317454866429872453741870214590466648998217207888497096095773771703163383393989377801940099141156449260969837035704172294577301587681152255007777559668347215023536396927687993698169084011494550899358535359309358217637525698906735642610734490518126096273171603720172058616691695047765915673153758773192794843513155943764833897707811977073609449932088462218340425830945261486139778630507746857601810561626795709653760396643962586094080150104807719964387413337267948654337496966688958951582222975429004613133177149724188769554176151328133517626061684308082625307632662101604750016459163805192890439468830939210776407031068855912980397432612890720730339657601852474190446285984316720732406667958404859822093359030504423272659163067358922583736664976370628060160506958015608149116608291360234256660972974410411072538525720172766037625451158735847442429941583474743162179421343629784423875079155589675652784808676325058348507676969249035540084162725649705885772739983058620883305008726996481917794909413251251294315244575922292033491591207413648397617953049237871497997236396648902918136313486510276567902093101236180527575883810369821840649623758089041362660024580487877740000865366024822951180833767951509427970704490407945947224205333482914035812495535205495444136684146109367468778873838478187688462317571958366514520121375742165813085890198997153426162648091567626178305338010921973400612703596346014637925321232753252682629214580426251551791510300168928388580920478592849747931227542996340521342243404660370830135634544130871171619887819983601703425921321312157733080875527387034057147732468776702362452509924373407680337076378296280715091435154991967968967244144316350298311217797515661030625473236264513561386450418473417179547742439321496234438133636377969574356208727160557720987953726180473431051014166764137504515017820836395662934657408010455930863602116219610376503737528168908183553593512316870154595277273161020951229113172027093826034315643535738488122619842277773370624187134166522557300558622512945542722153422712164679634830000711493063939272574988493257147763595851961058637518031849648152223627626490340651626577080669374845389172785079557539698364846194460381968139750258623234039540279399275077778738623256486064433891558342706621165834796083932746817989813802877383240803595579129275021427324252642776538448768388675212577888756170660584832798478795114022296056328487943153835835223289600962299096886899900394150134922414524275795633263068864954112851885474282117338731112613898744801256400635917845414054405476601785711252444285193349100950668576407793069706563348066676943422876146782613973571955160735885221621253463643189326953849321996143083026885373120753274780603209235829955840388705359667680021991450900491376387686014641026372913153760880709165252083915016538218362757322621789589600898236585196736998244337397225406980695057508517718004170419291587649646949525168514423555632790545753576719519337835040388705047999991749371068025959790713598524560385943863945430973758355075223472058858359885879563006315917785121321843865822888085954613510639832551413416423925546236435787333710514080867970977489349191935981842703508903326595012185734907420722933799947241400628849426679203031735772856221120015739401276612586780308018712734016199325993259642148985864767767698104324970275035250017675779332522979371117550586430585611678986719159179097194545641731965151574118710074703743741980176917586805107902381872926086058171022949553826539892786982278921549717705290363435308877224881744661519538313149439274634949059502940986053028976614019026375044917899201293911775817012467564995952479830548747692807250598475890120892873390478274586768315177843503958125840691181663764705273205003400778762842242540355508745214901360028672923482207576377407583461544439241790962428805175252262124379268000545331914918858980456810663561800843103408070640080975565742286363934920899953297746279919080540695288966408748186434882527966215873402516837339315340932637206807598560298600785549453885683329265035119963225741692603594415486996906982928217221248802370018244965171929570030391043541500227627420262807931360937835455696475574670318144376021590313114449534136426862017692546576762396630866278581759211083099662298965543615706646231846889832646451220006263300881665453653696189861011900712445380573578294086036449380482429397027322874564551930168803218849031358252485324809610524935606695641769475801570665473336821902450230824895649153601890661873257240860991090199162412290604715282093264591013553783379657807380308257756751684431047771224506429927285825765234297298354343123078543277490270458786969760491534946492707466212206193199391012182604227983490571279977436607951025579721070016442700184454980593150667463984026560607231618182849163108244656776841463068239962545866015506621597176374476961041921846264727664723148396546644075060852256480195515872550148170956230513376113329717789514727881033803753672532019905123215849981121858999065570971116932838475650896081612981729929221226859689811792697726129081669558097395458083048753799474436926835141726377032747252378521013018366470724216454733743224227532775766763837351812099295832734883801219439910669659142475239911467444462343840805600385268738522937750071019504147383009294093781508357427522282109540613868579265813102396894166891677643472955785620531078494821020970846921486889396719304958952502230190863718723678864670420986111285771581732272326857671941306219238609040811357864931481306068076837876303402353794156901042717522689930889069074668556543888182091473437939944440389735625593400181745465051124026564660371402269027095904711832257634526161970010693946005493008518109058335547265825994821104962712673939284344707512974095556431895268381822623885215479291128934362578977277972518244538610343895421371431319701099057300879265570651818711462994027740519322365396856373455785182589745869348556594972470215172795127634824475467929284464056988095335776905724140828623829182864699958528615509012193710831003396006802068211601520428005820132410007771667301301952852681535093762300103142889863725350016980947330530218493175965099764415022080728549697527087578822343559742084467947283586998582486940568908869226950770743141207912740378479325485194757908376550082781316177171292121134769484473654081987155219369618759041780557755364972638030201564861015621262729450824972911730741283021997197505854624927222394254879046207694140642112348461261059327390887097860170308121836500354037616826088251309682817932865617672888786997543126560055504694810147611339534178408839519190672525999597256998714596538009140307915180344293282038337839138915603947172402727391746234544718647859935504520151100302747781247311778483937065152981840408538083961140846479862294949697011388167340970997267381080445871041934519530413948506364775122828068790385258952968289544410733715635780055255256072150799892006982742263264229936136431865472068903906420407414064134256665650200637321486111546501449334078100188559692837045873527820979812086903243991928097503845413422859217522256903688013152442724916274955515704799226285801319087671140131958910920046129367119947599295796744912213296001814020494659755982666067144919281738711880551796959952309285317797593696686851179802899748312867944438880517773112413187406357029541179378110322582340562848413666992339947459302428159423732829518491967845226638550155398047048366544492428230612340798210684186210308169067395240349995478222601901114359867006346787483344342768965036892883967495602113112480800291763455670480852572870872853425166594869297749357344754638658714919168345667858520030215060952803839805199429886130002367791787751925194239812702390831771006784629933859797001164093308491332386723563383567961712399057922168904855705185508210173134870333350132042955731574460180526771493627388395334102064135186205595416796732457598038130113179767150024310147901156170290207306124153009737539413864942749232381073740184363547229857886817822886704620348343163378774625724075977886626848896421297238533957392815074697678765085644119026155336746066449732244645631078246766006282624680553383306118381093222545169247112918730040096737660640234139755800561733288436577847730965281557256064992990624410014607003628429886082382122268865956750460553514923510754145047544311261931461474651802926038621565027172220286681425675786662035666036510711458480777126068980008461723899179539891487818621069231664510306770270189901677105726937876795651236204295419541493966650667312127295125766734690520910637287988491453144941542265726405420177596583606433358531007859850760667571346209989485623973605984580893709704481968407822993312140791994889652115310230253559443268040482191662866156782700570769042908092495828296318032665621063931467263196388833149579254716025604508167656418981399324830703024627504597040022504162679920958581164306004915107279636591708687302853965062157156600397359800157367979758863351584837431421095306866292709382475284965420252981380273154965801103410141910675493998476075851791934227641085418507977425801333745996310422191292666744148064512458024603349789773507540832923663287959972031153612136975336440320478000300430814839300550253603897603531514522410227415162174798090566163532765510833585943366353043522043770352001936163042036353652460147273526840328039335132208883449160637746941647862478969267966530557553762446131885215309196031274129966659415361497646033516060621764216902322224333700019633040988167826412590613463547059437588057798108837286137546287157467806882362202275500749570136884193200665922786197809497606772470047968893986420526879207726097915357974782752111447116384563209640214419560025858008840178253840558047838540252811543780124545555224674370666824531919482822383991841024694261279925594962080168569433697266829005252499251281786319500887416289150019739073016718119265230766504086980057886396083787989089022503815460639511347676109468778053702389160253891827400919277033914819665405826733812360534309633695603243962898544594609288858318967141053470278675837516334781548290394769628230991631989781973180630123034779047294918929849615173957116461405866629053593155088567867656951566249504053623917150263173115803524167611502299172252690023360439049613642501314089984479150279606391912517786160721272570672064831497057388633575295175988039188799312976936637955999904645635622361707059388234696131711728317877410415586416780725088817633751921253564144284087042356560708980977674934944680707696093366458915623086856988380157598589965608948515819080206428485267474817327348582707892089132407434448153299441422510434061959636631589813572438818355167938377069449830804383873406177495284615069515279039582789990243211477269833534282878409028718834668571669245629691024607691581296260442446155953954180710191511347611756062914965908548382115977961777699603267165981073569361499886193086353763795184550073028340094217270829990415079690205734959475790054967225661166295832471170119644702790162521417921022676720911262587932622217474908301828448858536994454984160446220813838800014960696119546981585585495028306316982495068482002467633993977265741157933083769644232473820120469184254770304567806495881615515435427919093660884099870780530079487649007624043836073896719019177314689268276800504634030444064620185207531845037626395450341036330788577892667720272318911856882748564062178274236964348576644941860854055098354684782914814359525947436265242640547657038169051305408474132038239952312561264110517730690338706196864415038066711995684041428407207695711795180807088601128965836729917811028177897357611455288163227044699640914762889264803176863378961493900493539999866226189740557411222230866454711222403247991407188164742078713088313343409132357064455663308714026124274737013980418732044973761304265040874489836761942565174140936019853756215420035160648258686162516041908055671887320241579292285396363834479370277432663339307712347459622616023057115515082350827875188702601908795445385658182837617578715657752428750489370698921111208954081143243136392994861015627157446509999471362199378804890435827091001464635650950842084582786783344349846181150167635298605368597293124608173849696569931663357774528941696169719166210332398958356055098612352279980617100850243055212239220089902297076549680772738358026860082204830978467631612055315626200383107644839346986781607507080350497076836237382619266219820590323944670862784395195537514028811892235844079430904755331876193896561316128813261842965705918926926021553776577939978387461359283296758018342596704934771863389002100930224012164479120943407341946665601829904333551085883199917426457803556441420912831701529602747444623160961211683357049038566276028907649438211861251725336231170552488976624468306384600563830733738559365779662930747258934904960258649528160831531919340878844004937302769157445872698169891259622199676505782619981107116717700012255828814360640979744866725608096784225732904299869284959193724143289294582122882263581096970083097097273912342580016850668485100195074178595022989027234714245491568677594115843252468744409634343861470596605011486986269250794585815452595350198047304087603773251174571475129749999133981614449745900354156651043114625063218013651468780731424889122298467274248676741648171807912268132827940770595689622653634812146227446890854500143084876090158243048386538837126812563320776473468902350142264800165523428613454501118776888626506018965482665623874258106267578850609377775466124841598386797001560335558643303410608852676647193537987912530077475434159132228775018401658633948662128551775599107046474738477351200127001440336288815837007620136662130861655900075524544539355120343074156784325721315880655791756238938643405065940729329783340859743680657867438307998078858665465122572879302919101262084551606165447432393038116878170979003089126997678246795576821646379067923293902001850442378116255942964131831079719431289932693743048586312471921521355136787746783405709831869183168295293914598331255214550904981492087184602860187937593447714479540544906303188332067246036889780527761836919962768028285255196080083424410572229729080814770032478742032412547600015762390647274399943457047368273538563504813169772051940797704183672290105661909766355186369875130255202124173866360510714859155724532148723432642856792519115695681892779722809908440955492072553199488275337118931064781285789106488133741047636512985107672172049310480267296524926867170808452625900537217035582233845765190601062153725347024418207747620878778201425887631608297995745488645448272425128450373415396628235529163066786579044679533611261067468545874429254068414938167999326734861072993737568594040548030711144939382347298962798576884757883401409260886376566923415735694383958337926617850371104618340952398850743978841490833591000281692120701764423079665987740988813563025077708912106646130751586857560241210822690003267643341928700278090995503292789652966049506157589771249403098877770654559078391815214771115304647467594235403054556179664855933100582720992945937887799102662788807266574999390347495109064662026668044266438753591030286545608546139872488663916696521008996837106400043073055197689307253479417380615175888082754998377441047741731001343675875701396124249880552893753613854536223278261936683385141037012753959217483925509566763848561778362956097088802456254393380877596550854808535786067236191915631957783488565936651575341627698608341236827477022622000249909983556562777629289519277147235403981314469474365840144809348430793017938401639971419555758939450306507699592391022335609119496237454983783374316403660852714171302465239659055268095120816252634811677188763979085928122082599900612159237820728070573167732233930209557093881029051034428836583876576209258877545226537994375854209435701592445774099654624804624904099969171802923354399868397443595073233800155466982783144293579705982616692218706819316997897089182414528508156903772139064861290641903453952990422176294563136111351636111869937572053119064432768974380832794538608412769010886521472179787302275819327680153756429827059381777133344746791626430541265000294423049722795317043827099611808166888435475926857780715150290318637262836707025080303265611419425162894935323737154751579320474138757126667090056088342753755121134933284042473823153648313355752278757022423167504309888248720960617560132251438821712731972063649142683161211599166158707148692284763351731713439509486497544331664506258112062923182619789844397206530008703750024777029363538018443446638182531045840154104591893031228505132223054352012486964871326183889484719761224180127321180310044830087026141020106077744717513642853296879475847357513963158998249838422024391830728276133713162746563105602916308120266134153100489988891842073419074969477968197877126228710046194031810004797636255395282776283009723320940102822930937391597963431821424881828778026214505556734110266019243293184132905935507953667002026240802642878129815681741178958119490188065875268312888888679019836224786384212650136497033662654282891315334824910615448189075379927289636836688059637169426578669516282922953406440307963122817367194168488169762187965909366194740502345621634597502046572228360373646578999201348116041196825854655683079539157062647074819079124572977896932466209147037268327144905208033568152595276015070342961818049902822675513162701503313972065479766096289780073813150051403699248797472289241985155388634289601002902302754479793170446544548206863942262737446418907978442786628703250378093975726455906024351520809351879201446554333431803532280486849406436926663974418596276271391026401112199315576246344038076436595858711090641087782316660067181647717330956093428446819887287283203689552523082649290898760033026056615248762609466872505116924083476977346897828207428474122688237773258278755783314960429002627418926192769675844501215090403564838877254041283892524047803243983663274117355044931935754133867324354265573263107294335310593887882768988095825981075999471350692980497946889509146656094746588513289185289869853036384420081620674626318365745748704081536863223880844077420279804613909893195446379755474458705633224033103464460995565585879422941680345679903443532179626613176682271779455983814760158343090020898132863803611287400438999499956939872311252560488109383915944777524591182221462217769632243401477423834203911319042473048876712950140991885255193792599026840223729277300812128808926717067678099549536752897322516294925985937357268854852465846663013173156057113683104910744902570405778047702661391575427393573599764813885761588837694681715653430246065475084646963887977355952212391373954993573730214417633318772403966343849961570654398110699446838214353547930058676496944026827759037143835089095963937846246763862837251411919892047391728129229860000989770308102149221790291457284884551126100124246496952321780748946819450365987337624201235834032062500085614255984266078563351340727291013568172254714382174514405031191314898566303421566535289672725586535939770394079243987762979494464553006543685383792551607737785129822003970651670515811931247184148392619947432660212055074566196282597935966964770915870121942923971899440523185040096956803203709833731786893642459449152347551090836424142604776820294958454308820048416694277078333114214642017389766312501999156800429314583460118723866706473145600888585845953548638472320212983902795139435660910950852459265820602817641130327254978423384905836166581605890150780245464226783850096746253152126545152259708524041187428833848617532941973980456426246383870617385493053314395467946492064304948355626704030856138161268052041085425740807739866756393129144563557377217064047745964005761518874082601602288448933560775266558568353420714856687071205094223192087876643770689645330121630698810637132680409762373867361377059656207117721807800922308411196100015164185188868601558843052654597154631423644672582578986744725764716447519715050203480438332205377284696213542163168463834101226284406373995542451776216872806667776072125664628276472976797801784383022305100457415245836608642364842889800659316483830677198698940111274588287836151929246826576377309049493317775477639477772349154131477559187156636927457860753058039020890320998509150458702122200350300619137466669977435572688742057714269044811122539689105256180361750841653346387255462924769227081240678232749160835792805601192925863986519035431057396871330654761272134119566279305035931205792844977506802779545223813675812233227541098095344822189440245731595570464580187053127925695993531412834386342114665416270323343517498999635835108377864116709521090216146674640569188216086483881129352925222224111868580177411145166062356997025128153272123117713885120123077337002265854612404918334413742666790129785535144214109834378866001231383609277632593873992827048465157711235612998811337938801276942650942537165565020816745201532949410274635817159763618192931992994829999735272354260001768298984943185506956655193240538439980428036207866419292545358944469643663011010978648755462898482212431137747963200862132855286100166966912049405446797873722244146729934105144329304025518020167667971863452831646503341930875372105661566134084547894009031872049452420589429163597610208824759266375830979788978774862633575854870823257344918064469776180715585689570314511581292149347891893252870989074087791464272796991815193987383982087293454136881941045652082381814124732200429157429503669698955188109119560739086362883977324968569238315665261572862917663447789271770300973422331927045373662244278689606711909340846349434986291647590476573071429642464787097530379424463107315212167005934472724631193021684753832691175171657209347788083078279340483815934042321055013540841212414734626753985223519037671631704789014674906951839517853502041974361668803719709775627728245620084071084242827151058851636190258258045191346730915148606972972346804909550542720911543000781060758509909757726179273037842455826961552989118599301459841566242078887636919049941759614390537832747375460186581320998991309854237591909055232212051443386000609045970668670359559484763487886721047775508058166048686861713037294908680447928220023884611678909244285024310730234946282747914913957426542167123073925678215613353814049988203184307670516919575600152302572939726908872655061056172227518937405635964480847514576773028117679102682700708442381251460337072893944360971264195634616457837422156671054306140944911999316521231864945530916118558385909624208093323439185158214710188912482606472983933243891029276991585518549083786274244369232481347395342799610866318780692773857302923054356686870828782799407403747962956082623700650496356752778314669961454175427327891486841626154319070450216199050877470960825320161081626365796120640392652695323071129616613691515540002495815464422071267438468234121633048662718375924621736075872477042579055720299667403986757751984123816810022378256192414179667755198099896973325190017084773224324124911558961755239637139869867037775524872038360125793616547758076598236742694322366719945525016455983908848601364613230188878186135826366599134896455997293678056468116326125722483672817850287411897385076966592649086032214750901909459875429254346859763985176557151165199558597371665304904978592813511150744120782931398508268443307408776979967484024476488259211194760944842496342110909191516806547509105336870909962896152860523693732431995487021460365883775184034941259240240583044422283641436008931420024203829289127271775846209029481652517187361218659551438124451290830190656128170475071162529127718329329813649490513290592090804473627253044433909903361706039746660601274926645753952523237241790179461913860089844595526791692054529494885427503835339905878406939910948461081965741452973201602798095647950833109105286920835303726999851271984481439899310517120968624202468685163382130168994115311439276800328395787701587543392714695274638733693309547505195454266088121037659716369146657246348632593120158969657494261216580180201543218398971761101390607034985368229386772468034442254555137807983044616501073226018427156249435032651552675535228828069369387471718419172746451579768583194237731850555443818675677239056723326706567132355914304967253796364532252795768640773207454763163088830521243837911651811370659483268401355192612330715988030455829340083221713906715287059780918119754641902740983680923366891002672155402128379323394128683253856814670191704399427195527121668240453795316238609765354246861433404958782622888488207997339693448088348290160238578235970144106185259089354299953260038866304908917529563748322558799127204775205446707631387732375887898745810673640390719918435699694909863376660098373413625884616022185433150734470591856160130881423491947923510524738882431039632880818039759996559289889843493570842541244818845851750084064826175877152502595296596572946601081971647904035842622479961137851760456542656334499630825484426905526146023363548589070488849061712097581255668273421705189662363353840723319734739098592269869451771971667120458234555333238152937239046115408997881753428474748400858342562674407701996914272498020626641583205963697892975411452853391349025879276534888886408667254881822958973950543090769170039779416865464398365175559056048508029428039069674966476720397155859266298515836171583975142727389174286417336919607939125536739623175529656192911926614321420281430147032324793722624201088759145341360340676958496401159573004637266889093825316871855564331937729667003229393985984730531609245590952878411840429914293128486209288871130894521290936626518648054314548573854254930587011881303174140723715364708521189030907084769745592841461922393075427857151922255544762066255998777960250469827488162532265606754301294142054998321154792188410444835602078281584525361005777194414029467652178254309497028116885391745968998149156233003625565767679595506485548872018882251938640698316342273048627181470408078416383309479127631673801743481141729693384282309486064464858798254139683477957270035072471646493905691601470640931444160486262018908759217811208123325851984077615327947995335172761777761642241223844412453456670000990937884051140626767594946170803266063708425215521963225992366219735865927070100850964541183856148402292032656720436087478917926739843954866506506137402585306276852104950837970460351076620531280207896356827501872072348485424303514770007850942243806161877037802822192126541857007403908699940783303458811788593140566904603026619455576469771898195449725978485094821104114204314984137745280342957812960810008414744422590803148332813505372677241135274219944175567219554626309470610945508072917506592899533575460537190218767213137019278139670513135690307926703393208792251023123515171154531256502264670764669346153085991909372453319322102473342724127743780143818094271016609603758429445001451901092165559564910304022182436143897578513641360178010376468891428940164174239994511143482359775860106512841192875309621080974754079901748683886614309439256752975828678510785618010383359150835823874596822129571523070434530952343436313353464875551288050698722024954924520243208537332383405418807684471487187252327444638276319690143795730447557104665003074901339400759226533443240938039206284851155960418615932704882021092002866774168496108944331593223517797987292759390947820628403971850928641224389180048788848708186697886450761268576678101981969438972311138481173875811054042627474546252788782741029271261816648805934138309474642288072646859585440519089993791778982666803980223984751578496760950104430915763124101309569081609879905213505147896356137928825389081472017397052683209871149699844050139998493744781165389831706465768525559259102332007954098222417603373157142324969844128958739897999763602781437121683908813032474513116204239969894843953859467092783304183253965501522743180514664835941208567537245251935308263490071928876582925271517787438711820053142651880896924485510269530551441130282686592490844056687422081247357666681832781331414550485465262247319848434619575143145154361953099051753242110756266819754095976425896904131704715819364493858061987928151648724842550251485883112956165867690565126823367373892863764265243077450952153861011419417132051512078664526856631770037272259405866154060887728790024992272024807416224806605328329199877754620884100967611750099110105008777491485317295316506316591236834275370266655609962327835190983388871476634876376427420131723661961522103645908242607642564402688682919289882678665695391781569791309283833130600878971805393685896254791866803250602381415333436757551690285274712397352183850349018446838298304262613652948464307136350158428892574902144440642478252150197555328515899941057311203128943338974702038725067228266199069607898129339944242492616188170243227046202931335094317380147596804301721379694557910530721878469433006627891919716695521806280382065300639791452677234567953577416947312232884307418776525866564446846134100011664991274744323803274735925024295462639794632255745739013550274972068801876828030417093776786155452820721247949978209695833198801882388295731793357605516901852489264962367786049507499260246743708162835039467990393990985012946769971407676185960437357522452056550716901977921878919100113742017219630513818165571574652042807812698635398992070115107610379606883338921388694573924208594234698451351991627275948373958849220621583041617701907112801106614596758956052581347751470142521515719435623340390586483874823862944443743449923963018283866858721986769136200142457589596353120481121109554092033429210490129949778174431828976471207096660371168128350721751759463589788268890391882115832741712281093839766675905625215890352041598383346518919119295433758683130538673166031947107195027150894815026012249684837130337512461178067615284098550385699698940722697645325544182683451649696180958694308346857549873929695534852062433705631480162211090982620195055247599064213164156653302118051311717518404527240258788320543094172038162131053529467020990873067184592396146786458683094973108352309354553005076091783732132469902262244280053681602901840398453484966037588387358390542732977480956247072054784571328493989994687326054881598558636338778234406603944683807300667461960565567350477011891743481578302622150943434317845694004088101525198613832752580845838867634919061134005231966151702239209952135536896743318300437310254710883193811897713576455030287707460974138518348546778150758716200968419460185140079472905476941594762138847753481878624684239853416766438061642045684751641763294255732744465434553788162299842822369515338632679851824800067097427140086132751127626715424498151570938140046825177690152165410833034718309532458528181725618980506206058721665938265177281609550575992744941379880526811680454449572981501820013391894839836117956719956322881720348494403921324306032606690189983365936673891963108630880881641209142936577983400242112877283901603992842159360266931471356603666257899203457897367539083665215178106693915276080003007005559829331386654429933392380261201938011711572463887628686571947782000548781278655370263899532513233220969687218271219410002988127393572203393286809035130224688460380402763034919940450702672322566940539271654431347200861513347674183582820566855517225339314697407986006665115442092086384288628238199563803807457631402055016751330333971090302606162914810412914880877412671515921542090755026011696193865700172553523511227178942056246608764669276223525407821033552263593080962591415448256347952565320512512677627807587312754772023468936388672129846719731032481650577136585203510726459263757021022157974312815923511223154672259329819902946504980195367718211890854314394327818591683517575061577332361235698573098292849627184338575146910512623204189056327456114159191336149537289078922966163891220010153242838056500718690730967210589622629957074836093968867658805331168036920629368911675103947537005133696365480679445489405530436818696400089950137283684229871565966562562044006312131226222494234654761158951543989689772218262996403921140328525677668367007298311920259737887003904216028247042036706376648746198342381692925858649883811495627911344177795440674626350348279745743163838724270653177177024691068496056668008790813745251434464268627707343001692890256789154590710869735389605486846732212537400598452416674513084439576931635311690908368679865293752597060599965898602155716138538497681039217149481022765047363516764201937784058180715214018185375452868045041304997038407239428610850309497102214392871937782704829164387756355057113121021608344556046920575144750781214656952618581100791952075872768575378620206529332264189650056503522187821358906300820017249195778603828017839343467454379320265534046929289656061733084049515533552966785895112947122279464140013242242774468293480325285950988349666757684802748677651793112423072388088336410248805727414892102036152078914300439440607738652556227247618472064911379666135634840133717986224194919188500090592887705990748317753393099635914182858018505895004761567739829079103342068660665829213252908225341901209864162240023347468491715942953272441141393963289519407353011718363564751089601578191489491915321958080238694718353088316814455887727732771692487898107513753108684919243160677720170889697840761784418320390739532021589933156765873871881660467935517291006280165791792758353240403655816754905339531137890260711307852514908447817517393429206081244901111084769423372672076384126336036927082861151007014107579013831570358041108055997250721370697057555541999967439390196709265135290748698276022822888443745715107307043863766421408036631246808062031705543246533213895911503845183119861332531038939810554088199731603108755087283247983660643535052841465433622121459592917030523597983833052950359805102377666874542703939285275975098938194211318076655953865494129584267931274358375032891209433485368834466047479943790532416243970873059818643659861591198134549461936284883815438678284341312650599894999454707074193589825117379143520959863684326816365065434782758373782032110957748920339030268764496645313382186670751590568362951366747287737368328660688507615115553957701077075498633823885408599392383782342202354697118311292483320073280679895695999856622755701442421499304065414698412929654598144173380045839733667117413423852972392820393969851940819733686520627701646871711052287885016410063690213683030590849381711143203090936305960655950708227600867913726876838380206615968076247636888826283934169438467804335483897460868791318029703932912388554060975745056537376760153685654319447747643646732690299066642894284297776799815413327768774693053886340204829997252516320325534515258931845515998755493393210161149161992957342013848848858015668974492600115782490577310134975846780621387439220558033962418869899214301320432856703641754754185187608117426927399237187353040471271652607523482704864390427627057550407766083903498132064529072062582850039785955043625639118467416636192945780056496008710963176439056876167613954678946926056026966971086823178116348961493834881551071346258999144167235168495105794151414087099631531456756010876315596029571623760572875772567013716532279682134833525002396101167431570461587729904668840940811444492735225002760993708313155503064165996474504210765481917493077883200930171497913417207953253883366799815467053558955230415878121472014595628101591631609848785656039263257935661044138709820080790187378333517575909779262983535939477799084362217044098607678677502506913201417723840086547839074556671104767598544466100302390381266805807523745246276082823568158137391370620084575852812949054332761827316093498852544088163659261709724049541738049830525823087034700289827420098075345898726737446982657806415298750422422848016156477349097494181889552250422555502717554956091574586601349056233426754278535082107124174494640635242747156068622713447188985702115734603853037273938437318870215751341533425319149757825772240538633121309366698073152043331035200846078924737877107535582729309934027028740247949093635122559704200655785110765304380078361156771511728501373956830665799738936239663977262264989801012134867144805139057541522329073439444608970127144097677287408058595415535605478226278313870813226397080541809976482759826302685381054698489088106323254629124189718790290854633063512127272076869047601643676223332881190575389925986770822239116687516353796646200796058264068734613558646493556001146490688315320359045764972872590621450543987719496536489410300405167235756329553078500063350237100150191993482219363593328969259600705991696152723003157318303096403448864437297941225552782620460142573873999756920503757010053268268348959956752556884315511164447818681446367625394600025163618260751275398154692861152394007223142210599618549004022018648389358046473329144508926051883509961718524269575161352925574828399374512647034446195677414975815641436282554607474609504954484189670949218496417888221748064239159842986149147609271349498253882768887911062307305947025035098447496876200856014295311002756841482681474527204954942067156102587878263859613870131097687408201152282233512409714461553243148578975995131014098506606671046453980658661293914199752837899634311035612377753228572517965946167324241867645579084951962531269116579623085299927677187530025801182861157298201401893352229137221219130039442531100434006060574014302392752225619771969579320797439548589801314277668585646354628750622375907620135718802083196723039007115137330454037256213036057088298689216723010223463938167677965306732926534404119867076363443382314785365498778577756734142317246498088727976484236356408299072211941377686764013193934803034691409571124604967668048709517842322969097319720355561679646106921357702875716671911011279660094363844448282947691151755580137570822957300975983029440510075821529127537053941987368159997289021228277383791070483546748243260706225214347661163181230640503727658458531238301752283619259996902853455991667099148186820362943662786110077245414717142336300671113022895968225375708311215710893638758722532219759904675316343363795397448168417922536028166206193018097129923308115305098552882910031115669994816155759141867281490485056359421622793927393229742614834872446187689142681825561480015871466780278708699338476113214074595093440423386545634710452452027679135388146880413290841216287704195503285957286686656869043614761429649740858171358878991758272622061712196811287469230688777950044975875687258446855015978452568632992735463718928978596973330275189609234382799850404130859261678945170607859315859434309531713057585400251787846822554495873263254109853509857627915843219647249601494775549156563721973557242353299254934707602486202115807609861427179160444452877402823170964290499838038340187133480200949690818113443315664068017597341674843573969258985117255535941586183375543937831644020245758853323905563451758434666915593010724517618832028584828255925188349144632523083923594861267710377377684580046770352658997568463651038603687155759781708760993935118656725910297005892100495837546253506176826954115482896246362539731864214052044146188581887375477023856276834402839185257097607097783065376495777005167123994090129141383714506198336186914301944829305278487672014690502377331572715816670090572793694352793475367677826710658438139836167705963111669835459595648445276828277693132491170645423702040663741619229669219994708447735390624325904936939420607908926192539742684566686907875835344823349361751976196285658469067525380102658854151061196887634994858078849286948549090008613267197458537613024790493771169103565563410302721820052562512958457426923176621720742409459107489072814472710590063273499805027014753682360490348838057014942414902624134828205893220555903632622277546270917969509324129452050418587721264321130655562854220827567186779003779884209409619248487537800200737445536255314186870994040265550608696824666498418010102093680305574816657917668325158949955647202956443600153792350034851196821579744079355460631392846188262776518289757479916128614009544586662377271692216434468508140116419417829188558308958615722519796310528710833605322920083446853711520958574730717477866115713983352262771789380897333763083318406601253324726943372241699244878929357944584421946800758829092377048458710876885213876148794853903649004060866474599923447610696348433739960980823844854236300423912723091763138408448888216297962553147907703401592407383332244816635184054712436360533751470068739840819998189045410684737482881261594782707922926737105730013067892686878188579729455670844711899502590793669470544729626904539348131042857813881299927677588794531378131488894257890548385153410647152036881834145293784282325874498763743840071142263293763695134546809250713021430800671842088347793182319217349618826176314984618625595825271300382398525906026491133938605389540174391382954976434154756455328036094924112697404942280002892056776814227127497181963843319944537340933245270391895631948351234073163511413144369286446415855826641270538779421653010921905617874737893230278957592145726606229482514547437480824024959494829364842653045241515533874854426420426314467633147211200058762857510043377675378399861953692077155607774692780302172183686477989509841652674565059584127688247121227901789255180358646873347505197783346807558331413489875961188955605169827514933418734718964545981633728986785927649383117229225637073983035511187076559091275635278444157292462841269361428302228454921580504116839560171408533967767617085077925501829167483323647392481557459410774728013484565668077689013222900872538414432422070968241702183224297925658580775564530927933488544717052756200256898242057037638471063884424855834832681662996776916148303663157178067932970264247647991105410773957202567422071317431470803066369889219474626675358656590212633329273477978759794041495801882109015125230339195209622842169112641593570104358746663952040881537063772590013721425464358581393351229515132362605167058976351478225355106520201391671228761172086120027406418952460804291848386914212343081795296034277383478541647488220618002084400838030296248371319444783394204390341870900911504221415338678282347659801169802352828322017529960332956239399095431225171535344674516222668156252291202953502696621556237710555725396834572880906865616664954902015925658075890180244957157991381016221150813196448376816138389986160779766337596916557817532885313730328846545724019864981199595218383835887874730704669655941610231616710406494127427717640185141012783157640987388586499669394131487351218112094013518082222681372892711623131180665989516147777185655346788129953177494100872886423647753757464418097441818289374519196195867565162918283249667654086437477722194822551000918160846853405822462152829466005864192005183388948479321840773497257188248045166656807105580536729747643041110094373658326249986207305834453530915989910708593630931525518583076756697850505042022885077239579986977398368780330472579039494530794368099917934816477342229212586016609077807363417998211576524609763867247411228535614301325271162949535076606411653105592155490361904153319072099390035410774295198171406210076934710130107739870169068889744978726900648277624367414776619734134390987145797431350932507800569371023152677597473915819617438385423152125290026779005741643188539673524823889931048933652665162984713875140059613344436959930585239173974070541522808135318294814289425444239306999636116274873380269745144444693245079515791988380561655632961275397904440489432589171997475219767969421891253888778690647920879261201414632620484130180589361298211950818983934893590221861395698613757237627287309365794909310320896570112988089568335073365224084888382736557370781601892287948078364721059919976089418508049516453763260926917651495825298459929277901251395396896584689806494458840738804300467684574692367735360962380951065390315912044694833522553986593176364736732999183831211901076171139734520410540286060673984397082644168540905840723323688312641237313581329067515228937123797818395106785812696285923343196829845759714555078190814088133562956302535661678459387763040442858192263178076517045821756834184212615692517856309820979812638394129170559421935660209713980961386040819361594196740583981447139946709871751993891531318037890062552793441057852273835669861209790068124795715795835721304452294907474494121405602017391712007977471358927837498142142163804729446604442202026073165107952245239251681569120749247736733779968823484100800176366948574539302566231594769142770409338841695078968218805913201239672057501314534248151379463772583732478520536036326147152133757081828824023567498110572461727960124593099268365041986480033547776955217460006263853082669150258212761335375637335089581496937205210289417157863136198611552185899281351920956051456882459818719991106915322882740851181225772139710757801941930791945681283714572801347727142837488731050318373117315437225678619507550584885145691405528163665590164769495670958857422171837954807184007296424303578884610265784664112870274019113675849707190303632041082200239548629655863565290341304205949240842618894040564364990020657304683924556524547058208057098415640811214278321697308969793206643437537756131523144186333998190415083621652145748191280898999285121393336317392945946281882296913700808688410443433727213085706132205861332071159961935889243623111076809634721980661717023875936923833575063402694724952664802362813117072687663961526189963572524977929831920155520560040713669877274482488623064629570928653581673711342095461763922048561434104391123276072372214656992512931681244382337674548998908235903801008564395873364174213364759400033940821443518317794911563208733949568084664728311026892515535427297712847077709767522074539069594842042318046719718535362403712895796038155095042110455555474447766193073695304975553644772282922095138434106347742732006641915506127392101617693422804741815827545310745486059047303079247023310578835726669890413157839772396985459649966973639497658379234155685037561803333299253463473910440405277381909030672382679760362081340837681310601640941882727265512438106399952320855924647031350072641829976690010411036261260590314584603020189797387288364724118112168804996635852234340347829121318301024083149324738814937698786288378272177380868290844233701768498185572423777996787711186930724704048370168817157091524107084936446266180992176018719994847243635192237259514971726818490183548993583798806920977185824433127791668832243819216724259719664081210528632017108382313671637234372133215208890288419997993389169676810725515698019262745557826620285696299639322956087180208566633865169705033844393969434769796127890876313956029431403146042071085572402294107962805946191216723623983110138830840446883501634113681540267971268624632773521056752613757896790347289949565242184172227790544014065747250119245569160422452789666141489351656564905714897301562827074838293658507425948282769155598492185139697415737097127460455105883539135694718569235497779293512607624753968096124601413498362503899537993059565425117814468598964085708437942091827640869945103675505389274571325273162444296851630466679617290230941661871985599827717901341242857629010454831683117113086259095498236615537022504600881329771604195846900275413253160134355500809799531035309230014089599332757279697809707273405396054948058168830461766961767691421240945463334014105375380369334584041078655521401561027584335002138368825059121398219375680183304843102875111892166340861905609939747843849138590188456649156376120973600604917652040449320655823485616765637171101729139080784535710783139226964604086260382863133528312124490378790468902886460777798695656303879404425941357385717297537214101285785646577892655021674980856687251635402227845905714586750095920407189746519145072442640607279497057274178406127163155903922072262002192696628031288207940420418654841186614251630283514414359566084388944396123903709317578313567413746849130432606325521307897267462160094702865671708893280712928729622200105694933805575195462483894729126869792152289261832849657855750579386510654791024428007288295972363671102158978360937161580919453695688371293112897635017064771151411489573389018477991472153884838678696599146291887249714968622624580030368774554262480361747690824243189536108746806815751079575384711526912191077797418575608291659664171349396183570454736705906671388796197824831313672237585178235945775462091420741312956950981692185665342394648216526345665679900923860321552391239756924533776249952056798901471314711912845210531335836891838411743418988754506103704577011657713867007726811980824571677382941898429533400017422364883151647772793546582348967075988414857850260774601992647211230365769308813076553538801427621365265436357549996550419639299996324073708237726607073274802076407413349343203359005082278977863877092399509331754218895158888996888864782483110318561882160821984810072591205591225962622984952042853559733038313186175794309200749944927828332534718242073898340770598316543171721577761861693503337816710980780860157069751247915437655942932542197936146913170155217555236446289522947511921155796746070522602378134494725141874608122638905773802306943090596296743482943323729505934175987760091511274455635375971428324816187600915567381971833287965975716735329226733414366467757891052609188489799420649615003825121770186579262627213996210593732248073913762243924726993373444002851437758019281173273086252827263432704152027743087782317717374410572049913405685008752257954232163372428786215969977577782178860570900801201618433640925751535207984102616331208232277681959110666195626575837812467002388438323587716237536499065787320880638333630235292225578210526312049233822749474030411615485043357925443519110628109938634275595055281347142109842203640255019217333257044458871608356535739457864572793162479300540147486391218601627342093340615041937701488212930937857722129011365416523019046345393067751853564900419282123168244718499310563407930977605427810871045989970680626127862445798353431525361107916097484921883276889512019179716626184657526173014033583225500879792219227641931004193383016405246878554335783543195126843396293859175440770527541954012406574623734422460669171091107394860411442507921255247987691523215150601909276941154985033834025649644575228932073616757376272059165632631692156500902793296055462737997961673966364877271319105064269617116110249404365125066676390491916056128100395134143783437836450770231133293511048849519876825626413716705829828418113075894669689363902538523543294755475526169252831678669720185700541478037675520025919615791583614034053724811178478161808959227058860494070357971223454123925085054997005466652362952127335880065182603823530435001215355371324788765636371176398448098636433043219052832487208208303582794236019114392290567047063951364696453668686140219034466699568506151830415263682133000929889817497855215418938547660504613343212769918354593992727596931043722612624403754258465045021903854941682880303950820078560911201849020746634317410540263154458368709942505044763279383818582314234732575335059427838024193211332119054978564775640039981976298823104961354138115343229719392525733544640777572123745404707787113025453688213810831440047807899967650498910938244598582566071431017145486092229247856147551713348809921267501712155922774138962246384917026030742599313968996854502013878205243919206167905711970174638955285754138332811357707679366714900849399251565032259062398030895456293742775071100659348200636118450367870256052866705457343818778393093270285150424098563496237403466204799518478024159035490667513816106112700376981211389659463641265044661967752618344304917416304972447733698603127720922772230814924606217218600017469057014922208891394440048823050388708443320833244340313747463054990988735033897056916831866170734652051631928845893228745529315632627661071226257486577893729876720112846031021592223800501271061772515044371527821817372658217988272778129563580001617394829685874044574521765600345456503442623940993430127979492303455278047658459303098818379685468084254780381631911128342754387590094609134113180733381484517111698593996355653623873317325697367590036023780009073263416933623269121113822113761758224405509195616242102356484397849320112031989818250566925738060066265201984145606646190298393603183502211586343713260679973266044608464893160037074493921320222690198198565816714742525332383624078594207563571929793703165670429952368975225937574668400588340069795705047628331311704325983403223632001281086415987666580607943276810731226712407803184391771989283980654449668095725537661048744437417234945196479654630426960854340662731890786761320327908100089196984965775793683208551179771278144370588787166419021712153689411347108636414169231415484930121387252337082896186613400385491886352847395955120726033353006772090611455794297666754327971325611001793840259710600216516036454524026690863816278678322239465972528627688207464093757256979349395775445959673349175357301054204950213905270085835537077174024034062809259428399531129037175784559682240509731966477118392562536979231196394395309089342505551397317489139454188439179684292003402857816919476124435039009794580079703325571708724650341741315301059525297943943947435524808560438729678241233634486317341680869167363571890731766709828045645948788145452250701596046059829950204021255909613792802469374408305333230568790496400101506828254657145364589246840887704452964577162205263706569940292951861627563577905313908674114255942191370986597966792576932016485269329510577138474310915677265112322429344989559141981748241722283437075212161695030315083426968185492868695365660488693509009789368001223517734562342298201481935113978400694709874055541618669919007001257755940196538731611096664064401905395083040543194069451678857743609462466471478269930729237772152915050542864752528341369766682706053061940498775143250841333061196724420982764389904209222741257101407801513072123425341098558560888193019072548790079450106883640439301188752037248825666059188916519942710871597309555937184886905084041805955453256669050568774808159467221638796955757367356248100793369656199812094007171568144869465204808621299453401421204184153510985985616965687616231511228662784611684823019600438878044843994873896377127629496454724024447535750467042161006261194116637820176671008363282481062592249682423702738867998511382455573263366841289112098413777884705953681289744118842686758841605147219882394693930613477107706926572498716778905351778824308316505113704863379343414840035127674479965807392778753980237788981912364784235821320716781500289746824268660602516858148646103368183077992595478225045224256958827858707348889351813095054977099159693522403275647523591539440187703920746989225003183945205085821266705215089121243618628426519406674488355075063685179289432644225318534855954813343186987498157461451641321877152731150251879096758712470168630461466601419741941688905805975791989313665833467053518242362598407923164725645335010953069172654122683686944280289685261934369339574421348101984155970994828365459125721740641366714285384894648579189339761402790765723791695202836602823881218166421829054600000581715166917720611930483630054079320736778304955305608772215364665923858306957244707062141864748546587022369272985595916653743081531546163482358077359871004991855156837259946998639017919102597984169241472567172518029467419297171090537243702890373842425144946767363800410347801297621264313879550251150428621822709582116662461439519646886851833050110450077438753106624128786180679302033950502188421844467544969886969230357836604665589235305461333536917119581140891585293411300270304150727493903872519929537624328556783622931468223507479435099649063767473480941462072162708381732482795548916868692789643262408038967373364872784203176023724414972512720859753848673105115088895768457574223444145951779407498619307896685306541432897402489387497624994067305128004250993801329335303305812483885425069581513097071360452981878471377135385331907040223087640086740588384452690015411948565445792564577019633427224615946864523632433159435727338785512030018204603648855865206370693891103457906541467381175838792104923951079735040616028390220916460335225957230125129634442634234957542490605049140224100266028469471615948043083812852345334998348437318160033298216011671480038645511290673184997573283917852012896043922350066827211038906104397975313125213012581490101600185807337394703337328577263407588651095436081511130399307016547779292266005385830022867258688523329131827654969235230333788666286259240350645123387567033025127821233492879112132836321135248861543404965331207974463664413233749826250352829153172950428868565987160544699182564225705656005677805036001949366247606289742395844266274652709304439792433972571626689714617331014894902009774768822459202301022947718849197120100390756543259942126818525952092944344462162746801206854571564612977608355196967717761446760178226858638669811145410125302057941542404188454345250678627390007727410857489281925833728150546385632440374978969509864167639875893525412623428309383117158482710614152674332235841478981504819765236636139340346399687528868017383054783619216487013471005204788118916781187156338831629931132431004087717143084837684571880763951478160142428293517510556180910399252482131693804012880865891889122021571736855725798295393308064753021681710416089646924974817452648179526528038676694431496939306189046262244481119781184311945757384887995786749139052497113052987818461971283295584514054874683772572782535562805344844782744882910383563546206651965740333922655384235285728452479902495644552488124198974259971736833667624766922973927395759628287349864063783031973941529527510249276601580604523952968432402655713194202936767111719105615029955042523808406552816281985626007687919547998221194999041303839038373013860159758748937679001400263151120061238039941051637713733877452749077627919506973067654577390186080129538141725461680905011630090479735706427574236020539880332290302163257661174710326126796551885668470089436800454592972878994267273212165759750731981207670861413588886232572886890132972324087668063505356238742729139534525498810209866766004685692562091603326662103120611395835969114721898772389972663022594557204000826837193680139424175835831259830526059697831218912496069029829510127655755540145772531421673777225526434265042102737204195926427268842539111303471187419256796724174829752117525398829521442312627350111520024420842970720149184240966179495787982589274450658320157551413737081631818706546745078276617956168927151865621762172658420173973524042544949049994067239688034387740167246972123399819871617732764874039728659541192328721489294651576646588759944392876973661766264914134578473157670789885957126115419678694422126578331268696509289287680582534163127914902291985235074015271641681610015781924991591863902230003625640962381290262887368339469660416555235396825655593288010721393643022183424300245486860954810644816132656816737188431069132960636214447023159800388407617148929327005556126919349106657208420191058697873804153416201153801677259002864502435449630430488093389613474636957613736538989641572489479660870430231776608648514091849380689489377685511313340384676829030467306456631713051429748330299960283936272008858833939504020108832130799251242750005410985336126457082391723208298846003472217191494549850937881563902894511996968809294599103084811127216455049001984801459846242875405803406296424673309647609941362371279033405814070451059548732404476172750235355987267579872626543191417376632616809203181474675665775384264643295563242006264876362666282840617747463530442269667960070838157504609288257882388629311093971953646507792200673130524882346497422070508602344138683763070876506730861967364670816546909796924971369287981503569717406808650003824727028427385680338628212272591136613065354932516350885886640175542919339588358380438725144596296518046170834291057800343923699441293976313144692126318172607203196025573480668493526832125554703820110658496510813194691303611541509278663594152895256472518815287829854748241110449971894117755773565304754283103998265375914058801442978980492619264896651839887074109600486765393284206356823031582615666235276308812046887990291884835324252480089288896853595130186774147728847720699739483555175190948236407091917065998686456036189763179279932240245809342378839301910372008510139194507464944464138499552875444804779628852548539334643888866652743628917965894877897405184079398769105890738615018242603199387402639213519685355977194638262357914467797918857216303941565063544166747092178422810354972253181928840426057073442976540788486748911217990117289972788873353604126937959339421463909734541844604602407746476834532829992566408573569169775595956248145401815915392105134558312095594510209050025872532972825587025885545996717702404922634988392655412238400940518659517883064772000581620676533305142982408264909964253131200093130703073650787114099297000751964119893706842140256302283722821975767300506211596315888967743980575801630137151768687228924721927531412665619567296729305833210458313119388334352112282252744673181001196235408639689117163336888442156806907595260546148235993017860797553781355691480839459006688875295729907207367176642758581905140960281261379532262214790173420958585502141087966648147004396221039113761296393702075847095005487366769904643986237084844860739280749567268896550990328176292225108281179429381651171393921098893752981703746130971112166072018284638078198297854431542348804928881158458387966230851011703094190135140788560590538955048311629591169842374453825717882394320093938007498740985587050700545110298412898407933894187279637502712334579550334224705551269326388293981450906899361772860084823916956040241727144644364183930018399141163033298631931462452562794675220976378374946560724668796041637543709136918430095545653266226458461381268960762914863282340225049572802244131486395134771233359260515153007654943069763750302300762744209738162202103007411211054261321880101251107940312679547396383011482766134813853952697229930016426851971779764205300075820698081098660463206786096787262793078395721829810302429666002402611201681660831323024421113099291598621958729257466670062297737454015000720274636714383918722692631520743880318752936751525029139410069481794899672945350941630096796626410207676698868663926445981675540412278424763042508692260148661026458655279169528316467640946991150677337959794552001015338264684870771510333719671334285880114276211750067726915237142020173607807067623416356245997674072830600455361570093040756124343671659677404081935580901326288798509623446672227429487866911659386496668213586142959982412356247287341117003536625439769152152164485221721624927330697408321294260037447963263181540342240163890411302603456365391774052672915468831749014454369363711103348343946682444621241180319164218177196698477255059776653680559525190555204068962908226588575810867285965027747728282508382817480385276017201583924431958405895277132673858423950778506669444495125764074804337122718004149030572925768310025358990708995632779486270300254425599481876873862970688306843970469773973654854768239284923684440797547469671535475110275319504293399075565619956741660779724039175870306162108237329348730895091826940503918470432715501443876674784562104391324586532812667074375464923773207186029087115543220207511562405866566928228854222103839303028631767072807562665763545107384276686262226612749373178358666596178259967279887982299062515272507515168984970374084652362216878463998123019774427479687949741222363461805205244426521444909351518807209474363453588049791046883551731712203110604847783361490005029048223408875890878912629157449721486684214348598240965742772475630638047098630379010105787462866353645200649719989912408071177891934051749491719211166074256162342765770619964503282900349155803708500433046529586141897752310255871088489458813800035217967762260031103358267388613239808404757028025931734121913967755052074133714627584096520387254535018821214980882711341625890365746103575594147538146876385984767789517859079913648260703614852102859721200628768785287134977017492633758433269635156375602251993238927135836103605312697452558496973937860882368836757644379377872122037823793797049298098244029346898327849345634615872414095954258898370937826714761780073434198877557124989505719308070866976765787228527686467744525402570782519684665976184428593734071103458611341442952315482364054222940443877047252216234824311059821268737217017354000220293189133920006278599215313697392010983622523340738167644432219662487494983464930091382114863826102826965021907321119747856552423556988056460657081332493783206480390451947379539655373084313772270505037437405988025712732647191709257347830782585860264217551512951148746404926037320645028591350644264863146502408372166034557051856030001663993764403629096486783485212214324181643475742975617834562216164514470240324757505959771770835446748000759631615047047142458833630238419335631650337565654317100033341201031865100351725350655776331726969062360196710189629616723571004805779777376057311821337796297568827902654425112082483041171718308738493400652257175378297723008013407529934795912129388911273590749923814227445256451157986041809066637988840163516322083961775863283350839025348458430307025023528327482797842527068108509714145081317297555907131853059854410445751149753959819026234816170303838234203118153909953838704254152996113278691351432040579713671552394233033679658770929874706210825954270936593893211190888205056303502101752993801584094469416884317555508697623545423004423893627999778724376372055687829868405082676198767631332148878395408383926311894474721014908643426273015901177965059367350321407904783698235230746203554405705728465400091778232972837997637198204280617864638265159330356242144214139348705120382120582979409490981383117371521610871921872364949791124064714860016233851558945623219672048777530387292562670027828926083915601294253859732539264110326059285768523383420732285050272924805333218106853085645656707762096221285915180203825700135105705235367125291918856165597650863810301684108281850979294577618452699942036860974706288068699154337979795260293722669019921753338377083067151861323557537481514565416417875322879023159466637616046100449584673333171824545701489565156415471274507815490065651686295188199261624105833858784894075953641713937669459948848249100268617617291752572574996560427945638280631382815138821242036285612902804045284788984441268761615022802161284596608469995753968370820793333097495709142350235544061976158952056046453974357332637860281459146778029964545674455739781291525850513154082763209926539908518917306082651203651040390156384409715072465533547606466556347956152374475504447782620133025412902163184524293711096600446505185341533742326965656284758484581861427798920718581721395649679365818654082362454494852818959219716615973536511176649554713533102490646958118943084383434002168793915351306244525084167088803151712556950710368581566664124443291915808130903937525900996560505818250024017826839719583743767987047033020148470743247877504100200826174986722151888597777652479591847854886972848566646197599727956199977131796873776075014040362744478455977990519321957491934583775996629906056913439564187120484189493731578483595607843940248930060600823632715585168133890569329277417693914012197604502163204014705043687866257288053508393504680959932946373457817057956003591422806294491695471781116834499024745455013795228373536327933960806168439676670125107975480861564107835353370633891161425696103519207610166217599281870595081608982267801242307930401376984072544828142182245939565394136963895705982913662801914883480264756012035679971787722638173715738542555505180226970453299770054018727276476021863105192206367900167666493901545340582411091202707567498487653105550692976181291483493635948892350400070251674024213942917610495929431413655795016316187863723204348738397952559335009246764778779559665278865702472057051025340354644899026122846771794848097065256631552394448561432031054622495287369726931361849472110616135213543136553208776356331632430625436347029558132352922883980202944188026247045678475659014258706147876189434427909676824002344095063992374823210707111900728807344338400142728598520212933465648998636668821751281776693720107491252395190240598402094468619967108235835426650211457084475480411857018995194182896972742985762196985444509063553339651903468558220751778833446125683816841046350524053909184670784049738120676092671348957154142898843946100508948178193191225565449720471503618244997085522049789465752766506926892916397707685243812174019174127828818915130403825952159082005402407046014136115210726546457258455478429843808737555843449777443021624273017725748593788464919732986149525278333353500197857815245425215288486920876544451636534836463491439331660354867878153389163273459680455627157460268546240931656878686379274476831298130529844230177660700279837655715835785486963229829322176588566244218409547158357600260349329894033864244964159714943596751573373042152146134346775904037733741631764200171253391659250472301703358075317375253379886716788933065263361951625970631151621509206232218090665092390413906652503052884190568844905267020685158052024564570912310388888682462487030226325218172709971807480224844817889481975382417618562973222546384097300363485388544519376456550776530500268032855683768597078052494024724467045005361086245384715992944611562344217489972769694837039327198175110713929270707757797642572393105223535174373682244721291750801461936515655617224047578629421319401016796179477239978906535432063263138558254429472936202766312806616496079967473112742748371814718298728048584729539701895771761011547040362659609364366196431601765726978567376954269935317590895569467801611641028427861710965911715782210340413025192405815449242110387110425256497095280359441117130944337743262724367963323841696779409052872540264496423683392600819295869937392352932130007979226020137882196144653017478050097919578226656836449167352788224542608320817642891692052756436751283165455606518949156243881353940559087077274444802407344085050369789435602271478311819883147521527398239827554741627778574537488903778731408172323612237801897909099636922386464941116531159031204668580610528379223323971840965858974423205584095299535909661111996744020921134327459036039036095345393108572267256109163605579377124595663135212729454205780769573291930589854466810339144727921034879133291627820838891010390454360787287700878326272606738660586378513381933116577792691928451353084524299211503356028364309900921101941090129631071099307708089035631044155872906660852317173737678883915523337218523572146004273007391701460769855797777550953351687198393989793364223217308573085888562931427911542742613865466871621364659949407155367056640822502688521935314835260238042595933441066131321676490736273742000767813369134201097563328448262308952939241856853192853724002529742819168485567986635530595171792285509870523546037467668442364102116866048741790209391389220219775371374456646258731596180424173356648194141491037816256891678609418698782706552804857354462246409843164089317122623881940709507819093652995745242948592151473997491623439637671525466789255135025638845231349454830408293956636953508633595834114890168797481934716847525661173076703762297395038626390675100663401693265662065496212026297301882950383058086451813000628305612004334951642164643105111755276101971124672781479773244042688832594577154594718512757207214841356110601284633965656880970291007410043001934617245007593618004414230691134224259854455949002631777011304746100683068172706542214576470588730450074774699107030518155652166668965050221891908861213416303076125138806919433707053293310319732778325078454405776020115202327920298272248405596472363047004918961039162777290651578409355407775483422405916348457921009291770697736137552145707686947468511530205060867052271207022353536823608314449430115898040697871184358105105848051517391073254996368427026427081330088582521273493353830939135757954190653896546623012566501107712632728766834483773152314914635102174002555588724271118783705271897478880874067182294641651580429108069392194410424070245384598610571863621683146167262581493787631717982228418563755069313204739865800099628427808162797498614522161977066546691508451636736936260512864499475641624613149504764248156086672445253337079057986393363700816533797231172785148405226524222482754093010474577599194394967194115960647003760754228217745906434328079518269194747282365661106099361788020624164719925524967077522546551413956851807970437559825011366374003508345471632761064999240068750135539269621753232505629780776475706921172424209652952019217446307765404772996725952388033309960661719907573419340852026230732044736610677393050555992415043847530327516484573609457666170900020719483728860578383452290990481868238134988078109405780573417268285400088073674291488561788735173681534671571785915902444695584916598746752546116622283090727684497462339909323829755752367204497081111565030240785254450722532110057791006871455216888851993543186107910161420393972592736199439406194837556745518082977497363069349916900986862374236793524924989443790288180267800739268405332432350238893484342989095138467690611921013762112319745129949760034494811908731193077578124264362362543783485908331632155892491638914906103037983029186005809110937864013676424168008866162155276930817196845703748288648714472383600846461730311506014684065677534768841495596940693583606776722774329994922784763224705215481150136198610846231033700409382201666901493859847299207635749475005198632590359525344486388266732335070464337757797409409513675423743164477256205400089065435468275433425268264979111855356416377112516117171409248660137939335102398596976484942453008484425303552730016046897693885138009964130867672409579446666140630446484196589655423871480028596600874655349183847271534280749288045686218546920337160044828556663987070798160662894244085402181225044988679275431824365770208337431598067961634019445471160896504752141795843555818033914252564157165556286038636103242422702350713812042081586322210209008599130578011094639855630936677374006968362525790909726837051177164627599689281100993743791192890902775176054501294004921264332629186105725232730639427782835842365192885443799908810722737626189431681306209554555779618434288891273050870265539939244616747445512378835718965554165802436193798610794099073648608831245390881634059623670584225633200849274422803865420983294586180012721800357140407669182204404930397768370176905571515816710510834202856066750589310714106593535577016497813456792963175317084710659075233113280527451790248198915128530730698364909940046309862262468651192026494191942566579771353566929936371168252829825668609310938035096464738889879391662711304492236927562783431173723091565524317268697618794756950617856194496496483980424179670236237222306371231996471405972945157424511065948643926916384561931446848959600245869905717141064278953520651787258097660369043207755668728022731494634087145531724108988728626781739093246746602075183311512053981152449132724298018526294246777162755801398584382926932128418427382300044830055650077824379986611420977561737940553243008609031246783877351728851037055706245987822595592602623298500415750729880205121349836506458467349713440218910983985820199265129216358680145994176897537476627434045674944765408318265334893280710927323359258185586954537937617064168594205316323424351284809652364358420087307387121389127269434645978578610104125270606718593448423921065073351065241235511255593134045735989254512306426073589379832708889152486515136528085566501554891735386372688419885622612732320433253703402201204757223241415201741421229172948082865607486918700245421099786670201237968873801071728130097202097323657437673841986830677560664465117941443513230707309479183017662096742488407840615084000920813412810856518459126819858908120374840407478751004200119585575534978053764464082948990422595392612081972112661450231366861519588342657545403490252109236186553752854609123278496246207079720385711514289138778241874278209598649255936757675228361940833743221589689562234791913850583168181459577302561125317879651426758901947674284852006234080300445867556981000342829527837979710484133596271798605565251284953667568080428857323644148933974621946279972392248330244561484930192534711813538760226425683018251655844332106409617784377694541387161501556057251646809335066265784218395623258007690067831207885443481823206330565487809915748643644122324948823753982171697102493602100305714254249675457125871012997624463575635792939272791065968989011480805603966088157116721855410016159552400447114042558509268549754952414696420873842540937178469236509129461671762387687797079838356450213925940389169407238243412847840126063908961207642002611274795985542683731230100603671030255205837903439232293857155139968875402810861488699441826045706494654507927790708504310575988922154826424921038809187605727188366515424615227963555265814408137922113548573028344748445442663710975958975357328599169099106299469283055678037033065552785341965693034089689951062987057487484236160281434327381426511259136087164540338476309340351712208721869865172686000762140820335632925056933694387653708433293120098799279906700250635255670435843280965312548271898857687591765031237319538576254030270556336759161062592597950528460050352490939459035712469582068024751658129630056901148039080760925562230610711926788002834640836660464454405957717839039185945211631618617740995969044564165354108969692806748568701775570190027201544137181744985704920675780276160131612773605029597704534151277022188720872545093161638245304263480992033122765555408363388767992075217193477742963243277924187439353098414368634813066001118345870709126249778725900324169833329111668663758428453318808095625018743145790597300834046258667516121099225071375147913412349597465753557598070830557724241125585026080339951251178889005053344431337199372243392352206066844211869543477037472604554699645079623748840801118141201984339047466979930574267545204906242308208436993403157775083074156814487431002993518142682609380117328609870802560334546326923436284968428071345160467492269410255070526259705573635195638946893119099543933891166548684982224543386095833849550959577836189334764137061085854249337393338555066003298653775359694151837066640963053786471031549462970090518626838545037633792948000067068032947291378634941986596210161538146072567543622053161257839806300315817404955097707395741899018455013138303014139909965467589263060241970769009306863226248365118363884976428914947191191532787612047886662598721472685440626817217952935790028908791083632386942342577364399776030623905291247033511889426893813037949342395628654392459969358486027289742503189981560000496733824457693039980708086754947689659456276171105807241580630293336488267821383291053247816675901364548712070980846776953419424781626436124864278764461796717803960257957435542464140767922452254680273644977043326052742227049766611590081586554888801172871390642183589896335827215697761972088678916311178453597073503059601345255960756918801994726964815877863659627984258174991318366996466373651000165325982452600843482781388516120023095704891990327858329171529492364095511659649202275097436590115006697505984174461963427379888903239898855933839194113349537157935460963869485587344215753299401877254957896359144948143606561234334093186842387810557035561076188174806297157344851533311585103498450447775964020467007197719860584972764338640081232929150968896916781683782870296016403803585819229966620673956890833183773511192820656751178287879774851020728376231487500316118105271127851629641163258701146629821504010710242282725208921342434037031131309697576865698533747564302237452336796436108998733398065087977111531942627547812262538751294291586985919475047448883025832526257324232325782375815253203014391551737717527190622462211950473725663062637007121552370130635729697189041190626280071488870674672172464622263182673407644140063531397750106996858424585132713899838013094552319931208649876968771226158090321870979089997636826972493449993951346429951571223136174116678175670901698149661919326374504626352351943729000003769451526184412594578128740793403758019501122941173828869528157487778076284794063944536803990170117900227868926981534466148436165563481328085085843234323080867346173100937641718728564882248163901770575788447500186301829768556024240786982451016665644665019592283602577749182881076266538142944312535049022488748848885513627586939787862277234011094448413086406522264123880024463771389920821401602521159379883594186450450819501299687536658895032229661471095233378245802283887892519005496318638248897276388647739561206174516887818794576897978003688090236475460408401670147954028561342359211066283450056345223404617142378918235989567863678823761088658973724169480274880405413850427909882242419889340201169171790455367551765670976496495171733350202614925070185117813453361405542682121879657576605180484390115731612631962559058253663599608594403583279557747395103767637856369301771027429921185468519872750807086595413212443834710959326309952195634357525642919340088774791720150377840896785806656233859316185871742446552888327767118033613455188100881932192442389945648908996076546663088992288255852763392916480877632782231056762650216913854986991498213651408323576388206022808152926026462256812564598705333116279820666804927876074018640169511220969331962433634580016060050100086350710923273425251635796699986326917580752431306463486800201738531357749764972370366387241539035828948120714101702361041533286217074180268505283802046198150081349472082138481980525526057453459607088768373318921239263731673214772011352231748300212151734123073502382556457790243559902210607578498724156255515135314667227718102765789649797778084531216279156753745794500041101820662987074138793756425074595465800406730209778815058805191943625764196269426170367110088260600977464365532520018521664536073487845701151382327215116622883148224807428411471957540874490607285439249356184355415115260461163905385246472443140182893243899647982274092665571425899793546037062204524117841256349882190034171585692752186971790842993631567667793682359926409679928734911859648180079093166094744397947243495237950020824612000912679831345640867667780429251492324374670680851621317362507186778277304484233739623612033460989248864831671659493664079391208591923250710635488012066390774447209136699061653272268548633447654854294626078286482271083433706793601235156040160156905726818246638216347741445409523891218329377431394885733652331054618456368426498409604806188314548422448580662350003056340445693561848661573210386581430783234891759019446976040161972327808205139438947073489555254040439962894787732566719398506890584927168108925447109570938697720034547323427798720938171678480873256572700987923172313848176042147495265541279129779837794040203373603800796710785869306332834859120268081877524691966194771551100348988406613490746450809561588759169970131859712013714150107004800487083868070124663319627245255127812122168772062252104484587376761717458661598205827671988580167429745174776765213012770438233575874814940554336897701473068912526890044361066503368541858711983381986611106576779924304890065804009424632723678953387567643528717178559579680402998752476026341204747315678637164119074729711223741553742446934932847464906717393401734455546739530323446976991908348242383643677535592732845054278829545607991437190777240391555282139445784324279832983066309412104323786609733750822023310954003689632545338618128883870366477772944689522206545115730857505868023245722359049635915141979289613236642357067312888082529097905860540455990846093077888255708963173913529766894754077747538433549417853697580774988247808281247347669920052155979857303472261994090007184231387136317430365701736690763358368153591085464585901765310771178322282765692998789503588998382611315994282776979064575084022403188058756858934365346516647421124455239056231808405834144316760090820562261009279464712019502633008837026777997734592856573233039432342831860372100162762086422100328288869045406177488903726756029693481812676769039471461049732399772555222382811093306656904915477515120559498791685299102260213847528222881108985329137735895131111553581708490519241394775240442553195923707857115787760331926003703036665212129721284820474595442771762019048388145717584414363380470028027886201747625118289166119752483954741671411314797344624349420105509425713402803963383964635889098413328803392399040667127825737203766347056627118101126851218100755435293159238757280595276235829497685289616206550246055880300217568257162750603354342888882643713711522802785845552210519404901312590778979200695804360842699484007924101464581217720998494295193779948691824186191971253042017215761347214513383623375001330258774177231653617917846034211299184893406213677301619796078059028762515534171196436941828074593158764562928635156241749850342326142247084624692883999509009224891102094548594293470443869913273646352704438921020800394958435611728817209632237292968164990824728288374366295194137629779331194632205933620767218108450124414491268427407724192928024806812541416680684784527960812954375913962776393052601871340606553158263031714513342702714677702853121084616005168470237308722527509741256591034603028704013465588374896603122763900703563116422407442049173091856821494035296714333942960758955034954568708480666260837195853320053524923836165498165800171365531390776225122919731913624473474933303403859987983142967633743785247628947950877154297241722251442958149359981430044059276161007327061441059655220718578742610511594570166158919180425841779244843063306368351737535063642238757535650659509195847407048540860569653438625155850374904230653611288888953764975148751450208305893489207358263067646701340160748503223182474699350102668909375549703684586102490798108647452265177095191197826504838267001442000283727381588149366089040338169132161916517722810105712366692876095038622606285697164211291804814053340156602586331687910591101296432851785962903544989604796218328405794856698878124080594154362466993421758233332950979996775294977610315499116028954317651899564937901761334907764744017270362570495642096473823775312803177000572784471545716428929162020380075418774377571956422583559507858898100707870568808442044670363112552142286850733665075773187793029818224771643297373122858398241569832637455282929692560878759402753004320035611350166918203408260226818842259240444122220775514477906432326141270628253658335619887432841086376837428089007747452900647577915159616725188193349519222289705587209784877686134122001595677781491614076888988780896869672193384646971860795833655076109350730502783657468401302547261977176759000521880424679265191388307560563091353607233616761768122875566562345181288196957026529150355165352421396690458415001137081377484643620124124317834309502183840148398447329412622487627210827564446392565999908124604784851618995878947833599418497433659879289244328430299309027758847802864967647218063334811980092115977057704892477615668025488618960494347242830688519543712873812007281623486473229915433778449534010690478811517769839666895335598048183746723070610112482447994912614761116728954439525604156753799231936338873877498825067883749943474620337814973276047173549278778839840558769717644189376411566974613550038881649717351647755151103584334758538807131694705471426794961891411964323543542218864915006094467786650550110952998139654863674201688807544296640069600165481999554988242662716876104895070367520644024450911281152735259483709505554495514257236831019961234961592434833598030974337454078814577618828555607329667517842330904760189968316937608802813989426348293207816722654969388266624951760964393159139617990328336660191528583133287879166603526235117369627392117983354966795574472023660932700451975755461140052213246644726215112605206376518138527807022305039499885692081306437898829448031362978601378761484681593220619476637321056356804799073631529970218473062254303671137612940499398420216947743925272850720008314205463369089166238086792818480679236149143316493152601596383542438877388677861617593964798198972458650034720786690514091931635913018575728727473154815472768215999993401506810824672693302140880251162936812299881531325205668553402977838590862183481547643550518356143095306013455889119184470605950009191177924344126280627824218532847587025235457354122975140515086386351167084576965180336255786159456788439314827042246671455152963758468983481647581614509626784724922947715327950506916783242892031892950958446360554742368249217527160546545790921724778568244758853655963452943694604651952665345305069935714940193153068099942856871687604080271041235694271073860204993479074663808758055627086717407761849550068043103860391714866740148463150486563534052906984659936767000192934869314607449979750697092761370168514684507819616007380877517243876141636525435044278653795956199753553713590241488519354239633054925789890611389748363081413523413973623582939502684388942761011971736963213435576202207110321590602546551444785887283180032502972569722781576255097438045563999151565209369788088249390960995880129253908901728707240657245431603531579975652998656132076674038570150341030690329087783387719878990937064957193881200000667756109693038639809631858847449607185718746802797956256000217595049532105292537862792852585294264103288501919899213788156299658869858374065506946808938993829696402383425267668041096666404760305343733173407819281690786848821428956642501297047136163636601455846099386889563425536404297265071390648160673397219743591395700380072387578339004525840265657141077114000977021634704714472737421823640083174154498215116765635688205317206740510916081162655757531726792790982068024475486202518340051891418517794134725330001484581910335400513467482781987274235303553258034166629587651172932547612203014153277409131594260170109203556853643034471140194315106076845055908239846498065086443058746643998694083012171111001378535252208428150446394143699400709920504645391812503343673661112127765181582080978972930266629413559942666181585804970446899887005281266609640255840692066245851907126438441473909050263968020715315687868862735897334965166598778410397251744496667894331021602735641432262511810623256717206498600388735015652987146926876099186190363019155504330926622756943649749184027511631981914767923672675053018270952018220922306678674170173336749265991950586143748036137532861150611292411437826213545489632262051086615891752852599486215864071897268724983049501184928548853378259082311153938361870940676135531089745147376107763057619731582063760807757687196348993212178680637953125220459700605396838074889627712638262796549528606495423179655897546668290257359158911231738599988368446198462740517081345573695501254650119066619111801506290706819159421803682684139383176226999320853413882194434708413663765341998102447272198798208976394109222572278351405789591655370265091552185090920265658091957547410428424732695271270575268183990227172716914510704190436715307822744558364525036258454141551216948062789525765924513298490482601125713063051639778972696026416689900869251832888733380292878296283187357374795837921446023203555258199943808772238289466723069083088160136443399160762870221554799733483563533675355995856162080758054418365078779114272417276895074251317247973064222995599549911438919292586129263497580870256436554531263673306614977074806382814048692930478664464670664438689280555307848760920337844425085461752857592259296726266783678830877321656131754292374055127447305213390898372627620074572952349269619717342079503030078786047104655634457535643346923568447340427450840364121762150330500880559914779715474604173679542668965686645264937845147642509133274867350403901819140703331438268544482161274224777794515482514989941993075404969040694508353195186997664399937355928767286955576846527812960186918049678926798516388778911755020237380949333002693556198654196771053656704541050912496917401800177045805687534483851823340751414660782868688246347540679063131814667891660753482340438324150753084693918085928940879651358903679108978577177166671764697971624071297423855691973814722473535992066115429871690080207709484566207695057700562074575934113851299451895600400488116789772316082541798986159708369815715532505970449832392921011801086185409458827791830075655192934005734674724971185357461674023196572072281056954963483243088151311610531937908254453579323779499045569385728022945901192389090325101705625130242625722906817111341859930573208692089017064088888270135095321413337228207708329414658771554449610389294285496824972602847992064008899061257500847946795968671229362265230423974985348493188353443011436062782902405761566857540924609105746452752578636387190785518796620241093295069412590190102063728511087677814392025115161804567562566910949754733602752225279296376612447351820010075812495103294765693189510779265522675004116187750349761892821577537037516515277500476726410913923342609466174642784478208524415056833339114908412293978605037468325758222167824723183081301715494247393385212699093605040912663355240357564065494148875165986946630582635338639478065424669511073886014645701919813525944171877871437561198846039418586526531599719302257767750931811338879149635019792643134618261870218498523651168380708794254939336883532977800015126792216301249443364039433841760231174037517109802553343982933832447801539589988487137608683780290861746810553132871257143853728822390460000568267363951273080538479916421917132419689475156165186681497479398519563346082347089412198846535305352579892366826985414693062120717390179496956675333035373847121157728927937444797108852032016250032291104712099859897609002095164431408670115193851059864541218424527743408531748845152846465450914204643776089504243528536844057164174377557539155138566785444080430577472513057040046640945490980035680362812145167890570927152211028997980252129055348634980805070339836409571796202090298348208616707513650710704479891580954105586606332757129399770585985717381401208874264010372301801943609404290608243545553196426988728162196691826063939083361484088969439318239093739410367534210069741204349183130917064531696423201634862145004297690555883540100703332682085861515933437886642990759482022057254130320021940488899997655592285617735564532662888361847532916854375370189313444095833857112084437850430980485719362035767158868693849451264047111850867030571835377358124766060467234197459965507238654823321502076662416854331539297879764378483301250937872231688639425557553943311772335997598649444547890667083770868846522917754320882542309399542984114671155354662005764290218780103875663724588332386298324509467791174912459713675200049920074832941559904647403907476642592099197347283516901501996773955571162449235473684879396732533605055570851258853126652072533221507794424229124927644485217124252560763515461187646074348839610976776254449355654688066492004846545722055891066898191536373707714691331738889502680181416148925703581890560009100033726402675222275785558749669104380487865006340715322959657762618973492520359004882310782347928452202824088398919888466783738426242867210040043411320991570963523470635964698445317649329252675866976062460550304027609720078568357024790446417183894307288723032869291858199276367444860173678899510091150186506875339459191206399656391463729910542136250481393997573738821447035165911086273331207977810240576120659278238305984246204024830423107221351019080791409113193583907996027360695701323048940427987541337873518659715178323031173964920796722252674424143629940749062151027544828855124298080104613888322480372931373555377510234146134163705842058463391324626383077883714583441009196202522281125655197694361348492678521107543178295091461628662213859002041636482812125540058573878245122513282919756260538576777119149087142080640884349800517891640138046043779870284862697355694346452061841030332848480054193439178230303425116102265542430107298128252821431841002366981549577542143743271324114250417433951345625468232836262786006201534911334206449485490439489105213925881552922027267487112939430176030488375642604108687007425585595478878170346331149949503702780256214916048770693785466793332608942836569389029485872539805829779426585158454826232653335971628721422570517525079994872688517970541962401173742017651991244051065628795413131678710846575535658695512317124074798460963279893916437114063004249824114386549784077087364529930809301493625610860358024744241507718162224932307802632896432161001499507215655296502507395190040356874409818135105709897682265293161247999766720270324541411942231667119227412590275154756848051494543001336194499623371040559433257999541574627788816721627630065111695657847717930991010357132955389555437935065024809963389157765895770949045705039709404687220715879303141684606812939748547578241578261040147765786637111940074959417309351675678152059548600866545955399585479941786315493372944102182401302418508481001879272399418294972512935110558405950569254412477602539876858227641352418216328048375782437077565230389073995279834665998400816594454172758661557553518755365133863135402310677489349886418168295032316760527511155534529751051354938178322735320395393920225520404215924752153494732235164412474085604061739346519984815515125503123243050911579788729080514827381123398015083482977235173235645672812173815453703276246331835060592053047975644310387623067909750630944496330020776156924787032437979977884746289166083169466949692233038157093299786760070217914029055496682530975374556522701838986129468577289457691791369635606382162769026799444503402323348912592714151621693452977368286062417307847725802107632608490675681960197966262882887402698557492042977725543890502049105220575096447141401887670704904662929149506326259932116220679696154854371133576085258943165275946480220207329543582074002116989597104499621801996443856652982939193009228417941312935215472695338539727917771623936171653623595072378132729379817896210669350049723050470750738956760942863910482986759992839429058095860807220989921815038779591752486911882303009465001521330082719258029177518518629757689822545196576696445073170402637886479418163840171612977187523748350035169823084226300331465370043257772660912192365260551865542529314408376194214983332111395476741764104965521916438710542625854155133066594876657161250638513858150233333571017955656298662146748253088406207501902566895459250364236333920161401095558369282578525517753940044627519924241402001147497084716935683674964837064737565284907427287552021457028654553103392773432174067734575384895565376594912061849949297681844455318604172709962897405288068475883960762794364162954628793204545068312608689793360321011881723707731915027216896525698027005980553051470664753442415886274473765378187511473993149592527540183721772021822172809170999160296240356249851188336135862588142609157736111777807914880278039749555310517089985128075160332986982639101291027683177775430461305094010675625801681114949810889427826444744244204446106744907114778897271556972449024840642637475939974346488190885961161170082796468874219769387579694777329055434418552184479501149835195498036434626587126868582350962421624052870110741030478714141441421325132269585354484051692243653561742560664912284445246115995593020097405457666225655537748256164694901863829446708066920030567947653404746916292094392547018689370698666691553971668604893640064457088378984152865830280924013174856132550465579832632733615350879539327042465670609312563354708431445370504601113215582826906880012696709471415897195986953391730047401305035681278716673611366962729499115961860747104463091100318378305438931790505719011635717361983638506450689977359742257931278219623254888533863974121658151915736277279414995605784958810267432651306896123813711107165047012400085157231323390736191106755440838459796751166162363597526294755866699686732469469949854075326096080039523230131413481658344950393828183885204712131811399384383842862330743288262377547202444556292292341992912324663624459631999655865651996037500226978612070275172973488060048609846607891212130865614731415025210814176925048554889381949695816648964539364058578487795021608932631901866634147068226203769765222072004093921574391678127441272129191103602687229407363906384279008518665255496711356506776633883941508582571650959513502204476454213518740652782467506266160806768593202734623671906354727085970920329856314256605879045169002056963196329230618582592886323302647981435001672155284672980811723879579952500089871617570443303301805700809606427387366023373970445719766290761111636315664651295909702964090524200493445755231326410058010268989021665639069344697564033303548311074669443031906656473541914841039632655114750444731876806069358604990024760271315138536145112013342924705471259997127780643983147617889180375190250433606471478628461689137901184477555590597160680729783278640185389988828432225266958704505634643152357671707725192293732298752155945574137645241200355954356702752414384880773490751141422221483255477094620779381974361624956058459022532875519413190351204304731828287937480892717590785089792110825660270824729460966989925907589649352380925980872004748910747015407809818760239276349703114778813377004923764231286150819876170064209822874811337024101465448981170989551751739344903354453670421783875217187362414326038917442134249124438008391110095801489749461780567740083823139475213172417489344339285704692601935066264135265152500512137312818369517494837535730067884495453822599153703956112932071129238312962392237251946409848512023250268121500284887771881726724038705260420896277374168166530171569998132180710962445657264997793755130775343310137997163168044597582328327804276561176978517732254022082933739003204898372699412095243988694649902222655952406240225720544988996147996983052655623551256408350532575907348004181531773126857551656966841277441597015105945132799117059715558966217237582068189296400158330058006539435479706802388747457009612713740257335529239565477090735591291593032030232227049431744386683720178933873230003081016215455145347620358387923617055363854806208903267363467313465495890060000503557185733167095397882598465917374881386318030011996920136951177923821791818933624788079203522528264721079325188350756235927768517053283117827736826774906354370316327122828991423786165392967907456502728689118959408917142175649612154975238931338437001557425064831862338012348648123244824152183587668506176344415855159138789103864906097815229429079419450717446556116154944216387501383307555970280259573540336909664261746216826900645107226516629189460680102387435125653672345620682303678749840792309455642318343632491991389368751182799669856206564186490017867177838904795810825374998290090560761299273055509525266952706275309346175313413277586977022243674619885448723913432207233241264111088339197348522782886683032979209189237587492012966270873966441595384619615407985343392295909049832120784226870011886603445213154689775491032535139528843037204509338754804575413288650838183893453119958528167166855628265131193019669393611413379293398624468292170426458321983971927495193256664313264649856816014147456703166361680334212905394409966925591230392592052256103099892472741896424049268536594838759708808990794188622327893881847992488549993680005586985529745441158186148725310081886119515263941016128323568587097082189860227546729455607115947823715050784906358185160985784520473610249481898987578090357927394461836086407807116108089600438248028638291320524017458613609246648084960553876660313030993387886863739566624793727724051383785463285047066527492276553653394253725870652560604001310848050415794095696890052944337342244520859056317491396038736751026857632878542550238073470334293413928903102312805550812793685438012664327981319254966827050349220303258434454082914598191902641712648434716489068075024629839281416549562502224798245910560564392733856527910437249080410960563601877395469703020775644013328073510105223669231972123717451765894802833194460979045204645047011665710844819910393572211488121048903748856955116641270621509748732657885270335466780442739755098575022867824224196891889604844131890999095016734088340427355346980103736514338426381769609471144266494843646308725104918578135388945865173006689932064017058812067509994343078315666104883882532945106141028905035171350834335057927772002081164743419576004533371419909360106285083981735653999027633151230640810393784407175962667203104567145290091242497936083581346981131620554037519872097312836227779176682370632811042304981125140971942115100641775237434635281656421168026860660165306276395746651274701363111770940771000753330067617793678884343616044476150349353738710212379563602529093726306410028015266101195203233115588205961118623468948320285088474813285466870242308323082883797474461090555137342945700805887497664199975030408893808289669147374789819865213536184619259216701225895347730459037645679236366752660299296995577279919388617050851174556521575821418343492230208222578703447757986098941776061619402520535158529419174710354813374387621140645910986255134399050481710360096008991227429590338524199167508010880137044405161526038733480587960006090570172966559944330047643798781708869772174075624923984153883761398029258763369500240211307308217049911359235305484111194265367917276379135017705510834802566316596243894972339665824295944350858432539792511113276706508565614590840145980155352776130256880429366304813165595753505458696133786090331060670956686476072002483101629319150075880043869485008702658341967904750546130775407498171362784295082663590548671664472034043300142417017892152319717774478722026848388998356396834481379237366755153646759202279323007333583826119512312114137184678642754634791410422672186061446060688420603610629990939894239036679501766327905981058329291660699854306069486991421759316819769113905257455597122020745711357639072906759763304238626981804264722301626258038877910217571887969458011171002026133840156927364382567432920484373264292511024420458059743851503477308783637500366653775304908356293740457957118316892970837379544695079407294196028275927872915433989894687013733062635855751990994229611955884360954414134503021001091855098834810687103974588664297733047918248883882362392428814101200900646529731489759095961905732320250182919203156658662847040943209511711304437124967095889371134844004946093115371146602456901093071836918727660773308273816435072062982070835439416520421167543126109004556419671795802410548359391423679737525788553690465319549569449900161268933963284031628752040927610695908299788157948813092697860305258751591559293174650924737723041861815188312381858549615975608407901799315740064227564542241879697306890067304916146517480111336593638785631652765210306836962077932717512218544376263893813841072478726430960641008688042105356650837790769967798803372454365058439561303096344928936998359329381125791042591130501158746854014283330330056524331307217983651348545947414001071616927602952746440427630473870912388609931017425281488282408624102250154572292651784081841534791312993871265847935614750897082748631162790068132083711800694828724752133261765944415067119026132343143299016836446650016970072767253489748532992585612746908221704543829474710539917714522881867933257633083561997752160524620251383770792341374469973730463335891087676856367266365188427483896996596210177252038009454265663971786147808540805994099381277930269209522476501850888685194560124359287524944848894277830218601129952227764634698334668221329963388275916439567926891227918612443776091739334627713226086509135241009880977502999694595902359446453826518179995218822473050350196751260490185043733432506374208480394876980912523112074626346059547919667908310250740000708117533208687278753718924034341580334320099404031061058368087847318045416877029538743884237401034494594743183844952034327971977932047276153187732740738084655937509371272305739478992354926077988175340058287375413213150628867795520834747405656697107504995686850260320255034285500115712238581804426018810593233778173482950919054773858582606242815916951948817935218631417299956117726627017589926923431649567956299880741993161143706913084016269301203246105916385121729497450668391207183869434041575294611154068424953551196722100013516868843073533989829194152691148940811186491108514606749024839220395559651050629603621701326063958744162553770347896399461292677888174160693932992441438763756849212174431898682168544911192657502214908071239924732065721788401284019172838869919123605941426010024902353723079628872197988796194308780613678017261382907353172030654126478719770704239549338446901717958273119448839487342799727940961454287665914752725872648043295361362027675045943591859742939103084551413924341772262303817190839658221343639970916155325075738412403447909527773820377344380030422278071111830793838360822903012308466019066305706714141799983437243260693595945217052470378292802836022951475813931688649782866878412333155867943715638053738531507002818180779114856759325918497542706165731892622297270587097136596264836430306257150645535132561133744705342650264525722822291348398521086465222065446203503185601211000167000047934266248104589749605516881108747643562910715578098336883716888081811290838036670878132760089243212727894101719726245275532802861425272811722013968502743066378407650023014982969234396212380251811503435960303257748887127796168868319899870017974505444655496027525249230469347335757197451743065747616393712783484226158034334943597782434787365902342614029392660651904438457836139899034834442185981444699102923440939100830706539204068665120560428057041650680084988791485692908622762366318329640808863938905925278966124052651363648284390981299164023248379880185645665188018999824415626280253391046466126348650067824540071083176274017856978191675642786834129973214473488560929074037735871631074363483788881743918684228545531427942848605981812998107134950509205521279695083777430981302545171034663586043363587848173124375019047605150290303457364968617766165309225527399901980052419577303403936824797658280348438202190262326525591851292834101259600484706921609348679629292877298055641083821377628277256630084618158630335481740462210724634253173793011911252053700291547978493772529838917790131411333998529539041035138759794454539911232523566641265142497397190718435573914171797110443165529984671501340557300654629838540409820311707890622958848075649180081362405884477832525108467077277421331354519839076456268471216388000174027678554099305739336833275181250408231882844362352587935789135709379427663999471425048338214127012612737180602431220551852907634214363688666863987742234339855889311175653687024949542121091169264524853670960086041527800678374685964024557234366355884933450519798852179436015405377233691618545678513789964547855624292285141187789015576865256684252134741132503382749199149314568019808576729154351044858999483052580425892017473201959454400830496746497657579876632098941058094933990273933029466266668238778506982169786484807903778915957871168227114632798684977495982483306387970163322935959911179638827377169657597531693351762862429956614402024041828244732625905504122346321196110497602220781990594736809757083289033048737331097028964114605747057625904699681795507645989522768494509854469979189145617258520429734736636750624223568249414367500970122366064845856710649945207800219303661673064864589543601831349489013273198452062571326619267279761542288492937062882945175337322631686009456177347234629254754171552600171632344811952612130121431087104443431306444958242572847181352204962426127568898524496666529402374890879242344454438799655440283253413669825670529935376533669165763106188844554171294818772302649280139852995301018411110282289879807138942133380614883529534512982118699899644239184336465731073401922977183113953746436587776548617348222435973488235426335072981858430141345042452634462226468750515763661277282914087004356590106103213001669024852192042053488558105103160694461553059737229881935266092422490380615026823017663337231341039123278687657884825346485056228431275380439106654187420267618049184008623027697170187458074567984518341467938311290098738610437755901045167750157985127584963719347508066771013822741804230531988416355604465306225528721721993919428481050106485675182995473391654901759865208134705561562465046123851740313811270699519732050509159092000371791725723583876468755592245828956384347915909846038684639495478790661450894463110600137896277457169588025344351430382381957055566773615511599911302297242600429602008253386061544987718273228890393736524370176858453864458119551649975229562566180173397605724748859128632232417293873516293602677787581223022533204461133474743824937230612092909234242878398936381257357698055735988153999036914752717139900335804720367143721992007514528848101937610963569610780798917630682055859487127007020169413100425637434179644839976882645001227881889241330332357004663943647828042539649756788956982145386299032710648018136148471681278143407972485641236607420019018709618737796706094869041922527893182443323736626854331552340151660405977317519557302630738989636255186947242341847444315680352844030539494423952221029225743474107230108869684691309561004359420910268781173579228513944510376052237275824584134454842359948191192934346176036395784837952827929858881632547445109132213577677652310285574593554654727038964047421285383017606639935937091212613484220839432874289943724031945121437953337470043456729887330397934990113328089049366610383936988630785082318613406546593717615105327059850145635259803539023595163856031200379062560473361293505659287644670272296499570478288702197770210830062409247712920888803456413099190795813610554408615118189266290603306756545079721162921141758751264439143155681505507964259531576194187761444124812081634557165457184560846557075688281661384880815048400605712592993912910718110646243362086269832356194674161424935502442300220233981980106490874087112589107680933554636419577876425211460805524336758317302240436194973885305971517184560184008609551771120547750035885522448663068264962022962186442780158294109397332833191622382679759037860508407742448095549335160168083185364059591169121410049264263565866149200346280409316575033522299469207517739788155583119186855006575763684434121025009668940021289960628191062007596504949627793113219515467602400068909198324321300857389538078841059756216403131733712680687462758698202879866613317957269078453369407321344956620990071896114449089862950799527829160219747995835612436301376397696808759074455187341616959217146598241308219493008495338570854606956866687954664899106154470692759944513168255422053222053238743359602015550039642725770775789167612327724608034042077947488309610494274461434072201096687568239410602798256259202896174039936544596095333902607835342896799521472271390759190612469523365121626304358278659876306673240523099403684150286365864149946568644002010258674221550933142290810292155925931101639344462217491646497281719138324977315883776515033456428057688549815789504751678960153092043272963941920871121781330198443400003673282084276644725523455098522522012360936801600714697158787158713477270045176835177423880763808608408722552039213938693538136829587982366577134539701511592798560596056778081116007789094087649448162007802714562629817529529217308664785540487303998744228448271490806392938853624690709256905910831519017233634457047977143623786286788994882210023857129600245192863097437512213922725923506413194412921904391440444205814074072283586388651881118563109236038195813026830075400229278423851751421906850521458366459328131075683998107910493103188138796863773774516072878112060764327712818079517066054349396539775612709620061024464921313076273499619242913200509425902283403785586560036301065302277508104128816390681780005806228307711481277513623600477741068453278703526435828912132162339389801180518871025029860666938084194688280035650594481995902442574456790908949130382222682569797660189723742144665630760263999432260908286326414291036072481160858166105237313011943404616531263785179236716052326051774838929507026259404237938418531444187040974565995055568564089570815558164016631817008133972310668890572616445938282595727372357607498320930634167674717755978291064853979590728302715514976977799627424348326117732539273354382394596516313469061996085793598617063615501569746816646976133867139133354953502153636585886043638614833529454667998598630864855096380073302384362681910228007909259394949562970124280530650614870704413500064596261319174615900471646825636661888765565975917455492363277926180260351562893200481039426425315523852085272831070419005100885379403153959208418903588627856615646413744501563126215849126039514012809476895950939360288956015957842446976435956148594328188702198419584701863060688389877156511431617554421939699419087623347720672908348049114687120154162921048019410660603722655501846881054387583792779133792176806345018511904675159633567803660874949428981764573648442551035821313890683013929993795627785286277565805552354325982999224959367551177682926098929230500863219677649612133434007424899224708363148869961257265316955107109749538360781605707252757040795154451530289175863770659806430145763178693391275550683355205053626718643669645832387138384995569098989128255456218851287213708673824103679913968890064616694540385610070946748658724983896078916575750915458628357048124959654819558379994531961418936000303217882328081716177508589621650788742769050144728945539001596404376042454252214590836851223505834741226433963560442821175763601551807026210584083184001703387492210218321157628100875021186200115126856380057131396714105982825532091156403055235922112595145496370628292679094154033122407972744317084081342981448215317505274424080114409629781798222365205651630189426472363489976184937664662547980468543053815703106975915171241838507969370621323941768047342475648650029090711151656562703021010302773348490792812834671635899429709721134192599155054888014896720538843761640297715626227212565640060457826375168186537897517189821395188594228687884299557354352682067790396812085283160073277596150566605466578623580916153322801922924270941626604922595697531965530172224603236820241254352672033674359090299069642074128501204227473501433166561383579534734081108040334218669485352364175067824326807219469716212751879327404637227330634634728313105792385410708017757529950750140933646347972119882083395477545737403235559968330776834757970446436724725691674807253177222693602281257771803208936104023965831991943306857129784749518485323973626992822025528883205026603019392783907260557291744840648519271149764573960289165611712440726186366060316987667871130378161626366925123568531994699019868625095713363339520183666274170822453649497121733788504989424934593864633174558057309917863765588840848926036524760430567328894991735679139620733691236128361668177641536292603197116019626388058141679573621484370920716673028723078788582087900547752534432357930079534629475182200432902129031095906515901007374057582813623567250684577279026890168343191875586302239602120673498284329038653384672896320118002745409060727007355312210489672618719787578346727200003513421030397241558204157997299889878451428022819840639738923372892626730433712525550455322891162607327569996334303514117298257520794508304353372058005285834911745831512039423845735743939801222484509642296954513516688771604108136513287461541313048500066893396448023407362683568568231141744979225232092226820562615696854662719625094545578404499520771061619420666805258145020275625594679385226860889529587977670864118244147531730417186341767952518193397516114476211218540688976077298531796902177628129082787164396015113287903979687712691209093734655484451497825844554434174360345416245854236996073899135921459887690997149808927096740085661553469752554766989876161653798222072443246303576322242830131070486503958513584289948736426699820266503178781853320659509106597481220977101788715437213056580740153589818400474336408233088578255093203379677667197077830316029358883015310580753266730407107557029560207926100640839793670215321403951821492574281213848237288072039700784081656828280835080224509369334690663320196701553437553496548212152591959240374194323191320755302488552603274317838419268325603042292457795288183451883321932990081846628923282238671665104219986701485569075566296698069790775330734822576649566509611713045865633577708035612885641291977501589439215365927820747194042056054474568768452855961181159789821008585432612902507749660503958673733889417978413204637578186615640764874699112052562817038333634305811871714574536982705898425026689025019367645328512848593284552406842057706071076295691874718673539495525666953890568295291613014084798065665616073296991081475821027830804286573277080481707038845436329179616624262768481297947625602595531630548733801165860736985156980247586792956849282738812830077027405599337863609599900896575340624656445520244784719289495673650362829497386414462657276939845377092554888310007127426368352378270461255611257444827441574744297838524664291218139660946565736789133334692318122908845678667987535528030502229320676239174000745102433102976903407051956884924974057691097167666350879625249695955799735970005695593917432429618611551254033107284294523419946781455709511494578571474569155001237367950095449662370472683516546917758892506772583172101657731539197744751460843275109992610199230574074628906258527133046360788654930435890835281496349547208255320913739375462308909036491574187208962214758141311275314105031188413740787200095001541301815029811406036431533031638349808643172147565145225238191619483353703199388751250266849163931037910400596005963642564806286921750820269482258009879100877867858183540403583475778551866512228383493555104258221111485542003807358405356865399408112115587232314034907728865942665840329985635421371312208888810102300638311525469066985885438658261789756155163479619375820246673867969573684159979485654627830186034196636286726564687922542740082237824547818061667252863307834359621820279614257950349447825430187780363956195734281454392224202124365944310927117192846840068376071907036434428020502567354220888450744403639311766941838239972741209142947066071544165847609043768225304329390599374840182363959966734038990328543122537060945947584586814973662763037466451587863336636107350592865171661164211357155723689300335716145966428266501426566118935965826272860060326002493077252491617068849053037554662961095688297658030778799799226299848856127551108766112670201670505953080275297018584752314126772125148710301758595268178768922689414589652801017059376825614383782850929425940229825749410715251085192712022069182126392876728621595725205531380865902949599462216709419972237616090732805218538002662910265477234964587963747951906341986892591952415622493535118939526259413984596492591822372134204863496016589296496838474545647240376172429101633533911327540099523768204005122548481907472520114250383682748527612879309382213335094655467882432294258828617435711194127156186852130517026743070616005448892891490889538133979505165470847637425037387862132741967347950015104500226959785859400669180009975778415239633849088665332140706911973816370533078778516134578256686786400252644289887265730644488621618726138334524021995146983114911378169227134029300102296452886126726457205170341519227890708995447511328078057503122736882619362051300573899182481492223446747380459639484420071248111892614478516050053959599050762371460610791560732181458582244974243735106565067620750638828034761038773765402057625122912933463385310351359309966202163426292485935311083795854011888386831547903466738916952176997836534032484664392752707415770330946085304407033925162930673782476512310298482484676397801952068891744257442067197383077069508669989046879377377973459499569124502321222843358795711757705163968480690628732847647613816947864845130034228631284801706801804528420732442249820178230564256115167925851945245683362055064105648218485120744988792817258350698371269560512015402138998287916016024549102460953256069331520955939266782204181275844068752266886699906117303071129582224477139162826360705641610114470501989290764857820659156718114952992143709199383739071094469001949233430306407489521503801407234097596542156336994252542006536498577840893288790209507933223880516305885948664668758993826570086417638176767625768710941260025362980416629550569860958625092674451693562602225096488971994098764635440087275273011913479828932540583832835446582702366107443630547965198546856566355778874589386012525793424204854561028264140060132234960904445919561783425041172995640031979168929248546835390616996736189286789730819675591896402666535703225138553057775288286487841216337882111542834852785061806941190874585452708102923603030676652326569135743865681072397099745114861656548512295092053819377500588548928243444657116661028409738021390094622748795734607680201476750514900832655475361937197606813170177979070027475362090819350126847990396306651474734499250995535621136074766965824535842169082387664004166407473889478858172023240105187004775178487645240076081748900904657534972342494837914878484514686035904369292221326695708868401498609034708457819040604972639169830057610924699904104076563361226743347839346971380598429461948085911341688236181705307840927593016993517997602510303686384336074834626747153152011300597417891050922884981631995167142573636606684304619763938256487974341805972686087913979175131929736092489411858107292924432835280279188033995344164762082707470110530163968150489661007771639870321121438046647922329202298425093912612622758710116667397497764933555643559782259148874745915574981908830350642713012502150121408023462764404723057782701665736323693266263341699576907298774274423067931532459500661628584183988012311164667388496381751622057894960787054686653739012015224156232672688879904089164776018656554969732821228888924513548861584283211075173182898890211701351333349301284030300996824156289173501845646686921601354781764049546763281977140855576251692184095072029273604077708781657065647460730636698261276246710891057379198914839574105501541068696072142101024653585294921872216314426631696002327757470345797192745618111054253509447984208349494580003465085133017391948486237003908491372656335619488167581696876589710941073152778699372854065790684482870690042598444418254602316878454928226200768030017262054440918771759167323016881066157215232852618144449150290803481605192663353328472351417172792352032959121058027798984938439079149942943087766542479377413684053100539131052969249402736168694714630678169966542306977412503390295420948126395264251774340237716640931903767418177665089983556766858352858831988129629489336986118756946539138040731938021872523478073764809459109790474107380944165038753579391008336925690434728535826928972274418916094948633535011848794593479205016467353505185002839386177827620932610785517219970073649866827037411879029035880491707213368871048402178237554175661636475786736069688263110434279257686401224798690504299550358029572313669598967806400164289398527399350196005981956868859539741651069941645500672392768870545994206560411895367387126991062303611827664639050373215464840283508912453001779146514634759328021811634673262012525796243650519026805505641524195262759152400065497262655307957880015850519928354184261225686405069663931841052386667839665770370130185966170095720149776403030353598585922974392463139526954967118479934605762284472902771344062483271679707016390615185111229804753249954534883392770879984529175532537995421820998343458535217635629548206170952573997769737930932885823867062504350400681925858350923255388972011192717170630457247875454158910777163298910748759388909158809803214240992598659973624988302618034213178040763785921951314595187580068412358660512114777729253539903408826214446643409961307648581942466463404649625816748112725407559752269204828390445443992431140530906426485407037424614695184471274990858387830315469921088277384192453090487115680845389394993431110168433349354263382586646363694067374968502895662730263614409920651643619374387454203365190173405867372312231062079390714600963215904371550420104926867135821366667884750491709767475730478800983511801434282920259480780893692643861685491388078897254359372396609883254073081350437494207930090751078601770605609864669091079548899015914968805213749817593287395337269875233103191307961911684583285826353862265540664243418420826080305527145968429541914640738554161270588998495029253007085284917708748971375547591758246909268485576727553219604860045781720703305909533389456049385593454480075230928116037883955363512630140754103863678334612179396854491511172284571859279077407806716262766023823628395085820387019364591175586059947231638061560470786431025471162693313963570670324466427030369559714055558219853997063653021284013821092096087819855665125425239788185084117156369229092247794335262181813312711625759843962678310471261529264502847508995114859582940623102981124853737500657829662888009114194139881014116160229336545142030041156686300226244883777005069050837809220212522639777336344428483675649338955590542744532387879889857464593909566847909564545992334852861904783278799534468809531588446502499838595561197098302110589007006932852276138192439703831006881536609150326375062908475879675217595663791904863248930625599697245683330533492129989532162099888800412702505026826992705558521163462863073767805925953765569323653351835499849417561947108696454530282490135374633657996703186470836267251906412009834986396277766068054594909260936913308846898471465526486159139974319125232077284639396619234683573323342805191833470352434704167257532739529840378259234884764660514718916535606657147866944761059902281119602938124275697925479172704748870330639162431494764644283508612271844933617057866765952889074283615444275810939841619671608502877575685492209909319314861291617676598993726256671353223129554827961863136364915637977919271452748923753668713569649854946617401672394985401361327699602976204797287259459553762237219631596996788405019340338254124580308592180598398561448735370756073374766316696226560838224804248823736043556980315252761659653289759485072609908464323009412505432361128691938601403405876023346096116346576549080066844898561649375569334764385627646066974014803378002520912475463060336847198594025056698527435595694823924184182580933287204510996781498506255151898394059079303442333348518658360304182068461409566714014321527420196287467473650574012260477637670142132624670642114041583780301845289938206321547405069276637062690643866577782018331390975821523456944180211057423842182832489206647192821038863599822166240794663314827911625625807057102257792192053112478042962638538366368287680771386754878310630811786286065342265711882851941010321387135590700918612964271003605327166870360915260160746201624884437622075700898929509449751715287912112749606614139511359979624471995970450164442613860874998729504086157934759130840836744504027529476917672865269462063715495238997501376371739855857953602571739835987779748248942410599434859924563480692194453185844345830285525162507270408173617598658903607558394863152517317325951098467346086224672065900551728414272853073639677038980809949324037487672664375672423307902546129509074570821456892458066641039657253002548666345834571313356417537688993488573218164408766304382735834105596888424017974779847261594552129583295934440115542070910751382012670179664990079723238493968379980804785796708645927797274490165449765945665629688825047597968994211799533551578462270871823780004316168806104257839308005162999030257416321242563957312485465832236697677735578484853206314838154129667982418589605804218808166413407596962339110655920837779119420857195227740758284563628977332144995085674478106452364198456649828334428354457302514148334358999850888122795323753223859873571309711247313437010133071363536401327153873525142264972163160370216294611986115089008438615198649209130224860057943080099532610710822913959099377543755478146244627656260048850632343912207691882125814173506400506054174256024164933174133803066261480494518027159617123363377374343768531087169581202058789025459266731703235519698669354147967446171877985857053836321233480933383747678734583340810155057655426811745692830663268399783186853957571344371568761824450357956943397482262407395368029071258181959568765389808694335992062817945111148201203856925555659387780703686995655952355158299902217325384278900540884578838178868994113116936284728540638280394554267555448804464262710381787478983906311736105329984081768957891222078128043499680556872211537774403862319089637992593812216679560026060329671749587136561096293485960810120690645232343422043333552867018888785483190627194739594377251007239416636810328158321773587865768178820452602930101377430126896094829728350793343264606329419183924531951181586068506904614349478387527095371529231436496633057009233875497177800401607177004061220058501315646925538564939893291225977706545790994286896078208287055805993698754850366098838204994652490758196164192128972275134202018587267503748622541741686179599405205277936833253483348291080148177292379428252263811631556139898131821196784116661661982098011208463068155554638673284355415170985487790256291774327094042266713032197589205215053055569460019067323483061686064049504112213653453449955481812562050302824271471781311760475739547196243720220913352211285210771300494770281082494227124901303961648585634092539009115025863045668318805948380001228824749429652408061635524250569675604917086554298080512897278033188012992686303929015956230750888140497321863308752871748427188217335949090340948191237290862019435214162966421021261973231728162495114109903085411727840394289810877383508565834322167665623911413750387491922995566186332047266205112503670196062275121090092693157435725825316776776353327026817951873241221542473277957123014688413319903807661905442042391550976016153359411876508256531507189395787378372186589445086856053731876112481578871407620857958364363249082531581510593622155766005852096681711749244595806190689484571043633021501044097172105441536172040261368828865817071169339592249318159371050086763144289920968686189327951614459741264162209222655036450932357905940208715052434767739143285434894729786460569182112837977878704016443418142016934090836435240700067340141957596516479608215390590952011784151646870901595845425101207277247142582538890945212556350858129313522008565070093200311463499079844984107266247838652783893223395494704834662569568423615166717306603641700486534844266079125597146056762979779331901551875445142403286875012693722309215528040746299059885424621818616479868536763106119143238117766749003457133227124556531538744417188120921157893929945426125550377006428778270764599112013777466113027171434069070492745776703703217300646139770428043689310823204845057944083100987762876336999543275745858420216499237321516825928020656874639870013827161367498863593902119367637689787802399419079482430384256867149204705251666974330594601511842712241002274317108972660729175493183102937912781549623873503272000881928330957082471424015062622611462371849516733452998721516025241573235895350727776418741680877191087927549474582507866212273021707235955907256687470440250907727558056184776075973189325689735370264890478282573951935426847926546116060381304911168777588259955292303710926644111169564719101926268003312380964717665674453094244950978950782140788632814312807164811361200848096615622461080614153378761049746682629432946313136770733114374656062925204873850019566218877332255248002552728351819129977010494833254307046566624462639166926274430254172505078277503796430795051012382010196307027312533754249694807979214628745759506387649988317403639067604121284148309803385415426302388765581368587563763759456635760119549355281507770183558765480580233832436326591651074923674174947802930546453985290727715871729922654910301488551506013041249197357014797845443878344081419916904853429597682284227443145195621869919160117740358046895588237215326932428499815386650379220645681510694638638280863584397436690296334847775651708662486823810766271282971903091992257924036589633466524256311527808765157977075403149072150870411481032847830193076165426996396034262766325548801789824842300694233849390654128537472813741369854246319434365163298164190653932752617912622797073502261059111867205957820538702189043561461709855316034336099600471151470674338196849905595984583032733565544095672052723183133052860872894646039112067629162998801429533663449521821423032822149077020750512500795455748936473420994028808221235880981064126475261746913662525334884056795049616408819766225261902533305282006116087210011308271107685007396161837442572084235382672175441534504765909473920537266207056483528399434288854664170830700091793713700768447743455728222131323282284874912257708365067673574442032967615968996817506633543818566110742410348960448257533286591197084120519435566789057579083177384374915099808147755655738656217730656007103876283265612308288233730394797592078294070962691841356626126190777825023333522469077666625047296931728748128507796572325208228207514406910989123349352762810089172792137171755531911876741751781465366506739177571607759147437736156691686752269894604026690392298919496053447565732502473328043511528284401476516225636040788558744854148399837351526549994317283224993043642981985217390795890163437213049645823502194608124070437032395604530335845280542889785176535159875278882464150940379707185835972193222706324562934915940611445881766164100660846822598736695857600540821915468033384886732194905946680747371467058011961972682415728238526395794851621217734240862001210380535226719158427034820560601578079844320569478316176632792355318355425273766220677728617667751371132869625979476947528967516061965428057560895453750694311227043890554982205729550131085632164319772264586033828790655790802808666646309145972707033546700265202709745496484576683816517214103818227205134191604618796563235294258669778839872856066808875640213998903403438910122063900878640281835414341367500589933578918699571664183896980942444187417792953550133249535232694352981411420762718111109707133223891931229481121458378039457197096635360895817593566927858966744046393554902411991667784641553250492019019197503258316080046340749512036653317697121648329460108679069489832484272630336372205028932790855815173163030093433549519805796265792436583181376495171355267311421242401147611646434347056930404418790617603839131275099774790396356372188362830052575065992495937753292369387162378976121778658528109560579224157323459469236126796116645123089106463177838619620686558723992887320490943741594666949055125588463637994481109234101198359942006438599364266903599770439621449950477978438469961312943654310733279159936455272823308268421587020541502537838249050995349735583714597365478836681555249899748655127275407576993810570626239071426965410647823443595135999912245161110290093541775858586334566668806185378408876292287943782456124036648865720476371673405010023241749618620838206297667021211949585418695663094825070576640269502655662186626751390851768266871786908906503207672273835306462103215515944245137449800892831657583597496236138893555114255193121167168881505639966183534827588028529370791839413316356634402114285643931246384682452696928413366413851875675955942509065042740748657172645237312131128537642806973698990858482011786478210396022629803156113649460737330412506326637125185587170842733706684127705775657736068252286723870942540599735900711406865093696001235678126017548815822141144407756864803866242960392388698867332318896270420458135113482366264082248810216994899730617808021263992409255149258718106050681487054051549180243752154530292626320038863744562178978888779950577890815672108059664787517247318926360394391947676419141269249000357792479060072349962111357507910727070576005933348005236325352772774359632184818233765770874885359992694806431669015279163711155196370442996747151248167724461655030104084369824067198158666161251138670356831924248142248174896357746883027600718094983196268738113486446338156065826259138149506660202763702499901693380843732813557515373957561248909293970341338969591550235204647168727801489772998646010156651699763162473942040066964922826993242445129502846478227138454551729749049784075352109855240200100263259879247952506015740124565022224463093288605818890243422519636487852578218311269351124634613688906634664165427847375477598833316484058614204738873995725227279406007516732300945363434495170237507568258193571502354838480350856668547578982242338366911270809435510809402636558947073516837801490459614788511828510806533517511386294253365643127939626171853783905480671249011198290538205340293332640900398699178343468857952806878720241020791004591601587066175206735308869458686060792982355605174210150307632637423864050339894525880904384703453664967665998300015778809961956363372005076605682457981744130448104989476073585236837068395482820448403286613643542728627848305008942350662456883187757170454525808120624744500916827649824735569317384206229973154189204091725135875254833991270459039667744888420214355077471404901569319310087081769536174787162661638079309251127348889055604971468301982229209011424664671245030058897120915645100932569507940936472869288358117780915716033322798039450956981504194695990541933904616049036184239618055791962939450069291785740338985815705215513065420968769422669357106818075100716549075446939322277351480109307508398168313652285141853676759155777773345322239163443929963400724959568488624506077517260878296373749648155514173449560541113913642337173062947842013250323477348426476291053627131230055024066463234124387034797752913264785665724121164457629697229376113391127554558012426919038162467433256509321046977590434253993284376315816313860999307931100285876892920838711040408293132303507166393891266602775843565021443425543608918599284436582219412190534623765793207259132084790916541298591881725689013501615711688324726022699516723990879307982748063022834352924744162440240132490647695826049071118073429074071214273522438648836802807499506992862138397398182340456977020634344615704205707558815488942506287977534603846017128791493865241597316200994153643842626888287304927132312862482738671729403333129777782933338379678306629956793461776074413943942109025159106500521222093436198828167350240669310494280961609416401948328572582834246521495163501443374440359047872381505947894899350397139983696141494553416818758860847860512019453330779959352258469913325251352725500153314453187498312664977035881335371267789223622873637270551224572623452986342417860240658449242676499117649670741312993942625766196794011944388744451158276349343199360658241173590882283550723683098863150134605065937713943078920135066673364072516408728698403708475596027572629665274857884254252967881723190082667595404911449961721128348942789982633791455154776616072868649800162446979778586696944437290414703591368769759139912027319092014347951815419714473555209090785929550417941429361446251501957375005507772623096460081796062477350425920503060808780249128285774175536608576372394700624583335599215259977482215453750737213504459090845691907103641748976451864147944474159507738252709913926551413642445952376783774678308756719591148309486843629745102257229261493930974721570750473843594994146140197166103206450985283619602254866949734584133142632441400193509253175218444216832553546765973603822644194188097121633188448784935896238782796889517103641207890939076103194064843541089666716574366949458241344715686830442375013452225956351651710968768797328368093522266210409013780140806380410496838572018141036072149669488702252190468215730305592376209541167448699821195497264625807605524600622679072818860606571735718921847973537408232856775024517686922631122169790269690756233879063609713588258371566282206761152575229320554799755052464898106795881502549358537660580026100473076792801932518306881312186304023109133378022136702669030782878413997744678051369774919346890214752873555298769906677086379194957427141013679286416823622815593020369664180239659002255406559451798788685674067444474754101891798899222336158657152744715711497582914920384278130457057803306953399191076350087498182725843316206298503342485725980571298273446068163216141213194696752445371989302324997811706772479252059218997259826592865146268058335265632688310116279555142503949357872648694169840928606799787657716708688542159174323437757035594703153891645009496166888431886510767616224200976480680351506537382215595393858280594884717338587669879646038887933133803970227633708697543663779726326144564122766011262613791704776821188638284733929789486958138318938107755399007639258845527098539540768900204102290077079280877924144933129521555933128068684758075777291302956629520279004513339750927703569406378836096866792694292089231919217211154020115960314098737171474364061704520913738750656738459685887500511539788720624538355963350924532949190300314098598743078105984262863193359408207029495959548490227285163649361856839096812321254626045012473487488197669879093293547848734599625466321915031723728407653160159758717723444319491829971317449716696425145448802207939600967386903938397434075168568391797639402376471360744789544434817581730752821937993494900349745201446898910584222506793208234859548285106479734151216038502655110042190698287488113885145850209698458580095725257440423718464740618352186366604756808615972200634823054950096543737621790777025693524460962071737571972695086328216456253971219421367746523130676236883733579281347833562365226591483314626427226686861429299656315451467005130362978831662112193875347630501250522381889041622963357185338375561742475779568912235749723299956284952600885815817782576509788365938238657072090310790059662429613504258588464849470934769432273574435950595176984246987764247961288648168672965205945640504948336634892035620082026204517242272559689807396303583085711533386546611706758659109193466060561693731806859177107890682327661847076257873401310760226887018558869092598848718658707977916281859192819371062915825453796967876655949200182029572623952971872524569896000939099762012404298775099433292106779581769308022959093121828584237366896021111687812225524657496659912536194942621804364233838627538700637832758474162857220144351607279762408181561786168931401006304417798821352752355486529694474199817719780770731712578066483911952001638201983325178847906438025466432434069905820850045491167582961915806827545087811402885391478560922386772485553115158024389249749805381725443364630838801189322404083415062855724209637960061797196265810777082278605686209550654931964030735218768775231584747222972300922165845222992949962700852536581243909432628268490653563659021707619783241134986143379001533206881662617729385240304061292665920590305289213055415835909759227153459683112910433135716334024999842404274170491749275551906525457986510171575756576281675025112282287336465962025300149244100286466784526503223745177023110397213606359397606768265020325988622752825637802900510598633504004422931188851277676853510146480664292261998442413451625592432746081841980584679973847423250556237546637783484807635620296444817606000367324175060159902730710864957112845143877210152237408181803956362443999923011866337129897783496773850646982281262033066595557838043041460531240357083872026101975988631677327036117649897209206991526417195860219580446201127584686169991761737171557548645126482379001647153464776718919871701035336089492169797494220328825879844666733489693027863564101453905396718488596356585482213276704187928175846480254452200723882924471474381393782585918092485475394135347877453311056129961535795614544316749767023313605390273140015124957172114928193940408122080746470023223022723780722732440713959709198507384809762798817206976843834385492405817630283640061964450187404659013836179432425177857541683257014513795055359151390856093333723812236487211688569284447055202942652904342348539665542127937310016272210024893303650287540045709011285050974553207475308491707643907469111988489627948700481805290879885773656618694547777291446850332983152545840123520206792696481004155845580231775619257767391803901324366220967269477343773658071486006895685765357961114148940062184809455641279678830135051272632807554779198321925533467583882433569110021677691255511787523898736430226124741596323718740992680045494781708890131151905763789650091097601933800399157994153559625918970741403393367517404964011990652077501838389307559298895386247770379652150837661381450222020520821796586576038200870875705287680554833323678843669786784104241762964834026538203230884919397081683997469954693047089835646804897418849904288572469491312753038327584155617783381499865219213285726279799239693671892333007677083242066771846807932662592745088889227637140036328576542681186985201032326444144542352123970101487128100290307080195927860297062346348875831106139269412961986615934418149440641470006591806808268046000771534995916158573603494539554862578653301241275345962553302981182524611852942535727795071245719986259434132340682634601129011525360696001667977339601937863453655770625780777998790258481278217318453653345663820764646894406098664134143747828177717058561887562214411925383353867540371616409269925774257670057179921183982034861209272720835590159856115509816144512764115371319177243041303458417184643741838450595618730246352320322897499958610894134829128288287537484253250594953096825530832560278213091417348860749396560795482680490385761751549220199963035934594441336313775449964269810052679968308002032569118087545630113170726125281031332140700062851779492248073156112542383765459567049674463252887388282052428407664385250688413839538724737803253445173999904384548460872607180616980666308455571142712014756602294756417684174086592482524410789141958028762944949301246342698470883740074793297911137346099783228210822013040397818607156746086579113200814841393744732538267334025531026909908401743163110301029457642372700901871682320124854072526798079274160847015972999714027663008272031825605139816776071329387410334683822955396041167469342923824360970534210243340082950641714151590892744027867018912579395992961114303948041421166923087325779640665442976953992215010215378954635596095963033863890502740856473888942383085628200418840244271889157148690452048277519859947009546134515474203429747356038889633696940724647912804069518520365538398143926764415191645344374379561657094342231316288317378396999602913338645121707136325663352097341731716916073708600192964996977791619165974982718223053501313753204098976574307658340458712320582724560851835969473634261738431560127382566437501478078141005728342118670066340734583316223981630778267835090569857495947984580558724477123648285077126256512534086016638895255711933917738260525406199293098034302973130710465351719910356389532258895143735075690053856746275573187685604342389790517518148053045667662135302167306245494561977727817747790777501503110397466577323494064166247493298295557806997673231160623669898618636186849908781210861723528842736294901106606092031027413127336941517651679808697986108367540909515931270759890810549406811280668945987431277390327359641898419302109055810577926851536768757210095805279526761645086051526638452263588044197795966714213157391186662468417916326398744204624588117359999572463931703731115460478122807447153492978389338246151887016243529509166567423102466847871815815069075415361419099181940677282530108143356948096928500316726603444569840500316555321862133106602784005625301508537274833572590565213121595692650779867239652896563068473695750240507596468193966071630324917312419730659623984224454442718610118270713510909148495305929599595564089288473340890859642777747523441284939103079930660161116693770908978922709158913993514288113474091607087004133147247655414180284735339042976781263714980544853136594258242505738818895407295603291855375174652804843852712729692714014582342460551258855641870700806639915006008370060049754280503610643751511855779210907254733266661134790210327691275977260378808490877713335210458755799289941468238348214025090640346694384296490675468142628192373278761897172846899596861687385021859062179128409168835697380618099709085097955334673898095947918791612726712451785018414678926940590751880480304521235562761110803406371245640510528615155102225422474968418553573329714239967062025054629944053560118124563933305357314403305985439702111361495604326510816777582352006355762912632393937248095712226448072501282752030819938242196786474370096479354820318257706509644384471521923255141653018077494105985579232794890777653281258759993317535440548511038980836362168561124684656335318271733961517166729670008341741523776465088043240225948760797857482701460985379724797514547492183243192946949344299603052132061213766728124225495054120394529925516248439374203212194246752829414840352961984066675742550021239804270831853418946360315115130115164337722854339997642811386958732321896786752806184450763839883403115975816993215580707505067270301406762297674771712327637548251185155693454747846520381099590882547280792891467938262012801427642700474393289817708936878097431043067029895901005407955019488783549050050571374757145421708063820119180789864409620169037941412099068497636535325122290742942096820446951896920372147144835831020636909094391820449279790685838878863120215171417020776644833160586919377098962489824964463715556800330766746107158055251265859306938559748491542063937653980366508963460164060304584532714918706269148099774696364104350803274696735357007225282372614452000357670510126315248022048552357667749219146286661058896320474190734572629986307618416350168152925442042243655904096917483213343879545712327000151629576377009445203693363508946380772531824826345050264457312875679314373427842366930718180596036796038508127548832858450073925086482972158191870346400800339738897833351773488603567891695422305257001685137757228337490858168597388206983661364513814447477577627695471813720787428725183837815285203228624405908968460366351104967627684466792084280675023765328599193652969031862966967467690322637479032286273506590692090880416669833058056208109600982046713617450792428232922679285899120646383631879064030530048408983819405241217827842416580680770158479957985825659364476736605619168833399655230188070126335110276866477629130440963827032089541268316783710949805781858353031404062560790242482471731031508786306992244380517807400880676766835104146128215819828199229983744366014256926339297339957997279398119254772097309405314472909091456224486881176256370615190339756256412684230742580029362974544246473406340793242045998659749299118129871175649853699371964130774067912871496071566535853499706094260869200214354074284346374093050704130354955382871074664014844993750557867928594122807262944642795672646385863127782707436213489959871702311008737741016929151047339803223165526741263457700876833406520823596258682376125947287899560951059232428300461653810681903641367080501832901542925596196326438378714699174237219076884096076467490355450446628885428171822780980392716965541667926086848338606471799897744878809429511153683176398385675171786684407948941601818454525280070597406513619831671175708216835783457496809998718579725525754824092688777873206972657800758495180885188327357082818464026028730568150305101785379013140714961339511391144292535127804453578636345292837478562174191699952757278036638154902030745021998725612148650601796390531188163147862851866005168856187764936559433795093794999279983049560139009910199676871293514356538458872712035352743308233471968648889071432067851893849969928555775906302253273497246270055906395756684760005276217392068522146117622803673268778965890743875992961894123307445195856782263864084144508750901620312511082744410097876455491664177730866704261776260026134010551371134980491217504020486094020132825819193123043219075874119746101697856796076416891755127570345708550080582574129158092875175915144512720905703261453524671120848080384164108073195690017922238730341561594142279264827092785942323757129081084687268316766402884580174975862130915868648791057063799643601999745166895664192777337187379073454349690122632029820208608347890641353315084003900396924446540292721363518692797378834544073713523613468266009229243904474786844710319306733982186199059862082019691274377331773129414722780519795268589608543932449276614846915662815619065114820349603933402812094586139646652225401125049617384490937812811157916577141643953322319790832665164461892779757718745329624601295419982022182204363923249728241327849205283869506386258695790350713374354736820720244520586121765992173521351156525863840112834511924114446220750120941474731685964339481093708249252229875228555856831021800469624110235579972211027794906095595100318441653336217274815621719756366897171787728254925631287733833431284020938314441887686398317253704456467449087900133967095345816010870285770112332077445609017361805867391895852125976596442215743906109083624281860167893883886884823429802069714087975896230062768327442014665840820372723954276389371751211749304974676826626594274748376747247079627817079868153647551789172508842018273986369279719832632569785302733422270372657772818981947040757342824766331588140318970237553078337029823131613421926773865024342430667780100560618556933622342829359665073060255787282206997476088921255345292464883675489980855289774237916501643382902657487121959186979254923759012395679718954209595940608573931212054941348559453701118606845381012780727396265396409179300025865897186494240960160514152069104920783266413348582352966387966646303262953125304097548246119113653351597252411520728733964003233830356511171080780077487704737260355312606975482485599033312798407706838942309942041202831436343208141291447796253860964043109022610782087915095458726531236564979966484822576810127856897784892292576701336263364147595821100827479991989929951011147047573378492465533132143944748636010194816953999009875245743156567427212255033639429081005165069855096442064215469294259061741381783458813249708071728828643497047579467879714257278426917078790723999727237666228215986111451341948780268504037123173467959039407534236059840585094692464692999787585674321457941830673468912109642417770759374209987036303639495924613322437555760387725036437950232420733333031273052627139793300063547860532815729757791209994921883648464019195161016271127901370792105700449166509767867403600610155226078416918666771982080188066047032901657137204970570950240926663371361358314479530448943244324473713056021484778929721587035685570177446724769839336463444562431428887929565700521043461218894594178188333948905621521891586836655894054074048848078912610217274195681108725956793649060527916877295344242359145832732091902811590708962211930998332546654534717491467603726629403081946906377443017239505185995010111461969660068591400149992664283575651059980705369844077608904261973387310080176025217514234852219069462272818357033385388926709716203376888090615113969060141336972011221342539938177458325907725141998318879358819854523049677076858429190211245265021483343495114386888241548998830337505561048288181286315413182819697993459044502306922382293270206616442874216070861019838019072797264098074873769699144297323898759144541290889945194148969168583004000915365259633956463521403362687784059578622887489955139143962699697781235555137444360481862303531264701269982898838109915943559697441829797248829126526715286414933440895474212560091337808948346545048084132179006450176954604751023640089552336937922390416097016027076865743694815449191027899510757227671287440988092228851961064400570207306272275644000773205981143623829452201765958767208696270516092610882086680115457150608875384609645385277351685506296198246325676952741860311806072873628050539913987906138509914322118763505572066817911037084178379891332945282726339910305436542208253961682485329647639013256265051405656604434816036290006658126597123737863817387030280076569868821491699236248629387207408106113044418417082822986991458221587832916500457041984467686105137115572342068642762767442733574994842598085722947750586711046401482988230720870637759910207489615416875834256440925082292229724921472847092518327309943588286275110083505737392838049589284349459157537251602186837226336087305882029320008350861951720300075305066148520983890864760549060037173201260134763565885183760440481963490065193729324950912222258796231314391926116782560242335400199829005874495093187087714153378350681740396750265504801771681340347144883725832123095827145682246374060681705130210399837117204041648183936250736019117593820037461557655527028888636019880932096409384628241561690058635663528013098385820988968116196767190764624914591576578727136847987616593908965050914505418983955790976116782223772548110307716089395739863243120279443721980680631478005868736792101150855739473724035315909542011680896876726017566015285099565471263496004660628759318479128462579810681459173153163427491495445876771131081973226903642799033362798250025906429497077476055724288105118490539111213150662785197237379182858124389400467355013265141724168384416685845611942598386739038299451991010653460898960082666271631118323401627178286157229124445288749239439108318707911953708248881176750790343294685746086683878337515035333365888393649785887163564181822936146027624452726977586449926244602967127225349504031683758248640258608396307395357358414742370623646919048336105376902768204802708475138465493908085307286380132264009216668808735250534764484143045576711790000658295349905091212759788569562403952841068315478437471609748426959662978487730526388026040275148747106441589428214463429866198658312916528516314461430934547967049692661330500166637152169310110568472065168912669791561587701882767377994088672727025351405634216558367954364990486862142811549443603133418963037281410814577050699785316551082613574764091932902614235869611740786443465273618999534610512773884051863123121713897437237966706433218216800583275999159643163103223799108274584125921184827247372285292062295633190996096688779180571864119234382921501934185670780970137300782515098483376064534480066972426680405702084869521245043585282214305521755135393817185573082011859364902069713901004823919381650126712357121000463914940951317134322314116284081380794802210406612221395271219455073113727942193888820303173191682426359541134449691834243693186368745069793680389263680592688780102383552893898501363827284359936988170152123935753801376011690019725196187378455434074497881029250257892914019092999310659614074337753633734050767553055049968101568445668034549480652717298700048683455590501480045566755538431689100029142907341400352239454923164653880412705200585310098090763050192627872041935409389946735670432243973518541483504814863668873749334851841334321756771769087209534044692062515516691148571519366860117357028498862140494638815423376707579199183382685346695807812773949131094851673963896091146855407294970390022017638232251153555381429072529257181703934742057852266737262666780057569963723630262532215581899703139387003541964789919384621908277984677935579410813421382664906358527374419468874732053814060461133373661494315883618858944625795822326784019366218425233396759093404446896496340779870060995867531696337163753897588960759425076713913619524469970187443087892146795673602150102891923033614398787935480837056775190626363556684829751491220994184721936728735285409720322701329539539086381961630262805357007525091482342877131916768190256144560726164980671440873502810262450972899662516106193389855230371583962922900486055053126788295405129415610383430331222439740376179181857916613433910601068329344981788706842805024030961137244008892020202510146911612438667558238994717160648669360002026059107821114690451813264840540678506136801462233022211673033126276655823898091845614560369159967280310741850344068762776486014753090350679433169910004696237570711748462874762869891837051081946720272401211796728232204914070145728845820531374996732502709861019160904242882441978719759744397806348585960631323317438721559264100627034062067210665866158409714329878597072120051078327118881448454143054218957318171922973061356700779862042534894682660074533924864498451883842315788741589002029290106916908685603657266723918255472926998167348243044836538506618307294134368790853724938209386070173266940113216832380696169498856251962323792382928934664314649283808285020627343359988476363889668292497558039739018215411984330196132502238844127935000244434653500927127430379241415003600850410460282296365543364983368154367523832151853484625056799894511349184666244072020251183303641179787353838444050397486512060367952456104981393783510100767312091260498798809479694509066065829571110532879675386631029749130145597807123839752182328168035070920637312514690561087313919216325849927514146122706006419354824550240465679074405719574753729724105957850336449481272565787897056900894311831241008873209776318543694436333997275326526761567345256744074430307225999298237977755899064262930161000405685341583952044025660187172665492493117389051786835810496304898416656694406762140526938600326458763049227181457561931650924373078763891092325021894986293943900345263414841000047067838387806069893877032336413252904764828849265627406336325095147046863962073466425461251277500357847759009710526468028992651924781472101970191444697362919765512122346245879891326772155003674401698169664850348792420016729328279109383554831459524592260823708068435337049173537815055430245230750840073849204769743648313005025495472719793837395905143226239410367339100358872807716513194432724920814833110248520826799346916628678573703609548496648226713150552096918586729721057466543856151340896711469997454879569590839285792779469876509238839833857565076501610302298871839718908929403458968701008621250308554072574273553310996801596992755352050984835868859845720293426008938464205862644869292732313575865999351595531180073828847320419589201208007771149384722212071504061474395992752581218952354703280820717921295978961681185919432467302557242051169089823544788082659704926064810516574430859936665101121731181770835064680873125398372471232562010157093064946445366240657515685212733910016716612380236073858159644165708216457157460397196381125150487119617726452558562124056111522057787878140983040939367657506179048998654117807028669196706818683532116675739826025994069298502052650915854804330526803525126132760966414864382026214634176705439200404835777379824202615867539847823868141845756595283360157106746986688422040320927212260626376488947861926890287880172460105934885093603797246364246659962353483883559866385879871843239136348682342872361237738910663416125199745387350590322906144031600063810894518536315166044986483662011756457161680644847145021621162452065674252152430648413884163269333689331254123668885382808580044659569645102730190433794163868684278205607497659144676596879048316938225833825460352703582858720022138095977842875030311282259441125109893811355449570400244931935393932497734714369390836931468537446601425222858524873208404759738271561019718313516594319074446372035253822316047980548673893394029739606605395968002764145431774292800034713118887355805656592541412966168513369848755722133007357030731526510427249450286422055255582324542569935964477497279477641697283963977291011998097647844831979738748721941239651951383571628351435784502025290406309039320320935709894574288529165681088875759892602949303547501405530554574852386181286171053389438449852828708226578201597221981511727481157742693679272616437708158419369550871336277056725494843349943612038397697594293343760916268511874522644771479894116315480796490981182605706574202945239921293461406073833868712502623592672839018128961860667498675004261167273733298794903686104238906572870463686888629147798405050999873252295099978326591188149174200563579764882353890569413202929687166985039192113599187378613304504868416194134905730260718478728943376233743647993937815874938668186594698349498907473915453558712055967664019655503978013167462240554018998726567119501747226333117835943990843588821742538369317828414686805958074999701625208575373150028596607735196127460435339343018545237595283672229662009515879649905254405568704667230207727478952815966804849481756698985578762893127904838808989658591929020141824160247701015645480062045875601976000858016469358059075758699778717240294951889134907527416535329729190242138046701428592707985870044763129894348696195931434409387490617072936000665452338958359547930248122627967740156780499327184440284934642255551815816999087202745616332672629080638679606929423368690800044147733868506039740275282390339590932810633398417091266516246910928036973256017015511619917816971612717916777663318555997720001891211660958731535684490038432414793941575547660692734417742410921151660344923790119886865611587961114778923850669862532514745127345645593665115846263665988551424589644757005973330094894806694474612006110109842199600621560882437691411954195889029357013887871929593414272134187379405198896789307828561532673978588124548068458747020467476774221650645974439983778148545008220172924864091053589444995779444161711154263368224768889319458138702177266558595884072526658657655029737453858947920366546995817647382630209203657328557020988021817931275350076004462237796364184530902581193323867190295191694136596296487182661470662901840595201864220379255206983417429204582207999886007649567513588610939116457787092297890877006413061495153122310335400964445246213162463749825075943255044847983806212564388458393090805595158123177836737506075737750866692341473419938564558818372797391644224233106290936684416681686029655287771087592259832373149131073571485821701001917772096950192428235859702113697765985034577880727734308259527028829350960068016054784116974688679799218371391707952155398452080783412293676165474744672538770333449232675126965802628633085328019943164075924698282149433698217515865758921727066485342555239937162357402397794131440831923228419321010262212340828045073990091914054169833985470529550782048401966475962836458344031761829324182035504502548904788265797491168365778984606296835687246061836725034772046301854075121828557880705423182550078582334215714337369751967249161708279720763864302976881200254934592895089499328989924265166643489166731557625505009109973245950058734101622558630695210567086664560569864610031408058746548147844448450773801330441790729913954128588646724752776618329216505077575901190286776284261045907307737082291313045569344686381621114726789352822118040356568707160300242209165926579722298817466594511957403019563288100003182084076916561709120789023878926909989540988899034555093398229324185079411801588063087983854838996861686960546683806298635065013655024644913002907382987656657570535187802761016794586349636379627973664260971002830410524283123423892567033803121543653968130172382545494087787801492134437386475142966907610444681700344948920709751971854780252561887465761766722967928794514513078879622040667259813642776973530609466327026927122509860697771449921175626737419457008060627110880142349134960709223664860012366103159102685473684807599785398379176725696933684795617468816729907914541093818738756124731791207855499183385358978179727746928503617559339567598673816873651712826997682985002034481746427718820796393032047064854729826568230380101462738015043122629377444776872685404877256462980525321173831184495374836712847663574344977685797398959299147596648919970054985602825117148401091374944496874836459104466182901306248269783287642674963000127444904959533509033611391311450772811930489201728395340906531556235464785093793312465690092698844869929033769437142315293277867653365524884880372176538754884619428214526514925501648359719352292633538873814484114207945758334622897310647914315929361155334200299117760154436693791713863136464367042532091747259541841936379756869040809594246596913726334395030007920117005417004193689356316648554662816139320961831776437285212414158961182926555593212855803021643823517093823601398056768750172335506422822644061354028812694463605082080343968851090318435650613546210408535354914197941845758477535108050528153860500947854396455988796411568954650402480413424133642644245416054606680428933422185125683533560624061239675595918100961325783716719329849265657598479890748186231511250603890279821212158223944227703701568940091655060160646034821019034490991764294774924072312562367881791857172209081721889037750891193113210510658174035338918781767144105984604713887964192166401717090139796102672618145100874896797180939307161538200730460503533881367194971903864415109435352099123724957064648769226639765173661643451761775379960481314160064612141267663232591039051344286823854630496560089439328130073413213408394305086279249443301930861919105191553489917614466818105802143728580540356639935225495540487476430262739582644821564103495390705720726673548516252129658420591812886840983407803392031861140082895050110213875073570275589525328800276830970516936135568500282364980460926636461806893950414037295688353100513219575851670897378774844960849270066796805514283144270505527537143426441850655802477354543864078967148290861053786053606255209170937798452268875835731184269650198265534786796156740722625278244202154642940343964167708463657386594867328853332174035921884514168723898060552295757235250087626905616508173580299625811077536174660539581559567859401279746085019469801049738220885404094777310932070148059503212400049017978912113112062018539902673934174913707111123546032805730239643464050026067590894474487184025567830671684204897426441438202101274870533192093450920086171002010192097025174312951917534054050229356842132046218707663190405509348286961627371496268250460243819344565449003590696803770122160717097268887624821602028806610669419605508319507276432573525902354134764136602032890098717897370144438986878787609542694431224610841934354677000715297448339479550832424993257631766973339582174063095413748352139116311984674037630831110014596266982467714065246976450300738090239757436641943745231622052313085909740296665009649957724248837099824679478864800209094863426901221177893187706956780891112884251134269042973343088366197592161612823637469504726473354815987297349715374792385404810422736472276924273195098774381257903400469028592511359155628991125914172143100480431362830375802823447182589838706721691224689448572884308277777619188815438338249425347282164422779065543349063586711485466157367883047977571430262365517239360320614074289023999800519049096150482728950703276434810554071703634501190346285708185951259398905077283836879595120690047759249240419540395702064634405832984002152967223572223549982660250369625090102689009468014956489488994949653140785445699525041413742713751010035137932215465733208097008989583902875450816467038286237020408846451963458292097747143247365888486317522113400224345804095682050476529854778107837211867063696178909105522852661752441734072164577387717594509253420267988065326071063191100783086196276270660502695912515482664113582117552880870107890118105735637340989390953231447370385646197456865842106900526705460645044722943671533750250506174509245050441363807048018035253027686643572047591906346348217514500814180157565865261199438669402311243313421178949754379612847528751762102395275388976257577618152532838120118522437837581425620100680781993847108849102351824748597520228267437570449384563051110585706533047878001628944357884576060228646528065911695064375620806885774406876321282583764267900720323127897410298609484863954077482697962047841022631163806991884600711427961591587162946275901687516562893566743947281121270297704187397847091512248306566848838837377824860144585202914675686614006252065234229872148754251576451736123031722049892873149201569760982269351980903081366824925745496931797528327585422750254340750516754463846151197405801505099315001857353720061340401657204505423788902128649379291940063627898937679203948541827102756028621623994468406479137630200934192055866019217508466476678167872562958433980378320051559172461266871146729445278114552459496698940293677229116683650575797141314462848062458060560330584924282694288385658164416980540329917892902132985169953119515698596954171383834394242957712153184067269598057417326305654665315448474495244728713774220641642793428072863081292203307768834164169341698497837802330180737266413810262465643794491592035946557357476952956287541118399355609501437843591760375234147380742235251757038310246278369540696584115820840159792757391272325316396040448641107771832079357553649186188200564588742845794601632881225216485803847914635840678843770558437253932291368314573356605898920188555261585908481529188940975980546252535158753774961019773240563382751654309541995942902705751146347072283316187449902388139973444395544146647792624139634962196307034770941097904303847142053094522593292018812979188599512818519922473750858028351200745572993281620500378362850587464784496385053032653934018551326322063077079250820380671736509361453619122114840656747948557285048395771212215166672422991312359103421462109881101771276821187834826019790395895050557508393692884362138923393807871678709744214113042906972702967974466495288663275833493776657858684873330910659197096179087379297771769255676022284682102203732511558095175030256519033243742957182159294073483881064834244912349667491805252369583533412044055009155686744843799722500976684888573824169371372481965684204672624581656343542676943883189057162103030348582641495023449477023212485376452561015465111968717006537189166639282094686292598977272991069074976920050958304154420156749017947751868151697155579136499975688739097819947064964964414481807548181333973270637460815328872763031324462621804454314669640895821908213994594551253081235240411640714861071444216128445578017663139558209236634709321441276806708246193817230598197265599032486994758949663035246544025597298151019127883851896026415274861101380916139416837862930874366062270518078032294749117914143375655946107542816424610127399594646132530230688997364040933696669941724422356918342304223065963489549381788325224219038302126999842582291142303425850467394857518307818767323582621551100983761460611696544671097307723941912441742350608967482960999037009610772708142079742377470748594081579492319688562453687983517245424366878313243198344979734939114869905014292755035477513185753981188815785900194263370537580238755407613093814374747039888678757638682862711530098556661688327771814128383838256552612101888681750752144187154512969439318683631284814339998117611797273708821183919957377168235845257897612590229854844983281756913611602546040076227022282568115222253499753817721152366779732003915762803246629010789292730880969319507406726681046650590478799313469560146365158882993765333636590994880651700832166320129631663527485842570760559874077955639926544083641935914208701491064052519753401213771680682954775800858430429394741561668862038966449296383224865823187721348906679833584866054811432536158046204263304689479624525557669134352249109303503883904595673541393189550422878277179262411135650111511444011793984742380138268901650671248528326524592722716754021759958988387419244054357778660655273467581543009427428512117386756883099786193948236513833139296685525479659046694218918224454677438581253894889713218412244896827231247724743813116878912587129190710731040730782049203767057562496005845641860081945794090683675309129143669682565026300833005535636199060843450736515841996012256675876535222223723787219758848352182149707990640283263428307340724078285574850702179218307020596217180638004546493416584657704002706040321753440866386699873587214172700273610342010609606672365986794882883970992296308508825986116327040316853823574948697682093439443039452809540480056339430182134680089516848063611449296656368382480627060849601490659814229466827093053563978478408685674932528707249992528064230510677007533005543781372371190167564352872898179599236521458147557947348728654920408395877573185757455285872652457374569587711156915875131989049898195069248186286578786033829627523561054880581925340251376764285313098552994910668667595929953644557676998593593951513631687377614970515003689045651392433976520690393855331408270339276586750866686434020524264613100008228473099765404050087726215777060233504149256283465811192103868875822711439088312874185670557180049420049439787608406196517896973287736607472238542058310803096720789613382638256195725973182979868201806436218194516555995639206804599307631626571475493250580071231384849903293453060058273811699132363214581837989386088659231305115289191206972494267732326484015699403412446569935312578059736671727120723391253425556225431114853793727427731259496433454030476318160735153341005335810021614550128714935578200776703623669804135834853528576273321311237405884717507738187567078040855593230980288942828565006457005570888053020211536647945736295695833865445169772354957201982387013538515445103256069826920355339607606601872430591186288433847803834302158291044641428820543757280199495754939352271146207469695948879329427325709903971563618374659166178247752702824095335953406400004323280525347821688201318638273120702350199477589347043593469992574060314705916129263724839885383594246169574424052757074539000311110000226504161501045165961522458817684751090082669871279884233763493396627522110761549611050603909014439226615218566606731201524554862452592670452397158010907378232327627853037461037723044720079415828517642353982951965908813211543565134669806284459518207177659264563885275994785895984892443988263486033880772234048129217621594558155153192420713718605425121075960249431225894123575135076086436712103706781956221550318398235782361746288110297040379743623928035227918324028436015993198384917186730318715242239526217962780420393408725820431572845646081358014039960673004084883863270382593990499339257950306450514178653159010921967315328762302047954166728936178667130163683851302765251396470103352866462320155282393304793441598601330723924859151150263871213536655338227138584926121856724262561117163909382746120373451022925793951274904294287724391769786550120185886568845282290758522002718464809805231469132370044328921322572418061182579423206251186515096568446786485951596967488807770210495520434030885638141814484768644180163652145975789866157645591406642296810718798617185679577679335788715828858702235768133364204821433702341952895011795014673520411685756083012438806703119343723865173496612525859048039416301028678176860074975967084790045382292458619775794982868422185518460049611258601424779653425213701170013145976910668170215448498774460706388140821941362426780133906353455158227790545687107404685323157159075133026350839277988673133840361778737298944838411673630235163514042341840746548310635969417684949430588999578636109656719441426374769659315226443938984082692726231815680517972743037757735132333834780877741446879892891246469896406518578892540639543157761619902696585562051866893070402178773635565541396966151181475031207179824149303258988204971377961248075431116481035521434415278887846293551738089934200054515790972768233534228053171315358498822283691596072979294436114288255650449562490658959129203370469497399260411387057183153071298224242320805690902465372873897262610572557835430877342020988980367341603861245352761407821990253399614131765025585555293790778412869047524465757015697438120901455391191948249298647451161663403629229453805692863995269625584143692878283031420207326459459633153645687460724225077676753558275534352361663023524031808906396334355777030098817839872220567589179294362011249977160178351222060772476074041684182316246442067430264566648284262601518672680636369814919859392235931325517434845636978691549474723597093144876323867859899727647200072017691958742787038369905736998645277137961826493263589404496566739602229699245609241550627234990934719464783983438849048456951334620052148998418771834528689073289721733685945767056363587211644325028486376682538182152833594760796144470637198494222620420305948587313127123761038150978735421656043791556213455226833900408803045124860558852993791778130866954774648298037887727590533120596387825191526403889832410285868324210860693986091249885738461829948269458354952157974574804333799749329279780014998695287398507378818736529151249189410656248492242910541679895287862569799689982123283397404120314083179240194234359180207391580155474294112107496792109123564512755142880112451088496007338172654448253243802428853677939553606320662968222815267853466655364952949389353962881330096817583677694852275307757364742244748120328660098666639269417230049577176568854947274009680018270926230769261378619837383806055153463034538287381498730661559767763126752132631848108668085225730059621604937027322128053255147233249671932585043481707025933935484036633540032197688183419673809400452612463585304622666449353988057496259946208599607988035728450659225111699441188032380873875836711777510847940892695329665930780515912922508077774709425460642439245778092155576216939662656285190839485961718217435949390177338252353203756611402505151053749156812547621964995674475775043106756720009281691201234236557903599167071305985209747262611076987302248434567557859054137874236476602967170238829264414010797492899299449198678900951384204785292959745066940423133647297998398374256877164999256318704164319313889423214729107148484492166772353900490177130575488801463358462792154434763752958817092675418195978749147433043962437400307591373796943399344592486265127187602963889074022600748790142366329917664402785681266793876902879788733794955805128594013445617253759347156010437817743891167193994582944004154308624944602920852652413622153461598891697474483752358932552524200041531901290432259202763146479559181579488905446760577270678049786917788078733168563576100533484928264093768059161680179473586289239358578517790837849314913577872180594399768215806862136724533203582487533231612337779113516370225513532235900902227208392953470861879348561419137856133288111578264247310559508391342544271202929283021912099315423873976696109613656245299832868585379314236797670226251926451384899088451748858816801939429788859308294279830803541948499443559699299340799307625967045425010199200868627119911866519460148782815372421983541155454674828559183802923384846785884224195432769536194631354254469932723061135939000264237906968951874259083934418801012941073507484120979294197933033815347299146701259455414253414570659007317809980159905951022470244586297448654151082519540852040901068271135063012062926390508857697238790549653565872115162807371054447352802964305979070336840362841453826328200642579171261934578118613869540120486306045973335509175624574099784388875644403999119907080247491874188383778975320826213634562128010535560528350994086224155975667969829517796840100383561572799861296236487401790623845664272089011290347136763107583899568713927801326228823869810939894392924939408470951014920206799983121461720551230959643836309351224665028819763728954858980955981030345739753906689029324251033665697115412486468036771446044318752029424040053796729150731014702460639604520403409004024585774748614908098912664317157686550011459578251015920110215452276360327910497386034937238319252183315388221132913184608219431881448534785531704380553329202388221415457185090283307064087090234812523341145992950395222234298175483119603490805990460830334977162902959856554761928713517952465428988299983114489176224487820934599758656339539140673650948998682312525183417892443536168125396817490769006813155160843053370750671154159265741298583695446476723788538927844543616520762382035394302957289694698108703453244687940186692067058171759431970433768240776795433849477425958930528592947537984030747492980162706441788040318603378946886638471109984578740146875570361356050027129276310612918612741219887139998365826383705696864759506642628126565331490781578286686596586140353228550221306818920584606636827211654194042820847057765292496307094608038655170630715236200775165097978791143182721556554858477309246898089870973935623194193678053268530945570336550256158402745333789998647609082917429383616446485036232646116950001857904299227680645536497485768562060318892347753720610562213690498318929218385458142469194457225145272669526077172294478081302452552108514830732827813648143394489000964162785612387457374165163563954730737767902730057181864983277336374953055799358850831174915295054886027226939385698986510645526647872637317109095578055277609745499767430714823520180770927333857342730377394358953060114634862404335284184685851716613671003271828443295621447911133097849735691701465083190285977520793906101968921805958520708585671134729120837818036362588470839556549370388309775024882194895885086743899787565712164917854793355233012293211033780790642738411714792381252261389351411564550180202543302670287428026331775296384193865797296856126999854772243580511500805189460959414720373848050476278533002394016923645435295912227898367868351284368342276744315156013235839346886562058372492168247716398676039205376302406521619225452457009258511675971968012774370616427224175802216310211432256260481858163863283689795512738913637168932370347306074593269569138792028821978941751211720339732965805686148071013998978572637828328644650621741126927228022194873455685624460066803578747810280066600202884073131724604086821399474151551684691541243786573109115923525699321888894165239783281218934570581626120500354144240756392964881183609655105063092618832612776582652153124830771330462481809773581067000746497114311017557122354160506017405197136462866563711976534124015796202126834215204634277247086125696324890910497749193857003240902065064289699748788114932740455998172650046490784518950534428601039066910961987769602992407075816736510447053842930613101459314334817898696481883367840285952361850508830946498713988319377976827004375150854713183185884518223569069139970708768016391652228203787470816282079902533427246765051729054218021922265744505293676788021403815337108685835740112046217744822571713310587097677349114078179306746695061165434550714960444171724378114841008714426089373121659456205230727254015900810697968623883580090160444895883692869265524353773529721073576961839301966592974227319810190929694256021869913512540149813987328220529307598408396732738096995234564706844900218001829722932311505615243690573912088443414741536640636837166113613632716985549680377679028021226555967547630487133415094066654397654889644719147942527606326440747939932019038689699558100531120977276791381483747556683425652851742641582170461846244576321303087369431570927028218741076565189278864826821193380816908098199988126287763232369912676168901451827335206445483691410611910634301783731222132271398292702224130613393070032687481381302780007015836705648174779527876868832864321089190908480301958373833673401096811368317189936633850333089281827827156062186938952815842496406190673459410707891830131669880572028988036143524427240858927403754770860060651589538418625004791225673249099435075068713224306901467490370272010717447186445444928514888142116592950446589671805714995360673638890503150293102422797000287594756282209076571818194059514923445042359349848920949505038987830633150445313751460398601312899107511836968642921367456853407752188815142125076685310893117161483792330025504256630084514735894332891879234344698106991487561546394479585160657604883312703587849074427820466182443369999794409149032736920261781949405871294514556448355432700821616318911525579347771415157142913967408913973921205081461741721144101358658512988082306650013585716472485303159455832570122796222733133292503849805649433882619875627536358544517080794537284031298666187655930835035568934701128806808308527139698286219297448087186635086672702085058255737923272040854324053586298211081745946771989173302595543967097611039496693450424162290676815746035818625167861374081055095632509959079898380072525508127500250858718956837866217637023204203769386251806343609329923555401708500707981898923276797308787704574044501435421386591298273488785727855212159082513496886646794230712718432703625854714233328258652938299402102340660602303317120123033167852287084345070257000514632764848274388302262681654264732783057895243706192197796880845441375035536552881773413669275288134894610866222177559619742152966937837704181275346621427597384548430459264107200396896892698322245751390241099395042098715578691012489217706989652988696264267560516186873757353879266405943145259714884968934864418975862073293210765364572417346365725733549942296798970256292198643701626127540436455510486565961490147374054673385151884257168176902195566932389116421455869672559368941270132794609785034270081274373393453340250429222646065731352845527192254247031790727385835368265394189909283986833971466241670709555918641876780631793260675090405877819686881847437880766116896574419001670866583474895506007708883045757409712791508019607465307298455511020976897764705105025898367264483396595492776570314617203587125702259025649985457281759778128772832953710158037911164669648815837754991737871652830529026642621866284073507837558423451678686841126333376952839609321691686112954714400905141003257518236383133641105672108366622216687156849663180668888267000271915829243581102231191488335914374391466425837212393594437047150098803507468137900953955544439967633490369510406986858994296839221369823527236157289345554788176382258466487425081596704041041276807898159846178369338894022851919347575897128886468827119815495220035882305939075494747885720208060236337424700252614910589495801204007841418821482611497671578620972101766136572518304369028643817609874088559420265714634797739643111763102991242909634578706254910514103679062412845192465126640052205640658718712706527907672138534652538402712166627006149808017231832216657576541131121567687774666946726012289636971267308843632888291434178836174412566001884970665820126728797789096067487427401707406686499620650654138256029048513489571333079334871198148927769725788740746563453243019824478964338060354538592904947649662387707593905343921945981724898626856355699417374737503543013042042501312842172298610535028134090280541352779521896207155538665312312810035153297487916158748284354296124507016915719983105129625122158680907374715233001090730755298956191545869367128353421375872478609119859932214328511518432558407652720353592260558510039887930351520664030798766512835397792207422810915212301653796605318068386444437753981511085938603814255052104362960674171957505155478919216036964006789528843640429309577344964621842684210410682774021414196575739793909235201486139100560405947002041536809267488833822643835150189622954584002599491328563981164952503320893105438802568046702310620142981434252564129786555504248036493108635267963428375504892512301775410632125976845475878267496940170824765719940650458342396768288190601423401899122243451393374818446016872240437578020805265272438908646671007022377890136110030901907234768528712031886996111956619072565023572007865664088996196254297890244608360049553808889752278671740274702446305546710931376454537839275850188577927109697049511831190562648123890654555379398775224352904297437123469023393871029131060865049384744481339219056575781288064490330193620554689434236869840131109346582901537156222124888245254796579743254388880990518002632148800982654214987104356062510508406921460288277383598995292291184507526057577868594447920552339034338842537927844581197153598776003365427247561618890579355366504971276526801770777158359132019698069796683657799661985777476205663285231511139063356062937751892447423569563157136835352842888593203870571485573674593698398073986645030353009283669984784904712678166132427506323350604727714200507198914261037239485617903626550069820385003180119633260523620301036953490220359158972298584328557177660762447130628631057926793626752078054253878295550373049622300235691208445343736379264337714096951571117962197584266871010682607879198204045416801457170647334626307689413877262339205942038558620116335955793258156719052612970302685803125274056460489064722231527280550445999619127297688494378445469129769373491356054858213895362600266602293110093393640550840459745659771853424914940930760462556029911346189061871747940029701744427523577080969517922867294053470681181562178345751599283617273924172471058591848464923095264817349144732980338910165685344367508143925301248603326197635318140151305817458696576641084451839884237864140130995644355598147969122647704332510494386672960079220380214349235672516989484966411777083753849988520504638176245967943023751635099252201371533140745815036247104026330118186014225213936101941850893326749608301957283020262329756199686502315704101837490781764046108661589168638703840130877371202094477929979768632647632503490996413992624696808582151550562259598796477146353878225764333494279596048434143222383306233831103215015417977707253165604117807932081483181827682683802546246306428567990505642276048921832684337532035800162492538381743605130011499004208767228911612204256142821666711100844087491271752048988883330779736906085553410342379284582189195169653978370394775278663072710816842050532223700312268443773554169249543704791015271749366843628777462145333409100422637374631713805862168492823997319184758633288158048005178196810823544666499323131830081630097084280546918517934839531572921281960534101227511592041620420758552918468138840390227379597735742712728811723968742792615863977680950297550986251715168684323969764850486277354036684295187427456498430895717748688418973766786637772198825960955897593069739454424119734105737155331205055934362697314218932286331210363765927161753800549602944834959778687269572415239583212851121210869133866779346692180483201296739069888983528898836978876770984469175245034566569756875174638395506853902745474075682760653230126290873780158862753646985620215052893603945317724753073293950648617759956285545750349707786265982886081068059278029730348363483594610399286512408115530788264192952939479867194806685997872022361784396419119154476085736771602512261361788428599270186590112226773495969556079975515119164693699833236584196711239211341518493171906362394269601913711736445751920943726282072218942066960971186192502475844313924168102646292778801003979504696508181700881730686012306885094989168637061061064877437165698078713507857398867419420764218693128839215671527803445811686620692883330465202156737375918087683982523882036215270988125279660053207725614133467094536832191151122201337247254792497619931209813279883201365817968858499812165118360215371186488944422054599446703840239693950971448669981206063173865269479978145956854748560010428583221217064032950508025092239839139474975057630692523028324647291911686283657521734641996736214676322584635227970016478374537591960243902438196294933485402429587535291798075395518922682381799330962342279048208568802407658505122448189683324356498942551081187167912926528231852658910966268193006933032160604271320580771290184958492530042684717004885343767474759549157828215436249614106311267452399786658269460276693852204109046322541345690282828028162341504193855828622661582106184896610321984701290506798631056352138787166890205100078481065896126307021785509166590201853133017263779219970038511951489784948012225567269054542782986734585921940038207631826676299343181089092762901102755821205625190161235149144035606098947156832382955306381296139997181124434325788451434104065938999430062407459258401462844525411406836467267226527108865796705829068734850177721710839237811571051684817074209572841205512100509973857100305835415206107856906292338875888858127041898610832162201366953331940771019027785649003994287064804095007721803711556358619392685635456742623195269115412256440628301862072965238064845643541640571229345907797396769140743326674440169186012209220580926681425832618615728072281773065312412093233056486244825858650038477961533688024812279889978987596282527370862983543083226355662408673170242340590054295765470521069491557782611329661050881110748701742421546084529186563459590285513316075308696220743841065675746530428935691260144962254365026785998288601546503232998847945135150876232268734183009351418807856221630918767066877273875634721801560872283580858102986820114253235049509178355632118283886654458622540131689514134705331619007094811682217294033870909501572690561573759171633362888834195478164460833101724684856309308266894754264872315442601238822553827565383143585034015620070943512139558234682794072220279891057942712363463245085781323820648926900710665319160286514958957080597924744813781251837188136022288299015168022735875208737372006117822663775614037845105816360493228569337869645951693742926979620490222834965926185860679026700517301139421348398868992737049528503618326230925409527814461620392793550360073701680337215395154615593352095799536359730141513042799455377223557426315443119577684975185202111424419560032853111889194301962768343228877423088734509796302464905714062212029172889987559595668363326081740028567979790319135751912000858144099347749058805889037305115000909478205897410171007786661192502820889230729612841554783573000039813786946409394879659948013911245714956591493055293679334185557857000058540806707787695090409991616425374509077723001497269141222647863375463011924517152755437134255973859575585840011364819987211350001623444475443700345640177514106578212946428773365613692156199412267190776555134101000234723926626466631430802133837641132759672269623854365324081386145400238669112300126950130982154615121233985519457575508627484773026855454473641884088384603189590675350777740876598672117478493308108488426481371937519535619577184117917429839780703836241291738533043417193432399593528885339925270038182438151643097520463719364096424150465172836578308793617241577919533808487701767021020501984445165760643268290544551398878474739184594510124813253926638519127677338023610818541852999827473311027220828487044556670235826064923984060754762470019077143277308870740564744928517315634927027908814059757216012233462099228791025644787746223817498860242698633945052048105805372108435542343664598122958370350536858177095133578811877958438974243638258970543283940141531412504129781528977346858392605856473244754070134465015570516053909472686498066975662163690489595292020830882044774649525882045161436845149048641732752997174877921675390848501338244851980471158727835669871037614929179450776192848038764670839658146120515907712922000007368113276124484915707713808725373316887191097119425533005720629072202908556477690096893714047396442518626506967667144023436197397911125446299315191015703120852990232687907557528631255333950521940792931030845527449786432085208207370174044277562661866414707982820105413415517967386460465222000014792272082140771267757500021641229295804793942308658496022764265311880064619516803840975720164995312142141848775535927849694186038119490192794474372468671830433629008109624401992147427198606173375415024061526545440537316629610228754334043840433223527824457190519810469196674820428835899940066558076305573654977886401520698470512249639958516121647692817545827079677162144887429370462376045233283552884948014271461861897416869148667656822237148246201665881148693916972669478085002645195933942485518503324195559318547626931824583201807600243152587911732047806742510083305038076935105199000227162049041298317762629528541762780481835675594560762850549927863642184012517150550499261936895371398288318706249026686467556708445223733482499206913258789365255859784100872834311215458176723206994737977500666866837894476419294083251817249866343801584761558042929474565018285681115325542865160910608062284983908341010660619510498763770504971574975926518109969944527519609724321977834260797209391886018439925042997204873202676444304189248412067483574810951247229876286537568671561401905227893668899714545684346092606583607351914595591395552272094412031513828407635672587482369660955962778266166260318721186929653537302748521350370649771000733324702927671767020653266131346845492529191042518874124847517560388075673334422905059564183984726609998909288899468998492004052734935820977466105288648150520199068784928531148458665511306897599254769000872153210470598424479936317813327939624364618312222988430411913023522655199475029499625805159470217425593599882170180980918318590810351728712799640341172361909202637433516462030075415142359961544300455283941490995864602666424896893945677415938958040976014732181245371106766207878908432328762464240624625647341651399289844022152279280663366738015424137814142664423939233174576016298073312599047363095610354943949108463902628465327925080734439035669651636911557564724400821625720541719199907199866442846977500560258480901254900726911307410043372540195808473950121752155038627615135135109826332072721714121250749199068809063139443711148344385970070459210398596559657508363082521428210106417621871999343311049435890144616702779002651804456587785755002425248144705337121220264529561074288274112679364929342043152869675751260798106990092195047378491694702863158107779062640108718385529321061515172672762744317670136971424497550578947824897016230789261424979457694079376980577659615394369780988962463812602474829686605119433672345107691838458959719742948973087376548076026891508438833494710237177528801954296534413052816725820409708021908343276465592907958130481134682129659692389107651642813616380691162971763921075491229525922763273582058368142245771917528874432942509506282697562836549961170818793347152319675973385171584848233633885272223757574289908864430060739009874396906095370634187544579573820133921955564773326935600347007765784938414060061558446346991447475962314903050693433822043591855822487144298078259131588296781028007466762182719363370823763055002881997835193118753120885085067739951698422168563033040153649387630355971954800645142206381470358267388107259839864910419502191022956486126109859218251980043870775036024422700696057402282621393675550282824013457971115733472134828069602077960343434222647626119852874682219437243041175630996816772771867640879347096879520073169875157026586669417542966754250848361186045490038478721996696075909053034681963163269010448931777405548795228857088266722034636463526768991283911247983729868535664095457731830256539744578890832762725825004235363039305818382666867728583454359329144786512224457208939796477225219145445130317299348625541007417669432840615185559701917800884516241833391936357337998532695848879487562542143166624227192634394334333788105557035990702157351857211516281016222206559742119573037101999590957667962989065415224449996932042843117972659483880008537922980743478138047220146650207291731115782607701267236121509905620938007688030867909529510365068853093075229344464016501701237808353119418900313642853998892955341869634883740783990623743584694247411150637245958158200601436746450468090467962194568625792422916568508413919416099565876245725292588802221074245227464298092284167043316209550810551584491509799086962087909618590030049116135058270473656975867961328999386170744410202940808628222611068890072370367368948961907975141143609672987320482102943257820699858680300912969172099083935143096805861784397314939006921562877526465501309505019134183662714238628884333873837312446694607310847082831660977064026081459696702579890742019622635849975405340868220102956573020952674542675351305937929927437532819299590215050617810859809153010767365837333815622880453637726421452631118972794019516446621257084761806499934354235244515069827144141085513627170110846248386391649022335773592220012105782822190895141124087380906786377419994859231483242306681648122879786959704596595884602995380129082636497028392171902321598148589598014753199969084745065498652509588115204644765063199522869260958000909157279991179340764711947955657154201253507095102506116809578466400121837690585611747541607910158053401542716325492238759355701877719850816198478195056472568086194903302028535447301214919298522042975005721290800731541757829205309530412300990584871445820810590455503847170975665381720958407704013288183917921030664259531227206185201853398777904259721452841009714940640057461768050333492690095645913080159311408442757871222345954775830323240784685002009867104980483192094027927482106305133255050401679261001470064625448159947643197758179943101468973681347955174485278112675567094211657874717802008967547048038331156276748210992741837689720463801218426072177113021412136383458168629102361776812810672105156092113468823291359077006433080645287959341099219964871447935439854308071922405719013857466228635382865089314885503963139299901936651428864249603690208092586371655637806844570059595197728611807157065567086998169339824635517531619970478131205813312688262175970854492376424781641225497437042704606008756448875469159412146310717471491632943152339459817807452538716066266011808460333240741001818656725725523459147758715417309663751627375490393234968060470557565433416310023214488903554530325583980306418375786526436063456631495541476888914662233010788815039507320427458317932261352671890618029830605480832251836750831266732506296352410414457858469022195594610326940029628312152396938775439012581609786665179941488330792669225003348030377047989100290688593617701741208049211862500646033146904817161018764918637433872337833356557252190533040837912139358672415651496907171683799725519587901471955546016233320760483345220107737609366367964129709310015770987484241787119750467281002399222661795270682023610795655452934716885053803486998836048752454200578833841538714463749442692906772481190710704515381130683794338773556870415937675524128085285563437568700158338954491542317757178569420891371143587143370235737878378982196910185353609568628627868113156707805482133856790490474263541264456861610983011044248035664018956464221021121395351030823935892246688085779853005978234318276112728741958824949729406470037991970809234198278703803489787473556601141154441479864018234892040120663940087990774057767708407573855670245633432845848475252715875352147970716265768698286137640792135881043911902660284118276650644282848512663518793167940799057249222815224242384257723085375800933121643131916122591015505235837740142575750747547651334112902348025632349606601615974228121920762929346788351273572233460683598947869097465852496938343752518106428993248470153920768427279498221668207691286524973415925789989688326759292034187340281532271859953043610995325171299361400939661921905325718631869031909246328397866357561707240258168258582733261625597960218804983545203850948988031213783640448037582453112940309528160416174370571474846382279718068703319967138011983086819655127359601325086233168509087695773557702844694225911239851318629833033726632209126268283503156173419019125272265664672287437899101323997280718669008950136732887944247399416071623674473513438792258225870591815335462574969639062320234969297573115460370552886290734313649495726368472473342954703733521668656810923654907791952053132238822541148010398090910138376308767912842781363322874680873496967420861710942931077625052817355400382426222932601075760077006646528115686309195466416992792532896612480288517550142167155091279251064456115627246712263525697891948519396118130797794913788894413030902032664870145611470323011443260515902117405298958975569022617890876634398372761228838631194028129398396489999234110873944320937836805362363024921334523840631812412192260642324077909985247411739424147206043718311054532441623730277187269085795830183658198014599766095939263791790518791012760574428934264800791109927674190551967294950058920730170037456604495226461162263896674617580432030479252034872157052839254171511418685353917200621559563779752692686642760164734282902729203457974374124871612463058318636437714594500658659854943544214889298285380655719811738205278212874091164954336530839915195070018857084668728933429593261284722443230827733314599230897978204112424633710134067422158936435385538914910782285729909026413449079077343469055903553490070937767343814003165167955715705530038406979137009838417036716262073920502138187701273784856719561150649168197973364003790527102369546229539536660349940041002435314670900292318239173524441272738277987611457657092175727671005918432545653794630380880292635501145072915235342855654324029015758591791626901179372890250933248605706677214627857338061312405923699272402241366330644241958149368396723315891720998917723318902877966460499981639847627564608208891945443600790291044055541579743945548732073159358527370205022080947934445636900497488933478106859627472221751290163587652479861569059262434778663630486394696710982489476038115333171842832111129692152438558003824900163183948802799930720966405522114320624714246982951069397654610120091331566358994729376582256653343683942882225162751234342219953410081961147130758536845536455884895601478834381111530991430264901689573654660592248835849232537177318359852473235091675516877048970112067297626324173921711398907646701857927649617132047369173031280876267173355853604079047497075519120457564526447877279361426257608985202140177187677513384433211970785897906593393031454407450949198155109073519090992163923103796074837652640943743063730974542390685390314523720696785953429373513152612504275339723607039566801448095948262738923634143161166721629795158880948770344136402934184603846505835987692151479871266576330915140123147593030098343094452824227419213950118729407335104476984199970206497673756461560331312856837554759853971543952425254456316801094188449335239190767708213525020471692311460087601290654104789431104251550526551934047679257139522935451686411567280376875232050582061516485472621439459160084632280751763112415657582273715596737216763140413378073865622052799363790656447383458390085172525154482975814116504940583230169292108992371183587253504195061164237614459888443087921596060927037266101061813802455055181097527141729851861332430311255153356901307415664750947921663430401186838329517601911280449353875790421074718522891266974073697061808220969196291470486223833059007450586043038530318303257941429980579567085839102932143059702893747409867902064345465757058794577662473982642260029551276837617302312977112087107863475129049561290609147916084308978883835947414513446625626512509065360239606071132889140735958312053447978374737642210372799296902014876182783533096380615671013839339318406520328156498026085496422625939768534837836393374553597763797635800176465511659375158779320680139910189644314724257126889449661391711429340308089712874172822956647974702562030131311535964123534585995063008099920476007560618829359670837245095665741278483281589460167967765060615791819934378008669488968659955947219791752774494097070256562067334115170907029031997303056395025524475488147048554167563307669044916987890207662069080290380077131066443785728821654871037761828422883938953307958192722753888014706303859155110603177730819257234847019130521387968165025463298194161143931525631475354637032503653677146407644063842888915668664198286960784257181867428976917065124558861378663646658870702881849519829304923049769876133883193570038445044842502406937323850776271322349782938678554988341408199645792096649762267704811869076430727437200176356334045045570617008044301678558538653482987416834983204486040506653773229415980217026933516785813354059483820360892565195392580535090977607813003969290884668821266288543354994038039438262887011778066954175331959160183729586146746357679011743643310113684624820536032457980765265898932906684380951658558321645873810777411046546514040503976514740109965936606254246282407973586405059438290540843194617948991606517196989117887145744528047683159213906970637044320419445759270986344701421987168777993774315113510987451601763497218832172962441278855213064646708974684917052845871429983858153515885880054114233995895774697709216834946685627166886944496634980271475608545520948227087957746311448471412594272685666199763471297716141635979960351105967507086263955071878908325779209514435786570061541767087151922005211180093060804089566255899192429616252874642162762077853449200385033088543101308801661343404610087052245536655542808317475553378391607965039159313782380067895585691287443329748267287107672826209875603562742018123041040643435263128457988403389364159221670935937088320707411858680830288276317850543031496432113676425329607978975054240614241785284823559803459389503646628330034405713480600328129486245987036019101838502514004218577905249170604276205370795848026141805000881847477823560034094609495084840888614959775122381509947971947025541971105894099247619363649575732437019809850997739239470167449826980783779314805486115291508297272243759554975593993152533676872075868282536297751603052947474280068861199153118788479090956501406445382998991477699954028375493135431888132305838711348562261844089586583974472276133416646147983031826572403875854818983518108184563275264607666158362725342353929194671636959696163059956086844793068901367217309267418108186534774456775175837872638057790193246053674669429676196255930363853009358835139792357015082710685448243091974794424467557260038476137929092702230201796588867388814768177570272059141854254166267432593617628332399369956579022740437223193360567560743483989879253572242550400327397399315077302117782829383881466707634963051205149761130602807632691214735002764004544455086609023998186233904913849207160494747573367075660137300949710873758142855194981216754977990121294477372799176276865993082624923357128483000212895490535633814750841222002432981240574454621845487132227970297726246774018811849371606962787433514089112811584058989316064084336329972372119504651061758019259916118336821124253167848696746352467529358451356577014965370978717854151348560436301371933076109388873649086633194731986319945198230038323151344503317907626347134067915509050534340832503066674088662086892567477611618349792784223415882576622883331715990289685903168510677834376114845246229208355753354136280781037999160539858935621835993127399933859301214427167881407900424888227978508827168482124930846130435669902392125512269752475236930589100650748190708471521701584468823562729660413191671258787366567445483411241674133904723207284847644795337737752968219971905244119586838021931861419755880603217268791298090020581661772380931701281033700938108486863999994635461232202535017587819305388792845037425014610821358312390593633937905285212965338258175297808527766528651680369290406587047044374981598292295054454708140710975532452985754256770547757353186109508849393169365161098833081874972139734188579690420040467317060559283418712780232574990743959868247121709668878617028714651492203550035922158640984757253706678747421215829457017455765943745415460322829533718570904789104928767894251259616471598991093974883556642464144315750496125165328894658697921652180365866708958851833487807020694193631508122664928438859245388300788587630142106547983579708512172970664450379910893595939390047583326902285293341879840704998807621159723834278579244001541197377539279072259933830183596974411065222190693591395177008649984046761071802024035906626664472723088661320286274977631357105944636446613386594422575205945902562899056669862372628059947229849403777514200927501600877193493835445547826928646415454524907119165813560482364025628329320620831948436304290631009930859243257810930596716539016572965729032928826986445209503087284769858012857328698866359066069051218025229714669793487415693960995083176840237854173427439721618792201263128432725149523062597978902414311461172678811699059299327328135646401354431828421793342957269546357148733168920459462269871524383011449441553899149893817796728177940115523129338413624435531149004617123043963258559419326711433186669344996246151446188412276277794947587888906399314828172672745481234304104253337035892821077782715203436002991226890462148982025018771977166948489855539502117757740808006424675360434254136795199552098546746876092353514338659787342225146980116426091619650162994968182516492858276374811291978771549205349221977087550737922189508134048300422320816519797151344530047222090300665028692467440410809052572287470695346743028681270705035139181339767614982629304974025131812700100367603659263039298109243720679214268013198951532284566618646522392473721373181591445787006319821475017856146708566870894875140782846481023701179776015081879433844414484712869007657569834368173179133062079246856123282825940104767358229594721509852478654769041553782900001488456300683493615436575266130596836787547515379587609518637254220433845366633424296286200679010621142242674016164580895751155035905336617486783806988682068757244748354785692490249988732701943069784354947664619736293643298909293432032689242595977820940815065194234005561506013461717681843557195831785164747297802404229971256097527112277704500441264183350042555449844665389341423267028854704920013975246110983799025399242624976538211554012389799897686573867766954179971539199229992043415080919766756631192380902881504099587882124643667957524024470851007923581899519549330316710583772628617455869905804103762970201398578973884280962776193866169715771363673358443195047136414809008057186093201302997139097710613996485190688516308087826764494699263900089965260130776521984914469446833021997508923444836964607395457354086479151172610923598622976799055156338201195647656685270817131283743947691937983435230276816061886118710508253802640110775451488309445122637568445364818884879005047589523587714618756635698998463561221378824994239560813665586975394876947040982027397148936191164018591336680833808841177873417596197278127357773525045089926685866737505888189605791269001054960810801567088045553509470471475218003464560049927572963934174721197848173875175880403280739736007221500107483652560356893302778926475503919928845289935394424849503771160864628953672491897705802571386264551775212775073459693131708760481833122411701837339579562755586245709470061747401686093018292936283799288262933401197642563867750865974977811915538584523586542086282261999236581568481858337246175516734725838593356600408315496745258072777837424462313716402727626898305900816816614864673089515809518903923071900286758870674465398682736404565494221622280613021039001264123511720375763200853811951462772041506440765020746617053179985098091646325701244375516452463931043014912220666640772334186056902070880425753478178509268527365587492393675080500358201454538665840514688758957607727331598526025069716979090674703211702696640930942498501704042035245575369162655771749580766759423625932931381806796668988036443572422805377584374152768058201131848489393516316692015144336433984274807745928297670236736025315582451702560844606252805266160378391372390464730527230897932096105180148474660654155601042043660085413351489456722182854396756104735254455901764380434635322372662294419928720224210265952581416408867047694848091280112783979807088196972546278086985426249945531955127123293776932162550551600019398107533973270318552722006849738544553761747934385992119890673669638283747662517520273086992205883606366497764025600641054416869264148640981832523597467714895963967551882910558779560976847995856987103416434505892605035293117860132945276191984601359154651027845905480693786174045187338283651284574540244995227837972207781213970874037843743059356173728862613777546546977633980766899417567680504961138066684407374869677987872759555070739452106671187289397213613434908650468949845368660864268626783736418323040891972874963301535257764042298069179651592442776666873663631678479229199023087944016956087145622641782359430557614671398311745387337518660371150399224494544448795536463648763477750358990935233069946571009318137949913255597163594540160178914726975188478833412024653879634050202046906774240591268776030447221531651617349898676561480690693545812371673488676386002878634632706801090551390212368759373396797751029929753460161078954148986775655994285685321443470095878627200679791186399278599650697995060965064302259101771110107221474569408427402230113333254441393132033629120102420155268852645529358571096018219170250731129286219385657999649066924397321356852228074559781275798564103691150686082174304901553803323002435933070451321610599971650341444941506980411224996293156423023549197968062975615953938399995644531724513651469771554427868405343926710521046570637316733603325058438090093661026808608620489454712340169140193495397041383323744725678675156360133569515667819416873431144531506642312437068036230197981149989158603194127701551716139265988268284158494969725885300754840404112078876105747605658977808485353025311480630758169125658858319160030259075852900511161933801948929941943448651718412840088182156950994547727875784850182486212141581326142620405838207803756436479790304235207076878612415335491563324196805646556115687972887415780681605629273349177482644934234202842008678458986180827100311698794656035453906624405838090837889538186283545080173767872774528563825449291354629463669864393390541466831922438877052429237496494730423550685230162690872372804404531577417616281467855212407236006685729233430744010333747374865927220923526272147179316294534124719457688138740323805122166489200881297498954865517187324529233026417857347403827278985682144210084492690907316997484531622116880395959260515149247458798199930299473062150464888506708903987858910949832886998355017293445555793850988111532097308172869500183912646398444128994528530350315112818916789157078624009829782837826923989824355557547584702435156820325243521330598471043974132327358326441840963075135666429974308041483359143916001908860030960032512228847424797872415229460072203433377571040127606554199055995556023377014809079792936092409199739697719077539627068547033953430949154169987008351793918909612515744598688534317194135679979358094468383147810968513104618621765821576405029490588637187404338495155795806805560019390750350150105251114127329909824532361276303838175688081999585602620786666623554682292348520667404129393521029422365103911094311526194714415719092177473783759356806356050236269486053038744180453604380489806207505529265210863785023208596395771060063747811138317516914451917896211127382884026058998613099031258369883462396287721076544856670966509159163606703233227003505812412808783178148251290921345505119283983407367757876479291086856954015973546166613004431942905153679525838245724895121782174311735197552590686389286258578280338903478602689018238044771211220216315069921335567090852343062891920118276412951260645552217758725882072006678719115638264245712209066395433496322315621727509378858879474341054332237711862650419828987894963079901647307586848933260460032848558382651442324306462766457802382088974378216580203385790846137937260397514298055024527625345146303685992068984911859061937509791072668296364883305016350429817271941471562448164701967250492001706827705182451032730645822137393174022767575161076352321817195222082259352976014074679853374964634359878797745341313305385105628647351449716347611843810208920214745358722235659382342308735624114505514538885348866049349845349800567702755666045240945105123008899154556192870205927417684172751081787005081592513002162339082720810244743487956537827070082469102676363816308578605424976278418280258917042118848191363351731583194046632359000853435085247037155271053166130603998093955119849210646841173846703999543088453310739041959292227538307386791017532367954673051070206821828368847351903097245175053888562041133098672051627680671179547568811419452783321464861566235354761264610660805660703213217515114597788207843548506218325411926800489105423023382374569203502955787197810543106787647537242713419432672083800929511107824490855763032545260127643896884844080349334628476285984504669870604779611042229409607992195613495474238187353786909360415489412641068261088543418792290372295630383780734893544478077520588082517940751126969201326401957908509299016005530243216783694525394931274792289653538492935810636691993414193147580095882806393239371308104536700361714360907614064107331971864528457063983603964652092069144686120121454331957294361593373906526447620428966877507252127060084567419410801754887275801925787420562753311774159960938950207913487049187662994814340918140230309777556569854247524000804662866751943467499607488513307671526325106720598226888385054759976619885033519892187091365699645567138824270922520414600656934226918844544833474074874020634983955476541514108160052036918955103460856767150615051716162621637906380048696432753953972561925269370769472553199879804124294477063265375491094744274735863921989394131166508739314053309300669621578154661352356863604051121993244321224606762408842625330056877478060797074909480318231970656411977653424955142883054090411694045491338514708664653216626862093386523665670484797033901659750544335507964289217921028945211118997489872552179869674346545645682468113872009380068091573460756175574391186919056569404391202506740812847143643170287324455852377088058274118693695893257431469397406955316648270415020009721822979125407333919978969837747100193816538999754190177890810657279379199696384974501574556575973571576660461754134685565498655712967070430886520537418265007276965196150975094768416369704071488242150890037911228730334295775242742921555681341531668723516358738728980509988541780219579624093278238310485602408264016170060084649472394055565713603315757015551124652889073372829808820530031595763081011066434566135608118726063268026843600742175060267795122591994617873088542000284121816540301042018419424747999404752765921739125493951049416788952703143273716798578177418927591187976896527548250438596474592718876054676652515091133941763964473622033860263708251744712965507100571808355985553534595981304211029560738517181036819407348921388496683763766890589420851210139418472249852769813875921920043650942539113982995091328019693171721827261084110058245587386072544280319783678760589160776084462568334428799025037245983351772659190648476580684266098177863768063133220407273760005889355483819455767114518891229322292147941900640303705553615456692951753889269671485171517930953219538479849793697702008264392537280722295408539220872125827490328042434224135440692823640641888847565056024965267364834410403105466140137537238178953615109215298415385146036174069170446632474430318176382972238836477034902885997314372184288720662116719509462674494451110879363250163088896631830543487400161636483552463388263366844844781432430125411545540704823126441566579301662585794637097192527191819478079831449834661190357503824645395140871005413758317493601239574480135288760566624701430441015334739406901825614241516794617171312623263317964831361500484870137438006897754956814526586869521284735937361947570929584781531530165317394198875008601921805765802556454544635787321955370598225054430903984563006249269980084769264307547704097812916327653868419378854845204714172696627311457470751328613626785166433438501447199857377853045666374555634548138942420121153125727602970929653999219319326321435366369791511313602932580513610873052498292153772888584140591599551874974089856444014881237071433002531342798660806436621559912148397669702635335712592195093827366862501130378959858730454540830599888768489567947520142910303890848999466262354369928006563648606745353811415632598678858881431228182923022583214441786094402139002951962806679128546580161239589247023623690897708545306090136747628184814934920086747762629988215811319075061893766025279330364081927599112699604811122936172310602911524513230270018213738795660396851663348191852255622109813514672395645874281148744129924141156239303515226349393562988038628155923589843510833718716450117477735361754011610097034662481352557456206846329640030407257517141530605491487787537871785262748770267070954826384294092743598692738707866543852680126006743282918993405733953322527406537778555410015008663005792547795499621717385476030719980171293428552228651987195884261478631673735082465828311622510574416533163237426810215280135958618330116064089895441660015951641522764697241043187017076346840699474775055038111256281866578207345040524047092286796332820123745734687346313653119353634574557077988581801211909216469490175402443314646230559131841654241279648556023673422265631418082674672096978421137579199034218923985467577034590556793391721734584860245438797717254201360193194042989643301697194461666875718438900365657534463326896910663493629596675257605089870819919982916532909011212480223191886355398343872573900049963571805100594878090457142845694885454608550331614735054908173128584868131025524812281290963303316702948922016916116383254401121299168030365115725947271569179047759439274760972704580965212769052525220534907836485626879079369599471511169838894660661987592070633874803821868793074511164329906907055982234283361955924361542136010755939845529138384804417250265304527065442471678161620354811224102691404399977388156062135318143138787072234779777699710206884589562913408427533123805110384496493198090052756044449365405366181846284707143567388318861662869405041918749154342674267556103588179788875636346647348300020894924314624617571902008722284162093383216076229191532241796870922540242484516050849432211535347945340232703412671125607753532483104812569764744866956856843218139638358560567594370727930490682836161002819023011653421420093361008734382007478475263074106655874390622877660036282749458133597212421113407347271392536810959778700866310768961346335531911271618858472792644865782029350528563774711818045522711537147217293219024471058297476454279153793440223758437465782948812893432576084095945385207967808608337757758939261553078604570005714256836851897445923512852804567714033168462208383931999317049149940247273142437210549696927346074510300953144938396194284704232301835617558828183131732021275487801446842197742276090514217345306668786060042385634980735492903968156369018215232277862686650871979664091818420365450863405199362589261630058940164501825215340079824585467041601674255987819318977062003238106417467089922712795876392536663848347441185360045685930416099350833518976378957487899104621541347611422576663411788040386852041475665842739416591967878907420528732522025468979469543610761574862296897586014787049988193545630649241461930640368345985417805953526866774266176399757226611599808253936262712380193474834990303073249826164190762891314240087299882103736509340883199562854223132447872680828650519009655690114592481908960956219635195490739904778161462184192549493926754468440990231442238018817115615074660163586011374799144977840180049666717365098827326618067508467115676536804212158693795429316195079412402057643463375356185740422418137430458173518521463041436956327738298149707501552748961732431270938625714779221611990904178640839767009427060704123267509658228029498474713063586779070091112703439885760845676845850700633281586325892017961084259904290840218501571476628636653235147223680948762427673192026962693397438088664436320271691250855261485135222699990966364050085290363248957676025588042606091772439787370083304668709986615571397242449063421296261585179444670610295273227944301882046368454963072883999244903159854280308249382652317558984057338695048248606300241749614731726231628260007665173433560494018506364222012016181693121768170610924004996538644508332633117489423662045340153386303378154075033269121494707408291122393872649577285381881431982361787880542017099722596968139297908065463567153913412935271544055024142502113738925058745211155258426604939908345398691647615175436644791116704080731158712048166749588558000714030632951506415786630316967570821897463211429560132637715389764349020952445449671125838281266262977014571964720667763305107937369732797474016137341747639753723653183587466166689592307881195883375611687144826163246285840115327231402271551079275837600959250537208204221794538688428608658945654055989579385910999316703739713950487132791799238534964669407931793564739864885101637838198852722172806408561487000433795676018149816090337758220476959144323370763129436163160740198841983671892841770228128742359363202789599765338894259944091145055601437113725595079191498924417190387653267219673211278687053419515212820710500868184964099036424928404710393170589842524129655343506458429347632744191717462804746988180378087484963246727526909182192441045406332797149925938044875439560427111240166035580999745877356262075695882223437805930733153813533376953967661152650682762992562134610157760293520790677385952997199887390058484439795767628901957289304659688982420294755525464207305748068767383398677501509004972215465117276691090286031351873619774839106465990019988931987636972986540222468395866792970609372863494575476449213622824539284834897974970764161721251439197606726418972996634495386174811078813081058135088249501367394763375834491259153641421443259803449196971078234759380217466512602093639435140428490925377233471230631307396139312532852656873280170783330127370429897839035342476567023966445349867263471414748143521998252446455167372401249566276922453892333006810133729180128539404423241182166187531853692017053899346720157973921895991765453068386516565335146344416687339899866344693433940189605860116343396766674970924664072872323053999043473074994848937141330813745938287319498284455393590003851826807823335433385042103248371187793563022442694636251807377422556327330329436084226281055810535089368137863603571786802170428755240417301657296145721945606690771052043731823888811808504279966746826425177686996537624875958012629417931918358735942731002409316489460307750834457565576595989679891694113393431964619198545735601171863768881451107889643547510611776021612922528123321938556984492157490740685507824881775417858267732756914732480636997784799068837184014445773105578534625191088216447651015769155636570731083828123304840505476455090815985471301907382390712512840313273744450202210878646880150597321215007638988492303596923719227269240224027678324689458078886979346612481225295347249036107119120314440226527577191903867040877174935163842334793068622959181092429709275402508687228130225444233879024967984274511027901084755222755796976057352823332491898143765185344911628744812253831153425402104300586291894262480167533672400246159794006312337285632605418410253880143269238562360287993066181905206314457255947179637466893208281490278228916959454152260729911128517568067982038003793446433510432807284565673454708467329716076687202209932900807444581623832235965921768374256266807295082273416755908247282695799460982434880515402862922315917851618355001483105655898871119275300537516458784462293344094017069708351948092354252163887796205347086776547900110322295795493076452376938161139875348743982847096642235975696607846049827354187493182461993896184527669555196692542202521055599350633055009126154556624631952552264054742450513100350563030260381658957601276335043825337800192515759765805883543418457961543242087213298604592102951557095035716449565015786263610568411307029610538523470486560241844447510868464775796529766965591671888430757831185227920826182697863331035697667043702209437216512286581732605205513001062574066522274751331873583524106056606363050496713876541743350701231767438703926064861524508379691760001484253518776561011431946805804468814209231295745129426812641253824713596303923962153458616306359301641146317035883724600100226619013958141104716102608308454353572954325487240186820675952255218349328817761844906910536738091865343816793116749942998770886252738488057386672353979086433116468984797608115832356694492112544349311044617177807456136246832596451800233742043637568380744526008246738319463479471616997546276375268838073173135113779651550577550265940282361973406804388026897312882341603217657416178753322547852074683281914044905297663262116152403760659894105597051904392060697511474036335637513790309622884953860375361438745421104928988359322637265571828093819934845060181465629504017520179171188710352720308129789153943519810509199542730392774579764889608796826706181939264283003704451480524036144383953172212052136306455461153779605630639494875353833845665278076703847331396449840272943333219498284698205954030099592250596220169046167006663830526642813291435677375305165912513751112834542915692664465370331373718022842184162044980733810578382540787904095732213172016351088053779223905363637915231054421811376253577444750900829261634185856042889844825938073997808715475894231481498744078627946999616965754685147981173567564982740027352811874479195067249304861516523890811115743482626185532305436022555550439894888388350436208092560565627084371327535443447161669722421714661120453791496494335116677746103253958550221270699192251857351300564673988415903999965927773346128935286468553273730022246703570614923598651434410399980560700160476114316290221580697068240043957081522114105223511395014727025244772690146508420332487674762811058092546116074368061302478973333057513148413749784118545867524656561773584314467445174891381991263326555255193132086765711729905288710219795136685046908448664918310683184508374864780242914166206673163519580842469020667702146156335488830453635008059837422292955760392500686106978224680117349362191805118365745343032269098725209780412833319186936117474359145910061119287793612043737321440454261664547918441351213227736935679775489484067740662457163383762869289823013119887589027122004565455262849112657549937281426384504243734149691833269253770994653017083582853924738392959602434487653217157222741961158930860446027337677872474386315425605122282664320113795414389273429819613870266710763897158742868365722583001527486142911750403065920726382092503497566654665425440748811666693222661565715484089946556421487424351371504410167801882667577356785582529603117005283254712379512937308119492371966867084124480116777885309127862830182755733723444195374173198991559686795364898446121931570367840173347045487522654083999807548479793503159423157068805812555047892205231593536266305142205403282448739434770212900664233858401670408991607101189352033675389830293071044610333962727076812256192182391259597827945763454508824544015426748196392527650639152815848959623491197943097981374571382646747466060777974550721682761412574953684082966485264357397150022081061566574825176066269417897970598252267312233792463555932576132626673782068702999062642492392403942640058752675435898494421898362894949046224307511190604248140602646320266008806261330790267008891331656436707287531116951790759190765141329693875112652775604516498449658115925027158327612677426261497586201654926363835898100808729409945117105416314228635857063219599313595918619378167810385042075191859183089746100288829704518646469219344503380014322987673669802307535408905269702482707621344944632113772400405079705885367327816148478393779818104129933373398486337897864746062526411770007893836664688217301804641496993899266042753752070734523241803590919465633159071883188953273332968250528111159667212234810616318345549609965422247615894624935056734210647652047922261802165323945237184648814447979306229717870261057029959998036345773926876924539058512071171154162631718163663359292645669492788449008143496241588971561715713136123756666995777043084662478935397586281161900169863372642132042826460470507242905966895339712003360003562383938116842338826812798063143037085080007279758684930955012976307983022565976779710967544374846440445433279260367017934271794290376404140832250242032748656886087382583305697817413575904153094651691097874008950834688457420926393945871084448567577016573950001064619138167653553216420020452849459234335658021386731569736468018324032426682705425449901002698122592821147351260057192068174390582987393982699573671137895968651636521585434045025959550382184981421743466821510398596834928740637964114117905997354278295967375580122244126384148548343521896645138137502639757952048829155622420072913963771857227471600679256320439814262124230974364648830814326701871122130512871310712768273532861233046976133853586446525086435550305319349047578871581580097608213092135077155283107509077366489757516621299208861235188262757204704390246135699740233972149067852590033375731786540297787511293615934138688848688522720681707187025202742502454338029971048813060762848073730799521837163505734820875119645345774091702372653557364202891701284588806057588491331816648667151902651157963066214234578153844880033463348623528234816009378335813219737262153725487746713286597160244499932230309894829970194346181313645937707865543971262185642053536124499563579591201718783970743040614721134442885460170657960832353106501395483381796701213275754248718763501578240335696894465869484847728368516106279491064843047576998361100626013632797219276819970694660093705121181877782308311795134521795079796454433242955116840881310127332654845666420435279368076853958754209219409401974550604464938615419427114410870480262921966829609081769958427567313620465399307352795971732692744296513576929644324057480014654585481946461421408697199880171961208745230347933669003693540424751532492552417616895876308288656092872490737096652986685358107461983668955476365695195285776657421298271379614114567732711653305789980956241344117478214174224374056828937461603429458191531364855156423357451375721789275126333947795431904313215934070635798762764555759620241885181416555862093180858035286940990971347349715132828551078149909884234386782261225672579913111430216539326931994593818006963037641452109280674470637809518552416968262787443737815141324440038924089616274241706688677145998225719544805272499790956746906288603744068336487563215493325157664281425250790760997406161363110665293965731856110478710141470499596793239413380573068945000955535882829394980609007044789358484763017825091864385740058519876898541636168051960523709001122056251207035915751802831484185112856707431191570928970066439049593935615390322590475156985812559593539187001989077111085870044014925768207073299020143171425323467528605393361409691913748110503197967944804794054521612511997710583089373823371716271719001544147245671108291402007315697903710543718041196221922157822889771285623671164812267669276263736713205284548212311288405572905150550982810298776556687674347759518963140688334934874268270140464008748315349872438859547641981592798998878605354117800978979660498389981596181930930699729261376790165883449806864725385061748911465163213822044265524068148776739680025578180164012731443729494491444163323594855328257327227896332659030911170882804596497094713217457530825525867121897469033171802785662253168964864071217314554380512933717254633038752107716953001595161450448593435327002948210803674446913445448338820151972810853260337509705709024658136170379438946703594479767270563479772162139180056643273789939511652963643776519358105595721137401870073879245788670901948843751378954940197213010581254568419998524328193756501484396664548641762573080611045645049972336180614729372972701154030509137151196316361467318455018302580872484093682055438780126291351514841891833554341374924958295764781492165787985348562598905731045132276470972293668183683650444648446016343886471596047486735055400389446587159895667968733437459041004614791724775267588324141511778637814480980334435958700951742154373913876796083468628787530125085182648541169204609969957475594717428942231871603007146017249012375131130789375987722223722676944416905764350789745212622032311597178596139496628512507119273173072935262536007450738629946533828245888033826442176482642598848480604763845670932381514325589170789753289978275404783156901316597999360931173995703219660891559250079540997822598590623747863131758630663439702914462000504437441044688564847245923884015526651261946070896889195645550350137280687284831760306126910006234077092481048931972300923940142015002930733916286914992739802087711213490589639359199633534269421766054479192108550020902176822365561871534009168275179097772020384530332405858020201554753916937640375269562429581885982993801362221576499130132507572163553474202005628195469755360457625380521042620927944472398332015870528162713031794243045992407074532646427325064979490374784292120016819274344969863536477711837249742557488807361389763167538326781287096241963011064241278804622503358434074221038679375568176465103515265518286250062630079295153956077629358925974638130267153567757556915542149886892106745408176601064470943679648063281131468705021786200394008475687756388239520938216244109897859398916936622424549271534808933492341695024940180139838687376386083264497110133892809266908818681970380904525578691451785089311483520432217509091761540348120280143948687437439737563537423738942915823426864604249904591692644829159323506460046089333986944561465752267653207628049973862043939037888209511550182074660765333747084111212684222685443009417913638366992127718144285794125078239566148943482168158856695013345833691149163473176314361425787679065287934151654412947149427623153003045610989830110613219237674574146185593118370481171869180604299075893332988442230808177898980894780554715961067461440605044913506125752578793951731127802250492957545916881765144693489368989801892374691503196009356452924424067956325042967039019062424490854517192026802465493309099856472289123673593842349648485415114452516005216959166940743270523442754403912208098776859474765588805483409526742958074620481822164772192449890680444738794886007863666280113730658413454305078349007458188104361983818810061396127995159458300255993035941601052756453522755393177450507228209888913432806972187237040079789920496369057588078083647000849230796482490127441201735500462850970036292800621352010885214830266865389878332391200070087850298092226679751608937759140009306098642114650439778056321566095112675114773076218200433078503368790060617632913383392943067428286926301701053833572226844420482836409417872853763735712813429020102382836832916404881340462172781786876684244401462047569441017011309725818044817731776156032611457535562053526936112035017113234755729539486510033120819028841844723053517119150754481295570072275880567113655088155439550990818897080221104061693778387395312646539809479116334410797447419211128637726043554850325083924948781511120819462329582530574560584328520370944261619226287262709973506447717866986986068519813051468597684094275169723127886270040285023080416364746827227341986543682890316634518626606108267845092418274479926379487255592912811750376731756965494806091346730495403834805170486469130964166150162440968802029469470430089847172741501340127753332138567123712386315978241537331109013075274240552165979842188308912217105010593753420015979186799337492649051103389578621403043623610854058789520449961527489087466284487679637923161919615943490180288087816721619513342653150327720196043581729284231880834094876365098674613186094844882639984289438823406265575441442304343848630538344919755827174238605551837790969458461291827955181210567876315371823594102672002164355087333310722023840759834616248491156258268193002110220329051905325425879345165906708327508043247998533269704545146239698879962168545627933774287646616697506527739709586069463579929428180268341875451833999831964450643739452629148161423207971572883614982700340151317597764425876474481262949723323553252522617007284198881342183662029727931058766237398179846216884729992930115899287063791657247663744533868253111800473487373369943729923348692245003150926147176526994249593664857643089339459968326051331904196029861808636285703918072171054161147609427459580218801012880876075520421001751934399019921512082301932383928013544715991614823640463553322952359263871000044912083727794458338944983309693458990937429356675567747214660734410942855941625512383950549962519494157002413864447267801259509097408990064051962608169188015034565343318016960296187038912501145273474736012112083326961518674520139653344568798536048211317085357340851973991100674644976065429506767752744240049521746184012052170842224160415179610459843137299965640617672244731674184021327548985517776507650221390868900087356332282559910789406921556800904972990569135604934327621039436672182196112995180942974623648210012945354738415678834745487272273088310331320724178095234192059589823734086453031109862056566753625677237149799724115032358142918931109147328037613098160429514807027158909526218902016659886437966985540996844603565627172264356772749807530044067319328327026160590985393150024340812143781382446882470143717604591388001833821629892383520477834349874834499505919500809216748650061843925278678300945791590480130032163404523310533545235357902924002657896710855455375557172631216079314944725811567996578809822009937011466151911080268218752869074973562245790062123668209103457709208837542327408603730299675824167838511927522415519175888303717541640827702492319179478431205725788145901832930686757732737516852788784762537774217188770483774699645672094863949870270729444437946194110482914788410789377918374811331633355231584636976845170882783272808342230569182905578613136685258347406713630970789493305833672653632188693643860718172800769363968229573053034090894949065083670094609287913759877089901351513997154470250301303759864646110848942264725478518562525121344777068565433060853410250322222173584239592246243177111912293612871693060945533914387398194953997147958214052190043964369308831951135764396328318564598572338245794103211864507438406165585138935961346197414852221849763605180577944906088202315685245681834380523417504395633298145115955899374670950250705986514688733858334567190751072712600150679411126021631940073817627300795373195171981770053511567295218018975166505697669980591299199344485126045764995148148604143574979598319286502127998961240768693435091866356767093786324341282493465407267433866071521856679152431855852672487316544274448734755836654613900592955721279891388759934478590850822704890128851942831036016973330934413249859961848447910759476969147614204367337371721962983287340853940946210959226046882585953340737366478609048645176238452651072656936323449713758254086595342635969283753820620585663112860811751052345436757376196923426966840002416838925096224041027178583588580996808367156945394662117145589011879825744296166361591487274453306710483656222637282517172634213262201257603083845761196447823911488991343864941313635721641448488359649607454087424138328337269449901392839914647377330457286747681553803769115499399661167371548203551583538275924497470416628803177133136022845628019052168100144775277352545281311383200529714403914956710191835963732813643905629104627558676097556315871642622074088704956058211461798487406333396978211728511953696747405430763962704558053558743860779937441616209831858994666136185470532371663294810551116278319892226135911280674459306277515900138233345434992592919582829215286842213476354503966055164564772079172406826214869915435628322818591828212705260575262861153556633767856554372477607984968686249566288740741376668698421140466054351618787705789572297992873813333916119395137891090375040446228740068063784367988557775968286211143972526933445859663303971212757663422337201096556300309775092694955063172394560931291834112309591608870786724243120270526716882301988579912800483469140677300618315804419256476020091944547879489354576584814619713018956677533336854731401286112661352662073394425436471290237403735903020331400649919579254038257302371317537313153888792311944923235164225854769443663241829142249750060953018791881692800408722289838413313435485828341098788086906979696038232063941541936659173902506426438585008320337395702218629691037211162264271797718204897244212206139210839408733643360975872528421760781791552821262880830690563355520955510460315874547566856871387171510921477572155915926849474835455441510881182886508831358337959550431709203746676850833097695607516066691968842752953142039204041980514892178472663724989513291331519155425818059372225564707747669394733874367763731260211382905144771674995064206716003660322626437539808747886453030678807981366562074960843237146734072961837989112413836357824832014416449127288747857952075217197720678312767422084073621778381903643410161614672655734590374632085717181425650579539361687398070604552069543414335652562140018754804343972249026903211313801801133722235856655512329061236851301177763011217507036679683570319281965452741698355894794075797789494349482738777412455417161025344419364320840511102587459974599439626726574551087782417720535288135609089593211889294318866610012276650862135885025138911772929208486831792892973647765191837145510786439829139719011867836525453323064463548408024302914089700324582858191627687702534430799228159623092294348626304158667616410826231162946163205133280389666675306781718890936779651013051170530679505986833289723328380468113018351203391890703191544526605009568907404479642530588461870423287355326104624463562977615488089396758345660387914066960366638086000576889004748632231037401966808777835511331071691187073026052129180869468856321355594661151403130258406916796711724769351901993044486235703216285053067983380939172512782238153964121260133361860356918424980247356330384754888432096436171736009712730944907790869513052802232338573673559943454250620104107500026474232311832648457491483029391508607169645900945000771584011564716642461469725441700554362934982860727712250434441416421855196815792266721923132574289936633722790336530755877868813496998066304930403351773035929520590693808640812737773675515280572288788816532365658581957714952740301460629050364928090655614705471158884961153670364377196922920029355832131728678757672446228399536898388103961987159340612712679256533804036929987462456727579517626432295040150588032569050260426154315133907640343056431607279677029471782889604461834815131293833221553369619786311522644475468651658905928542358425175038440139081997119318953053399665319255141253492639607796094385356788753915670290024151958388147093981448353001235515188942941211328257725382824885601508281365069711655243417711027037665242830767140837346202556370621471933971540217582658035297517387801925817844445634898623276537905494779046121561334993503481412298320891149723004597686893054199318478941694756677735245414685989838544683747852374991827934174079501026887311933582309410115633089061731154791890718351103680756338528512625446085275026968920500951471665214139799308632357591491478001419633294348845453281473885247814565115532852485499694077996381423011924408125013806945895978676372389272145157500468408709292175792275663788530516650525821655240358190185643006273049766895267688936495735104918994102353037675613053306790716749674116524794112839827067066543074108783693182768419606439894068139099585678466878162676991950741850966679865950698426386845980656518959562903166978564997126594075509052405669180749774772833725438521630677947030061965676588941903361310364229069747627326336453385760677967558568677154071251263282515822999626186119919793916793801794316686625446706784563362473877141029097342719020618123629642863336825206211485312384077467848144943760391980525452683062855092105932243878963268173516032558862273229966186702213991563160189234279602599026748738767017989885334098401583466098753319533750590935922213265769267541330780324111460407113853143666527775274587686415745635465120971141147728725650345635907065349718279169772489076365246976401913041741683117142743625664332571671770109054014394826886990284015099280191584837423468846668708422461511417770969765177924932913517550398378713196390508937079917733405185643752417724097291266814969727569792218346012589046284967545253606754470551081435206713836356067936325411539056313754202320987612205564679943624972693423332844449392990392517297375814573854905895035461857745567998845129896629209042821914554994422732934432253148748098632583460038534168083632627538530911150660373098209489927145504710433013725365248340710809452816962829696077403893531934882924399177585934108477530933202608752069933013669815892952530023371695656720457538009377068288136445464943523214508410698136191580316378074755694280826051910760723141046750503545064092730506345402919504646059288654144620787304966751647605403649675875444430596126426641672762967476066920596498368055380765459544793736439805533028908599835772455837474434981259578410580866430711912434231985743814872253132452127720860836763687353365670829243710481615321701080129977259759353579829773060838393068602847062691821345457742869971363841934019048459117745514678041320634941656867649342694003614462401182316984237859439998122750857987933815527819964873523473055953482917805473232620382199466866256948124581732526763897966850814984809397430172695612305688699834739055663253057572229313520509484964095522473905230220355216784303036939430628152828571109142559801780846654234579249928869651162807977719553938322696094788765803284414195988889638216962467101236850382884668463354758600381091160903275091017306469695074892370395426067930995136558262487853669587147965013452576702005783001700341578920259806467559925685699839278636959161716268971759268041516399968725034004807057452929755520168783353029979302121305705111758993391629982170201369383969567594600791700107834515647021002223980933715281310407926855793287257500352710884136328383596727874945677323368694811877197997157724302951717006355268361366485042148159432188708345686140751489190975301560811042056160779303390657365415463956549399824575790269806473756760869558789927184952996649480626216737327845131593988944628193041055294631788233004849710935467859979842133783118928617755892858901534475830672867112126399187628311840711217752554794538762372025405648462515224924192539301196430399681353773408240809665904433385156250107148768892737291335288352212854877169931107673748561781956226595572639164814164297509768128752512024950095733349450634998637857938707602744161798422229932962026901990076226391190519051349196832481505915638692189897636914434549854281396476939136004506895230802366186937228784267592671495537505354579947689618613732451289459083059674592973520018918123959407848230009062569090756238246618055647020357286239932295433317516537145478484549687592560857143365872884703587793074359840640422867934797730079940341915724462829717558399657222568975379061500863338342173261450284392207945820888920586023438048739067470445991547680885580099951960146160362176330751193604840168912363328590038625554939584467774594692476483230567396624723186375952889317118826424283514237460076577578961747567868577668438404311208841615473111716476168591552920037540578115163053312684708636014712360855502381503792954248100652269426676818520333787332289218760210383351630858368873056500318420314565135732230633206991074584571695492151520542666506603414433491402719077605417238524364004827576956895098815594131942766300036373109199613854003750508168598602537696583624371697716976476204443682264645412985332974026654162752945731791610738650890159226909168130115603581739727926376484421622458151478198849116838709957810553164144542009451566682991974144973641274078304510252558850153215140851688559644067632220942894449615949913209950580886967133714213213968485558083954346630795609252359114039801954034506885103589401305745166228147332946385378121914904631708255813559682862320019170155349406462515988334169229888491653211519727377579231993675759653081228820649168904154075804545801062787177078541129027762332135987488545658878053166050698944707636769823081230727328716302760519987796654399647524116227220686351821797497431698634076649456944216262183372799707863123160698404023034270771727693684909178140301520160422912481087732643644219348083853486183866123040687795376445888258555942612830334343182456158396212117757318564031423129508719201726541163525384850288736121380637397263862281246033562916824896614712041802597529261917187581204225536342794213947585646446650345840193604058218305658371429528912401688284223899193501654857898314388862900347002681365639881146636503276145211792651509069932405766898999291803419907563211330282578997784329630031198120412151843801538370714267244339956876995480053495616778732559182426429773032399543419371840671038296585140501173201403346303252120767578031652711175281285837293016895236487557142047005159536370497542749804888003927041238992743985839010714732175645988131184244651199982199941341261535298136722876922209252573850740017366209913186987889843421809119015635109803549742158848338585303248520633851934213544692291329748671262553404070019127047530778522293377284107023371450830090928437382038042898571538240504532753041074800344240906778622313180573870918706074772011344800949300131330119662025041613945331780546740478702933212054712428866703263602601916175430475665574232519920041208696422675137695109736417800016746486402653248211923387534672924389281227363074127159218621401957040783077654999634140302291081977974303454251599968626632402929265771569496694726144767750837786599255259533396860888308504042539916769241785182152425262076525978044447590042966711489125117534864420982418362521692418871789683308194948301509238423016027827030774678188717162589749967120431527305565189352198161264126530181523810767421030526451443264741497311338069780748706072271425308864581998875087728240826776765593995213704748837023660050489895220050285392010697221671972573451514428879976145033120130009358610986108389222979940499177725300819277841130262263594551298621745373997839653636510220744514131187352986559141252693500613532344105886346787157396665567339120060097111162708711117665882844576051461818654103646615790859489698891005835153676275842091672174180341536936179485049356598286711947468731253734522828877438457720735338972783846167465939007067553046642911531016608688386603906534223406401450765741536185040539576840101263679258106379317843849381885059670709076019480854133930370509885673001188516289973786716362760911125974442208554357594639893772292703411738351114986727448526996940852802348750504753519369927069047845562539243725152905917041922923014106122733691659848324803339123587669694950993413114069354429752428547928318095148204478169668622506408606905019195793080561858628856654328869426717917989162963215458177928562603468919661584093171233298135655275612403749787398063265731342081975566502282207995302475713661804513360334426373457090741403160776797106368126243905847450567499088864115776725226840968534446584973736753834303059427758660214593192736576907923848513790681427801966838959955901667451144905144635471862529939798287455455556505527607399881409460391507694827766311355118126901581021918630492264351294861643267315034941077909422407476417857864058788106022115488400572329800573778803915599656439914846091718429842103004886853733094634356376577338974913684963418270654717995730036767762916210612304068491355941228854842121240233592856821126501561309726517632435595560781187953038872088594522659032168409535007130414067510357648337254073381922586598842342084407598312439544070043407206278503957079783905892250817846512927240020376154224474368183600538616065099414934438135858468282056023369508879835898103112654968145049621504389740437937045793696655305476191726752406304946996847192675514514548695542092083238861974515541677124451734333429031694711001797613882631401929679171562663833976407797530347397463553141890917516160666820452221296215622246991225681997459338212127094060223030690496453890404525662390377019537046889565509978656051607554427632492203358522771269737329521572868341728058997706289317595683340624199031484528131685758616525010748135080022698456747102871648635421901146005414373571622414854257577508892143249527559381604801002573856977418775449225472685481540623117153398318087429030008009628698829797346958263406991346065099089430720437602452038575857033350340263903085067619889282427804040508393353061416477916192059750729850562758776099257380948260004640007720823112227321990475035543134792718703817003833519661041429801124843899865573431001858442010598438203036028903308763717688665610825404323315061695633140151860398986167831892441481541113783921770711236111395513448923635893401155463336156428252482936817236112355715074098785165407683073931652578891823895135554495235720010288750974970678695016901514284749265356570302659799329516968925342949853287242017573103855078021865112299686599547045610200079668258171180374788584205351004508683891239835288388457646459052506161059363689555592693803156113799531056367211170029682282571086274504397740620161177289255487454424345691927342537109521599721381871866912222315612752909730049793613270756430524882525454606496668660682869240969224026478609583582045888343979442746746527659616453824370018657740871583409519234877788469445552127767735312592207506842360689143814676308806060386213751878452449758053027578775713149759758083978824230217270462481028492586505132934597079184957806196806424271023726138145020515304167749374322962354396404351249587672664651359588616612693675328254334042255762665457136260891652879615069175007385671166416049965177336568170841753799208754828546812878564052620816567174049075782284513933209059938707116061719300203080328212874313270813138980839646208485615738463115938205187350689668978174570181515890310624539762648929874935224406396387216511703716285552080919606619324574163550015364065205494526484513259175005081854958845831097108957176402240601758962548280705981759830674701627778840316049087507682071874489253833908140553507427890588574983924283740550683173159092986620252539096084021540534528852006360674118223888516794353470010276568238329642499688982292275927539489608762140343698946810955984505069857387575662647359497970453884063967022092558717806176977413699689004381661371242052490796545179422009574521788317941006357270049507523801036825608378686365006054609030981056082453272221270701039215729182215196241126614328319153879258857392986923486415308932366373527472192375369406252555374080917896901074819262384184142755447844732206611539069251773648231641474241862516686268194223281317632528741583823705615968931507237631481812201232016817683004595498861664053356055290413658480955880813484993267100657234388559357648586980936290271531314115069207759921449151465206790767455621725590177969971944490340853934469332973903447946069234348334119874440928742606882338616523682597207271613834955957119939232900245478296477075092956497794704473132907425525941184260626897483017788399906783338443984889752218912894783577098973240727106245255873443079104542241016971935065378684512008809907287967320525760413250297917402265438942472941837823435170148051045873303890098195612397722667187487346246027134394887682070340767886095781708392558840665915281603337330985160413068977550217182716244539137169182740101442348934225072598911500144467947406446712745951316010218902959359234603280940477041559636371079628833263864931203671275352704025321208775279283289727499202436101498078194445263612153050734222426892159133702055692361352984458691046825802748418255208824799629722000505597834257673622393909551489171149623658033108119167262624025951040960638387095855088866093073097493764330106895090673910871504554220263735875839331504237809092271151586302470671074952340509159061378031687525621144426107521264760610311094048495800142072294850071688928717767789041012211394736536743263285299400145802503134211713913506811889254973817102138767159961828081564948985187894201020648562454669491177756062001934724589794922846543698926262080832486159355232461102221830365744647547492788244774489926655962912437935236677658318737188142465920410042891862912348691675688292922200453181783423021058480496459163658067228530209106314321228691394329428379136851495153172331032246952838472052296271849896402904724795093230035544135295544713123800418307501336602182112249188143681563485251366132682297940372336099284509387175692071637719172868240443682144612210925949939130881526747784752771856240970036972817576291758821326539267797334329630521033980526276659478735182658151863245880295576666024378364613606862261494286947244210005710648216443956649553345821327554176232449608013667656553420479952346375848315546711617144695867986252432083957214942429812583057933052467821286409744048290349868730154047673522818162772563218415481907117522489190641496279375834306782783910711915429003674659953827882365117222869600359704164028240137044666190071031802209558070634952538923464943262378911826811227568555013765184531566756503036283716681697879181579297019106730063955366643444766649752268410391447073140049062251134842121167548978086155571606927082997071779895000905615652172449710197368591114619379054539655110106524152877018049783051617515483901435770806197369955952877089239669534942634291218083847387691626562454959927335040979305836947917238569071138792861628500175656138220478737575204106786999737255414381162282142625002140658003564063174644822941174262343841918411397914629337077556753477556225327130671398127910069512297770659539799536712349088033273147137612930744074408794682149821498775813060152075470630496781465004432762462615989132276238656295938280931820425838189327266488114259350228817211155990729738899109084864970132843544786999567741957145952850523190143649932407914270456405129750604767234430809945659019076362553319508117686647870675648906352426606042779212495623519931459466440658248002729763957601102766508451299557208122091095567354642610784997673103217514461290599986255642033752113512584490420361913728809873059004065951923942756714960733789725930438583208936758504916700283856385991598266403069978105321271658750724718157715255574896899851495338572548714285013773167682869709864772205966802923103124290885771711285246165594458618671306670853604594999522596119421949992047295590658675724298855254198842267462947063440690685775577654567880526809588042816937097667644660079646664244114186570518260853772650235249089215169427234846213261535411506126064648733297072261482636476442360752034547850998466139575496152843380148246662920352794539012908150013931108530852625348262397424980357109751151649314520127230743678811855221494540442172371637443410087210642124539674915167817331099743211978498486814127091857921287628209127069206728342981713818441886084671814005082186845964162770060722595433104268257877600708015504108585585680480375258819961877547602697603161139879232816580901523750382748284166350149594806209938176734103279823434597692491974709564368119565515965425756634895816980474031098254265351407958602765398083605863456235480584316530157223218121221535106827092061249879824364977803437443196711170154289752364279228651852175758022328278135169967168069580435502652233897666725916943325153472858898691258014817536046965751571449898495115372982216980030821231567448085129535875019927254493308178385795494152480924368047894830928674681688830430396557120882773944299700544807379395795298186691530469692107914606801155101308922039764746673567274577501576057832183098062403000326702064701062802889416702420932167067030028159060585958207635123624663572175577992128129351806199243907499942257988950828878014173591750110057919326259419215558288708280998491816005263546002315658743591675536427786918708487801482286386340941711215127035834807661516402606930180645243791828756497964679659724138294697209709277204262760907878891265885662020237674906278331827603610360089436903433397846043136731169472891535833953780797657190184528208399424201359975466957542503449905800409241989287521691921759247552048162832935993402436162710117997274118409096195725097046067356352310888716595443107479875506691052604542648422370583949870182473352693691160025685106174147070379633402744483738738554526231204661263836483171587911870195424185694300000751337662259914747567172737669564982206879680343973370507402884617905882499916634652602627545409226741794744192228421401402777596777792178241017543779996693115221664676907479658677070429293214049902866194043952079371920650249324400610177794937214427139473170529525974583043972231615841384687665029321043504753405851004330852424486503645818185962979643740895237943186540052557645307732576528863885319729826698790695554486945043286611603570650270367429045634006499924865658487387970333289303311786513645908826338205811839611531839515976978239578111738171173910684540947915312130232491857013642614289017450593867836419191465917973387458127437241543763906577960437110960463955829488865850302030994698957575636686469586718401388078932773716057349041670865233667654082181062142113061050011006949854358310415869079313958528568408632954033640304772278187746313246985163658691099692474340573750235949737246570047353995395787513368994983539530252730556835487901089411007159489874002944822187997084602219705172791686936334538670086748395316497552379645443913886732081165770441083351203827222081569378395595413479056609076168990921830514597887423142675201591532545253941343558715861329030779023787798976067003086162357322954697994713373797083499067357147868693614107783321070884527245966806435599109237599570847377472599638512113778257130412592978099954680137504048918598249456837116795384291535654737008146734247524497003840649998714476598824855330183347895459916084598002748799808594247425571436781171271656592078011450422277390606533728917990510203272907833724686592693690066720467835092662866212979884800111656536459789563097535371444417802817317059064711020179693652845922668795786163686356233466464836103681780942445361033271599322811118851167596387451055731842056501308713239710438722375280356100389289064652191192332211105428092870330553542248391616527759238112661073390108404021125924872620939228210956051661510293903680818651854252462676030978585561663718236971829581180471223316870450557896720395214257071832342754749053944088598489487065688856534918521685217589478862090423229194002802956025702170706947493446430665862099626824270670803877588136193596176362390576545873211947501406236526208432311805606291598998078058321110708383348759088782813241241761084861879583454866067607059189165741627596548278282153677371431864443204375663845242745911213750673938125639711641902921711108291638350732173043420295017893971163241206332792065928553535020273985814845952787791278406574078042800125223915351442548980930440458171697595048446159940481095554564074289745472456655992991932779301319716965946934327425962509753600686586654155241364820600533203138559596514261300101784181636056377857728368752161137504143045582888434543302848216867954758127257018913183138817936687782490317498634604722102471341680112739354333192489468469176159703883023723939618804127482406286001138576014450310574619727472266057465627864206524597397566779775151268213248045260273073585647904005930844022945872282626151968278204061335223301065347869521330208181847536829771264717183495154322110179574368348667478081768066893820789105268974607344964539827907590428425298133403577912323094617274923348911372278529380338236623332464077881614279857458163750746744174128673619552351588426967138047662308901360633844907676859854492296634740060225840713585372492262384853338638029482611341731088758820701401142150776926903585329163576849099483837911611658995252883006749283748601728661290915298301701495371210163250880777250142052484281423723497107240916031053528307205335921771656223778940469325599427773269383903531147656840946040459438684063911204867706026361936856189345958601133096335907307024876194219978432286485945379437990175021286440072503136891458495847659510239057066974689883642823135921272189727813927429353426631852002138116013911833248280708114657541033576323164162843227900594592077145778779441383713230721543325624060717082203255669023705650567401229577812396384355938795604686826309873422722713740521668835328353540985275825372849778169162115295857752384030352044350397701965815211204931632585715514527261452219773835062622702327684719834731239967919596043219112640577641717346039360339403364968748332950500143365985508422051441054199990408915739487161349987759902194722095766974133993772481160195241779076220353085451681565804181937527574912198198788368154719565219833875573658261349326104848610116046030967549031203222349587396838930566100243689473732132398805879616079193366150740623705531552749584414182990976989854019107508074133604804579570346244287422863289337702838879421047193760125075542732154224230269268471846784014628777414582969735648370697177373117539953703651517149521636028984980482788232672594434230791056168971510761183748525292887437976213495704782813780905746357599291467190439701317763498042762358266103014161255089855328101568818710172200302278005001456630444064399667521430419847037261612519143267376367278776970251300850299401680894021061712495267861577827746851457635975028650106013220475158448367197216098252049122298262679634531979327067725951236343908112035962373468125514827342593413470342754923034680625283943781097936978522860149476780220097276070496235432306432818581629010954460031695497139171032282921592299894964313730378416986628722461142933259821099094199296586166483824742791344695756577922317888986680594412490164091657176745163574193768694995696224674638298808293633338233113833586663721462314419154129830843677545954100520106130280427983700805261298503303267662262684406993630570204268927448586651515319764354340779652940314941540206519382208307908302477910120014591509001249418377786336749050548210594962873287299375261548697498867781655343825932943026465652579512788275611370973340290539040871668570990364043426849916233158061422173968899583443709595621688352595641638410154651194130173942022258437515957355899437642366541301934035296711463214514669859822845315681986593136284431313288228501117174787692923014732664806021851327697226947239077319585495125375848657625988973894085528875300401455344040665280111296695009735256459153401014695042907102823207314083254662243956836674200329249435564870685147059802303495035079739647978412764813030582815104349346165727026189779733755048585599826801880588513963155803661132699529820026868720255993795961747677261188272515613842116574387513346216184918643638209704801145309114398328597758439001889084211807354427472649529864185088547159374774294543945673137893469138416743197561656022460500587172151611901296789408092129337164346475215657154383545553116378490894864438478012581732963441647481833962391671362325386373380370549374216702550142087859789849372353371238835373500538939638576727517330731041562109113655519927902732665669339822048723374018030713284193489748238506778430592177687429851706033480046482064155634735444390705652286629726853069136459014478754443627950073194172431240567192473542644813368479061305219125617976674180441005204794822196559327222352591742585990367078624243132721201451194802405546545640049665077475265773971391561343470512583950624751699321752304393259163327306066640626264019024685687374442443293196933980292110552004047699227381011141102406168927223953588609537944221926063690212127198817800638084168428376154324518760591585694180131658609688857781316834130536391355539333849948126288960278958163623521918373960507972735553953089821704760433973936013155731881960787433932534623108161127786164854187305278402119489026261889355791133205164055654416802259335090389101367499040947259750701145375785641808576039009421638589157623088555876937957632910611882828563948239323495749706348856890356374581753217314770087118966284375860788467328957328217154621994072574943124244759617624457374099779724950025244320698223348889470745090740993730937789535489221281376488082422941175516016987234811355260214845755715568646794128252095390635594346949071105202323489182313302097028913804020722014813282080616483230973642672210194074607838172823148577810225900741293355611713234652740569461569682435696216447732211957523281651028879817528200464882641042069801457941787824158260447150028415388288130338693019207116046822502824301465535377624971156072476119573900210478003726465223370344611902630727411261796035238543814211439456524655781885590748076008525584123622351213985582038070701501577982003098343425185821562297420628424875313180806239108566101772264864205628480468153781345956533924000398718506505618295093009285834518130524166033578296180652009498442626329375689534791620498870945610257038113376477108056676649161598835962370819475928791826462173524785023321382462021881178213489185523794440340621773153097104333262678245852434480291343753182155099332114155416293302612150485915626700315541654919826363081495256830849204209868152343011150985267969544919719541480038565469789898618358476494025496045228407190171464546570356093968213128147316899049283888906534585436705915815793621534216934664086926122659307160007805583662143889443721858015464574240240081604698741004534438623765749909434474508588300068447170757654197169765737555079863745181725790518392879928467605446012772903152363453472289440443678277224828062445666521993494190715753514552712265520365180945128414308827645483396864366234840648995894921389442417137059234487457889078249319203680263931352423404532637059642412988925881353295527552032137712001592818154288468761564197877030971422507484480682803413767943854167075019644176795456053929097662259998173302736112861649435703252220690505126404786522215305927571172889196734950137177324479714808951721594297176977590885552050634848883274480542923531539185946373164010071269237739595713882231692422108544824974540693493128149882559911574106759077059324132621996544623086110875001168714678447971424758442213656011260591319125434766247725055207246399049625320068588384791458250960773843615871444182132282998922603684429188254313063864184229330200705050060874073868235859680930408136381991332951529154007117610296378887804947241479164187156977379195111063821828988070536072292312194331317784888493956509828973965858068313609573510246036821691592643461494331913143957151074247331504046399318044157950553874966589483156033428969997221849640169912092311396430065007482690085626096197729370663825192099476144150477383728785324426021938483498952044080532593328679492730513458693234774358978745336552832349816921591133335251169510440453357611668963530074934432080233937037866123296538929815606556562840371177785729050195593962004570191838992192018558133929711551014876019233720720199307289272352259053112829743907507037651159930725383042953935219587969839914883132686919427518944540955946113320053392336810557684374443962583308299644813875990459351225339385994974837822869023138123271223147244249119929880737076672314170839197237590822878911322649887780044198946673722617969036320429402696706036350963866716198507248257687860435608016343678490856754612896613009298019853701220855481149256397723270449291962797276591404471264720963661103338985788207585572779610222087470987200519252817452607554182478732470421808451597398652983925756510777263704837196147375327719285935633746673037039626949590278763161546708844641740247934126175796045568754934360865340535618062355688014019520828958923397745265971951728344450972308579528424587311464932482466999778776098552692448837974818479833766096539660634825371472351545100533529281124238178513016640879999112584376215295524826355097607298711493068975121043651718601439767821979620647587358095002182600885573755259555343373502238849774219854170413964748909423136111223932829402054676512971605631187470401022333271816268894120635143096331464726344223566746728605345992256625721711917870484009054096604049335733996361571120606525335942981499501636307584573340727286351753483064486668013963276931146018557381838539764995718772844635571601979238219870528196910004404924326082461586078767253047596967588407203567489195603427123136143876685163182807468581805546458698224735300289933812962161426173673821909890265978566178207689524744715742433536673491525470935813551431992114094836634219256538952081120466988919982250698996730891735902155042576412609870500383907293488519544462306955720174933603660419249573099652968658078721465477978470970247885919821223863032836420416987410794093726736896836676786263969214558428162984244648271617091705649672928032268520962328416258921463866704573174407451211620525773835103066975203165620991758540845479843137938009061782373334042918244515907112517169500074221433118233109278233347823654367193195648914065258912635741464278919711311276141697400661678532769247026364325722526682967420388217540303532608069145509296302182237467336685138672836902941379575755756879302813514025509051018377771798020954711739289122253482740425329142900161688227879480826321494368299833605157383347720395981849446767279194444367128045335433634474451049998321334270893114709636945915223687486984907163333436439885540506046726117484057475664351696845460195415322316914659296526445841194025587213857194162476298409859469388191237810934605238619813851417708340209584576705500154788235821150255322819201553258840588481838676786757795619621032282211112838010058629468441577638867990194932126672402212720279630737284981451515272993538074046112239846948222033942350575966294239196514260188012168522957232100778627100905559613906851852440987745619371262251927823936586214204480507099822113176275018437024647975249810001404474999221793660214218932451536003968294925878406906142399240937884666093091119409659602204358119227690361400127761858193380103797079259841882387257338280250580767527584121863951870926500356735549691042335057885430655804637590843134232300068227197763268243273967133376087309417590329225176140453330424320674150989600952696323979618584410089069836675702340701492547395220321449200812694028144806289299769329792653695093905181172652317354442691472972428411598760409844514647468758924874708523077551558904098792224166942976183678106421268859675654739530599310650719347255535548837733672387318773614183979196840551589578195072094458643490652668998556976043860236567480551402169090683500551470705819690665403676607049384188040525636940489982845470160306704808575596568222549544390297105681774335744165972099810025213705143807378144255948472755496575937428195215195806908661541834224133770814568452225613462315818486961811115514695942661167013728725227091628068148661663573678578842678005202544741918691813193978075767536892268623539053272713383918264494004746177439790561265749576169485558001029207899235235819685087915693051627600521745703956787143326036428602812891330696225877493311885239419936285188129787274220220305271656352182415077555555386203531222314649801732165535512069582979483464492939885999801702547825191177452721673244197083219515177630131794758038386841083153088400564756139033041115715847839492985698803432046662379899740393755744493757512993853688430455375131750285222220383459623493633210239459951727522059746782249856643214729269256904924256919729759414940300682068011272185632187891849072580129126378547972937007087053186398537776550078471298633317672758947737361531415720610706045439878985610607872209534631953546288234058680051693936510196098572846430695702398012907839668317162356357898572115457199760021021333976772175887141856117312105738321315249943632921321203304218964597105623319728529804816834213105178782790872923023286377881378325027949202089963623019464574474337008279170398022677958446210431980766462046240006084644123239470467054738148904624548742452110487673840332360843373359811060172450943570466420467705484387066479593065528439419894032424884476892110902423788410597026328026985987374469671365268476539582268905839767907594116289488280980831206111236477093172388217495191272475865669905828587015505101772867588347446354225702280860125061426246454183225225553672248213902987741235129981358934321448112537814481485574315702887021624588171642547382125072089498505541435223172110945631405989465683736646337211054941480382272648562960026779142703379786680694527959067385848890312985131053525742063699639851262447495407872590513410716703336860502442519107277490259880190215672017681822997262850964908514578289323042237574064437718559140351810503617674858167099781449715236018214981278969639270231544842631189098391083219885670203759539588510286728720525798830607968894674577775223242956653348197939031297067022780237717431806809017312000088635218423413534570195573519129965198605709114838715737740774105559985600779037680992908782703558429119849889752657291313914524467157533282759314646144729995970857002356220273880536954894655880095044193356545170142340776373007734597622032886247410505401835835221691843163370767762075084611096339431880181441846710600641168615601297473417686855134998084178222620454784100845629869308243251431728466098862898604969789836164807052150723959304411962044546460209817876683505448903180843839701093290958266125670260014175721785794972791976978539478136041690756047917339481248430783124081042768362732670988360814444616536815124876953698141336569934561900441180900878373470064064767076164647956865755737771343675996740678964007302811166133469956345314712915984827783439740169887315133417021056445521609144485957705975725265511102408313173889953911401445152459332824950773582362176457032504047131849581255879453150150657972459040341638137310889776222409322300195312181467614851870153464578523423952475192054714930859247649125555488563157511371568193127564848503849594500669000417016942953197202300846200182393783639385774056978172176201602662502213386472420459758967374729064389877054294061518186691937264057124807855213247752901691034601233289107318891726108762282206780919657186930277659390484591989409023793018704684522671579933150476828531859806115276321339706767658726549694235146742159941640306170029187056809276981899721087386503855731731271692770230036473508373031923905611523122629875216036120514213331762970218563763054285920791126024432919281349179234716252428109605703432109191347508117578851688371113146095801389876936310075240034021828714041000594234630973019138933904459120492279625841558753359188634457401696006266043503915918012456943175082981549295877298603017435595702065291636505958080983356795383633758895440309631690629598045284593960849149744875629679423394895523371938165050363797486394031124166234360658710012557868700431755758145460518019601020470404138224117453814557751398936581854584688288071818653123621379821196327315829358067072745748546699509820389980031723310224459199872555701935389407734189506639713634726043990652325406930604913279454026538643548025913530331740267954440449938936713335856792678756512468405629999385400862377510167738412166603286089929246050391694117943711446269856184182892639362141949416284513202134364268533221224217705315446778798217326046255275977459437953552465128223296633109804590476570581450293242979725109026041319944709539943309077523416337302031876865175582141482203786716622402994204616011198743744332746404135587355100268257328362480118549685537209739725895489207787055613981308275274243537539852618371258193555672827993533424184096570091493236938033868935045398656766537180054839926408292158172000291111086297566972526391502929586372781699125365063729941281680414384118789433948559819807310216575232722169532255903200689741494838885687990614683891624624582951797767630182738652058436953436539757056874866699885804292740878146789079607192326428231762869471724740444860290476782939698497141986864563131391808465658009647174109348937266062188541759436904303912922017210103808621987029769189560189801473083682730722383796592379292658187287583323144567284452767809779422464100641256618694968994172056382200586350045671721287496920336524453815354935143910993785091340414892118578963102548103565146767852527506258543289739152420713143567592641801140868711933875832712529411278037716632720455520404401005265097406310823678883670336041825213143772928219958029242381953470844593271316445443956681581067661216988148941543567134463461242126457609415323146166252052468834590829865588794371419315357883649805778082821962579587153063913154643564212823827719739515813396520290323294880530531623899792107208545256377104745972416346308118478647311326850770706058126899769421663420391846070469438394350667322834483254931512980873335022131005505156190404385416433336833408624369028945834272946798628860606832135684332304797330571213406468428842243601203209179372964249893883068033879238670669257912264466885983329209911938383116527566473236637212886844718250768775681785817012649091533072913674419052292153782623877727361945447546936306306608039608730788353686270225742259283537525427783766575313747432132766434431290497009661303094794922233270257782527491970736507989728923182233857718534521114113544518336848323981544453980972641001317678679512984291113788612372375328061480415469263482482494482796520488125069751692976781878028059313376462755776304215037472789633271799349495840696521469263476735910440204399310881458253322003957080457303361979346254223366766581781351006416695852066597636840847384481867622445033431483840519510580973971402211371850819812110212818611280748057167838211380934359799703959757196997677368888539209282008914973527929084387420559280966553588633518069198124634027545256928447243110316544061152261011640189160454019419441909532369853438462895621037105501065913662856403951115379523662254280601975863248532050580323795101300607835583994730082243542054363830038501030348221546235000253295692553552239630775232771646434505101720817061262005634794042010086367587099592465627816693730786065546327616520142823166201586794761109818085873056976129038706310374297021875154673586200164399194181633314510523112959411054136585302838240687248458844178169880772043499873958111111086139130791648692981959395833557632573613989607243579801696291050231608010571522991233632932450577042275194113578190068563889213692746974953226089865268872708358304451442944834317715958215854177002097861266873783457714602983560729616433285423315997178056226913157793181758529101888841111706761489336762944513379874200555544575325021871632595860050282362444405310922388224062003317016201616768775100784972860381605718563538303348883830196307976399638823887658224837683036911715546255080262457013966259350575037948421204420800535598018356674288484291482115025812257492591518573208151527340111191397790463158211232220190937468617231553707043291042603942705109312400572077980010605056128734896772097769254360808739191532944887364863830510228380673361834203869369229582656321730446690792173784303047945597694237100287545568636137163229906873783856845476347992041147909908291566141782512131494888227084980364648196488004924177520732521326826324756754757345098273573996793637954487620040154871405937738484047742910707112113115749185341422796162924952403343511415698213243389402424603933439920387234148758980189006166856959308005173979329313629488680537685826390382319427870965875171587399961621747478277133793750573424608327041790228967294203101108932095376897830301331418981758642582603346283565788745243803764678068487333976039175014028324840808621572561755727521039071311039663029627870295966810128920641416132902088372959569342462368520673455584636004349857552540307729597257797582298647422132819841231603607839720185946306608671022711117652219296643898812500482843094905518344129814942688777299063401291601197043258277029739911330589328331201065864936239972649301877716354468282746994337900256452007284709804461395105355574579540521038489195423907811273802819741695031394242176241485835163749463656906291193114279517834922641462563292165298234920475766235406031661789347153564370255848876848944774733322634336302863948497482196181050105169825059108190700421079194577388107518637822113292458555352625575101779340938992979971931756162843700143966970008493964594334583773774545522060943075613616275148362703653199588005312813056125534083086673964295661244947331903810621846345086027634212148448507224621376837215303248613690450313863330454420180983916915403327328410098347494859608475012593867564861860557227535418810152390202973075824612626408203413316830167457451344226253536936780458715634716877768700914892209428743136557070983709186237410117026887059762518673398412973068397491958665707240268771495665263742956988699544161891807118034470332534502950423453332634993951097682536909977968035618360793196560668109859018711109390277395949740689516247809207634532375180277643034079218477227009693897003855636985855292092909974374094679718951285325442964262765082363635238867635794406038005119207540201174886999680647278552971100515800601733089867113058705333969418965130300241270009954777410723101494049970476877813336742954220185260645334820552297464108096615286481149559875043954422839103208372665148220080145597257392598752828522223473266603027157318211292898520339884163021422600511403586112528881531691381495405920615582390265204447731741220613112498620569222399800444818974703589597814479022124022929413271324795443473162503828422552221406454590266090663194940477190475685340987709869864474761915479543799435236692482123919706979721967160916492417075855826096869305243189678903259000840989826189422493118186450817936704227796130894584240506974484673634338036604604672074880910354752910760136458823542359278259571123275874699959581190345727293960823911536615893281998482155547872607180933109973582840738398710942441985262879125487837961174590179424647251808838171984587969738721928174407049971426660684051776425979660373379836804867159678549207177331604290810168535740504083774019402687956801938954322892245144886506848393866745866117195578305448386716002092194733912640536501857553568508979041598005476623415407403708817199064894646627685694682148061198005180134376173367305475754889694015781640719130580927220943299966598342003007481368612630209711097999682884593470929143307227043183111700443217302122248302772454925286364399356610042209781870334376463533033501152262188939900197496550932670371023153634236413237416660412536358612979752787613271639423290631594220889937904277268504949419706828519437497542982282882037023629731600980146985323546665299170135687781322942245509384973703873820333336169150257955253508025971853837326203077858144778548103182045579436417930134406936176361486740267292939587922395527558610588579700742733205889276345864160077825376738538938324295799066813083369153042103979795624149347144029101810257030335889985936292783391346433094653416819870612569774267913253404857886617094250146410614036114718450203353793949164644536092641486172420901688841952575137168948477002336278674438426646298241780670565604547021389040756772723413726255349837580889338116405397853677811435820803437441232303824346562486341458122018568458144915357330569318969710634689316821805067110520846702582861979055410278618781627775198673838285079823399971216931587909194256063715112543866093094409537583877315124297238607097323380830535294657927716681250385738347506985203480436253368377668745684075281124353672589660767675174792469893261352056684487655143702850501058442089257389428457739435567853546178077851170291524487356266094079688901343379575912568883359058643146960149189582840880255027281533951299747893112431811638628714170314540939519579752662407564056639129218502744786737346208641641989913265558687539885536333079119334262054802307377023155274625553578305765573187686522439079975008018090712295777396456439238808011480281099268145146279286779659353124536547098223643052036789007368970332540280148320373756069657367549502014817637501749233023848922961767640948828792052100405871398421755629672687563992735816344707821008750072696925892414952764578829117435753768637497753574932116586966273337510629284955766337068342336950949329490340958875955732848604377650331860003275275122680143306113055234774763236271083059172217989327000187168638475817049015085690702745856163794613252042726689939279180536118505381508768545271637351379420735114141900142883335346042937269203984747567541044924480804832169038389997819712704025089874403678124354009982456455206260928106928332183247767107406280492301995014756761764416224362334803375867978064551970466122376386889085399572904669607192646263742995685886775425457547675814993460797710574596008071564819001097394309795973633680208974638182879902354489891607076254116601195530064042835879742407989429135303375314651211766347033158535611191386632625296619059817945437270725833282826043344065716069321331935968401991335373768660035232510254940646557470247883863922292410623968392514501153737340529421923104200274820270620766651378803351646504935290620444765535429039059148024902725703067014398720531000399245300096651998566021898799863385854543152327674515787013275510856307427979696507505734176812737671735872695616388380886570506511664717050893064022683964874205311939583947896985273638103688768901914338756117898902475750557473707982878931343210411259154675928069473734147768715504688578099664183659812101043945043895809739965076265864612309111680383349424325330312588625683817043993052217562450748063578173700219916193123182457009443931451146228644460827210415564639552677144916876971458877854083933758192909138118996885746882867126822779478371421070619293453846579938538960654780088195334659395545390334839033140719399889702867624107497240780520436001865930150916581876372310555601988629756803576694348438190846682449409364219961908480669824087994770668234479978292969170744823136867275301906085758652052932110346971074388620227744476120696964143599205426242186049858106853372295665126379775819395433492842245839008713521176765831181914655429906068071200883635479917290455500036123140132181728828420954312300474805232157163287581403384776401957465013742513685263237841035884029886906923726420668285460756529229269548660117616062933323423962673136247715535281006686537134070033150470058857014090756818384056642041858087595096080825968757450100864737460597750547843005458550182387949396159499899248674280530281324802197904493021306405935202993239997418907661009350291665588300606733402693670504179835282628575929718994708347051519857089453470033429936578442399097688476798833944212348506512544649009347359356269366615441539315441641107964189737476949295615326849603255332899079314209373090075053690851849413869937017957408678873336007126896220092651985543526963089412368029888473043506380855599213028719609624156166462163091968110980458110947976353463147309907914575774168372409539894605383798782462930053157067626313079013584717953572328976813839485131991605539627900266956289834599257417613990152679571736496229434467789940146799319455539074215159028736729791125358116000893244621084166728320912304609715642513251328786210523851042282188697995964267309370496727496570628470797885246952817802644879779019972476985263587961005977956529502213290998663417545888781883458771638668956665653941737465850310574282482987334659672744376399640864657967212376917601406275304435121410075411109116665182677370721233693357988533695440870074372680208745346797260411211411108083438159558030514782057135683299826095247660882519096635902604526253180324626570430359392351418347897579404513903807232607193348595947846854172345579055426155267367820504138718845650829005807619673144942040220928820990820620890859590095070752749267122811226550780488677979654466411660229357765900255380792030887406785929462486641595697595007259970306925066336160612979788253133656206152824209060607703741821425907461764627355066027641455151911053553301775109944448772238317645918471193668253444855217133097674113751682200923412795512305363712067734674721752396646345707239981500746310464677513269519301456436382508724091796145998990645623099506511024578405768494967116720190737274470280899437874724846626712608490033716062865327157268370518266729754675047227584876398956971976207928778115592458094820117986189021029530284619890018241611423186777810151123039281321427200590741289817096609570386942124011195648247949597865113863038724679416620873884237429017720793316261650611602192904215433738223653304731637304778131109770110080669135365171104991110624149116408465615575601604406928250273116103879332157581502817003742676482234571474151248295635441782736690242147453791923284408063276441645847916596837403238834295000372698296369838732721083194313328771504117878537519674917452247798568415327936553282798706263374706072226137015375525920375968785296377886842648401841759352398899378157960922691011427667799380137220206452265631926015977303976766710270896416223341861593715799923241521500304224012067869880280321708477106088644425846017176456114916340149520347048052526920847658320102683181051737761581326683045557955554263933535259239805142574492981428442459913093588316004875194932463066384460805705101212029839913140191680834341727749601820994560746852725529330699382456425041871650463617063641686032443603700188002118292595586237493204972076035127043690458647812976729881326959683603124187854630015606998795530818107899974097820798952717572504386675835936103802657126142722809728131208938054784236443278330806768538560723802888201022605567585347294792631562330761930132530299369167043053514461164457619520611856540852723737601566461398187344789162095965637715819030465425747134429431673224094427231918477144978314559032887291883587427822258022959560573023328634553048190069013440572388480300558686627121307835674665538122073505519385029904967068013008694593328588154981679593428599872088235738970076013953064543653139835302072617691561514532041740605324522541430463372345693778518387881212011885006883347114916756250895660979069251742465758022831750739721301782030513576151287315743719377126612777623560204176788629954192586280346015914409872709339974437140973075843706301911897249484574582878110574264046551885672826992661402852082221211363865646443056682673885173067326423882249371913887606385662138440443521317846589433199856101841724649124935933680614795045692235896529450774071575588203856521650988329104667191332540829588635558299752654145172750977021295295802570254953277040573060410061654887836787060336895727793179883736845251295326512967040829296383637779960591706974125279462041472192128199709517599823215648003741792811933361497737065122484397636914158701292407811047023028439525315574907582381806797466989086860999785563790710526250381748564887636836315117004891497749636476135098178096619804718211221882877484742287713967785913191418571550613973455967985232880799287487585881865205711100405534492280891731918037053342309318993725438964920551973658269470544632100474724857647515357855083869290646677142533669183668961349601208231924971070743132527654464225051339578574458456021504994763626974507591486086207748903469481254020577801578539487329000761470398354162837666200564941965033287957869522496992515384360813736947723996216230054657867632091968036468885375738660574315486338377355217607193592979567362134241601117264137783960712129488519448860554180696570484818053857637796487982757042360296285203174037513251229637539430813565165889960111792895565497078142277090690782838362947468230390004002880073824075619275615065856235545730911420946413148881950614379362856231877134352501793292399031576788276540300599036173122638116187849102848566864813427749511209774891758137422118514041513669624969840987423547237575991689879734097068984272850907515357215099898010468594983132095379184077046488420247508980560807570324547550761958700462556625413452393062975768667599193435317374658509149953399818298072118231992004254652268685458648563637473470754866440317428765421979467246734227749011149961330613860450009766836667096781031389099089167485533442063852113571827482638074505662277253717009799560263240467660108823993488770093339141895422991085845469518508897712079256620237139848750942839837613522896180918834163777477652831770553503403486061578709170400619644806892400836163191364823241834537958124689910416180436305588275160541440436473469911442603115218012342810736276080724169929612313961366951790724536965804115795607264938080701396349168381097320109151860835593695671399365236783118363056792657003293395451985828608505621897298957043175596265590914958852565613772591765268993251249336117382009203652683103925967837646188374623585131053342702387362114710925258907989291874475861756278104791652450762946647434669055081945990546065615875138940887544888496156377605246009546751559982567835932601395399023605875149680390989817917685265069329081003770325103956462431611605433864941007208970176860606190672904647939551667040885663201979398108314154789230279389597670668685072526692384865655468201306869800673602125417378277366986018683517972670093852935046327402720055527813117262427445472587681949476756117891946316108220010827975505029717168932066013851170618737870669600640799039933880002780999343817615024519943829464365208325978352048189702670054459726641740803408317712836237141069019168641359693581267956872737624722048641484142749396943749482299692988902956474856512261819850474542937955064687378953514226122982611999213512300433351359408002012356397390205115857902664686091325755462814433013846935544551687896835251955602974283864241616667243766120503331298617398300036546986253928857356693639391013180600505499811342302726928247245009286922500397909860155068589275328033075209658841426672121899243394958719918892881001520332688288650085944435044664586010003887629071578726477660497498994424780064359668534450200110708827837174179923602533838536713097220678350042163787011948764930998338629185027461371572338531733053742536847280126447580982114248951925966754418608576837968877842632534070191377093713578989776626970578219515313644358022391167852267728810313106777622990705466902405838731904492585668026698805412968708167260146670667226126483682838829303886763372087537245252951854726923822471895561098762200122231505895393061366505517269003038491564642481404250799081597400361661159716631978122286776714587073071729340477751407816248688513142830142648901804690498186740028520341959732501862969275898002895186222980764578478487662776788618566473597612922224491117798096707787632428163144007516955232993273813793579026733585004982816676533068050208961301784228697355516745945404461143645162244861114218955545918908742362621350170023181874486504389125986786055707538379491356225331886685769638653590902396985796942559077618338797819152529685029826212121300811297642290710922619372651324413577904517149634338129008682101366080013252164507498324602328552932663075288665560782088597776937356175831290028376132651542328839143927718343352031878826499508753052792484709715904018375272188333628002129948657181418241669906816508248061996967900582980618642547529768281461175471085101329735274981691863940052013152157508524320654561368491207006469252230968157488085681802965276755056629924280485471207034611430046230173583193599224106321987050818023320827552647741539115623079722838939988424154467915389589738328083825364982631235335127717790138629703003546848694182746504816763357580594369933909111971206895627792579674566434364690554816904445911873694923466272360382896752485911076368355268199667383907999168273991886299072364397511598765094304359988041203718050748974705959318402126342361967988904624867989929439874246166089424051983784225586488434691840473074130429762946677306067610506140167187324726027474798153330565541383159893954791719826199037035536866062148295026087573035857041445005753800361674628367932169292497688237488309375470493868991527845904129414618023958358919346505996640869859322979132770456416675417564136885176041080192908648869010120275818231306216441737821821757248386192694469749349634796141673179456824771603214577471425861536774739018113667466698398260001274919568381099444377207322446766559870533094718950863124321480991391238523683779053070611211752597840649663650389563115334697494033398294367361249166005527913221945982324315282074124787994006027360053858572409467210919888233888809274999981063819500690868938775944065202552826181176275776890414657960320402000714771901295285628711668656497534382090000799568836406797500733388073260310752623856379531227367617361786043612722360082954695805258844051630475931859298714621128211409731601848893504291727131706903993568771974220216292574674894013705063731177187833539404441663521716464606252985498403374063739149632847251868068682761495081117503070610359302836307605642359409011853418787055656750820212528645836322674489853396586741144116317646635124334526645072449701727532806904291187766433424312312354835460996342221129974712309412148181257952455394887559679265169370167108801426902914627252737543000647506905664481789285958554525225220428931651069797600985012380335254719250188598974391534850076921315980599390381680007839056544156943941733383000810370086697352186578204911007634174657870736587817876025163117817758999306144157823741781315103406958293144608613857318480922153606277429390769851160626865509463093883627567036334501097024306211480826688397785009575175189515283022240453018226010948646375594945705795165786638679983293929718790531301642807092180235368618489921341403532769797315613639919850757665313927100843805830910120397703314927081652544783984789901722445163383913742414759575322973709604389719421701272433841247642906239553251730682341516001910662448142223985912596936043602277184252932870877223230799805048833199044673405360357168946891564789590280822295344532693266172889044075825009519332612415049515626496120150475722597233272413366339709465436307815723513185739758644322537487250215872724884290359583467113568650293703413848036847378414937326882055088952470026385988455495002998239109878455972004350668555568866576884338657273617509881947478144177776573343566686058551562282294113154306304328629374285176253932865168346851367246156047045524111727186366850438890683703934845152867628397937329305571935311098741397843350190930862213340307380729604835879108245664238271354139163904928018211900362023804967549010771911123250679753469389648239448076252630726522666893107640877173299193916519195652632967928197814704059360066944495723414438229375020971784586980724183433297489081886644047972013698181391870308567410021514922291798097854494201949618565029451484921920322614763891940711079082314006448775264781209076547861544643397192207925287300829572646049318336820200333521147634526112339689674557493468175064825079807676025906514243651710274931051075155047735962469347818686589851361425932856681662537204565740309996763574929365715301368556386649705930554715405899084022058521238716759642082964399847681933961558444009489587753961579986014886578203435395374586621371981755887975679231967500695643493112469184127469845543779534989526807219007323784330206966027744006553667028359925213598597641774161152365410107649294087772307567011534857480611200895395720075444373029963667386228629733777275787920483899733122084900854533771154733271253076085578163278449201794661875268882547587936427775556660074834183240540911356948773677064584374888735603716332844683506579865186938816080286371212622472575816901066335244374422560867857403090629308202216124238255040836251352505642163730754910817968153356590952109901677171533492262679274244715242696212237085133963872177080173611347990264695285286502419103822492282531707820476023202220282264657660682626213976363189448026659706016788511902488723530507969792399257120329864052735960587994745497624279035052436868195118219670470055707960918310377699042040727932968759172032581684106051676057279698220401920557008560366269911161647265625441898876909113633826343822363744355607796852507694669258220212782699666018782134474139212057238163249560098363416542824179266542913745828229996343417074007381972583112289391720802213267924313624537748719810428596650321781082907008324935239712984848938367284549856189709576209303948366109736748503435078952192509674818208607553230640363539936041754765058858262648273572892840282417479982532156245022690825696461337867641978045077757857362937240424768169189788326313314048426911771565385658070672492475379084316148073803568194194490082418588051522999268937028754401873438901579294538130700921373716727488476959836721439893677920406932424933680308459659737868994896392947379064791917395249747224607005982378954920680243140618337108755352724532761916517536359795041726348246209179185256832852726575289320291253231073453352553330200728234467554474683623087367653894459506576195643341302488879034657952100994936142241474213115228642450224490465387251212733322830194470146360376231986484954858331828561336001087565808625610440304104335939961947067445268040317955943204105381216274555542483441364515959991866030929172224965398115564359973197270300037390824412508730903005908258133274828737943865856632396399253644609148565458433941632274048923346347197067257298816261883984367048904735995746498340292644570457795741140343345348547174269098086297593178362383832576206428377443165598708337954359684548857456244381421036718862140782446613756160348575992901653376931227223471859973608327812934612563737486359138520959826768243467822019915889531184837566208163645391025890293664389083586508765260653244146436961520425718106995138404448742035584939270420474946190602094279431406038521670337246750245434928401732936665159682422610239133687390528900114078831591896146886200650370793061894283034828675567111423014239962171956110135779270837101564763950900342804875498200892389006120905179834783378431412183339345455721207676250409364668834808320322059896488433618363224641403202979568753244665836884453051847089102178699849526715029634672057232961654268354898212804405443801136075471925111006747329618515086947244838457474367049023550673961994023735546591736691052404054357473529062722973633280650840945835400239506751441580952447303805319941428804670651513745403830052880221550214736688747884452504652428746141306374722039224393224809414476684740613591350770708953553978234600929961414652808661454724840360365168825467892878136299345184639819679030637890741085373180036613403350984323279827790753747413350519241729313994702646949460871260701433314755965883467475456977935809007645233648523920711747740409479984342092822012435384892679081417631048353060968405197646433444622465379640081531519025963304191448586973209038778654278646627020481892536407204012344718289079092580789061511089738120093274031002050327032984410745528951093462051767963786619313975859797588331750683271515073721990743645458272497509772711915209179411902007374928618883707092259862151978459807030979360723409185691111515041164146449436213908570601980221668660294401848638501884135720618535025596152104904959562778466878778991563188563423054273849649254213925745921977861465018532036538462527355471217006047851450363687510248220937198044476728666935922037889297621805021550462918265740790099059254585516048742236267348198316602470064264702153688997458867833835347504928338747424254410710388725506352751101944729396492965669147786109732727495150749032396452428472428157032947014014365608928714581962304716730065411891788273633449673034784145378837832509408910934654715185444414241029204437791867752454106333028059382669043844755618056579916839272583969883320558582938524252693485480777993710564530845874956802063517792405272683751585102708351522011463605097762878617041878995622770160773579711869726673799663500733403887934092893570414975413057056151134922251644076893966206444456380653009547310050642853263310629761196646364244382039674754942456723068436558911376118324358467424343237023995596035448537205860602497085683012913252572246809208966779344463271619192103445715016919295216190001982094722511223120523304325392627436624884747784684068610751775966592534696325149309594863416622404891528714972011147931708784981167650223652091441062201383894834024606496651680952017020433941484202680768131494856886718264914436370508057714539684679605328503682815233174612262388640195134695954944599107776214138273049275239766402243489348209532967758459650159365624074078430974880559571644921284697110054053385051311564297751434886121504180402848187772278015870035160858805306916910151571245548672263565020978150736876244978556929062173989097824193436443293930019511358623756841064396108637500667458532162581301954425221889331520332403536246796274055255721683188050975160474513890131083965993553474189638528854262925109515572961254064676651106998392379167785156743217483572932905006179894477276107402560231126896249162046633773240760941558445815413271136009625434797376388599294634356347707821639055965241188785617399356787588164462773380211802488391719306282635537734963803439932696592837307672623131835089992301465953573796994126493619851743492875272451271241475545078918678247662718226985319466523214553629611516364130567909937727380933290147643169707327548406026630274260490451840472298457761000448951263599966008073619478853825817592056530733927588147617307513062665226065772108965533959547843993113101208611921546819951429245252771947978989161795964763665974997310706099655921060185383404471905212862811221302989396742558770160302637375807272361559551087491723782612212644474776027449436714499991306050488101830459845784216128601859064120752070429117200955449850443432576135098714104378784542670501708374544572440400106142682873887572634385793080405597034748205920300725802961542072699132586348871284226501091109255645896367254317751985396641334023047956567531082379308297096686880357713241868329095009581609997145589868864602736366747223027412249922275173472728838955404174122440740673359285536626536868102334377439342147444709257056706232975169448818064387272602873972706710481301149367708420801430888143194091592004156457017335778513553099024178289573631068061740613319320709188841486010609716392005939349024495664292063155565503720132319447049864249135335775531197515596763446511928818690598367906812826689704059021882600292491530809995128314459422131384449365718023040485996982464315596138145537613535398654329701080900962838258781399195985623409696800122846707658390696393297616264904765653912384941915980641734299922774809732573218266907812931081796816143271730866821535039599372244396453963161106160312137573105818157063110316240887159251189152770521486279112529735911592174110048364703117335221200951526764824567064990029960933365345043503860055109133098434523875937687350654511977351187624076292437452055536882480749144686845442368226340491760443520417557005343628525555387618434076469995181811117184314445342321692296453371104812675757522840168945984403124438189394566564611410714095490868235184831794421518787663790278875159175652677957051715479775196740825828026478477153782389597805867479891564335836391583323529598073868700510386834156022168761846989166161009548696710457287873830737911552048460799909346489387653899947864371033547264028987556155309289867707887934341847525587898783195170557522789824369846897037681950003386508929902517561313904633106074677695805749335967431953210387918992067308987798522978929004409087416111829176167280780784806285158092240611577325613955675899380142057522289403836860341032549028026259556725176305035300112726948492277632229184339034157371707338147360987022393741794360773920712288065362835719016535496456301909073548385478536992324272151324757945539434408012649427375524950592383730995021883448472769047266599584922697920784259148285196987600023301052389690613501002423642665875473770035798899600219289944073850405317714525053569860239735704547552910370447384268671084058006816691033350834621398791146335997064552848321032896388198258802546235908913558628524028785339309789430286236711386969455518531322625472407549908592669507323202220290213046473025548779572424941890826246397162138175074641825635287423319278578132532137324435450468181539734790352487281358062531211083979645344167565581929340525773609354631476540050643770297727207970447972532269981443795958251562848120729923606583247935723400607596429923887893647453493838731482903728505619894682586356057776281952205280771506279621241470255334204748428566022461788123093710064561711020841324157527733242771918617532482795696112955618801013008866440262766489887912186235324394503808323651198727812064894441107500682467894735264332646079944142975418659614158368459371224382252114345473505992088834431709586465558680497522837979336284592718229626478479093936453625075658525585734757768261838442356512901398912506092293101863675624902112855142686165448975029343760345835265433686532286323534246965446476670416419780062904180555948698060834226230715483476776187844642519235550603956285512702547978315172934602374981492740169579948082812109951501345824881554055132578289496814228252313291998932805993230641170616853618491688930772262770296537270978193177614614540553182335338169475588648019021548157068041550346232063407845254452769153067891342219990725920072682415140916262610351654597718777019708872334832342530322908310693706232572225074467351574674734284665044701695866110185791663968297233817356122638063751839488472985631056297156836129886688290512140222537772875574275332146759430069655797063396006305234682540914519747124998032383835846687427604778016401062210082215736845583384833569232059412012120156502714345655743276148317321701723718754439245239482812702182664148435535076944110054551695166312433915225466750018155110459508286431583251525740354873367944770909016851129751843099819183253174891315218463926738311514598303816980131281881986172484708470356127820979661800101406358135007273976920123746239776910470053795049972553906623673567397347994338452431058154412055408039780855126775818237794154790142278554106230513808497966262432851448796529758369269740349912870063400585927313937186975248643512635955012144741210270311754259318485979734043763103837497602661612563551526595999712569439101567801974959201937349646771426656112622285037789501259785708724348094139036272160462606344474643435658350616902904626784448314527989101096313755754366770822388382356276634373423364636251920657341195237950166652347062360252652894088065994351945114727092308099894373264718219340991855557027361172688087540563079295156398156308238590217353865739002382088226451807212759393631257394027987215300651213888464752219769427569077455255444231636133028562983226937090831035795050594947445617302442835182286632099770133581290350260087818270075609629405582390407596055372395034348204936326947796345931365746408405887801234059342346658973179637919114244245934577021129818081541511163308911529136980004410276601235491505164301390417122268983940205529800610053933100207995070919685954060219444268619762241781258737680907483075530329065673544747778288914682060394948540015100287364582302859241117314317414805782820276438236829140749256603962758674145410055784412561187599248679789025702349006034503287047734343297332338455044136566862738254305609044091033317031279537793428888649158038769341865964392693692833410992988831261442427812226419764426009624792472199351916554967430124681614958884724640580373723803824771948568643850523219850800188252330062280086638225125026422408725262713207802758533227178614633538656070675915206680113441586373987905180770633214355043961780250821353966104128137400909042868878626813935981721543159903175432165217649451807169418648353279595811789146440718548190830919612252776321756960840934309244352899974741522589649556565681105857975319152319849522927799596860293604195369909518855668140974696320844134258935571759510937036496928292613376767023028573928472293483314633927451748541130223542953643823042327152026594049755416343611294606448463088182607229473221013712580236000659483164094063017169702707155981923848675301120365477586461953192295188507727360636399386308665224010699689113315788241821486240714699241931686910344314080495973068799017039582849974431224175968506985463626292680903292997987226137359197596947172785817200233501766601096443593876977922683227324785334242962277832091607929314584425579487489071201224820411159322386234531290560901045793123096282641583988169074408356381478144932384585915679553052808016422922700054167146761446535896194081356236610032231467256748973317069584474021487346434701788088207434527432497234439537573310290669009265704750171892664662021007716344262917575978269430641422290852444328979455944116258408173540381279081518423600343750218975566648528130645548514004405261083215250110459806209944273111379056480020731306522182315692125793397914075195705735221467613345448654662187630659362248711676589627551772141975461152692088280527799508872957728693422551770873224438091947346677807427041484107711523768831822539388296706671118279521768390692545885381016775728559943417987788321377075989550223182313735062739130187302250278004860864465169464329822509000128551141477543468956962212714212194878824413562654026067929389497398566702295829050495769838996846138852863090487715798101043352286637062132123798603694570639867971506245419691299973220469251258609320817544238818661089118867314132433947617588440312049769233584874367469306895063565707129261523627937623554737257842953534315834266738782110295077088645063675809816185866607312850737025584436702570898546047590427098393040738880330171524585605715391994081212559872610916990616723509207577711809080381678866302796571590399824580629912017074684285288498523329839158488745817640625793859758496423171218255632866378100066587191415576052094104027984953799560777958638755819346023794135361170611676218089410542883198117968543053555815812935848846158303303494579518730033110697847382556354162822737872208732163884442327775113299088422588232300847964900550011501330558894456959789614587136424220642035966321969638491848570805542948582520621468219813944480803800545195351972488449619293876875146579203551887633006380662182577497356289154429050590859202500131770959636591473836975233279788038065991828825841569566256860384214592214917758629393881269793249928275540241199911996623092935239000268478974922313197824848105956805646094320224816225457637705513050849275268292635700025911973477564370087946001794228823169552381403471111491433737748640652917237178217039556457497895574917136316914537832001653868954696389746405880380130347313906630948754261734329213100076551725777626978713605949483379764067001826250549461322928559005812759405541679178536433706057152712605462281472320490579645377075900527659654986234437260835008355098288908334102525427889438514516454697995293403237104787763762337247988879630336913384470599421806389272194383587948246113608211675852036167844158659291035198180926950272451502414176860970777525163371837072951743535504689761225393953836259823388552211559213302832008219224429317085990623943367494834055696008468077507912816586444221731656123715511290375505521102983632345207532428051544151022631767486021085471582370187978905292219390370012544723059718899098402453231703837255076926741343196560523512841257212235576637345994856303843465437772987595375398233841095834671935958669366139884906930045435076614542956331995626710217352500195987822413414206359470457012963161360738283716851366036742247942544141724149732872821704223932061451612522643150515719910725947558785098600290961235585615628510474460151564491545346630770942178848306655763261840921459753514740421951273399000398724516581539966004158451495436129363910995542972542004314477610493442626090045952819354238824857477776755106383367499214912848215421470581869844530959091525936172138567229554759026194609996375114244297134818194809592001356698632322207358700235810219700133089131566793090327816396834849043347624763147768872266187784468463058419370172391002150673574334157689548133339713559452609202049115010456097506094540676219492963044150225209785069517919866324963842570564968023630391032636884217820831630834906108567603103007377463568699432465830256775257911715727719768875448465960894260950929159683939885406290717646492372812180540440866034563113318263916411336334581142795825465466247275137166747006246465763151111304565682677509181687687212108609690509902500664044864801595217799490631432318635180456623850272920862249095579923747442281385458963573672723084113979913680076614307230006063737368189181580793545567631280066801465816985213250175447816939792860318783611289063016423002270020836750130954950936834790671795904055610740191578115169017967700565560727284313188424216548432688763868955355025305086240235610390786538478643496892147919620025079899961260454747377767229107182972281517868353668952148454610501232335326067411151811296296877214330805495116762215790667355446888621876785700116229756676654677244295686505538877812217094430756340488311998932920923736192227822579849223971488030119039535932995317054538822354926962704482687779581403703398651649748610667498134967569406126817661453330994400552699939114315998545078006657626456778530522575379335672560095439079224933437846422113344181952495292564713431220867647227270439277595290957520371037524704181081977964765231217490738885883349155092380353232778799410153140563570177301534780274379567218706921181045541042525781870303928510959435660875940101182966010679288604818716764683022091498546667664387886884831516647434098861487512774900436465166068417768031082771988710376266891522354503859762962629536885356781681522822605674066660863262669855096063397432244257882343210636405480587581713977799965926550219483085276353971124769292320978992328196924155326787325231841132700480832333798126349895973085873886159999731245243666346717965036140484925391967758232825489579262790886987262465905272343597083807761553627293170650767586777352896270177744484739083337207003833248718727494320089367026998467781515120058719829919885727762301209664430325979458195160288058747428440654340653352030756164087989501537288847919770821356709375287486471544912562904486773865172283744626609752745538991953673330630565615422615365802564261827149458944499218680472842573007706944455648887996617824087981953541155875391658568373815132726083627385851449172919166481637912439523414394696329096890876101137514485305254030676469581666079573084482425141382710795184630007390452058395287097396909491302245393500004941404642501215896517339549171519672986244047759211909433246334788602802878983013927114822911176306887979460867501684729617565595827734900827205012965392868433666485284512274328420673765106349049658861460845982927720395374117057916620926978065229614710174861177547136245848318522855754257668926652527165251572845777897522747568231411171763618223857249995695270856708286487654447177803245778043415669235108837996121537736687092164774148828330439257609575858097819983011921502421831141538139824546273126544700222736541462693472520797878393761882050984822660427359190440117454562113936447885609242457594270897217262290004771511162392673651355055652027713550737202501442238839231211439465267781941458325290660527083283295516156946262775874633888886713164920776960471342717016065106008555632429136660949858416836520872384623698512843907800149608709471724899244593278089193910785078307386973719894850375353316683930686166214428922119242468763193504141793257261047330754699174027477914094671374870783743695804020163525783067842667826097165309909443558232393570142503531480134800574138801450442411353274981251745266687262344082049111732162157525327747500661408595345434118892005046644788408604383297752317532286237914904930197425182888581470518698491181422702755247907969903078554921716058946315417834440350774672870298611855741576778556149768315146570977666620204762410569271697986321504573316437204910685775468014644579358715409024383045312710075313970114861850959003319663363115032110367443091604744837572657276016155771150304781155695388752357004466558331232052687654091156050800259238639031519703808729016025559769839047382748415448969923743848908346468897853728000763607477547313339253857465355692998531954084293100731148784170372415543806221528836613587030676683923490153026428074827869046027074031224159654325923508232315920098181366505819572488961139642786841430561257260722061726642397472955485405566311627654600803140722130108411972906033662037194198992491456051350242454213436683961538365563690924284451913086823325223653509493696063222099459511501453744492206839268383933213795939437521860295733131132933764840904395236881955124452842943378885192025868409607150063661229505124891394886765194254793717093996844267090313805693183721538396785669109455128656713266306722327099523337036771631187582605060050201121206475278481820393144833844414526581366367826999656071198741775687488728896865802633650489118394592940933262114383074813816932655187445806391124040418224790332143969242269739106458751911758358380146128844270901772211610089678427429842900998023657362596550379441662062931205340722880312084776453795995535772743959774349175753784978245555195242673146784797690675444196322838010835258694847240098276053830636792419955613422341912588607083598021001104182109620751258454857607543013170484538841270585788355571889383674814206298056344116166636939406069748253395799726065965789920610780378030654995140252993535247647755472564460704555966052523905366164703741526501919747741512221544232319220968747322622216326383420899360880715271913961131923258081444132838797055766768829867038361947571023135358240383331016010893481972696978296767003013175360857383957236106885207233835367196741983528781365227227033256789862288485612493910496352764359381571954573444148311124103172216919610113096396778901539823130964359921919242702364778950087647865377022731517474645480155592189999344708745211626109373577407574341183618931549054891345403759018991015790914880012220926581845937580339072139981103655850623292065683573295038829711796244331594671451133953813031110906275263301078504608475908262016410258442141894584332094713477143631937055996040661173137558253562454904294199741024057724622605038917451789763206883881456614404670030616334117334559216231020554464026175294269854499133558743850650489301328628825264583572654889985599851912902915749386427695363088306734239079351667837535624327400860686261528906117820040998727219054805179341785002309436147658747787304463240431685701980704476110859937042055382420406317485984064890317342669349756765656991511539460995468179470287170312090325334144121864239975941061698731883463901179282359876274916265744881728619844632250939652773076635178683817289433010728339230124924083544715925585634350672430300007433367284283156988935685654386209086619302541056085478895601073099497230684825036596971165875367121773822481941715172268646052572707762032489155889969298306924164331253525495239421417177069369650552433112856580807064381012350353399630746876394555447827854849621448451877362412658418562451754415447203822220770200460177978505794850751322790223706534833374602857128911424688126521662945327821642630059366781324237636339926727491234695826600460353842273708438726841327400279059694370890569264925763391384787331982199540869681647442326346939990342817115516895204526883423311291109045309116672025515694013513188386665964379438818337174057706129886773860480585940018470209643668606458946241304579256167648728924199524203677081461176406738322776114393334122910897778408473738613479963314215008807249994631157110360610746165344525508184650844902316121832103295810025208770047454769078468574588501191290338728076223153372585463115456851507887413750991929336435353238933140118021804444371556868525182655010745011708322417276029734809990417539056112071734390115560845961916066256007482845702611311488341776916426281152770637811890379326124540905074410148038029169293328612769763247012429317071798007450296998843862405396469329836821751652515421351588537172749944012340050792877913833841994149267933103739315777765015630805473116710965812459413466631656128334029186559591280857023444620576386514627679766895884616775410336722656802844222630480206429097537049009883009899391326664172950976164202719488539037401036259186052445157480320731310255256043427450907399982510155563273340518953222894433390710706081165081602534297616357412914128953004271670812109109407585798510616099849777556435712586548432892634764905287414189899111336146495797957457852162429422655760101490820541224236678236255833823979180727552895583875259833517007927582496688076153912297691160620773163608065404739307793960947013012672067613006121487882190686279697645624786771104555741183116452906517468315039195128257866808559255833220509587518184191241230060275118167659577925549049900169859187316865617751516500356972005683880452318829887766047231020754800830208536370194381423834097425489180398155066660325477498252219424954489118244764379918586590076707384099397033064335708935907221555820791939302495591669023485338512428700759233449090977605688829969366194235936692375206482774239218938202253109875194248540882653272675767081076550747668948931739020480342579396277692778956791349153037960165366455107361239569932779678595594320671879756732005721026757506059042229724712648044322760385774928039749086130866710349411470679944390821997997044506703072778625308044969066334185464143307316563702213330046139177839691146056825137243595242401362157096008453697391754039867163889167576448016368778483149759102011147037904654698480487693524315128673976702112636342273781296342510351760132128438331568343021271733371293456210764759410722855146180181939817481005466259606341032595074440947058348808121171705046101335908420910188898403400647239828316860959080671861418769396180850311800627275108144507955501084664620466093078679510799541807159946222041335083824803664301175195098947069325736181805138089300521878353724370928981267721885719365758278271210002009101111838436777248517135034353197938924905391182803030820639373296190707373828978181681369661642411794797044661176501537311823529116255720298826730152983324026328711201331875818766333182668728245785327059361230937636023646845025354019483633351096180876063434958879317034419175946870831555848577851435111619567705262351295023067943350158571156445697276063587086367371938141321714197482294152014742981668725740645278329644571575017035423188982481071348402438582805368633481662239651134896628372387561065430207792876729455326992747464025636245651184168534633511974552699364529299610493435558603504047372965415832691757114729998665825202892486043825053138335420980116454540484674114853945486468934350285183743144060280903330745420759640310090368333366110906688653444383012726614751697853996690498694727656165312717183543157164193851758991801827638640983834937367202187426947117428848431699103083365183041290373649435230325891272959838040859060804697948049747174251771259485770395137535941923998801407944272234125299525008996900656971122056243489232690392091857965429231407029368714744716056974299628322337936950053494041815183602901821752737989713409037290997785931533411618852529906583332115120034000444063046906981428485915573918928350409077419477521755787195152616145853829260837094227405496966610268228146494044435583526623045554539902891684584796792615295159430291304643686900902531723358901744595574861374859572798532631045665560044818933225891456171784643473668461421006944976488074361043977120450862055986317954972569084888161934949667734090911775834414977348087722697083288831325255432023616629690525649445161025588170066486482748467444953605654553725433041016752379143183743800254160671587677386937978871844878844051014931281534708368325569799862834698669691739977216141895367384712598360049693166814043943440087391352186178847666218965103025333114314209944290161391245714923726073915908504089881652399718246877339747043816967355842871617640011102802182145823071911975616677974382670933325587934834629609899446615204874333569360500851435659094006543339354068193519699472105717134476850264725953744854603934903027104611547508791007855214298388844517038144535252524386684214571489539624056549582473646102477973511704336740997347128582768562127321669636323171166399466081663481989565823618204617972240437373468014631645570172851764282673523206674108192955369023588264736011675443226555853312386470144496945836115164566915120314905006188725278479436360777336547384743152990685570187714376098915531984807161177439793249388553631533544908132190146467160909033020936369457608475579032490959844298726525074852858985924481330036461252167319380604433135686392941574378550364133975722693633048519886084436454996268248401510219682338835332280716347555133777559477366561040627720347116998777095778021517149736526551865291640928476267767962859875507579570059918116875593959986928850098888733092916174307958341175678272031342984889328539202229555582464129019739176702108900681289737983040540905194517767617222114786981116271603517200285985661093013045871316677309942480442657763861756242706252656487156066815751619236610927411901614652976506140471087728664261472428172481599833555091694869038351423586055435438456305367716596647775437124419858224021228985091484651300761250204467194781262983716422719269215908578040997801464655321484142446733775341660458979333356190271018247396549699945219357689980146410700087506436513546970955152418833715855536420094216581089003786536214326116543959146510169727434700892237518653403607589709942757973069488143073733267883140941198196231999922794284190447610693722450417201447551944807475366408495263565724288256640579535661354212679736304045435976757310601331337517338705720498718132030252778774263102922170491561368098527992193852488779921131268418756591546744236051210471178110466423199973730311903074214258092291209574731669436257452429512226604654127269787803704010954979039658323845612690311623914650469221519965066720425988816260758708194523249449291852108023835188150826161659158065756550188493566343667302406456928253359096609525282703274536561975355515888949019729341820302856468796895390243554346998088977189815679484052796690762780389290410053006208725018071924360676518779018049378656647953232723224665225488401041228599177396090200777261212708841730216269682233632506566830324204412001079304894438575370466045411521836572229310613504934697424859717736089560875046356442705116815908340048332570249310985834551943615835683008549300880114415407373835073132707534160075114623821952347539029561463478089484657175574018016574102783571993530527536607608749830925521025412900038521351023663314112404498269306228867907244957990283905634510816036995088192448282666364557448714846873407699615619482577291293840241821760764223793072788914041152472026990746645323872207250195276540548043430170959752096596530670650994381848785249999678181642325648540883513789764855568089900649452366480867978274045394075097428930606323103025800905691853154888587418839111198262830854455450736413467362806762553869818810995485342164334742712085312884883640569273206738295898227867930802491799087620571842482068908037893422542413537732462768433936645924753291907799923649223146536756957789143307442560377651971646751545065322932031798194110784669226822744842458298558498815707114767640488747227854404561858632124539536790055432398479253035257817852465434494545937989158699414584985263999901155894328055165176308343057023995839987405073074383103372556256467336245463966131261058844134503384189203786363706689642379157496158366684521028444115795675378352920841537928716919561609622456673590010721353186865371521546743154585855535887503793618653925921603158015119694777239337213149968815466385768056968487948101732576241802906116894958438154145918183102267490112445132532554500389111043344715691611179944374910826602727363223330130823996188572148022632164421350186025828776195265692887517815389043129636703150519784232038648063752221386736564968190943621316114876600889383121286330093325042577833517931066558461671372373158836203835631930039909164918026691193215487048177955716636083788663737363958116407148334709158017405635915206819087909943894401719784399883551459737617592164746657000313035691364681402492348071361160498994975701109320869990455155937358345453567000177309041957393705457248140592306024821963681209970348826097906263932272723275657428985015074070980852679632930529903381553549537644296736369163987415108589325463697801630751466692151729491422453824536844386554120490844945774240983734593807340396070521236040061334290508285613366003359269130375985242062635819365446246554076797131114734773768629330379927049802334848869605391451579629212030999361849073052846582558251939593495852005642441088998144386487235867155914683081222188369805468867826589022891250675950842143880342264537262931722825523201673627160887089157204434801348968146823757547658243195068826429864197394347239574352067284836975489205394980763860251218503780700982381306018367233223787372691945712073831405255324628693988072213200884840655180724581081387381764124439399484324897858359789561069857282185518395001074686579619474879635662895577504773344223064254262789194116057398733579174814535910145087730845216307139468434840856628768332510846415212771530422563873989612095760628747775529301108917856478426364362322998142069998545958467033356703661079234137931618020310898274235122854864463343470262093946174551263578371323968208094553638522811794267704392278931976661958931842240219499697891642632983916014171226710414781592200603996860746561751367224210406178912816527439671952286133226359919483202503624685351142831943234337454308816706442222562611488641686053650546545292268708318904528830194443082051842368511453973090928054141855732959398934223208797462340019001778747558503404243410713957515913954012034337971327648840429964637634728169481503178303119814459948692231621666061196521027871295982546898888924983703250120661310295793099513264697030819996055841101108621628272413084477546601761836213696832610266584430891107024759941644655203934315319777691781721660220571165456645855903738050201939011682216720674085872534984781112639772195300610438277852789261602476136892101300211900668439807847949252620481506047986064271666726519427712322919220443599013411153015777867080630825471454306999730782780469675151339336891446402592341311732571805174418289740362846480909472847239261300703741312638520894719699144325534770694020349023858212331024729003512905193529502691464135190304006273609373626394066032492814899218216977907327736790858276444982904464487916547609424238652922576273551440839030405843932816552670804180484604869500032824169707066990860637495154975079632626747163340707380669113243206100437570861132571276551373617077587751437795449063617064958079763010602590475386874534026411736568199141810721085753302065208877778955107240551585845217494864886108404631133244457666751538171718634835548098614325118107531302185983678374684750876354308953929627403201737682785610587720326120433133563043971830967959122789696638226671553988716423108676163579381465892524383719281652770448177982573675909374697965141248237200303763852619861011510933420849742887291966459959418324385253666393026354701603409472745205525646204596470620741280303800999664628609089916327373862999681203612682493644517070423924776514953337990062004296432353234892412690459294308180350513995710133376387061395828836040189765024489574680729199935984446417509818291280752993145778771233163709349902441041802900806550137368389620072742855134649527458433677687240295404899540104805050355099921256584749701321757082258728242193734664157554312507438015495652513903639092629954648173515216081706251058922773371424858466801889739028569980516997678924184602527512508574175883300750346268728295170780860316933809603462779920005293524236179287207276970733721289710954185897641728985915765141825165101374441933128101444111301521189036508614942045535046946434413445546543036691876002514615729171113333645739392348651835096489548355818808574141887120548465003441775149545113501647459493704690028588734857288396502056156597427822268175481875325374507524894251003592358152098313767485877823246404871177766863334683356707283315417987184277920686843165279027593000932865785534369935477112841007360624773710071398277146672087291323146511167827017968814518308342927809480646585797571300047190236449856988920090317792776064215542726349088430561982661119244608536377670201364718344471993249601599717945027131708980539109912695343461591491399862705285387535372338654270840650753930042786779127538161560250206642203528634809370015777513022815988382652403078296931837992496307441525864704619439483442525615771500157891769437062270485798582299338182894888392622539535777734301528984932145613466839549960396412783644263536941282916594675661412199175344024048187374163714716460468264956006797525328039762766599100282496632567967793629590769339264937081769849043533364109756948045183918537723662658703727101960433304318560038348205665607359144803059613827044236138319811222157960596328794821379221599817220615672873679174301780100805489350015194310870797849472801104623409191182966486879417769330880155587402756454846456528506934891769907779532727601524467796775860911610731572751594611810207732996909416147802901745128824612100396087238262367384266112202157957615348821066068014070357392510883612340900337050694532521047912948476092630232066679172838778414918650827231357287091683245751831791306645433343966488798474375335185241349304156352547885155569887483461846950780985127542083530717626623833007130643879223638931523069699749789668506562544310637171005429353660846160554419757765087702746718282094590372072960804723036407308062318816965499183958429320226814367778157429142820202647444801301214392136800292449461059061988139514389477054350096551099304719648367879992492460602211354287238483808938620608650387761950092834202634910002020154794232649255600835280023974304916789600691866094907176126554734614129204625705641865491459924203644806930568904557040481686610014407154317983847199201470654909923775170570740890405935900825281200600912480143648621489879754433791706381752218937963038032576298442215232943087519494421318782695436336346963581373482741641177067969496182154777145513874214478603262853282175645303639413529602742710963821401024440190706873449510337560320313690515700647023724823115042645465411326801457586829246831861742935049071315930355446589078457726557381382016869406264278827944022073304592534072855093366849157881367255863286948536962416543954847527194000567960575789983902484141331635494373661288232128167697432067654599898540219181144180162920485564812250495532147553295241507832877345977238957619332450649536906704793750846979052005283495648394140139609605930964294179941814555804495515762168120924156235028848470678510510202522659932340629467192668859312261158503836674506598022343583909032932306574957592917663331252776325490384642302877603884678507835882678856073406140085614465922036715038950791740071896585208138629850969244632798306125326583863714284935746454917327345938702801614491412375536897480604183471330496523510046221220408307995130502074518142640075220516044878850739499741486957537786637906534216436750663275502953002895017895878714760045192115012529364129712919242259031168119943348728341695968229080854935373481587190168195421958295994153114075381228012052932966353307255605638173623744377095155914579668255717474506311453059002037858842989932406910358385967535592347604969944639264470604945752504099602223154152513722398053468099870258672524554273239769006799642881127711564281092652802405775166981967462612687943195564481076310008535054411774673468686034749945359384957271307011545078437193426627275844817152950266344730107515403795063329716152990170912886267998204238597636959654144819590418823560233799063499549980637206497907567848989037044554501562898196229332040783192882812893123666462605924333668847736095797472329961166008233728362103286081869468564095211465803817899453511326017719725440870313373055662092669933264883682106335217818478483629476639289650766911400551912313441169194368976954353483874502699793953109371970143570239291712396783954757660989242264316753067104821042320425048436805576978110146287951129198011841927137571749144383178560460042700641841872625924051586827505975136995046240798645784179913314332051161906702290280133598654997064401749340522419932903657002519133693974035479555262589230657438877245324260717313211239259370098199124472958367117995311543976233030535448784300213480918840456397157350152456923808743987211041952100076139093511396875011730213702475019203495006377040517368211281040151804857327699305676878703104848981335724011948813683623990739380264430698051206736592880307637865878868481459315805535323409242349540900436081456262352951640536615919088972107802817185839962453035132007954305065821809850213916504651555747152959109097420754644107386539491516653465779326779508493675840453032360846476423204532362690276004390731245839781907447615336352919291310790548356068158597062644171751545947829505166509828161495562002233693282729837880296406232615119547197888646105288888584157055262259908587920031355147163693719924304223875935611643645060553343856779770984631995470870055258363311985230043742628044323034042238194942731192678602821787295593176883033365937240718451839414638068861127906859886403223695949400800117995287540752110753174843518550111267299037995694124607517219282583937622549961042995249807774368437564471764082836153403114492824523871176695907623326279361803724625108485180634444828034998461541712107159653478303851156471718166538646016420997263739664991938365345230674202056214936414204095184866603535470833330975282892519979963998608452007952286071160462134909744093043016042427725741664784823809040506677793820294890341819200415515940544886330875292690404995757465275896269834187936605126461875863904413083821844056692307507513264651028734683425952354968331844736940407657271644435168826112925637457075104795669426213838599471178781665652911123258526292353174833606315243489471526807684654340853592647412359442952922775953509570928874594548818617571021279602776454723996311946510358028078851388671781439005187141365276971213779434825273421667130513972396831917496275925418736802663562646301394707802445327424902172565319747644746242771557430907849097002731906498899450872741973369099602931177263249519705983368749406630141808059866924545660372867023947557882604911138737722870903060559476861523237840625756373479678737147789120370990897875253780290296089772188828402510886966702699115803419760092764882651710162181006523351920912223228363948336564654968195383800195859172894640791457912389218408606059176075502574489851741115535774291767495308323254627350318129576034208587068743700307451900221358062971429172193110248331839029645256291236097270616953112751497170614648768963863856760140195468277157181887994052486574296360602214705517320664695479348030889867685733652831323386925762982847149608055080397691412163949853986263986738126925721375063614170316943374865147257073642405007507033924378507366397303960583713938379630843182413138047862755302081063781310630718311139476337323718476942030007128423822618191538375678930809423756443617973749274038884279109004999437533344027129672571943459988167800342076050336476326962794444470929812579981940811696470711198573070280399060207629059917652658188135100592820449522285482181804278937955787602014604562832420528922630484539845536839861199410411039407438501620846104822934348740948296413821773794329520710161709619154507057803083664336698557612535069164876025285373899208462824196959817574985253547860502064984874041395338858913663080377512305647812804029576396347127900892558947637103922225172443825039126723549523285026717108192012283535689884238740809244767311317890249647290104594002279232631116270131250488497901750163474707702188094951818409867831144813490765041583529946347339374099504734520002095594885460162831970288019178137846177571279492531856653655937452058759358625741048849462961898680862037859868851473475707516694845035989796741213188789714682722030823951139188439981685283406648865188434546106433702688004986116857510252175570352688587924820314580905765002019752153717263058007853757023417539717537783857865249632833287833290047454473409671984714591936068280485295230239706966307940298959083114290460091338415512686531964490665710702282685614445128910261372766119436394196324603525259487954135204416316905908080563370976739047441893202803434409739746902546457928630484365104763175998738517201749025714200821661498928940583920152345143804300721696276836330129776694215333246348654055713266801776702501405629362457821112168123860711381388033670106105386624221976365014841967996261323389990224175027286094563070846354641956336392707377971868240157533348706954223882011279863298220710758849886738351017464832041338094510491865347401178123164220981177996631556851408675570260058458988835107385692307866100904290175034601547135923873733213856804048767501028769700630413192966152865990074145132834841472592623728539754979649364167407319139270634571104389770462976661445344705555045127611020722546242553462071753365234241738766843479206545148084540431277320138798063811807830168069697926216188002013224567306890910819080504797013883480561307096982943135815491390269914565647570656679727306098660659711412544132436121426956093429656039735724270456070327344132117132999020164984975132482903915981646608906904019108515146732255822053058018117665823045990643223222799493782851256583807322232996005467409842481544327425546199773189696228907746517417284796106973257834807861304059004341304607949227246938254495491379383854782692200917275387201446895947932149768143925258178455801456115548728665760760846324593669194493735464418860340372675336248637812102528510906454063033742446293337329150928689160255043249612255519734697523982070527997583259535267867242495670530544680716691374332888319887397085620901254705206972178015127163035715199433152955245747796043022518949155829049104733573445411792434927286012560502500812949903366839206948317428620722551830962517375711763934771070696814694227721015807111962359085509281482147564979961148852155665044993039375188994349301385190384653278131076183222464047468968507668706723197258607546656474734049551882629064991366937666722235299717980523949463402604050520521439404852488369683800015607861618437386715565238330188561426802139200610350060322953867475286092633502687951612457021257358678819623610716438758855797226088096361472976030111245385480518962185385944603271589534450259563544857079232802130146641562962999006900472181367686079411234540085920746337217237815319269670120313755108883981809289858150334821375540753811747874145508681271016027399187691306031917045703827864079062842599281632001829736878455956935466977053946160984751641826806206234717486717590583294495692774846165796573592643894373264156253354600020007193193332275827705999171835262676388017928703830810918947801509699036308453675557550812996168837227819394980601976975491621251980949730080022763407710995260235771705232093464746138518648737335730259096352956103372254662383692178765703197186834131280942017132268763719698378659128067295804466460271808878281178826151594587864459458491322296493824445309987796345915733988219099774237283575376227049389807901861592427826476553007126299651728845006089221364541755842456853642308993765370804072149901834487725700531167221229826241075148450528096944266309009616855783812367560609509884768220042515901901075985352294441954881258097108336338000321809314520010175914148596546390225314336371816927019986994422953342932485791560080966792808702616954047159430434750430062681949972620189317290344159192112377052994346181706532256474669006056509996062496500105824783981255941662938365008841580783422584742891281237959583084620607250356248941903718172584004976757758703444742279982266902026758150984815830355654570040470309616569679324348552219459632797361354042700169547139083983952138783908711569606887392013482709605707824902582898413728648216356362708374250855402543897801019028823699105037109477022841232332760153595060628441547914663242196897982587145544554472062350946510242482273593225516836288485007363885909618980944446705777137137192710810519266954690774136977671987618390829875209653803487110321670937418452473554880328482279828700014032415797821700754337718334529356926713345202825457902399021830637313185379784606047537124100328156876212425418118206111415033667264093881312740773903970092070097701601273442546237264625476082255361769234358909472250994132176936983688816830531117738938594862459937358401846391379134727343915692711371325710928795167444567507448388358460633447245660665421815258830074840475940957572575910811654730558776383805056365014669413955531747561411965252193256855150019150831879699853772109568708788870320462967254712640308979857528228160626761407138871644016736840275473989867207769817134276529330735022451466026084482915192307158196791684040518003867979505348347513161445156278229726584797693262663206669832135024295903012305060593827211405083181793278970702493244349089394740059100442873538904720013407850871859513487967496785710792291801385862478913347481383654349297330319594090513223287215177544357225886553026898811091244532187260117090911869505775694442093130110178400656666509964271140333336102801625456042761609807133692144797396764868516759891165592676252679309237577330272922761158236875911784638334447024504130470736621022205328950149770952297626040784231474596275682687325727700288434975610654883402410704253082277856665935787109725449728834180533013354113421375545998631450668581972084631370681445859551784289909017311412113622473554526251732018859620639489356547112190350208157156921109350674783731334743263473275080934405725508711429096130605362105222929214242613542611203642107356014734475770462537004975007294140100137109164041687302341395607681317867613055322558890118488912180661924117235095267640909238201479867335286815136818834731528356835866806322248676306072133703341677155053197413781392456867009347466243770856840668516610973015168557009901910309843470534908979194976373477942600652361617903775926347781899835302786322505384188350403815558297320620891894519306825003117343972354047678669215862698612062848566216712891360696211618879903487630111818101877461911278417564131857524549972247151956669377266590872954275372764706334017277766638736024782553428358241984552740587154391051593758867193666094879717419431617486941397782885631914979849104061072422635059852784275371186781498392492996132052427867676261422994012246246560832120488349940561084205012655650003429117592200113865128269009565347501312531625634646090678762514542321823343701922000144910884761152647513689017327641655023353441313495285462056191293515533262973810620000202914348096341605345146117453547388615766900452672907209314605705348803534746737073911945811630986350659765947413910022684381669219889761090930802246717650762536679389157374742485360815231841702526177142700183960578637085586484959842052217836092555911867765829835928994428916235742081618901604045112017934780555291793877897572828399937001617859701930434416587720130857443480018911361302453726073413335339099911025981172800920217047624698826532244603325485328260882925873699745011620942340380093026552946838339738201798319415282973453735221123993342915671446260814429556913236577334426440655086337895713230084007263623961031301587990548450865811826894377924753737137775533531450368752367885182970768117795786902153293218232452038645618617119917805988241382382790424420315149156535248726452589679112887374607272151956245438589582695102254890240587739621991405620055859445740931726130901830876117562434505613529714472780471112556682830633159926262811971050804741666854810628581284755883848352111400365848988000582783691153821920583415701158655571940876199379525706448580658304949099355327076141710754906115859004944151904436428903578809887340789689697578839702073129674400611210441962668104397056519805396795210203998946527906588308878285138232234541497828474403915817493742163655031069172608754155619251316689360583634903946956309558276509310500447399025835773588764050493069101437591197400454716352179297679291119667017188230310794866413417849925053654994533641432327402082421683331835337289155685317848392243451665697910160060552955095772659483502784157808392114710340766939368168964242847339548948567497206635905917577024306347707541609116164451686496031130334388386434503194178135570004651001911361055633556645782831525947147972442496229570623823629385779701710247011935790055596748893153765544938888792488452900998314142878694828935931783512698290785890640988567870881335419862914296485964141650570390420695279498708234683937254294397067714903461244529944537798059469720410169091578309451633199306282690906564328045177985236513343311134471904193839037042333203608865064365591614738343077218088024462956129690325733058779994667248167718241773582925083987316999977225008827854341334674200616557271361244639550294659457214287623104552039053047662792674984953639521424367480815675849376636154798029428999651071784908946177963357978421546306431640192014993089933398326467661074373400933339000303090601080712048798303816886975551119293056162343476632448084203669318983052225809218229746820991103893967880550043999157974647220771706217863278715642293953927184806949565849461299210547038581585177036072454930479156506766201428402672259695821177907602162792196211707464938828893242708685151948785758899647208425830736534473457645370976245614924193114909148379398817741160273920767849334874057713907292540492588092791609421854680644192167676510311201479298997895400552923868066183499797733404179743473406948573456597409076009361084326398773075614191819382516609608489085655037519644393392163272522235327112763116913870206653254868529258229536410902535235598382457220281185907859650435993864863373904117798791983642097829279316016589272874844185853967719281590301977392891679685602889890037630597797998257182197592137859203367752274658743059600260160507683817906278605149723358484412177769785565042837871436058945518109976748420716787890225465310786404344405119408099869638398481438754352655341000210539271754316009238607224721463458047127136054273069562147109933665883737797867841922502042813750804460239572044233444425173010315503356641088334189103501644895204194383378679064904527760565864963099514576553841830497308163214358820981935380742222118886352110473782304254184027210968148407106339893453043953810382650993930160695785051274201173585448811451542183560164215335125738540516264513274927077223062171261873530936498353818597884646871029017468991975483094731391685855413532097256827427818840614716109392952712658023082811572345341939731825157997881108797683087312915160453661212182389324946213919859942399338772713894781838642840910411718356090020421051836093772579678576426345491192163109564325711261406545550528045131031837732569229161335618154498460094485200292892272419774409645482853800234855266193454902175567455981842075827812317114627700674626756933304386018208053885646738080313765700511677456027924831165859543579800532501190794378678036979855319758266233690669459577191299356892343179471021799804701232077560378044356176508976532424501012904411387040753104675806089847039816062812078889451245056592096716571000163940915927045891761195012253808709381363295005154282504603481489285149275919117550388406242576501935900473184943873335274963078031763086804838847734492929724349986062060696805794213871574381860172084656988499844689911146865817053486276808904179244973876307950371780504561566932409507914150942096182030342089506461887167587462648926401908655845879700925865077615600098673601881687028851160096177236394548264139824858483125624460343693836108852520700672334222182320928343664863702854545645543480584963590089916856016342596805177974895285441979616737442945140651478910724149416664732039437220708534699485211532410245256181468679568564212961464796229826439762765225702583803535723598383848325192465753319414921843182719066012639009650860666936789464584591220646385374630393865303187942344108967700732081684354373524438104441554431609265359857416638744157076005180552847738976222641907123622843515226816063564740685662439570886677864743441581794760718335647365112280098775808975579135541311414182727534037323224454695464511902485872369211849425650203731040925894519300339887050011066506288942551108466931787069278719154715769646322128851620589253545836590263152997819927989423131830138747571991329099395466742059769619996876888830065753654491824774202710263050937782926524244026223126273129852254699425274537149335646485558714653076352617065355813861918085020328528652201122954675403518466509070440923166072488734412332460707321184342816102130003123876044785474157036007749140844458360847821469935489374920357412732122297555195356277984804138388310651068935097632520155203158172039877092725443612886178774503273254804432958245115036886923476890489728256030440125676622934566447950671706171657488346131531203844786635783414231106919275736408564594067354676725192088557220742316120596454240299630901047514434890889990603685422625889070277992576813439788867282688386145914490310123489188285418798545607711223995678074112946840517896305737903201507998307426985612770947791593416223680747034100087316289757197982772769526733403354605176536454535574565167603957909816465197631827829310256844150205622358012025939173163760850398516021986713115089185333578814594546162104272069452476798627431713031699518067788295807507628846953202573678252767497504680970967132102015993062110898589865741826626761952351573103634228394872541574248734030677027251203483381601717457349437241300251103847506663794509108679505710516192495949763805984612854693614521593025793847397393378266564099537980229453680948901085128463573985512865926656105768876455026531707736416027921181461392795108503314173586271606384504826110521960786082926179371325697075567245415146560067370540930987251972527561236001219700007807808871273590148858376813427022943520156051986696352554079454628197642673387397937598696491256603787885197697293133869133549053239602021632142252841807512470314127070260076115861347674203432928291357463239618024172300864644596659233663064015047303102536567143286436966604786248213383383433598244105289107488094806900515490518927771042128118753412501804579150663332964823198118508202546787881382753632670001770754055788426319509183158215888151262317038857014146908555340228419522094850548893323002044039623593508371563100614933706535276011533558596605720352275326827937961873557418126444880906858010842810778297123375211841257709992467452420718951727285634059312567471546229855169315002543731162620608655935568037047965454752656573243455135989003196467101441747691540358157009213727878503987821848487968553844659700769027022337303202505095663568594255924094354642986501693883940453057559253690087278191628448324539225549468545784457792757771761249993229297824995638295247253369646517890828733392279026377301992067739582055740937324840220577337922885985716391925138334020845604179882557364584092309967979582005354670787775849067168341389284143379084699442403763312145119523879502704259616307052203923224548767164229732469567821231213256857576389896000344413101182153118432727593231448740056868911329389651331395411024416144845639968840939981389783468763504180859928598248228400599668998553819174423015730296057115382600082942206240615209993077030507501121664417090829384800724001873082963450325325792699479717218895471978563067865740117689945970174480741402438201396876951608091728970073200348273977629181273897110139352231506397595965916010590141523234391705024987116930660362881022261323834890933722252561043458273077808038588557852799319080584442363798339118351750835852326992343840906785986944777324003329513510823807850202161943592384147690337530080363617862904219277673234666184800832652790804483259185511920768890451064632341092100255269005564258156012123839599565751892159518318873865121432086700560867897074062888080550573884374939588281341847024603466029348732265470695445881855199381450372246765961719054983161844910319656096109692180721299402507396556131841253827132116036011891160144489602613911118410254174274242302721045186020134327575007087352920801818176404065906898628515405200023759282373852900082823417163807203348528201053380833805624393114556692707252565364083060441435972241311150452481077690217720656023495374424495565534464273404549349300945372659966717941175378047105137733980525274732138282536652513385507350232489483086938557501777351020685525154638920994557191834014763313924324835449655643486710131261981001658679448493167583250043013870225999465962654947831199887967482039348094954497159268206977688879227352772800057430865060365728067155830121846737593797300346999986644290351588163300550413042539725204244185079241094691329125481091108662443511879420868726642505908855177513665624104993928474274961411989005244051307720943295252862877921922912966585858076202529699014240249133892960873244964298402902019028381775488904171411426421943014867611162447292726891142626892980462662241609270848632411514967102017305822614008195054717784306677443288722592009989900124038659110504446026236160751646294349955052585750875805799062921842533752027716362070692655357841071564122179167612682551155043305693842143912680902399646916855088441106988200763429987618769370469127826891588133859212595391248321567923455319642554715779361401664047356118120178118980849286505188631641472759661048263397215409003363165465031882446046284235034453852285723618118807727689479489032626013794489547190565167094356751117337719533632406564640083017246859890703245519240974610167102233581891932599402221758715698734936160396014873807713534337184677326827676333376328827450881556010180251357385430964649030015768131797923091388640647709545252199312673979725563918236741196787031663146625083839052074636732775275841247683185816499936563989299325513933814847236422962781520459165640670345373044680806104181349564528623300418910588588146300035016078538351354512729602848885091401884555859419866183435494515869000480234359686623476866986678095014680688129965990303982740837714217572825755054039086089255537960203090301148990404780919785914611795891851192565339441635027168294774029953329462592166688581597886699780789090963475357886095192315429540362764963879795045667744026079993545210216085797809342287847918472541092409246421267032102931929489192465297697557833540220412022680661731187464428468964311496113348665521915376297499067261322360565624489050235680107797057989492222670549491361562043393712204428592727748364232671561409292968597324356766773495974132628524449622502341388744233731600384062601573373949713841483165324646267865302176903342746981753524832873643276866074178313820364436072778436125967002392328129832552544465399016798735745181637868193012950864459859746585796246811504476493359577510475678792976093138875007897033650107191221015092613170063523493031425089302738403437866297910761602720523428315757749241622684912000562237113990188333152604524944060670724829353166147287682835855633682581149858184971901751169310171511891533468978652764130693773679462575827957113241264244594947287293501431126655202763112134804737509479480711285408543275153679400909119169147021160446040151576988072471364171728318187231770004742933906593185534189335805395126731493471749007391555814125157293808841251382785861761053673501682566713072698547561836237227638229889422201059004240943458002083285370921083336682714928952097998525225446706704965439053102648239736263433703519954483294382847694105981213509192757674597538964489255159396795446440950571515224160067481848710652147032953761110973848252804439127419180508407727229167116714237544609172426545402044913405648160086795471693552715703037402409670541140297793928709456306321441657956921881396988857772040814961556493133738513136239509543772595072726076168883285837452048938567904382872289234481433193310444549100265011427155794503086843988348585677058346210232946197738931061794146180366899138164198376001852925044640044538472415023394249674582867886946398718738822065037641157497493266588451086727125170247109486136210187243133790099474078719437229492531416824373769353430636199769621130649793092580296987355087040146719946732970103498963031385610385733390536100008815193890794708476386792630892659780114950232964909371095919594485494718361165023706062515091179812079509388021620893978713857619819193536181474188908903929939357144910011610306335300132521637264813663940301514795797257895329229419679214929191706516961529594025092658830788985874098155731599669000231229582649416092599095296317863464233261802751624117131312433243727741156704716075370652766069241333964034407112465771881949646393923213874065899752251024751140339726601717885828933478365413918066731763301533426954307407901793842991205123754132615604111647682859289556610221909655168630480610002075359919221809234935587161363487213305956027450076306433561860950081198002247817387887595654016635100765859016396859873201057697978768779502507346836260265051023486536122101641281417241575782473337268465280559978105099031550062361552396433577555692183700212022086461533292803492205680446061852593872780312462193610346085852378849867093786704363296426170349099109354177958534608558844166845786764189321324324370220246345888374484488725641515566237743090747401240761763220551467350908537201635242061797569519108555978200024856821142382740716035458679357771057054806774392518741420485197468282692605244340551179161060423580814172600901836891161166705761118109027635515545050085581584577473575871382990462877966794208724198232859608256261298642242446873762305342786170582083740583570902702950805568475244311150663767236002764433595736587848405190489758493297062217513980169388293211061836549106532816876573231016911144540560418809029687223290670742433475690079701664815702497886714326093560761643763982538075714610309185563510787167991604843478094371261679715545680375100583673702291646831025449909161228528415775375084281569780810534529564176229578338527577882511456450849979208760954092852014343270543540361321640402631893764022886837145137493546352895758341980179793046464270413621680015615688597534645242601396902903216516764086589292108009120902991527909752993340257491605466901882473071216077700604093461434083268873139211991689283122611604809758022858446339217303755783075174505898368905980663424477299740612125923009604561829989997736220454692893844857334635762303641275324784750217299016640452377461915677446285140726336091895930259685686095764473422424824331936941965092763293409901297773195466587292334882306605542631298705940618223525756125080440894481409526119062640535043464864093349433841267999684853285629585148829413644922018562813291334485962441532508687989514553120699705383535538451221622090877178981652598713919169246839938959302493967785347534030097216544968439264336077041931739884515875308589785078922528848917044696773447119911532315020033376162249796624950431138248440219476701055209794737410386098601469336342071494937605353185997602019510661847658971354224242693091483573583364532794008886400639132358098650458790008515407889907620936624655144578385562160003762585532535001363270251485869394248738141289341391198876765280953500904423493277853250627051071618488064730465331470936658347830839369249788134874420506483066336244947177618884940177543683532328074448469747016844586242569899596946739185424291456069626938154265393071190365892744349973961857133535895891594576141221263931228495439050197644906115043781415342896821631624717097983101676507832635131569136258276534177280534282191210493425043782720292306434086908566992318833240261243320338455778604553275269681693683166951205024560770650128814958776964382492708300698167702862590761895158386658927429782974081296657405324492163130277655903796217666818210001553369254228268619641362831797289351739793429583905151226965354054838053730286554926572514667395150864332354364116096006043737841202886570568086789343791276916084018182311862902941901596444234257291957236353742066440844466854845596972339439871241074282247607327569541579224882949288933143453980986488569705448573367172568737046521062769105087211151310002581074571755004489487849074348863897961008522408161662778455631529238731358219108060857270566660140849912643905209442246627849093550998109905474453555038267141602480100559464111492790421245699939305276947783196673688300788615846358423356637936543483848934471973903674005363604522061475653344200820359588994553299293362979852373400303550718361753542807571616658467105864436493402494559804091480482739023413538460659184870197958596603415844263787029946461764079784759896213175135763512895661658298504382566828016965379970275203864762965005093408036370071125007317553469228788520331828616841599477391009796942313694268508216782287296408030373555631932843055072508966353105046656641727401046839272803731694421049728511791973332974516392207374456402773307140050339871460324955429857122054432665468353764281896932432242437802879680646087252554343540298390108509581721250688640195813810472322937294096093104868264924022474451462193517785866151609938731036560973195173949700893395649876077112802817176064341089085300471674811525680243908395625114433142432548719477529630412217404576682444947654114016201502417613729557088020482550290867718713861002526160063858235019551432605374650938939678443403322194870998843878577213167725750026847110658625358942779060591408592785291254543050478011829711308951744698840987909906461698211553759397671249570130098620037206795168236413849179670316602414637775311452271734124804705012421197323699721424821796584675381970404798413744608716279422261942328458522379947481802393961401135627023737891916507277883566476026873697189411015442216960584464323974802736184387615250504784449048295247881511104839476608735320573227528784065811775104840016005623402262122900485269265703122087565173149148709612554809193474366535621271599659435763403140792637771882473131021557283605340886355896419390879778937978221133982598191957877162656336940195875215682163472642360758953902473403310295837254807637095929923492472591143765542448069050725117139578406386652655320684396252762470276185705266222613373708220683647217863104085363357905035218667050966091163310636432778496872715934140251072665160287181508665455406235888273201807912971396200656308148078527843353374732206347344095379083366508658103899296735735666679419575888225598638113081181925021955527183631166615161526109087291099015238964743719184271249334522860562521119007258249989198480176326792247804523385128478343412363549191433274695648901093971090607231422839959446060541489005597998275833070417263983487946783038996520989133619550405251840554283120697346786901535749084762574443685019615811022810584072756273037940985812416623029511037410826630554410559953744068591892075433827410702927494609945522039824631418611479363819716322550890580795449110927568656013495751975280257740479564526503755358283537949414380900827875384163028510917970891665107594468820195211652773281457433406799864448341149398038264639823711511011387654949360682331865094573111570675465937124531472490996701348176073690544288789202317047222562621133564584731507199859301023980263582178646665402676974662856642133977166542383292556596839995010083300486364865032292100525066455727291630373073710198350813697830936565809710529841002927435502791434293707279224613411039141704843184403862807814703849614832444010447631984869455633736101053947686979705141002006651353597712221714874999809382523286438976288449685209727203802650912950682954165304617187185463263005721291917542734039139385113872213617683113495732262849807723233595542694102443136342258621228904393449933110895812100279653075159718113639960186370089880576362449456308848165229729854561633283146455373865754077167048259350642178379975926122597655899023311577379231519491754585798808952709518413731007516767212262291539063383867845166655771294826032335290862849401362904087401700633480302574917121840805033680169035223752070667298267420778501186750835978551099175613029785792221244704876280565695313428978037974782294403944122395955843595636781139244930164622399337461783685110446393399406916442295585007019255524046174943953826483453109811238955138530330768815782207198666547952817315813720189837775058039524588166535155901086475935455817004938108216743403048866011093626071168871370645906153388130822892580950871898077394737780151898601970668678383668767255936007555228712014563124073590007847959826948270952960992067970337884733739364240035182260108564756522408647046298919273187358609075870078634369086566242770639680184488038660298570276512783505505544342487508565134009340930978514484314530676505590505218730760753829662270445121961086153069871137397073601188515124721020910424179447367184391673661589277069168246439548624412281856214232065177519601843078000552781431431663363054663592915258755454626095174410190532708583563553267635890288330965291011033655659103064490526621328023699676408751287886504640787275172490035515548611112139692404984099712388893304600852845336059669518954134786615691200232120079592254278901267441502454632262580710465678601821149124804840025476931556341992857062160858533159593783699141498725155427031381623284499755962440748449446197034851134720755389619413545705080876875806712655572967738073185999084384024891098927266344837682869618349635379716080492755679986291255114092099389300923485137635267336950132921664396399807697952014499432954808994176436223629624647699769602355182272825252166536563503824918059478252571087281282453620872552551704644625138074911722733481928576528654943728005245443014008862355863015169759276265072147269388947989000426952274220877163330487827369645920234075266268422735364713288707146575210490711874259890311273899839836777938240704013011957168838320955146033222696225789069462426014759767783094273968152031844629801282155760612022365709835712213098421280552954275284989173674854196633211433902562698569115272955342664836825368370690907070395751441998796105797567360487881865443033292903218671117015666868186546251326039037436622102032531541416112988780407575464447732558844831562713032471269637467825312942478781511732637802771192902330730918507444732514930545487044915997243189273406244438156568289547903366150733118779938845472272727318390120903850203499411007944983413276788013892255166004010283008759631622574346647930353391362116645623208582201838872702511388882161958141026149282353228187063433652988033799110814956292583411246595972958173210042478271418063029877388405015449179168850332742481151413664145805800327635797801139757105860303446544033038080014763205283560822238348512093201976399381850786885898715087895710407520986036594123065116864759004995499632842559942890495133491573219915726902141557716219136330549252951292855641973837073962840961947081566828635363073031841506966528191766617846401366127737252331097284809432960743863807915916855837993712987406106284929264579924706594757035458238511286464586529931072561510326661212452036847195459608372102824684145614548662459418089731561649415372522536398684552412759848865758294009806332763976798390515318542474604600912587662927013359855502508826033497028781293835254398915640552902920031253668230828057844427378184766174204017130201006409828248997617733401912931426041121761121348534041248841052949517754646875723329923780158951518210638672242396101506062523930142419580844688385334868799620915099552321997066431066335663462193677356240947327701391601045970877819448350212683071336708946772417518662665936137153688782656837697051765351133278444551559715509600456398754957774295816937532970293364521378478454228638677538601622271344863978582165574678508077316398229803653487636830998587931538365866087481330156107126822571387335317871081925218196308591800040324402854664217656876958358417999900842326433871312165475132142753183057223802178368932361337417517435133124787334497252310686337610180863478895887085523430789535543886392070802769098066429223068535303268352382792594301413310042886563657656399532544300550964700492971873555730558057230381419926985187298151750471190541074694713122740614616649409483469674439749617419666944969179993738118422884688722592229891934538243525890304637501729331014719969702139856856791746750358786652740716622535144707078219101131217152892027687504149808814066604676904458858885621608315517285627005903219845605399424354513310957915982215811112599343997988011728298182810955045538492243014755262914920155357121233229879233353532998405498404392018919205633055648141389194519971371915466696663862567461610377276929586376324992335450275461742106797985153157824177435981041234986320756226624043762626073434061681348096791089317529064579164770069455586834506237470355636478158564393139352693683902985381279519213595403023502459245576943705463348764867280224206831190644735199356710312035407538456381592771260518676778269141933277613382941776154480667108514912177242114348744036353897299497017535898259850943955889732558761618105823240812200478130951823792338493172993435768717803624985629676149274294784961861216787290317273719658351319459294613127812125070782367977498944446338357113003133084674321763403122735949224921311051808680050829072717949158838906034236523871224118415933892001295555695478291042015501227391229919246883805907425486489004438554806811732868850427966117267620295462196101579481799062077871819940515376493608971247461215559444441274417649155186193087242905219828346308013157733069648631377997434672973881247360606023724072758695766562580416235142304710327196689264010174019171943114048353395746762861893987754653033534548806259378982353748923398851758751955938313822002756812956301164823505531867927291227221590204959030255641492095415500101539656434564765954276655919193410197453407481789045566610229962010065044693425945891321815389593039686422246447816348485484426601382651887214921304000167420051318999205270629967907728538030901628235051088107336075893030357414878700292366943010748294248526906014789902635887329206285099229808792603984398084833812610515538260182690066353806397229858123355913205352453511191359618360005733032405891609745374250777131827671897325279602218452269372359334079068423062970817537620888277273112129012526894677754097655476652694813301526174357449910026801044808705360387158962436254343085673174174426160503422286069062047687687466246434109128063724363518931483385636960693336010332869299770643417742410554996029416542848472189368552163855076675714727367655627668617998620952212810694901533134932407333259527220592958492145282915348632964487035767786226311738373916673083799500415968230926892308915244246566860809736867807341457750744944769346731653213217667424092477470318552136611601279678416573278794821907459703429918925356050702838587676410057163410080926206855420690658177122040229011443069707535407570682162494598557486347991584934506067756404082347871305604024850529038392893170833045655088965698204868573804143075461385201729212574361788936409745183206003462022628697957709352156140918306158311148677377604022397004159467171061389352669625651790675833852700546491516754553805767796934953189304552493550789507030722383660311461791500214146427808864610372422380400964398657410694682063718753177079271337303732125712719856824029585099958059641009144829026981159145672692758768778421758851224072191610411301498711617884802666389949198185534529493098044445809009482417481424470095849585757199202420054292960247642299523053728069380904115870732867470399254973061429671289524576012987597780952477063202171735349320307693784696413670239377562492468651599223228127024573471233136962126211480936270702523937348786815134034577707619737755426851209143689286582770343411958349330367649525196116232046025284572942787389856746687111118401852102951674938495833235332873054756302073020381249718099119045063388518882130507692331314723445637663279886390468126551198315523261068013108349771488138421614601856543043162201914877958248112767182087576529209880215684136280543823448670184177841610614345492010343961955251889792967017778185543863037398387516689281770612848904238306180017842262463802543214089046475196933284409980390358373235483312724783608200410585700514422091307792262342308140888260104507696293993001823625697050329484819145876428878204717226658531276702416087591463696156220055939643066600111003222087754902085006174245946724067427337018368928909016209293412283304800434868977460558971868667918697546128303582611118631198862683335114071646281458879451056837389823291350187797971442461728613951151444061637432424129573673201744558477401563487429232212795984988293249815859212115205877723066050707858263512402386595580796354966744928927255787433736177850885654672830935724977474091545066662165385389271357421960894735902944574705576192566647765043650125142000576641190340906845801747017954921992742136787325752026824074391496178698468980342744151061510136818026460064401746469207796905501545269501332901367361457057993470121853388496639444609668383883093349964084501283508752356172961814070642527978401904901538586110512264051959396409087400855290827385041930630323995128826074024119525241310482201537160408391763791739368056948960549520945896092660349501876940263471630153510527079280913971905497467290476718628875125295689112644157688436712330764506040360071826739598739221956862329153175831997151053768194093898551881399779371865239732032819762884426258987562640563726271599429161081474871560874967118403783027638565235362506683476949846326275202829390747338308846104662570363179026637338876579724880995142102162752017793728951475297064882004810031860221185111709823761202773227691142489824058548374712828037911374796909129831382915975976601854318931482789053270155887055263025374718166698738176819381639822563704790683255406244950913466200611724332061559366628556432377128887029797525518499023886769770450021136814259999061181295455890961029351584945622022101143606354430481554596647222237973982503873381806996901219152998423011581516799579952003954641628882964919585985338380838775817858185327096304712206979125323717099589174842452033768762789532737014190269511201640064493658959855800216860907016030454634144707872047255478486035983803001366549492038998506437190472362311820398137801501234763856012303639926668985728600357116584237097111069239052372681089680743314000618269676881708906795403169831465889918133510693656585921787350320097980077866543603252847960479579249600572818258879805594567999390031640204179254030564435345836529048652082030236882058522713203135670701952218796372100242794403097643827736104549685391876627279971516711718118634235825576032722551251204479112873867785678708718423443574027102565770868779200089856347382885319228862070719907777935141502505712855988534880174711358599338058896531235745052570382348655235055621439228036550988828813545350344980558696293621346092067682215365757716032905691952747712184419331349223823055118040933487081493117125970472698665678534162640246536273979510076362500135710645396999260694273611239031961473394920400269613432788941118915194930294667758785725608654160584368237306551076648950429554432097502016334106652378754504606150599019792621652146612839342826160438526010050360298110484151060913367101550246461223249974487103322011706469259021615978077940198124325659445545789966041673122105240121062357626121395062855883509878268512446051118175084851714916963235199813379103767703820309093446013092213974817755595203355980646291136450944399023417095111488034476299326241939641598402946261664754953093125726128768442990606201522385910512438837536436700651561810524770750796370174890697621330299381750496388768524591311509601759035082465381243941691830973840918188552438298241696945960004651996707118733897152005192319163333876241437717808412497223435660234804496718547969545863463167637380276080221328193268074892641251216455626897623586787146085828333345978650062235584966506025059652612055051138210945608125954615085199542842750117152972948940319122537418699931042531067509795250162182072415524210982904572425726534288056990476093138158070632360173165157131637217177402462585994929822310268240901789360241746056391505134141510074274744965781730517179657852588488213736207545447638305615985876310580047126991116538764777810148428434170217222810148680457695498535314192573160363682398654554753493522062037561108157060615781024846429679601429857637450877173914899359095426944220214278113829227812232897264307756243174847374639465264222577069254744907534618513602684160769560681261187274237987567649410608613480761362182283410034029088766761844272983867035396222858031824490832397522730074975700260791902835441185829468762674213164100788907886634695051467273549162075847908366854278963446059478105852567952271665582825985032181435293700677371590582828671160165370054394968313186597812376978181892627025718346752504846347237560037780699096266933853562323016054420006159129830492442421193200675677579848598677992739392394810326012678618611952154698172210271836731955066448674250082290774097862631933781686281718019525088084467755550299412062975927127317971981197908981656742242596350500967000867643638289288984046450845220343400344555753649263960179355996188414571972275794486067143526714403412642133550667374526062228228283450619271531486447153152513046733452068813163917912508488430706353941811610520690899648709098596901778079738197292198872922858959499644297949157254501111510918843971394777794142593757831802882589393706688930283633066247895627671979106374885151234840440797840880067048764015453133761819345381896442535046223879981956497947705636603102339793977182733777350377227551457612594218055808753500585158651345170955568069208674434732013654366566713923602892217351422057398803704097999780372999193282242386647670964443485626957920154364029266903114151209500208152622254621122900798271199073045136705461546210791798252038542767748561540447209712248569136912334214200547118532769309391131739994429203559414507167550445196035076300364249245937165288911553884752068605128083703911077414124979539157172249261735415760890939772591322829487251210347471971763037450724542723194053543908186261802931869720372689641324779116656272364181501767355215977388500400101420765352721510044762223643998901456349852225324370235431154015729871439823858902488944146326889448213502408731231153529354814825739682939732252799940781208569578985249648951721352343005060733905097316788778572897704012477164699124472314643464683899438618927637923285834210304907402962867802807548391599884757987465830638044646822389573005118907020020942689070598273820697397469360739167982717059227692370928961080602346879819622940840537908167028294951908537132318351481713696878727310717358584666998810763012989142694522605295737794753098381651211466048094311668694262950964481135388152129101043746821847630017192015735038787949921808851626681872055553976973118109447885859608098662312221592218226177859221667859861855030070663609631454841466270181385750809398488815144813929985244934965636419623774809916220102428568918419599308508638537592007319474453268158132859473386605803733751535286771536011647986560209918786444755132377147065590954988027913180068057028015514451886668742017991234360096705999585597305139590601912759550003252879309784010256643112962500919980432093685950258913766620593442881764274547425298362722611577521737553448867205122799932718971369750446897012190736546940984211347780778370569434823935732425568733935983009790404117413078391454595405634089507474995725557043013088189008039714003797813795629463191992547465860676483645984181262231574360617235335957708317102740593640176218060719793147487055569140148461204639711247041534862585866084982613497496767028506694522018544321163801785395243770676828529347702893285018608648329152469841239198991526214573474218478074872665437937643076351832179015874936797423399250046796796762123443506555476129586457001456772548526842251741849696542567525438090382746309464089263783093029851358769174310330098314228669920765938983819840949543414754042452577924255923895810645496585949575358796373258868059571996319549197553154264617673573068235655170464907498365189264362956129896537018288371257313977199253061643906943242840264255864692616545439198963199146213107560255449968182347484978772953785330144635819627205253495369356422924336718063122566465421856107262562643752083144676166396304773525658487590361157784641488419321411413043157268535869680093926683560398672591759472951485825874685866358370199627917604693393382506546467732153176505579659722630015673197018953752415303904821153389270688069111990943857576948694113255215857863510186165860451241430633738445651994022227998030905496891120522928733371205569256837236007837338907931807420934510640627736255812308947807460962961309181398654804640677492247214525515818375405883875521570374834916580161379542402162989493229099010177434259215408195739932898285993671865898775305814738187869111399866502036857923253297830418797469055974690081770409904543914378511172845686152116283228011041396347364128673740507746329656781438699876886213524417316832510221762054865557292450418049023101161728415215189706825631152232353553056511941864968200106279074021205898028433729786939706101510227488404190861030111616408595971511588453879947642997682126725950745310855612533568030524214885436037408635478201065705413829444123658176952351203128196531333012878603761829432420249520701422081914267793596385091285864228033986774183277784839224469425180076156097975727481822675712938255871652087396755245865549201881324867778630976855477967808106689727576362833441827936355159345069913543630936447848524041264706274216556392001028195171152363347155307180355649602748873361888336967249747114843659094354569517909055572937409135195865500125546619383459170901508447484592475249187432173391522609885310258438143631711795347620696248679368013435908107417125230680882409597228426268333587935411370310958010090934752041888270172101920150455063688833899922636994904189101068764579999884559040682747280011711928906113114759955733447326737642641111788233909142268094443864387217117293297366984995718874066507907779501058631183488805923035665493315105904864939455495147068990170145425147070497321045267936827501317831650046286534932046202202059002734269531997387306644878250474131300250212319529101922658609525686972233390461162683262839690322234225380430859410249012832682160783996544103823258207883797256892894433063882097068887530897618629876748210490383116418905461101408225657434984598164736595770838909244202519866460079269815622752250605667126345698173738195260348517435621257863130355001389862853355273751233497317055835882461420734193958935759874472217830193464346001499579727974531307504558189599674174072382381093940576042064114473440325260068510944625676537349480361385915722039538782353631291879599700926954156456974095855199679419819174703375458494316203675849218643786498669938778959297847598527028400423997834979958174923381503841745008560743013648454938876189555635713533320822737889300800105368661653773797285357733800210142608361957423954976399039218979057025006893008312393826963122026022838702581644197209678741854904458636799379835021890150313725865014977171633543356256484411751162211066619576504240508093632663331379821198226175755353753790359642824145631164263629358357035015560531454746051224284075411946242911680515570337324510086185158360983288332201207703232183355889336768805184432685868638287301533351167611221083679372327678070813150117646912974776616205416334100472311140605887548458089058479997168580271687862407763476688667149025505849559812222751979338619219940563616998367661931226882228009229835470384705749892763332862708725684494364742898781818890571118045156329120585648756405551545489536354463781512837129371529040992501826194687704166708546500843570253925657675471592363230598594174251464548194586710308137451723224047077977372578983897171345618153560278844069132674051997749790333538523600942902482986924823252539228937430221643052234488895281775447741396651781234809850783914845545802913237441006072145666363225698383064847778812814802078436585320143008641011356019609169625863993947748737228919968716476511318599980128334318348054030422941264902202304101158371314397845538317786055294226562943004646104428356771074465328659356469857334325214193440891733163330986746811054229733590735019356934455360483926045565627125361881452453573419661423545537382040293113888580224163237514147479893482226035714012317373966006996805772542762207704553720670852616058437104773053485211360894948739752700857626183064969923192595418783368269778399070968806297945912686874071858976940421731310489363008866931906673579848308669320805034642914138709375128047823237572692078323096020688135843490218315448367402348647128392885521113905588995671776755511154805187788705639799075645345256077629860924014246075361783200139749858387932200987794474012174331576364387064703216759216971783416370122715063758979716525835473517406715114730607748990209359707480482252788815996044773761056095486254606318730175882428956477076513292304610449752469802498311161645674367098518205078328511761168331026410689898344452076955847285384822723952651192743584233153618543201226568108641666804084767165127385072066876686959500188679900449741987022787141380865850839142692934285067612826175786498560339004674779025890957887333592343396588087762137768686750689646378943055911078540528805800066087189146676028126252471255490503536400346318009789192338045010116755491887700998908412910133628377190551649981090359491552751772404191975973153890427131938123432498560282613818314132673251384945843228363335906624396659993957345358282624537317775555230864590768707871642439068655353097071180062675334367524077402416781826886086231639507399551008998456685017579428882400829350335048189721226508671433338155845258162479986338888109891962714135573944715261828319999479556541820704507501427517244243041443622163201999302472856837135672908522325975389131026533989082615144997837191612202082629394833826991036751399711139600117007174529259175433953792311078334467309269505339245656043193747044839501193180685461989194870613831454605351307681580845481617436814657644698462727868108429255495559057904469545664329327444806015092434450853048822898772509157345858024441558863311748219451547163155784392634269483855377049539482659053599949620953734564062932598194373683895680029630354395015062061106674865131221154663021078756555262551851518488000411490349220100873542072923747196546405809430167085389846126384059179054861226545081692348851818997138429517925207342021666877905288949957575441489016193030812125995921665954558938783310759770530767400709430044940622996250234566544244020140097307105705768307019656598944221183469849042596216762553567493929265364873038751214729693721177402024364408780958544989166562571490147838624290612972147539675455785337230556027406596172333326878716724086931115918101264624157356601156166182700607784956182612437256735983875278709565108853872327541468121820828976836021889694461431725072079916801085730981664006319012895869445655361591706329932359538362487996420976150911194828883604001532902390456888113609368417940209807939862225735432884956738840440823645090956272174572887223688700022319202119248804247944481659806383908600723897738833285436595959425322173734643080983027001311963070727806337675708010070500011311960100613712800020611450755280875915594691306298964348165897118685895805268563837864635642792921922713545690367423752684708377388957072276529970751832981432726780569322710593850545851114540468778781393666840274525864110250372079239149448126410811094219782194123742026127815746106500071240815095529901503894088875039931822117095845714863750182932189816847073176677482902463151050964612877157989268025230036810486114672890473033596637902281015983227321444956184573631075854884015118116776923817894172698484789904217913861120700309706333491844847647449664385013252383277739847146753877238555321332822672311987173976065944398086602505502552842923639889489727559180417102833773164516000091437134831334640000664170414171586970110231174012442152704592422187905327344906476477363053295694165384231654809294907820471043909417819439392998033634646278256534462091584544465991609833047731829076397167888607967723326282651623289778207735009883253911201614407772835154404582837900799890254731130965647238456548062992297835269050160534070043173717975763716418816662066583275100510721176031323055009695780626119582724453430509936344242853553533677481225561884648693042868531705552644689180465929615669908465829764980174753683907163094077716867508958802540694064793711068698600777156215386909111397077449922306569653600331262589470401347763722668906639307159503617127276633528717584377859727277895022869429384884613853232123406386703739558825204948145476664948376092409667966965273696439188722811068440647850609564493431777804104484980857463209055577172317597145183991400344195318459485732339042001214198906325218296943603470113005977939667423413435107982812286310938037478839404313767007011776375990640774487770105983151378565544947042538756477147752617977885174904251308233906949614266503094079335720322919396419683036244902211921193755524263058830950173588775702599142949910564376816078098068232338483531244301563613533104934583933815421235540153579803259670857536104419868715224974106703457008916908457818205451307432673647364447838172120870906067150827393692142848188952615650454029834901574075764982255498893005197870179371777881484595370018468892265806637851898939688587240826719627328624965242389804341034847698251693941175986209778740969325702749874307658682237204289899569901856988459576367801601149249099564525083673040930613238036244362030980925886082087660096878970004245436094950376732040724606681930602667846696424813340129073397849997278586727755349544260876564452543568767633899674444375811716364763726991105477056908613926544728631641628940385648177975962553207487581954635936679159972223675784639561148014168282025293876015471347439657267250414567787445631354948826122250474682765950456041836120275490437486445519088606812388355133608758930196680057980293919077754686641583238497264817409316507028637976884034900215099460897903386997260238043741500284726733811577524420817759076519737104040831832985383879456417592585880171581793622124917384099632728560319195781449590820399341173043725191801329149925233874618408095936108414739921040360054160134691352374840951429851075873435662771922862736796306630467749098535006269989715876156387352233625352348928991139423466631046864792721643061123531865865175013910899734693204329879509736447768437656623939770896957184172518977529397928820163987499678186124332055086652852366153872524591968657665192908885070068872985203958331702612046539691200513849364811543728016576266714607937693710570629093035941871249841161785570470398808554060998722521213426358964253090275986694699182900123704011183136913059554937453580807734034184373328500592061452611893305013695935257060742883757315169399773799701892053304602499214017637930421634439274325621831285079214479942307978448501859087647199184933668502400178619977216956119556502470454669472961936055467672211622578421975992634368628195335912576138108978818382693108833388747502667694222500125765039624713042880448633458742138974085937367404615737793065049498434911731055532614633826477978709532566319659692226206064100680478483166025100540247170630601323865439259296429954180868557028556316128138644267850524622788554805749461160361740320769232924653997406681525641333270238789134490498835717554998941341088800873983886761944223118771178399050545952781196549645035680327514048348757805869473909451728446950332339196883285584581968784711671385692958477439750725436901948621123823287582255934433431146363091053898865768737130543912373310086991558785621889919372883350554804344789330008882988300691618249315488725700711755304965702404416010259790938798643204026905343487820861776623903524018028868383501994123527748974884868190581113337573847925847583207648653566112743620129584458166315799077587017796546959205672118450243659690616985505194443375012779755732255295025694076457039269410413844770956570415482683739813528298248014762592621741191364128617554942762122883799303465348098898436319934890692582839713786581819772084843734671131567194417981235974831298706081951984049587438237247801160931264127501002861488837690759283107441201117175812560098935298998612124352913057943504097458325132181281476052036004984661076079177121380229573931102533370097591232466775769405336410474241631136125383117325136816386083666410436568065271461307984465584611143200271966785219986828861433423480632879994190148735516093701437080235506995352945934305350732998522124560192360029907645707697568458604553188327879212335924733504662346073397613252399650863058665072712137445823902112958348753154631926339210405561764032864124166914130828860546110757273571796545567736716398271516231149755109016278432526770588866665245066890811102571931026526124113516325483108741067918553260579736373459081940988360047704718985094841792952363473221191480110828725645680941779478590412843004170995543434319922776566068432691870814989276367797106212862262569436735539739471224683838822834983961525250804828270567705518796222403925076577967191670143459322471231113905552115790852022184967550968536410349459254741626224027921634701610965223607732055421822844252686879877190547790706840336918970403496130359271563564586502065800622453389993491276266927614464396996105878654174430574319524816255511273573207273841682081980999513159214442587759062215760133593657018362478848802184513726321881576092849675299400822918493268545491286178136103268983280939821278272237249227288337900059096602146461026147476461817665679237279151124694146656677961907296068994218410267838791963169039495135275590401173075018469714198924281007058283551908408096926472449951756713765942900750867721269429409598184046280686445800442266587102537720618956183205716856147254792661811337188154655607813859090047971370401922251897064313970969981120145944341776324490755548028076514897342546433027547113441270985796538688544896401813635836063247875305338843034843201671259221781695090249630730092352418321907755168685542389446363200482293738576628000069767150427350676142364108028996847217717358377804608174916144809570516991679136609661080888228314497877151935669918638036234519912380595492044041460167552996844173381898173084118900203250730100763821875884246894578326825392435902041572406601623736845191844893743570387342583771777064459666268016285787627877076575672172761887774591311444437546977344467481672546266692047987271537938684401384232201598638944736282858071279798149528413174356665373116340256310136494705784692579653134557753994429982844359070703705601621254471520265772382839707127400896853218808816778857912296455939417915192211386117682192457842799850059028075337835843755332658004944740328776233948304030543377648093944061720520368442932225070531363567073365894006293454796682551256407723156778803465463812388776230401568564098112966707958844595492990694876770517240101743402444292252871590974083756790113984531409985113514506015919448300216945359176295246777341514997966968611946912745345992501298512389740785399411207407655813687816936997878937712761667385905989164402090181133914769953789769169385954709755741850086111469736937854125102626564518961971854345879985368131043209662250121810287399446631008581390472303571257143190087140349186195630235071872991833439895373725799813197771864266495784415771412100443858608005717116597219240110147671336842662709522194102345650173516597626000950100980004252443903559328491266989439804456162628874233075531927371729057829403392321122890819717448565359775123852000851503034574639509856998478168840041800264750139066861812733473537970076708427589197936574545839338696546369286021239638079655576670847717665365621101746641948589803804752688663762626601141743128286058898525448196667705248628666253180355088333152664681939882443624357115804244256971753247759184301256341891693775158150582536854361834628025275350723233434444578344848188407637974705344969193110172012672118956264213294817051060383983974196343538838300013757108943791043270076810210845165121155168140494845297230128714290741441819974263004525660446549423621965550116100542502760066594734436616631122344950266144516304711213510525794760805182709136736943507734099792732989756693621803580870589748091340385913710050340588979892563954649009127708985828846890783777246823708781535181148194462609090213238872595074887517417380484109621361926556779704910469472706041209242609812303107749915885491726300063690734532443193694589327645268981557425143718543654393137041471921651832714234902575745815294089120923144238847682824983665449182040975554487283678705820980362133927466220339576010682561879543355639331980805992614943322298304520777020261256225583202772441972096982851923631120928262572633789595397609850571962948012834150243326760500638862105951990150124268851857772535713932395568109291139717065806984221699755304865068958165349281469413232993598859215452009442419353967464822945431630144268268802518393915203387812709742937162302701054353299467293874190979568916066606129194894475728162428183620722771404082063587924816556214564894150644504914091676090223479756376449242827418578246392130047801493839458836815216497323901178590957717427057298022611117617019044314584660108044060955980428073582864493947609012355520476313620812175872561597296527445464710402000318903744648764034734816070869705744233777779570695320908653014193509553696377142039711333463365614904625564158168211733717550342041967523634799216811672740963014126548965011973118704918186829188938553125448541503471167285276960828211806503399314971845121616792751509276587680440508879915461540249082241873576928665946270894029231639861246864067230072000116326844192143774670058701079833311083595601773251787265183387037274552215922089641102810645973667022641481653933215418215597590735555812733495271189344181017139945674498595662838953989515426152204496307698562905066739085999353692982310712331987253723589527598181183725223705136949204563894120209787567774583507415380156463559156387338361786223736446177990767798314634215910159516059571493287002073887552060030951958443258351166594999092002079349603218526561586461759526721193899780611474353293443342347375911434799299001173980090768000844511473228024564487741662822918119935815250433601602165295293512910270927796160070591112577456712254020818789090567695283805231971322952125899473001011524695035185062082148526658206619365714390678654613309251922181709635992382189220882105464116200066986896545564633341715668964005945600607921868667079923893450475186728772321821316047902302032023950488427353790561062204243273163016227545729490247952857042074934571535772017874112338597688542666326035591734393715646055075956730319882834613184610129047757879926046970223375998659911617464853921832757398023079359010129656602481315090440345719155527504851322824032924964559357537334928203520154457789796600250686693513194692897224328217952225108603264503431892525018777249884365475913761357990320525492295122248444587266173615527222516441140923779058552500199619146292303029207379168194222328177057089811723575504902022585491143720273536084324876310771494587552173718329950272056605362144860515881420016734097600621916849403714647385407613864862229653579054545921115171314706690799636492330410253883164664797238053216336513819496588806898221049638881891308554665008126338021775078099816590183768621602677685372595151623294514658803992038968396157575617279341459319340636227148486520817930550084245884344229756033722396028320528183269397463660545789290750306365055030971183373607901384566201334446014904226998713018376999840314605142586981932096514160674351369743205313253025978997958610861040047301299113062648672404612725332890069493956405034139967114809378432346706171665102173954654107580741846415121231951509586442542588622910374134196730980143260848929282397106358711038117925041050260777800597755444841251521712416040971632892890683216660207715416915056169260250375292259625414351377028177291736836065122096820676633855737517185404835397950459551798705423767449587718594240727576101272639297948199646773163032745736684111465257085597417250969009328251170765695396530513064152015542149921485537324697633489132383067048097517067158462990477462380571530160816657806865090992654731204848917596936281655844850801101040680033068400716800700578324230175244394013021461050748654440785320855778213754902610758322929401782467523526966593497995275317110782681550507946102722864621241890221376437021488584316048137174283010591055180638305793558646851828120220672143809784127688905164056208127545941229991365794729076050019903624873890241696894235553433445848681946964776164314415615079317099400253048977523423327310822359288677015410311246056506787914824645502803409828021227237834014728683859635046860990724444022200261564682855770696428264933150116387138998253390801014344962652490608346305839415792843544311340942381306684314362459719199508803092105048357047866445296489321344506182601294072914331450184547277718753601317014233980416500997184378846372312692073540060092701642258688525933240849696526289430605558583415730477257312117075368944522552016309017737269300784252163165509567572592401930200356179595610356307061241459551229918024552170479749385014189457296599425572936164975715426858320131526998801609905245656992791985498643272512812350235943413410625174613204617606916816120645493055882133789521220600172192323630750479655683476580370029189337866587060536245122659273352769683745173400669730384264005751021301106195361511841414157742791619942043476650401855922568211180978138756090074888757295382236832911334632192755831177789187076709825928186218877617226140701343588284634923864210310521818561710350682373067546033405726445675855246568890686396555688836267431597142126401100444468842510477752258738602539809941040177776003055413155826940231274880148787306297762926311566140025010150418642476613283462461216305373665163915105727851605246213321159941806162115872800835814159331964655783899656754797173613038998065853339928655292497863525317074642478651833265828754219792079154639260293708250426522006466615650793152824069912090764050891700157358452907862316467457147352725034971668248269911709128016043280930916462202913631445503014258452135398259189594608591591554901015629365262865713711794513037714275092273464310665911259613052234665481547936505381499405811526873396879730184386340599212462735758825792581397529182882105098628453304843757947979193518511013013517075540604306135579291951421499802401758353339221444251569754921638868445784346809491903012529626013502709811548210661355032857463964717085332009133766560728948052056660440876521201034671003304188126879342134889828771801061600143078296722320601520099598156437513460371463152229649460387735597812078535046665938200570421901704919515045437503724582306306174493430396497586761077176118830034753778855759472345198231260811745406443077660348256847073659136548211908241789318964321256963564014924642096291467647487377263331793261930800183537161645541377452946619131795244482654291627930918829037108885496726721714211417850927644954038018668235000271358689224782587404921638819897375326775401226792944999834016799784571169167625238547382106748704129257258926731922903325976606051812531243649928200225520734687735252875593087616442059418801570748492144876152121438346913326461402587160127929515654738173308306619545865696157314297341768395280057733154380451164866696850567791468170093898069699890866634421311172026571313831606224944677305952905684923698811215903817204980084744311807569659048564151055747070535053219818127390464426143839811280294202498972874683041389568045241361206514440349393218969093566117699434124509305754582200487112267511658834855651358919022606323501397255958983532904546148745482957460594643870251343857009536426247439751339514559527555857530793444421389253345504766838210506584579761794951847903186613063085860303849597435402738639689666546543775443448812341555825132207497872173683253897175110995322981730369354422678465761410554390548110037354740157652155642127620575987311189719324687405859175776488660646489941700687443195710576348538631585214539124489306459025039432657311261224781180474866653141500602460015143270149971339527206838316608823175674410860716105376935587895246677251939048634158385912896287393883956588028772415857386155606388157408824832236486052896653043413053987741777257498498415299424629568449264555842195480054694382486900167418109712841117984599723169127540258849294884721478946315849185852792850985735737376699342569502634722322090789771428734346337901839077872340163052952125205368681830589368330398495932864447900992524151559325333176683756438229715743624466352864287837236172261216035604567568668770031530225420903254389429820910330585252285121189693292274930906669820724958982551835200709005496567060939484889660857604924283140273896714474955891747997255711417960599575970748588624521318584520056800248933130052078622320446055415611974867343249796042620308066934929938545735873463815765764922199155371570870960984892076925260331388296027547103853287460125949850580155211690236728337528756879279873678708629613533417538797484679852230499016294913247403413919719239093299237053808610277987162871147221581651217820399709953226758991221089559286471633681581092003226370696603071149907367003810282712615418063414971724868125693655326965810654362401941746268260200173915317403506658798847600780920738470545803328544467319684345296394331249065411149437764744776693242932771163631438738802550189045436116908238657040830735281632139042057316617520695846113574100432342904757188895815037866534346075906388956083005681856896315475482297542980338097265785611985393358719263508686383903381314953900299409818711143702344348128076248818102721153008126982772953436535540154411250827937859751733887661156429125969715683975448591097639780004621188089314502369477720802472120903354747432164409181190267497916313298671467699640474270005874330062092272015638896898434043450128908494525440331887181387059511429158228834445801582684368767343148193249913646432305441638506288427847894504615391048324467940319660599906211202436426593573092733070373703923839920070955194554523540655129994371493957198477563541276508890815105169682626107110438546725344628798783256733543888824997247834286994879631240586480433996049161908974638095783316010152194285254468732212817128985334781518018890260161683820506203177483161158504893714828706420368738898307156707103372485271562356798249926463414198216417076923275485448084696873034771621985432331562708900084892828129230348104819708759429908397624310077751042492638941653788477604043737650447691280427972460551817027512133441608993503007828151764713991341021670965319888639014277019600543392859972682905317585409338786330382193597577328679120207475351197071139401418242253271035440225638321242649488372427316821445385336764625484387959568743773764161948574447672379617869898553610624765932306372464731003054435271483777865595410025578334945510065710276126855548850990940729205291953264871905097828054951256837603261169988080813457236496938317206336554261220502601187827213827307701841813441489330245714242649613482516556765140915958328877658848410541444547976523203210368515894745904979400451268170154055906494617707357181709716758908932090913387407380757337598460333046221949891364408649352842933627837701126434276118080556490543664806128327499573762624738416628773751634588696547538580984654431020511735691356423510094804645962831861035511307726280081049617200438689666522088914353425293571515753567921895303012131930397665961564699602883975025735213937785315059371278327122901844975864887344755367523647805546511264163122404397511686057452243870990078711302277835102626033754794144970561568084167902727592579057192607429752749288812825673812837426428095879019092184792800017652051433899003587230098219761289956904889112801082749713803840156050834524895205468607209525215690812936791592683336972938908347955014407743785512858020596946843639457444321866100467021455024377420264927161809687220462173249232360426801708118832125281851300790384924544818886107212429799873943603781244434002759723101375303078429123041408380192856504978127960336835655539787236346322484400067326626909252019408375695524611668914534014110873639908760023337154512709090282776113204574144781725973016602131035526986271107039515866321536535172515409925111556605802834563020503095107658273432159613453401490018503831359445124539144461638040517165953468334030432987567712216392833206988643338668635949198833448245290356848130642676062190108627548129629967741794624629568062894649264770686098545514621611381553319471670708317890592741588809466530376188512430680314632290201807425023784656957617903904213528539884669206896735294119261484975670262906698854661848589060695744789988160932140053686516067063221467650155635726999398040927621778162684873176722888490962271161551160197525010460412747038763974779348462165250951891335368851004623140064318048249793462076598387871751261876078109120814446675919738143236875285925575781410209337211778770740513527689094423737452648910197204647583237104945463001320966635443831554386706448918921132978388353651041647875573825006732002658230273120872270282282360745497030444378724338526403550561801590406175055776931828073085072090023319293117787434111408024587730920650651258953269715939191565848121398129549100495927732702399000458549537732556146827482770158640746594114250799343790458648025420395332629505632718359604212679754702701801680372039657609926757558847416593580745202150204120548765466613032477507245251828349855215524109329098203944697829108654124663392307623195477481469953957807979060188263461768077248254989962993528077646338555448054741573447660363424911363320765765133327287083682062986468622427152795683958098625394314586565928481119115239131598592454317505296322583606183756580065493671115476558768472968894985707278373057272925347383659441812335003883948104785474381635640040200400554118995622007394489446915116146882279231930070110907631282154255380325386194695430369631636638739647232821354062951652887346391247010270791376681539988296058755033799028538652051656134735099561153350493448288641877850514677948668021615494635845983813718267234414648165076675463257764311308590974290089198365141169845596994778055318591639666462446112437960462484818776104172608925955302798496558283547965577188376989456826996767859248305041288243942979537547550524992891420454702944020538443176178103884192676477419486087144841155294351275450701356404832270406131170836590786157484136954492104062072392550869260063450537131994675791205322323481701010012653014645908969573359805490977676699779401599513041848714196638730045950931222532576139026168835245200651514173561738667119381536648440394468215332865808503180217109185353626987816009595031792806616287964217155334658817492206116136992741460987238413780479185561657137522240980794805935720739062262833525067378515488161007952471637855671547234137617022112210329016354998432686124588022271724388228505399336381581487339862005608572883635427068899007561032887593500032273215145016533882786460355869749092511475318529833127694876980535576134469291114538295323617663052002799103634078458991924524536461659271377087229755747842843039949876667191637516400693434389302890423671211071264209687526914703631660374020199067996350951891891135480700049266154254440192265423523130838292954194241722710401764834377074949278263346248881667446298453119067222623412359687021898975425856067319323215026157908164899499874527386469901890651956980488289359615150093934597501722620280830494984906692083283158057108426747612229271402680889963050471439854402800131918044151237170392198854421806599303746933101540836417001834087335642225115615500579342729648355793738655486609789162258958036721666197952475831335795389041814455247190386649142213004977049126971412383567531714664690762064514852002281940250977151738046146148332073078772321295213555173440501710403513586696200868662046490772090139088461224646678228647266779635530604327675414657353589506950238412141171283758621548138851095894065495820540401243500719301608362753907202063432109430052482501431359239705819987719404883958708650606672920108167200796069076318056373228389852378733130867245657073745599853007416237919858145202269169460824510848988015891482652734552529809119458679931180691892571159154061266848574583367534103525754723699825514747487836764083537532506024639425738034571740456311699029982639199397905125945649764336074047066278121193763429810076436779991092796829790102475101656217346686765603384501711689382877974336585764307316992522048983042042345721229613716863160853043125170715672362357210712614753797692928843044887848350027516380014404066787128684689920502705248686739792214459329846445806747493925835617764117355494016159212839333646389467500297042845556775895992468604788419664050050835783682040753785672941835708280500234638340975536782300394883680535527031434912388460716744485813773971244890067213399687157008125715241564360945423105330111486037331332138631385041792968401147701347806326241672648758476309677176749606843978875558494636807218309806191566605214172744803148993186081542782152549588253401277427694203916458146817565161086776036856434903066453845337073891058875519446139418618058021294346084671087914416487597170990320484625457328851247333723462262522831498773963077177479480314510786120149592911351812765361280023318142002810578402735855642745120576180651511092486905062328026006719244832897035918619930584433208779987195999115825834829781504030676347694338354003289951706981464331425139627810450105256382975167598767544100040662461360354080347213382046098059449346218365912082342314414339791471280851387391559511463101896742779844919610639273501134412863641513372557431623303708275919007696561655971602514059884154522703267426553252147675014938323337101326020503802325192565230627576936951455028884064386033357735277708764940114768657751557000511824927343714402580851422906745878683523237498334308393695092947581575098193235843698103678081210189331670097002754902517943643533075334602404079333874753496421369227262747894048428716035324903793320899788892584327623817513459151844857267761932296124179000624260801506009781937006372734889452679218122971767679522973502865085255047836434923640906397108684295965430227830126141658068211764914821145613459381907093560970606229225547635579095062671080576010321415478203830988819452674058129301247192493244437689487297940942840170214196140010986280972646484224311613957573876924611590958967397639873431762844910513903251650979340895640407702517560304629213494250803945794480630961746832350114542363785698054105127204565660127720910300346043289475123564761816136551522462077425380547711250235164186405132703951665843628951987820690814622931938231516636775221616316128654321763462386810846003121167941754505625245749322132099424113774957598895003435691071274512793163868088348971901224814307914911952464319035871991897924357380596498155818004315307279431590357856802837201855353236117542881790201770187205663953838160896100351679699149157673459526635168049418559665374212919502667665045954435544922799952826038986197920772450769601798739116282076626030291877406471493985071852727565803829072823198180365580054668796502369966178556865945404822793618037870694546105168586604805314681209912993705157557575092978769087459091712438951458175297357071857339782671696888423253679881377521836248769839655257777934365209275221790558009628840551152558927698013984471442236307668447104444343762640841764016441504828662469484431837084995946142696157002321846777213697913398227548009170830316528062778281045079678069886375247260642112905586330848282511867383177501768911190999034326985215820956325066308605287886769070085942331608909009185531050344447550194308137498328936244196374508625678172006320635028840985984655547390402373196335466933509693430212707233175275666391033608857934778857768598765438134202296019675531194572467562834971316474557634823802807902108043664032513730520676748647621339901315231769868637909869692768541284430997695103965276932669609826398894552515727602837720788120925533620318121443553939782833186221182195191310873098582448479707187825009488376519148698431164283563644808223194119949333208017927766182047829843844572312865366434701133446577445589590817655512945470245621109347848341508250717349472574081087365352909631914378740464457271558232106491947890722764114810946814025089028380075782552202053014294141304054429132926521999080823137336801944892371269978624595055687727135831599793506218425427207974859404604659542310192240221029224685563866265337714740865974230036558297470726965413244014343353880102181778762665235631108815273654537775289848309770968078881604542944777615051500555839026055898985852493941018496745399026779323727442304688898189727665912847147809238979301770734108095142398628118981964527483721202334665513157944428198516347115010439493813368847944977892645923615822803205273950628414901281944877991597882663690184899243634404113590512872850864730249053180297472881401784447741900860105015985304381632709718316714821106237058414156448112902313348794353373849196380506737054618656310831563971850072092606906820750060759663312355416582951796747747986677469964607332716759735132544647845919735749620966842573228888186042414762931380949517841171521918105837841088950943597789575946053271442532809706159897482697503877134882498345126769391544104644754875637452790864078697888014534209999053262934495893668378489894173039792688680701916901999276805097174678231605013407707732140657012130421059372065661092679364735130858602185343166085883260092373182233886998820760323066694964329659730270489772141542281302440274110337288703721944322905703880945785552550700901828129466330766970039464804609024786653807800593617538878467643831309100888189739806931089468539028780448548404577621600876850663794402856053541209141941293795202793667561025000300828208186671434350855757398081928078112573665182192062679661783127192206736204685016552719146779368997594199256845863363308021452244234394490372401890725263711646193969257048192267777426818104239437792387256216559519104974551552528321600670565874027645769695105663502082708017718769750208823121877458665680364413193547441505100991535701015039004632659506557618988537729021953495791497263474278755238384146146051581719260577176557322591532560714841087236374386023010693753833049137222533891874854961242775831323242790157818373745613903627324908127145837696495626931728095296438024369007621096615528183779377875285903266506643601261347971609356785726028161577670007005427549918755326183770505482195748837351405659003925741735388297761464079200853475919762244778507398397085462040919259625429645339431822619365703240530783171092196060867917246218915916594711621767891895980545028643343772423151190171574159127087589792091969648148772423529675513710839453453200066974576586010456900327402643845267519025589496996817153548457117232526661420586500670462357161505529521020287236103335847144504118875347692291152064860854610197277743887700286847110534078611795378420973008522578296851482219851229109043263347217375512837599749891766293302238400018408805458866251804486248050468286806087241464752596078006078620907464938642999568734511427310445971673244148507473036899362121950290473885003633172338876973689011049101873901689902219307725173328785489671497101120446558712998513405285635837786956574672677336407441930170901814022064916806810834086563609735328936174515796214804618097085416331139350738837007663156689066878392276685201534485564186234305035387050695519518512785502583950874708918306879561354237202946432478745508530511248158078133965316364848247226329985965309153496666122251301006808443919383955283554405025657861582227075523094341531199882081411875395673330230155950913005396242922734088581615404722939185308283326538188097564275857462944561361455731613864996700864480477994903348597355705062942529517975033314228059833666840589498900928240439936628447274787767632279029258789533197678461329017937229614663202303320938947624977859234446055247797099323074048241788803457992481543952786019443992026629046595246646415648603090281457462395673100916352292951496072267735158439032788554969997563093772949211414908605267233232732513473248494451703151010418676058222747016603631961751598004804188574782386493521080645665291528436424243505880090842828152457889914173267138924946561244354485417983893734840206706079216819560591025873418282308643643122876156270659033637436208696039760946895413127291662477603398041161223932444657365232233803119618742391571716151124057220927054712372303341321128552465342472490146779318162807668853230350663339746771320476201652516731899337500554048889218742859501034379727594883341661327522574863189356038177716441178190349294821153359931918324610673683097669345173093989208088574512661467453315388405283010878272261735942888193945738536191064178390795028631772944210682835137296415994897762051067483249004959911221748219599850101599051910128127276003538702979929469579439931182893871830090790403397982755205457555464164171600974794036492928465078977293326283600990823037180559921646313902782775628285313653835735740578366519540208253628745360428359375991414456637212148808704490162883849693699632111557206465883560531327901420899494593404562355934074511156368227834249473449121948596580087523913108976522632121001525641619958470965067279566832583741905545883347382148426733682044276678413635706850054635915067326048577807925770285518244702033349056687372480869094507183283760217889154675955889210515853478207286293745712518742114621139525771572484169950338046302664683325778826630119059517908546821516736267896708677822119347423898469105864458876820886120789473920708865729093304894975528881543381548200362732689887727321827374816991795006840761487077384517540574265020995049191363853778529023049010988285168099230707195872381432252385569283375907992071925379433894980726095642458436338706485051743101200711503940957836665561898588529093731431429049977401838040985498733567577760155374760988560197825283406118767060033904262872897049205580335725063534089858335048081544824599645312089308149672877787853064268614755966340676377025308232814737300042687896500579692930536628498246343437962645965421781439583087969403447200810306160619348288406019392608665072399276290697482094813201761661987754421349855859969569490139133398773717727997372333444237225285513786235423389121146762152872775078174116138624302972002748612718483238353885274187371576440577176530085266667929900218143652838271011935323888781665238885248572839164173687963569378833665971218325964478942995201585417540944082303568334507006437401491568943501436995079527946187790188043873161851516022541753922329074028020337768786797787345001642036634477211395491759155340347105868456993320123058942530806960745814126699767928497296812157240501419815468970250328154007944389658273112066049599472171694145850081191025692800208297691700010878917721179563386053921136519425934850670487226218106118400146324847560484649708661090274210801447248069831296769729068928206137934221621222101365040779211216298144161417186560620087043612873616384276950711702574207665645724083389201418582650995096501962659353958242346005326557245054799794394431660489322313673819753117145989205438881201200471870804314458008030160837377600933273104293968576770485310033938522952682853420378378291334757162453441114882425059561893312351501231549395381047536012328766322981246262293374944912140021334404707164984965361571744716562540939467238498174350567587924921604948992443102748985354181988455593328150778714819703125103675418181731627661650474968381465094580453213312995627988429049448612331524145933832532655037641869491329345513089163748847488636418613753100662430344849629898551781702707167891328963588096745666541777573423419235262591842231090536351532875561963332370255518232616344187679636551303488534302839693710285364877453173902695664784691543129739174227456426009453296829137307577802743161558045555925400881116066986604893341659776824881650484213691412030286635676613829203180546709777120578206722831541387998847667942314063309214926260348951741794215709912637811748418400956906359368934111422294892930398826703468899066329831755328922774785872707984709250494900149262606715220517010844327814760626967646674674222805069528426839457853498246953386369234415687461056703762639879402843564411521246834114731336860170218833660359875766236666838957351140364754940562379600327137225254626718472209540343797950764710420011236183922659278014563430005819587884137520542785458084453725212475728795259345517081205268224925077294606963787017010130805426800009750546165389120537332096847361898896098267415519215129841611547173752507286538691343559292871200060485883363405004634438284453742900344685862922217816054882082087241271748583604177345241300586545073961552684971058224336813639659474969345199578308044393332609714980449719545964913375578457189654751167664280598155672887018520859344142285987111871384734837349958903733432727382936409799641251445787065915284898289858205537696883494356891698985872100502009774350207979680115269037732181320832323329612581771303325099284335200915670088501740336950827047934223409379945430406432179413969912479028760338850943964068645917036269796443219725836147831361931442428725366123911018401943986158474454906327123427403054883022979787280571264091739909922227304863436639666229537935693255133473467380217081528800986699701356684665856888078020781120446558901984630448894703887751840724904117926953518955579698720981554034888131598852730496902905826610127317232491559139288639638506071125046264057812408344955571295141378407771255317148372593101402639777340863704114799630546846744103314313471981425582362617314204497527922369449186814052144875496259058763928031209333598980458983593778138747593027215860833641154264956507084862129944499881458633693141284443907280227384385441550203166745616328862351334352103773507026366498592015980901274553391527813603460527764303898081746208640996312918345673310616576779231035705749932476645991113781559861085090254998599240902176905723982105947960710544204444552268416685234837196160237767592677331320827703136852495458938887928864801135889804242143079324241614991924447596512763497006148043583473073763609185299265699326667622240313495332193400245987803740114266747244786438663398138549900495119508302587555105323592477036972501872103334990662905824950009157163698828904796528244702272076021148244317881413341670854061991255465805252868086629334187710854385779399613215520782639495130681982387244005093931183190479391714617951448017634386500402432488414056151900762905604538373422260629123280649758587490412443455476451396327000113220064374171040096822856335311781419391906741104778513645358599867595187834102876576114660769600799032242399540006508142525920922923259291874742157468400261522727589771485218609340859925578937725178389999720827188571866562344330812526432936307982121769494160682724609346867545756778053857739668157219337690063410462854589310319725336099812545664869923596411286254420240296045939967193578852453506896706551680566791348480836119193192362961777486877094762982610569194845531453508930422116139404100732019077103389422880754528994240315434716464114701391433951737907224413890356573997912222602452348139175637798641154249432962695989370522396264174765708908184528975541945723207468619786178431410711449674230602021041827348508786771443632817298003109520141194703014040951736806651134362288998567340241803133726294782405316520170851352876016420222757476487328245711581649675301448820904627664942700738300935503362282329045207896203611663446565690920731637335863076364404778034716499903906370561284564391089403339920526802732097020417362246635165533389664025330072330324228591963770393469332382343062666153684142428309067946683075948034684515733916761947719788566614652590960443511128795427501217110938915956302596074828749692407595920100780818475588951427343919336752399823479591398258886818289323473629005534525004244484973460058751488774325049112422233524710590042460161289901189682095736363338228530955889029866382230676538773597115768266044793369854612487523639510006652857915005988603980734035222340720582227326062838473127814303882022539125945818187590406754370192264320535263557063540121597554828640257268928988251847822423708642045326270895645820324781858072217757150378194335794504086786487883087598481683921699792860731095909935895495470893385145659897228959480392089198293356756880576395801356359615576262355299470976455947969729323602055612268328721340451552852102267051898752155808646830853140854138068790479840921028413134457546750158560195676130945802779282836622603598619930649921022173332560051507180394093006840659108630582210032792120461309283085355347769458803076533075911728591258415735704839791585507531708428930489616490811160519238215023175857732977874956173317920338979852209848621067659385954292283318036947569080289464084277262978834506753678347649814293881825815217240227360246466934748895510353921070775331485446901054327577905829586803994602284146106938108070175072052000955616225914408589571874500532533299442496917234849602356294997850792397715555426565978545287691703392388566587414977125422825352652701218432762268061171920096825920217447060759090644724958903017102774864567608085034688516107556134386471852693231362436856596555411834137710989574674768614038558926074851679026805530950110384760044024125693834227786860133480685406702229197160352999019230673404229235381863050971860533100282148259114133361818719097890357909287865491732708455846343555838791574957998086935970536232316948053634876646961380319488214556861608192973780717320652583334611629259120798342591450702774151167575123138132038181893026733771056004848719712175096586977127729909075890430795960619927274681373763228466630506946655149389254283594227308673386376458647702602947077701078121856251446789285873472778235648294538631473868151772442572897561583328504877455067694418559065681028349113544728371576429027653004636315558317709863242626224876799360816006377661772584154037206240468898584494400204169236389403510361234017035833899048301324932372974643006537577506265886421817681227113785842494830450734478941206069948531185852420065173790803356227857344633151609763571232420851203091529153987062590767503603448438664648908029460279981579574416805024447991630664566972918122248098373008322742983673335487995399144437020193041690934721397451943735601060270063087667781166216960876296643997100914405461123167604057028145286484779124380228229938338066452766483240772583714174763171639739581645702009887753925958106713220146786464927807177752545339825880552921759372093296049583699043435092306773651712056564255834258102718945078262926239049012386837208371466832379520224141166874666778669483820626992441813206631526500063627050400269009225651469221671142939214391039254992989411580175384508317445643514112566433021063031441005912101171283412539307354418985475736869183354605238007544312612818925588582041382634908357390791604374234996256238796519925525586798897376902087906901163122811409574098514572379575559977491039189762333502237657659032593025793188773994757201520125983035895438809103410795973794224819741157007268393037789147030188377417769963106887363930239654133031418038027211761709008134136748544123027791952332235879409095195474762527102504620514217408036909922921671237054617503781670707782613434298398884940496463837142622627425879449862255338460659325577079632715945924816028606614055679747624135657022527988530476153822383153171599169561832260898676120109929679268442949700471539336278099375518751670507679564482277739479786573503419330042556196922640311766855462387277827804609645625886615403780085139039717611824756759272629115913758283617427667164157840215890115373800025662834540648349461656041927933182268174154570704564737346113931290185030647897056681171440742439042273967800317890585969378045835004314188498315701438240548320976500341833681279354801707807363977865692177452867902048398893064957421736545540733325053656028786296423383429762595909992507815009946601115239771053223720478958561148138905998642500165437807754397156451439206929491064328072801048329381593320596447111084922424891057502650964840633118279024848817117826678769724449475213538526957000918080707575880984339052994022184614518086164536214348500995315714717206149707780122819190814849504577225457408930206777716161423704167452471058396849597789092302315044275309209662503410700628831184342695148829358663786590007659490204760658380225521988186812705215364243563229617551618218697698984740507767922316260904490803187783406368998092590312088095738014687126246327165369840874306193907700924525923386111747103645428347164941618499217901649648299045985745142836162193292983012214893176637308758403203779755700747851413136432735476833836712797844251728727429793917359489617645601577027286800511342958549799633747668256612580995784800339739884837294501960677770183187598592822100022274180257146448381293845463279958355059253717026966093748901846737076203065928129933178271728565185147283689479650259244895451832071951723384782197811931752650003564653626538969562567903984276084589090326781005128289983700363931684822258468498142962148674827906536575165306937363049049857254362686526107166185693462842477189743596355387269612533669357599444815338963950354077784767518461135211113642561632998381183964585751691016352558787341321859195286881842642534320015885512043435268511354079525774618215325965477964654498653300374330054711225063087588328453437129271056410787199922731124264643879270785217677299752650714189211472477505474029238255963236684497755428856096197297707647014772248692482566348948068655110498278929863630618078949002144140638537935917085960435505774974128316044041415498848769054751912530098120846775862689434948719181793122471295675868973138204285923948607210569009127713522696833307939231407983948959770619918970341240363042847400215880246758664873131675259006597194178781885928397066291566689266333222618356562267571439707205563106570917251343466898332923931443394577284824021630355016939942949956403809477465430850843282497736470968158528746951791458422240914305777288689227449766327702793140084871402555712313667556760808171633506720069009577022128624739493012280122407100399969065849244735434604832878457300662860076689783035137316735178099179289565765597920163639807152429994105619063318267237283829712118392334772173695291791082320610061858020200419413112159747778332095070150643540982873322738346153652268810558443048319314249346292749919173191078510986540948106306535612203111872991826560496716465988524477277326164148513857261129512302477054716871912552049346938820112359282973097707106718642634788583013921280071656212842380100731732894260983314578393771572837245720400607393139797778565374635868597017848541239792433010523312191396200327743694408510499487647571027258261231896394705301861327649973183420000630909689677283343914272170707430140599141100904498921495469438124562551352294865841279751080631502775666507018161574133302002648251127919927187117406366553465429009791187853857368644744461215425606646255722238275741972952011015992730918104246963139290208594372334202315109988086218372023767101222095155644327331170479029516668955349747219904607381958348391229374891805304441650688685781498074646245707688759677600947245325046367648126266710597369432893835255817438144217633268372970750396684031162798074168421778286891106657692724351339804211600949450575076003524331460149261128132520751338180393273411727661124597357960111393479426591722388137974370115680296470443895884560983306000930165231411812469779008921780361835753782175173443830558503295490710680325602850988155193972752188298124469080181924726374067011247565927139829415046335824017843660353999551643560622705007218117091368299648463749734364228260159818678358999022333557663809099875006911873855016195959815788821636240001437100877765535323234934607685854007088592897111587399195662560594325678675398666088043684411903728524265766962661617917871918890885656566173674081660448731693788014527003855268749728247098850066203409545630765148851375473409729654122625113431078741292719514385022522602422516529944955033652568179074438231982690438781178266102653989293836538255644199771719328097869503301025155779457153518447056001981429078040689217299165405582760349212141808148954592392379384363666576426601295383251269553386686978194406201548670609662482395303193407216816202093417731271932633244824489641845610948271016576896979994665450938871256951619676650747439745603620885737145349672334342730003744826733782339691418399925919953289442507754569760128377390106206049464804943869721987132341651926153232683534206111304563752247673533557252609518399635170600071208771363284274949974458508290335103922893533161716992656792926305731668356161618346399115384720994014837222805062425467365669779249677444458547542472416023807256522442048951126698680030235814306803082024649970896531710450104136699558472407721327886978642512700808356939816520079399154973534599099567930172606309584739411200786439707240982017348858222774228960322137163453800584701338123150622840053520821211758017677981606714670090846812252276727383508403524456269933865871374146288544281585687943794474644248094011351290064320332063655660995106046733229841179565254147167885634974024239027985495171580655783511281073750588833893483558945978147854635101493628488187522205827820709207882787098657059432279106993170386054949230186411845359848292982991756866626519882417822112395518777019377748833621757684671025539231646037263051971708399110051403731140260061563891508276794059707963498432117565154183182569696209098502085076512719118726386570909970970405776226664112109671618027755408003438067314050400545690476078945037472594054765041756563633696483512201348893707662595671024879947795300626323035108437168803659648941874423702389988156754477162955968204408928918915988695397549797024357910954778326200673408071337807666706479218793748108391134455870889984181266944681783579276087043050963873814284882855319587568475840576919565737127416379140123511963700391437604879473834833365948238105072633857622127146342335783040462386288888986627982143813360259535661364487989953455462126882942008245950030780593740257421498029713092385698888072966442488981996221389743619353906077234806298331393399894131520890360474336313550620370093819209655648776523108224790709164449035131568171862448859067668017414327515308973817711822617982869440864252568940522666248778146623529595392438814935833631535310504344352703176477113779815383578728629538209219854544938381276983126426786023819901639550236332983503589126201004102971521518460980467398510345985063677562867827395907416475141201074100020322224737897348828187266174813014608271732087812545084086203796993985586216130807061472282167541013105857240315997366334005011578551571956856795822274234086897435939352980324242268307985168675877132264829322012950214844551452191110999899795285512815882277946745857524730333883480413774405868410806338122131734590849196132538614036683821450367041270388446827512804400695240255788622420994402467704418407913284783412263493688865106125468581616712159137574157606509307155849488114759790251718303651368810922092737606003578635568209919693962623706947720966148396684687471898073243712034828132567413124984240337008399697530707542763078389346180125337105176461669216879267414333271364376668656307920783045916218775559729961087767492332751041951325105204276289685938544931930557060653186600172324922470213375214348773947112058210130297344765831363449180912562303271272612559674758806182922340322808793893665291794254377347275512499152236859466437880298429611774809156813219060162306807954407654038970123777477332486268594714211396112345526009154801225926819644527016882984877921255612635082160874398851260254801709473573454938556010075495097240484961190319543049495257242010382319097889683546323335702248122335513945358071162004418985834204678768984711442893288359944304117270646208658526014461031291902543988991724424746085989385128683451454414140368939639154785543404984141655606577680678329631745887124093285802052814012784266210389240906553297829147485800688530498027094789359136071963922104162440905815294480107713904258975372215859420042976031307934702474133603385867352224316360447250918967263504368082450086675857304705235070951904858860079385716717309826100040621504154604572588339969322340265979426698512329769131753817751315181918785564565191826019321089105618021006966445327262005160402345798925821317819276663898367221122680875066465627723631553866496271257079985291298814954321332672656822148721678661654620843884460294834592716485677385904209235524804005401680961824187053579129260390217107215460151968775773742393861886376782678285689764525717734572722091850438555527132278638194040674667485019972527450962547333797579570872422321387536035982564038122307754934926231733328485428692073287154646873810746420012995766039303166875177518644647273792845738202580428880711971600661956957462972913219993834225297392445740954124476271010578265571859518177602570227421616540259966819413127654580282173304641683309657843646283465584821778517404171923450482560148806154712659911010668599359817507362349205057001550533550485671728169374722626636608262022445312353201735123356295861716838298124507716254724016782019381545634742201590516212067013333688927981807516029573326567884204763187740942324312952095415710689719580355027429896706948477724114825277810311000173615374853235981994952497624076775005065127264853422050693380551287535403385622268809073370964578248755499946109191111911000591134945318833823512054987251631337205546257033867644545316412634907802976022501748337193537243622520270382209300577839914065863638462449070372527010398527945742027197633098637637222876064595081405281761606312115172572734011308598368369312148699885244675073304974490140258176862147310095081929519138862944895782507523490318871381707449832297308699443233659935150867636020971422267773604415259652589232159143477531104965863990110096052267795095110884181246332005801476344018537170662592520496772426906225769772632723687807498532218806860327272206690049375158407388333604095746312137753183523758289317773515316294216405265040993796403517463682598433303361530446434649441610702887848744519725992400805386804076916177413864036662810840020618498559854190579992846055450209639619056193451336142496048163565684911994727541236212443755526037082752807775910270073226315064035965384741749575331912156108013031299506025088739212794195012487334556426113382279899041770909880323256703133366827661470939921364267517814047393346056491351852090681279924455606087384963150598416669607464551106695685815170462342093141406617671267469442283307190125037506335848069018517017067291464780657726471006665395522715613721758728122764453455538059055970254002865317639604904070481144071133916363137232790921035667165451599048408067265748283242207684135120189517339860496222137674742843431984641938198851926051861175562808606783994878613249606445986186340272488168252579345538536064028168278918569805880001449035590483748556713387339120749267464575248339265851051103625366443942542732638168304957481736640401034976680124278066428010297151817754071358444958710080227478698534434726356581185925470457184728143720839573158196744374772736935896074585051220046970988271280157890047647621591455347100488984857627973204275503842374534258496451848178943638345840463171950898527368449158195891079757414583300238780219198478991572147714640077441370362424651890528464369005028831516935640093380589868824640755932201202297161798398398468273091728649538779375018487128274790893896011660771204470743841314092602165195957654655443020047736423195461723575767462278788715657292263409390557863352610416790146755070287700747161931409884332901147290431949959628866152295467559512644885372394120676265192428222135541657275442181222274113150953101767603253369263842122594098546661072965102755942860776648195850861574807542449741126186543258480890947444113510677107575274654250581294323032841381895274937696828470854896559273169303062881330659733711096511702436830611336776682160605226047753042889923351268933112544244297104684084275751731820281859857031298764388234789016410131848153949297384382253296956892247494595780293758733945309606130737696379850331256479729442797747308127167590503944498301853884276664623131223904166519751380445304398662935065488183197280942996616143627929053949993503954944451611359526931027374595108059921254822927330300889989913918598109530774664792152041500225606147240812774452309865578256214451361220381946503958905542142983066170331488571998280215394458357010098139262278660621771364005968826087247757050550750317315133370750993683190562200643191239228992633602491314673307829612656400631458961703874563871634824277590116315068220192985621762460544522395253543440150870323613638437866934143550000555097380842318780581767554032957593900140221616118169332651058171654287208379496476672740274879481501183812677758127997308652517003555210147423872127310126105699003199389090700540227128448614738929862823804980278566045205160133145137885738958369504610071879888791348235999160732377402957204968438876737934405037306734649717144043658544172573196752932996057205832010165288738797637119644338802469543932908992768455563469333168241738631877356164187349660096665829941573311275365218698020556253912691655472148761013040184799639790081937116732488432998107615291608342405952232940092665756173314308647031741675590956408631402946454698256785982087676676993563223651873164690643290949178967983799957350396929932932757942003725352969638698984518269814320703339355757286155206315802273420470401925123324727992167240525531009530285513009633157359506856356548802814848801142238283799968910389556930618101760320195579931575827633524448529247190729345085643267923108192775607337823243876728911892170026621788669684244777080971979886215351719284522205593144899947849401216610317656553118222297125223158856481247893188025190103536338768240109136332461653496938276758107268779949970725374580021494194097186769000473600779117808133037074059162844373655581095686819883943273978780503788657637327979388341965866839130595244984523986582103813682343320727569729770933720668178470455155596665695127584409969847285209166951516359278915949883983209399876272859869070702810969133932024615019499642796468560987267425285396362954083565334464079839840687162224157438390187633296537169550096156090158195806730167639772256514438196061310464757515978532522755136380549391142623867606573303618537519181300939989455852400331399900464979272530092273143840759192113361349073464356839984031738730744114331150162367546577791955638614551909446247043226102186470870056529878058011897037867445295828731509920966141806782041234243956740451958297474480971171701295670725468879774032395859872163125398041498840191750479534667114801028325936286530337306473276517074732908455673506133945528205429191018451070793365300002310281979402499694273116521589153918729342429932615002106262464414822890984967642039954946677845824545999692949638798713141479287783851784025106030435664210461176366449816786695454154675659021739192951300579028433341056802964557968880352777334204153560761181434691375582880388666653388369919688232551155219206137948318777210872926987120186505082018536142759260592683977526598071896018122219885865519719971807192268208382343675922032503351398033208343747113824407157903714258722507779686206418428405101157575149493168980487961014001422848461460525369602107913267601692312974639995378036961480151831540478428802956278549792606191624252095179334767056583513117753485970164264225737344880117842090204849022877876923752600463823477590850210058953959137934646864908008828227126673866431398395663186636870708576348190957997267064917492004268189747169755460755415950575950492635660372669986203685403443037638518901465660630757587712651383698557027308260744457646386715879041851636441301293526154478526618800717937779180087291440164710394099163917081799407667183010823947764122280034230180933981641571390583393656320805380922478316732388328371425961391178357979109837520842408968281196908371361924223227466549343889695055424788409877322411489086794812205310705199123768971379152250703918643323000457362919605781239991441411461645797124182242572617034662226214314223672946150762417333227256460412154617627513848233566237278524380294348209893373837861106182126952801385875422507717355339458303390318067510786259249677757478359988526358487034556459595695897651026774998455153822463304899970857342390741465968345963424231983210916785236698220134161448442761072335807266762427837117840567543373034149710516354356715804554234053793104176264414448553866028947440056738695870218617207329688018505078572060004176160893988190871998147284060554476977785675797390114466637254383080474702646715246162886222090802391439230891793938460966655968634404201336316655688536935435717730058907838715120381550744697154033209708399011512091435579765499253648750259223967158843305427607144254594594849170535385504015328089847348712441125358672895304835200603720839619910162455903745595903354125435531838000522755928399108182286745101601589992123828673339032303312458812344259679695571649241039498850389577717124115933958412247226790824805192687799234359775297248411596980778384000492950372334305053442996092197356090660726724590042759813139721835146047092099456769093655268847756388056969326898305966364885683777806186842073636290421698083851004786894573483152829058593142183129262890050521989352163526122264076863427510053335987639434842134107200306886784788195278956005772057669647318194620432008060619403754218104168294811502027443399116080090999654689254910363124243628479117883368916844642471056634938109267731015037988890683931056879696899364471871135667552308835006026904209829010468955327370844589766369011382573986817473390249789530849954014225949032759005139515832298641758665817515422635651810830312488996176650486110043249468661454553280669488044029157212286811606731452542705950764122970696904649686011440052309732831004210096564342849095495677783474543014741871871790990985729797630942649005407258616951257829316794026242420209048927311770970175038616283704372637902282651837879639181306886328226768965111644276756287452116602067119038149494037625278350949787664536989636682557892785414869525098805281689507276885638884725641861313268216005908718676674549942872896626098178481338147367834650109459728480070507840312145534893341320023056630437319580740373899159714312820359927671427065752905462220801344395619916169068141886156650489996453760297915923619271799716671914155946493687426039105689881726950887060378423299535427941165282815950671607569991827657192212598412155109018620558071753907709105509151459375191080385315598839973744198106860868714791433215620787080717940915427635262989711784435469104650593301457011826531240876853927232694035630211651045901452597309771103236906623128167593429139734786887785434193965967753605738972911955474653897180032024342560239913565961934760195880281592445326688010883181572027997823231995893305776783758669779363444622482111230230075102709366461676069360464096091006720028914417608761960138116613706577313182006150683599869303988259734248092478835202361970146679309469270111852488432718978674505983367350202706120600651480091986384327557580085351019655602662062792969744876157133324435870348979789437524560431209875927179507987303467963597888577518245793856437457756991204486841264670780538651632226819564460676585237999621799878374214155214661394140047426307764047324189111321724244320483915453683088343190569194759595298390883122705534210703649265051219102924744809855996863288428341048335599684265477591987906815404748164613814565249299359995254428420191992169850324590135103418211455710975657698619928685538199239959896501924022767104599336165174357640625267182523122616336558350319838481930275205872718118219247028336343578940806717646669075451755344652018133274554734473327008873773322953856765293348427570308459695315069727089223078400981648770558438651961472834367985112894849685701603957286492704730383520897691472008860901466689285523940338001862879099379870436813883124983301683108425020217307030759962403960829846047357894623856080995940664639433533854290289228326005909563270677953533535863185634476107587498996793118164189894865347083655012422268526892642929964681355068425329822870751859188531053863705303817711415915614306906284108511483640120736163992285077061184426768838130195728803569417819468632346760505912686514016113200918610755541233038252171587485342031796976253556555765277230944448568329206779637224026708161092365567438951736278926066328649972547152529165385406883775883779084372146231074594233311244710748212654135585150578365123637584046672905734739985380141617519774628533133213639265737511163208988115639084347680928734710582873433960448291464086118793126947806419460731729519987943079034131169948409245180106346813297616972007441219924490023707432428670145584285396537942666823060327230206925376375337980805735808813354884186656415456073145851735805497799276727594034662422696161061567737128827343759682693303212662168438875392674662099167778450545599731029866207467068418819549520100149328984897473794522781239857695091868109646735767927577928852433574966124311387323347938807315934127905994980639299312473038817109762319646672030975404417404806749075138973584104490512760797611701028595402181446698722443645657654007005132471209517609992358650564505854195472821609231782107089620431330075199412054175870320926556701097592433210775066002272430358605493272062095354410071994486259854953109823971752104986883872112380919239803318900834003325705274661562462531277194984269207981198079794909920231126200068212743257064228855424535885462046012833609464907119686595582804959524937777956063086451410000817886789830209226228209164442560593487873776006801678558201308021915975277225096006974162314910268138925904184853140100773579142124786309673705661003101372453208639782527745929565243313757143791491436387126390976260676701487347256462199634605541974855419823383522784008967708433103891447397877686592125225653427725560839696568306856146150172909018943785106456082773823420687012559974723806299968531196263074237724408458396971374054085041395940513706910869865935285339696088451557429151842858805364118541635079811552772853239626065447529353748448571382230115679966274485105797111171289292893739486744403939386726262790014813931580613889444419279639983732575402461936122749585174843654037609250038400949524669229080930739650433158804319396287882523685065794085542087798765516526586143277980049752864530303005978256989938801718263527836623727229270393538129217613782549294758343353726816864693084645922051526581281413905514811032329652407019924183575840713102695563912875019463411517703077778773518575089588448341393529100708569596912513008413857446462665010710854839951007926622426508437281396459324485384296872393425578030198421983620944276110621345862096161730003543080507035483634033153288889615657669450863811195986760029391817880117435553351264054298454243540394681392956666601850142629377218292630465758001220688994579891093765019150756979408290842204826374700059881602803939752215791824869721904196857501067200614569146747810985610477971258566525283186353584436685210571865937758558201468074123755708192525429019905768974474188430923332461778725442147282913791171270371292559597857397028593511395774614792835045596479967418385246073166382095965742760623805031394807435856678095589127387168196681513981534465857697217649954864814357850357808202032194987291984102409649417042376633086364033720107198399251988567393985771030061862738700120550725834738262898944712897933773464380779689537678405851410002359348003738492873406899325702435969526459260251633605705469497803017975891677305831484574413599339005229376931756660814880772703797555152261230791851462505638746964032368011566993167810998614858834323549140182753734746584182759005162241435373377379091443420357186095529968056757489985514890704282728174400088429766480997121617328168054689853208863112963357990306086055956373426409312109502574629827391558421218232827560532609891692389698335937072969768094046998038867292348414698691090453088825387416172959820648699812116624146992282229305028704220808125391090602602928057540177533690248537900822177239732865951772075923144229549446958059847184427414833645183340631248246851921706394964242416131201677162194293826300684656767422617166745150643564985049808662486967313838066634532448848892888863932445410958079705527105063668102406779446341998156437578234456690394348018128608702086607838609809187368829725205254838959994054928877445574406985164931897969703380653893350870400936232446011367119655223304514187952118762225069631483651176709953852875686334450631789501648686321423158798980994445668301233480192770751595814332892658270253923901398624844386896129430132215038538425865755395152020033341228187209155112119070607035540840811963857233432834141423786159298125380113061539225453956457695892821685244126560327211463444436306998046275954233945185558678155608538832274569730565958883814793328114835398102768522388167791406352765547369401692890719844268361035758465653041032138030633776056027451394866144349549531979127163280447375825954907052957872892388473311207392474311950256952484215915986738650269094292791032533040729881572027935899593504685720136474942112089129659040043988836187135684876122755365666001143261686729498729571619552782089800217513042311887209636839635599205882993191808529376233755241951785020125796031297009362046173516112643961643834755211682547090680679105218426475904519818360026916183192656246159355238463651876483408806337114435961554363575272064727598475510316266893920929721307416625758464508774352443789905199026771611057655085353733466981708031578198151467711867714703004840093253515991631915487466407159344655786610134179295101872443021627749578091782577560218919943102957275952005256703551029510567379865123137634290591120762781754568514490567096357692265906529984297377120177103926658779444939425759957628003524087912511581816401254694778046989062976441444928751649135880664793442810708298470424253947003993732013066246142733289405348346367699396106542850264315558859557628704439493458364278060606795108682601556776659885963843968285486812088703617868395191251463322426440187962957444258168093414912034595872881634336616300272301165738904038013754491226776615663665517798704489988352305774352296854341364264192277881595423977364176935477583399442182691153505959135237408138831459496237229679565074035723443394859259648762223730823513670876622600800017644486576720273782799762866694056726842057681913836554920588729803722256036960766995741803551568584485353108455880414565895942173315144497738139427151521935328044109197711794021017003266928790706174521526109551320400238345924959445973304672366316391376224100708636488499243331983635285008307572496493781215860481384265185570244148110826279546130529722131697167465443513056683004300716855310960913564578734000550212546665690238711629521806031187602304186201071896588764026412121726569220033852031050280758354559895370377336089536206831608423648439890558815035835729405446703645915542788168009757561272194739626305033914444662170096512414259661500706761618022956378630233185474935881857215817378418608893981526729953823388423942940131116188648496101378929889535531153295317673302719803405879528544810448750295400484853276556615266319809374576138871719021703532566122377860888497816087952407202163903836498305924313353382280447415231718287285489604678742267069400933724567599822505601405694171006573957248379840380949477722127969048865131284053508453588379391464656511597110198391963422023026758394906407916512146777896445048664084469933635918114708404606640495835973951776068091949941900127481035644047057678644941921333298934246833755914910347152538343442671355377902874821173976165963644321545009522961152534268998490380423562089891229477911727222289252183273244534312766641601879392647267119742837294963465310152776467576691151684269321397035436002238622466230258014811205833551309714366407502616449336559841663016982726411507963647671285016408316985364452935582707701429438879797384289994093202480095828441681852078260406185797081873553014496690279990044114607943514235085477296423349306269285217033134718126120731114140065922776511359532309724692262924090503887686304969319099857511177231977523051676396184658379999533280932531684366922993422504772409501193078509537347288286973102384039599963032100423099078911624045769861620502842394160298960245061529711180917778862018591471340863845775545263341150820989140408485772496786089235175465376497579557636609917244737786559549326985487349808456639775085307584434731465347926136060817046080474219200040608337784375575719274549986040560573319721020394380666464767570796573457906481405829973264034897066938156563125980978611307158750734222087100764696026579071192072511036413090487086596664061238239164003090103545479730081343585681831564645586282329556552545803941863781103263276520837069052596979394111807763869012389036635067243334321489267317480507009488137514931702394949355132425060037475166988789392693966032890468807488350978193707356886758684008168421894725496964718944889897988854662108780611475279506646329005137686215675892585587186634132557401986750783213178875526160890192086384763432213077004348318201416825607434994251743027390646993805665434859776562048965830980880277941854704924165753755134864185530026637520400789655128314032305222544584504796908758256380080718741196355444811580032821179179706071340267978110932342512845073483453642244158661882778729258717053830372078312060173136225654755889239335732851940624765426478444906409481547351806295148252027628256804656784606821406196879378919977037887234908655764798977519595217038318726657377928846596759016516651566793698478860166125236446583585027217042103181441683722562407051456199435147121938583220395254717175873144128534223767111350037032526555059641821204189678656645434575035932120042826155055346621945575349182614992698004971384596416938478584411733538951551802583079434144262048419306430813074078442729995459442734760878453109024122586734877552216316741474800990497256578648958133163860526701996249894956607479567481431557670396152301766417504241614748571403481623852380879093183437316148582562945179682437418347334960767115450285046388785252133207348465672456047175649764428860235847029115082131463469448249877583024948515768536174582358487379782282057241275685720893648543168164403369236558009614961983507609710571850523031666806285150139202694392093441965718706901761560628231136627871525240176510634706607641775706366523993705719379099084934133760095746979339185379556963710740566613977401889706123109636397674824718245357200651355267065551621187641101946398334582799772062916309745710391119272043930256134168415050722957173182172995682273446994853174239140346300898427940961052891061542366083021109023553116742267466701512281610952607324471532243274768435789263516540468113144407302246915268057423850680814648030792353452362014258387507206311017627988647525541285909228192887374430618468150772786992824527628304099214014581315775971810143786359998030426937293696350175446231581902759337413876483083445726328297310430035966579189700739486054090108926434556310246665715685792962168819748481597209813776897696704043961257134117726762824319588022818679455165553374639148028292567830382864990539834414564746901712749222123931212225145707113150132689354565195121578296779281374527633142517915184619216799969139211933950922328314488109784899858982133695953014259978861311209064655943625268428508849390259578824519460132284236089247826993734842210998417394532285470373476661195065979826492184141599640648620205175465709022886014238861033989420662167676196697580805064845462705901547309888891781905679782926872566348108652344882985265412143954278856649486921223891198310734889734212854527648479082344800414947467306567222951414987846747569203156072359675673188768004207019555608553685790273910800277154884458245701003485503118719050834857307794351824921070782847771451904172231880765782299526167569861207176814670163377268570324045685849330998435048303230409268504813608312950667549260330891986877912978382431227615036886127617541382710330020727661721968846368956704603895519786603553351282158812906724695787966641966631436404370481808769652662674578254217092935955800571055981270767242443949833238341187467308186393643234625564966606860043515819211304035468245527181824964042862650704173174030061245858454958088001795482863285909897889386707707110895032171453949229485201971195193686164950469868406298215921250796781201350913752629790970886513728052156575137896227843524990236796728667906008294691690536566755602156177024747453595321826481421710464091365902426712306156484783054925192419160341767277473350150937167889790806989510868116282997260166884295332869284797293843353921703643968914273521886839071370067271939539975188336598258939581884368081079648397607461225490406138028571658319460984200416748020599109043940079258709271312494300470350372794352723404478958905524897207337008569423276200677324459961865501818564312906270694795646936857562585882719987020322137412535706691021617422044717762832922619435112966718918816206924963607739590062287517610599405369277843179484122359882519031158626866213888805700830089961315680402494227654376286986996490198489994358736489013532502440350830597885770173638283163498410413961788661483772217991265471141209062911714180804919591688435367207528130426278355391687840869284246355902924147194520239944101551615058517173707969372336662130504448006058430763875358422108374193927598999976192361827548666920183691951634752633835803705563834365260162099394086475204037970320316983144150227280226976003977788193021507159982435818580387884827005166494357673063053137681152540541682836261504531606726118139844925739006337166379591671359030606953581152014441059707293562124345116654730255596354602624505101824075785639800263640064537099803898720342365082288353432035176401525133331052704844997334780020084031373237122023395629998343219169087795015668224915140890788805454573469481547372839373850021376384491154508889513692848126169997973905056924375451929433269647375773833064804512175859525384378610027680966684178559315985549994362066316079676265878148779646668418628573912944037450692008079409049221838865704167257878388884499979495690592502928238760853827408026588571695551478864644976849513330493787923710018782443915829577437495325333021794353309918079414910359245387397078429286991621646105946438538209974370846337015611401666290534463030292369862546422870639057397199907295827594578715474146574141217226060394626250695710583030529515658272584108864534277709878527789184994470883938674057329330091667867973759316640020484977421995066840710831576336500012968757790659066939134493645879864308777007114386350001843530897931618039200733037799892185796325127059227590625766886579833471912888159004690222865892503238553190398807133405030522748487686505083605712013661994000286349241973140380362299216380955794091585771503223834644524744850478957650935859343161856857704428471262723159325894455647187384271733283643701290090448932954335565129841495297393882648882661250261282134428385723857047969973051020434793552859294960774630056717916805366040928284587451346270759539908229485402647807631997655893404871707474631505147486234663964595833346866263048290807220150006104978803188217264421423848385140011404041726857520194305342349299547914386922061403573537647969540692196184514996899142171197661681729114759877024933317428868720975731714572624974748022061641695227321279267966581960861606647441795480389153979299668969072574165744796217505855609393936420986860707371162965637055642039339323966356318155418586237383501598387114198594842389858392493225448378582783695998609373494066834597248383904656176210748161775899679881043295497056133367603887035679357450068022147382765076188898686515093478643243780331314946315192326226204224364810834320619521059769862779636859515748152845666509056769988546371820459092358042500310711213882073972166935479587298922040199641668599101338173395318098283778082313232051231470009405332270043756442825297913328628586641753223023778218406310039141467569081116895169389058054517862885390280380995434069260812824162106942959082454368159480003194394133325944836490748695172866901692962605993975561075264985361661911248630302469756461849856686584709788721171099556688184767338434406098188403197276776489361050626002150908723390826998051470012363366273230502643995773828176711456826263608162679298447885686038818701526458965343848526785759644773190229267484268299380173637526606079165697154252138373351706076981791853555831679404244595523133166645000391139790108751524725446795837023653134831222293039030895945562484326584767711150326799701271406233375271967112272953009605398086688651324131905935141384805935135641036535743360729285761459350756958341595850099676382071095533041991926050210404888806920302190034150304960063226791195102832440991425284950963581063729951186728366999262429426248647345017041686619010140474143204937109575266686928744547086980724541562345789682014273059801975936818607368911775910158566138360187421619295432724292463147071755258526395007345692915088484145167602861669745279242460998156472548616657795905549994878024284641746723335353222278933329086195679669747246805631074531116945902176043272667277042843649222941193215908625950866387425968870623721870795300160761549550602904021439425578368200901411399638662197951572515652931161432074983585972540249621962970613440061813770623465944087597001098262806609122373872137252543928341138049139417557625727805542330920915401169016567476167844490938254729867498372538516306786531014070706820580499672572130824872777601058117678832238347171865594466645581135743748640360975948954582887892915082633342259560814030375020201856840401219843128230138674811063418658353277848375546519584277454849500392474476978663974217326308867736869434402969110189674767378213724437603352457840991808109284110351924240737635413916335545365394354088414486357904163241428349713719584901119613255027830106774688541987885871639899605915750018164377243711276646465142206327068780763180269872417661664596547905314375042102111229701881394432049570377967781120848167596977513845720404500220285953578793828011068752358266387962124573878778858413173738312828821104330579078057968042024691966621326728160975113925799821595612967761086208052431535423760508245392134579985287041056383049142501194662181313885726643753287286365872898062666673620568682481875189514615017816096024613510167463540759546211834890693752597131204745640539505470121791330633120959632774034242339065422757517217869554032809780191279812809176941204042491829455275697867665185263398582043834790548292479483119682405445097894327727235667704548487868753732461805183304759020606362422852932377019028534404986307379025567165040666836413671564643040532053245095774710131304042501961792385712352578991114184852518476442496787844137643365171569995363123050698038599092079655893884305722558580067026707800970017438810134652157755805821531451552369369448621911281181667965648717240690954193667349183164639137099003063961223412576149965792133209011051842408144855669339762881366329491430179380134746972128570734490426337367428556357684795185181196926782598159819840025049198006075531980273391085526381450238677174410233021311001542828754771650738649838819969068317671197324988886827220637342869677171793000961671088187813383139440507400584467715785053661770454210444549301134139900064222811570861117277416342467116843434679215228928692067087246711699571897339171881242194591234464585316506767164445424047936247517066353753889733901755610748136289028600843546564544235431997415666270922654184224198468317056615123635977405210378679780281093151185488516624347106373114892573222401156564706096604445568797394794515814316196969554577102519117713803503849298340689085234752000993536263921128084190859087528242947501492731240751535907237200223828999889418539818307905509100193321922213196296118178585232462939209647812036056992291106134688812545083290633676763827562622999051072817590962765320473328207447212815173535569015165234448250759094890312392679026050950200120070875069147576905214541229856740826541175245163118630207156123398033557445771189229622881958671710513966979843760459490187337150862734161430690773464277165626757991727509288967253263317710724879647439263972753793020509115829929633422016280218224653693379461340007813241677220410857009723756785443547524433592843487627370230641465262730113800477619942491247242499998274404502311345102016875273558787088012356585370633412608888794202949032529332370573841192564263509041117103672517254445993971289394497068972611420999900607915907479512911419680773112476507095562785981362384783309800502232496358983177941589251598212135711488218918439907505412339821198032837841237671199713445108754058108418906713581160088929918189682415921672021235847118437401604542324501497040934785362079030571433454660497862628299849411752497320648877841461443549025222588998069275137884677404204479986240623519561517250420406978251676365548810940680627199417361602292459943786837118227041367246963983889987735219407964790701521417720362313524646736744483030600830091295517818670186747584699911183155555841392289798331996363719149716073723309831950047863124303501141708803515855191039460772354449797406188404054572018946188649473329409717662489596698659639422983338607555116205358601879999487310193245511090963408564464531071944769001871867248402118937264408637632328505296762643286360874932067971266317771522711732124047914023284767743746028997613392978620742886204058286568763613305207699144632749964756117972935874504615335959905627308862481821977692116454403572085756184084276023650046261042698228506785489666802527874456532537745882048699095424271686770441942089834735944139225059794000689422165571425976480315385958574031092046933181565665375197737645314537528387477209078882933579299108797245466330596643692166566826628520600649423450648713239945337003709348822025672056550264426039235795604426668748221968263679450993272574943540629679781992779756582754718118268029107576669883616055579461864408004565429273714918098701586363893207672566731103576780530092227561138669136915962239010592643150054797827875063987120030905618200659503784031578360449090545092627793582031361385320865174204891744619733441000443891247046418416945491519298711576085514487364554466973636993722115362011081393124018120296366054857453721803186894397274763972361168056820285228129310989903766306541791788812625317983417868848111005139172763086004855123274745109929253762083012322241941372514371225921012572011143010176799393777162797203495057578315186281939611324710847171073804137136142108844241116327915915958773573742080855254647752904498695097611025653921282546252330091453725268045802413447901052161073823084624544399803411641751635158568412591788126834385224575937240989480373951727578436918849156045583306410316575679701448826369161178165648476236000105458734500984025865875224362000749150585397355057546422574684055669806505890027997526407073374939431992901729222284364705515778437313730828933610643447004373007278754373349718212090816648055684429099015929563954703562755910181560307123298870153888514327876948856405470635599264406739865310099466078947255435685929595820501599516251974991956681680251237363086597960879220057250694430969216101685093688020612942062010390987456711055551104314417418722894513527786990238460278345987933900202212790493466994619557262760738227652946229037967441472447048428381821295276330812266220073974633525825476753835202030153982497833096918650475337738986127116343190296028484971563182066938841059814337874639402360003243195214711855598974300509305728895723585726806646519160761926610984515857931354712074218804923107464526093221982538760931549998534118492140655050738015111457153859118334301751761645361307276280941480859145619956388160245392204975033862031875834177954661573106139642455844378931932381597291467543191140185043328458562357950338991857269274806609659273194033180995060716179943312729161384695242175649251175670004899130232958337332111457146964949319999829352720673382634124878903918591480622716029379325011822186180288115588670014488205662834706714477051612427522792632805103936914207516286403635183160936000507038726716498510330743487750691102495922424831012242296562552775620551328218839312452444366276558469969045696654838737239227785628560563978320146413477457144581481693882365720662317797815227510487516702498030372494488861409473925007441462158179896333350424046896876955016494052421831667429691316384386770558045888978317054290064931645828784508745860780552949641534719881767090243082525163469051818660375417482152347514486507729880143163385879100190493126237954689930993805872802976458713775905558161185017934524003154058686515499445401515400536305721741809366039233200628842971074647067100870884297258528074044450216273858923001529846158118362088719827410988079601657207710135861980956983614783040941506766467765885277604859482506299539989336025207890396243666699518298447727936649498358580134103653749360279104108805555544147237820989144940343212962127119830938806745368976565829340587446997871902564165194778560473390629750763372431276835514079472353796331394110848661166741225833547081830558429900826860759737320127392582565371298280750597204486270828646598599035970983973105616120704418229729316606428318472024527249838055807290558133683334740658050153998756231791017663618268439312580131747765818929367272254653621534594076930206236261368279064775800986471991304688095860503315003611532787653031258490066953984249603274565169170515437824373045690968605530650697432163525161298420634034085916056637159556526182207289346732102505410148750448385367519419074806347971902383325558321268841147260454059045879774073699179548027167393857275031945440399115901672128133308366996083573728940334041285774800050321294025585269660720096007300776803498614046866818342225180270698767425913047522239493194607162733137503728332389715522937537563872763018321007563676105706340904937890643076703764795996607998818648163906705117330542485585659355929740350381034062383948527249597077637294032541440820490173288642427768493768095706140933183862005903006044487841088371494862462319390297419242247721479716066144774342899758526272260487884874624685411365996363242778988031584452886530904922984913489778711931130400509419856223818357994271505682849622968917282302905057804287339828787333566952200411267157074031001557046960038908135846894351863711352394562409244780607731071085063991181495063885940707490852077198647148089323469353690547424399674975377156606761901873520530221646242197434310319318689325607368474091493447683276075007393803792752099524229433445418809441256185120103552146391807673613385894231260676821110501707316647436951976743277937236523332572810064281032926854506008253129324436205644237650004448029125556255718440653173189123871107542400812912411086392866566464432085210279264979510701661724635864480824200975815947532147202758141218614120499805286359497894653217885638430986812038877791267880756602607538271624794926603980381205546498835393025420840052577957235793565467859563256847462288732987067638500708662728713302122332083941769965940580216319058168071191589565802095409109316184990207796535931948341237993642976656237206280006350892996403770494908121131688472905669996664822152044660077169508566021328731000558080022756762197325965746635005423961283996995905317479372683353391663734078917837444086752511966348905817426928838783951220318990850321604390694528097852011613485302726247971860040248184894988104341867679933453214832865142827238204102109516620160716243169169242409286809425661092659221246014857580369809937958682272656428102300033762271219970727126328745878802512262927900123388580341307245707612330059328926332630892364483428016178384454302761002487000415612033806303725381450788771765404654534622091811498722758568029732341730199808799096712088746341347554807496311306181415590800816686668062379903890691117399224412595706739015261473936241756918614522963209503518004478758366027016121708981329112939421709852633909596050735930088622098538652155203781149344225563251941698294604639398030150303674140287970516827315003070491048774783605727095541084005630700018556413996068255815814491350955068435686923424297290227439571828146180845767650327230776321421811938518580351466533564745419026447418426549061713328499191235365297957550255165544731440666045879235457142825164512986068165610729586110091318779640887587481400862095245352906160769011575546952325283767198521385304437432829076728890306386649961220992067754630375602824681900410025165267768051519766966952642155935204732344518279433721536556405730653971048474477324600007100719126875900895107635485844940349746729465102445500875073923693653965183602788828449379808297608478051262399925371186357695974497387140614537895744763653341381508639195027481519145662884944036883915811489092924383707209587697631479644851346205225172326345364188539102027327358257739844106130511759587692237161579902077627639825402653120946769137199968411509076374752082770554928826306774636908990915493918769425642732334080805559906440578304559716076790247171600792148332428162217199582287888937752441544129675539458321233918038967895911000286982378085614879510628145550253750583058076565263254672734550049241360889224881430279351947570602847890115318047975048423051558499032751841511893961587667541263814888594396361583834906259112489769658644608947185572519369085173312583091960826683762368614363482771987218030899497013168650336208681295435084331766578498849236746607094729773043654460285135139644733340694845370578147670852092995370565750612413571919847846501039536824645910534837965479349285723416738289753280772218298358740030429813620215458877582193560290406309560832769393343526430818224166384552728276784453718677977427209421189902215864508550883408281536222570831558261253327694278580106034198511285694542081013624402471475253640736597372915640899478311682484646105251068294147819237024481467865416299720334512631947335085062575450788408013019698248283074311485058459057440699471433868392913524031539021932516331322332237658584268488482714755043758138962324002721208542887172800527348946417771083011263554408403969196441082073095828818083516303334605180230221086720637680317784351479463836198953654283131139236644063364417103748726849453620332169068036976305657612312495105963201966231650769526831122495199710894563842723523362520988982805684553182994011543433936091387089954664700126923192084794995818687308468634180036655545422636542163906973315593976885293902483228368073841584880780439836392734351996919061249241606555149462347017080624744406148119772296062042765556606090526496453122780122945469582771026844882403469743945346128503493917141296932987878621195035825084674448342872114707039950620083294541695970796956944862113436103359083642581771698431235936408164603824163869593870731697070008014390854859914501606431356582771039818602387469368504561225218089506995141737357494292031977146845697549330658425885000257757239300985386148596448748246484000424259801922346987343988807133689945889187522389447697471790105299265745220563991804110093396133415308288295419281844418126898518108606632442266207614988626624932108008709951754909326787724762200877381296972110978042812684201237238559902185229866754817535283767269951644907867725973444515130713294956441452869775696751767446374365415180724521873528053271839136870143135896523625987757471965729255615314230689357251702681273557480034918074832984519835466987407633792543498673190440095799628714473430280286910998603421557926198040835212003639060913354320199172335574685018392432755767678150952846847489220227491722643254336454947906039767858340321986617754385776655796156872043007564032490746087631312557204963667682747762484241173134155343316280329936379019008867357608848104773960748726020764165520602618155380083070404552436851988959040960878882050014749613008608939409203409248492231749590017830397885387316204669145944060096237476640330658944991222026650031810223667490793106284346625078239852187720875643658097260131351774306691704886993140383605791836132553494881281915751290860192909793386222470164525242091437510886273739070560677804070521940876137537941731527549607627179021712832600648020133534830383455298157039007744307899177888536699265755108141049291539604637273733365970658212735982257124115029758839901891190202588257615774136809479326459899788120857243169362218245323148876921286706151355985244514857165232466535546400597879816511662169116967018857505147324397278102555332030365402942185517184751563674554886363622807551012621291005334530193508704580058814553391854331931116476906289804134720664801802327621126261940548199740920246821187147473314925916818850361069625546619757267036629218858858895263592470571918924307993922401605557465388705161459608115008835533832027461049083459233392874657025691171589617452079277694330857466213168720696311855242345660882214353549631893530448535660908820441661956921284491691702466929532697940273795248265406746155251740550975376166430281546487962797103595014074838111937762551674396041309290622884051738712048390835011748987413438593051427290066892738981967848777466315999162292009008135236653591358818691531357294710979368237188478291537536185342409318828021640324070652350108437529012366806698949801200185195331790490013560638989666545130695464249733354637192458298805388009288658988027606822945850222864590715675710050670206033443720659086235500721635647466539380451064494479473766871720159965228968973177721162977602913591915040667093831888142615210153389345607503127847638620102747281532024987549411412834031262917289204539178459348689906623166321668890271012516279559006362628049344985068972498498715725127308477755924159334267417898752921518897114667136433450544934538833239945064435695302740633789964715798193485382057615862408542698215770096938448804582246757038803407142148897831548816026726681548600062102137790298156880187163648167508791740657102718072911519888011604646615748780579847614001360892921336896787936206511341526288571366555276642383257265772820950476262649945517110112397876265210914951493537228368147087241133577275956418237773073148631152948360336343499549672047843879980289555430076081131522390482531788458364893887048066870772318891996178489505064532513089339766715066867914796485478352442778752713610219171470643511478976885273270934956022416598451102844489844944072909039679171502814222029736598557348980925482026623651067607295689150740495092718653540391134843434896954852441933667785337046051591226659296159911770598213348698166737540653098262268887727615426579282161798242038156967836418017107207274112370087742760060434470676083928017279824882022429272186029381699177689494725699499737401790728489122753156844024044034779841295676124999262801104542632134549957838447287041176238373082766757612627944930132872373072396067702698757717830529765346407700218997569787515384034727844660413235492346238929600794391304470831133395210159816534991009610860828057048665047844412587118702022247553975939209387165461564592059223937335075274912062407739447785730985838454702925628309910733671948947872298232300795609166780978317950591249051672093456601176849054591518018124757359423415521063380095604037196930255203527482270296184615627698423950152920442032659863121394141473813168073526948647394154103577024538372961233617697831288188615977897905917198361817833766046579259373972229811846808413556498778735540927792050076913542841043581909979489665390036977360048325468257467317750489326310503656275498520014077148689798195878966634260463558306651122216630885974646229481491438334870452873139787606095419652265910076943862649614004259438863053569496136620965221720693239289163188974059717211436196074699078475706724887741635772711581030009967945114833876097909957358516034389879150719975619032447878950133930405895226566459331337465666108765636503677273589942962575302889396443500502505049929857535275467688396411899719442241149421623095857160822718470149256072501661008025447484874609269778316855676227521834028830629816550100432163538331687886143445758479493677459990760246723263113699519537948242324585961110692920707799298328010654497358981157226578426428878253978064735083311067790596763888637813638238742072102035869406009697823185259077263156151019336760943642215655167933283990805033650122166131299936710058603553609231039786869106675926418279994571417824659671263346353771423511985152809597982179388469250630878845457548210015526778824378455258250458112900819887944356844717126785428738113411975516676356959716893461538571544843040324779745419306482528308028177755974160125629215372025551253457500076058777780678240156327992422744746820969501031109560979999708866464030938986916376572359513928940548611952736190469164845835941357918659008230214782187247308442547468444532404496473494386983342723759845918825392595223847702045774300623272828812164711577602155239941602462057993470126239581766450549262435301640487234707996849794164323156938838483467992726473323500489616518742413136022778020037038454297678376020808319517124217298816056495355696416205222681184006098617769998877852813185434132685736464945810841909589880362090172966496996581045919376671694466146217754219596414975171102752769109207299813921677224253287909899437221310313847520388028884156193175104274864270353831430969048156129154862746775597900916455971891706675154334674213936470659404677041552913976505933176088995516271266835803294132645021130649400502359096908094878582359288047765713665494720003745853612182502214082049903789748250699594466831325665817503531977106164335360554804008995865933266685617254240882876054661386948907766114304835686937043795529843883214132504327945488624842160477581749651856799806295857523772077856837372010802316759913915617997967462560463949234287801356854607479154225308073620059370337998521353729410409824406064798364423473311450318378212092799537991366382061781114160670103391666312604682634245064240328727194648357703111008055040018629303817720068336182125111576971765823774506209901946972705912105320575338768357722072882742531647994051313991560417944229401400146189667496598229615950535247494633247035932140856416033447884526946184907659052596516052082497258546891504326282548241901504611591534835072579597679896006817490591422826075455813323041019629969410046966858718317775099766998444850788079340461974593592408503118552589699132833559873215475099693478836597432686322283489063510412359719318639732640819037861720263953119803257690179603163113709075455974278781474256076696100014880302353878399082124659861758605539803564606884896970831421059486911707463633110868111111392391726819580994086417869522572167415734585542627275031162458342450408295089136174449837963910586302602089142305005382762502983498774697132407914105081840586867668760169412888731332496706209038882245845117101142100465761708668497507091682874021631496968251070510232912354751495824900727136822726498931191022858582581742086797429899359258198553564651518809501533392695551031542449374760267487337141671938011398094261721641051570712038874799260353580314309635120443175395675626380889471875359898919940861578784063125142694952177462880481773702391458037115011064744530075593135714814162982337100743733491685108041177047156469832754805219652712038861046417926057086586289804996344796527838965761288190183391864012195458143677888411832341931731600425604472860269985920227103920382132087736766988192867580187088850980974662043411991486742611611034749478518801818691596053692662799492630111713692179696985387561766902477677145998454848064427904334598298988638088132847695595776058003230436059829951416358210574965536127738423602577018215029006963402016460927972275947323944869115608606193736024752705115386106719770117563725555084223185093973082835888924019620421891455633550564029144061582591799308926546576753911870403534032288563404671769732962129042758274062798661978522678480213279862371427831055560454683440386820012109256801047858955350157237913185282321345472636456469306313347438469675966565661641743361950673301423308004758515595624597500173955576048770799970496749812054349395446554845209191764962519134259243595167208338316969743249018024401662899511677004348204274293134548513212999112161213421100668699470170399731380556801705218030137079667160720641589886577910774259777153137920121663121437410660220112521388662861909829005638020584612774228444027520484301579444988198997136297339810524860520139411847223673713462888923758133478703416953104307568142275539741678302527496075947246146094537971859343411305992104572625319889177179956205578601991634493537135461440369797829558805928247039528458318027023403278240336746711422011190352639425119637463514697989922493751581694624015564111944650128258291886993556648658826712576477889511767834251914068506474427181418835788845725734571320370264079741425080956861811751458893398333062342364774418147354340462735334653494718562961202255379311513395868325857284013480463362131909545199601977740549487132244998698030322317725193737757859210438359349605955170335572398889377365412675823578279853903425887448107992090673240242709019399983134767425724100054466366597726339313544715640321691751235084857843171753542430847083505193299460793894215376589503344681548690863475937037944069153937874559772241991508754832827417228597416726676069263734370360595095890051122912332170376401930690416627515638420149724044296717807001939672107103492884175703562942590380723354976742658842235498475474178804562266119521271440824946764001111887850892343366545104544990048957755488349455390801002071457746632410034203306842479202008570223278955594514933981385707149165651745390854326052732637204561719709241234164824919118685186670979147672028266078436932266940173079505750184570728831777493841930296886575810302597628369472914987180688471008419699421043576500765458063905212622719309901058489180748245862793408860973343085621462691731338117948933613129768298306522466542511619281001808522726473099069947998467530076969174513300742324546297851760811300409885820406165236123075502103508813898513584293145726685650784238567183962768605240403298615204229310319784675034597831926525571612846880361087144352095216654502166442310360743216679138576590334393228244301243713373718879231304592807068753415310681490492695421939475827398943513578360764245094910118317187791059580944308257117596489075458910777327900041748837771183542794574344231620350506862978889670358144372220011256319928056559591725352968574692369530077328105579912842334265758497601669627512326737048153404799599187603847377204695328003009656236155966614691198262593739098900934538881096759908052032716789976060981923171536510222464818295126887631563531007993117517193028220496464905798894994488033375616033999407057081547058067908002261827343217912542893513187455080522280333947844976785765167096908838390586092263289972299564019282542749003412396175241851012101591609487785016936339479582789729223335022514661726998493936876112115004485026372812972643572479626216692387854307942347685078281380147717043340925954489380361546303287675563574187743688452261074275634396533880038833247038910292203383131989520333496335459716363373809817712173421950814261959136256455692072113456160872797008591695274045424703086150581933745117687627794209596673852865738611227834322590946484946819402086384372463803706580239004259399900248085401506284432604151494130957435452646115550069166059650181698743474632694645202300888369516020927092321075149510713069905309850508959629617952675081855723286129478579353732558108362652547230236492487797052498727344912619453793140666038026717618689606437899554426542989269840479383329368123663789371785200547287791814771067124782595458653676992942351067536769115601034907811129977672303624833481535341580384645868670832604080974001480992379210929199094977620952705936678353002091879150278444351609658406749540066478253444903174707492064758366983623162871569435981774548617959800550884109354522056487571882118873444484304923365064451561254525102953577294749874454940233370418634144089391538564591238198615733021565618561774863404594620983331370867483831615626852607879041837723804889317349920686720717023550300308556186064177464120598699068414241334535566732696295114463952117889232337067325855208039525377990081437751021414068715529763911764021431253336222802752609862188766108590822506070137232584442154423784294034423143887881154584014051452126525629927037646089876801724140189687043369883346585649534440503659323550013460503695419421347909499174047099061328575347882017575099969960586156523490980405140635669536413307185360233451571215818910724157485839918414212057820022959613452665179761032782649319104853769008727945749353301796372107698722661752770653374519314032146345067346703972278622349818151724055121581916001084302516222242344879074612903168882802497859430579860454082483333206015312185163978497481886971918428453580205706804646917560863893479511180679683101541754253389165633823764636975884935063451544691260606641427685430887255253453917291896877336538634907235942775504826264757596899332396040063237075677899023790482254058753216652009195920840850988785885937624947834379099435215284791907089907852988551974596414757273742678464319566198095156433234751186561739969795917240820222234229892665025832259661717133541125443578517052764051227325068696541096635565192439977436140342778491630803535853030406038634183927094177527714025977367739481299184629097028044139741458729346371244092678329354931408815983703589778380618213179993789274047638234866630409897187399670001249672654135336666485527392079942752010620939331073046524013254748834563473302642894860284614966306224700645956306705052128501293979740548948942353834581081078948746792238803867617976111323879585135080581700231361004364029872670303053973590466985670608402864006357440328912432103976487082138864709686115991763970242655688033181274530346892472439270118033697269950534908947747837324065139394563844344782151811726122197439425860403067461190815756354086243510152114594469566392973387348933280365735019032619345979220340723915968359056191870975913207712098846099587473134011504062736403207174415311475646661413399099981805924872463557420761768070462630790743118265151871758317658559081943174535014538913273676093695580327646471015155441586127791783430617112721321760116277555015095867325161913763763170133474926402891794788432491184889311427069624054242793915196143902539748039193174718468554930663675599591326200631094053674491890640497112928936072698066994026728343700678669994956853327277916307483890495418626609180383322524052088986616901825813843026392296414391409644081057281568371592806734035131010556623248426068052620269208529921181071764286341967873956721519059734447997478446499327514102581000368792552354483508624208334193507587209785271759741908555372599890916281715844789446982728115054426322845300698596169756818755240544532890927231399060430263680745759255022569532703865500931502811885418449903667489561693471014097234995934668311326653648912878944046749045922363914189950048969179724383400500712159901334720783384886335760548112744642177645042367958184459248285788960414372543751107313942354633731099325056834097266458555060095053446196148670514208206583377851696129811397033941823486978862407854015497435883526142564119139932406340321914807180543821956211350807433409502271598628000763267454882997318941765042798960349659696113035707647528642998936337424936021574603934709288415034592221266304857973554781931024962428387575533119133229964294671500789985955733143298901603170705383861055862367921923375468403402002644823622891139627503690642358852730920665544099158973399834943903444641836750254680510774121134963836802987941584237813451307628280649727045001012824205782176879406188489435434024433655871229771164658339430256973412154917669034011011409714062842905734346773173980593497030155702052139812654297127702348031671077350749403142978293233379868529774345907035170794465023765277044479293705331238525638947863050425173595996664197780744882475890510165466897106658584477720715334371102830862798085247109676678533848904044813653465527977149198632010699396711669953538587877210067741239841039822897040641326710718426397670733825528779632246310078250584711242135236949336067547681059439757048839162582532122903308019599301188840256474027215100431051126019633740572719385786653235861398404446272361054436382470731323303115431142216435190751349473782727203610563688307397221347952572398818617968747925169695388890122906847883300049034504437304199089090444142882707584665994979987666904253569411828258536386001621847208444101875467514641022249992067270945344936702226977957616389078130062956519899873778119565752214515035681927848244459265343487234811571969800258413685504031702311330378145483905395043701862821129224167947684234663585051548254206024977451760670674743235333125986407026739358589168070187983934986445285675819730219833304819793902190042674582142875573583083558266885593473182016685658898631169357267262791915864330064925620728414522644907277248153928013838397287697640860024574450090851462287419053671256033189775339186230343582494260329721982174827444454676674641131001641037178367818827721687607032832410089135953176750878759410200350179900076867813761424220002229851867689856131842093010241630732617304793364249327335732763625293124109264103172132401898567841536053336042985848863795561903717388731777396896186707402832586356044904614956550104234043465985106858349786571690268324840265325133458755737130926279151516657958677437203107369495680506687096113511503637318279767740548829095682785097211469046641269707506644377261860875500834564163376387749756331989010102629768854250659671404718352715797265649352108579685545422015327357591117526980734306458075859901627264772772021285849751350516671251100538723046090727759664308272134556901347468955976311792256150196631453890707236859877006849778184907536741010834439585205839839500365256300699030678546417911670794211183455254064976637425840212367439983556955941958289937098211754483711952757864573179036888214767384317532794247872052917031569821774954652558557650782932925437686062592417434652684169639536923998335411340464896392060632588467181078532132040901084951489136106752621513433216844336281390990877335389173038709329538978722550072066770187812458374437597046735436576079930484360405153069457497241928615960795779422292850283635451564730235613474694059782663464011590878492177499151368532603140584173430566376947820468941123184557786480769373666184863212227894255591838648238032680740480486547543088694631154611561974709955244349522801280256922643102895819761654429525186701581963961105175475544739291806517425226510652020136846787954830575419653211121777146881320023058585649504037787033817823299900831643580628030000543035387956266228778095867530355722124575726161983574056676435042511780532952578165112670284735861655233961200501037372515306895596688892785663691726893832807043213784807117815136585285262901526021944473332939730281074488355305558299409006723357218309497005280125076376341362739483205441232087360361149701158962824798127305710344653586744769093224964222414198810041096803614646390371781336485834002770986637761048986016772219088951883144197069092729146302443295322166696479056530962109937208720438946456184275652566912931072372795792450847890173835960901529085508915340552881826959108066342767392176359914364737534812406585269957790201705380756876428134339797385349192796109066057501507995577214636125859004104430221582271960756249275365520104802531315431652768166624374471396136212183671528239430661101512988911265958854410192479282160071034219220392657527604774943117201621349734491518358548185284749870988863185215286563733647498408357757517718518342465760872844336961254480201264935860632830407683028037102728992401162678873942157077816935886551246959658895664155626549852999447760970244264499900802594979151591407456455627485605407901514656625485897635281907580081302573362166952391636101033198567408834310455002583995967749308758176496042000412779290681514347363040547395396781874448276434802131899396151996487901092793999608930228082006279078667408187214784196991407658475227178744998856587358907425344366933524520320894108447128921919686742583401537032698316726132835602024193683788915854193648702437679001677131072919495154136138346127596584412649217231695550708928132753408048702420791494214563579322594510617473622347589999936554312201035762204001649780816599028836821339675902338289595479886956933771927965587217082685451481224979511782959989232383737139632021978600630316157502649581995133229218097972099305739327459569486118337894126758097786070426093061398786076882998908459861547355570751906819925333110241072765437612648854359583229954263882529188660969892304437843386811134113780243038259686251221878985355664505268465949890693390834377625040903535507913829182658200812305132813500272148789344671862773769331337110742540655289875347305802945607578318440362639082510792352843256683204631378527872758176777783635643709687099569754203917641279850786427416826830435779791097139577280495741370343837885863059419188589459799981732439461532857110263841290515657803333443254868337668927930900274857796590543073361844705279990674948281321431340745393794869298982254811667117733058581346362586295506134830224743653920664892803170739294272381954463477380209833042477966370828208548433475946281763674925277472349179369569628318251636461959717526140764154833439554493210724477343939837202681499532049788598392793883996672626027632347428993974182642644188391696203408680688690184295812884378462954447929106250184802918973383587368382410158358177196546248121258390524988543108425613149118093382666551363394701574056139109250465867363542796250164019073317053655365129924095680423571981572313293592130418734686605959100038180171485177620656243871531065954478601196601346945330612696418506698081833632927988779473728420618536065102970012244263470363378390894264986548215587037800520749688277886651653245609949366004708595031227372649750540391129876506795704521377480864499947823073807241699818270678306642940073449859569170242577194972413913072076946341694270117021998935427656615370675179964414443745331325495156994002894090679519174147368878770971427391028136464391815278968091341485569013903010339825509843351946050809093710496198463326118065982365579931148533973394347106343389967421981804822923171957227489366972958372268594781840872620393336712671833809059173196500420371700582554246195989025665015142375895635526356650542426950780485827658278025471408576784075996078586518070234621241170334962225569116521107259121858081568426452121856649539939336288884854858136895988305815700004377412464966387288248157010259417044645920003016261624865685267161431364875339612751246909613358116251352697671846655301859060377602126894669011389782015909850832443721140325641496065922462957035262630001290333332859499665594692624228581177384383024190605179807415078708989376458325926536133623396937097528011278824730725097516514682664767189169340559711814947237862500985094167923038393086367548773538858536533987424405807020802280496796778176730679551458567817954547383186362106440032596978075947151193060919546824364744218852011999240692548497253579842916109416077307892529876042756804082675499071455236272181445715603206385185736407391352965751537813005738710540310985288747186165081028602673134315610345832857053873537049258543805644365024557218999074366206389840212095646536291557806331067732630222605593960662029867405714414463061638022340032657993699950492405943439601327508901914392104615464585099564998664049516002467735716680099077221474665137082977440816389853200168651895657431015795664766777498256829717422293866762854570253815298788324629868123567436213409511159054767313742248763756058017006520489173604192787762034643654561676682024387319897353854797337341568330528009127901060129281879690340327800010401516537275795388571060255253295411274890820738738649971823330648646146657528915359717672462050868385518818491641988473285809684613962060401682201007369681702516294702977461339612219777673816584764548212141597779587695975314122504149527533244905360180661236867479281510864941666027109449456321358710854489363589448077580141831409768222574436043803554882136062650673390770934713452943984945171767494527606245769900325665140348876690266833633807958816214661944427248666541874710808395679464467747601774119151617772696671266800472887737025311517289847401107846460188591729722661263105287295454194696932740857664769351827548703548266165793541628424868209312860344116492526743559116195228675040182322253106603061060968023096911596669927510270902492516778385557415754077032312705405100293174065456605979069223773243641040245025161843718949348565475811126982140376758330679203408431960484493867033055137871543422511118338360788122042679419186336107762524099585459503383713583574556534275418465569864773497337050751552436408898455865324526874771507443233242371578609357239715817870572443358375260386604064010640014741000464572804576142304934894312018003450297339201956138423127784218312791870181259944922457562119479179922252927230433421797476968849240547351817833110073373303654149926440592218990526792206980416970911516170211850204496438449902322972909923647295994744704895466561648918496566379735049768961275578879185795872887206003902972015388703832705703905075403522568976755339448285702200097999160675210561599520657025591226593347557836189929828500550963347156227236600550099062055231859736536727049411572428264564165938605243271125207883409506996903292094027856962637913631508657159118526825334678807575557200109970283250246235087088658659527699223967525458458453484174544103745669227352227460732348600981985887969585751192738113603093651665204733789334123311320010856588831074873125505623613236168743379409338382189713708785964869571335862128924995156795041630440899323994768769148770710475582498845727233778385012589556498440192620706641872808378777436684458855257598829861067644069993347572807739368613812127287088366828574579569127629563618617420261170541539290271480957042205347042400946922334252415427564612969021510462472826641325844404952162540299695991542137434383477763497342348559733915688343943653357096080666545539692661679311261648656399186216319352658370587581579502150418131170271889895312243375121903700811571870653913475997908417395547986008999560996446457480171678296693317165799172304328133390636746923424656273721243177667772512045698593187276080161489769569759750367578736067404955471182324605084750389180872694781219380352971936135277683047658013827727015474868686746577610737716635083472665398115364769568470617066427421895756106910412026161593066875173962855973914771184986014207865787605808043683905256813102091584853651517883330789293890362764150359179693157950076304563746495158852032417882842737828185261980155753502298030135486781892611461457621376991381496501270862182660416579568689661223017072688839919370957965496292283536790315227582131910198574306398481804914358003669878578179573324332345746257271412574643567304981898493456134735636932866081610451240499881406312097899995465320478438689163093166530805825492254004950274167740113122075994228257954781115817227283844623354386956549255819311810788777849051441045939195180875123647986796885926721119119740024133239874036163079906743118212023532848268478383761579783131085872584695420133831475247074963417040607818046961380434991287796426754734218814508854445377476534134712439409374232591845279937789800430949012137256371474327395026652084802936764625015491471284872715529701697769644148458306928058462804015422028138632698139860563944355527388086116268887823073069581165728222810893032982034592202802926809578137688251207848408763845084812524035800549611590816455022058969469200485458390950651620110794070978139707322139514082161158600481995866740489429633030320007767911704603742643702796526347284279414023932092762357020156645798127343066438541872656564489873018248819399574621809588459707883234850506700135857718181289323017898555987647890199720061630339204826567645711843498668719840343696405071745502769726877760312880421304684581184819209632135358237614487641374950964247198780573395408477470157807759406297803806152126476426314440314027862283338647706477972301641862735853771753376640091217724112313136725725884935967894234771509166224880644657039464130495150432233409636255760095983268153498790343067483438588940163340909700095578383910473617623207201413078859454735387381351410352148957379024061274226719744184089521983714908699538621821898743154361165970048825848973871439212087100151022026090791376884654458043231051943483172869566420571609230112558175097237129930472296235527430899744643716102907695868284972340055879560456379686062979017374299774156587680088663505478060061476069996711722657052994332743070897933277247345398487186674593544812889819449138276425465915845558231269067413230836620601700744609287501003313378182027375261977877041636795600444951105751035917983110765798072341001023892239400409785775361459963507798512273708588469679350380942148185718841915688081500110336923290960682228976107778964614853787164997711766043608321580775201650844060124840758613458319591174298539749588553257184284854790178397288290551578618282521812554916983136961607404681525416662230258453098328457671452101781294828346638645338970979388452105242982878311815858200778327196995006061160247385727060097849519852744854839803362054433535202180770955048415782965717394223772535650849060547191556408357306363979408357176059771384505792486367335808136428225355596894134517255149537475144466105566546056548306499533235390310604397463395431158143911998553178354022222459717500187155256782146184566021739272906394157866362643305970904875938946421537383492637287593086791370407176490680479248789215943167920046379899919745529945568165136302721347511274617703686635904358509205466673912841773368400891355094831803314794909715831069015670116832933111259475115678470170986285052322906783337189426612921217352665096433455865209854100739761210115797718522700660103979108450570893938423170267424481469838562930505653765499265011218389676166185141167762311066719151102119358615615713460001582028347388717888149081446390647462533062368523335642362660877422816320566635705907699243041075971418405107068148578543511623678165579327795028139633740428667364528824607381085944512196491462212482915734835693704899953681503028968699145691880711404795595590821620504318665845401843671709229628273752569274897762301582902357866777340795107832812625965335332293186121676736417661146310155207980994590328785069699305200335348189040027942328182260696143136748138965428485639337080971068900971020166716370681923782901221598985414739100591719922190825103406443064135949839194762042905642866155374224141355643582571851266824573840466625040010559942187040788363198115689242804561516524192404872572434694703665936975861498789050271763568926498380635609088676282828847964524891799229290659947330651888184799223394839119413969119311260092037894363912226085721897821990978259838578252707556185123253907705157949605736196362417994588332929439205049498958255850884047145863269244461014706786215127722820514512582493970689222318727371927556724189653235098729851734681994918616356836674316650358740560151499913205895374056566427497083069933844772994524900874809058120817000691961448570931865609754994815047771870533024888060780152128163430593807366367551028946052574623407484550002698209102906611412452534250612553864025678351555329773793031029373590639864278441415835415537381381709682146913781000585116984203038761743751296523859844830117090594713227365624425897772590749074210268268947606558427424006534274557262196478194579268725323071444073419026578913632489959860809639407131533000332241577495315557808305081529700384011840908326689658053152654371668464194667626595146484691166668110516117196078620423937434640079567722889332784721178538025497516124874366217930989602264063045221642053613680653448003037817689961583449265672451971034045442023810113865936173213818815544194956192911204663361031714672473566679553097035544433311160149057844756187404991609311051738025025601679685224852659416791152737312261196260909263927866967006785361098414849493515631546405027771546558795944377657272480642426919180460474433320561242844696441653007739011597538515876239359397299289150453342855370829761539683786436619577432429513532886990314465605705201390843068692307555058454677745983999126195608448298729720326928192804182077074458193793878519911629115279043935821623797727451913899653772657014953536850626906282401371177812245368835402462691558237077009612970088832918707310355348135552284658731645854220448242276229734436155999643507123023389581447787823277324547283155167211212136395693881155302672675689949481687083953607873878027772090413624060322519361042784166447384100688040404222375273298699001542955886174331996539447158079668604505076737963620886256121427470780436574609755644289342999286292150173752286479777552110813987483921321296717168516883217540694843238606571343986503610810387392185217548821935645520018677927108774313461588700154095880138268125636860192446976946553800764659636938248225551319628809625236816922253409971036667880717905918368389893025950563760583223944085097855120319112352715207596329060260133441748551995750536837969377719648574206465910889848621256707506742423771316221008558095553172189711219825480818565695925947329604917349231237631121455817010797103683314156910873030889742443357258237465867638826020342827878178105157560562771804721656648818143279397122180103416453866360596162451507978068495383874196272114255281734139868308189920990088716380262675691995061778511037459465786911486341106165682089090984174957355225709728993279404502169077480118083610731870910748031620959781204742068084908645376555937306322824601878919796976974615890984860806749281734092242282541603152748882231012529233747755994081276229365875034698600844885593286722830184843793302389637532027560579393982685749309890406094951991737290051158321099632770025426655872783082921656880595210592174118556709133647525186063368208249470015201815082896242851804722757808918420268680714998014957998181201723816266941309113001791227519931449815578627685102756088064449651904359823808378966527995290028566081920758378844175548523739390590457956185617095122773120729961818459804408770997687575598502012231590609654365247708914920855770223876829123964957131090958702218863449668099574944730047394035534724689742832977153933408160795342145222107621038929129194694587597513550750204084728764219937851460191104362965018274037765677847550053078470575148233766940171401253649845890069276161352182069077787907136787010268639169274627089685494022024197126226950878547780598562142550062138462432874287126103188907890896505606183490248770165524193571123463869912897341171563446469640942310672417219443663285794328504885266443122617304798644921336934098869453549122298068700484159387174083718210203333910321121864976570778472667886344208318868122219729780156900897999578497892596885519495765782910012390432504562253638494750835685434664481327637818335422862663258775316496161014446005570483279818044668750677360464031076250170110211023072170340177939233997757392282388707003405935225121303056126663480758248150283255446593977629223907203516989683745162306622017489403834548917515582634915717983372644796710185699387177216508890054091526459987339724903451320692788586765525999313793077641048956508271083989930093540690894848250444367614714502418867979682324598754370698318336629412421105713644146290404271614367554096628193952877245646095004698954071320491416065125354566717864086841619298439252590547158957769547159679063815518093796490914598891924683113375707820730327428636841295857081276173628527219822972363597668693015629956368390498571895410002500270984022796945759263067422525792493680696588866971938916337086268293691045258648612873407085608561113916370674772601670261874376773105719482125137503779404156968984929281335416604416587177810387535919670573520700508021114420116042017875473639792475987999478668436043933810521191533193342192259974761418736007641786877759573008233529875192768175679084655943470015004034171157433468012692298445561652973388306948710001370283791950436053751426606181283713815514440364045310748359387738414553124572874881574017413011497315523271327458695676705399476596428994091734781683460987185714065762766151811126005298064392327312441372396021221809026380783368189204920585310797858495364446599130120708538292557390498994197801031100422625986058752705344741904674632102263134077745957649348940952572714287742496464432004698471980202333308955165547653611908901575811883331507163324009827164595953013596386912132684115056533880813040906906346737548103861654636537186232054664165076860344917033015307607536706752981036264440601263064473227295454733099710040988343404399115497049440864361299702533763785918443001999807143108422023704228140878074491562297567141295109324528459833271513035452472804704382186580851495159488680305518647503804235295190928564626474493761754393843728914714212758434224096048537828467313601637157017303735976149544716232809338902612539372336209406967999022980278788544161065710463841926493997818106191458837278469295166724214778854998217223491892065070000627456243778274352169010781482841285596163501349880552249897411694434433944344486120260970985525804072862132963074498984837578202554952570187624876391920833278511377832498791571022235387074631959970192047194168409062631131189099844554340984620904874772538527049444771821103887798883458847325876366488643752145636690063044933781967286637833747917698418891923475816806117858616410609472562763302352432432427472317783387334703152578840429937119101150046700466415111389260213958462041861365638662107964791663180657597006996497336408791531763879259875865412395975144744086562798858592863120576879390592335604817695232739582140523424674874805470088320925534189846140645852213521436365630602797045219055263225431317761321382945212670441893076170196880780637658893441903104702612339347720217376901319536852819787643470187297822706122967955303239006566732194756227957548620782433385318590408590370652076213435061738723404327715426165111037259326289594092918995002151893725467290960539494596102934146250271968654009875219616194270303679405622379504143306756137094835912455495981007983615226057018492370292287920329824171148891402642415331789917749308845066663981669656171300473878092266018120573916684377460059059770441789330118410565835630667537443180434368752449034595993349084178635440558727720695576488079403130913728077953426541363707506678312727197428407132449591677089882417051458746623842315769503827169390709035932977088010200955576763266371855398455900782341849986583720079960416762132994146441726178802163566770705365480923324388295450073086946896844635292793864192519894681313099764711920603874734253626080043114148166990874737193227692277946379931411300612458944218879107024168283551401234523732170703297512147370314896522432214502377466208228986669253675241209673555216701772592949648957883654818699051508676362671461096946110686713332527601366607410580405782454064681005913002829672443452441559159635016731870367090222673940311008298633040696280545934858255547425391412504959937578319500970144484233204563842516637757865719236774513587339578386738856614630459038381721651571325402226098924783625566347589660549440337417508019072738444529832824192129689604105429740444627218203097212105609353676592987172989326379410004556946467459203955219795454461036694875110317901660937443891571544780645646348238862760561629775719229012355066572107929816562038132511792539879280036735807064427797687694512703464988008041500170520721183394706381282149577347998211476009096493836877786159611041355969866405448236360069068469556958149678393669500036181033383735417790085574180643315570493247968573684061851839039772503651981162465238479507930605315308373998584283450768478640215005840464611487646993203689256175243047809098940527389643316291501248152811556718982331647875828840983465723911131374361734840228472091422073599806375664378921992229571336984068154089982254799026308066578577931437334893996232408340304502504911638093112486588435215755339497097290323975557872699812524354725961408885795276395707507968222922894269328704039760600070500265127798589499904138104719913923452463167970845838444510704355073597838955408687703242867222504774176496973744157868779177409019245407634497352610421336754851066482519535096001785926676317243462019243186027236240683670056510687776761668778803632735577292257166735563027419108937980122789681378006300084980153466768546990833502874848712809814939281020764832644932396554692924206884966249526402750957595435451477648095231758377350209217307835062060301188773326650881399381580805774709379216797947383686126912255676244822379402280285420167843781144388625854770894121991492293267949203574193110147989809590129055300707958403399165822875459444731454038356766237021451898122931428843475480857630980943122760802232166065290886879792662923363315870325262008331444053016322295421968345308586021887561230642176949368141950814466595665557986512541999868913047660545048787847328470937676138843282367092767776176934293492011944624680347513436063438675583965616720679951510826256703256438839168341888860228155461086050529783966560833509807422132635373160848305610128634033981937158940965698787979985583581100114395269765526353327060491902929136932338749562204076475313676439713894011091026059614835851304647020579039470314528399158494814386168036953159083954446118234709838065233115103840486341306692277015593178376918668409056616105634698047634578811876080022490486837634209352151086034405031385063205762474170690344281062894548562991230718473717082225784165621150245013526572631369242048529629890431445704475866779452751905770705920653317382761769878435403701907534400996223321138791790269984348092536976488415290521546020299375388650340676532534065168287705673871836212630678486040375060540642413077347585102866594998250077138022424938003790762870788315619048833726020837153174026467091680169372041205843132560373961929878670788975590784278027822870219105573720649268657143227300697205271849237400887349757225919775935081634171951981847539977990369243598058449160545271307976963250745976023721992347960963413814048021952629534045571951572982289089456134755735456214515022373233341009928297431390693923700704452918910936523784262432255098175350724549463361802477410584247596490834005783935697956099121680624610623045657842488602479250843543715840834920781404625832631180825806340300511685487449256676014667494851019033704350406417727305740397751536947049458405188157726262985547289148123985743957511867906403938192114842432697566499041363270676881412127368106716246054995095421939829518540089116715806610815997182308241562768195198865346755033060784053283847380359882744643292155193642800642389064510153924422478382471120785677962328640997663691070883713988492056817857516835580140701496697138112721069946181265045828412498906782596100337380344624328816044092797691192047502613863658945424968485974855449023896703247767120861809576787948696700864553779035076131323780973474541182673939150289843853726392211154452247687998405232019446463997644256969990251493522126791930074666851605748029110522863145730114238206695392061613836883722475767894307701312161647727826113120252867815633533047334456800794140588429151464686368319624699469131979716958097338380401745071714260853215432818872927192846889322243628726126778646433403669167390004165689959390343487220823332720975257012621843536161862687713966111544186908934535892691793935314859835930518087124294838888356508008051384033486741048216365581576545617377113364763776498542990809294385124732102218594218995300854462460719439369710936731891090858568295569335094544499408742230312292920173107485353677957456862154577274758331034297689075133473186598703548093573591050888585704238016827394173595284479947841129230386034856394164311651622576431953761811618677208483524004792233257727380556457435865784285489322123265775041907272540410990147698590561925364562860933622678937522236018143417208273432153532560878005989308758878968398719016929168967529109891617706613312023592163374002438876653632460352295081600689632492401055828155501314229033799930928072077599731840665319580430336032729810256131326960188742746738066593516833482316602800453317852031252182115479042807362802561923700889078606631532686705530256318329433908210194879983506285529993567519009500090907904428291958417387740146252725823201838238613231811443994703623649345716788439517063865950925077775060943598994094250977672198745240143843669854477597227712423365767045994377832611756603548422977952304804708372987342908023749118064619466188538224931261855450838073091804038644351628378334771299609104852604444522813949748128722874444021506987266135323164678105053354744580067519525857284652145713965052458502474727750172302072897003958276173959989155994593337604110769675188872851698672632402878561352113240208911902333615948855392409922061065655927256950746152337306053189722208571026756784165266485308244644791865169953934139151677679816146628134039081609727495340804893654609663903088911761444226514189146661387149487847018697483098430515024526191491653002763980104680425820399701071664093824156553809535450474432909781770161659282056093257732759172887809533745539692075826876062683799203027645356632890729866491863829872709356421935964272882683576741297637561646236699997736573505299423191483867609713015999905253338204791512117929552564460427329767801140934122418797151963235926794597926723622874877354389832903526545363258320844269359276985090490731828781896721778224325047655464587224079857647248608800090198279409493324067938442021832796110498453455810481804512734243315644602848620250443120016828317788734172378191497809463179572123986707296297774132815997403823425675847320693360851213414810182960502833794202182440384384631289541716750776412260763706642842487094309952597823035742514737097091157602384097605203155952784625654117975136383585630509253809316927262816000779819587241293267578069341743488436304524558873316340916624264729214082881985365155417192230496393805792108975103499862914688770912368456342251057724694727759678087617369437781391041813426017198943746653418512174660086476108870413718146380124665665165068574301333223183963185915596655732611995443252723919435620177889986842328129973759043797025772876089263410459169748410865072520935786853988052465314231992628855107013510827577293221830212624280255463040894588910694989709429577448256695289161941919226721507108690749639626705602367563109011739678644899558746806872268529494228870686912624531003973861334726145783993815007197816136350568298665939760800898586582639798874620949786267069325322627841259247723213909814209107448634767107315388504709655511617099180085187171322775587941972466827877512707421260276899181638135052923426355777971631818229586607031388181857394073286316562977816417430223420244004555374816300585642770317717636404159904024493019025092724690701966518275938222776893455980627599995493918833363960039401702589533206191299273904103040875645636246731315985203795523290767031772189098281430988462578181109258619528698789377469164885408518967723792233303987311551725413249469062658362236069403251874550626496423063386829903659141482574542734348290123783168506035494118543820250862799355490034100620290520635618037949727403332660766398081514336157322735718632901523441271864537906805570788398622789883985384362880622865764291071376770015157088725165261194326081953131181875159789825120321125671242641062746020779488962689077478569554469196393492097579237666937400688664985596545117222913769908254540305379674788287424450075008530012709622492928848039793572275214597639011155882835161837644530580093058372121388259354264380817247014770403299079397853785970226086127311453475178747808964136965086583559306325046193679453186616224445930946735847286368621572024288248269313281175881643636497489392994597752870411595605594736406504036647401904818393919526939107995008993180718438527046236984720355403756750829379424137780504295668565286344977658016536551621458456086316006724755854413399370725105782896503708440859965099694888456894071959014825307825291939783626252155761490304808007426602012710034003547246679404401716100130820418940819887367148658815580633584439199089475189170996014478300081282162103419665755416756247773449451229040372777753873597554172380781258687901864322979074335906112358712137695231775055407408816417221016252617161098250096490319331193601263577116024336846910350624605109353899142024330913607705875201612740297628379860489024798160734600212396798500573578142878562024747409799974832522180995285845223509552256121319124576124051008997174619172540389135680393492169025420900934911687591603013580819328136327470212854701293175157537378145991737729210540399134964505398838694045332444838818130866623531539341787845655830084809396725958674185730432286105617591235289401587033248972850315068558192587664106148059715376186849344748994497087380466515215857935895599673036073602814888177944805259035545641600748617917500330513031975507396297756997178837022193614516622024593508249318299559504517812251490680001481454447279535617887214341043011288175434761033390019975116513541730651811184798442053288187943544916671626973896487025995374623902345160131064864731553095956885815749102783606692989602714966214407964378286844115547843416535287313343259216521750662259837059260298839795989440367296626066136160104601098758006196232881433883491102848034616644920223175639948317755129685326075648879296444836821810534648904712937845490210447929798235374702428417975687377922372556327218725697503446083962588625196025642431597487369310997182658162368569308436052366910917412963005636906265829081450095397859501664344938414983815663242775172740592999925154674240072864690353668511081003286916672124800459179228230962461233572919569237026637466601281049063650281493705233747729480143234533412106955127432457861009936907134500415550459459118599566586327761381340627529617770087895273507520271744890370637594113527082107085277240814024050224795338019854551170189660401626788840780015631864026458377643461880131053392146903519857387069655152398426683097419831860929689183443095822046087715064718562092059775460616737467472598291650538143364374696534544656635752142212966392724253692045605851691900600570671979608251481996838053490149842399593200078119457046808821617009072597343809825743011440687074772716510634703986718861667998587926756726490535595356107927716682208114243766865978318806883148253289606185350742897337274420515203065800484412691892529907427598117782576519637737319147405740301567180404961943035531517744921501828724176157776244381933810851263885054350218586275314308967571025342579318156813729028003350886249141664979247862311822332875086792437873283788436624386495706079289032991313480094001874855679709848416371206001338539405586568156710383335811222581074884533404638171345662178980765922453250921556660466901104505938791375385053532481239938953865293956698524296218535196268208286429661937252371036337189585046890386272315162663147224066924271183612844165573056219348725517235880774015051340723008732295620447547970980617631595856226509404057789594948444654788056785306252554084938639366679071789594435115740789759973976253412900795115644743315412205337052294316865569368227194727636998330189793067009990451231261619308668276396822827858622659814123210023382813581386837081870965588610756956609981102706891366507834856341402485879495182180468455333748427868162166745912767223777064768980700991020503742625128620935230022105092996852807046583387839604412532622264373208932099433444203683261392902413431804574181536628845927544959136278787259927030756877333752449274249802489704129451802529956527943480992976503334068155817503629299032922386777849202937548127108409192626713165068138751619638242799166940024420458722825334744237987608568422999922415397179736281214541710935655947902128955114712542581510112970634972927056200649034859444546065920674054369792949117482918276074570436306299896577057685785303403242874016369005187191732363246796602199144198694817556720699890876500277368307679021800952132869915519887848867168909746091468990806020850054342954586718559436883752517561192389853245146668651766758237194060740469192556288747551446744423891954199972257944915243484706493698894583979171893730741660418323966440776033386814952682223046896065241504075618833396224518712267772530809402708238636334678455175274802817030792307877903647906280282266348329355504547891140225959989392629884951386013077807561314937190230113100307599318964451994776617960896123798469752129409184947638755326371672996960000747053133289582053575610723411885077998510052099191051517465940308215935639630085234651979123158819318024566156954945778492493460146145962778364262207690559627135337688108652883860308495494190076858001514871601161332762106110929915186657379655008383898045740167303388454237043846890882389374875301851850081380494370790474069887090011256090250212801286155215556114939020057310778444573383215871496187834168834995973161007815562465642757247312010727906359648044668930149174931678536455584586644541080346203881358350965765405579070554810326969133730892224184850987515971634379996697778670761191329460604171777985567623292222098789592649192484945148061425975874454973396975405764612629338339862082600401557023699700421447439835799426856397552180323878644174286157200284627047797858292505759057249225246518916994751943028463133352312420123575727039671044923313227512358316135811173226222370581988466992280236979734051204019296163279600545603198620264719578637099574329423633760404654570916784959881213616045471012705286188477906202265344414684643206048137171946481080669081324470911516927220724011940332135350070444251943150600840526603725994243769993359298276346500885084256319774621149401578052555443724745111450406983126456855181436189869579550012134181180805683329253877496527771747588556901186473624807251144119096383360139147010962351295957859249302560210408615932400168417504406637445000018237807584596184353215056209841050473066639601245391410753463247078171962970181189876960678791804424689260520506718142315484901552790581844808803215355534049605981215780218257767503587125112418053579219044828576805336274228129008900409780707977578629448185375361994268729664426460252367333942045936595302090589227448437196761703489352479663249449149969472842763672562558899806235077212512562480781176128591087863360052494331324305631832661451299153505434638234199763656100399083382840562199315714298011649213610572828411682241384333554130053089530254438463955240990104501641189770979205139095175190080178984288720344905377258765956225693357753778621180406489233172963738578916417853054240325756398263854008629098894916662981860912520257621518435155315728079807961088611810293886818018723676327402220056664247179236987085613288182991170851739065965193642388798654541733746187264834968488350551860148406454216318827041861997341456881901847005471604501765464036590636908015349528594348519773458012585149316655943889838101611154196742246774015028511120344516562848172680807531598938785695150930804130295760947525531879599552452696225406529274572598289061410120530121758996657295935750809380148164714719543298530950878774214637735050190756584041904310049045683214181979994613412932823059810219958257439203622475917400438680668961990778904346319887734007644477524856345218427366137206987310598456429516143290126215296092445322508021369633643903716036649615671554720501337867269248962597038581778687515837596311108275091198368236048785534918797578310836774191078997679560197793870362730905219394671180483793850846524039560728929195379649519691673920637781245297688617511301680909973699427166296640215256701263034093471777729960578181792853499105440553783909432597704628167202915447458609509790258856718333546221019248330550850258771116109997482017005857617242712218175323372050812876312755251183032200888898064144451577766951948732058166905843218190901802943381329446087480682429855480333523277897876426040459155711317516017398638304042040016966250197798809235459178502450103146760903849432435047768913215992671405916055219920082567091310232159222303323719947990642717992636652975161225686382416212454849160315048361798312997989729879793483245450484962536794763561375639828675616326978546705401924824828757054172294376401506311666633097994344660061303461590826989077678248967777522518134293670139760777798436598798959719923327102495681851138480949120707306781462558876838377395674291630932104887745493420050886739617780449447546719859592588261923862295421687709807781483314673304005720369412330476504191479487349886918134298123693434202527049053382668280012037791582110674469585276857118288531160102331388020921026129056838836566231968714252158652466500176073748451356843424502007784064924951453234677918564333802357135056258032089870017475539454497364653431368987060883216359611368068531625410081913826798727425193284025609609928926750945971088863840940733237356634492910723464123988797184909670786470441076975442551984084576062959425565342380755738883706835334078916893429090482653469369856297327664794724417734335542845305270393537686203003811223832133538281969034120524201685875006096653348585271357487454812309566951261026775795612780232366156163913335861405969493634574150144500375518313181382324822042709723608278964811214689290733052392344303891318732063001143011994316274134616070093214197528888973895777858939218942012150658224132221588610762412882454801144964757876115598620161705792315162752185854678086380583772814277772236284739288532724615955017334526010274380764020756621189623398637094294115407187922067599804969410154226086781972132858971760553572190018884336338463022687343156193067151786640594666185198940981751843688866308400785748924392371821072541894700500690337763902532595634773640476340311452505796810071369009769943862016835526592781233757288885939684384817771414797729192022131102221023350496655303199076640354926106795576465198639052787778605632004933719955779826914181249423084515262502376356920431777145459988509362755536248382727452420953391194978706798916243586839556189368199013377268021437603658193957528313159119937154091466039881603708542800547159791199488522393602427074189517698915276276886269273139807299741596266338361525861336071082493596501984091682475859862756098115175528145198057702199671441557691651547048720846324221431196620489169814117344668357709440046438943310686889887519033605893095908949620995659489149649899061512914211555252919632907657122783665277043756777170475042974809010500770244851846815404385677304285740236517500392709662448725873281602083544366326153584936354410439185175049160914235607245232599413116982312767008927753929956128777719742878421582800725910191704115857620619647910305566158429775695841208600859790963192995787532898291327619271635925559482883689225503820260165786951246579818808661285031391780789710991144284334746071561109341446010196947767339345822686789323040642500703246119668421163661741099558613369789285359276293230969358166246311091363737938268301950557356667554393435059568804116811247815559314248705675330103373491428362855046255534426131802610797558667295180473659621493498001227643377795905203505394450181978751782755772970399300553236708296178118129076272840372472872963979585558727816371744437693346428840862432495177287356299620819684916007480900672237984480091644873432693076821791798106601156926114654259859990444053892450802494339739404621326217516387901679048020786884691509980107321249997637484684022699256692883650172216294372252422635566403342820502548386878337873361541925370660099285632231659687334986279464282836438385038307126781479298636673562296605453893416062397692723653695110176994796508730123314243206786496072398214385424253472617613860966865652205728287571498513945974070450419985069323314325542347055741393790122101034047193189964928363194391252209364623230945375059113157226820782056887813149819334210295606154316174079564304501927297269963985668877575418335659811015125729759859901686981075536776446625992163864242484471585572449706519200843452348368359203893347149784753485407435701665069855436498686597103913940602372872826499748824602669765541823914720270987343941335808534159632040150227339870654201784948383394274980437174782153546101082797089014912352403344092893742617701717203021222423663716656707191644574464053331061292340768408109977703157484540306224491560098684348055816324568883969417951174988344635013197729856960216725360150693775411933252135481638447686868918791414475710673656316432538992072929674292702886421567088484745591719322789539215782638714249589360273376829593586655752920666772665648144020048573022561083508656110397351287264561662096447076945467403549898370133453650922012587229768585090876256996219649036246150263471349064571940223355679116503795455813322811335829423028744389172755261126550485745630540991857627599986654389982334634562884805340426042169868780279106651312220671108427453982014673075088819531728047433675331390958248102696205030414307764181092143225923243071921832335163782007361611113856534782707939635689436389418544718952647574818971501604296095095496182182794328463246490998575796287750196645917310813397899925319430707098205970237651083619834226565000432888731414099420167938175044404188433008354824767337752350352295444809521303516839456080968833363932677204673932789396935856212351945250480905057288914424294206300443105675094188934036564897632354287357124155148027759655784780134270963902324907384025479613490210840253995152094370315663838544917878397156695834471769673349136894821423975617034847362845189941558063404434041269570341538530720873892016208558827735632155044254808432366919312567450573901287432909875951094056455089872508459291115382749081818259956254123405124407295263552589998007909070732869662072575333358032540118574201248781542287230276012688697684189756718422320736969754089434334878377972241175257744104500420244775613188787720698840261003175718282771987660650066800977002831632834208943441290660997123075363574295062930802054122777896184127727115921257928237942123849011102497242676102788755543893995573597119104363773717943032732146995365179127386191852049725161288012013237249458693037053600536512605702763949148132924921623283547498620153164876733032992048271700713987491691142979560933824542762645655758320161376087738414664454941916042507552155792220266778774190408919155885874947253450760012855916576801554971687302220388422017085209974671551745493742596234804664871719450139206920213508760522310551824496226909926219751032779616442467640865085211171400748423686098367590480615121035091627712530344217747841651888151233306022134974259647392504746826898006095140464163359612471774673186154955932000799009926315628203753125405838741023932135569086832938379035423934417825581297235310917844423985513770682861054583559894641921342552450051376623725924011471984946287467452867236241237762378148212348503551510504469146020584613423134785821752570329808402421110824592645464754578700119950340768339418602293242603408878137030201926810576380290586245791145325715998965427607905558132495063292930171878985996720933761540122629660063186105431915956060512745732739004954231188528582503785778404822648395523920204308265220633824188126295323804397088996325928791000596373678990113183743091608160614119451406435353582266833701497220459077781506587006638861237955743750134146279211862683439667766972341309911544379938639337946970067611497229617903264252771707856165026410444382894294835151044235591617148802967863358020524382968559790235002665338619666691918161906753068509746089350639588683437425103734552915572810371622846595266513839636511959690354957795462611555140263721520182825034801578984580961555501169794758703091923145740893274113471157278940390707267623326096776125374983380243360138485818873998378349842094003360707012526309102165412162191179648692331391850689576556977044196562963862646574053399202445934250037752872422278657206845395336357622059663606888921261508256761078671405751495338704387350088130881097410321502661512922669210777647283845983008135885614482839893935432232089862851372912705239868308725449697599609737425121472652267425325398283575605065574306616954710336239920229636058408163458707124983440966702507683718037960542304554375856446501558621201567529301861973834113237006727093254489757966761319081458789387844287398104399656402937827809416143112597193922271160346364808151019661269189699648800284234474342133740450656035857203207698732759949435357427442826979354851682749450793175733479539411152619495088160814676466689638133694598743030857179354253156492784145740988185241668542348378963938084690522346028645641812185838356427524368831851910563465744303700581357507899055023152785479867064030333217086416170998738738595555713744098685422912771805063885074078117803687474316489324294466131266589921197348372437928127852117877184289297153559122296809424873086396712006977413899095924869475682426267387931973135102070156334824845575555429920686063989453652760621032117545027478259201597132558445433386065874544720840623269456700821785372297793156924751350827824626382484702948994303438420176559801454024689334061591539096364059678503284953144582025213795080084220899237610498911435950282707809935966868824041492152600017831823012534403764202627057581141052509400941528293115204096359776157992434622457432401018021817139035803107113622039118247491660853556578994991969912280086589033447386564398508519368888022545280348823721123885648812205814092061354758103639282380546158932236454286005760283058316093131350784480392720147446585380736359228325260949219363819372061351741828078046950337596823782934136841511487804358234756405286061135253257238930016121614447856556231065853213109479762217006925353712676016196398340233939239995716094219351585472625286472464338489926511793032877856328780367524041301042486096892335075759979490394389075334817637011319258821404627984322165272221274630552438633904758504865661157350000348615562667488595938976418507597335330274997400019428907840998226106590612560888566214124830760191924494312543492389124620037434925656634344481046446791990867822687793540910168025582288435777946070995848214601458618693119280381789136318299856443252330102952105020373577008227589741936105771853358833473213939952959517015885938879549245633060943122393530197338962199588577594501169749943378715037568480776982833988237038826215926427776908310734065695205648832150208088999691879822151127328167311104724421476366501642679961007647363742069137535888642819288851041790808835972351845894871579384632816954385974583927225634369604880527728519035770097736815627879373530264964273757361191172490366221090731485792545323818905164266670749631764163750986048809810989636559857558283814991820398284517292639384458481970989342884733027071675405374329398277078135349733598970644182176684701712096718568851168375940357305420172509862920199693509830031285505822651436839572995148337175202943831501794790218277907172110129835430620286982011493615649567064606589407040284974533197321242216637881858340863044824585187237714662948477485432243291626813968790687991801471419662105030291526870595824263418217981701291912107420266201892511341590915010253937829519608764137294728602502540588538442960900129260170259671972346331471693145213048402103933603127966578073598372458236677316787731366578055822625691840020975857086309088749018282243986370862203994134087696912211982368476459726380081726310080327607658790943024589278879006321099272262767632204217021705412378410157025896320384662406186120844678781183078808113332097451770450680244594333049859923521344388683535538093294043909537493341722605270348661110435498025569816060490802634797604458483994247665491126881580878741486002139528783649579028892755793639901425603048995905564460338511011590519015554349200367017882836196868707418039971816740980240832559670087022877532812634647346520364398571726652173403189737659603779591523260333141551628683704976519906643506395020000215608446428276184406747294223816888071266253889263803103011573258172433340302664288377951380150886398534598205962898877984448624590267828086976374711816008318210555389802768189770400689769447804333477365668128565501611347115975831713257203422742033157053103333997072462089835278107542151410555365925395171722232489663041749074065610729089774168108613669359562294711000250244213850718800350523130147964851830107167633631291702166363543424752945253811673056905532511576733010852796977603682441696209812485627607067351427425453955713514098195410668938767639186034896338258720060262450719762472653295750567909640459216504149922164234347161067898789744948738644438647720489137376235219587246296846914598004171213769714894926025715080595256978258984973650646607442453058997792448091806348205328911506328601339873306245153081686319881622409853749755117867409034524175510920620926332819997392443637786966383623019326555722393905139766890384414085517398474355463179986510898324407452786546161355363183158752854111485703660184371897012918573504740277954492186728770322057995060956305791955406131833829046998285786073157535762067917268764329277933498429065808150679429211244264706249066249974958182802237030484358448044098724186835139114610620037348663054121586871290112032718253733266595627665992583507855947969443024879779212076953371793074795748189388349795865402252067447492675149123913902182833523665283838667310915683330142308436536697660903019445934489842191845438390472118436971849593013952431834383012263413451850354145202734139079777712509058615460019068952835371858305031611785300198141022314722050855803596295827732912008817730246045733290101645554323932804032733932118041541362642562500284429512813709021298407821442341075836807063893696338471619639673764552150435278736314923062632396919102712727265874748682687901125023093186695683021079455755920810397074978644235395103312155431201449619845597336559868695511630565237007541797865235532992377091013972229078508216659536038339183374809012405166287678041222850323544335400206791798187012771146757250592189349989272710734120382480238953161491741661271844989344107544720776189088380585361937951321053799755525595133499062929190303742151955671662383867234118842022625905095196850676745861873661134554132504064923036503578887928769602228429697565264437036339004609716147365331277179839041824002376822639491646283565203644221652997550070044926468371515896152035323716447291954969432117966582591398139996808595297078524262595175979138671381695058645636731001229618082791949549133328617342272047577342936056505637210474226099376156661189132591632338295019307139866451167821850290231590629060665441563367224159482303431527952172906184631325495885596239660036975150941604800684584651160218459402909777910462980482240444391491774430006988461512443466005067941073669584762995138544288613940149235725678332564054204382006240657218714257333740233487806259347303226100121581309571259112822143029566852049568924459099353497383213902410151493683422689415276702462475957287616683802286939247537020491859088271576883143599752206037738747436192896041689841602998832824830566495793570064208030084871138858811714242624966464102580734807911123565065129152483421321805448753654059750658744645306429280345142930342181702410528053814303261625284808486239938839746253456611310528216201418599124476524682930286511534351354405936261652376694988735921653953084736507627497513905600687477935068521172162866521264692287162479060761189707195634951206277346280014039046733347751851771038061893515381596425183477434030509191415875612384140655570565485338788522308638985186275601587144740999710258837887164789850669010060667132223969909329475219123365203388842686806878220364824664963439258261860690629922008860661748395218853220088095258623364403362870270093637920777412012489833088820338826753998334345311261325333548923886109736323726807578326929117461804623441194404924821244065249740449570354356487994864046418727719024677690270910537788444733262970482810578197982354685399057212440559203844764561693033750016707690893759338633065793657682313452208492432316353599709851376911662210269000281534864115583194347028732566295631748526516525791915405971382764020170364839889168938810298001730796966301193204307096361439914452846053028090315505354112786961070431183899544271011247040140531779676438666435004523912672033939177317460904756471692123071181932848882736073257018958397121785773835425958534031641512765671818499245105026151373202543462232036657318103307710314322963772867874220463441562787968417913102095907189528014373805994000011851147302511377740127206582324678737695036224987244417984698380260657758057460749372638388549609006445695648484388680340703263898400235025685403870621082515263001727683791503308773899712063847849685473562610682556923767733026751507592630175436646054589480565479256339631642488471377452936054844900510929520020990549712730838866435439989018876795282394014637367542503647005875798750908911194195413219071850102102783904076634518091109395530043087720591134372407299083293545526847448755761220511909755210708954210642112265649912154229221727922780580889524839180098083943781956609462541075502588657541490661155706322598167126873857561274255059398284224917784485962209877655684711638234867849280195689269191043704574081233323631756790418182194380932414214493698198760589760092438853897374138161636027177431851651317563354774875180466941935332965222130332612678732863471646408688861870315115080293282157109758377945944848825349046779329250946597066910176184018222548138110251580599692631022790018464130082398260845662134159221413425644100763439920704704653865107362972295417949025758371228863653891952249935343409881152663623456270633923844173715329712816151089238363366707251105132196626818730604605681351398907455343094977141414802254774740898790005838870478863716614925221937269733342117465264421941195893155914270186421436390700405733811744114512408435690102504455561193592732015801787016124461132048114594627549880083418054377225639092605182612956193653141093784540602652466080236871776998481811565413205960821339240176874009476596015077262455862185115156315199901774544417877145968358427413277714665893546830972684560372408108526459401320440304368271482008644506606630481921857521110402468023588537306353666653598500026168969038914929138849628760221779487823354809138029508011384003200641008328813531331893932009736773442612359736413865332547249687250234602266261940094732342029880634562197316783180372742208297971447000600045455654800947613942453659582667141234069465371420496282351281590736921970927698053730160163826863947287326181633913328539254119528807491844397525536499376048186695166831710628144047398952926975314133402379680707917030773779620350564122695224790087699481778383595724046937572070590570450242530951783627587971084576705727565651373611776556259416335526184736969302649079132088879069503944983662008991501361465254440834529838226716519682261547389729774645442970389580192830866402591372344201963745201379576842689481168835489016386047700949352217239147695535887652019250074056562050027308021531123878407194302188199790924737393936537563530472727662550498516488898606456466031622645166530510620644525821620297406996390642176996299340689089973488069242794710154095826769926646821049536485314013208761237607866370518634416338044290831493199114350116769138965138940054310527573001928224274062434105394705621061194521950774463531783157425680998262514991363334494451718840936943656383176732844200215942466185254053423563584161541498648888138728996901944960041388574806338652598199324393561792626595596634188305859794452109583938778326927491260764575891954368867082252152855114786322504954239364332234754320950566654505328356303676533545329501013533686836758980563580830863692907327723716730187560520973000657121796650729528689552181199788228389625423119703628254976216749141866609639069278393372290318965505868255294787217491889817224278996177355129141199181728401874398348167029568922739735696383194814803127251873539210216349488342007395363431700065478588523834009788650536277627697059747911241977490859963443535039163762308798740382359549102381250964303875266555386367034228537256972140178496838352740924317822484007642360056540774501737224242401878303790436504836208374919317392723710835928930635359624534707637626150183562151802652121580166247009645859013129117929306876360095605534634786815677909726631861453997435787798494546645962627003946482888704025494327611030621008873587129864196894400864651804530453984353956812167007025732329321536561469955122587246030983268595010999900063750415368887504810051081135226317260539097759467145099245257202431093103338948808468371955641907038813504884386800731246718771892921275590697620211583256005419693966302654046347662859378012389678406406169149952201304682683802089801078874386231423740757631903442499539528957752159434068129098584867298863202640856555199478980538342295805734141030269480395991597613342651032994348699194128595631115822512769019776050987638807118111628915694116042590408430971609817103899244481595209673425862767174694807463833298211695625885043282536004512316225166263484144670842117810236125179161418453534041892341092062158173960412543440090617956403763064921174369250460873959749049703635600072960793239281791232523962518273273209172473793094683077211335761821168336641154773043051948510876877021676699347108312708188751977683275961638170871275781902030882456623895875649754769515561859003130933434230822199743838914304178488347326366166163645685708191946756388907807153268128330456416024130331876292168797987952203801258125993172273841425390910406974932187009234818446617892803119081621979861935239985366866653550550000318211177900396234993620776271920798297657771519724003263163922657860909961666093931400476788781914931141662603702001219448023638686757238043491609744208101869065482753675843001156421302655131445813674105183195295795818565270194494162293501165734632056243180678538720302781841156869033671940259585578082184633850133428050690159814739400874526058309116871155074610547567968713808960349177863980313283846368839655647995596887998415882197060479156707786652329499631123120712037039595805354974521152403516635526063861334202582834489822210091231922226338236191644722740376017869289078468312653550685167358698288918752150685607795045279935444146167814280349244354852420720210040293681639632222560461632710086570522952847183882136066258854740581268002551199682457695497801712306535108850173124626865888099988161083044857338786844606881642167049393811422348899336915788658831688981898111359371004700529827607093893535647842666602718217526874745730480267449318504995533972771012431362039881299923872132621175559151073486941389249539174557272963909534153556789227681706870663154843458219105109618799830467949371655329739753293767691599479278145623912745918410313635435858087303821289549501072817364197359804394670963813431121207617989149880215966166806212301883029582538643528846279963312425087969218396969988491076426103570245395010758281566576793290586867377223187647385833282890088613090398717242534991728850176937942891356595104086680620687658340719878198772565233116905043902729145405366359597128570387575908099837609867667301086122208589230096887815653779384978148752797190156762833193963859081385256943875602195205709541519533771476182173085386961963596669975655845023743526367610937699500489454990337422486609501231288325854046340391846951598447192899560530358977687813813727340033637345953604455620207638425373273656783086458108150158591265310944218616659761499410827677188125091031678891752634383854237507036646077786553532668717725954062908791583108001538969880332836081849387895990788836906636417723860933576956672178456178037906258080297367158326007945153216596202400538647432528562285971294943012370642295874123595315641102903585638147364169662614132484918440929711921320443893884484978029299378394066113464722824529643121327440062305421488548463405295472370535510235153769937322017623734834583514072363618386779200096788658081666411092105813293199140469571756049133094070756493453834589450072172686862238491441055001496571003281642641994801946816471288833041154052598386048639345030285076569784924884281817776831822954885955418730811061286981512035169523834878799112220654495306241216331181965648789807987676942636309768307669072726322674538609614561534141797031334619162045228922002031991032116647883104156075631201216665642905068369675538651301251102938047730619487581986303663348768819229091144669168873320939077507637924871523643734688551488992309024837574123614310108385102221650601383116562980861923680012283010465221023051495614571474901644762748200292172768181911089833959647921594226689794115013105658624320240390534719316342597804184016683546669051216912600699949415703655758669007276944876857609821191444974882927357589086667573088656634833064191386250600843051958709990319168603432903183486355096969934411877222383804601054737091226893578851915513446937942690966269367437398772248177621352202413668432894577889346731924155456858130950428776711414904510954903301448897471217298083981837743882623538407061129207701804905232154165762305034290453531302636568634763713270120531045247136667149758382409466169220052895272940897569728316016775326904109892586652459526551853545449487996226841987705304514605278271489993190632759709048908584727463016692311349073580053946549113377190885038122297871544570911615606386416975862190152330213402965123923313646266348096795285694670734789503734442783956249862871352031519333132675493288252851609659161330057159782051177745058464760972799003535043898401745161692354820913788044576729033849261826672855255285707096289234554573387206295849344339240870965898868326996965524544427596950402583937196167074977079668427743600261339863621510497390162415931640211881281144952913275277683908837473488261125234338838874855639688630771809472999503346819513785104179168073914345892284996511902492066994829992838926040637370851699983159976135661509917873872792120786968829442110928556025234785434686324245311234846080663938833282081218968249382141605729072424635869176043968885338737996866072016797022173806106881951526165377911827109417375422330381286026580591806968161629988025972221104820053229167279735529905580534475881409181588438101710514769241557809851300668009501539966741292951280996434824766917529027951661779971183074966383225731884395857580980676643651723038120757116951414285693083335293951390499388295253184825282151708571203319824144698265353320232365632402616139638718037882634493078371098540623217883404927169970086117149750003730946448201725193807457267252496165969042229756022709371809401973146634708778001735834503137582696987511771869767976032170024482068042470489399011791794448958016185523319135973717583678210948567551328047625636534061153405553801492604643517771685994155509398458518253588801121890595552220205646318009938427181320076920314027813868703581953602754843628933061144620697944961620722898463917860169040891762466784322981541396585514497381493527623382777700821763478465342133437918698002133875939152775119704724451021405255667135217459096675946423538996602957076771058631840925719512378652808169198852404346381993105744416353847514460131913146433202526771408088372916947623877519538563687279996295513292570249339518687038410558195122573158259311274400124654809829382687259402304307197566668301538564220994550264909942246252250738263318722508903494867925462913475230182812977290677605788470614827751661581136789721568007481601978310404355125256143656453746570652865792441247456364434652771043422982767039111699264219650560926032821303150657200304065371583181498007687583822980619795137705176441546670947459317419565937881983252173368321592214256526161446253328268693277112845222395680634053405389364622891999533408513976403798923722963354081958264341961359869620215014006608011531456999218027621212430549391220668116077605854676509674100988111803660330999644166594667812050755079856013947067075361514748631752532098728200473208433789505391286477008571521781028535331631259867325577960991026287123953700163246406867304388651411394033284259846856790030074497462439514502156371172290407992603296355898383135279598370695438936271052339715279447301540400553436770428463723962289638650320440000811243851619728610170285499231953161512759113125424622504835261558939101554549616329939496722312894857608557434871887506343220979215221013127871846295114337691815156828110548443325996792063897062556706465399872609764257823367589328705518213292294365852602863432313980180165149979276056911822072103204564093619918636766357236731803153405856873783656963297828803783817462641389035973519332953659617972261559750406959271575003646689260451715135723544948908248151024476413153487510867178791582780591299727805618941443371046616708046177771743090410364444654398789636162586390268743794848980461067490866137470505346591611937879941588818923030497399852160128804601354385214320389598546830189361045663283152861163068518687382748206913562733227956981456773591720322226268554784534013693744585226848128215038255088934767652378350817227647397250948270467340306304934195409145848707142225229042035804065627073383337944486734368227576642046712423506872801587560425830262707688260013470540749415527944224783621096632271609248255346468886646310926231985312539648316713011443861204129763221506937071803495146542556372151776220923498745112868950533955968673593406085265274122006330749512364600049469503615096965142561234321604924245133521854379089082239857799478307562640519688119955372337377895308170236033491164982745589104465217073011915763896256479342456620774858715483639978493921683419299271488750169390384671464933177483723003390404410509204216372695580629581880272292911615485409301312025621584214669164899129722298889975633678262298432733744944179720519863464723383687819038710409629494367446304839966197852275026239775349897833196435893185184850413589782615975868575144609515410566779568141471951006401991908071797443272658485633269446531508672923980507738676405814133517119704140519605924156834132886707383860910540961084780896587797097001300488517893708339857615202029561877162765084078862522995300325716022536766978047673678906903792740121842714154433791328759814632422400246763158473299654904190311996310002065199918506101905964242062644039441741265182826545546750374222310170301610932522639486177521387235577762257280217327752389025621176244116035637225818739959460620542184690791458217093630347194705739821820977246709135159787385300595765026181590677880582248407592471372585303606769322028570884791172968557601476554704417503942008100419612375715737022623215934349532096038860694410321542780161330205545837642613753798739888616609764263018478161812732593365440458720464767159823826149172800503170617388623546284730553330541376146022983852509188522358650148938112453315275121519755289057200981423531841057087700793410103271039213982979885712659437119726374728789332898805315268126585153829790133120470044171094139061167535374882836572734843961510222271555530188201816868904977544361986516912614821689071790119112431510508691283270443526389967409221778665863582654148434239863466959204706581551080890302222378212987960238193134476486559578369788764258730319563923830405638050144005610085125206308070055783670600397847958776113774659514149957015950977276256210651563128093449083455857945447233826126147115623015600472038118513232144615171318017887762074909136252740559505019719601417774768373386204090774986906394353859806690699783648610908053704786224486542155415094077228827345957442464148686846532081266557340036268668944944506076582600574047709970639619431981243479225914336323449074711428926822775673146737018332097090873987012632796057187938873981849281041755594094388543486567444387274512505106827209784115189845503282091271627220255353806620783017469504865016141481895521423450428180816080291062987475592520786748675031877219592704441048316515479355048372306765766024760120631349381576475324499827323963641114587423004639714228549889247497583413988776658055365813832817832445960575784788105563046278831285914119205173065051358833288900536110017153978562281655637051779814331200700124666695669882303056565329098624199997959176045216512897051144908126185626129744372501919182952148175159202070911526631701995837721855087720009011293527626383670167507584355967720762441663100632552762493845783641420066578972638840479834413826690397779038925193103812767390655204971872210089792634736072315232015752980123858511031426659937995098086471557910491211490240476214842220794564839864877094268802320127640027584675046809049854407275987879017027939017039084292548855255066370664191965079820385627026341885768049379221566443510366974527275463184516751178384835652856182034656009956558924064283523833257669601357205561066855857332126906347464729158820721166743727539682259229211641798012156552574005177894905635397830257312662086063166250993608628736877955489297450408391786463311945313482944687025055159304561871902347088457260382572646644900229287652976281893575379977940716846285663615262464020815747014824994902633951680420107452278436839925709597014248772348731967782036135544328967853902860786716009408526540918950025542552866373098105201854460444784080369407528557533780626156087947581721680560859101600123278580967805386572796803000396518505949642932956814053309911755246842748792432633791544356314518403130635885028507166637127849223780335364475145249302292953241822781484856440799048921510241932998122315516241608737949026734638377428308683185346142890206688396986105571657763326492171445624230023568020389295769071422793042356277604504439121643556939412434319792390010381542964877674292326965162678797590994223224924794530914370042849862850319495670856287894245064993405471316855750020848818383072428789486826234993344381285787908005531377077472662404203428298207034156424516718904592272859645023374924908632470018976136804018629450430281026353531053348103462195211844358364614737228669670177878459723770881103705982537197709029301469715804112008686488526715396751821639451329801540908164090282526826830669606755013969591357077429315596201195375450720713715483078293427373248471195914514175531576654604755973185199118902559741856959472701232791447993860575473586513945846077744637200449111654112690510379463660201521299353754636505802236267036859382997544200224391030600030505030324085620294733203783114707730072746299112254562241868366811875740111745840914603090384215755161788569815895555658977789134275077485639573484935440943219097275847092696238935390053152617785619240393802809427430263851267821568298801591354905722768537027946945734722185302995886260852736170892522974782795922965295208190342395332330680992590119492122227292404589165221441541494542962975782136133110506285557516181404252566116481368125025192922319779802987150939681011563768080763721361866547255619624338590317432446085635124035429019894367053229162900422146869361237427417874566580949043997873746128222425781387058079935183665104540877297547311477649799712741656705344917584284476683189771689206119858046549354930394505854531176115714648508222966277848230050138288289079031201778688249174745514188794082625683432743307788608996239828890796351085757277203571761123209268556204422304857486616227295416709525236074564086929667961351229663331996055923824869282391315893849547114295529337952711815244154378008348292051551691736198649675550056518767420806312495527264473190297923819138658230744963933726133188683941975834727597952359662718076435227411119132847553909576308147588310330636970300422186548112641601627156841828925992490426465979230982066548869261469205320058602590637850888106276862878420780097892780766009736413277602813002320099099283127780268613951869623655874911870749955691621091730935512574611846137660876612221596495767378693526055412541439153246780254479691140944473204146415564061582630252664134287327292716299940360861082242832964162308921313957994861823914798578766970316148471303427012196271651819438796240149297321588177897944523650894269259227632686388725312692144494125766800091483866586744243262596966254958552453820824016405124940063550159931825042880462915328217480570544799173165775085794598549725418264818107757217864003169927639394704623765475070445255594953364770649624266419785745910230703330775077508498932177356483682042175726452948675910019603380149261700150742577019973663358774364099795649034675167734594232753731936433052021608219294890101407910090943667955823887861705455047821424140139764046137844566124789018274689787424350023415527968277672039639774515942895191322846455643885942225699372223299601465247316606983341258591409761760304113418682027188628396454299125682693641748682069675249640946116782062785786088539970622317538637119407530000111674284622450322804601490838837258010604772630711515555460828383412781635721400000255101551691543227793543136221768013240955747512967156561794509722478974057519822963613742592512388373413549324529670502745527870857183557006072329169301626663538433500395889473445416600235057156350717744599476604906876991834690846610625579362294842454900423636817586189151769037289094955072927417409004081585617857766624265937879451932852375269342934873967126771471586956546775270754637280788515552042927671083899033230015914787298143024903650464285230340730989006197568159702998826728382462279895361301814446688897154031359804437872239362370102584727431871037335232082908461967829760511267913065351554936114448305493624444538149591898335491041888908964055021756415909810113130887675786416912547757490632388184580885024874629521044101743048427090685100222136722708931710114574952660300542450810673452923338860635902705379046452010256368926367872019887737342082187592596266940812347411771167565598039716244381625171694080375220256038904747256624952889917880239611363275828051596936162627327336704896255520298444712281620628157066523413063081137777349315306745780926905086818289313033867285123822080145594523130388130288019545702728701446433860531035895732797247485710533682571221662080315205495626273323534389302177105953145921341774429598638987237201673083356625146182211915888725333892441301387719441076467619096059934834904829703431299363927613704193899005204359598175664414329842971797777338687363114116735030276777104548267240135886320150751640621812158397243135219308389956721956589283130201210340240829655408641278686116350644696810418675502911618632088398379605442250544717552588919180251299046298316182615338113448551502188501131509402138910006568079875099707898078498738024687655024182096391928457401672039773077274880870960495854871245143164277077112175860942366216408815818896584674675639902273589425910714580392044305943425661331712530558824927202808164754924852449531261460695105907628672498134243209331009662809734173169267510963925813889644191546875400821938498680134801569225793607953636504516907744131399022715638721427873422357681633198848486323113440837424818557795335852540440231797289765324473353654588896427638425811909079803229570846253542640398610876776710959143008135335965451107852503607247182329284797843277800040213852226366198481339888749751939856907459066503946827679679578189492362199799139016020836173500702205448383221432085632230744900309764190041124284756079764439118865803442836345483794616875248681107927083744131909902199167938252736575420627947691480905695944760561873657647526160065519112338137978915534984573920571973927067493764050888866098772516429443445120852668725855371172542800165732947509841216543846248238768201444791739865590624920412357313854393811051436999634587766468766309849034093489051982541021721082910797468243993334551295043840443649071362428087127401737033352759699950034641499652798817764930121022844167869799631784534203433315368993545864413487111038113069593101170058514872253773841384085207667321022422904282756324524446243044098849631449788566480392556767322506273395660978488151562844482581696606772096139937814915570737122327494139452826661570203776874884719185444077077973121133464485711624375612393156506587105514972135152102211685879315689019308085539424262483971386159983981333751309069535297100681788115050794360112494360235872203392473406074774544797455321288111239835684970861129951850039000667955896954014370201959536241551909679675680065852981587181239171711505791383583380261458501864155172326924839342109922092631114789278824796402112210264922603944569068741475523466649349126793354975160685939310299040000199374780249680858687971503776759428005359351873702045306241451822719280171712886101350724558793248474502575875709805546855998394179934653023959491391305689302828162256473105565194438219208599921745177413457357956530999945202545549807438211073847919471162464790074128835283760297279582779133053427901476483326712048457797817454754622716061573047047475947401846238897970940658882360650983263069011629252275477444337837207223669913987989663781343314386661235347269508384836736765056233949926813386055843886169425797856364521440389012537867697895039468358535960867377213808919827406681975234270270984377285223256867315336572820328548673303536067230008634679033155339104329048615019064165024386368626873346560738290073135246899972228861136072251851611350520897156967077997517226440721476992632483413869789999952708959069500833987254298829816018445484707130431299818132286792779255231894190032568748312908167704136131391475020815235346335787467216829648917953586643909436828995456082057513323084265066645227911641737250165190103525453685497052568086200921973305040263145832920144474174237429219072385839221647309646593841200959303008925729857942132129790569352214790921093196875557028564695497010576601612559999579285854996319925398491070291378651565858936877355553114469263636150336359743346401028991432267576108468300640755602898017518921327096454765977593003211272154050094717739545507955813682020899243255732599709161224088910503022791081329060921697419276084131768903772464033738210413831154486064403755611765142089391829066254927622995593416258492196935513372529828252333022600968370653701786704178261533310384284213313276523151844949499126143996015362888317109841176552892345213418939744312696471655457418389041544121502295871289220411131990759885058712868639927654630262006131518966937344230136376574914053800645885468018421514892060468571688661949604869316945345324501572984041077363469487281105821338712448134924459996801702384917956064011916627364558518066464915425181278555526261326839231845408884499006769659068888231700339649517078534155889140716585013493741312563179031289591819553891975251518260681841459661110420574968544311682009805290023000237852192809208079319728530634808286079877556839539119564759651172594361746318408668397998879272211868829499042400074540174230781812368534503118687549004364466470695305607759568836078616047235057859051673511939566329250351667910233137972248969232455349762098519168006064221310393776310623948071382444883678738905758545972015049758424362206696517820340583966825827115674921367728684261412974908006518207373439644742940388948531037198606525935550459940144618948434426054774487461100295923946640399490511931201757176237490582553994728267858161379256884846801385163642558275238587967961668445367612994762533165694723691560346296657555311157942817726716708788487071589574797493492339698974785284553232990515721915031340471299409277368486645559423460612216809457269098559659070932578799787378791118743843561691024738267691745512216039702461476380697232395513785126539721551493757206626788820866251031557844665773800362549074019949086654513573903365279286507757314635208866760715219328968623760550933589280657783086311396549673098439035173573979940896479781521370312081959934352230189235598045720666604776434765893058855922485356608377550578150817376918327441710915787687315538672941021526757119464192264273425720803589143402897944630231274766109058072866989022330526890977812148643673829469424881853970592067668049775755089959480395166413441479024546497179990106186936687278920360382461153117197432992774319180714411513472350108918418858606193970963739973453002767745558293806399226301989406213371071040001792956561095946606106269269022016607953569775683772731378114690563692195826848028887834288138683721126414994226981788986589804897641615871750631156245664093664701129497234994367886720961667403541657527501592787656027752386759564963371871762949060035885900467238223816701205550238932954457501798082970131732122849876327649734638689572880508051622788402791364175980938833496163795736624716173602726101862693416461858646490693607937900876840851982777861106447789263687403521742807777353398820322954733878626992057813018729883947728408476893239284650014216106154674700207320271245778188751101979186838766534317073303605381670413712532096368576616019056841124388458948947846581398284850573789642565367051366445343058801381018590272329004803118218459070438233691325882425106844381670621240516050056838435060802599724425336805578074899765321265683916794553906930429167206927095628745461783191304121386376130377319147949367326789617429305569931018198812919958018392101986827517844673818397716753988632297555195361973840808071790394238947249358479916498116197115000167183004344121929176919560326643465339091051816385480246875189574359298546349011496773050468240404507687149802072032469013892462602963047561340474722571361061133685417030433566183374254225453630688738498600105154885136971558832170701021974820278342204017339690627220047445978687878362508140220725420152630692665511548722664211853403210665032542855690862438697884445740256612292091678216885545252499899867508171514295853127370510355717007978524764144407465681896417741328217121149688352574801740205841465408487682679514185534545567073175366803526045409274145040354845021260025831501376151582881848503454657620145873450086704673658678089029400408993076013383104948135258745940866177995250741777207920831639446282273434392476828301043769947416359684893895366158433293445064846394454172103880065001743685064119926631551547772697174439443777893455610410163130407268931083918509135511361504460449098426883962319514442645817190017932958096153972736725360909863321043836317247110005630062204863629872817611203500827144424235712571448127793398083271456046182736132149041952115801563230608061295845007273313889135970294754786204289070715395585265592832705565514381684046809003387064587564391161784010786942716663222116048757854302414815746539574165620270850851402581577102158300899550202425475034177346286951257998732205585142629990781313338347369334816139186309788091934795469970844355915655953860614549944789985140589571394457807110738817362791189137678167568757368458959398960436716155253804481099580814267423765518096067350178237590375705229308733873504319560298179389028482930370214414490056802950587806807040328856291010735786670302410225924025312315062871564944804424212939339754885029253277127956680557252739312692626146207536614891635929334487464106389649954820295542913512916298801461058883741910566468220019420430196116634993891578906655361215181208850078802973537439490047791530239026832853175143575842842857349584022237442748729601468024242007593075246408662106878529512613152839642764380615055912297279360986679700190336880979285039385765526805061024789303549227999832062032791159502795328187920626061867895924849964354143117386801001628385417199814572381913753744769222732023365377080199338054774927006011205198406769707949805146904676860115821209839568888569875822089535099780722663417220418743605624552069144513246742786142987862312899136278919510477049614317156858890527592758934512336630263007065053526567365865439948761769603896304683247036924531309517623250313075185803494656348583032324457348572007676625278436514864474210926851126355489172712903948708068396150143475335797360029971987245413837443427271600488203034749404291077118062471676449750051328145250820476542444883306835815591179758070396348580730104573414337550094916257362598429561636930604005359068330342687847728659385540632826516500168265329686599862065250955599263894951809868147372254186246559417174676335937952786744482277026190674168980243683213155779819957445977797966055699732483390066060479480262675423473195824700551766109850799019895519712754776792483747707742899273828947369550056122723253310242294207281637732293811380902322375419397176685487511193441590898857777225383917463159763132640211583441765579353499780104069423572052844388127244404553540691230650034641827493472385307103589811508836462253066260701484392712714015067064109847382979415646905291086614028778616092963993426735395292291716482184997949283207201380192578805651108977698714469964822166019570867175064129464616863811379334748354751794165402828840556058885507854782629749661246669257033680499179040409809338259773180443937191263452127222518418530674509789484550094070060680579067052529663990348651341873286874940113694677608687419613704810876281345393586743721306148857748794863372821258037532124785045336126257382923832140282616610156151493930483244119639827494486052429699762627462480737389327638547716879641693294967903303968653328201565716720331924898262420813429737784039055702495409743412202264531839303277992604002623708116570366990255779215404988443966562610044049410589298282192239748405887140127820204401372825051795804465079466737745427850817379346417310925935074053249530116116350522792377314519036346196995698442300368782047565325031692630942180660166773992443283345850045003290200772039525117626449245045368549883423542616411395347531587092884156164687524778979848854810992362489994219955606399293705494692149695093115765600267631481041508459178768319265620974005109861152084931073371539172601586615706186839819163012266535011027838472020678645980364575039036577819614054001262666996995342967655036989460609121562256341356923629079085847451435642892962463632409240594171463754119154655495945347562699047621534817785096205756641236904187616147295216820295447449503958216237893281692972706415514508098219101929637880839313748001593766489112798740930939850243144700091143635460840902838170335891351818305598686598710123179667337217566850899535189463007366050041704618819475376074928993069394078913546678432695583198838248152316432115692523998685634914877191331402884300179374855097621010440717066795066977623683053167339553328709412606102648545779770578046765959051990104531722139747430331106539817380950085878612298296698364646379527934450058220396582899452226051047369354468012786571766491865557329622301980894640066642094942990624032609627870515836909458109489581552308405193842475728350202258299635939127599920078511858057008794624244387158511335947240128716028705578067197163113365950400460207155191388824912907779633304157177382587939442663837853999150554458904469299901551472478457220871212867207913254080280445380616114488123719147307714572969431368111379990123716154314067917161072529172142560153907997811327145996277996248759470539956179785373883344300638379775198833763220301205835147441047113419516436988764227903837709251892794830522427044475027305750906659439622801362047228299586039399197202151079293023913988662209693905829367611246154686417954390701042704100478375381986086113147074033084237862806566371400319488478392313799905836446188998082472502048683504934828662778061956444702820390378341495926137488122751060996352406244500071035709075309409857927220233313518059607950443504921958403018781368278618566170295097279441892337562398342908852519474646332773683234558320433278095826519958483070235867579954356344209461289441341214875415960657976160262609568041697789080845973734139142931573467941945634932169569243358309998311899215245011587367810390782700623750464753893179224888613440184180492225180973791432515344565374886427959798757812635104208291758762247023133744152001986827174583897084773887833615681918257955441155332502136913566708840433617291627802935558123029992367321458235407369358201098035922405593232941531323009619866012103220304511328578780795587355379083582224911397492578043345345646934842833724527716653879086889809812074772035431453239485671007570305559205187652283895026657374028356594839784829251110167588136034160928837548643455571707797954213816214506851540040715740468062549724916799491470582231442318634179830215474626730570330746628562659402247492512755396231674922015051965982678044171913969941870033954455595919413906082493714726858832164211335192581784773702100269271145660596126070832921349821859893097592840112360687109888096600379086648585324462964901937683505894326534740053589137536713972735012251384349769739223104467559142165973828339444994829856089657745658059458935013040702939489194278926398493588672106531964492439200673683060941706419658146249926622193186946222594182688173705450354961530091813637526767780544191240621031163877226674517283986341693748897457032842065671046473367792497590912249986891103362417100815862831965287807790723541378297079036140124630967838546210430433797565118674954098760031948481020133132116723003848301482520147939981453915548212379225358352916712221446581186165204475736545328096919613282166722733148682089872283490635392291590588714861987974460430007503560662684959271010907226903676993813170844248054718627417959430909379112691944398223356795065931764950033788194703751645287415312250170374274668753428427689774586562406369150695413629219955024477474818602852419477412259456552628317632544949304626342737614491297654676271027587775911296080577713995131477082605009930226300504590063865495702019301436056769940559071276940407809322225168305465603075504078239885440271481068563562864229609201432049754594756441098792377056786656058052574035601931289090413629214972095869395077095700432668238847739054917638486829518351423586238981799388923218333922432279024146823977090377839538969372849928223149123352023478738817556496760255450740255436525187070854332862578259255712558366017329726957949721313281432721195859069610939779557942674892572589903087131483543962959868941926200790733394114982424588667739737565972722126679462296767006098059970470965058071061075539880379268304138831399497269255572141577621603496926415513657046366956954943868240989552959717696245420708670172975735819065292645531105790249193466406621361317622947193697152009188664076922932369395692526442213959824741160215913078938169453339229033654900678502381421846129532492201345002591590377934044030317350078792786954566769664370652426283563661361930178456171643973932251769086564377773978792999368935473859083513818585166254953653174686680322179799685856646291473101813047735228272605150313430974002993720126573379127055910262807188232117327213626498845446545362828681052505043550612441178040325795127670844671850896198859383339681526620778828317195995525657484199638844927965904780268089907096131436145049500893146390611368959973330260868220531536352350542049889696882740349314223355362188104989000788686338617612607691881812491472036973225370285781046304926030516189846611733146908864617487216547799244033896786651825117565942458497590856654386909064226941623556486507820949644452352866576328420080192094104540957494028300009951637148226206838833568513652880827163118377162429712897032002860584872474085484108408854942334449252937974214042185380826063462696705100555042461189078361062237458718273519598521175017931856021258338441212331343594946047517707856337389469686276660501316330313157312736651851220607242122538581808954232001136175812747724820861985793757162291028833193442995453694596067840827370888309241356025305584656213111576227785384018189571397408907893987484428669484840739262785319221628448431831416984957448371586301366210559952992875712758020414946775222423517652322991060344982209570095662493695797208077349974055769685946607111674423130776222303450354042858788605091499111874625112611992874484022016756543754770426877461293763583182285592501737123137094286893161724938876652186848727431630056781812848568617700835712173573192813987182246497663378958477832347976839456709799365194423653925736108693920331541293038797770269146155389499950781862517247262907806517439853395536346558250608950332796598152390945052763846962730931766739879237034850902587370924012974474562713586907079184231142805392919253631195397197688549564479880414612491709887514863178937796881728298427614065930542492285563581005433523437636217785857930138413553002477811902026870796269233915857090686665455329226072631573918258765385311388895732885372628418215015366659107579255503327946939682299650262592316283094214924189624107804593600827884981948575828571935805580586992824239313354028558463098245064459716767888570852884251484869372923924290040529726071635212911475342397688445654190700697031774152158226083788869022298832140726822629649423965728580458497729772665968653532571917201883438420517969559317087444181356263200000315425235946092130322082386988584757748717260559705015956667542897818957351125681948416061587816209138228013617946264979204459206867384488246941854215573768511693232838729833821484057472119747474925702940269132391259214311227902604492917125929982397573521288815206724758257770781633231027435338598876343389823843144015642181140823778081664228043329930362806746541209683213362951309968895418005547727248058412320075150815274401241505115988240774935566141540628141517078235233851676834389669795687481665158806592659581428186226179364550957719309902716355975180645514463221769225504439678622870662909013323524954681070557338299288426824255418148067123587945100086810224240884537285696627111627349949541657246302082493523325154439733905885073385174623328917506320419298690537841252995227515051668420664365787298744533059073532507500115784848890689338408019538642145080775947485379721166165430575929878891522495623084178450501594394701961759651400507713232399802786850656720270140390001260420765572295301208854158721380102965417542412257496922297610761399561093724513630105354557301010844427241769230346422786358582618402596295973079683269069767969844251401728049346345264450261479040229674428977723898959391840167515361642729897975815771614210931371093971549433232031720183012483000800942229093347258685884381080393204956193005517656503763867698437097485161585983891394553843411585226749507521621734455374114956108244088584933239251422771615550095154238326744519226479847801744122022987410086085601674565306863442796811360144086855349359939144532495597328922584710129175742904056298763842952967194834599691194353898994280406016311433711937870675039149481217569698603398343176755957993841049449455254586653694480496149093050321405112562534104304937511694822678530443664066139672948178971291253755634006742607025764346374604506010518433943112529875891701719445863642857246335811481946525075542041566033409342828360997239933725204457634351343185696220335329783468500041926866455227202304168666852595120612031453596212014909898040667654407619008968613733722392327526576815057593100184389542754198497570131935766886545206043014074860362219022693726793551701149825028285763553167853702559888174492978826984583911473720754484881493152383989113187249039727865671260810725075407949305347170766393873578834078676252222552447319356412538113253321540360311825777898000587901249568810037531314516939606513886043517962858880645326009805430825787287731974147320984457769304513593721194102457638571952515280131184811075222293059186220351697866350840756047479649380048701398201961005240890293841614399529055950468083498590570806482836033243532679419467093891634869864493501849843992944473456592622066250535436530826868070723292082711183053520126119254239455447219745707373445179334323986345038502308426596115696695910243169494773741056833904521054946511513800864427609279675109010280632075489927155686010322913489773501778376618145052746219957812397051086485969916611020015697456194263533545564330329025016307053080657277219910370354039008006030833845277632253852942662105125828814654301218574254390940717653971150131890604476020922043347797301398293030973979245783602785134795250925404526497265584058741258424515817150042213667899811149832859764423027101588199025045795540845781847206386120508247180206976189969461968815799786601148959943729561229994181169545268561880479256905687499323218619005059205141153009070266203212262388424585732845239736005956385756330588717343432056213510517132647044931390297021233283308265572318454136373727215988563130194107198792464766292984145973547458079215137032099055921998243451128916077448897787706915343626031235629489820167581990095036964018165506941126736822460994432293852359965850390796029165317813611011673799471960749672545627765834885714662101587406726143933594231079809618026724027015241108258190829913003383259793511111405772517063346527164373719824359803641382437111152284636832774348734730393221167891094828091487732031587032296927314989161068684882316715270550300771614091541857363254993620039359915150574643215198980024045329916450387000221150223011316550058124066530894189498413247733517110807282399517613713524080069936278433148495996219731135593497033823557537515389275246385729212139800927112129789710151838699901396646382411385881943451050551214455494940115880297302566565579176152580853679886280756312799349840736106423034438868501770841955371938985200425805482083301310167228518465775526418264857879876428910914581863397234961258342149701868498656876680689595328177561984152683402732041365660284153578343949403295670059222019916769079623038740146026292607632999436465162506122580929097331344072730817407744122617293214924741970083425326715063017963908262416026478410136839902149928261106830895715054394786356504795329597902023867512957630328975110335875621943941666089740535801450528190457820165899306597967634139832692690657489175901798939415693849893487817573351823271981398024556947026929035993407398026061042848716357672716412126345204242237543459485841685144926164135158237081856356476715055038100253252820962562634143775829710014491394875439820448084015337540188412168723909763125710055389402016962368569103413561098475395733687162487113525251306782663215858619539963076743132424181755927298964363140707282264439520448389184404375307889145702294962145315657172544111013952706248836142277127219878202479474006792454952752216400107141613119752122504654783618849640199760445549536084466793945905799161104426490684491916578547241632846664100414364076595763289553397221888145794431209534935920882283450629483988664156820992404521303337114490556508806976375914719495160814620265703351916201421640347798591038988923625749510574618494924789716423305302940236140345581800838448174603107235086467487136748792614567446386484931615931737779672726503707922412632460302676343779787778228910856138838108908712078125468786709253206790575203122530563070953785007406134772681638249476878082582062330202794619919815785155434874900206997465003413876069044736817070131480986570119913267756896700710910928493704819590767994206447737704076685915775675776404626349824663874115306000414653222200034245748451562478978909070106246706038353502922931611274835355580314057243171640443231502833675640590025584375850669227828567923979785424277204260144535322475310195426309112135528954631328985561411330055942052637616906508971457343270625653821643007233721551138122023609544132060794049424036133032788646546955673551220990283477921068966516063923492082023896748488804170834183895180824581673255788492653195319536417145536656804163532597756093117114845190773971454591567438592975076625996329196004912391075204256737300388709223154272597764008958063368455906140056688908132454019763220661685730765587008587707012699292873154132606843714094705363537292887426083373447458864193974605390878838410757494600971309775568894196232221516103619118669347339097207118482156380516140393240843265909474257070396254953598759896804211085543764903406216737743617188437896641022088944361251094792693024951347420977949418154301385124300658879110153954025125127900880027670100416207200499436175779193230553987618161586754019115532729448613395558238657723983512549865153544778769080801330507438023987941939545565204612254509533815562230465039050736960311238482817735733524419502863797006616273526555362142505162651294643727344121612861067566600462130369218041137044480391268639748025167521665850283788952369307013714192499421525585870511762602750787512014928214800145015377317106016770878237819967064662852756441238045483747283913441588417231875639448296562428323298932697299769021325336965881174150849524514909706247140639250423206631097957380366975444150713865375151168805488451355140852748100993886241883561853502345711612807067852135596718029003788494808284541872638499152001184602785880417417389089332311754929856462300814919902294181875692406353658615435111182114455752230318867040117351964568735123529427718982663378752901952639876949599319557295123525796080313145295111353087394698526281042052601237180087011476457472433457056867280035662051283610550177384878055034189873494796903161330483716630114529344875740575294189978257686574592228792001486782574700460990665111328369034992274486468218443766457633391528633156709721267961756199299818914207633753307060473551993882133429860961777041434244522828830276875899807451363104186184607515288409198555774035295758094577729405641740522968119802654232647381340223906929556030105180234534197919943295703517117858967282198792173492122066418379297395740959177462325359976961684437377883485740832881966637823771908874218161196885280021455903812998910729292394373667834269936381096046065930524365362930749199919269080224067386544461319827973280081110723471434095975924926842962315330986242555598906652814707615294063937141443094763993130507229931229231483766647813752264435682445223057845359733798950584218571130331444731352856920572230322712771511638998086899760537453850001768732878400913456154682960838573985572289469523888960152382464883247419256831787767355078811573612356670727663142029974807363827430217121967756362122235668126962061803154997534496674461349398635413899930408062397540693542156526779299826896651817877669911804180095930786380585895336890054641312413071300970203670420219750438765684482138911333131506024741141917451554901743177590233827099273209120799332896991098124031851353147276982267834950136692030809055964948909885097405865398965622574682798865946991044991801758444283316965528808284285260496072822668913434576354491838922594130852453536709132473068531162689140397185760605868069320868392099033888711296213524334591030384856507327086350651953208644555426946098255134515346465301362553476158681694366807181232142196008941859414747036937226386789652252312433785107644174433985945181040191458377836063280704874966667811828181651549257403947652088545291246619183898136605624695683370585025521883110232176848693612752670633432489781324747657801319622959852896254972116702999948389994883412586245051529402689379608353932496668319851257449592202208196317376181318804924520613320757517813784952084674788199568084589535277177995223532745757755986654792438183079782827290284226911010701961939779944521687456322833429503913385499138208569616281874200708421627377110451378233622915276757436974361236565419456256912025022639706198349170267594865984827340522512026821841767531096537059656037635496788135750675495066950524594223785117545721594080853872780799145273059082879620226289209391671847023684233660839494384009090238824990159006783991238920797880319447477250629053450698862038283179733538540890335280286841590514421931712881428459440958732883841266694955175142642614718947239647315127439261602944205305380260457459899356335064637318044812446142173210791514867173901386558684453692707691922202451004413684217750374244490414046703050480700431569044249371888827714503393311587414938171676230359984118448251269938342690341491742735780312952732453448898654641235712489489964101008580670951722550270923433869995120617567580112090818515238929449632259584758199743361867140444322583755955995163670662529105798464465992945789229160091596163820600664549325178374783796982827203736558508626647275316664226104200882941336510325153253220893171495743510619288564935213552710158895612614723855964896283766902947840930537379834361230974443554771486726432092604198555053851750905779915973995163732174897120093121411833726693345031483825767769845176215063899776572808677152895745370990686538010380608986760658903852292656598758034557526589742545955058573642162530272682944226127601949109237437309664837618887615590906382797918862011991036828385820327561128735888576176099630173989242799403826030343920546785012287383852560183673212576127060481250847845961135623077574363231293663340658257929700390429209055718623850320710538549034296847706423275225385200880544182843713277524085311890446454532521323586704362821826933507065673302005417061927108296916251658292075826739770241807971745840958262516983255884374148479039690555809993192518853073765085253515362076355020392229970036454910425848176991905552221592545516913399991172643047570659996997819425186290894310514808590581603265616214583403109260241445115757850509986964873901360194773562630563906297383787665995640229014585220686481743570808858119817633295488055937530379081336943557001924895487860922867895922521435117490924942804907230063742345793177981230776738289087069192799691310901965975278016355052141210615030204847216223194456268180401015749997418241490582293560491104249065948134234784432375916102762794117666355178936698156201826009780481091653912433633306402775480680895731541844229080389977921837446655658622386111520413576147451784393009506210729871764505389100948766632129598006686922086550242276237555736192844606894162926331012142694358659687302812182358445501540340908376486415343826291075846776829314920630188048025413280689665887415747397477016057286821711926459064923336862781578605851794345187696871975838848138720153095595632516794880741463440417985656058123070430652882483971435605459305234033097721350410236934402331537998953643080776144039995307837694058532613219824100858768551541802681460575696999702469270436274410744277047311466733606356300994438630782412413223469210359624843686145255096874828514344844672447221077099715777154652969534168818207938568628512549289902024681951437761428877264190209192410706839160851685231478556477877195459261821694209112576967675827978119699605019338945878972820062838984279437488382063478842987187991315507934175428403948518915663850189751894479268505930031779527131887374806532729462265934369816513875068636450049983578636271949167568370889697323378253343546634546978104990511827188894443141578045317716969198371350634857148304463218612325691034377219546960447297064994930705199417276308169204341495370542331314349536533497789477028250899504583274800039318910955015802584387585417585319920969628437593022288360985249290436066209731377313400753725311926397556877138073517015376342377566996535433328430808124428207113475930048357637093078117351953719522896181342749924359894915040957034295532468572037005464607858332310502756824938299204539955967307190909882598354253690454039326608702256518485228556454445786491257374415022595047246819375846562414611929597939722664967901753994004906360586423511105989139104235522472063627296574094850740945558784159239749696619818520863209491764453118418417791690429915696159787790761357750568298440285203086107435240443380391474245192867016175726828296496370492836717773357671230652649246340866852568974301874125995099218299270517385583889164691983037505458101319369733432372802786139159935823668078571167951950168804607821979911523108566807806639391212875135824977787589625401547899878802235423136334980344282268978287947436544591204217358286612506625640381402127901876312890657237983568791043141618060952806652556117099112343294118753389112852957931947061865432099808388124212921909538393745775907902431295581830581163046829849747481200840587764964791769464523387003653378335817772279763699087139173229015051031603754784862830119534476789926328461616379619819442668118139435655120114901192941946482449758931834319747851898435888351813750591715466696139171245625014163480318953536860811540285455402559828115279520979275870382914602698073607890592077451881843522442747050063554372421767969976583652897810595848925218551988924872449809585394826929019213579678860169083882651338206726515977162787527849359413168601921622712522412638830095639740396772478972051656277692920769324817144994070904415100345138770439982515459878238766705298224870481912842466584740855858094775554118220689572923679521658089970436386933941510439763251311199596432277407919937572968265399622901767706240571476358520833702218842431547986007588138699789903035497791435286233727500527054129579906295513109584230116430353011926812664419627638100170031404622528277061373959134404768372155038722239413945948231302735894677486492430374601343399423790982285461497343821182286936168830524072828457673745988347011125407835586347663330976144339269908366895532831911138141059568424543109645708553793381957152491188633001476976071667166810041291971499554119548184502033219016405214238434635854243265810252431664392674321452915851730075575331068246760599798146254595712529019945781096511189138518278858775194513094010149893894162972197837494417482670670847056455380233697258114793179570114163793963320439324606712285778193233097950666022223634801571895330402842862352393557291123483854850093042452381436778117520400917680753023681635168632949114029253372934563669273888330441745054507820003265423388721870060862821732340649986296745846716471376502041643176726848939356915424867656985080616445351988129982032175857356858067643964440744018975914568526099171201141866422949823122084170824745880397947764511944764766649323067446818276113332997998513673446259601734110081580222904741863960824499641275241337626070562839976711906048022052875521234569068930844749943060910380814591214154657258773281171929222242330052102810851928067105466921318152419855146705871691869684467972772551008996706575534015478918937218470733823155831431790585459883571292251125001342341397906238583699799114658228791956475256463192459790988126439541457496133917480796019720367260795765428780703955179037706502474479084023512790616606219758953517994138011894160864576369171174491189877835697580926479042229730319398948002720199985398619070930460838870247561242542571242770468580961322891087347490024615642474890523954577786431847237596777497299029681573401821162303332913371612504579123155878251234187005809673431047659748499338841819806433949062843510372094837155657758324818947057210966172712432894737406325600966099429692298730964936982472597559558524563551734727524985598384211138858701957803088587539808741631773628247627604720672122768446010839768124410088313756693054232580419415040470360904734341238119731360250937965939359747432557428662092661149860846660317587110076601296876538570488297563269466980845260297930263188486842025149488643719932845708258302980981188019449448140964270852731161669463972096170374697119487647690094383385672235600907988950029857276344601912637378581997014740244089868947771708413807078166208387380031923909126936102758167314341600411107753973894594640216207911734115278134939658103109496229107334147077909098481680508733066594502258029599906711699511167702429594865233020472198776392510325362244133403860364797806231007704439166189146044182162794121649096463352721230219041941247722900302113720097838218435676985642780029942021390058208387191245540084547129210567938872239174155065411409181249774071345911928489068529070548344126426521221491233470183055276634967534621409535519160933155203215258970479390132342713792884593640105352116195976394936259362225738748622846649785747942705820592851043339405590030310246388841668781320563521754315648062532660345699929993686761779408244197870333935322156816251038883794332197745982499496792176740766483308397359865695595438500424244607890184104183775043618270401561821689199064567465162000161377229396575285425921694094601775572301194491074025637569409514650558659180465781148062383778814316301420456935514630452916218060302939732781086574845469977996747993928148786652861953808860951470545766500815410262453743389624566233550314013304063322861831024191277893672630025566458350626088030763661935704996288290887975188662476311322396775246469881813301081839433540989338346290221039993001729586893402608297569840488384130534857726128045649249374119177588976462713182928437290710750653225338107124146764849806654062320717036218427479458618454549792065080144588882953427063352268405115965696658276824062923035223020008049816844005967543414963106015064763152717435041290931848340910565707824272979345784652063084374222601481646475029966223780293814507607196649269220817443024596662569786212878111965060259319888702570115724035435332840316682368837430749035807750338734367229036607908864392552858223618932158522522369361135126034332627143424316833909089994358595156015983335447989597087090391961357924931907779345776768826364071848056061252002171636938626991333690100915400506783814065648773152275486704256279928754665479727667137895394431022396492329632132454578366500426703219978874708454573789853800669894468573597893950379126753617751307733718803668420084564635260696051134624634112869268290666268440546786308941426013446775571385767598498232874941381174216091179201811441857018866436132699899500364068569816200215889717105500794518114439401863772473892415435253220917090712418429983812462020085888189038290343836603211637309224644650493723960505876924034548867488353924318956352249756550213665948073187433535068076562694324995956636216695392625203925457641919726973172291191373445255362513656952104981669562883649780142756913743882519967805743312398324393166665679777104438088893430568643670429457998587424163630352062885427841864738993341755248400351727387696832965161643879710457823138428238920716339924826523357556272393681171104315961702038683919945366986841488027568460068127584163822355034641346546820630203279972796760039491971996837627588926112477521973250436622149286571363846635226797293024677060248469402130608294329754262825655707242317589671333280402632444219760937966425250743181476385781855619556249979772463351693204112967656337737525542388721537991713369363448880448681399416827952485475615098380321144233471541431173331651109368757541944206910905463892624252088973518359780896853084921999314448262885057315962993603044184667095972840010131926640983451132049303522123680189478835404331772076707255267130579439133972652020871147715837519225153804560114751471670388209453741995395215422170857489635092018960895641900851062045671672352256598903480009098957579931434559775757273382760451290888057748609483201744019160427751264093652973819348740681754238797985392246763117943630482903928860496008970550379188096089105225991863574734971813537338810664208029053265663903800243279438888099158291648918646006423863196893451237354813514695046574662695616433078948157489444350755711536043609346918914416481401409434903502299156672936186451466607642465997361995164076905354678250576196833025855030010852169758239016028833935927593443041584209502944604971077026257794347012059187621798533043165884889444151176639683245524810427739160638197852995010086755403799768115166679616858904410710566645666204176942332812920023530057959811334966293202701984046035580577584325006468115860489318981102470615836424989262703874299477610886162846667360296131867870465335747231850924975143897334324520607800347143986759859885294713387646810271436016882409036187796375076182323955765600059386430599600686061050510721520500455700525240753353389101079787650159920714576973182656798068144664169657040559990108550131893916890548587383016846899568221339397277395785198254705044923002286242556095602428614879471093998333683593008839623441946974108377016982145549837479508291237073189354853594482646552071745098324329524720550570048589046966156027147591809775750023037019546580858408806352909452231292279054264333273589773763767177037281077780166824444565243000359211123510492280074198914080854102917325710428354068645066360846926540946845970941182832488349274473643019196046393897128024203137804222709108016758512693100159229844842743398418272379403531245346517819834829362335232737502637935726906718492253363135710340309699609978115395214721951388002197911312533037925826529532166355592551773712012814591200866723673805875158902602543764174514465516431451678078872600909667275116444768566042545204184961820702926113963594840473147670558422960254456831772403185496754384699713336056504876471068283959380660607833208432510399884340738952490394452092309031394806147842754889504554369034475605211434889647073211012334058970185886979041688416343835852394767392721638913396055228252336135196402625719402084021466565164719748862535766038750008240529136137787464117151850186074591644520411204640224967210898763955768533735727668999693645807722525028131842436376977351510449893432736553847574883308436501296905172277117956942465520179948368555890290296899660083843183272728045896453090583131334324350884207251958718003867574155951250346159004660421715481271055409936858243653287376769343682682139899988543060219883432285939660890500806082440355303821067562845524881479361394241800398162706263705131966443700668554611207057714123651717351321664150910347466726180423324423676467435164587438695714097281532616598354016783718811464163633266142849822692601987662616524746760673859940103421697065327564397459990893826774333880566910001975349134451442407041486107616468877064066154499486371382856421795209621135362204899441226686164726951810976015764733969470267823122989210371311702435545791483506128678905342406946246624779954327103561534986850107648000570329888970148359339111151927186367894626978485284405102608322314264315715829158713454160163240093018521981351419034918944025678276041151886215212408203508233942323408891021484757456084795605276462293093089454755241900446859957477239610888964991945313751226469826007751145289435298137560104476982199096003471800117695210255234418120966552472686940564560834425733549441442806326862070339189666662274014125855280385997698147911440928329928546768637916416195850844265183572518402792776841407629268584661456984193588539859224606806243233389416214318839822879056436529953459059790489254954922939881238112286607715885571664287579932098900863894481390482378956218224374052533728817390220356556699454003894234697858934336136791782392360264664966433029258512376361229438444430729503759800073245844698615394429102699690995185660073120091290907858609746065015197276032305264196623353560943831502745433221183872165273053122894325447831544156537313495651629345921513654224083623900441880281905791943695493949820915647571659442250943391574900184588014537331378800374411612076452709607979160297501069547203084424914585756298900646179630224481609013470218729679536935205593604107158577364133339436460543755039089049003856644341640111395609450059084947837182655214220628942593306916779022686025580774098075079254242281270278608592532118197069481255835506216887978911884328591764654583481571267845761098265042168219811057229592485370031134276852255598360226988765976400537077502196435193426508787675653249436356291226683218205649259611853046204831239111585442109749681825784802052689539151234585570995284045136838862361757063398287967417682639944433133310575463280127228995639343182107794356468103965460638390830298049709026192417237686138023952275282307673705048106008842755064734942196610160405855609394283869381390704883101858770553961526299205868605705294848185567654134610606354974031438618832092802920562708914512612630881970042657158201629188444127761760091338119010558017480764128679767961671542337553597592650932791217120972279036943972815969408940774343282554800296219704451761582564514008810117291631321722407396588568153553993954895499392065178544339244134359138025249566778262016233984550681259063179317019082195777990865286263108036836631203002159656136013653783818091284940194542840722081760521487194305259876466713689057995017866868532438339065814647817731492996183665345880629774313598861674956020964369369032174776368411593324554239694390491137735030858123461252837391223593518432342803874709334321713750150386082344986684464593952236805964855061285584998673128448828411587796769171541224446314420101195445298239889009160348336490635213792797044195087509029324121148372255289529394670364493893530351801612304288560055513344280937562765397995699945335735900450344528787418622236617156115138026867924059638040587192965321669083404949828984947772443503838005164830748616187180971612455153332803002872284036847552954356271255073437599357570964388465667106100073676095344991976650698533483429944590819184177769839363317084030449545593764008891422241004673748521409668635801525581934773218822652595544352569680584909794583827786225052889547326699814463379053405180201377278788088769806134696834135357451061707595816874016750949771049371570768466376614713714659429591236576480474641199445176139881464781091675462318160059910435925424870592738445968984356746314123506152526974397662706361482529773364193745444809881358551653379778916264393038606858046947334636701318623853830101048719109143776954364603469182986704736820547806244744519989807045590142738524454862132351734601907741005577838187550502550436742446164666187619686441983007622285382319611750976531871205735165030523781466754528273760387256085557824285534643175406060684142599942863196019558268690831383994472894075829188862131085488344803850751582927011422554746954571305039950881674830700750381655074185689674587821479036591791305897050326378348698767195549548756080179271509415945315594665468180149482053795428447434501015747305676002300660324073391833071291662571837139270346193939616212468975951696564470575434762104820600934521591269330556917331993066959788447684350552670873552019107248262050172263555365065752871984496218681467462600727973481703157715745587668404544275071507188463488993363355418454761666623724777175010375940141570575361745934582368256379449311268526604675357405859278938885435127372574822759080772470291016519556551521574151210868596999668262038804802264684614777316378147770142225006439568510129403949967437243052171543562106375755048830305249964332583038387062069380640619127134635516780984786228664219729205221833527281684808555759550590846482102001113906351918031251115845613519825129593541869569707684849711463300963909470433682453612812162622281603482572791065368932485466117793367024379773825646889784153504542319468002630505025815103848423402388967536862331328760614870878441247262255552574991052522588129119174879151680357829962143642960764107961707998982991042082640468131917795344942794466201275553893947874897734144425181790223294994655090248531463526205224031859450217433647063941397880260165459994869196772672292955466424035835148125638643479204491509779573907969131783574167803688098347123365136349155502603387508662160870648970716513641534555033613052498711231081662370964665377089237031507534225934361937391352673227568076995270753096347294923031914426295172321458282817721556460276139011589208381923310464231417587840954948421606130898409174281184344788875828622682500400806784397855680659483830551679263167287876986878524250906196623868786892731116222354147649917951379732443015839223571630874315249342266507312068392529568207197611925533226044253776619375801240214148855511739347887213751074717429822305159510918526027896996179801509935486423131314529095096072080952439780048127965116319315823704628577831382996174319348641717568718280385571520820568478062591025418227360572134448966817362509047080529054784652135345169513028727077687832960341186761394408826399579947039283395098833675629250954581757972837226595639584264794216801218807031521830686333713627244457789624885322041144430595537248511040290810471558040337189158502175002935964793270549626960265465314798596874657671553852395254403596955619691802029241887038197795718433106225136505253442956229270249673138789485269739386553513647016887052000488632566579545585593300496536480649137007437496135955939838086928971554526565038378734422589961761798656371891775246604119018963068072754925487120057619043996606746025046141040717980070136033474638010071819542701260111118785004541895593968070116903272301428914390737197447420059027944515538530253288687202583040493399659379925163022166343213982718415156375820309248946220305540338379974700919521824276639343082086660824777830693618992198468307355880389759446624555049999151974113002302785960102946810844595378372869093373393695326081398417423764273114141075541204482588123106472090157270194914530359480358669823527071295778984521244437237793682568289310761531648551658941479090058464645638464631476158624997266492733590194195663406984884004536762853094284003477767049230112719053385503293236825269204030238462354067866416386815154402046905962209295488581834105180064300586445233048062470221755034589420347973011001879765885340669821171285076394586036848750390707020911570477448294216592258378255900093973258196012638557439062733900763203168042858417700206140146429807884965001584520340668504346546819212576596587205281321802252082024021965679146288759238297541671098557109650492749241168439438341166492929738966825276203521250578013106003667056589667057329316282628476290661522041610802656404304303019653781200716973752314382551770523581599811050634413383189241899920448236139283354766516967976949133499156299803194919408869218885024837360847611075577979016231830966641623683366732349898196888424654780259269989265072612681527825224506501295156315676740098908436814948974693810763873851696132369179816001787113048293867173470292026135355077504511003870518519032140500997571453920200471295467329152470260941190399042392202929253321004295120902499682902578161128872371149947056354223178202944534406460597602167552581382817752013376819215119567609535547528309792386510321060474139592413284585193333662161308024036077979137178504984435396124997396345447619415499529835621128162681545153680340094730577972687602515943573818006324111404148372408714300189871718003083500167120562140616196590226729218897035859199421652770838265040899481477575723609010013910919448547477667404685513935681743021583369059655406562876351454351399245930265560683330965622211190904862269802922335213654462822385453534975736237917157841920180748615375718692170165942887011745955156295193056073708574375277074501874405155953450447344726579423218435263349705968579373521935776509833529883502914983742944996383350855031295757913334282091259315115649835105045055752100325257894495734042650028454986513577079499263076836360055009017459207218403696631619206391971081626445688614580423791958724291187373433946783227863271950667262624700010758708391102197119557345836906182273053411796772731497599772140285617893475308450084878100242778498262745556609687551844261623816297389983989393820012688879231095292945637307720828110758587704264010320295735208093173405489313349122456954634300686861168373990360888726192645848283551815359899911314822282558173166137906151391424593161458082235785060549587503773885296532852917106166933639504520007245349385418252404830380999617307373628822420383857593911997765943091487571672931714849757047883339382987634407412674033473980934408745520616232607520960499891984531379660168995366589065698270179375555833451613185750082461998210323115795193259856648916117715264655358908874312675253233972212844776700233374939065223682850498709315245446202208335085679714095266585227948364158381592611540968688458277506200032960385367547154400438166955394151772059318806323069769394119846776343165744727152285259948166684000539369995855915559684317393695463036686723511842438558445599783479793625575313242366737141514465311016407523906719788241150066082685667199820646106729097689992538645646833658275393188987243266203458288086237802102781912546794175407314780249634704515341622721214512400815180548041343542968178154233250649022347612646134051394355444316573496528729258751951983604661861680769634042192999732136830914758684915721410347331059347325773218512947545853280055011428890200598343954649181918013315344542995079757670693319797048060559225228055635059753345594429915380362228162712780362124351977554681935405923982829457095032902731131320163377828868360944128522911565665254765289468811507591281380252232399653444131001708610604529688804766815988604111620706728238952683985510147197397507702871684266685060510864947999001956582858569741943445582287355636116033412720909616969501975079980354479839511708126638901219022443650976380078044171664717068112323424542365241607828094943220582448572642615833566564328307107718718033176379055818591067539840232570460511059433905517482728243093778377312108527504377281613312605748721987184179327525498639166290920165979140434284551074219402403207461935605256353194976466575001300664269894751545629905069104453442403311988998410849443238959533754625340229237972772788303015019478485968702711002938961971837724922471127670472947136544792627373186610981617118565502659791879252683494910697631567398663965879406130404750322027060449251621641708529167261367320657650591851109683945290591708751505853498402119798226796673772892783633803377565986436875893477477473063021805713869047670981391241414908697382874961675637524703405651370024227618168082790932153978830264325136843266159035529959928883633596417395477008909150735688209198228188017624527383339022124321706910075293263111060250535378277598700857388558491437229748607097210401875335726529273034801539190628456244770412473735135380667408090676316270378414843106989506864416636590784777950972399059599267310416243664970322069460948923055933654887081427577246550646834914754121284757398292577919939094782071019111097383358481233162192881123931881804820025430787662792342063354323373973701836838713672741379744567268630644816987509002542273833301934206378968316000614425420485298745905762391433039240924635154491543186199201976870924124863341889932561019444678386461951616625633383463547895441519748223822977088990935141291547832159424011010161398920356020603698635077700014890556133975002157851373049963995009768212913536529427438507031337302856436507362771692347693739162787298428912319885588276382310103997317458735473262407323527312842751840031624283684342376262392004164880884676169157531748532906993926740847962451426872190117394895083174595014056967427394166056963287599927595129804696868929117680660548121610619405763634305354701656766770756471442116052039001668948165252810078173559409202356843385538148181653103068174136466555056241677616480059169022647705901898635714887752238775872278467040435917677470848907713529666324790484937337432478926941871754928459311736071850056850631445122902480586381180214076951628216545823426684510009113187210752891062188322334391508490422263543300315303670243811940012985446661846283899186039263082009611616561061499967052295237255351359748488090656254643858229945015913043701484203563098452741373864001382766616086099112047874467468254148184560381180291952801263495659490102747609273038029276965908407779847258645156244873251682983006746890011305123080997077831376387973506327749375244995050482581313264179121789742191259101904901651397042506451029468380683645714024340939477112890672139373704164056238123768193717718570435929834623988857753760335193122045488527923008779539115928512646499736899611586443370377910243004606640943801347772163312581412914033251850629079204894052693383509250073144393357888791498318318913488767975446600935050608176948579469776554946873848813978556958690688815496965307294008623251326362097324607605070324157133440368395435186854334847367236615361687041500932423979607195161101095808779904678122961599361815125358859713878179123476276055289486248962775083710207496577286012677557774833809706970110685851385198992017708495071424499692224835293733813323050232431538196274677939803821732587951910612093682887927401825702538909018707417866199857772147709631024571100198670710472165563934042352365039592881849099100826985828374035914512325017321063131224432274685061483531519729973765718012142289808352839568893308673117299433008986445993300254489470406301047619476679909618957737272305670042173717735101892982308052709606985781222781732728799702428612675726561419798539928299215359863307627195939945177630976251873409237609943690842917873902269423156304166920774181910665896589020190532605087975970028259433703694825734938602819033229810268148689398256554773614273505046925528641710718957600743366632096803354417350729501422989457795792231033515985965026470866628219607082283513587893610385179558990181766126907521821635276054778312247643681191848391607723138347718839529793814534848974079113954971398721517163034420062206127237592044200707185142021115934093704911568302448697319824902021008610228174201272591142975508188149567125511943294451119056870902962064261949994457036774771944899453189187984259043361333617139424944130616745166831729905690321506220792486746217365042284329969263215950084023455531119468399610776862841190389155015307899006032723848116263968105688576333116873304510375813559356194003282727602059636952737780290751809745236778060838891156713050085311095959331916390493014377834453044794658559627862834068480175726966768050428011637392816332399841895250518321970613173785916833478562362825168553896939618994386411640718503945351784167758832338616242297018311051075917224136094910892385812033277394916511377750622942414621661939242872818057820253782808913125014918327595159254903868126288494590421515570434998471943971697868505413102514038394722886516224710692889601911723810622089039854212093842863359201979234543283509957059888145248721924782940247497114895701917052100374224067069301066119723013269146867358089476962246221237921308239050283051802768290752882829825712075710821346152756409749625758451558014851628955365497075698928969148050495607933339550157475562453647408655842463609098537201667194362289192418322841378827594247256334219586666612218781027942344860503850482751297280161291306229420587388809667795267176945738110172981018660556226064652829039026366767108583803341667611164963085888519983321692699883963839185889181101730696913414539718407433907375999443219574666755930921237197303950663326238471295356984834349835689161638961156742893335028659929814969604986838892593856406162531162213985004580213802797771995438079441764821219362652502014427826684566909961739507204115116061068449941226182762745669347470494997087767449619427929181827658669358794112363565627817253900614555328538731789650139400947634002020018317527573990875305588630714300620166682328149307890538340223019585022051324656481483146613564708424577816490234933078753290692059339502629616152424775862206851462577819167750417696174525531142440697934679702716379984081165642794508250064171935748178117485346118026144881721433100387219348396063341596658768037469548906294570181516399347159138564293153568811194944444581736706788663343417197048057377688804934158580205564261770286200842581876211752441176323657249258234451842350216128622559436183460640807017006319885516231236379607826521561345922485563412347700248195076843257838552837280323813170265912520851479321068475152826287002738401676700079021112680425081301361378069883783518910128211792658047136403968748962190271112608418396347408360885311847297184505345172672519544370784547691210713237164457244616738283105460108738782642933753434213232773105673752419796658063863744926357360020982190320000444040207473134033914891950579958067560727096738202420313394123516523003772603618920614256563916150218730666032622052758072574542358805749092763826410982639747308938409970280181963831360172579484194239997724412162533738439980483362907697682563848211467719192261452386465412975671152604732029189323673978859649479845496217011838524873208616990480138584875903724773991923431019181068830085414468910114695366598450490602158091519711242085203641867033259118154281841349114228489663271395645151603509123040055639723012004295641050337278558130806241271315326411093106151478187549851089720864239357425268027544973799569384085243491090547108232697027675295673075312281717884959571881113449718319092122812191318047971374189702187677091603885635391473152349147792739338987772248021511083515345419795225844523683809061864866281005142582603942816229594573986364903147373313729044711428824569237607801128741760709347933624133384776423470849281325258914199270688966499730662755070933243582335156455235699013288351001793044823261373972759789527713664847684011715456261425275664775793845012956448356302169377612513249663624841734387695312772570565887195543857484647619661284746232251503773017330411976407652666093024917028755643471284915366500577419208969425376323762948037186213619254549648809413619511270015314421110405160426955126443844475776436757701260940815240483022566103002023761659871600455770164517558615984828648521606743714730594808583603452594140607001995858280811537881862802205678624064819306400281571754954968061778567226882960532513688113973893918163316992212971980857986751906979809824226814815628721446424695499324359770377247968690082654752859889906306624750429411431699487993258806147873940461767970178465385908206981674387095165442455744625969120271484237541174159091184999609477991083677582143897402125918574562248041327532468624179538795900577017799069686071414160585830273008997407252230748420840035605561782979981444164103590334687417003522949002489474297307279808957643283428888637980469563384177096531781865406470063961584604837842547869195717226100409996415623394798895232593014045254023131889419385505628251093407691317643835952550068539595426560786016412899915349794828200054511984195219343595728420219063353149641617071810411884194801714473299071441934849444046087748089850862769559627543225959789897000827116869927194554102874048473114713575321497088992334028465090425600373072610113856645710378927518062605265381456790750194645258874331473163654885713961164810860332211582234276275908335755633404725012523973195835255553977088824273531029326510425684233812649172219540340758025246087525881054029868152661718343772162788842530520750884667428002254445196687292101822284679947069005060533077922040666649580020967416465682763846839935257790923631468339030268518893067817367129728798695446260946280513832129167743062157042347611178846499745646618170125714041537065043643769089513803813652708245724451994492219140112333332141852395517841265333508270716474524795770729862800982912831637133334655433251819652656648357101921860502681759036984383212285401706076043699578262013479408657572346575553901301347783243682609001929881165678379689696413263070075494386876881783134510158519533991559131984302747957739432246898253491488574056313787411067068480726077542029879744240121142736105515182134638514969172639666163926800707481685460452073525931948828891814357577186766045018984222935312331669746364865489562337633650268321932792027419897945881465063002553045194059014588238880876355154209115513650305401126661769312879174885852498197434707056975394312555321825566047156190136087406417621609192080913093377586250080296528668510853102936896587377437663287853372528226165753839222507881142368625594824116197867929160929145886558182537929305145408068186794430730654762210725201063626940034385047918572642027716192366258395462035136305470726949488452456558378773303248964171328406298596033402386530817194284896126277580756459111953034098585453548549169236389614485731333585086951782307598651817436200193266482734484552036543392643612702563797943453798062962147685445418602587937849496581397660164695250847380807798897627830061564242578484485629654116341881588080088754866837464785988595780329113325825177060160703100958298406538756263027134523082256238904368350203416451401910639055880497698356989111583325385033100158890605903047373504381689008412365723002886741033151373302837012299726265703826231504388455909501275165946119998713650591774354948949418778621213336862256642158098320828959195760346930367585174580897738541892020754253886631609793846723637408625328785946474218555606631373159456874047622890811971625899302872746837455938121317546474531349390396816855723633682725795000365867290381085965334010681799221798124805278667809905950983371633756395405071355165631810743891218184658431510470798827357013112846529828898542069250826942746811213887817699670712800773098942711914843582925548912488906637996904032436010706342723910176303119179517641418400387887766173386429097063858003188958009869477711762465678838349252528159782970414222271779615022095091054953627094341605559960611524031323017921630782022255453944776627958323415713684434316553067675205021527220489401370501576569522307949072125976944932780594915497150772344786015891596963454614958201618370752630261358995271159198290138086526022244294120679462150561422985683351298556870753607558216928486649098987436769482402020726430039041474770395703413944745057506941948301235584819401886940978453013090129647116541389053498382775350888134568180294101808591260129111497052420003068444715213913860385498495840512155775092889045125896953845156638021171833274318500211113634680638119301808752859165933609528759449576467085639876167812169962108534601389431322422162671774661409938952925560511380564120593696297211955126333792524011193990713348672839315300861044149066904027499865980319556164465499195295408736939749888932715567775113749073135030886753921655106566472502786283586694070131905285377421928533360924417780819179101926846807473075800085322008852264048803563848326747611169189358404880556065571844342084345216425515365620899728216668230366951204808280705249832824557351378590296453056223790546669661085422056320335428472161432784068054029449400432226937636600037605879624881137819895666075994252478569225905430573003038171804458488606677109692898692008703890855904323831996208043609853301808518437748838728749533610543376138238141060402498940952307392041084036021316854665853283702295121270618570782475938212115393451750278419448520081399062588130788206616735086774698877987172654983303029291381838698872988020686772352919825783517928027796819434438769342143083419956183687654993741009733447636982451576593297518026688034488105553356563105494093424174895943664713003794339385671036200841220648853824449406302241698153589253717289046912483267397848967941020259294233484165911919432410780726470236987243641518480968242093258854956661693231705994770287101611574297661240132716158217863597595077180888136921411599983766334927484452625598494717871019455080261556624145224082639457676394736891330224605084571287832619211533210857383592725396216129822025116555043998903934965512322776375077583365192704957808812285844691851737598500809908401022088392571106161863148483378543313285946411000946300569318089080151953604575586108312248497579139987986579066666872600725848843796540799144114064944704226173807373196058657299183685971523844807256928351959083597504092995058922907040766583306234048182284332986774305244732423645710088815148322856360544961145579315102633379771097894437451959988707411346518379033938452257575608029535762900464569593511111650318220124174836323549151773429373835093350960131336904097897862252411391453819206510214039341683006639148616644968597022414416111714096079655991296544592879913969241684001600388213009701519230485144916741128796434936401088643989591018970003523298463613086796008338741195247673294079364210074116195083022026307030648540221583701485529167547544197896885046487600619228202986105205885676014213851210837901264389737953472050507800792257218661319855055271362571863307172414578343812895494462811962071770456080731629631424329961260214074994758087976289098009863604841475574437739171596603287218398603080241273979764936845025909442244683173826740795758263822451653971426568860383857364722213612780774025672732751874008541778206372806664353513400420546700963052056166994562139304253114557185489963213680975473180597797429098232750146703896972227775753189986405724412161597573580335614410050352327317449838374098591030158467123317406403261378460213377349159484638929575204486588078024635093638619917389973396519543180404272345764697470646378232226751935322105453127055081676816326858054466112719224235825345702917570033335793849018527986105701444172049727900964887804169215440682868976681184324200873797757368277000948934646331868301523082258476484730932771654380423137033548459158932355419192504552768821855517599936005387307183483017100267667074770070948985349452605110549878879870126932763430502630291077150650011599873014712492967034138696960819051752594460171271746880462908113292358610541826722636339979461529917815673914990731199540589711028265642611481754958979840263008395794418687745165629864748792948059040077769328031642176473280221084201722976394873287561003569705709221217818546553656763109222302181627308707993861714537186765325554706102131650835314611892407339979074543822459595034521994863613583428692570433742282789361809436436126085923990898509507167974125737823643209470320778381728009423044383650104733206307981458157636026735692572377814097016205843445012634115025206384494265607250218743499603884574673473195708652895696172870804732083326053890083415826420893920186895452918098451835647315469846695178676455459679265283076423226636206673334183551489853232110519574861877008611299135047863043135915546753951404713791762512334494378239934697660558614087339014000358312712734213499114815939278078784046879683367080708638437139896957393162999185539006516453124977566289214469170298415162607732561224419580536049231672565755547586718297378352355358135037919375451243341534262130182985528864896207121069248103557703471666975026013719830581099752475975653371441801699910549634401825620846238968191175263077406704778978114994370832714536922652454934835409659168627683484695711670522351309560073896078261316169011817548698592581432530325645291620785359040711861905016216269165031021961016424870548430807016136065102646772322217872528844277387373668937614434169017405748789241534195152611322050997858777470959564307199714667101106684819770173014890434246315860164378826368894966767443908083358434611312242449885327025924369440051572530052129360177704497845704273140479400726626701728623304410383077936789037440095135892727836871341062581130498732415299397466580444410090119358665241215716375293845641748693688281628376783594001334809187708285547296288460482047559466113478251482510512257096832023209586880364588880220972129835189700798946275170441257586889967541342624084995671788060852601517332339793837814575915385167923668667979000152010868006197338291917039048020756589930170354599467032014603223489745772479006775848313167299201824985316898522645916464487378124025279144969874401306225338040948205083004569236338891921217903130898765630106798461150045262078527294052690878542555864968207049091564712556202392440537886491255022824236388444883268848462639338870950788418534415547759066479830525722808805123550957532852184983648181735620818046688830527628923757445768184554125113681547469900052251596431551014360562429336052811168420063465834440838452653601167937627479437811714129831431325917668039966532562637816584000738381455137177038430325255316810924534652372928351334779768206681426763844590640666727183926248474320816220462336305554459284854713246361307019786629833758485243711537924219731214385151765641570531023343708738851110848378091236125745265979046047625910204924075319086850967921342859319889384009129954397232125426596965474808763071168756748362435127966251599690500168292105509214223958711276207938402942699715104198161283096369098828054756091672922865924874858137056985952126109650297558823141995657844279853350717291685136337736045561314907775792000526625213329297475721836342074129497604082220978616057566635045604122937932601181540975120873032896493333287073690602977207566548511325602207955741498556342758682680773400482241066391061106708950086608273283271652899988759928025740868923446183375967293624029801082059579048220372899387377978527620763480513648772544592301535331855673905111896932690958184131046016414849580454712627279690649647013382944489073398441479796407416337670361518258219056868101703153892039033428747159892280948137494560559537887241718301719217542284365617734176676780112780979297758030308911974097427677150209788509471005028187604185742158249395101958553626348784520201279095400510196986523014160423301824707664714886488091255258566769408783649216688079961712699108101172981774871670607433977472180788103166945478133595277199782138911896590533699439894167289637225476980355971121530066512477892663466877215721475931240049783744547818441327236874737966175331659551341134112264396404453678830082847960371381343111672803758606898119019433673584649363059174712040185903695714745965390286495770836550880373317722940155246119179489682153989472913737856166000409374765915778035419934761942531626397343322488762470812966852090967940281723036232679389090044638566152686505210448937710580496427737780908003553290888064133458385739046977998725841962163995684354066345098194465034220981759906415280230298311915997412690818182936815790809005405100014653130460493463461168689804935058827586680348669388693720257073893283557357982258654346652186945069334053302257876126001250296862720228087177224330229983527588933946360347457743348370727492898376757676412945870899928845537765549568372470349666572004368664721851890771299510755037367269213117788918772481198050914739956552393413646021164217310869145819954353922355988417797787615544608128316140304232319168438152911902631022831653872242697898316537505102944544859493266773212195321083454928466659475747243111558112908897028962063628405447411393785857615613144245040002777595536235946730008210251499302148189251430495197549710494829404769191194177138550533897127597747962802573676489227206701989756027495399390511729022961364675491198518201127855186596000069322473816437280772131189326059844450885734533443325498281244650225604713267480041841858262919185589000989223189215573830988372831133093368691625029946833958092681180504488196514117248940794081483000299898171888678230800328044043153769052794038629860028598062697145967068185748516159534356226003836858429262882545184375208677539486934448942237927564055034199177755247017463148135371814507628705388689135413462329358818492481709911873623192521188804944402425971500315429166548454811376170303116269460938656226851216911041871016363239329989323695172008524008076071595009109715360756914102355247323779349720510419828977504131670306848768227138207829064172348304166288373077660436828700134631478688886133663215845620616081067385325872507975036731960744075474625729036316084833958287085954552040671279930297570104495749289351760149039489206753963388293840845204682455302187117908225295233982694039191892698739789566991208896674823096214335799258714503179148890781958788266231716952901205255011485196901380251965657358072386512570981718473548543861100997760270054655090323103739672717907109507179421813428256305893867998535927621016565163235867783201263591463611083328400684543208406414905258981698115845728134679772070131944318767299582649525137957351609265004231805823932998540542671235319504508759467684860648537184944624278753737048592569868298779075179254933120513984272817509398220550067552431963377775293031833471013751380307450121862511409648843007785541961573776614447907833246453293719661986112261394645582359696633547382699491818570974916188603788186993518394806092442961418044021785985928963294660826955603505999007562988421999477874172231493047349991452076184999961772783048055007132236123667163176849275479360862335131948615442385128350221126642076936854254756963760021711437219894583715898327408738205244713442176627462160950790868913404850268451176425592045114901570361866295232589806905005352689720131129653346076643093160899230487671703181405922496324370624058341741047415479178894047370899534499691552576233429909599900927767044431222548704288855205921408912829364042773625546792593451619813355762761895782760820668703330728312832716978585018329878214468849682779904396643274325798056298988183997651782324653905763731232992784716323304902336687401130162348253275462978792224478239716210827669377930092460998204557976460284079763145840051987225812468482056985604690919577158059146562490410298012914210934303412647139851633724931965789330470835578776215186295341500160128049517811409754078430752146345883778106852100829880153688117565632271447560178722593341043802107416560647129886944425558984914363197256271544067582343698053893195200917804737058011512931616066917010910699492310981859533047900951031696152062565739753015909003034455165590590145841171985063817909229067176866710731198096189200120686411553885473565929518387024253089439199296595411535253225711825947374788907265924896047878367728770219430470491688368551514837007850698694392081764177334690739882981119601441338614527360401600372008303506697829750063495855535882779191779210587764118105160587657292988209407617452712249838971770788269758617339464352055093436126205278089013130156968202774935157982161999167024343815505556265570083886493372735157702617755000895367495219727847967548491177610413903514879931017844571204223993976704865397343488559389201358912136946534811431562893551553650077360719261052699143601783284684700900091482899142016414193200539337961842938049263140135844257070594751160226412033121441969944759858973486186086791198595603481466594929066357089145040503610544997063679826739271033752398692983205235824414647559262661935283825026925755126546914850095045909393454521123615859178695078845089850420787721067393258940915151827393609821652913817110111886516859330834047421218686764088480233969773515954921395641495668893414223629586138992866809802015873621697068032847791749364210265454182479233618299782511877846042478076463051578349557189652252027135202456003598028703645521779429155949818236231684470916614654044147179433979595560138071106412629566943032247244067291249198371967206253074664950492625168540257681757165529664346470342466112487951046481441773916657669942237677343052325970386233911384115961860615688017108163091588928308189641323618913451527973676159800671694805410275445102955618452241063008172524939228132604850614974192323423257124330525617697734315951195543361009273950962880097867410068647999613048504765006584771505217095992958765511694711910287505515386680591369527299763484233498082572877019193719279716845717018102665820977439335201779875928854728074850727809990326120221563858902692751016850739480402713807146950112851521081610480271526256161266018351799662339453407169574669864846291401176667845485018172244913972401079909086180757928702427078280889982094356229152442408619510534481226895475676490089005618991428714741437841771780771254534787053091827851439381888249643756375229184395565489331906683590810457389291180143161823931965384379503294596585106487598693932555743551977961550461218738084752667760052584704099888979640704666800468484024537511381959669628133282529436639034221280513490809094604434776253711040440364761389942266289796180875788299155380078286710855551621190703810019081845578599793052903996783570977993323897211249491636145277045855292949844005981286052621179574441785119442559631052177309022407142519646577926332526032520575517136690143374258581669539462541256713951799283522768995164885330860854002961490623968573583119166061604655860809143207865204337867374093044355741376417686136855274468744048233094188311976291553670997063001647625626092115393534403380490013686206364880196010464153455627305189566913864732888747839133450504176411681483644333898456750258145937520112303243280929803478713408170675437687399902704702739968719074625301340785203191883439755656359539774743158453675491741043586390394255812092093952464414891048290872695922226160684301237979826691750049274139424528777102171495284672979558601646871933407531770027854613714897442751361060602475132720651176560245040743654567648926481162166243579081194525135767746284387817827332336186531369476848824127501601482962922364167959000054043855143266094382401499133722932054252766247810694059565039756201368755799440826888027753229423027504402961390977883746162281554914336065695933005699481039231875985687294377098244878961002854816623758439789613755258937816865518734605696437982945479677788455240441917376761823768134774009640209478561798353815971915404067469514963520157539948228181477009347503780737504783912822150516790176199303950340479112264153144478916922034727265417863018742188842771681359591662948495443948032267659519531492995799872479370778707008902713622907756644486744058265781073465774742309440846504766470585214815169409288012775863661439674878106488694103477006264621274882900426237799031505081757638538958316148968373590101340595814047802469392889044237287306699473317557607147676058118424880990167841798426215718330018646462651233947901046228530648563640586066251689934075424768614673378808918649722482536507025044974858387385203159324584289869922144436605737998692050031921993836564123858839414577869094089766104690519485319864123818676185386701804445790455689519600362789668055729364868535172854230696962474739811411653450239601946552694688200587778676116083954802702846806094503031949578144516360782825887987388200934828481263131317500937773810048855323151674889644541723870024979415516556027967580456605839892825576510505227822340245539836451413890234950962538414015993323303080260008887328710451542578211787754006597939333094099205588658343960959130618065776387227620082535459373398249236658448166778474772659482636829004169590539805334232038010888900221848020281732944993727649440243764292592095836531059493257829535391691342044841838564952267263228860546411577746490264049164674195651689697398091667489114589227305324253965713006463192193474330813973561935429453407292911353327496066168060614002063106338344426678826098759740018836119999281077545922457464921453007706171328318431970188555096016404233019134585033610057160173954470406414992335460521416191754253072567606319853192717441906262676637070128731744407511019640348957705586779680558818597183396546364503904228039945314626428005174128028933766840752611216100985100437696608678799843542317856007493140090758502172698201758854436008255197812206937816434395348702311459909230213445767080155442674254711048831843767548820613670514082658646487948870838218627882561867704903126807545962019665382000020615307983881330054365381736113272542645168335753132326130725873238765631514154166667940159950745912216363223831176342584616063775860229364099240437663322959873441901686481311929976189996547627327239112546530781924643601344676482720753812205765599793698313376593607385510386511607974269066536498858162415309751474633269519165759313678609056703715474555429343303314070530755073921330868774971973352915790381948296780767547260048922856871628247124182435030185811259089818890322445573989841929106241843931962056351874555232049851053854679885903821616678053319482442607521853110973446136453539318902334047049369915538697814776834850875649589027276338950479936579735809477209443020490250733210564038103183316260722035583968520926959944815478444030075713099614305095224282197252055209772326685081999691581320598290353825720675414528850196481938033933379940829356936802788761225844658575730544768122459597967835131138030014176240112414575872159784950483212707905952625107798952404777549916281275897241945721549819210652569206148621498254993025962466450824889685240770990427505083054505235932081628779015960112588033315219186867749465049899683697881519926329804507626583778061374160234166077917125471675112015002561581162140265115034748058362349698476878901301428268894263144723819067915051544439623874777390071892938833950881063363305706398050600133163396333404994165538603877142443886890089270999423540204165398504606339226830006695642728864934060288577779226598734433124601495982813161692378274683524756346871548546340510935175372264314760464956217185760855175346470650926050729254932111713047696581363906552460447793137650386110080663711467417397671576036869757071929708887193923639392844917894432836703912333419732451907940875868537733130817093126726869333976277123525736200069393146664837044853785646623246653514468218521521624163455739662303475060203790319538348599093825937437108484923207734506211415407570722827122819215233803289595385464614353879406942332938761491471207651918351767632550586904472273539262569261491743140056360498415748445417684637327753119441822916161132684719485120804427403504239178320687112868363716293976844127040832826279456846389931119982097007928790267153215221044673838296320077298933513219624742551801718380701080581972560281734164536823767271976321330554069049080506521439427065555889546982565304058913807317554868448924921446347790901305490323238870742648466614285887238653407734311041035859011362359770885251186904715095498512075306207069574252072508918617738190419881356895213607576310410136085422581243677084345848112673205428302029900331729606052107162571343064581667060830265475856709407692250687011569116710385331653380410770030794614671130637427827023543750375274389513975509519584733875827100859985363500769439941610130269742031197812718798345442616062583287790511120928728082105392572316624645175947937029483301815765082687456374273526936903413906029663587991034902974139739258857289042095145593322814864304395550616429042761624839897730017316236133452867520621147751138004031404070525963392325458125637119165328201724034837710060305683287079548717880668193024665028314014468987902540396646073858105403603059871431469121208423344695336586823060799230228644709572231823600173905015588544971124987618775894318139946276772791407090332571159412360764355430199317769133142706961273197452640953701083717278887727176980446652612131896786092428218732591129758528173966044116092697457916773353313493224203019527522699462812325691422616275635930497702689645933745693138546061640577182676080101092339791828074449774331446635613280918513060264663843979221597459694078454606665090624337021967781393023091622654924175851110084258750111229244601370971080602498091820998811044919009154128826411282680238584092650135987008735852888849812766558907307865208965018555083987210069384191997877364655148011813472141714180172948137890731044571658246959892932605140446917186826114408719981125019715767310672568338465288950342728684030357210892383320737266993924037177276621508900504547629448810989258846940857931830250783744460332651629235472103152791133992200207374038277506828896405217583688338399840981779235292497532023407536401267005021779381482784709694727997840821159969033403809866797656322231753259514036252362077529468418363097362586263849057660610294693279965854864563565682696708090140036650478615258079203023970691706348299819094460359070536902681289188264422805484784553480560473824876318498542743153594274646081730857310343072974367708043161513644541533733440755099989311644436710462741519438557738304567866490419256782063678554754204932456731566755666381885642783722176163051065035695924663040242400636545921761535834237036729425532046814218519490251811493277286742104957216097614430063485015541225435335076524947142954124036770667655415053035612585006202908605869884760524481357946140279302874045528140469087634953096291186921612556662236659771447983901824622722890384143841960142067548213620215312614610420055945661448367534218820119261514171490910680915134424214038503082457087195466148545324914762480760444728741192760682945930762962974342163059540924176308711120931592379903328558985202480271667933566665203387981719587517469347370336387799629534339563703882242488571172772356896820534231874088875512553292629457307521167105762864330773629216654789565256291020888489231905394421529295950407327235225314776400801035054041648471414885877978476854651828878353258905622080907725523994189369481040995528979527363901186244550836164828055782704456356893457657765989108778808158967110714773018790439457167136958734552176273759219190592946168040686902254667378437464765539220745308230565415034203055960950611334746944043141343000273098084140438483372928747568504074915091480972549007562402032647073480879784432036731346889972805211764408144752328010807470142428774806988515816350480546112731126333620368861269233186993752264009006685095654288068315399607226760820576076715112711415426050059952665521527327932830036322616812338498236838782888417149602453269212328134484852783810068877587838380203234205903057398583819308514358525179852975519027446772223983377197606886887796152719663003221449961240213976468564658052311890614505702574082511021534588412364309624773155729947750311569931453945844934106850140809365898097614392760638690331278163969100963456905755800870555232798956608014586803967040439417360434366189737755814860492218678939376927190488226784826166065154261216815677387114879762912164899480421578047011599267174392948319395039262847903142511689961535467857856241528270091203778049971358721193589499519801996469116076338784214809103531249132491661282716529390357647462713660531167381293091970361532679426007709157521474725274491068257477926697156315348506737002480897744580529130585387078078879485081405445228130394345265607406701217946248982078127697093236922439683802875596239626035069125360979519864306365613984303982029401534519968127392475693280096043072939698955487795601466849464071221039703638701826280814973115728449916426222437502165315561585409587477139148043550412854840832275557744998502990072040418139182306477906178948962961330950696943129676169493910529513609151687814109654887881838421529588412557250381190349143829838673602327193710014375926426833266904523000542829754280398754409041786989024405188259884979221151189553689356611090927536811971699666066200915318737533558987789921209458231246442599272035517916901825096222209015938485088454136794793554912403513266091374329363314261601147124940089624905680465185971126276806292794427551861579133367502170430718972068432342052154060723214085951291484028388541554961170280308439841858660135540542039555342963463638984234432845818062020145374249523854149656545156570106478358068480452351158602608955270493761893381700181654888810104945339636711898671314815151717066180370204010540000926151634666424717287808292334366540526408281091825471148232924799258978504222648663345540140098497062749726925609559955400390735162727122889122782911946759790229469659988272672788819439789459413575371892644055312698681095065103331044798050747156054877435786211558890196987357878644517045978788981496877276888160964399842253717835647165646734456991519862306472381464330678479105131083237540970954725345803934705092773982787808191403724722991190921133286749146874834349062720799734240205314544910432293153207225217268085930600572673051065318570275499013983674900885836498539483787610621107205400793591686073916133819321728320714735584098416145413559122285015572712777986801700534142705174936094831364874676057087656955265980464554663011915701581267993316986537274301927178263973444042354259628773304462893327064745760796025181046201953816958664170960144374393794909589573838219859378392955954963593585385612644128049139378153008938915194829730537253145349972905733971340538859272794720424599951318413004892252740792699498825344346662637850558010891318622644304724814933355690587145392310755010355121912302918864959927853045581413886505202330203450014938855829429106461599094910848170370225203860393557782239767688546253429940730151833517501443960567893502925790255516788823625246804489532093053591022930701620628874435079031376076472826395764098869915734449104601191325507305490809429720160795615556962706692946678040441063478852324638830859882343404942229992043520651679909873802128528910959993447558456086675792363465627850350012194946020374652796312730704184632166908899841777824274822689962916883820220334752495955929343257034007757157716069041172804366990680024827009754810085819321205482304706830945137522176630945155709863603673467110250503047715235917234211756523934595919016088097493007731147280290350823544569638409624882471895381996007893360613633258863606719976810654659974446954872901946352680692893174249857253675740879923218089609117367833096831754538728603756240255171589372757191124735029560014363371853536371184020536475414227660111840136234070841745639169310415406322585469156894813537791527755833913056062931484923236661173343960417763893353086137427214893897870279125076719841794465165977081296319788778292249677592957407140637068832342541767573890427956453673977709414003184271379631576063246672907564423350736192671946290573814684394543361562720009811049070563381348125529052824552341697745037559555693630725533540534654727961758109838751083079994462375182289971068054183358264186482300586747399733045804881223961545276273831882515384899719971083225741925893013209995812555247016526864756463905203303874322595106627474002620043222157676536411314351408320086405160077263733874726915413084637940750885829184923073288537624147236334774799255092658639560287737313751313576783164585396513790001883756053767018441442484300820907061279287032697278795007893749499090879063906388616210062987067489172251900251710055326561765985028130512595366632032111742369417245384709989803805349703207263597531511500856950915059484882758359835394591328463373174116711159673430737292531111536856491613150648534441921833424856875758092915319951412205363810511149362641505435321727962529889964947743012740987490674228805929064150162055449627891499202742540536228325840616057000102687690590246378918127231558003682984604897338980859680513432069939163862149664968393268058352183161977937876167014581317349207276392428616716571244039531337812454625071730637572546524543794641471225007504790723167237581103394313101889576345937623762165722418158757923633313839246626488890097126926149070867060168690562624568321751480129252934859543438814002841633420789964507151302456958345068848277968794764678584403005352688595442643983587484771747676104990194978720671192007835068779611363308243782511789405786021783750768275197843155973337754602136018970569789781950331866193093265968012050107011674341782840408652317699723507569317826002243944902059697124472284299715627400449162027445057309041846601774508056896248767567364100985526763124022141153207136337075709716166542670625925806830972808368412145817024056824084330454523869761367643403032696644656102575904670216081916270437570153423266399955883766708293066320714569037976778215356000461940703238989231104090788311969869921769899482344839140416007909647756304813708985882460107101811581101950545539918087639895128769503820872008426792317260996408490560696082723768116288281143208523943348127106217784451205264936738051045883225869679825439930964672079918910392136107400136977223124926642557336985953874061485144281535389701989243788527449347249265180404927269290362568178098439601527135248217106984498166882789969046018210748645793265145095778716609119105096212793788177265222557847232665341485282634807009477374021109530506552660379244034015208156875766228778409286123980954039404077284781025185414716399084318350330866796681512760089434887444966554948520721692496600418979721430307330617134156233671567682910917207425790543431384669277020076470427516108589358542013839383066027084943267833449326940282716896648598907430717004961087849935416768008739188880567550755542009630561823044376868699667189255418071592692108588380354205481032706518150829820614944917069490183381500561096310301299315912738656001777454406658217937541681613119109469362097133884231057415792378299313729331173507081926274583566872541880732010663533198021682744623318984194037178961907356107961353409221673328746285024454537953046410256950371805073401712631472660157538893141202685130190686403665189800002544698473871623128961835471968962028430801180855518721089640732579958825744935811289422878930251593630126925508573056966393689402500148765544582184460261612380718803818102310344251045874953657484838268275819915125013431638482415319479996004331890955596140746134115619389765019776761742069368842996910786322291731497158089212014433521690884933352832699509501875880607926739326571132092329525538262117535022834719635508713970174536417985394958532619150577308771063428128424460404765233200849440398062615501569505902471779052344747825345667868003262305729933761564403742414215820412462565684337960955819611110843667726370216179185322287645356602912766009241080375145031128722300772747962098705278184095033902304176413170116984903098420999319780591744509087851511751259946416601486929940132156269453624498365672500429859031213000621794296620539715279547189823175116518310432193606794936687735858420859696919012127292250767246974161078255909171830144026872575421243662398337877475832657920375207883158595884402258550927523648992400168213509981409013034350066506146205991063426998233308113635667039790417929244751205329425006791398150530730844502778386287473347181653932328251731230748539606957173474296866049028711444301142332593231375719319668109792820023390286411929752678123896513103436997850804228161851718609606554374853449239885676701561379348325570172574432317008211036040907883643533359250339980547567780669855570829112499581581167894847459450468278923433891774312176346021310739179451912963812461593038283457003392542287851825780779589790682650132477033863644889183910922234814070293756549616787857082058426777791941547230805075255156330119965602945358696070396160835918527827823145483278416150808774829931563709464911439829199244144396006094958239352555470869393839235624382905657860815443095467221645920512764913779288141556813921226515634963170172287564321771222620364293495375756826919154183286146301972524630678850518899726861495109135582538482213316261940833510688477069272673346923306668515115155983867138324129576098562138757884158117380405410673012215693027404102919790501345493693839461054306963432161963135385196002146977047908501875540992688833161982042090276992222032417739354117965470576003231545603673793461090023782926322359271654601282865378038279021663468686907654672255619877636817957023328887935611528559205601384250633002931184496150127543524933564261681097098107497921387808779566151436277954662294391142391767211070600031769588431340279131298005711911467352010562926718706965852674215236677704006827020715093181640641995446800467828365067386220579662566982237432797897612362138479030705459093922567220863365280909830463461756670467343437864369645860237795977752803555807528630289567995696823468789188553399863681243949478631750688463213831964928059407626416096311036985726268886974694144539048024266757372010276468137386602392605261760284906817126992327390289782699114991292315791983845910623769871777548414723802707221156565362811074930920580621457174455444456027586850145768128067687988907851327329883307274015762762287827089329038729496103920154833892860027299310776545538391118798227998930623153505020441322364898316074339703811347301419763152841983367481921848614360807875318153827656350841769976177848751229733929771042452289278108071971143897494035290272728122791275405689312783954544895075373100556164343468377810218090116173616257776334718436125951673296903501105771997537591648118222795961081416848171852253732014230363392992565176226337239787716681044090076901742152054615804018777297615924948619395463905945086344073995992140971212162536504185066135228881096814790744499633923171478588161846115333636305318641236905561909082208368539169912987006430658010482755953924255292880394395661587306593179495710081838893910274205415895530932568800167398515674404099657959960415399584563384937066480899435107086728447358721003866881263112209387994462127580211251820879482432222169500378839605741067792927536151217577112092472052739462023824539582796126153156028419199508298043435537781128102174362252770307070908473569053923939473984041756111820951920055097057438399389806080998382509286093111321970572138954043845931293768792342231518465833609337885147938956911021786122149909100595421343850709807786155120967944837068611894767903832364315551350494808315521738509950659585497932535092173055121925174952343805487270101292383017085436159848306379096110043650696013447477692983386913616138328581942266205750024597560514562076471177911856774926105776621794322991798958051098744647592485747376639159929904566517426613020010595527707872344729669015088195297816358422140907214636356337900007502059186906869438476115935002474182052078630972047947671630107432454835418760365468269664208892348680493063617726389496741066312551708580724985167714550675609319475094145200271622987297984221975782118391165243231147262766138840279012483091247977667437831471283087005807267769145929951460659605263472835590864085287003768193099493375436409374679604919014908197315328629471888368469539946953867713050415945381376414593331312558280051649638829063519710659650758165904290083091689172347827179410705235857077134081936356104928728938401838903325286398100133093363174171543756181469224174384469637437122287090748146610798425428457494489536086132029049308046166211080647852071088813212561513699356693462745763286794158614078048280440326414809573566521648178335582268726853529300145732764496095410504762919486121107572964179106306531731284649522953652176450575863676751145313012228207884330090343618444190558272442088867831184557661620497283258608847298349450855539401698062084027156673980270635485783487305697793229375766342947668034495024679483887746143690555000630904016169234527189682856215945376262942922934301111345943532296783641189441345304152805762003528004481467400800170602197542735436279042514059303185264984992953237175936212876184857127331571170644279253628709102757871708978186354787267581347730728352986258552262208861888992308952507830990976754491798404766354050075770319329743517356445771567793103014773434734832695003458778094194198765553536994882140928840003800431922677832170803490510993261640789990836016328791110885503546739456530348323952141030777169771783210732371059076763660916131137327456561416857337063872319361895959188056388730472916015133823206229702990322604954113054878806908131966320828766181398691469648037189483166368686766063914695015930381268089621603737188374258121650994850829809425214728552734698687806143160239133925392782506803355281446834124667907837628431006440211954410563369328340666671428481956668590096588584852470414702763361319818039760639123340900965385159686047752856875062242669633934206986737445899874340549968873630724388908611537132545493293341816055570885609591649040131520271716492145330253410342252044380426533065761954489611064783193664288446218374894115254302949341021827719431740706390983866088777533993455916248368091526594168000538426428231956602039305649561661701661611614104048777117166771770155070594835057781485848986450220973805349594964737960213296804638266701738111122554202284855746828524655316965836593323631081695002458093076636202287174955313130075297149825323871244105843919664420510990096029946778002907236110090659520791821819372775729588763589967461332327773927595110553422904116196873365487908553277282318538490199230707763057433889688098843779852035801753451351261990123857389061993175481697214389012450912507335948715894453168201692177187719170736525751711072943925592098106057294116793926326109811613797575486618112565846180312733365984433950399298852915477611539916590170960850223209449361443327532791192303533601732826680670699789681640806258577601042256471657682826356849243837240096911124467547007721933911925876147645493129267306236373992108632788487041888897958814582102721763137206426456811218741703532229709818641887166140057404489903951675127480037678211607465648521425177852610952682683985726255523292639033780320390114845060967160511163496655464946755952536049166917118967326757787228288326927091182938303094467522640769000580400201852932666446056186268325632839249913051477217280767283010442910304829959932065725287126115874275182751339607368481901159569918663845810369031388296269087194101194791023231448459348997216015925135364234942380802793555611942183332523952001255922904644826869778845729538659294232813847690902889961153818212420932365214046309082248820068775849879982018898176187489322498606034632385677050489270639128575488616671582963984414507953173647625323699903371476303738792676404456122006371316972590976068657660780152083792911493948466263768581203506896279253987073231391122789740228411764097399528553545522985958094482854104620459484482232886842099997815242057210500743547267695706272109972627639705265950681958252307342306264824182962980403681472454584038484560266779994409939774167345600648547078344618740532845062104025235585295954953925793630735349896442500300159995012690903330578767993797718559844653692874487368648616518798080332082652135880773645065970813971163039357979190738720850593631216441289445060340161596538698178640743223028941026967334741177414453283340894352050469370970386641559884029307602487555573285717999356559434667181491112328110770770387921984752323641945027700556042905486439111762555120913240217664464147273946308793871950564812732224944809457929900763003285848428101390376861594532717947374349209726825365493332373019716794278400166443854917884454472063607137432515469945683241084933698477648567525261707605704927032821611287387683832246020646986144552803479472044196291806937353464881741636648949790347294770079396086889522519427298905744053118920344372315945280260270143713910432866680022487113314032299707521345925333415920593571055356148010861171445102161975140574235296563630061694146844729956058174654097668821619824491445431778282747667806222074057914461063149632127631524327934365529743082476812954228395369847793686439646213079401569387587262827883619717169538277113001107293471368993601001735428679756129240794770574352219226329054635362010897185208718508693180813813797305474301876946398058880645155612951494104193912395813038485254376214374455237541668594030785292996067194791825059876672177149242028022083847352234373961907778329379515211315703165067770404475802447377401675264753025677443559059414515781323254663750223436921064678482091816403883685269045873619810648180503464886532158334557212700474985697069282929376358861975146445515148291345006162651796967513414905297907073164844144541873822276979674431250313612416044894523372293412621353557815835500500608722092538658911445945872298686351737149670784361093023386460669818461270814710683126280239587634880095704087456491761914115274963443165224857924232604928081512246681849401471867582444999006761406249261166457901861492628816424170186849449427646205047223198792110275823607409704524553386771035024258326262241346804250597346300217496136846690978289825415593732925147334131935448875069976134304112943621938962455765447066667434875449442587685685891359367112050815534400710996336994634620349365536560599448099549703380683869900431960683086541065181191796410215007430167466278144723152585139521281425415834529631724312043568642773815833056117334667642210705689219492707447604307761710687364935844232524799899137441326262838192690667085016534839333119202319289005881008329576208553716354251662210908023779844105349832369941994638375721986960804267325712394613330378936762872051397408655909296355729517783986869707574882289921906890443768145464516296250377001263115061053898708404330447765624632596904469113589974733690135125442873193889103711293618173099918312387415071335093374668946689404370389344169431373545776410990529631286749014767916215367878199899278997262254788120993920096670814594461816970703774126424234136079761713349680148152985521678389341628862174198354496768243187261869104660466540133729908126883183855134621225814838398817076933979674215712223918701715148218914006979577682641679155301194276929363986332256737538068527972720745982185998296595290917476980256051541645325987622743517627993433252633306540640932674654978774208037878577006475862449389213056583765474341539142382921445821218958792129521298631228967325608393054432924289930705674232871760380125951058981336436935544657180765358172839429474959881968478145998685918759680739782797855585705129400756405918472635986726516591244164752882892816544400821211169139079232661899030122627065735205995801344666052919532164388135025856321381927168996723333404989899928320125515180754008240617944962286146097555193948475424855845475012025798067518492488782973405028902280529274020492196431101044500681103216331018366640861631705554240200401265769279422712920683714030011505527854668345478059634266857503940916163261901686672288368562096299287762390533173749556833205794936917483710037354349483550612906895045942170472716245241519051188639070757831656344086645456707891142322234613155594974960254193726115773742837557639841364901205216084281496533217589070472861354916100955146441260245803595140670397219645082069918259563080527967442577116084629083796592495094241098822484688425413729408276545626382755946024517753245211749945767326205835909807740151724925201759759578037443914851989516584680116499315263251826745930997178320787826368981638988698558172243067343881324305276158251597098004086339571671103810524413951027629962735027593339570187041958877320942340102419890504610934053954839468308683450774405765020102352125302567645918770706005947520233249717925440004119156963406342958755934246714206803170067846947339111234030099103372025650767382726219652411945473247821367893640457012374455294574973037726664889785620328189807360901432587737828486201713002920937353915280158490110406366996890382475279994259144576994014247443894970510312523064548553399230440641908803638663372437033073504034081398976739496205906160616163227427618995605323434307204017659101544376284726646980834400629940064796631476953970244323848237982734531262494476503949452175187600288940491586354170879856739004108721232236322276567198330676137294392131536292440630583580245843584390207470769294255338254945457695585403789058393205289208915128663072393176738704475220958089667939974755362850892572196208344764845193898512468113940024148877568921053161150548096954427769930377896460874923878885511935167983010426034036528442105065597993952983604713704436467995803821648604763148463065424025335080409134097577403553261602349814884162665555668746359518435926404289112578482309970753495661591435783217250723135441717182876209396566533753278624217924343309001416722434320482240485155712117895571859996167310566811862320376665730710707015715841897045948446511975948548458663887970698901262682926152202804192283759937644889612615360380698682603747599069857237472646240780244569379354355768449226315032784359529023062417822189231489885600711434101225745044798127378183381472474522021173754521237851222293245726348409628068440516786399782699916268971501087751751871663480597328526959717247417947120867581108866204360143668159940035118718994094649978651735172734611342910947419338947904552337472084871468551983059597455295441483382459432066947177405916135155260322374469214376568761349319408610432555821358991196065629818453409759434222397945272216329003762997415189962359795474488296083575734200403001528537061789289818294275931140278191811984236448249342822610768654081415825897184444940245760263244149879876101728843367479865176048270829374273132729372924061078860270602979197185736263393313174511689834312057109865252263529105523607566415096497725449178004325174249177034062130186475808406949019666021832127582940672901888151652459143204102604444132574495167250980199288110629998682544706633859385034226038426778182413165710686483495192845449419407565313981867627309509794055383180574961669625493120416633084574671080499457509065505299178262242091701606711068400790608349100886250044599710155632627234802390281595596986662400289737059388877497058576810340443803200264657015382459803764003910753447740178433750850155350318096352936410474572553546788503066898795454872945691019725864904195750850177355988293477429506287254635500955672999555289184374292685225765332572474198230221884558551638588401281544499608272551298498183971810861444643287625072553147196728717108584875025300592385936316377132823960039972160481499272299994456065570297189108649227016623991994585470230075985120956904151552863188337715898781031794650163941190325608964541806514309291236271513836478823691863096263609356384583216081895537165741541088284002289568428464394624239118399745460225860209670211058137133347327011094348483146572412856164857325623766060699395785108383859681828663160302208829625741415990676753674903924620918517702223389637496281207737754971501551921382890409511676184601304974267437988244119969090675733400057236817700220947630800982571750156513328503605936032352416584554818545804178412740633477015185385632635195836618953226144555446358063719275321566566348151898447464951109936111038257071950689500005641647067025005660405006927672434298826036932864310142369594388573971866208605508092558025243823928938018420148289308786897013663451596282253989011957369531257460439657677243900612427822044800119885341065467313016443766285783679731994368395075239078693774703277156079107585631712924317889724026569719533036994344754386794866232369910396983847157342608566811983173212118957961886177901518435244678355716320031448564103334058678555115900400722289869537807734786406163030714098277938658367392845407147104440106061083341733370729582832163436940621024383375466151602237278262341778015781958103430317487302021307193532609695720937924947637477345791353592849926357411743500187536962311226305008294621034036534824084421942350606622489959192450741160590248629081538529403694197390914784440251553569293507258261981516344508428001242675175364990864090509026888364011794148938855481700136994620355369751325708041323629274023520465131008740735972102774409997411799977400966575275766663789211243916776178523143580984977035200813078767489006402271617579034336049984525259122324909556833439850538707910010050888547466995377552149329186423292991732479767919496165416610627772117318236413206944461508534483175428109492463471774345882022824419568091823710942098146515659826681636607051994380336578635274360166684386698919792478411506126573963620564766642548979506704789153337574885908683186669366687583599972439238186090018177907997255480868287800312097779270396892900282792897768286374087388950310359204088759238241090281930526686534510874803174444554909082006780428971910620074168853749270236695518834731095617786155327448536632777493026519390747721595928988818946975098820681798279959408377674155218519169411948108004334832792087193382321754806237561225797851819537494103992969496118821982076886153693564436803685923272347110616665757473750020428122096108287713306066623626976909944854324046219251936432549996893692210845343119878433079266297618725670030533054779338988803270240887426692888711627976888798987788288965098514409613344706840314500596779239555872999240804936957480088265185678957730796900102208593661143886779723604866862542330466660100423059331455338905085985645424155907230160224007777914352790792919758560084363337728178671700876939921098582312060656235939761460121565587520161065933091447668203204431085634876812966084996516872591337392808004662207869642422503456446195394020231429511131604897082787907466053928880882687788338556079257179487639840593338081986781466524335762674690090293107997898091479986058865579807995501489733759526761089406486052652271616981961270221321570834930168196914140505690545518770885666584314949886064538408193215178212739598601074258468413722295507427489682380223678375381479419787007706601675526536101590126190600340424712358137756804309390262705151804517349720598201374373856429981011316890646599654745693747565371058356940403099957404341937928718882544480492501334423266038347727165770237141491366545197738343546654244218519665508040024916889958387624377547047158988226625922911148898708571462057830156253109864538575563920894058069710847158911153199402199552856917622787141750188941143471111554277482217292265394722095052205362243694316410027247380930060834632994120273838075585435150007977497187124848321939488675957430045610576958008446631997115976721730225898157374599176063552789701345901865780033891800317896630386604299028728872504742547643435256829759621901833744008177120524223110888277414759547239396652121640374341209895814854708911611595527256830891961856716107241403343456685775900446698976266850785006725871071229612242377443149002006363008667011198818965323676031828200795166708680306819204050128779671588893837653332566559870917749384286588131425182651268224336635177921694844162603651859212696473740756585306123814119147586031908187779034544288282825221484050733963301891610256628946056166910723189269655959733083294150694880450010444014540320921157118593353228269981309850281844188574781508153810139434608237183481704087305020053327171747349703206335751391523319861446404377326284916670780551119646977784774764863257393366858838958907293706211798651208172779079127737168858361051747022480237912310981567126917877194083565133740561587353151811923577614699769993511684709265731026998742965004344578049031028418103154564016139903925718537796174119990379859736105318109971668706640473603398289959289617721689392191616754277702143536413695637118113441351049064683604978756193699607535901095700697773185718607347257712033561109537036941533719970358990368731988863326188811745922776059322317972458571810729415830390026391865233008552029427924795804345873290843991602312203755742368107650704729297384896952496897912231783741378454960811669780131408744865715691779644986055436488942914244860360231625531944214097551198314215855969130101464868505762642719386443832710339865584425766747858121857502043076137333431662825113639702030258976051842471271563537530842562272497391536224393678904578097829235940874812302767706194703285415105639911191058000624106161144256073280018039922634002267080756567076776057753426143056050788661761070084576860494870984345804980849486895302996386215420954052533438059829675512904059860447958310105745375668915860257513117683757497688157426401645310622632021345212606755892835058205189847099576711741952218185948437883841698974418324463056195047317250330119679032724697670736890531987704128425113088129757513317519055461179782716778037931775535791084614339829375419617242514808264497996337217128138207484078101848531107615445359930928906112277237223248789025895597880414498752079870356784836819968225875263332647312539159288227659880942816599611691227700422439281218144879125321680292770175889795000016261778364606875960802693752282568035491412281213730086366076013461558269114993577991558999982241472551220428192568789755956627507542104167485393728415041308584907270750564649434171030855601443095508012756419859380863605581688664332641891340666628420210767707215518356209003012160999136063886691216571421625609106400193302827436100449833653394684906500370275787123118920924168428410391285429277854216676074298440766439758864928802560632618345320240010112588346962833282054500809806230453561206603595116186386716256733338440455987281781864860188664737658509003359557366954573185508537662988335793048947103705059034873056189259358964672487514233549314781065598411704940545015031102786354521266208054407602376467570870779345256653779652511122833618448835566109639085186354344309586301629235391324156826514945899906371203812250422256150490451539251032958418458870649275358804200666659588307108656988987383446879845701978738027431876567489631327905129554116161160924649950682045500743772751154066366370414992084169477316576176616799618439538215185109443465800975510797177916096385399390864335177800037124202883647020942270717336299914621034337404915294411841060732167271556929892675946676308698205289802379657544742486906780764589881366010004039074325131850417340918221278045361698326026460003969985644091278060259971924693272120705624815280692746285641637289621893280357563480915020143176712397039054265044982113850228176768379665175950732231636850699257453436052330648010485383067342766043928648201114546324953584895996855867752774805639495971321670837558162609761077908044334578528353163025507118554753256642581920241627859129962026330603308916939592099371338764186752343085062919595876483661400572756704923460963885309527857011984585535801508288382140558797073480975984452482603761957387830100509416036979467018841031224621026992726613880729091144130985130234716734766088702670665060598892918853733724634258066865692745392076706780919198118360705708552224005139716438374983808125547275813135543305969066280199208345581369863966319118816431522393458232728761820763627626893227300492868197308304454634960745584313535100799233470603593724172184193678851885266314363409185906974507643736315523154660466212929122273793879293593888538511748643526177866307974508203550343913602436836163145640325712420522406382298589419546971009323780041095993002678201712901672450286855468434506551282690841026897251574372134703330224285128379869465292568143369411210869598184635089090392885094703378475136780082585253911085978978481381699256981182849631122778087374053197601223973028956313112126635202107658148100261764284256076710419370673174135821936180407587351674950954925787449286631166211481814300233215872869649576874203686465909691259911057905402889294086486476371340935006573016638486347980528544099451712302712181005136773500454991418306146138504867367752507302166039364097003226334099439861353359825070565871322811684750044340056970309386227829957642931328228026380454194586948661392916681755098343874750179383129730057009148131832036649348741142183647792751279873202102668714129325676361069955179461921508871257079862836532749628915495848419809648539116979718553187843098949887524336125644119881649026231367122409813124485112379227862208783524043966766249486039709470001483931614385173460867293646162438636058349237386186463597658773696402502695162903512520196148462560260352410302587962780009319969977444873567342862805709292840005746094180446635805818969346266242146851651886188836803988487370393381580273052861110086321711237248743657496714848204633938266654928481091640256249226017700414153417093118788712981777910014618583637902820362154273819037519564827139778537681342017246858240345329911371283918338961716757251362849982786179488529282972360850275937219860872430887842569995662175508537683438404393372322006854402050344162298204812596230192384470938248483863955440927083132499413263564471536062017707787706231732741776185987118272302052915525293226766561667606309798713593839415885697114213606307066015851467690438533654001410123347268931757205165138556768238354678201108432917377990032064448741795506478682072106819456282431413217915980550096129944918138977930194524614923431450131846166132848754801489238140103297870647857566238591494537148794658987287795967885597844496242723636234884751562451398167239365303408309740685536830670998036712365046273523203300162910542631573645983538735726697662293218024331252614886858901907679412314689574722321623901847789956653745958356271689195957762104149072133341641774822893609736392022908625287357518497014370339669968844391288380758565069098908774946155935993937652142522670837336832080815440205331952125269368027420118937259429815306029537103624991399761855733453113617061050289961809048789523342014138070041220656925353003503330217135612303349093157728149738585389006837992244155227258292666400192619635228629520590447649757110657682039364058226026230591522630821542588834418070738393402506569324690383012871608752255118481834325085030620864128158435162289109728961085500230870031190684112274199146795813109978472896273517694995126263614221075703590944988862324752944637267485337354580860340795519269488518486326300193979146224483660031050003123727609653120123220140555278088373560803607624618214824520564032318791994951065867914295757229272332811435612418335470620404884886529120126890615402300493830761934975181646603324726892268527814349120456457951687756064267939142054120970110324201298838537992740834740712082014657633818693006098494456953843964325116512251037622767013323219141831112046724334222867428632304959431079608707153262174163578638949343654289716941558600835294388054812745475264097887588927134411309618903087119356024223800764190140521454627872298814416272269378548460660956814639082598976094740531566018101647129448149115928603076066018409794171764889047077664974144390594593058203714305060732179800460846039276207424584977216489082228200111039463072957798984633287517950004605763085716208850098065230877940564078781301439565164826355829877862311311520307898111247843715351184700134626835097970565523076789961152360472608193955006431390370788446068276992680449980181491384555673154306161453407240988882284355655696552896224158275402260576184963117007202137764061085577118564465990071611893819570693138171040647138102071999473912994647404302070823357974616784755202483043012732101784387745045392317737061187978253894020644674899015949191534928499810417001206938951713653182117662052316870296672660483779880813956790578282635405388414826006567266264062759524994754515605367586669960741280024007980976552310169512880531961777384894110469770469213763244958311330086706910110896866964716161875969958403570921358502549624125222099537827157962138112135955851530908475156481330505009702016261963986624442846945501515954779249286226742668368663862044935501834717856320342852894883548667968251228939758055421820397669008578695344294392767515753712138524474235248649264436053493977738179511659427136524636720382397645255052045740136554676767290925622661727160639772658472753891993675653044185642375569728126884253776501301094434811192089646452552913897996312165937773350578517484643299163141253910784683689711028156947496012195022203005827114212438903221486122809926168555551902758877789508868849533769037300878426748242687892438480021565347517062447813000107994518441325303642220988282377867144716240584174824587834617744347600485288694533849875608816448540667912268566006553803066799766606744291409061481136733944360388807585063583220820144782159022224976382694302034397441417641677668284385219231248138923632310440606406651692956523883419218444356548571253045624457645386874312860408568525714541348616416649731181385651780236052642611727673028445191731475280844242494822051500274886298187845309072844091247039844500621013451910558154219936230505387592537154437379337678754713287120892856439757887026450261067736809260548872937740762299991950548607688197991382609644007617106135529893630514484075713002927128794428626844546337706904977249018140381655823876009294785665150707983908136061173275682827103651498550315421786003440450105289617704295104951665039626741024491433142914940526121129267650463354573880355474028782869060419198819502480705896275218051995119157743418471919218269266572940848244437160805404610414627445292003594783649104890811615416953839417686217319402978892416197188151539228801834895490996299718120374600726490531261833820459350027018748719367746457236972676465112196472517106579896282225474634622068986781844014093946815588718289382137640496122089034451920144087377405994391710690448540173577859207924353885488981877398637660194606620435263494451525752371895520903831577814380668649827705940413084210207107751143978846784907685487384004951941467650028948775439534339048320983178904410575240585669081950978763706900800941957277315440017483174698035561126855866966105945013203334964129231999561771551891695512896571409767492386347820089701284348958526301106181053012453853390777148806337349559544426561272951921702929350031773427496349231014303701114589015716111841207439872488415279799811130955651695132405785499537767622111486139806872092444980242988451624420404293884088392857290261687711046106464914065411298058148174315071911012072943472067961485021559834509419839495385914527982351376923721849887083737244151114476319948113997534736619565751072459474011978461210140027646297017107649412508066966688075703910513687638419045972802640864233154135108169473249832911952556836410883825987191134800472720759578616435829828076436403339296981924581181117003201519130358902535533276496444521778785580330867876938207292986613113878735640637534398451458092563181394632867729552954777158230181612872862339526091526371368589904461551847188379014768830918602661817322711564285444338508049578544334338549270355063574815914370838953769625952766010228428192119184784926051447021817268422741695737372303886875838835268201720019605140422019857403136443388657083509781189598894753327162177599905838433516803062321087506186398218473646756551781054455554484850074288899023824054675583184228999781418228093313118758097394871596361380333423063375039229388450641252731653597253559106386814562882945488807558377986744609547697873353901629294351542002748723260859606416869590025615015133801214814270210488434853235951185774691730031933407563028204780894478935682629785167881045516605549831743339164244369655132585273690935809064065197400638741900673367390959595937225942992934193290018546390348508554796378870506148634261218827661838758915629722494430465675379509768607562603453230472497462583834208155264706855646377995179999553882284548084370266177110887443313112591482985898551066474885890282933954383731682454305272702502701784809576606656224316764611957033947795162432596922917256734515524140762763944414211817787940816039351896331533964672890346190551575215049549397255911313404208575501975632001424644484669424266573773949558902716524220763482393577017820570046147877202897349426571037864716990359052584454449504256796395980878252592464466192440917748727074964500926030912499453166807125626971314763985917566112070706995637709020356987314701822610451215386989364073376725402334032209425717547396906825802749990862460643714810628549286995685323704078482056420488224742647919365207640166353032069669161142478654735171010327697332930122079887174124353017924726110670718123350893580886403474885170949353394775063900412563676602304537816548065513980183966031987440077594562010927808361035857624448386096294743341653618702075213179627197270312444627300751399693843067273659007591285964981254464013146462651839586696583335425641880284129189129254789964584985080626562888971410357812651250430907181566884296955042884151884135764819485526649901711864580944294145319383824061466123700397720254331356821506547605011912971981378567807048942040314581663267749684778840416407867313861750724371697807825921668575869919719217117214694365632522243672572514533811239007362281613551976673034243173377336900244781184714253815309251374828681934476979278048550332210526032164436351073083309078591386587399450904571130032885967982671323878273488407520211536243315357114995762252803014186110548767956867760092742028138217778637617327196989204698496479501925419874197709362455952963311503354249204376942654120331203633253514114301415014963333026085926916390144360047322512272165573143494780028753708779127735324222104012917057244274140739983666083000281382486461706774267351515205816223944841803375529234265046020048266792358167619324955521868946717452516039526138498589527113607114754079045962249869512082264991891155985981607593489411970127785843721167127213090083954542457511703131573382804624555773206900968349566768152160242856074552791634005269502869604932486335055733402621166061433775408255220443163601257620663485065582576888942645857014088084496276186854947196237323630062265048920535127400222999510653743412012786722065447702755371811398953875305945586340213310557008420386424169386837046067070649122911280872718620561546367303964924401548313452837936134660677348017790912786048928988111877416790644390160823904985700176005770364956885776723627173727634623531602523008881790685968375935790027213633476827529302925006487438312517543961992295028725393931227073182386144837788241006730428302830687120416040920083631199354035856762992436823135015835821278628953750136624637650910161351987658561995606956786697654465025853911694161871518183570221982988763161436785924733401105878246085012410696732969093131566164559790167277023968469381699243510647726430639133767307561039177564750818107270210854958060945944035627408510660822382952326744611237556590797011725678303446911809227347561738270721246862042656667331123893491334768060961384983990074607742980730278682806018350885760733414594084660313095228673356358320763479151963013915352518717593878982457220197253717111022763688580275722616699181287577437405051728421833476213350757989469109954937059100073640605888562755145497721774508989576588831540130516465379846187291953729069084586356549212524705802037994412995825179451639657694218751816540680832288900385469843638694758166152086021748702539473312131312281005978478088734406066799273092216601743291106912248246977668769758713394782888791883610768494170925746994961722762352274508656584093657043788579618225217589367404025726618502397869707041958383369657871620457404753494808880158908930025565778953816633401051727389628435736535072056634648240159432981792278315108096432455760329981680434571746409470828010309082156723961443855467165607219905098258297602789020487116110477817623444867424786375383191039504522217154510856820530014154562013420358176186559521026837786291974271675247199188667340659466235179628991273441671294157304372854836375526346919159209876733744909841669409855291757867308684650158792660113990299293369111916998984029555432421807089459385494235495675298751974699615799078898219747705910759466824281898385205617267580954775553704858862263206362194213710240458323107393557079302240384619840813125128181039605702566700565965656380049970703444524593752456340669137492128832091975138896321759712138231270710933397694717552351152664062539039970224170645888083992879351796649168246889683721716423017966192270584898484483424998355207031699601439529240612990868607276662100084745611770529281257270767150664813409519750230515640878449410499058069770792993627786819257132206769273687009251563050386955563360459210106033782230587571992865851039839768644828922109370539603074786392155931657558622748044790292000350096562424949537675587606829772251509497743852739530578391204960927270585940359199327971058704926117095038859320078046402352949088218667430475137949065250169202434051545059282155938577566286271778288179884347615342181484425936757676957775159981995270665312040799875289896552352675983289338927881896308476505175875594422283931384781977642646164278049366315752031323606165270043648310416466675075939828542176141893061959998596456049992407587552243970588677556929225929057281408698916815419140186526508080954006421421783260785582836659242516676989723053175624065050040027131092244277490202918194333894061744734005963655210574639561721749586616851289777331126826650257857083076811901798904465648823056638548507351751364949985104245715054982742705351045510636893045482036659926903254118483724168791856238268785226355090540430724582373850906581817362133688512500688104720550463633563032716102926042763173000347279087428159888410615177685543353429132351287095914794273524802307973540894493275289071590440475695695837079213841511441761786185974406344379738683184414784298071776158974884591820777917753208799737767301407501611816880845395237043812163200483538688733606904288459217783036873866670103877358786364367907661536269129753782644462854847582347232975891450578964911574559483452568808710655629634399279365152369933748554479682855153564979906964112359029149061990598143499083983581713637717114695856963268955040492873547400440929273685122441847767416067221459515582034691455437343529799119926557076936485646678118143694197873141846833205849326340911356968317937141419073572919105045820547992712711097576152028521658534499743704355092334329945655213017689237383852884079429017574761698261398343780915588204977411029054400360300342456151601297014912949058416535824408186114330216693871355974400996459657253952050202194009901973188954803376915377153435403685570061765086742436415959892944388099043263188152428263936990345223343279556047163322981997240035237106520626669888869245112938662183212425560073622386751643445172605007645088581222571605320058310067992937423065196233041960814786783600166127223166309325396625345487014074298866086639255508440564627143112498440170839924401852467885347022383839110924802040184099024254775371841710838959116066430070683409962478650643949353015724914141557586468628034564062705012899703793707416887498579826740339132004760075143535624094903730532025919688312269126988930300089281330399754619618830482883696768624634501903046796509635970819838191397921472071688207955186304439468280452724104392354590566470197560016233158255655203523779065192418762216818169175334358213136427280551963348648713611390834712527945743644392642478532182981879834389256124837944734956379607897740801456040029135885235099151514534959503950654297460871781638259078336785183964636503609781079247834983154951917262700072428931053313426423900562405320100497205209076092534597063814417082466216204403994051379207021674581190758460385830961499624207575122967959726284800835219017687760817142999245831395483860443096012718647641948439281126041104940277895294248767599327393238026907012641706384512319543327859859133350166499139743207861534945367979000647253827014863821185931821284744693149648561879333060970230211996759296876553392472962199214392578084212633716705862552847985890731057483965094082541127673566723023534006414138435596542353898266348940667041191756247067571976097929595625934273044129247009984241568873331752169635736573290685556513170822743126989099381499235595362178914541775543280241873047619765067193978492731371101307310473912688661190151467850678213104795609456069210893110363968616776361504736452093234876261471555612065103496613493849349606772030290437927559207955629638393673823190000636549029794131770877526015552307878547304095166750784816510154135933663078741544757591860115454977866086413197961225298087983731129937185148149072947214609869107525704811101591198413901405139840028194180261380022213710801546250912651531597443137615996906531315457965978007549225069769016147462997879172033752237546278474895497699464939250606923238674243385986829214628172678131149412017851663344452879942421958060488538318382265763366317791946270484033687715721030025100141595419894215412347012050471865357592179823551521967970189447938866533258225322588196946556924422108647427059598425348929021495924493792962517604383477733555722095072054901301478350662357955911675832835163774888037504942953235518399700848274934272869258999577598976379788553183886614109355243029200553850187383652840738450520804903554889960629663711281547515415228470895426924800078893197567863410558257440445068308880535868770826895224198683920904180504871828287488317202084737481123290231023829101976348138769081840189701299341946309764540182288769502275358641231441494949268264591207774231244516287965189712469362550888832004096914898648193240530731333989227657359939444897955823461157807391707592244571765041454907403065398740621054327705556099299343923794967889135944439686633342339343127226376874901877695157247027364220149132576411862101679126983680354308672843722511582003163388579879750681772515465132397124045174832424116367701668149306706507229836622238039754095800983801049301165148697129624476513781085662806397349312043052317577868064701126845333857063655242687564611507405222498455916643875896891169720514342865953112515331689184177186978186009148927265015968301064521595270776332093196015140495720196274716402131141281042631468868165503834962965124575592775073549957649045108930432605003666916219486866305600629545647140898032514124628921209597999125853714573434031589295908027429071354363345385410782664474938390641858846997830367161809383507987981582572149307184552887689121414558402492581262022554187417012854167311206505387127638805586365710500046971238270418267613626822165590481096987739803286043169010508692575073225555233550663287020538663281048053572408400810707147254787212659848551388126522119161658203377092985363846755755960113187593922735255250857383635701155594827781361836812306027138680209300914292393175551210136722998248003739575142527368005418685100341578527174283822055369708185190052626712879241272662303501814262635242193511356497042640887157811426837327602875463882295358970851472261299510022856201334823672826357319559822846746674064888414589707019258914381150414620493974447133565988069131405753170058599798007009341799968182201016344293324271355163718707258237862885841990891080023654190546323664420588377224640675478420892681303392449367253884290718558688177202957228696350706947510377414585032592812422944705759273149896063173068391390707206059314052438313137514036642637889240913753723699583558527814475942983451750270927600511709496357345599483102854813558826315864045602261360587266485996333041508077760910760195637350793078600766326044249516811261860059564459226094679280891984692995513060669029054261221784817055067835884147246209705811081146094689077636290470260049057164623707245497399576521325277434539631793238974278712820682107205099184436501617984841132199586618279137972526169710493867507212468300542909622812758285474621455357979925423805424874203196414089208264252962109757916008632598469276192711866148504914713257010776522572678515771583363240169876142004045471177029707508153993687443335162631482581252151221703220896322881862822789166478477427516880090658473792257618826620520743425615725101548823593686832411452340666818513168861871638541765697688620456116466378142141402049694717499231925912468810001839990295720442949252752707689176204047456340764503269748214070075593896805974515279205876223634210535170717471162401061174731043340778124809396542885454477233000209384785514914228124607151675385731849037709050220978324136002663023073828452520194748572645037174905347807935177835135222351485947594099558930733091982938803402375648427297408500101262262923891987877684210525188608146840401179373979602128065235415899123251733099996066854643054852005519253971665141146192923778125441015129279098778053885216263826877184316862455078534977159974853383828293737565897677018697250485187624041573852074731046390873101185530994067262110241011672231052226894949447344057514797140112604928868940880970171245322347013371573722311015691341889277020953467441669629782788761859403676970665926353024844656235987569156304811621842904900724403750326758922538503963307642764303279624079785587870697050121184234736892970010183893788737435088700732070429812983718982911711432227419435635545660440552388376945839931124208170868151137986657068514086911378419314773488320064706861783337752241903744704165850781130680360139762466606821864655444679056405507872951055666135573312479542060817390032209273595291013594854389956932744692908160208532670347526571417975776414468239933103916112995130132359505514740533294594970929457525396822483567317509196231303843566532745224424001236034482760297310039307889806956140564872212258144687917501831833790030482198102996122278332914841727467745130274399416902030869777547877625962796539439792290750527582622057238252261812446240865756929151692255643183858817881927669177006481568844323283841847229717080422971972335074711610062310628170294870140436278870564748775874605048531669993023647885778993086833626868394687409739207441169814113882278220444021846268279167604695653452934217813430119173072927874547071681886878333917636436548403240826358852910398499744136743706341960053979360093895610812421300397252509776914700388420942868228129589517662780105618552725342982707637725651622431789988779917965518705495973566688738782235105717048282479184375349542091428434097578973260558044555654031377845208794709744461013434091467191710259823302275096584581402618514575052081211127491063673212862092391596980704916174078687528529281199766142756865040580902125972367560275513833057916658417959294088672321428732087063566553445476641810046770294695509502210009794602128400764864661704067253211447033376661097124844325967769859448575901801906051345500750250775629258676338733228330973611053937006213718255107261859691265654259046359852311209337299819497262858735510082324033127918930850146594025758304069841982977037536957698452735238988810276168600406520343898273845496133929725148684496453254375849587371465142174628990090771285202221691004023697043706235317206662901211924212934485708078891896635363139300671607144077727627087569961084316093283202594480722324614838298109779933077529434267700646008117727022017501349494245024113341861540579190211341711115742618715565349455726561159139438410055971159015350048610093095257066277323693947651334207210549383557989747614414239319645997719684620477010057615714360637403781384680808470037567927448717628904453808658220310502237218519606205561933870832907517287357084897778202827609746352316384298963624756432870577870971185349928622375045232254420715253352600531885685447851139225473928295368227752127398070175036420304917606954960758705423007357234987548657506083170600844606946622209368612264285711745823493161026710437915617611074649514590602013137954791463213218853493175085469995228978615347323054994633608031522293993834882023749378476335082427773856093650104360979936903170134972903578746647945380676392113356984101825615587943045307295709673859891744094401411904941043271775395963886293496594305115821946936792110574768130264858612940490339791379478915189047868238255750559423864258083637809267544666603763684766387617419330361522111264136827099320145883997521621039228213094666179590634218699272589049925443501179755564902274507886704650910219021543683728768450073391562140433267191375310000540993210612172455924882829243527522857012757864210644598776234522988296198982238222486057281345958426633645120565347462103559062243042311853263815323135064237870570552866186557252716683362894179592343547614460246618186289112333948422497733342767178399080322720448217933355898759994181931517885116790908613153308299901559677531769369109295783159548205226896026786258764377422933814025972708936926611179952565119250635358407340878802062219735107037669781588191406984745834144409071143992316810496513699708467953722917884111875558635507643942324077969896062578245155651973390605465562152987163422536406854160089441847118026600998895623188366913137717438718983962361180367044470269269723579671939866321696371431648265342227229135975130994012849980151842241224959655803623065728493975750080044211727806609663844090381508884713684886704684192852847689740986911629682712171055883216693848764762173176619836155984133492780660800875901232695772012763342530686655514939052042389994212453496336598523170796319124083144568381081250049382337307303750543836083128841757874185909487956506728457993882355662391405203000001266193125868445685298120475309311110608587798044649431919683120327426215264700597267754231605372332106483743448322456847170329943812670466835867445826677201801733648585570096414359683091515082775930730637449462211841942588165316118784845090078471100353117965768165782023668880472671935528181397093048257096468268236013064148034488543959710956984654096471593416311140723636035783870523386318419108941312384066044102039575139385521163126900156179660778275199059428439548391161260960442778914226977160894191874985157872960181749479355227937674488236101835901827464929350972802520324802437143371288750251343559943702225611265317038468726552361397595427267413253228824713110290673161119847534142665901331667559799974849138734695346902482217546793404599852572337837375095579287296074659911711702255402157804488496131859692231594826876279150867293472150635338797014851236230828078855163276399865351703153589263053737829461841128376190018938553689200001568230958461469737151177816211985624605497957805503428602163364156804878891196424783367330621178284005472348061297420615337840328060759401577016879548526488451447992519761986007692300107367799752652657322494412351731993403240484042369760825245861544513894092255434129592577145641156267344886392994722184579112393819521320830219895107378428537339553277290512608170963835131387170705794925413774478017673993129328669868643746189748203005045050278099180870575873767110013829415770098893318435898380334505488919341433814620186381676244259917758336134606687432625146843483620027887409556158563687377560010079247118357041616596303044393182286600240161572590363952180244632800884638044873384013887637022214566926199918669181988535219500544308767034428003435050726747157198251762556549255126898498798356036000526038160702763182249021173132193881860875856331139929285810126290797049441345310375295163471583467975270793299318093676823803179223641953239709750672341838362065825433969490646031732911925332203984611420452492917012027702505825686328192313969334810016186198682136454840197923006954866026311610417580647075681376560580552638160252684472911466284577456057628841913508924944584995096093869287097809560148287242154847464523218386800523353728218160242834079796767953938502630642954626031192803225088497645999060295610131510030151219352400111984373527015896095749569742515688494632247115632813039248465094624190439788977571434884801313000753452327395369063127369265668845649569907173558711778754301049840865607415341529050774586749533213341259850286655995415450015607432277158137508774473305485457728530016124214425003452129481936134267505169896042061384324877987692840036427949558787573404088041404019719288142839760179827895982103543923607204043176481330508193590485792181463595754781428606172189963172585148457420665087708264064247286054405211793569050251780389825509703264263653933182802327866142508509269244655825873012036224154919848808166737341527316117816348294028040752198707599163656565376371703532537635175921763250606337895062287059087290539222561062723135960894802760987784130570532798629322843274707575306791948554866817085957363690297934189862249503288203943050797674602934391104389215183081816114879272627287985057248616775742625054505295298922551825089560223295412034148333692743700138889413641222518441409669008378925256053963080624030243752341210220778751549525528505338324897425048165979392291118625713057759184274673751512293135486884212154463452613928812609061999232916684060494863521136317708009619079758162677203509710150840612046023110377021904559591377902881301548048085982788850695624106449342752966743271224772589250002329020910681683954023002432781874742907291139190300920929351823777545707408590128562858106430965609804533520627648289285896136473824704286495847593676024614207766063571552843033306290365335430401424080560729107432839774088232491857901546233888882091669625685599851252153235698486983338757264535306063532899926594266176018539956344939903409398127243916600697240910628942164650492153406661858332792064494081119030153625353127372965191396673806118467726408203218676295293484263661701693770355686844265168737765649359355522758246829521393200913859584637692440479439825356352596730450732860701569666751055020573796147179216252500648552200593133957645198351834649485156933237370621788838918405800202330108927352443431276042776996968625767052534139966698150991212113745457836315260969968718255219123550330449165231681417933171286084861876132304646972700634178083628420445068005529792052340121489596096815192982437280251552105907457632593051417948525676721737677012052794296114569578705306589243289198223094932777741310255806202627476666880940994935967674326152311432213379260947294224538800864158194692605647539432628144418061553885801198533075873739642497656714010842202294157490210622632465330484267588747975294869255028769436093622486231512881515156731113119222945071731556828866465480462542999482679946752694371430154234423878914158172458016077047587898098801603706538398252620725817260865269122024421018630863329884596449886415955349129371894723797273707819265017085005425899970716165867779155440094704785651703355645574529043906360248838567383473625553320301259990068936140696272269829083536530739121361570056129522898302108655886665983937944394669435234012135222885505057580244559750732186623758769640797854103149993145308861402602510369318918987391475552087997323821502778548865635399764899530453384269567946920125389973180602490531847090280988733019372968393915914531004343913420769477886549915817497822583873010424776150033203094163073002844273517677473531339582796182538231248286452587735444380501988377401093017753572605281122802435963346879443356094279298817239152541544490045361408626507912237757788558043625209133609881834709291213611061420847084229501010445747419463474433942282174020395052369773838977747212475797216363814870147977526864684424463091705975660230163152889580139893848930917107436341004513126114438310355608029688448294456522004922867327112372411211791297087465356813628216215056696004244706665556808308443212828637738719866492772411573336356343776619800052265091846280148433390083019549414721610763950482781167757958140437546801597023293775071787618385347119521887130011688692156506937725507102522439869407969022390534634140448365143180891239899269988878004265492568089549026238850261327439362738492345605051711238933057893570604813295888732365447691785355655274811800374608403285992558744036447156693136451746147661117180087219735771131070396069006858868731032306413846152523834038960838300560479103788992905220688582323817390582080298926224777699117798443611946995698442456786534297632141535638559484268268403976077903920823254099452732472716866451095292526236249505656012831095529915356901247184039386524399755124215672689337158587089331597467085308365140572605093239086917958854048992065963149497512101628911693820439236229316527184178407827546718523513228829665969864490098877430891242789097819900754344698636850455049181427645657050251986864507137146836130297108646647412309767642468448776049726162671720589944842748361845893774343880854500521678252712269479360900022117194582935898381414579702986478811376262312407964857999085423655889044819060524409593729689464625798278967618652431376475736074722531491730646088429033016290433589383912438253272287008476151470333926597990938700789640885738963008011524339888176132599323182884730325286253444183287477853586083388949748772958310776460724783224345278347453680946913949311975847904201145389659451515339249920510408166201254614106675184186710300362792187001720215850187092840718832927015620601499212278654456833676568313827329581384370414411641944732790671046293455314532552634272647265381785445013889602476796796859222295968387198843590442576859013903317210439304693894254474615153746053714402925941303216126237806872577898293182138791710373882765436405633271345902530145977079743532444855763197526805757244490930651040727507433797942201088457686517184124083634321155256596042543975573347679237145781847149012434569715113101390158215894875919145649323128925035109675521031449004980229885498624868880369692007909714972626455088181032872322185771613290904745374581992327578829784891085716664342272844555823267808124993647595715901888125194851981971258719546728514140373206335155366327373576519068593773476903577876333826107095078617371076766793798729612415233292029423030428033865197101654818002782461622987543831571706572127803467708289747637016080123176234147114777586515781818333852569639892019884822255727922781000290469751164112153846445631310965114244175676378548005505970324613585881118289343718303143871546012662572311618992459750318546359815467767590357542891055523886047711002215145780445807927140046465392814265518613925015981960714451324639072767010446121735887127683235613449211949081116261279985339785414708845252257175719219948764132542984780541100851431053507664002324483270945698324965981703569649117623208016688710676302611734018700171004528952967010663764927900497331118385441169317543694324882097825972196392097774780167355324997129449808087071012306265825977086596097063094971084091488621269177323048189410463627649001634421614727005716062779990593716587147458177127631490438695664114498757735141268697288098191250569175852868522301081859313230929841919190679059014617683080496037057945839563295394437133764936678946082279229082248243298700043599394733011052520676701651580057519050291312651522368636259401108664773669275457549333345429246171673028954174379593624237002474985870543109241482175777840080216024853396529068831900549591006360182195357406476402866716994174453476846670283535731051670482577554044543253073691796045877923517109812294391307140601005533339436798454740687846004685690488272525477705504745730169518586670811666750378817228871863001877170603755481049097728533130314393410670240962770092712041282563574625306570502441468558443442688468260061135359320161069550065409091672686282786211713512630690485208941340825810063393854360379457123376059090826556568572976974533071916875013798841498499751170980905924913836065307806369681895867400589179792131970252568343700211696761891913566951469026684222739786750524743766474935346543638965915027371495488426546046928641177279416997266908678459439234027982188768474061426870884165140030030511114860384512119283517691413720930541015385536639886986420743435351062652989189749087847686671677321120101526988420338224364481491672611589098002715782468724968887260051324791607382207799756362826709297369482652679969609053030731068601803769639782082167944790659559379061299798550139417280233604340806452687120091367299229175797854951665948461310678417803090854871249364389084227227832961636424338950730595961649973672672352087826588141462948575983984228031703010394245358500442149697996332089918881422426319397952805077236475377913698557441700171869717258905923597006091167437087134325389154202534235509412432609131503695399405357546803893592020728040104743432203567144029342524424666937001637405567837243270286854485291953954785458587555542633126205626157984581420573920076363389588507611037367220465522112597127804186480105628889232025084886717613069460524013944765386444951637431714421961287100218340361448957180409424295685386040666038647126833300448298542519223151267434937378090524078263496248467812460241044389678509396300868646818943793269180907483168493589848203515124073310533076337923246133660234477914982848855172537205516112718904602609267032917217336742595356218376353258413103938453113671007676008202768137033156145277352546351764380356434448194873028033406419846414518615027316231314143153571365007139354591079408317089456934607555236638566255576768169377248523198530747378599059533937044786141205521048870965471459301062549113213517187107078739180724699794323018289733767439354755018740420708150647271889823506250496651438672100847323044098026913062121602539100395601081447291942922260746818027708559148783754898655449396531286220868233387760057012562966032978298156403478087630579257061440844445878238473351494819103002248628121236157502491130531310457699356053610551806486985903896491724939334354084281050175110271957862888383701464742996027385110545621783027095238965734292360021696090993675276418000801799222359089101205585074744200412104147477801928073894059080659224865825322084911228934588044151387926694174663961832283544122955144353525437907664955059337486822279084581411532476924329760872741321884986584288517575273380547043108247515679001225261509373773851145451478896654165183025676008241063345046330238187804933025757946508791807215119179620329234955400632234054760196516121283762422471659244390642685828904546489729695076705797306711792372625452821668821676498005451720532739198827479088116553970659794193651118656803609882745624682730699386898870710417094445806333076144301181091909114253996101544257350256350486333790457298456166880197814293100285917649728991577823952966992458879102546168310974959551657907447296997528916085927527799436820851742406167599314443062948077662024726433111190364530043894700292262626066209195613573087437756811122448207360627913816505790370962707345294651396025530943435563570009522628317618059695652673641841348445072281116294509351837477678033032156051762638610112121394239115503829261379344408105593839801315330358168456418926869067602852109380271287684714859167433201621329630369104389186950491497303660884208174158890512530711056958641726140165132582273136166116005664351201460616121471098198735118727909424902560044204450407571755801785826114941382233235654294272029382824435513674201216923161863214273553654798033512013591826242937041087059525208452448045134089725283806362819359412303066330205257655467780040995736154722900795503679138932311166528296072511545362337715552764197746981108241047653287746482540620171758278773748608186383693323897412308572091846341736487606351556495016983879986904336456377801338054644801378118843593086731158490118118196205722240026676052625492040251590725102333832743364539397976235466883919859877980474782504280883447064236275948682769822777102090138317141791527054582368429145329968228836006206926202292045087742076093137989640979622897840707412255529486005268199181343553277214149849213613505095159360532699499418003825950239406958350242672420697931552795595391463880614766883667910119956331183672115159852204553198240565988361523729577201238075866227875913141068888566189725502982553632055193760396314409735034376718410948714252531585470768294840786478703481803465937867568248977770526312921199324809499783543291360381386205625340261304174994663268410456987306498848768073878490138740734483242103152600203803618382739486207263677069302270533313470865628894519112973251886877977095999016216668700987222655537063629134521499512759355534311456270613946734725619448083461988183200988244884400992395243207903185514549795824677433932340714532898286057532539119628484882543412172365456322208036936230392526324171897354849957682174037474871427652708188434979053054033029262771375589969109274608626947383170667077942275401875574149805614241466636114565004918082822245453133732337724804446914639343771450288810873585597027658494333306744210643812270932199389404745293377728966562901430115338287938245362475427962346949310591490165634095285885011208103300287719875761309067848013222589081530457350187962582612966295694673342987518162611078694138418735304889372825302816579412091005581000921310697934698285219760042328678685667861673549970685243184486116551571321015110191723555865841568557045598655103674619532398399083208238789612110063834312368046531039885628870421619317121806676595883025872096452513283234468138157592975991141967816266666270985345364823953935626069201990185541545027912876611398440409416762070314511789962629510727404594498886289030643611071794167283310763826610047806090192530843518530019812054759826504953513446320445426197702974276204871598746844441282500127838373367851122102685904492058428327468087610083179225384934024736395445974143461461286179054640222939773384026478590362387815557031045549031771823638463914267525089110073648461923092841888328133548778768377938529475249900949803720248274127522082707827132600274704563684683227061400875449591700415696249476273890006682244693349738701333207478727371649844957659869092816816422653451457329268648579542604684230146254822371540761799286085979619660640136595674319343215865244157824600758540168072118315707864223466313570339088786821162335369674709763438231975757226264883118985927293482934952093967503338183599344674783836906106660595140733040407761155164756091327293752476088859388805772604089969068001924737217541299312340870036842482692627688906150337916189746226856432927340593315914665929169337658298039420358463855158314851619541044663717559811336968011867576983295086248911927850836431440103038399297330350611789147138044976512974811447191382868811493110879552075889426598465648841525285726143173418379763680828644783397415672608813622264229208921961508596576884422206161515047544826692134935026641503102249782341494625747505026252290063218746312238375068947580813580557993854953072989372850466116827823600386486288393598469813840177646331260150132184018120722140388969285324098681353103764269926085628667007423467855716498132709608924212611223782779988624022305629922552300522767594866639129477215672289132643227977400845313079159737332666371373486981809041903077804936003149300985834238370539963310251055173704545131107218292361788439573163157706747806974743538952854981703706749260831626461107696390693831819919108616237402206288345891692440150673870766870983945569526940562023346979215732555404611163250626228798634693822737820855798466553022654337516609658943988930398975945223672327060475537602206390118398756545370086978792879822332504607350069310520206522920789944857879377298816618628571470121630860557808168990610062882337897013599396652647445635607082579217711580648214175726033679242392597633173065958281151197655425613947823931274806274733218987245110036412897064333802824358367192084740892883118234506912463682259371210150630164980384426905432250209199098674360426765410399468984709381292999194662396930967217521934935939481246379343236240672617341462321904914822016718162813321284358051495142223826056284913107481890014793853934706850922671591855121596954409304062446850032922889172286903247222452601049312553680989897551384706436968033828408382872611604386596962354433731232404331135283842364552149142069496049768125747739494140772650633091507047439036418604358162113968725287358291554159860068936975514043390394805519884522269446697486702026160742407966333747864172867811024326151774871632561216501644954837386899439333034952930094533343629949119731502754312274739710829635336576544793337947059250353007297987466513488561471166222386827042921401049645554121035268264156319656454015331363220174152782923526125264096133405877967747339586071087467698849993636156254653911573706837623481168668376158921657349413748914896921363668724195598794193245291433209535320965086165553039456931738682577985325156791884005657722271211472978667066350764655732557888936584841789968598679377308233203913692090294228594180608661675936261077854636730919444158668969342619296394617402600279232417497787950772184942620196844581012448462998623741768987860854175145829561725304322170132657176808691369988136210121406847742979964806584093134237577945821234124300703988922051132234476648632827067944272183847516402684198282968462903702025914584889713421294309839242788736474644722062647006501021721318192497542385588392668397942610646952850592432222346927850944701472345893090728769430178232239828068444910172527697873595484780937517174479962964063711716388479268396434259778123103548469684731104352054368949091083505594509204027917770521524233020059975800282768945541528430973615373207778984112954403200167053125025593764499605382679683182224984111542631885219285006994386312070842500106665461933415318090325624922302626047588357942319587520178805690908591111418010187374562635786152620761829048942848327445528462024007375618056330061853776955915163243182352175054597232224148134158717051700874021067059699798951450536602903695009402570637694368327610907260217863237652570837245417836625756364255729433587524236218760407789787395413320926467022104818031036530284472212533282893902842218675892880387858320479274734902131571849987975681822294295383139868769124022839801343664705224198504254457619393396669630693880087652538828082514858065585541233782688310702641924475112527368891093702738347116155301785776393320728111783470663264301693313149914958056822271930252679968666624663243314003154938142796921196541307512024871611657647602011514171985489188928484355528266440208808445121324583835131844806241057572420490377705973991393661305663178272946332680388458555966526141176583651192832165665432903505332775470499282105764125799245865508331216515080516819274156335484334764808002212776263792233693292070593160572756932716800535220438557076710195454465660649458177494691478543447824141418846163506383149636889135493047312029519139871676817610261107649223618406689474794816860761172198823816465461327920593289288254454964802171424456371942557310102466062391037866608865246877790784240296505243752562358314349903675436873290942266941353020766035805555312806664051718137141962116640775149906656373964696913659464130130257715845216336187092535909174909461476723960580845278193648352474104538612323121542497931706146809355962406681056672712776834135835885583460958193409493945154485556822925609460794194665758951259213293598187547888272887203920178492321848007668133066536804729954281579077978029695559220668190703481337965032588477451094206166235767372374664032044422357134963161979205685679930722699180296112646633719533872034666690442190798853150971893473222240239265203356073121345359883748835352372809879330156548580823469358267435140696118103438538317715760506216049445649363481314316209624151291561333933045889500151561417567025153414823682853485658393182887418222181037378857000361488451384253819536325219152123032536429688159940166664935830510610220730539506668303743946941844330338645423703276302263766056350499215380162698545111074287617281685762510703559099450777835483925385835732231591051308501831556428767915585031028093532776901542078032881845796606898820095069090750436243548778887978280666517645170412302074026032316098242020957092220979115121843394187951786589506333936318205646996929786463351458016791453760933157595133436706914599233826986244427355212689597620295738642741320863866067344441798305059758047331524505246534093274863798441573410135274436968294550400994040849394169819956793615337866851367031360466567560160140508507822335812023231703129644481916359223909350252025682432913675146273855851329351151321017368213381781578728306684432104994733188764203618669745131114487080292481636561019428979198605289325478310513822771713879696268761360998638571792527136266318988142833458398717834447998018789587604090496134139746516092840416580483586232879184151530903935805883652132584323968828014102535255341061410920030299946158146361504075405764171737271226390568994157515831332698043452286941678992676736672611460262948130522570843362188984093933781899557882463509082870359009934395856265448734762255186967065759894305811544699234737963973103867015952913135105825498275752617770166759954763181593866326055599281269636078294988625713959114687600810334294305193952118250913270904431591408374854549133479490732231430609455084806809969414076441907011634806822292965388406727976024982622941849021052887209079517866473688598361066679199411674970210371403243212060286854483183097638577192413021842252644157104198474202775296035627466482712671972787537310028263638317724348253358070555999933713482207840769954692629967574911696018765753117248649720316429712259949723648673868794354793661744898748246941253158915512246302817825519279690144036649722570482197937099274109293073638670910831132772761285682745777756882263004697901483167473401257839091850797532205347005874351106417138153750277462378775648694966292529833096752754615722802068865036372523716473947395536904833316683304490422703529890572136485913458208463980946831928695923739724632553414323410617567178033249885886425353772836670046255317927787829577680891230051116126935501746264856100651864058431878064063140246174500507223056533476397825892748108009244110812055009043030234510160305686431606161746651204662346824279397788666754232934094080316474753074450994215230494638974955460348436155589615860394227586406272805039642755877187609946886700125302280201915074738912699679177672830769593793696004282466047993087857756597403123382132658614860691726604135817942043080635211945075476799720177362218106555679164930285277139988371451793320743204134690829461176452941110687290989767031669226076054410865686478373722341449495171017126761150021507258401666338853721596871593736515570637253226740975696650101380558385372177717641835326545271762787420296916152391459643667421849525996809910652259735742485547647645743981372146735915902915194159833951745299547447530862293588097233118471145094233970811860733680854341721346984436501081769259830377541003596322494279314489581939266022561451232643355727616123778833119514673308995896766386224579683766005503440923760860149264246300045301203551634136253641208635742176631098260382278939790280527818772420437147795243824504442998257211347107445829977871972510523859729456735371508030369025066724295325406188994256243785582094572479275318652993191261859203074059747347387185500354230166790521189383102027699290592780276633202467677189216858109566050771694281186938749887773213616591702628081292595190524647231822274466372611492216563248312264703273678021851767153347841335384463403311915266348779999136077240578511215388419458103903952123118215421337630167176116637474636295329476318987107675316592347656455716621894283215875897425112279034093351200436596240729181872503309542028831241808448660914508873905968279837859318065732654403066867554175216659948255937853258406357535461075331406373775756414196376689100838573156173586701787826910842098272469899009967726375873949148704296030627613634777145133187378484892218156057559866802104533165194942185725341909908870093851529133105541545471041634627811789314844111713891736471760188244652737268424426145023963387804537589689655004973215171254411764791104975578915092449996667513890746543507857945502151166803937206106203428965380494594731905298539118854617696496256491340402527691072671599157245002333605859408289387453485808202376577059325303356858383514794457326887760547162175884415160201560497762875694293532158035863977351026218890556459448137885389781293014308007124059626931422793585360198561319803066576445783025886353206935967949744757133772934135491448080433943076242309939785220297658547928322726427354804525220752301872396235779454797202207727483719440514416324758615041190655787175930235963300487745491078123105437274389538748854807322694854288424216909058375746242481286623105704443595173292096518390680824444459911074004768991130888813646552148940903464521342064058233745262482926968923688969863803821052591596217875293624051922720005775977403700995108686723779194812857099305711865886578416163596724409995284807109434167339628006559316003456696980640686497711222601976718657407919910307167580859096675244591378266901279657246520340822204792448977029205297093389718836167331156855428026294582903460728961388135098066597609893447707021134963146210793239122255047292354144443063422189677867771108586174346688404826084174735930316168423988084930004528581924010742427018659178003978514863087775640175574634231377712338307629199566821654207337299895032332001305698519691026015929146335085658032649133709895388474303055211941070136354237802321522771768019291873796934850391512259709391645881999782359241824107169138746648418879104539468407399783291471163583980037726629634930323963080139235856151200560657844648545340722134053169458855863370481635288491114100980642345878310769196639265936590632207271601009017254241575997376733344267774187249525622159297491484004311176943126856326558400449040475826060492404545607742353171433247741262299824934621720064644999268283920812589593224166689850865908399641467110851336718884989815302975397956845971186838052660313188074362308397911422514331459287672761556791221695580730789158465381103660085240080087790578196503339218526388812304633346693332199498560516439637631693798029937181932894070697295766400142836508089101738078468685565731126672212759789195170608491235679686789693055763407160202754613816114575112386038653981011383604040004534770936909166280786366166323390821145805494168624888815530691198958077143264838618885515237698906552008254871120846099502952059340576641063836491602093975027079407320383952859663151907423845981513012753247876154015517647280571553398555725749399942132594981338215236294561838696953597577691103981130645120955374225295781636958804609704904218817698398635031317906171104884034809614547519418215454503781132836781808812759166279660116504929213715774304526420500272140224363461152915474548586216885006125892736500099617318237630424517826111488429125556185455443375240579049420471003783295555765986179880321166857282832966623039275264943419229384457297264455546470583691342712460441749078560778239832535836716065718592777790890187948528400304277483692761728600048616473514914798758675803461042079089903058880108987413068940561569933394902013942579003168239612511643991987571427908347665020740220043690465127475662822157821812884405241370182693959432382247585894371768337102135856132484509191986854544608423653033718709662459558556579770467467372620919754963521067058674556154093072309326102863960815689224925226884733967824234564672845835880518709076102455523074871056088079924810835615084140329621510030262636881419097660249356954983515391084100337124706635924019598776042336794263838535059529957983383508624041196345276760496419509223493814903466138047035430077084511052775768586146691803106103339760981117725714241187502397426374537442150101123186957014393104671628997171211701250804378540381475659391847399027371782451160907665374050028801874757169171280712211566562969103512988269635904237021487415379846981246945286727899586099525093131499792794227893641569764801741633145167111687967447923200665772186631004909614890150227374040913295636817903620928830170210934344601145112760734222810753945931583104010698630714766442934330483085552354804263049768817629624300396177494558631877901254574676569543478503304880445187878561356124866342467969218284456927461393047384878684208805290851200379652569558629213076221090196988022497987104045336714568541671931917043925843571232827975686517952532536824239710500762037257710373776833699500449349806972006394142572801423168825607748938533210043720482620087500649915810896032236693481710216453175502976637850546428735823204381944431349718081470854788378185158512472184652628582972931387098634456809043357344831894470844755480822598631694990123045205549552835926647804677127970775124266857534047195277799215412209444689686988700542491100518040206076590543585720279400326636861792382951926508658992606220453601708682089630654966879105650248312700127619278681680993513753594847745514083130316943735474266391404329720458156103741652920062683367324171159777433656053854943827468546504139846092680660889079580568389705450298148590046557848063834502481887847932969803144414292291237995530786801254586666144020474960791195983319476932285662668340015631982667033156698503324546605449808839655565197799923209083895005435363062636168464224892383188013076877557749373349217373050865024450726465811482434709704656053401804766222459323041552873476030071097381597028375465366273966615391748930913144443428182242868630186438606779814439683427376216789497157096381514546354066020661888004335421929734303892413642394165118241469724288878092429810831801395126987467068435688834613275726404915260438631590272614473002120355910440158007030445178546217272412932151783737301714871787323862205233049125058115466443850076293982393970156852231415399713530734813659497646188877495649863660125345574566630817059751820841120501446916371441073316874861213598747677094509974640183379083516086073021403206550394109542546971086368218276260682354345313900727392731611436448795310683964545433618931328689902437199792710867378964421208933699264673178448911457022055647404186421301493268789303183827698426517741885290861308625736381342740479345290892251852571027431983541363503530320660108044869751045604770101653405340589647417657735771962528173452323178120348436087522252184861847061443422110095345376261200938754726077433148742614393501014957688333503072155531769473763948631075447145177222096370427622767461301003275835699728724861856535021927822136641209194994826153595224068515157427900369859834177150587161046324739814046039303113318498288638649917469716790332238015305665521532478246986659757809967609699137609698140082215173118392458729010844707344561709911321769726966393551255428667392396595751138742248085469222958666290527252321134216200019307356434449244111708040003672488236090054601225311663276574653780963578912482510188837338369756461653763103053697227669740360051393992250726230973602587477014574634994195475634296571407011221534364679692974702773868973804711343547601830438288652805824852130420178325576192782798304127659497168839745885348158793110231834063614531260307095238626578860811060461786933677099831655232789598698639359614670843855710765814270585926242134736837106833999496918969987424456365563050445631464607089827714429721432966814187633766824288779312927766656388729572804957450655688050016019611728085156517589310486711978681823570613143640769686726723558656560624565295434196647377362528432094132564808335065343177001271790112776043569287309418303887514217764982681737978326890151973528305362732313391614342476888220294941794513086260483975067160259199292269511515516708802580042684202732137842657705741529264166980681079216187623861473974522663639658062410113746509506857413042066526560047597454478733954544207441919980456159174077591561176776722853066351276353645351760533294605692482800100113856614858140174869465504781371068042098671660974079521770808027452603555212956107862182030604228454392456821949468244694565376388763518498383708370196744073558825476608316640017170861228169278491036107087320311396149026257111267368219156654492716259492370217743661691746388604777271663549277967382410612967971627976105151126995857923531348507421397187327056386970011733218441525953572261332105147464141727074247044562882443046409443250259738948525647429926046195945183503297425059995103542684164245011322833273954263969118660661694865524690661724721195725621912293451326115656335880636738410107465424214152562144733590719563244252699215446966861722782036379436653853399647645020842768199248357236200541933489061730153598904709884543277412779192426654257154423433747090548840001603069444025996188608051892640531337679984074711875351302933367543779385674738793440497005880858684019782235451863635170189576770466068494392239190433697133087506299109834139855566777841515975386080085710493449648489923743513243409800418415922638922890783996444496537721959457308935562291190330114411467930255734560600282847767381154120653518534921209810157736339281511651025621893831066986273963317546028539516647211089452052558818688200947906787530254157237080812443106067043881978063109915701068609140072945277069149438564144022759974221456545404950309697819443337646698568034729523010014288155922490034128992884188329352361851504261329438723143508898151422511804042899609715257470154709511483594713543037436827439798509186376509768185361330628178770487893417734717875319551875633365389123623551127807421605514002274781208876371368630340681370954572540594721950169011958287467890867132281160094716661111096674557020521083038958544971074396124947496187361308654068545557543093360954831076112032970837093599658506717962496191349150421022122276729787688619216071295764132592833887121516836834041750879028597005931828446278287935109123654229343631498159959057400199801459807044684560188255398216315899056097689069839546335180516273933823299880974361391522802912316356373394061269301697336385864132819489827470794465778867362732150881605948911483120049375714793064874674771105056065272508142178114957655346957408463913338501459347101993214065956903880030557711341614233018909374978097495537576671792471221911282633804028367778766337059704694509683916238165936167081548254763446309146955199674584306444162104442121023731588024722064557978253657559264186901073677717592105880575571800732316908278839079096618396295568072237644684941517588520847487847799346830578141262776093770961274223475335681969022160947145238334757176490184615060788760926319306512310864558825318129619589594696012093028857429068058313430000897499782168725234905770596285260012537180267053707344446851819011073951729306335173445390283359431632732951089909139463895876130279001670809604474994630263080543899283238679432730052761574383784808414291225655387824891199222616543502330592616368459418845063658098334528199407730701651993200801582271787752141392879425094740831504008133511092487199217781967320632702726898917035338036178027865682413476534220977733031677793174878383909083165533539921504737004454405788118444073397575279137545304943045271782984997073339064181348024335437240865957971771727410159833106670067812065069469205902543332237473094534949561540601745841535299878780786909760489308469978904350370543032968342784420957997810739035651287307030627363456149403471549288082590791163437781739210873171606000643736483000527957969024217875988468557204975876157911725902355499647392887958438387307644126582629489619146444425491474819212644070744132313787288900718263439065829451707531909707579538177968478244783198540947251225372028319718958580346076314627293301991453227291722845668995682932892510039479072470191224014945771895574910144813562788989107210261248294995623434040482928467331919143292400339045246278259273281504182565393688415189357969057434636243491221770419639870287445123932893420711698363256695094160172651619605710600475133749207884666031009420885285529578422618364517880376062467610984057221963106264692279162606152898619958957340772234799064499264722475117634447392847518065601006219933348297722433943249418652594757644340523596576946388446768334684371315514374399264330230447328671003493024516099273196214496188937799896926600500798539182718859328062943971371900712371982501680784711229926005464498955678189305546068042804966493556179540421041478820809726112664048581292374726254991917377070381963707647218290718103387359224208664601605377093263940148542949928986677788925450572435008040022268888129352392880783954183501348086073370210806459942059312135533711653577161732403440602330951455844020970713499436656483755898128997366093969841493673103663135365777746408034673824814676673187133858518712702789687426831207541335459769554814041854415198130752536055228584170665541199875849339881934951265012246065286429147486979588115662005255532429469055057932347838537574968972811278766248785305273249966808851593442944603233396298126876854413819338576384291022096874838663477822343137511175892516450819529634462347235481892683377190384125668147238996142672282371228738948051000429862899677212168125014469884184552154232931211735977280263880956857024358090595052185958829988275854919472368717617933191007876052637442035873623929704662068208279176783982250012301543688346621503985319388529570706235023917660015717258669917426527701912101512197297253435855380109228860701342290383463270823975361197892625769707039809074440876696967506970006228832114529506899963086107557189522073901763807200745520059114949131227458247139086367284443710131378689542178620883441768231101243876460951878448522143620139966630399877646801506033536977666641790616828908096534264685955748498089542023257030699638981869972452338740009566999001848218772454434638844495424503910094727978436613529376074951317502001084363443322663971453523292786027953945564343936168453393072895953815489418596381314542445094869037143767469140242352319010981030664433305873532391792201033272197520886293338724688833453979895447519660075537400024297537966561000395156493840804723733004665209540010350009657489974916408691052070165149996274287307110532165692925331702969130068639427066481270945244850394685905169723479919333205321900342397680696856558906472749851292228528053795532580059121314317499535411643835181262507313066228923997859398831053730169959675495544004920284027127884099158270886833591144433865813795229461592420024629132692313002636446352472478730228248718402202618003740578026683355185208900353005926815559630963449769159538190624976327598402385735303859584242221843805446870496700134198968742847534206737559575067848815109303454039265549978450119083760650544137698740618625956793113130610618301146840249782115290422775227268630235529165148117026181378369000960430861799279877829478612623483102064502871889303336192944939237278988886619295299893436429330917795676534136135407096589254334304716368963290032767057587573396812591173078399956008209698515455571470223089331096501308269127597826329409911710002347810015793598091590195914976548983505244595714697685829148965190701850058876209286213390087380837644118918671679242398756573526472840621219033065257875759673992318892751181606879355219488164075306415746820880145849370935027760432119578692207619476547570570788463219836327952470545822291907706996848612177301289693093566122372729880126490213766539444394789865157189277386326126877106998533037849989410291149910034877438105075591771916388583741624053229967568754052135474320226847075353873831972068253637924067996422383207311611508863690173439226896984622496517693576844306628825884135653769435475060616616231917383072606339248633719756391891450367004360392458697232569803600712656184817492310967231113308807721220702025953953578105668171773096527338112871508812133170481978185913904948322216257238514891454677642567344761978021648866492809837903551944489002427763019104424056647758323095467187585009217408688182097339025996164659803769711041919912665710689627416891782508722338955219946825550739176200230308353027417425961181156456452179201206775148671307610348706651756909661275743077059927978890948625162245013921854874468248483537841743447545791803119345860606294850500394868980977542731678306092968121589674137672532959164851230045574912399553603340139107680262082613833758254031528630725324079635407479268710076089291722160933503279872361494098830395177402292659425439082693168560435809909322974818641914681335414829525321800037970680014333297257172625370447797436893527506783320214382722330124571207500380144915077170687929081354886263520297651676609410609177997102497280960758383934846160311041914895013121597541889798113671437409489115390277433807104976497783393978637728635708937921973325777589692218489532694602868415706527360374446636143315284468970376293049721233526751447192810931257327949679209564218459097109966736837394807047150803690685016856774553146925472566156434779653228899625419349417406268769773778284539969818898604391461090562296325174121082502389245677330514532851968969023551178944651502022933610171584696460233807365043302104810586380083887409604737282777805296072369236721692903155085374135036368103011457308991477710650812699695910088561377662966337797729753562604446283407166553349424279227979217981853079088062408646943295332420971096480644957029429167428772268031463064066752545187487386227328952264675705271686107194455171940661729001134648007314034603832403828847668164868971584056659735148104807681308089945516282136566340176153638959198855995310360728228739109106314746862587791738688811500968045697135182420465940260492557548623110374030799954371579885026667720775543242972121434885199929163640397941375023489257736895960231861427286452332365097777479927598414552919564373299614653052781850470193444350425603066012426117832067285992959928969879946562086477172976072835549639013543724362305013252842391416500263014368938489148385060341249203971314108003835606482924667452290628967611316205826922580485780591109518638242935600518501637483071187783669597395968046862188074928713097932519664591101783189384043989919947905616831831748365837340876187712410069652823647920542913273060017186718461967339016894394580223476852909792237500170901620584517868192073039808795149026837170092786875752585641231274405902633726668599229273265434399972378343349186205065124908628959657632734423095685097080794760161092257144898101739859182550269006322430842414865668414730974680210166602783547167530484733713516180369657650474112640573639842030737419634215327455515267138777780246758034579970066980199686005355987354511997250251208559730230932589926206761676546893318471366343661232449552586936301262364507198865459328547751368752979414011021843821145537199419364028721710695573805923275695999861053563882838677961851357447184181300811764798175010841463177231884455860842952183603250154782645232776252163281619499045739802230612911908149022113574553375489448015166295210259240203154221214972496162113117164949983237324524156117745203969282440921716875193838186883749667982135070073219612817588578681965215915323871363012907358931674842081360731191282602891234517938637218603864885229655731375380764363229881415240893237293876442714058652375501740833438921677406042426312165488019291642162822066851293589961210265707817602823456179478321027156721274182189467560065308162609349399331096643283928353364687938646222890344184437388182735349442013298496636702809930356981514454878524468484547223081816273762620885790727637137740666464741699454082418067693386566104157212351445332784875787443214213187558698941843779650023940247892950850077577189700765672213048696572761435854826440587476365161981836203066908046139719283883588152064233733221149753363392313921821748475503213593464256006606318632643696872519892871939086094332271486117937229352164950443493914208876168143802708122257263138066471503852076727050937593959339503586353194083297090379838312911234819531635642887959362031645025336127419977783985575576981697911991140182428618131971001448307672317160816518061905302529902410399631134119495718788147315544518640873016549777964218078598383164765832135805466650599362518275386567427389247913982178247759268953020453343029453717711490814736608593435979180846876441658636752000528015069994655408908406344199897289304574561592220833506985007030907430296571686960448676195521255829337560373524318746290451482402320692926902319482176329907059397969519786551071954467412603415017849731882249589619617076234931453599212917692449566616753015350308859925224984537869630571087172450454540229544604693080639681478931178906022502436746875534967718776916526697836910384042857852195277655789533261242626637125501761093311812328213798158498222023688713982342496579192784022992145896621445661230537209209135704850452204246787540266862749235180345446229348454910200998875096396056350106453801026245828278251593160732576961608962069416792468682510046491444080950602166904600976301938035390382563837552394276372757552105281158101048808705739921558453443387960242611396974820402626962500320961484584603721337965977598839590543234818266019568150923219823465579747169420410937675308649169397215280913734903763465109539653774408890591964459526396367436813821354406010879024405135069351872103448760808265964199565957340759630684037443558311604499600795951518527931035604005128147998077718597386311446514786489355808670621506608819641248981528742209987748153524140442776437216556035898128581491571094320263644062522621428228690072512823751283583492828050122501892493444781262130439798514184707925868070275259067133739691744300784940538956715463865588794694755803895700848279022894646821131753929156007510570228617107106495740273008907772492887909097524624665738219163760278019631650569486775381227405667259164074552457807857489276588019692437953168798702452639117711986882888094844772364201081423306519519553091788516162014166501837319040649636032659762831471644740790676351005941487477657177611609457528075981550111357656119522441891228718348553011045491182229031439288225247355092292792573991064765533035138102958500382442184066967422333461367767624938997734959592250123382320142340584277215356968077611856160090425174533664446589149212752946883011585720865460901315423898256527736270415279774051504134945391827769785249522148244598841937695866441643224056540690277598838522067885969588651808623772060910525367612521235513532852785010542340955502516018272089827273972684634896418538818628164195654962433986385684165432141832659200451506683296669872262063275179597447094649772515989199854296359194330850692110393672743447772407409488511303550733109460152255129891564709956271583757388676449028465009308734657542838261294180361131516147007432039212287399171345837196861655631524951003044835264061349312081981302264591291584702311516567579597913415912379800222438463303407893198160845232278257285775068503268200133065239058189945968734789878675085109606654009775727768880255395253505067565302628596438218505763321532604686238664637561668358445991670817979495103559647824917294247051721958007560710515975180777514842030509869900625083814214267876365979044046361978612945402480622939550195536220495279504399160987101542223610927014076137029019987190363726486923590719305174812013222630820853234333343036317341506411517094508473242382277442216060600270378053123456148910228627640089766708381448232601022990803979257810517480633707564411388501773476304415218689949244997162711202562099705894226602200247508823960001663304590812551774165732678001306577904424481908958421382904621167659624320219105431784300370446156608032424646940381721491748379223556925274985156664849654636236308456340748115246245192995410396575770272591138437111608124051332002820539587380772402228451753346755654176795490975703720772758395297718895718962055297115136348441574520000010083578026926741541133757639864354855039830828995982788498080063672935249834508765784657803692197583554193863217920649470024032610712448431520623204505721173473928373928339538400320753828685955690130497359817656332420423581428740710223605881036160435785152253450104668932371802727589342345263272599741329607524300981620011723111896074847493660022387560338143377718237416573384716781607195307031284304369704481185151013069814800390122667109559718983001153097374420832569127712684272536619189005908637449660669100878817841171029508026334833495167485126942960988069269630160598573666425960831439417343293395829748720578979723069766572203164256582745753393493582800429673833400667721363452239140933397731700990016283237855636659826493086328468874052028946600401241781303495886177233074639755208927592282704662057330657312145836786741473782502040450763701789690069435456837315790884279044636517951129517241723778360008456507886162204367112114053740609400098881001853219411205087069523916154054639079788953170650369004809715259744256021161999838305618832711194702930391522690795579598631468200214468030926692764916709567391149356249180535489139365654685401044538504922390493844586861521739542317479019424139320530374018593316506188032656515653164804892366379934019054026041876002307444138937965078608402708500394687045537728920077281341536043097348980639637812612424524774962790371509741361176391196313005628803558873064881721154108009452451312541037949927582046644966103022246425957434608528557721690372901905197118604274329422972087970319155792202165766344246882977158081399984933594978259714208466828615402258325001879147767363555507058419405821736910583060553094915683444535966888059042557306335701843266760045705888293657459685528609360728722409420256825451591834879878857372052939860194634448911837925945319652181792947397897402093568124042660566576662616212127624550517291621984458892813818749110645404717123762814705252197327155944466236327340618298867649853678847637570156308291773346216945563225460339032801316492075147486036121414052959789325427384594743980149370886356737430486504823256083191169117322082585574769722982006848971934336620455416728341972792020323707449573335254651638962404569618893026335587673671082238061016189930620845226849651459556298419261807656693443313103063856817341409075218119874695672395516905663240664893724003609229687396375804078615115335219683712862986786709341541946474083530204990123704829152718051194788268712934590534193953455255201749435679826070053233684653156575704872594081986028065408151556123030867163649092485362812637032947381400810215972610189566938998493279420520474275841813173160791829682422438024844648721706297186201137165625584164437541858900981107861017029329839835307892686125987156632541471334416030872151092691237902100651270634618375170709434133106651495141382193226302363642987058185454666505099928804945920325649673814982163148661787860457790982013942890388670579313409223530720966420487805564693435673252198474254124377934379661290719919311855071122758536266889327075212709776347617379329442676156388759814641089723949793303641389553241177221355719860937444257520819641293962998290892056872701681578001668400550521739331860068361727794979016494947893886144486101053385144147355276519391935084591317355806544656089729415470062035314493908389753303170523625945941804546179815193881370730133027282964634105777936093497306047425118731882060378728308937371105981021366171309670791279136614686751777714445551870906402110964203707266627700390742854250384760328743046418247151029382868167707291938941060807538654953875463735170277215352169498403576763632517991770716954799391243053695988140805223659697688565789216072161216966910628009582289896557438877490508116580034688808095201048792566273863069073723417664860865643929076537156431181756375810209967851773786006782795144145359473205726255344208973462846577170373209428026896178566503123556746994550660586252457055658533334339430851530259715425011565475511609924160531937932347859344712612452454031710357451069355828250742292772526571366885289247868824140081930235776802659545769939567113820683956941717592517770696835998238038761043360116190592700568790578404478669303323722056339519732714144436211112929738187238887386619664214879734739249469285488194953492314628995626671572552834191804103723515183325880568049105767980322069296346846366602155398875994952954110932752808150164612228519476974293335742365613817723155935594638746253670404104772428897521665075701452555196511573141502343138036330381939067678500729720175126741102552773604513185281083305571803583136843872883848187193314712065346222250385271431089537644740583757204746389658526087255144303181654218563527484942102559853111804344809990120053130834354569927860541151539979870397511030348382856694389938547853788926383599907106306803912773717201879420813918939947621676998085511762075523854532315518112497146704676963673555193350402520211701901065388809695306025201207132362456280816686381354738255595699230078817065976298273972728049496939916980994070660235558292323588966249565315638465745826631426563920690931997233429845351258764967064636698298442264656012889087851714291729237628896259638059151596111532013369604157242632352981667703460870303043201240310063712832810732738085020814585113449738975315428208417839274782313230128099829575638176181318456863992725351060046688699726059724905071861955597148219731980371074906129743111631125800073974342192569894431103110426371291335588271754233901504094393218483549349385241112203798506651673245219152944956049674829342752928470250658842107758635209960028809741200442070472065803949469289524453867178389779970985501734215504708892200473170672278338880392188981017585401239652383616375480239507324684391716348814844399064165912732554202456108499533341760297643837668668372938365784656628718904832483867993260323379221212666629127985932659796702354088065197014383076225042081444090936384291911858888977834926385870138462789027736991394623269905530929220068561464863180441397649657348126933823382887488598559678292741814037476970018606084676060919478687657145413954130257255851334469938273953693375107885730044424967409877575940828341016854521180416347153410715803984130414049839818757895651186771459305525096207120669744442741219883705840755108347544196564076981899557943260475173797111235291183919662786443102395564281304107484263095384784173217266388674656692780149493592392116435674246097313864804924392288351951080598988005096102440767291731085900578792291446768475829814892329180438864688989343863331081245520246356371869531499377169239047768306213532272924455575898221432590039632371424559471526943147793075659130814636495333087559584633470236568648971575467395040309018699375049982998880377965783697248145177308478320994451470650117962915217692380630382608547641825433876681811125772826228048904596569178452056224150011010633364091010339423352951086034672484585281794839836920995292886894749872770883735360859950411163446339036763747707906512798525491802049751680580002022966499276588039889728262382771278188987521281420093795343970402974413207634061713359918144169043203939338131597788448855512348831056438644036037151642749285163114012831645276251925485077962520105050482804768128507104739481726059409628007190288205799843254102569299327438466183967408851461595402041676635744908794469745266938421511309249698028531607693557400222182124300852370991191457583297188722072856697820797188111427619856972988927470006915484107324217972543016939467212741160800224129139455756359353675601230187999623953006582680410867350779149619010859189139980744267105393910323860288885003078497017816535738093139792704509588499247215560605559253124503301522975977422490140397496773849333771788287912082256111625755222023032345504305764488515419166062512979658467344337563906139012835013114654632864948976352158570394317188214292351967278002551898301219119979035967841529862471284800600906104901567317398553907063489016296049120431340892632011068165915811636405299309071609736997233467039800283509084687050285092185313690570522135365403479924347998993148454621645533955771284723274587922870773783851735115558675138849602111378659111056559035473586876649057212517493952882762819717000567157540795850487307189907434064281156737112876097113703263727668608140862448290896080365562974974000301675199843538387642412591794246504831476386972946703980355102733262110849535540597167624033632555114004541262791805627818927922237036756521141866891077877044448765727531253802178958061551107475455285073411272399002728567370075558283316577445743026400303280182579945290028766870203484805829200100230687812609634275816862229309314451774497287754771776539813709065754898123573367431709720776672103861372596661063252504104904293913463945267979001555134199612971274454235576574366679023236863210526348444495370417706827000001985043277864657886544994495200152134578588103531103386962462928850625502108070386256759824470800488455758636186292954841505399443104557676204999511140560634485337840500462286819041778298968930242323537177813284612016258945883561441224539564094628622753448682622562479894402285695028619386004687991790634609616534471956780017886760070985409650347644803661654193780154475611541901712804168890275510062851982745002511396292502752857699367808326143740174406309085081893791349825244187273520196522053429661204779369505918083580826166877592383841083586455831019757382096903834181182585054045741261626573353431960322343148407474938225325694774453060163137513674003394843460384051102731555126469663113538411400862477417816049241888362791429169285325878730073297105390334659558019541293308861741279727138608883294278679386242763068103294658805890417664887399735100233189544465001658415801279464946238054980880132483927901079458017003226305414101079853591201334605120829037369868611268161494569009722554881012829719622749002168309792692572391760122756693133515012744943272633356360883149174490620772687726715521029487723629409616052719410573286796640876220274933947588321177361174353790163331086711874620403294461718738395507684355963538140886265268705580525097533765798111053955292905320657056930524990648462140886373260287445212401358683127990333895163372197038560746220057177012093233808300322653955363058357807200814222312671501109003789915624973533835338114846179198415163847159613886458506388061198462601719503543851921611994704297272047810441280436270202780348075960964440172595002149393164831080458932752405214809587293058348230266120479116554346714538417731931391551480151183652761978294393763055741992835984709667235783873767731954916869064028499930552908707380702911934858003440039226109663773015365947538393957888234157996254078148159923264238531941386134586101560091799973006655479297343667854356145238560072874927029583863186581962161935686115686871511916912808776777931311065066313729363484026340865196282467470944887517185337571930334553190105972700126061939547042364717600958643797293674755946189130838088792886851223990703867305133723692615761910438815042524918973081585136839361603617386480965558778085639327981631749033810778090088474199454259534246879187160659768609705336997237645335695286470198371324312866840436122008408498847289650538513390020020370910350523299076993772064828147611796518994982664709737918257215835786292838648530677320572450637290652195816752977563129045172848247398034704442903283709400193370830200992779006415143170741265997476064130460809187432376369069954377806985906288525597490629348313727259955971290482440231475746976156706741724424585660391201736913968811132707075796271018434135236177244688641042520238515403708168261275837726663716694160739232800254349163173997412848595988338055693909968836178402902554225164697952742288900576579823051556379612309347165661671197868856388066488570174661226874916070885633177898944236683681455792787956896661295879559409774939735828333665727770961530240198243356184725865463954634381769929205558728496925996208208757689235070021739477413564132373593334784642985290833185699285681869302701442147430197563731201395454722086993553983224178125583225689240631642324067452811040585040546553440674597890970731415850695936976950693012695089558555669611200789294450812681320059795577545801107339780220476511591069551266021535495967349254367268326465393233495866332754985872310739020466722912790475221876737931502991297044044472393568069473142747378131248059176080140052851616249892549603861262336428867444372972052672457517184749987980334447826163826440229945927260108422501750762837702170873631159213441267432910755627988653718218406916982969120382078753966677455907145951488204192984751889996553721895952699816869193289386545242221215976860861695955445200267755741417693848365607168828555807917336782725001472841990583892519541210913712135638389611929330134174205128772794550080800686383958959435021162784638802872805237022408494631628990764373179654793004929470935302924222802835042512352242902373430329752156296277974766313555606238917520610172684790207637610835559257612333327724187458605573927339957708655813512444608403092810399275632011304704925095318616060918980286185298485813308388931122184668712787871127873136263173802261699867686513419405434489214610689378191037858981796573159166120451766765192841113173344900638437328068913880390490138772469329106765831415881153674837371848249950821482427037354265075095005501734396681217007166034195690183297008969163588883984959059475873132123695601349180154277884589498935253526271110573302950142329562544428144884781072617147868913622538400199987701417557635670465528487978633481266892088274924060563976233651654101316331988368416327808281830876660545740138356586052637065402547545993887588767265144491112384500526160107808488978661349488711436402731039909654221225188468621047177614988091940699884782789914406254937757478775705133885335836811009578158535064804195148932041066974953602115379034040553485925860094227794552156875910558783213194918921857735115217714799391540612499870971379101796515399803723110765795399763265978343636542601117129726347681859062066445821556544554808894547780516477754526789704109609866647971410456834462016536168069745689711848187090427217055355372848873636506140100061895878759228325490589423637559703052846211659644766284246970995982822437968039629904415301079559911855217889660641934182044333779361041932314812340143372288608991296894547293002103628560365798636817306402158030627223856812144832590493317604754625727302200694388902169159559877314357872132726748586123774225031406941124625988635540187290589108662495935420690509521468142794410604203752721544263668601323940969701078682405880406190001863300056780655772122784471576765546697605757509908411287850175696022535355812196707004309001056065746237273472250972304918528176135468067417831394282975782318981145940842233366785830136699281843774943552324890462608140832300901573427228819463660988086782999356296123467910704855432063792124261199504259595999093557400726085775240317736754386458179365572295544351636110337348077044666727924411139566937630366221408795477912718123986588774324809863023340390891176296394318927441560631039762123763017486151769274641775702842162054618495883513519578985562040933532205339614796536046287797877989948142150969244900651307061342870063383938432241074856010809943807681449108934529292461399444120445113440813001243832853344932598063851271317697308872526783951855915154959629694467443227712885296792823119830864504223617812894583444013318827305459379645369029071551025323412331455488536112069284478136151209390895779237536612881367290034596640309047073437951051704444676266238365897969673213796806649814031911637504691295461018908681013844267304114461414803532346804609684905451014918538284703337388815926060667295166564844971972098773233126833571575833135148960943542535659063495051099088686207312430033877029780491764247522396323080319909072847966240124845002285178061338588169940488989490066441944508721386394512646597826130236553720577166631683835564692714598151541781446404202590339922480462119285136464531538970394459686572139972640372230940545862375719090830610168089450620739074414311879129265122820619533940692381124290452867425689481113909294772849170168040057354303713368319613732831628403741356160046778595772685425230158328321778727927739383227690040987925186209069013249406783997473062771625275847207627993811158580235638047875463347303533534333456874754679327413516897737786215020549147682158017004680661095636918577152084104610821600441610073150592616415591488838806972819118066410992127351710337079973129457747260066981682265230373387761030242008640580175720364358053679017861670456295193009656320694666729735384706679555510070065378705013014632204796039140319311855697396026472584743830491365915081968396016557332871349534362877761951238163990915779350260137554329746627788471925118485545066053429814582224172154936709568852815646275957950033262980824321904965171093541379280376267288766241874879412379292516952547699206536400151260542121101029549610623689672268102092685269269433243862903663644159181888706782684631715707771132811863456749784944086441840188869225991907714518979391244906354435308393089842973239344808248186731258116562556950544732679445363872798798538110592133593134468110226137042883598222094988590417994688826456320720757376922933010265337735001802528868110336095010856725326533585483452765243496989343456316174259940040489862207422784000507678696815437661858563686919733275961537112306405077528022496003238479007671232946005367218239614012849131870895913192358591427956269431195098915898331884493819246534745684992373261999827220406677103056546425006354829289808423639732950085386317721291443144232851388423627745031567174155143366706620374972344966438420597382159626391865356740570682548193191357090415056685672418366020336902502747598549426037545141511409196777871803764865148645505951537970773864102083584342871895485988859954257681686732505046534547530952800604421977497179806391690780405363462446601641486511727038195689427477427700713869366664224927520793397193389698910792583561651418227840869133090351854822510271254448517740867067538898268248188461674383341612523932781623265954473011092402512023221224769087566854021449293273774298557712943754725068881762892678603769654162372440781568632841488069580871614611944764942378790727890084396120639117856210788177166233124652587991144980256506716418806410788510988370585186917962633558516647909886758255621872049101013550678426532175049378143606908910510148389916242126862325554210643904801237893320184469732727923584536842710479402662324439237965518464181904411679370624530639807937763348040235188339094119535583944128691617881244944911494881360579506748137940863951638738632331390544767883834978525006607585094723325494800379466278012477514338186748977215439928073453990660627164132565499044499011394347259109128163363496395256880134103251742151297949642320381275260987476215896782354527696520489564912486772034008157377757525894408648004088224404706077068966319014594474710958797430283017172311456278080287891856260007019505053580697752508561893489000072526537848548320059100553453600304566995414530555537786077977731560317588469430502663879464398368888269687744648153642844587630943214471912314210738944675509394120947983275964133758369324059444514409531513070577634117805040007356145778194191743711318502233762164785153855897185027164837741253867496399173485034826051222547524725993808415933675049558502521932033275205196048658116604486232436934605458608787151281117735483967298735235506278729240021972431326516029264733376296932650232801685153558292283913867519896696473652525149883140666718177046883833302600337174750694598779627103528263615392794754723291649757048280324476916336928872460467733755876080685415185311545290116994745049009992073493707607307936654377124638869934700423048789995614671301005248742821940429247991334922332655602851800868653415651366254222884535747297293566303279388288481072237083456292585212827817118924567758337058450739763356086533446144464837123381383234906643619692359074803793023649817005533953197681426424974645712599360951556673333032738382062324877627102066639063307935546968718991855065584806255928593525399834309359496660311280047902154833093486105824052975481450869111947258024026123410859971935711071101294683142859445616329773789319218322068633296825276509916868309393956968397356492284725406171312304604114652400117797262564147876924750763189353085713871586427938169589018233177932813076776837218283502408997539653861354445229645455771210903047299300546036452124367137193934612726164574109471395166338893579803822475909746282907100916629665974298426808369562731850130966568736468349139869014547424707509994694836523324329781225649613678502840780486682354880661267934355523392678758181673155694199292684416109429468195479520917572275871374261352596761779670755351505057873784391129911565431286502835657248971973093190116827304282355729774945678458968196677790062733785556601128418305634917994508030568522888552784833252349654847248705521673860378746646453633821620084696072377103719447672338725237604098379260934454305324045748811470591501188717234947973634164603491287981471311060324448085052620157426640392274671989733143230908699694130792727244506157005881381912693764234549208159773285810352312695885167713674092247861292704244962809892446546139350371691632291243530030175559774184806157688063339021879707267359962467938551671997292874691537791298070658054550019742120823820756819782561889398770669499065381586885036556201419241829937005783555966245912449165547702834483594981562053155041712848247507084966182741915884809961783079017644142415515668156361390843074352107905238985090564629721597342023526852740609941103540338604159133924161912062765150535401974531952397815283301260652923643045349793724377747363497840598354416349473058476740185111565928903319105561929222259005529274753686211544900894708910022534907971351463769289749137517559530013227703701093579366211177428804204219919684146369273991184028937025148676513490741785248112082459448539097340034895810903944465133787547011407352899524084945628304079329571411214227714111412738187595169832689100427723383869695510025611273165841041036278336368264257128352404553899567765617652646663457361476562074326447050939625650299550703787308318599707576176084317778040602323841998207009673411955496372192647761634727249339895976727660562502846459981227805179317707486332964763589097638505857608529792763211646334740891348348362595523497991054689422116050458919795805971827998908257322074654545220924160603753543352995816917805902252042967691018096410323452618284241679285564971238501515859592262516653962977065473250907393102987040356313634194861791395835265128513414482317995691084509313665972760159153513332277189945695447045540077665763672627356889194747555522744383447228013758788729703369438856906218147824577141042352032023675655876669437025472882233176194849617420576268234247579185851668774244437869313260547995077405036964616470602295425047484881990462999250973928842450971885702632183654262913131947146324109869439740318334949825476181286264250654349703556944073325071564886806333931591438947680212029387597044197254657014784862140014073353526104161201903190102113370408170560065075611741409133094256072060653667919399989977521088855709595540418755710230888106900778524257440348725366378902026393361416997068996861465186839949354034424626898276664913289752878954329490251127816185772069935931204253045560505379237131914842715937369751154131568444656042652133081490936735232260148555708948763186080042400884695177830041001245531124026237781753928969508865152604048644176265410434506789777627894872996514513798612998280849833991748889723455744036656730328747572801762199206799081541670493663720910940075585168162846080448960974611598377553111698149382427715259314732245724086981224558331652816744429643009880061352196919411741858117912296973436541409061132123609201309139086707385525229664612352573916837906360243631561058735469580965133779856092605066912797812859059883229340537757631691402795004375850339560071185035259823880993961472187084623394613045924291262580674678686371340126292614743674822785358331680568447937215321933482333194618500936355178100964096069960436468836734900845440063435946088077594436524125016175885213494489703228991316795831815318542739578409800793392260717657717098768499833724956584420349750738580282819820373254489148387362035092082164475062781313958448404478319522872146473125956721067820372134395825103378774853515633316439521756395562563376267981350643744750114301493626184928450334507986129420920797032302363429632844846424618236623298295398923866617394878257429085678593191112423799261953298991320735729614514039464771982670778474640495624131666810910749405399997469949764316196756593405427336277669703600793065088607209218845716993134078699425744247376823752089296460262963729684774044715504768084790064237374991688051775580521861312226433707944786726984538748102607006381516623654630827582982624712202448650241397262340066652864608817659716120662344553459681227078024629705790971331663769032719933839308051629354449626706146119252730090421183590053908520284914815098049670002066373773497764076366497529712562679319253845440457021160026696543374981272507944331701937103159775048110972915515192302006287277933226265180218713023104693244867942543972757732503668446203255755722951721999446456625342420794911293221187392914755901565964190025240726432940324130345968234759081241421317905639744032034834023172868121823188078391941221459789866832924943402114250865143472374115713687103937051778866009555960807771733683528105034898418158064677388635062939660638774193971056765334608218294361030528928005848809093479614626641609626203108492124153046414857587285667889179468598731119071659438620705649737787475116552432187135253311155649517434687128541861059704795838548192116561573285391151017014249900600018803462997023962121850254101579750971321915878707493528365969401268808603788369282012950222915589082751148618141166351441212000260913050681742096838327270815897057496405074503958705659645211776586687741279917725948645025759236660085992702536714562662400439489230920280269876936681480830573126559798524651004362568265421650615458426113050986912045469802037452552554368096095275100339522928750161434898783334528285353418387907697432852035550618903262401834492367237231926804965288765073391990426970795162407409068930357811623773939776865173770788201048725875807370207767444343731753124809760416156837112038037724970628819705981707109020069708803008018711940563259973986310044603032174512625482592713404664119919356907023407175363199576090012776162932483660333879458631516384189108595948355891310331602719035412143467196512069919471413173828191622223660034163864748359608933201132047298831389273092758403022000531088099258458243316312720178758918738211623291318993923126899937685687050374943750053004080199133365512770521156550966890525893934058942944083738251845753638640054339750539064451384879988608022976339830489089357118973690368647326963103899683210801705810459568206875886782852849908196963378696101595301169320329296431547928358796578204957664527170260322097191056771790536358197116817087259449155051980003196465702234185883788843257754931672157950612268272686202523858970244480723137923177147836286229770136579358602604927034080403635458645655992445642843882997849848425781995228971049204647375188559168927268512523045507403215730005941059409098897664084280115028073519433633684952995422796184070541261841028065812534582727311216145095265664301453878659744673042870221982848469196622424605265673598817896248673622959062822687415350813392011455660253098209680751376654043131323735530261783734699430346149402790999526125878191130438479742776307726930538669849796299749483599153987996168422091876184943451693663418776152788360746386353676784293499499284966309978719236898014492702557143328374277453656076380159223713528063365937267509561561784235684231013521095838870971784649467122781116157859863063385645854977111686120284099490568460572547857044803761357293872215398786380238957062711782580259378420207525444483637074165021799406836466504896421853474405043437163824669558720056069021422697436812709965226209004825098596903094663590221585322150972621041821850076850151301332490531182698688094446111291893115018502231547369966098423512747436648899108127207153732723564636966370596188415482904702214638916003358414362009516870338616022411301939535979324808582754081125403613524796932118398443188499394941965956496548485602409150017429709078098370945625222569629078017153412997307971489685710207202823295502309568480259839638244543929491636748047437653106837307269348870613628969707081055229729711927402955725487747951769354569035686707586223721966158012961863828117442898140319325212886022852421612254197348174771879687316111085285843531827975698616516535645451062463596103998778760760617735464325581983754852053834277925550020926248863190884390999260547390517366952249090521367102712405047122752251504066849055404143578512252033011402751344697660415505793381801702782082989403695707284876114220264621333006437032236887116099131071641503720874973672750956186014733577365400429991251137974786528671562672574887892274174037683332954321875501131596340780098234405865277656614270658039540430409105588339244776040126285950733435314682522584642436152017844950653437195591767911244411863251964818961214148279550078642231947097650037308862407021763334393048608672876100305203760399232806770171575401970089620514472590842776988057870580531604149068793931229982769472944808892665509212020466897528401624479742805806483789268018481665498330105323337124491014245788155585292183132958555319559300519863805446547827851370889577627180259355062114888878074151043044176606860365882883492317329592739764878432441339393640975552503380397080854033178216190956715924692759026697664120421040638524637887501000714085336319375710140317406693222090904570566725763051867792405987682532789102287561825732821914469322172625766523958356061684105948256824315554650944982594119211118044254505992333989036734362718821759976984502964774901302426294123058931179093597104389238708968757720400263233282076086895692998245969768559004808346260152339620319944667411917537491077584334779739683351205801764161986074592645784465518375664221684454573675451970053543147850225958036095233537542899477034398842417461699021201319212423871260239934988879755895786627238546415654509699754311643749489652194610466295866795484822945292851880120527254505562206924590146059723231878919766704295437186063391721177450082758489996583006095869831524048850819394516164531029659495818494396866043534008393000935589854512523452797427338145185579249903906950151798860532404981294793592695157966406933956411156303076555254807791188693713650727917547569854676962898482375588139162314204312973738643379769290339372037347111952737314148829202732785469537264526117365510700206307324998693970223454669138926451859689730340041235382665571049303952233825402925914843449514611623317204514332695058906919281172338074322943662658420453976974637147742512883232209274547408959273446571421175052601641863661030694788728532826300828942686870242451551559583826605508405696207853095367591248743022274560263667388503459074473962291174510553095091281662157786451956446136063424129139117371290473435210913328453127210014170367408518175772244689932992364932787563675457905383169087186665583761825166935680224361172017605594501487464024276910286494154334409963178089546340173296307137251811577357896938827008031754724753799220715166680757233204370184728388869279602126631132210781948794394109647166910358374741924402559286705117228379478243076242985255005593208048707768424927904433197336951795984525013829704105298501794379806848248765209262196815289127840120311435716244142790986221727544497144613073959711494058236393876073920385669903989024974190125663894243960100415583307121603762127766991560146058240445700605411337646481739749336828439039215437456553700548136892984269097267961785646772971875394596799333544900565877241181247225509346422655366738432903241470520094919648684438622771131975454342331561709028114580925373747887696666076996425064843543157377543495910563430752132141147764836080534399652106638794750182820251224204620902478457365933698890577541349892304724909907818000769984171663970301281035063705045333417191245815853907505906045125858148832223009792319626507155214419577368027341259911613068300744889669568431222134088799663666806973892684868361297031377288582403303576814243986240879273695770755332278927466741972626018363097818932337334281469022820741536264944247994442724235872383990086867215119676570016994833736779677318638948082474475185987728621668135509398367978532279326936220022967658873811532615999648437357641249950829611988100756900313357900428501965234968227973714772039047459534748141380140939369538783897813641948089636765806530265086399236012026179783794072593186587578076301731522491770466838401211391659146679718105734702219763737499123722755854260806218796748917509283529929678249124812949876642292244622276674123168817668717803733078533697742969834992595048141261369142259712743702792189073240274766049480734090101350855050867263719090509416181228930244190227093283181588807376049085277168748133644519480531065589798680892143505371233811251043442251253742513793841017866230810703994065942992631530290919419863205463495969749992630522805808166133135356014543445276188580862617886227111827905613905288102686838979900795942306912437645266060987107541193009934381232613565893475457666013189423311705068350236936336111182522871064079951940467908308768595282679131368356481783465884742125970345940146738138544689769060208405028079214914527394283780777424945362095487122682811982167073987009726548091662754214187660601008728762125277005130365067199862538562498367955692147066614804548216208058988136276701366064885636420842934475417465242125128019404511342793857448456729350041096924155674793995913191885894612519209594558054136740902390475138096838079018259377134798060845022060706063155650565478731941823433433888133980486967245886852280183276173059735613030947045154355875886952305076117723139839992753292520170189646437382515905011941019035689233063910035949983619824633185501575009712988124842238653795803092872686795206901572538448279567932046547793611237830073126579536873078951390651221438463737228878791347699034498420802264278798282765403985764228126461777199049348057043006291465397290917508160768058318496024771205318268230727010683389218037591522724088688615140774769087351439848881556347686890551608198975906851454900276852335436457770310939025147799890759024626710146973993956076370527723885606552061686607558845060057837868771951392220628541966591660575919947964616982639033120168165381485136535033840946907727625973807535205357855440529812493327353193526483317394156907758913799570862850318380422719219709256166791531953025738027875117454846270340669195339236442381485344833691964056912514997898694691423281901513033974468221325787268973318438511234990371841202510470247202648351597050693058497807654138052102864366607353049994152328361632425962270716326440055515973543318470490433488097416976009701118831737049559413635441206134707275382535404542566187749986554827173145805082756215134527366053481856701642249116603476963597341576410394536894489220839904551463943238194485344010343627249343276969317523534135299382619942054891892177538774248178733573951152782704397408424715522973748977920547531738888037767772837205491087318094475516149503682206172168759866892953459914963516115431711597135214992691265302314168848023564864910271700882285772610574328873764189734875122702112769853762125899207739002491882806232738392142645141143471291242420904004545622642375001777738425496806948876193575199162159729768791271605216795987543811557619051005965017984601374087234986986520383431564637800593231042447499521933090224477916077463485957801801306398302462240655275121852517378333703222386837922370031226101903148788637036657630104281174542432051582062007714944471349937924869091139862871393078313570824157159134653255334798902558257898844643871356443216678088217167653151770710563838784253347575053671716017386347779648740784237284846027267484398701799633897936322540930658309506574532630626069790228258239782730915265350419995370749469055254158569439859841585196201946295625944603881782248134287482868991072024426445971044327394648114136549440151861726418559407582190982928935599840043385684050808305866852653982201987687730477780057663911128289399756364012374901017178462299543442064919291638187677398299507566593392337174999691022615129524269607437812727284785543290771717280313602713618608653111791398061410642213286918062049368379477847600264008214667554966339897207239434353061399427355877125471492700558187196468599850983818832099230202261785750250873229341603368932740868081580400953414129879478805262863358484461645911645562380014706357730270710031482482490971416561087951577998174859044112377992503458358851232195788113581141699982927645845005587688914915963963228734138432512348283750461880669995319469636704711738785850684714876773170198444538489621533656163229709565800440258663225669360104494282497662257099714842009635100741397717430074129868955869979658393965999943132883081212020119155318890721631413667890818741333552556335460967772428481169838219711936163186029807213050476679323461382875001493672466343377756509401871183671492570940149621102878787115416897929995323423643964967460192360525547905961756014698110230780556189733673013238234373053112487573074714149571377036922826694266997958604506351013293339700402807228264607426128245463583971373426582466419332743927985075501161249615426620762206907966037844407245332059065726242074600559489310779777211678546397064980459135226698431541956319305948841075583188994239882306519759463402113933197053359636178338034409167686383242725202081895762214068855514069647135196945662939810018533598410143746115109314240785671339287384134021469364140294401093948194357942717245595023968490531007343591763916712958286264882717711454434141470848931766243025180293745029923535518114839292630966656450030123265725598786141979925665620623097152316823494106880933176024722556778474927299255451054137260844842846519863926724038648989700776759002127885681166725673227986380018425995446404146619432320764868355904619691069360130437694931861024317277566365026492231290050330292786487445026666130084299936282871348819101552683513417797534887106867848173715195991600934037000901982976129433210142857678742066722642235371033475970056042695968995460435691620294624569859138896168798807203244699537988089051810081575548666002846978439895525544275242659497361600145246423944935332384637993021388822739115127549250495962203789357028419089848817967172244032036722958507263166334206653086540354635091972178075909528616487244490226120283783333599941049603284814187726542634893748724427828026312883868333990715928963432629793887333715438667628700918234298249156448267146626356563489504824879424328103889193744825703956444858053505382354288104172576055887783537383410088876330503964125821973896800716726576619682030194340167490547325505841096259180594148202278669300894866199944398532106183878072491536939048030113336013461278551073571297057638145194505465735544569271932230809745192446545159617239448539673970302561991037645205852663958388966431433727195627259452565818411524262658909296676017525810724448027600842146056382734617082512638400283411857031283340027409273173302255875925194406675730012714423492483936917267588190959871569387323576249169117433146468224457157228576952742970677758339907225983075937890022570285937370272813757006708519170029967836506731921706486424568029272097368115608336742725470290979495296877941233819023889559110049183282389436101633482134134474082846018872214029226464219511353540301967978192864337109942987661607134142895148783102851554421559069161268561518156796424419866600734347027480985934528102841487349468373143268467009585498944522423773564060573933402990630504467744529642615034528476129135015980797031956437065305590525239526280186236683908133614304044171444674442071836734823462900299569564226155706837330698197098100743604885768678181381486959420379430265923245622980487652775528335140585196465326425611121189547994640766380265675418559347726938736559878657547187640611209076060828547315391088360558715771257526713017905083968411568767276757562846424095669228901994047321678814787854049755772635609259240428792592205577572323387701667739972994457725959480970115279866744976111155164868709838928335812647051688632208590866449804255764784507998741699875879475238739931552128704001788671005370483720174580840195382824929454094384085798505875197154114319104030830186549206500918108918999425130233686179425481696314923644136284657245827793887520615980313679161645283358582116996750830004577018013528737905815798238954591169136784085600783224857785048617106672242544745682019556545185252395669346735239143601952396801121661333314515181592059614070575395401533513188777038529810934014891012043474740807097750972693994632269274572341269589632700577860313100403901182158745353370198301991860339130682501567331040567977359947577675206706092863924500519806002625061739186584574696461987177784095828869653623786046066860462194566027209859708991616167428344889316078419300058823919216942148269581475108564767721880276474666018096822004936846327701211550122604114288360994805347910401057014462981731128265681293249955099124511938605142073402782360289349335578905496490210728973188652890924739579002469944843869982015839814831360348483069256557608599392759539913020457220878424474769043964406649623920863580935126192282372542836102537113677872770566212641667321400359176893310305160173261477105430165951480143205803103338311917921050018795861885973640966268730055446096921658388813697626203450751159727735207153740916083237217089755418125976232320703272317048555982995556746418074619868674099385558229878863146804248271647404880435869427809762082980073288881073616705054934935163557810313470703981787715494904053641540095972790520467341181995060107809163070171456071426702729723727129998555561463485207213270288146954264025318495279950773602080705209119312872321508884530950028363094665567191432388988930865849555150700414382588305563109101770020479768609416734086419748449739825928046605294822788698901042370896428810535853561888824491597887135111444066763194503786932931909576481503405133204178649314665101786460946136907741504508845038708817165507741565030400404761856055953135071894408408360647310075340752521441711578341572104945595982041660571795149501919481472743527252181372598119014773521507261235983281058486056787684452674000797507109246504827215894516932661166657205847475822837367983591793487228140297572489227365780085198448519273274936574009463145603492788529165732915093577862934433992556977634247161186740195372493373994368649606686525804399889199760653738450822851578093703360978898812172286740265365228066770234939364138582421466428165719558783081495888173638534045598541942102707555270472615339607547108901868049751159246393225001373230315894953415473259951214314813588235417815757057533303160389504907822741376560659886684891503241644917519985791205818511616812047930341323597736465101324674810552796652092704696586964516144161035790700796123655585967740826769644189506881436859751672722402872293960371985104703229205832652144074189134892642548240208215054038890462832780876995447456868509462767825280169691294539701777016038648490904460745350890403184953636892863913838713240564527122082617636884821535300877098907726067024929468817697780076554987680842876642332004920124203448061281503763603696604607356306446352718719242788475795011003420900637923102456415563318461935433708671441359654214122377435681765690985047623850924574677732816374990909029534696502252630482766278663521959716107443731587287491229862341660643136058952960551008527111288953234890561374702523041825676387606266232330642491155725892638946503351542690179410314242972943053862262075940391233257844686869357010872284840661163087045980897994862122218349788536646041394397004464187595093740726817435201914929339067882387757051725732943606636432935290261349882216589576258072066090800022541573416515681624480717924294022705356234913770484773844654411112560677509873246868900879868156657376206276780683453380301198185114278257328869822804980808716723251201849611038351829991159511140018320804877838976119106903412587185652976425430988546662973688331186013445579234667815484105341279768753244143832960869060723600980343355200719577304543812390967000224443646135525952108660946351876211726495968674075011354516436861678677330867376515778880075435719875149777819371487823174858207788531522778845882554576822044782248458363656817448380220441504766730469368130411996207751738761086434066052558170696753754813032240020539620252331804134786225522534424746479319152613400608910836882722118305580614737331760733606627372921876704940511048635218733619659280442085050383850230747911258419791732436078158155618704861676083208365685211226506240983021954382205190648642644334608868361211517572204801774298796222734168063193612825334652593241733832705112684374695839862701917158380656299848179474881199907277720386894987191419984274290934509969079652244073314623073541151602867863432414271101988612525462241387794001750210672508870499590719525159168525197669175484022345334273124721910443384849713260282602875007573521077522247960463910512861945871351086091449395672945809163366407451416241053894784665323487879298037639681586029829563389977617822583357582391276139324014115137998139872462631469163028680594205814911777939080410510977193620833013115070863004040661678859302567636270214817554110578588221551782822170461020288326146534547670591865517155909673259157408286074058226705564354338490957213480595335397824055494599960561013519623202984628254176764053097067465920380055002376553872420153112473803219836207249679851464311075202890076471532627338803322896692558047143717188635571480649930062737588077287101700487500151425107696464116962500407486024566840849362230531250272750058098631306650856509383041798303353937891118311740837660027466043038678438410131261629778730416301258936742083246088352552094504636754917132542397257079848358686620681721138210268052990759594843481295963401127775754826080104036151042651169995621889365182472043284944094313133699725303321809310155514552304075029373379777241717208318836426143542285255107484888883549465459892848958549338746843164471604221267343655213580094259464382729094951818173620350742649879678651743901474723619879104124712498920716161285985673245087118326653226901182508583414324586209344691096820395439239356504739669509190554962734502231872601658235268538949001348919438395916263407655040605759964436101038408735425523206700498261917895154592218606204676501659998406221816625720932149198990143328372720213172396925768845306903285038182965412192112638782318142762296650591016953943852852072683294230682469002240170026145504226344784918259063405586998169140952755023041593947532428426998531935026803703922985126673173682717683681513351113855123154109680888485293492304482019413739547571989689699186611862597809276344147493601689828403734767392375876219083092703718164823178013271300701378348254107891631699367172391808749338872107846672291226841318313314768849006499248058985234198528127339559289526104943270796465638923558072040675173729067800024414476770783669676587795019092322856945272772573518932085864325128237693240685598833513285779781313463690071470842749677701182062720987606347398589515500150455460201657682722464667129006247317764092985108009226901389781479206411156179558971687089461674632411822634456213673714066441315376790928269461916932816380821304398364141044878967280198062663350105513227590310407210854267842728189025412620535029698669389934872646315526323545518419004877954969862400439674810043967556305050722217964138074907792594736226123285055657276018568012159012891763972050125745702570201032926424751855104607779412505710551221338963394417259459180805470872470227623334920157136392226485848127713472303691417936800851035096635892804773749352966608118619773332043685559662380768000673471493809913290363769278218201201794421028569212927844805252970092619913433523164087917146911256541967804505690502077883141068907630862538025954218462262333335291782398536520978910371475053995420562317849924596866170465022275771456371314476831830171196336752349230265580397280554410183473234175849978944140775307978781401002785734300992973770561521785988546367884895512595822231154539260480450369171430452332074478154912680591827674152876556654530758860285254252004026613203174066111624624692330868795679896103789744642275185559937681124164517006871176202219872387936075106765676996093668574889984894875771660345601056005640082323692716954904212314264871714730563412828877942919072414447236103713363828322196162552258592279770395266250039079327428326706356499303516825862942054832742014379788035758405655832930957284189409446335080567064086966408313668162473257049285308027951983749515027137066343423642679491174453364664796588961072148596515045978462337392208386810752422569799035558172147620805824478218883320848828858055439314981283784607861721571146081325572828105529225691282255513588437353524715312127535431162545868436684908415875080890364219861670102732577869016384562541699263665456085283022497769270631372860918578101280768276791809622247941646160975238970167651064670173712724657960120346141133805681520118323780697613848431731111160698407068278511896700625322064609477886847752512195655507433939991920848990553091528151675295596843063976595736344867353410958313756343661228762263891744726070371675274792410098716774985867120815762147800660667927916659700994365836054391604500410518175262977754584664071485571584427084297486307631516475381220823715163673282206744623050666300087847379193719396429489232407950803164630862812299589733432296249476496109985201646916228388516831200429390245819906007492400218962752211729565385901089020305403053542510913911256352701132377876992451672067281694252375194521538946507674604994999356365773557177958533220978178650770467418478530127559088855034014972800306203756906511279567860336573110223693086535886867454829835506940317115762902235603797125964930683940805417217024171005728078798449418578745664930595370528698015669775384933768355223168857193549570637403965399971072059771472921478450814680869403794365445228646509464684364761717994898855331124962346851269112677943044069793736353500199236813774121103763521775974415280944312614669584805381181485354922433988562353225269302873309014278848452302017638316834285917632635347768866536920637674185683732998001024178974145550122749028998496645164319869572445500109182018887448425590602981101998195117944802581984433656189020823080173852107072776182031731231685129941339171475410215482567701194583906201097533046184568452004057630735930982052098725748421023648844301894904631263629149843925348872899188324610906342721047070611920141140906957260950316864730022515857042054589222494100678448406923989455591202375415619618363136862174086669317540833373831250166554677441383125630941060347839731544180788615338805909192993258011416836849701683626192205389206783953188099891259808614892232745764504083010163751321396001011382459056970670165238230589181335419104438488096424539670666065299266589510769039056564457157199482658208829526452052281170383855295566538956148360317252514095129396413247737990566350880242766967975388754282922590892935008529961378875029640244032911870641292178866028907503998403109937606371875407120455096053125141044300168067658530476247639305299619017915885396313675806681389112340866891239851264665806034859029098418968832684874405160080935403364303226838550589287276836167940874692153230772039381423330507898497228691465642142174026826129864153312403425250301214806974471692492553264768863077491474973306598703486204708551620709998252480571841625124471934127604955082440056762180363239278099112325973513259174461406204513855870972656869473686880152009651940084004479476306569916915917388818144312195011621574650649327495734255742470731201962734485951350534772541036756126635710130487142992687088985854848399874467234649057125661606485873539425076721097522347787045272191496974723882320165633632633697046776929539260917031652485952997816698032935231186513030064437911465660203339044952228535102849096371556288683064511457648339176428084696606386225621828511287496624168659595862915815443023180319460545591743893113760053446505236348657815620734958704938693304099799259626340006476096864711669657392917343414838180429520887376017021092972974647137591573470739501704826904337873491387757641561896679252258761163115611496140847952186805826279027982689609558968396213770650957340252053068030023830077181379115893545201915043917828752192935036991022228463687423003341404942114661516666290390575793532855224770426212251028378579163094475314150380139011263841676924659326769870590575215960655506756547619301168414631313051659703325585785596825906694287298894442998595725695234820133633989123046711406909926128638666826733729912592496778812055923476336173665118503484728077512852926536004642576241604251822228189747687946636345435752876399122136561618534672145829711001002532199601487320467407745059357477652258649292546797373576226902879681618420015916710214644957099777956514540421662175822840254441946722364328105888134819626865731013842013681069185606960039338162097824114447253864994334779873720179592258160614565565347182959858117188270352171274727709676933498682097220083122863081927773435770938576137406910670319594543678348008437053874859821547201982574164897810005480501811856470415179231997118119306784101714388608599132862611865184364356639972173024665891243945219190499811680585401866016054638559625795243006607652508850622792304327813272493723506644020283777924997122837443427771929253434224180913745803108434543669103636742419954750777980395224377703698744852965265695787749502895764010611657516557021256871747792127323463817639781080860305612025395777668192832294684706242279138256733844665095159277392810344062124610555289661369724322969117431296693678338263622115110882017210091343290719457097074490562623957231779628188348458835582491703402937789460241273627941479298311504487144227910712803993096090957826524444228913749486595116539072102271739262164690038373316398391597454541598945444957580369267523198716561727948631527126529023577669161190099064292358617879604410573417124952832322446246628140274785796849754488518093788385439788168895084551850056919170494393030165338637324119276734613708662165441475396352535912108172500388269504870740467701126192602500724743371466220645037313582565468315795285376267050195431541751438334980465758577481813524634982041137707373236331334727702971182049241248117894336270757707422225323105088801294680471916850722507948365066201266591259528788370472496697157325547608080170257450893467528864938422773120023563555836706546308683416554075284983744814359606059379787682008447098109721842913069333712602744648693878280613396985181642994637976267677697090730731868707637980542151712931701691348992097406737471234402414593370661169619765130547842817755490348822449271290124992422613112196322691544535537672077217414197445359460281744364152062713625143246848326100945709653303967363417343958484850110485704224802971675939459621460793015560054868698023641601232901244942954309606226851358801570543593583170394618422171029613876038946332530739369574998353350150192901426702847136493665359381004967921217749165845338750216394705148597370657106957906520040376296230960911281738413542641953318274697594659588113062752046244689270238399830000251655462818412337747949575537800441067311932156357441537790002137781515954181913973657687853002992863797644534337988378753803758791562374066124712796397433536509024033771475374963814363258058071461154979149596075725622350709408884668879303541042170514050072632932083358590838753210419176878144796906038712786470497734855253930936219731395091695532058255270388243565196769469499784873639249197749835870635523888052677940887121074886892236508712360401906832847936842073285750511678156262909668955078192724349013476558800069616149571927968562881850560338265971823016030434745021204972140892891197495067228462292140999994431188292992701493530714246527771880357776559107088596129421255867303638780367146109882105058126424658467268545469709355724622358731498044945673850128591957198673378454638345073392130172846398556447970815013706199694314775446762894091968120334125440920014210647461930945675336573991346776946473292440992856262536670179953964171044560397390444609781730310185544958482644523348591361612358063510276195213312178458597956608972144312026953931920664424223457465809398429023758321016019021580024108205919042613499531466216327981664147499668083287143324341863851888982286559031206680616786714627969060585064011727770254962210494885882398958100930804669288636417363203602473768036435490340941076965290719379985427886149095475977747247217909681006239324129386854840665653842533708484684245987768491828717182313861918356654848029176072557783785935122991519782982430559865978905766611199837071221485564527873928875865008998281128183937002738799565226413024733995301234320108894940270654336383936073684357390988001354468409101251526614095995468100834307764744748405675728784276422224678706776175218784128639130050852503215192722035603735775175438284821331532068909392509516823190111554382626462333899322519999775497645569382825283797518260911068242014545816340658849998995766404011860139565786101641373509419161508747993715246369212915239364008930832128398576034210745092647493695444206440341637998303454123086680967456693715896895059982728055454172169218027838266966766211795942177463473481796196729336519458449128567435921411939886815021304036776067355258925107732437294068259850524237701089233546377859606121355335703653743160817475427609406376185303645462851029125989648391617651826992416565320017136735318504404708573919824990804308564948963550655052433251684448903456446885810474881100780080937773057964577755309495775099316384532169348698892783063181932203467285961599659947736875125752431333142795560344124397745946714639665810841837850331690852401397245397150968200748030531925195245775484139967687249356031880841972455034639761628712106098266418560427710316030478310843385211552061585480126554310101229065989099306039141753223358546734652466196531238228318076407167283651583683060545369827613525707150161054666265336584679916525962720625873679313710622799943161737766473045356634690941235235077091602360667406980619518731591569270380098637204183416165011974489066035649891214158530349968488401563166435984475008889922034329620561025079538373438125193483812999902845645350196607900495040463987391867958131128010190205111604448263471254923939523447918754750272992103050418811018105762954973983927875680079783522563721822565589356274957819242613669870770016750005307692079671294771744056987876171639571771009908008317715095503843871974646591421223231975978321028242273917642374722614977709344738539531158769540080136458855704857993139334537104623290366351936772856735612360844709813415381672012983857139866901542159951380329839040890764329350399597004137734147130769393435275521540409400105823348952018181105854259460868033207441329364221826537894982927391148507761045969327586280173891860916304360682376401319491196324293569254983042678314038366692132691783193617568411938708888694948931234922402193458549109859466869039441197095924071124434019241712861025183760288663145423583264520440440502769543990686107000468926676207232995080742257814095072674301027002765848489687396898078313047890033018522641350027261975932401511925656960434415409239446120947697446114032814877567239680660903271813052837057306068299261446328655004778223603046286376375438323528910691213578182513637046242296790677505461078788436293575864896934757197508807253814354752722940976564450736675935265787844422206271433361560838365898397215756483915483713917671600577662472743529443354699844859721160185079417004685914752803508234048316188319105882942571583575458199946442089824703486864238390594337599851808959872467746249305515609810244219488141466371455338917578002796457419317693144710686494917626025162934658657468349624260820637920418106958582822258209583651946124338040952290919206034199309360536394598132322868602013386665337210494443078055905080172688121636637899455272756190218503305561316964083442253409839366095437498705515248802658768086136074235429209100016589236236292799998350796964837570067076108953144317701612247362613765913612227230164979558282406985102221063273879246652925613152099557657121486241017894832183516312221338797979700899290017739627188215326368315678294309720287531562571382377847180512275789955688195334584084333605568216430805699449461304888136695412491080158192050551955164824155026250592743543268733459022469071627485747706535495783116491902760075261682264653650335357278204722410525927821940661077266350349886997558894607235788687463787080739828254198897497748216037303994584943281129430359311625353796857207807358539780982384058713031470693131537287587939017947053365813393923999159216705461904694156555720203402769272021396009290866558590636784245851773537232776364403593232898767963044717838603509467300194461777152186621500009244666977720770834656168110790126655068522335950564910708797843777923930273646225752066198390567105661743150151380532402454586947303021097097703476794678703035052691462400726818315438103370153334213483260443368376772350197115415752337557229754025417516946621178614457443080960764073193545461370557429264817404017539376561855666852466221287601218549773083267397744114376860222605458972214270234368238647914661189349896021017301208109668018155097987678235273567601419261148439457142967658653805975503247798618151318897303708931848298378612009659381714458971271917609478823243825013527347864617923006756100762344846276881522944327161035738809371603803512514480618360127783117430847546154727181174883955233202490224049902724628983729955372570810965117360888670880879502890710198558006355967132805778303695961917457495523865585140262678970841337126132814233171247415082872803973321761366347037497665751015352973305688129978590826199943692836915187182781418125152175766226369784763257163528570415148691014504627018144485379071833902935921177298984192958520711362650603863033092912810403033878669550281976485707903689472339078518936141648178049336644258111610299567183841561057807739204260452209734988820665113562392808195212430366540142228653330669814492467679097522506335286286745841021819909377187081734741853056737115280910684943561132132652938623677949482511392094530219931610614658795676824571178965117924077822087563605134344036934958124347215856136166354384348355032746688029342505708420580462104830565729434534798593821020468861874488280103826757573601763101867911637643151432751466654760551401045710133043501064695514157887045484824725626276060461666661990466206655234425882110191843075318918638540283332030760500313882448809959779779666974487273682999947698527502707074868025267654252839851465957898427999886082542907416435107928797522551406517552180319332601386184585811422196842426676637414719496422131891309851042044072537901052302720200564816181539156912119987489963622410112738207496462113302309330865138530115310365689000973321887454572969741410603075110724851280489541123801652115267711054650715707187252760426880816262963135703527423353619390282215617762000759435965347362968944412598453096459056654131442388440939716339146037491489728070862974461256827140580591810335300629258370555185483108254808598400006086636990459904318850545155477288547045527150417037321814937847849757288451013729263752887350128445143408667265533599629072305887270734253164941091726192809930299203249675934599687280355608207551544799807703554086331754512398673007608709024486082122003917042596836240066132263134476773963602318608732790150978574477160323684692692569231880910122081199541151961805804009743299449145649605118716270163231170001192743052249530278161416060796482790842433222126756471092152817319913084726659439975476316216353360522682609469830018024725982390587215591701119988399284407533084595784783532877685155585200898643633224354194227696776731438939029958432945931308248591209551509098885799100392905377468674293705140308087639016813881496913124669639916865693121752473221189737851093096608860266002885388888384017201934034398038429111339847151895555403946842375466709007403330898669631042851896140403806467163828752064953465217620525529698218723556789453499477672690102687762241536581736246744709562605992991613294004746316850851445829780152932967589149402551859986205422263908342272873091722604621899050206226371429494620792089408433697847262764136812260389839900164656635923270452295503252872711930383547428623933985226517555573982075081012222988343239992947106921381202251065464075251769363212525427675159807517085814076772579729631992613032091801998805802505630120755904078291653194726405068430191541898946872621366060900730400054071408929667456289238926655138031817130588106863737560324022422831785622999491007980459723722710106339952863479854400358343402192747756503940649908427880281997626583647016694350194263983674872582118700144521112778990679837557634893935622531955689824664110238446250814851751077038964082855128364952596456878271787371799738011573034804572601376273084641644555657188584305467743516298373993246255174277783228019740794522181663766793440057634958093957102647046626377724944901722915795599441001120301303465323210831798555282470314826489143599407905114013534166160760355290334519684272285581062290796751590080829881512823639959268106142571662582927739499097072646296434425212241679812928074305751735443289655057390672169633304113827869722429492267308169001876917099312258298558379148586631043246030223639494128344890625331879248761148295758932433741002359776938076913179880081202131480215285766340087127878778984382877735522088993293142360496359010728467888917071552576167674586032972199628315263819183461041339445189258640036687922997948814558210141471039831886913818960910084090110573755367470034198233699400366923573586399145283538720614730145254720113340693028092427062320370357822486019695115370242626245933275818440263620400855726298311881571245626746646930086210929654916141964796081379271790738272189697034533043771882527617255557659707333179792114068101550717479056691274385505226194229926218747793717223761314884731051898094520523590101268314652224517570912774418627304661411691724498238970320345226593932594254458189071057065273389353845400625512752199233367330275937037844627977757448106963940509625238596093668449714115980426191379764940526290666164371427800799532554508393208610596674431321315844204466224457434162980078661821531387699216576918437778514612781219431636861938000385492382658389072981219168255602800354413520445083586932849978234222525727487508522397143626132719676695760834886973514908756790158376559652614434937988024857637481167507638229380522971415324663798576424253161339153292754064053851894015622563951900841558866691821226246789171542494485680770144677889818129513131217481975909021150353356736879800878145465084261607978815625984175255832166026166286688355513663049443262140553312110223909426760501294015777153611701471564032794993784850359926318164902177749470891730902982178771452958922005046770256066805126022367545177793732295166989194741624467142506795582685057752286342285889122893266599657200951712373260972485419542487647146713082631317194081751295336824742186937158784939708188767966147830187143325485230543289445454805409750650698424682900973315296671465137895636991923623963442540277032370066867084059689905838889686029718615236572686142565569656624200648072330957634198842114588775591518141247875796643982116031340256261996991632963565870243305898866363328191268313560640872269042627501932060433352928085796030465589764055870095439160220521026867004573903513822486777980090626575446284610042101564970626882514661297520303191927736369665008013390146705461414615167948476678316701065470671580085967411891665832363272181214976382242351579212842426401490118155101694971110840298755593661122170150884360082961606778541005806578112072229876643808190061288769781485998646016808121544661166744829582245621751136719580715776195605438948498543904608843445363616503663544267436310262764971328692940430835225364657878217949016175060034883102709465324223158010131446604039576444937551848068748259600763617632486596520101260124944734628003636819991213363824964813466874739876103451915958699424993701988926537920871373712910899284530414480227473905509854696861288940239087557211163177397005681026693881970904727492721513955372219491231408012667657084249552826988265110343123789891884708731053093794051044778092057426501433614293040669099970757365891462813389343824258270522544846636325475007079231397765062591351022303777021183614798992588563406180279236365771164729467255840485996016194347206411065281878257699833010621265481984509872648180779063788024560757213309388378711753023519049833185391885463573143801477320917911171665547421043065586150286205969825327679710258562427593983658967363748359664683744528775326686780440386477169538480703958754184499433776609786397833683127093837098000328067119745794658025708942865635598735589001407042110863501432499165643941645505217480594967065011723690480825137550761852322501399897873016921654198374452594354773594670028974383047381993941369033675560712695590728745615214415256463753854821447200622715870545067078299025264515197707372695801614848449731573197867310412113464249629592154455791893406932320501669453042468662710859702018415589101283787070703967782661912947746656004841420354984081425088036578328544238297542345135993985998355376052428208721936001907300965123195940152139448425389033167744254873394406553406480488985791593027922560553842829339891877682032012513282913651895977554881711227260482360745371987549333306155978158913990696627550007600376086054950375874250815096973010266707919218989607239532384419332333814155093272801140923987129893119902790025942653258927586552926975383779160140319396110922203780915900551341792599498902965208421089608035061104469516688117784482040957283548264618731791871250665616179830909507413294197519803940154948362328621305690765837450420659422596818706955038801587719945716410279639425796572788872541757803237384257598537265170296497541959700641346851514464654285142164303663674788366688762792511367864863937250667601497605149453309170173507330397371368473090149412022503526329656803868751675918309155949898604165020035704478337337350486901537140419953091983829471383579960416678083420544603720012802131191477523305080806814258065829825116092194559256029777535993449949296223467439475411049111232037187037699721331341956349116008096501594275720645825102342713824299656891417017685816585965048223524099651015031055725628708158206404601406057677154088781360658672904170114123289226219269303004925352156256561488093524097080510903240972280900815175701437302605220593818795677028583626412579830946928530199128809602870382867574224859164708068070430024495311345523275547993806508495497936651794192883376097655909903144758021724932498917931248974232017173485195676427656086897289072449045931925918920974412715402390904226532038517716554297578050538884993665109508687639378118977070287158525155338084117932774354534151341524908480205336070145096299101017504623210620823407130621633422448301559131747942309090681985346068717825735544580097326402478150592099872051046542193013506612016632427112867595823626713348141167945692953071504748338757775684188157433740936345774540662422401925063095755041936873908513678169348550039554957947359646271755538915168895806894398389667781069398309617583229727310118899081631635467404882455560269602859831793325116315678508787330344686364948926588805723493622445826452733208547014805100424609370022799356422851938270956965128729789682657755304834583274223148686327435475185054224120844449178118391055827651202371521160962005423322879204749626313999454044349684524031865748663414332117673708354501582363263656056621606804337529452868496946043152142489426909892157548923459990792937592193966311786304705056498310800035205294441357439996654704537872824306874740874414286418209792776305652216015009311148135250788287889161462624924833171153149371114086491415430567371339433153391295470609271724077259407903106130430487335154992346323823083639722449498380113774922608416967889598671370927436008270510528181100882271053756409341670236826168661326814326961908691782654002508578242870751341878457671924494767169779029247431451993152404293077177383715400703659706520069771297566677503107940780780037518256260814876232100956515647668036340618931077282380340138439299088588686257449332076797200717388909198294707835180069723660676510196537468827206347735767187174798243049839441313259562505340525289641728636422977087974650327441251556398858087851115928414477587549744908220374369060742792173030260467716009511418010084840276747810286598689070245887441954624310813618648243262114236939553912959975854938830763082684631023137184776229443223117305027386071185894197106617180314285365540912176982958914277976816673683697784491568874329124271398374157515349333672951748474022756750683125838197796142784508132314898923506223111563023096639089057391360387707380618037294484749763981510104275334112397224061883033797194445097363786043777239817980468714766657246516101012525697971269262025667312237839339315332940396617539841214921842017188920549807914096357291636702347461877853709322530287164668938391211247720597690330700053465130560344809478944459511375428379088550022825848099929843518058077160351825398095533084444772056178851541657948995260594156029210122999356474401835234994782972801909558330288251654708923894761040468879200324688228764405106144525369591302390158003523589251941340519763371161116170286320291636016512500582809722692141752260070940526791437627961134778667005742525020147145875495395961108504068354706208851694372317061322752817650537972722650847112441630855580334076104641498590645793563913645744612725364049099458538910711214112350359868728002532469745815603982928970690861464925118211267079263095792819741199490718877559058050703987754590905382132226196047836523644904839708140014987148911044397829134163661329001378376143389639284203065215357211874937635033840295778508411482621536792549559808545736185210531514579596161270562297997534608942224836212523887633926115232217126169706017105557809011341490598432066901186396104584702836705604375454304061818857868904244559434408922668536121820057627545361908651330233655937393207920856103937900500654085315991063341818576866266744392219546126366895286747002766440038699311347144371339817231582231817896743810712307854318201967501805393371422661114775273755104941898950452794001246027001525583563470072176635501696329839766048737546621735056818792854956953002910037482707456894404704242032754662253523007597047231831239530979131357292074253169953553163745966386756098486789864394573993185152021018214400120118283712442504526125415277533191717211798440490910091471187274523808748283010166955923098816253637390683394129680065064473928551461664277774722388266125917586129403793843102947333597351635317552987213852348143684308666708223129557497472914883301411767021002505430753220223369020866504979177169045252682376856023585595325824957943111284617335751088304931350738324534096904588291309324779465849646544127675224262173957862544741013204135681499951378592394342435939878811306418229991462174964977816410858898816102763923906898208796573767942523744520756925102189469243622936939177045225659866315926991435529528358421769359055964420045728661702644755312598966970519721899801094453562794986085359486219260597269183806452510258075739942829228457267800280475538930152977381513228294187380761485589737812383847458293563015216478580309548050634662367487067665473740517621388513898778364747231949230006972700122740322055225080583551982758336492053011457561194761774119107295356555558297406884277119038584580233978236353075539278357643990558523612650485518265099324061092348563195996235502732664916994954247569022568634004452062049325286245161374375670391787798104092571630426186539265692778007946746391569832452763131389408426372943154545341753917326894133824390421812801276002880705188695393523872388152295748725034619628299405988568781753356251339210962180663823161433289628888253753625174363082283315145445029824910468485326478078889848888397102121843820184440197400773883795112222644884210810234428925085000530009665152818320756697009770799002765483226925429547423682941752646529202280015398943274594591617249093975703687827966402281639503688462336027100628766794387360532667329976750425580079168423041360130288409045981345168072253335135269639709754207897196571856568322662719770862857950871352719726240507551362112654672351510891505686210680448900192315290631285338776247052172825758604213648873899958883972055703651186885871826630879770756249511830225972239764308121409217293554347531895846202161653803259596618597128131739801044721884843746709429687754926447588163392614415705913338448014264231980108559802756946619575580316979603808797053038675054818510669878506507376616950240886227113092338330311071834538552479771663410477301800318199393223981180394596587361725964494138174690308242202738385796406942010735871407300977316294257623429208904277634531626548401453266292349662412959139302022830110339884879807997562471181657501431361194904340453842431304621676498343311324359611348775528544179626971672913116051189972735572622992322729343407798231861901876545698421110707891270305572917198542213664736171430902793053136200572556417011573791166180834030204049369133782865343789126611407832166845642631033502977647634322998075861344641119696130616279728197704153463518243754923871359495750814006017180166416195442229761633334753398043135566937140662526043820062640634515600626956318321774172080154264898457794724442752048240735806373478947890238093951086537715856582682122082159273884383105489274126103912308510813264854674997779259101878976949971372069953920324782008793536442017954113419496050835442063067824603356080484710698897583958390185336490085511977664833159542277409800276232254073636797939506714570501546233786549066835831972258016228219230631992025767083806186139124953107182484242865058838409438098780578848068760076175976449779090797227119189242529631974011543218229782449858776239820037900802260736909667463895931375404372825093657725383433718478895091347667905709070755452334098463152790639074999671892151616593051499424309260162344274068175654826679139560528392339333171138403621819765842245717177148249346016359838994374726398619703411752911551259169361285651442472134039148625118298561292462815549638625164035669580898060055983700608593872568355800747737887292814663599464222595626231816666061835400127518159153246748708798201985156200079708976592674750858434020865225196158015944737422965395839768926388619628133206407636000312922148885760806381459510500941397809217924390754887253484056822715276707340836255401530345005628274240352950408752398835526977025099257128524940902686210803583627600620959328232703295147285119622135236834218787897880485444087963197813834883682757916076076122943657038034777198607807960691941625434177821128543485176513787042034604537770480691703154820747442552908517493016286541315298543832518758025174832570479880907788971006415487724834327052286640626021615677005813941692307410132058820835467283402858915278070680973086468982498642985105453639902165191407214100227496549964960506878502065176906483805294065252378039964997194142289319119975779892880614656774029548638163209396795405520414031354073423076374987927762876029066081399344611596460505131391928645560707685374559273076805240311078530458508955255569753978999112335292732761766327093519854885787401725615406375469855725599666830517634114227721964252584166520505471425745221933674344968686855255940439996489955419099600367640024130003881256297437941617772251637176660661305155637636940351798910994375674099486767516104545637584913888315648815385883109102999361676192498138967454881654636050458784466092595243590951677436824915578255909092206387181136303673422677292902900523475974102832857882118042019708899060809815002256279847335038702769796204950879008109395122025279374979707593550767598505226135201302649702477588810395277457075315638763189234344692935415141033024010776778883391392132046885082773038658767710455727318805905424294432763338714933787622380184426245099291988581555174439343336626575991431014087736378967587185163241476783760679100691693910060722512106286882508495485371320202217333112389423944265289654218623727643248048209011182693952857063034574315458547584296629684791277432623024933591816597437018567407707824066458936200775813424471221378681780671287789341283929495447951184428114524406659373422369478865222073231631614836167453505785740778391023174265389966251468024028511563257135127753776532205151288686586690858460064581580276580582723951930196312989630003412942121953453818273601948584128541962413530653469782782446009199708302985255242877108884230850595077684100970813815540582598674935322120394135343691899021225799816302266894986109025009688811044760843721310239787981907758546416408380890977160322312972305049569400298741299643069404447551636311354974427143188047692158092847895672408355680121495607163176841976512992654552465535453782378613218661219599883843035302276244346268621722072570554850000093115578522439014530335216374148618142961591026577245161572779568605305089908507173523412192309851968237289026205080285193461740111801738658274292125173231340936094465476040966254175730846259552069030041656186683191528855829032256233105209117725464604645999755752938372548906349898513789580233414571875619540123736221114435501653733520400391943969960901352450268232282942230914620831758892304311874001199329134805735926344776561353877139026829535785902896573507498975591871604373652948006279320213502136198848487175633009097008487214711667241245309354671336570077750725843270113724815577757039288463169491175450595744989484700662397170415974999734861734113228133482625933430337051541490955228699034709475678907522859084962246111019487495227380622482965739015659072408324272550808797135786624817496595881542601272519614973458723629659865246000673447825463431827552307015158595378304370536492064664572955808968249850329089791950709323972713510925865633030574500957818058284686020147587052710668131294059867407333974008312080799325304639943627171813187814258397843205528166046466513071412280965387665143003853317956932468675918838768913380682741401761892378498327367222804355998154957193155751067084704008807207575024041714475659083071316772358412685728878584234509105912943420550875490729099310023018264360609822420316885342676867379446549058222816253804179015746803871028371210628573741257543433914792520095642772979442569791409452226820662817877134823270175762594640240837618005291556925703577698730108511666825445461010144686956728944273172758703144387268917495521334458450294327513931139825293034642969850111204090187379959098536894667772291008084850881484447850671756544810993058206572630044879794623421261127319925217612045507997962440968876040419750103908603032552950918070485725356642509048132937670798062164268529617782217707566762491816353595675676506822014466588993204597122092143132713611119473373890774141095315672791727638329534664157926000457484086357645481633477413706266304675020929654137088088539790714892547838237129021764910823068628057770416562737418259185385794804155166778020599272436588897339209582274672624739627161708131226849105520631757321782618679930961546985182872376469954157430376893953105361713280097043322268668996220144206908170723074477743180615228626509935887833363384493197171988125586683728329712188228323939649538048815099089297904897281954843854437917595778150198059109648897371202576397396852064976465708400056211183252379820996332205790231500279984655544610636281254989789002766405289789291118666454947133674953805561243072491097012202073486811367464831868212980606236590136254155229048383529024993613300034779695102381228735668241702721310249233946343223034286001536385772298638304770144244039682031403319735537113733074668271896600621384403852881317277027080956498290842463450887935171695940828315775816766807674876067880024265537247055347058593982506214254001697484829770557453843121799409047761981980498315896173452486807328507893896379787616856911283083422896771150093733693852505614948007783138799408848390372988239016476614456010702765850431114630173554993171116386804512799510812259987902583446228544903928397741119544149648729547186876911588813172438622758947647792176448972471956543330377171570575222563098149475736329724671105178144340433898855810889965560033749635705382639813440909256964245057535001243733672684485457794780692152860152342534890595396481467170168766008494865566065122238984351178321922995027613486531826035343423364247395167581999260570845081869688092540690264454758800703122768265352464165375363373248640094449574696048534441313934562209428054688313174817034196817129194957982035301733455586197962671877819818828515215549996552765400505501671366495220854698100685365747624706585643143415110769739634299120368556566439161173167621207590234970509745138659140866171879683876457665256807678878063795986366664570343979157132392819671317972979455082506723982160560750926775326736961707403457534896964833554837707148202879056002218477618267178207454400019715458155038352322913674650092614040123853725261330183862611473111409884198277715926321648529420412015008467580683498525946934612624793258270518185113522993036452010783295445780724635812095458685854985072170888496177137808650604015654444185377281581687395678735331539109574370847688484632672688635756992711268966824057012519581661657954436023063132464731073719833503002557176197966880519002675732143467760919505617264364220147245739844648394702463103385846582895913935870493667627182482323047439097410392166956847010322023112318493505061828880324209835595125845372668149413577987905929279851136478574185256373440825901778792000127637102839714841162242272644450869504330425030438046796505956653750003449058412594244076307794731540172982375489294674261292772946568711424370892737426620075737908452397130769941169454087208440993801744061165133034366682335224338032751886473876112481897442032637518794312790119324984544813263354165015517804600302684561384585889206960805968386902993171809430682747054260837777934344916107641084537368488377063034457698616600010776773628304504590910174799495235363161916321843256437067166169032826056604254676512880600720028666997923610906214729187972203504592067494642966161650845677310715253861252741309682009471682130459202569499855898697715297251624467635991239801807849205208281332420108362937405925420827855729549594814312453397323722775983788185228345415874144845038177433173108452666473583029538401364221447550035609507516000913978810679815373957719501672689871099142236216304419455691226692185958961233925888238795900561678153595295775331270901480155461151570436791724419048942580042763249600181934826240929011630052691590725498644316784925638114035348697058503254874514824856705819177476657425612887291821631041495517771786211319752729105440377108385970652441178472842595219379595494019673325306180257940486883261286495661327216080871306074733322263334175179741742972675679144288811752939498231826994714975243897359558445308489464934381092056487971908359596213172742600769477641160820864993161036158583718408691919458095394217688799954182799786059464836314084662181817009840769484899921898146157925066462073929555495738332252851480152952125025503080890441723716035287804052176738085657103773897581604509769527194264720974173917207299329268947795951302789868241069751601010755156413831347020478558855299578978235849306439097999186773889534102993005727664109166269637480738059238610985729729784360191531596429047732034161816334838339684238510744788511029167832876026375116949837480684691154714898505644405560903781812144089445261829454260453134093628981759847906523948945193837971550232535075662967299015004035200248894425330627862582138308430085215770773222513563100803392711154792930200660228816302286399273195738651213251305482992789486479235321674115690278155360719828414284382750325566700046611993031560609819012839853060209864835087884102806133937456976431911356476953999013271124419100779705675576207236279052115377895069897856530982954745335733502636188488021190402852580138953812771333582238377265049016294340969957259133693163258129137139739544049245480805877495266197651013326129545889198028921223343030271045066166490405902997931098842063121366794237705532767596406385812333819484734500070371622655401803268600776979626619646575643669575369224138394274218592300255109499313505847751550378580154532552226050382826322506760118930734166481751716640850638763373030823655080081540262978023979595098121986181701922742683282266608207899545999669781108758725798625558229072543421414143571217345807944095000760783886111946827994545027336076680050605759083594739478801277540439308823262577907938307023425351027811779428763622418104137359262706044081176257655608832626818858609509895120787484364382953304369743907444688337396706930937316273114310396806775875071240490966742315321084772124078958803206800760312485081274321911191286554231304174988129649995288617695889344054800944858426805045804589131606176293469349408289836088837493459764907456527963383948767729536071550551590105201668174875208161329519520198971129032643283802736471312977033298732445149336125221088496065689469627933273316290462530658193440372825878407548470022886838665151539150483128777867363044997182861588978410852220928518424275923533728259939158261922781282751121810239096860350423297753888034823521405673827211289921378540530043486837540415037079965170739700296176986284460825496510733086053257786999539438716697511004213708350059372883318323616976020233906590697473827630525551051487941009268060708840850798970363819661812352069046848678482889025585652375288374325088344271441139657441828824024013023121601978700920761425616950467302648480153796222007725732560271050709586216665475156719947129931092690703745488008897947990790488337732634549872079551978470230758280370406193376194099073935992728432523114730390384599846758846461040985694504279418120756521598175909183724586976538352688943539982592027952076113154600509820923155864171406853856990031673127040600288683549205960869657392873461033154847329854294861283404568402668943453137772944315163381580604601136456178095755965787820342274012994353361169730435172037584052701129826498896941191128248454943260909478947722293908861148413624773218068788256212793943448216744694886987368944984405868630999421943825942875690090809134603922303982759203533862532428184118535579220117961662020470345015801315320025802121214097121973638994232821677669257746641688883754581383668099520007361925999606064526883583219188178012495734071729382686618172884030837662004311555462449253012357645727384932807467866023021483883783468674833638152707368803340901468233329451323818512043272993506353474931436625183165822489689971003677664050072985780164735209622887664380662697914725377467676368902692653049621071646803217161560290324338279638498391841810121982354998064256359031239996476747669419807640403084552132290443728487430690282277855069414387291916857929444470950723112236142831184059402652418734195784292461591193590856372065323065220535890926798306591066822892059018795860315531443653771224591164969479890998083607930071346613100989346918306117783407448341839841774451516464488314539057209269817757570108547838345670530689210094235061782816253098045986002437764266911919703538456589527754602491016125079954609940848066325493248213020134941546183985764789826414750047666317494149545799508750618280142510021170892503441587231958857545837949101037894002329145123435602977359026263761085230300525247250660751367385526410018080883468138105507737018018558266796433552872446254179125244709794792620199307156883342457221845029691234176603349718122355109964411411287135274192766813805453354797382643317377532805109336362812646381400141792357073611213468883503488143476784288372174318113012134057021828387622003084304130474195104526764089771610011753049394415854735319522438307153569907542857141572954878631390235534531510143196530091875578064071923398278836335539886395449702724297810272399862763494711895781721259041638944282980504240317278556684622903489277619575888318198954039202253663191870827360573926994197519712396476407677842357051883628528396177666302106182253478099565851584234965507344562964203078666944915775980437036042190178732457425541473300944130131193431261418132784296943249708826805916865784144366469574743762936158338777298095197949003571975623399965166167486679610392452700481461567828741053812867447805895397825971043736687396176095695344146639873693307635024316109500163351854508046936985419582875309563566991987798524094032725581455540626504240236882070213052009426030687848763716977864943531633594618145134374588445031309132745815309402139607631798009601327964209365985336035564782860591231662979950435720917924263787452262346070696445169281013419223834341388075686751720352087185591175983348577743342188116354776790996054576119657041112945902314335773423366408301306688995824517811539342385593146080415044045787021642176596763179629641705861818447390209760435691246743236084847467418700770391059069738213842263050251347536206788383941469093361615895965984270220388151998802301096659027297428103455991640242599123544485068037224132988108265739881947575328158630749948154270153401048390331538705231052329351362120870734121017730689469981289117855378222077475827488402241903250908255803304289800830272199313791240080395593747521225634454104172144075866022541099287771184628912073345690927843970534651719727458479659248631764759630938575033415123299700271920614002180626926650716560368953466129679657548750275936753819573500938408154243785494648791686538173782490167992145988075501233852856275066672934972935643687227849550948259073537935797877344199507832625716093337979269377095186561153922584824340544773430193660919238181087440198479347028249446170194150077844621803964182524564262745208690398817737804251746777509232123090751958497587120939730850457712922532830208151269998212904490534340761269647903000177113577321664745089460597219928125436718333091780986448738348546931929467275531025304899054128468719813053442646623696818775894558714797906456807838632157593933313618133221804674186075512709511509574199993839885800769558156364255295849707049374465957298991061542934059837161434502679683764009487158301442416487229061410049503915767894919827430916384717786105812504112842373831453789337403966399623753870355235878286898836234369848991435586640983001095776129165402785811783017016154724661717385816720259333876765444152062237594493611242043499969572561527260733197485596468422986985261513253472886154509153013122473564305850927106070345750717730528710521913410682267723576051840376115065291985552137854441198285516015117692668082057399335959554490820122073871400104027012546166348114030437863309632810642187244637674419713433485228805024019527360009860331061377082578138735836827945033760267470780610909957301213587049407453176456269155083317466778467278505565704369719398937629934908485339095827383593162755961446738404612485969376561966709728209851924972447054770395053943719333973956325108688279025309055136006604351706479570779700535269823733206134748231523023415258776410165673971065336412849371952974393965921713408716424235994084178000961685880758956352079612368829708614970480168010758022276629470597185831626729779166889127298599574591930197991724382249189507492966313825794609325574082613319554117996610964752497191148613704041499171399998515662729557678329852265205714508580014471216239949576263694611720446207842310368478259880268942515981861890096311239201271101564674598954462481530815850397704664758760092652335535243040187271849583614897952864081699801785725275895699004284063713309110375940008974181302616213569879775233343527729295751403283963663822280696092943900117543352597067780598589033334229309853171804684630873855726967343196292603467033199769562139893051910611897579725981443222424736200200680684327146481520639867869584444132027612871815522189731449270351754403619759543016380055934463836633758482915260351332339628343566765456870297641239260363387403350746290137423373705140354015078258490069475622253750549118362861067090084094414683917154274931739646212232964139094658427855064641711148862830109732819147030822510506906065390804010898878432241723777783133524159749789720643311640717969379327844529440968110612267610332048358119293496270552341873896993826388476505680902332673630413108987615465510280423585906307570040393932715791114345761412277530670502024425334727045018352729301557424998633787041238094298748726876347599285186787147268445494009799692988447245390642853166313728792170235966247613562105856155931260297121482337958271382127697351350681342478672190794290042326013735667069740804792356428388172254818350221153157310534012551157876499701336000928647067157163916696352382596583804327186766882156743980534887033384773814174467200398989090221889486922217407776759469878749827574006429502749491662746867794126940044619902052756108328678414333308953469762163300174157643514055958764203253230101215421544265100728822591820779785497189629530468388690035840288189662644979206857272193818279977473392157667789969315088369948101987006627481596567370800747437747884401183819075094638751981701256861240271719498335534419778261385028159806560354825784549465874802450008975636395180700181033628805962854485332107418500388252511057787624287179545076287723820914112205278116898470726254790870674500939141059667928660719695075233938682130372446362844999412734742788336724755732457693580321179321321186899550880537504541179967673512344632111002647539810931432706296614285800577170314336391950904463869975166148129158839366700706963922414754586098429853048279303340927407562649103135784135523812075612444183501256939858020361863107918307892338487656930259976832843822211777666527858670548875065319923625290466332300009262097902438513832838290121660147588446966009961858903725119683355851760864513053350641697667125128186765496995252786311210349088961777111167681687397057892447212355812558990053392115457244407860823950898851720110535567318213382830902122917458484603168026580457960391229968634315078846415708926155900014327126046262031094227633147348374231803795653320392133389619925973923747300054229693990470126722703298907625537536800402982592699358486680184139178845239336010382426357719642709419768230760341600047174187046527872559779442568869175760059313000294285523188294709618544816262267083280140146588775582478067384437997236769136941062522152561439265231413026553484058275018095314323160933598704735830372268315943953216629822135436603411353975198685484731714762072464977258293794474829369691122683603155180610018122908198357269949736347671862827382989196772951084659152512560657282888094931800416735072195332984538633797301371724204196997072487518569880663116404321045109216844241404591416143578514460118334831776839433441652932798148292517316679161540886506127850234505856364851434407660538383480367218022870120357651398439752192637274174827412866693622004042976972254949929478753476007705045095852722581629474353789783904526425716769708719763129361507280616239971011933618234090208213944086945363682562364277004687736177013432022911136407605760981571294804848920083821791796067964129832926407747317920627183419267308582076444453690164186664075452609049355636398653598376900415151027571854962656805858342920181970237962935841709314676865055902410448129841624282778182609475481827016159225750072272441952583852057751824547007955001341205168161400007162910216588459442769158979250669391482235544248579793161444998050861738890531795157089960988257041766546980109116476210036411841816847738504403470533611417612289151864814960857882887743150889663039660689002904639369913080705090828347539446133077664210503079676501204886626010157178919263000040187662143228989180456611678321981095672367670608386632908655974677865794199297407264698421651499495718670193378243854356950794208574685742819942699444486909206055903629393376696541031554043058245516661182049514174138462810878473138595146976680579831297673634815002063269546265808886743129016929902327502280905382478160093591799838845383475122258877610041238413785307333764747478481147821784212612457579106211841113427450093805141030234551198889277564915428729527356644612952865715135247962707273341781822483837023448794388362848607850420487024763443069920916133290450925085369203946917650781599849150107765658581454035429852759297075760377636809267340229270824053653630121941908033114482886652242665761635747911679150550123076459377855943154588361776317253910209768556574290422774883955148872109688861673557970292264693211532545217373069019363853818438317138541776267795160598207020007702751090460987368841768922258158174280347500777609300311262523375909118726272641277261738366766657530533583608972402447848807695540555365425800247008785539799711486533026439569531763139613645884606234001342086042310643319865441591643588310883227642665596508786821575088251024986325032735829132587905572790654709541542497631580815981719751361593161244848114984702391946679706478184262849810820939082211360731894211758743670547430151767627897265224384097572872829850689925124433220634371980062688720484955800993744822118039014616569650532949924235072867574010322524940578071094889807925875960465180486607201682879272054413633797148756680196333019938090154546307695370587859489301095264917535894392385579284632534755119715659431805435551600352371598694596473664498994711794996964179093212917886846976665308130971920587842436382791786753674163745903776483511861774209848799417811737023001701068573125139006104557883768930220934505473371575796483756302924235696259141621907021315477543431509815216694265552509692981236429613581509237947530880108817632497331635325595393081636206607667249813503281601739792258938859790037579186859699470036119333690602236995712815768702128705723415516624880869747371473844986765026998083036154941749782579715605113744805951058972892605434163639557190056247481666441229970150326229944167635701252760922629290665247427855672495002802574185417312260551257545300390778762107266611484746028677207776247389222625641071228746881854549842113471387581412429854360250826404723798292548977009646786349506334734710079459637706541313163744088224780990679560702056711133695336048200676865416984807454863957351676574679403849648988109183040848125499970974290110817933886469286570519015385604469413176983832427291567922019299046275713884982538110432428850675978345376999290992871372781198038946722974260642614156940527607025264537359022998550330996595855960833483778649327638678631707337150192432814230476653551480439718675993208134504745208522257325501873541779237222935915340360643398056826561989540290423887242506142175585365708634645297923906994167756396964398522346139620925687760750835344274039036860634980631939748616897175817201378472864819630536839839271398823511965076590751365432927858350936650015545112187381821969279416797898789268432565070034738276074072111944866852602187564049979384105037524685916262806922810262643314417347046469145583519975866448534057822672108691451191173164279424800166205179686415913278274644118832741157681474408730300589018438748418398062541079970121200601001892337370445764003602167152375666922898516306089153648285527563709549036154055100851388717787655692449499148443158467339954530487606344154321081699967314193765741961381127103765447657931804809923912047534002513284919278668816732754949821875713111489223154368132977189916732439567037460204080700173659396454900202967786213709169136141642580347807873833319078802937888534233900547905299489395223643772914324855332645132376042988100737266093443983651319807387325810303218050204984263229848129756549620418794432393278812523897083794317606814943864186533989631436333314884370985299326491723870719288434917935066288609456102546283846320392138577133627150318954000343372767269149729075089472676109722280531996496290682292789823914773543215752145004855436595659090922421135037022138059335599517034884307738975697479724040749908929546418267874075543630996344831539997935689471612979855680153729283961329546502195674209294521097582974934459115074327820381214254910375794029489024704651012679550954766783991791358693638189519552011889674063874119681956714038790554868451411399409420996614183264397688136104754224731340133863645468653982703242655753738262969319933420434059224016978191148526560100729854118241908521841519114850311051477419267573552004691495447266159227859351328013365634927257558767163549569879759115907179284887830369574619096362570288405407987105818075255433405516826469993141673949927024914190214398461565249678584831887277889923783016962589996855979967605026926742482489137687679530026390123235257760302534693081452345197541428062682857706624747475921327105793029886421691155443728621498072938257988122414142217112882688405291146145680292925713285362250923596484414838742433252497679615415496654573576314383811750217460992125703720863603867123027075657675961416749220445561097431027206368522377796121154222397982143450399186505372036617324314415603640741879430812541773260294179370296229429823976915982481442548160916588489508998509277681381534121181611075834598458777601079109173621690977263795314012938775117460414258835225207826657922849773036833944877789448104194362703764825767839722573469654543523908340317574409582179483618405890313830594773838431007098324799207107222116284739971847560171154539879361243534007701055774280202900338006340559482797474548871452641367620687794626496966669565576258418814425906387892288102922294483274710517366450518132873556514932161117361492701855146201099106959974274421711859328257498729330763146476004622668291586829089210103556010611260711233772731407525716668870277564284915705427982441863324762790012799647931139777137969788437875351517272196677454102888047174667474294451451584456422540971109112983792856610427242944281705342872435685572290768021262343933241797898905666385515049383164668792010066342936503874814445472846985633952598235246741707220951878307812123428337008563340859416080726874296438199293734297535160120260452389061461156564903131351122364562111961693465409665933583111563066249289786337679660604888001274757708238032901093064624067270534712262314171806642730158474490500567899294044403423818396491417882086452125399188793754997426450601463657296532472847847441534252225186018194983601582091003542099749648752921145572314908301255529022240813103501420879325268774421912764339974648743394367076499470844902806020162812840253242769017518784240102371218003456095571089341088253033904445817011470148117726135470873564353250192057395654655595784013701384836395003424282926335202552702178806654969028288333207326953010373063089916695417681634559403206117144665539384531485255432162468376650734653284871209131669116505531223960622286924768134181761880426058532508579636793587637856504452234517699651899075677129182158843257582508671981817743948521228794454282469498137358556152980567106428546240895773570998134003196081165357521577743287133389763413756714237836492313527548194903333035547487964527424215923939457872706618207067846931615324750384615365852255073971018878169369659160391904530768205351504057739841102181443205916120905085032010942214581107521203765199216342618759718287375325546585854781861189601601293598866333524454436077834176885609559825420706674363117321717180533239917651806609613970958202458043124654998561496831707847552063691168275333025810789676971422125221593155495846912112933219151509914522617316076509605381891882019866629291615470475044510809145156162094576551117948781844833582410105351680375126271453071909665113472898869266287848580547177787414038114033200694111492114837106342102337838060740366582725102403311370031375658282157221063012847621461602060619528713397546620730047368147109829508912109054181768351376069801336265592069656531045819763654279215937060894038988327497258912267297866951803761964713877702190147913972967123979996502173513987547298040572793985661630808828265142359107244542799829549337978798617892693035167216600905498611958741305046413065593419081082838491220257543642897182689968036465652637077505096298714880218291203521526724609900213316366455866414086607032440784890255306956806052264229649470224910383166928954957862486892409082252993594249945749346350258730237703663125450880228755545952438176904564670137215418244537155921064479609453811806004718597352035522405100492516137267999178719121286743870684121103878089495132044468235189756911517725857962320263459752417610011710046252508332208126847749409168633195199848012657398531038495571725475984010747299543744934512391609558433943864109022060588574898618063534884463461823583166279273120812403816530688766340319374479338903818964246929319053008376831770681691398963473269776109069908959264029242208702837402589644321599417498291350312810393610285211690232775987100522731703317317573132227091916778317198090821215332144772567655655192576695003284386734206093706957829539596623059967983644833176549178366925335422748171744370276320059446385658969915400188791748984772239701120082397359706166779220128890430819739669341339932762134089792623297662269025784932353525964204265061662514628285531469970407550665321734517443420198886706586307345455253888881995964818180916757198358202876087618460624454267203299179625322076190239935932514279880945306471701741590379943806712907807780738636329413296838335125879557209135173846855993115656339557592721645652832189530539372630674482647664658184246425330017281273775152308678495543915996913722203736302259331575612781390713651094694928949686081564373565130419287568224682944900781686398884748630240263188233632343487135178560727835457025718891204023055842098017902476288421906536469682878400883166988133312361237373974007151974530883604102423491844286430445829736093298286473816225643079541700775908758362459425794646896745028951492536934138418348797133695515594407836982895013368021349018826303109657195175334777104608267658400456036722645248896042057874719382785006594456467022826157179074961531471369984996139646011430102664939120033536816774292618000772802787760103319915886491021258230972540019253879695914133246469243424251651863704361527792354684987190862329764626253420055914066485187432948356983303438680943436842295638609302508587845786249454081708771941170032237894141601188214924512818027970026127762544298133938864499373849261553373255656596760104285775882606626482049871462327534577115652621976000047967347938057338087504019219736556274771461473987794493371868554744612844153294334823761316859936847187425419949188557516040092160857687535419122974630950248410445386999382474231575294118567768187815954034964374626032278888843099359717248826197787930772168589525405355078045807092823338057156493880212388051272992603494403293768799360355208485520251182091189684542025203560267310307662333809210210806533892468050304123086030675663656744308068716884262637082281867169498384796789583566746571948195726855934999934075458682463862941249215634632402559745695519100297927050217955367866119854177528095707132666456026341930582359038562998634762948990747954566013616666076053060200440769217542345914468521850700147494388219053932559803933842049653335866377515740908628986882910274777006079683236967671740222747352072196554178732562409473415856856330315912899301098343141590674429672815579208927210635262137949996958704862731825000420890063571223243788708904358412793357238950755933794624287931556607159257734826935066374064282568137580795364152264506953498709695734218890135018982777534016735810063752881458892771893103576197739701984740811696930042230433262441709424001296240950091880137464234984448315362579181035585114290023555229609400861268423991737983944095831378283905296336190067586801277673497602726990655613137077309497833780240162306004473193923239515576818156417306999686203871989456319096968556057567284361053774491242126331653925538234555319062592116085912697596254512096548971606010006461524437567710837112567439488395295825358949397734544286431809927897870885221820321206830479846504401024736519105477977294881319442153517602680149541333337644976799416723770565888999567307806548408988466587049844863000649645227471077086032910403383073712952100112081890850470751031562233381801223133596672461693367537973201465401281856836295854081580573128937857944819637533991493747223107325955606773077511247280879264520643682316837280474230342565293588287201258507166881987625984293135379235746101399386939185178135560741132360453051872809375978499012743396047030597090540126289896915387045027316448909312140769847666004432611896957244483469716442844973366668680273040635164257760134437908531481777725673899331462618012112741496248266316358624211025888004470435774848706278670031580241665554127485201519635964163401869589834265485907166659162989627825858889096308956586921837307309940877734916165487600629077546805317737879051094100820895471676753875598464431792189335253938244684931700535659586250711032121883422523556858274253688005079000642734899056106702281461474531220108153762095926856849596727852037594398369104810573672858901888781292341497563875348238328581577398611535033395830174866893340946796456643925820451056280481436226073937004618061820157127572527601680406074521492358827835406772847386602211211618977356924232657439522333864251411768752381039787311172957389094591456509024835279795924908535022474729282609779551137374612481149201908378421264497164074585419163018730633096578600998373951763483433821133295638573179049178051030878017389674111181850304586961656253626938526584113365552231083549830418606031692859983507392345090911109781422411857217323345586713204236294883832511684637648913049378650552281793045705167562568953067266997933194779715186421958849958644202232593138822589828037068299952006931577742898329963932189236239409179718051313072184824966906160725816492023998898419845463063473227663803907177136907024227627635432858671238390433685729469666472152513783200027084747825325118224793809987885323077269312010926909173282241740719936138122176844925136946416843229054946937571793562256014424417287990649653703116404581171720421493810678368258845152064162661354822432639489536572294444391775988086326049441484148488118121176830397918888985701937326505022083863477144071233902929051472607419644736672806753421668271150058250694422624542335878676288932674606655796184632346525091727299535334946327884401534891424963616144743788407225237319361435204656952319752522392296708096195626342560222851651602505301567042764263087241188638435761496628772100317332464724775114801082976803173530861308147615996536785613854051735081960130798530579011806557165621649419823354116290815840512256503290845902194201097578620937574138386318240436049334546711956581981467975229233222286407436915292743721232411675387182541068581907736803385863573661759053749605798024437912910664550713798756243004674238854144073726684683515281438802347436194268209665397344481017583705570474742246972246653842639044676015649244533527908136011707279319091610703523938838354792281148275146350399655319572947601354746094400169611827076601478767056281848480144689180074805959619749256053550262466127590531065280602595280940366875322452751455798423375488431128610847457571579819885361933623561722068903812395482843417688841641725460708395078316744093230867185782362974229083007894728643125787242663274976334497905265690454918940035599994551783924988642594803882812250581197500986122602026665427281879834577721262037487327962718706826706098387817029395759753187999116870618570263514692522027897585075421398437199161351308371431618468300946495483889874534994806262476525441442352987050120980466436000567040409497181679448613572463060986254195193182279196861655602860766350788671588275632476559926250038337356886194144248399385897016906697402861862165605605863562195909895170324445464294502617205750545951303742477964314322374065966951084596686487638071469949031934951781055979814625809817668772794043564040152171672190698610035676335093201934962462819707051988801940700690537701723646976828198137567620639517520359928077341742480591594171720697011089734333332456727209027538518207711451959068617041949676111683679022203857582736437335482870532336939393147944957613704975182845206503331830814466637032250519354338631103953131949087620629527272282066514669623878348287683075203270883711948662048434572376628201227075420212475124301810598717183011292736414591536003211655563254878267736447527055596852511988275175419290619196681612906564462108358043565422005675305992295466432450229666864704456936603611448467890551199770333107563933322047262484719701798817444062523679979760508953465139795345559279378413213896921321052002279262293153412255840228471622763623585364691789505786170805192094711159560486118541382053442393670988892427645385955945868580562553507816719716898930033966950865221578935585165230397773774382754134638156034393940770235326226730081678901883240579535890534929941998207127220752488747214484163817604106319031059903886161415526301048256259284321732741717937093664299491454860966747980583370144738750177285511230179131839652284710423919022750667019844123507860006757582617408203868703646226964478594863377167528006884287528618092719246313282483055515227054811924587251349294444162386039972029934703299188256886924447277334948490627862153891580810574499590926790205622261428228846783871354691032777561933378047575698947780625275134809365868883050323969147305766579062713672093603651835506269856081924663764678412298007537650317139664193400746232305371060714562862722138245562508247023874148636458527868075227559276611946471047140055650116421319176708800401453871381808985160584181655452231722388967672663171787741183153678471669692109814669100221958670301549100554339554585148139050726352213101687770640040117205456737992513188922573487816059170794274480819897928123764945724005325119527876230339248807561991859586316989712388837918307007667876534339036175245520732844907141385076092484836019458431368446818842953550683239039000004810945741171163577879642155385845743350751369990054497284051784574829279767858288866031127023995872709800115789900515070528901084900278142944606782794919493936649579210577833732256459838294395719720969806942033298530848730775254223390357223355594137691747848964702046534807914984370605019380908540983048104684979112036587867544933470114814969744847558653831376274913705837333314866965754287045626691408833445242947599531140257883563196480017245968339928793052792536975668572616092214249352055504307871709561180910779340519154945823483511256677137337141604401579303975367532189661654979637166242651100946166180219705880000432247011603625539310428999786227592524570901402372812485108914823653881889613331856990386093421954210969235691606000565386104456162200421288235834265227716927717731748128642208171931180557370401232333974308998311674085015920247819419688274583457926907330540024123108774305698142606595764397216219251170700804344925351859411965136979933592933271467360872463430576018263864366625543500289577330999370208724957170160230120981682847903194347766919120233678718867388571430079390681066026337372833427419638091644948230854716360004925641200828595419334763214082458529717959211111679480783605405241968469936493862522859723893529459289424730073496893852738099220196297002571470596956429284466295119712488057393741745672328444788741662781848167093175513337900506625574604691797222983655502336439351982877701245368138603825842383841038183671283424733340635587272185677024182216650910579500107218787815975119177988434172100285149020789480362060788068024485151777404668614620148448073040393186588992769229418197869927887814686135600891555544923663084289801320867462446546803397539168885090665788716648453669487016550454312954251547732980795796278218037504943440271882173280197538230411664425816792942258233506760515777917853530614696777042075669576328582985037429199909823537246656381838786510732699668256572042042391036822663295144715903498778201905851779294878107195130842922990840562718347261488113964903468497868511413431710585382076721177875946009389649204094453872511967455663360173922833772346040003911870933451850344308287147907102716974259581106939375558721069067912683304522164142352567584543989044081355006231120911011445584862869632731458686798742405360158096431021366565388425063338412146675041538896157152923101817348489036216877580281155213879688158093646329041087664595342859764733548461218784048611026507408291717967310120434232459401688493128772441154900953215855768786290246793939976718040896600222708692276303376233271523311424507139867560299920886926824414015759020875448430507875561822117491165402663154540431911407771417539680383196380704284643896501059380347492284269927680084995255907193268596551943446526299104813324040543587345337622632133785451026952096907839981109087448042584743451199767904493419790325308002370522162844807566980950113041197097158844738932693011153088718934015142919402806756574333396312984415460181403444764616020114406513194684268718714633001281381717149518251173888838201839075322749621997890195330067932732828580117912226765446844277274942016756822859247983196630331816541587865234613992004065194622954370294311636137291231107209618765402487606259777236981458045660971222350651378319860589268310188264816712570020750263850984070139031565481068955002961706838910381903797678286367981754577309547467610709930451890337318484667481258168569003614102940369003304546008568837127952343981122108391616372171423387344146850460073583107021920275427184458677892550225936112091510874221543427426239977698135307880177242763662748573603033537229766101100597703223327219124683974180118306575301824326898749102378787219531735894904575395027703070015714761270516749429895065402826345808133629950321519709641424177574086788671450248550305068965735103494476309848977997635284610612094230468643051108815772961444376304752257241983315083511387187214015119962861486095890348040638203980287821271058075285694928070232516178042718836287577893048749156423274635012416835546528864957981407983967017939764673378264065057393953352594070144487745995014429418701386009058917145097884046445775408092328580618057859173514512246616817246468180907767729520977046585482331534225208256213308999042449226656973028818757565406580427348448613525353929560108004026439066373225190845349172991520228347927809468110652610535257205172621052814728110491425560149760467474851070937270796301940591766598742080419484783790661753935516311096173232370050200921074420291963564112969861089628041328215979315730964305802428997312618339632777713889825843908938820944709871294114251031031440250235232371852244655350923448721696698698028806735962111341412277275338471911456505667317034827832656556114470907002033751381871530649407993585587860657697610746903879838513704813114258522048170483776907316382613093958088282235271328554080592228059900171681595395958154788513772841565379239336167908160726784743296205390487283200117341150355664175177780718280865940015733454708529151344067965676735584023808244596864782976835862056151414687394508543474481223344518659890792191891711897624895247235832683964499683083462365867634174951917595228976423110317879466706678602050533434407718519991650631303484203416031484049231552870478438079002980721442796230144286956072238149452308680283884852472628448011575434178426753342490365256813273666337846430506676771017111808755978702700691013632571198390736368245976574612695609693166885455949303227484252719854139999844342229579283794094881732181579680944190517441985246184371818870240178382598047087924602481562563369402818731913520463432940875056555450957674656240797089553148465502208803312243504913658866120335896986342230717064271549170337970882901343542459448315456308551645473317108108063161204390954301204609536744088777692404677820428885162976968453769465977840524942675663923777219278052533346683966533919226893935089603387199158347575959912476155593752298254171528603168540820595045831384806993393343262160493261221751648070384708771567440433717538629157236921993928001040588825491971012374645553165108075360265445269416856083166779128627106709533888018460733774644393093947885585462923632625228983569808739058773376887117521664641388223813605603404775427750918727797499072284044852767366153284606024129419798736528838905683693348378177522655963891318310370513919167839249507362644950747333030943887572989128698672696635233410251500931630327477893803635338420242609376011227496762923099760695446335156524888082558436352752603519992749226532605672438857724952818501599316004412056041908792727063277975299813053507647553043097906223999121275363470521535484142769441622629099757918396678939454166350329341680178175500680572583525929297823960535054912424046881785102205711886812907632591495206317137003598819207454864604058891742258940147041957848403322748809092614603968168948238863629972227998428309680023121417890427719096332705980256029545138789997109304520562274594790609229999893894600671287502720937054784560879067157760729768539209910097361270946866917014326763895106099596716689430289001034622072545403042084143040966990423424460170130408723407087109178271732825841466772660567172358064795808063710247855390618854413736865464577896017020596481917731011140339337150319209388973465285943330982018964303301264164113765294715377108836046167722916241384151049589996130628076152471677929498353619668088939762346571042302405209334614115311408025403504454697509382266059544334685804693037994371367419296708834249815001833466175189427679337125270578459760195962874792826530819089070124299183471795472823470488329326176079248379085329534300568569444052747199242496250439754433726842790437405664753737120320268994580031916952936375918907635346231054949414003328740974597846613224182620841228931357160333297720569184968430272587602875288537229670456558656087299644758530481179354289316452914216728605238325762288391698468755065586159310680603400936565449061830492040059552740050965427876792171024953671774961342700923947827451611645877439150185489161951840246644155488740578604972454773280872333779146629299715369159897003007632118480511315420236672893759380999887995305593885657960226390424708185139141672206600553586492739740615519867743529420738832679977410077309812792034011392904693858275917312121846120029140116374961453373632000175514652366880544852526066821532697218229085115311418636986590539527019807117527032459248063653952633314774740480427317589022077567684831490328599335611111653931302498419710658680211525151526367371466361699073536325073554926557753185347703023830642648281107381314895066406880370813299819316957475820697644722886987775396765768631485228968589523801259963147653361889616408573700908354045584048932717872608808625652398489717491477482329076642575418774744447985393045872122762220343203829853467443478768374712176526526365834434233164730109208421192032307993038990336384979378990304684684422970926825579493878083672700366111545115822611064725078015989559390612960886289931321823940353172090774378351039651063558912322827474907109598029923796331164226980040578983461310712678689736246859280948536515048598155815557725653868075304085380550464344050331781076301549939791846499211028196731819592762412481608440886627932549453018454156545831935864125372495060818137393984320015785816500057470376757074590815460953880037374754338164501804834880278057857384816310637109027978041791945615284776396039090166508343343225207359915123215222064281049674800630652924328954392176006738529246145713391722952290841149184916401721619629250401065443376796893786422198386354553271269401745951860221034017116212363814630907880932487482857561194873430823809445082048566661813688766896569203177685783570001120634908821833333617388911240501906576971457134864496329359897036449752672607636374769350777911746771410805239240980108701711055379606925451986769808424220402855687009683774015691418617004136921146598549263770915621878824985710562164168528047530158705579385811023225075854831032329177529454555226607482709329710636238316206827556212827068933451243599610347045628124986375823190791034768771642266463626085240081359862950600847978705242415777209434301122625458999881022860041265319147556872002741571380627400487775757639344397115154701409954853269142245437957748284779296609710107266682456320946042015966763663098246907923105567154854152293712398028851485604982757698104182496002044419442275633551280198221422607234593922123587052683495536093892059093160653366445191125921169242253213770235355308905228747682380310247895500820697422342768589215510256516617330549492525576682480139460655023467259650535933299617775327909646602827212715567735908290256219732192322828047319377743542964560935772925062389736622486098551791547381294216504426008560896611139821473271216316506750969887488038618651101076950791591801930798916707118348719997886156534078520977220764436773073143237345825669588027119901228719419377151978606852742524259290113421365545827233688502765718668989837354615103838470617995794517560626153746289600229045216457864722389704806899940839414920822150457600329322595401184059367337160232448648078668956516935521121591331231022026354343001172129180828855135738655142742722220687564727213440509951269893634051575302696062460462245730711034822974263236202791487822747321726626606276918906080644640519385429316822778945420582897861181908567279962410023443151515587722271135901121542972543189626931278358892305499244948247562241258052997145547780134170206039064211200418647762266910947105651110717223264050651142270395304861121443720114533982278530509632776815790229228210720391756507792080602163422213454760325802991004825188889896595986643931644953180299488875727488753557639216224525489093089071275621919060796605039237603688948630497355096725753959417179612866626752461146305205258197007478931742158227980324291361670340806824354779372725680321382847124760011019174614580531684242435367020680724500323514850195418259135123372324182714715860036187229269852157029908022000194070222581033139821485582015167974568614417822545340262053293184430838056699455418498234687048153158519594740826728938334703719637479793363019185912576848131732311381589424412169275585231117847683812830874401376770514854718053609854418680512965286603261076299782564989127895388072161157778260637290877506732970207780372906800833303625225317399145992793179325583981215761509123901492243559021845359644650467478355726356869093128575585406846937246888381018491417465081171350992941178917170084212153798840642531461612316817667599589030551254715978112521824720868157573508600628420834731266894331613631744542056353765377729572197461566592583901929923900409915272308617745762216664613340408280062584264668207500116430076447461998045344915195077557328975402495746154851168348242708350393740704060433588578341511251787751055966504786559275122392612393190610027916663240005634139937518482755947314925288554928597239043667033358091169236583585075324887755080830749624022481060136739449367114107664253884357715418167110127087654619639192077697993622458642115775544596865813874109813473528415747784041895978734521693950879207715155578610614784074071926622705452974912863812732857418992180516714638955849238571578573200080796213871829246095012654766274458791910306709148634523245731776243789389144230254975806360990931342360511863565790596102044073519814621567879555483995713156586762919861974916797279326616746144930364217991370990702492247547117597361519864312546272294587223734871310688660319851469384901666850616929931095486071856123039121218476146309434061870474176740878968504984667198012616671024919286466064701818389539592702087536035695590287431118886661639837969576802847679131734841402188143412917149176326659120216265731094291835192486038327898183267266576237103247628878750247102386842566637492939797108681626446951626244994677803248544776427513072334354231444642936210733604569483555427182279452738826307246271413785993025207650024568958103706506983892738172505958607481753675909186151978107001183563917641423090409554992586560074140527595544276738587954555557261160297822764599753307784691325136652417724606023054321533879589153829956789658417827499992050112178129797864624183692322266133495173078567964343531420256019255749517201751887786393886676435157099101481248185598624511380019798106097424118175530456761189531975129303580959372286804996462338445231885851297225885758427990213035208100496271123996793697753338584114982614490874317812717013591397775443600455945591600120124421917642204553277776549712023045848367504944553930716973389816186082963862654107154034347102164986406068578190055502613190108980623931118500295979526280109462860400007157457859492469441160462824269916405816155763547028743190985093103327945904173462267836429851609906008181939224663684786468633556747658976870733007167524336157712982384930564090739869406501112597230978163716769259440677798186543082861529595423859901468044961120986136386288964036298435833296415228982272138920096653004908367860560734293902214109268172829238279898016775000544386332211996298352471597112390841832057851240854291037512933741975894784049785506375933251020277324695412090646483369246165336708096306676833276515314242714935194716989292891803143889099526958022722930132867061531627729214607369870417776068959250730685504523611909188607431181801516752232249084623741870034614737868667755947569820082388886131349432327360283678417134538588806031624879204970749820810770474839588282570869814659081712851336547366800676959093558588731079252131661355934986046980437935034190947103424993604398343973257236651051632817009451647182116409866162650609727200263914113687400194311942753327458567933187660575841602120166592275944947257403847698142625590941621294296172565560183818448788999520646717826328316563849776866290360799771605509798140357944787360755655347224144192098392716692412107816047982184982594059057474667207507431883141792499855798767864409551688211634071303324965313776121222589012988373479082260764518292565009472155896650231508936799338315306763812155348919139573394379060639513235615995888290086660588521077654829561965877895861854550042521819370471341226604258769903184666544361336235913894652801617840597046635106118197591800908550630828549157598480985577360795287543051623613253307693469285704821907882577394696207189831940873212091919878861604390163467306993808704843596074111486200955107355668238090360811171743210346766295266432580830234733584127834073095679183451215042580444623111753340645883812026947387696820648305706764689997309381002664132633804500435830143568836289443652145026078050240993578269418831617180298845175785005859855468058256129599422069050271662160444972615923512137597959654824921571272775719637356914092695173675936650672417671204151260464726584191846963246634477036961072219396658286065920783177043313342171192684115175426767964355943087094268624638461650543759231691867680046502546778467949939837100961598640454853012873914650780119920565297303610922021497148443532184927893817580231883194942679721979827503335492618530178970900333395152782523140945602554927288178932476788270535644058743477314653066980310003182611722227943218958399803111795358038558282225928413441861620917981792883400707621858498481320019589015303759171093026524227243834459147688456518818293483236846226357492152574995108032720244297459836207874032028636524820056883185024701345175684115685457033169169629168261534782364821059413908645571935946818199083031653057570485582607567496232425978738704043576088450473018491007050782521083839423893673534263419292008833901855140148369541600318876902923443605516662241792947656219032013662561605886379860004504493908496824974831378631907895623058457800684019973266873502355148749640097664522081580083743209516129571790787169374218455627136715334935134864949499264506212370069591996239751963714869044755727128373084813470389736827764039310387374168721224561521532900442281515175256440663255756737831092497021063470092510639369859987034061251381114253617423272613351631138865833445564838548715178856726748073704315103837171646612057503217610392333052559167037949762115472947958041411074544966650595812040506942013135954976814847030234120254003443612316713581719188627312414569963034893099988219979475583544355773159596428630164405429971411858829649050688498809182142322457216363847006268403406143172155005758477725144525165584233156858628754707943475467757295629319687395977387250236055388182929047051039831616052517832754128489201649505214838816937245861048551964186322341030472654349462544871316995039646684099275053964736472507026048684139017913136281929602287251247453222654210343354273864765990695055056802155142310184700999212044452883174337214309881075343582272355267922009025315771044327772238972019783706860412308210022425950196411809182789785772647689548298888881687040641508708351246385088577426203451924530148148574317139694264195314561863133851131985069811158038022015266283150651491863492682886223819080381873731687753355724865327938678736368523979366913024700131095331529842775398426319089745043783705758001377198418395028419307210359371997524300633111474076709808108468773532569892043934080815433811633259599663826955449622791228293637698793999563756204153491499796402656182986662603638655801804178528321611158934801616638834665378537714847138996737727831819533175446536958394883840265979142320599976254111169844200270906991680730322642413355973417748090659937242732821688630301848551835485263977639323491109608546999902247379918803954394112031215353987657552779182614083759121406487280236639533384942560908231122820605908044528679041479302443952225111417078703394593664951802395238253646231214198684709142454620215051541029250223220915611336007379846706085558245136124843997264263751919665217810224268168708427294748953511543151202580509384370991912908152930580404449693518140746358721382147032877576630863998095332378064560516102970367922435691698979107587259908379101567789586498678862123711821014914272276517501085099579828552316361298840433465525946331370997144980562545604694194062074622902569280427219958198156192734187949360443932383744990428423398402109597109356517870060772652150154552621354770427384923502916114733019990786281228871342227087337973853873035688706309958595121301225205985812707300933409805397230689641697099066046947755857141193563366280960484614568162442321480209141848027865620296644904261896701858949859094897644352404895824402131453059205414126990445241277641952136411567709523469851161472229194333512288804212827387547920434017911332150202902510918273507011161537264757885745023341644220158679500161403948582453988512232158373661591264250652902947357401303092530134716058961140835532388879640592494027946905593619941459456082080497291562401693436625853625452959667189679752219594764077965372771055416117686507641851682617095180425106178821879642414955343200623770925486752827881783161673677411035631993403078445534822015692117428251506897797065645009797141732964984120674086499015414659900233000197759165733621421482317007374306191563399692888074358339354251996400931941191798916959424897399575163552463309461105687389411595050178274410890230808714447332999750077920552512408756905134857457428898345943655191401755992496448098130470828785690487978901331268911059727892642059234989198266926882732645238472507042093600272378219199204881561829574898259132313688726361693939669442656756591879829279497841465933302014377749215330923795994225725074964990600590135788608460458567925029635686555613173808897481881014631777326772179978999817010411058196048700664218412461805214067394756451703533091507178841751451791765444006285707764160323791476048834643135132257549575956564725573391255838109478690577660521309995150439424528344510228720604013010477129281497562126036224997803025846750514869751031460466680107333640739872464813585717558138795848997439538747555639435161701680353047607092067356878885378412210423718857343816153655076543947321855208442757618169761988033521960578647100268332336741512073762402392516601992262223244365716488209147713810574465329070278662758199320006975168050400874034873194349565973852828290672018563599922089737471939851664752054669736430441136563812226781092069138322870550050880705904079558215178146388582563792055636564144215469872700486463429084845410115925747371600627303779336564389775385251350703310483710316068587045246311004727195469887516523226504973485434804286887757020116525803045615611812649843520704074912111712382860805293123477239789638419261511190553003078050212117005006545750341071416012534312763583756313508058994482672278216810352197734618702820831173322197711394878568590899396157541489313916044437236329717086269158841031541480181880991796058556112176301878214618350545413512945718451671718269403091162933854874161604772640118172198714502618756273509328909267994620371804924626879387731580104143217694800208701995652754392552344637861968850852812273650890889716740650281527268250880350215085858845792181050425005340941216200989058630817151875710674026303343700175292376818868408068033952573972093001702843431853196337766299042837992758904003050723137799430531190400223452733395894140829386025442807708442950549685186986595724397379329339743053880317102435185241733842318947257322515911934237114039247967876708360238193957377639767620938816003260761429681512577445850564779002536852989164314404703825601673235492576040000970667384264771694898773245186854997170140474832815361565137350421040357530440067118455410406601097448599935198623891546088672514158895184992963456687874685568417356762348483911362429243857398763370112514573643405539540927582356452637535357180526341489110101404254424779538001457026593173995982772857525879232162575515277079043623661698618027347568117714873124558031239105645787779535111053853692571459792057183576739295537211366826440524768187213839647676055005250149675266677351190572092927335004629183538844606358697272461337809993165680437947751897496702833579451330380341024162090556934692463770986507885841784109110648087409990577613736565657576704787670645091576908807895837223417779270147185309192123168384061341757258015836066401832630817513688825812116202171101952105115892391074116983782168660504817364841786440483246123326618840017758341099397781730678590131398532190715070080463477952953682758030254179611861997889823132279413860695440392671867560722159920226903041124274757535440338024484436686864680158243490698698056857080964426955508755825300953126072860494888473194611563545045480027653827092496894477020669194565678901029015284258582785863122575837984268657369594941388953721471215356975709753010991987318906720882690615549126487496357417512255444930316751125564057811564159630565845559796370436664616533774188282781170133648107544833493598499612926240219136830509984218660788939620336328876016599520929742095604428581777626312416845428919373864776528536990711400846980955995879945350350415239065099605365451763242552653928321600419879377176099434180962391962064457284780556932019762896443451901076400291528149678603029399085070565721369511912823926857127750483289645287693917201926340569710011154666161742143463757018845285400903273205116701232452341112218262454458035904669525034956018898784136470988677441719955748142405434039628377958430558895407065889803977213760038099508597501407112846190561641379152474969883788114193224885767324864252639310658279829782470111797501096702325515420466320621434412094011626244102695756075374794843342721384898018448496955201326228115564781920122306956492905197919798273078425307931723358668691224994855035709846500926139616996678704085108421779470786940565913257829514872546573820687801239614049616347121149172756795406155764198972704644384243944234662773877613089886501841848917976944170635911634050019311136118518635287172112202193290822745288452382012162793147469098449217837774915801103853378994168947490720683198625162234623240462325511601057929744634268530706027943763449146156167336131487516962367428717871310556638395327853944048753296751200254852880955306094865208621104726713901451380340878855547106484932194451534014251020020447820378980587818653742739154823705676378412394610056869731950973771096841836970863650210965253217248535401247504543989266009771107182463870345769848601767064756396586127492736618802886707185359768586140177481530714348513491318574818092242460074212828000855696772687374132999521379050702250728772940962843609823552130100862026557729148797125419065727483463108925733481321688642152850925069965568001810879613275566854441620225028678577531879205031226332668340296516324871811770134735861998834284370543275951226425317560341961072251045571413236333505373320900852906369044246259209018893032062633991808110908201748513294342510389192033560415254573063537601438544796209737306674199611606739644216429040842449492571806421125309578911730217887396728399015603351896678578113178792569251007520894880723060982328187387613152698105938950283047535028391620262798121155761359911977889449325354390034381831431583564086473791498307652795234253062072502548345347685439620061445235132768378563478476835754992505867248250112758424108172452416502330339971667326931060382837121188736804831978872914843028953854607186747674878295155386490428998548598156501712389802191733296661867701212091324261743011884401338754281630978402786508894557495504056426814008806294114912072686268453778545979003017651677429079502685809352488406662307970146158344792448715408128217516998855441482653445267549099092435110666477753405001921093866051601677349651712147563764750591751518806725312857558842783042242982371285599847577057261714248179015413812940983345109136096592005939220010264916637685868100184838758786582585931360137965518291226943413653793739762995764131908751964370292940540545921413319725907119284502604142405693670989389518906193324232927945541933797877930333464033720063936089494244748393585680904686441892137241188155492204300558025065267547231992534420941943409035567620324498350465337240028944247709138948324587319419266048853724416333472781016835999547810295775622867565197666757659893652072677317595214873786420498279812882327428804787913173415462572477353475570895759074144199397349917426600105391511685726110682814853252825845065367091160300405969423575871300076350896521835092010009511916956660367945245580883505290324329614140702611189803362798490390502619845127830528479741160971986493659380198638882724029508696967079482635468158933812208661733843778564969958561563543893495435931814275608721256649976402051877454985348843232090629340208046863243099544351819372214246453359254013539093600052459735321313211617319867828763097685542420087045254597213265109809107480480761057371997742521371012811986793935394492417569213654803990122094382523130252080443704590979817306380114588021962154617874781905721072990366761477344856587094742501647673075158070547557852846651164179581118100284627864772563213095308797217698009423728042564577703882046567380038028594106482316134147498788061651491347873006721560007382701117164356204456601659712306830590640712912559265139025339182716310780733589113606884077731217684949972948219921225061534385904057229906207802550939718182385631080862639357609962498554762634337438878711224059395680575621541493873268750165364112131579748139950503946076632057662970624533373164678892560085183542989284825616116920978291546014349681741297316636235378460876788848625572700729867396545652824200973693463838697742669450049765494883953727985742435845091629082173021576055358643621686404367561251510624859422988033418824479874863648136438975562692908858621106451803589179091661079165930039280609722133373895536809741668809219082931243661943011622299153495602879640593351755788254161016122366147910950576172572722246059578807716698146125479099767460619853408361672283015268763949945995367237626379818016662251477568273042616036948288732210419813264648838396191390416215961025994061215538895760709293738771195516310577784526331209083242531678128028377506966181245263701770120409593019046307863604277388658027290987160161340517411787234971892528607691222319414499191473354637883993080080114079534736252036620255632642137411543167225013951310438409950850134439076365319036678217481404055718654743307590548047166117012565438706588031918294036647901553861095056338813170827115801461400540238236467335011942354036152628558909373170334329885443853696386531997968176827421661948557270061780114134263366295932676597282805349278296335287876364414052854171776147093083560799856330629928220316338346503609969373516165670159963763136720498524105343671248115299082191768050601672194098320764800035965433397024339494557415536679772173705446701813105351247645191865441209682523270123006744742053580788035826420715947242438782192117896791400786163109562797438995943174209884092695813163838112629754775737544171645914733419066367334927806918462927542944668179713412312232749611208370442084153486803770047387771912593863008130343088689876281521573881295518162514110602282934031786611465130772561290586103027304144131776366676026549687994946123598365230341761184119875835550692627519273002142582632138461338228810320185856326484137467063562286424047150198119052075321917867341972503443003550584555632376490116364181148407356374572502827384926659459320165306704081845707642687116084551056936986689052742947346492760941197597940691864728271483580592010634540221440122681095901321058304301026076911947154885874899836744874210669118062550207664858230736108178244473845447953871909562982039002491738826915333530922641401759523144944416925368228288080446362966746786760732762944169395449577836665202067991232381119905377243282211132758169638907501713672279701768375067310160432149734488769252266403999519183635661355673145986607128380703931786356538795526024392247596915092997310143748571677789670044814973721790664293187481165246805473835871155367653939866193546156279222024466479425965213041697514537931215118148623345581705531490876655296735541583849810861234669623720600799415315650163200436298117431602264248809556240812157659280063827310757049615605794606072369869281473167020574027772067251653137068490545857879705982332963049237448573763398982896381159784833518788360179604999153190386619498732270900306974122009838185458356314856371811011578733253433501937493580797339872733593187376898069439773707267504392121399353528489216256248181182972067020561660647727159119316212101269741542728709031263709236431362060704423989330618479261309290561658149676346955934776802601211422214037209259473305936269619085463926303585699835519026002457444057799423627381118926157271516121598359038470204670644699026013132841826619966363537101291871909129527247409578013424495147982071659711891691604532803929334465428770762180270568425877521350153181180005647911713610668955842311312969008563120944516221836381792228611286384832176504098088200920531828194073788079328992541828095491328692781619962657257949742327554922388944493330175338809538408735351233291586541867581898882413374083196081358368192631339293599808249031052126089140652668916633831927686421812943728393810913397141300965080585749845617296678589092310321647314908803001392567591457603450436495655643401347155164906627292513687678775836550651144203891729343908392704999057014586612971509431896207481604390618750289553175010412324835426791264818204404193173822317143199526408854221383528999040535764885578059980725951449750250310676132873245596739524294336930371166652666080524384547771797526277893385449778806338147510488700058047192712340078169723763136828455582764575321042053916549379926845638403738095363959394930098797827101500623503079679351498286628720560248455368106642399177841632963674243278188232040351943434143612096427768221579578377738462236293171081386132005675334168158745073022369647795125956023194636839382741090619647093534951624935136277591080557253008733853996140950420857531754887161677678879932117668547789759870007794076748987880019252886573530148365291262627160071539804777168400691874430377186023843340756021994838269685575197655780912335792057595033469182666158196831831404385347848875822752077454443419189371514702618141101663739752394490473311444377763043095255190046949768350396956897115523262890449100844932398410727221640749452430097899768354727516074364945959090181743533375307112924700549917504926458738466422825982874408058478650585286153811246166863914410395737469857943788346474156066020622216344387882630233011406480533073028599516546191358459565146064782838322453476760167787824290779253331005598878103444056808879567710376690905072028242667088646376645566791140106415555702093132271509117351250440461681487462749437577448504539325950776594540851402752077983868504448372529649600478928921830220347304999305691032254560503177637187441566331689840543927282109015224105873275271413507557728753265556224778930157012043412671284880998298592392407877167216584309601336333989698863731657710216491847926422825530515144681282380671933199404163039003608443296577196545403293452613873346508799868228975466513532148310537319685944929120900981577990557550750439689525215537609945475644006449660699008630594709725664110622668015621317464134436447469440502913087814499606970476756871974573783306879322710315252026196762225733600307738062655367045013759293967706898833763758149152499411753996983493644216678774374375487547105699116355112812055014938083264835355734964832693815253462477949180123272638138574503215222626822816891546877023404092574833524775033095848270760188355396685229636852356196940947149474196202578787556781962388603344605080924518067418864662725374932137434967006726244531686275140772087260090289612103655339628919984484165062215010030105177603735181374868391161720039296348130972462765430388701080382706101621320636902955258272867638968347994890713482226798892549199141939074400438756104467342313259499361846480003625954099921323218568048874148393989391862028170098043335244421187112674882005979592141084827479425283454374645271165342397476899960291642790869602564513388456364444745475089196966636778526442331639711880649626126366062000415375916720497651959817704132794328232630504814061947767611681200353856750986166858028680138552818151140462645467928505381812277279657328796946296152015326865014842090668145134899326054570604562037311086963071755469024193266364680616504888820736628193919341926853162537326002984189481784883994129478431203600063385724442364481237922834224822246649542738956131979626850234839068528936219627913586542378745987599224536466907110757893731334167825018812915764322097084255240058809849513531431944893838230495119158760989502540923038721085794691291878085231060773657067786173340770457211163662030545010839383569757880494591837843770932278998347393817059824659614407792511078739347665647667902350200471508657591271422275728699497128340787210803628254185295039508725580240091772185830231815362333613862218637352252445912210035323199633452888639275306368774343621862786600862291235864034694356912153676229848194240095362094315162926714437458552680039815191827425820671199578463374691402558440902259392143887000414375822860227217983992639729071567721051688331726300757266862088399793032186624351987009083095648698497131805500831027337167016801307732114399871534908532963874035161863200932666209721424505801168777570522875641596917378247185390474028346673114545985244331174338069914876349386441621356932142769851614807042762231421707553338150393408071707822153445669470505232710594141390523266723921555241240781250470919356661456008552136552640466271614202779309791580311487782608025387803252796562878890175238693212657384096767482237061473938871914374360060089647741455197192846365967789481389038705465938316978621025382343500285912304035079842006867158062490731745450251712001020038504809911669261750283116016765458856201151316890816195714822893580867407736802241521756993620978571694872963286318765634782248885875084148573279630873154184321594865505065569776584449216986142411885974247257809938177963990118549889766613713288854833515910451443790229723436594071603855039499849195501321557067921146588293341500439717389228450832136059929425884257629043012969291214804781492393242797404597671750208571216864768697647701624816962530884591572603322381835392999852695470384056543035431145812552226413370506292624914924930726335304842245093371305297830422791813974111726185878602602931051349242501676110627849278972670714617897855049177658386005169301839470157574934131501879548234352592107852399584341734079882014794062824045631563835744255285403434909792445005283344001946872278059787607471694677406498368881570935254991216631243883390723929125517111355009716172300804903918089332827573490613530503116137653534373899522557004446982091776692140511507408762210857026459134935746051162495283657053638684102652823040916946690850452534925251609155974917013875821004807188557708772419156622591603250725784094035084446769280471236981821722891211568614160469557792434790424627356195092958405879879123009466173016598206403958062033198394728788879806101238775707562313242032215735514546318104813161206600207365589073619163314258911163080319726367343156698809312130936713738708890855522626759776379411885378938178928134264237057245062416240246744907541912094699799624565634281859066705247984466366894855991511269453329806684618224801441287743569585646669594748373262129763180829179190814187189116113816569632040331542148572333936275715058737086529374299875834513914831280131708899005051831630765641760587775344626847122474036673505059508186544574145404470010640144093426609174126470989293330126127353933588911660868288211575920154818443539925255653678158571773462389097055654234698430712499463654821118393093879133941336566492201482127997058119295438664600966564450467694527428415271309243288857393765020859821445990574102095883682042024009770069979597762448542471333039374333792004924404670907432787261211474231083810290455917288914144487050416615339444663782327610592010226475478437409601479396911181504005896455473377555780069418713429080908805489788507321742789689119670559029617629599706519360837368491955335475321643469954207329448691659639790036465899345463746873108436478714303182910823469583065008497870629367377847482519761436585414745111193926786965606457297138916854411394318029341778526826078223540553336212965925838971862915643623144447689388902368154441300437681186651499313084203840590279160549281835540976489253132516385430133443202619812319013403642253233727616669810121208974830865972833944950014736262399840537585885817195371411440855841554800289088790351758568760634617348493337340199832377328123152235295670106623301690862940450320360361456472121407387675498726321915379966491365859593134080999857150316145063459713006343470268300681226507054953364919659068572475711103727057389215178099090077994818088700010139759160145937940103797077183441019888527373000721199007059679035659610917585660009357973228958479336701559348318495752220430674156870541417652117263032928261475543575435041328284926698252952311465674076212715006909517764991398545271633523419463325871083425520616350929889643266809241705880995091094446160046560850940420120913036312587804181023842902247373035169269062649048799506464435361166995349470254768621186065323396583711913463143511528293476852492768492634946384427641279814443638005936755741967261796949198059374556145735187022456629443693835035830395045607615505331611320037098251013086585638027513164154680781920849378763594984834986614866612331322256936770149290863538528698695528149975131308874091165315439803160447476181105426329709268966777332876527352825886197187391798611412838459962393819711413364299361425140098948370319502828047368241226494181434148632022801679620634813247754689114760088308480583719571023479520740025668884501214353988299768018326777251809688035178119916276042196189589044304679423232823678024313003903924008423886582541497352446670139917595751851085196566736725609242189019795150713527398697667643311230887800089111870027689484304558052131549536014703894095178709207164900005787895245182392409914844787580248070472641914174577676100419520406197552572457353119297476723553279978987770673534129675153518885605198002844050528448177360649411026471775456592703246967395114621715220029507863733844715556158118784973214957659937088831347779620960429828724774785023342346039327127279907437897242135548176158356576727272272917921135809789498002243364191694108837826907584119065304939926976229585455817788356147130242019377521278028969472470185703521907431538850634509347418295790518770548546494776437270200951035662863078921789704037626348663981433516597700195793785750056570434186486648431978695941095603923041894958211817980181876598725138980502199442942206925305560163302629736018306082393907818309045794096459575129560256823778582665940707833791923944437145137080255557828272920435773994210052356357905199838968695535928436146198226353512835036127147157205485997321734188385951049504448967382322036091517549495400915741441332343304633830772621386472592997027239007935623146975153446825618844178746788189249296943884410054717542615469764991599123328489253066086748193379588180746916074349474456007039149868473226980233870677446384337112534983488712684085942994967231003468007162669591115985622645935026795769058438017285921006042249364008363404862157082308334460828877817220690955900107396942059044395695347214104849560210833044689237020802415768122080525153522216436417453594110723070189852390196499173755613405258840989796149996935958076260672128190022895123520254042093391601338275638443759732033028854781899016214916963346408863695289311131046068083668172760133122391283116692556708257603456138629430027684069788679844203924370956139274488578280765341388722297510105169627174948414204297222270580528029300033737247840102810788997526229623001996180614370793768479489708179098630924335407093847699068760577503923322547446955028919197797412768041628335643887950808762968326590559433168035926273634924125762835001072681692870012267589041292862071667941731540844478824920468762095211103185846459951074232403308878725692512654777635372659972029418458533435646389787189507505249093644944932599770330069469731210848392760554811280879520984917445685388694956546088258828188825420656325561031016940234507611564512590122930199504929201159054759380349901018228025489131450328169399883106393272915278259712480479749693731934777390329783142653069438278217826394337953814128351106935661316879444775490482877014507618140307735443441189484511239444657363361039404396892897153413994697439123941990297506457559313918885580504383158779112192085832597969688091399939197128657376874409972750386373760929340104670895863526155887337694094378683709028128009700055878348718024077446266363568723225801844822553895016100775015389166264197030131356007481223695870571611119740017085370718474285257972886439800853654658894361288199732683695671208654788279567017959557198442280395034375740823173452025382833315339087714726899125790421388665539032122636946459379118612362846873684049617774236969630483485467784572911063495577068074484685086388353197703354859673477967537595739899551643264275049278761999771344245070770390567532994357713381158779623598817158855076120078030091655606064302965187963676999618660823819047515810948656806336916320730538132456921334166399201169506986377645800062574602429065323064403063920305876931864422420964009861412451074092976716462581437110949578591521521523495633944754402517878637879057229725113760253187159998888050692276654377195020815609413429644362561530085311925199204452549139368162701170077498773921507771317185241992023673638584996630237297910003280093521306574507079099376789422284873248741687246876768899235035395914571243510688604112425837551483201364457904564118173745567198361409548575317106959935340351551703430539087160191769806445542072923853960101624071031032987989105134191282285798892211195133039001254454513067109202014645762459981405797039792753854514424817658876516424891268031328086881033032683771141598042246486631651705114788159278339777522711277510854479315136693919826869155545957339584462073446037311720186058210312611872260447651919518394389367189852125134881534805157587796039171218878052627132527206843416374271619009020131975434024693119641498329553457147039262358753594145368496554639399255140288038253725682622909005305938089462288349016796056483974331561470142245411554042365581668052914170007217147893835506587098384638363242213707210215143858650543191092132323186547341380184987002899922492545043844576149523326168201447677574473292079852570314865584747962340944937846651057822097444552755473676445808227119684433253120785652288819291261844650950625954946906559940075372129295457704944487148512871991605303882059758779249601041001237081671357233427020015593104313560065580183077161206903330865179110389324386571683399588595784774835129155270791145779690779238970760030172354151503554410109301713663472667522740589862750340522857829704703767659017913168791517604048024857618922993844694169322795112506541928485566452005898826570346038290373705623118066178617344694526893525821376396922242332420380775177887343082767119234179801232271210718419503700475199985339972242085032903052871590037473594022200657323112393056530455764710048602971035184679312729205706969538433093763041786374461602742827987336901929909528564448323812396333066957366438311779332303633958549691335091798580544041577299049603934944855021813477142948067991562206942554548065933530243911504447276288494184041276765175645287332987221744677629785728625401043133674747407563959389581283905607527982590794190529685257145395468179658943850676475346719247282020114202671776298101001254939330046475862559490653299510138250753315375996002921497625882324923367941197713218618211495316623915109846739305329865443883443553222219264341325368710747938531281348752419905029265292224495938513001108148693498536488830914984167135055257726731361536238346655841199778222578536809231159403475610881195341866855806975079955455722510069664113410845772148546877348100399978549608688838826656485146387233225912017979935308691659787347779943022934856296733207917357321818634083908149112867364532330165640350465650808736903895395785048586957102652543859269295946687136226343801966556362357192867584893666425132065161621652293150531267572513288240749698084136812491170880231393372212981601570807868104382395813314017919737520133001927318524769674532054999687182656698532583417740646715259151036533407672833928857042281466124972226889123518595180049558222018377187324547871060117044894017143392956537073001638340420538349666895191983678399039668136624249622992993171580800723360818819688686303582741508411603105681631390794457583748393183313314365199918189152142053538505052014342196439959439052012044006198187405172331073746785432503784180899307456550231394290497726135246385590691781486766737369829129734339891121472446588444983768270434368933738704797232316540655845298831466516108620882031852060456165005920109096736112732432704648572370481152182258396706620010868283356032173339623590154403184232420970688217248109016626013047060820328013929838722968732875063838105472313427227425084365245313502912652063378717933091618601647280813445502614379746034894754834133645414337016969101002788427855471714341191322725595268833180187577547409339410101946954252811261971398385613283915837794076455889080102988665920865194916326181039277881477059305783272319468877464520081777892261713291601190290309181445602351738084555219855246530653134584691265362589108742377768768472891389435171850470609470703381266996858020797272537480784409364185292431573958446760061098110623112629213340969381184464932999051088358240347489269475241867373388596476710655032790814120170332196759759809495666095977024509172900083442639158442845274235617390934521006573378624765838787386793772597437543128505706821590440742911676878594699890117820912368482468896803804919202589163337516946392421246025104149532067876963793971077607580997948395648883706102593155887371004282840721737663807982429334726312076051473345399557814926349572226785265528948320861419555607415658374390926979745384512360510766294341614855434964114612422584395500387092134881225478823815679503237767992311057433319820170752447509846762129025613624304330076994590918256532537892873275138849691063802042147824824754255689350122081806071469807608135286142322361927758994831997885147716256827848922713979574169771883564528011015806746172914404165139924997587945026027814565033444323761458917935660589720193037490916159762348964734167569262627444687913782507756507890151491473263102512169284485613105224856702839532922038681233831127326351920259612477880672540837900289097957039959086148304567345803778029447609642937335398804913425662917795991341874038878769715687207468354459709348444535612172577039436782160084441440283945011220140290477105323621500632227572705122059086388378009260495183026629770209881066618282357413175139030262250307454330780598859933031538143967446671190118814835486419697343613456008007864290842494309902253912023682282138207327815152772360589597387980083403573632693579652202652587121301347553197778366848102972366466189694620850667168467046453168341216306315868157529991718994284194248736521107007893389185306252123664356457560453349646361568670581778565946697152616845700518217167641086078402211595558367794485226306774476470343487189787949866481321584414686957091601008581181947774521459430846888840282275264945426454462504427541231481337399761921225160780117700407458420871058722051792108629055882507318757936991454162960412397819848192064528081787018099242359442234876578214623925191471828032601834796330700390394258039384942537474564449075326249427365664304114753540534398005734337620495264239324654635421088250809294626450861555098656849881787414929475084058685996112962087263373077968388724134473068573515622029924308005835341390320397692496570665701415588371010876647334265442576779152309544510860427148483169429773195680946660126568451070814976986028960984332000704603188321364628501082775212384755619288379568511322480942116788080918951914228718448861060239960093659397274784619918634037585352232326025007766431937105452697620527434214636382806778943106244955619998543391265334658084788393257579759910551823592142900372256235658129365659903477680816948793195482001173277458894853385960649310205408240713982299545458826734794726294955151280585055262602586352262987840583445694965964279735807898859044556468645910471656865522044147598307649781373203384896914665441860408857712337835633719647910429073100905536818242569889136633295135279942483022673456873749325367041282709729325655521623094444500423882139073434313074240825620724303508355792484696032021255121868914071049578056301517250604090633003885287999760945528686354035978286303284026597782944571491862619327585969225768725686823017480471252776094032822347027754735202017826828217209447721364659643698477416936665142032708460295676906876443273317611116079681555746608938610211711158117079836072627946885441756469115122082914257618474713020180901316522143885344092831182691217012809809917548832414109350236960219799358991087496194007322904526396989598312502487239599495593227218955691525924089560876173635799349794701675832980855153742833528129921646117458889088553930912952946359235057667217666231101353680165585097230014696598681210178781794023033525680423673732469629203698985678329690917724323786914521717764847177087132032515708450697116959753411292464311726041307195891645585594222560028379225893275440166758098651038908886440437802479667225063105783989262704028297611748015491875355142636542824113704122287710243038096028042398511207967024696210934714813973367812051060513222479629769701988531816041324466886165163646548502400314082777193009038357543211251555397891795900846966678321742328632998508231369524048918369669304010102420206279592495784461341331040759231113158991563309167507188138784765469672756766363735830770570325082912275540141837085730035251823854275462012776288184594933295814760724682656705234358310158791215150830763241954627420056641555055635760500124843156706042492104942672419129491559768875508452636361937615393786788646829361305048786179917681844160134401658840835992241075055647658359368676460065054616203635396644857012267047237331379351315684908671901234653273160416018240572989131520846637925319152800111467444111908117579372128860020426679935163467073489254506459225943721950818229340446205851030170782548186479347257793953934551252518478863614236454711486469439446190444567711387703194592705327669615566388407411108265495208072654725027534121833953738252966828795302464158276309256455067337967436958884960094709481108650889947941657795454194800742917505128055265536266840060263240293375360882476403699345925622905985524682921201213930724663881841141883255683956664988386668530453455129034081097544426679838833461221977413944590085080199600266975260128434431147568548576176540473469235424211310372760256294003967530165355067980708191208052445181049105809191514366509857372512723230141711368292313593159440061942308739282096682385928897031845637399620519638079091085558831103678378444865420932951022511389464050744362418858303908003211406269617836536449461478187058203372500853765823467649376912255612097483452818984816455829270150151392494899447522967542466463661232317576669983045203869982988950712420366714019038454965343789228424294680835738952067368088190419519066078972175206556755955282379075924812269977350723420962591242460058481061977444049070335055631878562522832535967640039390776935954057491607267877984706328900001531108081654717633602348700097665529678968297322848304101294250228898855392226110278630113120660144048903460117549510553149780209441042558447755864798360327672611305605501486352766351709838019159672557026385192181078031872855159275781557966293301667534510434708007833324060248581553667818661701255317209451125663392552655951452858814237508067395062053366061706288321117622279986909070735717855998749896985766940495629175174160355184564790837341191257410522312852258520114003523240721994895202782128406371302228317662622665527672478173940164190235177069589382006544212475834736828358592051890047052029543016749714619400721303846239454833336851414376701947251984316815606460480340372175102853794859958181823094198897987717604704556742210128959927406656693835180045144685010803957875053205982017390513263521411949905531177188631270165932142237010925475007157630186119015753513844953860014460411773888468387848672485837501830747991456139908818280162638706206723474799088092162284461553021308594397245726180646754549977262556282049939513153984878342498898078453860007358302810652402096754637307078546086127034791253857745777093171711436278718295477584736519237129370223249226935539599533194007741881050151705430165696689080030700230229892262218274553134134037948882684572748644988373129087619660365408524349179112451860687659018064335769433987925212314335734033896013569525018179426571599252067528798575872886048460794991368059019079181952661868630479173240165988271872994619356245934999458651477358984822719923190295539677630052389110474403105553578396275594941212337748962444387873005744290542467737609987844161466052548543031202325079398488332667666978714312092542160184629802965028027580321756701689418667613471292797773373071519202858115359269959580383986208980580275890358300242571678428155844416653206340738876561130125557945480341704737859568608832848960234208687737069399169944730696644741955203808361065614997012248686844119427324342379629131457410980364070080203384143462174387829319008852120737897684472294988641006007928988261490804937725818702964067771112107013426250065700215494507197964469404991124928901093936348076566863868827431789720143881323545175758862861730335424386379464922460339917382173884331362278966671581481700935876042038407892160791742661970141287935396049420831013868236121224298600561653069832647216926217431943888146002814100332210921710780811966871933327587946696317045100161360729837476208629424339588797230319618034642955919566156613373301617278520079553096324429766577350718517369207387931733641795559715417334972409713429533004241799103702599622863979598873687087213549338578512766670969754970716792553553296154479635916757994429666081651212943452864767960113307445038646310211833944510796331784568657408280899210076510155101157059465650634303354515663598192087819053734403140507161359147589215293735157869861643081205546172583313842184246071537042900072242095158943379538434073409463529283849451165145980341050332576311734327801024978472690101893590294578427906667343210159985714224315352894027646447277319743425783816521257244797683983023711194466507147176810621719686537958074290391384263449284588987836763978717163599701416061539475327934861582053263628892971600139070628565323676214214545058931528025684362162544788889923315901310558842820025057202194935719303393404229961368978408651304042850584727464369487773210197230643964574649387383718183838579315312186716339893021236224228645281515325721730602785676274264168988935127605357831668123030084727771772065025860095896531114522217034051091261424461430904681008515683361904890737255411715915519347457424440318691383959965007822926809163506837948156142462611944808202370914506961816745660807688935187027933862620053553431186008928628228929649802390414702951639561012049178331703394395005996214687788310699279631892731348945064527085000889538842933780211835345343155337950959496243643919422350148063202396180855594860255926992394513968297539736758416586534024369699311822502002215937194251134569169398322292665615151252635472163282015916331436738380767756785621908658002748451500984276659264760706462968393262975245166989281805360481009747298052697973023277989257302059173366423096988365728620209566977639120768730406976260418762778812913575225322774841048834310772190104454544557780535896858699634166048775978516184405957797790848010173798781254899480213707537197273921621253268473487230452406274402839663181840808626124418803895792199204943081003557109014447736881012466904753902503859401813290127249773542681034626819031618477604385609863877553910198532075554749978247855402736064671161503383243128449402902088648545753449579207466361415820959359867706052772682829301219461939745915456037367994039137872250450862355305561825311585456391179760843877296955796853220947086313793420749071567815412477090302742611002965936815312318047611833842675053683523626259549007716473262908216282912109987143410296040762790668225223885909122616348825956746632661857433793482481264122391997956966241992092936815237312230111014643970550428638584399175829833066992440474687593841920283199439523811449310587388944820977338567477911587646862904172931649959911353943686100182127774016235217976068668049649050361200638030235396021561892475361297541376375767094899399731608492949427717191192460390526684430744109689420258437129712393068245485341689829739561175023246015506727247453442284522065290189497087401072575358020467786934497381235993197678458256295101536465467333427666998255858282914961018897093688051225181349188220878253708331829346219081748394926377238230019175143597384015998311936308883503267331388526632798621390601910587826473813628882817752739269015572931181889879080238219952489223763378509686578497345253996819359853421417942691825595701830293692607433583054438431765655177183312172829913126642327372795871268845037814972228102930508937780488462301999266479767725888260891914638901870524304419123566056401399185451246283397587253828801175613656710027410965892538447853728823951087280702495925273044282178664842877435644961426734578665301996056740742019124794957664283038312079415708330802426581500651798811520993863802790213639831116725213472820233032641776684271385411883166105147382986006589366467859543623190894509930394488272943306168513512767676929906389177325218944967426464566059121120889298494520297687144111545184084375787390828726397571111432959886900631680439717410385427012090423576623074481797485424879211691545300347844602574147580870154976524389442472055796599651120381369072974062505431664006512602444626197046718133297602802566100550096481222873265849232819509568824379188974108611844146363821197164636612076920319723771736919757100993045663497957571917134163023759071668526660188024949997453087509625510247780904139564355896989222496620731992002305959274783353256449514088892058670730700031844798092488270534082440466287461436829097257756318071917042216603434063977921194713601728410372151497617527514539927284016982650307806615962487073696773028722779625279844674807339416362482381824118573736871165769736220956123029699658999852119066291320115035640343006863084440429214387608441902364393135846749298554268196421761721413014141433496378242077127785232019465657711318202664535349512938903141371554465502296495662283238713503210762546334180669285228227352752701816005284455112411941691512212108362283775329651011874722434279633120659885928212978282318151971071744699042259696732354563771548097304390391007224901571792257093832104785494773815051097756972701329141350225319972744478163647145768272977686025148949350137334531727441104796265656983883929226952812081099764207670347428394262458939063442843457789486653790627518802412393775130412306023133700797493667994160060561768586830031337471741161526384765575293413113115290219955126229647179496339874779849509991858601301881892983534273252389185847216029027860700391353105101162359894975980147637454529553266058172792649004581941927766205998279168242902801101753593388174722681167937618917045557595705615390061815348820284002983314840405406561417580676814669197923081541490466027746931020568839652439406580515669266681484070226213225960131840317057616889914915699447304048578982890487620425369071852947264988886810541054524147835380269694294040386982934460034522802715935518115938440995242208691753957352863088403717190032171907315129771763321866566751235261593604005711394335599678360096454987019966109997618153511974133562277629023473432251340208055273174370836199727607197787726590468514752736887488515336094349118424414331535855857283731056477070854472708027095091563099347900900721476687027740813569013049899883998513535159815695659511806612926319043192701108689896284141562531929167821128475358430863571492160566788682903544432299450136009024102727953777352083967570962976774830905238404903388155899899137975785630467291635639945286638039211694610728181290663070284195309818499849863163998337114067267902919833144087144949492480797342644294070525445050760455523113169445779414331804056819474473060072795618593054539260812842496374146209462708174495099261250213193965336301153411619381719155026066884147586860273387824164724777262135498328406681490912708284641563928100490360240853497283267157694149124060529486739428005239849814981458160577615156519050245074062960218054565909208854658220710065110638652119090227344326223291839330630683781408226723504195050402063173210350710326931844404102850751233055751739636146093690167131827556396666010417681322956865166267582862261197879980164502225648713156745124835372940152013155314053800570492281906271385865227194824294280152940645716334973175549172873029134513081173343393829283033355361554388947080631985501784790969932756798574963829120604923897180453321221437973630836947545170228522238797944468662448991784231959074439377714859486641026213741382998697096214116662466230872289506180821749195903959174187354385716305014742067909632345666882731440504506440432657396674214330224491763810660690942717506927304274434939238771038944967572251261903808535025190077288435759433152296606093258244086132398164471123153089062677098113674262596447373006784897171809965665233538829594173659205780831982939301312914792119865820583122463049396383591796727208461912797395799610063038029654446009414562919389053049736366636283750148246928427653292428947063815282847480454557114787467445126050508005122068317719134345726020987304243209018735393186545475388493225919383289628206964390579179824020899566046675395307288807339460102846291658392422102350522838209705701290412080071499742666868293760498486010107866786561846907316343463755151951382253279980308565713891007524544842318313403072400771133037512706186916996104495238738620075306675726679845612624803164277800510733590583367086927469520589820889855629850315753972076741169874743774807949124123133372477659688656810757547075780016651671222115171920673892157576361526796298312131176783913634909473255630310453394571701931578311017904227288086967690648882286812159328787095981681638337165206971386910860901940468855059959077958721882135599732363865575032003163612168091759479789267164831589559273231913920520718605933179519379851906280935126890649657271810356030064661923999114831672781614740878865053538311548808650553946912459171957169529882145003931924162166798774833961136353475559737173178657231841939806569440830737041961445569511062300233731937756899622108324967121086151443109141649095252939616424353462217487198148843829090031179122008868475226904896202092431678419903644912774484227887165769215959390712180043446782931059023239557700793865091577901275318905633740647937000723218426312917966092790336895188925832471204906944509559003664206518507180489868969956723554466686785247269969465292377420085234456239552663032738463095832529764496223685170341385655770824813777251219602112887686769308243033901234148862065602788380703565306038892235339321991020485539277611197382464090722686562736922141953713552396192120443913906485238502244450372533711450628667541203293082257110813329849334812984095654303539517387601745941694444759093478998075688585128066216841501856806632434688949916634748342014601657919376554009724549184226575309190069601296223058716611153237735358700762275238405117428698794863075132319301780451134536638950451470145631152864643704417229279662123462817444417551521713319881390415771907139434890985629494820878676741566047230995706834001317919988052708397670040123218195882654258168384299625264642807460861238135215504811971517795620683439410122289232979721471370892613743565933414259835791810456120375846202275716021536124514646224494895921242710527246565552091044902818932664757463726203730878904287993270047374426162511219861426502577101452915621796008776232193627578216745733063688839429759100693860400005323737681490244923436548344797103924017724328090803668201629616993573491562228433878046260176266893813478436849164084171904117454770033294847393646918034936221368602502873941131215633876068658401346933038722559716368089616333415606638183361808703913444243597296433624488553496600834296901225542919132171192430195569359413211399996872643237328740761596476171783011903013196389493327646918161712122508510234241691620201187741655068828583456957312512259790899657647096885317625965687203109299726246452246340397275857393229945114676024499327021577563718665788032014555093776813676614461080373414472075895490474961350807147703048730545937235676621729787859056114311582096054174166257204472666960428083945224784671740779476222852766450501329234153556200530604800276425020516566391621159149978772684476982800234968916226142862119464655770116445173600457700867204480325206545934551250685742659589537598384457332372551762879543284763480244269060940592656656609106775245086968088855492342777933901671428334733780896763369450841927408461363980743168155905090950120794475972341647944510742358099076245528543207968173926072999011379796640122968211704964518475940293351303995498858116563240240073006891967584168871405194256192945829588640364337775979798135759855494147870065165298824956829872459894551305745421737841652766388322150024685114815980471131560539803322291201072424599769607230538199290519867495644474280850967223577901175711240929407323810014993766682630225991136143788114869095096052258405980536817413699342596464446037191965257729800831640740878614632623092513147206760425781939632489211205814836690754859074157250223428500428285329984644147618693839443016235396174047985159655212206917579077895739203073571925014701523250905847878445254443767430052616248782351495227525941909902371665140970768570475450874200370840969747518287352942420210378184377551424943543030055132276711267026334401511901719026832662597016322123118270446737536595949654252903473309357571455713436669671751722802164134296684052847796802075113806680166938186436488633011437115374901761884158020198033500950996459009929077431451326092944726386200409516149985188386979792327331230926574534098759412706597708090893663986885082811132023733894503386185897331589540181745012034775841281718921514597847936435181755343867475802261116587825159920129253287998743727325792643433770162594863403411867422034197430584306840670470515579783944019522745874776782015468131278730052183834694333641517259809735175951116401037753139565441024956489658440481269586429807428503451026039754866917787845178827724109199723371409949766571093127773701121390505122440829104639676580656461693050555464423090283144571885793622672530025331345390276378696926052967343036431227790960781749601743067344892384587749588570309927258656739419840014889062269385612666890057697397612051409384069918346905374137513152652614876313584400219184075309564458019642189047645620546630530790160327230190977070398095196718230396885505481362752738151634504104143472384099900526599137616471939163365331960305649538888989969583419895718119678228315140938798104726472535455562677760780374015526731901153267568000864117620776977009012347800006010555533087332233294347395510002302277244939752574346155574375944260484657366405507596987875331092438754693342037865460378165342767309652713834024799362611762336779020296073748157585143035060279790491084937917697176957439656110474273050884449726561161039489629543242956239136386580973028667203607533695853466211657160444383612614682929718326862130294684891343503597325694380206385391704489885719576810202436430661899224705090959894921772974484412194316739650777008125969637342213431780490714980123195742266328194379181175130381719388555568345350795942561216989416262163743024989263642648867314837850641356434518932804179063911433001868797271908496799598014332635980934622983693207910950200435045755424371354618457559999362278439151838665089869328547735671614230505381878017457628359159466961326096759319830791513081797181346425677416707373070405082438337741932084000593549601050859965204685707360212284581719038317376237950026461622350696581920815853245984901123985937426125889681389528431897082978256338044362394423003426472626317196658418692402785005680331335984456181871032348139845854068600450138219089178291894840723344498529312774671912624951882083538122511538465565323144946683972652626572436022850105367298054525550316432397070002538456257874272372937662251410560896604091578352691467065565877292752783066842513003365123717834272052357874483028137981961407520995843692915668570051884506412277999538366323298886303567203638764419512180223506343263487892146761199752502509086171091050932744931421283324432532207434570396408159277964845347289708262539076449906779095769869961916131988994049000429545625739378955290499047033764286998474358984439922299719428111422596705155969786486479270923233260555930380382411944485235851034233908668348632067851848459966137693449216094800039411062874236062904274776969537425769632792664198772290662359268519934216349230496117603637734246377467363480509485386776738691111145352462556034096419805858270951118564498757639793081635862262959642465390468987241008417817710654150107962562340993326800063177564360705168415874075031630747871130169791118936135045858448821865848599578858076067012347057952804430311092388194919443329078643817264001890542120781503330615614479868177399870348335722985546248490789829054072327530943042487639742897056804179689519744371870406174792934278646506022473647308273728158702284167042165184197718911489977674031450246759837785940874404789864156160284611984651089216803602415317470433559365172601955402239119096389664459654439474228860616593432767593772500300613916095158238580667361840234946076858827324085621933155215209587737789565308086831643970468366475445912502677533036558703799012119461762713964312816963327290522512470143664706172818450386876150462704720041716394334793722664168433493538093656736307466831604294144319832229790056517760173097891460931210911254396917494776290157357684296167844347766271918197686842938745413681101333685104838542174112340169401089651240323615875628174042560203184800138839540660840957742806493393924092853539087148384882574251569852415149606603321795310858046241118587215579681494062400765049958395413859400401096182813772927020810133886280203524076583573718901706577341759466846089802428404754683901046627033636056059777457806326222028090430019054767632272788635695087187387024837417528388260470913269163014964290160838352349131661947856371224128925523656526687724703515932219456890055830157243931023071288469365255744572227835951644017787208310512330067286119203299751604051824782716426707248474822818065541031369330630456123545158347287892007081377496159332163023918317965801870984789399358948385895442889169717136302017211851622671586735376025097126293379031003898848891114299537821205906287343896078377163223675735988815220464773623844135579340012590357054469138431709806585112093124424627438840415742980648005031516456360862123029253839279335897701804921106476506039430501742277027202734963593386456595428246962996461332721213491689244431806105564314942774991711977490286916383557784471548128004499448724105120195594412295795124336627372897307469411400056027585353852833701675444406674364887137675556145126303027580892876521368251652405650695840914854959822375977161588335515540397604863596100086324645294024030999963168494148787837997957440121365370887903234831147583027429570178160989442683237401816951576422081948319780582148552660621052414225917169256385716359524949972308727261857058845214789341948295008787507405321983475827253464044749378130062448013800529748850468635558943398791001273846518760457230360816029751923125032091006967265396457821578727638286458943020560655273935088701219662886950189338403414367466147117308634355182175211052494023985773452232693151505408583876429744141843342606584258108101938077481759875306002867130498967119129986269188227990657314403593056895733339576493440623950924060078691710139286439577064094545247001013336790024558076220504461697697460097631064543368054476475607407308515806718289890689212607389458848246829510605489172332380956125591815339634148596410328257293040965092728157869927486964103066438801267472984798167241502577489615669507189458779916219977191581943234429028452124624779975968703977834305608009999848283984710816608845772064699100512711905339756179960408111042798411175208311585007546379675846394302396913424102129070416549506550580231255194935265899608416577926559194100508046007063600978302407859889256600209033313916436845543477230948566030916926961909930233889347431446251200767872390954742519921435297566199767555774819305222179713591385862541085332221986700822992043288719852446279950809506177640645949149455301551395585730091755798507150726116292183225192399319180532191159364081809930449129281638136914482618566891533965250644375715054617301474547746761043065593824521287830533036258301751925932846468296835245953383150240694055366170651454074699703216376221253384636589121305714274485080806078983096918403703137245571793252638280306197863977996846736886586928275371968385921374124778238433719637541048065087147211881240106092269721969531066942698980235287890243949721029396893268594268605150188285446287580891614314616075284678667556912501129543837852874563419594082955715099668457541816432887583235367885023526647397728571245651571236460545867916977356851659026026230465443938654637829033372008727608621071149532548133776577413367944275461337361738415107685085095647597203168831286216171224139224271639590869045375676691585003319442947653253459734801499333136763542588950240560715420936663830450086093775692286844880728135187906021994848834578916216312264186302289024214708559621561350361393692209370380144168464788027770951800644608060181182299325740402255476072218208136557678553243347235735739778652329527482624159557890910598874515234201898539737994025593902333715693412840606390821913530656806542989457703869551304022454868838724288904538259681346767981824410718133266144132484416514627396510236306215023147034347404902201129654043061307986048354696750347418497623190394097889153364345356963076291610620558409767832258025309806594536086269958488783714113373717170799203811709725591034962210872938949276830561518656580148224704369634387819016492796233892127286061270015610684005611775892052199879185276890848444059472920946522490048439362929520080849058142331006727953250174524338293103802741489989370834701679459401427648182583438925754924139207922774929791850001005555262774046158114530120584012452514586514487494652359373297417742522774871136084821548456581043117990024013002819213060428765232119930099425153680301465235671666908295033176875939945388496124210618739628893902235961039889477605912601180230809665896506359501812719006172325583354970631085292298395121902733139887204300230352303925405619322595804176429999279763214146154448277814471635222107354090579675760610772428388461356457046044627123001256849348302601624386713826366387373689625402255565304550672754279321912300062114179510019507846458400232206030632450571772108387371362142109718284280386973534934861329933950247743390024941723674681928264815271470952248458799130636012569347608616811894229655860428299156660562156655819586869100857947901289920708830924380000943079196496627656535648355427294818165958241666183626430228265332985159859271682607659920062761485834742501684922492462523666612416184604381459153138735715155442895970460249136172966062063023394518608947912479649672457677771987156582060109705331279767531588663674446545571737094657103952530118446765961810224805123871374577297182899206363482445168513963750544495425795835551037010532426283363060182788047685857930161736257557071129764159465369981059413413034326815008482551653757495199459121508539725157159083314312745452704621001282107962460830132942658341760667268518677970303359743850177055204025458333716028556550747021041729302003039057989860688031580087091250115452314703097621130660359727262037857550213801974101866227531737900730116082973234119049446055143666454369835641191188778126819253878524819261995701604676687423269928188062436042937054471354318122578307663330757612150233501162298005628230824223864485097718667211361435083169650666056006654682025949741269413950614300451464701068792651568047716833881440890201408336692583520561782905006621524963660283761610279595419799766087709794013675639997789557386510043649411538234411618793363813585162914757647479702965897615038604152717485092178769800651978089857053583987611803020050434562442930297070848531317690529152950514772619846874235846323137648318870564180901805509603639984411955823093826822936500427430363561210550652205560017433940218310775193687487966853371347216109905094145154982793791814565743306698085672638779914981898512881121921475920690862238220106514299836061222780334089212542913432823029616056655759915981405396080752190012031867715652015582775279396934937784972071488327766512312982927041860001490217877610031815361289015789487640940078127418101923813401668300369931214401088818499370836096817615771358245016866231564063368870013663908553417795906096203020348219264691773648766373921552675146785577257948017677022178580516839838209492926266747790890975460914507895876773254100859072358574604354516606328894216701790912917046499285267954234659090915683754736486544653797235478667745561859494888216906560880544395569892893166114702856827247801117572511656629019474464927822518000270537568472158954956657080088358485087554830565696525752362959557120944820697669980962734027427591578580918184997428711420885514508545123606410253791355847198011889979347719585777034856043113533752660930645778613701082851081188558918039931568595530969700250597086321346254650631952093419833004218384349481217563196071712191829144846318835150338794949672590622380895946866526637172325228187634931283268364725464474426699082668062550603054697798140701753517001002682294846521506259368112280304098642462783406800752910795491388540549609338824646445676216262980690164999422383447105816301041728895872413661043190047836695471457085611131677187315300366744500907350892193102827430108402763036915999526111096765092113604726797393135889505532812281993828276900340914358556640230145450422997539887214762427042757250628721935709974465284448378160684853371713758770827979333419890123398896528786866876403325117584666150118230172663740707878011711998241393456337033520413903030359046262178565041112254053113109227594406432407143246973891014924686977831923209489259132595666819768903536547949905934965679550467582767856134113677422298496893894856483879887496815562437056982327964948621059005609994497925830007129865942896521207611622545060785609257319147678723768707743257324783589332960332875202779789338815502644657327050720493047801503005408269773350039255926094799973320691177506732184543593056400360235501953143771680304039268348299540873114787545486052930961983071342760959513669546411665499207382448515038724673879299211075018442288710401981218551290057835160686960490970699981533956984551759301170260013915028095374957620066167382193370850003862114883169385365132720801245436013176326702118197670804817265634642031004334582436064013798736037395912422715867166835218914462706784921197077702976349606628003997196140676779222983742072852377135303380118177552127444270189250378944395166271783268420007580487874782768797543476917702313710421156836057216160965676158126708753140811171701178445343520277085704534119031656373984807060632971064244994256301443587615901356256202880135615407837074801584220495028475068204737244545405976919523240796708923966709852041745785966595235337060514935938541274531515918538999907757343363583272577889972385693098477374559900871375220874207384874172029350756421887348006283977723670276368454347822159322450715668419950166075185170542407382416759997960911324979985217051634114396476482912227037968950029904321614339966336755677567366173399764621714262640126636354664953812184432128590798179791652318790280069655184382615594405118120799446575015536688257795662267928636266724752497573992833402485445925832156847020309485685249964075138528744828038290292079113729383117590480610935573944733197525745361646191686666324434242779448545697453632970987484344809284462272789190123684556358132027336364120035730765328315104304381676939769958334621481448220015410653359097618256893084493115161041949936120284606477381800915061386983607084344358481970754446128362536088576849801985773902624881967307889097869899038860040908050369825718855145355228708761140178704198336672506570325410861829717151036937667976040975333756645277482972728957927615586316496985847365261885546236253438101158205794956042497000169790968846429207721814347897692292841407844856574381410301593196567180045321422234657542992482436166868810323510232419202396376587816397011644791048382294054096085863611976797166059868758278673132801899240723114247006723092868269015239018247867041068103768856503156937968361083220021553419319337788958536320233180476009608524711929394115099871113316847321258139983721423336437780055033556738111911137518342691950705567246667948967460911264433972315922510098728067540424737165615580697706618975863221030956023463282729344484233626230085159372404214640617775934779261903069400197769235708719534997824384386415268254834910097358396636701702293771347036498482433866805065775551532010780285846727986648639699268271499807565621060743109352535284469698209946937110429925971367093905116705573888479442821049757909306888506179403115032588185261299479129987092130752834520724095594508234712409829825434177113878969214155083546742525676129922830961480328784621052833396736779779445389741439450604206777950669704874309507806583797757107987080098077347128891176984863345354259801131238286749558155169740768169805565940538440770226952790848368282924132499271296518971791813173384241644881289060476771037252038427485612263566925454475670499999344920281923009204568578980631766221948708610508751894127011239249468342813652790543873249806786199426727401163706081341791545313649272254401711418891912480301970324325727613952339982436210795224590611021415661265173966147221037478946064992493278970850135825991563692007835623013175173283579700981446223380977834178702791812416270990794857828954689939030414894422342272521104789051018726940620795558659326698461751076716635171141971718047360450629462716861156812514829309669157497939282771991974646662610646848970438574635658647298948582804902477447641842869345513374917112992900181766840716854871482177019440418192491989899829910901844456588256324553762064204498013048841807985748690527070132541964119976636220254379900758948161064581214742468048536806072332912492126927304943164786805364376445904693168399542058841050706285640652542769222960924813328249677235143909915434514960438849901516014424202255500918645479020240592450064919510066147391107611274259660522746584995115921085474207857334301557337470762318810123671974387625147690267641108744306560651518704941831744537090129442208095046746667347673579076954934039795229559467189859443537715127199974222165591307459496715936328132667528897516812300587181175793740103697738626220738426535164756686948657360362274572842873251487032200262098770043369644632553673365534346615566726380217059598844730860577574365503780016798512176913503645679946670197822678198473418250805507861829739066234471929582762436334846299752170014251914880476815147590415839275614916362245209865107467856762743680879410295247647534952566493704844522795724869023049401531687659750803292897708635315799901900306497977205761066497605856174649420974058231233253873927092060685595206003725327350664647149476380116042193518900411175122692547539549304372794290065088826517037460371650363814694847872676601977572772346140146231996355792959574903844679485305574557429492740718649863388944822065897613907488182850290700253974000206137771003550125291157750597560875208260206160839950339191797057676323074091054626918348231190862579785692776200788614383470568084117040661994909215413126397022962459022998697246364465502585174094298720870837707466306392652798715754556123864621286489941049138282787231510815118844304464523941647255193548249470284652033566130543900942970549692354288904245394009770272247208568956277521791942299852397279234749374161839916673945433633152042083301495660759960898209267068842631557138949989558971941093858552978438820322016643135027554476919561061255903934497765163616898655367058042803562567095155306263570875692126353240784045729266116022493675960497601026624035816030070071246633449366920388716239850930652183834845943893504692694683692208162125700966479593208253585068766916929798445770294161062870880719019953355053341483484330087607208547142633631994365109322373704065769221101062396491888919510362549200462769191088017990111965388956590645743628013485629242926241592561010528015013514883259028078825531146698607165255632074844559144864144929950863787715188085284302996182223124045485690828666084741750355165573037350337969390431892606195793792096853280603082394382485007848034318033546942431151397455786737998259906537131912515498953050775715599968716956864996128656942395784440274194963359105956518221294240091417499211701721769398639690002838910060371893354275913099656120987521809464724428877923900613803168598917334847300219959116024123617220843205888329659969913488906303051814096215003422043968379131479282859397837755969135170083244217523814533847405015936550563532024761608277904908217094053369105667090402805858396843373197751352648855220952993646131468998471057413000039199633398143631179246571838001833947714441359123069555088168838311153346772948636001956279891275097215558494325087982694147532623164981252663930376829909293477200548829383179383176980152773564288032851464970111678010412380263140562961355062515227916663076834831806056995088078535928001374913325732953265689681347187623656514750874483744798771653179054620634066719282911656295422655418498206612171047870006007861208589568571767826641893429507319079440054877568829165383901794551293989527080457240102502906926460124177301579233284248148182551825974929328554139273111580159425907557178826240861827875738879429685938991550916012542347448792979674303110852692057573938018351298744159951267898136441722938874229388183007075962154978044228841988090589515847429322985991495761437882994858592408331669571488109128854906528344904468333521403807976209909264988389368496683228127657679717455601441558309912560799159624110176773074221933612910990267672035631046321591079210473623863295965078165565698120533708363507774731569177194695873758322508953930630026971768715451681848563492385869738513926096217967886589477699961645564649787968212588765623765982774387537754270557729155709395875773109222537839800013536670432310164883581957780047079874343135422392863148313618836560355952881410236796837062860809431034132384144159796377191491984711996341274367286544011173033553422274134309112619541212518634867316100272574321457752394316193052650136501754391232233099032900619568459984845201702008459490775486505118044300068667355988362729638181687851263429867807166435457218725464453646287890387194325772295492953054238289426341737097747057616650845773215920365215105870629041620555802808336544120064503819134376430957969277021532811365053842029684404675473791174809670889604724863434543630246047895613951663210959484327792179496193435219725474538592412691550309584027333094721603602615172255612993082784509276669939619787013705427970093666984829898959002034119666930529435619170752143559898904530271587592596978136467385534429304079967440836800660054665964553861179417386703048230196768315428944595088586023188590070288228306455397584748084757428025393943211586681758494013957948079160425878968088696536579377746689911350688491802790625029022937350590364547190518705420110695240753474037272779997431539191839892001113310811835152442889055677209301776481581333566214407663302791496836770421575396942523195495452204957841224208936338891711542100349874265390814239743425822641921063678401642444782724130248293193046692309542577331527613476490945444736393507086993432076250259466514289751511572576098164695433994895816398629224494522219119900284676087097927402843036510951190752989172614085278988300738716039055600059256342959097807591840686006759543850793953974964002741336767139545442555025223621292341930054383595320653991964935051583936377512483005456591460761358211845300367203310035788021773019910327742258755208477692552523799539661053617968263789586921056474525724350310200623464919922662655020252710512410260930862253210239609483183417822093800517345360499822072209775975657763709736317897146214833803098346118019684856412068430760937767008644169229268823757402029796846755542271750578622289355413202101362723978625810548629181920895221558247208901603776541242697249273832115089921795250230425406498992838962246606974939138240565896392263804843691029011797167394098150550298512571203423619424893470369352175097541592803805630012225875899624860227826154675818016965376472503323661609675001458574150886702924584751943912461892985197685156494482702150305234737310090155372341894742930032310749909804153593308118866250427432689413161268902129052984969831548110710408192837590096071311914985537068480348974931909768677685322836541663518177147256823812308448751115194124826806037755314650900288647497137184189378073712790497171933246730292979705107104227917555077423181706841847232088612249365408346381024439507262606473309746614764726991596766864209047255606664034881945725543936597847098959042639726863055781580754087851581177743013039974484930714785093992782815251682592420695738206972689542041167466648898213789794838368097539502629934743819278868355864133568122190099451965972680945561170527060366674703774810219553053790456766562471249843115492348913701320486105319500406869581200468423219046427576552527263821770461825876520792308132266100773464030742978927206115303001729320822428200970421295636003681790292266267249998421956708252779204372860813712153369864116175792966364783929691984874228713685795829833541058644225765933974920035769676732917656653071450300737513557637816612778067670584568159891610557679278314615800205341268438030142214398183262513749102976242514913393937499375250560881917654264209744114939349326522713655165618662589246473210893823646485419883166991383288281404111425488766409761318461306040905379359144681596139811568859669267040896240300236434570727689043308666497264892983947459754406857833518161534863116091269064811390878871131054918771610670747680033328233932410977028060482103461781405223076659198238801043093172248543815141207191427171837632565360666886816726276378764328362235461825257472897747035728462584232422095386677067559680766165324668695453687489821613891812216327253973777101873176179753821026339587656479440785443833535535909559527606023210116786541493782560337944960724414014908756942483456926194263718035355250773503986877327100423029957156591631906302074302040884515153188274677990747162849793063014879133667902139878267144011166680380090650646818295004380399666190967117578112395261737704032449885185156714627838057182902027204907184833390743313739192001433051184468672190895549529768646241068109659088190509771604559370788053365656817541692940617136641376933209350764986661372981738415330957581838007342152842765680177445450132099376509591089988448477516253999474247408118486335647917469752512745569341881264095922314317846996636443681102359717103374754191553150718132467040669272982170085393429174957643309502550053026800561802952241754268924659635199541602428047824318422640237318804950854652190119303528889042054302338179882444882431888468383100211015154582205135298343050826805460663807481668197688898564561826180210999453755939034518504425485570913434216967195567087174074176493045734385894140590582931627692882416763019644477824907363118096973183131147716898766853697484395357911571916299749699307610349248740498313760333119673416453776113697110540606535355265311950461755908472655020849092596761720410297081304209462564947741709369446591125387000621729709825149048594609704271349580275051164407086700754415549115364422938584712411246668089197526486498262894565774761413611169741202680188251581080108320954847199231609250422083386038706723264359386602751167120766885699927705333575982615670843794956647352214108172337669641256440927399561975197751729322715799181105486887755830088568514435845903310696442801657807382796150728922782869780669692448373653480747070593754887866413391254517358148259073763354134374061547096850565885121109245938479660167206413948166338197588611672677271645098648196936098004103831261978758481933231758723413124899910881511372352371180793516029860417895353847343224065945678674423453862020331865827570451685818420942677192644719040506091240357368871263656982478117286513565100440426606846701394362110670476118733191687042423437243416607747391420528914306743049436993583058378884085396371238483010870776811371153547361648340541738158689443059374929503265578259714020916448765544780905912941212179277563376848981674791632411884345841450701958195121670152420271005630655235401024384399117839793309565821677000926369959765003539395319461431875783995059022029701949327325273182215902604043534210785584315216527348386936411768227068262093123321416097000257094935158749305382675728750356158296595929928855296122216653763711076575770702568533273886476620206089659513037477421805397539597214717847101174432050744392380469454158641460714181115277336968778474716923598062398230270965269607747474533576458160126418917544990637777041941100098714846912295266332723985481612774920711788907091950543815178251665370017901507206694845499298159647118738558482942794482054484317959784082851957342238008100708358964975520354741934743162306828231453571452664641954492663581048600646199709912157019654666587715537753001958994046268494739862523688542768709247889181880933006207241251447301518500549764234658003667811798601000718468340003675429975413180665040128253142982194739665720252406479527299963388599454270599108774466612956945465539386897609076440082277751330670012002997721212714463158792294004414512173764979523064958665709702322999922058658991880496369617852730987480817532514922558345651982316028121910189807906574664229591980372151608845743780715762990905750310366161644986455963224396261298572118849067723342417672535807147067864483622831791390976572506320198631118568400107997555664060574566958611795813854837630643582500450142211540828080572722517946686522593984847636598610965959827272322215389146761925930643916001593990643763974559788458439858276487283916021416929264845190597904989389006302188139088051473929433279770559294383909548687080114070636225559143209096805713338382402674963551933363991339079307460860025665558487943299989843472593679147692440352417166103557952363175390607125951945028856356020572053795593840911356792228876792602680825723259730116952627611140588453246670422550332734440971256756655790892983583721732031306339450438835086789985514962118999945438559384778931773047544441584201148950996872437940313832169155827186566685238311886696709338332047546860695218283138069970820458296050389280085501887628801772628640558615797272058663988052861680384645777475296320714263764808779950645716871119948264513529808086501465137672331938421616328186209453948152531643918492254459549212409420528116166412206623253059833274950606337004036235848374094532883685275221118367794849734466388335992826771516537757750167297285383937600858732427376337988074949810996990214939546634891002571469142533515862022476698898878215724745924985993658154717692720204069916842822596534531634842407833150247086961527431449364773096673889863406027229017829474937351501959809473205294518774259312381007776613320944498766227874907368260501294259444820099665907693146458925968343511415336168312096269041992206522141671398353247408804239104848270870915826482547768409742231155762506635371771740083422754768535569838227922247396064757827422507846248232731620280860648667267366382609946547904142324116389031872024590449590758848958777267869103852969345276875571127659169796113213779649628042087283857200964624514381624985364812770875007485617462634616553329240234072950202824880913149197904538071914730875676858562486359038448979308608384090689921579371209053409454737917670217736909587044805716414042481412033308367791917744821895580053192423415814836371507905654761156311215616230385473487986164210488846837012521880117177179172901189133463612221201997504876216990973777897908208392611337655236273415009711664522751214479170871925569175496768004345024725111460768260471127425290742661142871122257169573161850700374253025923111160152884099983908795144264819263728243378505521561706644076159594680169296075356840156935275862906598233328550407608414351401423815896516705248584024456564659365523712551635227013377212164853769922731019710940378309795771458200240838932917476801882633614350022342004882379802746472452211291525287799022950772643025302046640347677092766606769476911890589765053403022264733991082366508298982421840118517824606342083947998499932526415296559309912780693282976831989524493527882321713234199739959181237957955440916657672914140630382603695558991207646185563732485445154132991310516273464112349194381223279048017748407059973921998389806765360822548511129107507137945827494537477676481018658405075785955779191645328395937999873666715749455790063284336842620697742376958975793580337873609309292469265465316416237423152497455959511061684550391807148402556415529626042728231913455620446023155668747954765521103675729742477721893789422404878190828030253744579072725478668052578452234710624589844107244777961890164380125264889411038144063903345776397394940948237617022180510197673705167925637745015210473832141545284671452292552633791340046619681083679914731425243438651105608754450496290557260233641414278281004667619678819330815740336227890064430836907525563552704126554967773841868255140267073398298548594777059905743169173848108441371936438637584117967640035765772567656944942115789669085102247346201061100597330462067109677619289535588777715341691936559567272900451938028102637469568462319866398846795340495272859318120897365378788467305343874260561667062374354655466997707162304380034713703936215408225836509063887327609632353587933224085395014992619219619145929935767428055056872528393053697258471223384833774302105291098428634232692036005378557084545011705892761077985897845706024823459070613612885579013054810091061455334096337489339393319882747197510011310147409421005036458590936461566990121374105492743777033656101357334701884666096736384497220076994374451669042002119709516938955179107786282451939976990482103466463533229621355426723213817044720544518794774072440805751636361065806670283020578374317988814940259811229563485008589831670978317540539536194426282356662598903641432205408014941671792768158168447671898578341742878884099544196726847168034515598217621324988911023417891040293548477993171261548200025497864309000225853215113066940524869640953683464925263931563250437329521729867792264768562246492608046270007393535534474059435288402456310330015501066819144206521786424840825729722187882383526175612837489340581969259685065168736190905328272971541504722275014993020872376985292615135717987895534839341688944533507520654300553731136596672003431691267827162839336762735814344455644951759168536746391603260472411279983853300692178521032628335511381811294740202594693222956291790849176973178732879984939501949525806563749569934694496233837027675354380975758634393594988727403359605379660749462529552652044368676481403243592613424954636893005347115832549433693206682975674860738655791470454040939175423889234805558441920522790622008835708746819947646502960795045383612836828155519891171537598478747554353697382524705947454428359780922521211404222018886074625098370358231963253525318018017872516870083648724283057348295134571558723303071608165608349655695089351108708742902500665901766010396367093970244004949587263255050145545431491127697815699417428154705817923742703604567349712696280065768562063613523009361263614186922582351308324641389155919298074974022275235751995116978496894923744022700810490659716226004598622541050288159964631876223846054240323532500507799195258783133707205265160646617482113228062259400489504134356189955538555930007843307487429606606416256026057608640599134618913158062968905249258449139319677066795421720827906349872455839320716672900622852616590364509725158903902374773926776639267401266700749175514210641659243681518403080726188531110035973094916288601425388918938869099205902964979598626907529206398223357352744667494933460115262210557900082943328526360429109182558903361934464369037308407160864319369012981501744355244091377603930702844275927384496843674166023543807860205841247376033181544130916306881773899082080258022834546529737236074957658586574932994271204108380080011292630251011187749744394040676402511879253562333766069226550321299027456667768657733459364372106474998239633419397072723724594569096039265996721901081612052177053824123977297013210862993144457179895961880078025344528472074073858437630960047208112024065616413902566695435275093607553433451249966337178139724674219612471849276192283046969689197498380343268914340572391719999815314505120720606011242655790508787194752666071961604556404570084558359150773697556613689706493055924676882526610443468568524972199514813331212596677098444340456908337742176741391702975431362215130627134222802945314393463026985423274707509783735793566923321206062167581348222410861785488372242640582425726324732085327530651994428379879962402291604161351975898309659474846439700317964338768310640174491380730692610167084458728268841212543850325921695165809746397553303100562560285133006343082752680674732698139990774837119618380332578800689197676279550352784453139749576367408344066210988971529724982363658611981238972177599202764399152047113025176450576280197689767919082474625945872249260139800884061307473761205641073781081863308784103320881498022471625086831024631196659106132636025231046312978564534250341545372140934352626389811281266917336647234080174139749849062750366995670722945059013707690599598125766161131886040483697708548791607175459045625372896679943907553436741048788586978896448232002008040040136505803096315306254915008394346556164806500769892104812621032239792117662371208508353871726935494477539063816455632925676939815920162525999237788605195340102717125542466723070143421249231421811593913928790252112970043133054538092439632120978471035413694420416706039291465821230222205561088760869473065655997295449574410558808955072967403885159855892957746673210109736055203404954996249243886903204147825028069089538548165291269672046780946794676960628769724117958740473407283220679266022320255484446223971385752474429955821530742848998789204836597724429830296327062779702582079757725613805985387498108624531323283266989936900212013828819822524463382879308451830587823610377794200457684719477804793503290440174678527711312865921425878152668400227564602204290217937861114300387017044294830313906556329369083778170185964100197521065373476156673673654838552716731046259724289908681982349946106623301551511883819184685612978065665890726613926859587046867659235832722945633170523762090237894088553534081456847064010545064586301078732858097540483531595620602283435101521832812416806245833907932441134528422404552536247388017129190999377506577616391487935093357463951657344352771052386032092850432572488716778272319423388340303356788775387255437351106427588439014334821659101223016109467253169677937863570791352126406502316467803037146555393347691339929190134093074134465469469989451856393057166905643160349907877806290878357274537653036204033036951852867454823011895413379035910990661238030062784536824065368005709695366455706052824597032410395352323650237031381481407560751652850354740413401435763065056331813547534452293194937304330020795542848290532568375743814273703769971528734855162641741926741421819233798615346298628306437318545905988159721642606753034875544845393440997889253239359818281461735242392566886118427247751445096133660013754864340807473315804273033969160335236038446761257809389502896205945481638457159326209776306174604793471703996268978518449311899916530947423575301366466437458523650047803086836057346947761714771658549478463494771671764256623855988577667220258280717418193622858936601366054308818987707581903930625814998785962525253538615138386520487459689389392935070284900904901327262215466012013238338955684881804612822627418211254701318202277168855774254092395063656646484293217971954859562780146139163576289429079134041659115935805663114360483396401085357215388514104119665745014810543829573271965190397603958989206562735505697650539487566789135838739264660599679432545456387875627806739352725834141446651531812086502788421203903345028127268397820920208373376812242812715344036102201838699711260758457221888715649563439004019313389015946163189884105214581193290203603841107881722433509259245713026835091629184370383410081306836797835028473540574515999946077321720792388513124884048683713292705025381393616589853987262693400917022620227158425875546064426896037650211621881682853137912824411241123690650401357882166347334017792744957048629340180492225071631010457942352160912543055819402456487560363569389834641066703942691011609413785490226556795795677401557492385321882736588067074390971357976468044216214424268495241495789333193299598921762315168406033346579598276127820274054784213645029474022343834321509208868325048824587705979103714366206583722862655720374499251494353905009392519324049591329837245229366171587709767837489995247234561448265727158828085386364037380448108664648147554304360121733423023318611879701082756824333579137991084972899852108963702969372977621322047543096365129468404368685620536458184169985329851146651462842356398148446570321338314690306812352379069752533277302860486913208858077614921814882418128499924551687644820801752199275773929457100554672701537309455197786443208403286153860478128319783470064879488945847263124782930421178899516907673276693387143158608671140119474836938811350917863559563946068746320535496685947224573118031806986337587866525008950562023463465797156518158487775215094623603922181472318142613892210165883242283938788570442527092289598710788872031535185689961960756433603459938979353384432541948316634138239170248660749124613541804751212776591872305965392357476301426116474988488578015425380363536932553029049083737479652700791236695609369177151270585037018911973746732654514817596966592379248692300261767038808741936699445413232663664671266943906457507049974483631904590268814065458369150553515441802761742663155820740673001904286611133339770942877243494991017683422125085788682894347927000516930008842501215200013238995830178137748815935211553610485395672831931037445614154512906066957003761161369107753285589680351748224320533614001225789465586468286759168007793579438010093190166101079050822076999021035514675285723803294990905999862320090614090282590854876522325993906424904083827233217637919673933235633893411017314296692093599570792784509763365098526767588159069968593584713369261651656574149238147038769419034981818663899050638341770953515704279552607231750862261341418495849691119399170942094446087724188239964901091195774369793516187883777711358041450984829224141443496713211010860279492040918899580450212309762424299280108819887436174444887305643162310139611770631193796011060234824307574962259039307730887168641394890630669479119999712550382888509636145784569657343423420891963929346385621688532865143022772612394711311009164278884259352674266256218821794603580154421974272736377869816689913933408252552338009572460595514842692574865874204174703783986805766701722307676733602809862242733612054769657912284334997241454431274794855946149001152139823308283064593319549089422086576837384744689862504061066862667278679124218497726863117011889533568003491015729878142126586302533675322208652683324561379290803301774317426744994605758483057791279762954732702051101489179754138579455346023705407676448880007551953044375697120774750575497872441963190608885622630386937436440832390544334610895699470728936000220745361711227206860511868411208524259987492217699265517793701055276298778592418755418452727095112308837087994998208293295216525721015441929903690241652542274330790778616104706501286028749900828602137862072027657156617652603775466868140185237732122484247076119979753612424485343304134732881593831030063852488077142098424554283665743211251874933774258773575793256852343362910795371033659389349669915014978726321642794718764618580875618662864497833218624060297572576875194092108364383180736945814767017323980786438542537404207752681760351980072817848466925409776263992344151595867486737988387809859531583603873255087921745257692146775225894701059410460130075561950221199704533906212638589462777387869551604007820999888553616855055050514097212570811099223253664559020985373164998305822236374038239532717038679870331218887574742264211814229066336929156897808722471277201303768079803693414929725319691955407028998017281332745984382995626355450088393238408066017085565433547607467300829861778405920425220621481711363628937593342498021993766299962388291050451590223280911318413116178861103912194908473621869535844314011264312110592801606957678422626677866994407375270364256935006202421184642479876803701531389598708971374004232450932960627670980542653379274564032073762655352910292673580714038680659515532408157575640029378514576397460937940967444186869281035881432994849527204525758914569501274813542533395801507922332882859525411248491282259393279337791060859677523521439411287314968307529172989553470476081194701446185689424937854687310001955459155640340244838014310240223649830655931568367523479947191790388451350739120350113342622380250078964104153291363514239593335178077990468877363825997531349948005327259363465724320589485593774009341191163954894501466900968317432359973691462015519214818876801218035216147474288774190187012965381679672280714383661040421028485207161012751450150332197268266201454821281524707209219702929584177313406580424454598487119410908039120343017340259377881570315741557424294667726154055473331616606085139684188775162462324058482441787605639243742341383516651820179770406226169399105864915164678108426418065180837592370638987860336831030248493287671530503384480762392862400514759456531587984065864271579602689607967418547408529252769762316585849290377842121006326573467621053285879291295054039825127747613712610802531164795043041058495801849035538817471376608348749543539589353651146974381919419530243861687930459624204958605830055615442212725651177844041877833783785414915205191694777919181787708254646770975819333568322648109840084359893919691717251661213991199433871813829771418100165155927084406727031468919219877575696938532452476816188766886105650849581564548791900215365212434742672592494041224124068347210629841171217344960865810279401672829691628857605835600289061852640487912183009539815958415213954850029350008320299499537044128825176035831031130938709612045507418468667219324394540515725748328162636200798066934122639787898406585302701077328363930985225957633058058652690048960499368674737479642808417044295485595210604902548406593432811780929036605216498758698276040685386762872742161045095496038964374261680274044077078663662918682330666678297689017034880342862052313032172521252883379130225181561098097219986623132364692404395950482980485943487065537536322602492550528928486296205154966763573867228368526949458151180270839069823904582322157700313047361640334818988212488751338518010683443309574928802281363381416058473183088064926637627250233751811161052952464641552678864910611463873522342471357609855993776352909205078841868718367547449735731692641434508463367174145955318056129694470573840421083095758222551480135047036601771751123473311387234852022906602436723129506106581075208608829739038962122667912733914652333532479328870296210786508627757399021028463798160964372505152464780149498123797859174774388376181667278083820150223767314379062213894885746615066572171749493695387275359242309877306796069288975465367087129435536356210569581206588716440260596195481200350839474225580006390852519094623361855185875819990395913109912193236293034901437735240272902136219377307798362593749717206714721416267417372396251422961199169078616359535103782616499883353431867332243029619473508075816824300319125720656000306913461461144614269860416281031558111031752437924327361111177724546412027684826019708468279175295130005841089741633832827078461014541289854561926279381853834496939913349962699392901928006011864756807081379156421227725982622413935740761258991549168663915185339990188337268896592325800001796250378809154383146633458875330344781422612626575350172965577847280509515997371698862329550537082886215444189853066999312371678719106574025354856525003336619681265893894428237517834219708645348091149462994021077530589479088322233978345502692426457977480688423443535395835863257280720977678548371026138833498577604815832867025345238997817018401827509682436350656408430565094192559792825985219443904060847926154770834159045794798137585639126963561855780103284874000636502265585085279739598920288440790589306903764263221195560190429674670385973839206535889453779252075527808650990239645150115807524150119628169742572088767279424893636223394545345091872438993803248699147213099734584411618669610475348080812510359299694325219918297831601887031511989101908308860526081044201616509673760564648715871076744342391245653793384676800774058036159118170423953219172625788778795903710288679003321268445487494769312823501275711970862755327974023359818795593868225555240208100230249901387706654927129003704044957177323422888858537424759044778066975816699697086017122421006512762798348062127256496777636451882599471238042562350043387733142009545744055843310440126201259107116851391393413584676627652640807918772262458640375625058618686031678726631040298301741379294041933376720028293548413018056312701115855995210600073182014433289895146311154472628824164592595846381991301090727633401836761664296935278494259096388636781113383768987581678656562817383464040931408212856026818881183863449038243019981666059420121677684266980228361572134320571233120629230349024646077901405756936091765139584589616527946575094822018444717613204780755547773646335639855077904520288246987482551267198750992570071384150707533243159041450894401443791352021530387259052558839696264484535264256714165730491356649828294381479551452751712285697883365440411453883188298575420166598692295890024315268062224214818255033092150899554860457700913584965838360023276484935660738463674238212571234364338513160287531054076814493364623818831128699268933493673590835589658720179144818599027638277381702936427269424249677477074849851644492708099201984725029045203273544188750545385576161035309672593528148635792602101093371561451798874409898341739357725034412106256775808860796455501981325262031870271884300009622246081502399379111286959766671142293326049458509987077984108563795137114838352857067980218018160106153608852370794480715309400207925129744429505347287529619801687714555680338843558727220389273977431532041617929063273102431846897072182017260583234409133760380610967926911667790011913153653908626119516644691319677889034532327935761641253296289538473278931112754682089714079660087613933291222718206161538695943613344546535333225976540065777173194090610048420287043250564923467941183009755983256854666425309201973581414221907698459734160883406025225354373639220706322692406767514483987274067584513216245691376224583753578816667480959287315727002145605896567351809689028226157513920575812566270625203708713336392413749141934760176909548931140713834276613534993264536513722734993627108984611151186586538623968341212102256223434860076719719789900119540551121492171945669398111403300068763225087947540359605273345516178430489481128524168331995015178392448922841530564620745621578718440716528436620545483507587531246541865804066536448260667429369766800262286352250141436919343971640764808540061297297766529580162009411812511427116678912670245571488310440657947143508752315480861612392909749552923583058571992609751214772645291916539567739500552478385507305525256086353065304574646740980989296278173462684808879108632853951895684013353274447930901639422856573969670085012711633452770438156007503036242183806440045059861354473320131929372771109436729459263825935789838201047585709550003771300792967739216591706229019893208952762527549325794349299579713362116353756329340308159575488450914900116643620797584114264955793631356458492620226132027760844071600087174361360918402134347346156670184983558940371400715017927778203499855547561544073490809150422725209921750503607932442268637708309275814167965756912380064195271119931389367222020071573645985346873107077209085054148191192338816359427198844365669424363730276953108452406687594416123297529266416711332861023833358383773843269960582886023946851641515742502210336478003122308294766284552645646689197562377208930483528535353306914266949232019968361291699250094392444380685002045189879038635269909520949173690244941639813969394156071409675356474411136081734458409219170361005887459156552218030982766807161336030008415841942022870091151863197799473710140141235726466695586770888928591592064569198786120071891670897834553661455568527649178449931962438461924480824739362428879415185778157200914581626387480464364092610315273968759126647987402742421101927739881802739108939750010308251740340428604666076246819965418725000517653207800523688341819399841655926789683486487112494710989241322606164507570335477919858641359000762023092397388066654663518396287247662818400969530071498861550330805594879090932690007199442866748336632677467101617712908019776377810591417551713442551907701577960171997668476506878803062427720567384330202689052779549314522176769095624967177473264912530725468040475813132527916667380814417528220531998801738077216895957078805295964434003259255132793371352431893528573187819079414004407700316067171668711368671057088275591686797681007936984121137362542801576691146425200068054967614324920535475099846779577923088618727698424021992145266434054693562541042890331403461167940283849635632234607875710690589117090269053358989273451340975840839860488244312664687999306945672064837813944795590588982438113639095867630602442035072980844623804917720540691795720751704006991636383715794455068281074413908810348512830317874688092120107241264115697593020125769087869330624607644046612913537350197702273844972527948875906168403426301483124957831702620140392912192720338842010424201403790596398869712306180022717760743127490810953684243600065091880834972250864156998724879421634467930787935569793270682059293277527440239234242021444067367051934891544881242508925526649329698404163357978807989858330662077924791407227332658355662783801967655436383717012201890256010173353325710538487561128990809391741898644132608740770502976639808436309555253574408624517255265633783718146309648989155065991103712928918999201179725053817518467013740687904412702219354388355814386655002295865971042835951073573528553114619857980590420041717999956771631880927151363403542049718886988068686438912167578687548581139434541954890536202998039081139943146586643880173529979947241418316406547303105785118982966898506072803089679155387772000313055462280067091763908481961975163409128323861482636795721453487694372447305978594020634645740325970374680502787881864310140765172610575051160638846374639320367949805599978117032251251748917808104973351971798815061782262942923359648677002617386707071590279781574408137363607356944772902916947921091279902713119612662655524569633229825673626961771155425954386955151168716009494688061263231099774334992616596765100422928326250696739253519029835633306774872930724780740527244131466141839168775283060286296788409488459607908906325728395427117922105744890209371895610804439912766278851625941212564555224378347778917708041675262407047521738109712992632996449184515321383388118173469005687096093317047624080325055439818195669043262697444470187173253854426505661346673126731676068798905020516645414185434114590334357349691376925920751831507547678709821338930088220088029049540449130231072443668683824161896086419074281033725726051037985027000982939420191941784397439330854157166556829071522627780341513924855233148862296291108629368454345932105888120096852198727236652725892026544241818222831682812878892617169498596785550252356701994413413509591313248502184196366972693069825989012735408456307549682245970825114217677834870511952976606103131761003047564444039642364406639711965629236881333881935222188773067101161649038270341185345820788177636472841494917782262471292476276460189601550068693888044885362968759903663335602815818492410611995481329933670882449441418413910967530873568592955285707278885132359128073334991453132166763199991766489647044428707437162931395019583234324640129495648354408419870293090576964511025239252227090902013337589365559609525855986928541529140218744994117141379635549194785166292988366366625130921356453071893544337262645707185589292159197921005604245921415111614234159568197265858316815923555201552487431320262772149011670701205764056985970043796432349642372353158250313328969366929126784464888109631728089838136372282978221856367172279539418801938814715425058439027947798810856093759598389424636798799642931976307803851557698434566149652976521534142443788220408033614848793544400861248567379882303474910862573373358754073637564172783829129140867746270730750430192937106292737890137417151230932606123665424301786058166272797281660482927456208953278685589834956395521081272582689029067051719308392111025274109983674875251734568422399814056243908308871799200647218853583214177807032269148228867553249252106599171725813219801211348785539723134691477052410232383810089778188784391067845786537989634100384667223535969094236885184446527297455520372070735161963700542201309410949870775012791503684021483717065508133399807648670653365767514661790780775034539180949942383454302469821394789144797744541882414590766087476392629578786492881575656135768988560532244146989554245593676111618830129079473695396366472050927328625066412825648879600177717217812410606423897945942263144838231055248151929158672193356015677526458983472531162399293020653054252279192108034016232345892597998115588112382294889518790855711499135490503463565141461167582454125235573637110467781696451753490773247755205329495406802196465711206472959158079438764165606202917795982926834462939658036815335366156246686647514028349359938974436750324541226479250657230878359562370502441545838962131492019343067229087794165783517045923794654387554962335748426950442050422071949413594242780615351676547122873360027888793818418673997916427916855488783727615219900881139970996137968753959046891820511611435947422330317872955489776462274904557997031021289403736957730212243026907466994158429889395337999101883542866826311731743125610143651630966434693523871143800871164245583797829340425909068563973859448244759737919966440003400255753400783167189753882081007889433381262973190726657785209556317851294641117811618686407963000448204126886012086462373597558327643524015723404662818939703084145499716796089168162227949567736693780953225063398959461691157106452998498833083679334621346870602758112823895826458398290471634238932529212310199923352918181112763031820116262624215526265291777875098848284567870162202339235497367909181124131025496063736759591642422318199662980461376160175221729818495391813224320353238534219130817864036523567407064433543204993025227447771307236777743373590689890843171964730134665153908113496243586391232768740463690440019048959649829441942242162471792924092346920969163892897690111111936273388392259868417492336252410173890674030913152269486806250681848522409450270336190151635198744392379415354619416574218278244966143932270201323258435216516006254517489501679800289970823468338766526449102270055934866820228619726241491161878251814580046134769905684009640453440767137385657597054379439646577058762128970662080507004936017862561152813891270654545263198563194554901175556946748648215375202507929114464883783312726617336372334791480044743042891154676147364613679014901329581454768162400311815996853201556960975927359616473629238591074554049038767582647424471993713143415428622541515965682476602751430967815274169600848934961747790795506803551858507630575588439687533044102922633716732197095823214858087093690798255884699898332658744301056763157869024239378233367364966716442149448493442358190816465666467714997512795456323333194539210801872344515839471784111583634162893836824907392122140775697235809870488049889605294013226355050241628974463103583896279741249734900681845697395664321492364636477057084617933585615736457031974304990660158890233176898479135329148340830116166126290568888842019290945212323619460424260402727779921325078052742227692549562535688865095239096557637532925756287389669256465088967735730551233029648388373384718935116611800635527835218688111686783719803461325983910515696052390373090949605194548612884121723612021109514130834373701276748194388564817399044363574872624081430250678515466113111830172773112681181854553010712687681241941884290794894361279171382830906576811571548093806500238346406268856036154177954483347410898531706181764326961697959304863608250085210772415806779150903064516136136588421245254400416162866634855742758828563857526166426876474939997718479344856165940281061793348416304964015486645328190109877649476708432874127645934011975205109561122446730818488806692378079213070863567645969957266658461458022673811594715382770408285686616098757647072357138969489551559929356546224896291927487341022264173583594990641395217549536620469040810463044437566565503419892285012146863501941940548148810366124075130828173915241576937229265669175888984331481069290206678394393733326840806964109117241594793561642951003308143163967585150900698240623342565788805317986099934686954718382114147737262934430444662771208618281473194852362847834372903841773015639943055822505421229395784935330348153376729535555978015728049889252350584851465912940955885320611657213191988784639944464369844593810242861392756616409414587887522260118432039423213398737578007144423123720880583703524581573637098702954210150587116352519544079034849950844520290240051224684006507014822929767681556233370614056442266671902792912546590905418452058772908546947298667133817789662033862627491360947816971348032348659359003497668917883368153841826278495039321785826602484036940819997586012209446674172951386872775652507688391378853809166798584608928595726663801803798863721856997321015118236050628337729823424545116213789923831191133174001231819969586314631553441735097505039297132487313682420605259253822716889185103558342509586872401180920304801473373424734714050462353737730977980785091596934609958571237642350844090608684866225003970419453402294943899817750427376494806607919152308437374739339584790539314572152589992286156343304486912024943089213489652085414574475059740253120181441898538168192157758893055483978190389672420184042393336343685924753736603906093586483093084402658410882144935873538667475684170197992085838649781008490179470869787015579970688845697522413168786539775180684140651013690853623606724463414402722805047466486115796518724595586471307517255301719572118998609995286668205367570482080790087371636998569621643430567402162819914328272952959231133057015445550880431681792418494392360704849039760785480297448059805140876165304273366258604578292461365755985961267433272910529082719960653877602909752089679772121363610168777979836392240883280362975021349915789614409592750884155598325365307634131477012628042939813128686750693384606467990197987727423106888002286639354693387928024755714292900151458181252348735796783345275989379200061911248473968642353343683824067719228667677931491040160653704146023927651848735604244007537393112834257239477347146835915156742923163902667991548655267543464438513506443615906091096784610810580768817054787865507497281866800475357843499267100666533884264894356141023513394999552277769618556025677265608322678564043256447556846151773119634387732870012641867997258424365829601319091293799672896890034520666135954833656729331984170847354134206044729140137846905341355785271579670001902423176832081548251582171029948090474374470800450909249141439561317749291865731627966032300839264246695538313895013243927106198886149162657433861792450829948363218815955088061365396978912974351109897655490676361550831469987296861400053210577683235023514465235188694337705920050991680204985544428144794365729385602195963326380412082891247317461434401498471790568859897519569823141919573703821511568567821703096995055575705487816040660531902155667891449985743702856684775623944248324069765773277572118790245934962289101095060146374322529631544751471002612971769603650160084817876424322142770170184916655462790653472384203854211725099788877593515960117024154115695788448408740663724198813350368700221012730527431369053763818474288873194407606278550128651838712472347194087716456499886212145596798958071472730475290570508583133155671981086986993935466671827898809107831225960023475970133187538784660484695294516865107801737440203382602539585985296293113572854686145203079695734561871817709453891245065472619924982922741813374084012506012726961440092239163914722735996721870198299253975715220397182794889001885320026942671107353624263873835779022512971433523741538651144078500868496251754686197777314665441408201098224652430209411480802715291815700344031399326980734162622122475690367465801843450112539577831842788405578316486289747630422669953812874854693750378955599056843382715084845924074812402531192896520858714890992039499148443660235262379495603570771710359069065815025406588146172635972561716181232299730407786112837710598949146325599412968514465189455629106426648867832243184171438131460821706705091662577878023996521941692649336375079567982974282574370570960070173550204155834703033493668640434977679214833320359869715083453177075542917812079084372387804498852327711472174148170708664984520079269223032129735977895996759764214352724246010933182136307711204792370098338740407587878500312287029419711594187275589900531352658872491206574024450344559777276169064590956445363106041282310592845842463705790557678729224694319291929189116248514825249890436620070282339845932559588868672255761541876805171845717215660669275941366243736030976722819089412148195154564248131642052133940803859983713784760605122968543768848738812404366233241067385719359236159284484765851923713826534794360827321447000863922999810744841281795367753306917748057922488818393393382473315469320840165609702541052421830387443645123930215404078799066702007666371887631234433624871842501024495086698942594866959555649866981298158237627487298323481869484529505179427613403324194721655697890983846812407588767067654463351194151372883381651845853641806113854656678124213501645287533878029948674953423263096894097060256192071630562744846864581465995952775923222384507740838787109832780769710365563088264264942681400679410978983534375932770140780591049489664954573812335135638669192514473761609227600683765616753818704289931306257795015591813549846049362432623906302177955082314817039630067310231773440380830280239401383732744054847652912045631631930827247240948813953853148728084389477616451245672222474841556338683182066115250612504020790904804376071355909668716339817616091742705112376181035832655350816587998380877952895619455160000849612318260703071691515592213342725916500289809718853368379262259125112366709807922107138989245309078484084278580069083584737134475027770317074779708083683236378822099658859250778365614267013326442977210102046548507289723519760857950264653314662150285875116300628875216682403367299292772226693500198600646069763825187065248323228998814971439345013493409258551312716454822739067346333563751805366704468109836462486182376251065517500225891326803944737470700985948182162871100440063167625115011762322792746955901142544840722973154787660162979112523103682285931279025731827433401360909941994972752291136065801632664617379991758204265869297758188659599599749034488743507478838957916951108013158824787597309125544475312032097831868507610069856991595813785873086932795800111043938506638541796952699037287656526423225000753558750662724011017782527480713174371908366239423671251629031711816198206016800130809078662429813237974994790669915490673544002577717081084392966144190455460094738202068468669397787642139368291279622785652376385535045294802335231874815368153894478280446293585040340616811912275068050819649924209917954124141164347284637838307343854493109742463207229553738485010499425382343847101950271356122017320149719392870189899497213472668285888146138007008729217937525248779556066454978178200644151827431964092665958346486767460969196735921973554524339276390268123380546993437491188566510281989664458578575679871054187280543680990307985188271667196148916271350333230397752080476923969271203044942020064993554888782002640896688912915662538860540900743085469432614738576624538450826419324705434539163938928461313591465763931320509293244650178907498042149376161878832327783509551886562748573524507956848862232724078061334103295779915650789521199768432601184305436301501032197334720181301653315881965753450823365827651155800488746771583804980393767055191158509459788285568183229124520937838495790845358638950721077347493224595233282402000711221648234788169991965773800022275305819714107079871341658857589891542982311252078794764202371574973978873372216850478300983181416150768664826403616555716559522282376434651531297674188045760831200108970393692615748646458168443064698263384040406031527937651974378828029983748427579620578245278592245752132002247683303560499293631479196297503933032123517380461737311464149898762205227113378352212795188182526187107153742435967522415421671968631701497526463607550659024192465704032832330828860225598374854187577735666026971601374853534941537557916603031832905303495045415466058077279758719933826330670056951585272760593213678293178542362671648427959842500282739809712939436748966044724707648805863859342883986774652786928055722607191620249117564533884889798338818785288738492892619577238013249782513506565607979487060174507000016947007052187946698910956188552316492170099675993445303444766066490057860879575057099899739318932123920825162160756926138708731592349159015535454381084055396234813390051963315610816476620910712736767621311863861359213623091268250514239474503262937022199414364261984246085528286113911881266333734807869402549420480562266184533835190637131170537674009992507782872673685456860603049743575136207119958900767866987555973276324034883073131764008866385643527903427506092531487008522065072154447262711500801097191862247081920436145599623506017430177027196795862374332903178825244361291358941239860006889312751852088924456991084775396373054632904064677955542696964039659187883164925339193810463009060998222022582391490952384553179878419700275274094244241618721996420947463955405346358266714251446220797681798702557864756853951064636937563886074580257193355000531267566311901037415352219330194112202503658722051583787869880183011017212274332548230276792892228709793675316738589670582832719821158009721030307764087059555555394804410039654102542279525577601524751567252519103569394847594311484461852314074307755064063218925533723710479878084361444285702047867428385848563312053680196271961351149517956153648999281526413963688584519092060300395896663784488938875642249628697609921310024932479955245944898371561793521301063915783904168702769573986537881623917351875531720825554742740611721097774202601278094453902004549607669906817030777130367035178592748008290377633456296331358129875021186047700999769502560469638461559220471636394009852912877072375661541152013698502677441379391061941379638546372730825376418798037741884275371960855059844497647092658208536945086644211889019448423370731328164301327235501091268624523986208148028040191569670618655517661049189487873808464014819549353258231608539743819921485073526275861367927519285114445573270386471946082875621238602813834833451929629977144993778748026993460847538270638375317949539640747740317619632755577311049667810548886185973967739111310365271540143455325438287155798689062788330534355083551181124064667950906341393242307256269691560974148629582896711434375817140894489395728187797904961517620719700353704673845655856278384691827797301045726638154976137704129797338366471617836347466437907973570035206757716462058334057300833408501474735501057004631385659111664898333743257065116138572925869877177095626071897842887293852286940050233097570107417291440816104211014221377260669877584480247724083716189085447581715700508804538003876313896535381637228020342121317069422478291576415532126627195607935592414861678612448913871035361175780302762723844812241902670377378731221475520254519544560057335322692844271433273810168073452316811839031537346153761176897566447468347423521802192005299078725735304283707965417472734881139893062089620794337489196578906395281927654727599056192382137093133534748792706143068320550863013784007783417345367054733442427260946624431281417019034780387495195488287184623733460706683195789677161749538027361481432658170528629080116879278446520701689277598305880473465385417770412187852203340127670707024271737328760985287012137647911236224133534448955715503054558219868596094828918846011665282979912052928419127988397139250071792146158536864553807820718374178400595190701474107151188278123742139683837560363848703001325446931132719880392222391901755601512734124816167329703982399187841637011921283173286762736569148652623287582998043272184532024240613049671112584378615337094649518230163095731239993616999035203061353626037282188250433973892693608376507328959274788311128541868117429378885733918949544300483002041019694027284081432479842276900311089670565023078507009154889178494862363456925502911340204424067758046961392067805279095397946085126148723938138400484794695478490068155543022094742153899115654347234796923983612146011085227223917832437567826356431227289754709997755135879333317439708879276116816041491155305756440466415076118310722184877170265682826208732053912789980856038586908690242592984067402978568547053342253340901071340904796826996395353738154003719736577430021340791052504909634245793305261576753794079458589271829845096864762015660389274106044356501249014208181295643140222327088421456246689995092080550615048559007250612922474940692914575749933469696037415751898036791670956572452484967650531979553308714074272672758685115555879196093730142406764326073408622716209378663922185202191056176835143933438217276567083385094937552163803129569694096167269446444579551340223344988892325738184629797149907279958714184151935622002701381023919970156650007129212609126218556828432593142121374144572194062812105797262910429514703806026417624445543249732791439797850467818520244891571947709658015646562988758658144816050894839792862887532363876473443625382327265124930669647346583675325360686813758764153699101536224281888625904831906078352616795574162059973740290521951812188241042715143830977556253370128500312984644080862713961535317478486328620251677738954188287438171977938982778369299272274337922577322839139186107837707242139766954532202737876173593797335266865694008096082715393954901188490192986887447219810573339564549418460476401848323181804752595220489998711504010875662126183525877230912204410424605157050666060523919233874670777621047340396254242820666278588852918308488167090920471606315689990306795293442960681502833135054595832728932855858101718399075843779798363157036694301713857100955470638322560930497990376823514387578266891036172407055753238030169451414426957316158017897831469049227863064904447197959064071504657974090465042888649624403240101485701269623765092082813774543322237572318931726101040769613355604992523424161736918729181346323111344121283894031811280233970887415123395407225986975115885027328350284260705465752334128927050510131713660623779516445631607175576372929736298370997508803344022453302057785066136315783204664431080899739703759938957463329196061697355886719082841115140811577613515120137981354740325387151626358111576516976079696393457018146623943916280448247770573927639922457747399524490535268658663457709209236628149658010029017376803165780463190443760206361387017516033520694015701444840614355860738613966740918925072114574647386654717367175393086685031597653578380135185964995535219094076006978594881241364823766387313735055557557160333641689175994820093830541692814184699119547286164309903262487563804722364569690427321789731830346649776765548152016704521549343768391944972650603113811286709503879582837028122009037468266749575854761072572256403799960563605665403589480736694122208629603645047339897041037469170517902522526302761538695881179957066645053906671373161188489655542278014370521318290959446048440349253026429188406066118924012616917017571414284228237395710705545992164091667709302777704733599607963514347902843959739914042034987386787128259475747093415178105839562403501945143084871012929656277040425311871378122436377859987915863945056706149356750282962144337454593023715437530126493513113535795171130329985364854093278241766499456281232389810844849498638542018949409559823690080292804393166603028707028178440714442076189488063966219805551385581526489690390958305050895840990638965357968672171874502369798434168537995228353611385389360641668496522730364267343441710159385344519668509871197962812089831519854793372265283623175502409824933096993586909122907388187840878986344806718841095419124185673089046121024833742821825091645090403939106186963889754358893627847618672481494359225992516507575011328520062627779159562012771295636982155276318633488088567833148839303630150559060559032369983388758668674645818225369640391708205995397072016862894197308536996877766529412527071413492869186613777361605395854425221441956650266748923505228573426880758377574932672136418474832705927573994154085957627129205345392881206424176096986550948114776240658777134169316947648584082219701621569252683290191579147084643903584224524808811201801165827719272437021077349238051668266377337588052438494260289155213539717350646032552526221185548263269273384308143790925983440337888224079489184608243013403536424160448226710506536945381126346231547811496261077225562275789245122536899307241930380191322955780473332905950684195119713570512995913207549669744124414512175625347544403150941076765814561608829910998225259248450504759663267553643667483427835503593679726747291729368519385004474076924158279442895159146788656873685939366970933809298268172080216419971894761153911142927389734399155244726864554685608251023194657555908827211089508631093558998572595894331419923928111826712869660814263298536022857342399860367016493463056565902433994391772673534640091052723506682416822532747766669303091941538676645569716139219605244059841520003887476694510407195093549594348208224377811772822727370641645248591290001079284878531847691278621116412393993963623285935709239595043139233809890648948601799116798162586317402700007929414364636364062711966141920947725700825755780103115125897350984094287288058261502916936445861981782500683995041161559706378720207803039913576928928414833193836876094911113947306579812275161279525807669547761387290405237796231679485049167051806987586960355771980222444884665220739770840674156867887592555938897649516125088264047754619406930626467859602959666449562258203567857062049816564934848502906121786811322053931995480028465310774448707956209407964191776266134961787642510834679632144874668759897026333060626269996531654538472383308936413166273793830143529323413178751224778666611731702449886329209920170440842333936235426443735181128533138401612633300756443413543215509268595535493707407102033661518477395196635728324121819648433149459980867810676545808744763776997218627067131792807409759890748951218721184921735400546161536575999132854996783145933801254854051551157645698133299324537751338017532808392326854545681991503007609168051992475304865916307594891404119089084808999088525548089661494659288912306741293272138949197392455260021348464462709798076676514824167933448871442043763456108944274346536109367699581039977492819801198945422016088439198462188502799013767726486848305577171713367305565174165491210548207907584094996720690760785133510453559290238895247081185603874752487085684222782492268322326223537966705186172104816035800740455408758466731096666756182322840175338335401481953931220105516433276180013916021781482033790621375626117637405937868039763803643014567886806616996610754478663506768742384916045568685760309878696337224086431156493089122509168124122246199442805143297639423278424149004882377542294492327249946203882929505288302589470781019359926280893466156497317912360909421717308566577856870447451523064492741018227087712496356730263028059303442288181316174376413903589641647920474107743702927460871161204694478136809154084021132918039765412359526127411505767010577651872680556285740958075659265063876885826751881765718993688193742915502845976166435850450068514158744283560876984858125094000874954469581574078338291552763268530968573317286085463365757074055366315795506688622755731198639634352308389477236631955356755797056614893174124889300942128398923731388227112631778897057593862948163859624037386483274050592026583464056877994898927156584182491605140484797365886672275104703086887672549402878658577206330349076373483547090041423307179912658532917504806525701875607802799606038976507097789427555488229529534285002684917613529086126313375045185018047597562972813353124310376879446212773592417544594832368213516493298036988497910687773956458199493778841026911641817886711575429210297357351410992890825191211631777575704614674753805426749653699131165438210752282242721428383401254156209737088208754621449009956406761728076461568721190452018988153605563966491749577816434192679948127565261139928328150835891881437774075010291502008803350811022322215492644311278502675634654832073392522843489408961834183081919739991744694627310279523140169384519279512122909765228143031146077684653475807264769750379737816241883506327462170801738759448939334698409964263513189448782015623352881040570238508600051464634726887010242349190715372872396186387252886009847577659387521282441759837885516808037744462459143770888070558311022236417850672049104787135635691797919634489370347500669726120651160172926628091200573109437928654403032504832172307956627611924057842087109844596167389424808156241743444682161008969507894037349660781610377283803375212418302277577511016645015721630048612818959902594307956812569372835067066201519882331275585234836689843295265709207835373494189793493349139677372786125561682917223568820551154264599422672632030772922722974910043328996453973124307355533904044151287534533837662136191400257837237570182095468234119478415146565887016996195425035679087855045528856846422127997797168569113854461216582076281767102977562159036445278249470920139830771011359508867557481380120048828316099540452741289208816337859792463318796492223430984476652162621418029755763288206682639863860008847140609844142243051341651001703849413613505065831742383758602543373578156253405468102413712186143317703241211840294856011739098907207207722706000272554722627393821856032936550892701460653244187935993990067010724541447649177759307594400508985085104008042630543491749648136862955034398666613098526534731065287601772576604961515712399185802361002143042748612416395798880519720323008605432433979375164376005998611073203483118889322322181998230569871442798445449983831026120001523247105419883852545084534018476739738944947548885903410355850598922117002100149520063276939099715733537389537634895900509376796532551422556366422841913133020560100275125665685284765500153439683143680141967179923320557382203595042361135698021336220641066627294765712971451500294134670073932952877486822894364925276750268289180931454251237653187964207748868161533296410531590445484726032180178035079497126909712618531888323102812543473916715697253284175090300697123525369126093029574335620097134478734221926680007499430190315520638827708287198626886696996265500250344033301072541560091870075350277224628587077161201377799827522846954570255093579447504911073051109331454638408681014185059229312786751554323613129043790321152632752827334289012796449720104516728565303458725577078884584363378911931616807572687273453528840744244847918617356742947868255769718949443695756911019838010369887934208526016440602460469614058379521027274447972772415611265910806568202872338875445638019757405930966869345880416089150826773253072446530898711915481701011507665151732899359075227147479530821299559456070740863682818828574091779346291906839502156296928167482493260798718586701867523601188720159065627158027986699220681064356826300015616787875058434729039298048715546091252251822198785086552138342815484050712054128063163007523586969094505338625706126876458374282080629296641740150760161475976133608752286997080293710652759295795917145119989491523035957370463518653101394090034361251793004948365928406224058543604121460713228203648572174126868597011921540280717907688894104001710620917121850585581605288061556356486881694547703517948206124980936712064496104551723541847059717710188725313275048020966544963458244498618853203738400491634797618806785361306315896649966096873652069017938463140654688811697842292204975788054619493723405983053101416379730400284604230652960846838271539320619165357496892321364738009435538392405015438500806093188485312538807887455784242503054289447672951593825985676486278884390940613834511851179185789063200896245302876386758182002724578766180462404200843264277994074064646151492518713614183780106377068792111788631075582736973395904357725424978196212185631928444095796474619580304237651297506737978614994945466023909332978265682100686216492403059164955551379202923415050661975844089575691788127833701135247511749477323600856828238020896361834687225238662744811951157399030889731686057676368742930409374158726552509010020049917384243571646421777719518010248260548510795685738114746810597647938057627630238333100033964985885053571379037603982583676117928549027370441330272451705416661357135260805098591463345796951346744063278069034880172071590424268712390912056819850360106019051606847541358839039126970144824689842000291693631823135161067670974920130950364735419347426398011422266411856198464941254121255166410434411067774169119276145676078207215079167801503983433567954432307452950223037932570112235305650703510110346303944483755073614720677767952370519576628731534228687395951616474651981893376946078079227300136478634806471951968292406066334387333194301312125167140260336624111708502098579256492009227826289647099339900070495274643419858605659138939198674646075232693467704075223559618768349232221147367089666305632647062336235461178631963343256409601725376974341789210960201425220336717183809331317030640003105361233718292910059480457548207547582972347206333500823897257648622553258469519008590620750147075191371199601463625384490581841068422289968551562777389321747882981205478831464889830652894300065973729495805071442807170941969406743215423220242564584000734328937651044029103127403949666053250519001019541759810367534029309545868501030918215616946066796658317295760641469869838212956862516184816287769752739759111828492332985939953977750476890291138583281544035230324289129164020814943200489950501761281108767636713512883858196402498466657814425131105258670203460585364569079179405266655220064364780616052202370264249855090791396077462089795647926713064851398373416194074078019146839628641340282205603566904648011581075245691916463339892538366006899096308455589149107747429334304445908708811216417998621789126763506620812308885380167682758769698521440405800856006737662229063072122247839371398776447299986134279278433027222741608458853194587138000552643751748201783174483908226623413095170778165620061003997168312339377772802388761710678718070679735558534065343168004901258931556833354871773028292162521707496838134326204075096249512835575050697433658437216448549782472149881864396993087735635750181936911784924149555146748052755919851922299889972331864997433344575549645702575104916109936800404200653455080189074479749459571282400927329077437342503973099127646887114130630977021063221796252367954288130876781720660126267454090072271811924230095740817236789984463385747137515830676182941854531166297211435248587622343838675291679625848953819261834259918199529858543658493737583120483239562000685704034129843807444312481254039221350531743805226662026738396402543178023293434890709253867767326729910491827489373801585512707447833328498205251676453837448860610741106903173914531043512081483354829691201755801058314775782643337818045017981188912642019114817961103113916984415374790392153803730893684220248501140870098631005160103164615704401882969832253780221358106579083476779020008363186785746043384682635931765611600623244053423746836700165509430483714074806595488259020906057223990655874818754499624319133021183001742058321502914518019676774630897071211913130835773403696130065636434266894233166389571165642630838264899563151664155088874316058783356664371614111457899536911502654426908813117683685710108406450132367795513971261151646099652181627595601465464195317752692059009860074148474569240073616344561415717237542185971167279132203268915636005360335424806502295034331067701684830883078557531416263381587368107269711238318387599384926629690967116362488558280442463943411176957198545620516055360484553400660611882024400663609854755940510873749134707169238623338108903403896344802710308649456638370727558483004682024492278413199678937369222607446371611560544635551311271457085011168658353395575900338366435933558303096539872505432691662161807148403188987699248109212297344471460251771324223146628709890530014085567131937718824789051829639404533426587756814144657687483295497030673469183279002177922465290395025267932687190328763043040412164498008390533629751378490190524166859976209986955077894603587381824043077650876665136733941455612653719256739730612433843230450990717400556408353441267496662632631877522479659022580138572056761174823546952257296566551338940715221806662029541553518945271545180723965044817738343051559594201549065196181828657652834447918267234218344868576951587328829323336383168888586189554823440797420961127997341068572652892530040631952410877476948556979345719335274352052777884046372596929198132623034166526544878677884836030675353876418694717614794903801852363057954067380644294547029392542840864200644155110154586784124940378489922487865042281954898495909432335587985455129240768030375900608092023596985378548449151284527857627519947739948597002132871597740199288624271969152942244909617796337618336840896523591806713256943382483122038275091358602516351549382569822895965714250933204809281215253915185928813257014334963245175328499996803059102793294223531882763058513236531734449091053757205268410711814812443997877674628842866072482451544876828171454196034638512567700840086561445740050860187314580972597972732314242500088875906344949159917542452240358391377905377740248127782075945502963802280323227652675359978445362023720877362231835628660003910964745234417257734967812623872206689279124313905601024434033818906201283985458472021425304691235019027666346701331719380425279723067517175966903906193377478711544345179344747524953400008437923484316452535262162204545875653912504987463373605978209971048489112996165227867443514363595185632000798387730222410501622780135199291600506450876651361562598378181570061839494840547969243779152511525674049218056384069922636050232649548015676503326055011695490121578579013982250429827073347980013569934631747560192693357642888639315836820419210397324332209736560265126797829486245460546306889783401258287072113586485524122191792319077059293719066532836289504385233454720841516250294338934641628764773378150694288882422411034554604878245362136411965512099234224009191931179346440026319619606933347606977342350700779559004821551129015720595616697999211838062442374809385864700088636236171176333136991630924062889521023948488823374621926605680731037786324510694661659630481730138042386302715810680516492942931320849348676897979234699583794624001503360959878125915395933596854154717219804222225708801495063491986890003375459154738584413407380798620416172420530686272806711970217935301420063155582779893770225475013029935593709817288115517053246658414808304744935256879007000024508371023763942563093744701166147227802134097762111662353457457237647312324599449172453553312098634355445887405625315546685181450161862477014616714047179733287590930740990244692100868995298300593542457566080856755876478464280944744936381944600254899593675371550335299118733053877859143097202477095593183745756763899816006951585264823070264830445184673813143430256313541450687718553608040100458664389136675303949861232823294637638778518881775954020462443515942894178310324885258949634364665011694777988421075064027635531575884224806775173586587171187789928709880531656769116007929746239995883245845771031645706880023785917726332003840328127256383333094884563930954174598484688442478322690571435034753886536528022463333922442499363871453062951565676018930244684902540633513701133225786365694466377142652436461785285764983054185912660116868271964011041315116234397690302585124598285294349538500126473422129885675628475281697120441363237683754524737531230944379427931997053492570664003273868269597902128153993525727513157289579439289090014080071898522504067214445854640700810309999815667213029966666913911157354874722412045718375677996774972534294457871508708336534312307047503822736968555013750044330102691446230236244989701019449689278773664180663218372352842336082212101038271777418109898750020786986908166719267562298873741652260086927868073949166573584629290831362058427682097754039479496760025868089205011777583220408416214964404161104104353927521497888119097504567122348836638934759559587911775980611545997905918607340341380102247643577362489598556428591347170663789226836383512681019135601637114470515011144546455072273966516176201031598397295575838556312432901123727126560895899126213214158459870133098308936691962633892757000293567532744522388769174729277429173080374583476493614939092011424471259771184539270172270883149901791210290004106160669141250118310841206989884871298604704619222194801695285179464305574993473069565571758869258381391918193934105285398447062462294540979630430385524207710614980929261603360551696411894674464343492990325024641513227446104535974793203281366967472924317380831760318783978571166524273521850394167182305977883761749800933225760326099255813485284283165051509039523931215083359341247103268803423766066916843972762432924620462236565471475158126753803119842086190015187281517502738433750117238408775340957093725882849990850862637616098815291232591916240661814481364807799320900005455641106136155687241353102383996797854420545334633559851518294704818263052935234490886801074485459349588527567439124854852470204284420384884571485379598853557661388208020319955884458316981864996669253183685411847696705671446727515932645709843495496234137814629907417077782099876153348127795334614982146463864350593633108663580089551058041539055476555463348217231270056034539866634193247012318274063773908398991118125614908075733018790376415535799639005801521164272561082840563272105565402523245602131536729696667099058730933254321573652361747191345195524726530614867455275103986754839984619333508434178840359287573069316918949932227600554849137520766091563703384696795412841849940633626516672868225667791726904349295788518310522570358355353664130337314132533914023620384837960122031738543257006785427343459365105072268732695193538618868174827289322475930139857027171591678536061291360909430947986115582338394640742050369253104380536308992341770445913277080028240631032524901863100465390178339034302947953169448318143231733352286194851106475290053103119527396504932118540934790422650756454840515167456681017833424110885097520444123100815012035890949042001530475733157880446015384877511822962246334615484955285532543021810759067683634606480236958063286847555449421355114690245135299108242239920733438891583295507976015833364357742351524995476425698431691144991463799472280593590656649407201682287243454019269960954282743240236896687328346458694986035534295409762619036447701174182206433284123950742207476428398227694557067762611047274385486207202492231711320679011033038076823897125644654103590205977534695492038988439594581099693441738576693011480710092246087852599707240828486098608755764102548302467474833257571555427700737853647290152889664181320149662540282403719114104184358340992066558975766514707924790393125438466865404183622788621128897655312437306072060395905061239022973459402452842146163229027639869775917368309028660598998171923332327673956982518926089647606833502935096691166396221073827991225771162324914525044727523358840530349163730134800998890224273976679626367715232469443719119174956960617130311802379646047631868431048387923525688407985458504429003107987012336998874154859947903011494838170875413672071564033478494762946854761390291902030542026465436394446731585181020753990793828048396935834328445057657924273629034938453904552975312824226398938101703351299765547421914236585448329000979297867603448972023402084672376973825550870987228735512950441383428805442214023405693264913312230862776301923450984100269459454109834491340096821112200359472812623713349184119702110254724727947580471082940255123253261506106246898338247008483763763007063094568810233386932437112461507906452461955346921670417748209274628449056401497519777812723833169239488233572743866723852535025064985104907525638913647310706809468113722923296284980560965718978628579407779539873381767435448844501099251029091287301038550097809687314797814161244469139157826215846229287434621525853278898680529342931223675566934653271465503591352948392966190125920103676469091357310891969496131929319893942786509823193471953855139031958366855408616301275643013474247509816174175907245055749114033472950065837629742306888686306475449819960918440161133785200922060787123937696307751450311178367349418655984673247734792637777642682573095136367736398032585820752283231814007879539617204751404917213350587449757606268892869464504588633762865600080058580947030423670793337446331954501992354349137224276835103246441279476825953020086466356123368148609377262186503864084517393230131581103249249717863751209208939264072706874086924453280934234517106244156449935312003712465988766284417044096343220681725733822554556193168883745622876228994124862070673439926889399695713298789933654355947686939183639662325670657219214041993319083506882817623844205871501235244176043440720779345072007611904787741155530920931955113985184900095465480820439208631243489455109682365930763589102535364378344548053847625136087992415433924610240486190640805965214128423886500771387241039606205284007405976893206061572649382487844222930260926668908950380768044302504670078997008581970402125282355136538143476956979902985153273158139122877161086338391916282108688169269370797429063638008006759776013763480745471310372426092335535659707647138247329326101749281631916071648815613397128566330341975431868152615427903511400500316774326841956978238701623741733869208922797467421669426741914023314005951874473989986997824517423380753837457884329877893282128934944402099667287546425851085827592943159849053692901601685441932107104071919629545016692327436090228135809895787449765676056409892486306872611101771330204672919755098690558850123809683231363242238730108429990819703160066941287367499391294375315105880503278107552640504264407829673497321218644202964852607846000963977566819940072814808147454221560312170629633839741775787937396434890987893328508702812489456194582853297952067240806543470093941585166307610162225887918425233254187786696427511866846296849257297003585034747847254501358462754919125730241860222767341086063540775088429596460691206602498292802234488340801625648889038471057370568208912870028673490437296247928536143328533050817872789654821469505441485373130204522268973425551072767864521840498534207026716915112937161448426260181490668404319486358428773975257784636409734878717173910518682474328078143088093797740597297178381380978225393436152024819759019358608578098582691089215671045127938351297127861726198467106269606691910372644880906974096599073020038642473267970328310613095139778485464104933320477641909872505421871675746108506670875408563121537684984083600689999937535862010057899885929346784213245650303768489971179263964870139459873510957660565156285443722650899652162251866132115555211495251023020652763376708674012016816613083511841300348654929774996077823291791854633751162571984978380417542717687469079311386872580901291591168268457680909449829015321889305170513870368498920942303161275846314404071666377066340161431118147744638494402251479965515696338970262896403597402219943415143972270117993611133511147802060838208061540682356150562718902504467821634813449219061810679585165527992441613119489980130596221552002750660911397249580317562160994318634179972488650061698155630758652019902903249677216067148153244032732899947619219203364540755478998547146570062023048284497908875597660866748227867612248498902726011269707833906524027191061524316033321268494808543728072132320744183650557452875281816880758799583187093176611108353611601105480014997049406902470018360543189213191739557615982989169953952792860429298518200155187318032526352569908726429655334713441476119133331892435327875285736264130952160882695544727235771486715953715364501961542800114607426062206181431274390959667577723541837343330602708175417507711221734805781862539721696005744880282886170396145664956523106295002609218077591182987272321939455683885219446902189748445281237248343515974250002547169248787082058695312556869783311641096948826909803317330327550678813133348022708893597227606828907490985281523990888984426825596154342725715755896135344055208961110416554287973541074368969781303588781232451838999153676404687318735741394374545905596537984260550690072307031945586110050918891885383041523757556382822919679277847748000547719101283113843760598258923054957127862773719225152929931149996022793909420881097052127701339807480484273375832156147081899958833636229478109409816262427193122323762599239481109754798493039869640449642714865506841207058843249403903178936675306394500583492024306357773587948306378487992490302861455840302870550576755378538265875169947433503410975474207557141798332124500062430823922488236173422375996751441598837656595057341878269489662022617943745914910315458073711864660411703997621204793288745784375391779792065005218632833844212183818682455445052025690858081525915069464525202822303586372801914356486489119746089629886270159182561988717878174233131258815468714493745725749759176381994720555642461658849478865157614069298514509763309001088118438101044200165586418870114663154629254767272211534480057716163831993525227219152065951859533891754141320516436515544409455187599702648968669592366561101414787511770172466773417537351391228632100465523720978787495528192026405091383846522840770510310632446388679209277239528118118309999430463697154426468842099140283991409589922386403429925409051928639500158316358914131655806466323117264016606878585055489127981057212686904779330753581094828814991076020075173114499077048925471916341346107334448999589886761901025345440054504075246938532238088104682227187727136052258587832389712289180406095055092903651950334621931255837862682537664201030103737887930644807034771858981501802948165541064282569580439577577011891714456229835156024322777850767602815009371249664129624624519862678108887050843149328430391262252326301861642084891025667396845492238363423975044520820026934172714436707261255932145139014367327905365137916629100239568053451928555792030694055705292437261019749309900652742909387409241295332211583018337575074960808829711298765997633923073224040899913064879014234749536244440072142268737929780228892859796048277483995122321326574118832609648282201856818343302694003872754675804625687895599064584252218312957751708607168715377584269193214558309382839594308319498673828316598848444687232648480392909166796933614924838089070383256275295316692269238415664283872661167130462707125877658810630331512607277720611578906743837715330130265153887620103657609391921481611497106346692003800746291083539546190278950020417436357433038439516671257622493797512063620194146668861340400523284347028706446250605906679378137608486288904763566203799958738279393601286187610204221183087523411092157998433968059278147144015404892251187832379668888289039842100866724310604472090450103591089563352608946621240353469420147250150891350268563250509543432893778332174493788168111600637143570267687329362328865229355223816770558497506198326465183434877581419490456892525930115581183656981732424338376640081378141597696561338436101329413043600320214696006402281666417599346067439529835774306972546529158942275042662201104052685081567787618118640752485437347101802642139467480028211802997463907924763128526679002224962402155711244236623892743800247842257517415858485392825097271425762684319076463721960493124780708279895330202456553416071605036778652635126308700775597868475838863782911144164902459824126465364367822803912336924016420984957246910456917453727907628513769448989930891622849934530633862845334813290766909276694820106605191338658940684234300811335162235489616439306219660428000844905952570502725495737668656074835818967658086045386443295924830273826145315697023449282515375296367904912818342112643789565055285411040204274558460887521927059381778697628673065493413074833191594661298441975282893422685361808721131859085846368718461571709689357812554232150081437593881976816132848304503795885110269406296069478281554170376187583910888551092222712469014715731008598989304454609922494028147030109519914426218042899197889237808092883691187406279290993699677693878684681451756292396353410427130203070554541464386842911713777257541459662329337556638412989502028251066964256772454085042020287985437779548101907899498610589615603833368378302182612921082957581036953651498965761803088806624661544267637072826036898486025161437192480923352130468718983930411868124255143726325343503762263419453855429960936066574298863735115919716889770762658846539092847212284622056481874643113311487443208901692887824209505435356361537952947397405768347281201317876779268585895825896103137822889639549324358764392189940781609973387984645655831877982246105557904980829033697607117898796960325319561036679007207536459126036791427226080191352382814077139526663727651712794375821569980523450375560324836106680877620175018793911501766838349803217298399889981087665148788967133591933217491855397942096356831511382035919340850574646818994959555939112893180393781486306203772517126531088698850579465869902278257596605335834220716267500920367568239403037308790546345600106200618800513908462990883620621763896363780325893002513668656997683445688832645205393894475226818822723121259269328771104406787565996245215389192109407496146400297435027805769998313558111012427191323136733044424163952843189730794105876021727409781498069052234108093662039393950327704026575168785988138703225329303948801462478133601810232998066659042495880398326070911848597805631220347398883498055086188982444052794893921334675847212532710729532268819015079770834369239703229221021407981420530890838320929836968285893509780379456742369148513932266532568686973141124839032190692810268226506641010094946525683393442200669347151617449368849992555794510703333697251910722482742483852943972818627244336378619707525107781848834871803821463982244311775236183740586511678487524520850598541876029477825545985034956988233994022667841720542942009260607174498256468043632837114859283680814938580665791861602942853883417919225345764623153591989167859100758443633534663375959620867302989764894812478560503462139092486730173760726553355656110261617840143393095820820366574165744061729549881845698975573090937720555703211885299781905050682532381641076360647966540621924726764801976954924600579427305774953222968942164886559082872165524962994409125162534454733766739951641800748912386066217436275695821350469650331783617490826175943271955525152772704169187590377617560064870287650294486069017171802754578108163523373210151365188616675385882047011452458439207410335769854518366107159835623548534031239297877753376488896724746543714779564961280937683228816844631841103362368440834826393709304825083894396840177991223643186164900192719055595748427455153359985987219340198469857381972737655601713357232575263260699537927256785017681147092582646923320272783495141054173147058020598356392834289358049635214413827138201288266447794898229480078455839556423474840878477283653005444125253373644222424313507227490686274642128285825836440727012623130473693720270888194663142232242744263218910469216066352322431103280298374348898912946477988228097727628332129506741667574474522562623211998106396809441845577613667537888796094737739439831885143718589056826234641098434100410466251362596304433837135821109628807107763799205916614198785686638202286637809259077583876763653634302472247834567068463844335558790113692928631926548471129583274510171977198322063461680347964295385822836372606236978228862792428023415198098724218460146993892562480428066690286627457667623384027526440203169852773368375695601640021991827985539062378193428331894002535367304896743073435245227162146281611450950851763849264335458178681039585023434226167019923730891556036659989030888335394047647782700082452528542284881976551597698009551590951197194103846562092008275308457875384572813973814187548933499252258644616356578449166789770730419282514368901284683151426285075640887659241932545523427825890153814805334627525103028024837849351674873911188751537859733688549877852164275046418407738187646413071676051777375760333821163867884796377276319952007666731608849453312808119844092624014185344296031589779355385502923105311208299972319038804052940553789144203835201571550113391917604961217541616295080684665417906466529266129986795075510493996053993051397813239598084607186432420196070329941753436814974591713368925503870678333024251017738242929773119966679808366827634154175201419942675505055078999690886677501875551300962341487677714572194210474416773075551829742715801999270301305383254381462521321473605299163886702085647332121523100379925870770537531037819250873308589686397225376273172213051475856800451663423845535939494170503556777485557452505292607045976812183895216196436958101047737881127907515816825693805446003535287586124477306521681405094706981042362535173481672815400391181796877028905665299325217713670274340416496727499527211305215961409824465315899065201126347865279618867197007862960801326100923641622378976262792287011575163109784808982053160438247311551621829878982506691482889016270752304346849647930896908510369667024423441183889674678420738141132849722069852628212784743832126310519515557029159326320034733278426371689485953232275808458582066164967093628792335063791620183162498858888860998663274686255332343051543748338215859622503606416795277126262803816774397268757909891070424646484564064440494197599712974859910083257738802631406342445126675179852989269837216657934320837602943787065865604764727365569383232449124851847762171714333210245183882645773389011532941565495558966513343045390305754242937415935313927677016507498575782490598027377689716167002595779896786071237970086932422228660946151141667439067098719289551142037612671034770402850830883895415115029070392893157621114971449577561272371923117877052046915100942184057544963674374577506932814804770741405500728774685522885279032811428252955998236244911187843719456366424916266408151569788091596850397146305551011911908724489298562908678336228969419090756805283749281980198479164768845482634725462463976211732480793991649875553336833793808618513846337390738561192309788808514365852814184646202359410388487830933043136619246057944691125023247403126324084873935707792562794347618656916442158349149677256282188699269792855573245840813161534941472947467286536695984690446935744320035485478106744849520350494822670512518682619346437998904266652778010898553960367376241973348734238503556479677945801356708174125666049026333185345592374201568962409198183769363817926059992593536880255727824395859063326551587207948292901535296482660873284403735624545018165296891456071853358755153790555096140135760258685370362061984950864167019909029894655763621377395070478314118904638781800672099063786797330349800172738547904875075441855832716305034691125418646371771656514829596731591657814920544333978711260536369922753665534078496623512797774609092035184436309522782154785313940997717226639679081619912329489869947557830882688925219859110801798265883718350072308743992245456190294293543254324716549292660743410050999142055059397638504028851231961814855013358034347315706766397315850675952811588021609515977468924551383896933914461622227917035642389475171905728499835095912158127143899136620670650409473760336111521691534464811283599900818631924641991525212731221945336114743480923054554664432029164847537621209092086532043350796464635049055601766680226313797696958921991670198695455372844782292043330547408412577002465845179867077221575344171565283324404132860573706929760678452275667419320157156015526132162568924418397587934686358838968790891763171985139462601331562823268058954906421781582922922054590218321731962632103364505951162697935593141361794681220236724418344551543466384648990561747001347721700550731258801232495852242613456373970717066004625589680340815359880925922946970836791589106826019114325129891825565202594338589945182823323127627331872312685702328312507009738448883608706050243571690513049755939178481083644666060315508436336820060474562264836929625417807770324432668797797252090952787226227204097438736605764776468612931880643268448541244802615072888119612526662602992527997255793061086897131978894312350483038047985883110134105457541841341236643715647440546278479548606973849703845547607687620476981316187299837912194295126187329164927432718313233503952092035242913818570538230497901801594356357485612322013653174751408168296476993021837870800260022375201481777347114210285962677023568660526548075664984462062247397928916581729062836069683427875532673236290712530248294490016707370607597694208539266063412469222875998684146510557638514187564238139176836902085940243208337963871009386599024237384429101279415288105775291961605288977047524201730986610656646437629843058774887165469886794583222123906137024742537341708122380066538323752072619173468021858231891784845186211700267344378004131510052454247854772465082326537950177159038741971708946374032751222795188062394574829183141199577071102572157242756827430025818761498637491509767451831072552659382598997881002093008107279979501350276994256759632909813660364510630122795827113763344745625322752352633561184674565520402942239610655482740916785006757995616837013306653058056023253444074109179703911494527698118727750574701064957437678886386745570283896372830704845741709482721734030380327054206205808339639099246873913755978588965765070682832179615642004430084899738056069417023360981338228405501366277467909417522473282566029417109712777470000166645888885024327388595192988746857562102359767712866055265546515812592588479002246937883316627727402786311447766833337605906298122991633905266041372496937222230850354134636987916977694039714528614008935527257100426964452689357261860992001743469677597271255059583205873895789413980320679286724083163139333597293952911419123958315180069109942931442717213691623886598349218701592017126662744015295283771997678979496564112490093369827950442121483600599807765464308256521667274335058040044903783904809748066453888829606387023058052142703307980357709073884745075067861986061517811081349929290953148790825646665383996866943136256987337329757872298100037165478936739344406548943993554309253444806844409423643206431260776203428925702866252213162019100193456707175227365040814782424422321795354256261868826669503022670458994922140682895972066700812695018002799074568166995573126173825320627284316642769670748913639597004421126099590092662214320740117335884810333167897388260829856925877563731008707985660344777057890274208253392299487265385287194014116198851042611051623398406757987045203683894076531340609457808274787824632002510022070294341313732183634865837554197372508659087893210179464331392391790768675128506586590090853454367899317680670051327103048949387053161089362380679508333674875233628045883921540263185523033227825325376875061130794769593210880857081918453354881640945592452685919195610335247930354043771575869513607220372371029242188856861925639931512093817434007503064433875892802342728401658045203993750241903025996823460037050283459225407808192152887663024160134819238464550285413068012262374326870592186056437442208557405641709191357244003249613591018741772476997002280126346767939522725923371380012237049584738554063545007718691900362770139925910518775220555500459940132199869506169897365922230389285482748248617772373779086607206310552928910502059880449638727638711439562433351776343288391425864314288050683435769770951412397440755623308028360522406961599989018088804897417895797879861350171142806514224401887522300814764352973411904934513633863400783685362779656787078263554891145593076734546949946105260998692240080155552546868289431374791252305209891887031907590882028364396087984139379435926083247149693471061273789115343001414032727955129705132535934412558807701421830062058494276067081122055586027805503262632261233112303807650598341982845135361767014029605285677518561736697911045032925741776401459073403827950232610538683002388643102261901474560716061364985167881764643915969647048376239795319825603777910688401606332704989636839317371085855241432452517850346938253977251718097791434591205208335396074763494568368420866626368960707260236508622166911663013928327991637133472279729676317198826021952479738177349226974818193798572102925412172248865184674574012992095329077063511810058043361307868242271792403862905356442253593428609348152251427691024338817863626583165366190975968388134690006508892486799069996267547153627421083872463284443758048018883404480459647852602431117192229800371439123255920289352860500956428882448357140770761257639943136945060819796802698020898652027605807310700026373378879858215629553023688412259713160208620345575218582781457494576316476044074885479126408862570776113283555496063692564970824630978493108395965374531660312462126146353931945138170119729157340810568652849042845367582522730191794392437117687235165710487352982091672394095219255634559360207789046396911539810354084315277653794492367210762001770061484825858403929905973026585572821354937551934407429080854584264348572478067329139960981341939330137925383698474523113129451684853863313128189998717568614844270208141116410436705791556376447321026703458788395433140652554539383887256825920319568665290001803567955533079399699211061116665423216916918301190255604850287221336679770669366112842251716428550132121664224125633543854051553537885365273325378114149793816083443650883848155678308676484950191180397713547497566612218388308964215040387746860820312279052254484966530716167669245300835317360569549181632836990428912671426573081147389287892320374211157983808107361000675739756660971529657852683968313832600773096433598331009741198316162500847683244965464077071121110153945543001450801446988542848532130688353238610676433508221089863967733280591367451346109539174150464927438710900380328225665019394697025314369508212297884706114990148931551319600023893987472178600220150100513943408048735292933706333651982044422589787714732302243408939464415718267553392993971587840119482290858104863549890130480242722062659376655160761367359789598338737643361206898903909054531782341818834798505823121801739719341249412795801932292389587861263911614753771489958245655049492309291204378107595547931820251257707369081188504398447036123721258998256469697308711615638401529484620198450912862770555198491739925085421059066414260792004626547306468640323700690520947546288959857050057170712810134930586309584214663871904209257190034171444422823391449364553207037423613683444080855489448321040622035140052586857047003168928463079194629847315375559597752469787201254360951671858048862128314527769463331217024864990672158063181036351785456368228591741471934804479422572433779544552259232637099712844326963694394959290773442137077127356266053266752690393287262008092778060239794848487768393321122051502944263739998290499084745392993493572844170089494709964221491745252691253879069917333310875441999122182374346996970415848188558187070584027242469665799821185830450346543597606202929650353104368897798800793109317913279156897295990754250944354134411377712815083072702572106600569184655936407053508262027014268378867832510373862690553682902969669094973321766632116314441486957033816771914052094720905980345351883833701786922134215760535244410354656807494246038514504780633777955961302604400404874709645107863000591243426984377580354658640839664832845598856449774447926417431827117262453488796138999449529872147052292883688436553953756047001491920102400687440558391649802085439339593674833688328337360170088517661553411564443939270170759009336938240067005112663508700389941191336215983013552001016730386326922768558186592840245105460809501731117357210389833510935623118763308129019704768787080769744599085033569646695788731327886016015155385250234950307876674736559753148658246636935077128876106804297893368532701014527369929663312425499663636365970577251873179214266379468118515093547504607681282778176422368622565040145782659921197592187979266354751730487426413091064454777416937103992573571215442093319284318730451070311886679649252759063748253597230126837249730197645978159647430424609875795302119847939712589824289285955043852297513497223731828757809642172789456748039418495746742548532387045975967498747287981186247162255122068665575619672074891348901659524098751727794771007256131541451889085065084884967810328623161946635488998289362978267358495735923903561816002167904740568290592834194238736173119031483888685413678848106523585473767174398838492768831266492785749919326427436114969232256087621362136106316806857450093536977469324850461897924361599127708764798584540646711895050356224542154720412478580597136067276964726337258542074388040164223618313925239567936375566737558871415058701951012077885838083300385427553404814030715185389802015175917866068514771687183050214115704782229663882033394531673157786831575322061872602295655571471686446851343933588684629248203147758075814993463232770042931935289044146814333414698218096241924555397788218499150978810937348125086629842009229599255372018085174250069453153458528918835789737904384277565978997088419735984434652989871585569416224583609709164064242886662939266107921331656697706676786203935790669180132761976763213190166053006417422075604183614152733748326781581682126942505272797139127431953618387716279437913357004806329691460955631031571392596144833678254238369411870378227639800412090853905262565521709743448496266303633787576459785818085198411553454010815758491175847311725976432363063558974156791778745187238159256183301432687271906791527174852033035213563788815661134200824652830782991548775464318576590407342507355610577806431574631884777694029219693222047295156740773487647824926000213614435814588764509096552362443386853184274321535943285363871161880453637992025294363730583720042252217653743416127265264054388962047806713860251548908988782231741183294908420747723220816346522250090698217176370012346295142130870123637580266704325173492792162295349520780917441474933198571428435897823759214827659057768909733638601118821042703388829124018410595862751483329109419034473279385479491068198902937117725012855729177369857460419701930480780561656681370059212068461369035038148334342761935028944626549055625161613940006907678510361006761109000037338590551417544493615190820577176837510670060574114614240496693512941055422864049648005919263640726816904336396721687399103775544906123635532625536972583042421909796857852531882474508243371365489263007275236769210910458208968945462733133312746118846754042212043185959372536196724277934182603146604317824656293440238275177435039387688202110264498852313120778519622463619879142869829223918499056578392452218852473976234627425929877661655732696225662097072772584567071475824353272887115674805724910644694227171421802980722443480992105195831924010098252623974258324579941981718350594391781016571603405464994485714494958884208336174876241418048412770861539757871861494890340358168243140058834553532282878187645028073263650750931098772641053003562686497360188627124555994873109465979437764865869103433098570731523516468338606182541441965574508230117171033101045662948525997320183269966107245255811598237145040428658378797280409969805074874024678024685263044557136494093678560398562588360117175493439001339706427285057004450077851717837887635030101183795445956955979483190928684581427076410592388427706229797756942210885867528381196505552266717324901312060529662002350970699360708392114955522228586672020770787395249417837442885226816570151496718165102364641560320232734582773438779586973908433398196076994770772141618785569588634064294950632166967762243054714823972431672401847878432927497231772287330239029255752592199353556193849154097868285365035233529757452732100552691662099914554804679463780742331219569468129085353532323040059427725240473524550596505543420811086796365670321473959739534030751752928812052698694053569389693364975433611807073873526991532917751286174519482236000363295280764492194201422360449316864819863754529918428440575588257923615388345039628201378473484192694257258956720090151634438688557179385483392248600814969894298562065289105869155123647692330319626562430775263660697488753556535387870759293884492089326060648273737445829427154645487002306761843681210091084433864122525440887198054380952937346343048108379807142553429859538720472435179251439404205943261301404764889740116676472106858884364193385543870681105340632147095239637846546525879195955620145583925083829584781420116801181488104699963535405603885280942867924185857570577870862336618306681852893218961246754560547514033952364606115389979929001732812675182813531559609767364465887493877476586054079434421125082499931921350719159313287534271739903139977008824509328608905032179718564518803081220539606005105583419008293493272851792568455552517705885826471802944957270047390685537952758199004354492048532746751383849518878219962480059646310461386966165930779620676370002972008271383906285853847165416614500516804213964805922398557685561233089920111708967171966697960456067282370178059571052626327134338378797488888060205563118194621017846878119962106022433737890303118961053327381568849741764524894971688007021935465182339495532410326252868379730535589204389017001415571195514446896080559172749200241810796803972641198995547034003275835427802242959549870096898576615907875489323693517504373724512586763754515608002996566167328636044464382840611327540765416083944343823695805389557449096278050782176943798060199446967110961577756148953804542441873566316249724715954887785366715987790399009980532649951498806964032802006960660485596904862558412778920615116576024928261518801095683481677543338837559820761370323556584334187376170364239599601463031549218916291644950324624219686464493046210258077141490856008306526489511013280516299858452606276957134622575723390413552205292728257222805514791889622222819245805769813038243101405885632402025054023121615857792074018035096134353844323458874899262281008606709090807551653434500100885025713844653981690767316953592390636340460831257785606576222180968680995207035023817369323100532036942498597029816470219008546517750903110836769694922874246034029349948673287371107247373946178776154924485918026499497722363779500666501560400821238090669522834825987445938656411623643270727035749502133459203877772190185729140743207983308143918721214306019454103142967601130625170508111731048823485972341517501836488178685917795686239633927244747353874245684888531000830873968622899147477632732114189104706615290562773289348532765188288719954903795610604371023960227359086159097226110700508535814069146138277552419117496356311773529144948963368953130336256969096668063817901366673468140769908676001972913343407150043145032680429082264865541624836219928726427043786130371998290838046532665605304730230256633374956459090912833486407180604989341011073975032399724710044942714356298908860171633209444299903893635202363619211729841707909682180905726907045881074829251253054858336459148385361162403045924401555888989304638417830089467528318346116910993422482987843829827141989369797083566756874110922866791608706441654631452820035666834507544032744638862711809628449933465740261514166451171017827175091144441719161205119229554898490868237357166574927895860308172802569272922735136578531892217211998690169431684760055984678719887581131364562864490720598580132296101499729731808631394703390583744105988899098446297621361026972328433118431312637376728338316461682600984544876999946798127611316101740072983610766483418462524313341810930541386336537037429708037910930852299158613338628623082456574558216753085559602454885620327192707934151666015784176006829227881926766905829100587480967014598662528481199802187284769629255888876335574940724159065946775909486361646724639642441386787478366983991583362675868569578919145044354947257209920668317157519190147483209257215615197322365347904147557146551952173882239217824401445931229107958142502430243740623527388180716944440250894312405550085443488766718513824992082893751039627798560722606196905725305731705367394436379388748627408707571108009879848906824960110092592126211874037112764483496597986685086479924482685436456034072126935278753504842100031620260984349219199422846536262625151689188345848240973491011837360097936334530188371860650327776440521766196253453963281543001129819149156558605600358141381612484397008527059237523674375802082151748395586449974217517902402034358512231274926916900490390741020551766712115758643367419877116184489348325312559028561212239818626712821311141975384454033153789669100707215070419094723299543581226500445063047444990642509472708984204298021128468236336379474532257657369785274377474051208285760211331161208836699474533594075219607597285416794978522871147866221702027028561164646036358119364651586583057143793284246151352608751174363506860395475655766815240865992701459252388140761071965869312880112087300586988624103391189364037659335477569001526093121579776966380491638001469945937528060630027694341239624549727607307523153989391637874947902934927927977724066133125797731557423307440317348032358223961823026513828405288159953112601568967945173243253769429888072585296508443355092876415783061004399221231780972961479253806217827325592089230783876562746379330411144105587749796535119333626844954544280055596528987795396433646352188246869499305077100106693469965152697002481360948876490665648424871026348140044743614488675641143925529790522052961574488681479675684673429238973752423167937046663936508218197742773531219967052499443670050779165462245749345122319653988180289917531777169531332548532399156542869824155776783924443791600192406148006449638148313320304185301406744642151709695694630451443167981752574582541888210691386375443213429901222984551171930790278732777772455381832038431054574239424419738076690646694062216780093450773597580488956234668898179349370558388414000505787062766000154018665114896825200011188576970532805767366239883524708794421266732720946326768679087940846524077868086959833097063433006864387786656627786095923530086834429674589108577271982582735998199920394749491139858184629391833239074177876296918424767862642995149006757492539066825571626326163179097814858829659271464113384249500176007571346500429522680643476109006415679868288123979794777019677342611270627977086337058082394641224901780640584263776220690884635869202314245212646632691304211848977162411653178732289259555633924113688721694462336695599234571543649602823770674222939930920681669772726839501475418328524598150148907623135170874233547334726854331185129361324282308460452531952521598089487543277193623273794052053268081330546395387630755245541186814784607671073045479491783710313854309861931562257854255433148288724541526810406914502084463091341828243864783394595888311865168441738949883646201130662667227912558292648900770540647681563403206324620594508549656556249118501316068689993909054224197068679319872678916290871032429752620109657772266513195666542590147367197869476909454844297723397746818853131959408001559101834748941778894911489493936712982712700586014430330042100604356354526504410774302084038270608369191662636255939165836902129749468521776606673416666480781086817426740038538357240976083575619109182928542395601386846000227229634966494068537503146292777820694913373103287835542723033089512109695247981454183125427067041149087887236336477449180510037343168027848749419791419479805838344335659754207331599927793798955658047790140959403258406703900506303889172441296325057210397964724862379198559850764636973231391424087466491799748997755276787553365234401819140032469420638483457954245896252551164292683058099525011025654267270741477534998699436214995376200044907706848124827048090096429700760906792876261279327074561650227550893602188331036958407927416898947334348406407210206495396083488650610022013634115388663911258746170046107748797094741551425370409648933983062671571250139135303818862931048165363174306299595430670876728897219689511946513930343669011835761228391390102625167219008170513932980401569440816318501284374133699977618316889744534853003618063028976891230184550436140368167782502364409594813686713264235532525007772369441528720462712549949525966778134163872097964023704995018598077306942474410697365762487017342728875816758920815259886999050094333351094884425869009618637571544611215750708828565504698488781005167878383514732462122028739634383955946349454786500386429400423004733355111073065444615974473842303937531788722755683729552926052470272053419878600587968518601231489858012743411577829666669094791441149382310598865143885019117594166813734793596650400206152548260596104254498185757703770845493812563481076222181005797663972576947925352253825397836445868178404638757091044393754663611090392583735822045292061006719289337429195190798455820183958418051551078623788231777752345385610882082150212224959732353876965912125225522207470895035165611518281415907769698601748905789537734187262077513724521003321154161706158957123778024858724710204352811870761790495452475756508402773684586398882770829585369851377879504149367766591992660676709263489930323448087931002164785097560077824609331955640645746849312000429260980829515995306297724460743765846185041279515836842948268307050250535653256603237550488227642316559479772319932105458393850305595767181584679792764333415194471729867544322927145982315214640344762672412623271485081182573431431743507273308467794984925574495954976990922570535346790389955417221886371379370488228948836398143030528019114662645674684872965276231491365750278872434165335933278582517245140775466387844950042409641306089370247554849862270359080639828845322100527155625491857073449195023677098646055961508851411966792706709626916900696330720195679227889519776436187514163578276674719533996633302166438603428864900087697178375823246249899730610261895479733833574211754388506723541685797181034768332568226111746582385289598363960734401084516637867226373963115819047497013331842064556255939827759141781835056543469263722993402694886110598387975567464800921721261467847137030506951875601294066096324479624664847181207006754963480519876952172807173976527588550633891550241223204293824813111325256716545708888675806511872526151166874132476888982810722763081682906505793322162385524297185192031605483563004082724383888294222397696600048560378042575627379477701550581840754612788256621101824583661444917172257676161371343483395332773350912433441667629852794842695869506427818680504956872053901528122782904946012216718153466525033297232782417799205437375580971724147328242195565208547106477996491600465095548013519958247260860496536141498299056155376106233279934340756858403508749442855273583038390460556275282751724030537181610427576179531639510755997119466541113047554624573613837816183990399013795865102988079112595675735819706659806733985854221239093162934139985544770401471344223348252250048663224761622894706435581712561482013419129866700982491356735307475776741712967794746545513194239573529193385729314431656472668803965271997501114228969507319299497666094231688348969922417277521190505235916924909096638907588361297202259239407419969333073818567944791257035947122366939532720626303909386113627939389422783967366594060853062946192781774493320948851352453160093990081086493991459360576148196797432766866742646030641093066687822093270184124701939749742393893383225435252402028161200866527187744704884324482626727982315828523388975768263817598644911483484213454035772597576740111891048845419069574928860139754850643203972734851677569168253316508324367239822603625052419709743147130725241067765608963894450234268754236468797015009627234688518424788128133260359714195961331076531150934186908645858473941858850439198129667575939538991276686525175744009857182893817006075702286209649791320200010486198061934915834157542970989114864905032601274361283821547566367685973506277072488337262935875917472679985736357898483023269299645894558234605318384367313182576871723289747561313522851434882911555241287821483884334996190240616749886234845884389678891019660979065967109260206341712426830483690127761780540775039903384155943188986999424407670412028098610610000356829079962958513631702647479236731977258602567300897633970072675645089225411031823636751604412083587057613481674966388223908402724205506033034719605978427496340839224598838469518950195002003708905482523001720868417547068052841786695190165668933491364006597289058324218599357210731125029665208239615529725459040089756275800746970342633927309782067438590579327046366305597466299888725651213025225984251876336410109204527284225216473287072114706634969983110228294493086540033181091778485484221593094001400801772852894496941492658799382310346943815662359000997531444085216456738917190031672936533395204549920538101491199698042616320375379958841454105756974481463423067122831230892663227506007607988636209628434442917477730345807399907993442998760903821498734990789846899134362192532436162085895388091231221286422110609562237568853308899721019229811910256875984266849061905816322598014949045927002920833127398602442447910197296880783136764304456221524368322455569967717343694388557005228062254545611072552023683518351289135135070367590161046046286297449624134378521739103553133616950248007578256242764504427751829258173771247073821774176610592733077500534712630909303001451818000184832328527816894942363710626004074756787211461918284834978507386357797182672889857989059902354440233949135639941004814951863936644081690574368623464399265707404772755223983158469658428937119917879854087517860441916607128003203389968268116014657623256113735035669589061833555202107919566194715047696109365562304420483631573005212980811269024447184034937076415557295661954841158405238211268945690526745172386563645975263815034874841904916141653166993860486825575744294399895639360363884512854836986212090049044448583290934444830859082726272374487537168539565940119446605517668191009005822937635565833263656494032788847538917957429209675371140480653197517659895220950804086355666832169574724469981920344133864556471418500336465110740053650472573675176212181046874332705724872344733983892713523061732742701472004922060692015535544053666291465493671987209708533396778592938517805234394617422270650873072748656545209906840184428718691999557228257065441323085135806030901482422155772215019644151315132167897424905273833100286702308158347940647219866743662456355261617914737369892548500351597619029253991961783814377738585665209185102298445097589196377500139824734024345543914226657184358398941820418021387202695693300552244189321024864098298358137645198809210801701583946784953765431920700087420003339352040954955053677595701082255429218490968689039019874310634648440753487125004799908984760121305474220383307860141680121037249292056894657162647867470041110165958546114043834447741142443468564143925106014519357653922147172203302610300260483826907182729342919524412976909917647596962858025247551975015999797339122788315773733811345072571591126604280310705361802310087395816685167793502971838112292200323675442714512425478822220279245832518732204306609604523453569298735812301744169674191308650783668729290784148900715275216293263249785939086579215048357768014932527051925499232930949575807804750585607753643726784297463911436450014965054071016449979492518579374380812503365682566115651930309271045930114599934305330981951195609874765797980678193673046783776576623506200354645784608900613309345047906122106709563218979046929421040718778526614767357779143621709097915429406243289367120626800390595972772464067365182545441599979850072194266819291918532722462663626258744412056139915058057917678177352220464127868663067778723043359230220849224978671402782841068408317578371520808934872237735186356848098789588530165406476733618922238502495978613269324285198074181382981542886106213177214297275803694267603495585011932339243348273436561308675208696899409110649846999055491376810999921077959330342708977420301203514115198593007580176912560084316706919497737709890031653328446358087641679468551277060430484273289216405388709350282961983246561310533939222205020851547010008521702032410142634828846437116584916276523387461728305092877885790799573615024965031172808837079574231084560362158520254714506946140020684815478148051906256387493528529055256980569884534565025263039619990411039737860138708752277124444189830914836004030053504533863347162531161074619196188328356173142679272265203674963566710840149703682618159483741367072023801941049986362757904802649008587247473878031750488484238565544140051325812486412888051675851605815775005178302301822006738779138415714179236439048070691159632118640925371004264259296566813336188652426830360516305878717474750102594086443760395346500933814158065421637942324181562677114097949407882533168683387453965048877711349532539216350374280447373037712065145327833758281906323965729009175007617644153118958628944727225151149715080770909273302340537287606030972873166439111499957884597464830345284134788408643978280915295645972254399400263038708177729123698290656059510378324799060859572991566801228539623126101597926266416589486684781832910485290704345369635320994590608721839614031267129680938590504070682353885977486948408797415558454904379191864677869794886166914291728462668961786783553777173920560784273650140812813308161347402951219260531271305273599179052254569832398360671072653166376977624735732606811330875453813481653914242301513672481127100884813324776966372570579835930911178955812518871754241012745039297532049996613452859289605180014626981425015167758888730369930768584788024681059741719046336426908091556079508939931219759420872913301507973135848100965009889499005889172664733050014945427117476482498679707907974327830851242934445444078785342536949990294887350745342709601031873231158478517896251643418889312018392000603075780764200008887334259880520088601214809129572125155745377887761565923590621925830367935549267892895122741468833925748814803238572990990740084953632376706943286398943023254537197238843933982397919270633743148178384352154753599280267108566353503130115358942136903889795113079913891249471174479865169900091345428609404026134873946430156858274455824935610772001918183668933191283289566079323331682732903970986458598837258317553276739358462865115692443496762689544261814543983630869466156612924140267973768865782880717625551107084590496336406898100133801738801126793433112039141401725463354301319283432624542830155801574812860286085011366683770070557884458933493673362454623908446337204287758725917984601970389551962460510874375614150134637765638160210525588997963272940604570091395145322987584969612046622289803577030758814558956386087710444815935018238938620814558064167347286528758434375886758949509698211057749827304027068821893581349018847871551199989350124724059400892506945431442926214886534474857511442436573759439290799721806033855960920911702989327385068348554140784653113625435645160045523430167584681072032884484475201180506481720294591428343511061592184214179865152436126553458687570819862359152323572837268376754101251942833888922266809919193442285879980602783641673975073243101387853529801061777186664881071576683406180106021251888060754627698751481940060592200197048467987102059525897448744623941294356500536538136840470265636295137515781875364044801921212524813790569046789349038536559055574931548139180341075243645275964697531779185108685558049833055081458537836167287179703439574521207874598767736166402918346908105763844945234022104195730272334976157718970616712217325149432481333380627244124539996069498919188235573230678936246247547293659689390810402721335986638918912566916809122936678593049563864004555751044641025453016630063679654883042466055824995916556733813846086863193843082566225273264764269270387027704496002917752185490972326743422013486047295094689000722187679500201705421922875469944875825588799460666865709724866863994347975856374577639455765856174167384189311398991076932819455811536579884006606408976320495933232205092001757468046157666175011364260607933660112863132552252336130338572627897347140681124983741908518326549943894313958236820431106649741767888905216249178167928253441806229355658126992725402946005162109445647739672858006566594534976043051188089410066053579187779514949389633963884911077406630626812168035501089252681127212773714235124445207397278770800354776959721120358866776399030028919287109870225120890824338527477581842127884364990473031507367692838460484864436527646757363596698534325526997786817497789198900773730453127299951451240940770710166708759136675416419809502184866600592560888677211526090772228983691844185482404375479283833609837515445112046176935093177360850098218805438824147485318757653808331288000312042020348917371911533792047746774438138987970833910708827097642936095720740684202835189540953243533267654903234130552732672921123161734914544030370808144518917015384589305855484452344543924977919961268810576420406282795466138556570735930793342526612656449211728299839751886166429161586842092613112497581195683476987759711636830031128257804019963799053301907095629286649942862662751682344038769502489418393445706500367578365101823754099845829570269470249436757329629727567662005140993166152549107882581012185457165224028959416212267678473948359336518427435926934778614162103669423710190580168111346371921107482477881523244788465867021003823542457888152477545384105696056132288141378045784758745150993685965982619839345566198957219891661468945659553635267246533015358708214154567534410182354814304037167807457482199545966557761632069037264380243235551695811521624771612097167391914976919405698386269587904045754959318751750600000364626476253045215654563285465297880626845146323923170602047131709697693440872087096148474358916023865110738342425336494388289028225779796477307870507804130395853583855572480691392619996978446686686882757663352760470961369175756210470157014168590392579178801043444884003714684967602715259619167248800506025821266328545731928730427828009961636673775491862361241872256457132839712313537127318258585994775004605945518237598936343813360452373612188184912797912681748488853084993107357210181811629523948277147088755306784841910561915113077258339501423140397267849519834020405591792925078924932299342342425312912553464760461661441377437341001076156268461549479769891383217171662523042791897983336118971260435806629381571717151512009635531251604174884455755829086515102296750637715073624311245887107402611492916535508348378242729146562742254322283878859406007750188869235836847577298332725104205292311103538580925472643324554142261756773085793993624398595105107323395048532346740242867408948800271258052187716873010516985045758714812654238996798421511030554063895496024965415259229747006171457973807729005711880300637241575060477501909774103906408066229098565051305788216537210618444719713935230186111304788345053757610806397630402070243890515648198977299278983175661708111362122490102880041999367678641909676600069068561949980832889468945136101825608946530360507327604827554911465218397080667548685455410457054365288713470069050130536374127592717994176997439266223868256763462714362602135611797456277806330333085113486740215783649280196815364074216577013486087162605848523027473651119371020886446193994240234262044954808805562035159521295444280841159118939520650406713176205859006907785421768586110305721208152705302849733701758642742962605241796350696775396339098315207639185016080786529691296332409145412640441242420214504406035631643079682076738082286858910595472626930888635873118023563662891672413155280858058837639359363702709274102344051941043883289394030072816412714220805974194574922066361248797133891886039303142598936766854514605809380136376850612257431408021206529316481046140596848495176679852874773100015085708262585846291980785081564034766003400231396258564708978611579312899585402818751929858983308816477137692289564187846749445674641464352305618118879586423748953676241276988679861325519513088989697441913844028486220319583387687401144625488414331635772048231225931681112432257976072883342414727280963955469512175761378165541392570178012499229004656489924188788274476150308083440763592150386830258520625381563307220146283912942024510144112369962361784095805061409196575029220708284450393942597618850685129932359984610623723151937530882672150810555142637838174323761656237546060452319780262843542791291625789078461767021531930946209612537472345245669228358697107114501510405490203651001035620710251783497621678645289431235324088363425619017401815651625709874754077706349931947086989607191615510340548470451561938084537513740419354150422181376518130668711156556802584261949677676311121251964591991067428550320896077665547421489467714711581968050600166751073256341991607465813955670412082657421521296161595256483739675944170011262758239819609034328610944804370396392428100660192333705494526641013456837466187279457816644935629558490127634560697740378001267652471614893687168419329595179610309949450681797833148661817349533776552958031358802595945306493410208982563829730362634434560770742223051505383557966601122261305673316148783276795342764460236786519886865950957440718753771336042304127764912635210178471522372921084227430431818155963887080843489008049454652609516621884050462135166011198059812880886680954629540680998135427954708079083901371823679968293298042890040954702650785312881677647780327676392747633779904206904836901859737719510180731401090412089422461937974365025778556717439290877644414621245397892151024941077191754427312338956654696381559109234603499333141132875046584343810364648740542860611134517574852258183644270718455886841373150323965049704469509289954665240374782488636001008114414942483740085223755730330414857085168099321228344892856820988650248163356285392583313751748043885884033513179972744379083840165381199589088106494605379535751312648113726736217831898001447107825846821127770335633039910459493339959073807149908988345885571604704221781553504257604280117850992393380642548237520277336486444596921480485922514352279112154484593115976332614140500607941647325883430693180229067652019291455942774916608165648321847102904850371730619586160892045711536219261177033234233361124749448215055838433393673173130527994445432059197564090062125723569108022716785692368386390560594362834477134311882022899428690517708640728000652278834586888132816350557380893707728596537795453501090459494007013809739417542327927003020736962413426788093319884738675033440440250533901586536727484938417796370076567926138664536952220616003559373734236038590912154698416996974386548505291043931939364004756790852291098043338290176285399907075081107348679285366432920401873626772348043689377517227433050730224568656522887868844198013846243307203068268215245386755054066796541731573626085790073175689032207983504476185903319482796350291006286501483392410905969171770986722838371929713935828623629087469400316968535304009364988132035979721868425831072467020590152657987202835968182161775501888529187766095560798368999102971168855377435180027966469980530155989753841238083588850316311752865205363770964166024251022913586232694529014598424507429122292603863664138803742377888880442574761107526255808534277916837602388296647656827781008445308293946308490718333052730704992963322743837492747861184068619652325057977126741888305894376380859613995027335594665956509685293804268531765286949265425832535344450484896066997078094180559980257775764017459479630223344632026339631655603805519160114337495440513930892223409706143544685430959378112476090229857717766899564875778823710196564598375030967228518748988945044955071471595637177569480121565410182977059981223960564550604051263564897484486641760545355894298588602784618493195352073438489911306034524477611951951486641504104296240552575748737106981975127185984761523905223122485955952256425528192418868452715323543311424296921781086078498815748069753465183057086490413443425271402328507485925389874654843133278724170572310227883885425062047210273677627723833398417471052747707971605150352186761032011798474705060997038403731152360692317930502506892605673240111588537464331771854449159778323688200012642279407866462599012862020705423208749831965631464028698926977278906842108173929275040652312434622500735320129787000873433253743813684825160174568258026361227975217993005311476056478022819150671823008049429524268115950448906929143555982705764088706363781669748752873587392973895734355668493569599512389618324759372962924799946691857307591740431104842637880057676570674551569822379038986301111382615567174067439893347668498749733244766980519658213357771440374345502313487477444716838086042855167629470175360978721341013493319971746643085818241617763062690580843743184256778758230881506824435738753677643221620978886645494755844419743067545702964785191377367910296922347697452164013263477428196500899991758955332385183159964217429151553123628460482335950022638903345027083200169361689553766241424707724655329914075236611999127357461154066477811773665669343625986867750177332954609080883565659115581113624743027477692581419748476635592285987580627070396248385025568059499111302515080350835545845357181100859579438343424443957879692728538692479071371468335341121150413053464496304898324588376208830468641535462601531783088038301885877961166860826708479488755642861339968200997794246227140088949858024227761390800696461431837661009984060773908796889523842789620052319434778550773607268993571928361361655673739720778395492801384842075649744423026225212854529989986208683479248469336350831027112610750179592881366093191356713734941326050589026876754779613455797406031581281575901209948370537633308782356283946421282644890078560959620820711521467348468003607816452306263158462334113835767190417531288365583301901886168559586653509571731092041080845845437975013138682895954789864098993144780545292460008339027730496325805861640176596756073883596937210832957253411041301163906460283286055343492295531147404531497198005259036887263231358207791811114019488978408023219336604381102782896021982895053415550132824511225429746519259419016635054272077366060337409478046606657935045978925239377763137053217828063030553685426430488530261967809376056910193125590037430925645042879147610700998988103948582434409291206397135359624016232249145770748380431954094152719160770116355645255463766004381737891252945053399357707625603407452683277379270672143659607367468029043210033443167349048367651221899136643636205118369354374682493218864534814093879001985277026527887796567089447060993426372138000246531381670699276864670441813813320319160814767688878515291470826606500641680748346743385046649095611277913174595093139507305984439795190929175446079524692502056431227054570941660678987128636236271915693518988795894920292240337175493281910236782188647946340698136409960821263960155702838279316968292081886119162479874907047832408036209568927356208839462211827982443594786428544006703723701544052842951561194576491434770178163828237618606065280661565979968916234388480450439852702155385597107353317750702891337525965973851596843735597484154011315472950876929335146894738172464327412697998802771695372414538973808355821237826844859652354591276051940761830245459938671454953696062674399952819512337200328421692652459109645653593683221951253058823690295106374318544763184410705328179998427658937495574701784068109533548303847449742889232504688014947715653872496291868316485169653736360635664560016784133466936147658718315749660708313409478235086020208942471907085461397286417738728975881901402058943947030083783823816963769484696634379580422133741416049103040967189148429820575338805177465395283385383546508346125611136814041413198761473928165120283153706109409270496929735686731516539294973133072557256299887877612171745752697188266376289706611217202500861616719266957119616097819112254011964403512703958301711958815516640834467546427972602896984176869872030211268809644662383423470438017988437167680792125656738573101011751571996421317744552931585585345823248086144698268315925120737196507971165870906049256682029539399821995688040949875521295106561901457911553048660889665753042611967882624769987807704289355464950679549557826148798117987276148118716145083221523027354122991783691610599681090903437395748511426042436885787030230600536988563786588205986607500054589718564745210716480638899196429644290203195270835455937326700557203395738548431971609357941841558187485063203302172602092382895889623823906644144023532276972448318767932281471512054166329833624754656198580244944550277520807055212804525215697192640604171716590867849073599264230926659935738889311474795025254999979278697306372120750109530000267999131433165031890727969484742072854213334094403173726362397097100351132373320683242426484300406093705799532001765849500942308517939259288885182865226170338782159651134213091203954893447800629616106708284561445648383365890468012460531886547012656087486355399359077975072413418899076046132971912663766943992882418830862753578847387788619829242702711917256363289785412148184110808658392100227526482789068822315249150216449257802417453569543177552081957964348581351587956866035662392878657597385657670819523630580024415868241706359775150583006617286590329486309828861954468572432410710621234142841613362839463316205702372089307160924144223647568241759554260567519919242371956697290775013567303552206290803538124623306305758957774077526330648686858589102819749777159967534524049959491221863379929074405942696304241902614178755084022524014551837543080240909654235331153475702230188690686942082451364568816640960206567976337534736519650424254421042334782364758541980227073310432275492699993421781920944066890290218337239062590040043964013189089626088308376951571484703495411442786783460617288308619827279550098610795181677022707290698572984834496965855532370020189760212511185203226070890423450399786926779605537133713429134013204300903979010509312773633226322936697540202120244067824500753538450741447660760856631409038859922168101200040672382650919856156392012841525121926142929582874599585141701376528166730349366878651193804550755920041244754657470889705367371211895485977790709890580551368725140000524375048238103725006001925970132551101958790071823184211831251757927614293887269849977878767519693869246533027670965282558719778949040464476127841588001245870044829834947804308999981561126183503672807014824828139532166964252574909572126113116682781267516304265079418414538793711910728081156803089180101961120247538523020135593058121748264300587518824097310921905889163547913160852239210050223495601348178550291044550701912112552392395639184946837032949815414123999265730625125135142630237655019534099016905854714811751343106181688399488138930439230607187911477340044899722506954770984106122296097708990283123712692822963558951975780775916001023695207653459008317053433264682436778869385294401496436279465037963706775900489933055541480711410853954945006469206102361856332230205404250316007206534559912345435084855569438220046306937564560601267612830060606829144606834513085382927967627476848008192183682068928117660193488189427471418526539628740159433493015810351291745376105329681595429127715642077197423877593903290231580653138322925618121969570196615764651896084633763059179970576386347488849758676773225073731929045880280869369325426138164059827196442761115412890189649191066887037591407596357371021907520620006157541445373277911158150391728554157932099966148057950537490876399644577096420804867879196657263313972188273943185917897143986513808380309830275384876551509678415686281944904862873483284429461077227378326919523372919401085517670081633072867732235067937735341858711205681023207339673190462527439463962997953581105782656233735985728432396704515482539371610428845470935465670336241459954336412180757606014517895693132104887416893695624864178864319380355052099514468697123213136982028028766297675770803088344933074705585035337085514078100930547777273284058446826393737247602569650624460178467359280404051633260536134098784917787765554854569293468812581009426571815210710878383290843416540217446173053985652517268800908229893532126028774197590562980586182172994395938196989818671751607411944464578313469431333581868064934090953232752472761719669173372588108548134648329095922886012016431124824946535416543548628310373223843578925470041312327368120859372845897984339656118805611963905721859794305426254156293703787335635164664266654455465537244930798062082318474278437067676737056753918820714436156925210183411449530964346172598405619910891733079845948484980730959976075244108133130446434541351752692570405985252349966955981618850442715857581809368469853810725294867902724213639245878655305464065616044244968005469109895226493430285777365604405832430560376246489468991428449758831666000398977364400780712631747657936699015768184402217336838155750273681553349250245574042778938562274740687596467278819878438562755438380219720980640859656916711124810396804072509435654214053500647715036762455366598596082798150611924368674459105319573427642603144178113891094343286367944256414174315035546960990377336093154341509543441042405617381505661444452098514149434602744535110322201344643480254355650076319167370280557251927420670516673273338122604211555551019517561889773555936395099271715358520155569692263863374002838566654487640748282776324533680766385931281606845154173928535552854931431800890564819105621930360624370060806412081645029088773722656698869422903570166685961412625004382756945855262117318735675203292934610104652326287436889081955864416606182166592477914273235190967972593318228995832886845730941379507267643151684676246701989214674293871745672730579651288725465992810770224322305801137930874562242960667626147188458877538936730060272412205564889715925696609505862021363074606164058748283131838477897394011122602673317415227095147814527104988942690325563204294904334423238576754445011989140888184606933200560321722923961500133192531628803412322647617081010591759877301148368193354483366866378592554643470717092117665752572906829055342431362011813734503812486038589625145517146926714069317307985229348562749163339516880698456721915156197009496046697014568761213627582059389330486151026322310141204878026217535211748450074673067430692678433075143014658066616883445035520131848709650525111499662485522577584295508767619494661161799379231171883658938391275007621981307401824685914650989730779179314474659721660930797222727947947884691946496793324355873098440763269483103917338686861585397298916400548440668041850680420558140165146099530992364335257108754756972483170041408329176833334748140459002395389573527346559660917618007233858200826399967956846975540028614267200687522119955019112813970114602273958993689170042097182239051150754092941379188841841216083772789778321725458251243919381323260651627304277728147896213153543251070185444798672057795311244884906495813293204181010164272808070655536760387597470237843147081651709915228546432975135894914427981907286810259656059037210312404871835272464457931994469908964684172129435593931471422306339286562107930026627046201692447204569936903247490929052557772780073629906411813040131260523619368132049972989341332722405280921830313753093007636328256069342205992795363284620741384947407233781869219127478146609629764706787637313302856647196860050129759545313062024313857321528221343867066129940872545075808446342990171157517320873920958203434776708281884607331890625170678132768645804160050621144965405356571382541579503390398301255249919121084895237375359433414724614249964574009181392027059830796524489406200883649714717675092168251652566496710913681795303580321567694777929138997673673262872493243985881356507917240566144155166516059843424663616653987501755998406487035848354362392435156588155784660427969550437291533245239462534752798100017089123779520508389625227630274755698003752403007931513652093084326115998312564077509872173888938567064304115457514100875428533126582644874287433983376645792101403979491375022792069635961545746007487325803262802253085499586097818183055003485691590319729732401865984441936760127776560803524602456433536845747438001630960600730534206758630948033499809109613229326183329682957741136853065175210999592951946312188756248321684626177602498043523227336752900476804023880014130918792386813995048472858157859489347244615540724756037672832658383943177539571100299944487414831355884719990624488530847965761353515175299631858431103024469771089777321264198144737560636861880246054917628241395853229479928638443416958124548458953937924154300804442850657653578623052263785197775540726421334184196647400747770583376829617396663295015484329232179950445762087627405181261915597290184513012972296235444404043135149625009765249229424820570893026093122673661742690211670433472109609657758658322634457117120702426719238985843632122246342151257050011310249627132867833222421127309394071133099114772578328961217114488956927695607168240437435653084917380602251018747718611868827620777920708995241741462471569954081200933949548518677788315622841626453835217055023404144167981930045683636151084279804140161305960041750345222035486580540793216244222468784983781993444083030855831151652818705894691409109191353323067244824965546271944673031797499547674579725274952705179647113760429828218454869941399130581265845572409821478268722370717850238680320485831672778193766833379065329962212772951866075488134840823814134297832783483018480807302673235466439736026680999306593934684320429294093306328611355401879280002833786181271439706395458867034215993370681485884386544143501100802767601958227670448830110836692175627169593732568589923194986591977530179568528923887469704962353781999827919775884725573688535850011229060048372642546593488275747594031042461700337399591618700209238903555674970401064738311900044381144862023282259596754713807020021402003487745739034989821757058956953600406583741383840119694723062865697378958535565936138497853607230148997304917752575538431210801070629334933995571112487893117445053465900413392427372137461564047578736283283001344627105461238015938386667797975532543321950861483136830354879615510556193426201343089513017270800067410528708497487989399163279379051850454851663028446919808174804699693810322048726064425778359445158956448020791668478857443415791874301166798697232755788662739598558277230254436813697346725404751916495071689021716617494968013096360219575819022452003039700087925226955834852331581128047221577931650793077743018767478811876371979627335591660457111407175548428554387171934422654244788756241446491403562554998975566267615920157979743176826883830469604578547662141024088437914904687885109453922308760799290244764993893091597477543674738655467538545660625172296455883711883098990508445581421802093602032068755060333616175482245849583406798275589580495629416183807700043532879960972704106652448477069135079243206084123346116031242444204877655395811650355908523566800518265153024573134632431364186822955213535490764507848921721589636064035769690885473199055042688617101115148319318632284690039984485955869910558268377845907336654704347972778894593951942853740670222482013631762341918666726002875116295029120216483295374857002749748515891204109804692000416147997931103438036131100325244881394191615812231191737905302663627066601600665041629690287577463712836364434503649681530594399476241649693831191273472689402753516204865449309986193506391492846299476345321357311838454887555469592265311572762580230679934519702830701563103421199209084722286530466351428605875911371893204097448593115730547878265378499173669251625385282733099148989169259790930351988713288712213425951763268862887609435283758280617944548144626343955889836817788203659157059690624371280887244688514628015022333039133192639243248192046033953812963870273353614718587082062371868458220995778704126963729578054435027622068869356255171755899363250514168512257507514061961446456687488549744623104664135808544509173052551310433306931757094318362221375967607084406786070983849607667393899008686617358995149207674856020981417303152381266863546735047541354551193838106003035054505247865728193734375805415777262587365993788049767932029593847956235209041309704715082311267529184370598530005601982119519996221341707888331906012317958392163815594635735740042678087305155413947047912915793070868919835598414725908327222296032686565291810283608582098257968169018101419522920272228264600301242822565842165002598055627271978064829889128021881506057779682551337933779263874133095841056353793621180577167161997701171504346100117517259154049357289676945212371575366832889302651558085388852795256674703248953075665488105582529937487808561561214010493683908731046522290325424985712974435930282967093435421543259861113225522227805638436881275495652631244510691905594837081212357318908543751928589337537231589176421016229115569477789566646246914765509567917213335067078154574118436645231769586977074879863223043850696854975353318241417703807886017885843861511710453626336869075456052372528793096439706904860450284785429943974922540683264451312799845992693868543025025874813562941483147106720927427374486477162981152344458245461422990443875611570555811371491010779061747743882355689263734958646188599527908709272720986135307069421908987763535199974658882609615271623135805748397949596321722241374554045537154624148461802841202198172549754150537689391149097807078220019120978687074899192381106909166769156041317401943900267611771345753005725188829473394163769526401473400377621679867473717096349867453493612688482395076348675170750746364448156360466910536820596408736982797386385500980112338800799721015322547942788382599195591962038070372720166993410579615923570390505773393342006088549685938225452530959590488233127844132407959776564491375277348283744031861186324446045225131677902849646061813076637506263054978210696150564511267309174909520918309711759974477998462258673655518609565698098202148726074364863450054114930547567891269422793104504961386252837902094917027760048626285596384236575901615848232516955700937812758867602492552848605106187868869183128047631936203046703341070989679976631098213152491167974809918436639365807578871418188191733424754491835185637601075904075457021781316412477434931220712713208111670027030135434259101914628030074010108931603731464870613549239106475889566108555034578956227193374315869200465377398597910459130459629182673910750406989567225599064171935942701889417391024466203078834269314217171985800354261280309468479287798243318264047134091238195540995966363144788916482254405198648637170674299901931809745681714389328534639367622477295136779942142110405695235583488200311756698108601127042555923359586609038607672724845842061944542676197856353696198784270107736127439968892132103562200824706679361663127637296832727473330282265013178439232941489680724519011303707899773558565675768311206923255955310462385348757314475488113111431984873701189421883359129966151773958508747464727688669504455537588473786854295711011653702358267815119963550148697166921258369990891965767841126990491079550981723333705548874232909698911496859321436389919464779181778147788298833025442465547893692680395069376914085656678224887848278208415630841451064667622082038414159389433217675053404854145714686969200572411032690976195539478342059545019330073654293111334349203667988370541429094417270053119819976388905541792938943736852394070111074379841090902377490521768316617021184316452701511616671713907902689294742510278199312589352211611460754422990285718157712914433005283705736937327180004686997955239052294588597534795687878428978408778206891723831626066494486691096164758776318537392647275633696981996912751931749089965410425943527496048173786787253488431911781618769699868452659523080467854095793005040339276976572930574943375402736897592100389096198987811132570136711431952269355805478694942240216015347419004503470646342213808911589556915178906036592285280105575056144678622306031924923778989904176400093064924045730670304773793733228580360444434901555896656316259097037246832330437976771018960424620906491186919013671311315059850149902659664404113500219327057073510338578934183073552933008645891799837121978684529287638438200306279511188170772212954441165593761689119748163537833738422894293653955912737300265897349527835914994501417858924397457917547466860415738641821683940592389771742102289497063880349927014014899138648528034321034889135551186245835912791563093112429073974023437831236525171819462131146925744780714944147508295652941547843584759552280632395757018413842231810595239096990191292344042747571483087439632703449152283300606407853149542718358171350318586944302309977763880002924540360888163945087968445835716469787677396394035411232266721482551135893705348469351881333931852981381787061686273005747528902642681446243830827249321535314593685327742030932617072546085555164984153525286153473872101162065064735836597381651753158758808676232027156066676072075933769790635054233060677026685374574752859061919089391285783168819046376141802300651684098395009915400903646417462785548105438093844708489356295627872998396071497244647766976154863161134951906947035081212475051412169186587303853484678507497384981408357318578871936807677376054703747988375255663216892996731882100952781589397925496096580575248575783672679837142817377958043540461017990171425371666256439744468159856720065211202988700875376970219528606166693931750175445743932459182198111686460451589907280534462306651066445579483254516148806144033916791624761051951997268146372135403449816212427653139290513954218584079027490621598037371217753699022517025224212372449354233447240926930508416369883607866134978304159911201302567647856241609713431119214628469065113547203733856312709571657299676735213578221324854721666869078294306777983340634286283775827533922231004774331162411105412719904584732837354786787039566409480095225921338653849136420007313020727758969059247787866264232543601739704437547706870433015281413936845501578863146821669141746975686461950335846735083125670775420416998639014169256449386669840582904952953367182300512627966126593055699076519527523626978948081399590284092988990571731293903616517770355761230579947409448724247277349026763507018108676943735431779348246420289559384908302646252978283795834643100686409490151516855815249980136615677583353289197521262936449259907814864646784399567873397662872923834962874933490002284259391193764536602072978636255657977239198208167141175017039851214675399915451538589956708327784400155428781735325391058358735676876454896134064483380904577940441566737698597833636003549010824836254067444930213243562522889734415031368215261844735400803646438848448627534406742654301453357780853560031341930761247998612460509424430710225952962041911608209476592521668498111369555121767378497526854097374300306052915494499037801487879034283966148286712075981653329138863362432164149202115562367396516911923499321364648213851035580259542281664748023279216557480290991943497459173587854613603401654708551494644727404964373910948264361223873625445602626130912855240854934803253469315957712238545044890606832360071214097731176413056638412935048920284853045381628314389762237473772634463679865597652521984813585332757060277792042426005537236784533914547222652243121261912646850057249461959753365052400503105402468010204709199658674538148444007035086597828891662439921500613659692067312549287615832885976743945517837177196551625459916143613093144699885647334054332570934600184355255071036878713342534588547048444421846601227000231519235029686999185696928967142375588693173742800106719723689472043337282489894388880445483628565793011064774885955028220109071972272679376007282662165265479900635647574519373920401650289292511058974176680944927310301908182722268791327366510053797267974697310646920831313415183014877522834404509638134016192035293739122653163721304267128027990157034520911879145010479737407716927641562039511148932252275296786928676010841184605132069033280842360868138256132281395816983563912018678226594790816888161839079166418526312783398738141670448318033023371509449282801282819977528524137806228062207386607942098080149070084983096587520640636139466413055526049223326692861294374436966920083335393960496917137151728426246692166269629036963823193485775805583984691847704095582765266438657535805269462235962958971457523100601777265171431012914916143305673351408739010302995794459075118306378362861574858298382118403367521286504701496440466293904304909253458266306707374964426840811095307152616384287242223948268890098896353373700399695301376408152388006072063187294160041524742194031062831569077773545915753836044809674644867930768995227595605267160735216905432295781156744430693711422043882074023708913510513040790633592319599993048066943571336122817540784986016557730579227054789960180950434368621226318717283200400072590837592316820086013892915268372116283150645752189639167451069074760702294975419004180210689428507765758257287630945943359531651744656560551867295926325835172890551304367809033955041283178697841607366664355908017085844486405772267794964023539129986221728483438199242521297761940204351742126132080043263862611200662042614226521959088434254249641379278413990426690579258029396411033219160428091168988681653839650407118290529980724054244815689696848613994559053981411678331664839317907230981518548574022675705681682347831573851353895114916086954279969254593603573728724148624860984334855743791535593765016269885418773881214581362546693655522010659692965617344829106440127262214978048986322006683339108935176919917068625343994015615639002396449014377358024074189139790412872656131780559628586884785143890045813890807624433298951143086170286687061152981742668440732161348265372927295121026518233542979490818608289497762655299438254593314767393395433789733651506457435817299915004526449508447864052430134290098033574405428270327387305174578137570272640236303023254361285329455079947712315245000439887167075447010878773105230042779397335462584804194937163096894858363128930764992430648996836269846413581315585318742647300229311513846593728099381993435390362715938836608566628317197629891582928506109367612349035306776998678751437151014293994236646269475738438772610754275904912132878817526752125402261398918350069385977585668826601960000376807282790271917989950721092514013837161281334598551494611743128221671975877570688890666534221707732015204461659700339773502698552918403094163898670094948285029950309363478908119329015798910019183165600391209425595136043704913076491429608331614370148411553074872935781755128032267641329552489536865593173092686192160219797818964044456500892589777118407425356506574205001004003087957489799749125962719033259196097784714041486814125598420427459778274916976008611035639156068475256969732313518600695106047141330439167956526528750283423692700657593212857467481664390224768057556461447089685279026802228457075030584129821120305382156704760322291243855796428842952831907290976431558751152668135548915712383811470190908520504531490169161683897820858609862797038114232065776494756592547940864449183802868261216665363938797174145473122182950178987661949845561550054409246824425231237327237061504948719869526476299562471492656472047870161863624221687650275250470250726275025928002834626104948325979140747688353297582459519181466821467070768587644324363912935312566357583901764504115289670766513486326498007790934722723569975192429717992233896360972313210979992309756075969894280770928799335809867721899396568968691041942334673076072022961392750991101947713788223387404650648910228070142997563090293472583556400193009440501293403507339494106632209093388338621061231350758792379604228935021593259009150797182755364128791484734084262986081519772212472301973170453656648671702899773872240304711573617837397959140818881151858914249158276220167555300900421239232622169666487412291455577838890150958878834062683214864452412426540501421377311042204428621252435315748502292511244871105857044980375745975670024299415068949889377549426723867898781932448472131903102142422860633008285697852037107146028735272276120071010155839538916987076190868346152850483210790884987396406050441192390982504829428440428525799638162118904252730311615315480734789029737771303461624436326141430951428762775800514785356179904216907997272071639867973115084339059041362175248619293482226669107465306540744383934574621771305003751993647122917854344940973381751453585882398855483650728386018262125370781459429748839434910401825181786498496900433965131783937865297294808573791974018090177360742388723708516296586710633235898335167312165374999390284019178057054775153436241044942674498420130871451796808824935708626074648552056795535816336779211715659810301123884194780677584549150522308394118425729585309012085418900782350023504198766367611666221038696842410226971672807557531207592009934581118405690472825305220098409228229475615875713428818758156746084267620418071309017161375640442699685703104559425954024191160172779268115467927473649447777922662741861681499164401056207229309539698525888192577203916888653475640316992573119191181666790004055955758509653581247775559677712573411292857564724273430411062235331349604950007594173285512982972096993280535151879196190109728589896579102106180520331983284748586588720027604776989594733363527736114072562080972186620689007061720929874821799379846997747162391926091469351691735400937386021072407767703606274123048590475341177780886046196267020951216971516913271443147586749691474276995833640759379457139707594108221602002308337949861173615232857179345300544599501328667690419659124830670468873039127031292147664523267701396312222873406131358757576063132689689628966599363841552914810663809071696571519807679767940282889692853066517558749668452117254136691795527327557312236050254094218150432945636130136723946554780444945861594401498817520966426160350077272113017641970713430860528344216090472636301016585298611577372552114494666630509759644593626532708683687009914939984608344799946872558346951062457643814395568072885733744481091705336924537680510851226140133763014036628909347795311117195512721383282266390031137760095369815902923559862116783934109277223882995404797757784828536481143244668192325383098347064013372900619211324938110591924209785698727753649503941671084918308592024424736783000454347555476825611865976275454147654929763035264547466628013562042637038266622639078491830713575068626477166153482162903280487950624922337831208417748371192376823884312581410825104566490237790452644243422557278804463561449549788549674568795632663167785910794916975518913942761616335768407452732599789019271939854661547985428717139965759794884331809531685138589844241588516607646667445616720635263200509162793745037532543160840915043494802032790324544324335852394368429349761502715288839381399399275826436171591232183174411359380117138934833070423090436312843238417744077689706378474758047610399213894673055617090557014919975518670669928300606911609824197843852733521027163896838414696422050013409242148828479809622623344290587518992624679366488908805467084245357708325292385373139230766747781367361729107471539226975271797581103986153254403535429777389945566914913700185891642390679860860343885132199600648424088593347060869916680787062547560159400493685278752910518183599313652819771952520715630963138665197812673173780365102380351791605638154699714268132435155535489662194540432426201543581664230299820603456338577200215778909963408142318770860173021120436280470746190304810550258386813827845681448592206526409072685786787059294232486880813900903248950818332111572047774604413216516334588673237133536129732084119037669693402756464660188688113569116095841108413610358465675157448804627611023217486456406521915995710351527106882141634205674118951683442094987949189398097149101011445971771093403797741117718275771573638850883897561142356422953109393526099615864484451651504548463961978222331788160652152901628010503230319760045715255970826011060353879688479396672995805830251568775003109293034207483105226365839434741031049291015969704643558856356208115222414178503271079364063453493785963128976244494385308184979342467791427482786266921426158935786702484084247630909411594137320678753323962198874356100390405085803046585820001418959661182298654049622273865282855606646339520525323036916570788556787275369960026101419496144786239080186805477180862548958177038109758406722099988298525426694998253098179864125965772672082201915644639429118200551909694821548878113802025677765793032435614104338198639380219999849963288829024491354084718973801148669593105710439255461870865367955280365928823176404548110219127395467275522038537877997510662614425925355881008007372335136287322173319110899867792008896025304869614302743760290397764554172925740653143959589863039682745123605895381891680079162207595578836924760907928879734070433398938873879642547862966192120257146201359349098057465460010397119028224590070943592859444932538444418262715910127920838529402439044429009604246222573355931328385752198112021864072506404144810215450333703980849879211265947207875333923412799107114052015573559201758065775112225779475989008437992287977481240325480528015167918262007320007718372122996894457938544935229622733835612799256152788598331970375755165406964324435081889587250192528847521094373649629540017866755376257593848488054642871434491898727756600412927521248220972931617493179916613945199391162278599316597675041744911824362106417721052731994886401118822613699020371782803159527771826917746197325511278990423991616233930976124563388329915310750357422417837281602723539531646392328317122301532807151658130941900538811729267318480011052162536442150355644614800182967026280393232789588751015827850229958541529929964478788309870407868676292871060179222094508436338323900901077078092574603381869961831347755818796126805394434228220850957186014633580818306128584130387148549713789581411779353748734958346380759828705967679468493177907053383865304316042058219728201629234923765230102548134387764077339209727492573195235064402858606383107741956108374786841209603085014105080268378340576222148472136363567089627269372129129244670720967095823010945812045177232852484776192897070970899161202727754933693166800845501654379934725807734145205862069330317029110868241706961095342839487128073762066046175967281920810907254010099457848592311935311987707581681260645708840182682849025494409295558211750211583506295034285068495574401715708625021966872395073642219468572287180867304112124215053484784857787983810205519257988827755557853584955200530470793805822385028397620036665288471553221275096529998425291088272480573840350102635233594333966520389993246043411069039136651239662728480728870688609841490027151897589573258174976988355924967960591510773198459288108483310856640260803119299455674814926697925958668561106189933776406480679629657069657218350170843005153093232241872919030517561763593895088601561874683441824668256043072699491540050409152071010689117663587994079520645393256509634669947423655847747895779343956937131196530117766221710416214617053557872507893572450397932959371782400787574891622527951337817338127022613219115988610256741775256580605521455008372043884306259954930408610880092508374907781861965661720969128414078353417605274350265776623821524788301396688295930334473359131658262208186850299856331732643621519256714602458352786952598601828552390613766829370390079594281360905875797623385851385635607685808975405182452343188919979789093688402998187146705598606094905145729300165782861461181878475773286997614692647296352253562888204947699215603127189128865049505249746991064281019722479006762068658949088033155335918183978666071887559753581732196938551354025660269552157429613074736263249273666925879850170472998088480926277775677153431634925891784334261357965751781468852380433292282343683699470463379843648462701000543168874966447992678706502365455380460219716379225286424124150073341261027603490976717612839041329093396565608822723202419077438446614547372586836912537990826398207634589125102820525581640926643058205683333817384791627526241950685456150509161456064055482116832156187682205821394052381464737935585269189407454851858452001258422084404987624524713624966098931975256643447153696137041409859955227740707482458349984577435017255587231630319654989973440337914213500401425327666108438380709471524072139588272650840117307145918645494680828213666887269428138734313787330195403423720917453737912790212703170999606540747114042593965107125303130348203055892228936705089951863276310991974214385521093205604169240818500570226305843174642563275386219642626255197316600705790936643318114738407867469139674960756290498067851013967711588949482043976085612502989719398973829979653874711587840351129659093769804297538243913013087732098528307373057195566129163650021983181765149626881569232431625755730927368182519712810230209281530307435565456823348228469085026704614575936027949504091142401819199917579018914618658542857746405992153109248240167978910994994684351215516882105724076812158633251705009730489443502457829813206313168986319015778637467808047465560941684636588423517246039590549072115139728171327735406820020952484670685052997874500148683210340653140297623402828836511771595298551835567431954431187357698405315342598954598043117482552188448252080526473391000374330310242722467817565416834238739184566854925112857431413284255836181694182834592514159390182361449928510552616547724137283084809129544115337398213932184330826952582537597712266639502017664952698729151689919172965286939315577877440616703991111331445217274006906486600900673277581403110639271148054050802868677993282406636921416286804032802575248019745242718726058794231614335213068535265402653592371615611164364808915178954440516886553823482494009715519342444671758259539758328725978856093808757543550093038004694633624347196674244024354294844873249792496377166876287636548249748147860321519556872170946000574088623586076968203544361947648929241480320488063288170342962207575084909876375902094272724162272644612252076556659736830042257913720897933184730149685104879994320158538385094437894863713526617729496537095524895216183802073288102188985471005097996961246712925954951226488387135437184551209855939551667839877599076903982512004306846629308418344344366626368825982887044991961045955252175316677136325209268550332578673818045131607955884710354407468161447116317533625325071223350403236831857338781523981588133079074731330612065109019130996890696763897842346477486150198084871866938989842547772876588187521144493612534267629848555661933125834753598692521084843903029342814084297124689204797493916043714238957285114799251302181605177963427503826119574673681241574449760369432653780003582952164157050516866057590639482516709774158385323900188540975084587768821474078026746372196470769482308874497352457044228394339759771144474418686496427537192298813052801365828578992875855276656124198921027613955630628874685061009356422199379595021345710285132993978170148746317105077071688395639897377548888636295283572684683723467190780442735340284253455869571910639643567042570561564539032607835291836790640512237055736840949157963118226160634558864448221303593658714850184029483694835387444291087069600461724000384231636869283089839804111624295591465537986780859401885277509885123399089418919695563158812542170509262375745274035378004363356478485752308121790427352163475798839148947264358556536053166060879319209781208453114918798221053478347985329076704840196508518791682897459126117624028188820973811105587773095290607043615921894642570811169814124831065261237213453102959138396153047563261606843231610027798732728278200956236116087212622942022511099475892913909178444960712812699589828104660359207073817265050574973176154141972150827749093278150806549801763544299335671041003488832201628579376518796166425865349994615480699885897090850208369308500993406530271022664680993900797407421781831929633433433055100103623097698292689658528072281945449669914179922901200091990390651813855123121474159081473008147354912886736396905057483423861118008317786070945537668617689548407785023120457805487217259568453811533737660530748225058415508445894055036800193344641283449310999829745262294477204721582626379642287848132085551123632525645363186975730126021567603242343448195688137163515321991428535276983617178994327953386523841215492522560311782308075790956023469842027743511229031434744578753219310713951895476432384121613272751481327914935914035541668587049830143282024799377515817812238027366019565559635503976271658155841308328467819512077812472888927741505478412405461049512330079703867379417867645052975689343769427276920751001309564239027502632199474458132252287437482403488234204311239095798780816738173540869782772222357129283524270439719239903725278322517922725980509199415978629769325641385262659364090027683333004606216093577235511261922638787911474820759855220726487896320708338591639490757175792649751744822620157814423275203012971531841155611748843636476363800855700956238478763087342690819928255890043510145045117196546718257198509186304074180926899619296747078086885437307773864688514241282183463303012040883396682335060973797152180168511657692062322515980832089103457643195737795407823360413548655258345992546178242904540413332370348364496188406265913627171548399692968326608133006320239827376907054029632726622582393087554397094154258749464563038741194853413542437297001089008832175320307705470267543544272602826233172963479313943807934279132992889160861942058464967676866479807460833949886176853104557242724868782978777771718599064223708370131421433275016907446784822538636186041371807667899346611509001148246760971345235543658842945454953584648353605909764123730660637690857863136723953900245472886716375214861986881915116059757532797727379007759799810333670328812534780812448994765553316828465559311367900939486012343882600622148115468904414938447738697451645291637515568589413032521882928135338531977303135635638065738740289423424854753670826273766429810937857531216300319976677055888193807977037332146710200037870283793948494067783158949704116176616795485700589053719709773282980135722036219278810382275632813168239727934383818854641563269793284477209351441546271860372272685173169496852038998426663817441938962971516591950971890468710064702455286178835586050373433571233162146553772410119120744275638302732160235039527649702157600710957230272729837609460997062040290243928185046457662430441148234373669023037829732369695528151149166591461155078207761540999417446061642713511640947648460540375306756223078298653590222631236422912486641782047877416824793192262415056746413809431106169964659619964141132740648819056284101167110010826203461495650476745602916827903076884689991613467318941941861302433230217016204046897724829521260251867392659875332956716100037453803156450002422338580618011664959306186924644127984156770064117396393958768048749180413160435941967970891044709449851574220695883862513852660525173730204964679009565863661426323181807464324173617589708799585959235109410865171612342769371748655182508303641053707027810768298512050511092885084928257970633991856654477111772703374970803435037931970811620642354412134092997205773028772283958244907258497404443450476022272928246727652003940709967593544500855577719062659438366420800967415282989518154546830282626448404413968563805410919815749832579959087165550032668584477563829956989513710006685439437909899156613031657339063751600722395870310667556745730292425221842968410352526151765820218809035792807427884672324161567489966993680270378814385019549549577450204371761351237199783279064591261334694141872089543483627649914664940969095622957934733244460186607426234448970819203053240711834858077493144616173142475247588279846538479795248156942668076184949350352423936707935621388551622153217525758587531528947960355320043348606677169562013612168064750626206345200920331362429180994283029732228633731575216880326606646518000065875908382741916254642625307723153096927220099990002726650902278053884851937823339496736676322976600625341924337063831613902701246280390975847802989617664547594925346131997793704673916258686490043252779168586338782033596003030430335464596706690438107294614484237740507159730426785245059211391104972223480896116753114527225142906346344837470886621500971928086409883400404674110901408670617901167758931549245190783345345564027654189926280764613110441094459217993272415140559576048751434951672896298073456522926777223862475103228753480439443036242057226464236521649107112667431137186130489078526943026893799243323412363550997618401218765078422185559547032984819327765741935107033186888193254238782453110011212102178613883966525577732990277794741357594481410441210537016586910003976649624024423563637317482620976862029410572811661655210717161059902820620464522058846762819843509444913815248548020035962034327279625714532905179481536599006182312453501683957440482392335478022029948614277638097023213582967507340982913912813224491967816821339664670644790304487836417943719777875240976687511155258493092478533427068575659009391124702110477184555574154803772878560717629074817095103312019402769690021942750118753967022623476402755633205338883387898582912014651407241584426141079012094953860026014205331049290882659935924743821375600201961199074949307916381044193330552301312377638275283205933561036991566869978202128295529639200321691437061001973951134572988506138906554148871928983533897020794186768672656928829940400418651454599466469186652155390245591113967497923276033988866562348657642953830724752541048134469250962400948684919506814061331083765305819801280693639806414065309135124212668585785625364481567383072452353693618819629836062076931582488479384573514700966853519034990282342738609533784568379887471709600730062446403193383382838739447561370895880668186695375638173284517288852437411232178277977056071860546245556782438319062694121352968255583998282004807565083582844953738571326810694691387500593872497318108308096128547754915310448537746751628585097142031446910767535879297927362081299658890158733863319622013396311024285412614595368382515776528887387725513028603401299997761132451850852277036885860587307471147798582828204295071163896591336071682604595239674357970978209926569111842959128484998835306021526499756901855711376741454760797008752211698250007308997735365472650709401366450415338651570214295160803243734536941015593851718114760803076354910106055563871674797477731393297930908713736820041488036052575331774440694047706957584825906377194303123830622598495469842198325024752940961420579022774506133598397193513809985110917640966528879031651253660131821066160986887559965353368031436792716471207460898927257592847361412973396405483041618901019248568318487039765481755192031083101856289012242037510516311288374104112451118312666546521964064858069628988651610304288590433899640326512006953523467427959643076688864911418684786159403347394901092489756816631837503070624315064513562099563817554880569817026604424480997174511164852070365858067815529891407929847688883950219380068188505114956552315467760425478111463191175876049820827095383500717617856010511180234492048221541469775391254922562913952788297953524579258300138136273237744018883210924654489779300073174833040299496791430204562620378882591848435908274506916274641909848668393082165385222687746298901718135723964141215808469478200054866286694865022474516772752382655221669823567140771393899671441885295942325704328081526214100420052848738537219411848417515213318441063314260928377791945630943210492793343048958869047965053769869767957171887344879001021265632740726407040670267545245343756096592198219498565291012214214384999109986855268190061907949340403364320113663103867354905087276810797253369620215240883104365637875878092818016321188368141755634444347999296984038605122992778962981230767775625340234261091788884572359087917250207981900168861498868489357642512919317109604285159218065403589088872844924606275549042999979363325916195282964173290264439249565403803725631086292320803399926461842396984113237035139422543766384787480434379002758054653847670146219771125636657219696670287435084071961267522514544037560781662465211599695100754862881531586972081625731500987856588602807822548072987557563450303998555707870603874390471555264720822187145119314961477186622081016001072934213114705621909272098332657574080045863729141597376451430958708320043963440586430087770539141339689724371381160212645342699464665017587606665279002369462916601217574105189365443687452143484495773693029044848618323493423652087119141009382833796064844555919787527667510423647916455176805443875453918436303122594061748761570634834127707154934271852291412549066403226059267226930543118336028108835059110063294777244574609160508914776019142732328127572707341943273829304088310129523817763099974807252068581241023999012649444827847005751976061883589538730617646294275141066963824242332195334966929698641545083273898562849882261000004775161165271372993158131353568455772512540697620107757158877251145273090768908423354684948957644693599764636873241753261821400057434049663287488816225934105300687276560396910283149075911454822096462429912120341014782424296830768360776104889922770952143741731818786590556771817887062350927265349255845175996043851204487245998329485017546838863466998082287667982662813585270697854419189443076296896015476295081334534837316494132997845430573562607226382614622568540686482826005119344484079855526187000228653023167176113890732009919069922903603617266574097976637314633760742613120379557721053158562976332017580821543792002771159196277652443508553522387378471800372476019837505281213604483222728105752586274421391211712299019303048061804674953959606382844958974809146390607411063229430416835534871076180304476479228619727263548475816372923004072988956302380297072593008853458696186982850802243972675871752158784802722145806594280102689126117420438826689893277882265230342081786697668391958410444157430692063991918027457870745465180343570791749340564655954116745522173295205232302535592687542546703855763463466559151113158763733636481674197726430789693219352627675328384837776129236946236506908161495913650086915693000434449470921243001128815410513449359367232159453360392687707836724985786144599836242672086006195677015236859005716132729102384378761476005989434511931785807493760418370676627952645553086920708003705387496807371594222177664523445251923247064337344850282764772087573688067981460899392223321786348457444062023239458648953660325871500771227633174705023130945428292334122707678780417131446316961771161766126416702907742460837339885358809321552825972704449767888037781220048212576964369148387359643647889455194422988900119856193870769685513382085119021020028734942013554135468509224732120134266358485515058069489269628490081904196873318207061427352320774681502207588507313325484535570497559463819849146226328583845455716891589341921823592676629087378930688181018571826824405648667950415631496457881346152016437601070550547608744289912572194868152880305305989231525955938402980352016695518094541118132270139802313092549116148017277834943067970471918284964281663941123194202016098099959294793750693769934081470347701768452365820375638065907746646745778683366631518458832386384045760500401122505588929728242678398495953213249659869775533385538160785515745025768009827794682987941952396126785972821963742150546514521872504217328274042667654021820832975198296500822446169871417401907428902231961358340625105870349841225486370430832632659932017805289943512002126412209787871305113502004988482412453208244325604273544385238103877096714479147790640821446687091283432001028711591185642150564289122104821511403121271538125076204593476345353309977152175672467697816069091809263815087260873952373284047150322567059323281435300003519851841001547895415660976790512663567207816083071982822315500493710772115054831992296457445270509038213545098562366961801876789905140661681892051507290158342078545064657436206492392564832442429954739552601075201858839201342692550409999746327129446816793687233362425482463415098007289716434946568018326807621557988336604239424373814185354237320373945157590450903030262950673374911425863507594449587040263459050627954946342254829436057706562464655065826651715936643277747060973395587196377266600961078724275393076398004301256916818223024565380578106015765741553545695253998034117315227887728608549563776894817028241449528924365163640723438273166713688803914763733461404179040553384439837917482712057165030006160951470653641086779564772443685266897365765194661834651707333395805317583769263922317132692808062383142113782375340328601204212969626123840354754268691904751159220529946993334329304920074761154467356660987704305144958997650737602397575170066665285827527819863850376342059773283601315769050913868957998370024665146013158899740201110880318061206247235907096283258015827263056752784655632587322954581956877997389616219857348378825098841414707140649454023187391269399165334719890301399923789374799357696452955762297978535631051250692120705281155616999542655713671800527133988421482525609598749102429260503246141025111712361725139957678604788633651291275364504694935584488230797167924683888804048922437719983553018275484693440068118386502229198025204441462666023796535963968972475057439395682885420073879310965831485423986505397892241634387085792558551118731513697098649974478953995895551919380602834138354255808772628015517833686808327003795119404631925484811831401651614468233645850250651935635723382392492706658503430582235334414995009911246202429961768625501204680812193012572539301346510691347020237385196935476943391148512504222098005297408588779223255076138523035468379364997629526065151447311347200682639771303023225177188879693975444500871826134657117163919738055503696414992312636010559860686282774234998802924696438264369602786788759799783378618704344141412817981546970234632431799754512122842616846774227631730351055929007587376741059658245644224155359018333164276773018209684961214004012689081126212040468854876793489518283102988626036459945735677919416027054371880443569207818211920740218419819488080892081127342415361160087972224118803107177747658779860944773571662187832150426744262532494780256911815372306519694541992524329161541245581083245980925184389457406527076119638469748924160018839723644374465298783567508788665632686221420120123192908708977508921447829319810327938451911621497668462633470745716187913452184293158119831933277735393128986259770621680761488200179955994227775288671595461272605852984378207395240259182542948326623328074319627682089681207639308721412694980334293006625450596828360459288454894643156396587540266196658721248139278550649625344623745297238136324827546984171403592696801135389486089484769747955319752532570617007073935258783359345906209320778029107055035381283150879518499243068589230681003803002201112964007996003897561544937158564123382056004230710197115396524774780448979751801472594149315288362900102812048333905011065185086089864769441655609957776227811461536446147355943873684390077699647321994582831196128536435208895668941466708277931077387235827270749606867822260369954153433046421803907218545813207535644037651403365540163205881960276048708678964995823260967394934770500058832721309403428437036885022333583871512448735107239088048017434898218195259397585592265284150713861986797016235051536888849450264101849529211380325500526380241586983874797332043939350686514640072950060935583952747025085445589276404196165206898466865704928012279687745704053745913464913657541779633609988719097981031796497356448675239778197500467835483067149409578840635348432934032414645404406211051537926598128518082062763968221917213255297993122341818535166479592417177202845483507921671491539146703152285505541311304723340550285640987045219762080374066956073629312788968919180930990900800272844411237921169584777687264309784693008770809096464475501363630673137841204140729754618826287226790285940651140259163533946359756772158858152147837703952798184458160493515599477290173994817009300516078230580939922364983614207199001652735706928444143520683868058439507659910420660688261620283051251999393169714289290253520086588283221687213256293274358515732127216884128560642975663662867542420737902846075492944909942799315572974000044946982164348018904658037957142034638018444371860822745510739664602449229718336006610079208823750481221492157116615094403761162811885677382932476600149173200893058581004701327393741084899059353387270170714756380228263493478378268873484785639679048213137378065991991512417365043989783484793585445085699187551496148041117637759470569408547574690771116593287688096707428496737537291738267289368253142808967509234636667872858509502174655782389379448308771030457075841721979637211852888386470385626959636729268392190997787298717968134468165028762165374503929003216970961108498908082077332126624258425495057416610679251575238156413804970940809460876352424125380649544096170760714095399037374335167778765991205559104374869665579684629525123204207640274618039608576906090216593298863982559950132536700238724781416950611709192118824581144585288079681986374813076662296307205069385937274565666941415873051649568814893670353432960432397291876248414671917274318989110871062033639178142094640230742276610681241593842689033621809777523360450776381450065091149684950326441701526993358526890411930878051628912826041760065452994891598485352048513838105838386002668982279808309878637303562555762487524344445564370204329193864751925309521862006542746324734333137841639027923422062138880878146892167164590841219954880453160904248921108334636216380896414782041162791008673654024635354795156494496979672436162065339926633741479327126661224306444886348018835747615505984029780641191576112453106358270951654286631116105390538859556885831303144315874378221114558049138499922382291318408340415057495253148004387741949824893488041674957786594946547986642241823947607303004279698673645477432294979034318417728563904399567848304803159878324752613755117641922768006946241221660027604777915906900981088900984968442678764178279344950088485072409514254920728665170951212819840850528231115241098359746422966026459385296498256936711998270926639844513389047413212610491365240162146302213786237631013092628539734939212595658084007168609630280470311133575208890210360014098301098941610015630950409471158412972476307248723032160397694711375735010113603277033197597817621955889947673465098619839634571479072137107672808721197355371338921370546005820739311631686869441266219964270137079996597468488327620672548931882902752591140590948013031653384426677559300898556393225294252394342946152964638992187626338418215459661882783376166498293904429600050490528446820664344686290236703310952170989853281228977492718994866425055540097626684968788489440041213159690399134324033521880120847692172944004580966071062874991223837157376740766097703594801691571386606364181750761144960393743775219997038665814713686342362998863081464432817733381438779251754413306997479333438953132951057085576604270482864985455470619122487588883655144747748766784119908782487520287637321168726482832712604620841889559590670527037740431513363382847058161010454242270863712164132288668515264758583989543532626997813118800934538474299615829963808792849419890139590568087987250889807883818647484611412522900056187045336347993191254286202301791139956982859596874020628074394560150697444493328263119726059306360152147473657555678715435171671619194221285384366624423161584611484080008856273548732120376718389156924865566883226908761375827862605000558945670036907795253316960784402068278142526532968258748690232581161430342461432295841353055888339657053918693974753394727532660055657867732912950940227594410972784115854384535085303589295284004555731638032630247609404925622374009423051520389668558635795634772083939541816780004469462659915787286026312157530177890682381601144752181620739323248819898116065958832233473999939232366078274949589984480211196790204805496250028423858389391479052825365832935859282410656562158409132428274581400285573199552640047028355083701005017622909545733566018240688728936793135010687605203987674587785032465579818301537834734378399923967143635777409818441043786497040020481856246266430154585830031627885505013364946767864492566489088439918284932747724165879483110893827826305748697695031496326089213340090374707713708500583087209877819015377145669161895461694403045884037942155926516611526924537089727360769980390763348143845202653634792661583451173235780191286118753495300621770805686051747240402291615676315714693148849116129550137902349598381162498208506602362979488143407612770632715073316191284871634179115251667869902092035384182166872733611481196468568834073363423763006933105085589843830830699706868014522814944044842892481412978393374381920726421873864989589825569018978216732233088960268363450229552070700209302043465064537844262559632103232719297778340806643376761393996749794509128892088996547266761199206826824359148941764370996913131255392236731898918320687865528053982342509079184216723120206037628521607373241232642867920113845928335141942160707824744803177856122849760884039305390595145540584044782289356036894595635427904438551334135121924362447445818192451032556501811596268686036266432935616756224061140026561649939355502929385516455609689615554479225351449103751958855207188554182935115633272845093017947547730743291044050049699470336368521589145984423423446133820725410124318116703212666568252919877028354700130639218275310553909651078361505770038928130918932554997079796733172375826691223192320270287459809713791574712955591865170392942760845112522896900265508522763167568997694005171165751892733441147249024185058825401097980810564069257478101991230831131862397748402937906901815461984542392580284905741042738004752637657807624952522888586978802728554855599823049927111110099555823327960099443299774140621564750934389429222961555927354576160433309505492476921586225591064699043685035854526448071563668726924553679931111626889521293858677883706890502008943599945675065435780077751336231259599770512974437140629761904271018672030616644703969676066153861719118110820930843408980292984457881973674462602836647842096935882311754788192736772755934338536929231960300083319621823197330671919886220043140976111228163301067356548211201718020575101176671638322516544764272963639963865973246346790920615569802222383052691603308833187427556132874910282522654856633418366807735841664836500961431152377928659810230894891392069555725190606838242506760864583020520716594318870915874668524219686634803782909147456404120315319430358945936641995680145990980887051719508260746846082681118514163931000945030710827909484047386548661028440991065704372812180448962191494548589179834590400865028842166520255544288203077018056109875998237869234759437738461546534345342671149936646370849227994861963047695298174103968257633944320199281534135719323924618458915087013802206141655705028807988233121605270837848778080394483179731026126189214901519967238663949978147753120694970656587202921673365150769339503453562629294107447215695111918714041387070391553575798102481659446707724506440033212957215360104800630960320157694721087291472141935191541715514552142830235090369089731610639484621160725025003578304126481708845643599083112485209635582925882336539435234049900208410766280036247241288332476898345444313403160294107667032273169001540920822700785272715643441893821317809068912256977345222277640532512454326448632662942028370938412706487333207289634989114606987582651893893815715450619953126370347303237371541624366482970843730359326381874949702529621305633378576789825015540616838927401258717626076192408743990949256126242635215269511680143853089870699675236749409471985797775751518335681894130353651383847191573218049803980435229657080962915817933644521401929557220762162057439918563693407467908557732244803957602164504344254439725840780668666117958646916766569865521871656976914014399124091802611313051565408717294122922135151337941174301748395556120428568796018152574246512807089266125736382199714343022873054371072894859092927098375105492830153197547152012654678241840086063710562782840085478717219563318411657108873576337344470127160736480100893897654843419570738144066332417364415675308251253727260531246473911777077875587822618497127571017653664552934899796427487839021351426283318081443049421594409973476915289472926090923771828911643339034824436683568178641040087139518511077824236672483357338099638325657696244461230105506963428837258774304951444155719879926543845892412857599763746873287442916409937068651709302190543011498768335440975317720308227670583591657374564524739526145671673224040024908899730436028511074279813757324898619098863834562285600621339804363947628558028445645112045517152494283694996870756530927502302385154478400370671124139615712184499639257572499227056808189503016707726503792704406489966720723242925513953814283340848470837219217920348895968074987792493830927955626816152104512175942682055836221404868871544722372847815665477622826435594437473623794473649091430209876880148704325265121052116969428634960361704840279471015878237587642368517368121109647672674637046111525370208285204036274346805138852841934165498647825555524772711468573893745786201707257823655545509181863100661685260931691427870242211161226406048898386871241618034259734100903445140572490907142102343744563936482061218936184061136473524844596507086195877820242054688167838046130045952991181138068105389527692014915906366590181882507769413808871152628929987303765295250321748559113489461322848738235970601456504923032300152632046900405135370488750052553881983521773980502938888035897522801431833893638111934936401621509531142808894507231377568818029772415603056013960414919603941394893055992547839320086740427101143676231329334236295111753695709286868975778479377819995293859994413671050403526580429394877601336585474681153122019087061935501840584533371813549704314001241307009240945325910841313972813004920838275413232343337771131906939589769488218221638434336242161449925406496604891408771662229035182656035578483800972902856408705812140972671139466333302052706579730302763872844096225261329716527115544938880865341913554181612441113925014378946336477576681347932612173750912628572628551353851690751419600960224581614330137440924628134796838036993431772382763194311708096594275444932524033196432146168492978360791150739214262596225127864837483787898662790846333919822256532579406175320428353702630327980923015557111635435556788031404808117272544251530822242053592849503389498471634651447634946521828288661075534738137246168243846271094940678620590244952363319852109084473492663676180572599552628940593659216437692874314726293547861594959489187019643792524957131077351719074913879220910453764369437007822241235038662358826970385886200206509071083915616816554688633048447319422618191920857218526635327053362963697316017828029959019375274181442860316432348343075188916446657872118976432882835367998695334195660995575121031948682759589516082026836095179630815655601698147689979309010173600107408763412513619889199069346965085259980821207485003895236076612099986227173398924184811036449464505889093676689231704170944325149690906455613627169120390765271261100073279934408238415493441818594406933673614973928493779973390938244645214984934002299820673656726098887853235387342734608079243406178607239094357969932240449680143598471407559600722251420360099013864467521267652550103142420325979288661285235338218511246681294774964443043865487526300278165399986974703997338520519650498592374898930540622973745322882559921607711572917001436578099384756285249510502689826913764907634533012684952905285196378951824730764781730411954791813397464710830663021616904186020904286021144462974694916798258587866692943160463191357081553051729294481683903394654909049355157694145833206183251353316418360734142609214920081071663943686692278153792242161212543670576124207687964153131464754466495953542600415052687752336823711042270140502857087344164829946163427667549672727689115243488266819104709527977247758282799683927661096875924396378585608055250494187670088385907518427928083289463120531043308491382173953547312574886875391091873247058772579609745131982376517880513470901908036075130626789934483515462415347415291352681580341086352955724688930074166626307432587448902749346254882567046943243443649717925009252459957524008724169436039337354929622297872873073292865542027758784662707499603872110117000054962941066526780559255581551358498807820840649615188610349909179941466279369489478596510662221573555395649810969430751005946624708052441961519324968208365850114061120898857432076462015678760483913218276150746340167934782306214170459772932514677899014768936343265909533995780302002678984177472990039623840377329977562922838695498477369021833077775475105393120772094312904529638722093012898606619314082840140730958036022925596698618721762201332616523154260613459282170420816865560751209777521637107355055118056649578488038578703059058767666296296137030337796221076857945594846797432588635653612567084471819559724429656961878786970714200803304973544464052632759192226054557392875573405777861765505991647543857192800669710094295958854827046854986658330974930368203951159467770441092793582055469249334036152036493345132097895627235234903357038636389929149637589666214446459134372777235586099592873584646787431610582566088067896770024075049282528930196644919629395405666971830562687369952357509308022637731280963077423317213283834780701933544771077035744120250871849253284317234734770301795237502565877499031341588751097331299335423003536025032419734730248834017163856622018897060749267352614373817529161257133620216900461730943745892002584570242012206986247382027121951565225530312947632092021409697464142093716153850080274214498583009430738770366516883432522190657111262249098372942645949602203906743410786038135216471193249337437828306705485817140331092786653157066748263454314199723083738138099421174704616914989502668564783617514645742199704662970539356348664167842474340085373744347181503396941190050297722920960095887335875985799453754711113872038339890474238192382101542519547853173172019342786745563024614298114746511980507345769729671627460435431204384955549441386704389224885672914910660422309168686899807192264787487842788933750578370936229985566017594515478920561252696400256968573152357272237933891648973534025100852748375457025524012809183233504757740586155861594860284796531420218853336308121886709459457330079778532604711404875118269660732618303831667603489698173511772942738285579438032865493590898941338737095163230094867432406599234170884248301090775443357497754144411082980013786522164461096634186123435448063987754274823117209058254412899985229750081895012974134893130238127589732714773171385304113487636919629335756665637325255649389711718225777121162827085433595239822611124494780316392191255219738210553696711370487700701909666168033338563225860777724356158139364950492973537208029164441877420607723120361734883342430426981249051894087077329669448911159363318745062521817980745829122452708112344896778410183157724530621605294366345752361566687820409138550197509504780954562336823730298012331153418811214206638333583792192338497994301388071117061493154358834629964088377064156973694931118360728742833245845345375241121396792758818536707851041273354655641713247202577120015177916328283770071908108228412307385320344096079661125107316120303679262597273483591793441729118189025822147102275483461825551938627556035098980176911325969852277359090574428469401542885949551401944750502171650817795744534783435080628269641078668475574495606682305426896845285347188140881789214711466969636323621624057347962418790125820886107544314055011857449067718970676739018951652751090008707509349676768269730415885489106088677760669279028471411332737546553437963132258599272944729377388912209740663698643940441160350718445803177680986165927142721283829509773069864195442063178877956862203849685292210773066433451076854130645894746409620627758556093005452311794028441222419979158656966208557834917204876521863626799983952796851469793553164931424293044106333201092507537095867992872898508278534928650347146748707751976977942211639904389823585924127441577651000666606001850012643737996487450386305400631764069994802793312032222463825665262127625542423502946929700802986125780269429889681068374792815818572456200402918376713222182750439255441616986111774319319037588863387745303002969246416923822407816522068906555123262618971672529395421753271680530899333824700820044200462585092863874120304250738144902989929974563859200685266271147367877950974354632402014676291734472438935043262648947659454322297898523339045646173359659229039774760047892245556542559476185725913036408815023698736343278734398048876116040892437629287713849549635444349502132625314115051782014101489006915754662166794451771389024358101421835487096796211947146991690923667565876184217488743797987970371165297713358063800362533085320352289619600052713582256138017965627292964616484161202808421325760018171979812836398303291683325159238508389610634586050979657457693938298946630996998715035123808931398678722914562679382094522268692331728325929453091546276183122436939393747579287531571944911647317285718754746284316261759988620784883327585452835093973658000766026822212263165289885251531994707683554132988295795034080265797888502577916240191736509041404811941336151473732967083650891506014823690890779081706135203914570550031475966707146127304399874817890808111970297814326231239263191311777522541986193103255172196953197205163726780829246250547717584374194590789168695931783231269615575489165077171144353351751717945503938904339604141349590725808563381952726554180517347816807194546380540766732064347359277659868548397256405871042592743095325040689830134920520254301430790340527438147084648367583805447927249879997928124910450379313469686254999716146732821212581062883808826219468975499563217392163402522008975196034845519561737981112770893573769969536961307316257679789918918617756265751957578747231182719041511907652579464293850216753812716136276328501019251768869314587588467691685535883790599818960847710457932749228839292578595263250191120589862793766865357484962173074263138446431874555491328976197670819790256828420168360893438442056780801035860957224185169733816851761760992273321065910086105801028669935338088603072643511038975615156620429673042037511679857970046640183402456344414805875612197007430388461526317677233919979498483608394916338230460037379836776341037709034741436603578020421545759354118798727473201816235456159854540946996759001691844362143162238165877051284038803629077066402090315875779458630150996446659209255131649537246091502180189951227347215033753614263848061723048907578144214764796085121131438766625656879406663945384779863483470357227981003747289985466853063670867021038793941549494050124990259286283793524277005805776444296823809947376222267841822008278819775393942735314498782177611828662507630309831736633320712785667198183880303954472986697596650765265505599612786659978496916505509419623382927923206174037372644209726981330108056895756447482740404041776770910254673240510804037869825381993591069778035792894679389640436315666965900973350504979628356066248227057173684549879519912985155679302261777193018488600927619625822950939441192816868694371786333996325888406303228981462963551010742674331635723011785402565735875818687800724916283887019955485690683614872743618239264005046227210179658103943742187887924768296899852962662713454076751637704105692141964957075208546627764225918198204556957055925240337376778065735680971516504272343433052633315584967510664962314097552449420218339762192471103959651032331822309064771789500426600215912485542553831634183612131277074159346873541575325810634997586975444087931608671762373074354753197485601048681879277282795497034332636051706680269864399095214065728145114915068610540823844454730454730450948007142787600606368071053700382966322190864479912016799020970544150047643260472052303179887758501435327703672685760876949428231669329789902472699322561850740976771380320992696855582177296330639362475452286378177153965481055496441648728084553857207353620456003505194246686826193454836994304597971455900949682435495663144752821890422074017016266971996640040864051448590388275212035861214380495453964247807834902600146434627758207565991402085769679251522320587792456536292538278181181273259607529199524672974555247837473451918581517991948146718019446546519241763381264354097718506093382758914759522502279424467174384892213212507330124198158479053079799904123418560181243067810224448549735543046920885819585622186688657648463484870789878749555689209633217864982142843188015349545631931296445772331924836332379389250137671094573101825528825825727463109297501119791570879821930374650130038463112874114684373368085062247541732068200450826622069638041139552288598559090660921957290673177575977057756225764266567238671562237226441843947576329767103979942547519149571002802921733511259842001456005408353238011101233809815129583325628298308276852259681789821174975933124516619434162914201974527455436235291213117881766928953886996776900263002608569369967438576024176457665529895494638237238623317721023157784800664300546521878254716773697257599422302296482901598766686486820033784605515496767495027142815954321604635756339085672377449925687851230353089658533250454518551858617197071640769706999050936128722122904957898103398690289873158055948006866798979607213378445561362971671997297263827523771855369197990544328012305074059411191904093322205654141480688560409813828209255629584278727410192108617363307865347674365258759003144795962447642649132813434646931915815623118924897492735078296599513675102611877443914339328707981386343796769316559544801264104894330853725474741868826978434422713557232017194776969940927113215986616020485639861461229499459118132826954916579125845376566124026773507013295717782117591376068595182475553096973617551827211142175910199772805113715669748402058727252780073624384121070797197126926053339040288828710956715785300762020071841155673105661236730885649343564468858386294915924226602323383026847205948395012136720599519504329866722879910610814969447154670030225843588045523415225505632203564080427237854389826592587780254176080731755897118780576496272380108606074297390062531795583109656082599251368278822515942942126120455523321491702329794474468290215822689089866728833799637580361775291688591531014776617930153042035915456024758928519207918378414424095791635475338444088556006923883819246920046314412821899735000841068107003352670219745321600413893644514318818290649313561325524645577266425908674203640188653024178639239227209842763432987796404528529657503107023026832858561690804518956916619176061867987351759809689964271369140263364836934626745905734630163311576358025971702245785208459098724457963319199829455562751327900733848799639341694774597778870891803376380454053922174506370063101207311905103015709944950886508196101782970934413712945647271544172048982528287123276828599681695138014659910812970569622857131816983713640361189030901179386116268454325485669186647502968680000558877881882643673772354530272308389467209961327053737610051682734707263729999127462173328699600229645671754093812686617044428612604610483332364106587208966080404340287776313765526012174450156054695970898157058719202632676616052292385600125662244377449363590607847072408848355514613599032329648604266509653200301891138122713331605274951311124126790806286538729554566182859740215657452276344871508473900557289703381523294626969489776566060204319404103045890375209013183877011601802120335794504308451446209373108375764114733989350728100822477202883329012496595683480184378464385845597871272213881191244854302065849236416357977092013604204935122163734289297027339456200604449344481195310317204314628401124518289844104188683613876594906707853489262955317217873287462934742391434056631584272518848690484208053619148707048581820724626719831410017322059645425647394032349284797697444830807336287224735545073197924256321962260668866558097937323481477680160760181684917289236608074210494914906513815442687932420364364721054476257504427383350546297169267161992206980104174903861887533763153418998925100173989351192440145914978538220464029988464838595027565863262943191321451879432241330203694572398854779085206594695484744053102242736984407410868224945442597697491866223661831192007149193561334618100584756785487770266703446219564347166269986270819904231151279108972915064824506020747895840094933200997509706605618256974576255014427390257172875188468808375057039579208003249492667233456170920769228297174751508063544580232043186579190983720380725132784355436801392967600182437744370614502337066919634550874465192243098088051782447715601729461473998703135845706833177995811148982636457337534665690653270442642065622462392359680953701458837575393891229233815893893231065335782549506145796607826697677228113029556440083861937840398295345468864268168019200282385781087358256304384131040450451642194106940378077343638028176573906478703684105219879378812627664162634292983283977018793512220419734765166170666144533878159943857522812854743513375472171255126795817546698008463215094690335099646365636187079285497760984312000485950822085383076235970899724072800483247938626278938359173457462669170353659658525936264504218517976463906602129123367414260710462527637741192995569162518499015188100492301228673246437242565364819559693528894620082546277422258369052769828441122919062952553884459030362618497034003178300237399910075212420317548973729407387913489056480253679787486001873840061926209456768140401819481779177457703141360785067679678338161174992069603152170562728393160516766085245745917118060996953444786348814057907920648607415004282213523458128623635573558894378575714078665981113978144132989363747043840896480666001064874618836474449961468179164313019520232019920510067481281640076056080389357946693788300346012441311515929822925231700503084627718587182095708296602076279463449123813732024119092821651357925480928138153713452588530901272134711096945653093628455389554177891005918295906644983760037859482755685869615411604059120051310374616711456182010062653698319110240060497673613812781955999445330224240136521543978705622617020035359299840304696030933384376608865644362195034499100630826923252006282618197738254349350952949416666526629397028270479604614527674562354391781928890221540512068349155695090704856961659931397988866245388194760353672181249856306716112800150972467752035733042543558490863708626256456991257470920268223201739630575903229170091711221707099030169639207201901546759711776620369374904491093513142000242479584718080456350711123792858282500225489563859432025186233984273122729703893865832555420465399161590427841668327026527235455616827619022494841856527242323938956312951329555498213980333613131349164984698700209465422080313474401979725969168272784299237902015064222197082207351362875766532961483645313504076563270651046577709737056101866991514258753423758078122315354374730306157926073288623056967560663376069754807565001350907278243537283243183156978147473467121834580102613242875336548892964149500566360516944709415136144429208890927614882522698772430732850254450314972035854574435275462214279474862045068483013693388080680740342556358934585704954043733388175840659062825151542350566640546357473166902620413630997970555134733991549183565827212489705850803147125365426409635231520913797754565183728800719079322321085043003104333860464241874220129937910296714779010722855519089414626783281039801596543369772910756287738343278229905296542531429695023214568662092565164010795439026974356573299254187374940212027208125745023914837407261179975985408517668641261806975124736125614404407188457448461108061286766202209242735839112605588345357490751075558186358637567318632735232194852645559745060076649760165737842417230059946188754407331819927337598126012104389513605555567982525523805022513616574653644960404047483564473445407199489891261068149062915789282746378257771872881405351444865188024546128076668350220164203443822172981494909234804225628860920679783195842848877271030248532669042164299598929127235215937160437527772568788589693396862860705215526554500444465678554931125632363522983845756643709927225628022815295031057080503623384621600858683545410014676426112446990635648954360214034900990642544929938530592327583095834556501743849843926724182582413698389343752938805911230482502687644443640081824829045396313091914324855574120656564651285041508822707092317331366039174456600064057944212748836352338747421217687880228021614643874227222579405633532609478484868270154172373510905676349705303219170244105083820310916179348593102222241152682497547031099580115435086560893327377599018175026679667910934122762091188199940682495431251220498020276517199482791384604244687814032716489683474357922581299714761856594224534319969265887552456154034860306027737069881926079912146456190915606346656960352406842100179516851032472375063111212978143697485005662511784163946582488853649212564454990207906617777824399366594996680540807709269424987647777927497192510122664509875259942179941576712514197502214133971921858213550475569298263580394890847971387786870506737850295293698678685970301772113309755155798197089462431892971930797928523296357348634432555234215852865257333866251143929971618717204194758526476284871566199195586332424814665239459659037487636011440758585398264353525988337251295253741131205645449890250034414729808417189661030408650937415417112711979004896716552933372992206180235487757494495397916167277111762500888439934071356006913084576472035316233338475941928189376779671957008909643421563705214527252423933545994515594477977906893271330127805102554195670003772807216175968815986372380462954578708661660723505102465326878324463168185657892939245767467077010786477281366102307222619375223679000638526981811126456427798206150530595952874309320123181075384491400495744680352606508843165264232724042148023691607781927303046738238896067969630314432650697531011020848443652291942864832898041972313962318368086802876356892577402862182675070190930077755642683210390704545838992514864052964495687172624929908104895087045713080532296532522472948746685649559660850124015452120719558039714538097372523615136681440698279980103488465872550625084300277570026468049218256260978922983375615285641238547449817557823898466315494732696093740780336784315180147042378115365569162633793521160934864163791793936698077585913366517246622810286996392524200567528477869671198618500222031743814957315226789482234515527811155281765653077294760298297799018225448592034331497305071096065290300720860701870177548795417103407028858179821698856304410036861444999638395231733794237960816751382839964937546997700306796326661376191549469321963357509204698584181547946813899339037043228477106051616273683966973087438570943993404996571764364093182490256057065237631714053655629953923674088729968154236083247299479348321207734540024599896433773133926072605017073049784486168004372641566431768745348263879652731456674722298655151841201207151316520296713171246460958486679670733965439207175159252229875300737147756028578424243741763388062918214479583101983171216714494567665031837236127030312990630354975706317990961456441135216452905519274678244149498446971205239860637977934899912821669892602677199817984157411058222422810201896078780055083085076071000108155052260171903833563762712795632152662628832464218172485589856494322204870153019788912470778456195404472169653359409529679809571226181898207734872325417704905073980403851646877851369250428805355926195854327289273094349152546475260475713854494228403407163310958666397565888602943296399364558792063854209077070015488445492766895969508085877314052896454594787840938250566679496703868245149040086254575924781722099565480564662091382810747721234494328271817283114021466537953969420264373786289710489186853867114145418319758075675089186061312270451715046872765443813032966669806415028659390401501095043527610390418315602292350061349241088748976141788122025021209517761266671012280593174095005541344042982193465517023578926785590317370146978119172921567705891434325923104506773881363505267094912405335027129288504050518026805211836104958308474031457821564813329426797051495709175130563645278243351027449572275208925378106207514649720548882919416751784213382216864988226705022068082415801871604836076819574429349823946104370069707834516353447523020124975601832921420771442670717939715876726450545496562571297762291363564177800371202833872932987528202981811925160954120296007430762329813532072089174024363587992813165504890743645820182657842373076213498630496806103770347533331846141378753490317678805194692151116966619378657171234861775794558563479277537327168248630942387377748585865531667546891041071466820101137539347688652194581343318379342313593416945898264724500006404488586008041366621844940215717394755509117907809168801155320068476108464482313786435024237218911620723205861630302156629977184098237152654750499797508016611155305309893617761756155606030723255166354073899373119324381009329787033807904794867343447083539466790057912370904742911038144980258458489930949754868607191101597206265290128752102325313430286488854986825891779438539670673881782765899907230287184944955933202043755440413675794387927483286648731970815643604265673308763268202480813423269694901109937326138451192828057183749934393917845069129771826965402408663918332693697489840891387849765193342094453712406030850170678665392818353728560455735847610993319731176802749373045156749431770987192124608398742854997406424178610547989198173234794854457454756506371430398243307234876014120476353207992305210351363149481774520783731100159200903563549812728678813037514445750657041860242962293106169546743850713464607263551167738502787407255108336665858921979223476143805243007528951957812676108843570277163613114208154304761054099311674876158544352122991461270323915038537812781133112126402246974875646847208853984574041282844445623034747163485901524700861991948415243761034678776955541386630372320895184146457997793592133458326090599765590904944802136889342507119791462050481482474759844553771306171036900293920591866826012138648256884776879087694624644685230990833400581113548280033335910230540343871337857656382000232269926342262647512793681917761053111666093346238656718036177782902658685588921923704530086319625161044955409884179267914238638768714680742976327220853800791488713268680550847829227206587936948493885147752983406160414135680301275007066061667323435957876702945523684254814916841190767101864349734949809812410805562925527945018315120501643859009706632387359495938927210225050874656226193119868476362342001971399084917047487047264157605537869540734136635102773605879260428139941466119069672323090921088293916116586205217238301500100085991452050575282385592794982814829823844100113230745229010165444828986784301764852226457322716936247376440163107297688561379338686968266538838010771229819281965248281634241047094180093047549101564437939916307724223646934984728585445697978569795286859325558838220968270704218896441885635284572681059891880120132198153829365603563194873385898079616678560270606323534453495705273224028425942459309101720623949981952869851782769718146288274366493368006037504519560215158818760464972303341859467612468422192286054292027769832354297045996428489736549355539036430753924528238410966866449427402856217653261186285935531699770166376745095787563037848488754462457082690746233195296364671565300521191338711083225403083151024280556890645833369720690136020187923169171884131069088028356954490170469691943649289301382323243717337695311108428053186353655711701968956788537416984100822701231586786989691812048426419532098958795275398724918320048067960168537193574205489605005500754944263732803331988629937953631632950789817391964156109062620698756900106536826027719830437611019190160041628401100888499807200085584959478591097836153002502847539519406645293266574910698315814314579354083838697384313994404696573521846382049255035144143147992266919003975105277681251684574891270447884522057422762637812678873308494272018119053684359846942604103716220187554357211731308363821973048836804163045140146224514252213896370671870026931723292527421923045610321148812521519301937507546030047969222915656366942507676750649194491545955604744579965631604577348001142803128576900166406613901974862507171887836603770331902786843245160950435707949603323029569223760129300093460271488090491229195653869673195507275005481745834299855176090724445799760354395772037113556307039386529967857509368701935744954913702065485636356976413412925598795008154355163280153539840426783633597063275685638948010908347371963444728316856315913264813232864492515008855946057918857313005556200368857593269313127488283569524631252930359324058413738548904593031774081335534016535352546214816538552141075537289530178771591664531662864125258600950625085871534814292759588383069890414307192546285835845649881311061409766641490267748727168465303228751814454235427245817184132339278583937886326044166393880647325407027306533475572764832272804008387967162695635378330674231449633609006276571024548033696864768965326517193413450723841740075662508328875429683301196100215419675706843084196432632016262679884383028155070291097685764030247096189123840130283922072833388766258228819462935015530648943850436126932852458570072739280158132321560564096124953198401139524913359191438370462971547057969114467142651182528846336423774791327257539649095938323144372462504658995446991726189237521901876052331470753352141945608848350898890021287908500295216702024423599290450604125445671429766712198352812040067985687480077567649832317336139488122303533840578650249866845396240348061546505093251244999788355812132441201186521689654193133321609155878357576901361653072091478279658559509537820287961622867830410288295855221544618968813746830505375651233084986763418799854223330266923320237842218133681358211503703808013452542851203308608826608384778005943397483626786733364872125683231914966147399586093448711419626315217976340983205853171200354164904474527075843111974176820227329458898038354709295673339985030497239915582402297565716122763202523919065080278099377805489628489033232144064760609982637475104345827909783151782558162022358510648045299452355324621117137992407750285830611631093015086929819046298801224603743068101045635375794390680138030242765926403679623211122857676416584560111579614407580078382620765643866502545463661459650959171496724429649409586084798395712845258007466144621655043784869546721947084963350854660003823793333300138142439379508977425115557724534180354304658894356998452997511348777063412843795828334181617581086916293734424107479780702097036453657607876391635046210066849625635172887055928351626374085344281803394253325730699681757899939095893733993422049342423467477544473233861547432171655412621869579686721593633377254603850767291355424234987683748888241809968692531173803452827341484953998588319489030902671334059245101103951439983500933445221210208524695144001192253148799076248469159424131190360667144427283971346967596340116022640327819629612204950498160505607482938402083262822951093704704299709697934590285528470357194400407941437041977757028515215380997851955119002301550229146855410657521778138841783162547791503760464275381541830425380214346948852837617717135443642009467351944705636566940402581595999807200893809394519261879939829650248254104627445177128966439502993758404231172732753584200061447938278163017574993914484543633072289009118602336034789244539551685322076556058191914221442974591756356725768793373357757318433306265111246925235565539835338800769009157872473969849544416802786761083117213162176558984438955191217466825080310464916601722038574320369900039457651154957466343649038610891205423907771252795067179964692207620101828555626124172841263717752567151419002388641874894511486083366801252000071067377816460182174726715072435746844892323794051372248969257672756774160886556502756958032758386459175340855292658270180893294300498263954432030169191883231646900992690641991537261531990188339689601968950621318307923486945731151586168411680629361427674904382253476219815438694732415111019673259775456663041971115667439591506307031858450383138145806846600125340218162735512841414368982101778625346013955372884162407978731097122966037408211387328493587080725483988226254029693117464068227644315270818013213167915356502038176335338185272249108756038480683869336285920743097023008889199666597344500860301680002702901694754115050061982630423741055062421657567096036891950841066589769399062588315995691374164136155980827892285073544441991393676462488986738998491194857847952784138301945189104004763012964285714554363116096735011266378663100367740538600212550023987309806378229045148975295443216763688274581325949191461751667234122609060206736855810670483210138205073853964609932826419989308640869978276540336099208307343806844214611504032421905589783760340245720760829812947925883562603597961832599503143303245246521130406259562787220213355866881611217152968350767651897860958767514963725252737788098370185326931929038807207153630263317270534554519307483894660105581140672314874708038087239758570870088141376635425431801561727200152429377634273858343111042575912931821110151156945706971861304910003054409609295196400838614986499555177116274686588549353117151143422360561719866815727440728450692998399523824935076149591516275204320296087265659429384763749522615771042773134589027321707836991900515936608342580648185635050585749097719570385007063432042478630121289818432131102135975812976954344731771211130776548660206660384000749567483540204882357717025411067154391521385843197828458500298323134797462890020104761180252659292441846516881258704560828129314947097283028087161439489212921493514447723030902505803054160751705342615810156552259465169256896483938087635105360496809496749877727942094484173134731181244396634971974724475841213807880644879082418800382605338218424977612644462741414701624124193284402214193139839296830206572278257340143433046083815155402813935242959839688105876480738336502473935197795962875116417667634185498931697880046347034591191076523575084350653609139045301061410364860712536025610459801520231420713620291942730714839033509576286559587368279017793465082699584035531157871643123351364666466529853534000558016944692481628239998341465305149244142951870975452494493990049656918239259201578982516973884325073127227186103577164553092222228319976369911253872137219827608065992426566336789998317799484518523785648337418986274824707731413064431057643705236330157445077699476816789258329222439092707400420666263435551173856137722604960222436056492469317062884949987439421555525072398208278803426257722571838302204715105961866407722345728818850666309501517605584832171872469789735928825431693862524125759177416345334227826928862100430561641289788760496052072681121176747133531990507992644671631833005731831763109774880743382616375479456607324967273859041693882490873517472534809526966788745371461544266699799561193071648204911507583531637409699514394099165694251860250074163065766687321650317247728795834455659141462280975149580474825624571132674536655553225053605303550248756699301383272262274892932809331951822863910812854806111384753389730391979766704732063707386997619381031500103005840200498034262196463084071257991778867576893955052332694140555071662552954639791500719592797229003727577768072374202800131235308280470474707473483632811735403033912061353964446487808343312010178090964352333603298085639133370653407196463727396260980467405924699156809930457373923529535530659322303066563496939650886897822217788014970083043971498617568051585388450446640347793291157653042097728786802438138974457224738801515051693280861991314846010609277293385333678407210223681207670413880403627915604872191384370503438750538400764755832770456490142590838707563274974852430932496444535853641035889638039872312929687909694718797121637157603597201778014101590177605285086409263839291283913724184159585616962423490035912838115908048166426395144206934789622355216984155807442433224040114222055387314976743478086097601963640805760038776288185608555416598376847433339498739966778099415443407903861552819161591947946722667544090898966300597677485364788003990293991274369633275779551201796460452683547890961379916324855063180534394156880877873677350622141765373559446740901413430154757608523025055686791708424329675181702057613738729560247619822686257058054865355882057472171825623226681498528901325578272639581461834162600545220095857772240197812895926011871248989221527263988266254698853604943154648042682404208666096507003921621966960634079347250971836570149238411674694574305704797062629674337093193618996868666616874213293147294229189118180625772635080436569756377735304441162960749907108258849545666890790969903694054105447358851178366840430296318433603306950883960308166424492332634451671852723540405560061066889096627231688106029780291663202437242454516458711179930443318727454069328514368858240829628779522403695100214194279791769161418947742749401297880554010170922908698140590886356095461393706848568457722390920521572692260905269134591784728847328175101012871512494498355372995566376118853258323782827389765977852120422104842129669907379182734638530771938317369356130853460157378097246935151073156752461390683220233630605486102404738445460340762224702507492622512340184953550230849985620576275826299250895869346417491100642312490017070117391585218991596026270758918416002206189644711535942049704463200889177627014348026741110150246841065685724996149147136924573830432031757846196284721470939441601913879096820015346493278733787001094449241808699131196550908269830822232177591607654915130820236883620060092473784827422486153011759732574017465450891566639123781046933026493146048339943340857133666148477849108002326867219208794806105341560225480269073638234946467058076884387387839667918012983580088576193636502194565798213601015420843681285134132572113728396303672707344392283330467329205504259719051620424230292384075186123737987432087702991810052386875307825523172401021999281587735911888157346792403479466510373120569633334863834467693768219803651522133002313106288522971734643937700740078851922480603702537167881263446148640959176729053577345059269212554866071820685552837260723028619259089997286778432480001302415748270440079919701180226691936908533615915563763175479106670269866430708252894138835683429520881979618912973773939025095379418276371055547629083251644515906362495281363642267757347271917671973060344983146901650131855506249413432666641975385467471900018548115905621826699097409951895045765166183788663027085686051688065214763304923967560824701458258358756921456520003487929193006581886096180876153213440011248254880290933172813942339957874792489903703729729421972502785533009623894743895500063008365835996871119644733801062312477311664764525693859350862148485626398643386820641004903216129288704268939261230705136824740388931091671527313512134120709838811031706003411398054764134472683415528763132616433174277474328952436272002485880479416670997082730964152095315246660814641828604996826239961410951250591955619520174757626003190132703004996531704296080496272125064675676775954951514662505242983854374543123090976255454118556361858259609014837713882323942442722254790535860909262383550010386179274161075904824282007963808151796176718495772761143060205714715761873583825952478388063750720840793534507806278656510998215721268907895083158921005929997336464623111551994773920007001707148215047954351125641562150869887048892853148573293927648563510700243412767401545449278968295536279323714793817362134136378993922348331290862001546873520256809588981645217017009792149933092226782389536105329478211876307871435570017355853808534853235335610261096454717093564742152852948832542397540161124061277954785898717530960553030947706141706357113976113512667110683128159219861862285460668987862659100124514604981488999305790382377749706517713022265477406428059644132777888516811421961852886947655944853197611323444246426274086140011403842051243585092193448218635381486128091479271116698963976577041288132748810485950665732134958846863059951695059694004997293951808380616521409366141655806548627610133407843642197993217936023072576945992306948196222520531831683860878383118588552778434126640307811650975916971003053256497257373190710860912604105556656209231457367306295010539577993366003100629330560628166964366646921713580530238956091663223094006218247480677457528559646639218346319767113683048728337035526175658660893406203725692805634051606605727461428506801811770388014631347002942175024517173785997428057733495331683252294955727883213020331935139963645825006483787377323228405056394274411464719732476822131265149174242687278391587096128903653941351295539286491556413719373676734433485821158019526183942852448703470344342031976600972140902043309014399615811093969213229896960047440148106626116051161485038021152662344662225542848496858748942521532814236747763136472340131322236908115502380441832671712909414551190046104439701409591640765323878615699698638593425665946085359381247766039659699118819829171703848401808974898438833511422135128587768748124369668854630463964999277090729600883163348352535342877203390522601921836435488093900994690637935178248104567672575455379596500259677886641541392116480573036899592768632508867300108060307652601480421384140349193127265979846143830382101746975089408132315625468544476239859494794091899370699270584321237863803683988059186470073597041725952603701202240535538983905878895876199746323520612110059589275312066810087340080765583430064182703561444418993310910210378417383249787102508920971037457477919540611656995097050097117020944968968658729452209256743096001054409614750105839733453002139334132318012931095613528643330335314274810567413809394827933161670630592728864501998272296457616799765294606602400408300281650871380492282674907841800288342952165329257492258006358670538747828362203118226603887094509134838248613414679029641440167145412473884631776736732918876938401093696487641710798051368405861241005300267157221354139798654622641363906072417972099960142100105391027559939021457140236078516779167266187868984342235856357334361389099741359710475650453700313845906897885708686318200758246780855858526653011893775877841011094785373624549768492523961082279870331196130635923444162486574490180749273278578242538701185417696805085829944065209427425921347891324514155768714084195477697326219480075267097027190233997766968867032550620223329084940197017714888997678018358398668794612572035421749724562781664466627826431601773540846488213177359655706786627707777586900212470267218402801467008886437176974880433780402910714202848593514461609601577095065927300391346558750413937544487253409641097660362546077452134798166443927577806147891612625823213415777865863896865532686831061904634926651807427047277667039454664638454029535280818776505403872731375135529035100354112662252544864094844040763069905584060694012113431830000119356059134118545757846058975043721105177242681171342703940302112774595204368194781652947650700373534700923046290856103582291236995187399636780851198657918199309951029256501923752100085326671506577245977845174532662236066452204163300993301664231578476293214199224873601132655141490679853612492458408168395239802096564113384047867693662841427223609650868659190026807002876320689737847141549554123299769971788855378092308751135274431643800980184510398870745350757782531263841214207276202437639536739796755183875316636631054778490514307023290336347810962309128406748306127750372460446454653017566398743618529326818898323939272945313454766991742465656335012440325904399740948125564935711882981358758950040355415866746242815412032520941519983253190913931710779509428517961444428358567746669542936591702291976190770273820120861475622337765528340662624376033388097309484405142254664897981551679081389682059967413482906047333349224338653350855105759170231089145624206113317944865289422834583389357845101165546514714418931402562081911160782868028764790307483715729083459887280556878580941195593460483133981967593790961193242174577816514520566633132682335806064170251646438137122860614040607037105490062892301811817874834729212568358099225973971588780039861463861816513307532627814611126691803619477570547780922497139389468012113517632312502033750177261562611047049750490942958762927708126742386027244468099312374517914648094399185768421754962140036529187267035906765858466870740718850528004447512174957066889063425719392433133425992820010540721600544491100129158999763618111800458628802584558459510404780654537215194423709067305091989808211799571881955198360773436299112782218833485523372107092533536327663431887000734209799919630466523550139378413111652477886467453112605078336536486061848729735049891352969748616556874810844316337783643227946491956499764079441864558203045711208940007858001546677424039743797106912478240498083680982169872672387629134781252434293192766028424391408078682440775251964320729258178567551315201641364067480494094818815169176634948790175675047307404839638654875641925686403237726961762431391074239862260389732068570069964178072511039238900255845148018451455898696137045788048567287791408677400394557033496206564603708094711935949991726349888753932994639442249643987601487549152782889600919581620786780557131260951474927404033972669931376763416495207210238148592820777648955602845798113060745808612943830819532902549089066589535038468833753975095684272165221800098240310576112801317242109188747167011525666305421907900589081221859628178703842695152355860252500232896908631270353263567626197338818331010334607642805955459200648242047889909257172866323490311811429379807582517725474656346832865876976806485995586665456238002228333576538181962970316945930899506882357302931991675449386063523494340993708035610982088539362771212580873875091600494877192904815536281218147611853052065069351272685766562823412868618253815015006273958752506530945399121489789441900986703552916875846400516655771098110477178952795262264712788734708883558130829766928837682545328821802411567962862416758922097863059985731609224808136348662003227451944077359831103516342866609237966546059626888118447460996090005993826528131676872053729073914159273648738187752789624770592914568171339209752191919283361322711499617902768769543681681596497979757710681934986003788528842460502843418155295623482537824069592064919966283255997826688515112510239932266262243178487759532463688096528068008283650309824175765498301310349068961764205922316122688117950043297030416412981850940683530874623691798620461616390618740377295967701103665778880444031410639186439973686123626237119868700992895941939211680628873585776249846886174205536146916952193205085225334791962051296276154146341036649998376029913188905223103138967654475038665777777298454432324584078810419946472090902022822784212777694215377201050436506818953122638388496524250681814995517791485219183654040822666102563104521969691694590602416994279571239453620970322564305738475924394579274131539409377724046713580214706562053821673674526071091969999746380439283655614532715459110137728276863503194673855961942709063008511142513267799964118255900432741202628492684356780446808612310849581243123545054794406539935782622448543593986639298188444516460929158567446392657891880592002292892018704247564794674756734275453488273035645594409647093418164906317431506599135679872293001644837002291622659120700722858698387732149259024438926575838009631812351816418396897349025587578064570030355842188545771615210856128253605353906416512105468113630246731286467563012723502619256027734664705932984526917588497308981043647796883102493391512106810750653175782936836795386543556111204394743055110795187578083016358522643171672200301317760276536185291445257282586161403318612663585736915839121465134527859541138445916336689485842856522747431091183359556607241761588908664853260886825471335614593087117642541504440153901851118171981130937125790859166967075677328530774982964955687207395676020340392823806378681635851957439922536451894330369342287538344987031560129834693758833175371036097978785761274576098688620724490900814479717952397805275942273375326785067764362572295675921066437152664209547926670859893713301135071233221227690872481211039618628786880796624178912556266080529426448491694883903593238654231893767321951619593406390895818226287407297258019425665024964117180340941909824783489660226875859307996430334270386201547693313714580497621736128896038476976892977822230480567108021105105619786181845267351251754575262202334702714460434344121547702669691065933530690960702701260857507477032234706259887242313349121952389862442260672321761706713773873417194390307085431146236334402664633584955079261068431763766193726095485639609217120216485769911635809280386834012352963088017876443830187644565505191338488554857853811046518834256969818484066197568703659188329826420466284850017569083313794395286198907312276803773600306886778091658265930312087898754721949734040332221382216501580480116738688332748061143052636990612129045686632742253694454662270975126306413026271251967381384324715869820973726580668868837658067674822110261664136132704274993863668160050957358071879305185132683145681813669149638035010267114857408774649372240433792848503588698799141905714677081870991944575493048790139247794018489224576314732093129231149619461571293385350767077122537364556614217267756939666323961467471664841232510210289985863122154801770582232284933190424195879933237847808133323274293972652228917622780730133049748765384031442536032453048872898614594783183996736167914689458487470645561410949966460964436027698755890401836108960493587336606334284389409256485422652726826814051817174555622632927276832508012061005305951603326874670355973706692205038324451217050396845453899338642038528844466673803563168050750235050956671563304734273830822445090673381546516143147461598557706817517652779563189737606430248244636762713155138048414591437178273021969661539272291331651746719762725068457257827279836697784190982976380903951115134827948855448570151361689797901109894028029368300033849198668685929076341521623848241633731645328016232000733923004685739607022194298138264842374230021626180346798806787873960449897191505033288605062763120143345748491374380197791655432221305742790605485851496302263229380081165633299575200753165710935596492030169930732304319702526212932136627848303005360631826769001929548191617485768363746738453859445336110111120688568118720930743539773642997418274564295103949478834954679066928364674592922091268184059781477685415750430625421234579906543991222186166789113372549694526004491061026863160816067805469844308261879356075062592159125025080048280980334799323102339615818010348181290417508203347184768235385707454935468638121501035188206870917641367560029504794645168845564988076643756403323668608503091097730914896202334237612261411056719566105407341310307945983312402085697969171368133391315140406878590861999473426903456868519486853031024300925172110522699946547198428725789858637658782727546358702056943770611748009422283383120114248360708594389414443363067442131026620889485954912895664273208209977965257498489474982277178695937043151662824954644110961893407731205462106428429298278094738217578330297036933580676685891586088103315695771577390476283374264136824680808134110037525027397930290693367868756970003807442173374930779186960681322706900137940215540295528154027347325766296102382245052746477496004090808845217438446202786761985152153141724787149917832665341288890052043610744051270830094030305714974845473265143473549140836957035156507407406043328110034989606286525444943299541124708215492145339469203799813634400164111118646067017486134279511506242835800688111285106989692837856230328814648593698854187815736777483014820964195692008645545811653766871143247141753002062100261683547306048179005401388498931333017023832904454111983004586108374624132672588226283704366702228231924480256208037938334006036082462633579169591843658028899411201859335262512479435170038946541392898807614133174608656875438327985886605917595108872444328127162913797828890189672078323428863622465526919137328445900809392405067822162147654472862569923929321003299364786515050281105215073820973255741854789700606680170188040440231866414679684069534375734147551434228287440654851238567385378674027509085528564590835117208056446507841316381056250559596252526301458432986773459114350789999242413441266774944073687482957132444245146265084264290998982957800564041114412252633602316606330431975740697495979258991533071818261049183873988150784156297242487693868787488829297907989230774164468206071489512594295018945086784984726869148542154613925474410382153053099891404916963901189764263501678896531857382270980330983092230588707323810721815739061871208216171379485653672464535178747423291973540340154536450782927712924460617110713203697433249580324336735339711723248691873298817497828457570237483019599276845883079495937353866098072299859956130303349838113629923813645141154813378512857336101568706674486509152296824082526804307652350692587140197319884240622449587158931716264169146981629073474494605609472237534863574389815489991354638311468518002627441035351599531587548700696017819887524854078164242809411640781180331615688321151197170585593943259915724469157950897247919587709842232044119205576982041222113637957761199688990183841670322850322844494267873675656387595654813523669188576233959449712352332357092390045398696587842190011340882734529473902694357931578790160656741251656813474439230184840349669032377078937602290500001008119321544583078862767975144515452066182224687740285543070293179031885154881165761367570140194491133911364969018262026480396781627888123795709699901064268670758329469209310043612644477962700360292144945363864881590834469067427697876716221789207230558040546937962614552576186262190618534142898848678399086456759405575142716860701103918423914006508999722029377636860013616497267791517124282315280383593655929937888191054123596985613593627541131581800433053145074325757540206757877111297045374154904067918911558401770115069855831531504418921272824625322599361315297021345516212805066434586537564969343082905157755295980052969620472837738391847865265123416321215567027601394092680503450063063041890007377999210251311165086196043972499673593388696890477915866674290309240747158882994978139582265608732461873690430838305394762327648197136491564565324981452627383034156430857733493383125010331393231532268472742464349229570671387451992903297428079704148884158692431987079791238775575273225433557037410736899227825071714561991862574911297689990385567001909007817873753491204051302295583008970843913374476848267029323207721653391892035889297096576225010322328848470855262727000032620551663957031039490244348490506427734084600264389344800414640109589808676563134729326910652030295170919161541654401047678672117228865143956235679490399568137475552399778387968911620773534684765861228224402032137229753078424567420098892142673713977291464898745931687053715148069034027392439407323968613739387955376467250972284175767386234048110821023918766462840028702727071089254274085973971515695954467471591692925867702365489044003242040559032022990523039642432204872603314078651952862922146400435333858493187580352765137399133689651463589286410975246130660425641700612043728152179505185154289596941495599516981514382470086143269370003802958346305390511601542267633807335903408521250389199044862239620714811333214891718670858942061890898450876774983891033635264401021053485837962263881012658072137857567462240572301315875042078671263145840115655621324651193044231000743836248957956739320183854851083057165601363747520635220681992645772039544107258115528320398850610963787387967145122025875603671044382022667209068319102921926720490857317017887948882551265752476959882291406150230444793227114222986536849436240751840849873455895858248955098695420181353947751760151621452579426349802378748859066635653988188387571241179544137442595096104952909137216020648727942762204709075957728928473908533447648220833720522550414303459171050336949105082915970606125296762139264457103527814000761240249208163959794554790479208688200263030103060620301696190871735455262837103955349183454999526822491814872048536490525679821793814414475310781019290577916928719917752808185041208351079524199795316378120125284001442424440222702188497127902861830471938188716473107932711566965108539291328817093619627024851724939885574163419498459534602940391580142319042547295603737732315576521690718654678934402774987098319671629317509434002641589431993016991951561612325400556161019088497366278783483435069753465033870755229711325398720083085857484107396364693493971850614032278429784534243907453093865570818328623474830744002975082429061985334865813918625102943217583731291238834426199097607878567409526528547112096563462580490668909515061763475190972757677140054908561312735266224374099026502587567061436236591577645895619083448904675353894208296920185901964388611411980469247240979451861852069910380643389020868946429133552112213692848913367531300322643831416682868555069745788884532922021981086030798910949234566506809169386562252737696323738783554728881758097452886450989448462878792756073193253116874782217780884734655470904440595900718773651062789341811900962829776368558777731693943158689030997341210718687778429723559147235476713229747295580011255473271040951595750268549653315310458469995790903283748728309770780286444432916156320044765708454142759212351895718560945590630827535258234307367155142066344013860826938461805014862044950469242938289007665161661045494418913193023260930600884556515076487054221626879798477554823656599702405073410132974159504742467188486310696393126735752421989802857052504529669687860507147096728016945162918740950793480303413168895173670114048464639091625710566308167490150612881326370943390158641649721629382699467297703512099558308668900475953638323588036853095623442854456036850931251033717687605347118103123259886152361660622685025097503464283474903254176262475556140704457273419418884699292577502839077521546557147076206020608531709399069832456938090458894900494734238844908201783504547556451051480433049421270812622577624197037901862241627181705191516305498835483872968792448262759088066637272392518248309320346854848808207892443262547336014744642904764600204663134419684582536302730930400198697873492262308059073792546756052863095218497096458412745921213176169844974460460856044553348272024753960102266071176492838197386384607922480915414378904458939271336830693020395559510062158033886996975137506994350849129927192458439858317554522062172022126848084106545779313092764462310687818843638884136998742460413513358212847982197258262881407087539384115962059940420565894314545654909807778184346909841924055435822636572830323222035429505657316712161925983408145264116152787997744470019286532603779890580035551886209405665822536321487544038217206880692490780814224264888386466513558681603535019511295697280366058232264604225047055131050642105954915975069429538453290621631557210876179718139463792510990919518457444893026289107286852612601854289678901184103572481848895082931303211848550439594052034299829716742522077977218094138167611482554335507075246572860247610602760707859379295565641432700050664675228345386670834087003367215992598238688830308840292247461768673568017279834772138699994410413138037974636155347150372344215208453294027864462889994318658142141011369746285511823255415693881870843308799817587705662983383642672456580755546578014377072090226190810711497744336910583864881744848192716601651656683519057344376085807075048694192414146916406795602507488476245106475935080451832351096825074406595713537264636436642184877611424837924284575561082025420435424651361986833870852094881849699310556404291999129698098821826405764895464765283568603076888445524308611740065635023041288405309016519976391376580196474720542677804239513067642206678015355160768588990262122841175271249641618975795594736410058203597064096504719176115326313701154484841036218672131697449440361321903097828430511578219366750718093565911305697229949550621934012630865852664075140025574254488346396918271288900562121334134594102083977653245313960115245687681487361637948392215245404315823854693099981194378110167828762897844262229902856721405015474428446953842167455485533371234386855556001085446717822099544205374468776042722028314516200520903927535169081575456045346505999094682191085335915672363265867465069987958688268490670636846529717592875751585707057754785065903439777057788798308526142963674638998809215357297185663170786869659955490305024588472743242710557901051539473082242323667670334540056101675028016353634342232165115040146395680374930045666265063577629694319824120507740406756255552741767698635643900029742888905763309326697641293754044158970431988581573480448121212779219883688220685589311833697987571264177672364854257342235471711746625289885778165711089616615853622986099031938752577067971977439130800033188773776762858372376265606517872686566494951886224920741545320706348475193578733996163893864888457386850051938274917842261030494402434078848502590645690897986549635844548888419225340294542730976594321088729923888431943978893611374069516682496505734503450495250321225357248605461192997872986341330153933702845660714978639285257114176782305518114109178849909659900916685876084730802166555092697936783024706730045191484293246064572753775919906338163368099465790784438877586268750651138405312010925954554464025356537719469996073500007778569929073422062448284295240577090853284310848223907995519222159967487034774842978601539631949141889261122756016876666343882161023758697748093572208397488657259143725054560436110987309714819764948655094945844003863480829729728320835416992851595342044489347596870043068109162295247781224714209137215960822088681561864906939360484219250292999055556167144076984673809108896319391137567552505672093632227497048067431086962411942457564291575627311837886125861240001744292841903810933079720033776175070256628951578759354708651061526273305439767027505692152723687894887398878954046712824741400896208660798734325202196901226616937355938933983060719131974818478886781820069824122623973034819658462175204297022071627123154299304961248587778749568995342148892211595961066806184293421024560296690071786877276870723328745240684964059969732071954340020683716963607236080651166942607456254346740348529993224266780552637996942910775730581020775079577955186583906723514354887292591393899264181155559702474378337637353554353028293411157812207466808963821399867551705331654752765224751478553793737420324879661211869901258095692015471303690246221991786303410986406809535013763523327270117798248582824215669798292082438347719360317176278348670715403152357848702530707504050617939170308344041906122359732705419576925158034156156804227150565931021210963699372344631281039177931484779976674063187969198585753173662354758807732328231888932515548636743511765040312025300414377328474812464334300918692287031399508766320948423984417972879144664163230189088833559153371188247610036266132970207285130991556181528447760839556212875778751931496803233606102348169886080950338052290461913946002021666980181626660188116024364926505958537990386597434513813861178627663520179389349697552478351572819136587083617572222670062527327576445821247232086610407313641762600139187159148025001760418498123426783544241355417160768644197094143313946479554779480608484282172780974556987142737835966889784704427990612978338115192438835159960729033315071537191425982415288349160079669181609462263824226383545431857606082278678753713729322182305026243772082823909318765078847923983825416676168758316501422566799940348050783648228203833396424224078670231201211290228621526070531236168097982716889560739851425347135666230038783352430746284658708358769525995562237244643274373010562259525194498957025102436469899708588464692811154382360209124250483947570255632651529676698422144629430480128479651244359839734786198637765955728064772736386835341881706047696940113786082580195838696999341719678919941725397485033310964948641707793998686045617928286202665145269514629065312286263604768636979349194072914186879497017697401716751507702575027397003761958440785122500048258539851360839710116696358614901500299002003848122890441882579572974827334095359395133157390041038987677341922207594878932382242987994436925929014163914522717918730787630379592132870688165550198750314470246830705708556402654409115859464290156843438180328844247119724883179672997358300453627857975091453001872481033208618385494453713314307963627730021105198067191597189617238265972304751892878948803533005087305891655422980114839438711387394937272511629530459755231633691373828613964634594433537286516084874997448153827877403385512059742594758834503203588087975650752441673779623119425896576577608903071532669045877998320549209981766451786816293816977581995470461761719174191768949692681745227532042449846652883710108982982222437291066317441380861068868237361053576852986694693603071555332155980862931087116251591259938609175518960726934252063905937179955300195924499831171101231719462043235667236741055972148132709644277529227171288811192376296136323142795400249264665671870282519886381035331144691917943092201814524752775816114095095293016221954401022098482130841549568021856193626285153114496040370499987642480815180186520699138140647660748249649906852370261384123027598953317639626845056467775069493197516502824522778250392725434664092007028049949526659390418659642530917820997999393439172552419067339884252711189128238854962433418915338946311363661926257394491683632895147712455421144543691087830014490785887591299706631339114514873761882899303740675852707333340370366610044132451312363082114474528471977337134859806025674108099723709047724355882751056987628610274644859560340439759331619761317145318891560181713457814643969384404586153230358526996138455047262816493524215060763357870482165800428626223360159277361052784562743226316302269422007410208625425869036822247649593197170522159750586724705653600316379339297241423652785943707291146590997226770889371005796921307869796431817931605085072956760835585314772594229863364249093345970406600218185114002682284602796049057104061334935439662353398074229404194645365749445106111076686885340466643918188279409306942973910544933402018554363075310096842884917103836323217707929166735347690110727409233352533310013047907177815766170144458977204341763224773591008316948613730261686373087320498576663897762461567037821762264819490816760506399097726533712255818016470107808347812923077313148830940251541168181426016427556473370696759479576485044841490900443412846838187511249421269382304906694391100595342185332590653817609634078355740013545897373285478332290647825244198201940813477520287263856667337524646229492262957553985715926004890890972516121360115055385909117685061010749137496791835221398846978255641579711898371330772923379258872162831182680118371621187018490852142590671321122786008785993250439105615265633766971630935865528802114371079000582821586427045419725311727880097516056930300107820805966340883108829313221976615034644580850180625010553261165135945362853557036025248164343452791074238679727487783940214385960340566353428647933120236084243356530079122544358784123807098168792036590531332318295720589455610808410829873316392347803932618668698951764156692065884263759011480982048093874779863478363117048866373526403311790605224925830429028341745246110779408274767200968615206351134064387876193133658777813796434652081255279055809089365819572884023602708607618061363918742847608670049248054340907309320986646675821578917806861591350180069570980813388387034327782598696280068374635679910646228419418542450362102421380695151214915199367428213325783649638355427654749676500603097670544162311594977869665741162694877810337242634186347412449244845013689194960347478871653538832180698848109840712079689800547485608729954429386023008149630353532873284184735283952092456102277009898922668719769841809823299072421218743458569423894600970792513741042907786562984880960199807458631635922301943522179262827605327320961455023333046800937388235118234287178015857077145240211065624654215149070586276830844524618650823824233488836923297977878719221622025254527702955499809084109001979446997246972619898957714887186999841808599808047697387386346117483326439253433295724731719560034347573878803306504659725296200907258840217693480764907580900288559348562710132033705192355930128836126022022877307026369824194960850640692595768954063533518303269490517826904254038348230788892395438758940509689893860437398479129666522166774199258301050402742500238230803188231812912125249487731351625476880844988690612951194665714107407374836562379285803721815520480769548628531791012788112414917123470003476728081449002606300028733975927134989679557075606223033929667454801710399062568499355239217309109106712218921022198677191789382750568297638786087310627587816455624808493825073371696881632608807375590978475789960075099711814144409374265179438148981616726196795249308631495089845882820781220139118484144952158188269319782517489700138747708317244767509799175810827367220204341985464153980787932148657817180110160353119774563143513560674561347580201094905554213512193090500673510746968348540832003434701557784990514601380170491964027555738919848286365198812446077502810607213023062694552920685851788809506153406518725533717275640702512622893074276754177572263070268983334431428421285881841422253657583967740700903532969941470097354190966184780101425830233282425293513642493055731796784532455635238622163447402793164252540939100094351128592607804643062248276800462498325904718984447114056543916785841294009226444797420017895576891073829738602537558368634466092056598637908042652723216215048085568418987024938238089592174422399793653558211131366968013446272985719260040695951993864450363253340571129226185371335563653089919762998991587666323088662345426037435256351213223247894658953847734722014778203142974834179982533034798294069978344846839758804984124133341031782461821763429674254305502275051666514527466107395563045847735646023947116700857426269329819023325055027165772337121669527499320205653499300195360340158974675234337604006926897249520072613027365008630473681517810425536866609384134183288126619691587412854590556780302217203906994804612370108770178609003702234369147466342287099757581419102840422330077658142718770327445516995685328269693764205841257846531609849105163065011346989628447873269613456790541279069059304480901364375990010239983027085296008221759996053125545338627193942819208187051827865790545703742145549098399920453976459347625060196032013804481191170518251000994495190366669997972243740899011860175336397022805930775185335450646992859366957530531369772432411709775209160554457636942498312993815885149696780361130314194760247054335957388530779386116434128081089204556151119522567734273212680563400277137473209464667057075022484526881399917568281065007815165987246973941014074288458804057738758712064480563366690042920141164967772551434192325592843810626147312352363928192853509991657539704519764559932032602659589184734414936745956369769014163647710859208937176613325494965183268824136484309679348504742709867003648188717911274836816151785044798636820912132109253415343197569991979743428939107617240171906923724094856948916335420275429300237735079416782231809586346114337034721583389393831123223609185021846409824909929518264544490908398239023088943308234749123014687654933299035787232569407267230035449025005044134722730006917692595752496963761205175759038794416011611510886964486345306525842375033821252613583775829370231354650416334554619819508447810181405718354641254390591114353684280790613472836105747943355500769007413617762148663394072916504930104906254180546745876121986176309987356171240238166887667269021030755232795875717710557034313805062333079947934617525716593602288237360046807107021345561968516690983373667679075290484918744632896395116674034124747944531393882110706007430328393227676605828940209430434741504865959160395085083484515868370356395181646276898250739537642915118586698665927852433870580122145857026924684774571345948123264888459655312337174298580929365364590456258708822820316724953994437274283400719482409741790155771321840397406315253262567462627884238456539345225023866586482139387035332872071537536591754678029864333298102877102173081357387144912507954400805287451433600668985303071932177085814439976868186655375862040243155694869408198914645187538446545295916383612123748940172940349921956206959207639984005570473227719601839690840367721689630009563242030417389634986824439861148529775733232565848236746616070464476956140918571254888549526168959776974368538695306883806093139681297009283872800671012369915135788439915127377094740578779371221021166984932267653839751809041632155811081711766587992449425413822048327105695952538691003599240470119882101209095043101501980837016037215326178928978752296602888641389317753982481265988744267895011612761110740416710789927518973337960180827609998332717448154658028447621444631144683773875468714569164625132593476388991291475105562982951600323068654531199339744096459847818394272479035103758722069981306309096081615336820776847400931972290387551127504649056962615359106349146260209274085217883075898082986451719348583919393667862648306122095601175592689261430050083407412406797215031916527401270898652967788667505070459158489130331716869079392161007065729045025182827488419967082459682952450882836921649327227996818837779212663100902061281308207598235952757358622528707263102278883562314179501389094934237661059812457197835496067067646580342740775973713399109179153970791664742464484753364424753650291117350731434175889783229254366708910371875759354161415433551968876936469145978828263853235715072533554410465571763334880394282300007038353356468037855484085259416098646088627002998822490395441114190107868319246990421201936319984874721993704617027306099621782608924591021530720329459491724352713310178189067646742749084208057686746583142484388368156742723023961758857169901680557828787387057501063912033435294784026367500530484713067499646955828639753099487082509973017048284773659820595860089063512149865858241871967142342266624440016272631488341738442732382793065082802842980108647378040654144831797225171542515370558758888366664629513537997163325983123893808129787441011546455994638094689950835206961673986623861492308339628898730486027902120204558657648083429692728899840869980578549939748977419254823360808444533209918898943140703549520546389609613085983168232099153783763665204667553311240931646747031548141072671304633664552351507951178427226498995044763124528085584498205328620566758820184437582606731363201737365342081328527304254318541698563832394297613051218018492712119075580885903927328362631329614736542652165234660302185514647837463724331912512318404979465783665183489879717956018056018159627223256654150161056063743177358770191068302727793854469281275235357974511783641255214232326429365131713581593866056119288851575573175571610441893972069338974337639837934863981122425994844579280702480113699559284513537686852910071945744040657123978667304595938784232057943351933293788982380675787382486720718212065938247319996997523541103686004326680439219082185424076409949854889309525908357959591522308230790884332118987870266020342191924812981749081499880494503101742929538294362759440848843474370282533483138390459885476067485202929952003290870328550382762425893283065449631977114766119370723878882593486468435107100318508682086098734970441146110029634764743604949913884222910597349260314150069922580084068459166547968746244403051575914179833177864998632652087727454703365956577874503030052765352989152426570731104090313537433746367740538474633033674648480292868895393783416344538183641259077900226545657377413486552367747879288810088387211042796971687824075085944683291727259557672779184787548062841741415677439527457408952498279150490191339842621159974570810195344933429518219767801644289740349341011357862585965329966795908710175621976234236098117775879218360847428116954477702614594302498964348135402525531198688568711067871098059348542801926559003124423044670999399137664135668085605498104544632288211750160217403121883419628404915975849422900802780944318931681511196339550598439748285506249750340102794740325224492403213942414948461146293436001883144370286466014889019820727120885954870553421195166436437107958518811021694357227756897680831837038592585106901635115451076349572102505917558068330111144545410146788909887612363349446590218604579829866387651747130224637555705990876927454026366604327096241873592618344937213477493762300880270913989075425714732261152819331989804922558419255435137236109474014553748687355587052414100767688709879959732997675191139153023373142759537095288213249011297505093809122675066436716383141787778209000220540318351475630088473493540386125268655808773225067930270705214024353603881405986255334908087449535997972735223604130552216724500350564311316959550766918233743012037451980297501296454626065370141177091163385305742678686910394393362229736325935700036798957337648401171919157762968828718070155458535487162634973351654677628224687331059805688952315025581453125014874332406433325470504314570351680532520272285417981381514575284850411025773160361982803868241035987401950366019655391841581146747416508053517672106211696380184435162393955854008347108008462628283937156596158598349042258094233967972437214624613032882896971068529255456567218185871212486279720301909763106801070358931184564342353911896467546719474288784886594134569959744218199420058071122186506571270208608124361697915910883224596057322789214019318673492240521768217261584635723040698385809897701497933758806768753840984820145292598483212959559808616482709154557760327426623326617000211386083147468767987371118990891222143288301609562480451680145188517815092215711467836969870346736134462350645325673395767675862780502300447936387168737811238541943192134345647111123571868144109540652797126956444499489910280530461059998419090318604066943456813289519629761578457249698448864785951317835283131817977235888388338426920243674578154364032775546574036762198495272827051196934273886760862035302736322272823915669632902303260120034663421795810159707148350663396553714061213433652614418889337498176654157405188506027464655900774486686567939270959066872955355632751726491045687343605705733596599380896270741463952915783073790626580967841625509225300600147480215461249825017135944504261403065247374034705784764581220471519092342652426438364451200752754029325631392856667918816848652386529608470367232625434908730397149553568301356520726357321961220069903924126857843868962529687674720645614418209551567731262083617983064377418231505483161142571165347646611026761773509148880327779913738771423097147580213416198708529707331438186550561168998165304521505694515620972415435152911375092295555776900791454355593312505395801820882564667023686420004224177867022022490641079848651706967293693483276344416586322675986859758647830134259719881801482630859334282457453647570015227291904219651733339764065653589024163067076896286559897261453566519943467890996850977722847095564258125042844853907284216937332886466307790045567234591531774742053281877229744273815341997992858504991767401002030762204806474078748674035143027782401506018382424060874168197961743938468868180865448920460355470175915064555058893696874195445261783502376117117043211765370249928602592878878929488639721230609524230787652135317032999951849695743986816244104245091596588165282823023697497535714179571067997395824437770449172178265358707451441926412799508609596707357725091457879848519767945426839891452429215887278953014703707706788817043241306318392807680561593580733204134464905667433874401067310551332648757353864217778161672871429833286736437874840261240351504763077549142889563147083029620422154560487178812891487322926785844891608443307601246879727319297913826202488205616455098976819967785738812847662179117635021142433141544287284592465560273710468596412951896644071358459758528535109646801910981973708574559272423155710662187794025161327380007558555684387959864853648634092197456467146120426742317224543571882546797312044997455479976528176848380722571410234537484332027801964293484388426380752823549597836831870412146461411322273006302158689987707200949687786685879949414942858052981673654927138105883775502554524950628243796839672279052072422313135297777744723399870329330243792623247318219159113378017051889654152193047266105579421896637185769590045476620198738667215334502884322853620458895748709310578346945519796398801339529508368769574916148173561317771970777739459224268660251485406801777404461826748485096044294642625851647487937241484684140358218738935024133847887898959157875819068906790094884649933589077439471810342108737359036280906394762573316711351368834162108574097596820949368758784320045519671380382035001913718714511857459563377723928641771872684894085627837609621973155410702850393011947606052014725623729114915268859781797591385850995659354264479164229970021652814554774774789682863363259117815384500139261771714643560757233464774091997559632392786842112582462301205903678056876560438956479541386642588680268423797445539002894118028611750883688621156957868060713342765364818398712405232470474507492499339631639776315265248892583020862444661253492968369215125549559377543774694232903982089919751539862590161842647382923808067820076962218926051802673259491190818492202650892280471495378717245492447564888445683777656692128335523579650445233480253334899541299847445348576267832389139455595420489435237433821252748564273713202573600699974436127711535164886640995461498112950488289558438419520046263652995782810068058433923976225503675117210674280600076463336375602994627018473732552553329026260582776646570747944862432977659931589206696698697446526498898787854400615427544138630064486430888571971507173417080316894384420063886952892905925418353537329098308431447077743933707475311510377459025186406494423890486982340003534575905556822774128921396520086769428165565634369803532345169709633245045100352067841566552762789773130506403635295177205284072233323755717219746758427859250007294301418628606315424125691945388859707461072590861425885892380753316122564757237883036805778163030390974809633243806428489721821223121325310068242291747682738529702108278388152765639989251888702260107108430312108551606487413635373082964655303538130051218335428098366943282599563047997312069732403699651714674291806723748815097188400819900751391256142940599742741433037986746791182175843002416156628897471682724868585422527637086706894028595345185296723914292762830850954439716139690080791132251358066681432930734648590733975810574401300937983740488438083005692828187664916936289656619983919956833264901232238025961527993623973808923988535631506660003595252949248769894570030176831685657294429201350678919984158093891407419881633706244948082802580383293718496353105474794394622047452148832361540209700838841234098566564880238652724708884477132024197386286760337193399750039132904523220403062596325700594152073002769861654713710116017671812250715317045084311472573370358022870275183075205543578751201174117902864234519084235611021723126603204843869288962311985902848154691144192375170773647492780506852141172741233956128548942636193517899783677308850577727711778064479156392786547512807043795611872877124280313783340020932172265406776723083723527552670202374019066946837647394691237204495035097863500174566832973564304913379896290104082020581789391477080974635179546954286803882839296954605689766291102607716720061008138774953071593878999537324416653821723080992702398382024327839485020364368819170491475792232848660909155357434659814218453538684434686363327976427270416995570903099137600969044516514464736936830710752270424407450522769656394332273231888790430866728005634951780038446820212667098957464663294349782658794271518368163607782012012206215914953886791271478655273333604343901015203045403764899163322910992915622483894176727484788470322849566276208238995290618051037263930034527895532243718057296412050373270004991997240974555953338890945337764466005055261259285771494493447401391108370011801942248624062937544105030072477640502692783014036226319225211477847548932661122289202597296618762971106797123202382419276465371331875343373017798873504375567649264832571682257608094282846968532214018218125899347808685142568473622154246650233582945012538190071736481551479109300486831903800358562666843307360953234856321947603255445438739211722425210337045031690731300235593319800406194947509283610308673967753271498980146500378988268957414556019785370998422538573612756336284352714552345749487745073876946584430305133018695567328253576797490762007987581499713041097226107760207021635862065356951347981906311073226540385709659457608720214746529667978048508414356158909947292422287483391361741601230247760510050926608638652139427052458830305524364201567090764687249713964595827127871421118469982803144227129591782043559425147991035599928181494278572825215600469210885553321081705242031042673895619678394342021828346695493470232305837964607503361004923049384177824043913428533067329096516391334793812996358144775768806467817110867512101452067160110905482538550935837610595838094135589027467214396338748026043819456998367744000222274222595262361414347853080460600538375867075848045271001352830089295121647334257058627349719618645241826573746030152666336073836195765588140012955649231320895286531974391562629816768716166573608542986965938758592254306764135748517819132458654928890723265755008795930367147482804064008427686749718645002903359937435059301693014535697386847835818243248529685147079770482399145298764339803449508090644558771614844702589748866211423275147179932570768992236196457655707413012241336053236044462106154230327377948655979719253739466014329383803023934062328628759449079074970104347391188977226032291755854267984101640448424046517019330111352775620363031393001645520200688527967673198103256863229441807095237113463644196907362551401871407872993605016146631313384673526911347698454571876611600542843556520166709848804586706771404035812577932351399900318788740039118611621597433893452296017094064351415776420781283083387282045146823976917959709187313054392926358147244931099824172097113875349345745958798887209541971767575041756974250640146139247837536318909403341350211031455213323193070856757666006481897372950983906375640235302945241617558679736520791086839425755554690800297871529639201315173411187170885554919891293356108248869433992826984668534643004703801818639788632941931755460291959863043544616114971712946252629820533120728050403423455591665849499772924897717905093562666537638774072881509351496772603291644017376213187844579455235503834781620392913916776590654585247623568821161371242850383425639228043843438196977849167972939495668326666092857910393354890085371266767697647673459155919391443569740287997928938661350973006105510560880750778894422535137613782958568914229488362060413656873872907167810402934480018972025724873265016866982017479490883977249078372119203148920806971155665766906495840971922009232401449028870162967227437788727845457484461290513908729692175265094844874776098451628415464571467438515403235039301638781811791255222042591125714919316565486349920745161052042241478990228185191987192525687399668062270603068481404278838244665880225092988579295785697683988907564209359963351456528242856180338157758726029124943579835755464158139837644245023203208337935972218644314253766608643727353304181873507220359454594187952748079444213895472402668553532668732334661266698482098810552311697640305801731257111002041053328100900603056284331700011569384821188042842905446154782964967201366368981473692638647614175252914810384889865261108768754851562543360196534605039348512984413077335808876140899127919582932080525157337277208638740158264748882571356048918981578562559277362593657907478097977234830154304031963527976717784573382686024385628266834311481085215900383055198807470878667688352181625583190912906579252941230222954260004351397105908963047729706512562968254927589195302829492566852098638939303257868672926818273135433663100901095406361546117045066506186643393724735418927846949308504861309002756377876079384193938609773166383021279942564565802422751413643080408514252521101902383354827192588961347253891052674828123687245149516282633426380889073314312860569815048623512391310080772659292356477015291522930609102198290807569995249704313684389053392349842014389223393587505967380448709247651536835164129926044520136113862666516995672060722523718505385472717739218746209350835900507068789390078350465445549848600359320179609528662793082273574431996111491166942878889675162476083258687843451292413947533973419209499545743380211835348998533370192565357914917925703478402537338173059681337338117943024889877435772996390678317720397119438110215982268186927146552459385153640936249495044713623698464040902258337257514687077987936338512074143646115727790251448357248495374057270516075037882263546862634505578970250966783857980073170811500590755145739933615884220337812648796022579768078599882565321427669740282006180804947976435132117023270536251956107737175060603984951107030898388824082241456881284040027549635515514940126089217971004272495651132470049539840289290517320619104668430062047602651228120309683642672923729898144149307078584759901110137621300931006861523456437583499038066942272781340549214282884390623767010662954866666724610303644020145670117236885573957066774266560322939433303293884256095626166138691703857779353306226373609312021433822556418433588299896782669390524909579786590565297498118825429365146653190117366476195252170562956945241672483754736804112126913427186821249343265313006765395880096155323166419954867605168326024222343275528900624781410100537104243300844457931416072491950838345402991524304894696133937031508146762618630693066293267068482614904295750398942573852151337445712442752978079402372908764409643178709504199035515421990126556186871755609131350994854158885611710539302385595460659592015862659023214249456454418506276995983705867215493852334318096506818928278054494148775736357809326674010308742575005391473055219745445960290132452608857864776701692888828800450543401583362155013860477116195974471449739439228424655669419646874951300961706895079867955926086963785362653830040363196114604996586917604893012190114537728728195677016570550993054752510344267306833563030034724856470322815237886955709078958255151767420596673024973563625305450813698636398107078829215427241877766476170488110196903031441355513561011369121566888499101127914833568583661730629694210637968984910461990255967907428161394411739000219524121860488103977825688115000499347466733470455972931600503125509517538434298029602832640650291419318199562840048891748795754021289856250906621493968989347650270009168093752950410308982657372379903406134224224566997145260591558853063834544286588376235064206249095011141071471829361377612430870511752166591973516063323458669224139194729279756948575492754533982280661125771402788757805933084052920024348119388072476824466504902548036785203749137514651333486549576330701614963784914188952953198048555059988435068500294534393057172994957804464930487400676380060516447550421557239617708499708293984115318310492026782929127537553321443111833238271523023539128469216039532538783823690084221068832011688728001334675560848488052831870659599904120879634723029130864659448438244152059333701824843558895334383256136721504562548987220625183871371138827146626731499445355739437273584611034337468235341550033101815613196038551813917783268243982184305112741386254685068943815443679563048089633698600767669681631792707473711903458906549128554885892211631934443497339039795935714972320287779365742091290008102774116415959172937991019142529148947655396136695617976813641831768766623698450610499346759319780451061282417546939759434062324137581092277083013561778344713725702789408566300561664163157476863409135565408935516555230501823725894303278352825573708678612669814340206386784896350027294680977854565818950243270164491785601061854310078869632157700152803429488689758263431704932167315946322925805595578960891869595146835332952938329149429049756849074686275385775377201580903553988454773867160046485555351364731859347670091620543204180378643015867382036025740821326468385646373280198883332572941431230021588765471912643933415067189752897673412193171484938135235935559005032542732504633784179637951584192464249596945394590219059360391478470622809131055502334675554767093002392174480223331146788384299114379627811499625752522380573865973097568109948912909991897325247016090344793802404960501087437280604936727038089409306781883651187681154084259443336718912355667869160129445187343942866382836832416312392021097082859320375285664282156031070384651312387628321064264444114677038406525719903210427562541551984461386459103649088505000589278889657012938902366151607288786823980075133571563566277069419345636769386691839334372466986125193772603921546534961054394515522522752763477421361748402967882121481726650816940823973006599298335325132157153455849471542336377559613047810399623151287661664723476888908531116405321693542151240665808233787035563228735078879059518095114439479459209757355037433283030099015771359414034268311571750247817296108337356522737463247412578169508980218685216759612317291572812986266566857254644005496675289207597671290986267461575610189397989804965142226575859967875603366828468126797600412052239623175616618962209565910490443909617208776902056583740909077382020995371435808352238825626746029258059225673515515419669944175802994186418653030378522146976642599698247470591733420639007861821067539162109159961062329673836629368048955483632667523300641397286538886709694113836154230821640872028847308060065173393954731862957795951078464578818273070820910352329545974860945471837326435302405584544632724251323457943238179779655897634226236096861588799241176616942235283225613169745870724527495118139952273564710320235732657926262118746129720723636916623420087684286455292434360996408262261138802441942287274775945688761483767714856933466661543849572569223207329888282068140002802846441170326066358735240288570168171918971571159737688360487577111221702260326627804274841807179314951629834480717512853171423975498643349206500260868184794607201546654253941687659213559977331269127251632451377198247080159005167444854670319933231796698493945753935420641717921717746600864141269904027994449531387472778031672282822054920761412172800993869654236002053912587931324005185017414576714650804118336753168152234366108373320589143932636089657868493611383957147238174914333424401643469516986598341520533035871762703001900888804410822333712119379717172369898609336840205955313093214200272653603307003954479234469330709804924859491152443565215493651828792656976621783807975644144499479963922174192919994197964485860736176997522445704306160969391121346309436893087821687782372984245372045053470293970243109221771308175792228662976762348159666881298158581281590401543694888170628568413205906658798799903246251035692068973089963351053000656406376412847195555497595252294429606239038231982944968234026886601741626247047687636518259676886548975966202265683824388630997124500583702951294169287104044001739735669866956884075923234759248131912535290439950190652403717887527218831733753232856529906627302713151198540086423919586572883563297821450649779321340242804601488918224632327922989312208607315587199959992284687951346691910203171337243951063243392099085297210197146295948073984928597075422434047229393496631968379132940204342456015782339737696118614493034834063047605814820565882927325649599633080068484698685955833028411126102596907473976011441832924423559192708603240869668099927476369554083680237263387771439173954944524700412516868260479391512082875201786552959404112921394430197533920606613165189920271887139655250229781440864024716290514451227871695507997669424854935027462154625580166542022189354356530317310388498596655443189482008032448589673053537968418801101615528696384192983000481327686616558402649176298103941518966580249161245575175815496297854984535611378484399431695589547678733624057162466476404230689606828393587517780264321815809541062976599419213274882623131516978912803029027985380333972667714573905182201628675603499285781762554306350536800457816627822567217473499548942571972412347491673491193631069773772823029360207339608697137829094508564916481022361180324083322181514402414925343742396753053786589772590487303246792692233836115680129075300355234310750808222090810713366977561747394944580477623522191535580764254755014129826472948240710858845193811143612524886505784482508980996944826876642464032402739826296928953455587132366890866276626672798133274201331399594179596529568594934787016494946702581723086158084490696913620043563174860352760132971208751264554347111643609822447876516675685684776657106003982764500231338583799826684573146455565213539040830262020754571661811574705263438701006824017440846237428091624244028865994956029962865523108756777290095029927218257036778529102131233806860514097758451257630625961095296274367918458906146096101574268457865811324195067100259983220260779525850581824000619001006632319334567961413963309002582207822274002555250488900055718432883252014139756040711975700261044902680279484122273058309020038301416050348067507301230088749571957747634508623963628905230285392664905194444470605673364423508668954505723164139120696197667177325872723654002618039457539083004334220420309621407365883268947788878553812751713505110997012879148508104569211012947432042187312065002904126666723169126984274510312286386001562509464190434708624209345457823078462678638703224205294824509937076345140622833121010170137777936584071033480761429540403486664796054913567725728560456053375597348539802924421802247488128116924470284943434121506603096178151110805221318910547594634251190323591532392784795869028796363891397697640864713956362796828815737623451846029155729515060919392187400483961487971663035997752753686239617812248946623907502428426938482199933528929062776532523688989510656972108207556563533835798631279355613892099603798391960134712569419321417559363565098330510707168133665326473694238545689793555718917503528414738958019986784239239988801852339270391258321913609977428737743281917928640858105342236184948389878541711519121268016635646561748971989609494456752125996119301913350311694457884919238494085497012869909593643576670537720719965594083023189421801538121741876311461437795143934077838131079821889506836559886034021890955331130836734000890968932393449242690161687104740306599853099662298868629728444861070047436771457707689803614331424694320576649353938441533343538238941764378362730071701787469740564917402453721239054489851093230367304581366017042659582424199876616994817262182305134676818915942884870844417234864676662923823170384803197059433657444367136803478440253007003889780345754784333335949544340542007321643957329714047689211268802119369958492950574734707182515387178466009090362758023036835548978495936592108906197094142628189810923923707834227469963911861230752820352783569254619187890441588831212581343085281614793396271762499273642359482850996634686730869822446258395635751170763982610380824330390913487324276063481330983816160592279596326390939722546601018554022924799889904686098570608107410590681431875534500435366466958919886161749541908449794958667426909068581052610337200472698222237952025688348069069316939169002222542122624371103025916125029782599587722110180766147943684287685604742140768989872750457259070293439895417527187715573191405060020607000849241999506341155019558162673150207792426279130484032005563855098397788010300282311103579368388305535856313390725442714431150794147460246283320762728873997214312719249313766492738497923428063327403034388757767689640318327996055755994245588992400575968351188929825995668914559056425168855232153476139911460052444651231002444617255331455670626851233602397175444205048007723393313160580075667311204381495356899098935776647614716996403684182966148737766535080304726643435654778682238928807010655834130876582909117639174880904100665084110693695664166255595631920847472427441562502980499630666230743916004323595401868754582322097533602132651408743309954350618635400229567665174037752512227758626923646031943670215853130620432628041113684601915783487661468931626302351253107779314636815131547269012346593876648227732479909279648017110391256862913206424572670293709195849526383729433464289810942714083579216530004340428245774083015783955274111777084148463861307100396785999259078110507736839434169373512219455326341265483034645674325304460459937686679548279686931689946324502102986355500533653936386280893236797163008607131787797586371124430346183061003373886869043249150721280628381627784588027624848804551643680027415871889359801718589186783479891546393285094574069405198212415775726818764905146501872179996514918089668927426032441880397209117151138262277053637667251466146583473007112454550334051375414695326654829439041620605338928417531467575565209941381411128423357278439941385124719680828033172176841897203036500948317137294246072053800629928563043503184311912511715118938299728350807848546957142572780933948291490512626607510336070004109952358223387187557870348491430683116823089800161120344224369745090963447354682433059892690172079010965663877244243943233287646678402807345769251552225503519201839182756378783176217331891303085372552607312335068332452999228020585340372837759891576835348711568779780430684309605830664258798050989963313959515366217639791459955191236248211470518687120053520090980068549350302381676039881580625580420525700042703282539986068641616980666699681327155836840991506782466917701580990986207598003028953857632998058960254834460998373862235704809741493419986266333519357349348000969992879864824835666609206592857711552695639942647682079783386733095487375296148967167360765905023643680761599943851241210307232448847413288243013487932955415614572301868903326243825978607812064830211206812516858931240949551893876260832665825173913260823041048938293183933199060310536006454103592274492033091910310232760591614341762566851820404873874421904373978327887181013714906801047654853832501047055705821802928634704770542399684597284015462295890999947833906480626288909630165648695040752963397967500051286807459653557844641291161477959305017470164735101986289586545057161940795053525655268859394299806061766775649944946683127073759355291887862587556720535553614425744993945398654808669474839116723873658489569992723588635206400700587096797295036532915160936241680706420264160167838856717445151127565746205520668781922601270725106143071020740413659512848729014383122076284415954550681056665937532753789395348522216665707524891319849925705374842934085075251045695732153128761339095215832622056822755254017581654786037032451868133575655284655629231121653154576472840467726105072515982641541463096601521739430008245788867758051445650786636814794937666881662735394874776494186426318013622270700772978783483207097861509316403223739066234910972179110260915049593156165350168019352546848224787621284938073201423378540007652087179406205347954078410050941882422986565544910956138037692842056261532989009494415362747967310254028548908084603408750181314296737678110518083173557090969248385423617992153464124554425158458898536674403205079591338885719966992357365450048590299567903504998413366624308191007327193527537978178321111621535853835413111918634078861327230465681499762178383773482237441171869449504031261018945585178419413647993382571148944135391714329342051357581839205224393773621514153936058431235015262357901173103308180322225003980571800952406720287696157381505587725516407185703490139794359834750405267350082342125679799444038139930494393260812983116298783751827412831594235668855291600381877553884999809275371792222681375589186610480189385589227411142556393431687260554846604319301294264909697268735158124824940772721333654264793826891138800749617044942436026400595422211007205861562709974163618071973238481332862690309362178849564928891072971205912458850267560226784207850105495385088147391398571706273462260519160130078046426208519291222592374926147194169216923115166094670337900446374233221301123750196692104536290186245110888967765423451240116448504330776395539236796809679123609417471217624366039388379761582815835465758817633106635614774678051489435066259717106894260830335418038664888469298490481614467435702480925460245842221134563438102374367507198310136631778276451849339164449996570298445730778591719292379964302527820780691225545186740228499387481236083315647033691866297306069010166762327660560501021553168187821205964251059460623709636946162307433089719320416974687068059255338803537689844070437752437257740890397164263155509678813079415477582893767928316711519727954247379801128369293337011092377389658879930550276203875747736142749041117891330368473857641093038743609350795307217811916904697297765816410052105280614680933784766843688387206485651327015004706754889270565498096792753786831926625894839673029407235352053301986720654753824119524442191300881398085396128238038808068536775113841835081702686317678023455166440049496389621019141840738935866599701727533361747952109048810955848335335640160724299184122665985389631309267588470464020060568212750243502249960937110302615190342686194726259247379118737259009994578101813265126676172242365325402763630686752207747242176644286272986264443663884601488552435513729500838869678009253540881353619097924329560886894270339478335682507474649357415854997555495342199346857900956872639053710412027537644211982396427394213329138112503238973992295300150944593788486709331566618320117340912036433098025365791996877891024474820317330563473601520981437395288440725867708252689969495086702950990008361926009994044131940093736841968446005314831925293260780790240470109650143887889369797587792210746522404694256029539323948374895158352280489997063707020096758362177952627766008412281299692833366377307558844285713073665537383734142582801714035515010146068206610755233198296470992866377389233036898623375550026753135542011850105502056338946671904992402365838562389021703340301320147435843463453704852530175715032310996484029671149001571092250711567661965057885218147887646477096534003720708008249508582213407455410286625031148535767753948491764255723806840933560461286400817565621885208102515258020469177080439050431946056259403201675786374007017612284318490623905370844896598757747904773904347125149609634345455353053964925351160249882358016524227071687982810273189329137108142601933370483626749406148743600506253833868376912195191520826366280974922919214717190306435699739340089799239915379862695937322822933974662206095272422793618235675518459113421588812352688791729866369887348358526581724382922266218176483891822358137740520336155572282802078088405670988519098173609612165194931218952818654705362571390919209214286743506991720551735578979561197521033147412511573530265822067247481854154140757957898776948250082591236522305769401907014082872298102701726204983839444803871249109652443163189880352098781961873914048074233447958179906528502068171628442969242160301898148817042223081407356230484397233204050873013612150970535496350936614741427613145568478535009763906149627328677393889055339056922632747124849834234369556924331142115549288866174433255697925242338919905909789251657638235770869647057915601737876603534582338718503985619377255054598545759673638868103882016881045780544446937563796783994073165431466823529786168813109185766412671717283580382033982392338922271079514548835719344085127507297971677467602099060598946200930855195924222289263364565792314028457277396743775561094723365876118399010995068606771933995618217748949171797622552924792580553996221628613932237105717522194991083007929394405126789736850940235292089598625109497452842654359625747980597981460402069902197164804293688494409787582380256037936696319919789850255791474305670580194087529558245569457893223109907863051731612027499185566578286436616713622470664780428616233476209954060399393087172238142045827998931435663129779480533782831987604900253086546265941126703138714870897024983523674464331097892281627137026585144498454707291774990064909501107367668801321801168359404847960321092463513284358202754150749140456811856347374034292491853309208368529498707803792490076982345899421721729548464720625189838175429459165930334037281468373180347752524408548895523697342836305434927455871988490622155500452551444672388969497022079179233988693231282149528935728310190270778471193359954499949692437323031886782025651706252203991639800537184243850415838838470663456873285844342123657006805220261272473655288462297830977984226530421618884345033414964020888502636869906175575630839033220454113854867420074607618467700125661493826811938240217479998484993024743468454020695794365582249498845876431073689565542901884468587575728824714285184779483816137106268299542538133140451769160437415987679824691009348390542750312823364988546140305400620621748130960824261056679795216124985230350735145824065223190413366765719016189072246357995676624780750199116426928651997523273809243568675523993457944747708502385137944869558912275446920904091182664049923545747157574541040889136967043721604600693227012833546768526596899987633894288370807299679685038287087949971607170106924638619524693578695292790146288808789003670489324824203715371797255569067481885733802590469893048570534791713259187164828847805099084163365955898846845664277612922479326518779856985634623332958809078093494916874062018187583633634085644135269828280144920255823679592834202366037803410413122536584384424086476947030792461235626260711071590137731372585034484463629335215981663869704843770975734342668941044757160158975747664671985402880527719450044794355960985304895134944436491681439718629513428906579565276973484413634801542379175292151915164531979805046595987710257705136843082218161410636881982076068854331641177966977816955119623873424538107799519221157767954182579874877607078226099439614256895962421152683646141075491792982027442428201838075334816360297550878399732941040293286323286445863400988889347485313812989078183887243157983648033277743518645987626147481810712848060778131591735694903370733425031822206726077668279396498537285801568871053173373770551861612571460332189724799609523617825676345568678606991526979142679153236530053313841896650669356285624820559384638864341608656161978654868414961979154778157730456288539741191800244302594408047786610335965379832592997788951046020787267435508283482196291787126192629840911196183599234825168674161425892854977296119362312192352427285029564049770207576621040259011242645031382517294941347957888613794955030563434813264728123317989390866390305284777388264931465502736157853670135670460368611105865194688050140502513442250853020311560099051166234630434026266031806863413986393588717691085403634234178491710613706521070021524493707717125544285245326559147879925563024875722968519275196948383010499991538760523219338745578559926816804263215879239435844214977926378754304893607929765120570962290658939038219737903142196177091619874535313644141334350774937004722806285879129053384412501484586370639871541656971460909674012517064093648967309066290501271205714858438722899592689999491831335632062254452751174777395292829889316625555649896766778339441667488270730062040176814582751755871409080911938678320614677253345804232495708175818913550711363107719033227743413587970884448983080529190816974814400845278866748487182778797503533602230205887828979195084434941428525803330986017112043276137801309765579934093952726873097642269350625712018936333423204648446278635266271061550455544266102514427183088770345366694072459805715818237593509334466877343713041381561273619902564579486227759037732199434042109656773883950416973041755226193833110974216988876866334232325272076015627685357517808004130191512226269657496708568342657205217021936276815276378248959227795298721458695678019565330226454334221185960986958773156880868513473162131626298631648021431338227942723723652113000434303617165869286336035110569811861476686449369171933798077832750469848611588650781760906672950095484687058065935150181052104477318673889699817630863159598317338106255086017013442364048975171600361536099846800420725325145891716716144013022314714651986815576347354452998547871316670090025262907756809262593630407778988460123716207361336790275772166801148536293539724406384731614964269981889789202626725167679918802483839760573465132014618151481099238881423518290126458050146260525420249956016019575752140301109114327198952472746416197865084583007730509005254261361584655871029843399061252216539099786273442001522268276472780642023575753092803786102522376780057436760260971291839765730431056463584434819423900330584383401227092605985699890830945830352343271462951644211807006875709810236251759573520945887639405009263438763538326628490008613374846802911809762854552274810893630352989008652834651394149643028969009188830503468137880431935320006567994885049700959855022492139996677967575720101505070331590171638507056106260828765583200045314799201606777248752817351643679761582103795867981117618281918721382405127921413908723640390328887541981816755465277174647639616668854679750264244532066397362849537343211345250981419836343113804433329383589217436606420921113661928597955211077421467688429456338645514453886804700100311461900302178689234590732746233163524202868006115556508492511808439417952439552895257299706226752085544113944236926262255039393718200040482062766815155104774753789451099287893809424655176984564810821578367570761798767661438616077811021376613501068841399430491805926778295050650274517718079787586002662273902829974263699197837019259184349025486684266432906965551540020601495745233534832152456673945870051954020356496681220873484350550130168610850724027526825389257726482815879921036776809145158270165438008350135076310081777507432559734598582134693038016947351292582549626628250885544069332628556169897308642791761306289907160247639809977763523781533074787399670886280770586851480123638795382119588734311373098325589638060762821859973312689372005309095189677154253795690898777756915272701379311883174054268653279316180503520101509062358068879234451564153843698810898301834972478933476432546154057953667603097432912907534547534872088552626986464611572785377523687959478724940683613507952047308760954895965231024446363550786084624176599292032234051281535079984957453297186868749309032382203675556024280415648763864688158903744298079316042332894181102606354498689788642188016071216443017672189968353155051262812584543129129805509002011381376091519253374881629416600521681309810377076955308738998353021780128149660126182884724889313473662963213876558747451400092568090219809958528316469554050031825966238901565786909238826339595004078256794654612800700703571438383976618102572258625811643788726269513048587223353773297315812239714567075371074399025407269695730166309308753748215499692590269293418718350215517199733636459671520092943636937624568013870001305538804953584137808259765538424661597275857260792739624338453496722830752041027059915353890752902256079796535263801946771195998054975131583406188019380838508633076203533580650942954423914859515283506435130878556824400299173555253908988871076541834954832597873997925086270586567938668086085164644931235608488006797080527972139102777507555314255123630382892729571696025870441656827921518474065157788570642863487057331493966041508373785002932256832016367190149257757887569660157280617549459160302093493819446792147045869669565057738985776428896320343352423158143492195665549186079447552917506603002900946852089148765701731682552305986015335478730043379226061987329409910032863246678353565019805849031460531119977821864110008482015232788246119856526713123083674852392674976035399618678472759897732754368341148976316299655084600266411755289877874716126947549056987148923703321964668996636403127377392864939479279249213766221641616828361955329463580479695149675847268409127644303142969203856222438411103675668357573815164403059804271837564055691315140401491734696026910955468086910005306150443916008201482596801618024563434016506584882157135259482844125731713152007221693846068753575871800906420185057659581757079005351277388498666083790201629051254781923978802797710785422756957507609416207257945203225562972225216512367109983284050962599531949567435184321847055643088142044867010053203921363576945848173313822389873218058936132315385074265960415888344875916857415938134359395026845198607575021947286617462283159096048543040568402738227458263294248599646666829065518597172494811983780890405269338421307950176162534409326911268871011087178607701917072560550527344164260969708465937550916253030666962425891936808113230470485007488544954484431196333842239980404156704649138676259335531023356940027971761209912200778945901192230687101275626793746992237526006542862802405489823612849748399486791438484325635793851113720125070085056677166700003393543263087652500235666664061358591892352264434013797215479346057009909710905688626654153725599616038221632724778583958750903272324415372120797181410561705662368470731418596955998430515288167644373203119014556537277503459593568679467756256857274128438206029001097177419484248339992994983241872401065938081822390211525969692754350201036971865513875813818686100047524873247719091932364153538577450606674680497922642187009898000125066802584476630140784102054071577236699924199236481876866016800995248001198488128283372251373217293771148680748555582481434142516824600995304811555656635755306626839726492852490701678178361594407907363321870951818403100321444112100911820667345900988427692971408421256582506933694442571378320430200182733848993686255810966770593976602015197355076147227595617808476289212040028080580365963637558415577335945526311589957653153208042316231697484187622504294831435161401460304879743177738321756962646493847929831993737032984466963131937890675623407558075432867559508462298646587679245001147465924837683615556061719281599698966769820890225054150643094280123059068639336120181290649034184334102440563797464446433639965605399603507616737628121845258607881470101902190461368872470196076227212968187358726855183796753599182371866033172488687983231402683072638773990088822415235903257471436214073008883779985508526644496231575365499214960772059756857982254643387630695099352171958510824183487231935242116323758232132963588013715986962807545096169679885816326577578022082452681326680838565942448725409677681510686530753466282445688222589643420401558664232430492613428329624426838177038838061170287835270221531544102008434103524244734755288556388970787543545983797829309285410267179827152731270080576760115919502640301084050899575088953930434911152674729119891980519309400967590641924948171454925123858655478317377574240240623624372778005967714435892782171407273993269990919148863744974750988163205651547588120580548794861772955754236868535741168289319909395267847594544934389803942739465636072083980646605539195371332920972899839620423316663775701745038177359310320115992664967367189336741377424878822347050204079661778064996773736013884321834837276247329664758567308166294008032860799225825257682990969717805120066910031197582668407551583734024273398874542745608743743865968221896680078187645172438823327007738994751906009694584967885553920883351285864755461910793930004997017555451947477124463926540976497740920679312457900217731670086327559651695830486241483317941560695541649131780089250359979208050281153698501288248026525957750784808372875811422272824894689874660268190028102587343102436988810771381318352745960478251923237769869809296272384273690270840861850292447237027907719118851975680679780411050128646087827665161421587322880804721737159615681773820036554217435991006181998801627855160999671048819390265687395273447256353167346147051896227576873970470617718644561713720099122692137665798623236002887182946154839856214555686586794370087258229063428110889307280843066923253543571968787448398780587485409052136007132713160398663053213264611046635166829905075065659503057590564882945367322314310063453076773670966540705029832489787030357391893036189153752213609098620728526543516648175303533806748067311898008899073266682993824893346730729327363798862674002418265162146425809116884130351787945809239975209460646445141847526171977703859093560479356371756949085103949462686634284283038921761869074665679458311188922563486559569417217666261533458509401197044415742105274359142450337096692043180822541756706391979464578941885988162020472610117474443936921501699432902861383079461562445303998025060864321754759351384720442790355989160934985402468560878710816359777677860119343042497609433302623896343120181877063649910952220712902049102883808856451796673955549997193704625087184910976203691574494083819793558373844650675883197525896460977993078219606183294653229560398974216537641870101605257534752914127443386078568556812558525713642698318049048287834021123232652528587633619572974313526658828032935296097280895696956439369833819728693060209842810191640267368917297678796915985916056477340630351725624522668798247972690388673412362546607110557024383360937904725264645999459883519034451554057184894790423592704325022027268771515669208044565848531555697847913503487051320405900142359261419066058095976782913873019414061166822216150032499192343996966418735471186689069714451165937700586146353201593654517849422802558889460314928412020209799510651844414991285116700068453166660701072577199252126882440946694004911247216716487083161896976271675895463514967756168252756049974693284131601692076870870900711761445118065754327337225685072518165922130708028053086686870017717269015375352906192123530412879621887826617759693928929955117030987965691912750895215158451870414267858446947491901747666078034555139558919299166289156292466852294655695584874046345954351182567411801552612804364762726820665475606946644648566362505452106270692401004345564009935562959485804303751654452420602981678900342488259007427563085010993096406609842205005286829631284199999362240526250387680985693965297808478729697112423425384612319800903501045151759375880616556297680569524219275588891805846981622256238920352868592847311989089372752182413331271324149003272605489736232227565257689768522008068760376079000613414093866145896115008920072685455701315572060618945524291196524704076666607419109743431947096655193884828500563474911956668982502669706300848974013605045495169096614961193565205365912466851520371264459478089586691084673488338451832662913391617200468049106329990559542645165879989445458928749549260605343365993955205337870954300039253988106734692383358376885536384662335295605712967335410422048197588790248742896014304539630331912252690042024043009874564511016081033228701554359991438274607699196322655670543892271651262845254747949246012155760055825569500367554334710644839477789640190491094192989506667409761323987219412577701568682569172898411109208987866478734368885051172112242056833968423413997371768224952339486928779686660497120514535263884731250457744067184893950321912115860748757218543041929104862199798628198276577153360507037701998819390407108145679307960222496239542573227120245135176611094862519918772017330637220486562275917206142199623999808876540817595234740610656189230985362804006375245674713328065335220910037067500348588709874114326837813685947258043418140409187428051362061692676817118754087618135830486954765740461887221879607699507651272963110301576945407878763374149654321626293977608185094951319233604134299754890403079155889685450998096629966460081332993746343383356915816882078918929998220570516265583936911268311808365471653914747652203052254656687525508101328624674483588362445781013753113879003988987187321108150465924760445437745548558204423777134389954696458721016382947913738278590109721458686210563763230000786422720925844275864083532452017885347888085685493981441983725154125389193908884910800851161563137114506393267421754765962927654865228796581558644274430540315244721677926605947381188050449152967308883973399197639053557669476504837295309398610241136604954070010541158105573384376896710734974130582553922532549806100345840042924218668534168268312266207082318826948704532597396623406736269014840537260010127096825242235697613152137406990074838568082194356080768545074570906650189226894089404195867199390784448838646126754142131712778063084105598486650594883144860455234127528608062971426312745050160614186124609125268189046914604147375674925121074317447943933726760446493430523815309325408524895444859030202719037136107095164888463335111947896750239526756992770956508024880393531715115105741547418798310514193029689036550542833725814114792484051843144874801669363844418948976128031560275343681274446702802350390778944686627782765337009048610759432505140243963275671897471945619000251036862403553605975602310428403761378483486729436227902715251646008707382494624867824293819183397588022714620043284908618962098460359287189308414116569080959263809896299137824894199656733386553727287581854555471032432555529692743920424950547899267514569810957838119248362910858041474815001855043517769649255361230911978780751303843136434044239326367111947071683141476049932234273806945839361634302850010810782088399369154222930052133050016732928419141434226957036481865569957754703360550088134277197178439702015746202482821016569767788543673694525682704852556540022011812431524530263228563889925500821390079141776260687686993368504194215414814974032035079481258873091069879093363946329334189149665810385485788396831490312171201706263767136670163945002905393294859582743604725274457833619868369131531649342293338521407515685750939058589154290631587721500964522195181360731685421112408656850787235547868522620079860990873851338756961627173209573751382887768739149939316729562103386119779167682270744294112764251481536764066155678075196253874297734979753309326624305723317186762486103867747888777694065078072515899302143618996770256784482492032713929675556084803248779386993104589127570376818168147294365058747480468997864575427209581334387760273384502010413551084675447210506545710587786831735025097649656592924303127996912428377767582618936512422558582886386572481802416436406821700984584155506610852995059596764489846803945338426339551862912294590934121469147064964589507991737635831111742924938970743088469466963551852443642652697143880181519467694352528249299792688572907213360043530510387181668080200971424608827120471334877544087033453038553202228788080416623808461814441274866522682678949687375368762570726733570987406751207815682392895975422875823157288315675624656312700126828513398521438126164778117500667178959353312724503618634451839235096482144258830338876014715853427329336591345994748979022551345938019043712791369465432512208151342153828213038113591076663808720519458737890036718112571224902307625664599613026605585255441296910000922482831092249700950307292060263119325759845573932669062184372517096627827566231831899042778350822357855963947999609190634865969355274877315980511439440949760870637751337614531328727370631600000453374907062070783068997079400701386583262779544539735273005073980247318327931303518033846066321171077446176556022860261726914432871088843947595632777302939154857639998849219956905183517123212260510683002788494978916924303010044057326501477870317844242274410159853560278208694299323730535560795075906525746965628194689385845870763097849606207387383507910840148585020493891113800641649630335423564017088615866779554837301678972188447358426959226068361676809832916776631767809659047373141877184401616407534121992954746768595119775274772304068721723746618950272814003590200573338232717948363349007529763660040134600463833248698478666397410112795195651971089228644546125949713905249968267809658704602104422194391962147786990541264173702313514526615480461166188426338906012620299757059698418242783323581912952934817955179778177475212954914224483447661550763061065884061731018382692011325687960707234309317141830981015173021040951555770213237998696348276306368240741770839573092904438585916875491038319396144875411975266472591566334787443842583907422908933969014819345854721281728014944363586457390523630749895336559706858679774637374567760114464420690116388199263976974810355601249483681266824734654587376373129265594386114801313342262283338128431863651604770200111876328572368026091403001528787773437304143859419504873324110372418271234150817249553681393529677076410464787171879110590711560690042240639775046044958151086633171042484465203842224813730732919767192505536944582644633603702147978681714758812783291623584075134609903058760279122479911319155195835387157981148864268288531853518326696663533616040051023022469988974088862388827777685157747254478993609844429506576800186791640738911029587398923968451001043813925885600565915587752270873729283036905228959858012753200127685124195036612317195639554275512220987088327557375879057607976392584883516921616448953965182004759163031136322459992564026865588078402249043914345803863220950732458145247724100922172826916512860431284227750506538979780385201883955450880149398893735346827484908097210404016639970664391174868495701738945566365425547301789888010710347664264317342922972329134696169870079040881638369134414468525852310335788026645433568301325874470971919036699805184328256579257895363263562716200532914873811992775158914110443873960678315385781430646431894372802791894228767918020760939102351567595328844610433142601028377215278336268731031390076503555179103784197912791448795249866532635762643994238591750214672537665449750735882749776134595169648850641418840793302983250194312939464123879449858365701864599428064887764465559782121077181966813687446686874226918615030343145315900898467617820469985462849211863687957170578504796296277856613123751404082267377187503455575544468586979569149130188668976954383045084164812635864942819309745472328807314624675002871238361418667440022114962296997049196308141806610006513875768472221439114563473198786619858952435156853551448259726737567625941987492169385085022066724769507516324873175045188246411159633392368536940180770150946426380990554602088521315342615768850772467665170504130711270516444212000922044048716435986174297854912362049988915627740629171831798587376914021786225449300762805681244085871660855800503791250186756541738360292084499349911921165026870763903605329355870223977507549259876672369866706433571929349543451739133649805259052995096846855642971033023882642240826214474679380235916568929132599538757025846074214459858454879724465033613634510828705689629607521004810770531408449646485347613446983844479834494006170445371495148353334025723359666807940411239403590423192534169260054370191370924320885172574607433178184283075842823121497957440955325165981060097269002463976919086258709588124117511805334968993449272228065853162846376139029479676863950347104477734358409743964363711865516916679532137850064182678565020844514078615241918367329344243153310156229007287824028721795877797073725351308388727524870242054047805462349846277505928028645531761804041306301762001232600391541987051173269653839878973039681372010893482317817478859661254927872294875116248203526440342566895097125765072992666918177722718160565064988232980780914557234666373446246807170230946524170202925514204719235454606708365804739682537887242499596412869112005808431440822389247726304602931537138813595876066888379130623708636701602310135151686404535264882917897089380675887197523917482456784185564437661399489452722215616221792540642097065544294219435983374994931895477825339817084121540356724947662757750744298235173236756777163654293219772548498959979052402889054397288181693158921019970035673889373751524635974406244528538477349864200655748036300383139319499180510726474492839342274384189732719147154965281178791768722657304036151109520735485067858147091410614151877167321897422393467953738388212142455678551830821615461055794153563451654715888306946666178982351515490163614447783883877397933484854640825559501290614978620391480623024216108691223871905388793193772777025458520136072439968364214885346368253272529460192267507149481498492423162091298005110301367635485680659554983644032661436388876615708889735518178083792752812155412311849489643043331931748104817933759271394195061356876319975161406926379464090332909492191964066574443169419365928791942647985059060573569107523019305619977591845160599247896178354410154013842918487584854221604418234978074333243975056859937415803013867831506206302131051280916274205369334495855835390040546945647775491584328986526932030640781168874391917540987638545775350640195094764641472989913012446090673313878812630400566910672788901907831888024647676514280162248471529403279587995999933145377930478786019779071625266106084741485592499354911488137507767661616532173641374153061874954466781374952411522892648472896050754081098175740648740057284105136701526868607870882446377288783841596967805402372180881390280565854868753833121008252900563092473086176275889457277617807578352418262238869361076722642477020195607966715892155004881570043289657960756944778261416219116682197203592005362610560389090566215911271128609158448250788143885902311978429557866609646850060037180806313671705398543055521518468247042930511954855301104617629047128493250309475526594574796716753809422110510004053767044804099506254669529638466105873411403267118229786059906439432446589985156967887130073498733848942215700131803715891919207418317519721910862521003663571492612688019541832748933440949597064113404180567683615689930311887900736832912502147043230171265945151145733859278559947552979664165037617892616172518896124213744269531089276330987276352333239522409821854974998630045525144176502049179845041740670374286336119998248999849496981323608443307661263117522520360482159566752038652965151710879932383328826949063576380547583745539127479547316211710843135532218517012967405421966275149134448801594124316577945892273866812568093536265920951776574982336521325408938231053366358532010634266528062994142998248175044099999687613462350236744550482027409551065825801844365316733659310271477220782039168911158737763138422714251761448579139691484712894683736779201710167727124237008055937325426442757530092338877700370089196543298964337132370983095781153956532336943728402977423320287647613184121518869527485139169746208581268492867286110656347176548502654027749015632935568050854836398282596953745209867331354555093594747729397288218183432964403499106673518608629807512481758146248373186791862927227071387844718410799347813296338226090724047184970727300276592586690935296366314945287456850906180675015450464575618838210618160983046691769825274034541698440528654139551835647199298924805656110813695703790040815297061319388599454942791778398967799517687043623822025370650847136460541038379987199831104994691870792520486377775665963257926581438864612979716576312098718350943144011986577494587635101379556028088902639280189514191324602123261316432260535151969925773261477125845508784879057955446266876420143758602212542048002404414277117885592614420676947237896411823317505667311675139978522840536275031838698294789594576202527534154067753255689414884965397387952560076333414551943585072876277343732590448984831279628208741984707300667835892513578438069612443994936272050936963487402619776103060747559255302706291389111657257226201045722888001383959535475845081999202960059727333422962917960352866203443422765227924367091280934052322833716111575122712617335699561776526703625840171370798939525177248751388370005829670951492503700691824615757400544731502154764798821655372997106464639644920834137109746982744808667570778839297643792892178588072490631321814662559519799031261017594899921388778909601357500633241063202327859727164499799598397851026569123270677625193143077420256497325821288050795121237461881963005542362661828638772737789136168384384983635121555243491885953324030401069828912721687312934582058387905199731715600363024806466581021819844198810261722298393257383214345728588958275182612893354071121601066291175497739059762715324135540076120863001504945320507680586450833821787777737968883925373052215781483473310813469286928226996621357925781053830868361391673431099423915821839218524958511134118450855018256044817843037273031912888977642989518823481584275491037237715733583317328972587736370346039789162052269333943458264553838007228451142814111214682918549642140711137154117092270160967033217977132716617106132345292828103469504321765507951500969875877816124673429929894908858250558630979338924280712730965630567323556453168815061973987175825974221241465681310460715789612729243695338897469613784851938652267574159265997463611544280211525537366895874912833323140994954301800215059443629069261155988011864025689557734213884150458803950189148420610317271907646295425353164993366506565498003788750021282370166973448223483193505901944625261634476978195768637500564654269605634831245779849478215087831963137786119556513095597294536013280166731716381586219560030845077151996246097436762818811051021701144993652648806860891068023556020705882680274378382471564250177344586034773046117058920798671531815296059346162853808390405531209755903804341238895398437035056411626650643295621186955454026438374459852159219656726389913775490854802432490606443060618103415540591551410072329491482410217927556833204263710374193912728107370454316842824876306644473021780381232391992109995778183541458861658294482543467901843159240290025522093151165056818144915835277860860095084835799549510270683616926044256466114183279602169000024892016566264869055502999488251164233168957440716161912405971833517513873077255224818504232303523125020052984786622256560565755648834324400109536793079143547495053445709027312946727931633963042144276592253415883527593873009363819475925210019518787897867793979748701243186338456126144001104785191239397339174541793684577370794774148955705469969851177607145593765116557348435513860976592787562358938001433328135495520606833389875272272581188794093299725804419415924833540088940119074854514134988982963746300510485967154204963725342216024712109019633956388639783841939602213043468276042224050764774394159568692715607562435206789861615532760265811634931794918113814339908017744980279948603729566175593655562710689077542501224959292623459005052047636657323865056080468654443095253466529073388889447723666813457595120310202781876220891589188742669660985920078643687734994579250396606549538202990154037288307018236352196628205222053006554092533720291153298142896274247336267761784860466823584918887284487213237161715515537825073769492948358751386712151106613520672081787967288840231071209839419716126514276254839573501727901262714467683485454259330169020883174224850459842251476577580455083087255055027501844411246779509673639407345997163818255546671981183973401105867203580074885953669847343531693049014309235740814931850871564399455911320967281514713502482781512913922062631035021673238461288693588000153433767575696227350636083227280012776547364685929730924310235276742927900782080435109951041407660852098952975978135263446178460389157365863502800014408137288739311262034621457932046168953150699181018253772123570720646534827245452599295047152897082246048632366162172641024254211932011679187001077793803546085429590226895635765545024225555704502651043613501512745989571898819267499291360448546610742073188586492739523614053376875613376393160804978075371772370369175050494351197083558986053055592645105689566717474319598118303744471637341553890233200913903534548450503024173998653637295674304936522509952176825389412096226146333086284519291968395165408961382351043414654986426570040758118003012341699191648196365750262980957056023085721499818979817701523791729173056086820187802364615542979182236090896563653669779300837640971269546828304462610643244444486765136243504940246103461356565996943631403664793213733816391350126606047976161921078615700668451275343834826718751921749308783593140091002079051903329068400017571097520173415691877271639092758763070632639789906802413142601766372104250617415314691564603418976617513750299773887020544764526747570782062373997017600617673588677850113906504706056887541710622242085237452113127743119256959418847255225863240209652959356896253401991981816769285294826387585532649276597282013512321368673183429275013801130957884308805372846379532357005133693005518188381694000045668984669690007135579936744824234927973838513653777565246894039552539161423786652730482822970881241409411364329694301478337419739398590501881161596933508156169960254992375454097804980118647862621132293658797677432892567723269761273968784105467910566581466529179800694200194719241787848856728367188244250640353218152547036297150147556376690496243736515268196369022794257569773794965904300629079311756578144610597606148329135157586303160545761089112795755588164300885244125486165643349386749706085427150298017313067199194121169806075996548079399752514953592890551191572694087291589320992067863405424695872936260972052843886898369453898124511515684592256709703943218158652413364330597047437395507113541100620635580503451005577585760126874226308827108274396813946316819848400236973796224813679243177659426828958798823967400716891862280036307631059730020318380866646078098594270885536132381888585337925952939871274703353271916992135759558715680685998894225365766945001682683088034852704525950545416086654801078668088767338644674883640801803593088109760862836743111527749279079797055554745284907065570401006783057219603476081187092768409101162436071327525198646019430313083349998012543973863981698321172938705558234051544350824099466203301556510591254455855744273010479408078544786491459033126432811908434708266582217799478565215668953631290188260769586195598106788038328699819181892975340084645857015096305230746121261844475492404316512438782635680969436202034420801091537986264435862167663655563828696111614220972734152667685889663830516979261090606230609367972131148069127321991107933437972323529355041335928584877939109316017647673314979472067868816308751905256260942961187181681738417941963565654951564946228526941746348738953006566066644796214809912109215107826990227331548608819771583029578156036612435126638291389400175372473207042754608007976091422882421012344604567787607974702278744062474422766052708390885430510235330319628035081038882559453173042446564181165353502642623584004935062898843001164184230520293073891777653071802385688514284334640372864358517827093346844130335874324664242441987844257337713872534549008606695136441419042661749188582816526890856245881655632230872410519663130818380194075927759887566186127692346352866738695098803663258044556139555285184973654640123767901953205649034353447226463134511629750599675979402743085955694651421139414632484374652089799983698760865715464097844695757009280576156639648490434537359214661387240221674040183784948684838357670170408487077513509775903923516023981459431631193637061929998072698962649201331339812379198586624590663792295937575483097558415827772280222126004393514477617501430072006692496909839640638133443622587961665266769839883582906219391794226431462930461082912670926098704501426687242686396309238840734665906269416510711297607107602070931206056975664214718866898946150291819713390248216584778736832827883734991070898670470473624592222250629896378255150752907013415362242707081005571534499916346253796286806608213456357013924991942216416923995454563983221539945302174349594822471170417432996412628206464391753530741583545860306341322110754882006674831817197294058251581564627237553122436176943455327676621878455365083858621783378636750605539123750525689135047797001501729373200113097007548442898221264834484426370207293867607141562606341313121373482920118934540221209386073973721550702260172881933617675963973575603015602379343183767050446165439096523581914237090686037131652534113045190524528246002695978803037752332607207322957579013690541269881972785447169546060292669538192143306067604785985042494848868058021929548954055960513287516878628312845289977211469329550885701607777302184386174522112561412971977884520297150109203148712711208062762846794995331253450372111209844148335100430247920033018382543677690423133789648363814080534514016008858714488821817210261388687589043330670397911660795181945695007907846617090262068245410102606900251174191079652998394228751075484895387587694139162791271593732559482702413482730181415823722447819421202284904192717688462960300333279984633323727495154580935976874646345661648058474232185695055194792244418777750777626535376422332697629496909379944954024190637297846687329416991263711200436292804102926832035419425915309632621648707975938735426008115439852951615687000155761450570583831117862609957948432930179973895274287735061388441751553374194015882012115472138207636080581609291733687526877869358101014095971023034763969693319551057845520281684064148501492435541681592932794337972878451631333233850005306382822073283490452623007420997678570958668205512149884786363425231716862200282339287618517391868551762786175427899429929006880389474322201733549351126191114490060086786922499511911259650381216301143931985359878627817385856977763808391709405380855327721216602359693744208876691987275328894794732851813432907856022031185669317078632790006746081009791500272807539714390833507631037039700851304511046805512415769249538211726684608332521843804875506409141156766122357509642113121421412592865909259838105225308599286850738987506536279306541275976605130615305608984981359382439852731634243295175952931791854933150185776584248719990154605199221147144333502173230691136939015187173521595739368915412837131135876173854972088103698227841134324208573275157112781844868295234633189134655174804449319869403085925473617613982824206719823576062991486300647750054714336637349540639511384218984196741174634919043965799701519827091906812807517507869329410988580989276633666356237304299441579325578405164791157124869500159658247584561483482844077106188989617545436575150621598936533386560403124688267504412243683578457016566859150189417569974228301137437754288013254044440732612435925441682572007656331621375752519341455415623405335198937836946448107314254952438056937350241031768130155898039584016825927907581087515129704300495510567128191028208341140052339970500606754664705339046585308860103651007234222073261309248972435529629874426873032431276773065284779039399438676981433332910202170343192158780508172007981265649942616291860369281817146374032825662554814597684545632733825308010902218216606922326878371656484459809902224268478733664048788100420160836379019727562821178856287848757221628180636336744502423468440416806619213553312497335074403616595636251026099966664741938966183766504161377604531127517597709701277045654292943100774343046422150680373460609571183907631170611201662002028906516624738812902642260938186893942311337284619183303873016271752844828781092272725550687615125360833297942022213778467622331418736060967993822694387557848256343737316192098479609890145500386667155668797316159292751785527626897755347621092809412574789809063554353061713632291804760194250018723555905008725109663217592692383789408513097967945933116274275948289748995742192705347658384802063283975335535401787735296577112158056996278120084554734700065015980337252747431444086893393019809833208738318122390590248825417501206537423157555504573220370784526467007274598425211185032199211145902152455036184395710125047971049747629100697843988313308487999753465837102296389843447773318375404444011320435989541986685306789885401356775235975741127102775110054175031289223229768271316341213917554954901812522897390962076083559058388542516543483149067734493807122292898806361933820761352472300565358988790751088652211145998544143359146558402948000144937487987146472826345215640691482495567641953079575119613468752032285781673336300464774831310266314229137380062952277483478015880713143469016435259500179348800319702615422566265011119548477905027437833784367104945208008557105928881161508329780201089618098154675161545321012135206633955346104079299400090648720143159272416868442092654450468197372295645445568982129109283865947962325341847277922187693085024671156618192181813779273602996471442110376054895973423965825853488382312081384768767790179995042626127172188818813181787091027961355584793149400079944925616381233530000587356691017823397711129585715706998741245051035335718235325275054850120452810818137464424575110370133339961331705946325949309352830889343008890528104288460893313291487960318460311581427947006501511401775648737935024903852624221591986350448673869802081196208339673977211068306846171532964173441668554778176774068978372291136112152122526851966003972531037206389907859646702033792856744169512066078535187332870407951313538877814120440736196128947877313525512342523253306220371604675623797799594209051823607037893740784160916204705066661240635968477702137693204609776220155896939950145514280811764615761427861177282016312399395588569339167997567140164345122836936964288521139596017983621432115934306327633984931802794959332493648426735580987728172182045432137575720530837806688779945823550663660147832678538457833266896504736312670050956545104619224995050466433890549374284273340310421438950741517439009984990967469987211903758728361766507155449849390509010778861931575715812551984325837975662421821784100946569734005796767902042686272537457278710443042941778773913181089284624059893490984072605647919025446679963168886653185205303680833716094701087826924979068061440763189081976955584537608307023696713157919972534302884852940330728211912636804967478098082933730095951298258161342724208112585905922652894433882882172326134534906834787746173563698542880626354562105865039433335086138525069946742521264274184632694993466634203678062622578112239489501217746738929904056417834357997857916582035019243537187506565803982945274459761653073218545898533385224466407428964547665213077625050629993861229448979878855702483572855484967949687913701260890972116325024951358661556841873268644802132790578982189418507908679083282857560419150665252571613248263938700247162317066069890807091192971006065495013911240758727955829904366605208618891837397243705137072750078109106077782769879034124691564830388819552784955547380963435611292139456893582496726327207930604521279518909502910832428538872343509655267106415525003651733433964807598030842386738704901677240462975150192821719914893215217699211675025287181547087208674557491927544745413875456457179368808011115581212368719540520629955252924221895773854216252226613007998735857087527559891319695913209326121942502678129511809660530853654528150416046348984004493831204724148479396629149687333309582019451801305668725225376499891084297244420920312149359264241063541678004985527650151249294208090830120702187910215494861913560488183973960383310181820740979610014468184928502267944268156449998233091583210529104976858443250337453812246773725500674599134993113246283623320925963556492348572684981937773193280861327603404689661063346820926489632777314245817571444111187431831003876530113404991741150018437668937190168203420054658359125951841128673151913274966918936640836792165434999413911908131417515040659543208092143482100084581346786014084711078703902784147072339778887108896712128750553369500822927992426851979191293489792156264613742819208385659078852624652049568682088121531745278517476167208993397258364003253413867343720702516576336575094264272806475768543011610315858293034336093488680831393270798080227184833777919048794809255010623568336759225420493300469047275226361008188711103190044774724260445120496112034466462394521354945822794020279018121956634141748070917983258684855323431270493012242189940898311889010230955094971338394514993254536799753150590108551249692374031083139166898919479017149250165726644536161486596156478268659901526448537306151937050089904955869934676944094987195305529042229523931999266923789085215308688518982917299545354729619648279409601742435900179197232210702377074183281794050836039667524779485123767020406577235602384787094582287789987791032771072638707038861556786915320865820218247234310517210629767480390253967085357979741165365174110311623160824423650377868480208102710097184190706727051874292954131446850968773275693966653654436549907480257520514096966512405794383228089100010960887004674738313905145567911984231069576548264576626500874179752706040319281524750299097613188084141504492864450714285474243026915824296193686906912438346631250032112236227683567023971880841632568072510848680918782026271592217339943482150597679117789913793583573644416048258589895139352422339364353625424153587127419229953003697306231287356794861865066646754758802538407799298993889298724850701589244637636252899052129771858816617925228841511194652207063602970546069678807355676450705008295804797845649666304568835546526310376074006816845245692380662703770959489014737824157002940750329535351556124260057128977943132090738948494646948580063223377774518972388313405971870176040311266020934309430717021535850583051774599965249037733390396614204579015848476319044282946553428213585147267514928297988034603191705732681262972026528544481013687187358834293403992498444513359214788959002274412426477777653759030304129487807982791916168191597693469120160035501124262032207612517069393528284903633894802765346645668704138250065677701593473178240482676724844839884990192267143524240200839990067889707174023386328516647473067108828469517173385457285569089662258783304804107634184359380224992952808839707395270353596876607867739723014265328107923419986255295522736193337630184375256272219730744339955328760486796101039718228120915672855377344429842692914629204241269169403258982470280401207519299329160515910639074048587060165664628149643038019189301724857271289790688890760800158507302543018162045917183347816883202906602177507180887636666918078790732530622747012840245882395944346092491676455046731409188987498732266842282479240270883511550657233637836703844653642685491352222418142892520471760250780964862814684256256877195955928843668791891152216791386087832016528483411954225034857701362474160446060913585848900021234978320323910300327814578642719944055263583607039877894317809494313102981885476377851656660111665969150018544250707805834154471173810726225682616790117559980974048365326084352120310724350588935045037090960774581308345160363056819564300811224504893945361608862259225525667647491388718851100358845814946072491809328498438841458247807324537702842094682640410728857557397099272539487655475009641316940013757236455638233830584485777972691595974342469589436978196884084107234804581731392080323584023584210409137368731871465562139227840648444213073907044901897430723379744340921001460504686858780024065347960025268327472871047223614281831169433431780698005063111008603331107075649631888591638668186309816410655746684756616837675908266004824382047579563485540898020863430492675686793942668431393941119290995565922705525292255704654962792894667327864150852628688425817446057025615223184841844503572606595525524839548551806140342403755202757056655303680432239654685156742640201755705444120748287490088569888961304800737961824152313101039113131844281216217892671372298387504215086863131705358956740179536694016898010253840598227462957126837835955980689372103402004431072619448655493620415439259184164582473319582982016777558929339280241590315906555475561588783315232746392513516178182996730437958359877191073132311327153812473880182021471564906485035094971728410620507676949827780098317531520098767244984864714646514061755923360816794086052572899541760110135420985075029254392234763467825523909644469972482821767190221445476869224931264548205370681150128366134613507123345048028318285105544107357964457664415674946661361811863514380047089796220427965059159876103190838912072160973028571357036685520590560109220108886729195789850095933330977578644121705335793390493134102478978818497517340764951358281168850379309795441156536804120192795303038873352000232636144435883744667759626484945545792234725315830942751416897040676392570931131495724566889481816840954921638603232856511213342096701467531147160115637084870600233588703031848510496284811148015354224581060358494639747311376561461216451073010686112134076834531585196263158599044480506585206426043451413973229299184063485708450370400166891922934076586478187450065167813193863920455898842901918831867985955629669557691869446227839999199660098443094806349331720559688559310002231765291394218765550710825563583195990739152698192498165837450502701115250390856436391340213902874533191657957249122300448281092811542707640542543047669538697506309723244290572267108550506681599900360335862328865236423675628990071911491095640521345492014528114790128201359693520491813423155485183361743189251368843446586175596299956521250379885423932488949897387612815239860346625088006943448553058817451849770373242981752620680552733473369451476313544046337810605196626203514835924809378989816492646173646850221930616145353523302675181990712621217048475758168427283760722478449415239664885314118994519488952196892432391514982652622601060131772334946665336236860665911041170048397175545220290994831862404248187781487825378851311370991352451620189304090111289925040689056310532876526936198985730385910016294547085953384232737317161523718153155504700871187263966632480336505543243569425577630798620845082269779835868396535763766224710412053585817770152778115305815707836918299070477530755229907893723613637030137488970232050904984014228196267834564635943278997629762379874886399344828799203154029936790440148494177512526419946908493278411625841298272407386903095548381566763100325752664102149173830153295319780334877564206610614615457860646443683267900972328335920636300284506982890291742137108182773013794917127731721053655924499729640042899408759187406385551517945386765481264732725672675143662485558480448965443446929110893666498486337680394532036333073288416964444207015351506681265497886047418868849235194255189697857108736135027290084085733207249838844640690552745714226614668539173195156512990130707390477636817607176723708923491346255546266698847369971175426260246551151727073475433173324815934656893998824620847483133791859171843270594170584099565287710957253690210963368598771193108087524632286906081759905108773002500944002565246271723810773678656855749657910301196314707778531180220167504202081081649333302917920015146409662161374761339629477643269914523935825100046761590611798740069420100970289627820462833439936669256963417845444364695793646322868525863513379123937381803827171669000843394328492459990447951071631782820456506105817398362854110379133028675796210142169631666248031446211338903080453771600335496124014514808417335407301772411813350663491066688075086354319592575854126290689094212934414008340500598456661795769663369672314591754924680002764702860458151664814508056368102458830579066470741578736690922179580311221161981193168726267009852231897432728284720308653655461900038408785649770370599894133898795223591532852921202126791679426615981660573050311040820291810102983301748577043657050843882195072905097157633373333360671326468989863457079890769843212034477048063371335620478359325568535689065648514491259099432372075868376053967199042384641645326506006857111853828103921652686785550753797333912126891434262757940729918293640185468109406534010520533526305968030830055675126440209230973899323949998865268168995915844081422840320649408588083779491564679636343216066585830091932776619661179800980110529052056157119108696717660327367580758816204632382852324675601427664433618447521194613853045470829244652585304054416138163493538190646482810640291120134042608001120826886163276307098116477547175756165191861050070390063214570030198778054238718295530676134775899516483779685591043266863025735552037601820788760729163812267574261569015501388666963959690187153455138962495943049308647219951507490784231994684854120913708097788728907731274132788344704465073542139167202821830585528076951193207815624855351693017389688108263835638187617726093371390157856002002180623118514370223068977755835036004651850844015629935256124683437804303538865064720899597578866662558851066961362951021584565437955843588436106413921066659293031718463583723803307944120886286838425325002187953982879926423144492392369747495288024743509495311669594181797637019332605288940130490691896436507909858448816808232956359149256386988115293901408670798707111638256373951846586701363819096183781777015720886543343512479110674534762371219192645222571433066818779494082666966541425406321860882342745419068611596705695562836568049858508895902447162391347699254893932154918723408716314931994518513678871513420940353396166571855010029897779150846983990682288246817610386075210326986621777907563894103034795514414046840726608183725088467834545489190377333523840761450048972228837294298381262583753266972800625229919646894526314431745121224191848001968107510708456089640552375550700442718005152650498237840212005581117659375599182204199911717007381590820952977027348766621169633632989025485491887790268365295176925410565098238390396306978212091226834105568887192147024637691927290685103516840122827876845725755671196133629640595459658790182857773851028232243278658611973328388081479474385388132095357139878091099551483273455883745467906690349727309687127144003212573161066285881867160171769236975245162475351141021905977222087459460350168652656928655134244121872846132093697039551237898758779160947397943277132616976556587434910595051591480437171426467236704593561449694833037588931260109880540323394665718763232716107023052753647934301069007071714444780331298881957643656230167069839064193788493094907580063631287523657324299196489145315325327760768695642107874322787234756153248474927019905500703828489150427664833918819824410365856371037422349632512767440456399469876266395031132356696621764924230582907325236410486227806509004164377207286020476178106421133713202649259209790005019585754669329638232534849066777256524707782037960590893993984049839583524968104154898634781985514410448015275526609320449910538675884720916227355410955212050253397674483172743231974060282996193027726775260013484848752570843014294973958654545165890874950216177716270868009030600076430551443044217901884493967342423575521781241969553303345575906382008472088820199310414276190226616955708071589030099616812222638377317047411524708569793528501160985915879872092403716214890689114069839705755950376362597813648709068438387429537173013858985553404573644840206253201305881491144513576776726742940091938500970533426170932292534557359556612688697230717748445166874218385758551250372183432091826538155019182958092403130463934294543881879508876985503831852196210477435567260235112132635543168532976713624968331846246320462602105974220304450216821116703246638680826039417449168366146646810107702746082113175538469236636829473597217815952273984599080353300941862066478712937386223871534039792781274028843258956314849584566001324330715410400782394701111093260653548441702674134413499826183972723669101304855505405654872685017680145979339693325353146369658040853689058993150748830287941639468283430325023112875388143463439930544664233559285928584485495342345340511432167920870823166588774844607538901496228150992043286045545827634053149289146724918267508084972045560251784437097915485572099134537157612092463417201125579735296502018666484464361867165690331008047153144506834337629223501401109125986755047827664131189021934784384561973897884896667564808023818266754303328396534000664268082578652337807253384347414064539168601272786142260715887340643748317459751526447704524915010970743512871281741422314282714402512153790503734677866788218294528006046219460497169266270133925111798987627291945167333825236382950391259496646842874018844667994224715793734548989106804624182072647704447030020965074088587760325718768813112335295483902753400215850255057948479803863190924152084420378337947772291238384065686750634174834975111704995862086962063025628833083986582518931779652607687943846283540103090549516196791919178085246481981144369274895386183738032649827024640187282605477018775140548044245225693593754601618088609023693842220711931206390242881777927960532175184610354486259177316158704228430259263183472027919154337260432005007900997050106858662310187823331930998730104572247471265262946955802895410643347411482904340986676584505836286503353848992245706206614632097000844904915084880569360126732895117304079961984278962675411041137363146163409598132679346197029089087681536368532453849599410899032883866164179865111914549791046090308325221017691230856771816300619585009648909492011150593740323923334695912655903116790768174665759792977110505915153150007421836148488678102747790532797694482602131566268504209409831714383226523234224987744174801888887102629578077816040832004952738805602418575308355268318170990214222872620523322127059321252348457276585012813192165690074672418885760781098720219712754326721015914344134514853972886732240267292474026129455581909593766205450897044199118946480437442606550732123466302895148351338513060563103112435824402000498176032199292249660106257644665717551853362289713355346348377792946906960200338195344664620455243010233095494911086868501946605594076901633447758362893436716603499562231996573622084302020934297727410864167138238985318010085534087176098220615188307429624147452497155961890531707711284764122848405271381874757649391961195668553927874998485234697786783636868598527083214478036175430656013061416833510317868350156892977859086259139864745948445930260153518603555785585640813572636107799717523680978426602932579105934590770832306993303977887214226493136933382284156829788386218375622959506188756918626048825381490190100381161294500914592911890384743260043420149427634575430905389636134932695145320316189268903491687450685813796603299509703725809483973075661754711365339910373953089331543809501496617429403436733032857432919397454639369306778108544610775809410668475657738390956278235372503850831854161385953266146103595574727036422348671585820094243816253780498663364682659672304326599172995407243014200418643682433863153842766795787106118956993935596420932684628356001388060844635782711119469238684634436956761387030879145853239159335613461712892692026828514801214620153036074009417248640991125358491752188290054675573629254410384338284286929324750306465950025894016629902075917069309131549576609072612731373829755029169245792187757984613741904597990827590997596772701622994027513863604784440250770365138718533575720329740542622246107923579308950565254516382941508111424190325367847744324972009823613213839694569782323913465166455590564544594654887663826991205398685227341541491622714705853931520358629602184831465447009452170968002562848963773601370179497743714485092783179979396213673805285487990954966319389785680857139176572830462364530262825812038464160131250297416439472035619313572304505823578324102702932962001081418865816544908028720217527328137945185360972610863276538752745324258743894793876111802070724910170290690815932457079936515435853905690540709973837161868839382921486226940704932038403811187898483792782614982067706540413246297905910433146208876319270750971642524515364036241354908384563623378534014563425024266167473486689509307070531374349925510759665862449747412884285678995283316737346506494145080927774891134601044337574485671697002630605498182930326004377571377227159827075833597896722490051410704645301582254711382938358419696767582692047098166018673276174595481860800682264082090746900224129594515396163224949948857683894844484740192774002478573024916244960367822265803462724241210762904869513388145225339314530678259939510583956702704364606209035622540141736839657044081851006399585996316416764146292966650219853336240521278193064320850209130584247489494676282766411116671092912424610277301692214745258541339060438779961226831475989971161829600983164478867442303797524497691231055975496647271178404347908303082288097105388857041878945888345706637872918553716720241555735712575266724114069622181895145549872629944918500303589849377993526379154672850892872066824180079023231207051183788524720687687413614929405365089453428382878279711530076777225168571720991583928340018732202875270163075011385045293262774842961533830708689965625292647594039149728288178903192089602289654038061795922643987197093348549710978923124844732468752877745966591197294887158314259981538794979265832217250542792893260491103898986730395764142148951336008615503469577172649592027168697256144128187254014457265168261602431676420002080139777087234737609840145601377221504087860625233244987269734670105864722042380458682952464958982426343180065840655331707541179827466958486942182995344112779579928979540867842552320812752272978180118918717867569565254221962081271706850918813363299729600384415469536657959912621900956321269482700100169906329798703879793914326394868420673996981073059808596506481787172918035608791799575799524118080867864082820868193366937054480179111271257406372321744614359952099726668137399270219272433590336745790613648938591189393659979273768958737267013206174050642959558193117400694116340446291143967389718077874799162560282205174445936675471807650480390130060585035584020442311010846207377742538830449049133589807765985246385330838862168933687665355802586771311118682953563433735203015090653063010822056336402856673119407270968350861708109653212896700801380428932607072173648409821933117850374846912876941616552075876466762469725456756338721160154770723445015150617073083594859732653566547679075646590935791605743112551190949665770509311395261898910740936857530181949260594706034025908337685406039484015581826702138488438353690807152859970765822988920617367465744334797610317345922082013697956771948486670856010774194218684964524093520942599724703125014244266681973876179172131094224899248174000099485475418840614108678595163426253878599407903517314128788867521654764577421706617661929034551754589285625385336741199905630476844366892727197419514847127263140907517470138691412659502633108736332615704389962739374289829656701308538649866589128376612635062328491134912865994757554863118040067448125892249901529138944271658983532295386959951566228176842569437474996028368736658320237132743996215571107935515941135968917674031010642671462236138038038217561868251971315233204267551651381509898292331600625326379777152009748617311649043822078408654743255747071221954525709760095606688005781091195087500882380242209583278356412351350925603188102049837604494879529660176991282535736248322269460275488360833486710943284853840431882523167241442924265388716929910687832991477247895224555609628382253504565559409775231617175481342352801304602628861226046221227160986014390589834726771068108021758765730590388458493102925350120405397762503867191858211637894431610907330990907559005635844165743179399465067971084580383693836521261333933192710045966850971122625502717746432792544768189097427447928653615071291038091087235748950147903669867608495921555829024696776394391030647705083817565956176796302359503558613864343714367295601525287172142861031197042200257794019199969897393310586133400374490173786505108961314711534697688217895233979541222495861539907281471750231522837133072400586348442990211214247841130693848011318006382643435898329222438013176929444033706167618378885065906741832959896907139244070096910032634003173054894739760449392845737288536954934732764389661880012123570438097702166776641824767644925263523639649626314203378401475060577419195551091452711330826041903084903316937541715591239267087002619446978301174117072453269553764338137129214356494874663607844926050638012949914005511126969494392145996957652389447971532057545148296464446819114963178841040410913635609991164359734882512181743405903959966543678420277352357392396842206483560240558670557687348145890830351548084909505304261384212216199891072701134757456330524325828682612903604814381872354778473507319647166831204933470368152658132042583453082962573669107993516170852010148221946947779025443202520615647027805965437929772316241656291344719463234273331939251455679687775866189274894693796960173691838254088451291548958932879651572688445675671047175888971307905742284010100792264667862436435990981723711292749540798678949006378482452360733654402103321253997740291227163624868949726095129266903288187004351348787264999443282340637226251082868846512573521364169309705583366755066214045957715066592130527720468794064128233825971397773224805713363295388827942382462683171534923151089512480533933144498606105520600991566316773612559713116541786394703327719652794046159123169250471383708816361897115391901784251153496980280144042584308773747735224077709688351721095191298463582350278108774383578187087254878841246255758559868432064751520208956133344330912679772204395259643378266164601530538645477542028243265001299465161379728481509955452787820953308492230109142884164608227544923610557911292029299058070229928001343892411132275910332462958950026508680875180279724435121820953984926002532281825140669239111367830427343190751866734241978770600374029129923541418351535905020319054693245231761637518312090436876796436708603645331030353620739248283251033874078988972702725639932367878296308979881921263181402310517381217042851780904079413114204585804481420775787536677828972716997273176432784110394218761562794394098857575963202221570163785534982334988829943606072472904235378064465134336104289436712129174555543373945395935470594120807181562216078946366071309446400927527387053219766817122201175936063899801167806291348977757871916094166326694928827860450722382582896978696765294716958745516689851397779852158786326740355303432202364274723164584473175852591721240721343959242564122736654636339193640072633124655752143515633740036085730198808085022428203256265939691828963533598576544019162795541551574762619309877567900955375488883466268176907586700898885800419733644512117345466225212444748277207113028071744382376202209295996195815670286082242484049373280630465735895027339802224260815261904030021531499014415768524639136721240003024587269382394610995093092792741335718489763287756598038468903968804705265994187865516586238903770954772009940609965946108274472401128929608235573660813343810789385960698113506641711590537267779329129092889930820189989507412145677978505340368298226108675641497931648506235022140030111231797339548458010353527703966880710726012032301643226378439931386558000912957538377904698295157658561174251569163558041086637451537843262878322147225791106436686328174182142062080802327778486461067476762735440735584451261901509819729881127754730815693827415603160534887857020645134746819288914205140257511194229664563024397623652712140191456400525121002319562295429366411747033377516095706095730740452280259544101068172494894017010309381538912926044483841368586423492359091392717180270806734882478196180682249437337644612394162800768041465300249602869924085596048743554778890143167382153502067161760788197426007786530851924392620837040899065619713057714436801977426892430882250612721577675023401560100373218902709438121035989430062087534697160782608738422527309971793488880557406880851235870062181578720491807416621708608033224751251511148621315239972399464620688624608452908894488972563129899820257685591267610774882887364426065410908659948695849826590058602577376088235043282081459298808389775297612933531085059773050487763005650654701660290345646665843882335066603774680686078318129031691888287204154199667457271193694754083346659820768672637352561245450392080195860073402078684044812376278785889838028284188769315731714898353979713926971038698749403875650847226556318701836669337895281380303145695823536928183392423334431876988977665467016501409927498696890669215733387751201956020843839580496713744588607296901680371726964353999942270931059091182376348977615696930530109456780543708032851645964743028222295478599444528379240712801143051795843018347374600935483219699007514211552113232099780913265119290771826892192039109945700576345379068581885198216312057200271340677051774955111987655531271107355103215934262246367518390138967760381429589714771805033730513058958171002836878077345865987642597696493424820066353050927966648598214044694285518901438813670962006849983814036125144446412571391847263342432105460335369674159227856284042283171226097343820827427375690015689292694803337587025504215433052429731800438468744117242633446019992731202413480922406942470332761582203556702926722493423363769830568580252339913742920058538646344036430722523115493299793636195480528404401739784626621911158940428190008449894618225026721475049666746353628536832360495807268235943185920980655221994988188376284685164524966430385862792759346056946644414192216073937566401675792409753751036549420421095884623019585745239057856351180835069078137237210333242897299625630461318580121225718859485875148104671904471212157592254255633763206590658515580293101497450049135130389284762013697537997695751877031176477732139281558148108973361693877219572091212318322583422838018070154407112043729428419931353524360888718811131172189349052368705213865226155166304291006946597972053122769572092556923684856200215880741325229398208349021582615210636985078308674397706853471117491181883715185289590481938444222086307533701281549673903829862548854816596764299180986927850429718035443019198786527935664072358606366156003931606294569585312390979251291368913325499302232220246613370739657122224133966286880783752104697757399349346414886317802589939578702687749094354255003842232802313475833275925038753675926303323532548056881182152023529187792967147886184213547564872762205934431773864695639039582136785764920542508993325568891803623430935779389671207517768949147786808702002754934642630134472286692992870148203999613117071265006049820627081375300036539654372447728846012334501467946735727612393956520879164867747036725887025849973964691061568129195947213326652651363349419841564728679001178765186651428101933834485520992833965718684170403805727616522879877381651914783521081804114479054746703548580979298687028567395940005440218695001047304199536042105733728461749661596831406841115395285244829179080565511529958495541490235284115472167126840012241478062669295821715840958413389930532187458193905714098675355535780894128270225822529518441561221964260745663150566493729284263232408652617787268673564250899703814784398297181023102153981500343646066211445578760746512522828727927885420594039222963537951705697212214418738329605384364839348458673004561163913887621460894112254286146021282855104693928895900463226990479122698166342172994930084383600810845736411961519046850673144648651033461855331235095748226801292266760156525903253023617847308672402743544600509575726678059197343795217431114840365607963991410450696334750645325751704988860626707116306055167773795122361673268534491071692607907426872794745627782735076625703180908434030031898811423624152615901030800885949671646522708286310394624113948757377626211106014207015773287340285943890589786972770879034069022934146689758961417911194996171612139051837899178319940296160845569573359363024587403925331787818040886475563922951488610915421327475550593589199174342532281344563467208555179347895547114601845509624818159554765016386938425223135878409239662464651055337544153349418679941597407891514419411673259681002258101786023074892142808717814418743770981162968878536525803535177396416066481030401564019767713520207194285166139051244423516116903253254187752218136371850685654732987718876797644509257617361689495471421820286484183706379355217569641238311138442263981438784005628341725668795233001524779245379392192777831615864997019604541616212970778580356792261035367337860900124173539717171705035008991571232722325651429421057934231364432674422403562676886146655055198422342867263681047282606437637197061580126615559645604563758732748284496415675169184096525332913206007851773581356839891612501997034267447712043634744292998486494815203906324638837222489651948312170762063186095735828235584420298238855842363709500993314644103859065082761822967929824004398122487392141132996110528309148872046704429551317369658107097018133091139311507254986203172005976853736297090902220953769468195430101831080984838670974332169889280457488436605457042961329748660586555155922330041031207740328713303759096282560399648124178298950974121315293986978694837031851133857939290950037171511151590460603569524573707789032601026818591336560629331760497839635827423780761590471723345250610585475732623610783472749932578935802712111306048683125756335172704533316051746194343830421779911925987709057442827938080108974115084220494768646684757411143183634997959590441645412564836837348872768808511456482554398203264404895545287000324649086020584342253777458199362009159629779569577517136049880207701820994661692232104485100079974787206375775451987782032948198761473049308400812920076938632295146084390785878941213211235370685206854335406871663960175679879279528548261575969855461191791772755492816024604082542293735006219456689606916965942258152985584392828685848602345108998530831001803274408321949964906431558100507970727102039851442317288352193767723323341925686916551216312426736600150378168061630021342655541226126933214002806446455663146378024023748523177555311429156454246696378176683069700062312735335419638303969849536425719813796496134304843667052940606219289805508251011921199928216305128405715075305756783749338225366076507704429641845176560484868776418047851926563711754541988343359005429434008942773065639692109275511336861709238562691867828343522909913152590338208795815553947228268582371087199586221876033253363894036935344527148989341222679783707245916285763009337365748558743971645855997098793350321876262855511096306753592411051737510441113651955874910528544993363670020821464152529867295552652080136654068613946664661217550350236729203578739609738488908133885209065976854237850058547365800994552321150551339828730499655205448494522598653890828650834148703897574223059183282759161588526541772308291888076992534943357762131113918605646646769296348865087880932192721104864176174816786128109212865220771041293130136493326211083408011305576473415217297845279503534952287515418043339955462391554237236561020701893756707812882182445800617091656162655934064968237819857088920091176919540088824597210715326585096923197646859561936753016551489762951079498943682896378109762455388386843838194079527286041549765803942194946156222378309821469480733899105401589626949651587340691764577543574832899605694078783220346707252256600530451102297989934633932764681679640403296067232266426539397019032159772940611942861539292360745358215761332519922673629839099283065686816052140607468973834271215724574273724223690167587930918209486278124801548687047850313661412609821664209465052520117509700329884664978251215970294280558270178451115149605702753441701133887271064681240187567061798566026214640673585143985226095261878715640361302331292359714294903348556509063517077207917552319918773816207511708921423774835202588745010958935139600541547257147721568496258596961993804257177361037692684596871558769180585263948987202544267554498169957807287408864644329406838398836439950207492282721915897861479430277149289487512057150379193350261185399496026657821145736582888928870043295333244996450101605490471409657358687822007828253515387373398444249596718799283288568255326983545231420327394421967568359220401794173302145737936382206201678756885567362269396591714516982941524089320327720364436309598297515709771897692609121644504923833287928798874970856675395058815333943092295182665360876614764379582055219966872281257394328349774484939100134130379283217024846343306710594967855265536029348603179425066994191304626524748799628648788560354029361082771392481221514929613255507135471201916893870366517914457166628743612020526276545564415240185118017513003184114844521942780702940420814474481345908138487948992872483706142994010476692994369898620223129877697130000783134322066232921363170195215621142957402955862278166172924980918441802771128725339671470478639102398453803609345951993481205479636178063757558725576958066901204627770577263507592174184168560412983004928950903802021668493374640942130184626819809019561892505240630884166454495648678793260510527474380229911926712154576651403579017275753927086648758490179602850789283192550691735972337004199233502014469934416961552903400379019495572704080645615574717254270550996436297714545575180292713668328799714863489587565508513717325133497028724970504155730139565716076661979646267510207064264498121701726687358576904212060502679864732375178943768671573402413872728332319337496290210065380349943181756624120675915062255639427421391906425266827143669941790505533751069994404221723260200045574311591091715161418333437661890963883121639372885988779751070709834104212971827130333157531827220686627541546788265787243708032757344420093640723645579442129707657055210666414146739923282744541732063934178638594988297418470623410752917809456385402738689119912310405380039468248610716096651452827063763360932941932290804362054023323286860691550224454018073458747286093092551875006097550635941273793321943867943768494716079302461072444984473701316390544034048641067967689961039305055404443338382103987239186318151991291815132982235362681591139714887042735611857032480220039729600205012190644562915593943038669007897462215290776073710634676474564853656323144706735209116156166830926724492920007832878529548248478979723704234132133649191588380746904895680432062085892683854025583315143507772653853327242729204527756524354647928430094967029670266791901959704174969108391574826538491917404349265402778512711802234567440145262056830798062808159551400706695215116160226405740288453548134171632510886540806709895336621145464839044248357159741619916232176475574303804774154822552068050143826267829843410273326834426882677642218213916386046861618461202290978280329994047657013148168450775659401217669472713373957850314386440616332301959423699763111470899385043227923366732481943487705208740209973260817326810162303286886774944607932994534105452996983748948604768755174818228206045289553769666969607563029354470211459729393569539114944353619592963978917868927693244193342941334068964445142821055299910122837141661061406088402833066733760678266140110805495102418210636111188208595183013701234715212874943943152978955290773881985895581358944674102662716021116312853041595891047640314375000437199268376266804958776190673382556707566190293824868456423696180843917363803343502437487308974823984494456797237964043735262878280938957846614580996499583119509301595281179068813957836630054603519274390103563328160463429845541468193020882632245642869141947128123415020507390178913241948177999649047714944480709344950662579590910948429660794127933392410274439548323019361067251760721294039412529426546074820359648148759343071438140084013429181027983377246363070260161527801769390039148279636754148874971745974886227986551726796591282795622050972348968155850279396771817339722228144559277021865740010139771166834933297047144681693096253563563264002252975737692136214285965145331728258471317754295333544071602114500641960124567046080814744491251452031903956229902508265338169326813831544254820962798225033842192789712070599360673950548545285332614790621457435714424833939376562902382843875726023946135131357055543975268744567867965419689521628381260666692332928628782820024137743169432626698741950286733500622910604141668848255671408531955847765730655682586872085567782047464345321561725813072300160494679924987447743815959233651138396161235265628512298328382940886811922829394308870245274984575618636189121138742412636460589776929143685555756051075521944254523464913743142210451806080641956853809969355720376784625594895930109595111173861930157538901945549761442977673753447321931891749233671231497177788409667615210065409902391111276029580727976911543417442826065944498915730139413827631117069137381600740827582469359973623652482582896266527234581324191614058381276404184539013440323505977615934765278107781306274112629729993577036632523679230626149590387770586870508639961466541333881554651409805586580614903741271468181778910814351243900733664416336092331615769990250291909335180751113040688750863629737450467828895579562246541736954028612489581857018736765565827418052690330312162491582034415177826990467478866259817936157704426907703924202034318076847511823766749119169959478848070725755075760068013731057060042254888540178233155685169722536675262695797836840448903339926829379523190201068329915105196807008489124922097036209112414801408098386850217508318617759199626306056520717847021838887587181653757158157559334015557977796842723545833287669539959432842428990093652100241350445012684763533902621623708600570681661223333350310573730890283952035540331675554823126193602266286255368822924675012901336055799288767258533043110447039626961290589899717965453734140948774613171118978043315539367736923946411741507714255022490051202514266068352433792617696398502496034853622641415560043609958895682215634325685487149470171074055139441449750223998648680841238831850335768823607991635416799851043919537703504558923701836203661283146610093329615551731811304113162591673677812626734831242033769293482271618739709054952740500583854689829827181693976337625323386418058004003241141765885831758668109702327875864266707645160082502045024683239970641481719081352341899282141130990549552155084196607050126058554123315802911273138614224950382357115955249104579301576862799473287410561505502447693012139218014076314218889760300175856596102267400355290803110824736544745353098910280372284790295654637362891398281458390188314217456991200223397767198547672757658700280764092754804597145670860681991337617401123590720863182684559196970870676405583911229267505823538761058520385614768531843787425442191525575406251634103398828591649804013880400508488613301089979463013868872259797838816323002363237702654097162898053190270609046443047656562762408005828909586417709818248130763312386097700034535347804560574327581393388351554260471532600152058875519372049178035186549791042507330858178751135605171387334045730139795829668515440201295994100485653464784913748081930663705282602132398733867424317616294405160898021868399955525054404831153099798673630893146030434810209036814604948865830541396472466630935477857709922077543833053735361129090430658076742890349914823654249319744643989476010203880687115815900416657263888630771973544338913729091468377840873234870919873580125213516431824519434177841821800096504420299562448941451181658076466207352841797993146868752081719449114131213370868804547200169085133156296971924038281594785820563740011280578479822182309506162901873152425516844310645745666317505674506611414930830913446363689469156233908444740654399530759692508709136759259403308171072307946924992020861315242481058127137008797495406453614453728825109888374843355941586366118354134333666510004196026870993679642990857345493946469281624920005746719937916212347575769336769626185058450991869128026153080893362257235532741389392535987201880453244812875219554391627695862974709754279952566795877590420152884259192102067635858706451907960824201348899475535011424513362107316119048897507007617431825153288316183173027538671643415386120690684830993462877418360486664438882890161365486079808560417976285738009040412801294450071214782168061457439161210923329240516220156521599889938660164699745171182795110444296857682245819988499278168298801056750456791420613234957340362987125572191925603595971645429372714342748279184306836004547778660962445507783838422645614797273178001774295245156247845618278341667538380949264674817124735168367953665755397362515062727499670590806389831771979184361187974891466024270085518975477130802648099467486479411444079713663396505421454614524175935790486581673776000656079186799241651863260700830110268701392259030084542507677266687060825956456159642676553072193333431210629720786310890462231090149792221597087529301853433055467437148148554879292456208016954276247982419019209952316808997382604476217094764036669191094165220737526315302367895493064778800488057468973708812405381511765652039529995323587352194611956535789665143110256160501451915879002273604087909583025787154033307538893859108698813280945930065166774145095081179606700385342041506697985049765284346397439837822836377279437509030819932650514978395659347025405167530907151985978582943811665725092894984135265324594520178325544568319351495534359950182225546071124738936552893318505483551748789410414229895590315184586744472890726683732157085339077701964423568887862143104197318018213745365286556261778278831437465709842084703334490231683574050602784778372093329203721842485341612754211732629885561660543032007369040981390794980564337063159841871725177317388899977321455741347149596665847902190649395857319742724579032845894628299522441990788976893854311121972151977216477627435642485880609135948004891560285134143049741597392876293029034215193837821536855974903976238390595977254836558316867860353434085075988053276788971023409751052068313429592179920022043418910882003261798009205794849860205614712703139230437163208083515830011942605371383996771452188440773624586607874977440992060767272191246687150362303066315318046981466232247409645592188878642185090789491468541082772033729916411242557422960118149070282890359392641100582723994795941870145786335508331487482418548711520921574553154907751169238185579164497937170705986267069670012750562043589265262857902300240276479454339915511048055296031660386039884423228198819826837794721463933534604339489689601892841741854383652995216297027569631220511385614029582422371198973868199610810232795794319304998295191953805818579579914778159870924842570956044857493226473620379869808226484319858817935935308558329270199922498476250334215088413945319497744943031727219171582120127585326557929663912942050360895208166895994526961050087844066402608848971165515978920473554509471558984577502676469127378457920530006657001420963973056681633021224445091676865591287341484100834632268605766879540493220678188782090692857952396439398081661664859036936869342633351592141812464452935677914077354919228557195802083105851647512910493881694187210704543758417657696833260778792105263165703634319739236369206211863291999012348771897804414196433425695506991792081404014188346553959214756466853295742396209888665122044059068668521897652935980156573260349783280440532397588693849585844730813190322200268246587675114064830778636088404439881625230430591604405166330890138031671790704808095714923662630257439089169613323863650531437477931432364573110075777856085307791162214688075786476872940021427966654993878935835084430506409568196903986047056768752250720864643881359518142587745595112171332454628755952510348635588895066877127690014605565091900980455240874841185488703452617224629844617432751989846783170495735189307052475789248393156501180304766182833747953035202301548771950684081303608844406842580964551180000250547087634319490746936185035923974541607383728343511447853257215093034202780018980945299764822710803248816598136533917087774262048075381313463683777998437000460713863346444281310991271057934115813146326915573195478097158603893063271916745342468427399471119986175455083740664318713043387698308587402058249184526721966249737749720569058359859747424612735463358744700966202274611655242937316697225664984641840835294808190980376935748469297172770519425154608086087443804175391731300837175485612078619002286776464088562756940139463911843420885002691746144930473645846810633415062666203352800001166658630115296178787932311056442724636784489465130648633405925085020506944235209466229275186325612751011422493245596217273771552155331444253749918854157455087872167459607558790416624623879911869884883172554097609041123777478258718664891900296223551816711950811051213510693443640220258766179678130360471013943125119641491708457495538841534322527842592204528469702895849187401639237955855585455422962862947685343705536378677589946054067656331250140384673185905370081884501077484092983263284563020034192797959573242747566395797667551644257392701348018514369666833649766013816214773126442184698355009386281487215189938708760314185572443840196182000532531626374569965973908524619059501018752876592382118979303873925266121487052121238385963754578780755690344920511739503222306285811380075876803670403314854151056359361304469777975245911172289322769138409455558216028387275309343432921374333929510446008872273225589958073632038785771729223172387252536023110913384476361244713654593117121511166030807011859534505414119767734694279775866931248468265433260550920799685309386860119381971867916928600385709456600563900531110316063229755072975912733294099490589564925549973201139188594632696839590726031650236903885412723921270908102121956695721810963687701178257540752353577279047796691581496371670195179886037099443617152032971271393045586238476613126441326774342180959351100910542597209365596131113370115994905462386798089850787563047310808407407789455074760417647297053331098151496976881306667391452097658441548840316702274378424992876714830474132467656886162853468135097949188613647780924523202530548341021084142796946854752909711087237647452968384113081546451719267451900232180710626027353014725020861488166165548101733326098059499001920836264998541544508001531916341862425047109075522798274355692105021150255102650393211352889758363819567922042687877311811710617265920708279683871218744673661035574490225246542600578781672830013537092897920349219669656078560468558195664338686787807152688487019561046225590217583045475803977232283192028804416610413143803510939290625387982351757093263900078992840270904259603932297609362233994202835899287483952124553127548383791448269717412092052111621747223861204048402109526705595604553452573940376196736056455882599815978414563479657928624469487466570774464452262799893582717196200197543744565787743233911112141223971751650352918916210702404796520271892851474759663755411331101434173873065258163356111045988264840473820933970324363568166764495155308973409051820318081199418743461250828188394618621806870554797502984062769676390950419255601547231158918347389546027729864863963164824064278901664045811012297101435601384074622996270472566539411820842468529246719715969373994884186162397320939118172473657950393570500331388213081350006503886477949634981491551620669502032132859183015841347857164272047221757324383962105294355531193595204536687395348372024986211605397895101804801796423464686428256479018420276187845965254963690773180849946488442262349777451610424743745076173224884320881474610080825685696251496764319380085068245075076017823823377919977345444719522455746033736694365691873052330552877594905398495257875850882117626141095558398478439805157738927120975142679934738843631882721014709825127063482830058117443085449858662431152455939504155601639362235272997977292946302058583239635643813440211318010329823498367328089652741920936672657891606600655587400549605222544529468139808223199909503855334228994230760144834206670896968928107210882360000092041366043934606043723872384295658433101235829179779938793838655268531092813507194650822311672359071249023400659365210518568493370374232851398637996748758519670291218222327466315469296167632914292736460472890043118482684289245724910173111827739674338157398242903101124022640457835603102111935567173265029107804362829014445447314854771957870693184076095202995959113977684551421989260522844701809983430734701859049109697948471382201933596722158833106027984067436353170880854308658556526287152658115444693641725428079502205300487532857327303384050875021385677102679941872545277210734201395803804213022109099004985490096686088150146757989612493734345698072167228477705671718037089007445728792462748091077196756885486331287313960173561896253107554921693337499262645601832112138413772794426881901281709533762765205659245515761599665004778090404497221008060746470062686186252053210126386934924465777420908123568366399012801089028878097870181514813896505166540992139497077143076691106825111450177979518609030859475140475657151757691253071045302590787231878196339525359859177527762743231267682258128498153868250063384972938087264006121096137012408747739480263558858350220698906142128746893764615361250791044471406864149329251398390159447000932007248740508858481982311927285984354732519484322321351384308838844587594895293693098390519159514515841115461236421969369786411148727378430266080993418042831249024238821311181108609834122132758173774182679616785994055306962793417833358661640798900854362847477969801076512151405725389720765339293493086649451162235445691570963364666551453479189276397715773410102552165998937605277136320257187441946354977262549501676215035392587686181401648357521079406723951337274320707493515479524510592635077704469534882099468010963328241167472159901315492130544029134329625357946446292064888374980591730636405977743698801919482847196712405882261466038254083252352716084900926872099195936456574852689493015418477885078482829637760401492362964490016385947048131009305013476905668469777989098061143108360244358123685759527814044267722531826956041709723605821621276543884282005428221716582124792682693954171194590831264630747880033261487714253896184152285861224306316998877544676592514818024030742849484714182089008808948252456975204598827155616056713661743399481377239549857847978284915036893465937835129071031278310285505665363703380214547018373656400765629455955471597524165973896264610658054724822513956819011096984877910658245994111207628484773081940442714856412541565187291886737850536439752401461963319270345965490707178466014706814402931318277033150277358757754419030638347171164600943415788580099927172951575694936119627590346766483323199477307915697910043551439714736016966647606065954961747585147981988081469874311793020094525393924271685957549707032827418794371661002398759490936666175128922652466559039985384480084419885512897970843264156218509288475412077230519022956281814590884695689366915892760479862151984613728789523226277426404066852578821643373251007222767650489711749939088373713940274298034766181638230341178609913310071499770654669606226604309924723265770052841988075197071456067372213694439144698640134559754344722822658362492132430608802309290329602819307824472382472245422643490746680892781711407978828188322347082436281376667018225268562571259021905545606621494648970164761264841713653058888185442325941337827653693566733539430609656782833342603595159030787023703206115035363490725376270441777958755480905785889715861550826444541034024580369841301697175755207473198388918196454348069289241562467562305194021597586903007028594088430494380436838070445578242113362074059351756828539934126295962998642219888157479796582285854856686483963629794692904170837124569042720548858640851725942068864970980714452897563041058109515833703416961404690334437736224720534054989124242910046139772460346613146530316127988007781916305288885497206230635032803511323783614327237853925191561799166782867974037631558087061223997986941106891141618585473915646445130550423768512756222362417693662751639829889191469850209234535834049425512826208160194956552312591306926944180756988025756054760315515916681836155295488940430916661349011308413052721072452711186012597769021221384588479083941594504077771673882422419422153222835425946504995643856403426970970113170913074394700587891782255795863192522883459748389813050954483528005793820947138401086558459766334687318215442009935477202949751816393251871792623246252391483786751657338550347151738205026646195545662433676687306516502212694225477000355592085807568886940271969221408355485181398399955835766786913409883408419717221720082512285065298729297033449036860308826737542430219981903760111711876833498724272621135345073254772985085759450858122910933409536297019236368284238797044577159928054560860815455519356216983662838141400857840595211583367697162558599470674328843959175961382740149772463614900385278451138266279766008103922836653065296038498608999116930092525543532943403604134465623666461025845420699784569734742209660693687707061727996200901573709272720157235191205259505046217250466542500216280662819758453740928040577816296154336557888355921827366664951521856501091537121858499508058152697154920305014684225197172616218677750044991131937068539208929263156568927693471869896677506761269441576839947153149850055762887692050454728753574352346500456566691983207865351755756818076729326955872273824141843327983929132749138726902550408423470291591398272835951759817790919537503280638218022553951012229033449329053445257060810562249988394941870304352564241829995516000310690274490860555783625557736042252142582610769713592187026479803562521884923578370664570772834502984896422358108751741137921717560192922486456633124311428211723086738710437884499108902985112916980993764372475190645947640994938878587540738169922248683757215398162028719349791705948252176633740217315726018564537010576921690568887666167684059311132621192670260632084258025687803917110172729221545606359585575574320547838576389713621747493976259921661398135852641201319708067102213856685496188566378864006252363602107777910831598053514044793019856324138748270154876098915843962066489182386289769367427967612875006834393688647705806488232826080015255053831289952429101715785336866103886656265363294143650796522229404367745985483177917347052985726479633122438814962987345175237716416485601413556346426850106326892964930556915633964298680335102194169201281911282434384159886386362941608831989988401943862864466498411071507437225660714189411875922516153747132222725395033089940479543374175693965990647126617254640997665195820373429511570103909638775901974356930550238361038142933741838077232596587079411686680299343134607014875682286658875056227518915784013815402094234485654495025721235542340152281464850717939940894180907352701720914880822434620425482708493629035419349026516533096758440164106608261182893727511787397944641364502138543740979881111867577617418786638711301759620094589831062719524386271326098459483684825801850511196153103388628222423234658375742976774728379504804173897254710803898086989971855685722048531099553901483115872501893086930053737490782791358613551474813038733882543977008715712762720408900110239554930598975521458428726621600928047480441793094202478012597119596090823245993638474345639599709819146048551174169441390471387001511706928429188157014545578719918235330160965409661118632568049013593097317967410128567953136709707216567752197534819880905653410541407060582971737328251356407782428674055986411193777995050268218062255657299520214859491473583547112769515138111835916552642772380088427068141580507965501782554764872595021344667464129029651576157509156286049294221207653315937697900763324884100424354746993186157145814549069398357784327541722859345350378071094632205111461221624830998897751353024559467901300201666659590421995223915243311042759723045085540017989227509853832230117862225673695836901679902041155947353959690684912253873281296023785698362156321518139923558352016072048749847191901491987409886859560261794484715658916140920486156322331498871251676093357705965085184650837249265573442281406152858360380150534728660522988386524222196641159805749044869385345393129747463958264523281199270613491145761373395240958165350248736916411506927721351302711064432986634717240426159434326432865483361183575118903309352130340506408104763006587650351273810091220446944642589126261473644521652090929736437874164595428396631487905614453746588537824850023227804532233579555218871905800277366403978963687581374210933227533741842286880927480604078895406441407636040134824679941808659850809446987722338323354046050930626653593845268959322438142292322398019514733717749556897650450518488268994789505270011584796981937812989901600440433205725176520621496249548060432751031242489973935635817030128705329475520495466533690795768144192880557060712255812348345532591690256084085372954217054287829948205163405118016682930308624038005230495068985478744964806005427652228416204418705648807004023373089266061710327514646747243215009103411675148881317783540379253006769031764359756776124611417024584076924856048572845572554455264930590149749704104776164704152142363614436158416448001384367040622860351389985824849558390352513211432583754518759315226121470379445537749378593990081524009631976669221001016446581130830823153952989245257573562084912793141040517485374198101614064608319211275774264396351122047701402764170496290338215911445530378910080668399306254025904739051418366850851629152718719131849777516474100923657972498649798703418488146131373882971180627267346227062909014632257556328171064102702895290371879605515526163449795548052284344211950475511228651066209976070901701577052214215659959377889467203929688722659708677913545969637163096291100123267524872314806493392850012175805463981589815809305773843030579295783801304366630250021069482619195738343959317336409769800816723784571381429825005528859751995202562995594525308237137371004688810039324353542192955810534642505833579805261304908204734491032145735507352481402639463956660243949474935176361221733621471231209541690228550848345767901491583003686029064010642732065785825207470000775246717894993328095138698052461650632452387174544421999362206703630329159750159529398616403437755415899395570348453273399079077870103648091511184834591530829996798852730245391904184539278921836221932524512455864595901840752734355335433613298456604836430678390991510856836590107404528353069066121665100426560612339575768866440531817073441451054205134962175618361860100952259527141247543963493719257479032575891206423614023611875480609913239892030633328734431088042914200558373655652754104975684151634971262556835050806154875548850674378220621365534326308754469040342720078660389654427565026965229956611535778460874983759036641780491570232390850919310118202230693379708191392123816064161845806460465461655115208102954738790490558368391655188837743557413979233421386158403695008930954627535051001270105787035962667240775826396802744229138054296440291273525718573106685291150854395703045656269991710791992690523808399142260307313714709249994882639930310538762456220368726777439081702823866979256768453770756238901565168107439513409304972972236268091959213521745948080639076650125182391985950814471285212775205145074501444962963462174929044048156326703326459096787205601396568278084504949420829168727344662241049521431006344288510493510063625441871785634127955868486567071693975038889070718642333414427847510598910278565830964692796280402191058105670335768616523051876634858418560667771570065714146478249303949262413213177023196553739807739138056748336416893894966008396115513407704045589358954861203254442320083836453819383997601694418943449231482901849542398802213439062473506335366637359252966846133350555786188372647773923863548382790844091174690538164861171836641846465385597827869640829264240913103602716735974795189773127694932792325566112616320804037601254616587626134653343207061508330641369770276650152812388351714893866911046638534437242199283236262365970223129014630700527950247306371342913821017860804125606780830121304011348415852154390215783482999324736805649081353248355313487626818816316365420486359042452019762955635310777908370703384408186334054397337158062002446245408057802671693923746908515801694456327147745561914210960391989488878473143991959208375018431840164352960906062676216390810010229935312609047080189231915648673681050558095097968510036648356314765255832979862267302841617071314516282488776186337325207043511483741575054524859387109447095216810864751542700216074984228018469622348113800345176418679479197749214418580625194729265950311722483810926909551790780812186771380422952142212161664440130122822037113126136725515604979485873303974000824617867248579156046050295333963511829424397604889152198241641559283156637388358826258203035375017153290886287918058912353713182783125624077265688652867233551453942845163036414582740902569092345458363776688501004385092348575099196461875764597977803576976718562850424315109045107843898786343539692369597739080239532328377221277220891013466042858611055313612775747159348455731832552761767697978981544605248714554362234596581148995230821654726804746458156895653911169257480947560082787394796431743429894477087647827518990850994930132663434922694073599989261344664170896384276648330876376197805768424073007733393460104661730894502263669031519004749693806494190846239940348913270869485805783229252096632818384500101177555223511778406067101568514136789648085246731162132399858131902564278887152016901414364972079719092357296222655593179507591273988483386251836778518024025860472730869713189648606670583414239796859165534223543049142016566092924059866451174004791590215843555301829137299460023519223683343634389652501995856320046190229998212155074628639306188602964468880493773086559077096911728943693462240028088108944138398255007912251348358398368426623418837494619318957745522375141151166193251127567651155095049145875916405398267499140810706827295982657374075898398505437449844702400043754037183897578792873373847138848266921554572528205701479180758103764948717442889832261657508455401282384762074881582238743135818406154534831913247096048795589584314070398762552610530874936080412538877618753130430666315298867299768145433613328622799150427199225574811904766813810919889188660440897148650142524514401729394894877463693157570980354802087551496659669685894532070237903432222641048354399615990502755915363341079738658347409524201984364345034532356990202370205493742020185535821235885837166632218520703104167931717766728165894980296414674948211297299376254204151330981738108506167483407683768052184698896942403150525927968053190008018446633449017416659878069536776869224415281934996634099064223375707646133691888075267212168581840872334348385852605535038478153392452607878360941209824731511409950917709003839708304353014114311184358385949973003243757074253850491219628502867283198513423226591504659920410009352202007500634608789968266725830290647000430446774773953916153172313577515658686067745241534988026202170029299845515542665246764075223292045948957343740835917355684962853494163293385215012567854158137553756158062264999317533485423320927071303563090531849948568758803985247836840669503055419209611142481010291440078454636236937591006798485908294854543777356580859980762558204516560325172388230288369730998918468336913222135263948127310290700245228427830738234425387132314773527582352657596579534080541714882960015021822427512372396833051626137322057266688663005178132013670856687090208042763268470065662582858479451768625934579398479156360611554315249572821695529967600954444386223935156447660284975759992126337564720183577556089834121987170093239471400915517177028661700266283636718214691099805127664443650508778808158547618125505884875305987437080489899404929406328135173421959715401812210804030833860016629326586941154445322978498077751595333266534750786733439693114917316645201763826880568109807486789126250391616085509560463519742222747511544393656066941414895913257742392012601591066658373791615322616472869781973999044603761016480922306642711440479729321615213978164119816271511111253207500229960556397005327797087573000522838314938148926249201224499092908591092078555697315172025164488763066349002024971718755823982994432980225706660772948627699597093574348595470791623880876774020633622372231589533722353856575565997766092960996884126816295052820971965908917661026227682334600646276448024841784780114755781583519325150508126477090096543462496487633008151565968097150018796055963921001735372810908656333374960319770718369051393775154975519152337994919306256289367969653776732695467222087074075967983988765082061435858244658193380547554789756829114708335227666247442228751519884198377113226515052451503205628075359640215924526182820300850911438178618237033049971457175804658735434050923326590138977004448048466827125559453218744562443812396203657111644357813191403485898788769325651570585097711998347139798419583850563242381452316998868207369652360416375244537845353515553605509156000604646647138351458842510512231229292463388965387549512198145923666747415175652191525412721158834993155051455486472215565333430374784039982127324485423275379679896650675361229514838614531181198288262589934045050169607131047673575156392186829364270346560493554193144600620603439536621269867998327349644156548648671344282877535296897235397329046752996782709607306559937758560910664280732168418253780559403619609645322692722911035824667921253575548257681908376731705269747758303689429533112122151795314556149722660062101633098227018648762812932927601866918836025327682680265553425360732786727506039264703556138599606079883497303647409590661335082248803389167791542578120013945762701348662340989916171739874150026660066345618458894298648003645933630072647967542139215702987820204550474859503832234092659944263481007043065034821486001434984247035526646340059398601116014676320486599030195272619143705716344601524852517206995328230984116072215666082761266850956279222605864492371611433272084315405353276871629287287644369251797896198002398496015042795648985834697713461275525784050665016587569867141862607040316420003339001046095376722770710696079729142495415398305454809383126557905080635278727523531301035039198986305031166295236321026310512766612428423250845721684449234872138266857611074599743581036849353912123928844057511084442080741993537447397994760862225152191966439287054499001341953977256032928259021423476411953177023600491644458638107706982097221866419655778570116065442863571302522792380930560258939602254415921773766902633765799047985496953672496304484394485118474291273439123927228636447791792958228262337344667737695454665452448517083041495998840094472245672078377527911047256128920451924671586613405157062486808257059616437104089287909759874829231402655272618826899442142757448878486030279466717644306468714351508503049551569107724299928756551585690684586828632864087012953508502205607381451914547981809919617535978881073282442264081700055956054613547628875449611695062742862063849107246821903343109430254906602642704022017100447302546972331100501083661138167967678567900533773673687619275875805494735601373103596322122527140673962654810440317393387467836106498438306119481252331282483654183756585382498505412087673452267418169357041001856070521063747830136092144427322162630927709194544160935421180928979915041887104520970485996499622255223554668791881297088593947674315122971475840985903677325599677502290590445276273546827329234456258036975568250494026831545150402926686251537499859005078559866383953644748334595057652288861822498426404768962835802591876939116313768471685175360447423872002400624285403717428537405241604272857254376777747293456891337106209930025135034837941525246245456077522757885255878843030312598259533963601274908059216020547893145232089843254338234089787482801526697181213872632220159956756209537106707434947410636912888450645435194776905821868057806667622104439439777499375223149068697964231226260338863828718927134823711267033948267298225205627943439908297685746517040303091585379983987823828648389959144631091799115778187536044497659126554925116624045351144929843058443726421437672216271097753326926837889981369747857903679267883251436686859448762215123321484930564685094916921083374747272965752056572966817251980631457043026014159941248097824086903899369151008632155597400928153455957335983937928418338498146240913737620567819861272962522615454046575394018471172348074401907742360459402019411813233420116852416602746281852885261490546459852169240733072649320868670227054685057930011146659050618289297403282503562795856047377414941165548468213752484080705419741935061536586825610696940948408474636690376214958109438765759136471246348850548618151724193130010367272478772459989397803121841874386122194804870207015897934817468391943241209447003142561745906724920332557870005216364516973518446830831195694535964362236034218223832837859915035087060317547858442651833542474048989745800257076951970311856847143792164751413562479306368845039567961409345153857673322501703320187035656704682346678989015324565156888428828962797099468662805844689650533360578998731899625000993621858987056382265196822286811488955312137421307898606035370239336435977862135896772416293338307054428637445503218153335436207172030842114005921514790532740992442559390927664413001139571837418739709219041333605514747148865421874150550725843972493487968539046530882465167101314783144104288315799192070080085417876876691614232319612341045641569374848461592681783538688641620027061361251610737860591644757892011703328043047653284903441916358674137518716252683093316249935045882057473339698867330045377413867256330460346925270889655476392499827773879329342322247200333419836796197011836263791759349548741609613097170466497490918473698924682360783099356936648499885070414911056884868193449674780200465689857131567941318172886135140093336664203869512706704575824678070343409185811222523617237880962626649754304423323836352026409396016691774474312382848502817466773376025027644886970693662340245108300214903676940515035166255409012046018146529944896082162080643102239428032539585321888061096228448907001031208339261242285249701798997299750310372214228729613367683019319572785339278811653630213571667269268897178038789768101579841120792337788339471854956116246431604250604722344697008570081938248516998871925438098068708088404930748914342682865871182854364605539601008239492619145278002825254626490716071637255174048566576318294889812177143865863812341129448251688399786825799094493360749191176683861127710801225761746526921723453681447333743503980040566000365810505706434904589699395130146872792259393672744884973665740736356720396663889806681899500123917782360437995248492725173930299868548540351403451028953126412641436274776932133681998517339030028625726004608422307603685367910937953830541544200624893267281122794209892224805383338739610619821706135383254208708618765501846771672196562131822931421631291773401362643888491421035258531784221581794486277952279399737921362240549013000735666656144667641085278421406010203636961153933862850990482800054568124597987001693067289848965384259794035789214258881318819286644214332235123532332551739642414669345833439253692126867731489342884278238938159645233287073843849687926069880893036284259915350880966440912190369164699688193515913705071867704001611284231267040418483313553420333480721680961516042912612265185086128033372084595179877093321977592356211141427818614064711045665895500069663227159820480889168587274701855750647198104316941817833618854243944368433781351775079382257742261943404447905591016711295036178277696135510689811748054337799999120971306178097839193384276209848457017821986212195520911865603909804028975458486197016334904490874025592455091568895123271743945064282826334903277394175889929621673737865415919746538710924339274235512026047571538147821299687460284745104297725620979715317329752053227458507458560429321668804191278136517541913718545720425861571559145969442007598060861488850122307986750970434375459689198494954529191445507500099927853070673770138669795122645974459996580354325268839797919846284153713402610427875401505176671613821475065838484947934416564454923321526209092070196768117967945793842294841620179459936079904048572434362439775788660122180678223741886065201557448094220417120925917280057914108604636018334755743115573225261413879234279219877240480405166468958447318372838819595560212590450321468655586523168570843158427052307178738503198952409873327167862683836411587791102997377109248367675184032804823729709659891982114433011987727321324188409354651357575090268860167100904833539195167429988114190520045233529345704935078947562845354843848681360511107103632310660911350842082991868790991091752962033703650745216180868124257886951240829634635774455263714184924665998566999653769397861707368031586746751495306987110611546873834243496855706562209918336715186296321489753867440381421394285673772560210774962704360812002019213116122430014928928022415242478829128488581438447366222992772396726571475481711246795784294397794395797570983344149709539311426557098592843107672214897751066337246394375934744473408501268247423045120011642511019196219340680742448655891507447716686826158811151294603419867379456492444964168439284692801044661981275475064432081694756091414245650947455039182971281952342217985521913038478008398315817599629269395321152392730510313074027554930036089062470750722701078795756390582590312962592500570072426386306496021621314678108904619994797516574595395434309560325231006071504966017930451366067322282969273488171485404746294975553155922414965646219814362512555060344429778258806990476975927553781701894442467253122011669736429565236742902836533342537507601284253715727631869621437797954497553379208325872212965624217027042611331138146131372425399472876970100405850541751335138879476175350874008435258609288832049685541432998750278598822478736215981755784451300866328984626760564532054815972732698079875261870581293170531331481170710595931669223915778366011188574371431387902782967720472769569220400061437406634307563445705908682546107261673144700992702664780859970030492639403328465546987722678806235187542030776558313050101826611832367749710020613012012800041551089010136753739185191176751324536720601529695108118581860059552139828885714749488148256887059469469778533416455723499333409200994852173339147911634194811892570607962227582444177963970943814580953582431785600972353139581685067090259813524888324449693472074471943095125723044912075622162909216508864775673647658336290013491040949322410585787375679543999211002877630481321715725248721375646058252396191798291994450508837405837339977035357279971042755346868333822647239958649984889108329626915811693307873002188040698108374006889662429688735044856309375200289294636443448294720804190643526661559927715238254581252140337405517389769528026899871036648189056122878152432298144076536614892567287068892338254836575309654026521871858138331637226191041309432533307873048192272769329903692731648887344275438357479889637416659753559774675430571233327968846014318971283661901616524586565307210844460969643339076059124955844888241492851199168383352884173952100413890936189916056437833166182661803235795893234633069456793891695047364557874160459261917499786088133386146080871397386578894261898081024956414223028637847841912530343383547713929702619226768451546977864409778196798907498393650683207287643315601937372266859352654684045215754371376969349251099843522798201234909555411950179081517734504523046818496100045937550168035652015254223529166608986525365267926251703677593773640425851579358455314597561002766502129732621886278094586837956406266210660522623050140686705883751016265053486738765812275980634601282924320525558113941247372088862378676720217250558762148794468066868855976448036954772505436944811173091616477297491814551988137317083174189625648180450335651859094111808850084773198489873192323744220412002783376442753442959526497512234920382062624143802475598928878685019420095093371868834486598020503285185694682415482136583671297332155649389191904435590461777108029913366897197936394010451419871193795775298128325863272330555816821689964687839429770540366782880430139393780829695739310976107437859883050840104066258295594419456094823010814389947128639025938343901831977778363343047525617004351321199772173000484824217626787931524123596607037456791883281801815817549924296941961212638962362048491442323992326122381848488831817676968710774187561878284770564789058267710738668412130131189906547389436228272181624014003924729711544115924198946644869438972918126726250212445379445955720427880141361261600109473978518537176307867187531863358273440416430928512490949349657972066851832746788153825424553754323668743017939481726412551411240873214640341463320875814972723586950972265763055503190182190621477093400389171885814636440026340497905416780914462154077611032760099808958841863535877070084307684955183119220372127883690960066287290526523327310528681702327576793245312335926690852748684622414408187369447283548182947261023453796284528267300225329468770135162756312088387445780175718820564956143537145793596006263779954217806047880443451024584225699250415768364315992916812774289974388328335600576983380232359005710131850037472344325618945476783939256795730583945185493213326164905536794167243555589290972686628978182694171060007033161445695940995732124949034507227282778567639396039941727594932999099133827704981589596647568442686640871178292366701058796629467544244634306623281680477820849700392347347457144071669456935831772457600697421539221484339153924805805339885618062464872509961783286496952528071032803171550231012917815253301712016712901284262041943679583359780658138623794528664887287229221105515179152813453677179553640099343836501864260611748810031762792624583237356148839391609996378797662886485711600212732145952807725849104588651652815974720261755682386945615302207719227423293423288076599188749852375989872227674437410831288787288887659822887574687107769184762978249606010579016950868295503909679820399988127753308131409807785320240136270982073223945773609816737773214253600384900096070311569674355542107518063646246931822815580636893000042126711139548890841967388817492663990916497545237718325192540414063325592105354901329448095334813756238340539958608764378303243539890424137672792184536145800664917650363423757956365566622385881028169904133697743318952215087902602187275971530303111279308847989257173568450360064927790325976456564813415022286383888080476458420641624756966536549254613633236391684298056137821797789735548808540144725063124402835904643651650821884086388563864569631280609488105704777343284501217874426890559648081581683816143781030102788060876665888465569985792026696949463074371956295951902542301527144451434460790130467085960240371457421887552823848197731376758641075033272672306769947076037506264526572261523267329776541366857312354378319669177744517471862898745464331698636883092406605302713053033932338308454389739199725227115382383322895100062592065900452449434563011355928718544859455583948808502285824812816235831563316411029011330220673871864584354558729949353719416838490128128571502926527313710227644162920113262512375043084108655858021929436085740160708475928536395810164149447215518994248438500976306044810792584352176417504508693522282853866213380813439658896230881578082928941438194513864150713245244901553031265076946741743342238790031484390200196887809248280992847996306501992071527738837949116760907508445834829639761814985756009602519956835537757512799298802493718178862376859036795862414727718110634564821518974744007194273523150762108601989105785963027248059602870210804227290341438059342833889035241009997938769306194705887690825017522838868868916869951031481632270527271712944866426856398095572187850948433660573095247313485826777867086461345565180534568236557621738891781194286273172502804717309458860275062331627168652720445363419499819133740675382299581400072020788309303018862519785509567101024442382937358351093119098682296430500204288088641664198608071770911737484682857293247280678302868861586830206866978177204112180279067220008493238180175296890222155450857735751737551208670466181480906194908586402234957739623506648975830430221297775407113024614014690277030660908226761351715729486208298980074584241848671631810040440353474737830175457980106165057386053565566918013379436390418738137761765160555338592747006920612696739229560956061545182009241431464149612982100869757273678525645782477704142674285739981678246505070725641379207030074190699201409174043800823443789659833034558679248037530468858494918866783009434187100498115801436157082582720033910187253034827499749954984755137627425042308074790705079405951909638876762592006298493138344832575037453072644225775516896830810226603770441330562214293795356997003951908011795296381707040966113856898458415864154613762652072457370044439356074510589366254443154666195232132139937955745520820830245968152107334290606910866112512352535677767298708484797683081318800943659692526936378976125309569332952357867930016059654355185776648041737876943990755227098239675802495717062878304564954464566157764648810604657430238720477465248240541481919002488385263782664789522713879551245130821458923115662310262874994049153508012523175925958797776742063511800304780017247542666809858698687140395147402365631134207110878810397255626871775638067283054998996012758992278148328177550351062315462917857087896309061221616220619393243742119569925655355029838834313133212938199334775292105731387281991705382564534161659067080308147002598497627124804068362772808791754223311889626876200701818795724114436018701983861086536931836067102155604521710775001162147818517962916745962604058026979649551579354154886401696971568277925966098620199468200258298895024097617831419649127670987410010430081687988417298560025758490419959985997193835345570370303462473925935687453428007786557154744366377451013226909414912825523131562867545189221217857152489238008043492055850243743710634292574276455142422480892706130368773631050577867232521618107487292605694310713549292606283504336158913849501818750028412286534589450712314566654473960029235890247586981225919444827791088368026744647437312019265499057319166611447727727008623761280842215458218472230207411924826477237584937049140053215348357139446455594605975789154617066883993936525418417218920579466814703229109181137489687090400301791374304688384891923251470527609307065988385138183620296145161436334917603518608495666511968349920682106730262979632151136680448426865059069777147422737537079107018922893336338080330433771069304217165327033080106849667118781260983675681381999011800128712086991448242126810990207333754982124221106649726577664018641971789697422117524989717948062848532565912531469797515641165606004123515701622792889340356904526232408079447419808468282049101694281255505790218190637591714442615832549655857291804187077329622817656512100784350341788849557887958434661446891744187934233486991006024061563594069331374120321685131227841273154604132254232931593051040106621497610972550751210199955426938199810961374718094374062795018996965971249212191037952496428925571956349090811173910352132904173137816028614320153226826884431064829055077287671716582153813509136186691009995356238829737530624357293580220877563835716906069844596590969242084644244990754884805224738775538320867627873174761985421947888591620677117949394309140911774254409225123228813340984786433962275153585383403121689896524127416760149630871075190739656941696329250621120059980669452302269904469618804738631250965696022061669796453968325730532677178935263199411877475713492989617302704728034456244139458168894398258498397612336123040624603374145542666475773514649578580078178334013711333119845919434939318411168724696469265664545147218281821452342625698032973594673578295780168087676091915014954822453761429301166172714017306981836820887447457788654484642411133235475529775162265426407985831800896677964035841918841173981250544908062716367856337093027061245949262288240803630698857552216171381478997267461766874406644935080387370617366571142520279958907438874311008356317345336276782073442832086071098439518103776176900528346123755429780135562218725856936501766086166106747457481120413479055731986019207812068454399476984889937726493393915653507715715596974553305444924778041646252246174194556354379672435271909117544154789538842221218210350902816825581048294320408094565420545928935084884372642221056817593216376786335691533447822854082086824605886260196274791841266261004848845182413039632878230274465175879715164755067896826590652209762022302380731045947071970101633725573632815745576441254709312367045218576441172296095008546789715958940207041389891133541748197753344614550790122534682154692588490163914429107591026145133425293360958225679813586293192921807776187460891606830131035683794554608420865466278876477216048859014707425034107569963911166045163256387397402730702846716732439873418803666331822632664374768610969542352161276980906322456739014384243600251408865780454774862782679349677104843534307480414832050758693541036955302023312079474444101619546042561067522110036036673584458163883198459434377960308982462505691126245460914279416873728145252767446159558720544255332673673876759432854162903673211467862672016433657056391763399301453735234586934799884047405629676647618760714521823200431446714032441661103818212630937563358348635220810256947132479924117243459199536927511958306510084435135877656575047809775287002486694965365510185793468223334590802659448628900660115354296142765588313453923403720132307234369025378040994673164728975413979785109467293806893352525582138919884121426601312209655660208878517675992125594208862545848780250326695178421947712224659278856468678769463609939041920593122710361756352544136682647153478788787653822474584417776984771839881177178293269868827748070493010447949763070105436493177374150113035672323807651339490251425379986058762466461413578420656285879818392500220556055908700593332494004644108850338009346081866914405764293757258523388000391400906340397284805622556049919942501538285690391583860854771338663005256688896780329956217337815535690403352381550272280131812677376918900175929061211435347459366917403869002882230627279385498049634543685779957737248823551944491251981549048724136683639310367865675809179125606671116618336818879495548147916654445560048477004450958594652615434427480087060058039272907530524100156022575227391832085763880786931838427132398657428850115228344723724730235652474811362603273250419148865117096964336976208959568492154507819772253745077361858413874532242511742898621938491335754278743741757010201161020045025753747174608462776786797440146500797214126106973081910918770896438978835769882296774654816299211079006778332336177113390791600111562285690153787811476755398091095370196849964859919765524471180407492392591442719477028246107690520928119518841752706867614666677792098388468227564253207257879122512642894795246493411830118303618472975835716683505516010833887221964533956685077847510342574403903489481047892154888769703682563211072883977925722952057132756285756047990506087152353551217280207933908576475835782999362247391906945677348312703614083822467771727506916032525617383691456178671080351984214863794537718360609361560766682905508989782456152917670545708504949769571205104689489042258828470060909391232718043817181774862669928900027929542842104062856564039184613334165996820017041306710276308745254228614908891895485775836952942691064635017721697137286780732829651015362493015964701418952331462480537708486039612127732724176685751397421934859064448313264562073075208148358464450516798095207765251807872145480704087781848251826496139821980981358193803409345133522129258015502645006406901857333593498048369877685798844327740950577710514111482221307617914183763858783633443784421153315537371537631386190177245994426340587198335243013510935094687258822244389792052096604456165388571674966262269262450247386473852154723862485667000201100607843491101377499328534710481207671391960709916377589176970105503133153830631869580481417226394523379933848077914152134624744461909199067589201318250065256327520567918197604919519416307291985368214286778193503253618789825799900345676184152453264147661807802243653529975022827313471296178109249104660214110717688129965684868177731404470832764146703307948147010207184408441596226652640334175621316007929743108932830843648166953986969124015081541376570783631097780704130450641310797032639485381557287509903140941623389460164078299203605433184513922638245815807439971037268025591869783343680404578972524269958600917671625837573772777895982424236377828132430868671986680667934512842875802487149846385545428190395799533243351700735738245945706206799243087788602008409548642077389856912862313201784967225603529161240022409607322197731408197817804383233449883659152819569550950627443891499471231894058194085382577356969246867367248414620191627504373708825015549453918804244513103786088976573326733708991939933944368048767892824417178017075390414423860105042589354890737338807473454612435053707808953945609901169869834522816617050676501723269019761672787361405501382883520899530808900769362574748308861873262523074743019890186244299228913795219898935451054587416482044848857268017911961984660155565647570189413888091010014636944330705859346050825385160595239217123878434922599447154482453382931900085039213628658957971589132173572308215848446079562811071994514012135355279868802911503821850382278329666880635948129260184372865755819788894854076119571269723684801587472178221907984605780548937454175095964359584615151764263298375732377779122452543278546919172424226138039235017360829724595035655906510720626558550986109848183252144039060037308284800165365305581496597962088700264035992196467162755858165904564251310385000740817004960283399424911317689713548903543386025118562809969761566049877796305344444661842221008367087222934730790684284988559136870385792011530838900219442038503574970985966705375068223702051374678342878266317734393478884694536940839302873628320996897404304376636077278726919186230093956724743384308521470685384545494986719404863862836501364310072960044433200164834133536002393148800470480690925019312012343855104915527656560403685218666848566065705852800676343284359715457630952389108965422949269099683066888685155014652733024771835142383893224281413000793619331871475586339822656768733024846975041946260800098885699042693212944186888712045646383627342054106303893185920191439954139059671286126550545673649550965667727055257597586889684212773210257756570907031413441624363966805060273622542438153185994607648500405090931215943970242590545980523301147009965346472807155206503165445755113673156621499270315783836436070443442888236747955920553097370136692505213241156322404833568654323440218601229261885396025533734567543912506209254944649604266440820223770050253688593782113474993054308005671199246916802694479664853140759191985853778958874446212940057015941778653070153806760862756604571160120726733545349096429175466197075582272154391780449048607961883337709259685953997636292628991797318936250295686225396541815963067307049900468046377854023774869893114552998234585751413079330365863566929509165273662524513630574615222769128519820453918968924567420446094885921770878671292493417867994916441183062471745013027015393374491117411581390963622342598219941174446890874546961131893906704545824294021195397386926835759986218886101717584943383234813650795499741211204877108649297449381367324427223504197304065853168255224177673756613158258428328044397432996195192847993724043597584005385781660765415049128838955610225245828865157555396299981497163430426511309773941766473190682889627242258321173988833704986180759494135364571284257362393880729530658165434092136046597605253501937080457729855835105399747307065348652956566894991302164703558405123248737418409881923055102207881670628627541525853113836034161242414815323691216351552695230136111960264964881549522596835377134943621515748970942764817577116329654952187880280861959471763985227388938324653334375278628007406303379488913528519529954407351871415685067283979865009641989738458977287298619754919145058279503852955743399724913110347292899077637403999032069195961499764904914025425468789973449677461959640306493854436909919807800483946345439717788816773651346341336311947813152798007023525887053777172301166979702421484204932117804289169709242444976473815298826462512589978574083909960777079310914485519217956738101090996057624671180483531226032961927307218593203412810181596123699745697533627192870902878661948276577653082102734126998927737182443035754407486661667379763868441355641205755421722739776119105072000040720255421788448509334383518533222179980734559395379392221482025462116870103685527346372673272900395358326286604425630229797649598700597163021402197035884440963902485908956982637977458145317845223928227629739624270380442068865715565047639579096583986095248055329618912109751507477194292359921817416756008104770646279798993785675032387046438552043672004205425241412984939725927659524222364339387412474629458697854239212181365442421910246677175941720140749979397066927700423100667571696851140703330187661322791446740468582056617957963251128119536042720784708113019329899377966678460091567340884368248753877692041147946317309680922203290833828323992802372809534522278547640018905798947432335882297458093460362114691170916485268418969475252260631328955200124268716194128431097274659122262585613685492987751875777793028505793971271206491872866660039394864108032876781167568544309963936314482804904734780382267203816320529294704817314799597795147179443317813593044727658285052922229126589868231003814420531086058473545313668804772166334534588968298895618997116237030285679064779287257919574779466602342923271041316037139307257241336099973209977292732236599559090776579459404518703157204781104966500782487176430887233696291655637872593853661694799237516828425400670322450469133803425129930716790449641803174769064327350380096250786571051201420970392407738730486185253162964888254077553231622305141311545920224891342416701865099587983133583495063718259913368957506066050361889661264925484803931443083510376674457366155841159675551680552436628467412882417843056945355475670648980830764561301270732992702550373120255196657427466739277809683595704530671788441772911769804775018778258622786628163861586208594266996607317054869066147348862018634111837076702382680624675014742107291432420375911215351287657193412516030633295480824850127623515689358494013966006437532801817963550454306344704421821777828741282407215412727932970411217517781783773205725034529132425563442258494335943526558325123687880127224463179014407723813037121053090693988890502765971391512871741142081647811966066593257004344233115988202729725657368104316049814063000501626416820485758747042458151864944177965654849857483727846443742253836763027171767984899243238167072419056346768375608678015272107421349978638456725812678879607001424908426432154149045041287484993860710983790454714381469078679666186708592643765821358115248049073613559173227026785654842562542237977151619914836817195438341841665749764583723622970085648807740509172244679706800831676119401831934695951119950419407217624553152809348994262299028258652748327439328143641277428845972700755401997709644982426815812270019137675611679505523038423406687929509621822408245323699516388784146820987464488983303274230968633722143527088684611140228350496568322954949308269936366141690071491481339218079674379511752727196908739254377515025590090885774674861906104477858872816765052143139015912531355437565881399187541545895790974231198320183453189373975325813359403309241330229871899911868615778777462856177930950935512535496290212910489285990760974931436772529552012652430330644822955669991412039891760610731403626388586665131764556722349655974761864433644736431519617203642683739288499981627852071673729735129558165438184193081998328563517208301392025597246827652184812075366225965353025192805993530319252546477231345068197126111186842957725882955173455514189879765334347746446144787772673787881394572693515516898904771384341267067228140070126509887816672766443202958741263610111382672751360547284881231682989400701208794433238215539003425788056579768387474993258885662709990812517812391823628793501491638526687042087215759987425893884419144473042449696511821584531149910422906181333160091966601088646600508491612130409809225840964881880624870999680631584936096935128000285062488927485138495040289984312178675514540117672698455702759690295921941577459678400632422340933207781461701601880122116028477805038936166367505341726499862037689808301122903479159793746375510944247035015679460870675618778898703485384751837681862805941634403199030370062786107264058220321544695089231536399145495675038361174842970520109781509899758742045483304340883033477103504193952954880034186363717890765086927744616925325427519934541745185397200402334270343686802342432242171590131547268519470614702346419661185132622167725594251491311025994844524365079769268074854543444451090809385193869667795646658606626999949814012911701324898607785122059469580717551962294807032869141102144590222350074625939359572025218996998608076070200467810417290186891870405845612585037852061029728541685825291287578038431868052109434969394921101305689378811731672829244146120994429266104129555283493875716112471483897140033053637016153324115475056799239637782640851785510511991299564441292300914244177654816662040081144035126263896811188917503770348195798385158660100967398489568157651708956142944637547599830870572382819689438596992389703962926382915542816877528052953307006162773088351644845061336829613576813412916405145449922721465739640434078215166983998430181672480445966580365454152313573626596935031031011141670585748329468836933050267942550572404546668936322736931335187434845984329043890397930907877153348594032980227995552054580475272122122925978715294047750598893373552398975721303933432945844409345203485001310540185062422741734463653367699029127299435711438239152373827210093046786263258215494472935772492434966190991272710341954386626052882272030205188926354928953866781440180828435019808304210642623890472481162507612772507362005014099096287872217054708985320475618900679272519642502008288859761604000893163380581469531316113304979380597493621999560137969890000972796192631962770049902478976542511883743954955059834742870780426008729481095217564839226064422822347170355723610392980423056927766368445207533752786403357664424209812803667723170498618882991434086998178081142459287216849547812981653950823629097536880978322584036272254490055804068461970191211191245320797375856332432429958878044632212285694012183158899703430582274259292237949300782828987026117806976616139814406999918085497365906214627114281720516883190374666968021769551375211133940238306290024368958911162968266800936006979928881531158019382317976915222882095455736515414089375496304399873932723196698712035707265946675351945036382225202818607339554609329758268019415322888563848821221564631499433515851730212665364333651892182937343470710805478051471463602559629258256573903797071821901147902103287876777782349635523345611884964588572711189568301779776013120912667000560092155762937606524302693241527438344690257583464540581541092383264786078018477248295154461956846562441207532727313863808409516574346556171592716103669614420036188951648180369858388504374254505185875789252985528749302772450350930619027332454645293114854384542254520448888707826912548802921145943645694074971839252202326198850811713352373341770399967731378655416377362617025616413719108005419063289636115220902719199810663930721953288449403409790544684335972035111037689863734835640215969913280260876187290084655068782976298377750413187896730219420664469863517004425178142942015384421882402752700016230929747751770611292017980783486887481712064438643534651854194975870305726813975246191150127259917505879393539115243459401595460916815416087608738466622370054338829844023045325325893393234802082906932920782842510420244033678054858775594529163914666602487447550641319192797679008741080481622617105732659337485060519332231965330559592918468794265016149778310212080785886972192625721508222778678986646566127380859304356309548496637685492662606184043767394818163069108137770789548379603529127606906556142654251081577134239955726732339964056776682077035880684735286659589673476076055405981148819559491148063424996880538373995931851041432588734848493726351531684419123442318621916843653438539796309385807181471070634853045210904051444340164849738437792592090799068016876241582333790806343695408163004113463849319596743233775374390915994561995890064499575084277181511496517127437814121050709991551356602068170086066158419586849478505244314225544490205867845162797928184226595779825609313319302532622004671077177447469731943649751949086707691325352348769507592079967974830800628614055165452819247745359207815591146684876435069034631512040654285801096987149654191423640254683488106003252700583176049607713750810264447138842622200296523788360728372744263501208125732320330329066941228156295879981789168606050790777412742623527342873647927949519452716879912046822426000290128523400740745763818575863969931570329983593159274878085242315603433839747801022278425554570233619791755005421961672277237212861026608383141479044250947281739802801825238341152842308478744937791878448226553909391521483606663003952165074344625229351139716570783927087918043012320114815071031761079883573158463695761772599755620258865533386444477722378029058940172760508730731276709698865077265945736841370230858154344594649584486437632525650969289873981421029878574423283478373792313573316835556552175898965442217833265379310238964643760333340521272375366427319862858989977188542456130231715369872695364849385318729785178279601509705816354898053174597153208496557932138183155677400074762001625392411519737342722032241492856255253131143341664571288713539047802577467359938131495381432542242035355219211522794435572845580466536468264639793981295153792548316912646677737500702869930664353342035220867766369979862715290974534069330300424723830667130009415152677216111154482401079060944962117812017397957384259388238682680805998643578671368304077788968327839236763459263331650062155686870831970805425030915068165736700556940535187998668365381343615132201451781138538520262688155702648010188816551327416861981053580204695941761117760559501933688901225577920599587764664589318143580506450620217726493304935343207381421171066997064717059698351069749308212058005760184312135221075816411420520967458181792236043662521293203752289007657013379972078569171318287974225864013510792945051444538533426340642940378431933136460057123453792126706350693986832498213405765792837530055381148027515053826457200496779454442936515221963257511005039751024146035330079740793614651521363612253270704321361374473378221455644745911382309360875449438957904385574767729176789864263176436218632798647423497617003185254201638409256740457608031519529683424788880395093451546043336468225488357604569598322090107526508320228558613368489580852469248289853831719567016242121542554530266673497341921568664175270662190267989656026868913337764366233117613149164942897356172208826680458270068113050915583104633315105425415965103106176792381645876618568767614412167184240031726061531293386412948857237684479101407437223451898936395440503217803514309443355287321905479998619615171627484587627454587260126306099047571703409055434330160217175631221984074161047521341869210841899878644528136167116660696713579927931720389706883435782679921024208221508752629698292106107990344453316572866857856107693551155131295030432527554598374082890900865051276056250483139472810474721623833252905948718263590692847929910142178330142464779576852805519411122304937946845221295194160965931614207238562850500262483845973949365336654975834877832066243888710768814303283664408844650758256606071884446651428405878289860752917340952023601056528394705926793311707558049117614478514489750300278451901098375174025157256401154157738975953560512593474506929278106624125505013932120326074362168428395556076129352194224048469212502670052527090656092050072011618358766674628184402511486256835909026305664101200156205020887029052986146732579433559772796536714387629209609568879890838663919932819685437907701300612272886522031793788117398961459447690523298156362674628304235171295633756427497571363930211625915190873778525743289934723380708606255087285321322593443227016651293617370426995610403931538649549485540868877708909590767606750486553592423643600980360231140251824414607557050254003975791329237505705749472875784853888523294064593975045734909288114135133152572201706202486359771653298025288255649754890981997977559746250409487981100000277443183715605776097876196001484159339136363604584754144526583581853346536914405720601710879147175509031650520981884634687113255012154285712446487393962084402918994498233302317222349586496460991366553807549476870165589196283044803753044904587843725128977529887504942491247249727429193580132484761901788443851592125006855635509748886658338836069722510878033344579197998244219729797466127473189129722282642337865622767810201595063452011504945855720427951428167580972871996644753130859938592865557438386426691524962209420518097574551524466571614657403320367565680178720012868824794123958656790659413528850375453842751166198672206181473037752441165672285184036208997393629569903568340428936745882581686520802722412094136442100723836830994933590274461607641522937568129026045949070934194564337847504221710579831995326223950269579118415797554671278671355214373417774702744299440766912174663067552251997029708388098735858693970904630937512627080059190796152268473484109271851336041525780207191399959907208897725931423525055238163931752914900581038069432919298630531369259014746748418148554011231019476954836193119617986873406510410872172790323109596135654009738717061372813525560452584704203242362269040845128938282084126986761123977937648305442115895392342396803634879789296058536366691552807249646872904375155375414548831367189214714899342091045255214653224587292760860496681595696835795719306513104175291445567827400730916225461543262695215211334992967802221915350129111491502354343773606266812337546391292235139878381746651397541421445620805294315088305807323790549620842366832482600992385829360188115016011587308442533921819762821984444010477297497161402240622940763483574987034927350596181398536967844809349257760680695224666630308938564007848261635134175725355888788079048829319384461377801093605805819189594501767156110186644070640618853931466240330742295714354625352940367948771477977523739286711472292344314495466365949661442206314569193513009221334828508026743183200968161146223832349016748681186813324871822186720600558299090611780020536082011432587437604301875142653738870823488297111340456179097394087011891758741388132438565845703479175458153958635020326343762837700865418574515346617843400644694807430994596622532341967240590423590213964584967441866472592697946537615886690438765942652428985703372039202701072448810820493559920371302680569236637852762274776738644172841673623523523883834932482803281041337565667714483262129200963547905845838344780256232122835202212503373800193006294933299525058172921685958670434542200764356777680675365483926532048074354003938787884444562694633583771014822497088539429146643942138582411133506254606803302384855820627828667291550750895012870080987007152647627794810619623273139152650278751119169995492074002082629894137861592768305562381818118247330538837120377501620578076397959449288610667515590052295778857792479896821547342311011590957600556494706880039459211639376588825409734953277982674819010792603742004867968275171313165006236501944879962002406030969094972539738495584645094632903092697460944870001542705378919919346446962618526386252044085688176407890780060549163777876037358201097990490187644515265239304947412543538410112973195829162212639214399818223639457433075506182723926337448840863452896279718925762815074599760716561566872052362020109477542956292747050720499572596737240435864157646658355415794973557182877944208400181496199224805354018740605501798116735286587639554296502010144662559295390914999090459048300665690073918567563084247442805854436001059120075994329471554489506731276043893353334141295526196407693912074361512554551047794099266352538745322136537039924816717708506540412559090260831023938615420851268635838608774055892052543260304567901990074696798911623637523722605035872153635646444508964557874523275819592400889548422780345493253479881040232973878028041388722281861434640252392527210926022832903691638549448770048347823220694216982708231278030399163145128917155302339519405005198788903000667365465006959835852346853036962267703907215830341697695766772180069836540287084060165929562210182075079281810811148228039297133279254837671409578699709761652456137104145344616272730241510354226191334810187616239079186860398786837795546730661958394486430724254489588220971636254408157777788789710211567475766943596921211043934584023872071572553728203019599183201295592803490505357702940837685521735355409974624384530618584870991360470197530981377412114879892049398606776134885035988385629925594673638231695825540664498948493120289497620497026813585977622941643604582510058718592842325253472997493511942438230037921482135393960904918204914367028464597397471931285360623295766414880353979299576859969832234690464038506368120511747580229246660816190284706951917772836613388789464442293817473649472873466358693668889029367748962588444484122865957019425294552837753190964422129582142972084112284974459525944756171131037155070448697144180522226377198395656699278312953136126472252220068232696653021681230192127304083523995058064418090235506421801978695674005444575552090974088173046332414630812151300390361988543250201971136366463889325581397512321456141804928721394191787574872310873140386958980663403603136695609242980640358394589752475925513973396495969690283975853840318127858549441483452889524697573750620058930981487115714494501333400608179016379148239140498696441294293589840536622009515567564425551509815636921973996634326622292771745727230950489071715423620530615778663834822710332506617114891336383285517593205770704287623002809864997734512045040897463846899495766751417905183449106441439723874117576580506763161759109491730820162749362920828570782942273553045507147707007021198362227812533956161086806957240605208888363647017386419483236189232577657937767527688916689498931989565234018933019553691431755991417092577434745229931617634378106691705294095682003302867486025367278438381068543651994747112552965366850219500219561660187759381044773381861162636541992579662993006038716856554860984648679368888395969254066343095054707454195809226989971663690123733440878927011944461757303879838308262983727882543671744863505420878141397185621285606019743145855127616134629018375352918368542465533551437557000445181867862895368426825110277021644774866697299213992949523392135364486240606791290884159172161694290207261714472826552787669860579715192801013128567831772282979630512103030857924005389071778687859292391352526607148170334162188550977837499907190778658830952353631453207589706189945066954095959064499053552372089021099653416256721738688291889666566551989338551366106973135573795524030992267957415646366784214103588875477257078824558797035923836244551328888978881785139019293008364766953902816754812336675796953205848407032600992576433594681993398877479547631416292586230926489089101622741415019401849266287401268177202711528458264741091008349708647951873919939369539430630055963008541961510876958289357049774163251828941417005846034274863482152453745326293635706771898165755399777707666805842995196142390833621438157285626003710003006462112074305153126572173280146645860122722245232164238515836038804589588821907325255347541540654835860368623737868634740596909334939367723925338949621703072001148792738890459589581897767871993367470413482599927302240308789924315027033444519651219344772559085486612494831308631874862853100540161686448149027424924737586411574565011389663556879656764857473389819482764529784005753451562037642239598858341429787514920364337339803571425439523562151487993871916418798357382147017846775926372521785150927899463031756751294516975460706153742175740530586050774065123773608400499681567729853201107706535389751817866319283831761348736802188769567255083213052850175407333707874953290258175114272747613993375484982022048953464648500238173183069976247153122006908354464732173896052397711935466539935392190465939691050978065509189193536458448928382832785142523071654857209754201305335922205755686848848055700269611242312135982333476379080579217517215002160337099763616416916306353640704104451605101967756046348646071562941781688565989105784926963051529784324015785396923014597737181970564130573756533081605852801405242265098109009622099167058635951196833830113008244575870779401164756720389304055128509548340589432195668343195867356157319297563785432697267067373042987534477360910198877028860859459769404070493973489779719463514480578461097694986029157464329209658764114814376476842635419772900114396883825660208768286714553303554516439448592775567323953782539097981091918654367737117431264169001431617265517949279893721986936610230775680374331453475359495424868029497575450045105846727417013080117493340682018167034287167336557692317678593705317068346205025670790691322573959917158307303849563592832706022367333977318679417914128130944262958880721100556004122998581763317050312360313348217259039396760787886585958832769622029035125774958857134739527955583420749305878159265717654794303318191726568575245443225735007833301433097092068058293897251711889189131921961724805321066989300154357219612317332294075711423986130819427736593313784776406432204167788273433797829449556561579515388256477413465353645765178126500588135201383452516163962061284880199752503960907834040673814929088335886096571347631150692832898390371188718895505671989041645027824361043103810412830032090483165600689993074224706754352405118882339202229769975972378921695189480893885107113960461021474749654724071119692758372292542881259371595273972678359772804505585360564543521387229215338880563887793753482910311164174971553745008987408477943108138322118928886782773467711888902083848249126725795417137734050962750301418351752075425576501013174458616805890247194868133133348632684620239475770752711258709179721876285130550234666538684558105149367974403764235602012661279851781890918393268030765880103097919528240587396200213192668270316847274851024658738275905404648083434975065000721025522147775404530943762450782254864194398267179267466937087339749917893034494001848101738862480202482168318443967764243116675687390582630633158429362403637131077269062165906993378693465096007647397345313607269379285638659476471128551428188847608382514180008797069416060940192142632608039927765667027605827144713355633824509560786280225786079546203656572714954575268314530806860377880585778068088951383136481007891622897306154094673965301029838758716282296152130622135639242368617142386541129852456702021964192539097625758653683916821653763620871742850151894901107128540385041574993025689646588802763628949920130285899020386633075704025973311211545175796988515763932655767754851047095957523488303961255857975264781082831823116982904582161239569965341805972424276098612179477266379582508063132510571724966694895224590902014188727582311635366798527731180958334569568882242347230886703211271674213967434035146838334411715715260599958572863607343541176238288346819757215770130139903456520414713913629441191648640757884026516560747410479206630988931566457096916309654504928696969545342682818424110616978360662336737186377402013668709364527514491461219366281531092471768341184682859046001704435048722253835848927719917977152393482296682629658883581037432418840635938769547343500919853726831343852757332421569195721814220174070643802344478050209302499457558958515742301852287201944801271782180391398259865545673110289366682915344297202304213146462321497463063505650665774954877242370913188345424251218510295025065172427872829289569681158858386247309118210340590720518978163189254473404981584269175122003454276541897944168203591119336256215288161484926570551178594097440548081142744137467200197920500346408948508818121312700099537233869275223719164638770668512155991094617484704956372849799927794867176966044037803137084995376131709692540208582188344124499161668866254139845035096669378045687019500574085187628143251371528147395372062310948573047162098602972046647639883981839637603740285635252918859304172073216555100541198504886244882032983042528357999533235838140810627593833013086251100371993082449296616179543331079890779794721757217254866182141555675166785462705732540614465705016452777312280566521054588926092563831392269295717960983312862708801676735557984112689101476953907036307906455531508521036561819753190492483562967536877723623294362329849206878969000660475500401684415713567963234422993153411214284836131063069476208113994209887038509398307944383167141810616937384213708505968479474510829089525584155932914762446864388275814709870298023509749303448641593870765509525791514819735096662629801831607514487686115307102197584531037234044405516884999304979235890217798845585547835344161022100697834606535021172521795567609238554351278166479666656118926449449029226571175264984503090814727277821117676392832954120123122571113363649719957410641132422927412522361734146203251267667558067333640861870984047646730680830951331058878272377525488338060302480180674447782621508973978270134105430209248770557000824988259140131404588562431297189823974078575787751992934906263452696594674523446302811846843483924774680400391687720981470444328074881244982596093030507296870146767139532889981233577848046580402666443973701494120615051056839333159657901073669003075281627825266005524498253845902445039738700758150391141161482314549275307309705892157814423500648321189311649381330489267386380783281317228908011259389671503391394379272377341581102734873922332124156060598492063337795694430392935726264398564385271144679663215695078757650991159145202491816664634991031234436210073155839098651816569648511141971538151437037952377319518364074803318066609811298297619196490383997741680295257277263195437756564367747616986232591021818518473747726227638392141424172203242304492054065944924033799428493765126667201313804403069295209254464009441656014641458660062150049287517310749454422475639683874810026478940075492723850797797721024761521554956421707442353280292079241317998303667329377399231706865426328408559258625230319994366043199532016799203443264854010457021878716588638644391924924135700727878762890127335595600329155985642880776491994395953015723392347140800488046860591537356820709899994546345962826478410947195175336172230358774260310262177833695567129389678392441883862498792861555995702771378887058744553764063186721496654452812432702833032656588362545989069935205208987906642233827417681968329210076853697333187839604437369474016984675994677166293368539784569471642082036278174120759167964667367975139399658258043804120175105090832236679624084503907075430707157629088283913197956199975393834761183668756291155583626769240325107685639335547782826641406931403410873080028380001725790438782230569553689161264122453470842887952910685266229853168915078956275964135652188128401852252517389694836574499285061813715421542010357541456804652170650814481500704042029576545803594533122687790000802362349238759846630191362520125946960894476886878403948465590504399183526930645010269957607808623020383435105535336406864980587222198883572333995005199659116943444413773973423052396928345330217067982863137337962225192796551964892820501997421903660708230788039094544090426823896726822478159738635251037046516627319462025219370051806445163242829389975166888852431234290658606903028982827903861092446544386939159168134240540591008189978383415207624317836190231017249302496064156773797922963566160846582615712180913351664143757127702369683460652754477628534515012946684511149507088987812423667513785861879197362478753213588845268024044001181435941820957577708553519684166036456850710006206644001602618903779524214864457889403687838779169537517016727079063736764341982175734498735472795428534243377111836587069167182911433078160545048073392071769086169894558787971253817496769144204439240333326062456121523986386380792820719073492167602196492266519606450355364951924601757003386018376906011023275675492390856771372055503671730554402865193013929964191006775792639352049835345759818146498931971849596190046515007457137528079134144971554136887139470778157854425624021406207653617489708525653069818300829644930700407346475874279437840619977539034367805380443971096758301789879646391327453730826385621154596429696251586406688877486175280075618771257895889026401882224370074333776814971742772572914523276685879569985045959623969118536742475567204778068428586328018600105076920059528850524733938511633018612301882901859349573053739379538523030208552448889567008459063252854170193287441867032268702732911860605874692493212801010385123989472865704817719661893311148480291010078128600418631292390527557716804778641513978287862576182863151125569024444099395233735445033668073775554934298444678373572080881472747388999077937428456320783670799959823996832817270658174272749052583278979579978083198326322774612531047599162036873703012805234188784949671142087508425687072415265340818794264228327745772805555018971486213772983665709381350239170617110833739550412306703420090431102318266577596913268206434201312001743580894620506961225756490009846561243046064746491216136925118395191517710216933256468241439195518184168425597798765059743114986265854540768037150630898847511138724222656519384331856934356344604313209785109943709442788719997112334887454018406856852363760445869664848335002977692339930818840863349536674582034910771042839205738237233817002927674096062864913168139379139153804083299679052617836581791698894232487958719921928410631826170143475306797250369687881667298500749466354064897852004359578907065395792797326464568685410596107809960242366168960442873005472976206783694983846815484038255140688186828487982529152793040577755571005631045805598809304996115519858017785888559378460413622664743647535714705925325961392209753783727699020459633404537848559458238821570704813954273582284107796176381302476968038653053712482660754856759605055429354503628461561524440727192612026215275905971482573378150272065548641483175029520543352304840999695789806322437889183556701794860715594431621367318988853911645287147037177852994945352202784410640180727472997741261445785824634173365931897051647747242721034143482772272080173742993137110192380499035814751690246375357480993884189969336892107941488128169790355251784639811462185558630245984277212701333024758832746750993307873146283739678022522507530214920362501934174136746631033791824543187557834095949186557384858057241265799895765699664666619910710418548089688203349316909931524471698304921890942189763834631886996859998067185235859310530148191426646617233697486338253406892847055377624019472818326114746468662984579882964111138908428308959573891190121347362160520113003877491249800172595856576791782091925521164261012222497034506833892159141872754984520453956483479015718537225593155652632469744673350873960316665288491281259261420752133609911440588244661944013692316394483834686186334610048180242741373427209884452131643729641748930173466002244253048041374526276643579284100224884178925238225169482481158938919137325478092501216916124895660750998616985754821688932273367309716657484377681286176172791360426132566104252764200752728652831483408137678825361607492852840422328752832511970050741832163720497402138182012630792877362763454093182872650690351300326522507620996977778529280128137671770291017020118258159655755390213641993598027436944491378471060506332737027178717685510476963837444216634863976476840431892550473716072453982916563614756545702189298534136517967575093229910583512563207374489002040010945907563516360032220554878529969615028494983515624160600630988407350203704631507955690298631598997299941117611937192937457370046782114119833509253505483783497442775326577736151369773330179731802056830365199314116465888050224449613734924787222027115693125595008666203930878412730105041783893512165579387601243842381371561738364484747599795775925769476834308801720437184984597953760757279705142081556026847131402460292206527824869636160042371805249580244931621811129560307374529418362014502495197521101460874970995814410927686836236809788055617911221313043253913461137809504071082142250644210837774455786337053625670584449011567276750295080082856337119054956613680531924394660012511803362031679064965915082946426929394621059776387941461581683505201482344919331701312134995836730550895415943018372159711115388996090717006172953305082747605260608736871261619108371119603382154227120410497714978269424160613836842794602235983894462170718312500203310208916986926828297315875413167141637972186500669852301954229173621244047649197055300050436587288187559977275997692719989117298545437851558264619671605376450387600088805103789493305249836633876248349781314567445893947659855232790527078634398358109219605635498757786513386494941420940718521929278461651256275976784793659600913793905689178957389625246233659868538597657871673875029771329599758574764153814918448827456823089429479546056706645202182850039255899050803048570654110720411753975126198124524646060366779329583782515838537948481697609313971464143709150334025078065809793685719913443534939830525549736810463894625550687138314304769764427508631943801715418880302430785462303684117879012610294719168771113682878343109406705034703314856074756351265919125546016377164497350342603947204352705192232668559874061553333437592250914867987037340080744911362364538929660385608214922564160582063544420318156197439104845366895001142295399511746579723094607723109883485177256006224898772839340295697023297567348599273888586321911382387020602672195278314735689751542772230912070003071651880050795697557497712035070396325225791712396699433775829024349197754646407623315116056989895346025657536058252460193197233544831769121416872441284309373106106864355915738943919145644096253335944194269654369765178226410479139042945953003508593327372936473835982029311234569595194757345946111774837574953605957704382796717463539194842583415983185629739337226024765332950279958596620904377697436625084386872158280284967085869779952677660962896685762844058933077792972388826053547504144671095070602567879218423534632787983500335297980842134031173574528061726476850658358889887352668068474653722086522728583761377477381527138529511116092676752457665223640746363274615345654911217476832699254474260673777657667914517117764935962621017055066904103535944045361193668461314910747218598782401274811012408148289512593753841925869053704160125233785008678567929609627148358606142002284324247749404183625329408450195184749125051266027492046481817612281417172012394728837200627128332819505671831816015772398808057149937575461030278902204456851497618509387476461953311622402714524124985542778348003642535838411667359309090571383585928219005442599198161598029598893782113286918138819219193121888332211962807462789048425966389259650224444091982899460416944342569596272274931398343816228918104114476137674870230999131927233014069418583314542786388135707559412910413782930421159813745102605550274335716923713586927578476684898521849789126591431790703579142607618680491511552947768815672266991213227921868173531762978679414045395517640687528668613720756766013124275177657359983936663043933575973056395802275158403636293296290113615130819797083020959737384053719714826023977587199377778822339799834404154432394434293093008833870405596518185272313159504916690315443515203189629921076420997573620353378439109259980731388662748160435086810340329439716598145466735724526624997236961840273398911921429608078553495039650614736424596922730335981442735907320303099897032906141041968563377916403311569558669705596189383487236578617126433269178187648836912828186934451629599974523894458365558125752651312632091929377559875989573790810872420605347788472174192210889132890290525449343635774407127538026201540166414854532515136866656327666960127421885096792341076292968398015964703765365262902316868010106799963656805460909237254570635585826936537030217615031725557393022219751720464843505983582491076413563699487881646609168481320948180787114669462844043081312980829664435823185510893855073642021010903350567991966401083365760681636030056225847522755339681327649695454437210787400621427395202341101871986643957382964410366878380775227778255169183810058581774976354667208625426353213449553171429086102847517987928035140439834886958062428807031925062864882767972721466471444777719696774607453415989291065098187210588551741766625607761431968366498175351270568289994959121894067560511342270524532722145857346240482631991472603576906076614209692483075001329280102343535850183257406235843353152401080559384214937595875078355608142868452759372768997446738118878038509435619789621654020820246868161249117690690046313804980784153027436926295379770467923250530448567223508290386168693401122598849249416397511374304297090889947206360637597878476505209143256553287903319964114154110369875108227286833965881088725819147753223636228922201104635581882826210538421147819458729623005571662716961379844889363325123410324825365951088219833093012631431000706642091152822035980426072551577329193910202508572341103953219869105031859862423218891858223648065515545911355550742712207391957997522474555704894074264182358496088790426411205207889874020998827257930811514582127392205435294876773819179182552370328717606798933910461040308552736591821882540698460746840099142785326063026921570732902765240694225402155424316863393353191233968253200826770531931147156473213454187535840628598763606701949372385140042840243285374444336727817409013433308461809380475043293951706953300141035498502166770148654825418783611742447567892659638456667409900816286654834851523735653793997261649095840332537847583546018463388193734263872963809651837608514777323391797268828269215608010334295924106418219438231967113150221310866075583993006909761813856753279575206520235575871537697353842584418611004163478266523589340449044579301847498984629622910898554931524793175975737096254481868960961693467013942991271074049995744966534441461868409451193913994554229556825869638453597913969583969661355456592610497571131104783770669860375018994266651063711697852372702699426784656206485421174776490236665628708480770454075806861345263117465303881615785785775072065729599068274579438954302577296880965184025113819515268166737793727266056190516226489587983306180690963035382409530995248327290170202007760621975275217756665234862088138310368299439692030881393926558931542740550923587550793398755581582710685913180810586495086858925042242101765904887337688668912606816971450060686485169084856122984724328559977090138745653488152761714426953941749058518691405600816057771682344834576210042167203486463683591789332736677927959434238533533278884799958706728105069155988437604663049812844363163921290225741711024062347226973156223010460255228064458087909330328267061054862894077987355205429799191045527558923683123130255317456654612304578284193323566458436908894546748863040253831762283481431761849471918160053623203073694500486803870986050193721731210047918579366651414132569585050813848476817117072181411262344199437094452842308556760284273979345519263022915363685740422531799033436561911891293863211052690079423038778065626547630482556479918733740572335104471105195053531492130721965312342230558566167098113038786072235813602590792695512106776215713209355298403277028019210733998321604521188364333401040867205165429098887796647348445094872342149488560340349539083539824041974653605434570086149230114900053110477368970054869003289251607272267360248607169763117851476870047812604012624682425041061077811209219382180631942873416584945078153774838235781260210758126416965299345755932088913257972541726628609752741477692454964691028325026655102016277908124370486312283395955238594412876149878389022004396300245221110178709358252503522432853369253648005134824877198915333938950423238524238600532782376680177771910567410071329771899568665218275164842850766668445535289894420794404349350880321197937247700694070214436485765490173375697022791431382997982036564805557579488316363371319429303734068123200928136636757530142698386279974825263657550595378228177854144674182400927003254989149199134995326485419977087267315709288715913036653988508055015044515651596560202537905109881353974356164933861490068637867927679550584738454718902799280269362306985058299197895323493319883064566995621506047372387491402721901424431403396145192755762271550934434841293461743827103776408001980299865251955706959421336440546255889530982377564407634532421755972658635309338992929608996997324733857860223953639282614130146227745051985819027540875908520965964012821297615422584838210256271797743833925376890078127656326272086120670391018144074107020707062587860034497296663528897016338622849099246075225973956173529625905509125140984576343938391588318793701897862256233686423669816654164585924444974774504968349797429567438686809349099478773302503532008359688512439069554746551522462648176074155218068424556649660598307946351677329461479466198087854513293921380526417878263285248072495876596076573076850016147563192436980453246565223920297366833946784944278844764537651683617088543931796041580603694839401346036503263961161906323433089077438450730841559378864463425160785106303566269870123316137088273744348242392278213828819237646292583511539103593104036944615164625764689314985255517862512696233494164575654475777365304498310010024677820440597092650865801593530381002296668079911971590091603549363672475747298227772714604301192818141677100258471871472730007485944785359295147879651547737968938074296756587815540764423250938062983566788293099414721464649237672441280330458011878263774925135633408393340047956015687610563587117819848819729596750650273828155755691385757763900424467248560658284411765201356352232611917013307146892579801487508079867930505137843073726560261526835264445460678350976573196365519031103866291113906496746339569421880482992606453474468829474071619260061037288796708493789254641022706176618262155048683015655898925997894028255902880225224603118055899440899579696370520282357406057991325888747196678227828223837245934610576061147818242883780610668811727322938947979921045711362399138650264009372609232155980477503414863715706523214527955864208587269904355786463859936879105520923522554610149053673894150298725066558131313290185723202655854911759208608802563557218064360938143633848537651815497823779848250933170437818028540979558999725736893089564008278251470408382915293174445496143980608044892541293489052074010282662244092603694919608877482232090739126959980888505439357472126481290972033523557381446173990925339557095027329034005225040968377245593028548294988635604056189189163113335574730421739972317787518746006255184407044000001890318214144006919972701512761560652051833339365426244939556666198709859495578798742579066839119669803069531621818076804352821327281895558330526630495982444374339372686381546680287636489268002966277065407013685726101494711082405752969010448301067924505914488367169862892934601153671540877240314454254867300211190316354414356153793476632214616111531594881398386366377138695086173293520844886855361474191351029886077616331064732215662170078710369444868949759093082851771411005862700665519550100219830622870769775733270190884089955070024749989500517030097496736539860675684647535110618729433714695507650151746667820313099878662508050979837631037737752794893968023974717615699475879547912005236030105752225517122344850788498922369802337780557291118391732601141493608930805738241983015823616896815845009464660043324269584966313104429174408970105977850365572313086727193831581391786397978503786886376734285443111953199558060993998363215423605161975894982077582469937826270056682534419196026766439492606380859290489179523186896579424188395278253414899583464385047963843121771963912138960538982935874357784358974125121980549635985787932820083498159224986836302772639991108666285988887163914106795504625562426194688447521183648923155107200179634673692694813434802518467747213454673207089013362031602114545636566518191831183649335836068967783913713501867544747346527953456632462425111392572153032792284167159906245547375659456397432713882610035576617891519093366147828853873560658351829374716601118827786086483832014249108463439652312261318331385327119337826506154575743742671307722923501032690310663788085302226097825583737131222063184249778482339293833433693512270593675715494325240647625012978785663178812067436233188206915042101386182772226251256913344947013779163823494979609938315975976287018739018177379208920562529900256532770667586309735975586989630364110588274123365280570372924251186669838676055025790913076598134384275535158236920595880776488573216154266291325196186875653083557109727528984253581472864994056611675621633780044410436201060987398456314392447531706577877473797808930950493653760806597109252511903395177856135077439577775439855666359140394127106946632997932970653355120278960846719716387735525270582778886753105658892493432321406372561153606826559271498328432564888174971394583701224738954686501206290590237043908924162811406898781630446029431687882242738758995520034365354724492124576898083020677212575647995053167101346949387125212320069135870852284390658184698221261894548630495118093645311672050549322889482592929464974528067330461896872114091914260981053087312333583392047876729096970191622701410027175185320704936371276457423964311345812857521177992578558776044080220741183437495474096057611759411427309689296720790321868590223365076294710204702249897793116874429545341600055202681775912850020520063245009258879131405762634431689424611819238131527689281889923916837290571830171919281859872445041105279586477021427010952650451029396900672174178310875637484138963379267800852608233678541550870765135848623526992358900473399763172630521008250447540572711986360061784798256320837851036746447446040413631850931511396612584192168538697658969103286327634988173754999617369417869544738023803048782460584734426584192527711421138886312730620593697227695411173976897566830181877152379144176926769158694963949551119345351716397732399606502546301013828456816314641031993366264034264094250583200603362669330973896051725453428802594549886998761890300373968142284926928648629762057404960123973991330893137622663694570467246764054680748942694765334754386845360236995543722910857426503777440856123259702625300507077795576930132966212158783431685704090194913160563608799074749579206535236251684229437001061182014386368835244639109263059703772268438940186731547412393791089219754069410865387129749435880843473925911254414148033418195918425689259068250856676741953732539343332880422303594827889024614653767796138767266688905745233126447332312581741668176361050271148900113528320268031240484132422927887223502368509268656704007816088685136988805541210484762315296703971433714236587489838177893737610363706312266538371111316810957415339075630819545322668215477665105288131216834626476419038974922768209399586418007561012075106225467628234390151559939329437648609149907007323112308465012109574055738027842847479519386629712411268257513627040537118257936012110769346084845422575659020879990413752700413978763671232552871957068788417505641788669330330273357248568327004203064075794336373829896174519983597489832329453080708970146720034038478893122447865399615576704691838875415036900285670902138965281418110632044001908486068661744470279082961327767193748668739453543027617461091027904053027004441600324842379687664631421298803478656622197299225885587083043448041659270554227567461282296436193749540508360237654390286690222863837838443970591763122755267444847885836443624335994725868346952217589252016082570491810861071076679468812065921791810007722105657681744946647952023515039888819594401078619019697421914280117673244783575557641252333797491408619232683460625243583790834815935008840032150422319198199061650456255310542382104005109780947219816245997090609276475474511966495979383748495437686470691660104376859817964657615866945846582295139541527463290545781976006326838880885589198715983033820389741779391837258886107919456469502284069996666923857368866002359749960119287390401804533847967002954392962508022434336676405657502188071078337665354533679102410099549941962247861353753384456085106426676993514920376047919402089937374403725279739099647548290882538730361982650883324233978403073075582648144946252953671104898059995500160146143224115351063466430800158315494448924959290590993678000609094429368621564226050865334756956174768512799864046920853249013497339676630261212118838751473447479409237827622811207532083978560402765680312401519584661360474610281630656419687756844765273266877144997018201773593152262835919499524326772576359404322374363885186159573481704832636307634686375858454564905494100073666866145066177187246188767199590696146967463371451623055573375549215713081619628467360609251533987872064573584813556437826690619569960298031908041751576650504029127522297755992190502133243066610527954850082430984188902266527306879826357003548465568367079019172784219408551311465290323329053746653652913214823443311778129138633471330047454207864660349886012901054499767828931404869948273800671382732705367889325698373675589987696898859748696882865768113067031248714981103149676153235113086792157902017608318230668266314434180140295038485242807173864489319349303821065244483370454431623140190650040458966199881033908786347713864091526534458367029550418632196819694359154463430155904583467562097707851618352094042428191623036609699416784268056553773612901624374677063131314161558143494168514408697146220587146988429094786715801135718597382423127615910383705243780298096574633554781397935057915861425454138002344429533327509780649072086164511260033857500638477317781938429669817120995199748673147882257876074144597079390097001729574717379782927431284599812432083831456888098451324929543339583617965956237977152018807030336031218141854570490221153303907399490418276903826326520442971055031092026211667777046186697428153055126632333674434350242843865054340283646414959254167127194876368067527158566869497417303272348515629927984284878423837314051403760688365835093492259146248915745844429177448529987266455012361036970058810740691545145166613750464409846002538796984440728710754024029044991554976663574538142488047347739151690788355350467803495116395224234842131106990845216567589816457111339105699298402889156377782539408814252191094389401541586886063984381964180232620715111008016449842995216000603702776932866889599811957061735928398176455536330977644947538491371698992426596125959998413590106338999610277394727002190173975721787484713057985807057055248354537005908366533607072483253724610980316178549750667930721070032896921120110186026677185330443493847818647121520654605888062520015702161388803900029583917294877539184996413834895550279519556131495446398055176565227485747072897546949328111427170497116221221905336487542107353714918144819899105549702364610978693137011822216576332408634654869021984249061660451676310092130178437856467310265738375280404532421512667179967478137285129957547288812859227590975036528920116479591294859539102699494316311775441394641683161598857535480067401437140944256912617735399262906660470049021664752345376414854932739971876461432306803094158591802667265328980479847884268426399065049768726035715469695334347781001858140996835110694459177131999372001368179568742908790284843057359516711851480570988636295499103788067822539108548635237422771687637263167903616637808267214209343468789463979476842076663077698511500333019344032334204031755536114946181357989997196647069953386090829300557860931149757612550294445344748310268188811006539475510127362092249875970100754225355354498520531867422278179023586315516796507365215179694420906236700214990668146657241378108578044486986586030186542893400191107545287926280031393811114485382786069933859250846894297259632672682095432410517223016317122918404748562021644093223028426668146749018602858039604130823998713354812931887702167033677560454146464477492768298258043063036402580922400236721407952099722537746213308463338554098889241462733986981725758171126554939038645621323366050650894061152511414008846545520348107035456374312360357601029179493269115432173305024002346581521575452977476674839241218728324223641406659613854029310191897929856752116914287778595732663611302104077461049534016639201825406717092992677160756163307696188778119596622998345625409198231635574614945023902244595212677105986823076719395227450823782245807341652127892709493228050723395573462621267029684210080975382076150828562537614529160833575519006869035637629349262335524562136359370756489930925790596226972530607413966272476695856069387223872181061953668641329771877165602154743835838332598377867490593095095378859490343014694806626686822162367300491356842266739770192160522765268534412514191747691598942896223089512233444095597798818106465866585792051909522619147197959954434426233076023722123778870111956665836273499175550206439425521506916329093724741762235855095042043268001469858194560803187290709072743657232295017725223815996780703671287575024078680779783648187818922264470405489686781682776427155424589999603027675986786523557289562841409210498451281482992888562175277063444475026726089692153567260763162675851093436562840587300409540946758488703142669511158735368599009765065453238832852297893185460374815800453869658010200840361508016418994541090454175753436960906963036602658052274195538206275568856069876695798975557815709529306485488049556952612043298514852144576068728361973094204944915646807171631124063679970787820441583405518679901197724449433808898954707022802496315957334878877428964053609682694077941769433669836533038960891051231278959824109261892533002451618446737197825129371255139616941450071369404370008975143674387671983268172868606894466106149672558288285110300152796598125699504744212199525788465170971289112547446009795277619881273904686222957352919166662003367944370755175785439620804215770241699798177070478640384846035874469273006359458919692064925954490386784362084699190991547427926883375232160700602475572553317119791829956467414693473846315140493984822401366531630911853408122799944934962864443162538314514216505132740023324816475942530737140932423518004848174161672496627906591679869900306950500754302210246043651171258930864446613384367548810959087064534689755414659264609198698005955116889391315009438190170255044453979775101109820006378682607378922983085533515114990122547491593412436932401377761667878435951507553474395654245946786528397357342251075124834410151666579277070363302828465667405761722676224782882144939983851571453168367372156754722541162690188366920523335096040529218644276781589239094119237768253841512513124286157269076920525738777656172467228569652519173550021324706270533235356901095125418112851266974462097229125901954918146309099861060778930889198024547447385647840732668762884598246989680957010723135261720592258202401154980419686745497454148756804951217569254475911105447612121649550197158317437307613782630691131978006983593508328661879187322289536119157704637076792055876454642443575445691442807969238516615031981357027673418998206466386640138091462558834388247664421631397004084371711980562930402687450142611556558418927170005590864590900962910336406086637805710792514560415148042891032473919387919506044583976165132931062311944151358270004461008103236539232385960548946312101253203134094391319392061013439000198002505917589568046085259122059654095568478800573321229865838181048300258041330831111962075395513978005252617030089877167999980939376894874947670403464884579717754994475527933654065842988117217111760751218835627920479932521289117321807317834888290893927632239622652792392256769661118472907882344029407118509507105499520570357339615156743413393049867415536906865768547399277273279731517620206309988283162967931337020624068547387712659382283913120821187442177179111671443741131765215864652065299847381807322623991036430274002289532904092651822965369794532066476842454359000591126113430398934589658487476758330972109610041812404154126245463228533650301984028723214485138411454276290088806720128920880867306531294816831481872242281513431600215290705939289878374633053258395766056470110507577963485085110110231215112508258030419405996951151259926093119254556454790254885658560518734234462630949040527320294736303647676640035587314963097573694618137250269919666416872656438210228897777995476638487487133649522012026792058430441659660022322855214142347433161985490648310346938086496044709463662287968632044192530622153106943240052815259998147634824988054691339894626259609958207939540956320034125321528509106391542636180930228127897045011620836216448735291453237587828652846865279850384831565272357058835407178386701527021144405752308419100837733628191798666404725507057105887043438721574665644005895555282371270859325817714453826415209459501907297035064435614626490118088231493020836021648409502749508218777882493691733640915286729398630770322034964003227351551714717193438938716132637043154589005391601487891039820280802455487277502821888742103934567067079445741235223389344039295876480694571593133937986689626107724829193471662871861985962367681171358695585543491549388219442016027761541835852716734926765490181092702371192898171904597136035878419576577183628732888476532354397770729987079685176741389198679531053618477430274957344017917328976194610210316503324383704573187618659282573668896124622727780803582802711100714987006251000705300466999513441404650866652446968702119088610290047563900455796399683648645979251964619134194393231844341566231771131106333181252164972929595717456003250838044729752693495388950451202460524074911836890810757945949046896162695486766757410906077165174466950657294089366542726523188450850992439554339473653910571798492852775298200564988072805341776212418568157051623574199825072302494332102665970738558889858257004707671794148550433392315295240779014225087452148182241359269218360166263460861592850538737862361815354827459293977794219151066126393040721570453271398299991202963138899231204897666527583973940502274163295411023170380056878079683396555888373810278773027696927661620049766977825004853209318293754810571689073256793922406707863009340512999676075109812669880790849360571839047972329687446681934402118237427562315243266420423708567710886937541747595789803076889443680871004585478043487926441296221344909367711883371299511398698841151670746002008372728895244079271645465282484831232057883510901479562697331809268308473201327228269927010778010530103129012020582756996652434157329507965128473465929494025508452866355568981896123895371891907994386024715521830592036554500233481693009770177719200783438021961318680532934492657024238136491726299034410297837089919639889902651028245466419189068500788488279488153681929372425609082094073272014868906334572399980097012436893344232092919678190725404091820641985710675491494591657274144403163337416677558527142917498541073007098566424781784710619339373170282943746250559400224553778719007852244921243274381234308405349318181735908725368429426165699758808307991749289266904540454408363112631538080188607489271792746474278867956640691691207585466807280620143723014576402913961376056264499492021308291513119682146430085358664785906037325365683611289322026415274074133287288956921033045874005568396795201316244673374476801721705184413702689876725608788749023600914247499085148971581490967541201852954775632458490200487869843627139107705103540188652191520708528574260457050904953448611761596776227955107818526631956995486747678083282877184920144803605883466789661645059431490144398177193046751600288215068865785394653422183577751728189876930012439436364203433361281780047266683007643284277393916436485476692621620563282068496501678983923560773263906321748186184913652190251585671001876458929162018290584352571492534344919116225247770290070069875493883228121107805579391808525369388565161475188842536213350151082133738386515003640664178903489487978218277498209060400797832796784757894211246156508512542848182799256890602889058520314861411804636200385777779612889819899424504585751477941490587341551924833308585818390375146705866279444199228813353990871851419318246230580724389418185726346757682519144073465141191941521164931811643456922761693818646925525147727496931908023238343325075117807358289770521786771801034454242647737168159618354719640756153960032289740987650122635965738768576362723016057319680548389977269467431816018582991320978770435099793749787180164065053678889440530730965604151398862927455047493533728430038494877915107016357720771718313683902644894110403399428048097975774010489981631426073127795034950186728910596917540488014738024916001643434556065829955787440613164948899292331160145334334947048427113064943530513509333300067797998250368126253531019248553860832307014611030597893057905502075576450842714751112156133657126068631940320589801105074196734004543172059183829645332411715972129769256063192992506675753201338383892336776528321350855317998835822270323289522023880408814373722861998607018208573656034538792109017880704103710913644307259363298971998847171657053131999289891362961373697185354570665179291114545013610966374584911156908248285730890236050785146361668006229915816930752987015274312778899470137009788052181071015897459933362313764945339255303841781679465480580168797482614385019463309908987202931923604193029445981029872381826751069875966736962438364315731442305164213102676208601959583677868415155645994029394831041055072409615004972612151380194201844976913956678312274398327342808623646350452964308052640719284089251521226761535962412426840898972443629280509663177836131334975312096623224031657470199640156730192772496238912388541828450607518620000665093668453825599580140041711228675748423060781929098713627458813087359364079538383230655817653931270921273188509826731671883893586461488857427272552690630569456126565127910659847810746757496174880503890026985513581870595115220911658168448838184241969982915029719167810003903828701989503388422147163986705552055818092966150325625121422828241065270568285175135494792749305261224852339722336478628457723365948793295065224361468958900335578428864664743206470812643244522215374475518601098300187518095620711835482777579992072466720050636080867960433943173808035703673855877490469126157049213121470845052796662023228096259788105231931438740693781129112990831507987110923447142108563010198119376779961551994029519113153639195003233464025317426138362552698847435355596110342909165298577861860728838217426930405902568219799480727079173481394544446991361611076071049137464591438750742878091843258716348179370109199009357923293155646990755081178293164566224379132271246414710381230706050889685022331961396344787368788687927116900398297030838421711287196803641185543289852417163802206819807208892662223534819868049315923806946722167177042249192564534551253664765128758790671803169099854740842545955268095813607581251936375743221807057528267921191304006870468495185919937880710261234418217262547802622238181309121910479862269518673117144513473663088229242039628200860772008750640075165243587137152693832493163068004877987654352330707619122592221836951419523980382861308033966357161351059710780593222376330692634466079202991406667272701935982063131734455638800880019161991986999319421808198845917882863690337220218272872927324297087543574242136798277347353542369758247353072875035418114810773303272399639700462748933260417887391616790820238741197802761098964671559454679730124295153972085658520942428194189383717102982779381282819018087126186473793532129291613620235491312061847925953193796828514238796754702317595038928735046085213162285457151708041836823726040533930973021246311881366394637462413395913256050591447699335473468379920686862227513483341498137758517611398344473848062232296145210726971896694385538530550983560086737212692962569395530048273854027810769195961959720652908552873306385857285268739252403480789417286942485629546541870157040382202804253685373085366262372297838504378975991847010757190661708161162242147626738081593670101620749178511540784531280883713269396974626810332305156646143020721831385652386286489963749302289549666245106514199970104874644832875363464607444301800610032116703364303857576516424832292007473477173802735960800190049259222545176794350920631081769116047830403507002107094229406685510060476863426529651600584649329179158718657205260410403683119549885514435703558827233455695474380095793472307532705002453076376477529771968559372931761330141638740514587489489794551733308804604393350318826137452906907243363535030239242340013629775043218901368466799755705544725638801114625631117019431986557356395964451906476239601039079916024328018399076462203431122523423055535831740629630028298218422286433163697197326629802581597142517604878211749834664766317591915407085226419242199266077249485027815084944203716176648332134264612271105782695775599907609027516623691827318858988109965083079543605504364689669618561923804269269364178772270374753426664511238694664909120691086569483458091402109304810131410763408662404237632728354710350981806571899364765890267004035413996880720038232493080594000504401690259025381427366989303112230460402495898259207276807716647363312212369852281218308601480944145530565348593746414278563174423560734708936124555912435459630897814193716588734587905772703255582722524050424730626790377492793502304828402275634635398484281563878607985844047755069151956430243336177678466715684192412526387940621050738644039360066149696988232884079226287418567737512590282070835834406722379815268472835301325285081292063087977880475147278614223396726319042820490230176421242085094766185080754450583037975361418949221611096328203570924684443640467432402031302000442570092611317279238104496511501562269547657412118529064267653358865836201920250464569119482673334963068760088256918698535363373285749977009075622036033226813087852912536134214490109707522204728213869789157760509710841579163246973498412154563303847550857186944981902869222868548671444691955957918135851970151410153169529052724376399336212912915805689859584463666180721239494469808832380863021142377829106772679654163918106349447725694198730686576224529255379518205369151183595205975407889173837221458439770275605824222541487016497847844375500948329464049285583570286158010631364347219072213034409868340840527676702992664992677082101893480791064742670354522578827113912339475195163887522879473063827903754954227736294715065345088032299236558802482076252335671507743893381495297094105568348053668373850175578416721512375052289751372501562844439885332263634073275601331865433233793830022849015379078440172140089212907797214222847278888012329884496660879257518073126927769032966692653678146926883128042299925872018322571589337060728675735333862228956228540903517006041850053934113907061299153524861373688747898871145494093541918672954109983049557298075192369289031109573592658263275707993384666615934727747234591129611363593631418861946715895931707707356230692960346180278097608506607167653871951324829356492486860732193517792368226345374902833799686563843022577237506768516579327235337474465379744820493269996516554173054783978789537360730799440394186324286773011287952128710522403919114668417471615387887232238977396777866830876521783773647901121835164382301730654284844953145042191473600785924804905520724647898854608628784362183789920352749793115461274121724779652126773272911638617054165016846394058869578636334857860025028936916744180361048812135647318383430251661963715176668928213668020922859230540701731710959219848470089935023741519446644596720660486242667631070010137662631742728421486322697681855312594540717145541420216783607299361086612842920693265660456282420641481943387264382701902074360249202167309272458375570623320246489426887105726428185870484491421690797801585513953155490267954994649025922469489234027543038929098214939155355492705584002582787629154055959869097423694063936644504269336445041107134254987799943235942536902628479779979998319112251168298074383270385539346964001543552421947614612778126417196654804678762032592543536267678659574130054987754817099796330440584609987518877951038415331573040154437254135611948527226214083846536971899786179627956225925192766282140401760531126594253219303735276645469864152603678047172069860321658675327717503164809327880797893849768886864745419219295095889013159690787192338579996852403817239619674126141484724389916693279863331812464233248974419486745635649564485404725298927288979428670924884106537878898314462170096125046444216109100428004166484587489772698504146596269750343564443649684322556637673520475326822672218769473514619821191601635173212251550153337888734852803624991384680501454949576691788047651059438408461852422264916878823246583266130602533955280242416564006050081516051906412655695171302385319111414224646837158230711623893517202351607328405314696780214674656716178465258420316567864270629515934258686136580829383766811286746728415046424577824495088569351924723174706674040563637438593246111103933112940530744155621751355302812420658623761682206777726226098228118274262803410250180444783327167177288678862661705406583375893141471162872237348910007503628583141964041907574936251868976244059362670591426846924641377427762062435770675257156980194294575339757950387484173191759124949022973873979114324899864057994194548673668248516535282183187714378477742458705838287215975204912516589089113510134869771236638334091667717663577149292494465458684501031920614391488370746349465312449525453791245093012486243998239789374221624346624472109150586857708288416735263277112986446287926804575505907925610571782522207585385162078347314891956624173556208586709630238984892972502625150559590146798877971018184819254936734254456133869037978758313379773584861961847554313239990020446337927658394676286779486500159675159459792723281451904660170787701802903232890750410985843359075829094708459172121664031464711099550912830159344254565121447875631742408105179588669873278267050534750372196757406285875453990680178091783298675968342521978790586628377322796055372454809184371712837705726554219974742896219466741327351112663454711456294059349470471497069992091899930377623842106777831101597371520408048304633128475685647664017559114779793339805798179565784258750232140150738814933232380450731528558280065266411983842774758969993134489813084469938117858927521250422704681189554249613000462727140459039992073493413382572759848475471688650787605200854462574170163752855548953802587040525140749738955542702274184224912924959932889681049974324393289333455305016492814022891534752780910255099720607160390966696024547149295124807007561975254825450930166737884214953569449522831044093230293965711569713248218876740614669629928845661052109524713552167763357397947256167928001501975493210993779195396278769294619429570954728852882587313033836658373182409146696816912037222229393141665257162213162474942486440981926181702281517776966642825784599782349670919693450211366455152985849043879491431128145431453173483535739517865027132923534476788806596511464975454657301651640271485818206837127341206703016197776310317341762370691312462574234509002817471712002320250093838122807892327407301443869449278749129498109672440445412160469537694337766903000946875207259706691240966934469361130527135501654621562145873577766742041449008835133081806269864857956163214797902318576823922065937532655250570549039808166884666412455237958043275751328547415236794398609516928687609311421757373626941717037073197110404628501491576796618078283045710210774038770966645394916396748232045695831286861752696124371108690414511212725621809391051982392406740664919488205142825343698500414606523675338301953781421850118126467092316169880807919216006372196721795995073790515057288756828299153932204881916040198515359764021889498155388562154683700204674815968839395134458660820216374155250180941596686814291151931223356097125560849112791471175395010043451451363514733093359081787971987220741818294749526803024130592525067308684184292160389197667970436304868997131984122744939293225250388209364476592781748970738638673582480455827151885320199695308395928696529626032604896652468218741783992742615127967213503621097750852253271445835543630801419069889585331630853751426543471065786704197515239980860307314701590842679788695870856609891517422246177235682384559479102250544263758443090216083147195079254680285003903746693590737271581407857727230880395863139251076429510656611180089472978671855396010942613972582592591770356793652901426140202368861430007491383570327070423781510673175384303405678322115076473534820444696390689746792966959628931407747699481590048590345768295532640822822387242097120807771692727035519180394393940880476635322173420487340410138022640496342863486147472528893272347484083140370598615735018209149550033252395923162757360907648380591636102493958267049591085433688800516531590070662156185778261906534628132556023043061597736496284193595982803071092910665475558797553837797841910502648923420012514465996671953355761868729636254125046999793062831570874441363219885444205960844081299239044334806442130225389610059998734473056514223008212264865878484377809595144782004652886619812641046253763600784216079482700734234226620107735066141854472138565107230306714637259369450708213429754068450109036043907492549330430126763925712016308744180554770268920182367723568203632995827613660598317338480315131081581168118518234521075560184162715738422769974973975002249436754390329667452116615751051895247786149874789767488081382606508202824285888374717439612146612701025564503141730834009997103830715662471488517874309472648869299771049483819074531647256434709243085863063146594455889313148385863169685452707698686858310535846735955845557866336569901735777379378115408711605964128031655960330054912851461379762104445910586808617154971330020754362014429241883290034047236000355641029975700441447778276746188711600891908642526107668327577062367284473572451283237668339006274411744590027055011358342214817902359006226069941490641880412081500370961412775053722399098517595335116604983332125608097266601684655405708469626134929406806949608006050567608087089615113582094733377238816933730004501668480072177437210691986641928795025895818084005802235463514657488936735365515390357015652024714484413114722967581518824817727805688922160489053899675705848962476622763662753851421369617788752838917121127811072887101860674379902198782315040197951959367203522407735796847089762523612268373870118973894730321998411257707980761969831954587449378271622392036979072843992377285354092493009119887977286977492829407681951686552647861454931156952276936398439587090178757305817609914513192471784349837249031148445268237993782983954807967487960829417788660600045707782237043921558599490265751642252048439868405837425523145183954929518404677325094108891616775007153171927624402516943560601921210913139091876666211057608075865925294871642742582189800604686149267004010096900718392553797451641916893169001436691623287012186426992195235810558172256656431150075328723811072874717719362055121707199798989724365387757456335027771450364366091444551690912962959000349319528627717575432665153215588908718595968993939768539287702946828171152811047150665194273118590033139955147057065155794022022582915581423090536728857937020168145551316328447253065523114475691125767419058905506588392694279975754783609274417539985967007451762156447498922717108419298399423216396567651051835307503608456340681462605700446008537678339297788848159958825756979312630260090170410109409221378293475884578177695742381067516929870965106078939845923865127729897457669517868847030788481532955645614966651952688295720322155231937673764378288317588705470223243717908979652519675502640267339053480012849917451438595954533209118953994979787169656055722609820661845080658638825443106099033557835425978265737395839397978669589264491948039004786309703153828659725757971185718809794636057927927323480204543634939492900894730551592940586750559485518920144213042417494310828678388352858261440571367836226163643498929541096590876157085718645988227427170060588757389234540328679308099044274834071463599658344909209524319584679129363097127493546748282829256790491427697966077473622347141368717476453675049656356602565520267852318922983319343566753900020666142586713131863891025304566270006659904555755838907055386808849703997121177484927816199700480809254599279901338189454333060437114701629984243279214770941760297194502746705086853086786846292468947902719254558537046678578672282165254480526765386195475012545042701715194537428472514260151240722347519458647774554308220127094892890335261372709962108053172007652824625418178469371897046784409997097207931518590300887472125776756378893503650139077008956913030069515682581855606819767231808128643707991275630669532358607431847147930162613766117396969943937967933098320440463855688419940090458867206890218511799588580799842230939037280769577857271886910016381844975591897474483225418046245280472074423970107313258710259573450906497840075268193951691541713665299697684220427017578153361297343883529510281791959348125898557190880080757137740406632926898227194180076825858875063213997940143256950929299104158848639433932524096611649575477808729525383364024306337354374647710325906546613774342995948623006069493947239180465242742679906075251321763916878436868443507042719093917519041699874473673860221825877244456254204103031381070939058269276755159147389479906502216643220982915957628418681294305442573044822091906567342474158262826755430830167291505305132225491857204721092120890037125940756960853226945815238922763107180833997561721851469854403199901506112188947221644382634194908889527175527091199427974933660742652865855749952982694646087256910295288002612751483874403355015411346053860031533272722196282696968252738311766034646338765646824175671010052384665916318652337536239116663389556351888631165972446893904903393614933880011562784393573809097621423835617044347866263206606676662065081977633501089259005920563863417564292212335259307976624114002816392338522758930028193489244545672308494914348967739191589737771042078810248882456899976583718321450983929463117906624987974841835233442793954069017259630391192411676971387352686704521720739785687802959406869734859247814870779104376254081322641976639308857676911872136218468275942024677712234041839308147561746835961404700669919816540384026696448891372297525482816577549401583319328893121446106768523999384791175551521810028310057780474709504842928734407737956436676692018027986190794229042803612647595709922788734007566341803229601505703669110723123348472183405787731205510085817573495401921578908225416313277373425451309482192784081391726920432400459471393384807434180425016426757056061768420245675142085223243318475305403226168275203053634132234549517007057740236090663092928752655730151262207861402748989968781646527166446652649188937996602396149401569613905429601927897259089754342916209071669386043178606432975429024148826909939914019574293090973477909667188288386950729667805094537414145010495314569367009487923884373825923461236139857164507851839908482699874492393555752459203394478717029383267585515381449848604923666392737786143135269977523979276761292825710368956066795616853141894727510974681929154717098239552302731312937955908561180325956719815282750210715824193652541441830681190342594438789149456978000015290609036721477839472954205472338222745868439053977845167794528192351431608859995153666013249952071377048896541468419547997996317549788830468922480308939642888594500103548620810284993130826118717444981008850309827464771617099543055952098643561368010444243325036621123405414667612688169212692917659244252550192787515829019163830132995079580796710876268763550632711661390794663099956091140430709844838838587518522666116612401375925846124943042113917602896248986013115511823502687909211078944291338108666493067832626864624096584652513319647318847883196724271058719122731383405246807949165832375467149966096069621550438568408683863881654752623395970864464857739536838944498070803464307337546164707391343150002023558149479337871568305792128360242456494379654078928363616195052588006025019132830739611577015611495006177827404124330344184811881792534636598646606761936911732293682699366245214981726342424152162717545750090051180161459075858656709199041266335567900509289039205060110615275173938147226831959988599653871682228541107834205926422136629409679707590144660288677577432810806268800852249668817710655998409412706278466701579450367572346463313002058321493489589159368042733439476072297096509987454931401802150527324162469688450779222664564389231798346709558621447430308612131533539433559146471538915590232413014052824987184214843716885219715445003399689299814767751151198040855129028738271600653490545079490582587219556718373401394078727786751070300141005352402949491017363975693031305558356705321468800695117642570349184651589947674625253828845749723962023894224586570222872549270277633144778927974445738262292978226948274805987818648747487170192637376935615826285573511611683854226600329130210995077235702520094268380513397716779077893215731767601360548405137776492973673309023597220333336536890852629475352884469808047956420236890743189312510193613395402709418616038077791362961608343435555804085354855598904326636384133177744380905366114432976765870734688858628384569888311805910348980126585492824419532093376688519340539648380312001290816437250224676007535886883527995451648698424643389593322120891459016273259674864686094543725098524485563703353558681051191224384945307959480443867354716840629949159864572110325341766946533256240792275839371641307653697285383577880709025836305062232377252994244129764866166784712022551634766290231945313823523869992447399826206908316060204890911724518860005234192569710777034897182932241126173208461424957429665154119561075133538117740295580937675637843523858619931662764202169435557969668241527923468685159217743472592786173926065696049149407673089538512667743790743483358354096285756289227196031890733825600086909683795461003998935849159923227656751837152193771546799422787479504367723990595063612786164840982228558366892656243703611575035623461355913168479410670303301518116105271891055734769032729380772728357984445056250870912957072790513384436301433820542442076509407762485459784836381505690061934482883617640176490033264361879779164953110054762594453631825755051239481495986603043157115961381384538177098712462977225183858007495597772272499819410544973022104327825003450488985461260559648779441718363641302956155970149276482637941414001250471114681544122192681458002773638441806867792744617828370849670426375079589677302330123580459633161500531745238498968961963797169609040199126530244131883152065530849690945791546614281223539377587315097229057863205808435422604978659378305843324068632040559154096772811308698102120355191798355159425403617437621997915797345005685496861743630657312172866785910249720485970922805911242954352791601096820437524375752481469927482159646340964759930802607764513426044889603419106495932491821410062662343184853147924270577606262947864442528348458361228559656318523481963013790320867739291716771703953332267881597026751565523172755071697351370701251036494947369118760066331888714429804228363886492972642183808054792564878132265155521474727642082051034611967732885072547698656740796877300069436207482383584271110790154516002509388957149243941202605134306592931630960676914897412329409816731391981404834848752921812870975087166282445885610252001905717648408078150272301622695365632548213507060773739476335576535166321609712894293143249176737522192188855790716756145021083611771980428836573249083718127919730124137447511094365748133479382869006030987510620093901007854059336898821608061212785531564210122508839166417323190922754705851943232646381330313483764361015209898621732844166186899809023081440682629500263750723426426271596990949554347261133275640591838356954865676115832752933574677249732508520605919519259672144120647157127114580632062814451724077710622673156977031347021082417444527845152088683734113162487329036044933520644577037959986862492642864483828968080409496209874986832318423650352682809215423792852022655562506967466913079098159014908435039984084110326082641232873494185921860247685932129837925086638845676433848045229987792602926421976480458186564330213219385875973026897132484426693055362477096990386052111876313407859802426701174768893295140545489403211527989889138536758515631499834401669063837827109129984876006366999887946033268122908303034202318097800698109890709152911517682942361687342125638183413020598635402402711418083886275949780825938149803086918679473897424054517259729624290890255273225802894687755457961418953570255480745714830578135774263794755450945515415325221284802598818639132381347760516445634122781099789697248648705284410490799451171282695775242785179818227735498379332346779826937922950324721506338326480849533939555754003484427445550963031757740878393052236541078107672483718407913606835444335118400303335794307015183569997541602877345423822620264774360197713856388353576511049566903881516044573862707776617881450573741292855559306384400921206010746137173052556798788055060955217770799004299027912070139820910196535830498659416661213760128623743102475347232260193606799661804138593675140608303888825972954688787051138131352833890734685852126644684435979605917349719336640846108822142615735831632713925126644166644548763815393460587161755080632369302428269371802967023700215684768527940572537774354201018551049111988583984725217658724221453481246949222920018869636665587840484286373076564871496048891210875038935803412904881516519457335782385495356788057693429860441598298651060270780613208646586071167109280685931439788347069461849322751865015417420395211996548976598383419401465574811811100168204952373569501843559883031694927120455168721795257551036255313856466171813897253678214334884137108858245443222516476499066960734615496459200880905297375235263654673365768905835080717069754179888977269402729529441353695959405472072653599141414054094733395355874901094624596082358964119316068232486398017688433411966829704052478081594679975176025239542268171926104649966827542113783499363005430099527807361322753603229862182833443231299835705537003533302368342189497023262672563070565331054893684239959690729751218909124732981295995273938404890989759439324602542721575130695916365649859509277338034506993027864594861734495717673686735977916987790698382082563163985740728327889488129724050274693900179478303806868388352547626267782872502135136050348707017973922802164362908135517495196085069338636221025058019691918369989988715788886358478314948334436951732847492026584478309107156102727608496307002700195718370322213377806756989575254269452045962508376292318968679452745509438290974211457871412802831219951582075825047989804743200107528060908786799528554083637707741014379566584616597879169550004021340388728426982269920102705936563422873120598791836442464402086825288303040733512473706387517487778798750528623808503109861491012067664815701448252946817498977508417765252378105377074573171950338118436248730873033071609723748055566363991996313647645415121431796839162043104393851915036252164798661167328171365745951842238550224312614186739857997609358056636308304351154362616453136192231400260706407066797170355009358696026613020544827499372451385561252904158119771329585082338601162474188381571453327174045739437635909175151164702718619425239270489231260945023655888111258963984995815895502198351276173590675285341413897821554000597803177798073740986543250299899337017217338899637452475118957981627978176910148374988167060838297294045579329357735151790126374292998499794410795461080293774616268365191301903168382987142630352944989555516852036644648809305598735018251686904798600436786422172744366236613958052990791614377259719854934098694178556191644283958254680069740012547897484101743351469671894340435742096809031407700183490226770271536749223261184834061828755938522480373651866822187829028515764128668339811951385772708563900887012136840540924065343173776063008889143479619274989050496703095324844351531026672050139264041991536557639924727947521650652656465545358364385347416145763167069420825986468938168030869566158490833836217837754944315674924134983289406890453128956611428371734620105090686398822002276232420889524572603101313636352729249712494599523353498470600455399292723432063435821071707361296958199970933457111555852175222995117265478317617176225265591246206382134837236841831619799907926241262995389858087173566056942824104236621322356918296281416993889647122846706483908459744662991227997253294073974676741082797289914347665563161348936923591015887893439577698458828350798158992601576077779182124585846481069911336109290672663360489968040778289787748972432694645522814148959722006901341937586950870057108811906896750027918078144502216747442271141784437421016211304949948506624037935489219047816677853595119620286962758551430822810722603605103921470704935978646882083644822155989410849744214212272490550957336488816351701193919930763930840191681735125967447231678002490069938805890530477202899020063857128411640968922886119902663442932722518522076562929845895000790795246789858804319075216340811393062411635610826709413626958439155857584089501866898966753541121946744199339257524203823401690353695790819296110631905570026955516275138091348015784416758740869282454760971823897174680514735606508913073230848662569092740410229400529074072796217125745284050956555648833042365776784877299239542750880800144786261955279199560536804801670291121688627716636110930582876847136021373943285629899321756455325870692304154338487763570070345181037443881985305786359594060031184789817628021718403251655065578711929973840453048451629168127129602306392279227848888932331546699468328961832594038929084559985235644303326573286648149709653176431760084048714847576312185980875037025628606690167101791486824764685348177392412376869080996888190315519037658481198984123946868589775817019763970047581210184918021200370151435356733333142559247771734955194042553832422439738847808298117111734190876824435705191876959915064923589309327590445441200153388714326128696585000745843411367562236228691524453636519958572099141663708513406478659925842032777552831420945039983192450323041141713882035971873317581236165810882943552014035918890541046524835128826444614084425885869372484740326706131693722280548468537450253581197234250138024689331008556549429425050577953087069775638600318099794455315742755567020656148373923367553032339315238035437518237752497561593407997170222856453736955245536608816231299871174970745288772434756180558911655818182891988355863137864526490749000469907413962949526871062149993280925628273164086349059095645703910888881744330749456491712114722423953140710833334499291892613935635314751450156962086743212023309473592407801702514443161338039910816406357096668103833066518000536701389531377430521268142103724967856922975576691498572444393268537598476201905099978136369417069019753386373460071859539537587149914403121367857702596570850949748324406344570612001350073512426646326885058773740831571367095650799768413732475865706589104413722184914462927664141685639229613572281799871441173408645788829175289878674330190049025675369638658847037077790256522707875838928473123067048140852575486298738277415437752586975127978811175982886993919766564659664997300346277086733328621891696617915727396657173313431950456717766639296967972472043100978170059708196746811013177782257463812344144659097642913618641646154401325484431175459205315475784171674499462596812306053517496442097972862890115448956190182920533427801598617655922124349327777102063033958427908311280495225302382506950462554595736238356325619223366724488032140451451910886189146389768446219694024378044865580068733084576707760748559388311775683270584601017365597367961245042384457457561782507461792226094255202368025644639819223668793898767736422398176387053596181319810450786975528666937161242448493061081185216993189505295176994057857219776228276936118428339991741396567999715717436691966906487681588944711302016770693822243949059365714586314454394259708258763836540506472356091723884656997206469122044190818804376976532448418328497340287360160416605649036492536142531290516930593033130223162234048085948594726112683328152772157814121405502893417322183826557357729936633992213982749909907588264377789211953683684167877286749092884208711020943412762784330787804990664820611894089253994011883385380973478292809734032122029009704361345265423926822802534376001280746901836622544626973010801546147600885657460139651952449842863374241421873951859432803201675827429162171457810541759441654060809074135174705946534059641164681553631014004797079651875956107401513035520394043972250559340622471853698234610593912405316469811752285837925306867653861345046914749018165524185093037171459796120004755360633052564415835223162278136427862076552233296667469673588434183571499434118144839690936573072503912462931471198442838367106543537268699646832101959226401506598122783420011894299918408600307952389265536456723837520772708054445622520173783062397231346265016742957811692543318676701462977356036433506223940493225026375242967414499898230945334224475176630068139891412088304927355673488804740363350915992937201845459836395458540001490696258728897230962549934886179926205635926787840421627774478539402035194338057512856486996152814378623559346642380109757143707919772890838187308881035547340052153885339924633295435009314312826373268179707495389029235807810294765818556482217291554260576300776077696543585071962395963023317157709846055402673324753463487315857709062082275281269700783099280621243671588597991521547352869810098963588547703013791533769537181187123863870189850228144339976382915893344382781253915918443693677826195242226010417954482081552981304845083888239293397577051141670937539085733102966418839485310753845252897728753477208709826432296398538540678416134710711677119512780513616461867756542210287175059998248495559152930354114858708573095693623178912122165405040974777057905957492897875280375260396275462814331755487896287327212205114000066469645973220430309321617497931401616670582013901696951435543572229150682163255639427230436696697677321921163645294066217263797602889747601715098034682042340110911109124254458720692412407316101664252437182015207228845714667809308917231093134102160358401733795153773075123060070700001659803076038408000446562756442529790434173724321390994158873480200243954259763827112737361273734193188332220200610818954832663026101364183756740692949906844300859668704542225079514234710754854678011478134213973539369102699987380681468799588896394536781386637126868814540688332767256857496622055478600691306708734671453895076314980971279583887617957483961603249119995793238484699995401037248587233338013928833377134266288596384453648900982586265372105538280649910291661183647554879290688990892281986406674734931308181529232299115752471271269317139865072945004627634273813398585507274780042519589271130342450744404905734481347003150173212988461835384251497844170976530064240986327646042526097278133994296707286851430809984150842801942450248476809433516970545887299481298613474311004732022177368417105010575528183508187227901525951677396756974277417472193441798013266737543864068074216630177402421790985260072137950947593367814582206506010290095300315127175321652792992227203975173696338647558816500398534639948615370290835015407338240135790454996707582847908252602233094582829994250859736631299976924234509959385240817404675005641909676503418900488507382001596530531892070183552151004382429354725518296799608643310084229850483439220626573476276619175828334767099573395608670606475120502707303619499139431132798372518519427990840759997854588936486443808628952699563262453301033662676569305076949626976079467363232041443744116960537287341960875348949949732365088554980951142297301383354521682044591259751283553740626975244401423518742349311194760680258400053072799984871855151377691425415908335041783963105122002971794206961457196422660096094354097006562616730726713571577620952943392180461131664234148667941918394723355261534185519417076277939581187891411025841075361998416710203261195865003946405341659134677108484551199990619418470638622869779584265268163167476819559466055118471193644675292588031553193619324058242474375185871189229215772130900899886491832423562078530457544329134101414628808618388988575373205442088176304698039824746840232802455685068384535130066786905462567970939914314337483346829576190549615052753854633712390970786693362226522197891490940833669756549625407105362053981799705859247176800021861018268729345628437351065681091064433961673704261452452713085866312272928687388546434418917113301161912441846774850328847271921014114835443567193401281845091621264064340283837967168568945788641092431002934541319448369302197345399338881967863713819179713131608305241233096014864891789839278241709010401154110438438564768574222307454176139851460568954770709827363166858538738617076260287339367832823492245069142388310053246642645294168749301565622593417783875727591583718881887161527321287005490379360610694179945051852477995741288368891532040616373083268802828103974881419326235018727694307104607659712414636782339458823406985243577546994913177682794257232595944500298551803450893425361513178572104194532068983199831921386158266140433904801160489472235024298499545369352734734571480044114438289746182367166319478092109793741927821103931283945400895679243503040300653873576139700268225544650579973798263461652586752395058111117915674678432907701221622438252525671867262856840754884589819081297200090494941957087974710429705260597076443477381368091352871461117535568686395041342476756472298013275467925446506749347823412980402139054991688693063011686269333060296676016056652081085301649585220747604092169133988934369594010164433575152159408263446647459568480232308454045042385217253351680204979322284147641264579394153251754347266178922064799597005068780885587173048473781103785270368755618557004525804565982171577532309843129501561080544821799372965069673938982047569800648003839560717740626187028173112153867091422066121730395547646314124791705057547987688543304237655518639646883456891275580977786319047346926474327659436611752439103671625966592875471051862995252841184147729173662279436846270699351424646890766413259796273808128404365829955247756685575887621229335117963729634048174479064266594089795302043126305179643367062676807056233685769944282374707596545463582361494608975066165526952461374895777994681538334011675003479572437568869397199960911632523934653215518806323451571558035760858514550194929727434151209756606605442603806711688440767106986795999064480799515240180431810046421156438659559269611095802961704579419121913635372857225570644914553047440666315062708763236555908101722765589897248661725669883740367562735521961138181835843827846850252578049029774487129661818836433850739548386175201384111544603551325255379503731072836035852006459193266094109165106478404065542799527315664092025677435809590925644588335314484996856076072295271616886781526498234415352282134760936709912006975778270694343894257242440349256212752780439144078835573065513769793254568212317294802787219459286426689588817838182646046331974334512181760810445996085709066721958691783236990378845814579359930463361335448252037841502768411210682130179543560845648866573475674204640148027446320840852834559004710055845525271976480981203213565068341196160036940448500897180405104151848404946454370464265978565608165852282857239051494401431144174831339862998484611110590886794402183285945012316345211886415673198006166212079878617116918262930804035259840804511177544819039658407279471841324722551174416416752705963624626055470926471675423169026245370742288967860898602260331012081880552577061897265729864148684940359271178890719862887021351070338073938135512278372895399814231760836581860751613191779902647640554418553700280202887831895796261928975057895184699050889057772228394989619718369901175213827818829659608698029535482308100610780942218749312848480244022203524287129707180807159438228397873279256768138832200367792095364641939960227597099286041592814263086675374558527788303175315296130281393530534980880634992583239876998366992183585300923801253740010726851927111538311498304969678043548090242510028992573486162449793378326696704735062655720368492438639834523413295616483152219091609748256846542835667873709215294703810494556397293301899662956110610125778321499563469674883189730076796114517642347066596776882448881629990572724554385970873227777778887086872390244430485656057278388795037313116041202302156229954674391496378187961889228939296298519841454727647013228633435522077310200917495998179539564980318119051701130023044225950011865895358243831333845623299987582272259417104228513675793626179802713277081756091487665997012803274915287552749730285559064054005884618439298898899313492866245036198797791820130301811042997294130370858847323274158327619529604993846268964471494135923835127175216258164390434551071747737426998375399372291923153475421449795248028237118209826322348570089947907466227826205892602711680441787695877774422962530421841717260750158357467625034635377841920004937265259237279253034564418000356230432068916790462048884541892305157528967649462505766354643584301729090059792184051792665596445740754431174380642276963602739370284508358863019124594775254378954772448784696264154347691390324079923977528122716630280411575623447481789087703558779853148688848198645971890794924145278873499178227350602142360065074229390243395803490039967064562652696426111206470019074757674163766337410067757699141367849152673621032232267048399211926742798505231783114083711495263297127129840285170347365212055499185525674410516083005203248952036182288212006140686399023147884255115875034103522796867501084431527298762941807948859571580417294491070750313027246828530010733894356804631879032318296482361231555430182245054011343334006850922293136162899384922098243318703114997255437353019911583194781197588902671451669322624145659930843873816201365393384535523744160581820586423305565207564940966304514171411295645577141018866421795942458192169902714682606319675469700269277583430162203857086484508922943792228068098600806478686645116642970876817103589938984621081284261358233527010537553782845255871863517081379664978350961785556323055990283010160296079835404329353276842327032186635736115253387724921962200148094397802883326256008627460750944568565026910969967808194907298214536034321606014009632472297943537122324790183544992562913224671968286267482322042530939498859973899257906751612700850481881063351879200452079005587633561172151911420602355472798967306416031449503429206555647503254320226233248083487792618518438536039408626560812781429366878259843301573107023795835596698742102241585733866584288166720283420953101951650425447300818851382039670879015417373064352467072990108815533238962852535821072610629745586745382205631863329666776102471454045673741036548816768589454881694740599154237739826035667672733364542589400605635490874741746377061159761622587810507513647495509028512202729212820926669008193467045517225314089829612658316845490639039499689405681023146886193777619563886324808478528416834558532993689093088000781484884327041051983261393806109705540271937101308155279185900713223432264783485065565858543739197944231921723268016308297559576276760414064341864618738603364892475410207092916570936179520806026893562825752157630662197255464988304376519879499755990233617434973131679099498297431571590249549993522840520333389491728712890010536612066156329302266687655479208285626657701716487381096194030178989503962312995621775736327288732070799725230904785251445843057643622429118664417749786863618761674002866659360554081018451282646721370916539322100620777037233500139057229804476906567144423810255984035543479066941351893431780683066015017790033196694778071073596499794234432407336155703559469620120705665540929826479087935315130770505542594147872457704773255193057681876975349813077402303155040291933041483414333227911166789182645242384912568023241894116969571871298846064327129035549673688877069433251806868039622160583470111595268332728985175231373525357479683376686221222633529219256521797105231093836127452979273536788750734932582891997802076736881895360130843571427804204702592893910414431836453536907010959636625810583514475328139256575379782762606216112462461401982285315129222278117019712956586329660119405161464516419087700672125760290176303121429993346132490009220354333992326481039706682163371811407014962053994997821575841106543639417587647730608484244141776209341166929791130150955654929404236466745915968039156891825185913480873066858443812645484340557550493764251321828836501270345618381468626226724630647543415912965643347394078480295671792472152571729313725199829704227906375023537232317065282488655658202016459399067636022667900699607188744048852319700983205337063900685467298214055967154263827835767251065113895480539613610873014075032889753005286237684064227696300846591928171071782591225668386714172723017966653396770840739594425047901474148594850573822308092755486576606842097098892734448367445326796559396846581952926154278210219402914866728558522124689762218029823402822869540015801386291069976669307420562377888318019338382206343763263707156388231110865951581564352758843583863064343388922747109951200269462954624077273354247839491732636823228195098070185164623938774654452775342943913009001962109756470143571051430067430060645542021556819381107733162560304652826242368408013400438391934630904351892483998714996060192439451994313952569743631714700944069048938616940160559946052382906879717555273737847701473811664060432204592235347008690101870003782666450862385558582269169184052020880659194756003804140717733784096135715787104012148552659952956984462653129770206736995202334477600507366033865501539599374013208680620722325988076830197561584368043974442792405858379504125788130331333724551793505778827927388904258338651813916690139730679030283845029055958233990189532578545739878286917659683327792046650560570366788035075556370912346501456791529112564444805084857247884541822809023542074199163009450066267291339902175651733899412591101820524358470669623472196338684249425356844296244803370215763817934795653533073139474372224600798401129997918407049080141485657663271765618121631173564484398074071280186897935994881170191894467488316383264249542339761166125938035943685812156935178080141102752538848147585896867148859900698189612570944548364913819572247234741457566928800107786229088003950394109627310394882312981597474449924769284424899923616427185458776040436073024206073720147866623814856903287245968012652943633886028898225188413979213050911797504931673903235284785136353023513532479954114859571175812752386790570614099019509998691378085196725285343117202485631309262758451653681040416600413328106675453237555722693850096657260339950874495159214778987855057143479368444626310483313790926985199752825513341948961940196434880427470826096533204141718959229889508915874860841228613689091619905552131325482292684745772708219070047124932936017436884316379643743965418035062561563276679384574302361843992738703643221546013538725821671847878551391652554965766485422081977016832731985977143422709086275930908941936710251058650829151143861701854731928466578721487942926900113960310442909810361413339410652278015984993557064355352360426545260272514367348553462834752690094410075566082637972416735440623830765004352894313973199056509374088843780542191188163443074244642920320827060976723430372925540143326456944778880755447579544405926584144013547867820738675504545835589833061264568227972626150474493288426715142444047560750200628815879929185664255846443563060057323525973023389161349591210110171051813642530423876664074261269901891309076284869916240976413280693779254519912792681031346621108807272523395493556878850359051416830391238167122296407305826401121449993945468412478428371653567734041324601083733076327290815188576996279665878727362165394504787327331827958127162766057366479609481002345847611264599053397224918660120247163875856004334407898870967627882490396442188696445467348115230122604249201823955571334220779444757962318775522524284918359426285108619306210550996958251066821900621973547111315020423983109613129227731970850581375758969759838844275269073452056035794348239058252962980719716542145807833003539752500646701953540152486716859057900916587265305489106487891579649663767249875980623907073881780397920576109730146358184379154366561089245679552147502317541830658240397547922911405351617906371774768990503140619032337786266206296549337951827434428665246373223882094034379542970478518033199024411761521211701381755064854346816548393235179024842194558607199269358171821733827666539941300423492587577645896499421390286690961573854020018957050860439117259120103610040004653511889361590714666259569822901935484945935203613972242533897433837065347541583702218981399163337938923142423276073658803764811237577441375759078379270038366283563747155088772742525154269992460943340169934629071827229433762565233054358736036501531337592135979163614387451085773993008085565954943556004277590515975260403083039830723741740770365614644058841745829726194081015494078953862865568926695803830214224312211150192219434180350380775618559628706904786854695675997057360154383381873533245860446695458307391502915704501512078404981076910029830771352935188832967791742626782742217194913740810831147292000513055015973979409571132695739860766088617673295040243630637869926688189213935443500334802437221696848560084978068709520813751301037180643151291822400785371752641379940468109294515267732129715425656806180501522762618041252823806033328496016190427109696671266614716718432554470977998798123694233201186091371628780430813569482307441118907029073160307787785451771751170423298693432346285067255369871960707934006472841985591769580782519441885320855131455578378868971126705096209123230073768777260346223422654777499145704523102485912680910803537368618143428587830439420763383950684752317416437553753438536534380196564177996543866862922033908668079507474447296076497422332827724161652190143066200908821539164433875467976848141151804541123570590906750123469736186830216941211577482038320153189298871023126068447987810632356304790107325336515000900004034685447037780531219442222012583078562156693827839963502265573735317591310059106872358783016256882827551838936592665926572738561147060976122580782576976869624428871844410172965335278942862407394869072836918982032250728101685904139367226521602378257410002796052238540846985600334006161194387891116090356391864471704242257195577505938985471752279139863239809053822151874883443181330338180632411595137760146922050988175390649626640524564671703637731649156800592029680376723338816655408275514593045265734086917433767156901167181231148231750657754839592377990501904292184625951567354838811414938990225362898304082622745638016823488240951885172752796471885934509881033739895731661941243230183129258913913960167316812505748279890797283869164620990862547723832314601582947274347943766269524661419110653267105777830875346561501717010654039179729396600330601081198752968856840192997423685847528087357411385253037939627356891864095268587114687162827662037140140478177579954483303462290504701398913472138938676995894072702745936232987699231790851472954000734231228401057331180842210838525434278546551260598314214179366551693567898079201891881896341022313585202498737206823522599553331103233261116736854742404034347631482338744551787779361633489485251256252632298949836349466213636831285635497496531628719647272423173233280077152305154509749579043594430863071270759510955164205382251699139871151502113306921858158940982257894265258662735132285977312554209781214864045744574792651257405464895712491766904863470412306559777022923832422832531459688584241063914953330482179217570759748811872366109767784968557816576332398105822375507501573526390517383520128538938398441845152278440419788263082673149703020681912626337660904086071449526907061967858541024012062036456024828904623657582180390892510772436719894641130111359684444711737692067779968438132102006139363940030323227235330828482803363873947860671108882567647784268312133774678967652323946494550364052344964908197349944608284191204531749135166626745429443688171828339248826392493186697104121388058612369433084726616685962078741738237433429781721578710258669143838824302914456356105846735252171824925257194777689779078465284769544469865585363375406625906304855065627199725768339311422019461793849001915789858462298440392264555948881524186668284444573359965746442522166972531393947056824393583099063948930046118805185177850894140427631938604077756145092456057001381694529452149370942929338283433250942915087095435440505907405127364820594009107936319792589123123116005807454677485993692756684084110042825688002048692923214156515882809430336714472494290217083321713661309397488916716110812141277858153621957557090030812130649883591061744004715185409973434079510516598708929807343710193706986746397760406578348600575357304647149944785609882016443303423957861138229227137285519541425856820970633129514129555562277210604975636422356480367486671493469132427646283125184195693676172504186211117203421001581083990416475245977595498729361416722446160687375605403478522034145095647596543271059935037624726629895962409594681859676031604404721907151327574677636382087659444372452793361250522138175217843900354021583010865822154003785247279568439450790677422869338263001990695211301604513304272485102625127555097451882511418187456980720183447314318645261984081364844967966393016779082379995711186360603255819749729508183558230809601968197310675420927041597479160887616226181737658731852287212863552119157244426928352603268625834617827645695611075493107845234934452449432086520254124058784764731555564738657596202103468923439438347730095646574548668913131257902291035943564928899467409953685431541928988598329547277266054266261309187551495601552891172153782012447050354981291293916651953387679194445014545161509046142703342906753457102295253296562142391650737346919758949065729246111502923196285935853550420736856198919231061341799688513944324042947405090041577436404632701740976269012486181775636789111773611860599981263460766369160028384369382537098774262439513141960977188368344550742081096386219308786283981082736610509785023547772448938829075808596389749527113132987299364292511235597376187226108045375083844010509587190595791638289709653039380600186726468205843469132769529657226641328758245114210275359672681807301582178876329115036403949953784304201549985649825119389036117208197174629131243176941844499535358391926946223788766345768035470908156751211153144838116652032506720080606283848344733605177277836107076103923526164769433289313716716593942951281350625765690321663255549106106884256529962140095456512694744220205617325965886274836425559903247416381730097265639054091579139184999646409092600287319831827995604218078261014257415577158023898069759974107202544145757878788582676527010603124859568411598865324091689763230889647466499466461232250663345359735578100993956719486123093056526888749245325551457239762806459574828438100361127308908873425200348804217251889912299670578934868244845633664831368210248592869057250636857327108472945918043964997266663934234029167792199757649804982059175602396211754892244504529454561581151738598698577575795847919582554819579939845277022412325441531676485684993460573110787927972091084974788341743717514191821146254753761130300327488429720511868360265691584302899527610720403255969023489690167539472764543596860013482612222220552384265322352455086471369473328826796970109724507665813003596787949263183054967143680515925729803682995418279343065562081813405113706562548594420741627949481411513334077476396944496504088362440309472118731097798719825639132211155770413731591459915548464112909314815736098745768583730224612466088273835780260201262245887205216429591338185738147711893537665625894783789750491169387739466652456709895962659532559746716977981521900505995199688908497187827110748865230166913893281447897076570645865940412480349701445487914463498483497368541891792389075601574832840185648117249819233556500831948113486870219046692945845190999629812119208167130978729497472817460851207367298106914551399058586104040736850124133998020257577923376740517139235362376828545422230625592763280931415309908630178266339617318506725299735930834984232809394710795190106347035514372262611388869091862695903432204812590584504430918230737331631031129979864514144481893216768295689950045652551192214575932327610920125603675417341882424502162367557285159624028673481139073433565818390289082936278339250398335239953864524981525796591300373533787176006432509434817610085360033283177661342010169784563840556562349910077730151670042895686574312662255291056871316602644019174985697947772944645215078922543822239395063148682718371919043707847876491402573699774376823015076310018557587194593864615363298556111284559439404409139228383674145096435516679664725307597375863407426284741708544556478898432423755020562580522663499474496828118827396917370186872273360936100405021604113195027923840576775668760707914513624477572036300234516209794852042544728032552343360134603532303259219773599230072335021822325508205663137894761226318286231646579315196868044426584715778152500843871296761896339729893450391223859333286105041234974384217367946140929876741719450615753401406100250887709088429136196593326422296714919142334305002638992523066317775898766005742059811104710788713099096849335687753886979915926642792617052552188452772425414145947131982081382880066879857011544948778155542139831782889215359148924586033766110223984906152353306881751524081778223221774044167595655015672226139189263937559684833185795054949200079896902888669131450417581321630314399076865809877234118511787771369338658172113664150767652742944419827866357847835536368443063160902087295263190683217613529632748367942713710409413032853167185262177179778898350115134898051876388329958168056758809716228910892186408491193381160101881587842349177702845644816104650919995109466926650741790180777445716297316918496437848170711823613713896711722231973186361652130645521690636660838051937386038442354684012657963079914253812769446142180260473377049607916972001777824854110790903826252028073016229903238969074066612643477472113340320362204769315051313464348854189518818131126666622076528194043148475229936886594255129007252785756859266003070401115456486197400900644127936809976248898237457111203371765701034761601093920272828942280320058820989037259698791565454521362768342075915889447193472022787194753285418451748632474751659912345696093438723289547064925708235310614111163843637779770942066216906724138489883381077082226112502285743398884961632745963503357784220306240583821915390990776772495232660629576161777776497863214053605261898762819046097184186950546235636757314079914897563848849903596622609566438230023613518217801631669988764754869778847988676893981412274814182657843049108511526584622571807178142620284077520311343230912149497888610855362832905293404034303585515222087838634171843211915646998792569152481079516882798282880783174068797057574683528156341840873855286502875833988932005519335109285885892844399283198822340790005356961787540584405811599797745844691463874357972962901271872954785005805846675032878422703640225257817525151235646749266050688984853321406263467199956830312530470780943678418762330484062723328728324521869185906699288244346315294759798850990459113347381520814353206810321771396297605125528696925457687512530351613797427369059790191717046627216617625489263909214081479081485061532720253196039146879726006000730670696895310487443117028527320743768584629749643231616055129529578042863491915934581504859654848464338466313803971431249788808094162034826653147811994861497674179081146559720156330539947189703214429366488743300954767253812027144666345028531592220308104888666078907581145179991674678616162817291809453517670598968469761675039985646843411397657226601559298582051807538219260501093258213428121862479183955829311252161491589294618281733447347777964542804199969261213172463618515713352554517897280203627233238242723915810686707403372875515157890530675589129094253275886649996524419022206804553770749923766357656460556495777442156159638688820624838073658361925339615424814461008914588552161110134797607156333238841919421745108607398998312990769967841389492172284248911096709298366469096380011663390515844159894441905995297422995747643209061848490511421238744904057220444422417046444968168166935466475461943704889030283030937862423779616791983400878337751189502905289244669908908896561050342960952503610196518232752360811086724152576983355221474434488062525231798923328001433820185622544291826020257470813149331182012051366134628946884184942162216059434006100716243940051263842530813593590823080825020819459861161914702750198888895149436255452155585208343493760389219562709204079296170424062373568227291794091335031655020624229647163338913312270539544712836306275380500268088814982522247122909587216603398964114461757171852327983418757396539282667264638654112321954285316801807233217388117985594817459237804320331076621496479936193888909858607678361116102269966904163780362195282478993676604069097395204623338904313058346707828980921387686295682132189822635509347238622838784932081314173940005957429374923016444369517289303691935421915606546715679097423999531646598385660502194723639081496099581209368978180250031907509335778662801396189614520972530341454394607677606903556744321180857423807823907198143931253250754509744401506516796820910379763891433995701694853282672724017189013360501614628902209434209766763236952875187125830586351746032552412577577095091541511515742753769755446207407421214128256110096463145957476087218848061418577944635835883445275787713445181773219071213943351788550631212349510429871687386017952518820402966408717068718549935238934354963696268749139278308380028577240978034296206633314317852744332670929175012660961338353756573248765606898685622624033824964289785993364518747464538846504013147994605418977899480292001210555772741213050327302018648517157924855088259461763486075809799207245911739310677533545893499330714668583811732552458200477083017971568624627794649774229245809406010103794374205728304397994561649288364264691879922590594262958496163311601662192268663157346686672387838615204898261086563385097509309991713851419263814735280810787186737064792953231093523633179580742644062810756188776285538557689973071539014998982043035073403659168230586532906721865913080915689432283058892762338857717330333248473325641314323038036733618806266459892994159586992544864865643298689975829801601159174519355070924203933924105637379967179832104956741413365783027624846422799761571308888946659430525997902383599651563701152276447044147269890758409074790642251940388142101852375756019769649430988593660208074068870334639505603695155324181909392003319818377040158615816841185501258611872534884944231410024892359322009182209507138710563971327355013227265887273783508827097591287524161296375961775980577931859651995365133134843380008255541858975514335791834155802140556959070531225482309157378054080639408058056914382301722207780384975333563282212316086553361472108391345186456082466564575388774371759494314507271137169066986429798860945085838812339699440700723614142151955738540287675849487128723842619983100874732141379721602141508234839616330515550478810337268700144266461736916748930236460475800905706620668108634247375193341875035178338367206287862491617300865331625382851888616962853137728671388008262852433989946183988717865417542227395037477182282366530040238971807931613599380742867559696700749147210748479580701494664959059969984782149474441335646130868266455556758778379534497662342586221605131121328809631798631642329792130831436202582032654977264239551525649003513844109439262764452871212170274336040155244329497953258043562744048640702279097438304316793444520456506859674719283431863934087580041876124104889774720216800804630745996287107792801107481634464568258076179320459042516806261143243004931633282041406176262086906694155396302704087987264350588854981548857174512688265856837794607136254212975674427442916847181193015162976535097034500764159704105455399211350128923813100662396188716358618674544025999833232796701558406424733467428124595247179351044045967039741672825420630381202142180230299610121983589275763724967029998583417986981934356370741274715625550607268719252026497685097704680199985655930686553962563038222499049939801381596925951915296880057377047742853775754677323321473102418359438601556784550279261362193035716118690213552784634997120508829966590643050125856400891915990645715967626449665110251824725103973897662750087176341675236746746875860068403492951147365663159335102277435265797867366025183397617893668300021854455769655532626167910211356768744707659455435793493256461781631483765355665418705555605429094580956031895044877518011018587105673879725967698088609670493641176714303352365942427211584791573457323464343050322204598253984236683311648602796667868504784869527081969253719603182441561007226239172492196090123089105447405641300230200074869738650284707646613027518366271161150708114512918993906359434239897303569677844561166142873673104303017934976358209581881865440993526055765319205786311957078474798051672845656557414341594765937711191820730189076900184989290810028846526125716745595547089421584927388779179328046695019043370686669082321217403475960043986739156388844607031414291741000279257258519585157106274111484644113358330821492416453619630975223474878009924226668188220336899613064505704172272166654136273409367145143439427655926094444913496643610412803926349756833313522016396372358498946896401517320398958046891142066136911482568006046859003259397267555405728249022790509329839188422637255226454087495002301944089108899502564493819934793155010218870076671921011719925427482590741174514319579044447783347476679691920000188573404589818896555527750778478399811090793498304086017488329379917382564564009027362713151419952565009344881285035912839161575008488304832920502746934362596555892193034012455683605789360966658545045004529279058747689324675962673516776446614721701858881122572805727000540128730443012087727431872701626922488950766204155837998615785390314358885073647412395358979805127525089204966911655247294559399514758804481200685757469760671065029074090842800707644378326515185772117971844068625659335831273256396664958556794009723894984925853591010641351445201833616775619619181694634331086197657308420879674394587601778776325902493976436933740859998941294631785630221452694024571352600745346326974694474595431287688727583447221227875396383953270931482477519219987010956759614496889030563075205235534220439493378097863762997753732003905670658717092505440442124593413481652856004335037065004084910259156361578684721544173593964631842460110522527673296488962468292722997020969547785846490301927458108572578133034346841108391222526346762880009935699622511912527581631081773765743455141692356752469290001386434717095469488636054446760503774642676378908231240087183422638241167050406316521518836640207069151221414999406033267065266747428138734570174373308206564678230068743764015621090205413084300266800585906277429644409890722147517575902762474406842791780783702281517150948079456495383613384941293024449794171445565318641324178812995222292604825125138668212708551573489808100808406216554734960456132793154933170228206169553228618185152977848576583846390655110553005121567662727621858531375398568678388943568129431839573073792885739334020654255973944871978768883139716146897736070895082255980901072693109570502361428201408975702995715567592552406161136888711007751429052136636503906137844191097542642601956751288920989904406306969431558229756415408533301131976177633940884932716949220055873543341480037163106592339441713308236329854755817193667285046726504366768881756021541599005992807460195775852388787902004203549095207613405589122087033565242981576710640285480616253379624275977709094966759170721330932697099108395816792236316069095341011423026397589887647995134241144182529208823337788864616683043594358666532715644165803972324481699903643832564190955761754853197477844134977641037380243142511795222437629795713455504846298257273999957769155764693921059462807483611449344943012134460605268036231436702733006153651077980296634138407767161669953712761404919261769921144323243346651444908960645029980787206515664261471886255039662662395284034984296342496435166050825462891124779523233181250263890084217473998440666223649343517169533777800831326459540594673557641950291720818123476880763107707578720418994299370907482434337225378243096417615994439366907760357155283734733881061771054907028695696521180674306677471828810184611499752598579895492154091587866699326017892600900402866380601064831102610428687402773919111684801360996340902783438363237570053043033605792805823672045516577732583190318686276981363882728887453642231951408635593877120804644441675857936808145900496257451810491899299154507629442439979432580127373231644633855297180555078521085750869856984932913868104924061170830784945148851964547623791065391226238608517697808330834401081439636928881890211980582950185031384687749860335800047247419219071301331330699627294806626513488887715629100919399765400733360093340698132641504193655257038627322624953611164845175795435077223897668328662093655928444693261155286716009305038575619880908264757758055144403269067655091942605534562689641092532283108490089265077199207756617430410713717052270990306558541726297709894843439088837768811745632873966592175432816701179658663676215423989896047724251331347620564807532476135315604328389366847006406659059188843725563432280840183727525448171581277818526673459729265847660924540454440718462555844680862945516166744937892059307107135807514264082655920727346990476344139030440864622487765653138814809689575625420291044002751380201346525588999320783554662170906579029776774961602401254936859545060116198356344759282154298068814064633546536337490614625842332282047753034608582795965964176718075034757357103903468727962080355718882973058433443385409221290843863862598517287724961337083256020860381468262773258046468263833257970023699827576392749651646390714043558492726511177996852847920334813724913538506434439764343800494070532087925971229932363741582059297482570200409921366245949059084800759212345344747924531428040879866208493448260284289568285574168622913014942897116446796271897747802176500133337575754318080085340528578580446185984628291790417337073807131191150330127190580210652779532996410810722542156702199170913162663059324965323926590722806543663259109163185817989970834398123848811281530427397291261001620580495749610222286878292962340823414618077027152840381316030859722660511423333920155002805144073383280048345429715008746737764484711047057784835333978983202496589002760011099494550732576480172410349944253052397749016252820701065080895257770450970742935510316210444723155949732665437789306927231044498873095669669422991294910164240888222681020378001120546701567276714294644957297677292877339824873876704118670851173258016976546505393285527412761867847619160880091255866901710072140319680087215943761857750576268077670911828836269610259510709691356082782439306307814644072194168720213347903476772673534951139020146099117485027639065443266285032085896078014714134276328427822470360375760949237324230535693316681676657831621337005377918889705268154064907815240753502897651789392898281682091886591062096729674326425155291914049928546450866722317755976661949348438045781533213695029110229874797487010784822121079961628646812397735858876017018590604294150293600337326518192236718225328981829156531435917081876690930713797722259241800888011313343012331156201715180767781596431372255991055624711865342384861843721378585086499027954781045987529797674874571839520301344025215981957435512089006880974345809512040952839416167747128204562656279027171466453213334260671143814326486463459626820194559326451749907292793490164623853133810793930426822386001762640826953389849111692276858010457356028751520169770442262066613725519632976703346092850827863711900345554538607921437848089726525798696462902785768345337652786374957256835362120171499406054945260896075926403427047783714264473691663434975390750445085476051159314443380840893415670718389914362272826704957428412468301198249236805717743757892609549638096864888231635655194855481380287764150658634836103477338975817403586255507112200421614407552388100797178719155703397368399647838140773643116124765159263701721319769257522745910302101272356993076748989728439579826590311757370971945046432031893297254956489561166799177343731583340480894100868342492869266212154021722523637551436001727263699863168160727193592434756684471247735710924439532766780636527775189790089190683192351201225663098161190572666445240296577350792818686117572106920514887629666628105900260462456629597460759383898630826738033984703901714936479830272539482732122901998603017396880640180189028405867806002291287453542901044472832978829122373629790399383472332321689521101842906887448782890065979856936854441099351672770012586520132833678167375781221429099555352290751006847271252892351799599508530718951676443307584570740756470205944877640830248462106783835519101391044179403670293529926492258745745527203212208687900242584720077498155387229780919108154169160658211285745160632877884378651135385221983761460258185334286887325940742902685066083193320312723682956083481301570618633166698478033225069185589600562451797028535812055943930769169377058788386957308469843404528935014212397487042819816052184402625008212570822697345209082124513062984539887123739617174611714976772493377868556042705338029817767286805324139611401679427090714658644410079778971779943872953810283262500604376322396044234784451065798168941962188057914526622057976473569053791494935789364853795227275691192932034855586890504572386566604940140279944917422023612531869246310219198733792129657967745473540515239337503123553582199149642030074520857792868535740634634857561446657343370181942448194527025754185484048813791210148242328623419138810441819366156713448210964050576489798611216039222760314403524749269819155549438637050444885937227478457482482286088890006372280811038512224404028757871884434579215834488489238957432309288825516146376480142342944359566923110867719284149988202606397010733961539404737677325744060894471858117827525224691646410140819559744620111073473532641793210333123010582275746921404780075876502136662290517565239976263065624867035643369898409355234887476470336148532542437092072411162017869718909672772135358445766044510532710123694461916731586892418788906142356990543502498778067347276492698906271390629087592210118547921863123996895419791018970118824354124610815007682768105233495199695952859603417600548803079653629544390756154475503163738725112356425944639793921447845042589347332707916814456172399006910853503820276260957098758225377037920005086563735073659682920566712038804656870216734416775295028244067212618061330478846162243591186000878990601078493569578024901120554306099041529662322318040257376748630760604987440821190200205566425061697552698528239984080501481476345321263036838979138947533912205180176727559164872765530206957788942954695746014647503674102931612327757020619086682562931909930118223533413043637289799491809068549114483377367749974638306997828702392979331577037918130230595805748937506476892763740473575517248821970893400028223075845764076093067595768556972423720951220927754920721447816297584494839982884797681644460018331036323595122165294350677090961886187231463290419212506628214225670897199366125904038432405465700066996317238368490854041249880530379004609893957721814578766472974928685665471479576619107973938642627491943379858329822509479324150158031560408117312336896973658442829569998317793193214010714048411877386090766097122755444044771872678182437753413755578273128717066406151901703825905485586361106399092655450437893322169327431988547980133564146806978370383917689568538507641415399119856209397032645070671778836037957572163926495984790861382991530356732206180575164099822500360143984413076273180742672697883848463442327882646312379842463679101748563063605834107166955224881757184422987323435082086448835372935511023226103309748068610054949293615648392041388683231239386876735734992122875323333717133064552673935655457916698319764798744605577633312126550083917598707595460122992673070131078343278260435077326559234816576031629209409208944083683571551863290731449360040567256416690934459915490841146055977894008747122942204679510242269724127183934893270964387810694057173916271179305939629305504487018131310778514478089050831213343181042456493062217837690651454320772884156935740650888507096449985503063244054123654817852371875740043960149879360998892801611245728006989274406912465337132221218551188161953605831060331322856656856427832290084312030497163452725284534996262084921358284080517674094960714865383985831336701259183213632985847213010009572662984634725295150291361885856130411368844368350187008520567298149988362409345515891188938858386391920071128218208793981935974244893652668217363302915088618611273496177850717181655616979603842362057740632282672271028060988320413151985582471385450174576126089533897819181549147402754881335203467503245293061130472289021877738212808857869846571294279820772821480891481329833119514040659281081089563572038462360439526697813193814204520097737066677898318281582587636943120690614664287556675245670975113111430404827935117826945640910309069908031683748480329597466875235935472219711199816235037720107706326279380652250721807572415116911749177196952201574357021142842088227249031526653459747501115932355634557094777298997832895935358030326499131461390682683809884315824277671436017107639669017718732588980841335987555107524437879640032645921061958400529544621034098940791117598270628507087854989502203255280504823349491808826282976194754177285163274880474047699260100648943928659678206772664635159081253996362937658040859524702171359843716630891479009721236413155438956783882064608165396940786556241284379211911976567845544003698110754895963405579601313835568802158733640267954158364726497478510030889253340855103734604919334868637781008163193542160875444644073002028984409257438237927834575716858205759285723951033640161965324471911864083708665317722798106878039132356000446173445824945508245811655418251982769621379317526998578262233066675913595828001764863044823836293111874003061088170597043075821891282905148306089464756228942922645640605212723967507391022653237627608507571977407800306471667314710894966747889498969862472350095547039712984678874510005773715460162928709402099706782594445508465891866165678942087865730237691991978637285079907966551327900307734553177311085108010721412527895846702928744305045482481171985175496608850579506253024751279939611758336034998846168523758930576868525912994622573061325411607810217892948328082467376593139171029657847506190759410699487373202123248161371827940934128917616793104624786843719131197785327765052524964726752868372479961002610362493705482807277791503873945009906170260175325096065611237367970075818435969403847466416249609234656128188550626818688396305669282001092137387972459083507776723141682694601554845775945545710868928713188124831220257389509003064634883393981193532998287405587202336442248089807304004319827871538559411325631534912065410378280992909193543823721510695200574494248487714016786289092600344063074344985704490267055826136620252903726102227449163631806169082002443891543111547608745302081838149307293941812331593974347108611997844183593850984410236594813055635328920145769345174707387397771987943792881120256273613601492658671258383821696688976888924308668389962991853936287773886961367120955121901902060878855637576874513153850395988300350098735846212924904982128086511068494244526534860975020675332121606892753135274333596881073337007183569692894598043588195560463085501243390264984002004703399331050664877179221420113541514092629910611449798810458099669699436851777158192201420226481601101871246681470697358989411623645250639586764320296372513282779076084652447103130838920384800769592595199178767718489859387149311654248816869288434727180154165927928605485411339482870006065716994954337929262015191353576059276561069894450300832058924287831659056484265429196576867708178129424569392176052264802700697842409841993318606478982436246033947696660837144007764022745530075471186327631456560270948787118041582965624917412386972305806230999067154123924090723799046855387535823225234105683626971684557993645659470108737456869050172127319900313923373451251590979749617090228970540074762196915118545574856731850423705163780965108405992781093997219793312483645058055942086877047702388345535768687404526760942573396973627556268782470552376678277331926541862549814261911621431091883574550735970401437913562518604255678630864151398317023878786294347251247242531104172889007985414467250387334826728309094660427807131923894144452200256759887433485331433152405529382275827151928077460158421929936068582417330425896269434431760960404710988619133648710632312041316409436767618246586951801559548244571751935508941094868735497738175705554725980308522358626213915007077144981113509391949116162757052424742304136909087210318117648400146261377265071280639904515418751431565720285975169428909222293607782921015500054811414693385939077787639830308174006827511661031460441146747647126500314505145736484774826485960724904248009035396677566736226885048894681477786755356058539609614484635203075092926176949805856514934100746157135168103842670896870795496770028989624392163602754776122498930808985120951177976431085947750561497135090063121363698665217538892077690254017767692830297199771442554272896813434178597347963776045265939848219608401262064973806901268755637029334120232627676581762455887941855532402674253891231643775871423762257461786397890661875404363369196750304275481570744027465682610182536505672212421812417840745345859975728211857831096200268854019772461928090879047172548597385771700024416129308575782001332575158872056129663739051179968160814160976310478578260191691818898279262635702368287883777576715029273773931223367062085045830657953358610982934136156733172187763344900599129970252773693648545504547322348835413214394352793804305846236224241276592303200328210482038379479692114898215113812974911448802151483203172745563732018610071770337654943426521049958656914674785149300849113136825479441852892835335682135352286944361780545065155987425850031245184303333039384493806597692675174078809327536795109202338805763065926107570372708270586237531791532488299791826317110803662068173112397236408588624226540164661579486264483498225250873472218124835441196327740396117520272923839056704197545692368462938832031527034246084164134944917211254298587717022730199784840889833795746481586881806484057601319403596645984019522443384292824666050983342957627823749240678910534494285080655528446731114836643767815311272922905185997466056804926996341901719214637349132552000881461372337574440236518802824713215026114773459027250843337737949823917210883256798776347820276110501455738991236851296090699141251339203198728562422440414010456616547738428267762210742600165363281609647604342266024474971422864451743931423964130732125595181539858037245984451879106089461785978281778269453194341378112348662097999551005126178733438379779462056386693227917300079153738357960889257757016296840260943057249845612216905300699455577879894326440308942618578250163784484322826824077809289004635861812066415057758654505386599810431703539966613565136324468380194987677541474282356554773662088909507308276717985571275236331458971256672375163986381496144165916020764729462479344595041110441819368275929816035325832283433719900475228716680305812411325064933561874775562400126115224583474455287840179935932023094809155517706059232267350175441346671232673516682226054461776696195186998601785983930359609029865916077676111351183500355836364947203545906419466732472670194910217879609893739526419642256221862361687668023621607529255925481449724637765158464010869108835807697395686017532095450523301533261448441123981304545122814229447884691820708801811545168333067154534350827372817061502179919354238877648752481936020523205560005658468287366478433308856146116403014820842263690769166387204838898695798001674851049810223850264950211353160122330365823980931058275186531217400201117653202103872215585374646461402316817284365645902317746412589927745024977904479380706555477719586254524962057152913074235886504499630152263360963518712673728905639676935459452848440518278888751738531170057266392163263218540389404273086063389730500556419561104604735523947324355423116200345285904810604907999628522297381511247697128263576470033207405597531684328640245283493788653196472990565669109602232347545954006078897740379990238670529733865482090294280392136603651369140389608134453009605411402691580989059187936742530770432395816027826613960625760565757742569124391963573532382758836911108125830702526126621738384580531411113759191605156095496243518428793256004477851899253493876631107985566194225774214744721888410490479562746575084516284594118043798453980208545789103077906157377233452040309703556025541096527504683313053753958734803325209837875958923986552409157825369780898612084692170083900647603399717718483918990939969586132135042941148419574097841786313014187966686463380995150243312945028758714373851494832877234181472180276105507189899490043925280536277491249621635227027611768824066000085860410141963521618534182385426582698979936790826307125771951185168380269473823135659757942202799234471738184359630759873618418902490336611426030101647117345324269000604919826435933320344300917399680099511629051055410252013324927110272903361383439167545806895932608142019450426113394442023078638508366408981111719210554939486344340122889445452499431385491139648284351492004970245456237279499273494941882266740665435935734373180242200273334962635912740485087369965161493912864102339239037414760518873264729456220010467447766041779218101876874118118165437562454034438174841451262653990577229864638006824965317244702267989583258031794824293499874129347193054463208908371631117366389063489179684519689972932319222712383711072131309844215388965881639004981437607065626088543306899651445058844497544218262920544051803977814162493478386830262762691936743103865597593420781146268284845817538227774760564100406619731570394289683639808642286686725618388444968779799365034846146226325705676154117874602172033109281663045569651187082313410804920402913918357594445353220330439195516344605277570737402044128530041301395238090448691695581228992674609605239506878373161891316789488410140532986021444553581056124223391459363451934622300803560889815987431574962863002952072543003141385457218508562824261099903146846893964557542329004164157392365404790136916821489950311718600970292135040714154782920151498676175672524737395853694808385286486950041028497747178241064725068948743800419678181387231019283646947797699059270348473799338178522877388562643582401422017118537148174273983395772318759380867543653883564258521066626661609521267060204137565091124103019980851864779099156775354777696854176123915744341280840446057915460619537707310001148256535010342583753803205746628059339880484342486228808043482166651526504562396658801445127418302615749638455779899348523667933083866566688921108687735605354892359790156411917136908399583846421960161482865143679233042684385975871971177983577406943885111884615761476254217774539116070517820469584400927031248573868883087419175794883629588501633758682796039219916809728541989154803867517331543224938709902007430956261200417589276144233761676930332188500062778077738768238285580141184865170156654145030969198386001520151337317497905161557069304594572372433107427272848015642100797993985987305215420426531681382246833826204635614598454788403170492516102794108078618626343227909172385984621454970706804273499900691691491929677662441634863567028013229528675075349849466814183802035726748408757990179610714185527701059037312741694630124299066984402450163871074660124883208783033397788283234169446745738299128434804397737330737754315796270151891109761728738811114126294050559114399181138586178226654313805866204197510294366390533276894990329984702503847601853000759642415789519694114088797677946277195188702335219912736729622206383200421868894582854196219305713212673181178961831527028975852778863081403228102471877544778541011750315481108122945999401445071265357883289362618989437135282298858910490212998086323639599535531207498227080336482687603285961879433463025139599422052866476414254364473112616180010847430353498210784461883664801391460136254006430009897999653580215245031856222853952594211820244020681173368865772859704383533769194128565552449158675737747741151152920421652539748460223335333358235941828343908275592675797983893579687250903089896711834550263397856056104109421786385649712029029922838622598472417742451528641383413709537347467013121905670963321349492271376428431727514134561495624426146384748493411680176098232145845316242102975805970732326314671296135179408883295329568754758214418408055030143543196278017092121804762682963928818993923206851835672002561325927982846805448108181054870162769203708897470679915941169914926473020684265918593368277743082228910669876491521975839607757445702172587388480919240563817016324570855958198932091127348543352301627088534451279923048542707962389812879602789789833315478824479765978541767429121363929194907148951424392066906802396903082022280787871190864707851845360018835471254929639953160291617128249834814052540757191651104298945858631858594782023212289584557780556673077843496692470801709541516930020104168335606814977276546632952576291031163001664003204961880205965667948055110325812260837119335280678280595993779910070427892271416808274293236328878515385764818235105897176392386468456113679566796911830762488786588857882639583315451504963218027254391314080627853393877869792349999312674777142242124919145691801367812124202607287849405934787898128330079277167897930171669500578687116014536123570637631227449296248762932702462669174368704066769725725713613532562687513163638416943070473856627656132334794643388706352907440599296826334714723298076508089909255588764798718559549034288496218200314839818650109944908058274834987238699568232892877617938322452747446195289113681660416215690127364085062646939354115373406139239517269496951381842618734022685485299570572865469999209037289850841764990455974084307177330849366484546706903762125340531184955782272540514937843662579465400828009267739066401233913829811032242627854482966102156096670477721738274470205556084909825720800494351442053480967196612687500644253693749121860024343357840104340574442377402145832389894349760331461523703243605194599777237918831313808419048957406773899995075346417482977711384005247617259882873362323078504580834236630730118723859616956245838729909638445232308883290578423819885204258136363055678851127668488977556253356986025086206600812286957827704199507461662754363736817779565955591529003694501761766842650189971651020744280420547004544603138288223241239489039507533504651382407168235061489769448517969212235017263283598181046351464051107198358427249134940290269435724446557351558088976089833447211464969606454920680322804327987741497113811286499300546058808139982932715124650070523223393081839071123777738426226895351657971492565216297128701909797575919360697937108993701937297013066130473303754808585295632939322889161726280081159111523234692112435084649384676771088231975726676527121330336275540269941918646281635462548396543365081788657830753294876659923904239206634756880625283574841645652977522322995880592876788540338533678440401319541814185144478933731319321463961244541714286488334787376183759807624721228622475144774020502211347535350557021615992593302873101641770869829587329072240199699012310984541345433498752156614550328413908214449765901532430903393428317067576741388061298129754108334224414128246212935790318875919431931626708715100098022699128701303579671637868202087367410031742357012862710521881478019319161498641902518913599031486920127898240452483283617605617251898055537802860779510157931057056574637277703964620812494707738819199195797082205735977389375758977783651830940541754381844787531921498528906869457367908857761667523268768263767743957883300739040790036064047244485922202145321640285136200059221331218381031448481483192954151710196850386883168652180081575230191431354313169593919802717025732754926625714979377592842464357268935323622268306769144939706173872197451040251783701461394789225717039539356496570826155703660816176567100015903819549507726238860799516994178000372955064281353479668953427985624911912247074295865409377539963923700290650582887491079851615250130518351090698463386900946698288785987901764126343393971481278329853355534355947115716241770581826208802526020080317096708081945302645203104310195670993330020745305995686527347805803279004650574540772630995362971630964092449766255167494401426957015734286488451917434379970028709440421616196152576101387312691225694948597512172731304287853015878399969126970936418127429738780930136765104981024557888566399142891044275624475055985436935527041669838117675376209041208630891544504264051889070299279534382019856335245393996123360943502669731215111149945819424112936324682913867992903569295402823955276276418026849960444994229491053105358472234528500129913266205173050057803205772650418079845328593695651522566484980513881976361574993148740035352223569721038080072507917809606460472519647902444337579977423841227285975555342649243452464037892943513030754012743608770245925920885186463532646752982916988711733584852623499713885102104544550151069694039343368639720224009331510546195985781217382270554516830555144731841176822450627177083253311586550795174390107434455597761299481007883909412179981480581045556619863704060383542887365647489898527325946849603509858822353638786226908849843211562679209590000210351244060993437541882923874407196953437826296378126343471935731372620989409887735320353227558082899562681957530784943870863122191902613220170354326207564518421654755580219006693168472463466653748942699189221142077325370121050220450849575530740292429358898916918704661758275352830548871173588673671055568077369344181418551385820478482402970127038327286168635649426225240329721584060106468029032936109087853662240682515195304226532316098865451662386478517380154563240699306487767476700259299004542383220684348672966403935377571618878191184851029044461969140636279557739278305089720664824032822183642031637038221323999906655024598099463966607201395151025709277737493942142437546980310157466063435947001878724174374628449631096271588986067342555093016064515700665497599034410720431628095617824722452830218506780809976082707842928374426815418487744119240633647382744182393830429167647093065044842039893719982958348019930321789374184293529866606254674288313420860762700268586902324930076455905786418394659161592929207200382425222354481129258382506776562161480818990119059158281786162111621600898200362921033448685985056443947350738583690841057549229695559290821425666161816814883336823251673797536615514255027010680435291013769167111671637056808151503405174146698257987363506658781996649176325387214810947052945070791024813694800411235048875617966491590597601221208326676286159953616319315431253152822569861859627229433366127064769780121859616584265960594639030451562702932878199148015687887567880094510024052473344015591651042447634481361409769884708064604714885145977475211248488446113503714036030038469696218464922789745727632696262597266771599316322146608114201791970480740897701817432004006708145498882527865671072477369652023859394525480023335087697792206843600238303521929396315913624300445937940318286194013060581177105591950377160471718265979064282393823761697067579187202321526449208681841799811552147341562120025353225752411081665517246602594722983960352513330563164376580149468404655973767451212964173767682597704660172335336117343595169400339462106758367648960583329811034649634580502572025586534362951625837472727532206581907672148918963436167923264585138070607232587330877204432551937273806417081662725663638618753325432252879917495316339138310452853737872929695260182763572297964314677173315744160631022848814834859104243291870068334850219492217604215615843619348706973762142837073593396853099514764637471953506967166489871698158812993804822214977607177023544245842581032626107965316061381501243994909284933469508904995818700975815835982340110346975052446777378302908032807847455346803137717756374564940558617472252107764018812549813253632804085667825391005376361453464371203654015263702140363267203597638474077590125626166202476601481290492868408686570567370939650899685052181093153885493086957639287668106866623227785095826201298129169751962052192048919384361671484722188608804264367632450100988613217397276812183352120136365063567396397368798125502104623299456000377022208622702578977610771433045416888298548201231921646298556880422989349514449848737951621525454288150912118128699518047968203290255388418356238869605367161107385290141821965662599581662065004309324020582012923227081067886573748867138873005186008188702939542535978488470273663556676625163538073064659726063108793552019264771086185218667679186941422422073586107014758260161901174253653836018719919905032125650691454498706704280918901628615896843003350139032436105818011800061556822977062670228798801375307211644895285145871005904332329684572026423567334954726178639199494291085064074318511955720016559798058685908638977060756301248973088418250470428130125385303466245186157689352152200563081282034810869499639381675980502955425930130580468780776786152887076328987235623557807116792198022066509756679803636176582734551113908904564676972815579487034857352708831472480094405738922201186070029427263877072597621239602908775631136579957615118125456679982622124629242890178473885512298336469332438301709263071312915269067108715288968382217072795013461700819622005473997448784979801717879260886186581753386725404691803751239785452058808737878698945095409747359201520468959178049056948842494011489312038278414063287581557140978940576509157183606479662986841656020426063600121671710777365884361496034896057045883453334546239919806818266027491533256601766112172760164859372589885296807348521783005650337116001192352687477324864706634403231606218777979620478591449816690019030827891389522027910146376623272778575179602584744608495741107100748890360020370579908532367574501618409696796184379929449538411353337279954197283964329799107328551873685118293086466156356244475247866790642067095403156998334883242347826554051151218458796647458270636381973136379390630855139190749928079922129699723753634724220301977913578995010679860322656549970285886699206212790648059307528098726452431344716986236168939318028390158041888923920941789424227326621522488483385051066032144457677334735767767066514481037702767408672406153162423001599228987767154885656406560562158466336889160951938730468907201956260387669312650576888482369220862136518573110480062509459399987292447890469261032831079337326278726967853287976578395831191924597194904754493080692539115207317251731675907122767071596315031791797655129406663978239225747360306845843076185986982558563815472155101345242766131631166658628310696243602570079037672380176567523505840961944360364859284006427800849196005260128000876592546098288444298813315760807616181344788694615384710688870288509878679482392718316052821547985472963241148879290734750097074460341234734478139124071157479927377372577205210790677955247367614720860598224167343352166921446753721160894445374093254503097258140332059099180935289541789519178817770308413808925880108685179105922521738899687693909221914175823708044962426684469413898078063378119235216759225786268786557788945700332795997437238003551609400815671017083223325116498868635172315513895881213287486872468294971940029938831452145926734715005278862272955231660649995952503980491856641928339145012859056364113455839124194271405026239229328369764722882573649886620132587867041620866944300474805871572404173934468109889591828275809628871432630745310163057447708312266569043456795752169813577917567598812224189154639572899323171608291536290329426578639773231166198582413948041949346792526242504504978122198044606843549706186623465218033934277204311485887329141987332193537272901174046498395378799069441000635774709314714193918325612630230678495324728165698468875082036507945623281360680383924470299943356363730911611183847938586150578217729964001685809880924841827444802780395706934698450153789033402775778479222535813679186331932230149423352758582672041116769669076971726206604742510385668272571404403258776730573254846708680066324448482537228724140842102130854405718199989326420138374930559895332359603482089756882622878083244219938519194647979236776396942496598669873251178903457314368323239716858982593140254803003967480845500561079988404008376528391225963410500175681947175899633183753094664313621906595597470307323066993648869059624456518896002801266779304174080618401818420661941624658313875178539580669927388104419964011749945751550100692094710622616834846448764753877343127345392574168132519011874062811751540967298636446186846178478023284013494878419123793475058398679674962342405420488868041646967085504372995247914822220048879957859690682461685543538314791308938981851109757540306463180646385659394921667043582377438836711141616122968090714990786712959600581343608988005074039663090368875629181972946260920453011726810738314861352270487472520201901711971781531059323488717580699958381814687907463821270897667542126703586275884753719611775998233712564624103783825385083768055283858635053862345230388645853102850633192568984973951741522011752571113582285613701271611735896461124425035140046811147633588076312129618578141624585847656453484558427142146101452050748592300877111494297802849388256655931531911342416983126553599217697050741627386874440385144077188996321489250736755768839505291067252929673162989718308841847141309255837811811398893202060614637646623476313001248158474601693794318250638891841927548306421104683562944934484997754377858225927296466247407843865599119210488061012926828973947178260154269600656072027501785031462128013086432001822327393117541562504517532279932303634128006418610100882255549318017751497642844364183250471163021194372919956713875178681129811933179403283470956737731162880258358966958554558570364785668764193569978549231940962879799101074144807248632603905484242115779068946523837654981960668223108158130944844595175597211475673813814144352380115600768683677716939492043077304870676593110221448189859572092395266890074776260678978898649471810501391061759754374378058592912536449014133022953270380769802397893578163173413172321442733995732083963518363620950564425547223756957012278212108190942193688167809240408827981840573278648376681550918165772328627765683920555731184153241852460565356832599858061834690021561901803613020201169965776225112825695516706948491596924604811177293102245490798033478711203763860421291108376628829652788096721741078194310375709807289702030467284039755275557951802253311222832634929000592815047271671626362064974694117019092664385746124119910315274541842717852848160372549822665064625773505176540031085973807765890677008414204968283000026518041160161053652395869759313177379642040972906476510223548491723632830850778477327905807361442409495688348963095871697210277566260547123715727911452807009116800774139759587471834519958006087675747998472227430919217827251467836299976787352068677002830067956043723451034181095158759685320951131398862313786976128649520841024329202900385797747006497376641334055160399233922975758067532815563769564439439769027277792918747925049156633338999796050272998877076740784043204693574915729247083870366981055406996231621685688707033884298835183960173900339685903329900229178550082183696553952069393363054182172461241679361240387573710428435835431698822720970959614275502740136995667211616315225196276447235520226464997920287985552597224721337637848069642106224112220595075254022715987209314123459691717249379103072540614985539971986263444113179057964726726820640624451006702645880055848167358930345162423953470028590201964308121101585261892763753385495731460773910522368849516432097198081938710013530310124526255722684121237730421230261582840177624471677478747347416763067690122411836172488894229650152825201426380928137682046396271111353903069446735850126705068484799397237990717201893316195624412534569654522067900807010066191333136654505389962743738615547982900827504143849572430070025370704305618845968912313714300029059382594685281776638480209935214160025419023525364944154822774391322292019377678862384258962607934534728547947644785856697914838485454646170987382975755299231075911853812636960815801034228573176805476630817929633872292031549561017529306255707111227167435372814987887205094332844417536108037456195162097759246180095212006249524937091233249848074586589700534103854591440660967901401448253192118167480338214681503745952612965165058168716647257629366890297382701352840609757229904542290842764394087293600738538528426564509945962517198430295376449090586277721661377228726616725722180907848585861483535666626486162950051970718007437641876016641493794881802136261692368755393367006040670255148498071563820185217510560693723113775321032534775757630517859036484135219042478999079502784807403792951775465104609928879825834313175429978399063600708343228081593317403819327485328132023817095825942150374957922611940197950574153543250513685516804436302722992751883324573954315934637198150707372426034577403647333043201737184544566789883331777593203885872007033701033108394577914423450460030327455220422534023576264730430415687509821401905274228939280077997155218562117975803075446958436713702783658912226539653695850661948646756911179089010435914082911426577047670456644884391524051193989756160968265628153897614875407759932877877135810770128403773550433180103425369424574382887998730632752889717352559355098402864252057305275440991310012046471621754748176654505078557337501563251447033758430734679463399422300797846456295424639482008126448794002473678888083574534819922138416310254871146814257626181469635751229274397888094397609054925451184717681249411819892600066502790942439102259288999309717667333215466970225642209927825658748617492474525464306591965743738437932869567945561367190288625040489200622174803433475106403492854510153403298326325492035607623199628857519010454542727147423230683165977895422123111940064715444247207040662474211616909612295855294954093228244177334547831874438119135877394895169942858860718032199076009831178951387339072980832971923175305172278422568299050703141467216933870968599162943994948093043469537836499102122880623152939596673223446423829328418420855910235301832257565688772859974187240909320384740465169461507193626601987570309645100317716644909150149109677522412232837044563752744842104063693283732395750271490983563972556862804193484791067878575437242271699275997776353101233210422012110688924685375823554829413069835107843395720857402773412173962433297164082105306615071854414109559067583691025067139329088180482939127370499106973400849953850485483644997928974988268080891124467677672467827646472290681472742992916373189166736797887935852480253137577676333866565437785088837300501371841150925131818429849994507822871051264858291203768884381110716477952214100306557984660237058599628645293290216918676510648258677951508712626403115116920941447489767015962635146724978683574766892503707613454766698498757948925846471258833995202677001533120204592490442695595008218041461619750986942788298242361500037026841213977164450029670274477911800151435241182182554947359818308319596690503603150929869403449851748012051627679910126215036254928623414438278347705127456428399387037122062448627175294615091077804918206848466001617708119960102558242382291466945899706846591337875494091638433837223057345874810137232048408826884744026801752116131970453219985744992729431019903692207418122099934752070423192866648997983060972017622045280657554409005751411251244349913044250363453251352907108970013338018818991639211359388040236087132994805842940457047984430689248257016500229686843025946683247725791644358028823138188908962334673910313782734016680977915646811788230818081011904352641929950198995389475633180773424654134434604342637541178325002750848283534070208736851565810872244727507552737517859656179889730288698428079743910750810321944383039392491576131085438489943609186551774987326204512508108878931769012811397761355824512067414636947190679199324185894322895269576163011978166437889450742487417253824911634811512823038182340587121248612309444236774324994311758040395429916214491000752341079399669190636117872240129770468137590327167531315701671826143417903303673789647675064731547206939379606750192511278196162394155463790639912479204255290663835482430721255283253379954116195575190220469159309289255632687720798337730097304810185417766672809437715645091864525124278356808343762883935852691997367158806617116109144941500401119552947594224836994150809140550237538123971427748291523357299253978719692433939729643243864524121232895712960363300760934869404826904590444333904789964734509174897888842016407219138369566164796880785536034599203060234744185543327002185554308280491441417832124848031817109058419090634238071968073337765757315938952398989407097951127358309955036555138479214334532427421437138956608878822170489730002417703481934205624172822513092437659074216791107719227386302968221750380337169476199106600856321589969775662443084546102312051842668841036894942382693853117683673563462537671897044384213427158257973006622269565923527100499819647578725229808636089773642539700478949728684737792631300349022016799262015910019914222248581174013334631749398650920940204556774941940124305910293082434631440020462012382723844400327189884397650795365221420799211217793760758786914641486488629583889584511505244954645408908621255739595188918911028984431908745004427629504642142899727569606758933315961386307147223730789207893284146862004638322401839640386642142845177575695363550911335380782000462520146832177125066654062462129296304865929694624410336772708689736073568608741261837421228726659382082084106075301307178482768185326492383192891157035633427689968603310124193055806318231913464235283407742738333223214040935143397201612477637367950836692286904111997916002843124570491179513052470273030303405761453816038996193436039039091460553911702022884473442860411778714082497591832230880457262167049442884454848771066395403678146379482917541974872624032159056101768426823428210686942328889582233377183015209952294623544327300538931395586962550459685145462114589421325937627455823815993142290833345130694803918504037105584636135078480192882636417681249528547474467475543636657306592600239029340640920973486528894929023322164356626686820661287738431349844896331261532595077364758394685330955008153773662542624683379084391495162512300442875864440234914114312287738849312554188916246914076389382372550610891690569924358059501115728511495948821644193387417527657770008336191065268254147118163786439982145168614115853420484536509497800219220512349040487456646048090014726425399514453828329159962965214758130860127743035588235510961094941070928973008220233777920621688086701910103731934354332297078123893962135849677779723738884235744963109024156094674579701861551198543396254490817765292655347453204802770055921869524736533833964225715057829742611879996628072375176686433924839934493764058328377860940024347954188810096490542440147370420948418402671982823108662696234677975429819255891357337321785696065351180984296736955141932181964633600155789830662765918533990623310766590297175533877133537908282009081432079580887618718828501480951309689179895598077435756252220425055076628386806745357834739631268879478447185522302511750750386794698262844706856236305071818387973366072434307928174720984182161398453290804450582446798088943795490680737223199350613906215404446069404559528723964719832270693715530840145543173857792339353027932833413690058791282968883315619411331224201728758598300142110620873136761823292296885563317996912534497425468693882289283509466513925780283643060065586049097502712502609858941603455674476343139291651503237902740478434123201945459551995771680651762132971569566219742913484851713341538664585975319762731247045735183111012478073469165380708258359325869713884404601470470040878326265622860973204125497732754242324238004278041136941278557246748082391147923702895632512172320911236148385373135070162429776860744203386449039521510109243858206727873978038700610389401123230014580699981258682948920319230087935774766174613266269448561585283502881948502041698164836719142863067159349776939658138820473401667574812298684633183880181263405821506553657264730845222237058158534407761478671928074972223443015373379647733882127808986732847193267485234106658302922432033337374238362459568235407693014804876160602825150688794049411180049426673728864555541079157978481429900144873633093383637173360331853794332745228876254884008697928724371760592595202604166317950458233126846287060028034394567554973818809746411065216407452488909827732517228374812947534343514589821848894932678904103149885278688282854178530596566753180833415333366236257476561000533424005121773933242118573673255360061429800083007556531403247297599046555535233107948057216897483118844976441859420729834330474977756797537856849134211362530508397538998163045264445836366365121174609047297019740494636553857170263818121276174895498571830949597793182697961836130392362890698498962494462650436008315505132090965479440798319506224957462389777121329363612918498910122340593159822919144071673110944080984253838034892813691380751950194866874516306176654416763127689376444317934613164099609082960993704715751839670049258705160129634123587105316944360057455050376724043899337307341494372311923344214361420122137149698339180829169190251156745887798990966112218843422802405626012856663182410190998087796013094769356076321925044415691880812866476209768980458326496517004289080543277469368752181611765622402069305540431360494733479670859436909975308742734604782365800390923115090636413336770029620644463396405844875432698879473864374552636838527526224075950693035306630731121003901614799218135420409632404794381644539702512875092443380250173750517316630564275558979385036403700251419319071729251045073919866326773063921422731580494446352435938503807853442826739611680074394998880608806049135160328496681855460861185582440478141140949375570901740819369291809861429077078041627378597107896220238854883107595913941495866246390062401207492692985444139086998957423874422654105600510511057189083815836715210529617120240606859423370054285898492764530475041638400094909203212514002996982850428942640590217272190165058489988048102309655966138853695447467879039513483957619461182173689149557582429986711406874086422854457857174119572471323363139696625971398958008600223553046723126971195419997832262625026287238010207105662065506643490091937853956176112920536005839306975780723216423156763315664285307182327419332937109564305875678043224081179369225688349148150440195156089539355561999884657673324498659860872792157038971698915574573532437252927142418224111581987686156235696119841331864008557653074087120897329422592018962548144813925024420154085275648749157972343040342955927722812304403563112620143793560130129284061347698684182300252912264961541183653720291716973148210465625709682592390225174971981993839690024985450064269789122932417043640904206679797732457842779662290467302662514769165085382422377191731851024797473238898826263800699438526276136776038835621257351488404419649397356123929736837452900550447663009657223678790014047034490164760038930071939933180282108260824719785877906420224070667077015819179130309692635524896222375101291086289372561240417668803825962857846236575740623183862893073913131385712260057384862648739774888007413281590100785128623924711073189731542738762884596817119277463211140676831439205358543534903536706140070176268621578878048730225676277696093561555967845051776450034523571043234085408465647120321224116435361459790837264448057464066054964870635771767318033020770372653807696654549281073068704741507916299013154500230324629097517225720829061514722320442313654175647436988288691928245212895581838291201281906867676991155066579368650891499336281930938144352299468474693234022658893580651737032051911907403341657108329830558840267463680832514627510004013419327956075016780481418155529591556859320373576059972276087117941755429142345863293684488726965829731038129464319282819723785973130642174351022112455534740515541135599304737388035468808803476146877732992475865736385278595364700169119400338637731825573343456847656890802687921174861626680757047989482097664137731403928596831323879199243197845365463398814783383446546725262345020762221078166019060884896703251888698026285835474672837807437742974480968186196565134408202210990925212124968058984816155067818011595739154592427729470027333338745901030199976898273186491834285860264244831632381190443984136927818736411022279189963596873754387694032410612839369788163961140598013871407599163386536518478771521692190894203731038822194764777164251543985571978734945864846644842496977052739571501817188118802277101674586486304938162095129322374711917532915026582889171319706444456009825939296840218079163530874044940889903924332595677232379898244495096069219993385194428444934098313786822027985843693348707513042214389917049386087660494551550715334295292379765847920073154976691227620526464852123758233071991369639034991545288262611556141556445924890273567553670413787342626810923924392839289961232815161963562548102463646728433698152748569752874878992265300714001937154408354070585966089232428368994796445460873964244902814042547403921532103402840110792133855457745754800871421860478788048586612831725469568151322078620448633779950664905684978966277867076882297550751322822821039358214967387439114836305403373737637408197443983254340089159040218920081113903673190697901109558350826419215740410801587205878896769975065031668017670138926739033088961815671506435887520148607871413298636306028453759291794322629696419647667151898377449116989270549069607928626182983062270275838010937235534133812197835203384736162054329847943321610198468211850559529034267018660522482678488531268351393466133370190222068915164559986399348635419421227303404759262328771913442002611878148495372565472579490338733019384100309603872900519109146306752247710728896434294107325769689568592189372705112279548717715866857027780712430072978262357434880352098751029966074772851268071846295395039960803550610134424042676614843770508737008362639878047328823136914081464723190659823308604427211259473180970370886751445543358527830930108147073835902815678741767314883436488951958522567547284219588899172502097848591290382255687060107550262994086004284400966011056495094292790801553545055225257640124422528120402233810518889488198399033115675276064237878259012773875787026864482673675506522827162893685449540056571806208600187918915269360221667036903318110859737713295903452591444714422474542795462840308255389364120379416086329051561429502932191041165581012418185067319817931677178446832793457078550793303702359634608687379440917236484565355078704140774463924674122146609310347889154290825892097065702791624359057147981796006019971637264605366933997659699941145439373110209802575332447934621961323281912943042448229849838158428244533154963769283965669255572654545309372288740248954521884936994976377815429258452701833224465195072628362791360600713432959863785116643417945654958727808964398841306906986004986832635010227122077827447019348352588222332502518812648168940071970770844066903479218208515124225507850188129278884044958491342977384140818095584594439384119606495245982669591002876227335936509195028967929289492897046495448257073699269375697891779597022007993556463153503317967780929619772128493968331982533578086290259047462885535759324518035499540985270692126576092727448677057771038204611501308831793771071815140564344575006772255030969871146760148720763907717241926115831053718900224462245361169770586472673917306587795630996563514568932974699190261966742233088351768792517824804619094190727721434089120203630176605275209284170567320021958080779844337313603707612627324321152214708061243552495663755080406789975246400848189171778162336496357383035905618931062072221503285637937078631924054857865860790703622547648268276891345862019275534019890634101948107982491385363111952686442284488798380950871898876242341080652269786524555170469895710964084969535704109625329539608532024869625988687681703690419156252088409072066615582284668192556881905048643641163242554436305852790649606652344966773076538708101987484083075338516116549911831797627722179101672834389589741430344315336259693730691710930814891548111874903493309348925433439061593323148903349061695087330783440125100387218814057724648182117802312634487560765523157325535212589683981311713078435804633112028883767920628597315948896447312117090358540901180018833240974449204665642751003354601271428047963785016596679920348995831031505458257397395882275339089972472434442402835981626943157188922871897288480372655450336075562034393964973945339933030866670669539452740762995381908683172159293907304313518948722270654942832627937881729905421896845506037023587228215160019810308872397363061977232534487927523733834854981837586826104160293289400156470253159010654552573922085591175264620905472963687840309497883422943592508691764027691116026768895539939580266671468757191950457414232501938251243687947629423740007851484115303577498922563931579432364833929350134899094446904236345693257152274375883007187753949488093148002963118010551762544097171954232756069426668024102448931591288226827012252596979275875983325225477338687883160867899761877019997535833158096049032802658818673312034530883725674812767986534206388095957383954141515419209858458930113630648038916893528634275010149259222948070541448756660829041630567523944350341792486055740007702648196872690911574891237573445190327582577508602267792816192718363352959362417889091988313530822348974314361725061946436499919964581463523222073028959833461085877173823021795301198247326000394322815413067207254016232630553573019507052413264849442851268132810275887142620432791654034740887309388454209133908409095370683652115624281729498229179620781315562197558596884255411448047689179209700066386362463872138784956084097366183477816703286229761380840185509128064408113595407443758515245739803062949817983259040890993795693289931449192770270574880946465739978309424019416396663217309149675259020268952797813442939411383173342629673611796728649728791168066126504946286379169885243654427672874372872014823675639319201995221628023876841934850171414268137000931959035820712630440394977248737081131444337032915300134317248515838580522725237861758190313778197983657576781659276915102493719615627746640205452175040735250761931205493878809175483074185059747585799157108653057446853252560699262099652606163837949641778959435526491942632467022991082968740436614346203662421870168991905524462121318709046537251048549345485496819904184273993824201771981039545001978219300574373574873329746299197094415978409496910787423923686610219107543212382509416470088208359038672715315823084799672843824660018510752580016431556412424563976156099729639309316900932566979103650908025520220649592246227051029430383276216671527277419381175683454178302715857103323394038301251049797935376287918603370731138447450738399132175001387839332861660627713579747089743223826140258183655248984482304223515734472156179873857004997838535289886431329520305384012129133851857563328788824126531259989916260871550987550446991056302974771828408390386372450634408179192374708840719784787072572237219773268174547867037557785468059835230866606894435659052569258552044133847314779442940016152051245398931714324521784739008777760500116009288325434515843102289659043827925825270723740886535564748857242615104491502130413310835863149843294880051252480722591088063576464577116369714740153545026995300681582052726220751642343730659736967476969340845743226710287935321923082509354024771299918165904386672190754103182355104526330746261795569450239659449062114178239802632388902245991038029397065305849847795765006332435298051101388363186824126866519295624249624342224204942333704247107159165977149435844347156583087838492382962304029827661153423571197422163053552887449356871085040565591767427287893823447346514800540638771262282338122845892310627263954936458138353310309060373445596517431944089723477334706231821948161802708200770882126070154181618940726172950635024879748763473931174874832338437643731373706730553322181943616471573014415519004465735299409738886502288880027982710086176421996373820460211914801989673031845583329171793850104001882245251170373330525633612457365719755795833665592886282352520552069375336539634433838636390275664582579759288913052036107174816373735066488651513716648326747419333205700308037381204832292641045407776546356988133333454396572300591468571083972942269240957520626746511867290262094527085438999434380884587203572220115893921482139003649535707853737455501294218522412839359051465745651579799262211588092278314149823503560745086302329896294815398791589878359995608090570127137261125345925965904925983896109719121978542452562747136735377742003954518925171128800778545968519197689756605588853269712307912961288263575464429879490127507818555479168582841278011765212854797693179550412774452164758658746435800052491474794962866594391195684408150562079369549102175674204621666075701169089337338835783791202406656680303573856182215833206672703582016599329654312404752633097434475278333306422865728064423406489116918496609226602834735600358767478940957406226269135645024734104601973722522218852480609007797032767626010466321475508091280391852058130192524257165019500386697913518858794518138750515777643512308456798665151921582981827123023297545866702881864841656665385327021880984562712086921504164271355668772255193979027752591802093099165214804436834669841267119764524929380632515450175918551557809392304016698561486075737893013512343022769535084129739262121792465862685692321104741819976197415491799765338881194774280620858462238847091892441921532928822583852903613166846397889611902378857702621786818141866526248880704698707892060506036709380395425706479798365331882423799424305663636685596722540581503040815563079181371312388903609655288365665840881422104181939606538564064871650374178885192510239541393000817887768544112000452689990693198284332740238073953799617159532732902711465042327442828886013613179546463231250828014837092323161847411499043703589988631497556524186464668528731507447915153127307014935910176729633628129743047984012495603549131493023101033171842729020299235729054206254185254385327728042690305011809116672423876800895844687740815861107143625291724194733998940935208105386672237532943595027799023274103615108775059373049660566119531119542015026536092136283560806629801357913186754552282803459681778827662420958418015683355890582988306412770305939929398982120371392536835664026729031399260338443263450129976039620903100308184167738193980412789655229010063599178961349400242455590444310385410213082628854122451161828667471725922789425896419592063867038428637118546622013767039117640618104829373342210701890190514585319488836643830690486609932290140438364884727693587211257397704011533909052264185517744535278019426510441966961232498080515747922624761927615251559660861982313535386373611426559991674348420616572877303867569962780104959779748325196433813456922828795665572413994826565678004915839056254567491475492747385287522014070454045024285221611307733491413998027146820405783422773169270184540094446091566344756218343674663421757068438664467874355105070544220376948729969333507721934571525780573492280388433579778390437189399579867687203479178383429679242676038163507327948421560662059689266952129314627278369655485350597537857158308387228766322756284691825960762435684223452229596982043120702758297390222107006386450166338414566947671849970639502210374177293484433117225241608191064782696886493789166597606681916994142065282621917936398566143045008513647665142770633517787507227206022653785848530040881149831483630545910182904115506732262927274831067992629801242078504927931734082373479429990854180691656430365460117603515301749606127552517882847636134022754824904880586642024991481670015416133202815387728269258545897286967067151064288289767146542435333671334669149245817014286770924029010545495155207016404240091881715693727712109000360593192805019820921323142650891018660814109272972543063723545542206083060328161337997782927269381024893960710798234649891280623076812618504495398245287916977451545551865834140449500985716066020133503338306660228559034196816412396003345409583343842154114241513805335002084076346535739163652433639767638798189388943548963572199549780745599971689921867431260712955858750853963716993445779535366905256285459575015818114194495392470394559914893294195454411838202739053774386395670103193191272275428382925602376352536810644843108637550243794138297215211442611004956286907868805402836149804710804546221641424521367550802352379736186639055645215943864069957720526271768398651895912602729878714850753170916707366825883983574676754880543071147813693361487300937879872368862475985826884682652276491815012461188909212386319772502438283448569994497032818958569237444782276747080566819141325466437110438338168164388008365839073331586661718335664218706744256746064033863979644135378856763607660067989386890744376946666476452441765691026219476626309689658665941838259906043904345516701698675258176826734319692332215817297167401061012978438050629730157676873383627481259523431449107445565307521813395377317086885235990243008224261839981689191133523843857151506808399513889852946748066007421809484063576839638681133444088095522420108279638818350992962889780203695225283411497115042278169096037179379023291348157503052148220424432744160612647286203152788583258745004981960807170472727559968007340295583192858299870734982109480476312175737551735321300442577901899715833924808037948372232957783800617400506329481609767320852589534640127867072369695538583387890255388810549629044034187314833394617786659877506558556167973719065444063314450897654502672563379925071022702373101903475418351965203482429153129647175991728748166784480698337452347070859157246728051838122436482365074787178413966824071290511256559709987082993353521563882652109160279756687945679578248571883324112421839997119306292543502601888376525932326145910811100660575980488769431307865298326054986178130520633532502967979771384175104643451771691274936080945853036400247127008981570377188497483953769587999056814676039480147786951182692514741493863193771060359197215013789356455177761414250753027806721019930853468502880126567910556554656071185964603896185836958694695137626008879492192826016507712449607389213053926687080105586804394049944402359377789377414931594614957266416827091147479688320887902828306884252670675872260419333398936679004045376467973073630623058299785164720622364202338786250562931611930721049061926067735225141626404426525886619354189593440680342267148920239850996217599813364621866316823820055728846418068576381889370222164289461284076482492321896886235895548315636717183764039539623952790504469413496786820126235862978487019339509340951024607514541480265566237750561381732191012633762621206574772913347066934895824806940553710143607491918209843913415174906212951284813312357824255165201263030683461339355949643531393233868557383512726068637157957989077151257145579138751607978896584193079260237088349607646026513814500769976647940874195247832741205710846297586090865192530344833597712062895631661842404762428175202151788857760319354434806249074520291655413649184115644784910076982771210066925682475157234829927162520593634869909933579842594490490171710023432631334478110272031267615476273056050894183129255189394178442180950215438039637901800559301896587435547794489722445220309909344713895088944209515462395579594195251092426097932754380297623955694883113329060917035049556351949149394021726522748133757531326325629318271980827555717209227287001634351156207576231467093002877646712728067218094838236321828043153824418773573051449387405628869570651841801670418190795036779862719282685166809658562531428347520518626817175646185779202906354210500293097454829177364217373772915130147276151584356834496549889869642024192016268451418766086813859167518558085734807784804155146632141081923585833902154836078665601526694490342386921844664652259373367442411960396631120175805161674248175371961042940237712270805102449345741534606522578479570054488241758605545610977770199623661233387157792187692780436334465531701741214346734112162471384334359467458824961279112518690419821201845455283887794519545279598437083288241240179698079671439470267516055019691158693138629361350749723208427746502548870295666537273747206730329163823876114590567791813240244435678286692444332347517402726399505934376701786669167841388919166699152049984293172622507082223276811767644699597435340253724364586512124804632740066844370733244957541957290515521831789365912072469588313156870477316370757924032050120928348765033084208729065029285110637590037181945452498588014256562762856571352337589604046636827429199810282021090124130434510049871319347766819260081009248598876797444425817089416259784206338320515432937894949112301803057584118378465070736802415712553076285233250876323895276931575238099903480926352412718499753301033190818615900470492376257433774371954002286254617589704780745237933993019019595094964226957811569772086604568162161283041827379297568986880959624985872441088316879770370467092452057795630327537770917662410155682120935437509029490418825857556614055718368772316205380641381163557243678610452740562699568781052981058338047670541275773804116967621512475337176573323418508115485070497720656771765336998732072562172028267915677152468818212519145874544607822277835660257605473696757234266414217720294358636741571951811586793106648088474846587257191208701795674026604282746694140574448934539335090629176020258604631738233170873870456917447437369230663919025252163583613976326120074415408162877235158539041596103598061520005435345160009199717835737734144658452352256884121025992458164763040569884187365067687180559110148178507049908620070515627520789838696963128663773356496698469793255072983859659708793102952279835693178157273728909193662010663475228491640624011114533468161350391924925231007410015270667941646918494677932867015139038476530800760719518468046739849527529782187181747709664653175805528358358860493436034107727656340171833551046369613648770153080473664938855856146969375783585695584020141574569957112311521437738070388410723284455028077407266190978293971153165256424369007181407999508990472627100379102139812130866505721401357294669500312459170353284716638715570648241282407051558296716619272196428658281485053276319642205072640894065892218865458190357113971275805935189241851912148108867405571105421110620610650055058882933302554160000266918579972837747617495595468773112385445924080792527361709577951828024584698411733467679849617386964543051872662083732561526859513599104887514249665390134942878710897402956821969329954520207215380989045057800807434497301165629469435198778020931758840371189553903087158487449415694764106660047186462968409113107999117837259062137478113998646684069532388600303337703483987751308538592551403515465418134117012482574102313876876996158254594669819738671732310376395572676869803726267387258827088872214507437048145691577910967208564622495821755998471752148625137551197812949853879805844313285359215873449123613790056642247054955667235388551074273984426822998550738625556005440951512587227833080260874451485924461114351995058793938555117909743386853824086674975166950286823079681208182144449703511522255636253827342859201167387652539135296539606953699819718425102415348220215247338063880599739518446777718436744537202389834653036389872100862633196793804120261440738781254113905393011719203635948427278003623394235776094934282292942451429749965419719667683111004044416648352501005371444464961923815353568678762311986781517586739037533883046693119299405840487353946319553126311879528998045712320099736529700680108039198342784018228846494960885189191858685721409328384431502876683550742685791659558466013872684047190204391775400136196450469000237821054182524154737720844205437789187612000452365242788262268544651639937627806549352740648062494785059353988942863958067959210929241347242579656614887846518977051448465743384026051976421428660364555574272933808492852386462790153072464605542025806208756037327535235841409764941352786483837397863923339962968438454953678965323659035278934636610738170689941676357581567384931434990104121452553596495610656411076863291352645976782409934750958513354598130620020341820993984951990720780951325369414677963903734312685984842549938954440720057102096585896881313378730489001799151463476495742636810376171687120416162287220898468076381071075691432635790188091207572970484669201056143179447341534190891767700548635870457673768182181548212150803722488401033696285745884831682625600000609403292929257349925146854748526601962088268812757873679013377061091422566707714558610213324268186868337534591766926431871888966527199587685133861606622444638414002911543140521053731455663065317459852414329662258795211679113319126350134448104573830104015761526240954809900518799464623508315267312860244600579299979483373308429195336913820183639916466264717789061958618819039865929716573384913776412351435952248343208233397588807086770778091219664886101462850430243324742485598661763379923823817117864999063175498759807189730007422683981236071309153458558895979290869940134785783692125985691696117336462452892300848001472086878590193657564890555294035693901132239767458035007998519472121473439069645321802575258595614538702906808486643301862468381479654021011832261919296254003008204430356838135121561241011805996258199104654460786725730916900119496318080279203486969619853359370115378550536778937259037238234355786238102573933526592845151176419544817598804546677719511451143449433256476655341900383831998613877049786160517418092662870835367278483709569160295999157695128080462841782579171644654904860052552400027839385332148246000560614140344803160174759509613770736983682127058743772192342779363152934581066648686522185883615669119777083333728694032711881349369133374101255943148010830703934383748318261783307525130824949778360600386202934288321622728023024099116176293394682064137850631587377823652911642431839631115770783759186731297286861194871883223946682272148502749148804576480185688533062226759479407754412490196459344189656356509216848391999233166296807378536213545990780369116095714776331705597547919193638387887192631226726554901521628407714148313149202692158660347555596233237515652181773399503986576599512395741899332342814279704044285585614092680768643573808786417562573094160436148176715945214481169943726325099259458829011408008619895371556787041039524331509329925188960002175196768484900627107815889159389245238302043455537414885688916688687864869374168433770101861635566054751839930204532703734277740141744411042857846600493379812663830032509420966791377370060414568911142945044916701379729001371169848843288581454263664401819088109335193375554212828398177072243560683323296447989005014608838725466757479239276003720477031318335539426440392010974677633637131012159410386822465423832634819677116610315034594660567586594089789622466990314845051288937967544345756653582744147919716608343685654895991932808171555946229182477339366948776835543212468131286195409443621821558743155603284529466561091729606478391255741059908474764839165908328579403073126735064096519225517685793371196743479113219964976343973767148722913316774657091318644342026810485993789048086924030199562996082097242057236887493110004062461656316821147211776816018749495981703127184865326062740269312058588455419186744499581757164034025642468207901303045204803046298070890327602154915018829625546322401373038546764845918725437027518411856235878528067843448878637160731219281596022120957808392295839804574729733531565658811539424445422445821755275041484514697018335968852504267117522531273907651816816388783842370844280049467998927928411366652255687106152697073167531680085114658012345881014119455712077135349050708934147239739160228912075425769926460904619012177875871967266648257722500340400432383721898561889638331965892480518081979310767500206085954759279548030432896264253494384214410675385531371366990265353267992190521193036043789496143903656409036752912352302419920389946235579821207708651859421302345696507775931818761447385978149287714245737399206583007488808054794999523299673366255933618094184676867042283483416773884987407571786964538729266757136028377091785234212583289334896186067894856735286013156152397152717953861674964724412280077415146308908899175769684731974432061726143811122736411347193751701954596331047182427716604108719925785967540722563780864424675741916612294677987213683212150187390432446098948988607542379686241916369923174573454343469912043977212468119675604419068354864149286623487693831298439585529898134499792514047545357807233791436006845778445087002376635676077220469167861685819731211271235670500163708645908813378573093267246331557792021313232620296101426900302027832302710792559904679469208211873815255042885079206257201931520880879394452578798964253382462952190873237773247476407971005611734340775463727037918815213165299726757542378773005495006398274452953737774874601855704432180863214382639977443470516960139521318395600464591601274979583992719470212723305252029771980710117788648644067335229273301659122744790711450799199108920659286390644131821832980319519075136071493267171380857004192957770276607051883226423923895181745980923466164837142754925573390706727379037835460020748774553238179391847363070551499621980119108085269125045239047881163249548952327826805807613493952437316018628623530742171983739790656329904357915499454170040767167904443661297822039120022923985742561329093581116793622411650241699513544115833572162144340447964068364020082665894192792050535622818953597623619661193931612497887362997444948950718314577380444129129895196487730806166930576456075879745525936704867508079071662988281865170701992595184719221680271062202608054001097333245504975322511729863470433756534562258951799751686588048636402855238787170937391852073461101688432971366434962403555156555805944157710759272043031078403909778666374458332713222249926983002365315850049922434088093808705025074667960205694081201104405369786450092606021676829340533233815753023073544117624114463356295654895613208534164578748366191095085839337127370076866646963110408932073233455822378025136291629328299255572328127422278925190979192621576550394289467360856103252704238758985419208983197441983013025172204437910743638932246279940676195715336394895178525711775116901781698247278986730946772447998064513808155721617933408280454796316723626966158618059567439262467232675902376373696946485406530552222368751788565151136455949047264147577168151081848595127362907325950893099369449234255779490358724414107000686080991529115843053579288792981887622123907010975480197802410900736596606936047959768085789538528058979789258755532420591078804990456116610227844714922099873033869409018431837764020472502559532964847535267074382185564880946225239456018059939029304887148650566821855479421959178314934722532013134603945511216657559458654608529437657900903741062216665706878480328904673917981074153039028999535066033588820521046620290546261668777443549000758997357408300870901875654173819302614183779561865172088681335493594452580572167407284290198508906519549743825670392553572919881365490974868171657910889737393926567635933679773386585560634693902865242899708937623841925766105021995904426894149926724127814299447313514551071870150921812066328729510980195170060169193300159182802320924536112051264608533001829754114562325972286637688533775787378739980029429413966530295203121122844946603676658139962482530459104608782055250083203798395223647120431533372365473678755654193029569486251210927559017564406659662706929274701258315002656374075063068778398550716970862026534399672819697161897435833228959740853297434743672697443302830518899652288715797179178302086331460004015509978393975882020076099340643724421243193025085585207275867577662194156609541040484481358393252840889238889930386831695231399180224990646925849895760713708097757927828247297458114481857830247392774898879137425552477116229582464873382172166644000378374390897836451889889493927908511524216533922082629831525337376914074108589384825011808770555465877143019780475350155899950399763339955939235669621019514100121549807109777354793404605457338409426741563397846642852690081323472134396478254215473060397406942760809386027369200677517743749318831144393238953375516912986970296793425193358800938002199002537557895777448739179710269489171995648468043285568042622672304299285241855471201969514658341265435566743723357866482230501330046266989415275974240381624268398739623617162544105414215048482140164418206330138630843662677538764765117917807476603074565858630397037830119254351292599761421797265395637905433530863260876180843879673395498454266430482226773911163478076402133915971375690613032790210516204142637975606073553125625267718214258684853922640235490105659396249599529146228281803489319252372916808904873102583913276654088426097742766626141362323295270125179538578754399504427310187068496789961104988916415900455265670505876953548053658177772127833425913787337971259752545090830239410307157879397548541915279631009140896946790092802230405485853222402808825272214665027098392052411749271087508942924363339614031325731972696771302403762718033352529589315495761249717386595911186401182221217501402129083127699961011676330296933474602791881751676457546665170751894318462669610109170401720355923699982261869825386055809880567392587000152354238103036619639276315941894285234334955774704704432052788429769683547476569268574635843971851032139982295059512285622625163822039801444029739297446109958078434224775582348394019489190010341966858871063040524785388289760039888177864415829339277965609626060281596998466120960403870411232121782618447889412000795748257492250511992760153583531773625634283197543662630369728184250037180756288186005614762543546000403480696532931566256898598892884491353618254924612262758627263716206535506145756091215211845644730356022800490854058015106118252577666474469003677861464131346919911048712790254537799472073900568322282667680159809426573323071033849113698964025441379663290118888537536633600127250340704195739594105126755939657613134750713914499144950490339093208836981630618623776406618569707251008322620905798473255105755088661972231690241710808928256896904985144696084211130475028907243549503500851851749452488446516925494028824854853672568299826888711625427278338837289786570887699492127794975524572038374642593549530955476888354792834806761139601546963962917835478662706996406758632440332396760801773118235158122887685237029084893629010554303966252083747209171851256690564114584459415370374285086738216864047416531125161754415337516500471113421042147315922205498841376529700990590284979114902934596468100701575286298933734845051885184885196715021108336821510570741291487885003984412347729804517344522431911574380956917095528592429941457658128326074365824295640736026648184782119195103398406151649331199132823136460909489795706394428487488601768761930713123350569067890803468708055796934296984359345476219392989396148192783330934068968867364566175140320386709723348518882671953873513553993133207165192476204253964203009043547299629654893616099799795695337793786042533486131382676022232843473608250262972824365254391475367688107237822473690683536398992295160746735653652046123424805607305122523038248216454388738608761748819441226114498331037967433436143576004340435773270447559178508847205331116247148614437340956014819701083943723905788462133087628952357408901693469876380811758753479304752293521637062198957281508206544095797472819924143574850974925839107347591007412540199234842894810012938091655766941132608450414853977176843222144342641073386901009003635401523000886076310658884480136557091737299908449224304816329512063514063113043129728462155282840664475445140627129656226596707185170051300486777944104922018672849195858236783586555008805543086577127193892104836713055201522087948930222090320689882465921120202273971799966535924191248176032616347035596329519339786419207536749943528995710958586424067655055451400157888432698842593871938201963500810900901102122725653434634355876849538646368899845984172245073432145169253164932732759934111919670771493809946022307426710985896892534102668101857451020061440835517787247012562418098167643081825362570612637505331996780881456337278666568796661388876353631143853033986574962124241831950019496346589902377510150063010462796383666096933306587417119024349157565374094411440638662093290228148780562625229156965254293316359693237179239287133180383824162869838060083863623066789712555542884064780519452325403262216813165281225869347934815696001810788027481350982537221023599356956623296661531440261358312635367772709167599851183579018014721198233464590706406461306331396145320209423623971179851855758648951001035009982733349201239161109510314940689120341004423997336904830408158071633672475877122545935397070741503463371964278203052373936797998435245697680492010374961701073591675609651750713096980463395645904473312205786963990884816606674683541009652921847088339006342914605204512586051451586946129901028202687348060581532495705606205626422001011425917975379217231295821610352353905442748694901085326812694502612049958208196705645724781812814089263422758507075484364861661570757517784074241674498298030688450625000002854947644014071776184846965493168900968560738902618353121915087768961888664559715424654518616774309532165983661821179197857703406984667096963959557296176840088038564664717813656358776633528103290965423704877001472137761398650210893157588075563815872780385393536310053711554226631289228525392204139515984882395832272706548967483959378612251378266325673551785213485837836101149905062259500116901246764986362387054034538441153484594745319928147779895883921577129957743807830020648847302851099143500292114572714177968962037162800692972473044622570911754668119283862400990495181424639237325586247680630854624962873134736685890101967287507647751469814547815918422509205794186076315082883988188924214727764804684014110146259027577474165008220311039739922303311881731237493457555109234750671185729924171658275627563890781642005859741960534362344292720538954563082078807976566553264099787598277494890014977369188472979384037713327223432643984815623688046361285717436341405851800400269195562197454624386499381562198848074329642086686195211954376986517662391247755809768630260444862309379964408185957217635803897120821270181843589682530700688595044233106731030670716230625120650637944916605454242739235661165703596294114538162366286453954190192211893461598126740183550049082630324559024790429020627729468259687813960216687966033796685474788026676050384149215781704406325733840604432413713568890492397532591817361536179574502835606707323228261725720228155219009197520563418914450615216516341286152216845422588766398453525062212881765350694712492531287754168646579066465165772396237067454060184692685188836307017633766823231398498354352777001167903397818342966939891277885011648952630170542150281238407180965760824834975074680564871550728553209016223401461308466862009093440619595032557836745518238237667962730814009457394361599458942865607733366357776910109345612095647538551455492652401020272756404511641747685122971646564217044333727706603521685299374154324018232686602906456233045631696897343864710866128319051304432791564433446403360103479126877645121231982713211431205239437331605594287355048829711796261182737194035764675905988441915241216174479214622457997546457147707086424050219638003679227351830316531982468140174325725381842871387882349163312066225762625022039554002811114018165057105238469811200711456873338860480747127640423528788570995056731161923472314722601754663625991816824744926320997439583004819245727262510122707307045175194985618996218258120770850282702252539614499659282096279266347396815273102755531997566322865063180421462420491718027939321012241354102119282983702279570093667300432746984877086869281581595839733354216629456549026641045116873585346121384056820770918379317077358312650266671798993004224716194697029067066768717180775672910307499497550560531009384487683047063039157383762749502635380296847660583681741409067359627115904405779654108065452645331142671658003068728290493938660386492807118175519374932642565868519605158325395294772492909511997033150065090760880923037871493449702853239513202821312460232138485436481138747983158306371734917461393717826300146397967616880719324540581298892401322492359429301199492026578827209980459639817443280739157124573484013171805898417547898824522877745380600764744157679277318390659923727128068483033272917799526101276364144125620658558528182825210839660528893542515493328354660677175627032994167810993106851679996897079353086498686428199810621976607546245081937159706673112648084709910834335067847017689439196734724823748117837022144801377159792549475631369117933155288394020735240291719890224956032172568927287062472852956386582687205915121446581325308762571782326336764560198372085347924603772615096274557090294625060778638181158474475597144824250600277083167671025468314834021895568158540193739771975890385087221068027895830676384270095391998140290166403389340619440481144331722788794277782992751683067022821699057289881707137354226640182166824186756122494395515834959985359669574341862406991833758557305852538431863810616026992835010353417983583207553374631659360719185079515392909546659082059541606757990425794546197013460280280457946498601503844141925301552822211821498788924178585354637960154901315696829405485068210723533929588746927132007545315802604914216321612812064698770738452980066829193952094945365675656423346785062383167645476077341160942974482043716195353828087996326109018990306614798908305758463438167435487694771069468422100044111237389768526846057915433506544187859292292663681508551080416237344828989892198216521902827785360151682309333895627073904060109540396443730401216011108483147412802827883474782548027188173090446805097311509729517374898888362515115654936307027396929568186645278531101631101283407662591710605552533828653262458446190584181762893340750939683675168150468872797101801959430781244860770772612831026147915413809362063139006998868152324828143236286185063697411413728178685350538124869180514400216941693035970060472218293461082630728410087903351050573154383626399247651098604995205070501274785283161707336857695652262971568087855296611692492083224963978017818075987815053122020780646184944450794846753111706157483071805126935682189149023425674776690646173821516384264725687240926389892356908844651088431176298779901377780872738312901320517937602862344135012310630028602416980344418994343451693746963039971855204532482187198981839637718308531662743076270010564611459844189870608541052655629255195021624264896596357676922564171529310034836094287404733712457082901718988304041764835247230335833556857253995402520476095770369870465877198607954738372812808666178843702775008953455957497310341536726106965058621630081059420812757600388332849143095653836591915498327837589728688678763484950003843339766128662652914378194020637257273622226119060301235253938882422055478053665483783577150058324976136568608838790931615423378794161899298277864819248702996384069008081703303949025821369575177883782266474310479551200895128944308939429304245403966567062043988591175965331476334940028261312239513167555476581347248062946834211036921732996624633087322650821613320375848240956009903134539409322324241580909972264807934992626644539722819506504038863286297283007229800876396051036640992153379751447219644735777788996742829894178286224401401127870121914175014240830658282973610197534323766037278865936857022556046576375992787002173195209442703931076265643122673124451748741585455308243022028751094819442894995276878277927309543051497541151144444483073005657430174048542758182315767962884937405413412737156369157221474872644729703060358070344711898068137172928461492240979082811411283519882613960183083399374838788005372218081990674802096685503289777793998651069236952392408985507176822342512813218480652439023976032378408354517580785046923605323807487262133298128603962198602508663836985280454027082421289436758561554503578795617554110156393464561559993262805720876117671393000388459246468013780437118808213212116381791320602384785755087547656688791921771028189210679999651259544809560488150558141065646195114749571993833469956860828837167601848340439186021555579550435748380491170861782557677774225465075112392647395377991237978028532833592576451013872980373991931204235089062772603035883593477420449985747668375729577839427507294227556666387885245682320093407327739380856405220323607501769144312034114585801549639168528340668938275386881373900939053341756778280118506601041331843013437810806179315032142245640404339910614140367081940928800189763832204106142161161286332675153600871747530761144583544304386751972191869319603113137352453372620700239867321196998609219106748642604643714375357335883652362648883764722890564598612538967151064414411774188069408584138477880969301783581636038393352407012278466673367675302760051197582645725851352085959999519212211604762319306293088784643007341949842263639459510596119741388436185305539087618165211960682754369142646502593793231318376026085470227384726188464281734688223094203590817082596204789915941917479584971270744290719083266119082568571337134429470781855409291166227247422625848840848605108615880657843342047785464839471392211555285541847447654739198212864577887887844619314990615551481663732289659243011068709168690763606877617086866953245494933306550476117096579015140357207057464148938447654985239709515744287879375113319746331439626839870682101401803520767688518925846804160989337546802789005249924327064527841482014237352386535521359969909144917764134631877528839863931324542794566985576220190044402005647650361852739350172123916238713400211770726419390211936413702550131522446408288353116639597936643694989111302197424312073837420590548057610605032844056875513730820332314999015967416091125885006804498821473212483663927277745088411604684737619418839814908017322060680144433866426009502540710301549584293307813989887092783198536234514835131080014762380062974696737164196306758261955461807767862295352627365480068353744690274628096125582845205305875568429465028128698060464156227177330055924533955794068655039417460433520041555399999836993056181971362571453574364352583470000166158115878716644882641032461180157797965549142891600600995125649205671896628871766936376682243023673288871582573401379996280311681171284034769579214369979835361828403011926519420207475314781983853900793203629432346949813113155240321160250234065425236283043848318445473256812136123741076167989225032884131316513726188613393990010839712531255119446584512638979545697111653127110458275881428162195700389994639729368076550452682110266897254680842074988539777849949972578382273015578666623787878041476150527926359652741435645714175424970878450899175585528438248646451903121274762108314948173935959238790182592312738460485459809978348187667699645184136114818243857286166462792803149650029684093788082557827610689000548793178558961880619921120836187724924990578381168638286246548554686920483658182389464684128525440308474084821587268868826818482159318523181101153828173255377077510760518316319885239451987275935779959352696985959072785051873211421224307915816472997083121381855220702028129988687159679717029557903653018009940778408209683304241402521228764970354197421856307760814148764264829817529497288979992087199960026123485174700083017695408943184459310785226856181239059743575892316925737443591483527114944967072187722868192360173370451444445575042271607433692980835059760322978448474213312330514501717265236302778955116540411975402491612371777269630978306663393406661146676428862352558431872916753283449186658666411729443575521040194247415493449708368931304956828304534348274674241923569580392013763801155450376679460455269290868457364522194458733335025902833405075861012260570432224414561309257586992401998370482298134075967322741094899112127431327790515357281315273172876228745635993912188682805582410547677756275169889433615583071624768498728423166236119655006593471832239197864455300218476574350951502380719815946095889421584355841359464144925776301425063484059509581933203339480756184637118782205297305818811412583927122405287391609146560028621551437522874174071669704646194697602182662887149208575841562599445326505446967046989640797986707874376517867338473139010422611156616300618374777404666405005432194490671516813973726595153690148066714558915235494723214319378233462035784522559705506426440633300959846224950676347746611980128662711270260617074148315685521930332115264719588332660421028462614126755886349086064887868847911632367142104385375392468150082145860680932683136920543975209906110238733595495704871478288951757217745621302225894668318004203541055494656725805530747255176265562738173868451262216570860707900629817774313812673427631637593802981229031994366936003212763062063285849722183922352831343182867438349034784893342444838328840099976555792978090664799050811180892222568234608732579022326519194417995314707978368320405300710868971705258208804475928543097171444223378232344455355765745914319065047095093274814747937217296982151968040048868790057890260326941656412195059973711047899946174590683990555372078101167139797413707452800166117522628567139889494642891708950272288797251596070495232596293376310915448484514062747376766884815228123582493802125763814971768934615047239324760356628079450165273931253283892856047839164786718137044390568428334737153157305866927582673013340482811369840873138625121686807527004698776296002440672250045836781609451548411529114549143143175391017809836468664126265031351215505010963489397317676164980468618011147633088261872067510381773807063970863074133289143501713289859069250421203600505056961238206945955515016674510620510367839993740826484055646253394276835341088752104710049844787418947225853670396717438489433085743928512071319541817673287948912645423579178432906553660347852378440455233589398982152668478682633839057768774404278218549498968118693366023689652128901323550208880906721011827693723522186415001706370360768762116163553987153731323355341005482021782588946394265561107464131681357288691502711011035468580244330186967995433402517743241746821239345416308780810126873722590283117976584622876228061589925254783083687179779434297182237364285906780063467246940455782082025568172544279359732818414567736310436845743410330674871177679335174409561709998751059111021677407524134291283540669820990983292266813273573006305864708716463391075449078365689627586154067133418866761306375806528311694238493261785329160938467888768121264260867316717412456052769245502246248913410412649267108495879347483371961600120911659041012854656880889022897483342724466234577072774425145690336711576934856837147864061899036632925778233026109713183460665750628236078080944059764424632756679003180488162773489584981119746205758775988263947376163455177195510787653383113965004002187530576466938919365434732304250744407746787075708560919201964720546338579954178393601925399749058857663815120227944081939854117526867844229329178578438106770035167744571516781864644449413032001426778981663933081508055440090998970140163172137096371747469581211591018155102436049794390984068198193875644793778113381203118321646366239325509081527621843513346834115390842362113875539482507822142128939894984884927023602702671698371004193195188021239415397221513120987500928559474042720766651589326484290474795521999382204075300707471246879233243411847350427062923199173496943754600503068362050813803815041234196290057422434963589982007381647999729250742486794908872794185744905101527452146713429114723623781122527882392851533709958191424783741161340035911842531552435247507609822954085214864819080839672797639323318155364848252636505718996563380171191663536828626198403631871179809304765420303286037228282257943070055067898052107100523202024210679812370312227089230344413094908187804274417549361381021421766211628119100551133857571604046392898315696792028467285497261176942508311775281117727317655422052077151935823930578778211916630834662876170645236192715551956449957044529144188581434119994699124855211641428541940837248913832056393203421197706134062232923594079867547636042354352291941372534156142912067843719179088860243865503250850939853869461792799864615672762144297630576251853769993611549873518454238307523327818196082575245649523094720851574818781983088850818648125942938437708989614615480543727930914482752130445119135124164012506188366620924973498061518117497791252811720593474060328400616623456749602777279441228987935514200442833597807495090615811656452534361191125954993435328494784692581271782704694836690831635680986757708653688502756706791434374600881582978849883360121752446838870319949241408736524650224826092199276133368281718683304155584246691593026735217263972335570183297185078385617707441672227578910005457824758466502930853776670153292338931797748898234781310737949711554183407635691783935286574896750067310955315798660183639315262768252085218466081530243510608023483673799112034489873135063805063660064598600419330891726567611862181488398118425947503154256021144473476593737081143892916952143443058126472963262931705107559748039303624792574494552057930064529724627427975505428932799516060124493641480008020320175090174989357768092578925957624054870886334021552293344302271704997985003963628682453647097479888512601460760872118438131545914299608184069404315106133503199060179957117161846613658547385692535236478141333836389168934936730476064405076943877335113908856540376746649362752297202091611065512151587155041359438996976254671944370095938002764556677353669228523953858001024679227594884877165403966970536320299114190460777419733594985504424894321720490636979484566677320222616125833812626094762678512326933411842652970426802714269149540604119651492739138491513755644464432462456284858515619890771537542170402637583215991518414314482839765984817132375101136739029123696014763181495128742969996517629407485363896079366858352579834747856897324985339918154823875185613718919951677042299002544712352286380517561474750661362397890000917789504047598635017086237866672844633190294876769623380425896202332824382921426108210537737126302636482981395829677620625029894302191822053881620175094330551246318901374671526805358857697874194535771347647546784890564181673802837571758699661883648830861970349387900861774587712323013072494497201593079601031305794442919042599006638231686764852916843258145268951479057008251669058625961406308983898437120661180570460540651611645807443265742047506509487983639598782703522499969325566143001608613559171797328791160397431053750532058525149409490672448304962677056441391393717559247625770209701962590555804341619580465482068797249966737689944589241483510142756780432239854014885581715292502675827971363638092677869933872540554425246665936098434537780955504011543901988788670669343672713297576374504129735080139037461721148779719648944917559307366958008492591787687371515302425483259201656057673142185859461959262338366394055966246712225171246037771728484423983528217734540371715864176895419976719136823919790856088517356840816523816634067534889986297807726150748761575846686233334797078551673377916160699112223265872955421756910706059047658514430068576872432642474616185814958243778483427991537373426939593391434058488989918757482595223633103563980530909292130719468015832771728797806467653736048658244717713376594144238339867406292248768967110680497863658476612697070579489051993136156065052887636559656646764164007968518810413364794184888191168631377517208772857978180045519495339140581114052053861789118822237881494565240836991739982571358374071971641241143520249676801949870575643332469912108947624470331637342269949606930918451801310048892137492914705256660238116287090341212878926407178442955530659546807061967207410718842181864443920328197858483714375985175138806532253133912159348209946849013052929167474295609013221046323596012367213280128129258159840515162949536083935761953987130664551582412054145040156149440200279346996141543217587015158688660208882863422042703716921281649597284221349736732623590050560204740839686760792286357695442741004606920696215286916442442177114355632030665731969083265995153188467326214395070147257131466612092261149090087181768530444669080245207061431647292521683580231737262398052119847485943659172808762140094212806319462119874781700523891640885242010323001915674880028088489816143626271176909715709703588124720738863101618006100593714843116827445175858951197044402645836002923489365022283946444296158260355371293524448450981054929860476731742684299789267743993411432014057426135205817737572873405681859256738306676553890255425838740440457604248721123627817704697741820682896153958965920048055915088242591267537068029554322618641452099749350013945550070360938313855987205753321291128674793408149642009608691010744964192461154344908091854162892321700020629656055147703584614147029047853630508707890958813290502829820228453603973541907365787183476406997211625997724613959494128530853670632548971507592216636794329558954518112232503139024215790704023646896591850353023266891616757402831096922794382113988000840030210949715001218817302591179014507430050607517349811452429371985868053389501426957255231712194712350492380578429859809825840084222135971127031727608372970233894751822220550084834789082253974902177879526129913054022545256847964114338336327996569651923205189447841523589517005337915139024893816863371146368653366055471234073222415077548366613168908533073208535888061637980040824216002093108879716835658686113614817755968776204450642194660561571120145465260739017542136654662098520698583474061757547081512607860666051620039009897795260837907908426636892058500517210030003208103928042008236364264584083588410883609825576732582153760914256607298618257028944319659298912320908836204189234893038813549839628500764169097064933960561036817482744612941413504460745348845074083013627340725289022242401647193590068525246050002655668209296224593410294295133359386552736284476237981887060820410176850333092491042463074125734122363405822525505270849384315928759630708589516194090055708792910837677536412696684785066786062330158500576785733732751806594126328033766955039062508171010803034613978731143195336970291906439243715573488707965880915273133386403860575735146606656462366762308766427781158772329174875895146755951460325739825000565604523178558816072930550187729461253857961039735017872236978336887653654971575118699200372659318652676571483144679668129079870900766496183817341102621696893990316133916563321860636099496354578379561201867393254397550330002708547639842892439753289764641796813689056637176427154907889266981447550810813001675041594539832608721478921681259592822073316913576109384196545645662184912529646841523767095571355361683519929793559576894693958272180963128785630908982390823803088230830798818062942368815737555403526044048379493262443050311369691400095753408130377206483519744149233805441826596875803773538501976169064977756937325982235320465056252174257467099004352936273196644344866621078711718711823709734639887378933993342077585482697545746258944405227640449048245467838256162738604445862020478788279589032908895059184345052686703763660994625990880780939493342705970083225142209329739014745784183849213179586903995623517333892942877475341322019061844415652292166234602696680317308147873065249700908704818541921191303456216773679778365320400849882352526270781203261960977624538455755480704551044530475613157666239423826945428936461602704743054779520052573333370105773238105139057094679003292518668850126613341596551366819932781437281236513220716250689132629944879603557256296998899277956384879654599565880617499186069359650318247120801507613744067328309351045420121283848897829542819079842506307660465825277894091868850191392809332096109753932526021114412451069332643517560242104449346631691587712567019215117582481836890691145385357363644089948383583474425994767168209929915758005442845651522712142689409573010986805781213442256919540657790425794620196133133135348586232859932384402138159920678820344480973277462571418047882452110424128531654579322870213357683230301279348502231544977161562601558131404319784992674878948524238819662974646598385221742814586237106691403285290427657998549393604977310812344359577313572467086233171912069179869502916852449045350860773553493900609592677490311134268857323964527709668889730101619711530007263984782635889063008135007381391928263504193361254891655035538736949020089108040209065365862269303834992434545939410929561521494923367741309797132700663942131997488107570987107163869977320722644629407868627894886532253348426852307070492475458582014738441069553018903318953818125402015552551403089242342061756226767381996562539287666976171884593967355268206220665366616738130934123690350011522945144456568551055326100788542657869905600702309468101409516157922330881612501958252515613326951110153675183778647825425161853645594147876746492848764960598533272341723674762119934877035276019268373644680876654103367444288484442572130491900266525588443940550768521827318728298334250950406052752004378298935586370472827812372492436958144417907565433613404502163984911025333281921196420057505858673222821422760154352254298095004974300742846244267817631808643600314989371529741847909291188943941062941659931308642645060711182796097642037441255083510197218932751856273525387342874158020463988579991109002432971142593294079997685155983436777941729378201812594852908178627211598854408782940148247772558516372381559907329550553304816663670655368027846810352014156609392140376449132648017968641178957293875697919179061444053482080383406414862557036924138127140449495562240076727500249882126026663035951545258535091668764367891714466779646870094840348702912980260662166701337671014350143291870440837810483684518164435077868610542973871317627596292591948715523879457420921022096503646925429466072832424254660671694958188349528332404145743334505934885878431019050671209248341528915480728365537511959033648843467114184080942040655420495742861407819150866144977681171580102288153044178462298114139881734466729028135528583911633422092401231268403575304258026191908233635429111225193389615561898040769933118206227572289169162957159032634387380410126816817807437891018956237064366689241464332487646096681456346559890211733697553214906940037831248937992435444775014660325896176466410827661674912055866346556616035286679580621703754317973824863102725033956930269038928213110912921695658818678901990210860375486523233296941876227756352297249069936723444551928866236003016018349758754996808112676947767821580724934172682774701391413607917879423661165183936662201614491039072478110971487276637963191130620675051641650176234421776663283465265982608573944067398013612349897908240828426879320232082235166288124164665239432773652422543575511492259178157674237250176319945527931660993738243074452359924945060545945170786376906731934156633028295132359154073478469561926860870084723841220146885725453916531676256692990534050836559093170460186383462664786916332093345147472751646741345949608439791410542265561112704946672983028128608775161279025463826942059985919927150640691604738801030297140259708606807790710433889429570282480340126691424674009632633833132497912594259252138276983134252329952207439353269160379693287108118637813370313995526915223667037346843912666777025417380415561121651929221663824497956834996812607690671498922577199811071661011887473699598224795500806199535653285663217564636742127199884454331489579347522737854830213238643605100034146392789229669346520240627481118463985426271422832400910649097550756280023631873580643658928382719440216807729369738050079391384397569416837176479666606655633686330440453872180230020575481839901993372491273095463091327170333922316346773858717214607797535600138572906201495500729765723477895059105504116056172805018324135856045034601609637868797636627854573342833424262355341833625210763946060817564488922188553508241217249532473684866667549017537513946273304499991434840685468532787431700373773860218272813995270518434338435038225335635272408844296078866157602132784282544011727921023135761681013635870529216323910348350939902911480297548721235877004210128962083238603134549565554520120696748527684774864843582366810693327948185129030086189618808896719242591346711736632433877787199029085689694856481324370492036652550799026282502212524912443883774433755418666162331936045313907193404348027331497726374398791155900749216586932932240492882855866051584246528462272601943042401747584366648707962583733548615938141211542742272221176771206739236381532915336333035747807651812906206218610100593984751971971001069690926931844735016777204239353051641414453340957610733237763662445646592406758320947454317261149900831355364995097571846418937060153318987272276059975930406735536354878449636857353542693627632563513832355826116199014310630850471997715385395028137622543821416823861932137548138272669415869160361467328030582229576680809059945623262740760159515153811919534971625150224954148765456390056224966254099438073022215980138715086377321909605126443276583148120445797366815052080156002500185255746310060348022266429105832620621009517316283883960897671900437814786270698879333509018925342906157327677538417321608186542097181375792218152213176991613143147365673873540614554353482316458169903511994852539608629514707515470250511762467002837895732596001883580004162074435476504226780792851967070189180636007975378056012631124228806882502395174423762261511602147091729480831382418104528524888806727791011881822157676813947423553644160200000156342597510796031446913508741621460810041496462339856456887942803852301074477511670352630750004700385578827412572268229557014532203131264479655064998242889527301733372074885390838260114648961245287975083485166631479219428509352102244795936067800724674431914413197743396940759693867773629095455210102703721960544133279419858702048985705472042786221290696669957132173595286142418995051494750806595898230261843136600964992468802732797936521560748870015574769158442848506051830961597179506127052413956980305745824393314854741817339315403262381689415070629838622779673245052990231615169654269953140542963133652501056907951691641016354174796118346761812512617698585796787817814319054271833154457416308245294837010167139991255852352992971512451749307577942862346525988421035696461203569915992438429202671846442666901521146460419187605738444767736359985787118893156367855891597243534236434724496337670166533371762051435851044397142526031825158664568228186878782671744036997032297919928395231165088998290344009457406614369224881481858904008541919942635822766276580591876463756982404220141057126675348623986758652426806065771122899483092782053205329916955028973384966796344988362557988016366821457224815105662906860354920673915853207659709971313873749971249428380278415088955998489396331101821699060075304169111813883802633726503277435990177015388217661948349178880874665250751815635668029930911631580743240048539117154233406857768774855722977219501573470073908073405491149757983587109977384408813992304801621859767495191936674390598111620955905690603471621168074840105953167320318074937467712258873718156994886802583468652513160821541723766666523928176229629192721479259869118400115392812584276571142627815137123963288547481204504507316608341176857923229095889884567535651286334324087054370324326738510023651021044427970890509782342826262512555348525030347483365253437315329267528670828181062401510383184842387921596236462217568760129527107398796620006141063012770716605031793464164978513877153272892031148521951526226854253984809087411691648359593643114365877038869803314424587359019489595382026923779048580642647951717630458894310430349986423572830891593677627832494311280094640401771765213447253860168814726642845656901023481229663594866911656399916939189450756620023475951218435740614197032443431718133096342192140316021551306864035485385849016442336209930645870428334075173470551747964011110937449339663093218354703977260083519109828347799959970732060429225649807648956273322858518247499924281032939984866729203139197632419067502007643779036993526879819023179825461596988213212433445260219609994268000934574892695353756384887053904152363772675575867974183368060242737737310008734098241547831704692072807874459668109310761415287209672060919279849186150107901953122804927888570500416459191315558548763192113823597477466283966548104301588332013300029688248847981579312898826360407626712651809032565996872128189288264096015337125346776195648781202548007884410483433300683933080910612368955209681113337754840973971211633757584765591598975686459162059551045734434907056599099541549738786453557673869251608822059610921681068064173254800810048198793110500244829992137805424570954544078335502176783133348813505634418910555175834283640821637107722691975533142553599315571833423927805271995969786633991101331389380298427379837364361730253053614812023940978003305898293768508476226529614263603374973269761328318226955261981220305792134771956544926490477738076754452798988253907459130785970185536935164521013058600663283869209026041644640883872023110682091799707307308324629234911385825225326603095873270334054425894964314160316461325410159763418748090291786656639422536946919303015126593387427703386946932016390256524704295878813566130055609707849067779551581418023697383884471360558747254835004827758403495680561609802786497170799552899626854187804541342435652982424710513248023699555386292518584594519852897084190418938075187740173165891020291879512402642341973416728182251855628558674839754408288633412053399561878108976765627765782790589870268538376454078496461288967212259589531630522486812481865527637122601037282918089285871223650365753325144694634539384766947271873428967650123105259189200768630683519757148946789310567888449414278326573778600040875988328262318225234494794213548860562734786652544696800203650652998788858095231115529411467154122173860252065859164141997005805693673620005271245112847040615685815511651516019865818759802688807202406192563977687170745926996472606945449615940406899592137719522073158051547765646442270715286861912303495817252359496359750626174248933406075376774693011883966301889125264164426656544564676981515827686344425077276426142195547838100406826539132990934574973533429235646238626532529694905449739985739458743016899567550417622283086848284642400169786551865697996827302610210604166083661696621315182316653455417270793358418033762187506579712229950776448094107538140006421271510725715020165689157698601589781776767849571196935705120648459138581689790316531639373849306732994225673198214943126605141182868860706075979989549750130014953380280567129134542356962239328822347288128049842994341633381301091241426667118171411200151114905138938904659533363904419297294633486151311757557045585092855331017912782936321004884481228745480818475222641325979324611172524218508147450187880741402503930692047157319853127122211786523103333929278163073498121323450326359551418462608468598676886072843906960371304506397676473215349782814043681692072589671311126396161779471629423952654594741396394388656783655924971004941707704645662855039477516406366786650436406622097323129076126385649355914182694859827965842384213330532553879381574179233040346638946220131513022795978339735765543129130741044919955397919238098458559631782140443579552289182902045606467614037429265617509028142092488176978272508812518937742460434242789486186018725072581326744209095826437031066924765520159680602013221148042067406251251736217409007928077764578517422469192901478464402124765579874080158543224121202646607820239607448141707362858454044084285932162253500062806196661375259975736354926107215972018993005090623045707268716728009121731009157076061519770391346111890742184625470452349252620359207053733743659970571859361832002489617902384257947700152613743524743515132852691339908132874867026753145329484403530316990837000605088120504863673268992664236830286393492446560883365107005327827745311861267126244430589903004045582499747248900659150512427484518842573651677443064972987653913846204005305437586033032682797073984000324090212109103501769750736145746179549071653481386626336578828754911556683168674929134968774748345915121947046859075640939076094986442300699947600817186726302072042214266384867531946286282270329135941216286634991460812687895071797075224718523796393021707558358787204560105937298152664341712276425993316669828367698148995066170210354403285090430831635239936570481799283250712807408402916266659208055909895383492446733258555734168087590004454161818679817958735268025693361647950550194305797559820282058642891063964599480193078947451122313908458772506776065281623437574296078151644082864194721755798113912603922405934391401649306871665741651358309640981937837433230761885675611781810742330239683105214852873712128935713400387504055329664217195230354676547987463960308660345345562062370505783063585331146617588263153967707054595328699478511130734537474945731289866182444219895853973385560414011897706675682464115771294527209504657959375313928847626134322440139937405088799891217776475595376565376497308842093664752151706361790938351188124767854837988273926950132584502010726723339109599704253620774883884499167085524465053666386568161036391061526799118334518648991893658522622947961106284489704217669764123197662343241720787530541156831720182068374224932123243273649705994728831303819495663320725397170623163772559933069416083950427520369607486891157793425203702267700989365409453485123797906359968615591028532680352682573002922138734925070950346860888988349492105632518431287025940189278903611622423060921050884692179892645547158304916735330315596056834555623731420062572056899055585176352391765148383723697753040128412464939633519959049082863978016977449510085170543221743043156266361946541074880088512456153880255641341653687919366892013468233259768397138788147362222062881808401837692622964418713622174558343084736566447495340248247296536975581301483132338386357409067477464582569499497768500210968722196427160901611466665791953133357862500669022894976619199250570572170038238078901850304001444780853498810834349649384402080195781274659266466482423336261430779296915197575932217058019639954113261839575611417451973167061017863060533160193636679163515323048343555073270304853764416553834664898098180119209431833935237761613859517801064253109866275360318234974993852341858333536582826966960737422368486516685668219361981343366666361178102564754420389438703158196973129086394061537376199507736204317475341608944505005071951304707673804864284484754570175088954539182174713364695762656531914607223387762458254571383477155208585214032218141406737042408918697493815980619605435074929101611358406868012266510349829804728374452579711267788365496040108163900015429404434171486803160770972441343810430715855241681819220238338706319637796185768838794922841216006026708970982909964306607194856662873284546617131603248331598156862413827037827891519631840100095281643633377123749926158083395203129088970786325966812472846732875325153239730630271957431597957401101239061346202094830116734617988427390278805340231290462770239105685310145455136914147782934359504662024903874480406416901552160120422579697456460610441426832536342749032924453314334178946326991487170673873844485284155520854039687457268465635902499192973418190330778709864530527854687482767544306104455693630510670491499911968901116556530131670438252345205748762810924466290145217570050883876788861762076064691423791838660933941204592404600516492673278720836471152182915684152338351537235929988876086211216860549062920223668205407548201654118173958267761800146344450159654818955004807619336055281494160096520733950151806377876235246868072024590762135259571912449645419674199862466115112834506639213854444740189737668179933219229106962048991952067950653786443756553217820626934571422196658830003145627303297540689791699337880639147312824887904594367435146248521290087701793583532369579872696457213349423860950989186201536863768226265851752200597434689228168880941407636252289495287225421012169729142428186108711962596090108221907784117955407604998488854908685733993936129237278794421872132483272718205342151166225748757833572766288645439391920718666774553651813511167319144489376074474155621460219004546314664483484161260566050634934085080653744558683465175621367532372813181207079194454738835114194864776364581875232934644247119106184021586958653658542080686171838180751365136945537430645521225131702526021328951289708690452509568447090617031017486362472404475023550812391848314442785629085148866878144766109730126402786728460062728428042717319416733662115242435025186863079316142564555166051420602860042316082633966646334375944012963512583524931085664911729115811823993108114738942825795074360414193783017847586240166571005130587495083706673049348048761451499829094625434492406386694931622811251500254739884003534610530801902473051307808522084432430868116612561363585770860371258218850077862958023353878238722352464476490438780594092776634884975831081405840191955467691195866800832487113064611246075672823888311031548719118427115656013595956477639635239825646810252925528949196178398836006524958016490806506794333928808556509136196680060285831895180148476758719374028404456998547358271129059068040897551334810225670417490958408563986327507769203918505099288720087073457757544944401341882377165013764900422105247995132866415341258294375788579163502666154874440487159712462659842902453787134414029049108018023520159049211624404214791507094085955217868064968201076326438307474384714021257327970078484683688598243480190987934925469488110817679719963275651007175519805380808849200255104072933791237390518357771835068299222887229113812726111337067015722365751075637162012834539940826399611407590092036148675166093474521989705479186697235231537906423086634398574222995249482056273891808518485721513100875922685324186383679004990461399391409355842371190317654719572045765778469899779969303961904901375693943532477711098505730146426683936530326048823515744356883705547345263588150515321495552834954059585132794143146535591977016163034381585761564853715756706614679380841685378404949325837270959610300078489435313960876548689234347082259321312862144127636524112611158360981995726247614061937752751523988325699814921764390086808907915609291638997250223324048825722783378526255547938659546802872968151654169954809065153112384948118418754032206602881984767525106678343280905250137406284410614194950733578251332740945137348660327202969715461120992254193023463409891651450726358665145279314073404866615188031014647699633564482871230434199560949684872807421562300180444897789209589210577096361877533463474163419585214220435847749797719441181247755822894247395385006267660530300089559218181227028264778958570652911726675654939873181004811127713075728208561454768873510525334002992774816240851090113743478146967319579581595794886265898780084544423866859011313678076427338755289133953885099718000342306416700591718007695281943044040277858589633236706698296625111343468479767200074886501764837584740109028480380798584307526470186304461157489093953749618537425850687019027788081737544779964761750259643944523992305899951081793575147626402245074195144051120953869924393233069035070523442895486131141030617351576026037558769106541986590500469230810818139743817515319021071725238407820748293569430511401150644726026654722169124280827537607496650633908525198328536851844890997361586962096340311467113878893894054536333413635754577599540734581514994304403582376304217322636493898406147739761986457143747567710399326497494301950178312938857698548930361683425377160216421157902673443788743787948865015403623928557069124124183922697277626445934770146457953056447162180823504889962428727858567807718344588071048806516921609272589003339616268092892065084855852777593780510891150365926001828739700224776355674598188069802785864470199405674450221390392128340226583883657446875337170836410118979067989353454165394838729769360735845581590240012088958716276218253974041387087511174016174387462118474119231973642065176238030576439589654700407576754941874498333832514805894080785532950292175407776136310724351555726171019167899356843166716855541328194723989701922188647800477041402337833382790010041736395172008090369629411799182040553992477671548427955311356050063654904871904061975429495834704700486558635174279093201876394247700846677699526719135403920710539203332101734443358934955250047988455327898644311249852280808344414672933290034943116709573245201081101369237633695849988307196878712988854826501222214838976650466655207556966148674109821513860775624764006615139513372893689610837015243147680343693629681921516949070365893217406308549541853636447402613355686661483357969189515034849611000777928552767955553753973267959776073504107905649607668070294528777170192243984047735790651593849420361025232586827894486334815662739986615581731095436126518161755628624427276870761816889138068192298495396158893612573838853173847396610391242179099661152490824312610587058870047519214091804884357510370289376133576823732833757992127349968112457030292566629460159375825441149959478645531006221268629804538364985071496306055687543682800284777650768287704800597829264004395515313294621309383845387365146626995874702705957818435965697725352545365201347070630685374766554222685215394121278820954105070986022993687971874990059361541263630574305020802077868780189133290772858341901883024182346324886524549145076396532930985720642380671011910796321568812721965934957146294638568926785382726587549370132160553813512854925338863514887118158743119653212013442674946781430362110322919806596871946065310498180817757911153842839205113807852302179786464507232499102520489250772470972695944097290552929145110490025370944583121140240531448806369430601354803577084178844554015667771692884672512469982786052007858215735219543417248915531233592210649888552534166369126548781699939325419663464885076532213024326029799584886812728766220729093974631843988330847785098196301359245836369524100387810193861723048931355391907140894957061559055542392465338182597316561464428538966527888714684928935279286249248850694595028427895045272443986034442896224410792323658689898729793348075367812527592604117776615992513204864298053805668155103275526837005769895546912862171853717950371973032223423518390888197138187879129038865639152686871556624687712331562484683122616643064856416873391638966953128772121720254872186657536838941489141372664667628554812421044736381686175017563099851273850409906205951439483443460642749918502121713313772741694333797219452584666334606472325162960914057119949036956149652611477054221694824945988294395303489782121372155722198393730968957704660515066318178900495457753466343694860086731133323310011552127465586198093883248889102601154752267447837176145323441548806186375559305879664972120225619538180805350623226896271038341939095655529105694467444298617638716715046800039327660068366152890727341230439099172366548849656251441838627658808452626469880599624434671693682978285605718582760579151121847738387348656464411301242926408677819151350874926500829436277822834936780308425990865715952411671312405386551497216882572328198080853497537265125341120789937789931116586767724681157825168256363054038489350154728712412210536775282796191192052164776388872846869974483014828171523806164229593886787361572021979576381762373497551406408353707925236954844487299425284748247409402609785065976081971188897774028725964310291851874475736484473446223146340453549728957117459633579379616414932474010008902473023467610762703271734456591404022880372319073750881863952499587870778904711241710341081847647537053872973368451430876882879579694671879861076254412958041077896095057973392603326900608153352333905462159687706518812101694806545739275993945452425513818275408956450843903471014822193776199086538896151080391161530918439787214526555572508899047495499375139207945025147827097188828884293412365887733924045704878059748966435170175556039593420798624195066759770976817432113304640639043096317639469768120642398191841656824355807609900860479098165140797305707209133904344509616011373444117867135820906225101161844636335168906658877493950807910413420747586655523652006576839370435155426807245181698655916591638759527134750962778691506563097963050725518749305957699015063210978983215067608860064159438781116299820706200193709704708168123625747569376921877153263565763062441633350050540326894495660325807110613389471874695048711039681891507579430216669918247389279351000678888091203135161262285981555927182684281404441584817666433355212307916264205033452862906386717389982564429794504342257243739630077496045214583594236775917396632196162846425725656503940647122829497998674889723355612359919627063169955378362825314129235114897586612815979880809587080258203579747296355402033182787474805923351226992911874377218705785416400620756009518511616500198109085190601126569221992471122759462753490767574108879803308355781551123806069671135005679218559579896330581470600747347095687683656499037834078250560311125414159777053420791208346452559800533895210393439661289920961364956370469573853965008414239769003445163138386288347659515230493221943300185990573711157191942602223116380513249840067042480969281308060084802982363599203191481000566937683244436198622254457427100087182108269787109726907869976435677879958887251879053126075847025728405274532152108018084216024637357705780588825430876491085984310971199176583870540214752191275571839226081596518544193836503035992050304066871890171857846700570393663484358829947323032782619416653725428199749434830134141358753420490110507342709592530246353549404459048575058536856092840983130141220454817819097791161588548585218507341313262689323444034713918040338415535471373919681933711183408738118151425519611007434997953669882461271123620830379880205370931398376395114792000227177165812992777518870021011225110530365719615286391136604161805087226389691355968815217744729261543122489770261833322660977019921115918219544904238805188302255422102609239168848953209630524286083611873645157086197536823712902132884448624291149358493189132383070906960170517013178296998134123283821990102770930634477777070668570004434316487204635275661496639415150934342282837357261248262819465408679368618707803031341653862530676836003634586907975377707436327945011712727796590166246162372125591483656968753464240016132712377070652072277118789384943673963656013259947192006975472598153677346370678704898797801933950697639172555870861898791272258002565561491934450112695358600324276675335465566663881071168654094352690915762873373690032500004637287128859030773222540939243928021140103360484352123503078035152921862437678208344856520165714660434982409822074774107945812198148570342462263883232562327056537909690420802690708952058742409347611400930710375371140877705903185018856929591878413183018805666308302408242077003036633742748770986695685403088223145198851245017154932905386032692165485200815159214964137999176113970700760936279739095953233742941761083778461814973842838601349385587728403440304435584088374307658963462245901533277566210962902180293138512954177420499028856774515714570223856529855849569781786390517115123639621878492136296461246327699348881481879629609701071234223641761227405069266771080340662822814422508374988736842985473262250358007842821316145845559104213892269295674976761454099101480164342748989966450666907798302145655239791372052484949086451087482489972727904540886888867623416442555024350578553367147659308011514840275566105661999750743891676419162225199271874376133276619991828414272226498244837634525548018803619424087411866142870775776535925342413145633704878426054191821161345944333370967605547687552757525523651491544421860807195813245255078787323164483669086309268972040589560436848275736459962955349530521302528659624165803853837329411888099331583112082354177903965323435630032846387577215853931589463631622942390207348277718097317815095908760701802761802162109556021847084955682699705310375001401105468181631715502813176149082019635821937928823614130105367315566817763632938174113504516894564650513426009017630089812629129636160033381714882799795682414366608250044432853038662112536409265794266099115715196547337932643211384170153376682154022267881488031773076411700781755421695890160093165634639223099993881132611546880830766639814115875813055487296307187948014580365609205712033606958589830660352521232024452467210887402434397358055177588776010462402128357229058569960449875752518410452954560199258252021601866801770686988767120522986418036908025740589760490010228992545906061250699089414604462779182683011804462069908036290756583200325099814275057997701327978796043353258600436070581825614246669684991335130706864861588346087457203657856998323690704986687455472511245591383214372037457849880376327362086233990505973010520288213852302729964040777300462551154964252045108995104752284770589295495897704750819102032313977368193701136983664649530903050141124896413562187719465061186620588580824972645227930279861966522433087955040546886347512118632004858597932055522652728721473873030750689642789748145683974587313805175000743738488241328580927721709582516615790608795786279112017988756133729401193299116965707083489211870846056618048906617622015823054986718916623667188988470563720373143281874839557928973005565039969160141354198837692096860109368229337015077909836490645326822973028845554012582582868912891207345126618718624818216108185361688231817469444384963188022813808204007720605157069924667186728094636820540841442032790127629876739051955010879592380392476455901307482324237579685953157989994038175230428904115390310707308907093023172046625317823782428913164269767934743158096838971995348420180623064380308062477958279298798225054460757658351441666595371747987780095154465431482314418611449086327264959467134908212950286678425153530721383518319725139463738750558449137487363050988000166630197146439685421351683748303804999841039380381767661022379921484445574291429162281441550862363316270703512476092682345777656348599214472499998607263243558418358767601088545680758185662978725686593958799626534771112368800377126706748309038597924580179799104773362794878375657673432741810613449771395260081060173438478942432367816508065940347487133677960028528967020059982333168190889623266657342387570687295274986723216613699632871793385085526621563104764568990616386227197125590599428757732421049472249583945892649909511138726602613375329440756025904542458052761713098742998637146216947465411833145089604557546418995575625363194336288603453673214999114951385846789248502356137668521874377399094990910094021796440213983964168145594413293751683531427600958759990455556218391411932755928087160087142851606392007005124741809443309985365032193774084297866420520296509965093134357285574894247773162292001138444822715175499615340864377701883787355460338109177400690372241946418125162393137095747493126083133196182464286094477000662944279442016515095574365225566078455814570191014532885656425892237159932763996122328912038516493421064574612843672460782297057711001795147381792558995777800629664470534526715231931682933738975613762898544630759887945228215400818348984385883026094625917684298204482855917336433873989741146049389661885892139494836978443027700529876742428034354273898292253930939731557735946307762320098922690778375234465005326313367317671583559427157786364581699956976899783063574077552943916545516549974358712473185278673467681475802882353027655951299268537901021678338048596972800079264837451770353564294693805163714198160563730614436596125545821746647921925431937855409723849163792810630279240871223877548143562612230331277098915148006507943254862319751811380337565665078566995640869152722358033298571816026911803300223025564506099648329864468785228726869636433258094542229336764326625367246698248664392614369089819013084368920205636525335615773607454163218746174199108308056818268933420358704642749903099916082413431025741178982933651452005449310253076923783901493060474784293730886493421387441295022365623955110886149712300451398317679130344212421341195466446197733542963547186490403180949425260607158672930562634376502677059933055408698311205840964070834440040393650823379207872351399375586494234761774447767548863996420682400180807734535806797528974623416780442200825709617198020197464812495446777324319355575225513902577518440242547799256188327758803933981824304726580339561390700175093415140341588669121483418164715694672053037529354373011473583320684948987411230173303262721170499877061146933915306819188088429189422758235962660525161041813540860373939398877386185018188996452503370004883709992131764812476663375106965035688443053870530977609250857146503581389417429794592151117408102098346937874608569657829908470510535672365305899288071273431963556134932330211258560530684396574165352928873782153656905751602759095879947999683428751329886974758291844323233281571656460334496251123205009469208583084237390012737051435966477275155536980896171656203414108168475898741632009547756032962181084610436210283795164381994342428161922188864568747261188813070624780915947539639702378110811911551724062514745952172116767582085196738573029097681822119560916059862227122254040065510659926383250802677736099270343841722042736225778934045135106302670584924230822320643753086044471338687368248963107560563337045812510750416083906880149750449371733053786576001073111487060738100037983913898662593440026899255855760226821252187764488502012171958759552665160767565555341648957926200020323434101776505307265555709217802412757167764899796177816111757058856206516335377277220148948226369737976199096397110199588346813273060951812166342456677993757820773507792683128901561688715254837134240250270204607804000224757798774461521747144827138747014023884708537436347462394124439838126827880580834353420343412367699082711017226727356549848429665143305667412394043551983753659423982592279470213227709923631721390436521645947762294810212664401882454540028704536171761735179231928679576640945847763128697612296432101550112718639210966351723770685123297991824354992624944081166472552291227839500212026378131353863169768880317521988968661714345881820493791404492910015647095299814070466246320300364125815376055922295883632433701073710412696165518131806883727374202373878680986290052000168923653367824959746209700190913288774244877951270871060095882034942796960580877500370274591278446575862456666041131761597733865079806618582451246799750469114650294339457028915000651234184302310929141678023788045538966758125419400106331844475351850279614331078654668722173102574603684242839573138654160890751192271802171277134060069943231478967612234557318987298143952973690589655155546169538111160057607586237426672977551926123037943228800359229188435920232184909232057025700424893927480970788182964210423914077302702585842910083394413477402350846307481045464070422156036486470709170887746258055180380235465748181342210572418736272746708615033623169861938246364143191739333051439490113551979575586647270356587268427271649133158837940280613100808826216926578146522939394515948338655472850065073254661365047732916769847961204872217000280482754436862474473816885144538422864260294301762333064662426000405820017478809585968595532448683346288070245186018199934557180978026478597929604048177550384104156245020653189801369305744795271827441782904118058551530863756549692080613688994402792072086817111286404621269231772105453808277435475509886385248898593413284085133994905909786068816985655088670116258131326125821245616795096543982981999186154144093886864141940295004452549099437747893152111519922168998555795009107006822318689235012618502669842764045639981433902486097418822192862522987505411412354170056891528282150029464220897035931839583263178025113783406588383068105225404917890335574371807483213372891693249007732126938051174734475914859326519382736714071346660769121310309684985804990830273764473261904779656852582852840777163532906688126121180973186993038421972764359287172227929479648752798202196446519570073082122667294048121946318176960404144107662331862244983897461497537903654021666327021470541612453067879549301707216202123944125836224321020962576114338706720113725909295605160774278518493292247524324470972626184870134675368196328437642107588887465396506528251274851049114736005387227212002686809904407381122820382019565779558376349336979840433907043109559584330933207504352163697490053687564430163157408577402996198454321960882872443125711613846348386679617514363968425904819769600337978302833689230191769040108285744893446815579718142200250213057050077108627629695479300587902734250444306211746708771995254560133013325558616872023942372942260678457997434223423360627820670807415590560847237605770710761853370316510046685094447354727075959604714572266059583091747661179251842543794291333276519246344793844312436807081845172911691127700543384650665399409888907174345177177037398749647365966188732825297847934332239979535767950595760842928995769512736598796358086658336615982017079526224248886115255223148633335996749131491225780944516914025946396639632028546883051004458137383941329267405325510114403405130363728002835156201355733819509909262946215370126261539645369292371689288455219120526121329810554023529521498653080631871033667707172106271682876408347463567530045683023145802038800845049220218126363975277176957743513310792884559064155974257751751142140270731351954480386671102168583393534067603010908398797275639792849653464925512377359971358085445795549080988461743959022876233304645198522121237912250336858784917337266824064358572236435757900289313781722544137102739961951939306427965160352397186853926196890422221693367263558312387977358967993446966549235313524548261539194335473827596003260331446577796153780776075602632215465823046009637134822034736826501990606678361613038212812691020807239515254774739766827953760115114719471553316785792381814664761847427283098768945605046799728300420101405404853349082974534531547575401439508662698435339468104094066896868625418221725400802619771203698285641256758540728993270004384890989036947941883326610183516187622128958754945618381098127390470100413979346878377929532020792276416099445161191825859597130879137902987843787839043366211493374041223225415866504464922927494877803242898659621726595693718785851354535367792290847344428965035255533807875671391521410855645801149436824514534517084984767118235241139318552789250770766104067181458717838639762178769368471667223118057383962800168377340805232846258128075816973604053438516323260034952916951590298241331458680710144557130462912338293708314530362876979238051093622535266908711256419227862801749925229213929767723605693257394285822780969416539151074128632340108528209091010640589572439480929251885521169229732403040510083389167396334553457512151281144708228838901040319171494045503953742716407244795853998616908467919341046906549028133273110164393447648126048615193415700880883913333441818318325464873114782577810569292741849897016373041620450878602732860041001423627879693329570875707702985835757863586344534038900559496467466706642736275945722653838929519776014197152217918910624469366564705405511192979033422207767004442906801732799766276369007468724607147100837172338465761137734807989795213279447503549458672340483625854365225666330877701266238011257825346107370063524094164370261975063856562460984651823954433846607149371021781050426677240071591445232373148698738209347882539408138942775444142602407248558224462736012869920378742391910153651078263335500280454491978474045961506227453485564541345423615974018805859835916744557584284086580642487629539682661724695932351131437089118407194534156978631545477282776074533296078470022885341690218450953392815703476893758180623515114765088617013356082446996370273029202289106460647310116460741348195507956374397722532703298307299011691323569662269062705847252172861378648824493336635582422880626785497827289679396401059280735203373447030048489250205090876649675846898842497854587634466255605237307027712738822648032700662697405352149610072327277102526848706993967174170826647506918253396762584348259154049258301605482571846378436219677179831391155368257490365616476189656612549265317560177628783012519956788771613041166999078924307501693969628800259331245443801254152101816188107481513739272771327394789661660794956064080411006090280696073017009612431343061053624167472143477061959994762778479877206946297538647548619143520932817577279016453979040363483555118385775445592787670706650962513633041924408220980622033171392284515809661698232238299617917333503808712714362959866022037715442903222238328545589241614145848436199417139747668626826865625277060752461903548035877677699026088821522341666547450145473159289200341433358015389782853332428199494723413883702404923092469814246601110333956767630392604237406350499003420251956260021161799116188692824475803600645461906629997521878900379387096496612026131656423732660736163283765159211279848051625823494426421218467610221093938202394474771693991953565163958945455344273683038816505873527686265923574965809150009343845573131334431111758018185086154429221196897042516420819515061344135831671337674525570764919398648019608149850626894493174799517148242985690345392048428636975724044931188546084259846088620815240036393454788065317033196726241531420201419361524036719666606880695487076604447855426865932941573820299314797209430897446875596870733267606567542767681045365590992883992848838530210544611856777970188289188698051526321328137755708737400208491002602116834760230292328531859792154891767619204947932088254232835583390208226589426674947882886158359559802733332246999088851534628472336787814987087912328053875760948208411605577816599844372972446583062332309742171748696578723692123471766528060714889247832693958225952943422692825702266707361151901142984586755834632142926023985160512159401444055183407859259405228388312534277438366368532627467766828274539587042301022387637037174395519922276723560364516832052944715813042282662693899070424063673579152034613181097547946346814027250253200013949307828213708611653062703905871935340671562920470886709837229715693902678750390668660024853744273962609233181440293474984972656444445801730897281538110351655954402501570110467473244279869228076701412242023378292863262545293227586798504905134262598163147669630242772371318815522851340935477814028329317722113921589512130005134567326860234901645116339764543379899865462810368356025108029080108247854268734782129009373790083921083997108723288349809030489333271110383221056860320039977074289744021607557129853264358227258248618661295243958412391897700234842481512025891324349399274467531362748892980187241983964416127504679193588018554171259121768600206177891197132861432907569793599358053067347173466209532499179886730934999788464085257350539188763622154160727163741068726686910741337708065918431091134485163996221711224531391157175695329011811909745106861477694925642938672415835628194963195301976050220042590878976801457916916006163771378778177601010202633462131466542594799306981794422586695761446929022587389112627453112892337538062125984443140337387175566938957748780493710766811703375849682877611159218322934150579075421902461704368370117621693437631556395771457331761589908091174756244055677361500784603586388297737171617492477697643856655347014087062621001513627136673074611022073037754681658849526507150134738159248345647866663125741982553544379445764534627155178622415588987752502094341996205713624800445075854485089969713595126898704441040734786384341072842957859542653877582180863883480731939868560416616627851100784605974032655620102425376204261663617290570276626007237431643863366514951899019950582221600149451619578193424755293536754841461015257934971138232067393494417655825575355701717681014321769465513142676256497887988543601923574423970218429570503704473356267409293142669397347772903297782378782835417585237956878943021413119582797624168458325323835735844829673626224198321891250423808587444685960290736954901197665992736200928626024461168931542511425168861666359064746769477265175999666059280353133700611797402045956969051078500157244221875014117393387763752932871009928725567067318306031136292005687306165495745185769028570936904481075946334471147631603793585450822378877924409688312446891566930914862904718731622385926449167600682977251675680998469847572223569945751230352404381371684261402787788054571017891467932319785512614291379790463361630192144406228912048295673429990779222036553008746882715172979204404821146287388098625237093544351387206986762343325756136313353200586793879219808522527579025090546967247391344545194626909424890915617971869416503601236199535500377101501620571135879819199717403372990635265905146531306797419701789103039250538573232071544090927128038661945845618182223532469882407682596591080842765258796733237465823958178788856629503343576645459968410790499812044299614677641418859954316137286715614921327491246385039254900376498585720219597222966911380786467562478879294723944505846474629517266727840390121678538598467045613539041147522715347757580436020472353979101463836526779662845191862262712958670281643846595568577552519464408544261356651314655179457334420055439044983879482245959225610867590783136121822894833403020517979740304444024375222961088898377925072239764815329358026889768867188835683429813558394374486877228463418774508465363374261857114916112673839173453511709601605594110356083920032399383356694756637710602896338706246673198223566237201118181795254303539747490405842843457056944076877335522294046249587239466678205461923391743490794701729130356821181899347879873040330199211217887962870383921943104339452231200895354523411471215839207905981039131862758237122802677797300211544890461592755800363491126113625634098816785191050272096250990669692706593948636432851515730660401207123852192362275656797565689612978308762125217863424611359244425237383660071093734019032048288089782851103287730765148350106136874411052811661299491932396549794781145066325124113580038199503893522885825030872364202658471838903883518303102594504083889020670769861630665290842816703793251591214052759498260755470715037793599874278662318904812218916502129418327994146354292020095256217380933242734880822055688879952908370611546463937275667363189374961608896823762422623626740666096389404017965200595336832616242211171690178364502178533577450073040372499195116582574819845175387487539491471224490889710695313899418394421415776861158752980177902785618629492991580426108852368945822205484233362263536994473857122974258365850147038469422673848399997012575626656082441635911801757848488955372228358567979745883380653315733680840943548434504487693632056523656793567833452712689672307341252283379248064870017004389044098269024106679533631689825789268920766264584582770786095543601430795769545863207425867822550467982027524454126003838139906853993316952405287380541309299177270387633083361438791262085749527127893309765736672830789448778365160220779954923453915838838472082102910088916869329704710189635701092792381380547704112483860599745664382136338548943003527880016700173179129418116470456539392969559517360237770807783459127820654578845072778608344379893725445584513390849417782067378978029089118959818221236299748260776046825082945379601192724732761713458330662222287731655348389764991310389886737423244226488472898458515641708501802379800487447748692086708232506488134300029316893189662212044464068151980490166790724775946409439153034081149960294836761482929208299922244177453692461527373965281848291805155467355847576983188558385318129571450670771567898690285948074793613300452829988128374919795121831758055212268578219479689412107624156832696469964650785911141788330294404938569265357160356113099652571209683933232972292118382453268907551484317357409403726453839586659996708831260022383315580522271128500188406076604214558636125855726381059520480264640768949646214987153856010022699240692109504147078612592472953263074575340954522884571434637652804792967255439038377867808102662517761677764953079739056532506815516217468680130711643612393111512427911521160735746171373877937571964128671769424404992796069423980606017230162438183927751856505791390434021561264575779113892487768632908186828666071303127030559765826338068838476251642418503122639863879660915201587868002850332886533625875113180350581083449040996019451385899685780492370722458929735105663889246509995701682303852393780294550896917870936236907723176641987533191399436641124653217940798863367955139660028513588116470267570042613615422440652186168889674528473842278048140389051596790144955435241480357047761574281064212590188968764264358905599171276830984855864199728502901643638570622759958394359118446347225453986576290053638497957267052864697082733749544918402918660719368885391851990180969435738403919867637875008356499080601835848477188770902990410879519575530211228625256824255464586674432885954664347549240580208416535509756463431111610568760227539274251366937728444171259253844344092877934767052666733741212795715776264058937640633964718682740678213924085354230543013618801985813741934826747753727391373075789932673936685833797757986533469535022782171064634071880964054767208329021163596046481006912690696111900673566628379157538078756981820843221889241074716744495390411935717289147603548637649395045737169179355478753138220108581163260690817709582650816723041622001452120841725381455679601863515663353937970990088553174363388696001253888674090874313764841897330240327565651419799331019110316092115777623457145935051435057277645696608344218793477002643179735472206676907759011131847916628159368137955234080248666346019442817001475449983679397206679835654486737608639607497974078542820662477339162478166210911373663577010912095425587147807718756956186766405388140561025897181208495016717571265966899625727226167533014968368699385466263344606552502963619213820319173904043520550182014776330452297001652956885716170963287762739163049145443248553811099980635741684829344669156823664280245840849101758938585677945533690696392066765460859707797162132804485672690635174445145959145913779231148414592343082135598156333876973171106506470729675795990628498193950731852163655071900575944567609523489810967920208563734405374228001357663555426292372299076153955571224507369637835576803855357717132147362649518583940640619771146908457748461860592257695662252826139109304382317087691797540564919202597667202191951760805758201901131862464756491965987931119328470143339283091749370043419593499493345775834115656437411378409133282610818155924467264525076614190781971546058125407039171599054229849941283216413976102697952026593100659433648304672886541163757697429508128925923863747968463421022172777933701279188703713955010843396045199675834332004818551379913651507059484866593964220340702466607505191083645553079490723576144987966480493306487090532370310759930358682330421334241698934898427682762357716796622959221578774471916735938271200916070720315716066845579548119230205551497670901073146539395550729893087219337882496770223659433727336758760172056371880400893675780178879971389861458800936325669674608444883994096713984196102284431183623355203491411943629913608494172853658295829053035485483917743164872736535502536787434486388578435278282526981464443809997661707196780930962476996924579430732150207830634047785744011943046424181684757586944591112282619182456266842426442393313482415107846549904516165103109940975366919831798177881980762835793862090653087310457308580409623132178274560737313049984161711889858264525604511360239536467400403480024490963870472307655175758682298502754431529475228442584072893608236345289430923705379998195577024687243398524507406679437938268250571032425220290575104750432446598305599436599648391530118935252840998376702666320441643947529641350735443573840113445364103038087336363746856164132656280965802719320038785644712465565088421538727294459991520973894050721889671253714577353278286922880024501746998052711808659802658400728396205878819451469219781283378909766522290383075767644101705611597381709214687831166115914508888542415525659426507696035818014520635479709967402590401152482072454898077867151854926143602162186600258088139340902479331029390672869208220240700653483238143124615463167155810390531667661265524729671701067970416779721324232817111406754593697932956830209808546993812063765829490052037036417270262130299492880429353864212460345463054615637620861577263929682580242534141022020744830145476819481383893053489351266794990535167588131831361093220565771532433383205685243473595695272058564699047558820868693438716899486756419128826175649573317096278403371795704764842566459384024928434758911168998928806913467520526898981684605740733573082430164897789573897353412098884303485241307850548131276841449916723766191860407920264158404198800120849842018816857793084549527321461292607471810271177036370082845909065566786388260905109474348284614693633226477462409161168975305711791878031746511351337335384567193467296288160868580472798274301182435228768877023441464872530066524504310638629758816436098937411024186683892334416422456619641002481476981747709935829024034249717287839336941168032851156727890511364176966311112486536196581719784253946615667094486602808648973904471832563607220268742519266508559157498873986058452583874496837318203829056316653264094492418159436220161792036774713574541554183678551046487134839578457875771085137535864717096993265426295485473718673532912029820717622194363918687933546100158774681956968209984032396055678119529695539437937801079956161295997942052202700107751404611779554176489336304882173901201907163898126706319677359643998606392314186667935761670446471908062517558476253895470419941236942796356790471656754986429216133874992318296268205504327737096489508932008038017490015568484897244778408324128435987298362805192888185081730848248826269210249601233175119619939262917182523574206483138762655044526741364126412827057036618980271787702101733578855093385216357261707130280652507308165773394901830278175391912887586746209575280838652273689954150564918837213372170607791624699076990784959067032992614539852124574099616759926234800515796233683690006990057572689158079150291634203929646510209523313196769187065891779143372094311457689729893991799083813383423940865133753235934901694931331131794990180431242892947076920461696359461988250995586932871364966856131026101989499316812592438398967567146956137385146122541522399823045430721958226720401393322828326245164675477047933122003307721600147950031121524624757004460056191338375012595558959480370688140169088155968877990205257001291803301577808811751945980631410908058550279538717006322839959326761612074792780582355304678132318222544336045329025871909148250666631189302949963087432472433079225571961843361033729816370517232925521641240278888860852201992678987678656760546000985813757840634567115880254063761176574715099200142928496945620866201360598731984593003044135979221599385346321608242068333220484200083001083954102373973456515715866493293204764406643192381303789403129293508695731120037325234190772634853669709499706232161125514303158383488479954646815242956706106435758585532281417494252138474397826577642958564636637760645006237458859169516308644610099648428432971396000318178203438640349470735005896064780487545283864632489289436133137420505465025887190784382289597915336121753730457584255258326453165294064480142765632515938683293051884613713473362022671163298787594855690512658795447950723732972405234510815814989362879470657634366901167569379401408096813378582102263940314639372920184369037502867092672652057428909637149005350089985745259218698581432875192011963166634313240481107330187081059666574366993825312389445143643421172288937265052104826147094879978252182843228429436363067110329103072526670789705091881120687081405238499970466547364187612835441994330182904279371481687379174549702072482606961544218217039233073933562899833955613440201008175577200312407759269678567791169179186917061119853414702121111704672398877090207183216107414185495763468461071511123813276646166445267784024886269838079584617881188160379802976494160929867608583118986303756810765385958191482372613675044446796180815227573485109568943084934827520443643668870346304803547389911671190334784878952610589564735052989451936149233691042285480585377353543189947246950079179275908401117067038586324382166835687910434005289423976203902919798674592485623688452590948007239766169814682402401290616172738824268349696207596080752551086277564427860475658363567150379277589980904056060039791829271818463858791753972165368684697712326430642741015652785087285005384509308848646347223940605620193511958265814105912204981847888953745775344137418601054758241080228292169061997147260436358996118349707115933760560611132464428402167667752309177544746799208111994714417287268311059882917629299908186410051194442204161508622531373863611801354361399166733651268790871054769250178861407725568267126364064410933060884477076050098221703243892084825464525013592413822579929409340623076402579531839685204796934162719872535662737728196261542540295908640353561825434220450242117507844317083430981536237635388750586372523888309787559821989494053920880958749462341892988193086784016041682917853862552359390600415620881386208778203074637247512237865243167547756243519014346221479362498374163676487820538351700520773261277050104615659082847102308920650787777294055496737255357284741003981840524869723030530556869421397612986567150332182700228438169759191671547624553004375264856461950419399038616187969023565706396553318674633240311264427432823993610910186287170869723965761850577592489880736397133757943598949502021729405037156903368398534752575984200006376459794408989029866150301616526267868239997147253968993558947717887360548942853902069836461810760459007693782642888892781218104430117411712595562462976016550268332467366191048628638557903276728714586509806568387598479276593981233413512124154558168573414709317130158986190721317952672575505205855810960760621311523970921157816111965796096086584232829827331110547785407322674103462836056138166770224411709741325215491101046070623951894669099384198657555991975327240612642516735212552114746584317535853041095279312229089437481270148768596960559369142517245664351038797681590566533626429978171941610301929163527882589768524565333430566428987213271003100588050980664774402342672098157352812241254819307450170116112851054172723292181635241713309479759785463703923654955809066030429681223793926330512719631561206104939751827363810417849056264903133400676202810867716149885209120098584086124109762097558245479060917312006059003404956281392812748130364723907416665905746023048629932255285259247269220189228457941925219629888323427948331332396404329195442641681097008089199219299365658189917971269650929914076725197154278460331345343432994738918196248856508733797204350322843972203836416311283856649222329006952311557104847652021497911679498784794437003812163659319831045544005188410960923332496517820672099566711461813970095612156112116432048309246145516629038602970071165871269305945997718822087652717734383961560621541949736343257997652015960560491355167882315444509641622747011259098688179412690380230241861328117941998724182164390386383806899253218054288557227365058236584853143899411962545779790852835934540208010951947377524367183381981458532430125940550629493860467836229820034323313337117679988530805297121351812460783450098538289112104682583536757780664170976115868343972089572293772229163560167969689384373681337324450334011695011949389696673843029914217775957372133111971438233017739005510428346020077957813844059369147387532253354890033523121880773428360340746246584077735565850637910661342034023390436829727430607823355754178147647416281206310300560514552242130651461466033508285040888702574768963894902505003873740249644511732218508345651083686058745931770878830494532994534860196597675373555041109285262145461243250464743276734235922530909030845537274301824258632216446525675891699419291718690318991848521203900461387277454986765498243335631915932897506911075058471867346570308488644910367405150394653965831988589542375073131516515352957118544877898117690788672213287161232122989817183895221966668267534428023658355506543025415726039914902714122795870776505905964956796945765271825025350569726416099395064722444690165823829609812792617011718121482279795000877979462342246285313482679959780401820956928140360332059228412059606409933581341055786484305345008735366776246776395770474170693151319888464809634347677774308090581466918361249921770476422422229525997895064542655840819108745261266594518490191306069808318133171241173304766866441332542195577298258787574000372927922554911839918421576737829532819655733111233101768227236776949396112190026763498048341331321658206734972377606170120535939774707197305022045429223654388109909150505138653844805409266969742426567580318023260663538394202315435704142652779122262815900579284522330946765338248291690260731511880423235899863933336879398059319753606450778578949577912015009315265290458346393566235254025879669429531587501547211719273154275642497720870433143644225668581598194140055456245178889091930982932640347468455029984890804032522141425606795058471305026659891892713589171218405639814206627393473380886004943434904564904998382996420517513691831699070105657011923387928998385655879834309623988917327584799448683503784603585525633318312017513128787030140381488838330088730302679701457741581222333958258027059640713300736368674264384689407958297515026829300307722659997424454998704642346981004882283923179688651603577459444839787664252730430477282999245070962176446926813971778437158097917260063914875352028031880307685168034273152379139190831021740179763712621158656997707021565907399076834294894490353834172789978027600861337531902518151235556294920620730905221869052548549373751424243843094696559518385791804112652921716649464051284191039320245568759027091891000623766406318980832532303285203698720380528466294516064608913573062981151560199464912379946940140064350193413583378493329131983603716716285633772288966094190737474967980921940786742335244006553141777138074280245493595607253980662283729643188857043558264781007384555533025299217341864845364611072309033489177393766192276965926851065913608668863530042648021125283954174062448886452180875994090402402453800620110440215442734779804106602750020489661049633741828704895664572448084736121860834228633847992272276171531183506381157172013395173522797469581014302256046247135496567910713088481791795560555695635069433588333898103255598068664153379167778278578691997398525213443349824916580184232325754350398508935706630194201058593736626866454468543161547425433042112037400011287820900702056374379618309939987852115110292151677114402008133026315818893861223968912790900155716598932962132721172326121153287981967488730620635708423527343217671526455036720709184689517606430615395789645999181566184219442022651331448493111759817686613246052271270487429431240618483445957346076046577949932703490145868695173448691038458357653719674762862164534251503521617339408882599575722560968018003340885485145773604191318831149273540086006349382457979247791461676825691139678864895819849220149044131947494953678541893003222861589154974269587887200820515682917600022063396869692178724213257890642812320937200597491524744764361097602710872030607439439714013221552653658130630804145105746357192583038068902028904544983576239218780171648964477213176780135326982821829304516472866246927138470313457198607431904042902969060346732069957372181201822149938625352014518562147657428335801340517071806831392962586650454642000875162132141376042532204461951613106279591974862910864885560611180464289109067986769801548448493121307218861030882411937953484765962591465354869622708965824189019530916227908581871134790831088287471125649780535848743068342998653306027546085685834548541983340676216709395068548340398039307940224863483727679360513141711471541595963409991712702215084899318562806535884895457467941089353523651729504305168152161316142647562882043955361256086011173959278624726946368720576924925727135315513015757226405201704771251207634512737455809089163052365893216965545881207871463254447696973455886555330221344318454408045605266131702778197021100532424544231612835930829830251818934171669340762647026816452652367856336489082071187883006917529682018516246654106739387113725672857077987679565853197189978385536108683984846121038019639134412241956415141233555654909551359463200955403024090640420675549865670588803704235206217986079654215488624773184695724724689443502593894182642960914228426800381849619074640798240560654930070391664585560998559441766876209289356450048101847591839777500104771993255189550970582691830176571276467578030387598374072430079350791191005884030459396045691264701940128078184289311547167620917724524570498726333292182934352518080702744017855673842386663071046184569462387414419507239042345942089427154854903193007102675759636300618394016572603695176878709363366656801455370446048960819003329854617445090299813727718409133125696598395780131031298951590497378402835514934520572177404303784409048234945628854503062765536025123970501083643916827597757122252386220232604050750731069614001919235677965996757534974883975088669853650450327031394843964296960208140586761257075962126587432586034460740694090676616197064904032979776493372913385810753267540027440055209029822156438212601993995551083672830336455772870413157024209124858885762010806279695016982270089731884909147084720909177245322938299829548356221758605299112300388425021140472654540133882908431084139633150522547726480296466194052528851679277923947213118101515834690611993902874101308751446012717933284026168206343947111567446493189861556672218024166790447440895089765782904152938345424702293384921563512913988989094869119260216002031513204164294230394241618430604736513833150115961479057864385808156305386759524154633093395661100276768518176280827657549272538707117626344856866931901559550324701239993080848119992798861052008565617834661189764580550175897683699227725091041712220193717844559919460675693257088774341885045289154998589566605347303539544630080163664613065837080832736971349320731680978381450428818166860169370298874594620497003327984288723489428476997993080948125476758921340515753014103170305759310887726306893587962310401631944635685999512053479639802311726164644496402820187262721195506548182099162603626384349068481924108650515440491536657194814485134210339837131561511726087093867546587992475800335220594855172602476179663514569932500118963915211484494233387412089729610036587177889938503685677496104516051064287599761920949193789112678582919185488846002369659522442722935540468583047172769971660842957163664785168098545034334593304020848826704240378588048428081081766001843494633776381206562444658181040599392350532302564605389196898102496472254900318548402272313830696123310907119776122936269690045747018085555242315936618710778900824572965236097580802932004619684527403288309663063412830248339163425311009587264662502526561910911706524101884765230960903410585542471262952877252276116963737980687345115374656539246555410233249283615250807196028257711484903445890747270911542284034423527649096875486384947197507422477999894287050829489157540654128314184560750985537246865313357422968856839406455409930452893532868806649012590874342222619868621551351075868967654068110862633123809466589513464355478845041977370296093030946543804144077662290628215195489370493793979466476934555890639991470680882971243785251050920629285501746127919749263145400259108116772662566233130151133258259969140791048108594815153747591106665776333137259045361396895992308710919654107244340953819029829190494637706404154049762890303772009593048812881187342620509993532982120433931379908704666553323060908584804052665075767415434465019937957729087736375048230121134096764124451727708797261991380520878484371561336798097481081776922909544810312964827847810337527929936592290818145595939591047239778221471771264426083108465303558259559624518678139336528650576962166797128369003701331921860231455469825561300457099656084788602122544597491933369743412044153204741540003518057086778299251735370315690366973287746716115196787647064222662988151951880859328076454174763361794621884043177355017735888667935928583066256956119848641315351934711801455240199270358881516392886820222128262787385563795073795850904414137262046638388173575342498723421033960198299214607856244138693585077673286303119593705517852234595280113337911237956883012818714121785305185074272531445845443296400927526449813640603887149209217722515178322826022703293434158387982549335728786586908624017370137424837316944450164203021459394754097782301462500509173374569917308423933363205715020321932567537580975710096427114540820822623607776905830593251409086481135729180584146904612962407331132479489043639567005645602165143839858625031417889056045531220786613474036122491739615216610787977627317254232772491197222256589852812133155760983089360853400011298198715045237918185345582903048946953441541175916985615006314115430708737492177745130038796885716607198109850114445593712871928852814776214629036872318510934133795965689057413954015790966099343671181865224457005022680074088410925467949513588792289575186727262009568120690070516363948594266034718794951180447853554653037334047930256252035346047198021110549983639211847709771955362690002373742061334905762372557137153460124644421256069345343052031622986112245816996562129438984955651252754936379667753213637392135390597084882396740865794165367224607367012129022790776824851302466540412355156294372924849545400752728491528494391168471384711921899301476676176844407426840074385058061121671729572068920635352331378735696187497077252621252352134461523865629576709035414364012676881829865139265360770458791049177707997480134922030959151455275681205821015569774102135181115945231966612394103508471717190692220114239400677837292061961606644381917926864281167592151091081942554103322706848047062058345387718465632498907526434495856722515800021979074436343882756581727961426630651042062783809580606473012172294785063424149581030471385792150276136001962570437743203834061281225590897498573475193772306034161662862071765462686621364231955452277510729094796188800522682047631442487545748193284414484923432869078202223875903797733277849808912856367539389671218584799701653123186113954272202016397192251474015625473394456384834155407236737305482620699705243372092218124057940906407292600567940259716992418446732642511537594012099238187219783831496664502859678011133189511230114895205753503097974389382287574434010761216267921619069075998745651793409823596794202523646956429737616566943301904452531760969456920838671342933296632400319692338192577990278409298971169460907979803221068000951180400572128120792334998157719879255356922638069022786413332072529593724737019377930806859460628842319587569290403300508919557614441099710301699285756171477269297960928467525169904929329710902491352525262747777078952482658172288260674353127791783857589771744868241429009105251481674329094410029817878071877485326868407271864634799185830448534925499121614398750524519272035626936856248114345723230732195688619938961298914937126314310579250582953551704366446826816742753357582481357812163974584848476974540566811222984054665709417695003368163298839527723271508859299124852647929058852318074543889722317069850997271907110298307030349607187525846236875622471280921992796992276916375025444809608695306020725175913134164521339813647932615389024434050238879799860922891655351620165548050483559599266262686535995736019346127577669644004710868865214549127328155056120775144422876828358702895919070417885000113106639716015536906296957523741489622589496002555390032169022481860475408975208603297377087483019311963398478666079887626676062943847640947931622142537765849548220727934222624930890727840737495464177422123018549520332510391614139145479184790801320989725775226237849645696883847917927962760740870079606311164557695336885640714875451048210684105489304128761737560289667126299154647747025917065225045617652570649636866968257437216211062499520888127323187894847213950620190272633340795544761574476702600452963108920784969315773095446365879529470891262163136340755876209019967603027685813720048892745698664927170466537967462962267810138281162290535455589660945382065634818381385934698089670213404974591435764819313074229598759247436930168693322160203160219113794381891131027475721414189374105511927314114385808389877592263259623230150725044413403734795977237574132323205316130085747592000190185501614071816726826422452606264857784555172406201158775379312040133609917569150269472591872009761601495211773155551182100561593011335925025754503219649270775778520199701847144686998970083205336367778049248461555932351622323997244194458416749511564588573509318971802712915921283232655377227841008105555785630215098613641527769283690411360048108966565958980514382215515211992158971250328126033831294560642453909397886533695782991157083423354002841413289177892994049990878120077012376677882070402044391539047123905070899630995072720092404570995155585107902049352075207482529414291251482478379386931021732457740073239594211267930972289272077805431924096468506413793169999707827079720585235892196254521556839375532888262868139560611280977458726062997238221628914211332227628180076249168960203007028437138305973634657142043371919429585507319245282285302895288779792791065688736134763853494668373069892689221511200335297572856929413259816044654137642481704118939054879502090074902887672384532192860795272209866438268830235606361399738880127655776282148697065610168734340699662416298488510646341129973591213010455943819039386362069472954006006224845922205617854022011189253372206229715161063622030960846508690180838223824251414702317027624514686232228343165213577640067762625406797773192770965313589836654948346292871453989160223538664064561919124565762857386131558275454811711669799020853080950775854322154488283405778266590940812548179125647646019328073962405915557415117977231484710727232997699199954309029684113594240341299553097058165998479012605670487198028843278822230870502203630545806570257918719599446578769396108764655585492690295222208219714145629498411898370751842602809258699039060261613664737826652943581455646394110789666007687239305807701743012514492225914065525506671636835402795538167766158699160329739742171668690038598817628909027547740903258787746837909216529381190538052376369386581613925300262061268853072505389068370755822058903532181414373515487886970613940235712973357010309855363319402487968714323078409358445385298815418862583676770560117899482122760772073793593203575068709097382410713521651491944497354910599938046733010617407309812018876588421870079602530101570802231618282969873277557286733565584795241788419342954179403595139422774102020644085983086086614031435918113184241473928334489164128509173929686916054307299380482576154303883609110576937564965120082377222900119488571886985250193259013131928810786140987366087685617813785291541492834681503973387727659919956662060059831734803940103563388734356728495858403230301623933362892987918981518505403895411615218040118581012961655999049537472549611631373420198370255150386304454561408191806536568824713364003671702529658058922187955934397096371603401286067080830419944939767294951617926131587718726250336106145862110102823553576787873292718779150295935796129650770750921955626866315402858868864125673930270966326673712873616749067399429043311314792500298700060033437565546479076333667440868845875764148760703511603317909363333776737749614051249246412718236784498905478820495752486352172311428151900620154378879197921260839248185801937890022585550096096446291677950495221673663147399563479061144587089341325343578259343842806240265198627771531905018440173969983915733484659348299412798912175063339689360465472428453388938614783324868284252115140059619472626391110169571160162087192257667841555729629573341205404354729699079271260689682658678438830329959599772654477776663761667936102875079197645956189930695756751781120258137108779762083523153714785211310651858342403666910131550102362717619517771807422215178376006051597990520403214433950162989540132233930217086445952018409104824085820967352796768523950816645096264258889238236086608928173316789748090033292721389661259605861658628001560913828807150368161799694205627185401115924015807986368743920441499302503464791952456915327756204111819210433333021398544418876681493154224329194482223536883629151035505748726719614845568604618503159624718419030769063840628812266257790556012736368789040322674236408554432205674021996826180603302584484590627067745310604515939499454125793780627849244139538134401607442383849269460200936968546958802344265204594177946941011111022742058696083100055469273809767263915649431983537797511400102055515646914382244691476540009429296702858343597878201450456658906116420905734470245180440738759817131894992345440365475068922701668347009040853976306087257929564585570413156282425005621368837379023691927914867881880126082083087756124742136546445415734701460555370306376763013799469598732040640944884155563498705430454480840323059354422878407513333783956749639523438161132558470881537226960457359500231461209385998280006823583995152675582534514120202222139172069511316213170402966715149659290398798434173490529613388282283320136692553097845350294818307284929922284524049133980360463675043265417022599612411229622966803107510204824936473668196421832381087042133409011212466706638388907859333857841083033744543384316656615797573708586921811228906116598803723958264788487771541246326218074822645709592821310156757564709402145521184288980488776399366217185182185985063469067760456537585903902649411613901489118618843472670875047546338911836110664948243800621573789997480426925598671961645737010283859168719490785750552863215703289584691630441362153562575660665913452637643244604504116154122881331961023907995355944627086206333584170964029361728546728581250595579205950670736566321345088189735611279668418381410020502248499178267221282615955819151219537904702776373003571827113551250663395995172023395346055779165670119380313305049763071064043007643491473849244749860106846139798259105871451764291154979532515329944372047358682145705902742286242381958032502607840029142477087013716421241998889347281827842913993023075648405761757396893929184002268630435941301752225853298261909672680916580663116009564635002621043059437020820744121709732884862203622661156106999089719444166725248474843784576066045754192237463658187981579903026780184303871510844686477942761276584631336168210038809024076203858478342588522716072575515701666492106438933989504369323071285416122048525009869908371979414044128902087635758798007531515390557313376288432755292142013679731066252287340259251798409895884505499837896643839567329301021412521947245909739400895793055975476385964777271239505563121821387796099921534880981492932275732829111517806943989020790888856821839886493892170019202703660485848613385541710601866837152547116908243842872802177540483075640686060915404802943581910422936734873439761403060971086249336555352653458161452878492878948892309134884621565577549637370840127905074261071198405094431849750993267885678189216517421417264557308049022046466464569042415595441991217514198149531455428897649230527939230589152805085497555247337046096676776993014249582808027480455693509216718847399952810820265003976614502996261358213702187587216099394619119141536285214851985561407887703571062417169569863762382307090444467111122941581854678369245815716935905855402009007010224310047112093861644885959835336987795775609927330861003251671172281904482182669494893367037147655026219518641249224870740872886195948175195554288442383878049610162749719582239000127591002753849131385805949229164719049914698481324019864391668194049594447653236572930574204637020203747283886664278075732228661858719182064414494525065785262637277801647957674987044472736185665711569436901306587914133345207707749213203809480943626602244671457429920172321747234994838292526043113103493965966306401510336674708828647769183712268861074759896837719441060405868357082208746667199084379411865086253044133491825804638051811394860731561107276118536452094420381212046056475888260820608988570671697633623153273701869628785880506554223108741360249422903931860900164307768566367936069642835506394647879292912856300964005020817603380414571346457022248327795952942297038636273566891240890947222075364667968829110102339720927761955582812202947490857018823961366636476216082528790914202619217038853702715028766416381128403628797061149162792945435335517638482786325512132270196588940356055172648179455842518004931039244206438256680807467376351013164363759478918519622567652623852557039178972025778165893285157309803508708401297940033411391290806385306274721596309145133436278741816644128567617646619126510982107314850241364461354560855283108817214949142733198808730788816302641319969611221214071386990736369787681609164124653794559721663573635288161045917690931593967347867779002674248492335988926043714458064390114432779877904081840276347945146808385197699688421685147169271509081407156383498247276169744541293023800749428945228215435839707629364561116679038304922424874308138498072204183025003664288701308994491005184961715276644091149527318762382361503976816785022601794161972162699940921143090947598249588024618651250110519637848617313132683369009707441370073412604541633181428972252397719586910085178128299079719219665955708768378509880087395888087866945791909103855936629503574125350917097017567958340134188816315823465230083620540805043289405363228894634216424801814483142075040241417696930082965149721268399665691521381490609277952478696859029699826412714870820814537507256935902449178029431065954377553163983097447431570134113542348756397307199270637486558507736983680496778656220521553046589538009175494374162907285064682501393869881090423265076407041053552784374165250280784735259793648959939247732012170391927665870355044299015447426461157049307692245423487300042194147454997475075461867681744789947150360936877396540051729110867107850149956851782236391555400012616682155948720688174666536200136039782502585523576690235231848177338963969186216956429730454299860919914777684341179232481168372480432447548467882760593504516090297441246739754219010198564259715893859396214195176330066188219267957356701067331574655871491662435610143500871447387236768360286874799926939294925489291888384806430014683925320493489909523898684573007057197225203012941247813720303105387503927222024962702362910002709693397905283407740115094979970328053145317427424466180385765083159705761433580106543451050817012889838053263142595441356445601355490755374205527689442715740502969203196979212378739001217609678392430929115882926658365453512081124056399021531183097967837835989316882607608482614629655133266505001855274974906471500148969040783545490928670611278561580811443723463795476718654564599701596289203903306183551578042672828920448943408547632197431761641024005532474984643863069980284415993788907478206808914430175375714218298769622459395666908999652584181595700031276954479466261227556297557635496984776192449665629967778039712942741154057035962914617781671511014714892597427314769080778781141582878213446429417513678135706476823159417963078399762256027821882893364332991177129610020043499216808289588532177957463865162746196556502334112281783932675280102257267862840196035221698422542177391872074385641054737652905635994963275949863454062040737678850283860744008034377071356346783614754212196348807454977100852914459666874379892343472077292944355690259377770515470486931792187444143531316970626288310044085813759805643831757527833753318270573947824259977065861072543079490653297934287503292354913771481716975577598155586096903929517322019817184415214127905410944776901918206769038935063430707181744371859784565822720342988140077514430531539651832336754144704128205367183317543696474083868342165415422253870322748344702988407362203179901144380870172055106218409055307591345299949960332845942980068778398682042041723198468819908467942258036417438278802596522809014174204512578415710596407018511511560692881234037715344523485035746116545199505844615968858729125700883220663897233060983202042931404989207586698043520008078780143479018866601362205103838373669870700776314302701563271266183866377132351322945345887232776649003007836993637692386553332646780288328799609019152639865772773509556651377931623309540898152778952568253208348771791086952454711665083624392371708776218434230632741225870545357008694927231044996203973320155725719684823321453808172038044788992139323371491586104989589267158668676178493725966863126033145381975097513706956350814134465202700706199330030720397767877643099271199371529720573018138048246599430380733523718649742909281158271054413492050718488780040887060749381116965475218229032042763936459008766932059993745357451541876045814077381846361445175676932407622652246233431267769905501826266937254551818859936537443631030699893283100083636723083008766821188707795638606478206098118837018985768482107791572164342752043332173664670188282292301740890844917242858522578048548417681343398251151606350276795313340242574783630068571201850030324019172725975772421281362447824900012551899368028987316169277115333892984122762654592768859284012069932842943091243617816213781654110317081176579636651523893516628077488810229643834381407922591948456805677681250566524351822701366843387562671583818881386108593355172366727143193392254316885900445515377590633760997671543372547931787803033357843806149694178521950132738883824766900238645058757971145621613182483638457162257392027802529461909500592234732571720645200237299749355855799673266040968711040607131141895921502607832894259744543285750043903387552112531910450031978819723576987553093077109403388746430507939301220206223915699295448629663496142978252239495974448350605588799525904546549186449559630119284730635017987190459440404093900586928373037349575128304072173799227511318198971818937334527314504904901004495450110322526357729144539779847459677649723843767010337863491006507758512717371600994080516313413832783544176635160427974337106288444364976110799767245282974301271463855209288008915485483935593754041924264259199220313000395907770783122109442938309597150643817363111678430309770033196634386968569285967584172183624718645619747088335655517752735342060775389285476188534339042191233855473501850960466440966900723274974916982752948803787180634979848521414489856688808767727622750586642522202752564561187916839157568149392873317209267561631438362470308867215036385359808036155990920594648919594153675206699481123935344135130447460963752000170146060806430447637172483769120696551127418627563153939648792296855775748038861259948718930810260707587740597539133473799243814809762310198689742393130456053847965782125040759440239194334440308126749517604626316348370647780329151671175540502583574901490876384703911875335947963069941341259686997419349446505923925018545567150475096853127411877720838916746906929173376378232485843985599867742489794912682295597070667272855065837518065542845483782625803385856295613428105959422040025972752946941304141230470391193020257413004503134224661714456181209068844032517019494478624842153054234251695762935339090122383242498112647932991189647326508584725264044753442484851922996857282577605761991323810831531262711201174500804858498636371988097292073620297691648753214610604369338140292620479003003997356983386972807845546500460090339186163466830398195351374902536757600934651983362570644983123932945370716555729062630748232018599029784539642365265044186581515294930225066379909206055318355429887868370575792222784252017305845961570551591921317581440958138155769339463381457215262826114529497357347017504155896302863789125676373861507041339456148041932392808100255526702347825651725808499657200330808507104684121049597391568685418627440136903793339655299836533011622536601230823636559644961403251884286010691095901400124303146514723614424611437457728309790359074481413691117066308666095975304577396789826763097405565892705580188205020434132361592537175476059578063876274839971266427329103990064401049267758259875538588588119042669181045515652857503700002828698346554198028435365332972247845002162178340861087814811696665595075649837427073055007420988346855419234863306459430139344194899919978571595079140020421767195227742862143622326408947286002842987535976613244419173756478559001719897109786988198723086097065009255402636836274706434032750612966846651212005806224842734316093867834233724222722431189143530690018261624777176733287364994758011776404734994311301257346480182516791296450350372876686706718543886050969629218672202210735163071848287958106371727980806491364774661384472946762357106330938015619869343070421285589322256063985729407534153612671638048024511888564716370737840029654341332485649802848991485897559338809533577313989202908512844765202287349773617686945482691901949036541517368352642704274351075095678435801244000216946572582852352469684305668510056845435317804636729483257132358691287646428870451368872959168672504379766454701450054734055022682016994144963570697239962167393630747530132857657827971437908599765579791971187916066803211001275343129879262034058350543594698441007210622758778721560767480236666382361246219953850329229146926729702149256278886309408315384643037989216841847294090681322588528800516566310625621807849597238024166674567652396104033728677777093104272906646224868184161837684809547209875620513397884055951601140035110173499059649773223956684209116969700422799279204615862961028171120690083500544602226334952591410333154926374496473732492507664620074231508783457920048179149488664399963020184089103890382250160488847692278344201922949308156717981087383120019023770905126104550577349777904833591785909151788471036445790426614261268566321538263128580698640649695586126833537591928151456255593540674251692102085117315548424137951321570549704255415472043676029435741011987666700183639233277039724634191720724891312603515781554686774219006244801853750790842828878835463637171055378707716944584278382865264758682915642304748778106206187429463767825776293035298113476623087227453397201178589390819002367182366392049578120176338604662108449894554590059095248649373556524755961740766447529684487426221126343293267054044553855508931482157169559273555818143994812870164586660436480448078235078529872086327983775161724428726939087330134566633555135186862174183523803561599211530270316668617726894481201508244934632086190920649313231934462585146518836734948397331776325566020165485473258957550008923399856973704083130117676790480778685750837180374418631483186663355940317246100427370322527271076075859807811609544768243514562425636593951352963263793778164677963752261340069402519699159922181146803779568366302520696266923844030820422946286745591406906030621507943685296288382624722503711102038320595192024980291804807748093959130783304683510011458840055492105826773250198297279926525340867971796444748055129187126197256348864211511667711171802197039435394266194716955830098731763919921220741473011343746458708845949270802286617639304832409609052643854267515182672227157272924054948506030607141779941270006239017322407172082494611015175444088469184656689335707105783836115147756955662825966761821978597388749350678323246401045133597965719145909267952545359315151836040408232844914157720190767201708634110889615668357871661477802978027596252412001327562880658342976256155811304534244304479570105972110043884085685680542637789159715301038209248435136428937904590715410616363278985226932415459202127613718018800802888023779391612568273131638198104060555913112467705814994206736748252946596237049477236305969606469534733809458790339827785813661569355843975565522327546717539947792568223470259338552385428601416736435770839675120839354094787060391883730711261791297824186054805416131439720763901550799288089689622987994255935318993261264314381189993846263857405211846708413943472880559934185117512045945683346297316949977557815065993477767115228163128127315859057930019902635998272639070505941430810173623880369325301195395424369540441377810922326296157185793508825473802702352141574782464393405226575372009384798916126122970489662369239086981774576321256906285342673780043613170843069007778565475945468714013776201151567532429903688392966064090917845068219845519707680331645241037711100763452868465238766772301186122858187696231888170882450043966423863680314636024969434586069158616440675074002656176649081155117593225426178916294954979699945074532091083492582327692618738131329546251497758563707035165775920656264462815172269845135179330769861348290824953738459660700104859984373962525747594892604066575726647433439528421600894685727709855811024607440495934931325208163607367448844137937199449842761214237449222694510168198836559797543669228561653454391863152910393749565771677838471885144341910028452325320540296604211678189963985752849977802603733706621481802617993575956727488787903421069079931920322227234242862240084378465074902033212280057340741465848207212415607964590642086843789787675555019349875316553077073119878662790379002889169877959907840108316183223011668615927750240449291040560396578092053671483952620216398916343897478562266213963867193390688262007620311334689062139429865362847537361361050424815252670571687514286152312299257682570577716639762545384919294351512942547858895243646052024848835069539896077030483428704366316585083129327467730689325916223954174639801045140195518845760922455065904350213458517578463826183721634396077113274111050021092707947493966458653471249544007571453115331701798235588569827124696674354878350854580491501045154225927583497680297662064284221297741843263739241009506034936505637331424392021211297492780960731501807351808008829735870215639002909906323741508394014089678511699594779624616656834012055447948981382798307522127448576770351250051436059263462130400125712903139264990958384683120774947618560566140656860480818943442029425861628553466343444598522530376381252318894318835584573592818925216113661474706167862417821672902275109549863102798985998189432877852872338330693737413916428131353721057280383085099751221840715709697031656521091226300402141135470733396559575695564735255737159403589699435659533274172077942792754653401193586791494374850782748335434570575525300135393143919364329789052164022591373325099088555048851069042601221208205253321577610960014546423089934103403370876570483007618893001858827253217495283044615612934607806127259559612027464113594545174013867580427149658311792291192814625635222408324986782570279792676704327602725605655470912160000345384321491711231934696433920495101309504010936075515496966802137470310970867633465782161574949797492321605794769476229890035873916270856948576675095633338691782233198072892897517629855991265450818913840527053981495604058679601116863379911131760097128457045834141785713633542968689545309567481421611666664742021346411065428942545397938097253491994511986865623932313908085161185510661465759925689969446025174346805577721965399555225954186765754360871212338185269779203396250827355773498626214222097182796136448315947552305691466943558273264660207551438782738961364452024130949925880578968031248466076305765005757774410268328916191815434339618827253061935210652120144761591985129238035975500545932294265700218165424753330387280263312220149572938570597275843966044417356116102906104617338528341425480523899301439024452535738330527124370115425474894325621617623075442153295895710528593256553061548331578136147500823960241868953864812119409110507709778518713945304877160726272889585767035583016958757777236245740186183770681159012611098663626932447536394216925264757300933325259819456348475320192481005183079388246968537216934789609654344768301026621981512252232956121251668306719757078242591275690590381156575405111178711762802770484968277695671833164397683441638527951395128674784309543958002858437272558017753098980686053521231787781819906837787412493825230399337350690990362684042771909600073382679318915247472013169600451875120852611116072383517792870102787035837707057824032337940595406487778927895841000391144105805171703460397140720210387653306916121671659407586268875555019865744661128336451831529810477063992170740277672984911990358049188075979516006957978071243544750526584076739061361626093307845918907662347519441749436363198031241265662434886709930716425758012436844688593458902897363895313194412787859392041598687021275861268203155482712638332261865651328270318259718903321850038609731913550147884811793043107183691927101630849745366322322685772179449146892599008116893341826854750578152761078313161779979746650232847592316790641865805119293816543970920018686907863377768313386496080762721310722896344236048014310915572346591945173265662583727983030464752465286243035237810004787151692522667359873395868101822051474770781788550150382319909802115789450687758591920351322708543314285727823908721114794570733763439911110953547165683057156702829716026506604811883068748665181120073493098811148836933385421259168448183364702568315382987678652639373259635445169284027765498606412054417581228370649456453846351592075839121854188986103056284140925106656930972688307343073010234173389810284105181496510183390195140924925889670501688599247424676887006479907352779342567208125451180755356658703791836552607805852321783947577436462486815961982183684317224860009822295365980688562273839467764125551076672363542114692769266577657941470978304634196766577246908944336071325418564325568692617115696034729721341626366064286694827657221132625810601748788984997713094076571998803237048543565830827176973949100045739670655125091195048469476186199898724593287226245720666307573112223939298188823999992789038088210830241538342789647189549021865422041801571028682717697111723265991044823888745004135708952978461950330882294401669555446341645704071684492135761526103149043988529435495281289985937468478611049566017185736603242143213902416151801248548136292329226956205825676437421908119942889748179112940040130008094911364009968391190521212658443495021791606414723481222054476999082336802124234592404719763324608230370696671984311089249606601703139641386438746723526672534138172333497733482088584653376049780340794833494910620657157602030694459298077805299965842348871588359967396367543714703610475536819738791340194232628643248883201173760066930293895476568348004724583201541469372153328681011936372960800824728563212358847279139362895578530380070646625469532128176213466079853651575001125925976630830013817041775806510405443865666144073177347311679949352397315146032000761189618860054608341507009926692506555215950009810418771329784470785426024781661961921257073434126463313698730798215039624186362788529321342380961130228262900535278414044762068338584524638392267085284712729522207366278796312783319262020869258111737519581346794960043825440708603294331251139928820250453466670292379308726485477908363894545673612852202227844363068763303627403709079785748974522180593834299345549945188216963453413113057825370064591347195959543133360065754822653877417251780189167016664832944417909880260314365760134416675631039238787263137163344184448412236190081433825489506096436825629485058127766405477370441651357173003880628220528269616216998993637967966502648578122668835028348973073189090488806810923117491213815077049498653838146663095207410929836841328638850875637479701750781575013794634900558934151140930514372517585777248757883375619762161876171301763694774347050550605981667914512489613381636104397576012337541685699404931328443655880984431170638932051726487949431956631484943386411759161616657206898686257616084351593233170238811223604683437561894494564701152927821806491884017641232651185415461848106092340306348380157733990520161895657126264180634400285692404997597751504422210334645215316178123962307539678075420743147098289755077855374096159043892301614971941481553382674051396015674877352210342277095602146496776513917024554333606407441134093281009545056731557276531034275299785791549649013696976662798212091991039481750017778091891938673949554614628560213089511248491877521125057503356140223815755126293379956354904199103469903913513860261016348091435394364693181073594929594574559538098518114891041279464705912905317196070809729235906722790593206507620401256297666512000010581301913647561045628132443971109137033668852868421877195895327282828746362622654581851275397886969311941026593144588252157423340863856286709280851678188391958666862405885756715029115140220139504296068874643567219618316365565039350118414086501904934165051881320877174130579420490401929188166870118117388782917198169284161585972037302061531475693408563693415291991877548688039863401493260080436328265079458926750872606380352410398778974520717461948612059370489778119600911687663646394767004054026450040648263773922574901323125800003442167652890346135115055705356783169750936004372825002860820542924964044397793552364515561115424610922683101998311998819238060148071008468822839331503511931385984497166187533559445982242571532315544232760959341192788101169208398873485506424518123849768765399557344629146052741769196658651377327049454326120326537320183939542013978887709935077939085796801026984807547522667984505054452986618025985935965161958454919484649925151547023321297663419642760551935797292707690514253412030392428243760002382674292508507710194922787863516597708000095108590945223452790769866944454314776674489500556887928719557943993109889142175295810001099219085589206291661067992004319137424532723224703733084033633906905507940602833780973657464147291328173236286372362769675920880513291010746384472327765467578519873766921406607307975740204868163452374672521446176686974096602375446048089126623680262435765934552980842380434136107627211636540659568144027367229596689379607104801903814110798202398449952813010443769369094276140249027242265417709817664642167300736322216314361237245340193382970347520134398091403607397213632535071521473175061285891052564463353865318471141090063946064316531272684666052239024523237509984029461437043490842677226609493885635242998633999499210084633073765150878261176296100266271417778997179597145203473534596464044938112786210063379680109419196674223794851996461556940837597747247016942225912941357654884084740971078034269065776822950046666923092694687192195620880234105819096932934796138200146924744620272418473927375589206338350374090460991190869925360172330004518178108503808370709165053624278977784270180360427047447686046269867023301044908890535494870952586294459792835025219108265689560686741818405221236253722955734969710200924085562041088294479139185499089842298079849053543272817250627358056553919979304202951050486667350132330301752117346578457234771373134349213120940251186163788630559587817485870528479051861237490683582782059041066541982346754364760672669675482470245316141418365298367716243901169800917645127996321386710126020281556277907354169152363747233861700703683540452864204859807744536340916787051728240057528198532675947129983055937779163408176801207004241601116716667146256236650030610180165507155588685678498983756560735447649772298809464859433044643895232020587671502304297360405033574601676921229550743484083140309977184887730521147018092830808698000520889575056891565861228084414264575648330790450732583663964468677522870694508382307244842747422856336003387869073041550366366043911827159196834805519598472291023885098247555007022261771102084681246085696626873855292546129781470767339079609336273408222988272767475610840305120857196710177074367506112293397476268831028438296504070181870340246606657934188957923213433220221263952551328592846759198019415385670491060352283516722393553558814977977214878740902816813023175381733455480754639402847794080548554784548920687071194623708787564817715662605265178109492729738787557867259302317836668103485917293495497550322397980771632620671722123491962118608099704119406415877718693140024177083348991359229345252697552892431776858052536194250719764483491201888128649693744192091300473589045391610261992800922865987852887573210264964945778586266771646909588040696535587814876789163052361540057832629004856778062508104457813841519122592578824148094199812933814237659455405858590505050668266087960038225630519883436899501144592852379177501272846964949032807451974115631012125878068994344030430536828078947454097199442592078884838672933387963314947935769105664982473369894699797193081196589323095011346763270775769027687650790477901099074602299817861180412655986088320108684049116541686958137016097295611319550010563054240720922676929393027914532453902031275239812796651881853876585848343158751302269201432972507797601194336333583992291918160035288171320838749325994930112194843309760120269640423864349122184916578904761107356659937222258492406229960892421078490110765823681691181655479210760571025548790954331963509659999112699241412121847376606281793835703223122598536430359397953797634935169739974736940760569949991657099203771206112384728332096077653945448975073471561631262712336613125682113451614857225781588312469333408864094879274386273550928057136907573463885895651676623395735782104473409403844334866224553804685173781964540961582807591803924338830103620799227573543277831691419317834280504738782962807966357032387939754002012819805737503609356242470350713005077411066461336215229304926904836382508422011764225487030940197241828306355442205458361324581571595304437836782431514478370858441405131342103873962156204670746722943315671115154974956026318616481957236317158257967485259798889276006230007698905110547119180400064166776080964327684114162298374773417007429825929037261910229003387140977695985381671321461993045815682451429734979405406621498540549656117671678464467233168957590919564423685413853316270381407407428237883258313354421606465495398638150523907031981254577246277182118246786668083807173378264383483362779228901228435608268926142930548724414009489322236272384947712202756840829771648259173746573171940306075449612126274254825984546955189664552851695687159282409485572053994092672882191302672070439491888438607686834535362072401453030686272466648787684962860362425284057129888125856158868296092076873158594132042914455554370225424016723954848653103026813808407354392944521960010475464924494042946865860329860696189138651558572125162259499853570032268916657341433912217076534158123493994105589898922036592398039158669343698041401302105258963985920648712729032966477104603089871527419563831313533740819273140280521192971667485224173725461395978978301126259014757165565100428211145398029897605392759280603189969137811584661931992075023724546589188991560969076911584323662793424716645050402951249886997297752173612472356799854624152034275582975683236526159499870113926008779278377631592002864829854530503162882833784240808016945412887392084035884622952046531020659043752046980294374824744890853046619348618610213951439835506359209802862375239573570714741706163965511084728150820184788381620004995158044042614675986798858274938625381754857270651664178765721266725685384717652779751496301730214035251596772502138955060985543757452204528831313474352326540435496566302136479968951885197850138961536548491067511250134448894144036413345966143711581858769752692784163299489049109085533441047704700714269347999370748009337173943647371940893249508195299526193692996520540603987186278074181461543786705168792624910220492995314425923576940018262361150665890544095416677144131251362387019711618874863826542319820991344956859919830258438813584852930951274791554158187103358742395540462645842034522104277272775949929218397974972956147069996683494682027136211274551661446866347711740450153898269776017333201303710432710566126704521237224720842967637209114035074655332498061962602859128502954583992203567761986531612017313505445797699926749049746658204031184532230807083609145049900786855517906143394356203530149607037576734512549693288191734650251341541445098955678906588228008763203461912369116097440041736460076911260252572682947172708394154852628708691771024131142237338308305069596101786542172047473060563027518982041251107630468141855973389361252646016175688266894057840121874064513324474805478652968640326652137773316061427906351748873378287022432228826157800989505755512212836633077457088795886505296866699411716462673483825991858011273780535722160563878585261757583926915889993793619058292316107794408181463803665210460078154321664152304848647007161132358403564291366136156036766011727604565180668582461748953798061626070050966566262336707863243725480611213483053966955615445177103098992746697191987588065189958537881231005533926159435095024052404334915629737832301112011438055340436550411873620957187109538641936286597124107826066162646231071116792987080891552696284738238185680440743633533005151546479231218425053695416048901418427520468824725094041702546179703196029440323306026738803757005244740711918634627943512386856574242093394783078320070747075052219472524851973254725419694811345931068192476688831446583450835945252574031162014274567686010194461012884968529239696464382388582269234707897559977598442208074005500640117331874034311370100510414802356275417954998147973415323881110435710612705904294300922624955788708796783053424466036273826110172046936780989077522108559090563057505344904508007649423113830142182976474015201574789337704173021012212234224638030068212075170063431045703781970718242422203918676171316820675651346784433368851904086588920653130970562330088584530167156335707370872430795321191277056224535503336324646742998797119556722257679617723139130118493098858819658590607784909878857032979069962104226920536625574886497632364290282020992310736250749442757263612533807315335708419113928904170380756253849643849033525230759897605565496923774923111955511403084915866855563947508268829588180364309422405233411475704033676669047963375410540113730806994618085681111349713116248507455348691187679142740205875477453337724785176587593581535712848931741741107377261029332233556344369216719244634039641185795466432076661530655240688577891700395209902930106035047652107080605950683952999385661127137465945349300783315715253638502365022825403565669307383652674735291713086313820714121779362965917958477007322168820322762831466075503511660665420129833166603211308375195233344941567362884472384683623749622383285787196436961855991335605390893090678419961582542303684866603469241479335335823295739009376383075971836908652367821121718526350381362725489923053972154120524553971768226060402590684798448890855949261323142548636333523031607818768748836695285741436250663142388101690092032144376490704348106535734071875107053096833895538409561770132359178387025646879105285820835825229486030495022295131696908461339113252473017958453698033698099073487371418298592689041551366558643479826200727263077608829391496892157889223081519454950782086409346468015727518051751080080218051462810977713073341028336764250768955893532397037361036561009060109423073244611278738970442539580949180632497656297611174930588805740351569503740392341433496525956163504546986586066418707138394976925125450336479440785948172152069378870644050416071148281557087223654894300259635602293594860948588460411079646430332774048159211602783223292959492976071517092510798359904535470859263495962920473019920938915341816186013533472015909426708241562585536721732295276366827790398278668143433187035080844108631553759135923095542201711386454344024948173503025747580394675822826880374513126009169601375820074305404465640313591757329024984543915793465442794538078742725293952638751138568496403948527725888263860606684946617190958156490399343744635563382349021378052061471622435722125978007855914977693652763991827333266963413346250679361248527437292819096238351261391919187854352333544118796920430664447918821364043835974935515581116204935877607408807224699761435005194355895005765826056640721006908056123090546411020582501692649553931908103130358977184449603806049235732239074430449324792325109832394238927297345934218016431438943237780447927801830704058042732311078810828912846672560225761604241233054521103499941823885222004449065070945914844468266603849082416963936516284839873443041454937830058484450671964544596749593664280866681475519804961886400125644156972250594212225326626829280402699336895340427740235972571321527465487378351897565589144607729649616636862413632968316005065044075363325608061706725863592772252200367817529254153455034741005072156772091823599469728553047514889984487265138360651276216730271881928066453824393232296743718757169358096617712326835786246527287801172889655407682490370383910496533044604129791684935074745965919265264983620769215838647976305463745144211609181335821449487634264730480259092065401357301680669781731150224804750346856762691668159557882573025408115523293018597823942682863743762581244002165953688892003032900828147715233040778614521202134183802416582896290351635043605177405624444191165905723650476735357493605457094153879347752132114777160007027717721397010091394721826080054802367420208963059938050339864039844431731398630987855976330119820427996617913751485675644351830463934210010171765030603359738020322050405819427007100905697268209080567928581652276165302130809073697145860478942818351363250391848307912624597533736298624450788070393676213538470163610307977200286661892325936038083229257940311017631298279652625837795191681062912329279528093179300338539201823629542874966714795652898355076482764135758974349208942698594792417739660175546574131247430884279453742992848707237567459260526578650878471636982000168560381022528315699567265245064421053434351658947670274296321155681271498783870175123181408725086679287568501659397783791614954776437958741766541350986872822922083304085228462531991858182621767157054111398717839204983149463857160408343203301377101600838290529143489104374342884208618635942165462238455481946300555121872093464456224461340353748248115371590032056261686238458168428410224515665012090765097597722595114266920092458516807018702027386837014389829956502930212282449255873398231379978827990546805909205661202667349327893242552607370130919939871524423732846026630669192141898441262850554858030973918924143605499571789847393664801157059630030925716123208081757876393838525721977662310715420628518517936783141847252299474605428564029326956070472850009454998686453796438163202069780458268033955285046236024975916336462189765571314294341617466093639223202590340665852564418314860502740904541235435700711020271563691344261882912746008134653408056575402706707918333792053310882870572147114786625577083509578107377330613861991681981449338290029168253480451568394134989459844496522114633258967252305969849736687473975828187743576396978218535247060906331816153525818716209982265585779749995468851252726679855119550858165553611250223336780758647832944077445990575869189624552874635925315036890072069340018124142688156161494178787122249892526411746198550274034691629562559111173383032374802247209224934283442429864408319459552201290261378271687243190432815412708930624637041465258480909837691627200390214822706844062815903697715852432906028377910143949448341317879178913210539168524670645227463212563417016387290523919142559397342691044201931000768072060712010963539325365398050432611660602107547846787368234427424840222571257856803838955461412701851134197671754743467016546469769744855179661903913532876077486990493115340567785807914777991290290602399484719696854437865389846999728163730741515552228719534585026175958923323693692287930515100733701897906312704027760937352168433453220646347515370044393421860294180240682072601485758543287332813085449470026769901517783230993669230560856815905313446460423087136660636459396900993361384939710901580179143322605493460927281185287651386627598008758006812076134687412066052133057156340938208394657406010438673647007308826783586249417043001001689208488950738042909325432292934027371085825352163261367824051359365675614621407393369687779546984409465551189315814830096792532353026494100986332963741205588840000755228559265527522861552949368536815460447833451029227362807437261420666817909599120048351720920861182420460378010444058511629313147440780253230857563263449066850580232214006279842654645222224837264230312560368828767377696556222963360443226516855129343578084684150983680163425569939430950077281205364014676561823089118149687939670247155836976078668581423584040324179618301271045350573196825981644436284245736673385747024800799613471484621319319081061948238867086261672745984684824478689194470959515887624944826849589593468152084955879960571011106312964910420054280305611711780315758818725877706691921179832009004280386686097416174303832676530673008862998781460149406703283946992896926728240299783601479994173805570427208654421371852853470735151127569303173516624599683765712585157578387558015116701976064503709849155168092798083530291304571222192665115225096932649775984153712766204188031988657623665863088943192141399080263569397931709425660900558401821875550151513890766951873313798860681304175166403231440383946256490536755922099664852769619016669777926993422150418202547325464691292445977563826090089524917574566897634808922045273635972207737945895730417952888043202759256625104641969101173813030789641053302838118659870056931872849298944849488185358949162305485287625009235693805949149520102086431764322828033666841872528423050626405907134330079391355315359301206580752996144742115777717029424554355320312355174894577847285573917538364187179870471543641853652250325698449807315941364574697461225615369809352157681800402229464604059096699144847068837334455210382143651231577617442183718395518825806103211437705408391013649127930926339004077355262016799636932156604283844781888466562100522487768172987958574712529656701702887642621912177674234756903824176455811523734421374372334913974778741713682130517974529402406188690390373149359320512095185875475847155554220129473470759297885441106810697492935408185771540890756365531602560062051259485292383393525145455216472765388711385328179688261893355167636781351450493941593810145130142201316975133138930259250875546327116073474283363283800453443500255470527960469482433906129187355093539032076528650519533397064339809305817987605693437661530112929464916619124548402800172151968362512656561779945234007284013121868598760484526977155042109310135953987995895817269531133910175186839221207156373872935611755472673402567691226427039115542512084514441541808123219764184856566908204271129745429896795362349249448548085630891403053595808406019161831666349916891780803333686812462342841881547577519016340938707490610216322614940535498234178864748743580261346612141546242988562439420563357911628933801387241130384269709234184207392130245313742328230063335109560625248339865676958168179438239624442668788842916071553302816125075984715257590837303415280409607740326223959108831086336458068293085724651977266739404685326390000616941732657910068611572146140148960438942052317800806258455978548384180367251977062601306282442111792973846615166039904258505823687522521119582742361607898432575595096414414525082600218127679247613671746181146454900883109153422079336109371796127518665949156342497554664297585740628201237960134209372811992398124925551662485412610457936212380368405567946636644105095228781577366071040249644395655081381245419397716790001439586540276965826850262484453301864723550521245583990546360914600396248334675846861230935831557798131684295041401133666345198059799021011727467456797284921122007704471410820720390560862382684480187924318017010742449128551438567399245002494977987984650111885543373172121279501424345555093745180811845810435036113979932743767737480193638473944366005095740519257252417788516821994880228021046761505917349398546241154112067013517150649009292050396733136526557032119355017231013910840843078402450214174021907722833708930853086876846234760914369338757393576526439797755194850761232395594506088405500596173685908736265128034317212381273881971787333406409832442939790344963088104009377974788393210929088953374356217075120343903886010714076408038356191351582763577607387566134116077778010475399951566830461109584806210105283236773581933316211074969087430366703425134588772545437373051362015950197988044530128355939427177265234199214285085386914680577568852588378445781309796810404442293474870494591264959744583745728458526721065999175360909913919164302836293770318773282259766616224036847774206623661170194483825458068870081358746150109566641718826112632144949379915894820773687438749863028933718933348850806632624418301712436690838689784103190410712846751353467990483366998266086905103674075883461861137223690070095482301498551668137193755184654185828973522471338799062086485517767845823895134301463808624760854687448776531650884786015953615811523057472041938236230142156004928201473636208334504614471097859345944612736849578418851892038471588082264294098714606685417349192994814839233719214505917589161424938545231870972262567957561024070550864660051627539495653799209846862459664395079314676214915062210000136070998792575627908029068965989479331774065812482879654401110903124270805016278433108539842140889619879210778776263958973548178729420822600497134802744749953174873107503852542087453196394323402460081460705763183683074512903410919163287627332965641713830003752922203303259599792233203619605793347323342461616787846947167382661063018753205485387990563164873145640209848691918076954872791001032941372844453432614016886892866332817819068451146411827862748663644529094187454978604131687614854166147159281343738531933452557852801759581904151842199153771512403372941435823093730348105633832712301664051209081995888331684655631459456696883714827228643946599266503258217905140518322534666041196993427172832384208062592274973938787902010496316929329317407926100304153755979119710242432288888051090894455021513139655303278941280740888221853900111510186939471121012840273912902535542942302107847394739551609489642096024860355867034436770519524285002597124447394802892403550489401249626253329695089258204008951620302196426102091652054264079810293237116703869700659483601627354915893562753443623346189834814967512972327145597322682075007645799163612839269134311510959875751622471425528645642731716117869878858364247403096026732471833772833395107521385457233179537033111104514527299330491147351301443815537508397563241742705069322701289071400035125850271831226966495824374232794781899267625464439545468146362890272032017086763937151811243966014519947562961564027517903122660753959094960807815968532739658503264938406273244403926768557262426181545484004791863298928125239915018401731094821918804778464522544146465002862710434365357340512719216378686448821241609720086641939590246168581397006354055584612741836717245385074813464599132662948813454294219097670183585743716783096546129220059258830166147458335422203411252245489874005159526792420083449665390921464601393053602643862502034977568160700483628218054677297441402446580203497035905636382194924747240294964237490242646312494816126363370346188367377367854239036368248878466173869908741066409558405847622151950997941486191052114005000285891562684789954616417439627475343502562981103747314197354171760172001095327275390747881337408635772062900253949824267926265430803773817919398019825987683604050485475830335960602322779780343045164956684459305656834363849866369198727694494962584043149361030504547216525381039921968414345122354971760338684905011554761362938333274145808198728389768005184110994386134240364484456827977810124742156006547599970649736857615857893868016108451052287134940977925216455500453704303710297510307362593955066035683955052082892281240616320201865320585225422639863690915568516945087176038185743062623103750399356919688894356906765914915799914923048082205685780653460706133815397979400014833306957430318560586123510034845308860211588137723549713255158927350726563000086360267130341410557009201306951185743979443314332063322497974300753869352513883337905754314039243947551143411150702731676269043131857857858826171565134411233439186425949174872292929846117265240224914153628421972501886240824331240992285565888324858289972189032902424867611931508319017663030410915066184159589486905814901738300523358224755256028227444337211760734494770202165361456170198955776667382295736884464499206407492191037167538091885156483398955191642600038574029299262648578311965809241906175742952122387382936672872783274607083825359336998483159878294802778128131035752886130492285385029523448284987179355716180632880207667990388174503577338790152456132796932965761369791710339967870976799911614888496692811041460551995761161983575746929620697447252945888985160877025088542575142160555251054914126402735795100877922528197138442070625262452538099973762475700196525136303834489398912448004004585406848846028902934031742441605456199608422599515777750376481314930996879390481747052984826883714289839482651795450987227138003760741498147978114197248320462769792530142398025439353405273368317009172645154939077861766346188056968172114610370852650172643959963164038601215542064932995602093519624828078295745521829160232101580012196421569956769049004267240315467237788898938356979577192650888226963470212043281617560660370342764060538317589146084793012771181068820941239501162433452663470326043061022311252617331529439779548125285698782472898234261582483679156760491945430508230620970787828835292290447648971731612357457644615626136857785607633090526220556279398015678694986760639575201111436314382929288377989780336580343542326754596556462055959373144696060463191345486784490318620936390053775805748407218661794702092997004725496013477901733804313499976614083720594148832483380376639681065864036302514444859320797833205817890539953317802298214878717854548825814185554943739511466496528487414251224764905127738796329402793394431876668766205524422473528739183616981873660443161737646555758206954356422408717567932612855705557739692002920320597683679349434356494107127519581402639783841929428504130685204866154859390318251054271026480172019507633483611033668669196921386451766013753917878848097425262522518951046238838767799392042641818962285744255331989388786907189992144138382669492898215531905119412185380427370075112019692577569377655261006311790110046784793731415408620980249135106345190013802425011891302556304916873969437027545778939930904362837405999020218673672228694106573385221853784725929661017266894897454665515662406275923827112405360501583644400759090974310543068240166060480255935486868318363589710868005044253323807335874577506154447338988221625394475711647402679145643401234783768590378598038518625298464525471161503962673125848711798363346813489123342476252854324799725483676569428117854332701243639682117531567129384521976477588027240714141369466175304492196271438348030614434771272468596955384783643609220314530365769042119777071568901255864440226877289674569415846450895141421448245086397804946196053209019000446227220999254797695197026669545392648142888382114862640619159186329582927472674991379012305785710023168189075985152332329002361025501714322255653147286659163385264958157116296531870951994547813151164791858343897723185538767777778898977360491226008899992036396312525352913673425247763874410423056470171412008766175590658275622515856480643858845024698053533394586404603164250631843348805193300967621309718381822481687767429842125168451008800823309475580633289710272184652621860062077608482399081680188946110161281031905592500240059443043283688816297813339684675507948048032226445919549364900235695538260850113757921008550993698669251341865299147674566951783572331601952831196254287706679033250617817402942377843098391140519475096924734997945172335255968572356933189624564726726450492437519466635592380218336062600198027023462321882721943133852732641552998138220143852162687090699643614328510682910736336323659253920106030268454591785848843182468127562161414698240120779475907464280050904680512666958417859824140795073050079449376930911414388521413154385888263043694832798902871718057023698737707115983599928163859459940107421204999571263401311380652358636262879570261299001184474646792075460728667626265969460421844364926291873544395164271043530609926600031780915137893197589843214438842755348018584845657465070583111640191953997224944284365616575129606323047081203934506648605402847094938030446170508854505965386933182069873932975703863092211131958392327044322212231952726357155731342429545440028343618167734960133136537448691367233662626982529687010265049951802432696928831053784865417434835233789675335805360903207680859085888105052684216450858666442800471081784342660531240386413903783077080427234453301384940171407259363448969177539654811167164860879071673494395800185189069951488174745974545503208309671508641023447231094553803474596876998090098043795057313517422066333441307065784830223567434491260180387983383938833460282094865776411330623850390473862522801239142867587875636944505300347125361610994495617221950659940625751136022767121481839657242680796604998891949218798449535112902815363058676281893328413439806106994344976390063509638909488014257823133756679045773261521692445215616767942329330294693892123998964047203068549093989415614976129687296557338610141264998315788821996607005719244808084417324168658170608848322107910428057677891316082923501462286812490075281264678688506247814096443555714671068033751775855421568701952437450437078387053338223740154716799977133801995636381794158988712628916923607571381392311143087237707133362041692657640072073084370950199200133076786293922079626896510099945896395563354032802490301509360182597320918855922740845265085329740152562892267494824573863243499532143237353631090293677326028337705756819564543473134689563420759179187823784426917404615764422476415342456998510522477649772731546526179227697598306117223489839035279690068132157288271314013698890902687338049908132189447637810489390893272719910875156272923307903445325853429228111486363663722440365003751160083023056042448802600092551225916015753383956400900795085376824182453179541050954161375862045668812701315398802796739432346356156661857545615301644590858281783051126953824529910274409596042423448309961645213578586637854737407402506429528966400777061971083077809545583395794960554768877948987328207049596987616031390430163404525348225306210073182813864975309546300786262690838398697420801846078643196479637576451195969047932778484732977059944830607771444488672994623749204710415600791943546270984418198796764594876594871663224445247627860777942672189194784132917929934599821621730904205012246384230630813698216966202101857136151796861411224946864833933209644350048491763180026376152834482525501502799926717614874001862527533137143450708509685261442448990886093392559250578428496446003078901716379781373273789983859589833561534483233859009339262291730111642470145806782027790697738047811072050926449474496415518992442929743292129597247228792751099204936329742761362825468677653016676831806495717310429337450192511300363353836614743862286212996101938047883685218053237993881180898639797839838296653561557765720780079596036831284096518984519783135242473298890241613843998356452804050556257483532012350991567927364711446952260313590817385436326384947045248066777562465495730106853991297842361752960979368250267316051444129823808123262394938030526861909310834548263019410436375214617147909588933117708720671250922141238140328979270230272188622066788008062101425728235205895285193480636175247158969426615606198033640796541327160095002111895925380408070552479194667695135172993487305237405951795692253491050792578342223881593528033381719439839703857693006601335245866985409299702254729362354573655202190984875442889883903016263195495269409354409924978768881871121772331676885159968596976021093134884116841166897798729935543248139586358792159283010312821142743651750560103012318167638523563282848130563687678042436762878956726504205819956267325653974413019184234716724686921063247945181943890495009116215011365547923923507558067616075219593841269801128081592416080273644585457386882278135058269764844545478585417883391157590541487496406557638501711585994924607789436139813530395597594232660711420841981717949394152130059316335341735848982843459327432520967543092122977630270947818431989847543403345815362337398869489971164106907706869353466928212512047733473475398703048233699874726310442981298486219119756595689671485852839105789298056886736669212120842542578884194574229305600639072252102882557050362798141120815920554646321884195430704885190707617646856084728530600524803507661468359206964899699052719716308290599006409405522889507098241762877658031954013482596026965834348765936757546705617794703280420495050658301248051919913239667039414184516465411980821431831672750737012764717708017245732585089647133037889087074113524372867453812493258245276850862985893201070834514310129743187323497732880848447056843867053223117757851259053378503394513367487808785072796546498288943628091622341339644493767644461294082469148961786580967710060862108682729826478983562622812952624100886075318311694960246504939102809504653092804229155975745111335176642659731877318019023537957073167903401057779626683730309449612638625179484364775936964794129936347206014072062257025737906965727974174566540688942279837378521380256321391329314561317671014101834825353609793583826779900626828715810882989656871869535115215786084238555209110012224306811361127847218252560222696060239192957690219728640189787188564139755143800337259133315775039362937303398948560836099212963982475858708648017256715633787091204260422067761512479430552257590619844112092168574157147452428842960501879114036906889507195189228667278853145234276632299865455077094055365266184685370978208578994025205783782345517434549904947153705436111469310117021860259262133214962064623810938154499499276105496060911872241781792174280189998936835685741857849740290429597306837537732328480687609382828198086579931878791964970083050958358650925691357351371193086572212578915974264559897688558698720886350492116659536540954514699707044019946012559535770187716529994039105638298038822495872344870667211382021260948553768124572469241324666175676195490624772592676778114834015266594929670458788884053585225823312743443018796533143781908253152276501425342895989145295741610696407667224855576804890696748227711751531055432572873958876007458128477862317160874031837370294753133998556055187950973455469873681155934832094069803374594954700460886712902384708386610124082208633666189666015236990385321896122262823981960665745882873252866308934991844061638485028470221309227102246283780075211097207997423627906179948661959108988145438528039257240457924658071480204774949635707247214571348673886771362861593724687217014234710387267919046616470642106497342872382564146587643862466964771084515690803921093338026461911678833334313545217577198957945161782020079328801462597623736272322536403424402940496224634849986737816956513711910555569371591503738875086513891150358146306137881168785869328355786769458052558017949404480551398219141986380269995605657061869156058804934532882032352841104336129878824974525076530339767140697107652119660115840341302541614825709048490170064894053563578453014634544357467555355075720341351204760850706091888224891930251987851625997262124695418093034593211814259630715604611482519456100128986442086247233511215685584889201755769561570698117651892501128167750539622212221994674056999064468932357975656347036018657247609225555579363363746964661959623863664393769555127995552045018531835687393613118131125779635380174439151913353900018170621899996689132804986260586109324193914477390436399817489759647009855359258811361058137362862343606869039570428751742510613829873193637483701125323187635007422548654491872460863372302416295591323115135414513284263683255380209053407997184886145954781481458065282506244523698951116124093468352166849925469188672385431084794103973676587389658009799656702328223351319719829366304593137861520084750755178233530757339560731499233485572849634873239974685915190231883866866205650317517182924117605818080140458610810287401714331229740310027942705556043216141139935508318757391695706444183408599117735356897766073928947307131767393109374970601050949486980349230654902041137186229784664743309928921301385499826003428028714990621807002487532099950091251030993547908629265416448959669616234202594983684982606161503509232425650061703550279975378688566075175130788565600730056391857331495631443556197353954917311085720056257764335989121403807272654174135191030236708548793617761255134286690255958634268096974685565257492715615271978260544725081695220549628782796310451078832741764032507095077606189360568348793041536646078658799137795587484333021236386480526103955754550569861497889796990384109963539327241578367459522866303665856028931673705380404884354003303990664408395141132758107817978395137946458023081694114149392153452686897954500237791957194793492088802147450845474826222149628800702179371488076075611178777666801736805722177441540999357297706943188721945519908931388422558882934122367557685971550104124552972064821870778967916708572644736324394415366572360610662648663645963931706306726765500299521802928814940561190046974093684456000824079118885085060221366190801727186298131894494054579139434084067674023151037384606325507765503305077094125492450013098008163807562270907327486604181737620985109811023032782156183582007369846883489005154142458757830399990583673096255924288592468341778992462706871760606806980957668282003212871476046339654509272030868143859473832826733506616994514598380352306315422972824455727738630792117572100221172985023980371488437392909478185286706081820659580788549238376482704778088023855037554246889663237409528001002100470151983280943169823918510125844791466835981937917501209815102288830449247844298808101137082989071969332989257480577052350333490614082571239133385941029569878460953150051419113705229478913556776684077721263809332683304951474841185964770854855860506768951548375977859726238535269548154121325696955754162802538885153915440954093601790925030437131508515044729761259707706680665725879556622876796842626576329009407218226190459011514216237587095098604524942818756055361760135047789023712831463645700666289350542904938190537671152658623366095439352973675637812793278827100198608838739673091254683118211442743219282063935015652046473152694029047336769532036220724722447749104171033904061601476510669735689128181100132444854571634921568529918681500751990196888761779216576013155417703892483365278719952341618532369637913215265294565397108489884671882055041334549754505393307257706643574194015824496077853549891321986583601884928424740910303639445908668007295550237614305916808230824797364783538162943935537045109112482841061763611118164093697879860153846694535073245881672726452493698020245221585125373560793916767666792542393796309494560608329418687127957448981226842042402971182287105895208466366266157055122417271233809682003890876096542928610537390868373253660057516052005870103025878959098168455390398650870128427304376015971601574400831872712578416490357440596686533215189975741273712459412073666265736085291121558289377139746898015550853032235272938551533318389552032337773363122976621972006678533761978031638743646394366754716867312245315479872107633222712809873175970121291614296953288265079878527928293823633906137980692201643250395245606652304032224835957899401590414418084628116359354934253043294296201834493155887487091544108457895172485338748290907988745856647621822518510338251272136450255219632196714431809207950820012009680649983408322127520021789529002369917791366210728125479562623152206082871347614017266923797092995381524414670985518431337341340573822626637461707674259111485251294409508352126700433265621078196976112438643596553587003837065390441459999074703262832191462941135014062901374949795656627300736324347078600891489860119785742957341955952453547666828325075621033767681002795540266153666576266770690024347367506171092147157095154232439030775058791412780826896377500408408887819160818395426278450677929806274296404327325961980208802066778120072880739473814619317096969599256030062031579612364743838347248645667630904836453127496187963602449276125493877530443571840655459947781142062121207795347039883530024611563684603891402614574299539544321870980097002013241465237404651157044812363200616164674060943988140236433271845474433407693348429989326335993852011334523847597814747722266522110470793599341993299231151262466825980094173393321233185023738236017446709835526656256331589672049699716119855507925526189017554145428063872683746014252505618107381150894842684676473002636404357284041193482960468994713295669956303795730086236642988183496766805472255849330005097803055811936898075110299568516902998412559884151928547801171117125852197358736672042608316321584200146979376811073357572621958847805632820216006067375762172982117501879695947585074078038930328619671901344773058299694182247330781375352872544364005950510310394720748637923918226516965244015442489485223147869061169248526898966079004286584287171320878698913323328793475445948115209335529245111265210610604298310244001618414120083335933829818700012665845149612761132238871282794903989965196439262311513471299293330255328497062944828652228154114416862668843936747552268440287009131487896644389564411385206452388999548741809017385699710565898714589901980102713955945595579033169570327574436631795526815090065850770535358995220728163803674787908972658551508069016092143961789777687123956438449810935953131262831844729469375007986832785114508561305690083730410840759383725916185670830258238879277123798298126397068493618351107911063628217301948722403048820515087846517489944233788239988633349919544174950328956923795573351108553044990612479093641350349700774072024500172570613438158377286736153098672820092748739815177890540339549336477616384011152789422267008573343151222667492944918961830926051761552682961333880327404262592929445413030589539278895199042183929102624472865718456984131565201105062103745076549911665685966609113923128694672480119766782576404117993608085537983578325132643377050437410606817859247285086771815294733179516179123676106908819667707734890594289413970676730377563552883263719497375574145439287620904697814806667080307143317702418089180934625582574317491868110708134509170293876403810134611808452270920389007948742141911763100540568577345525214724212367883370467583412939711672838530004685681312724040124587372571863066201060205111743305594309577080821200811460580293415909000698304907111995508071447168418615982731416935137660926605117955811945625691996392518211033840536914811799190768980006356035557484132651769396093005782099890897659267799783538392357037127361860219639886739431859188257976573968277359929980049888747701391526269036068396188824908093828724775362918063950202733067995770065188840683371209400700080100622715316169391304691999992275189139727575374115957433189984521244719232146558252887661432071234482039820022212110747930540535857731751588756683012299712818474438293249159704990984432489988287396033701638491186132828207050826326010700271654572822106815229440704067045951657668344806557438968683831398315760138684852622835629140894690056749157420584591757826639241548608122478760912572876296130515246692286761596247259774522675581391145871881067977272491535416153446996207660446715653324025449268940020049944567462443615524868565097989803152254031039937236915723258683386523264451970047011996874363172067854270751910061352372380846195196744732641120274689488795321959607518799376384707538091577502505696390705101518297868568180089792645600831008080139408913022192786890189657750867592432411674354022318869647858020722311051970108506425192987467054997278175700005118808547237233231269775945216102225347571091609330162146359877817125527744215611193903582810066761375634880335968442175780946314552838694215111492133575949092753093627139782964051427795224147144256746060581222573620904213131770048971611426048922979252279942775309704141897574325467549523541861483590380809805332020624363617249561794108506261400210663169146290137941625637287328231729318394909960830341535100202483667182230139243337870188283068292534981438977401601363178102093486909900746347707604903170755525165377885259927371913404274510877218272632064805322003262620319229179791542078230827209443464156543702652372913199453047783782581562334047592763536926971286609393826976627463827424171191776144664570145424592656845393537580748622835277072695353259311499908948768608837853844873833576993645928402245135660471719906414845854709391824551782097135021815138340700531738161627734776172712058080080054059006649144092350950739602872566130045624386871852599799342180293545857330553774847882797398820070058942515389175211467661227188986474501716551343600158163489172508015326901350164632513282715621660106612434039790873183320751282799893773289232564738583856455787210527316428006866835746432862668471593034118498327214725307883853048073556574668498901892754727422321083763440498083299029248579441115972141444898202752123473006454849779539462238118440631901062321855263715092283514496719016763058468087770031093795897309819804848308538345033117171716690796579450515342735548302111592574667773028100913007356463809486398401636634129326737016392956033159166272437625367795462372979769982951111318578630918383642995228962192171265065599661044567768056571532832187483171593919200633515065522633146481083644886886574570375711455266802000958025595852062649892387315774620244598041120968864615761132236278851310044882495929757147206594893480515402228598714726278749358870363743891270766402760629672573125481939442836980443215631284959214044728692857560806599372372952887152353304720959389824915574493077679270076120711988305553497082629799336097149515259575383383720234361248074028510600143055678031138040835360321036382125124704397045652952989921285665864529810854329686113457068229463847256124137421909373892919780542561538763192571534601260328187480681735971006439544078022922186534544669820864114995066897222158768994135078256336402545804387611969560078503688027740633836823147525473849109988789259322241168269330378830939764721073429436699827263988670737479433861513485491757349976846623772946093927416728916886225006705311475492886149155480599830081834591351265172456351767641973720411350042645356662691722146426047347914407833407918941866097499987868054706608657108323144120045176686833496512905478568190972326457694947465385500654676384729871530025029172223318292290590513542367323757703765531010056717059060249916354091515751625246428162485306661165286492129221073716962375181936290284231530262252375122780870942830373856007733679444349707662362468129719868611374211382076791439888598383782078883353170378142570657224715349736091791239599334692694769282886454261272090476158750920774552518938846151525750329731588373706165558605981640463762840168063216443423697309027824606550539238816415868157672034865102043775312861250039943978881739287246429132430782808607932599296068548572972083247161886287954308636543289298909862306737795331917460493083575774135417390071718631087186870036988389258084473181237633690045215214172449440730320011308242185881708060130040231311997629410263311810848956740033963574947942815484138203232037142722345405378415799213692818476487114169214604771974329964977783878624134932449175492654144608219462174994744926452741393681963435230354632153376370545262771522444760722385625267084597033197290758339415700389253218435046765711843245763522424965308300870156328151516046883555184266014402236338834877082786581323460509036045859998051203319359646683766599747558057427467876459534735499373623131486388597790508066637133055801131284053965570203347701703195029283074152977511233620750661937701837147923081277222182131368424859798582365489740641902041580560421584224371164569004039661204138074991752853909731517468775529328337009462732141134719068661365420578779124635757722744717104448437027288504705120899128185481579784403743144931665292956826242357482442037144961715155548162223486884598378453113136652373047584558838018342393149882151961879699213942705508982485685439760224863689023072537638931992158656188059833518254779136839451982953170508059898068369062087413112337205492010075157641763507238055888267507473294143945487499363773021796035681013373312516586589091967265463389111545482078219817722536740468992590088002732774604633351300097462125779697212349935707047800269290594397539719894607501097462075632217508541605892260558569557783224468067276731380870855851097778750741205551548219837430366981336839993581222358446431231652846695976962892709134948674844181201008700007670549222209785531312274177181708551277522579446620378472081068313450151649119878555847329863338419078550679938267520604369862064141897852668398192017547841170281841156438717878747896015971322257535806148321221995431218963434876871238103780393699037425312241964955736841009177469928449664840819032026278019448530564125363726687303835858582826590952191738262502312393557678239679895035767755166021943924896548115277981950859230557082550193555951978172921194768449818900790542323398549307021002786225630581702505903664033744901662593618213461256490247582168090668412880365270296712792712077181616419852144094526597146650778082122695643409862780639708049069205257644292361743676152085905498965606395377800461173340030225978376638718798929626043117223049512557271692493148529432987828159610953761871049717961255319537968193155918279725138886076873595397222420269597923646435071413449685200291880435600349417280659970178419027678085459078765220574633520310879074988005220949469715163584048191983265913766380751041673191810424376398166491893888228817004710322950401735620721303207306642858340583306182941463958098571906338803980089593581931610445088487343167336026446078705206016634468677344898353891661867345537057544978851843879014224465921280470410840211766297594148666139583966673082187638492505501650984956899793464019745704919441694845501278230871330952821367839442329831015884438407258112911517532618210496888580703191816769204550585796934306486761212813077097834422787949416273061761673423919766415214560073587885743925034294083818578169405153015263557518845929733400137817965817878470167543883349682956039511286165813788164798954750487620100867597760716574249231148410609861586182350399221978290264447364534466638379727774142214422374306573119325040354016235984760251357378804466915555742441144654457857326431202918012611197297457716882351376959410896651854322102690853893677938188677233294568112871428964315796227726443367086287336124474980564777973156207246106468488162784964486848375368650305460621613361201878120145112869810407699433360191506903631099751450028830599156090360118887450370318538664383496975010329627852217007174073956763553136574977806565961717869097570923805605526991850060955622594015865899425014659086585580488759258594185500104555572267617386766852725332097522257792173398907294697814271555538566667312219819962112211860860141319330991144421730313444045806016172376331957958456007595049756760436770931039952884647040759305080800722391822175527542560327904539702934135604146809101046739638797832258383037222733378216669996833369004360978673166794282088048576892571283910338404252665801263167218132814992869845441630242685601385179528336717706595372997375592257525631586965736855377086144081904879564457473778581934544462183723930047473389247090392826503139852340317976793838311116452975983704860147770610200955697108207298834568286144008743322545462608799167009043282573522388882279454567621854475178535142560161858664330653061395645242735575925522470271331827438978312357454001030472667200047913447173307778909499868616928824772231899722635079204605930531858201109786142271257833599549189423117255154924803675527547585196287192433669373374505168696761139446772843815749591512151519464397875703503161402590156383281112305119978445705636612787212575006605622124525915676154363231906081827233511851336243184786804094802289215551902883838620914702847303583510688986991361248342917326640301380355180594705169951688744266420966302967394055637503853816857604401861684087331557376763492102524131660833686988073317955771000688512382351660496620242861173501421681697987070027640686366105172563217698900723769872465645039488618212241980009032653927757105935059047025681428630095032975173172932496778251101991777639042680439014008182694944519174895756118271046006733892447303900375736287468200211897257888652000992910045102083247376471403811416248236625202634262228062887504813337691882873191301647133987138200701839439771403263914956191100316927695920232740876752708944091051010526453260073078271789525299852952563801761161686088788480262957853841568907212107657529891220075387372415191756106436156812052863173132263306167531605478142380472838580423718582614631406062536944385445678079439452664038929113340476531604020099858491857261362339015315672270632962828087676045000476341921057163768155980861523987116355006050589522871190260267742696409546186713659968071812206111218765167142615103086926850861634057385491303224774488444341216227895477523467366022562748929893897425092687133965390767421397382905960877657109433695275906917158815864170409102265647091731557422629963463586963747890805375323907236912463680784242131538649551367900851999242449634819538660161135715756918409159773410461755597819839032915020907563802026953876039802952211590907118075139367581853019162731510498804896265803725785676608517454504612671714641059564634522271268117378784367148622603745963512646116068573835979844471769986305487886089801779315784621751453536478397060688877643614526271892946634163934612318616079839279466845703821265040101331813339232986681477388468838764689847094261162931716704242238647555203097566370734476502709603621679581829477771869458626308967682803586021727666782566901814618886882456652562351866503735020505205582102375354742844525848748772184514773400673345889567730738411926524318804854638146746647842769007621956894969438652802871000096603596436702153153072444809888581910962900914060914806889559866152090036249297455911072957155382498578187534943315927953703902370463781880368334878433505677893332157506113034199595973478551371129355637312283577356235438127396264318197334969386357890335363127538212327075613677954301325919610490349896832992244548491741957550520258119090826764808405564220236741554317364333657888045373615396994850681358075943616176038794941788320409509186126666898684778797940250487398284104152526808534839535045124460518006817153809482945185500149531780469455518519669537307067946274342334224842253704466648563064573784447137967257183127229870391087453550960745644131210910417638071501131446616076319919694783771720771699372947482501604319235511748701777842410847130380809461540682135019464605442267727835389170969698111821682468156279206000513442598492924196369148616980017870797626387341370276812791221780381138220799137373110916086291757575106633091558717243128401728534517019280909806054949992036944139078294941801488803986748176281955598016465382121376089066301736902299311892491123476009121174421899562672981288662973180867224172345979672107871560015458118197707369821207532379802305996915601181830719631448630016419430662070684687528967987545819874574867180515000803455788073102255738212234412102735749596467198706477751803738744226906792242543909782943564221133118708325230452891266973959237709446781628328468816338477354584825154482221799554416184371574581403251225382746093261959589533174340872951486901319209977825355488151469375585318124771135447273707235245919722848041392052574044790906713831151854027635976170221349769298489246466380136987265385294272464812112291307831875661922716615927782393062267067308073117195850741616709830899805315906320639364041775741350716094163411338158326118005591773726332807663279310608535537008172949935689818661689490804664885781852114524273965115835202231176834659393949775577705465255443964444563920547700088693389185442885969383657494478849633129577051164910047465423056552350181432244737212398322424331204151296817957559258882111405040059201925686807186099535480397462956253477298172470274005111559409149509929350583939979656271321136397820781330210710533796083448195171172525032417566817252968212672509576565431279686051914256093724368039968735912095783073930739317288318029634399451600852241267034220502266068030173014047422880281297525158954207443261009597433242628317135517871445457633752839108960295659829422603312634621098254119573017532295140199122120505935822721939901007295920917808380206123029412930630746492940848585927236118624809738372476912842985008787084308786591713163740784350875877644030528313594365776034270962641440985926862777321473853351159273483921338814578071399384464964832443921241359185263915213502308240254284212305538775059206874952162118684406684216576961381581525416155260907204421968270046951674425688608507264276697873858245132627711256200173323759506814799738443442913214234952407228081467157125464862346551438029958481870809976632314379309116537725765299909106200023726718197529204016151929858248885214441084331663763247010687106742486241047845125782332079705855850160658219776611123029082358586196656463485638554561523906452569886298777527411214061644318248808090172206441052717210207104082661701839961184497994091860136341623749951084910089453751457433343243708815682018173392450756920429569301604005343648637828932560581356291813636874381339513555301277378447594941550918876914250990016301828261186436983465591625469621452104654757806403161361927459828844293030335952548736404160382613988893626845768215458497059073840910616078748070824605283501616189665498931365290681985885764171769418744892827637255327771905976727393808594996319407674302172560391230212230008879449760932998168974328692866626742252269055910956149552174314181639966759404245364196206101491965142241692313050378583409657490119344382427894692329544127776093285749666682926333315810953706543590855800890183795272210594300858468523108194336073093259899243675586047649267955259283448915255241104132392508398723140151923248106055812007378591421888830976005736068018054290820569324395020941346222285228774496099433004366810433595368145020857379709900953063382866833759431925272031462531538301041099854511143627971010253991118049859734782575827647052068914831267371897064187196517097038418581396707969785305236915207613964625648628663520471172492714110168290237147908449558105859900965494444141248241549999631406627379104014006771862986441514107576896859375169024020721741003517885476932136649054315591769327243191456985847431046531820602194612265055553887738678046293031341895151224138365871362870026911444008747621493433316065155951904113610515589908055950193311032351299856487183779125078711899946973296052725810026268294944001188798852537848600935449749023320938704309826862860119739314727229687908093607761858537046678305652697531470366455435053707131045160653125869762680408086088337020805772812654728844952835564490940683747872291897111331301513634967641262280761343593930773918055000164421272992157767504637268382589694079722101677492161197062043688346342474361083834521563068870755897527989836864789056603168850799521535744255492230772488709181233748088898764866434745370500232165253507976984033352733121270678692361188384097129030001987163403419740913140448963879964389958648701115526115694219461785742454595436512477101279687855092811078862215204333832586660454213392272074193746145005604267991723173494670838834139258901698295628850498906231996605795027902103797678760042690014264323399421044473381893316488327426913655654880260723900843557242417255184412551550864127746562121734642107437554166186618555597996265829729915902108857908730304270200339762984329463918942720560489960836280488437353078085337073753337366833471735531871036812206020521075573597380459543040069852771403292634852187814702277109821214876197021836130604699097891127777973279990805150909225648163857964670426617659806220704799115712033729009611730767789768500606827291426890223387638552821754130512100341951667303023476263569964380405571921148611098801021745225633039506680570775576031999778654679078594419840535525039069023909360429151783492765482879293960064916517970388105992977737923124175423966759796239068465219897363053097326473216704412958987849262468282817580827981923832255842644841076683315621384422993416473171499182170576129555842223479818449454533920701150513611589514572974936442375755335241059868078662413241950108626813812438581132204357626504891309730940080112938447665735415829282822424954455997950452660301017983428859445718342347236956571138985068944313742646922167153149381210382960685722458935191893028661676091012772831786786334337292123892324466703862977096654327391191013195090083300650656489582221009486011816998264161551470733082627860942861855383360376784325210635986230509257581461760523211943593052925374459538450884870405074100264360399419337126639724340327653263179185380914333870546877538341823844763570697444747952245962865455938390775044463442301559258435777124516702186631693402192312101542770712565930087106531082555182010088387807399190686075454708059326387248150194564832245236481584900809398309227394870913592563993491238520502128927054911732908568092268522999839648009787711126972188063924829909701551474570271288831017869777774851499769699844840114441987795349426068020858355681605165682730313202288266888859585186781385984465352107089349386322237329700027583880348850293968712984417448527582136420762408516466482710893053590213240104564920459230399149421626679554230049076707526538778090743912882153222980332672337545635980735405869659892384091301064176765742444577658515779994305398276481866532195101657367406751729809521401775280729384562191720585098644405979242256557632993976267577721455500135558255958827557479724958874550175659062727624405100549195260919172473948694790658723085845948060357633025805561749898486404189245379159399765951251996201223407785645890153639282030071527233076321381823853409773162022097908274204884028010656810274703601417795348787868438717221571449050582563673850528993005149185911148150512156229433923466403905633463451217886507653373229149965081500405969387498396609810179896164303995804325512050418524812974468358188357875112625038032220148942075522797809684957131104799415182371184864591437107226214611802042063053938480220161547209924629935493897613002092011716487013953872746310246218441616645534935902228302005954833159911410489662569539362096416863806983066633554184105169147830126718278552918034710614110240321086452643510808367764242766796913451451751819939690771248028768232244620776504841113772035696449193019025218832294636449906097689668181152131104025022220618833046148983369538126590442401933424386681645932699095483088532412052024924901401883099110906293201592846320178330299701123720129094982144143628791881020942819336899100331283049406890861873439254123421952618421878739303029913479230273147148140199170218422256234856674499416785524715133882596233590717050149286303029704950592148286440153318632993396762084323584184359571792917285955075512286627344931701583910831519449576123838745141094660307845660326114690884647642966917535134121609311718316044837889327452559455984340433332107961482802896813342458353417049340778700987317791158438005252293481472006433703909749434565200942930311063367678905239342832123747358807966837628003396156029964293250040719589965416672456497776553995207654993862544325346862524409024012064860354957639991888592369272060794016025184912939174099786120418143395591601567010047502399911669568811969750782341534251878512520039161688698662255562201786271903289469630156068157114198091280725831359629164039022586323166273293228054526647239810012520500610817517836520048107198524801580503050512757004724342766491356839582768342448319113758858179966150693819275763783701688273704814583913446380183326609127870513246633700340333060443146799163636680400448050493488522702620346424201494196657597474752303265548203633451671510242034038789758907027141910973585291898202063877766237224288296514268549826132923128985678038696301603425925947729694634382895710092075626495183045859586496876370243927787530760339381798094457803463876705585027243841919061915190733233336280337555529389724777277460293524459779691484126308010651901099788134622373354851389414485720837804524234454588605654785120333065938361498040904619359124270018838924635841452866030916400302875890473013297350547681436671635727932483464926079598864203436895432473034721636475740399165325743010730860404692648045081736979540323057433419469503256675832315303522483579413574394470960852957211331075199797876640034402862618664301690170746975438444238711481760211972770079614491349882458510613590916070657777831434380966457301454537376207236584927979908414627038578529697412633967274902826214843208690196276145682287128928243448711572272748781429832967546327204194614830404814596769239747281585570914422938593759939447691752808742214626220626410593506722194154651635360724702844326879853979690400060816174640466478839319014785148687987382247866449255729927527421699083466900424978546163836884913668518081256840598876693150344793247743721530232647668510883921275153230283860008809343126975593801104904157007126399233513366469740565884956894315822281188292438491812407703520088462989927158424057655102344822071671450001731057643213103647465910808939247490315064571788516455100950453115823011389062040940877484160917262073405526821258085872382963265190100308952054991488100265356055182052274123029685977569581366628498741008100595297145221305330950007535306504043788212152280660263404634882455644415063284640938659200582118325198146630721542525456151622876799122619535707443775690390747274432765019663307432679636776186031000172181023806177553251287212591372227391370537437423081466353309199231618386083366421045655058508658252427426759838688399002857170027376247375498993778783206832662276037866645123029840210047118766546125329820486221026360630860701306598577272947376650719744902264802987329413343555207960180709108174585326230583293724631587836078761254801526911430086456277558947701911918042884523056948188776170619811139674542262066823330572072298293829804800903328519301436474517926222155702858698370034577332408957941571478556368058647709816114581509960179538907664968158702742869289197093309986842591691766671078723900156460857547956462947066108198657656555075297775933825747389354744578336363222227933972690210333910633929585218521007713374870314939773747350104584082270021571982263423559784984481635403592527423773370919659842120810610080903763082148499967742333914069237190317353654491978038012468897828117106365090297556549275314716973961214745946632194339871996836751520995329151430302829625721522731715186997697498142612943563184639432602885229433082245790840866146967293278401500234666039221477683831525169517462545445934498553204052588040867191128887210146515282620932350591750212170266666315614009403201850225256628496557794526786610747415687733778826774144169685100687813438276200189459623665993578994517293900062287827653670989077575964489108039761764614031814788005775667766770898506043275859801105885938444613699306475467781734562961316998792118023596929357536121230312471700617421119349887811483273927350664393181826213286818055937034348367399367642669384811584268287948908719598308817391830795585474450658466066964672641496935182115726732324788878448206279839176992984857436076790450193715268659452707354466380690741921616207224567123659916753176656752611345844054319997823561292388452464625047793332372236028603056531270301995310337780027943949630154062079490561081195339396024898552703645674073305376324929900396090841486928564256665265276851034788523989386763282459618098102165186736933208646557725763007444900144778389047304208435132389178479852223185141758204308397082788424996019490566676796308575505616227987386427746689304129035437941952341066293635547622928321776550601210812698326590020300358909455797574817643498192481421124505832357104049014023166417416899251559401459161877490458238055607888327187196379629764713315483176140523481041363429310657779864896734645789771838405401038153953886968498750115488050980188912060662734761932339533326678393720998749654263504609494049333016224618006736279840780421102324832971174768619404337791967713177667804616520189196339382609912672402201158872928763391087850694151005112870712645290584486871181940927262680897085180055472441237270201193195785513809550913041451970042010594181676058151320989948385910208860437218622854311711108370907069502085780523771909230684932620930276280521359319629745426148160954784209403358234702707908507949848335124173444675840577061691130918289412986552051466889448128278412797605546617568207796304159840873711602943056270939073157071053982023836838897691203170446469393470743777111341957242977056330114185533148221664137259601093247062250757695343691063009560047963721165862578852172796671245629360321356685883705028894700036909250094701345485827305649156612393826159883711551060055180322889385989055637615829547676762439197897781418087235081736422327086108860863371612963236091383469959453835882258951674467804192407440809161149886550854443511886660557618623366375374173499419433629968152729712774114498776384271927209128657563612627782052836602428826574971159306169753724323621784213215462052644018709691153740348834858111968820428562089232748830113964037682922652099779655412158845988013831818969720983333088582210638231045621964629735666458587147440785026554872658445332940741609758382022854767600832391219935894779401536743773814812090311855137400470584763267062894167152098129023651709819587575417739853227762696769142601678812790792289608902109539988379499992472774461072885129352992787408136268283614362793003732420660007200250277411231011702552584831926688531252744282304801221596687318377698469349273825610978154909907316566532532771683338686990265529661920130351680172293388499364934834317005250086512027105839227272542898754824615490902708831727347986236393996508237005098313387170996829010089735523834418086687432647428566363104110604502289862578460458749324466206150385655579937517403552572448167755627058025711298482976982211738870718786133814612620817149389857783084489376722206014699863849498475942123162741083442795416265111407325534500188617163366189126753308617321645930052086407455398687495192720245346592356692612915594398129406246147891525757540544504540665715825366380972239148089319616980969108089361245413945146508129374533968953707724432464418473945801318243745002309836052312978843152338936666070034633629897281377560626473747059261803911083110787383003460909919988721042797046771760254894908458573987352109606306530741914706505237744589644391386832485065932238407627517238049301794605143703536579365831577985200936815743079447424199588029691056542207959379888464071583748667900690191110699348703088605681230599389457973195557368178998011947205592556997923256531852832736659697810985072209969622619719873464323167390809797095960718778123374244867688647666335103320628075454101794773356196862176462524533414273799797398850438809088106611840320909070618792902105845777164433407586565988417750875459863897856485469698169367883197668545055672888595012121933553739523418552982875064932356140830768263474183154068827254804369113275033368220877222265254156785106782033210351265356075184596039554140405489206815327175638540190345020969592689385917558351401145444617881096893143188035993953966780759914977444782596139841733384038490282796359307377026116473908071896098603153175345499519471657253636704019660813030722117942715652600901523323753692159179116486979121586603535622541176553627109047482792990610675293226313001753616140710280233235018472755689404422314238567372708734971484571333283458212789228883820401405398029039883570277669679431755431665220761131150611191100204698801343483196191284494398374664332595992211058796768024949820045434115664433203287343245542749778034744204488599247900937384049642048385272032805151331804189886176123548234813111623983871996854800669099316000792476675393147557676318289178228411255761455877920414020580406249643367880034946879330746321802016558985238433674293741325399374578188358817375308815221559854769786546152599128320930116933407881831421811459026941881616265381114218355721703556261231778269496405503547348974317116142709387338120986111819179089286964676931657826106368225949787230501514735699243570900486222098023369265350743850091881601366718041766542954097449538581659942469670415656302346744516665547881199309849162437035527655551148214036699171040216166135787418583406329993142831701891660864845122874189429153562697559409395020565123615824178046794168778814407094497474616552178380590179784100275841337896698754449808039131118321833510370607886496529898558491054273108240033034168984184217702471881495556557150608911858906686019172465726503604227959440598829850139101267476260591641264540421224366859957329680164986734683046147389670987497948100249909590047264421449840573929427830040104936957924428511708862153103247662695185468231321502094556595981369784029038713661337285217724381357103362616972324900673781262012703119010514125199004973221142277564897614429019318035429880532854499391618049426545544384344272971420205633081132189693178578649391296468487758649927447749447816654129048241573152613693716118396146406161144434672647067463678131803030838530009930986138347384934350584541751913239346548708125597491434525285682219250474561426336352128315968673887466056052917296379529957875275513306743487940506740306948640671405300120340838833912972225167556117671215424631594489650085967361825190730825084233647925042064353105791926433786691435142457203459890919828979116144948915806817298732012940328455350995212835404509141802548677121177312146771389226675721589873441173300971274084055078039084095639021931019200192909991438974185571033095064206837663928311550513627032056471901878746038368368106009015049065146875228676834297595188867884492184795355494424716753556553831273526562568363968903748742973026228699678270634303344537338596272348657637126119107848311179251023422543917724738633700886000978250098134884964742089361590065305809995092752062334250576955328671733679507562544449571185579877356503823907064568806892293828531626304644281563894216658121571538663863261283021135485538525709564683409303572299877241841886006225031296913768547737372826072798780697607818070627027993529479590626767594646076724830568909914984298971407456039959682835466980685144031287644181578190681500886907222342147261485695705746087899968901660634823790665328442944961042955151873659227463807113247904992457597168558223436168223418649447112669958606960835265605460185225716160505794522871165359626335328134540043065799857529515758789919100690833013127923459285154363589094258553168666740426359279893637531346236832763437673557404635091005260081458628441844065767434528602055076954856832708422691304935605331068557102928310552583917110842138786044272303980587809031188822413275892328712478242215215922300006898747524029003490845277864182269930156905139519616583180220023047956302016978563971827313034621771772402808339273366109335423641128745412778430516073145658769751596408987712444779981279163695134597105754992393657185986109501090688516657333769928433047755542485572355957863353254751120254587665462005958182032474722587059747460920984947231341351832448342267773274493856780331975362434548707293086857993667956349370066768980540763951629170477676055330348218107080110808500011438140315650171353951407485155552282008251821189951162794987780114583113651504728422364655316757153592939568976402472400295463944219134039306348357866598508409455128233879673857821083051243036006146517981996494432238807021500411188127564063800593457908837936581022045791823084409930840725884880700033916754225471311175720770687349644862666727370561701332464705205406475478831546719763831689109493658287066088089421404540062016948683337913009340936731373955615464037212287236454190203635327994335279314866443899569558993125858311840978480837011654054968790621909340340933606604954717827822220015470245805057184724825056469161796231275618466750013233344217222859469649015154135418444286408807878259112969753728453514006851675899301899775007542285129655957196041389532774749274413337902150369984338756014192524809168590751511951424006586298609225678339441418170074779090896672833704540721932157909114529795719864908144581048550813922915975286412927496675778539731278442335497767210068475496817399921346139481509412248837110888467253262240093911196072027281202394754765927027264860727979576134794711248243534578231463595148259779015460142486779213777906280219699576691789073373734941125768178228894091970381504331342062064056919461959574755397063295951052798720698318273443590119321379651772151268864982795353690449460799752234497178647215072120669526429342841296443135879202970842833592827122987890853878948616645400861291257060190923144521133714143454207931689486162483548842036734074361368264683285380633132232029969883969547995445747945755337586000464478605847598693139366742540796128613796978192273569417644772215613934246450316240323047912032976633366993921015263612965848437260692178876606932567769549965233969620019835251058174089998476236213218761447431029804521716475118520922943452132682366250309838807494512043929154879139597725938830709174489165553858596960415845481807264111375212475231162937689519947736133714618456244323260086544238188182337571433342116684407716933031894495836904712768423393332656970496097971749702152536103590233304773940998337626592753343393355051478058486936261132723054899967702408155757623651696963807729578040344621868489685340098314091522228813583446612335458919870811600969900099400763132836209828099075231438996278440847560068607144685362997327208547901796711946468485302535012902071470454881566265947671486276448820007875644845810231221160794963920756599252657999680403218354327124338763898668498682761125435275055372928293204106039960981730357701517272254032607338608914773722463468768847157480546140789801608676112192379370206720544704076207372622596336072575743664158450616503451093878301831250342281396193549290485438987151635417163006524968226831373010903249909559828911276961977533497309380224434055843427842114628326961136332404158695965205134082369119255674399153263380965453614490740160561102601013832425204467858015529172086736333210296402161407140692912408200028408813796038447972900055129112657863812680907142547437210328728209209382571768077656953057452414760867700508421692868101604600533938814861561017360227632309723357739082892637261443550020456361422321167247273580789485794063300659302162160643965554367331468561371670031909304699027539908321634947070592080271409797222122909755098150122473224989175814877300784680903950993255763185453256962696371942212765154565462997497012929258714591606052116531906144841366859886829954813436731680952039964519575824205728045097933661549617055765127535090031277286128490067553237826294910610384640859709070333040056764215597524580788093966199669154887938813278133609240778091782439149958866921680360261075328063114499586151993131600254055696250945560974543206782348136751849693390940693157046692743200468700088961124114817256901221536171440649332908789472359680875515574914952836177306257541661096489387036605284389338468376658383332600006034484293134810575136636379182124316227395605007582416655742924827679232262708476582979495527347677269420292816756623699100437424019260656492952715518817094046080107994610866189614583340572943255401538938336290951369913609478827610814775150859013877120520797558172598867636589506583909351448410217111294225086057349438977561497406978325589193166713398643667556249988383398292428363808686544505102670748759909573690408654511671768648116210636357862057442744297551846751318690176282369150623611090440343879984148894543386036685847623171524257684390266509899573544394721922978569124829810957353367208705192884740515806347673025661159494663446954170199107790088262694698970393546754813464320179352914318873343430431563398093728170918046542418994868144947624170682306256351750504362229858302975621829809332881309161360324100109095665903585226672441833088647607811305761171567917769671780096555880128963859765929094818885119880284476876369992491430094221484580292973604625219563306775234136964962191335775631962881036691607273856092154795242428801050419646611831891804440545790148612655261889981120813449970693702531845094429655922709460056783320944564103619680488443417466879928393086806474597255712674155565237396486213225818039365147982871183579804758752795175402590827919643042780363201003509431014598580161869747738052963416662400155057870284414604702854338479926043456725049406472039521520273199094552987529695598389161702418975727544963392107293675141238035150913976801223737654770522055849120514748898749697899280322892236683819534450829920341294137421118600196782534514381944568275985625704880567779720899506011678044857744951744222863716701608955205506304700808411745639999190929907759099345512945347909911884513616673109965299688086540734477605338569165488022214966790569217208900671348389461244096342075599215833320143344919813969757199785130045018320809522032176416800270897752728922641531901321250414689586821630922572686498431284253125748063590210253118455316789696517228012877023588061008746425064810295964451425693903225515692019811804790876805818026329255240153160751427803339603036427529179925565986966409281265605804144451008937436762059919797189527160145227627966043389461612891470400208906375898510428003054387909888166162829666100587725268204740380100220956735445765208606614335604443816946852221919824103621948949271459434888604535352019191022882144176623908387751568448645099061295660207640302084286459382048744823131105230275015418478940218745455827200204211924354365387671432674279101806067599099695595921581619501344755240516854763587910482966389987326145678557580732463025394285506777391439166597650753730432776800693198478263946253721732009295891877967942782914282758198811333069994193574539996448029917921420296495578910490085470690500496537465924030196458769292354675365494923826241939459242067136263691981492288884367884570666705966942248007353152649186056007628101001295918285039758033546972836789516242092491252176993485924268262960140990216972911200715329568595607903068058039236715777498653022518825921317714728163588514590975536209662469917904370962169170608122892806837719246698675658290740839049786227102061044365736746420442745923951797741590996344082566712058895619229270952590876082977824590587747974454118518011403747699519385668191804970312702983298968521410064825301902634986206712466472007855932445459401360415307393460238585788576643861392043178667046395132916979462045145296798513349030061710247722159325974997742800240691953402116641600606409206638755677562332422550283247966446483667197477300695028708855066951972074067943353351254882329465691527562147603016102645941877164030599982632907030062739649569972134263334636553214850471735635953020081463970492874090291687613200624687203525711340596635282728269676256634400224650257446977103734484014906038368744980696476458703534087134435210079183013699849245940780976354408663150274880799618319053102052770812787965316124771060617749585093570692077095929562399769273886750649255489973293637731723718190793317243915311673323860066072070594258140578482334709346226570564437039380406991514945753118523844757764793277222103747927324389650105671644406944766939427270874387680505352138193097304489665449817730965985729192645993048775047307045490453280088399369836170687270560771070894587371403634391784241680834436632750725017585584477592560613925653995690663637537869218383862823844205176951458144977750980530403067834167959437780649981904607223738011988743873439935326278830639779546432722208087435552103650148787712436633839688128669731815479223878516153395004621556327537365609858091915664496991216543023791392926371991013558662245174616410242772890838813055916189967158676417394856026739498346990413704798666082801650082272669996846402576930474502455618728292772594864155974843790258324563809148885953569705348044025384104112103120171161659384387332171678319672168560196549949236862701196865457274095299709944428090424040013416870904937822844534075580917996173098697569935537134797030830178103280655794560536763684505459109683073666445538840765941464863365207619592677393933375227294944803209954384700386852488120857753335830870447071231930346298144641109306051658793080106096462689676684298372445411967249254071371088978257557670499679048077729573510557719496168603122774101197518923303354472875751699089996047042505102942080564866709541171251902708356052136698698767500814443083091739235860160992848042919197524436951960757231037027042525237915677956793723370155040247802415545313195899318256733422081921494707184862726097687944080905609977995778478237264755519792511435273269556267736271994679709677143435044446517081193059764451509332031125461645649538909691811438922965929659065935569734939005159469197894359455402337141415328639563508083246625378001772693623332745021511181162362376757999443850179573156317622603873619727406328582970673682900547888048185336479054676951192124803246913808068756810512177797582030899584547987624823964241489079617636782003270402463908486500498889305805457592689750673379506312746407114207803439521809705120321633658891514001722700484438880238429765540815013532754813111682581996000306647123527923345944658434866464372552433341010381686110373402707701788138094593665191463797708053498534839573527912643510644321076526654012486939542479896869262949884025806411871862182665297329504290534538003849487643201419953803167033030035662389528786899612534757006821146382622795859005992593112253216401846779800099272455370945047390934537459175738413724529678064746559135642598145924259825793097735670155529979034469676473120361632708613851970057557207625090517405275432196933772738764233080746439509793711865164938775038327235497307914328669688611509424591768183036494635239535326149512865586376424498282402046869117752386992234517142711025653296002400482879920361507313061843910421299617454917511105287953677095296183206637833321845819879276250849418422260018357802321931098424712277442782825783450105911655203985495149553200252982624048446607040743017607668233088385129129956212449156843009904292144756317364185955330444859051390726544932819958453129025497029840465527058481450179052877382323357470478236807500478247620636210608079938124872339114832579757016137666766289460853121684003568738997871538049587082362067925033302674613174016218130628185059166540234249030849745747114045161387330780117600386725323699494651564122828204273969225008977312456704308948733912861942537609609082361845861968650114417522633372063949500136215452342297366343546770653029103193039232669089550270322315617367504855479497744217892829634446088798196806996846136280664830066678988488190978263082194974888082143824144482522551530527521600476238962764436684837234485587022973457758926378626091479294750319580364243791995990774362326476765652083432322230145757123484229054557170919576526319310613516609710387680439654929211459073621093404510917155065056820387450679212142908805627068004209659833255210262716599312412199666026260217820018344131088074629281294357131679551571757536354674154540810429053456590939688200097952385258883712576276968213474635345951160303540500299173410340489909271440171891437842265026601601745123140518766125049816622496301351535927831945936617168633783472154462021547758997473532837468399452158940077456298887846098691586530932715814137294494453804482465654698487875136431623933522873415384444459076267426158533042561552815765335642655339295097003433659597407310709445562030691347631529750786019921375583753604758587534360899856245350829348678227024859918343051173562782474576793384786091042089953745274013133037594710296682572717701555245641871171568830005646367679068531913677050124645512775848134461177866513563099374870423298762462046691752405870107294606200247281028928214028461908339175030106575149547491925374136090035953601848414990153329576027476231133842139937470119115233342923149257773591681734367058200355829242722050802245353823245752303567017445693787850345521198628593092808888157550446110856764931845133247009967332009656648304055935600199883911588013896960620928203242227742601466606718301786392524958011068236013828605115034659340753522383763601270025104054947380138756127417125376732268333839046261297106763721779628041696301445545435202790289798229711130718174034643066554931334052937504931389226753503183671022765036916503851720011017576991083342470712446159699627418463968130531504579649953437008562061484675878479812098324174634727358398819373792395896120561106416026752098782325442895761238137053030228604091733827762430561672460645142344451404164075729688199652990313153539540197302719256906475057618840635403812632986217343755646109295783302230070935671648498586251708684364386742746566369980438773488224143263163275806632136665566122636632500526609516430197275826513220404360577788473963051466855553061302112819807661418949933587526026266414233422570696194878600776624194996978702495555539740537746178671779659738443070551008328447668654197630408224649211533602656750466589019128029473980499399612906128861790480636331791741975544221811317005151655845210865778701889533631110929138768993755659958789150526481749222121902868467832921946669900213194725978747138809804160787056950117271171339306297719214636446362646252784948629920374471398780465789185557534780373438814899104452365795326404861375943378562306117094776410332958888646736488097398847368052046261474072049545416552008915867887229994438998693728160396830557292672577025825055453242447845603769984155864094450386690959334570633916384690837620089538047356602064679090306289288291347471560339743446574090140774086821485699907313057400392226086419396333341001534849047071605869080086889202756970221353940566607667397161852697731173487339840042821203912441682288798546672033147847698752066206530981572189979679514526270033468263728320551993762537872613502459164645212649804568953974935166159885453929927474312600283680142947807199583394125807242937190638654636569415708819217733392310924179156035984490486272948907969042601259338443151627510775112502518864095485395465573410409169998957238210647157407273235450092891746596051804250821374061735145495157310948682915695045364018582029403801453398183319550091441174324311310862991886898462292926246471150170548721750302437465910885433496172313141797482532557296013476126009765843651445818483575175155929184273318328433520353767187569635839201034606759988491214858137114144885368656979936283613879573945387412794623759426800571874276197371654606027916685030973879987466294253352905536997416872266491580363763152413508052317849811757100759999556325798513001441527458080212429753004342674657253950843776204901029597242901659752651184546666718205328109633094045461232419124109458844021901605620114666109035538047040713895171807070841539068494847774955606292975341369808797153340499528783316440499528456236006836150191221716122563252716019247416810699860575068260217265700095495093218278044541444196041022913558300684778820882654303214485691426582719490910164006562515828842636149842203856471252813913270063110791785129866337914784601750911061320061665353766214754582566291706284831725220036483320253762510797859125564607768209391744287096756926470454154762955960952154316950781335152293328540475203874183762680008576293821893380721525393239735660667346324859241051919879665148513722042586227182579801591766342502361286830008897193463563060781414829511402265699813041133811870435224279221902053312556500697695323365982117162964794241554753706389168911655587774318685681589627621335745258962685034332897794759301565536561032710164872208559180287742687428446574883106927659998653597373523234100645910736786485682554598605989062329676753898917157032654535699636905371815963848463816402321915012363627643815732327131139639765502446971232768584876433761739874311534258549141381300965508936993432358562803394962677558889172171305593921697618016347780638469914781142803301143284536640629407267851088980416726865992593046174722609841800999433952795171988532503648820484383129132223645116313717557539608837159600350829780411691290273338007194680936475726963789218937156837643671693944944552252911182766665218280023559742974017402104997309246170141207534150989323332267149091633185621042876441446756391494912385517969753025548585597094999050603258404710808838881932720584764225809273327225576698832305005461138931803015453015543633789594917525858419739134647446293176623593002541893914222649112900184456528192889494417051666547801082886732172501170438299833261149123455448222968875935587293168023791896920254466418626699604831035003675830127257309648024439366002961968649772886185563033621593642103397897571808348345741788454614951651803350034025875351177651475021198093360639451519525313348989321946785086762020036233449212091645021430757358759835739586842764495996162567355202842738951900197599171606987788818723854639226084967810244591851590434871432664466216974572579587290855182240755747790003899796492203453780276162130940769922678931504216842097320139660173059776471110057216589848421336999374085039296652636489837937501166898852701233202176887540367949538353673418633509941092668924324652329625460274147374921342365279383835629335609506894813329231844708140269427273823878704757970043879679832848291907226012060205891693945890014768233178650851447328062031067570626829692963193341951716829658674354000544289917710732831634558553459115959358941465366791899543687850378274838806855569289522612872669669340622438586843946311247165767648861821780882263674547388356798073510873621634289972911682065107386369018877712492767256416697455552709336626112971020833677777792903919204494299930912271124434884788558966041338251974858069617010391394105017337238247465203429515086794810125863856932229576534170451693913250265003386953019567382038298291809474676851567790793749653510643759621954439607812149629916029038030643107098334203613617275610979548510658593867524765886787268007046578946511237011578769748971558048132672450905806277836839628072914937988087602484787276623426587855451338285956614325176340059117840503710493124994402333849740688698119525523916110866079748621031324156783230453228828884000563766929240402685836756171567582421205652814840850108090539671531464497528135636387101935650155818908608687477514286154228605477296637988562900320861806096549060875116258081430539205701368344620159934958273394952082840482365346152435769630456566103632484904852955870692500461166089785103345641751978363744971911740718482262810612506576984758052892195729541823452551797353912125169059483414123653505447467209619322536760697274369402261742368671376823191369451725664837683884562241016618527394561491496705696693426092034035351498954852278583328008929176769332632919418166773235525734622351907170763221734278932164417661035669899374328664737616486769780427914296169362744786792582257955953027488028054956457007152040834712833262429130573407635942760464497926897168508562721598608985233929322827994513881807916384293238909977071646892994239057966341038093772083183915738095170321613110351299849430689549095386129343599124243446224908625249922696647881621829509109868626590378573264795800875503426262343199006096774390059819140354056845974367719058706071246873310982874020045728909265545753921060484110942772908747538416873611868987116431526513823529395467081501763153841128453374959821133998266023185153125433647711530825499049710175941075407192684090692425930031662318601507458275625209595382706753358872341190040845670064325588371871469106766423014850312623185515723106772448231764927343595728496622606008991497828559701816597828462548240264263544906045493872716534490530759967354917968607765989182078308888255666599337124672186069502420959520480530963499725799721555861083697605738105568169070605499122655006136634835736166733854790411163504203994045321856837147718633078150948949666665924275718968948060414718540990018345980930184409484152160269000653513309660859964781029753135569599029228374648489304013605931785033900286444864097684015306423613905705060252941920669044586263993322640556686631985539237465991804536665916391194419985936821887548300896434050901122853356169264461811593355624978641056021475510784783071757387709920445121933869884604136820091974783944433111919505050905325779593863884555739793510847133400305426718397688824293820586245452965356347595884857021041209382391345049237699645535389064622331702864639332141396583757641073347059175389667958928338420011932362749444930020448325707849241444023976380516151598918201779002954909255445606834806822345773212448626452368680364393808685293772346392233368987305758523999342509541694248541923740407972551001985079153413789377780423820179201614898851626815740073123298875153315505400127050412907347606543827755178907665890722984554024804831238530575007311465591740821757594956949034664839472503204189070612216253042222824662686081014420355770280692061504961377426646660941074353114078214049801768385990459746955188110059187723217220001033628397406912825096442005829835686506056378016378978741928268662028888054602349859476358427791444366957857174468937197244782329665045810531907717025470580933723469208184177175676549815747340557266529530986053619668508018780011328404849729202984205066992397602676992787161082648766240458553305541748927270762428020030799769068112851275340139544938626780583267750473458336249206121237902720160651354497705999418353400337010834105078916534077174518561132947612176605486886405892230982013439785606548772106160245805188306363210213871865386572460533648100450642786134230141295553973116340482545037755557432908360705085005677132457512135921877241276384538177057828905849749133405066416273558501935409597104832863097409823988559276804423350895738068052929820946639220791064265932659231349071516426046049841705172494058195651447783044922047256362651683998037910535366877270049903796573301795782505840620656505142316267701227731329703087893221925116855750850155006986535169174945801849308095313062163451192160784791283674006842570092106362621986394068742284762447052531450096925441244785393166604980082430365193223708253988414557811085188305917427249696043465255046302594078406173932554831781304782909621255830644721307375727698072523013989579788443942890309213316633655526204751574799015989574358111566249000387801678488459429380286315644885634124481836613821570943120635686767693329150549670108068376007563351167946248964844166811340474946177883724871319176695851461064474616023993248398696552178800554646994723730915535703075361509336004973844455231896123561295567676586818167859746752739060069899999212961389111807371659939469662354649789642121043170796954663993177626417721536150496097129283103943618927777315908329038578097912839783945992252422588311744823608896975433965220233795977362795219206094336358098915829434524298112211187121762609427594584376719337520372255670065647775735844899791564804163023691370225740888409779427108932981256327232408862855922181148706438338984759350174211901721110951939237352711965099157370803203700911367143007398434739200722044119639962994083279519980098481102949534591374818739461485040787938185661075285226879010378142544001213267607846936942133419848970848778623568083235197452877086368191247686491944094744359115097991338438521635632335530407032588276957801067561955794599967829223501101459123542225118613357014493437849167524258610529671754164474811102925906241092277051829859951726666874964411043794259775963203095971058612845316120451384221290376607308883973510325903852881511893673802736706678839309833860674313412259877563669755891032086541970200650952039090407722098988975419490842383133106983405469550400724857634500472401411268755940460927231738179298626309444580881917808142756142048306469253653458047678553866842977635713204601111458781202047786946648030635282791004779959648988386607406220001603414749866335981851148906756362297598134855736551730581856903654156501770875032068957568630857078534028856826698782484360081681838259450611404783674170462569481536900100965580920471475195311617821727194909394292818182874985768135337197391579412005322384098428926258944745835769017218146843068046955266844603408608745371176910407280417183766799682390959620696289891396009212736463463334711363678678418007885253983117981971421838461880349785916151650332241538293297155924458494202537463756740764252514962353652420523795187175961987159514264497714897577090107011693721523024839593783777877348433716593236664030730935003464782733529026595385947984723186964071812648096140894887918244759792944725929921421117892645259195583511805215939780777060556729348163225297828054225345931718330137925723638770095580812832773991258888834299109445053204491399111529538671017127748907612758999756126716017739084944959186047474910818223668857897189135709278712807351046875604133116990855415381707997485700991274573438498622890516341451602945303411561465144830850380440040781324845462242287531341597792229273113548101492897167186104785261381166004146582225429129508075032395429259367739842791072413568036571474340532839227029371904322687008044056315936201510131350980014691540675358952951763576423879292938309658400403516267776602105236761756549935935564399685490478984942095840840241592551387114468448626687597486124305629633098169027043075975345064689633882547102125917158376464298072590455601961485320591133061671945931354872571155645650239215308832909458239337187544432272097819215626076763439646915181713032585904158353273269538081625523588123272576867923087158668104315620501993274446591681362672858250212025984701607636154034383835797733432202125897455024858856446919564966415456210601220477009773620058843256104227628100661684729828496783389769148479114101126168025716096424096916224111051173014141909112291597957409229102549751729269002313884241190867236875789607587393107484689626098806643177500476880413560612079955141352765582472482617863484009877231794590439400545874057283195656223384782404718136113865371418635617893195276608666034065909571123558964204196605718398187839348751327958368239472932761344654209788487606320287800333553129451147960061745816814081552374061539674680462796592579252858970354227501927488646109172831633540834262154964540745542985102473357033293500228051653228384002312768125720082954622827720134423904172182685806546114281787136077133637928158744863897838029579849747765457869568251923904324367002444889147446610063067157500883923498063803279449729084669180980997310809169424000741430364471491972938616357927546245033455787897375616238216477661692822513370415550286999045446366183251147690586507334724670315452428021472973109536282036848044918516380222440561929479877742427629892419546973167677182714995588892622933532399693595681511752122687058652781656566891546093958583078206550083859365353449653910589120361173689498462838762150033886868819694548970789281685224628717846947040636230531468691735229009157211049712711692214008703193408083856474725150277587317636801904427936841194481924003519569421485106078774787364503004495696291287275763350375525960130240742548793882615409707282286836188398365352385326340718102806034374142334021409080929831385508292187351835515754864187858026420863160043475779202673669897874709759875438862511773570526231520840191142507674027664342144714344910450599739977943767259657145866753442637014222183393724387958912590074635131545623573020432349406038686003737590302920128486873102684929809821525730525513582485104316974240771216841927681619417063165454391153180440232158636154593131250803842285869496995602939299233065582158141080385469251926108137558458700700400001279817591651671961089732310777703778237048709349828347324545996248042754233162345751428211894970325508147044611625694990622468530661117592478072592601273030555015963787050575907714107938122191612356762798830289877694764879404563700145888618302756383055185950601132841021454255570486207532719841849763916748029470843549158238682760179689880728149481909720928837276876774966047662621913507992217405340629724565409596137965188245899506503920349518323308393647872869950392884156534138681478797962525191022627515543484560215261283016199368551996509637141263372948466312677197946229637070050979977203857971198098126597182284493803696288894155926784481581820360208640841720641438021379209053611848036168903289502715856364502994294331035348662715288909172025486960887359297705235881027134286946255546973327827598851416917516112643624738433653947636656831871642555972187114154599360609840827025105859286141615137005719548717670872064258862319155326829264517683239947711959195360403385954254151218221557939488649123513610923491351573920818773393412750768262445351482396868234973879936215600207031754675356932141169747303389510455757617505462527262225083444419116866476868372949092140002790428990592131653157886495052639447987870737546039926480807281322281992951474467218947696770205672251597210135462747277201371738030541314319845306306803603031344748352366526921615893723304032843604121988500995720716870658405094131416481255699135133996735421799491338765857568817466585817690841134640744762939825187913856795742324398187294157110251755273062512506541120181219185927001352198724945712663231546351235803567012732158326727615274674218503269039360584169352980641105212492438933735841414177086115789022608419397961391170486750133415968834936438465547519681541973610622611563595532591424191090155562519117671279277793648583188227571158537347546627336813702013078321864183251976915368967404583936475157688493728376233753297360719609573776773220169277850963854350647366179279217297494303266407567137246711190492120076780758076159167270553353445502792628119080414542176335332913078147534904023634345008627863873133479080606170183529160770492120041939569039900236516449534495891481802905807735386497592552151699053787590696892172603815415163454813701214101033458771784713817816508229271817739481184370569426254102989835040436074036442297555321403054457185228196360122877292437607516726074153860550414198156078835827966902055796856821566623187989533465738636646616492089254498126477340337078640945961543822905062915507879275043071408108580006211423582110841923376646136240589033286467599022683244513523244096555772644407735658072030746092210160280409966838715232599569126011747979961690994817931575143297862908679596331529332344097319386528481279109908972261572365347125795669360430457421162558204750671371206200270643341658615208178342817103650505213218971382280773423492457043331255027680667465781336695062501479617551545458583712172200767760572562992684893103376728550782946729073705055143727799119275712103379254312698766454175107774384356984190127930759670273008149383736681608990538657988588526943979332495352984296647559132791372891932248678173768654591789555676956638133156463048491790240833171148227018171320647341366777655918155478849036432564680105259163085946204397060446051353912883829995932656061532618669173944948290108060103821502193659312036587472946062389264397343268388863063370274046080092970957072458526250820120408177659547507180172319428392404252686228030596847521237258697488795187021121750058646000963523490763601213846546724724136447799655188562830337283190134943706931216814178863158642240017039163316958428939489859811628266402484670401723317501369987176409446571230883742791531525483337748855219121774737107620555359160905655035404848961707657778762149897891479987200386834400667868820893029442446565267758153168880890821642779171359004682859678120534391380719372897351244905978259066097570718405180305575627472460920944272379866453327993913698437491183534620088247827757982530012043423024690986586615494018684998666029037772577047151322258729772483229336345781382666593560111670788547556666184888268348872390178936047848374807078198822440380601074368725951899564448552380587817372500237182877345373760727709101789717939589717578920559994709656654009516742353637695507533008223099260317535932727153231951785129673701558007826766650479447044629397854425153677883787981207271330334052564676456271392948979712769389891799010848746350442972488754621841911650506709611481422963354079308896145463029423851074181152195871599713878044023520952430321998938939348309976341393270551506178909766232277336972168774972545335315323809514168244123457557848794719737167874015866836782869357482943110210722373338991683514889692457372728094789814229384683622121379425494494905346181823696347988873701481073436164189366557596508119525496538742110152141528082568100377325432618402830221717016607836232048075389590661215659767799002958710993480410807451707754855053493645856240175196620961523488257856351541251275256655594542975715771941718081226703058546442256324008007306315901166763124037980727610775512623054126450239458312583136930708742843760564068918612559836017566388539562405286769577141811868824377864200613795595284495518826069843910521961974848957186263460532202417847226144476005570558929750345956250455194641397635101426911744626950459702682907487383941289990406547783271170362576640953885688550214995374821006145088943565305644653805835686467922428835863863115809340179997543183533497254039736416539461779577144489606469021973871511355661847639613836019658494560054041183910696567630983850519022350304393045632011886546929075774119859113901772618367564907720858698591959998336213959844546915722214800155724051187519573608946394199862316816281397071801259066517226840054700208102621650367063552149384966706197356444741774106729429938199340069632343949599484018269757720451099220964672470204223671285870986152630363746648451436808694255725281623609707061970249501703981926287741317866555872765974203398353324943650550432080187986094064155155506201816384994366658013860822654259818019650108584798705897177470538812330891171153037723588706258335083323476078902671469126442765869518451807998652524669555706069441165145400149331323541219624708442916913287885783686252989001091166656789754900106784903459737005864453088201607776186307236456146867781641559895248051510981122733551889061272909741183588483124759651496757225897604676757543733564375038663983348817732674781816155711948457747904651427212220782558151088838465189143151915830967706799350524312996532205318230100704896994206375834383541239482157382994088656709220207689436250012396429832092452538016747444058469925355025820049275064719391120814318041678649605458651465431166724462321888638750036060067950216956077296358730420472344096326938908048476180828093171283568489959419546572742609639671186691466395661146555658406863625072785452486501062686143534169292226805057492428444444399838078330632533143527051333657553315841207336177427451829865017004860873058457355797041239145282079919520445445435387076954537911786134642523020482310155848095827190300073167429811932448518426630391471107364503138820042258850925561443611405364096578511962579247677652740176330138836289231080334800663412009502564598544578796836136644582105724298920112557990134141842900677970750119209171022210442887305247826191023529335575707844319372602800794848816290460617924757336080869629533867727826949053068987250627057053523432582686970808495392410495263904053869990684585277141361072365580659489955700741128735384385777430486027716305321391429026627229646522463652058040394686353400106165115680516417990670356204262593906032586753479509080447731428738967435590708260696549100559319633645720159687562010933310477751671865030332998566967211879231255608009630390253136227599793674894641903272454575667894818944871563006885846029080241515211622305671251819061533473938524648885670038664011611714365060742154027830094434994820742501575026214762787243777255037368431677056969891487189128403388030784398240515160263014811906063107158575639722304566033812337202620804246233755142114627579719982779769447995193299641727357530413581322318181151145787319704248357733006925864812688149538383849747557801562582990215267046186711660271306207252077669099150673309391271041673107898355236489309732058544502855225642153048483733079964681882332090770648470871865976902240598444739372590528238223906869707800537394661312706694794449132687438636063535087933302626870795432945511440695098088461177053039487422997127906344949487805653709098919046236287550238019476508021111644286213379131812070352166654473822496849986877595038902643103411971136225739118235373753920923138470260270377542373839221077582790925199144410687641291076036622986203010556917942234011445565324746739759431216558844396887718259365966398653743787696481462306655371243681505781193647432919151658300117588037441803005617702892056407013757003796938136386967529421204314263725104880090612298892002208128914344812126706575018780547527645340276172917963287412017472058909488077543346849239978961028041337061907842768221410826538796452016009226302599101388173492909666139732296588653315547403391738270817822760578991939803000342949438215239571818559397148313041791650479843369226083925776272421060580812630016695194404304723604920980692628328225304894964782699378918651135060461787257748377689203746009691337369847069242098785414384466223513869599483557177858383207850218945069687975473050455008454279251807084473531338638383642928451026613336995329303403070549989331329081772122670179647933335412788026444537843687475595209401105063215825254320454309312813495141378451950154463382031137213622623712769597855990559142733158667192091187646781027930483090141697345341760248722507840901121576115529709369757742281699678092984149621470420857513115327876936595107475602042428796612369127874231419314618666850879039080203598858238311057176186946171915927416515295636280009901586401570549752113391795092094049308753362473348906428066848481591644619967184931618785039827874393486547321431422864965358978095710680012036412332773397741867159653704212794457274263961655122648264135559436030743671694831833713505180275118860121590892977186718015264443743785590975063735003097169771063486798255250720082266964849963634194196865059835455588805410673008076243851084985760332044154957913481449439225808012612950323315748700003188915136270564085417072222796472465054789597169469303583903141493450264733061757294356915156980748486191137861105217995636528210068218824638065783962702887715215610432548748014495663136434778126886039469432108394996066376364672280067710218770377947824434615452529439510226955201302526560360614123638445063660276125530122057216880879589689855868424513620876511552881138993939310569208328569066136206196538815071056293915738194073098153250472064875145871506623462883216484909195475121999648553083896666619497293887131090287070498483396007309031010923229357803701446707663263750849616176895829096708761696613627330557105628127708876557239491167986817931937676682563557571988567273297918004794843551700580898756167019667950430787289582285785616179244098071237455565539141094503387966612659943758624359607329333821945722544873015047337251797991706507782236791937639912017198402356732462445886889195048372926639543288580460316774414066872127222854694355593812023221128221874331027567102552545652629697323685762882821755162019261958565735465863693286222090191652482015043298068475886505253089518731230175534320212399647263636606606396464190980540109297096086160126709351456288264894728942901232472701387533392844834121547391984679885463382310080064627359931684570127759140041098545301358471378995587736233782300415379385028512865220544243223012687090138471199156615966003497731008249665408418037136555877014745101392636399186694409365246687135681451557154834705874535480421796224392442762608008021757947123588455867963879536736853383771571022840164144815382252717844514964611230502120864628122801883976660085419610468260172270707698462713496736180305755110077503465209874909220613738391544813253526081599591758534718614659951765298689252555369341320827809219563771166338378595542223034165765774319265849247511508566044383669946589628485398736044779989723123507554396999956638973852217922599083098320077998515847122401313903928165338523625767997178028002061045273338404738544149356418623441874668378399772503643793817176896067953712660850223120328253069883552380544186132340344627376463228935898633311384303516059385208104104505249158867862507953672151773922254384908190030815327343647021295270705871684478333725056561912799186001567012265165906114530339503878311263739923973429117848816808436957744064469723660240662883780874219513805166563097126039882701542475862591712903018830260260491033610828285368076645130019517566234250215235215354658774793394952829753311605250963709771645198238462993182780888586304910793414799676998387290224125507844678660028057301005783890209232655803947236519051901925292221044028846436334659479201739237735585044253268159038806207844748026546104244737538200485060493140467867498990948727309147566473952298421879473334823599041968507221248476741374061250187316420130084304604070185902720551601702940351695249797556920461670242871195182807744509440869579727487516160010733009804068844529337869808725396679169469918919485289053297498522089458435232102124695251312198375309063315599357295861632128681869078119037284322416184669054814415097049775312252342873902413502250983997070541357488115070523425082521509826629818312904425654271638545688839743958651498968010771574801613907550135868282872511652223081140321542371346840370434602591455737854065905839327298520774727034325750147031684367282099942733477539927563589432558851792655322897527257540812533387334949088960902476579055598711697047531457546875896599674804233908087652752663254579361156255377839849316479558075978054367741128094396115837301268897574818371098867772682229292735799805432693235814444046158073384752553916469569529428359387568757751076681549997707072705064903196745678226063287002661852476881846348882832264030096289000528682833486358064892530325141277572093366983196409893477258851525471961249400541898775798924736381816313134234842970522633972984621375905120878734377402856717366904097107925725373326334065294527296071618190261016211404250918795086801598288099879147985872177516660251929906643656798349963699745998422641718948923486856424594989601544361561414175253736158045124117072373527103593116071509568859437936301115992848813954614490998223019933917369642911262206808119935637614402278359154611170469971740399308880025397848864008528346129047221576349897075355076183520519169001769183280385077449476703939998088598054176266927512715775705204898497510887943048095760876944661791994296938281113483483165310406221048928589906171060631241140685749917258895081732843166550328392994225890738296559018243291884564762523022613442999052841532108090153159537203695074654630031968492006258170374887680771168449155687465392087756850555238769905154493886078090702949374374233519326989467316455636581357808442271613374632685674554158949295206874266981244781856819966278067549371752665939498501494991064752340235641463828470618650913658114511685884376868672224717043522138171733486769892833253262939728049635478235986367738156495975407580693947331207718209380209748106452650371599896255596087154098476291313992310949779883149249596038015285437401802386571416477569938424769609627824759593155354281176586099420248383625979580728305923325801029936739418027640180811961205628940565240562429954311060561681771631742911257838272941086983397043376279897678451863069843577454514126490266623315326685056108204191426029322066869948709915192065940121438640752641762478483895119935390634416353165560372161690635541407515164773715088267465985774230141309879726783644638521289912735684756505681890579887201336013736041705079835604653999955654260180586588490336541045128769368802047249103891808860329444165324223763712974218363102009560236050432813123329386090421691422897544977735185574955272142653004341854427754251718374823000738734112423727017033732617173096352716482142125391797044796465547461645734163243673402547004227700579322635294675804760224711587245270557473254781350493388479853028886021639889303774424091329477952273445467691141293406791878353500614801944725251483439337354766685646329102954144353934941265856144022991096024014434488166050867993421385607283313110540455624530880874173749944311506421244878756541463452038840940170787056666025672899892533537555312174843533877165591329347772462760841564610893169848184164469339218094670700320287643001982045027737752111866644273194433655143633477161223243708556109021378465967182185935756433687527854001856302496858717149297461357072574251408030100606802095419159389667686808043278837791173740853205292195638109928885645766538324691125836583183558272437513021356274328379989714283047144565460730388653741465279236025760362244699116261346186617491781227629976956806343907719908493950906844471233903888792498212044767467393091217892530957416696761168083979358637798516587942895688798619329996259921449254508732005472696420117041256813320820205984683202923065680381957585056539708349453198929867736231725437590153761828955737939094580201353295654035012942864543488583784758325105374735066247566961299292514110870126192534801469740315863927027158413423744221932784618542606214279438467744422697109086566548637988940173682195585397429772290296064146563358027570955709755531431824451550904512962451009837542649144062479242192043843523551409966708488724248714070562076214602767276731574087555540999072119540054514580712466403238389031697571832661144432192978963543390963373658508718954037996202598127292143610085281293629087533452037234755487336787350470849733815247549555275250945955576533774287301025262103923557997138243534748941797273071599788484387439141587603223732544394538786400108844909534205661860903359752219970746484922679749697293406555607216718797301193680621507604057267346072125788336254790050125497750472532448459195933535525917937277185794097720485768290994011884777389991765383064639486856442416220724762347238113971782147482225079953338449671076154891982335609113898551243499164507077305030724678645096773817045586266489263543953591956446828868687632425297224073955680223759691384354606733257749515399051370834880075585742555114704624941432484893438420550588046030231814211287075485652916354683011597139749337675655565204764823496271311071558099946534520445026340523341602893507583912288992623200367218313117170583844560510984292647189722624882580318696537791382705921795925246736404969755482242475435930859519126521304202707835221441015133620821264554355169362752405710754673739867297533979938473419306463408138635780247358899575622846749858558659172808056786005666443928115978673772814968338405724069779799316418870640145562647733972209496274135770006465936652430854959680546998412828839439211739526168164029660835441044481779386874129518870134901732300454214550632269948264745630104149472325553196744792017094925626677206201701601119430340364001444805267072445201902769416200120781294582095595177857904718548401744565955195907681203859542141416903640783782708485017530579564307883509350774203800233507222862926413882195925793617747493291744651761205856525908470321593569352399515961632625975313578511156499292177338662816975899761092269706863035714262091546391008038214531196177445039594615180039140259438116088784226398771810385137983311971522822450186809245656027690799694762719600161573351518074932287949609778553078397596408515341394999337854238234666035335964586891774042131943395467707736986519540277158107313827507863834341377734273691290822823055317862618950108771728470181603353484685582506325445155135795431319849980868982525333880340544576416888722877760088761530805806393288314984022295525019800515373011679141321778836191577266520471555317993226087809601998000821013407092777244228556131626553660757963945775324932860736719968002903845600741402759689532436412397286573538800052318712031458011624462795078726770823444216069583236000763915186799642286723676731826446125862458481389349392317792522164549845633765471904985524966469557015676606787027397346560871461503655396546305011489230606238265737121855889816191366520212963589640092181931003052551213505506050991957011131933498934816553011805438793701041389370360878618504608276858571474757247906157812055010131811669585929948959098302973106030239113372115397104757446917519002175581111630829756390906729588263897478733551377555638947873399711155675108213919897813361226535420738645706675907441707311114344622607754312144935474522919793288291345788697879287632953990548102471927042600459298747562042236804220952512233391758406734602560257839102355606521680109549917269610374075596098323836056599345344378986604269583696392942711412233041318402595122884095462783421980097443246004335657022514760520842137268816302538507143771883183134548315320078683653663520251653550719878551182885967609814326757807792104474684323338681128358353260232365273041578407748129259040912688157289900735111279598425106332720606804351552313012721580380814456493993511812362169814721156464294987927271622781153297819470821023941260935373258391781883083265077719249544017708021536718360010892197802219971381090424913454586603165020464805403296002231628842035929047024873588684750787762915276870654262498619059640320068710166432490039607332900433410045505708516542687327046579842590481402380776574895640805383372745491028999299942175571147497945957647403444094667479547657296671300858197454358427389363685631437336348961114814511931085637460690563164123793659136003799539443966387656757068353133126270436251569652192684908723561304065240702317165811745124163656850975680843078675494001894858060223088899872561772301649520008812646680622172315629934462462245942846730652225948123116181472502995094001833254235719622318359909324086250870128300387728858436623151749934214032676653470737023869305856161387220682756989446331598636981951589991333499246113216952601527417893631137740693926159895387507998125431329511120943427369853935500451860012774007430894935590642043020213066300617307704260048430864645765863221382937676185051457702810967513485144604405440529373246247079255102804888073822309716061745329391112479012850842058462581335703628282745198925290136290069781664871250477818543806235119606959415574820427832914234553940699045005540461430240247655354755202852395202587957482424494649471116406391936769689253979799913922034292371095247467584921534709251978276322217545066738885537660970858691849553517487575515643002957923909620910490422415150345093679537166934170250175394257028612448183760596972380655886111143121847904056671977386357698884918879551949499515966808041881175098694890683760796313426534613248039708035656888502629667109853576480132410031645270569992952641203754117040099123934797011824965667159800447829947258164659722661620535289345782307730200473399708640446266484266769215377625687743160879682299450250349701798152351077653525098928145752901385831002542154555804922055821165227384794240366285172112994817179186905261106560372644866842510068411937180652530697035468848365554267451524951909451271542388419517008883196173962746747107032490951435797384896204906902364561301688134217332154547249846813774867846292073721854815012248395182914953073749454007761128300787906270052065680415255639741056255306625037679205601109478454299926813235578906745730670744920822753253227295163938242006446521502946772677088423082169640466508723152812436311278502743058571846152441844259123047123142585722314793427902707243926699409263128626913171895311666959908896359971672536048697884019965215347438393231505790852662769992259774607019388085213621281255090257162769507408574539527875719122178893386594668066138562447310752186221396200872292938127894039481949160335254743096579595756636174053272930570760175071588084994946895778191501994093342857125896288590253264465328155515637727621679272405573683430376926910091325019852253660673091377870292899990961878370470898451946801020685780179003046889809359085041367906681988758264578266256621255667564940163350165609827491183861616290279344907842657213230729606371220491026333846256068821905164410515028775121270326462480050715310759293210641977401262335528650141930422687770095819635321580904170008966043254911043368427057759831552766477330337822036452903360963890052135430833078193783023371385075013229126909720031921163413025852657231646525385542014978970590544063472463382457100149807067666560082939612677079405926335526770723291909977836142065212659773935219331166710241809845435964585660451173924354467597490854029872206091393381145836247978922559992327130014708659661212733504079257028876975153018690808637284630627733866320727673164456959993054536382520198774772267675265676284052714914281399322265779945729829416220174704330791661992273474945110939546423027669684729336385496284076404533945030931642281908805302561963571639005821521395428090261456346736013064106759242295934119395730683035979279398809238929930598878826990412848609451823960693891855341407496401122897037258349663130269822983557457984211708827065507885653293075868625115898436184327475305443575363244815718160564709068078838233562422371352406269356387089151752513354887622166472143416061818945808658667020924987335155006597278595476923112522725829871198382615184874730945681636228756016992794137150948066876299331846904853502050300978802514922838764575089039803547487732824786194775384187671116787608447714136684465605224905773569265014260067651617842421852149543287751495975920464316263848777832063497673482231447271245509712206241869890509166650015462191020994139086356726960741480631139638857980911445959469755154038677010755454416036773655938475739022494580589862210163146245145426875626442131943212428760378417909961549103006688644759046268714261469594224759240377685227563535645433564643089775572471189320743564645642229277566780458779990797446823708886019512579363908419325857805370301758769230833252621282871240071319923546775848719154956200091136654344280713648400872980525987949326878150867371193302850706931856354552398946969786735982577320092004875075559668119493157217466780061988679930399315327756749349734431606638887824470508596421869390449839237545827402987135480272086753875497773049764691682119775182814188931003188565578224478952227077655643616799297924120142805972045114469076484085123531610846993046934636802791253892054329151282275107667998142426036519354880894461679532054695972959468948884299690109574923398883257768378411551301492331964188648281827716477581249964817145203494761987920058855826332086655596506212368415593022820341944549056502434855283391553427853031111850092029653409063158956740071194272495388810538479022422890217269862969019525830478678298268052043894637943776190258853417803283738902207222403776707250618831703504251433394572051939807577777624801257046535969406078093983344614232725975350141309795674026653933704871607245493672485422072093804676055234813141519620520982005740192991687968473646457462566558461997804156286315671163410759939252667836729398147180823073733753332574917303784757498855700798819571086551976013925846597738986275990526749284052741933881604334016465938315342937102937970775845226895302829388586208184787963312994924178021259710876556174213944803989783809763026989539056224591448554682092891178554267139941325448473700191476841973081003660305179401855366566787380831795812715780853172740117688400228801049616217565053358936590587708961479728312423802108559606834850229386735164925299814311243881180632010654345120246720253541689218349798164914245040919767720732283426254583082528992985157104018923865777039404762933552793558076445817736493991067003181162707396129894529054895087122382553565664136138374475134504867466039594904681779841953400386825303309232813709924504191100297563755486759249250983307915517953766251454546086034937987625406501854221082408898136028988693600146268959548474380180868060646292985281623032224372639014185304194316153661487466348729965315867149878767446147730179201809543612663807353866278171120697850289992106047285908365564292177384902623851062502268653654835966407469673391767198414491743085582204760606073938124857965018905077749406959907809684557854257928608965219576344731583214208051367968470054999745489805938550728445465449775926488115042954815631937540790439836429151169833194294687495563655817432910220421164949420314330211343299823727413751429510739085048927826817191043419681555247862247801024880506945598289273619181643609094044710679985121281262374068344361705672937361387481109015666795470206425888775531004654967600107280413018847773146870460716705819507765242505014542742130883030576216379366017122793751328822291360498907608514888789756641224602343459800450425288084943131891261353933303905082295966779628853704336291281208876572735586135798106912975406768348192570865417439982050447838665336031076895867275396904200044931756841938741203488916997120113510781965005826665695670345954813711079617128500402519806980424274095262194711342999275741110453290417776154683544540832375119998012891806532141867902282405613198445354929310154210023904583417448087742778255894674491540266696508885842917934523615624946887648800835616664237885744387923831609620295187397976110726013809467004952251671881893942217196246889520590349864044299991132242831926810034010823473901370368593135521071985083369241442538457150399271337720211584886141683415698121471182510596244247183354271499096183251417271491591580440791446352790732400465479612889347704281898699208322216483768428798083152482053184529239625409452078638600450573295947168885317668364285858883140661942632764454656505229854878975639469945044697834213926667144724414768523676922600985511613788105857173128439618653606620114510812560310666094438898947140509687653648604200470547037616477468064991238398237692512070237674809448198006972189762392053085462394091359089284565710932894678066560083737594018327513092249288134705361202945395846267597726364938935640183076134304023770126795694540818901077916910813553022287000056611977044873021891330738820025107806880397998610880098112934620613033617324919807320487085338205002729254367466457854776726346438834033826211676618975026169794045673500649905445392326625072242341251190790744365926750287994415649699880310125620372162846605336669974457323050528138071502244743317444156772683411626041698506423068540171824001689403422775341204945518883061496031411502134677793851196179413754164665119651928260313443181862490543596170182364191290761368371021704324115648258936301885203658974914029690976128155074104573396604770578555364130099717674993740240207804404663995677147811592688465588555417224674554548119892789365228269856727855045508694459880105634810161836329770843670154356672403250493575914710285124293701096981932835910817666491035087767314780923980530448954088984886124168494283529653501342136858584233268450293120817895946620094314172651313800342407012789582617058810496604120957430221319667681778067216848439265213895838616554286729460840068990801222593359375410274835300804043933758935741419222155951796145912483509664695951696139799207723869785281501592504460182826425187832901117303340429754083880049409531055672139241122938410672800495807360964766102888723108172613669383600135161992100817269434217915657521040386010364839877846237197595856534266575155777016188034855732036990617209947616151739714255955116554833754815136655170187919584567093608455194583577303132048802457073041050557098067058685809125969127085492255154736061601503137623596494982800328129119747280465241035260833058778639426021149319836913112304686755371550518778099984632894180007009306784241389321700059664607765929005057135750383182812620042273602006845519750833822615597027276358393775370597779485254275042103192825629801713288161076140020882851036068044559158595963995907637826882863374566066098971725067505403962473461101257674459928593420987359419385417650232827749704634893659338379082720395753644049275470549326874066606352831978130445264433087035818420783039594755234692168701124649969337248049170081370038227170110823973808656613642558723106012809849543025606778574940073199900989769407351733715872958379971741809263094310317518283417500265624708965579086637742169407105424508660255689411764796190951448904778792948165978233157413102476872244228395676772485095198955310119875197467791108841996590624398240783398849429023500751797666712216982140468448908816391007115216413537178117180687855465496067444309703445227157213894349280979768893927397426346136414516705226091959866125401468689204057694947573261813852220144385342359322388563123090575147919909032792960169945027298232258886239546102589929512780709806212173005526275690051123237280223681825883414725233575199729730512774863979045682459349120913541189420697305623778400545367305953196208533292743553853441805585593911264867798158250003253339835328736627521749553523230169615920762112356179761901682320691806221352872126946788357485895707657915061662892212899589214055669429109712499995843304279756335497013711435378026806212857793862064850555856365771940827731037434514754371106796779123862327365451289900604529309749353829573085874615148631437338382444084990333829101367941167014134919454926769536161240708295301898559979024290921397881241585107351116023957369671660971987656842356070277028893252489237250739213968832435592923270915673466787483306279390645790095290332161972641956971036432824394678853307105323948610811613189927828783025862686215298587722960881980799382806916324060604191714496185359867734113980772182758730544973663557627011298284895179553427649427320757104417850031101468663338463167709986247480539246790340514390528210923134466865536866077531022992221388399145968207975486991806985815765757406035131474254459360917994833985807498575842687994061527986141575597881965588961019128914857735092687646385513702007101966076689674866197655799090993849270763158174288191024856583635276027456263241745752341175968311817124720008046816004129583487971895187519538224059602378559274817304990215960888900106164296519674468507166873821103743248788584583256971070501697907330711004070689327142179195767120003481412351850643256585190443705919262956931252514280584036323726784873590422154433183008722171067106580137575679285733941876655103398441928990010453121772796160848726124562768404500889645148272780940135612882946984905342466441828134923554147183317029423583738325109424780961868399682715157671546381581420276737941927142633714324683758954177801536454136051540650240407617479331840937466098596517962227720108945720878393569424306984336547812034234490064313344247236623634750272609926000543015274627579044274040247091045573067658028772653676032109320358419726637232141833192301535825754358939540165009854782497633950316570335437565630185822667490467579665161993137209258795165023692205461049623568881502950446691885982440580379637415411690088442066253754987139106496091024164591750088879057279568120030906678809050106474890628670920588530272825852190667409839577672072493346355838226783998665058336015218518653004032424259735869702919119604820332820803566444604177294534116981834542556846030682924220820006237201031589051405189631915956390503774558251886630558930140322596104761137923849719804221465433112293980352765217394503435987616032635310777669952942827409209371501962177442685775369548714614328240216298682617217409465059699769528751695919970164644090355900613557012321534075816728997294848727645917144495391222022513865977423067940375961561306922540184935576919338153242640268171184812329054096313784215521104816253530625715452346408852069898066503790949668671221154515746272550508858194205524791943670151104515796700761656314671624948098351913988229555592075549057430027195493559508019756713429689042654874953847679499603135421442862471807524334602399906042299173417416993378617008266907111360416458080464608838816812763480142607264852516537489664440641714418700974255337294654326904122137891577926218415949785514903107276334013412704310755352127828278388666289456102183071124644538219351300445985776846625505452851684425257285901797424225365837547527667932569096595217384489735820825887155875806832808509587859351010790598000022849918158358037658424304636779865444720260243541814689323804067192226295920888336602005271655138147470629346735076988026143116594599743815967373200775315960346619271349429199850002359008647079459271525379844351938988509086774663000451140572743285579175604442504101985614163959273034338320731947840026467336131296100970596104047174563768036398881805732486690460166912371023324708718195929473573015915670878244548115395307724658510316124366806146334674290697988426263034581468009439982115453929859569261551707703528219308315659530248217302091983471377424939503775762609355452875741023739837660603824552154456591649725265165560315189985628682932734596086122584641165423672761512112181953659065824543211858326466034546038637053188212420488999578700795888618894465380171509178879524780116347562510593869132842773067580126564108513273304314204182800590759457513989432017524916011577553395664030745804448571524603480826990356680465553135218024322053942001160545840464153754183612090203781283819832923263854382379890105945999485031220825802360230040534228318293184942219838924994900527759205290131383076491711126137172633734228924844210253641204538029691507533100305533689464531735161771402985193187523999590438339754430342884087776823103560505775384652591911853541525310724846614664445018258844764968658471886830312393352709216761676079685741157054732200807761258437724504088857523105901051433586720834173882789903258792472475804587109137867625426300969626991017307394313608704753933203896835958430781881110818427639413283253476387583471180027122015811513377867589142771185355876392247439640002648519287294457746213690424574515398027793258549177738470222738659474509464629509633687400574797220299223242489431704495710283204919597674796920300563720553122972769217400519535803267334131267714473922133201163596564333740200677022867583886493975505797158431745251204149226294235392505983812545190967194091031883726016066432941501887094419582690095838327285429183737618601455855694196764209500093727699619321379955128067785687505859597189582109931098433296266627845059670319793296414949984331724080513572106842310383246163690099211046600734649350448849375029957638798073586901781958523694036549532846103026430956209398131228099630164129569397471490589643751696621007141617234967519108328727444372526950568776332432884371471968073376774815175494690373470606044599978975807403432293579868722181904826714969590067992918458977397967323853890913698085065826169228867424974901581964182653178255122046831545617959944127616771624892550362984409338428633736978245276083040201066875891793391356684285409609974475895563672329362237410506720604305310384289013040121150217612045843651053778337466891662378103859327702450544232612558529544819766523992135371275961237231842033134637694110015966432611572940139287688017736930832908571578921047680062631544097807750277575017405043059268496039269716362240685374441252893299726080321607959061640438901896829651787310845049581319980963704478863278000912522812328877068748034615820946010508695779082039322494025639316048472303369373814021326003848526138625346256001251163638800647079745402453635177043351594533196501492887910681969104035863930338310945555223162334638940132471784525202864636392649229671703788614213222121902895296009396337060337286080708997648342501658021640240552407337461796141285325223996063913196567169159138636074905721288967667139966926137602184985451036823184277181384066393038454963862959570853026542312588928350300296208193452226178057759232586621242831557055034814389966383938776636556160760988172894435423837851036447841776582154348742050224794155321057601847718748692004699186053202577209747236200399571230120623979058890706027530722478352564746299788986611566600475615230449695721617829991826404570244804383922192943592287522363285182751735221326179758708155553558938694440762770035976587156240126493105270609412628732945876001834765082210156951330040915750399196399584112877999378332068992202782223148881957047852146963123646541087366534323888703355152200468292355185920453989017124009138642035310619388996527742575184662163774285322302557067001281165763325543116719573875183180543147765045164289696962611152792222233129992158849608268595125473764398527039922212758906067433402419942785232158244133157936263316755619753871422347969566587331356390318807324003541524145844796740532939146351597467599978158594060333317189111822527128122658975258895629809399190938648998724613425086982278673304117121512393995150723078054981685871751616337017536766828551894144411162580100916248418918967020555829315875810458314735334295885365756167011829799785831768917959656999876461137361239655858985513671317263229795329254630668160832303599640628326821689245043249119481789510025634798708657794484929518350824116622384955415265865529701754501225943307224122063994339787540959050748660890140013020299000549356799504146930008585501269148704659690836955563347443714401572428532213009541679086393801225982943162623373427909430326774264207286843905965134261962817392491034431578452866900703462353941339989792664252128567736999126588701281889188912364409109173499222086939408689456216397829709445068993047505255523826510572472121254198465773145750355352302377059738208889543941936930015841001307084270452401021936409458058553311430455584553664137385905925160344262260284968425863694071716474511577007886971005579546158772888130932702494020271229048169042823832062648828873487380851144276395443283312751174156618152551417225567654639952106378317117679411033750008017048700490053166180015341417353004749304318609190257225652954924653930784959159865597489777300963797455232288002279192774498351000220369269941821120064115986632601850672040052504824376136401070223622936370708748104988448432857754796514808493269963379355959854912198335576206145861947893738940630196493664332793953341144800635415238644213439345378466627464742290422054751152528580012221737135722113470126949476181089810403203124044293509005241003123910969576185696963950947075631687500011353249658053920501515788546704583456838479445001149722249162831354929895104006208647533739105073991004173085859933636582305521162938001051172308209855540392082102235729780283285350860099921645698897701547561066808255343482938244228368336357650913501651546732188870703107808883412335213516163407410755200684424038497424556026758153529158923763252509336046053085523425975768494214937522958783837182322015739167864954750362517064013969507838035626109491944546597598630186594827526078217895426986151083227299939850565366504344888071164576034354123898951741188886320778941387311568312102435262303254686569177076860142263076314516920989447670317132305027740504218340874773415117021716771001792987875594064489818581318511141917236896417102203739707596325035593302639695421507040361101990871883533398750133353486887654109948133810985124961459751388526054451614169438300142280085075823190327546132739400358605740664812334223311273445872555497213846362103023035654439742599054460082209415382989273834989249430487526752768784069709775085604345534374949131240853800340202052575752906780786268493605484100276736073904955920747056379153091354618144363720581582800275520596165003177106498471124071349044499395978218101648130135264216430264765565587283890799049380009962579043118759560948910312463013263191895139186487655529384184908580102750386964562835206072646712822519244036351585269992593884477183122192005362936511758343562652218820795133570563367768852413225227967939460299217908328297961362887327463312120857533453765202187012066514938811783135030690859722994787136829018396675605369354175464375741708107213484422076340104662693634599495236161290559574694244154618916746498944236421391364785506338592168746261451699861560806893267918365619057888890006816141783779326042560787497837425973113606666301577054362267266878999652082554317739373094557627440620989600292130432798298634332905803888392019651063817462099126196024230238152396735512734262376864699451111526601639589499873878135008663194286631524740177165671609220823612122832736997993709763339169230255924219404958703009010596989096075797996414442975307607239928367809037522509324718385866055561518557743680407463041422783353637176605772770021010088587907995130178479388206359934591710802970706222496473098706411176471684055640442511064406128097929018332793998040307167174481757396294417337522733927896765061066910686551801478752095817991752730872083876280499626879730477151056629439284214817729941098507123707042078640726172340051419852323817243703990480222560389978755016856810714689756092414656178923523618656999357284146693240376882648005186443666829849875823910508517656481799183739301055917686014540583065444545613872580866883846587372381795802741402003260982255060445960233528988894125255441816486859652429531312494686706177044251673043924617228844994596090783232642910375920600089461497924085404797890874416287049844764606893890305793244610658214636357280224651307712342898847762245247044168139855367762152557651266765409020088393478201567015044894743955404435530336244774178080607978442446098235889838109499648657961062081293329826239578799667440191177933556068977847054725604249025460502153383804156957268095741964495712111676580784933918710836257050672392269295550750615032606892790975393934627235920255991995603043761206267419501200081566923679506375703455056313144212909903488086895368898249393548470046468547819780636643579919363922122165818849754041986866298550925999921572065527520437040753265727945846648875749988445772444987250509361496765374494808853414796866039654977273617447196941505078868870021563310950012338225266899354324978499030348853496680193949117204712792841805281171545710684836025298081710528442080523000573358349254281678601946890864041102308176447967822454515234213826740669535675305344475787456182284362706939452587382094557694859146827663200734084248370556115206849552529143100038541141046341510434068199246709005313956865928696476918800072012332490751065210007257808797654381351680266903486874014019108904010917709261440491628302405283206007054389936162591454392050809688235477681727192868797104132997109200366208662910185422952772372008582271084413498036840426556606399097135202032178693290579599377858679425549637317181631776931231880081065117627876067054926768183933265938430154869577638719452353571766395343202560024445097028712636075219320117744677716650892002057592302139660170942246626900055902972471162217833481924777197303999806164720654820306491567420613659115593354011380103724638401404745024620615635753751738704062966473262133396525766537290272774946153684996607605460920073486001817457618139455491853145394311009317617427863332602069274343467794045189482467951191413118816511091752709239172414042641613764301475091014638768229083884224598682008094381669326785671482208938593121701952063445513999351715595734770170042913462438003896011218419782819364946016001934640817154151198268973248391227825367720640928824935666370852210102053692936362706707736285724899154778167467428081742555214194844076382143760294539216786587113985368771699848350680015085183415515255500632145304952558813562618014579044241704068757846225780528396027223826323299543702725643246963882518311785920436789421864983527982961872405467880753746934123763844611840117160726959220555313863395035226338604698434448785511254212866370605365373739314315880232507760764618531663354135021838925926131866769699536367641995942797931083139137405052456618837509180259188618857406545579979713377182905352192969672092345370298852571524948225542330438025357086027469251669150318184579320303517453733323533346165794357744312355581541282041285559892293739256710341883761406998916932532120009354313825270140058866191633144288374275227818865092392537745618780471491084106577050883212519021770103137351872142714765834246823561770545846310002965288717884674877011502595067606551621958323778640627158588273893168642066722370891366045957195245871837685381943743192223257587414435770156280838296678544110874656467961110071880321272951155445101802746602194509040359345259053578536835430661978363377746284081019514451536277693904624525742139791906998365007338426609340390571623097937712451096790195153887841153531440966466934193547279898583613309660909278390783553746945413396017866465742919894188676321975020911462532632196625639931507918014957070882683783659739808524020956218604168923035742063920853770653635608470071953379416798346644041812971288426750254339212488954322421348356083047672516505660658036284541447535773039695413450651811583203270156040741594422509400724678542458821656047766703918201501607906815557856323530192368682064172890505349484088872003316637440000814739075981224160584209921385396595638799135551519974391856026075612373355665814582382846535560496123717350757641347293759912492124428838005578845473642013707906821985366117474550075601643866070428283819174760888771728893624116061304558368540063946973149464154018274740954824845493489836814712971867524792051252864559676520211357225973422029699132171094678447544609692569957288568306868756606440159900046432954360391767680570210082265102855503340328656264338171446583192633952429024732761608402055564782271835186894133905002089611133287637259615007413586351670149270250372406480133705766394633995148514619710359459205312474468231919105368461957569373222775410273316768569734350048197900908396795399741706641214267303658180144510307410892966298310744413491698330901438483606676875952834087946121449577479763953964688289914755035391603809773706112494726014490578405905159090046603126539931382659396762007218969160342071763510341167033918811006258225345464640385371796374711872988989147151220944609678753747465806656440449158537391389417109543691510378098768834585159048777876592001395454740152212085265719145943312651353129579973345826082704322285425230630483529758877807825651784375614036225220757850888780347212963369760450056633497319355603826202043144232604467825656724961700523930523637624779950721138041346418409528130072390686723821995147882559850242229710228709052308885485215214741078627125742908942396977803483126603308589111167346698313820345026090284404413078469291315465548336584245581509180195110267316316539179648300853044032047245522820575471916511421883776350254300879372321607694987066794326831199732216998811879154548034026589862875391874943835852998811245006928366934245739183207546632949907816991050799344372734499552869132429251168584962807389991362011843747124590643933379293682527461516029082665024536988521771701687064918270774053497710633796471011585065164062213774702102475667984203797505982498127673708767953090029030573170926816699680157199382045083462458223162828324516335645647955982919001591977989635189623397395887008713139031637879927109422392541462032688135817401458671711129605763220852969245738661570381665195629000974625475891278496772810087765407745081588156050139855478944760626129996589713285484768500785842044943680568578156841343465499797337007587389884919044313649886286387179985419643755230305440632094447199400291233460963021592841722999558699384007939368915426057414528375045825969635531900000206232152597790412499090089500732995077090262021869558203033654117101360309567420762391015060503524768141060974358746224197715429211451916376010067673352150153962034103693993791920665291940857036072518472161649231708128082483553325087592074581346005472733784617260075563189642255378623963209502393775945701965168172094335465494381027182502635586250113915303173980097768695931061747488696244511187538341347475848528647712168845030400228632583899045079999512083711428533203856658291091649979813212327326119456615774144381104483941688180219941210224998197208518781347415103732892131880247947336935979771628779701462374354558912921864086553334073106755676898112275510907521220966091260087351755275711962854143050547291152568528051914290968949398363530398804041820614584728492663835630626129449547061119618809048503915126424391461742693530669723492652367679992563586479559680144035602731856228073004560092652220782758612386579054350082214033010905859634496981953148518711629297027817429331782360580738530787095712463770218591120868311308617468564552450907160662609493827062802043619499405087106597639164419646326405210550102873816511994324559833234915072759215761797618197405277549389930502040957351816628869423123341473378465649242219556038040662566354249209785938767084256405708107171489674204629931125467335066537561168856913163466732527136384126883893503997144502730797182106187631586401852024436056566455929311100897004910276938650241399774744696024787224558566327725916227843763156892791202330158917889040748350032822649541124948923512948541173074262566083782521585713232697116186723553078463097411409785404939417841042413243292687557502573168919099335343970090311314389801887064441994934181517365813695991018467924934760286683786651512146831078140804246944704721546331726369256253661694652387311746808796717850277146624749609936780179000884051444656536707177139883357856277140011512823581490182577967639974076780463376674115625632713437222862194186539655936996196147660913864715430836835450718007588976987230825861900473381667216616402840965743498813720049949899832222771403282956817328621313767614804606756740620881620288575611854084780110123506030301281204278541279615811875486269538048201387043585508122978379529025259692345268645560032372481662722032896887226528446422485506411211538684167279187331053064089248653965243913102607857309279878220740240548183621545377994667075828823724196842795285784500961319961850620883467021852303583455129065198020768383819459022935864437706358729892633828163027548409016723001831112814514765043923115275188350807624491555541344138885637419268506545269919416486351065185119317596248984368726899005839279318503954189859713600764910393391959676324470905365576357925315101574142283168222947440944036640610929827444517340473220041358175539315126279565172818748368584107600130590497239498213052704591938929314110990204992628495340419100922137388823507286717333504305083571514992331705765152649014557956503290390888295930342228179104941364289875730110464738180408496398404755534495198537166399482675688917215857530828815546084010727539117693558838668280206541786370113819033849320740154048502990638946647878244637458128449379502378804588180443155720251319379086059715408953194408248596210435541496815003929604695317193362044391753478143517117291918205655082529268769734275787049327386391499877702794714924620692424555059562094575066609861440291530839663587882005563054148045410383210887452000404506272466913866313259514807558939145328889829885948803513042697593163074058361498356961127221456316723381270790428909901389970142173122690550688698946504757710111597139691570640521946678381610952878673531330875580994814268330481794616261476814058547072642641040936502305013813086630623251444330504916748938392569717549449847163761821858629185305569334603640123361967008887878958768538313190452917185694084292127552978334763095676009896638087542881828261841317347792885757302576603991763747290580411012697118287897507972471033788139422218191895495535496385151791300398946119107242844196258016688246156113070517987834086926548952394769009313399473165047918609142812495662093944603586000763748996923122279561628291984045628319078468131176401222883802668419613215597175043293952343329126725758235877574854991798809236718531271137257777968484564602156853732548602476171179455309318165543106341033248029854335933684784417707310107305497244763196819286685389481754320074840179458108194023544900339561826720895220376829935614935967669535975140417359174607572391258866429748872111528317260943113084423593061924952835648541791273857262824148526551550598974573521678130613734859018888188208867339348681837483322140281870325139370821509106583545625016295791483372682073435119135179981711174061247660356269921922834770927806218421980166689893677284202823255562334049301613799921406687323029558911828691365126651763183962556113860627603427267545132976082652368754353087472658030109745141991755134438962028923425180174467941384967605954905356103347590090357021591630305674047229986608988428908772011115710010853547652447523266924287225551311779107943391264571772510797742703631171731625920996737992990211319295981356949655967278028179475281954315536183648694673983937771705013963429020161841724131533508277717966329077966234177918889057148700711431537307588922251949871016329443636894496987237970526387667726859526356118105978762161791706779157851059353216465398802944088314167888907136422472848369485624734375609441114284852067248310648032022265068338656529546447747159387262422237166764767928436260479808230178284049950859213385191196576249932928079175408908018603775074761020343390782340810848670038995901978678372633638571014808462952942760350597169888201321604080147146641441718962209563978035126968357462733354523476816222025213021109216826006018539140175996158139814348186208409440162652851983937982161060881576280486779168407996472154321168645178784378465802595660024175852253274334316867091056851075710930930332493609378921868336310446984253811204863052361424966249918197080476158674582439510735431738459213655979187255039289181843289092916672502457597679642707771930840593213211189631249315987364392074117558572524705307381322581141849997335971567779193643169814197722452615335202720861137047393255180788481230921119721443479012321315054770057992102917289541016188243249371401609077720578013300601147009469318914476807435833060793198649874200096222677844580686500702384548233935519879787627715257653199104259069061854153888956244364743440770684343076871632827408747498407778318329394459528974786585540558275726441415869241214172864477009000165460453900233788157605482747033490098255570625533346828687325234189995786975576177571809498492095725109927793104606174963248239208841792569956797192460774268039608460122411744322588401142609006861180800315719996313790094778656190456118223050525981116640867173220764822932078266064120039372634396458277020465737621870067333753319538609527949459219721570003510866169110315943890198353355436455994616223922628176240940118647201257550580534554706363745413083179269674796561516192416020393428121421047542775516322473952092227476320507676723588927913328991743358332659055536683746626785242367400161757591560964152160052658845445346088003562872254183804774997962072160729865095402953090173874500714332405629886367958321002586790450033048979207033645393517512796596332907051041846225305360771296914341700390930543054255143003934382275041857073610114654800534932397285554662487896393955779871148341884819659407804098137386693970284141951551280032945732555190692171102453775096195204855326019296191578380736573262495290188802248605264978315259188261045592601498427657920663622296304151984586441133254599802673761939567046446715792199825281837558188425658014297868622249521866176656285106535480767426886988498630751934433957750350090610171463350185409205477790579291352949567874154374036252908008760618095707066743549196811841664579606686234765182765197867334080884638188111053419319380715090652624839727819336216741589127749380189855872833570964921568126866463281492452468377327940255961336665992099617580744217672631636598987028984936921453585352746000458326383472508286851595954574069362071694172076435754782273195663618681007414663107927826653720000774695412907848203056739194263456578836457262265002980028415801007269460653996565166968071210482249176861980381719197788165067490958472822457483758557150442427373004267580535445602103137869159997775989503907855436131224845237723334129601106173230763981786352817309783142016878048354612276650604617077878375850867574116086670805506278933135660222650235215645682744141616092522649385111059778110831030142640374298551352766807012663001806964976293468435971521942236290140567677760635855910976654387353699214743170575779651152769854711955867434599048358574257998052563665734849949992870827056348081099315995568977091975455328086948699938204765074329416855085287388209607366531299893715767706743260601310443837580698796891762011766537883520667612841852683653452266178981949017644577567129914240983571049952539881691639403127887894356738366648098452722620337946904401783576455243141978981929881592957540190034707030662607854250410117037715527256040309992591538902177896621150709702274100978429528207690664949867514304001935608158313871723139105006404704727895870696161402348559626372873583094399106479371623491004915812258262204537907333045762451104033444695866297563352225755832717829416305714710418712236084014254462251308593064471650293129657819457991117682202666303934965809870719660123861197040525425969401075958948609251106539146939016180641836129611318630261722106414398441128267260364775429799156236692930297984338317817564850451932380634936046894472383913833973693001418606951514363469697897296161660116345957060399942289028205325514077178452552994448488440235374504626716553318608544781332703505798717838298140660136607627595499765043417872028123544136732570328772290212356774832396075940604054045160957816480525421203416771207556703301230897871984304983452050006144909916347771597046288816816959592466768012157747275592936907552355923733201230570296046350210356934696996902169535034244260085782656429320577651603592172957799294368367356888190606123566317233295801165412855331213782544004096112105977340789849464912175028924954863114861575513693217423011228075887925333466572072135016016954354168480557323251259242946137707625865762442364524460152084395267697874755970380640860573675389613974089096875945727583465076051523083057977255442928324236406851730960536471785448625771029948178048847082070434838275312027164847357537870717266748920010925193193780452557438408513599205247546803417008524437662725597679039487361506517327611871048685086207846292007333443959187954934464040198696867238414085774920626392852994913293613590466648767173292283053511699804775199142445627947067662921376197736853745158946625270480629910547011283522451530999617025268409504867764451454842969389985543982501246909402945517965982657829987474607929369376333807631156860777006780391361333929279979141397024727918714574416134127482962699607593530054730201869791935270236800010609135943972231623119355476720534291729566281496227580745750961664812019885186066568807005718908460391337436048025163783828356465488253693048829051034202193155406437864525339256036491076030530229114800653968085800585488709439690649005991361013870133382400590667646408571523232747702388050463130291440509910770001155896494490756952230592222108199962050177333998241268052730340580199345671288547624998554048157688023080554672887179190352825401034031835929088370544067256247175645063539588481555578072710573248141789178621521568107627841485069297323072494937212885848402082546819964636694139144164458259031224952789774006022749072985322874105036584482322809450764326278043080959026017233956240018965873453468849298176668275950537290723813491982203187710027313025556492696200663812220268715082193531786060154335487822083905310319762000719228213355821980571511830691910141081516080533403271907621684282840125360732230533253423861234307778667137730046223081124560797056444695325900591096085916390371460951350819493550893190564061113319968292109178493112209937313695201935453335167891868504119126413577975924534370623714737719400423106922991452962809320529753718238949611994005979443581941612824198456257948314239478495951176467772570751954320927985555577877869468096197913249173666466600825277861622345692531104655468960544152145319771112163866887607579385315536427589268359197128345772164375348271655748146398794950184925113046423419233194275104614644614234535022932916403878121017802006515482481788414587803063140335708064158146106450922012412012776805055734314498782501810409202928086028081623482833604233842038587986602279600920712033627093962085381648240173208010743220522267678227839645732135819558113412742341768663435766493298002546958478741916782767720905059389183899569185821186690858258998659128771009145789237624105162468704841173279424975002409206360055334988399283828918005379234164619245216342449950305340575152474905969054462560002640055221815368967179599892621390447707732858045531524458652518506997540305986715117154907829392911837549486969705779609372019768274723934542914258802054892582874010967462626740828817972702176635882511468780611335922722893139751675353217616544325655282088731468617154201160168176469257481739709181899442767244073112750673231614256702553870673661939328351720798213374799662928685685161227761144177217470472823286802648415053114134069756941770403410964976856037836143160082759325646147378336290797356297894771607849324423595656297608596367510620004479966734649926993130407689724926860699862889747629320020965244689067619915617715453468318373883550370467648063934023978813327034458442641471610882010584951733089678639200439229826391733975604669761957690009127536708727133171160858847846609481172335050414100829480651497442431788352591946174524512045908133420901185843928743598030997161485770221863168327792697921175139000703860105558468604994912459313102061000026542303135035669294501846561047430040476367605410346541799936951164767332142320003564779456401531517136509028430982418727014297884907746033471631701375620519415521092897178519393443058082727801576731938425311714122091836906371225406767219651282773755960337837453783138747045081407822731552967230519144754702217699523802653311969582681826109048291523311882367409322509451016068627320307175942947737725428728337399061154452497454482166382679328475202713383230663639793548574524238039635775872699326768489645475002482621021071383606182203182600410084730032544007925410464431223669131603251854409514520032893199097416467224483481452527657556284391632159614588723308124961599193733830691611022088355560517193063689818757875800635582163892862685940248159077426302527052985412832383925726289821960898810606504180276151549686385206446129975932109247117397468400594511074132201461755267124674182847021451936945766422988407301047599359236038547526665410043104452239703992086153672447779466826370928623744631199359008122064656829524604568955967411101689837133494651500453851246519657039389887581839828573520789488918633738855761062985357153577740727150852641744142921831083072248804831992950173750526255001611119144194810685485984589438127039327910887789796719057467093050076463958916905072426174514110169863430109524983101115555226754406200287092558328065542040007248743017007711897502454166092946805032665144434808525759437428781383840176387571899167036303231005065502405795398078988608686771158272401197286193170298791070139470447919901259986241697155133597168549803019823820465276950388801956272913764410443091336433484259720621324660612874794943054818012944959882444342927767917860772536953855516636471009233409232640457584612424896226026272673061411069207398246795365272385166471456160633140759221805966540083058436533279771338687218246397072030180083284264404123490393531229769728930212775006608374110685044745902290044951070621177100942784529280877109715648357300384350015735111452626226354130593061160363780473030619322301236562374657457534267332411599310241518315651982346994976794962198952826698525272456285481693145278306283088253080095679273677196274576084268016756345574836743080479964463809054886554508416003839776693955145863110660044599300279177442685169693783949867757907934957647113589623226870895451440141939585086329928821853313898324842717445385320696204706132340263474960112414135323844220879392400320834430353970100476166017980530878511131004269695380130653294993910098646779901284308944152710463448851797641378300376042628507007185110358602422312048971443453728111167202764711326343548378378954946027506305501189986164839305714150133219647320757838529291276697268365207706228845845637676284820394980820126440250994567685933054858213693323198384049067759268586466032264107957616935156939943191482957446710309091709961479038222357080613799214664800785042344391722566923970189119823136872520797252420815719291677389044556025117360162332552619982918792442531035464795579485774297523576034672583173064147261915210862069644378693154915014566269802871195942027129222252216395759053517047527689958323796593021849205644878439492936196799269795221036493134069017298972819763600266977026197300670320031638775920746193065710575847887530523703750249958881103965919997294829867450549326429867247354098987435206494344822425342370182933314775951316773019930792113657157667983677661079740558474644158160529097350218932478980802655976843139796580079346456462757409807449803885154220341562667335020352673176251819611300785543263125903613980004494745808705273475363864052183305896617431051059381028808849536997136311535253222661057189837424554703307966526236177955947039533038565009755537151234422120086732484798590829661246011202740043267093405335746525322152125002324154255227522589916496609590812430173721021948245917116409954018280275321515190513892006031198697351309046503347576600700308688460003629720111633349472967161998188211020218381581884016138210851626925047897514459586462930588382456512275399561406017980087178661863029469193504247203218972627808042993940231501672437627927997584301342299519643441625131805271518054475918477340865931491359021901707332352266783923365072872081379357365736872425820721710025030765377213472432648187934131296425072853492381957590179442618632802259165234885459781911696594495410853497133802538290509439733074417841711460570321308742667740250413350144965095445203612752087145356458746185989738314234710989567821738442211277979345014018921679763420612176261773731193886261252411289567938155301269252642657373367321299820703530627108476832514779502297199430275120288373602604622290965369143980567584473079956854511373611642609649521581041033812618061652531791325203557975341390944360643131380784266960523413108839995599200832626183059066608059321302337553174116501353826541302040475587482287317676005590615875547608862742229357825880685700947923444353419843897099301449818913191432647235466597549712234132471086711311869449333191300475364598945444552146976397338526561952858232665532044075218839725441416172425468376602639708231473419420100655204488575173850226771860364567724760036409334571287603108064155593627283516966933016187688364084937191927787330242088571709066539548769003815590598454850841077562451591862945741847457731306962784412968660762188432393675340924123738752255441751339270009898507505833099466728632408474214474392469666944819594013910372591619995378729956905137814721157123798332415214389824563602310475315531152603294902539119819664353111417609523704610045206457047358858145398693522797187395333752515358091103557480938681114030671385907767873641350340945038802483813976382460934162078074830397055819736764688787416271432982978226400553504798505980819441512453359834813153960309784957086499295411360304578563879496800675442014366663453792111935612075478619285820513674202194398238318954860490809546303459998992006436549807233664022145181869402397550750440970164674553290395799218195164707941427478874286257762601718111767982503204987774511870921273830081771484862633084354144726225675424174011547622255475283244974886727546183300322946417049058835480689858734238510345378875280823431881008929114255295363937497468342488187932865968152633461779641785944289366785725765180578490661940376629983956871350944938865238888945740609343355923056519945887858651661904965741328378474317340447619861556092245015453013751757451502233842010437735739897825681432013319117940050368286501148995166411776917174021537203965556506086861380979004465288626530660651698196560447976877058937243049420431223373639279995156076981375608519812621210813210178577014271472661485585951629578960747506032667044170185118544256975419746628399092011503109769802477364974732368566790535519665700456917744853476598801529748518381038877417881542837802550525895959152750273585992445175531516828138219310404258794928746191326111371547031114693378737389151762876787839665894457592873572401969668133215005965670490173940289051182888449389554201893723774782270191236866622006920054479641594294366589265974998677909290846874899266622204635412253401545843356048605583080197634696936644459567788546246836295088623430353145708262305429918750768747624243688580934572001963145370300125321983217832402184979554415346122185071687773579373877652020709856311037971046476315458535381064294822177051208541130682053785673934868141495252882827665324255480994008312498193665185651001547586842234630620559593305840184417774435769379307786203127901487146977700537563379421087907788968943087427930833903078271140175748911012858060315402123210632038928298032705984033839706300757760357657040210101172011214247384278274114042182663996879493975974249080572285138471878539290280196766316620419433923723636505817455215002053307503726993272275334003799601841229981439803235237054143465692855567370380934652095183469698953968184952902837179803511074246340722390099827077777248853976043575526516491042765107083856222487684099480685260719952392709249405745045256528671165531630328410726347566976433105622282390026408964387302628528721171762155307415205295905920726147441933570976160782500952117966407475096909059412457922517378838440307256562249074630754377774921237613714289795458651000030868920364710379940533329552864284356139451817053891014279891178676896775052659844581889859697821292159154925292801502326863985194816293653435720696750625414762709120265187343555340125409075980987632810118405197922521065270638641942936017669666231504546894308805670001488547773392555120731710911315633105679086853787714932777268085567003876138416489450110361877239556308189005401594796179410891720138218092673430848480451625460752262845043279333674509124077066219887844999610920837782503732215805878749945898613253858042495459518657730250080992341795595798547677381822900540837976311378547117360576894617999729623626618856723353032316151656880787854265503099349403037996040578864713275764992886620582031520301395799683823263534996065800749414379052408409269465750920552648798356098924296240876694968854150650602569076236010999909526959930426511352658704558439499831944617808839691977496578971598159674514580418815007412734475429740217448337612097970832715638153490700848621199964419922224680445221864364244347932867383649808498582815641747637362102397774934109353364139551547901667134356970364169613930467122723857804453741674838261508704004438118230328597753803197929171216722695862085888760739002623879859054629645929076410908934146094933518674450580237749988848806488120297299446810254688225108336721457896538986518178166129658149591875247009948959254096941692815397876058399902285660210469516223864965095047940423056007722347312915324752727247556622818257771518490874311386524285792891661648456204186841962542819939640649235169919357432238514287047449546567613852257058513813914545136539777307294310500741789340389224814456993509406822131579700224526381511725919723642253140583102963865081129182544215669377735405198666072379280355389821625923563032039856089167605593652209761170945864098829138683348028819640689829831039421335719198780455091956915578090650300562247402776275156508343080027128414366845242399612354959951548553467776316919279309219591402031460868482007996515799593213798733289060462733741946178833523618290788180622561175667273590789121666037254089655354759966895184818212243074818071029914584084497823489126392566561727432106429633362379326377712692712816102351066465210430690256552624040101175482159359862604218213626656294970889625549845469705712953883437555145035019341680177736921207428405586859174927585195714293043990122148799701615898251134409123827189631988306082726707991284277922709705714131204379844865637637177784343243879713361605021760061252928933513717210894403972475654126909487380494273759120049160104179603446490896196631370291755428699284050513803208696936936277165815226893189327233236117263312038448713523018405907986728843799220215992297030106244471705082262801335931411072989034046171151852225731246631124581621513499985024694737646728237888584224022870972501718474879819685351823512798119861851887426939934808545104525961082759544171685909214647636939683685752672127786308826179782623031848558656098529063115790172420516807745385725613788766696803679118165699063458331397153596683712631917469389621833402944778488675580609234127438342684773669893346061911090027771283456503482072372724088308263003340198517996131164366567460103519199020567065003965632360786857490140407641629902983049051758813791929570362373700574413512651838970928842624861940246962758256973113851873523333492929189083896895197032722351174784912042838164763651601998691036831069831695249998274938060346802781402601714728779963529275539013867249438505092103308545235983763198817171132844344538478679246240304603306768045859174783734602787123430641769362540970230027346479689075462949782249716950398423533601713485459148414815780183014538948382695123094586683983421689840186167506386066523539655249926364698997163391947284918366927178153354192777379035609587915508592495859160483031852284559443340241223051633458473582342765193369504805383557033921976456676597177150533409641730817249937231955510418667208318759503935194745288259918275455587566673820362660954066752031510972770774301867559909161334791308548621561811967843896538921369763113613871752598911333030159752891473128878094421792725995673242719858918375892443046751893462473894677973108692057764830007148470864399645884143507594146789735064449983130677620067220776356670394357139378109925631862014449615843276048046044162174559098553168008665591119446686883972490906079621416068151029572658856844206600672381145656193705573068634618703924135726617079957343392219192223278083338597932204935728290532055042751985803706440246743135225050768606513314217136784557868232932570987436065089164389475709361034177385778553215262355416257158319876446067803311709993695334608005673108484147429535439006679798322140645526597043058669423439363405744193566949541663137012423318930680307779378010268443577777991672017266924779472964752813292139686404232383078318113485370477838280727151535586577969549144843453297752233208661770488360695915773857305586464042174329191798116613403198533231045340222290069268443162849876053393732355902164847800084800539463567502515332975013554049069368902322206136206385396494041725320714397282348015085057927671756274032786777579687641882819328898754849904684737796445954323155424944485752108150571527211179397312674806208357748741061336195256624405324042979235625037144495787742307717652186942022217236838786309896182035906480079461410011691590518853831836365195431468868190212287118357865984109110433961209176948065970802461523704278986985105676545697827411234331968986598989376767533298827759688927737678963471483880962963357005822950659497341492108598756792547919925603643202524612782001643660250019028447090988369944166748220824221417394555903138707934063104399254584157650988671538970976541995645228129503920018412847483575846584105654090092686082514892500121294213591809937280247499263607925701145303914318519347584026973017051121751016960959733111803854649954299577353162956539969184203118904826577199414322656836263479744277857720078388934989951679237290689446901242346731780682023402229345894119988818987118473926145392941380760122603887951257570490144645043450778497040331763124568521485007335264210765473855180278823737380024556533898617219391209201816695088502860669198709129834377574018647732612210928049125020423300425330750490458022394058627522868257414232089848492595009877407156965975523741592852986487151817411095237779602827568819202969038252743843230536578095035626048507254340979532768649906917036086001765482509466887781942421832563758976886164749407825605416157823617470699072782415704612662540312759342379427648995235301362825770594290027303451866422302194513644388708141816375032976109239507776169880460482723912728279879554621711750806164961733519076968406582039548812654340859770664822457023032113928815931086076736931697331511581837356687260999355896734987487023096630175217903696962421563553665261101596998312338633745508801047493107281095674222199658435991514205004954632020452596220755989435589002224690956121771268701832261230780460515278706346745259797385653838878796961131509737897856649837580526775021247847679873456113509320178102573683843499843707683455565672024455303096107040949279196033910825054680859913044211524513812419445262493426399676710617166325592218421038585571296026442421154765179691064237386619182495809719276342895778095258855055586782342741945349071053585742059709465347159820656827267655901490214650659399752544902661925005908925609718436838410732587471064433308847276215765194462164502139394838743215400400349048779405221454851322152619256479749387357579205521596266560246051458684793542107934742860978360312300319991878915067319280723247118442965633753126473811452508589196156686966006650694665152474092387751054918038437983579835885934821147447870189513311066110811945259758301014677015835931429016859358184926192135223187630011053530664387636944404163499269004727035358477521055158317095254755491076296759614762933362525485266049087498649153771393280056205685977681866218904656056875232932475987414573549952896102067022118477608113225263291490851626408788399627547406142618537445154566394710644826451686244318034487908423045634538087962801907627861901849470415975409104838804151699476474018306958422841882222859846138056442436608250055183574855675113083263432471498307278202429888130918780934091496835984047680296075617460147817813130326313530401540985726643537756327935759807064557922690122105856082527446278634711519860555641753154624073693665571324271707185266131667929802499648468056418069621235237439681155518124145418829494897359163148820981898624312409810653029179426924660991828319928014556089092751389268141890146112294900740935521484640760507795401432143635765760508621241833168604896505587319506854208698907579365804968089321388079452894962318157452749527871612573518596380476499633375984212835613142392245588886928648506022823747341934651373763949201085905687661999020299483981636064992266288083745334790624995504419436607422535524353860495433959895949071689768793891609975632258610796901432118439990652996386890229392077830196056558252042045418819317454924891885528225240454038513812276363459464764555698235853130953544787826169943067844396823810858629912898796270656878966094622500673610967942447444588650535122863512110689124817863868224192825638671246974581663256235667959765892080529061818116826578873266136494321726541828669399672990725797956792941139409122887664399509980852636652502463489251998148464289651735350354896883074414674140494900619765324630833183049296307348514588145631309683053333031431559695444807166178863059097112332414955628348830021591979311621354505909386260809849848875693171982988211928123493339550953666099787009609035344688121547449241385264702750847857187155882868482602784860507890016876803436843820903454366714594399658823145941230714336489772143558119778265317679035521369895649094228667901736190454288731142412604024137513162312828395151094393185433070386361367213107811514990311454601780046167491480847300610714639763013425791243130001523609332401736146386190992300418992957356551520906609217487918653370880059608135169660751721472275858648069226125278424896730984413455048279834159141166706590588302554147532122935870585328430153947827684514005584041827533490204234194552246383272023191236062116968531148219301060756102129388270055588381118045580694119716802545951493765326896273633668244075960740032961422273461250244863242705594179232518885704975692031890000759184115180208087745947389185987068029819573832955622251414784906990933498414091187565153176739523054656326410928582969860759648729376357503859423165672239553220518534593157130683191347310610991919575349894618859161781543562615136035742445906041912354186476447023371810718560644007659851831199929081269295151467664868900128550849262249706468853718174994112188794795361910126969747422424729668416556097923843962297339146740489041054364611626567741976058093664127152648317399873607993957163677649367616658102213150106813801646271455469861213217406646152701178244671478931164637853622156031869216901082225345034821106131098914798093677114053174833459059150901727174890225120845868457378690305394829786726165388227127624735851670188339738324421478528251503590500419531760648537032474475353262590828471607229170499685877431350419474294297938687135297949802719895461831989976418829542422730411572433932179802531715393240071051102190287488373946322594900553889656486683313487077404519042681614828974741299252245194113097332935821547722749536654910504914832678391106979211503375457980462695629548845122825646816684955464543131691010030472122286751115774246234168382463617036175048640015288744743798026603638984675759390280394140453472185759994283343100938287530895155929675035731928608883674955032767196602983054922709455832990952578861942406384111300025338388183365016482671969981671507732854981984603747099957274814905141416687595506430511509129992238719164685841600181987954625827595574279511843652254340752903957422820848658764194706026601657002750180186009117850095294523249856280592081784758316109859137842344906276785230870453635653284593416567358141802842673812700230478139547579490116188009896346816584766386880592986765809518659287203743230123911412904412598505489913985452618873195672880232203398199987410639359876341884884149376637893820632072797347687130287855823433519384570892515340804815767223421964674084850742734940132741583932269331972756156914599472347678847857485813163012726781620584873086958759233236778151607632267974343466741606408238333786915828470256877282282482486050145589044263652743018437838928616446010161571013353269375009910463141047094982633553015773222920713515848992686385840152374063554587002978760930138787874724678981619196305489789102103000370956043992038451226063160157359647163004085279564354540390585557985095747017453632504729962870168679421839492283467807328556850208360295546187645817823663136486655207640118666500901725281096815932954621075521341903634247397349058728658224026165123539101155697273182482725716623323924597573566680845239963443707083254201343963514890109222091368992973753475119897933614630063301749531248615789151919525658508858386998869599207879617050844310201654809108995911797053944449529782399731427667022963346864999033322224899662223880240724548615426181024218080928410858054741066184172986780532797932792738630421978353936075182913680238508306317203509109260889101090905970619798918357757145177647256320479681930633277545642806605454752685026301705369386127356570920527884501365746552978605196407404361261100484415647197349370377733743920832821432006207999888975209446053010005539677431126645669037638010083475692451892390466405179780242113835956628291077982584061752372607807412544587641369100518626490556170033573423429989401695826469504242959465569439893616404976737724049959541853171511589460771766644143894283752052068652981092011108763860231200874264187333060172380133982228356026931328207112242910714402740268869334450557972803962273037113843727562769626452415324133586243948856783863558385619605875988426463581281438820186084917685831295730249909272399789171528375969079811521567607764816350818241769581811409924422551934065310550345747074288025385856096628196295406980210823299191467915777309816932635384773210805925174773021880180345646990260090698782309048060502372215014408771392502117613021405600803410941247450815758726996312252653629873287138231285221635497508799218164550712001006785583332106030234756902487931844105567243638234750095318327357244554935941475392484669873584260401494770219866691363708308341064860375037597421518127754386891486433814600555997739708161240039181331377268796455606327362506293235697386102546063708581852571605913675419291709301172760353154115292735119171708622667778928894745678254663454678825455840718470653088728637165274179113328166368857586900180596178703095995676107581037984611098533893067679963648283361085296609449182432743051012945705280511105635452807023954797170988360758721209401042634278677763838412157492939228362635138906936219017169265887272846007733812199536575504145789666629946717750787561769666285701538761497781398453672040199140130969881941056682904184366242185001042972113358253096872395842506164243539240385178085143852132255391997796701035298684246233693138131313833405684216064060366862503193642304860104769056874029705750039906262202689961334090853168162706304626833527794861030537875369448642780355157912493640409432374631442085626688853187983687030232699658577381787902554700186809347663005473083625341261556745581351596040417593690268292968657281808408446443033618994798338936385332495834112542287731582424498820173834028001581904575878316889491860847471399007426542783749377627242194322528789566067054529237169382839228588448970383567233571232705846326125511420144540154199649600560445584487672660153874461402897246320432139336824503479879626280275251760660654650154176159330041091889846531094537219683414594785004909430320468412806584353484851256212486138791311980630364354875400459745207229565554995164212264536012497474368000805774847966397463791636948499787903416620199742508838215514472506304336555457212266742951159216936734873119625191804804523484082724842860561833410352405364807871098199273247577422364717745234698233018567105758647893660119161359455641681260956682125442501820138913330037740957490445405980509535155550191177900429946483291337483872852537055945197886417384836501197138926357116230935967715487003590414113537116540685001814693862831316564190848397271098825704154314452724898796426581302642459712953426488716232120740935019469062927425520921353196995016804099571964369147345618156398649810895449232948095597509050468689387380587896525732129458019340170108550445470355084954486877902715522896980099005567991808894312014675941099902716885980784445523435163207170475970528163699210130932133117930094722695645881377431931223496798157579863234972883806781647429159327900078653268991735454887769313444880019823395576081367097235994405856294831247934358078341856745512319432676796189597446565299181255765457268717792502160726308340360201162775889171665066497305279551675409731717134226246925279263339130430891319663238608370520358113251110545984892933544359490677191057970073084643333920680688418877691095422650810317063402939847363861363346513121005713896296012757638704909188144596717695712597628399392292516553682763038140106667380386807441924422914234428381550582408034290951112136091381238903206615079957658088786917638388052886172341225584179351958238019808356385017977020888842574309118328902734130698646521490770197257665211473274352414130000516082695763345941581884752662930392996690869896356825716887580810761742492827644965788869283055504880967809196457397053246404650587573466797992156209616498395118504354218685809930840734370296765658052778428647118438786890800812138600573501345776264075354081144257891801208012515872290634086480169064808215878630967784244700866284087665477806316489622782361067008543130531139285650622593146953720392426634113753548719800244310489089477239105444797123353987615046524573144038880533026470910146500255696698583707857552155909756507258911620975823829629253108287369882555738240548056633807384391079573371068298869599057653035713319728368622630025384918437642261586516077869759314237703611679023432093398564518117197693927395611191480368943596021145138312373872364811124361899940109740437078292161442004240176479083944223596962282297149783582580144633081161549606706321274290297918174802585332626566080115870484015343798354470277613441335663525664837843476941209703023698473320539938970976819042935246480921268813972886654493401213838326474674621335508604792397670398513065102663942195305210814243275353743378180626979840496885932435956977097570381728912560056868303598077785843387495565424479542375732691906972872261323173354548983658281818667506904820720107976878006235006209180011874696797013904447177037344732283536025722599930462109164062468334139452087586261923097350763824827981804836366381969729272988118055846223410236133079061871324723724897700545817596822680957541768353590182986069210274004743753475203065137973537730942917794207528043432090038164528431039275346812553767677627093258285839551544152751093277709486494761006377778609692652021874981610438416857553998214960100741304291645041251249139007914174881373829524705137461192971648799587998836569419576599490069905932401065380504009578824034259343522883904453394728110288513655671479598062032427993713587507814863148250355470091337905954409735593094374277174435218726955691874226014552086397911241827236751519077403900131402833368961703455832019611236419069159515608410813102131963592629276400605176621160199671328419800281028634652248936653881487147827598324690776436894902114196294155352561915631987650705930528739694099051709130564851589553569798917403473933949746250068347646576545912203167249021742983856052159833473037713940526604539546331833686100988756235694929558058153555584478369585984472618904748323268511437864610293294929309606882391927104857385140210624069127654726061541476313345286906203084634221061561796884393741070549316738013868236407214919916328030154653196745197964163222645010428942877843682319013650172248273177362006142068427659215653239634620924247846478623967634090845952811368316604527363109888070716458757521482366949886033358224137075211919861395633528483993743903696552717773277916878133125486415581854495923229957789275423006771419837785377745368225701206216688414707161121676748747445062443687878932240340060176184780904222306780932880623035614765776119863295326882549174621633405348484587437263415219825916243969426294529235386107288815731192644456428802672632160193135767168419798641571544421473740621652349734149395683903723089739632952822375489555761947548244356282041827763909964719122493276213971031797357883891874671844578484911664630157139036035978171102195453319465902370028430631503730203814056706823660375026397777038436707482707619749508296796259193832394836408028807446235925447667255319755128784808504423126921912255113999956169508212106485505681751522537094722070946209966660134800020326010098950719630866155373696000610272712157568176917239242122460721638907263523357609562523368973972420377467003095414112923509695057714648221224199458164300606975779954922433394462497807398190552719015602394914223323600132122026079335225151966502826668297662904683521311106082308707427059123143605104257150404530192368626923523728914227087663223774018114588876102411770209211177719595787048081719765960791803992052318461930036251437999779719709908554918256855513613386177138317912448580506708922041267963277327888934584894006957315503404920130438176457305664339142751109056305221107175557048057150060690043933071069821420488492179671378891111510616862375652755303550568826139560102590287365797140540198991565761754646803225335802629405567868444673777850109079117394789679794371700163677587593048207841014396030853142671514950021796509853367805976983795343959797535489291776676604117710718045533227276225470236331949680040042346290675462893640311149858004843946277304654375490275246190244918718254455296566292439719449253352684830168878631618603921349146778495542112976503358939746692174906340454433376132533821139692949682337820599926745131890656956776545255677206181591017214792324345220255332621201582404557699002781729964272076313487324942071398060960023083862889506176997102334867995167752574769199813609571274818597401465909655759714949297732720405721192376774426772400645241851795152585530529894020920317632170556635403645178157090049245615858674760712365260509621575816412097315472795727594693546824531512418402783389812452908176684856231951750436899891671283219055777932121851258825715194070177957786050442823656854225692347014893835331732495705104315302808397688501018159231981496723580714376735444198587062832027165367836834398571547963595070020986346815807648224049614521112063178798056978574882971677818615188752772839031704917561615550057315219422124848738153808433742536726688024322505603103235393479957912108156064033718052586780278452121804856277740309231012924344175585615198451960335451375005312267317091898545349879021508230098925556244059626817196755043762179841963618724770522673700170649101091823572129318876272775819321569097483732263294949237626926910287055360261392687989388839716503486907440641395484652677992575556630760050691049175751558057710125932127466686223828401987854134306030378206981891968889027212534846167327521772553008129490104514296167292402152917029190152585379836627774309234509935545476204861846996838874326596543527849438537101718995919730738279444450555140247297014173272776107650586086174954878079802043001919792869752875252472146148108821343869180142530652798370449957676368882330228828255747369388328375411933195631689989411491448323687299539730605737948062410823499891672187249430696884925530728176413668571156473928978538401420172271889772335478112876914900522354182602781821745582259026147379543795421771429641487131168236400264253176966217593343687164317233363301510304367165125032116235655381753190305280303289990449877839074111672019340841680032789006758596711510828185169078125553858199047156153246198833942160716933048541443668107647193212596788152816460044002076218163566988738292472435820133541900555014857011222010635259526166109981206348627701731196765270030214376707706761115584340316571880567995594526635975991546850965301217640924356675606221335152263479078979863473410729102385786086594031257652539640287899427167792236366144457514585716140416261427263669519163553137419524000198938669441314154039259696280630678052171902411117836231250507569734938042047563442348080021173475673368525875480086318003420952432975017483151744387171535540905231674355498333325066396015632875146220291860933514391828963565246382732268630554547379806591856998125543633227780795267003168100298668304521602708538284409552210863513500146933116409352690827074285255907258645896230157703748697773973162367474003354901765546190126546053516954642295832507442276286056843879564421879896429139922038966365752230795054481373178368703015687373901175088925393735961320836430928435877922032779321417540238036534245159716594522413276634505913582713457660740735286901217915924036258933885097945492214797529613704468905629322840068466555632797490355792001287769130205763932000277446372027178337636238510241593879284968016471378769109107186344087856540814990116943974428313754210179964043526857003586304118614851113660172745283940649519311595041663127240828431859487938658095521824861362818346925759625284532592692692741323443197577950501736433129802807870454923958630768329186933312375269099087674308751522105372362257333141491335746980256744868991785548856150137917194708467493609121403776400237534401252942596885474839346319347671443368799784977443239262909095608676049206844237648461575694375197766340552038961839985842002641982358345925209987307166250321062661224450478633290463999591706678838074987311225885964671587904188385780729257938090311470930958212287371198465305761476634233159565905663240526901438370985102698979498935692326099078444906267524075727917613273812119865427386176769992808845149314710041330658929123181222446394603506592467660911645380559322640216952322840160861306025356320375234222730765007295960324493217347961600719954366692098414012787271604450900159176488707719356010745062872005737302899956181102173792312990333055022881869190242035766538170794567830109285801712283688957240363138855524538039814384416736240932757937003471915312185388631713933746567283938352160379068597628129585702590860245245346202239780403347114964389310996856777321136141269131952461786810962501172015757551218841521445312181830521852500609066824244622307851679292910535003810585500323283887239867488579939153043391816594120806282378851189977693806419488715708090978825101868956846969075084889392077789093767712523803568025390916006600346643547483316910893278904278559196087803528875902896386094633929104940660105578326043890808972592749305337802884930762993422741763323355970726273990881174404154004977972846746666075983418443240541928381478245284123223223935780814154052549131447287624137371157994000927287657478826265962611429966097934090751760593600146711414536742229456184797348512819944490624793449597882462472423483118735616447015593195103324667731971469879510288246961641437903070812940193003107349698791527131932732253333253506696986758334261816831391180782549674489122500761366741586554012006578693409714259296506669921116172609136833265956680928148797643871257817808649777135488073243083519986240506840335925026196516944873201099874868930902537641279694475141496738253024806980155765521707222992036963564016857681483909262619005597748935617952546797367294274689832372149922888361374033755449803678865978533139964889977316440520582356676916222903465673563080245709676695999160876638984935274469425125454957826124492573722359338672281390348748985669702611298197840182492801007976868645230542015185031114517990503613485775003778989999402754662666364784537250449703962577057051521547618266076034375587208003156044721442051432088558657766235182544802017503781341129209425837461026806529320999791335227624738646556022310404682128243638520898739790953654930160651265085402326671997531497934832648800154001238133917198294048111122735406864683611460444559924601375283006843931875660942452966982914759650817878345057816877868640004053715837864346222081336630394179809843444472776832695131210005339449491295242042795536988430403880962754386897666824099928407139983664353571246392911626330042192879911606675270412022601032371339274463402337651373251455953279238260957411523820066282147790035170554250195657557295030784395445124687247317873130204646007588440183209166578442906983044348186062835195607228752749350242537561073342376521562563599904834461526566370568072665630372435839339674138515579936912840220661833660591938238743473532821843516995551588068853659863688453848839912088220523458935138135852429535735446735622538796825578753787623674473737524325307510155976214152946433314483225055272420282849492314950967176169994934866342077233008124902146927890333016001159951065008838960633491747504775079267702311585548728180922706403480564892112566266911969558569372518053056026701020218052652164312878475151736186755631955105094328144675639571301370622287474613293767063078602780464211470197319717968016344111696542788463522375109029741490008769180954302428020086393237513156228010656915820062448204657093769418480184577652007522177316488520830552719114863262435111943186651487789912820138834040009703127663980598023333058369936834794583808214781959511402280356321912236747254015089614528439524812803542635696897449624136418055808510838950497355535618451472195633609658098449922189705129981684434694178718959606567662093493918320565098343786952894985692953818369185456257725873960905993665568865340604428312760826200818005990404909479284686791913204915950365139245957668360242335480433344071186551323793922394594658473816051223764930874041347615205200205207223063659921434005260221164121540701842354875704235783304278146981582278809065829881378891085781972618554679604846487147433264459333633386209152804329701148291178059224775517707807240838627072395268794024918896726582653158603199058761346613263449624957923402292878092741569508881850789208861201652410464891191868394764067688253162216317875307336794404549510087144673580461804284244295566821764791891082388811338647674724017699558503613040046222232732690675191570141954392382114004131124762274552871868431676413776316129461939650437342536200346243374745519394650513542658357093170393695121922160808826825556180874040882206510067148280803665886810599477055808269873405378363508884796230161604107034589082311311387828803438270397861983461977820583783405952206921560735278644230861702632387964465064005812323711206522201100841236217452266885896433040900033385612421204344812700885796240903964409486693273739663507749277632257246346189731889486921930755588074797191223533731076618458793216528660785758417472342134089719375821776474943351278991936376244608278559208771611682180721943407300273545025547404805403620392862993782084203960606561378445842685859002054291038488176082719179050667697467489818841539250037242226596308534071133127204022727840123820540343215956667630825577676003253364655648462381921010131044415802664529745024900389484937450160057969766022778202996002579479044757770572836734809366291797381748093594584347020819420670146351275227215768779905677820167093850490892701139393111089813788159710446768681936967718029788646336102766565564272848405402333455865856816527486068743828374038786085535154010357066084259908378112069463872545437972060267165632909645780586133287305547555018490907832320339674983175757343843392325586209745351950625425783338471424341449386615201079786836184067425907181515684667515794605022016716097713033685226923944333357616454935165075969365285772859203645185056358502025317263671141262321495920878050593844060186520175413172013761112729503691586556795361288394907023924878266399423552252906518212474601107265596106700929945389890999819381304540714272714533832001010325199849866585886465434957044917664228826187357387641896627542169846472657760178330924789146880668503818165387159268443471818708205551719872554924977463464455944718851382152186353717601308496694720705914613736450929660109150620980405831552885817775069362975287285375956893330222456432569950099952252090323511356415208107848306739103284454777777778396694017541859959240839811451493790340057060393280561708881229778253154949765299615415604261688234998653788318828859525907728114797733158047626618615389205238022612121013379414734956932356231914202453336338027348271182223112457681056284654363160029348760311793505479656368163538828134824406004188301974477803954629515002612524445393989275021752516867108527065873035360215829617132890687546445092406327574534721801153760696825154982656583056258572207207356253588214373273705213010513550490950835427086858191108901888124762551024533406213586819714941739595914836480520858627484738640648563763082132672806215643469943271233854156947114378119028606799039219462847789818068018189828815433761206853828526394597363823030393796415220551418227365396396593859916483070883772338031023757441482465827553983336927378531495607836117368514043730416563693754341380931690741464154860247643990972979766757229146492278942580572774453814805676327072478648362449707327768574214253992645304087891300182889508407510895595480016026764892472001242712146053722514672889072547611169906463804595390538327529370246047403822861426384698010245392776598331991487390244723850481658507885188137636426226964734750668682862273936528803714509486795711531197411418471799415481336201544537108639990644781965828538660681690838560008084900138300044966166403334258197428986404768571695394424726470164113820051008548558643778843080631609258123125652274612317492379451665213826242656082899802850280277216007419002785763171990580151906209744087727573131043934554931086586039406957701545323055657663373546755390311918952606788511165325400835475950468934928538322349122813575771649322086134132897708499842389622895336380760648428569578084957532532899032343372811215501925367739460154850949934309359810930737906060772031336812963809816907041121206402921210828396139833944234905338464500370841299719610638993110354671256602425814533149743047603950841257270227279828468841465188295460322145327272513193942159143158269260167360758021723841671841848766887756132462034891767169910990090376299325822502430165192208694641582751887911355761730303795145887862884956854321201929251293251726743584809839904497728620507966401141748687005765011562503311798044914157206869100409283405070950407931748390021008041996941466407233414779703023888075179186128382917638178421729524933741970143664333526436273907340654332063625865823048174918892800062331281857669671436223148776450805367716323483981253428520552422256655052395828277130857976986078690266700078769514469715889251944256704796729556588550414011980962822381641970496450558262591304257445477813866329335455190574590690609612780205425339746785487000537960522096565125113988727256971779734895667654835643318666406662805846400475259249953340251919024283528503738379008127266924148963854048059400766338444440338914445889701591279265588131617653423311772634369191539249836750868751478186225201427240836772853106463332490947109840139120041012939718052714170434115190897428026492860170042361603972653002440148996726859603730825274367611350627005290215862817846389657478486947797070067601895157058219616830613670312273660326822095264480186843035490004255312297687507783608810849810202536574791326905985594499720283571731486824974786557104512021094797678904123607065610304319671681471186420521887903518432201680246325475646596762536124393271613745251754658625197717955582386383042519968710856435286917500801094410164008152632722132624763331814837410870206604344278784898808083415860559698376683475258656537164943909868848244353671375113804613954753727982116005579085602911185448368033806947938691867679299624510717972566791016593063876301408272708139468979531349513565496521240990400735856832906379603010074408398255295330005013773709308400825349071455405834291347334478056122765019096843298018897122101868804865481231858087274690741719898764717272043088561497936296528014072253200403966776744247579946569839163688076029631059798665967128725851742134667527072123928175286787238022867284382079664007387702544091641884196915279410553319877059159049888085713058385981617905972136511110534737862677466634192315114222718961562577591414334005841902452849783971750162661868640720353808341370622600521851473212897329699017089366898039440469995465514616082523264261037169740008257968719095503056074978907303891943410700091772757990230005855581156375885079731632520633593188851889420399771045607912679896621629983474916843631220165134570432906900036979418883223476172627894550809707296137051506050143258068255357169507988101741099714606643802732810336081389995899103779490163288936978441304664950253968937921046184126602884251300896357237743499167519792849909287538295209881749001039591838172439798512093312339771468067645016149059239077103615845025844331145054039670939456023869630332847548773316721627803740048189467028873196265243629743364280072719282043035117095199496342280180985121191198473489281242744721457826281379345887977372620946037073856244626330244287775768653461107534645342229961213641514391377981002486338641680974221732030228706118523633276884131867597004161916674048814805906452220627978291158216209766835164837452205711556097639480438344959194465226248693579570156396519697836692738301557008630215055827614864926541753811184927794115106274060579514048533289222737737332021531615169529671798000183893608236978858275717655807985264278208691220349753837257870220661199262959089550158531011641453517886305590993698258211027700723631085911095466529135639300776227661271934249903316320469046381012153253717256549747263893096959457859688996799338439269224856538424042136244916869625526740074424611147952306111284677555016272669470263388197019936759279001703409569868647846288569045754216919784157620679099067063448300786630945070050677005384079751953714112443883126861250667647979373561978480618543284258884131574748053838464189356909005564577535351499416612526135027377948639727985356252054578530010677075636323042188716429651428133356917966625856876794048209431420441337267569405438503212850623446591928225160340804183911940734684875169040080582554693151286538639464325406741349920640057847080390392608649240178637616103779263932920419277761204082270996771928918892384132248096217875823943732700466680359430259377667819389065643663932221316836557897598585292702499200617552738206441942303062180926694380534067172803471087515068529888791170590830681966509717606144501612097700410639952943977779289391365593951423114572167279055565874622767117121154980700134326401324824183980765505982968098366977429847155724171588404865812226821965290520970401062959389360468628176772910480439263491020636111518673479871104926776907802312104731828178201894478930774209819846525532140257926540683585841996147449949650652170433450790515113825927806599750892606776279039567280777497400928112559826742706757616240809983113026882926312255028665792386448130695346988445283009947798884988616611697097274216871054474250105002950334643089098315388303126068203032676734927536391881451545048659401903190726812064240506361001493491329950706400660236029809292650533871339151966554588777198792106524857946475078398364283005965132565804582018009776835293320196202448493711868630640379196749293725504693989820269820000343633555722228546422681648330923393810636338304357528793641383182047639588347044705325256727938048198748554635298056072448816154706281382145989305649007549610732510300289245806426746596861065285872318547909355646019039156634239384500486171886602515177153549317366986213343818636355019126104300409843977647065161215122692853144864458531707707704226615265693775081329400481046229900542555219321422098189893800135142317641440455192925043083037922788520220813400602523252323535439567592574800949161508413477243404423468933563049273400240584048515856487134256039840494260708247731168018646864003753898861598153133017076610614478291046779909763645842912368401995233546767731074337196877221799466432834221318088149592012632607493094764858915834297410178430522753605718395642032539241179912063112296367594629609649701451008722871575470165597776734245773093266905607962096977772258175349181260396140863224783710423058929354032317553277277397227665133667375488388232968131566301022623438302726334425230670611555534763443110197736305543315178566777723301717476821824522853105189574996524373073011267615406853891656854444549035234313369507971868266999002821883760323351695444107309552042409009499581332864787734726127118404673378855849545437913325686996509257357876253823168944981014857047529286472261645918280743220394897596648593727546376694189933478761607105165080563354641222324669822756329712695899321060215788038236128762459235175822574781802580016422928541697474806660341183662867410372245147893288707667919252306461218606269226716242137640544347531972319883773879923864421114606470253712825012335857163902850886547965541452476768763348399072159384523423072440116413356066198184851924378221688003934372244028302708147181196763602081525193139695178450400278569887871486672579993971250358918181815700494594965616052910631204690897359309377908127162658554212753367885409802431464332442619894796716482214505371957469403128822816163755144333463986333909129684323272679073891416518180046953779934444416439259817514389175807901418084119032454139701572351949500294899477313064866482042013283517682509962167819685717344418903083295561880863924235215595969190835885859378649806551940865552838715253299199692823406079921087942904456034332654584248946328339027531319957139438437891098853344791091788353966106695323043010862935203527311893552840033742810747140491569851252710413192695499763802235800109745891155096548809501775343825753657783462700740491246320911092085069329416075686390025651967184940553441952183476865527321167620037521871256636348075025820493179510990614032737402708343186927513276218379659962053472027980941503715969705387779388618861189413447963011847145731900092012892997584497427893280536380800468248097909938054849424618771282045623034695599674762768380371882950277659516785683274748523948892676877751510017552259188235574689729188598337925507268906503102084836956208813352626325385588481976965837727465599737007738357088161372334236096938801874783972318321615536021600360097442463680364545468898099542145348498413170083986117840964507565124003541478134406219329307604368752713779768915366150513669804720943823230065111988238198526862581655609027404309251080581263476056744573645740155040273716684374375779117991018957172109628161051318968338171700821922255082127608868767631446033906300520384934478922050895001021621906786173143204675591124359247420689267304996275145217065288869497411085928024465508999471924562452415072767910462177707110932636651612770766468473579086549910508804836466142477309129508672099973523323628903930370100254629530374331171891842205120960714064785321725982362009339165164548499180662345036166292087381351497123371040665131294954106688024747884751223579954648291207980925313601820274314882650167845634000200363539952130521461997530730658855980642945617116746262215966385720736351170747729485243336076078990994402833158482914177522015516701502788972048663392925677799282933976034164712281175823283376658573121769760000184819812924091785445313304546280629568019970529172773932854143242080308427224384693475373867107725946178073050252806114389243699869683112861659080024598653522786238651300923254175626737118395026147320488559906348647644820322405001644647125944192547584929002505258150577897902640205621001890628898121601474158251386725043051122107021635857211214694594361432983098634794996027999698490501038858444166907294370363679905358850403978137843755366876136893518511925894044407962503910520488061284266516712543752655741072960264239716894530519348513301450356328987493518712970524409865157489373011316690834364328671348570674384739822392552508006614826377960392696310014926125772223151678541267447046677112643700936361992768981832863492036242230710854672016056943188670407906805916439443478563561341467125059423814899915175881442880716380607024729124622248532348777325769612737839421936192367304336778736641613724483587111647420356782615790007679195189687661656578941047376475697330077922490334438649702669832196926599998528843092732780855322444901434328345693949720071293094398837103213679576342068774866920174109576824168492333603440643904477250819897048946949089738927670086796057565511768822846599842527241762137036792224948633458805970182433171468932170455449276927874685924401748835967946091917014296520007515817622545286338432061580788141688193122256619473582676195906879618837771001655138308252047442587617969880645779260255118575877552114200788089679461773845780510026340864728862686943942885551252128217584097362753587487965759095215068596638042115969826287167825581245462102185907467109799740009696197941240577242706828995172832120694328152158067881966742152935384480238762370153909301218716112143412408926421981723309607734448340434908074034254727538641970031821222430379568401674597985680669232189813552283723681562281563037680268483478909750376108217943718352745629479303929785830688139666804779508616252850768006673277171137779496912994086194065674322473261408258114623386073287398952461044103097061639513445770983264263439044855663471369174206471868755769610606690322066871826089649591233576862497084611959110974511771970379549035033558906336715708234617888834988574513269532988133603116126703611432041015351858589685177288745073915846672234438777056423366589199124553060953366229479615498789198138663630350644170891054738980500154934405330400429630278687480237511501913531990494676223830047630277798956432770308306158842448273366654244915371543538560923543132044225773955580334725533613627984360708760922280288171031011490231107271545351930990477529105053850701926325183432733102343708093645930084497227090191780118907947042532987278624678400102024129267089356407898922215282403076182709109208740108975244950400423016230969797597669770317449971440818408367622676397476539137181234014554766661827283676650104902383210124234465149909178121527010525167807908809367151077596607566001921801361368032851735540693882464262380322717199552067242484232951204161319379976455748960425886416415600126851931662845609139220752557369881946828043157975792047233263783409714631098054174903097861859160749570481765729655176393574596330500005897281719950303716106002934712744852068191525952177108164356351461082619791251466489259184453973023328149953739949448556823269966292599272371185714986304827398011765442322226563567025227562031801984128605191652162186379082058295032575866578515759789566484368582650734293459342566780961210846252592944505560422465420632444752562379672073791021973493594319588649222845039564215305908272260251307297767240423564036340288995289541953784523267097865821699132327549394047333103580511525527615943560521414244322171319156450095897168194957060321176375972255605861893818535286671622722557476057024437818595343203480221939659570721276699021500348974972721464785324107952876893953581785665820088313712670518656174472173917783404954011801443457432845715550298493403908406556747098509538727106928547592941843525696385124716001936980623649995981305405675971006198081566274121916828321824018402960520986109042825680095420688842861615372846977552864969723426949883694742472652864186213010469479674199745757135913532173283015463570741466580558187655045964322806144754218410796049918182660574048138114512176362001764261232738175172397340698433608957286015665049882231480457150864225791700810234732909498432945537481379650356603456858679870839787516002152077183012281575032607222717340896723346705382747330051715195048717110774144794891137064522154151665495654614028497212750174145845197342038302484169716459746850325168269848061690543553869241338322262532702431644337037972420102622284706040291109622798235905072682090088043533024915979804787906234888854564920891922493477627639092546141406660785932874740330309470608860338944779681035513890808401385858653799868477004837014788315154105736326093927167939694873499990634590874389302340334046007260157802342118996523564066944120054157208511711376467742055209195049098277481745602692176288824939089513708240975388248876138774512058873433645687283433787593518784264228417417357167778145272700807091563573112424608563449849363345919628018620262205251258492246136969017415293951390346589367610821054609443191134138961855290485240795673621670901177511717563380493436341800721219473810605050012820482520825630619131864342963090500516630712247822840651355405286592623499114438920870347425113291718480090257198781176029368823222138296331411768681259266476097998772477642840453321345727140682122864796284775685045433565919089172717142148595583193447484534998369753995565320880238387089773492314030849203425531738447459101636372961972979080197343459354326128205754817222718739298578830540508780075020111234506257549926120374170749987815331141368766468606416399677603158793400941203973699945164638556328972016046269417360787911333541987334111192275606537070205605956881030437514350716767651243881408819707376624127834274565917257900423225677579932974977113759514905600497761452123549964947051747311845235212304553635018005357220513333806483219783584650563194026551880883027505485791066845832922020650436349025657604491997282489930138844902400433370793304761058041006079843070953414114143315880531285728760951424194260663135528555095885240050129673767965636192352222542726730235573603846715801259027200402654117525761610349767770446241565468658026849522944206708938063096006245016771802597309546695091390327439889646286278568218760657095684625176589955214866172048647476508212437559962120355227231829102256610025529075384642658112050425248256786711488183469132295713298694706160921423219250188743813048516730527343203520873958322940142299650697597739430132830575166078962215187592361503508998136405282621116587457135271629662063948167425658758866018395904388939810728983226132550832654734305702921736470581140316149108465753178602749714917120959167224427818422845890763705016412833084900821987252581843883118832846069185847185252558667574322653943261647422830928314598130799947555941349689137990076983670419869798622939127397216889759182090529522578329138803825095743006028887943826318371593307760153423245655847350073097089496645430411527889651280215290251449833285660103012641453525550150918705394660612808274389451839949994109380700796594292351147284759393568923514290779366485855447750637701261489805954287405446143636872189204292473784596011417674071643721639964599572984361435289488266857686840014831921449995061665681874969705040400937550796133658521209135237021149803577830260290554713208859508460692575467760345152264548351931430835198978506158975074737276309424447560846552174824065973193447494341465461654474573555646475742111072487238896187898147877652415507432356363116535760084133007059076536015399037765187253490171613611332340857982188480084901159881849700359762129655091411627514924069899292929376113763014468572148932546207391520965545023069901956518956126310883672747540127006397626906392567605252106635057873317585921423817369400726116985247023977367362121158279596412102703060034581170077186487706588179904254045253757180420271714831194333735418889830111361311222752979194853796806594971652766142837261954771000723905204251320872838931276398416434500009953337589766758912789755915364230317693928908054766942869516577761606562103084619380045429467943035017495248556170577300760504344999803507210649591360407187386271086912040708300648298268928645059144597937637088308003037025506759216346085991600176234599408289593609974544432836471732945821541404144687203717009382418516211360906688323729397749654468871994468068707489386335313633005122364986363580263561529057948175563847839491994353484997020186601166204524764420461178488778274677563901562740121863414073649530241023115811616908044787057222782158330753634510307689920281874038412259491917273382182022882027235057151493668527664810087483597307121627135320363435616722700669351737121772703565465655264944631972368897163375605707998199907178176028674774777512055643073461485121631179699725483066131876859608066571403704163986070878973062639015611544751288464674558035497438114357571643707575628882777046161614690784766089410247234842351829645708448135966766045370635631313255589476598491712836813828992162242578019484341846641463337339590804368966735356503179959473212233644170202076213896842406437729688177119561094047313114188127647346999063115518662956860915924175539265986350929997087288794564146590247484504838791729461151510412805445439179913493532895999959567978466531830080694657446727845327333481806637145069046219041036867616579555023190057650235134595009590810625980499056622992846385589142769114442494200545262633118727417620810230979866885736051276806901129975457784737228837787185549609009460239386414734521522189659411243358429209392262774311533356001663859439862131687918974862197900586120357027818440848643390994843017039959342249881119163717664134883343305872134840451167634890543824026726888484231503633034833579953909659553726916913355535349281835770291901237848914015077904244114409282173933910388018338982406840334243487728853024061615713359174872002179751145471063396340299800453581230519660222035165417734323709047743394368509819362877937793427951631253169799177397843373904737467624338402302592373832305943894839962166952467617537737086503561295346477658727171904080458363601198042416869629865196538003538060704926434393004104533195358845529142430367810751363641354059887497335097339170583652456642114907723760537497703540580241869690339427933566317115021047381453725889848150362230002046715293805542470062428735230769756495632993370076915605008368441259670191616938731625125621645655131307143822915113963519024577928675115099237284920290892572986548247326868791293323362761396210828079293967763205532542731324565138613960174533196804897265210677885741630197181148449315016993341567014517826757139326325132737528136917167071936454166562670285032066772074566708207054690779435664484414192699190231070395666229689850139802229505716673679635967539847087696884938660113967474841516477552440167537685033634294897968442658678461237954683385536178054740206418096864328533699954962477509354393197151893897217687978370808246060278183633275567831124018610610786960027280230906915338035560589249813265440641226231748758365813243231139223681971747911005808781944490663810617833780051641231155219769034823621063460271109532902111866704164155880532006544102016926979893642809078178948039338999266424702437879807170656612768741824284041214210721725610841063093124582580165643999024188581611223037930162938664721369206272675385051717669243193890931131356123187011704081584129164648870776248655476143009290085342981287198324464356295231305646664436738314736054352694743457544233549360412890248973548925593297044851347461388723352153272956798736447051137889068946755501209408893214311478831424983117377018602522012810294025015704971988535026377589341173442718400580969463231996515635060786260462547545352841494349277934902952767780818606601101559894322023050304406231029440632426237256990896473406528448603322359822925476310096706587905895255800418952445811661775611823760469198622013051445772104257145699749668340291946347488271691092445562167752213623558089946561025101698372062741250468477926490085605541205320486036717605288737672241950793350000170964946175696242143445928079693412096400790002433925282410860232228337054662119038127579111983289055142992428023849795279915118550349104314158253450210399292414332469634307351045362578408975157280382117371688426913861501910497069351830141504042001279705021518889112758390702776389403053978321153694768272050840581112114385550393987403680857682162274578043945024256419567990696969763593020532729004928894128681774649481661462024497196633845801323060494286530056290989261190824948039094318085765822409005802039434761626089461520238907261405571721466176995484804786570732305390414634519983849232683165700818244023274947651996229208724748525483447005181092626918943307103064188224582295204435239855946595054464517588694895133219697748298135455718283153424664149397573417805165345756242740290788101624042822149963445578048359551248421732177522721658077639511699879316453485848739345191603426139742388510448654068695522720593792234995622394715333165577472099188685922145805512641981921375373116651587683440058262173921050489335986440627211868101087512566742231195972540094447360833795013541695882839343624238229880860511303109717637118629507504820358548268538736213118026721031977715870880246164287701519224149999148152046871827052850162665574746895411463053819678204991594013739220623358717257018384833333999138581675012858759823987320831624090827146010089559353240009249943961254571051382001482175028663933892482592259562480514312131229667671096342729140883085823420321537108507654034814335460622466284808784581347530707956442164849218116833848164362359797406956438138315216014965097191170733612541021860419450396845430391346825868875573991180062249892261713704018832107739757489533685697628932407689902257223463004148581715872151322417642449543753415553575313928211156374494518515485933267856832338147666938084939616355471716296624517596034079851286058578838751264999051423815930473606665651655368521658110064689358698038137671145366128273249380616740215425952083325332612660705058296886126492826264251884007393224540807941382743971043683090971387006536350700142049611415802230837714740281093102310989856424173572628587094339863689013270482817847936667325103072097122980672730842035531273764086532053120935409265607368652410264427614014446203621211467944881037533958953129365067287830258852788059573440089847788650147930148685342819900676414164009560256939984321120769595208206775789496693069506385371206462125813370920106078052873720635143236641239515398994389514926028948524365104016337409728006803173974950636906425185796247306900134611555870937585767537524427253281720478245576024861683227787435861956270396283703562222851807404109264238129329251939715676230657976403256315095347300651375778343677408392574850968893491330205615805120732482841389260602456773910145492005821342330088648358121619239703786961203244495807921359177197148038838803888359036680336481562827430150038404406956516623790292099304264079142850947403706981417706769045496538055639863023533758731327518274526883344068384529279827977849714974179895640379342401987712717637956850084067732105499896597061955811428536628838679715222138742141361149242472827920236596066680981408269995595592224845242819666416898382623088161515000569426822761211353688339890492053635209444684512211009575450096799891799014915202947807909594707173312851886896762082973519149557849104016504419378344048846377862214092602728650592120994629975416438015869366628914409002397210114649871871325758372016345697323114830126718127544717843732937393526335400575556185955897963044330523468183763175321870518075325703303798881117495742068936105075068419711289271752748365845963974448187854137576532329349956638209135142056732656957160678847053228704682796791715976866167004645636419151962876797366927754268126664702006225322784787789834124839493243972994471697187746746292934368817398831720188578923492298071775713487572579097564039159803965773781319529314422692778985566290369019588188692301439145772044493959228267426293150767731905115707851384532108107957888970494422256526179215467124051106381392175928782696261851777488223779263851800228686968905527680593175346392307953779522416063245271817344204217651117707334852192388730532431237941152267566800588928945492896803465455927870872183665149023943266747166506023389889061007955459331948782792121365056905312958440608194252358052059514210280594989500029863044205884184470566894079948131835253325650304119815805934435956331876265258231747116199594602825037162502307864884250809226297365657799074446077845521847006037987672162947272114293243214399245023801454575915072517834225068756581644346894177524991980264207153500010208054264681527191548266093457782767852975630369136005291741188707420508414970974256869729147940822891618963453239506394419550958316479032683035652504910286472122790137863483384722422585443609922421884539209599485821006193398780100154675791823612961585109587763341234607774742788987707414568136380325157274198256344174264754135827771512970237994452917945326754872907375136275536284455701352647182346957024172433560782906685271914635502946276154252466563217613257240100597146825551934355812674281487074755376461562260662656590355558744618678270547883645544474030062956248855010547844011208910314267670286301480485693185405929637245910928456876162034301395618683585896347327412558476694574019405556892251069575623550119711383911061644896672903013012767632397132343687311867648779555856300614844309746584191202984801564233746473663431802513921882415866195131524410732904055653353107228053616789883451365390295637439589793852416602036724951938672737118015873039696581000146899774482631182053529478822075961739553987990346428603851949366657921625901372600021007618787922283469661628056173239298177041719187184185967816916785564756135952932947171120294372943962779037259586742878584785195663902011022777550269549805952729925340660425563317831853176024370007832396605049880866764096417705702747647112986184899950014415278353594551233346363284211943554113154134544852647313821541011165525425911652397248224123607755192526065268614008501351226932924486342207129718481469960535428225051560125207382511790666205481249203089786366543623828466395189127513195015647217693955758955557214932968662396469835550208863595168693481430276729654313830885170290707702451380795793357338840361472665310918565909488090827906762223118782245116602585767293698851217469892187948345159601694454500489957275320334525279111196807512533769601217828355112905246923366144916950888717161232012228887176483815636433590324195238539077836033323908551628268372031730549350608675267329063315525296110415330079271354149009622880953273545773605096900374250599972276825493255946756596770741824482377856807200864852778167330631016957429262210210792220330947192952832568938365076053194215130732322510055454320044394769737105369938763666143078403323062015140220013148964333837590940814549002675662962277443635049409543878688332384635120876271003576732185495254078346478681041365672980158477093041564448269756143004626400237352304430184463680695882570417159525367385667601971056655673089352897415720010560533218527470804760088667901026336721372570212354253820442871244973086898001664721530746805765696751645608064774014700692716520572011181047361769962251843213471769433403813648518921093320404379938125855119934972982414398004586310864247914440997484915465760379159799280087320623811088413146836304709269888152583096555158686596646484305991181217217050261784988887963188134511421876793467529495060984919237665671476900046918781386662471815622171172206325666032455348035928755476371969879400584339678222639440811703448007724227243995664299714444902675044939202741849571210205205915934684635230238571666637932569432560080709947857569784862339671214158720272918482028115090989543015464549299814008159044358481355359287642142674462848727089508542079019959010279682330049078243583003929256205001538115584674610290869348826412248773805891433578830425528938382287632288910815317455854960030115969265104204814558372073383701290317028418360874628683399842303231624353039377061178129591458465255885697181280308527182908547366905696316265850023278380590745183298468701140389126825235855530992680538927684897361338034134493198070392342836441007121895117816238986112307367491814673845075119107554621867394730612969320645207414103822936596666913374909663356024886548065220550271847007370040953858780203613939116065012243852312021394774543274620112882169608435723926079566350746133165877859913239189567547106578631056510553100642403827681752192707670263984979663123433549625369366186102877066216725484215798818752885292448871085946462291495936899303510698420146557705401224123679492319662024112662185462131414276963826450548255134373640161252497725012186740113129909926796053673709288368791909158657872571422064473280984551510499821795207985226740857561586598789772840486685348188008403701749359623699637477228450713683043554745584175744847758770944209316775703413692834561683829165253298968990999138160529533935710233513176227304600863907562088968967790194174155333992282075645754943369427758617483003993403260129016776017495492471666326926194127204449784240669578358878690262221835012368850185408688049484758808746797112072910664825570834509707011413773075402753643854983024777758835020340191720223272611651834153234755931384161516323257428201056421192184130320073603320481490717820588662279865384986989529685744997356602433352365030137675346269658760503947184021073902862335007837412301182663869358963590529415300977336405766017004794560476457821557916459438316588413438785318216323023803515876290172527529325919424134586644117734239046300333732476815817271377166193087424210224605789487081767766875162094541234941846665174844786953593506395386328970077410980084182821221506078820108814593039737853964763608557991650401130689069975606661248692323432606431761606113314998892506910355985374051443055491930828020054574341194963271270132153432540536025587412928807243294970518402643260415989859581215157371702516838340597636932676198767548282744436466068325537682139080638139501710810253292929792624896043463952330716102780280278710189157737156036518390353498698116755284314510831906432040810073778974277860205584894934358581454428740555418680312971399694444815520012460524262776732990304364217186859192067103356822423911003587972639659822407649439245432217544121162011167990466001045666192363826650284985468894515717670255004348217340286589788066689419113569340546902012949013260288482086414549129450130347615071062823589746825542714007806878653681326347347520439495171513863226861234936570581090392015326805676173673519135885921928598420333938009067043677475220804180918328478768473132977562661976335517462591135340661887450454277881375624074939875379880459079592943501341859677812223554715675334249907953572195885256366099217239919873850621907173490247947775374408308601085695898133648201197193139243259640309954473382914353744741373368764458637983187549798070089782083418570632522300619142764375221323104370778630365623715361789209519117904658512613626580875128644437561775217554529471957064473652688645389118751801071315988324883347984743779050725994297964177833188118334103916527623314441715898537364509040055254120014362829539441273605352442315619130595362406500502875444541878629594954184370927584057907541174907343471287856714634338556268769598239435051597078540970170912239374502869939896130802053296232967176094616988853761581960633410481704080985828023433908677720368734327401059765252099768092561013579728610507452649105385002206845758852557822944553059999550649136495371928560202688889105860294321721956089056015608050809159165934679335534974000676025230294309118501808849509787767397797129679626017341589153032449431666256136671292805494436634688952400672777323856037486181527150386281730701606233015653787209211671832751169447468430457717802253604434292599586341624973694874217222270719021656940793235755691389194491426433745251308967867034236680618998520471530826781037548249496998327095492896452007395238876660912950801753812708834688575486119010452066658348842179193958685298752400384753916328361537884339713180131209196297206790314869266529794566892416557962100206433855968139816028251074998531398879986146311341218423380898357869197191803358312438379428961086970605094512603238993023189601447919525878209085761901750655617940869603331437148860625860864980733240678166139869937651838844120008146714688693027528578096399538824893394408591270934057297948819305369326097320289694025356559212940839907264365300263711365365109081499102898645382988296923554789945914688759811763858393529651653517851088184030229323518417806056589008236388867873180779561926627079691817932732484646607380508319991736127690615057672540618816762752837802893152638380852789614871715393315335525758594217506319416594034389034427084955524113412348674306569398271099321482344389108889208138386894952498528127411265419036907883105918549797520702557326493046643686985709807970087900232993522385277100031301044115654349660792584701669174741115984664478362741416773295573160773658472821730556643493558191701532071596544581382780948044075715332982768918080955432878690625564653883791107175665937623430254125661726715001402397619705513883278655316237399570810542955756299253241180205154517402809368094160383887421352187774236716425576579367651070995060587035427286101931749838671228241890172045009510015423535652766932603463015338026308119017173206728225990391582553510059234775012048346213472993554968078743538011646763931400673421012506417916218377855505293412204276537439214137348796219116094329769402274009871934776884322685641272192409236620873793780961751739396069971945305349300035494177497261861734012903079806079054814976815457739645857923104771955582358757133467574690728592906463085693621693269191680625447153504637929981895513552248902463042449358727386701981844689648513615070578356281840640593015742864832038350273432615336497848405072944715005478892885488973249990041665286651590100389901993391511629023974162010347588553509373379748867413301420762317874468463686682560462656434899713345279936185879491074413045321952784307290904015266731114846869546720564374244925557526449547068071439916917669488319387287332354867571181329978184863599164178168266720656838822511710789773779605426905373137480464038190465068775660912760584783150595876468026838232209488088848132417134521388962568103123771548475707439631534308330977547256545620422260757433213608213129100448054376353372181885935977472275551889172774031441942530135656348037457931024321459176696278249374892087240648014564243638995443702206237593223469257511029239983604474808884822552547601182829242437652607084648764853162012503680121776425012958072534643272802477685529541746828160618181316408096785841891385577757805898467873360322788984098517393226061271866677132930777391272322936944649068839618224502721334448479514558492623175564489487140828057795677455339642055807667723924484714507734387937918972059744553889043871269823254751199527316128435161963665661035230293378850514658720619518229046293776999118843112411771688132014256632900924215477728965912858516377806765505708353045098190775362993793483417188188281808895533522854998862775199960984902016015844262414251940682324676114781643058444843336731714276391181269180771403212173750282327462711687819181263135597378126996168704421072620636597701158440156003601535439235435835763683747555741333503030981418605138709055043265561090462055937245587120435917481898558901166122992814450630359003847630343518010594964128625529278618634507137901982705498496309975508797514979704294816645766833590657362636522730352294081227940695222534899990410105729550584624411740598331543041633128561111767709394855613788564557718907442390380497397486530306692211987373501800632955082009974586158434401708717558276532556513193704465023921372686363828634579660881381636646564292605067852579679591125984742536828644737066233625577743154955132760869151572691513688277916463534602146396986933872834929890083740055893030003398802852499010757038623643080589611763130745253577876926309363645243718675491655089824471275145327688006687029464288677273962980909269171180963384741856701100759958340748150110511351107329706258554932780306714287463338807767349730987216675854136426083523460638580286796047317278172057600657242448448042875606892554991382986403577637029195000725246995012662148114847717944022841021912716822190429800783909288954679364296950824490847178492513261479621344854506753823333971087749881397134302621678179079778968287212715889043784142140387207864550778040521962903071560166469530362148577945129073850481625276597029803407076345214651526154592597454180703104625606798899238051199013057636037691367983767022419019882036362080251923505074917464682879944049562211339806605076131963315751496578999024335820895929097912638022731829381900263473406134654561339011004440552211824181625435368528510776123013651666707827413764956240087901505979582406146788875068390473350302295690947106037847356858566634244054209261491136022802043663958520532305719655001881422119781057221503856730071316827800048006494052928327630432744098459709850404778237480326841637800613815565705848333344033592953979017644968189929925695326774055884059208449355353889181675720116582280668091416256762866736077414995432070876783001121128000094518945049306619300051434862568935745492365925678106434144832189931837237253987010712084673405538717170965133609529680190562887231687570616035292856008496411478641201047870808403154626824149795130366124987111680985386782930745014764629040470052022632912930556112938611691077271750353702581555828059697140517989896306506540485781733790008178885331652085280023844015494618074768903327913612375361429406997418850329913996717340016495103913952909772863211672698522572104837191640455386207101791275058034097038223299634403222402905449006860241856527718995814507127738097392784919190178783282312909770069775208812555050298903330207087107444371759246618913786645069004894700955791820450567191290250156716253148438594407011670153244790258173383276606227971773581920787528303591709489935212518465598419493015472224414483210123093228550999417350844624012104394097110885240101670167609024053545598596168924607994842561459359891437882852249726531137427154371225118494990923557570212979978786131362197716880098402491194710341044665544891287638750901611338833410540187584976899650297594583748143861306703137728832573774274767030067420765604346375463756818593426589434246739741602567663054079618179798872306833535091286591183669928932760395629755268351235374734287729448119037982663780809150463259723468659166893506137653416216155471228588483932171202824475379899981319164912729189414556430403685005244543990828728417193868945404305357897024328747340665124604015494367026270972272644483055931644093701425543091938062754020692838758920598124049512867468493537608162422500178700951817522496777490956455735687948234046115072038972975766751479526461150087124680537666477937998268465425618866472083371269023090299001832342649384742617422156745824727045182003837696505730625072247165286865847992871248906348755636817732340241258826096380681565019442640178635287665746969888247150754751151634616798761004253671318447774421137780352838620329909549450945247170199328509950781676286046581624690324807864763260184725776433742998202826260881072418621022531736011193047721024010604196595976555180830129320783365681644435911539333320906426973997303922035249464246964975680179256777440619326473457707346640400840736105840454038326190274741177880578309197078754267148530501635499564020161251181592344404448649365342320861683563428557853698308383627787637636527788660420465442475124940838802732451519922529660735722897812968796035748171563139410680717586877465010258681524660834498562133817683790738514890821296739858632062377334842103945943545307734751004596018915762826426325777569771224849961492265004466220216478553579356786928814148206052501160477939820443206860038090935968738297192500528665699490890409127186157524135847471629284457468911954764717390076682287146963709824332588976436238939437261701805837655643541751604997256262359937405565187408451644230724409493811390121130166150836641984776539563355903687356493157444527169174241184832756851334244421140919040224309350226338132860759550869443436870117485056320034469488178789468918672755592635462934804887809419970340793135968442034705084644850372494427650617201121604363894742845342556631523699346456343328730493276914774893312937193875518436507359074048907517708278127968926511397486469457639830550254721521733529879778618046776459571856781862864477280005023592160389627110082584599161502386549358652331686876190402964115823237944438201771027435235798786852910826136409121042241555277905337892672954943639984062418419782328239706965943211010752944917357498602394521747767212200562550849141038641378122278498649722695709458913910880525099313734470582595689717018864722280320455658577693144937065667446921140901294404875429130387483570677105421983607612270144528711892554282222179958281894045092560739282488043105167118899360544442459945315281250064151352226196952891592267495830454726861529995249888860646983615346603049813310353777613491450805760814615664275789710321675118024008260688970603567375815660901968334627876480038011749772733685636098377412593466117326313794953920694339635126374931738821302308576334982462209807134270991248574721231089002032810836412547822123528182708709435467209900548668726400756609163361899487982412218336434888814437445741618166505360257591935861992748083387995624079021692656236962841401142612503053552080455566078758864350326426245985652508986441920120631921164981697503184759777562647895519262128139561375455689818914686946113029936724617312638084646519416470283315588237562686875742088189672288879957610124143158822956408177829997025746327967120854940829577584755365747761094503453355945674358096342901630359337595157748231485055953227614424090642808680046543708367714874923420352931615491040112863341984044136370512293255500878841375287514272400837258914887543037279033576713665643133850424131050726944858239825363852060493585746783938775455499890473347090361047624222373298633125968720909630547900641936677580077568217315434272626178348227981224488250488126404310905716794695916521742779587705654047076605283086020867535255538621723972257945482410977970712087087218805534388011737941235258930317552680172882337555958312852331494496405122139786179084916096021787404777844206303692270538922721854669836957977541034276923823521851246386593785607121995759099655056538168771525590881018815154221087145581267344787859776559501838699373127670917065316310693549890379231535917614062239340355537706253023356226243286635649220694130349088805186385996442377013760337315955648391633725553623815384106385227464251223205016360171057009242167372681531560158336478448671489870872543001885101750410294110479671310120982459344504210179019961785249504993995459693183457830817655092319878005710209415476095607391407484709036321557190466640759402638946722135393443491375472014662778393079859802174831152575238895576292337478316482018776398600512584844867979983810301855943252275745380068997974592263392308745076164297983884047352493485569396066618900656297721262246261986204405810088544760873163966874952609006066700739981975794419664420813579919820362152356686150221320736810156516081273647908807949404017141097086666559408384804809183395135686296789112110790500538050092891699531586875062802022834561818859407688500263480860259519746045104038995691355325716981174320107551562422772484406564220489168927677315749606581841660878362165195384031429705344099868216410365667177983377764657841803734191523117556743597556661341906660432916545261924275641209783167379507036934304349596484878780530372583281921401066552724493232680928395886957461793506639607157488108795752914569235179673918515227525540861132499927134116922209755006707630406632128503906523846682082472487096513897801173932194569003253003651545717417084860378337757052109706072663306800703152022819648394388793452686634301233897330292474923457779800558177517392907780505148922768303857737972196325538126667839425015704804482464940085116508234984400198388980604074208831062672560879154543227435995553107731778226606748766192525616531279379531889712355214470911530344963760624251965057906045348358698479952802093840181258284599250304959766959591039376180054525329632856903039029787598509272018802142783712226344994151449251674791895441852686243480280229835698873708705596792219561800065809664596173381349665010060571177890001284815203711250691694584057228480589853045284184390977882083805520376964571499586682210303825567751360216412979326664446832801699900798422636239262987748159991249383729400697551409353981673815843099995655732821681855622162599429924916562989132110352983278260554020476029989016460695797782285043546923298060317855715113242948562246119978085814065939110287631617559183971432645816834018293156890898841959113959225856808308823443730450095382862971773623604910937980094255129667589493767635579306787132984556840237677008111253179687636197040325770664065977506838424771372474360292879157295367062204245225787942569085608881001237494772846302440735253879224704035057854744456782342725460489425287940427481705282819964754920908184886856719245013402967462196097961504712185213599406032589189495323076902232907324301287019849595689232983467063171044613016712189282921881387296945349033997508251683750843106843139286076792036353481278391261790898930899376492097564835791551451662668631067496903829821163569581666063955139438256260764658325943645144824819439113102218355968172498227845168309686659714755664401572330083534257510333229311758137254328403332553811095256032194826416853803390163333866862877677658916165431986495113195399557320247712689931401713692697700085807871383399340146711448859744919101886822450015755684444393373877115646533704056370265812884207882548099651464277395522604911411571566436852606228672853633364014759059213536164785672624548119267414807860657315576309333747300995820427643130549540076234467730008327047468629237116530308527318629855709185532902303802558950086516523135243852156440684055630602557752268502434131123018415209979452766423623768030020355556128165612945627853118232225952193253769017839009478351206442788380190146663922334184629322331511849127766106350269697944774392947626250541781918468552657224644133339443241203235731537868562403257201218484949947946015436873620256083411756460843680107393754927698827833289928787875263088835830915399595250818920832549775784903062627536832918183447372364534737288223396009731096941673121937157275330502332310999443544752048006062572049416150484094161200841545325117596665748172953930856567053487372777735283177425249580011585762399503897311172839952728082097346351446747933155182053907858867684738530254577656973648662763711872736499195773212124260148026618244499733971964942125186625808950227823289980667182706161082554019353212191378356158500201624358153864380951527963673430950087519029615765813425748156847350974279235383544955686579689689799081023643989243198350361598375986763364501881864939263851173468703112442820197316882275487698013156166158003412987485892208581467158060800383767015738573512790295128056949391188577730090653818863630954429746676969260495019816514885897706081596699747449464734056124696494830725773514852279538361698343903680314656207486514966152049462753448850041618425117816215879000621266235611322998928354682994962397408292936784805261040956340668340851868802531054721913988340959964261341471144572397752482572991686354415007949212552063287716988543689448745622922601064206332901666230984075095304426886736363355647608658701854541302117265521913921897094175336915843106279715050992127879952438452011915481881300266277432422609306423287043282168281726435704111559170824428698059988206561373170647355510938542194114957109039672949182820779184071816926069249633741290373868886820608386224298980138008691850340570044403584177757193321439933433303927983027862231737531221325122002754344343776858968726189651113720449747460749884786481615541464267123307320527062546230330671675950571490483891691802920606022655286589147132918813954803334506337311539047622375059879751300425721489916718467372015842885962726844719297664216128758530441097502481912417340214275337736988576565783641649651070682766966780220644112668863297083859109418135536161903842884767644781907193864206002737607413650010585170531016899038730852070568080721962968641208648908097736662206107544684062566535905458054171261357717058653849180933417835089458396471172185352450203894912432191308010810091994770356760579886770204242857646434395971336481091243282282332248760705631228681952844936198994098371913147611244652357197913235636061996149030755071988664634097698759795463403848447828540657726538096483593428912586442626143583544236310734100075402704764318575927530289868367105923057188046214711306602680082317254762332052899872314585587420279055103333530295370528297874856815518367749291376073772644348105715332783737602761765951649213706807990744278081252605137206640589390373740722232729167074496770334718111477058461035284597768728000020879686589405693544044523688784868639057324688002256050937004244127819051264360192414349817795334335476027738182263390727890717132224730867397160665295322763461016285655910416088353901521485550445409497961895256165523050889083488046549519544329140739946846004643656718828522144796980891584933606651028802804254655553372950695472185832730048007671300668929295634584940901152716371054140742683153361769465088669203687829738828828006794756424282892236455934201215406214876133623554654856899103314239689660398873705630816088736548895966193625222029199881973288589800994121512030754309720780145423708758402285932037246410106929740166203753192224665685844383850883218134562005509820210738079551560894534404285376574599830082544664969052108904256343587308214054683398211912537454812726315880126960152194875624850090361511020398100991790248231828604415009889035581295144546802599588322200337163798128884904351784137932117467598734841867354401986589675196142517187739337280601154549578619657039822192576525556814004219796473830107893221984761258428870696045454741582533630037908299340442166174533963199815402595476872763582221704017234655593297894442570172578978270800441994721287550433373854335329379003733791612112122241383243918674902545647777909393501342949687363860943699614927377797602256454944302342401901786167700968770393479167509716303228336765475086515659815526819901482636333160073809051936061116898694013162558236300979115729148395367050308705058813120783855886997438601572053681828963863073533757023142672361523151799843721474090545488278549349347977808845257789304848384104839920853132723265260619409235195707349438572157280578133775350011091600377371280663007462388963643598353389491553980408874860327712683597432818860896048736256913472947273679776669559394352836396277951172981292968608408525047531170309861038676719709648233629143534948161604439730619164337098062945110950501415737916536481757896579014143099503156188320861234723442167536189844337456841569690052361528771564607039333193452658383765491310710912494090984782547858259012948886713811403620810292634712611782096439398845302903934033015073409822148205672344947995118861963280840996119728588104192662881438934701162201097843778533805744874933942036297382114083587247094377806764192073151482885646321348453824181776181556388993903356109929318342954348316534854229068583427086675671582548397686450991397817554350902798549601081748432429449104745795352542326540786298037818691200529894162581469309123814500296814193549306767473342761662224446690310810175438721019365297501870484141079526859440457310770938861478208949957029180694979445570619071187917431541473221656869604339407508459713702144219454974324579062724832398537997473338401513827327880547478760924575025320843340291025390049454548926259959160689777266673436932607120557509777976794776955180542757529665589483499796677115878736380495642841456045105249197082871220422842863858286565686744745454703983752144415691733950889487277558443297232977387864744669153141463206545875896707847377233366490670884974565833754432883496016689526150637580937177825016241254654091131001294838572933037080555229638549926460991952169465855537725494683576028683305120959505532933366069515790659874764222228987802535825687920530601848106498727941434804493128717255526541112129316318461446363403476726895516235285705113793747331938254937934627211360220490127697143215087014060370319252253129138706730829868958152975416802222022542511353442027483845000596999951827087461066707399875436456210764222167029410138757839892434084124917243358110756281645220994894413961087784198603786855982826013567197662064407825241000335356398656916045170125299105734257762643039118902612235927948305708345629913047698592719889552331617001475751326897443331080597096189680242941237548671883519824643350785697689317071987336942831771146807947212889119114536560864188670527904636170707867874524661292803049696807955533942138656856609568631067722981486621752061692294795773547519534416837216482791033532912230455512122650807221006336563242783518103622155188313624193516921032075180085721373078548045018144079329280404604801783395455358819398921391661922749716199361397297359849959990542860816559036758763732773565162933769139841591755049933180684276180316171370591920086583854859697166876985817582633639547621238357387963495765213323598246259407882568872945495662927602431655760204090198262094445385206382221466294673570844030116124034595628445094436877974488547788709249852081322337908883156930232320649563887667783685070298840048449366332194909878802928277354110536985487918430892872851121369828715211501394003871887126356387935202319495558075004553179856403529802802888415767643771007704510335004397358656007703677226832838168328513300584855384094104607192429447707414530171956829588395778266079738194455542621360835585618480116498707897979908469053824502453761919263489625674262227335124018520079320455800335083293739668674874129447252734633970862313431024237979143047689119338681670545905498154163512653222586699783287089049477226083688756927936571211675573940240064401298047543505599526797130165421549653431253273595448657230397643277542616193756809083353448003683356979552440172366717166102297502585802918394647580431435552334470071263425149823216921951980958073845224037250123008709081469411651045858234362353509697011538976032113110673696761107730507421258921614848536096027158760824356791708077020921384257020489396709709759105640826092342022227974067609894191023179344274793982023742242166291935355815974444995144192183059869067949597570724107343887538890302174666255090782430645446069787326077446731380318075235419469936712775154895785541353786937190151210000836984338106375027962426244822662131392847828753639129106244273300318990006511315166594005904660165866741546640920284685278956927783299495302649606010481413989951568107734595403666124961026907514460735539645955512353212253768012642405185833902910895379103196405612853587668687301768583133538762251048359993607740648680249484540612383368537177180242113615780919068053129299613908835564136549260112152475233448511324227561226882348878143255855945617919295131154054521470484223818154722063810253919063617711951156234340423275622371992982064734475743592614714748095282380128687468016100298421555030372921207499670071593657859426347331987609141264014814806570943898942607545938095042629264882877539384976276648875784408573100368038975960749924479015535650710878042839419946820585824499931907690810760604401802479594951566347346723316166986194660446976149930786111281469163230550806914793412382319699534193572405835544197948465428121549329873290639134145396854525485666566411998634306122767974897664426497609254709417421563310562122663010709734163312793757283798048989608394729277392909960997245964879606056632496517348886853489800440635205255862987196642860430417132007902630046457160750601313178314998433047918911508737987684063299517074183130068753992210548348852609716726669922742812929436548520302156574224907464377676912852737018032352729174459891947770409425623578493559361241414387044849141175523579299893435241063439143592115677765888330957919243432640215321543683521731583128625408440630532092211986939331732919504598027614298153845495573318033510332581942741936159234467052309920808298863043684649508946170588343321887660058115441277626457252763689005802087757180572771573969685750476630618789130229894379616574128418621082139428080944346045551143455701834692177710791478686286066981724462013704519731068718233855608741472517378128097700959340842503192216195825687201479273038958780393544424692454855660883866627108481520445007965938109515193144869342907484052509562719272592493763623814505744268520199089161351757482906737577098513265521336566953531449610928245705203806854970585346142544411982556519753496115390707821217632143984108374789057380161817638714849201204623491390448880119653505533668865883654653013911053409360834952812085154463861570981258242053528414000134635048631096330653259032305587778543318640877516691547114415029292705890147822762580546490039710658197400876141085142144487797596844931671487382716359490869906071758765041825317344591659993174061427880757908886839964825626203529284552884471105921252783939328250949746773266051288851997814214688216418287603100898192799963826998321461250648220197721312368795311831424728731902508175929402906531099339850875079447622229499496636544723622567333186732549543867088606917183034956988387524800939680809403377252451158785999935043406018261065485968309461221268371782595978353120767336118649864932421147396845614658939895577002082649927391621369186143034636313943277988793146451353132629558386125168109850995939734128491435243961847016431536881772953383425834313394674365495884897972785243327587178153974601193718482566324721117701258933865109103013789085845732614922173235640424960322139492716940311380047640448358433372662526622309680075272670668752607765150296149428851024035771593016490735827900148020751607471452029736242771062532460250401452677974783275970678609369600077993362424499406027949272627465652518014889075101739258240687505219245371480483258713726094023213402555378391658396312337525713781813620817249938290548644023906132002676374942079860975376402279844327318001551057894902160845770801792379771893937047448845933685440937235987369866718421896425824397346107939501129128375195934966267953201197344530946697440323040063650202959336198779732485186039365403379977877249513926821372141400188022499108448258072098401859504357209172345410025787352061569730826717124341940475831337979491273840504848293023878405500459234617552709145984756492378002209568756971027783966485901757357524406713226878198267953052701652880853436512158574580235043626453251545320105224395043816969950604080835745044598786262472318445187259530813687790241986019649191745491154740495406392742812474636440845009685214677418705357676996006080593339380283525408938725865513943343422878763015180071655136094798490463619099718262980402246854062736490982731972741533130853038900641331535060374670874954892713071987955599229885977469788216449187921620766659416969014194788426202417889607731954167808886410882749685453278691970874923345615361170337379680376935992956944498121312626984670600766058165361731159121421222595808462246481222777257702430617492483691465686473693067901419219601936765826484143493205844697632646659900992094738193649873974657020034991087470670500868111270744196183802659208111243263501039633443847558670416255139081256540497540897306891682254672018890140915606345792799243430742559684684364050235817986443721150254313484159964321433877026596353135546001981879248248118457148793996562307699789377415533547924279392210455742671646347665451509219621820699823000204524146468288661110620637264606354698295562470021018335314182982163863057494781259317248963846925882806334948023058996620572294797238852991779488900475084002252193102873094500609120061197408618559337957118519828777374263230006612687756297276228289524287603075469584994583687643070471607026994170738418741384402620347591995300723571239614762038073670917370368449814425225119715788794570370400517830915015504326551586770968193821664904874645661813019962773921483203561951000032627784530314048792856507820022193125486543515931021244022108470858253226407654709967623198797451584865834920845337669079703853504644575442897029029562843515542566138123226855728894713258311473294926246791752016886725936053674315859481837779679583824760713477704227310250607115856960506690632116360411454497520093660513078354597865527724417447637484962824883243724041862665520408432038837526177221724179260419885534540976686962389292157845055207329100490324513289277242228423306780512226576687659402114597257430598148472387070138724080215405139411300304402605204231773696914958616462651948051998950375210015234622770153564288645829079298240057535413648191011036377562374285601390270888252897629875503528050460005945155523142135141536016262246574908972727558419759795299858217216065545282236892670842129958882847359383309667850102379440352526848959967811419119080126344086431765951816296906392345928003424597632262692735877093495207028571183263515393563422792398318694098607721819977132402722980982916424156636200638857127008361652457213346200825757732866825810495559544284255611224532530610609842584722101303932788152567281229506838625112841848635001023917317964958997207257694421586949388030360085995305011011552229128702161180121188628339627680481180990706998148616144393029052246172570570775263311193464385253773538066316483771775766982792755922033011968270281263933868698313851148819653261690267093543688349490227283302430526909755256408724072645118722263027858420497663716071158735878790022631505227685268916760667309458026782591959791312360988604862325695116387697344886194016002827553574192682471584254547370676164968365453978652897435374292074494125367926613843103624648152924394366174160320873805456029836998605165424888280905467174870509258174971297761807391366184661276296737650485782003593730626775000554368298262607159292573328975845459729094900552709770409849038109043565026456428079782692738371118680245988639940811947837463525248076376974788184437882871106018795238622238232086729327868909210360377676635296264695440934912374851333674774509583156228105654760025916503626326667103598155729843006097737013987856178233487759274888085563240050872240878009925483238009309142740095257530683986675440096071762362801743747811051819324198480434513632326934401842450127557582614533125175169441282619055159737641209004726608535540918517101244616352492799850967731543383447487512372016592715413911399728605004933333424066526323683654633359926694777831179864333925122684680225971002600687360037209801014469935795676842120341102657839607557478001743715444679234671228191311806837722551400626137103565940064900781609480025300221795931450962616016548685544818057926405129074655658825897820840801845014131896115970978688960846011382637056402494668167267038056172289432917329130276285703177280720423246540692030222810511576337311325727142055268533998155235711179377109712746745120930699680482646203735911054581592539862272548871707894930358221924644804055246536185931068470942766365917134476397606475012303131773012663254036565530158211470508419885995278300768075164122942726547289835446762978078483356438286381667416752978080231877167949611549861459226512408021029003381586294236277398129305329642742066661696793785757092867104386188128450923641469229894614372524296428769773549382457225123375604452865372476620345551512871887570552792030304019811891532344470890752546023885613699099598628835737757822135600662635274296431442983597834506510619911742288877574372366997359378327249688070644439568360914531271738021430775748564827668726004936462086057232390687448467197521506861518467838279675396941167750877529540269945964162705272467508692944881021055325884645878036138247789477459582355159678264909262484134801575437022903946253683188086618960622149877755516719941912634056241987769180343463552039525827235352043619686835875270401334458643936442421673605515397755622053272397987152696845215188265716924778911330288291992822099595636771595369857792778718990418622294486375194642746160243535554040716171710170799524815327327828035527305726337353136630045270877426168610939756070251831606604624081469757180614614570842573093369464919633925965758005698481923579841750366165535817017107735132667846473618996771197498060970108813870542636003808535394800242092227921585833821180928123564241024464105746013337373469817097744504157040650912560877704306502321022601445428753760731787928345437717653686485701365458515207470165337547123703295098669683871986134155258013169937251929382214609931860171414811764475080508841499320886022542835005126137026657083879432500435265229022389798748738182325667564395652664886623282482615819853010872613264604269363274546286385647966117385661554802720338756382642849387863086851537859441719170598859754957498530411401476505092535862490488950796616401051815502942837215110238654265563257554663535814958071539630000612642615916480359970238126858117483910763103919014691037101752555376189292833739233503311467642476165354949529290563188427814082386685605545623485953910870099050316287053411065528750387190500559053622675462051645982480262646927472278617423115641182761959862591360457551575263002155898872119461644649228152830338543611139578948279903804441162941454517509363710681300719002169829444905186242515599308685245101695563313614526744354388213798323128387334421454324776801949983361041970959444987390015624871355534367919099069408875507227591743214025100156650840944517778547314331829895320883860503638535831568951788467504643402635874573869539040979880308334887503426650247329969781981575886676424377632299425231726783459731371779962410282847912795361406801821089889017697767021096536469353699870747538032459515534520004701044086282105627126976832776811221109335071462381149230474482763840843590415711739996453749708340036939628232546262269137574204535510190713151760149972122571588568676147198340900572746056918458654474515879538271390217153968967710703872216703690688178155571043801942103400973792064733545214736209605711160716640568165071817132116652795561727236810333186512507161673693037901437179947876177024368268168654164993435992603087888523270682491474738355614147316144937379501079820950762516704857419867458373921393889426403837752414509235583143080091274052195055020578771371924479429389106108403843130849694284716145244689040317138937261694651483863687862960823621758048439167996412051546634989775603524964391840186918572238424587058593931414664073615558956234732609296944041905226316343815231644473623435505191798573184460898543753284664244944820096098511665357714504950291559422092342557828083339690850505659755471641597755866275786133264321706047983279459346763193824102436388173819951452084771097468446993310836694876811439997759831604430405344366860772487922187303299369682346791096336249201367293962333470992761944944417057518399876853863991790978092302012167682404093363796975791385538700889945667289894484446698542402960672773901063733079350909847195783743230598719768503988245999969429832309199412615751235977997700609336276008330940280609523045103944675736814408246932452273164701247818345663422879670038265925924257612748619932311215308820587586609832076339695066194308402868598030248688972684908552292412274617536934025676169442106426475239191233079844002162256079089543574491281550459178271395682088527872725215013849410872395368988940694335984142245149062697662669179501867946793210435826934115907231010331132968511612488844687156772972493020418257990816733152715489149549455478644877271992827438139389735449928107780988101168660416442068084939964486547971486622898028147403116355323606930625410420158789120222729208780008711948152447317325059685286366279490480468775295054973859190320175230671088549486599444017409720719941273076165226665669319033037573983538003903134758590518035526074586658448361078652370758448761050833454485367463496187507896047911169941152334237057255263013499886109147248843809951766827150984562400546282771985006192581437111618458859253349315012864320820736913772562591585451691825243498105166483783293381567903052355001626002875546767188838831889005135641214078489050551343878403207130580838513591250051258480322733789377979653697664846077728964222644925347112721315546648761394035860966610012329589450711519685212441397403220120953210264250042784207378938339471486451956092798304851455494714831493346359431233138529898346015876853692858164114905601030921298631321866588496860623629497808868592739981801213598862437875668708460113346131201908519341849595406329197176200720737380034189147015870939282829366506143555044919210455052375445082410261621129747211035050652489054952257899496763575102779307412750420757405855479949893658939243805609031132477908189658929545724415132198118205824437148099520030869900780135247798438510583951903449852190982053396159088392893192360489990950025522895278691561839381497750322504764376568473347699236739761496098533213614168040911365071900523856507874966686899274465266450877111072249292387060825670846511433295515652802192512400813077637305600663402492892331729243405050868824666703879800255396197221120487977040440873373228590880291407630055171315143446624835128218836686228782105193461256213144481604525145854050712305732334295055580413512065132003536753846803494772818289858912649506613052651308074643224621169669452835399158664480318023319206700936085103384389689602888809713917826650109165036566745090840662300830518189100783097044298379636665401522873711986929319046855192958937674931623030906613513225635027998935864506818627768785761380045414009635316358363615602571079952161479643992798173590221345619330523282224521702063699552230482282704136698541680451530485594708213885509996260904377044991216497436506027052590260962084897034443297755146788668034797383842226429101400590783226798222368051526667746223555758361454877915322928502809614652293943838503651984066930683892757513817340254494350684209464137410259290590419362706366464404791698014183358126505970450722322097935022306092141904250645537956836985474300251519025664642426096095926663758203064969063925740176972021924546722463782040504391610033345451080306530207715146600369664904764430510093884638909909319338243350482166933244162766292723121187946353962478678122134471194638549615489902729098172452388066168568258244070619746780250070113697380213068096416219465340387965979788136515683096874918880704632483572406173851165732442926988755066481000478966325534120506821362446662106388447328626605962296103288898877975262360992360104742498738531253695836224119535870170315607396699654387294134626589869812216185569094348423277509105046995467199685100334971688981957157428492197386695726633526550682431294344366900212364512866733714596513093571992106898465512101925993335188274820140199293106251045468574200699504510473520571504453358940014017608290325026654923766017183495019700863112669294713420845775042837238235422928695894172930149650056433463018462167002705080844146100752474344951479942697527014923842337384373762344821937582798162942786616381831335443764860103839655536753831967325662777311076109864171456216572475510506789058636605231780921932340809667519870697657274619151247106980965038166780771430009883787989109519828837064836470974753745453812616183360001636082185000114386841315485884707310151132850229192575866757661799142922778543086838183466765280742721579889050975344629250171562746934472457232140053283466705978317168069107044237127742209125697340179825233250829701701345414110259550262439398616847939052924800796896868966651101844995693404212188843407082152179670748076565740577263008939352430321131810840053824380078142534547905597442437198405446713967626956291634934202428381149534271274126872990010875414289656307579922969789432842773329403924243299113834305082401834642503855834865394916075418791160131356899176437127753157689095641673849053256217740124163250717710805239558890118594892294973641820966086759890322908776501635263000214726424668225076145467927277230853652978625601634048039303253481451360692055857332076878810938619789995617047490265739543599645053793093857415579196714479468919462337253106474796127835120783862661260599841277309737373350297164437117299932991588850454818199620839939611564021855975657088549589550505702566218437783812794069015806415709375070228665497183940457745370145005321602632143189385694459674729388965165667895861417547698507444135418196373206814004948333299772909229087920093300231734162533635217102606947821572983455759411094497696621458533071706002891802636142747016184768254263708425576314286980547032822627789520099888923937697873543176889190131934016762243751489564344450131668323883083838666522461039057926422625059663598322665430311276838598618582579138318851635406101863333264270639070029338775602263056337575927999864839052286438088647634749993203432225364620962216924913552845065239976329538477472864941833624171565086504716609202508483282329448525501230113694190130158112056870254075939261199319807568904905964776182239796196369348560452352081466668353362067382980530288935657096930344985955152519600932348109452693377229406930171079552231623498318626225248729707636130204349604080761369019964101188189789572040314826541330106334827467723469278938855672768906913652438898079575706571980616302450112569171994681598316748998265476467172410260952368231971245262526947159184058222153232866150457482134659134840798056602932186500788740119568192096798928026004344473385540161719910170888510796625464162925554588559740792003964201440921621971025428349161255242305173305475779202956472442730019854463404092813275216081303929931929852860229825293685130788244239370238727064043222097586805257637260080304145433249272224160703193753331009878189233598636605709382681956320188759865900270349161967541405180322594550180139870780074222319829638677470080112107986487051825603686360744795040033054669933327387624547159008322811690253445480096972098384719484689400166666021457592648026294957986684394541021437670917063716592975187324655832658752027242354193597661354918928893315431421105042178012678215483398334910958380342601990977349092419672607064150861565115751565770627928659735977491541578932404464532865705249245388193400219319307213664331848596766172216882695587297219050404894800830517318576858008754980392685923615589222218555655750264923808344931258503643598880738367805141460131741338272393352764235131386362972713540139856926080214953929389815703703937550147463547552791815182060206165106373292836255739372802355001828727534910016218779719288454894083921476431440130661511277357447318126405519614709576352655055799096510948602253272644643622998254342294807003291211172293638712845918808735304112507182228276230785380043884200373108431435132703864323207370687362658619303456538969935303984066287177189111548673744009489533308060128909478716442116845926753618863629173599620146288324395108904502295677444324773917778753484859208761642040442940766357667910440382452925827228703868515381226762084462191008598605418125161809182976792086700140819341466712540876968357852843462184703269204685500721737979287948370039813972820276094786326368793323155370247162068996874067723061075675151051886672799938333273318831569347474232103104778117948730989233828223216229645851199243948144417757566425972471640120902954624620740430455009468392204483013833189862643143211304940804322706592571440152918384662106001647155846931398306718401222826440232836948034637357158735029184220089893478207395493431436150462043541488540322362412075805733748254205979459022481802648196172796812816173350559716961423022652750249691469040759156536530306127670930822182240665394277422292684026293405317264899852685674580224551188357284575991850960813904873787360201163506328446738881311667240783683197481520454704541393364269049550037656535338324852581955461400019315731059810112581943435899475246355821153029111308152371106990280439702245701773584503273548083801233821969687228164259488772847839506936878717763124975723497800463483406041336505564750346280964436566546030720277447583347521513218264562605085094890716621851287271056031315179773958749414725761870816412720778236068097400659252730550689842735624974833638425906724501501547417147551058204263773695648673402453011191250551400793891315682248068562233224294475259808659217012269154310092895111284823043254617315017116280943975169145582526042264466640186673719357436812395625252085301081125663521091888565896723018057273786629604493628650402925601803371907575541523351928096255941436948944809310396556091597768239522133460583232590952507547670464885280813097669004200377874082013803095250112777485645430408591615688732513153105968330543710740070288523765230081580252259223103723791661510736010459397731639712590603726804658823369094753033780428697497285081448905693975361174842851697896731045144023714099897832307926908813813170044371447368766668516368870247491083617744731942535559395081454999093216486591022816733394907835155168167567654327317535297335483409703946339441620429265441364711477799775350608919603478838122291824199890327818669488068017498590438945557006328533456660217108590849404526219103400026283355878830213951490379752348113291112277400381302419514509933999101469536933176184513949945293073978793219521797990634754409785905463049823288086908965342466562041411886707225542676580194726499814873473723336487187967660864551616432439086160365415521550660544186507471595780975358984273301725753024400845409912237164511683543950942201481222924159500216574397675175998858323131542785811377144426289041377685930660545293095094856246590967118635889088491390299939080372029590608125576181638923427611699314391671086863592701912966060217015873866363089047454751021464026218032117513526727129205473470348296900996737427040919142542588333771871680186498013615536853573881963689688949584551905570208180534408586658009906994731354207682699020769382547115859208652801403737327613786497313273888371297059223482123469799527851853504628358493182844969337241054825828266828264733318661683021769266211495799616697407380447478860436585277893871487541949669540437919456850375948523744945745467464689524063960922149380371052211818703384892845723344390820166415697616446041635899781405914248019190387011353885637122959691172758100122766123049718409344816263568257683605762658001184753025271244723723807006413462200932584903763729108621435269896623811152678666688163622487504036706153408129113984213993150718620231110721484857139157943946369721142996964321326333577524265194090431081174824893127552509777684190330703195428207537445595218332887101315812315171535404854102199539561159744960567091084066706164958436714862496266807737481799052417181812860709252146655504580592227885396459706877031065923774258928547892683836407898894957324006517096075031844753588376397833012433863137934276398717256209933597524899626356504189447453893776045630648535650265052237288114252398397964427895880295355765282270858077589527504687359196761972283737321481606296629608980641476584021802103553296786709542263443938650489029441116911182929429656802055814136580748673532859002277743045186393735807994035256472005797650721794796598957646517154921222398076974874682473684572743690931165639408898148772203502738138726840854324055099312418856259071689651084567988647709619751109223327092913199977925187399765817302229332092817429333086488859344186440558825803382703961939932910911609324989876936117382761012991790386143592554691709588321059307482972737530243761227424240904850579705005205458917853393574925549265719315740389718931060172999638211601042116388214334152132064167346647705878208918081342725308384305786461615410898884901159413392850866086289223606250534622895072871842176648649179192393752926770576224602742330978608817040728979344670689663243934602845998808965628714332529319518985329450061147809059433535091151535371347652436001669943205317885346243649798031219337937187443068410096452316654471967692279374287784207539844363162732633630518631179905679577317048462121427672332457623093383266963747412422407496921570971236128272827491026606737842325214066688351137934194185728839803559441291748904712344133073625714733505364261902438878603458347021635237742792744997336434688795613251497407030250298961467070892047606474635401225392522847066316065802071080223648221040962079485957851814265012247983334871694768681825119621940540281227077150016183539311913205672542331444697073393741829988928338529171223913303515353724180152145060613594261135436976304934383500761831352739266381670887062388440801035998133039001619101085349988832599651704559771936837777721162057448702924291346852412836440149212348133528007062356097296384956774335730868899573016050125329182474768037397812711140823905079866354785161842057296365439783740704867806399229097686986378710307525451476272940057471940631487120661773042864319000183153362724013999278821993710037394446276836675587234796493836275323798519769747425461966543449699388483122894176439837451030106025243880179440257621619488474527633959376407164701813115199836594968348595584025326053013866920220152618850847860615335125172283391640113897257256745110309756301101598577795604446874306944465701348769191778225490996682927007973526264147334309981189924337332263320381118283218257075148505434965454862552680679939181952959348772437286700040288767818486223338399541209101655732613091244901639095312852579096062373362862089410154508922684502106277212233781902142588040413072239120809583150747255020145661278153189301175625987900292435160724077236061323380288414721226556826214658926636074517867367159975660336113922963915287741394665213597071929631337555549480100944648695957091107779866256278661109487542299200932396533446026625166501770307107720765385344375744609530965393366979383946332717589676908990462633246582865073662346525533385973079631147913539487948290315430647789409392426081555076586080938161032350356259153390836896405657570552190360931915693702197034627266233155494636371253055326666447081129850073179671233386502750883763409588032243931621847609172075546362319863028098874297161564112456954314735546662514003044302538008721068207646337694454360063524645691385407271520231737747081392224425062924559889679898407201240000347605475268763589597674196978746849091216185186328450177675342465348798815557753873750258081296848018334227575136012907851305374149705254809786224581120778894362585509458542417593363753044441575236812194710241737414920349947054368512077359334858918449764472818641522386613114005850380896737000599181443498837435775847748766474810821161359729865534979167977746827389564313371106033229544965834939251336073706188477662671963824204595853133335182349422091904521492355366020810639440657023952699185326949576814620321391056385641777788950412453178782604868541036895461866771372694362771217509838051059410155566359796154783521538141658957465620119656488036057853659569523117091116799201848841196488171834277419234494667559676958210342028259838304762310255293673847808118151644598368406836556647845723795590467065262970006798297944207150595095471101647003970420611855106283793365580557463122008034643182402093107389955460217338411662155361733806068777989728287406558961949847605698134062812513283172231803028826563119653208929692700781809321380580596265861892711633086486953662027325537253925828169595525295831622999509404318481655679235243333973694155649783177581656515883845372114910028601742180065825579999954647385987623361029773367099725654805571875128276108935288314538849932592486210830017746509989661323306569520473527255172965154581714704293368479119097083219221109284201382110608166161647325705965126359313883192301809627071211619627232577408374355269874501162769715933147262165456545591866914800737391354506217775363316560960679396338350698844746446779543141092475176872506071722530738146604200280436025177617720571038873000344525888348366800057267663149318055934881685046421959477107676122025462229809367722486927777866428159964416111419466375398732893815861380915912802469442939998697098034711422300252432963909748923444090934268268937459117119842691485779424647891151100769888432604987243259660553366300773408493972451375629177810164002676652266191823984310450602494075974910280211446305503027245025270079888843366477233574965630153970910532579440410831842244783752451361409365131164170815294592709011337253942875756790772802584916390284305846757389799048905450706527233470653458128484119313880360134311633083913138338816898993203314252851101500277319382149340109974863444243535434151652480562918862692744303994100357095236603686897113254204904839228258483336344731518476918358676688329099304299352797008231307076554452684309078530257910723757377440823344564734329570166352394625218740778370891208738581843827589885963024186166234153945116646591833923680196639702458912608326742525171875553454300548853522705542803598676146062367620719084742860826379020012669734886550775573204326218016311933569110288913023570516961593902316876658633532294485062821243809922814964112530326567092870489070726172647720451329631746188227900997581726142034311697210830897411410474769097691580242899666943485870596738807416294863302888770944880894278800481122182358292270702456834242120299416014625465031477274863847192824184921133692104288462290299119576179867980964399597850229731033473111359418507155705789251248356432417615827747345930003064682141968196104051226405280801094067951789417028217131080598853695784096496410166126875074884290983116765116021969362226634427547894329488066629377262431414364040037158377671067604734863235881382376545559835987833600651460005493309046535065680046369284027105533762428288055647435870717037049391550531058265492685943350389295871946001107650851495829863478285090212136732335205738864157523605020471396811390892468400605960411902961125752960955478901714630453068748384567155611800120637785256664939110619085673308100981056141504711431117269024384356868314280418540761684237372477773714949828896809097910439116531056506343569770157811778589065364732981070321526375024007781738370405007563854562187407875067379513087843836953544251304053163076627253796530291236060248249122979940770754269392175434032580027214111757294708398481356965901864436203823876649510933818643970227105149001259970745294374962244766782223483340134178167721031277976730948740143018870250650976301386466930529876301814646770717766299770803551894277880712795508832930132388802676959014066644083891081053216387747989675413962495477653387382051178736063813082746016151251144446625523211707852881116736911240580758637018229765597788294573741996147074494467542741297206152283788204856039636992961793234106722955043168374434230014575377747456907523264935208411464050841616098758486875080495554921611760410282119967633682568630935717578370520001821173691338061569090052908146850254599330285595559576071052793740951746289354579246915854805612751071917939440571555305355632492270138787867810575237770973358723716681717594347199367727790914160585785614399129703762255024842233849283484434831657649458450658377590235016766273944241793302247692518841348314197742499503011228175132535155586655668216654553351205598032015363119857858130541269061991978514521493277597784723604810458135587348655982559209250105261239082058123373010018293534248571681069541212908144363873871875023168052513737386636470084661224395996492477386575500548603943328590193874076268029981986772335478788200368490051906866760048700316027062514721353365642562907902208575166029121327988820458941845572103987893789945480547627468903295990754518072600156686765074197987974514895076722769746230434029985884056216688716634708808780398577411051528401061790785223275118263112531017686548466964991744301972127782934637191599173188441828204252438635399501770005606468672877803038640635674236121446666095489655257856366600367922724891303137061000430147650885226893437502319667098773563302892245740523292476170922704549681562627555562377241125376298012232714501939309334923807431491684683039411212706648208298836605607597288659366601438752871459614956578399859819034814338069862002389135157511586555705632870726363736121850225288814006064278861962142019569888049436003902496393096664739660083701266641375811508197553176302436780698984685765003580535797678771506746070248578588804312805824265940644308963117998454829431039625215648735516199086777905339191034996128875308433683775275539150588554574593116732030608403983348550248560650785704002022297869045130510242932718568839436551871125387112582508901781250747684456007966868226138431443878988372206851971540577495621284256612101798457382821916421484223994985624846933709209783405095255882562122437929628406955439038312183005954635399725825072059404635805907579755441206330292059979626168040710549177641180769898769536836411736747769138486012421376392846059653609425690390616938405185367445693428245492658370053785879757970862627267063410596598199258241538759645721757526509519116471417266466164721999992062407820951080055647395623978606103457147390025548136699853938699634936746657899350725807944254645202739609884668371205379927189531240247642496104854539389127539154887127675203507044377342497057620207794447657184122407280666781740555837990691947361805694440182176373430401554870946775714856678663444905200446860228005699433089369048313299167670226677487186193490228334141827193204002847900821401958909371649060998706246218320333054501338843710981554867364910059826336976558965470986643020700814918564917941236904071109896383270521804585079216783999417625382760653776571205215441716905734931248751382697005859227944962086481613892112903629874739143961843138004508533113736835866071539625457574720367849343762846261121950031547590796334331316009752822008324495874798552083375751311700180080571671075350876137975847304008343524880719404829076526459672684009745259461003079172540113222472442797722328005926092586712216620909078825102006256552519860180363733794015095006814513157852149054190382400604547240389617284775592991665791255238389255180143097845216166434001471312769706456995683556886528203235060980164685688908482314377565302356051155330198244527289460769892414558803704107884439817766506938585346731722926170484220425591970441001602152738387074673816691257924869183270663043681625766910859996223766381199298822087330921993411088451292144976499799143513250766294565804230073997088672989681229967465883173808877319180871792196198924506568231621532752937093253172667818276237052063707901004549353794328277117186835230472986217962272736951722179494616410637319648139018525837309208764639607425603040633997676476180819428541728822042287088424366050478845957760406749970782041110663106217143216184248222863849929950682210055763218716441953318460818304007595594881915373618411766990097589860712060419708580823474085467287123943377002069594349530530202016349758501239321733656343735681784595136193260306366175870494197185863924721281136391651910336008056373461519839822964057277749047341834080937590822350317729993695923596417294195225228082046589849842961726642050092397520748641158038876580931779853010811072570030204002313365327708118618420221537423907353631734808263649689567337881720733196745324691127619291838497969064719023441858169023701234680702835953622282418482959366568088829330317076600271798184060166061886863364762403278754687427648879931609069276387997773289294608331581337851434326495026842286708322717084413010246825390844134366184549529427708588272264999143554512259401075965887976724928008178862874353081305166161698869098763641511519379782339373282119197967332381093272576331738988902662807858962422799830316216526804569211880863195856276947580225835443131590390601430224440351409413917550515483133424743113414485874292417351620405715135765273751195072041904371827231287193484531961931863723708817795306692409043992351273003764269679129323470947626070487983888458083694141819912461953971521785900216268330339621413332073760222079495460193470411129095911137287126564705327092685764603501624801438265156015862139073564570206513795835186633053146126239108511961428843204093719723182364216076235437852450154507799164116394459024985458412907120629962494883848541654908304231633881735999734124172279176713231030176495994505973525341919709744897751420252804277021719053073699921107045111467641735773663775184020178327886896334855388552683122695846433600707626918071541346031054137732490829490342242737219660371854729991983783777654206529514817882128038583930467341911701232943726600306898350033139483585306876343292658694407572640171156806726674782867483480888163114891263222350107864097121695729625896349969854933658774361458726223443289737637376385859885293033484640672987937448484711714767822567235100126089221094227514229310412664337241705029954209058184183856670843470200077780243364761570567139235569028014604112323988379494349002765680312303712638942437020601633319283439620124295288974830806539957139458468442271782231497060816659291412566811169709105954819019810758948431968161627049895845106434186228461533188766790028203005829097245710846623165435846602349498551453575297243092797140949981711810864585945106311786370666707446639813824783152839164098925077536621315930192334998339116487958512176827985993217185101933771251347826901315579903159399609717507927329259445877237747638888788002756094271580778645730628604463916915009259602652269050504874462530703093559360718917400699496057621457428754911636768666588138362174185864188539906766046382295947274617724721735000984823173937867193822519024362411963272200692989050767338853495584434040933906130250245865777015032382478078907200053302092012327182375583015594804837652720089712386450833334636585524550837443929366882074778576509222371826684107992363546455842730375098495811013271848532271831066369529408264909715567532400648343752276018092797616998282127694666089698023730589985459996048842148808926391621794760566517231673613316668797391279584152547837448929328653635594797567536881224345695082553505661272258224058014229511705491284363811260266726476014997404658766624533598452584425663313534422520101063621411853733200922859658588903216562279787898199306065599490865318235202566504627581274028887154411836427187861206717909979972556180834864471976798920868490908742975494617437376300425417802886520766973421912362507759198784235814387245087834406600396747179091422102333021987630011702651527596089343546449963799436375821851596283551200884207431001726056182656974224725768874366323306187348780157949119500095643190112539325155454630763302183243505110485686388089226174490730700209514316822600994168858939569064841671590454460824447830197862056132725169552788147385286135136643734844187167670229147081899776745187732011254460169925460171232725273387377117099497145953788889067575963012786171887784084334456160093463891676923009871185471469997701440749423384372930733176860647792718846305159023052546277920306970049524803784639636486701548897400250285214733904478448768610203906958118092972088626165989852554808740131925279388507972927546522038004666248949250632165395613457058810649833918013502764702308771363750931775754123310693362854951986788175626911546099098380806979105343970093692016632800315138566361688324158719221102828719796216890284991727853199448531966234059588692129199385017083571236931208755642625160356975015933111899574306136354564984642805615630550753222660722813978686100481835095151922836929193803361256070098431228035355287859296065317548173765104005956266301807169591407054321693020677227988607909650622067121187228011332713267279010037456898642268280788277664354187993774896199155815068635141738854540703231634452570515801032002558518759985728152775861332961873936909900804645313905477770238449266020660983647736613388019057940471759165079597620517984058128547891302914389669505531554152595372844617540783203372839220732091994830109785970411598167384103264560903744789635935329768480077709088063112116222066954463256131016767068437490722786714056950000542870144068476646336826343014616445098931114621001504602863844875368816095972535902017236298064155454178263427942600585081362813757093260467806467859001297125028489090850270603953042945349000311234960751639469210162444764114376793536181121719512231195090271938443845548339535013957917973450411360048083944575000277588971707104358330236445923706776216810235451347587423239943748225376071408641386533773302474496262200004343049702872889645338773623840992310267603202636718345718104987596506518749801050163570170300906808437238196721016040403151980974255334376263162506605413291417389284809881675572487945884871859618985023637831918102264068333653021456113760022438442514087100708330731803788178215971240500745858712058391052106785631953570641359182726292403238559412067511158755982935781188802011892397597631179261923578115606725285436732946764078414139603667244230498097116299542731636283107477088367254438149205136334582950752403307962269884346653741426434132546388854218266170202532083116917567065742675555521248385101424325579748271881652089528902076659489750458696283786626690281243767218775986676790367407234026209406274877050642038598796274713437774437542448469913753086406760062878375491906921053693593051597017027893599778749896709561370944635450917704772371690453423288613477533444588040971578163040177718093669569735879520742115253827026826638400645315612234097150117358419892305146248084721464022993418221584590543509260080397017790267900642492303891298016267268287639013604041350207742048158678319333270129499258426900462520596979017551301364722174359708224208749947812229581967391006396921093977691462731257463204378823776714094305223768517409947124786346714663765955312041759575577227111036855511519769646078325094760499847374193738507732842848344718282079700080155120167361470720210965888132267077368535328042716329907740598933703945328399934554906085221243565423766277726212322988686959432418865456500079281425521616177156559251068019450403093013283041459013449933996958750023209042432026969489740056604855073432508868116442719384513929692618721222321822643945950347279103007405040956494607457355413936812543411084998016343055063747858440903648386951258602729156012413120874976217438014398191102759016536240804285299494647171838782897493080165969273222814270961895026226638224285877953904744258577922492653994255064365368403888387541956981837556540911486763088167896555659961981605550963417388142674298905409970800966636988057049584029951315561931014092078262465588274053788863066639932384948108388029722275549574649403244019814169660145866527978529542939476553609573533954801515636202205918216199781872224971214831754612019141525930349212069184587413168411193303267637843292422735896979951924737661573546947352938521097408681216125935587522396961381626452972863805767237520368949107402518654367387045084827759576121340719471935464894120306668428320726148494403512032411123386028672290592764348995508367821246607671777627303173874700314581137671434273565456682874041615895210283040765722120396803849419736789380772879970050160391704188193291346157343952072979692668238931825886196072889670702212146987246560976445702965609348283081090139734223739252743290184023053414823273663921292524447104374141675590752374559494852247174749119493750140731665323881054736048010252974531684799548675347957736440334624344314359706026759695372020947955308610880094375296570746986519684524483325340299023513026438451316877891073054908384255863795165161010894104838064598821482660698388308329743281027350774605723224749990086326564916810610578203698246632831940839523187627227992817697301973253222867326310266584156332559746094070601447813443150432345337185774038995087094779817524255286798257936972302221705886465598119729898804750387260803594382631862451140893012864969096187232997265965783122545472056489685287068369399053949772999153795850433972943528803094442546892967698094219179082631029690202669855589300561562777385284964188090682902178491074464626968477391183250900476918323708826897095715707492269792285087989395363127234434477810800222696541157945607820445304019444747608860875844503249138563070453582770404087981005904909375052059274583878960911652139713624283548652392238280014417409163292152686387532234841527684683886878299597737310497342951702377661685528711483172712412529060859105850442287379409375618019521471943182385192020170429304994965387489647461902957046223500168190354058098939632623488786866954436581100383134062348790942677153626483089935710791070760431652961914442557425020655238477967805268750034752256075456333564321998982129350719664649976850051481716902579257907770407056715862006273467985833120513965692960204198690439101602765753070439262709272402398150388832683341754359266361014239354139544908709555752116005074122068329791454674253839871387684061466448808548482152650874022996195559946642104778470380409361503294181393274815891715100014300467680804634146096679239179300221152979653352272507809548093070589424775382738489534718674869533307189768922974340191219554940786623722113075747185669091567116807241931775507830373453850848788301982008572703333791424095386966047556032271388825159258340350182067317689993657816346578656944320011000442597749506963326419270446411449862514702803000499962872709669788956649783020387279536138429615373944758074464209745091561588270464869640423211469274768483802650126415061794427107646076405460746937226402127873053589746251450888025306628075587589942019483066353486999367313819998004467112957550772787357538443640931918143840064278416410686492937593824476717669105078556342157685398972994258301402887061862171724977640092713697845538874244237694731866112057296819872327186223282833379000497356870017700726892441836468286908708995031438956272455266799543925557989733405556060657140947673971128107734584791434371741272744802577515875688444615843879539001977027932671119221758208882281575616105503338188072760671570712361641316234211859649234775340617996277159338836282998347939228835281214177981445868456425725104293486711681125500302846373787095895598104437286916453094608168872594145276469535589960162806979914286551550125953577000658007174529173695226736565499531493380287722655308873828527768105380693104135028238386069752891300940527654547519110176083445913023184330699389508340212201842448063764157367068673216245558192323464607121103096349113117066418708529431317776111607527828458769475601265972155228655284801335613733981158674699484370644206089382005975208216544556624054940099788430205887559377774305668404804547619994900395923701936542465009064786958946933692893831222389171808881132921628734074709772112997021719851681086686148067908602504128948618937279197832587736763240833825994147259952222234615830096476229167357468863265462103482373088369248139803419257964766797588388809514818460376582648481614897570353583654113278326642246332885422078442526842039452097554105805695174531030119310432558012213410280545266182497694744243340507022362904942252665806822467149106230580091596891444066673322814048318924600424082762639572923087027409461338545150481156887816679901747000463268295881472125549396633388443066066348627756619456514268371826487437037164679033910078315409073229899891000949458938680524321973992131596974745478101174487934574766182390441365409819600611697122035895343048990915373224816967214634270135111165278559586138767306854710644845676803687251856810003097448618671971604305508483676926586099197073430945511552694249031808718502878860577307539855287222183095580616472535586014737550955835563450450403939881979575675424175971785872320874966800541864983876925416941668521092333395542412783855173544268378810662810387086507522110192338089761387527539595709709408616025742938471311844753521408743076819750810704313520195597488541155364021177820041184998816935337714553619898869797567430245405895395631152486646655801136335269054815450623306000538312798475262588044500000625076926153828623611164871759872320881015529322311628828516614774881175830725061640499931027400147874933692653148762804788984411469767561742549774090020059421631915288954178969727870278743664318541278330385284240775994022939770474076679298058040001431574301710201623554525011851089630832706393034979387503500457434006867246435310784968106353347528217936543445888936744455632737560536662529679694838113880169804829400463391850866108898848715353299841052337563019477694813575484185775555102341357969864221261469488488718281190611696020539468165909003443638429830837391292735307885552749751855794757023300192568386420454433174062818957232087813411617352841955055177163501568882078318321720931620713141693046334235060490744606592726508342442706673131828186109426205888753414548145622568992871754742487130394106730945997460130065560225140002379940951424353147331558121306045651681140503742847025363925793333749224982879250345438920047763747995039331239537449242808642216871130957459266590206954418766706885990792569710758314110174103278600080815598741520652176223250260688895034766397041467225394753323431465124991642750830205376089599628008078309038422444337373869342014721571104593241762566794216393511861863407982816165253497112349791829671360699971102701697429801032880687659856948165416755415247582051470955082449669353880320703125121185149489473079541575142382006807106130603562069077763339691811083204253221429518810345663175479764063255784132868457071817162454240618745605561488748521003569630405321823044259838866034025822093363855310488616018930437117309961835933554359145459559565795247578876937130240479083463367553669217394773383940820440481836064329508781702159093986731529507674504239639517418670148223942763809270868313796478438421130913503549477721301885384592661044388233189043283307641437799564140948134503485352006142352469296918229325790434377719504662377463032336862016759256697528406324151141868534477788239643476667965793868522827385706349597728070537545465788820478847294143856284274880059411431071510900636688909018112369184596563472944617592052356285728080118106746644619697576453141709086593788430062057803585730983911993873670382382554149237341497034700651404519604489993250863370304029372851885655081631653486968193963254143740968574846455103623419180383211816009670388690229738076435344966821833982059875684181114896495834881269801742691870185327541670866271604963329765739323849033626812197710338945763577503409274492698454803147080567287481540085571309501020648510334218181494299705171770993376601581244250198539784411735279192986254719136411779135866769972121159276471845359044088886805744245178099738556542940755410480999845360894135367052983933162207673475067245640030616312789043907236356594107805742463510893409732825520902142279890744306568739790983851079800784429835165588060034240162005325197796200361688418894177944007724589362386146014875132200752365035589679011796578985990719634936974554344432826988055563400327681612850666717195556417341153179357490330851299804247499098002705544985980535822533607867210133430305189474311129556459665238641168248329566280027296861210997463519921601974003989661884161176830321702997036077177092661637006896369889697591423777857730034865710216884309201510198007112150175894541324485403654153837064225691353398554004477393055825140561672211305211365249797083869640346813776236588251603343568896324741512717616659521372260658560334489496809747906725463187494672934213622270479582996814724547246282763481902225988616769848949385914647671570127909166721400291965560766403729827645511725743973514117048203892265932536591152944624847257533296984588870240810413080028249147528145977253089325654737766481605823094162742625671049752448421217208410501255338247966252146644505873131500119378727182630603680090476852701362866445490374533650952295869616373267802819756494281637467130241431575121779908370450498911889022629330710563484488835511534047377965923196529397789602262726752051336925766625884754285184965217603599872282833875827304001631462617785504047934940567459321030441765049588120530626654570206835606403023705844260737666201769172986818502212260538928681711378898300793189733152485427952677298263044821430311103462742359414998626357792441409170561965401148905630806226717103290373400326839138698965113886541283261510770333064064672922236460665327822177420063058330483492997996932418038526952428790270180442126711526383171695545325106286458293756504563172069016006267661253100205439284990260509697000655515724794324475429390386512895324610514090636467541592324890723025019080972475344405458261199426897232126307966571460330228409635662063357006894760993874977678009059604677714059490883176461474071503504493708823949727995045138224490640363593563511267855433329327168520965566468254182657726371600375428916803336842726427509680386225003472476617125310747612422279445996822051743353484635703619325449666659829844409910337677503548250261400018203047332826990685765652229017055748548828472757056557858276350422572844836657257636205364145061032938601783630772273385358296452519808038660828409561290155830760693842771723053508659739374525697306226603301193379893591905194463198612263264205881174343327333348624659393970421447101820678509295910551544214408514891806129336679071187609904752773103232913968623728079085483683380380239296176190713536869963648981888595103205790246284641253027222042767706917463958851209216358754264397505301644130842345109007655376676840637529358163052306573918906433282395574826816277774504259842276744549454195685101401589860267444142046678376227488516415408692945352254889997182242687285149619125216708567417796105082225585490260338859625709515413963546788835169985827557425225778327103120742449048651004814536848078672187113855356051122834507127714761416467615373704616666617644746395658957190899838251431919574427515165044942758129800191259460197384502198284956314772264907041087984455792038285117940981658773458829467935666062816596809214017729500512898024954106335261972648461133817109271038763786874219420273574447711369700713714542752012134260952686579839609255914461324146051075338415235253465421179346960577314864314110902024937707700827275634405890069691144101200234080039968439471594806020205407717281952074660244688993026138014119000672110578141936612862427862416702033345419890281363784375838012289035465835369337421029303419510521865795922211469506988675167326645149110078952893934467696772004554906649965660808894609925407723403191087086910744094653310953707797993955674961445255149491199483736502945181202990996858011446094129422982295927723418308060935100359728235948757534800249124733660979619807592679333048189074551735577097976514589480636875237067202683636286014658346305678769441610174566990247390778607202366506490609649428545040182372490330821021910637182527900489477529400227536326588248121826885703412691330154735303451165127516114656578086670217002922098479210556840663391149050305015926559904846473787154494730491963283259790179760736970901860878477242925983912210777945808980034741790938361113393241229887945423218979498727259375850528782968713449209350007752438147056804349312720845601075522452661183095387564164869668746424691687793997679660871170722106474445076334681053873353275013038180499392222346626427459833238605731205735610802509414744938961329842238313590474177840736092018273393484229374993991779448528350856242332006655382142055781502538346067823114382268875169737796491366516061815855808749618060172798252946260617337587845869842959919226591674081008956219906888512470384065706334933733755259029143212071327157216204742803434605176028431828441450051938859014890256051172566207827866807065144492386068995459541705657330595657886493594674976652980787480081656241482766823269001624678370572408872400272702828511584417052639390554864024119759463357376134616991029229824953714614870427472397197232726477852702929172385305840832477218111801360024774602498782920038270283464279816631489141637187687808093525005507017375717271585538141966884995426932448198313733140699022358591843130787069634773443125444714603129314322079699241149571674083461117620517215669318583513387399971998941666949898893025324042832069642787189234152557842494022971103942376199593522717895764899183422803397554180693940249035603159482891672423738265325045852209769241741880546950644513762975368196555925748143147695212912913033426745923635069922184333760348652660254490800121228232672567757817097364622179728350527360697699393167508230289911297129260211861458841134530254604442398384429967644613546670499034893746509481000589696178117025859936761014350673208505724649922621202084722292139817497482606502363981541375501458250763734816740536900980725701303566538690519852448281877254788342872421022656047652603542262686936039189170787695408616827380318503705957458693393539134896095109579609349534000068690852890215611097099970894963519861027798961830325117423102175030756596214092166471809857238105456062666879793322001067712350273833645130914306448246227127679426500900443864098623162391774504253344331178778411465303200196885943443179867783230335705342463066779922979342458002448676505918721337125982641372850786739240608350163566473725079593285844837741576790209516591933046267390613975685569039625151502704469594013515973758192739806632213555084544544114454467799396547764378356035238550281876290022532635266486207594753831301185732306283735744370871402458069075033127774070302298559775584393758085001995746216338571663377780230307841696992829666972991372459856318014542126992195563001581441392503812576068508679292093591091177352903273176342335866972123773358826095816337194834167791221776666849301248294286956309797288863044650834067188677278523593676548384691885039288267803439436750809804930726287211107665648932439157397517234468754011235445721629972219268695634599754320240437628297226549788862217368840550857014320902453752075597866155261870538516439695471634166647541333813445131486706742089798423955578406295842834394071115439555607414663725541972547725093577127577323430808842228346034759635405184697241292698677640731668353641155504835166557388690632736081077448309619136708110810770820993799778843885589693600076304669754086724221258624368958992678881695886254318204563868282246388687118829294607290650610308645531592607476548087823707358470700036798779664888068487651088229061366853767542463495186239598280779744584596172482458948462726251596858034382188891226637089129367438154176774946049461297761233986912694069772703849189278600857096957732885482998792021620673220531348473891695445741630019312449891025552937440715965580607235142075212103160373982669822377316829458182070253966020692567206716165225881602418161499580237961024833205599614398302874114542966203177537628523692663135938988037516740737838841257746434681590511751730063472449826031072238261920661683054601734230889352904938378676376608781858293115999109579242519203043922767989850294250367759437252013585885698238586159194493126351695433004404072377118407983459020736862573554949673729424592392236301735187672784068959475776831645338583580636797953664564268585030284458043439388913344358037228697642106035342518361443936509542162608739173165377182932351978829920740652630333618474095826828672916527738190597400664537878819278897918657850412389629858530443290306286745438895774514268437086342976107106591121445053959056089788122906870534187125625099794942051663641435869746672125383090626574526216421815790762061731184653607574268212576399102580060052862052635744921691763435877446467813565020039424053036713543509905615665307442054477584694800566196123315797269684348212212596987411431779957590564260530084600654832312026248452122960387366424576193933260739408309772812229536114349869216339857259241172049144733729735214698270840283415159960752619589472529911593016116817258199662808605190522380164657472428642708163556942152490170756119542861742523644028603412879855438972124053728914121495989207709795856445273368129821886200186752122769021408148052668009131170172172108026259795130063661781803539116425013685598775262052563037112937081915455965253997075687811701483043489399698263019099903585520177916900670634898937437163205469683469516951706937456075863638495497020098614786021859598081069796354924573476101953356789937723120634631302193990554888225389983982654420079332391482284746898150450894063884570448400441193139117986202264729685212529174785195904556248640016623714184815029099133434725595519172366252697841228523285403637048721535109450167943181970584513138692695133725200140937423556023621933540093822966119197754049230030121992928324600167468932975002509786996301547034048071115146380186425975923302308765383048767183593950777648864618370521665606418687222032903226772503581028150530322380772858421846737236578250417340948600927122160909219320687250987381801415490009003976371107931494634232765027215208033510274318761645765059077976087254746386947014867793228510927374026273602622764723381694512809190086082471609944279890112593341866659268552994149291888409292563597471566746574810237706308933313038720082358314145699457554206276022448576044760559942168651473522509926149399642824051842014147008563328313434763785233088387755937243603490372149089820841539144128964078619285403439238426569597663727272990083207777798457213664702855425611854029585276639823741924430305659632228476694084875569584445785629819974745005457575652463551642641990456412243715933164738704750284331494344478873636141341857091725350620959452847775793875934231956944327270540457623618814103062615659757269073224594558603895717565793827845999864069469005733254771306324825555003656024442122049247588772933843444279539665546652741169099404507402139362209205879843842862049568633462498411020430363704638993736286852090205366791799216057526628424660784227613133777206683175472671014851581696264182453773781035489654535584277385402857827343833155199534547225470070001634128115242513879333346993892269104370268910025074996621433274869977434815448251295082812538608726169955297153225998752696711170278899244487466866132194160165422791404922737515813515606410886508028497038850399939194675873841843859231349148008501717817127514237992471385079759605964949837510982139071843497764064472168413242151797882391156084239591034120076105488874701119320688056649666878141805056010440593517008968171961760268197162505056143040290515579176932165218541307914300765861372834861368517715398769922152190638952837161795301067978748464081981050557857216454963390794122285360830875916473762430481457141655554124754344439435207459394223219628246915756481877832197071880555418123257032678636750736361584134657207815898068432989987389371900136620207524951834729649289507498234762223372381687700536016855530857546538226890820470847311575546005327822361725151126493438594221079377872044395750798039027145057053142618845483232661124385389153127207697600562970520231433010979132458142599594737670500649959290880452442471200098280858696584771459052850294035074600417706867033024655782012399998220335940636534320273391387815173532942447446187851521261128015867059849829940913196188229666694428835247372694553199208075674127965954813458359060745691945883299789035539363894130040045417520630064375504300960416639123613750445342669981545424238224123810991571889729622409121162009303321323527866137778328790756084273519177770359979830794656190830907206972980769159615808944401852059820416321148681103115181551234348522274142928326158748745164815326899380176254775262192915301565411335625709461274603073007642959092717205504451889599992061150331012417286438268732567723997412717890425600845892428931744473011460235618610759107833741632897584512768471412562990951793452709539168899228560547150622029238114325899570764343387726414543486803815984009043034189048939940057352186375330333949696819669934475110816833473176593066114077675442470820535358152719582355222650345958963830162656657763923054313320168735355696798272641821159116976418799084457229268003495229500893536486937343785675077393650652591376721111766040018158602590599390058482069913351242487920999781920075014495461966395534165567078341048875478210557362084135118656417765122085312403289382812194910015307968551020922574340388977116154348719498058847752426306679849269263915113634761898696519745082227881751270845542688500797519596486562227164085902044438843726662925894220354037438269544867924289587422025666382917919879612847492123911512590235724738169471125926041848352986593406475528588447448949814762284052686128406855653828360261617777708166009998583404190922416275810709201351756554429630157191095644626062615322281258578104982648228566961018755724553809261352627083944427738183327030713278605319887187058088361168603334712785967974669757032702966324446141896715803058349995617437959505529722645697040530980552329167513026870008702293117481634483410618936579836775164975483311676689746745982243023156911258514298857920406364830024894794823602342034449968576057736796254000902660939288733680167403998235151759986730007666539235900880434253701199752253437437715820925506490984831697536892331310032704476684505798681753796887164684218672985976413205726045202131035096800017650779875233796302484498708303110833604351377296253060912662299605993004599509198276541158453204382271201167690582982186836019071127860810174391660667667131849845668908837160734447740554271071585047396194080534440827347080599695354495210902799346679997453195877307778032904676719438834813002691747942506107509365325693671808353401176994411070137897865678576179800630341840640216398228198774221727936671477727627432635552363576909362371660241574316665839432099624379924219039296533846233520013546934098384726122939439149082777980695200988631391497146964383546546915183568743612265884046298515825992649669206055253983118932335317843288481083691104110636037390675768751954246711052896479162133377607761592255765901238136857956999630509684362708417448466583038683029882572951910720988445194638748940759175239759917040801517616026971909946895361018572780489883752614654009120932548976901937676341840626998944478340550628955028393312494593220208177577330756530341276837363673699530192826087941539230836829070439314965548487195472120261388744767366716688516866375332355362858983921830009313320505721064972352423787896192451817610966669717095717465229616561561966057841373363239202679344569234753783485381403647512395961419870284085544301574312498233597699697613324378955041480616078638146736997356669377993236748135046108246920486406444620050742633315851350887263367302900647605161115699570736772120580154607489834900223157365582408762509772188315190575496386161512493316224703538696065358297483794922818056867708392157986051742304424851334365093001071377304051562969981062559569116782750168644133876258058871061484687587254057197484298575682502212556844754273127013717889966290678239947714834259378628908492034242723193097566357184537860861049339837566651981690846927224343417134506284385009586758998499289764326660961583085155327142963130106134409733470451720506086266049963415069531421208822337776385963941639938532807931209122323862173428150490595416501418030191986520459136036911354312377227414247418712199290973385258378851556313211786473832867190674343745835756108217027631009262898451733217559926435116818061364609752481522375926693799067068524706974252024803706432382893106082519542980774457196349476092626399061583179709536023729503287304561643992861067342595466655685030851982191521541291081464255722383931112193947881285882713654336013523990652483571914728420969559597212311368189321571934743841419634626094293634625440936840648084622027449993213260361076213945215234977458913639178114942572562114117964329215469944438037816273065522995166694492434922356925972297693946410558644557484613426864450857354481879682760141413998063636546550339257506741913458599610650733751803933099990808892745543483361910477156808512966413223989867974032496205193130037405802910693706709654660513782306684745952786248417276260744301140162956940760165728046033713230397079752179168096812002592877060941831412421377783629469495619365673171982633910267265064717524116531150044413244768580344907998658172642645873373513609548923979506156115764408747065022238494758428739189355508652686938357088972037599330654131895964896345577134741697424591403438654956067278822737821688768878674902358676631420533044164602120781208489795456087440133381515459782800489926660643719338620838176407199939295805360064813182944285939484144084772262917987039334114915486188836647765828511013380074321064806686416879061774778811486271234759394301012745192285485368407063372913196204775561146826814031646616820683010216204255099452562127746170287580329316292966257659322953044849508821389561710692306399123797700033416978260465414679763749638529332250938983385299322431374634963169161685313207393537897702013723544556947996394461988355593065796524321547741089417621986531279246087927370298525095313438575465968729486787367880576509080511831940957987529416036327633836084892671292134016111825623070650358546884528320283299497248556097669452156828138518031396372468413504118941369362159996119785081273189819362854218258500338310810489895361101279359419495239388312353398670484246554343593660766717730279471081535118831721818712581956577787803716386285046330944594251710649667234946725958026375831552562634951232597194960988796130266437195271017915938398971677781956048321616678387767764367038775261400626203234575176354603234109998301863952308959093846637962084347386378199710528489121892171248386588240803210688729407287730971975536286475436325167064591743714116768963072182078667268216316083846558017968315041585929597809199822700231480088179564285545543049267014617903457514755935866992271463791728759237916907029587653537816465989623853153738586476418525615746439696368314186328984845677639162157562215033603602857742697354664771246107175421373031454338177103187712927480895325905593785720334253332051460337790308749171472420440872680947729557807954457196630459645162308758015530435766716951982019315525545963145542293475323494862511986380634535417360736651688264140389784195670466945016564726152008871071970969984730234883220246574598016124154339539823620293380800221073969769825925399793569206854623362255280885060967687888126288437033110273976754090162160239143330325252577081814012779981057112264244126552076432694796305349752987749605739711487931186067004521112193082370101519577026146704170934749090833050120117789487385374263338331168859640503329518254109479966958522083621313890923837640222109964013623929936187421425034028246172731738034005333584610379069706443294605331057607896384505422055404415816007608675340722652244569588225006672711577031733583847874866945932770512674233284578700079276138486152493126769967336620839727254680980769109980666916206682971922514907652238071344295697556777638818884591916635269679451239578285632316857998833805310980608003133714574391624220832735822572438008375348553568832505610245942548084483229481115507142092224958461422027335969577633684723351888450285516132562379945656087651118921860845741679149048418802664471049805921789220839847675945781466603124404678934938419650521392801095676122132872901655363714618201280199123543344336255792901322013258140570585288383066961883457804581987997861174430891446602066414907620019611818922874844360127622297526700389621866394500460368757926007449248320422797393690566670597597988044999753924670642855814511661147899921843914666640306053125122071218975134115988403461115741534518503484249104216850218829906629737808438724243349938864482609883986054691286399102239012013657853644138008899850029498099309395528584621145213525164445950106141078902622204492286261791876088016723978847658444584714251289976819643684865606203267780533776544304065997426960131639369856336378167155691563707699093128243921947836025502729870171278295060285405284613742335119023290821069521150811354848093132483346038373685199038637370954855121249634065430694400469270770302244750695386215065621868453521123630927764073875002996717129586472529672983586577409690679477208101549950621038575288686695745302547958804041930434161936977989213986490507204302985912164833672600203675010218168813814214105657073733932595371666622804579500814283297814476765357368492153133416667956544050235815792043652670916076396751774940031336549971006193860344302502334875665519623579586216883602631387728768970061093722516342634185251918161779121871612256272644600167130111020594299158542034411209404652669674504871182805794471869470339686146415195170879458851639488321439953219972611398788968843102560939291088617512478797488148502659445075885874390816894331983301177717462384307057048274949342574998076276190114598805495625617024563350220009168418338547798922769604137749146673925956539680390578563106851599248048645734807067129842035692429891573475648195950596444063151046969378639251232651446275080245872105586673557786142998992571918269516151765643159473861880081491581526969498625350074263489767375987468943288787265852451817523359143349358841521642397244716603421484763184344623749323606166447921589149071484687744922997804224911075646041268299719533470407578949778462955632279079756880991536329193011645065146845059607157277835839006322155817991110288912645040592777385457441567731751783457863952121625129938881687080268006069947222143492199434944930639242962827094406334078625952650527846835590574354793357855195132051984125754522516532830871314066929080733098165749517081215408246945737403328609399656039599066000995216002655145353000930612677907517588774638074033772966940947209803026604927453352590710592196762113983004608767728184005741746749449713290120467142765766026981391001057439341751319342420007352302469321573969530212622841312873546677160376545324216564602567621219240743737762629312261046250351393899312290981584638680596733022723816294957747262119904698042867817346621590745889046458134311188770890585787900595140410202760509677578342533802883422957514751180785366565510917318105324554077533390836639439973899421976640482304797217996207393042786871707057576762532545083486380626114907708250084826763897332183331526711373002456467962682253849636114499075897048728032766105776521558978103193274684519614931430588584412046117328044844253751067747133025844008678497379850836171579893229426541002673838160345580576585293558390510125952239961147896364900155511217896784956660907318954699099853201362718995532592654985032505747777636193193638887449942761034459827093612288962394041280824759541583500055333422270241022754057587910507574669492594250381289056178016311723220243443849690489963539755703867457445539068664112725054272521915832811436026255785354469056624656448132795067343124014359260847956996019828259747655877034231908548558455080508733142740761127649854849545186247339049868774593664205365337859995933329869232506585520985251814594493418292660789517707851381478405733089782771335955830197861642569862763521173828407181164127944280148217651953367355885670054938249790894684984354947801660631399381112718489919733123546440571867783025662413505948317111369383552361155047413375019776851209598728927525990777400384849130440217011826288161130309020007323321721878541316213984008657625751179753777746982323111879696195289718825886084571096645465237723714857487500318958715831322147975117783570015891371639484713705089212197349640347025925785508673078295747959449286577417925140237162930892407582789138124544196855511030721580010630259729411029205747880712158701069357128444103645912128263983620647247357780381437346866126712899619984652300725547165868674428688260695961530957126914437729664220020150247799441922474005333322931764302326565556419792170062319475388140146975760645316568031694284841391723038228473236873309639886677308293763948550014596721751718631742633902104706271329409135323997635796184343080824069190940990411514279596275716915313301997335523460464319672810769426031203359582045944433538963518437295831454602940786733499306382642105875990877717497361404103264574223777684128943938348662949168992387913285107081947384814031731786432243853723645757416140092661708310514675384902231611675059651458153028716930898457445153326349751409357637480959796007760626391309504556215398524774881807709279352181237298484013712924594937601827013026883839179356885494882449366777597750433197962675627654123433812799113956530748893293919931282959351023155058278162579458468348151186984321646479178412790350203007185278304409803821294094831072332717673343349307509912049559071018992129545831601196957720211555873223671975041987457474536335336324928363941333114265277553991514696128564884148985451132703539020143915806018909003361706936661570595566606459857438048734286235297656817248422968929027137263247530317804624074480562358336002772977677119145294944898161675250203953488196416483041064405402869358430943316930405918331577368201598554206588273668761017405108010507355196865775117995745378372226857344145883358896577323831648050048710050377713966461294156308457052109863187552052855861514368679825183355494146199784053251046168713126905924120223599074864589976372523696327227494314665097240127232304230046895962970375437092949107824879738117896202604525256102161295470986142434167895473558814223385939104823086325072009916210151499381347175967998207898781643914579049261446209729787880782962250805662256698114978746215593519875098313722800233188592443402928004412622773220605683970418377798118436920075311417305168945201173283282690778701628238289014590365073860268355368878902396700157475297094636810088541742840151686454550829834082709117225989928208805606078844599863708161552615629621150990285210333960132569160096284277093601901964706510354246141667480108588833814534762482365821200199394416506108342638207420684034675147918255090753782705378131408922977142542816961482162883553540874182407162590235451470879937355177238441484678653227343000695024524067604877139788495413378184079537114251010263082517281707169718239214191655304319906341427630682061249245170493208006005688939116052042022143372723517399413300075089405769787634959672859327785782096576494756795741123463598958494189312157301375254754980746561237855573984803746676080471795881855302017169724732359745394874702658285949782813633020277728090555233908225162770495523480471664029134498196879680760600459429259241450337424363394745769065988748630171210494436954094434870106074351120503964324248112467930909310800670635835118773041032790090584419478188140331750453416165529097048225895708036335463697334228376362554051076250694568689796563812868649252950346259239584720117105302252385081361930584592401510661135262716191985890601438480651529454951826033701500126248273391798509199238471314174458893325975577056714801409492104708045741178235979491186996856647683292411191776203579240754106070186015303054422344346793555809069661792333928569867793163246404623769270634839863064118111584923144012058958547304561736647961625843194597296486563729202426603330621960482704429085201831092604408376401759778556426881521329838797842531046745625549711432235968727417423762231515050948253575041801414352691126003607317253724528313212026909408685631090559649120867126192492833962900301695702006021328952579658975047252561691553140335956081257192502806908924608663922643976935054576616117322730454988948008576157148429711654849429728510502879701695138859080702477338802247012207121124373653122492254619450160084838424983722343234171074384420147910387755913583370724049163619251304350133982145722366287749292254207419197687226619652856812329731625130606770974399562842330243586596306491258076747749023641177064707910939113783169981483091719311972958787014908215866375117572392881483338743801845884318466649455754701236682296272391298742260773238594408617503315173976405776880785927565991591308822446261739061716151185905172531697033759861634965777431584587482566293275773290576211880987463079888870896590773405673575301288770401199546828053947719926761573603306473576898956150028155785222006885204830108335807807110357834118988330386049191047191380087669580624526442162036783043702061383436128207067790233521233626703038898834689892204253251179212583011004331718076830398935552916829313481851148728466335768139070612973837085794315165104403242667559537788716673713916946826669021723605109898164328053669751704384948342972551972277782520792459233739280395963049533876734984424969922692807710835158715702664193190482027162081978377864191905436892615928722893415393426405974477034424168867317482570279909883125219018821314219018754506019422055548563700662689255758398243139050169093948808453801128997003583483450261069889609296979822236334727442589490221658182923781208030866470655323296427870931216344397926057909045322167728120141953763468634325427679193321281455845266689501218425862011682465449659481317674949332415575859831427339619422712846316986930812125071263467318534431536699332545362005543020558083761947822577294818386499499916558956631502626452901068445816290481052924643691772778710151501319268173374570304483784664096597719638399565743233577601265234542531068165277033436637390109106873683028964347225861109477767983903644902386533039257222258815698318738939328220413478936395334586023479686570951133271485675601845693098361668762575316205468967043215779240466396858292025669555337049730723467738319871822082338868578576469218203825092854002141215162383724674701723155597950528174569093371669334043900645711469106393217973100724812778505442765873389816660605811798449075969652852006878104205162703406327788825340915058019779237799817536898528308921677628007554139917507747402317031694085708996924374150786129949738397805747941227526478316261936235781959576429071438388634533673730934834943559202209231493946740987969640003102093618673255428449733108189959915258204107790968285138590385716603357927014559868802615395475500734428035106113265012565734445943568436273048266061440011437689173537485731626924147643288074425421447058596018264086712977505311610922612781362641403893783144957779833338134302557378338141508806771164463036179498590348525925736925836956124617182720312762789084984018665749509518399770877724248532152214487746042319070155359956549827951983998262657497698313888257052377185240926411019324822525081278381991620682067064495007946499751655131492617027325883969840756826685422519281770524061549826596815868649788414226563849034291419234258327674567492648045076874400814574111817594192733907237181821068915973987352045704265003902547893519963066080788170842166118188217721352979890204031699101805860083501520641586863946042587117526374435178891339886520750262560428808197316427247352398187403338529517572719684259302234547830819439808754987011258669614562282199722255157211407769566897726340687598401285905396406869701657059852949948416642473186559990595191171576778185208835578176449765089333416857940729624301640612258195683452836704139666669355884766953287749941887425801314930399199567507944471800043426302346084448189335256578974697160229163984779534853919930802651832845003300987405105543062694040410222541522919099247764988660853213729130458206839892483797426329775100610530428230960608395588741866176706325475228154983903731391546253549710539641950516677231414179372000766261207444258779490900226103219565209967750970993036823478606641760962436029304486583650279252081073243034952788171580042879826078360040578079829364968022139372285249688160046424416846267286311008190115192338046893139314595966359716695036827278109213542655940650988640259777930662061169689400811390784078161992164265209844962591984938620792855185398441594192252676364252340416091167665453875154000836930119800990229254233902836435321577237730958635710781293126667598813836707686748968493277307150243153871197723804918356543796086220326804140627388338611159889900400358466261167322333857563426160180968539761453521686850881854277421933230468941913065003792273959688114116066455681319811277174498427278604906408137094905440893870048053485698492386804664789487934955118342554929601490535632489426347717065381645505965168744045052196052706825023681804296017963114778060626266618593993745390456196585654853851878844583608495606006539601625760976520649893969646365073203587755564091199242304609811894808158882581553405990235494521953916641957006358683472761461419143107187977096031498923953349574786370021012150617821910139581257161659879128064661291568128966330321441626981349361504984951734790103518019340594163160657180060851750413733878931173973326524228976857106949484184164226843863228133917871349588989746439915441173529387312321040798563131384916965131746702730726042911070704807986849237917125760378160901276612981837619180641013073632882577574664141114796753344160025225453963295897569970760731447073104080583139549210659405625273766542121508073573916197656465840512870106092135706173626223670535848184472187216498184895744644631027500858485141953257988927251717894790811068420093320504291766881705953551346116139294591526262787743764218595300151960335916256615546563151616234144680457115918853220093954521357619039266716862236643268925886851118449666595113739122634011947933259886694037415464531253267191222859919917630616329604087115468646088056385872600174893466385591603075890490722766430341506290721986652138118703606841957333654328476519065100609565974715066864092751326515019292645610870676664717690067918811316199240914803200246018219749090922571090130188755837205691222315570770213983570681828785889120438736566856761576605188393229267417893395723841554074477066732488899012768064537996145669823182888916788395876235042484356252911256564237544156865458590808984906531720884743933789394428370722186321187923769681908118560557912953256143920292893379953132044083652535874046201968225313448391001151643901487025449131213917893830847402613129794871683911876097875143318149592600941176293168829018783189705349555371718418377211157290826594012885325791596114054446463127839915488687885162401356370845926519409318071677450043773476252712989389376380833279165652336083196035135331228876895507551195331646759216209758426291237454413250184365439763112294338393008343223720602366601473871927922200845252735730641479794427713998971907053191122374655166826835479869584775240694777903503877764009523257195861318292188393097040913502652276293664240186230199841889862168105756329106710633079828484007289896753982792460883165386931518863465257298922216495390706576303184126366788809289526741402546075787013289350773340930496496598867738220173550664239011621148521000133001594584786649059885625987495480156985912511916350447243859974925339235173139179941266526267794966947645386568288312574818778429122091127417536251613942488179981391789923757907222671470642960418296418635274000272451183201795355273822602772549017237327455072756425504515238578471503478280145523945604644535522746824227912807039565577581144434157791894367921155921517111643540306566970764418197232336921510789931558919192535442564094133783912772356721093983822953792366231580698916258005058421512042149831004708098997747343178677873897574278053966078185008895738859868201370338972596709078056805377736877665663681282000113438632730855837428494215246587268470678939749633384026765115509625647414311257566065089426179122126611751620591325267288297876404609988603394206734184291401272006707592694230060879357937223306197297746180263233056247747096403384081058200356919659709459827896071259353955364494620383586608634262211762878753091697322707305412243696184125190822813526963165914299780822243884226500527812015558459597042814628341100655966339497538568391197617167448217782811524223488456336689507329547693258965143874986069846199674465306047548409368084864365902886252749309393156354044905254866275743971194570111508765634056425498514121382475377734852294984015627977199827945624053463154662386386265777558927323975600295822423612002533197183294167208777565373439378347522954762669305805577279557029180718281481267263660045726259752782902760752374046105595457503195247850372430407346790974355627722915354088465664077343351969582833857191113939692007955682372623929406659839987634736944278495115140173420130873693932847128687790186127308592828450904015696264487163624099501658736934136922354406167264884546693360489213623115609517262776583590495774109976688412801241268705400456240258313069803178799733931134087464303625024737309172920308489823948663300724438343541910867032072982960598370999915005903967348799074893209776197580582814899284962117723107025453825741114194570072880794561014496181303048092593551885233208033500287280758908574317423289309722188671245997731175900852253359291959115155029129055210255302618490049118081327284996241088424223185210495233622930764108375916726715909010995573230250926168079215820138267347419023929503989279844253016592171451401118323261843518782474249254363073073012716995824218226561179323118603450009474781599081603117645931089577034098323615338025305207699862681612043152309692760128271802343438239868585708390330486438228487602141414891460820968973316425005201247205748825214305686822636232146787429089691575126281803764954499958654724960022268333637963833509911549172260372931012582108729918400096391617608210919882605784761219696663946721774211583145081853333334066016466525445471809728534949318350644716305376769630536841060037414461338917083626119305126412035054069423735766886971560326759673978510539446680576772495999809208723186763322238438075292801486784607384789078728525907677593651337996484142073533309597719990824362436526712295573307216284795111442921922903490921359135997037750896213921520529326311646005014806627509853388483768271730588784154874912051151014014847888260022051456258427650182627692360690065859639542465089908782395161523473676674445206589106719382453984277913587018666502558308185252536077225318688460028570892522260252330337254012423697139840551377803577210041054930605130089882309690668054452058264650635879081028594436938612087620342637690884564233443773721554982868734144459083688886500122888637569527571624087783474459159749270556727188439997919765236967023052430446738166770788882285157733881292958586553478671955784536750307866272685542274644674347525746962369118414690499454913694406936152528502392882416934317092967116968197238219798125792713415728078494865009977750804839502797330556067383145507445657461864579856922319222612649229564681875036360437895184741943092533139265545975933752376401961002074169696983093482113862420870893000512717820171168190875309040199073127194728897707322160920733936307296278669491322536718721560723186108195405587447502590965529165941384371691502382680469782215612941959379633498705831732717848472452647868097264421307959415523628288066446097650636783566904012615499703227896616957048772322063494369316877041961190290890262004228958454397199218009066455012348924119971287416874243601228350821226104858398252296112225002117915631551784791314277705408909066188052560494396149555965161996878844292748625966946931766628290443691938476514571645958193332410609682594041962978507705841701558098665420272388087172201703740691113926983250892449061479910158338374148887060109732321417334041410764230769154618734855983714631385034447415234593990769960615207995288555797622675853454661244060187383315523880467688642860746096331646715560599112903327093531303075655804718050167666268812225571810046388516837434067923492921313035723678142032547745316757796264257472637769088142139447857404722119158163528605063704890573541665918867883841580768177514130333543585919297537878107967340887017013538973961346679592992878293725857074315588469572505355623571738696431373353928065083224172859066139028403173164066731828502071382304256834711054939919975694551224535788921317223805479193405220757559946137567235130489672923180465158588662869345126970746271835814625070457032176733313604194517111018852647300933852873684671376985539420903303681250448586427556798757750234788822034192513160921074938635359664801357719040864455423803648522751183449001559238216115151209388926432102715904046435550984940157268926894975376144947936757136547615313667645514178525144136592704214151146055382301172528252613136057359207570772430840887424577913356721636966711132491005688722615098181960072496631508390584833735770280471238395397161107481326401924375967696159693471718549953565245891115949109218124383326514471998181711712987314279359731620737466176742637395901966398920876948681652508309572173024243885961864403438594327880618582230612737438819396314976015894454479406343427407017500279588344872087784347671307834614827138271687838011713984186883514730952550996359939545798926123815421002517802987192215012322836181482404522441297443955250074141679647861883824138907684430285390483501107830798700918791612098434066597880545658638203962175348703175970851622661861926698097901690367626327233189818979584904646727928967695042625768625574788561075117906691809385420000922277214216113842102803013554851575805358551900130041846922144807063056802201583516629854253192143360119719662988965974964693889129987289531621821032756192835335898324883488225173973348386425674496090893816302744369107390732981266217129069301469086198073575489264280077796495386212189902825348206321804923849227380055278579002800704348640553655233339383662826933546618117724684166359184962804195630042762049138488724061442030760862944820544687392277231605877307482611750591155185047411353372147191046426690257459098635545451419314907540372945238382588675822427752577902670391971765368847110323094882935250288046874660641994889833400811548781902535490066663972575055306753865597530888881732206609360754773720608151686680970575564448359923995676531589561530191407852811672854974376259312492176275158467420778256628587945404087817514762202905299188701773995265961861961153750427602038825864407903608042915551633855453634863744857071391852691644730984518740033067347864875031862667798120829713141867884352676333263334886663242451639120547484681803424492458877045075645271291387698030678597669986610971863970575031839545760431543340921137194722687397527912519200246691794929612664382094183724524665999143544542562489676931293289171297648691370809757927003762719463778174761944854218681027791111324978869326839930656995702498568462997896132154547252792912173824469547371202429804551489756156366940112986878185284242623999247000707972696488755071614869384982333136617928726572818737279631255738066468183202250261048648472326023707222530787388261134409516179419737792959133379621263891867567420868013695958590145618954486582960555686613582151194113649504693202085793128343558292614055006388301391290947591450787895138656678473640191923345190491437620858127134828675728459124180592016810874653404770743153033485833133948424725545771650036580845239890641713199105462608012192002372191829645584614176369336461038199550036575823850955948749040916271694821530392608515280797348706006462248710869372672663002558369616731456101568137037890151508343889092866897706662322675716871664042558326485553833064576956915985239732876405189748077788486798159980720895819603445782154658219366073251790750514661516940675968409583356142134004209711213502895986593206582289763345306566834023357698802412611474530297205089228215141770803517587919781527527384012844133382884185473896392899948048605219422521155040833703823804708379095926481592860363324436455207651617734725169364519634135909567284068967610899540294287639062142477675584692043804642129364490894724084141442686598082456568564960705300229893935778990448065424566451389413195338797004111077332070257512061616648026286892671733725532080794911172093853030665886532566503525925671270571833219405988781451349699962032876349305411815145174863217358260453933737811884265406258845195147379674772983907427190228022251767661334885331304620073822579958016819825990826170820814296829345334731293407761328411698057566200338107674144883751687420165593449568529315322004773248730434518245682577250828147442504011237310407514071424400733389922540586597307160489457222082171039228312089114686650918937530472937195589429897990499042189855014220722950120165357952854299657933398808201392616058863837727103646239488644048998710440904450037819583379980896929197997788660917965544013882342154297658918316843857442255565454625272678007610124805852090409033672356561779453507821949463022478601123002473621526359102008998744953039920928422062475345242116966458553159873608068832348963287777014379876191634755234065819640504578263151991617608710514691097650684298768909648247886638468221662235109177807463781751598308017128558835686859968801450198912246227050408736943943595044968582433142483990442617493561057494392586252516667961094882170278770631523341839410804434117147736870241418606989733892228907564083504162161456456460964610072809565799443992839352406918663112310437554469613662510062720635810536681450171268567437317285039317132351961625560768248423629154913010818311758767782156335134632687540000845597499771579313266387369932353272577116343334788373061027296898009534008450911111633758665998736952464011984379250450082728283122073158850599965730631219218484879664575781551677513311844422439457268758598001547018825514142367831761129522886537989151539403023998088541854078567722062537668975007123542772179816763242525031991670015615040241506862922040781992873830642287180474501900391298652067147745654066304746448771267590815182226312494316331027635870585141747804250572315767728705612691708484191942642470261423053554168503513355882802030906647968028459582717907742940223542185071287392162715883413954772672749951667854337672932572684673227887636344878812815457702939674799773276392506502927121113027798106635179453982352506444224409603963768297502276627117156880453159636341957360035380082580646028677630528741837901363701167450000382962598916301406426253685004498465069092317394665836386335447632163077896832337867575955307589548638737092289578243863683075378882011833953049413340364728981206573341541659534428127429373050856384846242704646605176975221498858777975996460514055789721688987559580571684560246905226471037735226335795467993042967753172777227051521409550934830360809034138537272308587954831260647384661123225205537538776918242102048175311672216214354169273822597975961111553108690306261584320192518657379294898172214583246682639053989997621761755251511267217367725762447027798288520601740633468525922559169289959498215429034050678339436533313227963523896684669093841281537839969201623056766019786497825891169377028575750652428584099377154538659257613611141694397088530100612026825717851886684384306111122373938766998062666269075288737498600751176586692795927668236255907663534428079965946836060309464636709654705455219094945575886765227282429393726238549842884794491951236229886312963337940555662528364836950222643193348865650442396652681252217979941937721278014120977209377396101718179389819906585366112235282115758977488849836543537543099277830417495091514067307710180740132859273665980847409997463314545603445753487118092220440109093871908604366848269457425334048792365621175071334349677425347718655131310465394327783012076491903631113332974531644301784134532370844802140914217848176706942188685811265033868731479033181076244001305252879428966063512386924212861139848396112655177763477660374087115824207591466090593637168980535980922548948929534145349619578514497236568667138120725592253580149509329156246227141301477688087085042274532766003896535411538504188908340547249203873945494993750027637915270730534792612282534003102310083303745465012117186554066766306871126183548621418144667615025716847414934571582143905658594941263576482558890543495076361945934908272420164248617776589493313323533948832365428546316411139634845616336402087826621729210176698115120243265083432694834343420576469901539975696765479810497516945834215065059196871577451211596106800466329889952822410235634120488379357376606742729285846923233357869158771609789156864456464951501105428963773615950763847004077623005471961364655509369279947265887336389938765513208637539299445260505393642347730598672371238426894434266088741318533436394548395570423341202921448065411908302860389435941356259668390242361708325561543144433545551465833337866823568390818513384947668870269194404740788658243761312180768563617302166191210438705414758889176555804465694642705672582873460742641212489959763038694090768189963149101157558899414911703845204675465190489379195560276725835706117041362827952632907679859302089665060589633479519564055061279639925456881026368885270596572188916472526599776306380852393996188230109748130711291994759522234960564234357179908947960185527662666505420963632170692430503431788248617222458817298929770526161038312224834815047155524924856132806395567792356155305692565554933386646936310767920886110867995452474403036931745339025155456284208821694060066460684310617463517520782422571314910128771855509092046466794252049153119442906387638140951307639417473570114519460398664459205098082063342223352916349539844825829478083878266961096020377858103480034712343632124308868218187792141268257389555935298916970553427251750425839190010652689369861860413573445684021404477219237392932251915215127325972283624587710865857810724120734193976991154276719392305657565559934695209865454032359835980944390010425031268513233754435337210549025072430811088140515897089280175823738228971375338072405458497588543293497187576648866927675693236581216830623425542833423913636266973562666887857437539926821954883681504722045681950291652540905506488866606045164372889578094157629444769102858518056006873977662741140774690423652261970288769110038143918182653295648982706243933134835223354476946386355765722731487867551885987522993748070103639660050564205370074255286494625925498378271835803129892150828265148551506684759384387716065934187286938585297333609606835452781963210544162796709817489532065799972661171653087054732881178784764594084921308956331398897306321826550368708057717096650707081901051843079081142374133430507413664392412037162899422646245072458743165138380116521063039680107782519245363069181570347448850733646415504047876385283586439366901551012361334558957645514315126781550082578396635262918000739893110324957437650003464489353113258929085574424847351361915038456849864135374608850605873535922610690162443653074139801551373810721732036423200477891424224338961018061883062777713051795271300581169967924853399312551470366428367327941006388500014045916424739876114243764052880197513005562564424230852790966282164595560682188554962324294842543692116745359441531288241619447422291443274108499874084501341877017535854096886673891283265232096339931935923079947273113122434674790634093947752067544936234560296610707639315262092521549739500686214177509989118204633895634147079236734343690839008264133438597367053164122959131025083552137941046156803159984839781333066144994483669533580201465035165387403780616612756232495653521256136513052598093971496448678674720669593434668093327653066615527563656720900778918408364848184733997224575441230689240257923622469170299588180344535766718596538922440016622873034423601195349868344691270492533935977118993313348666255424002579132636151142975034313665729402089655023461451544091922757111189970270075924890364190727076799205372240955451607754791047020196324525738342450946260551532183576975658578689592071122409689320408032071688563493844385213058363011973728731487878351971410647599952433921752046522527583761514029681794196994360329719547160697188754381576237522379738404343868246679006696450962770121292596115581467112419632360801287056196149816525982502685042744478039189651776720193846680040032934631114413597754740623097913480999928182560717659290276378225276793877246896999474594873711400702065305728042635629630511460754110089019768887712530181390022878111298490200285654384782925813648757120791136877250575745198375013906329341155361946946147308070208794739127346521018498666256937080544876028114497349964690882082037424148944023745071266453658318152123919196559907101421282089035243284745072399069442689641553049512830146246138618043634236112380352774967534629928389943284415362634615697231802115573783184550376254601100432877283018890467427924094843590156438652730633918574677599473771509064359188138229206760720084019085423038253235648879798290514105237881408225791221640060539121281428892491434085481500306708527087512962759445360286149313384198613696452093743908644411975886316394424927515187438026742824635073655270451644567349380291846766898305497249981757075788308435599151379621071885838886156920583826334629434749526400626815542942639773031377262289629688918683591976444648178759810059335102229182693553400436033421443512797157649194890910075123772264672472703549885325438926056805357424382390929476560202491727717248670988266965135123382992472877637279231010721553489542357810430287693572723847485187003064557026817079029830209918414419325445055163609775084842482411226027648919665149088930138952036227115312228161541431140398013829553878224851983872980072011903583520578938552000060800493955432162939427750747102915523919074715104947291346905234666294192887564344574210502877897085779220243022863935712397451100728555872339552373007322433264848652809790218663098147794993933674456519404545856912410554898356154820879710660573791519486439885020096265873858696220705326268589245378562154100210688729109730360916515592923818963074377539016023922098520550055210153288697224092425661102734540697166585681860536145207307369594977251140673684876711368455675333828686135527823527606367371549672568745031134466172731979347815171210103737205263474255064799821450209173395439139840184703306697870299827741953036404870457576987943801706846354559631484161984331038981494901190984628688676571672089799563566610765305239746915703475630316551983216598848035639934979628645022857979869103050616748845286378522298310599352764792380871188958313475649065925750346085162802921393644220868043913916625343299331463534443075862796361944171507790437655190390645352020539192596210411608406281746965338524570660835109004475722489897966948580345222798165694242683702716201518786744443877645740284549405454962862746565041426730766605281622719274443698938723660058514295215437974537296200409546747830096365590233719294550294527752564392104800461097423471423960004461439270946997992292380130663794985220131073324595721930914834202064288085216578138713710706307254193956909779132558018573932020297462023740822136282014526270209644218016341852076170320676059456239421359997933146168281106660684989600480674023650674832333775004795071604852504532979386955698826829904261553477892756489095345566556424383881455900447827615334982612109299938719840690774409490611534292940158197252039160894591413018265205766867543118319704824896434109942386199964760477899931235350885431589921899640605239563566345118402892362271506472574754991319183043228847949148553900629418420010562760611502737321351252204355295063913938039963757616897834084897163984244095457305529562338083459153385033819343904950170482777211083826586439281674177581601519920515151130380251558120072429834481684626697138638001155525452632202901169262550047469851512358742687745977280352432667964585501421587095192848092493804175303717388069660857764687837637567382401729877043982010883172146193386114942581672676101508930425042925691564371239102860560917414760663808178430768889939517243639207843886512765203533991101922450649381198992679195210858376286332747427275283511332623411953075681642335210217009327358293689180928716495254105173308249102962505567120953594729315660845547758075838842479133225643588426442626850763127915306464633560589798166455265468871299462975504111314384551723891150480105615315975912223825533698203945219504055279379416827831719378072278125734112716777436504846890757382894006673978185842408768759567979642986640529271472917558980392569884535934838388726483464485679754892293721165762164147151797785459041821039994756185745514894738343732102699470245664164805975916630468189701764647838706708211837785028184849418186090968796713125753844011405329419084344001697428025077101150598456941324329644799179234242247645914148958454230474749835999259336077816520542428349711118251404264089897700651368122679637797718424967990946110209949278991909128664564936944686332720150786386323073753486536333034055962155177694689776787878232123294360947768744764941382579364820714666007802669371456742459428239344840357858099978768304545458169934790035400054878575858813110912818380470605375010179818797368302211746445154138343021960634271889113273972302276461237216173158315112039079829666017154535823891863843817691147538795228027334099234203136688113718993940627192419603473712559063608291572966031152196918535944099765007397927720531109794672617851691526584141044758061321353964649382711434121771035320323351913654327271376440608531489275399212870544760602372253799756528167392010338747233588095400088767099510480985765614343635201958261291949800309459933648936529213333043332414081971461587288115733202705440066808956374768834800006103190053881252043728347658930984418512727146283719235327366858708725046538496288695678309478336977435311565966407676852343385549468334266303732074292901524500560364515533994652254484625324490090727834511833872735242119608997491183496435396414573255624073151271252300092106365370356944910666316131506300616046486489945578533482735304359439972236466810821676997843083809158751342276083656518848085567197324565761717355120199906869193760000881406957723713285427962936087768851573143037766112499470837210408172770872498862694943129984178788610389851130098506285070476377266339987397832433856326919200955408118459452760675643281627658994791760840989070289598593545354572845738189736030145717735521825303689941693770007110147073080766195553890303969305193893415816493616280408521792497484936326020357969400434939101330761833833333474485772064900334090768543810848887488936283577531096681344531732384378103457886431482386678108987074158579533722798288330704915341742853154103358038002028096976977500893363217980145412782866578649833404210141237390864154892308835790059872832526111638343764194748661963634477138807309296610913795373410379747124391570021189649738529196659545578881672605436100970646785418780364034748674555757373173161465824249824975010141565193546626413089068809379716836572847634831354338923074601429807344144907778022264649116416116920365429923353376145012378827187849189353278527438672896993732981239588895645000288319893099686150486294194173712363501712705420782450270238291965327290776950008472165743719393175754411718162532047598895584673921925764293173167195841547846570607546568346061169779577908485426908701600764229943982750672959659342852070172463801308793049389852401728412617107639152207334783871642098728621845838956146008487810897469758717496753420557374159552062326458341768370823286428028419560968286306160425993281384137215683676778021024765145602253191762688642265136051037854081849131202841225152823314901816725447545007330780049635788690669732331792115172426339637436069172091988449690894325976756982116550638738540368012721274244835258723731506588339410952941410113484170239177910611993325081849994457766637490886541677286813565006624861048875650623228830407999409944785252457891573832463406049861327913928302100328124867914244826750104659253292257793854881497128583809856549016632120704610831087839403871899213277042142069593311916526500385673539897902116002294286537759478735067296106833045026637418086695224551190888664554612016755734757267948174208285736218686619326299697846975829240774963122940254092615276345943242415250583087292904646799390773426945113967613246784114203487566149229543911824958777129221798640998113884645086312470602567377102147124102770473474488439550922479133794973223008507515944301112650568747685076301580184342598188004268611112734640270446744870386498942726519513000482264168553529329779605917152407177469935665966853139033727434463238302274016281912163958047221217472860756209097226518525395631649973949493308804093399199562194050324589786236157349149142227626500150242638830897076519038256193338297128269671689348485265975462881314495558872558947606375911397994932457815685481356146946237739351976389011779430192684501592101418177249956524768822659377301554514482056057101132279540520081324831218315730254565511027338625148822812967971908556155421317205703345560367952899847540094476847790371790319578186271982044611355729488938353987786514593641259550622023567465856635214305975953658461220318818036115206401853521188757062976548078531899308807191473655304268248398040104210947351264308170001378043239295001809234117154873539058906189402552951758094310116528140790044689808041282513457473273135108940221461593522539281978078302079766109986196329914490575766820099934027948904187312989192514020449892551275072810310811635739286376693837420445121615557568484308502554832278310195271666911960029559013342313622058401490249436688653138298740838296310130656999992338211148959657116534140988890766751945396683850913426393963882085737975283455837831371308194402045540305460237823778660076731364336686478185883142291816058313599287578443831366332492971114699046247146884108668152745244559490909826542443977583069562420131794080547341281454842293832543564612566732819807261783268780778360692240552921209291856903283292066435926380531415443407472704762578583150343317946551938650889605061430177685568837162553209000032496663636462525149849646944065533232247834284785392785882612049497655233045102338828463847166754935510272886402496058612064954851687068621786904463190896402406760067293675842765683250619843928341743622251190943057018087918940496075471241799514974417485151776980505970285143657722855757938394678164998785353786908642136706811444581590001601931277248973789734958810840821677124001074854468080195306047265356417980379148038729570918830755121707897145840693930915973380491801386225551486691725869838804366746070925750392957910047230711470774578148977208078382367500575499711780962081406280369203946812571027387495361530876509436979263367332897541729310384790890817323416866431638907420120632770831316384540133646882997043802101157040081947596651796721783981058261154457215939133099822639572438985664881943654391031018951078753652852576928391889869808458999564361327820266815883791125982934769758787383592961489414378039859448619978051080003470078143908919163419882003320967689372216325776793969583826651772755294853955883311130819340793833181430551959750296195619317794357488737754079694384880527551979615968573037760825338353828721507599140467082269367169346741930442392854474830219200628049941911613237371981947696071302743916124401582627520056339811356694495012375076158140450850700233623903304856118942672368351323820079224437425170568748356747434113135619777827743104351709697834484830959984360198585736274651194362463764442930477416138119670185751211766919803633543411656072527668639107238214063829290480775451907377923389794412120198084117278807291489263873424282045263457273326028698153561750837003735143636051483763734714918469575690623771531518167194155942586887211074858100624023102601167045957524246680953964178020345093458875324240387362032886277785082182771053108322343479764708403492918084015759964408309991215040456768116142873455966167945229626816150915827186228121913666507031668400990884132862017075937539432278891622645689012091984544057299068076330113567262730051157397419618755965291683473548002903452568619055012552837868769061991288754704000646210248959671526987479468504034745448054614943947779413555095512339662050381596252062593224472600766975974312238470533393837288652429974728229755808223786048382911686469576419616611023746868453881290936302983830133044661425552909371158910248978930783207001929721132756181835748109772769327249768528356000672470615478934144230091137715340614295954512225453369703516942613597627551795598396204737987779697341914038998390133747513714802277980334459784185050903459506747561115365446638669213707921644830179170803749921956580797912684044356991081875732810917147543661143670979543542197553791962498453503908787265957970485610272369276495122582958825934455101282549788154053660311798507795225460634270628885469144706704274063089373601719600133109780880817694258373383102298208760245023880419156149534741147274840006794058986948449217421279426639257625007189000388559798203636475182887268716507599611348342787802843931583305194422057501276856485728327053209569535534047980352802263178528646263379413081033577045157966699426880753072300060065783764650189428300417359453977444656902398082250583519337309267135957759402075621809950441574324700399667778287330281721066857792796325744815604536964975851550383127114956957053494832210443410706392534263443482331533500950239899865540821729582108334182723635009158727689283667306508669387187205474890005577729024876056377106116986730144938972503495565832421606157252689638061121314378249073632309305848076205598443977446617270859525276484992936397775893105406321356200985579132812870516672244943431762879546139625830352021444091671435033007851348543646467331004200119592810355047018545684257891706402324792169595816070325995387442435433269093050484348872226203579594466624341426041876248686548020922927326869345995653338213644022326470728035637733979545738474158102927223325409430874666301953483138676427100687089085324389969967884189219949776492038665776125301420163600388034010821656605928114517851762304449451363911716212319014300485850670844046910909105860198264662675091151160444147269657995307536723784317224254738039620167780347259782213036878242451302624845469304065108632432446574926973215261953471235302839345402609840271219768727468266103275822712716134764641141817264687079919065503163326278506853355371213038138944106259521879074188979368926915505971125741984968299570540335293282250897151608973942996082523364517293987468244464730137392024435767653434039451785844806502353909434388930819208289606561253352288654082305253718867969290161005806621246946593238463732575285947137563037905461005911077538352379594262538826202559012966420596288446835168282912106142158178457249230420543132878806239067981888509396223980297605661459052573764588276157719341258126245665238227789097805210981512440016830635774075029828036716887949303491978429379835911491655427471769471740793640481363277735858285433697120572296044750335236968744067134950439822927857393537134481173267911893724032677133118406351224290580001181929785728095837258395657616329898552101409606357418450966540052075171453797081402550478977196598388927769091992252634497419121361864407367137705768652623273763897504767822120548707103466974269423611171709110049734087591687640667138727310549780971991662515725488739027173642742890406226285808003685966642378548341805935468884975472791762586482830390257755198344429334005581591615276795681764425002440707104394929180676769162681110657182192602289290903373444396277468894283438109293275787497664377273932537807261777337153485370163035622054913152241251263098773728507602944138893312846653316941910386717071371457986390312075602418485949674965285018919199689358963145661305080955985133467877650040160722332846757840836646550951819633408064156627440093760568950659856265906088362013620580839464840326207778858074486103227228850610780733714865937113558717321976417701461452300764472151744789869191301494346069054807942574372931247692602503751693692210743052053985535832030641330373461991179034595626725374865606858628319313725163142729381865679303786373475190770703173304790613036934389802879060632764133158925774216556603432577828053360595975189973092893110836421601660494253660165586916302963399122776939908971874933374762725272677571347870912243948107322278028240669911323713840101268097295386499882614669317925893343261303415076412254867245209403814924938317958126361440580734860115708602998765987010703515064052654832194959705672410383671915566971707268544837644655973060563436171562160419299759934870109019032567946828500670475476668980873598066561656833994288042963595522203410075586602651856375713488993142615005092078766794977953247756753882469975680544706170036473497540795811608362491293833956438239753208357245207642021086875945103455652767901507253515345840049463339368788452615016234862983547625894104048984812399612194968750487757862275149271724377252343000485588924953498264737175245248654407012732580124421613257729421780110474959291491420396097134610162988077214176204085400856693398969778173949427308589141064476067240520973346490635168476834666791530064961012678343324860449431636677649058922883623237746616333134934945933426551765939590076034435957059121981398170805768526883927402115329302151474470719987494061175405505234310815983412423045967647398876614078404218804511756478150453037178631365954622317597792816261007938976693522273004588664314679339403690616289664727269551052504508184275816261413127914163012502078528069314703975904596678734673398794293588728602872085522796008595931788188270610798676504219677275523749137144061627774696954094053360345865533805742270257080852688997554780756018230427076508998146275227301449840778714724152435422190746094930646162621158156618691333630346014475486506907297739668972548880171896221409215767031049181329153663907024081540285815408961000712121455370149137142828045058310112935297007353556976997593113664083807824697474637416882342404618906325866826871238270500937343637850058081770205275412577356925706524372575372201494615123815060703088006465429473547018178252583500722969134976224493699159188448884661456664265304880559367321148703040439742397322740103865857938439533727189400475438161586844453731991688037009736312712119887548400366488736403625711441196061079753593017341402383136524544057388698431010584420766425164820766772615470395624508969809551996154319402049052867655585413396994327028571604807834603306043926631258488576108791312929937112666910170692996242536336080881635712753585611421345438708453665948454371931672904019658104503819888585168553339691284601333227263060098533770032197633166534676107205772649050001518629323098558307780367693103999165009852226664800666054866477039440921650887504273105589729336838999269481465720177397371969499823153456023417076257574426653980550689501304310986826913908185151267864824537949594523624043498654020777488332957055482066151772775413439553120021210926568997527093940767912015564964866630447987531429291078239400933426908981097699117895431832241714153940620341106008507946777273034239839097337263551058100720124517919573804538979629524662797664172267870111941234987391958975441096104227440020989781223605555843543601296818962504783410957050712651776493575742911651502835814621666480839177665786992981006063138136172117695691196919430251755913534372275354049324663332163786690882574876997215678360479500368196142167002953489431812940811358300807189768527959780266442771574231067520164233850237394952771192444474192920439395836638038884456532504994045982441608232023828455135582228384766214013148842057789037286131490236827921691192533752210884137641434601342382936795392075016840933010013105234034973373025117947395272541241619041585276446943709821965319952102073086870096659204854581455012399958221088087183224461598460528315451131271050145193702644510839300064044990511866808193691950692606239819674502704598680899794519893393526763757800256185020503261055737205763289472590963869691642119994122180736410110382309727951283834918942878708248292328393309476246274440386235476524736723127718527244376668473153114568568163852366841832306941769458317103885467121243463274035215097843941666245218145422249271811745108469014354139838519840304713193250136644414089896430458842045250603710008935397228672658887443397091681977676549753522625343121932825565927221160924697021478006512171829522033760788597921484549339386900439118673539504020466886067720275934811100513247180128130204694774704126179106314945293346766922930502350022446827191000725208145288761224725837674540455278516135130681788116449600592764107384483453763007257400749356972052416751490052646625696223174775966311523716329031025136064875635034280447164369015118062351981876619956492976909965060420760262221463008531942117095913713872066813514317069030797275040999196294492972611485394117618979219287276345822948204934644944588197798405211499985388267453492154724778799484006463014278806557363050692310560913738715528430422185778682798873291659690560476727658891943160291059517734063815418296070873243648950639895367969446370600680344013435650538627080977590805598910542862599469103275627668740731645140113285839640768604234335978092797037195931658100019457759008999836018798461998431052360426358016845089691197855780796086165984308849901926903510523586854624437214341003783115359187031139983989121937090463860816197630425874969435169889560316580999335714820424217867495139645997505492450090351370312081307061345779786609975330006924422140483673632933360854671007262962894802215903635980850007809254362920245757828317899162182595424658607915167227841535603138641043724863732893376936943773113671458165926718239388554959849612054557808634575800020752988056983193344292316763617374647562954501775460636823474406417886850186171028984178405997056499043572148422836322717150552609919805761467205945897213376883972406542071072138858790383312661805048774860118450385162636883968193905781370586690430529063889540870407390319320673573287827780043665164789673939831513004698499805049781762773213770402455465465638646762522114916584112575955534973057009589477440205766697126632396801081155567782777418900510519323438706463607310044175429908656725551424922941198991833201029614133964461632645814682636617199230518893469563033153740036166906208143773586918323294850182360066322592927816938056725044187385031127328714845809673236547742427031510629231891603215407347000812344155746946947328362182307632536576757095716488422349053822276023522612716360986435138604390463995770537665703981522782260864616912576420751614991927067608744058748852184658116160217998642526981577782096215361089813371694352685584570964152948964139358980632010140453833514996221493521772526840657646360248870737883226833064737057811459616670449450256747933462654449625579943538759462372806289035380106871252578375657083862343362331178198016747353712043547592825252480805756371133724858690935975372274045893139341720932777086068974679895123865400530104899068597104223185309020231172032222814209865198264020329484759155286405274736509401041012639460308765046179409577069658365519061830762806740342069188735696154790006871379770053447816845850421740739066229527543158024949907423599653049398196275818410513789309668166762481941728953127199208896945799895987910816522110003663846147993443303873655621609077101465342046190563388395077875964407071410007324160384032835941006030709678870303418948834066523815113489530267377391534117150579881748434356400858978920680114736955366115926076917185562009534805961221522346826779183810509906797193470030725889312567613417929181317785045046801064344113435176655087484687855580789853392404697096322115893081854477958060003119904945999427593084084964252778264354669816581172680335903598861189901081521516393657984987759200337124147656397826193576537111237455036958020599983379614137286937471614779332527647911094655686243200222421504059454859556842288696138720052000991974567831528030396736103772280727972865242477713154759247746914016649733172542861497150632450444673582129679669478709684369307871651206073743056931184162683030064730490359587566850245957671185025104642449269584677667758203722670573157240676325865709796494171308693767141647772266141404127523252655861133046047239589970002967599323468392357945317273242807927862163407941954975820225060965347014552201019222746205881759035117537083455878033938531067782971068336264479635552003082466471519293008871345895156112618873224376730514853117793310544066788069979510460950066163582804756133729196256172779671418097733875576623712885373550943163034789469678187549311459086162476242372949775822509978609397124014858042324171744649028719352463161916506250298036224497926039186297149410177279275752358125084468943784606563652319289792988996921026649035114891368858073314760915699431203910913283791928508074067348413579455375336859271578908314248922216238490805171571418216618163566918938615031431291740970403039085420258035750414910435594966404322944565326869689713438198620681574688270964337844658038464965693246088575793186067180817465854028318686119329793974742257969825898614030993303668864880336311123750326046020744564485572508964128728600422445361298182582355989562404495071469545124818863787428687417893178043159064926053014395488192730650435331222131800231828903102063846636272978182925818993941050907294772075125533558663041930628757665668178985782109423618918125728991855655339398049665694790379989682668592087725515586571117595183031773173418682798196213483056865283050091979199996019724026028493934920897903488292503466589016327215690344162465756679303135636122804386953893504396399552240123720235368921740670500658065741482946715903074063706632012665022038371853810043158301761454942004759571132374881967233463149609351966981379768305112370638445453614583720719416450110117564877054971737094430685289120270209052248982281036634264716211739665646987532880897532642434257057195900869867340343734765794936007110960246001817654558807320465909829985473388502723375314643717630800817991196287981878605520114118646628447976464888918112421462224975419680271656817952538298120859194332635497607594887966071784310090340413031486833640922867108616576657029367506037329708213527133245988970041056850131418669715280055595661856690652437770240962494240930717375892454846686670869529153726837153171861170088436529677817705857416830199345842880929518767854384613976315464507420688021146429225598640806395581708850070396268966203525062778140584327439708034660835511198684203561733693462495056335096060770952421579937391106925210566669043968164722304928608523726629953582640139760482085255027289477585122004923167908070906602970899973476885882267628584265953683734229626236353333422257154284146303539495318818012995848909702837468115343687788927811469910637541168516960891448578922457327950746038973078896960903776377519788587067143841814426322013115416946735904752962472464399142591912518418445262916601790536802542341887759555596293585760964478302313348025029940118661840141665881086041487978204476773584797956491662843409037379600951332026922638907619062451585997253610621040452546143536405022152917387099606839772581625922464440410103179447120475582949844506616570175365691781882069068336284911050549991375625538110331223102773157683005434090187344516071878193514072039504582045751853992070768749824813994473919616383508433084105512694689896481850366670434545272126152348131318135208534333410660556850978871684023652934957461286287992091623427396396874870207532147039088172582956219806256896415702923320802609602461010634750105939758563328344411957396275438261589918980667023323076555246907093472849172893056058016407264496048535960645428041342532494887696661377817728682120193481321465368815982966271113409471188190882384149571013366211987758042423695963585760229811075953398371278963088802965785937729877493979666013593378665659287425901892459480302649100816427528520816261155226940390209703757522409378601471227798718404169099139271440532588706025244729736808541195939365270782729956470800498430500620935680259656942610108414380341951108259617204731258899462756005370959750751228744312538397256223332499179068171007597801337327438158157768559948848774756873105663813188515823707797578742639578374043717846986729572091472518696982513836235995703840381965952234089982650307397042726746452895663362224057177263014140194796979459110664172705918847034654577680201820279683041499822573724354785722621783779861338930914334510644960090959270826102304403471651936306047214647126252570484859739146386560186603733330095741678002530190309697226974209610658561136514641093253319833227747864338774508048843903366932103986148706816174900132282316989121124017803329707222193538777104552167566448555896210503430702333167866767757533626105227801072954613696639240432352299224330066915462551509250414089856083229724308235422461168100440942269738491698078006477759116298967078444031623705640193857820414005455670164652219380550549306819942917139153482158582893161009342749593451683239458167262485956560955320256913757883826548790990067709260590336117108394726426542215115776163918783463676627460728437491462648491782444293045910842579855349168531238222713190351146333333440253980520454365051839241426109406523875542744297025052370243024685487961585077842393352334121709638383730569250233596741649403016226352302225233243737876835092108135844301959527184653814682029292609412125806796738377145153516887677038392520974907856680486676264677104308819638665026838028680092547844753256852428213714934595091316969958103524981178147847089545650436793916281849932486279244067852479866411794854846131786211270509900910164306201792458026475910629381287783531542691118015545510847667187947612862526170804304079871847781202659340999228985077320631301453149782374965681843837704647804422465801626113759107283315239543950354451089443798166752029149377744132838407847072440891646407237036399891112388870309544725622048098104082142126958816263827805009456850100668279027438128840975349871472307600291450481850215960565806757253851169902587531361450536746029170836859898392984538338301646880125438256802300403950538989350402391502692780790793533056660809208163559580634958963685073110607598392046281389201643835580515063636755921286071914785427279789483318820937718708960330218507013488591874480759751017631168622005442918978907512114146686113198653370922559473381226720092363577944122901284805237575910562288214905376277908477414641604785513871575012499587460638776011615269847028865416861335097902670573003222366913871581387098798317747694003306009297485434415803864273822351475516282758483477123026308437698638133928005358619962973041527760265277786173721860525905792797693722958065546880245193989333553914374064341859474323375761272873509155768936966017843366690923922151869654417056467873174845734843553643805411301133099172486664217936992948128846826729003048707332315625180923955036865275624746911439085288891381604344426908000043180584747638242913786537283907066259692182584374509966982353206251955330082667524817769923807823578403062911849484004539297754023550388029997090229281392342131855514920931706804499577146446166355631388824126136926857637348700589446063247980537756422136374315133819048893568033209283174043298732538849102747244091425806748810238731969823490211728477138932143619496191046246158403819546594787721627954521124585186862663806298968421729309511039700376549776498596929597873275192697698783408112815525021008551266626412241234703134460286397140417378872243731779784034979489157329896172460984759059558091419568685514339108367706690601099701594558941881299470839436858842311593980746951434493599390086217713855961471026497169487063903138242514051495396202131707238608526119361019068717067866348730421116516791676819601437526668179376951283565395076845056324063520666918148742810239857776754578834072249283658950804847386368041461472588826561184155541492623148295640903093174743321210962999459644038616716956753426026285048015047379836487466665367088652676491631103650150482968105391577253957192027573826994393133571251182769378170032795660735555738461523179946878905252715427344553201562208963471089778773620171882042838289437283269834060589416326567164124665421893281616548464808462238894478695234739052278969606614058696211945549561729383895511340060147992124196591318542517213377234671509128734427653077588696140996664201802043692479359062939225784922721035410545003552457449827341036586660707822848135182923907091524256568058760813269279121466090972198539998040891387071888497717304685498448576828064974744792434545690896986173243308266730986458842528031910193934237276075371686667451089230914492680332988112401961978081476076793924661128301206096987007220316058820719174266020563140223858227247136210552862298962653524787977201896486365735231610666330709151877522267883911085735061639352083190516703646767422959242520525364486248198074620296992841898953012269789718767798533904387974387059938555538915012687710130299445319657035828236280276312577362340537167483174689980148470866246784406382968330034088577999845873270818291960916523799291642738732444716276110000950783848463195129336381616132607414978670415751012615003092986562422548497445241642150761030088017631685872776797155247036855785121079937384373051428290494734019057680659982551278178131807571234493177849047865017281824619027756180105356699628492489636367866837644554970999456269073268423560105941973389267454130550739244306530317747642367940102385909800875734382449228089330450893758490100718995986713830263639132562493124918807299782997223768535642891967429442570710453226211934568201430902171519295950009705305443627544429471874931169871619128178143139930891489059025679951706601371969922625709549775638559644165379971813428301105617772255483469770912130085597583658180242893495504033284497152537680452468126746959545778074402402936305089632755970091635965517010927702048256157230370593326491488008886301880406768912120788588829043105052034223931393362975827094872669359273795059122685498805756714489867020342737202127965844727477615107593716050977812769196737523250215509274022595455147153563799849781231335843790422591588657931669990723398615994650849998781817252188797798235516460981290103248309645235245307628748971897524856982450424740853689737276674312543490977305447410510060666906430367363997880049092401404113198618645917841675879813745035571068182362240316110880377856869985202814563347565443990637757550980414201599280372851393574401025160362258417278508883436196821156085945357653190897286167273798500169125941976769262134838925881830980504005373133341045179660944470866332028383609772168513175892114419130534039019490265897923509365684743100636542852614887759791633749143697867973948559812756662440121883469114188799738479674708079481029675695210064579177784069119041561031601391396103130730273044371080260323261899863691264198676662162310253283864908435109465594593414481967256273491692387441180112227019626930824236087929235639338271861475564985060036715883118213857719760546780274367852128654066670011395438379391945767784659638777372959390986285347785245393025841465611591466252441566036922619215849581337099006527876539484278431015486404543686944713682527382101039401015982069980388946885485841571430957083473892887530195046985678645858514150946081957306330204919180602960007208828047289479407997441938216918348089926167017790657230032098433291252733813914214768093726920208312352671877443307270062905080876003406405294630295061483498641352945860845066392143672157337358882013848102118319879353653808377339875374298692415408649836688656894643245578447851483658809187961023784120010555755649052462601039483929192375632645261767707968050286944212849231210188714222324970465425752104583611405545099586200730315393677939206610954145069822362275725698728821109301784415925677143096742073731401916954591470404123387177929583904043682921222020774624556516215658657391417397454195886463867024667633363886279394590382510352311196110947003954715205622454724587021161317417236649573198886806537508621845561088865581129315476136292669885505119499792902835841978003156904838760952421096089766848389139082369341805777042020835605612236252648831758863355646414226201473197485686631620682287154976910796209354288525505701064836906636837182553628224028590395162176973758784472860520516378622101985113059927419596600281614403945725294584729559898454032797508093423576623703225218954835796769191424022207172973532015406539207885549910722736663132777752223157300045398626344782413058707922202377845828802110639564099289571400582368510388476193442310146829673207144718805866681527369862447446245454119520547284828274495621181184578699045430806153182630687092481652960283841650699785522568024463382195694194897958295586760916218991139956473764152394717604771626271459759792635446994755824939943549183143740180739561965930185140266852514676046774473513384571072408982230624477878451307717881532393578851450527956072268364066216957086492119402505212800065894891161101378266418721620394355359675467133664090899669996031373575642408676576299315165433663193446621918831215182316945242096762270650982359738609279000047918764733903355921525757800729541959430750834001293982489466116424660794686607920860769036899361697496524136072295339676532614560686414718732165598990260681415937971597396468824987113112356294434287274752168391536248978772360554140116937940076874361753232794159262595759764545524329030589342659221214352792084879057702454804133390046304785335887904038271115367949252734739993560513058918733638203492767405530970325092247650640580415605198799291224656709942106734141897396862295016568278392843449214477812054000765092882541095576210913655531666649206041700434749869905440509059277775022354113992936764138089895929897600477696620875669109846876154929387294421587474880168552467514893549841241700284868520886091047418015990082674115013622181345160377496527105154066482825037543870882722464008040332168010898259661994593581092795596303408706635091010297784226989972762304215075608320133216730108722981219698858208084525339904029274620651354157518666086472789551650691591562285925232628259208865614497935500748642561233647070224322095908349139861817455993321850057455008413106209721977514359806647551877293220897555011342180870154106905726896975606008997265896707998718571970833342074637451090881584201094498255751731385484058145079988186918386869714423140833236986010159461928581826057762884383672238098218083696016195309966293430388231507425901637081699870109933221896222119799572412015450287658828638805089020505032977374824335211711691867177831352433690559686733563691679417995023628708896749272136632034581540997596535908343253634897625531140503299840491307714591634071180228540039784926543306950326869828511644329307813668907858220630062119583517346304208365966314960848276714026035165180412569284117010301459897950329227868635562757630157560411573999881514796819371739036546068701055000165631500427248334770501993187765454165329415070771884422504681012690427513020799087263218176088782634679324746320888969506269347792132056522151555835731442325200771941158191220718104467890456299773093048654274737016472848288632247702079203700968156100962895633439325487902819620401763274126174771383552062866275970937333804193753316127845296811671428462403386410078856589497607637062832125564519685342403343928426804063115780230538767452119595853674236595900371563964110756578142203773436443290142608390770900257382226271199303352287339754425655327656229577182130037330392509287614817514483870675009402161531050451562748742535009766442038141687430663221614868169218198106561298871477194457895739425867522569581785726738520914520461094903610817750987500008474616897544291996265123807629896523523091243545700056236489752638684268156721448684769079415180301841810763110957285563636543745339323827194549971889276892612803117480484241562105476073606124092324332947730741117920259425670898456414097248545459948448333192471242144669655226954809756800867826733834114574378042807387264189979321587884199173320833247863616334823327043365474803337554202533006363745159748735882648207454720793924973573022847489923696517801995167258643724294976991625196876774912998706183467872167989804520846617827476526697068161635274972104299477343601961422634506623196332900417897469445604334480517759267915733923973374610392268480590536397687500606898933517025354061815202703209987703581059100688345968170636049439719232078441407349915881991773218833838469597357208631707252362810296990991346479151818706104645119197073684430104123450888093137879862627862091611522911175262247003649026475379778714056768189907353176284842604345484637497141778573453756169418190822897826100142452337781025859324935721485863376310843170963901023815857600122811607190885665848635448238414897900249139750102210722478358762926482582838931973966026727333046492141340680334657527241378752359397448178164631443252545591826268110406603755289599916813699299682937466276502387149084866670806900537965455394645249182367045312191348958754796063455517785083389604744584252240016377547699227959866490939166488989653403461588353323829957044600514776895584580407148050033195131286053673266481208836233631792421897795579379854528902747752076738977448486831735642102688366288174943757670347818572854663840350017269659675379234403595646142033958704348740546760595292534104252822137385142116987748937663110900744908786100906996097352501805399615395420491282465610675576720250136592731907032716179305752751968265067768346078091947044573706396658488862907486731453903484952694533617339619867032028959565983713403222668149040308370072288018709317878732251754418621736112701287615699985216917596823088060040031635443241608115223965876148154423168341196163769954990555050855270550307683177083956238703211510609274902807972907782215804810350220215738190849395742930895211960473199494641017018477348251286561002987636179537888447119015224129906901893190556856373743194416309348164479651991971568791246420766137786879521959534651764039574244829688508840155412845113260026268186885307691590900063548240511676180666344512071003065988490870983663890061918439426044304897455957853226033680019582531128908574196519739634125289950108271372291910511432720198653521653674497410135132115504017500003623059477812702363187590374814461405881489578679321795340329089556044584439654746246272327571923589300353796107039842573435864462909932627073295599084221047978612575987839275688791124565860081331553481209942460063995095870274060223117479005398824904274342795541032284947648255116581968742821065002735020543279250968342439470026070143479740414400491748722785195805367023820318986456342837415627002855656022950269024659073213505136028767754570014328968123531431889458397178776500301764697889237706178664027850074456643308107070388479530271019506085080068232308376949947339011908305465910190228099678747358792583615579742706434846638601468293329240371552883735947474652432587523054409666572823979501047365712935722171943117385518695977502807342682740658552636903054023034866408368609217622888028547954578538196200094945987476560321172436787773774857353205398727287134775386417276833525440309733177942073087172110865137937044274216202709666416215756820975840664482436148720998389085794561726684071990726129572141530264475304245279147390026789372020779359347811854063200669467984685824055270781018950743174828755782558166532406460081382167076114859948307585086492243357746681085322620086339991734403284323908358798901450770675451863094172747644792171377772230846372386971489109691721830213036015729748848635146681250011798025649838114363231177546454640518429213075090494744103972773535653996385534322697747664305473713340635596229970396173724284043829123506585820501485515859044745195744539721371484690528818984946469914778222103646931142854169384273127992872343063359788036001066044735976078208256723472955921549784201406457719931823814031126828491642970664870890379487608032595772893797684661402553709324295823717942650471978072448674785077806887224835007259613889600363208885763286785485024722978680457849679696243703638093618896751154300340918951336603208082428792807519084449698009450413610590459262963152464468106877890115597830117156910093096826334825133913113985423190310367274026768325286466911821742298207659433278115261604860714326287870177454513731712546779894594464033673731233398804993894760152856260605314120678186852994042435679885977148105611557202356321629795374050131736189663833160164340456073785771436125698398763707643705347458945369503447678599765413014108239547911072173055961265991608056461821601404645854261849310670295610202189990841507481955333883862002792068480559456754806287407271273267357689154529243766466081697387026277858200627303005588794818846493359184027494478256995370808327811907327084993551728908560402799932722208075620719447126752137019739141371430406436551144819727691768155884025006390213098958198173364767520660856288164151449089562874710698642846012559686241089334256076626841387899667627195892849053972047986711876825911217971573221687911193707155871613459772123825460875614265956107897421154510759723284578467430229981949481515307797890168999775715037284605958332049264375977667916943323466107333652792900205748510972627294214639925218340227246508996236754161942084673800973245594438028002714678450363564765116951528163314566198381235612519802558277112190850516134564673162568232681425159803206226166052389314263954768907786727365431962564066686050427303246180965248487309315673466450031885021784518473784558275813747360104217785307245245790776686308142746549280942500851893744517538648955463811000150269377601592255249914422837231839435430643936646950219304177849224861418950199583314764197210747156512627776370791792127656200502103973340487262961422985032584331937942511146901957890694252987429500323677632571684483677154849450515503022311927963827648092232334288303786350746188037948063178914525636845888956669526524843374850138680262099842285041591747044851005954681080266205162911178530906046156172984136981475196090619927268880558299333534092334446942717203537390349973099264693722364619450536957681119013327801286248535558344006735455568929503943078986497434567000911028878735152840693081776650728371150541170382509304727052578476807465588249327403034288716563622499727311877995614639346078995741995242554481831066414097717447142370718141196660354312753399757561510141800093205897513631891568989921186304178920738285600276941500372837003969761128525296467201772432979430205600836214060947779971849594104192236101006114685130956496278625123996741907558458704001784314182389566243328381471558794656652170883213165057919507838075751388329330120932862610165825937789458933612904751076442082873007092436320503907014414091901689812125365455158291578592896799919990421267549620245519312038718058066668180087921487871998024437475654083398548558955486041286568306586554467887368102563524871932669454463229332894361032575555255042105026946739394309751885074898627954687118007862245626617348033068696183002681269228221824962364934359073721936318546035274622199934163065418261676959340039037499193027065545338320229438311134152805812170559741279576678212014698961218387035706422215614402305061554052612295689814933527321450610671379477569113489206988633527185739650000876064167447438719628110679475814857806882823520003012701037441606397935640933463891726928860734047647541112987877255527932873881968398758437735117695107729422087576620687260663551927433612894815349942163946791364439800758670599513867096548088394301336811002421335806370311445477135366697066261873120036793736036734438429621926345326052605538232668599589926623802588278069545798886395908800020656020415355552405480037762676140097094983555141571175885049830211897011283726240260229135614671894146044123191292965259174392626344343526843468885506180179682038995867912021111894512687472640503174503927012494272551503816002717663938852838158345217263292945105669541306897852801604123128104221850492654815758782139248854908775115936503708282583489685797753132616396283667914280033519226173314590239134273150697882850024986066055443107033275236620041800708686406582004158330521156462320114948915460458761983582190385588100972967031427938460403763362260871924117537209464200740432279049711707450316036592814872663455737002097845389284809974297393687122607047668435673380225888038388276339319970430053558698495684052681961779189212211967196409871417187972093748284271414002218383429167972343576675593623176399910764418676757746789724142057979834798007575048866088933572611372108524511166915913038300957858524196481038534354532921789678211594037736295004072119918217956196100168800907120289306908874532198692178200978902433455010932783781084950559760440933905938407939970277437014078918478788177327498020670240094828571954762479459234567960752529604043332792665677403485843666443723981963627834455137562756429856837959889863992195024020422079186320321575921390436944366439069495879883439907374337226086911063106321971153414587431306684729456556698512782715048651398754563853901912236511744400444612968417069261399578214805334779728700360399600621887591809557030277543509899221100046556562667641571261524904838541463568661996667628903907356341384937448313422649496062571404664492166014684724354372672606125249008606280678449424152022674462246724909377026829414758932376430540852348032685067075418259158386220284755824156783145964998736542167478061531923464238636887324252368828244051251445413117368484422926556961470867015888214433041414682394448889840291668392891354368478834358098593115200993073212861440757115547205752448330216789301245369558069808939355210618404884591006844078424381903946424232599797651768245701839081169137473091104152152488396757431241624127585787767920266197716339042503490702948655907169965046992671604382858098323324727200109580097581006222009319831038043685082140228171526784251748813628215077240277912667785295024969324706556597714108254334775741993199072257939783296363382352763122668540437679105522097759587216903231706999744894056214244383565199160404702062874269762662841874890728459790293503529822250062040411093150363186942474551533664487897576470920753616057517838257193193440812080170711445104377412831539357062523228046738100832712561208371140144467454001005488310819716109931319796293090329577260007592479636559846058908502526646845578713341401184271324025725564518295544027668977535189468409349895426937634707801757165540531741285720493080399873878808434236631505574687887158716127837794354228391697666310156303847040274819446347917299632383801224814509006400471829366118914511738097980873090267530333318010649665870437971717449466667695388682038104067019141240764860307865829073611722997852644841440897359054664518488067440998797684885473230878790339337186978516625925033866288321299351036724045677325030813058206594084977952887799371849345623841425931377699734482374323320184891149745333063422037958651396409111495579566511552914492995054927797116085287109754926473245195273238481374805497722554592103816741889780014766058676898253361466076476248100743743946652902198503290800036091830790199717506514095147081235418356130248190449269893050270536629546297910605974036053093972226811180541331297774918770306246727355875188206947381432060055642611866286223506638218919148698272957154441393064551596858842349938804238084143209237624437427439434399997242098583336058472443650323464817297745413948869822910709592944180296657241011166588520886789210451083898565553997629185663579746500245362766152040318930111435826565036789220475835211158169783979498844642594615930270086585135330381506401086604175853869784604300449492506739479474505087642570435397150154301015604990870413430258230169272787492316639257069672351832033498305129370879393653269136648626658202226529982401418535845778431897014531758370729268526565501550204531981779355189145830220169455903405636648405163719043833026988258657397650204370762585318240320055157839479623020190305307153759278880261024617222173898038278663647243941614927485798895183090556808634293371608379705289742900256960917192401500320407351289657356578185708580811517958141473706954747682109624283664821282093494396680275198840266398348844983955157693882941428001504877008457560793340395066269552294409688571180945229821340607040118330179792242461686676952533073511363733291870784443729234851739848122892433545244368040266727579083802842051389485022368280569166114497347257747630086967933851933438883898486168374949214196194826903622191428348820555510748831334673551334128784806981741302185017468246844115498315989765313062888355038499683793962129886201163135389592148962261057140430966856171960699905813461785262347205076020354571010829701341496441329853871660643467028615246882641318274475162905303063865849874023240993056308909596578958411857980472031236469551561361936686300189259440626435407104193072955241428155164444025419042112892114085344965903519641071351974900326337829474508533273934179299223544167765499299754853292306671645551238901882703781881896399178989472013536026467337593137810144221767468417224841400313562179458761701887681904193072170652869535501212719872819913862092163829441734433349742672874115097544416233558086380122712082016820789060791459696148537048718855526735250041152698085309539966314375709112028227835942677962038424778787465536526405825918862309789032942036058015253543550351169693782576413226205112408883212881806546928510801481709086093771120577145501894149533738023014286486707582933433554657977583416901627637082751851635754718797316065854702140125721707872238982933744719029782732342737154399334244004458969596943273158738617804413859420567662472882606379950437749352573870959080749658906644185322067235959663187437711333297283724303436179027322509433431684153062873259688871643933134012386672005950746731604767306360234963849548308436914962684300674740662164475716038606834235620295186678020821922322288952634111242087974123462077233681692711312797559577481052562994636825661767898133617441553068264055515724591733141394453739159046878620376718760822047570882496319283905875573352364018393604386525670058228795458991933054915004138423199482924135947388107188471862505318511814866663006341616458454415836991416139195625765415429865590375433264505582473683189752545321133949042556290965752897001358131622642295748135527829651647351168652121885613152763592986280818780621338610228273752011126666874044413251410256262212808433299306585923011903433786672485393560055297556105612795234514385522871365121303073083993457803441354489059970304098394415997717983192633163180653988429313150171542108350825081967409103568022561445470790628257605974441043435631058146857854240917382859732548911705951322294776015495528656903799549043589998510308311632090410587411982974915988329161198052964017689985175051058957642930544855559314611806798998607107549789518246007323650928336121162435340687211338796674235917236902857733941905301798176823011947282829277069182156072014779209710117660731100755011451222674915662954806428751738122340548444583973162283687647241867920823882688400020594954097352919816962872137712833022621860900139388140170514734109582383875662291089430792273538205949940784428004873739202633801245220153169917153618603796196506409505682532724629023705826858790649705884429496403705358093033494673639159282970447050369987540708577850641995658674058567251857826066476296985802356301785847857852860039616523980983488389450004695333287884405656820525643482174586031525164233470908412499450942470866895844168121266355315859017106121713608235946539795076242566162161352415160217019715256676243971214001955465010171421323618784315403004371854636328489010703518722714125222578287634574829284225444661816898229609171761716766683281059437355384471245432236734263808429500702573880631480430091266259031253971231962007011305620774448839268274615289179613740823709875977765730105943381989096887546082069684659517539255649945544620892636241760983656311174182449289464292694950632814439785676356391058387176833318897276285591578664114631195641820400749964831805274932038629245029030784878980443587530107313396261733700627004627388287511898290203718972257360807516667883512256740304164096967491768442142910764943619629541672488292246793717621258264201489418366743958834593769990914673081657084650212302818565582380556138899467824631382550949063347118182737864201320983744554516193332214829555029491366363335129639470825274202591939091650525867125853315877667551978592388436649341441830384598692725050960570690456384791874726929532543022329087100808865919831032843201263876716691286466456388057993392908981904410467781447318869664654779122566353936851194256634742654074744826249200456398010297822927023445522442403602561373212787347094121899673770094542576160715066464353040918966771517441800451254559446482143570797195027833063100441535913848897259015120802936738062367770035210683879551936373946730287662657024183196552843344062645773010139929857739904010210603848703254941855246133308902793284234520626925696721539446675166038660023651129746062065665325027761271353205461870159034645283574518112644245808472741743625705012682885033134266656035574667426163543385389797786857000990373345440401930153533911716983236107354465550694302978027555237047884049430602561447851553045870074007572682108009685145483923279325052249553851430838073765208196981951494255003437572209093941575542727825899442661901041781474282068228931391988241766077449077746000003194785356833790758853950817794325910699213352119535208177104595314623068349650414693454349329007082313044143861361748685385318170659974982918186052382677892366532070170006565825056762496223483261731109092674351397741389036543089809699953099306487614183790045696219999815052916067140142536515052163171938968907325465712096123597392115553943406684676174833860848274151872705509768194640301716142144082113800822290908180759518415565306862755438026746087237887621273034958954174768725364576596885243064113775056928322699833717052783401229576019400251326732801888129973274217349229875577439935406689028141359876025179275988713171029511716529907300909167189395436028248563287920041645820503819315468445966286104287819523518538018666369614043088891578534959095922099469785317111126134767089357138402407799167209346216294211111780920832148632047152881190175028618353660114796338862016706128164500272906875910285620526666083579476353250794725347850221384529006953734498533359030944991872296916856078401477649323064088431259581978561355831978312303269417548753231250243228594812227989711170233101445213168746653416945446496528807170342258009768288987300671548012722436223685567850540980238427316374456796937124725376953987902446918748152482312569033427613787013665054598959133098086139586388343515443142904997571770313189862240887303804265698832998789318807717921537960856054101914873191419134572993787544001860279050817045188494272557411976627008092598020363159433245643988309664986423836792764137469867465817374546372148159981271704087945056789082606331313497037693269524009756481369625726064359519625911998628015239331453967738962373457922241648077727447209424102540672480399666760532617859016880835717635900915473613609458912871804776599847337783859482765761212639943678757486268571913224903878542952799802408883750725148500902339025062353500529466659019367365842676821390610232338104633133555339190398168966568708764571809841900171322299475236781241648669591926805786767702498043569860103775707515791836953235041093376963523672847755923408311968718117720163136161537275491748878647653672723078534916349677700657675670716098835359940649574399506531929280181257801311045400635610227851541525446988046492865097728602600559951956457611574355592768201317173134433421595783595950413721108364002722545537894964387016954253917656402830575448932379755058380405759076488986570027953925746342588228504509379248715757591825001287621301437769198421896526436684282586919443370637897006874216657364706081050085615403903297781799604889606452330585594521552836091594898759631224578887109833519762556149585957384379589882513663698052257671816898658108216709777178284712795845930163846470796626301858054935409927272012181963174207292327402807511609885385290630392529987265002030356620652264720464022078550779323401556057565705629437537675723249679838633984636890653682435335871991221828822172320683673221952855260733671737686507708316803063923843713182566543488528701864605644616518462983643723697949084366549847410049018865109056189153439148195061359015052661076817590480412132408545530579055229414220261242643025669265123365026499962247656126311283820578126066757498718628583865663074462917722110492306449390583102460432854742845886239093963566766483255614102537767404944494536186321163695353776492136227718666781761199913493957350486287477971258738478245710049276967348148108911000475280072573000010569502757292461431674663162476655364177805288347946906971176484554538723108688824879605606196607524107122138812214405324110786755590746532684118407362173637799192824577645839097226538788752309203759292832264222195092541134343242253007514170033201166947177344297490159935946742318313088439238577140681240993568330736536265401373167601494663696041702043114790367662506035926842734525207434070736492472206582668098547483258258257840404086233073215394826185403322960172587581057356686935914381011332369216600648459461953038990868216427177888937652340025063614502616004811023215827103296418522390404381712993481304161680468884893608692110388700609379567348262164374323669186771060587744649043631898357279621760218219849956549857899200902977473573069519793700084068270476846053991778439505075407438960705990430274563034396066910965566111386437646425290716078194029348529760080063852775156754502607497737726843854051535256514126708804758554456901119238275458927693302135619287827788733164354109810033530289775579182642466418047634118689982071542905870021109637210774605944038825982694364999318645866568988832505772825421519723198393251877498505878535232466275149797633415131824009607096122478612016475926157951079081803620293432405611127561680304757524024358736343859266610818961851019970684798554636890297105973841838137048555693102949758358347004520763341749942823191223740737101386125655655920858410956302662307155497359746402854135191226466736398666194845834103614737874477099159188050424447601389111612593714570521604513392012957967312602945749400515809386773202426781116857433941625636036796916700912653622639510876805826089973782723506459278313104305540466192237818921741915497136977759925143238635999256491825094577664945069178153533818803229543686085112314098444460714210708867437449909690083534146895004797801436635236180077421913329366730326860575834759954448074700141005595734328973992329342178222427990940477549457973910206697442878294694755041029178968293558343642992082982282596516654394119582378216562212857872212366998282115209747484606733842709046534998160266332953249927871525730397281171147414585501700467977278634562888490506528094811294617891547127215037695804816104829787573529397242446347438198517904423429048999463802557620048066573454986404015325940003091355679905772814068375138803452527009381340100662251811322732328261370000426922624700099318532167672110554149653895298281838412049618060543856212559250847075421430014902178712123114575273152365330252859463418761901885563112823514463679721034706977935163221570195382368746941565010769750616905547978838185301894503492256423180596169222619004988581376097876796206527674667969003181228404136443525720265703584074672462632336391522327440435021176638445454909156257399785723441448215603099905389729148523596618814223448736360478074737415786283326551658821806406424052195746290026890169475594409412043703144984563168078260259339013124843611295798785402653940980982967373841160214200063006295771803079356291656561426812230666992323968670082411163583213393492063297459578509847009136361312437234390232318653079399849431900534698107372720221612588960820533761683492108243547504574154762750039522249207299624299635553869584742409656088001005776296609098117924699447865385005907441130979230591768210238289716815921494669419168635201737038078704284551847466914630995950617141376190788438953539541982525571192370766719331227548680719596651533565609740790920367921624575072975206039808806328118685917777270109692242187743701506778370352787719726233287100553089533322204485941259307323384572806624522951358942815178344351552693508421840190720504688887728206049180673716433881404144906800390838290549621014372575702359279309035771007631527984307907626361120403359374723844771448745204759963030255394461771940150836385409296355672419037589655213913245332104148681965990606257912604478830907807122450940609425759433185646863617617975034518032280096709729688848677335641120039193894714796230796942531201303995427118557777580551420473534879385151156401174027438371179853667117718490263105353565596102260980162619788935107920105974304783738137535016317543017023508685709496439200762578892934553018763992809646131627723654927617456340754360136232629270578707124092945056914335907445542596867108298899386725928462544459479702804711951259242006201097265713044797521085659993532885590252948192834946361098734915759207842527106552627601888435601923967508230695724001964476617520940715118023235096179298849379396811264554860410431090688640401220943605673639460530572584259938352818054060622549047687499196426834199418850066458093299050552603543929416493960917452097514793119619810878831382992834373906155444139321846241276094405358014757474142262566903084253876667489346021771170043974029450798697108303099603172968106973964891704290330914218448495213254757306586372443600713219390674687185566114596007719666376097767297791780655394137627469792798023906171223841391096074347316131572456801916200127918012242353526684108597591258678285868712150563063215765955191720289340275171281934103271931938530013618613251956733797957785122240340189667271295497453802065541850084196091487551556924746923997101661464452263091790841373526352135636061871004015528802193671760991102763556147995305473845111095371866292377793005864591655072567587570600332159022024680766157798093636018199882941001408318456338759056604435081159371562597909947519250857762319472511620519855894794467154453404670880013703135318958744754411132359933530459756105720459907740143354732246914437625494238055577667914506183595554522107300954040053258480289199221637691907261254416497979330592792704092916469332007558670074091007864392431390255576036965105771597131260209121781116671898775319608151969383556099488601364513299336010747058448693080128620338173947924163658925232219623713141211049614042794534297270418155553381886379884201705430657110932719892302768315900100330121962650609549006588347878949990058144490428537553638724747375728623031134792695060355896874331619186481071880467439574833128885936120640651103574568569533342576444369115520621920037955299909370482911211124121317657704576508346116992004721034381398525148873601707754184833613202222491241847918628096422701148506029683342357495906897798872004892832909491319310577912923716124736174318747602767394739584557220797755655406747056069177392150355736932887291887206579987836121609259195900408315091814622784842712124350850374380459743306435719691722197834209233978370665217262150828697278223348690532352782510417123002489449954856662631137010877650334646102434224714350465248134874168954846274729785655866270982463414189782520164247355797802855468320251584437143710308401011909161267837172082787335663920928009669635393340720491780093589110635200443515386884811347131157658348511424235491730275964886026693444177847557157023286774787321426213472284021325553634953543637594122884618162767962033501922694222140158875787966367950065693833083935216882232604081813640481853783150117055519519698589740438698495468166896779009803190164022351116581607849484203452373791433796171427096570642885423278772412732158216545324764073999752903842007472698767007629700939037549062821732275248625502022795787039206273862043886614749469798948140997931349009368970231988334134066805690000432574603766389649320779609124550124118137706895543622799146154389090269440719943773403828636753708171912966651993927119716009879498408919403250033862450338306170556598750513281595443621667371528609068004288140230491891038722062318495958966647223939759243304458974576246748599149536170766269087596509790254683470371998802056570078773255760249692097487799913882108743029542950884362655904049943936066030698212208220154553408647076634023415308524524897091329560209960443393944826652928941155429839786182030483895707785569310962180933820616118074320358255203447043244098437218730745973758022421201157595568371337015826304178022661333694520068698159189809437678153899926966008076783354758726400775065172109183763405162816379287770169196453528663350838069149383212716482946566631310753916107718299562361571978739289951521416213103691564060931248349297630829810681187544820482451371340448725314445924621178965494888789946379692208963203964401851190027677980648140634556483775201383866892751658126254751180310528933900400221972425510057075597719869662178446505730322831671059602803115719857759426914629196971789690196808017817822241361608784844785405052245394665227641739215325686344342576280955443288762464183481129211050652079872719041860610266273385573813578718824008118588297644593743238005604638006678632302608127250921124936692567486550510413809185992363424028324958110750163242812334351513735075968448181413729635226272414749874741280561918014177287260470354391201735132313095021239217394208853935708414903154274767602822958678417997603272037800508435271144506790544994891347373897215486121638551486776868620737061685774967148594042825208385222053085645244785372824777507728186474355376789896639411212567160475752683189749719797964210812998576643353295912988065503332852828476337481016264506288383815187067103579062686681503653375537884334710204849818687136707388846909346536567354452980969278456925204520321881932308893430504885071059895913008474320470671392505503894425017286177456797735572545192390333606484397506946668660529841219489547814208778794165759894231540652050622769196544265325333009855761599696451393542493927713143331565173808772867474552908862556694498965187649462932182291416098815677276535448883447331012761628908977443712453304902594557834801274881505842252716878905365581463753184285090282883668328709996415325825927859474956076587975704781168584291409931961208807814102706466013487893175040731033204789356744455093377868974249021444835768294315231003196070697448279410031886189019876308634095771643835310049110971754533012792548146925680900578964530332100648790202784321206088967188743568897678503615578748500425099671511738708214075056422683192489206505986813080455067831828543613766288847177961905033674415608513766202169734641864832702831825597791949187065981808538931255851577858886133205284354842677629275149991091218389992221893083789979459726149903925872437058373457765494397012201405408913342228930563418975372935275340227714294539476930358719413832060486156091717628667543380563372087843390042129206860219623138753856228666318863352261136231724507664536724243386845447081106320344446932417717806611466174318164076026916295915982002156022763090456214899679948136543693925922391725695841003370869137154496512317910670822728598953494626380866565105709126204857294644008370440500107516293072661319722345166660396106129075384056695528378310295811407901266774259400925711943720431351342430062523540504570416397669292831146048743579301422856278386714940563879002938171766145244482440382564255517817565682294667837250046204612307773300190221348761890766156640137635202915142634651997099585142979351828235196161835305568085823180500904021107697563922241537373618760133289958704881975123832613660498535472471760353888275985994096375942966175578838725911206316702696789422425456717070757859535636674359933479802565986459500807006824108484057357392982302645227777624357003167247714823418386741555615780183797941006589737823909408092445500104101421640995770021966990670539522247251668588463845048987491039376511971085193837256102902270743617473819303210753221502948233793751446512169570320370629470903388401701272010842497574266056862589796701030256408484727237022948586601737923911770132326855071613305160920403985353302390276652857939142338138979852316103539862863033160081683874387574053342430818713334074989561148746054115356938758146255847992199020746925298872519145515488308032796272850267441761271310271202199654218985062937101314378453128564919110643621276335157066278854460045439566224039718068359563999521671303780447164857385050944410431683867973930065076593327930393328210549052219675353544396276015844354149487739710281833732689740256525805149509469759830098897681704770517421995037857129977744807844885211128470970039750583225257831765271383434378255768033476550671022406040950829336359672301370677311175385138912659918429096403723881288824194314540895124164477807101747340720517276695626026666005725741170077366449597939869206094238574101539968811179861169806592695613447058238899055046230882206592851062890714907853493718141456535143730436625958428898434942386274490876664758626966084497756754458951732020445623526441842456591392506832389513936338912651729406481721588030141765883397029274388268505454533655760988159275709365468605717373609732697650457616924137267807627496725828740094786365583840384635435710015926007038209235552242865004193103531016365604891804788471951335154306949071481740621196453966282198437469587589361973696107439658497944269325933435180690772434469832425016430878993051545166235449354148495273936783186418798569151362329222877629470994292666014278125740603905600063777142045332637743573220701532591604007477315400768644042712179360415552677547394315854005199369332437217162631617447247433322943149664079733381032446026494330779332942609172907972125155200628029253148820609403583340622981938397068329849806145673978433271709736318132440802364403636932545709416927167373020257513921511933304857374883815203581924283685078565190763476061098079964737770712349918648172068279821907292886789470276933821317663828772230761270151197038007875001179657693536250484151051792401274064155597193506572140243828211350742442679928766138690185304394430159495220264339706608572571642616704816074141698438574899505014461715877455757830555029746429365964064579857881886163805654672628133966245708209325354817939014344470460221292912090045266557794687912219606683267639944296980476009607598062388185487880663509009555999190339692352593298002738969546460092433959387277655342183403626859967093413805534978731328000235102451359720618615025078083438157207298253943866932620819225124237253035612843622050307195682749763891680290613872078844504068066335445900754047654526998157149703000589585201478353512948395948065836712556541590880298289935502018293770759393146897421992285133890010421647623195365317828433843315122272739794825068520004613146490214253517743768424347573914448222046584168499540029094487544152020303267872903849122808850686602769596109771540233773328927701499047634471159161663535834073703716077657107385476832408699800393922018450580159898732315505284098422309047154341998023130799176631932350624280027015276849410192724059637515820729655613549565105399932841164182196613511551069822744267507795367491339438750903883429276271579542421601292320237606621024864800043527798890851549629530537712728866941859021481992703338144439917514778721403015189825123579058826274697532655567506738007464900773158416017981451891712774249994531692905292601017287884316351322680764788034522354779524720169284076820340075447448032091177940615243257011851879482945740073027463746067353740642303082948660859324035026631467594765619471277498519798784080394111064830641755144452369945366114625288261403365093069472989205175509708021022291325517528789804306937798762228680115462690098912602191608393689890280630711913907403714778085529749585859030117805419172290387682394363729061252996614722812249328006749376284629347558002313636190141130256408302345208165947139593897933931913452063732458415675697322857276254009007606893974518196776816282737298429301386540139362310500566018865298901122581108820565476612553519831030213355496254772747483483042802447281420634647565586827923628517736777738256064568535723842716550506647041227688459527421626892043890077011849823756481996087622438340954435576109659684073319315137053602992581795711591110479571666676589320433631790831392360408905074952718557415724912688310564551195233773696732014552233884789880436593588249950477569500781094285873284423227021821819209840048066749997489752724470633653208436142258457146917567750912120433292984927227158655171455118145148467895393477963545141252134355783776613935654163668382348654684766060581067458762811312967804405763938063281346418984732308370197692551167291134419917525640006169946559493293731194492337959387776203608653874366065620359070826576166562264658902788450084633326279517812545655325834320828943084638388593541119104634802187979137756685561427344638555339010048835812147257694634525787566567532835067529307729917300309536398474690990858431317110906713497002767941348058760531472315536398200381009834671732413015891739111530099201990974735531249788849088922753226555765933925319171507718016345546768478733813406980525625003669699751128167817431051434767054673755752256055922084703604877964749205578251863133407223717731218940294549716810115794482338631310443895099669171155042883494834897032169710157194943255560155845257150193582052957247931561964065596854255447570035359132276256128186286383797944667423219358898275514832089459718499490504214216888215509246799064863597100464684376827518956426689163717910337896494008041207434916582354843343193215824740942025456236656678654359736611271859702249988475680699455729164913358148997414814273586786368809981259969061304875832292917414999379718715069492525997472127300074478542663507062967743781226672387393839196610458965777087571856728898608844705210742568898959906329585558003863340644287679330103677327280806992470777295265564706207600848841196791160214953224134592075351797546490104966078323489820555057317750255969266062649191895681500944160744956576769834890050329794686673749362710599028231893197364287414465160448560768773475709609289435460153602553348065071743800694974151610250620510188580838108876199272647749269135315959100448831206668781538338412648903252293752084151049236336156404516048674925043821876433569401312003600971188324761264956344219616236161257293476016105492368542470583486473476095647255223207406332442775917791581643591738778575949732980167944720888951025569735687230855684654048078115037919006872734523793299034158156692008384108016835018807670295581234897005781971104343539607322943846439925979996754988289872892721013949840679826162172696813141380869787162331388694630218685112406395761570170151600757825287760685227074966932481207702021521363544544689047455769590657920370706739594173067679159955040132376131310585080490259909095516704857693264103653008383146646569088506444499604878712892718181925938802471208038645721808261824762844700799937343629974676472507393772249313688387074876856910077677684047577749978030537809153459194690518136408163311396631770534898438363194198753772106444043822344592904204914842184097107505471980339322209393812086380403592778076478313080598545459817515883854404301294228714245924641618922873223085803921517972441387531248865659380231927967702318862841040715083216612510904185886197901826488227139543132809049909273990815067409255870373041572512688354233638276426321380876870840036643168095431102329549116380953263038173105413237825175128717801304221663512447306658872607714299558830143994718077164971570814704177264493685676362783566778912722953983182700676364502915562105843546044410444695928053939827176311711100817650479106453833082853359542214015975006324547778376355511332111518264837478567702067035314047363354908640590786265346484460398241996291622976461570549655452589460886424418318642811215932463824905936119239905053177565453100381345601783935473443269746393794464262009674367601701381463340820879465349541569421214569690405361295585318505470846659452291118648627280352749333167526834263817703776597568962618349219831768627835814027937278855861493643954792957272543026436417384981696576644476702938452609766909478105825310813859244556178568861312708600746180746898421141419846543075462980208491262385785726587741650325056698053387811417145740070157140666007649155721839020239725015345570608273899704204001474765348934412438937816664250339381660004960917231367612079810733696855800564896317844156743382488675803779431684264331846634857082387419588213494233673346267863989354777919595155208741127951025290987204585535679365521343854907158784678332011461284207472825266580317488394628225423911782855368592093730828938954313727583481769796609665301242440379929633317521695208856434680050963140668589422019670959017978462047163425771681113837080954632230375423914735289297985953786588209266290344559562723282733806533672997339862174435538311832872772521246015062780899714878965981784526120568698759057300372610429351081887113738819433769993675366463538731046873480903520712750711053557543276135280052235031449007033633150327029126665983868930972346980827608833173328901753237148958298674048842646140811486474826735282631285343907860210602157916207082315230950667749753844047780126642260457057248712580215380851687586943572751613084560562738700607844208035414570342284291480357577190548120342763725422868768500774575390164368464503143962981659100270686305504825623301084567241408373166498546940228291900283187067185253833396391865515189711211394515704783423962369226894849386686318733489808468387601510592844151023964519734509022730741149832163991822239522273138866973200595334205241992624343675850055694336572506178526304630326903264289225430350774872557857407038966304732544657920006012757572003376395928553339948363681563493017035516942495652227238235371950999085037703521343810441504633439992998798172119717235600022251929841648602154814431055091717222645201286401530989486041953460769390511538802739518697004058297026670180630821794943377592234297461503744037916814007139486034450217436570793012708361497362990408466227065045355635497525948459962079912001523375544759166242806985774765923365090404230786920693094568657313538381483780481726329717896679475198784592107009340071240081164302991405149959464630370318703629547217133741981330405003451054991440176460023079220256198216649287200125392433956589853435190610405674978087559694196492609254283854020603931418013508576963215750534381743791728232068305868479550796165808106597305083951031240088313073818350927750840284357773560246052589793256924404888331521211567740433819167831231856038056439810742430384269952026711425185478128936003859303199352062454786891518621847085231844513583993308822398954263104657578754269105785814086640422046417335515748526660337089159144842624809401882332435046965207628158350675769003564568356413274082333518936560960663597431463704254104970327453538729236983710587369505978107629732477883576683755076735334602620450814121573873064303218513289015240220288094504327380741818039887823297078896170434349899343238981281298331500853370778022310118028402061527077175021441206141376905635992436930018166475960831238212667801589580479416410555782066549797818818953129444787424465820496908445110831982495952591792456569980805328549722919747196443709677170731047273864265085387620759110406983776272727253856096046927664748683127427020488002465689608916652537157204618263130484175349281417480352371361773812292035246699806528910723561302646001837538469078527350255158822372834743682576281001736806585487537057276654185523247184958626938756491975435641596377636846709857438168428746340246744936116405011592500277166839544120638356353825446776398133955976102322903671936531394136712487754571174037724859271460773429494978735823442977777112636739076469170389359979060451367295165777351281836703802041445973042245195271775571801795269407919282320855845451281764040239556080620204079183552042002095056913280179214664214408284926988278803358195246749952661848763643731483195375571277041156308469434083173020235498312736820026243712404773440841294120376569174591802880528264574452995948260562363703846229279171719192929366342796247688035422939402753342332727435004041826952346941253960611910690329972821995360543077172538652714760990672015448318038962034197691746601412480167467565410047314519462818691906234375567417956710732300841660067912889522368607550629140268198339459021487461973037332295324960451008807658196705282355462104168606137548814395055832203184872030136554301738166090532473885563935353972446435600553427444242543131791632828542057239355125233535094007679229312574025735592118826891968905228168573438437116658559598701315049660597073931258977936906195672187175814804542890119419133066011401644593069402542033970065656473897851520030731244143788733241744167308802407093038113257749938100083567049079837028134672359937683255505625637073442289792169773579000425137729628948509241884106229862093406466004254364926153981734096795206170638727901770799010124340034147568772781425953625606682454007993742576644657287847123397347695398305974593499845057939530729596479196417605100343498050745620145987483593869954197288607800949792075420840553154780883826641079425570950292828402638988931649137968870668241315375961947072667413523275415467056549534036583881134967162186616795452307580588279069614093062556186554566212635780373808423305925941527291941982261020573256444620279801941420412964948977866982392014483070389712295978665030426441081199970584726408020455575225509682964989288226094427758457966869275436750120923500323089721472662046535133302742364546605497905637251098566846332727093799396180011104065105718071636465647436673369209203188725792350471410717738004820386386953466835662614531662097108810333518752590261651612437176227660947060219660279083183513354825707273329990695668053404509708083540823984632285091395707591607440985490636704188774833161981744198554734543566321853378728315369839815607853675283320544332194521340739888036184627352480116120615263601400108580811645371862302093794350339632274582046602334079123968063244504504273331782103391255928285478046752604194770669384530927723075084338935467460031080910614305502734579873810820221562827638665008604458130309440123621916705644649296925245787459067873806654671216911966703317172271038889472342340811795885791308710280335790539979994040117816349621441317983461327967483478505477164662156236147863271308688896934487617505717593523027666763015905938591399648192347724476414513054206593950183717752307155722407796008035686074818494941777026301540956838309649455010956463884380422414230533021637143940386511195247058545614006392144590531829018238787693070643941394122412642905959913819507916204041903303189231633979952000652499634684959340144386118702464929124392548427136880243987156903544280882048790061583627503276460298269650486527409943540306006615204413256177562722141711852347222014669947195677786173747194398193812248611288278949364227831929013375309139371360078331399089679206203670230052903668786189275343998275473316812698210751224178891072963688089276792206968248059308179076217506258955710805250823428876452882234489606888196594471916641395159741918840793058258490700737599727794794413287904975832374797548773181568281937926639774966050400759773614488875273592755753338221104623127218979825409894394098349780451611092055057816898911204973788426969868518717878287109652169152694971165336948506980470785522109562681534371726049293393229363635128493451938312320572836025905192705945732243393527566254428291839083276088877206850413850071194401364878926073512326720567186585766607462453099485178364177080909335639064952063466954989682507201709389726766597932471568937966775892913802303592940879379781353261687238819402434757667269319855293294550735059041613019667867549126556557139092750560665478267039597841221530545398488677581516014757414585766512455336917050510912916097356829231436015592004423664203964899334759976838902261730422999751937373749218868235426241874229955754400804827925606231122420725471334173157107233877404751215025944514093548619087807396102115790386591826457714700848286193502258435192326302411064565369048736720561929798942226705441062718303796852927609977768082297840074586644923687741739570456474123198831517569528400353011186527670430702939748494728362945750831118106780710328866141892200232780650359494450448828813944352165345097188531582534556188537777287129254095657217012261324353725959241172264050659667571504110801327545653220771919667471170798168679523405768702586928304870814727534062751723360126126467444165548504071185283013461940480754313885984657897596238056086105272162204984338945136603727157770356669917476490952038768971076659599523652342069614936968600861124506244479879896200988688320080040038798734553666788962629330730548758781846757874451610357604677083369370740900438696999400148530497136592516491007169638896806913377488764449418285819114791685707208412141642178176937016906136948813475230513004328571476791957197962941168624120692946134381996249985474656224726495199676417958487368539379561195903484107754834033889999445118964741159771776008068116233238040625202693888857767971792303429251296270476042932335419071097455220418842196326925653341098262325962753736983201310470462288260318197223878329751687400947650977852481657287516506867940933941498242611756940711904065142404030028095281502698427489132077919940371311376902182013130151019516005727066144934161713874168812914096159665298718887539346042599312886413988756740512966676868182202215404484608404525196231002335117015676161219962782851638758511601536420634319749692619444357327024510804406315678388755863319778954141489139669256093583104346420324913790568248907453626740789761481244033352115146800082338495485651941558252941293473185164009674937003714951500592793113471687637936265803804156253355637442169282508229911555874532224419043026051317040823253686365842023510468044252755474847767037652107774086636460980386361260248078194516623517847767761601517487400311797107530972806653975778409094028350454873205583967882183205800018712203575066298147850427821903125496910488816329164060088414659495390766776097028930585174435830951729752020959939442198196102481251139731276352687877304709798671044957199420836527194699389422142182523388027345330770465112674815751379799055936642132217650051938473242885081627995416092646715769807903221471861146369810575283012329740478684642943752461551873122379953648528690897340912072579827712995516184855887265656055234131687920251163141126323615804851005194575751829988936168759516997479495020677053838826265622141384439205577848584987295988760402818830597028031699322312409371697486170507324582864633456496350691390407006629397602696808220173192329472151367214721372073195513492550129390616924898855145359872581046820858258698532705370014375612602967398812340735268505717191141082295054283176000961070471661581195822042947805509275307215486743855641358127355943176886137981425067768289795589269977983325337166782464131260852273042614446482426951775920970295149026269198341676170640561396294106249614494862271363501044950387833867083381103329972176852817306949888296564917233167121378458881165980286620401868938528144742883676996601999923083310149143823046643563576903439271076804371495962406788782806201574176810976577254098120314512240681635955872218063133611146680066072121153074491756276888285530044338922707416493783601235208772607050460558313469082388747663559907068902306613831111432970989884919031816489510303816048989190456592366939829502535931449213615260659933880943042055405110371845329548549411929473824296063388525555263429033543947187000276953499974365686559506887312403010275837319750804993024325873200789149375890396691334836920293063246175069299219308779800200341966661130417799524619643352391242264525645561238888174673777857076598171637662735537008517637640700278366094294614901230136994434275031265397767012915405599717240022788060827453525345405914281391019979042876353639876779646191798481047601385291205379319319465669055681860208348515671374626090658391176250203612354776103415211757441116885305783176528986893606558577475482716532039424495135342854901030697591918210289881223772899611697487293648568153316641766136163279094461240183586518368725047677124196771994194854012734322983401744340977300114256966592994950647330069754111689257669570215871146054376107593278406446145086425434958582932777745383481958808440325589218839434444490008808219302290405747273392061813606373988594239229149696544806302879501175169997970091759314546019946423636000122887462667908220760258725492434742969113250467856452233138458371966046726119312456796693214109524937526816005322670721135038800714317935195789856607150600858322307242272798391420557473468144639043273959894348691146398748551010307675682557702460413181311298889185272213120354147511088944542780296162939038672690165491002433958245129437397636092648670724597488667302832568722142600694887406314435822141072825576586586586058578496783753096271884998157392742746178313636885842423569892079936977619876556428116497409923808723727388298491217264716008573410708030724190989437734035298949441007607442262781521115353402018637168627886483933464504143747586302537993976922045659884077180332212129802434850364295638499383029911798782772590457411620258950196876392472028574593877335768464607466705584071225233094381911951856172625037192530342874323623470998065798494552171810971420916077468118046196516419683590621345459584797699742716998770620423741636761683803673808194796596042929911470157061452220756418333534401175720122468546236819923411497571401288424066803301453844739476233234936576174461585609196025609511122603629016831434265644477574523644717970130918432331608401464152778668065744609354777721917778231302116352349483003906263160357320652710753676619070009765394796005965974693216463416809188827760015147937951662188427137228052916858527301370555227271310927311508213089835389016107977367915508788324839600219739648724647270681105491356642703387318278467552283178757925864055557634111251925169885766145546523966565404393252750771383160305936320529071508429526648587989476327772850628281825317426689839987555838676909941258820719839235038562879006925743965272080235423697179490864295474775044336110524734297487068839896959662028671942661889054869227736701613989994799383602027011720699045940870496404968263590071305586009427550314412867430035135197756232990001784727807230115925429439487296085130418627983802040563470617128958890211383344460985935255451366540600954685359857810797139345672582252958436112838032960511263559807653924377728911301111398176243505217813499466279128003514627150536116160336364694367105065345964811583050546940405269437126289482435086761490236302031959114228227955591878991331662188446343821623398882928559223634357649638895108316857731853219759199570922113249324258672421077321615586779995887063945792435995405252838867550081936526528536142425453647274713645685149270550854359903616082188306169223797477073487068468818150216376969053840879774489250894281553712514154865642042299136765420393204414774181044253040877992640330720492350462425813902106747110352858024925649529304437908643633839039167705198336876769917213123757818193161266528889888230534658774688601115882408490154013544857191810411718756037421450356105636905713278619111159623114818801334535205149170953599806758715983335643326490026114847030879474635231727007713061332897970511690313464379281140299255472856879895627783799401781350039966001917080731268383346570595604394447773112222552391244804688278448228708313179695446861070639037792726516238838956969216097274016681373096901239385273667684140536121129286421364554834095164258480555013251173659015385571983163274875413135090972047150797033130952093104990647976245104086541322450725638695682127811379231496771991399875679620070867109270164091668504136277281713292020068097966067234752155256878835993540655754961976521022184930930481171752286980083529949274419560034309811900570310685396121528552368383460729462598953455067880084211013913088626487472611914786111403528242412519730674112994714631455286281011402677317300104332669964608106029194864652824465146416598469072185010958188651783139121775983884284152595086964294498608278115492160522276376894356759331901702293212758305494723402035609705978338204430848200534934697191445763314011555809843023943364966507352799135034408097045966981290089974916421162212857279473021858731658569348617163687682584167111448736569180682557527770178149839246413308141082864504695818256147466601730825642711657710347551509565078816462050151674000644941677747823951733658087665964783442293822844974199677391699387232825775739801561912489958691136278247701270741474914153290759782892436486385131537522659269760097118253950525401466127802730498700851844139973087144549188649686299330382474427020956384710207756708845234862021093933200209343821354552022497566215634919608520298095875032687555680534231118527253339262036844969806625654844672882554865552238564300572060370200859045907765023228503997310758736054501881547390769984680979999774590892740504803723480495191821039306818838028979875642159947965765342274320565017660764196101892890936227506975165755127099324315660584174053804499156495483392994239731032805081354569508462557824384509896309543060767389626869854058658221151206002188141623909076793722034897905652615610944518206681497176076298360723426532825666366067538890010734900172375680329648776579544095028036995905856246734392280340960982226574767764318752101824177891083621741127900062538449935082759426343508747070106518824837012733747980628478747663325087674584475789244477252353016144844864726300397084960096956108822359987886467594937086923730880419010413257974484017290229627079571096943738340599756562119748741721991278527316963404861582439171995581542603946608031226274528560841147089790408631363205693661663079283245787709151085312232252212466174255439887405688235071060858860654635984103586186957867716164910792354432741115433216950299183896489328264511545776292571763917010756631465828974222371710803681033905180408177328224437913378936552440176773276050887799174592532264639916961370141172070139649211886946246576530929928444641444653324358795768017184901696055591884883962123681382139871886937042837580702588936935548849186839732123767865278861656301606555541084696125903968658228496493057475571891402836273533302300827853070106201694911861943213674331590568995926682217680726361178091943889480761928829982167612491203518193518951598642806915023924220708259548267925469263350037346209585969527554899046517338656608911587992931056988133098352408675933114664694352465934782500480556639435863234848027585914958593286590396977543739436767684751172083331461310976912018123783192661942351528987276546628278333028858259704571999735269995002889324999912580225124390062995736372550417737180637537815305718318433758327968661418336525199192076195506125811171370405435150700153881561825590361828915412328337926871824967219191864368306972217989730019472863421634225643991543136888919833767464994217151975068732474086484599944579027150959957395592824981680096738531088994866532453479189412734427977397388596008319834832426110015049274884314199207436502640069607807447531921435937305966076945585238981355895470030727655649138826683884435604414304323212378298177074480406403266461497216671342245180988622889606755654909376272530022630047854933695635006661497956037599190718346268973963893177009627008448581592667215641680136971042574312086957530701440831404486127078779421309296308387775116946418672330951494336746290462703475325431494820880244148211294001014210775731979147335696861522900773270143484244309044837575887603332115659506142046605736165943768935232309174377090005672265371831547557979291946290739598558838490115581468621452147917169239731637964559304745249296293842735174199449505315855038126706034977366777186890107425681164872311316730768840469023757478385896213983157700196443777954517556615139360229698558037433517496222454190126332167531051242730883421874751775417645753699872980301527530771485998847802611377455232303706762031771069898149638604475195082707086441373916585517327576270916262101048843487535968593059330783405178046031654562838141513671933191644130046055811178227746704047156460210798713897598819784173773314176998070506842726719558617491933997120005480788837084542008844607063924280680081392487181470180455164751108218296911605778796643205060753449757811436699586379539427517320062423256804788859960174468702589489558193817461314650437023260248553555513707881691759753397589458412546339814049569787152991045614103688482896332212983987778779522902841683811622004985969417415004542423912829899637570075423896029204577844610577460048835179004046943595099373797186059006848180601192580622453824518728077228117103942920389519234567371852848771455840299210631280838521662227068308696838149298250018841317095904678018088979978244707296364232625216987850270664126502907271601854299845188481070344147179676067680937709397412358629016600735544652002279464205334628168160351284815639004529549503876407942019799566439018133582802610849739963326797834939238694060579751393767765468545947861040887941604085983709848445680803217534706116124340570389954985521441482769404344809821129395473387750634709413943352741763851304902618140896298485782833518768664719055097588959945854957634607557457943135691049335153086067921462817190172129294429739644925662493601544567009538365684734678147866091209341222139986290023021226447532964199302523828583744156392578635409178215610507858410728893918527878992777063673281466898780059133958839315081395492919608472967774713982158514228615671082311079445850099945496450600075145344402322979389419027831594094990281769961712961762479025455196237244809090401878754556399703964998933462776802467993192154807780669519176514905474949643922583221582764445377885063523990485777177311983928960883091321276989319986438549850771398445135655047401100648890411334904988279174193985429712694540758146616936451180942214324293327493902241453913585721423088538102590449900427514743112855789490271631846173344854755492160860775591455250747890615029504189554824921137785732559783059055148856920087084717749179339712984786455127429674948294953359476772696730713605566019666534937371619602539317605247538378281285935738073903073780707342554300177401834368849675260367268506835354900599781605169057163760484788318925908296340442663521023857243739386812792044286552086109228899008059586069999759021174986757532915028086282005384309739006740589255874995832108103149929447874709861844689729972484234821318432950805644281790181221281576539143881068466747596474303118806894438755259372499206789370947224590146838016425842010887630198332254000362717724416582672761597495157614285296756502338431870078814942988509162401807453601288576832492305258875997717213242761112810520682140993400421517694819956942349362034462118333026923440201742199310116058627299308407827355206074107071342564505829783876437003213803268832441669174931876483159434470395272583377051767973390237387671769178879800585293384722507133705385452123383232714416872341487157555391437122890065509199062174634433807238852088675207730170998251958505951656983557610943470198548493910315934668502789103403247132618880530692965250557222798018714496339917420796681277131191595079249941704380811847401043328000324592330093930416282390214079535804866257684565432413773260359446479219523656242347465458193231296044886712646759075421203930821336128946857661861407840065712018390008572277634979543244729768921583026384784255165631291825483126266115811283567638644565709866277371768108931730200067197342780822441768819008764687639171704716656081391720536528729908801388231014126262713217479113207934985286603554574146469582072712292112729359516027248761955626560263229539096764538700508849181137891695640223206764531855486326214215967328148767797573820901259851071194325294175870811028017913550639468305213174079496377053361437974803347910782506290530185210035466523154602533724698307201154795632601449069442852405708964392104454659884891657756853902375884240627863979337638654817510775815167255946409519813728705248137210911318714047529721110882909624632130320251165602600953819331218399353383374652724702072837688328326066950275532358531311753001464514177616697565530776209975730795929179218207744118923528024423666000864532749043270535316279467216754292256179795178085023650772627434127493421020482426423771890903901522149598652495642702925674171421898763365619115597190260102000444223091765559998059256691683256904398251368265052372918455370373470525059199662664386540757143998053010362968673762654554105973521899081896996903712722148383668287128683970660580169348980486656062030709462442313769278309219232912756055790335045412720248190868633079282229705901580457412425609695017656713602650832519338623026293357904272817844430668789284558478039814315534883764176923344922786333767051087156456781720014888479458558260174046871897308194205098176800315163305161476939247357087573844715424024978440083360373397592054541508161287008362072466542838008152793034585847416909522715159270131344116505504660645538709634287537865586828989153155659515628196367979245568814599988440296780901419962336279114232896583324847954963316085762626492924782447349248327465635089039010583456849650948153124056178224609273356583420678033210410028252809191085650629926579776889849197141814236339409310540634761254468423678485728454325880650765672150608299555947215431421439498610829918569710913704224601611624448604338590671351911475477150924789819769510945519296073307309811434652510020474791293474500183782523749209561698229512833878500534679364438803111555078345042228091997035605455922295019845886690255334076257881611227011794496700891436649256433444816837834872381126108406657422975101726868111660355577377849310177413181653789270652175398598991498133301944030951929752275973121357121618540873092945468515243293317502060236998849321829553399388252670918679906551195808902108933371085730633552357142456850572327438892254972588627629446382630101163213811920800437492515714365456488175044635448481363336879751475589152505346648656354914268142326496986957140767442473640454551947091935980638105085271333516245885763447650594928661739201933195223203629730050620077502680065154321060821693116417093493242614908400632387803053190727105224239599508894631512300856861540790729679003377868326178498443956443179648326326745329849779140589184202585748581415041796970666694330417813403412835114132853818848872658914892595761574975306088331769244435270457445626751578495195682573707481155985952944800484114146612576750575591326663815519560709609399539133143607848137997878325313679781527907196510422611169247638935097471746539347372574817515385022377872853418478188033410909597970949221879852168191765713564715148137272621167695714326128800866190868052470750674299001515409193929933886517818131716516380277241049274426583644408459886261723057084110037647534056259164226428133768062914142627864515253880534237269152303790173158934111127398147920437804223319828101678562045338486259612258703197943666079112799908033792893670038514981876636104120953578525269692304295646959646384255139307373821108229885075348499841015236749232701326153926161354430330034548990211281419911988524847551407088468822991308387427542655277117171448029566543364950838885974139621925667898485997070188885604036676689282306881500988350635034753736278056150480874761363757694698166908770647682461208840841745413393265351727315231421224084921112566374000720585802418917869747248972827020584235443477838524052220257688878713238441645861809192663720550467923155990415585856571552850694997004271365590185461123228361960971496846229849565416939459204548144347386332542740063124421556461179924768165725972566966102498805141819789613558270100482751731377753810170211821353945650419600993195347981558972927520080073295260261475451333093546584985917960376512528593260214807504482219067188422923661307405728929630074831019245789547182230448119934357225216781940948179659151921111862285970157543760280739942666665991116782112243212414220644930330284692405606316374882942775149816774226648524401366718577146163228724600764844151995324052651504744259603614600768492764068440038480871523591552887012057365745264322410367218459022190854986486964665884784983694547091874777554938220307313722952477743698980450742310826041942388128253927429316584802788542838685480387416103021727209188433891274787359558842697691075828060551707885857542928059212882207971170377108287440590096415618635834641103603880146127849079963000087263072654836990280865634603165963365207318465039086030456227614856953979057718373281382792528511105456797354099173991398557224457741915282872659312208821681546066431889887105916778608282532881011339223096507287826335607004887553965527200407304181321408413580109353739263538933192880037236591381020424644971315988583395899725424566692588620878664531035868677380387581094733445302647238739823869698657250121015683395154234879635415837471942226221079589254060403265131861742704388586993171322525370006447797958904359287555329334997986307592348266682072214708344949190857394117352203396751293613742357528635348112907511632013990068974520069204163620416875417188178659704491440250827729572669828686689990072839849935306478376968899472849476628237614185201050177749985175978153446411852264574903045000256374641514357784895798868391003687042524826684952466799442273728529900254154927781038745173060916400553809063608304213126474329599686863690229835378926516164611310181292347149200206406427104894036352607665486015704342525856988227618187680349180802823286613486980646664255321915105153696350355135999737801275269919468825663432075192216068078049246473798921830497891810582078047774611860777473643042647135753773293624178742646875046453818932390890067314719505275831918178645116116743735635700482884298612624754803089034181119561391581365551058807557857006061179354290779115977136554365151282887575768854803440468627724680348739717197399932129849528378485184768046977471659866353340161353510352386286674832331247556769095805414326710976029982172214789767707722004944312037858574529546652940690111705994017282090235925161210662156074101706470499814273398823048066505736697158157642642997865573946776476676285546072610293874369063666377810172104627319916158217880390956259289090010810715698854587151884730037150779249753249774968562067454682278294945861677481054740678607740970619491713476373778871741771127135552904060623472376832053805968525915596153860329816927295039272787912797417855259960345543724960753959353242168292020124928927516455657406358579281404254931253541834188888863256575055355043173034227669825851113830833449167465692994989023533307982323984354242636466033559633461870034702684475015769263744247811981158335087791835370272569035174938700084961175489374225705452740676652337450573604881828216384791922868043515200433236020408924604360677694063647322280026762666033548736412480680910949109772954484288755724806317229730380743396923903942155075891001808268085279772292676255257353984348957766469901462289438546163148575754362332231011158979931349522097782602898908861857759349403980936775409447338816699606440575860033746793882836067187485954012565227813873964359040436122272397478287539670976665826584716503846379094631432186093319115130724041092206130007093883811281626069313416242818585018593033406257657657997722427843544542658144872183563679023650091028875895503428246422073398634093440329577404717720867897544280762975292801448558773433143892691779081667991259416835845708733638250869635892839957630854862523353057418338367098848411097179944925281632098852973580990046586876107297612730722990585109127103741421278053869150566286524692368562195319672191106149810803682619691000248844646013933493321694703309358519714007338833428418205539500888936446706857640097443816863296780859949924075630019512295004010751434776933194627394006594431665225298959671570933516534248670771656491438273802740838648124448350988774085443458771505584001486689182869414116075737558250274591829524171437080851844747222753008261769841500475831393057896654134358010845427287249640955409708802130065878409238627144470901285177444645310649363487345195086336440664862090052333592193818094418635905914570168812562505136654105150941491455280948281931055983224708551466619726471513113772134365027492848015576777703028736116052089865984956626711901005595424235650496698541760737367556101556598762710870962154487205515468862306077709469158662794211224855518730648137706708583569763095812955331466476810712198657020716265981717403678694334784999356546210082357664705252495380197355788130858165525269131819391740204707116734635273489725372223729386286476414019876875573789793760299171553865259089035000580427864269316312924965820058060734091755606499116286310538562383195752638163349076935555059949247690155431944098716972492384793063137315157215043504351988503650032137499570062155766892890101775955935068049909306143130948367437732860961032624877406197803136142778375812798853347287034241895954204979014682374398473363342412644352924816009061939378863718160622025193746141560903956011221858109062357126609772604368786653786869699412151327576172152244334728746228468429970593819721082629251601885883388060760771883441556033045926185146724322195263316811956939557877234748899379131466485980260145017261360491402297981949204006011483805944760008885046524871424702746318701311268126442448764045324527759539550058844388117253671014017865693889698757009802600301488312306631835633851818346744899124082444453045006848228467789647893127544471540227278681001250174100642559459928845516450858220372041518185224923016479062611440576846324353435620537204356307457079378683423721399694164067234913248759704145885055609071408604134491456098161299605769033111923727343615008352587313743527480134313689806188810755667086972844415956548554841865013730303645069911298085118263707300837155302646938382516860932169761961856118607444497083475416888418923937158150094036745042582752182870963420172200754277530781066693277697270475774782625663943186192865250063745748616893005311373889314915161629379329655866774110474068350617149014330478108710099545091217621769443028411264815482185998692933982839941036275636045636190773711963339590824148078496052415081671970783231145877183313039250137361361806227315815921864181814795981467683203369436163548864987061040771433465707641396450451759528333162527098913685787975096029627389711679847320565261914393892412287889649700994625374199372246945340757555277059078740574582793935662483973407314276489594750395839856213237069364736627614829199588193062861956610292043245632564096657989838840847636157699041749158729073084236275947271380527420411776331242933763767031771230968231585105501917487049856612094072208428487712053739866075350973394764868049435084353976511046658800117952131113397016299159978738644209258201553205990565403317515286457753853062568884851042111300920613137925988360506554660790340339809294724679918824166223181521760444895203446150515339171657315616280911975520998632878504325284117071792789507011560424300514018379133371679258737411388335851916998709474478691970290246466950529689990065574681929526507746762894206907558832282280927792465279181532056982851184622683577396137083959567805712222845270083536002185336389987888320365779761257789405085649063128630544229811573822759640662308351901353342649163520925216081014189300955099310282884988006147866485071189252291402114035317202396147310754879757612520991286517970939225415175932014076878076301792734004597337656864938282815309911971810645569109484483219810320272440992253540767043372235423540446314896207299397796008562863169940929125555325623071153396427932640753037577739891186751418662450036916175770302795379393755815638534559724806242728357420331304404057714688001917351476074733272671651147715860489164060489787420508010531076480014039236138510328116613576559137267569282691598495736757446122267596480114337788338225150393798674004462422077056878117903337059687117779658106986556386235857629011687244617381946595514896733702684488210004237461916102682069884854938676913224596237643851080419999709571398643041475504706403128754400136008115135628531405069346128953956296813690008823752749116126644221359003501403751313571900107841309570745039124971367328034562179474489165123430574022475250300042002268575082782525843866871284154155839325119376799000626434319613493395951825165855598593896548470671636923547152525165067049360593424077997570592758128257087883707471846126603690718483884223995351439906731580696208647331510043010519332262299161755728734711797639552612167762171996152027848634268141167007219525229531282294509182064024364147611888470440247043941538234731788878363832356709188803436757696033558151935726282451527510662315949898784780014839198400358590814961289894202036064727515356680117038265165872606990023223917691710531054561112717900764511305311270919971808787366278277442800531898540860444270880118735930483246969623106165130590189152213994654693868441651183978286261836218128313239552518306965577852738110625607397130314936571516028310202467648081352773734790779425062727470130123519280294354795488369249804277766919956523139191774110084048011969541942534817623686850135685278223061446788197916504412109872900154655405876213321273612583402540778155976574009685683364112773882580789696495755305056663095977517109680605070682203026399587351261572260602615128114326755496992703768806087179393572807883105354364094860310657877657185747118753894631343318022816171856998479678584333519639075009541607363256851928371066545375692351536303428162548000868956262479787959679555175701687612292343289235826815523034669344336558720329163277687331084666208701876695607839072060433211240821864600224928697304117781670619702570563538192655776597760221495030413365317081231908333248759757383572393657149977320399255106328772872018027992330554328533951646573568784115519184418066714203693669519174906396855677103987573488253326016565076912264402372855525794465517421369104240994220802490609643046070229256416645023602848743957581230048262472953667610546960255107096800155951249863050834862322292201713973517117426219281314872528514540002466233102595522250898243629025901444379047178577289022986429608076119825184892867776523857740462523547309051775747442166169607922786582671208101848934253882647974794737635685138140478509108653348974215608667449089958185252229262971904222585580287343521766607809027947451085961846431044287805885773346142036038969435870199402760684056874166675491045823581353601861730796536453195385283220236786382483278535759169655777314429496199854893611350082569636275227113021783799687094535618577135710844212517226472506528014391067301381732803221280194066182711202134768471158472375754294937652550806667779810407044383870991073781693134388502459093611619160298125919117647057044533428879357809392979395566490491672170386474668398680193376453351815858999513024675937690643415702152408825977760353427563558280661850187041076973808743634645611300394524378516961878473167157634247905545025199303945751744110201510819754754337943625881103624246667432174713554082203241912193236666195977990955791274311773889882257868788328760884959448981321506959418145350007044038258054113825057375791724637094044212247918782724052830891930489186109114001703702864813463274235467630153964767888052977234749328806852809917924735961703846086272282507804968945058795391811210940476881899210927030017822561720646564762479026281091793772113230908966125023807245718170680334604337015338381538601352300522536654586556550000084227840284295282621732236947866863024678211304363455308547622133550011496171158555710089846835953217905757662190197729003839928798447909569658950683670128723814824632096911186591554819297355603567937198013775640001613096142701499987595882465131027557605338171208516225556476905829485167925000537744183439731214717050668272516735322190645664776718229561083729035790291249124142903494033769798361256363515722803568963798431630101629811896605864689259231285963668027761508300214893262602137684279493664338424529455790898092968140905649729529078941632362086780621314638819839387337421709776095394690019403664559837142994509732993211364717312279188035050760844239460773196342177152673284431828812478558585456359935870101032266264059909997234529660009670402712736658324964241810765354524684747700134470227022314887862298928919021677695084694792005260039439243110092192786340030614819246626516346608038949370359421852963116463296533798381556677645468931719783692764810045218613357656995844729769771128419506400177547196985994254383632568987421145735659082361503334616410069478324929565650571395803352315248606203790770188434157538759563612425781324446241726484485092254560555947451456237314266132702180519061150591433344651568408832804425725704299832051945014849571488701624333360182226635459582356398285919905131825001619478332389882174081183880345967893046275011866504152372416767627863761391100861050389767696962217696827126141607451987580766339232666200134739169994545605092796424571096518873471215547575610439156443985290017861964261861229143887260622977407944433487236158311618382329177109694560878900441984470676701441164171438600503277242415840614611375312183541738127109973139179545058998980269176175135829066052033293195641436642342495083848854611867138439414682887226316073803497236323601700562737981976871421580811243741033171479857438458350906627855286238033218975605727510231292259661597022906450537346805496890438115470017528487934410609239515197359331188335794611140481631760366156892064388246954479081803241621809384374687627948836147376709035093218881510087092813480422935722491215332073497002834474093782308805204602268724448839117458337142385704063802478988585118767955333868175459169731561107023152479390351266841538957985050025365363300913511819006301391026676181741903513886400226071786565934148884140238687940438023666817669551192773000651526822861695536655831011053655216943959169791674844918694333607027322364875206377337793734282912987124131778382935271919375690036337133111342247776147810479006353318385967722301413183289295416808921951823479778418292389703351041693772797012820888176429741293717589350196104945975084289910677982761972484249917926058176416355487197071924756028257354523308206603335850237520899927003696844720063596674084158082809381003007183523441965855924490758706674090850678048836311083135519415224879416150197104728469864729505724462744063206125141893078239466245550683059645800134947724632350518990117197651914070604647735625953259127513774549887759501329898833545468190814967151412321538416071120832632314424196042421393291163311248965921640442107194976961282628937009525203780140435186782081542927255810189072876735792947125482321217847075440127401878850504700304718771956347605146972842506256488442652762344987045521349436130013587010623732829818405729517418140024782928967401970846531882268473936064742998199852300034771738480714812356954204364014026586975357467470453594610640517742974041055383420697491484742498470440664385576860391995394160763987504614291187509719023924324666684085907289888632827685481713008268056155034068185113613418318831812602648052526984198360998853436451831228389241937053593397450524879448243821817681963102788193408349364361683320569830254000572481630617842393162344814845636661447246762020553206470637357519095440053689293707526849921196245340676276542331430988474599118121354311761214941006375036091638382839117356890816424786974631489359914634574645689372321400860188227895161558298684946926195568323226802554903661759206483696231749229881757999483432794098741067681977733897904777387007315583666812317247511174064768903165868785670601573808038148446696740248959807040387507099274533086014634221440021571824213789776726512061898522608620269682195764885806344549117952801298425545756983754306983864209105472403640960208492764119164054487853782811811751109269464213042970944749584514218461108740184363913537572968999345582549793723485414579524158923237028066073006748265990609746919034366336771719336896400931333370137774991062946545337717151334691934169482015990795918904024035630089893679702659277210804424663804760828122091690778998794841977446869892971560246395915972129642766447988803412470960882371446069681050183614550356517350528712613761524383820646989148826317975941679105065804982764881454737515619670363249600548733991539283712231045203684047189700357454175692763284295309657009732749010508244787349244904555521444475766204761376609032787404679743555205123283999571585002418938119902823505997866446906654270236377029694477155433940387021932116716022592212814323884740413608486575972170201478224948116598908624990849420851489164225339616071975720371421499019178340233474801130792216923675650224763989959168863753867233975636915562560058929833010614025142499620212352489958490652387418179804327997590707054044252020580724385749531631215670002308883142554991605790496330775083145588446945195871606550340353567497832016416008434288759258240672774063524876883469491426816039919635877607507992457766387039327856569385285244008405522300473896235283061816504841562447977465809113671931097218121438034338244390580720345854792126045430162611137031510115098731323928211316947278251488980439196363979963007977342719251943684209105070472005388880299135230233895433586414885459345744170878876800512954421332148117744930479183118043855849274771515765619831268946301757529146955779682709261336366573694514881442837225797216055062392033434121261599238654495300960163258684291066872043639292415303331111989606207402818469409851456763078609136216586406742378904003160621778819869834329104687073131901898605195677997083688885782815551314223214948878512711530346662127950502338613731419646555910979911074635347623936838387073920728422174316142426543342467885515311785438113098098538803133865917555823968748563209227358674710719800931570060661700829670323200518359415688104194114428609881803632023519896127861685266825083740369702118244603621523252491739646934801230563782996864660853227477896298365959355970326342787635414006030687462607793588048866512054826821654115126988820528219911347213001407953747080398370625311655968028180568988018293856148581735858303689747681229337716980898429444676281870031620473437562157972986152018659177191168470237701560675730053372326325399356400891985380345021164442370675324878739751194289729246641346022166208542904344388910238196079068200115763511182116163447584318327636817693866278875646393324435098621415478835280627949251140731145314905875077437247462839263460162926849593737138006164218134246707460211062436763579789102378500073914640332970155125304382672586321078037673668111333016193685145783178605704822782253014845001168150770465876090707964323121212269027145824691645771428318529050581244276439470929773875932327690544859483681087364921579940602453254887416597601399589755092898468547368686918916591977665061056731719214689495654361559093528879326258498477658035850281663896648591915068622719058999859560365998150370861355163529795737559834702250232976485787885030033431129789413553529140666814291535718038215378433306055738282547614401818415664897101211899421501138296798690509402342151504046392598208577791424890788230587686253905844867956287444733704989891059499023176422799514774058592308721532937437523828560346427580002016145590660238875014240620937043072404159712620284442743872160952327293626006241325853798117858885782796424132792189483353537652512831192399176795648291837055654946004982242993292210481088121217563655284770105495244594974912673270969854711133453325833417248828472466963210715521237155991862268367500838389240776258116812001000907694994885481904025674999841043915805504104786290610737668687573126950127626247765074845438138640038858710313565383846544019846909290853932492204887027513118438164326075095440111229452257830740399836026776096092411497289617207205957130956063456728179623709946692907029577253952276647126479634582772604134950402492521010331934428000288974477351940370145629681427622633827625587458722061396257618328201965617918658174045092289369115434370632832757112151274801330463657412604143338281846064006645497019274320464902872006878218649011681945703347221017485582367320122372864173076366572483862827868323882480707193967966784788395988245418358438828483192163344070635191259808183460933860700665849966720156752187084879495652682895809072507809423101879747118767628714457003660923738155141674931082832204306026805311981226944664141042641781099602682746371007992334880409943328779725830494259391190894922116368462979492071156238698078934963496121476311272742356455994014973903349302468922650900136988583294799905705306379562114009797635638491327402488028245843374547368403497553673340287467116232767207522294892265837721982731279937178291057479200080819067131454130200363184379453550930280520401515684099311333767774905517681675700679374603404862604184282074946748717410648797868079913795603217747806206798286605293671520596042668938172929502025627128286104115504640530084843371744574436181656272885595975514097027054931617790242363373462619313684660059954625318329768137859909677053028646513044307571614929357341777071111386274424184613539191466571656656318049057369012902164795677639151906093130599547716981486749503319790132725800312647380426488081357715084670061383317674028447655149579842838337063781376353296777497208652022244425347454744166711413853572866410804013744857123116258577240755983964909727807574430234894751134651013569440722950947531786761930258998282101514651976613043052623530842571648338865819572191103027955871365607375950162492440940210832612656889937367258720015040193440800810308660683331551112648271032143057059685242621524564396403277443882681777720491428310473827076533496680332482911409197264530012200281112823588935083937091587978607514315933800290360718015236046670203436164038866539058501248608316504210090158481717435412262530538047976324847363524788648760776436179201312237355931427229394836937340127677949576460786026221288831720644459948444242987261847904532012790895415813138711165802194968110763337438348274445574807745237192412811152394584111507954037615163483992053772240532173476273415827503650251010599071735790246150853704764414956642565612988165183229784409599177982175299207815708711639181953303812633110467322001866561730140257126828155469290301175036023816030437887260734379724222556634740098727848218279675360321989681661164654712927385950621339678883107702293858449679273268051762560940968554333687785057572280441215897547961113086468204719650033077278060759394538519523349520202188706732638152064183698724696932821166324148202182951579343819605617053071302304360240751934556325454927364346379114643656815533135631854774856870025859524813124603363749064614126813107719581884492263968472136388403431809048990303314148392712909647312810607180639533696055201569288180837555976261262988371078388901992544959507036242442867627759048218793057538098595598183533893594873739074588126448638672651392161232733133557797251436440055299655166118805051148938076045995298301254664822321068844886510143876540946724807218506945790711960237737044484313181759019653977481396179303611427628912795056119183103936844322257004268263724235700820442638007559426569321166150373783353064200611037826903306589308989979621963629193181271229533155895729418409248718637814410221094286155304850070169952224304414504878342439691846301114730852458250189582208158749566622785630191985343862359297525161495675939072874038840727306907934955139771597556585091594735869912524389944210318594083509110009617621129588675793108962473216645294997789831848636989963390068907314440078682534963145739671029958517958823128264165366771646102722935925917859716053067569110976074348159771285212544135566391462301429283792482560091217561126602335434059463176797307735933380172049009096183406292101506749496764125896572745275875345325903883747986034532043777494858912678365887587155146957931406515166425315738093462985674488331456159069683912594686002319868787134595381187189242035214517312827002943150614046927528514515727499424233826429788739348205882799756044519449695406559066875412735718424885596676503569942096989481508505063373582033215024854701173063441489665615369871214346133506045347184733050534104421611911547828112690292337481211367332067844234240363360032238315359656549028640025027778360663851670945185633352510943872414937753243372251808734583733105785414156830239116603502448695357917789019275111450471216418749539905298124074142919601554049676882266410114129777922485518792970447879775989122023713952386218107477835130389654072554710786156096668903440481457662590060383260665827783509406889270806341651528385131243430425681162052012129606124604876826590213253268778911688535767823981648057990114216951231158955704651706246765640471688795687238703843975915359016712812801138408965804263497850090426208497969171515613606562175161348057514095547128001946956168392319813880726942166775658427122387924352210549248720548059700711146546436309973203185831672031125091718519694645072264375992336774225311100643333315470614284066204340707329348985459732457200834213546799441712483324247363015927098092720580166710871783162036472457416769490171438032463504522195247957080618041389711385314550795540973947367799285301190286448050952578521948724236134567159117999489974481855487839304293556601495875228779949081777324848620457821061343453882661970691163628907729297739564308015472967480519902482446195453013034780858848726249783758407320114386933418703792583377521621767673820009198488869776016752036173570219060856640851411174636899118833899392224423954161314092103395774965638851434170197296674628809612645168970285789704355498011179022654574164531473193165274961657488736668110423865966899223550823736989938750269869393276052103808017200898188705841103710849867978101224065405641326250526972683336464093350768892294725465364163745870990088492843912651528496606364926120418974573174261396908680396906835662617021454416940772585345917282899487171813514340674135772931108238424219234520738359593526365167587264803290548349237087503044319767214409647582326614958084843759108290415645480102064641232600997578196790540842523717884366938836720956654550870615493642600818042031466155609827942026649484757606864061904625940062251369260990655700397395451382722344729287978723779845963621262480236975190413670333682268670533034984851262624076372016436483844383423484442588581296323462073107607665131157332429304682361698278054355554244207202615684759334324440502551629422940468844319770017434717989823906865817937215989801074633538462773076407654383867386796787265464250871395944773962508399472897340730066114586479647553436986415914469190941703328039277418039377950152105902832599602793970219736656993572292729521739898408835588221151852453786769750053429292068852649794761391500757491044172617717260679969385455389094222875173463157074704383400155481429531486348986226820684131388396350007321376717701033195515856307352860674607679483506750721103688965215183097829890299191781212185988698441322097000159979016164555032247463882156142822430714933697227293398635767038625173730427031493496457271037599361193700204573792509727225401705625330746242624376724671013559646499981231436957719335512638015271428240253542843885359704144686730840430575211543540181677042023603213294495500898804864711620662236070091462081181664372486800943592796767526560434388130542771154072111826546165338273549992326124186526809869478250114421402440921141708546528737102678108331307448900946149066350457876099362268030860564258851118884321429838500927167183466321660399300183651038161163932653716050554690646635656189348187896611565670205665212897193842125344766666206846420475557135709477577998840820959268272822848590558481933818668035853972209232255665283244390676276825420621129559312932803866060286378635955412126006406206812795982948378491007235284261533547845359101599837120981462810277689509424159886487320192386852763442922283033303535269552758463245982686001960012426973846966778275466779377772577595343073621097887509957769486887250928318117303000182920997549193917687484928377859351327524205956004825702564453904688135848645831763491382107842322111448583945147119590966495878074734203871067290448734073311508722711129519661146335964363456855931832034693199884758499333576848056522034949805396635611274095654515909751619181088174715174905365660461685230040818288189529166526415067501728542763894319870637358649476652674591041258120296717972317847466483270835852523490046178940229569351680202281297859653388121799802201216932780258041216042597752059413232271682036075888234612118033986160787168928942444515623214660938472725833345405915604728684173627445920875278013822384944617246446408859656540507038209433207715094934054109628675713221449395950663743600248371923486970750496514749612397736736553480854088712673422954766802486373413202323379979147590938936772385132707214093706982339977290915566314741318214573447306912848072572277801886702221460221068165887194971881015454594947392806880333249299206477193405594657417897288647836005043219319658697152564177601791803361874753668224516702189647659005521234932181422089001348966187939763106007152463571721163486464722967313530257305029891041610991664129596438984324812863893571591386764950003896762759054507029932060858621203195550734837441036047748579936491204551814023278342073737636809878543213952196713592764635841787795823089547812770560667408883969019555003603564590946451617714724425219888870093272959212598019010349414927842366471361659167406577375960370971953781760342140027272922476034197135475489826627725060630158219688021785399898458318164876162919159004319368471602452576165224467287170043921494192090248765254601692817197456837930410410387041387733278645253506493969186838968562289450717351810010609063255087795238487691908521390049691745390183932440166112316390374109033763859942991744516127406645693229167161689122868172492442786358438433152218618256719067183305643106702313650365040683088577764020498166289761252965631399854368382123997978932409579374244851214495919050518273213647126258842945664231847166464588641758480106389344618136690849645301198074135349390800456486376381060749348635066227286941422308831810655506746507694267818065241127737675025862686922542524681209641184088872466901575333135806752711783205162197437261943397107612382701994508542639757780793230952143162896962064508057255480768423156998089173553114813281733684899893998108594083869811180446456997661746062370554433338797987134601014390998883281963852387087267204693039647501202434719612401480902686592781874046953274462486377716366089654569781913560616715759464437446091928370192313363489201877393029677865560701062875049580212096554519689082350320024664681797353641075137820680718264904879905721128500775532026574659888416416162929725639019774377464863026362812280933395057378594070952291090428297642878842112618097286744095157307540685348927573660440967868975479877192198016056045489777073466318103202667463196745244287696008800518042323972722794118567396619806709739553336376811298536381062991196184047877219907039643619223319660672902011193030084632803523953861626915757487083928691435934996534593752138778115482952055239173619233078588005037486384661953912623518867171359631534169344625476957118094020327240718713632350014337466213313411929404727441153836931878230853617784166410525340807530439627162303111405914145417647146967321263921961030016199147642072850484352780720913213214814426095098349846538441347533584471703239076978522558256210870263738523594374158985650326952789554812771612180030823210053689320469601718495856899124368046387636402426811834486959738454755185253039897756495302228645499660129186993512050177054792181972598809918044402735305324435835293786463440561154235901950328272561170472959639981516293984140380734401778722370301576632189760811661991588438382364287870632748175090315340890448824421736488612346529954151524883622816516375505669666590380475910604846950420344817396618567928280793072799741510715105714133921101092357944148711894503876486376770770731958902131274576112516533628634054084750121599504390081627870781126264553114010830246058775645789631574853680026087613811171967415353231935048510344324798022231077690434588923910001733507858812785670238561179188235540134442878499354351527296091244582509458219292778612955675926621873590322694991297520682162185289364644496527691086844973882123081352293851414038491495407433179440153327521875595980166875192721083801612611523939457688475431657409989967338200957654869824523906838162046006670051197762286293051247670436410340755993362752350675490981810968258334612661210784818697626664300723184537763811109065954433398390161438443675752916602263395949851354037547712593347343240668332861012173054700003147800663321362038605516399060906121090339872932189652484555118780372287536542566499991438190259814977470361332690806238214347409624770233284667019078883410859091844403725408205512860191404800467279544123226540838490593301080741596006761883366711371823933551548155102002074639462631453178605897935675971056473376541538644722252282626097736899095747663812986612074498686308563227188319451090911107413880184109352408140268106371251531771096061402387950139519134442931267018114941587789751165534969780640580940941565787211972376690222431965160701702473486080306790471501633928754719553540764974825618510785333639316578251084030941025585663111769329572234700777585317218054582332586355132634450037126793685114316198463843639406164324297277934752154528103432511730668346663515106492879051421401304359654310609824528328383657413071129463553477192245456963000094768689160879484750425489321623060003162127492242513234662742379283071275576794166462682578367570749204676887313377393636374152150389856659436715901793318814009277753565084798489004563211748714846497643715671940005142313364609015136707040614058877607564124935492961184408426258462396259414785932160994373950456043810196755138949496937659470543213206130929619800160679119559476625523809616040699922226892758561017264135233989529791423582163439348364192293277897855287844612434664989941464790603742872818964869388711241780222433463962481837908922515490629022097538059553276994402219908816618665471292240736816859048759273320751838195236756691719056365023727409449621347184689342534965301605505550507689511227077353675995729119455923414189270028460977709159252266617336477885422874998880669470418139588811433693010506547073397253201173703203718922564438281257334891335836128767155581180497880692051796853911577783122320364478282944647566289832724720127183433326865760502101502918987129402503919170874623999421363090414465746890464965990456636236675028717924940545107724079449977974460509980271694925235027300644020554319108388031390857433048708410764013364877700561288120293455418732838349614458229775346232069836714244199694947226055284375650579154049131922972961573457947659539724365117382639848162778010361124391711056421641935565681432209910260575486511875455116353733776326852566531314119301647890100329777440421832976525644847451987354599928219331308893748092360969047496099995422817877259362246137189371394853469289237152019728167814039158169433855385663702605459145417063280804036058300871100787327382883090298062609545911588267765622024893761618740017388440636463791394829828706932155876564003367959664695639406366477794088331866031763830597122128872069833622407808878034911282330849904318471721331005243239017825747128995048356845503367131619735747965927503940537726651542948281473939505969397633568655108063723145390271684403300464597158816516467390067841445398002074776285849224129424691542979534973960180817942923427110072112974067753543155517411202415626013927398039017910153567952739476747944003490265330913756751481105302555434204276395717342939532464780999513794622399855602123387148956047904031605341372203072023367500672352370837736765156291035578728100114848064417802005289778038744517044154675984888035206612019941237028789428619416067257429904101718779764718503307808122404176109052577715594404397892388305164873782221608840891041763862186351899103777348247358060663306631601070051539926368196746146235729150155591186379414847994251215139974681197529030543221601226665538925039932141899835630618517613135375242958805649228764862284856497850347530292545246459864693509432757772233624231390758078961944318521845436439538515901291392915948557372606194638981000208919503289411218966967113486164309020370259022157035083065676325454461069137297197653475161133136515949294727137758309729607646497599088004992647673227259143877992257452206074442998473902923366389464800670149237554911587502120788193164410664847804761415030101656162310267273305724302390192921689401447216913662209565851069670986602323211380961087282371856657608742720484846010215680711701291504251117469407304017590720322389618993572341517959058789752376678015921708348992157698863953097638636992364459039156497368195186979669839852709636273409843186637454844510891540207684790151942661893302997266105527839975333880563051266472549595250250365866393184382095807144825544645940683678091744218712253994576225713229658942254846501635850825321241229445475478991405888179518714340487081369623164760508082314684605972342335432984839026961541333688790573686922823862273721137595747390279843117215992036119449465360411186199065917679812561898285321025852185715845406400599271659675898543279238864410221378667914338791440526008142296435144870834486902625809567350372614220802202631878081884901873622355231399498253110696467870608959284851573763230382711824907193853778013792098678732577210895572223552988725759315445745875763337875091913493548549994026318486450714863357458602931157781662326807047763465483344897304041391017579912903761332085206765571867621634280150648067407450947902485021090388947937341619499693774512903582641715182086706839432308762342312470983446499595691816233096232868675534096614029196166311875579570690357536527559989299453295264886406977316406023451578261148726051763561374316949402126792593158153856385022698205628007255171693867504993282575998044007838411482707722678923142487038383430425207452348272236470532873527511039267025127356331167253634725955252691227719340572198670628732049440853506386843773701042368102060272027435620971093497520777836636110216594721161729326944414709567921024332367135217329006777626449451623211830149063480304406070931055759404454583858490769473651867847774204782309848377927774482431682234534034163548893045865895564778344934863143597771066140469329720990944371948784745945342909699514454991631420890796358776679505935098767970870183030214052073097352010514085721123996872870940878053730738512657824184020123753117447743936420735175863612894990232191999122189194135191958295572221424650530061601624043454753359970878830307849649778582365727074555832077278063790683612282713462033143031272408285796650707684088983154796453263007581410078614914894925554631987670742323435000502917225581933597981305449041981952411311736291758621821825349919627487659116413138476904671964826485500847004331722878599824472032776416527463264873661193009142723659951462114011638223688210323097882264665387023801937037882309196311706226828823879471008563701594240286356247962004262719541275578883290711630756366267574310290513088443884363561223024392000395212400207510887790714706327453917324345848112714030541558840337378124296621667751390160560252281146770448379218772257520363313658055101179639928591103681849541169606520235166550862794405225508139738258862121321207990105343626020723139256023572296793759850648404836570800293446267609127861298156600950074484225858035821443534556017734639694256439836048037565689212085668380020586804522375813525812155730727222942067255670538673220114260691648812886611384025567200175882340979247125770029689568493941157178867556480430989955814776564859591831456085481818741829283705061056209799984693930284731930748663175280766151892947696129149109469726943319958573713070476718971894816013349446636396187328703962663874766120798385171880629708748072837301116594084285706340605038994072899149025495595448127117669540338901928272680577170662595124441628672741601642383846231733194796221060228009601987805602437233975357752903342838962659800834264424279181672334268098987935100226146084954378974369799667804936563269074757488883454177823795809246995384183379343557469502370179364563795487856934536769918762398611388243458283940741857198137997688411989960808907823244973821948811106308524758668986815539032126669181286927384416450781102830940641872868530190907813722938386404614793274705445132552297050798436781006606418267551056338111342808364655130370421610570722115871407878341704914591945367630979066624423105866059274266908720494397738399754164134472288416511252484072341533816921860044149860077857557351739808807611759292466318589026841911630031044139970230373090973485959837999130548856342272778157104014279789901072792369126831335183211129006907576192382241934203676055557477414386273098070143129957891295805979298401317669668545580030996773556651160617683200425276307622070948065620285237425581063346763226545474759833016786364533285911984509125333097188123448813927252938745060551578463938429323785750292789965203905580726576892261553609205519162783524826961123337120504314213179485424749289933292226331250198178622185684478959806885130101900933343500129323486173571250661452691251841554966782427603280352777283004709486763047613867415735752484804359307401163767716572441422500003889158771355298493507912991474799390119667312363373555722679399858206587440835074141062388987293241938779290276193915390747597700874812265917215174956532955771126851755685556733996172063330857002279003876614094716009717025478266908086783646038448422110138200640677126791717032130050970527240519802311089957356479516498293363329980919515304122909179687338962327594067464764509264898237415632600029626152275358386290867781450630708609206135704982439771830421252063454879337675420555362839978467062566923628595667084595410325973499806890410394652139883350314286997550663819730661938579498689439362549982695007785367772280644351842927452429853858336364152298786359946603987335546954910236201176452631847826708097393317897881120224618095083687012458863434856211438118713818423898716778141790931940018144632848086040245867780457664537775892314248772105992208289179289737129547998638171018404889907436752180341278705072716077451734861437944092916856628631160056991388805102045425975078523907357233202320464259879748180714544926742459856249999824902849007454178573910096764160423229785145957807747405206501068096097612638557464807302889410905416086477592642985135885627755885832160102237233397033563061781521279845265943774436512561595311855495723698001695253685878417360524406903291641467595916106977587947959210576197254180314085954378444609574855443143029922530489936249877796795736046770927774637865337153600723670567424888768916950249795342818725439010399067361607368699567536158000995460662342798460991588602789411040149482356403731048833520473727316751765617220906189547418624801196567862484596111322333860931162368588906604961231082874087033290931245010051617381618004234858113335116271854763876732046614159549736749321508052288366098378078861910449274832548174883717816414185820477958978148361202815432853470153343294985391442560139674874133752548041291536078910544657049838038862022603664236348596187047567009744043631310678220918841881676597884789020532520443132025270426569956223259632022075446910580944522122557232182379131307353421496950037520690447031914661165214737987013238675381703011127643821134834416521435643166912417455182221457152838059555717951143578786511564211083361114586173314449408807126306854240830112170165715724180120560080733900284851884031177408166771872622360542424151764013976400204331233758695793331824168558857783430697399753978987911918156728943010798988810588716530855205935316795980818393383778829331744006348360280774824102767148415942077618614657365292257174060985509645350090436164655938342271380124349280851281359363897632737489342606524416178852044619587889131861900442498058394292300728322023130224850654538197987184314619084659723340080300576656905549428614283851763095573411806316138282172456516872981016550570766220596145063939014485813459198255437695118679911882431344880837894602832675853149087496526396889904855719543489221858570494350290468791216266028617201587290227189567246418218317265356492105640408335411807669304637021226177897248737318078982231567214119021193664851832650032778188297146033366856563202534952264484937869017453239945108918553568162258551578145528856536203307474442575075867773424543403237143247988909365768434148384167517582900705851021654465621211253266454660454655132634023169027740351979480253845280279383572098000932172014341223637329892099582659383700668963565900020655865972363496357122230532976153028901966133348856379238868768278120370191874046087769586684380801469797763696724551280145283087920870123833929942664812739534852506337558116554866057667876165869036469437552832346676588551107879074235491239425867123136307703998134522276521525704542165405315600797818433698437455080920472829451073759198511835055539045801013071343903601538999569932895322627266237029032196367910317148597689217666088550276245430003674822876107514472986945040905155353550447414007361361528868199795411816334789306007318798391693546682743513693565599188036777853215310865815178508230812111703072327119250110348687941444330323112053150387433559269888368435432682095185431488943398911633893116868525752690670947799720521518017161839814513936240014495983176116110233300844618920009453178219986709086443251183409597514870040581854682294574217182422741303147122257623592969271265519258294741762352974875655130764853707879304593944758617350175005104839505000155396405238433315384306831034192166810133689448478163846696864734751295098575898393209329426198838061740285403024308005419808876830990528803342328500856572244777026933288525160038717086283072324832650201300620565415483774927644074256327004394728102344373310612515880143502762018085819142700342621216469054199380022236046531340637050788159783871592559809080777053242624422298783207224064559559220079234166423838897865507123357364474945282192091692665776955514656655834663236979210952482570458461389157309637459513278176843716008867266167641487117626434039670285166900301493257984083476479976131350904421419450702456578025568847354719802647008031592981741777718342617317923220193679264982798557203310537772284484014655283128780018095292918312187949972037576220276142554778251179538756809450756521385171875577679355175420191351337740280937522383267141381009142312983840971829487058216981771961722503219760646744753753876158033793617308395331115989560639382392815855520344466632488112832813696647834509310890094090534478920066401556497211291205511509269927035235325227586001638825712105868892212130220414633659103443885149016711266417687230497058229577852443364763335635548562669613505623219897464228792483793897094215286382831217463163019226874512907015420775983621512008458824839868997009272598759686780845381051726090497272740464898153376133885862704712668178309273937798130646027932164170321522237024263364024459674874925441395811085566014188324514158706382012647065877197521490692952174229042982971710295159481589995114133719837211949926990901138377970599260959919149665316637808545442339408459310440836782457663040447133088064849838473111872448455814393466707071901379749463776798329456427029866931420097010244483639627890543158408878004154695016718043347634610723937996083995948810231916945990335884861234526541647567963765054174991062407340356317124420510010155431734601171577541742692879391466466562634464886930240765454812374604762185157643628834163806173645733139356802548238829544413052759852192138975305476823622523492753847812544448551801718244378831005929495608206248092638991370675820931085983133770585557577764933535283371668438075518214514592865929556486989262896426277299556111363831675785524066624170189659345701914872640726823718145069585769172026268147435674463997085245933409462984738854703771800098793124449675840231776466486533077054208809395058221933864180852977220792868695332278434537210967291210019846523774518431119146036895683956175689431823600447239747518743663339097650159800039744042956774527521212631353548238801618351324235997432173893873003194397064525822188824844312142280626007352235220510471704437038106118945283097817342161783013637866820471202961149091519540595559519699729302818095751128151473511676304861947021386242000830730944881564681029737876140836710303241295859224151306149626879291104922378879019474327041714748183630135695919931037229072327492158852491773181171911477610926273894528351138249896069502988868267314496263981130427212633412750300445022417684135423764235934983737012217113653603788991930166028496337709909587501524632002996951780488711272252725540803109140974428893209392690531184609832750270817304525348805856246988947525171050786363487500012116410466730272375085695251585269102854329052845607230225452561203956664299725668801773608147585869199080888771146315097876561519232138168823666039084993604885670027879793298815562152086766502927458545331420668164800074712570249706126780467158725400774884399472213531136571646545796175058036263890438270229066850927432933990875080134496546026366378494693810604885839529007238605030767365638538947013454605578775652873467513572208985437990227280663880759939394880253789237702376388485336041847210491522943276469742901884051002221839453062939589410092347953652220935173249101949805974163734758341757233337569443636829961233197261630478499176415818151293602201486277914663701092417781075833521491503535398149140331026005431005147430881814201486851711257828101386491354846597797512655493574554863263887108912292701037508111288001125328409762147471253557330095000219443430344207271145997799688663799636041530302701645190921894736603812858583667151552413863205714263728418837700403233002630720660737168116104617014928365189435083716789881959516109937939263906131949389158910055505762657156476849160800417703414835215969739639834127143155365219218124277133795473118805667360454443452729972966414994495124657485690668437080726002654827711385473454012979255638679467314308727231242265039794131002414777642762019810505295028103594980538360157417211990123922489745312182189330414545925432791674347153341379419375426908514503886340495414208919939703422774329397479189595973021031454587874666426053535192704683818829620819473131436788420915546317264582625322493678703468825357861079786025995377662316187961330699727077699834530958867031249820393739603643813867110469316115300719731509721456568175548922060337331846071859951895841154424137843501228993469592966151062511422054930273511700860764111365698721528396229355781539365331623162155522147236796480933724110905439220952408370344697910682240781994801416463588037561712032138415221362921602522217802097775391337412589876353992226290384205012308673622645311866655241109088410763402320573928262330301103368605916885450758491074857081851722278977231294631664594422302220777154891884385232299701054386516802190900637590692888981436956989688789243525584244530883050276552124278284702109694835271927476488136178545127045712463143185340147479835801299994810504456607344965309712243605471233336626213362181229309521280613537033017745976382083612975246577894737357303107458800332931438764570881994157803195378187679988522574637049957984470973590700212299612951029936577893399301301700018639608962649303975667612781026766821574155119318463448811798986830314773089488517884470982274547325351555650314224778674081786599824645863642869534446820293760935668434928898340388402930757134059791167338666015678027654645840748246300688486438781248858205224042151523438829066711395736335140646428211289892463882652954701111430829804571554938490327273526819484005803762567064944909171960538398782985327522193648057925795905345998979100872007492154102376217104944555995816850607138660808866329029935417230110124030521761689707501844633785880707735943301205774720694227787127929438155717937512113562793935464124668589349077998698583103312701716388273897992808507412041263979530217481379378249566059315968004602415321847355603837372980042797908171035664589052245544725694580672434035039601292663537100860661992145344422405303209585820058771281196706952186131238077504070409633472809660151386709248938104562593765630264281601779136745540247996719270246869262315298559072715607451781305521924049652534573016926442183281754827403794241468996521379790790986627010117266495576681960465123178932242248310395703022483316535225725541706729180738368957858972492453897569723191586198120160098720567373879070930244511882977102514821004341338565925921514082103018201684843574996235375742035729499626626543444014704139752777993284847602833959934436422216080604518259435412176451585079789038753313926666834690841524843656309340381274331792634684612380112551492192489513639240363594494878496349070305755803933098545911915403477155369996841303218332939394680856613857797626820064372172281789403376424191982663300300081197483021057639155011964794339515105265581072445795769557096384061875079738426898194012139204977944659499609742703396583995203120596359410183718988397417995498952002731189543410659666023401084090796576078962082897118224808708863429750754057222950204523987223996334299196550399471101395838089484127351693355050373372950609540709997790407283268462229756981764382413156828834237827197069745397308306739229392356678150838161154535775820649677186063813165532059315740625950040397930645527272681141822771027955964893859944345043155836672911123766153705672160017932897289138162955328807916445520940163823492018318222506352899209945782877698355497109716975392161348524463497969264264786865200264872082596889167128264082846513706332441816096447164636611754731477353897773003170488460491748112539305568469052605127086478864908494796011656658292693618221282050325554623724756182496001183549071387213414012091971494707911731362708329313064960035818990718203701395190994715598121054525663021637518620258528159460465917242233530253249435564745409393315875696480878403052074308832514878686707575554152528969993616299614500103181467636281835716186604368003488894257924012517218682330482548860681157142936343530356430312414231490668595226362595596433505402003813933650571669963314921733585991275205863381660034140522397033223988609298566926790150366614074685272330172424327333357149609127374555010934170607210188091353793018867814633169244379276321664510354938568864359340556236547922917050145096017606052448143014323599546328517910549902047012945698631523354246306678237648109469811491414342569014350540507339894343301462871579300963108116049413524913837332365989426587305930698618764376004827359353305908747058558565035821295040647201101277283041765319332288999935529494677134835377195635936763007851868414455025994333147752201412560102596831333863978904563654578184909406929024392751102637360380332845468727961218068206599280627124456896161545689297217728520090662750226836381762628627936235855011743119700088912652027572548574671700427023405796768136285349205666693240282971748183207534603895261764884297722421531913400203361459824672703378826428952629449990243400870799796306691778852376273286237375169770118664615261483924137285025269684355113529574855235311456379484532861341929384980821004605913883607477117936813564145820087127888856913711766275495768922746283815830870974842978877055312623396640099695324906907984618384578231890016013852674590225876776444141634785201848966052333005997468248854565856032012009950284156647588684297268173962067357370132444812528341759572218261205940509714658418196549600109044657107330295113944042925816064006705663350442461548799278868915740219043618726081228905836900658933210981302704702388399716831204521830450210954954371009011981593967215231783050856953031932259786330613967385054154153408983219611207773722357875818428553829117840433170473906718635766080324077303963108220099607882595241600189376045736486794854416788274967614431452437329244890058820103078872955653527188302787123106081693712531241836651396538762723948874234301752462978916700562011627903938066686069938833554001592100389935259751706678439854906898385745227398770185013675782212108119848683722896515451667374117360704102212331521017474072478540898939705896104782976845445965513596800637000411518359038566839581419326080198196328550377341096721549821426435079153810109918313607563213444405503178474343067516060561312511882465115749649231574546397884849909171249685497317214987493867006500601971332138278471283416413635672637401158016008581061814919863480982221130262998337762183687544837621877069796614544960455972787330936753839999156236077571427166262179162490774119116206269768378137266759778205447417996117993596584552495655635099034887009247333253574669443217941669095237572470225875857206374952654935439318608206867421256850393074238713372748707186133534874049186853188259341055251225894087881582532416194544864227099952278164281529039411345223295508982075670916086083295907472308314479836161279767956170635135991188678630240240197319217792964784273474221903739721721659972836585982765575799133430918675608241334657968500240999334428948757679126163597843986147466578894671056817031127321002385199783805459712667824427906390740897872169144057423546292099670942841121088514526161464910660197657151730049578750364116022129391627918162713473832200587792440667318451118381585166707386958024876379768253434765431606244578527734404423331918151250498171585233869485190061678754735522103755058371071825664116240825907511465863701922103927581539336721028060601085659437825776092967737283028419700186111050332134352252125406566131283840626540855050348630716822987803026464801159832135596502986006163191665032234283372135375626858540423591597804917717815788878548165297088933161898534357717422707264110195188757878556811592596635263293565348168972945983354899227332710198119231493975995896249687124898633711147768141558349354834307068049232821903887201376910111834571800713170359335452517909436675069602772324238652653140196001304783224327472456992019056086627359809090887152741887827083456972166084797740649305103543521193542617115173859964861589571750987804724220655643615150607315621485709997320355773761045520733626330265113995650372989899046080332759313310913518256384588979523135873336882273343905456268666122846900105249915850692132234473809142413898399958036728114250168475649718442567361704445655863198923976365625445740544230649035677059837400121334202985069971679910296957426379240758466406359542349024152304455577795271686442801796978270749622081727209650458803763055631616046587083276235276966551859377029405960384254887866973242750483320243147739167728807536938191910877824950669924173690960822993910761892360100107201257727191937839425801633055806196745128521284342919495430738098232293922391322821725154848567354062498483746526511125286657838451242577058301342354771554665188505037451403539872324002054347784711187959039327176540619279671596048553414991731185793147893744378320875755556620248749865151821315123547322886825223602258197332100810920603143646822792909956222016386551411105809273184512632173683032146508199913146973369713146971254270919150674847288595104776852024902123778664619293453765072264872487326637377337780835820144387213261091751078665685024154617596959834099798661140643819548232936104877659373327855830888011727423838701091616740962844316023234085725695175034450454183498302045298151184710013052894622036422566675949390776843461661038295458026411554066045112025596986717627632531662289153403563625167850198145932985172832863525530144944061967923778913049521331202271796269741848318550467147330643045409119798241821726138409632681617016422945219065093743176813402184939600053059025357171369712564733285755117007656416214024827350212892984378873168479995775536907764916480561096837516543005768928066683816260872920438096489854574292045689455928753505559918929133965644582267301638414711520810064928984524252123356426050853667579967395570035133729716170861430608605209488541196127494648165962428055351011024255193227095202274159811555971864141965217257312744416452019083638522877276102585290716708788591790276256407624081544901273112042635722382147872740844197397303731845075419964780536537956801303624120254112080323853600884620198099831001936300101772672940990098128173240033891935495930922920220851810205710447339660407048251860720140273695823405515994927801491554087847337636102961626758869195417865373455720149076335229435579159695781136361396329813735513024473169410023405922213573227827714226265426202394760791397765768773111076843249170573084220558170100319646245608289444304297516685893765089252061247078595665671510600780861147757151630563305421242754908595793682656130892889774289554113308115791426333294878744228215629449093432990663848693711407975495540524125483652965480912623876676798704855917159141191649937722489580218593082097323643433231407882674792581366471657063399484465282666969876043665028854525100418928987005682955170239684349506346666804368201550508386064993961657256664594548765856323380975453086492913644353277320337836152815628107356569773967092267266942625308232417468115263420507396499382693275896628932859928474222327089667369297075368202131276651822791833406459392901962256855521793851466745466289897762301218262881187281689762023693671749006129163329435042983926098118847808662339778913402809685567723225721976076421774853440012490105409574929049998342557589243118380666891543391060533807830704505147311475041295809150498007976210180039799993391315951640543270625101498275977458544673601508709202326073599438065930703980520013152757024377246631114560227137094747506886564860431057814401424917282260093689832601987546952258334883158482527745699170554097632863109160142235473685899488719367466906786602559559577076995933948566205023680271014246955954813927101993973980947086113966773082375330371679066456477034261521842442274373731372513001183858396701438157140360265155855669093219477196431857661056572414114625546027950018030590468226057223870541529906671416730444295431087232800394410757784940338382020018218481164994006946021721251053639494680049356704803062909605696011108988776932654213176695077197454111792099805694338293850290341228508286876869863625981383454483213185255141761348209018139714056995891566460623886342218949678010986844338739738757462969357943178322504584276884031905867401981612028500824746647738642395846738259878913940835191205313792337376358138285688493141720967447706897571683228113013929464876807197657645556098297371746188140238918114179482205344426339883246573438688060203849382352809337837782546784487579387890758853865417805971627244993163264273497501359040376304242461351731840361305599261772300913877770938357956511739169930218944528985326482274274184125702064210680430843851284013474524467406908573969061711948640307171265692052549970734688256740775334070273980867400361314432311881458326367193212579911147355321951781705119372523075464260503488505025026472687039217805655231684182875689534949355090949062680065922800123302838428898629817123286124534160127465562644871698395685625382287139518050060148672410754088386436683155275156052810371534167454674229767199469046074096266155780609942107788386472508195211374388921872503131805109930080018663797107971170980630890910904005315869892038513294277564899868295678242250536271256351831408997500854964225020038953502334600160169364105224818967950528549311799750978544487211984029774377781641417383281951056620003493058889441099205430752678445401398320340909919937750089858726185116832210940893677878265797956442101897307015997599618013830891439276375805406082759892007595360704122530468669837283100481275756789306362431222405389356608767920199077718607007999012541847818172401642950808594391130209435382875388518262219714107702488657720498898762367953239381381577262696981359905030933696619027124577244913443410761585741795935982759694211572781463507928071780016772865225457103227386122689693090542438841635230252709590134766698190042587667923583954852049262506598052855140984441870880205640093294219666184714740449009209974421955958992046676963288759314234566791528367401516781995920016641966510475418622657739340591014107003041766996372798111813681796322383436559003772668384365683987740341958935643217494074585592241565337932353212719547169726064534883857988689849477046703726401708850273898699497117333728735074902193415748707000704791308255618295302890819940458171964942148131374036136746845259918167324752483024111599430324772254709790129807655236569107377761486331942281223395243485051862578240284582522133248782984546781765772110145700565743945293352358055700117446528383958542100424742178722455049493962438107413862929867668957215139400410007021748204703735423139016945541098384906463251509529393185123393617623799909165370080213728120894617601994434219512103994012690195316116780056414052501227526859912008167890945609024455375970387989535742538287959851006942933779635672872593183898167317165104760174896445074470733172099008443088748706339553796619175181525123335614017487575509086664922453308231091782451084787646613336748353132564912057449285460866196962143224221901107226538389565617892087897037490585444542466826285913064553622897732939657655139409898459151363134344574468558644769172507124583160889726703853754091001025640787036120420624359920655006667394530216338180704976989955618940935860096496867969665890481202314371559532794884640574659208348706482591518588675725438421883739937489273095801080163469789542615391233467215278630944954637203052905318651153450604158810806125659659329162353967299740597645173083359188556836046947489850039650929886807898177449952568388748640383896582268843020203276122334930707281827020885990327192827714052025843678858937562746084450152659577950110489969881902153722598336245139085956406241324728244287649405342714861221084257046077027640298947799677376773927047340046888615593845617575050099557297906600412526869795874085025371259504366334920555063443433144930203316987389560457314416097873235031918887216100256276066714793726266973181395920883101424813674162258659216828766065565865211153618832593137214088065185301387062380394928503011420854421186745078341646554477375507704983084016769758129640521731888007083509097965210917191324230839425524754535709955268500096702603322171084017155629646561469181233827970467375886900373472597723465007450750609001644076494406300077741007882372492476033318019237920959133342780085204636518661376471202252785143844382001434769761392726845960786170631346156067052538701735788554674727902842147885724023447294339891999673220869143320801516453990057045854412198951058458501983905401818469762190500900612958340242099597867396349748630966771015851079065448753399509931917699924362580975338513982973063520034839643990342770114512351192043283944559055496675583701112410258316870869121216958221626981410137780897887472153386067542620062251996460428436300705816244179935025972956021124758292063894354965247440178791625097428025105252571400106567653770204077410757677421411172949121873256862466215685302200454567951768308618525107225879922148858450903088785524626827124941696716808635306316789832787136322647527852217386892435838907047030090472776428474362448301237225271618265175645332119956674380227960098215522451544914572959080303892144263419035863807374023387052402386754283308582971602921769648586132699900335930892168781955177157714467700129246338933986885446792259080983089099953819279280182021255862027615355021153713469574838572929263179083544219098873205944137413762872057694964944294094179751377506308880785002977821688792793341918119203267660776269984699673281352943752063288967255644999513225422769203447896752728903927574449657519945779146387109889809686238277309152426245925258770721580111594895574101443496642096323669414872248276125222373466398546791972279177781342417773402086691413202634819481187438551467241954504907886843052613408605480688224422078522029543016591856337029101734749515406783862928754814862136942336086232748912881483218261035465004713835098038974304360784125146604066120034771378037267681215293169475181016150507956499959244448675107678253968224044306326274799707303595326242634211583380828728564912152138249426401881039951367342742274959250618669643113748220739121935478905988547012195773295063558314624837601573567138662938225724947766316327863330988521781156939310802318714320544920908808145666489482557653826446259948344553137663837134442372610062947274692025563079416135892134757541377447883852559729929289403013094078066612204623843303032650216943194718433029614744645423258579932359428614863401435955566869514932818103440089337851336672645179097737109347208877866768862005274983102243951808986178162258585544375340299977249708114380291788715319634507373270356782241511103680955415730447100065877035483907581092754427562418287641902056723681582288537292504564485193472297331461672880756641959067534729898985674468477030456881353661912242025257709518719848103108529396114304141286927775814336828310507875352849890052257735885585201116698055571537857983759900473582914869239366625228174016364922809856923276728465736361851675868535427220289007859757646541872899827762934214919898378823195566053601212399008761783370176809881176716286832808195721103086746063107203417894010003763616904051334406071413982946330650162587177951573466269338764603214210064884374082718639258308989945906373702064884285301316188943166404611624231670861889362532013132283984006906071385402118308791191179873002115843790299538598188134134397328942153131828816980861167307272592100101134336056917072420137677057030649308940577449245019155466435119096905486646819320687431107676462828825059226194137606115872603324478225113897501144835156145192197996330426244191010532950286829116736832350352395513093820958402849473550676893275867312023072138144650892705625289912365419521168268176026224419949955976094256622221934723234260366437272996599226716624710779522723093596610420203114020494560504608035882961633520021885571039546957406037974884838165232132231746216009894285331350688660262657215336278966174566904369983121393375911230800542187365138786217375917186464806495171221792517656545460199814879269553805377288112398274054853191272761117266378337114033222646932983627354443038794262382091217753910347332581612416738025688685560645501485718401379556463616691774766776630773747827182645730142737804357484081429652559183549848581728001857854999409406047309761996851958572078396698344944459410455556530703774547858887150322427496737994041126237573349263208260519965644835062228985065155776150938035712648966438573856536991844361530372054683137947006859693668776775824020699307631432512194622169690182419171956339895138537200443001461160936055121116343134832702983356245328527609607330278943084479432875112419385699907230816086932763042378133798802260242203503394205608204189442465170867182334017594345357584882574718673266586033253951630137851076692781973545183594871926359634448303061012481768448616718342469634882734195664816870229959328304110849167878670702035833206375554996783038082782468230764592719824941239468072514978908320883876261113532273908099631324162474843465270426037992563310617529314863625125210702942838254084730610696344916209337138252181490073306038087710169262997379537376437597686254431292180269031212691794239166564264376196777195015885986292094270194791120507753010459875031545427987466430310994508358559915385957396610686468225578164848292044014459468021306614461008700536496796550484446202882614469689124724355661756168909338683767621201888480337479127347781047035067164703080805199613483567933368626153448170307718177671709766402839465293163810967641927258806525359229006951002952711364250666687649058866215616252746480453944947731960748384729910531118744218283154054190300036789318865936270613532207404407841752895945717725452658738029655939110311638917254886398905670928650148805059957778686871629242737769728829971694748623642850903503688759286573662652355334438433936748552497908574359925702772499669584148828843981671009560538497441503130755667905380674310976713502855729593917935320072365221321124934394771718404357105684953590997187084613723030392481581717004598166729951378314695329241083424120445108464727088270321904958115991390674769982871340115845688582703447058492042214059099131872977736724398856744994288439996668366420943216168902231887777421470086837593011694944371010185616043031883294771952038027387500584919426296244267111438685952684640843819243695271139639861877770532590559153380148860158886356136740994562584024421011816468828750782365341823258525703628384080856987923942902175754917913917337443917146345155057282965912291817766735413773655012191738596528281620867614712194347813369379285607439731073146080691254597627377772970459285289986045204181548563684050698293173681127259025230094371163425426625573278300908234855005217118736427824066212524970537326605906301288971387936022260922689864370470390883011727349405337317468004256780571261472590453736377473083368590232094884785450057375005356744790538795172336781757073756108503465131825756683975194195132185319511061064853198180548938035706350684645222460869687687871766259803635853498415065514070730792766707575597176037601771665373301670041008783544458026579848258798949654595994843361117710714074483206154634607004226573233601925111724789121380517817527778109805595995773781439073165450740431295771632887631082759686513649581417278888356540395411218633120579846009696795857596279748318469365051076348533132342237969829667649373515054737298120867080928103647402946787710773714036912025482098103875288352959602805481276801048961050321355675960082175952385675938985481870263319020940390330354738832473548054572493455027722101285203948596433956281239671363190012870719734300942087203444802133928577670996755574625907649100411258946978465512227718512371832698558897795702916191191476338302455964584348630936455803692549033217348790317046057762120458513720449837798127653348744864452312974313961571402313022366413752935280295212861484960982225828072606659177743909180457806680043444636156411996562670750615582691416515440897751644171787916000318145618224558718926987972298020349125612887448615360980287481406583658537473590585605698822174495516731496836515502969980607870535367705763413086671553915130146472461503859090749638830532014384322279778983354409290757417250442889038440271131821353041755543673552720904952433733581293439746503634355446538829464190285582887803111649722773746495235579489680217487692145365116410446956973551471925850323806940160035178195192115427287284084831035315863052064261432749740003431909705444389230138279853668370173701055389383427216086043332103943213251760862583498791275337642683345688971662127679890901986424982168602772928061677216001380903854116390162755164014583013815329983725158732057225710030076365074087641199832854906534800849731853444835146878508939730925189016009850061133995458823512730128140828310371241918079436291749353579407472564716675154732043474042165963981467332782791012361698997389069929751399837195538792584714123647639282913611226935827292137780312029773406985522058745928959134935123663063239367685532662496833192163751155345062845803126582089340802639149067864422754929845895177040011512820614833144390188353654930693313694810796653546819167437345509639382994363044233709621845816671621103541027003895584856850660759396848859545457066898164946609175607217440866900019128833856170053740982672390667562139940063145214759185835928155208271361831048956216945279882752863809580215673679883755200543418343684458721570342334358893381516071781155690581909121427260495875196949058259218392284085590047339004469784754442337216918202941759216667842001221892939548581163135789486572008256399563760498435212445900261354292637922573507774825319208349315675606608319767220240009822964414292540306608687312267666754990722397382969065642740876647438998304164046474979924821310275112240130433013398926878625846085578588492176230579708643442273205976757402198123624771319209889109028938503720014695741346192426179356800531820848888403614320683365014161275119306339444665826567914152801600189383583005487990448606063637016603728037889705730752114381052405846544726856037489580872999828200181720041559734509419618757644749019493707361299012654769095309009437803485663052324011494973450628614219084460774209618434486165052413282325509467609825398124860061079510241632923454373333005457267686174248706603308451422414920722344883002287569043242318693733036556872830979076949010131653046574805919036723542842769801524342706595144873135060039555379627366032566780259752402552301993893887194234000711375701772040454355616595477426521095784381947781552145742711541108376215339192697126594709576118675911962306907989607505355377034371115080700976889769482236392030440187392447034414877692142805332530139047795970994651796729529630665790946502390473974095555278309112601841077159795232462256527875205815379690428638730415039544522342430843573444666983535713534298856442416832498270382096988557417153474256578291737017669482558565933897159795045148243504822048909753789868693084580654280049177190413196193643669671280608616980745207787816144794978470687289015217958311604875731671149317597067920363285706808427120656618617938038845041390708291334776952604877262368619060400368710816913396994611173277321764588316377312123099166640200993954505528012159590677380242140889432813238529864733598328276684455347825823594646280705871766553473840942755503434835816523923109330427008292215128513631393875615343460865757812199169740589590425905168889919985059933562674447794654224592684281553889250212447215401303639047594184919398757188459391683285178928603528105226858504613104541840878143796750697652982788805759614904816128098543238112325200057334589140254549254467327144507095279408111710893700766591934823368990945810281373251533064184225481398851008008440092924935698192935421683477895333178507805844614705649558177397143323239733354327340047147814307673072277688532461605703192330715942079153057504820189288466752233755982652479753371684292005643428091051960119115021571400158395326096764371058338004756552231355917662973616220315340501746375768075739051103747649803444979121374869494214257244646812935237955807852776998273887381460415341943932045942500986603939144976772133350784532192266108873971527892281946643437063436972872096607245773529020262067549388303282791315907322008037136263546972661737068410430727121015865468815034185372956072470461967853319870785336163819543257792491264632350496310619152324841601192425728996009542357325882410526174422468110424130284104000230468597814808708944491739315732002501794905836395203853231670342308577145645139740016309645869546492179547719277547182799927812079892840177454323283568086613297336485631304819323401613824988787180526715712223988375706905679942762271786057353088692776414150047158793086992133932880579745207504791130034542851923154994482429886173633261391628502102982141320034444060996084771357784611319058033044077047978656673080412809095150457336536861256587159911884526020545916547808984413591056762126672116357817667282685254924872484025474297449136001194727575502507381958821981831295011461248312500641308315496381676355211433832180055161813483893582967587473974984706372986887208353331939649501593797376204254534390150686113531015598377188906362174884307065974341715089953687484519141665997033525872976470568712180375473375428688914150239023228199083838206709403320614344158853046929992789462418697360861021882579289159292812197863023902847218239568375827736525187411541997222238166956590113028221295056352115104101656720336309812263090336985071416636293870260106899020603572938018991042786987333232371527927416704865819075573640090116923441758056113221209570218300590279367873733223099605697061739509328150550930421802937921008794062702904827678094291483817151109746824283977274196771391667247577678167207064779893914005003857970789763985596375050086687659906618869710142318903598570298484542173460966022360065073968102932695453779976591806996435614039609341895702016739649474001182856630524246686041408494476407516065675188952808619773011555397005178176334762809682559734074204349083043226734933430068624962397448116301007615803766617815669480361816844332164028108589060986147859633713399290234042378646053989475976546529037352510481594016884827435665287907309402997912999755588083017171947269027276056780314664605907297908190799311293193555476074907036218177587302511047749217201079968313862575255296027967659791661966250290072827911110284457166796972259073447577957132361256059052691690714531395457627947208432155657411487643407428534615255412246653194087571962637773748476315567041845365141676886374182019496499881503410320369422469403442089573994303624412850151062413361918306120284696630985479266144137722312726616837292479856995316177742228517717989675306892559023263888324836562354870795142977092224481917816080386592303671244058278662956255469179067360328399777826578009598837869282812265159596163984076838531405517380576073429765213152196368286278525177706617184526112870729577128969334508247938483853200502599797581957565059343687400687659448286370085696284968366696243257186412353562310835180856235072361741137551672759041604143664238473664332038197987204735606690064857306472324118448508334445021354314375258694763172025519846822411028912471136071290612449288951322020161208416397848001653920384802973308036444501344251465099090082845747681633522432219914196055378564847696301445106102288123172828788174281191466472780888011369550255171059866447343277773038477508375736786463075157738687286485948169186338747118325017094806706872395498462417811967418901922141716749669536838595341263163081247569422595922366321090396647511332742331765869267881165074463905716589345007496034211486444102548525530488770988247846234985494736638480328763447778214383689934003356461615749657572208141278781944221032474497691555037809417679599811724168472418781311479593115641643904531554302122207709109263817076548020349284307544173738485587894356608738343331403249363595967486900542012914452453599463019293307046236222151988687580366154958754752607022160870058182501898499509544465213432919626299150555199041618862628259941477540099318826302125259415783516834974176108661324234519588743503762619115642660790531777283141793049171013600217579034873955689913730602057085895031584475418690218051066559326259246565571081632143179989669493118434170520802544468546357596641243058960906012923580151143519949258423016509567543106829894767591554971869145715560429899666978532326178134310688201965701055729557380574189894642391210542311552484234041875429831752589440350625307252241320905674086681221361070746891421017448077239174983295674351816192432979602221639308467883426125782506370605168564594293918377413412169022995238863572789312409178231224336343840755654532838272068042507627219505658888577573930175114422425766998412192164248271629891910991565254075285977127436968200466249614501187605632089520875302672981809264551098273536553407950205701269647658202995177819485873514318427700491890880512408298418987236955075302324085790340242106121145465432106837689288759248992601523298737820481374283179049062535651293987720749663803761007332373175286857137596570163186157158111091128590970039514891568503937883545164037806990010480474040773621122024510632925378003338201597731540292691136189320500914647551679416904066133631959495692867596713589726193863709307582541828721965369350771990735540219358548744768091240445336282879557498326627654182370148191650413274308151928619542312213787904437855467462007130724565870299639395951705353349366123363314308382983120816447937191507772216180718776404301253482774357412696683979959874493173705130301381833307095439533493624928414899111671652462498434340842033234702603460846809339814888599272919536274800289637136312763939825059118325302884108426620195744256551447941628061764584327268938928161686801393269498225208549353021715845753728802157066138892968825657175183685643324943914642110552010742928925398498501928268673569631336357936790500725780183692653615083124048108686303351913096570582290359549504804699447975324760662359719141100665257231185336363998240313742140343637765723298778689366188375377846624160038355339937797710965121988508742863915949129600199197769563462051582135069995850744355600352053969493128747580677035373115173171242358812565193670510779596713740622739175303667252003451198075092597398067755009136776203436766739791066307210992256773662844786540863009492723069321855684235548392552497813221310974309699094605006112990372628135825343190096541814340625844570417251946712977738911204719408125311160364525460172092777030253089784888672579039947399690322284178540866646484328219842015265599457808082935895193989026669536217006133693733405185608771048720013114856314557995885290347804761350485396640420306546241722955303698110897925399617755175581082151002001972380050030320894516159464423206135452070707459423134689731398110941896398178780333581054418024705625120973600503053816738274825484227737843074624725311354014667293132765912533146003255866144300030194785582740537857454986091069747797551532061231978618022145507366053020538256811943683746849407712582440453815862754448606767248903579702255347593483385852032762167665321681334206518641909525562191424389029799340717029394091894760070246582879886463312411500240841597714714342385221720601294024026954393390532622817142329750094003206447495314805475394318625043597851316935039141130010778914660158101471818167548282970245607172562985107129452534500246701009441104881107300717022661443286094565833486886136620356421485420997565074274102212506488858514684212572846953007294722753600734200767140681665639534940237560536965001838868022377736430973047920887308208323595641919854523351611897169825133610707531998931733954568900513567026410979191207813956003714691131368199647173864611089716268230922048458541082178904286743200938922242693352810428357347048843936168954348595564050248394737685501433057017125974176044266322754446948418737139486770727707238391338073957895905784644124571806627094352556694951082551997896553086295599906192784441084630172896478011642571248782527562631775302848995251306381621455725076184710044662474568160173541768643973058282158014555908887104275695613126210696934460107873550574736127394018340091823542771209885984131577370200060046726722814258823174826677696699586038647567492171670357996892531662263884738813285128907755084193120085626111930106488517293778898157559205757692162331706844869920931120589425950878236586557004846676106024655903472915738340906084640871096722063609227532170685947124786167152000653447021674911336745862920048483409967923176107236582821656405198527095418669955821125901092532904188460852146486152080592799765766251822664366857516311055190705322274108646898163936659410132337384326961003517339002493546608261372242545310573456577362129471833048754308459815818344523458460927710280652138279148686388005090234131232078872166408851525646200922678163719223290667245060160157052750044347714278300742524339773426970248470065049897943276790837382742446547011772446520958870542936173873499101930247466031124589680133172756231868213651824529954434374388651773114270538315329783647343186712009404815984320306499497281076544699406389873612755669266766872324289890059421762390519979547320176207593582309216003939780517151292123514886343374360801056075730415059375706631165518518469119243699793212446610993007638166212916346115973640714335848018002804007103228947019069154788289221739002220555553780142932571915784324875235878432977049832416650232985956127874476388639493197138191983227271152520379816766219289537073057330959438450990888662388806323403642365958842341802201381462863249100301765471673022543133129106855796873883182066494354715611232408521039498697990385156133218664567915491310466206889574872206669694951640902694897992559002578067620600293913941196175521891886479721603203176401141972853180524917819673228739796586680018205533623931786356046728473440365826027191742619298080292119698547565651083473523397196851991054974900799531927906548518502647396335798812191474124388516101008333188162963031135776974355824095784570215901616439213089993341250533275360758106873728831948544825422468777495519131444547701686340044214152473595993375309719929048868596426110582113708051128093427968055773704861333473255290078692531788127907654149915552946622679501025067058784601379982100885149700419660999287084460297584458131760668655921731607100569059220465982141619560901640720909777344479061697621904051017555840025119590000765527533064388242616684895172330199071693298700014404192084613978962470274907370463496928832995202369249500601980708874799187615162500783910492208651824576607497348986537848135554302425457929407230685654731807641098185084962797452440360378319562334123268635227976690179088438475106490416609425495175494919849633715105729486093059599043708611043433990858277978279708462128001456319650778246551805305714920268177978166949636310302867898773731154989126616584260051599319673166564510274429153445219343282542949410334875329551473656031588424205106952215227938225517583036406929012920408964049298004675301095165430256254722762888872306676952291947569705224985354799824996889123591558521660581873874339664849961744260326396104845503713345580916596157088786942713510813344063886598877343725090938992701437939447673848377945477880295272307850099556512176617087697439052543079863097179281883018251923981088995117004778710835734409300095829625996218750671156149702770503975867363886077416830538984107685288835452205618224487934310781961653896505381719078511493798348095401863930977528900204079156815366019688749997512517836159734499558728342303917815212976871441933144521084589369470469982297913008805383857709500469716813305282935400091612598503968980464005245161010507165261986080248861310217713737951022399932478842835478276462151206831892785352235584341363652249077214028970766591414544973755607136226992535393401511410642067886147992235546229800612092919816512531565181284901217010584008209558976867752393240670715121319269207000252863910340501987586354140559184059028440880056970420946651950360256891663109774750928463414223909719274092918088253972830434957077026975164152603225830176935779160061700235275694335480348943722109851879908081161410106505904671393372864512433044088482631188467502353975613441447699455814627238178398251528744261522802785406547237318762118652089866606220203369836121236503073616697214494756795949537790449970094253584740068683470943180721051341491747435354420657375102828720577763558286685657115363987864855961090216009573158606581855014922045103566609109873025046352331515782050665362114223099622432970907375899372147069605424094492579920139327563343373799772480190509930384334059662074926856089922417662259127715023052791512213844818375310162765822761135813580343550571470791091190016860817534288408004014277866846610067138185401116192527278901908325805620522226624279275817145877398524502917138672787847226352866219147636780084756449819918551236932733631693679226768679951028235183943131051332546034341827006870130384105229022918197185565429419277645417126716043452320738928642890282040004407851669947443810063392577296506244533916598725165427235872366995604376795338144200465638786277008097733879012001293816157025029100468284518085750147625211466940013562929852044048806699289810827045930893524967552007052124405394899766791138095283409414239108007353304737021075458064499173941394656972168589494324984154069435524494944784081850577722549082813551149054087139909478368409314237308898502113313180151900409082973086418855983064138440050729659372923191469076451480343968576302140625692853201236434899581216478683553300654053043692764544376727397896779328653637743366976669361764902871533699254364234687061842620886477806104385342275307542234693208805536046730002415882194059601753104106467192801284218891021606994713381541586658535471104206330326184009812854439085843591280875554607052132500380707060173960284053832141375486013849194248617502949915622895055266676188017155538870360427777147656390086058964457286331389787153308366347727427805809974980311686814682541590270180917449375464536870176980719422944876018834440097746976928378460198206755126103730801941505383456419038886241021939015006179816206521964715429800172979144681617827916382503823377520902932546724380215341633928202563392790093084803242446447789565874862048724842775461435326564065843272014068263886133716013649562114271115364725689978331165683235622366021960208117772912462379794828153051976462612470280670058938375704436269484748214867108508998857452861803381327842031874762955684142328105421549571382275006292274379139284975239045186487606366647074754524378920118845992140275340037099764749451492841509659161663383053674525629865421636835659827872268300018231203079686501685002464223630053522001090975388991758174475483924769604378535776846575357040850012021472845932657377588457947166564726764138675936729022031377558036691644411375639116109326565678697516995122383745352013940076607772505437248136849361016572444417217104107256700400000660771150610038861457096387415966728017667767069849330551817318132124200864635360719367139548556901023173295796104707535468335554102298571689898116640611607371247222234053317529157152469042043156160337344816392746198304743438124753171471089703768895379074372838776580359450164667043835165966672888698766867945990019349357065208188898875644147038358208122614650647629789641100633132887578365700509922156770087547268522320831066247976979895360560698451076410754766357895767253794144621292020421358178923393030129683486245235431638454141396560492680747612566342907593630400238219379172502088858235473260573114608444172970913389718848987146926345401445377279698475072787426712895782169926540382368635045279714241116627849862769912277011199159704640544579385905189725882404942679508496164798511882338248030843110538420702269847483978574963018807177238690787831388899344680501470769128116999799425824731740799692421036284373606476477154647729507044092264512343725396131934135745055105852230494268048573978699436304769511189739708543427996225163991055152597593314495274444992873514252667147563468386642534575266855082251438856008329388938857406705391538089846238985551318435947898015168161685237871439173763602439304953131742404493821283905151659604840488600641307249554025287701906929344267987132647061177813009018637406516284034156822166645172591919098432152260674857509443405078010159801909806677648467811615874624514018986840105946252689198938454332840354038933843694814466741124995836899881690702007456392755131029270493798479512267065179463408137594258898038979973804834003815578776398400434465219587220411234190126358143991670335596926371299947508642370407176685821852817897169932208661948618987021940578490931068141004899222546895191602047554530711197702351122488803786309701452215247901562530761941457341882831672426523280768504757361035674451064418840445681109839035998131375927442737360822962063952955606887046520494305339639790287460966388986062884080596217017250105522873189846587907882826700786261197029835730340631128005834847180886234508152107853431899180541695357623314726930264651694347087577108243634085843225886159593039098452919466979764141418345881208285480647239225204599861327384249263472708089937738942547272747792050848074542642106173268539798540605916111999296834313800449750277743748568068679946991569982679367362151509630655360991319100491847403643282523873182783517352604336354472697200562540963785055521879279383748254748432535462887521729806540950174287454912795456447506289323948545599000132657962846545769092308916487371705810091851464258106583661958801628074954028644706068914075555257728362580821133926479956843682182554737955796034282046875326337085633045580216472571980214327943411882725963199578901805341903491348065234941639803546254220299465607265482822014649813045073679250849587933347088636751568169279424974788637379472374617577127945989830310855893317863307623309771039808899246131477798246459676387053692433910603459674400977542957419969531560199589636095613303807171924900956970261738429841991064157183095325599684633096000029720765241147553283806590467728761864127010966366963428250803055333661672665288547031792249770656602097067477373750993645792421108501774583289525133270936032418797642519827803605282028092234801859194229754435929294595644527866214184150549961870081143053050527534316260056687326290118765323364526073518692263724299072372587056734493978905625304032483936627526654420592192591629507969435516002342233128605706349424405733904530799816059807198093847602695570032179686943456565123260479754756029209333016664205396372545254680129490476622539451739139948400742987007699761524095716910335637664075248374654298186399506707702872245817780069965954446577683983342605879009892897742449414309049507972206449954123530942215358249196172466483499457201463083938896005408382904037389750010035095672836156657173019381044864520739460175667539482043737830064953763529978250051038464566752366823281722847659895494887769028921079931759926369834958151531114741849006709886446222450198571004626697721508299547986261948993151477415583293050053955872390169152763196380150203362549540690842800839920619634012256152271080984931466526432761275658512783459984642098555405057233857392902170333713931914734875945166190781442698534783145340667617099058406821058318310208383693398760570567996523020907004437064241540978177650183453867122057776453759240664062260988616051429621550196736372448669729712983190942425880419806011467505864579689020580605658389143108521093282731371570321372202251834048745074317704048789073804115031612549008901412141138386591353257966262288312725070148952037287622749321452179435413501150526013418966745777930559670795700423887775612749844663308745765430364764124370043099549849560693248549903707388231769846720816726105325263737901691478029576772237902238019303434609871233760182590196011477877820410588199627376953142964859046192646235941893787848215450560887795750870990625310207767455223358188878151056622905504602935046620088770097983518877749204953111997839701638950760924883904894248354723314577155955872764018885806676468054427744921706082690606450527140733603871266583085499041016582203062850105627640575118868409218889107914863348104288042360303584402155405353468688242937439925852154663772003211189646789941525627310183939279574982450186908261376662579916375195497321325293572101864571766783877001006796869547782551112684624340161418477710332844535189859391531010086365782859348031492222857572767856500507741345159162551080112348313207780520412980402754417521463874350897835497618408556241943046977829340439271495513948011989936239052387931249366155363478736817152723402781229722333312875716828138893567904074796771867418039133392884477640834416230791914148855452317322863204276937756863805398743132731392742666150588356798065493861767962532705046900398216265070096762123583968228679793917504583953308933614877739588406721388116216318546040524054585287298311140261123968367092625802473248363236648219492884325475300164172339371065250963367992807128484520776053760738830532974041388713389564870382781968899210219055106877056233519656346860134312265000713096037628502305826171110047330750236775024298268228384225897754894833075141865781616060269447444735367958271985422087646803317679361833768157903985376167990923527693553048795137260580853959003866070949426755608814845211729307807082065403782209499383234514284315172042654490862106798855101885095087898227571541125679561686032695861978992694279098050783821778777754343053105272051262002108950804234249297011366443822073486089715542362082484407913456192202421074943222908832249670557110127326000479471384819431097294175546854431208070269539231916731852723122685416224798660139351225164926655502337684906316886291272561088803412058890751593756602673903952100179702081490048273201564544480911322040870408081065008408143139259966352649170717764473180938623839040390042803166036345227445503060753230070518821866673131699203647517877190185853658484525113308123380535182999529093558964511428976154587460486648708530622430233800155836596268907289635651968621446272812818569592035081665457558520172926215990566616577429322633397122484075169149241351576425210570423798973318302148107835821692836117214733195392518462639614291173849119770772494735902078518824729483348105972226875662024688212894874046357519588425887778101692996776639623867742331143032325439238774315737982062937521240594154057882931513716918420306243326864665888298400208217204803151267666757799214551672396229255434533405792855980940284497577131390722626495234382578295977056626699751904253279170573612948131370315920197643011741387115478700494409810649666859874539729646781586200817440116906854277566408912184752654714401481087509706485612617236161567262612735735310853376243745422014161213480864216610862586850878583364216613175131765484909446216199851655304016567601990037672178936671666250137640152271425329617913425765125317340145059197704292223684914607049648563183100686799237325791711189225647078572981115742372748611529705203521464028033972406726584407837234373156522925452822032256659391613812727875952429864757181771813759776974026583380727372780765983714362210625883593799346816742743118110777525048004468459217965072038157321350810396056920485161633518152571435259786979968671925052512904274392667686893384369388664315931138289594915757361466422696404156971219138001312575410035640820986116801831179800397062913408299600300803506807321889909219320800967748076026807012135488938543402896937788405011540290100958223987968475474133220195170531483498427804500639199700463082134054268723301395267016740454647349947600239740520441775661841241447899981492501422190735230409504765356601690717146417978338936281047452417270437506615047752382744919256170323938255805590297788168351258616302516360112219875222032795845996076916573627641810622792922561658424676436711185137221486654403894054122564423422962550480189843095551057641514397601759099027141959119202069534809592087717534629897753692728521367237437233914909818544900104849028786662233120793568640602109517595198601417583685019156996356768807562073833319574538112429047361821535312314862936107001483672427275209858055297128150455323407992180702932809097491220685264388732596826961357816428916689348201141233688054418658669102369788696802960761011675970918875913173929240610949548421256772853797444309158532319766087956178641911372914251025068591616127954136906533773291369198995737050411722749294616190174225958218805822208542482202080333398470359636782441095271594390074665147714187410838514248986372090156007872604449642834909889239633042862093007707162621193350974289863157743998255243457580541995735325734793759029876848224157690821990112455140927048577819134033620019069764157166469610295120841811281004107572663007003677693861868013678412684633246090646896150657841788265414751277142556864196542259263843058857905258246638309327756751446968559728345792711045405960538552239826196427105840770783614974830503200089836531791172013770781177844764852636320820311112083430306515987804593550541849461526960973503529709690577676025394226346995100517661010690308254810653065761531704514377819664983182288326955709517625149267933908772238289835454411946914492712569141810858836107320346403636396923110423561956298688273457536612479017766303324367961997415968887144515428765686971737674599055840174748707597100497340792852119983437572318405807404904529859506490042122850958495618562157043458405153098256238117555129276590082134976063001069891094650660147718940455402041396667016940142893386122222007201327858067054519897628128056367420614162098389236434690673246570010625937212864633643501705557003215029943587019802071704393115165966949530935293402994108595304512296871022936770670373383199155016235840086477858946986550812728348859163625315797109209856054969104290805714022818272967971576832177030422438137774386944972822505487291553039031852035914239537732731355819480913493666388083923515125221956783522816722658490095244086487484949224340026412931795274313213265661846702789179470512974849038139953273520204364383004271895077445459051143589385454947849401551040760087584305108100676058960133267852179983457211465230001835345353377843949924006016372423035996148921379815890609905303690915292883827859383124647912229909782952915889184253482067576400028140328328237468029026589078426594139084783492670814943872267386828502807988019431896392718743377588805015194863262710672723892533743887717858533809865697734562915033278252969701051079897185361164789463432202825679135178701711417501140921573014038886247405106930933198088079872797220552297730210170831682246630736764668262212661259150098256180241877603007855304187796508006650265205365178308311318438888939966843026548658521146994548591016159154589965941745815839881734985969420902758729133784210791703027049263112521078296008729491969672646494463384707681437109654620424213576323008521352988693549565885728728202710191226529005457805620440548257853533660533709338583801820299404246180281524086012265428307708303291479464094770429676339884282189900242011990779203045286835613748396271143198649256802323180937730909592150097150462454880558276961772387269910478879382020358129378315095508088590664316407634297854910610491846329437858557146882079324624201752418729898843440955963923940633172449308888166312082895585819649444876744510592152591554855563806469403111244895533411187846667549475908918414364462532885662770916435682658624991980332426929878747526073698479484087142410848501881023740096770310951772591052341077944194973155330191526065037343408721520564632269491033134769032962132767426027338166149268652767646494732227828700899428399116297444142244076306978416638864362839459394399538622965972748083789563475661800614944194663293568764994538865767031101186762441824787591400487812754337579067627776791132693455897224896254184869644549200234611044393310358913043916341036308755346159871628499896150123105190055757903399239098753803248598839526748053930831192921047561359115076071031215085726615734951273423704384341605640853660254445979087510628755525602640209298809010169231558321750446357432162398143128770956053822094421040553979861927181624717776672547952256707007049188490859993956536378453465409505222833262528359915810824294421645300001777162309340854308794148672137980636859364420716157630411859986468352736792908553517227076060486834830978602808688571850775792176742744731285869336904073904451747756256694475185552593612359754195203015753378038662090361112255856682157964270581325917936145040763712223115083168124119349158297890692331891741145301409938980128848153672213967120926688731611204515473859095082017512023050196291102853329037614918497673681849296409364711417289799151318663945911999505939334883838131465764752146707967780141562372341377226218613514452445883326677245131537267439042141259857761286212102352597221588586646780952349535486777329455230473573013267182127252994146063793375023596346574024635933338326800129682355459329570038562429603144644213692326442369632474092601478668885658662760480744291564433523155439128943092838342547659276972469950290924068556312846827301507882677045525851200080029035365658799514013598380775589392731378139906320727963031171776055713641306372397853249049237152887859215308587455320107652905497876899876263669821310635246227203019644485190083652525392437334607278194327407315099562083413442994771558747398602932165122090082863390993668477921972063114855436208896414051694249302651097370722569394321667427709841522960777237385999083382070077167160822481795784437619622174276456125621823392804660443932844831550136529693353265761180325411499119924791570143399569375884905303462097139196854611497693248902950898286739821398179415511711401210930037793368406296839966363766871264860401735537291653148276851610269986681365469569025508323771420394470967992131209047883650361352056506977652815626192835247672002566194070884073689898201128846104518436180041253386985244018374487199782242438987898148530116674352249744118009380878722627324014629864817028567207818723603154029970967684583920176871483030241617918945787299919980554254699208867682355750219022642332351440465485205674876214613758478624832265520360501642189872414006072546032052740833308104477023358597170060034820223906757822309128227742644210081633139294954254516167398146032301430464485938735282581285960270374268852981876757832141354481585028200125083890171331985330586760453890782832589314652376749373340896441092724041352642021959391704884549616078151360308641473634466332158607813169573513576091342098868299531199895655603122684629466004187391356582867693026977962491820745955226675301791516591496944492817994390798452197886177879303098667402389501526038035483452567070417491028220231856215412875106992297963086454199606046017189452272517650375288358752475364056358151295291995737674705254860220979686769928586548840054977163402158223203949189335697442843010974808160459121764041455992625218925583330663348115832277063886370459814835481173441139935633010717018314008059386622283021805613175809356945228922561473367400168141728208271794504312686238261443802206889391572123152216556333174904735940548438257033962842248853995658215885185894466050282593315772821816648656104822047810432010718830312595485644139258064080985974924496604005330013720963751322399098687190710195990727163871402891825892697153745957232675639087008640001609400037515016887417146334084560257069139322723105472821395102830085449864209913757502105063769849422222773812578650082306689487886426587046016639893595519576449042951722919699461620062255463240749480648627840691699274524926022803380503282784866253342240770771967363610433574117749435897268501852174555234736509597626387694192888698464021644868527351940208042849103140248011709977359594307100831300372079312732928084256341702706399981932257269579599461238099833213226277495207213384643708487364762659159904014730984598061670202580914311699005545155926306805162305654371320159607140278547799796117242127299892250894421653798135065936029623891309196134510716206577331550381248981571558864772170446281251609452980472095205942271761053200948866022031168532064776762232568379631582262023138481829828801228610037470236519393472762697624163483110434887735464834070593390653592335115117669038430955946417323059625955119281138353210933070169377203957935795321014164957119566826829696156348850236777992835687639154491111208280489855362473417239999737008109745948479977970700742191946705001282276479539760615902961278106545585442828094668009279186376793917142883112572496187062572387482794733739276896277848810657077468661881628940297921353307511205018037531837709949299108076021771063313350282405279302004112557643052289849924377583773743945476860735721579675728947112440528500713995685450335418161056729821280177033114978556691943329645920654770590228966695641225886309513484049398373178525792892750524432584812578315943605341364090324253201980867765935684289151539358724775870690735841829711907929449646936861217396016086415504377655225280283785622342172692495676508557569194161129045048792010903429854408568376937153769451135358729165992071416596384514950218707355767676296281104187053898943413688289247723276896247253096531805777571017651646669518474430203158667317563690666960180449409810344751406666529184794922583411831425315217729395022707593933116705590777524215863670167288150117425626037017783113866868232275362704388426175117682298265030056748790861162588481604237772791420949331912925446017869959994072301649552007200723803095913293390779867131307093673742826173040251629816510701552169402998523054776257668097312965857132639098015992815146827228426538752469407820426962788541728220766364766441303818320644601325183842898272804185017469982254078408332990404684634572676802500461121366103783135637823827751489881517183707884201172160827028460724354705426765484780390528876508669369474261835943269949870544828369920862749029648751772946489649914363665875913974746236124242474444607910902537000940427990498244906926662929426376949196080057034128764470348678032773949766919645670580330954523265658944869157372409764700402288897717437777935883216638750165219943013821422677402452423603758131529977747835188018278809202956649336869012205154332221422973108442574933365184114001852887230057413361495186571863649141230861957968437522117970880397348817724092401143940263973242957742727132805178394859536085727009409873293988219405428305204852718568092156757609293786773432836110631873812204942649984305666217937339986425760329428055656339740412221296006448960273346983149190660295204043742181815693114865065295191744887346758600370147507622302869211229386822359324527193600184610398208325596686416020525110680310817835278441931121662735399264975705741869329905258689388266636517721557208559600201150316637921428982593802105943361251872673130283846552905365396023358601018243041619585416577125607337472944208301599185047101082472136138091216586143961131019781690205628458571165064766278836894656670213941727982705110831314176830855402258758420298823905956215973274171059736609824989844131767640731299589800416247087382484644401814757447493197218813694790676029374581729626316470623251719007993489311576610312011151499913942566653935801132395483321406838354238998097535498773162907992147369851102349157257581517145917067045037465845518949302137126355144602670188276280718032431498901549113883544345104773816650642079165182823788808706580497235671729061147045071256981400864246112217843193852760412685110431418914711972906273986229895033339163004131730732776234786360493095812577233609938728024060328061299895281055971688715337948646605618678814462423806000288837145060918509940708260442589257033717542855930806158987045124353173666691226182078612897230020318899831207042737145860653673256964104380873059201113066039414337928864528972764218872784127970765634677765008294330481044248576354115486964544461158474304645364503759075140181453614868453945973911034183129775030255311744406211837303953898990298275446080236116876293736259224429542176931035101935135042271072347659291934622325804957624277012204748011831757596180878097043949107551303005299528599428319049518993839215117609755743520960258504863541956479561670682105441220120064741723783767680030728903522095627918865343877448239046855649998767141040323283687726713162052360669181670769642950150317535319397573727252680789412421632663402213552504440448612514537748750015510871050944970584580918649391942317214968528857906259510865143337670133823766511581364091646635628416898796959062167275518145974313738975477233005089176133625224513393595560533486729912917486061236609013376010437413223087949855804398467092126984046040212855569333930803667998033844997199391587321504936573128491305082040459923423847070678153522631885915949415117997787754871526475298602424931600886667255382625987340155481189299877103934271393412645901484166714956278910009007468187815665206535802435680905533606808920291118867854507754279292497686043298055450261644310717936397447331571264157121065336462036164041196927390730318743316009675230658293622008942146371145123872853046943739058608328016729604771419750310698552163868124096837105644892052301470906901291576720196404381151943092336908975706791955749650160798180937838283038409178586525536249191827638016560744816608561942216480545083002745457369620446061642643131689394677015036706513853930162877019752606605183785980611972997411175218405053076127828491448936885672702066846480816530048491590961525761374644174425542604817047042464435465837952268963538921826013189398726541169332653383874557380790157062447557164602339586591196437374432200045269604831137802258302903401838879348824559552957428109260986900150283089452773321751736200891463122677937400656487759013325299259048890124189715734506970089296155128252898996196250170017602247916796589649606629964517149911527887102548148928402080819857665479285650384334582913428495774571805355417876677827093612224233664214459695000762758462898068722079635010583700491895600136178424094544112476283875940493329729888615418534780397404954440139879853557121235204847535330961334858900733363611160676450947147695435031990360488641246576951711970392334389076749042239386891160324088983448688068289133258941099167199118168197380047180745007098845699482769125760898083364529138170871081239851404471526977552594537419285743621995593100577458558163046503985412264367023062524195053489109047382052839004942802894688385176972096160394052501627332628214466216083420791084219983359483933578912011761437106949049910089598957934450440577069778286243231191838478220742227773007334379536613488984538070577825277263357476485078169381850591842422935981023069620527381064671521316964265947545797088420514811300550477668087502868565787565549412317464716011416821795912883953003632450829541696803842848873808641323266796707797481001404994444185157564869095703450903892783644396954978417303448770045798931803814900650057207223041388760853131929235216532127434781366407374995184684610158913676179174066329387870010177984279046183974739287683369347944165394598941879120310496333890160460837413300129564518795309386189513569816222517995684848637863110844724823881858935215968456949612911812861663545465558986743439296328536176889106577822934944679535303670046036490308011282402182754529906633152007181445784509032395006824736100304641832697776407381347848565224899651186592616614951403984565226251523352024465112422995658161113012749662954488941090642215429591725122759321019193225626931999935606128912977639676005418442091827553349888870758032357352219615013123518182162336633437307845678569053206463033464452271529632969456662095138059225782978944919238555813805296047656928280198132741379478826617007109842751536521912236808906944431493564176441440219570368666105272972670277646692134142784909693697851808332540375016427991337748121041032909327240944441621997417356801068542462734688025411495451305732167945430986909891829459434383627324612206557339860662605927948930218576178504070767020984627732587885993870071631162919337940197522334848727853713711163360357234998573168829031490059098866979908996210214812017888055913030973752407313169830513766562410018556079075164041600194611011066490340865851405036529398572561703044597968713399252335080758581856894687819677063851541866655371762587412599714187470073194551311292298759318666743223171234328161068125483794651905508891595138962714424968359753922963420898856191113379896402100626307587991852649616912113107443426747215468166361557681979349740617223879164813174738813638487360065500557739554318576691055951078148920790311135987769821403175847474966625671906616756483405293014884730481794467486967827563805602661701242247793825165998709806562190524685337122454593162663507841589843683668583912980889632170489648060841213112680851386512179639530696857287487678115505199866189998869702381201604899995042659865256683919301728810786639128536563511303962711418353254129540659276809293862226904110389912641969558220860619229502442013317639567528196421453937891875409217375086671734773149770501756642775296752844141851718326048560448446564157260867210406206780539377743672388305771188469941641105405635780380698649586115065509891962650355427947143055607025889241685801475068655184940732488443849364785150382322894635548019469726586899007499572901893371190724885229221838371436194060372924187669523947266521299483854194888800918987837628200968146445411719883743324726261758080396130298368539321719011990513491113337742119362685997136120791523730748708909149628091063310090186977229062109793569708013449212499018734232916825519974544633418186193915564621674654675878694780961638713827415967674659609852505295027189784529030682764470865711292052561959110630602706463736138236067528942236750665908046484668261643202910162865016268569042729021164158465608328804810493854555035798047186576084395339644156131862864170637162030023906887767986309541721532343528660967463304636839635460095764236684626159121289536237622418054176602424333917438346856102149092341555863970580821515355615621167790465250369092442480413307026981181967064116908016661018243215776076736933056845469363525298296809956180203058836916676581147317080083688598891545178737840015459767573776665423420257485764244228722303378194759195053422148661151468527225403326063628179757870858360534697488476912765119726499338519688735130455961048097387956312869519596820303246214791385037859786490024270809348228116149377505970115491955413661085544707031113293152112054122977059828187404318038024294364898530133300664954766878788341700806316601285349694179131300015682467730494205778648609966244452330276779744651275673454062099496886994381829795368152985860337092168371382075750669518209598157036865295947628649340773192788377495753924482367249377818513904145347659195801040296374953032789958420260140663852196913471919124837956568571521268863408375192119001270962253919460336900985089742287025695378844191100806388977070673819268031913971122075622911834911578341955621065281526225545062302820723970218178023190124454511563438908772094067310997752482758414609060045839875166442016886182050839946422947278111467006720685757375163680806837323305032721957337939772278918644388621578743109693817471172062497518751774164133522687399622748625225147956596771354259487408281909127806265799172520215493227309564747222274841087052006235754438310592231566363167885895927225376112353499738889468943523284951989167995540899907503212084264357148365915778680958639775282270894151883737734230208415611109418838974868875585398479221162499692996479984823384577800483123800303735717867005395925375516417388227602655269225791700573071690038503183757562144591034884440364857125651773485842938581185127008534296953094220520852668337848483898884835380709783989616454149582219693024309350707637418010370418009401664271276355189568045787108966963572508966862010084726418660081254853064467762818258291059467114599505988498821712742143722637285178876835725273465660493558815446460109181100237470859899189321415104326948220622364834872143909557061145939308704469031012327596194105042144626188718788793997319606746062132030189046634654240021209659767989790576598302210065345958818088722772378256503607524762553899702108969627116288001823504658381866849001435865729449314405458267341613270953503139080545592972272086159176814652902782987332806596677465779832583213060003356526171871907099706939533568157849756285971052386622450234021828266863591212202014689844824893744350567282682309656187737148818790312874053566821010033670552093029027876192737646330512159166828465376800818259106966673169421321338088413581090110767016055830008396072375609559663593639686700622743399733868042862021819050620500833964559929830465838452913829473628685848171480296620406046545074536582225375396233228719501351154302911022959147556589762957878078457362266153150549695063444168162313345351764077162911173772635796019991784851583832974483494422769472565387496819231188861735081466228953937340321648840553432253879108191998323757013755274583675329946449371403487754267340892121278940722715841848102583803981400840275274697057094874260011929326363757273103793184163346550893030755859399391989308954425227426072041699341544468635791076493274090702914287138106896185892859115067439066119817481855550983345191245674543078680053009254583867541470890660822916735312193755150892288783785958276426024911520555715224101435376946888281626142719575126966833436704150682139944374875856494336036693103229901087698034268967177535376854567991107385076421022525889342663195606923068207582484010445639075581966526493517206738019904302038111116510206315940914809085231577938550120343152430306526057216886913207296005179527324064656559231423157593328039277604333975328984092383417179135857221466970763407381321975994601146379362706892246831656028210796682535741975920302276437965793679735645880507956784369367040994595913374922332717957126565627300484236766906982421992244658248234947178657214982083909891507739092936677424025513683303416159660103935339604167474705854638515017176301100590298463155296072430055344945606267781069569729310181926166923697012416487123057676003896148007086728822926800194697925573605986079444858140266003396730391135934932662012269578086173470193064714354835437296964829562271566141387072143244293575919565165361697322973716504815100764589613682324339781421792471987200563439029381288878526703378585133407843273929472438112818661096781947653103655006353767801978051508806590617393692972741152084590870316650682719800991854798010003787578262248004873564934245048022580082098981121084663877057500460171004618713838986662634439660230264741135322895760584546414856968242910629799018931295434460935438456273909854655089958077175363723691459652333481405114752938744776370149572201884918909233025833507735360410231872461144177560749513730174700621914814333761782137466581328701211525856552402955355763393340107601311088043405677365929514224076580474733223046574605755037294243492153505221537273749799679266461074737682163427285510350330969132167118200676967860284297757934252218777165269572534288185779681498461928124906632807100727743798952687073650432465574093695183773741641033404891946490852224321968992850212514558642665765247996850931804531478746204543205622381474700859101963584405119876422432080561051947904990629114491571468030839548070859866994500671048563601191128671727645529300517104142124352741025925661295119237033339105906414031599360465620223594896868291549792410450416034810841979986536966187505384422543387009466861969939974500710720113378800603236808183370610014501280674723241944230232137416496337127849867531667308135243003023438279562763220845224807791099604385174432246682223436691306023867026309552556875528501338293399084902319847813928424970372190668940348729714331404699382739425007375695905195513034414804496478319350068039363912769872923333241719167618740627012998998588139755334115481051293516620268204367102725018719057795827748248124703662010410960206494601445337957430595831971755820162519375098417429246853069382341401676669013376858278001728758001091359824723786701144529522582904324011585987320954309272696778855304684062204336653112224081932823229904937531585403497940751267495827823640503978888505109966402998900823972787633732005814594000948641478413520001558336503660446924916207028115737424785108757612349271185951949327834097178998980931874846312229298201508750308550045106369938012027533131054708821851794166909596400081098258577071309822864051359753779805938132056236848750589473133756392389025528896237048738059861697270137342494126402651330131474408832973665356093857113751862227582928507443742060266954824302537566088715285739790719134015682578297543294004175357537643858257953791535525531513507240060953909964437900045271278830471273375137037068499487790610112901056849075278062122435875713220415577683833329577843387001275385059295704253574064724670359022210006441297610065339222219533969864683022928740782471028499129635000107018679147855112583333992193091583892281753965133234920831179342736966018119334061944049856421663330283990943694938631593207897723288108752390160904583953879742084986494254961783241894230305732427279047163322700362976105804353025080380101940148959708432364478980660414375107085591419186304402861109834910260223319032674030197874568892939516403471321912206610933804736165348846146228777823081639323929535237890021875907457735445893996058839315098661668712571165433246930290867841043581334777620253630856104838745576205259428352485342676207112386622290587089149729801571103516482094733240253624802312345479408640189129959792143846892577859622992394650461588588334303835642330028472549903216415522933658340141470684853753595204881126840311181414982558762022066488496660818940536777779711486216719812559821715131897340712035259963294362848201267997708696274607984432282841815671974650471954192070235467874071304375772444717223135048128291798486186262286656703518007122146530049578823967321667284268924536337454610220003974365093388149433260032242120253406754968330870374868370137425097442682749016687336463595654936957622850668477640505456132092385696565637575473186784237212883269664645623790903708005318344099924361682672362576657830196133633995467207026588143789229709392896260775579737577289736522390561273009749225023623428847503928969625498342124970326984680181945005982157380116692426673658972020727720702284744064880352872493555275409079826076948458167406778342984128850376063382856597124175836816840226593788720386080971565533284802041749959442794940033018715689935561979841357111013344378248195707744645547608072595079171048531595255578114451994371351354787503263789472273478805376389824792332046968672603036175354944167941050185715417300772666612843672271352537680955872876927838709634034650148062367050365853147538110347331929170572858438173806851869981954396369633372481529090089710179384471563183939674319981772711611819560870554321189477122131392695628868704948708041070792386652006849907715423264359395233696048186292797169547299438223281434338029727064632639751949415100870624604154003246634442887964881612107354966654442655930883735049155424745360035477892593184346353582573172200841094533902321255815117111908724107569425828022761598845361738572651391186927031656227738990164075111377781736291755904533538212671426754344424287555415134348569166331330020937328612812262301776363990326064124144312188360295227729132681010472808965329439962965179904173731123244438256899407900656920833332324790612082732405251551497174085199350829366911119395710422386783014736765548982280483337720342220120000371345890745585924685196265388204058028368388449039290335367252589447326553881698020098061983251125967168219995394577357013484246930794621994188746514124936337596563030154287880861150712496646358091369595642067873841375677248204738653330919606206510150438855475905680127109572281035694730389768442894077011538433803667073570987124589636398366565637248940748266845103129852711478297629334316241049717082704893805997472148074665255958310789790148400179522182779604552473164845138006738422757170242275682183144635441614278805511876931110610725720827816727218617729479716491267768194250363531831460829407328908624570847993071679794470540610218519817352259781039725354159286973292653406597396680722299672777945423157822306673167769367209610507881819644024684093498808562767765954959866589997314879167306369424542095968535334296342928656948546653124973293393891049712510105692421037287057759934192394979412803570767770329407368081361507106765650726978642647701401891776425621865851619321790556189946987620492968211223300201716804529602938292665830593458170296845332553141347977578507220406327760602042421103299917623078225310295648774048582799180135446839281485856650777560594808298230217924345272887492799497444409694847349765478048639396914108739604576170338508953080197839919772650980028463257378850418733959427097782538759401720613025582033532511956115184812819347464406932299222716667115355295658919125035198585621007069621685646721955324907219499182188320783129943300329527436297759104415026245146496284696970904954834560540957937575154167539339169841978653098679192049295195395385596002355481142784148105747842326071761133517064599981040384492833772165504660249729264112117456220635282152775706573407055269777329010480499344159639653634689851728594531812899186642609325081514194320029695440478309485258396557522483776815460470306819889404272301161871432697221707500977083396589778293466649457262104274265766570711075019252215295749902252353893222191155829260181872877807085323481022234321020014285764494547206590904344827723536381200101500226574354628444504532050417200499462499500895336805057585899850587612360127920856007873584977612379626485683383970822818650206164122634878707988692763054033718521568858452011564883035890822619765683697172450213333970610654835497528601805453971459893580127618113445875332646085137543424662968043342747121407480266639835849815411622030224548035565461454158919753795893726872607655489956142076896022559869216564974721036826941124044150483092177006026717551264969638570736229175070756731418491860116561202452172806323624795777037833870525043622409486844057826020427441465481351947791209939867115532937471854515312555743725876375796810917155241711597129413485689479975716144173648450160879826174519889687692558147215927277863002532229295130166353514737058551360846186848301848487728183418661624766955813633501340542680725127329815112648978700218978131496560317552269503345452529161902228408339044699247682822291860610498177637586867116426951485881141293618146282509844087690195605160592217837450532700664172220446129857366828666982623230690923312100198006606954524481876363641216887144432452267680828307908774774576725045271699254063549613962256296924113223442608908245080792666337232678005715433253168638953388343656165843671764507640944918145857510756627945251296170937649443122896499914497543477888726037723635824825249770147850452591659118450801630760735946073070689366957149818851635934623564906445708099304786112151846812494041850875411417224985260794145678870230336684349824158791861628846041296765613552844428442539975363652495534550275539575101066297235390230295646012093920439481445162405555801485937226086677439334445966646711660680613115645720171006516727216739475232260087187436191562755757004561055866280810006670478194916740680292653999409744728859849050487633777266629176822289537337783881056563153936691905026983535127827253837480072781507108619581996830950468689825359431178426368848906307386021193363155365126785258387489408930345189781571503402756845674106357543259405855453666851018087452843238820347187843500022758802917072043249684971490315604881732591601752323592230388251026258158603556831210139007047505886285247065916507182361604354410401219283133250457273043701143001008321527394109968017304572293143566618805384315939547481567302194992965169936614877911107958212821727726186348024594597772215913613180395877610898272804657393921861850898176384530264162821331524604947622445988009461989602155579049134504785516239105478273475782542638675104212220748122495821344188642241985792987056517432704801294948970179985737447914488396625353858566696389615903974667093502645526550842645834313712031353034819106154225543416712901768057553094657741472050574675703986020350674795984306449156158171499004611573302103926901182693980124573167351783918709665265617121216331909478884116098549539319742845863773005408787790056100389080726719991534004069071382198952981585698844427110191816855331274824939712105260153489284957049194294325063189945424065721880704372742216252864116209857501279250539726409295237338819990491823483790001629557971590141898840983593407274714721891558220207741440384534130080686989548430220249640174176243887076528248309993559116616969905706613331227135242146676947945103628209025313805598005434025745831508967213063490081614823719121331030323713354863747447559751590579970150455347060905637804515163222620887097690558039793265156757451406028928768131445942656508517637310231014797201510648336373359014468750181570149067611584412674996728657140466747946926205440287661860475619165255042594742944986567792855714262118612365577658891924301438311426501069342551052328669398578068282272927911714644600730945057540891785040146776020505973524973357612367259215535228688448587891090087163553677769090011005716438919468108949878141124019746246956836206814877060673427260178829187752497416080484868712162330823510219754702135689143209391230627517521017141350641545799801183117408007236555848540987188745133063386467076030865540892578627447739957624923915913961200805440994391285473688587194359767162909670957831581854479649491186513401809565999940428291675266001991959068312993977172187977884835876906735201227646691993868864408026970941781580593949051131932641136486132363030269270804953635582779969380771263831735134115916125885180922602734500360284020661061627959990311132160039158190673348056645605885292180333878752929363497853610338451007858725723332997526964322112235429278789353178165740720684069036002081001468971765394479956972273389373337731458481186231713587617159520680918596288751270112741475195166265973774421492665504080765097508725651294543019476365861904484059247026571163141840980432487211274929647085413026053369923766941620305219999598495494906318358706557405600534684064945435369386639421547151709895991796343385812572332863023460894791372423159718128045107790073849466253839968044308560195492968719800347660028954897182769783380473507741538715697692827668017996364312068351215848994825995537633601977351852404309369658930488045565665608503334999166803812644212846646269316634041198962513574892837515275472095009044004470149317881247203111845495722900898721525918052974184796639897812751078375474011473646669970900371486648586216857624099317570027884500689325898875693029069533315040678774868574463844603662559683156786296192152780683150398059438542347256596673275735160842484553062098531216680036694964841108181220949711216959825819588819651289391303645722381615825290313141122368344657305738708068963197028271420153893484640915061794320199283858921210003592313588422407183553247394771020960274089808903540157144098183978972225633523683825151951406667227533801539903201691100873822325008121740374793521043492227538002293567802113044096284040237784655835257239526231512973606106857665839455306262493224857592974788462753720993752985673620694856142868494816863300186283965418973704484406131854712537901631086901562664621523647667822032657987264945142400869438826850471456009976910416709353289330484817753242375092321836487689785423084344003685580348497056075001528782906894087439139004758798809645323693001389453881273616851118717477339148742595450179072566968375498416439562224907082973941819373855311266981886154026689251624853784176430641829825144790751819595533817186002128679363542584211347757247153290427632272733512352020786674168144681184416306759282744253076981181695150359177743455745884959701836694310061747855425441532519562847525099693273070120658799751949808684129049674932017058662214914723209908745885409651722468437616751107575208069804446259452741222441906934365689023023539882180283995192612112548828754698260802585978971236502494327800235853847203132685056228915427733385012102007926445780597164780322835953975778965828301553923063272782457822342372529019722290002167151524029609286965150409487251403895804061034361384256513905864322522402250440458117070440922526368850395605764474354806798488028893922053351225765096055963444634399950045550887258414666151726806562167267379450867972269584907271827099682723276072114671776295474232270598428891591720805960018389696055230706057311572492213999696109618878155398494890701179897167974694368789750233939754862997895694218080416628336107606885208458136574761603569341424050352647574926902271232626027173126218553946901464818664862986034871796681781695289089375772632827874626977549622950760387224325056571964150563859595175183470778116779958394625864928917908116102396727962654473572238443059441661003443037742664842500506339309784371276099988031895667748522231798420475877280315626249044009882243335675946407852191593420476770555220855438347114968574078954341807452514271557328708787878386254208850506556568663559960034709903336848596255886582110685096879549146296642050261411730222217311230900709538204039360685685948624895725268006743351128300255809200640832620812739808058188270276162520079568771642955343112207595420883965257274070049131190807975112703126000596077255443440595662737325162713259853406837784426053551249181763855589844952975876434217851094527159518918882898425760734566441030235751735086410900358463102585875594664569044248761511609237275822364183954229850080359343083480354818114731265800077710197849030471820770171009984024043833216129615628032273828313500130085087859423386455285762697441777820322655172552074608980921544589290136686825926410940789929746301403766824362170612456159947050715453516546506565472045614895145693571803186553878068707941056748260986454468665722396688407560154198310896002944874233612098264188967212000280802827540893681223199170560663605370163780380193102952965245126085433779014399817608004649422515171066628804673001745610249582629270047988343405107787686064758834505246967665065521080060906488879037003423605078648186219354957545542710779443623027143983863169169455714936239986378314960405292264904801587961812661610781452395656466841099630473836036827517365327335299571392364925895271988667650482048474623514841684676481859481739193833837429181536993568467042428910973133554625274733924249731928492072852138416922748575920252900957492146730841799964890790041954326164901668621685015892322905601374988707249165474455499568664485157590102905063908207200063786316594309700312483593753190650510658446741610163796896071388643439101985924555285355574395317058191999401001954454491769819288834609741795334815602241748297481290027677041258060629940123801346114905595783717820823908702665660999291090855539817616743515387595519791070163804501198093065453288833107239432375049571967274951159078465749495501899305093022650158384443127844748430208890917853506546280098406920122140628923129812465682462083215017073420794163626181492538294346450816962086101150899673511817038585382705855243689717708526127964531846600649939929894816735000102684618384540841342170576250496812501605999926093640714320352354549928201756019160092105217677028633967116417816174863293732991189047551936787972508116705676979665070099922121289006595233223209173023076201492967948820065083832858148494190100414859512025387978199432271784858874240884943570047893061254744362331219653582765539263694198717300948009024367498132208224750778778751127468666033060625679916096822365125039720752340146888347492632611250892579850614527328130251359177318077176227120722768347032068347351785515684599179428699123683930423666430663545565837210302988382724484465417417942245316127547316043911003624610666838760751489135309702429051165374734646392731297398555859828303675539502120954207153494591269331842022292535372443524321439747385666305111823209133294058521345217165235551088094023212735581036035797148561446139473421520150732472389261315632867380162290053784112415154884610601391053261220324524329325501924080961641847790655786709362914029898212315199867113451036308179643768701357607579290769233261837433569118874122997659136317882436434806017037308764668445169340439540051338585514440863226270088901937575140610249438735085440481394154538850447835683342772794138709631261257429125455501694739422758776629002464340092900022345249125259320980996148243313244691946804097475459395047525024562079209644206197667146237108383990333506597156039657556769284431511697148438646442461370048368796814304427940705932236836542201255398753539430150747321008777315515134999223979557822649273215904905651229333503656086047836894751539774997230088427919916681173024190429042580143899033236179943895759025458185756571538512813458445472137819980856532692681660449017579739787589490390429224409531327505161319045656406013523400117152820372689251021689615246618272782361300223987213906036167172702438723139971167131184453874822571022831912135495231964466373185769846052678350643424273361864333451064529238575984449897297031657814302491076629543236999529692377302654236989718342329530131591441622477346543404738848891289790376082488914652536772038016985571413271895334104152803881397449249635804448201581632280045360783030878254794159333753482351282712313517551654783374638494300513749322571396129267698441589749631454738038934892889647367462605581724075374631335698120663472577866201685993067796975428223710306859650019753178311027242775517044344658959997735939420719069866154136913723039214788404974443136168083356433486700122044316051805206218841198696337779241664847570374872665432616776211224616408729772678128725295813417589285169390677018332230959757995621269269534977402713593454990691208984006724472397809560249445142894409483202790805082734183173780165168863850299329772087380056371461324613435908696920392191650634929959241400451164406329406784033411220443745534538597446903776162908361197157071118716381119931573979503979835903688093208733869315418119762557527140949951986696739148815435398115394240925115193791685143336980865577418724612927457380230659064760252263143450831237263427043860040507531618712750998882614942157105516595060438297129304220071930265600500619299301925204327724886494027422107529602328243103304322903372366901780913448858854718679801447440259506970189460713112629195801509949624840429447899388445491234995670574733324438879435531869056102792005202365359551222014795121847325590294300651785072005243793361452402561306826207497359330197107593938836716443716174460982752028644502583036248077481216609306742938896913710219236566047633227112631084381675700760478254708498811235065488389427758646314322714881289304984857970637045313981736121183808729487876550665389982473439792622680420062232748585931768728637220825090534387471260303587502804427636934389124481709792118908022858626028977706334509024163926384588853340676167361475296336974541175756847067161223861661629906214779608376701852172659147553363181783671998066305315716352647091085204671865945155221380838805790593916964941290729008638534497353636243420426242707837061611521903289148250014547520646293690034124990390771777911310259312778483970325399919987356034276235805808822559962883249696801138863604993948687287518441840747476306390658607646858175912877841996338030612742635757821470918602848838381095590865662367094064457785550692562872735246809179543271087166215261519495157139399947217770114011078169268544535051164519113819914015246327643663257101698469476596027540805086457497592746276388090039543590768116886649506898523335684885370308041502531482663911366481675676427538319680236999800212815738452916260990674677234916711382093781496450668831134971834669805616607006393599239190406860316092399239794453234562309322307328731928697070579997843558436589156409849720536321143387362194880415669265136266869578706959478770889506419421205188955540408548338282696935112254401044376594059327268285784806634891025015369672952971298906838754075252398601888634107563138767727879070701674195877156696177354129177063421395492742016672399013246965142804240378546009882861158902085339104858775512476157472592052394613348839652698119049571511009676795471665300176511494628274050156716143120130583654128068072688565584135794523749715147715450183947642070687958784845600635797958662186197226802812239300525777607242255428360592274498231145446803817153466789126435879592196677753298353332167095132089731869199346470864919210755828712510506889308093441260906321415888992309422229700083925036076103838854674726810413584866019124253479724170021316609478084372214100967649349109969553541076310662025299647673477939920501897383855681159149699511772604895020162517716768758148470891755102378126247676022335978558901818812681729955967882859076014311673502781537737053329837577876098922956744518419276117592659947491217358768450978306600232599966400161426673244727551982233032330710926783494530208601080830645062846855071986749993847639404185509896045299196736258900794482995282157646763330061490387015134181987950550598041883497010280139395443833128445818504366775998247831193326758166590934098349912868518089274911649193801891878667088714006396091354926340976071138344684623902424167696706429445091773983670610735480473212089504790445841757756408319266586089013415746224841959103489555830275319173611237896633347007686372556190857151510412616522236564135604302623205779815492198408148141810030935923871885384429535034616911031333147651910732768573452044124444318753388011326439827813598847713007374409952983480197689086607820741232331707253604597473341759119724866488406662944972440556059439304175483839228614924499707634284682918956914932297833641514157209811047133843345656077488311052785024765122439298171970826880251799495149003188652954916365705384058171415214099764441682257160025380563759277170888914748952502465655029359483626594895146117725354160960630925697607264792816733503672895822826541208995056180527559065445369533434134410118319532295237527118699777957838234379032892128391947497961578145893480016560284895679506144352828885418606623369732394240324022455892583262788650186395626763861806103557143702911541993295377076736683912555530164888038617473677797909054237484020680525322813447793587220122447550210106368166479935238600737142836849627481163824111747330261781751992378401775677122431057514618569662262701726422292635916834752390652560401337374264656572698609263330594918428481094100331118287614326917408922539564467785576772602878418899929225215608818819426396403980145001035909111951171562125821142066963481533554669534350126197034935802192795492472040366454360566619996767548318060936632581805885018567867210186545215135703400065371941743506324601080600893652032863577110494261956621335005469139372053196652286881125441874693501870979637772779365862664291307919894286913318356642974514576503347228303540778990082077266273422224092117982137868215753904959757096028071071636392610083940706142752192442928223641355297117758716137966340555211080260504146597820594111891637062512564925545567294535124187555241984014502324859706749434079942569009660372823239203947230036259669029263928515032254708999255818625934156405566311118215247465015502873796856280940131573380294424048175302473234908861325712205895534177030243154627300619835373412607548313335658194238847462780157602776352306006306181212906510938554835508169902169419199238119779844649859808210305598691499059594806384627939676087614864267205777194382813934376067724398933477694894966588000302903483525102707472448022415939678567404818454186088968496023560747596202279220105823413632475267797436837191456833545291417265407117783745860901147074910039447416373223969068263141365375909238042860341409639741834639541366196875617720257105714036218332009906153745455209317055534555063585012822213380587133687724807033072594690276696652350062603247141268077510113613712718558766895688909718928697027125116903134364546636696724456966133362766570347367692298252874784012997769142715174707218640344346768360663965352802550013565936538371456555524802266625102383345032417550794524492708404966951062256470984198113984441702684930568616614350607529179769803966581004595229966994860919712824118056927140359296808287961193707917357628733566546005741970984793557405437482626753511471916004486721971047329734181487228331818933247861515378443929772033635228956213151132543895024788486899592365149285325198663816684899808419523164638823076021168569388209706330585086840158565195269868120829239920111523207264507834308105416609645141319699727385354523009652184444696371086499365841913705931451340546010473877420596856890543798911564656757107056362195525129060611802320840797495842922139254732513934741933235465113370177142967298392512609634940474402552526153243473280288966252888041350856207321674968823504000733060157305486696457463083367344434294031588985681491275984936119325056742901933858146504066739755388138428028637261237002959350563616681568018323714509658770995939701777269606410068657210407688350202182002684685038583578768008290761516979286106037025960846876134476113294670500469540991639393895489096131547856316008260218893174662981294034159669497575378389608128011293776157003651935838021632137275268223411391999580432155508846607123186215608058259352507636734084271410118163750233451360691732537103595412675827831284502259103564907840296676240759346548073258974730907998478941102364599945162839714444884710031252604347028197520778999337974402279846628061790200813505495600172755925533589224398233029291706537693588185181265306718094014018465965356341750634186033710721372855452530234737769270370651731683960624684707031628225847744404981220946905807467214173468060875492463396823268305289000145128308425658523122847312696711983144414513586258419076516314243831536247315129732728504225078085843589382264587059108497670667590414196259369230431899837589148949736718327741400393868991873478330948141163585761794373595104025016334889487502495916741287242474091994108276870984577405393431405740179887218778061380567891093648395436921876879131262766374968090716171810155343458484345091913189795134572583811802724237241543802658327824649396611407796097656871842494703215809648215715456014696108352546429786940614418647016645888683962521194202272479090340990186008770568823481899656731593619055227514808487475358819593477118124476279896856248909709125311448392647956991172924257568281366742097027375055505121325105164424589785905379042812853832585599690327549827575534230085351655346928936369148884312454981794334941414753298859268022993330876002732969186481392911260867754377017752810243702119895030213053310568642982010933236796628717965981388746208593952492134579856659966368284982212047883617368032838605709235188063000585114670691525605424581349057517960568708499324558859691455189491444560001523815794935201356015519065023985536225277199561658833527851324519074172437889735922611223998799786398492221343745993675404200958121698401643081151092754863374241495017682828644162126708110069533002092313566363328228204767455704430289642488488449925698547162663204780140546572694308348082920932354833553582354618577159392678155080274251807943073792510023165885764727742648369842148200821596388256759706734774842191221844778846713723266384888948586378889072158400843193218610420099134774038429954220651633957839917415235245663485387553959528839927439594164329924224370577327176190737295386235461551714059417211420590322964322118657969559871334519061797289195337697542200629303313751084494962365222254276753695246536493886984158135255036377056915596111432318537257734071174635416046103418922461864544571879587825006469488631178310676577937783267115752175827819146941729960345736775583353101196063915615582401883465431050250155408157057250152798073303760529729650933872025775726563324907435205972697527419637791998044440086845626125499585406064929481606754457861004536212025136132219776112028869891192574191472401988448235106116188712357393051888297203852636231039901996464994293500321469931211865265970591369319035570971038376566017177043522465225407313642241003161683410554813194028609245336962028711076560869730463143246166413079457496200898314840566212501989565387900358211307088272457658650386011712676770105111479193293250021624445620102288981217284996494642862270003237560022186221718283293268263599828996555387696896283016671719886753667071190182577113661448964385532157351650252290850165300243463089446204973812672354053302388643012270545338732135030726997391166843226247973395095120575844195522879188729804538446963059332723318221822444848522627923931005201378752744469826914887674253927016585679149955799608402168466815558824752459339788906704294867846135664826992438504237200370396559617517147891976012687512581584962732673307323994932782005050971836576153029815855593470038522675102906938468053560429099311726529582525874153528669413023340052195286493266431176386882340651696502169598316369361385251457082433574953651117459299661719072968917613282181403475590390839779997613724252500822732622787709920263527175582718344425889563550113019490967952047213423719495983919331364938556731555941097915082970227350964939007297609724438356906250739407986992127680127996937682719806572280887581342414841646943557556564185613997902937446209345642244522360141092081610096816066998445322279339765606316125393697104160284935884822733778993367964819450511804311406562065463738622432231876694671617782986297207836431938185995265591309992702327881597136834615684805115359371460678868668965126586926388711569884114164631692774616153040770888560076484174211273003582922087862427241583630450394172990966700086828068862803112356854658141120084179315771768406906218461836610258790134224273276286588906173471527089960708339723129840771696401358380033437433532263905551066453229996930528170773501316850579129451218537697793840856287866757718776298995415051192768883544854057176032384559127530043310537287131429864901019420194421119721389462673795318381004836665879939160102903253237778353262864268464201530597321433284020882304431144286803537363537446249109054389819766393128775871555691901750740098316077419067492435402886764060625646652997572798548692577594543826520606163841524164857741035023674167728611944319159469855327161625946860951409526271484593997095910319154583491028592210443724620477157122812494472148048840916833717387874293923618312003467792849729409379557000683587185871917707909397572158375685257469084746924641224052922965466560282804637577629306099473934850404340631907918874149414381121906848353392364727036022561781688492612529192762382669147977277683348797959351489848003114679286610918540474681228724691019987094910131214938209268365042132203436431744608058927786700549113487927579482945909318334727368632429539523390128906736448063302333718957152151642525286894959557073407374698308837087273586960257851987008512296987893124634248675664768699263894927879205630333126628548149302944883306643513447938231393552817651162336575182096226955553272780528225868411442477520262364172136081259223081454295923266046121496751497785270562647289479828293658408034930933652838759598615641689592105216020695687460191995281283004562477010195955431811387183423978083183394026241512930554900905112462298783886126261963012738712371832406199212461394645051760649843009484062565286146879345817374552135863458033548967859678350095718483029626957538646534238865004887265114324323511790009857585518125449573385737860347744958033996238610700016600211904850076445485304138522709292061399013037413256250408431553408445824973896457486151449920868749762457727656693164307267523494803772268013529263671331505055610880843877533178438509228404878398470115923978354065329344101848077668929577292197499784249566986547699821434411890588047337524633974040561928018589427254585162438786304432749745692157411865330535818543607802565319622573746934320528730060495262763951003364370058853832759869611726872815746018063933816941986498811166664794295173674885720016726816348819514031465476407746290950686325490599605582540022163786610325542390215995544876419152371148093404528596072985231159188447884041460454113516892733232130283384494492622776322429951874877185339927339979809914953864681478871696372126729212852100326631636156897572804516832265221370845214184381170812719829917022573351139440991528713656957842262847805045783708638740417258851706145710162620980902955889252342605964574653578103979125524076698639495174864210827580329847018006323378664394919531331522285698586592088874710277919221180966852290650889613547969742062626048970673376270964744358426308941053422559106070670903865428498348559582412133937574717975764715328975841515235767885689716086800482860933040090658900675985912942450306675951436714200923368736330577714938734010285105841876194254865856110402477953488001264750522439791864601046243968121351745672966408871022995289690449076299270989180822299189984793113816967511699349340366003363124679574722059352548956956109948499226357774803257501895375682951318997553116428170758730169637887002131996699628937403895043149089914778721750384004281018448562003469707568443102039960753708278138797354126271261176665251652327140885535928909207899856983449418916150347953654141280705938632304977650616136831539012732916567282272871550123637471288134735240515990763149057112117819993125786069054678274314264395791173222106189454600087090096061406741622054206894816727178119452357476646540266236716219787396037764089126993672855044494570930908518831153648911810643908466067084034672196353122943541745676259753234482394566128618113389351227909210358340044015741914933642944779178976392652220099719276008272988918991688883883508242059569542142156817542403880270013184680779747895818619443637044580666870368658299700689000345030953150737187338425238061701748014643645964619589426187754402003942540774826485647040785416438951571477974896537278876495413592437339426986913613315520073264079316287038576837507314113135099425474299811032932795035368107587997579177629287749013736075286984312427812299638403369442050282469006421665693682663746318954968804502414729519302569607034823403868145112313183576616231886560450473224628438620502248248026428508836048235388338159469730479816561898963162678774191297902199401154292359436101553389076650754833691346735297582477390047670917137147489027456383998498851426831985323874016800305203024206426539805498249603653824977581686816521960842113216098274015783457324443378244366492897933753619065511715634650466242772888384590506028979891211551541843047339288224013779605590197686596921789512863227418587721586421803471257272805432217367430957148527315184829244028228776950931746182947330465584994792669420928993046178091989589470456997020728916047104008543629246393771996960828641177228286353424492906761998557548958434520673181290923613899566804715074144393254783398101623537480066584176061999324317049596386057514617653936039456535801684106469335524867894071553078547274301625152101773864812530619102702585201235984744635976106788322718928537327759165846358717430967816464258581417492391486742416849063480881115233622202289891361812234781471198983811990229674546274600851670327338547180356660018794872946413919374452925389502993790434945646738999624278111468046758222963646766466815905128139213004090412834365973984545493508793929782937972585676427966121021882856431960884705544785050255138136109933843755838258081739095240366061199205061815249599137501983642190559400097241904336986759639300252609767248583032438668557817791183652261808755309377529579516973549244977680913270169454209239041562136596189477502274697768215610753560805941361314559697988322696970426453859341040448142269352865940127373873740894471092685908347866108639367124897942232184625426381270840901349417074218939994260239493958345385533696658610436892804652510767312747914883854979898687584319357187795984889251408309387624814373027477422248780477506922576945413133956429679006926661255545920978530942219755882613281763250513418547760679041717319866991858951930020434838216434518225963217941569727199118905028203720223303745836402938932521649750226421325277551668673845531935062321189924277750573247783727894455997598833984115485300817542875747021758333908565558424869388406084312355774091558193470328102527154707027867596221298758133438250424135879253879993510626890824461925451487844596608703214069761782341721138201826119818631051391131601924220535356823616359528376185463912113631207250001600062618222212749653910643885539874578135887871459316220070413631934027647970866170087596783571695474763760112284992248841110592837311804452094177300578561975317771040550570137764418203141942822933794353747729141081681646230217888801381581715662417241124220271860105478346025215271713911173812272348438971863272742687762760791445623996333409354956269233611995842526685406075978435013538495162440960604221488133561642614357573617175581934392543237136743535423344447788132949356190469121503767945638608316171122991635781197426115296076483645440697468303873529600813751563648572134446785662387445026038112807343108225861997228266070774900585098723621768979996884084938093324470919284523786564332808448647756921632372189641954316793934854765081942891140318078444984779962098925246976975459237954276393537134347500601723442737393482513650066602254803336670949871781944544388567061021714805381804857565272604241955283714502769132370756764588316104757782581089484431998249144928445408518877213716006671694389641432810329597703305036709822524683646293943894753884174546594935695645079200176810966361283075654938481527115941895573482303227135454809465715509306683622183411803878082412247716538746258517444601901358689462686873068041758112024375278455427822738454300467441286605195003792860342749962921068397416314846691895764966520357840372651121735231268190300470435086344272219155288877971239180771810928955967379765743436308123298537168172839930346340038114097351075358746439731223165507791635102768152032088144640200123587951048952955196270777603922280152850138079704518692782346027074920086131984838446428257269576021610234559165673753563768308109005151572505497915425511360470880070674742216807892842395868265372217203920745697401684299830592500883544383323814468082973255794723436637518868858658212647786815339612960519311047678161887754658814558658407042113993871200043428757478301157630997576858067977535372253282878954129647744496526432321050938772438424024300075019686425981427900326508851759893280110873854038392854724896972814447950093964135047292677165320177670399413559726378715998897257015962376021500322108771052375415516610616257887901509828500587824829277450067646364015634260050680955479628966989429656700202939435378444066192742357728095248362292893611007864157508362591968784869880310497283105224853155816567595961637399564979108660899963436148185046727989550244223732991220925753502034519393341605172286771391861652469117244808820163834405751911112753215113632871825988423137024008168181513803079013811577809649942730708724498580116654807517496088759108858187197600338649223797918075691413695424815529548235619104926027277024521699341044432778242395319496012822844616151425044361163425100763179115813778217251873565985940988793282966082556387583275419526708621752017213414605048143599512938258800809044657379049258546441711446642648994021753937106788828137470114044399293825542509718003664789209400688221274410067401236249974583728382071715269417803496766453366700648683494999195545260686878792979381880334082618188477322653776697355316431728657956090407438023762275089823339697786369242197849530368551048628568408420748433445619619046391878773958491693370940748321888124940562998826081395551286271480241093711674125740013536239927450220938405296389053630064669376583620120329145982663251070220741801629425497702321137376893520081055078432511241991066348989998315757911862788188300847329830535826195678013536046615310352066621195431969873459710027867152209698629482880459060246885197762088477259919913903157668565329640904502673996985927421254153956061237821301118332379568934537471033838724120218745984062357984981456977014025536739746691701940701408508102671688894151106252369812879077874114863044474534002209049311850187454343772690752830314623276359791418868552169270218760180696637781884698828893672255925025153586163294595547374414988208387371072757278519874936684040749536919627993681879929270725472417763690313579237476152260184225454841007063180382727945026232349251066547812511381763456607063754213487550658216399642529573155672967770925295989909897643857266848513224378045808434998842739198886437974753261118934088800316136275252220704725968368199445377372272393634444675702330242326542066833744670544046515211883027856173639939482191589594231926029769168235020462345359511336324525634469005998794425920616873212825338048736990407024539129250301426618345703249379365649392259410487307764022387465703970556093657810721125052633925399796861927180193464796819422463496311721386565224237489756920589151555292146805293322948902415990288023317541750593651125354246192231206828491026838938754460192108048172692814129913015373266937938314593791492061935740496216944249606909511804447302476185513578806650634932482106085544595491686354352186110554756921889211028871062180864637871360255905735455575902559613391697396150738099845450236000390090571304034430694457860710360596963500508813110167856177083127162608083994038631238455680256787425601776190973484663591145260472337134491261210209421275955247704121222841826946196692227047223912354426438118645494833569510871865293403237833765705196545031926901826051589764395928575958782913609151457608389093501529824914281498165299332148346287297093812875688957247525376611157351992889071639306106634608136148592684168700354254754436743868684080816173834278798645166948442544893025702898798441515281866314181231960006787917106972699344152339664657701085569144983707001266227108595909765833137199960766744106113401045622833428636226817813613353756715305485310236911988121679131620146399001783536869538688952674273499852661042451585882848715011978860026609587784152085769275061404286046060285950448293018200268355702714188905769593905399663726429097229118873942580972713949564699423417418357494851139700463638846622756771628251858324064953994208489673771042702259386659047515084207899597909359181037751118400023135789439686030525619832949596006105993501398918979956072111481721074197766841481570570893138201656815312509498125962263387302356641761692250854280351993774691277295025752579252673937283477828560634769501305359437346997266946223069615101407570632706051455624128980041702617631068618085978036561671522760482108365942990535314345899450062608083645216732451478162294813636706573687796001311227256123691498651548441669395817684709737826529559424547270232958590788061285763571290984742739514818059567114666952073362872873468282859811788262202045377523393014559130599120523927053686480284309837378340186565725255960064010675121031666211961369285898712355766410799268495143948497288212370635713021943028623452871800763909639425968805879914898514686156030865373724523796529810853430036045776038249432813645354423538637674099565916553781490817915896133400712261391041870311008928834893648851573261245452932831407176948796463782826416467745586664433213380160605925736941133309501906625183502716006650965487608372017716386479787426096824675142556002056613120753387545568602188335894515192144184340541588239224073821461126827998281810935438567436635322563217092688200770202838542173877665083528966334428856042269292338238882811741367693452781746013638791205922896433801173983985935687739192077895089593288511660136997929202837494903574884540496602648655282897639817836452828932758810837083547263097584423299876655847463886979467014379680467206843250723406071579517129533239873449667470555455783562877482653767563641184835659495187713402988633098252817338739633195572500027414483563639291947004675701095721145747501505300111837340002952966209798856456393510610542913849722913334071024844245941926600704402351352678117253207287580129925433924111629598153006912812053336303556744205322129609309461750065543934095295095247815141793493897365038813675655912717963065125717956414111879904265786939447650232170818388067565707449384659457413404791963493050710676247081627975331716399014776931211009761115014128996781937429478878446121739948057211413137627225423513099311962077969276192183848019899117992032361803094669303712603745317213362561822291635530102667158673043850490920635613391563690507797983714289767833372315058672293205659228305998842682434492251792381396364808436237850478148409399987464584538943642522587818291872850375018922111190880433549822231503648974019813389456106412622636036571209030481811518200208114159828353237548748288952780437082411592267960140696364028434727755567289487821488869538844080883771823185826854182718849773215565299892966212680341376355211621975543644274015819988943322237545784067713008093911345122771874179149165323574783690965056632444082199410706400843473878558061453196995408844193864117563668011135736961939619433389815234096824018469679736078140297984552479947264275650917375861010162659437879487545517718966000065308874742879099981441330296046102255440474292835628248231862234920300522299135523549523503436649421546624202660880714278076221231302204969000821765553330936009714363260105591827939972232340348463718203296584666670668148889668629043742867250349943065909621844655683799366534238246800111475673368303058962796047898018062271279825746142493791602451751908565093458062309259652414435474699518797163029927213817555597144772004617681958237547848463574323233155403033627255708346429228374736051155321806427113327543077216092334162063212551389608776267148187730209354673489985362101277887375598021229042959999597727581413868488393754611896088260318832146352302864983446723251631264283048377095806658136598219416933889681539256018601051222326821133202491093741397899887561112092646741213338115593397754311773837908400839084538905816497216049387597843251079898967505912949434692946827561065730259624811410111379657797439176986645238618468233711604626947661772618092287354197313616074350097545137769717936254963363636564765527288600535563840369553809686894396643929508085993962697769182061516755464476128562737944936499936417621634898228620938391796389535573886937704700911062065459107438046576252430398898887287847556551192942810716591809110676525247087668595852277772109728621483055248714423497762876310718886103070467943487141856725636547845910276441348677179399381559573162573624041109930234762451291955433634651771609835180005305234959871272780704411362167269939052846609551360731933511657874454729433107700087256310401078967549706093838207476242819851170696234884944104383345071894697218387726066230730364004241432214660864107211836532303495385121314241107270413338571421964651651225153788635248111263638279106300780980863232230919363081304924064094261178048105558690978442275060513260038547376606496973377825561596791571325439477172531136870205951566141989005604879677189599355896259838619667703849994956098208932719323961826395585078822094889741494374243843744192267303874883734512807243422603814600841095162842333489850295741526275851866867836809016401562264205529160689152902276946173785646162823426835835629830343178668602978371889111373876651692347156785860682905798326943643109842642314764712832623762710650847294695342340160803627226605966171286971859138030886499308664961892096136623748922692466538122704921380568835986058745493248925452435497649222864267504830261743077095260561303002770661654032517990356526245601375706446434748597372113474927580203425278137952124481422448325545868892588547015840171871961864206291152034378343421330767147262541443342204504245056434183851256322765452141455835067850179632737559683855400080936157297689111194174822211451162558336456274180978829501352017915827219381238203390004237806644880109359927824101978609344407441178914271905652435877253349351454708109742400625885372518252331676556576009422018783400808184812647095968502745009682298403689064095709109732699730208768369828822459155126351842957821340541500612085817722417235516858948943528972641521385758974905904961000776429317852363044935344001726862121993259058146380936306780872360151236862486173563887499948733840961759880419339804449163049841795677604938270536963507937264447168820695882456522971786070302493779489861724046477999224814576228508824148389659910299726615654087598814850300003219003909066004667400362909903583814700203950017702087570385430990403817827373169569786406426846639064211936319647374375477050271061526399007019050530630923982968959630054111336278094695677666765242848806796745174620390500896465593923657189826198295362431878808165014665618838317883987360007717378839625642640009394892967201570245912425836156129656121694573217613002055285271117898416133160723350840280593295219727088171909399880080105646872056220983862893282329444364589738139600974434843649235954783441360643450058747688105948891336656438238061741011877945239013848233042202602373408746420487269210619615759279391770515121010081888392370733012822160627388254261762371077477680986362738707335779744247483117351854261366329051607397756213075808534347875261297271705802082227573888183627991365793664519896725417350841778093679089043789556604996399429640464324184400329525278828623997296492687262278308212340453621548628475025805913867232983462562233586277091430898683342200092103090582173038195550638762096662299736984900485926234251084390783590616055061533205740484955533622963066253703292893183120841702374463298176627125343632963779575958216705427829723940477044194400257294366216264139972617194758064379364970957637858499137229807994469213299875040050185834731361237402665117187015739321418767396663176905485232598399865107418916093487396288153291495383051892935006292906755596147446972009677397914592382529252074097802658002384977299969696758225146094550741988267115074683718707859801322233718242552472571776508293703519611897151513228273268883243495758804556221394869609571530727257974030972909669471524110505310707303515117389441307920242616497835471323637753974013529925889049797964947990636808161047636332485328969583530038356562189260582178628028050243613245113865048847310186642287769866832309249780132645746642109175557575255921418876552431911536733451989489168441115591693140239866758266126593513676494604412840383262189958208562345936647577153042507989393584079006121660691556062773180668276564337155083308118606125131070137336027904811672715995122254797065823816416065277176681297354515918765701205158627539588447123595843171727611519617769859641524444535911018574950064985643714315430678633269087102064892048242293238727079967090473333500833854747550338357790185830916532984683593558529713542785984886277951431398515616991797082199337778823576123610514248371308461348765444740367414846359205662381057172564323825271560941945194980943292087338240944764137617879263586693043667658806695894417083072981663477712230912870298215529714774960877217002646430358899603947528664792409365360884450296247214620990493860101858746090457811979506162964643047706552921246238205509486351738305348325223343856129775795415412901139761198704925718566712419938866854490163194909970211594414872287313293041683779220655938268433718200363332177716079655574935036452280898020231581738506769539565039728546747788736015711842889950384578236636848355751963636965674747403938981624445455136543980825603608948172403466629301015530706917585144318222154436250831772901686387188940001635722482206876095702232996830894745271802485660067617931525109184690068155905310917790645921798598630134794981531752958733089822862796206806776240020656742697233615622924013801235102514539727202628851482934291414201645649991182884549328831157040273363997415653987911430557143148601884781994328750567964941189509244455525106346747390960220416132318073499198976778701267752017539242389455043202751277159556831200569652704481578459707008898090461671131432131650275387530467363715563929815863475535843567286488451939823671745978347556550087665350172246166938124328458079332438272539524948337116113265528460133022553561780866714029399877786992754577013670757347395763491770232709990379756995109940410370171327572634145571289512720443636433807934469772246664868289167811504172994881933605268376935938833373370401097838814526647422070170119470536042176646018082187843402352786158059073274519568297772368584254236824089772042229925757984011511276879500672769131030458251477824755471257062199771647032776110797691181406682234290090113665066703143686022641981900146614645181480386198943356480530873878549579556669831209074113112389797509734804889715279189941017951372983412265466156273817635279142682368142226520781198799212228592405141857082868828454808474588490928188194292094080252711257068530446936118405090540695374840336469509923723038285436259315741402659934319403619944751099461026126771134952332603634225085895954917909337910286019722356846601026602057871797249333494697801862815174535025601105357216108501089127170218719058186629737841668524805211058014047233446732811080375696206386187307606914550817467383118104879128944234960053257722507285323933867874582243775343182319385063626839909858697387543613036140351811173775702614256347570199898623205230162136360749063423096927917191951625059229717026388759920656019276030574831223332663242345179934164557445950820304101423581828767893753545071270630949764988435761259682129179519521462240202972367668865137962644342336912687728601425672275816605764985479949805975484230893881541737706829690590375487651583921572318320725831969190906829444665208587686991827691604438308673493842719979574190739631002455751003799947665786889317520611466384394864866538413138481455649776353713509899938118835254604362341290982070696211684523786644891937104220847290478787254549393701922123449780749086036893912341514359122838066033968075544387989832550339758300415148428480277523601599283304271136145463096151507759867393130310215421972779880271693225383408329416621857202300407242868175247465031852153623634443921042171391163312258037481711444039357422094461203330501685609463780011780804280106292540967134331315640245191598184850259831689666167278909108971799606470315539895747577540164357562918021323725404894017194022315910226713254660751540429431278704786881733829195048828385784680649984672614003581073865790179273403817206037896878563819623314200992515733960015862299107028230416974793750440678382406256530258767293153888709230885963511164873769935815509057172983272724885978815195489536366820062293456005744853966532519671294591083171449335888806524824913837563431138726738163970423791346161779557511305864471768109755711681583626086314401224791659349128667458794892888423449674789441670280274996606939558051574041634711416812541504352290099170004414773481517945439845829162434382699371943131934335421760130209509523487391675290930932891227302260805896823313180549828667759603502501516877736966164469553231838000604253500173160639866261142422107685132873774597724354790462433311682367713192739186131637745406301173509052665289507657610468885499799173714748784224272218045571582607037221963846016142856265066284680778239285561498048213321172368525615885034777984608441481323003797656333450605008321907585327903659104138218802977176166357729121483275574825262224649510445030436818138653916717805054515607801508692055487110492235434792384292199639165597858769390200551582500793418417204025104655889748972250421530837110095477889454041311834007955769330936804564131857355581242500159604015263817504242305630877748033674031655764212770475048275682762226258214562800793464541955292553201673351025895083497844127672724964411048407543468740121101339454849095599668063867265938941538082616290311374011788199177936712309607097389902116214187495050095229273974284857354713307675475293830887473588000603650233981228448646007432128154615008071012873784964825150062606798624459329500285864473889063427257866912956841131724721613500925429844228966161319983860720181752024447458166258607215594898412469956621470050219629997115068796421734435209633950684481127484653672534438959758479725860540398757797642170403508317223875889671837160256132823849028324843974824054141797778234646218596171381732377367179877045097408311265754384613780346967033822310816814764361841915536188898030688332038346144597245188519563255868259443393782910537517049061073316303967604801648340252876640492808880179520538062522972392929240595581401001082646842821166368667476675204820394385182219946151841196572638075585431729745683627378929708750000528217899450031569279959816937659538824489406216308186696888371555112677048492332125401626855427536148040565113448732448478540194373180384595716600183836056442442308793923980864383145763834422582718842533897509048815964778420217426060774968069629181466727227282174793117577641463761638459946578087159995071012881735382661923893864699726553170548756153327781117530026919611312144477525624089992986260876367944762100607074955116934072681421662429410553502020898964168678730010124303575873373545434249156323700431025653302523648712191594431770635513317093260178764905125789557703475250838907771358866369845845890945948639159343691139038131778486645568545137861885963246097038576926832787347406282106750534804732260422228733364875581117667495543704422013627220345645605170377446580317064852213953338546070973408750884611995168415210107341444584505597515370908298520011189758168222938645524779959659663577117541812357206938069792853249936581487123306883913395927771129851497430843387663017495000186177646960084171308512209706099285592859338394225753548520272071628125522439880627776494642133077156172657194521932247964589032468808587222350677206459178077390526160154557302892386630309742010544349604191043748318148280914336101607382002317118874835921180001117692347153494841336042615850534306133453622488019840738747721427889525316265197540433190687203765314819610568058966872565619466332510476105782895863790145496772093247917175489676507210616647456912849685447921326582867105559494190591135536696881462361065324977333505923706619921996508292419456863265529609519993219430202015490446877858814282264032174772577226548917913405975502015811020305887085700961172062597662464578257276208832517139595445375619776970214310297683408145023982321033958821446698309341024453229243561389896623487672626836927717454094945940173653946609843764395106395724699654402543509096453769822061745232831542041783803100006857469484691602288004928813241292038751829235750548377278256240008003614968800680777040442681239259956184085529228189539123210559572544507625210591668716996401144315926892078104927646537069541933030541763258844058815098178373515828770901142004865098199142836273499650568946804054639886602604043494110217431533355131376461480348145541761664271969334638090727906593334872110127678878887344438317214994746452161496876617230933623245106615025300663785550365472349411863673781693376100258627886546405148403895266270357259597631263521688516090829543747529905614181176527381199006282167687347972626461352350699668631822583858035188374927591715733816421177070414928381093448233925925809128295422455546580604362683237256173804419244650932539267100183514148275391687894830053900974811753537051466111047262446823687461414148621071436853892035948591513914220554049353338560869564965101831644115789248680980253778403140394584802311850654653371545416686264831985335167822147586807977536041599471664445825942033482014385962402599212544148845134051285633316808122222225981053018252451748031055418383759744505153015661152977873075233774983216311118543729249695646654376787190024565842055885471682266006009309411399351755338146386013319902370102688189628033426563772405019257167468131674036159628125118785550138389580458753898672933962259267261162163155814670010323301753746129679488483036409430608656877438590156507657617586270964512276126570422837864782016905777824642883929943875483271376447425741688212458033500198643183043121673793030671895888674656677258383832336602821679454442403342335382891402115336200070210275433550759311823816230823727493774542038884379735046254225560852634151342218740474019718233544080582933281027616830197434406024634595023912467397551349507824548493038767347867503354804305320800095435771378634911396621430542533218282780601654740711499041454652135213219295730306713419020286443351833063080055296110652225213187169019957611409564135379409829648453074206866882617219673879374536083313627503621440340334712824181541377752667354553919529537468362667349352189013074365003522084300152146188532429629101014335454036473601443768463236428802425015064985263130076540506120269055663890682759063724691196054258260883666435640308798097819268027042614538745228910580883133386093492126910127174203363658344960256400735484241912979254132350184673446073272137069677156183320378408826815147823490435571948152173084415869546214363456288234944156816007174462010888512021292081843117256752561230301828991074155532078216380221408749307012499194025775029161655820256715632898092404689494048739897943047971042062022344111933002534311525395272636898918615953777702342282643207949330984992612638232116645658932443387223436765201277823945321124218058389170601457812158427921775546484940891301656944930978736674870212906836214257206322080798193322571959223753331668080862753387469756569983892869867159322252698147832083946927517904612823450262633973628459431200174718916796365399732701040232889207000569311052900687097665976704875129894589546179788917213555880884668361428075305296531569083324366318353544178427099708037874167736739054379245685201984930872434455455748903799943008491228075139412467464501551837444159320514340795306771930727982339117420064850304246620076428613542652462290361087635773902623202527989204393813806387079776116052502008157651468508129894232419773575191637795786413799481083379729014464741275734831162658231490982989724543360086879997888080869468782445632227108234877233247435938175759462990467510732778235569182011575219054627296678237601440250170867520291242643458234399355806135028702371003465252944154337738925200989859760817393603808005364874541690284018844199782882454916893109925792907110311771691122893367345487866074065068185024809669521855053807487682897653528424084717717542081435761257731481934009220903700966211764960873689654695359151399193216237254536355207406445497023966407291234061742781294674942275418302391052351534094893669211272761788009649367223591026253128209719640430725876835952894632823979342952429042176279679642851433930694505987045585991792141231000217876688700340387892483688411994129817062160957454830184037315529317005608567085618428063180910283877062923031094591842526574059952184668936160076060556501205374098654259299353304426027544968256224662387642576915094266681276906893714563046962758633460927952769522091396937673407632890558447770717261147149557555432261731554888050692930842293101403887614003594710030202651636053390510140200508352166927683537249127598729294194959540284713350598238730691717507550167086404912745302657597265241835287386426894281801368097558143548787303810235575173696498302137033498697576679131851316264019473500073137396501197547120286531543814749609974746538370009724957747996818094734959345105941474849928141965743489579777830194346604040031911970303825651573456772469524001277640811471499986553614705411985326608855015426337681024415618003996709759873506474855744128317717098492511301539539877883394106944449684594495826138852804091135850070550944693495005233637620354135114138072394781825913439392869364086581672311266227628139727331566320712695289476137850133006945675331774928971678974032109686715120391874590437487404990145277664235506285901712912836132707846513883210313486720326797487074229994709488737281955827237669890013097272688186036365562045720110439491767597960814855623812015294634039104181741459537599811864102830465929178325909657152944866915738484029621986048046628893251453333000885125424263664698273698151182080362676723237542469646290552213863786371098209698868559766877292692090719342864337861175094962668340956513979578696233135556025801862632437700400729766916833892943129520542454268326281985837538434303634151435263976398367127912270787980443610353723529977483145092801057694874783076392207026396690830133220727629511533491250146032078866748904054725538380231962300314373665129403106325229113093538060707847054568728411837789695970655230642764976259957173750404096019028009875923764511121722808327114417845695515109441360074845751445459107253444939140021212978920275736791158399923221886929185220188403969270278833145983396469973211966401983646488558402169937262268995421179798482360642821277626137864065456979117970642557201434556165805956776096822507580980609293050241593192727042614343911460151411972269129640078466434788396234302358622854368304976615907928062416558883672095516669889066354768181358346849112991248640117606964923618636383333681666119406286902750764741719477333373913038944976465561574725563934317042010130926616773316732806263168830417350607660521038474288027653741468891532010331729294113167581588779610566409115247329424750038914426496788229465700855371656192168584152195836481710970731871392645619405335190207552933685469861792490230646345972454950441767691893876408374826179627355685096937688410640980131323727085753440504831543614301385703303465189576153089988709400348781421103407562206094732567404096311987866766468079913268036864448622415553768264769676208775230005886490133836676395775504979516097494304556837490195781427155212296188938529248689904050007750754015512580040624062506685606703049260644512375424448647042672035912415310856126299914278579939670720304688696931323920611740012200079229390475167098560437664275830927528986261812070452668383826207023473266335595594884073767802164188607441044826762648377731297200664088795687900771952747803031254522097564999890832352681107099297485626573588267065399050896542457855986756979546578671528598652301327419455454241179614862971333321803042012419394649731243326015720944853993854649370024599599946718163346177287786726421254863421221630266373782368834516311890795760386842498984446224238949236411683486785420307947328102809750400102254234147675513572640108360246281247542413279771263771054474267356795661184564685389073714520837852224907954488027173969261519615620509698684384357177000767817043086404630278441516649043569469508067248539877350322559448557767786647620964693899520057499117388337824483072514390681734511983875998803603536243484836288674593221455096119602148215001000758089721634894005080000998010383323190344530243668484085978832332949169054631076556234950918180296063621527753539470448579355585152708859839855249965521743662532031692289819211814498189785761114684605402177374149851495894948523190971801851286925258076486820426352893249291161650226282952481310251196419214238693739845829150900763065296462855560661624797584146576862315113917468828980182302676844669451640011180909229461102663096795869706591653844592985343355104180042955370452395304874613549283482347602291919497090545662784756220151722450953422167116280659567454960050251712407340672082676186564379689648704799279028067539991010675294391438042787151720376887522796366839104411949840523480201817981341417139615394928347897549755226590741092923867156887786443384531450868618593801388850938968816866361754906770343999683650988250353285786415352928431071806236582616715454813612186957363298755329339684603963058867637794724995370281820154498932278781941319450235606193214261514283066453987586933716785449039805671204964313317596223493609309716854676085679456874431163745673648849783182705372363395284007443458136902284093543832695493639932424243348741868550166151487627307832748925405789657394929394555529068037252623933176277257797789054701382504010351389239232985072121217128529398842752840846912687606697556531306344887742614925661920387363452982722769143150662801472941028760792207089269194256291348383765570428437581972103288924372495313580252152030447020835995647898220244632621406496607065135116912020412412433520936603163892499405548744267365732351222639072292007642139894062131614709068199997038663314789083226171448137264770714416526031893695039747124192606428851443033012801291284097697248711848478714680367914755480614366372203392141667928993654228314915571948619361495331109959036783186778435637415658450068224056539571830279889355539338261022197916937965900164880367384670796547368989849755309201019790725696303553766362116123976183165813268870742214398817572916420602281804427664486844330903179570815865719661654597461144152261395220556976729302090025763302016512403727366257650759804611451716486158055122171212761704487858269578709649478851456510917011905736654175494408930237563157273914064349791124621726474167018286726502429755186137190250189511771222303650487497105664546313002835241052663548207464020599103096553796094413070273816839482949071061741115105775628617066408955999764854077228809685057470688758867950930592458733788554718830598172605121395287598831212706059289058929954654159813994467644055124853399293397533691075583551756109303798001708435300445380199762291594586459500910463661890148555013042681297866847397193240547190932328225310195087292897970773723034104782482592598172489441067405064786227865766638222914106195891606950885730088411930113422419342133412055441864230557789933018582382882622300258189763530854403047529301048723639185214394746535536566846623299826939267842801369789900949922630552436690582442328722142839625849624505742110792098990564243509724750969620291941125487721439730161679514502098686294661107630597467585899530201995248832927545252012857835777326066369681484683344450524617085842922388079403245165360374756446094449938482674759370059655762590556097636498423267355636867487597540983785602900568723036104021442352308727417923008302464901239771577272050020536493001784711388314910646366369337488532713025414441558704297897394895228047511645866517334493620460595295116696268595134630227298894721393029919819654090496036718955703808622963331349871208501849563965076727243571205930852672787234749558532832129659570138769195062563753336923365335694865799072952498914858137132121514721988332554584634695526903717813567537974754856683812926296808348886265134233907360097752257336197176665456218569193343675238505529843886496197410189156453978906847463470616205849367781182782436416972349730057205148849859287355921562141792759183393315001933126874020793200329953111637508543840723038406274623029748571897961052889015129411387236922351165871271126826961138832509625883265180988479029576296982678245292533360014024821398085433463012116506159765110574458027849688629461645444103178460700339648662345637253865931283718831519476654665148598926947606070763142073807740894035651238659208287593375249117451620003124410221309411286244830958851989997191444734328374920666157354702638707843260669869897458715851127316975255964365622232429573993465667396339930193798848508841826759402536554127800041043279822755521468782922107635584368501301620560633263596935533459903674130230690402474242967628804657631446639958709291790319214641011847099666796053030329716206331652514111604530778480951851421677559519022673531802223665686458214833614474777770142540781299758900085850699025586694444868881649504865098795326583326666406597555908879729918947399542542370789103832576697464735967440317794868090740597317361635153045852363648599636786643021706212625477879636267590730557407817444764955602140598052648971403515941470740281003255783668475020602060782759540632986799472482879572834907214808571371549757042021150505016456522797432251290417885619464148055313353239519672941589338897872320402279174527496763487508200535408041067071158441663123456475971626113940446409350135247522758625414488751679307379588061349394937079379114496894596720447372870086754710625802564109917454256232775734691161629201126217029645740271640761361055494605602267713280674131692732640955324813818556262041948663827201760077524189060558514695934487249336177130892046940807363998843495491209882384834032185329905651528174023191681639174506807401912512871987021891475391252840683766417302774040667118647257036467745685058158611611018912519160334785090484639835627631660050616468360758345237204226089719804789650823199344561557350890118265683162007221168866354876621089140641939654000174289782043160587857224366274086839810469046100601305136835142678383702431097680563476353065299426769313590403553644891393737914340708837583428131209801955509273923885053608874750286169198240654524161526194984946112674886883483803038600522942507039231043643340017337240268215143539773780482688956360084484647444800519397955662940729807389818688217222084339929816581842612710437341811237995713003829693264372565851305902349193160065868639752076826526628397861871363130058628772071095515874160153090100989301403052764746875310829426587311718819760777455008635030723246851941389777006877817366153064226823095156400630413445071405799171515992602383005458645007060521364873569229360200840712787174106336136149940114095383927109427827262226216661038584918618571179954466623336676217033883680305980901502416143324574766931307062466171948891189351920276453225704732538924134212591631812219560546960201180413772618951194378437826479551449195902551017725793284656076546071953450180570679683908335645511621947573033780215199650922396607096286134219605756981072336817577717516363788903123611986008454894025372159943279977354094576271577066612466952677598311277193096038289001428564344451799930659921336300679464157796008479367843584938161072867261413003430575896353604979525541449494111803042509939142739697454673904093809933320678279792838841486192844278716690964891143195714620804875092786031428841680671967360928814752396646496860010145729820854369079766616415459331110944343796252618741606849200146735777436765019104504304697985293642834823297740413599221293059489446170553799662309474732740831226782074608014240246336735630430223376558821441850615130434343744430689430315893552064872196922513141578343416778087183570108440624454290901258775480381170459453423835542283194419571682200534453547382768283774061880231927793044562996398593029238257356519050323292663606892919871666980897401679969281981194677987495320741852292386585040126827831486403235294061826519047723928779856081818579248247137601104232104887047795018466738644413251554105450583716208485608247468642826795570154535842199539943788202933559211383366815810712105996792615206463014993852576675793072741744855047437685409207066551072444698732801343878050873423372844103152815376206704894157154012563634629884670625943329881413747566861365536287009082262512435191255166884661849361570431459176437387968064675190934129446583982986108849600920429335317425873546579991363689859605928014332173588878424763675651187755225228914401163102700639735647929420489674970213516919772039465326016251233827185757626029523255950056348162441493213664626110896812689701483645505827156671319770876035778725945042883013693145202858947348156472731512660775866759372475655595994017254040184418657713913738663916404434445480493712427412119293647038636527620685575676362369739239270343673836546334700742958239298922304999983689811818138359618612944034931548088935603456812421328802787100474765958100580400137225342836581842710164111784781420102991871034297920979941314470694574302951358015641848521554526172280788664568632326632923293094665691584067401180627270428413704317616846064711161646805286615840594613878176760339577548533503146234915360478215516965439765458299910360005769920056108972493570404642850473501377423304156000131109672536087092791416411174582410048673056534744606742254946354803538344597148159087897388141554725837869870925027197761667529041116857103881282529272964422237156876029688999815299173167330754753712699459517525083336195472563099689931521125874446153924189125259104119333446488275281953810932757191037788573560634473214728735291912304047158239017052585107520721170612153116787693064230705251365129250920338209898760298449136160278243821436329445900539112128639681502989142560718912900547968893431857148164348104003198949360445150034402347358580795099832213821655506164924702284714450758031590176931736404297018654727352041634225122703037631920132368755491906898499730593101686519589338311558712766054732357068491211507699357609529850357216913385381761139521197737881445880643147127748879651662094297204295030597559836649128415008509621124863566934244098197345147721095539444223834771434121501236566692264709745790883397861798748339832660849649238322135749805509687478267357253187916286080243184545549969102124098689042436822071363829171442102764408739014645394239243442813545321362931504219439941225313303770718182128001628992941889264803985178209466519376307044000499913498018754025596168711488354911073662829370864362229975473099573807843616214123773457580517137069955354108562150573469942111041341019323418069127471220888747449125152981690733623496989151277914449381863449551578271259634077833622598478605295235806274898089224431063448363077061902516510950364939492518652517241034072461271431646475772580763221134472269315724113119102645414124183580093134438305255677138311279763058097384885306240316904791450577561713479900407286846991589868478715562113435863730135319725304219632429663692312160740802364320245468456161741889140063632354632408268127301366969445307370040932634426714276493536858140650678992980066276232479490885795525484546037702810458836120258176822449276198082857101171944375086241314219562227431918706906104652927971556848855069430976611548748551635194153128117002562342646751912376929153891960121069286280524161912277773831826313936660092576774107634851662480350326619945812689117094974888783332252582092703761618749574870119703209541717152880632952553486250749600862682129349496120308753363935679825688569388940508033904200499596497464542741978736236447794354743734278132268429618444061393552414164798139807720656639554050401869696915587426202757246638711504742239283116944322529383165246157702750355809401363325861311591490760223869799527122814435105708461708366394693813116783897758433771433747449426120457559256069500765977173458296982806405847375789713653208845066426574650369173441275756283223413802192220603019996902398740224031638825482674571354298272853968971422217958921028533955121617537675555257501259824043018814575171220239049653240534702124980154950997275012469923690925060280606861959850706726143859501738696213328755514522053444396359955540962911353866436478041551179522869303785812125131500353157542327067831634811720380201379864770629069380183523101867975991999260432182135185560863443810992383056608346911302502809735095095013032350479756555078678356620796179005214780823717134717611238200941487882334884233739883961391121315536376303164333606877568562418857706943528608159334150806533647192040113716087525529485281504255720700142431405179991203723906445765094905371900209019240137750538715161648574460789662888570516515051452388987147692879087585150396671735431261290475374653025002775673229727597235793338211260787205437614279515940118304812926131881039997226816616690686599483368280818270704443694941689982019656030540815674195605279458787851498532117947286814525309971159638423394665551866821049330107647806758591264012297679248400396367318320199040070895108975315671992307720950158127945963900445108341324870571997139345839339076409486505190856819959364348577789906819560947215330972073635338941564640590877879829740602404552366885810118090768432125639398485593681258350873809023398962562287543921225242917626089058568174368625563179771524121517277596805478884244611248179709191318318989633730226732048038871176125177272182032475321977209261009629943293480256618678428753335336744305516236752581254020001647204115451140209302850327445804738346308973187508504642893139692613745152406528281560914239225853068016610301700587190410967177336003569628934729403235467503721956368385811860931945412480733206788677377596135216782121771149490784863922645473326484668977356194874048492569317733738379766393438601638541633955290144141896946467493717642235157904811263224495442981625402601109288550867303518237329605684890661969810570863114576449607111103079346495283932386424561983239048928592862275715493286692704751471998439916744138839129717308108099465034309316877369450505546255857462096743491039160226351728915784293608408882622185414936833094186322925226580889774668471855422880920318391065409785261455672537023898593039531597835557981688373296633057013536711064874331007868381039601518027778969325583648883970103811464693912532507766995890202329842314537440498486415402853199910120198166239310967776825578554843388999557055389002070434768755393543506669623803736490421417738834735799713245588798088559505865574228488952879172633148789126414897182896801828154940488551194058774619213518886247153129395806515484440197486621178248178839625593732818420592340241730971005790152624316091089273968567510979374264334098282397783240538956359617708675260157264080550421317507116927386341139404356167264830095928820880549845993824200623659939712115912435274844101595630829139251497599651097805868547472080072665237334289800203397617053827285430558295671379291110268601513760820687128950246437670328090140526805157249733950771174312952246775907009828851982578228293306495458595761713407942217314011030364663909817943753984617733407457201517910559256453834670558104335030750618137819803983277588149778119004864550449158926955393444062314742345124179120763620845765840785372023139597704627674325274962072929319773951301992381765284997983416786325594886610485843089336795884351801866641951319749003901408925375462884684780268805877440583859798494005603094330173194023169446702288978475523990781780596912499334588785323751339819212713865551087134474594588309285470423503800717791425021695732573606095482114354747443461320880094980823261650197605700336470073589746823631502810724055466680377978451711495241477545994015982012089495451834181881984381244221032710146042782924323807568770022353896276100317618292957001102868847640731808170082535671663960243586715578554128910572930625442522005960038955048651785030636592548630820213708586687624391733127164956389953877186931663785926999949227567024563163388817032072444806542531449245877867487840803139297902378805591804577988874764937335091032910342808187460783814595907660300381170225543681223437436095233807164289999532755115351929449780429556622092417000810815513388389936004270450135223193956425000140426524624965781744047783837741746354207436216030105175354731758573913802972177380592394072638714679288485584992144049171246618189292063595320768337814446460379899384888544127998827224516649481014828023933122929526963817854608910215625021054888513546063926471096949158800631309670604915047091406187006705346927794649160696558803110542144443924987119986475519429325278607636580670683976337951737907367157431088903130775260317371741745493422895903623393124096118589834135719564597385423683547465178350609213553189061182643747685305087502052095889765229649537758031899934486958031608482656460095592932246328397912598941919011868740282231796526044669155456870536204051921689342820713823790024709799007135295714082471412425170000939021743279201942611378554627763527335018063904163699404788062333509553582410477356578304550026315295768425159733625452852285248249170538347962982394295083487676809750454930744704399907138821626616341699176896439771034195450836757181181174400188667737580514854925862528404243379686509421209405434938805595854904601014391798907405262841175066053992326227843316747939702366362861103965106627665679376648322786024814149546349934240015584703415068452710778858918369355713083809150374965440639544160010886468500013953623898734987894833417466822570789366382290668600227802019506005523398067364126218674530218559493800020949321483106813000973563153529926211467198206484728218692980580212376131961862531721773304491697276845598681982586836927833918466774593299242407014348296243943518209252073746158591194587794227577840805223234056129241993252558480633883106931117222562078573593268442073907623844364957739131204629144670333254221735573418323567178481057211409308258675139380769536164866087606395095365911123682422732689738362456469514325712343155234520261846116345685571803286090543989714094080755157363026144333647836755491854446980461010264181854992619087338988169100759317449346205125128913217404868942502327454429665548230588634371867883640550869114516954398010622304934259394149253489320942878677174259330518720916356972826021545262687242680793829202111572696481445964826263884568277820766456707506318794880552976162490037698852422133901987239028363694926441577117885868293205943621433925068736626945093251101140037872161526322594455266204364170196613959038667059817182398708049623572259967296180536214704020210036111545313719443640971229699611404258642668660161121893323598215124789754251968864733426599987418545918834791770254455998164254234353867896280551881629833569941504762193808383848542638243816777036746478885306554192810841718680352652086670690346865173771828891235673397589927344671306353328079242764029338030413139953123442448584258195468579042551515658461605433138364032255363295050995846500827197359745388215237158361427603095206095594190636314104367985577266088904937530373434353963057261781338349954644291822787752918621158229474529312565900533549372647416604780168888607048195733985879207473139318654535378658996180694653478008994410363541485924525438796777270070669750256428001196842103408400068603911203533639203201920227395040376369569651724440625693668701656001279065094365058393295313136833020380010281318571195522430800506621592430166956245740336107040189718284638976965717435019725057663840264746783953909633822656079495776092819695211040866924979720999321251517061567952998668564343213150290751461142363880626317510691241649293085880453083298702494244871218697649997385505757923249722629036528966645252542727392107793765107603309785765682534588983676055520106754787617230067086440605489397468498526384798049842245278119133744644008339482895090461081790486811271714700433061135323886287446031012671745319686476082778310395690325167464942011723358099024014618088848116040802528582305471254760727555490950356791897465572814849653988187747501468858923175638435460491762803785084147730617171896705282278189607894964470475481148677386877897225004582978249560750253310119455234348465379163217107389247092694262586779673025068678993975082297126150522969541030750578560842685131554450607994868635079663540656350166846600720373192290011401605275536412090263077417887655466050187944151337733068603584590334703771755432065288649822371966874709814148201905215533378110941737225943780169262520598889276941562931361607713187952061060937498918658832211636637500031737458378999918815916216224043525298277473147725876962598951537491133963360113842342248855655244460744729292311755363567660397162883920440513881962206215419783384192355476265967960401378069276125507464918415769234116640774510772603088989443300929315881531470118039406991269759329475958915928129498631442818793773036848081703194899659450132558662841693621872054965622231460679478416471139048091999895793041939080590583403437615821373217946240616874752346909484705823228006321512009151885441664736043162513272195772729348198838679286646405376017801195560259414029181081702478123797459454753190305483577743106885846510058789283706553769439818800461472437347050179983225664736149713575760697324549507625234304353846277106430724749038729145319534379385519921667505839227312035150553136591784547116942507481575197417080975658433138923346615166911040095353192793196040299724259384926496677275295455624792089461831689789394723810173824852974055959742089382764065167914049793439272074225052637558096301072594623440435276457345889143841382054982440951178387501387574452140394132897347612217983119349712592053325883467669039110764915806181390650647982249891941699768822226933089360958292670056750058002826992121319479283036786921068246892739570685046208929805414050863502063032053600937960119756457572168914362365550547952449262261945674397893400531298492180009567667357309044773276993553295506158203918811466526749019451046431125191928968760671520325833105525497508088932616605522931252773905758323024613802287986406303615198629445124380680421284479779512162180379042938368554462429315922165321751133215582352921732832169614785203839581617216895705157794035795821275121466805158005962166302047765208348319342742633838343732597454665481300488149273998333373196597650187146072566120099273667846987502879710184284496736830627855683029105245311502289219886085860544379959548056147892809197528853242759218161330609518055560464875316912553746250385131456294696913599740505895070136077282548367282776559834711579308532048665827251328805663589802859984976160197872366146148188060391024692775067281476731763359884903797970720417623432234060824615235176365709411765949605149683692214597007085360032551789063140085255451944937142036568817927974665148032661579174833277576827348955413948180348347810459354258330634390349644291297366121223293739672688901440297167884464826711065433287775711946124343161854572861154875222117320217434374251795156845651930334754151869104420732837683734098924403564968312893575431138456484992674658000024671338985891194754438722640227487955434868401341053669932486249417532826142935200863322197478365673681836738819155525115951860682408176233148392146747404623856311626447149309620145151326127262914944120334918683997350752516607162722368586551990762339849735826586655670748548894142847426129023054514937579863533202517285425907298249847735672380121438958842770585347300766161434059768116587845367516231778489480770392345191856153182813364782028067563233792790670929671680821363074749327331763221125456274622747480391305326563623773665313816377217035616949438788709411557916350432124258180337396933959667877279866865708298913548741430614647490877990128611784115345317095637695711868085539384521175189570525414026240132247200992424193784643033873518127034229967528741131765074858160042814691331613884053176701615355876399972132071814762922931203016390539625614338381376070610588456017586294989525604838185952429373096157981587466266967492087801782924570841346849918892139181738878665541115801988054482475859174989358559983933326390600493455534886661347094000696628735337164280324820172403623196690619288687797440787847057539380549703672475844274381753133582840680272087239291401011675615445161504337110842929378167639131580278414378822891099180106209522556546587291404073654380718038994265318664752446887131359797350922583811118828265434467452303611496543612748476634719942429335844519134384838547027268805399101528596360721489026601991752197899474709533674096530729207085732243581143691418443475543969177006098430852425559956915556934559592962440215541792678556813559445943722653041374066009745088941655712187386852248947785144933812778694148714942711280326764645227942263645226533910588084387746710745262162742667457425286271494357624853831014442593183300472890878453058847195372100298793079656560004586189545203001864154211612660429345917322381492277648725340759482356419855820568707033051399187459439929798520969534553273539660756245657902184441213347417080200584109101408858690756541593135454313040557719552082938232588986030334479454889164479191575111508427508902588104084705808713051885876576518212380551135315636216282205719697679636009870467516612870484123738391307916473462328925202427253374069536971486796802637511499228280500642641314615980647397847298596823053562617358113670318695456757388046730784626858391146049508796084298536222578968008471009579229160688060264692428914292877009371376329451014672157466354315203479358145602998349850511816992436781395743168153793514328624709017970106891768601372398625157642180869350421550416974316247037934987864790391953294622189531863795393337356754600770611873651143866956785356724290430677987994381964786346963292933617172888326524514616235372941828547031490671171249074411598252505710600302991263245984838697354622526826928756161234232914652541978995883681623682482963597801781862633558963464899554082928381650842282230039384684678296601470614525698337652588649711243484463746120668614607188954421083913471017369754489554694223660580656674885085672383921338709937824027294561320428315126033711130546188164586611530096234329027492662062838928573164632758581425558555583555025111888526521274973930014158933703759980619401123318367234197709679132916369766767598153941798211410167429884384879772678270111897603637679075403247002444643367952031143741334164786218840024703484023278816778091028934724483787052091718702051359572005144267208390554690675078093090676416680028893968108274337789350428355123745469206735025479467574077770541882639844303037056782396170054798824743434945317816680672464984004254893913681885699998115398319796456344280262982743883192049508606198956118785625255670598884749840654793922680393420161264755486708660473115646629663534504533650003664783735260945558991950690358182703472001558055577795725905387768023373172410291039474126338159902662657483244302492013104922642682591321169205922234120177679068481633050837113369676750999108443992859029245246052118811551752519049035476005452201565567593364967041904991464226934887709894375782257445147486810465079671166477837423724861579151038170515499896729742166133174857017561788346284522590167700893047367382214831616781828453639013350472392866635279682890768732222122358862833936480589440643714049060841063304074916060060394465638828111125208598164207027921919839164723426730195410324738029941487410977085512793637117189687884382432928401522714885895672192360143810811752822073060690925881962815451131350629974584492580389603819703521778754951555257029967623885840418884135899707252412219431789259267731974448150712446968417351030806615293281698292923608170351661999398113872810722254994360687441707880792060353576352539439168331273156352911022615372867192101775277104319718293050658441843205611494601894857007045678372274876789588915923502194138073532089492905399518058423333446316768596161783062444909209080011699335143164822515204623470557007447382594589259456269457086250293595538465407349548400510013858456925204348267195325346792348489200111032119145157523277004192121138387027565185022858429856887622407407109458915920673500702873785816307598692860537269350441386561843593077253723809752714669544137771591219078295010985997484558082718649106693933011292245530318635630794029035106809396842685802700245271047373246418620816652949577418269224758059485179707171147468032659242617383608840065574057372084335936882547508272513775214076819193549171640179838375988162978998925270118876858867665291520208256807301502827506575344027369482925423064971341936608070656215808979192745067780216747406892878951437620778098906649465909872899008207348537603696051112969532038862148223421556152974989689132634264605299031951552477888589266866070490154045687638408747298674801538646267190229527994008537629199035329719061804202945918927650854717004575072856364904975301730029550789503508957605314819729521831052605869490673008751041283531795761384615181821338256995705735797714630038815293652457754938404709407894622093093101380444268964683131724508868457029225751727578319723346831054068024108269814550183496780411242166755956639829687122939293591939008846173661802262051705783987250063451993801999123462876488208935456674640425481837849997705889014677914595494768658176235365330108855143029240866292290063173866585043431535197216775669540376851939655220157999335554341991781193843407300143577533549663616670602278189857458025615586499724232610647469474692909540723975532333858646875318848890663763186829114568372789415588200843514536852780272750649412503654563123675222020707067338469122734093704071120311747151205265611594368609797875385637838970938032835507412551295010242122655280699136477687950475847687625507101592062296182197906053136889100361774855050506255183336695606682150830824666684116059110422187665635576174848822680476681634102280622226622745001118275250018341233328969664292137096491011152490952319025806481015133374449960044627574636565218194368861651257720408039520879446972942806208482540616767918149650292864034633479885146492824638126814674673466387054914748150161215741267843173392805572812378871019457860012164133563108577336996889477358891886077257941070337220348059960752579565294912249118120236329801015194668809669151133907698229977556067248796836725263252884059031561313828483840329299747562296687352510580986843735083295011565553022818827669370993903350061598518351849291389780345580054242818043900658315678653552755262137467757982027995065097768140894972126770041262862869644070981815457425041884908407017824452139799287865356890623338994047548493207261876346024694124018768296363532435015920363759635984584484135416864511611059009463227368557440099609525501620433255325425164148978537319184591050418718720209121887613855687432195865203454072292585308642780351275878195975407121363336873686068034755047694194662785562560966540780827070056832767246585358510249738160242758904833259252190753426381573529656980350923345820588356133550716494151335621903151563189233498599336290074667158546060375826017059972999167230160598056192214571826192388091393225911941824501331253720482786070389616061651169404612372397118006241905752263863643613126544479524192276435464213150770768716037962700693292895261704695409901904033735382478185897642220839615916328188712446675930261370781009215737377656610753046708742620316937836388060895326882233479040759269691041281498011551583339424782989164452839573770295571119752107573128245111688134380569494048640011023423431354208322384891040188578046811192741782605906930124377278176964748474881897421196374904195253170740731295145241859267317728165130414362630393871229602531141899356745227445656632455211252230297162209676465691955347646386888140212608655383741304329371528859299516103413538978389098959089680775272123900819067970716225332758736767315264797773642808035307854577829403061146863430089190060484839520705327854428066838764431745885955749379384875848994625152849301097410182587113437307701737856352067940862302319143265000952960132714741677540586198748680273219942294054862960962050910673350759560852451034029739926551949458084386529771021117525223061484755053120973971403180696277934118500372377845012592651052461830788940124894668076935111430615546500489075155909570932711339658589151388064704153084666933876860920081131834388128861334257197703534511373967310167551791157834311046186272770060231138397052729775619531674934509942677652156798667801968468946669644770036720830478618685545307682913393834004169115009256276668780149951185152194950489323886013116499446446811773971862954884603788553403145654986532496432533686880853583210886078350368268949214686925364235759517930354571302814275565078877591401616651711390156147313563665485049642453886301377495087474297690229379099522369474640154728352556260855239866934250092072412534795425305064669234008543167690752618105296323528382183832876419938721635587082666599666253198242667992238038455025202568617057877328503391496770457328758945819789019942312715105891668894959171206075870301494157344488283314366822887724359201960856472035545646662031586601434164637376511399129184513324937125717596247164450770127643444733635436040326239226662780421984215613325027790377728192159749251816350523011902514645701423409039562428669060562112567078076776374561341915198273529835537633385227416525616617660838892569332379183560965607910452935281671517273727789793845320197638269395945981466629523776418236932230124785057515067193819540107153802472989979170825983999243842903950738234792105771905851861402825741299638998157179974763771427758923227133484474527335038702301680044998040500850964431953169668160640849863419793120737970987575098294048093475474720187559729808401959258761355107738729199420603246720048231235605192875447593759249583080448549861327587983345514744658471426447850632198299253048508556781309824213974133547381233750401245831981083845283339353738881643978424569170548607216584741257262501733326971394767865101979291993681328933300933530594981645500799105692438401612485326949789510329288962594801783464369457035499097372427471409328169843530679518084233646609406414969528728534209057552062715933253147385337186329199346393759425649408153311091988299971366873948176144476287346760005170359149198637175417093249180560866273068153207676713220396618739391140593026537914569701927823698410942155271154968394663852110676532327670692602260798257055255541434024145393955998730371992127993902578720039949916008217331121472334941440329131299515903804212706896027564694285352388789458416479825261023357929588951029671365108034344076929898940807844787377656536909790592223981983579929963960766057340567852973764843892378949014257028753563362473508528387302359630205606298609532199145574992993842790975105893246580509239341697437664210365479367323195159702285916680662704508969323580594462056905087875451268600418757024568213450007012246827404228627379674006908419584418894519354913953100436309145140409570525845816050884729468390487997751210071928710951652783362788367599429952792263089740997260433047037557444334977421182960890354802143742357291547084019974280048632550344569114316300106295966803462330918961492974547562291525945048683780829508173688291009025543742533503849567254446257819060489986654612833485388139790681057711473331603229668824051664726008147359241971633018455423487645432562535648324774380253602422336007928044532380742353530373190624760665718270156407351428594606599399608501065353610063436599375846205214029083004939809994867891386627579805098005351486759987619601577154606618748150869251194901686337548349232052570525146609945703668729336788372709795967380436416558582493363605977898308486519850799659034094006514408645503287132865290268303045760097211358875442210983366011196630989856897770537927134247382737554175820957489764498284389876133444142823673232014591790724375486361299092234173460816150231915615285681619275013962453984226681892978031089006730896523430646757797811519405031559488331040950146191782917821760143951942254836171867883212217397163268278794651165865938185345084885339947527748555056700325553888939224928274231225011017328955255909113981015309012341810107953361205470214315636507203220471621715086941485335715506085940142482705827219837694908032413128498284885784283371025856176235883215426504036373592792805591844676790429998440765530082634589296328130026842602366473328948880484397185077590162726896480113415913716249783955663569470304090431273702152583017794583234388941338075060508871928848869350695554622199133652085031872749810763555608211939718640350372804320449284909441253510470690117401656597005716488248495651283764057080046602128207619338001937588795844624471838242442271309140373904142664979222853692472625919672635911470513002884005369745298457468479041948434417256026283418212238430728391034361954355123939927225586407082080057229298664003680366175986446190775743604029693053310638245287394322089175202314042727249280955766430302703335820062422090104784594832120323780267557466774279659109328754023784526698747602789820366995373562597367122409009931187206073833574722076694166529573305952671212761158890774498575675352911657126972721792958273647535475507612919172168060726750322333751913768276028865887846067525853753124536632832850074238760588743393093280162030610979632385443249328800953553162290359845618589203517006162272894191098585624562218104567149427169381402068844431869500597532082799836160313324247963972865246512169720753426055356598964444646333865749511719365294704939524805818012493553064856434901592632006652092215763394548561970825705284580687916247278690485780636283380872373104665043063090875348033878592031519155971973299756869867806320157848891477083531466053930472624194241265326184057542213427128804367990463734807694400711859692039466617717508126368520570843394850397432490318886055678596897209298299359923004878325781969609936638806057554716590614039935206191061099810290417582112091041185436989968997613961391110239726049660267788532023653416507364268858927117265516965087098136094138707858195672601297004202588786576428200820392432238266292645261038779319922191588560682173953367790149411762008792996212282407497873508477951343260265494856189113269335788013257856727092166948858350712885134422713179580603798016802137521391008353463744836256256897229699340378710009954024869517541607908108157482885154876422113198255896533693720347779268866132996186620425293468595269019790174488379494658280205628498536197767836563325237637216778831270853380397060438607772866324347851792878309791132641404839688898557509764005055801066993261704844567224415025499614837077088918556745492266841708192473364273191074664244029461678783651186519909904064464130283474277842170074340681023642147010032169270686191251758223904182266282436840873776125989583955507667170702785021591882657673029355156026006186948434405635472777125117518940122101369252325174076683050055062959896084958858134432214116581491583879633955630430842558656994202841950091497170755370678033929639037087513482819412705527230165837870082742135165770854791844726585498037128950571921097072951311854130986167041829171021213680377983361772791871225847134635045946959834596113715264975637042241279652755540181680978423755889068070081073043848549943587452011338336845796121594636671116453236731245385092345254513960625286354463035906841666647944880635965269726143536859843488184333140214646317016129771755340665060155914094674316720558808414027804627740151570534079400368892433979736196964067069248247239987111422624451272970491509628458801676910924399077149509471796717022710108780779430255695072431683678889050728466152089889329713357542026090361375953295703651691051212235340943902428777503313834711477823717941380320770578565913082194626520222085151830788752442331387891085645400216443632646243021005530413248970120197376425900282835433987987139090147329698466806726267330429100340195847486993528625543734037281735487764791805344897414632443134858428511093289104573698070776425370818662584234075619279591353856460408509078142318706808273937838561490562036266742407375017147669802836734578822571799445821485623922939521844684345049255844071046882743792302869334873647118066412009023045608517488983730966802895625353295139658455478052663644103816917741290358776383557784965021620005814978776003337707501260634967908794934665883718291215794548646817987617944949966959102059203207832778943834633202319097578451915116659280372476599599706422946153203637470462577260388944983085936539235382386910677545149313799367045634478100143184909517160309877156671819788718794640450033918889725537414397524934140600465817417951551716946272954233550120614783873674590513859254074291692383712325825366496598710153681977875086820308541190573796467269692730230465337274846764906672245556112937448244572262994235123767504510481023007620826313958714615955767115689477828822761040199889384672004347746589027006857468288083649967741646702696707050083706627097107696417788207448282637069748477062199929853366569762672948286307421805473939526150259367108746567517081288574915372485280342965289236337181204001792707609930918256761845660394336155062225799976539948543985852397774906054242550988906411559559380779652382993310718425390312894070790313187685531397554856249503594555430441401965342682314159484748634616242203552085169116933697481968088206225677966348181227028423164511717456429712464171050611590174317514275357502137733607407078304535306127872580191446312034500701008786339193768117522878191305915890624564844364630131760652024881356368342580905365564951381050090402172375860495876825782158243994734036641093023312208297229220365272138223081392408555634257667312876419582373125442952566525539026507953226224263893896583845314363040530159300885918850287575662506283687410403053681517501134247782060191707687644160807894110140019098131686504057209759910886760739816379924739955688240157443395237543108562006463187415932770836199249046158101645643345166022775010057614512820948784812722070926575001011336962788840776954748921194417045777388680239318673986033399352905364465329005386110119268077221961128788569806802613085924820208887657558412061136958135137627294119432404840800885120693170794470564488148876860592685757072139663025523715138429046025314385564194292866309481204716209093074706172416734486457569136325590068079840530167617016146403239927087492658991672137168956520928822221201072494029095545260163874398276384867685281305545140772398426586721316969596432074935984137697088267037406939517846019649179524662968956287650387248050717426356578432125218534554378611962155145004547212164507188563242058909019476901246959971101815282489384227161657522127170210853705941089037023578912307239104990657156660847358912332544830350092939399978925855407901892968912855519038366779582563213561453482003616906516516061653420765774861440038372439714084572723152036137813228403229182894910076100221473482571016598219404734895067993474816921140542982056146317762106615820731615991173202268315500036009432909263909392640228499161181802878658839777582088037944034893362597742959059602002660960923049304247962979431548457708212467399281426611758525274047407526940263875423358333664392804545862010584737973774262996807073991989660959053898691721887199305391312966990606067221112282720488367950419352579044920288764717756595804417344071565448464293463903737570640942815061889671741485834841056631576674725944904093493775296506917060721639350948160956462744581368494679823877452770658282257385014610579127184317885373170487020257282576422494460662961293927564139450797569982186381856752098174462901154348798728266002784586462273452298684362601628601053324299708709833719476569996899263161373996885460739540245577760695717833095755395271606990692398992449543438562373718742319476606771109804942309578320352735574283413766480099174623817701203230135518256016076308951525585421255373830065367190520182332247609462389204283734096576221251911060718549918430423116817157137239693389769522261795092208403173581178087150309579591633190846390289270128517823768499328948144424121351307643472729506725554701974718349895087712271825887286348049273656395028981638108550542306218739433263141485797074340942518901404650761710069388758259870808424225966336320432191418700829226737362723833093204495514820065081096442746846543224532937169518209277212573545740489916542400463347104872842502485442095705324278210988013467402153896260162699168606067414047014803358282033927585501319888323468420746104262079531886669443384649846544908862658356520257049589249862498563586479561186893492359356251343630158124136395835348944193361042201015939272712028598325623930259080134107939761958500293875365092089914766640817254480111048862089587728544887117269420477491738400164015457319841212898059050215474869915684998912206773623182196688920021404180771777189248206930203935791636377464090518301524529351818019545866832062787037378623811086961073263336027198844499841831862645831159699201208486719884825246562278121902703007052842666362701302953895792645154866612102108337811478209172149976804174042145596426959723626287474939311812987954861591923692629513570669727586543571239184636231203606172109212890297441678897438182715360901363505378449845903912202716631699104575152281852723061705883249358432264374408821886945419038966744751421059344315938649260777829527175447351646056675101879737837466224012407904040369994072150810841582804803251091656878599970951932023430776131341230767890886885605420963522783444449348972824345276780776906905927851650616598704879093366023791942931717536946369585533713955043593738770156807282065610336012031536770491039687834568964447111871179285712517443387148906452427421862338093811437239327432921930430647703439629383482483807633516963612351167226074305699037630938501928197704889773020776737609764054500553972987359651956476322005213083258692542015939246247006543740236671552704555705795060772277398279615738629218939922463964246509162096441925979114527022292509852044830498148222372600026923447241346262105398159027796185741395819916632779591494640812303455790613325980609565795899688946193564582164838563748438808346863572182046111793343502835104330457199377247848177103648358124693363958792193959465408385384841632173444186647834926090396582039369198549757481082534098808733075781399180558825535156336562876517266071817725920930646341229136293601593138650334042353722241808139846028640863004920019257758967668232794321597758843397134574545680074741713369789674648579527825047993948549401862511574692688381202304107452567310937289695663715934528000686571954446511449740283233236305049449080190809085527343382027297822037304950796495018257028765743251949611307742180789223585102583225983027960054458871802899662497226424650473711240567800187305637166688329816310606115985332181671972232009420894575808174361184279712298310610655069817500091581731583433024614637731733791525682655638224834868891700312173516039181610968687073776622582060130984626334675547449017045752615950920427181058884325882126040307106102501805571544173992142048893596628809910602295686795420252674625683527303450454161814490182622014027786783412368743534758909425825531681862159512756389574650459734810886720317297484987531541755727426449825633682333439676247130293145157614763051534938112651424154299305950356500747197978407025743483907007762359392077492088424729113220051535766889898588479256650992874381871439386430414808540450728418366397213708643845512443254367155084517107780146022280485388124597034889129862774825747390682986045210767183662611856952808411594251261118741882474468749370672292297169947607087298624484523247060948135981563631163481042809211640728349849160853776115433309168611370806749187757084013966373525180633399912667086367457629328276034234243697823615160326093353557395657843983796959717427744621514637985926077091817196861717639254181484001696075041969592209534685427449498774927996500764463829356512781875631822472523255627044046797756531834359158604875387693185425080371504573167771862781536791436074120776081583056283725993386357358814877175993174674069357664075442539544926366596102235005273551449442044263577568942353709358273373629797751887553066439199035386584084940505654831745567674578065942345157796300067823032795266533486006435509089489933170857780017392554973316873657563519189351138205502736178858168281388830973263008262408864006427481669589934071192784912301456439453712191948850237761483950240639839983947596103059005361104140270574538652456679681945205555963642203816205816280026798290472297060719673835771350099676168157004901572335795954107570209734192629619845670996242975544381944745499457527473342744678694737133693721767075265283787342356974628455822565380457474838370777863324429423291774442610533561611763217595906217945907318047134144730426483505113155799322455691045407050153457758724910666191045097296134410415757206206424420887104047490922064389353360923177111641806603364760987739918010232948239009253990649442190542633857251204553225491991711729820340368845696251758544845173099307355347391382975805760853530167940775057330439208210392271692226420419341725420327679228215260127967891435501327621819894844154479600592468995113404472185805156736891084022855603492543769934012217817875860679060884284634253931586684634914550319783810896098814125285207974084431288681087316773626665694015569044212754222956875145784609340177893032188737817470831336598188050677354786323339355609482460881097838832348253658663287847149193562927011355278051963174205704160976566952263527401485293834812880341088486917585534666507528264584775519736546218595338297633461697254530700144638121276168771194499401164833573831547234927834956790421231532071652701675761208952940340606318858523194840349985726564851599795218251499188665670690004012819282449774649308012712388576103942520645771254165014514957365649929712644267821601686254357574679617467865092868072742073790264243691359028599868016157151471909167788297339459695041408239372566064212517506919948174975919750072141278337204892422097295796199412731257836253721902269183640770967899699995862484323496456347066453410445727242720779642726540984236913502986666740576853607857806441753076243238117363438499561548617563156022398479297371738570066280111578242058773207364726393710479620066764954932806388817938796688199644982415645793349336608347728169132317735995681013214564024154768952570271547039708049800183141230825916359542986437983047340264707651353077113405811859298941463508983163027678280670744233856644427658866231389587995656511050809571284453827085934714330011336414181541435155203275147269478599911925881508245944033707406886707932679359069732453726846620114834941287929316891240070658125871225962652788972870800403584304023421983504689452907587737464450669530320861591139287673933468282286988634432235452995471454528770680718248257122357737767717258716170153251186309770661550499353777681395169862566356858628162657445581310777145196495846292122195704867681319040778918350315978972376626762358780331626945381758947042618124757666684562886566922104528331725508277337472736537323315298659733676789150005098574581425799927655173913871585573651058509298282968145459087617608659449924784603746073237084125829524991518167633917002377458885489429562843531388903642580535055678891681483864544255092261135421938499280097842680723322321593244393157177975338645638245971227720986183924903547159649106326327877031653149699438842321398289499347317779923667076607344754861649361872443502321347624828329409117339769489927142193685380682987876158557078398559577978374356732973285897046491897799260465285846509116593328272375178334180168383056104250529763611194717808808370791852365556481315481964307691915174910584048905889025207527000105848912636359349172939439903442185049669122541017142228575813736122937862858849533285880810115020321918144376924527542431592542101220710501230500973478248183036047147259757010604023783082985685555662486095264017548226578755842624138778827888376119907125270397698978805189259972100117906018795062543826560316265803037397229906208653960456217556655651559563835316372321032019245548665426094945370660347528314667261919526759927192792010795659408816102586026525670182416351637804786250455125684073092657494925382684839638516412576676904849969621952073816660365895856097229792616696339043270750227909186820989838793037000321447948162665681203770381667404436528252671452198246358108369195384205644906656328927413328429024821771714582250544198011506246509157418850745910237791458002080287987393420506056929604646941492540581552830901151112162447475814263728409854449387548458386809406022686592550219452556882439766853932486991727367127769875379631807180338226509438146044888874778026966570037631931015755486330703839276125498297798191554918606165767166429956111631282597040415379904170154854264012209112493591924778981164866732789781313077164403912119604292455463083825764801502422317949216413678067519094322661754518351332470241376794596455829657769574907696421929804922449402594113795051977515046277860938382837679221744332412866488967975615931724025478648308936164238698922628672907477940260955707053318070528284654642509666226118109417932443247709795067543612362118402826568223526746993230743826557675157996219474340018878659960893820420883541341010095574693018719433916462863756295602272489176008729146951389248689988400886511567139612762100382736137419618227453471185744969618548369089763973957027201164562324599934435063144236475701519853100730908818426050542289967979266741687505642371706373721527366631529568985235927569438929691012565101440947808912764031547005582313013220828843200560943650847584820586570337710980999564806814953611114744546869032459738421527647440687453258401387866742788332871456958750793304773732690387735369640800964262076279496570217444499367957710021776308832712611444108730968435340117649458503651021767566584388272690370907323433684649218938605486001292906443932134474912604837294806948181910785877992424339564594220690491983472741490126312249983180735944879264922212035812666307263232663688543245605826022384048803933454931743164838481636821486996363441854872211588107297090384819961557622260445717996940423727323796081981410185331912408668054598208473774033960729864099413944975532190702200904717142216813416887189848947639790289780386971442335279853463040445049666373134011254353265048596233053624023798172208924782995088804248476136769856161179283114976466128363734845262824451955873470430958093771743389377737644176581611147669031068855458418941049272295341423755610100722658302096902525052494971215673196943558155299919044244394908598759061108514616116145876888148301710605314705934710565503777521704539754932950770984021973454397906010703179184491957710437655508589500589568535598001021766601976090888328339730198141571898431732048375774992321051747360203102588940755287872492401364723660777070153544470909247183912843796138724689578465293070866655727847529226201110182015199040435316124103951182909250764349954918517918321110409527358562335238750433925897550397883492459751278126717626510863499486554626249974398689420067043625032917632079988729230141947447427492464331481235863745446120622348125314790045953817109658966832784595635570220116341067542226402607430030279410720216095131185247010231966273500335455492221529267990248429291173090000742166594935847358320862629091008017233973063532397156264342634400217671145459315215554882184790301824452295099676125647050706541296136571136171227197251079571839699414379450280944620191976257143352340856145714175927222717760621083540455840686134835068931280122716441643851268357356172155044734390175298612030732740504213462987187408482765370625006711403528406428565301928580679945664878487814800903022797169998938877532630046460968150156129207009536617353765320320941107361600442278402843627155266053261063295514451894889223936922066681251503885824075441207448893520273664889205446310796075437899714303579198636810264096574984275399085139692900779408097209385631354851130610195379310788253192412845672437321772147755969733226615362105509848154490431267550841209040148888377549342738365906870155495852108707480346051957123081909092593435124565255262915731931004456182693007271121866820881371781960225214638298406853467506196897654767414932113721862746780092282305126560227271863393502119097959415117091136750017014250087094005071203097456105982265739832413766567482030714408786059969388307408621126262468869484351572141423819152881770767280745197772916092223155939576888514267890536406003188573323076871374889019717744749174007446259174121924832726687673049877624596522965130134188505996874403102496263034031262325982226555875468656988277924378754841968323106318141502769988452538264002731588751827173202242673912980679397897245113053282556978278214916570922142479986944107514145228474570293409878418718070498061430275323349128383437793968625496497324364177308054711180255474484720556678974006175270175149886964497965925387077756568687683770684115907400877378514937872510696653900078195499336480767523321368854931503925582315082544754046219977708711841238042069379378711376084930557845835621317686398934230299763055143360966177874989003067968310089321888418918883509891472807076844611906847800781848341237007681530508013857739216846451410982238538596422981605093947256329190651692219425777339329266629876627418407824526455362506258545196441643383300350076072820518584262953194425578769489774033039973224077382104182828770592435951283172953438436916177694672045728892941755888862938898454452582911919057232467977850431854794708632938642081080350475268655186901662809691768957353106326420353876815096210878044020074791417165118552145548718560030531388635388711801025653742520330393162561836915691706876370557730168920647887381129296737617245196926095421752635838808471537725998061725651966605225048552296352427720894752966546293475722252105700779303739681023912445222794235760643889211084565111731937653558508239325077731465918996364003662894559121786877167001813407939955532555073211281120156134970531639133622612596185077595227001271561765073454570930254865903096733742192231226693516254353809983558571518946404655778885640488955842695681693291944815878769358399568858975364988300411722233035344994410880702896055987147525046375357131167089425237130331212645513297331466633704063486919935766611154229642730369186376708815397083716587811083042564117563871150615075001199639129109199522930659687573856548317719779893007812268115198282790903194790395949216450586152114613606760944152762613762112897137345457639944360289313581961195659492839843107881815741179715945032768126251807913131198934590098824062257909606455688905955213178562675498188523628350025740434629387543506096983303106095973459698124059837803748224872941960166293473797680805408760172590028475015281070085224317345496015990806547234098590884248616267656560009227901114632906031244527067950241306928997314971290055809842597987431062533294470251871910251928857724751446233102835089053559632531911862159932186081841497401271113716831883679569099590259793390667670172816564558121387022498447213720645380740344676250629814650313115391107672354335242650883525893873965420284894366573504257664357531896811652652876547560822427009576556302081625337735853629237105229215193361102739066107691061485817234620086650865286061458396124579671616580124826608587484384164521521995837708168131217183763701807237124208021014825392570579102731688346566414386333386394973945682090753757177363420584054515136596048266270501760033722899899512979450566186554748439275686519911273360829595794808430166422525239273961079265465671353266673350463166885030709545317194474653967240052718669116398025075798314055568707894382309130945641401437821102980297681143116182100369480738307186085843790749515468713355619491355724309877186284767825408437808183198978583618172840147372003984899963363054681512793238572747540306175205854987287090925754368251919814573548679223797968593265074826338043610237925147889070639484033741818302333051419180717208994864839198036834467767784857523239135461787508849891209029388759786211076005573907029132872989393902284243672819970413681566329213151574829759004024587499002372777714204338222165310345225323969781624143294686108967573054533712497537886232551348375698231109295375781151433111638173010136667084194477268318695682178852444127190471753135945943579820145908663740501468748541358294553242848830383938839658700371367338171774230025949858025586070643631457544869982467425662680688423825374384076970421936156316616550361141107502983212006012398355394563787797458208482012672214438993030223196361993190448794378102222152056420186464771187889665631778849410068190158639596741442372881672237258430671101273764464301004076546376620605435804770797174660879687661220521822688752279978432442976801072928416073253031920665555493641093946566102133708911975362092792361388766842057314238161940222015869522698030556049410635964767663648379159307493249464940911542599341307802240986627908344556141422565556698884630071404524690414879528442237710751052322071818650381502627599677686316605202758794025383998935071688869140775986957957805926837555187710997771478727994001335113640836091270739973566569801119636452291704395154273003980666844608800451770713599956445490957864028924016078227857746425986154707840778064580655750526765529070135460315901650874185338271977298094465432949838551476147868130417276437857935327818162749265473056859630881857428995696285843810038397298900019378294596638810184901070896596035053662298830652731735346460195411879640395313974257789579565474273147814626216232301716584765832784955632076287721904998245391212070133566161619052098028793837027381125672940693998603503194654318632693197706277816214190426571596781672007982201481078770298925980053645808039958717820985983623269181360953975391017770453074796634720934855178523737939107400626739397600695768570475422126769324879564131730047623915732441587457730520166152004166230970830122542965060055206269358263684813659255391430053098558527016351972254597364462673018015124778537051942331322730572901419919428658317529707531758983148205774243906475414920119743983607883741531919632214922720740184602820264025686759707044683706735188750081028380838367869672144566802183141619225799725871681141820114856045752731441438956328493511329110946909266871129943538290124072622040363942274565789411687409776702943383924276075867785464717242462403199282796627802526464344825861516759158622608422865275951478234083567596144188188386644631523446830222127329002390359497416287783425388360658608014257094714861994680416673135732676927517247793707568058646779766434983003040243271122727249452900699041974159401450281473953256389706644488352121621141164547891252914146733142059998435073213131481297873754567513968937867853248645651654664441616929528512579740253067465689514242060371183460884478338834052670675784293364807471551736066046280656399998472758564148609690652794343935997751574962527835629060770823000517098344553967041487418977517121050476645906269080795146649430105077234913447539957235734281632751828890206522379689012533446703319218085445180343154973035308640162426588344966211927798532953632007428706830863770128884752744067237287433263369158614721766965227272578195713291931696842941556196450989741969831459768092052812956330842990340443695567254842227260656204284041947249654525453464467741084744989183782469114434504497716400343199261247272690970076869088310040492101086769813413392107602162261655397361919984259107197022631914062898238814640141808904924737576222190647059146995384588341009036857232408519613193745992551507682984984736427995435195999342661512349412167040950352691295123446877958573157628232751435916443583894621708274728628004050733057876633252873616553218195477416186396839020974289655281636313052684444914244607571530933013573439265843191856327837354456658631807936310099005915869050542281827892237829478111335058821011427439868106011712284106410909089263231097268741030066132596166100970197267117010588708227094401484113280071504412958805242491711254849747763701647580687843342127777519189084933695284511370268925664069771735990596870465147577922495937018753447598717299706306661254613795943682378532297025189611263758835926050354775401541071053926154168648502577323115133756973064950177227946290669411079547248105559930101756071919828688414355505269377302491730072626729847819854434850729004992829340274141827413112395173254578077452548938263778918740428212305640836655164380058365656415137582829029156812545173659258472957972755742959389869407838173218623843120617243982657583251653703916455398927272131653078264865031866735336615320030241543924561087926563019074865437316774492670151995047475429884428781467146238671870440039109191421891259295689710292832371458518439634091704398095700530897207874152775614241237315828582127073444116313905284244799798028893429569199726913040973170327891711717098149888874344011015746546362334525410766381521696490841551929388084454768208303323764412276539058566184450055613533944501522085378782409350857591591354927110417479950060339194958521617507112399241555015249605448189992677500017804707526448217939451843862581258580468128866679717439461473439652786551548371828363405192660499956863217864280489568963780593068286987227959577295487502642438581529116774076431910045900600188904355061603222443016470801471637603427677939365013862432916948751119460858081912718911989260447608286055873753548797879901816943836904029402988151528464540047124482143200950055447494514517175274250449337466695929772786105794849433796206464922627580496475006639177268036463629776682247684716512889722845543389520411068829385883956477943815684205006537080378801442638939247484574969330582953465295870225642066518063338009455735706215892912795334466054518099744400876736733214443660769674325642473758337435706804006413487864038260262406277680737179339909409711759694604276537232781123394885520101736770011393337158339948866560638185129909266920933739110466672038524577956939672119076067975336667998203834274313561855072832122884726919194105154998924326669953543324675673013206881998165696193710116674845672058816459393545585160435928620667435299738525130554325939285396239809443479283379632486003958286755497862015365948700177838858950370588983092114319315672649790298626214048531568191709525924727188125219819555959957301734164825079161024398659895546543423368687677469058262582674918491730457686565996536935843719822536786784883877705154252248326343556329840103134586268664706893009977748278562703942846995993936608898196590427936411686245724813753897594827249536025815337766070278358568190186201186223026109239164010746958316898475502972834781001153788088791663200707932672882465435216165137887383946318049798486416372072181740566320224060907605994865088432831934981539879081705220688757339891454006208106486557960182295807424308213950045211472991163730309005835009590132891100600181785542687904012252792773575886786606227203667144564819855919168127701187104053231545167138896531443745797849539516792751959821269031823230118078320913816770145786394780818868382647096321187005943861555252148792398731045588078296950302614337169678579952513001352551095043572339926069267810675804576949871549937871597224496976250489871302511390114014081785575280447056996477036393493077771470599214110816362021162555335615594665363214835668350954989128066939714650152435116630964550251141881665873116212326354916946594036661445984540672445083129811653483928461317564505030527715339558905748229732436119884121624542040651864166222614568395726703382466603406523815424030320260147285837054545903137299373014852696775778745180830109028585512883230765650902249569001706854260099194842942122735986999060030224957862282843263695970575452658793377463968029802367825751584132251946409328140900535859411795710216110730658812771360364752067145945466402555983184994751599135326714075453345305787873079296692981737865930803849887648462394062006229537602434014840637028111155880886125682361341199394275422362466666695318975260389804229782798360521279576938762746011796270896649526912464269147538416682908321820381477414044405953641861395366987355015949463476971659292706042323253689985198933620919243350077329350019080163442902347451049154300005348002678802180111843624652822669471893784825019108498845362713928601523204658250780341404810211073270047422024911223201804211300764519827424527416923326368314324338608732768590673882993144803047236072574983587496401832292925790975234656533726461807055222755530544819776383678421355206789809679175371458253621649083162657406168107500416749873702604149115121653210309751339437382068316419651721476288177999891446296747191164933535214459550349715158344537060494397193619108623611712195375050809685962958926575217919397925631649411204451086204019674967181801171898813546903811572389198285769295112870232755149296657132843575620379057964992392439010181606878036750760988397621664636265719772168336922484979091982278153797404673658085822922284765573633321478416539596520277064733060357432991385904974676233188119612825540874813502467151105883261876245008646763130665426217442653785460159198827195923267156550765909532991969447688558549740470260848888245593918954590399478551375645049867591496915308631765990874176042946969699592015332724941562177249543348478926230938001848010899643143185069374493539274164657236791312708005951757541173179436035074366894407718288318514854954854086046656804375958675915555846660743258171951640481956573057116850667961352377214071162794064663300023370612347183344456161440437775815024960396295189968158017296590131615995115550805277038599334440625963622522419166416872157078180298208587851255901736445580159056214105329889684134740638386455901356178842028171157723763079976037884063092019249540549911947962866513329962226825839913856474749725231232689224655275375470980575933033382443471073671103592227558031833982564221572426895793147804949301351477166656345632902278700227252967852217340412922628472672154995073284004016828943676193030865922549562331612838656887129260772423878978209151011680490751745145809144302063708505684218214533444469268829730590494633168045148272244381629572018895307915779332488099583097511813642005372938765300991806955410390091086080157780450023566651410719304981692110930545145737560790140168174574110187388598775838720782371116304687474823995188332801030734172433205580639605537446543448140781012511344324865022856765101035342598719266371541140214218204117158201656349420524172691312205265384709726592033198060117296023328012953322381536985940131976555550929455402404772982128190542483765542211431999051842151141362811624918007758776088376201897272328247986905041309190350935052779223973875532582587183763497034368142914672596173663507412518797710055862514767000906929421625647292906073749518486102369775593130170230027959736522268139057453070213270537221833652566313302014887411386770139848563497957289577575313564189386032789454697172135803630384772189034668034518311442615482980377907924242731519169587500732948605474694932630574980810539446880167661943897218667323429676216318498042675555942219229237165962575564377799744390351385925695320248948220016492634621614853987397421852901708429865785071713980486593516883759565667801172293729202415376465476409264841505069161462350473270311667792414723888839227258780031228165056058313373428884259487739036997878068438228672920096560878820627610865053684448539264432812802970547832529942727727167612055659095433576904783911007803158379338687144049772783595514628086008429667576467483851084249123480305138269583071615620176697192915309633735371115622305187224744886471028850229548651851732641836336344622791672552661407426046259333269952935002378474066745915940367634564767590297349985517737637753287276196581474516929894304899654365627428807261638409742874210715658840121034964067530149131720305768264850809128115285072726414127215320948414222946386589050126563553404331193256300291750852525436089791326240753338306285033972891315203222315776285512591547292249228356584825397697396299529669703382804059922375747917247671077720896043255730104154601199314959054873849833993802753840499592742144052020615857016511456553485212719142336106731066849943237054455783727014908789481112495334794299671695279325210471552857156593339208524245438307283923835738796511457830299780353637996333991916545139824967750892417606008486329110106558392174612642735039852015931319010378785049246809567568967235959911788856739369341729587292131822077633916446969114178571377960180243625025537246047351704947057397875373464747528701563676339559728005381952715854253362449398500766647136593495725084767837121512544128053953875884148026641282477384797499953193948778902802753796367926859217847566597273990907017326709475590082744501029655529335495687250708089388903610462069820891532816396248923546080122651061926629193254595999290566100282719295816114056745655350030784983572567816660022762528446374495393606409915559567567657264986996706806278325919409783197526106424716081980701858284715600456032519570188960193493547784811489283443669848223427362248505217544583517523915538887593782322836091904744110707387556120003041951432664803654099052124984214776311311757274576598901549681309863865351030649163241280163033998739403922905351924803011126519722387168747339983281543694750796996376156502582231712053665240001708355773296189073709207354336516700091489826119821146642303028540597964502734006607690275206248914242481545385708804799398126716481569095018376200625170667991763696701540212824353698800107969370761342868696872532491373445945469468236297182434447624251920089524904115900374082842495108326875921314202927489129059329234182351834889756518305655730614592928752450098703334702685826140742621784192967707974542051926925239630000528094638734995605591610500824921556812544085223621320286509917993180477929896035364255856065227523157623605299973474646218437680074201241879343580287328148548819005126265819174184705842286764033226477718644977713582701854377901878584382336252458770709629444119922794793286338509749797569068842019672463483085673082586740038459305876038029953351849026638041097286539378283155980897838467956790371470546223246357092966450459009677462395172796790255673768667002214826320686382718286326690347021262100976874625084732911112372760562684407966437232169527347780485336161024706689675629263157458507092771850342880737798637690161707689085430086491346555444700315082554488028241894758683618265175002108256465967138675383964161605092785730877757695480384649557953137361039255223164561545400112735754725083721502718951603189322757754093158372869400264989959410774534242501718657998771639435376852139081510785959471521965247435149754900680943875901964937772171018996497624869639128006229035402570722792215033690993288782824065237866652357487075525286904856293023805758793056868979140703238014267860236070946000351082702720142357265548995789239920633139518500127598458615686589837393714849904047411985060488595342162914233129240627719623587051937592365750045944832563469281924125062399328302763667242117710120009023041819700567166296519630066748280532581828343419555306741704261028784606637008294392217427501826468660957600702700328602118137324997137702389173503654191459979104970037763828620069899702889172692577501798962294941529615099280271233428133370107581571161282412883499191526345298202094485181516634679839353347852454729478606007456730328364138920796860706549461856133490024389198595226466802903602771433209560155856108131336723422357584280191252195038688943347477777428933697346942301633141947612605361892632976117022735549889850582014644481731204111516317717340625179555112169884344922612184037778599782134741658569446419905807998146433408001442292144222317101913016692655084495214280238905234054719977948555643422911201607502640575209629161873527461130296607608876579170051064065148230511705146666324019415021530749570655827405330361518599487320359651036411594578446998413273615749760142767914605195826649394628335863301396264775466742355476840289212050156707184325373872820549192968434597049869835214149860926191662148257377680330642840791485633085337462112681430007709148533562636091782450160324595392770640107865114079825686965788898704922455430451969058750753099500688023152411653520949530344661393253196007386097277511601065326405025840203941569287577504020774169704968298845587647742324230825042622943613970114592671630646171779473378401076642645239962961284764701715895071577510783100851229528809861960288837246417487086967641573633998162631910831394454189985174639215666183642004435523117769382754298774940532429410647833938943532119396169847222299671460148865771375822346073937098157378187161405306274947371302461697220149741502821976500792805155456763294886327633510804483348876460431470395347552854553366563509325060049292803942131760522669560966896153001768924239371535816628968869818680537963636362049872472656135055779170782834383430968166838828829096265794818628019826515801257637474472359315257639488715080626384548205607290505974156011353838239874398447251524587160893901548641509821668925518143815053583418866954389093600222218255751958579843894744048459200335203803532765170518238718885890002165243574650036308092156545906873351463303759630980839116208979117846568623049079671693265453170874759205637226882003007909708481286697689907087691416466993134118794687850871849849699090443566356490068656642149403680600238345787621478051474663093488002322212286464887298522480389240744452399367316829496615637418121354605824212876251316663448133483682781696329109336170737573974267221959741010578750014716244151259574578790064445680255109687910747000624040280968732613537830566489084545000866023637756429685243481864666311860361817753093184290610831664748793572814209890014926410655978796911251358966494808600500771369440450198455191555311192385799285797171277314922807118474856455025500692928834312046380800241180512178782014660043561567855235246058284020577115879209073453481962371743297295958279281489314327617740663399104195888587445133124629959959531914223008551198123266556839048965990719710523007780095353538424048413567296602543684411884331000306430691284856212266388130225933002582881163069287874099332862852231905122573109550137901095469754523520848764869402141104458834339503318159020817530878406158795327428156447985641056570391945015919687658077326924761738241380704305255397615322669787091974672808132656030863833252437453770939120552606618916697365730814654386528236769904361375862826078530940302403252005591439571169177774171552335377171559089073357604196171935763524756461328498196230624188548668880525273072536836637597639539975701953496846253329741927369376157663375056182136921070973391984473900748776794704723233129056176103229886494882750027950462150611667823117527944188563201461079603094581901381239324478506904103007410344849886428160102376309382295084252063456054524090246401049798557283931301709239375693966652456457791896998280727955442885009595403852236656768205023982390600925021629211167253636475183752949342838962941936964988683000448069319585556141436076198355997938400075920884606011980009030013556713819021612499464660622357128967527858058810203768830965624147402980465602778814119295576221280718649460129718016066297744922605120701917654253133889977517966987432676490119345846467492819909391910843066212126131040655552919718214236080551938482491573175624764805332074234797431392004115129826688658378066346689801588116524603865106304850042951258718522245589592924370908182023304691299531553404647412447111680553086222442108639966471208516803030518974477566613683365547716445991157336760918222826435615701303913463855142037302176807661408320434244516235928150133842844711301349277174520928704361703340464298413573309698721849485080406015919073304824737741676119270252395295060919995865028387953249734820225050301867725097223961577595459829830781393672711607064138783302099646473128548716777994350116113056487917224795096709002006733367314522460622083091808632270774208026440020479074057233907129336517914135967918067404953987829897617996693084518176849024099217642163176516183678708874216373137148360138361374391128519945647097661475649497318821247523069837600418804642319495691794688158672695926164809591639996515336903030915026237523529497822623999607167023794243709551329934952669790683944530350612916709406132386416177791187756321589822186314842667823524312153791822643631052596166794447097562667696288387682557079349119684305750570874428017813574284713038795544069647491490069641703932578649144862718916980963658597982467677757768173593709216598700153884512330587996668818223401351019660809329709781649221032174893549121433912691997570653805137961758442126337196692058543154904751476256671421581145233293115833222637553488009494190085320688245289613233434931121712109513112125733287430367912322615305870807521791321103352830309157583878011802565961088552952448035329556654184976927824623208983221385612402469078623442268412646965381627807312206534107972956405397398580333808950793032867413552447317326804441326753290406362483783838040495419270917488370200312659274452958653039104406737572694136494960660800354989641239583631682156623692680565237352257229963886580547550828360056689956460563636753943230545968120816672914600450488731232758928603083706777648057939049461821339645153988776201797694481692561288563008245066932293044988806867072007518309296307745487697804240348581129205089299875485230170903457141995632461178213137183894372002906018171073626382567211624070615895426667959495476161495169316283888786260141756100417317216270532480612353943918807075049676289848007534340832976584935072688579974208686841311839254690796556130666214268591479407051969311103695243516758187831831378426143630163824626308047355721338841554903823970409509365540258238082214573874016772571567232919380750126651078637759092132637585151231309385546573707197781183526981343542810443008310937228906608267075809129952090146487311297399022056657847243945650378381888540726296347433103809999239645889108084967154510683667229679581564884418667144426161161798802528237918059833999639346393323458354658615065497501301782684043619411044920060753945867572767592977984470601581137649256626530443486548943236766428329853398736317321713350432089833963800985354823100053334583935577061368211182552551512639759493301651893587754997809302344117952006101296155181696974147529821938521567435285891382910921069065650297004333783443639549715565979205749514826812768941876040991980174963733125163337186464063316757391907292563924476314822497460793381986611646836320824696552418959339096094467891187002224828772529569895619731368023731338065350864570585408429158827867329008594562058957132722543277394140983089057208854345866305209035563183165284428531406682361459873289986795085043168740627876233686694775874212146021622503052640833735270133898446003656402608818652107078125565022538741681724060365084326753509363161529932431155480835983939380235782828395251009312522065098762440322701649083430674951073445262187097953366373617330882512520565861436446868824086805710573530777774560423886252673193264905646727144246709734436608270281946534804323211738146513845967255293336576116339440533218879423776979016153817760594369680943141849413402135628909024171655073720373388012150278941684002989205612934220845263410156608054819051618661230649975073148828752316612404495280468602730379660882778525686470697903937121620160070571060476282118918912194953703232676831814298914076750241525877784314067489302568857650423157804726445147739659156452320049168671349415634593564993222634831653024121044673948691529978433276138044745430184070868897426678370849816274122139935242505695965052398366202516043009511008553703065455370021793795679015312595537486464562296313028588644715563749996764323278258795699139120511749902273130854043694971253363240530930981365146999228968979552016920365059907706210550027877617276185958897537917305960050819621961916352990691880458942349041720317869482772590131849418393744377738933736017121523898139938582854577090163379334155671443024940348370531544998521685869967008745776581622878809912955019618224546290082127302351897006224586199617892646995317375743533375742074607243866963224787154073814424588641857758646478508264550400579472818839387463195218121314894305504833943153980859041779369344089067153757388624776657251909922282868354145194478851421797944377620898830667629672458942317086497581070202057727112921097658081085951480420785191957171332310610263964999622575921701476124471603452323498969175158980819697554356274172727888363144061893876282447414833814154372539053250464848979385383878625176185219625698415088698946110149089416764293853477114218165725597320200930420538250822177926279295889498976807194206055372008849748800162916828141686343944862880116414859935961052022783346579555457296069748184241007728867927423595412178036951950253311041681954964583773366361656842162433783909314943735620151679752994419009889023635001253297597715208207414108351570522871877957989030985187126506352598074616025085167891361243592011479030385239463776798093618234608659327212196327921245358286708239862898373767742822354465029276220028753325879561917887600450562572261643993670865037430311527639989492358604785396026103978423168945913313160835910123086164680889308339488929273678868113601880193790393808309513968650382102423697710285217538248929192312212228138555852050896853974110115589877103711958591512824879391345959341627727941559834696660435737846299204212171630331808036317872086722685253964339077042902648913888555476340699204457745951854247445298431268529228658042569725233817761581502470203783778080351933118481577345012144470598869608109487715860796714759124792073778620736096444830579757226084875777983445132065128783203648081251922025819086877183036011929250756306524661427656440772888408089287280123549276686797344256206523815186589767377186449130530707081961469169237770833916796657906690084617907955504483052222976276491269319801064030928045677628462051808120269429756790952403286296946545779316676568529135452604733931959996106350173733831756017062246885841067426807687775110271115712545030036151640080893261707365970403543859322643386817137052317527155456073099460083786718315720824475570852868051551756382544560547375216507207401898489007332995468538602849961733408051058861758397961464688350649875885005634907169395974104242565124448815042875681039167679284694126405785091552827389277694327497868450629645410936921982936563494018520199637847563689036401762339608413050995494084744069964649033789622064912386656093988132049056385692845123346942169093798926768514986531154428574902496299427539707587393667657015648259915993628230586438878251157169307585813661806262468455263689852645358066969642028914589301333459731628378490708938614327330906774296349853439030060331137253920864727211309383829996193827333934766963489411760649539657730866860270699152384537037710673508390373231467066468083563057151374452564094871059887259107001468569117656000329973987769553299397513290114991622788012597550083253299074781333243576541303748031952551282617728414185011267339535370215586501427759261560183631140354618197480609925041430422881416156830532620933170427307869662531567924759576248285326940516118104407546601461531054840398644051487174883823565931486644647332812487694439334855740287503817031678529422678947039442109178627994954206593442530341515190577324643836258823501992152172488791837741848298523042282805720482294557163507512069797989336295971698880217263836992916041842054287870607024178237377670434435778045588274072293112912768501711407505201329113266467907890857070098457703201760785953304386718574774192112967319876240920839699708320775795072936129295183741366693261577059273925732369738389836465039079595666991275228462464384484732971252791444512601358246712081630235810097905241273731387003174933751791487638708144072901427590356262680922161414253040421781260111890811790451003553935036381254940903321712985388462853971791290419852725910711473466985106815497564358156351245729696271622546811273463734988338109075035340101282697282866303898586622493675013390236891310874472921085724638377578651853724634020826854832781349139252961319338054462615704148274548843921330115682495725894608572030835161608045354795258159814743872526758353249903646269695792106155780839937051056918030812129288059527146330912725573768950887797044402984926131076471497806798188914925527301358448868349642434578307748034269457533685095187888756221522887388089626937307287048300251076520108798696949182515787787109335557594887475016842540608596149050100515071227317712728287524108654437113768124262436397139829588611687027105444545839232095975598546059866069627107078816191444653578620750012047648979726464172980877300351539439655351117829635798532425948267643330207278355775188509538678958326194415528093662462002240630337696098697598015312056819648194882620952172951420356258629395539222258130338377352572271648125003411367466948985426975318983935733463335919539698765400090504248843838444266321817379558332365338122656537099102586208667165542548072968435871321320081144612314441683096525974610551903702618245383352252898955675050757394882962564782927170095582322374030843088393255992883133027641719853847425727902312660370959580793400755508585136887427173739788861525523502925496184588873068243637254638742222347051132304434158282144231068414522762364634878243315914882057443832644083971239063571975679773741006126469320972678514721296050075488742542039995778423082354471582485334622602510407173246911889602056041346413590903278095006862261341812360524209956663526249911704298925434340027491532739929289661403613453765987438711828048260387032442145045187078757525097461545198827879985620010127110486433280577285651951534183370905250412940718153479981634257958464834434185728695691112699747991106517164392659860650769712554142612023836803231702490744114863062742367526745213718247807226974816624443941860990385279179754371034498167414275862966680336617694474901196674140014765883353695686849800361676310462808333112478316742100289324068778811931402253900806697974877189370814278367645235200569342297074850442410610804065324792033557563283258581911523630626320012462828904343520401584584730145727497455834359686386170975356706487466911347569918372264092294510101564386115811674931269304959147187624528436018276006627512108203098376656343860323260339901312245537696383549173673187948221216991637102669246575421040689932942842190387849359098999307430351430973104443425956209841560598591750203673722944393655439320097368559745981320502666594171758975824093318128299814325723526215011032837815000222731244856845466889901198910380450134079597081464544560865786607785126914174359727171324447952455469245129939936153345823749239799970351043580549420396526784042252538798292024867328552181494579342471530345024732008774536148325499769328780556356667159101410753110952725381739071566816460511519706693815338550077902183913775916111116497728285816939635606330071756111621025503041244983550283857214913795272034732206883211678363917233696392029384029012405120931379108020974656690761261232401528667715142148677790293564585502623438893473279655590242964050898563119644143873407062552862235930460296211450624768582171935683203368504565635087812626314952513515844061391703300674530920978003676306367808247778518585343123632004123834601875076684942731840106936500019579210751540897548623795390817714223512296281763831476446591356047703555674338449595429977329040880993332834942106049149232095313463486276599301836726187653529484767414315525941020846551151667778404997325609138685264859075127655142786454938335965234434685968597742847823656403789529136595805042158569649821470073292369150150190741065384813578109275314109400764668391876439076073996420658822285059873108803357972320974062323674423060515415993743709570483128215032080978734788812574473904008078997236506793831260309213912235954877612936759502288471845802008140599912752031794864290957435160091813733946088840395362329135355433646128873597825021550164548882070238734637766294283868612010741489737486858931011284306973596979993957374562182258813047950338543277446270111443853675934931477819825259730220466962953871529963485438782256034049152592185664215143924796385758803666297719014001389655724635186623260024498323471414822912592309710637696099027538518992701643165965178360159189276258009031501098185762910566503162916965704629285326636480160653184169606910495250124587664228408376165876690042863317109088934977654454297688349282424207234340261445271871847403697942682137591671518461453295299373671689450126065223127754480384556175844577989614846615528575482329112787290508994276563469962659895916038033047015271420206308502619453053458477229139876958900714902909997290239308794084147890566936431550700753925824583912825985361813714311109111989433037037135135088459307059777704143177553355582980276595538723683598068529866725299539541677311827529907865994205768678341324843785434598265907982908807338211620049748131318071676642102629557945751944992008557824014189616957302162663676511150684134567049919854926696329985756066814109139266548961008627873890476346875702671518763396946182694435453174348682167151456459887753052916615509289696294664128991869479593876027989763144896884944018277779231567501928020820086301978387115955833288020082220609262487576146462680173059963645279912519030471754914979250589379105539980414557448295096730039552952164924744435412493227123880895305296044961808232152145941616324701383809517249933203557495903670380209299850208689271575584026649941234352867078914757339175635451265899628175285358221349282448927793574282522371757807359565291429413378091173225196494642979641252756974373183302900512353332588527379203105316564467964578317401754230950808395730305775971030736689456350674554365128709829610421328711055869464248664265428172202325069119663000155455558425284750100888879822967063138341757703607825879345635913827170647694179878119154481896566692253951754622612120043574721052896058016777283648517917025752547010280095610938298082515845969579899191158735362932958561379512391185353504631236049706083985272571509092264668932441978083456504373444947925288263214642855145713827057536845746078491559124897981607047723222614149344671132456723026836675208656885251164160940008290140812229761130136485047981854560646047600164969827559930633905347818532673259918367710580820509051359726939922355366245377109778664884591926472527820647159780512677492999386934740152916465666729162160645202412617019286456002099520062775007641536770737161141574081731692787620476215848646650490566957852612108783500906613827316315726655408746472504326851357218070555620564008383145604439440328377780102148490212974637483223803528615194907417621367735093496948617546269943802536315421720802593130806396830768197764916874812774893781286927024728230172251476431565919271959288486032808959310192954961804280417447140527539556963542291171283812033459052521022897613894519989985598505706832953319581087023465523678065792306423046164314110058014376350938175642688793545550166520660123126541521882554728237883177786865290238533425254324470789818566907554157244255647180036019969635372134654405490017052814460492901874777896334504066957678498101841189793478299031679836958526189769924997128388089654462763386922889461849573158258876532341078256723995124283394602581301739176657503311186481736577920338644304520682907309975665408562226854618882171194301353181839428274269171282614415421248463312638881213324436856205940843319299894432000755441004082729724177104644052224769341988361229192134433460690364282367100205965084750230181252103750341205589244970644959425521138850805148955178506005699877759805894091372687904216561320936619793912581306990500364808243638678527448275642366690033917924059833382034274181361593613936962503924851827590875566055274516524713173932803692680422424159613283964730154970354600106927813106235173134245602551384984786451318195555847837762265446590537279777924354566716785264831209455549696695400545824227490105826032986560673097324092943912574679440195874862503176173519096350850773001423065074033144896579550360772193539753073795993145952753415028438997379461695730891746840695265355059832180878260940801152451069810818348171406847089713554508089060202887183233314418819467460594125803796064403758323695394588408786379036261073145336173847198996832613243088096975399029764207878539978100370575447720467562715635078432764667101239590567728486117568162257982574146577493555434770896943727279283322563642005494359074008145941987025292068893166367879509330770985907861034136427231434508495237443251475181181464412321454491563764231373711550386320276508430533544984127798099241450886782733153683344768364033503316882672093257172171992650825644881102334548127043416614446042965371839567511905838449849155805857011923961307741620672670870481796990021712212155235808168814371436260775007688758831068115369794960946161638631148213913015137459145637671225535581838169175935334688889697416954026359230227225733073655748839795210398711937253807999439495670924917327777310004579334132419779638127299534168581393029232625412720774972560335662918053679551982187931539984328949710615379816057059527553090876171413504815588249361308971326958542922050843044380635083473595121698580554584614441650471034818665176760916266210419364064570732625003305326558024008768842846521680071630508248463900518599944238119891109780307171244935921235145586945604984356279621803817878190072521830667319579688041074260430860199635580114535107234579236208882420301385848612301887001394085251076270919870834337883839850198788438186821808737147780726732771270272147021563603303482688928692596748167595234907541434511497666202413737504845439318695616222211746897739879733870195773436050490987768541157585804904599668588862401417200805924714092189778286380240060394197814893134393325356379706171661645858598580442342242569043569246894443350760601407134814477197911868758695674508770793631983345242574274741615361566758653291228668647562841959261230999552863912640064920202575838336277337188106596324781891101593886377518191004633050577159535331333671006175737451884004575627049936178667364773796560432205103137942381117169759102407228711227296136790923186898067319548775480827997162816150042177043780907602723199747512649526931338995734554395467993541145760921210255994883606585478930859177496899559440932440216221359226743125822444635973579623315999612338901450972803001720801496030450467678425815215696087047991982265051949192262364124549022728399518437379859503591065970027052250495316479662745088861545061071642625657682516934128201403648716607330970442631902890608860467844007869120165576013910865732195822930818178514754278288024958860507649447514569317059926864648204265925369113331675392706465084537770363460537272779646243678898901318609037672313919410389618753888476261173569476968958937942563523035643928129212215408847922648033898644200374690177021846555444092572996239052882680330238526267861560109776864646983442234121851466327864515663006595573733618316796051228088021586387003053713076821095658384415858378769760662115250840379557364782112167555673291546463820914668416946917154026654667147285546850274570471458245428890342022769786155086495639268719983036411473113212824393489188519067399783544219475761364036018074897681196456026090929526228905668501250564505003127350723274320627552816852778429642089648173534167632861137715894135258501651542511200756950004376635306608525257573058231895629080116620589681795150837277622923688784190261218647327460381555929969024246645698778347732075241391170873077282264500427466181674994229511606808460896786569342062952385232967382943841087347099478484326676974195906505153656446401013541967002034715708934332125815681515839578389679834547401362348307143962528078524940538212551360785560630615242487761540349777175418807923233219758116856319362745457994154143792306904440066058764616696961326948487163360696737263973340255871067464970104721124060842473660082977048839287149730182355528481510302850515119932280541896427105623045039852467747133408765076917222661237564666975506142026611229644693512631523807781345627790130025705492799908736330226687144085990359705052447063623287088291721275694083627134830326134154352011636043389382475543508184787500955455098947497596940515299761479069786914177756526289444204605778908514933979148945108834461248238495838992946129089619277109825564194965746081187451826991691314360188186394547620788280914474182171919035105531968582867324887930567500938747520125478507427163492159540011467399039721907799331069718551918392541062672012191459232488752322325472685511196983500229161018483622068612532625475961308100912980691007243183277253642801188918021857663893871783384054304908280509475843836873280729820743785364193182030308551549527046002900805383930218474229270116187040649727631227678000558947795703290885154669696782510519146210826535145363246906004248901535234240122561280676747530883106118413982445869314618532680595017283630547546807400736428796715019034393688444224697758517174292373302288980498597599322790544526540785712413475620634804168335821187346918868677559262836702585285238073310350485609881634696527648992602027421411476094930538650733769112955438176249584231053664713679256763862475067361470187557191742670000007226665910562920744534363183829674627016512818284718036691806269057473489481688142649415772994283534750700260144849267010142085628394150744458162883562320135385457835096253023971728539545916882919037589059193257949027611054983609198401738920622850431900027983810678951740485382667888784905588444414106647424531010865699229925493408544230187200154122660708246602558579805620548399938985000853210033641902764323845496836606618603043436625055871255662201567207121026909025694196825906288285640406727041678974219322871496091822497892185013478124297801485132727334571463879904609123581158660218157405809599928708480592557917795991145511527197035400457225365158571710786458002677949690433700023983811718348865581280599250795307658713739310268843784626435783201259163056531706840960630376879094388752128008516069115110563608984019454401731190680188800044125689687939322843037800333097148591492716547318077874674063261920083436845822314636236561829167310131690255241742890253576450609848899876845389470979001979596778585634500800209996145120606206977352071704629470783783765196403182696853456597860803121889687639999826095593081426482497674405466982367411986633502877825633061886343635403578757137642996670525311409691931680277626970460132540857563317748792073784347885989638450590207226202354540859142109711851508266957199444614375216330654831950898217174521853087434964917520399538147941554974099265290961042057519892547236618210116341697379043599156397310996995043820894059430135351340470735421002657967356385306386492854504256395377283344505178492533240059028941345389482927611903242228763196314239492739344099411688387742774115814379586718342976873500452862876685244336535753971085662630958559185972498296819262364185147051390081692509174744225658135194648689965232223283767333037581152014418376051332697558418623619174202607814104047189535590178811833582276190289861070666005778097530978817917319237822905390503374152365312280761942784153001892407753532441769779795779432090934546026535616325337942681518614814715526978965091164762021881795250904567720120327148034370867871832403026357428748831991854212082605079957985441404559112239949352817018184172658346850942818959704038631224768005060003191724834886906439539909222194673857981053343639345274634074456972503441488721722447786907935834500480541452727132610235942081370018259009180284144488099275939642460585106259690568001004831828180640913997801750752530488296869824798712910247268314087511047146839045274845127423369192757058691147673763578325147500473806354233209831260359394835842695788123398572450230445171608564557683223510386943754972416365443952527912719174613832606392768404586052309419035703392032853469500576236256860996956784593714364114652861608184922955877976013945636407383065797606431665771939182746061717451357972033136306744824136347213728755654524810765763874345665774024348501247939727920359964345813572098818418642392016766469555123059722074777475952938445942856009279252025674290490282726521326029318806730200350937437771601162253045635081390258814080450123645450330358858925258242022357261708507308159615079763958200032522221594171193064378577265537824548346354407255385206894891639273863981104303744659098870061871520972848904986701897080424424908995608331699856337719113091807971567168054347331127108826710394978819478894494003800430436404526053737333304782827322769497774004701922336925350815537653891067399741426431481236588370162044039799698472499485125575751797233795967196390397332405897984880933516351611102290466608842709365473355717643170035721133923170898293413071426253655569837060873045031812174586619403438654868684993750455413523058433068514002513562974415004326428050220070915193377476884612626294144187398442016501952933889412129625499327927749953964415776150243990354900409657077374834968600494457247974607047482608965675596995858422865951378229897618084170318920012146395944519912949941367694897291569621795225046861038410932837613906967825912348541203773381585836062858668052867851053615817122493151875770066652625789886438910298919563927690078882779911779102719625888701132293566066819607504560743044367179242268326206471731691342508005351034735334083828111857162263888422652004727407018627765096440379749277606581839401581461616270619450465453615625589485943799052563926316460339377723878011126338870867378688969146500390488081297939523697508533271075499725513369828481213909165762395954188972816452811236128586173154817335462351173396073879985532163628275135781710042848669836444607339764535960640639560491673493959740167629443685280364624155308850209334587456470642826804340864858864840101457828939671929877608046192042287841185915462881682845882551170826090148021248429526859095654631766222729413754145501877374231845960619773034046366389760886206218405560866579394353881844435726513151200720463073231384785119237633900832171822110510209872193731386105421958214577758863823467445989422241716408608319983841724632650485758011830073675415725474588375727315233659112384972384102692415735927098391575148555159154014891399111456389351866117128975222095032576698804473105070760906412609839587307988264393543486265676326575375934126846352835318244107181131432064587688044572868416094227647194119912487528366933459549019744174313670852846439468674819949442422600182465019405566090066972837965044452909726029671197973574669100505986800587171118734051028595143569425404547417774642149607746587620631085701652924950016585768434230802044625344483942188421975654938032033745690536612838443062556029625987175213590096205016133158202594785027256046169731932869316543922345034881260863874920599114244441859164728822589028528452533223554942485160453088664059011548161710578224428172290261282375623929321436418501494312854396799101524304084453998138933740465524857563959703035013341288714088663079548418965494579004628195516960069317544392798859515330082590780783805796763696581535027233358745963145866323853938017661199578464789747125365767705103322171088484978816882758526968810716533176609447671084238299292551055037646566223091972310347905186134181243297552561663248710555086980594692333982201882987986439737434009451188877194480319079004963054068578489527056311009931893589322195563219971320366846633157018613498848812836298229314617257834858076378172580494234292190586084273678891438233253206455573238903280984185662604383701159231633272928410694859248285258192562871616109936624495455848841389146093180220366393138443312664995379904142962764858364234447179535152047814646798609145337455937560837687356353490088169529438883576787318884176788934837627832771626064773421541075921247444889444507182656595210200396093072283041311383623039959580295648693828199300520636002513321480564482645914348196621536190009905829824556697205219594854784532343267295142739972196201616085139163383463355945824587579077109209727977725289418341771750514790595024893777698986578860279260104497881430931422712409017656238945627806937063507660609088747385396506856338031605947236618988536624185267218173152408628388604005686785358287211899441262590020186957641047621647450792219720882851640872460661286828717958701478464249773886936238070557925325338805966058394027662891618928422371208397012130405160337559088649777519253860603359710183943124355506855378356719105672796393387532145512179541102639481615702037050970911627776837314418717590664320558084489189984659666533221602503020654672070384873633961215778866429401289764062223661607665771981212554863551876310262414828426202418262056920685218918603120160273938550230330469849153964304116421986417953167533419629533330959456295693478756773206093116471358452931078205248039124403712705265304134552505616969276651762654194849492605311902377046850701552155396037287568426370125472396753113444688773095734837964824877110814228747431095703674033936786039566727213370797974513608693754292019426636340202864859335219771804717441418009484708849248053306881168519498910891327787549034228236170564420714882950098300096559897053952254434092054900842451514316133891921783941939762172528039270237314477763140831040117286635317786018521448706500431299667022545943123869354505375193074604373976917204761330260422054849091034459385090355522384471915935869932297393038503415823148446010157090217299435741613665643170995509635393052771092393390129605857569038814996936297387162332221967455112514150652323012537716214896689540094289086085300966683638025444124115074832191955362772746651375033368493959748626508940621042159784630005985155529934957568699737252520739849374929624921690927201248781992015118625063064799850893599406162355362133458873949652929233044677223209207727972181556152799742640108901725951457528553594461560643523964814270324066240659707603723531374869730744944396460058096171574876195508030690811012832809214503704899855966066429779574740878251857382202347744624463344117943454690265409189527647521784837031093544395592810869605018823148954970267234964419821829346369272137357402254423374460112693500521098657044502188448325497119198980026556112583680782983610705770896520584423860411699993313394152089217712890639177814593146982721052787604011068052512635371046575061785278803273555422471352690870553794970383601400604212417196169442024677100564761139779836999899084139383970778100992802179186308441628752813728085577427850665954943171529172998324124038940176361670239246666469361993601692959493729165663588373495193905514955065354684567627912148926788171082514466048414823269955054322552460314656612370120368727979572293346753907317363238509481385533816809677505413178215297649769660388445807260214099121555349625237772515980303617470892265690418932611502807277281800072471470768982943439206631073061811354595761209458826631702225698597462523363608167503501847512773449977858110438342832363890649842809298949847835153193226827466731833919578940792761323555524472682324973281978416774838877633055060655581738922819478583664166010568252207409626528003772642120521090502958653196674705741422719380686591301118702722470106092626180246311273771396486538612979229392963070005038946142335379880618556515617305854705082697915844709548681307911534683630405389877757565823981557866949773315437079449433203661217898951259628110191168688920500066946547609850864595951140056980282844807381662984809426589947390658189653267106509641281092440563365157867716061326331885148993405260574083675050668400452780445385735215496572056729739977453495289607096992663302949956310942184820546552310089651737571844690323885417167269038917957040615396494365756216687933495900883972654149726182488256847225672569216037160076633151713278426933576641781681339809316224075829583459897355543355208759604673985995209135559179978809164339559876305749488982124709918384499931525960042207530735376147029019189335191716006604670869558343039521869535145784431324777350143900241414204151551213705036747145578855122602397222045730352985195357447680532164982158863935487257183756192609309610423361444461349768593038423831396577485100585056146063999336005586529004891680520642724390230223149716301726137485603137023711705941067185716430995423063020246033736999924447501315475705396829395559813557250946740873415231220907570639542598097983988550729672099380630983723067662022786325624418246868956565109456162339740051075394274945772943039297901263718184443116541124536067786548832313179789404233004331777995811412482976130557216628803017653488573581499907786807216519866799004546092162808979160134428333902671367923015409677278467414557226677988823838019687794108793946585863962825514297344747503197513275179211544538697508697449600117669627820928536113295649707043116628482282821312460298663666193508214595345027198956616279964424900106631095878068358340749429321272727220647038731577749110891501498057280836241653586271621502599382802834143173234440885914922421834244162171899765415924907629001471738910629749753446255791145584963411474428386377368692806305710614776551758198140324106032610197422774387634439703297903791587857611774829470614104857024536317205680122007833454306356229442950676103166467887225991047084925931100766045835260322918808422011046915131543205463773047105134181612329841771113299999374418729086096002443252896058094708035451935400705602889760152179212000455345926419302900755216194373336903696587640971734287588100070432172621541170639453986089877571359273930751226184469137364395410479819653785315498446535121367411737124763255501674934382679928218019942067002011382621898898224734291502247977053143455142454434705000372377447153831702864228400353009903492960819240686317777171509766231323987696523973433638503296551990591022953485010175588477819858907602380985981561098356011375991124998074812306119427558752826927437258189849110132519122870926985170597323016888926502046695908262757884505570947864821082346546406435003383480608497799292680754426630294211163974326548561249470949702668934596912947727717433835243115569873093642022398636168109552003597192898314969917302891301168685285501841296818931224887985694644676794738075524140558594431004897721955245646675949916184625579473624009301946560957566965732790641329678371545437112032177343318635582828070621629045704214704711291579209024761499272894429918787420016324896824787647482346943761704848602934329028748496447976195107314284764366366159288546386667864465391611751677224619653328260879480932922080024174355744687692631144002600761009552049865827604711001585317267531760523121257791939967671635802304573751231431080639513749601675522703747593213980453181960486288040555225037380231816960867602075318747733957324037124144285906476997611603823403562813308709695136936694000274434107046746287175997059937838715114099741405873167672462705194040896172649585222590152972410423073996895937647475881606924595406266259683392639440706663512329623434298374360558757547940145171582176763235496127428986066770364024703500486598762651950871329235241007102228543412438063531999072214154764952984428716167787110458796990300393843338196151705239740073791116541041167088526499412509485725631382112379414771404963516943091196196606611611482212622810146126201014987202429325034302190169929359191181934831256820275698268000934655203320719048956712404339289829862885822240210739743673072222465144254099855456080216665963984112314346162891753383072310734923643665793009403266940852155391919692031234791796154047391170525303056268238952537216173997189926555632237473850486478142137914926057747954429163223688168461061444120933530333130133182854491630684917193952222091663484058869396494383600602468562952303922344104323800390663179850535441852866377128618424868675546978457060489525610225293505090807543630278837109407253389826699216469508106075093635361844232821353345249119379175468752482463571346715802598500456394487211403395157120246585520319359226374516444116803673211040598640420010963317302015777721888987292307277047791110619407531294734030997718355115957555669141149306092149317599355574816834363318526900160035393221697924861796765129276332292899162520243476883841453809709875946442861667014441375278303460273982464916884484701055787703241365591325019126999049936369931833104913136011932632951616240410795642957433222511122398699512532098528300064096366531312780375103071911437638048942981237785860784814727901029542818347378425597605967560806603640476431770776311416910938477987537036934928613169414404762180222578477287028903910385780848934124886501505516977409717060041547060836505359005803058660708915465572708230659814668972308150889173829453852458075589547994315632526000154444014375125504695540861706434030567071832899433874284610587195443197094170297753103395062684468616873968846854394596112359916995669089508617518307920519166185229925876323900017691363156039212449599489855882950278525742727794943375123208895721570501552981224831678730177252011759626585460511329865458425528596834616284116340968230359730379693635271280290165470182022946556289831355754976781375634404773577459288624483113128707526911152510226651640148274155192410715898990767253338783764581573065943317716816667624732648411161942081194991447467208663844697725062029272745870604198353659139654150677337638994287729765447884069103840754964629303652576643148237807813945171309084027967631205037164920518026122668310760112084549641465517036283982971631240802748000297876987670631628004565098200323597010920321724367669833202254025958181477725798279481932514760989425047090505835552999592443203852972230978288491735737718264925007521423036552652871148260574058050464816989605036355841009734150758682727063466246943882887668987406463573304241729259758110857167340512332406736336137023017233215813529389601230175805763964155743115218384152210770353579094660309165464441963307620419950068369524894377622119265945789278315630440147749464255648717690709219163345303626644280338672891787773046474361310529895079503849360262621786674395124372306071197977620075108208646197990746089441680681620483022950812074043050187025610612514380650775979278970329618267693577627669763468992381212491931477035677426051749051371278861996790125511757277849348008030095053413901453398755776129516275360667957344545106758800396882895565457070965037453156528631290807005318509635748460036472037764373332997097067102182370054398063014419635617767380299719771446716503121893568855491221358284973184916593751691640649436006908511659363495107299105667870128002356865285642358023432838724639947345770568066614638816638358231132780620968284210441944293851675386167712154529530056179994051964491860136656196268080336456668894299067442300980442928278951369492939337126186252791527688961654491883609971017919778774551464518023590002373319968072490916273113704136028181296935516116858147073867532440831052363225995419121007617029211651820969235763749316727649306707133578778710498986574923684494576143771367859304182752435876080839470065357814820646778401492122076145422723134128331823448311668299021199717023155979931416728918374440866442720125833998020257469589740698344268237503077299688848008439662325739392911929121531447403663457558493018801986799235895789218085445163259615700725102418508514044649191425889195945642645520271133854281288833039245482932163579894526488075205319614884760386922379095305282942921870695502837030446675997633022332210045949273884785317369566646221293354331378834206795474796347729171466703754889172457918831502964356120846535156978395343847716130158766734320337633253108993377932346319045856289221286368439150326326235949751766824768983817487696171578445829928452414397637094626189574271646427290662326129322254447869969914773442561774279485664738859384734885504273337336576816582606912609255522543540007134970460990177732360264463131950974377442666558686727189194405981031000338700162195213625637548832509174280190784328458017784113363428721561746028013044289403621536600002395138073240840609652529425560325419378299138336700763038041101775829254336265700961286004335610320312909790043195503718860422930595184649908097322924037014060537273200480251792164147240038529562514981982820248830598975171366245645689933788773473467001888524755615705249031761509050194198615369059948962857643258300373667724999101165333039891429930200024821546040308510938852951821525820278833905187549871527246609043860171862834008387989114369113566090834749072466479558093146339933080447993643475436454392890457076513283358013562966521579368413050019011861403131469172096669402845314821254183412555533128773065175611626613398785430082505978071003655444645907152232904186006275279417529147402331710856206989775464770348652322263346541842535211244054258450692918499302936517860737759431896296726828698265792536266523697651942625132148028328734171917186515177822619221366438892981815952194795451766961379543004278093767142318888072510836878698774775152833428615254943478491226349748326197526983652785934006814247771434337822282877480150244835943341816776639508170161095727574675593993966542047317736940116248637272406658464804114548146122479846453886325824054603253948055390333406088150032899860998148331785383982114294459763382638577112226905622022545415941443118751173170518018346139913711474062677432416874818318645887450366789901447453724110440729316713414936893591093137072641326502365326636176713848849492974080740075621949731719719335179458806116315497133062839557759755444714912534325873437947893421070817453212877692164979396872718149861881699582903003889856317259732232679653405481882606591279552592650720744137326281806242007114741052566048671609799850828065874938219650813867297898884836035567178633103810718886447751963452189821636868539643066334581693728493785325044634755051346476541519512537551877361225865099511268666921991559513142652282689261934979394862446232407099993181617153801000294514844829571210574891411062574632151344368812984117035167702640335199606797758284418489746322618658060626288194533078017672645563846757053177941946973762163268880663393940271621593562081268022589377710550455485200700658235795025979672212187502895095459193552460175587675576681598459702669145387437078565817387625083895824311362825458299696589757130221037899786339954013741415309737014149727779284327536530601558935278544145363452288035161794803228994826376384333357791304179845632840517535802410400611631994367889318469308089822707004682114645131473641968307305471743612757768423953660131280483081456536599295819436348501888753182280548698943513032961199056773123610250129020296476327791129371579325630919335738270663627341550487722486017037907728793399326222637732265873394357364238697289448624556958996283510903384698651138404267608747261250731148584629796298059916160182668646547397744499363339307225578530900883907120779043209983933033361838664364293957759242949517886093045961526350884636541866888014647200605258806586330035918737268077833221123571144255349437659236984232245167302286762261809409085894877860264684606118750218531467426160312464813952586689255666736813408153549327505320399279236187334616890568042408863950902667334034219824852149015985781225510991587734857086443657716378741258511416858722461306669290788397049124959129678585229615166307725553610423891309260640274087972177146130544033758054611585804901695699726441232939380519645179744241529100829854278120422854879839083541863281999830812338462576615770187459225377578245425582948699994505686968522247102954749183476675856013144721239520024392499049264935936338135106164445677995876618424142972400851668408155484327747996649113086090069462949273080730490455730130778924569938950550191843844114175635791477414032614439635977006450996946674074473258934988263822102647643706160745059240248752116844360701110942896984918995006191892938979327294415274647977101168562955224609705411214820468372086975044352995236660530008497466504550183503626094007308563281059400081687944859159464520379279577754635910587746948219564993582980873529652617943063653804405368919076508782000178188305821467534707822883757233349788785837972207100922417628430186756150151518204270709198617777490265874512361093421193706365185502431220518304887187839551156856611230510611274187854350411151122838026025375323414624571483729682323452787199132201648980208711026897413604426410894898191477187226707297653961443933024493129711716492159676648777270804352931548203605359215216993128189121738817150595364122558080621725038770645835211238087433266052813203416001310156856710641011959982680375745050608048504318426045308160847327754505174236301202264872633211561213163200890253075396020995485899794767110502690131393429042938574712910441741234340791411519147757781790232546743230453565707089572011983271417263537311737221627321878640044128531695975922405171504444896953268074307925230580209626704752893423968011753494203882261787905335279398715998092450871020483428759245884399090252194966068515723046002143600169179193387926708425223957413630950719920393730511165090544946421897420609131905438664182715336704845832836745335426894006423632049684693995019154018708869097905904124635545519097019900627706722861869043851258328751500499671502833552392687862543732571669984372782097014018458841715824861861253288872349806025000386379637850690821561285861732889292806944787145662789444772326456551925271941085839984555552557807624431465151956756844276200611264751346626901440140970223737485625621320870084627627125516494989679104182031579628748519544453532179829927919673438931833630688187817535997330099628766035098689646726063421855014736848154499928925347811463968170125346330273587137070732415798881854942965594252979416852777913624859342505728758417599787179953240486178975287912357862306014700379060692562338323954830317856323549150895979965693004660871626163586526566001689078362658963733812497258160226065827470912363864263661380358483098318312063790430060766748991784344995951096711025414329719045681539846718154568609348255133446414340107566340698928681322187796977570918549668895166264176257105094791257797784416179304488124247244924418877514804833923993559060661636213638910506849945709132851647073985880180185159867095992654343607555636583598890204148896964499419436788155031633889785866006600276464957891006055095869492919753781482043970610295443732640266503763690368579713203113595088697380939980731320887063648536486001690010963662176354264416802689354108502543235890749830393959616104644875033626325963292989821490237101628474663762929824161676964711197287563111404952537596933445768725046124529168892708746392517743781285611037670501545386321177956992994143771232334177643095349319906844528403273787100057201608557991572816802820955682377666817877380627162046002474467137874642787727209219206062550951565627997467724351453109329307282249210607189989984708987377858408345236047841738300413211595497874490869241283627745467601226166677048529515547913967112381157822635487592087573136405932910277600923512324350759910908325125940160287593953207095297854191173732738120633371958955926512963836015983499223745308573691596019530333592339809983663038130684945563089054211011505511545732177088935182041827532626954795268428086717981115194432151072193999664645232904707159433906681373688751555288714203437192593211888326767004274188544014995665393620091852227897092432839763473773498405621002156962428555857393697194072852436355024508796733443201756864392976687355127888738756232896019149912974460060306123767019181231981028311567013879703489593979168559127270726980456127818693566028825152541436985858031401851890230421232396621248195764230606128159254035265447906638960759895688162324669615156185721954426328711065472708326028495918092290119665377642519948292815315607698829127878377677381565274081164217189097387668793988591275542200295890712414038043912185173256387504219639035804486992527715608361712774093004926807392133021509422529910558272697008902542345005386503537735782056685610044596007341720488269396028704001813292176991284689516065957915613612633168589224641583764723761274308783006797816184807657198435931476353987157114856877900913772195698285545963785004927803701338339553446048179931958413670661164514664498354243074282125482939995699999872833468734780430825601431360621413677431262581648268504096237599005382906738447708460341981598474079577543234420932858444514059499943754373865774503120741487264240760196109673177039824126110048057154407880771176790028020172983114850132655738187450997150521135563328772252852743475644978811842709560897976161549812044513916554955992459981890897427756431452680899021703750805597823516604337675469665830128521556748079135737111270159551846775662803142518948787661073440625599189429968904229213501276709532915389347338345253845983053025183171336333757579021323168452122445192206799449156498725605722132870506417326354952135875053948236421356553030388714342226718147810197562488583347843825977472324381004463425411810035981417484366998087484712125974310738496641104502405649097415649306780603168748601963653642452343293056731189397506659456891792000369728417589729350403016662568517754692698163537266536812228025715331216252192966745691329832175810528676206547399564100339611417561676863637110964024091967802835987897735796409592221956129471925457148332910686760334477869425071835823545280826680576125016507008773243672212983438240233412793664866053833409616027814004554202762259062879578361488263893380375185902909893810709199501926899946187216813297747314422541086658716888866107433506412313890356782086559300085284645791950962360353395805667244706084247124218871706431734908421457453972659262859618243446400389263375470676075048815567378861401511798169735578912075169325075103771025439062265665752073227399414809524423548325758465480215248890954453711341900861642581200624209010229369160064835929316339534075243028725037712173172773112704132880833390479804449124864342301956159706405784753028681146498547003977801068829798006504732905902893150752143132044523061966048604289470902684652022012345501126549848992527634072923665852397608949763041816397565445393980167976849196374376655547363785690952222481930514156045209455627149198931567248990698408654080624574756142947393110940601446139662923832315621383122885511438053604882439620377362777034443041248953098583084365673720979996849665284284729901939138238411275249399090938291499507331855228415232500499635333114093140498835720980078081110990016351911251969188150136069535928786814475833164038283083394513543320056888121773365955165245610555741312982005443146277638562012711249850727893218042805379824336177786893736983338949854115576882219579203388306051696890083629064302071572711723237838224390862788601081614032944666029793903206565940149236466628787313983639503649666505445293271476367410313032935320484336896525474033485162017247542576645591863094971738989408100367521221483556977265429800499117944242203887257401467342683150893786118175846889624909121246050421623904584020921233884447265319141835089533247932097771004484774471469610037420804565640468747011583938223498014233914783551813497103213501329545819014072324240335897063738653997377910841036201144538409497861719564502049046906602746762810851665202822739245692531249514058924461238831987676249069074491551953782939045774759475827431005419309810405959434516946767331871970057887778832582845613283117165222404451002691046433675128126184261559076875643460991741098056748955455936926641988811244808441531202213596290805491514494395390891080649519135513225560942982929550133675969396285288201543515439739661287884079549349327254247287180612622846128687396175277982155852307045523266830965394034128539842780763728458319806907777286900003034819404351635136505624572555011950911873196327890368819388282538430234885900942082606565633468840291476479317296700885033766935058204378758501224555135141088406381241588026560620193867697050368162409417451307396607584856718924843277317438165416486749378911205703982602702859130652443231629890172302553517268069969914739396658947132944741278142486728207650693843196731037498612587449256229581906723202350904914928876733562717773552225687311339654550912277217963231682224209706987130056028177815156318206654167149350954637713196170160048155720660228669398365174468815327437251390058362259142196123599539155416023094197054909399534462955225470648758943210692927340277456041795932007756994564787621574015388779930390771646030297504229336457715075506536310563254966978762889001526954708927903026498050057648017938089706740068940334866981046481853617528228730979575088115413808975089140932038516689712655437815297955046648053111744099542397484080241022895679052625958546436405159671210746263999074881409887471268211866552292742054281782764801482202969205070515299843450630286520880218204233392795925163283662493944584967436687800395906145986587941570368301737555258537278500160886746091195453942013933502336405686939793125154082544654968757652924151255993896439298341016813057522172798163169462582782676208700349414141084543395581908719718698253047490254533363996071966696095210059893623508860902634104496462888276499678266235489479735753226978840696361169821559143503205123831730716235161973266806850475471636012095645436276435320910315186242713803569748704915297046819769951094904666795970623563867974678768884921074342084284457412279212514784833881047219374706101241973246538169613812559940879576774620828801139125118190126311569182442358365444476782314562422295915475386151646751763207909270990726755643188745291141408907894313820623735112460372815329095839214785256513794057205968089943284766307539592724986037685088232761436830468672313117147162566751888209920477984715867247045806418512843970178233616458724858303659944379162779370322374382565174329668438308470210509146657006289150265786494839755279702550984441333827770227920030615199586412868331668061012197453685612322782214218021249950401981843315750353687054026788845876565527690028640832662960338894202537390260511597541570852327246299202263325826311843891421249960173392136047586408367060515119779045532876935362401038265889723299323903998938176804583192291583578891267588718111237397928582236877846516760309675719246959610866873009271669737835281866112796989545388868100594565201559421191210188886630216534397225852968761653081942229881671558920906090286339610044003629798071729301681067950455950895374568051628184901680023583785500035511218815570244853689700759407959104045178073570459953829513366476327616967875387612245724340371546622172631532580372637023549658144169055981583286984442058503910091505143876626679856365873210531271473821905423909800384317184149573667079326207492945668406504951236812151535735252000290782721199773828758565483733231734890074237973929999916901366148069280344323216883455780796519962083910936184717313305942981686505169431361750949847341368090351525749021620947491046318798642931985876392578327163138965796276346574044920052099199882117542791816642450593913046643322657003241148519313463745890527630637696493852382470002430077723588487203973569564551366993612485838713962554455308082875765278058132450512335949780685663208932176960808518187769823146511957047857124298727481723180142526920432250054715427498197973304911431142783395904906197540785201878715844663990217826824203704999879946163747998641460558261146882818869882221585968497224259028997253630790400101710345284499963653427380342370021832257367310071378181784695539032970927169251770199812647313094627604829857994172928340867575420436526571260933610619687445469538646730869730665085836840265682327033447332852179283066711318616398022825267416952859480468630635134275440493559470502445953361072418602052481540607360928546601807344544697350906089004751158634550915750770491978266980386306850795332306392371829526255793205880890890564572350717887616029169272963807644244272502301291076121627775755717993382539616880969429934513019964057268591794195446772148152559061936871366245554294928538912530298383918731559473016108368729433001124674553677663080698194316655715947670640686200048629534460607720344571459010051942478612258343766343576412701872867096726653832667923903695199879662415318235648296442769396361491705029347755800090733132384540059269952527582707183983733385819104195134577352257643798036785714973709292731168711863594170636663799580315639525726119072529553663792677242036168873640349238559516572927364549664073738319082090574707418919830649228123946314363386113274319095176988503122060829125572548051869485429015040355915620195196303603400595208937499008337592559987532248289089024994982958849237018514338392309451875802288245793293084424282614876210138163059359079283864883954183308658837913618065982794599208595869799145564157852825802356428347591595671539534069063090134643969465525137511863724904364785059968729082641369510433907499176603259352146436846319361947462803847809534167437484746278001934687294086871330876667098233130396164482970462245124435323181439750376856941723963925129310182804641627037483191250601071249451179971797543444542288030077924120430818726031582495468934495766413678241734448459145971826614772303809550850693262315076202664956106774612050396616612102131421245412282714108133159994452822833178622266040390478035934097291596488781779521684508181682826572755994579479853382401387193181851149560110219086908801409842872426498151715859853051533783788447237498018298074816480071555456408151679848128390150078178347810733653028434958377996867882708797480778672667087974682355670793913071662739678698914188588217387515296216580422878636713132725044866260976693581932787949773101961984502899515524878831852157234246395698751780681357117458540373004438430156647765226607464090660623718436531011662860364146402877788395599018452484693051049177255209179307142402276302952615078702956238116886351914363523105187135868774903013217271383471006144528149038740554890400667675808703212414736189228611688300603295697128686226914428399753479010892184779747622529882760938441230746526122557482737441101005278990528922492715417753056945692358002622351344567386840297621097142413966416411575899625382653386088825170144122661883236523057093230532207906326239394882299611777189675570486913928023516291326541263057815556065144671452558819182991594228930968918683567153497135250227263371790604749477558602378618441829506414701000570412529655762807002264325086543094738692648598684570660696036243565360672549910967421523603064458942964343066157702666076651350128344067484052246859051470692750554953011182045963647740582148624681771973493326536196476931512099138286376570024787251351924354135507268931856858499480941060455353909322960437042127280597661576125570297223880955040842951170631162530449782365004238746996208163435757578032271620266510669919789295112522612778773167499937418681595365125205714058495336173222334766437320233405247026242476465613936364649073301278852274765997877353690125533644330209226607509939061987551131674110933311819875932979499356256634801839437793740017688383832754876040218952817553044789014782352876444589412297621909976438932302187685731752481533902578222370074960863148364145920616561400788961503283004187902315444264886734984564188925811199173292033923825060666920398810815722285431178989478374725711450964696537686147238115537535856870837219426945897856582308971439602385463840110186360085335177210114606339505016669787365400077218177028497962980287715164978445466048267222756636997972653347915240835576804294969896054997717695823409294344379409259530662866981523358289461341091283966917766880266601892952978229067824258808232660809377432708745583058937098638058376301360307727158212122075256164394457896089642942770848534644244275609101333240966771583383068575051208521987243776543279267882214984311653225940556360240920347041683258655893898944458030092582595896978495581637080436259657511346016750487277805946704813319480969132247005149693593609408083126303699646476677276208630281740943632277686618574061416384288847392774395141656199369428136211914577026918129059703378254410924405573375582098204611854531331095884263387067428652298457879769134391874382841854283322584458693305414221528075965627700141124495668397090908325094305601870807885396411371006063374557455687613166233545159281058126673001961933300687406818010806662316044689102906664086410801424938433933835121790339636153456177133011839401362732656054031911746363985496795392418349113495547135248708925478656198272206368998101153266189956537614843612592568065541187986122442505674477141531893944316468258952654311174443476188700320572101519025578652113361993399422598480099659907373610017977297846557586781191232058880413063318504042127198885627842121849449719890237662663303063867952858892350230554876019952180834655452502514778646812024602249537994976335610474517080324090331370810925682088858864895345607446913899377526541266908558631029904179678868864728154498043790047525004933187565133431692872505477804668009580019264062375571779450864085429306899065886701032049459698867401371727778897855118897327035114936062020543464387584435800837406591868591061001269942882174056843954543940186887728587380829260724752518514670103171101450406521974071642014892697053335711750769669162776547162992050140777535821238552018177673791020663237812810017369753410550335571517551089556946043864726855774377067279789507611031259590795054856930341955003287464613643964999999399986428191529233218597189256253691110694918911313637782578208568489677122874047609451133765788376987250675402084561891662265767944356265488888099766859964771719320587468459340011269879061532067765767957295915637978175087715544746954138548279537160113151259677590726366641262387163936335541553743884737442985823090662956389458765321770329737740704774739858130345712705289303606277986025516676278277306338081061439611306912686950217263249631206432200573486247842133269773755701458681269143511698245928749478595614474432134333349702986118397968537084557965340422164261491691978247024969360635979343202873719015756865197041098320647971257488798016059068331924333957354040610804874866934085265748707214382158035853044906128999346902725755925543234416560948568120110909210247608445147292457786239920856925194671406589105537308638917679339958654262766791382237209140726675479316924930268112168704983128201817670489734375641753612884899257570679222757857137612760210303897354534619971594849290677857668681505829660873285952299572957171088224894231835051350904020243369062311569849296211509548515700807268718769049774308731231029922647008371859506664123527498290906550268722670016268150456503726374304852209290316656293463143271637808248163805365553350203597687729076868782219803726203830295187011720133412697941619183310948352863026677731062871150095596140644554138442642163094862559012483948441621959958508429097357581990754855317092764069954242737583165842317170258053466204955666160815018393054771222707702253115604234113500631674227600736376345082882170441853887317071440144224199887991070756142821207796558900013686655358811362252142592497167126080431226569078237055813585022335180340640070100927847054445782081860089680726707884101185672640797256062485133415863506332373292397867800403368284378567033662611637874660360758000583861396905882014764647387185487492802709768643044562512281068073521310313054462849543237970143690860673493740928796408122043424742062669315591104006337328453376070003004468866753211746394641707729577513709024613406733816460272060157849838352036040280896198920759152717244483992887835201838535741260837788323384340314726527531056163024142455099962933737962305410902121355860635983534744450720487099520343459764811829499972424014394594983556199485286820388872224676901650747166937096439638024213071000264250122942201864095896199718712846054350235902199182300545846988412117015914121436685249398165416394551711863023512083854524040969904638824614084012131104925312509477043662094734640145199818367844141597131275685589629167722911209106280738869086003574502814162970783905278853339870830748813841424089054864851441613106589505247590879412976248250881454446609177115577388327223712990607141014510004955920651639213406357925316988919869088910195807228031357119058515987445210676014332583966111824866580565662490927519036646591582228787259527987978658506637578926779627295799867403353765688844233636650914665082443081122063419138794701030816846301907516860276707845368094747049921703194973058840730319810177930526375421908175134440760595623023348695113465665808233998355609773066157919656283289059913109594856785664325192199169693024176371341385528271012157487408349162602353189568148850966979674637386639928645988029275863142414752712879590142402026185254018593084606742457979821079396924229601130366466007099354843422469158236448754602893857697318834623004188034507577738871448197123750678086356263570830226992869319444533083102836927797639174033129840608477114503814207757947719482429154440959004382148525297858460213918842835840247405579733325034550138972313440952765022050798975196787870687737967483883697790219510203174582504618197471024564086673520605264950056422536906047942254268122357405682701680062160351256747960901887908838687837222986610480667037421518381709294562101528473123938435903655158223165086449250764446116538513444300172474816190555157715866565885810692936032834061331418506025345088691389411546606788691897946493905148326867166986965337023811863480270282363312900373079423569800695341930530109998833467895637985921788636334489778793156949187895730745034675356749613009076278415306864308363142470272397035738686677285608835657506185799800710029690953967518591111408048409831324675432587908734284937993802829267615748045717245720587052460903409478264390781349141639492415906906242093247974003690728403694084208303319829988419850304355768927331409765609991993555589908172028800771257072547252782651173690791363618572106737693457329928918870201578262254692272875649389071467121249747906915818039572810984327674148177425986466762513889989496638621095912359121051721283739980375816877355599200982226914228223654147730559568850845266163865467662749485998488179889147195295633078847138867702320189173373026078540734292749018112895010691703858162263700630872531484102662589199779858525262934666453866633905503565058153145975404256178467756581823336656180405612212250792359133281170702917688522187505369657034660035046627588717498540384350353116481977065059687114504960629103899911217260216805400450107776574676790621933628743918925433782274153341163941996617605591138161824199072938703242310561905133512902190094078306586885127769710959322498909838583308374519814740116366346662371485813117734320994879246074804116166997096157978541144045493271003002063002918004202244372218228615664845553089555603481480840655133122870128209194087599702015089471554365617220926203892304414690967781485208620406815940631257353862360098835422535627517642505715739078870344737998195320871898508931281626466919189380369916337499481670809186098541309622060595008933932806105824998115244195466982838389661488722087597952650471440365794929526531311885764945498950884814851801048177506364293365733648773906962991517663130010924626372743758690444279987134597316820333269833724038713514268240760562526840130373553772176597698647213548068614808232772526281104475714337999287845479355655173046572944613186054273750951855778836939844988069566948414584348318209704876183602613808568274006496064457525350113544760712703111033351264145880981703625214426225149369415205842094847048009142389451274910925308055289039783031777111135463185837156724320533114826408991268076217535175756204523284403882302193867812960709748206548042235032921164151271790909644018538085777505723233246645810612650885664673478811378116079803903166981892531417976072228664784713957677922005591761133165290899721344551534620134287663873856311895233797183599775428304535128697758821311307867431958798382046186432411328888611798320672850749595256223522475705607856303116030519094301594197718347462789744014365531487941678903256292631153609181314385305275644617244672124506535666644026643392414475272706887593848059710394709581657151459790779849202431078581890781488694735072821069707963695927312080441821408894929815581267009905362069030974955690244349474186925291051474330815665522704756263478518080717438606414751283364175605061238732832212530806374226440934822006595952935736824827505750856644848889404861854887244316758889643099428818650022714982129654966628700571562497063871600966625733255038706627885008039916984415144018986698884804145422542782745981083585622679998999753659565609104945613874368059618069363842669120025011253478715504174538217874666514833021165720106439347900575583343358627091983688792080670830904069994204831648429971192261990734693329680468420292602001468859743114124667971334028023917462394619191717363066064470322984000452368243244030693713239491043055580130327212989502922692930034064658793188305598524909783011884717500696247848260258569320804806510626833147761619871265845830168584185774560394208044036826178393532051338019930154802332656503259604415973954255770191321702838635157144398747345743412941840302216403304478360306796803032321654880036685977124019129718473737066058499102861611951307482619841217628209331353821361619882206774468694392475560009781541748454785448525762196444395874538941630973449824558447008682066961716874885085771375498966474842551271715272312669512389414954554659709892854356066958009423077040747706750362830151795430520148326566191519089442551579523063551867649568336543164570160702182203780443068177984893583341976644009575497324434248270070643215118133381892086180474811178862846905691194517495316235466398987732025685794936321489182992476372090969212054951075703851579726869348018819765454146317824900816605207937268140888422283569866702364802436912504662645083132907683576568440378746323769691636687240441020731238168633998813991505262616381195413675833732534010340248626298930508737753568683892352304876756126661697937143704245602224056117842764013175136699642844707578106274422253346316957933147635307751153555976244692748727913046752230035471640908082238992666214880873354538505776500842740935332306888561337106607474336697014344488944174029565186174238501582896447221962494495657309247055803670595248542344985994868525077943573969176778809349006609435439807936284223294853816350627454288988183469157128022020212139607911088949337288683443974450380480171163782932590806551335151288585450580218249389809380051958197512456120772703777156376354900414975858882083217486716627950209029387703885376702158328658328919256702594117383463868701793788397885523330781766629149648041669332014290216640017738013661184856939202225896104089258274127578784120921320060787062033134513368542924768280111211889399420805719304140636284426568227852889166415304034512977666222320096586305239565258015766207247522225896443595727971821256129342113274474070966154655522608661149404456025860382560482338694142102483385708380226422229141207021327265446562585684594476746836140797835668894738030019729486991263853222084692348880766110478601930697411702708517132065196268476861438680933326013345831245658751814854238644331862753496615159897372771993469131296297211527473984795519719205845410995082673904325305978563811999388626700087822256805301254231269101435727349232915419945598644096142134438873995694410569394668271824861936689995257530450975823944188301826970947101804249830070515870535846423257845186743336274193033956326105269463801934628975870622488579342597156549415035535973154192548658979157080734219258459789353377412452380919247253876902150133422773962445037282510129399008074029435284308596194466581610185599728483326107301925302017748449619703264472028152193632039949437314330883140654001734746328074697253790840862495036246633812008316803719047225085457231704619219353436483356851339122634559044234811953169030236628196247889424955282170749053297982029591542747173909217212863363037535950493058658850905384762812675126010102388628495346227262261964623029071042114328210186194808302029547917992286644056772665850156119051998172418043846758297910924595338445552788271622375839347643910989749388731582811163248575048795715276556664306603371145940689355982390141234227520870382239905566534055626410558207172314188458051679093098511522739968661349694403560911119286458054733751979593401459638261311681276242315698586769923654631548055616616757652689010656383959351355073634516384348121333024362634769627382621706982447967911561451277942019481085482773850998112686865871105220144123710159745981087419453491572250787888984205601268273992149581041213656576805856103230032358364433206907964551616059105492026303427126155673382095040988683026198423437431823456488401870789307219006391141078269073869272068458323189413238273527388378772998310240374748462914132801765988040176800727597009349097249285640721093086265395294866359407072649590531485420201604112385945100558777271144286551550689520909793997924957240209374241210156013498121977387783832124685515725100858505768136538654090348985976945441678719852506386340668874172986004595902017268591492985002162280730354543999400279531812623632204814468382886875187451929103389298569955158022732237905872168073223981401069045808110653682150289729250151127227496150574258441677913563333557572378777268573519471572159204746863751434895228668921432091058092759928522130540514125110249284715535930247712268485084824989404362358418108145191990483971801549726529891809026320281310358441428425750020841836115934375664023653002037820929779417022301433369778298113865944741627774032433249102816416577003028723975096899717423410930488378236851251844710672779556021489070053311733133576027941175799149327370354488847841830563142210974623191719690246484515064091206363031810011866073862753945514992593842178094404599795771621248295528486445184432231499396030020863801342720708918012060453756001241121777603443451740002558690933734054798305361945372415582389131456801750064871388786440087179681451141980984889710731777347390640957378973829740570221593542930212665672344378411036413311604428061433880417154724360184641796645788752651259363019364490654524337623073912417269323009725427234904377995430568673497929862822140001601806483633655892147611773802895727167024684346942048089457155042476749994743660773264529138727792656981502112110428288270050608593632934303879131312043691550789525868075596266534135842225158018493526653808445747124983068826716799629618137985988126650517124793829114098840996177956166812037191284681491632334599536442425652580939255723275950533981126967534504314704897641058192490054245142250652037271200835115756534741999141013953695589475856607282391845304141459842497730786858275016685881448641963092123300772192082755548526055883987536905294043122594381472357387698177108243862252595706811203192986124944444030432391695338019126753092372162656422192182246836150968231305988814462521626537410382656617636674383228508904328934278088992246422189408170137652767295354079330468605756404967571443943875708869030952395734678025097393135277844701703455846633335914969637748667972015194214839258884782649985550812126191691581738297586217059138705386436576164703106340788858030538988846467480377189261453828278069895825155957486839984210684718381328918552704510970705572568652584333887112833328866113182475674273977269109826364017908013526236340290303534913780893261373365305568345425858283429401222257140086020896342309673986956432848913823939173832216601415132486228151778058467613660701390097868393038089294672016348841027498826302300871042130642325730865211153865628913472057506587579515973742728427984874642380284418689787490587712842281315647609325111976243803018965706002220639000088827378082127636060546553195345181855342361940081892481666281721160832163325215929833564728084270945158703850131876874195425854157398674753719614715296727687255129620093236327544573189585934168981876397844517704562692962599694903853271319662273756354094467758943311814476342813941661407881270628009945568180958802161867875966373232347111304612597594460633833751874075840074477053171261364368610508188143620641782689406417312901528412044792758188313002590952502456473029350503098184225053444454677765453779702986783163285261197201728745624639075265821886137234188425315478158699668514110502921162720493784025040244543203056593298978977142079627683535214766455511681904290547152034467742845957472552684710083242485871296802092710063824202776014801887063275002718750208041644830493431185922389739789477849989738929413977529406500787797582967575863126334296885013057283076133892882077452414988719079155942470176288584445091448213103102618080662803715815312003679463316533869323670856943205279787740488288451051321205914125433486681909069493446884546628137267773249271324827804569380043116670611843627113266202413830453158103356943884064151039399777120343640085513228972008188855500448863783914593922265874865396470743633046461496574048227207684117853102079994395268574779341654995934495169140272140188405804202018099062920411721107062973746977628513527104463363157248784125290688658204381181723336229994378197162695484839068335377382968283588353163390568420299161208845857398341683669155983847529804493087187359519207160498504892231572610705452346095760157052221507937140185985307759381554760999242454583706934870369380012835947854254447694948544664721137021450842924185089558393145942620637665916553845774904332595837369053440468396428968699620101957800504888800479823589757943872306889077415757578815996537190818613263994233919431969936170949600082046613165802788419332233701485773209793251368731027893967866043607125176579295998536839283299561645156195923162327233639997940611310973317487989553649979395655514559085718739578596043241407062259331274339079791729294086042265656725151428257593748638353053123311136272919381407419604401132585246378411050777666771444140675420386961863589704930553198700668686710676120684607264084966850644348577488260867774550492991732888413418252252566394213348329741051108888933354463037743709590573408573727002214530358873033013155303329409655938118663302988877325412641745665153016257798209481595132798985350986381485113826321164063927914552719158058258625492600431655613617357663117549529014977667703890981730771451167620947398862101274779518671814715156581004026347135335591974312004143157554465186375636370493811940815217497151250696253725940840365659155163685818005554189967527661481665436266262164688206574873951140031899420995033229229972611986045442565179742485996839381531659695269111027509736438702510461448446770685544958795833516619011905845782015265799118986438210079312548574989892513118694548203271116038526160434564615047837398017707061589673502929606575982324405899367553596746348951475219975956589630215667686625792529902591184634806028419051657285058381346139316583336739882775885083719889453524794512737071406669243109146048222232129458413434674656110927438861288483953006406439667787226806641089951814998231376095325932488747150390573774897780018857973869488020835974085780313122655300837662076396467181814900824641913187533148706858134711895118720621822051322168240377688467975148033642974220184117785765593755842238905753903092988040433988743266354628564962176940047204517249688706465674743032351753160182207859285000059180587922674205157156823447337661034852362954695169071408771900601912500538826068833446938740348699231856455354106370583761497435504926077317691744000522846263941179667597604407818963953191020670245872676587480663250968567162686863742437557669586825961581968628612296230794389953313574240485414844879980362884139766692528233578460021927046620940741917509084181207183639289223019138605305967651990221395163690499002465724874687675289612669636942156031918069285640648573261006936966334759598409221882422651874805936243709637636919358862004062408020334974765918094631424001676604917397926824405361444706081418539870896228076806004301229327683575320832545613023699468490870900840012515136724650840250063897540578083551068573238930274809026331931067623702377522240062458432732781135282252645621800214059385087729788463303114416636500675256225301955480452795174005262696106937015853214289578592118227239185055225089906005996132968597841033997031935191936066153738195105070324341221484664913684444759514735047734890592946018715927400011129039462602485984010354677777539804314077491009880126000304865451549349795887921336570129885023478987475365267947075211905145318616192647218273122281202790632376315020574631610382305177098252734052854143472425914703047933593439533634753341127817350796138827009542421724494214429960476463201031715940704946316936326552626456023998279494444334928655977461850498273370736531590381489663277445182547114367392259270069658426984866316769429925255031360006157766316073455264186705489992265262583629751842068531624414302641061574302426610586219944401265172131755627339645623800747560443331230887603425237722690026142607062578127436393351071694735881471843511610940999401566745149015108548307990665730792903929678889369546188000433597176684583205901437052207785167930036985142685487012533620065381408392947966711557472651360050879398557604014829606885833055033228432472541053090644751885920571601034774410378592589262198740070235233360356428263839274193412745593246573979169503035045473693445960643539471917773815481667881159613531837184786900086394218706045745402561994717432413277120598911899847526832226170443026144168260335733660134027538367647827712468013395295934175696881087022523002244776423304717581488730243527132220761249029044057800067335187295399506679907284972009094040425001486860331389835053118090283767547781772563811506870438980360076258613227944138370565804974814214170154218270128359708010066315315267672342607275626706158675507241065933397719732679563626801966416306205457489102988269798755521737799387693370269341892742506015096942165582931146229673473255259890832259673698865609615727959171526466040137751487040398646275536457295155139034318693760890163539354426187118007798681912543686431024736325317319519770423280080737344865065700065776476785586022563567582730134132470246601051814040626673113863689977516167715290793640279717172030847221138970839722480771612809396411068476072911254843248709122908693284433710513045180345283051312304186243252823613188437447177856340891288534688235889834951100421285358073441727472004531131032215250230743491283818258016714166113335277727609591325638401323149019501729933059798333255339233537715029421581903809401049515989752131590774786891981402489709100249798895778512064156796163168491115262941590299772974921617700487391866744060572035208178047640937232799278128076669067273850196801127463771432659991998929127109750473967947350696577254129467547873521356818092009631039713052604606369709916815412568252549581150455172032440943529319001514055611007723691670791159924459119811023974912096047374733107386539910103598706019841153611160056331848351794781021584379996430692378746472035194264295805979118355459749084101090005047441086905803209991800240600202481195874287022096129307974030130983770645229920175397734590489870428360107385471544459549922950701033940773588472541552888036453613118344438611834799169217197055584510870090799213569593029177934934180928178315887497723982915947204147705510682488499175424486055058646171053536501128646130848723982570130376073588569716902037579723854355818855988874256989884790046077992731041821717294292920937409709464847945059143104233542732713807890870113407491531566812329033458581505558172877543755289483982196779146909830944395304959744089041631705620273603540717301580806507401113384146063998603761312016991716100388964800697884099873478617213677849320706852095430288078492953038426030620055087649849211656154573129119159246294176480375302165295105148770034989333481440463829083064146214963911596678520225452030930314808404792305015809902500024872817618518036406337093712056490385610939146382456775659238345245418307236504255454458091224271227383190123029435205860974834129405144588868579301947203335836460340567898271752682216694895936167132691819541249640930820200015753031249064406258525206267358409843815961731853120520680052093237389113518136611203404664820691286481339175277870346547541008227520805104875634617936142315849865569801272285780337218041073189642252967985115072194127459748739343843706254162387096085653841466074675365958628031809326963649510056414033136255303613973218438979274688718973750878380908867670015706916116170590165374575582617038663702923162883294997683925777247916039221904628057834135746404758600089130596653830736210407131307922937527341831889558850771398987253420688822598440175222977874389045879107738710554285708845916452851838869266950337882566868020047312179352730387383448307240380338412208681947052589252075293915369571331383048530491624209347165474968478099172490357250174007785395261840836493036636987687734766129114348825667377945785748184722949821923626256136813632581126241770820093457407087319303608763983705184359474700795816234100681174628216209527914446018816294376087523431963269029349523061826944889614688268462523451213199137830597174714826049379923350622789296441032052895069587824804862227761692965703375511677284570503021700696201575452555145046272155338399836991962896503785003923926130149191181643000706867535273422154730502813530692294442901696277764396140863350188559411976353431126311340352215619982204462435389873824314580834253226606447337170345136269032898314235365600027520816532060566771993301724114764838171888156004897474872812014161357012855456071093777319555162919806007210234781278205152684210619235223278256244413252263762050850180144300776066405834599997774066308774173064828714821098852265938149580944278787866300378292712424225376015319667518003709118242632391640029743026630661128769691235975867252182302560606488744383707807046550338892304887918341240275509402906174048660725957319176413359295559234804183624780586652983056713395996339115339871117523529936729260212991238838941581655444239700077522113598431432553220961835248581295962904589656389569274451300347988932669794850647516177596735737171573587737339653608235325131711181591594875897573350564933883965268744438003848247987877867491137510762411215775326804370674834055642066982551445108655087469820029921394019143779468625092171446599123369187888183777886863311156125483190828532177604166803741471155034508376919662259001343216650961126992750924564644457984136711262344061931162199146136990424405511879284943236462618483453940280395289095683062691292706507075932922898149813458808293828148852446814828200375357269840355724301724968245283476988494209788377450654632643815635304780398097499694873108696943734667675996571831612984933706215095596121188404218210656796673781207890334243251343565136545206355572958749924998619742403240453388342945417832042796882607679132234543509593777559987749213462403324960100310975298804769125402586277225904225337101800668599975655978265336734678108102821092886325565390463813509383471569963240857038670739394168697539765545809800078026462858063574020715166152551640032995874808522884586087830850439928729053062719166076876607108226857796978322696365384560240584065660029282434031393507051440744899229062125482864399471258173592193890640746139179166119718684580631351278902679423068201291243155456718464890101554178518311435149759974790490035571299296548063140608284930870744151940484839074322031396213319638389243413196539699350605459157122832490734891709975671437807822162770080696671938091009543369916140484109118887305862302108072446061032754473407341917423086816120285193061962896552558851375053697026272987134891291176523187355870658953851551737584843815097958529699668866138031421174704899428120813390539261541033262508059710326938547902462867177785261847972588967301129287747845587090113456798114815088159773937076485177531941070349369847004136927141532926397106104967424385072126643587940918091512467198670015498750875736463442238843782254112195504544078624076911049618098150231656208993050060145266604125574013811611074539337879978543438499987434176463152017369077851230689700357360523301939484973933607682544326430643955891282912620194642214240908304416308895917236529280263877712055213542766474856947287101001847672991244043967800762724720110120050986577471380469025544548376397328287763113045744168087106896112351970393959929456312773954576410224483288778728159926432157538555627846499726340905277849750344053150231367860048659017647838083780545924074153333689382784505485271652138726681198807127894753060384241768740112651280792886389721218271570512709675574743340537315626181526482875873681662234741929053698341014586262250492392456503190436514399735805819509851335626019949509731769890345059629681074073060997423500555489826735591727096108877441249030193377276216061545962855056621729927539655504318257371109991146864575626767878762561860924551612243985144848134242470615056105936793673067625366869194266735914220208570426168145660318347394702902852826410596916183071508057673437006026779483407224568018584235032751735338602802391884947314616656462920605153451657021500364533985435112004946918310128783870371443297669545137393190903165459756629342325731975882965219490937720997347421144465507062425285898889782025228589181469203268727127102786155246099514469135034812685473289541692631862336452128835741976009589736290379977436025704012525858889203999797123818632954033630124510488323170302064192590028854542884207680256025670260057960066376453458697149771824310652744236283324229464443459948390743320866907675091153979981550380697749062517178026932959214653435544544633388390771096073495118458243815955889845691442534573741544273304669314203837215881607853147519220452588443432437024977773104651252082088139251437310365308570512999187324161426959615687011739129423121771072900213365222171796293134607178840727420185203108548348944763374723054291522989615173225625822978461679420113053079688510585833808687233036998808220751447654707706501265199549302421771530738489739371324089707953909875019093584342494234107801121556423547482300952413020188843093336484857530306836094275776401658558878697955969751032008448893045572414268836138060272297208708061821050615374496106735693506050726534984722544531432606467142818417952353736696858029791101669431609272441048096028068625089932578848692734602234229288882240043473240045040175656340876234062910876065709257531084604230921573862567387856891600265528739620209019084994636166983792151720687234932350170011712946218285336549757022813013900541131106436960390372688109398956027492157595729150353839818362924028993351942510509078340196014206880278649947886980045161074589884000562747690050929259673119874560136619992026618059558091499133976991880081561138577758734736571151522737814290551619986907367457153410142518313098274833849291763674371445518009146557028472370462606870505269349289728709203836642851727940074231365649750094769690053621333328260786093935664733307144742715652659799597804524390058038092831561048915906608430626069224985598588247559409145835963833039470557609936849325026294868516747021892498815839517371339170135988051845193426925919576401324885870819159085608924786581112863831737890474960656663655720125567166008079842386541294256711948439184279201466384140658069311876737845027946929333841446589967098492306625966448535072119373945745534377187188095894158532575964885076024482713657561281514660283612736456063706379392873154410349557578184367433864851218675862056053258921110402816294027731156719892992828583773449351182192763743821414347286439627644408366248428784998589729727797129888065886115352619641834720505837087835241562686426927087422343807804528515153468484190754565997504245118401415907553191755976565770424888915620091858151993326632389166018036103277588117460175024761416413755710723310320270983114946587133756622042001650261467234130920894972374658171538580962996515622468648120974085344146951850121386301973922666001795308998838663551014991187000073124969489592071069718410816415271977168321431284316840452219254083373667527427809990352831083986561391147001664703216102002239074860735616657566123376994996033878686837258222647517980532711990410211458006006376179869034130429835326321979140831453873231008846350126561166703679294658272670412593733575705892907108118096851706004779686036136049796804220424698418046849928023272267942292563899725762984717299459881237957104744374798975811675448999962453988358873018189387746591150286708882401535073610595547344067342674287654808384175255444353289947717752840945497212934340597700510453084097230516538980039957444297228631195811880256866718884355849546443403386435572374190513116661271118653334290737775697218485977470440979816738810758907695594280715140958610807945837670003891697218473440182687677178374034178090893517281979724494233919688937877573496928167798734579258144577264164755116684555316943447966922485979623334683079421752038668368834392400697800973893827379623943865075302870475823944235284574449501626311164635649468236641118169644243877689169896675396238282004509226227425218292416829221552998661348249474584375921887474172963270485391631109551438475051063043053822866046793128150556309144209263277314415198407751283383708983401839944706737686556896378932002369311464248787791390415018651606392141008577867423189038611955175383977077858388410667195137179866279732846480217458261070467397064792666278302397957836784014984300955607215696417456054692239814663871182849382008284891232097978299664008557344142751254302860923877810421541362479795551544929537534410276155349879120340772343290323444635162017876524324182650322864700339199801014822510706663519561203442144014024599429377378654573351216764135249766285836528629529428897149178969805810239747523363047088189725347634206444921975002529538411636872714871362021722717103629968339164253128227432567046340290928865447457112455475651669726463700683940022713836893032952894568925901177887406433956388684458779539217416884104978950444253303117178319367393923762247731559512350176203822196074434686746075131457841808655488456742893325662213270143753329004813465236302912399434208609727483087863766907314149311094567719757328611740436504824748268803904132461067270889458904915293446257409010289448676917382985354780096429614514726277811233398852318309203167316446438104411330007420569904963950975979348502717063472618347926218448725908878781284211732885169438697724327970366466479833824606654984881089912031380280769732594033561344545574951473183186284915041870323080314546176394077883071157425158278367479204863248011167888805996736067896536532228766127884310085597718219014730813916241093809734832003312738002553447067928903489305949209527921244489528546406283354201333858584008427940742433270792167626269204738780514476236982312904296956137158747019191896740027340734815942147198904840349258212274898862863986211311913947885463505498365934780652411186129118899286925281994866704676039966023786041539613024811574874675841505137468287659068300265467048154041957899908054293117028154907430441142273493976205584437794519781820024492263265551836171743076709185188986277690456113524146753611096177901171627532463982023075600039503711557946776554998139624958438007212862406951069384676641072439594678226319589880298646115650077833595065826280265042353507612471943944207885253416953958392743333776397117774638906761950855998403041519068286130268660668556800530246299609154623351085777785224402972620534865155926132755155212848248643101600571495032791961074491021735235037439557393454570317950670329016776368648107318152642500488289061564975586843830194743569974178383600354488490113584234511611856712167671334498932314427628292210302266196138231057359786500214589767631221116345734158733745833890136227630583308747420260936060819598059455036192958124260857364352544744801913989218504624644618290720300202817405037869030962329178744320454829712935231081106140585287728441089575741358417181289632150768690210161288823239444105506781581457288890988328149220056402159456540693270582698561512461068352071847504489111693099280599009550903965457601143144327115723207435680898429113169305351676869691096565976068835514494054315528379979613813093655200584963000559217919629322612269468317235879426505549396068693372814144399837582098842942521357072747086336639662880846237202984608895166808004502543193859429438964627132454877503888001872532744039771082922576887696700484318125830937729826214420350617053566880823835428355669612258999826900005229278320787570591478070603911644648109875624282973979397738795933430751176006374861430395491511166160985502163088174939839302513375707425938338070301713821532586954015571549015878164418700503055270347672026443072461426011886581790870622326870296354274925278153468836564249471107447201196132664497403995088887127862407248742171855746195761260535017737661694199859906806716697958772189203976126951814365623123630834259345057446501176343076019268421628813475375450582815584961071036227983809491124440651626812328681998158390878244371973346833035809092328630083525794238195608569530831063371498835975672795852801884646847526959619067416852081507138589280641527541307755272882935100205077365588044833651048228853761433331643075024878136878818154699037916452599192639763794894354268830174512443105429936872855114328347115770041188382759368601375744438578996609847723482642443848453562843064924325888731948371430321943038024479666481472373134307650468811127435614918570827567817384860528198341118262554715844139623338675371042206526486459023138263144536139676801875654741784700225440230678985658078471193794397076142646661251592137479301474890729860438126258413074108816287576840920182796729050018364042116993966397081616051650551411202067765171064686134041430242277462552352158060252483847436018519033399539468491728594201404693150469456837268849434901083988383123037226923568082724316568489384949152031801305020605026928171041580708260478698411050706472971507179383097546306638969043294849321313691956154796033140811746430319586928922480454929807986726276464177811626833987480231363339595618952006282212614165287759539075646733922920784544512597364954255642384304866612415144554716798515488470860823256569597412572920812522499516840574358318469733868304007858707891871638759336022070530618855375660969218105694795795990109047932663121285584112397836933315148719413186891065323409223714488893741385727743322022209892421261579204497253851296798073775035502840456269550534119635260437177612920218153188712337243236383790920488690226073747215516733446236816548413819306039716402016803070293501999792834559724859378274662247184410907599932353947140901076518412169191409339247152284964823413732925772740712412993286754341053290092309483469218207719761746780487413632448340256237793511112798816516429291958582987640850775987690933677720485252529351046860488632145039398581106135817780062520136072168335640496418388209591758415733826819886460939879968482109024391461068931172709752110141721435252900440639378444133508541459941286293385048512022656543603768370044375096717491554962344921301078769577055884593680043284456714278671886696904000734353906343312056016736360376126202852788146560565815758552360519500150482805274450061984699645318496221834260974484893038596527410036465434738722113626442553618770161959564268041259773598086782907866684095936329364448215436863979907475161597587430194300337334186918971064287995578952687566970498929223569089976390838422051159830807235232969252387624002991976067072232766750176205788474484238581969138252413492357391359587133640321132924398091837928723145720428904063391756972104899122095777901617515847018079690367950379308508595059975828607753947909071947886258144167765222825573782756068183967065927975513527060148589654755202844948922328105934729566269314737105848847032753925522351724885670198160327672443406993174744344283149477590925769191313083358709938055166204963118205596028153302133485844713879311916476354239183683445582967098615815246363891790441469466995386302822307782776714642443597648874492324071774725057046449804414864254915103844285038711208061958284338696060657425434437715788403408946169528260306669606830173121304937286652479724235759961881570780106086169568006608487794893701233965981051037868975685961090344937073123818835935614129868562121100934718402110595641363505191397567456618366517403922903045753316487442344455141358902026303929104439539816647318065634180992978977145312678527834759523712450195843084706091449818870012547370372949087492266037102937633688112142872672761467436439740691922479566372597412156201103204280321210708431005532576256465978453210394716525691544432502768994015532705153037844590401405839147713169571376471545602882353719563825440212832870210697363466771293809953758769172186676601514514062521802435895141434975128992400179809271892713078835247789319331337801217623477375774334971787402552999983179409395363881026795852559819660536798658721657187951109601771805333440659316786016002752973919370275223156416107252611786047590247618921547787897044366349618434574367176061823910105476806895295019974728355499793276893804031065184655875728517385526454168802765707159020780643102682487680580954693569782204422459712548696124090634883748666350749365463247755355979026727167051310724002413195900264891682349810679621219494161404632651285248535070311201726011489709561050813257721881186319721276281426891409763422676316309396620470706485012788796896010688608879608483527709702359654513503058550184347860192503433549290308088637484517788448193429853349828676251628450604470219864056458371633581842532151328541202580771709620205035952936195828752064321751550422155771007513895983623727903368034609644079966717115959009598592937147073359395305734905612583466717925641148150649162819086968164364665263856680715408273079971181785301036019466323932851474228158546505708801172487999618727671793456099930548708316047516563181696837391425391707399919205227360579721134301991233814912708607086602490460346402696250998912950738860958274916928925714030131383680101483848417048127733799761794782933328740940845289254336685112612219471784627564401862683587984110564369666877274588884137624552266201236703926459768265557465162578819416911906142509485865575457427015478286728543862976947559277513106019331370850977753659407813065852620022779955509721810615842305623701110235708645575604349638969670104337441914524866133039695284396571282582371322506953266280196113061538749177575613190656078674278429813185119579680750584821723880014007214771594496205677002398228958271147409000398178540945905414328895502712403361096270740415910942454472676056716969751058552895438239649655933608723030678040790668673521116063125037027796958560195272453977573752912986752436446141489768937401714422810130298627688469966940003365200761101011852404721463935033136730602930838385202512473271735838656185946858792099059902179425407978908331055343538177699736156638493095153481452755468638394690400323744372265384930595191887716862553444020236956859954512665399510644191428833380408070878757701737035388337455574025032735298034105823004843140214311206235770198677597186606011254341649271873918230028592857390119101139730439791204792254749850694749598352766809225018799093849882112525069861524060944914989145347020311374013763077923141538002261419255395198224771756550603651366457271350440751970891616917748876925251476536245754702175874798794653616693376332595667167738547043351151669538622476106551548305081576505254717069310682331014115705765116054525276940388841432748939529902364664867353828283764898006649553618661428015341862102456099788717900923091575525908173787245786292994570813747118081485672584096188464023836097935673367415418045999174552371039170581581398790998845306711211015770435243912120828029797684890633949351895313942766441114155059185486833417791714113441864930005649271346409216750113950933957593821288532739583687942868644823685705807692000084003748939965050118314134014076844510306295522151201486969509213599795292262732636074101451226843093523426532596754689473931455640669972615747608105350473486037358089498370290195524938676229572503557863338672639948895311075979339936956324670367770789031795053545559616634647761235010286165322812087459269799374053738320396258117247322926305520731715051125953376649570239834925817039012873870501330508570989559401956431341293335400521440157896572091747982523047256512313858600065316073306297993383042304145922851003053980074416280857021303812211780815220623353863677342572876774532727467210087684919159864217678078833898666198963132238582639405974934712179869155311263382778436488522351054741906080484217617766052584151713811328112688242055081899988677112427411702289789489953717063714698924563156361925953717754311775172383442548485365659324228845018874999804940429217644941369905059559221116946955196261940014596645272063505116139540201410725597899060343480988198764603975695485084528793097413737719960474007559916080230798328626591086435139934169191286507868798556245344765963886717452221800927107517744199443568862983168447150329885135824858086444458659628945187189224722788217640184509934231622664139444492407548908162182689330437058817445094171238295679940109286346386797851456139010612997793838516929700963094577499800891593342627602901140667327866821159413253975508228164409328579335745685874461244934154699753232946166137879938647621363608577300324779265472639835638480838950415588302402400123022107689706839461480892864246032314159029564482517630722418639402893212592059230413183155024398630288842041902215277946753462507805961292756422490634325208163265393424376161753652730524955079185334216162404682184825424360213132111338851049834936675085749953596656813836532197085806388264084903762603529006871115857904408066559276532280254086819466833391598408555491932054967898423254360692537759198528294899639547199604796085647620513060000664183172532389011913473401642365167526926624194016444659933921209992122620349244982705487718634420759896173165897449087740177633767964895328462430398824935743069390275669732358170989327833385845477169515375877942216289849871246631079223035092930938479016704469341836009794478085066293407000889041406577933542393441300962693680056761845881401674068355620159326884012991797625017767256370646731998936167559475876231551776338385040393906630752780435382558264875878835060367210111257691001628396280685713264423449903714429020195431837849141622829899345617964841191096489669008145778787722168699579966043167573457661225908141867671497905201063531888214014966700447535858645842057559815662680512497043589342395502459613500716152140112145403768943309483879915760333049176100642291727722732036606185168931420910329737631295787453469758702816603838967348743856880988845215194370255415667196306170103377713962739227411500505013506371796573464637376748332092913203375197278345521471868361268799541864792033918065632915791979857064264822198739758331606344512885005734490471103432924928869065189277882745911669729361171086597569639862955736550428861893321618236251254824817790303093964169495879955452881692804337741247185881460132811118966309708257820216185161045063236333840346544001902964633854091423977966982433234813714931721369426029511883622034578962706284271524036542753067523574423805320551864154755767405283464462705557411062201866977589341490148277306514049516305974662311548724812582041974648726453464542175551452113828058386516563789493208969648792952724014529883453104162638619170745561820184387598556131478233365157351368081458631022142226218984504348359280908190314142630175717206791057834398716049864167705927521027009958584940515292384908022639667058971624526429128938176166372023134494045078796125198024971329655747260096743261004669989988161980752979356186325515483478551185096086048434314269650976977946551933257753565156543541847373353614693640721502599203188225586513315886467181337026685966759035276892082027624057812233390514018363417518551193746187133365918844065291715663929896592791782033996534064847435970001019356304512947118405240074309883945345866421960668924602905660367488841382149873060391305940842896518563313890261388886856510204383184959915854558517573957276682594046129700435687944787063494580585077636737312807557001428631077856264148247727767001302465674706269675416362239055095428356130956675484894231508611272960912155688701714649998955229481250763256485255633965611740683131093383748694966107615746275186789425876435373275729057460193957081266216605987304373505411806108525847487364621942259324535591796610388209026630075748835656354088725513608055691104451116437789845316635702560663646043987690313198058074323757756869851200243258746469124814070301125842401467373262025067456891497776105441211650908833716259393415208880731535273449218681042777981156692978784998696643830521974889739390317343836493336562082804542884469995797445054533645703242648456279354494892510643773271266099349383124914572566309127235418769195452183985220327152483025952631180478434712798806380828198713833591294947135255647410165214094949131628346744138782104207155146476059430975480101313152484949001446448161155859289643673418731562359276296100479957358044488090148576761862619688341045866151890761639754017484446442320325401065710024530617385957158472047887182004660070097738157918018731859509872364980355586598720040746601654126295791210558326734116794311101983344430167467167560811587648644358727448750122018813883812227629475394574327778492951828093059858815203558223385323283586053274462222724414137257074508925117287469848136319440973285715725195306413883756576213172735137095615013337787064041588203176864013513531846120593342914742318016794479927272328579699468280020324912115820936980056241698847795398526128334923620775475465756315078640924944658351983217469179305738933690592203371867036849547030624192739619423989908887859501155002240479166725856014022413350652228386009452174194458224154386951907156859937620423481013951332483288804027993944291832339621545618019017574100618193598982004927637306299684152856494955412483230872189440756782798608319346099222324513630308686714540128690434562044053042622493566742355423142396499294011381622874097349684437790949538849962728667714712075327839291012467770389067007344159741616978828656236113299348862767535328572470128306089955186971239469314723372636101605644048168493357255452869711711729310330409744825076807940662376049935307501694433444738235296088779200074273894158075533800330106169433585473688012808013057994674020506670884899546736380005231501571544171957122318624887015799198711306311372091024716802300091198021831772455073929331701149286902538025211551694928320520532237627468294376418647529621995041741390822989440500278114860249233967792363302538154997415288552592619140347968144154930096162036511295167644637701648819069094148982415708038189768470903695360998663012571035007283216136830515370082588927543206406771272439583897231540432931530039827798479732190240072589597692931021144586343703266578750254365432952544020766097462668581269672514883451941587478230765894650276118780588588164056355404698802925351946211752115412702090177303516525702050033563201247390946639543252404181146919119199001655416447199365296297106919297681567319804525759043027407994333708176267820636435251746601774669642572120032446430593489881968576484491683533678802295993849404928843580904792650144271934101845567623944717073989618585744880510293413655460347829421619143497566609105098038569708273054305157862441723790442791412675763003754712238436971653673920478870965699566308701296132850840959445201897815863899634524255098129382485993781749073381499189150246357878256845009244679528182478009634674311195000660474027863039931257175274755273152661737442377723057989884567839615696091798022204093055129614109973443876536345651200486274402118758764713292766148076862730901167816280117405296818704970936047248113119597862952276011034136723311476429429956020362782792091115122026404661454983420356926090169397389474669983506919871745292499475217107012729249500291375304287712936590222473950496053183191546424733509810569937715825341921802535028049619403635701791794708776965674948308511689743187004846230771612645138089715155412773997210948177971437341548156334887303395455499969054556674933360889803708060436762069868070614103268059409493635825428368111229936019043276545181023997749805081344154123680658108363590638281343226369421297432514326010838247887465607063863121277650452704442569081959628020181778627748272589506393448807338218373273745390609969562342429679051810415113515162448901962179815350361785249153682804347178546541557407423797070175339320279163999555485161220468314305542128821473498098386605255158204220674349912114705461602167824899178708297090252789730741229471991671723330334625281537686407803860684318970542436224352901216965344307197145826912227152634435160652112682725663931832613490132270371524096826634571155950234541675914088782828014663808913048086825831318505461564255227985309054103989703697316812982816513664792186939363442351916871366865811461110637628392435727893112124801663068016004880766537160286960975805609058689918574293276539108258809296879464988842351340882290576079571162828183296501462274248228117623584392900128601129592305217486399980862425309298529015945303946920534110473721061664745318772351945802869266523966175362065987516680557851421593485700755219882505056295601406522177770293377104481251758062017451148822681425205742069421131875609986986662979324358229938143714282921782393509686636571692070658670204084183947374304656688283974709048705588649006612311339573445075771584285125024265382375394114506451938646408793946213894864328298007798525773373000370931510430286891642663133226844600888312765340819416977938399102227514950710704584275361454344686156005143970673718275026219152383894007882312762381739350639095783404958450537489280207473309045019850936489234916103029266701002501531693747250505294974209184344348111815012014587997919941421256748715224964503855163761760742292248961754871432225648688535759554924886872232273096611752099576989561478966396929524498121477423557441867231326232297815915368466795216958823516261846451531166082065702737613042068329455525684589993400890136263207769490137535363815051941495627466723381759775818839885852342463422888194437470605790740605418740438664480861724626417966870716814852530689934909685026240400035290154491581574489441691082211490773122396055873329485532676285356936897609218719002177043156172981276729885599104593887319123737729384375645160501636827995011459923388116563045820924924822350496931943960774713929082604365493782627604532822384928580344492852977417428962853749473221667464814413172767350480599893080463286658527526507933596969056427835273462526302108736852054475729632139560833627267225939574044836715532168909687040087690615465611499058357851264270205714007541384877841279002281541896582346498860227280372250499362606717548339848524980080744457268419612618388697119355947330522965102270707882404538242546765312563226682285380003995763608218714515539267058156994339050702260528110189942129267436516988642402942446186281411735058761554899860262725268554604749689833544805791109303127604182664740382674460469091717728836729517069592726743047364584498421895639310825666249749572966904286967570986240252625711901364736506634338032036692305716915136454934150431683312666346800158131047220790918478194337152003515286562452532677211538553678084761838013372815080182779071666102559609783701183959512051215072430687952842648239147009978156194100945066394813262413993533078577087094327262524243103881428692035453283176950063254240198359314889544419145813120452342562721486106472882659534575492199726389328044215555891183945996338667084124473836425977135545245951974958580706499962772154741055101802877823130852337889054221272223308346837718780852896294250072917455248766193258651053910984100906417424177979789924534140057848765465792616057973442322041340565012470529592998280946456005819197798607237891260580659027405245380638831103872236592384158441183645141106963185784474370189337103935419192639044736868332297725900460411276764254067819233049546153559163483986398565379352250666823766359221483219713458733657835326779637530596904866209115119011114837514443851150053868057484965206048856105980234380106193306305643415607343354166503860667704798515092623254384319906333381066622511834816910608182813063117849290080745294745223305537175284612449721871394617533988148059850656538744727737156779779821780091458055290427391000256302218271427187842119949914668880532339888830482824671359228951132528562774019733456047535329893819469116539715390007327731536531781058318875488358172869166820056761648906891344825686457273518260472453255101119095761527002357360550910873296595364300543284380765367417079373261478434076696219994626175858565762842504473575473213843747453117628030457994603050460038958006438221222660592268379260912577278171548132068140237890566785628753416254544700418018697075783470955715196185363250275680689333673112628515603884306275651086717973085654655021662424842205572632949414003756295461187364874369458476463974295453840151951493228625592111800739470437777694378991409310788163932973951833052950582961344129665316124684021991352015005346215656800320991313666127556341698595977190869421834042957093016100134902733743280902252475502086283439982910445543773007623886047182283663346274031505505637412316015313165357030568987809548019028422314810435718368812807427169214458288356345121740945647654777973559324446686123551191078047705335813854119920408173742313429135478356535631944480027542097557081741190014977261164257065025749361287885766966601798134350321027917261628823071869614245512027282668519856305750271892977732613644372888483055928336383422036031729016020270208073951393061051484791663796893243356605321112457321764370940032878453802790818920131650931412575529226099239186311853242173236827925261745111432854538104400123195603154163086301746906207404243223875552886041356293087667788804034480493795677870313925946898993393940085087503583727437155368265169121559180187341226410210589314249804049891909640017768870224204532178987916031355984277892464141958327056212405503860864154837036852636179517566162477652516829104892277677205631166359157426292699515148086339143004472216018911989421926100624762191932045416093123246405777429963015106102695237639623285134734952218771242463586345528580037459466199859576615309983585437991205433281349297266361049498862235361561400576249949755110922599748469595264156561766268317805754061729867381724079608952508227541780610057339833331926092848062945332504263303931136271019013540961947980698367365750484020732989457474384696832848287627333868462620728292093274881929377020519331144545147407452567182492843376865537118545736304327948556927764095686273566956488223144937808529451767443980289335832548341315657732257005041197530660249374222333138715432453814860640276345582871069847429140823606775482585121761199207615041226638378277781991744581022800814634562595768523691298609490283117188526983856807196282696174877831367562361504885527638557651242700188526327675992329027045965902494451952488409011460075800520887623493725599385884468574752056976776403615469677815140403875247147877701910425010943977397885848867132922384581533109413192606129712383671224279660803496486182389276484445189012172426571104119506343027697123392616475576438245292873780240445669132648530648826125594586107573099681419002846523140572348877740463161617259016380303853423202775446480214521994902072465648506500652391308848803448191336360875453385062179036959028219091566459941945426722464296194855713141857055983798604544826659396746783053351719553173899691610520196637626488007782190483051623528484033671787968588831880625852217304683182621402553914450848827832031982960634315418949880746802141426509248979892004583976061815729577694195286338756172015442309775763369371196616836505645048622290625660898140919783764597928097878966110274230213626686373454444334879141479829649619716689344397562034724084948004274228765710803992668847110915063260023003355276822861447963090210443891834647093775249061173995839988721558460578121299041076217257153324559830344682613393221020768379355665040507366209092193441651322057254443920787407178066359179415124025200901553982675091032772542500669334486896157219352501345238703661819166331688188268263121111995887234814271959015019490500558598559253912600873653007968193814716257302606662074163109656955519121439356113961148430685965066578268032366283926467037276703310790271564797925690703473911299276762238132389267771163628442617692975083685117689660496361925091146207347695146238043879285747454116730229909275144381339911907522586484494484851339252982962353712094970041797681370643788331691491533234820314300787818116263183129957122061865968857417108867823836379439802705555431592836307866921618235165900679103834607743189765451581821503094665826687349277432820040138067784950155850097136967607837774314089207148087912372155453785080524792278538585531793236088111706101060423740512387691396350497058263268282220911678888363235693397164939754864531937342205647069770245149715495708085895746914445691617546035840449201994174579743207437054009395879125950437062193821112786069681345425032655797896284319425846519782180383625320057062350335579871901250579701564903978173197818053793883808681764440924479984759543069439561840193511871989393343813591347778617364581410103602733135091527917775902233914294522051231610558620218769886671166806005423539274964501642289445431604241090756924352631136531381056336645519849468165160138047661195419216719442495412835752951534435479548395168054645223419328622682612600209428116861512158265172310832503112327662687931847341302764723111537972933425059058246654754241045502655268708739868589600967235873891568487773188662354467808826626729999726753664734311171311789569932891493373123566065312968416684678351808043297278877254333754492874968518565047966897651500939687017224170895324343142751842826578631349143396279606556090113908479441898393923838535295623367350053052660022908956566106460190018768068993932842914418332680596766256479417328261115585431635283567066738322010840874449893377445185662002317807720672609705118232324968223889961954197221746358381749370904694919321052227036765758581154808039138712577173204804051697340889997167513750454409647928102561657327947594636797637089033482624793199202465690044367983135901465201701508875454267173791967598052387275029821942967835482224335726448755888196007212173579999661278376981423878174357317315647613092196491318539420905363347271271192058084607106673702542821845835840860635450874818509237816180296717343056310330348526788040893265937248703768609657781124802376997483992751659980560675808395003516946474175327903053154413305401558588416931372448169277400997760391225542312395836788727815174655118303202511495585025994549579489341929595783433191936542442364246483429801739647633587489531574029400962889726976398414934151170022358340439873666920018168698840038195269713690181465130238133088089505270122925578940563918962369077878312373197849532093839212171378789830760470771961194133396046384744381769895009541467761161773468252569623613903207893528096988370748779345060676777634010180554680468499894605674783759242959550656439812838443026202352984979682231636691394174435786209783288918438006388587750841606980444476696198573063459712047704011558896241519472271437278743386962573294126119595741398242213471302866420914992014265832660301384490936417132200832993842388805651976021621854275422673008907139049529875315855791626291579919738240963693511779323622608624436002952324779871284989757204278461152111429176646434501778611907155529462836636992436118515853419448556912516941543694257912158974628804551136130219760483234485191250013526932766661978720325777284904289521894432930577994917888845868179368471852447994822102736518026320171684274544097955045191018314456825043074091763433816825489689409445234812471709001300157222626886054707075630885559355196935105115082929939889794257480483410079798657926377550111401424398531251755504429308231697970572580472533460285360495977919373342860480520122436234429779720097152253608325488663959670364139303400795727819958660333146820459667198360633912507088596506156065440462467585619710704391273199087772696927797825134530637282863875208184095946967826488397233374558175736161934155066059860175015362453111463138517442408330464890953822276125627203972416095471233749273820668895034715541376405526670404218887694817471550045077921893324828025689782167602079815086193271508852000036387880867616229729250263519969337897104464629087628272951992630608348487021895911583219594438048532168355581248317249256030437713787694810547133746146368946094235520696223862315297729012829365344527329572061223821980646783070523208257977471494575752393182632830638977606861011840360537853818824378669056048397268163880206359941715946817236084429855331540554836983192787664952128328523788342539972908210432934045448403109979151537127682973913096069938723964735555514295448111461461128966051609420729502358251784904602922522429703554407166544641017525374547410077640759369984157283245804232196357712594861234636742452908710937933071730217483823017038059092431263638113757050459168449327073547367731439182993052211303442262779424721485610180567527611210632238971884906649598898528281974797354504241136037441074983941186850386909716262474573035031243021878476450247700389782933687197362090266459238251536133005643022408198444945965581027622854569507905398721981111340047441831204540599745626806709315187438740285423149841229659094664904711145155245560171853358137208576847882246281050966315420432576719433558103813686664888037874399593561101303579062925442887316059498348718080515739709854284555145013332896431700625217426469301027644806161085391233958943889111486120675519619541014723561376892574084440544058779338610023612553806264931795628652802437581691893486923985322983601595411284366181068686607326560356157896471766534907824974260057549654617819461449849465301536854507735218347943066456555355108514012613092846312502072258341381255788136984608442975425097106663270039630173606208542719566021942301577502637229150123927871753395694947831810719081137348725456758021539230359541850660498116887184017687138144830207588724053627896609037147816736571459842633950173870935807162857997499421701510944072008275174108040116211869227370931010951232862183718796540443258017992251475606100709128282432415543363986506248032351087321005631268654198771301819833284052916535972680157994585277313580163805048309986222949620647088648603178020599591213709807197311576214747837604762088971599453278897354582132189563306875588018336557442373580873680230858131155760045491746319835666445172472052369054418775574354863471237507681526471821165837454688506630442155424809544190934089014906556771544070022783326062696452764400185663329433199755721606286981785027209136983274818174529861754650038245463724410616428815150279969597275791209107220534794568457860667230393923971975073526659179460497172366111828546193837535467205110214932510351404488523002109103474755880340144036195780803589464043110704673641475396295568638691459482503266605841038710524785549279264724156071615736179151649518983111069138983546563754219539560061712186834024858791307012010824653495302212668468866438492191046312611521574995331794634736141418011204907088555648282925053372622756477258774799608172530505379645734992945816776895148520264695285799820333091230514620672602992442737245146451759408448669917441655377950817680490628615350882623775999730003336464219842681612302216743879242166810602548028706588302578185878249220109252923764121149719180346818266307708499915740082124842136040231584733448694123404374748909430789195229913241410237493998257380042086772883598454019967912918710850358856318074465568076193780709023127604402377989607374020366790732227832908342834200741132972672647757873287900639510327291345142838761392099261308186299561876510765145290197624523228346422089863387722341970101466282805709587792823465776091560066642073708247718385282890396506781351961692343442545171537024618788305126557547307627536847827372505185065687927598367582431950198998137858907166920597157034494092346954764441417112850772389648717378106843321265134766836418610797689636711466118771570994424459691042148694964404589169017208349726829382472030856676046713408940630931221762105676754999417735301835251734210285680253753200625037371527941123572461277498490110950734050020158335296995892008471695509392075681433796682328568989419898338521552304018191512250013624215860888702981180499682516431382743856789588729939506307326987089414126825980119763651645340201341975431607928920726246201578961141742115372837507488813673484411421396718188666871218179768770609146503747384772862139952437873195155702416972296234334051884186702660913195308203423065204647030038332419037336674205191664621418109561405330732092259095515759824513776028807176899915741631870957624469667191811265359192329153907394454023998908563103392838910210835666761980996291949512116083478186435635549911844448337414369645221126693338325673837608566873244185599971893870801130683526935173855500842905656273425687659858676454738146987245883812972723010082393550227254821187613969148226883678607054048718528658175000762736106505936247177075086913275631990713769726710617444001419996019355721126879836277735877701576785480257004358102876378298744259152807175272093130246289813677458951838049101847337875317915415075987607609198785175703489153846473828998681125629884213425959314148596249133549249602053633898399179469610430944620341142868570196726358196591633900358650162262991493876610881512830350781949531173782129172470834858392081408943546504356550329493875760048499312136152335295892114343872425801423759278191056400788676056880894312014136946725433210441190833242118245650891037159536219284129969817183018263794369455004486033980754598408114701349605450633636318198899947936357053771181840091194502448611046031797069916925197328881113822283281701778789359071887782437043257502001124195993146974651848595758706123337506098152615025623137743763801517743711214669325597369500978090453987192040477907626383544900982311063498143973232525550415464496411128317644621317182432420310067757357974075802781829340307776301304909080196748563392539882680216803811789018543695861788572202365782531171897383727518904361016371228732734166113490353772591220154230525853788219108179504928764686596689460059528189364596855204194696937263108875755409148177509303994070918220721580602288834503075135294106488501237055182740065747667941981628542055657342726490855963828698736254934881597669092573737924086929485682776223213941942666070270901510224667129284520805088318282155646340887395333716814004479038854415135654295554134117949343189398594149694672962477252721033642932321036805442741629514286186215124200197224978207042256232274548667816971979793229561644722158881865836738045866934245306900437120250343310382215262412800365298595968091926919448142009935213252513525395456478976571875699176486995863872005574618414212007080383802525585312011642110402982262301706821832719204752325203181922943296467700467484028580811892748920789534003640185868649370172439009799099698017581217823727535315242649514849035226098647421149008215740585476626819589224791120530843212142717069342944206524820843467863997075188879080975731345002398995997748994344438825765140048166060525876328262884560491793597296465097529084868631329917149683052706582795857456794419110474741987374189798850396562043484491480554219883648928813560131792356718431786589619396794929802739727084485359573896813103080919552194472274853897734231575064484035406180764081204289911916210745255976579394404582985487491090364668398176271029640939682508989907609906146675411551379576354022871549135891655323532940497839139886327323342506649187201738417445357797945508753495796809077063053566500784678429692289315870025436178179235394576636344716370116723474809758549408732460411981648428486034557352919470118735844403105373030791425147451679269678899241208761413831507241979678029911107697611696858696636851120807304301097001531966272680444051607607081883499361608652814330350105750545875010521630016090258255159469061815289589610653197705824798889741149573297850258855717564497955652172478441596418018404546358556857183937367430003735119734641142876026217285118289688770042944359421872686763998956307554178343003184273535201764075626429063059656559698124791863756962178141984836098973087127835406373024053718061002281148029972250874531658608930052928902634497603180248873002337349302433799026267777778874990310294275815492862946982711091869398066684879999599260420152476673455039524215860130459299831091404865028527972917615254409934348848808921442633131614031026631469644836770079743817067753617921171799131014884530158001226523288605707678802947796271644656650104321342773381044736929021641524083694998545345373145123844516758061565748789865285538017384893563174602679467125687740299220356421935306880648612820071943517751718855617533717653979974158968320588655903088248228607891375743671996030105687886036118155823908828745228951729951227962015065985867363085781742794255760702298004181888587968243257975354677584278414908822672358120148833566411412207667461373159352894785336105265714485008027974952701441492309599468737125949425295108699270718950739498646379040033395037198080478701923885377401826431608467705359129788161153061979281035653504331623281721162366195390318736012204638151791506296795637077341105629893483297670952448537942139221210198324600688475659807499239980791817940410013856224618485474546106818719040898913890272031584604915487652695060225064191533878013449893302302446694831156150610222493839802760152601773009525809583510991429218369531962578028713545017553935465314248782515363707334424438023102127150355278742187801168545232953291771611811242159726328286477913556961115459918937606235927694866477255009482178680643671448883920602075188136541167709386828159485827319691679784326255898245400982505778066596551659968928732383332025064119014140991608888954317726010825835857148417055043491135344928447751007545163077652252797500890177298526826684048316362840281205687745903993143095854847229424760227659308501043732888430462136822160503245591366898650716515041024565128436446085750003787024632064621958422470923549627917342940840553658029396703397842017992994316342778033111668945379010268332767544886101419802433998638871083356434731271673376563847368101365147269851609300194995949405981573076916471444206029083343111983541123534805241876644723687707242318390756712596742666535369149599064976150909229098572788485565653436661649728934206985365693587353465884622454437785962655273543242836624210781532441251131014508349707030785723103258494970228267557073397187293441558690585566974322301697742540659618496879550642809448556543504646425249882750211313580330375157435759958509520162396469180151291313118740347762980691667582099673258229226538158953946642051085617113291967985065518019710843688488624370815556947698022014661181317571359548933774962314972873406391243482389198927057125548163724218945200482201409662751435323188196695254164818540016896276620028396009189371666018766666473614568523951954402829928747301217211656497118193873451823285864120758050730447347918096777241046571645477153791346491575173774719418973340516701757233551314876434563613307457805572770634526803773809769479931841123436129152331675956423242506287504503897877969800769061308988940040335007399132703070234007939624966219738372092593658157193085696244103086257096061804666630457212219335590731104506610110868778014081151504810492807129774621354188129291386143485755962605262134644974212875910067716047409321905074675309449414673223862631551567936580636236725774623416521190537553823878802395666801944722985602435793919761666701885544242443290385060116468037234651795780328052828653623113315853645637005409137600501021080795774959963222357267651898317750447291140529977713297794933137003466913708330177038474398114874870177262880536031560751206595313854201690147580154604825368836624951134453369462179421087014148827822930104247887499637080566318704708104056500563138295911221519349631394650058620212957813490773185470791834750200702057414118494192358174855483763221578378438423502215540126154331176477349804924709847068884465262897327561632007040182347614365990446095531768753569877907708735884320088010162492827761985175745234232224506267752505086421140436323828659188440415299739759355506863262711275972328573245214458287506407860701051763765642529316824248727107628268631294902101356399600803610818792794187850768864608463579071675395762085058791379930974092135582019260671505173506307099331981357236071550690043107847262239725604126056991190260311168721478393405634130050277420985680024707634729327557095454478288244305908130323211564514751808107256177183699975460826310930129895050977399889228111768273347760851093234255372509360052039031188106286672371729694796560620126210692332169112026746046923964519163689913035596057075233291691953912752433923669835370507504678925260861584632070001051963125631100724786313963527900477127270416893453338691017174677407436076245456808130356309801906185691929337030469860297433759362374550293912552887503849200588506399189586294524115111007958104922456412143255514808736688900071764858001690390509581691327379891921484139426303565588831951489319014898741778336465502830908657735134070614970054218716109767469737347528741191444845183016044643873471987520506628777335688627795201114675431581560332422702443115858301617375607711016376281537017537351176888278961968709732403294115064090611541477822770664640791404050115960398241080128218819877330450748055445681903020052492294515135005366524046946451759202698841712704923547788887687344673512644814466069815838385767739990918194052519727609848764591918310724702921149140229805425351142085420070815333873995638200178234710687558751780688406610680118522052689701121155986709130689948921735458529126349217226804080533741405304324220326138198218257376700099223984664161602163611147640259968150944089491154054304253991205906455532502977332510841297171259531802948579506556787766207819601511399237798855419736815018613018703866267926177006872636102262324578655834586026422792798735131261932090257761577798188586454817518076159294055380267476875889612610829846805716576937101159233737166184785710749526981076394833864376802750854449283283649581463522042329472206992333787258143361120194516135798906128794235261350942429645367698255052176677574367657413452358915410726282677423842351253256131776221244069551637626709638601444699184604295088039635077475281758082401754829493966359201189721460264642124678281896025596234784774003673645278177820512353576333051404956241331008344165757596498023085196111944478233056284777667277108324510796074300920615039588178809422739110994149891146441806540914931465520800473468513117116183230866211678189804631500209743760408945975080400398280095267904805544707210457272771004981713830213262880139908513879849981343597034696434759722729481552885427310644192402154497430274311251915798572840166896868454284197210475346550468253927657074949898427957943806259590076406361731655662232212500626343014378152956734319583934056575344440647987768027555200215595648680713954725193127346228610094657062025339923855826816908686380214873989741026125273918965180366932143834566036803646910056137676858095581943529168104051946983277074228057872570420089697764505640828984360561663945347305119749419192201135150456744601778623149542028958151766650629653071985337626508535075082302171264692177757286435356439496318294037832501224235285841617164291460846749065725292563734129039728203767269426051511721405847296993051606092808481434378896938989911904505478482559811030418579140169359143158578330736420273913027245852009515864896706541596687236038206604169723409641760848085704701562002724653082784501986972325115925606684954912618945869580816457167213491992505585560066840859651095872065889477810295268353220847121055346569252163101657859779241949903445194442298918371447857756921662351267508217651600706840022478880752317612249900084582711086941276212971175704091402429686997568475529816936004776981756448214666284632175932677291685758657332779229594975419861618675963926022940942501592034357252135321913818164167206617659311873975834619450706513430762234567468351663713954549879938868121311075245308630193426187750418333737133164966577735309806022149557783571534291334462103723253192610372147967309598463890979159322507070304310482943213635106883692974905311367026952363924393248313502417330781036954922372195513821613224888665689465637102882609569500667473057901162600772611704959322024376220922436230156196400321387347475185171905310010644172915331657930950025833577588635800167234351792150728397115903539804224739341201955230423920887353756020641863311844564011894866451876995407721433890749345007199002143875011779393349180908807882515978358800925223161942720713345734096704484331425082000638652881478071907977091554014684279257041652945721556038019771522049806212429889939405539942009752677423708345269776284627151666520404479700179806360656620961144205169162113332532239186616427166239205855253044275159172790271478295300470458528704729487479467976115517615421211062313019101491055855603667129593036978198680135455830815516673015552731763599378673465519879220621754602104265308992379388215945973851705538143099699794332859042061790774136269540666902851297175644119339042797084883969992541871575743852075580475563633380475158686881169276950769711111185266776500406396492504272380141889128739680655180864490284296025140479425511646497897670111776306538263363316474610694977663557348136843914871388973613407908805252969400261056044576843478891171406148471101479415636231162039252463700393516303771822023531872123502697467670541708868971460997364548011808547058466811846006045243806706660687157021385970675993340249190118304572663136094458086289196571436811726288435772878699930449310430105928519998112473280701016138030817520449265329334118523807088626887383061668655924006851771931897552029963038412142345404892454137902341135742633770441488060441235434831732780822603465515185781078789975375504723557100894568194660027070105164549945970419195591361318203701731985217684223402343657022130664983804824211096120280367829516841566061567083810118173034839397117244545838387887780888774437481895523204117487907290010701138888727069738836515267346074255522524119994577755249308988621132540428441913492290297714718982703922182917644103781293138694010557278576242384334759935836911516927119543053028472412973791005663443581925951347150116701042978595401244097666278371244484087353304550692513268571237555170690288066022349486035457566438502425134047569931375805325180915725785710621544027870060992619551047803968840694940674929706181193816315562682325995480335840980492223293877694116475724663150682917088081702400910193226979875890006132161715756410567760224541334732197407180500785781076554511887707840254144504764491595129268735357481229340443108077209080836474135580309953201575202148622765997462219463241420804014760017666999748304341215518862650650046811268124648123271104309098200018429794627362575965012347876619546546992360774679681137595181848324456891214423525862552533861846493514353114409907837916937634681641222343144608584153088143809716764527439638523657258481323718093476587954179023554417935239824788599165814463648681838069857268162283832068507716412728258760428468520166547464949478834623896268078490912586727510395994640390615483848830968559861423951060683397435342078172798579234411864371922979713738809339865003575767989564363062292314298953739163082015777645224175470824476518999329732020181583035248972319014752222512802662986251994910687481731410138963335104773031158352483417202050210131608004069766468631247254873558495861478851642949092433192072786396750820003338156937251225103799609888909885200587690716692103087032949812216858840196135991984774771825609104099048620103801158207244109851355979809306028252288004368897506353700072579992324418635395183142757514302435894285211357699703342074742757661351581599197557315198615465164643128886686798374710871818930645695965895725145231147813669511122177022594070022873308997101230486955770190041844693047300932307052521236552179505603061730047245644031997397137696798458979348462740531310382501011283826941547451264683542382996456919773257275163789642458488510742901398024014546348280511250696290893898282560249188395644429516643159732946653232022268157092433872590328308889496424798080704356730809116460363105939464232358912547980918757490848634605416695379997688722326040196054053411817861747023544354751570000676397115013258616625896640695920263987359794416959028089583402034347423144085624387868080541900086510626068341341021917309831046742086469065690574287918314581979310381219106865025000761593385797001469007175050690312028615183514228965280475021357306356082869553520715819173486866630515782943344622826561180420926246867217666534987471095325010976150782185496227718255585651610012016578985032131231718593594321749365700918992777847398700611471687045617790970214740450130800167834280052886598339901664595259632225850225121105962324967782161903177125617875696082539588865000736295562181206528192151062674348953305225628659549587755773401546739095011965646795623060658963645166564981081661311137468026257586296677958343874907950523432399732705509406004118010012762534140731634930480263546785089511477081276307291083132166200779771840879514397537947506940351907509693487726285581552227750649318211723341931248327293114719010680115635181617468539410962224275822593198421286363997252783760892850979528671343034305078817599733075569950601916143657973435977835989739482087524899135259296059921846223143319811652479465690188564997146306054537285041842121888587992223755040188285155860623892512961685454434777773883797432503748456257959770199791416946810163080306326235565507858970749670868822744739506080320798989067124607217447876220084467431531092460051991394501971005557857003016683660581124515010333021174815143039962599404174727543436448115536241461982948116833739125477545031084739861820244359246283133308113119677103988804182826903641150670804630315484631189747737047409959598447349317262796979251504574197463126702611653989036944776898931722815021044116669493891665819360100171522187948495385451603609459805220067379201119101930324742569336697444601449180489399490608549218678714150482333073201680028685067661397167270569218861553914483287951715927015732418258256514993505655987934941226584444800935676713490308345676344884075639943583699716990260628002460697219924765647358828692317508658896218634067653617097563613252656710936855438162407178636445249425988676515508619085658055416092596346234619759013294579179217932248169535313810721924953884280580890603093457389707123296369473178228896622094897962618584527436751003820995992657411576255683300940478619788394910768694474842534355566436238557094650639825831065949106664555452252260649588255197452478826974973814267583043342602003399685029597390748652688165049800558555049086090804678028472601378652080121257319228809023567218522227959053734869484922220489464957384260209251508358721607285006351000242880465522238190174511604398738396565080610595347103362273868403192941223650771736038122802083294602305853879634398901350194891229907771895197858873711926526237750551847130735445064400521563766673733262295060395067141289496305224314652390404541235914145467479864143830211203425841002072819675702961746481334696686707312988737309546902871751355237990994048946638172106804571716820227889797741017150953969582409807605981221142974000913461454976366714106025581257891633853408381025159229311908844320306149114796757345079596875032207546621733532838379420161785863012935364741410877876715326919311540083447610158655788769847590508584330248139470540314357196478966523398040532298882544255406596370027929654147373964533625437541860210359195694185907365116101416795626456924411947450741725708787585615901648251649096087167960192926662330725416424632670108405905367512267890146520015080403732292899907555058119645721109408523715767549039028140172198660200129822755897145226503193068925988954992789884501689476018580317115693908273021600544977612285498363595611388466752223174154424114120636922483472281454224262591133900905556556507678229468360826704928093955133275400005784997450006537526226786383801237431017354535534043807696860947690732947773531776517657687003549652564965834480260476672572461180824521467008512511621640746962130460228115535954344611130187203845300969725864606589327637703504467927195492930363770449410933730883037350349419207158737118580849632100513634922091108978600983866724552697318546901912416131067093358543123903132659302179906516736918621223979515782416944304165794679136965028636444120772005226946106662445513871646460564086800522214052758936269705922185291352323255241257779900882507120334130111070066242100602118787576102812470077129365137771665716693055721905717459313567414817314519565595473366943009754946716946119134539272834784190060629482797011998405544358604682003936274701132668956186258842415044106131290127461085900164606317379589821976947042706439562456815393519557262703053758447411863680564545984701120039451145741717102550511238596459327503758891934054836838632522381221636086948923972306392601066751494466646782797132219480920603470299642957861102278708234996061778156128001458713224000720319831750967807734124474094995464173971877982280927740976481699250193776214620924588738491902701643636625641385397774305709938415127229907880253414163623370681529428545693128648700260933794244863764844328876791725095044583788832263243721413676943921465408342442452443393269043547728787922327396226161130684145497364431595419041309583639170600753057222946201127994504556643413809487929681742113824274777844268357388517111146068796524482516655721698988400118988589952900287426179304835152754932859350140417819284182690247093117320307795393956807551849123685008006667277818162422862899822454368690189126273503243024531074878299342442779184146540050870726265647109091288929536094201825228907802429667170423602738628433570997282753287759840852590938558567567849475063046598556440068192722935293766738773028767677647974932945336723704931558243563011895871390174528153846947987848525291690335778634885937634547429523169900054377517328739119316702620935932173218650522094221537124115686177292028685400320150559793436655237887671842969302352990143285002901597607249126401198856580311731782918350807347961348522895876671213836877599519956149301590110139500054394835678729226032002775792923947518239154741733056301948736403052251188936559320177246602741866949498856481973686084729432971335797948067248470687114695335412059277256955692723408375843107756472125769445205411357250562394124433177819508220242933809321558364448061591270240449723001090372385148676325948811843695234702566805310667001077890499292095007747317642674585068637208333835341938605143276731288079511400481990907659875244918878461532675194589536076230547698818046531427778355088149587061648079175202402832641224576050299748089099779798312705639188678508326984617755891812293883068862658342496957175636135693476614769949942215629598055013297689017533399622690274608570484143595875436804859229434812652256753124550180898491833875869554736813608494138407772255918846916464013575699389783087035245633718307981752777725369275969253827633906724506689606775444156345473477985919942281155640829015727273862646981019244644940102032965151196307208000859976363137244228237920869096621063611736163619621396768084395735157359663936276468928867788273594335271261188216970667633978407841456108708153689175943196331015857322837800493044653744126487378186979276361607688557136787693695833110994152564116929549565780262806116417880063679667525107456668652213875018738640718959374377415876610846243570321638164110124104206435216925359473557223123769636532687911721015519151020308261955331437777035996120422603319297786728176680171221067055785097317251990716253362782171207204247985035924565475777722881607250606021598178238834241607932860105717077201635290637650163826377139891588351163947606524983282082990967033905262377108740056224706911337153852273529422777099305380265956912168357692357114124259629229641195945152394469968726829674634301085107536260739696435819331593918045937708162455618194450657279989160981506963675373863530248826351771606929297781611263842343911491374436280228608090862932888862196352995406785075166948622168930757345840190609839823455813029282574592197133153639919585449407198548674631877669768227468940096362410775098978688787097672476948153876661596924561933771341372087473913423220806135346971539110518344294251582464670191450962865389239791137963651461239575124899382739050509889449642910061249068123326374011018107295046129674299980004475362251752583574680499556777094514677069411374662536261590784207590003584131514649300802242246353487512285041751359131676808743555386419419118542145847677329218813761360955541620683225988230680273324081093945569904737523282294920538142404187977509119295983651301652146253727973242485843892728199057438147708123211767432391019382349624959009330249004317666393529086095798519108487578550640406265251214614941882400468497556643831160829350363203420195817726430967275305027225989438295222402298183565358011582404587153790440817955340071364907112054983774393425898996709530913898411877645907757391082469537576288244135131282941407948050288216048147337168533358454516526252383821085987903942545947359752139238875571315909212929045868479975960910467452425287094961310631545066553908965343820565886637976877507035611886949196211668162840614113871679697191585231116813577440573527960119860755110919378391474734416355447970387047860605043233932355715383269700949978429668524268029511207704448140842919905011578841131553005539803963631638987722986201637419803356706383230114725408820418382643660512150582522460909925316176512345410529529973435384932301824758318919942376110702577315943750556568703980624140946830356340014858680990992558230864265000110604622389553513009986218586999991788781015149168642571245902010601998041101165576102096439351970608272555038764283299559034218469964100104429907483662279697948552894696125008419874687779874920638222207571149300603742215728581563995207988939802751074320735169620116592140397594308772574322663690286529139232110592402598710163592536901391835319177113001309037382851246480505312340875479686469379722728939202058781020792263556916851628989107238722894964025594733566231158192893702592769612067101346971387515797467689228590678949369879708328677870734156151563437488697581823398961865380728590279499392272095930169140623353557239632305228005729658910239804653132912952407847248453390946688560429102680011973049555680265209087882443544433968933193019027595941998113257226223180917688240825425164384236865753347972092157074887576702535814799134666636393644865786203827834334150729310346317067200814596653138005918794590088135157536597953957709195887309313200509258261389232834640521553149363122242405439163691266022139411397835274213685134113210554147830899737951973530535055702308481165308509315161462207705506657356847751160851071048541272288718662563091926291944900906029981672387907832917120040772545108172105258419282209739660788014621077288453195885355999230997292592796839053265202596715170832653229886532749985344509682420403324079842436963107576632026124995085936189177603797710400516692433485648040545367441403542063122219940700052422521687642983786977593424221749823633668407958480217954156857018104238457215940118508813741180883984744077323313442933452823857887279729583950268527781326153412806285699069319449932741782620938063906891053691960441707367785346003770814162857916883848602225052418544953529479164357517508701778846213870028686239261740808345271517065640887704486092673604567910930499547171063050267020665176508785701675895820657863858376087294812776824989044216251876140946412402145804225363018347771561782292480942247007184898057351657466972863401081135515053225000459140070078402809102850485863249239345942978291802877364784588798447917249283214058603429969101852645310704949399683263754259839202742832302351917536000183691838539648085674340400184349484131440212170418109600923956304920616112868323056547807367674337073676620498214959122936697645937241136378021217197835571615800522157678854814385870442697298142939215898785318209884129157436917204087496244420347932925079075681821258321568403591119174342995787521326497406904500375211002426980592297425346960615727304362922646369619634841073729094290049261730350141658735479718763682892146641963961633498624016323029230232916558784228122867112142951022826904320523185601951560103048266487594277112221519802185484098327488139673140125140692292831748020891109428268749973644933070953989706332818802877884684149341214590599300710925481086948844092003559129674412640008733268101682085151996329869358491413117529470475527893805722409081654485948930683555054550035604327685937525304290491400465104239233050548203102231397791874259045758891508582091893341245836161230207089883036971351684962538146227851178376153186657879747228876637721625941351658299842523113503162147904257331816179470171411492834132505360512088905807188974958553600818810819828756988782760405008138216744276830437435424427167344359842900222613098401549097454562075005630128649807614242313607145664448229006572741028872356334451688920785556638359824916823021694019026059580378120623014790141091181794188881485903239014948058237246927473969529871725393596234314998204918747931560196557987288484016511181889969935214005028497124375340431003416478955600530250024147513932133866454335002861625391938414872191105395216626014739104240539396367501746849397463486267140469174477620513502298509007673153041150846000187643223903859994202796441328948852058240409781124498640942521245604048448020910007616031114897067756682216435520369916650922118210560331170903617135833466124228006686785164423464753840495988457101218127193676490098793113266080783450558959888549189283056373337332810290060987235889740326180057440897164541396819441755406617765542883026566885475994721331255757877728428304611148408280470401392125587081102279222896785923947109727849683851594329910794673951795218927423885717029584301922050693354938207169941922432440900769252720545076206012050548978972859878174794181626475845082844177316722186840587314054982208583910733498526930038584242004440033698350879228437531533629505164289067357438762750131759100790194002350172690386989445916256801907061036793752020690292255331716027952993427815604577829768867272876570102867123506132757162912906398594329770169032478822759293502645730143136521404166925460192532229102528194345503261463674944223472034017067542393233639753888694683247444933490804562775567348545029340786207699283644694784756196546027418575616088797971751148979679333265421995640687421118399706069729670509619105853993401470376159835349109509305147969408583524617831961590812619711604778423896621724303771580986964497086363949458123369794282715231092332279519636545752616752434665499327948537448547805434910242933802977354476216022440451550402709731727145182081703819774136142202247510049132242907061517809287932274817682779031363482241392465599100009449369011596795221069268328806254300673963882333924383821020912278319003259067007951733255462150173466852296720525600058023586624120009505715060608509751887772601488058835129102709073340387581575734301997286020461312500551163667836446459307804637651130519556885216177011238387613127175732543482179635585569154623632422859620433832953990663224302928787831736961734236251395250879076118599540125383014153189631455680652744838273876251789060398263789435426688992938797361555249858386616741219019863910272773590976501226592041255939940285577776841389461050943251217736582428402971143128394838726715794100731580110862886269132930068317236601758205041069245555141631794318977976473198195310110868002393281641284832440781975840559365900689930820092166843163069174607247861934953658776871748682594512249617551733706850174646109668610437138860830065189404538497317594252202153753709487447635259711313323742361524304122113472600963505214220197016368841100623463368207708413343098725223364458220960097627225979837124115213630752833775518257978131665372783313031224088686947935650123096021924376372747008277333960475308399823232481650162476321639887992951135245575225827742466668234846654962466367808822383690266717031460994494736034632109342275939991203393802865491119655367893120150988332842167631183181653656991811637397294921153237577559679166805871989597015478192589629056074537657672967221814791202079813984891066685912835974872308224707763110699094991465509965135264578016085449600801191223159990032940669456930910679374963003556307262360920651711414131323589094007836322579544858742334279973596131172735257099099026414727302605350119031144105303755660652746614743465897777294033563995436237848658360064029044279865827308872973228988396953427110538763768451596253321401480643321678481116612629971380067348100796492850330593185043435719571725113874583476830470063652399761049154580411976997296257653192381317820300708761801414289293013184600737337362599737485453441028128067828031325262733059692104280283267702369729416438370925682708589301561185154337869213559024487699606678179567108218206824465807682266886267755805442589087014709696729869616795091994428637988534714560268080101717054238161823668891479613262809994898201969321099412964873843295678330546839803915623695852401709071048101494652074898607634092329913362120412662275724220396680726071776980006254133029937359884346317086332539166310316911204987117966438598033907316669485753419633104093954947294919444439245868642846714997165945284103060958233549013227282854935510823261189435345245844248344799976642743588977833851715897141602066163666869024169572360140957161180619761548768659729286083585425519614379776598167296262909001031386697721474453541946674948885525178298166628611746714173740935156440812639476951019368143247834875555455863625300994385726483571176891183344095129166235292631939768390347891462219040605071118538106134587218130589000203020129535707760654778619139687503422716265691919648320642606763063939258786638534150526800305558342000034354357473500038061555003794567292265785613810724297099436167651027706200605950715584084073771250441343540831893647712477177657605337921814297959605226914170350563623267832250544813706917191219489849537767483409409868030993931977939167025834324518334382569271418238090343315341112269727932720334112709794154542804893601185017447904229904556701326257091682233681807028453614241485344379475050947327330391461803261211027927392157806487988006586132117140073512631243284095505358060325296088371345279111346004993965370890545928419046874316118568363030481803304119311220489554573569002626615599263721618635767892139871679644546721532641163716095459334169306358799538951583513239797331114481383840792222491168905102295145437494703181857199319034339518077798147642879225758448259839808927743264115454876916403300816706091412415166894820810676762651616182515097628930163520193998524915058716097717068152363444578511139680804142814002079219542514167675185873532448438886801185075107795793254276338545587201092362742130944092948795425387720083748414185925681772265451131663986129493412301919913193548210559138332105156658223859518497530701637424039998510806056433296382829049690946934978316158745453993316279817089441651444101271112558707646100732320140920978912123300925666458353878338169033176665420599658729774264720605357528476869332503881900425857200082074420205657722456836742064172939551712558152462351093931460128542004729194111693671551618960078879725238467787286071640530276255725504455346236466211237360224816027328928543468379152332388810459633324281403174772207307315998254852522376835206450759578913837576952682326785015149879587059929496713448261783022019626564390029149319070310831693363343909954872478345678795890813786573379146050925405891381376297299168621035360783113570199264484489776235111302824315303137393189212939281619431870822072691946130832083397750416509830353686377382014345998593825531407092074080126141676878438202367137200476952055000513171211055579344661990392650251032332259660419969931105250672158495904257917098494589661851191809214860285503730575199261054968699642392669325565451838461456154979262389566681399079831372090099225801645944796576007912352662485136854958087096978985094820652439858090928576321533494374832205045233994718062546656109434447207052518692616197090053215536880759661461570010937441136720368891947971501465228583697530794915915356828159729487493931315509489118618136799672268181229700263593728598645997053989039336017399094138651367104686758697350660665672565121720816655352279403528451003814388338326304713851174233167641677219859551955958839692394710806284585326058483633750555416289048711048363182431258479661005514838396915369129703369588278769610198717096621687740698590831438815845689499706002894300855725171964513386840230428111030639163929234981384696956206804001942855003624666624441697729074314634847454894983911055178811849172052522551566098818153217744303580545854365009459311833816053947252534790515774948643220801970549212304471104205150471504946462160381579118815745429256111095252128410483634343680076783015151056220645896455234761029212647021115688256577447424291552188004722452914943385559946553857058256642798725745236683194347626804657590011209372195410984398342336069301689810348763854719415452081291076324020127941836632780417006942377881641115373447361483131958961255942223204060451355712375949960916071622325462370031768193609847497053501035706167719051172358031309430769069533800021135115036726812576639018456030373681798524509112878144680791853526331879390317912506434533127748879988108837095946850926834254121377141305633073476412262155686444452548386364556782478662930042087775912427384241505801344717744444613111377983939317064003668473930079176294042595968286573405068115663968253104178779322547585298598700190641656583698492317170809992862457179289581860745859574425993699803610561291936180448134242511266637513906165219377251445061311842434935918298192229170303727009034740809846682834968332790372706658242027681093924836341530605915805475457271530323200957308748596491236983222698445576077804054800787934842608728334906523049469304545772248451134584854103930511035341229289719244634561727354207220758965336160693820040224196677567015919774638433579504859045410435390099712334018399844610829455466403467604847854955537037772863903274913384275280519389275564573620498495247330197767001030608427657385277690703561899409901250523373166645922733307755765800838819046837181608765604775232976870920128505136337036089835371123665859463292910837443667132182609570130476308475620056145239331751017234928800609914181539962823718176793566225872353237553497246767474169215241419188656518225236633462463136990593647133753639781217366092903934774808191143279034953523504515117994973153034653434347949977777410597097372040472782408843854289790409453382858073917458695312290833840013552414645949910743187221138569050392689313379496896750674392806048833994799661267490433919654682151928947818109080019490101823150992918056850285184268153271650315384527324033613905439974577110546674956278986831071924453299777448678173740127868726940731761410942630555221919558677005461976411164477765242776697159063352840060268519764443948533908734035294106843366993817918059825446153987678206042692485634975402969324300859532936091040131668618281402520557619987331470733608460497589130156261450894160554014717779677156927888693123481145182078579575744458996524582137457852585487484232548155942339148546616066037855631466859330603430552121046794414617101963622392713341742568277440226107500204325381638622603289498435625396157612091389191699242164875235380568150552317263203841899243279820389613061787021608223608857897371988211466046750593413544082803896053635658814219458383972582032463856050785415649909818211778485302122398639126980650191297056103970868756419755807059985408783053451403338190426817921794589733338272240127697930803911719977309288205996188996978461122136353445629791577862801484639862317814113426799289080435394156792622754238391146928887346853331137025793002048453864547108146876175918743072077264877212521228969665920771087552196634731546011615914301567285277995834110903860773771750141082916751214222236751471366790005277088926264333183858085911423006889590084201220656906250668061974283712250567960752463040429753724325969453531926013318772651805120132098785549791929041116555452985270936758504584719110048015206395362509969981415861853202014988006538669525249332641690795065146537383533933682367521751702585233173862451427322502823611419823313644790339357412115311662592092451064595817468529889624662213336162133398833380365757845885464910591223489188059849461968581313050174222173912236067674934528044321337744093204799296225189607390775541248269765994645682124180449208209646565504177711204244256237265833744255315089346313282101043330406398905509275412073766143717758326723835117576505954442926372554341423590423704007643453735652061660883310477631113021616339689031054573179434939118057640833307592234786132345786369572348928853801506364996605677318932944591588861140131679628240048444285263468975583552354479843338643838870263390398063253231699866886330920146275549218395141493171387115405235447428990414034162357374642648232067691754834917358709832052318016209729119507914241375449907884098041548496219462109057493420385938633585352873007241073961981173376789416584098889028686139106376375255912213706804770789361763458102961500305734097112700151385114587602729464418827879297286930237186501875867942886923333132220677997273654797185812487347100818743762255326481333284510166231401313323313024817597558472507170202428638865663942803524201554009003404730114364095335362133508257897150537700718933204887320739819585141341305705750572371500899870540955861427793815031361546107302924670566178338135368414250518604293800794305020397073312101585784209278104130580009202501208606579950011177731840102562348960867372653466517069786745723724738788143314420552055973127338339613525935429275857386105110157888980173461229193890764004292831453847078008495425141594072979346829563568097319156498934528734887962816035330497026577094530213534721866021711550015068877207499197354085992797997757404043780319406371960314775594956156203953062755099833425762990072381617780544610903491112301543033960015225143822032655459080753812897902227198388189769172009757947146871191677594963558561469278743919368757348200514568629033592095047713621701535890958670818436972489762312417826423600344437404342983702103167351182420763980463868258324514731438970928494375279688572088104325323172641859648823737188047748751818818232764607311144076478626398580564731749445470221242221677395967231782542262393813508305618778421522252418878969510427213712463770923544485100024534034736199882544556029716148395604894510395844165919002567993197428858844642359640911448209566126823954758675269964208465878927981533272298255215742895932709033713257514436634548665962557091585483993336078874275557932826461746800152924207560190249646736515512769229899812845494224887440651325771071785323077479534873749023211384820431973545913729427795751186691384736593205828162647802032317580830372947455670494015412274820136991477867209009319848323758181411573854187078582288253932463406513351206267330565343932110366074602301069755257252324851083449050068386725617891998496669483149190589998399706577962205797509483179067544198009842858216767616385318645914291119400533499990875982306146934817087711692811840351178383379376347264739823927843999164659100666361423625788151576694746251964614417623197007061438386632911410879429256153039312044599171093839568549934736040535453729452638973975743406677422675854877048788750444731825724397030187928152974055766132641717675691815318590154113580322509853299628049121474169508594932443384861329575864654255944566807095764108098779615161143288299072235406050039010994251334561335150685241598457393163704335999838296127393128640406989192730465972185674309315029651737747896012902807207439018618331205294517314574336810445700566288932384597693148820704835967553500085781304469406365144949177929704389489351665860064579018188104929782031971196270944697816057205745982654540094767369111615041347443647409704615480135609169831646670291791335481630051420897792548503939947859608596764818721030506311188893197580574060812066245421957292393922942634060425263146790822203971015955465751459629706250008968359008358787536512902834382880095367904842689436713248046729650858819104843232833256785965156717349262874177500666108666485991712795880833855492044648961156768307282757241417045000717077046908782340313967128461506878076408706043201280594437431349984614569213818216430915060415281544920111827808373763153248467377554647878088484006207993659509607195950958061451274363554832046348347699581115471417031501736378421860054427800449482196469920193522171656710133454721623566046421483912681026582945314738882443438392744100401738583507914044038472783601383462108656128698646590750845407676290058427246495557398145437835814501687809894384862487193094952178889438975221556836870130593367728175852820164692779626399490527462499238004533724311501478157153742216243966265479406190050014004023597445826546825367697253690567158314007981280593043242914331594406134337118308296688297211980803587696291113530844748505710299289843111931659461901556870529017188045589226678657660134182655372745421423928547074789745850050929142233511061478976533779547272721874909982355091032397921971991283764777480635442832330974372775721166124778131920133019016972629961467460944461808700869169192700120109160376507481169820040332642326341925412852647578417099778283201845266017532994637121394935576037668207128906035810534354532634830143676311740864161064760053186550773145284811415477783046061309431826776157244684874990180503865685749261348422619322963595681013854867356178096366562167705008451288988056239251701724882208480415764752914552219505702795133771048719097200653677120489486084645556292992493443845881303599209934814086666335823517876984536574416148434690685376108877605715408514865579176518321190722074506492660153840070736761338029183491620617315112866092622630038897374815734364344011319461738012619414312633558380365132443177757651749289866751004657690735830425771716577795255716676650548315218671050145123775835117182700394430105136380913945469915566528225545750410589943816387580336142671026304547630426968442620338031519217023672791036055820361748219197512279132925376425072636600802484430564186205476643438600078236842812722114946996972122458673905099531388672966271297100166475800330348782440990874204255375957779021338934198791007515996679066041983313046495571922125670368077370039861644201704216025757173942765026485610558035931755393052306764292744335853613966693633113863608461097565507527018022300382921538057678046626981226932700202415178853410998146743715673024811886501824817876223874176217686743816431428904491617909102798998261487782349712493515011170899825712587749161512971046196693285580471494614116765126769240747982355305781998149055042858660830495149862827368486025683829454145956422239434879188932787557324028099714623672825009315066778631589461415508128884114537835493342615275698766569289734068523872693208564023378862157809998219146577970279351078455680470987902400062998547014134744549749365519520053103541057482166767471796097598312744800656726820778961341405612852346099873464822436163525969107622710856508524912399226048682422191086929745779177696930829808327284476999072140872542308862067415786600196094245440809642998402884697593920062435853336092590350754495502965804044258356081033525560943206034128402176266317648503096044755064350224242458509969874931543748613867962728402338209230856826712714352016269583885431037281796567710033628102266100031989779688204300124286883035114685437260032844221387265544714540925088243225632233508363780416285767078852484875870221834429902364851226931932936471810790025180230483001608914920674496889779134538075993869768986936344928834934142480075369771680265504494826138852783929052713140758150267157554687592019676489868463007030367947434508248208545755177281161329923233788070210725544823626375004577246731595578155539192087395429699411009137953852481029565797250033388857249539603853481878227541863883025602864961887491400797447981797270254033669012686788899551136020776171473681778848633736119904505041095212470060295579508989544749595699717393208362928764067717503803672987112870733495402681152717550345905727226338673304171985571391672293966910977692960418988845191773130218322266174374072904662854114447217239887246269939834067671436217865732048136038203961872470394181053696543142178440189398692139007233564819117423729819787729387828592372117390768572153518752686698660331353164665421516104437041862402804892641527186763094786626259588476934664310341434360723329568126167647240050475030141776274524698328976221056986797365281640160593996003049234247064949629670767999120252443638221620199961638972404613748639571098446548279951944590857714975192642371728367642848972109774874053238801548231281906909238102711292528926609556412179726921494891573560982235591526065737348785225244340704069497461992206536672402761697920138107727261497475769253122794854978627715893062511374745014376750248414109847833130082115052223322339403866304220636195315524999539471759219380779958432372819513594682622334165108602366343152609086590472830937110184630147655735402811575238049070325888061417242394590013321775169527226563189434283756435237845711183231058509144048862552660216964786762312451955637848561119290717419459096908723630116212244885052890676008353992327102587210159188891234206894668600753663195455732103623192040058115174904161306695927573188475170159988470266951061525169957319620332907787727958541892133427969938801107022223879845858135967511969899171968608667416126865261675560736207180864254087594801761323304966814732395752097345077871385762045504096055068935520528368339069015064702443943543178587751942485587225569037675353320742755818206578684767094320646938697861283052177515561305007336636577313603593564148027336645306173127668982605336387621257452510359978501228553502385203280904815688169346019894427702713839169860197177248144487936121359004055095298459007472234658496387882232043989040195188290976028819355478402934588899129442507399087676165475492393207740922775663703720877624856484689461480413456515295536568237927589391676723373012587752598154290763706491470423567292519297369709094357241178255796747037872854184851732982485286309205668945392180241348908173219289711282790056850847911308300342400172281580660906330973886874877644867535588837084571040741752675599746632324780522843556661988816071616539246086853616586647379476804114264383514924655692017847079554188186542036561696063003187013492506573947208810516079812167282051919280411384242299718939993259904016390068081495156562265956061011207261352639822291350326656735341075156931043797735459724579391102347651927446401084497938649841338918040247399862928316508782909286498090832229736547097849683782881013482496948730270225875666168100115875574700984967627096481818361531528165696658737229748618602264409455537300484081247451794154083894862780214018674143559734660787939041793870178047174858703479380879382903383195838652235634308701164618345645021075992739951848572082673934040664928954005355919842245420895107273341643829255875987258906162637726832281697252935639027751396030532174855640295812878243743173245214031448458456941147015416517317137250215738097904679522123227397892052600951631266547477573275966176909287792958393412957941211743078316191170032729174346988457134809795289660225677392777317987239506368063568901706486432044811173018001982575171188287254591907686567005926316492611591148514325777079174778771583950677201346776227161159508829650276076964545547681193299401774862028821176288660249761892165481063508312867719343285942989214249520938072571907838596152081344142582289618245117362046785038981509560011642757348949981136989813046957928293968995213310911023972374649283307963271818458491981908380585207766956347641521537189568750052086092056438230922995783073336860577896368588302530433691495417164491279391290912406582414380395597641113374657317687803853421820214795370580533531347730292404644709317286165179317396189840644419833243335619684102177524629806825943248147467235143249205676409485672508182464310563546904316381953963496790429646653243442975834416381465984126249606097240037165828472556987250908780223255387980512685121437769588268248531741026235685541001206323113764368977790497570474389208836535515472451324891843441939584236841836419308927867317813580681678831871264943754131277475610460412565605309522527682312929186067959245408739790827309201790294661217138134290390812683552421969431372048941419565815757541546828216200092720020671013715749936809838438171756634531860665290977213066839022496914083917954557097573906581831927825826070568716402858497972249527979634144242459107798222211129665909743275488706685589553098849163724227746839783708174655316280997265161184491343823101109038435781590064692820031676691507451363761782245255248176484094512160918145699251325196578526723681710426741838255629034042455350296906792695277625184419573592618738873706654925203325162631427694205027572393287037303363067701708972484752295086210585830670168319445925095688044009903861599119401189519749497935040846756831758636618214297401476444982259496730699033970304767620913713385216947669529420973425566717251878549306406411789003435048745749496638040373331512546192576287399374940377982232164450991394838836751248951979376666000059360820520041576251757785143390473930092500205488575961022094224096540766824314587028405650951133341369086218399880582463290012344635611124491479293872203843481268861904713168026356473022476874365358902598146100338028613519566510866190674359150694737224859292575032794117098706840674789263248749335651355878317465911440018281659507906498456744896952419624584197910687742954218144603623619047969402825729889447702388930238548507020771906552780981185270738798281461566554505146994533395734979424949602407205906549086766614110875712086102944751951479836055328395879319333919334149212353690968758839161459684268484336085194849004723571486447122896055136566454647411088382848661602105164954110772698056891184012460980776869455352157129365803018428595289065013864960342205180802699046628907471665463629005767651414022938698620533744765501808036417946388437906578394168857863028480148869314865839235797189159267869865021214943602776278621204080774035439335468945442681575580236188098499163162510107525617271480872220412182055764035732952417216375877597037736609646858873063818830459313059051546927550911607727720433473302284048334190725612294669998056707471956720656883092481938600583122237943018251262353801058967996136387845884159538018210917005529199999938411060290663862982325616052340794806008145706279889823151053842846806057290269715219485906565470635388036980214668990128616209992855722669817326135736639275015567944089654594251101948378368843996976546500179244896029178176189686332661302976797241830616599037923457427977461604215128648849913511226631795565437995025670796139603732020746313174249833491238147986435331555590353816887659719916100054353431821332258643036415662480745520680478757879071685870998768831737846845455180396723341119115099359455517024322583938127733654305222221733633557363738469458521671485356523433354869158166688055394014490346457675053580329250465614956403637319536338629253993951992740254294000786640809755253907087909771236645691282316967864798768777054462099866300710798582812764866639670919731724930813688850835333411916543532361691008179850714812958923746151176734844114657218429979619515032032096346734768827610323919644836441127092731243380376300349482477669764996480319002254329129898300347020147578816747418208895473041795777561259704802737066041547266713904973759974924690126987528667672394189979809883689290602734530449186136092740496207451847868032378290467347267371662668318621357831270240377703873071619005601461754869176623410503723096601931692633286982361051760470640457097929550432421669040606142741847611363631925367417313239131154343051157795125552003228073809812179062133742501775149876452652068032609551536984759292753072184748813468940060600224350823927641615664880514205672141418271117707655401028733580834155410534221271353069627160664353179480805118308178092309825868719642408738638457057292444181998715796063179178156355864502441782680355560704994108404072549578379959508332192852136958296508834132978014772030293705497546141475800489091949862235879688497525350065035182727124278168487241255785080763983970749018782062817133647598819542026099386217223582197666079761243615108447669631382939654330211302685234068089270416430522716154465478202587164398608367541489757824620194889356005681412972806490926173264035104849368048076641503612268647197236963996136901242575457035556698909078563830787131140410204138580771993469368133058342337500230923130527647597422226814965598199103201022137326408285096498395134069732361569299267713586926105567929789208791769584666251971328126588714924079550165286947646151872419424348592539186393450827099649542587842351150452389872050148976137281970120290696565640546661880283125517924626671895964110343090930832149883161580633069664784802347956636764098309241623432445055381826467977931293677438167167900096145773027387074099174153197727949873883171009323571390952323177828985459943716357384292616625081409532977889579513290845231409977238140716817966330378741074542637894657215884277889781810612571575769848919183869958444918062925113456593093787002460394699163933831686715799914772145024533472823481575582723257903966757952368394644440394789230500747248517924401461947629219826003916711719224391662595455522271628181462684585836049572347654797029965287562067532932572398902966333827475743487799922928975692107231412436299074246240119603045744727651073778257652248833041977069411851830720827493322486590070374106200947841424161685960037010414123186938084339982713432574324450796712879295567014162922517204409770097002759826984063461544974202520640149403549810035846765113798867788382114317233884855532522617332490051172183055568985580358997520461921425094641079102569249253416118979503526178948599479996485060565411390943742276527463509459609443983562206723109869042925081787715410788899816180626225171938011732960567207636220165153439774564024190618945774600906233732464416732911450986037108502574217728482072500804611663758319251036995663951658666755926073420549794831631988520492876925204533629566546458946224947830359742695370843174920650868190923696138115303798086126435846370064498324009745331795256436832596325856606465838864655189742174726513934576467857183562614522329276263617232929732642664926648595815332185696324510476492551338999429496754936656476741517415776958773442047375898424216147386060345733294205760868822639828579602468032897884257898057645100331319338382878578180783202878754213091454627556827026721288176232999811506442312744261507439850723650075174431838059377907154817891995777336834715770655840553390576130890634281033761065863378706614167370624718450586115755346275312416386590373052432271488012747283713495129714017990178201896829770127542706200748688697801395627544698439878751576570429267306893648962113228943483198080344858010090446129946552951074814642016680400196676993266463335705879351829348332462915915782532458357133199339678328859301884379635501135080963553244027450392782868927350507826893613651160835350565252402897388114880839861896819901010136671576768635278617916950755831432009521408741052630502582033823431785976050297437058532191098922955978789540995514426409699931064241172765561738356809423923640416602648096538333475221301810874638126376202098831535907111609425237848394144725142758181019213361559852155754535056014832180161406373459599927625670636196665935938711949775678572296737773592396294396853882844399308487904576157588552765368768186482421145613019571780186556203340037917493216104070961292595726708956408921060537896192831805609425755714925165581210658333574351905539301061219244372083974929220642285558930403762479191308968242871517284811235524916924648969755719680919928345670473140078018892617963028962933120623119790841137216907816885797686768217263899897756554587435296241352456620941247887379092840200581646046546684631673590584550973323861654956968357987732664512170530669686574309222550939400283071563936652975909501397992846357771774502501582394422610198220925911203095896416891711415899711700424610817709673582998616014020065196768579077505032985354472790278210125746445972550958059059220169143380977546494537062689810846157116649544483503000881316181238215046349123279510615671234301246017397969955669823995595006142369003715585410686668050609722343867005556582666233523969343443049750419224627859772846965384805702880574658764023184961633679973305341998391484593632496930767059076246209613742048124137163509314183966818259765441089873936853997835819350591651942987611053285511881358504064648729959943614860373898885071527470862594956881868494032020616535695229111056085492280030642107350523648594333268285108839721481355862731115389892540129164200690857980634283866106549769201017789907580188855501929785961622731059188583905796774703618874166616565939697390708487384364120434318685691066836857038117266606621311732509538306300612126765691460185618464101597062169039722707651479206286689615497444981545658671273288288539384612960697466432948326816728855658628288277948963482214778143344229977800268405193112105909120150172156223765494710814618534170658027629789550764041759420476594882192891105509501623700305329506866800423145967399556203827637136752086524935384447567290491112434565790080241293841215314344687188879010611526736074323788456382531105798789623250207947983378538522240800886189289941710121750821261385049174603338426247116289288034656840071587946610564317647136824290065683781894812615473275048743505942641029910340884506699426984137846541954125943246754145272471641052143076066713332610344217117901482266766037580199184979475571698396968114780600712995833058069110346033301452779098629593743717295809881796773595173621734373392336446587801520927450870390322032970536097683395211365430363542293586738814982343992267926408747147933960478633924452159539830162973519578834228828223537448766519957670392349032754235175874470078897971585200881097069859008044587058482948687134426831385364620221095677936338281803244401936719247567488347404982971708554994057954089244995895497981778453249078585640987308700201736916047212043131988674880682302390528436263762893098846895365109821876624612141626617316711576425662337896659303280789507622650366065116024513678686220788871605532918225635772018949025426727795256857164183944064935428580704405343074580887638171096483999305116589916003625687641777650471988099344004728934542036497338152429985475273414624068752793417798321949019868120646513831352625608894710482359065496456923293498461424186631020277319092909794149369518088321409578624427442805997235119948599510543734984378090741152928388191002213891274788062250899897791899502878284200713137144015055558441518045721786782961436203623906602883311812327626925550114727135575663849166766099836871047036097682082699714517232365119383419395495950015227531857110651867908866749966831363983833528092176126020520984730051410940504097991309574545565978447960832098668676225295750307485729883251972885218777382497933764501985087614180497759623321912941861971402410684939037233549928486673809483576385239514106604917033009793168641984812550494672100955218227682370029433876259710079944969042068729498787503001577424583732927017357987433680268643029950409836675034674253690349621138378436372318229563529182611528034580428987065820314026227908262352321128402610078227821287081551327345634711527632617507299683759924945961995434912398047630095062388341608012703507568153918335204245018403949310957656612301642771938697502991762541734108775958878479833879584816337928353595084714293460418356549835774814567214343486040340100644766164407247959454197522591375585398777770630412994594447841175365926972878998571978476857120341392619581416147737776980410280541071896346959564048164334728629660489113366914145183962830317459317009037393108736888028287697099509832166199725198718168099445962198095914106912571846612943804372186355096942738557383039660193774907027839564488043895706268273536378613589066919501450759281403945321908990034670300094934623436533403851544888752146823097483034941042680641422269627413290798145571111928458236385251773808429378588791821656154097126961373058295039667149236226577354954484955866509263748809886738853654315600339990786627934788094409468563966302135483815661475753064740033839058554667934537738063104254241395369847176072208279993854412000274298367147796322231602300140060802335173264672960873656681959420408422385672118227382284340754107556034952494473296705076987452634573449896626785046357440477111135361409726403597279811828464583765146127899680410448750882798807817516975623623440250800652287801349563531835391258430044981728288944035864366091912183675121773867905132065182633199562059945861118137167081941280426753516905795077797022434619791949131744857304443628484778252630627076370918945240899269695077153830294124075987725299019382780334053700309099063922364598731206501744093982476900615063054376016071452165372984543486012103495932175231511790234613381397796344556935322085398358786525280601206214001234880045695150029367630323899343902248831621966316716104222416116403832096134037238443607897949645339920352235019684707125479146935128367300716381668410293610780415934229436975666471575429330331513647128725034626979576481060582129507614651167010623287160287670685361964902814054415791743181879789918496451054548431607308254096750096239529122715979408093787796537729208543469252109592032014541780499901224386082746651819572868465780248672530720482354144393929505768920222574737232227141263228002217294735447608415880733963509261332763852335381373728327850770211705260492270854307043687776248952390827220414385649541462737145661929617651154439752389013519965027464872900891449829716486682080626300374195917611657437291667300686560981786627905057517327872561448026222048862030572056230019465588083185273455046522386100754875912647944940896080903999603795974106310779264182443268786655342003399438017042074986220931663027900639674296514293784338006953476322018959838973808357525340730799093240783949670430471259328865326088311644171475341318212218791229073925110655641627937710985226876947667198296513835283867179772257308720166636557213233997313684390927803138926451366178073896489601759968457866099663721049845052943271460607867255138319598221677160345034312782155360185541906800545031808650500831486352750114043171569708967968309555534959245162464071638694970941850989721308915639687683857884878574861452329163177411303809902770459169654403243906778686284770597883233221092790718530957890745351282835918065092898926175150006057266676252316812085806893394745434735379204899727370894047923303659455687978482965261294107611023597109817310416112792114488006839970215962820889336550345387237961527716456394724014645530649135425652269100884775422576490409943431595157153298315722057813171078744695931107293667071949538166621162959364958689578785471062035451135673987110257372458823043221305380560450954605552607098689591769793471027366476131947038902522587314647975792528855182784920977023081036632238933165403932426730254491603702610236452884495512568741338446896881327932098073907337916331268417509324823072436157137284675760807554162583606572759986234793675489330042913440583512537168692925611528385669327059162187245818536961279322104881249248674736419711262755620355171510852205295483415982651518638876445947663205471839120388566631423298294303794850326276052287140329066002488853943319826984733313523121296137795211049234017714956913106480941329349748727210551315762031418609649625940600542800022618157345767444618842417688541340259628344844378220476123801831286083722926182903765069493906305305284530252938262563085847536702524703553292873110693453151512595398347438837218503600647535093494652423953628236980050193662493391772785934561965579177171821682096712206296995285000918863585018530333484138511348372185547966546608971188713572254193608324170298768819601889369775197280101097479416907244850789167990778708346686753369334616696474008955306948066679742622058560694331854476775905582257848462190644248775324117684252646876390710764340487292455707020919795317492320268197090059939318285675465191426282083716393801611839828164671731894012997053530951502521764020801434603722508335137536301396205581649038531683396912193032488895971366906693932835340567450344950449970673916288125622762336182558703591709503047387017773365732624377444597450660720558487592205266675778615194263082853898182349017914923649004266589848326657266115409982236044445291803292108126596970950848769321633567259105123666928434837217344447075087970195955312997955616710716682635999706413231681369178610296617826998661959008009796231151268118232699417274541979136992690992154263321320032303747117406908375379485555015497558878148439176805241426960806396529506316918700803551710902063558210671361389326711185204258816166034644223926920909640047375914243259296616896598428172042315795329428172251104071993155470334676990784562829455905388683298630077677013170741037423594126263382452899793364757254117459435458403771885889177204826458227831938027854844617594871204895267486184676705866687922286908042669731961133423895949152702417858466923068839723545886698623601291757720928468963446808493908362188174495021513380621684435607450236928309205764419972964437821326763983589269738021498025027324957617255044682864622188190814361645512818624297182231657044902609024280129924761523687570597651057207078930541080801519648011819113649931538044167909866011552754170189113837720794329861528158132369695104508597613293348356928214608723858129577810339409451326119334117872787229759124412196381793492406440843359386662942613990039955269054428298189671585960379228775079763686003514379369155312754543813014938724058168046106858114723915715249989563207668661930302954858405274609602120634183943888916299000610452662228165482615381239374517027116285069640818103688910941377445652227484717218157438673318331522373136309796684293947720684760687405264787952318226599843646512078642878122421063022272030819495959899005725467670868967239149455214193566154784759036336050880949184491588150899338355403796380037016502722932558956882100280187219511871957538340730156569314332419247472888904520969005765323878059550080502515594657012528928646644856816760158265670341542689636642870454484732617574204038285802776819566541180689309023368249684950139792234403763719720727273794306882655471560918626415412871006502019756864250170794603760156555059181015720114976450736348899982549183326361390966034611840500438876360648353175415839395411290740851330933711016403366771033613697094990514593891050252116552879083289546809988055704290976778877728364389416872391705457257537000946448354430526580406896528492611037923053252427138385145044753052266510957259468633289781259918976710355533710180505498928719528844016072686162458850114656223548917961063361486894491481419421119539815630201485460623447578827087143464101199536386885752622798756764864654728666617895774373255225543737457620503487335796128236366785885623415130187261105189369563230940719691536410381239831200725993355848110584692236785292652080221154481308871303643950157417241612614936640726067570143798187872086350772148185763479621919406296236710374547919400556134897185374335188708338187163338614391757754907851864723719586323584288831635650702223963022475416062053071689333067095175422555137441780843437855816781730733986972148673117873885606934673056192512430375915617654599470640893248970200435979724709286681532075599749170453161795285695833107551375639805185883150732301946075184718082130011727280756624007041803729716977865686107252538321748049749761464399411857748315755243323786122675997989062079857961964014455918461442649544488898628884562086004785055742973939779615985836113512146768725645350027784007659280732325529690872988142387618173890454696134404759229880205154319551309848261729975078657901205785742975664226626707811574739584982306619102105001135834379382036758742733348315458792477399069935023928053959082135627494824201665940912436987785279929607751472844581299055302723839663731417890131620677758541570109589645394534803145459637441961684046261042195673353379313134032560626787064170046408847241179678550620837104846505691771774103206013291184571271020821122008590739256451199788842312610004486912404832030602551095152783607306177014762113173192518249788673444463618288614645867984530401845718657048790114370816016181301672533053848449129322573356285341483915895736427868418720121359491675100454766733308714367012244057206413411624024078124055151623900751874935928292201977084091026076082934488119723713397831442559113675846032923769180285239505267504508003316404474215767629251580132933876140429168995261344492988468592998090082249543792639673146565313011891177037395176031142985630379271082877282637857311017582914990821521822630049723674563500791412431098545030179462079489999630687122435436336637467830992713165447279930009798328905390370498103106469776516896013312748431496615789769014108209818035541063399822250745992981563344407946343834662920998188802040043533838254819452869517290829168496491760612298673704459089540956476327040032382140815470352917202329011407272741536186270515872364030114678262711053566488253276787815260520732957190614382950447030642923415286820012145482483395014546207762488430180701099353351156281828930245833994130248395249186727655008712458040765691192349032756286204201351026469421403832190570787979742120014904545509859390022791148694400418889964787737134768823896051172498363180308402876652388695418891958501302855727504010737765100727924501061179609175138019659671253557925770709991428747231275663694886739445626145124209675941789727008657662928211866436587399099168954456285225254981874283490164902972197352765896897422920880771807297633435071677389135289540304610740075658079945644195090482504752518530313910121889660309126971192566847579894473164546323912246859270066359791879993371306560858476876830374132441583483691851241697604240633329224113655483449806175709412155168732549384501134754309455308849229583179748826676276238238268254357534159080630215259575551772936140643328673887862272684946627124625077339196617824839182242337927071583846581734642837925526075176055832245415811062324137515293090446017393099365104444334493344388877052428779359819258750256990187514204345560164947278126026217863039503898765400378847441173723588992957975282038944020660584429522765570302855678882362868903188312013277217559883702530842439041593972128619217074471064116282218277962505914830425884867720503887157380335131500668159961073557072762730380199642805692390945359588898862757264011313125827038838857729181535486771245397448631760170048462329108633638674811283585962329911213685210701959080572026914154183667759477638206687242986645934666894559719192114071397977748930776486077557702045397093071258893355687868399927478901198156699344196985292952104709936581108073279095360514562096900993142885490525563348132086874603848032197622618517228492946462385942330022173063575444929431742743529660241803043833218875736278660561211455009534584287088458760876958679607948019231292207663485155879144567657114936561533394031349166993655758899659650155938563204723740892834779303222371076148571496207983956653669431385263747424831390246436225348127604578702469880498095268406907878501256392121210425806362317203169682464141303816769211766466844069648072467541796190605787336326721570955251750996088166513560927496550171185768950407074196214230158538328919471918506133984929869710340903029573768768568321605055769104957704051565620642833051731859158128610040451043595029190433793481217886192860185503696781953068243099053936064775851673225040833419470002777304556805444586062870672532791020046181108011181662309762323409826960784334068543739524909137031028306004839588686407592154978717186884764547162592360239446957851949175571927728238767932348668850304827963113491441032120623289406053509978791129350951128693227218027265343088300162199394806516590929807711635219416712467852737136294318330466076924663073503006117305136098598291558178894475456363135413061640068778553674101524722748569577882379261437116776301738186600301186123392342394877845724666366457168686958909856528155695146099011196598885555360653479937206660524899874909104130611300799373615654741385267357770907556897597408496900106412216048762625091783221057396606591595058692550075528154010660688770669441466720721035758570658063526024520146449864458339958362423545542938669381310579002008572116042112035437811308236874155345797570409925215564406786356561976594509740982220942397104029462591593486824448178320124971569996262117187615719808839213645549665300882734981653376633195838532622956735214303711517823995846803497273701757465712843139744967895128058369426190558077025218248578753905452125022741401442545540527799370964926903078004908084755627780193621517729201390329385629958205403371825372620728481140896307452319720977676272680317108107197271826755078217230983139208331948978045655929134184201263099027464013426599326240308894818991065161041869627145214926013298927305035839823630852130170394927475336252368022003677605362913479634644042029619524551749697236068035291850430306352042775928786230700339095349731098804584860920495867128460215408094642535830235190024640159003083318588766038964957367002030490594461746069154031667305068479832991893694391588569037114627052567525070110958326778211747681256115263577048181235980736760089697914140941280295642912293725211506208064103112032348692377202969598515142672395635055421612138062484634474776679973580762023645033836720204079882480635709251205825940994325962296461593949919296557873894634031821222254782617252759218594454544345649588497916797722019603601652680983238170349446401028483446116029524877034474296081014302220164086105385386222476641447055293209131607252101633012714686825749506315960168777554686586385981250033540350337587279043626321487924428624207659927116719870739919220063207197162961340429044712947863032984629028969247426155717684192491637629945360290499005609426011018320532627832377266665734887201448902485063963141977378423039522132937780270002728696698152759240620531199312151136155911838556048378777562936451118402467896614102050117836425833714847117286987581519137189617733001828475232056342711507704471269873725158742246577712583839069106185506217789093578609377053946861370495673305778735385574058724153530835093680970255863067284860458983022694004500530191859486996492167936827347039774307827663946265827086092767085041717612605706583755633799694824948173716556240247200748571360122035284858105079573191170155522787865301161633372176292989064383837978820909032129837828351959008331200858252026546211866711864918344748847058712816344925551673957095952000548471669743980660767333663619521234086808588396318416668798169821746337385435715750584552155974446496158833103207367361412142353957312952625538604869398099397038171060095982614732950761248466337536979766220094090174650962792948429191124872539056057317728704759967986831686333119688677341966640564224941651044718407794861845963213538780989637051112420903550981923866367778217741913658364954532041028553801017362762644623113037122115784745544210707913711304806305341975723179048127818886449448722922777019547220973263447289387978219539631885008502169643354480205869206009621997086540574434081304416675103661949827199923869826091975205307673083860566564697983346453002308215001839484844319443980821694338589601076554412791437085510853880294462745331059417746827173804478601314827137798723487945648366037660215585729301351912217414712879385696056700804817179346892192414264727546264415902135381862382803453496925509879202162313082564025441981479459726805500204910687198966805336891507461587941733025986137225493410523682453073664108921099908695886319573169090679519318572632089000939079822144910495170506341882816054841086904518526559880315665963980548744683481702000029065771313611768430404419297665483013311029904333479307717753520733329047555302413522978281968872474601463875067285751562908228562048295382872748236619504128344867263055958153670606176762526996129879975352858411168125878576966271724429246515499912301701954367185234118419393356184021690120637772410911593449621194832829954673848977686551554155407864509220012396768498383925434181737415010538457483338086555409197391570678884406658310110875912942471759074154543396455083781391176213224129339738941528417451107142609742508843199971318935682609827783877240545134171028748320955265456489613015061060115654957764746279274694209333328753929311621907080360493969239684422385819778982144104320101885642417191922374357580183352571009403943330139247817676213262673074127763601074876855075396762088095028184991451427631705917007029316451932368907373843113146853149753921383330874909810569800986040996465925605244780571476377285037243381226637525798791582062250255994057625358097187047157580862323292670455758727660214106101732726634438596304602778476382517187205263711721689695193867610820733405101476458966592134307860524697372236268726669926079509485635569215526863787772585236201226330175426687100767617168689617951006277826306808984945257667367911828170270159744618869449728407636439613230017455887280945730312064050269913866000793846901888006648289849504878482897966018972071809024576007685241845969762174858573693546954613167189235620932208955637235831540853899818065625655040547820819146884603556207546592577476378917950254236385943364231761680242483893848096878104694178054660169038044100373835845949387893279424773510737640287659863692693102676028546372643732410581683354006466329526580145238153913843232069693659886230160635720945824244171571039155910575496897798148577835972900540726446105500847204136710164716950912911547124753400278190805061546994098703332980332830710489902399118886928450720552140851637579475559560512471985853437522323998449942356357740523428602181600523327420178555738284743616683223964638662234889285078286574918916452959574516208534549460579229739066621572122284063982088300763706725307266247747680663184517507561582120833134674309673514978348001505922953809125296103298684298513117299350278726344629585640574119601714219476547051447846637748601793339634505824527438956460622372279851947824131402000041488612221605686090126323120716566320713531503204613338640762893034887528361702308785092983811408441154525919640676019989181544321823071418962916077041866547942214665416493800691495791076945460316333734236840547495665026714952847160623133001081979710608589197668239912406652903425430950860442643831457673132039717825492584377710694336139291117145938226927956644255068735259067223137257258770058862191248587197817639068001683948195924162671195325058846075804038942572271796416843548659883857744350799581311230928971340743336106455349217996500465602092964567084736548680394486860425313235475627883367260719669205814186660262780980695928651138016573450134438855965535756025790488380319486534869859345909119342389350997074808167393487164915548329233140484940485960107557636616575148676587288339643956566610607180259181818590577349987059425669962958021423345355562953627026223594668761751302304932065210734244849893060442725945768374592725866022655749712657247228247268969610242981720520802193522930120583165882852320677948744593196005282037653285605905671486416279579148511992267829043042000347601868229328310131789822327024964235512963258076102485539953525675515122785535931007087263729935653659898487396501767290999023200311047056603474139593235155355952283369447991603136109747701797940606299954824359193856116288617084151884003734459956748252673368909121204647988099925393203653349202865018253525642189259808945806480751895796871198968151542341052711469906904867235863229060405043954125807133941288573675070154502086464830720420809812065730662404264179025066588424575715720083715985400996617162529028997532342535536480081537827967172313584434314918166585874061298644465924965500201771220929239195616530420073522231838459012562692711936081123645428611228268075975921085341274320685397070941584581682468695236496019411916074950719960790929880445037130008564191934457700012175017075535967734711453171983215709295652508725486846985935538231973106055122640490022845381739225480908291129590873061467247598276149225147512683123225188029703855369994436291263961540451215717661620207149730699912183207768059692005028558861262976553465714679309060762923709922125872726262258919476145772771457828170042279382462842484726017839807382468344213778305885231010304658408539631580712408790902159534330312568313829194657227719005890256406648785435197726738832948959684606068218450403576092849441609796462235737087361369202395449917682617886611273607879171149031155484687356908443354019614822577581035656952149899878758890540450881770617473309480466054201754211852618793108937786243385402380497637918155934074952755247400516019205587403013834889904858369095014132855657008725267042913107103408555371895233964588694405569946302120266276254014300452696605441535526943625076980817359964175142422096409429496688632559049615891689938194988084875953496111412443326178841461849302137208086338669904543157763658397458106455221385621259159091352554540004261745423875389999710160833679774725219856536257785314385017918526621244056389841862135324461276699191060291637209658907864348931772140472923994593350255137952877435552770872228310822240306862777616680742454565945472766433742424863827539337545833090369361914006492290090538067687661117072448950494525854516662039644554548004367963694037034112487902044003129368258154245566521890035628928469090333034209260981058067808534275011630973892452421846596054294324881529221832774824428861474297016643763438116499171344265164462827753261405725082366486295385859133122906809704216819489139365222003678231910448918217085564083295379611355945946901900785716368364303942188237264532223194289217988093312284622181295057270790109821425311408725647977203513308788295340678134491250536750494678991454271106475456689088401281337328452163106163544383207074944214614209125870411434443992586281127862464030324409057854097202022379783222926669612533747014501304780501911533408652035911191611165886413045631421774220946717720856909227492285488177566858923963758900570334624977665610022554728472388666382801810671244849449462109419658439892705204472918683577035742527193321593481842674781154261802309120680690031223408016463121924030444950583163493994319606301161814315706417982301022593517806861735189545273076865569372624645899953075100128297293967278187730270860430474452900035010673882627485543661593002552139659644141130107056530642466844566948611185862102179933674573557602963610188305484629667693697979666631236678226650719767751765515192616840134383410397656889507970305644383166541795751031770772454290360844026712103476095912589152179684681366922106182834826966673167919264767996854699315574672384715784988704666260113912024436046042741601433027087894698083476992812693777592026426101380470110708317077112027606393004623600537682940665005594385605943612924819062271210948455840600814549702925219112234735190689220784748332683809169500425171978844419998861215358216577854912989625157083938994923083036315162525095585673462599856086421113564597844398640587175460137486852216498853379921389798495058206066716630509020133590891778757184571084551722295273291152424728354090001901894742676309312788592968740178587942938953363074082086170258549960820263539293628373594058113012109335598734721733799504065321490260568082439079839389955278922334167970773528686661821629597686645515568368690927760753151772046287755792373317377771620894747445704081285162440361090659086528029195500536834362177375115610163295186255304644144740802419235324211458080053385693011479454608491684561649404435231649176474249112010944399139112764679696044907122239472353475579472385725004106756041735058331262651182530739690218270498919609085028969443515288533237988274522427534076406887403838323507304144856769088551651273659259354839939046948850684851009690999482038094174023756818112749102650831611930023831289766069109112861462895349353471079336062438698652233185098658898948659013102636145406003240293598520579763950502242702286542581021600538112812933971745682926790425557593357197531421030100865671104583288860340845224572644148402911391970532534198670949153805747333066642742354188808361099586241207392081305625651661741513965286819653061077243579490358390575796760575360572088745855719320323497246002042444576634659369168614926389571070283757191951261338613481864739455541013407576472654617897705000437039849509376886452346156159465374753744133114422492634108042828656576723662766690820633066581429381145287995952624282760659940135939461715111093845280169582858229639767380779923887249652134684549556488241023668188798992052509387358054718668567366014056259878315136435720540562402791724908735082769526985459584485719493637573987525938867774979119417001241724029900289066759415056160202886253923083239561687314459814219090997373583593859176226844989511889933063972244225716780252948721692853234319130552456923730268178456722751753360979330348964882219783090362281577216733758981009590317952480210469245261426274451470022399099106588043417954422692050911818276092054424506312767047960237940304895071381588429755584936389281566809972094648940721051609506372604374416889686213231751266516304241902484629611424884683375579370068128700073442841804683229097811689459719133686386534070545448912859337292662502489494156321593176779485977429288086294808953988023224276883430103796092893612145939678891747649140580171069767992181275123361763581379392187524243066210151707989163662426660084791286841594148122455341155388857720735220221550304867768667321895151497047659760416161557700956604710962841420952876163276289432477117116239994237256715124403565792336049925306179189232160358030493130766484554909538027383482117695799784978963756667242404988809858362722936434838849543627778099783159182574293440051720958376833783516510152292373684824288291762824895404850416697140706065221010703820010257029403576554816297658110010050654152991115633501133933851734769708719531692956439287022289528433572592832562261909313023448824693272192166262704194795159974217209635346615042781168674332363396484102236814814991889973400818724396327591532008863219174127692482280511120547410514794933950536875878735178208934375652121065066309945093997839632131591877739080919123339293055565395917821656177296765952789873227642987064615051273010079867728180603516059324080908746705534368332460578466594479394054040228732693838997760335919443931264973664750396200630321692259326993932372987485296588464814137929427373100001571885326463528863617430365015966607330848968068961231328144679200044243725451332684330695094209463031135216700661795176476612522360490045254604634394835429452365120450061230203371591524627036336798015221033757193741433436875678730624154988979750763858546885921930471785053312507834267810770451305726142696735248246415944316801649727330863933779212155214344720542596674309745900894236969925845937588692056735220683205242597160857260161441239959436461112557235562086145963640751320314622197391617688310711968408051268622670748760207858737864575306809881644868733231322189375834662754827763429650538638702589644360666520653343259888238281177232625079490572593261627189932590858851712892398030887600453704430351881724990243999396066077855013156796838147332279251957737339979235506900234316449709258016597237891391508056633044821716562610907098841621538111514740941923008955441748009779084569596682499717317133731848181207195616256563744506407002278707796008134743663630209472245249829307836181789459170940795673427410871413455943570526778732623997939206598784059984554140549245038971190914585958207744945047529953709430009497948111127150261497280029309756064623855388751655540522106040100175627606458629555134873521770773511556715599371932092121967843367605894576623172158320394539179109059885803012189945939263512642478810137351454439692779307814305597327744192684325017533624096018662303273253628480995095416275726082038942111525883405395355035652089264913438156678623512495680101587746327043711400685761297076869646557133302986488246941734100020295802462740957796855304465569923769574898178907399803001412868158150135080720022542017122681259027116765063134737475412651524167189484099755326550672086671347370437103670928660144566949485487000490139526677094272370328696994927971717541170982797455444151974948655181463889065591060823617443694265730521653086562295411496092214124765587984061486377674953444546044137440362850525846573143322002053572938126246294536495098575211832900844884693586288608810254632631637885333690645158600879217693544150666127209828459750006230705136258122697659690514503316794734949586400961854518563929939465176413808326840362678765109866188812788641999168095536078544847239359570965054077725057502606336568065745242005529799004132474359013674257903577411399685998878174665155075867397873670695416306041187816447646877573460318062023537488519682241160503972631675315455560958741701099320580682535021281196653562317492000334599352475925609073078488155773205484748953665152683076755080701004964891579767592365473300574222235227850398418468161829057265543523071497224047562511206024047139069485139601518566837902350746821036292661575774124591789043562442459716303283519755165666510962800408298082396395523098278348831336715202073579423704669101113314190702100999458405180328051650504086375067771750614602610989739566175207464402491318804889096191031253393417878829458273370176654705043137776121824516174746870755630224968802498624229718552292120379832086681625014169102983065607177734702649932804936995993659570169120498896854093471861837951387143467568028976960087760472893584609409186764400965400758940403453693137908753849645018508989428463995852204401946545337781652017232466765373013244583594221755242149843483186559759252772427111961620503275139426933674598881133434197167634065318336508424273994487695824791876019994092348827510383666689968146882410478132339124349196658446714520940312562237947241896197397091617271338302148638932775476148218759323289219925154170899720793657295511562380139514054951282035014788293400283747612878604069023871072860994158617761671452438868070365680285676770199373665757035526150228985761363529919170280290913626768731221459725167380844087972421730747918282717052793339030813710984637945013077143895640361611783009326950063559550463814638396165122177944842950785613919227043177372651092208325651584651287289619767951087947957639246347135455488229635018701343089258923950059259638885487864936479392559965731210581833642670895593605050612923163391568710273774674785358318554364829389676129747916882372012981505153981440978667780505749676516867094752805417571006948760203865702102254656822863364911341653099973052360325936645594811664466708607954479947772336903222659179712361469928484836782342874417750853995985745497513578443144531605518145232156677121133458575597009660756579699251603258737517483112759583359809832798385365342115718868806602727505450308997096292593033711531785349281095783415350128028983986142332037034931309612372827873230046445022215656689142465634864661574565231996461136352971548391705098711280238908109406529967467094879339544234585668639708023717986340856354769975985329308036934223737388458478827029000395747527856941439041426195186560002435633703126196105158564939979212095058575209319265496402575674733621691352796064791687486697424721361598319777913561617215630148923523264508587484317868705291622217329415927436042707153908963753368463859861021197288574484093163349740554713726178016045941104335113805115574542724770426868464272067094975473231769097788240973899464327425009439623230433462338372959162639980125578608728487641901544196900090405673321605478392970458002333162911458623058534558574083789944249600118194960355429777214877602020783134870830954661942911166836101564436033602343180511449908297067821860608742314218173194617312947267053516203230732699382727915421253897769907710675975844423793329318975431484072290712347300105819411502736719129461245309077314684241212939321909413105302021648672782665909425856315251553740664962204087233881203699987552956209118168071228912153998054577170427100748698717097131339522456637342365517052905254203593828678616369398026432508661779862593165924091059802593339756542589000824048425950273381785834303691246779601391254698213584342738632135960831749048136714877699743892941111642227477396544121813735269555611138017786799104681935004496411117846474900604707199033663219520124601502242964047579134282084059553864413561505935971403515279015047756340724508115098819548720921582863894030117609885148378765359615305260882413454624959663423432395806252789681543253711950198492895053445722797410918231059043678840796245648475430909216742642418284231986849291173503677429391902605082652952411318721969958737464478893013591609880104699272129829231898230042387405664356802339206571997125429561772934907674010289335110705743305770150143919769493337920851669629987551697161961250015339310346758216954974191293946435103822840929303433785031914574690037282009281503714480681883045970483802009295629532261553733121230912999758815532025815985658839006063221359294015866899864301230000071305240879096066681640861436750598544589569653223763523363229220337228912378371071351539345579252365912545684950161269113114374642991270351310417679675254457720989686976844153723017087684012273780990375941105614597317135087077135545199274948737443592010950953204219536788997365522960304989112940264529604631050261205462742675507216391524286594174486280960645409488840169269949384198773115274949206045594754080577409903036883110215131901487709972982818714519076021521286741287644790760055157398615058512793444406360448445126177860370227503987365130399010512686867700203544992124193524099502220530742343426154488141311750914211853305979515203212369121680679942531935424269684676160065104131145155938461624673769560078073371715660708772316635869972132793460850761426433221913446082171680932759771748224333672086739423722029089881332799473068867265336518784977380857271507016033029551525018670825493635900667909600731313973828042807856886043090752622104687001597162951153094866112183530525688549137613259538173843315543644048690610632562106241070312113672065726364233049981484035070716189181037184532873631926578506766611344947535237994656183939851058663560107581462249387600231307747412433057702817890213393049985781075299075962005429513659876574067279642606589879169848860401642309981390032197623472186744259802318576928758382918047271825582044724371213917073217583434905330605552416458484343862933324563113589417073024477526823294998778253560975634713751942583225916537016710183900619060621669602019417945575919206695419741209281090466968011879801254127022745698301121157576074082713224741014294699130793780749019921765291833979764399648624039778361289559945314673310853521103099459044176963754227883635119194759480844367346549678031244087180459353408388951103885407750349272555403333768347973954006345640622467374280753315060121869367518423584551984127181352379207492248218950887765614183023942066838706853283567125301261276026512106139845575002329097667442653904455246924749370254543624475822057747106862043563127343103997811614082991860237043023804924684436942551388897328313637687332987200865103820906881643295507750169767065510035288242803485920274650612527602000646982045191414638457530974469821222675628646631521328444690931359649317702600224274874523993875292758119267132287331125883303568778900047872312823183620414292565350369110274651263603285754201926014357830124682647368960567601382930538722323992211485083852569547388613187979145897111477333167264150386997135333602563491761086259640997530867258743565884739708539673635209329483701821715986282970609363248084096852896168153130617079066518975350385634184844114992714430074841124809182329171474967709951406551408361644352792238138355120200559456194340654744622126338050620198521093340172993127551715927974823086379667069933804114088223445562553647818531316233877084922466145792397973712555882039759959532904542522172401037563102810744067376978841475280751567958034176203824461039973966617698278999226506521126775232766492604335824456261929946035420005601044899097717657374402022791598241962185794923443049455352175887846044615479529748206951728932209042610617261397752264666886106210002885228535377310520984717850289586956486715225995293225665013296646239633158968483600970799556441248882225347957862848034360439276008539787533375272700028841778980083757366382210200740759743882381828634899950724141094726571844625399295090820513217955812102774788796538617872819933045195371678661177765328584489335312924558548085030545065317712603905611867150169438740490763366939201019137633692872325866116208807983304388857279028401728286568591789463456450362675264470766767484322875910960805902632313010597047500355038303012842974459231494996762955553241117137771594740288781816574917511751410795649129267820223569350230691582703722120557003144786645622367860510615736210598412421138446410836044887599186011329511309998358978177585993240881452296711621619731474119964992366226569733268437757078538048659719639339353268136953673438748627722586954116819199760319992933250883311265969349656256748329259688011434096512569213911101425167805872931920778959444380735782051696505728690083556654650551651695823915000082669453482193842593181304092175865341742168502730743652130701404617541163943744910487653094587719127538591421051137350593716836655744435167966771547286103997925404400341203138453577303363028669537672925696040883254369730325343407229796996527269281064498367316298234585529703001971989746339225786995065022876066851793373698067594257850472139599760533647879422135323588275998599115889225370843868295674821722627610493620534493853804081971200365387630697659269479227938425587591878796408904643057914508586110958766811832355868394269012291487990790077380232000891480680460652767952118917010810874818691089861971525751158310522910496557165342338577732118296696336450404682894186641085077063246406226924232250364802351692394549828774764840204087233141276584351979890089262305925344058503165153955649310705609230521981013727853644847578752586653509166344144214199802097333945390209340831301254608403667338490256202166349852877493456457284535817345807246653306377621100994833861486724802829510844361777986305408646925108174631296969388039921723444389203881190586579676584746638788243395580726317868103895786011919228951907911452170751450923163055166161852132262718679726679963213995358028818962312333401120437784783401930737595603734985506844091044273881297354919888619805848849383039348568344422271959077561315297044393176525774474209392730206010034299121298476229206098237489098277474177583457410660664261860525598142040986208813010610672325240556690995380916454060617630087429553479855694760082354690111410413134515881109022861398708640174751851982118134698584804889865017790289696888240620015585482002693006223157876104626659610541364001926918296866886752030919490801599332360476959764178962663984809999431632879907874675805608567187895455302222620228941724474838728292986158839629854094048725188451399987610279811825012813506176819148018225563890190557088303413179615367902906749088369281781606529863357343479002770814227875232613239558685517485287315574103839372049861093924751148488186413735315945587987356408767908106922729344889886222468566735200121670699646652690616155129017198753915896322753160538747758750484825201907004628406850432887847547244533827878851625942668403995526419678598520549410686145575560354337179596640270018837451059083402107031546996842541901404761283941746769433052813265293896353434211040772954036610038783971875753261691314265080103230309853625066507225155777348146053919930759540863395353762229888255047339304789987617047776869325875471145308389873198585190845198813739653918151652220128627846321103276067644197546752760602526046591316141920754214514140919291701409620960240557116579749837784913502387911501190660999396228290454088267150002728525081219607581714946638474803670771245575639265473103223198280313231720213066126380432683554696621719362895925685477645726772047380655474633727654089667071824228499469418387906766931130880537412643752677290544154300463751365000134086080585734719695448625353995370255959636294084417097340635821602735454804269105575310974647701271233618857441613050001794905202096583034546622211286441275993047610990815550776335313614412048213189115141310832418408031027242111820815944488414636516573424267954990418704094462693956225366324419266120427098573284994528345705556754266247255315841099795171105155679086444967904250751915096709994733659377040570872822667309781820340498890465871606303504697205415527139638140895894384075451794550742888029067828864228494159749118449885944286162049923064947921812444434945578463129013173822080245742424941480114443520560395039632068652936447383363744849202323493817151390776598563638421952463010858527401800320146265818084650443142472127923765144473512154527206926224373686957530702406614322667883505560508627680350805376610440344509626479655613142019561290824746242361361681875055926392557772692382956915128171359752097944307520312475981375295804991527841286844031528163123720857194309539625181185616370620247548418390987700219365649890301353954357824170453902639660917099475249341934819637557229564928325061858239853419267147082711138213755281737511567046316605447632270956841103040173953697959264473102665926553949442461936725286436211151608691232760386870015380015640296362779471475736646532714763029643263081826432637711850875732158755565086156489925791949119857530764054969658148535331569324847937241934053785286449410388807388032902919257167414943140114086124366655233308365321020973155061603313017253342552005509931136826393229178203974092116398121910705676307217317871827512080229145033876280069931932615064167335673502635793247188042444630619236087222342148042646954998357169954474095654595149413889059006053688127731532913607406742646016288392547549246034009180216652561377066409062016943094668948256985494975089802392863633120669849607737955364048150186365389688739147050379445400001719635932543645202700260467802679359189806556657232145222012178498890359976673374386900178617280467633438067278195250764713086657854574336048523760325668143297644533948094779077149963636267908864227680468485487348984523382226166955978442285743298282382871784478900518167240788591730629709529888148959223255802786490863297551887332200052072212342988295140701375765817854773191462199434476954934751047834750577948165099699513518409010799616644503178447282295475033166688220974779661865853348823059638026712826449769732183223909303911822669134352251321647645363281607207816420413072227623937963754620428868912074058950969822554951535143573021445658644329491053108322249209158717732253160069899666481932640452246094555247662171625997499491773113588793862235757283200389058064108715973819313021518662897527933312649455641001404045437044465399051242708234673414717735552192166656294967391959152435101922566509179496334429737115558528706815082547999935526026270332306907555898955355829177689672501560016713475959143970642293932300112862066576540037298091528081013854053092603971305806721252098531513060795421700875686008611355013459705187961129680655304337721919957118345449567799984487964875012241050835335812816436767838034603750699254379637236904791512659381745375407888374924298325018214153746319060116535933935018962331812543341522606259618985771933207533536478846214006790126936906835745132616297720626679541229297872388930122222156075403464040040272410263868300870839726237281334049894167292171601988905520332358154960806577568745251753860477010749225130904483667271527550757287801374869200742613628155862702958968421208645043794269575516527896802808921620740648815937926805890383513669829719851766711138434166194805478590252830636725129417023430733160176390357113657279424213905729546004466345001327496799704006736639221093364383770289172952879643561502342299334811824652490003766560380877362103625840947302134039953050060003270394841109424602562655941494052007022199180725276480895683611126267003139528812202939918370249980467101223132167970793857351614658739469565620801087129493491878858921627304461476398253345348143275321074513874725678830707211179991220606409687802797558453851464842105449829017571714222133365275973741318897471167718863320145274642772660234452353002155129066629480172434794001880917076184262742927282382281036894895484812434205420369537637088278328146790553313788472603808850040497342528909741515945562694448073505809023500239791197639596652115797703153986717839062029938056178905014982193754893690725132769326440298485452304066309282409430193281180663989460331474267514868041972241899972379724237398459172208087520803325658363817819869887089631661110980479122498144053937737543373335773866898891287990697891432972748975570967006322157401433911504881172167461053025319475144391355360874950455040968579819536482638354596872969344398505115888690535449724157908819853608599044881067122997451866994918462792319633025757697146805201777068638975385029485474949313429987176054830752942080065184590022305768675593114436925509804051528486053822087743787593934809427118417138226131896681703989283803890165477526103791072879604534947638305157894903340314950420287314605997622745041099205732959531727373424507184378629296929403413032546578460550335057558656579305088821853962344607643568495944431294687036058037474061659351457920445935924222077005308112031624484744599890977066538567741205225730483545103447648241169256456306984624469743315700674905030785264951277489062829663031149714795570948686076447868718836973689081953900495671758560792090982857975662227285970845817339835546650405061700365256577796261585401963609841950897097669690313282276548757359525080994142691492936331042082087895696909466299829759984881460720851145095571872545893266259359927890212258912428638501957580124900855292748725784448671909224195028041570706025387635274456323620685554854954078807375456275770734859887707680704416740366173614467702798590199885338062444456269887525399616102352445311966244542215432029850581098812628880193176192957193226933440142364025216226760000746369274795102566126958112032814183206729173208966665228743549324748987216716318049362537628943708402589440243608874038701075908925815448898373348040982982592626642034823688887190191354209570674607906613785387255157943031663883771966746045029429216066162249005879900546649733655457945742717294438020284831132746759324014493063258716333517898710551437906959949133533184976295561093101886994036914054571519129708436256952334258941323409187649243275442262175958395987824151082429026244777853479851787249557842427060248272299433527857744868651287889021548870794693503837934515950913832223363797034704333699658540935778808304173734681219597411683869077141350411973154812035836062303645823849223451964498856456167050904659458020900567043077112199024293323334965389217560399718784206989611429708714764003777126154051973200567930741701287956838538587793767838492532868633249006452398237493494725713643442655745146482580683966153706536748668025748717564427444093319199983214221587808741079690201327126510979184687683824315315540037604535033554690168859115660213223454395781978018315292770982136703277214222995545789172149584697260336397029831608574988116309899718751014371132948266634198458929815925021102288322777830256325483966963807690384192150388569099572901855754660727342136107340363374133091997896015785544523477145518883406650865353069982299497917010781440732127401558616683389518969994072995887894823102788141926824875459122850419188394837585017112525206014687848564768065408563045451634446899975890814158831610938899590820223845569551293194031725298812352945611578807402752394243775765116472534432967361324452095354123139485399515573526926297526536583831149171970064590850181492313976825683472260018389634246636997848529811526185463560705005936264698543572002222508892368369841269268266130525529111132644013803833911297349825122576375729597268705178418736804048918718973290686881275632933920820398436445389765580479603115131551790466536298371073434812937387382594425714192938510541480165280141251908674179746841376347039745672872005138650500706402469410296493034662647196360756141959212727857363182157860188583880619522948692731642272275702633200824313685041183235040577904081661474775347057115535554869905586675029841377095291605973387157578836033510032741299073074820101964004525209610697987095707866208302805443841001216637479442486886145061557056926028273234831450335912648143105826126107347665205216119758979421320661672072426868465869421271308884000811001496448628050623528204300776999973091968880460646949171886573744914074203859167106216519765923094675859441088635766212329403608998252441589813800684078315160019540402922591081486405658081538137509986011685215071526658422242408384070266799337572048332993101340505702938696369236221611220810989476529657409247671199683125967378739554335611044943890962437685821963397559975565873312833854025082514497917962865392052698279151321800540573349940380743699222822954754951678450676997693639278023194085213728437805784657080351016201886111712671465816188690091096163872161188788523928589993314245055078179203141114310755923735960999593844692291649397684008805563890724699252305393605379327023600865217976077429722795731471213724195974623746418962714423653817624461499352883617308485645477558443475605261979799396972224577810551844008672218612640148132018214481434086935357112789862967047185660554475800598572745931927258327948759195484238355967007545182089670016376848952129092340540339874624962200548711331794074357803881375903944432173558794139947227496240890796520153039874838433562525270134924924279627177196242733839602969242392389416728896817681828612174812970010796522303613573187365163664528073926190316579917963474896436381825165591544937845548932195221331543765386093401112852042046396686149707966118839221853425882921307660671578055086423199246900818402122328531608052263845019545377587250116777418500479437482260194293395882412348474431092133312358768648107484007443474123951417589998753215899311151381111425130808629054297690079185389509096061909988175704569564774638321660500276704573439818548589043327504046007805106633126855463773771717070288617182831352351425203562313634746240896904402749365003528204652758320439122916637771235131553062133968129027679916108516530759931487286379416816328886835281263114557766926011186411073358419743668559010661835326467217981077944459713414135021408979701467410293650154950704715390931159486136524179685628010977539975525330940392325890543439304707969492543060124314319505624527716772071875301577576625569492847463416241964335281895642442197173754690348152260673457210647821182178764812761753796239702784159003363432433108043201397900989995103233695877892739073372553174130846134726103324803256755449995589489533803870679912947262485363752968396776613744234414410086503993161514989921802865335043653225486320576274758673489549933181262578801302844917782439204423126413633028438891925270229573082265895972422476098530972715685256421964652879072774240342762070248844289306237887559075067158077289195450403762113144220599965070215256613142812598625936462379018160977095472179291933566282041728073330911757107212685952573548265326655266301666813495743431540984036852517982032969814461873956496059278366389273468688463729532959709440778352344860355759275070453492439603023584164202865885520583728983118361153977518134255281347428878533354628029695576533598561130423380805606007686123701141825791680098404454113844766012801509163119431882648744015237322204556745116523303300632867001015157485974350269954648336813454079418351392937110319157265870300810464689472270245533372770634777658356961898113935087893746352632257070888105877398449829359969418312522264387999688753600794487197832425110349471106331292154327933232705341446893395149196369752257758663498598112827879665481459512101006900523186660858807567500861530583170941467356728638683714534188096526413310988999764680488393400006518572524076410293975856983666733051030938434146722634304379361410616182151745646630055514613988159125195510291671486256259190944259954783242540656673793649745905148156011081549561480199572782851675759910885355773468780320032517370065917710580481893446008526487167288899520952034481400253663545206857167081365856761243885867782884547530542787098329349740861916028332252660640114149257916060568899355264736482820998416726242292962518255645344406696201502530594456048769957786358834071788778135477733683844216575642207760139561646060773941653026772153794232690194378839497193946107952263196541818191874284444633594721105798134200033558440658153689685108966326193454559573729349516246219070367353961192459280419057974119644458883072459453644187843203179808422742493861010103703476341749406611816705998783141981448075482262816605125860251806962297698920335189240498237418616989942679507763954652808158452541741129074210778684108947087626960579578645909791931257954342206834000048602022044841120185867051700935342005238169578655365302897220227074786160412620418600817482804931477586138533811035561617371009605827114170657868528526013194943432981324758578914944271057209861598408236324678164293731671960111193908492740069397470156428824655086103680588680817364788319540164849949029442617113231102113382673787005833878031088816047564491613762467364307274400257294139973591207287110248676058612442396314560721214746833300385344938540397393683642234511972803590290484436621675420829990187959138070909536995517399742823839756268107328151464572763983467916488144697151364661130536410813917202521299788027707651679224905394097098793048922681772423779103692059537028239740261203596441117139154913344860800571814066797706236525957844432746954204753432377741442882833489204013114074970777039807833333418947205852391871857867375998746052941532639139986338501200683205080671133442215734606541327481874174209854164797208962545040676831488828161503544600738663956874303608911353679655766558232524286401624130958715339989783426926010026899039917326751222766451654150617314082420682121288411698640959438955136636261955907959144046742499270810028868593366452935281299800101365022876259339732935178848872526074263101490424804594815931995976394061227666224994233789197276341716256706098987062481976090596384197580940961207436026881114723276143980191856544106877775367740549896156484606308413162284988532820739273510993863026355147523637923924738013408176561559396423578279658618016138732447500632637131425125085656939481098572100198442344929540038498671764495897507158212095747544034134862480231732498808599789682120676511195545497126384973613848315453560420551353029661876890262181460790512445043358501048848620886014003689007549996471483923911247993627234980437702211535951958896937596887844018969316469739887629650399078194389694262493357519690859279299502435740195334064223959396927714506881389740746420849876518361643447571430849030619518677493678156740691113615055348199215652766751287942963171646332864514370831458612530392517569203394057016259411334451403307843554948551334469264512195678016865639167301155238747619856932295430173455178082322661295249759668255820190016408992586077537056139374567817953690131181990642142126160996782441325770880533495414597144601093264432118764022549064322255986720313832688859476070401097431271874807110720948185586741262149313046062517697490032610472441134814691482615967957041270182256337028022262148358588649808338337838685066715120470030834991738543101627616174852538784356890482140026915761146649678450070341561761133641348763914725162197096280454415681386036895923687225166229494402872937638490701976508061454178158646128847107321771817848543348698925806542988369350359175640410272679947968473648679639718236036597401365692505878990508588577810324500095822742997639065528154356860630281071942998806934023318445619172037022815065651540714903389795833152461706706012588595830026021633245851207722412214520104938380397489203024115074849045639810489568431853042298323643312806333225121409703452002304191809697451078083049837134643837378391383468669864927707506366576963744992310834280538301753288076362984869013127651850689862325863320636614960266570502506515723686440616599676530950726086525918924191020844601447985856495736674904848335535502801018734650959730414542891130292710039209430434529749047201712502994356192223313562868875567212637381434879127993831225334020253013506376049111503812828094182596245950679803751510029143997443079374193394717366995772899403412554427171756398905611451093025012500341367623154991764901084496803212295426038124580147296109568047281019085097863267935745089758491809213937066607647579768365245427501461454643587961104513691194511974027986868551051340835136602988418730556906849566681340718504220607969086064383900675267449756377697872112700540461933070790104020838437567762264250498262539448856669836516803902961210082071025978830338645766647031654790510946946573716015637875444418129575835847749805865196567810236256736352659403140793912833096311940385208069244227725935920404955506999162621555768117987721005163546214201174224968406800946541879349137469777653023215889304593519400640036083781890944705750319365322877498222130629925493250592033083911965618082949050551713626642797709636751296178531510159390802312978503555187284349639065678793703708201767725347373234123276396604156461486999871634298339071406966801713124134760043300894111772961933640339330845275269284390447300375477278173905843855448507955812902060923056552717731013040602933122866430165563325932559115499407653097293421249818954484292780429752698025681842760789957945889107606642117230344170906258345444594239020898781691105087927223333483808482566887940016726429765189819166266478114815978967485431132825942645570809563809885897434779263076134478569610560109536654179803381630312034156959749188209856809253920080288909583229045444481437324415069350276327347890006124426940151523643109303584662910154463403591747901306390285124931131821876582170597283342441152300581079328333153096176459779264726697666876309291809375713184094829891894544236035534044058739632573156107576450565237226506346250485427561713199496091870418189875565879250211752492026204412236570741087216984045273706082118176816114981935951251577892564841851111121382547978354171880704697154735529839260493095568883518156164817696410162996946274114292552351371815240095166106041666851789340851577180094130892062054179313346544785800644085734625078787455344993738795945063357154217088848368524178263923678497669566807879671116931245965013615925894756147643387216922214159778541159347747688530258254382752580738908327298406863707621201935661588001692249951191206581024481789054317527534163130123039958641059888261122968809467606147322131172210522764345639417959376725369021447284022599526692133416254948613143115362437948401532948667997087893519572982733754856321435739197525089198779649968921980775047608866834675029871708073329190912040625171743644744721381016781415530989579339125004987695621173901453302456669915998560040234688391596281416979831864351025497741308717931319172087475384304947596694118211380240385356122996472855650308521015867400234372202011002622202661314370258175623314981879265837479891972381631498334946388742520026756161256181624585722393018980900932551221891439636065754128574784476809156972702429971661658625056138506499089109400422462454997175081804410167615173505898556393880259400581472955877944447362954762742941536510833764967635258530462524872764844316915341912669951169173457045125993376904344560483986615996257107280936988511570761800976883166743441900453065659839795495003371595427200796988942932308100752449515449432591567650874104233653506363686159008065008435218933131810513861837527539035494995491777275652862000080583029461007757582745951971020582845837707982586249421092908914160170019568179884065145929970970011352302831559650396938056954566537341620697168514714431844866297676987146801090357011587309362564838678721507918271363898166971068359503352584423978087546555610512466756977957571460972116828161804225857740383712106892388010235831421688843221149702523348785654247765875679409837951921927384118123139739581152056808556909832190214183583207862634463534631068187937170753711982786324327250907863986568160991274956600519970183889996504273690893278546067284203791267899292702327788581644290843359426801487812628131655831849358954325660030193951735362337914760744499535554637569432010335449992806749082015238994792155708525174244829907082992942752434366290758913510166896522933289807908389885549200615906897609768161717905068711075621021338002751754158523381856812577333140961972700853633012181917966845295316249896208859878737000622110904777709184639814205648687839285850336860347249077723326980817024859788015447102514631343850649450828045806705137188428768296215466768398045251063214792385455861561530474903979066764508584503297861320906723939262055445430796784328936625706670093955048128763153117093295830751777213450392642618853807493847591971512533074702286292991319340907243633933986894982845514894387695480264236645091242608251408534675949181874135154055144881133325570319843811570747247599461827300039432341322362879246750667132586705396082128029097200347880161015181543495355673154827373816850767373823661697966522715894982600379486397254263260813524165492105155854329666961093064620227351903636205297758828208643903276440962209346770596805713951738019274422821823088788356405854985458710490142905919821437198032557698704479062297865196472481708860206085494316007794486991511500422100269070928773183537677765008050696036839801856773229899979101601664309953905761086335960043108434611157469406670319535093164724135981166214865785047113731233609340402549288658722455448903256761188385763261248725011251206179726750117696329456028928529256148509158001562984637624749920242371991782951611190640219563083645133770126813232982512534259348275153467223556860839721509324433205779766344159609563512389476168396056021715227202286734309644630584391218375343941979462431728398744570893323824904665459070212306969396063668676202356966202636142024835963224635537043788936459546819470589230219366016125856840071609883009974763915615780296511173600096216828393048477601839518148912427256418481491739543118677682926598235492519813748939331970139480006163919614458496582827581813322232396783534924171520371341096927782034982091017575527199200939995885072769886281533145007698340553666726312344812522121107265357405664711934010920677112287360846903139211293262515133873428082762225651780131795504152907905570183709901980800831950815129166836391960370572167599551170104620228359027110715269946028084869260264320525393996375215260910162657741517617518463987281958764123164267804882858796349583701936195613658855267213040161838316585514937177205538609727321280616074391723251314081920422655444481354845486184958889194452902743415420118736727876093615464779869478072881098878631383806637126384410272666843076927773426964211730694848010433405255678908348049644858991520630767392491123156154148477033098072745125063410411583933819455373957520734414035080888589519784739105297126795849849900535794254807002704107542409125124196908180799147032184147505313755055626711921778662276950170961828692659510362023631768914813292123681038157607328113850383598349046715881601193464425771660020532822735196188227609033298746957074251468271733588419050384594918944219281446996696585896308369666046413717151061162577912903948679528123810074003154677493468978686246132527904224033043086113479511369774519527888293496485331426042098894588763225580665484578461973391503687797572568687465802809514505390349834942903590112563259003506783841177062858664749524875791938067123312341019402267880723634673225147735524414385874527362677285504272650640273332918507484828133971557629134704333141028419228305025590842168099025349628173165998117720273428607805072844705714111481015649229558540840019775552935073887119798794992502905247344472212256514006519123197458312844835598101036618934128047188498954299555758757014218243431590563806778975529602618738266749537845000888015834677697383914795434522747932410943538429849420461781778795114693175917554973295629342565012144305062215468131184586795745480651536905214020111175766644113503499782461341679811083884823874487582698698923509024241581430114834685281710027363012734538248826613266672069119152309315837914295390312089322308825091348381074274396804585857407584549926450797468410354017292560048930935885739117519186165134240956871492501207070145280407721874999211471545831305547241004060030812423937724914058239329639800795688340404740300339589111097255102626760561181129863106245131367446980097437473837660778147403668871301738633366440895942523428181161853694225534049446622893927296760128000460147528540891293731994251682678133437748424408635721625330809268227424749747245656910471118781646446801806309233569248117322991282540458854746003847455183213042303901319881925692317356575186882489919995983892335514056939430713420508809852183001647500072768760219466626879797971495060501938893872952408203709862822351928082242579167634120944453789768182750131944971337583050831311350815205414125162403637234051776478254748084836166805241706922856833032549201345406391990279809935434846593619184172760852562125981878302412498869425107226742526733217366009555188553552132550936488763945594593170703551999209586232449215845647062237997982539698860209527113021317051654422105753957828606927922523845851144302378692802968352578909144674587456850950706322247270333551478526585854553396344064652973114994677449171918643644485877492941951490870434158207322761253931328210736412384098677185935413144782432457504310432092401239280714044184104312769792161623404752794827939529080714042720512348137470875672712864448771130880395512845543289640094951921205778868822289832579417882961112505914234556501839518585999094825987831279765601029060594234536213860426442337998155296264546329082853129662734188009846159774146904415577260391386865520547565260138271519561212679283758813462653324412738114822967911242659570231613257000972598313041939412749480857546214491015696904519371055775353955776970202354298612573786004994283258327328065434485969495701502251130598772439418540545595114783054508219802572894725215250126397540978166042274150474477563383615884266378304239782883889276435214607091003978086478475257412415155620417913082734269940335344448010379714779642742645246174198108038796126790444791104785061683720862194217546852241294539842365255934113594887303257061461900165786509676522911030946869887895932159590464542910276028287692656215978670087429825420990948208608376437200493124115925718756261777521571660230630589001414045813870748752043710808361343245358717073323735844812769543443748386178822542067078882188630958280312574667351363507496058887052087228975851284877059847885890465073802857566225045244925962260319425716196006744674112187822415286039931107421156009994066296648191787430669756542040912327685074937069649368606771602954375471385626577843173266401666586743113231412653006604842946291136837834235914624311342549435411384197056671651265160978159441538974891850914639056380925656689859721846017254378088233354760540458648267718719698577012303623062703117809598621130191827796376570565467907543150555901550300410211130221886724443634423160379534401984849432065135969673543484093587768820147995794092607057580871843353526002676807706217148396288760532948627255009683189893016139591144722735100428021476264295950911468866173595604555416935819792490609585852251858876219107330332065170976171943246368400150987748690350170935181606037974702570179015967542290554561746600365869405504585247433819025101701258047737378598931061579792021323722646345960586024197418484413919712614482912398074604434181564410824056524946743149650845268015804142280689125922784001090952453934578485304138455481874864625208157306456905154649010176625076234417692236539098491388547478504508985421768665563687830448928734231585208680352141258967846692034378633776938739115330297051015649942005695915479185269401958419175046845494923578689229333352180259773727122571968623154601413212797544513124643919842230735272548361992852259036376588621554380635429581629158049596716238178480802832473558484723055439728047599318995055606921554930856501510567617759184724837785830221813429197394007538768772554505752467036967318084637100266133537413821890863499720804191759372773403958248400385275389581284055693808998586960000276019673095647436449543538634035194194363999095921718851560742106066031398292531320154504720266008655593323833897558507557210354434503298702793613875025817317541732437205564938341624630484390828462539883532112404424554512283420663436239132144733560025779214231271328824338926543400792032438670743550697456943595323638005161607394381612434780576693157765903713320455967613230616644116704982762789037938200810615631011419083296657109051844009063676576509395479013515413228987721660844803463494306962707219195570160216576732338308673347998056943171416112095302761976656801073293432578178818193510157885477442999938920777505879427064153468640417787412036851806293696421954046616181609651843471770176362139411990136839738727413135473045452062985180810421319125120630221161535264291195735233331055993188043593200793208887911798236550465068731332991264224675171771807839743165532080945477279570450224724989139458540198858135336032266000923012451158611807354944382993346002456686427223821305254782834038003331971815107407429334418611529704153529927450531242058478143510669611299318001975167518330185443502315251222828516020833720053966567448487409313452627554625416304485850724445576260477667494025067103924607288573115489812407102709656037283725653959086086874096214769733369990012125967891385494092484009342701261865939200114883472585602054577094393375446707320801517111119582123184808970900719875919540868158124976206211449690544235835800931313371551064179548338342840829618215346067615975973314918767229611174448367054682750396821939626052643998015735927970797050565412718691495136530473596992051613253369766411807489045726280239205840241848560052155200345465162251035868579286574336678476795538534556659022048662153438225072075411091356380151158184738385609652705787973946086894870002323066988381020827835543423044135001365979914851678132203621226305678574644324716479466809858806700392798420311827310291731894046114286704354773977105646823858584205479402144306218146689646974319547797069658716580664675040472145512735362270148332903522349171327082587668036988672847872150966479657052890388933041120116252182862814313253378652022051393743785988949688315651175590789639850641435424772881871364291313758848476050128837838118088867215851975746675603376090315960950794009896649340741178208930996035479233572039210055847637566563026714444614539438473326896672854709470798453728889097607343004396964075215072590011153475314867290489078689757275559024021252410904641944847198391725365734938478486814946674741749582946576904809562529842253952560776822327961941772382887729478981738641573636244705763168814374985642589708911863118234073999050216699275781680679301841166673858608742894485871584850483597880861410733052632156507311160923804768830533310636924399715451922797246474625336703956920867234658879910210540248910871159863625413845500633755950784165206933104688955518854123497113006098324541968052901790377639386549506576084736291236560100604760548171901392227267554111900753597125950141322303505622784878620906088834528362087907689401839738050658301804718322778357121874847127617329800868723837979415238393030566434432161681620390084008211877322243871108429784208015018639305460591668947674973687490977592738825803522138318313465757117657747330536817435942114843436619137780167173663560141749336840357782768156576007714445641031205532583979160698382037863861485412469052479130263916764314297304472136201934846793130918920043495054201854295722613499905058390082995871902337721810832045636789289447917057019580982513121363814244151049440373615084496875868200021610444727942243325126529456060111937201610675611334718316498271008596370238308225464405935004426915174488471771090000809437787341401727133026702769819659086009632804691381036519206927722586977402881709052221350736830806093093871145905481154718400295870449234516342913780473320826902362262303726648658010666331919826679058220071168269055852132536589170175523662528088649528754032929284892711303089655107149885439870129539325950819844269495486850161244422030885548430755219389037711442543274465339543250196289162819745070084937575630858862294620093443132862177747219825606794688341986270496132173720807196743630893784030626388526789805725292847167506667175417187449546479849953692862651038079461908818446504831727050221746751982682437609126534682116007455419602221910162719496531941579405027211219675844094885272365390099097173906175515081111395893927351570517446792575849367524384331882329624018696484520615522344384859549929094300347987548335606026402869974927371216217570339685979695015295736170967214757777376903676864025328745471881250278774463749945203361496411242379971849837135222125113357139858378686070114343043086228892126457973469589696925333624897219162034992657027039681785991151892427978161642413615228408418515192968302709337606013157567979993113376816323084358174962817545576289112639633660778708359171503746655288839718170180363011569680162979879501153136833771119951791515523937403034713979076705973240980031758322495066824094774798129428193090877563035977824505668420792909217265339049538693227219461729175969172004700186219859519389267253330568233631046541192512203109894495488565736140510404558928400664568281095162442285739089978896063355340389362630977744684694998143463556344068886770950863898701397032494340985965406236652007899988191277875979448633116692691701345027118687972111628131523680228962672906555221515791702424972119640814237004298368825907910200880830144269477785810671917714057989084976819124790422455496798330084954341832592843283066013155333865394777322283216655533489291479041018941458876015053329214256788179790631590311996126482797717806465617751183104673283666158158559803861125921858173454541207903914634987607380009460503293259052935215037419235435950619452054873177301611380189268605722490206260293289643324232607679400163071587698509823384634488602752575437689862299614944471438568812969006932248437797093714116933355000370759992582173798384026092177855030110229883211509914805647313444187823709892496697233588821996220817548157926219771947450044767736926932855713468736151304609559302061004901684642537473218496839882528094924406746720703747057002578914259587102188033707317999623641343846688968845536506736374444326084880833213884344902991403112437361015039642650058860603439826634790918498746656261025187041659362194652576700321034115879572980608646206301378240688149384817320095726168374729560319256505098320027986259187127745498914459676399839626752289100349967552824424653360973053478900845609065364264798690278287167125588140743562031934678312984712637929522310344726848786131896729032338599533668184291403624151637557790665618567300392821192904065965207475348843703648651909708889687834515148708610563232407764275781588372758378101028686810368193016323311297230987780954196056784433821472357173226742621765156533909459023262549843177587751105227550185266424813710471612409183584275612023109262918512233883292384192481012718348448645497143905671739585918905929135943426640924977504704463648629653011567387595916719703880670832418965686275923995465602506839485958493616088636615842243991086561166053766293152169400625489651805879381565053224666525888510134833168955573248093350389086924445380121620732370733818239911923471762950896746607626622219850374998995828339863184633235750148275589208667305257711284525260945338095888692658878853740550219060633401641789623755679549281916482495873478799126375796022783917871428110667528602375044807396355149435714283143244863055312081913850615978346084816938397672048364578794403692318672990324878846560549304995911213303762918578296885329460975484902883568413782231961290603153912430684224977740595721026926136516845910282097038766304348822565065046591757588224358700699157404180300955095019727801486112199348406687829514616473114745841902771980017826789796388406965233134910829693168882284415652814807261953423957718107050441210576490844218493423137293459651840348791981085785669688822736160603463710604552911918009198066184529523264767311885718636248399641411598153083807352066638750445779383374116641592823352578526264057410579976367963039572422811631964159545815475062701980201875618874838561882596223007888495484106930982923367429751302221499755331476038282715568266656786744374538805503527398026865047035555838855209561196007165289833170669131682209575979843968876065516326182174140301106043949831579929246161328557348229345818397160052274176061378221958154804932016450727910911786494715381874914264121368836528791735236307597671706762715362538184294442343377818139181607609581082441106032414313092920546437937080833511416050739340335444478420305109238516281935637944561307001675877638212328359481640413042546881328336215433797327718790102742028134792813924097118136373366921236367429614050986788035029495818443396583656092144660269872430409470580127362432629758147223006219819683185495988025944018537115534358903147909751118723253583687098665352043259919648938156316476918546917851402676014455987146638942927087227522872656478863596295470382306276051513287439921947316124682210144979595565116449077720401999455994510067558923475959709158555354203393761078172496926204967967625178905815551034191477180047655461576453828505506131627615499499568952356101049063486664786889146207250400740319660437117649787778783277511595492453377410701946393629682979817822464114131468775687045773248353598015143582996213066166080449339248073776851195287827665139077814292812611620137044988853276179006864304161143597946150564447263665065249780996466515883407887121277252689458739830855126993393361480072796351934874069582478930261011371769586991370191934551181980621823281506142181692817221255149810788999922450903053657904260607979198599347913039146536448869471983493027595367324999683810140264309989041841807541813447073739962505296028397049516882114610347760819290367640417731915247605704238236978376173743389964196734923293959520841289398344933891362415974946169850916160762563164942986739915872847586168656542247383742512431023913503208604020947079021586102759253078809225649777906219571876360254430979361306825254635125174620542547126220527948921109821274503153886384834535888437401667456184664851605716459956311766031055310980602555129350811475437978537479461956811092854715600668473901225217441762239738692609200549039180557078205586810886013778196585629737090560120832319693796323195845273544192493173127998674648482067418997421497501383472849380152060069693093057701487936057882954622420521232231731179589191429438101721508719108310233993193408326738556891541102152407699534019722258274368131932435457713683131662537046963175705643367097499584752992853031679038662755155894743069708531021048425596723992354695571752248524808868053756564005893494325894934161267108251523646658819662174124702425395890030852469577064398437478825708240755579710272922788928866486277060434422544179445504225226424234658942545044461997646145622276182140401212930422595871888652850001095178249272754942636651038535525302848330508688948410791630165089242995450971966767971116566343072527191155883006003386281880305283185957623441295195863286249278497122124355868317821487365592550359316921496955787468665556740122713513835326973257066051673477861830859949452176801160517896901790787122244662727230726351115713237125808698309499678221611908847837973535623142320776796630948452509525687947450024134654054278076077549215681038446448422470360970696995405986399594064821102642259065857299180579188156916021291117683756998239171051838624190697927488357990197732153460657293487364271272977873825974658946595871539869406642043696865529276493331740483005662044752839364611399622933052646715626173388364537095702054482146283772023210586338568191353305610390493212499535747504282559884291680703331915283228815204184789688401140743958189457217464136476565122116944341833395491958452115909976091770089756445543631666982859613501944432395091006854712880115210242295845153099206584634174764257777627345011511701350512440554621418564929303397010246769580726092420411820683085699778810687761354654302365230324207002406773328207970381188181234362724802991197579697525782146382688982963211500670536584599492540584483302779433642775371555411577926770089418566632795654780513595785305064110495607135852699260898556322211675736208839807478557312427941250586570324060880193024459062974017816723447211843863674370516332356742875047585728756056861370432528231936335553458430896627788822071739202929709786305203494895140944989754684108197321601981196995437539459758970380629926551992535375404226592056984474196119166205289531033630703781884597348526018953748430321544900299831720796788629868749412821131660040297083522373766023438759111757488449804588178566359851907090156485454209910057349186499266836406109969455225464393269772043530967809534614461107205120121164912427993082329349276888781066396389516660195638232912890876131862152721223084854566084423909331648237131504786539782079679517884589556973234848203814714656022266271405287288290186274374687396533271178783058147999450158154484813839750399550151351054900440077107799204494438989160688805903078486448869987131211425524106197525865025391892233806292393797065423514638080841934233374799390066880050903778599317161937290117160633190785136931493731562110231872865547853150086526041690385854391427800294477927200082276773370560067145999104417258738520964170694231853173759135550553374449506823474485429950054418227096094179374169771436397349807341958161436653020266979073563258497788849610031528462171989135600068108939567868811709592768806852241668604398897753185090788442469025498351361983794012295887149335647918404814604862528143658794155350113217739289147334038899116474812781692654384039220354574568803648122633231253666895302019846853045097818843206547467335738821762330400512179612246990530564359166929881871858668169378012069115613861902582492440879034488513810971999547393097185281884318418419738833761135525835325606900786776504351421152571900605029496952613473209362556996436771291814424270506331181323442639352065977382283739049620492155913311913055488164426533309742702936841742893091192674403432103365612616996726829418811701855948436306205175667961644754518472821698374271286810021935494877585264911202038377531417972153105321761791156059742915768641472358305022398992941708784327720647996041153874478541381500273235483888781625765353027939850041532391317956084627954096010245560150276077636397611216808500014256169469997261296132836359811062474644957584845289317654074740352986686985177984631004979696680696718294245914624595622410991866542259896362793920831582059227958717152568499635518217103008594578641590223543070239813300516392894536215540517891805323285367506095866638274300534313737090344125836230024251125716586442665465302114322423796986978218248403997131178527008168428337560502576482697599105598200758675217251191109565217501869008254599954477820950660120306335167000095203114057373403187456231217409161265920767114112607012976698999888928888208685286710899676082269552460335168403306548433284057466091680968815095309048923011112690674049661301982648840496557667057996842142558101073780287266944804847692626729664839501828791402134470385793919144459559908383670991076903747665462129531382586254048736590980249323564840615535851212187344529899098959739639876798197207241140962791717816987381963890000430310145140781458332709336669029212250000230733524621796314941458919783236617224228311868809739847245723846993251848475449046707485733335950988600166962050100321520976792816435325394971099245631368489609668833950596079769991792190675903781561539821754123124159530109021389753676797016865008445680538308736835024430875753416531091880060644532309488367792427637345669419429556298769374146928277019424794069318230704602786578937573791949178761774615735851303453499161344325996821964284619677808041848666756862152518155960854166007948931281626188885111505237231688116174035235487454491809611945607295315507787035268642732501708259915116748947379850874402940340924378420893333445405629352644116634257879895630362119451468638040131063196585144725974901434049153362268330460606731630185007513250287286787880926731765899227849874352794783087977810003537220681595551346630402164949854440400544262217079099359942283971535456394576839568282776519137382294176351346093986979808543572726847169835468930664396795399145636177890389223065929025998952283940310435856067217834728875215165717780428408104124437372335038375606460310707126885221979919727384698129533031321944257943746950217140504057344714600744377124605455195902908041799260057948024890847212646104187685622308286932749652862359521673188653530191158704807723598333168168922943716036329247593785446610569568878597072677607980894210949747566295394524908853533486284246103725060629463227793811491687128815724519322644631631858440775456277066998115427076556302537320721941109044566631592466544125854082220454856165275274338038576108563646287413962677134364973434933644767034459847525188409356302014167750564489330787187135940538354803745756719058594628580532589580616133845478353743794241251260479481679476199208786576335120350254742648148725890108809125726199355808384883475804855228087023890544968816546883153909739571709946281413016208328544019627144026550138601647520000508725871966632791182296601507397730032274857960967823952732759084157098961946293417700008375613208698554230860453294427465541213790499896048495965089816130454906513367459602683063932031739527318031046870254022083782674339061531251509802327120359969952453628240581515076476612826142408712866546521824639578859860924697935687620865451984551904511549462813853241257566438463374339959100608684020491141763923891599236805721642007188401427953688780616713822179173139096538122444044187286951813372407052007436697989510798897009814094752180920432794764015212184690091624190912102486417240468165082195543190590457145724304034803200603395081695460111463505552810349096821259994893413078769851399390764517541303958513721949173811377985254016123518730212341714602818507485222832443539631269034352226039861139046596655045455282197079793043482332476668680697096790692614088545153295523732848913431704666245411760525975926912496966713887647231823711511623928471535969001164448539805042669416241257066727694306809119909973815765019056477452855939415872436207545782531655210193743903191832691822150311152633196221218391399923026157244631610593440216482883394835216102489238670250561414436519390979522419902649595845177226373896102387219052387240053449552555401251274774954144410666802775912928860117578693069390387858217346675414271621029772874833985658383614614767433199297293525159337373627838083789673477143612893156639382695559821736039661311987582651386475787563031553140308544320513245703172470308189361491573433229933082710798157947545385575161980691395166579161365248437136142566576636523851187651953823687081868597227032539227602835176899979461031654762897726610143878661558684363807230444746318503345352286009623736057961518798031043582749811112717781384852756175113514205574244287640732702639470103636219274311469503051092836383478684664825910543852860836178661747412471645421517715128481558875138729181549336478259377015520172969908791819729055385438133578293171447539383080959272697575420818175021204552455855038693763563739472371544560586835855560694038891951422829596467240871821428771709452362918646949365021486372895304750499299332077181312579539985343872176412713095123926188719960555447165395686376552759118759678503989144564320473409821665883223301535864511038522039399096604503171644723966511813891435842776931768712024414711685397450097984618999145117448587640645185804465213581439018857154912436177850543306990474688980706016293259521747595941784415018393909431386754717594497548400240768447105067394510497456554408329115254720114617679150791717507811647125395990834886967584040391329745841008226663969662970839139677885085919495276578712776327088348433358603824789966937694161138894224221957103595309155561965405897748066667980752648009255858217302791776502136971595621814249470066722860332803752056192426904593198803250644783986430854521725374773382925150640056573289690243533305132951271266582470797907380423205214395995448339999323802212169878364080907043286513784412925743600913342315797329657354877875167993703151091088087499373434542157293288730702170230212707652413487331494918455200556622969261771136548040244807887113174424082186142094590436050667534454609472472087548150184714460147053788170196500702698545957144226861600890874876402288111119647431470826612166573343008681203366802965454697675485472620408738537429392697403952784245038605880379425500038089692270143628062793749681913148421729293013720131728799877377489181561737989152426238874476507411751971159958590454323524423615233117777891689576801274312309998540134686442939869933390600492222639803417396386214290129543303283766059995647893116842565440008382173873259211432218285559052404218899562596207587969030024132121979115378152950479557782240653964217594101044391216567768618230498461315680806480873485853299576017881557966394867678963705642478123060681950909782520056730408196545690010520657466643696319726746641427637401551957065003481794775200326121661831214049392013116828649381113320126379327208019172592775064037645393333499641332852452815964728616860888774038447067636224173968647516526472064595484454029222180699415499727791557937046875584507981633490540993047357208634919754809609983426473860309113701597255738392373644082772212345554296582920593503651126677962578242280557777021425150177843749582733029736961029410751403863571520830807419150960069331106493849787243178574243652973393193890480927537888489083026526337886930459691164505893198440115780938085653460300440900943948504146562589542773398927677244464865771753163766918304225091315503005068415680563941005886795214367144786784724927521288249388199500829997526332860797773583476419331122017713092345431310744178519646874450852412185022724632568863488205627017059443545132189949233066511139464600255242199563091259893219469171953552612830098676368860204436392103830995336234034772346846006671962429837809307195270928947708095694766402725348148685608474813548127105007465348599029887691238089904606326037427001608805302495719327070970579246826908852339847313777876648341613056389332567575360547857188373883013758780191816516218323052601583466114742597280321317121620138573826168306848243866888071707017233345772693464488034049973736460346207368157359680977548987751083753067355803313198658857433254846266301913198614961612142786797449624169681925936185900192616780064377453627085601247306862651369197782375983952988950594609865750208390379248091002300941753445046981095656967237369685263017274369479728026557775142484333980909819538483816283541207688942750906036266297895956997446223506708869284616848854829092211505200415908586682082598786321638793229785387840607109915479791607623262862935640928499569097159459723625785571748526063784492099962862229406503658758929843382525670059523001251117814132321481033787979179209264304779554764672997172607106940778956864295563919378717105017715518824754244510539353103388127421279702884516255224215361745859299941150727567090066251224835688814182102940887141018726023793853607331699416502267996589263981666131213255214415956499548898557356330815942973970075978662338791477246746782988008413499593693773938115774860485088325693918743240127856387707069890791171750391434862000078265685134557761070520916254301179055481135885135956719026086104373987425402850992362913569598104124298317186963028893925797392614828172697163322090987264295378095775628238787296036466087289361946210559468047078666059244576562195361013317128733646421289065277307206688262016929733988714667343545019662007705730184480996112022442984084121817044005928625392080296386883833409932427512976480153730365400237105841987370336580063598493244676458262310899337464317437513592087791782631642959900571319197032410791669156247498351156506243360340454247194448981513980543293185879954726382038348744675517885044725139209355295560817486866472447270416382063261697634887427272455448374557170787692830360600447660620802338699424897106739596473099132939415761528172891251771995877711647352049009908356945835650354152528518110764778965967415925480837769584562762205770654357919573137692402310294187983374736579273942525756460992295294608234618848202129095005167183056014978295940362313825262127431867322658517040352870314043404041530458556717714569824370628444186463348366020598545837451958070759469886086563967583331325203607305058570204964545559030690644216697241496199682954656953745650696049075295703744230607485935125853944304600329432839705805442638940788033542465343475336310561534538033831008429509090559891100368890568032426363646070958726005766046221148954827241884147789179143065431261223557050373274943320537672961819855127411035836971261021203182095529802980702202330732793957307059126301424077093201341870472603342965294185611021256364578865613154709548655061862998706606659414202961381467328401749772951698406244547427380465062160233243904024391957538592405931194454692100619034668565659502203837289869071071562823561357927658354652836454571163491784977029180427112769003875732791476374165561193179760780951358032322183366252100145822525450455166414226908933967628302558432270535254240524490682726328401540962339780244870245083764231956276172834672617638680019487022423442123209317960905341218001553695689676410273863855909381640914254147354618703264410269127498324793908842649139114468981782943842970687833204524937661315554377346217355459250114857849997649973253677336174874097925624501545622514595284876147951420488933427705104146646647164091095952809564313881968020816182949658295213844188233744130525913389981877536132809432111563633234185790404032514252691118619808586327830640698123057979207038017960371199032321521684277387231090596172666145193498362133706907779865994894557974053318407088042699727574486264010805062241237586100192220469238187263657699407591758861942973458368298148699473884249552822006116593693908354184338858009312329667739231158581501366602955991261935024749055754953673568103927345274302883999604553756873991202369733540915160126256882658247622625431472148637613742673262774516574321397457215947925233228279805468839016613878799727186518122113703304999028947416236249996759994700712343970478828167449161868607154625104334925526892887013911595253146711411270931133128945284450014474404772232577073818684027752895523042767182475085588138246232624618361087985153787421569073100449768728213309231260768898976677403305579600024939023754256427732359982231902984775780848165334053913369616306947550444989569509712925391714899450291556750756123633597807540656970528654284968058025155774765479526377021369045416230574526876939823302156504957196020340576023958776908820903193536722515929439341127175815041268871024162245621005779900254227537539765857882386804425227022410264560845588184705842758264021151908022894085447488729470369717695744654512517175173848383195106569341754237881263278880909337030772982520695235677637823746778643682127919743854827963982486677205308871240618068068351749257514101561985495115212517703945333261564763010595336676261591008784579168524116524808686568353260279083535669474438532948506691884926353962102600522296716455987142828935938165173307562729120463440146373684875983529807452164237297057356176059930390998266660120866379025341530559427449269077565167927077250872263570733161994501361719661916516328498220206270643140583449730498454503933891423548445415035821788529078088482931603347534859472159516913295641318620625143730786685289706902846213842762728364875582693057955843331972114859797715446338257297627442418279052389856690315768648916100750673579981905565990133470280404355076913295426779370375981112061910279447660910767028381833360317777582940605630156478080573105262186192225429796909997917612967065051547940206742956218303236228334633825498351173786510637993007696560773475620159229227260259536577729261794619818879928391335155915400583365274387398294853232371713152363286578366308041224849028020955322333062068459443504085230425126221357708754532478494073650720036152427149420019741898374444352716787571519261172878999182828743413988013838724971506385092509420922159223532710571808282993037387902563779554120214357686804332859960830600459920481359215736520754526004663351053927427568776283324181696294448799330703937408336943084218250720653712776698440742511293424458827446972214303796211152711203612262857231348893340579211686953968785948639725285926361149802308042183175452573677044776598436859968091213626183899108601320489057710493278059969366891588884170868911882759890303273780499451283909879004152632139519263752036360862641004430716561102855830115000533188244277547462791727563749591327626195260455465798134026979802589893456483193502009379015453696325513909487858956836585642864030829066052971753346766726414343832657495773021754393497716054081549342303431305175467940985089753139863614784349372048831191011736675975421198406068048653542265706297890710464927481541426181475609389092368573133314949932898213030953737520208572177176142402150772675618077952714457814738404336089564939975619340856782123136738692579036411888013239986440961590464602262686874844810342575375596541045335403431750940371302989610020543038431239342336760348812700424314613031755839818661281691638921512792696054875628442612553799220545090769103614411054475291134090467233619596704134295461602717545442124391441635996782355559067969753807985230618532091431276136503249760277246457052105902805821993211961932672321064450622453737802273905247550698771077334838546543565360709987726912830306938727729044366163222572157511296134692818316593181594256865756852474126878603866629343244745906180182046808277778779505720456202511058845689456890179828276188638181718721613432846411438381345436385323632853016591457398187842946185084677379275475313281641881175191434926060125259090516744661313220153050769256472264905383438892343393822519510724146011149935382360850770698875691855103056737011117739846269375558388784529856903158456486436077467924499689171024359607976721336151643613070991442747920035683405904947254657265891802140796121793976829868517926458713085754935600524161429117317296405808794101202147173674273461866365878321127451853489246611125208624775553410396834519003692494761877953630938318235812176591824705361722170598331471469218650853570144110520197048992634661847070840619793985975850111805736443763422510469731787079973616678097771444579037064625072393932132201593381428421213210388845484719477034686527783149639524895490975631471821882498503903039058673773479516380652151342606105244802478077270817278204816030441243536383111842855594474773200111206643036580668418579511423773137300805338124093030151464196425251489072057634619950012202851676910081640235810027325587907952720979767795249152515090683267542662672042653143487718390577600988841571276932270580172432644942000394599371881974745686800029346711187897029589568816490762796139821482911150728465705080831767178763469365031285258654335237488803071264253824860116388452325483401659800465808284365450016482822683384139497867332266165848663805754961295272740605621840387026438797307812078176131652036293356795654800708181547686079394812731703067739818584371181423300798530588152989158656111163683324551702386608723518012998952207599838860116201376664581811156001421836222240656634850629552682307428643751609330489574237724154818440208095439164727275455948206539446947911376446272866274570431219023756013277673205921450828934089230599829323573635399998174791460988101181193023389616749126485654333742034518028827369905292251515398868185426895405603109420523978871592722117395425707810961050961632433231651332907925920889506874356909484271712129623761191584761820284622409229156694709779308880443868992231511573923798039448312432752155360789622964635844665163806571793403117334921872237560967963749445017267255345625421100737000262139616762951355325855495330091056041993635874361436845605218397940637866431248904382431693287373296480663218931266247150521623622002784359877676298710751743725581756056559865714705767184951767136320720453829192685429735860510874520313164539223139765953171165797000861722519815662013457442240038233708691015025456770148174090072951476442173084676575220940094922317116957321888359190673978719031246928418361868351963843091748399726748514052696829965754713992363902277368228722268152483918554972757091105135102301489099622522980365189463695420576770143245735497919548065435955956182502856357683926702186562386067865069574675297756652190037426103059345159896807024191864071533916326560999619546053158050400796172696343423863158375470371920158959557612938647156415637490573387126292602345548096673468055381434961370604469255465404211045052134222513652325595407288253336059103937601272022766266109419159441470889234632234756991211044601713797833936717508758999140536705595972102917985313369773240671569228538516376056303285012377793152392971281017804254730627975328853798642619044939874962364515331544683051165156270370812164745613942483940779062420866401953114363184011436734260104432261770801870351773192164322751582466394930213935884842028985101644173244765410247218189414591739613939142177313275610019955815253587133541560423293559802427336010358702444093098009886740444297477743788369283430798788047226318276461374220744085540256222257974186960350548730225238385917862540536691821278151742736466175764175635260585331726586529724735735670609360765353376640024926476284556598088794630495964498233350169738735979919588094684734590555100696043445864162937583767731871545989680950593117609540188732647210065768696080556078743932131304040881979076817141704618490317912470834340331135726969730452279089512320994382226603040409613066742192572088676501153994901559084718960689422906312868582621397767667609437342560584248754453283157537316774692813930089631781358621863605097727251958499047895498785863854705772407093933441699455952731934843215517322191375645501574112431043424550543945615592337313073812621797904540210921782787444684215525928915877305052662892297128786945556479127656708554831032722871010589346834921938493127954893193584283379405963375202404313741930252665673855189628257078517615862991014170469594810251849982379528838915888244748844538377124912584329473659675677051373521369269070875688035684212423199351756879951643146855204044011376376094290268332300678945948067949001279518620069650458838305075552100448200110123427147711957047534752890496092270100737461962700176467381348390749576584863747308749936304605813615789432438071998186215083695027475011620624676499413779180662930118538723223330782095917247704418825982222482889609976219366941296428194895884264946080906551475906687965226858960823395299711461322895656593732370386307143438797542236880858706441279650239894938343463288855499088254700842356749219931690975344696241875552338864941703734689486420553964403664740464600581358024569615182137608571700658004095569142024988936831344595605453806866135164089593220923495199596157293892309474474493317835981842297466915846774293773809147793955275505228238871290266826490915165226591510770191350549070598766804092189099918600787266205484768315249870139665469396966457857750000410047259346437902053273594745554679144302364635374739313987193484356108332339138033002532457893977670377080963841046631123726964679390127789538668570280906900215594377650583033074818561289854754776462299299481669397215127499021894532843045855400124211367274344411929431568533005318341884876560038014759895732103485740894359459347976826501976631343140860792060499713725289381688445372833824258693125362753053784093567355385710187643631087806013079917422651136817779333659086004296395114725844275052049914393515669014167786638871169142214109165082891653614057320151169154993204958571379914006547574553381086371687800878360832845128579849558021367441044479961640412359955602896239616377174774075206778069250301344408460990435186163071498462481400579477804908262211503755723164976850415347337211496823262597541801481404537232277459849126091809411749599289047656141383424916968411888754255855003708059145398640519854959645439817568831530430341631253132146624211091054918109503339169657946301783472947889727086800215944819569049568788623593742210148354235697612238399298723510681186376169271444951354623078801824690541886824221640040830455107713904704743911402442994278400506383336303178914688837389982748089022416992953958309871347557516472309742672485566735729202550894778012474883353549542101401144687423832526917918968093694689193219399417135175658688326878513780015762701800143352168166262411816093832616062503085151944754420075036960803136090527533572594266589351164558233495413647712241234088518640734539871236577628380096660654125293264627925147246366118649059355946425650249710199394460942008451846802184338537660114856854863225356060321100424797254127571664453880272257396527307360167219846887088680502883456827799110832053900443655247251988224075175930894120828172378523108161220085816786543116161919245273119796294795647964976343082068574684236983766348003490881551692051428048507351697138702612156536933954376141160333657398666956687834557868730985245603994310342040549056030491129608647308791505314730926202019839951104292396631845915336912782406303584006886285675371134419724933644562670207707039956546870309614454466290334957863131663517540732129234004164678822325632198309174322997460723090572256423778860130528414030904203230894604690014347876261056021844981057238737233801434398235148169965489710426236469130637645536488389841513960047274163347803745668682543664453258890167876853008943470054735800654608494605146278276603478039972440145449170904855613944702439500328674818209834511064358825510492197283408728751674556387197196665163404530266833287597649848809381716305470143913007021256919547381183960917464729283451652026900909762047193455171639051307836050150634614026873609684982994625625780622472016342970207184510136942268032085651614152172608530671491318600556557930802284965359821994020502389739802038665846513118423531704885236054739970998548121429767805405746004103816356801131404863304841285110623149245774958523299580377229671176335601914310720389658945462604599743422288600268657292180632803113999810412627342233936583732728327069909579387057434364187031796952220391613066533711650866073275226773851593798669587747345206779707907184959622733194941275473892033230299301416562739391606085535779815563555404783797597750557714294063591146965486206159222201408571589791189813344047546807984528812730462805834289015436369141959663071511406507168878543979953560637172446310698164355072591196243426297347956893365016086610381389571985991915762701852866072464527273782317620163902471769909337334508837776017363755043465636364970255161947395646392482809808735364416944588838091167491867913994042906544841376627297238094875429936251551950028956481304268389967516573916354051773406451943082306479369656204105995002397206887866539533927902836967884625561610428421029332940778139623860163607775371505882528125162118348271027049356007462522462909821186446032956369358297753689293014695575820823364877187917499715290659155093963910957208182230481206341340613250219765361356903455534504022833802155410899116977863521213323002929583717643945919977072614694330275713012780013508495135807710523760873233968437381191441582635316821120130094085264329455227549499683338929914741302245673505692839021477503880266419294880786094211424660071698177375050107347807897563070379652296983062532010672216294938599559979131031823233235342176254540314730218806449814221383449477314581926615905816292812955468764153491031912596394754386207358165962369874251291007889653798322278221796379299746245703152477844215590943212665611857210452793365043293159284241135738400567786803602801561935841952372347136763374196796949422370562038594313242199671394558038991651813472832216033645728013323627706139264907747582467725482906217200216124170051261475297577645580154462987706151099597333674230372298659680485304039424501591444931742459169417712629903431780616832288552649385957680449775934531762996574033501142159039328543537460277303854639644086850158200934417447970991377987555300635564479458196901196274251799692088895495231737446062665900387608540376470990409712477803128980699907446041527322510639938233665307936073675784825065048725148783067683241121170755812400487561587133234031065446367099336254552956357323655051351225237179292271813876382361240119614085997503341907383250925708787425130335691673380407487089181110243594436355394740954372730566299033358294199473791261836821068499973798467000516758146227556228238231459565013225646639026030503738968314342923228803041935212847462750928441795327092508376719677611871679401904233893536448327284928022353318494725895923334210517223845584564239989050403530426342036279255575530185807772971233471443590531989017249964162579986394910401323671773644599665831464726727652090565192323803216849530925192178318693443382122519435303970209357387346838655215985011668668353812007352808528622786682136531049694400314388355895852849132040273307239235842206075016333003849030252336141808869381861824707264112128294647467599453238386946020990171652946602421965840554730660608264026811108036063161872129231912288264963258684301788477663260236532174682376108215217476667399330289766814774245346889946648544993991390477401746933836397447155798443117605278326115546461454508954667375139566703451362305902456912017319694112629708917222684568688787683275631753570548267561617179996644692409480133804113753904750137028641451665630661209319761095835221783935353791651020543637478040147485402667391784100167293050082489094444613651179139602059304527588190706202307251922229050822903744701761754960074456610480255716111560688686699041424150615865347460515398951797338012899200644940341120265269393358494144335267234472389991287481409661195693091827073806042569794272160983449875158887974288960374023283386190464330796486608648018134611618480907726966524581090972830809105860766961996416982496555441546256872096851826418939516560556302820390818638639522851500948324084756137432751510656913875664911770547531411005297126510035185815276569712410681332198928624677028149810604258995140576883484677664103264595867129961098875421297065928772909190152827766445186994877028309789939646712541162150749604132324010529546042141082179700641063458317208371773093099197546863226381000358118418111627055273259062294280023428740713764686450506654380106458396516046002358906384377000362299719251673449703870183222708287919547839383465981364547852301077620001189191728423058682887506240493955014975682704013814026245800091801339290306690588421921287424560253950034327839975327421077928469906629332559977494918053754768403202143994641425106079185108468975971031201913467869488343307533159136364320772732872601293875634335064136672708001807021580672125831125441052931873838313479058355969855825480232303719995586563366869860289242121642511392857987010502920400240028415802892747522825723963993575075734681416510405002403607345611433981233882907569727205182110545613128343558376513367054378605348389444544099667060540069507532463862879620702593056727975488775553793973782354171470088802874219127696701727818243015771591706551250071494099036269048777822928481834192151878539617863285035175520316585426804118184713960890329841139370335650539569208746459406420050094708879026688084815487872137987050132833195969862911682023607998580594499971987240145402393223828126087358220291358729811358598862109073328265747125245417253753592924481048240520175238603735723873108524315462432506081966017251877622239893087727351350769520822480650869352241190991339301686099637327333843384089722829203211926402028074424535837416838454113565697611311335717471586054941929360316059818576072540085028348586819336246803592510859165915279787712894510107430575941942481920918725230601195952713163142430635193661662492200975144016293811273034331429220480251178089819696778087220907246892845099291515803626338142949986083990269138826550106979506300622091809254426615466806703955058011435930951688976904061962836365477136988261235091493403620131813859949271880656262388661575924551832696093737813461865745608456687870126043385765383472752309008723661046338098810596999848999592813010230808736884889255899984766835549682319564491097767859532091952043428169086049112382801353296179671066300059709662754572396361550739426690227705613385000818721918017146264910492424402018904706736983267165302467281782453912367460819995376279407156276098502065247415044919804524399688384580940301311314668891318856577743932663138763679127188498771629849969972603055676744666159165994619178208067257887787674588827483714033827495222068413016307579668923803719090721476348866439628118194809844812536195332333062428074735466570467107568613699858678295368499374973310760499903203204171350707319786489244886115914708267942136743574933922385808448363590969946054951305384870311594645978283939255062352249005643582020794892333116797150070959612103835646263620160127233312237471007034381246314571152597598926681414346371942253793356761718193969556905660355028464558406398056193614805387651672740817884295016080857438388589155273090264917568788635206159151317339430431460150503423175033622927644957012726747240153937464705995351769458548142359485189532633341280692630301589911194928353254514401208576192166189281408756599029712793950950284852109309066572471119533570829179174354191125309911434377466363052992586361212136329259290405303214832836028046063460958006434340568684938713046713212993197677607691322949541720451412447075470942570453550643910729443989065923378819888219868971845692722142410018288357896787846840205992432582475169239885274673984082013949934410731486308216599565448912389016390205653576948672523510833699726977517360637306938991452033294110648368518787951027315144046248102795625274632708912343476632119799418304312929788959964256025487782190164642293449589743182124454601710358508618947990409834420010366155256063908306973559252954725961859942995177524266453921342404594450506590644531725858564154812374203849428573429418710008795783443450522829008437141599721240206599657419961871093071035597748918267335472084124943553374036130367286027286462569354721281849919611500572435127977187803028595712033453740668227511860030270539898663497407787457012289598561831823657617228166948976475617634604892773732391720272976488913281509876174773353855758646898520388766900884074028914625976643571836052618104530235785279563344802741341845367191216532311815738557455474085309327111245222286862711664741991711997872005714160553397062225779970598863868045272290806915041943026986721092725572543537769952478411903614136573061449407648147987524515338919968965711062983457126962785692875207813082267713792931359115727726699863520290737361053286835829913583716297167338448692518991979394175267559552591976262950779660934993972070253791629460599494907249681242327178305790522325519918060720417121640243898482639240660841692497979079551520715297394778718345771634013549163609713104760755784949737095969403334655910570289814222397263642074098991632010188581435429206471556040123604137982909587517659490705011727630311513082411392663620339708297176571799357773042117451200448714224844738388852786112403148149062418857919935692876372321159701079119200380210090409957185396256627395338824296232547921737277424984495617354407873118364960613487173775278894599024051523375801192266438703818094596413330653378769667460891833189448354687899854668170828428478548472597178984085813739814919722166783481465643396770497524752234728355936479113688546765616899364823007129953980109997013905727551399650044262452526892560773008076150018352175494983636560401020925520521179214047552605208817199611789471849963770044464362590456052345432226037635950041332153094514770112523461717615460006582627827801805509754400049632909766881807681408880855080374218313655626265100627321751915973072110993617947154705297218938948969974490962325682964887213754257893038315420441244698268972729859244680492547963192714328606137107675456435328168411420511659749184910829912927129582819695236883477107784868365405005967933523464616769870871743665361287313982966721547543110517849133996024520938325752440413834696057685464203478205911299757382226527364822891264127696212327985910118643303089529217472924542231230271712434330775596432652709548124954049423623144074783107847217183704122912809326896839394667903996055920050352547192809154162227087727556462205858544365810171221581986458221731806874511191989663499489486845338549657043764480060742701099915361558207443012170811608628804293702965357705905751502005167217601454690532201497746490878613953512208222524616353510608964227079201690298987204100473252912702670768433891810139676391953384254549890330621796597302315746976654898302895529105255864882125212328583143506903848484711947925719221112914049066794720242984332338874730918092181103350521109320833822749876793320951987922711158634060333758848028293651586486619081701629224667341180985276645782222156860797294321324873063667797911857908378959569205320706397568849777095063719521663728923407169343063040541127453819781095597365606215957943379599202243836479378323171580049027347976959941130271457879666523272543417043696440093871999703089943548827631038686666775186691850035349537370423707363236551960819996629306795077517117592153048558819726551883654434336368127735026735627559547870603325734860445349201767159704660622061063446024457821292390582990406235815828963166552629605565672370540036383071040445383042788804695025809731814202076165655607783267795538128578439681276944125935079275709409552500112546643682549423201145639650912983666456099583997303298797279634600634478189536105374779580347062014990110064250324153609059693593970417100189236245414684310052661701856642005360484794835401059001979390091869307839046294330124572804513213236065322736395092392100418287791764811316314377034199519193288812953600763592097629296477302997841037417105115386919080912625274394464826562395736356950822473428525078532635149243311245839137857915011908284535516722699887367689904533715036668005479794839559125460930563596947117114265971014605155223245296311066902111528014317206188688246697067168064909512421434606193061587686283816576873793503702469921851051850765542242365930948961620743455466940375588778237564395912240340773851020506707601095965773715225896299372810198364458458366872594800565457405020262276162298002380920238055776124228136964450034740248997464352403762434739894997681368907570982058566908466402937958411954179076363664896187404874805235388949793271926130256449343506036666655956534468284433870458835850305558698000915576438175411516512196089236881076565476413907160865764765949866528368216658503726675361004582381078767745866038137242009819208712491732834029629804161102021147819054625859918360644768116674694497720645915930928754146471068848101096962175003892005891397293890195674571926302381971483189309894038739882114501969591471993694692152521699688300000836630811356144044239388163007511600886902192172318298302818105411319279164173981818474666440398483375855488799426735144831980863275639601822576217395356644541216055388921783944362648783242733772998686069504475790771493917984404987525678217466575139726027610402555034571086992430150715761749897554089257006126504711785922594524175671596671875279929085036284446571149937171932598979158936409107925235512853053586953759823905918291311427010876458161453857609528104503624041421507420980172359911389986015539518311881659140391882171466240248153157244408731860734279389155899402825666592987641337660436368431709580996156560827632469917670400793826838453054665880310310679804617926913631918415525882117008332740089527751187831215042819001936795784119241937236330567542720499286027059625203012572643828825909974498840841122337089312573199306198679657721932012533433977403909177421251974505895020111901684182374443107262084205462327912498689915133405385369282808798490257352098738330947389156921488861862808483561800155389864117771602359582771747050665768617147504228942565122381376762894410707782692376875707060421394020809569882444374892343935028544372893681000985517032369052532457498475391431338755202305511666113646364617449111037388353284217355719010174302638293414811407118356753487281119037490126642313121902778645673354428398867597394613790341342755431197025428829706567725594946916252475717258858894356517676326870516593856313767190960666014003370474605720941062239906466558707983836585749803404117807797859734404733043994588602632332724007934732043820948544516686590624026750274387360245579190122586688524307102416457045187690305177110136174074731958600185483753333106154289986207707243673831845000807861123539455135406686593732559300660082720433683568774176095218270014279913196870692122228404215253456137959959792562944308180915471216069122784678232865879416256356305751553961622422084013192770240031672274379090979797875320876417417422203688137624456229569125944392083891293306966409304510642550295789515513399136053845946231117674457957744811403656834718997710976267782170703539015660923466861978948603613360402095543279446934394663575482816075377518319196106567854758992181357708397632759195116995280524037112125670049346402448576348197054572449401872963066799129083798567151937709422216805524932098886828646945208421750808298030537297575877039666662244742464198570685120810553742837113094825370734270935462113744969053431795224648262538107982287050763412611275901906022610722645035002214951101095579526611132676638808399486580507586123895551403660848538951002811424111017364977320589911866143141689113709159274663238462758097392498064467066455842530380761149403440310881819631901384037071861654359328298562093051594501953085141045115558874337824199004144929918288341402074268903236094123535124086197166911254064939695130235670395618329310766053018589992984196894000794620414915207169143162547784542766593996761246664213852541190229585039969662844356922485380549838548197613242115820745722603028430920963793937802567619219931807697788598846276184214086135291647688102259753750787784112947751374628156153828233124758430347943804603805726169342420817197148789689873214980314744930769270693356468497216060238649469974955967557235976735677727674946226786092241060555785866991120430711852278980280452450568659512312823814883726444672233608201913601062912378238495335270970125898695147378827395465821800802092168433496464281567419616913313949182058086453356930233511380520839977127241960584752071636899515604300836057034041285878767598469932880681578310210818652648997761234596251841136016556715011422977810508145357094765262700308347657456437939529386966358873822075442573211626117099097523635961093334266470987945421019466208565000556456314261143137571341238709096252866854451962422934515998817291270611200677731806507340689845955748284122764966792223850384024654486231692993216139766165816261636024304544312549228799578357008788868184141834722804243194013982172465018312264729624443801509311078921338147419964352422483391037732291091869187966078681955796891693952979738834193753858517572410432667092001022984311490384241314029326755650475383335076412826007057154181998491364840646275020307290934316685634713704754982438492995081885384630016526859273293057005584428827519612774328405027263158923839759974016037636391414838531226141166504960172883981691715641686663053605710561874555958510552879153564450081532026405677158954228831253759681128093716897596907331737379277270401286371114455885719566113040942112521750991612330174700674204691495538312632569806341786040541025392184586354238778867698923360506131530673361657706889231394904499547300971084654048647620609471292845716422902773225614983660748406048135837388384231732551522913701553612902306006187609657246089777696495999102363236095135597830804889887332330367659728231012402081997405761007382715012624612388004473901038678264034759276230554850436635546163310821497188039617441827959147764036066424860519354255444693666484993668097795783923569449594282025613335497547618178164615861763041228057032481625834991572253598818353567663599531842336603984524001256427792193203341344058249379589380623988869451763901911678835543384557986850736608263521149550549009697090862631396191054117790457766235802882579532710694628750540425700355449546412482355273955055660594921332591288114688579525734015246808213503687348657414567212285017712094198063079303018974617972135461064310507662157294942647704999415796974233436975912513999700361982293984217491702741307233843369382363453377415087456684429646909706358927045713552071076814656506156086330100736470396140965992188974230747061769513910486832019310589680181014217086801094958559280289480364717312874622219145520050233653294597079329477213623053663408646912488143940735230217140229528903631990839991606048128506239919813435656587727428860456411097964009177053611289604102854877918846088781080517115079567252009438261434108358143271999173107791696217888139606015265762467413845819870776379893076244825964182960123351507776851280903083919918126134980162613226420998693170533376363508984876027115437580544985189236543111558614981040773545901712697885061861261869126006397520303228436312504311811725438571240099566033173723071167681152311629381549008485597602328088346343926740866335360375613499172415570211953741781076314323876730396706545508021943382271736377281365144426078333601981845510733070726068244873770531589613041937653580431982043043366053862851821936789424150831547744443002029011937021263882571102768508912096563712281643137039677037780123706477336669721224986802286867137365580378473183974636415224502849539439655896469926319890818186250490892649552948958166977257426141491330974884531806608429155701953251709265789400547306134545467607348841544573164606276174553565118467428187806765711692268629334777092089341023899086355450320330671151443748530822366575571080256286823969394689514840605305611597900304329282957781497400135668966215683942831628708270988713089658436151475057756896396266046852237877209180285418935487895923942570623551416164436719581697641488268678185233547738217377104105478759990559680865169468868542936400195871226996552265490926586718299489484223501019257269954315875832530284828075432532368567212047420003928265488197344825455708944852730581085872472284283003931864822208384713354024562227025200230560260365039323527359120255522408863672379374548081823186384254676894485377684619755328324004423429430255217751734102813056380120183678996078383850231766158254876528368182338226318790964610092478957320405848128938889804171137227020569950677245559377097032338292305138524925724474991649283958462493970832173473111896398418426480083369400109982349544518602100217409154106557268728714841899772683282036942388173365211941024587984675922520952154105197523219163023941762852812108896330804049476902101461059684913864058843380073832875818571802836316235003514031523776595201560851298721271778604824442086589138862355545994871302772400562834918652628175560948915422636764349848278671281872688542304804162551184290733615515830094754865631058459366925635705639010457867137539837688044478757710525849844666895195087006277377916321757179198644432142852283020177669908160905746060398244377675194785657885426768906230285676670783320806941121228112447887753172280032584752364775387234225154667727160617924136358858631795226592507167871395191979127316016069852373674403448909629432514976009880281104090993104799957244630319472094838227670123303065711332850410865473990705883067565561326930645066547457870194688240502126531795210245240618131427334290632868843832550790547164353935364975612225160815407851463654305449128146358655180442706231122905990533209938378493827970407109854461456465506297693615960671261746882458037624103055485458404837549338811330640630190639663986843739085455727181499745069021429512925118461820872328283620837069361713950655251318868183540224613758871514128647832421855475985253816049911606324260190523908665640429303369852984894094871093241917291109471939734563274632072171218558742197820058019861973286160008979791403747213267349279882544742373568247695787024509521812727272912017954436127115692343617570706172689098564550772102476082489727551633765915581607979475595748343228846127685228420393728253302966945790802601188580164109716329580700878467895610516144556941762634769024230262724283100259499568672530396955636209841974662203842485048472703771903496263979634096505532732248881990089780569715103325530299220986590325878113307908421124543389590305135972667544014829667811572396652916859565541510430661148491295243957084710028240514851381084497505339348983958586264904434026096567843466639264875522207584973344934455900783808807142235696668898548467960170133905405033286613657456020240280526924991161329674713128825859805257642600907294361162756620219629366979736512035156259426585054922185145217005223105151760598233302733965335512529025683452261437198525435308380629465340511611437428291532780236353956578696693752455626349906586662265133376145511837206430559749541094025662169917143191807539868519918487633680940390062886862158763305211699499979289787411723558702199812840937095600024222418331711844613407041005508680207996638225210621402219706054111149366308879531691177623538909658606214883799864420826199504551201833369854334820138072783600882583102150824064858381287749880052898403213719878922870967575312813060386868297247490660485477513242290819855495871341191616977171603516037569733035483440278745931274607560608816068089831641780732333419741967880418476382301061323574100526129577129784560394658093438781653240064579592269909009275225709281907043490070775649977649071757931996177037338738625801555532965887079504196420285787456362646751772542843608733454764360284564389497601721881962186215545974565655603201042166162069761675525725525730901114569827113921760037071292975473311602892452702047972716523124755936406869884949154973482866915826582731016010297357072468934145883505874340158663602443036467536992232290585147305352532764387210704836201298224309639809429969362515636656253548777783436036791874492735432681354794625961627117403026348709377113864215665189058098251571580149774666514566491173570701554969694180742286252578732559858387104129664320059529566828406505419286947805420187052790629890352426197496320351929130371987402842274475806270339856420859628294350023697922415050941292104866288982543025545504403750885059265854470828246737701909045654714770799385176285448124622272702154250424792974264360657174726682730514242811664515214733754868180263015235893787869141465025958419393746056510147264069785940153497561434709588388217277559698680973219128837599056451455911679690156565323406145379375540954826213579878345499816495973650779766549452571006594800729765758338927555014649223135079631273742179327525468393428227752108645751764771491705364800900818707662087397249551832534627504662184404651592214433290619875986696149305523227041499191696576645446501693602737146989501482250220355072349475858338729938706952182042533410990717926820466816002553223773636156007241467890828586092462960724550653820555430523583946170157611354690663828627864657722590127343766780782246937289534535708579456666860768286924035074846590780604250289979096896648291887589677190208072245943811360789772585596333347816684220099730681989236460129535414974782323775851585541645629232776063096021235597912929941784532884846513951246239609110623414486621978155026846658989155255968553952510645890373092123605566258840839073034596083544778918125457827216181838458753348540966690618131588952322317097899964609575128224769240668529412212144817619820862430831831291700320130177067882861953684501218003057866376800904885445769379073290580026395021407965718134349821848532450513405972579035600459284332522754382348838605011758986646121603230999183707715697141834750501816195292669979018605280298976522089495761163113843832181870292571912282312693520835782139692492667315814475206797026194887291840428298799836619585007838834924633312632761254171346921772300574456141893808981623739725146944965406900740845464129049491412014451905186526848049600946025712756600127489527420888310947580720787242893701545942412309209046871447264585436273999702866467801442425825756922750435025578759248661429498303357878171574880903169582315295573378846134484127891887010169911762014298992634034502626111806263250357907652610062751394769645153661680363054896982772154020185216526720207150905419417231223605461340987561208219487271674904008691121682352323085656737064074724638752679298402650069890890686549609959763241222863257166426540312799050020868279820571935300388637907009288519866140150894066353680062654219638836692188032044472450788587456417841276340293242122693330972517419643422046701928412174602488877727949621696157994106827902515781237437464479016471998448317877993103262999444584525398296823393834076040626248312272884120008113930748684800576149830949333345788972135164610367157950696475873500906040910839004595728810762747237768484548772338033428358259734787144936991535997484412805286446134640438930527378714560235871293683724565041029357046385082740248213939285629474417701577892758247699578656305851477526398647394574017491174412373040884811142989425557717343764999308957567734836040288812616276205459041506939681352110497838270147064309256618287727025117987562264056017647344342774427429814446351446509808183487841038635357030225782666892114676563148428513347181118784306185291470533554774250817285757860409218037718952221308177062006476766971198634562114630407305010615125095713992084895511729259295462874301819461602883700939814609183233901875913595082479398485611469933256031004721577447742289459152178254481335868414692789390303656130291265730334067889013894521705322786156693668298371702996982073863747426018712547407634740109908668460180556455356751866249997452834432978285630230210907395511038384140782136056215260808371961962249488777654204900094166759227965580166683579017760972156496676896306593171591260660748389701901187508517635467210771004093290190072282020057711519242098855732041693911688550650292921259990525972786084713811557994308746636967022431971287413046241611984132148894611368328717238894478971361870400934240986883203997121907670175108251826566520841935313004748578139109504202316388095332539078288067536113968845594943505128174838358480785414820151251697227161858905522136115321933153213855958867598769643328839123400894258881081125949958331563204501780209263787549905861099300869735456255908540107123535851211160387702652695369099575140807262802288779568781650941708328531501089822234171771032695850241880303839715975241910082341112388266033501202690721145487021709842274724908968334935606491787437078408192462263305056265132503328903362539759435610774186169098568418128176974010479165848401941089201160199196812833480586994474779732357731288696896161210392478820408479821670844885954030947531016043349224897069765202028063111403318364607907957537097414331010093811935178819550603688324136546046538825154637447455520393926365026216255409383316415691519824213106530515599417056443262825754927365225762780833545759231922067086195067597752194417021803915418320406402918898774563457701759921284109244302597193017616369792505984942369061971499489816927341245641915910230233717041890267790932228772614821929305841461829479474928807704794104463075889590509038948707913778523158985783987843125184433341123178503469373667695827874172225448696857365241612059680732632421782234438176196062507817877188326293101206789000445051730373625696851087153479659456445569439765901372904032151477340960826771192549547178745088960141451678770986628200450807615208630777706053286411287808773744637658025502992256600055702229556128336453202697507475251846868859101064290648446731100826959097277439528400642150278478598220641224984314419686721764138849070189583684505702974076608612975232521603318511760524655803855285778115937434387427560695252273580220675969889009848195061479687588902268936270778165438726871663656372831090918230399660725122088438385068049433981594473573801804952733829264834672557234760936593221660691410053454283307938599594039213288543091580709185746602491827352672717666097826290925264507253112085598581938335183479453414095816810517435898746723735351696016011674146334215408269624836271288037518815320295886738767476481681127136923079239692450228784901328112462159962008942014883765926388087226064283453880787522886557694831679142882080006269447565895660435280620209605502744778410278843452859269474032206447113570290253500148564166703483468904771638286900474630738653728323231308602012387443908312969866728312404160639038065518567385761252917499713066390326359555992937876649492333122200326399999957476864524422879925277367929849469915454029965249425082603995990395448848763658698864063489100360805483104623127270545451842897794368939908587446882334878839631895364678156788502470225273127919893817874287432742143843247442014854286575030917728867677171513556281333341914763459555443055204538804645012515843471651553286161248762640382018733766731530008778877017077551185662729736769897739343687375139065850201033911412549489370683730862602056365475281235360917389642829721670605844928095516955688210664030877486258259719118447496262609465851175612674538242273411592547925524897405227966155667926670770029800633337172005669729860016198326934428092384482485372796262904034077440797048232191199217198302082988776989636175787600313080191690222254652795131548146661161927369885532386339511861223393956189973849390876112214196734585492297749365771313323205372002878730613763895866296223210385906789713062907013690977683094242175373551352753909820308554063038619750611036216081187437339242595002768867850353243438131568021248800412588348035012199117454241283206118558436584310811536665538823136018313374621507383225287004778933655062490844059132801804543094369150523987785511943284678762495062514583373792418487505280972701622836632669283611082053620462095843162963266795840915891639609434940326234701548939488613257286157258214605059329232896543258980312764722714098131661298869104795174722303046694374961709546908638024435475864245777284445021825793647507657236710007509702531293098678869725000461174402210415599642309460848799179058430603475549783079021359136162506613513232067578707513840639281608073894436643947633304585972617640241924742852632499268187129953679877314317029657178210275971308384733013990429904367312533663580983146998910852213806213797089369701038080567217953534359832247734817784067366374198065760785536833720897112324166520087019960404872701554110450044652309315158340912233256173856828016463817725020623266358263436212110554185588382772587618602347270005701690782388325771730529406786881438067367414938490925102080353963992564134522912817463484415222579999363936396339417973374217105764994628173704753963776637440382346204893465608097598897001835195976898874621137061575124565659968071183469538890066599153472371152014845499102792204733503764460028782825101166359135178010476844819979406931187744838418957228688795189023700816569002353753366230863057195630241333662838403645073135494946813638994231213682372612187189330069717902106727882791074429421161690607381458798839329375426545747697041983254151841223013635206880942001324546868363178683547899749958745546134896837637553052084227939215504913219905891335837991075491613826197585742508029542883290343216321477553782662429429775292839728131557584225959375018211216129810629642915738928318864056481129354713620190147468433586534646724451499575151379274092885166351612357203086183384925467209858956864556153986693632435460589234040084877697452299384362769198819048479884323475550776205658915340771377476960401207465887271785156116875722555937355633153475569055219937800253931267091473012292153217853108864829346864679998399573113746486795272927421158101760380179239604451484442626785640371267362192333674605966950674235449094345358212336780600100586146629612715845160530305652614520293187890445514448408325811699610461605711061075740043230032315803951817183543629498178896709679782635025350217517566407334209781810891756789087448910616191840496947556916476209785588504046177099559048864775451434608282038935717562873090573478597860194216693601369924570504471496323827929857763777554198560530926753335414631772636457667820040919859051073300809956960847394957441894809740938483629640252675303301801874781974926946177793038762219684561132933681541890512810687148770751407819275456183051130652519314035772680399445384743943486048465642483586445070211030886046579313877160689609368237495263737796406397737551603349556797824927171097297090307655277092272060129438407311808374766942707043221399003071185653914796216722057799508611399926459434840330600895435724093040946887707947139328917202674833639443906729875437137191321865414573336147819689563192745585933868738102977707011493958035434039088012648137502200107590407300677260931615198048484981305141032296208762527818492007927998117389526442686090691248171977246708909506436924530120346635592874079566215229551904790846236614379337407524517792608981112531740144850265660960957640264537073067320127645124595911327020742267245989681324746493137499889625820324991013271463884878204247925059409900583943574937480280263005873941999208736126529473865584443453546078237924821771855423797868578928520385107853843746679565282225936896092936619511223282748048917409339316720828756835120205029505014348565668490578630374355235323078507076248956039771595183734907874706203225494977322355716203567698821341480630006950122455548938033665187138860499355093271800301119975833625968909269799636142869986850763278332179735457462551839630593812200997283507169654980667518634658838069420163420322211888913547991247477063778158140698266546059512185822635413315697931132618568724886639634874656279858542001749128267570950633187111314831639999465612888473141801068610384443970831926857870388084600912590807243307624028810428181242101644344364440701485188335697073527009430872210002777175063631600814521581108517180910033831340215754520825404861741345353657293977879243508837133985412792482908737651892105971504073017139635421224095994618668032787693550311349167080208156806880922510281458605024666590328088270039231380368130582704573102878022142691321240619288459056417706256303904916743665108630935153160418156384335026291855753364213836263503539974640179985489049324684334221554904269473309663971371559105536318804159428366002526896458503278264316099006236949199608915620369752590800048339225793623731467943238751739861763950660156259358904287354312564509334410724552537464789289219451394204669699129758473674313626121081657243358702918399275367582827830177041683005867006348850129007671956421706961439734675847632312885215865847447519908812818936900536400323714681287243251847434118155886147021952433183587899217620711908076370251005718715551199159092179827088002866705923981683522177932751087678134021646124141197927025937200681709435558028151220378757202514348134972634214527866249902328327201334581402096300044238419753087427316043621315820094720747542916643229190839193518911855442390684302185614222364631913098343380253816311657868627752170355089331359763350954047337435331713016075167305032877735881537146870022686677987964915614342743252476842045976209173209787384428513612296383268027111603098583500657071259198455127865192093777066913768254533944367991840327547023720333918961701139336877037399318184167792867462899106769050041906396424251195372363014043775967275440484372669132871361427549712156978851078473838991555951740464673647460106485393120828647488242869820493365001622356730523095692759797380487398941808982403741966691126485778326201593277072410785232527347432518994078623998755436905439998580461030162064460983731630265278342854373048366480917748348427852598059861339318574355409362001298025028117238303230213248272233369392332999376975036408601576630342222937267490597846350329308430122724109184254167036425201859392064515287511390898808719266409164694191061750808469567780545899048118489226804515196787107310480463000354982197554125830950540541951434762563697442384222130177257135046662183676315058918700442863872312401424613006215225879785093073792512778510790140317880187800281494469081125189248471108586638735763158514179216574909237488725464341817292404336978572141596416391229491863310010874296039188654028514651457331481786344271548872973326286610080939438851821020905701297362866863116991019731782681002039707734387080729869372699865331953309748308729326387509742565933216051069543640443881090098841995782598044415285461881036769770413696779967325771388078415542018641778170303117021965671585123485935466547075028068599857805321110091310332463679613008161380516109203557573820622673654940710548296221292124780556498976149753342528916203178642374709569149517614971220980232824550963444049007217726584227457237218897637021103519834287883797362792599949866754170439657856728735654049086582543265215132885030233897794614666995262878556926454470275390169019607817875445097893342099012541177901973915271259458789779701428921212470314211425382560642834647944528062348903120769204680927126537555453971725437071131551307010181037793061324870402597512640830898707349961095849212994214180717244854085463688733250138627635452955432539573413651693164292971071650902893640050411966467440570090660795978620404080849325194080077251970629143255593729923530499329610864751685574112978673190599530860533167039567636567837210731602400691748186541494488230418374987275707190559261994249735111653801636599441274490855931117330611537909743458107334193307125337178998047563985696858700598036045476186214310938846440569927478846661934569150102026945838918270171962514892742094029334198686898914578159508650092984157455267703606271339124400815738416912185608343176422834661187299807889158464179981704503659262221641702098671076638129989464981732723175173560071799381989293141981603414792156162732019325708974783833666183911953141518930298270144607137736147585430555806604248621238062083030074645798337662242155256752076914929382891695547112618411008069868273311811139709818231944078698040352807633102911428878018298112597416581945638639659014331799179652531411594125887462509224540969719962830837612598320438763203404874495766687002420194849671881021349019216626752715836254832692800525523801931730153558182333208814229347930816023423802443662405570760043376408050010412844075303087015681159118812760744278600853194815961216835386817223657013416591803669042807666332272665148842250951231583328413941321691245724527558891255665977129288892834424339006147994893455401377873879220267355782363741821825254270752465982334788896773129517190447732880788577825877922293795566676271592277376950149465376593629049140117675608519214629379090763580823095685238870350050699547917843297888034379514289394250344558155579391501343676000296178182014487196787296769087057821197654148678234336334574124433212286648021478256728336880162061541766993979620940563385764744102900842827148857010300476652904846673403940190651949808137322922513318207571990852353878678645302362181633886235490373687517875778198467347507996862637116157410479765114599380683034098895546135879789530159921289065727622575340234360990266654284919002585969873700620727287005218056527893238284189727389092685414660932612257216447347705347467170779320146537659254506707411943994077212263873648539728466854647630008112950339911383768445760335744472890360159901806137036799663386662820939883381214402802612175686799016378868850674362637667135683141422694456302180071411391629198226883246670179716776758805163617096980289816523154752657869291120944755163215835791340668282506964582205173099896262770025254753996100823880991889101171974998080619491549453619699762933320846083972045184749813617650311589573886117627535307109346544021459519293689827575869678868409121166635952896354055124458888309815835669186771458901487730380027542266027283582900542033843196001490189960174334483638167880020365128925450048742898654555317936708439078136746595008976749075858706340263000022277400060840734370813950217893723747660283647998395361177292936198593855441922630955779147211285436508191701529662656014853224225894275764556724302941543798885162836701900415511429021140611733295773354183527134977925769300996245061582143741680102448791761841036955682260681893791154861946433698894252250961779668424586631011023104281696337362309739055203669517105744779801715948800455778600063041923698834385970521687714518671144322004317390389495993713792085222160783932588395282483463529028856398434091074050551046567157547863003656752253480100725190548028703516032780401589161780299156400646735113864859496443035408439827545335117642338621255223860352143414251300452373082541189004542890788736324837744545685862815785496170212820415574267781709685516885889285530078493039705699244822756920292345213569477440277437227710887659778806799344198200318631154253059809784409070039125826788891902034899139239350381379988334330006626648354962179543078556801468735717298598395744801123687451724359818944341771266968720861125794239578625679005027166731887306737484364201200345965668880733186604447312459572873406216657911919796789490736137574373106102212393785003016889402084525509901543988101012217631128630559662247840134382113502173976403739443660515128996352448661852202335774049962363241210241856177515046470103251623081450743363497611554485739189621700491265902516595189112219020908892699329245018955930070576571228671268192092660133618021468355236641531715731047404283383178696047082022228102749398613455805482712233607650137675746008520363923413648915066279294117389727862205408421868722220561738549336368406364288241692110478117242501621753880311422182195183933416476960762296531141200569793374472125020932509368441473068201443585812329226966977999711709652391932485257370082540252681041723863192969003062373126637066107268671884587199159437922731797636408784839362083319508706624558653648051276991897561283068753618604872447641818514285245262011560873518367406265440047641450292636062857376938751748527506222758418749507382306978495863964081091341077137453807627176502533928991418393185074619703073201632174560258897493683738123003518463003140777825629893756310785432846129996980232465337715932633222422577875328678393224516025122964913133713478531632613365202636507086148661944365014311605479786207306509220919086784007553140351328535288489082761108444095086206774927765635283268758595508338915666728098347383109065765104924186892016023880051731367959483737542079445477179084965560433161714625670578607891312980326917321160384868875008412743884656519544497370424087594953321652743391421040843769786336260527971128374569895305951108731752840504514429537070423408005971838803853325644853015090858632390116673005230368700211576188608170164637034495135803800569230401212610570853109020905403708840979103861189686038544173040124213822176787051000710725150068377182600406923400526182493116512115726249655566711020767984029041887688832334623274738898864431123573840168572438172191741576044851225241377133095852260941451440391097836802694874165997581993553338684836972617964073876667805249992628004167910161340936769698895658842481139255127420928460794923055446851513170074185531102239230940535980342210351873753834846396865850739904084046682781631146592723787065074488236882492292505300018708052027376912211521991957178607596111049888844253659499734946650644251254154974529092797185536787195497982264125355914035152852806511134795400433721056380615484453094990108272660411266450843140095967896958245946883972541696630078189769149325911952885745056860091478071713606590920131110107052073938720101392932566155620637685684070857570644509501780953026634189163104256734939661259908618174407218367692684658854484842570384993529741571621598523246337146101368793714502872334507313837103362465479281506083908154400404553120421824634045005860249600549573801535510816022819590458009404364528996732510088721684006414285385266049166142903038097159587045009377428554944828205001178294643288530637650724415221252688790098729720215382681515429416330975109579967494335552939598033164072052506812917047745854319809191193165130928032572636409981833539762680610332887053515128575760137939164197771021249920946849705829012198830354052459472960414410317477349198632956034706722885512012820528857780101386029304893228225208372778678491049773203291068607035292687744353922649056207573848630427979570482081795516639878338286740794845847296521666416682318180224828066561356563934397462501618939669691569235091879215651317212478406652652642506760158474706388571653676074282888790696377222160602290851407229704211603814644266871352664796449652742668311884546708716509911486773307421906675780719385282586863771240671037725848222249374340661531229527251589320283318696798340448199633346154828877288559188357483005403667403462105079395434272406208362376804801588178624495482241127497347280516262571260239475368458028472098927173612620002810269997716635123524372176580477061737352098989900011008501978052124844170508343356750632980732135010756532411814985330799700059074600326455148690744891878377415515510175756116083704006410850532151154440707642716711885119757001595995183565055841485151474214203856899638077102430868377056134643435476449075458425137011691322138236510671004994268396365436128116811952939230919449364406436206826005769362331447906528907696976994236893483861604079925576712150210266956262586871297140395741906242349554310363966014129031308438197414546844368191520035132322245188682712378969927237549473453585218962318157386965153059902379691134910412188053339215564663793921905534510662919926459409042381670711831762795027125207622277951517773934585921289694459975759654382556538969555170051941463986576316601993330677798971100731554833328815736864425269950926761684240817748930088735081427258582351371778397239656305324766659041995067809722758811769974204343079681076104514204673822799749721207210232483153992519735494186447807628471676904794846712964143571016161039300196607008802826753633126547492784692142118347917518343869497735081564111316947686828428235237918650648898855461313122187351337244839445227725635278320240992055384478619088465793959613630317701322815297333599168148655057832156982485397040374033084079688494660669069543115680654058425986435526232090452697540134656538910396529792244841130349488386137421479722809624260079318275221990534949014556436582888675795278723460538971490221212947989428179274697554766389870294669768369890182581074912052764260036250798109219852008382087776317857709700067208446814739982810883875090363604697276081202948358038961286379904256966349981701135919881985051401973885523292900640181901201222794347774685458245951896406926648129678762645214900164547236929718876246835123579322370178505740821759341359100239632685730489699743426685248837159748021952766197177846507496169896676116094377216300860426999542493884340695058344542268927311235613361892460257118971086491573703030577572861979893474145826468496448877115388356858924718090231579478024493303784563017269862252500138638455927332146399227438247614488310905043900920539334046857883113766819297244716293961549535998492958092306938322806761418658877514650063964765960795021990185079477572318186973922690908317628606491378839112400220634387677059879760526643528677826293339748705534505842553800073015432072073724256950817645495607632754540586800221223806780590562123985435156096705088934911282242925037163922485922780344733347418495044900054379911252288461950911053195553426591126382314971921964597878182795412672237293580389096554973488805862147618436060023700219186732776740050961166447253262639826482093952331232722380792318381143682092134464120610509614334586020239853528203213370720445259741360593194049585282934781555461690551869149031143926112762026453873483742875807290203198509590886504807357349317469351019020965932351120999108902776815853875643936064159644006414203654486243683192647136139337420743141155743338824222393207035440139475242163004859002346036629487943339004755414965542816529546588331308008726333615435319324523060978225861866354229241723665494601535920598171372805704590447253220133621636164167849726400906620784512067773035315727472870143825919488660004997725837005339464341107358263230956277296434396489484814373538094556799161617102325776995006063253370795733939894464954439762140948507928921295780328270928333874166301641268930496553268318767242949169355059437501514690606593528534382110907692874982413964991730363661955557875817511397163397440907428820903384596874522766453924302793688836111558775566757426383412003606948269870829791731105741894963740818107970429752906635370038985679074140872837752906786801968382294355526289124137769457265833448213957366665424594266601771056841152563750825119980156226591148797869129581070795547848237916172419414572654691871327895285495981405963924924868734477006488189774027677284502476724597144600548366551481834259933068878834331976655441147995034475917388951588858985869596724899099412899095795244107800865943775023654429767651219331095116562613504414825808348267110285890111790565668975040269975232100720706209030120450686811481542603802997416825888976110548738193056805612954074760016645750470117319362243750493339487885264166184351945699154502631747374486457966108099910352077453872487145157744383364776522481593626142926132105642874246486903744851161734761772045708744011285193206663976924910554618768250876770005355216789725685073673992977252985951624434977624929877130083934829684491861090367599591811366831923565840034724394680031266007274120842291026503626635023342476284311162440836770356206338556688712846742364237080906688666797187724812524060217892936643427283773992508622086052642581291471746463795578571639544912535687170760018343276623640229241829027434277609231167325127561232005187887004192743283920666608028646048991924300074398145687497630474495021413855822155603181177974677246723922293316019856110555987757754871281703731058839665882859349927481290930928890710671325973967123162725044801892720465983426847981213797882401519709026944990623920423204856242705884744484446938922635156069084343978247532377091232481659220118120843971329272821271263570579485573466096453700464186144069790097393841606087738098344158102002937463482296997237318087270331001281676178614017217505082505051089110949517261714312032460073597675809040350869845968271765836308904433919465858597311411460097666299014720427995838500198777312924515466758291242284627218697189906423601766048160974575132502703348004269212492134268134881558782466191142778959482519402676510259517741420948680291005591058171930464133851380464488145332489364497331067395545895020579721543636671525851418588377233906643261162755727159234324113973455575709472203490753445681658930778675310562370940259097946658087134568312249097637973164190939171889114140710811609763107294957271445891119236959163615820182734623223841789252778763055698822145143781843891052491675163113488649819689576835522061821015969141661449359333413741032418702548501228075736565505634982414942127740798314821608645781066417391103557274847793540742813732556532243517288867973983596167379673642688448702825950131077066535828320491836645044712170729468301489384533191319522945258573981644453249184634846121034684953852586368836211966475303541665576476947911765020883398691917327426416151351287317344344717857467999309280753103717079903724691722638022473284548609220457098824499804516595112236688117105781906720069589226417173615687356924198911379605161983822943017295203230445688816802873840025429485050110037322481054223951212586316688576306552762510864956230216761653228314961298651617683752786660189866072580674555497576884711271858043117840231563374617687577364025664819700288384255308669187980407274480580588016969792286758294627197015805943740612481885331733519481585344263979135844367469992226701348957000412317529064908229029081774639411077800234640567091328148317765608944666479145663032856831566487428119965898962071267790396318554771141092881442023397005604836317074675966519504862667205635219173457523919668127401138752146638659248314757166805841877015842840985740118611750060881828122274096615849830329663629169354822653334278336522133255481031248797574650271416279332823121155497971289967182379480066958770438065919324787930976549004188718673605999338486671639528798933740526051767411138972340237104808548387969830211386570109408415466101595865980360653318461378605512613140585015017513851579391554533962159077033580907831135231884258274644410337503270541255323094340189521101685709765206871182058805268823698628061858024199693670700036104103719808469409797349364587955962448062235334290857075059734166571589306140835754883484874251919882523530381241498916367782914587782616074954037213281298504550875584675410118207911205920904612035202118840374172681969576774483958229390413199168178521829780767678173599591767668897301690803748422912249885061783373092143929457747808469142111052904472282727122965355629852313000865061328853933220874499072008103582262383868752435836383491663180280639602840022332718800210380300962946107407875290762493072391596679755593966804306047816751579184877087587328670661743625557512319513990176000883622356302867054489223195761304904826366623929308924507334989472774301148076193581503080219734572399994364636534691659375726514403566817280080552919856908800599910107067015924548456531498367843415527316007332928760917109786206856708933501823793551817303663230210776435796371104371071315262007541380844803641274469420063568301895907323507090397026826078777459853345033208261945124757291753443287952812271389434857181487862594842797119106083513429919313848085529269230824454183933926816805218825259495889749127026178067931168754388318198353742072194208718703944727748187975270853288261617751990571619335034203390749186640216608109372497807128172288349628375275988712451598237038391537300827049604205645916323382917307590282596596356524386930632266356487697893017250051368774942411340268231638297545545331064141103193583061870700148995147780808862721040456633512766194796423106790084981394599617647256661552776685096451253676739677980643851986302699863282832039914575909332761145986800127455370840465589432816489992801330659651328792542401134564422703678086233026482160386895844020035946734494760083443318279043127229300118066051858630548849772666992886992677174991501874127676222880372152292800845319839569216666318338982664893065623791956779303231725678876164548412030797947845704714468372945052728563207693133394654893708484477923804785208816913562761404188569776887986607833183413859045032042191572832286842635696061720786484341409694172373176541015627107108420292459852398109999483526865184454882758716846722126043969753741651658742479540936379159379073114798848346658726201262424027769812337505901478337325548747763641578680952174419721301334160075126968768389811911224495260185204246981707480397930409974680553842730639681633845501732458000231436854656454797683574314500266169524592227358634345141201090073321351234460710123928083071528127321205749714984001062207586302005225128428926577852194413327803612297491587182216750191992460736259583055230632536247476832861501761926033617393743268365177258882893080973502800493865518529827848656256347378765132568388165212854128338746361134272289003564482717261814041701429218855146827084551628865091343039461824066785610954283348211157006638919317880356052950050540402658193016962721765249795171865507817755671396852033248175505248365390735452417789296064725537888637666301105229546141696856999006839833558076606202559151342538299164335122549374655687744998027933140385199128930643708474127334438793824328855303558694186770708124220782521093722616064715261811479123403461276552183733284123441784523249474180766743104558144290946595394974411308478760076976122010318200459164634740327772468690798149274649583680048415132496851902809593446498662710137882927473662294347988429195475580524958246932715374104337551777684211618999800260804445777497628197487736802329559111917859339133853436285735951688784603346005299844666171052873822382696489752694677410375237308092697898275402597232480321715053854390040167025839809560446547994980645814128330024683386058908184906051858945853368733525933480141310727659916232409190504899914240900098467823410529515396046897738165387765044631820056913968043455361307535179840600043568428493133753906984990923539323507849302619149135721196494632002214691085422297986237302948335454037711586830545802116691241269767035209114062663498320190374245681238857213394920922426896939182584795627298648342693073380515109761674907644623108928933827119770296723347695599101543184390472624863394090054308361197513775936009051570763213789982610506455326315347550546706123795838643249530961575243146427983063012486657332220734779554644865305197096270699066252996461023198082592514621861452749610588762697209327864181541598422115385284316589977869213104267532906788994335558507337979982399011328139870798037743528424701584699252581229110317336292916819171827158910321856351701493119259533193674760835960548721171845909050055016274895586895403609594831728203855551755902569032449660460779146768327616672432971302187262345950318677299088877422443575560843110758236192151633601899791886131094029841495540015470146446903781705233848118901533744714894602513245321061493290303833070921033385743639094839540460589218062103883663263397776077154689175347411748136302733201990792916606987435257273024667567059212366735674249659505054223873902837097405187302151689117129437108211383781472420120031297788198470532123439077889916488199309404629937073996132374591311120663845796916275725078164223712110823580012357309914629422479673206165902221076845709252515010386823501125500484627396141612804338944466828060702234430503202864231658829076935540247342996037412610330990156307382366632308218491625443927443768449829431484013252928980857816708126500189128978760863493589282122582930768575096524971888825327559861647101066924361611779048590670962301161546354643442028322827997246289568902390273534505107833980333994634956152967926804917926210957508031380896376792043104089379009617598377763176633902808735025090332876248925552508703602640897996301621008596768719319891795598309707128310884990926348235465424889160519759335241042472680495650399583933924115641851624691979357568264129235604615484162399465940641362524490562952286407479552794990982978282221479383033754836885768556068615171621851360327598115055529268361088427093484043788592144954082023561164221455229792583080158120392577497081851947124349500215093583225615595360291038332825435267288202439315982158939337752784218753840657298956085014617627555880063776157812762240613108543143002897407626281119494760543683777817684060235968803818206431029626387069630585930302444752128873863242409532108771300918294336484595425733818774781733371233392113349557680119359505355823694489785682304910712235586801505930879940610713394871446281153595548872497808741638234684130745093714570281541892496121980000373666701989219004045146366303965276430075001138256305934259297663298502097503063895724305584156544716087089411370306578745654850239607222288587390306252780824926984337101556411696161964419036825492483313333644195418431777535890397500965066150087970106526353828225623365451321040300978008637073783345925907842113074006583308471502077492261349836952294044909511203837508447161587184180669139382581709654155033619993083061288070429262155991959670539378346978817659514661186114840581076962111210986618844480851004583060381526464180148777643652223778668741483479707167716770272538318941323418889699200008896841467053497258737210297578848089633425090106063843332772579733162051027211031058271074056738756578653039634985506168612862042224608139955225568151280975609232921214844926056227768914042069588048417278242758148276470686688759938640177017017667179382725792966312954520628848918351482819362324310512220172957822056777625321065199336730308655156450085482590794173798231262500958484293137256904752110286505707271866065343979273562320734411795427994296627080357152571887072909997621402436129998877852628700868440406385777159117703885501639408062618148086358581520564741109144909448248090559142681316217697892908775946959924955128885669152840461376272633651460360051786380571203557750796517525354534196106943531423938724605794824696538082349403077693700558994999541896874276195575816417787088897588665050675653941623678061343395151700261520002432650831007199513931757698739094109076488842813695248050543509396545812928780027411880898097106119011349307413988418775599259557273701354025241198551311758586736075803776543643306896236093293923522185256943112237346435366819459150103280119404943661080041383980314961371997160477764952828184259478772532661033344260936695046774492044831760832903962663312823617351944175725716042534314586004729647734679125635223400795125402653516782501745088330834709486082702750641783428438913549950082931588270490841316062663314272841299798860537676914929107572386992244134960998912403544851199622753306648364763806475158483463509094847671672731931464377940993720017270424100270974910034155600164197151583386697319278726698497309845264034082935051225574818376210297191416535394249112405258654853957250413445689675410373064459022135487714056310345076023088230719695467688694621647180050195135515198300476460570123763441727454574959706957088327446698103385297382866028704358840520335761615671428741078666035745109653329229109101289807118036772275715061149177666045928360515128179024278152310086900592094243742375935362695667941756850320314836842740781569685829457423507420155361370015538032915964152939731226236353584140492166433100348587208477554635385979819327650645104000484648162929538328702723459733526966362061851765832117646048777709951424574771400168025196870656074991087928839506205024851359704346902429300830152839710755190389908871363697712160130370566317202530448555629352849304417103742791021559674901408918810793738647129396436985339175275174066495485790158188002128405595445188041073805701731444002914607958590731221083953515654107676584065666588140353680954088354351248707796784058917889080092409882937817911312923013963912863598158369416416145605967667062869343758766389520261508321057686675174594018949336887217948763171995955267366713998102209579977876739402135320531392372175007880610968226493120754533179202081213589990800979240430542167877371983054499051756205644872792269663275997948010367630958199375489685664145684949655254052766106372977957549657808257863690745068582174200467590249433682690535772718911572167902023028685496894296127915772000740623640414140244548537990038459796346710023743968214527069113977819373555726875783181990500902608361960254570478327405439887792152695801332007797277117990178105111415171189515879004124544087076308777759871098061782267155690115454598410745142259708695634157782232965108956720542546387391128300661695025027893984739096690543704828306158559394384368178717868606055509255425456976344299060094672515580334061737655705646188181821532026851267715285234683861479184863524623144414931318226041892332077184563372300813855066857162329457375160869745025871489625496736474401873881095449699188344391924397723733199434228788299338552341588682535680606679456483837905725417840155602653841824539332768618965950574188845742158611374641793148798639974978037212541825920278856657844126848572621746637341270209854077059767855546480807707949817506794863856739570436141518801962308934236720198438841062138536298488513772945488979747872350961427105399010193509491683069837036706471342534066663402858286142009577569722126932297647298203381599701971756382826698333305913401894985306169821736736723889086673187052034454271486340891166163310696930068644896549470247706418916923166191647718681830035490697077634745313949262902988654117533966247051463940962207704796741913590202952756080136094608928748872777467911299292831087384842145675838142992717624339625481041442566101170558798514388428593769461180665643429782509450068892609267453145451387872229395674117302996469889690886318287590860719211946055891715265028930815956254731395642468397336215519613081143956372964002409301183291612925643766256007474094536404529418064402308068331016031717882892464841777840245705767110215634769226690772489030550258650669702568483010615272235661127001397465600210814458385319423109615877020301986967143451460842112470260030709546154204952539479093806659077650672718486828012037822833759203867157463264908761123677446734152073652319396677639076746589767142371652639378495559933849035674426012182995706960405006017634864050177760295871961721515548465394221358980759350053922670044358829437469059404968999762030709675855980875153590144089790471843172263712828078370263157064442400868723962601921847994416233633483640012678311474791015907807745891168789466675030307260905753363205844164695437949816171027040817260770735283213702080035003798131060504418194823478658180778020417963790625495851642148988194283456925535896092248193478505564403768810182297367995644134487839203214498611826396239619469348167880176374510478385211808306824766496999222381115821207089633411244057091439309456670443183931197683950810859999390010269424400550121319702047000540154421319994218610826049117429415890099229990416907884829397554664776803699412047531919305971474004828344522534247343747482929941557161643849060017155671007273122642009595989180964560579593449965805470303778622367892888210536980286276321006228181827573021867383521872650262675491943933633823880024209631312097211721751313188540186193507195552161307489765477346251181184247491925648452345713987205016339107049576742254600019486114072690503991726711102877215365692649880216487744597088346606584849834813405393749260837383279681407842389286863076948048970495402138024286025071074744606156321772446556377095224995912325452631094784701888376511848141566019832862779035277396684606948100451866553843936161124577296812945352935509316521303465487628190049980763609748017479583502282832416613540097403346812698860234549988132241884632955465059017271980315252731359943971742750514065116621343888330755244881390149451985654700044575737162368339479682178105426774627149782916005399497227539239411952603421365399915284020511157798554978460335321986634880396496824726339388958328519877666148873410171711168714172721557765511413224125802422445198922402644857530884396130351444737215407896625115555199818383349104243731169130039011462638567207639332841103080190895951327098399150352900029114561197599332886688743351969229006516356624000588185290956928994607487782514037381838972381126023523437787570512966315462854545054951284272623996942428206160259323536494131677646288622378357581816642238840591225816278401841970802262995396540425636502886005782784967504554971928365499556230027274454043807919966445710584580014511139356774979240743054351491611502499367758615023768326999084048546833009034808288200686736037600522065672109336075785529563582856448601939499621933163392659898926110119979974370268877722097302824010529607747013812224764062718568674430809687364001205613315920076872635874651812873831222643069737553803648335898308534696686758688536885191802119726650477292913751220061173851535346288004374827871093856267475284854018111157025464218181742876099727812495372541287480916411769529453107816726590606932158478220027535478681728269477604171536703570534799384325729985802210393973545041231828815622872764629907008379835658888351233951645725392505401157876902852826585489753959890016630449061520000358221389110404443410943451105726427164572317306476137921210319042806488376834574034881284633547365601876247262292563990877315868536639248756173244211163072134543611180718035219372160361184268148623766697941286371164490999934936402579607238715471868598897271426872223027309049183620539517823949868245329767895804687378702721302305242209997853374769698836853549527423787893745807664818249711093216819402518510805423026772473804647403975274847138077655655314226185844375655389434582778109159264988863216009291555081576446832870882693848826422031385170705698049199550870326842394996174853926481978008141481608164158634932998336271983254899142206218799005232299774896460359946567359024230300802545332647130053441624819936604631477550745885427141550108571951502710620661866475930773998460683992883527972398892095889498399554980783458006122465127735506940435422454145557197393116539636527063032075038447387919009976931248224408841775679788670964772735391856512083375139602102897124716372655896682362583108883473828828820392477162679921729960329844362977883005243724904245240296899614418625241433404749550612823627787805618785180569677726204899948071882271946226007788621677429962941292384514102115385343011486817193079641098033690535166139077469216868459992782848228435826702025521932030266429765854722658661750717160173801994303388346773889503363285139347879401697114516270860583746657186288874589695935288643062174105949130343570781466907831640416628964296151617701730636543066195830155601267519019459757833073906340036642626864423153919201161423247873153896988049907833897290824800255236192993839188410969849996214923822601806751107712406675752436882226636034585708608904032691423432276960444111683660776396496849602323788545137510520178261288572308716892353718961191734504543456892248033382671710170138754472336905340787990092085130467358637265932357596763301115438364104526499561556458529958502231771815678091354338102873525491814587107699048274195297738746868400401684949183065529596261451334711956534762358238196540014192070059656253236433332311130577853905678762805654943190875166202117018532263085157364578493223912571713605652423793628979498101862448672042731604092878043924007342976513012843524885510264552785991811969929397125184297053414211171305225268748064525337525851431209352202604172928790449472923406071424526278795913561443667406349681165930200547805507845301472652197777203214156222378309539722489714360690641713154089747895777547124107574453501695235308061624612852612827546329599449376418862336883962974747292417115947411931600258751055337391222685920666326587785757828303171508394673442998401691397527920803588490824805701162320871541998121555321342361887208171467136913541032846665511423729855553663702936992891955410824107788198771797303501881608475629436502563208225674562941284991396754049530570795787216813911784410496002370277616510589024340055988085435063622488696361235434835013263969185960868626941348254853724123953835444640930753326622546384038526748840985006093190760263376610423320308535014706819038356347002455395891651578630892398313265798070035702598259098081822353320616299451480809808020575449137611468388944494457918030860808554110446208587296264351382815076418883177754879692383590129601544553786901591891205733141368412237467651009785852873053329886838982070276159136757674393427336095590431900746291306585186107889564917230059178257140574504660812198201644768292140903380965439391854648724530701905946523891572735693525973636335710677262092520150116241434053978570222058591883856532558581634653626649846055562765143246803347203668490796159236836456776322051068644725943219104503638899165890752080941025606652874571958097182449213163574725903068271299632869781873068091000591369577462444520796818154689095862176889797000906029322314807436611310760576177010886942791872069125713342654094733993176549113622547361274472307384661098766966535081019067001892770331184185085220480663707672781604011096326785639163886750438201295641025737127776477566671498886361881278721736240536405289849326654875783826349163713692682811934262938576100161282767202194645643441917758697060711773989965479195935732436642096096312409021978565482045483769790164259031194254269384281478474772590735394201260287245345258100424244611629709615113061142257006323755709111891580298777172238037029859642425889835911540353535825769781942647374540632285950644298183295485468738379416873075223586211652749630596176133995871973866831062356357475561933291667749132813106238125997390962440338541007199689068145626066118478364138193252129972940990701773907623709121533376084863201731556218201200625781457532050426738352474335334941585285076709574429101819870426112467419948669217313551261294544848534198307967111072168469055813977659327285525983940009464198765233594205358564500537100731223483413141250510809994807041200905632399856615948201219363817368260820822289041632153174846030205121976282434879110765682594183076338587911440786852883675943194546709190043639487073706003357897708611513816224887874994834631934098818747572357763033259315155226978546424544341023277688991182139028491818916471384733818640535760728232024793673258638934871862508138521534139453501383230385918867794371663783378365235787241319469387649967271346779575497063787189197650967642880556991207213056000177500657335160577089875729400176886337139599810126185309527093530655009192326297382252163308393166320975391291066758291109300106310020611846352141152267708462059443274304902458323547095304602215423367685252927271474757527163870958805682828010768971025933138739603459374407792414510330812235825383376744472758722698536987426287667977348539878113277469515561573207737595966693097336459173154539247952810548931433346892933844270819767269665254269039502640108846430734137474020367190380980140941990710264480611022261110899623685364947367857301790847317113376480966584963501548418954651328490914974131667852344476046615602840535107929458006924653330014169400722563818282623546490642198653472464700369078450374838392861442750214846859519420611670187702542368535692432344612800628822106132485391170738201345806550177587964797830058878192721162518530012964425809420740640743228428450749926149551724886343176532373850403869415639280078996597031151740270702643995294332256628093153078249009887856748114192098350059489976919177146350071794627924969085714933555041910009180334138122354556811016763368535088805741451914666936548703085071215882122805453441066507686442504402741083963569114682596425411838310496600857059621224553700755112603034933254857897591263103384669493641351292519840872969899252631582742412242323206377950992459548680926670173096078950187199186285781906205686272586033076919896359256088481131102838208963906158915559463254131680967011318010444472673688685376151818028568358108671125035970372416246790898551103219097942095861018864189333550599739610950891630783318340975681020176433880294250650516121659161080786486362788739889473924991267174315382570919662043414116213988317515502382724222689236844375313935688141657646324536932839079699508849681240125521673030483416053609122654330943905657386753305176056448251878360863213607371168856016498744921336073104797455663179296839382182344345169584382079490569123344152418540606701368461321283713693538708798677873172352222212575075254148165271229519418624673953846973775576773763506023234687939551269749262442902756938094073484706580137584569197789130941685562958100271274301964008640483929459620162266240466151026389486144781225146629509514929502792685993875550532405205658259256132861041868342981420099588930795427486044036565223493975760208540138775598386874014716225601967050449461606763271667826375036482014353944988623825597277064909501052190534037736632079155015484723507919093338532404194675019168531600529236633749707717419402759443178936851671132829808253454973936066268393779044135001580928674887519204562723382016737333084955397326027490334476997814113090226873269236417071734584706459005823507070037538790302897262000061001765767209480055776517920538219000608764600147547042034717642772603352651940890762482929336454942037809398796191883534566112958383859734429946577103946714371388125808561501256593166473533090545936753816924456374414004470264257940331386962158745744924278040173831020459786757349662236976191757063837914081176888649376120757150145362945039120591244098355513322010136722189635601062241501560112355533593837831076412626434212729502672999465553090418855583143024165590049851975723956244532747876062756158894253709632502711255186304408222804770818235175994144285847706576319844222256868053842630371570699870650676372750340864279197752811790979884846318043670539223027293191696023123461673452049311541155433894492204531289018448690078967258119472615721438114242548433839674585615790734329616927055654276057568501177108225553806054969656772540482979754310794760055136709275858974345029656451085058047667823520921146196187171217484138815181189795956482888422196557698035168323317346026175249921537945643464683149361758907900708791945037907990169832365978334444009544026216382931448753327627541442633820276394995105837559095854961067676979800196362892769573724117462183266504155550639954981170917325643245072492752398559312253659836612761936847546139722709181372310525284117956778523699835903456938214791655591100115147777847629768164499358467936697347994602334211691907895315623056737387376841348425862189617440741336822820692551286690914575259356222235379583292515865677405714822264090447616003102655926479332991505746853421165211111074990830567090918482705128653584531224473138182432340608050478433559604402579913615221938889518846033401089380590408683652275644116227940013072732250364945411343401834727453674537708249243819798740407597634529546336325819049410892533802595171205542500237719369530521119105666898748858306555008879542819905512211478850028604333083477213997890486180472873148960718857637976384288492190393185483397684868955687310438490728618455560890926514925593516566933906751223215720010253333644064748456149475962660568607451750206333824976937174382232761070141391318631765491057830921435159188049599579946874745190535494804684161792116842234185066810371341008915340494559542053018909036898118343268942584436014895171126528561054923927041261869101709072734526085170710169099779991699459100962705945352766643682021608384408188176184171506374562260525212260356465900234694033993178804861909523881375027237727613491352879976858266682653356508832105133284398163982319299875455122644215418406563654212736251280670203086683924668309173340724747570387789546408294959010779619779741195344052422371727167197772120718267371337286744346641276990554311711626499399153802604397362962209120571788755267075577785218253563047571257685900161073786230408591100901076359878691015161059369726046980732195596002583847009961168943588218500440204752005616492607611822513399885387834443915046937513427206615535666046979371134279500023950902890643377841386403445372230686381937681899509255680407602140140782389467826007430304019797708859933213460861590639370871215485139782113895519467834495498977326511308504098392942278100989603821214642052625842338811379000029176822998782422958366570508039066698949049775930025094930099659197073484076197912905449184417085361540340953298111705194195743467718577777892879579965027235385230439405851218783013725056536630740542159534813685843389974210486375118838702502722196471947465601306060055138919578448593800044156069795264508084705828656708372567507305479066825266421819168599847453207396412133977394970030198423495270427196378544289397481505847446985136006895497647413512841467498592163754045348940438255585534704912088270049007535552998189772511323246041420639852275129482722323936245889053081083190876980918146958088425244697237307378499879852629735934357058825655183411036295239421044015254250107412064409278182170083663133593027567322436767412399440232065540102504113206413107030576963413380575838945752349730521741315585954183590902688874169981281745588256562456941015974158346137820753734325995724880074283449165269775046135348545876956676393969552422771948247478620970679102264974501961534190482275084773626144727014011240075385442169845057797648596110424315272039351906797025894456368741296973688865665378308057234875295026060081562720807474326331103135425719193525574039309056152892704099340797423033695197490349655738278423814024120005659721316155254900188603013873994283134078684910084940459609660435100053485867627663579134151483505092260813674848341834708120125262400536039815353192469264581935323051666583995733031166977598567172656278613216451898484938305854709616134285276471658448017179540535797199670230104308689448062258544886017556886338489529610611152705418751352759552951303105357346346872357330044882656110619449559264923906261734240614388755509713915694997328311325186631968345407145514284290121920503412642336035553851068177873254647831300317939443798043161297683071417406248081345318375600787898381669937664863026817078549652288059856280605042894033713839040080489207852639827475762285878379919861090721361446448274645218361390638892993367168199114528151352602069410333450045856344385267407566244597066363793961386656666304819694918480674496056679231768872838521415001246613728755741731559938108469027650450076266132091892910601521663770521138999668830365001087368992069546057344290302668525319927267798931025075731380472390656744693848016098680186292587314856703848672961231788627998742131684533310386860551584807014909753916686013280158457808001485132145577309337196183385443377213212676406861978912341276541369201972942167547972583275751779185776431592054901457726804888324709767093917441869249948492892968949787635620091165958113509535736858873873466909366949996067364890860311700541598026278929558530830001586713691165315688039070488955875958410359843188223033668987170853706095772921310037528581811631556296209982566771251013360173989668259389780198554674113700938006015139009706738186964763151474577910684328049535430775014039684305224696482088021201115122831721486058399671497626983105721129992736035052205487479176005903187748374686320802222244217947732582751122857111599310392844226670659205960250752712907530739444442114203830469883590898945621930525174200334930789765428470322686198547215849774546127376314477632602856835775719779149235553090539501442997394985806582064823755342823737801464607298630465953415190317822114053917871569831272325186845759551993152147762811382197229157627574468478698982527263947575210692489179185056180841026997895224990070794290782509381178005612068150048282031117714000769543007305480580749320589823182027538608781800829866759233804083627853550784873183202267175770382415962948975814953472923958293055180814378616420367835497580920929408881504164004553865001189546517258735613804216580893066083880494864456688865751221234410607021920905656087893793622786010468000136980784674999344323792100362196750130778342476616701831826966511359525759100418007391289579831530102499999281601618321161959546681459356600701071179698852250970599562382680057371312276402383537995585789287985168068862390349064932862000760733287330515245425612618904941213131570580602785703705390834301021859818994140060245610462376754145542037008053664684897931441214749547148911773226197983438009566209161370289118425789809563244192395364038803806768593728451211867408276839502442490832808168658520745219368307004717075768814117062629540777750853776170625174491195390979627222963824801776665084385253931459422196501348054316559885967341758446059835361726390646497438586721460735796043452144000896624912602706528264105754051338170623201585664499590283467102768840253500085069461174435826135795389180712186440541718351608306519483289757173822224598297622122001531921648871811481003736830885827525102172684188839508985716093717232642480027259565168140988692135908633108469424673579164677720899792191869872896340304019921442899258097660679158818777100391778919671165377222888032186245191363396944668678628443556311747566760130900940550919155006516663589193569269833268945739560275794393455992878864042276902931630724927935590322190802355614054582178375996556090560719046567217401447604155179487333927578245894663042781730416235159921912497958582937696955545311543178533457109369181673118226356511794435457522624774118729748093158127681736049057077140380912697165290600325609621790503255983724549530692877705139925086865302550387743400856334359963632535200679474503234379489508244102719732826832524334570832638327437504669073792192572131718616699101586032354152254792933462963694032123213447217065590793856143118673412666670818027043246090203975403693426245504181525954532886875033448863268807303579793288335453309319789508364670423821929556696261882377165793283235541105324492830214235433666608752643680676028545886081517372204916526865558088288406594567344384945518550987960386202910132604853537516648811128466405286341056048885066021163435923131281351617514426091237066273960315158022389916244287854848509584985183248395319595252438026074463362138734021969604097272643343606647057103415762773216155882733758540715938570361124577580284388896528112453655414049852797775821665219933489644850850957565313767461184569803115152906713426998251200927430568816517088859951542737835464027969440417483090191807780025384624579501775848627992631262310758890913289787346206080596305103645886101352781460674800849300789194718063869370166852066083372099371330369148792435126670034329942168176138798237929851975152508821771138632320474348903197373831949199335851055782570874466387470436744152666216521213737400427126566215785862683298331712188285874497083279263832171636746653347129610005592945441672214346471222425714581649183894732580829424941962114961386481907205612535831337081210775224382699196596520641527504040064304969167304289525338813476830643842775190946502341674757949134990680059845717471393602837761825883115295080086390421020074713020974535230487249505092046574269790990849191171227684352801981169679349948363282386335831214827653308545238978339630429234596780613041930569387280766791496523292852806018931677344496623761390082601006093807374541948278368619875424131415073424539287104115843247830816553130794495778376265124936014544014977486645480373001665131210279521234978322862174115324981742676723170324102728209738883364377968329097573237705830433928131531165171706245635087195193681979798916579203323188279899109105336612584127659698242715854957516677417790714897499542438219164124756548328749017447283211311432937468001432510696907719935707075880833717100402532283982899079995305182678440392090413355109332609900249492346396937882235902241887487939405127222196431542315309155123897736835155836432032719353231236237657813915739119417571708548756679914749346360043276250639585498588866734341705658501097662333809199464100864599681139681871809190749373034379802143284387641064420785958327713240365538251796136023434565728370775017412353850911543931167261069225652983073105478055678912764396509099556536780780358807399116759427590118556165848502909014384993918215317035503421933449378667296502843495641542115065919151971940595502659950703482351795490908086076307297936593285430050552834230276963506784822810678986636820883677015931142466308597294135626017056761271336101632907949814649049840722204396531866627362037606174500653687635504406680469749526567504252870827235761877907039394961439904592658760339065633644046675637105864397538429904561772917043369690834134897167783475461788887321956265160755504986365919846670914862993727370030055361389580914848577426670418590458681696995949113200869952487456733511283516167980930688833763622433307333561916284649911056328114344006622590618680341046123235381812864719925649781414071415329328004978523212823666002488839744302633150231109272579321863530896395209582513895618254230683053284342514284118666575355345162723963543539980231463740295200931073631085477711033691744166009287557567452870035729357445036224697435298781994160002941744239059885321872258124078702931477964959219519252485826751268007319406963577343960462530022799832466269993582874637851127840525935647631019073483998834096610976594835405814902063725432229866207606796142521013131604552713501600557187300486809757487357696852715079628150189355036073126925569109208359207710024333881068079265234330796191272920616474131775914506884851264074635950048243577210029610638659981697295887581378433184255149888373582710343064778023571916578526481093579836997779432672530419628822494508526295389731835952258786968965573722554829844794268682901752782614178367753918430754502338774819419577879599521306126843859768330882214621481955488162933083207516761868830667250322312988886623150548068062194223319052223148303996890735760628266928210365091375084963399899510677656016909742914932636723481990818165596551817481735462717510836720448371209176570297520153580721394740716344197765953248249319370811048394260489592806987743474655768810907254594864547431000857418233152516260066470547210359225971890494144401148301013118910749098404131763176762101736036516395611503531766231334584148740225261730706505001955404742224136957804438332449113960587879416918036307382893317290966445096272298269998045833299415773114531496829956962040310184738588827946141977257831096872523348418829486034118568103953972877423688754252636697034882112541576269781825900200580465766688366667774204466543283769234363096362506294524456692159795889909734826152756578104103013700408989727571124178459569049366161693830366410863376133667076800269631462675098162559612331204282544478750938156997503765801266749304485397147252991493640727365625578554439253339708262575690521823773452644368446177474199752708843270060165331160041339473450865019443213050155996344110504156436572756692937223109491843501620461938056472288706895951888344374969122440178644815582589241953212163128624300923988687298983518547481866460415101791569357641771666370858870391000021889503437517837468211437425282632011743973239042324783691224336180546551142098388798224611891368652051291242646286754049436762893391874401581930451463438300993866375452550391589352106844286757887313975380535379333485262589051838998863866730929530491228037483942744432209743904614813630479605877316265477204173361349068310793306537837880468910936830985835598032667975068250151483177415074852678048054481769286123495461116772679105396889430092726283844405312303216279793862288760952979790838670626631913642622639887380274859240214621868272843176911973693984181316084281304107973815047127538620237688982517623602331384453811243484198417670301172405637001720194702789210040446620416962393818613279667820292174564766816961439148854893910300471089165839353941280090900408369419024564189112114984677591883743195640972107586785466890355021038318733007776778902182529302912435636707378454464996370101077084710584035727808261358139627975184176875821977443551964965557193493361722964514373528067715643905651969511887609840393051934789508917510086153632509773485370327846233925630439186158507253331838543716749768793125620867400239109546912591616845790330644603558518441840240370914354995253578435851437232579731502867248567144105333091239616222004102497815909869262481093241462422169347524670177859072268368055800810891491844564919340467431159633986461944460128158964728734047193532738871106968500550260956541414470957404505387185056992979912018592364887258607918239184267765196624323318902037869486217214106228294334039310253733591380743041585140326925684374438459208712477205859062874847373583739877794298285436300386069143684143274958659501172080789105331685241678176598901246379543777973358142209365582361210939687210558432073638451665547049314333591922103757571049459979966787462151552925068462277401928245694229703573241900005153660611847763297494229148790868705042990423421683967864025582661388224734055536827161668398729915941237613074477677656267902171843957385364953044363407352393129027523974887209779541703370765202889870990578809745583377896592229520135406835405454163047333462378418194561007449696773178985740526181386163914384516709821755223154818191553991228491554311916897443250671832130932359167915000258541664962930779269391025453039355270921186929208089891849306847944023556129886165412522191178894372810436946611697289068226392787200946603579812191120772255557024898564778646646216758884713103019980387582039903988455138465431402914668470169483097971349699344534396632531847633887010681951941776165308629751546603655748983099268581994824476432310219046884811700016076915737152975526840076913041099325625350528753244254770674381887579229657652975350947787220965755878739724004045912230338221972154327573440296032174995942451632247098317190456044725678489759188488876230782993918917132747451474333522321418724950598904739931159587128438747760997722737123454717046179380695174804556414514700125936508097565539951729699815021275099428767684779124498822505301455517662749120241849817670209997744864061969266317192145885391267461747396562927111270052010511258183022318404634094189074871946802654657804857682467546073435558153211769302380896855905040875332259429401711298314760458888684224144621576578348784898844956509833476862169091555255337829554623065807088834166572976072977006432329804825890061099121475776285981278782664234322294426516881437877069600025219755062651101453375833311069425890667363524476572680575189917839180476182786045808785956267300936439849643071985425372303347593209476460972634106785307494720056852688543414628485587981625420242756885473681276096351996233417832160951633914243227145669733316433418949733119330540982563204344198029538821525588355191689864327361536867767489316554729238727046591059008491115784127701277610246930330768396460027712195104074719629080523288278495758916968122528334663660273036553215820601284219605831902151616805077563069992855512952554477169187662790527798038299018198264330418038411381271870723733378526908123956403329310761470569181548973085828302042878633850378107693111556982043689514536260791111282874767025823371153945097967378241887393512353100150268925191442821229623692546786436095134711865259729286111452109333866860794038590004573444193142765997139162357536078434973793755582309230582273274702927815646682740348730493936304620619639886489400842900692098779959769091499842162267770916347924627843557408721827966856076920407672781657000482232661369900053134314761161249784799297406769443391927494538223670790129553480881129585215425972247877811649722009201013696366552945595787981462480644617742833082869541692871143728403031132850177111324046980913587272830435900536854494901861421184104879142178613672284506657175722978449105567358059190336975159813441229728773645285647993925341743156788897232801841504548873696791747938291085314701116241146858194008158456226283792882334129160271557891516295750967682626267145014635259719264381262252469067512950278220917995345647958076301607829533611952754660274044064157762355083430849455161050692643066193198566898507632522149043469190952170514286338728453033117010186230228232477428464728644965346239134861184768482726025412603953507025690832596575574687727719118254707261852736953995316933002208865982731872005411656210370675466136282599676828158684753543786740734336146484587528299373855399709552378157501106621606877709994234988315656741950192553629239325128845661446138214983568273059021781937591407711778046662809538035861552271102282051744253796201197410947688256344181132413434477515225344692588767731768471554412203610369742807251156159212309224226076893060119386115356856678486926699765597857602901371823968119997951396589176606816269360058117244336291573704359776932732127773768386291976933004225346152047729856672909814044415168598708284695600327503524328715626178205111523510386033930016168801547857190335685207579901574716670987159681536583257877457678263124775385250698869944386580219048601855693437068160875404478343439635710292581666086672604982331717278574663823260156330773191120866972958870423253342480905053672303974666152342875607992467719589314717360751867140950167472300440498682153681731092592925677067462438823439265120199963399059437214655688525590632660865680181080408553885104765317726694111625851674561024086107531356114359724116997140675265217092923948589327842207752762823441132587777064651162936335359768063915383177076200771316758042740728998718704323766977646718295279557411735686746435118652612104230349851806875280638439044293006930924951965145395621291784722841143676848088613925365594287988871414028495657524164697184483858680353197824696784529769078478079461481428963161443430472124807385278729113610960009403090260496611976631333932547334821264173875510499768548635075525939136574264260515515871815561649749562545390223971206629297021091376604072907562956814008311605724915490694271929873331109151033569922997111083929254368584197678023353386704871870234905933120364940312933323593736794726811320121519755307636092615281260252490785508645737020046785629241306649532832097710128975892643301937112562715826705114126418216390522538885401923186744254302131999929184697369513044605722887995244667086422514274160484309793149303375990418121946381824623492537839725457309352970451271498629663628307566419946401431402217565911981379515878989420860026121984956345073043122360333960350915681393344286195340140883336579250134280628910946985640873282052326236537961211301366219948678038405020688398582632804675939334996166560986570474241475776208511160926890022951620906291570267041585157785466266536569528985034279091226312884973957632039537129373504768108902351390101209950292964078235235064003776782103797956085608791317818372545178053952037297311108948948405819187406005020553932595870166656513348048375303074075406461247591104468949696056517349903115395464241136894946294862740667808510883347994241491630035309447312503693024047970991153622648832242584000784171590864069095344735118670830851287194303127855040058317182790277051765365663490270848955348966726650729191780091517923791739558862608357459433385409078492422506035667706379078748609932132258318432205896611537523040878280306288190319325862278456035260845410826281250525948383029397500081521445378794790744988665747217624113293720118581565551424851295659383939156052835131130894475017822204052853655895725024762619301210220655457297933039161195419216089591349837661344348213447012443629025659728657039601851332021839879684294876843424164337933862241237520288618902260189586960084964112502341273142135158736223200567416379154367335963628478718260647718324301208295855064430398847635764720334209966574439586819452855177649516009831470490909040990218693170085323660749760789643729996326011227889474837127225293911092836939662762545454402712676145443139709150788958152629406998654643759721758292573841550269405684609250922025470316625122596025278457924690705289136290195855597650159431328797572870386111957027898131622465920755266853967700745270160844423790988672296568921669707332877344136759156233644088430201391119254065551117756648436104706184226786273944815095098307752981418871135681983927251060651065505091603826274259616284787687353740549602089404332955601631270205030565995873618709461587040393311208573600985199734801699767612451941566867762797013678628341991372526499036287702897456973948414928063196713807901772982708397394456502891293328986805547555042458086454757237107080191703680759634444524966656878425959039571451518377032408168442833818822075077345295246713698053393971808813180377562112115923563909617816522701722615718722121176290052383140765306648445854764013814888600235416987793299451154692539633889233529681319089435505277056583016608469806683724840820870670784035447160420305229174281401722347038530987509294786023634417370823531704443729056503996952779402217652732688604742712762464544380720214548284165731037882042488189363050262865440145513897961582571033586909142228734849852554948579454350962473276277208084313283794561185806564078313153514404899063825011012035500627650653426550847351272816681514841662706461704863490889274851437098268353054546528055897732861106598600253788059990244900078030602644673653093359458944934546547861266875218370690338694822814396914643189835213034614871312312617323572118884159106344217016345786570043296366523968412641524661070730585314148247663944533809868493268770630372122384219357987721541674922230728937224780811016099556051165857603905870836049890370190890850015993047845664403456033854921060466702889038615159628359998976516068962830348496085204440924472745685911791373533035314910544771004144973071433733223853968063356688926831678840468598532803533524840040202084019699012184125917654783648727428153549250904722255194200699800024318632409450538937299802046942624662708406233080871874235795135855541957935138956149474727115779207207578268227187038653365558953927072328832902672169235213128599468631337503435958120393521038817052413039360015290095002421727512197017894396675149432284259290650189244877401956081506481486818899182790557574800589309596270518079598415959028242811221350034138974725677967561814692749763954899816683458291448864924503176319487005906358349987633777841959848379670431562093041449716426801889736836129229934743108978199937821705750702243180270049203618644450554989167925470570658304944940265071466016983574558555634677948371736345510086081091549587487558479051190346612381561964402672925525784037839513400886154520156350552491571201761290450827234316094384670751422187522677172458436381798171668541754066995805256630941173671391768905560474118729140809956621565659257728960821614143895012951644500688215259971346852431899264756889456568715707455682897950237642216846416061184381102035166994247072716795373762543615015789127092020046464394946623076359754440500793464013848706398593653603498615699765295690970771466732982192684679243503091648882822259196615893852477321447573087837600669156476017491148895030746098591159566873841656609204928329855258092260516919670504470775230563943740903144751601974917818389921373715734541455883075878339556050449331107786307422444102689800560503764596987194640333644124671969634127833014964841491169348291622789980701571292606819551656182639339073945429625189262076941493994394284690699328459286819484526853323393431872698152176157264148596871800185934843680730618317320383124812536215051346227092705004577180850047175410325122363086952668151267120385528535603009009084074419683803546828959062003438111281756775015130337733115410973414330200536789754237218656417222757158772906048639588804504864902230847468764439655905233079676992920934627936464169461902309310958287783662574724480160532282515634774056929307343745457565139353000519685735562273845035239276468759795844328950158804067069446884274304784708206911625963133396303565125982851082596393678077604040304302264101092111618853665871870431260087720972398390406281666057854247888069922669905249503826508065043305357119507017329774074911751220405554307650570563554329221813484173251302216700520374553318708714892998817495779850328161659362022895586049413143409220583402736172717198481685635311598084878199426521544215744873701247406174318726800749126236479079183572867217303554634394391233610057922302972719022403687108248047137042847572503438980105545785992845132804888511557156177430447566093764058542714592608367367017133167320654639823598655234040781304515012668976688273305481552755241540501624499630877621525642217150084084906441740218541271566086243798214420579387350344063258957449198725010400191646238738991476327823681740302164193767300133377225333409983564060008251252854174358959991331186399607836053241042990434122515621471464799804503698684874304263331752054415570169483547295685436137272560405634228137404468469248680151709780938333141321678725295987132881862711034433645751956178259384595289909049485211028369402424903530488092213061803281015460077289764831312668012286433181168494367975141350049442677221832158698817319197609117427477270340653853496563135510286023774318563543614853963240158418194889239289756935882488945322414822378838771041785197086474703180337735714911412035230841865065891956253031660036523170067833008201658136532906316697121552472075398463913009960554947576052345055166923650275653316798539673585381879942896834979258936444020267783436734022561515277700661503286795664177435345269182472268583280410985656151122913852636318674405375663169876235698005069144930683055070453992228606552157173601980817262873343216427277640165103410566586033605426116404866945522152357865534165522635317807601568981753923843677988207077279656261151392904251634671880845485392743994597738555502788973349014171644996407816302898404971033461681670209858610000116356335873498165698837124718275601047349308951710677840334962658362436678802611831958872617718335345256333011786110343903299978824472242536473061167266002373252507818623019876744681797178152220694391012716389700174311775666616833804947693549889099887770514694371575332764022822336658693332439400514537902344035829010904088418919723318591281289517134608233705267085230371509824942773287500036806988262097777204041150094820154407506421370059259801847690805861353266468069304496689938434982314541015876996463432686981748047058550460566427715825471203803535825089805299323007775728743925672108200649041191709452749724441396489239864867426406481914024704460677064675839932307961481936563896273846897393342550613776034348561137255821573825486435247633178635701097698684644204237961204549892662381162117189400673390666530445760590538028285208550081472895550334544755188997725699774955757468452983327119164127143509251278252540872444772382508287300235203631491352064214297947966367675708524141042476631856612312154748517649645574010537775273645242374438700968579008585938838944276666196337560679740169719547149030255758717597443022924008235278127840642228930036600848771884679796747714570242662767931350189019199914828603477564018736132451390791576009668032182251645741717369854574125029170036461866591073212291116320243102972750761198410835061639403428035122277532264331823587702876756497399467708008822569155845351057324894186115501521812334111633920714407702123338065028267504017371173137879198726949804460584528802250085473359333666711458773433623582471239912411093764037802626822283731660161571896713829248067556844474289431507920492279592645694020202008222813191042491208746773232796815231983279925009680556661246744390010697272537015904549781550200800516169188290721135335137716445303881162830187548263607558437754464488495751973355372852356744629885798219914266448297543332980744395686978639564286708374052455983749149530894133063028623138191377962853626411340879498438780718793553959121317719055800943321861094024560530316290506109166895050726956664384437771681647829015629836900353625685433190033447219199390505608135454906113514527793872430353480425893961515229209665771196753259161663021324581278568346154682574942579871863340271293284083961448466908236633831296750210652604307877476191643692225685311163207938903313959084382241511891372047966829838161551483973261464901777659403337253272536334617051810490931055416883680013990889059039752908587358100770636377108511844161663667100899515034997404032216624547177447156727496304200469397358853411410237880253115679750400539019572907346073592834556062918244151279271514015591526459911345550308735223811065088252156010478072876794377352110038524060143716717360900385602550391876569497591402308258409549138572601301274735496021267393510523717931394884281274287586700612414980244300051583865649012585837440362704524224191402038447583665844106431864509123135365621938868115177941498473509691066819857540568897380968697364848075263136763198484334516161132211324725670683723335083008470796961751740645691989186842812712636752876390035935655292433736561089990000289961262779692268355243804064706012299074962926092346554277048433090423052167428157864047273773694444169490759158635412672264494924796889978865382038796096797388759121235595905329583839300872709174271167843826778478757631906534917829006103720056219096169655450916741704131956324019279417167051812730208741587025400295386234462185882734617561991490825289536944818740981585928774626852369138897315641165073973082763964679046118010655639204502968761063876114343396726344894422055407338108634097084036640527625169623419619798066493294017837483987945585488205643609318457491752540252077843401185637366685536801747070266727122144631587280361597637001317530826696623167963059532572853948771613445172067594626007474409933285489072957031445092163095004713999033390095174826984710368483703274591868290590649256205279752392006969890494147803083713823672217103529107925798578176686515160329514014786554489366428194816894003797958714908244514946032764968542963368050996424233370101387054802336594449385972217332752835200496632545624735882753066435387728049754465326974848348403605868517103450065687037501895053063386088671805649441943076048539591908990503515281537284878425428506771169437873254725765605341004168797327344609593993131803298846916546312439251669970858672501894099305385388129632231471215775973142089244506177293877559772563503874202098567503206908119325150032190183489469842652059584170265233887711397899600799234838216079497081942889544493077668646733892217451297804582917132708640017086455780171046993636197360649103089157514484588780116774626981663767954612971499145838192927067126155998234165675853785896992051597878329577657218034693397482511494286479366637856983298133546757361757485204465739218084560150935015179756665469855402221917463266372647571583842440935996200062459645278169433993525306526954238384431343062366960046616050167443805825141523722189820386417943382860708679446495658686983746621785111550549688854207879507923718438900337534248472988402018748751465848491465109979813284682307461555235975186084926315182439803484948566949031887606424312959699749439209405925792867302811936306369016353230783311377851622594758790441534384044541052292589475299533620794700832013892453176272011189543105662643540502816622619559944802856776335342412684421047862293394438963493049478371437696810143709527726603227637183011250164997885208924995278798510308243725351373949109338057059408797194059275065295294582756159647013467273518055125522307895793353824753407620439612502733779708572800856542797401751453190677536153004181221652537435570800711444748600376990080823662687951767097859844473014227318954381545755041995999265884878912543032069972278375074359275769830619750066835528026617421271744955035862591320905992679727725462435655809767995035930804891820798791570617613382629778698879878011143879599432848956573569027230557256578546682468214363705497655945560808622834641571652159075792826242988704963403835549796361176799964715755466874952613857467446710560231353507141510042934199956310022439421402342493273040458129841042875994774594175976536574515185100748390396350531789029936497386814774235175540548253216557156455550784910853368803032670763814655222211281965959286100094197462504379661761142646639637160198720567312374207424113458129411225016279702245704611853239169821775252108887707781720284280586436120357174163101279870833700549717319301920178470313945393873877024940047978557646159550794591822861289287437207721289000785198231427613474760057366209516741821568077287132103807539573139151001564998254664919630482644137369170533921974833797437607907828704173954121209355982580155283749529808345602713665354937984033278053002615755512688575302202015457324156581994937261982682853040433827732185134577321881511479011210878982931272265260505792143986334259510381073387756184290833531601332623007693244627299183490997551937944668864439149939106025085281678848359532806286918534441189481065835045942741855913966003473453673499663586251386889716865499565861293076419043718733095492335517218945684480665584526653754841872190212736766459240778575809187945104877246054948634033705409877467964474342491134003434441447191795376434888540343723577550863623709871169106381626625516270931390701901495899151242579863916667557323480590189932959155449324278127617123147386448171450892349984100112196291033688510027595353296844624894017682674617656793244494638566365828554185868831961645845895109234347715741619677776370264602793199654065687706779445971940952727745333812286847549243163312261752474052054122477891467946741922121837484035295841073215879014814676707179003112395970390451763186768676216270387333798390902161690301688988434147267057165660777647976269849384587343119151078829566166255532211963581002990276685298340404653671690166847457759716675686134959811202297303847201585417147094182960261363132101395269625092161959936644713527590431156719030925382132886441663604200952032937477779476097300338151447568150299434513111337888203406676329869831621174527587385358401032058748972518255822572133376364280158594344619473620397047187140812546559520816893066092926638042506392999008159943563863493193377164989658201256184033958495518692489504788696831344948697834597346908981736717588753849989384893067444021614576418404080184232670717022559498443104266703684263441199352123124322627489321670807998845817870760451368580131115779921848253989251275103729490559434250768330673096994589008855829833250288014637850794867389746889750805810459926931436745759036704514409938855729543688560685278344088740678497191093515419270183315260953561094173473984284670745625804921433015087670783672903046484319905629206002838041884645439045634659178005149053755068075828245775573121835318927205423235096355299299580560114640215704574596254457785442053688311581496355639695095583884147957841089960691905498131827373979735453491555249048976979105969453982554806949667922625102296449205868636072775898219556778003428257189896172169150654315097511777254664629716870178262102181483404160386090357383881028927163664826914221544250611706220820445652829775858738310189453639053960974401459216820408011890833259119221810606664492292462477084486328317174075236100496560179495956352113451515147292592234888292610120635504581241334050491897180897479141660821312127689140562818587064161708132070863345810658857888347135699355822853537260446612427782153915796377253667311553361545051067135869160833399675026583852187262672837261067803284215504116908852590123798664389526268269546138036872324759459688963873207533322914250439412683078145452949223865850368421151409039276623369394996921496751818795192707602358213533661128222099802843180248396700735461800962498618649973746374919957798575945251107658822638956618587313918775893380552672563880755686659494264305487972044370446507210459009461837434815656650379459617921794075410045701941683301265184284068951204303587081002621407265569516635889493718991246831332476858640652304908018390497584426071811596819333786418928746224147562301097041996050575116219826644841898445674251903209450000218813455321118785727948793657075460050383701574579370146184103663660804808027597699449203369118910942690999755678243336964501289997482027482985244207223149705663875665809620600343483659050136624881189630207171274428772505881794106813079527436780869447566373995912970023999903345532211789944695358608961934234748953824609910458125357346780152908434210638603837251295379824488997029609931201841447871526321358825946808019349345562458198760682350814151402135765003448300168496698099514070221007268007923819284914318439941846217914571553260172578440757107033094296285620636099679055870168921521661898973128690977192198225172186173249122535797133489630876961556756042305106186396209215462345247025936338976189920046097732401726552541192433240021705521740124108013127872232705386047098669538181998311815068886842895210843428620621740204223895463154272288287741048563747530473866752300388931937038584781847333866514821667323142123137636901856418742697807664185497920772820364805338588958212297678300081339497630502553401367770738734413430047903295794809905739009571366658890602287284752277233539885410541153045381491314293228283234800231497437593826327336445914725750731009632211192098782561743722432789952287212970523301978274511721645930668297748362208692338207278733083413252572978948407686407283413856100153251089557183181175573727507238049396555815767936629364717254523201697771600977295891107571262669186341634352108545865146746334557197928429744899295622045580495077449478591507296057034812538784705106308833995166912924481861493235312007527918008126986659037232544620228752892349470295889067797097598044539122457078955863996104735793974612668709309459520815962482717798647172158294400870187472633479616558650227423456787806571008877569417487888602627077180307551337844062985091635627426510102774490036408520202956771380831493062020233596972131293660948670802702966556100395461488405904292253208875287024127736227749185376236745523499205558223055149148582054447748434788161887739952825414823229700456271346931202506169907270953272783088210490263218233244307360847147045162071890437541514867732147755379655071608265078894653081466766005476730297855159372617869624285185125571508691888395453993179466917532396093339948195536823324607400394114035350198071423821289567005829460430098461196940182840961926216830396866326902638119205858302047989078655665627162463252420722371565210367334799504131329262153630212680356527341356038195407367812892032143391905121819714284901860090205448232150135507169273466663458397865380626731305696627369274091347081479706303749484933913947912548671880225897580791163234477257374579524000150678422832760266036677875180268980933141881276776217114636221031301849984078624653887669704476139659230708582365309311346250844823356451038232020423903110356544461819505169216299030243797499749032119589216449611692201265354486099035321897113572898690519288687860021565902913816313000498561600554389624966897771355343480788721055108364935005259114688293265162488227374346021265108015659293189641591862725387809335326712770956680607107780484421345251545587476170896381530404006577648250876694637244869133016226986962609434505283304272543062334359901472033489010793992383244871346623508298618834239770203676499178052131333493983377715437467911563054109377846828922496993198086739092595288751126652755715426972186194683285813724087383411599182286655014009587206608518932493796666477619955543381627233227044061787805722251750903935306191925833553435675016415442740248536972641895770209548372601935012375869732536485067427949785526284566276728521050094969533062266683544524515410819657346753911090085018086146052757042433448512214667059029379343024808511385142525138138131781085939386249527477486229512169734817739945344410130821923738039755666657306918749832562282666902662668702242575226726500883251415200823401300991012366793334979741181145198532218148830299239427343195766030720138266842462835183339929359555859784117988723813623227620574908266504707569513111703055956004458218479873564732740264795470854188204097433976068879785808686514098677224006736833614610265966203819720355070005429339899667182750857919629444370748454417186856198982127809702855522611945413973999579054841111813967815466313929362113392718663439650066984333920888598126431017531206663927221047216065461930878804427921602119681220220336620964976953958394688736742151919812620290310774683249495747257970050367673608029302837038148738074014120497976289033548608462485465886292801425733993279883232777583272187758933128626717920464385080170386554166076121227195490222775618644411562848109326450401851333536967917432454482623205371010058928773917035651872021347293124575619222955142052128086313711086472441944676092700077752296510468618810457486393916762892815256294804338733114656200410514684133548810119349761281350472472611549009107505169496622283765812924629642491877412414305224878967243566029408665817303770252644203985288199383437015378426931336460988001284379773259748315689278964107065491442263332223366305559145255681391167672286523048125580135705813552533020983681167970661403326849894114216075346662326424173086461787216012138206717548592049988165515827272123729465462977602826948517577093468842169506914285967938692659636972209222961161644201321047495669093410822216359872382614304425456343884085529825544972079824356096823508053929285255347679472733636781379234460483440879501378740936647693464755799143311258985904837195284626473367224320051909590321063514997670482655400823698734638812141018975331345684093970560594804452299891969256106550886390355198060501558368833948539834524016638550232205766509158220732065744973069368665836423496610318404486200799962412032877695131354447014321296991804665904503558048601404304019857169061173140772350646863425457671769994384360887269067999592382538771031449521178151081617685667341504921723053678664991799441502427028655102311105824086701335990572583022656712435729920550604648684542432049336559258025391074521987360313345286799410144735238137603282731525146676890049150303694149421116591573847750338819759199792090296068358175073698111533505784581335990668566402577543223084487848406828645485462723664180762126285025052173083380134610593437582170306619142788954201115092316103928516786196707948063797673424203182768322085627918365858041833473755208036419412332483409409541038170321490359628751606501930941933103621072586697503898438420309458276044323804121150644343968093749948036383180572523478004408859783513456338003553498453959164301268012743205128545175174241858706355602247290606822843917582538938427294284584333022099430341782181851502135457680785395641965665565727301490586508360028909038820120624012274102232979771911885844839372912341160953301961042986698785719316475549169414830436492257709079655127860717781596785154229767077239900660924555651141550299142238032445527861008930499256327474669481299633884694134467251425728758237816895960393974840387002860920537601830606175405446910454593376930741901048683885863813593386931799268736089043005105003636844952527623802259648901114435738899029660482287996626976583013357610697516482529050586098898781078088225734806046906479650925731678414727595225448134571251639420880858501850457003393686373750313747652577556168830769737689477504753836312538339911981224415324763176880547516508129771671433760123409307162903966927913036435025013411841394958934147784147135665905809986679224969720183262060805833563302713808751844834141770116122995528640877956625615719949153349947919677155822060345800907637033694901652974879006062835740330888261665672591771776968247802577296033292810078059195715440164674835760785976030641822537989419617039531500886795722388752332890236888201192614545276633991226945693974615788051134173240500682695239424268624061454390268865280766042563978729208391531422287388581871047569803373938339905020592121199881996475799454519286929984037435766236949110051845287535109296763692050092732588053863152833328929741368594819397286375554140611531505809636989985340459818674122702895551794751403672628756531000520020338946704094589638429316392372390631164826466394927792309302591541209028280845838133155426416736259952783728385075490186586596695004015148278869120586723900601441285316210808159051126678543785456669973357744215652993530184613952488925014742379910294566190139470512179824332384003489423761611945811234769333945604681244106127208881464551117644125642368233994807671442419772166453584778124741494270087712428403996710976405587158995312301804862919903276711254999369143535569482506854345155742678835034680416848227251636425929514973425529950890995390680158459661366746148251413383778344568975334093961675516365679624777834540507934365997055786775344894151818636396809617941194515267966431803855695008864189191046766849047762314223756560986925734833449308183758693538048072432898770187100885049030040147967386237050034914486130166257011477567722361877065654344589086617821266638295551695566372113226285241499616986649552203131298152426766787479880939515008063485325028345312656470205990594354435007533576752339338122789893440978614429886866237560921100964319314740660283729614767787402471542729531316414316372647594700365587608527402124474068592200868415600259197725450282310493093495798689722648478724861125557524819063395656163010930642089226849864641376004483757302835612278869613647288095706033685050578142756839899024170665554724448516304003895365581437246310064301724297063149464791404598463607220698073429914058171840800265400125351236177690980396811475874643931916802999049336715590924875673268471517621151556247803784025909869194949852076388552492702893533766565813992278773169531868970378765958514943713039501979964120116589787298216489628261171999927095884468615170642926383269132440567599883621091611714880646826492185072348972889362266042743051048672022841883768457201128940818613110745707439330855516043594467013219962340612826343933315471897218889427288956086939160193354420226630408662801112076131318601441422395690111453465650298409226874274616348158829416418901709827499965348953389232071646798165177526381059710507320931872912810703564758723192107041964928330364282511937901716231562464038915148686780897267854839832314137570367250940929537053522897265065010306139994403003414640385339821238376397176678528732202090021920046293543213693015798841820831436775087635916639688450004072234299449225420412982197079643722177018796350341000032868017713207692028454934190015144137049658221466908099576861386146414478721174464005509038425286480064656439902979994297415609639252299456431851369899137685836575995218174785084711419554493844056771976638306398282649227514007863938268331211229097639178714303240415106765284302430135982795803031781056385111195959762774271221669868679620118224316077576739336003987467398647680159070772823778014052024417146398046852270843245631349544112484356275960297104547147669225472588076773215530472619803719322320260216460570613302498895144062252551065480567929866701882149013039033709994425709144396432884247222295563269324830784555202218282853732249839344091033783104849226470714876566668909491423784283632214175597056937425525850612894611989659139992183914672577079703517009741684426006056848424231140843486930806888579954586827741697549716995042067982813996697976856098986248397968447209628833462259195852487502063709005256736353814191221736786019326776544049128993931812545199656660024484538113266807557795138409445735287861523110885799444676317234987553064768615079269052524079838047638552154613339227172835127759702106629561952790955742772812331314379297887578859452804741614895451805176287982066363749806714985967032388183548409579099916384428363736999408554626850133692645563296366659789086273076818755499461790636897320151754583236614766176752653196485734482333826364345267442750330165498253504205050020839992344727455505277546449877911697123274120099117080899224059174157253276062472879496644474313339059392714145523013749629954461133809249862260526896200813478413923054615956400375244606594448582802550645773362441883785624155123403183063661349634105574461503252379849826739195253586230944886136478274452023530385215352403980278154790036729367156946603054166339071810153261209418159654342443634352116937435732388653832230828555777582362028339038112117665673051338089481362001260291011911407146119823795028604985095487611542368401610698904469028132388733619265265241327594538992859355611863225812068761585915434554430466367689277156264053930138623478902290910926015663752712148752601853281327324693635708190550104279533942384779116324539615522624498400529799526874928821982943740572230289643650902651224687830396372239877773061238944074654439582641384612697213706882108483499401879412115935853926191219957767510631959297099837091681138617685259048703826188463996235532959783095182989627385565461839331542298953578003589432345606336436096531359088171574587368045665128378166425243511444202999263885466514963203186538853929820578910747279090695423833240907872153556151447954799516759859231837485534210402396833741797500194217126631938273148278370764033694010790303970935132377996200596178289026642814314397436239236426297083838851371834097786420941078398673140610234480664142614891715910963762373475274996678537054870584201347119122011304355391447279559178479300050025257741066788860314056683329506205648200985698260055492415914777941188771611744690149806677502088679056829558629830704951425408846946530938190980162850800551358204628082405845751341821473471042251963196050598394377744582074382867954149524949634224523852418987783925233773776659481218101923036087593847720711457684782162681579073111380976926017554237061672162099824186499849883530578956265904637524815317396751293305219102570208121397259257695870267358472502339197449261958451791092959148647661714047931525725407626085626477356895137850641264906420492283614496265632704243639130257147197918227307960727444823564682117109472060211461099369038720466948776908341964550644261380949597840587027773546964790767158994990027395240742534626689688701944162014596239333549521719169440388589373255950427771700042740791217480542525622320315393451860509564034336348814013051055061528840467220174996607790288646577838753010342250932291781408193311603983268516275100719157081874381870136981423011239655376682820311979540993843717977834679792928719438290242812838046363876673585459947454735885963434688805520713021803993937276969159692136816489803068640098849488870445908785305130963397350667496117694259876612798956152029459703637635634259472602444913958143385712949087268931057353329556433009283385145577902613904874801096449264476754967648719162742321192636699505973624982775701519450096111810775313527731047596800039874411939158890393457335998341763522095537332221236171622334547701869919589425411785090912997857947656379703193019638241810652064585802858432032087165118807063052260412725157079713551862987530681951688773864404366551945905422632964379185649358417093697434898166673242177143069079301819223417835973805550264977430641266573875372807693778574919007408015249608861267917385493508606075463903594103539105602066262589877881458007057715597107113888172797152372561859506122794721929611189706557563050773477155433017662103214850568541597224021751988405272039397239750103816279022066425532194162236225007578002640346959925766736755285161055751859312100697491418551879758957021599717350604544027854725773889624678832100196329922357743597966500527519082416768788113385153183831127538295180274450200275451027160708098242655761365131324531682031664828724232058313931018109606664365853592001720488673360429505615753641703454143842063973132696565057654039523038657443731671762076339671462057393771249529974527330566565367886020297391168832917115706465939970235130123439750358829158839709036369820963825079230378723024819089287133482487590439965205490125054970199963214413816292942078622358123470255532397624180930797224657721938384082789628892197005577078993116791935922728936765513971696395874111483207460448241055435897148398486679436170118837130769131545309460188327832707141792441164130619719938554139357418423166240880287885134309084554959373661460806513409659836118563176354846201546636095858269283174412360096682106522267861037714196061924649712153598160927659528002652562609615251430333905045025124213243946165898700306762017860734853532340882027251834794547680560179922665052952911489149178444557768118771867104431374850025698172529100609729152056294655601324350406170811293385557623418280047635948501910238563551265495979601033895769459333698367476859549708921800589834757130287063367196266467233778492556840144166496298655678995629217933504744926430733415892876524672291356774337699349469096650814762014490385215305256176732480781833283976310092023559648001161922528626163388895824471367992061525242236996940938445114347570253866308729091199305941873646984468952827004694453840586509146957937213763498336033975584257009249508133844423174793548029706171646242017554880407503790364273923121773825401698180254142731447902581297574174740467112173446300550192776263815745240009110293119846725239775898725714871996341977649012873673806523340416693127368667786615093010660080472816078397452872580482910555516907953428685180602011792238502323623170887481920220748003417470455016215165421044703017879558844621223553073126096202724557728300615770148761915354238147307262511233322016772906882843613869532024089800915325655379103162912844536931442509290002505004130772494267035388306840889232724076960969860476073765082846337633441770672925360389995942409090480052682952035708646928216905185483236387619630705390630633682277752055329007746822662385945509667660083134239444202755868313909731579054152435440629622114895889663839435726180544799930256674609314244038575460161494731884948217679418810914091387513058134364669114608384283599621063180382928104840192444315186541127411018454959539915529512291178426335524438732089159022131179744454398406093802472164252256102504645500522043342464326816261159410059977172011288474574716280817454145218324383865440080762324991375787446865534397345972261151927717112412196515928208183222760802224992586698239350295588458771420257121408293816005414852512805837357892254221332800921481813745996566741311753188370416860149041310705680548328037386658553247320365693566441071621829860863699898195469983354985900149276651942924195844754563218170444016369958960918642441785488154135496970042832098227084791448148842462258621023299656858709409939281170870201208043099532932493193477174574366624783754896373973399503021034816493952801852636311391068259665757632967471022290686826930699816965474355266787069129321585388777404021417507119723381747332238462985014931222780624845011738063686669621641891508307278651032350691330711712621286931847010876316000723966829990194582193111361180785956091850441201250119195494558233285249139113569250657761715699979858348708867760970040057501976821090782005236133187853036301332168343311408937703673651811562124123284018446425680377794530388169060785700136483342797233852835797019137630833178994472716535583747325890734960357969758332809071025071916164816014660920132227042749092210596316352255321346540422491655836897421605378915266026434023974432701852181803136843548875341410887257235292030051206059378321014465978397863366935018627252280475059112444499187621893642867953628755368725215439119970771235686011581997700242081546204929479681324768735549991771916554636150378033972564918274302779052787965233843120347359632486462610141465239847911231072262185689142253306301087664602357170110236914853948294751990446020337353115384623272489740749210874223980672643169920466944917987192120385482237257557492144469433210491225049104393154747371503467569255370210772542097703976025590075509180514762054605523341066418730203367098385271143047127911879320786024209056561060756219116089355856523600335742749804309285140231569408846693713466433103827943579263967008972843375074422633672540262777294990921930647274752008536609331460906772544978951742657732746613334089292713461085222646485327705271482568216099299078590093967388166904246616946603060851108767146367004197629916091799225122444003925570425806464192641469185617977720271602493615078547128813275291299094307222904688640237451026633336687026151806163142206596016052363280195967110404123713806599167995118057901903418793317144669500601205227355848689124208026557256265454923275085296905028920939930078241026802295636427796839875099676265962217131777786693310097670704389045782114766602532093020075734601156444517012640622651052639467455874409285068767884276030409730591075191289155525710059620243383625398004535506774463558143476232092429680054685772582890608873185114158525953341741211197075321040659240049496584977349746009312670153471998901282668201496086133847334754400471943125806647952545811106732458122647961365451013009620629498724506270944951486657686459379089900681823871270405949385653972037688090749727060223737917953839452663577491127987438110168984173199199909466609917748015870626835995031856247782644729913946114870923615282258330876515308682920631349018458454615254386216204046352538723571605961703570760570137257170723693250185329913849115636448960002530596913389358244709490224311127960363953365969013559716259749838743179928644242335676645204480655230030474301685373622353525093990907197374884521902258820088096347785858190036666749432662579139513644371501739778824850760721190547712313214462957205672653860811184808125041823891421888681473802016570451364218612806313682260347724921673590940471032713112197042077577280437071883973835692172379425071083995118683519842151022354757899701812679873660280689266980975193920658376300035486045490101679822327702392659200353195366067868974463484589914966898776974795528200125915286046241757929495907483968426459951381136072879538505186470862113940224745664139380551412519616309609496030468393205029719606294373403036803475333622276544008402220709438674857198454785500162657134209692358165698560140927750327154501801177527935288950495431993834119715057956796782450936044248080450911552688714999775139640794210669531427616990006036014641187539785051193533146439048109204122122993452311111824600995032692443618025766522728609910587947645529228814393947212514367252669668064817457030062830675049850630708682354125715186825312013500046856433388424067622446250527733512882509505856157877661685489981892822402548995278911635972491790729210292766923092472791167523958560183638353468118282007420601428887020479347748842335036181742828894383843352359880757294115082050924029681514321512447541083872270058883451407753812028201217300222374475587214040931034112058466774551300723418536000315805523231389207680127008681951390958802205239344839103419372160744262132182979948135457765673107503925357472247763186668933950980897347269111114911075013091141287954280490856725361262814972227486141819131269713382412069526712691661544963022423217590787277904359922581374912329788028311015904303450039510716313745734084925040912615529211047536639795845827700921643573788411767989100285288845122118517008848011897336700165034523094307346770294045364097235471400995223915744664672804159095474960097977256880437605314977168809017932435083991099646261780995201943562736161036306890923041924804149299611059426162858183340430165694224396955153904049930506814531154642768223432513011747381770977409453042221373839570064876313380532111860317632252204514734486083720075529091861308110791475017045675905474336866770098566189317544033225498686825304499775949410823817808408286859805385321357259791346724298250385105494224988627766607557864619354163293884878682666172897411531109544638107906045672688004266672812621258578284779219451343697623660760322619710538366061261973606558105631196577147579470957825396162394441146762310206372053288474919428857181991869404323633463216180294343889989066195601801683612414373298464607371911300968117337507625028913856358346150511378739617904811008970145310790260960698425628485148793618538774008734724521361789354402908799857941626141756760318320725586278652789255550459219050419295551857104696931297334564914811354375629983758151348040129993363751710548949557956254651444317082848895887285318216399972680933833077181410558073585649214736367251014517684783152416574216737924544776388229295861037833356887895357837595180886029645678925715910224990355114591205950921861203919627984695730290394482379070905330280917684853508351856439154569363650664939961648675820030835463704111068514913297617410770529106094941515632962802963504477460616655506200284648720452882332915662848624245056617509179970259689276126551365529640730776522675993343208382108856783839052480901086277395412425120783921719134263203571486941801985806962244063233108057645261922796985381587881205486150439868787995128902972273817087178696325783845336206711756129436536922297135853921863298048851813602256844221922828487458018615601881407959088142225015678732025928526390232696703391699434601012871761597514672114803723403222612402645060437483128197798542103994038526447418669617843211714773137661464219645176028617739546715962592105726248632207587219912489584194413299379047075758577713966590486646595962382944439774907230455835229808173866886059955218931080677395849690078348971632950729689423317475110301559515922318058634513688905540880574770801168175781639211475925373078885453369210159532580461965831438237467856191209012337291212722212098807266430338432017054082988039148751305484422034507534199787047701194111491885871835680145872872516242097975785631762954985828637187501761895057263031151424323297955942957334425875674054763720838818455280748334265316596961545363722052676868785265885892798661141621615368962840947459532013766400892565291245141124403289833455124262786557036970201229149157234942993498613584918694968512385197992545877846328299703198240999827729418986563339692407502294064185795400870805791979387113975387637642262081266757091964124618601259784127823429321282515240139908112323681440157422758699265650732726318123672991459261802035840132611772546284564974985914968943797590624625479755817660279118172428064862952281983115787227876472892954270650511537581209054108343438820150863464778849706455894387373143178714736429077839048423116411326986800724033972783117595772576658774378804151035314762937002138885853225668093320044346029182852446673962970228877305322027869691922902403235986919195843668290185665416830356487324263765315199269728395183411093821421279610281033533485101878830343808870296771693287723296914248548667165147368803115298292216689179278100904362510666380969215037600412297088209577337100535544683764206699548255778837732823466772374909165335901069568369427693076633604424239673806061089509656093328695507059566174000804805343981918358751612106696616832839118928262353064851755010508208210222987136456034724607209853261953898655690596530055890545284110456732073250848364605940985675511813404489074688660467868479982661729723829290293705774538889616461038006475079020672364310994763900625532279915501939150455935691445268936902716862084913622921487971833219022390081351603649641480688190132579657195109857699265887456952662767370871834112459118850371400763494687108694245383214023905870874942423349659889162961773317216052640121163758176615684252128808035352220688646631347735725861731048352464007766467542526363454110132572493211096085606785339233102921685288828280598857141981519118826251698883086213151741846198723062555784220424592834478493047888930098881114536051044425627213884516066444658664756162452734692556747549336688576891408715097679606790847999281007796568990486142962893756783539315060594666794075042199546714815541307503962289012425209343197402096206225456315620026396776308599778160162282173591373097672298094450739147011892071366397680409418203690466837520380625332524957549626435298679433132129402797406061258981095632300401329489409790654623932099484196884738877102930421039411682874703649398697747627701919354547757525215542286818771640992099388954970783490453293600265076270237674996953229853986258068078859743931903181258924456975671958816774115798367705863625400689007047904211317183660004724546402469280011390047423975677752323949543623078654479625004423080246325493814817318420725093069481577254729547234181014023675232940291116819217775396186668539586896821043798239761759206175204345769376933378000205863921023368747072837842583121347262811871093481541597153903882820495371250127349248537304182358907611022728866806748375036283642861981721202033578010658686090789309524394608337974042594178892363077981475163805943533447674421642422036402490578045625725377436250219654734265943353219522417495576358585249166168108425554729329859062295537351280309375711133851188957624942423390936411343870820184004720421180021848582566607811026667140726434706941598617747818182848730854766209143284511020633202957667647217161905029025242665974959174962243734150175093273311146457399530217681666221528315906707731472696043034740639453717555996012726789936234015894703235093166703118052385065697285167896889363768578956157841225617865379688673556681812616615340729584704474789627778281570970203749634881384114937195028922158414827869715657077715934614604187654170627455660009337178086006609295823494896054091088034839613452974943028770437244151474459857896498271004924920018742846018748974029838168020767066801744644344189127557565960189383732737870509545967579047092752590232654481297737174713119699754053694158847182119111437867298900022977314326654034413459986578996639354461470155889793206726537166952806606792152199632557647779435984098720181396769183401515184148567213015296476085077875531209644439208108174786671368675151710946068193646645643550506576012653531286080077920861333067459202397311092169505167813147586558735028237931909470691672288944502049078565097537393853934768378983461489677917740430604322109634739609469267918333313662955854517046523014206086659601201479442055085867165760046390326816555530551888272552525088977049377369455972737892022237369854595911173061813319893674674163059432707559925147501510611275050538652308094805322659990460947653777560122306401570361597210788570032537242928337941928097529098948592153980484296971651323897982977960877708429375343982472132609676109632922381735917496675706497013141111600916783931863218948810158808864488764913624962580254150777134664404379233139406545254568684292753476009255824495478186001473889728721996077987579203374088542998407004693463043317625720090757046563405841502932462091941886699041201736694767193055171445556590186259782164872251206037716492773754353566482904569628861870707437261833005509348182423921746067417624614798529131887623915404101026574503172122965390172295358046720356588991846765891100570533932331157528143733963819042632787784075468344006353904590896289815599107464474669986356923736938021688112041222958181739530259054138592804719524507545575945078570987777519810262465099391517581112700213937295333042605154510242556160314339233786924115062368400619936606743660482518843595681249081861551890341504805869253682349004808831429535361553617240998465897580290502921778143815334454516722361173734737147441668811829174169224870526226929387351026519901513640306111114129665435125409994868183869934813026124765535760827980882671439744867685402834800604847746950929252485188926969079241968775331227394031702659136582401376503409414057021219142020911337376468601419332047774999389963550588380065860866364396418819062520154535478401125647226305161716514168259559963672738842919478527353986569998296880650614140839758153760256164959569834022457850584867539835255098251957863729764719974881188518911338613149469895957801136667987182890754780037699610705415019466712752763291014727118837266934383028887281706416023758130104634793281850664244721682296007469108871391883126404772415758608708356674615199452944858257677037451382828476737181592286774623850589861617050265832240670985533128671653390761829143147293679194611887841285162126083592686044977163942224803049631418688870712637471351268344037800702543410747908458952086606369486200603474726775027582863918296529712877997618400819515283347431944696846320689294157347441349658764018038857194161358155510951763411568655756454318244189783395707195556967090444186564477161388515323695744062748829288858865118874880194613253137937689851428994300462295279350048825613060682799995202660623194063525431196690435352083275422962113683337303543346361744276484098046540534908885001709365391675156744062030795375756071162761741164573634703684604828164953702410560183286662036322411696566219832716636009687019900840020662447578072900820185493358188624446062295322937761363151213348500023384644188204029075446713024468384976727955077753020158373197717980112225412130549909208885179332853577283437467961026443028050308722503524983756079047815330783371203863691848544686929281900472087427523183024667259186516761313436952398153987608214169539903096241792532048459816252641633608620035739405780907079709648230009040795644507919860220570019524229460756905119306529934003221345585534199240533322703937552367467706277343625427282914313215683108510794444300668778602813199038453088858470399087898549297795183559432342179191822520333366759165270198643855724175255269441193474306714531763825160662277399345605563943115045143416051411022766915848891075322349092924150194622975760954802002528468271473234210682785746803565571395570236503527329694208415226458065025825357264421305515140804826103874122308291230604725628555743734562821638092301536705831001563054771892446918197045727494318863046447270856342644234984838986350707164801508734347255156641158923228872692095674671312268774101613616917415905766782322432255654744814224133037244960990484785301044166158795296836066725989135400746192621252498948354698708101084131692129678395725546440690942357013721667262471220736346798508613225164631050517099516412217164024036767535863543406281282873934175538406577884276434333175863055301603040234563034313821475425595674249893018137813250047149474693731024858452436285914625647662630020884597024031182895442537249629292093756769351863536676431613807704409847548999891299826675201401504485074936964700778562129144324374166427252956207034703511787942386779715943096050661379373428171271494949100676872136744562506057999192690954065812063226984027763777867723805727767989398580352212504313603853471287030194422161341923590334677499092345449524482314932094525455260474747394563799558387645924509722010727938301133727634656457890516677677795602051066437415153051453907609825274497513052888852925151794766625828490587076933807442256204021343483667747417524769898287842137778219119763203534785741922437047603425388031996012153435900670446920783524675973309043153131623623189766359691713222438664674561664947513158265755430039070293964580247976102754612840152417306094503928196724308446862453614696930767407152558685216313245001587503536432454575403080101702147342289672575897318354175086764811032208280045908511408689937954002133781309233473979054892257314195587167250562374138336507047422540042635472673221567881883757496200517630693062859528601763333569244912976982814241875059712610165032384465796104604481709935390383598708179784763444446074974255298290538140848782770176059909853843834415800004602162826454545223034579235807090417907834873891395464157749974469457907898298610865719042395139022806073965690924284234871705088447380368046161843390172575472820276636687522405330643251928624221670863375614310214023858683578707471279754092608612700628535581125158019576603557335724486399246109612048756361901363574621563722556352202096203920478995630558964440209562232318793712089713373285368640637548388492781196666495055076276784616942020449847759332812090717010326793809257832300883582297881341265429371952231554220342741523406045398301316714970108932846571026257717272987455478100165552448069118006592077586275076548244721500813260278775554559543571913595927137577003907296117759418133670397364225384219780339197012178340280342548967519092505778448798556234111749826532697644939359818839018192675002461343087975316551187988989440537971070964555169169513815311632096705091384025251957642454444899390226804221573059214559894056801197582559789368140985385660748358807266620498509165905551325082169295876983030901297498337766062584246270434548479867373529499841441027389435433054892245853726521620003347806853345387382011312468454713365613017883946961807619750387061178736411401306954795425264209116690002203625365845397831800020120664768123744013505066828489727786962722249379298306863233091307909709877137434365700569195258259709940298207581535618098041468220462068615891717562278876449538016190108272972637952703220511920452440383655297363368379908732165297749626612582673809515363773541459311186870264790698499725857446016509988642510252602064598632153430053613651540504813480268754221528235099227429453742659891167284112440562176544108670291797602381464148782022642587349613136082263447789932817089278933843488604719369546935468547868323100934014419737337611812269984022123589322622625142530888074283891791511206575072088895468755267979473980405440758829239408601988024085709020703245295883081897168355716120140068200608551206325993081286088619894091654932100017940254990186972568957106928992310618692714035875151041496725854009928859216850600260872309923629627242644970113659123546001920982572228686098202025314812132378141264937117708525189646522457462499107701136409615848747164934435725395271061713013578520290257890554222619442686783520360321288634966357016399995239434395380433896512496308843898318468038661770104596182176801092365350912819523482003498552541945954522181084141910753066041733650791733138213471263628229101965891486584844106537557470113205333284213472082350410083772802061535377599877091661049256898832144761831984082691558255848085219626409261847167740986509027805835913741784682809837589462233231386879084544159069497519724180644528322220397525958771802184542403723522342661688911882927420454134319900856494331267736270818350317289627135323146002688453846429064166757474495093312222835599652906729903840997121680388388799896826220899180584166609298543579665650928574832689016541439191643738540867117185684092246349661006612452289419728849925776247515289257044285773855767426953314028571075599428769839764314980889979823952883279732595417682992610874575421744093296804757857763998370185401470180548754944842243317606821963326684482495005878178996156850686763953012579002576593495526134169026784097048877390514020180006737271147093631469657746995265474905680446701389385672312587383250475726744986549953326029975995265365620456493536850821465407306579080757754697430315431172726927010322234874427929956445407495139682628125929315250346326521320801821826104468518457786317589963324065332601739070063745715663142415206466055668706583459158813775623782448701792360724648412620054306047196319236630243451574444421556752815858514261708805090248977291308168444912547736958685795581358164570637625547459725496048620525078463525077397907798324483655389264060030056090727888431627497271373072383996345638773300360068517412818653192447414147862686837207677511448355640573723132979416822079181623039385417437414845254007898474233643820734611493022039035340118283497684151197835084781536787781662931343296022788921355004262688926472256015470362712891603193012613529097670547245092093734083453713376826458249853826321586453676829304860997199908130349948283057924637712317199117945623012550949895658545134844201993518869092748573552395508420368479011925573828321179716992339669052354992771465003359182176827400223958898836148865358416487808053603275583542629959522924177475175240674998251400393081965935903018835221820047518257123206199456443168341817777588945131675698734482236310221048915830561401084172993702154328179932854297182765017216121281878001280592156423375134409366697203438024495101113187214572018493110383318971323499036951845113401295277030683277273124428948625581217771169534012320319890185180589869496294125171431311197125690062398126653837269652342536991957798382000190402382171230082467357955533324408921532479551632359842478613216657797071121267435901442975608987244049210312458029683313978016140954705442237130660070194500647775070833206388611018429858820873118368178380304040049010743956142185660284219480705579364577837658664823604318753319601412622612291630391697826826421991288520163479136104479266640146517581116722472442619067912507450119400774827689158919376014587504011652148386337452269706655738608576648740018440712909381906448968819919112272019461227977233464100121575816537716303024975217322170268279388427449992708114432013862157690717578570450688377399030453688868783928881811004172749984818105270264810049452129607884358120246900379268594343840997853210878056257300175156374951863009835264578767441481144685278908170476112054648503016566147460590568870384631966315018096489341788535179819845755859397681160579902796313731122565116150080393057171808583652719077538006889348072086704529282348813873161704036656801135776583954202646299616549388756602127882856503746026308783874320300473179696535933410202137102736154913177783267080639146250282655501944783089252964070882825950629234359320452311504169893549186851065744145978663602977529174345239464809726317594490384484102021925589143026254734366563832181521360827952740824812688892292174613837310672384450919722176895904389948147575379999768091979589500636939969319291621096839403722763020877815081152938814594401869399579767201324069616448187855971757888441883403763853161040939316374773171068771021823879784964809998837513613886995394437296963182266412416413999328544286552578317971203626669781331641303249539242376335930055706095257082614785658787218571973478008776470384237603508512409934971602538058667711900572823979739246963471851497178227715227467963853815666316816824917850844982718111523945855596050491118905928172905509099994148649346319885687277760687954416848357384579216430217660651635531558633016824250162416866942027157430087928126513763656516830026794799808072981110325950496120220571861100619262385103966042377823331018563343148276040341177058173113954622181581824185824144692304734329598094701890636044718503879841013070606063403464022126105966357411512831065154635355425859594006128398780007751472241162998025561700478625072728089761949490611033268745420847385622825559026892521832450167362797494116779777903216340108563535184058198389959617192805045342843369977252614948209715919326154427320300468460002220872601468377591041626316426241551366687347907409410457048676352995937172635835819803749275091779439882579434763023226142398389868953240824239625026292422310336137110340910769420453438197111476370972632684125634906780377620555964543981959471990106533729953662477255017472318974830873281251087975830243526579437870642838883501626622208479613005517297492982696886107093886043111578185092238937728788707079661337733126157208170242512331686622919963385720046469811522241453599933002428608182086586276492347937413882994918952396141015167338410368885925316984284343758839108656417682482483526574504209869254234892949648449345539641548321833118981573424671093663952852481887252719557471426430564841289807022308880421214996195791432516239200699286917971551163630097538239606031680715220750105142696005593954222660402916297343836890493087984700346638460988252015015917679033829668853970958074298136591791377636569198476384714175263503946261010984864466571685783084262476005102753873443770984362567648991825995630491366974799400599617426151806560752780949331070047701711943904129883098366733408039160964540453875995176098997496559561798989603774455911041695430982337848663277025488954050429395355348082872973369942472059141689601031881117610082695651404675491993637995403206262884735106859939359064314145245750845817161409005817671627146095704807718860928561391027291091032950817482939225922226403503840347124732756250310531814957032137344562801563161514654985006972675010691628761100756189814584082752984119363856331689839246756841171456844783138880852531595612300488618899850450053186542818149173434706511837118393549118231101217850301362820562327422041921034348646428154677719214200202987562133758296354893416908211142246125172793333830930597939166568493842210764637335903240179339612738448667426846056258952381389352702734322900267664229296140881999382835706540811479743355697820345253623386469508409928994031102922610265501339438221394466238002002885691637622674681779702318502277587267119271682419067409352325718516363266384003900312510059879575996890755057338985640251217175260168432144342175306764316136934344656434896005894760070710129615110782608609006453514351011211999021240488508691834192294405743235588710181883169978968287905395505945401646956984118739711201830991431203901838726115228127861604510203693827097314185094409313898191279389304550657280277103661586087365449042531360397049636509374139573866792297067328357885763011570631032174846116870798440048300934858185454628182507990675388577754256059130826039579857698501882964491664627488038871413071989140120775387091585837309603022850119147582196518595990251070247390234862422321527452955338913374254912044049095569308053115168375316802442535956797430344098070028646041529420170274334020245010944324867975669179202264714695476819549093388027839822998257540846110082753284695183389718988692321240150861712266122686046971577922914118391645073227848500553529403841186873046255452835427315184979830163744082262396074678124239165611860124763238952789216072176656729274657922849471074399581851020886166050796479130017438196650156990595453536279259475407563674042046993932293745874785345585118513988059885409255003768468183381800367047476627403275677231373069078397723432861937438459824792880797695977000595703212863163037390283280964468239083974850707219168330537846001946853941804490859045155249274273882171538313778576955044846388179056020640222984942949062531131747476920710499658753877999283062290881476284382370474844906423724936815414378944830478577629610547017743761624637319030795149275412125440264048071020779491453834938853616907277670544792941374987381862597011946468655348277837729231209225711881829415356593243830262700876051486276592103331942605204707684013400028152686279188632240630366666309226668491153963285301441840622850296848109898710888526376007720206748730142100755588589503105073848852764308666178946981730021191104130834726478628430371445348726041862427744053272933699121875433100666678766873543128181579810920377226031677958232752184784944367417771975341644125659292918581409915298432356202912267617540403220453981995737784401143698895899070225277850991783973101613277731441824286451815320894403917727027223640859014405888014655786360505730119725219299217009037477045276992215725968125453714718491758718387696403709876023532891874983704216229291118435357602347914730862751424798687415198788719698700390671480402259710588319679723371729167516728205699639949623389860169021184496471265784849943545970882795056859680913876777205250356833473692612917102916030645920196369618948644157153858302613489203790377154167843606936894286148235134661825681609559982793682095835534520334545149101055144768652251235977013337286810894987543563641302755377488555796684073350536880362284139983932249443288716302744655574058086043289432914703873771588699100467583490491022093209475106359955797439405079849993011564573153600791427280100395446157099434428002490873988843629728338850088394494013563973173664064178063844109832758261788127054334155444634997729586525920243780583405011417390646350611750179450532933512210865930005993920903610616092272760783730821394310373463729827191260156041868577214492458200230910219019798636469260546716797125275447858944992239836411484150415377828174987659574256393803310829758104129368210183576399606189256885588161248462029883332317190809548388581163964090198917325748380040246869664966662796763999746559043873280556777351553215333438118946404833674235134676306132077250015638319050710161992740250657464782277300877147951661742571382784386148996419570102925360633841215939104833469209468739907395253979205596267928788074174608991695224024781141197254613337666917249938152884799972494914473260182446220376277167126030157971755650297312867784075157989009189135338538056437615513112171588200296507910039638528350259897123770169970411273622887352440352633463038159849898322826925007480506366177795919294116906522305178065626217825664628731877235662741959309628800937171357823469484356019834458137719336661446149178601563209911235626141446797205821948911792259048380846674706664566961519600649565947400441602544769395591228427202098250081068323636487451778985098803864863449994147736277940278268664932292458875375267384417517540336290145691302759881836080823051730064301600576891098394765458499218671659948074328408053166078276402541310087224992578392342497599908483528063279327373847873209699971284637740813543042753174344402013185613576895872802513561549743298626025201541861824329723409136894621106447331047019674922857024596950202138519687013833337084210598625798482435462344768958635677034938953751233944827355635494602401889387297707677150788481093403732936249376872540214432360383879712670177563943741483662923801043036041918822661342410131948195231641918977849326119025072420703754869165649800538881800666892040458790731124170146446061455573908532736090911946365551379504032484342113264837843953248436183783395453239462434974268804860761156123434067190064105606127447689879148818098392679820169195013082998193539385463628774477401831600199918459623752558286025589597637163899144451599829461987931675702098246647956451232554204080029080147259683155110850526592471394380788053510003992152762444495887453483292896287605003117572743755450459037125683740360502441978983605844541203576874990517469261906490561890242173568983312665457241785823540512696447537592032333566882678712867067465591277771340801371325370046391487707748770493303545721136143718792269505531249250027537028080779444588186489360206377576076732510027073989877601971104650101592289266767384410724909641040004995495491327468479958740378004759816480115864514847229575091743677874189860857665889730075648465633382374687815906332816709357657949482632225309325893614361745201948469657816354653818548269023057833326673512137605972552291301736323482650748407058980449304318816225184921562082118575694101684762888875223284246354168202342406634339532544883639854527049884893783416706940338258649504891978774925176507102218420393919203684358344211336295929613829997877465754175796816489775242573932492890098921636215639316713704398843514950699699162184705736925681625447725453982226996709197234534766467741756157691675826916049069406893003541188193877423151281973842618029748068410430404473825094923894263266839157309031097770068836208386904786058293590215943008499016275200465756949202399303928599904316343162622681052168380606444260862232876103450616534527802655571378165547238050464569333922182421821849034625154443256788936847331042908885828337040808219480895319774582801150304263812596666215225134366522084971206925555800735567663566309906191625643056004758327787853261702489527046854000426604903095728950181894825263744707420799042288695193072704215739434035679626690413577723992314411545666223295498554039172607812617534175849512966998349308291715381621140832481298557281918334174366308133677625209294393758328058858972287115263288578709847971843053727618106824668181264816701878487733678457980347287735405912370664580835300889534189177643502398697806503099369989122175336518498612032508219921380757603715292812556933817050448533063785783352679489101350883852801046006358979398633146071278932632704940159819080754049322308088950449467531138158642839147502124148529793507296321332416093472207255449434823547236027555072346607182510411951909514896681364275453529188907376358507097280488947288205344379560146363105697721696594071956046149234063638252460133952746201641992447513100597417258287900257730866768453582291269216336087486265085874280991814641408923693367356997784537223971561703981174701470199538594453556239109519520962197903256314761137982136774108123326991285778443796137634599728209177392318659054903255535793954756220141440547827944065563266779986573143361981312942447410206420511753930995553287344232922484990451973894611276176592019882374688032775965799387926371764198033397730827844690485269144394631831505557218348771906496334449541464898356328146776119370608087040911332215823901102919132489781293272103754674785875177654496772473443264042340419455527234613057739327985549527402704952094373396408943279159454149936628626875040703619545422774123291490211790928502774859358812817600903605569068666075974287783710848253900758593288259153548761498806070064869445528798104113020515327938715061968654314571728854579631937107250927447358970410913194696325268433670927866287879569300704556686164655609068590310120604993631183437956197674008315718252522294017421532791433897354793864403518812586889809708235731975226314909931464237936424534100840337463266942006972248204104631837017623790112524087236212194972312374879117907414681742676764710173710633294162388123100906689101502505142900640965790409257838676138176492236796587983887268275310941701384201404959895844423817972890354780049699815739587953506391941810666792774305065534733353595810750298157595642199257431164570051291066442350919418570284312466783499118571967867907182765220176152882464932417335251068442365207231734350038642366841113800663891338557142941002365851461910683254909742229208461877169967901558887282053532124517777355838762252924062707633504951005255567017075935945171085421209063422645048936700020649504308717418113026251824223115343762649509402684707048056036539990479483366887274350008004181570189322769601502994408286171110835270807195796553775965259198313191327328734663761943624955035131197928312131509667768900773473667255778768592654911412447404861315804915724306248138756331843492878401480378137993240092804824093108341994553123529643771182262188164941091278079466341702262690017810798129116264482051803824475113809047454367781578143570341711423952696280621401149599997493331524377705281442657642255835008236876743044386848588613566973729656504313308367835326543859014492273922023555137313159467781641901998423727592658943925064388018181001640812792609466402216555749490701301616776727142325447942520537865339936222819101462469248744991116594719753721839506349252227230467145170100320817106632831491865811945217590368702693045349787556257825774411530372290585394739862798391188328524681327998817545861845806652973271046772702687555351616681219155869601207599268932595507967965523029436167168680997092094318885826953935810967441019299003182931701782440861726070340089070668128379869730449441611184922899208038731821078341908787053240548369233094950864921868763327903737593744286910202390457197860468752987260799070937741215917117844615094753619177588548988482730984629667077247785246910393113594517965046940914340384442246804238083826293669757973337461941503158599469173020842537961038295477709256968530899401561646046255953432279011344052577967171564880743857950733674146544264506937287473964496010598283027153315894903805558279669583418671297785900984784730549543757242147196473526826259488669983341604028682382181189695373071901003819795274275955699636074310986417553683961143718318884509816096201143036404659574598928555433034616089565642369079009665510028240148612160067779833270147417698140343587820228825364552854044724863676481995545980360863316017028560768972851902099529893269107641172856297512901773942532561188666842816263292853050400584139277419792458036746217055850392231348080481421877445187181784586727118180709377377937115639552074780774701598296707915825403252465355889618348688513722736534653790976903518602860272859799602467446539047746553213235850191338038480806425296906747553832094181813352851601496221363372213216263723406700215216037051373582019672515129473714969264246482694837772262481375312764566344416670340793175265414109068697973536989070842717227522291710778919823184859623785198978242447609575923238007683034822954291420643629650129728144636642061340791797402182008522568987058810908307090581041037245247240992684803578570056669263431021412209487839148827754230416441680907788075911186377146603983940688760711948387685693660076229835593031642264943076138891799213961172311583336184314079494939778045494762185655569322344295973590579742686682653238386672572133799674030251653532704555113977107095011139674650192172237443587103220152517162366129670550304714997573015921959235645194557004908621836605220469065346964265673883065932366321426676332807914219832892054824616512241517777119178882817863730591521248161736537136370673132390059616661479691820692003041771591804950453457575816450468157548708615978877435909924040303155502164738947802373742984052144625746100388320554351895724185492040573137052478439387321164583543997040114407201187175004079205747044383223314653922724234454024111241353614526934760181226744951257294353377414316894032875397791875503539286487389942226655503914967174314911547735756946978435419116723619939412288066231297625440437134953855224412368798467659681164543046429178732660342405563927055010587221104458276965654829344859882463107363462975767341498588643093269044560988146646501071346276576126504934441224773960384391589579491419318330804772950924797055179455302783359694627628686941577804072185994946669363376925732968961965175007040149990234816885533144508458944636129219232254839176736618486089872453435388575281558132322979952626982548299295011557299075095949342299757601212856705211904638645438116080160559438459554993639746528968913205767430826342051521952029899548668360295045689578798782987999429538973891864656115565598293727505690360906748088609529871500733521805102512707109162086173752486508900500675749592681070872596787203832131037501627445744055717950481829217269022273885935423617939222386730336641547046181703552942043213913536510062616652967805818604198628435428969700778631740552110380390299460997065462893927498968180001043299193415401021176236276814441789959610031094818006259925058260758520102065388813461321229057067408195355905966459338011626165146581161907825959378109744813792830496888220059229059401507381894428121960423969772339109943511869548257702002825420001788103736444012587641302440604242400733450636090233537405826594153869476875228933029698683526135177785403810586469532018234310467660800798513466010037878586830103719095391552217826740990012224590653298542278430848685452208240132408173483878465732184570325670643709433107268709546387710632618049773181104177443565550103064658414387452875523820169163713367960871578311998299634777938311805256244991798464972595236014191324547619278353907275413183295242520225011319426964848464998579745871481957442506290053356140853931160478332046897953434677019178651477512432964753188932331834278828349965296833570084169352101336524379384518082852422196738202275246438142041066334759738028507983030014766407162321452426518703012133970068818722038254156447560839012548937661745333332360819047869444466778437516281658776381269594537842546896161749018014538760626419326839427467434453280605241458126578161558024199030349998984528147765964170838383763589051683608218381148942636220342190172462169560531013358826531515021270840934992397791611645017397492423447938338827587600013633610102190187431516934969569711909184580692379733140933182354311552221946344164909260908962606176320247246198747788088690230757979683894382825895833061273724919517128237010793963140271325452638197819153743129018700430709572867402432961599264914454934991665005509391548571950270514245149641864896503259919152810321344489067917072673353561874457395817129150748641211706480342185510837268477775142812691341703332496457241529575593578626123936360200866696116962901843246109619357630212093783206326556818583314327598007849726214537480350377906703898813542649154810126465530157342954431240013122413426678025050984892429377283120923468886046598603236879784502048029675141278673936056690480530157789956897006290852577050171947408375962018105356920675068095665792803950205005110398745453416931812809260455859994836777144080038824834003543660284996724097106787296180956172680743661238511228446446574999781175832405916693795426608686948986728849395426962567681432229261026894124217857628586698376106023840012578476678096656129173052613005316095503183868795409969722340676371292626546714221863760882478187615779349069412960569279211546482481684975527976420368925583543881528792989103626693415720105829910975865533046607460943609524024053727356116051491548868158312754820516431621573000239842575030214686031298713853134278120859739132951446252304791597143012158015928755272878195638053775864189213212592749437682716417058574202746064835390338583277165610120892890021225186388142108979037922769132803559483297382825922930024729380314457056320741432316092667337028992177102305977181931182174216108847603636223710101151151962628246297767420329785279572965989882306047163357739851039811539543224553574652612873943794178745157497919332045747328207886357916423586534145642389587675736511648994849664037569157160482262363376444698556485479612149407972108729470503316166720590785293734978809804362223111547118189617641788736075997463875230424531394090248751584515875031805748011199890451679366590753258241656061347909695533825123810021605647484839746202883533837500826099199944089962579127185542972841535612758104925744166753286581001391022903987433521321611006105435009732889800385483867429461967518722552078839224141878331173550115265159493507241956631888571774142639493600986914175997891268426020201543377800133603069161999699751867250753450001411181064981120935807610639030923739888413879026999684363674363965059262435121254961214868970987086516263898533914921410571030466309944319504414235850569485939305046292229512680014328018334372531471063762470256806183426986696464496845027590001284684666835552532567569293605302071672467269854450819706159183105030409062143819884698137398561887557805808610107666561408811211206225225090619612168844428397101229539439843239080543911158537472232222356309627024558023954528775703235505915206567293938732799342806619575480698801064384415974710262491409618553886729370869171334091194415145437170455044552699469229648251543386731419508245148574283075285577202200844820805705198922329465211147614723053704983183681109183697448329075427191470257991573618947213115062621345228182023044751019332844325974354278585286537933834465979047985720369370813323731703372461987444699810132290229703585159607638527205635870937325629550523567879757345571326279010827318202815936297150492790779509141113770847282656177123772782934698450355301208327048358628758209107511275809118435275228161038145297347872668291008667884724237885842430721681174787113158413464488800326264297774910372737600519758172314823626644670080614188426995124643141418293181867421016215814851336440209030101830262654093963810085354672058745563358479018303831408556556910802851203579899745210534095299949594454070478846914113912094796434441819095378764162062331405237176996749493092237532226334823657889623854956069653260506221091035302438568438241194903344139026884284223644937255820190850669852694016672182797875244397482978784478274615397176472007872265521836913933276483444464691602056641590188991085336016817857701296475599872742531986080921537589362108105507403274314131408633865989258357820553250097414910109910111401779480854637795444947058535525264781578068959014101655247145329819747997453099098935001482233795542467444231864491598494638413398891739376461885499057921034386153456833022835748015991811535206171794552552693784848918550074811358374015031476987779329457675639280615116450330234675777208937639783420313989117725943277448668941805940496363024908659282415419324165793272969585675637306373351244194656268648649545118416034934778829818379620525166938245191885045532846976132634676660233466091400708290384529707750676600876264279747273315893894926266881795102643812060690872043225085589056191557923087757052004219217956586404712455018003232505245759325793373235031855875323360607725298968999597836385769962457727522469303780777253570302357616680045353535433641511501288362523653607628721457904057602085597198949171791091022502704061067313054827709285339554037695349188456845367873285737205281323505012699249220305996206104585568190654446207823675858239977391991608235222439026149023540963972717090042249216396446423387481036853980640153303913338290356292517140437049861649959080152308476700275718420634951254342236872359010985458534913914049721227641484215604606804960784906580509026298658965593913852846815500900461153755788778849363278481489402583058348264794787412179321244471260045244371740960158212362815372325096049836700390236398026724537159262274442193728525316539032928258018590445443966538975760420326991245993074581014209105160387456365816297875055689793483272790989519714819651294060372481884422577041945865279260134767018700927493861303519125944736910372769743937690153003274210194289221385833992539161719549169943626492743601799438472788122979377470262148192015770368793047544002164602501880053004944115273691821468109305026060322778100600139994745443517625894120118240345988351451427642403723423994767812784554741569580709732246020202159012493402650926293268030662257177516017118456173399750173809034076439415363823455841816583888118914451164325817345393854458484165388157584545477403446249407822892885677429334652291115572525300909969977578667429727242406928140553210936061175160204460457780939713985563965642390591556374969180286490683547510888734528159553996753760183986859564640383585400804838175734273133885699407886567779908060185143984545740711080709501376194856878080947711210489016725294882416045079167228066755829260158896631755368244497306196856004821497733180655770086942482064179173028074577105379749975768088050439545070818175650557686992066139751420228159681625949984185164866587350806618563365472631772578632604016487999042864751843355585284830933609620293142253448268153861928903939646305105175943003552851804907466258959190661441929883237361012809882727604413568276660676518938441994638314723982743839874177043865953201978131182961332353866233128135544247634237813746012463288639055052542201346144082322600812767237833123940419292578892793133799018938450293413324295027853470548577230522572017601618823545089062662153389807510363229150942937845221961775760540345658742951298706396060026504339728047355387562912493211436901836803965450109431742017268403306663019453363925907090674398689118276216564377265618550665981231346092366790681623100833097631447161609467680281336339356682647488455206178811156277546818866588957524379557887170160955407135786806885848878040266435867194015527830161793834874677956387730866141143076853938821664442981238527281306759063291594090949839477669295827547815402082605881855163282077007024384245953304409211015641593452285187559126402218950461157931531566846066041901784890151593967582714053799051155039292038012413318672412927491118590600255514937848708164452839356263825334905480064692850036263521282757556349492248953132749663840880504036818326124860456950040679988941905897310891199635500404730123002484757778398822108301420690469474213664932089391719535635663965116177529620979098301513892817669030881388452400304318928675955700548173078733930882539943827293641733477612728099901782744179890442179790761171548659327477068711989526318804295715523401553916452042005707703752516850030247963947285826468381239958192906430482048953102057322914145956525757682749962355760060206344791799076089900478007397931824740586647265343099514601446478307149042178655043116824283449717381471824437155771323287819835695980155007846787721506934815984755325803186134056222372759755442882917518380201031374568996035863696709091367148256768417150131861809590488909401256225921644767126471497490183898142745166366351696183698083313891988432466528810157078010756301551196676864216800901536246507920184636840455160378140721759950802887493751207320710740882085387838944485056588551912532383875986963933838746272941493015501391709536114789959930354695085522107831743512641516347836872040252633940808786201462027160147994818581516739750369549690169555608794515988024292346141394553095115263277634243922575647420456338230007891270725864740959912081224015534427520102520251566707051127593654073227154916210277661885714105845766631531530672542517494546997656358083035496932625091317891327568826546971018576266516220294614644451426868354096342632636861922629861169351945356679471023960479953737143909049324281849011768818322912353750382832250075797597265629914705206996036653843756843589447744784189823401931247871950722418420063537345820255921751603865571455736196938247690429134879552552573197211133811979167086330537646437961829803806254129836205187273953164205978152203440940139027713403037186900801992560191346579159031760740812098610494458385197712114730074020390751682671531435399881925137400822612921024513957802339633301658426143634190696194153149902138163096059863319962014878978082321248709673550404084246749243716644482306135263834903080091670200809681129343410698820637125788759400046273375821869813251101190930472952313751353903726211322427381310463876955720716315430728307017704124478480447262749701202329421151545405103286812053590146024166228234379519853034117758977603596325161040772922983101162170145341233449414774049962691511163225285151417885408183240163828408744875670495635135350516284122808841079208966970556927716218575481625124641170353938626221528339003790745505686721763709648892710544341665673009599886685021887663710561287115485592087371601500988475489860579658357921334349611637430060791884665278799831640408223211137074986492973392610816997798386204436006360315899268606248127130884012994401246261139509695457147984515393818401331470431783913047078874715929519076660464838491511604973115348310898176172797085894363563876152219411128690272467233262961084983101081214739553929027943203424410760802524406637944098870882491182191789001277429331479126813708008938485889113159429304954752324167679761053895295676880293858885486768984477272262539954836308873712310227611618294166188573673692442536967898390930563190010937804109910317627279725181824733545566622713854043857255878472550432511962296736522256384966174621947119332199095478208857397898734231929735294591897375624717833155002123158087584849609120077593266039880295000780278335713199718447228805724125659343023565400077729969732836734374048796375691163496473304269304744379426026209653519450032870780040977218580234876490931177175104351533539977136116696914706089449418205822171505814498851477107878811897650237492418264422265170800039687984143775492556203901080092987759879459986474801767704944987680984546177416136550608344086957073358167561585222206812194394295078492164600703577918174409091840404164266415093082016965936411549740274971676662839854803694428978688707353741610433528605939599511781036725942474494028686348369516371572076692059128745257777781580148982349429325018706495773938345164849284920126583972056353001904892235805534343469425819616891630649842065346936992645646513558433546841258748336254796516001524625620915071700815628830205731673858195449801081318362904138183246545173183951047328606325952837475157301190475560916279976307868339134807145456322425206323654186196398703271829656847735620144516558360541544516461101919261716810210011181390431382127483626502143893178116128608939947521042182515797674821990683355000348577630546568638771260354356107617857676522293255373371247377381802101703125415231393280879225920876187507058110187992613646635954976651822082571427326618094507612670528923454384143789008292284553999058396238299732911313664716699883613997474038070067694188045842847004903071759910322297187649203015303684767375659734336823026603489137359621333321026100194369548225939707933562676810630750430337330549827480209805638535650557192065530561835669764678975493608113752954068088666417477412051031238853329010619069988928249732635709004026451319957530121614334582547274764597835260821875684546925868745069841127214340916267790667621738936471670209951146420583162675781348623950661820416219368109402368433766759666735179282872617840711319774794340198160120736993701185927409551203494884275843480454859212316009081335002786794452677102222983546507773621168778817431398909573951895460058673294869375114353425077422800276414469646902427488103715595772329913176219518305420411502765351703456281445983566958413276453929333557198287534882829486052227163337146101094318170458481302261281432635243254244317002335339728500691508443892762623550100413825340492944647106693688874732241807083434629835253067373054844742478872512405963574668882946187438356103433748534017215697192841829118275370859073639272703781053898558031728484441041193803516460183207280603571740958754571653089504125056084390759833604104826065567028546772475649569358777598388477902197658973814351696781161751186093491172925556617605727081919445353034788047734919666327715229646796600592036053351747480022776103857944467443368940788530348101375920685665814094145910630453302783937133342855145661206551502567825311188577220510402330240423465378867912258238909815618484493279765196325515584899442683800824170283390175959989129231824143700067018783565354643559554716393947862041628795031373962344539405196666852292057093249814370830370001140579942270012718276927496437011204647925928425485660716493962815980029553247337253497188399928541047001835403348035324409348690304014655068903658903700014002866798017114187610173003912950538384390766659842231792907369444937562149074820085730263460065063161284615827661672790487054841428412583775015138020421538299914212854150088949768979001132707563701811094665134204538008164238559236440321459387618246532152049855993253836531808213082835738311970817463744807445372084337843703060848251330489689911885764258646784351972096786957644881295258826104087216319384368223104442985195866739623854185459216618839495798691557326415382682342385414751323187450385224198005230362735122279513779538385521025036705982676242113078507645309122072560414359522810467360992623586855252069131421587168487690271673909704931054940702429228815487948117118558377332666196981368113340123997461429073250245410499896013688084597649474277800497990145562636875886561455649284898432214134097601531984781740328953113586920986397724752316278462161909818071977327774880915540091838723005156410753423332156672965927784020334050182438889175031772157351449484602518431271760977861032951286447345222516599233467561181790282351070475920780629991259154618708942765747305042312421353305897286528168078363412822351895217322109486224939560907266890225842540748302227072692753913784116225403424872094258864760093878267553553799504266859810451225410031254109518597770740631701574328309803793260227902999540608571622357231054890562025938373513151568679912887510847361440201254983135079615676853580648387596394699331966677160666530401769770780847122589776453153943089392550693924306382229228258129638549720859633724917649706274621088465915150401190976142313743265660224077315091478296380877301822067242642001506690433494593817213952463271635612521423765579657245057384334091206424211592979663447195889487029240786283670043840592840122990573591825553018850614605968024594841762445763801041220845094356517797686610560629443522843617645742748773451657628676625314664963302852945933797582418418714795249686230277271814090574629889205474447341597170168082381798071713794316425576854310831155753785357022109944819859448677174322613561189547539933318389504667587759348376780023416329491747940674130552836319589372815980126738065194857480719412365702157178839609048452873792401068550462997748224544833698149898941452436690298519634520072205464323236726984824745142106548116567748785642711799019773174905991871615769332368410055927803267248801057981077495843020754261894058895180249781501920382374155278870414590817116075679450534461570241240007074927417612845324019530478070881728661957974567099567505910937345683556284425906236368271996991618884082396863787662536776666694299830125912130339488899054737050638077617866473772981362914689057701368578723901499659162249943478437822010243937053154184098330444757930985304089179406727078750383144606459920398804822032080472798492568197289132789849687133671656628547804998405716237440885083803747064829539141735151316856252303257077541025495136560579567589499013326269515097586039469882291859322254632178556096071040207715066178736857398262387600400150816249766232992144800019323040683396497256763981310841444808265959151010113912086972153512501363426975079660411980957033796381603657980679690697489946206340109230823411001923448829893288342346609506995747713711632346864024760867112717526665464504981188982955109496774020308190677535346912331054923112085832022636701009383628432710249007716188173264746510419930354186402014249830913895557546603338576135247417317323814071154532580009729301069589302156628691642387394420949257329075855864397805081702509338126311296567935592271943967233429146013311375715667792810565148851357509133888602237870250702483361953548286917638176179158473650114089014616154722207401035225694375582789007953521197794981664225268043797194426723568587218782357779088261895782448535228713305854184328727336830764080861814870045471379996642067475205419709470389082232061237540872363645110830983630561565116517145377029311458541068034385104289555405720877051272952706816416895190221829143936884890921801222213544585159072938837477714351660957873683755455989937787638612838564176693880446840946253974855456518625508783101716252695203050101813432769587865643216313374665374464216357210200331450070423176031067242507454867638845407669254477696250850931933044095672631292375262042747113460826595468444606752343464753460445220291860273902819680708839006704767303887625501413996029595179391493944856580196999668482904840833644953891071664334613687627175193236315898893955719313981480129776201684312684485268988359057827940712022006558886427942470742439313961305305238803532502213478407228714702204873159234452537275179364157948654387857222650465650179295349893538027709001032157906460432688058913776245621717608846553363283401402339777313497406886513939877584415177648805815536239049415461577011470383312572527718484991420659604161507738195306158957771255686942468570056227934084030036108575096936199886831720912595440435298033443484621458110034976446825535772930220392004511019524583522786714369640992372978015717960669178185976212244457038742361523964528553600178618301356324893337394705979888853322561357847426615297500456926940837193074247952402982137565015864850838529863481030122200663250185734699606582318621484768449118052509975393990905883102627029253274427987432923219175608401933772943510343702972560229678074889678697389134166155334150163745809750262347006884987735819414993973236827612498999364833804687397647400757566881924554134719597395358285882836585485450234614194028174611375145867685442129650202181375431434031856673421662481316564996921466140542463745557295859599397104970682527539168997049038595221146367651608776634059030041084763236010213497718280675110370044504971933335186991626721367586564578353806912784477222786250447455848687113971469166461448415090208614176741626545264155924497835475774935209670106933519817570897653630529019906831132518320167446802305459884721312759326162058594780567133873755337333719517564892088692039381389413186838525053161138444307948991957597017581821414057821537243192267450953020957822038964929373739262303679112384380098314888769739673478792885331435630190989663375135993481598874902265322731947270863092663390566254415302063719631811500743382844198905483353708455764575500492042816527702780267258750059719438426320907752420217150226387137760037438813703465962732873493456513147464664059146137652627917975588439123292721384649893508052017895748700740184847804035038702653195355500013708904994596584638881291722017365176508949776905992905753964181158918881761665356237006912658771613941776007502397191823397473996775887756728896769965553013391153459590376599456575644265849966699861715900773406191308277882282764237657639594662193570168184239103040410505576382996841515733073925783514985590735827958059920087125390833031211299430348335339921121103498456501788971784487795219540221082384764576503539198480407750707551797516933217773607515325694446533020370767265835456069946723336579081022610130884769443984745687127512184026263283480402624227009979795578093639517887397924973974453509926206463885174948211143404922844682421416479419581894150638055916277490342120653872792385849454724872421228662299264834840998823038013990143373796731158091324378390888790655646115299033718635398640921965188437336276769041063516176500467897358421560081619088255198423687990007982374816342852409286863184768302186285741861465501700639462405790596951342666189346148614055601969570384782913743509710982279918911872582793447702553550234144708242099900779056466360207266140686555819553858294612656427536681686739013706530527622606991126827322228500318886216146305353781554415695403908447497799520581451682218823321545628846748152733806385463440165836621898631766154927042720815461693983131165136447520773278619798654507302547549877230612744405931212813128205867411206346979961405620975044710254601448637068916142328699995673118450574386652536512651522927235954792475017515782140603329839766154344405960677749642428459663716694088998850077935498514473963574272733682431187359852025939381500606002389101894168524246833540164747222444956006895161099826046571370958828606035666636396442927059962314925846147046761981461864336280642132231656973559436734815251913701092929650560208511300758938652940106593110843445046165328493094676988143838472244460872497204134869066692115932307107687125613211190511045930395045958212192669908703474048773950568821798295213776944109951828923421188280486940744241937283085771621601806735775619391965137919277254539414672084701373945020784651556503451845562918029780065698946793681920215305316575763362429249489548605719000779937069427222689320664012367920747273606051537733314473303236622823031926775445318915299719409262546812043239820294575329728964329722713149252307174631707990769366413638885930582240638521304854737257762367880569167943431135187747671435439928719862019411611938469151887248727065929539074124487619167545315221000022807497418849856681870549285370938692512766488450032824416618326068724550902412738289945487253040292565221754686286544907986430637706801762515939482234924394353246147332695553358306835076912207387311369642509273710812745455003515600871143048869292166130240899665383908214073012548316593963357647800059740352732710139422024070131176316553785017464253391492611477979784910253716655991307730809017827977579195983101952875857031983095160548619941470201132481443723180593347538776009722209995860849041067932858022758818037990039929388471940577604387356974937384170426982966524080025695170538445752404967248147043114187563917011893158880964333887568023198319683100535262192786127116635657560053998537870543020359848402553749698705009073536596320045706683094114350371239011139666821566158836383702652863043415314048706130253435208767974379682502890685679119028803367860186723699271928555680368728426222482477624349326455000535431862275109384405526997724294601475688489395117394043485535602390372478018035632942120162231782973584967652029474812830734227876625147496479839454867362297156806310796448303361325139254878848288750544763847629968537558284648889617196974120466799383919439135493296471844488400449017915440698849936196281294382187189673150358853138921893690534227301624080927724034293411144577180941771895750818566129597546309695638205379195400106405634783482747364049055937393014140725348898869789362670907845814453700453455865195885026798138000176999054112277731395751986496322009635082465401743765876633592427685330080972441408789347868245710463499991519481504806883292837831604559929164039978331879973096211318581802577105538587101722633086672872032499306924876335036275427734432978941538258542418058107030181573978042604224884036867939101010452732878678340296141970077285832669637819009470608373876657070589628172488794089357555674363025528760307116588658018353637449232891830463484436366515513144942795918046817397803450893212871982828214217741852505494920602364716265398012446730403963104276410886676451581034248613396029388468359515362800230369219149054008010856393461983407086887908742384847926761646868455010248525932565214899204410369600253173322977603683999507106156070840666654562258171723046215862071102157275886445223979099834038023419743962994838300209767842066379232490676346310558651875502141410555788529278143522476288634948183834602025187836639797294332674366225881064474094882004331798307221348377008112768204550673981346936094402606555486660326476748946263875126841896898050764622629813930434093130326176210746092594976446692023437607069014700238798972296794442548974788471656386177944865083452000666102283915979026084703006447252732619082665217893738945814586649983009134354276654231289165245067107378354017169784749603236382662560545639324192971480886209603163221173779261677899037693541658616221751130213505351500614466878776141159653903421745678305388061290404237893493799118419062255970011269269638280795459468870830867131286027372436245860351362941297800325163446702637359433026552742322397955050407928666958365886009941638448717180466444515038216375952124455850242844251666012706807133029493238666107196177695465421265082447599317873763002636300079089874920441534521597286485023078523553519081022876427090077764133206077914560300131632063276939104315476420900295290221859440575221283321245521160595272900070004441858525317324197927274705793555577497874145069119947835980645684542849473603975846640593042654279400855437131416444905491994429445170440849929401230249883651829709928788590871770183864488424921312002227553871442893284052459883755357774928008879585327856232792604896351692702455959268005192704342896412464433890996038342491348947626933251703235355457753370622322067872613372443101213559833512266793783358591253538585916204575519116215211620894929388182591202565471696160933185459414113849085592873235812568203649383113423384080872444272903658235203455011535679440989755515050245670689429685994254066568656487799569673059081316601401488843846845328472775344090873056116828434881444135723707840589991801437385981359525680633482751677345906514056281572229270658731293037652901324909953812100212077107309773428371949749222784225261845245970019089445738240928500106782390635535048866042717678418347030298169133854936765129031500605042765587278318176099261245691289249622725263705284684857182897634192921949471527351837478103566515135552525195918920556437250189360192636571875416084296185805097536904475864731273275971970484936161265610742915337494584164279863206256366488054732601025675410875251018434708856498629062895865753009739415003170215683886592958250921362203588219000682020035708295734897024864158619769382153494600785769531424077665829331717939410544218731600014175833132440421338186190705040811533928290127449064024685989736900519614975038165492599266910275917493883910194611657930354085621413447142522509583375430891796829628747957203034559346936690377849461815322860033467798137912492921316330440966961128315352109191935156862998126064741676995285778321619061544381545849174699784217795998463039395177271974246102521800325210424000843543692186156620792955115990488006282822639450622638159056681799725723317649853918453813061099021884163283294063637371064494192813908449614460840287802935553256254843116674829280386960409346254945557344400092707373749286562384781957290843433969919161658633484360180155016996576130896193294006488108549102581423513008645297308227407277170543876331951616853648447713413286296609708106131085376299004936620915227219817733632808350355436312113914710353444347121060202167561618715434240762235866544873960609630726386725168166154509591748547734573351153859087094095437572365871644818454257780302759695024954310580601623549301276900129468712619776487492093027616069823845335279215965235212893457149880682635438712989825616767756414176094571288379432097772913179158155798464155168715211577488978275098784393944758355067801800353944864424140991324042398334005613329253775495037736529732667738869944077687779222049409089429486230784963417269968515595527544570070710664739374392259226449361199332791597327457969260721198523956635118197680548027624560284580375392237825722204135148787099420866678934796567125339140358227997650840686498790008462582021631743205172076249034777122941542346163076163132330523292243552744324007932295336949615163603479975686557440593058532149495545349839417291508713279359625695496597659154794886580739641922261497473570572761210920129877164220709328837266181475700705726761590688353515991812313665423638146678209548089320651856717394434516006726527110202244862578733284386913585736999511551070417373749792642618249667702457005537322537413071270093940774218528611828889819230845706840662539959677545565312512932831423340281705679204582027682222909584709387241233230929773070872732313124789973229441185214582917505238096348017108306991091240017522535154533776384694581791742311490184975349147390297807558494824237261634147794653527086425762167922707858135264493966373446175017832751588132875877309965202890506900644938153229416661590032405486394461434792410600474816276675678408556512942295848632103984947660855176457533276650587546071332629619832190323749920270938958052733970262599443076643740391172788447974964213152107697101963610990509717677261163708649300047099273357391773597911920255139922276022696408363701124178286235314745201241371605330665428697318547165612170685103097072195377303165658872350081586548942787871719542124866386178927434831070485849159742010354563963874391370209097854716855891997253207243197495678556455472989943965491719590048423609281997342693976958260795805914025494053911230825444981871433391119554984115493197949900355567642423750561777218868587560424153052521797845643720195312099991911945450932779907052652971592397230975303474183142389902484533306748205888359049912413774856017490370670791830352730577685796028495794870244957792764867362221762457744882634450962356155594987542736414425655819013616806791444538740785281408861594835710047084362427641066072622215741083129231177196766240532560142103864041374162646438374626593625132873504093517428441336444433884785823867247687857719860514730020750949669350196567032754596276890006567021877414516212821669341803135216169128423598590241981543265026344918358984004069660044910068596172960100587236509821489676853290505085588658589176477941863445300237667327219572548786798318408264054585873435750525291095712141510157072200194037090222680204772228961955457173880598002040235455438536432447743162620584397332466036465473475241578674425011473835256661769277963032108007289224660294166907973232420339798722109107415585581873284360395708608866086253967145263032437635277348032106652134906116636848588442845142638781821759222140424545315632281287216396001812493035999127460189871161901837411438766505372672451063052755028064944563941022069689785415162970271107357443954475301668615815305837564851415023773858371792239067000350844009322402541947543899079760957240491226948136754107971003178364648699139127085391229669456610916717461914433167264244722434415901351005935338306358791646181922831112269878731918607738849924305602621261918952131423322334413889814110221248878574714157917222878811008131722503601800378873070745439844097620817397857608688923578539449155925503003528712927924621949432393562393456087926434919495989154546484333368897432565736259271074540426615515725247461532922896494542837559511703978596278797059574761922390785024665839041167459713686322750622021886125674937649433917847560478482726677265631897910923518501022345712277890518964145119123810674384798828580818122304647472969824426002262184998223657301644331955984622509597425459517589015587266053125348261090630184272731861801573159576557094052472454146869079766165203169924481113145258513384006319973676308872869299553489336127801668230682257785275340366597479794043449156065651940227458591240662817350947182856364751103964235943501743242496082806250960861104803241071480744767502395184213206249611624589233105450659040982147904980019687178571817230213008572979715121343802576182775805855263440611431326498789271120091705017334811839879086106341837871048079564513507302776027171061982893844533622801056303497504379256534091298901276116187958459161767465992599459978616553108971509257652608718942980318029365974523511045312048480016440093742570953442627062506781676329702850430597160339845849349821667589810398954724539451430878419406550819078134219132398130479269619558205263364511641291001517252688082842087264455944557019096221808908620163459032236037499554877245860424552162072260717319109823570025747707155268778153990653596552028885110483645094049048979461379137723710746464398793253180179388815571413599815202015371604368625667279999115131676377396190407313059380758719012497979574114135002947000684475496447215971444734232113551797332027939068557349233789622783394823657872786978541519034767041556209547975393808441524927262757137313322429061346500187558970153175413542037311067448092681311459042368195658365284974766598409071556775307044207267432493542684674952455596497350627679373041071690879359116365301415310840070611354704589500341620547355603104606489805949703596874115488174483515605585392355465178231097732164584538712920687235932575750018216510268981501511659671551853954621757179645617033768048132066776195522421959278590908467979079872972445292802363925612347519992301642298287263373162368258553345680108502375272620322812026936994959150675733060004635245377482212290148369243880113274015782625594773880146572127643618620229335853215343325363809466873044031625272027614192191501922126984690947833036402489989421833566897060323932374045462736995299967749299051052794109935764370332440542845658806265110779068740609690555621945020018976907657283181514566058005445418801244186443244617473603962757141119830564626626986559997349685940284149483006142473770718117201210126459109952651722444251519576749073913916760970247074104314249171918379547994317568681022281520846300702873798945193475841986473966273100961164257083881063207825849039062717466926817437875254294031855912531686001903392361067585100272186234630448396213348765231451805803502691706520628641872786873427016321546050090339040314572342173023418406395161081845995654244855321173784767693454396331428678091392183198108275754443147804715101526010037664183557078682834107073416539054753204066352022816012744760744853701887485037785720389837958326432162957764645052171562651212656590251221581042648553627510744691779717818677227587724733549774592393317555667184222924448346988333527809269570451314062638270787215983537193529748888852206141364524542129099453751463357591889957395673428560840636624369169270504954592064025902778958680066674972417727657575278245263683516196284514782806822423642623023915096822074873544000806426300995288664172557148153448160169775334722469601735946420062613250222693932200220826351897577469817634496861963416070269603665602125498726724754427630392028999140406366825848774229727092373943643027410414212683540423406420867619795916981209516200554753855532060830475377774459688649276558882684763217860024467170349720585046371429807421324084435224198744271542093935800715035046724222756688533526173714034007632277694653543621794038136656560152151007408849517357926876235254135915579061845532472757696712101886168772379225459997776577069063072480927346281118333816809555438856053560733437675203570446592880872178124671620107041553555439063465997369737926288427994504550776712830444623447038858244950759999283819068416107206987356570397402553883070146271116013109106050807277362582648768342065167918324630597210090919672098396850727941700819434640378794831889003994770825800646450163346875037777141034632647209141859165419004084789178045282230703788196993488256229277012212632256535227889135593523394002096018619092326814698804802251581683310367559447992384520213019949677233649618428822417704471068698178057503442677806009262694848712467608989923395762616590607956256823891590624950501907185616265992234955830220629498893182237020039529875216500464926339892459547884153685823102699075749870544325647981276702997997172745971206159687846484362395830664846190470660375510519944355661799914039134125980630836961463296155386841653867204799228493260634663940759386722602483114501473207569148385120543704736402247129400574693424205345374915133608883054890216641436083666375552085418823404249134133453457981840926865649438627392256211091213691428370140043452428420614203401078233863278170459825257143893392351887951860364737840710843232357906627700468062833331747980765043573206520418158696849922759688182872428237780890059571062675409033101227177964304624406358970003890416655670102017324320247184858487140642726846830391933261926434698536343304540809626698704125620540691365295729495536271575400553057758500248119088883425199864144404363009058118556085848074796151275334362029967266634176588311853033797726553423377717055258781943961269620931622573196522053543226772377890493504145010709703971205678014290013164397111758659210755237099828603794162127836061085458798276760673138866014926414627858721126286361140752286703379519892513345276402159150709505206418283954842347179350878081464058066455037895434933028668180044713701265242433371881711126528899482923114964709563088672689995975935299642904667489130144542481673114955701671695504964252617913156586340725413579616880573282539151345941176295338173533244142485167652267285315893825281677264391552633364708756074953250555952221834660969341921159567023131631303950010640564499244246740725600624708887599480439599621322393905763927247723903736978481772715504370875659681103002576657228395966610791680855916732164027966598601217286999940148878582619939196177408741254390180084496616390119957758627402137809195990596745143161991819538274170233840504854543857522972289521622911471485271229530933121581877109572123918435983219785805206935063070929796102074628642235462672653164878362861480093066238653198574342963459599343712914009998712693482706935455990239514049781920633961153537664370991072223756495205843715095619367596058825397539890847326563180396406455888912178203929003822773950499882240936417836506468857910435815258238617523386719358577592279146919240148036353708192321809203272489130831769236130720000614270962799132338629114131133011370305648643050722376862108327033225290313744656792200205746895876520927707101946653707055921429022773758316573037931608303862308965815974464552037928912926744494389290051264157420068543837798947313922445467560342019230867112760358127714312693295940240492033654104338411830048915441162142624252152966851676166789950137637497108001949784118294266578839678174323019349772417979214533787719427007299554709826867819257006818922778282651722281055372458340960963913803279991667471835674775260993593621501684780904736614934529693340831270074958278209974960679203364452874967689219373288803567667756008300830090755228742601210542665712012719111854013560127244164454745407442769033949712474719657140798582618667719801756130606003462167208940599442853986978477102171974799798015430229470894336882500813728438873195327445048783340595018801709114635625988476179997609578548149231192651527033919563909747521045024214519127611737616592797817585210927138857876557384287535558470508139897505329731921303503970254811219499796925304745830455745782202908510255770077218643772375925965320851144667140585876022855958919947808826245423971371394072544615035602556204883583797839629710617116822139240418174223138765309998400670270831167031080136236172821352614653303631405868890636699202236020960998995134065230231005297215944784706142513997037173661044780884391897636965174976274244193329586203308542709420775042625879649904143988679839476105121085090849833500222157962768344381872688479591051789536261183996998901461553407516890878572910293543043338136402271381453441614545731921802503091553879310396478979545505906992892107182369016110574734257647207243851826960872155248123019332194180372277269582100311987805871578574953047099104033904676409299040832208290142851729342924080197728512896708543061087521925766687153139580506982733890815386180022962923328865382526820208930544614983913254521806026981640130745866102448003169504349291712210471730913273699716770339760743864613307043651103535122411471858996538017738479633349382533741713092531830502133378818849916135991674968175943360199132906359407944642326911817240812101471265664436575313118512147331110710114154707515934408579126250016284069595600631774777934329557920981252987475420069560832767375223889288950642404959063063752063207593063432694181198353044754277915014742517021809129738300468821566023696911560956399680249947259042501753956373049385763930804177267199170296588460691248737922011491897123819241118533195246249568636559672998729898466329812696064647454906652525315082301237309255952759562229506771996753382505257291460258114342387782253645236587649824591080316021639150999662818102128726454980352284611423723300843237072351900257929953952183532476790367145760958786008045837673281433102068193019752266546360340260113022870635253732989226169515623225948538506783064606059513531815250094003037782061823284445983507273624807874494321044940907507554293664788277213191929017802237884548363576565827709237817355210533281192718769814632279079901225745004279935568380353431632874966945228146898353641790914430879295873339016989480295362088188906759900806564219353307245283094522942936202132395692084853768028851530780075143088807847187418237353300839359263018910393370849452509659032092208902495182684345391430708810089750243665430101072696896868404602796020974641115957702141199459360989524828138726116409952584049963703615743571642169213566783971836405160378905602859186593935064212700005787132050853452593756652483399457960020858855299963292954178362693378310857232430346878543296908349068366415815798655843439717777812231393680283138301703393600251737778618936909905642015630069451067293473884103540638550264915897544764309278137986910059792040611027774871930026136351853677710969092517926909543364757090152502409876843415467475590007526078662510022097356631576910642186300920723899950337632530616859755607489236756734888670984555285631900980518679321486743435813483984765258143051245445921696625698801133372350509560478468417595245851870399857027422256197411265260867246237408918468842358354778114628204552894172137456170504937984290599004310783891493335723034773788061177775292115652606519520047280771915409650765930652943464453174068888190763160042722671137160613836732989069815603893958555567533291861316844333100812776385228151306245015932014359710488334637774906706556279947686646969829243794150875116491859974090424750245207613271665810000409367511273100046584290845391829229751053973438397425786984807562122895778243373290352293845092768616898708985497001077171002635475783601092925510091853801380957547243101130704548213679627862542742065024193718709325626897730829979226190291652457620806024078254580156430034902986670709620937533160735191779524417077843911431089374510684474472942668370711047868650607485316310787850954477389474216762625601671761805715494070871851133089567038017050976705643093978031093362675511872440991646317624819594249362134130955966457047839001050076417550079302885612972830639984476977206453749104936909633581868764987805672911297124758642332047694985609539495558962134890968200754462973610066471872552269108500105149127067578417039144993403851673796233865621915738454214636958821790113139111618275031027510211230131338133582064243821456751753353435204410050848440788657339573420436405701323823565941734115800924373653039030203509832702481953940860227306604857160242726179821665340082077199066806221746641247844440549265860468916295565394197049183331781672845021263070153668366711445032725098493940423448541540286747578683823250597837491871840517839572578283366169954746343632285897545762809928506906842317278001158157610143837526823546823403845965901385216671915261748884786666243226190208826646096302064551708663453293304486547740544996725528619171734342743660041211098199989542268033940256422648279876606028942319045906423921814967887475558974896242247296818646996498824106155131143599738557136283655533939869796406312055604436806049277467461028785833957039152342791032709678659752274130128604268604593996362878743711185904848160712456773461649205793615208962485343298967662596606815907404878005305949148225140498950536991966250835517447478938416574669106130447043528247256189196907206940010268292947421797645924025916595383195933251509328101344556321691387785415708640927397060300549364601806802481088288397134691004454693253261613694030897206247060734078866316716811655317078225574031935387055132786715237674992517159296669441354360456613413114509473386672521781359177573011344636516297931582756756197002800346731893491117167847121206576592570857705162891591214121909499181941863329982868700783380288810212702394682938297545060659780741178905243949715671923240885397379463028020083563493075244021442381482773724911813779119680639791342291454508802199482760896324770244497799207803268036680439248206419408585371387828751377135444785621523542311899277526909315155261979389716145414543943466164520061110079586036251154604754240037056909506966677863119854131155839656040962965519326971959479302763348353571629170720883314316046301768242605972800950250156776739572363343219243934060940807180754699047173080061783151901889251658248531020917589579475171225449731478566950965749470621835121251609119318946230789121705618999733314353701288085594400313564737642319197243509869605096567921396137990529348805225607510011779469844846117736593231411009444543693710709884485505288976187218743587407484163132870706834974722974682803185834316134351774847933841018686866516566702124930747356237784200763238270170450850923704827005950830968701346345490079524711335904473668511979938012817129207835410341756881794640013137562335734282382548535202493093205259065982403036325317947786696186190233364651260836892237177752171131991490339878324875366166019517967516169365372500946111837787207316256858791862552107922980228381473130367910648515153917999748849132922834882715967305196699900498645565643697265336960625082163721676661330791148950733754052384744347237970292425401226977468514180184503552592406828695651648084902997454751637988064941372850094640032717192242423587338611824961562275927921123955255960746878142744858934849340672756376629132281111367419928334349999179693188702979568120801970174563731696137328048794206310107589330235212337953203002237138191148001856254658351208922812863270111767423802631535017410735190275778187989950177118123574744964846989615271091230013280228786031076577194571732384430958126609488460845893113555661550462051142903281769363330123375170450847215352354616353677568869580047260540194364286154448252574470075674149045997912567120428893888337562127217619818311024257593730412361140407482305164389378603885054048077643557922761266828209175841962961874867300925962532211113216964572593786690625691180452169086563158436050639132965827213826447713997784771628014875124264194610150239814288335974518500633328884077177116795663208278056810508794874495794841919047229255666317335027231739192681721911235401946294450421351036507327253358014272010031309750525103302761616772232671618556143312012297464401040495304888640331360933367856786791002354692175324971741248993267532548533823466822226421809202228747323271798661535632687416602786388908763001938861080837637540225800624521092030004724206733919247096469435502704273353301347669217912013706650082910057723610708921875195245111387048644510364161480686797578131760293762719373164014961579007219113591128670617935470530955791479943081964405497474531012634539948347413597335334600430325249742277952933617002481060882152199003638474809884121411737834013648543002214257766937930963567138708950707450908262767642987629699930180723513178093669156733525334352482835116135036947811778542620252683469718164743826777109594790095435026199989453714522303027703621415886227306867982267380439071653402467835077485240690717131364102362747885992771195928183931539781946524732549315306213495981617172665093349089556185190840155790245517393354453694531911208279687793991888205736227519497593852844455291714696588434457989588090315954921045981288319653884756377876954798941964093868547877187990801001513369129190321494288774857405973771605573324982505542714551181579321331389514979982135567239633421709269045285937312033580294155291944092181163734478690975968164489119325669974828697239195493009034907225041420433212190452379277941268607333339717650413025789311192606837132046378296391611686197587001924539566533716104762027696195878317259109928526012796012428725217756773405949811969104273299872972007394122422014490400705515453524711764889459513754626755701609296064366747425347384965616251942773680012431243758126452231820121371403096503232782865825050068393206063556524014453687527617290866103653633837700637821445751311513751295448179238183342416204976588127340668248063686929135815203911376107642316866451619056515336705737643467190262185559287612550004025872023491157942145130241089679154178278392180794409327993374134373944101188659372378530306325294124688806530755020601801572701990950546150384207834602942369195699482127691854304956946645423457886889150493865752213713412423447499566628284905384033617870377127110141792948654148854278673225192087562497702583532699870746437943872827112394526373635127424075403782550042811717298009716431488893460392111094776735680047518697391576069510816544449457282243242463392666079740858181283519939345069446172376081559068818735513224051423227095643092425142018595082365259969587726684883472189666427780661204219666745424410753769344991758549134697938871460602608380811819806606883294979769592369643837096937693306900499177628038191877109490687756523038492102771572683691325462733659398773841225443965475647382433785832687350150682174709786493566884160520931288410602535980752929387101950597414780444147348702378244630644782882899271211419349678508874566763088822567741680880864489201464990622814447096607398508978891050719041599155343925256636519493642501428912164569263383758680693431023347027338394412659115499804315346555798098051719256687807292952682170630271321200703462378167517832465258509007661848955788731747945754320532646058325830410937213869754215260474374016303107112565652909275857847419933618228547516537107419495926118350293349493506864904139150494855798440402539950287006461290400212716679393202797870241625613604221010200518817182076828160883838262468866053051360286739907836748098601310801957007167434272172656132304170331525656351413700685659732942961307947327333457761491731356830061876482675389824166396687094621613360813618030019497908968238015352434104871854342884352389751562164986237018099593701217292356997927543027699198365305973366303287452560651758267215912620118320846423220911786147187043175268253672734388394436417055768562725922755707248161958026725311719828101863347379144626654666752512983604498103271819629809257301282502320957776506930118130419802554135691457062605151472172947614248051234078892327005763884387302517245123233281731704659968168229646113593016635294192283324346143303089525448078631178301028767612288448565357818596575134424530075186505970311727091956217142609964357040963530226262675946975765017421210089318372166263979771249376021468583774572778289033446768942874355862986279344811073051580267977329800704893752183306588612837011748065208205385567428592690431127229000678697693932088048216371123122855113972629374183798733954710420792152222328116925060406634245755176366532017757239563817144182580664478411602550883099480923591360311006544259133346833031016948805799674847250947827128400126794280814104080663709077056703210998593438598665223432536218832357071507978722162644145503173273980227186438771139951076487314460695983724965225259548830863612327989165576487821644629869620939992145157802355300385623087738583529898780871592384317006921467512930256331583337775441817245155517321975580589504931488484690944759392010740965442488944219008750068100942562832532794122153185946614490939432806002710530022872325633178296152996137602163256449343002328530438382414640280101317529820033015295078059183458550148894976584590382966758113809028507082340600659891700265177645748532644371590181545805134454687081361131075884620672217575371451640438299178646044516124136828046809232530871237889379213805155719791959731366159610893156041140862218944513561413810032194965380302781053384279176400282012577841376279272571895790247392877196656205096370188125856301015086272581157209882079702200850129265689624127303211936326847121498210800176711727721470652927237232095202153206153380758262672720018825018798426427174377358968446919611759616423550517271926261043679233682607452782441851905034849123381720085423048073905900628697570650392340816312691549204047821428838889769305707821415815004181652885278747611113676963001423816240638503210421737617611859239590586884660696389931012766403180416777379016661338340758088878298745970512847708486720017627870649256724499606205083907389570036502302832373761868898606993581275334471470298394630013018121993475792013478990090724213767721080259935583380180628903103117930791771049133716951568910319036710854308107487806641275192262572551709072687835734360657516745544715774166366213757953217240195388577898092072495327368143452246413730177679400628483743123951887602287968882139181658243784576116859643188574806875043910009427059284706912629959853501777521937263685622607890804938591811085226880855883715283383009755926984665363984585295140558508068155054433752905866415852057517256450277102315713383104693621773510071433870487996552740558063051123620713699291047516140745562439602469516620484999549021373369718949292582881406692677565417094231125487327565013661480852050807477724979071258624772995740027886506915486679009775466724499209753847195439845238277266596860900040793718866235018101218489099281495398968340655538405910191911988465713811115281798346454798687227517142534778791894066703703079497803306843406693932115147589253765299369955602091443593797323748757653028584872450249389237919774495673410368332759140973805726581459406382530879987968434516396126181014209512344167467475184456601852683872558141513616047280940594916290701705865083525255076752626672328100901101830069770628021493521017961475220277698767783594929435975732686899326806786120993897929014064728744561393998032025348368965593240629055108039799431849712847057760344284555148162593760254151550530682324227836239091926102639216253845346635501240420654053922397275523935317101126560456303871907898734004257353315292903316968106969926916418439108330210463914099966637752559330496624894810045752505172453252750577402832787369950143502293639846699494477541709577407552839082696060828644772577584335408658229683757210534579298292381713847547441549673626412005240157180102264285094397203652833963396962912737371081322747802415638684426510579023541219055246532133793695725940396250041003194011868430354185700457296854092379175951547422219254232409411729656088405833957021798284880760791662752665084558109439338643878149151048883433141085713528670131333383615344072043650584413078087424608694559472265415409342945969668528611777850558392524319524215691192726634499608139536442814974283133850737597804875154721539793313965206499290317187729958067250474268907849195684277461166832590670940152469764714016966813324038732994493188819867390441528720714819754590271097470890827942579629157186009775642593424715034054943337745024718613065768583210064569382026881653125118750570580159432340951129305489722653841624245952995989442872711056963698929014636146758889182811659244091325758323121319219255827062491351326561788843303415572953764178041604805998410067934129560101836331296601622073315712767802193286440885227863193024127242449658525884058448544680637704130269268014785542991246614568879926173292593398231769661148832866022059726304463932943636711074848133889080417879677680473340619531488749388511204105000890824101829481863043912869428347205044166721495788828315918805785109003777139820518117574967093860972058176992689343972172138969011651758685255388779905336945730202727394245438048685753453199853929284354226083060169192659146051657871920372705049248230470348808445852125715752603667269479437150445637336838661800150440803775218183303617346549947353272565801379302951188664295511273553172946306514904240284915091855504987346019888666766071518193226071560055279970779520180715863735185802435186378904915106505813670513330046653320844672937508454212385783668317092129684011824836523103068285329977828278935696003331904967378979212855179709809848319810261601798005495666993841004994505393698828181949657230279402119027364814348197160202599467297864505892565531683649508707159276214068494208897567379187764086833365327091615308918317821177356155675741708523628480035681869016614741254755502834599589435800955792931556313522709067315511546397400306912718631625214806557549885620261532080546791401988981103656102385280673475039857363819570890621634312906256261439296640493538154415211894178541460795523089162291506598171869506053661424811737870517887497296898294304703975805417171033959566150692726187291412546765906713985622109621520946362457909280051250299759079483116931771333181896732913111598295529734128844559504677078344723595780443207875247286811844587920210695774579038474508532222985530613449805922151098148718143960378825285801446017813405680833468453502574546250288686202544291131794852478577664105845326376482129613082498268971844563477259697692235635973768949885647291869917700786766530267350840331415895581270633908016713256684022798379685748026656213325302777257183952186056684774829874120465979871037170324552488786151488647220669920501549054381425176092500946416628986481984376899380727852340006871393165232729627947996213435686423786586004256211161107855589592979665384332811990971868882221918732638734767200683738179347370205492837373340847229750369501613957329873644301053395774955259567615711944946922843559468842588361995133478952831892534123484560016509045281502440400414008332158635626095297686111539299323100004695012676312409844944668780383490129901237581104081289783347181280214175320224284205230704866353769583974619497591105316381603074512704335492590900547630997756068327123809419306165324072200245785198439768880001953971609259889125079505568669310410869715359139183749059461453377721398591374982195433881739010783989462320403370625110681831721217609571430413786475730476933292314682985800651145143541440405711404015537244855927900894968603835299775206736428307002410663241652595045383117339965822640266525982942482946189485024320276168395329768928614641578658025524516176353268715921404050196097573694909846478719578678759249209363084039860964323145953159932786264365566697052006931971751759885943651340039431172276406018632108062311633056368403517107829258683629763976664047307664772160462243871278005782008602326956273658516936579037842068173125508334403424119790339232462070621776850580807879120883065465851579315984166662155057045137791274618864862576551153301389717661085593216913507393225409846487800423122792322194157443163974604460789820832309247716886294102205834971470409095763267849597991426948422835158960275710652321840331625868609135011257472549300065265658152374913769633853655787345668040025221635613785507235597512128284631024280589051865456805322121591113327731558276282281282274453747375197849832725241801393762991533766025070191845179857410026603381437680367133817065609313481179307619341223980019792639447003571785866174139735107424877481183047926904817176241291171997553099072354036336495510775889466844326892858078494529975514722752700722732049136638333347911391426611218296351739356524421204522926215941246696681845617562509668387249360982559970358310835513923104118366490821516128468038994099796480803078165924869080157230158419060548587828377971256662541035618177492474496743811194819565610166494651450122273010185583961338058764632028350110649964986380397152687672541484368281201958584379870119944066519466126758833162064816126706144240186411863960615737541289726606772899329657758061919803609344922317168874153208196473852769937504501921498958301275048748537003595539438975665164092563545308217162058818469695312069348331960798390234761714970884742555789608369257704970324546765744715841142162337062177359706332630556084757054624024272522674677545044109512252546321369536231896590104431503331836519825410716651206061841153788644873885738149840540209059250739703816351849189469982605074493224087071011264108253119574785848051127413870652451628583617748267464884678080036159445511355741103221061131659943854112607798457826017715978507640524473694668357700109091019806038068140178447489918889708257582430129073267903244586162805100064306924410068816660653173604511934542975201152655690313485634281588709736284794139202994054461014519088189750389900679758092523034327197909195523459153087987857933481797468566936277236509061419702426474395235194199675545472796546811438820422584492527640757160963979979955254015307597704564221998450236780095254627463644471766485566195337733726603775158683228036674537510671536837613165144821451593764289816711028042287111967138049714295861419054864817030309145054845313940466207427529364148756348451879721898904010064236172948638912952112118396653200657405032229223332863690862153757289204850311258716109618224687386231998987342567779183476931713590128983038328204940508705144924737398604430470436704894359561451337985493837081216401869908245929869198427154661154969434251286951612606314578828773760149295710166662434996164483988401299815508143872090571260035281170500877239563738687133602075128566329967707734679530370246541601542580704480699646288154526646690619766293662598343686993356512934029676654069858588073252270084531783260052317806254281048672405825079688886024631211890077338908709082159409825905126125446450496381338066664700161067272231215550741984754221475568193346293381060040772328668406184564319853462194967813098243236546353949991648911760505915479209598035600434338490596869584089826765463473151976672692308213203560609370029334396788969725124651621184098681206625799114863640678240011609669017365352953409624687404282717881384745881066943184967936652977453068902572517681820952549638182309045229244830351529253027104554401295101720435200812381129479195881301246587318635278673997373796641030211760929773338873610606368166973108585303348827062373943589739756876482771196346526952711045923949547213939302544091593200890498310327976677373563558656867071095149322826830773585503029410628552506426457970245711672451764901329458303217347103087874010420542902799826233539148656319989441890333846454305897778004456101855626296532212143714438620690996315160531780310073379218800894521686286976819736881393431609011412289343650363428228165777016239491078489541378515849444543128265044431399846760671464779427412675928101925663449589239013032104167872243171407128930622608531164260534283173920150323387153694235848702400438433932083065632167859099408311638374633237236788886622078530609549159227174708608029057859711959822237754043853707782663658842156345341822953737794148884147084656635720200909120505987443363333542084997632760069266730587535789958170870753910348852715521615888957990891401140920702680914730161872544371004997196023953236513683182985174411732517557385822547815245526203780300384369863255434371686269709872255539714536800074595044911667282758991056978000957840015482885619321743024279847644953597267862880424152413076782910723437148225375090633755352970243349838588369815131061529598679293283263735562488776765174345115176364756090549705045774107551910744018857942655666066359189990782555320874772990992581973923204441689616424440374247909504695332442379085862646491178804488965453144899282004183379948960452783939813704982702836423975882761604568829983902727380279639329997328830688098462733784803784997454815743363647170181043833242853204582560671803925172571088081833435853910817184627217944951742405217001338738175542467236421854440849388977249146609443606996993022041762656277932745500679301053985044797729184986845898343809236207880930836609776520135184626126226442469502744128902870515282931669004722284440796373689826905566415663728305880405578130274826803416551541887761646160548049889174004332286447604657071733946751326522441767577389384078815586012604234092296799299221167812644163864450867820338951436241196834361466933017929880712720123368517446749061411420760281922179604820733193809170526118074285259752677750094319813293189840089164410800177691684116207238171915611163781890995529381684183109154679830590267098421955789690579901610455481892650819321527241726859009541078956467126740727511189178396295314883375789167451274462373078938214295771440945139728289936012807862658804331166233884727334235862162248957664068550961491824776115352467320179813338866925008148262038158394976967530192308348436435125409836451740226201337402582346566685197465735184332959090935619567130787149306329461872692993154700554902253371782290701833356437777973409028616242115792601822614913282255761922018806513999527807784379866713771692361213494637836849266134748490310003955911493689751460695425985732630165882054714060353257637407390553560851906083331460139418999469323169923714373694011866955561323819516988308451248557234011758513143721077339803835346914455374160920027315231061019803549795664391897748384480480417849351785412555485870371592808960339192256880121065596619326356334259554591734472155749408508756119665098802886198234083069697827389540235683695547200917493658143855450506149946338576512118053639328384529883850576605333299137471898876646609718010897431875541693000957647461433950198069711595986213823986118350365707659104904771116830165738526209932227470268248178813613541903054580158145270178717601298269371795923900215052721433901716630137457509682392514300048614449319263617812752368759153831493098515597140244233262150120214650743796857078870452880777203707636333906731521688848626420151051859915451501260442993655989990675848237501668561242231595379974619658517768470587846095312446352149488865023698938617317411645261785238296343459674802232724431114087850054044506497501588451814769577588114503274065147231358610870545236739287890110843273134325416189527177171943166428319307963434012340073897493186933497357415048970583294103992146387422205677965178237807470337079606376920395569625797102325589703002198913417697621332130425610820876465812529444250362738465030526910945186896956331837436716650374939590160221046524477893965646837192415668385341846303583926369261837666485935704641785323714188171075940088889425752096045541182815914770716413551754457825126624222083785271670608701900746423436505506862781289019706584600218048650291528641466437047620964097316117940335224006875662398747531228213407466314469763293724161266621650644892509752890780030853728235842589185215762101168539443999619827459008173429914304913593677130441436882962700838995164582987355129837219611515118556783644885989107475063828191423062965123799825226794841106414366445610175738715237381158985532893948243319897602319914680464442897969044530252981899918553404175605926519669177133715215550365125512267972734638148868328113279900289069222301190456159023696067775233031729282061888955305254979045343292322581041053746219615035390293996772381219456358072394425923190265094850622433667614939608962655028249478834814058990330993691339842253275714617892911723163542048276871172242515163535198916878846332258529223093486659474629852761184326945706354921423376954050671858780590158795478945012273596122855853510596084908619277095670935561162114002731556349636979345272600410436068718321758824726791834504738127230655934201887769789000776161924636859793820199574280278029381469097970766322677550637488500305229832805986215358153071196487055764305034343872198754701583640849313728720772765383162546966110703603136289593224721871713072538084779678393942540995578969101347286537653785552417145536785165048936110003978249796596207301002868412980864057657508942374440144561963548128706701149784926357499879212844568770598567940962326233435331983624432280616650900395182990921495214497094744007736184050569814556244735933797560062015890411927345617285844949944069398579711520363952163425970601881698340035916390447690781381854144996599782295404196403957739881490149092937959266732685932949128663239792290629699082248360492335748023389973530971710230718104061824358494464732511841401630998184342775526667053631038896604475361508366155808638751059574326803427177245268026626638990835093022118648561101487563931590859693600459058674956614164072925477606043889010565319405224097436595681073250966741891280482725281010640024973182428974215510903953080167795336038388904097748509496971309247428974640704350275375253781046155182147528446399753063215294430989610025433727045042965672240672913430528229066979531632290775706342837148933409529600022996208289842370037078876066305424684301861628941729948298971940514299110941073060341936977067533259882012146856394698776501751765978545619974851842689268270609934997438695312760319953894423110486103353929794222043497699817590492351698562724919743078653516891733704707459418813422067147787085679180016797310273440807334696081099112974839000959078317046322387254051513459413638268315048975613799337542919628263233283758023545463634288021789765579849302117478328930383968879526898866764370545349088176659713728445857331698797649173464788007883256629759349987994128220637871507952159539117615016088878934290734643956857897906239765965079140498671467475470225149177603724648855530067905342770142584713977768932380371163494439014664310848793180584606853104922707360348523307390499190364883991660555804995657449568318019888689931191749117002710589265352473578748848804105233417092873759309349813435243186363230844430572624489395654093864920908827869044602359695697953872562983741276964641392506754731457584174694323659936175337278773697475815520952724484108377574948409285957137945334908588485080643237263393771750424313157353757791005832820365299009823632833398124710816896364451702296402468986415850268532377570349763624943789437492690462010127062705016673552549794942602405361552434350403530498541013854979679773312487155523973328742430566931017795603847321746654441799699772142561387459627984784335711118338317405705685838199764615516722302924502706770551178066790730146976596120070058749277196521521280537503314405187005810600743234047018832735981443179761956269003602962645104071627532167921983725386779198665646735436619937410928429902976305910011229297798244124586231891309782915172549964759050743214950603674680869288119638695718411662115536046896246586424632578632830695272027401291720341241411625795628202545574375495053760906002728454706331333923363333151112890103597865132562223798642968608454811581981875407604711947204016665338244275994169532065118464062847893487685720082184302219586850080631017526628953665851009724930196637030478791844142906671218496227455988606862956038112227430452467521084547393301831776592577883633354201480811987110850113825273686321193830097730054879979814487975919070361331917277768334792692413871214775439093411728161636290230595016817553558234206592027150466687991506431776227819997342032705228251459601467939626118680340222938762184900102056977442924237121733958352984275304516607803100858071034069391389860486655274579293377247751682425497318317818487480246046393661421491086341965010482378837793018653761493286266311976019669619725093216982108495960763086348357490405746104433470804460857620831899586239881720687431988243325417678587274741156696305084138414978433194224188561122680111732358922555938363538099940548080580406298839978893225030397545420262087110862781675338943754310050993477541870364588377907593260836321013344595507298076231400043685288416456961318357846514040437571659355995384961787396479635796187296386096950452436111316967306423794062665428554807172562202296383610828756542259651326721825175939838469179292869372270839165802344875161008456297188748942406916350528049834544799152472983564804375905552582770361809205011689733550206968019237936291813215211007379360172217067519892737765508751096755860662045367989991800986210407280313467893633000467860516879577092390811894668899271944410413348723847749427633182840287853954799085837067027448332708173340640196246271026719990753264125599345032714383854803706955929920495945622347886477663251701152891045423300029524664380180027262227642787453132677162888719213150124464167306389383036851455336558384314975526107622312119038063324484410319482460561829362372396190072090807569447462538489846878538483555470333965235686608884172741024299565993854981478681474410860446213071068136140249158742904315097299641212676300806586616958898145817113391906487092881058715889594572018191759749493209560448364265330741711056243271684745784266299564900377764984891337297689286134469397815676167871903663938581770769267705484348706007112819218637420511541579799731781866848444604213906224669904203891676980547684835642756460215517160175569645058330638614477660652897382362614425614107571211140908354435272726115912958937127039536070635932963281556639712147890293670367587782472505983820833020144282466962597962534560169657156811372095872501618538148823703620526020326672516025962230617932613435275178380295133400948873927941634458800796777443076177634573359560512188037277878317892087245074383267916693167614710524988088497283064374615694682055544094528698469989749079597629710493045140724589527543482377773466213750014459833372842063052771424606571106966428725809994854409333404004100054391921198577121279460727186084548860885337440332879394970643099657727177056099262455809467133819249007913819584787292539468890486930280712672690427762114902026305555429190795592952078704788988974258629038052593094127486544820388521901028797270361800939497811916221088933776657227026863030960963316424708288990057230910167530018572110872373935742397418716169140868360578904671398959326958474631590966500155407014915723090001892754967236860889025452671552288429336773909812344044005186704253965210641393594030278065510085337392040973505027676234614209149089035547226839167225981810250863299079345100935196476156834770171491975463137232406580203858271895260754272077894203256621240702987580935916995460387033644948528644578897992665752859879310467428008709702153623675240206255910082124616392725660380726472214119553065541702129368055425742205813766448136997146556820870259174094756594574421839758002488450492813116752252442798337478774805158432359550354017138989116226692732003524904449751656642255901673201980395023509364300354456490049090140693597448644051145838234524405111351546215144854162654500711350574042803302183661824844104729413497533166400380554602971828571485182984043597660361647598853437070732418364200123612686416945217613322830737319689488212678011254771483766478748722108862930944982432047940582917941551939548904772339497853859669104969437409097425128024982586180247115777454411729470035917496269514469995770656194257799335059457079375025951580237001411407317978817752524540679938068480714879236961509303788443343087589104802101770837379277068611216971307427906169168124330435040720520448833454315924658829104127182470200777077197611479392461703859620475888891684319883730609020642006609255314271347058127428599802821388823101739060289058169535691654426960444481275756396622073845216645679216279875439034481975477551488334494648614907761961991672575230106515512643273257289302878562875405868896672130155388632942470836317623432659766786409847059388897202493590214475318794654296846903719881677162683220686571394585508610549792234450376824907040739832487406193969048979442994192583037607796622140507102625476150002603371784107241814031228277157536857859306588017013832880946806380346065822410631818560040713763470927205078345491738163959648159245893674287534863154280576297670900736064533338126146308309371865157019037932162111173515796736645737607723295209654681881343936064465117767153322785469184347735785593822286757303056081235540571149100492405327726121274343149857024237584190413729585153925518434307127538251168142950626526784395097222377576273365300260050785818781481478681770195482992343589505676298906607449665477505590919270522125812472336464780191815257479359704390704519574490054576679578281030489403047801888351483811600221537200302102202739913265854057455791507192079759964184661027000366575904942536189007460323145770989548074484943935206700824228443912318719087659743724158799897177271328158773793910027105570440075877203574609771572371200771102517096247551949433784950082556561555771098037896774173063208807876373682637041876021999480494670924425230094770170977227319344935932654969656135535934174879966191203384773602770719939526847974612303615292576192159016818958491605088551906536090438347497512786384821251335180971446977333690522468616157582965636879550868104264703678339638900730401373014795207756559721476943909956306254270308954897105211074990291974840581705579310932840372044202579106313876809192363914302732429021065749461582767341295201010942485201276175180863491132474380484982476984071372589983003436632326307227016532026187708644780297461161202225184937870881481137187238338211799811581133301664224028778476160193062827774771826381887658131555066923859340576118449437974946016224742330843069373224428457889700229274585047973497652160448724628020140708477434690828827876041480907402232203937761335616637801591795158331569275845826986187947713165430940506898367916298529424426702626507268113225286693822664587734883051323584023285768670246344604805417441220767418022359345260715419243142620399452446854264045851748682615414663439952745433489561463324161638568385187320870653628646480403253268837707514972625132936553739806634249602295948980516171085424763177802735955283494134430475792119660995634331301405949708541920778902411483320590695459884031678771555689942035819433443747139448451906750835428373945257875468470264246682085321949058052256673651754486471176131774267841159871808265609023225435402481688610789626338404492517376827971856219625640248133549794632543651566263936916525147952914327849130540315758949545445279157685207420453874633801819015962565420211237591496409719991436891965327719965100801238968291340683344880442712730004276652882179267036236425892997512504664384400158962301581096414685418738901837156874209528160257646376470458961682893326142255281284235827976854533802182777741772174266370606249898755423502936469510821758059895325113001212297235629912488703452755322738801145195666935840920369643018953613258833800362643636058585102073197874228323473798218646930090686374103806534650892945109032160930303938564031570062595320249653621364346944464237027145736993881843161104932782133211889305316544214635652810336173147873992566764256055900015350943698632182050118215424953534294039579580909287762509257874468181222810395481525567735219624648658539138842002847142697327983780200298882214651664303992880480244968529081763981666527012491129267239962620767372768929308731920108637543752192889158487655330175275893194740388072433200776700542262974345529841234485249967865868262702605933833682257324754048256960843195027832403965137983536487787349612363524977755605573203587695886354360227040071708298546316127977413125170710466867698533749430361904207994556080464926055698323893370653935613496506889368925034589100658834650402333934011571447668275208719982337266591344074629992739410995332335890588006477883210692970351965998114818503231584737754990055703238657284405171161830452075546143446306504904767625401694957106887692176092170754022734981167018999632960696083844084448045440103787523093523799504795985210905867252888287201221612941728842011671857560009378082650246460033415563652987473741084715089291350636859148656644820944794849398653522276200613327887928646919258586894103741278157257536974064796912751372120608759230283953094240516800434161367864306719939501686681194998188726953348010948200129768396306052577567967475258920405115336262926471547874449207984349221457640776505106606880108087045129533178862367325409645464067697010679978781821752261876456739988825645835337259482610573567889090864391895336127861775469908094355625244848157685298345355949828086116707411607861044079420914706564960465223427430900491569788015715302994780058695852138875646066491065539909848883177904633386684216814079124219181750971693823269913673133746010809274380187765286303958814124380765698158116092994260669000767635490456802351250413972374758486522220758785850929649164176165124074440943818298850498057142012462579749824814982541242158607852215144949381927976455382013205297788592785968434489855821101597657797388413241872341132666250739154231514221626589721040306508055064174050970776585067132537803821231828039768230917672382195330157018077715722202371571226803028381480556443089816741901352954483155220148762774149391385890625879651106702853813425331555671874265665515557159712741948334284679653989365597726135536507767695063036414936973218008413749499038125076672477215577409652276727653281074670867564313118712713939264035697931219603552227826867663430791126383275396655102862283448516980022394205641067010199978503390079909046598366480109773572838920386797970941029229546123757918428184517132791098305182794779958163669741390145383800750711440390167413242190102624544995371738615201869741440761041028765265595263853514305326033134774949602937324152956248704702530299638690990315249637191974862390111844577927598847745174559026645332873813598418666983045543239948826783812887641893973436057799060640474777630361380246267772329345803434426454472038024059374107884703833523903714987434259230326477800515318268571195990425699417138111518851854472168775299545632292747236661757045469473565040808464179586001017353177098426799250969265421353594221152120269567715881044914542803859696382885359409766886009814108258968089237743321969726535229988594536283205090983158998343958317048818338478209462899558359562327562182227408379869357899150020852555543861072786229325724234105374822110598618515232432076125209813351338432565845155333349908020834080199401257261640889492317764471779127477317088582566760064419599276380385132811478903422554506337363885459148589574123598580702933969163452790136653979194014314677612575320458653402303709952110811302078011638201512278346476828221051730958715458815944183291184779477950701027107695104308398416206192211032501892244549887338015590214898500601910590347178241107470985228471141018280584244472820691451344486868204860253283729892234207353383915897892614614373720183422543332396109829154854668784299510568349975821310135148718352798289419200693890038326923828111342099769119009918937995323084328570832176324110017955081246792837245903925612307691292365385081969985509397262605331814001852332740997177252288058450966926214310044594224121068274301806898640163258743810697398332685700676876815323663585480463789697051095757160511110800099962519198057034975559251618906495370459220446178983595132373438105047366031068421875208115026028580778466101458289195645632657545894099186325902412723813197710630351652248150416195200097580964832908289985385398732490951517507623237982326106086839486538472194510447450374728442791325777390103030444529701070516383501346034666244700865747316168027430438383622178962749121344388858652998900129759420855230822335332944461489289391204557021312622041397446039332255655079803544893848765268141243620825880464177268873297772396017461115017261217990889547966661598880294584346347163636375039955573408748245223760439500195641014754538177245426407914145543534572899687747756544526041329744275641214174937352808960518947137337908160838083789993452323122604084676190142634267868609490438032465673381929661612572720686479727031857158043560262940173432414968507968893151981858440173121302234313779604883223578777957833023579110676008581822782021346691131624107579830042280990317491936905118277030174870708493208005296023232723773805514728206465828558842795028269674089465704522346231811951637924108548282333625156954225839231853485762866640585089499020192358935765687404179152823812474519600264216609819132844109917922461242887104377628917777372584355528639979138040545413720822797651156391434940271884873332270383798571969675661586558171633283821843238646959193247954507785532655727382271151423609548561281732623070329254298149118372846958314513227735242374489503802438094496311879648467886420815895058445933076091550583389961410463456287111323138749191239696090808511657320576066310307896273700837544907726698346785190874554990820514096448026995540383883543036487162235876641506640819251746441810395124483067406049598113391523136852793139405176447469852527312886563281996408706700919266614550671478507717903571714505130296701702851176403159339826755421439997552138064261773867905636816656208534173480074832217401667412237301196493165096961658471970345280034199919006517492001787899497525546207960565964893440835698150153505251608768823512371488431842787569562505463338480140597690591092256526637041322454436772328828734634792929200949070254802822114113379413278407800632046489045599754369156643741165546079334555847710898400722277636305226076833961296030771594351946747381860214340269059833779223492484956103197743150545077733832783057927317689367630753330664411231990157433340340909705080885999497256918725098242026029018937213652938493627838229121175033560921570790623379749530942524192212980671169947999691003530773108602222331385770971424857387771318628917752760613121528863883490141173956666355381543503937455786124049738405546970909934534086338511422977840443527426591391600565678134621800455188465429807414845205474568936507178420017566157274742959050868510961841848809718713308593522053262130393316727816186860108886820522202657485301191642407487385386084681000805481518748581925018555504027269834610752275311046882353391920346240775409125722868271848218349700804542738457065733876070914626162542438775292827091721750744559008310099198780728217713882810328575800475728102076873117450723095841992153469986843276981081688183061265465085838933046669161415220322604314516889176384527718954538693590017384431927368712519741121547773871907453766879887561893984676997207345408918427651712588093319385438150029036580604711469671519481138807792553253156755509565238122182182586231105632345968935817028618048796427061839584799616286163291179005366705394562279071559963715600302889863375067918917091018704214707928632093207921024172855772545848940973782336281567092706428215811295916890236376017347213891296435778223382157787468624704925986855789811686267665663045596205311606615329085782280255927803408398600434931664393428568706909465807975458704633976007857287094809142919999230524907522815223950302267507883057712449370870245250226460356439219090357391657835897876655155753003427891009302800783577088172338676899161561452659651019348468239117176126590317063959248624060091680691396458563948799530619460792059675541825193789736111393383073684182576181804705752516651555742670781216731922319273938988574550937897594030361504836387951158297820082488476738628182026250840214430502105852072581537164812844536515238289839080649100829514668485750930405275861412168638322775170737810714494091809770753759805939766381619593251779764693573280918617853800683556864202264200342571613917880527432091072507017751948679668022270604936488782229075040939337478942297267531961817454480141382557009949908754652991697415558684158706265588066195801168974199449501249444763835140764692909269762176138344640646511744065116725600349894650527887721094162953495033185453042350963255713041191124950294261590823131369016691680054793495873506714293411062251623397964851556495216857735376244551133175183327639263121399187420174817263296769310404195074538868791660597042955698643207517892034682123690233067569617462479202724048669724098407323411716878178074707053909989755890428231339451983911952601495119082984111557978236437241828308083732380465939266771379638175011308403912367342997340226156121139352745436880473584472084096647967956518267244837870684633620693949386521889397276030817510903968338076273106439726929066766103907374824012320109141553659067880678439030145782272586191349080578162825888012543003737641450143663531485242356810625815760976810529041990626372623481136901970180346816303836181750093005832575960124078364129638223041194131894669010848909681045837820866720911906503653160895560089044022225588437248118232229930135372825106575395659529922887249672413731117319296244375856097857947609585379943605168093923555248911576571890544365211152369951277673723290020511748495175734555906997081910221435286293434099533095660523831455898223253790023054224412483031830802080822107480594939331569474075517853362369096196958305767833628053644713689517605209654685882134402375432975515072457609496285184878227751843611031303415036550079197431101614135168174898290473785722023144096908002198389468302504957018101770719164788653256285810193196899066487742117873586164593963643156250009380805248217927080243020198237960271500239441478421407267361598133310843447080761843375468171540489617588403791285288604907530247338184526149260545986204208172870200231235375003347126760168013212174228028281108103436730582826266606827425121147820354923322810835708736028421225299201246990333556410971463480520490652787669232407229487710943516636384253446519674094512480647552023473125499435791789773972713097294462178704736241862828955293230331467523793603085095411933598120250614517549842673748752511785099395389067428169711161243757028588638789712021989773612365845727024765090793615353799176157713444846142148465291271284729649472180836911979929229027354428299936902824455102767620695584792687869382592707455528857259635095849203475151722814229548765637363638137454334145258169182665019629642854713633384399653900048398244678997030369199174603536393011244294798838163239522160928004922640559183964164082129405896788975581623768510259443310462373622674914466602534791315595845920933649737002432865153648147245297647129758000253210235120737761272893451163508092888394235404611241345037121512714133394706540971058938268699979859919185286037857204734948898030640873838810754493644093403557432319439017096191105121185241039348865638702959216160648573970065199209563483837802450356483134105691808352704893487225918201784843633597019950741700038334915248897679175082522106302375889685679663053759788604048290571498564795072806954415950600596175765717182604665405340954206036871341103832425074581877204295806783254256134501131285439974322390382131152401176562190018774509393202371135216859343883493955029646382156058220334746566331368397145208731571770244897344250470210499859204096350799156543657241557465882679379809267527979462830604655172809831287861387289705810740264702444041218098268132970187880398052407506834676717734825545387847100672053136258734162938819174699205048613401193449572824947642525786160553269689649009908345366160855103588771491373090137632341842976968163457783292373865470287238038997782743250680437568886842555100204703264105335639223804486107447110934442733660863710951182520641997875287614133518368362683564853056844891440854018869980717652719619505737797306968269098629846298247749545669696743298030390228985020787459710144516213905484044884538720577965704759614541120004799700373808854395079186092549967883214781623802050605644007847670991446596897880851695581253189063019854817044809364907111354641961286608957205026405959851170440224133394696188068795090176740959830611815495240256689130311792040692584212644752046524893462889290117872705283425584386980371442322804928785163424972832632953065733660927727267902569858999252592771768570760616646810431450860280032829442294127305391486788937346465027083935329372471799319673908364275176313650761999405652739758863781221487350977638053967182211809244575085100532389786021068032760235177103444950333221333814789410093446224913997950328015717715031570586022147833281238746772441816888577021055250982833563704940945884552312596561919462406157188716278691919683968479886769787305162262540274592429202285519351139481616834663080450933536128551170298873776512848201213264091259232343217732297549048911151784353200532192650276554979522280019376564320101291148425909014420682575377924614595880328398656901422840806371866190768662722174178835388267341810434157039261659065355493756906735429197134223094878870492703394064292412390315999379714668269312352117668466182115710269414434307478514660254166527177267744586646816316241600047230208946526405486091574049206156156217149811422225116434650854044386598742792723592559094043559639755698657527855682966232801262646381235355725650528618764627936864607922130447003959520896626525218865047548771980930328156695474598647120268030764375467829183776461917339152139065686818901615240076528152856008960078957963399176370704624269886511349791110153480761701087286712991462937014250150761781455366565112448686819953634986577938495955206340871323079707195435851093483211583433653541103531200195099922143154656994233277204278548335949284924869345987275961465954198241921797761988286344741889485356213836885674005986920829190312331993345653287687452411029051670455926857576153563992436340465934821999557478261437553897730151007198070560407476993629045894819208398972857944999833113011468387032388814690628513327923602270562629722056229428687365139459328278235623572325699096468194902313473605032677686990819969592390622202496569044830271343040880104949775040797317034010302851772831764693448677102881495430121628443766429207218827077476769520066791971301914974545689244820973329668438679264319637695432595856455778727903124682713650076464802455504295168962544507673778641789944786924846086913400080304295806655876496415393410660718797081043648940406305922179623874657111036213489827117106778385111364157670648409910464144537613455314843608531842559625014657631160967445118242761036510585041863719782590723998031137842278635036878921069262619613415602396352439541187134097747204030903344114157996841533821203822035356878255153445754470503361796894889002028076155689106674941811788146100652661035348129487066495370539232362771603895280958908938868655175404557315549281502437588567917478454142527857782300716745174411457502189661327156256585439125226431210967096425673467855527665981684680622003011565461355493008739358326697663283886838081694494386437220457829453075504626251793017305633000973625633334807254985344779093663158776494250555482185237317369330610125410585163167053977812803273216746546002766979722941560775615927400908077035466729642328370430646211514882585719797571908526386729823107727319298967523214172232799117288087572562953962535179642889889375768083380284561845386097648679101187016195634806542909281367117464823722222127333972798263679206878178386857174023094717855649004868922106908789129195370716738703451981306068553599256015542833187436674329703518322434232885161140220913878530616593376573966871263408830788737932150026847760425260375965820203716622646978558482571665275490445891215870609258858481568144562575573368060270887770469441673897896088552573345492098682670343860236327373105246369276034188760131780054521170276824567467927292556961778038696074722287994378426262264173813884976552886181253330093746754910482763800364942273831220979358213740764627283859607461348334929389567623584341230269422722833004190224429519948947502686280075071407742332489256575588258650351131790088033853604469126273092734920367223852683986390492831100947963775226454542775922549110927629192217559267061084085654747854190379888160645737050326546509860616495964386765991613317126008329486731214512174164983441556438489786357362631088580657809171554784897170873268153566946005862297329139636753814973527859145358841085419750722463521832622434061524466737062244782633071718936086172558177592712315293858187214483079986516993494237253332375832387270481017022400427656322991272284269628309253695090964148123521992970317873542035196701057216095498917670598561209174821919832473054568184640989886517900513240709830864198022365036982824602989930564922698320621067691360674213995348628742094701713421716277583767215662126415007694708101057550654713301847106331495331302845880702283403547858251341996193701290735811590849178103442922879115720729282654318084161482931400615535540381130075764750473640578164825991449202789730392935863338097718950546034294387947186342987550200648204304733376363465696543404093753750804285991994541677671474745710272256088401928838143944261140009920190458228528989671008999966957425617065535470429213712995482650978677745660783486503424724473596017056803651201812453968906236470468533665321013418383960826962817547606451537134277408277441519740642311410753492018319849719536758999761833657748087962425326580567362044589593446117119992018459331214080513092519497528378149711655298825140116389679446879163772470797621057371560851509439701222068512185701370477744150045670506984219730405383878697375370503938068030923767223363604142551644195583433858446320051353194562085775088330089988180956069610384940863340045527785504029104166195843787530796851846481188354635502018376641562491350368403005154200857958380903613322217496288694254481030883473600511453510226107012069602550068124290922983502440346590988768797375532372375862818119431489599188261006224840436382632963114667063678682545989638254976064119299399787920316844694485016822408344825752331253342180653861105979750909050252630705751614163623488865240887623017662584001667608414535419060297988683285446827849588698694540292896486060347694436702985108054944096880135023442324584821246875938141397908257864806821030136394578429882248119208877592080276624838669063075562001230887892272091905859325694647706862057404330874807360963963702909209788988621496295972890122102547042337970771181371133168024771490143923002655366891964840738282574848254291243813855299131965986119761462549821741107374796698683167870272172469135501571342735020511353093406908524940056299276698901447574542545906454285522513897250355187930737195819242868081155113430598258972034904947956224782182794990041788289151461447789155287714548586024608266468699713014725063066367223105859255779842337715872523211445623566866554506356736475635356798769239355705688517666894525898998514483690200888747369234838258488161312750496091296585179958552344595953971877084544990414919056042563935086962969065451858497371483733151065630003207141481895169154175024536786661938876252416435096707797108910532698504935421911959414909920834738465406319158365424441938030318918155236233286917692677894429288256778334266644044125616533584510982745395890513691615660045397167662348261632630276971674061351950078585015892419198173155682317671560300675102824407455266564298050461226720403283794396134806267101556596009052316781221412058916184737009226260796078311569110501399627121471768280697441473039022469524600762434864078372595189717064404153267482590234505185690483481264496396245707636569640226877481829479751629800937478631244583112693134756667094165790449010607504951483100106844380649846795240430657689857929159237096694113561869769074590998332055998733394524849476749314841226755160159340743613650026834064735531167189896597281707192645768637923419518765769172561295753266572473649931285263602709901029820900875579664417681627141598101313260648132621903527089479174074426627152962206828179431111277221450775424311150940946200808211874276840228986476480763509830885468196151933412705516916498556197166395407932439096135373373008813647446386734060754921089333693072991778178206060778102299422561505827247343560320577833380026115644343091770728688172212770230375962170824639815841839978611329053274830228936608299943318324366857982318983601042234220593665379627957408575626201066809663193347181566084852349279070830007257714794655130452778694534354636937447717460611431336316639615602613447572042635776910600620462740472559357249706731955472170603996742228843234621696823902313667816007098029559158121048020883441247963525948066626190780645533654653159669482462487308196634645683433667795219391603186806888407000528719744141222259206033925292335000955426631346133273644805625611571853282184096913737342078943927603535802427876778655957156171658227359686172886149881554467468039697071077297095633230345988266382454098985412896033971433479259371261293290989685753538368783489971079294713935758719249068188780711020114599205078112061626852470607629798395768923160116833124235726980502151663210669259881930181504789971102710116861480574391785495843768400305583388661263818566090542432793708387329394595701747344682131589800384913084390790364065627713026685592538820894779600342838647299959927851467917942943664362922992105178167678831647509644016177436196578752684880313420286287284940419417527674341157592445186267968108318618426424506819137023216510946656642281223965818769178390169187421337619134635094511299795765353319178885234310978871690996004925906885338858080857957495098228346593284611199851023853553517766828691430356860651645496251290867134672773357808259938362585561278291500749943238833429003789797533576040731703897939455406305537122502632154365689041539854667423311460098728702404893486071743960224789110824103648029724496414636874055411301775966286747454090474883031692724571636905611788195338744379709350601507653204961562159481629827574095386080781795918511275687236818852348854890594746041752629218422194657128999834828241599412814116704168846670248084278691973657678189410613316180501139086875332322659068315987256274616988288535938865274398859288764427390377218928790343760661176361117499721907249880967380597436658022572671243720433352493115117896000612981737609187053001366879475001314249611249543739150403275254608276287939524514234135210469640897688092996854671784535267957975179114955149636573319955809247158350946874011270174666355046635405139384569695432798208292163678746863917124184738682547018751118084940110671119675066972308746671180441555116244241421076440830038992507466204714169168745328202493255380901545358436202459015359461093834112369298641543769240440769154073759559534191832312625516872812271492183038041761810459584517826342460423358774983165513204005399632281436464556993610727829469012000615921018333540743729970078707728096549441473806605649182178073403605095851022988414575058281250753902109037167105255362065898656833703280883447877798422639890008230058071065810712170906318825935474924442896975470392129480071666965079121201548569255174004911154947441040314258640425425568995110059016427444875531901091502722086024648477458938082214633742597563810516565611050234534872654357239582542819124860313589130253546131196539525578846019913054915769090472944633335324178013219194910703688891598997591456686194075681041624511916282022220154188724864823215847515627316725074649256504953501858951110331905740810574177107893971390410352079193401676250145741110234734244610390296787677959562061577521401329038559292966941702225906082250552569306688092281647587735315830695879695758034004570568962563202546071383148542677503526338224346500426741413476204100809272639914807243826126699974566757344227940729253628993240558658827318365067800430089916509030919368270835161119751290617972134483630726935984962029300463861830671125789413017462802307202931070428314121701761697473025624794758293560684923268629745463272562942210062191489979528372510572548081152348758610254303890959807048169220551160051016463869827042574376863653200456881090410963937299272862606746317026918724930493031834030133192956199127090252951018288374512393005559572541869307088062187237275622099062756994882499523324560541198824868200099362335503934202712097009362086561221827639668162967429918348830295392727616289177239061587927773912046401579543626898952191569441478396350892601316025671402737512210350137032083904886260084456373592271526572567995741929697430136428395251284089978924426338070153525012269379815106508057961557806600342706141580430335801156815711571635242533103749483024530268194640544192701782651780103169717280671116032823404703316076812659808691522368539575382912951521082515942391402536225131431868697104204988621098314820771020188989900283429691116852251995425449281534788315038086757568287694150388496765841269067867307570019589735172923180400544278764317649978027701519848732195669134654307734420430182316647476813209909875454484186424578325355689367723625694789281442424780619438128441700198884830887478814383803999124063699393738844817677324889456475496627966360654664216982302107488285885060984235252479512808333467455334493099324323971889300977784369726627158011920143248901686921238083364388734979238606468518683669180708628503370015784121962791047978238043753481765947670775439042761807939308878820758701314457117434349213634692669767107174417977990111692783204312710816039014116087295337189164025456046494901248688299931769136301098148994519166230316476241818087355363544942070605044870034063966082562755651568795730137087102595346940386689803671612762052524493172757680995072357111493091046422966504317128923890631519595129912578073687462577337981901614896138512102812235719692027390487710476369823202148798346334049371546097716590816709633875671057008105931538773983994599715794446227636762931578725030588113202521399809413270398566079222121232852873080874021262659011759915833916512111530458269742181004846265558448715153186119340307492515993920989347608763296040772590858610087243728965569902552361583693857021685347840713932057358163687287935035192081788356157504744473441011890443396866635050153480240346435451787636610240765381483162853643665733432806138753749541222324658082344300652019368768208406259709599491972422222463340907628599861933892870497329339340808330943019882649764991447534062658163953646218463466237342067077000135889799902654351190321031623371028473326169513624750014733000461561932091520241890287639495866204413550064614856387933916305766968660861833478867012047606737620061088505335721250630783462006126995108486781184477833226494820207302684763703774167325596936933599516459291405753545765936266801461076453623769400408900432540535382440842311032728191753010186481279789741549492681152783433492406286455413406453855185529384370331238731380291135309962392872539699969967262117592978624767149263670835167237907427861687324989444629355912341019863398172148443560116120332464077398459834186452931909563262968864027660399550843099350492503011091654488280339142878175853472406589203187768016482801040289650165926665228990765599282819152783066295625205463009361458626103092441456015244340820592656693208295134551829868494927493643573390621801674729249459851241843671881166632675223860314327389689355431917174218073101321148727763279458586015289381767714272371129454410017085428753293001143094802684925760317435029280538603703297890584321811148346865032800320549306193586281078498182442723905968650927012381757249056248294005276061114255325076555803341338226398731869362598733892202187012407837824669450732683489924840824807989045943260761117168300951192446710311163915531287943087040655216514418680375395757589452478523218900630901062171920167919969646422112916796853461308658559444567224860718088640025421431812863423657326635571404514328627075841501211487162932074191043951491853105314679693418930228180546177686074082108716485166150739710807836438423103848527927829520593563358683768679623311743540302741594491895857918642494471041329802945864721431914220728636017707938751648974480151261966170944050597345346568892067777804826351250489721750321509463542295387131698973923015668263333851411249862473071903791796735366719978442773538470548366803757661544697246776432896825892730441643062600306728552405778959242765828810048213889910016503899576977227325833364723009644796465685906662052430266069168532534351529363400923654341740810516891901105149139983987107110603910233304493480398073169926260112572222596041161989874656710821363390140231733225650169271774164037716795747678206739016504582155480299498588951107713927644415805138719190941540254072352303276516526133801360952493408087310696164391451679224349953625624446841578490714841447538725502408254634721120162994770785749141079735827274990896753257021207071206011689233204468581661659265294307575861912044122129744891783216986312587459551935281675454601551247165580234510301713626577443264630588398102013424524908107619461073104704509101594952148932093589534114394704785511498662124870574350661594638433811937966982592349094889493321627089456091628979645206971695435172606170375516578104340720184162955999774673764982993212920199343901746872942862737435401914048996949932861646575015825960938751662298988230567756888309793247648769755807035848637084104360666500135442028608403156026319239016708184669117136905306237317345440615349083360462942609450076236554957770088673288930511437176698570433494499885737174197362051260624081858850710349941123897052582853519065669278064340356378057621522958143175404999436875440269797109071064506621637984323299222371259354557123709736296500547801034662028484716046179659550341681227339519058972063379501460435649490741023822166696243930923614903751733379736846720199178134832586475106737174713006623864634659823673624839603488591857506864210288206598116619121190332356284542204980024413288196764278810513877239994572273229094912945734399708478610902418641120367201133959235504297386791409121713228127262729593156465679815607127161623151071897045079287503744284341562740866805976197738232950554545321670906741811186460972468023880786521100058449025104703769525578379673798293516259923567139713107956815034825454426814012537807242422485791460072359741380628196172571335788104200441272718342445823637388154807960886589235889763779469440980935466342163886946513669165246726086995683680779679452942604468726270416051996770001131061347707203889538982495675436802603616350320238654965429430928819527042825067874703242333366736894965491447975485996583399955789128394243150268959862770695574225480897166991192518908994437968161950809893544899194773048631189198445796395822391945130565947900684825314157952885922231306784445771290075036376589329456441805119676200356067572553676627691696639105637482053867257048382288574420999822006434906200729137040621684339598672789279021375803592647818478815673566783453342984825071206639324457763303963906569177166130261372331081252204601887016036739347894605000315246618262393114601521645713983002393197618848655984033265827566885589913669573008139529791643645907406856176032791080000259817679952292289385101499147790796609730727779012702315481970172855652253972530860276979023621066021499677180215112798059321897104500022349558212889733160907311071412340774544889944175548004854364980421810641529323196112105285232379427415179239160977869784721036211888972769513155602955826629719200627657250038396426934051633582067268184812738177236437865964906403541693412197311762814452655012191979904626241821497696999637654546223561230114368090183384443717475930437184225593331643254737487070610440583216967571676768693599934144725054768397774712813111839244229187901844844699470362400665047260431940952820803015720467668954303894864615818953794056860004563741808962823390132432450033477683648038263885555691578683814437194082868233326863054564992067352970193362012754229533411822135350535716680802261645190811259098848614213074177935270910030538538450619219456181023117212060670226367971041689400226214335576139555457206745848124567015272858684007568535578696715642602432801842569162616693687978053019617261777097139034629579212343868573814742354055063976368302056111008034213595117426183965538270426512747279391290524292408097401781049553597715062320137037476068935547131998537943399384117743495462509781986406107860206524618459448603023422382667083806590797421884485319524532230778869504486695493489643944460386646199780900925140756308636613646543158092524515733424157756060006633072004884019696685740266518992379055878347413488062596445578677501453193767625683935826382287137919189901345090143465971056073875584906588086194602744677960740363065389893212910806421358151016643334423469965613218681538492698269479353022555881800497212603768356222477149784743422908620522189220818201868054223990767605674632648501814773541324996543301059959720001467762993158379343301575146048406574731268187843451494817439574839317390564536502920721260645101974272019366100278915197417853493839250780019114006224168210044435500059383239848036280653288362319951640574387749597822951558647103457819589115992355085093520314832155056850241626846316692539538581371619588892602220730859307543931728841605101109812985015654585616196670114508409800944624978470833833739743968049402137133737692621612479907687589667320367468659186622822899009970420597423119410606818739841304984228983052717862792709862314815645519606127945650746662080670578091768622887180596602916074224393388701195300785146357114497591945002213078154680523409862402917718034170226125897773156838070280220948651776614987576805847276494870548522491363783456635491345885451452076476128817619279449090220411349603638686993052707722043789407110225069101519037846744033367484146032014894684260930149740473627330850149580567563103710815954507458984723677810381767121911873378615569093959659463597728867314154336578996268425025955490985931294618311271345533676907301860437117976105075763388529716599720235291669447461131565718620285814701854549757360211030116410192387168572304126798805560414811330575720734588915238697648079137671008722546887608336307450685378042004184681454348975515546722287461962078786050575849021669654035156518600836934130808782338687033904486938293174302437249786876255374242757722297577563873250579640536518983689293005513898767195369844473216864348823053063137916200724841121317588856749689389233415836055831140554371038884670716629727278995855178123669797947226097681576723933567198994786833500961748802459718679758376176398988907682868604907534629627353927477567366686819041333216064320239075323712093570702825618323479133509728849904705693635264928600443429685920221400175138323794880475298435463115738643180103801444529313691017723211316263181808919451679064332314155392588539616167561889116700569004132390826706920345306661757099509937289135806692419319617129437932015265738368299691057291842623685066169914312504132891068769895715056760360493723016237913376433332574557566061938322602340571130939328975620188285073205198745916993232745395302954801412415951558377414949981483639789590309063861321422555606585499854705550678270104484030624555885341670785641260834733363603989546165761418177028140104463188631816240475914391164187089363479607296695968951215038184872826123324926823501372547821077019762283040038914174871456058369033129732668033974743953676351618167887179424910318653353667354515270386859626233579035324095177746894760632123843057856005087680797344677368343389016088389037590478826887603393467167438562156346406414308996894474035218326778999507995546957454668501085304495128180844674495313492727415629848044503791287649752218999423279166091744439222762209773683165335503092973785518626685359268393466857815963913833036987107765932835307339168591547598974049990536628360442147035983915718064017402722055631865588125426410876394842244379486523643686507574207721643919017203685638769428886252755191222358325140842631858589395054160399251652294158603373108522908394633437824170208694518883693553144985228964096270354548852612833525743737177625956130704677037898676478470317902800254563196630642097991968279909321360659590698468849730483179609297129931902030523528837432263254387827918524065052235374611751387953273612704900797117182519031065978440629453692030650058662802232286640267006865638144052588368878617290205520117435953788023072294380570604486264603776177330406078614586391556917424077378962342900294715792676590820404090685134900273237955198760542496939936429526418912555238456143113259506753103672870390352333361950428598630386319197682839007876326543029589664901880383134530202219747427083184991963497249555563531815711090830931349954559038047357968875678468699167389080714867025516433281804697437401737855591037091263550221225775083962731924024048198047881743500120079408377232269711595161429002199147132867600219182407232235451989980587292593842992516275158097685055074916549135383124939690411997309655801989607111506404343733861623395643601145662526402127889802984001238384975939709428279320747833899126265699374396701638251741047922786826972706476561179813532438717132093114739725906706920570881783645338526876183693058231252742995376961110327475800534411277379057043314427896916346669040747979491173387659474476384544055910523414129210013920672406950949399399641164765193621925838145760547874946916526191728897862435876764204511143429901696662612492419442732520274955859347725719356234526573164695830708527233545763906950367888888364104482456518651931307784882846161984213679820151041507533655512127967378563057902817641464433788138398673190534564257483053602278165141358276651736593161524586944684378244478754817570433993618150809697741080131550258689008215377904009679600571833608250651490448172214247674281265668465524244087076359134822062566784550792712800142078346848634516443425185834527145574485147500202802343464410165712335343545916517945399913046044630198821089974499436665823100134178406185532380943443956042213883603740932576897192617061301973881134782817856332850400950267305737138948717587561879693343174435152423868372395022163565290371750581275889928032964605111765473451912879205370321150440126613425108095965018874846377069825887732176483046895765531949011476535628660203063566164878253856544357784448196271651394690286431843675602380694008654300176944360414330027503698893999912820841971280440065591806960867142744151136549178405655519631209711909836870013681335861770695244332407995402957922446764968604895104550085116654624857057147064291786495517676755821963065430184647907376255940998831296028831065234488800493853129760368442137737215843849805311317067327981750671061796560557113436349334098767123105254354186053574965678541130757432077736923726086862595456324788149639064483659455856506675661634621865145777133533852280158512336753986530269691491369297289872544134160728336139468714061561560470750345607020877421945396810134826718874897817230198612944912780599262094696592705576506319521046552661459871763973299310348121223157185740475646660992581511700591839469450743362624363175656943435368491814306512912100726885059154093446581117394107910243362823903442387713842253307438387819755598925867389932117488406026135582695807110234850958587034003240222948821579825052969866304580618288875150067919924240018803873222623379574631787993683490918629647831579607881277609107884091300594847153303993183207971510888247997916184240148482447946472743722311850939066536117190186285509854507272446944296951173135805720607223404018167552365271579553855730479675674565312041410979760795050243999675015985748178962714317017853655443450553088051975695758395768766757656850155197058868309863037384648491928528785286889220626678980644713948510181672203195667378311578870978923574930783535890404900073218830115438003876534210240085102406487910641904258617910386851207624653232742017330706873222951510436006981352808802276901939376804821601902367712324680169980806761156185764549630184844428063638779407184074535169877685923764884727179863744466499493669688883941894574069077256721821889280461766612881847194425634390641065975078940003532894695206082964348419542050597238013890696393806921417084691892831589759948277598424711996522480390017680118933046700544412893731166835982333671253687354341127121760166981855131905812294553131318409232191881128560526177887207914883458811023543002886140428481537056816066875158411875947610382685312482873613192690067016247153159840904588697410843262784095901757230337457276975387168696553678593590179509360071006120287545851293776482406504181269120236066613404919406737273179695733680717062766205295807084541320727508030092820874374856689941060627374350163280894568727448154595700708892487320509041641532683995160621479499702923003378601797351219081562673370279884111275136965828910659919092211161226765706069160579125438890868115262344252112063326582574384156937771587768789737510685670167880797272312141450693496701635904171184639968294282517382820899898961515807239759060844371640029590013947869519735164364901971838425974948499721012229608613126934001583783402777963359015162198812541843557762465867589056622646100314929640528826817292248921477037440548583529390424059233086896303547810083244251821144653178171770762351619319311516239856079466689804837940521927703239450221198190935868901024998087130594220176529760391490743847877754532189835394171176421909074649891214693502011906418692931888092036213866515751769902638489418022033239032964560319138199345409555023191986361106448522074587266954496036866391342268746037833805636850185498179301614715184858931484553289453986399704289384124905076105109607402323379738935816013818397046187353451670560776619454599909851410722702814542402044677329660998805385573995941971823654774098576265937224457039648547863960747657563593726864617733412846870340892190749977648358555250176077559022040583563161870917108855602499149924951889668272719610966663235607592730257652358544524141262853551413864931379073483752553967130319562162744610937077627289309976890674171041173385505282314068333001339455201067476732297366189199382077520423557563368751585898117633165825971969732640184166762390796815038878279231757118224099408196130799598208816683882296339165546723435921289875646112132273651199736219646169269322975508335631138002977762469158570768870646908359309202376816482261171871536622666672188811801524943300506258743914651631708630384728248755851996178109068265200392865916452723449904393598519787966318366907602435205961471632894522485068571002459614317577854999481909768819123065806545319410717016133860397821036999062030491423148882160612785095558952645058621371901957525082275490417327809707816818546714027364337978698416732561414215141144820995817947021140698200369658199497791140198876588716325545570057323518243897373537059983163024797337447311284383194240928135568868102470531428449975164117557777152690385559982036958852493226373515109957644069690620740068376846360992049525441141211887187361557605969425248540321256495679032545890231589078191748290084094939071012316238870362566675110071723495332170362496014690320992546772188692963494001797232253559207196757541573205752652254085883526151855989600591069566912772065999941720599350659041866159298886030430920989128556966787147343740633228206096316295544020471626827714002452841399928738352474703083765491680915296822170914674493187493448277113435598935145971319221444385074952125327986847197925440255513577895116685479562298049710332704287855710260380595236146130510165979005000839808641299299472350685323871034509516863094392775432484645856173340117648952835818994464670094429108744885427841532089061160384874826872985496962901891140572631964000255872321265438804049839350772158945806408596293866994224734515955298689399783564086382943010003714152439143989342982109122687149928281570771193568916969551525628241557731109132608116808559642338880517885424219011664069587048898745612221341984281328816620534976923920406849773117974304836688192433964783137718190075312789781026459832165176991021253137315567362037801960872501792791886270661693376736340541707658263298299471057266090596026441459795971158889268570470935041064547939500595011799449424411170313290499372622502049845483661194886083065406085708882760640810592908139425713280270382359468153093722912089482100773424894224926135793224387821541532929947178400906041505652264236842000576234765336134706852564309890025526118286410829828980265326461800805035303534800001578164590655103373651870401278280100166265229884151701971813271000618862211834252942347008901429060732208642158126837313345585676726923249679254958078489286329303695242088191028665397091254995193464246451737574595287711470150193549797383354054572073996515371118681373953586478022241616324907889661066202059039623356827043769997497429618307973138577858563747658422141297086508413682201388909239777497637043255791178968897216431075254635665240513176726556913311849996078480857663620358173289091253040235664256608434603251847084384563538661833088434725331700961534788025755115406847353648155341923849341905520561503899203427121558865844935859295310112128865245072428103236397790801793884799882662840090937299797142752590513438318828227685026001744319961500173300146932045189371628637753056306540035148693221834290390750955911996527014346961261830261563668860096663686162184112052439179827619192320922475362171214678082678454283944042252773306327643239400406167758886018384700270460245895243637842814780655970088721978223641113634160592408956926677242191191482591549131726846133827462355901663341270414475425209943855035358683992834154342162454863510841485068296186328271935922112826229832427731052961797448298235098790129355469633327461562592273641157435144936620041930719602197060666212312882421557655215532872057566702910585426750383913624613830411108620830418370982840427109270286961436945652164430970309215358108032251038520533808897158051539397721116307102388737430621253478737300750328147890665527438702539574603301641033606135061584871693134543328961256652023727975758093147896180502720308394802574389716581481094980516608018670640374884421451783623967018428722473582354959611802292938980752003759854438856963083323451758710555683014763263570569493828176230501074398911373602580575879301326532007592130272468855230440619915845907278167268993955705883839944743934812189233381256318219165430871695181245511368679982362438017007986920522664541933617950697374165192926885863194680117581451308807829543682083753393534135108215590203264003646601808610656333465528412894321800018609847382455639667269225400789338925948917601549699955424388671889794896181772948354377263908009057932472811509572561374920634887000510024406185619320703978040619857603167264242528297615445825962064136191781265283613019964483359909676449522719115067334741422640585954804051884387725334331841219736577462857702692302963599550312443314037209685231272768831250483083197069434706260312418914680084189091245158500100782739008822921861788768299021867844386217592098831944185510089594400516966032454564422152625947065220945476490532081705586936351643825401718822405851080177860224475926421922321761636506563712695190193973559345675182341785616748485581799236501848223574493936084110894820358015105897431516489382136773620781704194375242122862688416558575822566309906556383383105200956834046535101645241610429178837537988782806232227919075479852566644172790615116305006875877791146071929591489812241221073218705420379007731110780178531814088788693396793290613993180012932467516394786674309820696321578195829578571031657046514259722452238462431586777783731230723038453949241575791482099750827804490397796450398861560621183052888164571954018231908846277247768927792994272223644182821515661106946295069882945931748304779411436593680623102289382858042972046585170656590861516890108946866650455991149760919829695785961796678676763739487908521976733315936903937884999151036241139041795918303292243654243169837642672041454467455613457366425068243269366220365664405790348286847859596872245288498537938913547699252266647689307394885055722749014316176037934964059678562726600411371100385579917348609901775775047026914196109562023625365676596163285176190587802595947056254293358643876640680642694475486518777300399689478651119434234332423158754181918468021869728379085744928253067170479669153816462421911740714432931517414310647773554107380841832719049700106972636699370813318000579731539180718591359527189099090532214939282658322355128876839157135227695362697206611194355231697031421745816633417877798388598514640528434528536508381478489039660793446665241547442230058667025471300028884145621033323307855692963774566559064877565416104377940463861963418402308806017322832997252633860313777211700991349087101023966576993706393895356626461943155953203549419954165439377852520542379669081039515110832050442824694384117549916373370204817799243206456129844038165131265117033610166478392314359757849482641783372910768240329208853075749123522734116727111344657684695792791706530446292025620653105144033286559680852553948673243477888073367274591026080946316804768861224026813595574969825117179509727179408446073822310992174771152711570367009057051769660605727831759619188049417453652542399681937346265176199437170282188919356292226092730455762115817796482955023171420172959286321952830239081688928357258456893506218597105258859125847562515465395572482786526648298851308380780613085615431624083669511174541131646487421530519939250140856350830015438145565451153287544916993574728026906149733249359866280322541675349622532692534649923953938287284401324812639572912553800872115607279931259153885528890834799447894465343003681656722362016299228168221965795646855108250609234013967014761313219082843786989877241332710117667853340251863125005269731721412588037052674281362748473025977952749349695624488253674538573908567572822075427177461178832606053262438916033085890097128108750574665867088563058806046969799225825956685521215839585617431160347571110075346986592278883908423805897853089086871140728325830759615057298204646051833315873564425070711437822501343787669959912796817281534320666061098539049686858207620823600344820587756163555437102875081975020456603600774907862828243104121406232013599269259981930211296005193498487129294458333400238215968326107234790078555195831515896562080298607987683137995143089117745119347803064512490603863567511952236459426288043023626443809057387379558382253594121101799841324380599157776370029200522162226806388928501035699001014151677449574816627196304383266119511107226971588754006611287762727036467759118171365855070099122399206683978861933507147146645079513147723784768636483811016215855280790073880851337054256990142130562834429615121462584390390859006775975003836325159566860378666988926245515254974814802037468011309436511840460793395542175264130421341713180559803077743570174689402955535056570902623528960262000638399157538924986583206626415384786052710889761786951252370795351367728314508376875002991133160445523770457369246210789840349849186879765035790282247640656290142186489319628779980779363984325784735393153681859898650083775451706543350957703768668357790862769869035353903285172216126243702458138419193668162098139026891931946022947147990504156242140168596888440344791908587284471135607418123046951660496354602196534054766706037326229026983419593427021554399807465844860094452375112528175079092894000431882157125361027051368206606736728913301447821367452256678291192096824518346363936454723773288187208729364762522998160888024106499703624630039178994247759367141079120316354500346050609743627194279041692188316846297301644112708201101226216654780629002496243354673778151355665168199959909627886920278593326511382984217558822089534737643428460250141063925687276297718865934093226288060258331423443463502832711063440307508190259295819961072483352912590130684288361326941223598233691193778572315582014970293568582078468825962883914784508915799645867339195021817198621208229854353879113794642548173481693002602703809162285938099982955688998136467324872236560150011737665920992411083903566631038546152613198495238693436698064483963261000454771980225891982664304276923604591300730536273862703149968020952631772403525577700020060134458163738001168100660420093799126312720012624557200244458590623309351865443814736792478584162534079170165436068996517902248798311027235001141481310604835344679051743913404908540384527670985274046660510540902941760558612951308480097761993639923505225682254813523061450670495477002822847898584853756906482678186448533170347332767960007445747845970588537599810418014377627397637472715192993979108848333669181527838560709341734352071325937689265185289324047865309046596226694061266275967319771005958476175230814358244152742200881302792464216130067464855766170929562002306888597841244407839982054488817628762503120474425874168137516290084140288529375929823385525430950180533961166075914963556724954881224888950777301387111263480017824423315478810095222490790458709330877278019348539609820407240755107061818830622754329137969062120105386049874422576154160432695880986733034173477641081517461906908698142500694915973596203239024538517510295176201054343593721097106979606460495907900507373170668499871181306877895302227263741325034614818137118110445578408823709320031633949359926484292600983567024713139549067932190513203131692926960925967483495817295676698531157262032464528429377631612273428818428662083408482669462513204768698600224783518791038765026978939669483633307908535154565398039683104353912496634146705306989175607206718323388021030883344557849588163128340864633073636124853297532288580020360381941121909762123541860453654039687350785066599875300644263321356453947806530222958244765837768464774187136138378520022057545391157880441846608246250830191260259373369872889601076837462862187963463623209383747221448327209108666355063397920770396239197245872820031341686893788198411568905263510625422370407498268100228283208156487503230837945166028923336616955533752797480954538527147932894413650324571255648984760930497042106311595951271623875599170355616050126654606095072825646360977683400979141801385407804206484765415740467626801579245056256665404752262541566557936546075279314992317220946178600245916922662241666719877972874336775228430626506888878247973636053457585904913770533556325396792783565264587656886313155992430604405653465872323322075967494930404589566375434864091197095003885289455547625702624891836439741063092519749389198402350894184934298604310714007074432562931243373947496247118550437976578371554832029064683657587989902245290196899229129242345943101060954122382290783326523452754045980162676754123851386446918800914880034084074776474405479575087999557952097561667110306272711579008111577122354279128407501037561207100361096604631347025911647599359350847996770321621651387533860138998394081136132996312840085789513766757183466286569863679778860249784921871531386985529341882096726055498013403530107362048560916322431905032770905244007212895744337266605968667999760021715647351117726273033052712148546478748087223819987417443664767075504471194715865841773306590711181530916538839144084904278276438505441330439654094291863948981342071261218700111392283354890993346083784227338034838050710907032643921981247517213476753802085239943084448972366165286596258115118353270128140744521846097845069276053695983081931689869582259567165763651142580773164915069967299927085806754028957648690580671582596746501391234509951351919805163874215896854229508763977930728527407695332509005216327505997874278259095429346696263641565174630954700553255357819201628370383975139639589663336048669643686190807047443950443667845089249536129428007236065476225779417355788549869118708136042187100693155520755668695629773426807174153169179547997826344183570852456594733329044554874268124932673135669061733605626749708722411979703506349543430751603558769810352429617696622253012527798273215905043209713167591097463235808498838540952035399090007879970122922717667765668847393458039452076389296500843390630622767786582978242395982351099748935450285424109993680887507841170006344692173594777729869951365561707900400644161927182987426311363799119458738974801420038157235931967669534835251016497224974491999063921509167199624520957302760920305244450940455089553864622901905857329543005563858995865871821459872967945759397328307237950963585750225000695014773984286876959979973011847496655053306867888216601975046827994191053718573719139435035762566575786684610287000496789797069049079541886694155763535389242848422942864836826778171409604981982185907867284151297650929463004006675193491134369470468784142325567779447023831333708292914915981579666618427556154218132143394889940784182640709066963493060953679991686682848753487398264678017347835936428176433957866045838429406125429300860395276102159339248061210440858653676935164447071903852850409344416629361324532503137488648196738308283481006420313074532951445402160683755511111872007549119813039383134886907999593458473511923464411337605287673047819014274360829615082203351253216557359902043184109902822355089869098534207475077833337705980414077391268391634072437061835611012276891734687938133981813262993685887971901744099897927468620111373251811001686372310669573993168697066823287753974937899409536310859300277489029836120912292046616665934350761080877181293704907752366636894032460752893828153708442402760647070648102499110019240464554200765817444766996832267604075360835549490851333629246172866446365678790818008245862757811304245693942861152665516745129988239989463915854993130664984627798591092192219518017793254912023817664541012314484950326847135556601521343732029287688136504871028856608135179487923842024391330980600848018681386267647866173463926542593205817015009560470283035721190448645248542409797569875611491470044960330714543927781362444240267719344252854211946833840352764748632996920182759787576551655503643353796364461674121731364383340166992076280481076852843348924645808261069414822164144273090936341915835857020405885069274464294589777335111826201614035812300490254735507701449590524482013027902743809242686465303145867287322413030252119815460231391624785790571679921143710974888447112980585123349501838730668061110680939829912074702656872659795243296403641945691425467347468623699547691338235294979752908829578760802324357515978608313815669153818389801876569268506287156924549259378165505570455043629367614140363209713954765735518774752102067430804768771902257708203255513711984438616370780882875996029211677224450124187880940440177643006356157142409070533515580217934944600773027314342851743504919567922032268122080434317117055563034870470007120241492775689034992527115937772336189991199670892257152665172580708633582796098396279309470727633766016072493913728920028441754001474396066333204408221750790699407353765249567824959488788176676316001053104060206585191792891208048063959957486169966397233486828028249363580634766955052104126829028286743954288321444133863447898745998460837291711597405142383628533933674074438312172853414698569764837995146974744047224223733657563232339226222698695284033081277414742093227363244908616353315135098376798114167092692242510136635864572073308351921396484801439440403241862522606165176758521092003713385739637120492381090646635899558300348491398476549511391108119652546093695972393922150890737776232475611877310666610934154455970096834369819172942589476320190419357438226921476554402880410315268236427743343803288548115260662852936524196880864710468945228660081171606476440659782801872598919579396517902966362457749461274262432692050747806589654714569519497996094433413165330674691383821045642222325113797449307271468167736309493583901303129440745892301297351040784366467901137203237329703260592033081284827016862084332113647250601025805622681837456136157388474942663283950980163120042571157386835374983595366556112281724948514269732967869075736492263785738987835264774372848324392337647063755623900088218171575983941636270200822368354890412242841074504830798470431519719821807401924742140080470149497823893972777823166616311577167974430661871794647251343760220271825845736803563057742271170176427248071107838922316091891777800315508353810063221201478310549940386362157026624512612485954501247475697866714329049886192928731126662578690888680810675715849776824337377313160107709879083348353421275328614352926558102973395782053199946772036056083850298153041845131479827101406238816572942816241701885449142329100740272728445142118696158945714075764493270287978393772623071413486921077953313349055635587633151648271245337956958692547864358677844277050962516862085419917292591351528647824783692147034811372193300601240193074320911116896779075633469629826568928719538338028712639276902662388120378638040744370733848187393891674769550445680070605970885420246566824120645328868367114839015026942510727686680705135001078034331952467439293960156742427798659909573974592316754575354001731486708537911634814357785037651092355488585932101206852772703467839533044984726656122863069665746307773600064954654402860484227566947996393844560029979759163365413128142712303987149016880645924412049550376347782429531192823188524004162228730526867950563671819142936400505460697180338054391502650030790428223584287788170767395627393087425532465733304767459603152472598292293009764917363914637223364104340034365616697230080634870611327039412278033384496689772022156177825851347070601446224537174133810010069549473788085766859343479307605377950392552269528538583716564625710296958986821668374373963026213989528718801606554193081120977517366650460532982185059117935830034663698772241509881527829689310367331528398703679720992136768839998377082924066635746217196985626172117420619644343569255115087144216918734367397067212465891014921815796027327940645535116908554264522351814209223748086258535315860703154668384672084876387081310231950466373383992660323808935865803767998719918700347125913642246063757804967213040244651491255171291440804213962924862260057986748134859134896550603897613233714609041403188219235409881395822703417782492489024338743451710403078951200455973899373975705779336405723835178301294193324661167576176214849634690995869885945973170693297607820682903306665841169277403555548719211144888956381389942650417792386626777839369162880930186178555275651304101491564066775115167774980102147164496186627688433179361726445415357772894068084013717494156759397918920841554942134621124811458420528770562828749169314784855461571513618068547235666002812850409385329479483878511379833640550294677726771740556935028351905727815234469543428931119280974823073256229376291319722490190147867486998498424318184303063916729764406257497261588205791226461623560264852385524414982183635943019119048914813181538916283935916830217689930902620289128870102073072458369730570258714831291466346916574290054368430772042900156174613188172634612802263225777082496736835331612514974374961040152685003784975321157399057012522137453615375913252564237605522594821447027567682719604599628639746646860524949698580977833935397419937596997335569922967451775114256991775887951398816244131354776880257731339497089077982193935817790282009919236771935633862773675442195884775049200490414585794631500561018222841467937295122536818024764478714929208911544441558081767214635235930257361891065298345215265885506627343402893821790896795473727748199807487588524740234785268839805403154459079695510623269310723023152285280931395478149692645627503299821804684108032875192480937876925464750097109373654107683704524071723839958725720151627133409735347844386240065922668950299983350580130248160946651366250270687568718172396188558202668708402475283152672039500674209833662171786066673882009740871029499536011268591804995376670810840082876371607137073390972629216396155128421981955890254126003035070954505077167926816637938857351177131126612242098364797228596990192761709237484881549237510364892871535410469015618391220820018817783678780788353187473915724837800000800980518321710036059269601907431870070871486423843535955529468044346073412446576357689594027595233657139251122073234537736025137576927419378419273307698456292737177506695027863139211878688875244678721726972951436225599633416049589511074423237572502169834384517260337799701653821857308072753236867495960954090799802362086824744619146797602298660325249407088730259957169225430325470955516252438989249678093693723259570898239027779748596182915537463503688829596534014144676507548282080498105712413789714614227068167968248171911131738497178764280568806644200109433869255739879406938827978680466516792948867765771617352418209524870200018807047744458988827420052519080412307799215828901998232685963833849610627298838887994910139672019229961968828069629216411323800858657516202508393616260937833678452225542317755993509460697133769086887398177688806527798742297684676741647456352132783950025475955560445350953781336139424770421836005332206425659885593573062893439022544909897316462899663429346818117122953310915829822924796690599650703169585485535638760766281934253564004888337780813043575943125720755630660231696573374523435616639234618501548387070815579720920433668769313429756710836100894475736433326175872564730200184605048117574089663267114644300704996153578371001833343758354588148554627998402142781032887218982614707264735672445716214345425027078310750596532061681876466540867652757492579086237070237718911912760603765434569177219161127452469370314302779394467132382575601396292973130684000385181415249613468094280101689018346901380836740448514758394790146218505913276539152600924367226780753769290783675941127483350678673227859479876030078956734493822839308111653294168679340954057466655670950335827708749485076835692962939672407696495278200230909900593400921252926477881478535241327825431081926232075323369741523162349430670067865366581169894637461927905492182991215017708707111435805303804883836093909603937366085127208194360919382861916273846568110077185405946146965842787680479667464998428419982429049651043539024037039964809333600403326009787463172191130474682699650899811254104496354998879736086406326972487500604290002016647504129726124784943943347654465533051190483816023675356372962532491587152567723989203070118990216404389241657279032579800912626006997703831511955659266770627964276947698964974661066602713040685343350680139174490292135055067289380195339727809378305011867975853111228620940273423871290895748774744926884756075780886457145692099819516480654730817646305959475934333505981107842849745811584019877682667405236091215100185545681565342651295039054946940665940854135368680488931753209222019428656587539282029758058939045103950623343543020908967073172047826427369454901895621462976535408245946392156013453468270068153664935488572156415888775137133424783337038369549231980642942579966213821808836442941188925616070262832933340371278576627306279282983833688727181509600730307665144487024320714593521153222858212918099455675478128641852726346606406632079570872781808107704498826629377378170175923438259696024873237011625078600293716759175607484217230916992918264918365214419007493350552224651173589760126958182371247059210806118571410904781135859406886126274292230052740644421771715454825186613525939881720875075879149852108379536507694148841916961123947552980328276403741778167179608226420964249347883905554493734971176006470796809093022520693658503462757783168462774854605778067255229713281500555061522699632516239032268187450688613969215771545738311440956995403612677229749939979308967522862977832831008576385277441298463925716698237262360920849004801433341859862949427254949007787649690456177815301043831437501623881579142545699064141200497721278732068177812138132255281261214504943279018495376882121272723398929035568339451005329239469807426771865973563715328499076637181950547127618694698869853187822581707533575140542869465746618844628511318455839399080124841967469781584108353578601811449687893664133264418004209979634418328924422454177366724507437924057259270923917206830519805194340785402762732381499527568703960049814203172419254199142747528768060753417892819647008787259729835813935769677810502795074486739504004727831739383713791724220247194009939835498975525240775504362159082004775241643623161658802999866763888971037982168364902918861544041443505517191533424087818942959672838219787056793357068245117377491430482525481775019814806285562009394056148121523398194481823923492596070518249832922916882870648799483236810593312435279970937121199586975626850547117499563145036300157999602497697462065583349779067799433058837715202561370002622934774489573224051615125726628609319968863543428146230036408052223887691884721705853191098741923167712645503008890378189193516941004938633974106932220093420878833392390516340936036373668490463170411444057009809946651918385328830399426483333615808292538294278271756158047568197278348224866473389463736308082555423237833732097821639070492683430528748752607065058940356370415975934779070766359250978100642333600455985766881394996595951634332092165554893981590275029384881280538388971876077432799729196069087917950955132185710526577284154577401820824766171484736924683761722519718562072146480247941251016715282297809335347551286004596403937216082676674931196074792197645120149782733709957006418629310891098946766429074969053331867049132829546079176098146751592005227761743262045300301806593628630911170377866554130623149324373863410211376429428170420290548354266982964892436217706485708456120692075947414409385849500335508258755868338852851162804130535793709046844401320767773360602305058517177998466110213410587955015434581724948713221284867154413095003385168637176568790282104481496038658621923371223197461852014571432431995443087448283224444233104364921490835177356521750365133108754864897900546605344369950205363917344328241660382867821357359523964531867230732304438727644373710379510557037308594437454347982834422792428746624810028629382205465352809466138288082201082861033155116748447308797601761652142514338534278246336215551662633925865058817705792340569392726377615471181532737776654376554650816063744049512657197408111639217660639992975262886335443515956308126335450388688438207041444130971946054423513796499018109090994927241413857478697947131288204736893511538791665785470589159691911708410312122959621434175162076876823073998482695434847567367071529341483195156549031677761996166400905693313114778129413659652457874956070279132888508680782760322944344432907627929875267009568134493528367057983627316442070128578763485597801211948880639645280274023039821947129741757216951737295487984460146535285741674029093406314000784441327698899237445842804999609853785074297785729940493964078228514118018458219091975005638128662125784038240392059969482751199638353040788252380763549584687530172503441961776959130463517771787585756165728160472433190556845557394516098085044801767041981480838977699933640133246185547151520688872993118007159889173110947896903600992766643474085575338863796512329350836394827039761754399419726487656824929911829384922853945459285513932033881864094591526087345858485097729691896298931487088549052491171823223598031613872408648469206615030321583956090372177194059818482299615829932677674760283878447766184286852433660293422173868745969849228447685168340699798846880393269355885619139119897479395413296402314679554701750486767863929089800559602384534454662653200603747946472551901766255535425720223896313834204842215353022322091577218982795084965600239934256473021380069432958433080612875969307360338706637311646335084478693290531794195651697597067883958104168362645794355811651372397161932521153194301688941862133203804029105759484542310651959062937830078784856618864382087286132728308913502808261575427734559971971572850054003324612563858553424579679944623932391070872040348875894386104330473468761796944692757760627869212307838356138423005712417747196446859595879849948904901780522948841931071800655465118978452666786467785107851711087677202602666453428666161206308996543114178351461303560311567987977445561464748606184818877917539404281092964616529925662906412308325313759626059752913213281144052692418216823699428438531797045441015012547485646086882350042615023737229142882406986356437064457135025242839809133961431116704584970305049204898596597981031437849970154686896165647832616731117783240445140455237263877618173516994487824921555731285659330196570098885203883124867003209747617043822546575899135269702874271080591153660978555791265954462879514276198536946814532393517288578771236393441293325169434928476234994334684248471987067271116706084426219050217340671010784358308860511922186559369119885642702108563608954226017858199599780951303468033366144880785455598294206723809614426510885145461319400774559036427183086613544312309740421222248108579356551491494179820921266519040419398886420984728343311239355463904918421554860113044784207957460961756570064099833412413401567727735759320623669922193919621606290917255403293135396492327005623993787941948575537223857740744888834830070720474046117355221316745494271638670339906227019292514172794091545582696080188667196204434190178601736753236181414862229041689882155913225053002177547571155218232957388680224084086999048096339816518042561942847877927213989453293937103977380692836436406014978273324194698945948362628022651145055121632048581863411825778629038492456743919589779817513849069946505341677779856964470628311602594981301988282148384652325840092506771526510560507902713766512450202028535406311520914456385929362156245100325524987606980357129920030225598715520097787977759949913219373776899568686582899014108277237660077309060665902666950058620168673975004292067090837086660478587866390432988257664373519213724855714829691450048702791518259641466450308573001596125292261340863077184170999813754553218951092815987474522234337610318455707838091658531587299294990991072489185738387873481436985707696808954732665759180031064049945496411578161750983861877024381665194271970172880818349760140115715473410391074780753307557157293129874259818341204407468909731759064023196890743178047766751496670486398394165198578278664558649609465178584204167650631729433544014931725089978436024918784363169156721256306278408173443807685185201629106698222356257037739295276276513424045546809073451361859558444064695889542975723706437951088651004752590427715446349377214249297904758294999739324409744009183331303443712021410557182262593819858316632390480428267808086473557437419471860717117451452347025333748048209380941751705172513960121004514058337304712420862815366082668738686518360622790408790509453659815502610380570476920145817190372153470694579752090953395801719845079740190148969810131227001123863043623941088598130744158089046835224651820617550331074474705310910824633661104234932573702004200501416679313379040004508602451455804896704579140586966239609285744734077320610008413908614320166738474116252602582393441938220471540906081337565636341530133246333638720065939514677710185106928432682523759216014104742180018935412757184652867883733849613946713206042729312351075131575499414153503415993625606567919555078272524644014474648097882376733965125606330898794770892129338761546756773701998029094806664571037486509366170248974455173937193427563868397940839559186457633770413886882146039280344583870850667864630404446827197760099015309411139506114685197259704803800620669894069494868954700175000004533512308834432876909791680009374667450530873100770269977727206020413356454085334661356491256178889972284836332856602134658810137264485896415583127251780574162515909898679658635840460008092686654712609032469633707311714975380945130252578465996826383437428265572348620841701095964490583912046180530032311535714311331915068784729976472002746129124182482128225828500879184949055054420158701741976226916790522328464062753127547967655973524240225238318287781156575151449857169231978015822272630896896950157986184351172056715146233958731946816802561201446543479960724164456419213776076794094150435871897965322249157287448057687753062078002088091092312369017080521677849369071147620947067992015359891414582077350043906766262353600774400690743382454890055850826344734743926273287937788758891554191567294769999978425350538154847474712980354694806540092481858498862640253830921393841760760650755473814228604039158474766759138441213714261532265025928312481761522465187061352124558771187240265795903854372711477452892459512366875333184759321741991552820778552240303556996844389066736364021964137247195233992443704917560739451408845809579373859452837110963901924667252893239902418430753261161847371748211545905134488186845765775655594258766313699602134972166311823715560372577911645182408749848690478477111374106644133604366838192218026573313559755357748818154405996837717932974273653195001123741316790324517168752148464090319515468427247454751913627496633396274626441481776286095916410481413433060755686668675537100907362392093557175541802362064092137227898107825815916734311184026985863284112996584654808089934976769754322152139265675852339841818074316992920333858699714641806485138950798754955539618434694583437840102399585529344356339082320006676702606361029211979621985194531086635390291221694006102422934016779895145575569025925807477531066075644189968585402527908467755974209931589573693643295663273980583839385189493391214627264149709816772340731437021490270605745589182071044889954130947720520057502894592007513455818077123658935038873531736210928226648939534128649843875811579695169021807490647670877938198544780935809213216575261645545361607084666481259555724501744666979213912853869167323067786198535228038931853786050931128385803956765176666916232176849133583395631007948200832467236466307427506674210372415094462701305575632601795560769335153262717368119815683605564849165316776457816970436604861129691436372173032081418066025333057739390904898946943622393746560285649511476371547610857953727294870796722897023293059733249362320518685432165577722019842158307342969794693367610452580678055638330145778385987468210723552961500182294851814093920609212953807227820290218863464786086964570115179908879240188886236321007668373391121133869442013315019316050035421115014888382458439892374366423091880102025120624426835530405888563210103159864484782270380163367942960925721424287344468310828012830098151554833420652270754591549584729772239555744100882002852765578524304002404637308227853842508085662931604975283034020165657397781980875812761756332350923706227545235885570309731361070050643942354442623765078829991736297218701538812568730059317492300557326174790623263520171036495154087310028613083465064111721628973021947301505592889276775056114707298764323824042209328601861264492611051447362622161025524568072575988345865797343442456493928935463869060021556252294008287038321831218697574470559159098487372101338556296639826845366268130083312478361292469567245922199123210816455922775911859188459788476911267195107925672967660228647267962576555824064836229858257223461568127693954439848074565184877996677788228283018491405001409960196284182476931560602932382995428596325560961503957722615982851489584436201148230609484961788842606983563141148898612828762111793945120189594554027807939604133987872898652354465266433857755909652729367460210164490750675790693015688208534433004098273226220601317628213221461264859339527910939858260633162669337785349977737903683100475372511195532975941901727658263405785353751459505873468864877952664167117717637232973230428477492130244399223460960282488807479319175756377181161515860010771075820355944833498435795369878398570601042823733592422993985338824895355504875071303448721842132079889827273862882144380634815565248269929786351693940163674847564372319357505678896261006298045655476488158704777615637223063877482136894804245198559587022998719287808229098260043576613087726004558481205825280885257129413359316712661398177507708170483446735459605755791318398278680048905009540506710310541371833935257016809346653181475927288173408800210917867138985543509049813292590727239449343523034260621420227778798785465629474058346459743694860685777362889498767119342661289722952040633760502704725879646542753316181197795714749304509770625908994851339297848122995968293247598593406488689343938698237057571969482277829107814257675749346416968482470713382128787437873801139540738602816289545012037985249973631840867003792640418637293787776793761980406747236165778170662809337306407960288736862962181580027211186311363367446702061210726502314621701245414697398231911347988689302396324871102267188977148999474630183920268035546592892124921752186637448830903622199929606698333831027388282301254199989113140011674480247780554454153510983119951145261215173461013323204613519280496839189592201117155550020868262073026917458545701062018896095084599959341015749122747414356687730226275447500673200227650736454729559313980865516493360821173664545815925480418148715571063905250281664472184312457452525391682316373180503949961623171157805052294826382859404729196032332740844917521742600775082309676983475072952808224945205423784279326837280175839420240596918714617167841319333461651869788499966217345496409201566058369570218817862692751548747273021094599997972779295692488477111445004825482153487032234604438504112110802141960221943429316590625940923752916198704813560350282200145915015884702417590023749229159538357175065407805005420809610068431505319564399727802771884374718284883780417360437012421615335009108510631298107070227646552968333959215668178298314725918131796719330559684595506086379593963222762358850282966655185420071559248236862547226647862865574172055498836342563768584564751277220429413997403769333394320828137008004720942543499038805514450056632782108946249944852275354297387432588668838315332101183564103991855685700237294617291168191435591558098726326572263979548265871555187780395559619801987626050762997318630661239719708210326342392180597728467230660187974738786419557801935149802174524800419949361086041401407374651358322225421489703115759080738279950314202445050896158388791350998868939813990446339972222418522053502749688808001362977195049479408011636722974667587646214906058867777558605143665888074165242386657170850505065769595276314037790425968951312389890633809048216192531185713065093541720278159845163156223500934234828649032532652358355882658326018153188534684870567502997816191034753900463143103514260138822372658890959756913562076803162042728779759663483920056189186565686400796885062770770355945144202793463162266123592775616554297876630896530600573407576028550727841292607149362796995683606633031537741271858059362237734897377468934589342608015310655176258237771259563985348619397555180481816570136296116240267754133478045108721172337084985825867583984506364078252658254152971959515922769854804865695310618184770856966368573877086345482072517596924006728984869297600726277703809580066486053980562207370402580457105068638067464761323049555998627275461486586543323987661131098188729302782302418404859416917308119702472957600519153943336651986241568465314684051117352633593176257765085226203068867824791745636112375367870928607152544587164696062008673183111937569009219723164428436356310857733700725860072347194454632281900042784910773153260064710602625588825822103036285600148081079047810214344360811380046807149299961898475385348797593339148300316890485222560634924828178837419789830143728281760613282556062974832006510020785754668535504054684927868958013217799352782566248933431349234041693711082653715972038124701400793986577986703430596298836790301081065572762200346788039110765814872344319091317950801080246724497014777057258903267610369736565430060988462121329004835053288308770850994863138742158946101727073472029727747090258782189180759118276485594235640565997761411791013040854779819888291286907062621192013906911242020790259324670621665153732091300015882347743148530521361248435741272538221514246927427550453851625045165044602745334956750450017561706787909947695325323368583786239220534698154756071842354339588736446925842070970462531638855024371133982506860673222364668901635409089184303857583044262573051937583591862546318733064771391842301488116462105865376873483182384041189363579633725648469845101319412137636104412088045709195408048753373744093395923462827892636155922260987569263679896030025105859514893340801681719171541613748898125618791850488705198007536856063270696055168726353068982781040314010087244004344627085532231104484937690930422697319072129033517856806891887980006343079310461329475526330831078066213077501419523568701353978374115270981564424379955516338689118467590675451563867326571153273730456006382455896400818648340952101286146668082897470708268667089017468710377392565898277931826855211527485293509227783241670444266764701895315073587526099377511751860526755159559840808767615881284374239401191727435503696079685376609851640801303848900086549443657706349629936422582051164231469248085889736480244850741296175903234073055882780431721301989609597797447043112611504954121772636422921555792861358329204454825150366374276173647237652397473469937471626098516386002575401970506326578565376122739002178276943438976115711358270277360590530323577760594337646371568415412728508258461309474069529059925690637014892730377949344007053071460851742389299218102730288477122803952331780015432890293513017150934790743271153276653754125313518497957922079151399303145813650758322940359121453981432078153788921724410952231527079311892684521156006411828220129407270806300700213357937021131735275375369826046317222437544601707800074949501713149160878100670307626440327972943441529212775648755269123209728692452021602196765411463568277492204190676353912915642432327436199326086846676559991425190832738999212410220067634645549140312600552897488026834519271080548261586077394058775190337493448775005234217455278729879536753639512090764652277740455896588756427180225529357635031168037747296670656124287934218153905708213446370665972996254811377197361066418181056523988275913433031370470903545405714868554060954162009399622754716448707320802196808272301032749377348543872805460085325889568688562116758551516171375103769416022881894245716098057294269756545978912497577166599584092060679952414784443333008067594487353029520926556622054292197568793522878909071881050518162541137247507137172338911570208872980583651094472321965668040092233336161590619996459066794345257223008947229454971732174700413465816418524872208973475458821950574378866195748660362266197640310133512998088074853689852551661971707392473952166292446919226145892995729465809137825719317122349261195591749058107198864215581593224887268292533642154027654355772156907055376289196329205448447630130864927935499514498377090453959282006867840602449589988728104284707435989471674638257929596468533781040523809801571944351212212043004757526633175025335255290329447473786162138640859788651342915467608865014661540485302424102761905618991901404483471621679900411598762708277423684498959201497168497913001095956937595303095197001730577199610933961558769912194755614852279490953967968652372848963600977148815855768850422712175556076335639537595613857522733006092292830619606915038794111295374470120862965642953364717598036977254188043604935832458149253529231790288192595604813402272185523911514404603126020111397376960022259889557861826715638624033481564963669021835060335967939753061175044540048044049624299717962509256872309864022493264605072400045796493403260095060889120890764511578608722800831872792806638278152430433314403219651978495204832706704765667955807952301907343722189961862697943172536471094071839406513949101419601963506163508568148496005663793715887310051552340003293075830276208419198386250204117789954553580359246979393855115458519120293145954532907318878278452971249272176699216974143711826137649058130301094781668737578739400291922911040129050641384116233609167699598852536504890379426570132463575425263194064040408043829371742493931861436887098458140179690813735678868146721606971969309039985015659818621190240968106859825283035695576811262330932515812430131036955202565610304766613284100136617074402207474269658628336300827146320924017752292311724136813306164047306315645987445985054933726728269852440039157399193720759487720844916260730694647788748977138227732423954826188267404631217177670847421028435791557044304336207661323810188816642893016252124759093748727124198099053166417356930841037084718718317949263065276248935505309346689030440049825494319023515831638661168779543295967569407840537544393968912772955752682794300884778013621710429169115072750653000743652048468705489408324320111147995528913667640177412910037805764691602147471470434310114752281765544384480652885151395486477330922754670757136949671755305573990209530746044803057891725000490564061528274936983557909032371906226266491654486001077764542497472084603346621767722679650335560886353882842068577552999835768273477266697868460164032230197388127580540073547199147734950006263647793560547851486984312939457925863356363621511656720759763576785528783354545451673919013247190109958249812384348370188319962518833685549178335121702617021338031080514924059724055075786628932488610955013582135427694665349881020426725858317128428871677219413483405124571985078315482967945756463564279881081642957069790445189463236701252460582682158463994850755295960567023540978917149718546330917640714634818030162256098240989170316340631765646770267665674656812128945254433113288121029503886943673279209752623601163689415338495029416556354356273780686314604525045092481811821757749533231880593996253733221951359724250478349275602636478693376166931526435004706050042136225275909988075324855218089463163564500987937800785233238750797236570134559670084713192137291414756473052027930670101126892662523270494151900585113790280235998641165993255732240345952531118965556119478121404219735323454212981134900932255958752323422562247504059586013775330020668894692550177288511540859528100191510599802966403172847806827632209461870997357632674718840862475611771874954328328609536593217690204585288278771356743723676598151836371701942207219341092376408338625495171218994481402552025962181272976046890404019459873599959731546065493568181552975430046581614488883080019475981646831983815627058713783276952018697145367743022155426087932249375517106642154973363103439822030832482946150239879280988983499207694603664846882398757289045663246052486718850491251436597310471153976795222544397032564800902531298800592636242042243869526091416038860991124754259522270363798666475194988251542560040982486362037101024388645541519372016295622383291861053627874352616535937876167469990244753323830402641349045875942987975331597225614762253352087581604900759355794111411888644482752446944718701255886672170055196845601030631783888220251553756744407710783241465507107114494605436970898042230459597128341070552956659889415469126517198338616803506697307886887349268266341243827127293422431415580714047174951396185711379534149779907414207049359603206222070512347557088059276946006332279840656909951533275642044917770085803601265114414728077315610243757317638948918183672061509877103287323063140359504679110249222550605862953906959903619760496565211612103647605568676005156232067091388958921542717104272166776386480414106571607460974380716713308777860338268647533440475793546112036150383396921462500269103026564465754691568884691306071654531586921943410139045882044391767138874899409080284685678566310744178101228948965012399138651310346073118486907024644078198020362440687740180542668508813309027779855294526021160064685813234958427217925127892625076832775937798225271348559254192198204001872147926432547422908378746814939614923055471873481231986152866069990900608777742736931033410573970466717303853262521355770776359497597587661103354975405493340260846112901014249723351011125679840424547632801145491980167071469294283090494956085966677628225738108532066387338869629959919028884755586685524298905204537718202935183278713009521728524898958649387739864081255171582308719865300922573525340278130263191703330094029822568533754420937501525731929254772346231403719148728904759894999969721431561428617068790746991418733134932602299028604996712162161529070772650869759546449849646862246312168425311387901006391059149251562138538046271596705304145259468052173354476576502569628764745263913125634348224439646798489811011322069644805746516349168520339122884245868832652677248508172506354194327421250828915090729787644820980008289610618248221718890617885518441314640513158283980374216894415996983209065291986702736024216400059232813959320675580577278958152545613797187929403965255343118468929977912426444671141927637106006220628062099381458517148091749083250270026445274758831130333950440756886048661161575836898987381814697362703543679340697174447130218817426041476241143913335530706474190000263532720944050130441857475640406719094720668230105148107231982022443120972174237261240917485648736690408904034691666851658340805859735676591593061614857791972201925876624670636319852099048862484477107626171953714464941356856069898866037254296461064574698637766868759761232002096695102413961271436422081808917785958243216986032940440387148439254723015168991953124009596907867705284973320084744386109443285790828691694616514253996696658804775805481835892436019529295210101140972625645800336774615365824466758937096494933641900090829027309750923943728688958696565747279753041410995023531090359645634874045338113889072367526734824743017204042330980356846208931731773781038752773568015968408084782619096057390849214654140306716990124634863620177248085207332495693901574090295578848571739181282527109781047623077945956506934387580919408299533473761623077849805794598116230890788289641417619242716644318615587724058164175583629720979169082310021005421328560922663083624249799243299817213751143132452426687075700971989577424882282761666075516369827521627957749165262537529525536645973393688064013072092690810527943691063012507270042347708635658060906360370920069346571564082658907696641981427558055962413076923368857318702697382678024972019739872953674309248468399937421413491016278293331899955095194696360888984721867377116196779114768090097636484554634950159060573739954682700848166305796290686046433583172487907762622363473842497097988061623156881960668451012486899309742276972914722640092164513600234106460244134258701551342270703106915084754833044856465881826245242452180606565459998919702777293623672043090008439245033067090902568178621941149205411365667656462569764293568868909649112974521480332495500042073719805502064098107303971930998129345010400610658612521861435720017121967080812439283981296973645201464740177463002704416205988775088220970550657711061556048203432837568829877971708410385279231149451145233857911650842448491412213542990829859502088834651966578414643260989846322067375228066078569995379466197013157553108930013634229189520055949988905031841450834499771965551632118971085088215551598841118307970407220261898673703923045716887421694288203600566134068298606145830630637422380089764757065788703777620990401995111924385992791218162901195971543014067641921034056023034672514094785272420393664621899351680486897014323815472003097620444745870284193065331239042031906264843823478697711990999618749466052414369853175823787741838025952187784771651417412359875455799821837296673009353099608176753762127640653008822029329320771576148826216037839908980231310204050949023267997864578209268190201752383265286080028794104976697459407572350229494723102838645531753344237407634753986596974030160905012332601867845252900764398316707038927517735360942415351541447143719022539172087798209683824838634525525506673153846713822234014324730044064783548209064178071031574419292761761019600684084158641098083878002604067877623597225031650478345427252387945058093841905735287893746142624178343194233759301014966383028153049769216839197331651583025325228517343575580385187708208181134905634300984773965938102084315382410334355553625591831068106154937017628617301437853721936519358519701172809049999132789407675246643735087033221679068770708213087057646202388505887693289635813623263763976420976854683347063491753194728127195780880800887757414757591934035968176679898514660928227762969578693315004101747511190419934111428449489342561959132030449605454715396168980550179366115990147277318183098658425487987157503684182479131586442838701400173598723007326260379578286541205145122090290644989675009338251664356105012435632506837859375683527516692204887287233554441672557819374069573557666139183331709417802356710077834333362228279657153019448672373327426644334958582239609234476423921785436347232175518998869211238202132627112843043324715948101708973784309131004518085285384832815521616010904435592259270153423392620622170383702945030603047440981063720929978309589709336424179349214026707985743045631549352668382261962419645754465584723097848507405990569933881928356912971142399545637493737761860338160313116578673283558769119281523227654480079656612162178145550468263344112449526749579936542989600608497507545587762075698204242071063344807250371420219971135691280704578515930012810878465054762528931634743625975049818322698739743255162897459385480391117245160935218314466846551338304557295323719148307063995463232647833029814553132313255594472185130656866962832461303917646059326279886010013818857422361470801471486355700138471358066432255510009974540694200247274840283230122178522269940078106885610064524590377444421647853504531866382760993290334864043558347472224670035743397968460729694543394213967826694388451369865670398921504463359542367734407513646801868034249941234736454824468612756484519054709028223856243670784976298397887875610886784385522783211932813080016227255988877320480074180920892352529431247910056797447806764885745465803162911741415464609635189702115555868721132970070848397243046447493105305033128480203220205406226788951501462260571609692159379085066605826058594171978520714679643474708215167297702849382534847078549814947234431634406998555609864301277261456416867451347550568194071097951405954996529142655557370243351275922552556739457826363304590527846037243300681508840141604508975824364761275614690568907334852235442928183819176798110537065754118693292397561089621787491393577142554349278969431550342063679445184683252079052161690744887920442000258867825604664039019411409494182579082271030122947568899235237440042524418748467673303116454270147223697017092630701819915809797099388395482597797986488793922193774439786359331578828152191086617758053494307958770068368100609335192406748042577333197766032805966135771750939159127730011791035668583857961690321944071461776730632611961263353542449881468890619986086932639186457410163919026555517491644074044068701905658403751600732055832335977818669237841803805969452561213612759475724499099390880756071035327194331508621724452929855337143719866900026264141967931883887019654012589943717587275882323223971338967999036620502284919922190828851859424148853350859119829045781648695809488487241268409026762223885463763663198145118760675759526955092023066518046224094894418375989718222065459485528075971312716385999554512485440864221912580879071221075653776168991798010353641713513108669022574021609914034420141145796089726637576347273457574023177611950095199487503271212614800343469574184054269869974012166519654716763866123961522380095654800035324941527509927763393057316365364902477446772188554372380719793222696478552562988125822700277190151318690729598075971454763566825208583641442755838181529973614198593433607028692252789298932228154125925475451283182009654767395352245485276031519509450950013190166526221217858833046883068576793708388338687664290000683738598454197526347749409734956579907882252661683174284258903670439802360120388465909814919508962785303478111666951829643804388326755984473976812689062766435409357550790347477471940710649028768232245752479299719836812132061101341692853584318121171673082593860715397015359768306547340933123988600758208303243742536080538257633434793847331364986017269384172829857263547062344387361463048611818135668163909702469789076476780808842055086733899069569316515859956731027009528123546537846614271917410412271153479276289866687370663349557079363567615363309635310598219704878452057721848184385183393043765278414733930872500717263359541272162323517789616250156372075238544346253532693786495900727293905529053629573593260627407340930605254661542179544240301316222452058201105326009920311418727398779649326790943169560322681276933505882880970350147022261177330104473283202893697867532272602918401528163764313583878222265231651545930142335186040486096191044580176373870762258323840536628770343935293441328944062768632123726316751730473787535770063229898209543499111984524672446418387932640432465491691370238794135168173654393001433427357978541393926307849766817458181807781742716390547751221160757371123832018108947987931484795692320295805978825956125746147347324603326947483030793760400282562869958248134193507876340544349409675296360798876971777542843379771902583201057471681448628976711254610835134252302115093511621927117499234772325962182752780626051739107242284805673440530484784635723268265139917532952877170654540548057804571758091549228365503164085826374275270127899132370826093970222184213794435623985154180802393684515037828549144195855828472924136234178626655287586355986732238278916948850442662389147935848214668484819501104811355396690070646770429567311127056410595411571299949675477543959377981945350599878373917102870830320490003777163888480398296271025384192575554122003162631937006947630329088502220708872070950493290500010221146976296284017833790257513596035547276276728452687960372695718608420802659123967351157406608212469441330799707721573304549952012279614687984308949301495548232378674670256308382606467942706844106820734065608152983669836972874415813515811984614501186969888743547120331181513056970770808745978857273699339998736996639529114178075448668671577446000386901029557906527358132698230750362558034625609219805082661617679545823870826242216548750391017377589975557985030779914374633991449887865756723489143256125424811564297194343681913290156302757613835354959158218117873066600405923844350196420741783771571745984898942551567236475440087591007636676132741838914138434134069560007769483166759083292629727491921824726086258036635813029015645498839390779564296532829607929048610141020287000596974506978370988322266934383346419882858860200628819580190437044643489707827809393761386911691820907360390511976650684812592646161700371501756115010611725931082621524836552992208922043969235140009086506647845054703590073990568625791859173209535026960318104751078631903545806225393933252534044816908597952578140397076299155307783979937267337580449579174649796380201108124137589091363506543138883184661714922698033780461888393567880937346857122858281418974228658155794296285549320614397813382841834170778520390263206636289054358738659126353487751792831490403703548117843651059424807495231909143163742910468264181113732908286974308876822768937234601348879895544563756625759387044655126788356228829080638535268847659629914487710940591107874417726344683143569236432990293163317561467463426704314902543549512798206328887235430615297702225131764158611838138004406416569584821306354588414895205926048894051594551225567369656264663472786669500103042142003264198681723981733872914818155358670991463195226074512445955634211569532035752810157745115047186014146958466396557679051629027688869107653726603573541471144622220912699359365213825188743838649394866816509436276600376083683510833249989818339745390689062035040759174214797953163300430969477937945074585768181380565314230134885156117996953902653900612879908698103866034097996180970293846557256622086628458241083363974909235133291845584165038339100259346980853998557158019667078256378661072375508474279532789851646937071809878680624380292473808284904690827151049861838203021082217855566521510529382160156728342592537270874989068438764127591447214919462402525426571124199558782244365953201993357832579806253312548909977035403058229323611814751279835991219537438724037436194685356987176943224462331229441399927621343583292482992639137209324095696980061921019283028706863778309514047565226813869663417899331353154256048947669023986048470387110068469647930228019262413813098605365613696040412406896377736719267774961018333503791118657983338450109300768213001171129694905206599114436745651034136046035814291995664786231131290627956022406218068569673649474110887385827083675056297865722474619168949246622433714842551733321567696997049149779589089496065165331441302719198229343016284235694224152619420111135728030732635353487729236856589253420971349274985591815098878186980326179087116664281006685412888094934562086244388395021824085778156176818908106723608757901231007144163048144013758612646059716221001746488033861676396064375068615804723389039588665283183499907751314093052047667354381524973252759110604345146137577238099389771327254850413567695284989950766907832744731534240683252502637910753215969569175781659797294443276486751390956625318074033135314423722771620565067934016486070666210847986726251382746719369219112962636146260634749480148076500900373868731770049814969680609407777081713369322574324483490579179589936462665504217373652405629613604993159571236406605597751220972708238744620886987266509392543523742663430723806670590548051933303733606044196713831975618686341922950058614973237343915573001493313427368084305876543938044240703978009825749536329860994641026112524684967803673704433017120837149685572839213165909858757029976735379279808506656645470478937650541217789782945878859311514169505169504376197681382825826835710875289005451145845492021709508845439888983775178738030067406853786601371490572226456956803052370428766112894124947645527433677000405623963934457776069300320850969173379429618173952387011283941517339751470120055943725896555257458934354413936416772305101930496422920738762551934313230275699735788431334270479653379845039598852447467845791886210463252085434086135701228822414743372140057270632563582210189197543027861633840920201358255382092839061569334351863541543269516545816000224623103960600231936154117560033776860628256859570749815264182338552013210642155007586388021930607523938013494262527971134349851852689322889151614310241920269087439814254011192061886689127379268104646560528826178722055951246653411417136560486660717557535426165020148971263230257114244090574586212702915377112147175301686981604230113734888967033034423223077405004569769746173652261066507169104005969203909945201748952913229762592265819634854316517760002248530757262539660323541134251841190210932142922407146044346162213922104970448885197897553273796025158719445739740259963765296498272922418926109196028929548317464662887701621827768171271101109700687805961334331932132130462572873950767051590234060364448843946885963322955127329570364371397499065503685786477018390936856121251802014064963943940909130477959037114776016712343379657190340535544692733137619344493670880809806984000489473200494896657201256588902446581878322453264911146460980701080677162596331351496746695805693295868539691732461014304912249425448832690327376501000701664498333111726949996572888425177135045403792314944390356688438171128662072268985844708428328453631681707924556574830193129586842440789414133572130486787497013111377009900263573814093513660403768655843169219170401704014523542109829690552500725761395507346166427838943823418928204171930790778277241029164411370527935507509469461451360536812901082448435824421865117177524861849178318663762296420926459144787901335020038605901538863683965627722240247494790435796632749953877794541402168431364649681496516577559256387699947050551420331076488802039089996812248079897231931812498697903233223003498108811173714568185272871065554975075698902240126446949306797845216308319348037187122284480989681628147366359214882575380412432738696968230206454006069175627318803910916372262245588110288326732779856526831372438293699043695167946966546232017274950471250513737157656295592743668161979705924604178563495417484824348468430395603160627788645399722250992830216364812021897380406029807672828712082913523416464584190223283820855003567153184959214715431562341055052602023318474630818055029975005297017090295745087652781335296842299427925512000323194590028111764371152446723543778903613094723325414642589341566782366603675043978112879352531397739195280778905186879521234835870580128424769719885661165780944247404023103663898424695778040958566371687412200683050110194739230303023029317166357558135795993415834318126090782060589628662812426818616271033678226936162932458393116078865581584545687537695760355049795597065380776000859625650013417934516194794453567064282285118403401418715340992404881093315681123396492005842581164890350785875209430848350527784280277110457250312992876502496696142297002613283097878201023480413980664174921873994435708444740466027673871593120388152062019119869808250964705853831671948421342702464367157977839279663690406046081354759932484734921364720141806966861600042059515840003909261805056588834350635177889281941615254892942244228150301928921830984912866039180476153250717918935691868857320919724195094782197810721479056603374618822243253909993494235683731124329054598855254815277574858432460608800158593330457486189606745693182154215877298739884973179564225007038834609464358179366897251429310340460285992603867401639932345847723513774884805390959834329452149276917241724123430209340706022231235087558912951113236158825221436738534391682196151813455082721986536908497402369556776574750916692369565714097144352674381629699053395899321294237434092628606472191923145487617811863345899226034399394372474394083379809776964824427359199811353353453683323658218592316407950512036320956472056376496644094052510755547553955614780972880794377496590062627318774549949735331399563190750479278439156825226318570415811609606299835503934266886098357474373313963203508261058267633778981911839430289826810661912959897617611539664212844235183727675737012088599989180559632026084947786241976632573195847513782540479581774009136909596879606837124133427463944467081778123777732969733764868429343733484304946084090261702181008575155968832272089790380221706459825423970236279463532554574436810858318613968098316240117945687203674074586800419695567852171185529583191223302241592125458857702914717395021047103231567951147771180125791104708429494732935984309064533604165174224160597476111888364920308071485705091479921717025498767663820158671610897497852948100320408483512327850589316418772341339978136171803070930627759728384483212892218116272236954377884495549725492744195969405765473300866851821985805343879728796440951309466040272695898587414639207898123147943000810374371059305679323940075286503648418256906200967447836281098132745041084541711814383817370941994816670519454765045129135150687782103095247963018907303705114387425932637271476300806085317727029746111665480483572617619715832558221462476728312309298398362462129560473467911759233627846681020739644812472258769558813438715201986808445861886494765209417132577661650336297846367803621545336811363652598765970916272214666668837123970991633784925344923577905263411646369872907499500502259357009864755226950118485575955453293313839392238614613493062941809965207642367216450387668080525642785748477422830610521852238234570118905072210607051064869938642444103127759893708466810356009696700437810791801500687452307331912421611171057952977408624389058340565699575211905829073277167108687395327072249190244500388816439940730888742150223870126962989013081657496107263839289848932774718261680512774934735256630187963450399756406971615453912961965544243350401065265191943841759719353066060817728033033831004454722038631664126056822743981521496929093979788915913326628747540922371029020485250899811141757810615592490867186692201761413880009723358532519839037946621532233376746980355628323882225608793449765856628442582290299622936414879358182549613471296518826900751313370769831203894170463514901568636937054191308821068769268639383881366227395073477833815316848689549760594087865290259094746401423005154373090935847643975854793033886744436181823793730129858288465952607836870229196890519762547866264709235312625508785070136845119609880353204945701711623668641985141332863871061475849447312818777856614490115229018780922252689315900082680674702028146876994338470559937682400715017304911101471080373905609090003995730791495332567817828340981766400772933341124316225988946561776501034305900953661040028249108248997415170577476918376899736338289455461074396857512332856860007072248528006430425147068150032578292978243766760418496387924026108637614667901586984358028259519372254930178687964052244883584127471329846527769923705145051308430408115765725433284192858703846255698044000530015583691064938607322210276918221205846953926300339076423701884400762819832761099325414457447145984490849013661920167282858959206075021735790337140305555358592061861339080634372079644319336755052572068848201341093896788328854188831627559029706362340977048830576539252449714720310594651190481156575984285362384223135650920542084754201346993948077060043035472141057208199758943111541407762649217547425320280012797221699528066281516705090941670967204064252560162353219400479964378473617405038787840494428547217428144578982041805305765281245789336414387298732308163372408879747116793413739676964856288317287983630656750432589484537052309381578435606423807731084371541235065036525873994237300433963867164850470934949398349776993356928182934028206898656378134443426840530713443791382961865935665116229383390288855807788867509282058045586882107866079854000906322182077577293468854674393237298446127292568229826252433915476164956217284846043791640938559791065603871690301029877179804511155616687687101985153388591762123521183549634896199419215155686303268437032920137561032305787609704807320363281026578504198351547207925059353542074985474238991269881012404611925494915075998219829240236378166656977815509221567440821410699982021319313018363982764731772837657197152621708281677489672809649396179961440926793519464631480301872426903652731933827780933579187108781647519226103584233920531969818375407641966261731061420257798645526817589409992210770077663483695957784756304833799085481971881024810161485551344899128253728280087253130374507183389197693260129317519274771029711279279085544372558591603951732823639909962052701814736074914239631732768605921534872873469437113912251627798145627702984074295101695961657005044525138033396563483789451080862080214729233262319073185996949533748062604464120752750990717095365841940784185621159137932114686734982714908716811566988233071346581563412361432664745282852506355641243147385186290325128187879037043929374181868223016037926974847288962295924396697162157667900307049424396444814966638442110689870000616440961350645867700143733529783706360678423947087534822278702311027282808359783382928351591204842670939824142043844971077090174676368946884442758654719863566482220043779810815098838518690353932307245574648337681349630979897147715872968075992134985416609667962740988798820111198378554100323369397418218415747836524063795668918152290389160560594042375508129393166003059069738782791938290049322828471080593764826040941282979648927429842500198409183032072361814277671699959766243239161311955587371159880071336327834409030015985593915563626555798931332882189379146122449297986218666186513158549947478432503798343171591391313395422310206192834727746555104498996225128097951126982948791279006346187764646903516778988359201433503202119848357998870872453876594528511161571177597255019582756837672152449459366029921887193720081055948022073909418668505687600554037566147959657315619250845422627023482966496976652824063375418772799406188392010459100192752476955464434862235313641129177671950809211858906702179373949583673749510089944929183904680952039654221950084085598026268343117480882612158119250162287633028149894287311391185278554175447805039558472068354233746750431150304664785757175514081889152398222429312800827641819820470630774219590410364825740346987011964174227260274948923905988903287185299031927824470736396171654258825997421118781992279683969108890134767756219741547143139455370031723164073416693501053376908372470615952722874860783617615508984426432036531918352305877748585254244804018820856896133081086707352493074613808268524647332968567597269222894361660911055491779878966506878454347887535180066710422137554070436902935129325199715860505024370863798624253431723127534465172811630127495632509059576827231241291524473701070547343138987603797485038780084028238288351792787614189057664417949497163272259367057466524979057587873501245774703286532268413813562965063417811417451547803044269790001190751906751789190867276217290153074961554650420037842521337379106481227704951083457904984367525913950837953489304554515583929761787475088252711944754628805104695450160380246666725923052670499277404423908498275458674028849210022156018247573853650489334754987636512967434266607849303735166618942847400590920411256358935838379019604905308256622570751867628677590301005829122315697203787087340160357106373433085382534405830439010157003534427703323976124884544858663656431698052319553428580852160344825135485149966567804074251233745103598807442896675472158769303882381007611534106648253128620656392571775646663351998257046679701899929312586420699755415205943045275919852810109285087790990765762400931800828299527586296432962500330030705825269036688796706423235755013990969542480272828617965697541296282327363381635825142745709266690816197504470240077769025259965346156516189903359596633228666937135455207361379102819380907933874179437235575325849232518767274015672538682779460320215838480438567299858211067844921731706674179868131217999201214006424436128885109471877454562268065395815372961066020648676078826805093237372019897001046192405706623528010317977253284863072532726391110461625744422807705678161981806147211844055547105862557157021403609539008810567445034577681008464273903387891238617491816076166960942065934160492481132034056209576541026256114023587496408665605564909733241974188402335097699168812034705654916699667545425500944070414123569674702430615434806734171033276746514374415386406422653520861039605876756985632281739303271769459685949053255278610183756920983376264244719980430445348239817320283454011785654668740519311020059866144308761958465574420110065848357071456679872420670169087056628207510277612628630324219131902369723421724482942400906021079850796067301611660125564156837958348598911665012923697752442696504143842323210674106831633689150468947912101444000544710462890071727633473208058856493496595140272682379748747749871892208851220298955349669445691641211768947525858569398387373132050650645334088777255009297447850040373332915098109878281770065167161327795674755565674498183920569902318602285992729942213730312599998605714094890536669606667198839739043177204748413897971437313127574791978662304593375325707181387701298373380568931671746107526891628301296782015332224243804735811439580500859707082374828954241320079739670248332515285819058481529455958970902972132534314187015131892251848679029804861896125327393611719926642391563383528884320919390422874036991323131957076918848906307986155461931005835428734767020468932641358855216447434148734143278687902619395367372020463328630294071426039492625604746891858095403959893606348092125034131102919482914237907553629713879883243177851411266765329195039863466658151766294714644681293328676321859588321738974880899591309587637001812332007782062738824991717834848763398037305013871793460633668903893121163734191590934882701437690608625229906505418491507096968789856822581477922762025118442110028772937172386466197103846376178065292740612659783406328981112778762761209716819171129449577852404120664641635198898626322564158017632281847503189290064551521533891775699879299994028019927323368579309462647093855628160141094426571641374120895151933329045881895291525851885262541847986832281898208531301498495509260835103030439421141743978426897803851965036601699815636810108919798903153979965091936171452661920791038843838300026850834548349760274329825037935164247155917483252595377955532768882436423144397939663520014760191717941091298512537289243494011667524860291538074012095723012225625710593945305706286479760045587385244247197754905337755983130255017059617606797262778605571582154016003927180163641551524958016554801602289631404889690012373482281460887658199878244324452120123184348236141142360068798681775447505919428835979795271932234057431281820652178149222392239211658782205788009983635594501144424353317568316309067394781384645361758062055826802910250012933315253107989739253895671913230320419715871846830910787481149798402060726541849614613987239865217253542766615031701396969394395110632109436869610072877943609626672319035468437783270547067361062061273620860377034727216749028664483587728842321965355441222598048693249579794107971995476068121679809560922297552678789071620995437545624942679746568534668970746136343871636599870489368339881087880769152868010943172325322736050880177755534918491839151807350952223330268049350629421581824936723060066300053168645316828384974518826744546130637437447446595542361387032181236777331725244798619173914512035063901574689378087888560141612760837456707645635269755307653972023517069224223385859959824571503342412038272620989050610969535528779987827016564757351797412074710235276825900071284653616578364245808870261121969465598332802751171223194988759085569750409590151654217509661960769160599725362533626351871645557640248769046544428093748050343614656652189135070816697309852800406472665327754367468156157658359996140882228221837043540502118879208463343677993855563444900776175368848030892346664508929505558156889323988405635971020927634703790328568851766357002325414887785010122535861812061427595078596801394799159202399678600477881682107897859097311045575997037231420059824378765222945401609471108515614487066065691708067636119378593202933829769325322531362070826850479720438629541656366250720283153057783616712778384387334106637247785580101131275267297225766964097366697071073071062432968061206769784010056748588636564239915565130880176016676925898800957493314294067837681811156016241511114865559036059658190321003717657663730775085716606620518187616603327618295984165314710892835819195808180936991080330370688864229682798965169076019669421772114778449384261408192394480206039522824497928084622396567974878480613014354872687788914426172378739827659817156412031543721891895193607868082073984531292902437732459148353957372319543249653611179712033969028330442143091819435798236772953562831868872622188619074447533371416781717382943857613402965498374940240070660049842403095569951897099975827002050499604814830200101637616479551173900963196344138868852565589261611586924766211377480157360136339156610213745616921279762003238229534621972718438414944170342578463246735032697521273217699435903495981532340601443503932457937227933995858651577584018212419755783102994727196232210372807091213740064357032387484936823127439652044151687925329535574307610684968177446684853865513419651633155814631227175414374408464718087556625484280747221126400443704828016300725422076683097305475743754883435286855216007566597711546496364120701137915321539679628007921828576443890679414790750027189718296725092266829795978042151858233145474406014346169197011145814124248610148499758179527249952778517432218327242136704896428456758759461088415001714362233232796265948106220970515014558084689644059492871423699806682567732281266776860435118995344914246112567067304813894795258216379015217110431299473867535848820585927441257958553211233411182450880465651201326832722370986187324659679070064160831530008394705801364814750521272665654591127554474421374802216156034357609068591878483076999539876775146469443276097722190838388056046987536413136524098951729777379293537653684131426429967098340119782349963782118419510583723643037589633679290541066281398405863405311935247162271755906795852739340524032343335255894568519954256927133024324799134835887901917610489152254710299485029615760143083785634653989162283245486755605055198039705827447964782566025531254473496438837615540083862640597938109428968138197143081659548299332515390898673625842258547145219567192356481785308912228686700618196198394370681566846747418167745691641148346514484716244863128914424644206177690611721177770706007677519935423105057058645101842960957422374922844101136009339557036264112315685385654000444218642138706374098764150615693124670979780068106048694800220654713394179471599415485874827048742925088143077445549429444147571342639259870245848536416911063161789958741747659213541252038054176693173171912360512379350697653104696613973183911312064948930928394679129969598678230891215274670519012083446778405184232241611460838489221520225595628236648927307364135619050672739896126989420402200805394909525848423455162166258637066479627095516763135816888650458800769032443921454525224953614040218892281238782824190325027255409961413071260982121354616725839490976007421631276144000663897542186413885469590588963200317076948945359534708686439206846989222019157520300040513894282487151701471135976117062276052372051526329907574588306429797957899209013772948704060689590045614871421134216285167181821925194332526003848453548166935168424993681534761738479571033473228206978526775694146255852768566998604815228239410919339143792604251831751883647725747481549443088279369006274072775362305450913640345273245731752515647605613153787459772579501034630569997703726294083362847361638554934893983556595366880275202070643544483019601626989205956681722887565073302466926038624686846509226271439896245305748452045555989783232771668168898913332881822298479268160429691358391611731817039774927970776968705478264481184748505941382638394108738787863379055673415317089761207638392153913367440863053445242430949543913913612309740328268848664499962192170360714539755262693679078372360153350631720884481643061418741669298818138743953202866139352919967912039520009621335991737288158155594944023806418113652118620035490619576513899867509414012573923900983811668716042196720755070999948978144201073823360135791519070799375212610357745696306607266515369862312648827833507941906386753637854373673226890870372396557119110745508518028825453130307065551324242323558350416411982061032266328794006211717467216307071308756341513633995342150841349295522028286122954322333262251901852659855788796077390291890173474693588441413257348664047553774931749315799589062790052662617394826746198526952021559348020664654909058719413031361493367162463594330372445201645162960888028282236498375102364953001252225469081894547315960854660818350400017946868065153966625981102670422638093255668558755106370777241117793164387748529845188000771598441827466318758292811008310701979171969666158704966383179137512129440316319882755397825840036986614242919751674623669885467623043060502892776639216844655161524380451562149612118540817695293781264387718211535332474171876193272025635795741334122819863632147407689481433385130523301466541908924913548418363915302560985932432365043430499165145929926316044389497367784447215060182477259766315872572819585949494303727724212255021869400634585405726324129696007272233218923216816504242535019005051389777531340978028682444008546060621103672744806898875538986137888559454167452324776100446111715336415588991336507589805713906664493450411666452595216412190147282174740608641832028371006035503782539156761114604735153317410933198980722543056812490373508677467324082728849647247418338145434146983096068740919595268081690740447867501113721807162664290054233276913602192913290352089826651816492032110838009444249264670822767267140560933147513797639435111753942016063276897933109404220151630334077059185413159779819010731259265975006553628579135570518893200432529831103612197577147084972164336305354629054134444653793897894341926046342558401451100891816409296037856494037562291594893305083143293697892767104561048503508721474414265364892252343828005984510087180493362856623752546211256037235594218316880015322317579967212119830300716654872003249388916179468124315660678830450704397265920475672192520278142615021146933794032596168554951556746863789350878618160980935321245906400052708214329991056904959832948586284175046691631892921257871935532419091240975930539881034522399148801871041776933032062227452080635635362833806628593772447869155410370096337360913456422874551217511075369371568363264267279376970992750727038624091938853054037956902948828713344172915593064195151200126518120776182783092574324421278847594839294343965335401034028032667036822378293300659609495939189972067572615554091933872668441277209442639302935508746095482537707332054712613757892713022772859107604930706842413595355354251386729954890692958755973083322507344979714710776232079589682096752566012307021629559161140400505575836280845128558329294598284489691289715075162798233441237115693122126823273381944176704779609092907324360757592170022873190218248135077339632306999441670047109108472756239181391583653860339067916521669328044717860837092776525663760035599406097068720470895526042834292759457734716298193266112812272178754596588657923030467134956497244105905555087285053829860386585515108596508298778877191654656857063590469055752850820032199634532101524135714907541854634944058258123084190167229222515921151864217049841937132390968902072398454550750325622428598795947468168665878407878234110529882109579216356292686692842457879294147142540700784639032473107240675996468437565831684037936161445279332057410484408521399878589219693956740568868359102741423180763268113345250713398395372212212998382778650960031151485151187857074595562593360066701742368666089255489852120875415368023496512806597186453992058803658793076239079163864113716588643184344094857276506420619303676449225003720745034731310819328943302487671327028690548517728438990495022709623659296525069680084811632157199506415241208557413520027457462216577986047120385901580094673040540633654271484443084061530665550821926802899227034409192477452637668180007105934052219639773935792924444063528784019870917481297141804300878030307794670528374809770160824241574597505362635009297925743334766494750914936733897171647303793612380960076686955277345360252328527928612990448110081205108654190667833771071308303825593758891722995604827318186812426679648330489371251111502429556454332203203104137406593672439194213473894063612095656218758107063224451405038069388892973856674198481277868018630718701464979030781943889694056735973272143662452306807671371553988633253467924908739576004072106409881814154236053924018737856563903508641002677289236773317881907479328354646160774609317109822733902574356150248661821900726894881832704783658273572342465010080999279677454895372766800094277068765240210842721946263686056331802647389553028915879856922268498868634756827884040907238472339849770902788933476553744388799796348837767676468426563119440209923986050514921120442246380658181359388098409443111333612967362739060204149378501184830000017212041587788622644163775955437232206299945102552214618839815687252252376159090855290276389156909067041769195032143284057108637817916162114049304242363536283688278985968767134999889715947453847254720104309275489633965738353504970778473788622187825749089165869729563458204659415161893416180352701919684244405283660519207145185685973658516105066921717607512937027998473184381162606090737148177494059177118781919912242981829837936547426587966835538788945503770333580150953270257029869578427329299754854859734654181937107437401670076497902337084979910069184094077415748192533907497062011309830180895243727171851567726470355488963292544437494704871824052778811636655692750182501587231373092346987812944355441807225739744651653615393195846949611384720950115838016994804808847539985470103195622851614992602879927526613837712560481102526207596987110471049131442128713225179007800050580806553966709046763211244900618275568456505978616682039965690664577158207598646435239929192660585373503469811813129577659870585825008944813513598298060935688411569981522073857393641048847737465754366831218359634115848387577019482227321531817973844066243175133807689221937331082262577017990590216097698102162250786041291108304400013781659794335102623328853046150025328396620845982839606194175934272761714243482300516073691280979302716766450455651885667821337737398196346569011422284479713648024420463029499284224919696983458821217741112853245926142175806959029374322606967818281741896637793344747600379423417546943886144427446247726673906124998958846570022596326844701729333012075441478465690986071919432607855577529452639961900530395834954587313097394303856245570810377706934571775520451060878218246792752130996352407981646885056456203048461710512418904225577061179038086006177553590304740118205423011982774331301666310572973743854888979636732982374604858625560610353347055439210005745258775300596118120396561135524913333537390896151620177671575295904754501634676488412480652289895321853175130093940742760115004194334867029534323999488131656989191578056250118109911655797047013884656391362090668511935633652595599654573347521852131594568962115982421282751663274869501109670628593159539494988275540088421223016176404323516808617542027234455658008621974812975325414990680607692922495752082989253832801718345107449711694381869912840632539486799111490287234688601619583836493953885254615677462426370839526003699752155380758107018809906458523607526168588422071471157040679963613251980636635011099496554745981940945274674524577322055079931978599792236354344933764025793147659275686649682667315147261722277475526447599611132635966764868306341576690752930940387613573678889933639813108180639851933771644663793813058573980125508607890675496234035511403490095378496267378875368034989279167075394624371217561391840729631893544718265502808377488832617194750171420039638318098446732131615533094015569439367139798781611949739374443988256580516427665550360682548371934041860065705242932901721204594791305356780205357121735031540049499119536256687995892709291158064522325087445722791446879340931327469321471607577840078582319360107027433757457087543000201668717936471836859523231496970523747448365860027092450942326737314789478516547737884440867694632956319144744341614661952087587134862545698074851195927366665342144745716386837566280827884826623179368007880666010586261254509823109371567891674658103310615365952460943129396861687471307352841595450944824974054015863967438191474346239879884023564417333663035838570572537407912690823692120720739694769066419687488697902263900954066284340827384109892969799194790801379780050516369830023846541732858830458641113562355712261452280485582993019387325646951481206545227673162200159084666865028912164120578670171993307621973588474974934456265708007730055210279616770396890541968703597284681204483002815146977570961559387011730682960335047224300230740293233303921544142459464248059802885663351558855168959582208476670596829726769966091993419352528159092268992175262851697632006610072828242772442625362681269892281054782984035441105405675785044263032772150582237733407475482062135767779889526223752717951524898627390733288300767093151047386796062480973200779525748626600242941124523013755251134709787294020443919868148422796876332917131225637960018427834622741911527053741519742533531973949300852496589149393898459218748978210460012158925300624458347210927756101107794158691440576124446030544885081489771665026394191928069191825592286218354180482489837728776385044512888365653198925536931054232864380295125014751785455876152297967889296635921520660497858559891507004646111885370621510991861167841022633281789386816266896877523000048643767165420622594048008419374584681601383122566178232465958079677242969784221708650393380794003936812035607742038098410949190734429671970374051482897238066253955557062340911453450289521483403856975938758586332775884327939017908222304014069654264335947478750092697394695578250826620218560524898210767347489700662934224196985404802789069527427918646745685158966127099132994944203695735530221141742270112183376304651263444840614780905435118176408954910832782217814644544219145384887580800165792076589976242477127135013650626701535005171414994234972144711720474012289655677888895637468291991821309978925284595217761010642659768356744377717003673578372127590771964540864994745249883365022089087207647773460981124113908174199631773325343945443817334986955763339839249501025171998008054441710474386868620735917913109755661317414693983261491823462890176573139151410958298382972607386499750973478800865329474258696991621293873827687220019399193746632031015835291189993126376348284080455358698728546445653857224962516630723975464905855042197087259624298279567885545773682077180477026385421064017917788945830485989755233494625546755666583799155655712412252311105335813766741474579447528143483487792820537091988151677660788410217078285322589454877224673212812173790477913618367271434834746131623720561437759966013213291391744257556947083549311774761000925319201741019233215832623914515801493773621391539429873512886136862879943596942524257331192105175694929476929443532155188531665625565850953596918264584582671660410703565368386489705766827683294911666811348463710005936448011485697412673241042288674325617787678718980455585552949772784434338846833187239907006285308721286929901957501226703275752715854659668222279961312293247762199683550625565038323159279551627594254234063662916528449285225568410202722916210859135527710324739866357441496002844886611357275495025545905327630225582998551745156484385368234298779079721983189173154471159020976840045306013895463321218601464873213876122262094987539636786155419186695458181175338497671797949426683817309749506109563044812390501243317430134057192814059783235754780738762409034314102793034789731958607391147421467591533610029342829325765793232572647756082709230863196576498332814451339975546328180699703181901973923038532477323375186496832006108027905468263073194876487456969226494107100660178811794774319009249090624363716944031952378553574513813684906584746665995704324514514474972932949067554539774020239647344574162351050640379230175484686345691670897455170380866303162314628580177266052256828003288837063205243405393078605863192784489450346918544087495143132539354226457852125853777560663919524789586285914618567087661140764625102177842716607504913790069449111901989552238332316935738608823419024189176412715628778840928802049060849441091496139709165597240775940263260696784167002106660196568687187470553206326722997952293389652715241252476525363585615647644378194326849387329998243172086554126544775102570164187388375441877553242850732321655889464909105484429646173842079672186685155329651805780032223337290603973268169995640153350870726403435873616071860943287463503740653600031748189016223943844292863759347841691654749388911007709915904614644189044772397190509909267894679511158390649751541291665964072003063842752770692852054438435658306711188122992747397340469916222599731871454922877796594153989602830079306278984156874595975358590052906136300559920169077815932485194112642924126648857682870920025804485535605088104819942984998136215767320097861016054660030097063788512077599454289854573599895050156018628135827674950352603935888911503783341007884626196755680050256405681332770802992616112024998454589193352722589300924809537934737904330837873624126263318902154347442214601878791006606240012129066133033668941475159291814168060699000534732495828108500462263827139365532462400430205244762147938305007391663983367529507945682657804366118854065771160518635555276808045051039742760008975072364579896072540042082526401242275375550764712426258531451593692922854164819714495821564821518939355454479275008396365542688433017172762875598841983990455773746704508231925537943310817264298373620840620129515717672771123926760613884173027377101888263982536509525101011749601954759922580765730246763686662068139678570679249572821848867251448612782689475199382124104405233621835910945172530427740455451594644557051191568296976207191642686133017740730031970842034987504294005627266939632926074188550494986584352124274967002550795301348247468744690067819431089468199809949793896344510526519658865622402268981065443046182001413441926004912688645206704717435595001138227661029615627674930494466910117394520863592089372436715540814609002533687708407992969990842913468574260391733561876249528774695273893808619373477026645966653752297756224624738904345812136080998308971420137108646292154529699874295872292376397244029563116746937978010461518024097806328157701607859789484877512896673676481981530081443449029577116598251435296066443726243480193895319981286725514647610890870968618114514340044520234255315444432765221170693431635022881068024075864392237090419079811191783169731878954446419856019531299677080841314490635108489272901645747249293446645687514047460856184074058595546714287146621354742643983559941425045684682316062497941796289908639661700675255188224934995759216986123800279391912679899924337304369882880410395281283248027816434232641178536561736500118013731903010872016821226203915262015284676594098010223541965362735013491608183190528765842770367408491564357677245482850465084215446625845943060509804232823372994318205542204726926206350392732625538989042368036487681577047618008195484689901691256297160250932987696355511011263322072221549029436825986146753046508282219864781866431351580052068853168344781432074125078470646036667347187305954656370861730023687456697193876232273997149473480794745123657228393954088614185177349574753302198286511780246230501266643460098690579033151835446553529002573968292722467921622853386749067022514227432328379104815132285173022159849464324289714437501908135970367781613816680008463369866508664493604312412525892661800920340930531075748249687279163085157022725510047950428436284082586235972295824291622937810936390922848901437527839861260315714950614631219206153258586379657757339731932484310937098409828565709816880038732141227585723040624107345807080721239869787091957133362133517347109323566866203940726351938693704602468020387864064011994290070054581347760856686169133255842091924406751503676243478379746610799107364383602765135590091067903402354150151543432276744603551015327266872895845702167339149408027537299323754096602490123969958361622381141183675107543832491955210751222309007889335280674760048191024565044865058393535164164359341525910594151522385031856686995684535248226046176363927150462628875206848668699005890602676653933432735485401532661180465848454061414353136517389759138543936497765592765945910332656731845656194025551355537849894659192462902814070728899627773527829678951528374672268480758478780431986959116786764668854539997494259839127092430075466203463583526837349050837565815696716282734450584763898039251097498494145272292962574927423065560637433259187938281788056303586856618182430846023512498601105660011774222108435710228778087414365957721045437796567734082106579337749458016937486604772118954396778253283213142608374451384971567245422515706892716007627172768808436449295972708322384532302845614215781203608192118683077573383671135005946821129539529306650029595878372417596712338020514637232974201609456879795637227453174613831806852605223456514813182209206585203064149998254000305634502475467394102115444592795652295749050770752783945401528606094780292670388306778964289717651569241194312953213032609543514777063869346977696031631845082526500472583483979154346223304478459292788004726617954494198656351576726423009641342655981159399235015026754153516142680810037175938462266543724896722822966553283166511095943207818000804063139875934728036559658007026269272078881019753097067333467059771904270319160934409129075332377234520349146843378675185484104235527160741237646145006882912896856178001640581753134308724551746464254818806760436988185018011295631270595803695143993721946527831084203507319012638901169519075719586472864494213251558462861031602991034596693766869248920803597074706151411757511927579795870634876379095846529973881644154402914326027047063274440478033885971085973416725984585858513900597847008908452178571164397301883874102260618869853534507722180319752604899929716248634943096965391407632926103884243680364217604288949972298379987243868934977965766168803549637891124699085513065949023625344683307844221338936646195720659464387646945572331928402070064481757158612706063554969362873263568140766640010910610075886432966622927513140540094958830424169357475370651528616446445964196296740836553964788616788410047801464850552749642851741681549511594433606898345992796008187151994770109447210976655455163856534526633550509488223493509038461231677925621823874524929803883008441755194559629685328888591384325891163309453591035654021832089969500214179093881626188718099997210693903193036704794053100776789138181931564719638034482444328198507193860682657509107869490020642157172276097693102805591179011585814547247538527555830784570904895378628086266279876515017423239428146178880180345585903935322527144643280213581985618559227740043980723053904008543568643629378130879813295733306979040906664762381929835590671302024073237558675994707782922682416736069425429395064933971746123027916791699775137974609880353329274071708407910178954077791735203511958532532346368624141549700228634987735865434659247538534988267133559068825941280922136918248367488112375661232027496368704346745516766146842073537828279466220353885896625401963206088139901100517314175038561061578297685988506279744941493709022145138933930509838149307600264742753612689932079749720073958760003851062434918553270020806712292236686982242893207024252047975614680862626893512344667606089160326397239698072359834206812299808808737775350912787345765281169762353790923545213228355345864666322713614870233917883688782458618781873273855049511656272907263229707875396943271191200606378162528413087079772640913554194370969844299787267210873271343943089795835559212293271309295786400776471973193170888915373640194917846693045013155376596843812944818926377108019842375289265389941946492397548852194708024862456973392023926845391581761402701797802746996625909412737385917705343739133745310499966141518997486408915809120852815542783307543543182355558175937736904949178777134443255300565599219672138380816865065534014995412205478832861412754672678504446628168292494753647921589772884814745279528395464787522873663274455119891689811712502422531998736992733790388951217276784019600838267854120818547584717194148575376942288780448607132351061919813377477391125972930284748160180073537332923820962773623384927689727783337036965117788514426556010749843367805882415902938022660833276365858993360975811857622467415006425631120454567572420950777854272388296756538006090293456828665148231560411361063211521679667839419988444813721149306600466050499830521559976763842367367846719278093461064235292903434757099010181486245264066337434437244378782025416722363670496843404516783449416097023276994949543105801381260914220996002273268981199173732377251115757379333036621300304507320903907967900474035214839114922710995810155294100970198927263729950654583222404338432541230651462536761012838293060500960561775198201959080383587756843784018932555902870521470786515590127713781207281395423331365193086604392764313883514353080489239788063028917335247271416531215332852909268987935041143506752776038667718949873984338793114901998959054907592916653382512663298729789640830810162064974263414735317987117503281402420414174265913162775678199562277949195943508828320773065614626321071064661949609564570083443147528570406218438593389438405249610870768705894395950398638506632602174120160323368743879563120825738459184501292595259313166268347403825028020127190208702002439442282815333841194963561102753744074709952986907191841943551241059230446297101321702243010653410357053253871985067817747184518518011110636373384521931181441871150467370622295193284860618168486864582150710555533525891897759410842375683546835782696447174696218874745458078906553197002259285806570275048482795895903339969395187671388812184511622365606154697821877343303807855318837546237984087957538220551143438952178097172399812671389025072246578144311366167194051447840487199760789236416927590053565812947759804882856816587664869512895877991190409743522268135431211781273760092936424856294430222803034602522261921991777750764180323954383921481364002879044261352282501029034817077111571962539011606297091147555607601116497123574968777183784672801509889703901891905830298978143267025440825377623735041114193313622137691557006221824521987758404008327013810448521908183985631171118384566540207425477457044131799011384293995421301925842982349502154598303755127027906208602751405221783723343048650107631814064629790724547854323815129811868655502093391746611059582371624209072136240313357314819049036621223393393544442090517315961772800087105956249554811897287856633069799073576900477548167285808987525660704986249709872827089927112896137404065486441347342894359426026570581271029658565540517054563608802439185328778847172266861259730176779356205064975939164527682881832952530615202497376593240288048204661776386075430237928452003189234163327582040134725921375503119001759074605251799126107288523139425461942899026626599859845126128442800325909580749878661097338359924680880783284141051482498553071924625620007704265680037709513316806074360309723115544896578574382714849248802708944461601659277303694632426112350368289906234742772916423792155034008380817857369016751393475764691270987412133151087655677421391428866260442302520970743760453979857919651475113921734379898975466192271691356824947237431637679160074177263108037291871707442448772138564890805069199848738519146006690651058416686762939649147495361993725473012161412481526534510653162074496970073733921500684933019792363705387564988932927401201668067205603979747326946349718614357884860656160887444367663735611322371383171773204677897854414984761698910438716245566707812517011931074525282336867497216775453231228133727229024850155549595656801361051928159330846848574073082867832246444956559837590807276395292637798061284510201003387019055674305174871725478915304099224777806686895668372436934025069577968043468629644680957204761053253398914416282370784233493743117405836599736957450021760846070528373233086090248248150386608787141867125133456927938039027926043395946873441314077245371762040654174482637570201864656296781686760026120241876163721872872769775129719648585808933614158054139374079892114107970803965266269067999530092042968943799985036420580697594531221901089230327127836702074846742126614459114682606447034973195580148473170505050900634968313045568738130325549338830174096017623623729926471194349897063751590450029591933150190200928725213034094734121107368031313092701332931761281683760759392199520378213298868010236868627530163805637435788378672972326862619384590505144665897946986897989436629231929159116083814449574961927527114369183267469012839530333328181270441086006592704019999445789590796303321726187532238358043042273794406719128541248613903217732891147003547505326268070352890159985039978049553886268675218489175308238379915644927609943746141150311715648090740239863298122466410261766229610331649747745318878353612477424545068207805751762488776496425053942559305059268394566491641339521355035437337272746501702966430004510780159914107213675704906125890064103199404788653208961310205820573037173226041116656846623366208459012272470409240251343939958899358449910768504000491762293984881610508774890127373799291129732833284448475917858153737972883515458938675313374534262982560658416716530399751075736347852055245644789585362325381311378816134023844872708129435735047961707198314629637528906826498792507551635952473753201937461972917824311569539402437215427624011043245116041666714937181963925329691023282859151271574718916676236088769604879995442933140943184500625060265154620951390545020330343948837395075884657588772016478446747701528447425201810901858624754025031479191714506943120040946065628917425802302591723540046450101788355557932119329543560594490526193553675227760297186411002819219137050972236093281875966193022925948665584692352923007320969884029530737707159500648977838683506089116485522349978264827489549396043561033036128855829763179037344911871963211754410494286926435030950149120531702598480770578609598547506129854716411109790054189015067270903889333245645607512427655020769558889425859079780216922349312954228645333321161570801634695017445342617100906835428031294153460144352990994356778658429149346710590063755099326685732348552000463035875781070121168212834540001857938451690368719244495454562580173765088598774110536212587348840752082819521385227939426926869951964651322421462647067764259988490964705699753797332748080653576555459180220535897815978884888138221361487318100915535985688024730828112039576054145279116716074127976219201844860367651685194955122344895271858743565653640443241095838282182443158834153808575772460432251666947104490092871933172235211999645808629823289638146989179155297574096769097072893529191136102487919115712220766038134282413810898695459340496371521044294302140875313404371482827971534506507589013595750917981452264225420927386027621954385819974007124686066760008893092235328884431407889515906185845397119377180719925687281249061366832798654188454541740960211960707288454659754575528837082781834825570687389739664146600074790479138505202887914915112439316898300029687756555390452712734825309305769044471267321132673259811177962363523587778082131094361734270652417070541562957398040522859965145701686068166358845262105537695723543625636554208971667565969641361762458294950388807994107829309207565757954818887659372568173302026891208591818518992464696559659936774232008453232504660480003473341163700479252158022229559968413610383109836154660391037960563887819605752019491214738926011240584739808955456209530891008127781977019641714407272574379567566292289908213377469219158684314093544454196221092035363580369225804576843646736051301816530457750650470153037036587360998243092935217876300916859561984176021601499209055978705609904220962897859734578426056214813692446448458217214617355083516100621095947871103232154474954524653356296235162561246307271424503235288448685197946142295234303107836974156810322800546009312358460235934107728719909578209271600112973648052851361522331873439964708009546881244726162035475869928620353783517971007532093414101499658774014424103927622805168609537702273540598288594212004913699122119374163009984507673085345898909047588677411582923993533118433133800389778725979992323757385762915498498341739100464159378143402619045023684337007381747489507412342294318344199990572991723482906480917925315836752445918041206719657299338639646397997932544194372719566164046813442819002275244995296255485010556951138879038977487738883042378232737471663121965753188723058323741269827816795620792836387146397727522950405802955725423700371542586044685179798049574298546530637473869239591710206086981771742514404224923591796869553563502350018032595379234362152313657436077186492414222102841143094340454238365512219490487996899197744801613153501633755536516239978920910199167957419505608747263067889034903747740815348303757859858778299345538764413768994203839342299042357841966853703471619707188785520483095459274094377503999500293272755613689965534455049631983689967785917025240940030450103496632641235226108466232066518714263208055644575794181406730370064628680831752409651816050897115125611818841290283868155928575684205332319256148117874146302459712050867780814634358848353548293745367852790416361887460388910240909306428461562154743386924258978754932810408351287699010266360580964184548560564357787588233601481500379009876903571635707764862541392798251557322188260007205997953038056547925101429627825951558766902780436313938862907962544637977907093257749653792756630873347254564453011712552528874770631242345690602976386527764924158922475916927205220195668568432473920276531422632841665018512891265349120742986034330238090246133137893560549251161540895282722653697047738215263127724228365008703295438742293709278134463447041550171349459701696338650995807961403172085145147519846092772163454364452598827297202125987642744506244928301805802269972525954135034377480628219015829142464560617401985821785198863546371598239798068450515795984800556798736768883576339114702210675651000339751956578973859036798835276590994014590615518515242446993483250713265150768345463255439907535052016842937764729502961914978248095896501209486860145018372402627984111461251857987691049222642467969391588084111864456828544694971544993206043306699490493156676179924740348247360273104088883023197907714655175981260866390708355468662545076043603242771758813071239645518956306965427880032536689158399234435473663266971770519711739022176727442537840429248079613798289659518035343520631961627918009555985589857952649608573709284694963640152409839239016870744045251760431341653921687387099504857074328554684944557072940045163304655684507204860123077048923279951212727404631400163148084126600561576648877708690092706665928599869369823453108976189338792731264565640078413539974526315379636899950881186657260406072138676497258321791522738442782656365531307708275117135382090128380162832184242587934328882985581945425385380825929055099949023076360467955599982144322671143083842649701680118440692176058833455183864354585667432963584304980729801724425468790631898788069427265935357772703128036731462266507713432803362012917322429940743543092873420089056220713798224781576296694194325327993843580515065684748180074472617812556197213968553656856841980265342849121546655809608025638597160209744689792545015324003270821318273711176741688423312378855228754940609508462199448583346375193994186842537363598912183093465874155455660402336281784766659360476361923728359465893359671105850068677754292977961835223146820679353083159413922614378430886088085328551129587413142313235527745212947764465549799572908614584560168222675039395373940429476388177900532102931119333598569071665775525187833850869432319300689241234646375289106062953241973191221803104090166035568147690794397231053722388979057150220622098311319083023838774816613826803138237544845579816727598004423315619361217178478747102692287245132891024881472620204445765399199092783468365384006506863588687046503748469106386255094387763496774765520435068878586683065685640983393797053252117417039836660595287016803589565078686312653631539615847103126340954946897023179143471191322410427618033357398194047929590152320147618050232280988315540142502911591407188208946726950369086789027730926221539893106440824158143804618373894244022176490970887024012795045015391095990218127564311467111430289943397826658672548793825526706326445908661285309954950254688680777457699271435679859170445095172337306413267469930682523246915209176046254050709868030649023637196831629756689300791593785141870430185285638706955368796458867596405754723767067003330031409610681667612442020497046442363884993890114685203473606524171712071516395428958543077045769573116121568595463724699152047738227926174452568326105962458694525214551390090757684173305320248708990707948427487725730226344663932844891934724159510004007168076632051046918507470228970811174213127990639457981239446254097406227858496359573812768703140269067855883881147192702641708365794257011843069245180914147909778518451435290447014025898876241080372620355314358447177859454865869239959248034879947794838354186218169809311644536316602051309326478121231471082322179044710388472217510139801204655413722787536143922067681131927013544817569326405857706022645132238550880474705832797921097582296889115131364193951674071186936903857389093440349108984651866360414729944134021737850725302714668176581170467716873545398450968760802817610454837560558746741362798456330899970342861210477418858779835079518054091042170408863690785025893203884267449809725547224320285568736662772746376686106407002772233344360654232920475874921222892280183465580199304032320423757296274317820316393671877081203745196524291139144167535071008221330548822923386544181514307385120451116445587140989147573590530615349358807097200643877568354984324595665793907355411669590062085396798180073011500608090033581713606109552164515950324079424559691560610674409721599487035067325467650024977243551507165885391254859689064136928209259052005878334356980266528406776902514614245378425819492659010960405186946154737546551776887955882474110973926447326582946538259269956522669406319826129696314987456067337835412106918461497287403196099647835002701478469888168579319134592884853576125367017522505723794764612443979431076262855804072993393161330719122140497466210054008549717482366931702066806136229750958975011392307298786297126039460844130022657668798108523428756358172604617414145805341065575761303098210087174057051356486757455944887397410652132273021648631806137904341739899780076225561955185853562498373396271676970741826498070765386334656721589801993763764572974064976892868398177612070892278664994807099269233013937610309529606709412197140561836123952554481639739154980611983915204967138845687030538445887260162777749007709662874020507621871196568270846870048433445458250385190903364704159062927520290452400601563552545822848741606126817742602174403765915571554549858533259456809158624306044685048570107067530545312398882247321298885223322497859914795526964171383477400301708454870541145739539319592612637586825249522407490354984476603650679516332174211228670175405050714672139099826987254344098406103912288298248544224337243106671908303591970282148937088960648804965037287857446083535543270561710552727901613824885585234493729460843779636408294748590176194623287000456696237208484093226411761216952225865084342916205243134867882167151390312584693964513494294080618869376036070876328187672244942562527336335220416409268104157749837197911178747112129174477877893697405971136952858716007393773692964278286169147259661823030079081179901606148074835473741607058919809165710488400493989432750781986339340791884146507710789363255208732352301169647552432781952355295726688007248777564609941882657328141048126924431008790070863765572503993639598968469084139105670641369424696373029108808848331819238992036173334981681640835037632878993719473461005316843924430917496192750189646282861387721203222686875910534265037756651514881951939129027718749124714463596151747993655390492868779916176656117416015188570491113586114591544809415118642564563632207974457235117107716564803604427750279089119834074439314601440691516041961514715684404728571928499808052892369579096264025167108401033604794397709822683954978139140946988022685802174096098726321079735843807220074702115410027157729649167590421244345688804129775527384291508326388878241335477566880411206914557337672393133641319193747905643744487079982577732002181217354653407125466514894210372306375667750041079213736501353018177318811044355259188833416172499406370043840829570135013982237316860016064794033933578469327432810989622226385815775322834834661923591679933890041089916740073959627412873287404680132779337723855894377101718773693303622846466557288570319226196583021495808195008623264820749749984145454400190317579286817152170486680707198871882605894471733404543863440012062458003533020576438386242013203860441357697415198940257880635959934917867047753487602283294214828179463514800722492847961285351243112185649382851662560373676224305494677327662332767084375989644516132298552286138393284390745080117729466684790696490071519545166683573935227577754718276551418605544639014379825086889144889182491629385905193080716718260137447426770416639727089290606547332104650071979868886220540563272525173324922430324997864008999244325963985245932865683627251653369608858372613732277794077222349111652494473148570921591722388753417445910045237059924068580769283412134484032662442372121432015074283737935481778426873169458455364698843809260541507502872917995805864220536929862349482035660813066681626302285879593868272337836921862485251750445852414569547263542862478470872126603509007761012637235098599527521607433649923883433834160354814528404629278481693961186836696540170035462198115953295865389684151924534594169303979705361833151166294732309804560874239281194445339432571199505078409954653437133429202868478770048981627471169232922985941120963415071833673133579985610122753412962583203714267249331322086905633853716082691371931910676786111665563086795515245582083950396768039384910926418448882052629335388981311682075165277353609431390638879697121665865544086037482343290069595067709028475830851836330927494603653556474397598729887955435584658820855234586889180444563800351161974944189945395411957818380143811855499059734384485378296944620724454068169787682616136455282992801643217380682735764410633749851780065302723320033367420355012761865317830670873954975641447828906866974877662792768068245893377728333321368287162760229277871192692343639828125100339060700316040630866214601351042195916485980098020087722260514872963485563915734530412771078815469937140284397732534973797186910276603542721952471581733475287688039681034239329134681057962525159845579659487049399598658729396500916687538164708495743703426567527398533441847953518782507405825043319866776420721909776105341064660390888527842242936810319381463995010018338991331709141326816344270540711996786425122837930558114429513368851965921400653862206202466360288340450865591483013845037463493911298029566724494635779083220614081064667071895833434258764972772991048807506650264352491372821590741527056605846398482124039811216559342616437975522338222950472307449339026964494706875674962495604567147147141483619333391418480481124854300129057062158576715956766202492761316873609763063551632816993828561522781624823662955107064812227600544005007845782167973348737098641185709725656615568221824219950056676757008519235341551438860267429247966679704101476160209385827361537040650864229897679703717319822910684370572466149580568297827364145805229763602682788544554113613855507104735981192359744201797797814291890415234577202441817679391508879851572291094778139313825828609953366289237705634837708352189679660528550340242088301825055021744065143588130784542146407867082649099367546937408370288424439728058762683996810868790483224655004421122567276531326349044279207805537235477584519925770312555700466638538580225810631682924041020431974231003122515451309508461022316043448078707295910386136239738029378857930332247201920069521179703353506643683727209083470673580250466220996109758557075891877427609735785846678524543007331632257621497947842918425591723729997631171380872405197685987438856929228390411308293926623359901816839968091630955511616626296072924833395052643725337868080922505826916593459195001630397647413755350327050968048312032021220887886550204790695609539886758724855284531698885413785282314152883446355083954354407618919465132018575358399853858538365822682713412795763243724154997357397774059954060757601182796869451685780321621916484532022342456340308197171392129398707306960929765931600040285774592190436990048423471061422364789101215337810280544243302166859066339530854256070018503024337714230208158361809805451615058400175109521235090210252469498142172292760865520320558098001131702728020271939441420730946368268105323159165552651830731572198919603866018100153639574320413192661225271855132472043780554327113617331499683064873629292636001728051151829696872486862708218837486328552096644959505882525388497417824416695293579241439376512224770884425849279932145353051233067400242395115519778201044836692857235171404592105907512085609482144508175517743076558735884033431566706096584521544589934036105836080367419154604827897382354191600749239388618555343359677910485205964470535568381459631360891475913492949575498838506949523855800175408808078105509776848647181724579359718817684568589467288989779816508117552260436870885858010966488060882398307023811571882515874682601850366446885563873885189468159587941990423291150868689049117210610815526171124242650045619231847410099512451148209824757729150195247825898262072246962127553478968994848015396079352275732631885004552468336797547128335065643186845010177645477703643885128606893706034922809067317887141346168911807164921172325939074673746827882622757881628206197169752325998998005638967082887654936899393160175996912420581322920144152468195019193805527303056756155632156220234438690978977791820398527528113687042745757419255624815983754170895851404477266586591947516381790960159506567384226996847746322519783234599526925598227107384115649546426867461623217449287631271162288384422917248996205376710936244622885616902696146932070078742888766736770641831752592844005252466511937987287726316936595750760351595248795567591632177715802531141458770625767415514574845221799039691172128269105196283705403763163130562758736889046065037636642476131825576809160702461690872539598227743591284219114947225601466961740888925235952139048230939779778747092478970523705038305101720906899614775053095036387158344510451919862666380331121018921475938838057864402022873046909654302615875056761855616440734706460568794425894393029358838997068217440367170788790444887196568762914243147431188738030376336207954711605665873265359024806965572645471102396139779389826436929111690017718672458022978307951413383465195076450918213474969349072725338436404792358423002038544250951778596343687044799093841000690993638666617796721284637023806783195021957530192502346416288183991399765217194482556593247925988568584840682078517841170676024198114491511069159384082715055788764765633916615303682370520213887722697594443125167749064404997024495102957517265104371301522113446292320575920574924297811472121645098632727131878729742711646670195843512204344779985210703882925209108777270513531011602144256123378281411000843980719704812968600930824080506655740814584831887947389570242484166705493841632090965805432168085150401141984027298110145176118454083572911937764274453885515801732807833046100649948247849131047815768703066420133994383717348666741611061671654444062674628636835700303926574332711199879386838910272815867079717847870248376285982032847829441033006265808216964339834843846043655445687680700254213125974670671516425117171340745638538658033353738372836010363121392380454477252121040213520995610395943190144412305713197378480228833249018475098883210355362126821702476776366874489304554333218868164060827249786393019876518325683046036078126544268284335037919711035681830628360854567016588616249492735097310692941207918880864786665530543843327641402190478490100688782654525066576469611113047027619217906453410664298800421348914156389929015942330291609993910747290697511854716535554522693366125811841807688407320863795598963259239559609268354006358965887833004899554553838071906916670084048565430257959229468914951667662071635206830902799911350618176922009833090598888008617351911355398776408300914002080759699595680385302411182346145928747781463257854951010661080113688319961162896323265738591589552067957387391789615300101468067392877931704064706900078014076371984917583995837855516766768564822303381539483907355014472403864535560560691227861758368977100918012807812799869898163554267194179337744081030933026093829430746943208359251705321237303768477549979269324072745549266665313885800190427418073431574631971006854622792067122976888629403888161295802400178517528027438121526116011765137867474604183243374904714530791194284631809682983664872570898671536967156672922979626113366820407658957523211082475832145776014773924776468926518917338711156463178913850201270189518127651126428977991514964357750009316676082933738935864990518355442633757553239114044029218524601154180439253659726751117138259587114789663672570254736444507835298178700521974618434322587285990883454204625780141194254646332534183085540002127849669722274047248586111280910059121258664994748550164759721387521915972259019663088823599872715071352050189298498225572590540662077866779137433411961983149178612925068677725219744720522082002189881335018748155435542985413823258458183652427030250744848932547308513381700202234501762057089265199036680299568105543265812668901837608276076347636156051080295505202908142163890361752906870708729415984920407298317710085667196300987415189550720413147906657590061481011362850107437059047515606847252395358972028507536666703741875863658745155003399061205650969822116638491122881491738034656897155241262605377203140540418979814733301904740147110784569222009980270612830712480088041849528102574593821502033479340583781211979103461718463954805255799803908843375420646335968984088220799872651679484637360592618705930558489719018271493205367156428519146324011164291039538328118185026696399263269441321820387134387348859543997929929889847226198610794499206373792872183703452368069225638545036889572868746313094634565543058245501660369865030120283636781934802483801005991751371421540699835280190853492747262093301957488815622245164959771376827586334666656671450873512076155017218104302035190793675733038108826392144835725051115952006867900389934954822020230041116279252771724813363298997980793999637134366742805551177036796802180828751933136404370325412029051794284419629913931767771656820390980484366173271997683420530124612733063501224437106699724918426831307059056397471807613293924415979227691440049890487659989031457040783289517688443548297143782569339976662412887636896308470698879075843462920548826787255534867314968044439685834471346302606597642442576665963845987915820393350336076356607990161371711486841393554057930711771550277782733880042619087494832151587218761869470312879201572725108339231164092868146952192154428472806518565017122577770130886865649990423069325057438872487086317845748353331441201942035459767380339371847628008316315010099525981210136403727899049787398375193315005204587870206646239322347550053952044933123962028308524176994415038647398645796589495914235433046641652524655994629213542511023890990328709212602930427951308199226577642211543772558167548068293305715075047390675017512622225163502011428303080556529613459030248539982325688085473336434397243326966492815854533323861006722622267512277178767698644468249956556367442753001196929983261945576810342596174569334026513749623700694776262875415780545173970596700124769778942583234954833656582119539611102923729640290551402198971010935847076184475094560882822264937446121069392095331761870514409428151501695136012358493468069001042971449071927071866058390300742565569531457960332280036144304023557654999317495954080634489898229109534713195102659125253604836823443892454622769481216619261134687356350771915107096809140580604186617437041020809377145725017136108318833225903044811418654787179993961326697977728440233405856378120609842775609460414670809830266854453673188758971656773069107167019121062113821378144074765508423793985294567317072108664081903654449136354561653130954395619189825949943248026034370064372807077489904492813522256241804469401493697362441787411296212167940076416726728064304207187107488912324680274885897594504707996995836532605353180889138514746288595637857343496894405611184002013955426936736367691638920322311139360610701782197866688785572329162063926457305986804125511226986652593988772043409019028571557489869612780307078108547441578621650067485722624899245695173348456689735649533143874042638235176015847461899883347936948793079264849374599314722394298561933820562893239417378088068267561827176325401869416877918972229878553261650957428979009038478505031012985689638659800990483907542128132051214569864395817145061973438668605990320526762942420933404576601315982298043738205133201923999171304094606927007048864661597157196124109757876616609504212707590291755305860158695183837918174172461582594795750382751003596063102751328517665902472986480438576109756177072070559958049037230406513664224445814325924517234623541635338125475777981642010674405378885550043230728335107070466725926434508139266989020798588310019157759519028280134225009739605261775525590253055865099351226712319213574654555653828984246139654907251169094199589736663607960943956264395134863881257556492738319561612913615273410807636932379235018819149314986772858871809907270281911847756399974110450732753255915235191762496172941051204663316149741133733547278309963090282328782024115400598864036674438158796864897073098390591355743846385426987566149930274511428149661735308819189252935964692399967787679551527056598066765964558737463178189619868862066465255618336958254885246875926077678643385063658561667602632892372725273051384493459215957062620571769555845348668792701856155741553995335189919671836854981499910812395936885561373816763974029734609764476971876308891460322523246747515835558203274008443851293305393519951331827659301687262033826239996546993095640936814034205379229731323564503989212008906347614934062960688190301244257756973514629622262950952973363077277137699756174719776404557237134945948040432736771216755692065683413096245903903835522535551683208334265180464921044533221674563548441795417180490765971104519075959640050905985184265140309284346672299113541542477258503762827894087581485152516052367276207998137189694984897349153984827932038203536196406006769031782511005794728622697368915060080528156562922358475217569185385242247276815193016981179320900130293871743257060038529863658059112758589961051377837685574417458071245158969219415093890656955510354789447004383148183615301022843598678743159140476324723472278008893567562828604264240426030277803198636697477598768696016146367019449741278847554576118567707996348556320195044217159722837744429319080352607536203410989442800232769457552233500056154830019897061932296100392304747863855772399941334154027410584330701457671149938236849731338423583883242379502133460684375234821016198602675668896682433976773197162972460225481373222444627583068738683258330693513310993499785218910219450033670685681483295631124992160432665947213740388502595811913751680633562802897823943267361171593861716873421542025567054045033204331628974859881818338512365531466428761640796015366065829184239710985724682602865194675739126845497490764276021190846622584452887228315375721510965227503656016201026593929573993987249681591227013808436875536885631320942641856917402485295965591863688958884479603673616862878162925143804977309367054477423789393993720522267613760759249075112181112408700725091060725509801252767402020034586442176597823636355166671172145894593246833241545871864379450641055053533679523979235333017211050533376732772961929045900483066814984421297855431793468631014560744538261888349060773669036850341856242215882806677951274594595038161088144208468046118824989156741545027942092844096451832932327988523489520226314832199923147875255667252202100813985098716560099178834238703589090387599217471971044548679407063082601893020913724150745666495055763230655867513702130334732034974409353957245776355439056288673580353877291020447946128436275634279790110343799875258176401107642245716204532512064297502123033956132353589906559653675584261053770418929361378852755905280313566865083216740294214220645500081917053053570267575292432797243444661605148720769286081246516991544272293691587783474692961896345944166477413957113841614414078891229749944269388700616038850880376326557349332410290139399080992518973210962149068813439520235947352663246595907976640146143805104150852672484185493915902937261700941909347183968100216281118997331573965433221939568852210686046995138456341950754768465781459757250505125409912948910867401582957780228738170798708517255601789182497283759751700993633576315894621197992221175280071845808832785716622982313217996196005570579810318330072986464947064284060118934049903874513762858233580090406349514275930458999148817015335467470832117106293509164851525744539106010587954628597591794556040537014198604193181401579865209446343215510968299638861547409668858227190144306608141959415940002629690785898153241921832816358506712069649336104222428118491003489290750867120601525480299286892006519109168811729713986605264520820532055535856812486442793961784527264311142681789028339572145055213148790622646537282166294608160844660637164678369079609443048625559149619643132715226260554294352830466599501732736424376791461612601927567503907116834016013343052817870910028696635595874050109167252757826735907321924068441522946402022056576535849406525291251967258041084266322372455784330975139211657006947421652617948371053815510136823637827055369857720255744938359357456028850633933531147167996828079796206410254489054478026054670477679236790824490736381378057864086511888658586398593897981315067902137418158474569145452518027325046439298705977866506182858356099805687029689345247072052417698997457951633760346750307600903147597333589484430402824592792311598806358318608648049185249217102175851548653218762744788290498678756810597967456319198815670284779457471370755118476578404932460539663874368950740784662527655890810743705322908016438738692215706120713385007603918376469217870968180303950079650501015527723798246521176675562154460802288039785668223264578407041692407914420434107064785940351551191498700323521365335343051464421965521869130189100571404881023239525044458715536248474129892668413791785630396927283292861854843530941010882683296916304937874362522371342699720829738246625288197894794410644644209891168709226794755974436877221820907417108675874436717141749024495464182098399723580767585747569557549795120003128016500414818018754595735977916955996193396779529295275635343063405240818023120497377753457317752063485711438252752826288173961786450911076614018135607228441796375926528923757564642747762438849252143995409788770886260623142285091856721407562095413724099165370421708754353024695450653351082106096940368678206220292496365202195114221120111564562977504892303091947150509307111453014458917176886449937771481705648378702763314650252890041824889964116239283865502318327273523752215231567297471201778193829597527116588664278563522534871912738761119298437566060219127620385212492910638152945637999769450904312343887155694804142530109941317478987630110484857399007541079641550931694870766777077931628048667590946647406639897292340276128889703252471272982707467267631520522422491353524484385297825241983977042088962273095063668521439282532464528909767412884373274544306521766677653924096209127723309985009195141230803587317375442774947035244459763600874138650962762326337493745027614836081480641872028512844238485571087260065210142040193569808105151234874046566331492757642082180294029343790974344336687546139007650459590921705354407083800963075118069510076411766389467476354815557135021253173497407902561340044729610340950652336223019178676788852739408833558641161858029910863479687201131762522786874337372901169465348230046712119801468349868363365983164970917814928283761836176843868779352572865099864705424458909301962439335385185274748574348467674549979103062758958740765861490275997926648058943389222746730368083788334362230952553344726411430690100799796047094821453429402122150669957076638399186316709933497766635617227988030173008987741314819180486299514645089499508799454742991283153798397254004282505931831282336998603011633068028978973139792828457817991974979873946923161656736596225302475121264274876814192554711559757172531171119529040247741158169228593625496662241966375935188190285519384862957306620978995160906997374233134478800143635943674101051057739082293417292637588272186569507989353553162585534349483480335295577112303313866196451989600238969255069960839878786039634500174992513154956192891220125235228365453326350802286905695645002243347647930983293083355384088877177984639820195227872611922253730299257415767572078189975543534088442793543987691809920511896877067311658808536681378266031123322200110307965674606207194524751803639916480596405142521832863597629078707854487333109948657509847721647228214412641424912015498410277403999009730240246076925811722151514658192249169979833156300247975473821919781778204598154377412432684275922031970015636910213262340093245149727500915171002238132821617434504231473831809983642093662569608058316747196439492928759113813337365529763760002517891326532052801598876251561758865768090484010523168167949838829787909049793181740340516068240851963330616563855423522512666905235821460771090552411629003015389054148078846351769352042788886300525084337898489667747508675618333158732830561527469879939616037289069191305379610197587087279058431862914253725777559447895883968663479003157832412405474425268323265125028693229800235214971961214892692961351010106210091690689777908864423975382731104641139597600993244324439894262130863872214796740799472270009366569309637403458697491290233056977908821266307539344662421065731504494762608335181430648659327544385505529297857511406265793738636524712438150838201509335966485922457349597161119221019003910911690672941076846496031504208290723988752692009569218656684954548719210301196444960544922753499394666523145410561584606262987487507089936032601723440097810124538887909547020985721196098547671220648313454879963828641311425848546919765754827328435573388797648813714485381229107134443205823509019255184527146733504474788227218287432513366228746272756013134686954169895097040841561765510133493068089859120171053224118384509180712459343658051133098458878982134485542332414767496371684549060205853875387498819299977641328519699969904733321978988071691095872233243725059935526840975617498300858810745234957135989514373457419919373885468172567562656174860269164530718376590582315028233409950820556881999241641807260028909705734223442310558602624768999840139517027024180973943958624725927204894874775012706378059668709543438385405710315535303680428420109687916337988851156446022212638636351554257808709869479186065230047611941805768813468322976129353281867921745186137863155891149056566094234783471862063951896085308689670445273889320897988122268121485234202051666622376289894157582603280925507268394682616754823515148645514878913145024729896754255105771380839065466982149331748903086725214333074156584864855751247577500666840279662949910893071021798544161767928431448614597031170325752396871606911236917187150845885300712935584192856259765121545002552347731532505656676046515164373901236570379840377313577945935813976926222308769486353890142155440433742075030138943862108605866035558599014014047866771414155761803817616263682286962590508518752266652870537076289743144765534620783510155274374980610217869252285153377098858290460324900847737030301750806719800930223060282234934932178602540668764113645303754710450780060074603225482247467716974452227512758906848034459815824738188768331835139611067772426067233160428956559537949898755581120694577405003264603980263681637750025748460295426571735314689691482327107184046791205838881615561922574966530411572749202704625767297456870654192640732510600138209664774602531269726347311954521887055785301752546644315125641966625684495826629947512431417548164715111585071938684276223331919520234375854852422374542341800840316445253166965388936566819219760284171767897120259069063850880336645772545332043686748206939352738085653190020919301935269019958601589535321548908446937869215457081144614109260402418011604832255360207287206004835140641240960394927604061291763267900965833169629185720258455997950940520825106167697228702360029780043847893491871072969592728829553303084102972810009524558242080235196065074097345706242512773479376167270472481721575190326947820413930363871861205100163147815015938274099561311031935534058586272775316089242758652348979397380819108127678332855961017976325334874614751741680283059088765270142938280678119198894990219334973894296261849285458677104459772377468851132954666697693661164857209122653938012690269055550721053976770161516820623313500637057952052516410136564090197329395929046850891017077144841328043551077224021829183156991880783591788552615769669774851873472128736545585887157130300892798374501930003402774059291959706229089994943052011293646875893355289151916684274093732555476275808936501164652802653860188392702866925833490192243876677766705014428319899918633728959169141996127459554416443229557194337325353065288212671436079413536097779045026420912277408567241671642625232680413459136227277721139584016536708374738661083602433291458442864155707325694159636490027705010727195646304662685210813835691869364863170286656990258351430026304054838802183643198486109605515480005381496961942764499803822045327532084883055356718524972531205514305335691841134675667316597405256038349015627763445781286284864427413755398038129300662514816289376328182900373707699604091334225154800645136756539496271884587095699339607014271425023874671302504463973629452717405385422297742026552525153788595808991414568300655323392886773718366366540432488906703770697025269605237411879259089954256625789247688131393818944055018158938793064502333552819588801383622305306368596729248400750404921890507851062776833141824457019237229452265724502989839800890744410658277991792853067057679332860038424564152047848189308394078295140781718495273178383341279199989462584543411332005909660262437877829319344516795341220039881612361761745811930342363914715422045506422453810599400883138599396617583283927531779038903229757228240744832049005468862482602380840003876405532449473229125906706690185119620357499872255200678749690810915412788250880832622073691811608224046478943140546394248616749063921692664718003791079930065928002956338571067549159050581026762274918646853206434663165855604747661520920056135534335722822454742378080491145499370444357218691046859758477449846568369038167626651496695981098762981329154625511245395395185570754960077993964157284770216849738795903029702410416584667130963782554643233921718117564877517299860666437153402292127127675063146023579638672347070111232688691203901677713978767742671230496180804166275362916914418339375235506764442590478610024555111717608682293951511892936490010801085073657693722302262149013762863184867390337745216501636671191292333041976508442139926298254607029573787697065777513092772301898625080416429301994877567487513267184240390022315843278561411290773713587378678384514989219677632882693360744276116230439359568301305169466878756595576758245828836801802399537702213203738388836870653784709246714422358660049127939613276922705386681613680693495787074261093288298206112969168343020547426945762488326462264195012333305764214256208833581643249929914040199415631018939877003131717936936540381881781243015653273628818213369172984581712172220176616655712343736208650462858977090718485062757241614175887865933547222884858770054739764750289780363922458760175372935896161900275533481798648243778393109227165133590428760678544032047491330438453886953619964539789090364608751699143430717027611783172337890372956539232935999449409830056878014068328137512860578603347268565854771862552223927278806129569160353262297725971550647460313739956665677071122368957353534842399361774654201709626910700944832361547984675374794017235308917564367647637357001545115155685758002311677883757207533196569258962858925795708062773697244573095038416164955015212243385308095381600526200443112297403707203228992534244534407267931795045098063828269240641722012372536201270213039241883757603162416175382007490369365246696052032527022761833451981867900066489166450096218435330642766379231713989146459188720158649125248521868053934697747619107826882134147471453383651175025667283541815968722139379234044682998375920685687900891173265581329402966973253334914703502576325299840813495427571759366661802226197545537205733638671676542817467391808356880107376235862563751429311677361688835094713326659980484200135251989820498463796562549635019717155544903021325034824421522582021376146459240623650716879996167717258957468825448036062129998052290732305319222356946894844328070440982259000105407809087098472492845763492776979375336633051696781501386656368611977987566535665212339128765616681748845299401048864474667465757508361794605462084559033677912272980896031295333681094866771781869254510999787461244779313672472623229222670937028433998806849067828963091721253150674484249962397691850379782721534045326269935344283998585275486315204116064386207524339639034758817363632753059209566396893311668962193725958733999839303272759388293371047323590495023786062834057580019535026147421523813441225264913637513301080927535011598387200498937321982618120113982056780321136598608419580480489750891892723948748295028284984107480462223008399086707463721500425754672418162126018191543147004302423123098780875108006292727089451327562160774814097519416519474317983203264674409408729972431898014277531763604797379808976160227710409775161218976896701065025642743803474403401873146779018044531289157007718431690300374696557265492258418311402642867498549336402484857946427407334559133237640312994999493960021035729839554918447018377447785592459348198406558571407049983527901877711972334066068547059488993598451361309261349280118541513406515177000644016005780864235568527006607049091139031023106730381539168435473441745813387594608530261442607161239905108085790336680384925289945623259160026941011430551933932844084249128624970312976016070970285844491791414854509257661287776919798485412129344844612396978635350487551664678264550038028084416686019177574299091823979678987895208321892016741741555660226442728857777010587372867194153053020970096695178936350911698844815292404395729813728744776318220014008545643992798919348698137847899952707583282894852531775352224801897869570557658441724219126984069505335533352597565184684176072736438671070820312095164734180082460971085710647018267906361828492077337877774088952915917914712324506180215478423733950150455124550616768520701331944982728933955891535772739279466411787661444752414694387097142414958233719374406185527163424949053801059590611817453011279469022286141696171669634431407409472325226036915430466627791639233140385585114267878507976510194271388377475874954874226465889549697560094528444097310797847718216248100295532377418049939903265820915901933597604701516253937526277490058633510082244370231094284527183168145598405335334531334653499998149441734961752943552244555090280428291321669498890143278820672118853420253642022914675687690355941222389336958279226639117269134971600906763620140666516766795797357904985289374879814644015002271132968352364748172263211172096231772939577577325740698474265633905429381856035553090756965598669418904533526655333860468143037657367921963660943027879104806940902856322697798326445142816389018072489046312128781045330183767295860365664959789166349046057798993708450833321068869480770963924618120169183869417148371704767882745801539237460028868442236759890729984894700804364551968226355636259679282288488759933698734144931502630444168043130339102350323751350513595440686412551464017151406099436214424989330512109202936725519713190327879101542055067123971835532967961130722506076804893391852722103153885635482759007215970156481319948648223147189067583617406896259296763837786691500881609485336925180386564040136434794065878369110067564684981560017275041521751130131773505681447009100725435464417646140345122928139396258533422762031577966004005334488214997266689396806724074642114403786556385704127460709534423519671606079824179776063804719523761263125408043074007553313758783784990137166807953418164331184963982715070560860898206448994022314382901270811532049953190002452778029567538359858537360170773716040845863738790246350179595962204740306787296990112111747061060468760244284144945861777397693078097392577580403163110256776255334153010577869611692140792235573175008713497808937332205067792429379093133446548643834339793165708519016923462399446897287709031944910718002580977914889699377492698924323009415104751655138328390884309851855941745321013619540522322247536434484656055937802339645745647428044886598626449644499952358325869519560862511084956218693258089128362335204077467556545963853278327551803675372164614892130647613401088471408305837093849860032509575809615659348943849500712721658034174943839935864078671072697659553611402686852366534490770168017641715581430120636750792419526778894426070122953283555327150475332425006250583671319060433685425558254426790538494609141826101389557959515815712364038451980250531266049584789828040034665351406216012750638604826067990360046292198781937030052859346001359283017471258872715212051572886280012004180176574927921448679011904436874567555341328176422732118384231455658775487982483914786558771331459151522193845529968761382962861435047147748041859125012386456487881088037230477366928562657770869575642710318412964700320540052514578219808872840848829927670400251562175002638647003661258858085893010961886894833643533880893180557249284853863782003697294691032949478591871292476675191400116182925708371098384819925572796571090353244795590518822415890627530565561750473648790646500700064753109200328445317572377249782771084543680399885555770115198920071823818822117905685113492445609035224556011092717905816945162855193591450504162400109275560881180058975085273561702517730215112975103807689766987545111430446150759655329312712792417447924502572676312141336171876012769110578300727022576082407258509619409523264685641471734541585692822562875334293216604466911654445417790955123497365102553503925256795666463344661194995443824652210343073701753220282963775804942607749253655936447034337759650984142418587886664229149594152115280829430701353109617368063329517636698690611750797298617293317904419784366342492687500024713263143611451259810555466963242419711461178601403824679825775392166594622107598062253917709937484929490474835468164590469859500302819866675372429241087312600887224005602644230075784223167843229009317030647566863789715627323924282150621347570373738907193699985422458741092719019125110857061611454154719230596186960530889505907619848051386051374597621474545599433609137613279776326109995353625624153606849115518285637910500464276350710089628123327514206449336875154456868332379083846309531120251580414757026053644257426032733795635087974123905930480869609703862637066915053890680446059762506403281939179165641585843062122657535913817751762073511668168014284859417724183849267011821201365788726058077291896059415357783604275130782305688049899217012712940317109903539822272884710919493821956114621431106977320480651303996087164115068311573970790147205778755889362435386132874147852238270238744052179450312772360613608870129205003979979453453310723012008841204470919762045294440155361015595015056226597804241502949006444483445565737063959018405476304245038655692249796659280778520881470435781220636849404850419482964324809578660135635828094623922667282677060534073673445465690444356220692558633907272089868565468431465992243706419602991919480769229648659796276631578289807270988274076872569817668442796540689132953562961167671212244841318342727063482989792731851193310974476613138209742376912135593803309550737194949276152263499693856442777134308421819499446470619648312059873870805943741685748889648026386206370098482701292397408407923515802363960995159459823363858331534285852781949316565696289775650864390624956573264887308904402262278831758757661736221267943700667461964687437325702480025923142025136271429145447522892514241721519091186242854266774353881404507173144763507419168196598570989424702700542232897359037867927597352356190463193626584399541389980090878891473378800334048684735050463375156767168268656285097079886060666045831877930502976038749152658080343597371002447803170070106594341012928903878323819990528456963709027628679733854104378994636999602250982957093559351930322806579081016342231236100792631626638478892274494675543140196329231575890481917644219534823173235534900449967725275571842112631710382145794227587823718220403754548715841411108259692100141695527071106424520408109020071393861861584519046151183968385279519409602292009848305899740673413627940522660794312288726089318851796868518259301054185820021281600826845742539767441683563647777284352300438752666610048411341870235347186484917407294981756381184806966334426735782004756397340129606985312573747891797132669923474634950201550334761114266473316997044932251267157327242363068690658736596303325837634841635351398744974058493301046375501087799788980474927285330081536597000741133154282694706770917060510045340811523807803144666076544133814293375045160777563187993245178340931629158266552546989322849916936019415715760906270811093396741185426475394203649307218345224247277401606416273454397616438011161032305834741839480442553585132134187142883437610844459264066610107862289162000584704965189136900939370640475361757765347879338305536648514858744814540247631752350222205088046735608828913702203872429021660363386670202468418128440282140614659431601989075478074293040536291466925571039037940317716187855033866183077826470183549609616683232738026990991440079818583808496120123885380609427660036582024183040297376672372683673463682575283509998731562592516404350934539594807836185072758945689645695399606805920474016470004802584281396842995296473728964920883823720443182100119207298138281697963527606714437816034186968454257770323565994270019182180362352355207626751003887762756046251851599683460574126893334727139604608242429016640250812735145663370205705469409502437332881679500111175862229688125212025591600002962846884265624571495315720012124943370637938778130211641053046623053693369600696250024605304109518777833917065077789826864336324759012016476407042760925277943903196484959416653516540790520527491800339040178839006636174231239886872601819481654964882541804863785565860804434541185342084721944012714802135969186814413069549624376848841461610676460736937728015704145803113452340799117393991840174403890538190599722865521448444189024486814398463517249572092107728855567185995544410416990196817798650663600340359329565929631034586579155024600511386790313233468538097229919043137196415259656577021696534016599487617007663694072541207673462408873710534970499010554145300932526192605810225664173076249970929390433980035596165424328873350647854760330605472246194966669767904143289560142808777818694645067803378469736846217156795668860770777932894753761150338176863310834217869785396086744939019558893879092421974270551821915537307968779707215506354841156624256340552806043357515694688581309066327701342627182315905282374099603061255536112218837541521771861189593823271595848171236578515373087786395162794944097104371296157579956344490250855703930188992881853298562090902974034596028685487824453263793824653148879433638314808137998835721035967747437177294293063429933364872741019682543864138147094152521443798877139340477631913362232824620076595145015273904790394351821634355005277237150169430099671227308818283967738882697747798343944977202774229523038266573533179848522417329305535058785969953138488806526643920421994132427198259998751448125568759421891893025427245231628915197928004453418644768281827898683706624658643635914486953755717997995309518532843852507036426526019341220264625982811327302764460803646564181817850581713924625043859172815034429276849997800921126118294967492285374426079948635288721777808371041031273613997121841114573725188565913366644262616055184248182533136234016320327646027759445596833202721289255785303802674669708288904843842939681186738083230192800919640947651890437812912474408049993316242017368418733784691084374705521984366015725254784189976585243452147220890495845810992735198469119138109660366409208617111937659110622951572653011718800885511261969803211175289614874735092497781870846183556242520924363908431515241886206468729860944183117377076187147354182051276226608481182120976721074507399446640711338106126958861663252001260664416732342720650479457323270083985493431810652703249874915892169173695585417956640106339554874686710234465443873129199191099749104052108127587629699597626612810285275151749928630340130939661025670301225150145143865223196735210392890384070171237490212033590326869008944273118642914430587614900973797568708996361995143754760010128685861591014823996921818018970091543363429292508406654707217828335657863663922928514521403712509818093595966508561671876894155817585177468441429671393048221772442263858661257448148426574799992687276626485546090758417089135770975880771765914343334966547670625833436595719651349738600667799715599553870212959957863077065051340579815262113764583208101351635586809685322992746328344100401266326368961169873220940631215989189075729687061034466776208989307585940743828444467171946945480516965801173733933951586973207757917086926392033715104701338856857127908731973265820463425726542987795750824959164492414050596038767773447472051471241282191894752005654771312743726909110767448430424995307359727240996420359625096519939178392449995074183516242348735596923725131795200826753674078577522698469596518396652550389723433939806575662107152896138327135936089124992091766885387690233492640408071123994324893537067737921181104348550218727694379653751011238382705536747208434781774072033478276481262162718249344952900041478772662141736340692278055834613193071416425794649722106469734458347757775638782879259695196581458948673629173826034855235807060859609725886677844238857010316717047703393892386374713687466998562442982690833142096878020963410700859771527473952109838775668424158174079000705484939219755704231255689024237126543442947801621838710751629998798039108099256686072780236036777614524574629786948942072642347651197238947122416771314656468626504646298929722538715921865592790806256624103451174629856816237049480931871125694644856179295875544013887523613322962747621636691400483668945264144884935047029718290859978281428524131436237033458645500433476585086876925904001806140023368131910889800579404946382037967281101107835447096732221992547027787670035608666633967456259717797089375860509039189260746668093749555602893727093721536456005679996326976024758631653231943014467873045127773350937095179470310518745555956841788588282033531700177266611467228508620759064693093953313189145725685546639387450594346041605609360306338169706319390180369315464423268981189449884226823644631835217112559576176073379288514528904503882110894601644842976237099647728929487339876283209595987311802326200820681147815264653367280006074191541485798020402785102896232370252615360441238511995003159860331954457971203666305972567553393443012276713149716196642686665520761972053879579882503729935928452867649875008044150008918437755716353941256252989152090862781517855011945453773521006114452565577024875589176730562212433360291084298893108567839008576052267887039265902041372566607130112627606031969354431807065195514252055368746759678074972223554520682655689276613923962913638304656601925694883890606312736000291483733796688153053033182063347895881024723652812301375977338609198573231961574976645071245163431173971059613020381495092734791907684182589432708266508575091133807406129163783717745113481619946728632367157678178658570598576006083689351495131794593230010199524780100648687459850898659712649208257362807717991952330728125577861246171553930126659556881161964349446232870680826548659931569391016209152515956635080392092560403402254264792338767925785140027155173900872662986406735608262428005015143817200713846506089916041459003509411780912642236140429609700867333692213435072671038614055210426239493609293314321870085881355198302807931298589540156270197564997286555584593927540268383419732830030508465795934704729948888385925669943215055399053340931401525322945516902371726452123513850557739251820360143216210012205602634246423848811714422246249494534954962620128609929724928190899208064833448459447454144345194812697095633645489204026972017109241813311117986219541089930769123240899960443549313258048201764178324573099297321976647963376733234180665641297223844794200370929198279229663336754998715578276361501485937242584543102938516507739443926733612858715039781764419024560262196997536357807295210963575113599876958378115058533994035189285678535308797354842812246339052117692597652718096033317382356762718349538770452807045192426686572113919046052638497484337208014931281850936036876196169366542999342941694822506165382854117882019305770596383148866623455667319602422387834312412639306311669448506055844975763311185550558996880885312166036510712466807308950772590951966947831064418638077645740249428465838039179640392663834656200709086869303417701772654763784291406515996295161319073568824848185753760534905763518805034378680092564814219102606411084975563238051249578854646136827104351179623089088391398641031806819111983147031600392560428322907138830665229870047873810367138508307145929912804524239019273765043717485935449803025160085065764145989730969362577562438207356666758855410354525680041173214780415095132951909348055577481795247038309875100585109991515567951879610873793597554716642628826340613871277256118080972551923627988471743229089030666918444186095505111300108733163740923290942729560981679345106227185373623230606820528662010695674416331851534311938813285819425090386916665325718220380919146932098844621638534389142384412065633118676896504536707992515538992548000936431847796743833602278239696724432584761875453485140672606296868503362209316625502981415506886491667253860657707506963316808957129720371651414450268797411394610922957758411986585638757988050097340150306838784074607492731416636606380672286269180573591718937635701584483306304754248502031159299267905556990765748553357212858870267145992126278605788964432318224405490484441499167092299206316454468395655393971456401158685682915344959717164243044150380193713220816566301853351024376865121170917979272679591117756603245860315097072620262796060924165589560507121301404021690718948890624207551544342806469312404832311852701954758771952698522244335284534958788429247844343443081075800719639232628253653858113892811442249243503682642636727754261051123360483773309641934209649232190983216196955412535460019304949468531875286386466176313159491760518604893810623099795000274700181409865032910044155871236278071252124989890775283956969299476930745303666281875937050794931059659128461422524672433298487384389754562172013423394271397347858255829428745636084197820242948846435493358990951089435497181468287827066132975324984542816288506499654419587786116625619347656749161846345957905176046562558266977179639971969974589972392815169182103907015985074919257875598312815435493336359743919264842215022787668141147373425777261560815687325207559094151753299936433071061864086242994458348900054733442810506309785544502948205465354948491410126031163242996244392042565556147474476451952177786394335077003207162030304406441988414140247589035861251332189077687523862256241508667188694598480268135818382447605388708367639382945964631709075920854591066998878815084736879304893019784800103697908116481822630173987521610113749818130244790691607192738341134510424147868152498461255697903892574686355664038040763346384858017965993405992282352289761985812204024256620222551380092083443673745259362934589924644393269827499659822540350549185936130644656257208283354346223865633743511176862115765073907291271348170702877391416514579314564143009178998948272670323896098429158198461483996754204771962896426608561601304032694280396827493531815071582109191205138837563113885013693627844077335032734176329256147067130706997166001141809215428894132580991520638917648803335889448590537796641826909464205612922008400196105359760295492521437107206821114780361627874192752030196018125723782597525714623211623579615795783607954064958066777817366601393154977500459583454493776102178208020232619934232546716265809124491151152073740441153868942642265420475093492869954769537638753497189940982625470843513010264711140484293229715304879794268790089157771583795359324470525235024000440449681833297997944552858114202117890312994752611628595230663458064432744622293654025885830977299615424428012179847199672443607128109248776421087058988780531045520018531129228261205609635982183129617903773383395891347317041865813175251529257851384410315466482012418806976671744032956255456910704625275609821030875445914478327538123730025370543521098598110815720363350936159106218163754326730277215477372933032347704540508034196789173719639685535470800350368285901156855898353453064322940998885604139770544927375528761400982501348180083220583060627592959417747468072254471535970599565669942930770644838263082467240486638345663102073639822337356738089643988760746948258338693049325753065507883650912079665469289939073706539681810981093916593944523619889801701111538783097893262836516785878751608604984575847327271564127935404633262971807145943033271869775056574333044606683618016991479137648029230403331222801171333489421988628869772157295100792541613665023689170823592942615963493534304709976485876356305315723574460029012843684486761163934897702753971847440601847150428814264940951538604277641798247294194871084725438741802444886936950674007120315929387745497767099404775275924922319125917060628491453539448535284117616215846308833237449479251961350471294256637585037823940812885108446588033883284777049381174841922819392456752451029856850677947982603615292202086156338400727292622193248708288741063933663542946067259990132440882362459270977459991604934394853144094541548312854369481743815508782530854924322212236448411618558928928088874536483088511559123254142677457413472220575184496445971793104780765005417639369433779272847624380052496616428445077711459432734245315795750674750396311624734445910711916177945302454627377011054858014609090099344467690068453704175971148484724809597813361588441991964372296946280513188408910845847235696889655418195610351885843309503303883228842930889365142446472614737933772958507948657993042095511803677116815313975027395899882341737132563532659340983056327090805585631169269015834385964048542846682686280261655711306503822338400110094714047307599285503928687226194116978665689884460638982235700269128076697687369025505193954558145331924173360425525058333305564073701446716703529174692985889507069789846549674800943981378503132031152133602398013126813414189610723947255678327971510252250973944043657722587916990068051826559955332174502173938646096833180991854327836373333380167218220924196103336196185231001867300283474595792227346588563748098620205703800985629242619766774011855794484077668840224684287460036710067402454102685393706543519380681530552033813913627965960539796758657265325052795073675868617712608703897223580332105838867007214251060088650158824656519658403809880608531193839674407355399163777689857907581837969940747778205270541825426066796430961871465249708806768245333503843698140419401545038165286613231441077619768821358149633332603693573684250247011097243642850474759262225009170584741138958096067838434639452707176298360156664548262486903102239900225785224042909162002150934187928346439396405296020975915660481530761449185334925151226865514815698997640441173364665166325716582892534332552274413602686436117066595006925712940490458371443064314301727691845137748369437196916791834044143344555060716486447076101529809008498611582578110030502402807032420153776650444831918881097055725788957550645769203882392889322927105359677213534091195474590219669797306166200728996893634594691718203501399980755221528424988064999581100286132252356079065605537342546932794795134610950999490763075993430521645276290994128672460684895361186569667626236008500228473710585839410946150012319441880296911727514425760592849180225885947424292893824509014799498485399483225347138036532255523912670566306848725103520435076680428547153419198037741326274113596342254640952438460067135686991434212040219383741269560428215160318145737582362511002225531705655102334951761194330028887767079801322642634047219011492304488222251981016143056951008100011205514339254773457819609296103981493443160622961973570008584549530186665924153491589386864656439461666867219951066658656189535082074751525293196886218728067429362425905244383142734679484558359905624050647552495102184207423275760360133861978477488420347171569449666582226821990013312924752386007737707295318381010877410075569807507636190602990776364797989111824255870276239484665380847235026097458757665204080376805772785094218672825278083843649985293373318935340169252494287636934526341053051795571115636742257692453058290693661408216160041180291120122691407555919196696692133236298791010786030061656158849263204116697397972171684445305908154569295662491018620980290451435102550490777584243532925266924453868827590018825729328219762294249324727904740592388726080506146811230383758450488966547746908614449443815583171662650959271805955091193748740670958277059299345159879600220945052106507989110919946819378484343100368788873664481877889126675725274305857993549502313803453301192453741550605804942214010780223472901011945009678223715348485201056644443558846227947389246061890273075905435277373651310860081911216328273874227069016724563777699061826042068204015869395195984080513357399705667278956351212204745534427582799303614410714373442780102115020365451716324849511320344151434796064856956011160794217413905661067163747416291259631319949354144121086111394194025653111761919109358715617482326179783645512065572814075273914499597319812557052662993989571587620186643253966303443122037806829411662375507663615844459763341820022902002763750722284522385017027070614065022288964863810756417470754954947243230693035827886663688136651242125541880456924885594887668388779091815745686779423712923419723735617548486648627026561000498555070969353488923878163899600092288654081140802491444696385377281745887924469536300011494852683050370209839586020175040425236566674323454531360935230664631219074677103671559741896905027061892169736033612161330005318630579196131583752477361262794683784338323589647623348016251983508833509444607548357277022707704943451960808605259479294035971356138416399345821464928712474228589011133965670159216607783637908809122930789588668991676554253433705640209309723613177386048532942630431788871300553207444035837748045450093478495679712779218076494001655689303872582291196753465711736740312104114323299591256556491388016390175616044637161593045276680603751442113271419113658500205331875802173832220889684621555904625503729251919388148950838968896186230288246705893881841035241209142678807876977994617657313925868348800350461104907979003278017417983939634402076407873143268710720584450372217317480010660202934604339138024626806877547722252899911065167532525888432120990542765607992207785787456732258242887207284157505607125860980908991527386991571750010619464132724966295465295767325871239061310013283863988236095654088494147037778916300524323406311825213728913275968084234734526644419459563774521239503760012166930458917016972300440747882073411431628116702140143454874427004729309970984539891690839875698029398341378908623401945220288294837289982768143218478006506570568778585984878981983457803527121014480517816936507970350651413448603496676016615744850871127270331309447645988874066787897668206775665680780763633377370780635211813755170396306670132453102891566387150793733737378502676658551005228223948417675277160029607947928333425875497990121300049927457755461511345830175307406836386437579294948206402612385669088867465403822388236651506813434197889966779547122534581348715846240676877012952515381281641021893555956996044030456007826559250804425533949103634584082207963707143098207705473280710052816179924882576941011856237774325743706092470033078379273933455847715152695650258998609016219557428820665833059750580783025999084947819258156728346985724978729848292801635252002555596642406866498893274735906820155119791489996025984232673122952284101984931233265781235740170939173061371233372028910383645064501636489277586398382798151147537484707080746876683870916924966102324823260225158995730752299121454194680277049092386254682796259425290884415901546515008324119337420469505460691317030687841230400297788009732112539182221327714432243764083342702804668558891009813886514137266868954103799079279107389765038501468395913776046973209266896043207495594980201382109747889510156968553243373910352104325461504621857842182735413031973233162775639341602486176481905065269768067040734595512361156342809468131702280696829508290770126630415184430206259606447902648814388551136912091430856620812896561555963416884579397124448589873025789643509226502797020971839375307453661030988350930344741005692835809417927652645393826673182063733305639824281234831165362764234956990281361707373004567786661192791196177789671816075843083544495747858919072965295327374961277687275290408190922536348164086411381644391188719646136877284164392119753782242869566210289813260283553271184850098623922308991770651151212093748010254182422393443491742921453945111711802109573302577601253024739321532275178085038635926018120500252758809618697333058780207093134286370432531464589551333168185494699047034051567493817983770166856986005624500604784960717305623498326283726711242937405423219735687037184418278276999834512344243050614558097133173628489847968910727918134800628761727977214245541286490614096634099483023640196841252045326271857094145236744760705671077485304478122669537577145451050087139789688017135816654611912884269452799236857944077388598431204528601329140988288622195883408681782038685858451187048778699691366763155960206579915273260484888966896175694214496813881582167989996362313710942342910149133055438350940075354700260670634116216029555838067201152329430427712588639028955386924175870869675074355489943955338057753576925776845465973518321502808754326127744661313300774432272803477917870774995914331204952779905986998903128809016916294064191442757266834531581391940307188297293623681204644743046693003646324527029433629493424101459204353849702058485642937147489713050970395147740701182499856836746268699728014217523795877788575283805072621414655076532082698443539313363153238707984572850945621041284761758127849384762850448401944223475463415446899736535157810123645046551166851933575033018562806811762093485359064381476538474610672138439623666345057123973599833895874882212048557074290728878673387446507821389094177652263439964714883105944202779202671315003648721618857285797422600898996499851556472689350206044955783794197104797357070896969685309270392590445877042026093537559509709354138570792837400428467988622789806305627664743262317570123666005910183405154524952850794261108855654465649685362271582687949901730647140547608342764475629950703264635642107294223066498073814384552159683561544707369366524585920989709734022050465086703567814852392789067720305203579678438701897071411801264200652775722003478607780563590070849921925867745901376328575559764630802958558256825081930029809739363716832221896867047131964468465452488538420962812655603068770182058483393816330317615357317280450298275214953799358200074057832422741238627190849794230553198537974522779454868592558345866704625009586966381122619314989437636106585320208896723655951302763271723887362630873873993026093767126685132457802975179431011970880447247562239224391888969328437003595157233858838179763357321264249252687412147933645482016512140451538453839376471384773672620744530922763534940672269130561594184322286119510063115140994331636126013512737405731619905244730177368591004536639617767585865740039254144354728399964507242478909246414185617522017755408879068910884332553801706134003001841127438457534497926879513191674791939203505353014493960040900691253288769686958388950643308766664501092547711629399272977392253805356824344986218007078037394986730605236142810041106894831697813858546110992576342161124536235420324302096525953616628349023113923497836562047945276688220931685633656348322124652388891622922501781945034247229708777571112521472510207774913331887852806876633747633153865485141108237849667422189403424009302252791457885922571390898537671542735518758710180138839371888492437765191242345634952631169642408943138047511704519188846474062333930991001427871580470008181146211138710262733598192431040551031857444495960324919061252976102576735981688868780731966803544158682836630393692778319900577314987714103315687890850505297446981902512965448127205448462892648166755054408571773132285309994672879871155325977695376805806281514395969632621982360420624092821463071504516951172057019157777252607478421970820336692992002248431769874788171706940603075444341794379507700986815944681439394419374647087824459022327690008820924649038726337262282235799538055459331070549053280803242206425567760876322467984500230959584254472347004054927138720385723900177465524018663348191136864582783916730924674815857474603164570855249739488366981204290091671215045960094725201845198916270289260150245488650160191390230687643123264428857901623942804500081446864875674460315489392647702790163281535666344420450626353908678822506019393078084391168830510732784805329771478618104266474977465253052210159806014925396078963054146429352077444695199887601362841376540409902933623802962533234253568388234675188714303111951223619438902222558172724208089296422954590722221283902048660662537671461813962062693746997541966193788765201430661898359533692259804598059965472091221366278030732817351678232310565355252460381757466875185883421774987167141371318420967088817912763032949341973443374428628347614368557845464284780329039819535678898288984457727220452814821578794385854321869459215604844885112231412995781977863376174939869481492894282027023140480994167653856513856989179996054131824148324021756959166018747950083101394691354045787558787752706122503920987707836109303824886738740067045057330150043385697303976452338901842619952468186730978595787800313064955889692809798520321253461186022902457215953528686292110836825712762961459020537875657972788215371149060529326807190779604071649527460232355966749051069620084740942676220152433342760451739737367337796692281183390415387279723318864719680003022158301646842936534243200023060219195472589552559962198064358736509424599277050165455279055791451950369863132461088799053185984172860517338650464443035539628063311528326930102245322459298033411488110034052851991642027622048628798180305424785554789870913255602385124716668820454834485327310696592770958743956031433575201556959235919499738913173279415255405337069945117817976843305562876328920654529018141598273124626160851979063983749945874264314754272372920606460728439357743187418587985412731632314997505344601299009579290595144727327225646767259759488130969874267097552935404615103921984214196684355499541377777785905456560927574706275732634342207511124593501976376634959502246265112060247166890645345004536914494287591276897678200767607184734287536147359832041536520482267771714816082959291268439827308933881455546297353160513814903785402514165759736220112916087518697493483336897394756934408730962536132778575657893272979044009114987509814091126697159052647022138933878740023621831877651722259671638679185865644191367170551968286499440233023341948654996629603779403881934539457072652848969029713258804248742596314753955809918638634484117987478134581307946456756507837597229203327524537986222983118041246084782137695153198777603765701872912926102808892428474074140671777001415667201897311117616574038943376489187708438610768122223616414722650848491095433086132249766281355937721235477010874259300990160703059248967894302927026020931446737295908842034559860339313489566038611328606885979195692654832671694902033239268596419444795886301341185213072943331395959494989687837171008452789256596985683996590934444247965213632844959765209956382710663242981121509169573499490329581988496089232348437776939101881916222700384531023727327563856411414120549622753995621079190359067290089311301905280118481406349105068357311041266553749004719002149670874944551965941714128459287835768626310496642563975308012431571690317054266353394396866976514867727876340540973419698162033717366460499677134959499778154048694375459439611094528877342530795824079201008299230099951596867844574338929805239118627677126751341421056667903856377029453357211164799639859216043890428693838312848075747182140517276115731113383253980788245394353595866867307803148442266980929159436529160795221925644879080832178904221277935692508636112014200314369276246731199792871448156320658722518986901288782013612641702381913188059773749433173911278370737766354974623191866588610462207350678952805722609985030465801888422029049495452368250039075656106155796765538286640556514657239395450196010799711376267279237806663100610669172887328464883678658043854952849014389144991420199760455707359259727376749188999359466221800128707737821190494919076969870975452338168647912202138257209555141216335866987188755003154621449630196239388356313441293898845673568888433220110389886555101918616940976228430784564335435344139632908264033892020346525964782884523188245736289237169422026008533392349789765124284351306419118558987522196036180882005634783791226346623782404103509392686510070734076976785363977113262971728165138280125226986048212475358026386167964217189295467532775402016247088812261303285885424673548210354464053283585421826927143685746749239948301734564539708279261332577690141292599640953201831167970855126812434304340095146650612821877929784843864802431291358407672591812184761350514073490760243258514594131532562118867903157586082668186859430181190727654251079689218077554176505992382425578619889960717257655536141874388794774722609642936085271133046359317642253506891470586673204370616883558924009664045251109473651001886702047744351623714496059664148879197543324346325382091603714970238303008653778259276560075454071336362490938924570024122200918210493411437286697981438564308754166554696825719361481318162883004792332139599087311270926879409825048908683062146936429477920989277865419614521082550977185737435484400273803808170148685761052002941459322020483377582971855113030355326390594590643725241454405821663679700715502412943202556889087346495846958992851826309181371610650252800670532421280794786500555897216713739897893044630573627733594747177757940972394381241896623866228627858747363260971393038014834715373790712962490279665674068958592606637851419336835516506058709925530032801476571932038034761592554978552953783145897159912666148355085466756219217119398588682771125647486560188383032282880281845003352540950534930920799215437526065578108807684502452462772331334998232046239874155752690496655115050214426296021048525338853972053712515597116541204945768404506038347800570393377511681373547174980639575434886238163774602327074914263722749450110657654662347875227433538982287381943882805734075266494496750050645626722393647444184011081313176792720400190178465341111384582018097913662597225064032921622566065981082809625388002357102692796236589565569874530748764933362258601498942029333351332410779755469433638358955621463172828744640396159721983771257724442623568657047984664198368091312095414784477475579999619769036435410381866859425428806017121454564355788968920712433367275375870467719316963212680102758130175557170115372999296760445249113282978487402672154490583711931296469617313217522684151170820248309454104770946291399591685203337735554984754313823556184845577017734184096185574000233617344403191193512499077466125771433851442018518231483148700557932844580628033866131548759496236337544285982327441256820276755406675344929514431392180250580862142459020953621750696076007220993996394667449637170891672070169945002532513803322018469042975735665270943523284574152692854769480190909008588548559588795914980352673446237965014880994523922902569069356491339592709349177340368808196159228746931924384948154873907787227123097869723669335539892559224579516846987233178969134282553351692816403094081162555789985735928479484524308668528924365490807767053628730690016293148125132133582974738279107761716697142582168480281851857536973043111964816946977062365293711479078065788467993596699084911226678454438878760233836078150952162513503845364570842590566205067793443222712716809311941696652817987425541998461289384865169923344542405920044840967824599261862353746779831845917126189048195096439863190630262340845635628250141712645927128258511591625472219047651064454791966915927214065515003642095712434973481024558634736456675136294288015633547521788923502484136343693317954159177443561162611327817162925659224155017431344878368888362722972150010975139303341386354450774653351663361553972731456181958205789423487534644171600532088860950019247356820322751881297995883474671381303069636705917019870497626529101264883181858997803708420901757047926152603541975112762108873254274751859744999848486348439894114782119287222440440031796403408177349720320377471555245385955090157278141017758268147491241009219768355911842832420784315394657384403531208881296544743582988847375893970210178390578268284515549203189449382179631524174334004768359835336058395063404713656739378520892240308916292143778536902519406481515588063354166575269281217351030225755679318562246554617920884648324966519647752454451392510864503779415351665148540317615275873633678114075451417302037793259095422143987839652555562905349465511484300416498331109613556503352568324456329996028560587701642622464320776525914406340433852578360597198693929318452867734219213257332258474220227650779602537279124636237117944086096033205686313428456701261623014010350182200856005893862858969154980191370849895500717680283963881038141197867304654187232921914547043539744658364720879505782837704363789763218203355977984763434673761124423508846951941193033680263915388295766699306133303130603236616035152609470610249169143438334257147816249182768823010913719630515050340384028734242557930691498710992234739348480622811327726449657837226402146861018501378268778939630181919533998559809572295613963951188491123114439810035266133788282414858666789064281818498442958142271759140606927837099631100100235437314292991192781864156356348065387085010415012480200704768336106643911761768349239737670768981466673957672832421036553390138723603985530332530810708947358148414410875359258190822944361629596789203323359052629342290128178080703192864557406054081926797573104524524576095124234470416054200213655485161295497554889182256257718732404990336428292007146484352811252296450554921339122823821984579361805095686942170183008825574716275714956088505795416010736703117309997920280909957564444130849388632648776533602252824005544788531204486659283994387853299115097242416407483825900946657459877065711000406138390026856264719350737382893362274424013093243348837801189836934552929926014257346828372037942271647569359657795568114734031276685490933378640873865492835525264178623419819689548766769622957686051155688437087254112205687532817716001118317437595476724585892819515070642005037480273939211089715650840038419337181230215398582386207992463906753211174545407412574103573971294166969541869787010880852152993920587761431875899006472818625874676372896640953468868339316678035352678939104412765697369391928729481088822048793137914095827000161857472109293710140363989601066166085672688391401834981062135245152393210515608348246848452917115117337290587855730802889724013718979981675716943928921487793959603067052880923073549509722548105494262736263100555261360642280175211345065200816478625362083387474918678163068243345123654244459038576066908574890284862819694468149074851428498383323843684372067403366980752246057860658551341340440277175450301121078921180078958491074264355741506218750573026549328416897625143978384742402087696478097067212605850911714014137088608506528106990800041913942454228300755700200150707680314948993469733572071850294006743448617536597078217026339762894100343165139616649407003772828464944104064499882157181389668567737367673887028639923183995538165458644617245381257318651952744765923422143745731899137457860925309078812668045057650872504575099136674387333341626347391185754190186849727166735750214066550632228208659497596396955083410372779539165804143716989890009383720835097211115463745221583207879590319840057520689350748103832087506517367066370324575446879117737139367688113594067381598792664280888214143291027261650383133336350785298907162170312460511525216478293595790195695066970222485468745541186628950348341936712408901258165972378698579493499795558798071561061698117472226285428199402533526517572203473302551575241554881413236123549340429931745691085186419666089116143857236169318983289800163451301590519710313828432928656615563960015161455239677960922501582715654000402639563626316458770918797949418159527235088358896784420201760953358990048710394608659266820308040318436055711012142539736976175384095186077952607871874886399458596306330519383876598154828251126838817961805470268016449600345541352661580704874009436597024368648315537693305587908078375085264624128286437107634605427342313501430221982083086300839871869149824311973398261844715645005806774094639902678862614398391761427760499605512881649815175110242954534177883110724459082836330614447161156024913779133651947835422958316240995701417177408373994483534346443703605750310084065551605716080638465106613983279949981199980648798811531017955346437047000455993803520278963961555162874707663819776348907402042306219834716222667390468266671043626572566275030273840758755999917487137745354789222777856837851826467690944866210319006406504577759262037918622461165555784838705741031496121596798165918233916791656129340870570077031725422031239918418109477657784694124660179324547882514717014175253345441976623732685065910049876215573361777181526551329712316656667002808887535216993440718685526881646532987538908103886392939616423472795415610844277938485932203292574724257835043124159911623171778752661294755883745486372713513161852082940775533615848404565434209207679672226969295406252361589272748860063794192481126498183523167275403007688965669031263579718428110271405281378147593002469954845371168140285239216480485561609644408039104465373364518631011497891666815124497777350970876235949865705200371262329275047719154145302062918640394113198913207728833579743158488436479154499663458330849267532748010370857334172166285239296478228202175256095047884352468985834780348546367988016688419719280994708048672487965378498470502687226877012371420310630434080917057657530433916826042781099038210674667177236230330633682218605125332202561787058367214769270873267987973067849046476694918320250336680593640099072566352962068428138464954976568627344848957091946827625168688131416307980489707008714919995788885833155025333638512476884942284625099895112371898868391168459542623005332623472247640859836345532710699604521065494005062741196385031081538588802447745172020104850543200614810706509769985294124221894307427541435380613988481283135337929673826658858707297973894999921406034445628079062697946203864240809281884405563129353422730180413730823290285131139101656800421037318472206023353909939208630260662705657882323102221503167833560903103740707137618164234630145562966039751784990030486353076092096624028112277736912736225567588685826665384512381097102761404820675081201477727375325913335535903843996535662712531914673158200493592748072125236753357021650363259859846062969443899042676398802487615892940438011935548880090140330212350119603101353743184096424875438492338722110677056181776462686765917546773176715186781768850275633951091991647171853853993714118591466449457821404786961780932640518441812839053747150754253331528083105225531110250757935821320080870735524793090334414087581697447931388152077033556263938398763615652169720453570924101783245512371980563862438628588162474183277615735298361766312920374600328353370082450753113255399640048156302213611307447855733031754627805759504873321992605649095873675687321793483194166018617952610673668809892584327026108923824369921852283740752762312944800742761900728379875930108647281567989277743890422762124819244621050489896192437841893205920241364713101535992544645191505227031580516834405058914410130355888904262849218724864039786038808372867258685724555698962103508835396535266373697708100052468261446006454929665132715176204945211278485269546834657954168841082322561983397936998118564309492655873114419662697947236112865408124524671618645372314008894750342957353583454639894816898683105495909150812209280779049884015726884115409336153942395513354528277800787752982024738529101072608148333032836056013707100781170433683546378029670287843578136334318227552357855192034804336708254891566569076708221372301698965161929312391615194278236052859827644091877542373358507271280816215435885992158038788510564854866986498259070940979659308403960147658986187074000976762081712274808170300446651757138716566197362930080783293618099756711499986368990415817014453635889157645641139045493152928333925188976342613716316745218031325542988553476110816686586500525837763452184053195815812482857001094581181362088251091561552133797896290264044684764405123578855447535355476141498483919438337674064436852508530235739392329960658893954754881571738568601139558020548916597642157267961973496565557517280325808515708829972927685876539640134697440550020648503446375110393411086727545286358930860626505022372744384297485527619817494128059413421800178091815161237422844976327005359851246292900074257904598307065969766931098054099802869463390100587050155118230013460679796998002390771419937554882954035565205897927243995602412674671099027043427114106513836703051131430241859386016590589320938716524333707062445220060024707873087543986479595683824056948794917099096892307851257111551823401397788633427195171633198335732708051471520911615400463655574717851385401416401122600381262773904007456191890669462170998972349224055718749020847046868298320279190583250249939848681622326393126623643541578819054043923037303453804561351706211154527095468235994945681123291029565140559716129961077746490669542093894763157401273695959476111779160936441184676203133182151597900111259477475390987987549371888511234639464151284576193348695123016570223562995747835659874098565882174153577027046367577808785198673540911464108662109059215082756872638647015652096141971410793321784925968100439993821938481983967431538091618776232750700140343286418210172784174682926819803647918552957260690121144832026433096553850793348432618147579844249851920682333507308518974536020130856664493527419054920675959330066337955947130402111060919441150064677958142347487552099776659254058879745483788344551202881492357882237635185917697493642417336770671440944594198067928075817910197342991613061168329167863773050259279445521205398484287150652834787237423292729248598840001118661258659325337756347048460029942511057369812867371552913532900254780250551615627654082249188642274713477886715287967494374595781349587328765418272369111379525218657779622447270237905190525132463635182660556851932138902268909070719648715554408558551549445168261513741664468295375191540683901301660365307715528951684293231641673430992102682791986612907067353656510304359847425835164026346058858123441664798102234459739935930628399164413945203506289954696740693575755355461153720218446685886347862981320581948667033300920620129175220923564050242871180884322752354738271109031079221478570747584219037731289588841425174640873774453739621376855140833371833762007653081088027498906681800344417757461092432881348682808362302189494072945507276841094050114076769490945066244272680083439723160176987817401904854987021445560395820990571780815802461168184914227851952488209655135460243393179160011506496340694790780490214505526891363148423167870936117201186656736969177897791901529817270266790577205949143922626340030154825813059018484880490224751329236030513618123629565554325578366571100879282484736968872291167527619383802367446320173284497318177128601211047427883788373142290011513981639359218859330122157657172659944900356491508843524458009031769629670703287171626464725131990216396893710664831120517602658474877366959083591723720206330913450942314165138182687974972863648864685251365931661248847649509759980995785795896389348703832077099833540811238422006939166891694432515125802948678321992140253965158803330354690745046265450506794771837960750457215622668805158304862253076791046508706420883666607855366350937638554754622029476300067826912965753705104890993064454534636248629305174041497530691517721317839823499731937132014465642299181120570211127103325980565411314302567737481375710311488392598160810740967505176418673691314821914575238754869455539398365326396314245731568089194925697026545173889170265116722889043855816787540800425586722143225665834525768522405458897723924544617725177349613288947523240985944515459667113891867345733176498799712872291847656905985424258328338531281992095325948273729621675887095960989240627440180875049862500290648524447349781038709654619101880073536884784315232616640301420676432383208702325944871584579021931234674260311673240002414830339115408045047334964808112717636692977333539735880591244719909426197385275519593090511277387852479731664415261812683036175206496797818161466943048126589535597874233666309344395486470384718210872062291534101907413540216099168181415861163259552858363384889613946176211889092562736792446781742380822884096765955708622079080484282992895835817297774992967602652577753981007995497939193220361780538736192723570769100555440045033748889494280018916091110837307875315776442911874906888228847528873393106414300079062733886701874771744807218713490099394538979677060347955210749726587964348011504783604342902139998607409984866237962288235476639657635333571529458163597023953615844814567991614590496952574391182666321455389320044073989157308954623633627317378024287229702896785865922739395037400248798366793954619270209892078103691943911815696980978111106231504779170588567840193932316713270479353199463194714578479164418516906080342979683809112272073428028858175080344054796605247591751057338563334270201283826892000473674329994912695636714685930757185899629766435102632739636055771204910900298933458132686496350202755640747412286101240282924801012403548750032496339679762103229282591174860690516072571484169988811786766028484315345915113709547746284560330091969942611810133873264407772607309528483642500838070347294206764359755841132690111039626439178303915788349989178059252631719954874231597061516234310143595045158678449460378878020939405507073443927155954454798037989854489939655877357471838684996524775194393852327517786301433296483698165114589345022190057834831323285267288964537457161018278162835408496253110520074784425470682518558941071555131967439438000333812549650067251543617813441426534610857640430192128139978509223007285472725159054602589331615372275604999081009710429745082647294046914453386987343493855008143826877797624620999828762444698718060844930523378707940759612097550959448081734448336915857134758950467421712642269628229763317088928149173126239064783063095630115345390615666634913360298392050611604209569540534065609925847207558927219275332748674055245882729001697700999955282656526489859451041128270324530472838338287310557615306674858105117209710828416616837848038126387374739104117953864750442783762832353871432253827778598978092524242636182560745219357732628544076146276928640953604000474963257404822268060365701003650846048907993275562650825185200742965326013079289308202904063704997472650440011117316228561206864809232254096367123863883887569768819115723842767455554513092462980810652591377743812258476805445356984290822248491496042882310544371788097188811333379051881988721195826275811635605887721492637908256780968697775363313957108329925196602120117528361283249709058528936417127023451502062663442270322088331115855363527381970212158654924722744639472188070460990448132083175129681383344755975708883034447330807956373473887374866995228620154488523060678332791894290450016213313372820184078370115522538703733918158172429360560969579916377301738938355497883155378383807222226093815800709076221809717414076094846088971866201371356135877682308870310138678493711975871788384698332595225331683606213151428663834914589505586875054253930508159821737390118573514443331574056870515607002070154433366703580577420838547312455515199037711454864992790385401747730638799716813344077768104592667693935376839250847955762180646109057212261243336738949082079830915475620199473177855362531635115703226928215154423849147796712980362211776359126444814374529314743611613587456920413867993589633101692440002716530932722127859747080396127699651487442163223546233353704220515699674739434972601256578074425802819122952723875172900676643059673183588280658070841391709482184350050213142883197594227280042114076032307502980128915879592699687376039508695379840802276524919927126765076024888373810881564750150929036982363674247034500529843336875675142098906797679867507128511078889315532916596880825926562999505025285651503947545008702629747389546642980408134277830006558522899348558690073297645861476213329535498809407699608544934999228336746717291883088247767794315832412727987761944411105727413623852581807879038993676564271375401009113632506485431692687634760831238659187831467745930245971703099531869791543034795360715000223986152705546944950281473518758542994428576085784887420377191026527922841044898372428436357707268087296486876218417068072631705226321470247353346456522282330889713126567113668401758162268672584675735885160265597565672423381091696670236862543578660727202998455566420974420839484527338899681164167983566592807321217739770817727430341697260536060449453437561783863525616467399416075132626042683720001007365565066537012884160547516299641466005642392801098067655562951896949106636974369930559848889995133727148148473683955846186675493161276621318076703476533542158588955718717556476267636426705226421371428860423697540006190211432065732809143259563126808773592187436584386654808956251072365713774410315534155701840253736509059190971548030022613031085490196439770658173451186826815687898627191328732963451108634889109219262103351505721017113791768012209089692346101782122771349793472064614536077437662956931079419168608998374752266075824363808081264422319923271290138658846215409699612628950174048673397819262890309527178656368834265630472066336436692950865511123661850033157703151277007868167306324422244978778196709434653653590816551171695628929960877594393055000693564562929986899017750838838680854994378662653702439211906898938893665751034182846418347911786135976889323661412227212956696762621955178326265225700566466824456102412862694172684406982136030608445801285228123130821851114533685161168576089166530708978536092821898465459697245093376865628134748110190671568240832780432563307571709416891711618749395741022098408491835831134684688274834307792296103990108696191547083420782500342535761159663132247906978399885820703457956629911620174666815804522258176771228294705837166726043390419918544015925585025129156706198599467080802895724295061059737116536121145807360752810098284498524885843632019510546591004096029900928367286493578191205516246324469312546507659468501055100557768041353940851627151308824094268272739052099520224613452072630977745454597935030310813976269078853173328928445829999729582047003820195013716233212562978740730607727388544225685060640399699558274261095410328979648546148352014231800371763772329431028892932053340630807609702849781783717034880119993880995110474778507078426024054625994137435087852417499361128782137931233417826396342354964392474888728579534694948582155094274518711296481774095761343773776747140728590848323834140226284139240158214678484690332879751652598870573230479477798511228871831872553756845550212565138155647741084146175304882626084792781128980280164901269318942085693425311800192953455056751634651235123177780121209050821283902373380242675481461990608462787785648517774253185451797415806180322462395208411213009739124030828406724152767786400760571717856069809090859742864673463157884155215301617834066286640750871784484308682322887725544596862859908334877234124097036383989110217331507162583349836582040354302874106480827891393442531458766066445211877722035212537271221744106013715985864960644121192288374975276454428154097322195095266585426675389997505536457654713713965501106307999847871476297015143109118014325029580009907917098844157263150199955815504825135960878912683488154804126035271845839111011550596555280957748379256854169973717266006786908809477002323134898935067216921681249486745044131425217999008461611202748407552085989865503581142579720722290531698973388110411536952538468863842579782962038074345459799262543995257512490288083371274939999192711915485058878667166197871285650952433541490179931315916239162194486264080519604748374154709957499082467655574232776969346985117947067859356995305927188543396670743883679209035413821792632942243585129842440941470411431559248903616487255480046178262537976721153501831873040277439042810162489215238490885724186354689880204985325988984692300246830806084861005388939601430064963325661507729045754476149338337663798053916623553108339687094748923567218326060700806928042629470121632971847523708203456649220175036756958880670038511609736238371570606225483380040788262503043793587144579502751981903189726172883712802080375547037148167798796251071794974604520662770583944898253259061177632970921626195863567263523134679924520247406635071550249212528315888550176571398200341477871876321845567865817814370311704629197395808241127149261961063065694972449973521274271322779101534526460997650392515157720647108691159852164283490294495368691120254133944316513799602542094100340360998069754331627895879812371954543808673412813148528075010508133594997584144297269654271141043678102509828326494189204148099834761182060242612424447843795622244234808531025650087618445886577730295137991837683773173450340766005342947541524945480095620629867930648798146133871104585814479449169378881057077688914618034434002884375291830166253587569603041178746321586920490552471757451711056782697092493783903003025213458049307492308909715849082530739159543304047593613519101952880288257793188591205989366336943695902490291130702648379308906254938796189470952802887463342405092354784162881127723492775090337722464701349215197804584776714269188246555396828152274026451586534669577125343284451967811110093058484640089617084649885573952263402843874340629190173925456276137402628231265188999172549277687768162678417526782795180434184520178552868551992883737508777280039565847144305815260574061331840631777887529752268019023694162477084471488759397540434123356853122304808661024247795760729534674080751169968622128246634983372321533076519117921131810673572214023390394874299042439576796065477834599932528132195569411342129220597365819108430086061642001507015993557516042034964183377808767324067693146261781143060289566485787271762077000198743769343594403758538288815487245522090749092065380202802878807921942022434625992440728610833938901286289418864406987745760784001635783992973336688500874439364115048675034321703710818310538561680444555756985488085186634532444039422964252523045659470944359060750360594947384148721471320589720130014841629645268597828703191227017631733020326791197820230180724492626348081362244895839640435431978458775940184007934502209923835446965134548651400057488504519249344102872247247551478348437277326154245318237669936899415417437682241843643414886952721647881275214962422267208756103336412548742725363113558275555870969564189542342767358712154425954247288294975965830609979884651288943918329398255777422223409096137083765371227248081534089752410265120500228819771575082368244707630842748767264270125038284237576502235134071606519238451373454865446749639219893093787588399165636538741084221660860877525244741755927325893203876263215645301674334449939708775712940863760315346185271434348293327239085326296549080564039899433955803980313693775954489791322014370913259588745632658532521828835008390683142953410168974158251452736299929265467661055059581115868792114604809868116631346762672397020790616440092832580640382826038171468170029733530656923229631898969514652104982441000026692422027318674786783955030182391583110683210405910161211575844614584733657233621863361107313640333830775015408425559687686760933280612288813781425857623980144889893633932416774914238048019559840677336287043109082402449103178694540671130309833636517822329247119553098931671531733450958933539522829886905805368253802347917839451579133232921723514039588098270840987113653886425689654657626800219909372180932649756626502039031749841433906938545735712487937555008169699425078781109148775457597933577187780060692767187507519440988385660646594257998366621120865697092365984461304401237166970017957866600461214932604456045714000027030564333750226762766688063743907365002316582574671558223809315541383531937524267026684119352075709572656111404804508541301098304536325688848892081810287538094565720607232352874762173940636393141317130712294132883678887066037263256072667154634765841755796320014591826189496995188605661797172998421109138573623134269382102057907090820563620779208502320301098678911521090894002670502931427682130608425498629887397787549189990618704461840867599536243314725017244003658389993574204334528341909356948326101227228364432594111350859729230595706320889420610385037919723723756635194413062629801010282883176701056283750918666351479528586751867441319183939744585457193829729099870809859363439260643773355016260686198788946485215102123067046608637252758828815064780976839217672285103980946804631087640500410906770175207650148938920520722857594891201972101957068893555830629599500239566645211230355371848544525382992394610837764597140638866007306132165540021670833193392193577085113626960029144319313315881533437459286208839070659707429577180488829059068119448159715871521639549087219210692598216072437719043063506051229146666589125184820692900521137175977513932462971572946598559465154792437002279573043022136261796744426122626429744131092906100692689420829306948726246331504481490877369972400875467823752335225465112062779706830807442254028941363324171978403654912974046309615527710912814874882087078367088938399123540751943261374073927794115895900456977346082995838931748882884089185453541542410291229616710126160814252309219306523582307897121378670783328507820427632366048240534186914315993992324399372817263369739828989490744973389371657998045450764351256715681817091955364839001697025067986831990569691644183147891656739036605257154293589210449695752890670356743007288878240846851745721079018951630258378398426043430983525240035929804958614592148067097800592939730566620029806404103138135343401616940658986701970986884570449237146258840841394042241410801889471027939821007934005044450845493705159465417452237358787090276965858556588919361971794757945724393115282452738664306350402393888120812865707298612397831913171241564710679611832114629604065772834771782343893974621133740880488946912194670714161422643203467482065799676992093418369069781770804158619558054478819259041032105315660566032230870665828694972995880491838580965701193411986973052965096640202699085178321474142388918017792486844252074745626057754649393467324738584451706615973845255577423736710137246807646130333317215422888869451532829320860445391679449723084555760481873386202541105407309768666177983889502434855042072469555081127347040779782425914858938931099819119902247621626312393513765541108225220322122902730249229705496843810573293715036815617476921625276921815483982632048025721991041257327544743231294828254507476560726600056839928517591432136914534060583149188424574915461370742712768876064093936613387447340268549764229248842930264458656835684622198119002773637891583817124335630266329206834503273494537839883054712905085682944101914638688409415593651141637610069698977092484012977466275163048977344921538922525222409408377213783064696317424086520243463325613080963632317042515758828122110189605757686401722548078288407693747013190786588365262560337411719540778245084876334204832137404953743369533718103555866186595810606045174091171433239744209350820712208579556977428148439208500782778531877594626522462043906612183083766876461358058269861953410874558517308179655075094916797066993458527953379722527047487252648252250644368577673925306615054714004205334578371731832263153832151667508518903704098352343340737278833796784509009380245712345124350290215811735412218870035472777073321639197790865162989363547600888820071936328814973421907441663316967233841301973929826408390167271465153618374216907049436018933122939877640787557721486349744014932559960807446298468769016476412431544103703013186181868647655100239867967783406553135416387512883561489765344627536491374240730623076381981562125855498726841037648096386113346525034807456835646219307215874756263026623484686765543303660494071895445846859917252370304759965183632097901992914069250260054321074781799190124218753850029389768000510212783781049487548368982329122099440648986932265565602813995109589393383367200247818184654387605271939105093880579662963235271264499675120445928049052708513341246077243428551357902735582234104208546120439777473244784578899791534581183824049008932395892810939935038133435067508164776003425259304191831754775619374317533214435623088432303811846747489223713631122460412592832337239449420616210086786610796918465144712707860609999980826010776625367735406858683178287598562116567454067747841611146698273776196460468902423864867541376280931651290980755644290769530892127182295740335666516897668175515655505663629331920493426131453209003829441574695975271391524368598870055668671527661557683521484581446347818908493105726978763552105280120213583680687695916995748282365489916582615673573292343444805277094252605139510536319905868246268100081588739696302409932349271514283084562135049625643008853687137586054725254787329091900543568651360053506378944630694656350253850558967331734069544800289817720208813403877531610557552958684786217296298678914517271033835419988815489410429242043936186354804008404620513281576781335553525789468182887881958851782268410680531474290225683360123649704449461314826195095571673556654181635384145923661096745445848424950143127313960504565289363196997293739088272728685975493584962904432156481667634776588498349590254255500836530913468434605529986385825974964160960083144610700447722459098408226764145648560896102539439023362454613017409909459734055870855493402460594307152593760937542210574437223742289276749578624371432814217541931837274843162175135351026341583961979133093272907463580354559394139834837125461645774248085722514159089190375461066625032043546032723287582952248298629226873457716053474344193203862482503683972779668905477111470771347115831255264186063979472128193531819950690130616643280599081312879018888468716064433877661474736547274071766474847536810197407214345339116088671130687143950096292845293412184342749882488747747253058994149262242326893541224170826994599649304144705072397953121836028797059588892535814920935154537282378633013505490603277112533089486924146677711211982319483506897975841968626256779156477721253758813002383026770654549971959568995143311857627825710161591703536177436138688782404311488660626811095694668129335620859292101916200540217700287272399004193622425754637879984373719045087575468268071914665162226505306730916943957416221089012098050735801892857268370736410917559425203872247870883970459984765355784292950787642632822095045883487575672762170310578620294128946279309944072503255513584704461876513613276076172350507098385670727190592424537084147184674103943440142511049451906340131302425323983606600682318238787114294544401118950444134279854138177459273802900597856572273985447262500712321047859523353678133086233440035662171719345617819998831120477783282339011355619221349261844264619452584942499688229155042978917609891249798809797271456632132789710633918517345237973991354121373244843986875296513058909959182793562112191748532089031536823509694956752972229036876930196309343408703326971343157624997082999212796519883935353636692860378883450061398153303484988138577265306455263440541986673261945599805226016022929444826422673201441701161890822164024304979690135635319237359330760284606027184384274127404640382886752042531510575447555177359224131909500930051467589582377414278874316085697237983819376256819430331229096046126059947341421746638528173239200049446692995062550698151804442698643604657204523555460491509604418034230691477970830391893623716601776350900624030724768360776315337158980708750519349719522119699335525373024002313242803997378372727934053931450401241706440539311289075871830252714969104706146607559294306239253401985236548294511049758919838673003802909957563290677518698426677434191614233473244857526122832129716327064367723261476038662962104099864464547160549293715701362999192375556161112612106068634908680682280462521242718205110858652886845959424571274368267836533241377933243167591156883413264674885611881826509136889416564255035561365850996557866710781792095337160465856583553144588793999195123758156671739991081627326648992452749365367368170750708648235713655821649425853166428968511717279778521207220470208516053295699516992242193941151323774019033997766421385872634332262121745801320475076885598483242521369407286825080403152288170634090513398308892977733574351404265611821704870985775440611099591489949932967225989331941046158828416461554973592172449734897190867190527934292917732913453895990886468689564040932265504122689102182324623719329938352438053084001320725369729982439310318067704022158643237240013165083404085163769145897588157483491212592467038263882249830406190722778574552185859083245808160748111831674025327108107770514112303143428562611932504168670603599587803111785660454341127321006153669234252150539578170124589646080896391280870171179877809680461710809347003638414730747828056160670007282529617980715503394876192687061897714747469984817343515438737052396334488751461414857595355967018679170602293061305372455654412732961381548028375342293604993471476709846724786350043660934788646021395912827486241438311141354865606497511734908975487851438107836404106724663050033607104509728156278335054263835808081953169883204475243254396143259915749824194030551130563087868078089283809645091745044417269105693573263582778455334063326549484626341237826789235618017358665591901393618838973370279885770381207897971705500221017542862629806468954209584130247585506950752842703638844660511232874591867039201836033941603399937726138960047653027882071940913466564397149138952639948575629498429016786302677429407628256068401715491886215907045347659465322967537741211002645900271369347620343175313565396030820752180471367338625431249860292978693142632693271429300684113787792725190324233102041196544281814434864586053395113913777889376584002261711687152009842500589564966405244920828793218199140338748986361884650652754021217702549645073857375998589227876818408289011403369901642302267088398179847046903149991891869332222695302899277676864156234247484105764016018140941958824705494766599089776566614115428783634052467930656019049644914970517068293218252632949870331557944987095041043906142484466028494119616448883892161335199217502514157535188160643473599044110303054800572352416046956140089536620693475500940194167344262607405157728814689519112946633631281048210301366573254544364123217892682410476944638019993247269558863707148283075841704797871455000767265965464844404782877797567604106652100979710401052793131431580695577419365590424503523664934852343306672652685125324369181214943092541768095360854201046808296545944048844025208309464439920243338678672252236930886443648838075088071125558236325082035995385987637129364655914529432644208395875091210516275228542798962460282359203926953743045673721253005428070953192598177289457469620254256733321462879593148152179184455142865618304971106501917264185407866598759767882084882490705038296076009033852069718872005819760153230602723595716811866092862242764835337344758942133729886715828114649390998868227409058491950287970103643282642736904549283538205110876072485591384593647216107021266308727108321216655651347229308875860216322377860979515639457342308298472771273326940987140128053206918731767958739529530942345142026865462385708584676826563159983516877721983051720881488024717066896976679653545494568033729646766977847977922434575809115708663092878299110532072728300980395877574778409486378084627185920273420650770376509349169195914477477683052645688902499732898562588436732780241044592248000756103003843182269027170242716231188295387260381560067057893450459607950719956012308608781081388104071482124877064276557372201888737435131111617115323103336464470904204659840535042327957330800757436406160338880435947763301006299688378732094136647086658039157369429655819017721377700390042105478269538497394958216516359898908368890916607661755010764841682872614776401829522941657485584282391980992129052286875812841219648688859680739535590606549337443347356094488278914129803459592887391882480780676893451996992586172719253601184638752752871680654469641051652557132076554469896553376838563068796448065209623905413013238719374822078873890803294598165927653996564502311540393718886235888132300275299466001935866445826122928222915369968064751841145727577030773306835413809964582459992190847360559925278616069479217191286683203811193555703092529721891642820079032108814958677297578898448641210602093170311997496019035537071919928867219736615820897150871601940730749522444918075387164217230247931707325306999802293340511413375132444501244248245497010779398197139610078795733286416041854947846872734249479963892579874164698565430175535254422825340999398990645959388990907905586583302886384573263713892529776700746578554380735027577704497704489190558025680479915908859264845375443548972622925733644224765926777119486093488232283281470870853244876277226846001682835488096743852283823806371132564510427294190208903716548305700567605011744861579113688407795099521220483700793234950644093331545343033709367841707070968628831393978879007544032128740318882214712238694108862961262253989031810949183014937249986641162717948840399667801795099742406782279174756436605593086272232248722948319193381240933136790613349493911428493686670688008793130880865177232245719868380353203730240644804821027945974554100464772515898243590590025822751403512462770625945553084980005368576136774149246152587846167327735364113804146345278698143876701805031680788197055416066104784938282671291411711937079861017192716422157866186739239996710524026603752731563406296233164035402910780052396672346220536349027275974449236849261821197132128220589066393345614417207514316157971958940154489564693163266698134196022146034971067957102486587566805134356177082254718990525397457920853798211045790051789429990400881906509803692254828034211695246703569666398982292123737668541882016661463060867794864643508049754819386786764875829076982987741317006415493248925357473947726771441042225607190640428788448508932612043725866589693554766644001913293314044045867934386994083884704957432997740810414469838196892632789462606264823386512143885153196411443402556111774377076321854094938110251740927634544805508461683198115730923277617542699207186870479317540294903435597153904453042292945518800010660617356791900147361649819585867831181917054624254235266732315456923401698546825605432263827913709707231092014171741276910278067493052892167208505186380700908805988839514195550005580333451238650055838625557978777215652331924857186686078759740878395368489930298001640027304535054388215577662677045635086357498395452183670953055382776758785932310334986890503090379038540651739129940632439184805873599152699701547077979013672336430106278850545000283010429085699948580384646462255000234574102330166117323956494080438765864760981317629819534174690527551220364398823833375007230861821197048700282157463307712756121676836992736259074934268748624667381596972049751165681675515059538274164443524636116293633817455770535477709750237477668694231796357292927681444975193637111605012112796084544732067893477849697349875312255336813020818128146315317635279998453298602320769920499307240011534044925528805561005833491568460903114544635112632439956813199374384377678159107272609620197058214076426181458959832479682902054884792102754123353616475636332197118509648398482476646169758577989258616572294392065164887535842657520470889251026742324204569804542391940019898336291510892721634482924737246305470983206241553750583490219966735061397527772853368855385258830814443382652225564424483948600598899480059221822718819591081272217535137240895093210290760406445600384034982237329905504936176884581327881564568579534869132257113620034694498295263512067735919180553853001676767857402227226420198817912132495776651375798708770837721801163180606121224398152696863412391026777079131583092260797298936313835174746558594055247683290205596313290988291696787483218040998480713719492607048960178062680068348738478002575483434347989804160270240712237250529930604772594702860255167042715041315668175229330439075360972055676466995781667540909370663987502730698384556318544649080453481622196110863054922877455404373925284161109376906856704689888210793835520814310880537973173839150840251757676941968724105626465836205832383465382460560843962993769875645054395836435034077915617564929019463498604535733390965463082042390394247816547881637090662361199490564292047116230769103695508943390079505205361968600087648832193503329508653740954194269586926636262133500890863361446463930485510123566314550939185547643701547605500147746363591433140667073072177310294197546787806358569445738820258969727210320437855102727681081397124920970639196786866543797462301999663038577902858823817894198039490079031718822419393842726132491531562147805549369751585620082971424239574072522611926420770048656899677511633939623659375743454306244101909256603933050721191584622428539661022878764765390126205038582763929689110507928436384896841215881383924699739077779894471302516436569823717299275365358681056255234880929408564005773430811750894541384219615773933678812777158964610505914186596210413041587762395034983440186428643977799855407762079188669599824852800896542114414719477986393412986387952335390388209571969379313270762897124430765810514394849216625287886609473011584170868793778498845588096405307701040933853177237307629830502315488093155671466271854713015032866475122309194799186793417177757928002602457620419462713152778357005229920054282333353901279619276914368821724365981292952104038140551129249111828894244662882854914016116109129208709456392436302503917114600270706241859109931622075152056169496364880058903633800144662217497768611887668172174186157795478405022301503909053137708324148645213799196813446639001240372247656424428684274781420121414743879023254082480348198937340254605404477260226933650853874794160557234822947574867506783302718360006576634139347045657589554803395639358680285010843719950856191735156124890852667463395283648541566719788224205665779990180635554755654788952967378318697606871835351944779735329599855002851362972362004548215354297244355424214094318131938795558033188759020730961728403101796462402507483642667256700573681175004087080739278955256476732901386480256947253109583229363246474206489024333190237911012607735048028253198893557388047007240750710746730857699938551272816518901487292462514538825606095122167839347736539678148355788112558065695396184912819244443043459222821585623635979723517087541402624639594475818475918839968494476146208149403535836555226088685191063227504729137241190517636503257242831126644648394230750787826667694974655428073010378579475283279185080306739641844021801722299241208588156753987212471554699745963097740690192371734997973852059992511976306085304917019559582479694416481676816646691172420927734034408240037540048280260437247372548416346545205434652160014027982539871956499766170093608983520862447611870090002258795583670748492792041324208045573032429883265640134547977607026590722932694767206457494793485235853172695687749239884398287124535036158027935046291436091361515668924730770377269433043743806698776672619083226585557858029637975985815915384806478856458437072919341276368246288829080152019585108306548919499863999594104663243528372650452413123289839462219834759046135964425110963923751792262397477737371186565883646922480370385747501875085185566128916383914907959862322850138363424675719958696836317799845458454519849765490417559918212335968425170125640695304596231177676782219677094712005570647779081125854947988871845845441414114145277884614790917092513820830024330997261866965701991419799333355142119685319337840475537059682047810018505252467117214676061789886499855848409176412800973810315375497321880578663854252734374934884815943122996280281138127629776574749120022890499991762857991017648390412538713027777491592423269761157648072367584294771276346379913518832053069191039569869844172822554357233194793118878013153465808154340035236140145213565780863559971762787195193107458734478178292279591877731351988156199104086705551228740131208707719426443123122865115045587644370621830042395884035662049719732102916643465484966746523042916645148417345054091411355899005320981397240510924668945632751581656536330026539425560884675291535021710420914144299975519275488281415926825359905241353951809801272645986072509564643115578747261665842579899161065477614695571683799944774637195435892179321064353140023460067768654845019407645237383704836134806847087119371182978073478479826185314435723056247477005169455943712485591983971408738042183686230158153008502133791349982036732229064691088629834334611995779787840518904452244001460004387554872120209337502889410201748558098269807012027054938893711891119205629444853222454906948147670714398455492066952281301243201213047475848424039419663529402271193210449188295227006852068237004173581680165576994332304435038254270870334217487447009020489947382271538846199245668816564814200251358799842063105605238353744914981592072917511851827349435094663313954855937506758215917535057644349376398320202895818412849424830894882081543134534911983985859030126907823400148738693389631642594421924970336404561653161018864150279873603164250707323182002728467725674962223056359327689837169605225139239897526854301058124507325294343244362290307232654289936425895817873974477891884971184665450524675498641552446095578314372583126210106165600772663245434181692585755992702138228626939556349032580248568857886491278995365607967463345520603729829813048528069705052168743362967721217253243913894604262091484280639524754904180814885089373417126897509928737740908815812712818319100470613185742190871061327315852639211565054215233817491845508080065536052760155285778396877345999182739556596875423391919547348342565404871068267924453647827869466765959849709534111356621216993836461374729277911442337177734957352814394243064896966671895513157294566079969459450573341615052057355613009874413573501890822470001766043400994722892077664931573313155556485973563665461188777455275409546682785906552695212495924408044858975031039683259920278668340884071353133397453199437625578102290927593385957805188129159412177581783631856823500908746032509981484335685471527435641173156755480081401379072267203684804915651683105787571060229301450474894237757205349936253684119127976037713827418466930714385197980961574003835617514375985548114353084898940923650933525051741715210852138065680976504688779421665325316985265139300770483288835828360834723299200734324971157999479818639725464803463251121883360242513949807590883250733963305378450300790500314658693477303055636517793788662465521180479790165447708815340021277713555467138839451921344333774849038458623829338265885971918976774622331350225193631731827761671101693804970819427099277396901786653619121539253074927479160532395577620218633192319695652878850100484543565189839141929523031785908970731912881527109050236696082327763593735681314540835020471321371516556415936135758855177177745812902719895120450487898869485398001708555928313899999837571138291412385912113785656550598212086705807125391274342086016287357165762110664952959789816980291882256559600579790079729604440498831607070028288229641977137630958149963400693006566023782958393125369331547560749543103513970368741385793612965978523348302868950364721912715917749049676296513029934119731486524201619060885874949793813983066724637529580165676515231490258856599832280263346510645697058031458098410437304402717510585142772836158193800483128408524526541482136012417473768699329149548542544658002573018593582449726113909172171267220110975919869461163886653730123584553987050202513978724188621315097960092654266554353895156477877571315512839398223405732322483714253880076004176178706859907265541015215267268075768031083350658818291945051200202038582381760209172754369134754193952150734990643625113893558699700817562363744046633835555434322131889585281580516304939395102812933719255527767348311783538022559824336904940231287960631344474339224811246256188213194231319759727822769630979560110390724913753971294729724011075495163436116781445473043529869542947744910609290171954787924621280176502536963247571436814511422217500794663374075930941238545722798560854597874440109434888833232888578815286385711636909664678751718764261305236906057135693497900588533372569897944569784402941440791504497429387407581517641295974100295383914173409996248513952127938800928119972550387791998531696868295937773706965117715535846058281471071176241383945108182018641383283996352416408009676599265763405704693741453348564373575563993801353188599732827545049597382087629396890547435461957691043334853253915926301372354082548335920917373855260376667695442792979268802934930151468044599339509434744231944529449367141014988955784658248767821262193773266025803896928742035945310565862614686421923075055134622982621979375943745217035860776643273292176828580511761641033376595856376410326877793761449031667577117373185531803826046564351052545708148521747008376562874616530629530234770838146746542889064855052521370229797533046906892958057090426028520599130319049208091819895106877859209464901117575254159209890064471067355495260016537151961346491598819282357978089836105565687657205051298294226408497598564269465672728634573910736146141645250418562009412142093751223163609001426938382310240872638836939026624964903193319316623504691591180844510201370367535908570252103714065533256253477712460710807646783425985956818243216959328997776807109467123146136933739182713479403172471696443838906096552621310299672876735088156595003028732328995793793565749687549390636300831485512341370100466672374311599477572940457290730507981097504008412099429872687456992963384665203790511005532991809111189989362974425039340738943738651205674514708537247281626806232742618948358674014179916880145186734848029952512246541067177611552515265459175189797915041311229758602650770644290253365581061139878455266364937107807918672751423006025809958433472531013207613043445535530819330443568566833076415801501741983530575162758651696166800498441721552539004161897499902255011813005624729089996577358671099289043245928169675933217558254221006829455789915360438315121387837478685074678233128010431113648884221073149556858919570524051212525750128006828688446454731282236439043619658490783557266304957507736748469174250321927086062352583976686644843997843086036276708367331094765686246158095628066534695078094442325970724044624024037589496828610669995315257713009394154017974245421138717695636270642055944964274202560686476097013525471399199657730187303611626894972206822073377758380526238915837594229777531144763009971693404752388990477201269692734275041709763505381463961805899090412878171800911381496331890737514478938036135176359444707733722742785529850421547952770454240492041187767545478012782535325164676169022262022367988747636777228265472301416457172452743699743733507245752614137532100376554870573231035698105981503807927672301228461404597032522794477598313341848646252929428220848738024362404091115498221378908918619749602144528004517704909144544809877373454172577988959610139179978758051772855615531158208837068989463346933328985353965223328143344657499255529412117270401425980866083916615559538439939804321601984078274651109091513927891581371338396359404409884367658741724733831028005405643401313508915836005767599716781578791370502690122480742810225482317192046291004711927062231563769336359891059284046199914622355836046829211528303201429295047244613884219559884815519050670026796876212726682422782811087921258749713323028083567674631831574162592748812278282209297724675351909371527654273289615358114672269499387510161223598210714594835161186871381256165430694735468042910468962742575380121707273884115864210334100575812036469238424696467840605955618149193299730799689789178577280150950082199040818727159044055800165142715850169090571970866930124900026087891104035671256830088528723294586690437265360070916584813628560680900371444723812248800148028005136764560351204307915390658883189598254853960153312620873433123397307337978416171145536728194537635356378675364515513184607031007438334139798573671791321901852141349062282746362610786878300203338227877327145400794728564861464614957163529538078401435573080084220498707492855141401110136917543457451097243245997947072052288563334666420540769591317496171057198850618570719889237824648168977283070936509519505432332209472786613463887776769231668373338843016605642422575946224326129806640182829844897714459774212999606819807590916349703724292013831263297478376932327761080419033060167017614839488042636063395916163118198848854383411700934965308256836011501332512757929891231722263428895050417136535135035067922678343992153882935890452087523471689154194170183658301877613393591782411204357211463541928633723621985772639516832464082373173814069915023074979568311534522427218855790658690593229299935392558333181653764521949704803938590479953549047499536860891698496485001028700025341905619730997943129046994259566133568170484056658237360251876239867551045776275706159732922753161670912529608611957686654758074575863407759704437121749553317970552142906912737316410096994964766374418650522412465693313014285498889336896333956206851582887485212916000414839282418373249971537891307815547185980376899626950254786978303698202945216849907613089143928890753399282379936067815759181272459427758000869745864959041273548531162270681567577239916531752747841656658642618702405460146524487681693395894280510767177141726539168899490713371526001520838055681101992795652471593170681631285848453506772923262202080709972672794239093866321715119163602287121383628954769113781288560447454529837523427209992444733758787875198762007872662388848348549970670012395454662204890163329323953148607384963055448450618386267534067475350523098295610867217856613819166530191503672873393616461781203177902813253584813699243784671704637737801115813787760211619746729961997903337096023396362663866012276112143496034404599768642343664025789990533097973368724253871173887358982787574961061626970842466468148184585056191930768350116684766374431178007464759954110704852102168524172425485814428734253853957425989896474632374805414522138380994386931199939297900365438756073147368959339677695129872231977619480574608024007558701415760427100918863608348105275199003787653563213348239210933634894262479659126734184957983974836995792749693738620665841108520154719774201947785546718607452541366007035639816690190299974640550867808235364009883615705377021852097026026554392038238186980345555017541234172489424020057617137453959691114234447880886943294122762295584654697242443213921969395300009032984187431871298892720664332677535886212034363751400033099218471696042416867294030875488677993515278257301539838154641972625362036422856667592221295791220756466685753195525626447547469178063893975575815550970837725023834858107027096571429742566476258610040375906779015098078035472888099981412111289683262323776966488589189245959558692822129048781882465242680818324851008245391956996141308475941697755629405609352107685589278756024114159074297171379928378894485394953934831426040302626507296956223412148550481353803062008511852246357184054320474793630147409276687495838055492076371834301780897644945360987060346567385562734797100121942488056099742452831560776440714580918996041669234422967982043094668621587958168584580010132047555393401893735153514712810687098687874997656392394807602432812077207924997677704398389278841862778730119968695830408287434541114370967001374757089226780308851668493111438522853307149016634684488272493795308142665015920391107032665324557965066528829182552596393904647815667258403697503159082975965352448803537941362487322356719144420161703036586538113786948065095519530304596579201654493909360641798656639900742982114019122404922895279795169115506456899958430692884185726252890376406614766621134946304852567742183655124915603930069184620737217172024698166327208317571067130884697446004180609432425111920349548644932773051118750141938319128866792950019720857606240049978716606344566426357702568277622027942480843255915657980125422479348397513898811201659822055098508184054036120795281028625709107463007999467953093987102047562479422746953902138441431373485439654285681011893422609489048286007163388106487200943240950553425338440387695147110031110943994372345298307108746917326222873036359641590384972151567849425528002279810224999969798371705652289437909468781021527601883604501780700323066107229718991051557444517687588010296931887360062914776424587485014895591560928478647606434149089366715564690783247002908534832007211140942222771973495979011290194440210135272319614830695289059495245039995515018563199215241573701061041756474970887799520461785418271220103829588843615924467376912336736312040660401699399826216567431890259420175017560525779419519439080518158835281716476563276207127660436446989885962641269372010599157368047257910461706719469446866214371272054481692377638743860291185445775003801864018592286971056604393645204907417126533635520320296129239705595965092377366643017822462131872817423763368050043822574238851933823831819859015951962694793688561238751411346753957026521828676534981020749134689439114051748327612715363847485922284722210332220274157504046607529728784931914654127499510335237937446701149137748042535455573400016337738413527333551139748552386618761707767486295092950296208529988410332548046168722703062917017536179984233253499063766329744242146505871840967312415758669626067624121907848496044645424767385592686932863830364481967689771530989670107537921483546159196991767333857975207457143478295183840818564523395218477011801772013034728625745620092022035530957302675547901990042693073778536788960083725823499819158657084994816293801864439547228270008034505063992837562418840208175345427966040315662344908306909441114588393127137045547527758213464119574114579979516383206285365780137925749875002091887388087807004718924393709701180063735169808901203819207582680610031943227334821149826962949904794936880124313164383860303476701095423854671533166875010379336238647510616630808974408354633023571514720420449820363446579638600857166890106060460333661779510539529878824741056764792181091843071611039181157641826033130508018194298119117752881993669561476939492677074229833542521208232584931846217794245644551508532922763503752682370978386982484019432547597831110573192769074324445488309189574036809152665530163757885483692624903464581779685073092204629671844643320957642188257730545752663163391789868279836494092002350854275054728695927046838086705104382620147915022088509874672000215368600404153098995345757334846235966358550043823604075067885128959564871561451694971093551074693245935783214318007874075435513023725449468812704971142513013948615215214613088395808177573494521397195173386811986767699835296305984551391992086337897035259933763275840805648839313701880868424124081920473397930326174220636072045746662418046079087299197125995259835093649609746903021332539677661128749435565298193935835103125254734393877497560584525394251489702866242666600505303914383211624196812326720907107209691292732276091440231700115712956257481886250285162316639877552398500175793322171343744303355011611562394237904085783398186348211789344185301704097350613683461307066477495009253808097846476210400680624734632505107538734616226401305706053737540315416058596307768414600245117723062556255686613645628492343021500418632300453893843939990412687456690510905110143103118525990407092447589568080666771525137783199540007006702989176988961075379057661661728539929050296587801807192647914216064169742299916499841794089637345135546800490821361702661884331393333792819476703368610889372177224992594523551573851486094512723855508531872948480052191533291706878143713181665096616873708849641198727427746098125438491726676911568596290032191607172496000794227625544771267971994482114302009353360204513844471737956833821360544052536122253631671738155209988788532871693631046926812234972958138699834199146481382306854196877481568711992384707184739792272457042093737344508602779379449714126471700364227263022476288027668355296262698450573867083361481872210058622951684588396449298784285868543482995116329284997931564722779529964341703288090807129605474536705635426755155140019801118276325031844710786980061574596745522515815744009499560838803851638982953465097014051407312051374557709206631385715484799941445369795452791964107477905424584951452816582530848759952202114043263871547361503824285462197497260091733986752132290744903759692558490333710697385692675027262249562130260246125961343979508834866646926344304189037927982774220539623392724247121377229930450761859948445475884619895603671885884959774274481090099256712283535829953244647181601878744987411914011212907870170473343203464998025513187923011942423996289669959416895824421935661163812298418827225049069658945743248730865261405986034132910282304827598045700516407189543955726982235248428482281152739760581488606843139123676445400796360914423357623030904099623208881930461393544105435559771115170502996204992839032859538944195710289067108492970107841379967339982755086120780344046211918577735950556167863081669832230986908779999344449802025856039961894553164017119598420668259149468840984362295903027442156285412245481321447128941952793400273147741875926656191830633102875225814094118863949130593350877334795785677828999790405525055768386558416563759221005153087840574209833797056149936211095496954350024699363131229153904226754669725072519959087769195311024189479117785572725465640913472145309418758243796349857827553424931691062740618916395506613729945494860162078873696283310816544293899871479890854594085094096563997565498904843681498296904820186099894201405004264395139421212252884622710143907133411501196590108987724512159015065434306090154253803111914657265284348709081761954523053016798596300285413931003397490638223603501095545029316229480968958915356046810410750248803412250687119289038860334533222129940097991787842103202605514804641608052547031791327571795467019323377005442894098177862567938466976607505359412068933436598646916356083064481889425656633183613298332281362125131332347437489137982788847051067110486452880678377804685035396936109662277509209542370849881890188318326253840800828522728987160997014363675693295496643132650933452050517081493245454605215416181551304235737727349920153243046672656428301845566709937146151859682685477587838072862034063013433066727238030779953807262158154506598359931135914530251460657339140309248700318463737767874113828564614015092788440424109408417797581940681098187402481703304526105915909494060135675888495483645629336273490912122642569407427683311166662746921903119691093815057678669690248250543127483389142831307672075045459154408965526695384649418254387486562065037950442897404893550463178470403655773432438879524668983537169551799571863549033227747404744684708201523618570180330556017059698185585349472135041021263404663304586235460780014586888679553678960343858895052269087767598112592418200944762519205767477745135133232760396249328151663650460652876019531420595918516269594195137359863148251365478773207908117855963639906240472601035515273060509417110331303791008318468056610661667825371807211282981998934379966110031493758781429803689604503879598950107379810746619501210665336907590732346789933934507460434050637185326309821279432749200463390867030533242838680903428167588312404243306304894810595349474599161834859440190937636233228421129479469433191394056073121089544142813948640421712004538191014743612945651181434541475189628501975746870600977428642840980830008153825910313259266267331666614400244530430820092804282002128981891331107775612638558795742622168223564216765516776327099331515738653260562506821705068442706788215700392325568136542647156285547725789665355683008066846457427136169417466323592552241239676682294792202105024294008341142620285620434188117621597916135541990614733167402955319745816788147090629802433677029354975904639264185037555860139163614358486371271738795371303716691506577184712501051435587868699171020965109945012667841478150136632764821556867053689734904193005085462561452670603272752737790543495849629751447589711128644494707171443957660803369057722355752997400445218764866902248434772145927473416173355222780997050888739130843451897191169925817963959062305771608204718908759601588270963104245041293514150216406194652562690627915171705624298412809738912057542899135579815040568047145073027985768970203559925221342045656394627497604701244350029817408053179750396798350804458145148890297761132507773377432637071023903382100867552449482010292558041520572031424862350309581635682082901838012798681050481928567923834944803198004036645546102378543047247474594367441336736914018416395234265254141981652384808558469037741526043275154200737363467335587427335767577331402288780186303100988608016847752508897472601761486268630246603874359700483891780881388394093536416957608647865827147733403775751880907110250641375783257702572410401652201538272533888500369746435720437112153396150839917558768365818915394161782851609818157762120474627278981397082875482632068636709015862211505262438380803767052313526683053542171101743796787191550851049382764831179747594493381488590507797935185452032699728619966517499223293161921941745453889632618477462398190106983456827796382011195809070796344840986201205484146616337833410128114747428999695386027304453097311705491815597570803160691872201891520701814412032175405686159605486276180251795551939323420867453113811818688526934846880458410631884502403415830462564763502514780318269352188468603061122346226187922253608714111556347856508310723134058800225447430986735441247125054542628324494088336794353386534870653076729012141362535921395959670286029961816322101400804807939919008453417983184630592630092334522884059015481511993802261355276014464637514338206472557883973640474577426699628335302600456512570036127890777135732878680044832217067058903810124644674239028744372706650713584226655337327298125474854079046597642506707371606396815774574677481758532496779670347911222870080784706436728584512772454744771999863221285742971173055242694807008201072048825286164972889298855053620151175885350798101275147109662831737981874391932808290540479739721290881709349394172156913760583579949362347843595346176629536744008187609530153353613453806126204074446088967709134339336287821113044701837989866759647830712724607667018241249339045210924521878738030337712876955573583240051237443579274562289856398358687578380836986497724529865490311975776714584431177940477162837548271886654988328210713230392948826191664060938703177149486857267830564549097009672320547978545362408477127581905609073095502798728897068395395663388299726784398166880815222213949974861745812882958016210659180753084457997879255282598232069122609426807822482139127221372207403270777890122931960926572934048788143654098723583862857805418629617570750211204080141696157699272448911607834163730545939708968508729009096583888209718919564629022591043605810911654231322375976344346289989943323606746343089937493517518004203609102445804486764285977008125820583898361274991768686110960678980829260196988431022690080141492082555450229925608648937369763466666230971021806985288802751098869138831245848394126211141208828578509924230646513246608001184222481302250419833048074224125281230004859225742307122412485657108952216316226550790161860191772016856077642052467816661818904214046920316573224188310480011159135866417874829384187090764346941572653929525616766184566311808364620153944956984076100161265519365924060790510642056198207316065113949529789097540506527936773295414783178836661985867679551285083694203086777616684593137049313587583457693373179092739037063329752995354459096686977336645182745676449298342181992777871790958185176812500035887513703152848998485465041878938994854983811967486228607341937515527069657556673724342034881610175587867138471154249915133553181233229622411764187969452639999364134575588673242332676117677204184184256502404575536509560241098561378889929140681990413359645671753732706011678545386233008931690690522177591548407321830410697967749042947702867427094193870073834574491120325343368998867328754896772209269125495405237002693039853183045532092241318688496753158704015686816028483442092832071746666841584587900658612364325795185299644933807833553298492678989744646083965213082066647152868414889467480871777542974463326017327962838391168642491626265526215591516638778959631514220051598156867456751253407261112739956021547301381192725798301381074477849037538677636470758313608589537514566725348079671914829309921671289032877227498463294316116648629138121630769790509153241247941312674848816724757632921581948628814103105159720974517667217170122283238006448506897092478634511229167343574513177426965784298572418332452099991833571294305218666009875969396180964127309242465071714343551544350639257621858089644419764630017228117033416784099914416337471133980901628278333659754440884957861556416498057293390275069583835689294910837475825289741294314020541423323397029992513040793784390796145225836536010827981911159402256974398611739348921039236487469891752449758075733386016575897685466408512772371407921133585853806247824869355490301948242167643611993971422128363749431720495508681339439062439147936033506286665296682083707570540397584226426264341711220109691742855329589650036983115521613486781987530283876288085355460412089621579333218034600548956677830944873477117226563378461221946198533951724692353043685701903183093204882868106734871828248980382596102860845400817027717001718534340333043052996018956192045192436420395453860906783475344801113511788070902792362927758775258251422310904989995520994561885805011038261370242496970567399920434738015013426124074146750758834862476946570952657774582421892231922790662003887643632439249918957955117028272275773320287995895713314712409751307226871610487435755322873226788056341945071495648035836870932610972127749973699898010003513052199254829670240454943630259999815861417865709409352503205012647104091266424844302982669791326816030970171829474359951909851529159075875212248746729695811778325553355574639063391429804362938129701520146365436989234770306998984663372764555654285858756717690244615392868376962501938139492245262693799414596867292191748218049434332721223456206370303232708914113599005149240317240649524645405511105840755546347193169767195971939071352675594036415891202378340138119188129404426152861679303510893037764465351727849017046441908191607098992122366747320465294647401835382483053748664040159235937833437734237733088583977922050771532698112645195381775086282542143768053290231138069711464194437218971973207572563821417736457146971883954501867672630128072248113928762461718001445316550553532706865168269834977514629380971628072415946061809391393529486666403143212727931065763257765877589388270018012493741710404273845994829452690577448195115033936217698884244407172972992595349158921160484482068579603838807675160407354573583493332161347197854591964069489202377892752954441826174770938381489684041877064276270361112328730892255205115192546074499171437677978923360544490807296665967037622538626139651934451279378169328439675695067809828423604965829557649892789510740026993698906361597992706825661287462914355833698623359401735955731042717058124849741415364918349530742016647545403866518569333428082079527129976331308414528807221303977773288607201400633252422141090397419353960927250382813746886885448432909625819671599123148884620299007262597810380558069134545426884469033305073803344293983134268530356264419280425672792488365263451352269495208189129492509240296438739559533715089172294484327365702823244731314029327821425545463441010559441643754387600732827613010688409060117877610754597853236415809418074151697387984214057535549884880424421158175402790047509652880923007859155163914102223627879465887568653802107004746443227397640704163458804980667570345410623748105960451675719823786141464666425675902871802352366042063788255919821051791334051406522735617411667426872189482418026896787556623322017081883902693112331366292058371273272823850062595895688390104571203279227101485201222767696513418731728732440022340910149296143574265458472934817359581752763430569760895717070873381004579981722042767776718780029477932397069236139480536697865270403799121433121586366687025425066065946116362729018490407586446756880865550659406149818353597570306826439296786834163730125024296978398248942912686352972964136119793925325417073954753693479461286870729511221975560683186291657953035905119787883281371596909816423047086386729547362874725812693678652155465969643552647731426772480043511824701141026952915945739885346116295083404492780944688013133098372761508979688160688647214908553109141391474359188580484614560661597085268621093120303708355836859965834925521482691533761675978929767069971110248377764236371644032671545380324088735000206216644884762064471744684225496816987048428950537305682249638578028734681841183129876844104288318611117676951706623222786712566898150465788916491892625167308807924607081245914278554353720345458875911956441471011256420851392608856298534352112361675172423420521049438250722989611850294032249485417451016213153048496704549014517388301964854844233795891594045295678166723813737007015269330044874435115708499916546434292008899261257949232840375082217088455260138747639853078479018983254183304732354628971840394439970384640927818875479646765708197455113450434304530665227563647568392228625284542840750101474446410732812321430815830400881287034109900871732769834708910903579746107361095826963754295189322791570694552980767188698421439544242500519895864734039368003458091528386812291073983995672535073925441565615018927631017222677828084415565914389813806188730921333053496559330634742134767924556480173286125538673960501568423152235634151566634256737148682460276060495009747436415967911649386759713134905214482354382102400126641972587760656840908132438038687705127296758516429451866750239544759363652273186020864145608034299600649538007672289203208273587812218837314212341936614337604615625919400678738019867127181649643874985323943601166995544837300469864285293625896024137922924929481211353029430052726315814599718571412053597987791178877416270012778817839442098121828201429459024340034753946505972518024379011628942451891266442812441363253733034191324844020435954891918462732759255651274125059623260607002750987985042015691475612352326496370934260042578960074195144424727780253600702332289583765293963090504381615234403248105371225424596476184244627685272769899821040952365117353043101342280496784737881577216927317429661934080969778615355442057689893261025042735886160519251853907101077307345882888115723824449476621971017828973486587665128148777876846772108045649471186769261098318209249238941146931667998478586060673405649413010139756596448736131133685329211951916377327080356896888170241260143958732049298905717206140908643468874330860850638033081093547858259784639581071398767712488570745596320945824806568235396827221490237881311178733875808970537320332997462169024406512967428867318051539410352816886490222077594570659726361679253899305377111957899881263246440785902054236200607089825436574446020647775421120031943478370577595130259100979932282236962495659336065839285911526095790006666127517353444887418390446502296863405497648288066880006297187221708444161414202126929950047554021674267181746857475737085825577890890577177824590870593861521770441999488596728133537459829405664224040379474906032449488410328836654874692243478788590750982066403060715945119129309533237846120930632530573991062824195479524444427850442751466649432650478875378899339806960004964791807026032579052002717513826723127520204198471634578843158869401686931347391278265923524131541684749312985644953066025363149140399530841881692506072227881699544768859004851327413923195509129683039830376914360346777038805085593347709271379382027200423275001798096636431906190848922630315617763507116524792509279072261116048646593098344988244104337625393746260881949256402966908582274414469899549278666536118116554839400255402523620940249910553215982047089446217261635233168768235593569763776727780914086500141940830807654896614094466248122771168578940922020856461138182878226738984421625765524138444553259078743564535393595263803307786278274427671075851757773009104960945648699255156635473883734429368598387350184698721103378150544693683152176238467384634203640144350920477923791109480952938846604548073107011613588556338583698300230755507223684908362934497852442811362778069166477295082962312882502335175527362733926350839735649174360937309997619788792645324650380859611187976653134765864950268187533559621636904927695091661209615306249473434740824154014748346133480205570744691140941655475336744731506216519618497263143945903931306827354569816855445040859394551468907129688772433314593926856652995224448263199873379625084206415325149856051329348932845790933676088258397652572551817984221228837769518313022337801638232042666431914790487553653279848308202408894377705191375022529783283555464179106146455664674955487704903933953555749644202586681298648912442133716714877348709468950944559521765739371025472671069491178985980687208744911174312365147759664621847423037394223080928217982147863020034419214278625829913896065407456624276338992110889389728294621228326886045168095135892730003289746000688960911564197481350717407204302781904000215664219953296592763912326516132440036414194090451962787352790576942438974771390294948952281331871462955738038522238550267748351665709929409389702180376788355443434402883445354073774303641044652858754067500554208352066333016730474285092288645854277372158248362361763529391260600372799756834209947339521560796372023413383032430618122751323397258776629157383322343230246776899780696607576348233969146216327948354578006518807670921414345406629156631102863887477299753508931163534274595585065428548476740275717712918220560356246340306333305267307911645424227482262318831712758524190189251190272204950272244781945036032990561997643929001854259005504984445621728227909050329050946832110848987129436068522636936955255213751711637058145562848651423628069745689515816357380136736731921044122443588710950465154964056888107736704765077849607910297767156256453759954379151258929159352762667325049441972326872649873698135234502496955697052904203620499962141559240178595361933235652864142417260592464345268774907566719576656694504178851221567794332102863461214163300389833491495938287326117715287098120959780804527827000362716477921436245861793567911812417348593856235764395631932364588317677382102807850357860901406816002616892449663592013567555673761184314570044873879266020699452671138176634783860403510239133739061699031276374182002810432660397848185342111519006534307949967140052575102517548908063541684816466971057697931927646694877078114907692105333490259018962956903255230815658966304921069605375011528480096069637836047963715866190944928857876557825226983951191906209121631346011656426526076375269440536221331364620808775708539933880488403057964831975923042895194583032084576514357527591382335977960277056564162228795834585571879971129801324301889999929177351896209025520015094450519766765170794063855114356336842567760849705595934104257678257416761787829984846295932802770237227532813485037186245692203483274926086568739632157225328362621977551151947151925366017501102315646904588126696960006815348152539219000546697366454338504371711555631824263396437182977001183011737964372345262350035663492167023159504215822169011440311120188322801811445030881543838687089774541716675576657216791734334854990555718086188296507167067703990996075764924932136673914053573241049863177282606726473450364536606527442932723679283333504637138216322977771191508974599595196250716266838838946308208150542556228389330326286587412940186909966649658964616415191520727904590045251550784470142074954117170315093816972732609572858135992081367163489897332655605545999311763115772241150640924437304287973569900683357282783719531220639993865514892874982785044786094817043074239403206771163164362881741496149032076860767091409520055952905786316874775099627008165457449252919729904791909937864530506162079178759390558302082891419820623545768451214098883574153959918408485756753870470884068407532111986712758261512426742104403771526219052571239748461584956314010134187285389912936289667437543095353890348777490359357006181963427395704317039554085434825308132804642272249175485105866296093885077274172855853351911624389141107800724395479097595086885775946294240695901000369035268617501996439518061216482055478550206651359592728245755274900166280069551183541143406864844051145258674649670048594250659474209305334803601760271529189401053322145561912883519207794782488161820239150315296360589068951951448526739897932966126527038884498246718217426831264736012906878456652749910378771941302179756237404005479412212513443548696664126068716370765978027279087476659147840207429069055010672747797699273040089938221285614194827442910613886098188086704246891279764553793403230676755961633721483705154629173881407189166878320626674706156672090039356544518055159171569483580136730734487490860199032522860962033280562430555425080963641505143311707945353716825394060256441670021113923505389392962293006424134139942604889628157927320578829209349400219793681095759780264282415448697826638369874961179869192068274930094398537243233415960161037288005975941991483666748324862090032697451572207042290344934009468954832040019216247726198988343164492336422479557051293228493770964605513321365705548030762490785724988683413319890683937552275159062520150052555489854767091010202509058180444432211714049475392100367405972561258529440609332351582761459539915980073829867876411784971123004576877487969808997021993570100165814254569867781748194288654615794704606598542835830971878695116865370121471392075069092840412093123038124697256454948999019417884771270055833998034055589362945640697368132616361823838251292985293155447738242546147215107699988646885909205868291277165832956221570880723102157615438898007219640585360893506162373550335523734647252018849323789746923876173736781238338938118920751419778743155736714611578402581168613655002091559261143031022841332170705200478598960777501104417936200866907036179736087798931223648373797228464959194133002210953576194609227254685340350764230762232199163229386835251016416263821420762852039337999420218582990067012208176034958002995316640260592111313417322656629181450356704224991972543109416316021034589913893676608327777169747340498499827219967093986474230588296698590476483378993704795277672112204489024888381646880873980552168225012417861515738145869956815873597959688161675556621303148410357569711669644027699750912328759145097632400936468320840254225898739126224700674409974225004401581258643050734696400554897331877325031456546273756730768500730388954521912125754153155723936084892128227094060997580124854986824880700065079346350115243036757883204040873550963146566287489974371507055788185084853930204607241729136210769381088983566822276191409436956883600149601089926424015179309169344858838982420464332353839004553932301045150121767182145217649433114516167109289390007623404675310245038738008330963175778680550833289244782966276461169884589141160440581820533901028965737456542388040044219411691713298387672133062673325568101176729052642644523215566807867972482599704196835571577941687706565004050477300489125653365477029051366867172445949718356711955448224799976000036688594444626554477782549686829474144636376039828213337711964651031776312292677093678952856077568105524511769986848507582962719324615613306891183753843783743818112011639487876166707809487503778931256178042754032636592802956069820550589290769217092079021428947635508535700065555793716150577736002006593878890557080927408602839443152023318366010904445840957375688667319905280618890171829743891607798189291356976162925031744799923301283831383177759088358089545737198538980035615989398911309194379304105951722828602217363598203627383262457475696213239676776889780226882641969192862018962824079021887124243719084638396909807240155053561645742679583085094475128089074217680158115897570466700149675378350353288312255584893284490386835248108658789602509158441394192961267676369725021491192222084217009197770423355337110494921830736095874336128063280635425068179189969967119104403777349585363667359883831590255924693042240301795081561045645872202448690237919085723467791156183428485083276051163052629026928744982490070741154233337876831043907427162803240974144704672030397157830732985109974496618248199932454046835909483169092319256566204730045485863056978550099054487301522695262539583627961124604735808779987090742831085993115033715274705518313071759818836695986476475719599449066893727282838408882579621905585124314459224323299410726388820332692794103432348716590473523492004006948099738949854042729561652019218255830264903733096405951416287214506179165712730618264667456629549383595607991102080219768562436315510053516948727286611651129883098705369972236073977839661452552908862865939261638003479241156855490050379657411554377187445541127208090773392748054094016411572064921507349540822217759214545002762687447143801581831541851720887318871480292101148732586503528533011469349128931986391215485944505836621749706920793053747380078405028517654308339530691514076039386023822464552901565700292537376369955504309547160912377666463354492447546895241122944032518838197336134052393996639134759133808486494237828571636668330661928662536470386800839658760762198847775737137700080191638626188152000627920641279264838000954904534264454433301657012429623585754012414247901209495816017224312820162510370268548515096792397197119339732880455802101566972276317441858192100094148480710208143370438945422796531799467007720693304665756277802300601219877071145720214868951176433229965239993461158915167298458382578136062383599894380272021816238810962528269062847754453904287384256542748898483027098702047845276195718370844715088648882164666193767836492133692849340401711224109453427505311822957240474976660435553500077354803443471090367007932967321749009243935075259930343081610455762399488973275890680238978021234755931634930570671656000661805236534006342752062943265848255384169410518821317903873248041542475978981804455642161040024871124143698921490497813074334772886810002500291011549107803079386722950148378205895100058954175163201799593842858994566493292339096232728940383788588520077336577960564457748179886568370218498727472249384103994010310463070681482592991666811492529444322063187136673104920457642303539889741959753320434868115547213794313924836969280482079640409761441999372176295334619174444052773843184833303360499518876425195414048713022209710722339979778878436467397886692986814033841621661473104240995989703525686296961869239136476737617673689109524016067076030268733343935829075789349641833853518479796532389436894683012493617110510582375502975280403752062966584931050215621064619017872048849816582343635063488290192927746542718071524599480292097117297856402690034424703558329666209070348552224172843291397994504469493838571741654329150340979918974885761159992203415440222319981849900061116462131935737319179119407667132775539730226334565797847271418165416393624017850455227547929329953880785192726551973393781287049240480371732579816885983136334100594574896450665926505628845567761450043153069783277740644626887264592941695003092577479516819428349835937402975951934059235148781130826297983617615059036466186480787053412029982579713316798663392466911308157364471224159482676285663074914565827241805890220242698123279699217045128023032336727745627775145490158945790935567733472720900448404335075698429713108220394770988324032213345110028358631673597847833439138461552656777396291017491399604107622639310229212031825504735194310586731508674509862352945683444887666015954959882891737333504787828692475564065794369091399897631052876469345427437188081900575824369143439521843116323256031009075527885209857297902654408870931164900218510495840204607607729731752885985365378099404869647839158086162100377174922192458947079290349317256840967148812548995773587279984992506750285041816009438112354834558578604364052224648158079833115561241507942678620725827883377227614880270543511224346463505653046330264252840860120158796797597112794907053662877964729391460344257207499393734843917854416699275175205212271725166464640186662380020950175270275433575797648001505186310277613230038789973635185931818871558987503986766158277885954833515807151852063905035391237161621770063441230587578284320532648961953449287351145398891292931139999151430270775572728515629051287287186714359735787933328581682555754413788858319953846559645481067602978679277943987859584038879771476908626279286298016441066887255334860643952882001646545350817020214809488953482210020170775464005096665435542382022301666904347501074934275697257617614328669431613478995543325149324372871081663605583554131890437716619524860429501094712597303716842559206516032578385885857806842557576648095782750509468943399694057972149901310674565774987860422787720447778092951433659584463617486886860093465700317184769571113498373604266331173276607047140983919163050344907962343152437064212470339879296294732363354114429042287072127974472247993645129374807215896494876314808690761219511562553425903172716647318024394106489028291667956583495647817487056358718077850557094930349202820454068099190502094240836194543297432357054848753561724134261593143922372653481574832484156086228469937454012796447103220861707184812046648852546642169849600735946372842722128216181368908767351188152478098195521744993910053914063539618538764043487070690051917066992798758880839090187647315851405129873975582510846846232609820247838921705811411732420123148085739230520049936514320469455214536830936640322520120671041843535906159521526856813277936783010179509934514291667041143896683132558836613917734445012043027638788601576289970508252937352362812245619501897439698451628573139117441840737319868660655660161483469253956623834498676159660071528749331214942427410680059788157650692961813541817749588011267891560824761265224903782781278527893693763074672989413317503641041899327357474381395591019410203787605888456863616501256944568363532826299001182538473287093645509151892844859070064531837390445642297071598212257651244950395042003523566745191125071162093144978507593996876252179066112325107006444244525769686409499906903581190163758948313406454409017513137721084893887641836961436581733977876666470717981180826645055558919351841425842310268789513014994206200521783117535846118834607299238665224737621967646523514395404388305544413693660468083332938307446235500327582290510553262370547347327690986129888860777001410565252643911042248125210369291821584613129597620558076209895363760515894605889760073119502009755724345338475981448347378875338375870556509377175750323122710302818524354253467457893610636165557514776980820024353103358230245403305272023946068287082293064821273161542334525035570646244323387268265167928637802946395914614298051247685983997117517410982146857294818406604280052846172499747266192860190773625894904092682033625223318588409802061122592639175010156353152066428867763238767751800550555594319057665664213328646589720395493743207762648796099301943945668210397604380033182236120326148159366761923872907402818584072583820064431963514248772542842490749756936336148595200598017985550290466378867167199378796368659788770535977661218710907148395793056179879956668958740809420980445068556542311361718795030719421719459975421577994696342499460532030780267223172089595077283647811601175785465108400188732599842126403405124809850912943899426439995546090120497444315624353279667244956382457384191285305082394151591005068329231139652813305956303505416068110328112196993924974480209280979300348162681857354506426659718666857672040173425490802117054809374188034786696936852250594428524519029436288172592962276836334506971949830655491994671516062448705396875798181096265934937395981049519005631275896339437940709492805050645325669356578366752564440092419114854435812978348515434113600598128923553741249681934918707529263796563660324445622686781476299863366583090371674040984210650183879069774546299215567658711476287372745767721331405135180713567683085760407129145139744924953199410627949318902838035645442941487852374975611619332310960685008321540598093462692163175238764330675171600798294324312871844318306642259711863413678974390908565938771179659386632292140486677860607079059335661534885157963992928496919333939041753349480076196863742700873375343088695861848974599617884016176154680271493743050923319815947135332360804511297273699459032758625272380158757168084053911797055991610608881908893903229335262136770846065477011943704710598085508740330160776528009160970782972824314458639951358040930721140617815826010077390978638960326272199765419690481591561494775726654883085355344632365456418034971378408848077036108999758976640893321776915676130057310792500843605578866528543262574175789841367394453962055062859259936761188863667921725971302820031599056741910694799292149717922964589900040189177994016887628780429932381886316212220387553866030541772353867105091734727868129286525903004392179450889980208745532927581225611854645351597756682229358072128374180773163273577549224225445770679211941156625474047617445245805474555392505703541982048987913229855827715267058012714889447534729629273814982281637643357584131964083262488980018690069686474302001286809058563486164598156859492337517337778985253269233312399685574962453811073840804503626944560353745569034328948726662067155298511926938740135535706935458661391833463794378338491689317723941800944086711796234134736358669677262775851125303485362177768399536737870402455895867402540252495719543760063955200029672845138756418179903001913617292231688428803867744853822749738405674577623343360802780414711473930139911384787648901657005907602054957779353434442311718152255130877130369880592031615759954311136761510047294991790728944581730560394223860762911260982622660090328799253130992634651933093980794530119086587501082644890576313948553101179667420795336141326763925829011199059301570106179552645960366735353688782321789344150789503188584074856131001065424912415125724938732874370942627227671613792808745917391776337561209885359329101064428239197795584519140240885342793998705628759778230575292580067348991510474883870310722541318708011484165380005595708781140070531537454342363744485749673377306414977939372343821971499125828927895867383063905202974491366380483404437618615608987788621760297332352435679333148889387680263242791843021451605056167269192618009335776122957658362444710274431261504822112869836030977367896797406939879426290708072252001000264360122563488306099423301352552453268075493160762755111182793973395457220087270614646241971979859417311418174495708600567560805042570604624266085604714070295161579585008888792870479834206335238035098639824145806873927746504986857015536402366617467549416829973786747243048126626685683008335508729226959017354857990870472283978414530263498482917067931004552088019854565638724567590970486004065686182241654306502249856281467770607921753064573325274688261818414235189165987718792690239994404222633249409409311590050340884412312201815007068775237365509807697068968459866667268569854185499207861607930543912950931335135819027011912471803996460399046966827082114613100710379194971544824177636388260240538746440653856903125190445536273054784467143093801794811750203098845768939558854923621638547993687215277473771629766704906252407282956552495849732400748450760475918870333987716250911062869913597309601927745771345793553675695473822237946939245616932069879408631927493362365337086698159150775232457919770987769660172701625156682737929768961842062278793708549041111416355737227875160553475462473355942830400532630990932975349506246192287843856560895415231744326641103006512607328609159255807200260734474845712056491538519321182237824902471780126054322640108587625547479617282907556879138244454918237651122326546760576213471131091582937761930057821938797288456783676606624452593120163396588206031205668461403576981267685702803804679233556869939974825812942635462838483171962338462043886772741025974867377606310177006447817278486864904915199741468947869121310315022907595236218042762874025837427939247104254894244396216212125587209150027603079575771342632605187709803831306006888654852357659408201412688355557872574734435662569824080698203159087643246375524323199270751385228014480396175104831658422008327785406139855056061739535357695025634500663165577686620837231732846477291014608873453759278212836111185082768877818042376510242503430343248687550393231840278085044097764577912597836958155266351945492068632084080515735972822670448263659048605297704123071254392227788501565486378013076773533307547186860681538533341809331440025171025776998854327597564605446793882913746926417783813469302613698480337970967836469588200759234743475952133400608934087628338835602686123195670684074076236998166592071722843818039108019237757183050364730857332966961114163021463456961430047308061385304561669149931984719631632491616272711122523026861033855138775418111700153659058806504850008955969869208165531343457152889899627881493519441467687471411047564614110643528015455202703409800816555920647560738672456904868767671163758497492539746541854693738100992912230602827574196294473973302429075563350621451028166613352947779877947787717394060303237223157772573814384191577090123912820423136760785282136756838374793446998921981300762983517658660711798911294623442656218550795991323655777624562309092810381829567547036081067451857710524766878082647331589829244972060769619221675323584626140545714515499933519698362596919074671014714552387746021472982251504924650128931523355992222276634138162857405689461339628091339049575523994851654360974225206809409889788618983461228294368599765470857409547591807344201136808912576211528618416877809699008780525176156073233494714473232087983255548918145916549655156353655065172433470665937591082915879899762661135372922126629530800935662961905842070450806598923108645966924521162254780633056362289683740087367408311302322878065064783188265222099021155432539208846058716613854467600287973643682946546468885174873977493184326571477967201499281257054635303762153206817600192208662333456415098438694356994199206017112421568647418151046405820278998905911641433964346854347720705751481934357932210655513616450655726258196655409135991581825836550446296763748536035907184576950191395508953839059530939653267284305376299796296800359272448123849972117980012840937075780867389960794294769212645762158443675663183224563907838305837723108161089973735573587665492474462162947177332754631600894853844330871571836875239945371652135300052425620158559747740313083099744106398261431440819642547735216230213484621324450206349638113458120782936584481929428697005940323107228885725114385386427162835325958522694751139363981102323348394370780590837391597901246933382528774098725758838615762717543275243969227116378896368579627214222894717286767909042006295932607999563180104304509779169399623249997223640158527383704629938238008712382132048526280901695208117617967521320321954996732982378471060174227045359788307316144591594417370593717104579808218100266746097548976210805843307657159029297319931455863969723125456479764750000796615189723477752327358501894199826514809571365439902488008494774013001274623119544583220173036589246119381263869705062262270848663979468709504845747848963824498244977242381516351748151153233151746073070607717961956413192803197308820261806532365229462787728331910196439537504975334152929784214665826751623570884660301143472590476127606130570417007658995745028380477636026086164392804053033988297406789929899216354505495670619835941391319769693191919111778476206320432168563379867256909949434001392763921783927841661547616288452611632122477420284684796059970841153334660050026265546258809942919010255228090120031655913908163401767573993386966480823020357403995730790709890496269359645554193288414531514549348762525656666659836080550265259208568191553161796855592383152639562428258039890637683181845576910205923464036521106823335494610762835705606212854830242917432327317087578824689273166526686905636894969851131175307619585447105153487408731946670472382420354935966041260338152895688804822896999397108429513263848185694733967978619785430575064230806270462908109646898362498330670011666909361453229356071818499272686151187283408955798523942527896045333488704883784860549946187159306177911131579697261647149038049179673033847382298907445638735416073640158150685094563859182845413091265743675677854843503137240952513429363245715984378566915216866992708011101681223468376368042352823974061747346183622130196252336674470559095933724830914062635805836178865752002266074501025653078349608891386807630953588856817266939196202185789967046421879607344038451663464494453654926486886764064459949137767890855179196962247522274574399726923816533171364079407441695140592005552682909934094686736407388055089344879022121059434572399738754019260585329840959217372650615295795718791184732851508410726837350650540252743970843705929595192217155420444531097213993603946240564629769903938153649009738150979949587101827434776019360231950273635671062798302135148635567651325027458106483096447744964383671224003541194354354923736538408753708647185223557464108786851741515642520668600578865823765790249481175621320211821684976722687567292847630227198849059082134891194612674114582604144727324269632108253131973975398777067430666121440418520536599391539741915697035939653900631439069434389520774152039818265476933275277726809834126644950604634369407016954495292257355131945975509601686136421359881319974243794787372795475807401491338860035642069988646156048217049136320192587465414658460996143004027409329679803050885153589518701971950780932224732709133160703747664977090462140589696894472412010659067975145162270457132598698121154634637501757072830421599069014092064534972879117249161159909306356329301177966805580528534952855569662848637451132292548354402435507045449010664417649823488193079340550967881253763263285857632584864136781422334887895570340636319306747259988152632451676144931427568757423739961507665640318040372883148059232807300373992599282252781664621346221496478256207053711617465586953077175170772343987341474350466557724840873100846776032051576326401506527928004162173656079404401715517673054787896661124544702423052987986637443913404796776175595411335618528777870364188396507596013344729781827067504454484774964558567564103420783364878051742425047869249359415799706289525788282036147384715517248681194461010431497330464548166765206619507500064533132983751683731236345095319989462771886493768749402290159463929402820953794863121776179947567543347341040665631785053147368357264405660238800948862715566595593883813977838159193464451461990044808368340376127295569466627922718251729340460328895188402005502504447198751049500548491853545530845512106625710603675192355588659785529131341840151353066204759921757811252584939983848450194587615069166117138317852370357125142967040001258991486549013115069760517406719698582023124290914296934924678340057566591723486872238628123059603575969596310866441067425840021360557053376711198957328074544495289288851222927933160873119108817546567116181497263215075214691708437460708602064328086056444070543451016635357261940806818331526943969308854849190992448450465003341403857743273985586813351620516437353767376023016457199777005125134034654078329034281271055820919629958194715772488446489317643025388602835546501621477972486624451762123659703306859272851247344964903279937465790715050610727868137384397893151230514059062358270303571764463475023765526375003636406095480697765608768803730981227109938395329718803376597756344403071773897153383614946023695014573496899537140875946965541203705724938595604027137989999435631143815344754594154517131528159448333185442890282176557024539791142937846655094529254802906773416659873035478950480631974755136832398478909388537113868331405202207895467941292275107364641762413341906778799414483801951084688588904936149420153774558636299957883171588774088735190214587162735102488181158512811953019782878864649400168733257932150197395360784388504178349471277882442010050232089226111040965765384975045946887827157734891054836878795946318109990351935718797367981211486035598585776365316123456412800092837506164932823689454951928733473016966168878671447559278951622273015646015487012445722405219197284943768699537994206148241657482697908633238933881451318369023624837428266011947169894363204100795989231302853415537215799551488903105057582533343934410681012442145502465569404533560698838884783807252610351355441309470032061074389119246019063485827106662485878813030997288275892606489750013157676323425387733525163130840968189801779631971633271800233761505875496866113362456571993399687551899114361046515710133343882395941543960748838837347476182273097343071623580046834187856935565095547888629741624603395683039161655533575390602309668595052691141756592552086952495741937607291753878368007072457840731461996486618894728829912887663881156571213506698979034994101334608499052215330480397030351992961905283269490911463088951748806668651598207830327917118743965351123725430469951666373585339757514466392835572287986725800237588463660899878081561108913384291670530767882258071889835995798494477712636005408940523810089126324695603975511646649890750554815538102633030529326451801454573743385820248877443764811016077276909477008078753126910892825633742412571955208693341492314703917307695748909152911709981971733539822821452473187399814437712237060658758047795062922877269645119028449314976904607543030062605010776921120449117322835146616484371929076409436001650622052320502028200694064239231054149045118879164332740860619173317224017502959333996709244933619325292646984963420764075759083289255330593881829153689469904042709044604646714933279374397090584991255339169927754212396904897195481229682564062261124708540209596121935707560898445610937614158088262763465165348533867479088186723080200632288212265438568054044792729585337889984633443889583007795421728763632417038120254849007507121021046993604093341221706644543614840186524055489035406864749324706909368267890975008925481651669977543675910698541836249195574368678655968754143696255641675613131664467433649579775063392308769238554170569888533727170161725872474281480625716480114229585520742414384846155384833429137475818073149731315076825331811067448552048229481088971826473534018577597449017795770064683586709397505173433119662234672879526758900370711453611397416336590996683940249940424140531426232926428197686371493308347416958957135943272773379769560272936741724592769982691648160747881245202184685952183458486708578751807137903802207951827009108688025416175718589116800286782426742604144273752783526149861633230460336691883044549981146109328502758048438288059800728636372679532521581192753061883158036198012927664203009787336445452622012479042832820016614156573941053900115298534927657871236145767807426113492874235855220905677110465418634374154095240645743331780680101075126430698575252033731749826278694684335179362153138182546027794349271020276631869260274069217803709000343748114474614058637955905931884338605926427987922711346471328887516946078597544903684314834140172679562803788061632203554813468552324691756830280795571910160484099873215177614729004884487149671505204928727900244685586771142448324950855152039721628815507650309512674855185661962023568101208858842956124250541512612990668644146110689505905075667958600109586878193847700890683421673516456234968766006447931151897960245278590502332230463315485042410758026303684951980990245837211126401610130138346775087241817000448130935609166075076171355928452223050272201449663297810105431413941708893945471942546294975608326207148624496014490773511922433757549813008660004359101587488825515721552480700168875355208145456877834230500570395566932742948007142061512238953272913186826198347489261220604204731134095614111794343877862871140872358187063557346099015815787788642639709660802510828052921447821980548580274556423625414423633839023007518379126821264965897822129246939237335761284632740206846346138966666376559888584452432522231155922324511158887412255407801436380085099424914118819059973464034026438599602624193917337572241684936139851977105037164658879941979299511863750727316929590137269750029206163606372655174895889587885294283836125802050172600412200296746764887888001037668809773537923677012173460201197839852615463950981366033385251372967425336137263160861449366834995749421407261683904162607009407474538426245726848429749146688842717854827666446236157481996869059430420504030981876688190601769535982192630429014036251857762525079311113370422210495604220863907919089924490845663992010090080595222151090327418952604277636802107533700884670815930884877521531636755373554793005923684286824562210142509626313577945994392260778163391849577524051196591229860513609809437179999329421371958808994004444065503970546359496010729359519814683808300546103351249986880109702551040865879904033032743674673098280863068332774655884283280267733037779912872860085328676584209741259738044584071200393039832253420629392062994521779189039068403945812302454791005975657236896945464035600375645925945136462796003412012094960107257220714771571297052026251354920193061270406940110191876892635238821485371679935052284642365544224424344388346772849537047413938289698431422735656183005700412673876373210949713766986560774031971816052546410536392370449863919719647581702145758746181488531597723842071532646934248488617192420317908228071498364372044295081189042055241105559854554930416014926579732387577723908838233245549764898144521644722336562955857195362030963061666557954947461121364153284596978776512498680860013286432160716389930015904445241440188013606728557375980543539906860120456127720767605536125169980544516311596995657419293779011323380074621913170139117364170366393657747531030616359170848919346226805619362870139066153934676654673684963575850537957797015572007588988839018859537535566881579660536969651357474515575378640785463096282739261981720528994799566405176981438450820795037272499128777526932950977621921021913718357843238437018085330904881876696476304390850398208797997787654019900425393476481277588659636579954846779318994474687856638402955765532931175493316094229480716813418112860742632443968789543066353270014046967680896211257223727526133589764566168188196440680424219144068045472026762638552439201718243786993267758266931436801839309951763848804789815280600933968045522441270977756369722287747357171121893424228569043533015505006221905820137978859923833350587054308703454049365614168772678479920610793668301832796810965098062901168798496220782519927879526228982663489550400937014604933050699048626495469014370969976740893949598590354834781574360866180776871037021306828235422974122654823535949029883068159433660669989299271365701182742945835790203106162724852341719333007540247246840285245903577952149436726520756363309040597493522514207376277514433175767760118729295411207950938527593989736027238990381585416993423460499707973384242036882218659688352470168851804414136492443340843132972200582289917305668591674699083797826871041548013538534637475638323322078920490035840638531126268104037746984627621340899344667784564027935699406873369296615284071895701897748895543745881468749372318403019133907592544380274958472318233553617247849970294205795632598019969825435038611901708895636730668843729453275233294269225227531271352063999988885430904379701146397823403489117897947306088258220439778719243516676710879109049302524738897542851723386037678537570908256339896777073876095342792810638132585982040827218143935238727666105109346451189918513462487527397955192322244548335374582101812637522126390166845880329934285129373343089447881023457943523180735250644694034300079019093554435253616003368330100799594045676575089077653492424510396879151294938491451482690975187878843063655168900739443119288412626240864664404179180442998201552288456596199277518399726669943208300087425105430366577514057494932398483362788470603083499664979410710202521001199062724223718458409210460102938468834377980923103119694571155724144392146272179928115308967485483228621388377748988908784246801108253557746282828737308254834243058895557918357502846387768368454917918201200739394477196381220736740394579435547741714502537166664024392486047046715910620581375671363204151986893959777667565382180860153795700959347324969710849385009457324178607140084261898142307047713301300862226146970696653845195817483707087176378115670114304699374447705541538964058213608110236475375073564887784952545423670360205579240521465705762322700355614697543521984936453694545324728440012852493636760097903897124030986846527850887366083542222320117299081015621204773758056700355031653721898887947417624374435826511880669618630051207479370917703819651478468227122580450016189828113369624788030149565315045287783877029858562393946486445336564476524251810924507773831099994274468219804175746804565839384488641238282191227385693526950337069844550450832010679518016085208690956956244175012615056886435232059246448651459956618570383265200143913683116642878623454855462876596230715107116218916539029897187295301889558712437285492266384666504694203008888956457687894328405242657072660595515210599044886449630725131275572284042425782016130920128742589197488477863903009336993850045598720554626595332156960211028201658276308481327155678176459304516906308774672082235688072591430261757933631830611196740979610537056036515646452452832693791860408655836511816402873462458004953556535425707937408984847810942162322571588233373935279285637066448915451369724995268237416654382038244279169924576083446944559046752239434657481859841846692960740036459153095496566297707648822291991409682015125457581402356662558685538885373943379221205768221144886848960422784558138058386538282559097922732305494518757687364292865860120679365281623301810340359813637426081909174042976341077040953414382236502236758268009553141294528914901083940352833640220217334192954226518173794337599614834185325606771072385928855668863519530582568651171336785312546075096196182925658105222758284488529132027411373262952105290040055312159765550355395283185820359162035998572368464683099140940622060306214706074411168774786047733562455932605659657435750001473991289827859234710744988062084613112763344720258679743413887603871610809837467317216893700228539527940654311279566871584078828727311410315306280245371789011031778177625018761892308789490365275760370052868617583802864596269163647173327481500882567518851057863999742170773330171169934171704200379035275912653330455099128540487122117137084409786783448786134289536504973730457988259105966776818112221651336729073867856359954138535935348432818398840462801228348700777050361049018083101489029235057882421096450558856461291467336562992481888124049565871586202549452087515652174632260745238809942819364851579505879270711687129554665280623328810313596085735858714408079886039456471474535201948857882881143686108254433717592354753163777703235696909207226433479388589304581746787918455426982995216968801328342828104744422437141495053559461918619488828110220544122775901635457578261809977638946151088701566842109730380361564749017374144725129478207295373767567479297060744431041917730397088258813549166197661338072350134159752944392040693402466234076787609713698506946563735377702786089020827672318177392909589836793730566325500917560095132939154297314117386656221850102987790141753973646525484848018533835581910488225316242864533612240303805765283813456611818938739343776180532338678282697427444082948062168007037927079980561659074182545543628006906761033464284639643173682607375867210038292606533699473112775391371866208116763048965758039607377045958335796997921848270423410167716358169537537496824912715420893404601831172679272328064169354370565883945142932366833837585887139827888873897267269892093982446170455359103214441234858777363563473557920854521454666825356293970675515291821266166766761320113140845422377772151049672690884666574156991355577237795115045988574738061359143793636244631154481299773862189900302813551921853924016495187580409709537871944125612153910618238399448266460005032061476362369744468194895065649750496520945256952163762508665427487735111666725900981066753293227379712497158125741113907625775411937461852365551679378225022984676297300565095583857345186396232710905198885069012784538059061718008637014601004611978936757221236027383531793173418954234881603435413417502440757256969732639326292672691857804777598946382880019336128411302752424755873389617336554665179116974554310751069056258622417810638389112656164072191328477657260753351422775129290836249424266294458896753781775852366130717841929721119513575375347342078386919997496724748593428575721228114220466964571283939502502572407318690313914716356113237510971230790833853772605970625919884256911217548190589070958001407011739811403589441827576780821156474196148672808375344044248437856422501113145703880380736361342755802814634340947917428294026890717303602858560712351212667465776730029747465540744301070563773419845444136147477941594665157085427837563306337354962844851444907463257191791864353518660637589229447619777486876913223768950096674952103787163884531558552474455568999108539100451956379999537310264258893848214033383069553555921815697837565208121454831680963165231871799958987182014094337949492961048170430595111257179018010092455671088167824942944978602645238020877853492043804077281579008056307635371034825670571761155679051481858793865786458972318103134936443848916363975372934910521410131942665988094257646966633761477424662765056481232079209510887731085938393421661960363483195765743282667711502085420453373078377872335147067221126725934877690278647045426617006202840960581439461316779137284448157547904307006850573690244176838348677174995391035340130889236968712452273536299259491627190367453720489398004716936502200647409297408422384717312031800814423208671470196162621937603310932881793929424971653721097011188531709630519639943426532296607597419717218009822243440446261175028538548618860913394248928048013634245782027104407339979547994998866889404293509497401731875333374761003554459679100852100945499544407452402337402603572567937665351417993438563745361400848434318976635197692695516925806340691508064030352817267841256238468410685267978351428668179443490600426091103967159485010787310670750838825078259294803200841935439324049723812285379131300785011138842141885927233239220058816291183855899754411654707449020641673885791940464405886966781352727015980130271418882944208655616891186612409973627482315932760163391259785642063649567388892940772137073708507721313215964737244136470329267558630017748274038794533901726498559634723041550873292391318803851451611881363244004859905304465516126978234380335145188065335454738123763726662585371200000879771840712389555744919396013394665285197269140851422732451692745493621696174412566589522021175873262618712587247381043706716132763939219897808092727041833257860516723315586631247898932290205534425625456157873824823691933584091796782822172209499434992436594421115614883933625316830456205766054996169150220184792454435687607700855549188346631453083673410860268346760971240882888240211930830871878320666290438986352476344329473606062555656632739139870281636340953390110453343733390663767263696203615425372154266383860989367739736173697460630829928881493577768277700359282184143500065635505709253149108440425413029743222894576830798972328955338521995561230817426975431957998455435953733343846904293063423303447868210555437215680697606823053140744476589665941439873852079343629277192859489660097473898381299811904164186035261396957555921991495358772581792966153749974545259188638133708208232932288237149064896731709539894814846837938090151669544866028036105960038081861284331427659560081787790984966914450923661670576823428918549603699395320203440312260077750468525169856636830789036802938868129704613538277987878801189696809586042298069669852734406618945630238898370913269315909553294119850398359476460459994162608214241790922994735190163531217543305791331745506342879505722674522951308646847659319097299436642804365409487399153256469580543327520916934588642030335045393146165957260645095180375547940902375605657848310953675024881959594042891365862620597167696120669517792361823452207603121806491094044180926763924767608565660734324607134509769706821847082212650328555690823180917816905144448827559717366937103319935102244755590425762623415669712004831303123137858351642452381853520183745490563932640083923863780157189468805144532306551037666862048384278982489829298643372771144345335394654325285514034154002425100771800362427586224463254446174250043400080074541960859485572749933596956565241315294554333312929193372805731494262111120880740933049024771001850376324592802997220232150235706666205437683042262435894427262894378683034711144599764640960862257140427309614545127663296196451133786826115379850521827235116314974060846681549303830992757391343694348324874562449538248480017144724574231548120408564450559333538457370457944376964759383665522029310308613861206759531801182553221651926871670679667928869482356179868441372247984702914718009308400044718059267962235714797116139316548298948299080598763258028401902217300782572603865390974088121990200929886534363419205196180620311773779784103770966685602609125443778437465120798394554617688862691203034704272505487104998080778543335818435497162501872948661629104367207185677830749104833034936757150593779254459989109863248546537622846877456407618764109195692284269654213399855968632511472923115678565950964567865998551426354118089717949559783602639966387217790805652024439596370110352215896323762394508693888304881249425775753110005250015298693975274305555340150894223843258238271508423184573524702033947723220307982467545350756978392541314957081934689451931967389414458507979098847355255899222774284467636543420358626498783269292941134481618740902278021518790595247666923305081394137176386585978496184252358113764778497189752852892774540020626623419887633328386181980306431363236792689972773558816190620869192760751424010979679591889871882655873322733750356345043666711359382208338446548712683150988972951150424161025722295842186463203853658802592905349857022459326820678195226582063137109837634227460306351895399560647839160734731102897770154647451827493690081001117760379747120184539929592585313117392929187766451195629632466173702571146985664225127305538301252955937860738346576354432732514812680796764207359421744876853270053612619610460879123523025480724184502843349699372809935355872436046700991303890287182745183532568102081036293990437291401730199272441998792505260482762135664129354252077330226924292328642891198487746062078916354884859356374845182484187343487752480694953800252390395410106456586879924318468269407452036699865431464213463322492468638043317502520170948079827418094129695034295631059463035109167119575371857993479174509973300491054937710153698528313233978387138489997560016436100342802348629874509529265374707008140565972684181594926293775609463781720011893147094967268339121395374143045252806591226164192973778448386368655919216870490032852686248058576475750826091581178671159174195705014641558135762846372297583903533167832207888494784438213378856600362275495579714360491297500956365412052170366380360555012833147928919786180119621892970777453805129022657108425624829119242170234930307148685495094977323246910635861344966110021146552918348592154153591130817787522280800371037082966353136852617237385668364148967116041015169179809551498657214821313745050895277761618223533819772179883299938946636416390619784533853496055205977630642758033528004072246337793531866782093099640941780927008064681932767406706894463259459899009446777355088531145225156144369496419344044896521328455022856237991016776732738279946459214001837332188374470223639602636257726225952141901104780596733754792073744655113419392783779656495401721053633855023468298492058544422862568650177319655784856232333574146314486029699952369350704464848944795871121068941813597170830260945613398559287592432579941201601526663924856515654174691898474717713653085867181268718530346249163521715750848486139945783581807182912464650666788639936553547003822660912492950112592380684837094059444510880613245273594249285311096485210668508361968398877438705512066636024266964544932134984150911427910777999312980320936172007275050678262564688825978561277228532799555146328770348680257649136755500761687331284306345577543769995892697417498376122209613608470735960855066137255593466272792535427910338599289459514502165550267370225549359456198950310351642844077568671821130666859637640605570158401476864933651980186831842332085941796768187284356231868072619681941321660472568917105666474496088927432912825871845091110009612721837067909411852246450098578945028899584609070532720480380573738351265933462500240285515359426204995529273477888525164203990835071885789762838230391941048709927962540144536995714502872845980398704164927288790057656795164061706332468219756055284278109329812684481164150096373441543377593055947873245799395688692197606824155003119918229665683360555100756468249985128236672985435551108136045418052387047220635666921125854700332033365371790673488988769696644487199609242929843829063803160447964933824839079216026418556360317804953784731206822647018757433763993134603123444239224947940867505098647721023480109840183869434420602455707414014994055238027567189090661485247845828564300085691620736168175072632204920661925121003855502995079467820051284926159815207932375071377772653377349898264894715517592121384232821412808064828691077401956108100940280783814179329787065792871005816598574778762821012415880322280680336051333961682572555651097852518562318194267939210678953415287103734433748180379770691694369338226734444324108089232147030181205275706823652205333601296739456005861253526873274554373014979751262767070721275429841028030179036854952004552477857023663965201214090660460710737449243808076958650773982881073131103460351014660600155225206252868523332292830953628126805718455757093622493362792209375505872563426968873411848652540591346331825953606316022264029545803626753090764099632001605622252333326063229495898422755843896725268013907540157736001958197735508798593877573268675192823088409010207321966432141568877086735012834790780955789321993513696438845701824957614753084839513340808362785054764715828272892076162916060307877419519483392609511136770861677842326307330454671196294340799043298768655860613938437468877862605506683546185796897651645674089902393245068165254696927901439397140081446933385806464504382923021381393314775100651914598938434289252527969992098450877446581734643028478171405982732414967649913419934368727646554033631997217722789622756989590068823153203687547518555913016578249815940445881103006273264571455511573161760873967745206394354871933820906849607392722969563004481060719310692533048517526204043672366180526290961335402336737096080044292583824582676279398116788387501482395207617734668325558313188995803097325447819035120247536744630899363378378581809778110656560252372907588922487091824596576415199299346134940334966887392448822487641241833306865204728858908313696163875745131443383627529689541314484716161727041723066679614664459360082350835899563950066904032105644994661435371902653228255069405655517679224579590196124065965662700400530135297487844626092730315556388568176300946915825897858541231636073267846800174243926171875485020674243681932967604463710888516855520150754667243316913769361124707993623294486629758881108187453148969142784286424072750632899593478966485962345834462912690123069828483522242247682516627234290017323327740119444563704506106935616976938977661208980156429048625443628643557401922478879341690410331363428018134896131951017222765917851891651135391845937884300129200670544250975607392093903861839764412540826096887906748364357020600074211891546572254275803946179634135386989070243603284851531720164275700470787014246043583168839578421077178912738305746259388111930137272569713103410202366634162104919260365239010646013920656110628613237312954590385714188681229191420103169008451026007254575313375860305530395944636278440345377337237139577021658160025648748184148643981764673791439009083323344191452852319825266184958996002217554816228590398102745818342826113078073438330972537288948601652287722029428235220763138856835998348439856462578120775488771704899182955787852939879425767946437787382217722575741948558890656256015556157090082422180584115489839525555502331812993409929722794912668608721717066245905981421631362016411011846678583576912710736618556118534324724237550251995216254801747046553999336202108305608813822806344429381725145359105012294512177031980829244747095780545735679982308233587516703829518808304474710227501956102628552273849657780799325028071324557019460850439975215606514939419753943576058124044334702543410546530515721255112245984722944903851181291619825696962357682335111865358703032171337276462484419483789913316447752283955367219468541663064829032908543991738116202518961630378241847039212870920906956837363390847985999152320137168670266446179633029786115659843838890469706938752597416001969568214553454153625373077563456165491803928458686418656341195806304424959728895871231263200794104352263852617505984547313451126437849027743515330582029926017374332502554814427550976852972611993355812145706163607555877708777432947352816779104687632813184353426415915545208238663172727401467216074678859593799338531138607543335964526861930155710623518556167940795964654089660745199910836428269736625534854288243549757504309014366674590044098985099722345171497516644893715874052180447460837166186188235507301389146482641104735409883317494774790356888686393097196033830879510912423121964344657736796701222150836557488002618449479559398304905635904424107251451487500202611060569670306770281206838067413096379582041852609825561019265657530063895886548306769455865690507892325084561051297310605858328946683817633043199861171307560238628173849638162309366312944088975872200669265173264642642501373221914375417057964802819291090360970663740009218531872885297351966272540442795327857155191026280774205470924344313814914567402646181034244983235718770305955586145044019788815752816226905210186220549963783375417229627795893221465722105191361822580370348214478820687061032943323122918095043640706140542543255071016676824333744185243859961210687836380259622162390509482381740817873298119853482220024778126517186706644839411139636751251339564763892058668113058852271714068452485852312054193931900167802170509441671085860054519694048493557398422950660606078011879156873278592829099359105305945559449991823380227747833543752553425972439198531961234973125157948246287861621674469534468095654217730617496403008603501025261636090391369951033708388366256224657180139049586364641935344254273602821532121646373250550629947532781095395809413186887625941634066086039798813922679534743065339179245097669627424601970949060619105503843502448172723029111175774907014046621312261070647532358989623325661262612902642705269262178745023932029505810047952771911436169730366853116523529879555540226388240685280614396096322727877523403626765389549864117985754148483776598998848908085011096895951482519423139926924207423972534736848906264238932456812487734711411759504748643415551115876563753974747146961507212533700440238930611655809194652098462139797478220278428495247270618741320536521891873402089515015255165952033465176475723307563572214842494648922736894841986617784480280231252333147288323588392572835873323370598528285000628669166601437887373656279653390158545895491261683848904775678329380064289233932393569360768798676445134845411206799349712453078221095599486087267791487089903396882929963959353311086793277950860634077350632411974644189763436248465884355039564900505463943124513801075399195106693103526222914753229283367651427533500824705391523956139149486153773353554773379005128556177359500280558962872522210029188860079137871772710029716129758134970638454562525389227223517457844296349327935926371931243522181689881845420290599293741241394874395877574281899301478034581217807503955526870286713629090522313540560662692308545770932007673761552472420113637656007436928650598045272726878086271847613650842350808688732240045429185899468566797439205132504377339022992243141452642039610310629344707529680500799829544333853169416337984323468792473105883964202325481867991254761104894345818124328734421184557161106330159996334719736900637873864760611316837486903579193623497639919894999913848291816308461726358400339570202655263720980515504770514525899717504137266381386955629880277692663237741108186177663533759617892621255879708026516510776456790506431506074514504751748800887210104061021566985111424506332825470328816919952736185771897006651913532392201653718085192863040429039825136635421237180550865296217387979651952815058479547734063283978831570715355290131915135785114631540966065943636772384502613877223276367504874015704020899689805906710212450711673877924030233116942985413395976192789177408556469516646451513054465582169671763325289897126002744598670053795528318637530820127912641398478587408297161165102465275781242483457697995049341657106597239820840633126103219579121187855149714192741603630891290256225575822516473619277032984747495026999484316162934576433720897324009013082846531108756300120362111789711384566705290235630439770528081109574578893491209221022186476007853004592431706743487604688142542718969123407598803507665986017698736987687625646631169747760892262894831837050431843833934830765035078450142733008398919887210893639404123281342885274285443751279536828036176389006827000371962819829548605383795191916984717025739417708620309865389425736015602840641499652755292767154088337810351360071041651559799157881359239152096266758753830449476911746140654157851003339783894068654062031206689353969124105393062152914601810668049495516714919320415375253043298863952088841364233770446537226170020241793345282471372215424706943532985238010497730726981979460554836993741744879702125447007784091068223457217501314778490524691781210378961174864153217810365370139242988880617268500769723495674571270889931226109968811939415214354760945934349970775999838957729722600000090559853335577047610129572287471808050265221355174524655151693215325344681968655830156174316983281844939004808633354634540953283367973958076101398303469893534749558480410176320616294904800649452121845471205112795536789158545669896626581060538516148460964670578028041732703364062120637892275036746593746543167977365058690005275269169184812673908251640463969794713771218517437886410328186595293129190045246871723020998422582929072155024414360195727702023398563834592713893203779805721654733350503761723766793110472219827829734495507579930900038886859795734625996310219222009882182860481105504594310866912420372033154357587560452309860584355657355812009122529198047704895316847737793311145572007831244825058043032535020786507842564480062586554585863105370248243215426066672620864650577444323106172223096246142972511325456250294678381394146699768142445570905290824888555626391796065229906692420666473351428585039287155721420875262994540240821251298578539669520706868331329410869897971117104280660512152853507386579943668712076142483444681838687395164605586792874658072078698451961422400147216390069068512675963682192222206128415437727000742727426942848448401573365898203965484267935978246209146325702847286309827459000798463477232372570242556335211689447323957814712910637435864109784890039711764193445937005964894457705130019716947441013335688476234369925128511892970818729098893848972608239459126981989835341105055446686215593269235954210425723245402773856688909481693179861846337715517701613961886896318494552582013824991324399315944211019263112930130224440159646752791123093966484525445101796316600870247632621913499796563271442331881114122702153307723051775384001324305217311627894901069954113444883165030384151810281744710761891700014925474220939164621176495270073228829550702713829324165484601589097054152246501239455667302297599100561068824941127871931484539580784052012369148951928298926495856794263719130832759855798112503794180143647592675918263637417909622419423332362063907180474016371089440189954032528721692048384842147142472603096244247776301043631762532567568239354995627549326944152559695724082293990374291963758743452090465189532667413036769487294743637490894897883625155979981786980549742921034214160957826738362887459525224048557329130592244919784297718598560515664012329011398063869150264221738686328897739151683678567599981941066895116983109608764008934691677857041289470231353956262935571522465433543131005390149148196110686594768137088022483829929267635550490313431381871879521075341815579974062585251366335058441476605614191872776943809422551076485244585645300240368635120359578627884680029289227652152754161249769253920959240663544806782029654863744388422147798578921997532461343278380903939316835592984517952645754325447016351625106758551585633399716291072579829411631961185838477265863092658465887651207763856057818335260155189402739344551093159673143151625223941205379661260973170269468467539936421124437759349694807471497031777627712755836224019925179821364585501835987911498767810540411748971149044410766058455812962224340654644043009669928781372851078423207474026491395785226086034711860322008276077038997622971119930956241287471129674869980672236545657862595919850489160431694024213064244062513109843960404517773356800993062383506779087850279669832804280292335145375823730742564649456105091490539939833212254835439536061349194103803396122512999033487831351862188539409759821879856423483101406856529278354023902233488589934191584644433900067567728868465999409776529075628302944389121047184718120695792774222964156064162853931098483402419792199734862563131891933987018371355298823986730666152906563752189705666732958405092718892004991814975757538667746558104347174040442765502448904174055348124277273161171839016186071585854361649027260763870149208033092229577210442123205795404299790919267107363514902776249915339693838746207785428140862885682954116505223299345504961468259834517444638770121790341769265083336510663162673982420632362978733080222953190128325976691874498781699705464827767070378294701392667238770618502533963728645263984539592211959406166738648297996764774387377765751122285146238702706770797380839641093592122768745900752847792823635908640840364836226797616346187861728506146895382535645604153201108621443267758829326030606074745723448266103671201587384010704119882585634016271960532295729155474375058559853711315172144511253485314395769167522393944140429058147374709685434392691885261736641284159190034041974331749389022798475669137362205540756534644251139830035090735255422893518330946381105898560372580613548790457192597748294458565073253126505812485112743107157666477609234019439719088117496943729952237463274834863261178641266233047370641595481417557597897458796943016545480571249034068107366370755935476626413841106897861569651664729421529567666871867877212848280512603086744984965580290115393600713953102408637042194359850290576774043304242079744685878807735530162808660513604633759360630171183038874020934937151885549302775575093722765198602796276500125099128089628136087018487822094303538053220338912615242905741586256846136750292986236956629895755223919384067866697068676860509470750502675876398607944470792121989577825719867457701079872684673579485954467927941098861678352899761320517912637064970873221584097547611048094088850744102290662167562462297825885607606458219616009643314378792400461094524003504770939419694627726483530653579253037879581629940794223934658455769159301051252719391084360941032098631595009180063512865643879714092795249110682221173284341415792559987040322512835579568264818208594264940917586642795108492385240901613738739006782797409331927459481367139087996951786527850131428242770820388208603539202161818228980076176690857397432769419337470238597332196669217124360750753940750596538974322647617203601482856483131568066116254977943456118665382810837755326219233325038105711726104869574254969998025150158133717095157949348968644025317919802613303057179770555314795444254326616321045713103350757779871819627546432432593240631830605218505867191330042341775026365062223643801452108023487958749830674182332488005563357347872349113207587638860928170411148431463396768172978585805792387291701837545673942151357928008754627954438688342530310836052901849702827917481169176887286259068745330302546676335090217044468929913726077770943682054983434159644144792857090492295240336547686176181853825273057866747747205631620331800397619474146067142142349087389629155956632774640660383916576179535401375815190243105681861110193021157351317879786955175323777544016667000734970737238726157676525571511244050007942759348459223960544393094520415718929874812439093827373694795851882158732714448163281500402159237439739644260887195788452025417545960407016006895935046475046739513990915988653398701603614745348392517990564578474940070452228957574018309896941885203976359295048318519969933936222292009241370479533580899073322926680783816092258436979923710411280619868047701753109587332114568564135526696462465593088900775229770692566762147722126291894617856082657076072846676116568831856639333086283522678722978320544963921170168945456664891453645255040075236961691939839287980659551077980796260850054267110552103374133750620754388668590852891421222796404897347463680353201261559650543100437406730168016775484652541296758148992350758118363278202282401428327222194395496462442627301997271874543590632050422697683089731959943446798525352442065772100539967380691778146863818108908516098816989519744376010600948804040961996918055630288460829814363612930328154379793022760297800979554061652819252636027763970321536894870918275266709524074099263897573512435951101422573469728661487238433028952930182944790516882140289820379470492929615795481496872962514642258083019820243496035367537991453757760812689534986724544496640500850099234633417818288002157499543043264775695892244053980825948964906853781519648859252991008846553730177520119961306725419734964636150920558286172156089421275170808972849798588324671393478435106553429088978184173203766303441748061626316483963602735049136700872150813138761778884852556684138983387525190047405393524106986778128295478511972321536927923680558955449979952951323167842006526219350763196140990780972670013598814797638613657795684688113233025068919358758477280980293429970679276919261865662413707769595255260569408515086904571622601610718010894929935635939667438916687454931038836917909572453614541781452014968086976590416295986769989801320859588657580209405542193416056397953088904587406611998989556596369584810327278926172848425764347999571801946139927525794297917366054088231868818572784676071891325155330026593431790515608949333527147998878161944641714811440072729624616212424028583146631226524848600459005688265270323235571975203008148076800958165962266098833481731156861923909457940342989824359255951435408348308776424389233170124775473980891208867379738489364692431958500964574852524552289521687853280419908915025418626919013455577851283329562902780659870328747346685424029436620946861920298229545616837882526522966599885452859594899514492214358155862410175853866752801989162118817580278669291458306447733185393777516656485667275040017924321683231539160681127076705191095372672388452201900849651529696574067968382207862048212985346332304613543964625223952515159411527905231051141242453638401195812463276963605979159429613422468059842454407214981118934113321105273470477465258105689760618678367579470853436231933402705025479094549696468267179101916905543510002760899769990932555029462353649507765410207763483769858548624204676788730641630005113636232999565243998115184873210409896083928515346315697285722847586837334437751536745439266619446978416048597645339303825210641323630997409963893965223313993211944313217962798692654578110231873592465691521177762725316614963565817949986316428670312159471490942151641621692237660402749089169720405994107140713687515328307786514162806358298062058104891661610162144232493346566374694665570302389325065154669196346803628957122746466372702904653019191392391496957990889987959209209398664792307383785223709721444026205504084255100745477411574981681394905405773150051441293685044961515797665132304512071238797285825107707962274422716714025308493138198763841965826908783935902946251664158125994333805012381780970496082932207778887568903193109482558601084524924353887105955195646712296760367046243174526655919984149354956444536640013901195085264188562013017277277268402811499428005016719402072388898313111449039663692597464779744104116581419312496785605852050937389991802040291003769875816267139132278494636634852453560339837344761540916961880207427802406106447112343620345504769622964329580235263372571657138713941065665572413739100978056314969370523809860614668639371458448700729565331533128851200364699527347454960823233324158136162452936355958874840222527707233411373283573689476141166171356500896802659893171896232803748266869470322569372729371869786599181462004909278865861392284001901822538447895662265575821597532320086765998931660677890973395317395302846437236350321061888076770242343923565805237490972087674940662502822313859207782158492753938809749020221261073045615604304096408245969908701689559280127890041240624560885253892228737708224559635694745911957927173621247849721739574780131016908281134690440228301792020237730905809632347065231394220989753074054003268415949634398202433046955364781664782022492246103532026113047660210455931901756992793580412625183867087085634323054417453292259409699649430993627703728616969589089346550549654050829186395726777600516511187310169392009139455853512592745957992420448239968661198913368686131581807635556513631593269110389616026624701687305799186288978452360001212510605197664028812894849950070767660213625900500002055091643937780957154273978819968130264961691011596553254537431463179532253614420829364699814660656287338434884388752017836469969570822338336633857159267407421802568300138667926632002636743827669194988012040383879556385483719582446954668679143973958056880911306994524438311637965723151974218222129501622574319500841353268110923121327264115806821882384725290782691418861848057093842636829391640202477624344702981019673591107748586115626834726102617297496654004052653093910406719683175957718442406398540660721221018737268696417332017777760002886893962222528402499300125840893940624719354649845035576979282338760966531897651311861357838896388459714590402713237467200326740915166976266308175640766788519853180732999851084573895470077520617164284048966493419853185372178381435310673819434465553854651181038992608038471690515137437189081635192779238896337478578218087261369160410109337935470656686107697378635426403893462170156925447347032696285538911038040075760369308458542945876044705653172013805953519792173008969533035797017271801562507267523143041133613732236879691676661632011285780759162129992156240300813637963794222781264436639661167598523421380443968427285636762423508336772882391181960587123117179110347584599210289346673806769126207542263250543214929712518514158910498458991632355409685671424933779217251132119008864013741630134143655580472343037301281921332466515890845616888534146807095089187130042933639859798216525407150108935111775426702912180913539647270799462655341240853349213669042192672579750829019193324915995387168291571354641294933154778029767560383835849284201446025618807509736952261321587734934639785553932462584636553722361239080265840759426227506087356094054169209756396987603917229061862652728442374317717232453666638346979102205280012915254753902613247484963941650975953163531983093082935831096703718252035230624107807230477263956413420168033235874850426337306428853180723083538613873461217269944376080004225170168125429029938293712109449956190209260263189799185272267368647969512193121952451797117616418233422357460978097191294033204081730264637368817744530685678387164742265235455411461244640962065274319335835239571907265652460937649826554320161032024399297758977077508878349363264008219696825069599255905525760767099575728058819542258413274801323289074808473269344503771371575292815998081295724473766330427579885230806385588575989287233495485984244825007944417524586519416106371725606864116909242974009550228924304935379907325271312866874343463129534004258419656529043278875236857481935812436716932687896743202455791952081075746700086845086067652572485645806644467645753332420476858393509989250846183938218045857263845976373192431172799921074676218707925797502068721196377698115536584175147788900226537029835893082229883114006703307911117473170725046834550299461792261627896064253217341415733897525839558120652198335522070713960545600243767559909384892944001582912196998671517272162310463891642344145179393964364898945245681977173979426783091106649045479051868134776605502886855949537810920749616478084038581072222560413233156171433783388649884621700188916736140018292910877571152000159901011037997108580788171209756502490559211168008840487751067650727948412964650622921999467549340175658761609756415646123825962804002612621353154714081288351207888558836505204005755361170548731659055489004786455533341885017330875379768121674720713642715012792694231551217234804540515902196721044420385063850362093847957549710605097634122985566739028776599785408510881643999325363262131820830392617439416173163468529765028593430159778850684505489707316771884859021966536976734094345495766271326857369871816741079979471203427194775510007876061623602762089498920882068973298469760890440360392223569902524239528999781406471554195983058104828258739347977106455399870380796068929599045774278724080473572129692284370372812645133796786361965935393591873606962032232697709397986305680550411420799138644787911827451469167256387616236402965119486551213895988697685614759259894805933253413988905706282789213097134495676527620442514327676729503002646173931181382845912104978706061474554101532638129041823875370520817875529036922142129012209575367746482430959410210289457363352387892910482787219776253032600267887504083524609019272889607543863574881214631414160397135841588504828836838923081148770019084281435208414172091290207646500962647005530806155751182946493709402911191383007467418141932749279231938053065515898240549748898200237026720826479687510468029925223821221194535203486648673812740410571568668433028136855922157691680275581254954308017409166204653997795475286586906996309777282169695605592827554819404657615558135722335588421555957233548547367157031222964514723912323629034886970391619939929590454665196392185395482063456249371336580659734271438762299320944800449247883273093704814700960383843714127735603283507344845696025425838350622972643371730799707554432293563565660795956674083674017796009813819440359539911252935409524435722170714246234185669070204758603028145102988762385969064844913114720221857087516578812961353748913828906647701335977520527042551530313375710216412768212762198351091929603943730930071254071867013474704977255049023702049195516305972527079825497262309552839519317574742933490353111073536710585271768027392351129670535122085069229058449543888025744112579111434276040767264613319189837205939303253753684346553190636029654661831462303272408943490145300792386159183093803498318418016186936837900724302755478492572721969743423351053862625586578030108198958355440125044439442469454894583906013239569899512912851381643221405617700715734721125910065791540826197930629255793302425060624216236998827660785735143761504779131738226205386593350226404131265984724076068413483375592574786572266348422606520175179330258766429799965981832302018135357716815176116444013038294407245147709379176597867632937206015200324181004132374847407860074631400355174911263943915116423082875675640315135059230409582973737929155240340458098759645898161599306749644346374138296413389556594819546544353840465193361265565531354108757725377265185901025101951777925513850658465586955313537382215928206227006200061807634071101537620646292251316057469105093841306021439726774295463123614662289428017866290688592235575436791591086967710098818267252517997879042436716013222918052301550673341537647366010756729264376327542548848586996200320171177370243840644901844619732668916467645807940504084692343522033629340027803099233911820151295463893297233995746321698093555904578331998389862851212380368477264705194810643767502271914712722165138520736015951230368554759572093127048018322838103942345984854231647216029715297738463471119072669921406896572934205842638771284793758217582834143913026690394627332680210161707357223444880052013056816193020770092421917690625654725345938623089798281854721532102404256324537143912123558241363414589519358746905469628718272723759683934072733877886225965023456293685027751281821282856915472513313599117164264968613489938115380047084578475333374974671926609421825794906565053730065080349784536113053902836411649936855599759574668378322065073079885770708345385112242034108673607999084731563004959818564324188732993560717272025060336267496683225687886142533429498829518179167268843044056633061783980476742097139124623997451022699840384453104783080644836388267482081800545681269316014991400384816744636037090146651944323530867088757331922266381186683472006959266566838403288889589090211437416391934024443989629500522091398011331250792516017223267672449606988169614115071456292485268991541310775210184362537700262973262863608096789069236757243671057034266754239261725222640283709792275959997465832211345149770215651378799685002473332941996555606706383340318611912793827741633056394675627968964320692144644700388992081414867252365076504001604720415435949520620219471798680828496165772323718207777804062694742718051956501022672931763184194965295273780776544248226530143696957739223253432468531147512066565934468437407336158350029665200050799924357402462625306460300246644607797917317236749914331557379594079241528520380077911556211828707615146117745291223216512868851176431999876907269935906279189999064885912812614021081322666210516966131891048948326228887010547743052364039248692320404344549604319064735443928163303640428912584085983683676792384168299595171948498134646177485821011272723894213585492602181754101630442696530678508785617999276098523306166453782813355409986309700136418617959489565343040784790732742122751626217069864435439670978567345341137212413662828642032383256403444503723055896233260132373828322537599948228971013880092091265787245157487121238123791549665006852738897149927550343261253922491818545112956248188372611700077537777903684758894729650825176862641380780239678941707577302325781894329952257804572380835729445668079132012002936486336213039205323816114390850047565005075287607197997182294656613853307020065336704025557374735380020451526590310239224999515382524144590149987350749532972699480146223611234447543929895071058141635242458309175572099505204759325057613662274575696088297698595026431744958082021807960714257342479512985118475612257141715381510137143729263998277448216334736476780018607970184539475891550526759736335439975688633900905355462836880523807043175111892227467652105449074605111052834796858784580143895107239921759680471265570651444341616275748574616709283327330589727665859986564371712955392724792278189900160887269802256305336466640880306284292431319582402741002602825748304891353721626341962036270001914856919868585629393836236583112887870556186317464105223941078621509128258407658123500854009779062957571966545079094770630647200421853550723904982586361581207966209903035868670108104874442503569000056286927131936716513815589697806184051299979182338078086544929394587482658973415433717327574259169818852421378064612089651698816753397245012275860786519597334843729156251394967986155188439214464752142104612970807262583523829213704824457548328277104255460785330226827617642762632231897021943536731516054404544748594166930957178918654816785346907612198003687164028963330723932842378159565700117105581580063046043336115339860303990212602565872480440287709962107598667839726182906200006877531668355594925165326383353651646103097316195843979212552228433360409502561002635932825602021177847104229401985641867467256226762548040492184625744977456513494756434643459466710339657656974587107051127933957257461137955061742558743648555606067582138468790415648924448691736261305040752095400356339273259403516956842818324976385380960299677149826428534124614505915237877961951538043531823517936378743175402785345504786391550743077853224166636421687576506479581024678335241295307824538986753945026696344874046039638783550440143694533312563067351535679563965104900000912123638448744092981217656546858186903442280447743791106590691927735990173714845680338127167095159286347538254934597284703982546478245757525214896272907469877940238929434269639009295398657660483504943041228678059184683228687798900818826235279517227504853675842265251290448799280555470754831287521212305417793853544526248827378562446756759209767240703501608699278209592192726430424537880289499171319482800847939531798247719227725457405963991418047575083643934836382152932007573600646464100166612903312274632813268686147489946788540577688883176036467577414289568081974765319359966741764520023971858274920549907011281272469633985620874158222398526587402340783673670313075191787259337265992188819341616635480832461385636992602719644548658413409539440307151012628202272428333525581194991649762471372924157504361612221771769403813325498340317726427202819472248499008322026371012739111270342923336414043838074082959842233061834325706166406100770697094560298509422252251041719491760616573832238739544018822780721231786504767139443736172729267381774509022257799579982617061152553794727264731866108940167388090981706673188057627429365450985602692485964913212598688903581613032596204200301209938276551337057012393915274482686648895238168532320668102820707377670982903908806982208156146758233386178222110086641786064615371202787867362414112182044168568748376537171648198530342947865594980813996787537182271813067446045241754255707895293789843609137041996380812506024458043940446815097575711329818417520565179735540401248678743149024177571365556465101987803909668946398675721797409171375975702109349987434392088248911455332548986646127538038619566857033631129663793730546768253156772539074030809984375544098018524821794213017518793914540911445922953405358860517879577214544046006053422086247002496679330867384146513169092686709303715000553484529274903494429781420245103858712464558667248098436737538466045289487270603061986085788529923816554034583718371860926685795300284938295495149034691125910660557138559186525365354129657170125835619865394359772748905173723755988468241504895330291224063594701607035824536089527603910699233348593096464500931859205299800874882770060498098183595362609636775335744575110541306847805355218016938787078331038169586179110235910661535483085558869521957526494803884521129999757360234481606328359947235990636376860352621320865511812435586351334458425465375314437770579940283870156452873248159704860185358186581887951856556926496406284283590527160602561579778155242029735750477771981680695062198623222691241139397324591169284133196814140085684414294410847043957468488729242447747325066740647955546279367416256686365603923140413812411784417541135429462859561983807722623426123537703011312927042019903847943854744777255441773484777344502927734356187367561606796753233838038226623434657607688077523517795933767740532321720986293305347400833321953345508301295691483123134313597673533073712079289904114332754395647991084316085993095091353586128843799119021911486473511733250362958287252599778950213859828487726417642456266465600642885865906594824411478057521501747718793514874277370950944705660182402160374145340319113841366576547421120192329255702899753835625314617489074064617850175867453524878515087602407951055740553672677411204001132454867270612399346145720368511677060209058708276606499840756558768315372064462676739041115025664410927397074656809322072420472593140928454157632652044251637670165368983740241080224833545141831408055353629723971202089536759597751556872013251501155346772548627619427633183974559892525215577955013466747004143319677835570181390209382195586245265591261092582797114937806437531850957497463328549194512640358460752664705678666731743837617586006749173972145389625961320199403261787523857619520616348724675480035483099381072317743468057917145964089801999590249750812845931011975500585075731486996311590948811083259185967679354256016170180683670435465549438858746636125287211161898480126077811388515630978063631340578113893281718846662697512470215563566350138427978623691829584991114919631016966077605579750308261771808383282383653331479941661280615126715676585688159219408386851134928404681931670098712102786209977332382686354935302333718218739629371586509395706722835401625241571898145081767660499985008949797651856372984387649719985569542136250520908586706539450381452479613781555565610347745369771515075109594568779739797346044164026183802738598110966371529575963778023220154330692355946524280752845134327016680446450710101323654172576945538147135384215221983439257339997871542593725773806704970937712151852264615806262789450416496378977090183853039774193512101659448782682796593133416461577715061278519417201464193871479971635515692684433117590100482335266584514808460682749832053000809683411816647795455174939418921175174115322423694981198500123712467731818728020228194610025544436761690566012513226918237246535803714929042464553957491206283379680391678191032445976792306557144493497751177866806766996500221223538087116967709959951936317386586193450291813737680429081305179000929283030656276329414105305757092634598035711346757378515617934571927983562817972999868939326939785050497293443147425040908392079189636199294786320505258070814104983148680367315652137134480262129195480770390610213691208757587622347311169949648737666288452203807632299419510325391037859010244276986182691010884922958676712062075715192611050325475717171207496075450305038874343587870436321462898173706296205363313917415658689057645586493883385208736207324003125223152545624581317516158372753151582562475671003423283211356671248424455277512470921639589430707582732709603509147473393385144135969798409761669267127579189965697716422968104025738363395212429812644765625389843628711002635915758871352569605506071622802174421599478191207508385226532492538437333045089695565948858615740819575005278777686598942063424896439403021305177062342529412615971865746414906244474045689452512067272088808863666949492239974738367914733919178848609803013952818601796365597309680926863351725816573431608342344928862672023500227911891165647153767119578742518309767963716005361878693705335073046276947075720788412897507451061213627198570639610075532335089069255673130191107200005384918228033151569212359909992313373182541618419358518056840893475767009020270462876910262392309709156729639839086605730874508412349348598833459406967403773632646246909317265870035044518835919739526298744759864665443421406503687337440344504064191641051137963214460150546340928739225352502246607481947258502454221512843808032112662078053489121144783699314448006139590987028255921180683690225661922021050434789401184741044516184552364252404512828549060018195935117284595868212480979126941724649023166067787826728380858453359138164830060458681368622595280027321714259957745468780628429699429222927990916125079727864694130720367010363094251367073016844006766486839119119987872498968588820308764508246173987288289271987938089211224843201257043074715235777217822576729295224809739325020938937331097559964529852285177767538311703145343139905639244810087643357461588252793757441019036788993479844458322697343060031014065968364102905619307960053009509218274682051311982956373903970049451526466206528474487238686512157575232914924280180716638447862696437916416057921403032546197508771438868374934463321930372578401421435259542406438110188735204543242290104248594048791828732710939706943205754502171068891858832485487614076316729687425432645710997211261412083448892310365842286901850445069865228752697774310718059451815295851870643577928078263475785460746927660945892601944522746489755909969653014243267783263122617672149936765999564072812478413264614171301713640428401014646878539786666639115495261264990769088264581650435553086312240003338056661972580380986497864184314980784247597082141375901388297578676727586858820139727764058847142464252679902799301163666879028993586525928509926472632700169010384835784748302229302625968814057789549938724451103321001554467319054421353542034013284420921358522407330359610500949956213235568042187439040377671474624577091284710797483877219974389513846112898974229341479095289003792164438981931143245816948085202820155903747986042978918419739374688752715569485177654225433356347244580355789186577188952872350076112598884404904800872804182931304935054735901390651439509405793365548175142557160869495919577621289678077190560108202561609997739108295179154655737917323596582381955880206405823817688764686020795117084329960299402533106526910239726195671448289672118625053238475987997142601394543318168039395688962883796088608613040344359309445481632492532008254035818219231240421698494022969169679810443929801166711916465659587234543006837644395546082432371144798499603633879270331139834525074896153040967647999475065815161064471010016039063984754043879979680732870782414600841146403798269040939553974131882019604971442952848678317001084011916051969417994634124799731091771779560095183516211361327767277762944641474679481651005201111829413337162593511988823903968096581237745104321216052527766366011286316840925211009455819810688331794888798957520928588464154126662217322479926555549517755237656825666740658794585586178441662800149999717429725977297301463394478983190066305313909682502933225949370186560131897998557111711405547896934262474584358380617087605495336236001355803830088139116562227782560166425976753300433525597845995152107098019238775239226520290343118578661792958571166004284148679401555875792103604998905061551072345993202428971612611152124156229796872548334686679640294876235436958621747106008709181206065624726254285526274960736981564551910749983551716428329287851147197154112399411147273822975013082150513874216806069976455312141925125360717369871652622037691649084122246891337310288852400632777433137690789143435434966543690738819916146310922397995468709588429062774439266526726118240986947996875726646709132901644933184450933060280996945313888458397630947944349734400191667855330603970233800737678319767204096493832915005871828976419119637395159058082363149707210540008625740368689989974310457281461487904761789484152405267324864060306284576623572924398318767058729829818507042480809892762500493197093887075811581868498092968145988155286728500651452158984007086472243137039343455915948467169582625932440032558169484284436846939769447279401195556687517215994563398109047939950570638687873419371817603636064686593264084036465106445621537658802529511564377116106987254374581300451124854610296003468804822345675819166539977853186944406541733323309880658173494009822372829867558704684033366452652747908286618776644602083313030298794213966927692243774546332750494126618587114728882427516243340349926460321892993209469344210998326923009503663032704921938534160979101971053048630278245101421428097034332192041892301793491728932925984446014539398538522939887626514746010450946294328459282863697458937944390494552456719968296548272374252187669806357786278067337541409620242210437915243910768129616338596253448090685147514190025838285913159839158631393078233168856431234041378219430615874114836133520883142560142308552029807128010341139947949547622507063361448984405224892055928722892068228848416198718879549278232505719387509330544123866156843427571142121187921772715478601176174763529163451458612831663194765184043111660490517550150282665352052898478132065222182299549829758902924247825395149829146582965879279416841419768849074310748991846743111926613051726277078994362062409311345007667569287743491124988819251633534322800440257368942799914372010548008881359871512150419399566777959313376610667118579327961496783653137690137006733260917145523780590253690142517598775365754224123771218738018906643032519258223891311276797358586194679632744667669807129120372039445684993885945841269922966172530890214838182531060837782136904078418516989457530757341685089710782158696397856849896698347884767730398677041284747576579531862983683322027326094072404498876665735876542189191088014653062179984661079175345924331857632630898506990567771411261643508010808057136629096696019592047754153308163139499916653787051577121494442214781341145709773178331331966594680312215363829555464466608152524408223970007554680706900215042193324656643445627022093794471154460520280830177430765455208410303357704563051899594290999227361539778519767922748961664312986396695669777080432917692374314837678151450451445396396698415151403288922925706804848491328901360186662633072924409487253238554894689281727377295389955394171734248794714115608935028023413860534209654117171878257449645769285023253792310701305156150255455555684996236206243928915264894573041897431157555713727671573159409142873325428745228779514288830133091550834969706837152112495962663344243173935908420164099703879837028856697163214238391847051238973047009081896651831377833572590011798960619157529227400154185738199847307990958853291915320659188021989102517453654387043740633266417115820434054166901950700243516971254083399783311849551084777920615562279258641134759963615668470405544544273026856915930874605515572511618904279834683587351994839679170604741493225483228966420815189155934114464863263362965965826430265960210790600327342083474808213100147840060507268575881140579636113190482487890626914604212611348806009121491079386609577965523044130547458641531609717465110328657842989449866244924936584308779568387467777815173906048528847703063688819239594577420445496704382476122798978888525896359398222037294788444455437099388853809850514151933932830460481367594001072234421110405001104557198934447357197870887806383625736098850532491012986269470717019995679938150853217611826543630200825459622848417285297224629046361782975041445420662672506810674525527418508897215456865099043832845337705854149044207729975282005474065358004923945489284552681079610579459831221430664063957758055608810640515791472916981589011487975311674147909886858453352208727048683279793740556968528855070420492378555617679615644288773382260091265026363551671293445748884670907348945930334959443468220897750748483811527137631575212257002668264878794606196160804197540521048905944293477118193215797117778058423267628326582922451850382390868777578189126167979820087445996551216053862389962510176362333613053395429703780269364256200640835515349880316024476026668009176902017147230510103546356409145538990270997524792320285704855393246736239427852854305592651508444181064281330824597330695416801897906188826136882010382638966017220172563508838600063208016675545367247104536400363686634641440940487501022634469791161091315727945138732804288494128543106820482525330212990697404955052486697568852872499540049407809581717963545044722386525478905786288217502100331229592151184669422499839283051645800958531611305860779224948146624326324103595603438760599980001168921924777589229734839166114097778515442950703148515860975849248255305503443438397835215210015745113273599351115635744657674208552178586167058661367481640987642235447156452538229525021439419668401907714336624469315533628351761525652960058266900557023558458281067527311071593326902651529335492050350341590137515714296522742250792341442886163724123807210357785798532331035867667036198974451294699700121739594025657255157144129561142285165237605571780551018935064933347093084507605242862848269264009559622888936331698184922857509214005145692591137173837247062775026227918931256999330505385084471265894569578286753437290166080831873411949887568674994826558005336058898656676280814389319024673241761509942188315605049500998271893550134006513087717875982547068240058401129796329299253003249941359596331614058279072658008720363731732027950557714482096887892888407225332007939388866928404899669688023078034380666318385479729337725493706323705207269760333774538819162979960562073216113824043832671113117613906710077861975265117518900708536275673572296402516662029281970842657381510809861183044442326189072602357560771749123772197376084335833956994293966783299752477688084637698235177082147696220871329598270515281606886677839944998955928903392009446745786196894239267033830515828232612984286399584492877559202955084849516705158522057100461250726546440690930572076779344612413055490644493246478463447325534971929480325192807095488071847185523235307079250617223577593237973252102618667772966613317968849549726247039965234741354432434266813767438266774689853509775126826458286923480049926689186162608182029207780808742803035058212125792926135572719622624853958663895786410480889991184512633261610637166695077728290984950859326149960520365161307981974735968202974136751759556867628393036752137421589103108720484789409572977228524094199331405013192297933665112715423872610865229802142850962170546303722473543123364649881552022955083097890632502688505102249421998993979841255232480375216577497670018346968531576015670217604479192824153800844343428628119602143015214882326651189511069465310210635194659531273792030313709063780805932234238285694311840843541505042153136226884651250856056463766538215688134411808415412003191499814603477862159261265553346708824912409794712301241977770948042009608486183635310631564800765394901744057573514382609906777037590405123594164158977132575532046144002233054155921512917432737204434634462958647493621753652859044099072974261238565383337532938770237394130059039159868594719747634040309941031660892770683000448884274150369958211479515566489958561737017766768196736593973830749953771240158051985617800459925201749179904177028407057490730085375142265816730375889913786251369918530522620680504577522813542761857294259711184243922712793268637950299541055777352646825290759024744298241472441861745564186470810713623272130342649436897014271714095570755937476085055643572027796466745201550023344873754376607973095454400315729933480048173506206062725987634296846249391918184341292253523006152622520114950886985257901832008157734526288212959450516021863166426692594979024243829174253489424813666502192363371613879835464388848785272789039805275536182210478824187251573159207249128170876776004160083781496325046720889236304416046171659150174991636537486134434047682603260299223797610858130514276661995221717991056024004246474501172085498195250367418106290775865677100751003141906692859971112952096643621676297586145567338243893749208598005663257379140299075270845059911280977891291089837175858439782898850819324222399204425397531807707568763795246821552289205263849433162228812550761673685200161369731867356863972209193087610377380544824665259330129163148129725010650770688124263521695435875138825443815144701288160011628567353853815663732779331469496687907075611201007145715583357428654669414887572992712608214840082872810801855015142679046507378251484306070297083546087938619285390505751127184316015841063213980245241235498177997897786774539507454644701386315817574871998200878107834823552470009253393231688858314331706950070826316456736335660498453030384849266273131954463903732538167744362385945907385646937315143507542193231719606271629290611576109444172603928371126589486695321451070787253045137774269111151002395671318306569259385449590563505809835935148630854048726843054424859836930482632400771192426624593932922125567702838078122356946085730667534059761430300764703504365520586043634945285785185955079931547452505935580349475450225069152498118196504046271894240771317565916382779040360776396699836673877439965964505988905024619306405730856001379877740770563822012268174321056156547189572253992528840430205265054881846356377995526181034483383031899042342800592821297609619044806839183883316069921470940916167426988309498972910725638815305670113401722131033586999927808140585159065372678147078895699932325575486665651473737190322839796975262941693156561690414934986600463432847163229678843635868249377788854097956899437512846965213149255172638465558353361109781449206587762935731735057629120175558888358699089577771867337680885020967134876790115396990190279143780199490384758672208575509004498146624330043843632171662062972024612363284635588401422073263785940630210211589232222924962582539006941837999801860521054561367581955827333298686135186654593517252943464732401537020328836173997535256637751137776548197510727533196952976913515494843237906475447931935971571975708052109014040539143538833743611567295768308868487697415549391344907477541781657368846687813321791750660424537177406195535235007668164687239602774112623550647815591845311640930009281711763003085166954638167561168929211071448398381561813665811036517320913939964588028935775396186851894952149122975805360589915045469122801131692888088318701834245840083596480663982519286258588393715409163109228310535378093416229372914972311945826792400254620844440973798004319680042229279028216028307796545263689899434775954414312558334485532124975623242612866860555295452818486077412714746556809672839206260854322800834100537493086273968159392399607152545202410397791597772419602826789710275672813277514584428300282528514980776460848149379044107749304400452845530442846900044778837217420525210491099401281116198209193370177761036588139266065926587006141291679322012407225585731466305943026047796396071832426429597963266784903478518008082985057633047634246225895032312752976457936853081631669332092145398865524895993214030002944169429730700320868416656127289620804576289345158476298405549402171938417129429592023859386360000511899644594462233413459074279850681205921655917644198492951581350204251219178323777675657917414598184129707911712129466660787738116322343286198551378576193880174501588288563999910002797295178535113592087745882253234746416985398576357966404738073719942082625088930064379712161258714673727724843327625178155933255620145298517850782990193162561223466273406693092626007146633725252237755440264845460289608565166911501064038193904919427790888395031036029075658449342553312775680450947548156664620824464610378379528707070065851884769771553025555837315676298838326493242130876825948977797639788756914188302567203767571688187742992990559363987139025272401287381441821425562578973923637325906052203623334067260477913339972653830355236490375001800893815692309746838977459371256647763509977006369398445782078360560310679387203371701194797537818438139987499230372503170580871069124915041239671043794120794949268455694721252260524164413199500183379606068072143202853248340353462844347423027463261639244365984035710093569278716292753131713812073124073708689795681523202310171667518709622320434597619008806604580474158890701104084246996357350145694596337629957658643207275752988815255000939925939044467541283981572156370731749705825005409723527400671344334334768658199047950198693518090989107795078815844635961951445453358000060974133805401202125683708309852105127478201350424985764098377872332213744835374108263094401946042884273410007656740228027350453243548256016384931107446364642227021562587997144283735965298540559984197352982167161255365943745351054456035990386822266795210054805709393355691458238652079222649835385557427130988442275720006493608142435037113010190399935426112012802873513858585001286038838688009453256281832172271192985284390328243222681399226608317087816981235733808756571459466087785091889641158765170162769571419222647698975401977980587120961646278185203397294369370289227761946079112924835001946172680371693055919954153155175765099981490359855690800396992959336849717323889514000111846019600381238698420960287982952140414436751454115183910342717193473736331825842679385589177163479689493463902923813434179028511175773775622080806833044201093958528872025908831280630973990172435616599307345768062411777047226036378447898653240245873853168371982878158690263540811089625689178180262967660516470342494367396559832707873220419090960184193775987564785176468158416238758478261792079314745762429187582706958687891391794637066914057192016889033974480503394734943131952568207115967981587781488140019460566921775051963070933811889924783647067747173364751716619387073868879324976215794241458667607918142827109517536086487333921311549874242147279047852189617853307066349628907567684417448084601221889270610505710141848046040420766247467682556760778045205657841086959032805603115962628569491511574316564797774434150214025709341991760890598279596924273262931722556005328472934050219775478593624101957110705081601035099679649134173631397451624381333462071231880203265310092730089120674253307854588670567077770505510356613656980301796656807177064015880441379119043988643256432479153246671908643984712380384953646852894015443934707365417350562854469241307942710135899102557062747131529414555048924714022964210258404106290376493065619353488948875730228279257243387800218297649824278757043898095108987686347720793602622956255496409252175876096767161956205553028001141087155991591522204096379351366589563808228189878176032259127635302011410089894598261704850263194458290975843928393331847848910467291803189837353459580842335358766909307266231924508255610420984041539219048295487444134258015839426586467889995969557213672105137223495390339164453321530220036179047257068531661743291752370592114056778351441150248231247555246341799884675388458904072503854293099730262144403522615811328845901842528432206206924720192206909292983656094992778268710455192971494702847410963287785629399293434040823982789799899444198588079534678603862543926795224483285283720256712942016092933464848116237937988595009548171525565599039686007394312577293931366385583559361581472827080535485164381213396300407396412677992487402163814970558072679689290512711340485479274581643476138732766406279849309031859442575568183097937969343988749111777910999869546026756175344053857492075268221795901205939972540770378393573045228887332911903379304311451332001979265690653669056639905712120756150167687266123400390034848073205294715947515492833715279179034527923896673293395732552038884930436790855077667355334958084793326058997997031510116467695648636003599976825170627081462050783708526073159475786480961014706293288619240632812972632694483224309023812687541348518457780417682825441672215649210806061093165636377141751413984428764113650371244576309138153272910222561893729526381978811750351648654378967158516488761541049889682307712939657798292898983039390764164782756880580631952393022175498843932306619187591803270697548623257056756924084232745615621222858215128917189546788092846447382670031058144994292336892494791491644491413678741626317899823749128028594798724208695601587097018563356746750151884993789354540496875416210285241690211744050915503717098935511101369472307944633130275999759527818974739952222706762721292021097896011192065780116384344873262608102091768268179533208483770744238812722088613131696929859352345122859239767841793740115680773298196520313842480434176466888169445815985857170056673955570011115600560672527119497158484021764112041007752455106518720698370415107151883876410785056629702845031995820809322761874008072975434683777295657532097255816658257415361074750918979974922922691141537732852015099404682554452244327894167794002074725900792489597198910672481650059072773185981929818445106702425084577630794394615453807573281735528088788773734558947832790063824991867255819137863832786970451331014536306392538238528908939466493376008261449028596248508973186828551587091072637147294501931880724604653927852383877426348980037499775486687004314346070285664188828006247464515979145101099089444251001415631247605640636817688295351348713677430031401316745088894587947606672233474359100732011414074421188949075181381143103070946959726857372835403743646829944322653748146300500291276649529518436580455597666543138822003971934717097653984618187560841883862430536949122989070033737230081736225734093210770112249165133439985302483124379110027638692667040110822838981310158687845449439075758404690187954828789615395475118106174329951830576826169059796357430153683009836320537616206537038017093621537491001450892531077389386796750522776508744511230189227162848293081811447381103890502449098790804147080666101408228416601002720910717657768967529511260917448924321495977474322035752323859922556406844319724997014038130279007766739525383029522550943607935987744985601322814880430443214616224319820076407929509966676459597008047136938501081601195218453747829325151067004953043301766641821227204130751967995210354813816521904604884793799522114353849128580383783497495536667684469675889312493060598961178065995296670634247466731432748910925112248219315291204651199012391630630351790266458138216098368348339115687075037804317264917249782966604312809327472900266300887310414045768118300691131818813222246293656471744186701441408525528210667127378313592957584016278026806989024832875401626113299746867487815778767332238867737997057919856883579080706032159409253850767649387766153623553755576836481391070032771111375334501538655145592923297139742527883013369465743323703815218351328558424001537991051536612581345498707162508356169053960531423608772498419719818825307486846569068153514203556344006534329985927115873506162094931672632467383167425690400772882576618329789302011008090329023776278013096496186074496603354269495388926360852477774910293067588425910309907835136789880487500164078171699269199804470806354719275528491258456493536917755554883717581687061762489917956626962765584925344522773649568151471584607639943359513243228267240414375529587505137707850058352777207883568792795872516576646705223346468232682381589228970202812881655662878008947826503239028257779595990093557552562553496609282066118886832717074578396902965632531762314733122876508420760405510869346567008094804313457891665418354927256509552916696567521334133479999039754289344152129773495918765457907289438752484615748109928781193163656958785993809726194231094640397277214607625552643459067480453391785907294900540576481165387913220035321706529429672237235222854179171423311775612086270973186247168733364753548703832212351890962650848677406821446869224962818382965338693139213946465482996484662690334957134676087862971558377792660018318297984767034160716203361531366231546949318352248519956109295976894410319070586064695779050099291109118038730990457733573213443476160272065603736784525168504496555199444531774988066460717514956280432612769313828219341685687841857471601510744937184201765350835144890014482059987844578691013460620133266031034836707109123192625191682752390377988973739716765286973293563602845318204663199497758430705614637564517769160669579399332673304461327375996428493701942648885522632248724117352955637165811148048556695640418313672619548681287452154265810966656930961019640602272179107346599422045638431400883909934406084389700747185734227210003676046560181873904660256514155850117220338928479312868468758776462130539205975681312406337180843760226820725897121557801295987243808812562532687250604712272512580990017390455199403422010135275932870770206165595869328238160296187202236388638368834197115582905863334871216891674982514622581476300857993125360304885469328642422162192005467409159442588150450533408440267879195252755367179504999007912555066283033587153993480035130735175557503384822281880493296205358817916244996873425660167456697368540102632159692747777723197450934546772774547327121813156621216895647430235554983494184546917138492825595192240809469065258343387271319112699675235531942605273526693208364196346861043899355758978118621346424350024201982195727742662345357755844638315645877151629102285302604438194610332597567054181590206404813138067208713791030986748225148712031009167010485283740749337242836905739459900711730302574254743657655330628797843641212360614607616776180494954870978241230504837010472367928820791424871215243498379976170591768467203055660945641704189411951344441153952701855893725571617903887768320981008851835181278810162813161781750674085102396321329658713372987564849027250675965139420578994932140015043464364835626517687175727475169065328449374585382009065811548724300521868281980689244993366816270984197145444847385869099750496031488905797990990062797497032118467184837451472585579673735320432539102415430648370319365688602394625139581719215237212483503161486940602162895267691763706639431913570772102778549475974180400186843162580973290078665686078897243550814170594483049461868055150971036712385925696810490345745695876978057747878895471876953686261311903549658300527398306722517461022559573014851163617310116843622556774436956641388671619514377126338566906010649607674191072551930804472584272722397608763377670998066196292086518562798047778886189355727881082159694232330629443551798774459638987268559497743705337099338096233637809723364991282056815275295032039877369997635747168996655443879002506301870613808440561072139013982791697014625815702259285869501580288728510844848926681233770759461908591666170280699297429240654421537367554139985036537830208892870381091988657219661655513169576677478039803550481587769696842129965381547152971671510907750020957997886743668531813626264026041596695099027485841490350503538915925890468033339088515535741840405265592126269100027343286310433731380587698086343690310191168681331982920617140756989091608102480792633815895441840904541306965793548433686132473840718342344852482942152049246492766159711041546446775781943832993600276201467485915880439731002903939962866663880322946984488645158026254496099729612836613041610599601381471992348104191362550240984236989870173603320164932393403167994594505049203824437998425013183828962732297802137657193592927448612698954815706944972725150940095963678838760385706987674394612608567276691340481711037552804087719459258532402232212227829956781021966141393318077813345856225119279698948922476387733527314284830975895030861036918594581476385987255064175379015230278279283689620527462585226746530215311392813889922113575412164208165192462668297293765182803981981361979718584760157031097189147096641436056081924476011363898096001399430421741236352782425991452479310697063900860267607950521662905909405442140292401303892221822593638149825088171026107880007284639328037065686736715698334627460623555699911784802850892225054863467422005461171734392958710886564180376117960492413635075784203367110981050460861112267263878124942713483768807709363383409072858607412280542449760561996932914702332018938179245898429270239914369468587080700201726277499879965718149696577592639289534585893149882510354399629593974437590309887780360510855779275519412658097631652901331577950261526629480672525426005650556514749490543650427694306785695958727032143346669857810312617469567691907976527165829206129429950003184799513802567426780835070038284050866534067656603041365010071007538123958956515876175934034967214071772974196228665882908160387720397614490715084858156780177204035392594247925953760903109442710346321204403586293658850509955639974940035866065127649736619693425109129098643083841429541627341068459512673329465197989346064914317456743131069183196199481464642294899344444738183319117506676585016574076266170577418369731516396695107705498336611947774160429643776882905997731994748647478243047212209855227815089227935498832634706981230149003837217518444748849242324487610977427464056391051533591111059593879580244438208788534664730434535666442508091882323887354392862095710571292154854526882844900615097473294212740155182480824235248520868304230854303052091145526380715778791457779706680120149281541688539867839045920865517808626457759971278660076851901621113877039415140644243971401645065288543120060573483694347649897644893144415440680207051459002650104974805315321801584129299537459007021788376129269741533630379545343603797782553340662564019129418520843745422039888146964605906285849469294424821061279692649485531518276538307247272987616758248954697326139368419002559574315306502369806182123531611081648599832274976842306570910398425975844883675633588757412298928667099719753026654058627875581717370935351147351132958110421150095154867737864923005479049132462728479459064918046242419431731661362337112866046884176794980964239371679400160206300575587374532548019616431727468726603506771663814195013588247620208532096087222019548214123005607983260959364378037750931774896144387011653316849693917128697008313098816646428359125076666328056363319015432548509595285627902160332366240370319869147142096916234976187925992146183908142828215840366929257440752073269898564460110966724832536380973400853906177461951889952234115297602531920007576565989449758999097361383437049750023845748343690208979453539074390940596615555803879959506934687495678561323148860656845776554369509043334268840192979848313716895973017046624992527184660230521812940190603412012633594803115728565640169911476651261645852607104084586121176301500856641508498538165545532092930904988549184519971230487896073520275753011637251900338158148526736881791960550794974791300137036798713234758960731884033942196646818498974930424081424952940784495990604370193186214261863949704588813267571754850160236042070204700184657695160921228368960852093891252430571143768044870899197187535864706222675468968705099065715057138924146745582125160786041377110356878197235117280868648971282120775495747175272680816026612729559346417332157462599758146967122077086780003149875529718356397607762726854441303474383975643803531133144498618573363095189491487743125430338370002057621344653033953077750390666069830261742639894646936073088324039203278036779495144328720278949874846003818305565166071133489624817269105529655191493927047355988733003007728268737529730240716272606475152132212934328554585243991842781832486627349715603406225314189415018632947194286734606599703171407677714766028162276507028135232707776092731002152163763397995061670440865398845691432753430581819514495125758877242288648897241753288065336816979296877166637515467289351526309273866730823508510054001467008932975193853470257272187100368274993784236436999427502899217972770126315837059809807097492728861272042579892077152612671515817558831660781185513210856687332264944368999530029090337958532272005708501545121812895767343292309117886540377545505685801035355440450816391218156967751063183158044128412493666363919067759522309698807154492617296841270566494286469554210342182057496977030228596471846689806363515342511573761071539837868571135441325201369339998047221511799098907924807351586634105489904635984767663396874172814450377426323174308120215923369810407877322131745564961804394567725663896705241693081479457195008160099139996629399202315577775786915833729739640911639205015945082593407167082646154150521616098844977365032438252392473170250176965372400858390921163426161129882541813010094346718737689873865462709105559836035213032812286706216628534341852213921154821465751128939094832990198530728000764580891303109162417660553865479309099929660074555639971543923820275935333568762191878199212451481766166198510414799352568029667105748561074998833955404452237996745247413815275719726795710124640081720338193005334756395184860789214243896759116304203990003293425469211191577852760754930473566588261135108674912821194003615582370900805008497704974200668923122365058710077512176565507032361720792586576795232753027245009276260543788358999796186781038380750318394609826806925858116366700031245257859019389515142368351110907050526430327104166545744225386558573998332331076829895000031075931810380132470954126749716682736428449650850624529350545572670904794947018969065025443529805383543714339297341967900803728648694448280649904576944950242274964250695877396045221178591326793228376646146776163440638208770272551099115697403033932245805296357095528523569067336966673488468789260585755789250574052598097127828555981737647039971220064937324639603994820053734003970803150946269999047493119081424492463494859492714192879643577204094550328463019065082536072795122428675264905330085964863934706824005221929326290597804637669058460581587834447709527779264951495950176829350140648242308407698725195181658683491976719360804561325552253046249686467978733540391020730994315424165180488184234225553262905316706516972134885263107816154778806156674190090949640144111693125097126278719330158717127862709031549676316726892334221813690385461818588252466593614341742220465364251389184469105683748347984601073413014424325059157203357581748936615566560165870630411746140334468440225453975458896817844538836757874567470602023429684105561647592646937943228207407382916849156688893739320135237383118733587268902611099784256058377501496478317038992277878644399145521019836104126981952186432581608179972310795586946640348385169331609282141387681649029093144489813942119828057202498372496683090752857060823412248051661333342966222156438993791950337767534606307885424516330294507152393739287966715861718533880877099818428524751454294720412408111506015790751154862845527351845892159538282860461696379165289468174125894066502017904226865885328802639922733916879317669423177670580879577746202188797354160559812472776920992064216425807106068294984218617921986768456220440479482104698027863374682542841467749664341627658453403052903374850454425849673384929485412606013625119214812554183945016048951541572656863371395381134634759847622497037125931248040584026901503141549910137359635562753922654248119612614337358492823766685343822732606769592662660277395101939611357728400909071817235347145501235782451526142294948079890451420497839056681825903499184040311693620284502926883419780570810262593111634269037254562393287614828680493393948773139764592409292848452467346347847411931778517715515468510928678169479407395671621850471885789244272412649045216041787889335133192399879847424742810252637739612292397632305561033050163973114324204505852361288109164631284893480171411495349310947191099771496594063535640505979323783131753740171855151206198576148181227078938404794717085384067164564212509326387960606690999194610707200751007812087607342125275480849117550989978781295052881476056011749672550189748977267284956006916900208628469858525956170903589054529534114272660657953034006566810490282994994725473120588109138774960460851540277811017832206171285295009351953638030244873949599104948480915828972847735995873453458818654911505232596514734733245750790978701418210095402913575798024920293169104960602112480499099993919751783279062826919400725588872457602310572983568194611045284384396665250717868956842802529473594185185896788976339041225360297202881116850840410419634637101237850854525823069988703096013049524826877296989743849391389113835359606903774350780733972442858159315415524418177448637792697863713188219834928787487480232562818822603170498873365199779300571090209219190024260781121249062754726539106847794230962650169332092804841561049821585068045785637875188259034267191716417182229340386866699792786783014838906802170615213033952083651701530931133219355562086931457294210457512362454040333147526563906679155884294130613085066717005153187655112789952702608402846630869997394110299088674135130352192207858179498500160029521504706435334124348908182162193495704425408785863150139613847039866230863201912183597166552414414702139443429775568760504217618089663697052480328322850319737616305303378394396962938345620106024817497405879101402648169699110440906143543256756540268584785050403464659420302145332801659391569304576926806126733050096420068961057791506283046503184448024654791464943418447373802196049856323802694002204316100489430964547934357027965533176846606249926435552146499603579372476390465319479824025966497890945388578422612822008572230066789758710463434309005237504709091887981621992516476799044490261986464516898210597790373744754352753405189209287569289512377397148255930880968390369253320026383746862364205120166565518322263679667651901488900068986606500134657535553263919146618144126378077519172228978407791391385252701053096589835949019956589884456984042962403539343351396774265515578221185533813008584749533177816239885742797920583308691753831933677413018655746825004053088181759702777782288029168537856725949520377610998706935390505429430465306316301936288199173575886707870688561844386263148664512647280732213760145776403315645088671122878777967909296908943564024476005605892375811287925019923176113389427093410356695233623317236747750728880923741471195678303122453554586246559747272290361759765661136026685144985766785740970199016925757412827166518230558115492423742234519340823784066122621661605906409847068262314853408730534485064647613267103133762339403569591699518947104185780821305989927324485655807671917256531948534363827523955089453430147147962346992845428972442808835561730977952772691211813673797263889855647323442026475931870315226085090417296304450251045851021139605316529245926620817684170865606023424142140165118368736639702510680677316306835683133128763280272457995443796641693970496816771245806896637951384347120040700494919261202460682646944186782010100316689665955499909656641371706519105564041688332291897328301607735545396288015956637864418958122444512282177292849416276421372737849099714987818815859436122581489275358551556755000190797692887505273056773047925909792194248338025997141638702852961135725358040563093548396086277455531673481529079627497929336179243014535864897669124915377528587951252037451648332371534274870367647796247171398106655339041200340236783283652378538023540296404909796420674614606634758875554708551367223725734572365680424030058106559124041420712916956553401258965748379336043111080133479518406309753234609689776207391534857081413675323079599877242834886158273764627536932661624595693048352666055946564780644309968307154648742582280728966582319518214616714912342801088825119814568427276920816893178643985613979174932574045457349874024124346479256327933581397864062638266217753887878039901858565150386045941290006641446420120708546894656128219160721191080853464477181191405285058585483309541649014068168147627430929462080834603995317371625974637068783767855480843218518725177561536783788524074269041078439021508935567791035373867995840122839494138105642518731173571841862663230387075783628818515793647054381780062327450906668567074574257222703163915275620484674570426901220958278757257020378456191474230444419529671131540715878820402078344496329942321680614541799412846390447387467831419197118048020260259843833430685332928637804585464927442438638107049625722964274693206034713145834212003391347947201587804420749050099427385921245232835975771975967607115729538615474040863972470612277406014761804860313139693462021933173722952578813384564334949574107350624445609366933673960226873885907436253877043567275680134976353689733983025091232608098403965647652862151139852169561005041452199981747189278077044312308114416369145133989206005307235002785061949924875107872602725051923112774603294128705221127821758794245425657837156778993576084893153008883605020710592401039013302183998166946420548920056897524844823231549261261205579878715185835441452790816002426543216804493121585631853507831504345485925349679006849668549920150595198527030249697756437460559128735324093362314980967743851201940634510310162506600426585931417573087797635897387611001715583996184806538706645393736326416645763129138421980786802480656326014953494424122624520277622190368800432665149175824171602867763991088547231844452353854924196930467151496538276680404859216416134429148893084938671767341283829371013497285186058666187964525319961237002508527564222190854235795166528997988327946269725209539617382411023678205617001480509794505339584052581869908194176708342905234700800033839252508074239408671424827451232505354194995473716927000477090004899054665202009184577350299827759143631679424663800157376443074442345793282037541409627188433228885880592411850547441409018564620902151235936398485132067009452580127172554379277798509552782875799813760214674904080813261283581027181431170706428404763214085081776474493828923462006934074451821702222976070602933386506746850731387563956606057934010088071823916722921436550304807495590490145600345492553776256960215596842766525765986923499683276304433887121709870506718942703768333329497037895876096851995249897538910569943753765881128567967825704755311662917653306379674112862124922311349203323018037471507842185269448381218628637987768739178387867835041579024309376949017527452916928088212294983918394190848429163057167427150754574455095366098523376207760735795276060913517087447766593185993658384305052590333259302074633337124197137874340387822580350419181221739616372958631522973278491044192750717720985186465387384218124690938648928061393499544713220754955214304969187543158192278843332233854179133085113186340129920678388010858040119315783799695188306873969136208642991393575685115523088298168772323168024633182776847342006181066570737533220681649175061368926808164705105123313875033695896018921485849938711415389568066753703522805321571845442712851837788556891900993769473685254414468705741877539794614420469470276052724137585332627663296142343248381229382177718814888741543779102753115791131260200107282241605427913518710007413752930153870310746204709426612712183927501006531582940682369250087150098102461139509181107989219160341013738033405783486222484199283030850090932341167740657290382930258995120341994869995144687470627049387328482320699896706947658238598786026614122333542919690989963603580978913576061573660602974775564769685547248644947210816320221376636205217735909851748395830276669764921697946990346948970935551599156298817483291579285338138484280995180879587154504688224515770115245411197762980586565550321722233076880859095170684120899569569805810977942703469893551743007140365110918999354411682213844211085624870679740720082478156052952217268114596801054848451470562621930626589753415058781356610517318376040335200391790122110242772828076541896029168052102897906482970206477468948271586644380527441611316091462118221013780481617846471315452406607382124070816220519520402090356168908088094255854950860502132163044938493715377342399043947608536496855652087053614310889711044714947426084516724578163832823595853214563531503623448141501393288607998067616659991685871015106471977744082436950974937182189890034412334870309418048504010991531519511587605075838797423541499168932048697642729766241251987216189177959835787318073726694009714791318303540994096621981286277016040622900522269481320638855177817683770821490647156842845473069256279699504401971858821537540566300596395467212011638008474518696619185560212252686658377094303820604923491925671815264319531147149464213263922712859777855190675079149328169194491958443321287213723491215809330882208004932408012153598259460630068670235535135565521538838873478164447848723566159051651779096928008443595118675196315513877691757137518912725740317616621804667049793544012293136871161713746603986656640937566217862740055918243599481353163924096748876970897572735166393623012809503671276473497940463980053436794465645961623825175736661216028221611346827529685010821972443175482263151914313766912853847872141189727139018449642194668701112208719347986801139237803799690364814704108186070264079536846325173607882975766962909818192294901107892562359459764052581011703963073756927675046311560497517309606073885465924000456698331933515247135136069612943074868326192730489420113441029398221514044064935861563285078228336932909336042818059073384655788120219298669374944349573657226625236156199431316014375840349820114476497520473274314505383149026427701371346032224312769541554660763562802123962138848530353399572544350555550938639673164757395006802472347897347699405685587654587384537421333127116949626037748457065849358659550458612167328605768877955387882334574287682180777088934066210168476614901188067830289712157364271662181596889458947476573247071706747593622494313900409620809343882696798666507244230057022540463471206799489057925232221560175270589603937547511170517612682052026066987319735325231503806924306343590033963111554327016932738861509693189845845653718205371578444045244219224005320825148992804461621118314102225071008726114308415295167416184799823142728296119434164583939364398146186997924493799126744311921703054978498395569229037108691030031152551977204667856845587980671209610915675637129231401438543184777326875165992061586339242166400191776771713274085930446944504057651890313155235363732581122031873329292440665463980096044553322900843183473536764324642904643251040544813380898863957168834318172540240545536713042261902439622955017738425383188263511280229127354361157976993399467486993813536296624463490346212953856286498388960858512743991582850536020016822153801522119065413088483078866784988393033876019045594096769013692100538005340995077936263050352205960622906619841307875374302563175483278989643876353207261702640779311319473992383522874354374788398169142545117406006891926871153752751469791132326435891576139060040071135170915031456649391572788165135754222490174127558507390470947531859323594756831972039976067180194568982546793674918666184906433372901241257843332062150532246408349228923372651845219371955994851103471248926460637005090554733327586695927002568411935933905072496499848231650552997248703470155511952662496505758419148333381438252557185102303316752355622406796807291992951299159554952273813900014994505995758565272055133243623910795959223596174955026508256989246837101228099382684987830060516581484267519083204471317424829132076147112169723929500577615052885038507270626067470364666396189696292602051243828764229924717268919780915525871623446354862573234617821460413578856230964581347536940503059687950778265260632186518197034786679090935406167108715744470502133773683284332922068286769457221924294750523592915066931652207753379812125895490205300114358884689222806232119364655684932675147490206134905376935503817813027690999733209946958031691812140512065413535054961955795928396875384939388966407253117701990731463358492167336835841325025225930105932348808699072920351896166383299939730123333758139052702039128273359797118984664077180336386752590155070015516508027068332194319935920793025543432546785910006023772698424968567310764103406947128725680188604029268991605319703294934718888534883928183026131128929992733615530102832426424021873952478873469764275743598393052553602992233813869740831339655991245791571160191549481025817855071226639303648219609927575709590446291384786387621155281692187738222437795846443175463992141124123043706409947279620147314293528133786542560534091259163524683078898041940089776211055921927214054567561816476187802734936056368892342569802638594879625803600922596436596271612289642153270183296303874723764339944209752352689412799191812501961141625304962117331689356732748000902563130593892002913590668620019928100567825623033155361089908721555543993505772665784797988500841255137888655597829295380285102152214263285816318723074261680828867224359244099621030699995581705667537773590009849365388438938535471010583287788275229517568775627930928307079364757689752537433157505475782418879037801137795326448731905759285009191289271898174682325084864048926077351035641766178975402109686856723463228815958230845217152831282057206735305733214176086597835986058545525903898452354797891620503310575635742695865370151360563745803275816248285603023243832253122450509923996267540480193856606789638575503257531379415878742216679028183282124773182975837437397813236137233345934696163929376857284898237624929482013189720557074675719967318473686681339229244373247751693058236738515596881475897772910991057706419967769191316084943898475327816556858485915875528765881216215214434464036262464457405803570276070581627709468687175016400908666049935939642239408847354027944153349217867952368182157167389195425228157077662604749936920266382020970693710260063909776385488413224356355816767703602721338606056208860086251539834666123572813825373331395990130500106536035318517526355679789260707308692039361821710453820309422198738979052381873211118948485994236693925698196932413660753237901252866104013877607459157661939925629177437049932612261206554275674567799140121057336179163431373790877773434366750134400260219889839929432673622481972112593586594901978501061020754929243576851723291721805703757316909846537214415705859174702245497232576973382540507841361846201120932091555771819304889530434528299912460954446748077786809397943480518267175772248326305292596107027906642945016367183867900142166875345239361869440104354451764427843309978626665559649307501596519270206552281447269554425264347526802545178403541594594747137267284248547130252973091213159707222722550606134480261864971753020444568036557568592645651418556365459558229849647059624731402403023759354799770601858981336051236281455148728926709555659975457770112738859027419319410265772678432778634262313411895631378272797325904701744483206594493313258597820404778960136242117303970248134201463475658799323767309419919694946677092900122728536910527977378651020950574822171049708867926464857741234167898729970779656813339938511137636318455192850522105723429790337487362347709970308826291093499275869675660660780003775278088123132419529101057644271187431066620967625155972206534802844238812098814786713882822973252333108054406152900516415771845741178339407356355962535841794719983659021448303464084767135938829915452747152645924502460084795992177047299107375041876454804327818262974722491247553721903228136229420351769862177539497760764503768858866864701563424460454165149642161614516012688233214518776337544421592168526212503306653503092632240469528590527966712912512939167605746436633758220925205165150174021771402172421158557150093875738449958637992518548736656076902517353869152891798876634860582117132804601658088374821897334170754081975225770549187542824454528566343325659384202280922180795900048546006807776858252226194977651071031914294702336298104755566531549972119692894990782088524463465604277166292243942449796747673218072196987647643468248097065887153629030019432652797323011838187080616052905019368586884739181522240745416076253430855296506742267342672161162822340112856273956412167821595198582167183278557136838425434626407542143075335750223279261030107752036634138100549991455093665045741606407814215908593601194976531567613572809156008961510715738064016760482707155327179599954111252313908848939674356032758386612094016683145948893131256535637963954766356338054372992116745826436763885967614446067735698303720497377414211774726416818607693033084774468992085555274593198096095785510738680163183946173959433223204359789997336297975545915617791004698118144797023463649293235576183082554157597208489937253190987430943619744175892260256454298929399243662117510523146045620305292223480233307019360824070441725963514430199076895396688404869134411859079414673128478650436681547058397445425943254606096952571291993098634300121436847384892938800446956966383952426948834275641391073801594232797978933586992076531929066774381164667953378308173437056800550119121852345418263954757003104737341815228286637090900825463736791935286551410559421903221861928635857876146328801653349619276269263085449651657751697717312234985744822344697384758890388227715347946917662333854857354479407992006445734598108636138051168480646213534203713395208384979403931232303644633825945538559105509259575417034026499999427622881480367533503684327647980638106264143390698207726743694687942728185244145745343358201631272082685403596851652603229315255968050879352209993036572861001809900973464871324220835117642312315209728920247117763086580268768767711021925525234336734225376570299153015870669302051853083536073256589136493877473831196592302056955687729895001415801125922162978576193055204662011309059002219408732761162071970744995316776890223139116673129880206111136399622996583548833466585220905478496696628051532546834177439928618538056091306606967778371618891353875168711059019924510464814229983436875415140042924304825402650208895534477100198785577909189108327575717256302103461018981735011526867855969396415395463178398107574210869800232303382784977452278396298518787504569715010509720603120415412201036825413792463094411778197574819501054070083356192660937547853529457600039625522571062193579587527631913800092063899605403514858999402179929458028325628061195049347971134839426292531605757616408359115501769746253835970389273088553459609946622764133694453443081864066432370260782150937425361141650285315815268613083917686335721205481761112590977219907518192212550112455837582713500968798332253750379208215508730033574257003028763092274030687713417171401701736934495895628893524455868326567926145036414617554259799951721364042933135189591987118980887905446429718688815778913307011044448134885427194546624139801625795515725490883614114795512696888335461892130144813569693541522493374748443642306834417342440750627597599072374728227714053718543254691234013808445518000955740420451226611675416525861579021161723615633082121350329907316061783877548966311221510168825020464017947785580539027943532323985900030611771095426127946371317791838864574027260956460547032259728982277596321667745055074194552523691196421943325889768648329034286380287132793284016180429174795247551998483810824358619579903675693851963273295558427196160792202950233772779278899391692837556730064469301607740299524498532580982748782395364613401505660411461591369988697836704185203130683221576918079395025141106875934496101229798566327823203865123406468028171549013239645258855042527434595826883493458029880191844610650139770646675916614427265587253282541495784420993495530392449266143680020048360946022788404153569774670206820727915400926678669461572882851279938257921574240663741525193668486078011278676090469483130666308259900636260651244153125550850948254201089963628797039164845771571146067717108916851413297890398432320108495458529889311743237451283929405495585212113828309921322694378172009598326325873186401162100841735170982581718841415313693853790256355497364895338736620899930585727255899028138758457771497289446667483115038137918398308423038293777240291394347257152056840721976478598125596905909373410006293299690533825924146673334899950302436030736342628515358286347150727373484862503068186561957699073546841064984315125984829453123119664081850793990944232662682640930515444601240090480909708590567303486575181857274305966694601671554679242451805971589813389793022938808558403645685277357320945947801755290068828323369673184766969827204598629578943280128069997385509685236412185198037266366430111607962770088759722239187032340613027003776413697067399424726547931707026812826870762437931713996957390250602009286714473547241733733115322514382860971243157406546618899496298081790414003312141159927986645414148197840204645350575989991185979297688615057282274910786061609084898136742798574041502053024517812416167234487293148223698335905194159078543214594914445438843754674923678874942411850283119321766546884148920745542053917935445686439697605978091226100708218398612299406743694889063595468380770840222768969183216477488917270365402492826066310854996897328732662155735189084735423061692839716487453226995032558922624873182577190450959474097057538992638222789007664979990393955470171642306448694469310153783913285321062402456132368239375766894650584317775529455790899036077395323816402461126638703978412884182032825640024003382486226536101287457468712824020840430848465446068425545692142008499064714613482792457940148395006635150769812387778253343008876993567541204882249791367797076673348677180530961102055091463792930978365467870763706426122799522701352179920320297555164635889376147976751569793253532524825333302895458999965212359177102703224076216641720126202364525421548121564032385324704116054402788729443124868003563692423703385413512224140623819242988505917762522266744723848846349126191489639740249847244364954897960909358013675957432480051132930908468107827457504543804149774311155132901309060459226726734928904834551933184067590981171592231041001498442359401195852705158136618468375092496470254753178179153814699198688481642833315271607220885713415430276462912969757577610038525981751490564348547960142183887644882965344092945235630332831616916225447163677960391377857957414602717999331525923416364489366675169019102825720269296949435964485018071303986692437530568433919438238676161840027359577923361253946024191112931542142355928581794922343485950417062136753877073683569226007880065872193596322205854760525507378777410986200795180259787005225858500072355140944233845557509861948649782210581739250125212118278770482465501157508479978625823389666086303769781134794054593017516354759791397450962333551394168445410764750752445530032664478557043673691359253574685624076374534305742867747104657828280090881987652162186555519057807672890574649468408872234041336907583893914121760638564486390407438066895459522258923309987358555440278165622586654771219561127387630629053337204035149490469988704909401802972377650707488423535147714812203808576576874731076420973769832827892943757750408802680327703851818309955847732391968233219810547250049580271034815203665574316654038691304830900798134096366509739477239168406076576646868128063642875909859974604750752366666740316502870037818092865593051403952034082210424781365730000335267378042812110661764188113952468261393412883989668635455498049535258876007532818220699049094079969971981781900140491923924051575514873811472890249131821892731143841551921296457754979807656393652885490097980320841952704114376514227656659203932044661791300565299921802221817310039152844794513358961529328891830735908382795304769261325581720636781344710953633198397167345632195163541276209208290946253665713097715063786231406690396302093340165839924190464431206250565511745515866194833592594699894991235565716911472408370104389108691282956581397384364798009569724165873097949052019084521549645385616409070349181129658339726863813961336980404446656245777676016492633489088526878638550583833712424339147048331882740635069166902519451776443727804132930826934222407956554220547616903473119505789529401491159554330117741764145261048822458173144403156643149835859927550631109874409775555038131748164270945031799156679364371089051807770574971944732138198512620758095980750116510584233301484868933086663265769493732555141737711073208112952849733955002373477577269905725724851300532146098312430935999843822109424087594894498233252183945676987972003772287396795656379437944166438848644327482125198388046810511551482475712329191873321487538547032376313815515672773431029107674171216610026604341588552602690895940248217909841225582780857162594166905040297690081163840257975070463177258911471861620383936134638259061795375631550400391963811315982382921396727758779876476844449361393767471224687827994312150061319982406390401534112998299043322993875766036211282739275308700352188231446496413185435662080434236707952383729372055452835278822532347816228411942710704557041519325282685510638568455868060211871114752906996755622373235233106247241929866291481036379641036463190559569263841839623622949206118079157952117346354840001261290099370181003871925720255453228009972447753205297693818904872665774360959668665545562801775130114224767236539295462498955998506086031004149017394435242294570871385548980304047629155335646204372251871501237046124561622175561996034646544947172914499179762257019414555925573026188618778255333822025702447007669578103670555655732416561883421825034192324769227647643400012916848080122152537564092120925096501126027151565824571042876327071545822153571888297935039301098573608445698148706019191005317169244888895724311030007673013058224981494016438276001865578538891145042516842701054026628053965740316187689045981272852708193093482391781658659353408192742347802014329957321687481852054062915376631120750896819031441530633083766488243533879365115635248624665219195162716992787286734203562933224456585947415092834376342192976946232317425685541858737551222976148840216210320855406985452297119696995775136944405219581585022548757059378279983933465634153374844969772640039817928320245166187346021399366561271414581130897783405857418058748504141534780613671950791833946007160828368131175067153271399133922978894185495227145448408267482104603513700457088170192145558860908950873705364688850567724634825827138822231523284800735171187207330967791921069535896581386016741340261009773799700974664718701877498143430836549338438059497998978938873890495253890800114161805074784836501130193580652227307893309148588455477084179734422954232697097625486231838199107279704762633631755894402445947340813608663337192216109973361666133574017025611231240194946032005489338023659529081722814020312978322546805975834217376294149106842912381998265141741739668136716717166280646274681969826264301267877280278569738663241030301697915115223016517208982622667528023910339237364802298160336622892816981876792266604566550913324994036675869847331743972641207902609858574522205235824668411014614041815294206265613993750352076291409801904030066287906579447644908040043768876809555004496607957558065870174371524780498437824710538551399652888710872706846065030947730575454750312483319596436927583493173223311690468541946578812438722038641530627087204649081987489543566534020453503606228040832388470412864552230418467820280940695367526971868365265996114208449916109261457640575747888078625602470270792394292333114972184210798497575330037163965049969759354495729495916395090424196753861311076823480097795706080846706254753243748539432611371624446232738417259963229589245147848887758530397338045179539883794891937667169069733676315963317846148297119123099289617910839530854446355924405386497481474981696166650812147260778405090260595588487722694638861206540049909045545174890996984314412958472745176559259051899782011528188320117145848242699228764707613547270772542890635779063287649920589086735389774467533923047452230069893649939913216028623048421079920200272310072378952923371157152351209884665674371820757151966655827036127209539167112935996061329670155533934177875116797183717407302501088896686059292290434390778704263187491049744235253133472047244312188382507926407838750112109537092429908695941335349890115547941488436381089943064137603691277525921365627032424513836011048655866049378706614140596608038701768174503027669803672843980095653687489607483621529537569442803391421581372356216242077422258733941382445028383266380746659890661547083709131786980191123300375994988174390722194441299874284989126939822642947493316484467701550155252761431073301828156868193864773547854464019928836392740270290292411167225933704498835655208204405697978668199622867762852905901176559433907279123376379549240225768572691220590275948967962882530565071142341805361983567549619416355104220717285124499249523495753478760349327616420317234720000677873732129921026759468957947540589174351578372863549883096657380094370616272268030683258292290613614893902993345586416034383878600086345517842770710811144676817241503761163801465809419213326473580459864923760870064991059722572714793601244805335544378061480629378643373303615434780775991367418758545690203295071801170881834408564741014746258166360798305760290186263225902577357789138884883904166813018367369016059595683422295597894816451506636267650534108017534174657436453535068029089996901314517179107136588564081933934869821195573358391794770301262781383456127475677064338970845637413630611431398442101268288324842646560575573251006458420114062907714168119781107675895747636050654492523397892860279933995029341685663848650275111418977834034657909954556223458413901078121480493664943451075469029728887383601860013950933514628663016352637037781378352445741323666364853382298900933611134133541965363718085472286921091220778448490631197703844739881250828550802051742359380046879620942197023015271457389844414513135757677152477371647972479023066818396351735665822847879462161066295189718767027830507633232171234071411209127056397225113557068520371399274688596065404303815472085007934389411415599800086168026719415077988977719569772232729076320662236841410901794283345883953990408463713754823417326937053897991508497970307849048536944027381203915184107386459821670942765113067789577424033669543445011240226939069332251042526079504462438197212978428127311812399403642010313753841787720252486676276109825718338309871454559807481857880448504947263414100929164066334830658456218832877733918406901645275827406431649940168680923987643689182272157297812053546199109533045891871706493711064984095945588313059327347895834858236852523579573132478476512733357669149141419311083498342510167168951307027959131428316423642182551531463661050374133080781202933887221459249719607966667140517397850886610096138409672899192714250179269003678365394022412263065916664130292093228783217525534596471596545075304057213570354998888018682794660222448611052549048343585393730064954721463194043856051997961173701914158403720657105280699749426209785357805408382779969394473847575108221917380297935701939122337685403334161322852010458472378451970071180103340617249572869792619741682729644058685970216820048735573084125634236659150597278530809605031107780313090724899270678964887710404505119742905533835436538221333112631210173463046040028751851776053559182203183086860209800859387847659294243758127992398731243173597774581780735935917952584796560701055188264448704645567255816649142620621049132273853774874799804358230672547789177558234001684693547753250135948030335787903672101464324264024046599859089184642083022875251240526571543139144774694670074638206919256680028311134543265695918971090113612696930745005380928618074031976556454932763114468241608914407473557365323173937653788514367281429505604593840106833000375380276779996295416583902540988561045846100003987596888749661100288196546794780603838129327031301819760321819242922334110504601996463000865082294171125077631873202274247113210354267316609819745138679334467474179091227963909343037156372757980357904394032273716295607974705638928700837287572404542649380709534959107110091493370156213436204305845534918445016940259891347714184220570339875443293563849144113836893164949936573015304099509745205212529477883839566077332917122023239781360927792181301838496893240729396890637246246684110113052473794318039855570704681715984247653416366458310824242864604022663743569762108357450195582025275880064537899494605245665878273283435708786131439610887676806055620574061638388173346683467111000083936534251654553218765767813092412342755213042020906717265313057787164240306586065947069647944743081025355272012831779406276876139700292016078605945372055911254914934898984105145525423796033691112114913032909273404985652874532808638286747955142687626231245093704931727104703081569266861731266896308805507932654114107796977945370055784910531189357670028269006941265662907946612092646187648198862175863879674184403764018428165560110506232424564685376224440707203465863452458674229448769917348770981710684797683898474687878009806211944930375688075541299448512256336166697776491069824217030328520436533264452208416001040519836467861906962032789529104153842416315431949153087643499746812291566252859667232663744517999727871297798976976140337855583905261515326929399750271479491218141723868774128576351934625342493835731108705386412351611530430233103693904843064093388210923650870720058583141711981985343390141905747017766818792851779881403516669487559482173326997453354242389488246054249022346523681022639783286836994566444394978840333919867311544816982741049071053123024654718738908762154809304262279822185329381040917289808923541730124647196351386717013240389968556154507177075951903181359302491759447961141309802249028428806846943604020382593017830326730669175233900766569192818718365263370650624565551160594927287717512947096385269918423486134526417072589683648545401475585351490275326301706465097241258933066984332701238250030739723922841261085030251765112679349514014568522761689455690099949635353946469536827773457765466363097914341838136678557855785240419756549453606731976858290023856200358359506307876060488469326797798940332089556521131407621099500124545385485390959901807029741268983565009991725373352980114061353863944393963944858053216712956919296145909874412423058408061853956359788311400554973056823467265125011180584735668253144319525696276684159144677932916937075748433246864946371382357722255791196821750177114186262600378842599233735876167898705407797541649237487604610972009325142818123309272638723193463150518600724106060280744404505473295232379584373224941652694708482093678627730286718071640526417337353878488425813667345560318556653802905779594404007461429717445065589359316870732951298222898408137126056179142399546157606293249953828200946517175608992526111369877378958576898939650272547136579162385685584039969545755274953521577390214669726741900010236525807338193548238189455380666452704602514720567116465579410271672255632237844029548224667973866554335311663954496654623056518224505466647116435206975180800612608753260149002667368440408602348738646570152290935823217974286090971416762239974714616427630153116888735597937202045286432892904014133810488216752639547618920552764109296717601635383916448009839910716888032416056079676120446836112304007259754233262516572198921662961257873904361220643064190105993477611739372230070018955934403119374749929989131003680623848906749838818292709389423844224418750703480037713640414564811644054734023772498981990315912005344381497116045625816167746041249808138115395596044250275555484085703439338704721369694573060879551588795775081539534447779650890784056325024477971380357455147556852262144457457762610300140415720609981714289220475266680407285942325237633121909326002125296776029996689854206634475963219737358298382170046143873203295026129143743633331214621871315932886176942034546882563630945943032406924920072533315590729890228547518596209865005675625763317626339713128785647259243142020008088759098436058752799438534351065398961945063341616157228048113115312507179195565856437153511341327045493162999249928524641090844950900169885517620089655756928362939245702027221478272165193998419453828491760756456443904490001633620914400154839652067937206353690999064138121127624579604574149803463796858801334910966196571549697594729305209879747880336903224508845906388505311882875925256606044880017026562320623301635848442172722167366596174716206589631084909686991048313477762332183930845717003258197478963145246599827547725585982968061825913665563906689481860435244586167893067850007758914147355426853378193781530359345012887383964100227249630779346784494878773882731902894362759059413723058677292965862445272296717424834310808847325338953611127227697752073198494452792819985047583426997052869274303820934462760292671238322324973431122814331644774209652397694405770405779473647836728462467423665745181967244848170542526738358748920208257090381367788074074524011456385247239459525468215841094116949849648329602914454385648186247457305822959623153752755684827111477420430483597819171715212264188042244328412851615988318791941384165834678132819281816556156189299982505240352367704986544049504657962974813655350629842064277685643716848987954809620109542983752935523005571872313285261583408483767379920280211862719130754038872568405507985289039148330797351765690032073376353298195287243309081529292924865781886257764873498585971707386790842837589265188591360424302049049715265724908305960888394381847642365361569329111822015780556929621280422159185375632041622061208173314858913141197506481107499842588923205784791051434934008066989338811530806740829816540292684283231573450917773128659995997201474200460802719725924600225058594141619125981305717045117370273736126899349678441867474284863119586982213763411705987422330719736887903454485917886145905492146053232443435972572605413942911791211232025187075468235977658478367007614293002172240270095639613746414881118039452097823929953016753824053747355547691801090459419084631774106995548102780366271016717378581999648314841973580892107069254850503755260381244047551346177054474157779924491815965603501065305804086808270473412554920433087830592592155218432461213486990107676190695110071408518507653213877642381315022064312595477024041430676130045291142707009938646109835572977487469178447764753309513527033310278553666835248946730563488034473492216847471547327559560612991515435043300730974729831081904117832563139272333094973556369689798434835139623318521180004089582915575248659502982837303257874511835051899198392412454303991962267619449369509042900060028829624189868978432639823759166051361436174992398084279102490422908073903839357081894618242369830179248217551769336161855053491116822765639776322199557304909392193837491380435416143432946173889632914630016838316906175336955397647388919845885122521849927524775589573520452341083242732324826119750558868566441934227365979587583076868618925184476390354035184800113915413721848776721169259870349752156314915843573006136380325837634217294640929558199947160257262584854226919958331909880139341643878293923555549628369037262170428045527234972460702276578433860564464222035874524691190932022300920150388440658988105429331827721953070142844694384762432638927581487320123255963090834572411657222066524380835033133264298018590772434246390875776750889596374380117085556714155157193849412347409256908129165189645909104975487716930579298975713897680885345897306376243656368950298641548605681974657673788562420438808413174394521793260105977540316575948351142114716375208183265015158266011681826496047958365853988030141705664738075984787782438675878077969324505291881510528500865389473672683190561226421693459580887199279723900081283384437656857553976497970884668437460975685348695011526554912176641415902999012035578143909047242207140174502021859910315758737550747766088769036399513969357203991602419213458057069337685686571936116570822659738586462548954172052821871511214782903896603617618983008741568500426486156761121252681320454584588329115213795479514937685455153755593087546516298369622833528966617834037330200711457730929107529824590968268598154646761974922130948396845053285360838412412954977576186933203288217382043077379042091329927396281447690381858592178142290159492303206003091777129370484243792737379035461868609995967599407287860418116706489713495825076234537103547072138234169376683548374662933320276165903246703517622284929253315262525954634243146232105691900290355684433650878444411159110268893116971786542240759796708895680270104438593594524385604467205683622532308574143744520289621827682616310940571942344757330057408675526313335097970208605524729865070923695404563734055370098264436139656825923220750617356919907985966025298616846038810565524833544774481094229322084291924211821810182158777203810782173053150276493956908839672146824298008876489342196983153517511317066887375801501967742796117668909182142040769709497348114945866944161059690552151123997292361129984429608345115166632289820091745124457298554696472262520904735588968702395297495810703643249957237178343923257251204691795499448922300308591725389282420970802687984881129331061899035856487033016309456460895556291079339540899811994398703193561546443887838256269767923932589917510213604895053563208710334437442047553715149480655538619292438012463500151309336918509863755838446649285452170525042023277262686184271906380533099869791958215182321713020332067195836228592483290335576476933591386512137985289837242418975594067482102432918814857049051244506223773877815492621158153765779581175865728186196009120684429005027641969803662000642988009565532983767428377611653161872581247767845898180917267918668225734362214500328761959815297996637424274404161893669349899273165866713105842320289004368264894262216498482292446287844444395133795042046153644705184835095366053318247197571711188685132435853648783965286497742889017616081922660163451205639621356044315237264815949981373304094745669259724392999115031415625631680277570963917963422512092029876197776536956914042342578456744810020812950702338762723126035048292995040612688848094379138871439567660854444520876856525373557417210278487271293506970289475509848330113173960356763534033169908831893786626477507612941405918452704606830420788749039802825463708064710524925175988227649228297391666285551617336694973163745683277370905339523225519689311528557723580051112149116576392466126734470907785162255936440783330014524699486121043971797612945277055317425841308655459980640020999355853504906496544731090967783907384283311334520466592116459353565720507652284673981651622467597985077322398178030750583538487019233616611782776145291310381265510238895905427593503522161543534373386721836101353549705298028403230650294748317009917281100408650919448813537774844994380740186112925539717784796957352064306338598292485206152688585605739428890702130000961063617377056448976058449729795871192248536030555582706058230190789873529929252596275696446139630219149817855710536076972489848858209364293146056609028867864145275539436213716658288256715722998211753823530811029116901566716104743509100578097978341402197641554523200289556528525843242179774878555230021671582919279727510854218135646821878337667833969129635258367250128065846817738869504307971329790596507489266496605650517136551690385893433005945726116825201520081621984600697074445408068399163187559599076572431765619915848593179329412342653360009238978206786332992805994671598313291983293897596793623428566272634340854330929668737703272400835938732218133443928117217347758889217327066217999167631208670820085899709603612277723107028437509170025047680301700163765218589053795502695502031934673020107433890899293556149311811968917373864967913601304890893273194864763019720443281398476513378673346971525210505694667445791446936908310327104063959992394552800291440467186304812939068735935073822786588939124077864620561217667714959734718836313296205896124024762923890354412676447379135800702308225126425101167048917603571669009411064574210248283538932153530981271117565031902121836561574836678229292708596146449162972339924171721764137848472922585779800610750347995625759241145067788630894268013502305332651112038710623174970654450294514915120708868943880040794856968287047060360003390883685019594526548660415817118038495281544752685271438277952397034254987507771508811904091857289175317786323204236266629282444018243681445104220749051907507841253067736606335763586207068740608808825523796330752273930157584800106801170447771284140066668744311444443246219744145946604498018783578139279630577661989259114979538928214669220285715256413142079690680319461851539675279675912971653759926476980150678919855220143924920431312238327576398562229619214702155386063716887802382420511899838049036934685027666345714805111870681655010965845722924102747403397579301150512591256748759128227645234778923300883965351547798626231441080308629655491754428180792125430863972622075464223577268534399705585662665415927121197944781373454150390972653539873822500549992743484121717172647677733035517608520200174837240765957103303928065276073014050242311763297093148572071512925210081307139279676923834494985377799219285954724446975040520398400648494725529757088872817737019176420930480718634454026558517112864953569158285401692399377256296258771585871920857476421674891134247589753480528265203258483134607554373399657788783093718166320492936323334992493638463913244047845271282711591266173600896533259798365031718296540357545068361065269015118309609744082645129329465927364891367736291798662252318578369090296197383279077395055475523938052113709690304162887291775530080183406134105698382247204317220632333136194240883891982850296163257695433618795313212498385899809052080609857432699739997860609667137014616025384105917105646422472316741236365429026515748360830318487412734178049437233230348043168310621478891685821090206967065348415207237600989983280631326344899451348679392025189111962171374840230601730018041410796338475381629684502946167356846299762798435707001041600476129841778944395478347395780219879071509352606883988502509285343184352525181421880392956370265547736078193696930715351931471317090211609881568130280920557757889695417852976749943246266094584625259442207595645685238501660103409383980409490703109453709087429385684592423886489286604053714747435979042090436711466086101419094247877683381405200100121976763240857475361097105204601815597160701165112633875040717475910752488297555933788915999240262310488000305091351703967433912445304832930372725102797419963548043244663594931416725068939906694023218114084630328658213441985648713505350821867281535264401237068640300279023379589173772464090256950909257479505291033125894820324735227551718757380235622350415832405273250587630059015127668782483213964014134476804328149353298113990292003450651879974632953612866645920434274002360650340305375279259869741231525705435529529634641177289269974532660116397902797850528333002377936050732491971177547080260122751239726707753055605125685610544249678585094851357761076829167692800316547051554862017529403215186713723386987328793983617795340245123999977043294707535641551785242672832988965503090876749463370371556955196390290556228736399974087327927055754421019851488339716635789359023166888469918156614719698863584819965326657480613862913341208220239399974734753962051419027345746020497987227735253003909423820669628100001947938819033348202307890317410192871934825801860500030479545989087364850917378143090512229328444135468054682487375346172534119253347602512940380368305843799144210553616888638969116944109611830999528713504505428921960482674228014291907020923510405409464853666583162676369621322994450948658566412683453056796503608877458395564514630039307669803984510625495157811831110416163931806852948431424745905637847814759378383560804185266134853451311411704808907244723960325696316236989935192392514703341321656967931969173482259748555957006461471862465091245255976292005951765593940504126792576127616086113811724810013352643243531117443342103540816448471840143878405380478412023544770561361619853764185420046654995340448483480870132897152702172327524752362149245306905455558537032358071138973882086432095070949036890003291157857739655256375266966636427085241664339282589908107828202865326301576883594744004190283455005272113342311011383289320669578527959176581723080978597211576743005791297733204957019091556974936388599867446940593410807679385331014318590364544706401368019955577597101942636765942317174342777607137697457796209553723819824060165340886434704808798322297790025239988727644666977283551592053339655825649837630359196470996258203390619462896398379199851522803680597697476641333990024760815951906048043986072811084137102912670433673428080289541788164055570876226610320780689687580251801552540979592383458700776264077946309255058226650892972491271818411726298420335152052914204333598712638766455589454863713241483143160926058229265400172577091819366322018305179429450036759168371001307072402822866247514719164775900047390975688633510077382623512126517711962600029093042342908549167459702330518375352525403363277231667667485961345867892049468847613071534794029444071617658015871541723393212950487526338460950098316945245033754783132678976779021071367467532896064085383752519038712664641760018439886553677722381628367943700965259833186963883028037879201173607503750413455441791457341116634921453231944864300485267235026096620854473982934644606959144294403944656975169014740080408561763667653464908667107229661450382614524726398184706833709647700229189277705765813066673687310839795827712701058074249221837232033527019019650122234176458511418773538487985309656774652643904711496590346652970536582114858221653883795910013622852517190683937953900000161588146656971694252625832266316866867004113773888292368903925839078331815266913958712698498146296013896250355251652746089487212261434312735650897962813069962039021220960329124212181175925565074496107394176747474567929481273783267318799023055168984754427741257429889846109087094067064715679616141177119378821917421218761131659885556203381865765042379779003538770989605981341885454465798939523213741167798350895162482855998142144931169474550921360176232097207659892225143421268959663447204420106376834831400130619108156978337739180846992319722017984078102616170713735753996836342485622967664052199106141340715932086687227600486459399318031227568595352910987312144140009256094918619559993719973059480744957326963985003557331822181232091154375397364105532358954970337325370424835036401287014552153903352819067801923727228824674980407759561742723410327812609013046218451743610128432580663802382065499948140936694064667156657455976791985183713691276912472390977512856360898565183651224124928764912877058433514446956513307625996415007437258850813815050637385892776860512824587152383242986877482281381306328649854514754963702836096918093148809098043556564800855233059690101030970079835274111286387092440680570000761230028921584635925773677895121773925604128450472422487077811411322456386939222423964126701787247187364068919893793697681382014832263852460371242548229903326855800015045063263060175118743062202875550193781867662640882367035370695818808374128497322401643392653251154013608802068085744387431027432319774924234548566847086495753389837177595601790651372840652195058455109516284104498923731273751999811406287833527578064472699432988165942225158372866722170885219112614272922789035754344932566707462381870704758780314480178535839622020700749160702878035841676336363113021018826572035899814470626272869711951917496302188890473349131703021374843365996449516015017623578531691204371161818280467721568474745160631730153319933559573800689276633983361863795662282573095521447988919498235451907865512732484506801494712029803903387208233147938653684718495074184926213271530303340487176497614892337931660017749490654179192419709507757652076474528352769755715981455271664503661223889353025228494209312456515889500312547779525101368268268660118172818938066698473264496795824821998514712033700164418746560187773842893592516306613031876479128144427218792613032070496125398161047326548143832693736925507401056240390314331488226869362049123273833090614888534260594246858016419454735160163643518732358913443228882791248355554797058071484271721485752587063358747429757133075110251157034750644636716199962772512261914842251697149401698626621240002834265919543681405106145813464845110620546083126062639756334176301845532593470721032050255039614609590129517539985281979967420216512790055295674319148153450799132719315737369948345216130744738829610527287281391959945194302172759197494480293660626521042609228675847018075615033581424145218741233088674246456722417879454013957594838740607714647087649719418900879410116732940825975343965830378549154722759380508407475720523422217843680110829428314020280405870665415500778777943997437500467878394670733083307747566657534861393382804224530588868160381870402766156443360481235560533809302435251865455480140200391692440698870744269622418439238714852395237654841526823621754179061327858671540398242654895373981511154056529030705346413025444681484381585844738569681277055518983365929561097037223430281657946056891751947940436743436927158121860842385700883684636336266467384235940026373928997776745371272565392557997030701181162211910557493088928504167577653813519068447858000848861078496823892806127583701715600185452211618723618843230943876178971371575066247283928123056488221361982297331685991183651717907840356698577059113934981556549005218376075771664174530144826427576211123099373203208074907462345939072761141864182209003325731539950344040470812721943332695243978440441628257559448741637598962547548344842961777487578433100192193756434829161502960044493483522931556501808833468649305901158435133494871393405306346259954624255466419022269703960070098958498765267099310421737762590799046272756826937530884103998184962513543681397478274372470395280544603686513837968828293051100073245203278127991913921030738258351864454347571099805354636063176301911853767548861628712785044472522765275003381912313533748140683414933717316623550303200817232768513013582472583343602147224605724921287317617590919339240125398138014447145121672899309537703322305764196179218713836745726180145601847581603113036071291059603592134180710444046206028984980601278704729272134423760924238601952451910117883093125004515204105792049444385537773300409465686243924493540294860723085104050357514218065682819524024817746842239145751697545786660980712758785208293563594763248001655012879728051343369885494595728594007030327230460297060274965246509270262796163913292692485036103361826222378495539610684935773055901379456666318583860903595691301102402471153481857151590879410852806845727167705283027619929638272665125979683904923555994451897566347924048412978557676162595320240506429734849794654861214085945238739640549615222446051132527145601475609797357811307055742622054921193463791084160109658521266409024311840488728868785479865158039659643569503497874665854486389970182810158342243490369128355193344940685640141635890733199023818846090050656039658219198865177196193753288317680548572303245229661317887749829476786483511225641332456175050162182391775718952311996130212560318830121828306539857013770111132391286462991777074557175489249120577433745115954195394530170474500138523831398909951341752028748053653970237678634281858231308496148433007676506600884080290635676240306601677403473393196274508387855551993915024342006062065131237309302189989803762624087356858551614681451852513034813018920840507413543926095256400771497736851101795631272513566984005763445137853102750614725272335483688723961269524690873721205914633148616859125191515313280797275987922979859328929958036429282039925011634296029439312411422260803888401757623438202462624414116431985907537657569502874607781737577250649079927268795148133810090227355704345955585177784415088841452360181228046179471434458103318576226941905375714769620308864729944331845435354362976450205694396181848304284156990731490251476597167865827084198475162927065235107072428187304477675744732931038918848456312127772041187035830997513127952174714893010366872833712514565479092729567586225266230004723581799981066907338686186622170178081738486766045186913665376699418123276814400004868253262038183624027774104830884697879165737225361675288528400713866316142867778999798405610382340235784133071003106956004779827913158614516739998335612740485987568391596157024332125826324831337287046120272032067109949780678285533106709643456467073809233643360676510942916527598150585849960728739961148385252189024676413224346055736677663893948264154281894933170540585287342380968913266994118805543161905860105247185396224388031657049034198142158453041629884509521177471476923008942621757421514891197898936841392385487824845463546928465809417553744695112512520605967309893241357997042771145763739676894059247385427678817036661640269041082192126725023598417298079437428804008146595249455968437697398673010697293951504283407426231216717524191331020007820464466044203660108618114790710470083059467088520167278977715108632523317361864771438914202447938925430020817163044225733256331078305840585727936057083331702459644803304783172936230750996251782652556132173708687707241087852817463870450750855824910723251406761225552370091662793266909822036010992666393499599771917556341580441269575258852735446562684242269358660055739330268268938796914041415991470733660623682689323648490088374158555572982241413415803486543670997335778571600189691397957677861785601447030542127323237901321082556980923691466408779636096041788940868693142588306166764943635372027044351569459520301126498485779248547919097335972348233386424709601590898880599633832191908203005973106545087959812218636925097411865451703147731110588784976626221716832002091001074300141190187332881496802339269443546759851060338557585315476300181107767293222537433516585848891950676464146418159707302617583890412792958558446268289011926120756257224050074698850798516587306046926984533380062037312475074424537111956290629332170271243761980093095192753515610172274259184360222864262285150643136102732316895528095966388361251587099768508627325636992636208202005772219834864182090239880465105078686248878457140224329139463514556066416666810087171511338357377814778903201184863067992434323466078061962450251994912977211781612956821531633028929569174229886858838057510456220140472636858571792161567096921353624330259191766340648050284674254882502753408231513395784601697895210687125149277927771938079199691521626299078394149338464433081131513303962032558963654293631511958603109746580557325426003477458435176129139064638953170538754295598415436786176200175322586515943279668660391570541449947540001987183241222930539091717494496998927718264875122533820125850946162554030901018305130686113605581713604580953681139562163368428541758831779154618446499685816220155633575519375225959104577491875502704625206446467808756320386641639603274026366351364918587766357471231667945320409092841209235718600343690109903892167997868041770272277121617953362265714904384364024897553254243652250831867283703788711995745869516242054806328782137988217673512332206913039169218332583295092067543328230920720997076131301604308117906296748051804403827269849643675121865752200334842242352630091835595459832813108996971038970225958852593480149754553584867287063161594809313823841173500968698554242253115335877878513690348399126315854966818761123830695131804890762323890868439817447919220551369770164487706709520754916658816956358323727009200587005672674901313663314069924859610091285027253996391652588804158869147056406813216438865979703100633871502499876608481030129216101799503795553179591689554663349523973274946686382098913595382672857437403887348390069746397732103556059996407811119951293015803489986737102741488044125915373059497437619106106187999383292412839521334418916327180289116016403393147654074244720228575889422761644136469686241962128670981536312497498257608096077978251400691693696307380015177565143902114343031928983126297505721121372780207566462116947449233140550859922694891529695023000355930610968808430709470932581009998009399019337900866540312219765262503461251814476734785097059511454349693167842220163600428400556490304737251205399200360812106438647596324445635864098221206771736370688171356087893117446037827949439608490028855824728612057413385091501062282912751704716590929216525438099146305073272581554325544343242767762069147531699001301873019938790934539038948579331356400005241858965852373875382705624174248722137915631266034113966814219995412806434701459361439291259224482625674656077716412019065182883132671735450405637044347538090070197548032796027329776412093937281477404393410585421052109341817501035311173441241814912390692319665201863112653087572739010158231210182904632175605905508903921771882535900955598065880995792377075912493980511044515094817642639197402862455431762999860733746869117634003643658607597300955483862095341060272308434213415143156207562194005091323857674731189098863081114515387848394444019790645567626068511097567235396473939824961908605100185305364457547580475199301182396940218727817567036506923535928303557491971743966854901322192223722786009002889204976720743028932655443262045744687498583970513042948566313014656259695183145163215291052419811071694821084243028769249731946262008502866890587003796830883428536320944349118939683359668716978576075002967557074948491525658028893375603907778822440201233330686572809681784755923692007800750333753118638279096003095372409519036912099405667015414440001760921392939215551858849447540081650637474099090527938707626596680353731243416287426192905033181573751109982798267887921699638625684537765621870223726272368283312649576136457411388968427409839928013497757880067847651858984125383575245933602447705329196058469426165755063096086348484893337720585634658646932987727340299274074820365145689163698765961699509011873894182065642924827833749180042028807753459221683530342536484891396236344647815793001464132549214498287924349315035583783150102703880610654652687719587450120085731994251924702879871666030383832280781966894120114219825068108936757999632372650841016687330728116847045204985278405829519245778320786311500659773069151581846657478269657791386439171184242919638174945858444100520074780096480840530178257018984065517445803515515433394129272762595894937066897576104895497970628888533448152854981385672148520534109221062102603996029615751742082672551196601587455280783147477818656686763220684532369168208361860767673807010895201721576446454505080196232286783465185752826035232704774800459716603161926429133351269961417608510647074927705464316138607139601434247621450185590956075950853634761776560096727687769751842831031085295599601308421612424489802935391803297390310882331793009471222674758380259451493621471767114541524892376228271746742865657474297307205758180178021390189953972072527007755450781483243538675463679847697542196531974368684437292886596471159201747210155752470970787816597924854492580690774567340559856748849541069444931952625682500272980091716973971198113378192494141709548836025051744918488223845175942069492838681495367021395402163986948860639878897570486486954679003372786435780107932435299302323914302243324121054858481437350462705854236229356174030633957612676741345257690761605348538418341484699258604942675669596994287659801562139957876617747163973620587243679094021811400231825626964902824953029137601376095041249235129269800927981625032029126791288674847476396761978724060704233272923371555571717029070800954249037168540952765964591624170459372126690298436603622266909547769049151467619785032703195298054074129573349265476233101973731150191269734538069249678448847347963947124776574570158652559711616007730467375355115931156144374853739803477937321870291392934622472442409072792212710083765497279340764992384740995912144693128449391223663144615489235896642255416338082923382631426037158530025630324406963697169834367861213469072127192914525573376785660236209728669416162147866795818858613297975762841032694924629417288962934798845049660993666612352679135326702700110150580316202129302376858849126618651493962811925148783814500645327903946614265438730482931575567669731259867350954693771375575104060003109654748754046590070761838658772897973938338509976278237530273831582751561606131046523880447120413649781467070253000434570649477698534169696763162923704905402808770822528279346282951543154972948362543845390717498000932403350188782902073421167587367989275974757567158570543199811625025377137711638665722020688376665767686457889513591829849286796718456617646710350213390797850119236778280927674837769502714224111163722880334138712319038456546511600130111924810512880610482236427103339940569809216736357685495545379283656794136832794474821046026725618482667146570072203873419360616319939745038825002334794656325265965817774516434211083905873765273712195538430844249178661480298768633011929041194829773484405834640994150612640208528922747324358463594491732067983329215734005076509219380441110128388570433043252035196794025654281133284257668498621966019388568054016769818325127181326073255552786588723839225611269521717904818574074012174840269495886873096043312297565365363283565378697041633889451676342653574092574098366609125049362273559192830003415436777290036874586628676304893990928808457841835166360049178452767320571321219954791386208257240021529653646438144612582861252125105372406327264488628703613489067567627919466208134243617880068624511999287612502121762563660643667440194257684395780539285088254952188458874199280684137094210315415993626223925662519799529154367119981304943539233747013901322960244879835116636458420467182387312822865262409200643678060412425258851593349966762261009547692803536514123794754005660840353241103297074942671778618269645723128097992689737310500926570950731050910578428042937486189672559173674296668340408499650391611443805928783210811680973217680860463325623180467036502729173820270488686413904665879046450363131318631376785429649905858028052043900777923806868042128145301727521610977379550527102129220953127077487704155827940283738279113937220191522231783890700818905033169221322736366502953401603019829849353895364613426806256237969724766678850360884135339848626169940817614546496495269177426357535466790239729247428669270246428763232213392429060612076451176418079938441105442632739703547184840605432020075566552131908072019645430134000729308700330659497838859350344458258000683165419634049712773137307439253928534053370804536268139196500894111055821274262186822538132238423679070233857076093255271933909313359316123783497450554013038130619774059392929862873090112187991859323127051038550688707571794434950433549065435786318219011363779448342572953165232721013448218862497733365373642616001241584198032352667910651881941987308623927495036618984421469761908100858666166733982104053429506859975380600884876146352852366735091219967040517749369224503868134549728980766321140998842994611917189583050392000452286283568562153192775994519852550463612050078621729863216004378290044981786330678393870196894906442163996482837943253660653166671455311491757394212366207239332680246521229546276039112667955698788033177176781447166001518388851276886529329288076116386380389616800413408296390220455714436119309789280321396144957995148387774660034032687088644980169063567514503123659465704046618605560109281081537103431688991220577714335050945737593608735833329756848904879391986028188229988760705892431948618820171659211446865587325776421929061391928234431210669417026225991022471955154068712600402355322412830145430577150004131157114037925662308633742066399231967613537831841386225222242244239050421003436532747012845533426793900295253160416223783890369060460295788443971184618673055261212994153103288075236306903497320892522377627172157781781221219725140489314066344445246179443421260457783904277796426814773246336204004114457344490259690501794820644953550397906585955328390773465480211281054722204246380168507543978893278241192548827716711411589087584680206254456560091580088646965022263206953573752149553402640355546186151629114787448702206447326694518528352291263891506187927553263934590669744671544421512891381058796386351225940147342016697266978004989592539344645718333991185843284943912722515524185061312223589639145787809111486494493837253617214536284612207131220062959924270895244719118658924016429254804707150258672639909414329822331497391314652869088023924363568508390547875417516154524740822152821353356935876718689152479770068253072437823396291967992230605304828653873018367862947794201459733331495785424916642422681062028337810139541243701185186788996015094740742917034463731435498646018261417030090382308497285476102455842765394424769065065448985079801153224187215183756696401720900150294207946994815948226300843618277954906059561783995431628489770259519647206040250088310267443636705786244406194065231198726313432852043695742788861570935018077272710705729282058972324979159891595319710015782526050107071977886738074984124087141416265448855983477754390331043732600290833242684789355117904684811853783110900310028742192465920086685269121280951843495504055164382117450603588013414682022425673782215666690964318138142324413475894944884600216263135859828940894409509238354532683647459475131322200203448391787670292777490593896744714981704343533334228993505358393528811880396745033872699236895259897899234650332493705760102156278088945386168260082210787671726842692322119143924590962994031191903215602440500179634819267140988874274615809680556227183985637756964520036041758114305549359068611812764172791692425112008376046882602250149555219371429939863612018091611362842967028353141984112051986669233144198204330241211864587147052923082101285436092289140904186132363829106685763628612300462862047374397416401168509235704968308314217561934179380226668084513720158173867620272521488516925065790292907876205910186021274539944622731890444534806206932531827774546875954398530249102333986405998456552744127768598734279351132983508082378825258425927668802375405302080132817148379036913927220212012297999490879975807595865395639016817776505269574165088138734603299320604150181064958887282798244174734720575593197283361242655233619195014930148389784809277135285955271499409424978169071430276751821390565646614126962113009056446904454776803152037207907697155688372345278203783354390063254061404543390962861114893685500179144252776680524432091805397863897778066963707196659410749413620105611872933508025403290058575032779465535600045846656684307126367359077241523203577888122765036529827654544946276096217397767790060710368118169019813063771937781098913922194789491693637602780374951609029166417203097668904488768973153334542932176353202339466016171949866618893403415432636608982712044492049327890046672093382032384043140989680983995242839312086347131505248962437932400561427744822124054532570521055858754303944886750544258884492415986607982379624727918608159976400161413293999390951622886198092157313860567780630767546346147638882262595964860477283523538232410091489775241373726335177411503545939879752575223411289052701318599111135685388423705750523630453495024269872293718515439543584890274681369651827803142330485259004296847658004962781812136448487751563614278126706233761097227723632720527654158048259605149895872304608629992753933674545989198223364979918321693077952626403524356558568666152052162044991531221461604953928634047012867246158086122988180709148891546405533029178980184952005882397254474874398050416602305456566188293533100715980621318856370382625356057027312020101082293800470985847151174535213843157583154145684097703088534161718095235299544507629263205069833201979390878476814001361336726177901871325535155131393756249012658839508923860289567567399402438144254233275239358757798375962882209512953986837660636344294731532643674504517939004402953262911467022037152085124960373466061846827742256385763215686544492506843122783342582363050010097521323045180980554388954173786425946581638958042087643519428478745069437462878053454937300331997108094707931423034033030183919168816828438072073424302304812872142892716168517936710460961644701285119034820284517436309549959842553607461854705173914750868978842395616668057754493315268082279859193072279306628874367684823618056196140925356303848461617634944839198508180981684947536123805086834436113534983052476573244125472494845709906628504272237636968947782361811500571660232948709234273633698666663447443151512733249654689174849557148986531661370894867219492738180284786975805001158979582865354439788398840819686952578427706140358059666118918804789210810149614023006241316176502517539577967670341829065755487362942185009625020770667840288964083843646967494756397549362663896961664785324303571937602459871691097729702084353841320489485413746322623763243747410620494821838774364408574230810972797716725447423343994989569180936020656398013638743535435326965422814690806696805182144976998181466370167847536099220176331749761123588333908568117533678785228555583634370249656876808571485817235355593535671966342317456226131542143616095878578474796904905754092348744325193576025940666278375929295819714036823230303997268774567563126416020734826805886990025425086527380036668736333351270791164536508794077915069480286195700195009088362034136713997960858878285412292572598965495654173258027223177284868991348688148805696092255332993807811836255458098877753654833716344574711458479030144666331337995525232179955703726647914210078778840394508604932420248985302775190321450833708610326834394171004954903327986249336750167225587927901457549571493399551016917492274523474544919917457940861253606616027741786151236856574666004525694071022834618000670796672362220563248118215531175948814461192363046307371116323349836906345627788009759837686685256477496304683655178687558746864390608879586493007315012242279609254912777426251349663552880164183679216836223622589161237797678797569327830104888450446711983442189973389357304827836885102061063363536030432947225562144329732224001537924698491658320950576685255568652220772751481704140849418832046124639497988712761180825491626225403578585785502419549632370792884131189020806873836755263272005705266963821271023190273206568588755529765213902449282437070539501025746059058248308191613590645166461330283251658158169214483554733672491922885693319479845095324843469385152579966859265660954413550705200032593888954701087986860551409109671499319358351090009020591946453668820878855236824285835265056071572592414655113927880077716750975926859808863341092428485654362742217191966185266859777532119648805806325648139003483712837504714354886278105521528734029012506621056525950183460021099339969752336945436955892409300287925417714641890116356067066762472471717175180915238361076164296172181650970277921475961671875713756401459148885782188860201665343636384392798929916706294811548775665011432996803420679889163399389843317863722641372473496189396209896626394405734644182285346759027664352744952167011367361555861514730321621445102067184235301089943393216675361540943793046768775849484466112559601845931211126711806225104723943496068421908171108675811809162461483362465763313982556337129844827356733564351400411746726723479864965622514908475192965960100697821778566626058073806223624524111779352210689414450107842080092897465597708521100222078980347671175239184899478469153505382405773333560339691160841900749162602892123095274808485682459098508430783093612788239061112979633472533103695305737674824054180232779178888468320340596334701674313721818134583035179516388535510304834776644308663603588255723221138064918426914564454543182604621082914273053449559869031063161478836106570971560370638562393866536242203229933224146336418660971415945310432130884747778604051387942359763577386925953018591570066274403018862193143482093873909673639922415768308280849660570867486894859475802567072151202908204466099812701765769792413481064080604048100009061627723334819111214338426688159529658999738149864038007941926558329824144131973275783659481001479519293586329731005714110351564216835752528272454233945940164243784610257095095989973953246692116360389796156348105925136930348405108085367577765638456792244610936385098635086473793731839255100425480883542781940346803460001879195656438798253256420543447042891431804182242508873392696195685317834712577606259851045989917498133057508190288670643635196673872490651803912784098981770944770939928841268326155362809533976252447848326410682734900412320312608864550317940934918021368936778358119715060785284075415180869016143039668564591084676122933659453330382361374695979104997832646588803528101608414952436905205709166804155125556529180560432593177225391739784170152821436214238502850439205891304398649181508842634467337828148067678314173990469158382289929914335431032746455159254201863647509075647753442750632945505348964254690526152290737258895585470605550299779745216967624218188412346395400588602986000397437862260429406143215842647753862811721704740393999704595987433277516699386159578847322537185320247319240403377655799299306280821230018125558068215942191660783749585464075073436611469682043732069185638241432624101678817919849353876874477989776244249370855165262664061037444111578386664810110028578880695922869855901281658721182667248438818944445790581144467537793195967786953463397988704827093163944529463643303092473550433211338236909669543125028494475757413879788267725710343564031895365469090762904990328536729028950511353932707146970690731414188802086097493049031599753582993342648703066351561550733516777050636478357972345014715311402176593669702851439221124571689045087399950890460201188457713243773577507678658042893066255026386550824926284404405251494230115389694282981959622126996682997086583959810908210233331914535566655193446647459045426172419461470681108731799823022551431353106142132834256442522478879918561179309534640077361094799213797156125264672622523262750620731898824396971501384899052024800931501149478927107207697427945536000794919045253750490233741233754969141244520622865865249251364112293344932023522297451579783555328813126291145350713695229942052146352645019212722912142376060539040984007084558254186027496486434408348077071441609974126141286548300407271723763312448247383507330065966714778943654058433961814544317334374014093548952935704744769125094402395300991864404654405827575416349170725232760885672397329171249238045525351853290348624976343725188274645651257937679907265241808065617939873255164423666010375727939871162794643664272985738675330738467322451958754382588639589685713893601510439032114432039154165645483840276722778578008065867146343880233478141222705628741715375884711344837749809940301830430084835747862688490096272815635104133529428331025433884984921362253790020248239196422382871188768625791571130138270448565540381825037963131266967770688022950587032075149602425412349060769953390600637494810188784502607326569863082228388274774221275964836415488708350704301994906830690281102358860965396160283772253664904197029306381862876652238147157189322538105485907228196766758590266193804120819401260583131468016945641559976913759890608136056174565797931095780835797281174147864704958933568416366208215697087132729869811234539429691503912259259552721348497890893062996410172020416874567538686866584828198696033429661512962656302206025213571181592201476646479335922022804502634886380502694603152888756014401044599768367996786231217434268059182707540147601388334261096997336367791725156740464498994127445157834487696746311651220834070220531249437636918585069587958574508045287135862690587881887341298382841729634833918106276159297676023912892464664347627689367023087636866908408613298731201518780537384812589418285765482163735439880011306560721567528947198071664990580254956262855342529556244920564950019825785567675969314521626924351367838478768438359247570020317992643365354818056223683800883304391661035879705595047685647343757952637597666014604998346344875397349926261184273180295399246552892605689614293734042521447764155458772734183754472334245674512750770259980506776699883738672544537690643936589566282027034964256291401618943708991638084475977940494894754735622515461895314545305138249795720859317413603899456380042703087265200011652888077508140072497729830988775831042073187046550524303636914613631342215970782002896907094570756501726272026540201518873378930337281405287578888838024362980078477561173888106276320746129808436009166234149007717434826586842558816312688851675481385574013103442025049313016873132362128285137377187915475788685225511671762026126140312484106537746200668797268726021478706751218254817920748282269293649514983783788004426664401938946002928037349419393498557150360696798059865120939988454654351243529055037561582446360737903215081711391932944176636081770041065371234724183916071743541913048101321017432484114142892178547295870597147413240590545946917202727833297652446918036030500449892111150491117106879876938902892659952662958668574791928564190233201832002223438627928104728466630808655189390723496951332402621564164017338621908599719728503335962964386378932418090090008952642164915722774041610919942638911898148263836828578402164413971858941699061404045761410680879356292643938130599542113917342435897348526183847607372070313503245511498641274917193484816168376438030161042159553699070893763248099094823988325397780785214533950222518682269513214973395121657966603029336796033306807663874213958014140136274413702044723564391414478933595508185416032668810572408782730217556624165458002761155081260841200804765673681055031130916138275604362931624510503367199878688266040114048787312035657995495437655418491958131586920730224499721954331905209760193105844641048979782089516173714506001344007309521705661566521171083166854360268087516016313507227732199293200353093853651250659516827357298531477744959700523079701349962258881709019727992098846963995051426582622622437146785776642762233778758757062988107043118039375125558238919183786697714183666516487473996221086455091019920624901938423124342463258781545154232888066665408479339386085404612295557717675997874588951679734403551049836423319569017485011715358170081528112344429483186479501848145834967085819819120245040270329389137314271135650881118853329727424587812252936861660105393784305343859455904294655515582092018174968995463900353858234327968688325167349894349417743717295323701302566593554467290521312870832453688265517700420178468863797814246238009217769836826018680967293719028795064734828615222720064835191396070183599600839327281676724627926975183568365590408045809021090798032425087304299657732468645795988333095712836607105815004356399457844571959844934905393323059756498310099658191081299624447771788285606537378789204726195160269930508368520737310850488336834341013895336354734381407991365311096461217875234806948491071872414462405394195729948281117847018917164079400506544024689562368743678272107462628621331623484246348890155043702642106260021881632875038247912241734081524343676799658728558364252246008221037416481950796066600224019248959544738296259394921038260783017075231375239548672833366040734814341078964792472281570295124659232495584091759694326978207442766578403229667321226024310405799798732100561699376581446036500566245704090312179375935745095772135393708515419429526196988873064443596141213926956211254527984995455012808204383317192192102348590985262730112354783629476157325514984471936067833264242367274657937305978350796539802062584267505133573931469725363596725216523205404432193030924786245514589947564327346677077709293487982529967386251550810934284651802938377193360516990434180192007248369191555577940634350098918959300496824820162673801063369121724307659933903149331989006516657898352974867498032184503094595292594422416008332979518858746004637318486980450529687215562716292485240722478464354609360748672538055030922121067412499376622101891953024053306796781471642811585889132487383050710001983015459158566398179495178593499007741681418288490823434726206481480375324104317947393632492003064471791034629378653558043113260849916646093958358185131998039339215381740315422623315440250229156390378956574409811152715236398891475792945702901276639986229987117946398551021340370321686211664727170210889784694090969387582983014970089048218470442496138252535577309818290387799111979826292066351087686814470864429708247661005910708429240057451475656204020338409651384728255020616236630565223972731108992994814749143515951127595404414287018644406421779755275789835380351200916434088574261986685712883932818737277703504309456653576771017643252156424290295425370740656893084445610812325248218081833778945614196749377485804388530394425496669980903214043926023728486523942769842618356937661052117131518439674502151130937030737622776064198455509126132751693110975713916274032880770221109766472921912748655910869510644632586093423929580482360625938072097481291328919593640540468160492235972395169329906367261766629525521718873462821855039719779945166982951282901385964662804290132117613627856519294703510005275314984528684464171497087836061983572330716214859076019863097983356327303761694471586521372676874805664446957360518648061839364679079089138658638146216778436358800430885121047658046826744738045692364818633790689242176607183719429627861405864783120452903851746075744755260723992351868553867310432086928093752433896385760440342813711509595427847483083283121576257195439879141447290651129515020388397176244628293639234632650120842568422080597173697491117931179531298124297779640608650684504710483076146362030520454647569605396525254461259179975874545438653630872466349784224164280586272984871955012538551009542986067696145253028025012070834098596630760857723091626880145045404286654309285353016140936647179009559658901700758291935100435696367647486206346622265428058148935034973448917240047844372546640107907740883308422212174937443198537925190388581198150920509244725023609521177463920190609959351110928943040263132315771563858911037163302407167659129676010362455571335234317592293136132575808918785701490939015407999877370912282412867269859715709871662539871890077252669308634781668174961481469162269504223970875788848205879800539657279564113708679432071262759814390402228623082731235096784014642765246771554409632604761743240036006442883760144546983214042240723788522822068504880442366507395585527943870490518759506031992087587212721446547825844240464985275363238404566750408731273847127341041929065634890802230202401679637818353803677303507119199938153338242443986293230944303715777890774507235936267873377212652232360850059690379543526140028171905364394295467324388285560340853088975873942287370307346570351908518530135244449222499177309871202270518704442154929311000299293006182210480916331989592796021860409489182034941894683626787800903700902571883441828587948515838921870107677882948798824428829036081210418949566124782235541403750087478491072875342294094308281095503541671980803899579120975132807382055442112346927101667359124256423767265314180232055865614695501518201395856986062414991131061646792447774669729397495156465398146800133504005072626240497887131454839552188405798432304598424686852317094056865365567978271929224291146529791531745874721652490986799179085989735306115748066145041870370585776814366871272283186673531460709559736723714957640435068768390193803409082167531928269008343776019237073725283557121879414271176780173774146955475091394332886660440415407493186494565224482810916500228370734210583921993949813562041612739256643734362276265251370652030150680931820150094979548459657038761331037930033805224907071809741775303192147443832419853307896083060080647645072613330478430186281381524302324177284172042837066144539683113080495332842718387786298441136447654234993690640915620956492467991102365896791752168168245925981024194242576760653796436291703118483443616976884796021432923816192239420785097412186162634173788056173506808098866338956605902392381325881175574312808626371644256664662485622079724653262485963863693135591965000903895766768253838208207412903775824244837555307683554657576033361477573573414344926922218573815486389035282554257563697154329073480889254319345804239122613148526956375342619277237873927467479111885887725332691627704614889032502955120249441533907835023710319162726013280007145051601084993277349929729458137431116754152122697819785681380168202542210111834738434399477564139861480892568312986903160653219343506876213125418673923473838342428227496652735475488011866052654306544920479140639684951779293771022927581402980034581783879504745699050425530010803573880017433959209694799233053373079999621424230574290482108037555358702354913945042869985584441207209268361505248780591799517989602206497062168603330607322221180360175496847273755380940556603095228165184752817355817989915412244387866884529998406578425152582983202682878683026891296478919785018278079429775219732865767651424087826438415074839332976213472963261744692186249080235968454630502481667346465471626482108656605354623304775414839145863877632162090161119591183855007851746054360375896128653055225507079751067978521330052128054554472687122884041344992145643867888283180201775558373352195942735871011803931219582749931619932109835977115408139914548751787926613746492021649024964997551393090746486641262379327888215145083480536938828010776211068415575586605425683262005086543111726108282946105411766336362125054260063107042281644927758586622561430132584577107622976478076780162712903451671823240945216715640902938695055106149015275064872501264431549604386486442915788560155996964276880723921903312962544247698575527828867023797101517697468867384564377868466099413513505895029552027234267664408392348963145542354590513080559820133176197282625276374001391504586410610557562855393347899052362942241019379640830421895666209913085855148269711506613585070089483188667278078738870265129071342990542792627389560279045941298365313447526953242957895183831256469518189778995758656603757194790189444807617437876760217111514944183302699150868615529619132770562654729779318273661908620611185493614568458627143571548425365102840686919118124073941473856071192841171040458169998677490396664018826325136003887198789362109032711456665112718207475117587031233449184756881169884730323671189844065811048173915455505139997737400858258033629241765649460695701775148867990138149696437156595405856129693329540090664549927970367520054579372124218498274257256894766853112243646155758896311970257177671960347174566064382274124901126729833191547159482558313262679182388280986644677759867415254399883208131073115226857948259580224221624185700660602541427106928070157733260476149395405530278775084333763652796875526651781605538680104768079895610153445516545023218658516089742752048006597210261259798768420028955606355206135384256617506079059843323588351270181846551350624078938973634249543755836954047137159208000722917309424104468157709829225198621633422719378068819055055853917515323369349747161794174538233737689726408078509508764925472004314558253751444933982651680946784098474018939284604252474438595529593361215390185520774053596623472078789040749797114872917704250844308099302495019041058722559608984244861396874013661396446202676383859025160908452663282904774778373689580177732385240271234872714616116654218989508175105023092416920555106579048919144436619041030176530245397683263809805062383822370332198779617545488647210414246284508362652037535864092488926268032408373842611630008376220569113844935021943944178267333441695352059168116582605990387936044414619541905303251002690024432695603811426910799113446236741689050750898207811006888648922603776995853026138923700503319464687248144213328785136002689214080112498899415562787816236209869186104879941776691935771558374606781251872321737942219339437844158378631912152907102927698299716822395263049490807922735527957088734234051696179522923844761258606706304651407460036909712310595939401406016420824391582669104307427287845749281435590281103002383610369476869176214780148833226779983224043737504373333732831187296088351593686159959758430948389002265959070009010924290715501815364843792018263631348409934416811501353842531443978869992430429775880609584026274677453183986162879064759209541549190375592571217926753855390088753752223836427146433215034257609767115860370682362962512571348159888042660743921854549437512482071069343836084261802767839349678311041990891903730968634662227650812962326569167812151967830913365770540488951008679082551158462863411667962255234563954345002722846660845553286480515999771193864376530626135979283597943397796553409877436364917200287343627693251593996244222355541566164451253614134686981333794320540079301704623004556378381740297349704904821875656436902619147686290658038268338648153694869574801178958060792445677136158160170965614756111565567617108388105699877102708170451363818089827392254497161943480266134464420219892251232054531157740265932744693649620958904358722133509382542460488649004961991260248243286693150602235744834937760853621592785696841281303844073346985766232764893145776087430392085416242050736212251101773433122629317500790528437983430531162587445914208802236011307777593996600735117018322024704835897082094083684259338069018989861565253942914609075994619565425687694435332075588792244982617626726739988815580540897151347549506914132477937171989036804444678599134425972409674743252129731916539802013537506279236076000469500237534122593188401283869265722671761606869461750626644755555327650241565441396570417408307096579670120880427585440624482623474799354090455749204722230865784443950015811152710336196509940103760391053269141345987943125294457034001000495751592766795561220708877233667629414967310271494951051995762472838532082814241112240968509348968598034682049917481181879028140836189606614555813511183310318409242867871320519243888311468648033680550071865588248200254063445194739145638596329467351093727280976878476836478695341524770431964952911764996970496143471977915713368413021501746698260860501335783116127773805513102463909122442107891193122927563474642642170281753183871888574699688633445957793509415116293170061859722568805402921875346215809643110523698797365101854000366637479932538922009965892706009009210542324343219370863061206334035425229543906080195104849231261746293961922087793240493554369910118229901002885966327921623044455450609239110736644535782434968805660925276115809940131310347826392304498140486421545027779336153777901120017968689714113272891666861367659811256808199840751670223907709409005351272135214867038810451348910267978151887561895930301046056714143758044651025207027415087585393362226565869940352151224177806069273579584441769117755390352601603360075818738016644848962072048260803465120072890895847562208365439250197717630523896760181957695819123959033755261240780198585194038453322106893554420062392226241053028052713420430303039410090197124873272024563145477218049540111562562688037806592544558096796411924272773413701746116807155195402512091168496418122562468497189748586267197783382194169851783361163442522522420464193797007777819424232201134654037479687724074662787475468578379079192373532235231655853801748353697903882417852490930804652803178384888309499111393379470086735846295416167014830203137212138479722004807289325784812999441172791847358283814304396140152068414689857293341522126991898981937586629811138989527255696990966919169317409908617675064542383245332605269775605426323625634891668077045793153922840545992089912038796709354725109399510980523109324159134202234491698800761545834749590960387196447258464633495060582488148561326010144589493350261241628391681650488301355263000538961002018297827108721261973713001460429679348887544848894649772503104940274853431569979282196886586943622161488451319316597287899366573535203630495022828175368036740490161060532230463936123338216270775514534348335662739317063646373614340567595346139688149959648801506560621249494938518454431119665658786626729012937849493000888533288657573850501008673452082147982618273528690763140201120571545408569170279481873563686657168053780020861082261491695372558897533313382356888000317741524441543282387404264318322120152139301478754562611399464696575894123101319588973192166251279321615556650758866383033573273385126896939962356068060737322495627763561863353469443601579905118058192332269633987760008869381432671036557860743971261995775018684261899424419567288494885574244016051034565621628896920805057290137713145452149385052039930832203691107210532762212419074880611353911554244042762742737417018829844615978913123452501610358367668783440020442314501509907273699956495608411358024428680727314439708720462883663885001849181411922608677078620225795557329704762678209311682436925086918938945156196323371551255029228060751514516953335516806087167159824262705296536646270998829020294138122633561785764563285222729633559186657051114512773958971476853422000647675921103596504245201328370494342936246783196964766235314537546984954893607898673680359019637631310939801196505368424842369787924935879490980518210492500580786096976586585538381877926183007829609273198801966023811012630422013683710328330439268487954799925220498703264232113798079249992149167233645007871787410759153540831547827627002179526734372487121498242292497593926463679232644492820925211870708751677059516309898437986432251552451394916429201312308765467576775402177920737341118572377875252013638535387618267912163436835139594753832882454864779876278598034234967241423937402225502314276897182509350774281476134491740789048208975060215202073647665596402450944402965612014617898785666170130450426979065035431759505710690007691668268500717914219378696096854626104443623525185945549657744067944172600160031278549990987658210332847577195383508980417563375745341897460700167111355208822417918883282414767713393758920241869684119908908920942315888711466757116661252505278804957630796300254944824565725127475186512499270030808161275917061787841382967943116697526172747111255298927665885448369759187932080634158386021790768036897787027247649827843554636119402104651060882888798151232980763801274496953177670988165629758045555979172279529699467705414890400053657595657789218340414243199921191782961883991684274739958314142877452390993758699176849254610156324258386914198538978598097743407552646612959249908912149186270279973446347790010226348532951718043668097750557459056604280575584666650127677102011948133360655200350721710203310103657734339173203488439546466304638266796349692326781891602896313642240941132930081338922730743995979920231122254286387202811203642798823352319238478311709642343460463736577546768551803070184390006505333006608077919506252976612855981926094197587902730892933328322325899297352860022081143539747321542203332556793512619199399450094479102643877354797695831688400987293676740623462778556378873941164492145085267280401915723059459764945738687859342618930283163358977779382743154905568009402201346182017187412824258837198891716564209446515143613680460696411039048957670467857098355683124076972234892455781166329716740284512072048532420969472235122116890612474428378446497913156840696139245865289535916438775264863979939840896971413627248653755337748829989205435058533064501344579327170356290986876255997976069301596112543822378675507614117072112525790409965889802740022823072521722757709641644776148694445306093369264812685747244316065221355115092307904984867810309910739713644618450652513434015884110769471986467041672898313384006765071102463675132688711444621680861461681678585483057105962343038729292878604199414235470762333313349252985162471677928799653485916173056716167798969511119499204390976303997351305436875796510146315247325253441735797634131800600580639833242438062128980121381039557166736610655055124617529152624701237429924984385219682766840470582608981274897125242055850451652353870770940317233840640838726538107666741918171109113039635913920745329859547145878654464043402057530290455382518180698559963217429041222273278169448602321100807875320143321294392200091210837203900092999030873664415342704656195747777967603807951255996417753186421219813095684869265146456653164622579797291933212665714793000340998230333505654285794339502642632826387807648326423769361613534235856092203425951038097211110390584385781961850130906995033304886986665013417793011589692350615790493768743276003372410111000811945339460900028621412136930815669064485481400274533629180220886633861321303131470825428514336585752918395821809543530110980788216679330271697729279096374655992724428118170633260408963272480360475668254088149072189752864056490319512633678782087328733019849773519939432262956247355584353829081819555605601345490494578738158196743266881756756805466398370927680371051166005118537970156736656907503306211052388990136530426685269356023703517836963611362158710851003585900936051132291106382647783250755768337964840330874887293738139444598786795104748521564121446021692504886162258175277033190192583863735035708237658028086092514801938444697262409571448292964498751516035179429990444605865868730317835706992703921587031943112526412740975241786076341384732209269198885995682857835474335482599852277908275841529029229890551013581855649037818194505546680918229360604319915632776340612377949562539031972650920983272383296849267542306884039843323891772637585902023969138369945108645116477648654763615800510758165267246258829429841248381900241970955225355505123743395051782879940041058670098641269207874876331620779206165249231862664294460063179924665897570445554858970296890443763957502410042855406569452213005893165796558677796626564028655205257416484081478565639000452728879632721132675557765562977422430499818536049849631587906096147901598978198537326963014172467894139152857973264731821583344194853644977240432898897881408196464507454643004618592769478960193995630070666468312062140499366609969785636719319691482404080218274719144038017296082479602928641060170639457792050671859766586035132570049382657038264718216567028368122934788226099343908840608690565488835882846340462520852357753000977723071161682974828677314996692107586586785189744556701506855912770206288984570689629299792957799770497666386150444761948569601766106879262782299279314661451378069286260779844187443043572646090433757402805311449622403580523823834899702620292824715263378684646582011177907651813129103163585507114294070335762566078225556179504932228311952993509549552143835376292955500493856493151246571535358370354234585919064116189386564518717619910176055990528999386223449131999476688467578751717690196000873164797539754798481668083682468419120213581888220405089035470901707988153795250511762433294126746376679951211515641696053431083676969076691283925194311547158780657781519247150770927472786989339723899680296211536902746030752515431112314018498456001450429636562138360935827925646268321690074245726572382213109890531014399981989918186907564834150977357740379548721979291226560723929027952939296883123563518640166638073336329656652277620745351251705859760497117580932053708404084766784418609100802677796608233181080136109873075984073120103557033433986255942757159106818471649287988781229176625340640175567438780083201139460822578082533682352313437025628988647951200215552540233029794250893416124157864114222497433104647619071089993838112798943972355794113971300312036059788365532930694505389469743023298213855309383197246777623243849486441124779606501203514270167288353607110443677276839532549066517824046932531324141003197303309345639180680235842564689842169047183266013990332507686143615854218655708953112272912985042758111531456787206766011896840625566297649912416777734877706472280193034855079649255838242886433901517441561846599099679138280149632861214569059193780383105858367709294624000427538155978375223897329077560213324730360904074546440856398112031128062230994346016916846045677354821088159190274283771417306686397558546419176032946126045324986751260037827055784995477480121744331683985508759535017075988766808499368731280284685049206628131953714562141606369031796777530200226446684070114921537538343798500525262785129964933039748866414558849308126838118962324976081237667363539503406138222802948306654018168663796177095500421390307135240505123731380176435272110347542037034144016049971292875843233700485407220059713673151396840893415373574862382960033787295346490595461411756328547624937725519058737631763685582746764242055969678006279865312208941156965603195281962055461933890821989511544732094271538308711344587251675427713050858457560433012260887406868698483391122304916482591272744550812452437523418627903315555779729614346882502940607534574435801825855151208429500213232162306972979042276195640167647276815983412162629855279820559901385863155439124813853946109384331929487663690098623216779904949623353727403701748839641209084841683167850057079962444204680748138614324618502644261461273917930349038771472339824329370680810586381163125567156668616409691010253402577171709838050910648674230964471006455944938986953682026004538944403871234812713400734522192150888724509707334319827801604248702504897647881520753732545772043555325523989993939809216877018542421166264694385336682825159199928108555473765922537459031207652908599901576327303311690859344349412896721765693986842656689432851179637101255451382232455710001728052592747078277451645975734383026752303515664721207705696654645828405273334839939640108607979978824516985699179872649398481608047955445603357161419881658118890454955707964866327465771791968995952130504425381039277804572054444461845966438267309540866102962217961663760908613914483826947156446502183157802666449419080998759130008884521555010358728674841768579077046610190662835049965994690523722486340843610743490937648081050514138532601450984470877421529653203860527237236345475778432220667687603526030065384877666569960220164708029218708373596433704310405644441211096426806874683320879898484302603835743270400098047830469441514903540439315302863485949199969473669661784547560429972005694948374271538290815052819363618067366512026602003180170273585407130045921516257281896499969958437382889797643796329019049974642690909885271748092696762558057412879022514829847394881146022439829566015908821768870549902879706247683016335736970684991244482935718359715847341644744544097666930746196816547351389889820284928520158500601623214584996013307773146223131577564951047184913244370124919685079016671689939380723174119165337457476981849436180446289779405303738644813545183947145881589303692526285672443983961695872215600652887900394965107562836579057713634509663542225057114134034597908139036656562639629291807198979219920935393476518656683188459547248047212252018720764321571332593197007325532854425885068833330389748008846911448647805116805830737350919399073425524727005631779225914305010440955700794129068512008760473841202446947800086841363014377009602189979674616972385628372933812978692186979304232962406809854541352523543662920780925516378058537012894796809333109396307152383382600890905417776314257229085579886975339822616356168983691026465081278297209372294746345986133048557715588150418622168991411936229088364505202983831320507272662314762996500077513715409819989834726147935028154422352246559235474696000608471207464866638789305838912684687242481872682569684554022484637705558722399737008304707663527635145065122616786223273167028134303226914612436561141045807730744736829456658590313257385345990762778572467019210771803415979934684166323386246695788628749871835230044942631869959207319865995511717110968548486180212727634120398439909167172213288347354707159139556363667493525225541304986329924750250396809534087175421483449002102758105224490673197957346829091537343961679247155620716829762208694358513992012818945323949266484344593127362273932045844948821440899976625370046086694248549319032031810351093926727322124171430175404732784269509137747571995360479328486547324995607207238401353355695910823266028339163400515151837312280916522153869364656641035218082418658297684025725668692466954805370858774941181590817407016734515118194038817874974344397215262046331309831169409860082964601710981221846719595900887226219954289641021567948242544773748753235410606003074180973736782900475422030386966111639472854575073339922354084800747798414457824085990323471869385459153800954352100326221233661789884321662219171613751313911314252593386996369814756415204218710474350515749667491793189681078493439285453090520464100613547589284634870551835560605435969712792214930728204787768261046110227325589970495923047301597981589312782184204310253053470115053831259092874563538972674699513974869622303936078639050276663041061830726455234546114669835097826801373308955603002343367973090840339301254431527514014582405728252126386190477757578560257841529002535214021214884446185678131321279590037272277791944765882050757549476711933817510199148124719752253245217769063071999352669582643815795437035931379677276018269351248019922830992846002449251123889002832622037914476770943976956347105715688292513852312138096565747346859173859064323834667751863210535333726366465908909342283599721575979073708173386030090439665334209541713681165182080850633044018716326927926144639648972162637008617484939862544722116724577161948429907496246009790986222736895525185886607498661218645976518250530830113922096819072923125264228870180133221722651422037089751691297545512564101160674358659379534994689377783660986047428446489256049054941233546704162010694531148115437310441617199746817109303770261386851497891292546039227809704002745011303545148268949621538992566805291912301632749872577086017585271151791001551883368390481469548435729846868357042766612153558361598640304322747744005283171823191678003969915976443407258267448060708492135536377954065790667772591009859007896448769491385260276579231630233513154481575096619875802194382192748279554655582063360987674425023897317852885436478541411456076244630877803643665844189628429369487422643410188304517842647681509170607018756327059114842804174031585726476999410793147494275597439800282736051328153994117545904304353416753008653877265742457345922905486794296064328539123221528406590183107268457957533517079795344019677441666706254234576962505295449755163353869388499892228407251748339596337097083173655267117305690983889347234614960388725151172371255768539586380770313967490599393801560775398530124843118022035204612656612081764322261824738741464810625153469582347262526224645614925649634339451178029733074118523475823739913755148776741626183909817909846304649239509527698535499795425798216639260668275420751231842215663370225654658806523716759652730458752230777370999302742552487322552756457996984171199218518711155199737883634713719801563005523597094922517426654232526090028150982520335927799361882648627300442362532166918331389571510816164026319402531325883856889190314735456984681028667032959807065106165285557489117456628620949023241877245113178735448825319312900603082224217961761451154311973866355199248135624271953223605045550730773449953828620072349989485620593042048961006068281262752207057080370130192281005222252883796411682384767499975348842905744519211175127962497608698136263189553151097002861403425794473727606422751045680402236487313228564609650280060988168005995973804190983075754437199637163970883400340178306408290881084776476105672838089646329724721924429717538516870798848989020401913755858187522305110714155421494455348551381321874117059848319688893045925332129626899258006980199897527773157695649858148209753700214903489670247868625479240089460828417783372608746185733263997922619097256366136828292351690599665529773927894699721520152473582276547363066222586211973699673300292286703263127643926197902541077127770516440012451587384306457419805666689299958084574351699625417788090105627787382881802641692732033155225595687376578097772766921062641518629109972288091391247196825753940640426393659077111150959311814475286185311223764682527632707553155060639599355741891154356040745649007438569967016503750227143540894974957625091382592435796758476643324065561352065285216454785280772271053867481366346844827841351847215415338468983612499198709015641109425417318010050990999241639982122594387956362010590709154470694977321106080661099457453349792676273430025066238161827594966550688891994869916382362914244519311171648560893126232676858025775440363655616273227825670921793649312588932130396505693800598461953013915940398202854040275680887013419587593024792168424114352354269938319970498315216667563038136868615461005267452443667289977158090026565642566644466993578565182989098255657181741510094834041769519753558817022613207111630224037631833243851772728391907276097409401023534367579800022161833754711029158782363254081970495731048082324407795368110554000981102366868530004807234179991982742182857606170708736135009794298116568715711433437980815846562667766399098036302062251172208510217392019321444840369484234768339973692452131022491329277076199902445332578021759533717521397225285565475481319790122227823395848389243528223008532699710692018902609741712435565686900031813605211117839331590460042847658636820026582785004681897665042146273167368951394256327115613462448108440658546386453096161403968060282748084916615194165295871249909307755725211956056381941252089375798533199252808302898400399479487105696394420820625582660465380268756058993356539137919559733136240553561905299854271240571794229857204866066174661003233214290316639313792228875336935615834684851626323603112348100672162715736802824260940033464345597523905694571101493585041650700690097937108267966363960584284798468746552048319790157478406495196737201775494467607581338739006653560861947750607076903484650354554256061042307441914439667381483781859384843768764869237319010286194313848825020868210817875537011119295246632201984228466489815591923351613147189160517706252693353822949163951889424858126944058571879181754178240413616862042173053175472948004783442708312910386583367131929957243933643171794125188700068785068256823230800290233378846730076560627549014855318853045311650698074988639534058864693290741948978937400168150973493930349632504872283927064817975205256406642064229665160718988828969756619570972665253101416521422420670345220826852609875786977510085033880440779819727178444848865943820002803590579642960885404797027328794223900547376145176807050226047607789124054671622773343003141060019420243728028989170800659330059194278146282570265511847869995030445480058542438657495971206185325409165890140742094397679203143775480125031873023842403590816714988175640169238952582462972622926011612661406781900438000035171896130122688597759928756245463688162294914060764227058334282712845841512696898059161026342530046163622983448230879047907610215448487349829307497655539368604184362484376973877151465289203095118401553396291123237513249900821391056602969483487158776775352078218432054532973849133865638471164474396527774419822769282210732124346799102995034136938076076825355157695882251769778301118324055432226298254240765361841617121641877025010825450285457310229960494197233550141450337716905601640517923495705374994545169378753356790286069970412641997212509132165663842399554132775829136140049853503838519935117123285818430231261918267864927541687206428657461566892627311758067154470347361421829532305201727009766230459599617029019295214740294279393591319047821414341493724295668544803615033820201381569458810423289382830892186686258801456127046992522708513489727875354045085306996038563547300926980749829583132504849829900587564615589530639206622532735295222944847382566222776087547941982153091029778799430161465611347569014480698327618173342396874286272027259324034326000324512528036832461737557831793168249254340449842009860029885743497383678435136063842680128286850099733765784529999388854919668657238744803988568956442078865282401747620393463159490801544632672708601364101807176648090131264937157835072146383185603002436302060274278391747162925486012059547458322073350907093993104106349492709608356067275378970058259798321420332780099367358471352323753044783304573577070054378662363960873995539629506533535771729190297555147562154573471842629918319620633372065465484005930452077427611479225916777740536928256627713908509030310666463529024496992069541548376687518539595830926909374857005040589172071004789300018035418309887472747492752376386535651533257781957465230923680613232028622809053266246855529963514732904433756239667289342003007872000458159382817419943290604414232113828120747708269394233335366482201099228603138952679712259618323246168281729748856710997073168403391820798468129741639520470644910303505843993815524984504842438673189836878401279086928340086769817397532942026768899452262481890205680201061061118864723618746976313873373435956539038861251428437890187770127708500456001358103800464018430518967364198142114915771288642188839413912279670054170598086948144524116643231399201226198907411476164018076461325996225148293294669534886945101859755459539657792464770322794903573126099680680690642981666610464304895294974407335723445453883487708561204942240262721629936892738092227303713167106827648239930262043340754748797485411151404880442391097450981327006955596222158496523942092471754999542653131483342693646004871356293298044486048640074509227168451971446454830968367061236624254585354239189008302045157238794152763697927075543942556091939592021091342479272009254204029205554969030327292533569852244695898808762265176112549003176614389827651796045169632844455291929853370145163604119205891875937880115563945789761186724195731051916712780515525505688817932634381381352888338469138826741767883955278005301802550951618438992559416533773726734596162934848895822609846783924426376018528168956432700306170863244130568491255507078165576906912500395743588888253552629626802107319186471448975438022269149481192797444623335274116472563605211123713818125026505762729680752890474719850713897785124565465112081173211493485207036349813488305299804673760850960480041288391445131733388420900589183317239210053545902262479301409653309097885064417750716576908083176967214187087188514053176576494549835743373135447719732079587641239669738230098641521748133131847597543590190369410671570601175499431989917020479034872140801085811705607378346695279628240498487817069423709971197729878749485891922932650987269225568800307788769500416093032247909270496123664189735536120441790090010053355556486260879995929969736393755588857923128137369070410086352228941164935363577047888646548239395262197118287037879562696251611262304200722716366480308420424226750883519661180525789900022212249215795344151114464160501078326707321729872169584500802007462035085179710470744181580974642410251128907233023906814191238268353615769620418530511318056919903924737646153112673756078586448521158042818910821799769075699576092263968054942827745879916755813673607066614893161668065218888919828802841306765782920358326558665525026544591083240103106039519370279706268541281224473431040191019077713576659032893576352245285245739568807738219886177879992512691731098601712356527848713438165363359498268989585579332036113113011535774302348469724868535916866564359149568602963227518703665473254029719396763979637868197196163359065909213489713475484077034119834584815500672320672559009795781555826445969221741786000185429260874130651873261798204250730662624706999012640677522481110875194055451757279989299403028746651021105956963802312996994534299445534024427722998442713807208132204455854739992574422108086120323595188416719059199374210778709285183533549599376346056534696512814944319197901227665845261079344090226497978153486515290209344230739243354449812816166368941301442177693165425084632206058832367313630745836628632010428681348385206224019886131120484630194115276892916040011840315242383038122595923002585728953626586124767953993862970764984772694806922402178949639767540013393832196128071439871708276448758900673631138912479269574287863473425182026438206932999632752078944978519103057917444105051568766248559857430864436013366383616253912335413158433828997742418987375567151788557358761554817889245080882911830817168521020120441804755333012263361287318575404837263529527680549298490201941361570692092574368940510961520927769009543209853552664420312160125946428144929475031550436190911028160974137234706258628311051899141855312427259268985612063029125795351728946701899447020702948396315894047118785587001446593533883313406227310931485873009021992170103447566883315153367829789289190746064097424167635773779270973232795491626895670898446519636025268098700254324518148764330024451118087053740548581507917836362729043725655737289940010009033936093949773988099463393091225009364474833982752185046132223376116720020826121708426359181702156945496145014648612649585437798933760323234509889181565146752919312031706123833599101718877222014686901344437934059768552764075955602739013354158519175726143322592317603188421793722904088421868706477355991745786422240462017646317248898365955962446686320617974307206418310345895428292836905172173484296944614208965688642685626862691288574040371730575612057919846561368591395628539560780196653443052836041442530812021630883318649898100427907532325538731210423213073251331134845318315736030367075331200899070742768612893205994403554079066531152915119644727357260722083811584631637099970781794758816665714170789182628224552842025034097070768736161125864791429482036564722267077841152609483662520687882814031329267118396135878461150091909460072712584074974178157027935300916278869361599479423038254554107106432074218440591684224343368200487991637551677249894615596437747602385814292047623594404662628264497072112824431977872832630185225519229634149454792891060260902008639578549340740868181668949149088701017041156111032768311124504056199969159522135434076755507997195620456289694184419555883243140939658071513247872672603005516448393960724579719419509166031239431400621277905129265575801819655177008187559065052571769952246772912296253716868207086681606939177688627393871036612756837678214466024817226235565896982975459036343739730349490543603838582512494984427564887462094614423607595415674157384822420010998409496878915209802936104863829751168921637208435139090079916928624582674198056760556773544642678200693509784846715499416889286840007922155933645390954089440910170306104552213470385380783743592889857888185569101034326976011233370533201120148061732849708349636832107800394594578765466341005154172022458416739022405654338970383953415009472059970905354270403190628421976173944992237222869585554548802973510548779845406660476977606729362457726686397178323767610500724318921734194231686806817896920790157846789278069545633406639516471935064636313855534191281587952795234770569574588801932440367025669268453983993619457567645413649961587749001957981541113636694423739994117124374130527205152720797274815745131729258872570748465023005400679284665466696025401251955589488593525131887116335868010404740504526483529823407474089544182135245785051409062605134498288069615667100704997453966333197585185016288962342721853389075938763303935569107224697872948156136032455376620020134998668046546715046521545929632922524756918262331916389448265164796257935938843493547188260588209473824130668099324423476822029112618878102056378005064158253385278476891732776944841305330897276390032489845938451865451226628894310177718274640936976593817235959546496923309406475179641770766404293413378048869503932054089961882189017194362951890079710101526392917915798521523992520302971282484479441710768659077637011208424460985779988351130198208184433441844539294469716579612420522829016183971911698760688473483307252479303695144934811266201375859216767342243186905831359544569216941946568794331032833803369715853272631117920368106958821534666114540227922703818356821878762603952337737576668591809832927348865836786824477466622633985974576522600594450892579188950069877947466528161745258983971305186081456068633556006413789040462072849458681970174688870886084071564051348335667993944680294490023938489177913018240647103586071154180064905868970826854495844440818579778244604798156974437722980190398216984653959471088291922763395704693640931871388458464015955190635392746260458868374261404990628049460943345003684114283327400520495130456633350926538716025420738326740992808309942799394265184997314743764786950585070573085174577903646472865612313552527584339409600036084736879417572772334812753171763043933750156403006040430958972409768328183423250093823397591774755406109265220559540890298757310509243583411880005940027125939074672390473754050886940392444690237505900247705338101327863054734854662644241927748511509216862601641916839759887694904644052080231604612632963669235475984455354062629610358670331977724414847046099022268939853362622165567299063999152511017905780314707146378251352902517118500888067397681438876562088803172557643955076215803324239174616225802887357452238747736102434539722729859429489474095747808381345605423091567316600269636174551469817114181897108079671527138890149273964395312874142413909832258332308410535814691966338404326040290587408113324660890329977700338247119012994824343218929956825577149398551555059301840091599370377374492916098877848725314962268991922083443829643574421850279524272619209643016815010943710206055512792016017788483264501861322351088300184247701646623104506443022525320350210983334335082502023201237423186165786756786075851237120066881694779250962506717993192802795159851681933542987606068197185559451686823386346849791401798308615204032343500868158774253276514835336664241109228452262468477354937810384102605615460145265668606801575866637033458101263238184526359657085635476643967010279874807578565422398177440135850005399557634181909904765558619175501270225139438534024012411176879811477881501124223325129200200821634810087254543898760855938303336163737586523120801771660681158568102700480193393540739771733876808765362006705846081392895664421571846695127310175992806975895493982345523899746852538050479308092526097202843822621989883179358676406211007472964837438465487496287079532409281388193941425999535906547738286427347927493295292497606425118952910580611392898629739659903373490993937273570311708148818788267494601301376834540814830535236485495594532624584147427732711793157558864567986382924688721749213989978662342303664572861679416778205425910068324292922208791129032254238841438323225802733820682392032105450388626451169592426132856381587984521149824494751689125098636744810246899468429191462421947290315494271106130734820301612784769395507063077440764019551085839699698023764601181640344346597791372230275581757995218523885378989419562925905006022390524587221907792470067491976469448626926636700257265715926240336464545986686066333429219843068720602452244276269878372038011538912100141526266308597580440026264200767100880206651740618388270694365711553518320626845332037664686288307582503135016369996019356370943343003962636718709905087212112614834482219955651567754779198606730285564157200775850987685428851272941728238119924622586209049623728155226488076328474914539028277517536236549707893614532859835993338022478420692448479911074654633977323457531293419276410319866194849704128809751829125252212793145457411362540954958562425648747321927942316350238342258632835505824022743520874012554009446937006860027105412357279782837750299926134478659229699957526820896775888242439424061317855325391304708575427539119719903775219463599370989822880430652441866348776136996974423259242674246094241600880048181892960699090828986121401380734244604953976338978448604326242688651935658423036646725832799858140101301100827970287422058775860911136236917936384840116513249686626279526731699779545990692677343602524920236018798151235984566007898884388686025949351367995669937178131785242211452623967959627060524105751370000987025700266208044666961998377454318139933237652085528530151997367829077855258349955384763188900678693188445465771494697852466200930943506976319663132750007108155202248945417680257494664073324023713319003141049935547636251024509086118799951430217491880622767134324909953439997372000155676844454971725273760566325416438285538465137223975129143736194895546118835673095557489886413222696710852054656062491755903720397546016761939422489005599577074870125885376739741285642501143231474477042009623704450001152342484814122374290996349507371006690291063653188854629056514359523283396346014564135107014119055055178476204285076124933341812673074877122725199720435492636597409825968805714870438886195375392197068971311497405527444572084382727508303083908526157209296929494914576189863484437560895221107114599404606855002405573590497226483315772925733704929826025032513666761706899562300333729391945908261130966305378456748364163573308541630894285268184200101890533782646609957898524633021458470029960555862661834195199410478798535911209910759007264021512732550739805659188264937393128125052126975374363364662644355045907115750175103244451016215374514553408228386211516715724308241037721818023837545163623271764214532746502212639451375605931008638264395569891534532125882105679192278379499630473966663508857875062231054713993052231751794786222258044996099687338313867294269653238721569436623701360008263186068043603809557238146964854429438035765781707940993120379729594276460104857557234333678552978159297024270727054645266905519566502772109294488893724560804181599712781258193213603913619170821885431275786314081910119275846745162225181893989047525812758674723410505033063212613014401849209072437539075688630614662193593507625667558587155775569060536037794208396728555149390517133901184574093942255807115539954917265751251706752434310603104075944864097676130735739221207435761473821355115852460778241717780753776072399074143124266557496158756829010547767657392468942902213274363913939632222584154435484808987914051377152787348757715362408314504702573616606500053125928070943566103716918131304293965461643581276193274263877185058551297648277608389139114852892404991575238112531136781109477401188855614952931013224719729342223100184461119049017194647445389259050974039707541775381090905003639839976516245647760656875294964395948263696805578138471467433453454165777191020312008318048978176644329905143677471603907753878868705725605913565592889733547017663673709304426706416995991001333128748822361201360969817662082711682662048386249997355687843574826596901050168746603326394440960267085267607241271334698404939451325706038988949962164979667611180154193397201861858768064175248075257377311950421420489815540830959624094125188154529705920369815605063116399923143611527026942317534840238990653809780459471980884796986429413620847381342323470373450586840699044108842530943667817372084791049074348044120438160200375012986120986139743473885635702048046071518793986383520697824765202440713764474967335155766645876655343676311355727821586644409954526629879444883766293540837206825783432857355374488645870083072933447031940828606357798947676836399941895479864909461284889682158593587390420859266037084082272959957458702618061595524308959223510806261739766914979632937860441579884014432956816203921541470350388223063833047826026073871314315722392978187555205663858560862853963427740085089865293478442366414846164629637343202972524600386807557186910406563210192452223490703825309445796766812942121559454864507572167480694247567802447792219862050934473710990537780087401151320447419995452653846744915891247278377799413860737823790834770011437232787991750719151088046376922583108415247998442292450951641745843988254768219560751655486381249592067621790070705554394414691186564503976111267710940571897137862814470712889841328068283816740714491138290196471410772456177873555574666270731553872518606086011720730132285702814788463496128797848115736664159077226278141203322069742569326262932704570712937907455293676793113756622788966588183588849036253790725126390831764712843509764048804730966130892339017317850594938773716298078425479390294786204274465273508069825978853102116934571127557087268485887734168537406138046783636978478799670941349556371910248930617192880279352433349194456596466112536118580172803454757754580615196423854902842938004462166544702436943432129352101768693815672265126851035479024331090029925907540362186117281493087373294445716604623686894288487913122727061510575929640749627626049346059001625591490914240984701146188292370547825065884563930470464244369682997814877760774734855385095599939815293442674386607294118974062815313045272175045357117569106431010053465066387270629746627209835156230394210782244128265357560470427944812438741537960807253624943181081789041555887383541654913313234701268887776262672294386964299363232840686088703331685822240372254140054074923681270232776487429847095885177160948637384119545845059251200723408662453154373546314780926013855638282704355234766082574189661477708733164322360114029274018132771666496742414776418849598771277750438007808230639614747702400211919486097680037010593968397883883927500081205053383570812717611556679243508095970506723173503420318859255321875784025048005310464014956194250799894840413532761810952342440811359871743235494237241898575714779405638388205717390949628716965144100983184379117956131380446591411659474984067007576143073360540727356103376048977228157995725650786393764127820007832845621366796346493529668250303619742981452859914999703292809376784312261830007130086582031944854259313227875935515300115922167013478627005051736709097679985807362282419197468132671413801641035927858932750950448312695629980486281331437509620396087992584982098834923319836978767442817768184234480301375031758775950176624193645182635987719967938433648436116925283217445686255869505462509355553249433486123619527007147006891328166073072079533280638746933334123733073395415563969779810259220319943528175417485777320633956904462097649862960456566979500159354689462382863911978841818432980471630114258118798903553343060681195851534709543412009271522259520941417824106069167467252062399186825470081975721934671855549314801726087965138730354481748585788008084563676570063959035484794705120446545357918671836692983215294230814230851079751225599872313418196881073663058604285231419487785700417943396332176915362709789306643300450170089592015335973966546139840472654569346591222224816176909157872944843999255350293016541367499709032673266174449388781719347477446117378777014008226665505526800339757702701778574313000235624431602908943346653946302629602032415011550496842041632344650770425946248936773308986532637036276860831485154994860564033829147199324354903272210343851062936393235307227393109223901659821970262953014056423871464033095887703643727324585455757953608466770024014599447027484964382807277504088823132136919406425266367084163211025684296941071680111190029149430717517350921590372208883562880703725570831219327792642201314298796626679031296289447829392435014513290863696373850272974492292982295698756007005820762985098441709001273038676321299650831955705388551336961406932997708241083640888649006688292035683143584102337461582251685045319281658410534810907026730477443485532682672989946156713345414302613188642261620971999429856235414468012866195717733226320093733101321960115829935150222869522858159848409187252702996792175342859239016609579262219546847290228668709549396892778327150892547609390197771328873537002519218802384719280595688272001847510731891003193675310902788135565893398205268723802308263727645263706574248999899089471252679453529666477425817215767133341195752016985136678085206531761769314278189495045061326155869051394404528987987284150344004505868950999853700160036643025286881361407929047426825126689156160663568712850941478069835507884187264120242107786947181942592613703938858306270118656502681596032811075171180303170252241709017491019931217115381618357485969323049051101152707517549138236837779868153726009788095255430810887351757888649723301873920222944545024324759687841390524390323858396522756543043087166529280679046253248112006828340263138902992618492788948895876852789706557826742945680264105544268794013060059654314998876102050608311213004123758187272684990180828859806637825746232368497435272781463154302059298253462803724339292423977362700729389282733017607513633502986384777721564634015621557948946134568966289480696701372826061217733928219891701729842808161791019273444161208243124076804375969001959636687269893258961427379916256822469659072738372516471041177564656463408161846713515294592972620414531144244213991813806448026937728578765243143793105461752707165935973307824273832575785746404447593885835496417021388868128461862674671710651511132249987174309558148904290978581105332070302195219934716782968440646149586449407690414054259392179497240512797973280658897217976311057854266085527702570302784649187871169641272365755796279524147342233596689677667209081496158034625695110299465807601648809683513547924483132847985750050336655101356104027447545145053691831296666699972981784917505371673203391141264898274062899891434332025671027824067779567022648070468895203979767260543352196436742344103896567851587110031703959380267233351676697671514310071761749057551186259826908541992468103804850131568239533233593543399452238012795760004653823393779941926245236747183793696385914817166486962256676853490657606536322387416485453266646137750283472106587307006654140588967929710002419185963964031603742503026678753692736627208610977836987542696620228578594398611101723324504683130597269496556462992639996265801512753572416984114809647539931607484534273600637312728866643599778871110619501185249326962170852812348565329357611622893719588594415229993826826292694288181042033780345770102840300130794919695491848993920604160671247211138116917815706207634128012045579669088326464829611648986425618135879436431700062537419897480929704680133012616403106429897438296755998450307547040095733150208960941702609297959924070609955671725669526474374445583152576965514807509001340625766243629559211222527008551891224278360005647881876203006198394504730072724480052821044087682985222854996381873220524118315801391474581885651344709253196774941371376434772538292748248230519434463044679390713556749828385529897653387458771078341249645834289602056766149752470156008247090567311171695664344765626778033452912876698969757460683191400778148127788098959445905457288214352985911776318260299939758947557667270183485964877887747544937738346873002123671734022591003940218346900370355771078413128621024102980399992747682605053970098657769741584429929170172550835929944578611143237980486913083348368581473614690825559806205957938620061027112001755409013633389971672760546718853854095748069077701667809847420685124915671349743655506689428337094384852731180410515917655416577597188489983638686739770626574766884066186847381333289675468657982772569354938267502735328819043878046631486437751485179734701236333416566805523220872872769768705253414828193723312214774666577212691115858802088931392315795991548413972025541490884396060470734214968990404935600003224157529898910135406802492875084198150889183720017577416157378466543871219670892054943255650999202920762178877155523975478955910546289721606127802379445171644526104886880365187865119148349876796286045232747126477062578452835362021497156135970376950634560380924788633588865385876024521363977922122557506759802794344278338634547608697148496110719837865568397106766078591919728020621443212157495425181547033360471881366920892122987323861633103572651737806409704469186189185662604323096192580568529834697696042384581260982131474427400392455553051973963619102697608053736382848428260847942323061734598209906909820596259622418519562254823063897146034724652077426849572166027607888909186641681473255149805543168404130939592091870612003021385242795778469964888051712114120265379212994653256893770172502598487717041895629982787258887361540337866693351785654903201864842126582979603879095657374955096044993619694668304007876958813166570745195078667370555501845074112422162356656868472597841165779483531374637971059989785688585736255602765119739598263352468267589110365375535164965173081625204468242109634438766531376619996031711034230220331412587016356143428004214761678367714534977261230981262050048059666746078405066602674120895805843547815216655718820181278535922322929051251871563004314745795539333629023972574571533222225523519253985129974036840807067132488338549990002122448532097303728201433914968702690348302664461558066627387685346780403333786671872169022227256923703537029254611712048010602061733277555987629695012448610299125203446084216728084833574613222677571301116169383980536608280363030684492145971472222470841455289556164725994327406345220566729601607185740369520268782526311944189397982099395448186530366543786412425472280345118833976304444064432836375371174252967791330508566646093763984244239005235913644479840851871603793975022550458773274144494355199320025591996813479164680644228063018943011090915669699518995767630368783271329563241032645089349560028414490795463763102204465998363556776779878804387318954691386459499058803108981320996877651402181976599614103804139623481020652431861827208243118340687178920900365587403316245889667562476368255617153978439224833374019502419266622473372531500459653442592358101340003447565506587538746402570021389670632707914544045201904920981054928898527001268439435505240576634480093559042670418545848574337999949203140475521679601627245491047594152057861591106839126860749514743323139243933405565541294924182860342771143803582295098702532091313720887097646415222498402551295745009817984983199457115266143372603877899712330844460835474427423721789262097767635324985111653831386567202890109616437673900519953257046979283948147858497190151961823161661833610801409680602343991744651166092072156478871564166562981457099211416517053953382557905323233456222337023692240505997469555165188533015470459132225100819256382759529278878846935083911211454690128560607269444553950138881712059079295897012624271500160578476251651453948949908467655709254091541711012763198608490997389948771441729983601606164150333164182404615983311270459579144152883860250017763054078284021409146755171053275583791904097684592017410102172504707614424248988294843848564282621119450555833364335142550377597826201920081103554865575044502061330799305250721165346417139455085631291658470854354540494231211254021929812017364916933399230175189711592162432448209549767675135446802025339110788237674995914654043667254632267247220848441164647694622096290798224433959854065712940893887647360164551737786085674167188140916778125210602381600674337483407434625516035094461175934250023068484573927508738846272827237885839219915855614818203167710104079838373259423643845240358825141533978987309968388650091784020221555821389667555532567290330821976771186123438339080535528822708759711455687035441359562655743856263546135803383971016100489026125790973169364945141560739195294745076485011066854246261131789419187033514115856382758281211357669412253366399040714559359827563729358304875122197143676815890417639988801395044683333817210250564364534414194494272789611975527506182369677434426736696021498991716923391788506018052383014438488103040419101366322533706799464608153100557360270619398284754280981566534085166784174941889046996937561680544668033083082292449106576382493910751658012831197509164927842394622007149253407773050947304338835383815978707813535902064773251084967482041506757117845015505015089982824196100540331762231218558932745191412917816702137972254520515059422190143623161327733652096182169921770927206924933410482619176423005364511147091337713855532320052836616811754216925828529996804104157914504925517378712362955354242303537319266814899136342411575473589141008561538766585977991686454107910284664967782348762166101121707426265325992374366011373904730506394830456886329043292092980175278420774450388643988944126745419413988624270345534151324365543820919911949490865322077346548892368830683119996597225933269334504035250486043016858545969881960113406739905507426395007530170533612824450200134626511058340908262526441216876933909620698233929295043201978660456437562414861609735410672020946754889845101354065625023918868013764903976909913946055732056128103783854420916765140786285939032558774789403925203131983481570280768101317297320586425951964016697481808611609329244054495960164345208212931397785929257323502639491731640399048384627773231165118786536353706719112919455449783586548210190750092516257728548891692466757383762856243005567100312606303095053775534359105742881056796866460628056028972180064616407654387207037999612641676400717637299308924629367125643743208297773779562600675165663521886062888690077634661876634002414675392382151317606737637826736634359427201793614809266787218425440714906405734596863895307638505005695755819225175132725934809392675175587214185032490045275323176238133867099637976061611066311018505899357756384428630705715535235020629761026802419314839879645057441256737555175351527909997847912296558671555955145567842016471025957294721467261752835792147007627191086573713535359633770044040262682211712714102931865116616799946400755883663914400013284216702755848413602222877421263529017070806882495317608101328646143124172667264738762419310539891285418211851544985537418399575847491163686828388835772921011555741900039701794995594203232595014609771514826035681299925532777059139326096701202530539216259078401603226306437938915999588841011189279238015309302580767436941079034470120230275868141177124198052879556695866651224195470111702141816583592141860595756671458508842712899170036857933535350362175168477272803871168343288573250922155841864469670885732167378290312583823543488647797216191216496273973167068486322725356979814695912903801778939695131862417063953991414108404763623515109031607213083317936391068752320151471934170943251108902553435333061056931869611481801805943440482201014221811648827314497812180596674624198516542285392314678475788807545128006636278560876360138498427211036362178874440946023942463176849751971012304525527374327608858538487849900168944497502363725874615697847926553524069632331054002250827228067952592740908372098651738970235681252189494142108081371831206795643233213201934173136121772131919950897490340207540944447596391766533786772615059363147573111746506561166766765818993873579350527153411401271501347489639763774366474682836006462572120075734375158754892940410702138304777465400260723440841347875992759389141632735179368682977009694769720590277076514270713001466622310745663822068547411347472460117443204534102241801224825405740202148254510061568076330455006129818296211516289595522071385429336299388732008723257998961459047898984566240073722768187171804954335703470554021926509918500895660296077204217632344868035566050602887332049494377539383674994810695207242625294332645522279479542347797634867778733645609426349307872582985438334420998318196646474235433743873343077629112718990588307391303212628405672498225374590953703010902801589377852724121727628676701133288671241865874463343318681113068905371823186630523019247799829544427359829074488618500559520724779876311723895602371385427024967892003415323395280952746137176984149358162827328558091939878236736527265155968303430791822773352551201627622041213792740086065372814405668815277444739806560741631418784754553994397251667600049907984360985025639287001539520008980747199447735106204895017185016185828190793438181848583510768161593639605581338007011304267791167785193583475636420676057708038493751258837048206216903862897130812291840112047858283272909995937574819190361543905308479639340832823344603173758234874533481179697904574831821062664017094947856097843698840353645764027490714769485326468957209215780224507260305185271375346541940826032380612166596915724094315116821797382311551977085233711499114211479076671189463839929592075716256839451539818340956158446036614637296097404838926229347887881173576384682246953445947228853648967372919034910734084523570776208957484897461141358097698542049640975408318339778083818822625247817630051118097232665598063128665485326149903493894303448452450385917767948870771326198757406931579165424470723696743816880479691767506227910295834260763740788558475733431937892956158946555063568793468280633190573644038796371057577995297794035559428739756712573661542543614552058738632563960235313484607006819952996129796976504506629452254427785071848779426907249295484655322865499216910038756447562706526929976686994607259272016309929843469079692301911241176907040495486314310246974497733608894297012553423368891507819027195981367439719728999012413218564766453803659946706750745594615556761022599638131088440840002627149921514081704214088592380750945263400113058636471837339011492407064809202430734713513924252433571009708281563452808798495555361574747484052041106988344965485984979045115819944875578854132884050099416996832277017318420933117554771812248637859384744093373363574512967602484316379082543235187429219525758125184610543526351799295446376182672175193962749725728116500206755806204667224849000132287473709253285969747566564216078877861297269012853622263543197095264396269827998854568217737892749146817384764704843630567934215274157990797960024051159679573994479192709377122940563371859453083560504727035637864742005729702920899892991176028832430700200987210936431561471905515164985287022798856011904711614450485914793349186358112823071358815735636897466606296276723221028980514302226052570161596425342500219151704732727710748712550007020920176601536689905529373134714433031826359703732077122855705287528102334176971811063406365851214790162580562440455903614482527082599050344715882866799077672575266005768763008783402098201294323986921347811806794827536068064157448597034153386458727771678168075538632099223708432047902674533005552728969982059411168537443850173152261369549641456848294537992028068973649941730266693608181847284391504999143517891516256363706227390988507454892210693510867600660090960208587393611692823522992937999763717883663278815963215135232564011598452758893895912826894628990251781608992929352542844224423198380823070324829461997308075219939530934165355076670154858980139614881334022234559222149247831876125211562551969774468593106705187592384087339113118465117089239974175940542350424176685909814523304757650416938772647864690077309815805573247227982215600282417792611939575281944377494716235107073234948699865780343192496798388399863671436140990817235238095713060676203915323698968316067548657820522455452588498179348690950446985498259662128459110761106146683908420609550182517263642226218906230738936363428361707549197021440931219942616252007371928321543431048924083864337138213950873968425126482675691881225291569027159008736534123744338388067296463509273920459352425464864171221199583813028260138250006428245781168560990993633266923863603110377518715797198528989883677973156023400741617733421617737700313712434045837047871968342123721967980763511799581296161174956849208608666053045819655863864917247170913004193736230275648185269368306471283569797552312360735873863473065525336711413788878201815856542564486716715562253552842998155520588439862139033453111857793284651121806043986063146179425611831259656757215254133418234001225359899579541640164782668834525513738135192263055360692030705596480259073439340091185301748366101907483367296957216716634673309495836390264685256104669691934998540727955756966184297821170769900831488069241477197485810681854439068463637429323835976624451207450802310854638707338427377728476878689694689463391894877554611283396520814317320254892155734904165743233243243544269726479051618582678209209708776345962419060303689309886431239326702377086767046854591359153595472580592524908450235638293139895081172662118657874700019608159851075118152758179292186994865360206449328050367034068003048279927696850347197631426754844811499663160744855717951815131621437445834904957966664535622538620069872319859717988802900541321840244915741369414336917605062215164639583594295117191246211094076064211760282287609660671490123591929509816037930448714327873037566478364512036218050048582864851442339109880560296403031202616175787146389261984899822399611490106868458539729966599843131165636914707046530299794040346596376267991141237131956473220197941200982740356865291747798477080894349499718396698578543809837076692325944032450755720159418918321558906090291244975695370145327866236691432178956869474591237288947332022789877423209518348648293456646228698909114929647104560078018553679025205080732632146784005625426015150321282362968021261521688384228612587702659552527451314976243714971311885279751374964405774727263261285398269496064774101317829949976853468318007322755943364210180107996706594216232919082945142712316825871035097437928358045760486620983449181181878975825168881328979365795878901030830566243434864473394131991966192797108843691343773610705003239579759973416467512893464536722304309217810708253494845413981021651349393637691580745760683177761410356360023591526134932422865020339740149933705390138020006592641858405304218219772421291917745039439312032892408606938337564834167006739275325425684228164213721558772125981475085133187900866429710678542005746441689898117718011719362832277410448277588058728851655358012185015147912044746963758597809873091658622817688319765105821155093774104905848873484679651424783656782173290055067526778855380791227325349501339464808627857973574421419494069036073974335869161529939846736569539639330680851620065548567354078309657137429915258631114276638678104605074856861886469595533922165348354990654612695718314341017994763879892665997039428450388167576115647146585872888498164602396888526328394121918172188902696162013255651614491374978827613134006518532373806978993405497946310094953235598020074136466707910093579060796037146064183087884600065710192847572858752532606950671869589038112358712022096784347168985623708655019745552659513508559660658908031642219680723607028284597689464952302073122221349117672919201822798188669838108342186794268757578391318269963213678085853509925448709929627758419795662474613217965156741034681470862283581547773601763817806624626336935167762657313373759855789130529905599557796376868889933924930286413386114577667158410958539532741849854706639113273130881461314442907781336869066847154729317871116472720709776499979511001300631425785042454677658077720052553990867488229830843582117091505935202331146825587946089803129442086467052493736340240254820442115469604588424190095873366064586887575668354880937361427309950343277737492809738551050074289691383549087464527817865116006378788916597096233344150320282914255291050718786360858626665666638719432481236813683584980636850352629938393391904383247581697689821863223891839825899817030583154949267696920871101149490319498399694870746406602984326256173047001776518666959753728052703851363787768938260824533635652488313041905326407623529055141113620167016423844838045664836290779883469124857178320680960937797223279306003087777105560105623426685440514694950664437990760022165986038387317601529426085221053610329256491499550469617816835094628585244606078976678434662256679739264827657671079878565117612040973803648812531255546694451248959105456284894285291594265270027503386353913708326813501887662285640854485274832415901563726036604685247191192122439529205007639900128842968321411293424882865682796479502368527839666685527355566722101677121339710374522840166900922269725181591722327944121323135202606103653282079113141075766713745021720323576421384955308285544689082914140245502388319287812260845552620458924100431991973315680095131684728800322766431116080220860811911540540856607608090373845705582678550253149023740143714268935788380751116610761821205272219784874899243014686804119455636710603856936246769952412561684489283884831802103213031716260693867965515922883401010702151092271762544968153657967925245220584499487947074264703452060829322281597532219103752171189696433916091574561577847555374030816610188304728989302969908138766765003511621790434510466205669263641525025541660885116568369838838882072962467934905848660748879484461662570753925432045474172331404517034874671219452109683405940513757927391399256630935207447940002526143128114537295804249897902551659083632539129747649148727602973244601470451973174628886365854735365214730233139623241522820543981945292988530150674542610980176929220733567109283731237759155779043551457627848696941113654985380469140600022262787746144454667343659231246717851977744304993834239380241394333528578145823591061660982725464022445434412350657357595384543270968552957024243120283724194185146313004257893485820088360411973608766172319654580770211359154598203224328455784846723726048244799943311184280168758464074118995977460046739790074912794318742736689647571721118779059778981755223576522282720238115471817638851932673957379903757162763950856619183738357090755487351139188407094283198888107413127031371487893218899698056262261604364136055506425385178086047397057178222728980033958495618282419565924362380390540777844050792341913151246153912697297904732521210569197046721135846623016256546253915105318394706143981049525391538262190648144524562945382166522117887733082677556104159514085071019364109655181905295265774196906728815679072042008143786264455327946161076057076413765951185268189154072827539560648614250042556291211450606708462123129633742204195795037246171749969269334296076566704091167160000672096794758014080129678986289531244361683237874074874701421784096862650000150419097600611436187586661087194217801290672924711309837296674561854384698533731566607472400357246115829325216512099729891206886890351980688400673033215765787469448250881296457689849703716159187155504205642738815579201310295508567613804296027571891922104197805821474322505571111003253956302743672847159626157408045865312027246680082949767047500635926960856389912137695149248523500721501525635563717469676669038958353517330335053362307676135421425023182737114607566569167120910591246175442925965806572578524845592614555208019832786845921466379866643465471596816137180842835617631553947620610255502231537509542468755373252285931751878702863620866623088023650956177165337835305136817846552641477317242695407864332318834072045908630973598285622095012398076031666587057637302793639594848291880217917977685377459943698916204669984425975875560383471542173408488118586211413348030541596351174251508643724863674257038061931477649609643759271975272394355027008174719699008353807142877535198669665036918799299641591625157370937535710448540748196137929324692658038844030134883548785508996344080216669023691821554463326208262323255629109783229970345953332000382368911182476359916182889385329435748726975673336123837611374730899008070101244179337596460139195164097986368468044131390483049794990031828002566018765269755184291768265654791713295845754908334146222524564394362190134577508346429603082494995711212342604842082749316167147664245068783578517020569474174104569924376838131809710980089437210441470824137341292081211925457895374184032829165106060908371074147454474867324021630183485293379940645302706431257186021069862348443330681276569319565577741211329485734505534403690053978405627014963664415682448452010134875477436124731804621593284308974089805727933368012265743511057163845320432941171720176332097249417732518730514466851367291673563686268403757514573323591410637126205186322961578470019217969606380047793597888771327193595941569811821287796436319395528586621607727000527444777718852116851825297964696202638433052704396796347141286787378861500612642796041168926051765485350678930784293696072280790707644617682228555444885714308197729680851640429752148792506558569025127296482389166196830921212017801340048527451925684275504620070597505624079379785607074851827608791126743878548242496774230382207480123857937331510032791444326534002294239877211659376941764156195255584918695794222705142222830331625829899121691291286661521756550405557936398520892169723262519756759279307339466804687536504238614022103248555628955100298738215705517535477841783092760501677109254250889993396560130387310479847592289126812993738511113477215782875054711027137409734808596996254114199134701953909772674453359532414930520575516430957957660138340215968802560174144594111261495303009129510746503754844767089361628653215416656050183036376485742018213210009700105456612831250632986577060965868444725167282251299765389692095913446509606594302271864794112494723507953712269375693791214734856568563451732785712344897945590101908899383786764157955131277208067753324386873010607461600932099365514080663828951306214771795155165731501064137995877625984087255766624572697361190262373572131884924423949516433057299724778920062847957404827859713226368070609218019632860471715300112347410631360547727126531747948779222859992663154459046717655209456795510950375063309074914002226320710127617533889627613860370656007736055458185353996605504165202958803712347762933848495657481827678464478415547293664695654957753354117436740619186240101722887184257117026627057676652679186699551092572950359330992197590219211902749951468245099302098343789321492439891633556955523343368438894067711598910413777202417273934915563786916054223727105741843052760109769530357510327141426146033099762358109389939020463880891501434499637622929379364598346621056829595035070868691396154100180456104669596109630724875542613985980041513255676386370690516175433722143838974977929310453367356917581741010672978701146696496867421431849547130202017162121465584300202427047158931388548610927442789238886695708319823293970880098177936504910471987653342027342581368320193776037111915626903395069989170615922577063844810612249038885605426916936791091461439426848085440606352028254772431564387507406790756186720458302060982743738805639410558455410454824206104994956748721079229580394955016153430620525312460093791029652373093186842835098864746587579037932188912799344307294851487833999590595867308281484655975320184446014992128803884852807641491982059079407088199625882081577538677602694840401614178760999190135481281845627205552659667860042954809844480542314591672543629249450700353838446374175752683741249237893218955957755871312978848878319570689378422498185867046595599401233307659003550633289892419872865537797313903322953117026849924662214396506697940678581473581531348260706913984562897942620291211127344395963420576209922049909231698504862292005527462892903269665077304589099896290718922316539027768604837891830226615304595483237267319926488749484192410689745570734793986154472735032512243716654134394904381694341445489443893847252808549108532233171730103870062692197057809939520704450965083511470720044014124056949011217041909414370032242814574732905355364753853540527216163246082201899000121035484320056019514890451424046826701999812597627624000217984558448581760589146099975754886288734418809687177132596177564195954096670177166319420907657595981306144111911341063472576074582817991498861681331701605705951920611422359162982983678239520486822543265736087913589816337297581216428707280256038123226496952100075173482373082522442431444787525987791598370048849448875377944787233758165040183635902029840981195086500387297626846729770488690679426642494278681200895362544529256278481694532496064532034528817324928342969079964537479136108755613359809177493770222352234591575540596669947828251884434264724620334781201826066632451932663964237914626423368273410313032670800048669379225365596867147777475190862636058053576339725946621691474759879929509412044871509703422824381759451473288531266805372650018321903452679114441977387633054046470846996117642057848869851804342217790957584022635543975127797325974907865044035038494003662067004583858110433080771814371585180099829465387532612541514800743118049418722389782046821835153015146997877568787107601165037426921957777859489558259292585543085500245227394733893045033442535331628871284039954325580344651503713138482510428539998956909626211864482837767745113675831125853426042315900694017300440999045586979890862346103825138250082619519900657406338688135328091752361843519340510989527124302648351827457486643482089333342173803368379819323115726155307364129677883340922942686430190945761565798848695784981264485291010787943999317929215448725066350662907735732705548773217556198747950692662584531858939217839945080638908542683675005343639536275717438216942988459030438036851390038321207326727523840084053008712445183150000818824302794091405879253655419864089625285131681597318362303738891749455622586390985128513550994848893861254363028449636815931601544480750802993194903890214415972935472654429964672159479715138619749607970265541474498172737236418469307725236159877563605459281459853303066867742586373741657061944007450267629561479415344609587593046593087951975873943433069697129310243675892368251002483043285527552292563758650279249690897196320846971985657552554339557365551405298089080295017784842197562180830100948451920621089806763205359796916676683102042664340986190012214468530957278224270500172507229436914993061273308195458795999210914686613754376589470935931738577026899435082662297857913550318065280552807551722084325843783058958777193317310882030617434961668019515207391782564639205093642463815837953447003019769011177371959603366477979268795925759227266827319261285084598918718742929069928144105075731211683527903818368444760200479168541844096402809687320172941369899365686110701095675854199018745282468022228071989983056616097872563794545051120598842595233959182070667724148772705536497214835417455151969576516170255428256200057840775455468254466896219537395772053469085306446424458659114212229631760058361008381023104388774227944533891279104579758346759823436338469289246088660340214967713582797656750531073904599535508955895816381411422078290192101525483875080080172259850716941423426353629127871642445771956133596261304306626849448638192012074685899922570775670610126317239611328761833398538038192012389595530729204718294703381336324444547896757124731040429285084933503828410368075003675324406775383540323570111893052610638160762607329694122423125421952886334478432527312815693342444004344601889167281210504964783915964289714227303018803109193852815505955330770425738859681121752374566265549693546316767091991609730735064857297044735438534793242865287606966873373723946383851000774682676822402085386274610780743597759286764378827346479810122739065282873569735873083896298815141329994852566795145391208451231704921052867498902588546714764288137467416312085138300750750645845410914524354720012126306938531260462823315761969474971735327520210492756376643632561877010837107859593911962696421256707000968864535311778792905779696630847733087521908122490407772696145035871613584640716312424016187919913137431628774797395679457080683156206669727270306824842113411289175927309834926541789804056375433459565429506885061022001170042054672109501717331651012281533657628871246572243811027726129169924708253956152179215686580285538704550958732599184618901204936595633331848476601968856532704256239701960506770452007719110907695990024693519289281991859444638493885386608631848782976945909513568750879190603839386119599140855536959527608231154449937956722461877483340920182337724038554912413358503427374446414479427671369410013078132123268990742188655339532324655769122274330119330240823128319796722864337496130336875731924196239129214220678901658368467600080762287174387519602191953237107282954115908341661229020695834837736138484242657442903013985963418186318432450984993608769373849365746073482144554352109365385529339187830680897004720804617901388378643671014170694296646600814424950621338624176483610016630489808041412880020066906590509268618362417347552152361073596844478715617584501761195941195502165848678745032885612270929283320677840967563769014901701406434861957999412224347157362827841942847835240776956637482339759219690511201558611739071728822791721556568854972746883886008059224492951599526074634086909565999374597346661002792725785156223688559919745336089625583713839069865917109368796454700938312570393819667665889222957530680714036508548876362403588515786851474606044357183586511570605610004304670856092221120581270267882878489699909443607200258604179634259368973920266638796393770885772689816895831411286033365123845636790503454588318911996952220509668543458976408317989102655364527533475020123476933604042894619943963139677942905168114179988278133356768285604207862623874818886969170055808376907663292971617129006111331803007272438795039082601753200406536060018677071849038770363172451843738519183468307247156031619945541891761575152598395082791396210580137143757559489089110994837381727445697718747012076432455661648290507207182149453460994583631752381433986253097103318520255927049844214860831308006329297732200152264432665259542065384657738480466132090669494827236752529638366849640750074782390607182588043322453232904153410260734490013391047312886411465562212768737716819212711324540579882554371214611082884633246450266303028499224927119748098923701458159304643914159932990076887556574026409610541019295528580612089467268341734484172899364979343875473395648581769035875717758991978145740756370209135712047781021696016448307585373731427974614739156729372193740967756782112863696921917869080148949307540898198998135062389840413555300482293654342612192267784209497366185996467468206752077748969221235642965183093482409668233165924272963146388541224006496511831163951241938079993765383609024624438855791698261525964084432429844596486758424153560607121009893242535303904608990345052350737906051768457747947688551488544479197369873993240409816446967197436471537469110365851218767654897873624440172465080866926172959922940028800952961875062864340848834299602890680907738686083647940555298650483538939204865325329034961105313817172317568984733034448342971012936970443419578273147947578042320158951716016399509665229817275014805500400092088479145470012027279682304699597792640876545353700943245153746265326218931804186726600446527948125325782352869101654323243227327378946876156003744164895013581046945751633898301310025646168589701490121303887571364168784689114949663909631007363192722894216598633342352217209333110235973033263810479578221178914535110858808334776350817472809553265301589435997870316889289563983703417123901384319454331119967817708501992163224473696635991958266490583552566908744328109839271881167781308053625971875361655190992435040494049975539781471522814728834958565888647776023844469607674997399866823581962755798405316303524571262058189141444649393788683908211169923357316148876612730473570087532164395282980425590322826654921483785977203619147711320279622768557288355990496541741407132110358019502831733687877809653345443668113238291641469325246708362523152505111446205762958989330472727761127415300971895584536702122091314364373759345943956067153557044930317216363787018920306791903076332669458965608754433055309018660502813935272182149758327249340663534460550997765448763822427105117607569210110601682883935680774872424166788581217173435406091354982768507222378891477366177211173091106911515791954008596262069213512745141463695979803286125544059019224392345281313254547389304146517670102937429003784202521855647595685309852438821649482020810112255931430435108188018042276778021603906403199624427303108708631652065201230314999960868112902251416470575372049428147794846448456505705438247493921789054959774395645926704577337202096639319925952511924814542572625275139782112655531118509342889286782613705828603122886432397188126723257217606359326710255811702540604804416458017126826810228908544648806971176352544958073284062869165567065142326251660276181294263632737290468223774024196413841916061831671384192137483412037660144878589125138763799769868645665414885637728648079747335488689148804605868740325068716427004117260860375997904939718795298938039405413530679899168987517872826818494229543571745623075849572100931149159802457787519597867090974359550389069881017192904522024986902833785590843606880276919973549831212753794206176093344499606748530926685599413508833957918113048048525231825776649616751378537319574003855025511179550391215873448124757446287864596031721227390102820714008678986809197743258561911506275151782211362682721757623756341414958984719773878376198681339795670643732200607307761903435734695847653161403159115135845437077554962812773353157344670925866520412213380252270572317327582012997338984425979361665226456063351894031331883015094607299528742670364568715022325522345200802048087611388398676105989220638324611562228721022102730197473707661576847737865748356184719839898184759879733949470279302697344561447735211586526753893489749067772247240309913512986346543775359714141878326552044220074903080504293180013431790982862846313044248580740629248122412400540223157984763747501953989755288099826087770400657199077404739182499812275169554283311905769491813402823302881466570102184065814742016065294364068953559655520455092459799152316312577001654132247510380735379240279808646695902553245038086709080290751454903647026372316259015542593417374789666701983705828724286410096171105118452363372115267113704992271901578563006344002261872073362412821617480808096518201849923535839281192354503112961247366367386133367857250583394435774828358005017651064179463000872217640191464981460615796321184026075055874945052988270566232078389115247057432597378703463379117646719863511544805002977799060753347887984054445920303186436049719998572724212916307766985257165865914743480329203352352728110765138313372624732981876279191769034057709306944371912571149385080942154909462939332117469274100101186393452842356638107945713848762131550818166144556863207630466714894596520875284205621884368854964286774079728025296367167122123670013769026893653478987464090589051909173564104366032479982783239574470339271369338546344048064475045696378753934179664617725942708961053958714515352587191650693665678817250453404528473422491869767234317426559787945715204171550735186225265493946925142177454609144272806600421501798448207019367861142253339708998435632668278701262640607029725724881965122450819177056343455919193016126154220619492329395755448464897283647431147488887148383493621072659934282915079316444006839863046020066625811935296417091177365578093317093768437737227896964173753062799617389853904417173811443100575905569839006928854878921680009293740438014925220717688252944712613827972118663698122875157469890804750027952018562312990184514122427490466747195130283197497493206154734115636094535829118767559745811656855482975114891454126561267359651661244210610529311861592840115291456273685877851622751879635005302859800363421599920820137809628977214252640364781752922104311599328954624423436852416689757491074606210658431230276474476873337793871577228159754864047582603383231982196162781965060210410593825999139500548845559544736897633818147977621710255690740628735278031377861504324437487021041561967974645680057019908233494694663338559562358916394855529967747133727098172106027513951890673997984399872717096176976870125654358195520254341033855293091453210138334255102444001562488322250512936370418001042937927333625120835809572939895563219770976440057677643547990403013847610974357457155378884799427345142442349862132153358782927011720204367246961852926452040228872830518636409053777749323722724736932637953085652289324804797048660895278768083504712388481576945843624983949011401583848660678528221604144363210015596182640815812158004243869618467269136747771169299366855185518884083781955415729777078566040772259991797319306322331139203331863548430729216475082919067715540030939634073847539331424676325645319310086217874836384679746792296188611652614270538828901189020793633318187336174815201664259012280951766817446990151621095264297461116423391072664492655791481367724963579286990725266579591828579081045262266986634423766846303453655677601305779532344884708959469454617541503291927514709466459271758753975824913121054709012336742962303378790672751888701734245813713569725651996935611917311282981445787569401004114750099819983409456080563558808878202163504220735019089712293766100556453132991878030721509878632839004644684579419004925486069744237685921143644713303939793159025973398936753394837355391494410552685047873930203109077522488989545056624509793595862206084138877238639099022270175354853469148214192400836479103989611923810252626727629392452690281575125858229791846564073678622184890460824847298762456048522572454847273500578615559257264514175710794617699848946836518635565456395553256717663400165073934328140649527728903911804913083044449030945235543107194044058522390585749359924915393511157759417724711948020447823302034248795131632590084357471606325381929231671856309281042982531372295409887693238417194077252618135448212567288746980424617597219720031363117449934953633759470207119673370606773134147614621972978585764851241520943283667564463178081804663191881087473114371329761647314758757593341068740810394442309914106756590391720701945537264474013917018004943826604919857472676858660419926005768684647844619270493924287641026391944869260630191982195474251764988075292549550964210956722664138147170119035517255557953119869905445300185038996690924516493289753937025289486465947954463261367939536706431781509217477284177221998312542037873050455480099760302086221889608270939463554267406495007658296028619103590003007489270479573870024849793309624459067139962558619006977614890653233377744583104270786156358524017570195953941390085495981502380211852147530634365884567588867393628042704163448447969597179936615433800839065089652111168762096864273986954132173288181973476903478032658562629652597942874786802029458211908069644980290913430336491046360408026905024027051090089282411664897551490190111188242001927945933997790242112558454098113916427808182330772630720878977496480251382519271022117923855169550745277796759299057018423517426808730341465588247702418726799018118764960730640342221179690983153252275950895559611414892977692248167255399556903518324993346962347042823028747309065393689119310027873070342529382173831938010503330831623806892087127363378871907558089631140940888834877228346506137263463603171543432359302067126939780223631177746961265135246472819268081291963348933452797172810592437769820564858089860408329654288961260516894343798774231184011929578870968910542344252859162865941591603523614171709008643282475931306314537855722346460636759363598843795450764012440753695065881931534148784666755320769260560892060535247552577023268564614749283449710540933039507023814504907779390521553682487093712968748947744157421599127316383314309035236196713599729654843420987330665620730258807096100406504590682179756252009854019642783773545937917917754504712367651305482570281259498286506002870538221471396252230276019797114824710580513759316815604382772282664290173417726953621631583351901657036378550037623802472202427825351187960587566697000887514409424032880780666324720444045473146896861491537901016592360706092562825274030610739596348728469128026092356422558313635946716325298323667696538293791433878015281326733805183509792980134666946422491940418877669577242178920391416959329972250663338186454826286012094292324660052608947358072328579328009288370451690564378124669653128916812472587179157452113057226718228498991386554003689767051312187355707263783066056839047239846386570311575753203087817385930297628415752371780585774564887579268616383539241058233877837360255722686067998605189928420684274611367649309660712299418618424963404741323760240050997534616904565165883948212309419963504345841433518059585952009157901381823822021937801495070754590053582932641377431977648108280843144656199509495134734566962031842719156908333966446321926671741212465872108816486975913707382512243301641109671357207083325946373598231350996155134277893821562144969111462921310267687916733072145108723266628450882074073278124587724767225062578608574194617281851168984280912429012735440085425811470675039052292103648981136367717193852985270076115928927636186448063546325288834914421732742833319902446673827974288387373118868287278213171828573425020120837211358694058920042099965895758961228258172962525558002024159353623040876334971137742781065156331279264264369005951764944994422453780014732804724416864078443322178369258945674382920050090633315529740316804056863629454817011544975494539869911196590081080482827835119806487210058661568462320334229098701959956265685215914972863893884518981385642441148266035123458561737825858349475722740377151526002479573743697567012993946785891286881982268653991136561058304684991283380691163055335457518895210824174046804921857886501501967889504865820161993028999613679476397543417274063498540548160503221523838017778814515972906032531335072004101854032129755720549588085640716117831239166845484879157704565838173551145027642244656624797070339567741775202754549062719486128574047206499225680265937556443861217745240825160989449050664005719557655887011078562690177051837064111840882688649554013406625673951506796583900256555828877594912193142517610424498991743310771270259228313191567081658048401522558906903212053079460908782704315043635494346273360183933111330975501620795622815068132429345583568269076804411351950495748955843125365748865427061049702615454256601065106073161039029337053403482682822175487686197974734639874328872495261385935650074190498728609843543445780293407834022475574424193234366830142649860902271154095788157685376853241802968395645947438422362232359615601997764081774957729031644476485299266268477624747731557827054770783236026502121130720849501540004146512950287860913555889633530347677711821177280796620930339819565452244586358148293759236084926672175333524504624111113743093701208070028207161213747798571344352008596870781557468254558514979758078571764172305580370012001913023149801759011375013252694116117470881022282407185942639628802064519223840453967727882278218987227035523994216525969814137596012429503667523814640532512745948789559422240378701382622871536397832545415524855426379909121675198423949054387168669598359796845717155396916287811019805046382029270113271707975856370833123729471359917429988117113624490508186968021607681549901388133108017960318154169069240690357297961891833964370833251827672175364629693300015463633017336596966191249833005701829801830794349517519094292797526540774195103844176671492013882552977178505288823492831225369862473965924017814146460204632871756794105428671615050086069047992672278949328576335211978967995690727419363607400201571711217596008419535168471789879029494980972397653418956824203605613862724886381511078681200588534338901503195825729393795465662352303546016639823379276068804924277311401477119037682812969771734256802065293551899780350533367352848375857412829472664729592151935502950052026230966472981225958230612050553804306469113637124697516882039918825561761865801231325193775039224062689918238421363002266136238055593832087716237773193720164453317948723409390813143145487721354170256994695556098045482308684716479003915892098312751357457133401321918089432724811179812275412881451914811550316703412727858714814005662297965529183349675938092466342837510648559047893625151616703033747388114176228048853021920700219959661505883658492408991986054510674307599850118529105761970039922656669826271616753984238769603756175517300481340644736579347305970808121559654229870090228654632984596819903264156353007664812951540482309158220327358099007842273497884705522877487618325864719755043936376381366379025330962913924887713493313019039240089665410019558662535053993166404676680574300536547723562556868212527358920225720397472422777853465940773754303799451233710239494411292695605789455521075410344249636290677036752028866967691759923974607362730569712880966625333563189162878792075499616326365143728139871233273013272189727292688973199243522766658559063748890054780444859456551854448280663525023648019408132387710846673046867481961459814860261044316718951477377580963050921042693089834794717789941998920433395612021213694969912108687491865995729930728942988513949263574750401444644193317321315539622992080505674686721212580619456121478818494640464098693223772263086980263869768464352724782840591260099838373574441197471533058729370973607687427141128607285756981364929897087042218183871997304504739100457864964522146857648702711408514092698313450354111249016997696835547216135350254398318865089087773265260241724308585145736065097075302373606203440685995570639410089398514882216846580429008513294553825653184633975179363164422586954783701869202902763568212593196163326504048485719888411953954201216845474785146924927198215116844374921551577269509621003657058123087052197993910362968011693032832901732196313621718296540427917634680710062414563330497749036914646307614250144306485726507391147755025262238160636634701854932412728032172836735055735694386002457533965951083074241797724554731686011909140015576525017266508279860435657159390615501469292137770317854982494260961896893081083099206027660275938300635285258072037906768584153038548409671567315581468783126855356337136407196908653885285271675647154472970303875844023729603675840995093876107091074061883305931766920634265601306861116910266326335253740747853369764896049216694497351849705594012562269197209042831961726131737669492273152767719600686219468160107877761586577207509080019154216547746859182044016056106141002109152094454309899059496330497289914326759815488008148129126213423822249893785987994796598814543597541532502111039187240907191082695447116378518862433068759096039628513042406075886777565121011705006190527323782773000276352917437821281087966481701652233994613019280652178250597312621293989051105204892250771719402801376634906981289781416441476768815933737956457316473339618533204761852479169223320605536042717126671640554765418955820381861264073602640710511169868985369577597543584013372479416394153225484223343305450792514707717783041284836242421617770824783882405778625726698257551545234637905833967535210433001345950570359641690611831300092193035946797518682779080286738958819555645702081343108348954334631999001263298911397877001416638685049086288922704284107609652109117720572965412161468708629896637907927070860935182830894048048448598457193618519383544072467895819410675238644946985020560099266515151523534047636756921614475256285315730923390458479423679592188669910868639505744000346353221583096878092760725550155127938994995141978986154137389182281318340719397514182503759757186657392677993142375715534859761733139614072154377220923384047857553946428464220388993357449982478599977200008226794970893675734431776892248625728074547102463599380783520233657706585382660204273655278294847756853981451655427919004438478750981561959408471140788897279177981218359741033149661699051401186173628888333357064706648624164549617026172124253904279126927546417726048974865432612400030691292953592866031777370815081095043299374311095218532633377134030456633963475373078058442739661700366220123768702285827547074423909205929497155710859336630707794348183755533056228048278096261801941512832691137577138761195407913626217994628907337102371506269057494904352033131211421584599443832259759412612346108666658167317429233569598980368476476691808035452085096111408177437332556937525438827792117558191023653267267259621026224402726101454378382732317426600659698444306825164270199635983176918731527546093203973303081620021330027769783642960098213238776571434862163313521221320874885934520096403379251733301100242863052514342254532862702077321106599621888254479168313065762158772768852465216195114795218659732253916385374842505723537713857318588726409493765637204310628521606635251079018442323479115012337375296454090051944581593884545848920733320433285870702638343631810636196913290496386748577273590264483835839705747776270275305345396024583240482504373333790545316106848491212078288328408444818244158336642574115458005702790964564683289983521438395600069395710484601017075195962698784332367067270375140929064398968086345469039311376278353086117661587774760050996944046852413154737113035887763389433061850439479626266070306716442448712972254547802026904400674865303438145010621698472220819307035648359624982181640395732273279726856657575964058166781189446533493654798421664912971050454112368531058700097281280665773928312471489189431584433053567476395917343711482181472851717028332070888045670336494208465598763156503041921477375472112032279304202035219460824785586693978864935443462058068743324447355023431424003839449665437387791789200280355360593995295383356418918989859615726445742437038660421292596628141901111438054952815233814132719694788797195414552239684322876812887763323384334426451080851933926445625579075438662819858998419148370150922533269542138020718336677609439202640567715796133381359858106054999584987519349406283186131587486581130734249225445067595762972545666782290748881273555066283340900789750325281189050499017425233744559566174206800123082041918011050551464807174548471271981672652269304380340006997056582079240799930892379420832273482529871742278476384824158594413762060927954766144898368092786189679594479376652319218116965156639431760458703523502278879436753009030046639360202816608552032243106900243530280090254628828939993860689198510460870062425932970249532817406795335616064611766626725370722742361917699684307184769372561821511454458939168646307438088572566484591516443719144511023796500395051476814187302668506918831530679886019891638440133363883273315178138603244117420171039006321176707700754013144376070914193083824272104368594863257709778707595591719011660659093733527083034385880315159184432578807007181469662027641821351938846181191463209191660344850998276306947073974720143723661735716307190528971797692554192970257211618477841221294748230262117651073613074283620432099896265093904903073683438604734352835082168938200553023770072036909797473888424635142863009849536363632169989192476098790963967534484218187499278007996695157476566466993233893504201236192380532232638868453118116418051960996318737622952018205656300760379723468785670876891512910166466218017196792535424417766235124124597799752509949769984134190674279971893491377326012679580954428722574817074572135756610318725035280060992021374104499925725406361828734313174654957865706092342597166125141440009101347495662697828643453394633880170673885976889515278753351763748753063908308405263671589898865985430272155307048376515850915682782112290299089497523721416846174422895340875667772186010939348360704481953064140906376254853003831010920651729580031291945318184834421666579602612638128923206246964220295905162612247825926948774601767987443217935733443681582105674515956393293567096800177419363102764898607280454146381535728136396646464454843705302187205542481551321364367600043856513433122776647955013360533451027604564710027712291999281868433718135216520897349362659271155805020184670868785537467930264036719160623571471202672893633511936621319269533153215984511194734867518311733721288085219206053546179025571680339502904237809347450714949285028094692820296583442658844605856323082065908691142004231250114427303498371032193241001182663437670682945000502090862350946972499387874923701272141695681130124777448942129832442782987342301581908630675829174192540706008916530098662067111348632159646108550346444617243918924708291721293151398021536379788070132709946572766776558999973793645896043801322956703385688674961954144555549102729252589366302778772323714507103082124962910446027274000510915419627115871699000941434214755544485865468394512167816498746504754598447510445053732767219509187523199646071913418570845343499138807108541570002241290059369431950250890965865893848577489651830993918275576880802816435722733001823649389305623991570679515471098393132967752463028568770977621974369148880778755322068189594907270942267548773133542114662249077825345060789195628783317818913358184223132349062747658129229586688898604876797547638612936860519130255943063281505020431239983504483038208923764969934248948481641592268145319085604750420392347120060428019521786154057881642088909042053372048047542557308923005179088699416109031952925336282638691630070868895849559052578434814652199849292625123898542605817879390877379744975930135575057085170321053277339031768425352581642806417357655086083951906257718389377940923837567371858952842439327870041681021484768953275532234168554804604846384125359501404628142323886349726834266925950256910842147646684486503712689808657643987289405550602621818585961569341615155796478515019477621776826996266731883617512239838574183069049800365170313653151850552265742013254930913735361557941782885317667999036239573207512008940863882090721158679805883164555379787753242622258390933234067771047166155326168017428363458464491610691384031359724719899398070792887983805755155807439279978970870461978271754408728312963376388319086716636070453060379497450909296296655720279663081308767059022428713077637412567925026281918723011190905598136792592079873446496557525084328785088881196798141693640596886943655512313205653784946805834898920661649397212239706958658092026156897925615737671979450881858034076600821604143049526487527559463610740504020479134226054408061634126808800365150162133059273959233865698913183613929300662362071952225750064213556401679102062052305116944287809303428988522202651506324904815459681760345185915795253665286612685032037186407201769915054366786560034724007139894187476402653475919421338142432000204910296416458567124167270707087967051788533894449331708234659471054385563161090377944035115321485500461786616425561778590954081967435966515415760697015505514746984116934187457463362931427377289621253038453525939248868810488671127774039310902065455408767765369675056206906657366112848575869939539897974791336974085381372861739700644639236857921276474243550209789548935270496156751348667556494315813924116816374991917623782077712185340619630893700228943140085980560256180255109916258781910504463626534775688588456877759150820245546227362702470571814664572965336213843002328253331422587518910691124841427626227928916802363730717863329067261618649378097746148100108017708020361162980959638976052491160176622023645252510274620090246097063493227990378213015201814696888733734474233402598037735397844278211343969327886107444990679305422044924239391627371902636340190942398994698359698907334518528988450508290225428087203561698928270879179404722109741716428010866036987632448557073688218930903940613185813658291956189431076481418407424556329646607473416542180606468334364977033585075311449895253187432767921926465091339036958354010753968906310255782613777554227848878354090609566806656446420980539747312578289187003457231755745782414801733818067400278484039937299652427565896615970479625847828673560396605097821383709114080831374635361581554828834562718427318875546554808625244152876909745579591792250461137769944609383858752177304530066014809247694039785436756574397312966154661614612721434518909007700751357094240183366894498900684943183930733664973548490208263213960490258001249466119599694581581187952523448535637004882010881550874188661770414361444143214250717553936151276247885500823715294712596903519983815316324238686878151397849397822293265778616089222351019245960193896957780235489086471361883921367766252137286546044904279184117089119015212225001302301083271424493696154262702385202975679616869628008552334382534979842514565468196939174685980827999245779596445137524290250012372710064546629167125490796389699885047063131328838028799106784164210056924311891978907290397685936732901196022155884837812281473015927741758604196042176143001075971052037835689051505106804505227456605603828480685676784057184166736877211925662768712373737304845718428858021894190419661690424501598807604943472523717021086187758507500325943151858814684514172316445850348209478210650206671559440982871867763701601093136413807127301331205574303698104739899104477001774702652045151817150190549514673735799784172251130444466033857261962320719539386098997409077007981512788848949780289586134087415818281674769506400312688408540056872387276947806772015347458456008200123196298720325029030123220996613996916116764050679030310326625167970732331048260588304457964769979616950133197336612785435346402814350907102360974075506340616748005059616605599099222568264043060156665465723330112561585075416997624998340431537992938025737780527382426237210937752484334099624457688901979104361732332998006994293211115212108755149283033372941192302233162975782495699343020591128330428214970306696031636372237945925132022736147551506485656279793158680062212084932041388136136608406685501900771732179252979631072128700160354463428960932927433701493027278629107327646772990786668020931208540160092035610388273887793706983276966670142587745460599116259594700922094250279291895832868232138384029261329989892388742647199127123244074746712650486298731221011907567560322668362751574591418645060559472537060013166666199838904901749258972130155599541599294486257919214581733536843350888207952394287435485072532826733707923026738405476693476278752432449092091025700126536300071141064058997000889672436520326512800988598351596146657573273985323330358753670178621981338990427860668312261039659686273473181699837755701737564589909899375904911449355226671362680970215460848324532638934425837182614792917524422041814416478926975792083987232205117495510182004853420712264990064615632055358501260490232171074467042100922706472627246322171905319353925800012387572717498177014895258296878947374751750356293392087226388061364134781124847675205983328078897299691842674211638928491863143238307705033680972444899964734227087177742636470705101391708360277857853787745035492917032263631705193518183328076093078107716758591923943226361440052636098275310857729908204255453963909291878049260384892112299416146057637594175306362448711573333538293852546912854057127070100400286814895322183638845030493556017420278698613238170050055186724933064185071078357160567693877497132906841528438664781282902508292525108483675819987360335030425561026501394915774116253770421323679141999570682702617983683939686640343095754796669368987512629980627150990957403138955755310025567670748469062062020341679379296639257674586718721849515849711962608564339163720048272387230852205282859393283935108189393486905684864481500289360247950047895690854506552012882176344949730320435690881532552446110858763101310100561441509515304296285798123972653321658058039054912961261645327998458650283060234337737309730757294303119321605906618917750110202263070950281639334882136354329942102955697657486263212412737395734214135277978682676294698808317638627440094147056888228101891700259771226069103109590328666416318954420907134627532616991564295175159399267274138245483050213979205026811839412990651617276435621378903419923065355327282741923947839179404730688264467836834744000598900972337305598158729025347717129486164369785026460144405267042957929136710417874862533039752753144358008689659086802635318819287153847423403060751789924197077855618371568338371458591460805374744314077829330146539222746189208172985429639803984193804488989193621177955911571361769869620861041698671498687980140294608040019575454766305244156352686265669146122408296520525856663809259142733756413183936250097481672390033669806564738755524900426244794943648747750816621933116210886635793621885343806321010652218635110845666389361890458981636596724427842516616182335227273626168397573204737715231052385595559888404217478762381676096823982152780316640053295487340839657958611467451511592347258205692203938305999404662227748384481319916776285959714282584853967278138620795365667284496179437252933434835322058327760897951772759215444316023429830699008244432910017019301497027313104239937672267747355589582600308656585966577589172264861181620057650293214877099682514512175255094357610493863161589309154837549749606886556821331452254479981553555012135319462207892037874808746373779290179556801195678019093948918173233653276430490745752964569868475717769589071411982593306833950224656093625137374185204281548311285877466875733701506762021020045783347019793925028953538907106401839541329356879978714861908112431732921900640111733020294960540312148886887340757755113487311814472163754983359040528857108645409125772749086197140586428958773952463193344519915607646390443596218672220196431405790102201805272843127827103909162029331418676804621285248283123670321623317191922397323191911718752576500998820592305615242471047900776768850850346166606748211971933336445383994811747542331680292395096887313101385435445759920023158230700365599861689254973798392578123998222998497010676552412428300566067884812249129324644379839554916735693701212447398743651622447345433843970327380677511709510883918109653038310351643108127854949154307239801675508027120930299797294751400012503691169455243987143083515750899492840742924219363424014101025241984296653584734816055667089842911506035777952145695608819646901558578062452276476126294918444116315315028754119279336210580310291346728395020960533299688123548096193577077184581530903810267887680792938463611829998991563459535402575101496356846104510280694670229935298938288187694217394800079454479747073213837058005237884730494000082183523083382387207735712291265813770808693002485425934468957273503019719255410038173674096824957494159312143668428869630682919379526219885731910296928210944992609353215888048491372538863612151539710182854463123714870820578165913191731587259536125168941340852341592972294126386551380268981948360575719163735817199304810669377634289060519346502200054415390172435922575892452407143429479933551122434317767134298427613613734427158065687199471564511878207865221439907479659851358929349169489439510000757454521910044193942593223817567184275618598970272633172859515107765922555451444877016661794206336354055202187369091941668740380120374824392053680415262293713564092315676367553340764140883865227574523815465753378981266716520830406664581691191489171873667494309773978207703691639386871078058728261661558783180427059312715089185926668916732816369269754236550258535299687102840766466935401178226949235777191423734517871524131754088069005494025576140134282857604063750845878818008260517260162417515487615903298985438662598890361845262754669796992586029279416939101998440919643109970360084509166705259976607127311396781267054019269791032083698283385752066242308663053540775782510440190166310836376335870016530418906653044136807330171971849840900642927906430999652457468863855945911433454945131537650048281708824496498471643179577611689764405756349734248372281183542182557542598553492012772547119911383213897964062520260212300947681657584107325746627989157676509256509649332173821948378267098154351079469719033961290876500865042547891614967795218574418171575152352451725910163896185540368353429650249993816371043325792792203186019115198768258695404508790100231164308315539682462455974816051801459170823314000762067761370530882508097272160155692881222591747885201845495969055399488344938406825130029140767953242822444964197825067549161533730464907424925545377371034539766416656079158869189334613465112544014724604312354964912321414808941128550701292540538297916160748861435791115811093048052199409010043391529496294463082818086248716868129966651950072631352732710396948591126146472262887649550468162500565019707938616659359374215941001977426740806088020175351442048568586391849447777491067149330463447559618565691648575134535145369921464423587593023831499573842922035609885451827536903612266036103034187086756458757741699844772288049056463961720006640659048591701703957679491131994488174771654489915810234092725680679828285293265459963855968561600454482609536867771950896105068671830709032065782846788472695375896177468342262772716759448819047483109559211762634369820052112720869184164336579391021343036102020254729312974086742956625852249820592332155282733641886395377626335024820635348749800747383013498567720455435035732433143159197917891462108457373336332138469971052924584782133232510930799168617270743178024208960166160379583407433358612894695710380117794788203645008921027789475217893688894609736512620379896167222180016143633377017393713204630742846069926592351215045341949864079313855813542855662153619127520674762490644139584426312859243245083601644400621615309869734404607299778777383523913289239784611082036803492429656918561371556270384741094027635002638605489859124875005566813878896457723340576289799003869815135892881453785001683842978262685246754682593448689209828581645760980836994420004128718141862854961267651819055649766266553187594738100502002349658221741517412646208007096822473961038056404413226223131697839474537374319431551594535938577838117698035981136681046340119352365998448940631216547674306719214443667893382005453536547426673942336040498236493898133473105405073736222445386297762836513061290299440654959363037665656934820233675920974941174009475408114315200816843583814043412467151512682572812261281989749203440189859647290496002048889172924251312878963077278887040956060186239590160194650876965295412089946148726973076879676570345254562844911282950357202955775705765997991239986221745554649544684002385143193663817721912280414053743367708034931969368310945904691298971931559193697014265754780111307853802854923502202583390954757977048314179329575163227234238588159654521504134630874005048172611696714458337150283157486555692560392425351862191624656536056848952821789483457539289948563455542614874571526525925560501879240891174263460007196919670383213127726983490044737670144069433523145021272177834487871448026547211291075415022636899593926007828757673781694588255164913898178991754753022886106569274958494272585177497275062062757641067678651403082839661352750486291032178691465054411319172723849688228418625900752674793155896140081520426469285538680075336120820071137517493920977554088539819999284104753356081576954597440629113487620638742965817087396692291732969225367859227422374099211575555869843310450506220729221620571473696298469834721437210652032799952914569955358794968466617632869136997546755504435048977351719949991523964971241074138130277990632522037986353754242414392959243988160443303865754195712562981113204027929451404571088126303185823904239757809916494798551354732890175754566644755953637844710779997812574858614931080567136825350147416911467956468861617896562501564749591297972763450936986652953864471675137131358574735868994150543980282948004970086659269005419562973443551168245626090059662474463615102735919880268280926745296460118469704525105961848714882220910713824263363403364747292638947662471158359052026888014847728502956913181385462394081892724028210857186233556755396796481362672708762136165094285305655665987436906579259111543668401064541247273287292676201034503374464434720350349065555748746722296506376774222124364208521232942748354887824175947525488395279834957755043069207035673282180484880234359062663167692327173933920155034593566603903851560697423247735743366632297170478152038619388294727345874672987506916314704299562300429174363582178200904677898281658385817031911574256671753858911666247546926348597412510423207316300290971438190883227710359146636570192980547746984326977435075256860935621378527809173065142321419717586562705693944883784034547572459801427359045805708294905503419905839913552548145098292824387920054443492069860872407592957644435157285877056167290344268228944298502538052096035119069235872641632990578422759638278026642239849966905126329328998763993421054982170365508147428720323532291271860767792318996097937979482576582705719826186931229792574572376387730802532976170766922605179646251530475198327617836739640190454558612886101037990665431303642838017639609224980755232055345500061956936095529365490078563564073743644385166780929376300107334431477269100289035470183266640171788138198100278369299586787586794072725001536596659946126928643089936199197229020332260009730380835194518696867183496116298747684938998088114951574733617686433428421008496219597322631114144364319386472573519403546622980312286027675568800368211376980050945959482621981856970490874893097179250108365561533746187202397065352867541895337252189271309848467413486356234834825233618441605747705227188376975498949104683414587625146085935896188160105946475032060344738393615561077771955758497388296526491568172050789243834731074744251229193593775588072511087452677713190818636229296196092459533995517101857348126672324517670906881750632981876861674421990966418702999892786937880051287739922059077694746230516914429969156461011036420908837672974090489907892357974123672602161230277692318746599715400788933336600015993573280604520102187950193843014040941632090352951242014488850693194225644214573577444644837326987758354263718017528305135429359733702728505002907581934361469342506259306921150623168427812187192073937077031192740539194918172724563518971165088248399490228909642251620079771613445290961022331994629075200959181796747544097664433219128074723908745827539713032291066974349143733773021672820945939142334775960170929054647657387166999922758015766723875648646714963143229278157109973853758026800954494603538292238550207956727091441531127818272251750897231619756255708960514512201993323266351532214212793548767823313386474034148837056484986776914827800268816737350061655223050663522908253347737070731418088466627674992151837222606000792777698002757776121390703383053234377469083874840283864711606977562425055249093845211955059482773187361996126276003034018265779004569552174241450237137189221297107677391741978510092459293765285378447509685235477761669150146303100585816278293359354001761226093572229848878909722029481125706617412770969763938428068436016086441377728324947767941711595171457085894378935496396739171583420356697789043172983307450280631368283761669610135727281862136606297739311923551028229224852945532296724198034682296294040799472207697362555576471844512720858032385318868235827110977338943104559260522613058297227359422971327805641037306828562481057161345936848350630351507009612430968910111928882972456922999743051630725758098133202299736242190888918366646471820527478316707938722403857382158122129011752866813537521721400892575036375182320491059558855804153796439876933641699904235516045254300810415521076314431601969698402924279330332742542463648539416223268248384436808195161621000839874075261029561393766271993156281989107685988967762890381694311825606785724885021596733533046364503886125421714093538194631358243504113198886618869955948925439486377946442728319276005441747276366428554073333197340906430173624912996785697480723553609916045918828390284615423681750524180736208922058582291411511049499904724755430035078665666095793353901693540257631355148722549350320459373926513256000277782994464208219381799783251682356150233662321566024140720020359132620192650468810913720015332222615406081447687009783433974847769163229593948516842936222762193682294502391936347392419396843837440591128616323710131609717219685164854488993549255293660197503458543599254952059046008493794659413057425114631527631115062158775633748186849039988240834598219938476794952697088297673422954461117384543223787713793884423136224308483850473986436038995210673642312458263699265127420865523971457743680948111634435413043101980380760290088490732014788377185994692392420691223725951800582376398828711443479099098213393041741506135740035361325694816210189231687198699914988526417472248186943112954993083965152818469184269226144598284124542767440232273434546916640785011117315406027647841871574674962382105538162192675094476554219088684098050690729590821902607450510123635310138215368531514162334758023658394026856350520058942817308421622977945899310546681792212333462705988236190845554223237100631586852709753346924314875766458177239365432689273656292096803221775303823889374157769909312835659999338842672950292465755578348360852450052081313656017118479490670729786316794615236932588366128834733885882254871818331031240995807060190668797992577315849018290310196486149913159910982851262700789208979217015459856180832239609502101469997003261386226390267664086169228971206242840121557041473906685401680661110088814154257408240846168132289093672485506258214761207496434853355326114301985804753160176271618690610026139423217227589971316985081365194925842192180584227698543023078072377064357211556094283397290663028603556919951552667376853942110089157521929111181678204326387581496795349121716014637047269464154688737906345276147062972786793287474404517264836415353932568166730249459830644014881611081105779304052132386059135404757863784832161538292466989415249101338878236819476841617702592099624296296857205382403393965018931382886468127597508352264783679273536493732361363401419362684523928879901120564895426617942570429286843429115775918966849664835739339950437847767062137732362170043620347262673184329001697579668749657134196193826933487167327055390950460374671645298371541203338569428017168063240161768936442050755851151715162180237601031096534486795883284374153599829971549166795459230899482808615171167801689654913274028833825965444646204198001569436319638915288064509459943616141391844154412201597651635166792545727194836233285977030015833541906370758330572117264969117656390323530328503765040947822089853299856629486556860693072296970127467181760628910146084597382998430759294609505079690897655481209719728182113642458414636568723707102277184379312766056073768136451967321737948454972831064358760598488358514169283394467561106112915704097632732797480552102682961192237762554093676399867146324681375624637643184484624644182234418346857956800493468789160186753895916931781607547833524129079333103715935168723199231605421673940152598815247934344373456130322663117076011672601309654586992454393452199265653794160680077785910550286320551311797863689180121653507171241289222299722974795473921716187837246688273269112100961004183711376347249932115295554383232863869795698582987320418748237973707361070546375145872536979682708148047546305299798914701628738678507221556962129341036745779900097955172541800968386394969534436867679079063840696807024336580454072391891044270607085140597176512558000891472344385431529495053368924858491775138754797876356229175193109080125065974078577356280799494498606872138310401954503111023677097968332312272006597082977719215340844053559553515251437323645456797615472249062198163964088087259503249423708133622322377407017218345740467819034933985993654700387080961187181241322284454488378824009427088718905924769064693938460626549845003448539424139673250229865304320134577590780340423019469896041195629542830244676838307199992803569510898808393595298974256059385206982190976100355198348485859304224450634855660992068594825322327954805098765286823309904920723396026847233296958592218307159532693884969671219794978252265155238740809264605202561735175817174184450331100161746974270653126733911456609927533632299816173933284466634915493172183238219190715658195819740040962344397776883664359702794499911949899091043639903354952153628927563646556866367258627161635702268022670373343481124747041381331110681795405163270050569462497840084381422752397458525631604977973231153741352015851383542153908469540594089763308389786058324791816723052822447897735422236528722741684958596241836159401305050353629161864513333489191699960776992166093673549148689225235864478931698391778806163672178549809129391928180521607335568347388451675164251411361206290687269144029161928554688723349904484050412121699860976442346681863379891193786464435335751603263178663762670429043977745531340820261951005098064141342107265775670627558836930043561234674578085758723071759968487584199308928892554633224877116327570956947242432963698982300598806172543508084192138546375450619055746042566356439290889793013163844627166850491154936338081475449574904919986477036429188463340506252161727478186708787685766639594084223436469898761075078608389136515898061331520824708416412394486109221718261136901801716888708279036809430934436555070220231913587615716262138480354324562980320142214331127948115849387141223947551678408472981643249338524158163119164579739477698936096675354349898150579438430187622033150708310685678692340425681378619034339236640235783159390428517363595747560732775054655541451236097894822438588277784758696565306452572309984217516507320132080686177877232205221252711563241317451739858040275544334555236548154414840578959020736611686281620960204025013786306894833056337682763511678137208208870793952791742071623663479269549186902707708896841666333464431538298148747008986683652032116607284760205359170118151347198113495983764877564833269919909029528024022420115206632417493376921490251091643890345109467785257662579544869885018431277834482754599388309770660433182706302836997675562929737121457576594486488027321659371242771166575853379159217514074006616721668714464394800609535412781375612609727785567621521658453706825357079355842303949529824552841501244554966461247751195652722211633134762939895166386465900407863480181839069230799676973099744993785912069118577996724509397016865043915384629526086308572354401152051877639484150843872346863202279843335844458763829322312659855459994659485189246732573823405850076272623888737694357490555320371698785358169780615624579702441665065215807727181974394375358382782935613859444591382086756979235825513808101710480032766066463090124635259955929591019379662001088124477693264553294026205664572808806526367735303423324950995948640584845309510939281270720833114538882225990353340439513870254747550035092962344121399344139920291483022936367500908177744071410143642088197436336113635724172798021951926236021479786720152909968110693603051360018351013544253436122775518490620504432246024364523608906803716044281621689190372020327533163769210305775394000738398297654690789657278851487416090645042781932393938752512780216176045953458663080151349435703222659375908223563120116498154307897643408721445172036567966064335459369034082057627703335492585217011433998838738025222975378947467962086026622145384754896266875087256869473674578130125777461215422172051369481822424652924006892983797335303945944572271148779869171496441734817743214687484532419237003087861844100464168477676583958940833770984359546160149661981882169339178841261944082543621779621620853097281177301994384363210523207087664019540306653505126071329866653246034424703106393934781108503178051629157227917019359403787080497097469098364668293269343068560618490345005642945754011939845061103363146370164224250029051135850503775106049285981542007172247027197275775730106014461789367861231971007827897339987158402987726996001136550289801667332859696707753488898801789544074162531945940376137297684636466064909957145280564764880672325376226145152713907626099135388474738200382814243517646569727339927520951433410214997823783978844951769644010621475516619081549153491818343913653344247063969672134975693979453999568387141667693956088126543959451104642658335095557542324683867704002396725417823468804557441809807611262018897934531241659678335187283888386602685418627474387199345855757296399981246560563006974498588663996120147224679626616926185800286070602209832237065336072198018149381114931368285925889582863513709357574715842669150215306692310240685788159798926031860021399046007122607191190327693798958686775225566912666534489124829604757215162055237688280146179807209969862802483578157182627348865077778886452540864429093535183388884554941374927700787103969088449364313626275515404687092872246737952186576519456821434508981227917283149077709210213085161515400237708575180783125398119795464464169738902983749437766423481855651606191680546623740542545666569861751060336109851968811950024734763445919966215520689465183388568025584384181950288299517123851032977194800442615837363966400077944489937127063013906732602658117175486110211393544358930228950917425550620882039687078002462247973052707982669825112034212633402983243021018556413116288641080492589250039256523596815232932288379718159206470052954983153700456390429973983474941398345189859510705019127984033923743664623938767696855966415285494268611240163454508324406894558372285256679328519076745327282475633943706429162140011706947450532820566703879130579495139501220928622649381157857820486516492620070208992360380361736404262259099890870437669545357984966050297597918203347020496879761778310223298465524678578798739684488492572793421673782826044693713567687542076181717883291688732097921407373432884121608577622410164832648637122682677188329590224710123068745631967667337836559310676351274337220193458917250584431395576617139761426373094158191091506803003956245417724487169103409247030356400505520798698554585072926947478474823678797587952529215635310500603756283257922541156371515225199765961434845684454861286502301041247395051946647813144592351451919828214334991594058038791869199565939402428133889998833250944041994574573322146967301654077054004348482198601483710242999463935272010129013823414363404141519880380727703321281842765776052613769165593294899301584113327641816302022228770512458242277062403224337458857784943631108468748298185782799129132596637969313377047233036203039844032875081175589890689575449841670690819363122581243511771472571737815892390841315044251896130491296562898014176342924298754154280305102623880872803545277692968518064116305574901675067361350739067983720517981714832359078142039746170219015962109867791494195381540549733199186070732930666408569376501475746855721728060452870654969536449009690037573023225242572880474765515919455867110665242865886416329731102890848481456187101587757474689855279750840858777146704709305832679754268710517655839060653853474376234031317833269306951744683333490315030673746607128900582446085019289933923237923506172167579184741151826529381925690218680542537311097142722947232307655247645525052327688564497647986370211798145554376656169272784013302165532943786957397822994081521606436467873528672898458106965441280244213287020789709254238428410120156399925326184911192580535425255640813483310286411209839126157459964541908124735180883161799100144924971793287864009189343537652699878901683269132916240251911285477435606002261313708641002217417585363508455377589310745412959201886937850662568059991559837112990779824780924838251322294671824441925108322534615897012928843452229256828607832276479804279799186143872399652866023479929393604304815674589017931217131581852998317728183043939564461520983893412968278513990845027658782131519609064863452106442999303177790609256148048294632287399242957143606472362619086156827199874770838641103174809335877111033572937100573720206818384157625760342707898296477678981971075273999900101944368001051812685303190273778338805145624375898227795328864830178107418171627820191094741293004613873976833392694608904907977614972717635218785157410945270102162261252600787648428787348836264615302641090106863692569877633379172288493428520081952004744055117521528008637564405911533333825228913410769369880461885226513480930594715089089777784779053839037234677474592409555236901873042503444473320351977542783938617386181058273472334182699290448859153889360935590410652609586382042561387127168016558184378991908015770500341107386852292717261465467193322959101993365778519014375807076640992812759252824975739241827649021319860044656639838277180377707912868521738900993693152117072219211638334891509977418356257147117285633150712678983173330438657624859979328300381729927326237308837858538574158618121522488434813979848502322993674525771165347528000351715765654400335222327413875191234012907124214145260576832212708633104392569776335327576913248967609493247687669098651846155574416281906893990134835691878265235445644738661121257028369259098657767089959784363893451687402394875180522704186987779960400898835684622370899111113497885079438143625586336182227856642002453049026768186344617708307810806886980635924755916717750805910460758975707464050974313321497343416131562908309061290897214862444287157053073020561321019002880314848620490113697620943405612484839515416554334254182459451782103380339645234874653870015838621110905747111936545563766805081188215733164972307406919972285230195296439879827084845324916309033566690279784068477095550975255470780110101740789632651168491400464295235185037819348818643144416538710539213440635701828829359005614157485866275579760103869580919115327177238686043067148547970532772132277335995958222356533022805473820771197863618794163047168280762942952903006004356927490822792834601722450485355175252425280301193767421670462022742932472250894063988990193054968301284211364657219152000725052772615148043754509987564430346210941151525947414270321953191139194457995081254135226464093920506925615755800925657270228675125101867711282799638232929243720894744504664198546175370672760719939917299225315402551259411599236368618990690616819179114946782619109165108154470385155107664731341849647782437878674543613243738411417121771692124456066107275632274958940228195343574283661731666455628142924903647995777690935397161736611120977956887937857352498131169907887488354872439944860785127470589329345735002531231991296895365873003099295227097917610583967194048385766020303841771467646384450805793142840478744684881198953004100876052311878726801452794946470098536341704807965065745673156912217090208721910633710657891296639447723318924813532455320889205284658215342924069754972119249208013565278583911939037796806999102451646920195241016677860023540635105712890559988504351480657847318412728530438154503682533168867376039635565765496057364599304429224732569573466296580808307442372333561713577032610448942277122098284087387642309998723137316824426338417797634108338804905117005480287735365709508707574461532797833141880414728659458531696814086375002548191989897477008634331097458688292050525305766000726114780751135914809234255930433364618578952486735934757461903492162948236740575746177212091529466575032181384023846712299645285616016057213628914613504476507232618253413156923726536052763141015072762899012148107021708466668080735729036788748581827199005579484397874672164149498994905660829618043123392981972012877627955470154654192699728245399701776970337560945133468320630128037573173371403482224183975851366933574541992428059283234680378810188713392990212568883096606214841482355920533493328188479784082331708796106903499698084046240605504349638007686807599942704058788684106670099313640270817977405732788344606482590512100734969310251989850344109049005723288444145332192015698674124437010626876903198193228280973774274829171967720384263600655149761444972379112278558081576157539134075761754299976732206376846831138015704209266055947029261808662601637108120678186052163936961219582542901891160017055462316602892162620984264904044894860959381477506039513341282795697936708663615753532745899278084127889514529838060021747340230337628692571131920304297939360836601624433132138295577969172217089748036552136458538545635951521656209773567338054853997527727413567574636629684634265142561231932659540702857179122831081421361547626985422120160877806203831323355874647590744504158411452879315298904550887925071086286271954885832000266828690876234100416330034208526325913009772793689566784437027518530767461757951280445010209957483834581030412765535119251442593929485269273254955882641253718469063816403449569827949748871348845662867999731604190006826363119628520032995166962886316449143750381727710513279277467683388919806974450660560899480218551040196036967194663411557328093397132933735411113824061568114371306122002564886161079677559054125922371701177193811149873649612709674235496048475335673334850661121567094963600631807623480064641529135805750893272964016243135666043474026333335215511169390224601218368880169467639225601393859622960796589310681014377479151139961227491597009857853824145605004519208120338410101152449359276305558523638866558745515363368909759395636270940809303618523739637886069699442706480477182797030102115187763913660093988836872462712935714783750496746610429755540251671789849742211848052622104082199520393272878295162820659307144917962757168432781139719092404503494258037378171245005970714413271625957200126523302309018808105223127143041606888224428689767418881271914410122117803581252476016757943887861991326118139023932558890503208934708794968063690560505114490717492551902918825110678393990529440500817202271406436046393859961602498405108877818340237664657361983609750571399885171807212910290588755708380064723884416733643875020761243161508858688928336454574065385717364670775315027776100637418726020278830130602576265301602142219837824615187008003820123531005179495752126316409916604729602970641637419490448171498457070222117567973204594574210290803779589472294467943093549832610623596934278668642022515042611134426354919126843567780797137554148997038724233624613466639449827136619171995180278066934022362121754689565244521192565543526216088187695455583868379680156966696399001852667611430743432544243278295609761191543932919871837122249994375349294663323874973332226774963853692011866677761509622303339653294877598034921389309367115428806585820271460663606299861750991198936510186632876381058849489816909624290353533966512448402514828858365428962006978446516133539479944024127875916224466251197109121710107189108450410075609812001455847862492011806425626586852622655450642687310766608600681957591624224382920675883085290630368123727891846593798424806906265173264130216023189578208896873140291975208587824433429599883116842748200097697769108537006623334969404005891460444306869192557971029262194921321632954118627987584597657324646589544188230585794157340177941274881700912329690264503467705063414653983923440827544565828210610728617929653362151709919836388162824990896241399362991805511206259661171858564556479726889949757348100808810249538345202951422259278490720011610918318861920548015934710309284072801608030649703452015867060931841572776881971048968583434803513109128540994690860655346372611268878482946688795783811956671072421292709424136472501864586892845048899469195400188963574205067875279459930453290334079221433821333405082612732642335584218959011994228641318505621010363986716966724970292348049186911232007467776368284078264206172277250734407424446561960910555201843166026710085603490243415536689177294387213585829744276686269878741106968498866840654627292273571322512923835795026148947290597462956896819447101459677202735672036032634985375070079453701613892094309645060575836074734607883327497957342929531027330885732264119242821084105675283320299207550743319941168353900779985818339299846719438661846142701798010727755814818330483942148483277773643855551554086801686113641258681617176852605758073269978974910446864856940699930013174065212995222008808840753549951459118807443941593865455372696916387654285484013941590797308117223150389885377462139308005890911181901731115633593050523539240218598421195930602957210304183453459836985612657995504669290416925430656209803846113043854042192050247507184692742405643746892266135279409404774792506392032483775868960976296177301582070069152883176052286046812565144873726069339334996528061402713772137715833615288793593180618691325530507791298656890724002243586872699237251165978249014590890065106889154710305963594195425777616909714120058184778796544272702969806471524022387984809979520127644985748685953533480333066589371035524754919204393334393325883625909224858185805642212978984522179458619778742779480572558744355310266795489163827654266089731936816915320321788694548159278592886231867516307971282167412496117666440447776400376175590245443702464093836234004411065381445827350673572863754412799918278498508279826293814974281638216936486291146652252506434706580909998607798139728232128447729748390979515698470021968735170571156793483947219297996300519688982268440789356599206782533523913469785288555515896665657162088457144247955499582424301047875353382487774940330856487154660349306366769613740193454041590036193636581437186522660321462895627305183990696947006514712166373935235698288654283796207663664280782568826732912654934564303819427838295116537037527987233244269360745887867115382829541367892048368660111160519841113933903733583784251295350903423965001431013602645371482593669976668537204084740783693685740213317099548750539159291532695562937236702332501980218164250424954736914452455909386664854223557917629263365241547304704452508327976394866416188825416984544967892834697099274576267038720058108283104075638138351297973480029137289101792917552904060599864372005549602944215068915397230868108697863305656995761771773979292585816708957524016660174487047067370569322835344375319253064705936971115896822716175557188991956252242058563469264954708688435701506383521815824315570112388245648897169336993919263712710156493953564337961621908283105594800909768020935563233940722495793297083578538436661615829502457905369662024386476035992547282744462319081775747545642945887665043007716937544074871975902559474259721644939361458422374593941427129337818156726128590775421322664618049422914377099872588176502053740506532358808273283430781796964515900610244943899279292102394909012543490928269344759073010506373778921262568834041969232211695310802717010315865665235338337188210808391475784510992820950674391711409976103880580877794912804395603614619773188191159341419298951129021994908826559130212323403060282171435464620741867957446902903774115158045325630317160474704586824256322693545027434759826568382965943624671461310054980302327051800751677539613399808725018788406214354836550084702530268801470842280866211700424960138921108098114081103688395607171499947372506398650035488278666529320691396900687930065222953532919073154593774522008652909815560961528713117279102394178582096739227296710419105317882829565673758858297051587479373860079555704061181717405833636606043550949067830998459434571418102320363397964548745931460239004997815702862795108281270211743382060123796198431770868002426119409991928025596916253012821487203383715165262390271985330294075860259851204417228019815645860943638537150624535266451579471430681793625810340760095026494631023541787171296941969938624374072426729492377332587173101222364422030664821327241714899547463285918554244073057327592549408074087066979786691378800740096416114603459738027435360672358975193164354145170505558939904983708484314639444571907032731063010212905817174615388822125177597858324595337414361546125151923554784114881835777181123348007563049237961242127706162916361577401594988173108301672516129173038263592058900396002900188613985125266242089437656359255232055860644483101714393682109526809900047175311917729755130831478649191592098183695177005735477026205508022373997341170542855491767257541822438293527767850594424457593560175730088832160976707914836863683040764849372744696499663847416295426282964437297033859256121623446661741051373693403547518493601283030595817133077453819708152173927084300370513651673045738890522150534533493251852075879861325585390760365297411723247712349743262377249862360048446973644136476033299543462151967613960540157712935862607939899828095695025864142118331025590022964676794552069796863926520118821469249267370778330757036958370703044358547633471208955059769483422341927911975737249086492194617453791085269321062567717348748379882320854905074040948763878751121069214153425422060011689629052458312493514550119713545592659392841688280780375086221359147047472720838900613877103992602485320668123936798497057490424326681675103007484676517269821740561744495541125711211034435709552299613735864663905355303999221134151981826904936796607241558999631765458743370397075604919483010671509935567773733606422598048149926578637701163760036950548071183772332338804021832083262050631589235406769691531771870570197821846880885754856985408785700196821808666822999486276205610747450410580854691435536260618112661706621016295952081449206110697119209553634258594395864268062463599874364514685306799759692065019442757810824357786465815267420797722347341977164572744392081657257630862590464552642674436086519823919965507340530894600530786013994606981271409420931670161306650054006597710067624186177708677329190859683938964168048451487350187892257241741383683154369519608711486409499584482711550564591432183653828974775020666558196885465035385804058796172365041963607200412150426606753619559069381380095035502306760424150745590914685772970000873610847776213242849859400868164596794790075452756977364427075462535014770195796648798856402264284098083966212608104685761668654155169326842788262136577787337924810476481484350085384573082229493891090586524012188165915733552202145468463028467691050611275254507471776990123512175640893542327732049899971013293451848409440589464600497743033096208497758159805574607850335912528483191061801479522414961124496445661871171041979219342336601939572278063794645893258933581881007522203898378709560492972464511322531745100688781231508890329763222829406220573204188822227902260103554894934092419349402954805474036064446532148885347739950257799496194451760640732896207798559311093019412731922130399594552480064250655712572837008731181153823947152109112118347538953128848710755332621490068068748395487444237053228543749119963121519356471165473644971428624548951351364827441354361569319359476367303285276674934563565691965751134292404276340134210742455593612927949481472925153524292743056989926188203155907621349634556970355204016297521237566371170822682818513685764359992575180804766657031544500649464969609599025156793044397601562164638278617901501417507080322116296945320659123457390516563647613972432829036596879486598176893518771147250399676022876792276723324648482415565547172102618859985826682958393112470345966473796089567534059746322736930959471115955138217163464135859256069165017297998277917791814106967279471356082309611021668203257581895854430956739514309353708497009331006685497922221930556125631958830877978006719786725121253948274134386441602260638174765981880248199477601213265029741672371101458521747017062663648554784380186310774679140104289988571208361131464455269935723095479215286405559594409957955011201955093472138494984844411830232189541629048198944801039336204753596394938047483555834714213985060038715688744867284403321022618567117955398921898894366428043126345848469432877092340388083391366781127270562603278980446108261582833277849541064164322083820098220723242304726189168613694611721182915309381330436168063869892918051650469719311671805546520233896389653535906506163151842750276990373990230368650221112909165249830024463654586238666399736544157043160701929940467294546460989057565618957172823304994548262063940317361938144242578296486959375118261735241374489602235849726627831077315105312299296792124138304450962835223108970120619261813157250858235433180544300269193658176289430650596207727257406929213121076793497647410529609552249188320883489237034526040612210837230243518547884942908859609894399141478939933639601264630870919068549184108255799502101507558346867253500665412354751987087040028480710747900285334229420274872948119010454834857672034205891888253275573774847598912853626703372159072347793452464957038790929768349662598416489549965563742098446350544201009959017906856475710429714412752342649205636121188996818776048825501171961614667276786263505599592147629870817897688109939755403908075916499516766981145357520865963739367777259511536146864319911077379620426198551756085951215949361481901971195441243512211113010178833455647568483084736546462563822354325089715256774516038600615939307493268373199233062366236256031188716674731354043598345617079629441740870399379012112809357708631464603009176953824122229323278341658286990170669550830534045492351171862950901008927769413972776479660737044029618707944973127675969329279331436646304911643397352748517631787697682931169141702186891242837686210871366564428967498176947199915856439200689968046845395752585751897428138358975706975779043199024921945518167412381560373047504482967258299690184129116778480653893511279309458755524580610291893101979964409616073895207421088039180873648815702007131517384769710756173846950845800912161326094747821231933957706677949313286030146414391967271736576619223049173100061380415163766785237670113961068709790460966308886535901325735085501838237486952590114234826708457927438219681684371266033903022330061964169620477655704738436176351973668774865994852284570917996401701174130947292061686122566054479243415196100519273945559040603405130771139236866919033119079208097588537951914142674977748240578808741956697455963828494060748470443125032071838581943277651776763699408911581524901654075907847766234419868884457415549370735452275887299126779987333479684733578173829730511077557448038903402289450388322873082393370511514728191092369876572600329896563502086437695046333970471982306165660530332947028018419685706691287112796164378197650229891587998126753302845162330234831742469731132803920535460623462533945299875736684466201958192340933330288478620161708880881429525555752445777796919254763953266650047922025094117941263302358952643785517126113291865718575595613858165002366532685039745714478708200280857706119739143907052213786481141091331810227638546148824585964002915082660949714557232283711390093549157304602745659810478903892789030124529830228506203780890660165168830983441618667976641173865381677680861900528708184068333076849634701254820372611870554267503829380830525535389375260884276727760984748419056009053601436484464368250171595271513018960967325983111641185142745351375701923528682332856324487743181150743524938650174307862037654388306057736643611702069990433199635202065655996189227533536158875347283567097987241995465729355820195858256518531227956815169941268910321055648138646063150127483462804926727060357288470281677525232044359252493674106183732468405101606430837135265784909536042545395899909764138091049060284996340966084213422560079625234341371784913186100792927707933939491788540361976733974181788150551216541407581723546284192900261464553469439124202467506800251363221302364548548120912556034944467794711715089735156303605066955962893133668991684627537729393247093359421608578554387811199507750577741381756449668479214026710492047260034969946057165674764241181149707300707040999940691372703585432882446996100039544399695383443174337989549061830784179679270638699373795573722898420474462905213381896175687287074393515319222350246381611425278669353460789656764577252920594466244266583064166995485309316389125086153953669685421906539226751171440876030739777758412511445778852674113069991341208163546102831978374130114015295621711912794652363481809714131712385887615840329680421754243844292214266707723802971889292696697622333309920060002878555231686923597896510325285473812900277138809607711000531901130264159077808010386811263716158358451204097555670852205164821497220620253626717359660782078013787151122882160774117561401525297494589217773206672043101113938759890952742595308336782598858781088280582316786894006020757968161013653376641923351938115588605740021855788335095674479862358950313319728341219172841041695424544047119506372544325523170384179872874525425320261883956525770531427391723544773006818154230591305839528839101535926690371707133659174045719967709050894458831301222499400455135546846878192439805763093525768363853615402152217760578249019943788364537397157533667317183487489509431679934783144226610788004217907312557377718733317170596829786979685522633690664072920550005873237641203004681295014420651575003534855837649979480734586895715731449993492360002290172327847679949132178799301674435105039092506949389208272071965384983810772405440416402684520770739006146151491125229290020957817959474563455131423303746482589997478747355101666084957323853323602459971337470338979306852552049304492675574780362160095921749178111749008810936474270791787857696003530924458129745728408043150906583314652838857213356508340382014860516238268463071835657988645568194405505664892615142327592081252184053696301736051962831381771886750379818419796927982177413237386691648233853946574247395659937211153284396500690960897496919552427911429909277762087226530340943444213465207342114974892344942995482027663019795907216557963163556498546374138590571755070212227149672616802022754211677130792032292984958012182106876198708643446572651031549475273829742964030316963544919950132631840720965180587306386938651262291939210421207179270882463996831072804542208618554410082278074911577827510317561601702565101232239133642512049009591451378595551974922201271948078536060790796031588248222409218279791312238269007558153067979799019934096481343958565373978864173014814879598960992316907257236029366364492333102873627580279673544697441144477996427969232642067821208367699055087512819465184685838833602911881548190114437623335035420925554651160753894541156085486368103102013648450758255424575720867461863404391595816322498433704533790556339590257007135358674770061090563703716892833426386836902375990017412124769548927184139445446328334207593750289703241551143666795996159939924070030931871411897079974746560737692627552774780410055822110957826386569379520853908313734991839018537544389133782692736279981204758520805291309592126952855293802191167505385160253355210758788453033112711517755592730965555147689809055728702945612538216759562523792619543189895606625222464322567356058141629369749020077972355113693593013442634538277514620380925518474300240037222097567206750125942991333599806807780918691880181480174753580261106572450502025984096004665646140462557861254647925777990671111963943666138206860249012714220526156294419759212383599464885174374266881641460157216147292160563332887545093542467851674085615111475198058494768240051234564988686828709131408173973427611175386129889936311992587784758406611688562340280611419343448904665394552828633579496590309434514857225542574468215400043493887836392708847103497771142030588926211879621559381850148254371561903656504667026879528285300315717350791720875905201166582717345674520038157369485533943306482452295367809534535749468379455760700438333121217924203633704883440639295549496099059098548039266974008600895961040124876903794591360598576074000792742095143017850723428914096986749058629107170450536326520546094055809975072407256182825287419528436930933567441030134914253143974770367349349298987229146065116710013442239026139542343228715395050719522194349238090384211312293987858401816971099835857620298067083264171991736600298387567494524091852274649732686017636740967566938724185848718473799374108603947753141528409067423587706819674267778777058335163639290741700383927649340427657122120833425077585952851104321694230274558629947641603844123529949439769120175729322614245879497005011427207446346242720104203207061694125298434703595659059820860390557913116778489887256180040632616959850734376177558054305311626876941988482330935861997454630760103549295887713706854965376090352416642951481185144895256356026380231467527681829716490826293353459205494731984951534308941030401978308876138990366213597393278160885491758522765382745611224644074944301864629483103681218137360126026427093100498936493333155671448757302922533609523226942189415953309234654514753066958872922110123203192657084698438264980222595637687165526899525828466731502702088582947287700860353620198587340874152150470639542403004605320649650906837409894169238221965327508808915991245359628259275133200718726378490158899165175567807923280639045738908543201770638561569114939599986386538940109314244100963638769910906273619371483351235002295854372968194599082333095233459603767088240953492000741956977378627900183573390308048720968018510529743303336660841639170340338840029166673279950444097170916381356338127320641589969691424956716179684598170008783268882986140312941922604153164814331902549033836183682791539117210234849175904200685436175920337770580414408929737436904479042465183389220633036416182930314989462494723096938055543114290005569029392151905884850448114693391161989389214260804411352439515531124313420625341978654177112780730121030368564327095245955565683970550796772685278195365598615998417214567950681511266456381040864123089715301844381859759454026534023745459520561393342710276570657343213378742272282424846434417310637357205300664728393798639973939679580017315058011311073415958022722027328956479377849419478641981022747387158671361989103085180905902212234961426051472964751465945640800170798553160853967246021368522064004376370662162159240901628674104276481365470333474935664569540932133722932524233789297007893840194857944124736468957845075581093381058367167398558358238014538970678046912653004010402053886673530303450740548773428257216926883207315495997207319863524504371655017893470746692830691567249819454633706056358784845394395212661785685361297202802653739203292612072966610265022589248859487302636838826024970816425676863201766999172423130670599432427907408285468450397683552474919578606378177277057650523881133638512118613256137748700184917163668436715657338708306977543569158046317939171879742363377951031498891679340976674905129063737408372302319852627758958127246543196367830173201922937977803470796475425985211565320127128721757746165838922894273216359032419846514229187414059086661592118058933434508051992987283230222373046105985108124781978462046113216638173584619255296087305362753947741259943407010218329758246625584938721227043354994604685509404363060057474385650159689183898922301264869367010565488239476091186228813610906411999513900821478361020215317134927606363262232377716417836781827920405227931208282016854427571166809842093120980726296735860294936888014360072414685113067622010015972372670732486587210122489561854347430171447827172620954330568120089363561368635446935974066153391963199778582181681095616179992231536718384561097700811117436210844349063871203656577620569665658428663749763952019929553183163907398341634690510718800039574424266745338088123233730712070770001343819879925465915916062694278553744968219564835547355595696016912430610797762163628685647845482643394933155244770346884625993212242376495238917231328125849014876490566848727387495106820308417780891515830974376178579002206730195786684906887629874248395465168409948427236053064712297044073056600047552719146244335100123901462519622629709480064029591475725178548238519186105036801371998176552756165751449608993126196418957714120985460628844655192303138492273943308420562351173885783132459039581063198353612978592418588200486492374436340002590533836660015614071027501154880903244039420817865117226034261541731432526804882337834059420028688251334704055657729252188088640044165950576789581897012872563907149500897873523118015252305046310739707777401883078665534590705204160156086926635790377077766797247390233383466124893493342245660640665824813887305285158914492826965979435142390201569071374024271759925655951520286994634956052230040004174796999206632917900295445171099911243607618180802593222254576377781443285670638280055471747486311476644074734831214949650027326216728350331772109775906145783072836537052482783733846744820679382295160640699167970922783353330707750410526761980914277663353817213889392050837985953465670668176641036557146569023311123286967920283104201057245357001694000981993341522445313595257508499612330793046068100439639586140951105551386967249192653341644034089302539672752264115863920033020869774440648666340673909190287052627381444232734386334399145390371026040789865932414921234952840014147374155736519909578688064073670374281519813815172972120667740999391324404464307402019515194418567513032571710225175510074942685741673491668792159909733817424311789106705956573334258595751978794898561282394778730868729033395435553674858857172865486892783076842784146796662807500348591728605061043226696522127731157614272377227666433044873359060396401680740395619323662370852157823110387679735783694270880797840962375891928696232471613224148920350546586963767252093749940423574487292763854455548588811440103497657595525410143985522897512190616754489042208858479832079718974182449933098327205403346933059856654894588147770024359129372795725478770398071153311557982001992655506984032835669962931457911904268257469347164719580699345303296526439559383220570236157976748549893541897002335498689818802420106167433023301611669834418533198962555369924994718659916543685251811497408901113508571702715441144489086832101506780319537905939121959290748284428801401336441141497278568175837358073470643005315659234379705214805195504025814307649751077200331277044433275240476296771864321176291348504235525219695243605236763661435070212329822910388212037761772261406046028681305815197365071072230097641054059703278964983281142848715296308302681319580252687771317733378452461212353213602999995795935833920298945765523129510445360074174942066087287591272934657849751858820778229550584475095555775660152661205697086947350435579316920137713535341238675817603657733478168116126234674004268126768302803801791054720391984403760186202696241482019149066808751957750620520531760553518208776599424530660227495215501941486170554980824270134197057601099711378895311663743245778400570442578039898262873243217442012565799792549088245449391658660272221670939341830000595860057571932940403519743831520644277920039374979023720244604246188841337499542941144990624744424553823055550229127843685201203626391325372303951819015505245532479515787538314578033207354617918228994657368522054067494716450907073168426233636652594692263674557867068305849606940488537556572621578480459888886387192031377685807664614366819471469478170883118995804547101629235462829145299985478893107017101847771955374860810672649440802930542517086633107002768892366214555657906517413705100401327667500815955601861872729052497841668484554784821164954919278028619422537688571753061328054939785398137788884229498266162746770808106341327341894353283311947257300564513218833886923071038988126941097251727927135082878996561552817185398908787002386135765441783763350655209377081070407229567721210731344492490881009759122127022673435828970171152490370740008590521363741859953843672706379473082821893494654456831525078014411528741076783912865959104428831632841823779518935429989125524064815947271901258056692292047347719506603818312479565028586981422485393807829803741791571009189192522506512730360424882543058362083577970256670116614998704906549637720088290802485026429440058299150068538216969131298673604967005187963197203273597731573303826700056446850043120539094194351986673656152355174387898653029114181247122420081933490312699937682268887137827929956911564818220394133775030398610280082923036887076680031637147320885832789623584409677435157643983827392433890527748483166689553803211227543817043363286325501380845652539414265413029152196662455103064316722787949663929489941581322559262777264104930163055176946349085149704231757065771912280317698023934399458134507635140025052095580978778018889349704426407060558208276040714293482629937211102943276521623007940481856401673181538134635502368662918243606682066077474315058397880007946081327135800425623836802045235981855047750124615148593055546307069237846236961172071748218362619654629570288712581428580401397025782248397948797570183088646663817035958703696898984678457045786050118092417572381171864669293005494808399782563238816217233807997791277085847444455536094233927522728788411935823704256284769198217477984607138515239634346555488620877077953443754074894557826914784084200144704151555038906567422343428066768048808935069175984715094216432300101822736368640825479199283043201716392734526151173483478726626093763392084629731453595303823427196941075523276424381964792085806105565126127439203977293882016694752282087256718611315098406742097962012573221986237462645878609269758770176510043285520676610961744780932257548453237070825922388527535470635640681392575088644800427940861548045374746139174844094681380714367891333578532391353000900538602130956170798905788129437953485122024231139568728317279681343277747449625335792929810251551945707070438201614638657538962297678582973995800695856795767555511661569201764497083362895432525973427835665565190771088402101433998723603174316407596451258755611290310808837839793081172395512878015817818522421749802789066388054447132087718963286122902675974523487642999110586899558990464631262589889742532724900067825198120746100016015620730940587683544296894287869655712442966822671449741434101558204849205060935572156318789112777588772200566283419731417408257778736959714008057458554604316512260851595176812756211272856286709933124199398431146023363190571310539741377827674797934259116140282137291907606160764084619103815330874314060371248401352680743292569771559839733598826937459879184605348254397953554230039231909540526736902831093203002340075551945191531941430889242665587839167119704755195260266838552788140227288961004074115216021596477612571665187437429725669258013136542347753042205773641948292570330159427172292651125426855051370787413654397205094503123019302425663801775923568833664513692907278715828913215451801856455313762705128662170805504935592617907369934602418618391377471084306850411676013388383968620010370137305048920063848878125608485056107092163289186020047939298787123189527001072718582339601314855711881533654373131027718472070378152733564794504223637022181026089738212614429270325359473251176396144830725058967361448369542399279310258936168962920573219478070512641910457820774924189636291444164723375431678816364802659994424898945655888279307344196840767297638536112013402296505488666999797367561334760656155814007209585405341181186901838538417049809940922478805928448660061591890992613165331580056695635477053679914818993710628519511048382741590950631853283251347320923774456578695979303115646404812154150496743215010868066815501303408195476777494589399321942637315682083885017988823851166202487045493406075879777482137819652443099836323823599879646071834909321398104943755613183937195717465567854470907813518167112664408509773690890468501435951163922004211703461511880019629478132766627654992727481046160149195231511708372952068344326158439009822826161821381328368100453688807079420218130459286654340979380047278423371638315357392524888539284554631938207917573084901492047296995349751737906143744228968701244469637715615917926927584800600737156298901508616992759800044279328723894159504983848845763763913168973296095390577111866876669044372749366018484881152044601519380620634009710993273843059559133944703135191055228361173752045916040272777338206795407677563713176781004409025550601533409478810371421635707486067086707777212064551234841472992410826478959608071747223895195077949691017425297327669531833697378445694662590982631276387529303868394426764775979943990327326481179837761906821856437385873414189721449447192417919039903389524654596667307942649988858043990513270038210634022169714751621941573296078407334410849551790998899829526260008955179774966851501752831559292205751881238056028398414803632606097920103215646390688482896959553805147530771532028637349360928908261162822611060969751457743263191403547043989245560609767316349400367668213946112311729572534969052471234792041278102857658491272833010225225127836807965394474372432050926584322579693611755559723949360818845372609762679513220591159658501637254951555948563240739409903031682841425683679221313619664876056330112778716269557182959935231171773029760352224290663155646329848529006544023365379645228222763933512574420983011634385910138460639645116215942210717553187081728633855043048459081959872078939495300989684610457906192217002538059215395354504521916768564572697500772285335561998785158706785532725765100283422962203580460969804645260628431306721865192826558078600097138178315505626014885615868714653801220047270334096143163601132192084962736207822903227370317260676650723990309321225128514761348169242338180753172162775282684698802933661510586827066000114036530378412283766852935035924137316787162591573857208646992149159641830163607895193774579710369579459321327115411955993924750609851691077568161036969104446181877623673837545323849840058070717972641292778608187752627141233985449681291988809847337622254360192087071250985872075394687133320609158624422950317504046879629519474465540039868025703475728991340811496679449713896108088900799098083932421732573237205357072145988158945948768168207778059973298447414003106891244635327143727741340712167664288071565070270594925113144833499822021073142575809384255806300854917608761415419918375839827633762643157879993017099002992140001719327660380414349274365741706426495160250534563241061873626411183547641447232808348288901468185862742138325416227077236130756939952568446927116801862723059437253081267858877898969396119207692905537666274547770917454192012723002128393296451705306166797246164885594038030844689667467393524288513368814473683732208477061309387987612715361171262009535908911619332827354032937378961559490531230671024244075083570616503091651022250467724419102389451187912801086261088675721899988755192674377046357528255689387539201364477398970029000086004465234314112542201307614981152621204326258249776058031612631327352962864833642166843493302066396012475253457068461967715216534050936837655509690262791845953555724613548576976624601951586209605510014217867119587687946014500356753023568256441428129563266806088334825757212130774701466191307431919827763856313801556035035652447550365972128169090327329353390567758757265943876999433088711560955989052067949050266144008835477392804976923988315620422781743980186106572877608696332089164923368494276367956645286848668776815855616048322989376355882760040682236557729532149508869067342630225068530094011952601934976740089499034695705047138137378100488198759621267157154850709474191882859392989203966515157821532157252946772124123638311454978630357159111750470221783290744126611792513014402135190768783965097822097037798939823723601662045084149229519570404208113804463925002778970312441333846895965700596648110438680685448831403594631433544734817715681876359954895681645113433908612737430509864819616093301334092130573731022807248049311668592658660354821187171449513448655909593078580102631907786763078667847158583143371869594972160053917601854646630700537261741835464635689036801682892284198413402983322430755558353433159197917097055973268955246483732174857713770077140923017480501637521249343805333561255765369393918223021420831273201630338861912645685459563463398462288944986500801821078289083910219624951054418621362621167772922133617519766435370442248271614581391205494265755834332611866543901092067326220639106039839705611908399429953967144398581066941417418261448005935519623105474886985150514814812475018884899103281256397052008992930549338246121847503141036113532520053231268803945308213426854338245126677410980960736707651738437485557020686129206871467169076007989960787460111003481232621267151825701746240787778057187764271451257936899983438543549345093507530069029083935436485863495427567601099414379129895620071634221626001384000219947306284527206777782408815344090237521127545528303263373132453799979455784795132991012915007820558561116816846990494827087495095116110608036414440557501549208309831823907527233238575162583002411263066269291185513562291044351954922280643854535031495813748707069486598920234511336100515197765039004453006425424978966069777080101736767729150833321585255833706347215754932806453625738867596933982840094044278818867657481888717264238840065146200702904165375094396881741981326063802466909041481686023266730963994540382267728786931622208800439030234409693222421554264610967020462705672032610773610485624852507055559995691527295574045298296822794277352948800395337586829235349918818572864244145097368259893643183952983747037937704584871919621497017502820261941388347806481073285485241908982228830029622821895913566257819885069442294584171559017302628562818136402520555688572639155024498257553257549378698339039946267488229193181103199278938136280936545401552139216261016407114717130336336112331877289271925532293761088683151700497256593136223551663624391276523681869183806885229036989496987102841947830462756369351522382197041363664308504273609363249083715225563299627899879046499955097936357664544356971414742804883672619716890430450066628744021427738309349035602740057259437610799240741759245833968344887579489682991626554080907302114676914260397097098596192041466445483727889087548908812123246721794139887636387842052073972211136928050125387204621949405320821525364786964277434561396638269819107555623654835168229200784021186076396982979113547642179530678319018488079602384185126337092529570714524522915335106562965448027117929581907295400346423914437693259866617317333409678420985237341319627875819619564208856934850444871858740839044920590529054886579550418842823365178228163120423971766378422719205512016970191910108308154993595859499248581595550045541841542382486510767705891994655069564728362900717116649255201742583760209714738252884257096928407200789313134141501085207460064245131679485312642488406062530432706475841964042678456021029570676761558328870958329093558687081931055947765245441833777747972385997357979313544130227547425727099083434529368501534407544586527152820438795713940419763942667422540249218522310469772554495109534826191655136922868709010321447469529837472366188209995738142223825828697857857966368036110891247459705981045580735191648755069356208086836377667535981272040851665289443832333974153739894594418194906356144528000728319577035805607275460317912018203100548873441957558236768549844265283002134160675805852284492014037112545448942963459147579995124854018485487926063381800436260919922113121269617195141303822979400441107068146818977710400593060558045244099980253915001467511593917237045970644625378264157298711624388110021819442411001421866453363988281965592661780893430774735904996905033464045978212378314115347491097621765978735587921211223000357585357491384477090989779900689139740362315895951827675247222865404612791200800770296278705814180458830418910586832964332479434226812884410175828895092734882926524720991776264512054940103318045414365354148463514430104944792338861505079940666307540678516779935997466909806425274275622817796235744849038889303967188870576776415476373726866563552666587513705315427477646642946805347808919024037144253967368257569133944141350014330895947675988439090758560752836025454463873162471982905292718227776046620381450232145118190105895080689149151190531597505623064731836172615877349729070701113042696735308165152327592178755661991147362888851683054578777637859449973927247780638355615400150136882904648863122936889136374670520939376584635446785358718814512698531474286998754066176007760740230443437428090081865506928096078790906640816979017521531143872221192060232197110631142076105048267894152386743627883654145766518250868779633775262499490012710747074447854397561368885965259038303252666583516156115477376147427483328609348771578844180719987146645380399698565822008839370607551495404951725808173708383742660947711173320650807010116977741725559963144553590704899226660320949270550068145419793096150363571375451791216310627551092984149874131350161632549425151802627153973688883039092588875732455670711419710995305580805752873093457458248178946943416529734303971302191226205653725298962998928926375145363371693318023488845638743528842993271218744518874956923127471911032102660727725884597498908619533622299659262699453366866603669156819380991512903622001542141032260384646898167295993590869266652902417406084798072239704812385970573713366131990322423900249967980127529576293289798101187172964323882916246008708616350022977946535798842443860808402256629336973573090882393643853904765273322588993676662221954459725546082939128927648422390561512349636028891092476138536424780190273399321881506746076266065992420545223048447648626411862456101029966318439729127792171217053339503300035747209948705506105777132347026601134756841821908421760079263814438410914169323993115603870391672656057627958277911035335270946844311030954329677788049830650355432672743937655294705519574500318687341607104114045035607118821984942912487994905155819696002477668362703117670713194746605548043581565047017899305971556262942010204974727283916141227936044798136737957930647645751864451319079460383730190027066110937785459882610054705224239617460088437737077830434397457504129192768378807209580902950156367562147134261284401892359325838133986146050440758537714716329760085130138756918861075445121645944854856197817456084242940766314721803303793969547794184413825421122101369343620114513604565094950222838947077062247543929018847978026901297633487922969058695146890940151897050046318597561715260116696557217996687985565352354108691349358558068665873811897856413158014125925683907050380420005516782471084380547308315348026226636324724882894687327023216090700756605354087667172302401605507582800916085713373705225286823150061696185743142446950647636097937954081045014793225829919153609198955459648275875719688375552190678950633071704509835622919625630962554985940032707240213186604018153474565891471028496185101689509013944987580479767480751900286383423048366172941330724442583481078309574073276095377772235672474328721058489278689863409683514582067471620883088856792619159646455774261256513620186064390853987758694777920481639147200997606029279113685458543314244290017691517697798103523801933356724368417122722459524259464868226690980508576906982439907876263094218205913390350685929146600231341964108616530086068012329814857968214788744201562096150403803913165872733409560396450705731262952752415658543184324113270110954432644540195277422583352276941608971747623209118961113319957968358052967224904353636040190675921764240954416573897648396900339332816770480332298025076707885130771770311087228471299217979792134333867812787679168070066434438843080057790716665130086136018720417808304009925772244633139383182578813718977900202212400872656647564284917344906351978733315597972355715930801355282406253376129973712333107996716161750337454743523752676863334580456188634525711693701328911634130998518748484926169480589897257100610686359377149257624872825340249292189805552734614361261626563442506252145436477494592852106798590646201571569664510695015884889805220380262492017173905861241902349158675446070426144568043153108674130338683351221789715547112274544544145633116100137535843798601437071550479519478047621784083440956337103416935232601772406799001408261683589477602495613664368109615172353882087508062917397543580204425591387931744225062122891480047495109743929042678081193095770992294745391439826510179046916891663690660188228538107984345065498961905263661031822508037963883328904166743579233303878703301696613144702576681144635485299594395524758677766305727608978709764806554655354655145803660164720432941403927835337845691633166416303438867688323351970713660913337006534998650597137180293518285332987216852771124188768195785728120168801957416236202504764454601209458755775225764176342247064838550234445209760328626655402136180053762093715414027953284040019782098121668446284511408441246413484637536155114016660981126913261242698532138758468526094201317169574414047684234668072903727367463181018515235791076609102491792581785322220002011063573444661646539319779617161813480376955308323737857429599782599048998791601312905500663264844426241862948902095683007029436686194090497978988979046589798468092397722895339049919498361380817383805030667279751730788821807410432966737109505033733460392314384474086982124146263663012611983648185904212289020545733817912524680616474768909292842930746952125007792698614345503398892443283336495927866923376421799062724648624350763547442900068417292208796907863944351735550586390222065063448041946111419783111053154074503358238186411332693760625546736397419508379728641741680343618899970405461703020053178827788867978805081479509792262663294807241631401309339641020985500806513249607615434357615422913570655313959671090534303678335150643135800138734763034853903744908215224412465832573453002152392652490181611008971298101938080530269340907628941563311210103766098278995517959559602189819280038738234436278411893406144831547712143232673355444461521796542695280488838233419328940074537466078843686462072832843719866018393806535893994770717434577486905739923990554291303630927154285962218841606430521759738116023614074620701357900600535120457520076383186840539881595058292172457143500470570082254869267126882550139756902017700377970225167841239215962574458224442402472061200279094448291248266193271610313875709935983598438334576167435609712156527806707965751749546194161973409166432365394775845887390356804762898590296604105966338665309539137049209560050073733195439146720245172205672646771409335689161591048432614067052242863784384242713419323832992239550043945110873535963524801319788915751969603979136748831365833561275005155939838252748116771025507721350206469338210539035821174771854972163274245731376624189544260935490856163056187688482754206327705182370535178564675878510178246954200273781156913821429136435984738306788439977779283342504338495522637975118207454718673156683161135165608665996263516442913471703204648672761872069847278663079048266182605184797671096944896305317255765846349424935298484122484305270398425524255374924134413473076343258362697903058564985401743724467336637940246286334469064876121529462576069552604920844203752660119979104060382559896243158445294696447313784475278463987074439281717383122124841153129404980067868464597147421529204318039345177341706519504189483490296989033588837073570969944381471029165926537740162366761471789323054406055426866706440511701080512688052037701268307965645229269963813675962037992345337545549736682280590224955211529489078765816989782664976326771358926667570896130020376603005053102306287216928699332529074288227787983082673714043740670884761521880874469846003047296229824661461129083597270802955142154668498340458448991327558673688766221200377543420798150484414322902336318378623319780018540983552008952449888805475463106432327036441576607515416118043078657717321276419494538147854794414524708636809075014498878951514894481885069408969571264332574179640679833472088088159927870231704850837630389610986017558760686460522592815949290987616675077101523275947245735010852791371624874014901634975854249327413635125688463716740513696842164779952145620525906168568062420617091496239571038804025487054625938141714919957250816281680904476888946491247236948261760498589252850119360446014017564943564325979914703163583392489136146000257212024406999051467550655484058766756537556507030202972847507908750112612647920119681187471897338896897712756018803782505603280672175815915754702317211182407048059690979920524301573755106052043195652511043597615434096112142647858635640429397680554686054363741297229366048250022649473623321496145170434732135591500680876532539625216641845620086732453760141469689426261918393416588246966173418466169360980046801204833676161616028451914785773457931017634456534589135151068832053829037948434160431267623073192968078477096744548900038766863356237744057807346064647168839271097900145519609745065475459659533657733469887432120370959829996699296035565919837107175318395449185307426627255634133170555901075649084140850870763140221914995994956096542008495451031158779682366994632972564319672986556890493338950730635969088451034207245213120941769039032839783499993951492118711120190195271168829572748945378993698898913859662994931454284673626116942146483538614115056714842414567125903383194938044637320870968462798932355772453186302466559338920283150970634736482145700020048792349824870907856471760879751245063218090358355599092778582678613978760445487836325354611906328909646774174823578206255913208290088549298373501597604556853176972148322430655323395117667158904148265393944772299486098205145979904960110126834627170471001645068944243384915400468412639977672597478745177705758367180758138520677917038988429436296341156742618185707359693746452964567569460668592211962019559549568604683431059081989311473057723307598075413292504721218638842126197035455985936397781323963914229554265298719812272410376405103945576442305490680969505973105218283557700186159223312219915053158676885566130790529139999035276296282022862565734502024191246963372282907220563404443809700795222866884967191565013174594438476281405831567173246678523353136754261172789437515260869067880328469822466841281372475765804550793311331285278758623350635719275201266839170437612418889084639416422010894231702318826884498440874929377059970016020837291003514379106875309587109367045250070291850599291331620811905198370073146192308879033252615450296933061948098534827999204363780305491891394578706815365812805265516879261505507552092293608836165101220392939914297945140542323286982147891547134780837264310398591455443241903433224052554031427260367368913761424793800003413673755176151690749410602726655722740490640591963307802375659965494378690369444632514399657294944444697209789311873515261648025681529425237110762139189868190061222937929735042456616798445568372335022210081733663725613523878362645998762381643638533708629058519464241072307650004755437046121355895763680273974187313922011191830032654823672438141135117913887979368291421456738609703108235919688297857449609017803435090491778098268684347413972449835855175770728270684320815401055068644356688058536249058853888227329039449417475713130172615248981809559165792084830240543713165103172571333540635919752551700974575109857949161847104313362821256613098763231651093884421195412040775997765408339380461226914245396618835022801809908080977971729952311807059974828974829464947003635618318047237870977540740900319055439751152467252907696830831062596082481666243265384963403907934447912526181773631266080656669583113227648026229644569368653913602332866563589410709740186900032502865411634951403197220700729313697121586976729785187092149784941884309655185985290116032283505685968916642659965657271090575440202983055552330569250245994348245825050049271121082842823661606841161941454265997275892012104461887302007892779511120367552501054778293010297218654818652366783953751521318290411371501885932514853289020135541790005709533299750061901834552454416750536946975896867761004560559159760825649580679486939294177115742162465347560596355130161950790885053672795103614086581567101265654999925508633290497812930228174224757859271140180393443519954379210976908780199514390672947962781019852310891114822127673213108104715735429497498865498161235717148272330632099586329716235939317954746246642478938587911826440815102913675810798254800503290405797864282494195538733637023819842750971837370523081954886398074434810989844932307765979363995741082042611573451800264152020498909997597081515120222387793345137330417961503795486594573796561215048674474539507762213218336914005063084926153913537326511556465103403565670353498488285363916116491380543082653920533523745147493269807585506973184075866160492832111258193262267480796071251748461314803255092594957831250270582686687844510481744636082596354440779133396045690322693093446706297622022006887404245701113936659789324739166296356901702584989584830301469049771942691689189309261764001421559973920809182804114664078093258916256147696117571012694381645482527271996527854148321687599493620103048537384960299218535409159158661385298288603569900097920107235400451494959810698032084690468091525087556706197108313274337026407233474824518321361714608999492635290171223316772350111275669738680927781099088123981136104791299959304153245894859755482869776971064218542726062603418548692713972729141007253691144822787454453397615649527624471193148550244256400945553367882300908339068963408379755480668002472150583871911781662941348321274530982676838894313423920232244396323133864565938041770386851042099593196810087746716526387984539702578969542243238498357797160981904718832101798831609965391664328679985679672989440164648158779077228683399493885192467692560562709217586528106515444343945797642381793863453619618698785555236042290323715737203286952076655675041094489708734005344063596730064269015133064338668405568494930521219769566861560547771764456224452073098411014601001895623585103529560542556559178513956587216405878074151120288738351213275657962617570545984390415241817658305221070653397885289735288841909052027043183629679870343286170266646581897034751153365020645587644594621648135301012960575696450852745241168915274748047484605719643112499876444507105087716318686296034632241618487272303384825241555080440781634699333730926128944857997187654425497156657356184262978800204574350925453087522694933149564506928218348290185459894050755865531350529969358827564713424900798363575195500698163419679388963481438871643834514202170725838334798502415182250993974386176194620045141177081017471129555771438281197789524910768248862773689659513660383286637540612770292138910592183213415370758074819845818307422184094944729692506897985971790005762656335458071821144766436816196311265553343275324012041511782404189054888429047216076294029320998530623962690096204271440330658080860102924718839199204876438132278822733300843272313463932790641858342604970537889580553224387252384191079454792851710791379672150975735013570371910099663208433997829788492896161638836912252734730531988803884335158162119551133785672759208836574766915722975972986488928513652167451525302002592252848088270383745980785085395677059891474437956806839104270426816779310432874884179435626791138084300669692809793740252678944941470606725225773221335033967061888795844175928046016145601464478961024450782460553890028281059085669493640353034310348864904901968489033213227612075087768817011837789159374682554623217185688441487822655904809497068302660500508967440723305439314129094524158935188586614172017680791234049061259996670847275465620689209235413001323422985040675601047563754930751565274738037667267708417248723748608024344893063613796493585664171173783073021979604503575783770925626335375354328222012073787564723901793075275423404312974123154394078419883704963679444989887399674773941616665005003148298824091700018876691936180873651375195332186569276636324585530395588466839009008942671613360357092816383121059059410000532437177526745707266504992561158520653926828401631010656339230202310467882636253514167422694940547558137843977581678337148338124336751259055871207045672926976945281505153118512616482562385462721966372473778107615036047180235054299126707173943407681467147732538321763168402863160555517319221745932866128199850210442754530579270369261140177548814776345134260578095373112598054747924313133255721133983305425836746223148297636837508938366032750891518839209194050775009119347375098377502244169035951833543096531524665404254228854667644856674546334658987733535414910420831080057981836887655365638414738307781343574423996613777021081275814576120758224065252138221476442216510108985138083828151892689169907234342762434820480393912559297932291677581696630021834214420333372889963175442714845834018032234765986289211970437293351333446520864500193266499688976389516419436651387836737083159412386085359701470052882573489657619089732587282877457501539323665860331388790768972230831667241526629259720105526479883619310341151559574571036033468987333907071032859872096909385720729231432485872460028247444341676030719638160924399634725408635278492130537578600250642720491246716393113795150348761691203864734947157313510032952571619090670407003416120444103913927131921771401714566448787872684105430128040694039887272221213116518505330762178891753095824523150828791451322399586584142414951749333231072244798728177425788048582538533022924811631595684712290493058755523448216171019432125046377202301642011523847411537199937197779012878386119311508796823835908120518867287683956270004287872625913425034045427305085210025607398000620459853542123440588577216172565804125204237578538293418175106550502435635429458299297919078970938478973837742396498201568518551344230093770783446016152024473255454736004306240031100383187197675188187598074155130777907848125294386932918034887346202949045024524408990839195750367887909481151299187492427266333539322526898982284689059003119364640705178237502360958671644804461177716527672824270286146895955892469735013441595967380845008183928648707569740375668019677686051426471462033978352832291660866008086887403512847180333484602928746121515784506788182124388546130859404248355603114425431215593003134189223194847945153766110577305068153704867296259416000652844947222711832507421637216325850350644935487976634642494139988764626700602408168721850991153970455111517714962657409336857260278383243635768648244995044164063947203803933384328158252392697535643515208073177019754009913738229795291232208761608087469124085445843789640343115681714549609405975567938653555863106084174202548291251825699300662537582136967315760519733500664660106797392513914455301608588410650519154565208539723114923223173582490477060597873982899500828522996639664220184659542429524734645804884896912886987266215650815153424353450684542313757484524835142583992299909377235196604215674058392084310117417969421675380710396693051178681143021314431015475122352488386956589608799963598130786141499647303089145740281292437552314468257484133631620410940666884586925058132201384966954843193884587200972425529743256514000933186019254122562285396751579452877347916450430420035697066214840550084850533290953050495895971031223412281311424864458622408445672041174755178930442424461712330219356910130168689647094051067625064596846663340544983577882823189423793057155200520215935974840254355490762355185176144063262051412280082877635212583707824714439394984605182917779290419850206759690123673119420302797264824147630042583304484007750905975649576562943860955687258368695794865188238545640971099091205484568274686030715030874450583849020769970280859609339205523289613564841699907269238490988114726467846296902806241033083426076299802010517375089634618118179413163101549842019984111627041505682890170545768849195608152753740391468433935529018477708700733410961247033849461753168547186897117941858106855736841382277738637562665944667364836568105440019589161635279760330043128825672597273420815810213825797101229519144954969980080047144708155119848205345277132108842794068960860576840639807119716790910425481283201906573499324232897088379079617238560322111655097398247416353621863506942840807034184370172511322152590299342164588336761833211593771072329301900843382946790950413611405420544709359957728811112390420720805362293532996439780940651494637005681520938091559514015746730569107786902211723759626595564361977912407209501619545018985264813468124280678423904451939304741585691474491158476253196102187796643732515929730758515430619184579441792915760109415201055632525492538588939580615699789131051297568292672946283293273732991780054806757659540363033859600736419509868777209229610814430651759942928370133684152202636964939391206494845916025815681640736686848495282451249774330836075978070728743407357566958881916291264128018442172152927830078811681601461665093520056014320288084781240781634211087514515925341672101841962542452325375422503519954306020791763429183369126204420185426377227256875973665707830980443606181531056742940241180471979025474281409241831023027562917468581604059529820575030517918995668863609922212949765692262310383510977103212956957994229999706472358613221410760123319114545161096208184560228665576474754500405748049833258460220313777675658676385138670654764647829202134501633028718233472784181103383684694129443078469561219516678095836059494573744642799299744686422413948666996489884642122595901300414328913222051868091853452001289146584579015497469645081379758140373021233656951231066871417145790465840887665175550186216677555035552660895741566078678160385450542300270553763120590847424871086965766883763560240961678681782982536099116417433084880653519079685336252527668792370018643456502806073611206922770986446214815835282501430460857363555572978354483745033465024505227082745562858523045451257216769325264961187072036413652940166797356750243890109539427997182661191234398995460178050758258222698305955590152763561991006655654207617649196283250784840840714443929540744375843374553173181547019235849340777225010353757569624548563916411226451253143270140648905127707584827558391568766906576674715303675950357306598405640140835510391596217306355920835734816420710127606819175381149588287973582058847595720754553633812475355091392044036145152531616717938755418053701183233324023507407993116317989352373765569458766504327465326269735911459529483649171334080005723595449850182499385461761022358946487038865015975344640238325220284814423218935852659638089227178131462028582644137855881589609383061168346978384516176889758402139459410399530235003509373658593692285464877389902535887025785281134638056047828669738615963321548497013357882317419811941413784281360439369614815650634533432878740303264217410107371249601127924900382525164267898348263354354067346918953635295748250232334104197859972968563639351654424079223608688476474294604543663665438483640685924263280829509347922629768193951624558110038886811867998781096447115518521272676550317983235904300354036333610629431941220253866173051635386743479780981379868734710329875948791800714274323340473920310994829849156225299067742608836376617663678813724165058381684916639119367357699537322976652144515273472433283256168581120605465221569142190877683970415800053254167512825812365504752645437016212805682881912185574729730153526817520601835579804063578369794506044853328938474713407144590429451714030490426923069506282031418521611464801567327022562212376759079632407004759845515359552403657764695936268592512002700365363630458386194557885643642189508750191607738364240691722757734838139307454140586664204181265876262438274438875520317524685324333269749806842407365153533613368267600336622453873752168993323450067353132032160010865449230720281333392279420280553353655632951335040803413870297537767782528598614658114528384142874509894495862757122238704281063136895322669675831496916263995462423163369282013525847761908064509749063142057693390341911147783498530052566993814765065559960112878085926045759549683449844359275935006157303004213216456094527836205749543973735122267164210453687618232819081256514129284671212416179275829563548206002996286006953298381386843858701331469766135990751875336033913317822222407780660106312183140783725294155881012578310936310882257817081957526120636176456213791261755142146035797782526767156035735323477885663251784821310637750959644230568673352281285847189138630399674569604974617978806674128647221413432270845713580565088642390994717071498873361052088916723975564444862542772720086622247814251200141275753742627419013699653333938351964613267284661932932357655299277745987742336473891888038914782919534473451841638355026007734413607372264015762309937527590748291240610779885654891731315232728672375714434489448517442104208311797616541530748193434284982537954800344238300985783071140132049777393895847879403445716583852316676569413723889535664047495453129870732173677245208439017928514560342873225724629183511768089590904354187104621647374121057548170347134092940223807067630171609194292192881923805901411860282246943553566401363611259719663936182922897551562187095933396363806846889115608489879891421470530879202042821093299468220597804288493866780427017664635499441891798434559824534323659169454062315170736240183579190698003295515272020524252105287174364185655121717629497566449112757106193218878108655308283585261393430350520141828751096748437476607903901599564645288987579737044232083808752153893794412546631656376302679635030458007141182658964419670236314043775956249316908575909065833665146983980328419993285513953470432656277453707353500993246050440749038544439024403116513085290617138775843633893505827764632941399182917342075840307736786748576633287660908310823559209495449815191173271252412324565204179633768963993787348654017017176864768951367394951025272542010842279398554393654996965642863546175034306276168629931068464680473787147065458698542255262867652339923907725382569140741533971575070639008596273717573467269410992743741629300561373707962753256819732405528272720896253870470407063808424608430299713620392836057441493438004290065246172515579806041379235422972686102512918321813671785290035656026089630873961575380493431701049024614259481572918898897018961829512851316046179079732634823155763340372861043277448147194829487386447996961601894911717849736638388270409339812389721229227536036160943122757678881585399755816238459408561290690403584007083993652767770908767801869906991686925779611599927314674833464855458847958256649210354857576424253277871135325769057418900394641531934904527515962853452761219789213129660217988830422692948747811332487419115388558546469620931907199060968447486446633848946205907950555635319742690519247419469895657110459261986152224612723983588600463369020551710939231083558782080130708058752887676093976907915369321358618995654636578401966592829762979397544827290864946173102822030348401915475332937534623306305304907001731566384667451480938466224043653191584565739087846622875846992332018556526196928546607612428630853482179003113199383634331862099683005583566794312394128698341530782440742349229329456355188198402653387632172205231621909608839986898039667786368882045902243746961117467526153919154092895806486284890893209642380670803718789244719287509387663856888991677143922953365283393146404395721485573143787880012721554295058444513102205198121383180518180540216975114487324659311197841008566406768712754596640009849740359293135129904399114035990074217366399193799520501235737401572549279228359940410264764280446857175825893775718511986910650946072076540395615822607814511043174037830518118243835727902627321892229986184260162374636800090940122293677835239179715598948213518167748677803762061316941180859003024196040858878662651435378970914273929952181727322044140920214938557466687955297915319280959292228497538764331662854690015583621807811339066737248469638837268425306547712320310711430778018544827554615020437370568760637513436353347279018909733087574622064401695121556470125248616077308279519847953355232676705182665324853873021941949601018018930204139700689992769066231191574059506443756258375301631915521497105936112762606587677615317926217630153372676998948240992911439702552087552229295143450364760811417633954262156109526942584104207915964317921652396105277235006939277529747099586337539542721626726688120767303683294123782720941325977301886723904924557448189630664864991594735330362426345658801643487383407997554876533878359366087827143427816128021526895103744918066106227432519413036429701624774897698691515076527442921989581707280563006991895350750032103893590224522518805276128810321567751243264675343803731561815254691727523210670492913880281879212311332001146147534240988283720516219738115983723684699894589794349864709602195314557221801335125049707410393435480779941515517573686098536371787856405984748390964232748548253443663662349298954810338762313243717645502082605106545047930484388923096701742369398810249782861299707150906962900418787833124824657485583080292547136593566309771522640767274353034901507638245883420993508620622724359678402447463308744962413760897877416782532531550975953419819668912903162932294294085332958551189383306888768372250705237512558220278970898009016217825946075283194730278764730068959178981497769856773286228532813947181482153946250464973960566262304186244719074066364186961725619380062848394845958535164506099683273804778182837100573454120838568861256230363846186830410464184428109207535478725869423176494155369145355712428454181279311124457775490786364831186629310898981924430424009222648518346489718515297383046912560426880382488071171732369705317711470545668029766060824599840714612064770627317323585869010619102927761488467846220439244587384422036801286919268688006623653566639031494572427203846492344649601778468546803100207950324585188436054509566055104075303931368177575055935894882269204452340854311979999658672907284613723722596188335433604630560379091145414323287397657772549605595406033230769439350778867150303806761872976119449018554894299133834747472878438689986873989548530130579885743514558618672818635127898480141808708374852741487641670946777081853514100303060597804400528739622921624833432723846366199030163129541468347836963406825343854118302448480600686372357432483378060374878514880015305167201801725323004632009388850016174170681152875574306318266530968253593429545302799258980881482314604466875851867025698817812678382096467537239735700461783023946097857662524502475196904370524342793293296119317504492904061799015062606604641062019622574838368637745373792534627019491942143081604775729750690232055219764964200105962983600484243732845888908360223549786488652451389551133027689346306234717806258388278650074958497820394514183660564343468078088235546112344891453890647459337973217165447996330244396520340583273850061324170591088583466047074632711651335207979108435364705567954233317321696384319325811655355067726366054572276315191420431095940730600171730662128900233363503420976970149961214745101637211127855643528924858362281657460372433937376197714073610692944115674164743926025407958000396123323495179930709993239123953642460630606217446096763470708461853927534422276268951595837159842346692131674791484986700212076005351331518213970763416773055111962019916959171328608091935116625585766422730404568125652670416443821476850347668757502269941051990071161011618170993411615842647998477975895320694438873698103820612337262570667067745207644372630822441948943591205978919675351476236381812907969535571229444057654120797013911621035385096936821671470538538627386328490436636308750884651210482442115570717978118614467809598880967862733943340825140964312907392809282600388777298889924120983268805537243487834270145956284528886934303005647227566628467951927206473386189188002118512323595334101275036228444199632724878189347897680987577906425359650391071057317559934615559309035962529723649568152210731551587402563566569705374586012364824808880651034281189063315514297805761824298464019310572484457615763876657130732231833728353292930580208372140140250963475810673889398646208155172399885338441729931414146159000367209544863376368311842637418593944710262454949171134311662953708989379005232236052871630847627764546664314624792450854961013425244066455066320925362730318710110377522508134892779177885360215048562642718677108531370141679501859010683429296069430862574848722675516272024147988326074358322441033797126369889764760967946693531918652949450584252685103882102525071009547629408144834868448667856272764518224579399218048382546488724785679362574519864171817215469600465630962109795654264715751059287102273417503446057305580104342460533408578852256078802053115230135424351246302141517357926314150415192406065255473911615411460804636531935368054540656266622266047669957277570147340202503078147633760189152063180606864135425442552578700174834967443663867819418331509016883855993031989229934501295577528227001843771991194822761059259301671092072642184309437979887574000374871628675198695315110818895467020868420037523589516498700085689142072288847667942222889714749567314162246092135513712070957264366272592501982290187388304269117208353243240429685759435240397038176995645357287647428016012247127397644392453935385319746020064109172084667181966424563230578133818372875518997728295344983064113940594925223032834712092515881420061202967847146265080755308994809998507592547170022825105848361666917336692154779965260947357594254892730733747123380066769993359965376104015863625383810353980204470272313984766459671803789887863180815712159267451242040385178769148804844209008971079088119112499825249228480758698324045122210292736205253640155323136359301529494611738678397944238573846983713142542736353115703209351734893655738365089931426583322791491464158337956405165035393028958623231933891671858682333137601583230650371164880240955983874185732570238149595548822023870223567662115437818016079776557127115205706813984872920288274694173745352723555459126100631935434563564245090367556092166418305330289141325412190652631619045075170464502265226442408689811357356251410014574715838625571011471063661154581415747302660857356063434994482226140506266339259884886372922211526528224306343332770689255356581083485150593053475117428426701562337290864088344914800747134892713063876358854452412690228020530652048517016465867184548109472589255504907639955752880902719599226955947231430592146872575935362698012484182284270327951496862010865783322078312227828920511064604628681765325916670991735122175356410041252628815883411046648631072038532360022545631290655311987288465126870783296009679142778060272407118397507588259087776643550284866917418078342399474099032648683321412904422786812697078542668852081108152689219191570255075416115196126512326592183363958387656746363443987477599584282590996109883830898034432479882934284644890886700079160773971219276106205956005684274248398321813647510664191126572519249947459288810416587581042200030968581596891745233964374774021438094215531847624846217184265951146888070537068413391601558546317845503891847510472470444718983494268222915122858741868093817826668909952237447202338939578203042843617388365874728278695305356852874363432819175807724220184146609365577538345213340138264455604707816065144960411518775708154392570459514351482061326875298328734493055920743315940639593240216462199646878509052208087030361393989037573709858671907069532059589882024127533341746644511787596937244213974690617189400352384973211246603927375152246214093034306179537816867690424083643164481210737340738577043533316471254918280622621282641446203990544185227221719907279572562384136745228342516937369242599580301328070623966159436749654113982661725208851386571574529409927077221772232071065250715071560703746987046766554553315502914712385969057963888319397459475089030766208986203628675315546418310672919803101279456598918911090610113638552189270426500793537405145407496641490068018576757420069756299779482377840193603725488191731461363791440278616360370755712380462582206043108993943302702479460868406331489141589977635255203830002793793150480983992573837931294147813657381782447001637487531830970581836868625153289286162786175713295465902162329935643277236485598424273254013154471387705040676249178400587884775739335586059459620066162830832819338699129027042044337072096554036263190756403947331129801858520759905176174157580684826314141957453339898905841905772806382147813417288555934893228202498178778223072017079251760690483434296162278976504348221572782900605021077268648643988179023728302239575788440034236707454674326086484433153666850061308852338095686626521079891584976484240877336205537790425098671880414109076385751888364879919944143271360042953048502445794658490634161929074122407061120605791897629746992262277074551113756548264789489400513782529630594417785525529379561268299061162760115514266668731908904611673879224123076167606489997105242871119843766734758620745365941903152462737510396444586360370152823603033234302069949913383161389974035737036815279355269064497420233564991605468179910586736950922333413419841295997062728928770269950976407817023153649647709858489675875726209333247746863057847606602531838798111754321041463088294833170460150930009300501637356609475796317896836449234758175735896745701333986635909469997239420074165187935747873209524122178857773524174200130258399376128862082563757971665061197401581740719528541023375342510013110644440352528691207584938244123962153555240927354761994422387406204741203406734553795607787293321489792074686155370157934609975380820111656101182709626027819497027533051927066926223585211835474659329549828301858663954261493944962618721040413901799557934992203716132958316433979463209026637754506864518865157999472488013244328587856198352531307811465558625696132164838037344284176481479081677755251071802937628145991133960128423517880448209359589739428403083570514109915908338270641256313100083501383708253466912565553380748509536218260251167616063315343623959309362690328155676412951035059113678531826673494522396213800906441523656938929427991860876105107732479916020809125300043759303161920416203985547838291427175932892287517603185189382332175917921197401141653957727464707216731836211431025709678027622738483537979996503038344820859503859462737690175197537743284143714290940114771435657399919235146017198566530621412764034941587138782192739383028883543404068303605698395080034909511999432130693248850745929942872795809163403193200083140284047590286027168351514248994575242889203943363362466020067354796954831310557571972661118875477429378223577328029431330710374891703042306528981923834397927328315847947250183954034624082787019216296308025808206299520006315050547730037160297768988147302350386501629681876101162509506534233078085740820012609149569140648790427078865859785889458935399688746893482088559234500199291734830238920851510664681085892677614614314737845586463448163012580160895445781601231225974167728750810520477066499189114500231951832352284373255139599824595543572480801610688595921388194152543892204319069800437676613751355218810945488432958916594390091984801022760958984697290072401668652456936965266378044804025322007096917337539608222031563807808501706439354938856091694932873210608776727982913589498400989370461619222349973783097902110551374750795267000824469537870744076048585207793442792385975315687800255877393280838988910194151902332976090167477052481510969679363154678683844975158369210350985943090291952898523927461405183238117751459075998577815356310032422161229888473004220010234072654121479909986121163017266951992968111536055190500101905175688301176555670337998610290461858920820958828832671172891550305015412154952099087363104978530326588679347997248131819411510106496347354654891949028450745084673377474876164822919559132759206934030351696874722869568836188663437574744955222264038121684665204322368091298285701275569436047598228532445788652333280367477716373379884980106474108614128800076761313824607283096323423878872015012972466466550633957852481690159025260515914748922736559778780194422380487311558413385868584583447963569345082500840348244933388610471238571957998729275144280696581271801026949081601377705397259251848515692113512940626966601966552784306555493933870796543432036112400061816623499869489891255540414657915814168941428318069983710452532479728631458905094753309883563416411200559415640743708880117182964576340478130080974327220070622280566214815721081576724608631582620930399148677130384114304039809798093578541397459158696746320287373010549386672628696864434899985368491946549110945875494658443474064230977655754496119565371475253403319780714600819550263835910541407237138363861445535279789150915572530782381249002000929032542396131098743478478000252618908995711048289413543485260789198446332002152523087316493917386542578746317004286977889269792658850270295602510411871527539725884290193011770012822095474329519787514189709074606429274181178542915218077232330188811555815031791651084574407733198809756568789867378692600824745193940493374613950750057298567988831179971699306485969952438902325383932484874707093530738971948439531997951971943835959530655862077248618400734744879493022710369816491607387940234747264735193108553462799945470417582290655520433774846581689200888452473114464177202508863995758801598523373954317303949610016686757073593849213860774764131724364703680145270280628579148986109327323306172239954398799534752251795088069979699809748717036011569157805331937717486583004194723661707944283726837802250313174111396508047652824492392689530048590348812729931353201118771117653448746173802883552027037616257069205826535281713567395913919751582184761262628863099613158077271597010601946370368982009034275952570585565887879710761032767805402673063940834794794832597400328126819235692873273097554418906471758036944800243352417789079825627296615561595165354942202265192733499547133892335632247361322886542230480187989126046041303128010409859708859307935876621250151986718269251725734712635847597463569546794984033069139637429075680797224954932639133461057975637502605909854144541131153707517426369298023447283079661053076797247562198228879346262066525277042218819825765329875988438867124106993216132148941579109217454819405897921297274100295105556306166060123610541639582584489478405113938444632103392314839800750873453280218440659297664555011136449464534837029817587587409700684622393424859761674318981185450413545933157264111444543088732814626071981803583360806589923252687061156179436209639341740361917492038286673142773016799152865790201684120193769149451308023406245262866790830950834785267856347256648543608950463861677145356169998638782145450645521439042895528057939498383188241768980024612198427743531086862382074497637510007764427497060469312348219362098099057730706416847881833161389857614919516263418340961196471326551135351597162224094332659469225360912683570286265098229729923457704730141293064719967454362219731214539661372638280199428759384090681552740040920054879383204135830800430304914022918926759036944321826670683182861309442748708524480739987144127855392531534474091270521105790923245987833551785420553038481704780676062163687477856117743828896715875336409630060380148376998242399832935973222805527423198553705438540009379811098619561832955117296114753733809289676830526366649532535504961321751253306948529715175629918163551470277147711155800115071743779576255545982870416804386437822865368321870613141928537378182565458689438181260718294853098679646128454729931255338994093787788005377421558526538336710434290797552507413104902534016358634464166287586477930210538439849317196363108436902157439108451723638015830708184025492791913784254454881007168149319567058980058987624033941360318816614676534857330807842780124154077251686854475925101300769048352444687556690564266580393345853043191525901506087179952841348719308832054145171552874751042177065538967143706595680231663173078544569592518409854667338705169465287934300534745948147300324013925779489887488397240537006844566345345423320150461527109969711858472150973028355722333276999455124080328563493998528093302152988776264835501811031852905799135821450898314331672676537441839010579033870637449675320055523791325663960932531102471852654642068540074987170262767661421367625196343196255935303584444088222760397804956129192995556435536675155821449620270339834868473137861377525490093891470377536224324425016788736080672209582036411395612936670580821491714201507769683289160786571090139794426034568105531450758661390056038087051546076821740270935694646880228006540682131265157390249121370241908403220076572620884799036763204948663181280730110010215417670049926314431283004823577009066029568879437564003421307274706317663501789615804157523841229716695591129117546388434989836736940928714667823648202059320131082121701085641616196655993442434432019879146354870960072310351591932885892408756405782726695508529699388240826202255207054713093364719764812820642118316074574916499895956574005341960702653501435593832154118991330575489055348301736912746401484734547320853143478534391747766974569237910433663979891030034080365437616412635045375932118333928375783607244011670145930319268552363388648473437494346669561548042967689950835907599103606970061782270233779690983529289678752547372466228776386696736294423601493705768457604997985370660405801286775862212427280507860550105482105131170797828998992341503690655270698376727042821078588854430868274132152125776355227500408185617939214364632171053289128737134180669527086442144204349892204986228785867321225221989956045877650612691674500420189996457520932686096935561164439333256525786309831594979136790732568185286030431875870112368820546648555589731696484248097807075508907597664272249407537471490887875182735212523915822861080473638752648595384650132285736229041476379450428524474897379921285271682623097545208498116292915513213704779109525335137892838473218145224156800091867645390033376028165335063004977665011192803960142052983282275099378604234225270508617970388636771936007571449532330722338945357846149317545045579798197527402036761089730628277342692614256477176171853673172049805081139460070224298799119236992563060668052593463942158452933296171874126468693750224019133508794438426709885794116665293503689415747992359209477793629538466225867310638535327950150930656189192997408932704232309670442983143079264843950236992223946712196952574338753047421776161715499099756008305010881549568985379938762914444334003154063498064145207601542168079045103459398819364969407330441986643318610034199962580714085015518560679446186446025310655915134314914839312361025209764972290407934479482809428385720558761766933888237110240942568341462664618109094014106449796947797101200893714252124042070524255220114408863503484465038940564580011983932010287005252592529522641380050106109354722782941581397782486558888975947122011724995345097623937048479152558954811290911892366470612451294764873265067101017048609914183230336854139673669240485667768686798391728703203378661525975492112928548574244546965105380033360031354419332831772526890379879571686213728269807145507631850432868628474568115430042847026886719212085782213800962106240154403100141502769875141511338625467360541834009359420928431896481731098137803348463262974132434150927070379348351017040297032906596793409250600479963958251349227515944421984562874698266473187793922762960864958112049873262655044636118980823370926987565703954466436406141003495960621526958885560143205502639788446600713833193150051554072168608592773402172755428606400698833989927986482530265037118251162554699802412768228851160820135557036388443507684968647378489459590317317528126308016017709823535093545804376518071982697540475910841167400410825821212387774093620102598913503642927775986842204659122967961070720634839257208466764583279444450486701511422507115896101864784695930910393440326024681394786622480688958317401151070943478582447365097870733172008218278229331315683264646126224570142891799347030981292901359121985616985467599214897340671654895975643119343454053825620498092679489811123270941946305026761143516401425207668747164156625690642452770371862200341229669275059637858859812317821779621201894180823410360060543318374209688289583595429941994645286814949821625938484138246394953206571372073064664178926657840337686383657838670875359797187270533150562819142805900154715304960687021993288051875741415840692786619289516434698744086006355938965192258768231091691819944765350806732906392930332753037511309561347254344021660577733014511200673440525584337390960213327074689426732724789236477347128520926619980381511333767464480724782112395512237647139484632485241695339250777146111801521665356248732706542767388889571384471554350748688927636529821522748371872131713730526158219631212001644750358024690697889537095459301384182831497827278459339330354379901075683171001988303953687851935159755619787523671371364832743195992209004721997923331266146758454343024620102762246385299881056179903443387077454603705981190716371385069021809511819914387413395230744298802898869315526629926826341656091680630904865329416202316892382720874972810966721645300166513123412626257689487181795410892100097609640526305510924255327300193696099911933805295151894638895067625358388597105690675447227046995627338946417922400385985957323969611553024383616495421125088255010264512282264630940593035207601002763274118376023249084466970008397929292746409983375906835970574627808448583695758575493614172646419156986716811395156584288800617589878885936750273631035737710395125754901128286500880171500962766562798844147673735320704685913799614089415030591339398595776093751800885845603596632913120789112174070629566271701448708709688080944461555109589128259450137479970260835592390382938325786649206471492220728349665432973171531055524805676428631378703967052340126063516776461608157642972428306049007947830232170610663420882362586271117926005628439328515153927331426527849079934212584265959928938853635021536179389340026814084795997784838315088510744929517255871137765137209315290096282709854642743771711381789990168624507007437917129371606337539452763610637037244458960009725692895938776235369347894171848911556383488668097199423522959175206920964487846140440558669826844906887803452793305963185519585395557711325512187188722904494691078267081285380000344905955882406363222037065024256577426295441567806962764066353610060495771490282663515761299643425318718670904251667487029866791197063425493512291113901697682121257472420748559573670773432332442602965832108087831021939224666835769876905481793554173775680177410767725691448370874975808386300131796559142503534351923433855803698178046892588453508132077530414810961466784698592091445709953102228184863321717343244729877502244574259953973964153999775544588302581436992893867431650285812690737788508692012033653579398167276107368928207501985730176051398281501262482717273910729584776528836258512319070630495369143679454582510789039304137231117695582285394352167070248969765255926177176781959776353433952265787383854373051850078074225789479698894537850666074291608707855290199523749323556091522641192883813678902137782296107116902137921840477943208129987397499064801630975403309354553637699070204220117167938646072681217168907531830872657804734070358422328697757207715081197403449303381783950946895186198122103635131195208539991510565058185877972422319065004638243790945395588714791062669719142277419583293753323944857116921946534398823717136533436661532397095208113284443561791128658773009169206116574981409848538960068188232290038366557612305709651738671377492654899483942132559205345052122548071676220018629808788455144752991676366031861889616973828283867945867195835797711152963198046221382893778337734319597702927904835399173193948251422292595466029033858920960727231594987133336388571380382892901523809796840559282117940981118727114111886020886122357228621888211570862261630674380876355201809827782837017208781056925729935186680485279538840878182896668301676304981641658539404024299998337474268813787489974908092009053337100293993061789580698735770586917488683443552251868433951470009137212976290444926604236092910853495626959345062760783046009097654770582313673693132679705145371559594161438064866341882622322826915303681301810560423199265503767854521515933383409710639243691764845969393034196134108511683248302744676531229729637085134449790943600006118252820402859683270331745256726451116841490451007610009304473793243341649234438164101157522517951105166938544661485711634167637457256998181565228611707189970761190689029461653051675034335527152343878305046929036600187853379791954686891730356525019866148101367989520283383114879387672539298644135539008089814629890651917722756539476911935511067767885255632894757407020692659832740923638555066735563207425562786885885881224087209407733924015495723326728768686913781965081025544887186041243827086583082030563939611982417304491189534520898263648453106442872266106774051265096092809874580279250076693496241443939039647328638074286621206743023229845852497487735012373197156677014266349956176902950850284742699665462705593882400030797933437489504991070788657895778487658441257651173172486831618219562606999529825488668918217582361013418564959185251360563006339268096409324916554972109840689025906934626077687769379211366431421105543248196908499501510681445270863978724740300738735034901326957397152619016643698060565580879691572432230288750967776813278920312114788167635851144159508601496947730749562698024644433858879090390169625999006097827109466645226672501755625175960839796198299543697335340600441354472897847666246848254579963445259771137432755262824828100719515018447134181071228592652399219638848719126528967487859904172628107149168285813840585464904055403749187455734617488376627644744186301470765075968510962748261699558642284984178493296869818499572886804116177702870829346099783655747695159875909465421941437632245661276600801778533316405107997731322766575808539659666111887395331493102337608823991401955929430377899911807232842027991869892647833762328706146584307205540474106169012616245265011385420931504797948664027058177283740057610122762875537525555684775121042146027491129930043822106176814832196684323556180878061064701017674036582590587769785828727050661106215696684276907592938047630398334164337109072138180350437240386272735607484656830969284715270145614043298490952705611108454738697224035753267775315084342250592611919616632753240091192653457512849910119685400235358178342872416804619257739571627241108428871644950963970203140940165329750448151315657610537583873759878308310631623335118446335511232878197194164064041072745598504555695398334977136568362192648540360411128508669881450187545172805016517748486381824626642049302883020943544265614391890153841603768007000381207826645386090674335913154865052986428054545305012185418726676179688179773427981723140198536976897821906679175092594956210433525745058051508878643263584683216385560114567891138827480116280221477619546284568093754961472997045090644522766633609361141556145803472206946265850393068617365739742525086082314590115436581451895339589937807327659801115970040449221257094637591689668200422266615565896273992250421657367606082250258747610957165219639486743719949804470905424893968534325730122617120358156237995306028422831019886642759925022629141395997154709370946944165109232625545882354275091110499257873181180628431799185134480087218711305642724052581841382375521713838460244292984126552588181615118091969620877156850323492142088921635894060544179499929245907704797561869504218462412719882338779540618661689685897771144117969691122055128279610448316049446740061830946959916249154619846718714766262102373124811419780817900814055773218416803081066522270550372390725212110791147740532371446026567748608093711190385745693927052347005201164136567413808988749567364261241749779730064570024197878129046312005550488776716204581563261382433698375176167204729286907956412939608422342324117654696153716631171177097432440872805808821091163968734538019094835221567796052370775787599766234580568438185248128722161156646350403107863183202787291204067720699332698153003660411328284069615305599108145649648067449285252673040150739030088010399968884897228110305007668682116627032630367623916900679383290828787738157037492707603964844137768612421867405777641647227086596955458727866200358302232703843210085656455613905483639425250736432140144917687452937025735001541358434636820264657578938889502595382545471390354375646618517754247380345148631471327919482017838318379569551551591176094913476591026919281589749560210589049314015088496039504627542595558729244743305617897197383010860401162951660419613682249621673406677986604319360154237488124326703665042995814537373757944622387049819662679466546079685342106871405142827909001552632742791197162742303393677261026821104141341965419209140910713979762219095506158674360464186122385877817470221898757775830142413104412346387065172670827447251742747763340793973475597269326237294007758226010122415313600469450610996431737865669555190545433257031978070195768220680051869799355781082078274918480788613320950327025760666717703379480251488654038191884147053617897390091945644738552491384320068741393371162763673710296772281218602168820603605127446537158115282130631654760593496050050808081895244128062797065027045991925754890234133299842030764774157813889882837086341292972770881836036376096902918243817479792123100371289300759669667715330590069278965572018524971833325557070150346391280287721555138349511378916613819480741953482314905049374573154783971679373014532737831077884187924207547922319027658252147602618911225124192610321028589976433822030850346521652133992743330719289039730302027453773843670333748576158194438611972156628819041623375652043601641946791202584761594814838620121663879299251096683987211688248977951670851753046778219076051980429650210190980658102716574913427922287820737284111285804692701759478070221678467840111500962501138402436563544358082283079599523635056959413120891155244413645007406913160638778970883585369636308189801382628854568025506305247422819268770997930601830709957933288598050145357232514599788820237365370105984581856969824238070711165176553080615382554163005968103877396795988437707815757716949346157096756113877661850607490698523320890510092417541116884363293800194709716460762443853670889229049937668662149463235248756719626878387591187234427254727327441773018442098247504703502751983944377351680021665471775991440874868236860847713747658941217396138403739214778502884479184222749641758899594534955941483263430072855346997043151246921462935455282279956345691326435671862636771751809804487403056107206422723977035906249166858596099813819249134600804143704729885211836284635747849359225257236477993011692411462217703494925482579595499444027463837773613836885796950887024359706372182000810679238030480473282645629136045881417329641024040744199959829181761209604104684521536367247042807677377878880034278165725642824475394878978738055691083647039491301295862530422643722717303524454580371700295710034580135369373002807657030331051902158155615455368095221330802759011323055962340808928458619858568832179044464216005737340969445595793403909860467054171185163700801899680526519379364477811453688208536977385612847044540648957196263222098162116614119979910163921517839359400512396955977762146445683179662084925351128998188418717315269012588107394806280707440316113805851781584648953687328233218709213342451307456205562916825386959442084928195391762677719837395017639691542636631681294884277059222479410235342119741428393410840196704507473282006453608640728614469393924816784167165308367348851148265454029792546946865656891434494059141460548265105335255818070335561838397606442830811602273717457934878004162241538865131909043677853730906172544895840371951073678240504229730363127222469564018809869110742944172531589800859445250340174212724101132428845034746228049748961536207513141127757403397896479124553435741847554330574511893916349785119195036021492654878550198896550248282103330025736124601160060136903869367137929264261083558222672521943873553481248614768404669611496263081542039551587874756250916639694002878010283311461233205001178604665648124767891399018708827714497891806060681178324047779865855314511128772956113307845954358720438520717471173566722854129962495941673138512104484648880879335268162249968795102491632260286989724822430148987412436537651754027561453135755903835489299444373541856983290200903942356862816434760201555589298369187137223438355969718036847720293513182557880304405596445055972503507044167880415763607083455713179189277799698154429910118200553836646810982794273727169954419099910688600232154515939397858849952317479234197485036423905458653517423232369004239530868359092718183578105809783408627897787932928547671116054774040968268043691624415706789403492738350707866861766914460676793424500572970612179928722657980624803049779569618638631144893882060309966937655130997470341542688913820345054656550800422940266346296706176980314703961998858600813861006059886618978639441325080616475360702031024483442655633352690272817776515160434589173559168622176034131354329175498024883235958870667439501081420661326311297722347251422705911017950163824538112550234708665712685751638979382424366682644934019341325838648192082361064336676590396029954520893632986313143043812815201368636736180117477244576076521060903578365745138847949279339571888188372856057395762525072648115837466753189704218970152530829836985324649339849950188119657669719297570517147653365853526007753217162951592107223195387951698288169649031417174044889351548092549222127094362579020456779632150342095685292626315317639500200524007875147491720021143319180497591370135597118596677249530843604932510562840296169594314165479398545091837714012315243403423798394185392021637134127686101048546474658912426101101521224207644507148295872947381036863606121678206950583436984247867044596847024027717225206280059683354548621326255572324615721131497840201466583794615477177104895578117996169682987672397932305490503760679471119713393938625038721579106609160503344663286001159756189507337553688344973841560591531690430170318181970564295995292279866554208185243635162829984222096450458701905201183775568554575535625423075769982780676111559204682879246066770561736339232889942349300213161951834838668715045710919442907038031403115116812876642258077121489159609421383862129206409592988584495238013532114163102952697876569249924638655652280065109979706486445037165547939108803232740983294492343731604843754137730604332113432445050751562494887368482729407663173705796896350795993746629129069279953110237966719267807031834901698211282982820293552569735744800211606665327602686676685600614140935153074282208285224830657003005681882681643505226675064136302824167597361462587670942843598885690997619600531841992423246585528363363794598763444294215888082873246906054166566203045704611006960351107433177939162348252877728970866819784331831114857049516683484810636482306114980728772414431000111693299830599935759176808686067773205245433185559371250946301437898344565467512208823365683895013523958314210149409255856742156809334094798574474627647524854546322818122300364794585951170312947610110879785090770898006502607945879418510873045127188988125582897297047826884018880105927673731436758615876003680674977783699894251938704952248495181235837171764283935162494985159123661169440956572766151311996918031439266767236922839338062187815824602522588620415837754857928865165437637670681937610796540987951733543149184612446136090830759724129480423674819973621115425060829315753158395183084961917538799210348895362388011308821651959639403654746915475782369272228210804825235621296811900445729787018399141738273393646829529387166590248348607890320197311214634135821489509080014389856526648146746122413741283897815610369857180940229331013603860930752864282371066071345459326692534406905059637849547147491837395760731062324484572175830624183004352146272066363547767939357497092875447404079476388357400554507610633521523952692488729243866788230922221037057523978374684805246165083454295240267053737127444969539115368893118469398954606287546266268532781598354693821055597351925010352141075187615719570073176049544801219192367137482543251666052463252475110759802487419939369549448943676604732802134617422436119608105197572778281828660874663057732426002583274454869833221835381008871121199721788473236692049467787265792446707401532068666176848634758450101473483858220462574208510921763343041833387409707744032302818668428790295008449758283478519368212801255532716244773601772212678202424754332895558656131297283613839562301618718305777435002031464863177042517410720310783466622760578802585911070426351346849647335706755522041573114995135843589164673693827194734165009054772167465578781004673021657000167336888854903994644975442604087606378146596747569770673832808590538394002821434011772979158886231422722344075328655636903789730027772040741143275078621125563271057891246489368752589225527688370921596052795992221237080732589211531916796600024131047562645073890333501476745530063639530972877212517993760691568399919213112049432807579139215922563630509300731639703533883930440782623910503493405800792832722326659152549355472296369097516394889169651745427787217061125330960076544645519105213949707483214865671956050296218569182990182447190633264590661932055048647866176514569092750692300228627389450783705445576709795696975524727902365927949455134452205641260343687547296921683102102491898284500960875199153661237538381241338178973167108919004702073865934981218681856930756752175163886245127873650033926693497501777498101140624057333691225812674888548845939340424382356341191595377681350142170829847324898266226755827658708509845505367628604248751280998253662191421230933517507811029895520158461849279630560476536331686185033698775158015194736437543013306554559332551619526272431406188850453185453868405251372170876401637917075893348054134645499079338970352589621547349976358114371639391047219158366774129059512717279973466457716358014678671141869933716729792342766536101373990340230651038646436268666472525504762079988455939016664586721019237997973113355442064032437148703251987442300724260343362751490920493826244606682562537700088841653257165716215399661734937642202277758853063785051089571748529592538267257121404059042321390049324541791690558887468138822166347383124701750740343160983291282255987940503709989884491963180630137169290800332465102990263573379371204560901305087086247872913681645810731579435274399831768980280674490019717321679122494273012706380639461383525125301444264909595824947812476581165479301779650994738029588470412501725941323991690947772829898529204512087612652874946161157188747444701481590031174293017726789285801499811968003301506842985944985246643199755837248264775797327794095819138200371083917030249064104675533022648391238997659599286188981647181919682720257046364029021285073147023885489218428196607565462783173086297354195748799286882463732431922817670446562804741946112026365608899392431784524378813711767337615985952401077415988759624783066111721202533197582253112879115420586888463753924295965035544536493237807765325774147224146013908752010653685483377619427750930232210495313270869911428837172169811456502251780848038409041632129521247920006461861466126677385145071980532914616945618800864723480358564951014641265257813564357304788953777709841542846900221138478760340689300696918183163105755722733277250869654683435015700814562891681415065350920433265287894181905302187554691106609636085106378902843910136589740685476036157537038588962512650606773141943223432846170587104151005827770170257266541795562310714479140643841092247583977907104509833946924654327032632716977965319344432262721877822303419253689302627422061662919020265660202581190022540739551714105948857845583303762421123497294525005277286164578320591837371659506075374525443835904092687879762934543680677690898232060846281037482154378385213353053375967555529990696858728275124664398807526035296099888209726800220494040780372539427071173801876771957516688340065347467988074939390407553337872659779938950495263113296742238913775803901648651062757512192547773558749253582472917998919530615891511685780435136972875743469723900369666255049733772962803933730712050585090544122901041115732329482048889190508492524188956314120647456968494007967893283832565382417013774244279947185507449065758346026549759066643014329981016213890411527903956608711357966658446761866069723109993829941734622786355284488220406729284354448049028556493113056824024364892042164265946055115015674572935977595798087581650256109740374092210018464836884042311916982285340599361481156537103801933447572676158527783776575558283555850182053442790916667264400399345011195769413439965109532143640478468992047745506954494452662299184381864577635416895195086494009621119370862466810768314838203888227048409019843064952590319329050570162801705659208998018787183616246660266363605303896615717270808849878446651796215880161458943559212422617023359387283892987404087316886785974305702171902119010391683463152849438408822131435199607920977875786367596554857878817419558191246163173402433208112549695719323280893472167053972882425428822628623084002528308569890746642902207493251250739563604408846331849224127316897989058063410901129862378912585195041961022191984624066727850704727076413593578149085301918009073331981537620163701743661591831727290693685234603469967447820151342734497890699957071151434851886563212688445584885900576585935065862415801926869560299253070478076756410522518177893406460665548010149940436124193238928699548941694864969597575891167975852110547423795695211439692641053191178145597340084184591527989446699121994846112596549952391738460332863946236415075442418255193476535086321723483060057270243176749748075567069621903721845741937042166721720246657691315804816476444927893175372549399026236280524965991745083629086908864960203984566545757067759098049010605590420482917725696473876339820439085618786091182640038973355156608468358412415870035085191161638297641126161005186387557008027741149198863628047289287342720925015709171053243391228217981637304794921599396356841032029310415118965473176005248617103870420949881060401000852442993052843575336160995756235679999768453797978543642931359844026309853665509050434052097426034316540705761165741392506110765400879753658374037028620601538683058663836993643141449996906703299737879183661709566950590790376692018181772754616649055220932918536550979153736943503603591871355846516158283427441692879285027312874314911017504108307936646050064747560648191442593004991015559622975798245262503078508376927785780942251392180508416484044520012756347484653663663234383275218047404357176270531455528037788895095206796770793930912639623464486385169903670473963479961397074040854496228543794971133571213363515567393621039411282475769687839651503034948174184150757656937818796559775463512855839238021662941277117872313223631340677812426218228557498551189401379723172464011497021006264263492754954377118681031696264063301970504662028890658031603081563469345133686032581852650074801573864807011563467995574817543108546455348358329774115415289106539014061330683045964080972813072751618963862940614738724663877917955109314306399881119578390061793745348367229930341532695436669335800081279027196681104592064336316361284244014405781847335412967866348603674685567183846948498330305214187333011550895358390291991212714576999874718379425777171190554983180859437007266086613481514897603522003545428920341470220017700888283826944503792018022640003470003767546990375656053361361414807091473637332905810759359355600947661045163250864206345354732214932274582582541840048726007881906777560305807937462364315981049806819416661202041304473967839369710425647783607051761001467967028065945393495917402618197640033867387324758327891164924145689329016655328059501690895077290687859152982552973956081784043437678970009529937318286788574478036105296743121233939638818143513243582715508024647990295939689585397984744498389492721952035813366840947930408201067017858904876201024001648744305867304476034422838002132033773667212641075668974821950488329455115551712051836521651185347426859622629624369718478195675248402051337753628673248025867799540415888865878740919810833180755934548268295314204814895613479160163076621188453421407623737261248454154801467969213016336759581048229447419803837206961473498908379908696889521195131778809736414447595799900841756730385006587873556399875880323578278840423404548372358162270395052212825180576314736543428291170523011964085579308538067432673914948353044027325406906883378344047684224365400407552000738382489072104608592732854033411049001589608959962112185798818808936580193805412947479572999882246016254027781268854886214766754998483816389350468902925054383901266481122042542473220241307213865178316009552149346136076665287992325440075642628781887900502349525030708142430835866995325592159234766949885306316694650443319125505884873985032935273525054919376190149684500945607586159128789765921318892075294272229153776805776011059385126168607596224306755877360088708967112627859447604394021899118278017338394941765379045503171799578302835163530626705046821986995087166300946846666633410471514437851328909658091416802549160244606382868678467490687073449200891423585168503114331046263522480496103609807422335212076315000567498247037377459276076835295807623220705107851511879692585595660442094787229872634061276735339038307526642761204613506414060898051953976184379270159807775925173298916628377883726396957426138879679047017042647463896425371138006413002370786601470022482511347588848480124792529278571968400478993627946614438950698247295794052898295043283469989679023953124397857276928361537062200530497423421379670132564080905775064380942976510754993226446802373453277285839257825679511800761745883214814735539735610110865182072805851422387997738953216540431132357038856961307103329039068266987200180840540587614276765344332421826959023750681989735760360438643424758593504363880922155900402674488394967490108920137991268966423552537914630332914155367003544392530949480511209709847055177805471636818740078186587559996063911348874816973404630166559469675276820616093234642385171645928504803704434642537365715367104788883814042424910010726971158225869675626621316589863887047796820911509323950212308720646608529167087792573422020434297857818526256016961818561555293792427782726771354525728752265127107823584908083567525854000399033997801786811405812257092127595094221063396865298184859888982610081133879778712443939861084104714867812367163163712945294599705796829151005056785283424966591559089801106751778394070525377705668767996721452847832934797664600518707468601739914557845490230516032565420966918856646111765508423979752857077336383324906028015572807079516929580351614760775624633119226371021511842068856331674637412316546787092062971732724200215750685170238382801927984947546890203910651033699359910704667803004220925565384706975714541051257375946486698546876656674123543304624602417268330711765887778096186686683481423475327414704061073165948291978156591850588371042466915200152428856634644697840385141799877116418321762851251903413043740767527720122924431749357327806140007208364182232528235288465118045349570447470820658189734027014397677580683314300580885892457896851118977239174917276629895054546699046808854938962726045706959711521457134253484018046588063005023151913095315254842270540645645519134544654538985082376412788538399068166309361896590380055195283808631907887987594235724814272731682058483765144720591965421016755952927773798176889288177045277552084158309418964738255717044039379798056315485988703835797772991985830020628730174755454711285789841375465831127316155949656130354261207978868411486936586792044393545273037336688476525791547518597839141356231347978073233817707542977962219923040505501081408696634460220136964320130214517750970357784647138451137039573253920251798984985544677490491957016971257679702453256991688789402695538373890152280700486578072161415796091712542904598623970176386416080761807319730561281108091832715974300613114575479579535488132894979602412795853080358438700374314784176720679387125930514278965268340844224115905547110922427429323546108378493576526808834621444284800751727505333888285221956181112652968501906984240748397306353170127841820567444129241685805796367713299935506989299772268116149913591078336698345286220337049494221878159947464994181284078677996388300955975982399774072336101210500371102992404205717761498069800672612988735602748123394395409250708241565813352015795807799492006930690047343609312346633976463860686863625493455712794671523040474246958210198109650198390593376003166215857146220810430699747901983256099893316818827438222690187343315461999920772652369819522865269528984484070578763587899885120323336196682581803924573266945852310311408056931792728750976778096114044240896855035473124481656424997050988958159099832964441931559026526444889585327848270600728608115472352538835096674067992458505439513208770084917351146991397670168557048465534515297067078922656490192480158080479555537474345411667509884587147226994357028970333621121481679827559548161814046524977346695705706782807715920072596859798878617194308210416914530708381901727722505884416909135089396239426620995546279461171713053497950985306881348815233194311541197598559917669142561726443443347621580900396622417623888589997473504232499521985692071031572613953943584305939010254889247885543579333220958201057729909071251051439741728830147878325063460376593676496439848716013410775757161985173130060285255435057955435399765134159406051353332714372436440620036439532365524972287233154148817741448288403586584636979863875872463662113144192184497963809559419241294006936621584323805911427269766728618620717173480454817521699527246424142776520358993812636254502547231230849551648264114758648033400162606013082039849604432863799641387263952284134630947307758437681940178803120127391713273560752730126572396732691939030569895978754268262958029659043269173832760171922592762525283764784053963125454233191765307712749470830738341782411349846863734946471648874310555013845790360624376880416927910616449694020268639589374801517961053494964795353542669154155507154625568406050238328570426516971579728619967891385431907331975266887992683431106526042795173797302634459916089862421075395680753974051038918012737878907339053215281955874397113947309248465409374832653679367153688436999231148840601012604879953930351316167804026612377636870901254612699766000409997523267736815843506717652941562622014457111988930856717144754731063109249031628990519542293404687074443753375939834095020053864038893967754359113530240627116120348470562365314712915980700761098903081028244099537797728236219481855783202431024191737000987948961370363006949467850580146140034754060086764618248863950268390537699689210086042925540219482429713583135141556677735753947231229041620710936902957852397873553611632001709280189467062465529128195397352901249944793014406049421768006555768707335411950040305740322081874184404434625960806984951216600953447966246688945206362980356323268195419033192243935001112638172475584810608487142115322286705074217642535132011254003568536128208230415343868921840800647195400079120356737863043955122223970916871026058620626299173788514015411544152239876903436922536049411928546797842646686302163123508862544378891252166351515620559917711346993330692735408758877654781205757502126007667852115136111506302498192764963579841262543205769992145646953086752984006256027294394119412769912057066386732138854873100008676618462650018085692489210771466068357085754147831314152849016699194325155685900014397451416673536536193537792843079213860644848121155720749008846372365222719936310558412024965320815283110889480504237498999006204030353396000380646953118390007830186506231666115626053151011366000393363902458580156328417015519988383493371242138930966486513739399531126658620432750254393958408860096707281831890456375106048668877771935943637097638261991206875179943552137755624123591270588652246223882557759737977989690866135236134924135186075669101520153117144697179277637501492685007204948901657220761353252947442959548983713277037993870335472251936893802930950369396060930798397625935568974934908154680335840207764198946156852417045093641743761151318268337609995593837621564298359055898910066270262671500432187659370040623431938008890181422269790807747490995147009313331860371267969781667313031069637425503658018485940212351454752519863171613583865011322736507139269617969904771117731970249304851329931243784214717332440602064646042826254915763365900471887899269514162536130662675378598788726973242221103979287153320834766326949769402825572762447777894909847959997644685036296365554215103010153961437918677779157826168073157264828377519298349976768688306821522775842612232305436882981360923641997473485130153156016269077527323903558484865303345906498118770912889250402008490894116130120592585938999660818211778935544314089316201725163568537910067450740388028311903918956807406751294498930259607370564145648988705854426514336271416929182803210176895788082441551045544985624435771006024322312662067077876412049547171550442734351984286180126839703444415532224141103198293168023382906177349702503026729106903335003120290100317151406106683489141974965999995604937136583589363614474540980012068923091979100907874054819404725645319913314751661601421906054015129113699739659858122386011720936344490633340843296184477997889221337969435276138859060342112412217802933462781406768006941235592943491409486364151783526061391823021996084803964373811550234421007465246086511462337769130062903510709596853956789035325934453440384734723239621063452674499907772476902781402854468271637415873992228694663477807199559044041702194841994029153669612115934509774871841796944780016331507520011144893543233921281150210886668999434625621896416923071526960766133885311555840679412709771200991854254601644557354342241476385440844767495030796807980424531790384252136476000371903957068472319552015914521338519964231522095883228410918930861753453423253610629486393535679073421765594220266101648371907958394005912420820949274490186868130019868399945000993398922117058800651202616842468656319466276032974771754581752420890963406196427434790868452244269719617449317023918444909591194829273340323364059635040703707926008009560761762671456158670610653641338283917223696835438715322417217321552059594562509394178488498614278578586244691120514224537134361104470977965835750948277432350689786522438371413916891083211358290329697377320542346801068082393858789061396186826903062007481641113395261951068469636667978769590477088331771986270176839626586468775056395465645951272187565810440098440092493391909608407976766753432034935235708538408355084317445892624527908507635819658949310697305755210142620589663362537190966797042899285541702289281336657523147379299254343605096842731917626971951580659115264273997249463732536032176981473292089983015783832923726611521853380443361080472672660385896983565585731537003049444175380898521669210056104670828167690492666485808835893941368915680674594781819294553600515837187252088383933318949670804177456040280265940652420254533480001451381279898258024797464173168548403096202781641464384166204132150722799391110113924959851837992669619123059740162456966114558442834839823406298397862470041904526750737005540349655897244865522796410698038493404430649423195024156998152292168459959874679404829851550224786694571826871593872215047650141702443633891243318826351950873664511332176024848534433051831174664185620654464012078267114154540809987868686545117211151761179487600308965115009350852324543898575406606098698095065537684655905588972798929434098130247897594136004167026799361748190915767714328755882919229570174370911759641890068119802586630742557676686109236343056355824541490789413899203354188977667759327409288319471303526585302358172427358491276878742976918116788708572639004559840526626733855143749101963087673589067532266037359732176050930858045671441136892846651890403335012124594286641374413463702246985010030392880036034665926299143123035718530295649280477119258539279083414286595610760255035490896558030677201211824863834470028292219001014796943621473976281133936283743448598065123587320276567975176923166662127656212963352615120669832204570187550812101408645382711858183561685120210709687345002604720086008817500043513496783784988099373513998696397988024337532240560618144298023053566938598882679520405895221628576752744222505202797851161019913863747156210040480398485680793645994184559866503905172196076064437554483131994994866989914891075763176891590688460543591802921353445196077597051228104667123472927214366199488986574160284297405777145135897184468697753531681527505582900790424125039934213719428779760383576740373553125652400661715967813241724071472925413966501682625968636563335975454363198916181926736246136901896142225804545971310822552668525503512602646425608080106153303316340849291223495995654965711065406923990680257342482981351235135051595404943072100828712793566954108342009370537697615819717537592634151891116762382187903377557620452566342025433368060983532209945431410259854587501440087282690486592989829786215292076714796755648216580156236201802920829241416222091743800374745615752361650316546690747892883946004081236915521167639066395862906961828726079496830304223839377326013847975201829258237972395436104672417511988363528585101199216431501672970673464058651547398743197524157611172250255432983989621359140792357467104789428626091831065384019082081164399660877886473439289782158123202665466007030938536392420709740165379637009987487471644870495355047160000437025812763769675104690717797404819242387661035190905084557730454638640146171033667867079054864987211812146302134495288727779248270227255411392735469286764374942155412918397534266677578499529381792415092378932632496835167100844449977615838501465586171540613640165733676114674079979286146953431791950423119629504405531631043601721332961645792785387322659830925166304268562173879891450380038190505576018755842375800976896566764092763813991589133712951890095334346825331817094576243388541001272949052014482665256332711228791598903058336460223806408928923491285008089081240550529137574903883945618972681256127970380614900750592045580660083321221382661703294878229418012582775982052014774066326186024885158911894822326877365697484365833005784095676520507880776686303556502387204991222676599011791602836236179223396334726390687400310506092883323719933271316139231991752773807744421377716572069331857431793971150342138820717872853903749694317042907519037002740513584810588439216483319062590875655112433850295355047348761048942497455962631266166312164452958151443996808270994765907159888853314567741302165396171156308412343959303962079892744962089697381230585245963543596017945830428751514518679453809352186835044721559150781757105202130950164121704271684010010407627269596760879992566835795642091464703539521854639740684953601876627115574414514340748321647993681783970127698384223132394236733556973706805423115717387960593034816476962036442945571869812754206481173165997305175617024602221850542126144831436829975646740887177267513602304805986311110172771289353306804055852364537041069329753547321931057875289530659817608968203500430412527149252399052671054804459848060451601684103464200703826880651201079768301654588720269598582617752463214360829835345313971383513907424475380347426198877515530177824869114308242869294779692082490306586878635224715022948283043376234686110083543555279083591979345741349374650217972143993538785531713077304737637763873083636891688035782012717317676248464975915095481118021114212124552299715862480453774719088831298620143304546881260990889639652939046362403415421024559366537674311739672832726682640126050340761400809696650156253874331804112146605966752089505863105130100160006530081082711140891274247587423318288912164324874382562905819613933587633579591039974497960068324619319594663667067670686479605668150806489680455187799609147732709526623282248063331843842599050569641029493031569605341831808747537053156594538482430396793454734544993211052330615659114615522023516736419127645551980094919342400983624573891288371416503518726108754683352352110955847409594529546227775707296224676715457445652082529465195546639850668257187567194824683963282996797186007792481998360994118327477210207593728577405536674378813867486382992133592185871971446863001376816234275003564234185925527649986721919691421757214143823496714416510684456379627390478294927891128727376244648456379118068958281053862868352081228135868445515231458081996445759201959564476647059905684861879034669034981081980953778500953414032615991014138508908432902271219080407019917802628192699320495398698577779208823628212620245936895918023819875844714221556944400061989009885408101440317181576947639671816552366880624838487057489268057272532077075642962978964038748279599118565960165887674252093141069765989298302883729016093452768529419619085556577547279882133379804382012598163264581691800138457130081435404107213528564896835053204093359773892733649537438315428350196430112738360493814419970918512780200811830386283142577652346523872902070965157047517402176215942040912679971811304174935908409236444743133274265946169945038896429537959006434782227491246706044783909571685716764905138986291895995923202102977392081206918435247546460916849968248109230160895498430488208475262347068048117227782815850034887961800358404921061373643235827753861859124464129409521948340612276150290121798597831695854595317977407834033016775812924815508339961683818444905349253671341693145795909231901626157651738246084707725168809231189387981366377741309556368189012190614202406029294960385365382225594594143343026477416973182154764929721647866830221017868231992033966454796944604239641294680711520457746889675612916426771409344670252336676725071560455938994206863896787897985078705383905191409654060666491757903440248528488974069131220934878263037644346496153129817561174196753329342535864539902903211050076154782494585602413646686387298938623865106354849559993150787162159380803229748449355212704498574258335597909228606793042007984284475957488241679906247536999636947161728188493570937186078985113656995810554880508074064722282814970858590641979081374779608206512790387448865543975302873510016644874171285517588060849393121932976331988749805992077294412668883892218586532724024468992922601883392280871727727156280202681553127581074456515080746819616198432759944236672458472036633281187537102936107987886034084517552548881927192176318398219569001471823341816256426639718433050378789345380129404995226524823738269567694134325267932807336515188476782945321998165421143144270689134189386954266081769932344727521021949875939047518311803421242707475603969124766108146178998754632847232680244665236766706536572752131417779375335492706411017929360303465371198964801854271908616941560381957753927901928370745468888880741866374387661823225018771647639431763175200389409926590539974798897381817233126735822328385144413631159646410283827843219672281585964502171839995884172413066194290047167323326681787177388630384440698287938307450915987213173422581435661061526054326836919011271080573869770507973856596913030036885334638450975742225219695859159234951709174226954147713294271435974194509050923060564872122832925804897841192670868252551764878925841268764669825723107239155481064977752089991257610000475496181970178903820517684050792226827232515737383515770465496765787180908614926235778027782895077926179692996801429308282437989276541229681452772246018024489395081491172060425078175903357311007802541890600633662621623317674826894790135211108656305782444302124333395507064744670188591445345112152408533214223887205920148932686099319129741179559530636653757699712012160323610268055754349761855712119604049922751008203930019150814061127023534878996830332793959575082882671090373326760781808882059932625915947103329068501599087382808533482276095779514646251419046254862275125561741465252990196128958149940919601897115405124201302919454961612936013126244443126845289537637036739341036135710168289659410555370591443788782684601959881267159222419160465358155899111300303610405713210983079246489224138173906779292383707309828450355583526433628880603051509482623147263704022217446272714459624733731417619933135838870271543785025465579176447076994957288043637245929050019204251331307312858494020698376577041619472289253769976094734412887202555145103063707366986655490572455205636227654600139466973687303153653396496226420429778571513386620087950587738254700403321910175324427516188317252785595992638838920131848050270525591401042605325596844144464564373018333124463430662012400434842076690829251823940099442079608240961472949233729765156029216172540272479299935309578467430336276875110945863452415415918902838924897365208081886710707532711051695067881534853817413305931375363068717589930598374889397794462956395277811707841797041896901947661612470109733916882126194442104466723262663679782297920727727759568929581732669828015072383057718182500835963705341151156521504402618451069682166320354108122480697560974676248455876807668710652828851744601752844770268928779945169869299724673533040770412149845997471985896663033749092791181700012004471864282788305328641665629841349389631382639860771800985568744995853088251350082934168855359859560910300073049861320279696098213587358524588575878250544905153400744763242533411280220767069938684134038135213957139811558167984064722941864054698309345492974988943729798321602602481217642189332517832750107531604838539830010105982104681487829866716128033801088813906112909065018719491515898024791278258705569817802012579107457654710293209828325991570143428460979083332899320783634003002885221076644392206836540980906799175389390853621086088536447790114642564838041284577507300358756298697327650521601764158181927651868529364908127099932383495532140982748982874536789683011352966146663145944623127653694945083605813981908510425326587392022589935892998466886978084820244999605226409473960124253513294200798509402661008453802681223203617185124094470106958196476573886359653402533830647977527817540926734516023572715871173067182671747553008984597964062186992397583880136416548502847936594377807442251899683425353202852399171297846249672547236099627164576530938204425440201198440604209381955934421178942220258226464956782744815720006358109713936816049549763378579061074281457505353802044878270421705408751317094134264709891987473526081985315875770584806834057218487932073067536298858529540110909153852801144257531989421348795115496336949034606162491161761212787644885810374987091411875561337250902597059906178114818196057439919922819022420773412876065999862541036496823923731481446343202929354844753540937012400597325100790683912411038227781492365028799008311040713267902149360608029646336167897395516322431254777479647804318510962506635285027566265760455442108196025127703560104823114971688579641014369913561900772488162848190282753662811383359330946327376012860103235915125246028615695414803909559392044982122838211022507484860966660114504906388981050489588973982471799626196886078060620705389093937938831525107333722396413681912334548463775574411258115528906218639085576961381170011496568920150005057662723487805993639137803047786367618254986365470270878917663115012541690986450202400310885553271369929259654392916738433721619164468129093441372469886482044748638016954440829674946474111260420960355480390718797247051711856528920262431713116973498521212867249488993017614688740668105466991029024760058966271352829594346102107637739535206927754983550621676566916823937659048739780143302924582278105500791220430161340195594430155132070180108230604558401016709314448989716261271793395826531927158996092497864325394172401773463996300975799921618528402049065356715023544865955124393482310830279631542568595933217930215408105833923980135139485189815629010736769381562011583970087354046970550023110759221990460089877037084841869934044024207160615601545373700930928799343795457678768874181143200387511867749689157280091952641268327451260944025691353109452101161613246748108944926311129447334419564325368895540740861730854174289295925047067760675519500451298518193955841450099125513812010093814518077111133172062030655740439455647289469031565769562603016410875545652475772666139084239191697756347074703418532078105311425346497705806103536375487178491026940595292879527181726484927757701006631313129780164091224047217965110034048606181748129861701173926890206448164178095496068244102837878231294773541157860782205813338845681795734768719556956158915268578430192957340438771183478818471881599214665784612663900486170507104189668736758446784689576928957388705846802283576282152563080144793727070485239664139203852795849143410554758151217665544940238627390915657096035958958875346346735417247045890520029510892734891682221926901941944942594666584376889922901492720818180841417247982148510885771076355624680789596067046839377373184482081459486081109372229510909884401148583013370279211308443494765597745753897591036521871465780148196099358064360872031017490876362489498450915887590718111000123553822643297228967778104022374712683704365022324616368299787743637354661485594135994976541779736278593666293345242807663356607656337781604205753873750389882152698315311042819585260234198196012656309628241253775543084714946305218027705707326282522065733751784562517650303290351460595557470646779429292027774825062241658453057108766629405532773737280082995535833033421216323273464959586340600705950374329905174780959284954836419848559692497949036218350105002349452260699753700629732764948457361824565079729605510775248289117690638150180068423897725588270079205862483538703112087179918081689054879047955138810428362882341258196394207780046291879771138226903732938364197023566114659304043462801959620042636181813368268977714906697707862178106463895430028227250710734947656861437490801483739576697266267094072497954892144572479789868995979184261933930379076901557481684832314941104227528494349441158878407401539999282518028155798767980331592928387481663761579101812955220812107395851372843689418743859871563388647243909989852143766187470366473474300539011934026069395732731448639181562529186385096789960954072961335898631872978133112001221116767086714828790977104194956638222065983424132737003205250514934006083102232521871239072757039430573350628034201461775888791215623293356228718969497207941879980477349094321163340105642856619359153203724039526622563104832066999490583258702506364264886070085512987168414136578450421851721060701304994566427426970624355626367402370783665484097892461226949522803079075591136409935563400764310620184553518486286264945377820952174312642876029935924610333690823721355266968855530010280166691951559459812620260120550029359799127717942375469244606115002352598315032067802333850492244451099645105578261606791505435803365358858202096673239647452141429406516706825788600731961358407913938872959062991670943202737946700832252598328916157518560708161020284109214362758996137933285156596625350541616483235193472350088488487100315346782590651739640446809111880295587181464383813231256447900754628926232401642914729370964988846086059498057212925092319116031004947280402940612853459509475268724768884017990585640146504750754095843099244992268551774998185485437627882464498639917849009345295849355135097992461599032802712997500349270455703721217347435701648668610711858201396759578571631798956797585614217862883705691004887981606794698176659766960159376303207017885565151170250814087388758007759655520128337866062353420125198782090775720520785250375412275543124083535973463519494087288619128504180424885793381076295802878404611363068701835401338222109050027741866932893267273930795569648713361231731047970247826345767062634761175332918595980173983551052715106658664871089030529883675659362919037488332407105210462213125773132136712270788114688610751486535991556656451883594745891483637990332418300817646785848984399347769034751051832037617831697895779801174363038350134288348270463799183108099830039336272643125246920558670325983595326371714844639063564031203358439795774364618605818510233121203843339805360177422903398739814193818357920187295245827018376015055877149119124813374636849122856957389297074505205104450525607257170773478949474710450907008778893535576337870579486865333398863802462366145265455502766644876993907438321007426997776442059114308942891826152913795645909081335177415017987117735022436956211834539704008230704041286763490866083072515796600088525758828021916143214049377419544631368314918404088252755407490655664795409725157980231858957039752173198785806726090605876022322476313118519346094406797704404700563359173812255203203468075059109363019797537293499814795857084344612407911757999945817489793252835539538761981786411449770675964319627706764161828254895440117674828477161532871528201775550612975827409651454187369697500253374018125497022169390452050586302869143717173256692775317650528732035037484384241102301966380326112358670184623645858396666154168816227707729529746134914468853997313241452487497650891587637208148939585100500019197447851827758259496780706090247861444857136145504819980885409292114276262344490525251259611458381673522249968172956055782549265968932956680067434157361327146080180577590291489572567153238651361387777569972567994422242363347474908268310531447022125304337919509291237340884121552892588523465468461066713390620256314688847341145955408732753698907729100479487686929286032749590520231064291088442232777513626259919560108263769570467315302767890997874011883501587148695921604605473131921370719856578824706135576211944851174972891677574425562579537484193132121805272629028319089070704508941552932453887921236661531370285778757793786324615205298576072718966283623193733064733889135597270299349615228813925891096271258552388505585757154503073470171997893164419468892892116660699969609147920036827596607432245749012709696933767893203930267012947802569539101976910694558552880943338096769511597419163900264385921618809888341234159562054621374452626959678043296778443374813487641116607974612751593944930886688654107645126358621627774261901798177445600728644196432791598527385755713658254901269056323356611012317089108981442062447342259821916380192994245311683564634027963217385816783374777405252386118498750217670638517392541766807143540646252012485465656117922606236578983402415958237271926138617611422060752035059204552655508377854658594405893823936425844215166640339741365469965959273728186207276501610572401704760782424853344123406764447959924589947443585508990920844992184585295615078152449360724987327561661290800928098250161711715420942274442172158451553992842535729604378334801825597878195445259739515286098856090170874719024076807990232738731259915540508197089826490910548546800478962799461579952418921617078114799245127212388348149343529708136710411697772076802799399857185778318340973704852462896904249555601031359422040577602481100017381706867548970761971552996075635611708678962211579068315531823650569239418849558525462837899428849837592426081204029088581263957543912154338646574680914327641158221371446325342180039001072001456222568779029763574185855014478650563292311733766345432866995855687125817847374479770139960476136343279608383106583792339944925724102876849654327924576459179787004142583783379644060494112153612600692422851489397615688009183098276640401685316004554336417282099558101883501439261907031680260587350845738320876092306295740346075836912299253036528842319569317930254440010279312395060355654292954138077436941373203013581613779553634239233850785766995895011844625755532694416289301309626370717202067371708585595456753146265430503838678006031765338046912293694239520341685246699319357273744804889486669359427708004151944448990822523488857861170375646848840546981412637636271391436653900871204714568448599340330668663027759385611750555096280499750319700302927310175188650012598527854438763997843638358575231280833581575910993173114976776343736207108609786724378472827735998665505719574942799229459601304345966695233711636581640147367058315342288439852526105570284744070283286786869584071222052616323826016831505136068783913300405817928432683193355931444853320058363182259829126969798216038187387568234866910299461415444089734177533308267806089079086206041458837023227339789689470384621903450699349008782784318464083007673523480856691938128668765157732383711536942669214248268911401326719654922284561155241783884848400918533794110220181295213413187829308178895149789417805352352595107229247476663629869907857842060838238048291835654541834074438368985356929427883345831663144670585518501886087884695886933117016067395825545395837885709934133167131792413317730095715546733421051626770858434836329854777192526063288809211088490060693139924573689493240533726086412269057571335739129583655063169190485796348023077157835064887183308315190186128962259127947714352899743595515709795156790716074859700924098878617497210846909050080315103917922577559960089402935771716900198115873310643337910136421018336870032930057586204147333904260125201513198579588625204076534918128461554520215529794578242727744873122257490710704107198110511198941398045384071613391226053371553584237040914734401307214762973521260873215631620475951238514394206194970580663405765158058527567335201872610437381040838917982947970303445877308399220937769175460858347272933321763057228975203908621525307715813284873197519813272603357571814517012964545265918145554686245072039662172629454652260353207155279048962148226454869060106530459056532494328609829598240391884856917970870319054326659253844331272820933873156271486260835303753623173981497723424487767644429126661922928125445052557222628009013753548822339730034658138435915345745938006119481810809857569158339631559877853455699892289204645394375045191362680870281902418981222094715520429287524037131554266621690935818934781727132542778529423271413768984575409654053026567103257985297040824647796013281805430636890206860215579064899392074886278538410839723894170105122952361219645065632681952258967450590781889878434925152832922911499388488466489884647377720049131032079759449366448574439190721500872775134253497162275224399161478360358171275203711660470136166439721789591386393281829079177497440419630859416563613314271203141227447547562141177008735571102903004198224744829204450762999515340764721351632692205083248836944490634064772024272319776089602858889134476821116149520209109905699659548668953042228017514895184447983365269337763185387878142758219364392049068376445886478073202673521228151998749903787424458443810118520514446178435230836273289643894132754448819932173884790169758683010682166023433674388096952233440269401157309998637158203658326276574762554493238246089122756430572292424139949820538270622768606994801625948669769633017307963630458526555655112390721293034891256195478651746987485271548227280139682966095260002611567509457170082641534497721175708160134084212610739740858429128372117171106170348553597178610088007158536758494682731017728037889159759489932853697671331163729496565643137688796419810158201403109061977728867818659643963619777817186817148859462375655619899882449102481297241365371981906169123114334506177634424391345040807468331414257790412540255955936470507125687010562651005574610719241726223746200755698946313704442012384081447442712656809266650121260470167473206466901062042445238402845529035475096844654760235023204784357799273078002740559896284024018735960750739250587742239065032778604687185400407121620159012335383823311136755071501633193689657642904348760174973563975015051923083380457329898552659984525479063905353264811063809931877594126309277005938677201990390180169643900588401964083792644807393317969334843162779754428629139380732455068747775984527530489395747222728258936080140227212246443304093380289714172587611341742239825260766227655178090013094882702436959685586669941596035999587884021983749732478883592493485140458343096532911587428424213245188803061587707516238939091670553499099166245273584925007067908352160662038476327648295212446195388156058682690913961511314956073961490849241392065569850312128218385352135545882724475522827783252027411369043862702984159105730468271188615649536626336962832967941137134883288295828437875226401517873274780954132127159053060528360632521963457329906617495829801346269802254905548603932886445547608547166425821052388771790271243451110755237084512060008643025763117467724619432051967017290278393673349783420205454818367121349883496667554941179470334133419227118014542245659379442525095463727257715540737609081079730927585074478820897381788303244358388350887678265268527330602596994972299654918830781541647948064060952124686049514811500152663133655720252358779763785262501176297064431914010924418999610265564387452285346413315504115836852979998412972988775510255997354740638647713141826645832982247976507772888844183577302978821548495894789629907877618499286422326472283028638055929688724799707563085740551337181563138021612270011015702174288740230818916669709013102172416523496817135089930984134824241068516022858567927885454635179542711493228570261593360024004717617412942667319729716921581380042668451409681182132859639860467221487699986939809715113179244060661909726569391014953261834687738014844735625952564782861313775905014250789511464504293255622527344600789324029105231200414131486332839027533549493180514321204161081581497105496563660593850370995607342415585965248713580679094172137669489359789480976529352962449563668905230362454304287242986452049805464325708900164084989496199354161105733534898590469061925373931980032859547464457026336627988929885387704288270170427120287526658744120268853254115243070981674254602900561348709216719723025884288159739698340823128492616258737121659885388980978363190090874574140131107256732885631501069476949851324368612467935659139804152299177633983765201621267020394164173577636582267801524547018316525647403420332187065816163751248577736191799060072605466375269435954811044611818741365019040622888426216981108604442676208981270635355299805468711524923686750998819140674686124771788228944907138321343185376743129867952787528840982000254168874774534214555367429714178918493722130066205507493627522458375050629131629808734470477272424595730905541152292104682403475020871464233607723391402127420790433585014267088731470674754299742947355367690266764009507790541183435204734987008639220862487533005954570046043085419912330528887232528139652185604509015548493837514618219932861142126351068614321606272221627388304679136979590648340187842574536597939501199448717520847553568905465378095682931039699313385185620286400305436366896780399553833599612066951987782510875685457485796470201322085613638765438422397505512208384912558823236631989063491682595815337761356796938530353367359313564290174497422621392352676015512475205070974765321591221503180996506335438193845046953904824025585861094235714767329950218174308584021085586724216941865136172513794764733936955640743567706450954546482521127884049785149633479620823766762169042331512892518769673060400190447402368941074172492310041793666573889754934919399760173320637687010226077999546544682997082654186596060762688998974872094469567868100963740589115916459362585929702044507263109000804494504844058004294936599814822793911264637514509987941737604507587492867052368793773434851101777052033100709191631446367941609500154710907799849359718657969209545235621538639129906716664728508762555094305087509528235377350410830389288329168934538452656705529424305703653293215744814239241532356434532467746102516298408200390059505659329813527052688419358204925738650340226373230419856941247387895196399758423148973863461242779919605055295906196806433625104544862169986967630333018728078899168073348305969316740180513358961752838300994787623112373907742084692585252198298764771249278044939012198508395546815599813508190079635349294184783991548652638881659316578054962026210706255504877720877279481204190123472785477312263088874047360875754808201936554203639688994363048032770240963123414808370200830962806429828173291694679999932114344848414814754615560142322471717457985823697105997869777672893570959686104910891637373755876416009981917680983490640409302888406659081454806380493901043493308527745907219683169685909858462039669534765075055771901263853737187651050420393281209367256671891680200762692233807398212896070175852016567426465911559473994860368138249164750799944022303520604088227490383906444636643141682276513329281749418659493139853232398029576586807926748303045503221422704114726429766811176226266719979305899094486684089240258978982971916049282910498344090369871484452471159403325937211868012994456432482222278579184889595582154831121797435702699345070504868536520450300350179948534201731284716297591581159866239672482892498272989673996941771360427966703404474727929113355295684805241476898736925313067583223834752424103322994712670002885781277229429543919971471058632947018093944428235682981189236572940894205787533730506238342266880304080084266934071931631456632751108336720188344668445606626763209616027058846693556946563298818085408117077444558170820777750627591078743039518329842598664644398617101406525672200593216826872212726338888136560250070453671918570445593186278490318816675591671048951951361174103615440127705313504393580378414431890940121078580592430609810719335123622056663464500964237755981819022183514916944938173638040618645057615106511845956269886368591841550609814648240308121550696388390536055564243222168200955386301386394972516045236728618453033549027147007261645612551587727494296878205529734539274459917620246400964961983099561534243649956600805047917475037456119508501428079415000470950806347568228941922863312913035877251945271467150991008531687123153862713862692836629862278216284273768206736986817328190554279070605714290941771285082576202284991111503278062932250296696816163831104727250371032924442374529548434410115288436986315913725113358630444533181580886394840828874957451835984465275272410130527333339205390344379870971462514959759847609408223376549032381605756603919104104968130257120883665750226392507372464067896456739338308106600115995998944735866934490469922618134615529237370504036098187543085833841907650983478012727805451113604462929652467565430677496758384313945419584058426667039047048324873497930361859104244698162648912500341611387845716507190399658705225943078779650802071988032647926589346607557632366586034487411124684628674133463449118898965781458477667550827202178869339273928917331807990822254199938010786462656802758556280136428121534568312183875790587028815388741953032665492375664578506505435740567621907159839338817526828232161695493075686733773062639240452362732290525269686441765796106022492257915802298881354272534411044248396408109145048641841443374929075311678736847830803748614621777633661481430898319216230364672309761631778542479729659666628368347789672547473831175172482457109702114973335538857627512957322667894946507956125991970252645177144121011149031542444393862231739580293026630026715696035302797647751281139781445813994840394479130120111874220272637695237914447925079165456780303984703159854655179316685696992094733168775856630046487858703202088636862596979068725604916307497330949912732625653822296172876562885789807773974555006958123905782926525254935825837433747043468448623755983330606321718773880998408029459525582458975211577016917936093562440998693346593842907378331481185529948543538035318372328145510086553848169454912765091936325451109107699784811919626003961054909309915766336393638024351894436933984378007638560848049870505094429094842863364704541455614428562811002528389234186663313928293676251757542331727044377565982151594468171354534476363268003051875812790441105142846036721630693350849602866003882590221078206307634711814113457598756512836202181162562651257094559382663747357843290775595670110257015561787242776645333703722595513649313917968150764307553975336976848928348835160829656989713371204902307321054530461861567442159420576561117836489555126330127462754997606088734719723473139049972577230467100044545522692423494268133992810363281900759185514917143989424659772528661754443382816906087108351689661956654684965725757605615417345662121570747110455952812905460600446272396864605488224522787127399012675366140037397723928067883957095265280278174207171414996362954972380450328370873658699589675141950291167193777988165906521118312805402641806439185756056382094813956504309541315019647698383804998806942959946438155293087697950797123462581745468152311425894482476970622286837886576814556252830532521410159779263918418430143996294332405758326717390161229769301434326430924319399544362421237399247227435077906349679706532315211722549653227418337745767408648266124322511759767856525318493652534367773993114633369323120554645074440941268984584536604905375618383622610134844440177359231364805899638479740319156848917845437127419058543337254043965450656357167280501682705292336106021121866811041027292204290485963158322618480362776940178520787228441819150022628699852729297093681766838939420326346755831352525161615709752063429744638396429608893935007241546126360539405264312576034791885009151449473432276952321498736893079511844005542409205281166260233286346676595919150313546695643537509894139446533515093434926182144089260068577035039402997590365012954738464778698790626367151372369101011822442306018455661477986431633795234749170320285970556546784333838330569836354294629409251814587956783390964609780724142523990993893514585744011132602926619964522811771697570593603431993137888616577932935515765864373834609582420855431545435151183611465968488825090250928686746314996465561281706929106383846302245783930957172281132668211591873936530319880353784569795218721701375893629355437607861047110427553087089896415515793286351696171647211201695112782295914819236382697858092822382547220887534840389763668589917876123086719668983741873296826152324621777992997330415081888705175081593262168538487338288275832601714412837979712100337482580928498348705301044605545829293531759406188238071626833450096071684233709400341332584307993361175496301242139088223777272421630583128080564425398776147463490899331539554952290112083318773918752472617463408479289889840761084728749797403617510298164008533513958099590976728143575026763992106309139418137177306924101178368969136301091511788835491676064614946975994773304022165352170972112528445207347914858220142713531247194402647198064340282465340045269508557301294404916588976918493713557507241929601971251904723005755337167396238440601639913138874118283410320051323256391794204421515589646474596534632154289631480097897724681602143141500284765756588425437285179582454057882190334117342001802207375203081414078415067744412592954080982031460926841080046741745782844315514518058634608800625307060689427497662542835897162647408730702738667383614165352789501653417742823771302971226300018690673611203919199573857464766420144330989546057212954331031955707973328968677764697921934676566299535023300421932905083215814497196740283606043955817172040475171792936339619540385588935357827848458040396999056113968457672856379621844859611971431571310948766207584320996736738563242851535126723920911515681919453225881299982577693455792555723925046286539926879853357845744752334345631405970703321729022205645450644705215114090725046372837170134279724466018338170378291848117682429815915058696286482072289949812661719354144949748548109977136010697338791432282101036573822283784202555779843609166658289633086175382423154123258279656089822141779066743103292403030869760279855785309328777829522450884682996138340856385065287393320139063381578646577488821156828126799043835760148193129214617401238847923875541906808390838401952043625726109368226290001139196911736360937712456215536227777094738135685976501529352896832191373056107316826072864640110118837608852097768882598274984962814659993778863548388633852986555451876224974192507426146804638721069197436954594448199518574080017692294636015208531492582563267765650636134459825259002809592565270667201447274641716650425624940814545255556092411069640855889329067606263815223041040731090544893864481939913155846020614616586274483073779468414107655052830793265021068179728359815032404157964531014446143393801957274017419772397280116260666163198298688870888970815448631267075367231328634336051625844030957987090281103642072239157894224410372378902075320200419238049836296756768700586975904769659337741171210334726310046264024952206181780626637808657028494629741397805382438186816905541773648970392694614326644672509989831020120457454089692201634772609583315705279430948626614001503447931231988955535705516003130368149219229210610956952814160404039340589744119471704985759174025217584816212907803951312585624012029314789910259866779907407338222764533822903065885214240222386288383483369839816988710125639050117297073518168618412133899356837413266301623116329412082231291038778665098663695701818278221292907705615603146978651281937842253622021254523651508757062235994553908860538560325379513698073611568346856716293010393013286179487916846050843982047808970381050461622711451212178593538380237184690376476169321226941195039046602970624101816533128647834550733572725119603306835835825550388452292593430363747632292996254931209085068087053282302798935799708736665080960920641052603418368373911703630902356480037426519655589686035850790689413017149097317252157998687931802448300724348563788918312476936106184209543645401752098848555227250208085887741289795088772406119695521785368558847785571049024303700614633104524094609979815516460624119108224911331398745871035295657737009027647553589543524921928413827290181866739622169801983246091423899564867017448883722880728559694063739360207273287157116809341583266934172509123910630485102536223383097696104777831461236359255125484793573661637578709293593696927676492291303441454871173156110190630026836295935166831494178147770160450613965748293024115475862690373161225492454439661056597311110354527937298399399497864011200434026226648310969521118881002203899854038758300208661695339759026833960890374615252537063165056125489695481934515128750664847545522348632007763990016196027654537004164431022862434355945069267629485366369242776880319582468168800304566574694325680219118671866796011162309262762841242016032396408243922072778830066120563418252333840867733467074290254916551996745741364362600295552192537185550411050882002880617159485993892902630723965851582352186992236022211039952600343520335499494916917211156097162276233131224798168579974417081443225608140864193196997066414202318308598570590356237120929471669740437671691409593173157074170475677367692721658679145652761309140531518026331913836663106810871826402875318037119144291832963301360554243450148042340724611692992889298899198720069629313221846396274171685616287030783517405845640287534393103532123899947859945434044163210830842434883242270540054036609415096625399590200176908656957495470590719449336497658405007371081734614456868439301384688835546442228863610059382113852077699889912034783775225340250383365550001412019127692402720083788940912829551573931938000689852808808748715110865032077172078236015131511408008709200980652205916085329299712085569347567748610184105400683587542225966532785464011753265725630976034519485367459787024303833282582218919176884549120230283232684980253276922131468041369303207442002282542350941299270259271878676507990305901046961784972832561277003065238196134514459807070326666001900496962073735493537761515377340904188242941201289795461067580045877398896645755582660188658767224086469231846019402474583453698230438082088456578345110678367516467600850650385889059430311230142387463053460844435692955794675907360220221450350655230042297034678355172875647101673386784086958057450853653332008428506580770951218520474482662801881526147115736488339976114703380233566365482632343873178167256152784181369135737166589387497554073574488769229127764021535414181295839225671626546393012565829515651695928256125078110634592924876001828091460980814468668302305196781629556269228363619859445179377381655957469692984732581643820050182335416244387551920083387644846333897982870694299625865835999747450106451161128270693172087019496382139752547921817231944214638325933195727531889924530583981399638159299963876837841940714030485154384109388030189422401266820142026070505016690473502742642078227831940262873231074648674616151968755080129071227125585288378329986374253786737727663882232085714650777487636294722900918236190859415890056297488029545088737481272480840275730288107204973110403303418732549651428731366939273345224136234954506074006975530630247647201897956759036431840242924493215831705339789727091600046953066442904087313911484277229764486017704757297533290271236054751368441283211614845556094715798412694603278091486431030227920375337176791893779050400739808287517813314791958064380350752112915262347971309760101002184005866714513234395666071694484236174771193091061905230845353793166246142022855473302105945980934533446311694216111478741398952291834422140222214165008367213403945663310161346972309707089477424099353116844949501769499260461635590432571177540582351645527279335707812928384638638485006503304992755915106961003317723386430454190645742809191954395395437640826607528911852337299577553983127420780896476562321300646889131498631918539745047068676242083645420737630708215657488012944328271491185652130282223558694793245530073321089322907853794808408835183261969536776027497224697173077146038113237375019455588674306694498515456840241063006700812923498061898498834349024966260043950380720977736394822893322138479776176804518030822726288095742553072096946068076034453729130789649446330911717057806275965532953471891679636357136465704172661683692149782479007167580428180833165113541869267061041492837280889935986887559425565700628834017742873158394512005258854514090355028347930081261258818462384170446418998692881728960315730910514739125078753894036162355404844234557793111991702463695601695625962124873716740446413826579986848539978548912759858430671401639226051273566978044313623550302794884997635887746763917145954578503521054805766087744663438944687119994236937943643930429261201082645443869711703100296913539294822957625767917201503712980668350674666008765337621136816369638628368331728674831295003008560391485614331745171897270906442213926446858046299710833280143184365429615280357893626082618058922026330896621525068404325819024146614708536545016393957668329242396743915083465600492217789935205174274350979871213028203695167587312704818271607769378919654036994682074571521980173477058745271520650299563115334817101488770478246397662348120847162700998629125124944389779226436565185883287524411034022717722303722851233439629222415968103246031434181128199920917165021144049933100079313815176161437720973847746712057690040717484045077382981736750456938364850591844814829056060229004940801825979417770418052254280267218352442484772157550091831780616761415053642621694921621558471411951503276952342404918377806882243788211157202656213787003027377513604252610475443843498310975594126465440427433325758186991770290153119546176618359998761653243155929843836375126313401189775407257155167490216950125283841350335409828954325908305386249495535849134335529403575703904457593550655160109129162796830239654034992593379931734739706054523442988243970828928005654415726915844627361335204399620999034184192653008495259162370157989607822498300662958843008584425779472637678331397495467522124495858559483090450270020020563159592055939435389107055759565381426958893729208388333191812786585549685885775049939249330286566196816852316897667630048814740231206180047228699397103596152146477729053254076684147403791189491866455872856354919854434117497610672103048141940366474270970418345095631731906350920133740588771767487276683592984998408054031353466546058876116836792779329651108280320005848405413686481012436150010029291075550526266795180356396080543179278790704750348460853072828350331334034306326445095445298200059101586430237947315942202344406372057302817634792245610409076402422125186068827827128947761732045486115752398486867977643822631767346303230234034748265657843374491665658686231022251143804462068212769709496942355020312374425264825069485877940474451963709141292290961678622936255384281186626159731876519975994626987921649953283652413772686597029668256549237956614519246988798622438858606913904175592684854863526944273570644966837777049439371921294956627917532473832957436950483234240960802614561742215348504993864042534638069379273382811098538874028814849942858938988228529821194012522123298921410427627890186173554148215430774906230796357926184067425854992687845070642824144859367010342641961920635106736548330483182260053276029210040327775253526536303429813314246948478425872590176949724565377345992387177433393092116466046271508136915017360250862418236052146177902657421259880239431408368700938789767287366087456747653107940054716813419835601829508491946810918178682882839256471679514297636697817820718942335651246164063052061931263017206663612744693280597296479140421310533841233629677523581161084930823587833819359976272020569497789713192480676685357245073354889345763185604318227032261143349332206337851229656741881234226803955839779714707057882396863122094661485847048545449586944240146147043147765934668952491875805303334366004371224917347125784733590684331597337715873610302787166021834109446493628846388191965156290924618320046582355424494414245476931342746203962815992161801150864824862276071575694760516460842164923862010288948251510374953131234709205289449970268597580567602156790449387552641093926352445267673413983943987181118133739733403800665417492304106118813962871374657615944262148717641215290098129483887968214320513505424416291954342552209699907361597450891646784410424684701441634481541487553143698108019103403490118252564985097695056257332461469736838589290958127666359231390752126592133390030901313545279770337426270767692730285662240800935428655568963594379943933009935842168051884443450995004855173607652948617528129288546285197629208545644850908656226599037950829394568493402784325214148655909730791115219180632348256460230239343366391299764541273163452646201185652036744240659631587828441939747833463410571964549780562297650103905167408708905548212708180871094677978393834202835701252404678501003054464568331749327761687253516736218978577043964185249704144669974156994857405811855703691090787586326851918277264074710741023303844482698458071810377965780828102175553429933483267524149570576464986528295825297575739348860778472517912863981818308297078578779284258314439295965380553924148661710119093529371120973770721379749313106654948013851721739897547205943493978213522809368681003159012699588162732474318497088903719753938740092355985521284165624303619376718900513650493641026660139024308389072948274901990699182485083762629111440113889113474789323053934923073705339785362278294654340805479841339674643010910571765137952082853668484140041458076320976563536794210225648441869344931599665737174849722734154755280736994167724438365730378155421719565729253384771101373027294902925376579723025155015327119008380461251861153126826736050022177014010429155402125354996107483104183161492774026566953440955483443224810336522395253542331605388748639530975758013664389228373242975886998420614464686983769788757872340030604348455335648775584445329277513869562395344262764419855759586337991053896560868194378651052998188869802500050586499546742524432808103284638490043852924781156427397005456377151852236297799811469190061566084133360287078020608341668777219254796561126106957608520466596922602426588386180095054139316373096197390406259471258636317113603450265787750620609405322106625160205316096070203605773742406493295282680808190558706851776065369891235701504754001449661778361099490707525858165328247563569430039248236473836812679913063371416382776482902958878421668465348978125099901094333029174746091803995074421195812382307638212702007428310347843101546021214950550772698777127549860651552484932973884362621079257432855524952218098079275219169164557289662540809159950597754603292547579139392299602725502492298905865426198436340206092129563024354154259714021955638949406093460923927012730331283947861161573637425741818950024715424783840108601700341865641458228172975119876339029023102290473532779469466374034573773155686945166159554396427087807247144782428128646142348316228836532677788330495699197907975201393403609085736235215734576608250286292890731362925434547999789066895999265916436331582691080148078239377168539040905962592489643229254035561565234945574988546131927169816792066184028117081959341726084096915230272955262965234700939311997686710272425897671006730683889891081961770928430957263344010155841245633105352654273411078916843930153892921317760861603430800565280932495607908606811495839986882587799737169018391800246059975829749985449039521069117022667214432378946921586903618325631631251686269413061263461525228321253461166610685674576731682205772299931940258391815240656924683390864103406377702361771301508215025194834311557534623149788751318295459768279719894609998510807260946565154180980670601945142044382928949189767477752071889895714605722286926312693862469122548782076529066375319157528059911816306763669757822571203297859785766684131665149601321526318085872201774034041895031028418744215441731228099180530360036807177158676138641756744799386272796946463964950314109485611197013168262971655608139798698346148471531335953823751045490289861908932767000939133889256086928813538623459834492770783208413933373536132953329513121025296882740078459250968098250143368602235633417503094461746978770920549924290115527806924905952860777937609565600804327423113496265245241698934049436224557153834870625053539941084121519955043900418951389797582992979687041373818798757057106700970612817903209253330950784647721544192688827832588839037891146848664241488947682503655791741076693056625312173034844671995510887254907834087992004258864578851383324233533374815858892478764075902959062746888826971005482506345021811544505576708515553077929991478727090201317712027925751709474694480404195041225843192640494589746873858285153433263560045070244291391702108759504591483882753881875235801648414701068564538037618790560168259444685945647343082496840862689427356331528018367451914298102526747308474653395017223155325452223383588757907580386478692531036871780281499799684207521567543185721368888677448393080007612869803236764825357719428706067327068885176871607021855783639353256786982283505729355955738174402085211914164599967579606256612241405150375405484679817393571824286725502500669365568972123325988464325111969765056162412436810573137508686610209069565896811923100682505855204019526630817197145030190990361630870639373416329938638271203678105137990766573246888033162035975764782402664755651913598139498675068339466268966159055550754990487841478133263058461169514907573717580179519284432561555778928976586667578059690563702054828580583984955536907528171510197420418816075088279412796052450450377885922457995851219997981484875328368205644271835204246739540953232861102574172029229988588626450256924790688655243924769629404883786827250106893317585197754885750272982509667374540900264267396913489812580751410385192638438369946973240996998387055151562374286293871066904180931629919565114867378740375589605839944119784821964372462286680998868394651876164032231965874353485654700245496080239196896133155687236095693091209634687600447764695832687810316495831170261010183072303275064606523396755857694494415198399042753665813141709627205058128039425082728817663633068108873168328128759594353304493129418820912742842931612160987254558749905364458736273348554248995496518971215930631882075701175247104029208834768268278721875276857273186483269815614484017142684689127918812536074282159397482955626517845345117733767005298361857474571275344355479952422808794269194889211496588683621835213878062552376375497565669156442745937781183275656055361555278151224022620165873945348141975652630339620906754765224858869965933580358287096430497520976669495220523027290526140479637022226886533076112838899503721309453049956051017459644991488321450351500118861182024006259219131089989168952330097107206996680082258136412027235954034169089176970951604854985914115384680155890948817905162116272509038203380046814808131843761548523668486772497086929164641469108137765420701905979478417182403898909546326508029531534151649672287465327073648770770332477014151831859215292442602430045820071321793904617266647519518890773878244087487961827939417746919826954795874575987790130645749529265807648087372885638443998742935512742295162562459570185949168965193680260504606127744767828038950823938761452669340922984835753720079878992894929153339438390631158619250900537426377485117241651611222258633214048395960005168557313624089095294245421035055965706555159208158938978997406089159913738754990401517998534580960763668676810967074814340257816923678914007672857381480324598764523353123047563206980752572427127934757883724609387860001350712959985367625673324421362288865882534370573778386393185523401266746256602300525638117528904637800053204604338560626243037686379904853423080076542253692832219502828895891844262894553799497003803565059783326215543270425956625715352162780286453113562369297689593275770790468822370278911397149791862940838791936377673594621244018587237567678642843361195712147248269711955159527854519121522471256358016094789773409188218847195973006210036977989703068382156432532271200485643559582791915813690473679678413989238220314283823725665878292874454565824257103347636079788226146295296055355870608384717880496035152387491484167048968021601930986535981869292413228893208053154850085929385970787001236941895067035371143074377062113565254704688543390112189011738725007628712669938474879281362002915927908550934476967943228328504467931521226494866027103649713448936736066528367443819454370272952812345779142448044530088041114275080931227544065611107675971572650619403642160759417214217665963841257146782383677724631948368742814780121601370294257391292032227392837294460883530835496201191162593495695072035846803410371742769694936794316245465308352677708719171585369376750065863332580850105482812247161123880963025959142827874985529948198259098575071377809937707143796588080014583888633288099367793960914816761061719853914236253114043194195189136746870409711908179356629563817976206592885093295731778065743716024792486250942471414259718841113390029774336001017766042756480609957845390707218019358259580314186621895472843856582828992262945193888344338658005412792589578086506073379190727273577358502410038700849874475637936818760078948359322347146900114260369419180031306720173363815501341124851578161262872546229108628682763039594130974492039674967359156702868032211635092178500810959328603370357920720584669178162064705736735648203026740341599756463762946432323738951968550488514152559691305562350534256145196435980862337809462899494355799382464614824976469579891315196494356427241543788052391555315335878212369791855310705867446314507636365544658563231688413204990650752790432945531268434917727047501182768928843611611839834912071954390809485830373852684791099308014423063876828884483687231132245815397184361894433066430643117416923548342524624913461726399743017453258818191377923340692136602529502953268061655219582649736337798471590222275113527877544334283323394811956507265904955165687664301071138822449032881887399551341943143184796607118344621895692078689560340824033945873790404546571047236679654907345421312534122488547703444330673629217466765045788518921559521681430759796718953602841041371107538034784294230699612688362609729673987981497519863736470940778760514072665388978583184478333329575973203513804025816154496656529905819685392291529945440679757909226989494022051461638081443608504733774772898223650250364743259493759155987852543307222855444666483482766792241924771717759377414485597927513976418378803902987857906059720859652438685345400607308930231301108948223017235207591824230699403293648976600996891308595070335347091029868346885357753298389024059155426085389799420662458511594578714103388343197029501268364045182635022397969789156970513799372303067314684986561617011205607470347499317311562171871954665622735040283687439890901950059085182963331756016727528559686087945392822681166206397567370226930547338952261599299907742792597870446961838280521386842293648310513710235791272866718812288052782297007432656926293993896864884549300495455710617473017028099052485193493417479500349776583331629237990395243334193948376940158902433709829380069918803502296054295265656022474467263959252829442698004169289157148678938952011378810499876670950054119493750091313610676946696399003890505920902196088373501858218776790599274492261767516654412096648884746737097866261298088899312318919597294586624287991709570198087775533816788461452522612163474813272053754099920440768098005876021463542548581337407973266796472789948171861884710632117253039333328626927218616824406900959204577211258853442411123084629253442001042327976625305501774746831515978055448036737531219355748419157672966239895017888334553502785611614564048468405309641348875033749810566346518416019221460333606567954854559388766386632426710718952595847517815916784001021193410690958223019289100478445942257761939577010288990445782447917539649145327663001086794518123387135472267441565131335083127428485073327734512157356395502624389231002693187492796685073907457799435011061894266473575475000160147440587399658194286144764957260374643666791449767247404866913056716448122620082880283357082803710372216717657238889166897129374468491916998194942697228222168199625471505056434507520702195636098413967399135933284694318910416736947400296387558832651655713212963266036598098209325140422584304674757048725291061264107617119758200139416447896517929445698767212097654308640676212983763959519604893857573190693996724120469419036271977058397125211920463791184413798418145871126990909048845304546191202328288528686266412244305999352742362491451812334752100851502124135908259801286641616476393875880297806067937124867238797808887579440776270518155964385484235069878358868950384781900405050015531191983100796717030052976974816165743959021557481033062707587410949650316538114436246837179486653973900735820409374088989458748285593849009366241158937057719243275773104405204448926408893007321134387861371618601552609140791377092738598330881311732929310905330973734163273749973852728841087242368964703542666867715834803712478152490607296469856546012072403970693934045801148867043786356455296996623456138792674430769913027230937944019340521283213732493857349401099234927056836956287938353972938537189837072946331824592695446664613600778841512732493941064365216337108393136279377560808734598344305680531373856918236900054607974068129130405494843447601706696449237086085609434117341668689933458724059263325011427539883417608049936717208474311839143435904288434446073216157752866865308616632610758522855957837797882397601252340864470920635603592364890254787655364251030818814553634490323975655560877822007472974449650174320152970955230214866662318119815841474465107377209328247912680812534502774558290674907980438838103386799248589202970165172738890268970098321902477862294191299984174453906530200065060379706161631064149807510573723075119687795969834387946913709877088304353016808169650827016611341865720639116232263045922065090396970052039258204312614627707219638119298808560291918133251226735913164282707375547242582075707972351659151961310066683368273522126109785147988931498460193242452002554140782703759701119543773137272670650968870496580063513277907235606193421397814053734463908437857421487485752003345212518030728160912224718110198259135663411097528234794055905303328327447613680724690097332388266022912544624320401681467242745291789817627154478947208539039087270020422256625685830408792763959913704962125911713311020527921907540281550410765682139604686361722035409349891601412503959042405265538637258329365501641667894591980011849337622447287935715572837495364468073510064102444898539172043242385033527798253615052480035548334315355544419006830895540838056751748419139463737494546734762647408577691665164372629903786167063440146581460791038901535948165661089099441362244722498502839819763481652319230146434478813943183283225938623372742345049316441278384050821230005056471789598592622514762608476572032823801454650229566789357767607338366908680894562862302630911989157068614721310550988875250935673978372936938944662196007126765038375434413108219042759759244912740992316953370726946496017897004634777669048922879999270527709770734019854496075788642216193514882407061535745836209282413342036275176776122676276127018308619960472701083369239877960909802891335506494995190635050182990851748206305674285226956557406370453654277895042185600723472843659279358852299590745325815909815258701859498962067273968718892858077700289301564341419049066081070076617124828557445989003833524855214485830579112087129543648268264234320688908935598641063867165998770745379689561932639722649443623237384987939961616230420649291510853178218981426217000058124678848276216288441146942064730838482649444176754175858652389047038923140646261843151016010607566314763076202002696677446811788649115191594201204904401315218549483662706019214853206928771939139806540929123949876860245458421320244537804053836107383197129520477763372848198387813726365606893356964469640841258124201476563853589186318189927653822804432140885015272982226327433664622977997193185069001269672418946907552931409987412442982955975463179326394478937964829024425579794776066086884345156601355431487532605222850973379952861506247499976686488928044413082544711332478194216511226902163687618580039291779706488131524545645584307926105752694178507068802532775393591889582693260836124888885110992586388800102802881152750022107707474841419692975555591690018693689000058045467560976853140926235452041391971942266332339662490860608306591182506459191328413542879216516345494129269690854948656683496064748085923825884101282975261447468412307885461775171937312575661280191318215008959829488707837005830071222542957252547048784441778096825690107620151710567874527132606936583799253536795977585969238567003621989730136362611554444262817799024573927834174174075687791080940925785315859017547091813519785261865797419577026444413278258155466850907554441021521940042160022254092330187236173303770692575578175074805369642047457778998760613830210863651711797235867841868514591606059343090613276056454674234947154703533381020641259156160681519607696431576543904159499442884865950518671613297922911256633041082052502723251531089775082099569071278313048568681240155699226350550806260123308607913091094237669091260166102146170443995918894901248289702858296655903436237184185870255154432941350261227853036283633405609802180429720507866192436630176297236351295655575105165785965125287800060706571787726976370808928404088883852331420728768082612089692668931199895228956721664426355247297778767616663487731854148322583013712373867895616510024619697794958674083468332634025378654823150023081899722464852275218422087975125503658703982429473659168603077551617239939419677144024691336542190808424086219772807869678230746753118350340042508068725604106586920627504233082286148307431605588134019385958443017575585858436998661668446542468788735379123481904581921852426490024842805234321009005024712027127056664900608500728907028844861637865738248536397584090594553669238764829537318983867840709376686433587402852948133626252423888886487593171572553602521824149573970138287467392124590226834725522930117883061639669176366662205002371764647095327176596423412536322684480450717274428113565102780770561182961385835171216736251949611177896529097126303335937508233924932280064278903109933898983739080404687946828934351936816557646602788787120523250503047182448878718737002233320498786023259376774335379636232648876156435964797626812526874061108892452754493047423654121470250467113979215537114216916936071519521634266606516925482264835272289001040580372977823759836873907465506094074621753080033418814749349215571165075423589901244307421911091369128596105867663464845641516270235640095460863533016710582867072312677983313150129055940479848095000615394840285796917758170101898303067750839626679510523230244712872697718219612304955311332897397205588752477779238496636974266807933775857825600295544822094237280672065351080556089778450980774774269493277987343511604610871803808015536292118705369668078279405160805511730215232333202218250585952170925869587472269338343133878666920687878629794773543026616836846763991684609117453096827217986198874902760388575861246581760848038864561532297285856302506730448713681910887382352524265440083172691990137867397757340969523846789137610634938581644859924883381129699120145911397806800493315403697315826674550431842059446935319310822568059501534867058233214391641022381983202796850584650606528715867500758967082770938206279971092350588572981020447267747570737645984936896708526268073790926495373062357532507400838182752609597121476533103261781446947208979563790374721712248579966263094557100641158205671774084921432639913765417056379620212871062314889003070866388981332884715703142598803528477411387192836465626535394442139760169136876318174863532320247976046553655379158855214239412760777155147124789708010742644285980997348897454181542005131935697227613626331666456684599268170597176431177834317141284412826479265239800229011443129038205775270247617808776269095574765127375824535057831800332960307464210313863520626573940736464381792948024684495722874919056692673175435308256110140545913013021440738268454935958587183702401644758061957648183053222571394092651051001179434394306256127598431758310549982030515512289184243959476271265376425902472496442056391464063137308636540467141258676552668511213601916153529944865127848934502459287489240267829778270583543597251817856908817164383384095176998257566509576697518781154545014701914701476894345218914643410831588355364320515412876706009335598674139434519063014249842580034188258733007839119928750675415526364517765350998419072571861339360468712069046017803333513327399415234545553096865115232173163780661954267078220285038054343346692406716476918042151662683478983037621157588912173135661935611414571601470464785606372118439486575267892089652460111097003955008817792392713300663377478101630407668462855633235698483535068744319641194666688099056423673656033830290831640361644177947122711822774140658764417847587479543252970726648014806452535741263739273265826366513767862163159274207709815926687498726176424168440774570146870416693148041654937978908105510438474987453185028402358657802703253703974550412493364966519406227701105595616117115223436514772049363343444025740789120199422879843142924380064622816148459929079159680261306231385232735117122326884841529052803315312349168722234484543954660556687262060820664332963878661582111412518437700730097267438513912839802199377691549353803529878558664609217265469803692950469590700875486241521643063323811180245634547039134629374649153156432925813783059861876058623962172775318771455534866290647550061040468054185803822887925628458444843209248846551012271182657458264067363633604512372210516468974463486679501743573012542056973839901547932686297362625680013074795295528780175038418992764997948676182907221561702861464928292005481547002438167199080832588747464354372099324857761053522350383087720644538050536956786696539675681803692085281193317019160446093616860255760983926368470337588882883823928326399127715213260397730293672480876421249664915816806894812003055673825714282889566322618124897927890291335540393602155440671991426127687850104979776836341124251309189808082070166129568072424545193930922567244398651409897896613200794746909405738640305459054291061717772486541915417320694199092091462033223703358669947776856203902003351934206207828290579345880069198857043146510799501234848436891800086834612835425849922924770610474388413330473006574040093857051263705132849651641441303556696698899775400309720958439057202030350990077695374076715898442295700316432851597700581972926933763278825776144250897543123245692440726489416054891310552753555364284750781130689487420751969433531369199634380756424250580992661323278680991637923697645391046307230320544029466273410425369674601079028722799562370618709441137379389715770798327041644110650513456905921115947770366210829622180946907443909194217027573696424890634572291158144670515986782872159705428857022145852833706191068994280800278456491491187164324804773449322397664751664079456734242482800106972877744194002031239606780528728693217815078731111036223011107106414564027829153682039903804487772030809004855292800074396644697408082579459200895013059185064732261179716229897882894912777944628975881047211055532324814855882927555523122312815111210423672949695704432483009085706497602596187864396508427572492216330517540488073072013851850959902112714500559777865443714256199692024399737919615936669897333804741485881130703244093228938481953869519594234781303361096993396940524673850518816064006447316233178038225303920364592728792837025713602287082551089951636215361309587242817461489597984134645294444958067542502862163131041753257810348029231547316278160959135651345449201980564590809358660912518750703063730376077643367426370103430111010200198378029354876543606669420145641000663842354659063420201712937704897420020625826137137929356013213254634528812761072385261118216415110695144320048021536473826362079782598441133827564275753232227525564741785598526000668870899034265335939702033031841505942936151613495261676589714231131333370258856142372122822173106944874610080962976050706785615831288451284107409600592896838068404186926113908635178869058510287480916072028234611326278370640274166603079723860255402966803991588649968584889965416438460630316999598328459069703349580879616443592899040394303299524739993123123793610805347888688043008091357483125965934145179250714999303172864842685527986812379156069337745350221411899406227715717839319546412862186285152715983334592345824950805152387848673068308405749853358365156799010611656275555607998049728822976534134783074515734136573301852210761320467093252419595403646710483797586592153808246092350728278991302924131353126045199982286005329475616997857961532080560639885791661034860395834500323376662624156408084369362475588590206265258131596848963024801684568055098518146792049916677005888759444498733480181276833547042244575695232775259991784220848756436753361256904983753555859321853492336265381209988800000901585340374171023252745000450783061593238579685545217355728702843642741478452596371110247192936814473381111018823869294287254264663729055141763620216185949777678931071702369238121292255066413976359399082674044361315688379952069464801838124402505673088104977505757511196221614329897610768977032777812792829671716371844174067476562204307784622423597771911465245721959910859617605451954281763599299831511765007760930413200483183190379678019755314659537686676169363732094255437150588282075548650820268699405733631993567563938960491730974201266708446210982973488155874017326603574052123364113884649939723071483732133927118995924902777845334111536070465783052557889492814676520346814173516120084625197510578636131739002726101955468509299930951665348103763617153496062322601061286883781192316273759427561461841060435139502531682809271666928848563041600390671247572431508756236350592202919013387562354863408385568248773122783780524984507039216057138161525452552100739641269736888611763949994324547477933130073304668703728209028317073649312236454210251986483618585799045038146884531421343951783125432548135261908853618221860023917271312054157570772591377576453974456851998984166456173860249924901439047518992789692170524108662775906734370373621754092835114835013651758891204905186530686491420923806688378032082451197498418077520358043597738696474149098159274016462811551343190565753214326719649356020261801464417970079100823619579340304126174914421814252706616211175770954659648984469395800034035399588214258366836660902232052393293993871563940639382874815435295220912040262535107278704056350054502987177713828654091154552594482458732797983375747089901839394721714839343213277210582621734073610739700528773313838902300168248382216537713321285716999786050623401060160442497832684908583539812565714290753842260958745136758559602403046595178951749886313332163622188956275923117318835055877242347417711874243960514917267298851870313691271159083349492393970474165446389320089374612928209506676277926410224906663542233988763138053025734061080054259017729258659077256288293033667289694584571977320229199674300234731574684792239634965205954585559795616742355866222312406430626471494613221665434115814780503862770194202494688327133452022502427667026497734442256745480973714897572229890860619464310942068013909488534067551103592101031586134782732784342853509180359862181624427482417456834239917653648940589078192086755597458515537905854426408905364455310421908267147488555193442752461691922230884226141801938378894573359939043212454053659342868878807671275298854666511082937842813468958890485871095238084146685928353016564473589880393968224932557300285066589883288183914458958070928626000016115820503233165523082298647561185752571573773624291202833524154884303399498951122686991885882466248896424056292002137107327494374914552757473768206280635205738910758471886754365517455117266637313134691323537495182695700940381678067000991958069116731591022860719340131737588929960776061137816249297210531023010858729049479184396169870170754371001203200940151443005410890229289751982916446411118745048001970033596940377707601580178328120550313968179354126276299839000660158555931534782860172169476036785320244229608180035199694570328193559472490786169163924875583423728837843328316427724919833991299178441038734996477062946517287841404310857315279397644186855364056088984138896539863268991761432029542676341057226671119607605266782298551125926497934780292601266682703873084554719559652016581959905023973205379515258370530485140928660129552922475998398737680565397377291856062518003440079270948831441936536629911584622200214289704933749495321714338343182606133464648541858128912114808246947281327754331337143231645276697371099972808708515578956281347218220813054066484031779572673687464462871622764067243391989527846628296773195687626621806651734583382909424137956844396198127183177038482886219293854687395916293304346327475503520345323675436080654532234270523001941219510803988978921339253658877219376920307034651166545831215825751657326767212104945709347027596925792510924646144528904001294282175045873771647835048065642220589948565628529403546714267754509174931968458589734842930089502364104888767050823541796647514684665574392832858134864153697502212955980983764436061388423812059018149230633779867523961742550854769359002896507968792536144772695861622284404841622568494554774860781675150069417703576930602318912437573412092735299865009802883185638273471639644735613633422732858806127925911518461621808124935379944964826096461773797112998540774398783050568170068969355519660982246791352248220487487934712396382263050731412308199191807695616434432859008859387713033474311979279463873849953443825939553688992928316399175548027631564235675535362802837922649512193582854793405804288822952629386220047712292797756555621503254247038724499018330186735364330223990132882439724705049338364170904595699406479089931278381105357519246207875176419619438871461715429625652824631605564056594343539441726894439981608427297253822790631820844134347181603317296619483952389047970390593391301797004041555239579487799919128697416509947291019921239027015360836112322647050596213709376799225533526363039923359321310177899022305292410137596122859576472259327937565022219220027734644027629283530814259032284031978394267488181722347062175370847176861011841430041674736541942160715779021372976469888210005394813024746781456096966342349913530796344471168632127774700357367686305209745770386297150571356322626480696740957564883285672620265003476613807158310910971933255538397401862648958406676619248963113728627115075817053229006765054895718590157022690213096440652529358067530837573194488591165616575730143353799748764520602348229395489317032679267138992441469152435294148181144474420761097161348985284456714591924248335850385653938395902881115238711450194882514069839893098865746424437460932700940540489382644929037476764506085504917942653937722647156373943088175862503721632211177296742852507095429539829943646677712052420348005813854117318045258661368331429556096007070320594313752856226627809707821906477117907783903831346774043466501989507274841795983852592013065131953325613915478080078031762949518297024320599949366888557592989916310404379444779479318058477543847466059165308480523564320015003848751154660935399969214952429018262710552335976822151297810279151994645612017785299712064330215928199427735995693203167569718228539846305063905858177416500502105064007956890379946131594243784195876974820201214277949746428088192003721303749609989979851147971185548139792676792341164891757851852282958131470495366982665686016127806043786534931459398441801091640918181496709384762686566252829257035798638398233815428596733306553004681703452422115331078129591056078494101771757025855993769449841805249061798563796970238260267335432265260898272941097855604758437877495272891079569714628402107101604118013957229570545332496371545855457798161780903498823374825543324461471693196766035630533685090418103329795644410997542411881271264342919829378435941997635521988453889395087251105489740829177078370270824148654508399853718095313711216733271423681520166652892182269051201363929373455426103933355051338949576827894960927122427243324748562950377919440316283867582189107643659724692592543653572531302500170495069838246410437167233790230271742281037753177655283338860985630624044652858249137734849195381732078293913067130215777984631950753492160399434395032316280754116627089850578021333020491978263737248184487463479854268150669141106844389841386376780106048355406028816606333609053810218427442976429765183988058980245027872410825286580985071946538345150766820525825150938036390367869144894291644179385299284338445720946587757947642416638668967598789737986438830782599901668948721315839134755493024959353390121525985667219092194456368324920181204673984245653895679498415810026621586163118269219478881963418631930275967475928364132933306514992047490081978350641440476058609789842638842563434572839127013053274779684676647955810827294046836622573189769752547719622542094319016569613940586089239237012306844692961398392855305852160137246638418147196208219441997990133507434437855668613377368309281763340995660277101332864345229392091590044882486112710563818501875365727639095953552079611896360929391708003844858465763563591248159491185142067297163497064415433668385779597388788404625786654354630908649315736528705531984821447684724594176085087972731069631771253809694536884519382975703259432296664559516969910419165399565019080369235540127210235256322652657474532807404854190027600409480536267702130378179827368163952165976811428489871414026540941836293485718848678709772942290381997731903105769127981224758299043512298923224070787453993149304422237826656266475732486404496873511674517155139747824449899397959775683722335486592875302034936804183213662321808390878448825367333203397562549496117343405693424737744553517893799475192237395102569804181455995859612798549627851179507624115380456000921727425637710007149243872949817930709647238625351636199841102410808189755140755661022720827418789526178894358719837745011278229988011583128040414275528110791462547994194716384240825842120422202297767287924570845279370179492784998298815923053735929278410721142053379599957675654616290570672507773999431055827096187428270145437006724213543661468343222866980052529562759766097023131439638301933576105707673434401765902657906399276866921481843656950189347269763487964751520056362399126975550558957564996629874107631378781848598876920126171439023528672944262471993852607994273649798114932984337511772158289413608466303625204577988854026046292505126680631437718147304182601558385938741379176762006649696649441048878678231578187003032187745816877851448464522432736127553519203120240788587977537465319134054648902201005624468686084475614276265241324890027123679275244605869096937976940396633681846825768541976373035353877506388928134056715739968456390948314898439145156821112686011409727983386755609440230859826364002328436525175441905826842972809872064987891366259106623039915891684230147811701602816000029400678023576223709961173471412282298671673735409656648644758482801469953062152535006934687884074435331466809451488144678757757035100724799777308444836240615523266124864137109643925120142714259259995292642425808441200371241664925876617794468265082591677366067857943982748506843277459647765377220428485003011685106848388921693541178730219627870567494227371219020047428842314148280478465414792576194290012411994120119106997966523572107097997025599586150651897426764347079313545651136690143472317707021825285211267097177749904669162248726516837903796485864835935254218110318479081350304069822323140916561627338993811697956923152854243692591757354138789325085464112778628532580682128990545052875956171461233899470583140213326540575872235739304313974042665542691538919474307593014629371158764684748642804342511756089520343415773307364729201378508685512537883326700529444206680812308955735303506604264381832836828173665222382765377414468162537724378624884949577086930183451547855859987663863268646924425968579321113183110678646328193280239786307146563069740590591590251704332375180295759156697477696134487274005250537681288507766281536092206730886007236485484066526980080437232557711902188377591059828970090440634316358029794539405327727342221234219012913040943350920395769316120204059362550437031613921022115129552957721670650685397314552980588009967468308942060483148429026947529925163526339652482544598641266260756242180873846537609940194129729438355686567480020851664987265341689687688429596250008538375633906535638601152672606317954786018977490787049838844887558587017161880865320851590578343520180219689204796694763387716709018564417128647345137544830657445349041553940526830435190843132525629474127870554019157770745575277043156998393362133056790806133922070567737478250762290649006377673568518016264154489028345021641463718342446177561411762514367976452015796030268272644358771214076356568283713614533413679754593213682481681578215892567268550027045728941711883100259233423348291950649933215167251274991953252169612701586277939231428813508811588810304231324717223641221840146302064270175484328103968978832097304975179659551981116223081185630456026155994902079636252218227178642945964727541063956434579984808313818746408643573861681577235281330005783688158701883628740621343258046278180479347818658833977329214949724916963109674816256932983323194364920207275744450191168664522734347891249943428419906010057165636737114968403015643291996872138069909030913201771664356124887906627970588648508739904057616846107967405972538353166195369369801746425528428971989542392873813173873922599451458852582412088867513869195605522331694854014134286475756271958116995163595275017120596015141002855076815785965845120305210026778903461161216236997419132855316673306524390438353591439670549209689164998287860300681906909993283604107607396821576386421173771114820443602015765733337026954404519889163671650539268209765653022743998960777954402548700675316386227922074387722594709699544464019693309610152918098184406864650846028080214055075463895395273452436801119797890602948744540933569799671802963562692914164543762676663374994383267967803463101903039033908669372811382489818629155251964816853671212511201401473722798407086983891311220430495492440466415929246487218271346934593887020497378053997328868227602756354197134851915871725150494142488818449682125069684770384751000107023531362718929625594290080732185244457710406288536446592241098116944810160535105704980443572030171802272096105396816127244805710553603334233745006783873152235608156706911623685327436360879898516421410087887413324071381042274033913246505324762737028426170557895237293182846353126248336279479823122112807616222499319306876748853792447273642016152197388769595373927809844545173558908158621204085435631995897614292429023158354400085491273764200837962838345922158596399727957887848561731052237249601864201693166066086735402181867078418206392254439502294447184774936202589356739793118415118941755629082390662283471515904800806501841927808381099063466242222719225290805891820157620145654600857324497479900062996697801987570041125166191902732652320236511566318620266721805194990169011987239833854039729956086734001745212787203789598753479261681058256862002849685833265796739140452271734145338062017047791053354664399454356327459460297230806763388842154538671947241471663215614796647285413429295645795060145378403211677936390014246382882655013926867122021141719236397217564800553018641861160543996205762848210216654758740072312720998330450695389526826403459408559008198722970061048033114039289490044601576066714333300445467541157374470924128379283722110890164790931827948355107756135240434740523505649900317125302716884641594456022607832607602289837046072864531218236275501991091476435346472260651691528912164107149781805133995381885137188774800197471499437707391975653931326845660965325643938718571392272881802668714485582527621095494431865142157106457789155763082912850026529428097215451494089528532677535148855854719321000865608323906267013139063406256395424337172798660049920263829692637767446513996677954279758134295956443390486923091791942564179066007975232922402320374147521222403059602422124767427306900754236360258603422484130622351999392923286648544526921814362910286732644999501686157407943757625835385349251513846840852996421570075310316763891470083618150819154127191045973044950498482633706196126356217123614730007851657838385148073552591529282582255158584742376058507771847693891702404485400056108103811120548867131563904981879989390543351084411415899659223596994845546425075935186436420383812817952747233355488357455370574717915467504069075686236447514696957833931704723901626780460929891890802917703395466812225926170296329663475601330276577578364547574549296602573062486157266211342129733686909203623165861934554561279000461539805601108910280904409069375906664101842290884792944834064807518852619757532082310078244755679118578879012400977012062620415896046613114232885403886331237853639923377900265399860487769499575659096820647007373887689565616018290319364466412379679371214657160112496198480227390401000493040689370932244530525171702530036174790895733669156823751579780686172934839907045060312807871814120053422803722488323027506303042550344157554329929351254633326670296796808757935780552834519230288181444243348815729602051937976445315677584048969113015818708994989144276217429803945982719695151503996203147320389765139319504304343817145422101602977701708451679237569087082948235385632416594824513834562817858691208482273671230546450229148845042716754146907650599723191088023552526004552406433473843243146000764503924974428793573483944553848425154892247257200045851311904549541483540652198588845060121797880840327348399747717844861852139446120048431181677032469827167311678629822403517569506417163259719763205185782240522536039517961592680286629540510250960756055651758949532957938095567797418465070100283142491692531896202335975112230972661495459959892603879053134048542821466157277347436289036911915358877549831945568255070677450190312433837857313239811639564904836129039114643230644880636045494458172103420480379714460337578995247663990492960494896966250506628940577846214788129653627951228720650500849539049304094921636349043630359857622953918072661776201141883788554159539459879720427294894120334042806711081452578512072039819806201461718493086081779173844945718598865666717478324261747445211677847765465663786298530615398023125538792793551596241506192620685488862076698767633222158969212155406442402623706664113608114470508284157592077896335099232142093476649847476388324225813753247141648661963745034323786725594887716866503903523054035317862156527259016047884425414211269533034548555050414731612912495924078769505801101628607567613201426794657988434868479969711128610095566976675610875020382232011541851370945112624310247823643852530995128133580681127072412073249828865841740984783740260795900139697169400279258712612418583632902836703156324347098228121953565206128267070242153434156108628005588204453859584205876661023218920351288258925609615822172552620473886214231844528481291385322228334795113989345736105915933528089228597670039107382933616483075896941661579111453277086688722862263275113750945721884184411454035085462583591834301712345667267004848349873501413136935916465605786581009583153155200383380006005569385964297264246466338712311546880849434462743381079693193825179756780015449636662816203414632188960925574780246617691157789578815113678459979910773099950717080749678718688228858430504999250861153340668166660873957511717636284350488296886714634352699081064078659830684551683403234107015866461762614981824293024869123804836436582870708656855057283267195460722886519517864744700913700969849975616778472374439440582767559061596812607783213838353330168248835663210708491166755842361650244803416888422061373982968037066186097541025537079574637433863708835687869137505439597710631623469809661288233292906567571191690811565811196147301146649315393992670339213521539911660670296198298488888715615587785861929638176387032319431076918925832243994886235805780061319633031245438698049071600109574603762305121626271995279308410675403342398000978627992126917063105196705833356248738589284113890860679711640060086325540936644160107818187904412234937041821370233757738239632233534332356491973993309226901716570559406132534569255755814591025514599749872331361884603097543799306166766774185323061602209342847454879868905550497774800694891129536503301208394007353870429647047152284039713755511440163286684070180361838464125425078943691062066887201755398439548831290940646100757871477072388946010449463439467851085367379523485743615860733587146781996481601031851043167106074805076273037554970086595878302348702895816699547563004420920298943121281240523421810046536633593984835501043585648173664972749840161212489783938061071425429046430696306209481009462265343074510244713746840428798558632293856618825567515013705052945994979256444225499509936933227398824168145153267734788989794268361637980846288773790772362254900135749666289541815277647854759428291103209554159910406167565810176009904072034016288532215776685036207782130519571499460601873586723952412849548406692701171556572543389023677858680886053762274781942919374812950796763689794658633884176611886378956446458569755354552749732592784084629880140197731593569142044427696538809384141621336871177138737030948892160781587333042632625420104050564885429481383310610908121991654960928940213746220788789188148042354889485318899137160341357173767973758492552252229871221142932577247512538698977191241468171644735476161477924416137800194177508769481014539641585495542912569792915353293598134600374306231590682040483020386146696061298728485265886702843582709615950300204331080422619144721111805749283774298242072858815666845201749001145059145789950116327366524652740869575743717317071920096465836975524440347669014284276591831777539962386441577087887189389783681787776048609774803960504507933855634060854804040836840310880942333299154136152616859811586211832549863129651649862878210125880772473021897301443245408160501719015956827667567460479830594865998894842979435296661867121912452670530251008932836822405727623686523947682356611266224121376866636289130037943121383643392635032804315560624839315125148640776249217487636760841903937499254884867792972570550800109440793196654065907965416620266896234089312003379090769387889294941892900521031004872088193985708095478814266475530471787848962502272541254052069285594159768589497197591669509508640596482091983629210174795171242212269950675507223936289724689305599976395240302590999550263376291767948397402427498254755560741092236065642899551847637857020296660734169995433169098699584898059953530836567889030701052444137941128079236749839694699950144232552519081414928612273667296484402535016282344348602282433525487697291290042735618920747952481486448640298758601869692358974505516006019678838819656330943418544028181878908962946281622962783283051568228923797650611332001886549159724154982941313690005377316251310930088841336724596305671072363055901333463588919716486676949850385623021492994164659130013824714428288181366957253560744123231521649648423667050739353844266779312078513143623828273624254394061221837458347518238368190861906080819738131107790809117788014139807182254495196046338534968057324814571762911582671794762143149008412958255134765923795448369206504791313099954028508320113262820823199267226742975354663799771698812171533354619545044738977288464098801210286097397914692681100552655427365086849913972074802672811916868977362078319187478664188338266070562474015800766307198632060307956550248596315323065868525908932824281754327476876440953990475694346208309032597882117650186754227274259848981665191822070994478208586289849140715699141084672351226271479919230197594344263436292745295740732956068395894826822393047246180710411814638450365330042210849867974573286531942611998002958134889487244127470858783134036681125195763417941380343237712956540143804174193325014324516927662705997811303717644153000531112455762012279671098673383206541749901075259894052390600266695131834052753881772925151224150244644688167223698310744951928140793773461466631822618478687210030686358319537921646264568191246539592175797994959663215198227916112791866626278976886018524552887257044990119382776224101407825042526938400618950026618938471597237722970653529402691863535404402443210692269494958469422888980322696303080431941610787247788826143737559000093538802545832749879645198754046104488757215443339874138841604639579793674113576388684180706426374520697059482759944674304562294792294206985274240982095685580393416435268851675980154762572001461615323401275836286231963203617945960084485100731434280044664944687413402214091928404177587939623008944897821389823819152589686673894068837640190799335468841001800697275013679903971962115607409382138344214130250903752343859487788844747397213450142631854164979791732372233567091212632517881544692543178889411508724082615361836392423899881747246655318773699334004024569449528512229440237184790358529365004862203159324988070894638744821386444674210592235302242465234522047235816211436625921968184846829641557894925135581929100095262270640382521704926718541646746736777467464451071474813720202512110754451770183303454332062915745889400365049590407432516077551841590525493640544211119655777194217104413456826577695704759797946910453306126326945318005845683796621110736382714605030621548500380197126849166378534862431214916056942434296474769661727825073564340946746134045301494676194764485774981256801094760103435250010447699336283727073160669867158428087064310894802043151043255373743395878741657786830143015704108031540038603137633191597902413423060554295667351837348891601109291776137011414373341661866856899996450763475487945208620250214652379120794294496592723536864456050883329774205126045992757698679520749331469680233579519281607888212067224960826140550877469483717242960186407686257731542380039717188098594702000295828123873105846560071638322746827222735944073302904154582414643954330579163969840861992048300348341672688158672247790416545462144177054665472282704628696785980244507100604562510901717388492702636963658833112444417152817885932798696078189449907510547442244033261619848920265335992481073784665873652133729105748262637755892692918827239428750099762483268933744291322484011485155751872261999535333392672711884789004559499538440611156071856900137370804071697945974728882455533702544709536284945890047644655507711790209021325826195447581507797217351879437752293608517586049289868704640154146629896741028254311730377527730978114833571295203162877403186724220695580871580551046887114419143465424970438653854923756517707409064084085621697969154599320485780310891715629291462085373785032729498315282890419053013024744007990490757438644822510255085266265648405179447336116870251156761560730898235835913593885534000787091020653636293452563500807748325585665502751304128409868624289390737810041484694756849694603755156139643916481719240071542735206193610805180224672762167696812196762797317607657705376403893917823057556773232150271012706520227469974738236813807165869452570274130904009486797172752801246243369822160671752560395182472847963426312971621660615494369568384935921619228517925909627754351643706257434607262226366382426354201337345360412077565888746776345312943057938893732671521285861697147648822237847739121841067103662468232249964798710325522689621589829699116469146249072245113641253285028417426327155891252342198672575930225283481061248724415990915329822697985713740851320285223075559083627965891460173489914515104440072241317092582338269792978238423476595420243225391774076311770603892569611063351586146796805715722693055328899581129739276978621369561460826356913766445290701651146377951915504853897314349803697749054123001837371964783676488940658800439404234090275594562002379110063580769290773303926589842756780113344441363513928934010902972036955529901861932795175033409415392643065259310845184489335134206434918599797108157087794450526764482953039213183953238888114676906502127994853846179450102046161398821545076532386020663804924643146805896574586333361671142969340482857425040318041121752513256080484001658711380895929875430682386723828150850929152180169424011161608755776743242335168593784025995531071178367202160116314776020083512350273034185092689718838955656758520605268636907836933042362108001480741480158166230129971031634642858795898967285360385680178135971257055975876484845010721616720808141737325786164602510551944906039448922756997816751377767935718961684568493869198352618022966121515710022002421299499696512745871042965104647939863225042807395088294398157906524422833538059587063046632758054072974378838354862832619929970058279923396814537717714431425606506677342317956059794473622740937270155761965167281654026609365278986445605963245902184407479952322617793937120740393294692883862072970575566946661879832539138637678220939466655744610447553310452805008847827454216944228842346744027187424428431497642729956671989995560509442610026080567545784118507209332769281674849593764529248285306893636043630836863969853402623724601977810495311390123655776546138499758308698174984696015442744380887180939780252463816154176714921290791846841209443294798756988277247332807687851509943420044297158923887175487665710304004278244157706231314707743736913908774370441314868969767464227691484707914328326557429391079003119935423027158057416473634893355097059152707295730962184111227065909237343791608638307774762592771270856054252157616400566728941832048332564112011245769335340721872221399038276324144585543558210468911158008827644237638931583458418527991925707211011854669981095675014949143132939994325292812897949884403307619338588003805887869995416499311037505806361496582391872069643337152917869202262704621380833911776533079286981253182684416881515371767303337639543448573906011491454346122677768056220125872004428102227884084927961253224187376982568394841220367890382636963104167528434550783907288072840325633474092350895192633628996551568406181522897830181055667929668603863562096043442641301536119566232885126493541002630638650532139839864655256704607051009085382798324597854162194395491543709271422208097363793242928829671974212324945311587173834747483143016887565011711856301538511718221463552775169725945478931190802250109117245807110073101947243947069300360586670208186719613843137534929494805621283286743910746210473543195359784246877610266391828172800607426826500925138243848382825971237274345149297496035797058777450005067906845785640275101087752913549475548390314753029640703142535770581015509772251634903523173848304337428935628756785166032424789989549527507448087248503407845432853946538984517254306284716312061470276492058243981506269899343673317325431458239606988647969762552012165651193726976223105244390342778983323326107140197454140925697652707058360541535623011247456648950842940080149384138565511757318194607339782865503865773818376900377529545657332129829655438035524320683706906631640958561089937615265069687462267273687691928233356745743292959285642881909091661330155728756784435623418101460891307293135910272180698257887666639654781628737603887950338603589995920105093308769547727402530721044626848220819306765896708549038571550581315079017485533081461495129947668473086617496526576162977409304027612257679038623617021597109778007247501556582693377659078760918144437747677547051037829494645409562095031131684148533639003771126668440770669829309768694244286468220025919039164730132996154544503664020543464825747982333309524514423423426797940629217307758189111728392636426224344464754211983010958256178563121636723313263739282750413954445805926905591866289011861930422876826561902299669903959078208732845324206387597784392632775309461612901652238229692526137385559893485814151617421524308770230545921648429970213965744672611878156344544951220541527386475554539278413548338446515818250302861228420115299843668836966105446481515563200960173563213979703678154940184072594629121489324917247144366130416741327600577531443247026309498861685605715621238717955967635550121504329682965304353148794067736606116960566175461346694233050955804372585171264025832976173491959178591276194480728488953726658227008248535591387545324818672029084601886059038118639899788164619291409787478344865679546171972901481337831199578561950646793259709980582401304661464379213933471847053188149090106923989842644294719719270658738773840769820769582332172177084466288972091992035155815634921102185889520038566596520343469612560128872652314640545839714304231291738485095257563882274829279066914165356735781079809408848304034814725456889021476443140693189900116558044175070642249863287546761065185603944800215122272102698691652601250026332217287345981066166582274424699617193302186278725751412478605483548870305663156051465824341655959493868151149294841157014366704625843860985996286711391205522131969566460567288161488603472404816679689664855680110937789869121877432472368079902497266379948503514546319055278868945732911311949925070269265454802992932188846987180979927199994536655175327682795197289940796093094216026567302848334117887207145044119600945327843086917981569906501547088091672458141198265242116526523773939868300301426756607570426383083090749096456701350693799894721074011681705746514861472247751408191303870789543424112891972523776224533198491993369656543093827723793999866887539650342928989599357459024677668312237618075805642860730038063667639263673494775378227426497287048971215598932209086593859918016731573330475673161760217276728688848984264571487700024390500744369015953546426829291367298246999400765816942447426999177162053806014912624783200679843122875801294609681406629198449231139355184799347843094480955360432641129411800676553247257544243771423772056806915882149684780316453467142138235737015912910221236515164557608150209291789082679630297584695371504926373510896196886916834661254370161521194493888910975323075798045330397873215505547279616834028594841108222842417045891363653578071083214011262952658517840471790937508256408818169211914862025093500541359853820101806625424059209487275094044177934737192453090672128815772571550773308735133968146761071624573120395025488823738494781405936758412041538387294422423709387228573526317990955980371800677699963873250576882014278616046481649248585158558239173340851610239538392759063280152380321147663991901661532420274959099355143375284556076252159661097178471820696094529388814654018236293195400811605255055489300204013545066759569586062468664038713584394988359020170615342814771690076523931213415123383191143626769367303625863597389632715238896597021633053258706486168937615546353707281571225986175709624924004766278664364456824400442000705063237767953590311347633385819524776046256212285887657798588746968612677297943736494427968897120819837492126971051915194593270086631840224863980762419408475148301132298176501243471411339275436535132310160703636915160794795622109947317839904515147776028479450403189992525804624431217616751687448014366187326929238403843816263245523147353866290237386511035363796106512398868657485256018041530546769303304130612834833118983822370220007278969839317468940989309607854869212231414742117516039935831270776757573512939855228240613000134319254980805159049856462501317878411378608930465984862883591571768031325308475818796494878572853365615077929664831461872987728028429226332694374392115229643886506431260873017116480425446677472835366555870993832978130338734453673496559421329266574967211514894241994903080910594891045189108279360370762145925407068153781000456212927811946805061529722448261103397531770757066242670039807250958274281189628424648992350445080946539173541427666340475045829833837758948359258598190243898615222908319996187958457895010348225008308362070740076227589929964482371056276036361439581579264145703105102693930227250841850448940924056556329374023713472800170958422563898709209603100907585226953896058177678791836884388065878535581302244623440333091671220641433691462152417112242048888452490206751793809456757299615573725341946432404821548613303910542316426040840329695530794429725122422386139988687865842424170702723092119943328301843216942112104626436073033525349561435637095298189818198095068584882337979999807790361828282995434813882822264813755138562312667067340716235925635338494667167372046166154963529029197538075173096016023930202019792260241982941207931814914632244638423968789042949297204438979462091857589783057283424641496901159785558008626923034407735099508332125746399365480967295029667422951888427187552110497060312338433270446116787682796181820147787656984221576576124946880779657739029359756490786857565112704809611841914606349658062322360862320537427174931069245297164391360274099567742651053411038058954399949391494372647928014425725005852946230661836875953891730642654722600566771954948430294491702187750111255693819241233220867413266149252168167208661463573492029487107928188223376742220620879081806782043078771209520592758032094390389648237142086544631023988253694444628109043259549464864356495664023550779477574790127743174160825169658747845849097033645227667922063252558688815205815636800759364416763741693862763954874409509617292850343565292597073065977976905668105683569132461577537122651619764285515847434372303189424524306604449218608781610995803172264760044126235297117771299970721663660651369855429904534910514468416636432214856001222712873227288702699673849301559620758596443960732565925744448602849253938008801741539568340424892288012298168238770775917469469502401284917113740460242337347373983083115377226114588993786160783492465757273568196764657452668936466578702636256375692598457187915523129107816185141154364520684493551405745862153675130205039056208619738353033241511722521386478092865458868330533694236232447980980490375643261290403870867183073750121953230557226989627990471186187791012884425417405505899683076190332775103165575400838713518942618343270418226919329308523416403577423933381465406587463014262976528010831475708167190399036464743598423230050412026356755809932625634759321356675557721470625459112445692667585662216826421626492621958431221208217499962028750769978446012302525817154230656226241239468235246752549234553712494015901710118948572046772163232492519369488292866013336744116774939952938086241901938109113331213794596784646572337692041169243636175595300727680951919415015116266815875373663280751723999664303277911624130975519777653721926879600732077645033018697071069283872390027430587556729009321408841828802515060266304650782483506515864521354268432895049859796322200938752355605487284678385078160914667670665375951936603158866031861751439509678106794239750721044618514688382583083244358542868638187878120086206035077133304804160972011200213051748161040580958906183468399038618403290838106197073007167704646765914590569373557070580022138170050185597149624720960160703075122730335285604844335383440615315528859288362129828412857587201169644888856650017022542500560450233259633573390817150381191793496632189030239006257175100928835724634806549837084958268062784388689476687597667254250522738420588211811137252100063931712505297858267609616847651023127406516098728892746057048337856890426530110727621336346158962332897858185414965903940017060695420077406473845492929625435612004553190727989180602020456845542732158832922312831358108075325619358610980984936495867429110707446179181444800085473057937352517670156593923163043896233139024303930095265067061933088816921934047375853541061841726762808123316996765532697753935326426742566963654334393647378463564249225609949806537858170046347097834622455154828374279857580646513879160259317962978204578658699144408828752394626805226399343524784509662643733416672428065219714139003236042118563172631754836743756284949915848679035303909775323049130527283784226025616930804774986314559275092018666910453001835960049749796145964405314233371449979364248135095783620879782345913604344856466533697897439254539322823779974134938255444418537431641235511802657551350187435869817457166088377515395439956775694822774688936570198350618458225295837999399504530480764256436460279130469004172737975167645155956632274683564565310473886998195638571342448915275498849274321275404123028447556024240086385295549099102003128382620319509574846108206634669129785393120114037275648833131941202797520740146260258345725854554031662797753732232562815462872948937718066431994961033492452850108495177956803093225265845749240155585347517407541368047722543916272727070320017671282750451065129606413580778688060496115764955822076169369625746174449048069752652725283029041607724165309240310396325791151776290526256988828452515153691432470903422961343478157972574333966434093008525630777800863868192533400440731904167641837391806028347209108195301870510945100106774969426194219259631968545567742323249203500619063392580506338663872621915454686847750910531537498834168298884285465316677811858784109149441590180326496568691304891659441250026106427681880995145102774976572114351364021593702980787343489816551824176552038539734376989038431398878184575494216886519958735154452414506145628693385319057655772921263215885626185854361181911245939222600361830692455238776279518653340632714962446053410784069355445924902644889599459521527661840226891103080670658067125925759785964459920712926520194070240664417524703988946338900192453052636997420393652294012789056268103393457796849837818141974131323843000479342938965159719385008200063615234989237722205133177362309698929551248959259532326052740104298553659968115055475841950350524058451553197369633011419171763786319340601153589563975907639116989918812387706968166004253390571296537236662190562525962867101214141400387131598395558213735976041615473156617605593708033660754640598387629712986148779238194977194222844236583868762601193235167719936575600843757551099927713883694203746507189079689062768521525209215280999880147969682778460332892467537407477383363101699453887704110088833039355624909553177967679625622942581189847058197507570364045015346777560930135379478949945098359318097387016879414732824336164018659077002731520046234817555425712909032395818148546043525550646479150623104386598079138852150210636495385844338355033665031263365203750669598332073397604318654001237039383029693456656834186029415031928908345472464944046950188058511746058102002414874991304690211624508467819816120658383367980908181236798933381904702383469625100480790349085198104992129283466481501811250129072962121888110828157935505785195397285727255215897056756421884799675397381688434232248130447556635124973305160839766429484802969845711494262213274145069230654075911612111469599039595661072485054951335648143407306371901636630998438428641466752787991342117130420850386739636179915234204728865329694287434595913052632656475999128086251157449699662515988015644458391316844092792790069597419617657848558843800055014353751734875798000400909456159434129438984005531358612154150398257392600419007376751985513421309097250206725710649683919006022481934446316173221181095914943099021760194663716326283883803254016230520198458309782104330796479815739415340319551220332053191922114103102596265771040939677414136195210289368120408404975955538048712107384670185465611089605836101236414890753219506907101832995666371151806658586086930997341876680526561088686340812587746219768568253161973933790286651267707525139140225864831555566606798644600291925985644889744904131688485843790235150925032324280735559546853748347153721955787734489752331695806879550507908809736319005353404237914919709919720519073051909686621922826988150322503031747392115019012371437527636539178282426880399198510100015373954527325443715573129674872368911359135289069161721203329402045099798546866906878735531485551326481372780206090719093103718767699956686884852058348970408980946713667602762112463059368484009845910538465325280719702186691423403739046813546103255588597821051596139702964519819145297573980066335423995491684291927318392044145901954903641594241199632060218865231211328995445427424272292040582110914353825119721790273848775369369272189463160008850373857300707264133858173823777600576928708770928798425946156026229754232110051471375634180770187702114661608592841186514116881002329759366848373083927573328085609983782156997673473179039165806417696926970500945645628603149009920091959752122737786767250483695503363127041234931064712099597697243768505974111640048027870073958138130308501604162400147051460063444410444922720336503135513449005600459652889766070000898802971684908739965846019164762916169668392837169179370239113209328525878332962717413292894405618696502882087103786924690128848765941381315242579229054584218735020553335396657030959375045097614144739132158633711774347048207294079627052968056190362836063908014684893457475052384993128077296609191217342229303200745290485730762046409188983643468825736200520861960399758216421174746085252761490852176181279519235181228372808445390532855660364531357142360918697214556898328043026770439608731435466328537524813920209773464244823145815961940399694476988839308586980362538430818353327463867017049431415266945384753651563501542847420601838535625248681912518163181908235695764101697224792613936791603998745214829542371277711162935326697735633711968972571392399198895625387283571723213722741121002845393429117765585256668306694055454037020591589512682820637152497748826380427649747444725615356245235622187809542030472729663810298334366560422845374344308701996896110841929720243381035576724881490130333718907675181357075962437684742516018356783569252746835421510154899007671628565111510978778549261233383065739104119830186138213348098223120570844329042332473523369485905359297989057256111947406001290524542623280993136306303097255533926804560597832630562386871489894826490201920291646908549950998140874603475362473758938516630395209290763824786882717925892205097540360466278522725778698355210351235148132279556241537098000743481881614718839284559472002390583854364640652115331200166328981551303102265636295594585073268076972788070918580330229710583490540472374074922339098041194622502210507199447841528094287672272568859008849505633291254521634572834169397121063452094332923632258298042123233286933084032398365660876986635484466229103526349957200552486306602003555305768050576666281881442214527135151742255593690740299263397202568572233427901048902888977170188834183680135030890184742297846993249942379601234763894936811235904100227986141524901522338527913416700335527599351073157483646156294395771759847116975262553580234156233062679743451261457141373497572141135077827633892838926839772167781743300300251107132138904371138011802640008596852711971086624504781968990819898309243464757018908931455080053172934289503184498924004974174216346869595493104546414098634263295101650822063009522104444222783322611434902949916934296400560739830467880251848094694122721824983746026860183834152443410799995440487988630944428315838983308119901465019303101779226221494797795332761087924340604675966609490664737483386675467177469027553249715648113659212261358181626938449346979019055450838204503233145440855702396499530683583777399480251345379385953946567721770008669496216941543475397053688217034828228995003557398512702626652500126078443608638685665217022799436741357672263009860394928404414969395320774124581546531448143189792722542081197070924661127505496733445834858928582481980470479035521025257471568164218175655144415386335164986105060939847871797029514741948207582301000526863238790070935784617208213716328711562561964618430707336425472389073256898661508424785596354490629630422665296067117567376651793992940000030876955976467459112652084359748140451489670319813637183129294810639331647592606988420671603730097007321915845982365801725475359318839400342665856988605596396843392827150388646969661336523951031316473167466638568867444328151304348203903382140566569032547740521043362353217252818029684292234492164096327627450190749095947344522414869771772043390596489967849287771654712239781778299286921271892728973502082954208054237389256731847433875036471094257130911767318032683616956075942118073755150525648300135412379717152762930533979384804322943484742757221998586691866458225660284833885425731850476218672532186710546160287417855131992805691081240459406310566705890828113055584551355087613837661426811884282912565870209630992618728480170042960362159458816596933927869787004053706419385415849003238102769149517896186496575128079870566635891770411966166754504019899207083890177581515654774553546042398284717251656543737149869698499918376010703584096445628393323030561624489797051972661168495929225335414125609156303983169460714113375761232452122309739566503521193708650792348470752106626479497198893111526137217030668334196162384089607070186001193520820869633292758976945995832240333953482950313725712277576106900056845153930542223542100273972515123763975351878757341230205227046302112723113139319546256195444495700692751729103677070482178002163322233888520881634292516886688353054011172522647101394808906978188244093514979368950009790443858203513412118162471672294119529531864085977922415681847623358156988843455019191055529648104998722162117058315595826271059946208018729542893081574145098493001880006974144091821063800729913695840160097684293511870532062763185068675217453721879036394496605483136562163388136801413468548284919569230408952504514781419973768895212531724394708464538428749840556744974155784433051083292919980909978783613854429347596923828571118257272790654211514056423083716659519586818179091466442699248048671281740123788251333521953598365198344531118374054077920131848909500111348863099869792859696718386313350938773256359197715760535782671428628937322297519877951110012929563911232886824064934450405422111043210172624711030928658703903969705154854180579633356353321697413113068291297243954585771879211185396464454624754863155727571018476237378137323659005322739135235033714679493260788718813671605039382710015014607933053580747493067976337811221557865945939068746727833234036878463898730198835475380892017299112800549068357940437836179971687991831633767647604016359263970186029595236544131730960888976965578120157908158648123667463508228141911033236885688625759898872520730619608019704222874332692667056991825886226362680227564402210464317887424910050265783959946267518140509752436765527609508594698326540051874872163703279737142422425303424509737319492849888248191648571117246459370789376899489836587617809928291675452976444330914863760522403034181980465740630931209427269041557132361888651766942860861657895248831705302323199397085660223924232488223346216092567012791886984888656165273188250794166163461742383018200829524809633188741828862064739218465966624480491113271839765361785713363672823707980980425177431476782275833470667119264857678083541926345119583372398747540517795951150829179498067756817348996364663457421977994853562480254019279727870067170108069609680265224363094885508604884350139812947416789742289671227848568607268776174045133181738188211584021802400235772127662421355670527448571062597430419515736420579447896551991350085163296235226487769872969159303841334337062446013793279848210166881231775155907998255857792652685261009017667567068762059241889453277756184062613953183835663696626574493130813187609784424332501498510920753511838279230783004358610386360376926442546475864755163682351033741806377057044422360551214212513449300419582278667734081741096463462481125331515492763869409625506744799341929872035886612808586557413908342992826260978716907388509948412274489991835783683797194970394690798457178745823808187696272799015976977737689558969002238081221622352214088323655548666803189951582587012115509330003161344073062124214411959698595707155567565505649722706801419703529136319538897538555908732418798341744491606091444360361428580168093450716195948058805336747422663890411487207561239946991057347095892700861356522523921781860055399073529094315283800550634410083693004780426946801037516908820108699541528850448326203510316951101943117004313066684312005494450122421317408368869246135873299046352578397224272032508679469178910849073527617579303944974720081376486164157547969310500088830251846297556155983108082680185438070640347478318690712560368550924577975707823829766500013372031158757940214971647932165842678545606957718006498170086248155999113044395040010813578731732246277357369371122626678682304200192317008893574322969876109265423955795124237164638441854335559240522153391883447138426785084494865809402634534130193577984477201271428790752069674238457460952684084884232872200088473393764434652950642621080810123055804159491365291945428610474967756682086616328443098667837235215783757451800949113088352187587887211764345316198771936055038333651194839992564634355688922276207021299420291839627223055253935550534778939789712644612520769697379840272395625302850971745359025112820395101453414264433437755847069375514220318586551570971555621134764417817865597824487400734580445600407436908021502987487825930567320045393134839267995045052752249926044890000143794334150092878405447556173392982591858662650562615457359618410994518682132100593364930054494673635268385406320340891161953108336165513538987280483157909366635837417321201963883750903274542256674503597203638507352639632552630829564641201163387115232445939046272888012031415098424015924740852380601843105472855304747473980064795858180280646053910194174687686533603923070970880777331120061411506090626753512110254623317747382872154231361240439341114814536207290926125052455888859418372876081170059710737176329288360815749015046811927949795456188371421159980467917609184184269833910289474584839907510854759335216380980216370048775287550189403274972421718362967069432725084342917639003112919403172804905456268395773727929970926510000835330629964358543684300108001913421730477962695691794904054398394243479225465393499855464276246013024416838288854910090499622449590126537337570593910540555901547665637235759294963556672946285747615374499356343972671477943067011340780290012892571593126331110813908208053508427247520438433025647860439650591511172817298751748848430907952513410823835289938899128023392092542354513465728614897890551291517389489867578479903751566983221520213087169680072831659986694376511392181817174940136040714028164175418878081379069888381800960755159189109537345366611302323325524108306539289489334022739399665585537377451686653872468585654426941857427915959763994561661678657233087978106240692508953446674470086176724695244892806455780924954963205116207053881764906477732413873793136885994364472690167816155206315763265202927310611532411237242622271702972297840760457607739020383535108359529766599894458933855755748815876877846380591353273072505387256783487151061593712729625643102008096926327429330380767525994990011343616764189902019230235758654503413476700065219091559032908730251040340537587754280656874048342813410902014730808644598802987813050107554691596583520818180076367620580650060344874624960088633089525760230294671136035122620597626692981417312636799302938230873734961110314383497943197453799018430039597726170389724050599693667325138053493977356314001380901218013593713770180166030535580474199267030019933994169484075682800202288649024513142156026218239283921293445743976015729473448745662283824417210705535208900711855638227393888756913290116896550722503590728031948024598810030377918244736657679256854652479100428666546550006140737573043969169729137761375907475305196277397736787998167430395742156058727553576940041451108759971392056016583556291712640844858972526058246647559533280120302135834851893463958051715918282649473071526916461383508589973646058907989186810440107552750219429555413185844767759856753105733790600145388815370223472966761711366066770253587027127456789799405695281794615887549750433708643387971521055716636439845147329069644214111691259979986223003559250091652404335965095300773008289786533146663075970243022910421950038886615970039290084611043412703658880471451350521657068050585510985126600736914515622231388473949090036122086693243669047371640573051439267985618863486167045125494557214901175320128864793993309427458515363704897806209627188694541427611839928902826880123294128497308772682176136048505407144457481858483962669608439821688698817670122024193988515341526388767504623360089561983560209374353231873745830635960679429270838900788752536464797986474043400623841797518550167922716446692826107129669129314198444887086076260903053292077556403988605528940098080472867560508487377456774239996201423947416373042038530672264879480073518921360742491323673152011245101565496138651984350019325773957239005298134668523967641520957260676280882023380323813742909323327833330300988857794050328660477367150800207960867839309551307283433158958042755685375234651805007732608483928179967036171318326835798028241096577577604975918015789611633979177972341149929458307201606988720713274475011842434306288331731911723205368715525855866124863840956683899969347404205057907073223509793261848237110943817079226474478987834147689324781984842887936904274391228227354313095826569444337750484006950043567359922468483368875975683086432227742335341517869037190420907102972502409682980118725191669780835770598770277734456406214085894548403826041816436579357943362351142266931969669692693432192521916684773142920907342326419796636541947777700792808056936439043292420522935049123835603634433067207290956531325793526287090538622941649084886569449154064621665290027818070361116659032755031194928284892566386631726863882124545686698205209806022300416193698534061000266796669521059707815546499341619367452411974093088823193100761697267037752787389423569916473483770591254230078061058445815656823333824268662826243976353726613532464177366231574049681701477965227279752941646330324280710608873305039996009151758596068980965810239541138164832779689433830001025529496299256847747805767773201483388031524890091281432053423659050866327252381213023046922687772862579313557005493023905696481114037726474263421990851463401199245454284318515089454834955021864052156622547212843392064155622202363593022202398811881889770633385139107742498731066044265998122356027363053812077160436353696961233854127754541830063303716166512974706502231820300040484687712573475694544911032252112974228959019138106288645973844681077417622758913609600831417928767929130966948806441662905803942112949020438926476452025244091971364086139227416439537404343497598810810710277270357736334572903158208879340314408691717950214129823774771151805635672530734650969657932021545186247587963408187281684377457957468443254828482858115462188324813326556942940207489942137717111563852041049837071018651074676006440728461680064705387390822743975754977357161303947751764563240807070862122968176505913953707186013340403397014016679542725688395209835386612894678840519436338437457522300401130863526092768363794326896679630451535057020444180728493851859208679935366118859384480685054488341485022410854604979125925222350786793871663133332446754738271192583722632202655357069021927886230039578673870539855436725386530637630107134669595962974860227776527919483900501423292893843245734424177058966534735324407421918326914459524352588648828154886785280441950017297372487829163397215063270366135240178405503622114110398305138240357085422706654290028431723399838073546159895042458017512869042222765022614923001695852401890545086077942581617915217562797663106929507537684738663864062454379497329701549604574956191794513679662478420183461382160232550535601395400340516513066709508152905078345253008037872622453708952713352620878104970681345467210374569919088715764858181953173721984722643916948572522353767237062236838022768290432321787200803077050542310750124488727839772763522190900458561619254286031391537061251752469644726345203978204882844187798543509335705804089738875695645613501581757173125673034377119836710546865339331298481093769063958520617342964255411033395275403763729571930182493435068590678693838266994325381743165624238766024983257998350357398607859208615698465805722904087933538398554239751546205941694663440418006348331045082283841012414336265803325533242085492766120997525406658643448247470822560096188077808446813704033814450645933107569300166383798249701587118933773395269718211954310861353844953250015661144323337221034672527956780489873756446939851131855269598573449180843721534194614945197674650619016271863730661740854796696030422450084093425645617111470290247290898579906469902346376569784676616997733993989217757092830393646675678032479741618628797524189130999030237411652548674980593371323365266274737192517360396821244237807091912250562755074138310564459640868419442641474391912632713981543999300068251515701951632724982401800439727854070871334902530602648543100606871740623359558864557224141060798431573571488204888370146687978984435572648058059772338857754263789607886758591988820383752285833979792318694400628412636399591855577370864572700041034368785908295537088531346024404770383571015803065624591223209583137751499868153252742599167451968558713874005030428893868404344421043309120332176529774267588314432593326891541786400247760955029639245251960091967173064913023240727907972900367411234154444203917203292162251598277882593751355487530423562928147386632041912754293066097587431581702913910816584201203643920709437421430546813839093726573471908764712420461572403795511935140112116269077569252386000947641993150835983712473538050532024859127831341571625027836475996235045597404940283597708782143608058670788683408969913472618003004668808658144144564441133098625493607439828246672258956905648189294583917851850363767265767865675474407824687889670428178812554978162654058303707407539143351429125925927759402715218302660277124040180395275857646300985107708769000543577130369488204630230615370953653615539483747641981242989919392968328908784120921438790052964171122488476586380804022070604321402489064709511115548740827768519215058928658472477936640698332435033802348823647628085044899275043231722647523516614702795294079673799546790048353920362322785669003878230785379441280017513473464304714075583764923204769566477660037939447335961450038706705649017505249511339008122330249742807035280928571005687439067412935337133865307308951872170678476535785776310208712760881819167771185571848978228334967135923988937265537470888185133188872126739157314815675359395612274087291326349542580203378507050958178406630070212831427393233448551005100721817538212253863582991178644195553687469595399362287045000668872055296856381447743261801838775173275050815019387555152920912058411850989218649552275738380235767934184676278057706667424760194844630876607391630890966089024560664977448806403506842505674115869910884938640925157254718312316268485225434173067901442758218547969975613858523451808492339315264612426460179435227705965597882196148495169987884916283103853210417779106698012127046360798439696029985756001007406494945557873925771998966819352049321761676624412872889989549780858970607623181947584564987544926200916239079467603868703109500539030208025417589896492177073384854004114994225307765103828808227789855592951321384682339455669350545334630266279009844922266055096790751052933905669824528378388509801652077750818867943642466933520766243475987149935871991307953575807802723340910702072220589062328874345165261739098188374188458634706403973098342605742545118350984555248866845303240459661954325571999863122570887139250433157980835734357563585516771886087808785654332944606153027304968813550885766727906058336334228437439956217073045060358131497659024583603043132508088892853929428863160794141114393868493395288791574004541277997060692436139879464110134428710436033986973110519851790479399974213368838197790724456203103523205858716379190174575903503449236422842259066193894219573645938866616921171168110134424705534033481912381504676202745885789009890691039323407763120652322299612969795865933798400346246565232449986860291042102434196299097822987588234369443160140248909538191435114441596723938053016532821731807940551341154019256359690490263637392148459570802688313242625163083134734313754319867473597905596313107200906753966804433458752951719045306083948788356609923453709530974152585036462051112015451304387638669172243651975900274996312191875678727957186383630150613648096936879886492894777436666805281369601908503432759152486655148215468059113620752296410646530260897490590774273138948837047247251505213092697621015581353039171835421061140543855992992064742993432768181021943551805021585424467446721906714136509440089950854472262673115866910149411715530664183207959914115228932602261081484431646130705600386966400404116114279285624778567266960425325457658371178585946354876341846288227944003352009073194932536308600443461219205251049233497868799037874513495267934800705517930554453147216167198319907075906305969426542101384778472859567773630079247796104470767071494119107371905412022761879483873161644193380532806020826260097313785396247244877547154687824067961345161314342708177320617658496713819575040122444160135878664822042870972136517115397034076145771698879017054335223618558465394322497530094414820559876522574875220937703621632400449352424307956990979062091193922851102616869490426092794552001580944662442615895893020995568545588396900696734452749335502384262583102743618218450407234779762853003071988109922576857681872633389009418345140061987282166831001729928377035011217170448341989477124083247115960656012900385842954481527295022249628504074033263801920422397619209131873073980824708097412867892160511461660097333975144403051323781684412227923242772300014022060521032894320736596273140530339417813113210132168220382537759280070820604815574346694297284848967005338338253202452279215194309259560058919484510445890894093256681270084213626117172391575142675711242153495353250900679228164247507312802988663820027096364950078869080531777900063657262553573170877916346931149156259024616565134701945395127525176206034616755827636797027979659509291844193142594735730120063462931293163544536910097403578345343799059174759429411758515199244987050055373142144140502670281726221033341952363443924611901785778885871973383853426028766876816416596261626994358511083346464646720826083759134762256470031960953925351260301362353231599792015425961141217176221835151764643360425877279060658794014974481108969383738301277093781041916420480320582174407869221122807159472320301020694964751162566988202844733397804063616252536619332045519610113513180733010718584638385220686275400628163578086018626369446157388103214615341333988048590315317275956443565700602916599852168687928985269808627956918966044684743876320301515998941179419689476747717800057287428897707479740328028659913744856060376426168688235103673825375077487447673548598703695995956141047787217434484605990616496692262716709945706498019054240395999312805895760033058283124859598069305301761088703672011755145034742206468879808573358997421103546303014151229506939639325951198227276708337654334285355428570410647635899675948184929254942993029698475216410596340965084562497006728608225930750256704311801512354263708650876782403462681756261384812901915617587594872305541744809234503395309113645814002409900317572052903283464093229351034229704623951975687390080994146755957068209762588185517044054818765073642847959228831113329489528597652846688783542360794173175747878104404744950922064151914599686038902118956096201399757606542937256895903083840004178225129244763212519795239101619296448494002817171088527692981338042213342559428164639078302910809780500712776179348641272703992957013724542682675419878555390827304130713227702930032141021876924793548108331623940828688976195792096478362214565493203877026022459660350878825115732926613707473772180445738640945841194141071589877372768485503195905681422758934025327157485486346705497419426521567898735147253870523130096586298916857745421811670850711697792703844541944301221912447367753055790603811425549018644120540329869328383228695111501928764326112172207554608328586724044043803083729265714844902316652478682171295187196798711155066463574081471547255738207172971312351503503643998828383397050243822121718526490856415322034956987902552362038784883830140272412015665882681987169330575829264228750428967667389288128613921026034442030194681294555105819405082796645113055252096264719566399517001782363547011382710806266900242967136861070716483386073817026210125601155683505981270634571284716924833260052531274211649341493548872059789289757844547773094461354105861026671415731005747355630451001483239708665934798220070478434378471224115256236880127655575822643140517795453592387860900148401011212017791751434086726257095784022168612233856990574261964522317118495566705296176893242863839979121592462731901779144461589432645172738028215859844561506216260760507796945375891652005199872845643804445066302578590084922735827657961504600322285811958785591167517376166997957397952726470505976293640117081787166478793254403118487737771614867183185181412701936151363114876289578617696000127622505116243257982979061106323550911198457148666969223804404514558539877073880372221208998915701984382235899129171412988894891808951462039436812712191350615215143861035988559892351133069495768494807300139516847017284065607716837871679637471044878139518574595863250147045036631833087344499634803923410551301375384848350600461330698672786466428368663068630019793484467985275406408551847127233451606412178013571782920391493862290272244685828514968568658883632804521813906841917848901207982611145227418073839684257015149044321844277162538871186266726561743096114461695034704049861224451209555507303142631841388630094587502966772232893129671455216253473905393202519036282937673935785104451051584800635640957445881502953077301255908205608961919926773011838513785233062074739934592084572510313477662466723417419394626642425688622825254846313534611978598482130970965554855616128300078609316716730529317303303721439684201536629562060834110721150742207058789851723166908346357072082041487093422814704098744543286015292446690128657713921995562146103556390766338979268136487193237279489358582191926349862004982130515364446720190066589700907004758398448106793949009578912860239079261372654444412259067587810170493865250453294240685356131570240225255763999631535151721263430506361220141733227496611150394018567120100122708317258828002319224359983319737859221096325912580589987435486175176058587463607959666831425529943869663090831354160673836155663639744630192987148814938804882169194522065102880740653155108668008015190499192410027342000559242951180434073148800044339038864094563834621188352986602363126899881827093843015003724516045387947986570356954154649578066391625552477243151693768299571670423100289352611689553441756438807000484111277318043206906776355597660272616112845680220915600566518668798333416218446861169941687275167744892317354080201486855408916768177682647942308210030009090040246196295887688614577458146800544839338714448071861045615449408960304038802622907389547863229134504126510652550250017096717198861483898216103883420362018557203937391598449723006455552900537047784165498562898805226564667799052139681058997581066616513347444124768586873820264258303906935074348864924141226215482535238875652055574626911722668090435215700016948115265082181179677783518153673272906465214397710389318588987966223105471582295168808066918083456956003310787646747008856482405277492323478405746856077335350033585181737246867820401609095139498575979782225223368201073557170201327824820912068492239247692804819959785645644545107490860529381724931613407283872959814724117733043754816077747802855610774524056885993953347525767379926156992415749708602605629186218768454918568057868484181508880334832082770762950373748402365173818494119492692070995022210866377444273700660372982714967235718255776806010789687477224323568928625951286881100715907929170741236013100874590913571551164823547412978822255664223028349891130829305927247950980473934046772178395541035077115117700437173676904426545867628472063207787290629055858919311695721298708959060785106867425656772018695213359071094367493120138450405658927691741013924077403050138793260005053558094306965610951446273087820136637831756189753874619849575610873613157708027623315606547126072721655346629732322056929307856088175090854953082490764718758529379471780789297490211701448338246667377314112699683516398728817057235444949446801839263866544067846381488262792034934312124601481858719521551426925794361135708287348719051861204859804179256010872211872649935901881248633041167012429598738173205145715360425753971247517839882985614783187574619014495801581852854669609993545349035553895408113946856109518697436001807093786763449723265695178326152344964314589632749146233009058415280069252835102006851245459463785438194381932425531154818853235022561890195399528256516278112527966170787033371320945418707228616952633636361929280770556247787951386802534279808770870853413232106145396735989121566196765336338633531462572188460057039378599264880364340503979327762223198091441395635838185044049921315392620032623007519894926383209377817604722289101700241827672926148971280032048650755163546806679687846950991807619638429162491174754006588751834906411901596889250462558771046374861692904782992954026336832490365194169595890158094806171983618213605268214575350490168561558153633426900351355888591892082611128226940690471270962828368089919680163204600025424354338863075721930682118348802046614248212291609198249175396755332419317315250399687540903556471202174668314372988625625236314466773479459128310622896371828065383451356381491054408173085675679256316590685693840462881971879678768880382179657220446335520427186861559571809284801584325142245609371446776093411484505683180851417523394322735117629856794000809794554317796193228481003184488555427397277944505398151311152297303807863920698993848500259970695848087791376943983997691032201491046858565199501044214322274066456618702027813151231445980431307158694136253084239191286172514929602959721567637535889028148913190380633379088641895699515196522356722266635212234531961635678539867982978967033746914597021084498145228335740022353734210362933567911074732231954211719875391030554127364226076018459784373642599674514306483947235724814926687409504389635885511884341417899431829668511023824098807731176111376496503113732011677710476422244450050402705408716985202185368557603130913446509882885510251147606188291318952714973195161579597266250776287555912313948162461321217775478150187657819570049446878202722193006832205109439559370549552536101686441786976331143527277265349143798315185463743125902198166149709593639984272652321939140192376840143697350174638592224932237955952072220684861566725292632826123611627543116746170655125711947991881630751110327989672156493662979956069208162149465875855521632148976253691230335062218746702531097154886857694005792359729950971386127320659600387343135979030983136426036334004323921303326816629466227915647155843824096808961794835575890322422224282208216239893079289660813582863397273761514987147374105584506516954360792256148859853806781418327305717448362009686795471383916031472520738208660956296261722751779914015326532326063571769608168081083841200330203894156579290420593757250341451008382279532539616542641184016700044003339209062941657828252927962866838344863738891548626110793003822468919454107008242900039437720277649066740369841637582521393446052354060340567883185150241401316565204809469457462312138402199088785538165098826056070557148488033330336843893589188779472830914451058716282581545790594490191971387508044148900019712487745727480020583047996018023791451892045012080663484733933467145218961037858984122462484862613238587859527415430395719864572224446894820151218537291872522987690621321082528093295426651492708641092879123492893916455316993190234306881056031035996382379184753105795802132490930076205607937779612547486582927028014193696867438714863845086333345992565337573529701787246866109896901128451046055739491370169470392440003335258608209071898414425361156673849813231923966771332566577404231006199715256950116137014699674325453031411269891437396942054969416331110546820033755974588510202989257780075003158678424570089091502551969479504641733321972077885862925402099510486291419625939560201836291830043416774267318472444415689547953589958249047387708744303514851926541565236319098222025675679614716008983564395058827469986116293054232533888704270165103083469551405178997241874763249311333142971246617011604476979233864044959961536728232194245618215889042337154834491437047217663116511930785053025713249791426561011363287703849192600866165853328275122060857013030692597573089653648337984830361958283752367255371652802556222663589946586724223251127698816690750454156723236559500747924708111621178771863483069496079972910532228002671234485218718350694481111258024880813027500443561346444389258473308676791184921707443899167791635771095517384298132790300944684192630870303436024913832560871404629245721971319182687033338958448107149317330174043576843811352656970168618094657368172966642454154144778263234303046887638912949254452149580166049004822176636191738959153666748973460045413096312717417833666713913789900200616507509853229109879761549538166187379223765189387168201280638264134121756525740566079113220940764079259321844700489894093148643611644971936753496422185987562654049932383753150440923824156126361943139028895089284472957245610910604707507477395597643371837580708505461863740120159420199259419631599757506105850508996690088885857195911442660100633994479727483575489826966736649023954200557313779019619697485620942789329292649148856856642612883430524603746508146644768552920158052188670032926850893664388231514294313488930330232372290841903995994013176651706089159801411295488945128764813242124362377803978763385170533034081249482489045945560842832355234179485247418074626692338058108135598336237951917630680434057465657883338172191328452634161748572972488463184766286574048464960382677966023785097842649164140602276812735112299950363421799665741114079468028186738367736999744350490704757035053730303561004581321909721049793705290359746326283568273749227037314115656163634401949869367630290109025624425994371189980155783708527070761056057191596693367927559245599427523291673201601458859568818907856057589908131417638672329208250280557844813234040870480869365890470523587947566813362647939981259342608439474933148870109202678010229882043388032902124671319991230611877567095980319168639119892408867980995359797112204575146922283616458495969534647609117472810236248403191413032474031955601455171652019044419009626517491939574955819608451662682143839689200897327067241487863999419185845708998370061287364904255493618918250561603205284167540571703697668723770993331094968777662884957540494314129543112982933871659964928156901280566704305916453902173567406312882774196912838076283363033042128074356473145248326210480020894486714240816287736004867372163569471522505532443347925819700308463992061291278961348844313230731308232498967305363553081174361275639226895734145250288740135525644030650398736963722399693531033322249485077582960905994932364083121432527020804483984228113099610821733625864201375357367419860128050514557576292937472240050692993185374429331489799875998076405091692367262328176829532579185173917363846143683808635328619893722091473419955408885149581191404642633984011322998720373285272383123635484532453303744724965586190423043716394159921915152520673185096318398284923914615135952955589654399098869508481415216604724217003612842333717625225255305972733360864222494619811293278405451682626059742792328079260401147021824839447553391707008277662141488528392963628023269863406525463266004800284717251631869601514453000951698681749569111710628386258552157849516527294646652806889297337879772173220348436550938155195513604519269360098148976062123044279539150109807110986960430618418372712596541054089583767731039546930326773169714981512536186815159311618078146348437558099880060306928846398769136200479061330734268134023533422040941002087768427587270640977523150842449126594330656423236710503781138821436994113027097248011847064147599002918692591908471069006901754600769814707888374015523964570037999621108705424159248002760366228898159780632394060148429339701743628998151239975385214108301521018616710492418466220369481189064769620011491879770387977506026567191240659530131285480285861059183802268395056200131010639400384175237640176354164617871795354133017191220445164094626403307481929883962891652154633729337957145416220518931436479104366938835691641924076869994977730856370513160299935604013514240844743267395545979185317114889499830179116487625325892359896328490751076961008937212293171185637585632513977892257487460812596807363154163913962593843701292849590149608293675260497154741599075899203957354090178957992569164435438719359927377934961331932706220660521846117436305493878037879383320017728244892417208455084199278124301716741169086945188902177740535272711513235239577553464539340331002196015394398874179256429896675985669429871777529408938247436532930443126278551818237642707914155173019096233184749278203435682856607799640779100360209088497983482227356822093328682584705197725909905202019059391662460906688747083333671861940609047354339996019457899785917543808887930380335757660611865965463732482071906797900576618233128483540151946545811787686789309593640295079582421639933642551840329825464940921710580914021759142446602487059733695954113399071046204037537796503111072430257794368617141337978823449221173171609112304556498695772406217364733181448803845425339397268808138540627751197768102576976725695413676668096117229991495177027628216200418268610273738491444510077133440804103869334114741887829963102727671356608644189095736471133956268639575240272945487107163686470621732167096354847571431535203879967998424928696817566406423303600277990686872759770807922580072155789621400843873888690789055671354590722764877257491568055129783616468037542061829357882645765662896537181147101639510204675740131156565825321868120894125550224599231157727631408846946659882449596773911785391818144845008981962450422662056718482166946200001115621529930812246400121963977302939457559815959152310203146606616297260409836983374352786370770857682079725686912254227046962225686568370807294291880545445238675226554468969128171476234455898923033985409395478844214686163204243850708478142873780569264930735450573500764218664924973603452388134193737048563283576259103221591859107248911023503361897893527684665502204902871984850862142030636873524634988333295453930851103226853785362333343586709190919456395259582451619218464131702892421209865673297046684472015825961199524266308508197359518617553473038274752074419532774478639225045819063965314915787659185931991215047561212396593577215368662105398055417500754331504334576706959273510999301178241383472641576726175626619798538156107785981471155998948429278599951268633373430870848254537104523396864583635377409315003123894783892744136143038298599353634076961755542998262057594587074065434869673471216378107067820508900366738285035498100649075752689389173558420281229015041727837491116622110823044310350675457120545777662638863131424757788776351962849620160650955199295786200100539395283989002194213724070694029346092833244813104103799050109378188894364508465021338914822547647678004353732206037765317889215823320769731182042421554140326806354495698987334134019991081038448585321891131424217036701981544650893652553228633441848421111811401095151709054104359045706487417744673883208257056747816605412576654360049014340281547711487273067454948556305732598027260565080109548650936455280411828228597705944639816638953540351683581344757204925193760012187204737534679437596118074471011005669919087691392808778416397616597200067965016239771960501629337385168907483198555378292473021631891934803628565140722823218035564747833565865284996278056470505834287507081834660799704653257484666758350350471218097727537350321788697487345098492939435543057818680030677753989604188157616144719761747909733045310664549510559871740635947541223918255583591273277796825047378056163979659739186882703940245135219368373665929754570303376805717436990603132491110501234520305925862732203682670671948927786444794760457260720172351226614880662864155037087676351106591523790948804604701596024412510038936227750719372072978013244489098159988028794566440828194119338133423573904299464367079231080538024045573054903108447436606347708353277418569143683773169885278235902804702786325244178980466674546089752808251544698516455623063792228299442916265159195476711892424045575239710909672484189892707662963141281209445936103336236927044775099041483822520194810991199441848130765326586145812092102254711233935942457254366925615880848628032682867810992802942432865293244994778141238942179682486451093384324888410230522932076600678170781983963389237561792623583743111774721051465468170670872026764024003901044791683805406359516462584780778608208905847625747117975571592767398800149724818743475101903739871952951011651978926994180351157679621250658048588599532838064532895511853487640023933535875449365331550058046931991195866527989979251278443990504504565913668381447840568572685905880686972280657456545792802324601740822496134530315357323838468941467836342224726906584008280419910361425148086548978776329777441162639274047049451172837820571114497682372533351397666160884382172897403035170029904412771305376091913067971559221150759358514447501620037103003184210888552103568874252849113893353596477274390676274440223372737598672390194861993318528546369742028372963357438595910459716378471508355423169243458062398111449278700635508206579783579958649355996414887044437152655629699182861751393530810220636645021912030797569826277171363512268454161393509755337559336409985474993166382531566881343736969698087399224083068733960262520586263039033242405176251162148677533225718189886724196809534069295393879232680449143423268029948338334762653074277057306378073030996725339484858247758412327377728776069047306764483548996494544706862530003526552398433014411396522903362293911746368244425000414383483295357674828718776820658186264653735487933026211943391148956557161147738693063115323540825247890565510894255422367344056656115960562680030690574258945473565627628909222705915505269557532152233389208855142369570543678209365935506566891950409796006586360924290547676746320141482460783879049152357385889878398925053028580318868095928470582724399401500404113601035395540694242522104475327276540238218814393402028910217471124995131256202815554786505181855399488378387373080733983141725388890006461615336450218739179408563865069436441780521015595317227816024556210552880451858859800901963965419918753246694254423233253727439118149065677418573798541937614206415507602146681651125559508868251181582144236469960131836621035227348098975853665358425329391690214622151401997174928524846725968124937837459109203574968833367546571296331340457546394824529953463292167367240028310972247660416737940980929542608152694437561375342691625272104169353211578484280732779222111689826282249014193337066895191789759836428616328601837127285263463014529865658479707618966430541474627625528788277849453226387296401723320206157214423316150060990607998458348648450797744016427509580865445349984503676984786632906558164324205319902856940578044250314677945494912018647552492912410075479737441762715452577843395065548157249420153129401043885488948639376361393682693447355934116432561169902890053276118756309258702720677531360728993171813643566182177922479857922354368578965254617449503221780522726602342382069775882776495512675198949603308639384167428920985116942058613696422832545160600133868437936429777031885540632312690909113991664318042348501715958918751028796753184304124107179723089247006248644656270678706032555967502988371863974610086043360512889104579431494909095067331148444985996909139043363150894753523592209082921174255758874351139810110769362057111408286879744789732108005152067953129263192601082941877656738926725687258150616494064950531416686385134997809901592509785887029044657410833287559128104624426657823846881532946667685238829252531235887180440136877761656722070433864492830157676803379330270711209504371360295782006824202105713934702590819366044139846240885823050782548507568868774657255132783372169469916027783673941203542929991257403967286409387223924829371071800627608755623233838417317384737068523614342912704729028847991189163582170776576660944792940101432871042544063028377456159688371056777359300759593204808758237380410019189380618158486229070279926122067860181044268428517021462197004018127773507575551719663369680452657495242169242473706766839107265940912013071690094851594595423183359436131786392881023683283009343643556913875067413354281627179933510504092710364559967138324957681737060947800626332149396326626676033801828930337021993832135953766872268989831487090812798686823394813539825463718695614205715843916860482907414946686785189309771784200199530833365407240959441759601773702642784950659138563452768788161119984673913638241219734019131856052026298193212064484797020304388487702858116035481044219758953506795896649669845088933949477008296436957739463127295822818807262953354316754626341472157223125237377285295709713965831449512565883325530777114308390518566936468549467160947684161116974945351850453042852605260170496449191059153937879934089030578698571332750010890720639466935282822955219785186026330294246401334561793788314500047452119213710686757381809326867757032703359246237172000796714654864589576691222569294852865309405937871693943163754024173499756417462196050010251769874415561866593246082940429206711227593668039851460827776124758988975852109998713008878649024361070982897532963908664694335514708484310804041187334956148989806129050178264475684131044219646016559884741323744270332502629071273307881605918015157943597916580733997535246586034688556079042799226405520310252845462299039209264852950090669133160071292807523763572122352225690973317816866195191705118870430833390235912942108578948776717776489347473056309395402521241602560412151912456017384260557667706131082936275880787259336168462530162936214618959279181920719855003317947240362113232064763386440743061082014250410618336433795381480997826322711292015612542774218839717798004686336016363378871176746765579537589196452654938145298234190626515153672134488207551863373779927042498100597656534824803340507008433056893092674276936084587836262618263779120066480265545295797178378455959107127953669031576708277122549308804113555953133099279528258981714823791893639289717998868173380390280167601990405877907551853915648056583838677959151016020043772865728839128651201311572185522986910313345274017137064126439232457450211552034092927329680153457132474252537540386756434030321472617230946912058573366439889508681375925364566891641022089005658945840365435145353330569063885627868625076762012576476296028263245446654483929354251606623448281058754910075753866020208113804382402509987096596054235032140960175658331073098429263833432353558352024447388216960401909529740619926477382460129280154600814472688327775307380143546267447532472785591863008849302628851232480766121452860368135044075706934409861522876638285713931524146796538726940087841494542075040403636873567001517513832400490039317205983728239761208179702272226898509012253506927055447111103478879764522519302201929251716074549430013592840850434499842587547564589087017345392629647791088248542908632683073115785199228397089561626878803192692993955823708376785087761589793190911533980610362771690410439431572987075478037260007296544948798074700093127440957355565598256288085978653226960383074207702431864518185028947267522621907855306919407313320957618307378537846221695267358264203346276693782948826330370149613210604402271242320661541886249668451560517702584401665417133646397609979320533729256056106105537221257695473514000770356746016979447326973529050165433371335060064282197074464244395735182494336145448149246815813481110156705183796233190306679993207397046285265983113813472971437983691588113865773105208887261518188109390321923935255410606119300523337442955676783379995838108400087494311089700496100989215193648343009726947622823058622951235506278154949733204333100482150092107154905978627837064210048816646228564696741275155190775135256060436291245488255193268851360743861192976892333361585886644946828834124736550429493973190679443594378318183785348501416396270009530672177269256177692052634329588555058346342165322470409918382412459765615501374831160251805659061922484520813785246058205848242942862277228555695508872815352530158213306747035413896429856255134300923158778465360876046069661816291113148815008797364383157131792689972826683432849852146709841478864977798364534959616984920717760721784824722196140970046211131521480091464807203811793802251734079479795835296081161848006776285589713862086116789638706347305708634482659162755436824941839157055400357678343781008309496764878506151849003305471217721770183380735467673642401620122370811944650869138675210089982482255892142617519325574714928950830772361326695999451454379874496898409874817798272404656747260665939051225524401489478954517123290593766803102315762117520595127975745534937732670213377581053319096450922257208782153318410642561357646071617342381683381616416643799194331125759340942961542157568879475281433063978708978101578163663651911496544068069601396799381630467183258547009709543044412243714782246675486905892735983192405113920411739765052377495745275350782327368888955964333632697045955468834956117446987863822351859086925044838325392650958435968572586762419923611307741589258102953257300767147710049664775725014919876241957690691061355252629917977424447587180183016917308943179556803768128685998192341231691131971994978908025982235425706868151082783773107300082182416962507525369897171694217767853553610991060255890361868995132978291935377503038531919198777480053263206583826921690561659339998168106487935472807277180171065250230312523526632411868259714396712251819220968611684210560147035955266755899547159924512180471512266440238955338206790734462217715293037281416586743218358074426084804312418767932120434907195927998381300017052520663403599793635309948902808178407911275518596402708733724303659216812303105797515860236329916108970937499211779535844781619570887188389153133606828995845662960056584247144878351792902361791133190658391531657736049821588313220279080295835939016405425123965353744775226545480010205911752556351247672583042580301280762841063547013471311109926854509032798489499089443352647550429929887927857901627726432373663451557149638685784231755111763215384320162511404720116022946579234275111651584963355029534799284032877165125867618709021864273291876787670388377968399502878135398674745509377486160777323510328677832957952721858074964577831574108339168898029063730058938185300132357782430532192595113045812151206232425535860293250786087775501908607700291777775243205241190226199007530912455251730789938485269100625077272684192963253751454171933118681388682285659228632023639125543141859058177980652902927628063655060378700813463730832377857920534976493378391609286226809648775484211267769645012021269446178145801583770640515888903099507368555888120264653383341929651923859920628833022598042384997894774006424401344049108142769489881598493074801879475788944416445294030794855130645586124287151242119165471275992715898544908266759741019999692448532110398042247480412672060245666746319048992541523308316967558526738943237530310642838202495683510549029879444435287526147355050336613646126355658048353648936152325576113513520254975352653484503746606460077269701906027344993204934601811394364968793779498672086236306746186758108302337160516103806464913835867812867150529152443663926824474943448021036732670138661518551109683020817923916415546644674651752926080802380002239959190207405572940873703632705343553319118656362510189355952256715573793823601213900270295739780472967743850713306437060215092462629907648469478018037215814975558049542772044781252500558535822199272830283024479101959289823069949169076130943113245869895137851508567737315860822987623147721795689572658287326275994324597626716066334555598009467062895217863857131266144454147111833914233987239241051813892881537474607068203130093587733979133783398729973484888059687190905548046075306051393036850121340253789070912453315090545874744473420143095897226525081179862505110425256424362533678009762179081796094681128705829740830492846902350340696990794966384594726489466080387128565492508402086900093576457025531055607622179499783516976821934140478338343166610060297166487009822566816742605849545432547323438028278023044753058404752718439212391529823657657528099795883074403843649648105518877339371226049434673905489198263725128734287539012138044085090657269893146269096842989785640869301974560364319515867008534661432123819925614141795261136296884250973079421549991498720912952122467282945303122937548667015123509540336111182860763100889309700115954133672598801083209210060214511092784226294969500326139451168362933328158908471951078281520438167324514490346088836650364807964366413385515017278941886085892368985712316093282098189277133036856438391837444608464581900162536819478261222086642584840024272570225543530863112877370139609953745507909235984560365343517063770145394066122523418184615188812905253941109097130654635319257850320182185148109827709123511210360820282978179523901906177347345162864420371324783327691535686602716256350332592911102684376443146255002485623358335623749072239981150813192913869519295916224059930291942070546884299872814382545217652432576969391472485296780384669838072893070741108252395835535915010805872169678951322527545331175687374839350135097592191942670240867088462307391468544025659978997275213358873959795267201301762426430867461356690421871604384382169262477323856887185147188036122440597635881845728820670945454163145397487787783002867181764839177410725595672679822625826480970276969267396278501666270438721314940002428281326900605271641947513171411134820215709425873346180204573828126795312537859756663495419033071093563739476714089010133844376285785680441393854892384681538029883321419749253602119242517435473315319384709796877182015910893629039339584017680996410683467199601425530204816760188294993642319181500781905901575871457485127638512563201774080529983449850733126518711656045000399731378783979268639934814996680298244561354399562397676127681638266206475510412538699718558454024479317767997210200397804601090251101173296015468136851295787575944433965189042463441929880925430918160172325282898559233977497431199441689475553995612831703048579668185057872857438889991908052318787184938028247742418606040825157538419396595161650435882319638968772624360281402820169087186962795064368311189632083796605802133979962203804860827689021197134541534832053011719388717944193661796199231221139455143412515668542440890923330897337593882027329667309998054666907004661222165734333707037513435991690335725237846762626716945887097993050520096973333613391710383015599058834295833323824301351153112758176194008928012595413773650646281573876153239587734527645507008980129614087061709476363402031149382711378067674945286651459857004273592817636204681867483650195401415504621977939934507799578571770420386144638487977381649630628081672419655589439982272471649231833811389069588162394118874596680057058510408215848464094878972671214855673462125353664801560260590770241007165011949100022286525904976648374082248861946956432409273324773828659117984082392444708647145244489207196158598707653264816188674174438474513205635377973617297616069401687812806542558197828717746322078189068075581677064386659421833468302820983320440256236217607838722262446508225227690047132536152390334813790491275434343610777637852438032650755269011068936703535186519106859875615508926671720072192122742534787810757394845062332271471582288745601355349315994150025991181027675908610808942677535638019885805119523825827451530479181602669805006997465265330713032370342193113841225315897230780735852470596086393992710536831925714564699947419063420253809769702568783730125592779738911836477646410257640423173821493440086417986532188109072165368941893000584664143338793989624052519686040245920513138160929224401601449967291048449064408367041131268716684096298194515963169002610447169121803009868856715321971441277605580530003743564362675972877360924059688160073846303969833647380891985365856666744720284780156053195533572143535139318296080466149753372918290614124807292154516539373932534728919583658037015388216871013439468548569164640218478693680844482324823022445466858344850602411641425569399808734997068513230601478131542965697603351834324138188115172764047403487797095958699762925961309929601952113252782155055785112069960738906934657084946587455363927559059585881127487890586088760069608280204391593328536680008084282147715018657444941187504221584172038711993916662482233518169097768910829586214976537236784360815427913005948257439541411929679480324120084979766544818737541304507344815318215153463352092348661432610312308168874482507414547806053792268849226858853920179901343018751298705079113918785826805534104946507568771068580726306744586287360260707632635255877570490263778635966188881590644325745299229624406785211811672646085607226809141844234242980968667806469183106407257229760517742396476898442473478394653077395718062938203394700880671690877998002026743828574713493119369101446425976408511577456624047009287323031756223159362725988330372968352057727429382549496060983969170049060306312784458253799577170146313556834943872885270498005283950297723287852745695111764459889788943193988832350942335328059859129759648885849670640047721975837815443810590066146978611284544120564149377585834650179443477848402169169183937549368994472543217168819505017273480061712573028930585079352118211978101205257533435915169082390917277732443230176904217384994463025233199326267200592027908717308967107460794324008869627669975645896533309904529638563361524128763218576498269857421711516601130111399730609910996437093957356337155336737658304400548030008647565078344561091985794876606624406258976954403084566372342905936687777311114938520682907339870983845970675547483956620906299472785683871429424905123018885720644197155623624173705957405897981510559430377230231497348819050358926939924850564117461931190588836982503916163914142935789299864131589127359644725314055745066605472320525017887681725813843554346425454854278768778375759762538268947948675482506244044582936674721148958894918811392685324387240753888729244841404909634210809509509479249674629726074772927728022541370422166179866137409544346671830885685694577658728508707715105985607370627480211326563582619676335911039029536164454237083395633224899463916029935369692161053982362381952230734127427038434791492075639537911741945396774434992181520392140388751011138136093494228517933727545028468788759788469643275980648447670390857982886459682056388511607685727572499254218630127238569436179496779174557261784605630754381437397680433767809681497717463211747751051536600578975988173853435191766037434058620653909127275551805094969617749747442511342693661726092895279606778621543155346209558669171978355520577450152636357007603151063026480398183086491942544318598491107972376214427819546955126304098235953420602802570280315475373257300836067855949707870068861564211941874427477178952429328832069078707515644205118092301823945477882420243817466522556187015293681812522352645350959618497188973032357173870485159967614509496160237855401494735364785464095434605796442040603533062775536019376113331566275886293915598978119478926417027692022419218076314224711730877824581887237277883593449965724290512442649127346949733689166294353804264384433417068570902942494542703166005277531780932169375891530860660996208638564569697730119509150924627117489785569288573555921567935227830567501529624859120858102591319361633047636849455810396576316475862479067993202602648681666601494418915927187054029879796540492331037725515268134724160881781649525647923608316265714343884521289150039117288027918653585762702892405208086543812158681411170354241516549913649281337031435867836343977833692689045417583373332644082493018764621942806608219167283420006517370689594908938728265910080569001767605025049239614269092980973553944121245335580197631793002821074652842876702962627094021627893588370476236566017189690363013163734652691839879400512528462466707656077871172374675890959060244324615544277860338335962808846148081555455075672674456489377510081792927327219113842912752998487645643545670129968998937824904748883322401315516501996620903340715502103551518718205570274852183637605548577573342669092417125290390991856481068614583177927425392254007420112132891237808795726840446777176037724864160806995267217454556333217741622927683484127587085095551430861748986940602532795937375740928610413036891936430393535620753369308881361766550766425768994145314260617396872569179717929992597553826786985497823176756104107133955791948954725202182429697956906432665251065392698293108246393120899315953998440220798817627441320482788348551276816547143794076687351646073366806610629978355965659403727179800096258929158164378126894222593348005336987064795955496746362774922261043686375946906905816516081766422556971690138298076182579249165319400254244197591052690450097608255773603426360548193795494069948074872710554286168037725902968728210710129249838745491353630991205083731213240442232642658999144114579669523040642641865764835456822392309272120168362093747736543869775704122089369741576989507355339734411379471915305338187575120696277152715947322726657096524248818232148623654908525465269383871415623355138454028371787768529943075930480243824694963944797324715817111776286162567586447997767130856694107092411967980378990653106576532098288179093459269931288900006474428187395321934866114466641539245818360591432859323836962967082375249396209503258793947604842208339970441120592497897472548636980339263481336234058808757432292159892868547413484016000143006772749353658633745293207358040706677943590283132747180379167294802785680208783470517028269302948459763016117387454007849477118680596149882395821171023926690333287006033921555610342189919292794647036359300998227296519299584252773309958123035920519241000009614169035583672322311801410838566422648178204597305887668823347492100710790007059109985119765609444034555267373531580774215869969193015538096984863660006757000033818998597175522749015851126746266179685381890761757961668114359330168206486855316249151918306722804859275230172185777951462536303134492796895104014709210429902501067611328758645310005470774009281069924867827042261689717132865168547292541816574774247130180997159696584050571695739067369089790352892308143034246270618293236983016856711238123522881303100455445642896367654339436941337932004015194967169937464603693668792940682425953909377878903872261619059049732078005303483509443144068985235498780653571500985473116772225266382669078632733696027754448421844206572326562896269214110945885455794102473900565458943595816125194704593610785256896357233692861225834674296741608729278238024209113797133125210171377076481164875486536668870977220886957938407283959025706649666337166544258232161431474601030265322962312544058631207132520669970739915357328314056222123464978477410501415858709783067815352237154211988905334035125189986349120443698758152743801934086430980161292428870270827227007940372713254100233905689727365107296788905251652238615360414071726590538217210064112821878474077191512397109926512960533434329206925759749119932585719413150031674995663434949446802246328381761454122294552962463868706055491770734333410798648517257080864008831414670936239484349190899867858788566152110816298034448734142293509750001190705899738556013371401554228410684165864130269464959549893998703138959501937774959580381068450142213638090163779884755660871390495721981638585562117178050710225546340868612852947550798566978500085829004974911719509189817945011772305018907117025607250203234816757732653764673154582560315110242118185199407054243249846221693632547360878427777541046121811694644807537996417266805377625724711814783451139394203777454986502506063320067570913873534056413754514959144679893828028591764845950104552320461360207426051240626885301914678410230900401282237865326467434045521787697649873511984714878306516129669891397144343711555481252387416964389754894321055212884766469519182397671600148694514869871109814864536211808669518455401184569325674409233603342376354011403617244709662327636028870408943721985284813344882885739528948664830545251566207196238837350084709584706343476231706865900024957787872492520297995946135662615313751206513525277453457372826388690760805940136806427797017644546105502748832586402019594248263608929222672471648776871948506377989574225704733625140116912664579808449168986880388355971033782443417420512380381038626058009830348028584336876097469931690534392667501948775357381762765673300411875019759378813433765099708319728250655340033292439961775689543396769188789963993895254651949186163847431231637376316929168708397980700917350401782874422606752777990386748370990072841078328058163506974837905188310026813781582023166040788957659750941152095158174874987759570663004396928579428623950721763869227329584034052203001721896358425606921951645455390895225015128581807468386477421019096931986803464570423218856490449544970919998415197683130295531970630631476215523023422845318220750082587087214581395044921342685460368189936332372705415572639176462072891842354907453430251860948747043161721266956160908346837417747155246522008324591739752872994430625943758854033495350589813273076340995139169312700960405988481712327751807860757944326475176599034677819868311120169525506567435504297487631118933791581989079694559110656055328585244537759606466984018392249846400318191984911603348573176562257038702579147462335289933662271140276994192597689402673835497952619292183369261855314328759252467187886161997308547225100480284085915021577041504330954097895721074785135494816924201862944150243591315114169249063552907450560823563451005651322117356017329457138666953675401536205909097750550866246817065028087206772001824829365800693971836880385812091323898164755364441900732852220805658205144204022256605312903694680516425001474989849720948804453304749791369566594447658946031197278456443323568584379979763600974105380324105810603357972177294000899671217232609641546012511098495239043828690581996189649928052330083934882977803956760954698016200857011226977054437347725861479171861623882678388581479310225217402689629244848077310636061034543763049103723496386717251063957090654933949877684258323032112730315403511283674376460849008610479413373803586735323861770084757541253710698274109698344149965769012907423092532216620700744156167986185318354107518537238987211016379822376610310269106302129725703101808357166819719316771117426762413775485041799373220371586871397544703196497621940200413893681668991450245923102785615968896997152105669952279141000373079546579098189252412896886817497011504665789202491776642399608989483642963027245752085514097632415186658852921380915869284278838131549700744893382908297285886627731301572446655412277613842462837362786413968141634224511636993733913094109645637122861110122964551493283217368309924565583235681486687687030766328744418015721521568961058887701324173148269906495351519177998112006043377096360326970787336354202007924560578256584851409609139750569500230742425853583757989467143622864511834515215261531277879288404588805685915916813393588669758649813528111463002581019785581272152561286318978005764726590335173834491517373037145914507365610514966658097932195408538841353769890216211800072130558098944702347298055803276144821227142219964708259726091647097299357023395279717770219127135766509846069035067429219093975835530898002509230689456689773518612816859433654466149946778705656425026271151684284324352579726246775062445265686372762725585428111593205550286590911269590189646168119251007004250026153922903405151014500093245624643868387022235853224469893192345909236625310526486407340836431654901978119086214917775755186182743443700743129900207649709754924705304813503295899917491122896979736746517894575355315957671039859542521760097886406327711804077712288937444439470526347359658680127237391904876553377382614123403172171974747621903380182046620445886068517964196479242298956069014629965437603633885801296045453792874984198804296412981613354543572810039037509589338991502032779098414062656958766366601664337621538242952210363475354760023027971271005819889471083983041156342186011607646848275043860819764455882416838620635305236394471142452724790495302555863281098786484909912952870681529638895102986623378037667698262855059471284641961386406444112662146877718287889817279647427976937042995991326142829176491310061753780777153480915738289618789588023587762540608711193766837307400808190486982297898769002367715284781311915971597637569065443665719773105570516167326454054195382488551751320667093052195546399414747178532964509673202498368543915032225239142651191177236080120316471135358104513700693760902667151563877429048758221206872731976123869587880725248587824905063231719311946284766044103170410105257481000005540864934164211501719089668054376913271691634877337571696153375546518922463084878654073058590362187362830991555750026715326342824684296276016612499356210835037839655382366912336963289497045915697183275915172233985642537011560532253743412872304827696074727496379180216498635048028991427828759100861725212445622860707104084283098742820774662501795674573962604852450539365904534637862379384439077278792691303162915380666505854030987123785824950463882364760368606966355407861715826623197320773279128761648323574619000256451730311902889213022165453058385261833479774497639621338162243787385071857752830309306028554489583059621899527100533703935517299216684062294027474542380182974120413860106555735613703018158650450168804940320092175979215604918825426720475928874900967489242994918402224621655683924196494234499599891807546581115636089908416848649785992126799271362765541132228804882513655669382153908440820402354983791911988063584149325749807340812216960829242699921418262864945442587560918163048680461327765252932841004184108175272647819270864004366325585104081494275381594061644002779741329998756213491058581888085986871234677458696078058747794991619970306841858138241729222043139790983430049616990788597391412463523653754930828850908102205034776395833457016351975506680093640412782914649293205643727079184816904072646395867618914332130899392376461424481189150012962252585383926672560533548649610978985335259456714810048115417439676646466839241687559490218148893205779220125963238401557435523698053900685414707035666756648019154756285645850344307102172322761769846804178784770854890356348402759878873847726453545053545089662997680358191993962316582792726857518998220381283794487759589874832266116143870669344594244474086007553930351110955687448455102983099094845232189069191722631413043726433421601687167113348414891857361454752791954355093040122328339932373339416501274741258918527791943837536730119635511086886300488378209487268079437972652846930566681637401649560544145345125970323942779153728107760403510203650243839514204419356286214538556144066626415746106681196335033364156165385367705325008280967695494337365183362104862076684922076141019903579482060907317367271621784174382356059984206413298256790988838641805494400297669627774741986449790530096565191784705252912800453606442378825846535591147292802302837987700903440159201892385987919222445227198609957723432267293688358034081348781680406389677971966600437849742087618027784024408863062792398877911728966298567559011178232258725384315819865454361170522117632703201079539447911049941444996667205573535337101244907682838676851429472453466696420578220850680363100782485914509328265166779663961046834376812331100483288257717282110018790295426870168127989413153085341448136308159681735466727839192539062374390833796885920769271704751772434623135096755873322217347611068159412306726767333682747794668627497439931488179426510451182482918611459812487430538749156588871419264151948020455103985160266772422631511502683169583900259250212200001169587364228184372151014403217158745234410167736647376529616015801966372312703830181087715916222287552377021229365620405995910665101829435867573956872235900332159437229603029999446456853573545792196188548813776945398754114886969104330380756547547036550760690678783278883820944139172819132728220456942374697127753626729250025088121642933852983787922248018687991487614260689230448673852324586058812024165907999071257883930234682120027394932942875361894540665247258380834599744325321843239036324305404287563718860211318677926552287730540575064498526964678225623490353703660455198422315626959611952451336559731217070402548796259241620819439080244490644853957805412262582583996696584684175730590286531543434537224990751941008548699001446035028367727883688584343559586233194479066213695797590222420932684061067334882970713193925762312663344061187903834222865277073703737516126834209371425809845826738409509505669245424444252454476091044235314610059187105513911732121721289992850274771100116938235757245539707479564306709303857924038271965371388891341856082493225441320927498178973045600672817130476769062533224482597802683735874220682395147971886729034616815231196761529509558325522442265864237080847682359757538230055410776137283299020078103056917432528888782682546761190173268191101847961859355492780627331548238303641004020277886843105333883066327806369212862975449779838688500344490978398684899729898707294967206712571655839705335774874078899578679457547001801067695539673250982124320717394660223256818923301791781242341305315456051393556133924168047703829930145811011976716658401270793193533157872845444891706482749513955450863277478459516222487147897400868357506438724121521292275445559408289343755147405947245109861305769214271956174994817178327134731530836386809153655252934099809676465657929937704794870130043388034669580223528448217841996695457366294231434696918205262735720395641877761739547948945171145662683051801601693421432205263873731683475562073210377393967916271534367272696845086532889038020037446503806708708470970495003174106597160549943837928734184670500118516729374757166422633682014958189641435433455723993513317508158683533891895881110500079034597093119056914964389013832599937650300061626258637946669096888389356370991747250597176146281577443411262028706362538489029315465252090061600583924537093578725439273053779588545204789231118526877454227328220084918172905072964444742012993700518114756946353967267366414597989016287940146924301773311243992863902490388177507241232143463328870027455626593484203665443453313295685638274849196902125068518471307750484302924988441717892966513486389524046595398820283334998355342514026496525362521452699662256749038810169792050560434439030428201512104897505025229097159291080936596834303428028599322397890860665786097291563627011767575029331689984957722119051546190329534319826154228834181436542994765187568819122408688854811216904277625565331473610875359990201720027123497603814445207191367175947736157605361344675872726267260460348969284691281180982066884212931594650807653022711670755751825771315347588322945077727110427711729243170378389516871525873530468192783690480008416003600122594117408415818935869402938482550582602370239429636748268567296366711131498281013896741083546513985147910959636810550498696114774070250691651982121692570411928417855823063554451695607613760394186699738283024088260035438878350947792008747799953202662046686966062113572466916241650281813713928891942974893337791977348691468606047637576885271143857816851767167647138198810898005001372838731204402833242058119661835604022587301125650179304901720520133446764675949866704502324768954634046032268942879338617382532456623737833341131380160783192044038393369791623574809860966426139379952865442513908598764254596573327926904187319192746276845960484530583569154995323259594684904219430300222707687822637512958231796532056394976766915885660598377390577005948440005702631148878359675964199980026304865017099801681070070893773946935128160511551379549133412742366267446210992154012902852578188020542764139384452170583621076648545097106333674533552607065813373280404817233931008058505546148664965734936267664885622359507590474197023898432640536352989803915889955412242144016659110665940443777374979100650660363362438672072608755756600195766346805440268434166275801489449139679838978487043205453209506922038257770774132645238429791034977055018208069403169564098287347656944797874310356360138717658882955731138296146650057632335354355979547600157188624997246411754278575548224454104028533102101108238038941729580932687643948128217153434156315178272609565538673842690479811072544642926817679316810909209781622804620473967837643215019841202194015759098491958556378429713477489290770823384183690450902110849338278416917874312180979786925999293488506164089654758631180170991498140193413954502307944369630014498909808933498552526557926273467930339814229907690089190168764653575932481394620623245018249909314410834596590201490091507348178271365483072531841523493164173624811925673664241299989302479137835005658041759849523075170774697972045750506658001148539054912398191268899431218790620121570370389411931809626766907409106956100809042121764566185602314003389161836873663972934025739466289854225901815191146772097836950379262658167826655411142493183410196458665165148678897496233503495709215767149379012030687627918786635937701578814969931822567763636082919854787052555703723985414724613873200557286142502671397902291045962642800615316453327969893461723733564291019208755341654844014458374789579905431371847437672692470331806927218687007575079236633449278591607906501071866083813807621630499985500272750909319007528766509117941552906715963095010102332064677971131247227558992476997807938245255777925345344209786229872110958336739340513474552489652306131889322295972224824247298966653303780842385998677426521660439263856165694700851871307000925737100623540026788473106843250526384110539322975311283756577266770124184025551792095347494918852770489939544144455974341403645266981054393932986788629941521370726741517432673387348012160653611098226985661611069028523967077229925163839270416176502228779896186670960991659108164936970138370134411024609829018089640152387693011861727941160313314702478815168076843671890279706269561633479361984273928384713006521926728699060446132334623514446800214980852968670175559588916470001368353812616499019998851881579351860551672697049355002957978802384669491649960644234349169381606383238710283299949204316869510922288221577821163208081849502919160095659201260037243478365312834727113834393761194736982329469224113048167741206521486131204284517454496337642920578815928693581499161167513154783429735386335923148316685610194274051572359449926763944183874424116798491583609546982803591804176590229073893474287334252646958426577314085328945852562385219447669998808857514912875063767176766930642055237414776574314624133468297631265709292443665998672014686963002392239190475942722520115371079545382522909125843574309291362246829338848725920993205478455922473998461005815887716841409234776321187570205390667731573749456285594898734071569372807822071547494372268297525765146248438115583572884624672622281520825722547703087392819341595471983629509153591520113218917894662412355598003391008784140644248715462111369295223766828888663455043964639810649196629986815278253919092537175206325353225879934311100924598266244431843185245934125915106801837924201800360044305821614767524801859970260212673463683484391692210420442472109343664644431362826509914925636048559398233444014067053240950435485813565661403283878815839647236009879815810457888876642406767917098099988681094490229570647535605058430458286046526795968068269111723078994155616279237320991074760484742354189323218331691196786493221380221068883653728297225156167838256984904792193937475591705751457361080530939217730136643393798450400390355056217376540356046167084886472421066184608457103851979325799177984118119597196854926674954286997728166753313892907114485143936664155359971525418328922776096311202269833623926477151590775184131016023651543512598569304525275368215547916569460353318577885694958870949561635148112946303025183989979839592715080582687460228105239269217966313379130223661662227546265598125161672300789949649529479372656017870281775819192762178994715941891525720319068602866406674591282902025806296300494842059200113413481835015348312082022165774121489678906082119568002826443428858033178289325143423719304229511107873028736184100025863696307040872190928340860612904965436373752875316894720952707475462330917827000812661158300933319286382721376815930309118409425696665978271690794327028000106607577939976299755373769101316772976589906096353278125417411965520504076858344569895137700834106112340685664256806182217572191645654456277221178353401747929296552776867942026508750226486479384788456562839565816077769304701395601294220749625164363385449326051897986218562861478973670438935297768718189027175420333450136745339697738364509622970227617082501898548838405431490157959874910279435936703243577053185715790813663034772085292881722666042704880552484711533745911489828838893850653895620727878254008370243599187141535349072523973176774965895224329043794975540478424009856621044015059963379897889831114107054140155248214365206002941501420556256077744289218369215708979562129053969348744710644178307692941761075939473996409152999960474370129293656322812869696632241567120946376071687871380449952801594353128169349202312387269647730869299995444487804194439022356124501586852510824577606515061080887315686558065440588550589822389720987373946894899058980103932918259831904195613198968674849505377801541427719418462214408236782929364508277136613272796741555243611833463252971521075917807976798372422966199969308770448554948067248385978737044013531026224080205842042090514286115933349012673591784416443687668007734548000245582970676404250162514209612993766238265310447944524207979294133099285354348194499202069307041992056509836852366289940432852700395432381930633066925660699331291424748161503929985937710647826539887221018874254931069438661979635536890449537404310876645554892856832127396703240921289357322304027916553956129005561143927569176995051568975131810920953394652329110255362127978395626515647317912285755683288173536748167540140973427215284301426312862755183529559462400713507274311180822675957600040517162355274327304846308971344746747653732898563985213993073316552186219374729423699606615015711836449782865701259307803071313635456876341882965587630213601134753786331062696523044140209353173861616529337554903089077976330575544196176750386765278584079634525470419433999133005472854863893223060284885494041056583538135172983501299955904484837455283735385159014205036713069034339248123013058929006136949861356813958199640353580455770371224355820288255360069093882677270009587856136567776056236719679026135044431000229412305656994361095509050557779220421784687517768947046516210233057710469673106458619557608940152619046775107802799835352649059134533009780187230179654092854992126787975533831222608782691795980763382809293516927446383687006990872057403310575695567411199494192959232274032087835791281024618108194675664590725220092767071693259024132253168627060359268592776103012585591894556952185142433452188927748596386770685303685800406620579990015906911212517738982682614033355953192500464890846672334054878034733564037224049089301271066844704140726705384450864770791634987092039159682192764838036495523026916601577116829835557823175324044912769772272750387201103025039390691089868106519755765441253078162867633413847404221369634745343435156668216853962054580534349086638534231262022825252963004291651728712836028714229694057136692065090169328323587954011360513177613008550625775021197852572759893960548712410869306051869340837867778045477819229448432634859182738612495428235636577436925704075620389013546415749789350916098046179032079775787762904955749323689495020703114254172028121229633098811890277836218754790224714817540422029138386385956558624324081791741848369748051769279594030090582537859483528277034882656233033800295730757774120755935639346480775815024879528377958167844569474359047228486107476719668512673272015114720086249340792940590355691922345992416759331953309421923174430830328713807548002516716731375264644000274269608475787444595649798613610169802531091146852353941515867815629176319208924061546736978916193280049995793439173694098198878795917461799260961943727444579401399440196872932160888324760025255033300758596532611424356484084899308437717888905652643118557001395135428351756634928547583027470624250189266752409432313896284909468608924061567058059734121355518359968943215179932756342456705976708404262065749798534904332046811510575628914115133605206241843082662778599036790364367622001812948363298249508873861753996636269427838719397127482730511592125483928938924856209754185490324734032217914208101079877914990581302605474146500826861391808186732035190841240117354114464791930675886698229294197346382012349150205912136093664428712857400476158000819293366482484424082904523470944080101513409079516986216152841325002075934708553865369524868839334846960005212190363737150472425222898198083360046389723662346016070439863788789761013511621545216446162713898565328438751740449869509463491613336096995944306025696947902938141227091952695422324498049457911811097410882301270109173538108293100685413525115911595083940321016036321911746836724959849271834373535116459724149588815516439866252878642460795636175988946074683642503778931100346588930895180836144146927020018048834591640607941467521597468937574757573724418548986658397886325176876288366156125055951660265412147339492220284894730290771744868635627724253448182465432308095745417633761930593124021995414261843281449428060045588765432816482015322393868497571411921571853896247093240782354647706672174036427720273127966235449493438349880775180884872541327545250579865982712618464574208580641460263585560904327048046898551951476565751621842213215082577300482747471105383207182767291049358141405760674771247193168720692634203539223390283951034537206904473844516053533574391529224932014803659972930515997620352179961054561168198161939533543260421126234442010764720942212227989624843672211039810335967532596456018688018900220422080518146738577653463178272865892498651212748561139662345419995913272326303300050067307549804933473347149756783062218383429618960377746612672541481210469754392532878426034183501350902081660154559549312333239083493353021204795684793213004028257852100826187697084274110971540264567276358901677472613163645278609621162599045459221364486217597677135337370380567532320525704769112951943285194501554633103483839460479708045204235169365422892251655894946984265912168590013866142664275407215236392575810545325846844763005575003104325900679584478978631941338431109238042437490262704777247206891775270438718503948452347809584039888565369927094914379311674039296972776443693410693596587811587822666692731948874838320230578243199610101118990724867662011821142506151244795471135947385327589756001593218617904542128356108626253079650928597914563759407063235756944773681751477164977177617927759405512474751503595010213014137755782670991416147186082698287869836444535401430462438955805133277663556011276189261914394730040293951295227685815518982087550699256446325733066969141309562748805060556603900664414648425965064773495710192035814189354133979911555241882695270274836151126988466753789723359644370339732128241267844345801549247603022069674355091391408903819905596217413170950034180914851755615122049913816921297741131131612039753388570860665166242437743316000889891416773035170510638111832454912570922411890347639877839912556432338566340556287776252390177594231801947340661072946821477331561855858650834401505663669780797808784969152003018580036610860164155312906929173746418560528293635733703591211194254763837422172836958865346105856130823869174087353019026895267586576101068871633653341627026005702502350812740029898358024146717616248051865415697103114950276855243020729593313379403576727497402251936941490927059863465332380370095079630981824241359046317799625067484850004748141561718039945938305632195187650206067998025509784353906205093282175806318750635329073864082969925845472635512402148376031266084878681900381119125832818568193594147412730830706675717896072106734476854237465694878690156939514366705869916381437544176547135056818815033024191567629083663940348973205704342022828866941791950240395419675528920952982009323557895680845660914318881420920841608450587633087455229940923524651243183890793496046767945211372823120466638555031740632363932778412161547488845545715575662351070865379281988969106551232337278375166771579719245287705485314035535305058994614329825779687125866976532329879539545509277613928943144934649217879630465374299416096206321486361270599593028972309696709653800472701798956034965349447163830003019126717833868144293023060257526407723977172223827114671217606193442195218485226448967159265489975673733778096115445949255905063580126620465510953575520268746343040230092569263341296200532747847009359269333826655433616547179629368959787975046290204560111352220655246947448823411753809780886991707199631136283834022281527998622407785902053586551814255023528351607327303413784746794505579062554665180223428183867692036621855678226840589280574511508531580427878406496478296854013000487616745944295743541143958302803378414606625309922175119232749913143975742984253717076138178912677730784814563406724229854805372480771871624624707802424993455428661437573834446559968662880031001601742254964963570867339565589395916939071391488617105951445202813978986513911628934859876239871981947845944042409697777154277586227960820379464318596272711691738758884201763688031141242852115520367885346295495736689467903343624066213437046824770917856265054491317915482551752166597360318109875350989130643562940460973367756801208151409444335584772090302662567778483453440911449184291733275673251091797334574086517220972300529020669133113118959725221750709258113347563671660516966232436004529623073143322079351051901396697337346438939154928135942441119080622166866448228329386966184692697280550093556341110129059730431041234997580795523354001671242912565504857227009828658552258022429578526615954069578695620418253189647445899255991932103959914080615262382527274068818322010599806765337105077538848891119816121978956502332261617942029680198331626658938380465018429475028689643295096620736947870945056385980780332381040467377557445010397130951181547102225149504345775178835404002370548205127846223814207157835722216549368899822926341241852186461587058151056910881630220021571782883469245018789892062237270318552256761676476875145444722992287201879683892764624791503836867973866765539474512068257507692896214289345254724579759757988123928918137429605757318614006065108579681919603826950868360905748479943413242582092698416148112429913716912693720548160809775394978695602247975052682092163691028398760338091652536548761300909310075517079428022615241180136706898137308850674114817090786768489584206112474221390867920437257418285009181626081698784934627382314066615206206920233871200112917516088180079204446769987460184045537886414680416411705695284069496854771580651235220947049673489934277958722499635542774058517230688387035421299309163528772661606667190403839381732764466869443173723638398972763166606326031365352257703336974099658280082919326881740321793171960510696847749285063743246368864730275424392423483027088977775272330185042783778491586472141986390203590778201976411331448143135250960926999741332243577378499358839504535238532916904093634558445621989113164141125136809949899133419184438322098146233678563968806355380957276955727979944999623558197765294202735783055287968149799412698842999002392497702129330846866532526376868308754418514342789758245491826072293756893646571759345598694066530203989239253556414975887731183983221881758216546822276954016198247876939946555565272696694567439622165988744364189907203338180974344646533319171996397784397644062441629840139177972334835932868503610044024426302064457153052010584479653274784047119537010115068965215598887181822155723518230633959190848327488340234828343958709814657122946749029160475677041423735160609287400903916646231086610444717245190778522297141933324362156920598926159070576250374531472033684557846592528385922705713172326764920395412450601721338698424366081264168866028115579096331779692880904775282949113750283928454683545720346784468204442838185197207756364072217222113334730545862456463121116822706616293168375932516618351196235762921714373083232539127055048040600715138259112710424186428399409393674220537165056174742947720397872986477099090959511950743334307998714834046802660577495918976195459586731644542006473647001698283119915257078529230601424238107778411320019273949848188917805599074535828227476152821730784326725176466527213232196542371031717811088131378133927386905182808101251829365880735607100160888776276561810779994530579508004993835254870216186051344698039875066157429894047817273778450572537536285762633769000647776850548717815004185580467102042659346023016577185503466537943056738179699667773040713211690667929208580107301146474562274033569596099785606245460901287664441136426057899984134673894082219727932266757772311999028050669473047589203295538367849552775206202650920918304373112489841209828168445766587266711617304941259530556438365466089163769205438097795147602691759626029423627521568529677028664908869052386504606077818571892225958979722497262181952310821562923516794221731494697507565816131355631196648337266625665357075124909873145807933361646169564994844105312593523301359376726969125150411577370412994393675595677510743730461663702608305822246686282718430185262319247685685780608403405227449036669610147187273518137279408138365745069226278371395497558689857113227735771268309368570672894708288166929769251064983774761878130503430010597015531387421936671892199983811935800566949803920955351584242636802255207155118008483958043216519861823040553835773143360345560755640214802697392571513798322618761455963706645015321408068390353350328732790296352741853749419190363333262333620443562038571710012814034834728372803009395789701678366453828990103672322344266538516026425767976159646092194329526853117750038929242048013680828090368257972999620546605193596406553590856521384547767346057744301483393017203375346091997285163462356339377386380821996217764410169236117471046157503153567841342508862350919551580358012629687699118134645474796680464492418549920256231497767019963832047074622649860929010370440957554829131857458515522773320620848844733024378258659596470590523275224175781865847124174874334336428161439034233590464945680753124663998935722501512253438149426122224892395765707423996419960063862591847302600271419864404501616638398283625525836937930246919836814417211894316668548008034611637460992171818248680130256384940239492263664714711986527913736732849060029985093704253868008135298245755901485684803790745129087503724731669515245979779528340864910046735281160763665904046137206497318904644489515874619866660800131395104895725293291645561095024904748849449527029004223824099635313887617020228158176037687615760343593775858016262788656846547429815725692911105941797995429292187507980506445255198270315471677160253450699328722359356021869693235769427563357901517256093722024168997132470625409564917301599866724372568717957743184021567227925076245861541418865593024943274675217180037599179176551376919961308465638927084666396030746992189534987800627992393161948737542002921754207198479029603212775627318968808493045347521944279036906559603693167473932017993488699001875084957228830249459906495443305889933702925680738472869659027453165447231833196477078101606842376124332476521427010081395052739636199938189192108654414209331735553038122948828790268212887492018273072999607005914264457049993817258353713307198935509139362115131649133432007160701214628266308498300902650718424195153555992959678671052835544619539125128272657935221407881669787785025850201007062425035961185927059842742492572149466508584857759277587834072770074797114448440252619170275726854968466113077192132231067677015184580700811576979549108684542573324980498498475911033236098425020802902671424280073628402980205088561630957943803028610113014849873575223362219308258012182127392971019523172070965760165189135467721611885877754588192212973415805777347467901484262781373817189191549729656771770856484679830381991499751539033710436552644284831190180911048408945632128298888239574522218097128600166283580142054648390617184209288163202905553015376531908830459255956184443595771523993751857035790363863188641838033861634887587350193053937625770245755650952525596405624772406032498451950521413528242396929981113399729507532967841311366478017698883269560498842400601590110461640835048249544973781328763039367821857795270840018367803516925849534643731813513850019661607376562796771317142781285352313842150417758431920419378462447494018506703479789937471027546441610215899125194035414912671148653502017267710139698392959130532835620260292229063957798640415902452218194918146948685097569542867193085996136506765890227766585391242637934498158515344674784431660713941840910213022008855230423558830862839140235145394636981854244631349733106277496440725603040048218919118900227206447077424449053381013550374112361793507984980775553857227259527199502290713361050888637639827134727306866311200207950704429331684868057702101510711561035340255885094910967890813704410298345528082799570561490660497079607081546257407538278847355831575766628785371680623910213484562643117864382573137474260093664003640948551335394045169683434212001941867534395928344013186779570763603722678811746617016414234082483027750014478847636411715107880032961663281021763416587098321400802525066678432832445397307389131623379982159042013703478525623757985197194894241780164488163447364205270887396362319041433266322716372216704907202823948717989264421552693604209236696464215729209316407197862374813231177011297348460800000693330068493476600979941975362469860412189385626431534348352363701679959944779007830901490177332956680851203955232291811510842612361821032526559287030004038025620643470471145785006512812896295635734219255689422367376831422446154390388177550458023874124986443674316622775395583297300880055691570755114833397510361773389299284761818821307986424144955092737742754019703825226841305528609090784747726257401227468017162079023914276992839534793648848469291928405443493854363593886071769705562206208701947944690696642109553113236673323581334590735771461320828744031995684803811566606335257782482618626988064025770600840685155281507825300126456681066184225709274931041793260189306623750701482428478366555426020316923618871800531967280477838017332063313200729923277441618644883741585513940778265924722606186311472623639895312575212886543857273175058980669352487793097131124340930122338184448052934834644340033981181218320982780974796292257846602228124326542186833809293872246979441301590200039004856567419550889243637437524244446844037910762888475594474979850192829760462359448935025103353803630864840567534184397575881952635195623052959444616185191197067449543318215062053932774059552067462340038955216985631127440951153253733230745216397365397099706320025215593529473359871350147267192360503701928222460352454334870891364426750326315853322265303307909336534544064587856687630931538523224875653153464390616125705466712558462684351093851171380346015212068100415990622352497922864962321400569499703017482515489819431257948527955549064776105347770459728940615271721087610528238539346855514560466095030110149153551828928444896814828583845705918741990745225738817489205603314946949546140402902697539076067763531365137031000033693554183323524656721788031823803272813086492695081866083136386219487522016780491748698498261298085856127678196141373986170646564977678071142297191961088093332039400710704992756756249079954714751620316080943291427976603404360837934230437339881322451865054611600274589609821648288884085514685051285116418803824765909996186867502988485428133916896462947284370203944539886141456045720539134835171690850615336032872315539419937791034889107420280616888800359865420032577352006572699347599763905291428562484827127841499625277472825567054522221117261088945476107552825834028472070003862140779455706024835279332693679387799339556430753214321454749885413895644592494680234438597725747601662122354353366427636787261615659370954264648127976142934408463243561480585628008760803742360441374838788598774092896755489887626619053193431903723816645021698492329602610027470676024145141100600701674575434909517188199022651000600698662943862178798374701907319203293607052215352719238650772664124641670546329455150440347439915769261123268033290061660933285754462615646417397459356522695710468620938142265933481466525969128099680596094069661495663206654283116626052695542476183261529340863130759874390776985052504153339867705686949281053973062529564807693297788826762566941818815680122034558609504152833278704286674507339669991892903464947189617985167220546174110424127634126621881587294926193191267523092307320895591188738211566925602838973029129691798351334591788111693756505742645749960620504922754469767283602490049672643384861287499999237944627521764584726642743244450989498576028943097647117734187917267533987576110864750692521283064887003786909148610820351964280320094918575521110649359021352586038018014941192937752315449672469017432962419589075909418581550237419849754028750143375095694334774947600190380874308601034833607606985924473900568387515537280565862767939927383487680553905256188696037709804469238272836971960127385456925755896115516485145806616052521962090150703060270658300250619656901325074642506623530780088777418289967013703495361740467010877207724375929783306693224229044427946076258649163828729589166473786748585643661456826795882351554994282205770448301242268126657850277077034943223360660504239714278388584582579787954234671885466766306107028623409589009587818919133775772880728210395927677277578034327713375191358193706155092138284220250551990175689705009035213537965409959154394208450500498912486177259962838401877917842858796061954052269434183292694442307612996130016769147927105997140543237797444569310675492412476235660349370929888876340504054217481504630383433969106243329007255729931501750921329797492005602454870592805397496991003171316106412126289571968390080273923179267304240172519354053248770604772128381156740924769809738411375995754674917850525512683725315032599775660680999188904960179275041240019885859533957642328173539277646365361261133895749969039792052663296232471922355129677581078305057347975064648434547548092310291789529313822419539638809720032841770580032195138872262484793572099372423088973925290984262012480696825792331680600547250492835265230702096824163525253153533125816268103748417237758986242653647019353545692393941420198135892021112879372472835366707370930244452731250359346511766397899750787552347758800914467429437173677695528486537834090037492503535791299164106216239678393848037980360107478697726315493398430320858958745774650890360680766167649155526966712606423794208098756717939486765087682404581697561262435285393148214928235232428352383735534559019154493570705802941463532843483145639092846192077389590622118560717635850546321862309352444994075094238465508147285437328744187439440842100194043057720724783255663497381206322932840454818631621408914179592407211927146850732565058182776861449059188229065312856389608201672574480793945658276100928377416293617112629707867457657272015373814000697789151061571500597417849373435533048520681120653863641042061483191126541419646007531811399436392561642358227059129807526483261512048584660901829844525776523620508084683987812810273948477236526847404596930384389627894654061946545631152898737565988350179426966653421935091805893483423767148713812202431135067874271917463532491986092694255365542601303809550658724384161941330655399913143691390542569005935479407880863686636789202411272736198309144335336578269146756555539469415616826549281755925620261526677379903680491954589626641762262010743657471483383886550309698859781686915112315578214473729845757729343214592023911235620737025988091812686540784171070427091314934258562780135528824124398313723407787977421880075516995781098589031620406773239501874240165811006412647920939236600513132828665994255351995890685035643826110626548368678481580601344016653572617355815916042755107324805739248508404358770845740913842153682650647966637771615017615124272210981646547746057583379217740043858112787969923097254617868530605230131409590453341004935419247444897275550890457072115751381915079193590155715227908058524022940463148791467242096706660945778917935228777969093104662549609610790046146454013475569027509562201994416788394362824951135026796759205975202889177715824448937115746135724682904892996523968372048729011894431673249651523817897712967348501711235806477564796822292128486222615308074248452445199015826942198393085455342585870510514521869198069786442428589772406036102676339141002737516323912617562652303966339722107594695175455704054363543922578047526739912270808441775973761179387847297048163797095978649556024010940357799752170592681708586046435302178903279775658189942885334180722346192273054426395011205663207941615905344254374057606324343676734302056336583865720057260431998502962540119822153865582179817216078161477263683025856011253765437657999854658653608834334283162863927352266600392138197403744429335715170089561866446902245849847551237859053984733653795513790354404511263989518540466172975788176990678352560411595217148487128199040071256039589698253877031567874330267624741915036723395807060228754320959452179705184658671531071649055060555967428686303240545898965000353294781670489231225771642710011505071909229807642522230495009463454521453465591359330171781799830693383984758676574151912737685844955422448735036677713007730431048535466293962322226298955354750811247157681120614553007152357403441493835852495733488904829826476415359716126881292607577233823014826865523724863266570959887031365302259188831819561338172610620996554961949620185577253848750566991824980936645482267682619365409272103398333358448622561675651589944740617208859784118980689970125439910113879824705102437829165216612679840452024543990280164860239728170773019954948876102617233782623398999020323159132989281842507250071486234096327341614063519024005025591814976278775789731470283480116425043227690027954275740485497531110015975342488349675410575664682672100522346296458489900014061585680684628361650205881170102662806190027241957669296216093444818711979919295281164769083140933286188240633716631423607400629460115208551107049340398087082556483791279912109011472098686276263641108233175337127214442518048971464311345972754043210344487138073015682775710459366652034086364888582933761612912149366927601123420882270399275505164226386297931973139730214522566337500441226855793523231116672129992856563457533890273329591738284254987500558936796086352754303663381877375133461939421029171765181597493520910282017539720329241740716493785696405094179419955796719476777501512141091721758007569051176059060159109542551403329918989595904893988282240662709229067511965348835637049762789256498239935722285500186927971390202760068874397285523880575377888062373131385291948662148142258887653203099311195139053123056835082544492412799183819380920998757404993970716799534272389268641120658527834270253663821795139319573041752758266777080200733101582967081845316622167014852273124972785487682382914721873670583755100026628342061030005185706804303557373202622247973397117915287059446908670883885898972344872001133838265675459380282262221404443702980269532842953489793357706967837875142942959316112301087934870040317152313739198741445357260052388808598355667361429548888883005408042739924985435488781409394330096666954405776693183615654755005464914895389761600597322484605551225207207352392469177157231084589926886712876407837889399229270554826851216012204481093092216422524249113179774030504574397470427887364815352666724755338327308303237255529578639541872085387945530043554785801143959587528796473157107141040676313611657812359384658185540935838587970280786857769166691037437166625035784011567514285487783807359533651045076471691614205830054025608773827558817257759831676545728213362092993319992607184270115765124012084482282621888215796803470845460542476745263164132667816726953095613415708639257160965263615560787862912807732270657900718643354953613095526758663563550249228335669579894747510999837311117480833746680747681620195380302439505224247133133019174057515857283024122037039289490015779410496937682616124304616692273064053184083457329811336963741932732302547171907381610033390822747941467842234029488393856428837999362681282927308631546663165937092519890414497711443426302111268751519343199270710885879675865036801084156668730064769557539809669020475730722356192757422488396000957902819036477969612497977914636736250436692946403036738103498365031525992933203253474217324448462961338102069846884107659220340725328242231267220373570663817329247582709669041277980690222214450549827765788697185899372622214390383910380018113826873959744876476474071496349736034169118886062803224587286004968268035750146142850852910546230349832664743347140321114274677838476560458317383966153392753659946283807347146300907914505742443780844677914475564528954792527467500114514292492431657811914907441555286520779698355426444196804888018878319687401628728172237741870305016954106382178363782072962455742582710903689780993052127217793331358018773653352319558020145092187998992090516873498197940551068741538570409751797506990046673947856866918429485544893437349679111911118286931346766838320842901024370498691559126029889380291450670373235112102661282857840766433654010128791686198582655690139625835973980785682825312529769477536025560367545602230342250914714958865293723302153173615152438566533940586105476855587180225515351804219966455206309714438533491310137346686986957908425441349457071491530977430473968403984544917303475385988259561221184975963230938393254305512106157712240232560791640217177893751211351754783130893567542443646971896836881475963926347468495130659845232612121611904851379627200854712947388196400954742544775932330202697144044075778511101064884553160037390276345217935200170929644573069607617022883926991486579304309317463398358702140581024819177599174036637586493249789663670024570659120577589386811108632758967283898427572518690580830759084574648242318206300127790979138470692355465650952264714309217044989119274316354116394526298166119395481243939232083671123903450779709373029487822269513441046270922182313002802563550450194095219609554360108465859074017431055847436636939122432886866308999062469546051181366397690402237288082169807633455124532817817335824840021798085178965183283855669231639919381616512345999820612184790591888789856315337575017846583638861948206218988396229430738163466654252191669973276460355880093923095294958791788573931258595883935369874173093064754729275583760923622424978880284382717425988194911808008829662635202094596961227573128128008118855413054136844429225128431259630254747871534170190364366456565311623446018061800532371705968521743540807817580515043791182142633259245335992744194160800608243624988615810016188365474799723992112355053616960113391497363248679354632485976116625178272726854154317989657365740044501988060962717816369550391137582626194093385475947483289657841637286840133188358035668336024866260855962430575570781073621427354763958608181917729801124314368372608429100832693660750176526260816498387726757201000159277080764933732372477146544878379508187731806304142282590132013794686428894642726323969731027707391301246634651542582430383523148343800343459394782404877565892485346177136244810133099186416747760781045315845747510446539087838474112567377012518276520223783625385406839459156037208010608813379259857993802043266223584388153964375543641434707738535851676632571588997621495391613972936955020756776556518162070727473768913091288682276696368772542618936467910111873356679356723437019106060459076432492283161953734010543827056807407599407905067706744049225216943555157302583342965174478870356272180685106649635485047077608644994326226036548202964710831868203678885467976465393030769917350010966469801898933850088929730329143856999781689913109173798478843764099698580459635873454168701763886762478903036663699964582475020757105834594424550611578525853347719018308976133849989734505589340059824480332802885104725825043705509980313758720704522403720762019350535332940891881330586190487483012797254837620807767251941137967206397196964431012277773020902628068827617728416598700006966499911516324317472216882162122914180077665169113160273181680578254870041332335936758876795325392305088918475782466121990342562165807804428006487436261243564808087579113164956316885427523374999316931712739831380483437904916952720678383210375423753349334363891114217452456082580645077893306708881507312511553191352997396135893978757050331399959437769608606289682520414469518779949781474454690408669285343849586576104404143268697702300681460144040701266568324867655262005799619221418552701022325817361212046291360625511821953894180086296765609777531672109885668133272537029491694244994521511539274826077752678286316877795293788202669351402276872244441377339348775925246314433072265442227479869216563246993695745758796534497350017988778565516432356840324869127517631580452427501596750227122295629459513513963008563755169344520733790218562683521801868253578727521025037382434016627783987052206696551787298883202581516597076103812239459901060017358402523910563840488085945574851012201350453762211609905713094929111891475299331674074879566188328747048288959463622312433451329038724360763149784815556514994732972239162697755993388149899210066749846055509315708886376016189388715175086233490003131929415897197139251628854153463445584036538630124314105492258985711824067023956649871410471550506180117672188747738387247432690109844996808182757471878087804451998264307608617242866668674319958024000435965107824547331437320537436563776559598914111155315313525134211588914485935402286320682486002115177474033885197880218012271714577618274959756907526564543115632978941819004883983919039903983703619391024341751354593637171744354665523693471912903719311981056852218252431088923969626903803036223941945379020952285121045664725160086829463645701085681605492978601812941137608526514902094179299646062591929986648328379964293449346899632330219099885928107859728488187353785254692202879482690933429564908232263024742132232138256035870700167461237321213730825231673904271442431389914822592392851622180097657442629618758296723146551442514476555245460833334804544703236498273564689476742565267979621760879045885978403105215226437438213408735506930636103434424740098833675783667634185103937269518908265180725283211787033603958302804797321624708201326305311668108880888548118364674536733745231714198970231296258276224232465652763300406753416522623028889450569747858349904705701746859163290256811286918734905028139742438715223248633749191782704008864992101779069829268355532071148249657361295625455726912458232161441309426503832691395782495356889322343393128116014638300758629208820613215635841267562736611378081346772573735061566968122553584500057148168220584067118525747791979918073491659371876181186362428358143294883254400781936600170549031787931120714001327409127065559002113493439770912162633159465076756900372458681105077397299845806690735593838442577464598739646406539030691608221982196447210370496389224805004169568742918613025980142715014941421291855995338835930641642319371712587025871629094118818560348195156408686548587311770774447944479517731443149728297904764138165247178229744096763234207316888696902256118412952599268180384393189783593325074124873993579886372194936337700590580308965937085852728180696124638901974762902224726362267344660937080727818038697050991386570935900327171405557443758833167879636470491482862199750544108696203864336264421396433822312291080244775972522975271538290992148195202171341735280243611334841714276626555375160667520270529752979306515222916625791637284724751992394694026385410526756571191490135191539299206276107241562164603364614895281963203141851937712794841684902002146459883403917139511617190315481426422859983092904070505117423380145401481440106061404246703071350976995738571847307318930280594848397036810615575210424963272628994949717981191800491237144330770461991467385850362157232306426661362854975484415306613340574994250773577462269322725301644818143631232877036526291055719521472938489973519828318425522809963178065522527809692898130235334054882240060396922647800369045120113219133269127263687713616635602565615414450338578404108861734637091429993364556149339703657709769616949074309901101591660569937570372924515668097719444676534474039812571905584191706459397424327718215771727301476070581724401691724821145574811974884798029107112895308067264512206595476703571782178106365602586645208867381982752843018700053005196116686451686369525636849119984994705265679525900495396635568766162866705900021321759636933396193982595343610030829529991183692249425384634456342775314554204850899952046220478597563402233823310198582694381467018643032129163976495050352983983032165104530343503577416830270158537783919291812257209199547126414919048395831459130869496573762142606781877214767065263557233672830775471394700222827553815139733815651539630864703505778906672177597534357373372266518861290477283756044809910470561427433841487855016270563226346512122337631503037909861038811622712243383778020348935215328545180665120173205190138749781411759756546374634157465409215342693328633231148056293264185611642806036736969117627980758570710217350637392713012291425415666951327433987152182958686836145951409769490762599992069488289177755720731038841642892419722195631435048592479039798956348082405739272582629844069440662031164271838034681753119169496619188222560816834089953519212179406469922015498842026184614064017321582874916649972846900686624404869210474313571809447605364599951582355311752918128200386115900478044315770947455995565338373022432847013448604866523618187422361787587853275714750846475885910243881623556888956130748550706012102270938235499249662418035512009576232075178276636085380089942909049955924266906385109402166481510348001215168503518559646198646854514820115770191656431067344195524855288600509581695196050939161251224632116341013753233059444411487664921611889291495997475485259406774157235538735716955823930371776927315162735440296042233919102611381400581141552471358741605639108893152771009747318958284084468945400103323339547178543321768599481909895285460481588751683224727369880562292963431991044046863811832023553836950208847840898383091245366853920114049126531388680587520058608379003997173039150360591954773432933766951019004150471959325100098559592975580539199034992647845697756446497078168315513753695566942446864725600926351883844840905234850124597810920394721919441920306860950357957076494193351343223835046794223223825212878243389586683700006749976367749381164764747544184676009254454793484772980067537883055248486362956377418910572744594824510320145078190783767874969309084023190606983638226446083280489369979937675247914422951422415941642583625998966975611786891803915161557567611024186413997627768754353196123257625102659617071527582782620469002802597440581789904547657317344727977489823720555878420236365721363680702775560851772524931821993931991236022258976328681319217780606722963320402617141616681160266549566397273314550795105766309406675222446644191358232785913959611978900896156718779139000993324092420720118711290173314746866774363291714605770262462371871541986060969395239813248975412041986306983515262051989741889838577541283239822786315943769837490906702118646223294635528760964303662926028203669751611355359373009635783817272251249558302326407953510425410919260909128941724870316868639533813122070412282607455120640116228213159669656427432411179001176436219159523643421092257652224034712049074023120100383257245111072404829481990970342596410849262499295878939687613065970539553033916059396355295882327567096271915252409342891699490391334428654819180911978720189680009593910726632889295945537287207590925892733371848635282919228292966449055386638350476382221522830105254241857812816937745602772675773382977410371104711736769900158220437751544584489979965247126089013788828528139762785989203715862088230933629888595700451356004737734361582439955035644640984631578881834506279947091351377885555448732447651487473993037241167179921560555178060504950588119386296045633539548504149290079035147757519169803322667920700656409972819119325372396958013700983859077421561144163757587130291548540918255209826489169173505566381720081828153188577447825398994239252463427245690308929070702350994616764812842750897111128611955640139017713533659674337887081855661579037473981886961192518264479554209100686182308881031068844318544284946709440174858037048113848770898511891771721391364960876043577837921108999522543141766288787070116297332175691121444814890974371705255913006828643224011640397625011883757973126343108069254821757772835367515854332592268737928721772590115977334267046359834099624509549326067528806699856178974584381794481681325976629707506655179316443793877754493014255764313384829002051787031769127696667258357240616222561444285551081076869064074501071572663963036416189908444991465055168275973304174501661177947201175860840520487840635405388455243628403863227598172920799621751817253676239269820239091653849873474274597740310612188233281286584665490809669403555763419770145967642226846107234843634152995891401437981680920790088812593364063850518299581362118663671621746157919055886974736207063653726848287333477498140750343874705886784422818749436721912538840858427073781291072191855647632155093624484758425833061883717657666444888140723406029994103632891369758760009985073351128072895242670162359763548162193233111312176033156715241920711328763445045128773270857677949912004702971171943782002245887063414721462395718264346567330411101757840577051085014938362208265747803068569224463419382478922362540841959237743037432727134600104942991295951574207915966404772623289163079476768254922948117474319182244245453044678032650323905421461654174486022252532690644024704010352795930770870220996670708040104513434343191655250553827410409692176010897367739555843561605270310567429202446676935334062223372750865742461631305349373146483490113927196985778627632147407908337826770799025770337246237259350271921530256077161440642271310943059541796170723425265800749116456339884131514244019025370206892631222923468020564544332164405242547022844533770557890759201057645265566489996116954413407662394539529303765550090524550438372974565612569492180400577816931390425973382566638003254961162953827264226961029113451797673693534754898301969149051004885268071053304215098763902860035843267591894822471974019851249087866045874088893880482958242230665198258508130018986468903314056748232075310674853305738981287858041027398996705508499870703075519003926389367794520784461637312708802021935587800988772369800953071022695560591542915943635210440793849091330359182189128327374779461079318259441578464450804188014770172121142721321051514615361974159345397479270060179396551382041932242822031427015091614723161640353480009435815904598357917094740015117271886958654375700479212897086694525841402441133052043593567604670728411000334080109765707801349987517527269354410536584380954396535567446689303254283721963055401231023130467723061853829817038001791241946782824627469449800815607940286702960133407539932640310431746361150385131616572426035491810345085946938648015877766027603588897065986501247409444486722941298652757294840710237524521546431956674218409028294304467873045923913519768198587885518808821732308280480323516907086280769813372025354505866890297099671880056133179895206000726659841610296182034075112201419884108307658042919480692688820047561052755706436124940443987778296689522302804900722282494914872780724217554295492688132485597012785088478623822267725580694964873164176471080730496525075066236723122121227883392776844436483000096193658917211529519930209653557895312071307433381807555482904078448259766356865505383746687597647454175693687221134134498200515032327356496781360416929107481191658692105168569881807396740816914395174455001892498740148314046527516515879528619520285743047502096556427562680494965386986792405113695060419097535720532044337360937794107609998872365692067257709575683990944463260489812060425129188992824442375944499561739290752780105155281743947035902160653327127104520106035257181936449106238274362182246753801999702203103660971961395054664863063161704759011618504810229732661802439053147657044938047091464316944899422506713550414655858354940184201102043964676683729344827611312178001932037081241754746398991998453373042900522672799471429635796848559215917858724043925909801693440808949945105011274287438633315542944382760694746735560608154420814119734882099650824172121298891138830958185748572074590692359262316257872743731504368821212402143303111591316563969776193231387986296891890815838741347918486164168635825367171729242742077505542848107423844612665819178583752587850698129280450522732905311069347640393668122252748094352718410732670654194545675904480870236912945643596967028757347363314812550321821463044279381638962682842734617932653640588871916409236993506811521972898630520883926395037046944480927200405246280718316749895115477531469009612218217610410399784623493014581173106141981497591342040466543921205250738659234208683661318098117417295044109955466376905250175954112001974419684050697883133101257809868679687867908856850932561822159533526459960439026523165475418389271610783361861998517398781576769033820671377794219042246576461313483508475291660358963799990965194731449653691926296935692661234977341821679882296363084998546345690343345064769636935721212126559116755882573712382319123652527200832040488191610693706770786092619239627897215110599719603796364744993410314792313220685320943399427576178914255568171425301478588126690524577228464498121016618074303993089207341319412668241389622846095051128798290105896795291443740575357961843252450872714051845711334961809650054894344581339812173932043389626189085197760911530443256396395576544579881687543415043423849191208283847931928616174901109770061549934862999202368496596366789160262680446021829987515786467527823089971111132580507107901866066522525790835317806667188456735217154439041841207579193459407041505150622778479966362863862291710544472881354507675241570967691032435178375146162058385385417431539069803142843062444883820445984258832273484997368930693876415072890525688270448913459446766894412507285123668388433699350866482427965546211696140570793086227767797813771749596762553919675881711266075588954544921592263076530432737780131688200614623539066791446051010195222967750835524735357028885106601725163864874440183073850997352689539150604160515590268545252521090268531659058171220582283823992797356462186539129445946046812647357322408290393761623578386138350189719516091888678528222853945186116267364783605908011157523112762658832641224774481719916070693838765323771576020322368761584661964457861099497516789563470983481096573113388153578131406359743147150456503805727270907055846373935790573916793060333459649881688515235649909282584205481067661429555669377743137736466052341912459501779492075690074729853429348437910954388599830274022935779230791861022881642671068507115650038960268442389034308747932695473654613970436441971118946208007917134576368913436077933927481459910656980730663699975098106995735641543226397024571695508372956030623631781119039377047275999475217289342658433518070338327750145980640841779978443572984948303231871293633699927857599251418919335737003054545208157050981775508505442261970928017176080542982893604042020832852243065694995684631197093289432399777226950373415679998910999697597957048850537735911749195061841614024146476821542164382733647885180606357626505470377737247917174492228061541071279549690228520819572917204487216657130244453416942966632346138477435244821846013820914366287885452940751004261353458041831636586406013871547244849348973562510989213843382591998041603916737089288918694981086952734002417753029121519649650697512940770717182230350846934645076436976237307494905197290133176922849038492107538697947060329340890486372236659841683910632322148467387250177889805835294231842151070911312288408666788667613618616130366655264211582415615025314253322905147156789169597913047389586690635150993400031023263776241216749888323612480421222313012760991464010213879080382410470752632176494724879667906160831791126645138618806643947096804088348495769086812785592069635674909431151785066446971736147143231932526036111788835973834164075057724326858993525914672630838229927660888272726290448206333862987729173901372013570542347073504774779272199489108396294427526913236060018057428823105597660522304434306569491798310945604271441204454439229446873181264789905770803319117393871638056089839204971260861579143110340959105837645640489774777510459727344802106204265402552688059558907600909528386717896039055278186702766539803307558403713190101048502348822940740051051044798966701969660271464635353886148782362193949623043339725789431528147223531767965554941815231777257889506714382231295946038881503990946609136127951737336037956910028735491712758702349530554208768950108888649484454280900610192860746084874340366452068008453792074286899795961683059445469455265930312730183594004037839160076915486454595665797409952765965783532828899766775131205565299900099065523974084547130672829244031162486338330578725161852235645794768277114422126487842156036612145899246826065496287774246803145615080342685181564650918068523821852605114819169541878257674601164953247768472405883631220183642943770295894572628019604905384824263551974972799854047368084205694938008495715485012667738664105666003596398597132498584439651344604699150362124474127676626276202292304721399732963475163145668928561210246441986163361605071780170899285178549030166132599250320385259233415433205405267488224963576303437900169816024322749665183503901399402560556176823183053598574308067843217752590444320412231153769233006279742931089196087780338777540666813033778417637368384570145425228884570475164105666258795350495235936887183511821294713772034032748388619598005338335762989549415469472139288342366248567899998354078082188605192432112453693612170619020625002950944619438984925747335148573185841252890523868607125765458270898241104009379166566127413071246203252267852994544834625990609964863996182010581204361602101709429074409718978561328037222811731328187091151175176155870700666402097883749373347792700936599133250369103275067597156749009739371668480758224605850573521917323479971747121240406974445683374546471494607065778086788757779848436659442874262205472604944082891730757383644588146067831078998953080351035307269305114272144684195212433125240431882134476196288194889904593987823969107470192146525511245384700579257269564138833675009383849413290215390192106108313533468061484525433944401989101549780659104438445581429798283826710780771536511368587016231690246005981014418990996952977525459091703310531340064721714212143685388953685720342804320265013527632271938054254708262662709920853271629439287764878439381396632599925918783542256734353153204502929469601392456779443452767873587174700569060722341219926040368237323696445032992606217204182049862018625750575912223316273971628537083508674207002024844016896364812581123551937055612593796886822933627078153732748052846540135161735287744805487411119142055887285087149129173160177234228312219553838954813569915212771360073236663783138880540161780720889055609658755604682854779982924907509512603215247184696903420562407396596372386036538951368495200074788308869168843019222000113644398456072555519689387717572846589080880801862070003373390234026779029465972545344937531189174263055629481008915643725106730916607281596978362162967985710082242550308037724588424109384624979155150971023496411140787268524702918705648948471542098063359373393288051399239034223290208189941241393849514724214304774106739007428541094818421359559164821174710148629653973673381926563737811625236725829997668372441328601765362710014395692451700004695312118636703103183304421364376715633266218965755965601250915906558347802803585637540927367050410194003991850904082810178639229710612765497953378627840363803522633713653479871903218645430345193448662565797257841981322733029994863215236520677924869235748433839602963955207881796223277073715773560594997233740328929141016697602650909744150595478895303332581059359612921321358087160455640193210963142038673713983750563557978007807244215783376762742536984080951625881635934321514060043694067886186602309593978136070053572355158225006153916244838323736845042246757817969711594077893467911213894844450979859239439613230039310054724398793147694581515270919777258699651047217316991789222291768026015833945923428041975584481647678348845941310716330171051577058019221112755169977682608748406511114570501500063246984689043920686859534302616055867563830544859337712203421930790498526217719952348756942270081469378129059842398636750761161053392004410345182721301190918059918517809702674660549334356947009259126569204861867887208252534881702338527159047494932112072960570946216828247053847440565884165782919748527620035444360394721798385266959020539867154812347827055679438741094090031080274315432559326893846333276457928087615693882367435363287004128623688835217845611315225292361557026718363834545577857388848226422033347005815484764348366413765632474111058053656655082257659664749621677084101140279696103850811958819976616010782589970630087041781449699813437304683761208451502168550910256171108871460970716305878892230047575517384996275892959694033223404262206419895465743571987118763329057227354985677720773808606323392252138928047458004953251811996375896150621529399845192849952733967138413405138428631668974278097107997157719274706774085682711300224470318877359661382812692057909602113236160937521773398016618103147255548238984832804777084693672783300529851192021465723752585370865764656201077006983962799973548699837866921772804543472411642063620468352266023949812622288333994738684071142339074994666530310514495611178286750054919745970223525551464134718309165361488641533801811594818701087404489267497851744706220729261576433422325881312384708582720842418739307209293229278814374098841779254114370238337734455212386261624941683429275445721760409850638225453519498436101228984566869055085454431100434369935640145073725413975436657386269458310865328598469751780749108906918195183321662906333135099637188043644015758855667882404673252041493937924229181091965935470307158218298802880507512084507131921029024149357427558019235559602660474328351242890725166740139771298111965939010493007383435832085962707255778077625442339892554920475819358545469095436033153609962447036415196926050016129239217636744926331086081098616446577435109924223415227641310550579847625902731159147938388663294924960014849423355332805864526671213284040528688214908442765639650083547540352187522789448081282925445437746537936759089028243703309803576716949265135449805160719487282292217307281387172750756409975660499078182665869036226164422537952232872876252276280630404406748864959220227641243854069297630299030014133723035336020237046848732386123253196474360525969523007895409756935746697538699646408559628602395058807947699106131603304090233762291832491283733905981547902983336260407680693713795762799155999611475741663106033632312231824975878574069247713897423345041277224544919982384529150637405700003041474097484882288978217780274706982686895327985890186417111007097137399204821232417738602512609227561728241741872659882918602803042640285588193540099600333332524037108575528285578517867387141893263616846094699215984611795422168923670985548154044658932775959592341580675105355216702230637887629267687266339485052929730444433851246957891305128207168256908953711269753577436093876562407829129105244395591225682547114965303786355061584950974011895521016531929520586396216578893976351785443934338329590744857393746732780128242059329106465983156171960201213535085763174900267039958992744421112482420314927872325283336721820852042043232563246405897647465935239745317974023548334522522430880553102747503120502151568947350901378279692960919438071270131936006491264409464722179527065250545646865561589833694702663690329734644608641522496750360158011948056835888923301733010251868790088425497237483752630651426833270793819365651089901492274147156004298170866784638885362449589970860686838088719561415619446316269395845841254590135778834322244014708014368848082521814986118195787172477350085990155581756677819180119194918851164184904321861704062774880254242112409964752975965855316402471891299850677067129412427346383259311602095599100894279964083782688089722240892136456124951421017493779614164790588567702447504851303445926784240377264746630648053873566977024414697665542675973309495215942797189144044750052157690010460898713678486989947423611262592193025755908427367570528285437313554214837087076573060891975414742559026489927818245511980727534857230649485309141432942651921850678394366745199703871807605708651430767948056127732445060569696646202125396626587435050419562532216818724690016002405550625750601735894404077371598497030618140260225971557385791144107984885889476029771939165735787001738249165422424210055307778353868560668373896473372979625737515320088349936333466287184038456786960865152334534600877776068272750414369870277306723390615446689656957617214875478689669048010788826446836916324790319969553045601788007005963463662097682973398196443674882090854151773522200721982468680862456879865516571495364313507430680116320982925176266454185335899426455508410283946189255660970758078792547478015154997623402958728075510355273722758984806062064160025540992416396222549629676728310505961409522258619682356088704054754497649680284000447865766811118952402963094928114337082705503428549728921773969854290538034890327077493765414524586052489498372407839332845164035609546182862850803843304415992409307891064964620975176029724989359717428780200469003062023961790437065926122204707684768606351478026050276249316178298108554820346167294242398452968003629882315737587087481720852527644886156433227489581859211963168476450078290594983784478740711627560520959141076866187566548990509295017466924134211834640197500792134287270517124578162378805323003026213202783167443933517422649499688109813470181313776786255211712060106447205199046602496205147792233672723073094102548819081673915563093810114049688673897600772390252103184179578156885738095052887123565304652980025240812799661366973233383253361045013592099973970150575802821442715549573603072325109895309809063022985717878971643824911386644537276165650847767445041305253802257604313484020612447813714134799349625690965290967755065221338669344168999484931715269072150293644269332026779766067430146241835425229405284116144692126603446979169660130632035520891709631360658843349015885163848841875783447266617664432299279453219778504875799668271265548880755372174267161027243719488924574083632846045491663371137495993740480823362749436032419473417602946253418102493912175741079671441985313997117501948332603642771266287963598690955425537554494822323328705931557843568804740194853191381045701075544541924610089575711803324625560017421866090338228789668598638880915334648199304765479493190860280822725441056137947526894513549043255679973194880292520892064775756127512812872604972724766944953862338887468698618247307088185870155607073308241772870561075893487383494871292124328314883883944680640362743228413523117960608593311290197496064981621815256462690506357298426560038302839093646542120028918892901361109309819524986042025695223218225458434475942767721482051446531258236317445979160869718030622031460167956039119056844122066991049414918006419864982776519294642238160823540967265043968004451770510932031261281964449772740122493615908035935144254859671562376776121546235228415292796988164230572440192595538546778469241472370205500289749793015652519140015022615332510624819616421876327529337863939433988959637025764319816916030320633080223686785453517415532999794213593388027974619181031639008959691637102848719191908469720192402526943424997406518067781492898868466276275280175135016678964383398956600498381762480230652837529761043238285705868956503046382663461679250484364729114801113747386418579128213214516070893914504649066789196729350347027979101278304387830330790104186780457271844992663442179849038871308591717797447020627129621005231393716627669916469530677707790114262783342635991562596364616331028653963685150639703515070668577389187464912756230595618588489546880630978587364153433102975364950335797517743042072583053191846031884215095620744359848503230759820391572763557951633640821561261222848353499887911949877334336010165875559729516978321535588223836177205346674553343048733819349840345526731329613980381848898125739992353985958334336983004416517201419715749515023217401372506170108217071880277785928355507135164836946389777080256662775034609532864330313750495330300098358483797061113679588111510610045483574043639532389023132496821830126964220447097415460093693625757000196374019120327874820746364112341395703679684711591343509149384159730110402623360606468551234049848934405813808148657627735862598112351320555477945642804001562894024797819423504739184404177597481598153491662257141996860830913854525531585576925320576249526599585408490941406735118508778833348994020714348360474602618913593152770211891072696706329316667507623920381580775500742726630588610059370030701216169405303074037842319972997409759253226749964785866097494580762076928509427005461623077788920477664705839822287931787217656556599062927014811674291690721210501352009512491454864254894614344504366034490457957788372392939011392400116282171400896584812958207012514294382581521735385886709493561923643431778314755988979873435460108537233371936319561727317591723135777881507816712173406693787841404213738109647887469849410939875656664037173711033219913797448089164842259564018284405197972693814084675759528553047222875514438187001798164414220851996563501477056109657276440577204822625676019206094619072186186316478474478759046307374971388104603637954764373508405553984672236341515287281180951963966268612099270598746623270772359096018287528074170530256963486965566007105269589029683714216601813038758945013589639803305282108679716020951414664474123472848707385796733456398930641616524945575467675933036695552441725199165173606492577502807426665510212695959654020831306948421823720813270973720565385707782356679862144249982719420553468863083217047223547863294875014170680697921720078388291807460868472325462680286928051137767898056755283065980519703717583927199486919467971391163461292636826787244095199467401693524064941075842993641413060474730817227165906047119656404968917277862082346006595322478730027852854329812303660522650373521218185480416664617985628401933222169710192677012714012833843856331752144277965527350911965073240729045869971237266449247012676881078969205600990772949000873361623936936353449379344975140757450626326046144693442911753461706972067151801726389794681085413565431928503310968476376777576596130765531285102453606013273818909706740060806456848811155185729762974196993720532543228352202761106937960413719795906632288141897417590008801274970572796490295322125488990739259880935661623040912772132991292306457527648684731347429591080554019114761864954173160330158678589090946560796351185426602271465808809489827599973811505805323806978551392085658282780777403979139341937891818434772143759268381510951760857917013505983810401781097574407422410952556655072029070032967624144742184030000596953886964482824080256034300091332439980584731424861615908582202023950281054097763142356651256635208698677631246284809110258116673908670537415232261767189659848587313406350598231168776659998596413273694229046354149569022230798920062418942307918847667041217881041517134465152445637715296840695970274465581299400218223717362691733589958470953555501256627397537893749963528144822540283915029332314204950117665830318040241705447776632763707397894376753605952461712547976200176898817225472173618567049617137396931257742055600574901878217193410768123526337421667239897308870420704550576266431999167966976630764069613919104322219836511252541176822880408098679138885403748998584236778313805800500988811339420568571534430795792204981806908909050105558450222012931510947397498632622742674368361375394745037361687651772712871983400510087688037432431897803354957861283152802381395981573069560545538304324845302458502603030715175374061172359908325707427326479518220376890579918765415111024765177028410679002482333471869083970138816924624539074196095201047653087960665730915419406957705434609191326828521975274107736117636933167395738690729880319179670201719414627318021782158913228910872668672316378377354072391933108897799971358720612584530155443247862354831334622570146028830629715547972490263604292811994148570181401021788972415158041521202997658523527811621945248282123737657993463219984247059234499781300834094430260824321549351856167634649694845593256174158749847413527774002548297116593482518761730340324414499507724538913760797505327471924778590815907393932292991113297089070133928639999042406530064927649280356817721280804792164679721985717630613217991050968674682793660506505422284652556611489844640945693081523870901884286754354490964508853008235549791785173251339452783819608369527383493436590969860126146597434341131368827890368076022423671402814346531966551174725376477944251481718413165484037013406937558148345400982676384260810744560116164708396787603480054685767118805027028023682024714014789673402886597812967735372993348051541173531288958498957665506434946861330450680955152635994085827101469073231955686928332173207209268223316300392422668176079246430264761762435588846946481280106070159767448699864329112820872986542830777933813475331577683963794172958402749407286757050286978999712377113449827010584929453930439838000632990791736930222713527639395626524206955350116653583861491746297168390029042427990239029466458450140627221785376025249672611040786536697611608756683578573623410593334933715630587218548787798888589485592615402435497588544947484310722635350616957450976549510615067752033561688486217068401442845276068684825594103360432437987527545405077915038260654771133688008556098485010091765595341212183032276216136012095071959078666776065730891031896165733976071185829413054854655664834241703615539599883696463271464539741659330720793077363508952111381339118844739426988206183381304660374060812282184861069576749756876596308112336669388156486006194203137064219022648521524661480183734589177693098899784624153111975489930070038460003112187341933709459779039571884672716723874118241407912929591175769171568399423436283246260156736713597016373758025514582777018015864148591340347745443693418001090328851039454064542114827843798579966627368850131512943943845841512379555286423275885077120111236565375131122678141953578667611637883422065635502874047690090197629619630409923182501760032361910263438932955158414856804569708934644377079334205186622587626460785859008596565196030244064999324495727620326880682783833872444566254317841683883764849504422320915263327347780736059573808782888930332864643607957903402407262015483191932203016386646609378413169672202781328479372301533224787109696860584301987166061340724949690619992069131942953690199745055607944093821256486124666540013264431841198329388022173066894932663994556390587671311296395405984292384540355950468222068933137557235989627330327083946906486403850203771138494622439091055683461773589026686293298215758106719537462294894099370201918378085080293144242512439502123946193914039259681948113561157796247200021400236717727268366196507627569421726103226865835076914343688021406616162029749998785846022361879163601457719377099337457254165311151063451492386887402977638578484980194988505694920875368054276234262748687734258608145746212210925285416474309635988613338364850906877469650644247923378580747615870039261197366452993080433341023923091293878339359323741181188315767561007279759980865457547415956414368784804890776038861185110653027806696704630661073559363886340473799922001415086070149161016661838883424919060596894400821809186123736060384276404260532004905317164892256191494861372013189268960632040334659372480954965586118436358062580103351692824705707835783820449092857660244383507973070678506000415687732256304617778937224186726778927120503138129804258408590842091958304981324850972811625010204348418013559048371706792247083179293296794292534164143226713795671093551255508250355893442494537872321357259707668779339514498253324468984091399394594219781240607553274345147544538625755449933644854955899408214178214428743847074962713062392791958822614011961439370122007189559365927849467615875142915292363469148262441487125947489547323658336622037101576099748002290378478292308728107195260896448147767963610558797844493394698411396423448402720424028098692556743055794609466851189293412900499689884778462688439489310316014016890100654425928232464377626852035038282666270461036540922263451189125700964682609397961260078543250413803510925592728788560176457752164474827363621704942651360316834270345283065146351222123250555133017042985354394613290970418971983968339860761289338954228531296240994103228506987657688126035387097309738649740850269361183153430473908881753033539137552257161706456077627602126497625438153825959617462568344982782189287516656515109915794840094877468914634490238176521008555150376346780151256504963234748224312669981489040988057071666100205540941281979057243833280049906817125011544018599673402063021938990400482588297079856336449894554690001507446116459955250113499112277066092397134985046552653884967833550728645121238096925836984203624011861826354773092746710623777447176105326252892695489363122155236739508209566564760182363587197210747772897478584676265011750581095963685000283427644367243621453817731453690852466447110981764175263917109623005919978852618219427884574633724383861055625764392016453608912761182019051469463324573301942397898509998486134188310509711994635625320508521554075781101260154970317536721402357039617193227690272951597004504374861043280579232688606640831449019361097676058704563141104956869088530974805170919530766495515248509163272710734018216109606352364970313873900984508442744038848661136804051283270075389069073520071317358339157701408968882798212364084312321671797032017910536596729987957341024755135640433174217145195223856813665760232117743062157278161194205015809928018918547922651812177419259674385627928040537004905169403398075415354867047621853858107258882438846192940523814223409686978760647236032167678495723244571990526509637265158318776400619315893785230993465338253466569966293361384859588455804404012435468543510648054586383224696600114796619296285822121192628242765313645476585093264020817739635019434249410724236920722725215909268516121955687292849328405191491255444915178705642768360262962926599394170385740973273780786060036447088874794965502731086200785331101728585364041436057760310622596797781380596668952160887052299774060111161125390570892945209153878718194608091454972342612568161516585653252331419175856006906316724425631317145135738624101654322948660705751390391435122366641464770253337585769228970908624501310269240470300324095428531815854676957555367397143324801368268273335072974049059883230621244635377786001692720939555581498528258041458464146049233985320025747253936884497075092648133432012643020824903269651605800770799523492194267321803493868856667429153280750022244944918130176980620892794036201549496696368104181089755509157722164493055943514106523863845420944960730194938050919930595963364500736488914271827117088750370577602152114433490871489340749551713823121490932343947813310241609010752610208022227988022233771985019803248280351331607383747038356950975771281240505644364942337412123065066099741245019439601290450036788529249894825086388877986391360677987430110216676161979269725810297997942483757768666059497278602496818165680014533460071193864811631974676396032530220182707946833225021243062463565325178311872191672096628895554561365864248138521291506215565575261271703671282184707462127808881148612783931800157378393489259822760422978972081648267558285137117444400880807429679222827452655268064912920830691650812683545506220514289050676246560883690141116668232319997307213949754575084591275206855824464879624179382564493285082388381778701705867870378567919416726350746698751004213614195650914906980619176715853663064094767411414517934541226618796031282431652603095045050840409470588144261190656295813591136721786139585993834121011601103924064469038250974531552298010831936897676408002399441507666618470985106104214958087624785486030803077880292043300287848957675696628179120903140162903126214082732242115071935897754016809605820066099340562487347041911711895843872817096739493055893985145860763669747209725195768838142322292550847758214980299673366060865178249927712094331343110661248834068284323786522931058158614488348803046577886853192350259858687119836119840817192127691743450185659573569415802340806707544216149572795342654574246478734952450471594819136583851810790222027453640477340875883038730925309583672230362548330656460072499925836345644317677358114514038795288124975030257046404453640512633432718746045087206299593433801261691068513625231806026249324626075215420303229631302041407686707951280337203606785176214575102843800755167583268028050237032632184651321982657438265513002043895835335848876554519979415925417138388388998330909274751782530365838183853107247457876524531360826997177998547076259709832280428108804643995134167146790093066899797335383445115563133951121799202089406352836653528503280094532046467048639115797673722003603683352307218152458255475374140499800859245663721991197673665491574147058583377607825714556223715081423316154277684299567395698854073925073625924423323891920086115108701202593000626316575545894970474674535521161169166428549837848415726836818695802146769086725983108345981408546877220988115174171808131991696093198947385670453138190203529560516897719130410375928045297028645728211354564561805856853194611445150082026974307566356661183064629796453568579582763969125648913084116828564001247561468195816293898850017441936635566943366727966555342732287149117871319042977129704247426549648842365189287881477994380706087193740427413205195718007507962937246888496618170321877900194493936960886362111032615223185380846592696607238279926504126433743656938676291679934358512305256977112078215335840807627927321711260506538916937814108895446798853096109904772791589905497687980323169270884646941003121269168463300553436149081609945025373829813572167100011283702813968174139573267387566978759632790592139658541746484174278682894786983277207969285399617486382564646430757484167475335597625339167213661923133077033911585180832942350895125715789288974165117660445209159833178315369212951657385176359417897248997228838729447610912539214447691557988949386643595159903843503894330041016904667578458376366751638663672824787307623102288600479176383966882008772426889757277250489202546836220874469200888278069874218691512420831179895448077582631344836233142363138416895385331450866723329433615107947893345454599670733480252717662648213594214114989388989915129334752356280087144755012553573489445716453214231006551663976234805937188745828988127730369496825395229885707924763936546817991618774772014696772289423039296774466970658996632232719768708905109949191917377830984741549248958881796557743024412827276376424636959388082041128979255138896856313650308038433869185814356704504275669490513713926157734047888202447499379279675361694390525450699572179581881788200957638266185041574294462394042396275729089051857969981175645707717341073179263910137671411379208136375885741693644535241335142219247713482441121334620935249087711599642334240393973978406776951058436427253300291592084376181161704920265606238388987950847176685070836198228820880445488358915020141696694847726191681026472619678597186558725992059633137606548585638287019206283245101606432672679795042322129533372331419777938942559254763430666502592441050005299124683950164941861038457100236130181329713054240352084160438720425512765711870122128251899659847748661554834050498345081256227676480001198894308147005719028260758301111387750872444720034366065983485383525309819039114830622754814921214201718398946796117284780618281337044147844872794021965616189849205877883373050073025419806386767349981532278543018383668310172985146755296454004256433698583827561853068144025699368170484137570989067302340005866458188790481345221777117211477511442096542475782006722937340438504201424845598235261279031240743615663604591564632748732679247603704748408666380167521292625400770162238564620649549410383815489755749213954795880838292910379490908298572798227276277301197801120739320727269619700587615676107539408756279572766989605624143788820130327952843433388553713475511581592508549454458040122547224375228157144395963334639833365045670915164200630317855887825238006619069401298180940808057316991377113470933200330294208122844825524135638479933119832735942306697122761652310811117221072743231728904920982643027607858101335512761730728041892730780139369521334523511092137902045155619658377355007665974436009928421738410505681964936621569153290721091988375713827829345856843212014543437756908634595352948507966810081140674296591594752034573194176575075893580805259417058606702478368687267915327139722392871634946774378548173943995582172591967762555641439268304641889597764188763015720530260722210772946482728024886314883316848596650893982594820864555957215702387958565087271036435542431019893008463178904811495297591380989939473806133717914973358254475621516458964148792260965031564138471595567517456530990312928253859767254251389970366650261111319597966984127140800461476290823816001548838448219420310351583020994796324847981784374318492383163537646650087364728890190251262253543143839642043491613909885511980804181682093020143942118820485679144992500004430432984125187744949085972169721282020335370072736126170720668331359738986864262138052269425192995728616749925191766431328380280706586623827926683985802827648748574152753081761886696588485445894416561051162466285458114507811028113493781577317489215881131026853634438247082347399393736000076756431850695311249104726823054762252059520896245512211203443457709760301137494991111253342295895072615853476440233676029291832801560931218890874880221256829202203127666779665210781329343327929513823425440866474473361054183524380966574464959751492003451565669315467328744820730680776411479647363961269690363059994913604078110391893777693243462418857113354405859882549389636804708964037097707441454007478614401892259548757289171965882307650396012982704155584776479338162732851227810319037447770904687120907362718782241531418046034102557648499918733223210921116253917274686505543369944382057766753835460302461617298284472751360145813849659160056048120839983741008418932958249239616562344243476092060664960244840218444197429022661174232546794446650566192098709097233310778587133349382912384385476970518558229413860319927646136098828114162351595368213675886438882627299950500382344672496672301002284362293282915231051854189877094097531086609931204231274212957327879673798661902895363048194427662096177612673191348000638662516112963283940071502120661831392229259896802772569648386861543319682901857801901747138141216304356733144526991075981585018842314791128379457925854271978538312114181153935402280986285514764794438214033683254953251741708956925203159220468831211871019812839062597949831280413070883420645952110376156596203116117126536703110459540496781763369861377716531214377012523956248566031586197379926136124304647770000380863169002200593637264012570092329365313087454151358510074553952929257321343352758774769544617388112941642530983612370429611122500727489733004883478419568683088531985963295100975447117334230508020723520720169365048605795689288200564907615156773004069620308103399888176507481739128075636966353111560303151290086890831771760231527778548808177209443998599462164776610122472714565820698113612083836007024268830644282791559136491106904332858692312265416939262193534561814595223423732539002717709700582457833489235903843893634738719140276817813548566972301687552486163187446174234804857713875816859300355704520599039205368105186762854901729801236427872622212456457024271770240294625343243385165832309099233461973679885731014406411178272435685214875120677805236399685375577069126222024020999595600401245744730931546493316507047870648137634602207625790319965764451613917533310915107651399685675479869587714626304702520953802206060165664260637614474136278360384116580961508140402720360626390492697839821634005590822123799550197556913177138868486709174952174228928182615805736720122174488485904648538902442743581257673415654463060807800675338754566267470292312744824918983860458169631332250146825038764000631855872616853884115206958557946056358454072301845402247679310769829083832599171742430515771310074898198621994389755252000429384952078135805242415821256410394697085167266879532009001964944222528626631083852988504086693871790643524888242693267747381887501362021849674116996560724788263092284682633815111649940819824820130848012959125125889178496998596125079360942177071920028056269112520152775517659497406900703817639954221101882619868118678318829477753498582863030897308473195120849746864731979687739673629218159683498593828810157363464247924473064333260484505099681090235536469797057580055012945391213177230171820934849713096526637811493797009035054990122661847417590833812572483424078385961603256738859562840620738765434987132884659590602321987777148708953875861333853905180180092326561199952627310069549489610637482304937955469569559720549195459262904369282299917837247889835350511168662260430037827443014927322458725871115587887242024985497079709441538525939486710950146958948083982794620107194684399671924042386718284635135155262920830983652004164912618148598874104488235953890796695351321465971883983196114893593459104978266142466425782094485783734333927936680455724085811868350489289857515915977495935790391651941189289931368250810256353114089018306011413959677735026606091279456291091315145172372992047108586981360176630111418228757582841766130190106405045502051742266700499721969527944270386555580405368746025866229857178493549282465921334907967012768144752645639623784668109500305231200139228352809409562234355997569853580138496106895989588735872524501194052893551324050284440334228795431500084238333312796090409912138971678351510535150258923428168938425966631919409977292339443251386890436463651031908473066388450824136448609476151240477766888297340161106921705075676125260346568970076533356198946876331042417390309074181241667693909718896706129720675719097093124294199012948849125879416532471317904946498644930245921576832152229684073804133531824986148067409554162874119691202817026741701115318283725001676522636880727389040921830495005672290770759894535079550518434606347656134130131261309683463987074486768293792889396477660280828124265392075816354972627959299559629194642137395006880550701941226084455327281065095071804949594561046836922243398266385132289599459072802926968337585065229339549411040459770414404962634925911581264000599713488544065608416890983451217369987682986415577813963606117381052043599041002441959733502316895134042208591913883100337906582063393229616237339135941976483631773792411150348745286641096820750564729138313970394722473643804500910194975298316523031950225215817416529687547032100009278397592695476410565004985166701159175133693636461231790411676096728380285944759849219071805471854729731261276799433431508937636024708497902867365931485966477185475625872280670575937327720419694412494440216834513070767611471543279179311204933036610924994314013586225631921662754171301223391704287058992991030875834191203325806424972245071232855906939787968175542424486628858872245360292748729741518393791457075929719496146322308095083444465349687298572332697345155293814195134339308224910563619555759807305086845290124266093506467638215701283729419698753059354313927217650354832741868715318092920201170115970705892836802453530197022977989904955743165794237942102989522936708417772548145548986538666119587080835685315719033426732076328615422005929482894594304695377241537100588372605752666611858924204497299553736357080949270640479852142965510799535063714792313499588141758329892440431555937626489913981550215293756526456635385778503905045399625816301937064477527023705846852614977866693099385859187785871568576795424976523512931415482240136830808984641835410713306610145151459304473681377711321167616837181692949702883651271404701479741316757031054314905100121764082288062494463041272777958685347774493237746610282155256376038096958806907664413933107771402111749297181732932741188078227710247528793838078311208758433567506870126609101271471658243551666549468974090399999033691272959892149196120051206558329180455578734135363209216020319513082693131871890750510302579696974233729443159395253172010398140182829291006529436215703493904033355608028758330215554667834676555755973195045293369265252214600893980046954031603869285161692214471453853854624014231062616282726000817062393344410180732988500235921647880958055099068149830276738047043001100321326826442564710556475690026656249901012776178666324989157038388706416265016673577838364756349591761237258061722511529937623975947246662040989683860914622719973703771487030577562214014165749164283560209602094029039861155696075144921278729469516058865732772023607318086967281381875464420305421302467629871370649141352761560378567786926837987728787109228247039718429983896115031759699758034156160929184326830429111175737796541823970096672812070298213670853258727538295031280818100561412887701860741512160205153279595268358866886461379442721848162109101016904617460071761075616357333428268267306197037080812790289476142504258337669887188444361463189691376748568427258476497778759905372140330968733909476523381383394719870192316946289850569856132485034954830783937436649712022002428489514182687101085145184525330628220797029619376410165615542224873308671373808555838146982786777083425266029479726082222088599520798175162930283107947955838929476942545934754150241193430517239811985114768024814167339726235615418773318473984970118781346879264907040078428361318984671926166370988374594612096905261528208292438244332092061332249512001875599493102813751037188849350387413775447473380547929594385018357770843764963202980429656793087640841702390469480771810778902217454123206599539175541427935984491064753556534292777339658419891964829921907142443497572607862671591443682079467912948761400718881421850312975784817175724496478173383955900875515020413965630133323355679447379202927373296117681541170702303053277944410517447613982846096267244497993286655051486321265345265350246018852081742849985363713763754635131673813056829629905152036425069445243564292770279644905861334465778373484501994568683899885293736226445906487372139695820593739705010203517877757226289963542515102028907538392864714967864035133375856534203212268905407863691927287221147941590756801041498205720187653256429885926418571766829933969368879678653776435662482289180646428192669980922844859631225253271464192525704093578677006880354890599192555110582118593815126066942014631139700636614803524135310322300758690670037234965494665219758715142675560715103639497373682628876079428936768024310329472141333378764212007868501274327503386781891455262657585852495235702663368203695364763823694954801045809007780939378597448917495661366174537713482909382990058765540267552018009424837520888503512314901745898445267721669613490348995986828498395594658138416977980060365018384884491356374520154484170164255842661405036299421984591371320031420811033771906712418310951655500430081013009111762184207583202020036148468825584269527849346121965575095423443382476164376299604306840417751573452849743910585815822560349966820747708313488290911743844594430162522792837268533371979589134347697799687387997302043594984763858790050367977352578560721496933290781321697439967605850306721963974291985398611306779232456429047668511050362798186226585823412747939208863261178885037189452386360216461927328627730583053534219851138478254533765861410314051429666198706217620104661762433310203620282515293774258318185756782507946303687338114421166154569751761797193908138266666089768443468403336918818824958630122834077220779370272584664808932538230526593243900094434989274732633310360603254229721223290621627860291570330624189541513707912218698411108554200064991831386317802302790926016239467991054579372924870638289888988059911803854490555125190680286311556746660129360633186320687014806511194117763335676602874074818814667853773654907323350447814123180447737221755601114774279371749851416473707882954848395352188576807314447333900062079365296709923483879261825274970977953965543079523849835603297364147849665887934081182455440750495927748100746736249566423949970828391081730232774203787437596694178971804472644687416296153463220986026156612855962926118040826500548455391184134089091532531553223160887987498140261906360138792722895030018486460627966979872348997575070977593843839681074729306659920074971316252574530813857878164631876117917654450380001880814332844279794465645607780643297489156144028452304113142020404837225155608886118999717854434699505812114746021596593031431378578619460753478817888963437513777206938532314009642275798818883994664683279788494384035083843451069395904972746933157996208786755265487620890217943043967762840515194061910931738288240877091520259129243577539821193439877124859439378774064467113551772757528690157807945571388242556558824209609095154427316347293133595629437854757355051104512016856692966760333304826589752001606478765786936460499631112091898990209880409223730736920540687630767463493959575803102627910425265189871433859414879973682439246668807399786067288740816523325725902290437342902930985734965701730102887685638408888532302768397438472367375642662038383445441910343386395718713476735939266287834787075025368788788638190656919736538768107145790583187444082907531516716936489123441272577798632117657344080677189330399557190208523770802788768210774364628028574630791230214887236107466967394736310988736318077222372363992149762093989705176896662899554225121715966277267243757614358649926152052260081752264365245710008019441575873377939441110734096962848417291120524859000014283131601869844296629044313090618179744881354124846578039422208029124307078275991754972091929830102274899052668139131118702869985752729151112787006683700192956500118783428581164546090237986288038623083170638141072017699989595327019323096366982568845372430808459675063270442427125086910259910334864082855976853144968078559049515253226514985341455602805062495661095756555896008276697345923030184851323577899447150175855081797877379893664109840742287856918394887899313933278930750204877931841866086008632052424158830817982709026783376669739431005459416104771436284789718290073933305509446799578010753309217084790220784536927955881852303082417206124578762381318842258361144788754096415617877457744117368352588480786738523401486846423518509977988426404691234908601428247417502897330659252866440984610712023961141835234034273465717116242979572853593699381536361243128001993164417081460352066397470499980868510622948142787242840805627045881522780744386919360992586533111486688353172472975207482829195494945285920005184567612827557099525080777149065020666317821400098350948097822920289380252809816316824615883344078725672270073892164121402877329487051811239872534955896787824047635471107572359970920640965642883939493598426984700475877567470382391905358790516553460405761467105930833377494598678838982333719542077390478868397215227322706556642915324164336392767516474033952663150564408603754133889346760947878396872308303141537980416106420069027875566829804522289668567466608783279016072427739012940210592145094186436044571747978596157011366164130196883798538737428272319685428902841201387792411556333376893748536155018395408097291916977175007996081389070311240660084340902809063370232322728106967198135697130430715848689534467160438467611095972318881493681747486365315269448059701278095404347453246240696765297239786756630075667869296855392966420953689082293067895902182879394923334522995736701768076049606192343017601697058286229953127512567299034124521329233412610219498411441837461032540445728843210482812496635809903024758824928451520496671189710690298384166760082158161186320927368941897039489943030071090348446019857864772497215423574455927736204033801508124152081092586982634476442506155638851218234801920629182836005801151823611692200820901473563725817189847183794320915761011274328454532065913559074648941779464139682454825224417315366043637703920538759986523831549997547379127614761241111188497308546801143463283445599967111859024565218503281266736150448463486437123284728056979770595737912320843650492481526513266566276370306786822422454998993668417813298951957355467100066993953933960537125820999936113104763378994050385483742740960008509110014474210400795332529527360547322079809110595269265433360149504190954454369010214725583442887509104325955246196123360007961597085142337741198921436805345767370113754846702514551616413372455476627931035437040499395124731387187028694274009115145148691333800395852188611101304953920493117641235134378023005924151196918761910631219531908132809274778698383330175207032574237396506404597470455676771457871672917480147789300934245017593068237558175958944943731060229875374719438639350799151323992304669956867832309320243972688571681894280240910032380340847721607793261636071196220745640657381181213707357234604978667588241398151229693479179246268340481023187986735350326509835625823371929617430045482721125320368532345854034067314733110834333436287921863096043425594840072911108653944197319891654713740769230729779327052235416100153305718065502527869589268372996775580267974688875298277056595554668656792537527375991320438463994659912592953279664006092728698492857685707005454912670009646686848421773467921016705273276851795251576688950195812759694615791534075521717223267844942301710692577942516393347364809958136762684099782243229796553603831432379224615178529565919493097155318872224273213468083482010161474545266500936566768872832803228544059727900271800347208573345894889859818775378435829081077264813191809705725485495223827027093818673043598371758190373400356548629844590908388319160781657385909763570854359910505893650690542158917283209865665060342134471302389198804783227242820682385436155856782243992270755974443687625315949801658722430348467773285328795109215724156932278807479254559051446983954288731409582024231957245620190153146433834760293273538853979030187521054871646854518557573237747182950593175008534684659373606239324977462886451700047550281027582817709569457870145247302797310303909929371726255928161281202096093655072210180551990842576922887213339005810499861802635706659287814993859108823371749336154344837244473184754383279584765500272468623273332002657237003989027973849024309160518733129613055269206559223799511386583636680400827511941990462571319551816090330297882345618751121466275364330617191038825525774658656616332891133169141798186824201566132925240725096616786665774204130888482808165544328322475251292798607697289456273416428290179517510323111727823614267177527761779841959062315987588487179714536672208002924888440052480393954179360403980549893133807377245509723924747803841679404017281487478827826707175372258422577246904891691914540363769988197875159247417799536232900492649675939397916267846335748579457735580090868554100617504104720225325513022231145834708769624639502063050842134137284800238733225215441167320317937105157677497488256363351345244142505961539626958194709675854001050744741389644384623480759765322634818398353890448719750916224415358643916988073318980606997065745104231236610677945183222428936079176734691767037432602726382830016963812053319228734809436280627312091753705487377242723302247083591104681845452796383065147750582303593083963275289777083973333511371777625992418378698637995982531879477359911805035674491300060262362961299701326574877568775000025945206389994366979125772440501986434453307586836975555472007829452364075747792830086684461540045970663417611228838609462233043176997755738103841570230814553380851868630259910213283916917857706837899974230879993910000023978591920175773148210882967652529209125633346433870661952020564432147687583163894799214951184855793878506668492023772522580528416294405308536646269744305801033593159203632299351998024411054121118711681550667395119516098662185560094162201105928948629964186441891176822028274571640572488638338063809624325937614742088070729601502510654677243701632239094294259966349938590771779633324708886535526731537478284725182205821099667865583467085157404696257977496919833709830709097121634409979098146542437637781160851975058073502996374833519695567942436296537624363558337219728813894560429313587612076739569897631772339779702027344894616524433792155002878856258001711561604828815466505751459913193194786057500674945155442771624275337235548100877605036275053530434881553941378247370740112755778615187370593601606456898466601202380063570945153374572745913184563177779054129553884247693348759448692149242089442816939242818876752360381813650475278840020251052070294113611112062732183696332833176993985413927307324809579906000555350800510550932517345263623532283815463090354400085271420845843298101898172235705692072156928487921486471266743629485522158734919086106977557436735249574809567427529542847875440261746045516741756858050073760936443772185322609457147622889766972709453932260522703517133452825431021477420336247954282630929843572675294502065973643891753430814318218423086127045159799394255695098891641123974271339171982894407261897625214687155295479552086078463990252985125728300737249466651267158866111928489897227403014586305412886880390160018861459551861352979159578627164690468514491146992373371813581470560936753986656917785261289217964728129632591554731711054411316054916139664127866559338385537889900462057796712908371761671072039701380977247529584695357980930217265805931983205572344286259066274292953799650781657608279122115324579948959874494348051327436897486383425487607836439823721770581107702575985513878449152858826345396348143973629582875072866822732699831262347283638849238195405745665222549764961892294186144603259793724260753200864038448392991461508135189734416194124648712644288996866303714825616759339904632126103469969360202111789148691126068040004545929820218113878373786004870348599604198885546077096759749709194403845425316427264823076730287923315671962751717832483893182058954252820209988602009210249476821303212644090621276780774360393288226873008798596099510257925528060786498500756987398690493004081441567629979747470195408408504164557066596462448294343672016358155135938564642820841764379576592744826028038544484936887607758934137867541292069674731549572629487161518923341796945131786479807351106755608926407333098187523189165719749234401643181542730779729352582346950659625436528084898601882251884586288904511049592593632448806263798376656211356645577538521105148378144296343770391963312749469955090129077019953977523636574798454380937164538353026786839964136504767674432645475489650928034511756061714478430174566513950173486320494074673765383372307351847776902338715554759352275380916187470054033537662866144525809877770069283616395086373132257339365847930081629894727735760205460436673128416912858972834973321687987641396658340007498580699683002828681995596795478757741325002376337584931509977513832071081851859781871741862895074243946345977269740384410626798355225916940127602853683041076228530287496459797081781242232424722928679406315837960481863881304589842685159551590518234165456954647238737761619030342923670454984782738965209019283175194580421495861719300308881692806068810925968043116356602708021086990076371968021842254480289547383032158536596343909815190993682116169130990586201204866117585709400511680788141984995246815146194103040342041358808202701968769942545996202300069309843896387837888512161491406813085668542696643534395128937566643295156552999793748067520471702171553119330754901255134395685774740861213081123649305874575678701564864843217814226182920803970184440327229462105568790927481673879186598737453560518546577423671310954725686833723277809746498044308630332979531963948421579087350376846131970614866269628673766077739388878925400940216981451247592957009788641930588655910218349202467793917949678209641383137550430036288300256123266159882320948800413984816602626170579065143871767386340190551088598809212031876924447134692551216479853085079928928210554464010233584421638074689370045571120697069845796302999017670260206431491399528848449535095315587850073069746895722094849369624352631586627219579273857467788159126956461585359393243850373359761772875658982949835474645353050654720036884073228788714669244260420988022059594848888001074230657445819116124538535210814534573037450077159234189113797266292513194053733196160064093743393686570505451824732528167198469611716046485018031533632363029095651789064519696580745253719040022680583562926566988069535314660894655753517100245417764937513546767829982420513127736822090250828511557081507985686379319782271582336207964857438771507501181141277670640666778439569577981075226444779028600792635620645200321510958795722874261726322879722178220839020475770224738642171747264656646113669262506513261994262859075174507410089052726935619765513375853901818510685701067191059671209160369909976414454981012009679431838392279631938045143209459874351101965820346235664024521316964811798577051461152610343691829651540441550569794978289875489350641235628160533567797198716245410826069054412607535127849042366150638203749619519090060972958843673787522227110595557280773217510508344002680829513940500047195084442145737604327177299369478564649396602610081856077580119160459457700751512074474400656124182652475470964025743365113779519504336675407327009202655668896533182472089872300751381123548414892549430122460435576502303391746106019244307162387714218717817774418350420858007039100497826680287086846181602790052910456953853453576481960314113830042311198255826440123950796404131560310854227159470493412964214373266015847221945904529098256848537357891077858204582275834332013835206514679897027826185481101864245864763885198513658062476972417078021177786279080797703504344133970703509288364075310217995416361217131451762224062435194318591775555683062642309551094557882975631310936810436219446524628596235488622128524142551994233299145596225240960174274692538110558633815662438128714424579069066454976257132849975344459791334998794356878345383786820501975002253035000995367206452190894014110555521633951149707961199077474361844749972602697634907573039422587385387984895345390576097454370298367608525260900859705318307857477998963004702774120093048292601747118407910763045226745820296589140339751835772166113817262490092024734730866917666551987861955684088413664100710872587265468077191075165143888369402369988476759108406131233075760173090475250178032390402362567008268606256191724650622861804748940157234986364774262466845059245121053555685269700361778531888351659600691705105846971259219477137411900438756015915568212077237363849206041143983794847551275616870307196888699612304367000958078456417231950317521512195363041188606986907797394915705787021099330790505375472468686475215919412618891620293533271833483796690713328493229789320911001607478079937421901214966565516228900483566501320589712469732197747341941840687426216057855088204213217560502689525714777441325311817744767711987358293697891392299117542566706368124142622430793755217183386094747503063453312138214022007281208317897751965047214537496599118486885945298944118863176807553514494983798070318280694572456580663677931940743610843528522766060373032335103601770791171707692367833525480644973029283117235911985349793836517381789630230326537250539066602463737515427161073791182836511805388630453198180633130984380840643536339463080366463238900357541443140538317310466156370912359457484010477803547936722375698803928326592404081894335669409583695847761109738468638019192491797955426638818656686295573498372069132727539772411816762160457156122431637996411163289404128612248911975909012250262418239336012548166191788528156046230191224874511754276316942702079122824439176123639817552649119597791177905003730752982075823537639741245344583378136772645385678081344082563085966184193209218085564280305299528024981102661141310729799023707240167249979682790748352079282871402238188344492379404264626239012583878599758213095376243061858810110350606228835219415592981180768979247923032422271292757736990387961941167317649679128578346120097793607255765974682974470529956021494721182364299754460150364549870767274401878467641987383372764586017201566950712126245128007221884086051339024609847300159384449035658331272234289700597562001812979542901742851235907764517812997111881173765921808260980959242906764442048416807646580405495931111367916622650125933827073972935886196919948791875761417241365157770594312917093197200643338644214215611270779377831597382496183665768349175180761516471021364328300079150346547558249058758360840409450878344131133880292023732910586079673914257449434872036947023112948978655791747412108743905693055920839327812390464727879754503064227393673453304236782008764736267890592536842977687449051094618259732936392931777664558394400865921474230647118824946133970908187427757735035806930180113151288511044973926406320645127901302809662458122292390844907784493043965660677669426896048176570531975973963263273374280998174639992260623686812120389759705254277863042039475474044891824919811858955018190953366553965620311313082379699502274704140780447370622509867980542486267163288259280200981222758814501807475220263287043869200868386448939033903339930188042191356382152673362590485444246415927391774009832860493942966371656155645218137025995204086125217264291132055158989629899425822051393233908808170661436273171862605319509118096760737022153894741306365412452152181642258186276207984189540204217494467263887820905075860450241910218590831888688495102844882269565915242578751725959942287253515042251929477523611797533301739534595607136368981682708195661159785713041046622588440717558551253633177266439256645754492939477409343656949924815482509854041320207696292585183947226224420072140432143566299143346816191210996744496393774052613024928315400541402145617490614445814490858766570241815162827451328694792804732164986527457876189323224524203528477832513177020765546275861269885797913577115771929617074786112682762292045437466351275654772256867999066191033245413949099439097832377128727987991257082507581520490561121995894848981449705766965864208890994174279005881549996157033439573587278429279396475555286191303035788848837432169165897335054149529669684953145978449783398986238155236536250118551213729074288933533151618254671387255936014142988766044693129339534408174113712558411603994839530364493762675042336311045002323868964170657906607288627075454076866961221845468855280726504522879945934378475875752214426848703523652738606624418059088322028232741771771526292011221267897178819623469569610318235865462520846247283798058673293189482968556405444138948842944268414793166484388463749042226154418153411967169315888910358014122114395359901857243074655882586294380473889680253266087608737710542791611922573265073104765149154213373510078014240475238700426359880219602693090215019471334689526070078637523162227658600276234375267466951299716055499419425904309308338044326964963765022167173917816948685434190598325313232352313408965975500548204544299092257327584149755531151319362867835672130327445521331988095612015242785873902995687315494062033428232529128105555316262222951198801741851534853980006310200491241694178527626050897909216958934990818699518453299112304432970117640173590173246561375504176404971073498788879034987106932963778898521367483595637620058645016401514724465549140742400345079644861334128108137673901209754872700308288806428534139000879156989529234463550826459275427926307027618930569187140159215184027896546428518860073966463022895500311665829392948362206845941751996023686436523879083023062888504819913928743685947140842906811446243815661745307506187427928313470366773322881537425900692153221776138166130627440967050488733368888085009683323228386299838542522227828744167162176953671323161381414467445075616400620147938181279289302428415937054813157016996628380765406505150269890751464765094718280014634312508724504262674707365961012093514969864868550208624302357727391004186246236993349585861243760164543055229886357263537537609896131552580906551314025579309071285710225410695273109333823449899251899611324956248047615338768252070198479048122127972419156801631170341309238631058877137696681659491231414900390078839036842503657174586876879393398148892104026597984349175465672774718220810873685628663556840388402963354748916999263910370059867658961959823391571215611855325270544154009685793201576826412146970545146619505403820265626534334362242723552655044157407707085424840907474423350217578149467220835241136617261615132265623475471044871531785075779525580241347153808377811131419095147691149954360903964992117486992926416142939866903118347486707079532287794411614898153020605157375299459829386503492548963148758284012458929010173938206521077302903297879619706833554623023413181911867278648261177301961262801104979011523277287514941276634715054783284534395918744499254660151187702199512884289799382775848385677499535165022237326081587363328953362125167142574607013526727919693938682868696365236528764666542871684849798478445420126911770652071417081363591424814281877186678661168593063867569347379473265060948502335379913755843818963192118189429242749645504097089913807994572101421116592261661546678215058878254860619705699171521619385016911947904600304756664054155078822924118284143442089020410539496257990287944987081422081035501663493967641517314604291487414459543820716717155894425688062582156468715927812407869966343118734112360611442194548529040136752316532707659094429535433993888508182835966630656975051665266619942029992364699126515690422869026842999659009959096312734358060338283086953007904737552374755699594297329244676573935942462924725937394420034896684834699576913931282703258360275163284585964079584997335633131041917328259996241118933637244823838743766364985029231876030576490061420524618535077489054310296087399589462174919381954836802519351069309436509368767402968133453841817336693335058247001150791076726356670452390827551573597195979295724089166795519471063647210482371802728885045692414125886608258530878257460756134662797581897144191294234002330759628032548299728934781937891112620901563513153018445917987844616936794737403698903076815467701966483746187176807461607312865106928753657209616215660307494335729544114477483496468442519480322815682971516506207973988629445144101420209256269742169441561145133527706903517817686338231632107760514375931991163037621765254566414876303780328262151017335770262775035542402886251066437976267705996996992735383609554472695562619838835237140986298935943104393517849969506288221889687950476267399066867945932165512278946743229850981656047590543628765435037749906818703120503766091595500872253832548767676479269887779626915096701421291853777504530153468452828534919897604472748613084830850167963851632409186635463701663508008780760286808481629668197014692189130421902011717679454674721634877570197757600507324039098933935162198447974526120950216190770889722187592770675004378235173702258710706570628020424808278431745688434041388252062905850836479495438798728543660589855132788230964071200644096506820931991897915367637879755513442748127274658495901349305203805472205521376834295620523548900133271227278705378529135653501763944831348657818144094291358038388188926916353665687801545062922537163707692053925746937179356324009383028235323709032959811861886137559345196268023985553991752223163281396246205452227188263376298417523943811731699899520764890676603821692075925006891113104543770164142125864729493514910209506812229055532234152942642671356177422874658327294081827999886814310734056625184108526189416740913971720391762289278252518115039493596305716261833358637208655090355420249369895995350981643621484180442905385108812645526813254204375429962382182052019827317504825943114692822573751349558873558984381988500002527670068840455601934343628502423386732323865819761010469859473089086484814925733105079387364610129899581117818522331618401893517999772248848096326524100785646471519581159265152275861770811332237753625617972554341798330943885299107992333640104126910477347043821416252191679819150567345560003303827776307475204961535583424533389062207510009101527893326210426102980335254035379592611204051883694555917211433678833341147597681477540741332501980639251178888806242125435721966029463546197437129634900045037827569680731508646101087080373607825048276735026466380485103258459688366968368635548685797667267014727383393608957521608656979451573977985498333520229095170685710725347095364358706973455504437340501780015148466543116397725178282881455977220883978369932835973769255130977012759199876646600828744583335822935673282991999294411623726940736781084575391214397119545566830537911496612281330253377500826923394217480480812581340968531710808443660552642494114711661202350326453568175256102087573020382228115013547236994339818627985290210994532397081573514304546084426960382654585459665210553172659214834119058289697906816625949783025833990409444220416585105433928782714573186751290855404943535263277597726687222738709234971405935057071398846969386732138720631902303986545906275890823816934681011041278194367271539365542159837864091280562846346208872250786538077835574159147386710525439733613411671216597813889720793770846695776508929427032541845080454275015989065522770026548553753776031997287502591473700737566523105510856096183977672994469051996594720602008521153174843829876765383981638982800140696879540126980909640427226278491099557397047515542424092445546118239111069297230024192665289200478762525573006382510972291303099566411984014235179563734928002555745170280503962853795452583171388356733480812228489043489391258893922373365967430971341373991137628559778168800889315326383926748559992378250633125293488315487553628405906783382929773617893903870734204231849899627805161511495990398149097954205753889823195864203319604194219755689218755044283001713084680417795380822715299398278995748156106194488052449266664460440232720778310192210746455124573337437121894293741553672003598067784097688774133744958823734529833190386025217920483580178150048586946057516879163679195302232842745944882369165222516207329651893661826087186250389870235654870695455635609061322848434028120744412508849475073902958898076131915927663937712628630928149415570903766326062471673970931564088587840191188532208715760152505938410198591032386210901971445885383335308651874332161893404246210187908786591632510981198599162220304415119579624967468345994201428091508421319818390122812178760943745711372650264087466259890904337610526087152134525231560518394047976745335617581481870992013879052102375428659531039363137486327487699341086150599852613973545801983094841259526354242587136742771481372321385637543171998401362221593901678020988835255733170906936039218724395112137802053190525157647867886045697391551719767108289243222287472599677712540841666995020416336404883593534496321038907033550338417092175310307677051580235320550012182183475827591361027920861230291354602228305352236820794727348359086235379941689068272635933265319781661772885349690914876233280897376354358932496813764390150154164401659458982115387834964734394172504932135444376960147443494260226680514087975606032115794705967063876980540586799695577443841151105952652565169604668715135393994138235170975544290644279497354872256775547585607914583616218680433620910105397286811777345793982677288180991889340199346155166747254560266872517128968683551172377647962867315195347386437231034940946743516428408119643844621504352695818536639868368444880596919156106063268134035029616886255027638580993881579943218986999617821157262648438983325489755938507527251370413983839599220578224306011514013228632452324426275975252830161447909868006444459481535496849707891637698810931982031834574076614696772296833115358884590569186495664442650541761342706282618464479900887887266689295589137999019967121638100998711564425293670915063665406813184690895370173931219773297811755983389475257592685432068645666154584170605709148498549398064711825600107689547490398074761243801848829114156116843367060873177982790736795210648641244015127596110294272563714272069999993765515977492254236156368218395212467744387522031728238818153841325704378267887368458496062543331779825195734454519834780461986586763086753882773752789586693786271585647026584950917238792242521530420317547115228526815617684223084784459119791554049737883180252814324453369477547633387665690303157077815643702629851624143401959808067042682127080521294184942257261549774492912542587201648914735433133360321294573540247672460008428256138640022802920223326465157667501200722816035685769860784427042126979687968180839299588821187036372043617708396388729739972200154407716611123310765698158556093541003532292603911171186147814270078196733759527872931064605969908535652356830280014300077238642392196229653606188474381805588143672114119419222248180616110935511037641759717802479569817044455243489742532070221403934722111287199086105557784516740186757618820925233444644495556368485382425362454083671125340097905509910306647215060092569052966107618034909931687528257580736160849533806370294004284830974617294158606381718342793533239254745985899993564855619747705295241199001151554347232231991978052014143227996986936926037697331047615631776961975188889979254511196037316432837452285380329109875889456819637180867462630052206937795676818972422850960036295102441228594781614806470045679640865465722916146589311879419116104703923107657821627009985303898171247941334503478052165923572268889994800285733397309430406661715341709026140554250374607187483024049197506709427442907050602490322273411656333930830531297950888858976747897434691474860135287261788447066624754872719881260427098624047802701776671732472181293431179846392348882387543239241202613653597151170029107637549631382268963220946343950670261367072397289534111175806269660617261381303748106199308175750917906710105711192500340847277837490204034581954323597482171958661062049882696879982690447886821939738811211836231082899065119639488099191302386052889734528327169957373689436804986679559373716301778057299645830341539156575932443105865675788477057379320603177996421872242184883652677846933789182283330782633916302114180655021831635189102362660504499870833321888162165137067343127640478464833587612485474790128273931957129673676023601116475257403592407860982742720654621027958600976958137805318156348430869970089538797888095478377768515172555502147307353242456608275497006394461946761180086653411203389439911220859598782187422761717267060442211641484191073987141440784587571630533280399021965090011596959371206465931954883724219779772065531521264938291311567916032037783998366459708999250183935827475710598391291069851824298978888735747445466423994602307501064086615436843811738098696076381113039676197400263511128924167507145379208524698695344203916646140875958736688977963190481637091051875420377858365730109886020024995235966713487787393694178786496126789713599015229345250780689057312189262948426968146469043296302541000612843021661562714749742712278865273823983487014601551476189088758581121279111084413835177711205516805985360845019375481997025832614889645404699421105060702260074526556408844614999503947906373798285094315820488399681167243588252709419638253233119842060128879668160649817883126259613402493972496084595285527920780846417976967508366437855598381879773146006544876541415313930144511878850676786075447782299728737460102139738165034950378386407538046713844352189097072279582743752028979396117595250732060905805384106407939558157959201515565458705615393943175171401937644892323719959503785962192955175848488953190435634966510272483296295361117403145125263580205190349107629048026154477450411351593736972858574857903336119216261635300240910500001949818790486724843171962227543884551710163836933398987278104153577825759654828557817093920854149038492744835551754501760072596442758015366669276435764955749832680241907412108431948341453538375927988950858618996516565189406523154794985817803050682447361846863038683907828594878212946431300619926952319555431271017922099288169164312449219972625884223171069242167987948714441248057743298694975245518522567091316066945204054809082022372028029893590703423135297226908225725692282621482047055135797197084047056342147313240431057196489116620218735189342112026308181042440931763435383775811814570938707949294634403587548922611637244443952115509181524292092769199887604978246800517152669604139818404889418305413098207412257375690536053376732474221855011853430469949939318555819382615899203046898507404188227477477663225289004480818402224841943601056428032487063825759620584487980396756208932338372683370387513053471296812339519685357819289650795904470590725649149358352239577479350058534999109569796657685552575904615539107611726745356828546863854427118895919890000301200715755049024447356300339671241329304144028593237309084117608274452519517583574503489080866514803032478053418191354052893630585174792431787123248492781124592553490654803644075356856727797423551754547163823594146488875520050104201928132833901992628884562085219272861329833781822934071106389077407631763780162712911299568953127243971402523407131785260782173160642666945024065952536320031126403065391064803637827229633531080774976694323923582063188366799879639789261448562801480842565185652619888003690264751505000232339924974073461239875206308217711395588236268267152439560974207076803728853937368695675291337755486371923168784044441920510189697008296832460267896552573972199500926668926048431726097260876114465208269981315505283209750403318440867870637245855327692878959138956071415600389402598648214930538384669780013947184046050076365452992349554684875544897018593887641394237588137551973710693705041874850564906691243394705858143976994807071296144174215507354391780131649861663877398650155250388415889465788013746653694451161030646518179026328053849546598697802477129247431919807848254417542200763792630612374375493391349408008084262983573408429769133116002081857587366306858574851780879099715809681463125902829533734511419648745115621260103682819330942845742837365575137862742063827754231100442913556226805193897469591789036814904890109146799031661023791328506179241246671906194627472174795829147621437147138128057504271097124087244728695197322042236348384145307130887486200080873428169133815367443762521502583341673245972784851860012019823763582759414462135719627174954707539190457600212534249308781307874827019866714366412922676829326624535120221216785198607651244341068853152066546419744979230657603851949775042916177060529460045052103861998834050874620238711970630878900386841940769281780882129158138241740272548073003483484121199362119140641496910264472835785190555871639118575631320974506186056424364544284503248928828745955139723576745673019736620675690063206085199552735136194948324118946240154093614211523579440941177913938247445638798705749135502791803937142443310610058427471331947540232579495623446947308517387915758403509375351757045356906882229412798127593228544780213685173642858455793113300968227928309592038491387227905440706692671895642102952967607201357645733801950634059354866018573696400692202346576575050653997877958162630141607744744064946770127230469189455732304947423612127654643350789697770802595654273714252307517844672942511927886662402304694936814943930873858871605018406987798039510315563399112986517483866720951757671101227105115882192049610131107576673425639802786143587158554383087618397917731331578707325460419012275526835469422256241216926506901506784933273695535052318245192119026166980763090063769334718029746796407973924492588632051997375961325445325068938579186192513852538283250918771255548264315324037410406841418993937116785570644323603321859543649255473390549898098501632615467275027638483873027405548333308744402365961650608217971836798916440921438924128558718749540815038457207769008610770125432228471259488552095277193958508108979766259313925038635237085930694827732336459627579976092910011296906184897427637983414966534338178887592047140837347862852159466679646571078729032580151841960941409782200408206775730868025395165802711733635212744763269327401661984811915917396453330400343153582799774065898136980965871471146950552788494790906788920681279697217473000654322043696199500242516634832118793142418374346228854297741781883531692913795497292204679200041366643205811059538644261301521209207149379191535396916263039074334732991912358301376265338798639427308899921991494091669221269133503856936118370712361345636312345575629953256386857496708586234524758233967745866887739561644935907069858369727319830562792446428970290063916593682704999216533584152727748990324772858654516154007772412373329675571801435276408917217365623251923993908507187195084088766977832672361727725625842245962959579565447958105311882495325062205841956047925335821986009008294446203216616202029097432174203376557391228337557515184064444572402804668116353470917133368661858711628133159744806224107939823371297507448458924357149547945491186166937726645662504840240010383660017826494686343804695245133440910916268316566356920268965594606035137034405037426657430820203016469473612421364635010076230837620132383522199411173725408455768461662976927596932906765766251121029525885106900998243623220447698480541542315035158859970247717965485803058703994293377595891313700408575931690158893623957833357474298128576882886564891392322608447006735329940579371922176209707012893664700678656791324411880604070352691212615738020746055274684184425546458170456836651185100405767845340377814228522285806397070216318832637772742313605239793487982002239316969225789294259359510245799693649059603681326526017146383535785057318618954032310054881674727723108071828569081392021738278172236721046116867041490075610383833330342784932257231324371466382456563941072514231638140795017653640300510515998646470853841035416710214307680837116471473846276781193788149881859440865014586038342442906009269179527805272579802152707872586979282360878761938926126881532291487702506087539944519399855681468098298062304244692396976621519365085749790951952947627558581941306522284335995047467773061933334899235571590146812521780115099233827006319553419670226326786909282906625191925452323999509332160176551925412283659610088572715392883261788059979132760915206854351779614644332214439754751983607879500438052015297234733360474938256261143957562653880317316736252067483251894088659714010676531460634096104548391773428390381201085935893236862733693602010650905931124267608167809694489479237919550472158728708099596413006601748949895252921890183775818449095447743938601081770954635759581550414481550726188194448545822642685672026193583823278868297954273033996291728741953367142857415940742741287336060593161718423468676408289345574714354904526151538850969604634694026916370518966154150087756901666631086118907812342211226249267819113073928032149322648719751450108785058536143746198417211665373323111767093058622785273355969069502705983552461001800505210963697916320251521413127133563001453294962757280012010693922880181551743101810533600508823501418764605611862741605516794119243227494601837262294541835764301032153194184547451760448943826084032685767387594929397822287025532811724399735747071498435379457790157798156161023453207843744907950777803252728528904835447674242915939192971802189508202354231149963219877823952562522973749294708121744449253644014489914861601355397267558306628264843806391099435231484939604773818412267237148608348149833785160007768452065233381645799583210650440028542311746587481927871364625410776915542777609308392660195192528154707114801481946412045115838795833294796192293302298355702104533205328452845206205727297426848393039465727944212586956130434951484097054987552503183691839035164565420309535620129355352420793736259408650340765852073267530362806904526235242395172703537664782766637017427967077266529190102985312391047194904719784061844080961389118759671295927157889302936357810042405445917571794350703103719433890069217939021248132439930492055462500244604374007821692410177227422859897291770714452354089916309902294033872262255437991790944339422565842189109287217413582999419433523974193968553544186749205872195953672338394526770902863935667460192789847617122327317842485378429957314582060927824588789282225179806244840050814785192418067297237314966262941396735206653656000168914009629722434798331648718131738099026666227903405263388191977624236720017818489572571976540931998578401271519233213493151467921648999744272746685620185221656151960840494732501076181173535252220183642594924604328174876603178804082686883527429691772099101935481145538183675241321236984155841041960813657087650723789428516451010625678740829061595152400748632236770170946175422949151151659974314648979551903210286280375562171250411103086779738607312136093738123178726274572432596594821031045026745493224374586915743636720542920110082638287364684278191158433810900305788225332616016590692070601089497104988189614546784396160367348238153722899044436185300251171704252875360583890521130717108654785937129026161952313158837551682362016426212433141513035363380976150175232510367453347720512074883784413684698168803892171156463775404859915147365151108925952566117263696289798762799266487366847342604651468433576198757386249319169345202458673374812233572387667752963672968162181703955858374233717240837136849388024062786028923990702056020887003039568806891148159554806651883780579696161928224635628056494236596199530946032509851549754378106616809379972635750622194491061935828092331160614773149114445526086357971441026754892134559607684544104480361620468829037912336569490154810096231254385730218687829807589515539448564637377574715232199049739726075898648349578266820818562717020830165898533232751587484267270267497815200300054914586909623112332514446672715989009895291331409282082102353958358421727554952963469203659253924907980902973120338549155950068365220292552267878099201217320323155346824489145279030871492113333212747975875679363180467239477839011011464285240849577774064475586914439994890061352539718796204492449586802852849923342262015952701677526205213642252680336358735007799367922734563678396716398465339770461867837397959130398717171375250558154720614860047797054617527288615602837739460237734942177386211678018607569794214541689447300588811693841582615331562427171295399283380641775065536003399421545313046102118240105794234973572125056174664044311835208898665720713309080348197806493674457301634801002484170413905603077490370135443725594024498430465707711750909055233882191993602870059164612268315097285626352330123976743313768909650032584723355341312457021549766633867797419032792550129847570315179823402755370031766477920613192246853565102806415547575621438479705470111832202696554260151584327432060627845405874797057848095308373331707358678580998682764637788811966456443777578881489946795409600454468128028706810489681400621361228171452157786281946061308769040006307105545578858341222499608820324117693009966047402315085492127436599013267484842179331705211718332292135143275856524275551681752904254990309633167897182691796364983796643536894386640528668133926987658323024069797233937518289806374454525989955047971921980998883615940557429246821091163637135055439025549297319201768710038411898098288889885690218259123184436375753714040185813755338703123788016956977695529493481381936152569891496886913649170026600425789118163788890801972815056660417665430104539253900703169662620787608333095539580106095162209879608259743682517658067326751982151451126568530381388939873232421885394936531308800730578494887786699893262633566578114638385458807658484472782572462917733066886469067851032250729947607816374455145158184665542023655475651636210353693286637560415154715032136575444199488343929130323148928451271621569230104152085200826460972040260778037497090150125296520089990926672428834110197641193787152494603769725766652170291470724188563228966791067014608562059112824815039236950929599504439128976138310622152443304115406048335072156723044737565455669377700501148468471440706370622617667661994531509060552838777648399483748249919803836725565675762338927705822948269025260588802366890711061920307706357190161868628212297842004997882698544492939634543931690828193994860314049918459860065183625001904248831295241636026794969182303847331266367623416560845001356989395881526696836149872847513038118013735424746750773227914030945352869477998577674334753614441430224575849990188064949624492846374585673232835412501537811106244606565811350841592693701470863814182018037585395040641832800491726517757331542922967557847372446909038778416213114067315611912551851029440599850537711441746987558172349342335872468376995247838812462688700928609976503937537246042685889784740284705055714919426811803593952826517259745713145029529034136081531074133999594527995394211516512316671567218055460269909108489767306367599610139329251358071765217453471004405897876782392667269102240223936997487774180906536785292307591118823660113396316937760629329932776010490309972186392042791255007976211823873570997572398874233455782105007452515336595144847848312656627550870228330498225651380178000896693787848293094882140239985879173362889903151643063795666250335706404215782421693293869900412574248723129035142136766043055076545222169751557813165346174908231258655706168667109487119908710375890619239887918714144865103263787393593411626831549317757979466064837849370693717290080988585373908514900568269680607018800291758577820335062030402419137748884745333679818846668009158457230768570377849830776485940562177730317165899047883117278838953862489708412140717301738876254991820789518084535987617055818036355295491001484035376425143684694215634262733859175380312478102967113033667330203451394100193136809016249504250457785931254034673393498013510324241957072160205067606329795595143024151022512107765219287065609873322324058624737346002015377786542577287053827057191508864733456663609628850966463689709504489833349581648959410565056308289590114750306508674349714207884079782577703626701702779114397966285755478868892901471964531712283217916218571927101787194001668150405359968471102164053124076813025107561542130627291921398032839247822721069763273818897809429453128729815479725892258639603213518532021499053528277353629960959497039350696174531542704476181881554188578814384267034461198577779806166206339724435469926461232131956894415150035828331224860359064752281145493113342589669503719561976510567532126384314218057103181961003029929930356367072374873930184224159590222660117230749799585893823214775517614660583711828962545485850245764101056186762227680575971101434264505264941441383041976426692780884210634353476552777594030824463237695170861251461715592647945314207686896448330292378949031810652587179817867536453614651057503131125155951257828267293436109258682746330810626374582193135590308197160880254616872125582664123025793776731567683438109411833183133720091949169407326878816245897322052824566986693280779190585832622821072362960299908835489635486125918107119072605195730332161712233287212273396890521046463837437148078552537734022573658710016815559107573317559631118365986344076112449498076954294883818192786733924733086335496556009738511952605062569183757724630790238769734916839812029679908261246178172683610817731604084019846769307247047092251723293646344234177240110546034540234141540947336886045189401384797763223846470225071468043536302617517551185932401081243059990592371455412017480976545473911544406721157582640365084991267485530536486264862711482508067097981132772176667422179319770426934208460542263444879746418825507559187473003837361939700085973415034139745786892521707108077931726896200026095669246057328195465944105341798982434789931690619562326334408279545499963322582252013535225925428589706496368228240759695448529276785825308971255522781722127933892321237920435837657147874045548130275705867541919930917034915484420475689562260860112620750001528157675047524667653950833591613003503492626110166545138638149808833224435936813081742573803960807698810849935064213803182702695881474459898657588820365016665960701318440263309043876441641220623553161062059179909162416193317292564318610071893118078838475174932216574856654410557274994561429845845269063063389433795440507530128595575319747984537383208888031106998947754149267099182584838639081245165871129701221437292229050692716641460262582891119409180245650045341437970867581334456415348291905549546074584556236093345532876655298712190179871803755993534008870022107249545206999220373962226694445471967244819664098312635318324617513568444200837624325464739618252137872462571958283707167087126952533533779648524215986685928807700780941662406313062039500073607532106090771216293879000079220023423068690767636955305069234664984668959185010716723753434587023601588094605407778888102988992153850060578965488683865106824757993446870014907643515712188452590030020774901150198861523762634523610276948553970339085216764796283716321049655822211447736460022748456643430034737910626146743036820948471284910572221225093414895229325077665607578290665992209440203698515984330424495238924115696104976488890711963972293979286641671524918717001581899547223560894586988330552233090707373241799361445505635264771904302829133246253838152418546834449146223578576271444504614184065789080963613969246820425227285161050243936452882209427810490005463296249274170438250968797611394784555875107282359929691768446553680848514649546826006473319811976282323856729294594410573139899133602112341534177661157932446183016511346849823680564056401027040193036809576838200305066009081088220809950058399673790386330470856004970349572021858482159029048237043694692210664669640790336291984811397411119485548872974299471503929176405849827896388445691829982906070437675679645293875835881181819881274436349262651415240694760502444662984016208738583469095014424263124461123494203603311394433097188954251207835053622591856773582776772923133553980343244709569803801948875662874477802802910267345125864544607233271163739253976317852521647148700164497631545299188935459621802856030418803124607052433197368338345013347184493296885172620483844464653429485769554629493371402913648616511906940271564874665285081462168844864056060651369674739109886316528894798679911313170405896100965744209921403116831580686451850978787995463642222106552152553587077793105787597081131965110310086538012317417718735139247572828654938491467564236758016745801673293549143444788160026191716863100977152066871783261642379199733574399818232625590063273569403990884060468434706057409653533315529417415279731409247932636568980026559216570897258498187823258454461472438459505349477570428849193574923401767978460985513436297617548191986688304979647677865851633439302977566181883093276201859253099704903747065549090026672731756911841488000549752549717873133500092811349272561098624676776763340315062112951085346805386141286139513004578926943598358845707201598665240803728618770069110569135403164407691001423697467456384576044981950444172292864089392812896672444593710132082770553617506004237484185217848364050738939242425450701662826294259510396365421493738915958079919089876679701788457830457201563463205564475621382714961485000132148270637598510783744736080281422242311617223831231751644464053948622476840980595943842302179743815490598950964387572041027818896182002689556186942051253678301827867258721006147623631956005731606938198360152959075033014683961558903525450286557564225074898298429511729429870026074994738336035534468350855740371202833628896979386054742882149984029799581916257405227238565364486688491268350543894211782888452095887621419601345166001024566245114371986297122014016800451226080003682871108921784932570586312199495572376287701126058257828945309805480771150323635708185228656075101787078268743443699634545833574869548066472840387625073627761896712806371752594242938030871007445230277286716421945552342381604922874548816356043511538861245526392152617484031748911534534505747808017774695581985012636891008171219670799876480335642004550410339613323488632258316288549029278937770325551220606565144641367352623787303403434486468186518469461495204926486991862808502906583576223194521046474574572067527737198403203277838550119903983022631946162835918954017556716331890543294281500684336288717133951096306948893740000680766094014483800649768437681204590350258150468131256510509914764661471499151392022951154504101455245426927584263720076602376919760221267198362770654653389251297342266463514728957922308851633307213311072275033018436848894648200022692460672945651542519739556443120866528869766496035169407929360181302075259061078266822031820688247550083949403622667955309820502158876775606325793667663744187124916639464678764275013802480265078543561742707288589716405918997374584947456956850018495826918962108811682906716894320615668280344983733303217269589655507205469918199674524397925863924719406734006726162830176522982942607363366888007527109740017460240086107885060503986430888696349761333342377443738711331996971612058029233648766311827164231633216058670434598145573963464330956050077054406821539183077547092142835860499960574799471061710091765285170686542225498820019630839321527685623043536106262214662426892691094053100299155418144219714351662461143171297331589558980270824822386938586334219868824687784431872980000001655897044509225875905561055260765761012464110414020886639019353398678201423414887259287400513655891064410193410216082423689357235921267508510468494899247891405072430542457573428979798256447480159756957183160852760724891001345569192228088263325475534339295393369566273422215632049893121317708639467989735379193583110775383726746484766403195300090723785801008441620444929507407796697784641687210556293532228664976158609877872313479546313245126680577471426198234709348614296708857285944227947318466832687350224952831617195744918202357310293622410724028502307642290079886749034832847106564792062857350223825195269736654054923400756181298220898081013950306597128658131526510611646720837622268841999506967325401004996970229960269561840494584281071310697872787238832424308327935563707307509369960801303859361789063711057928398857424219315220882753600308424170804904386944324983023658298950863208955960453453028248842689762969226652639056537739418136840891607311154094758442241599269915694714945664835081084726063791623588348074642696857829151666922939152448298115422053163026048969413707802830921073317875829485701581643533751935815226986264841657202452501684797419596381450350880971576382513422171278186243169359310822631896244967189382943035848203925439544129193825473577784131177536751303384500214777179195051066386066459865201034698402485242162514394187479261820745382003355578998099900175740158094590957799640983891942838227147641331381969958057156785268743862551964339556953192481589214993025863405697345947757814042101599810710129252779938273666490871856986714918024373692089678234152895774815822928121508983887996534158804190873309689616108437638049918064741105414216547198740776313234782194597617495921284674397584023286744208669542195723206883399316038876630320363371786751132178450257596978431880110402026344579728024694190949968647502271399848709735709134047910868613938229859034387992616020807275283644874174711998296165265468319967694070738478103017887267025882241976805035159750353598860121314187889785081642135135247813309872898983729439165199652243609422701870559415150020540653124011252442407594779142757042902711662337607626425907560311543899893357821350658574835653372890657425625980233789619315790570467076732313079791604946629875032216850912393987062300701219173457984612455454514709215164892796401760800139351873184120509777136526322238875888142297708791089381608603892111573050686258906130409442778300019254973215974967690480250280505202922572058231542232255913900039750575687162360303873157799867044653213244220441668890956226164199354871707205785234671746072193394810697954465007326588554930033891083496673839796633754122634754966028719799918299262771595797017162885210122774176707704023110173631712190439026013694868340712798054093421883751129829401616446183770755875700416124646219130054558737380504393597893917828284585274965445495161171905771219824694263049099973349448780255763714746086274583761099346141875966408170433347635635648063096825138612316450272701105094876795787443589458750439973116547994474589538114238563227554850807867721587854090459975687801916595221103869895103332693841511424901674812203810042675957004001698171927274217901927900700490963713518170389983093708815992840870877229005566249508848367934234990373553383797713690203693541029061842984770899027580359022184494328139070429253315083531196173887237187462368223493798878398750103281999535685221786250865016866508831026547182037576388232423614832280780153374263533816580003894793340329554085738893805509883087509965598349731037273115851905335389505665007664503816927660971307778026047050363657454810685538991164683495887459365136049760842844688137669370840646067515722012029037110955946625622523378360767112865237164351960715640482891483454259228481776025071249026187473192868903759754002446930118733524259254981781572327664204047770011138804858842931802068170561360962672913505884115119077577233554708653601109875019790389618202812210623384066188575411920329537051819402029828935719772388421185627439457494241253036509148615969171597769724580115208405474362949361112068741642719406705728251949583489026335213494413225943548142804841242502552043191716754122716519542861806767187948841330827783868538235350300717249664721094828018369993007309626167068314713861943316096848051779336166718595660135075401457522899104332341520152568832330865728183386737323156820252686438839415895762129994146448785499797277798649078431143374268915844745975073469125075520309856468335698943932903640752167828577062701198747332417870217126262161475157781112819638986509963058724088630266777626146478308842371420121703430940076395824444354161118126861226311147148846901516054617773774099564488736561579791780470405738279246027287149641292211512773892472240275785913741919365136319891902918778288318516697268851022521243181416328659540164665465862493547539082678387082451071179971120307400822531939754144818164611833713391161613570555509311178288315290215282248388213063037610293902414507270831363870917042187428339397892090812223322435328191931647701484620387365790416059658822575564182257510473902714577231191154735247476453854935103415221688082556602732216106626196315820301357998358396300295138100868117939250691679881981231649895213624808482583689300305689846455491239684033188370583134382067998491871496202114688950477384375518573287538469041946653021836174533161855173271506118484729559265101221446843613182001097377949042582123731188826050178767864588006498532121542185250167104610807880296532453542218566561977230311140166345905582092632734810625272412881767950301537142875790231850675232231803166290364058002290816675025990948955461585179380640223451580961576440840164567180882452561094809855483921676990653813550015352286247824054219223300842302654830147298015143376783571780927716570853021806948001717335699577478381744719460117680676601398101221906761857587361802978884834409078150488100040707968095456344709124607708839127053209727145999308149870424475450010314364569574962971004726230512334478852046852048844479565034781836681353948703913462607148111671858814698209214763464110464217996955113785656776185375698748870921936680006057188112927426626237738322642300603052881309526217441086956615025382005803838788750194634058087218177282358424168430377870080247677123594128598846063427441980846462245668183116710382264473832898779465467646972228349312965516981138522591369985071017811551195561285313692870873261859915359935554170532751206814213402590975437267975070538868220827101797549510728320871109677144740502637600098978173314140641238144049476601270853341513217936728136197474778304556591474867839622702938858902802051179362212967118440593975361710576181013768827665395710474593386864742766402617945800981949420576796020120445173488872032604656374905859948935408519226831984119422854543743114558213024250888034204537738745807990871973104309250274547478122858264013171308875447178840585112907898194882115364508479924250666117887041371944977271240566305489658880301268380501250257198616640812818825926209349495658806130018154695907196408409642648387842856343927472348253122163484765816408827112295547170255993397543329162638869545993211766683012463108883407225159128585284942028288138000176303085481247638718909713308694272965018172502525826221966296337939982715520239930273769585329283890334559161837743255124245808459554396688703799514880600739721441607591127115888102744895078841902466873254933009824820636511416227226948257567760941064373343960702631210265671165459494095758726999924755564464872702875451400145085561387504134167857474003429616518858633624467216758287326704702852590911383586178480027545205738256749748481411620757911355243429380944006445850574486374638439183691236629598823369268529893859181194703261713565096482852155670204007029054635562668592911538744832984125218065731184217481325941354947873718030801050936437980880208401450311188397413641539388132338506225040589994786987618464843348892580676946113643331928201844327286461288417948519027011979657873089449192737284667804138863615914709051992919379920246507748091095825080378984749638823309303448864252982582897192475536471527687484248997219563259569615270210744301652626678840761010949543509605251843673158564310401793246182149583090545268056614243632064255607113948224808322485258838335072466703426616489556207665924881802296254150975115555747969685435374323831482444267985709146808560396057238967404351693617815428019987833537624390190224572881639544862683764995050192910478673057934904650387795307062780650120703421044550144034351843254131788831983329210982821434102182233830259622486686055556113324296275828096845973570511551893162013227260655879274637524760003486297522634419062409954497875579140980496055129033930621438027416330288487060042781963996131487769377589613771065823756057254095573165256002614209036201582285960437498843873175486991362018293998379934196369513179597411745696064452189160696941047008753108607862281136350578074191624912366481928221846604761613419189626636448418464131156905096581312809925678988497708709429419510259333496195085906446386756818871125372543805785922121196842734845256342089044891080958943602006619557704551233398415173647313589100842570779647372069850896994144143173243070654975057886723239334083743999726023658154693528093412213843366772356753773659108220877067115338150299233887801440209745176624050732674582934833942274124430437868104221472289867206298111901200575700216580596832412822606039192196022511092084360021205687353434961252149238124685796258536155821488301042028633105463094370830944098195192222796148007764629254606873021282591356783945939453717808854192132904636313002236736478157043254138930990832394617941713487609662175878565996882227862046469159664499686331155243434210700743106975894848984075924515406601713800495777605061461810745232732770944261997700394195220915190353262970114812677065310856228430752340648979202559146947651051198302874006190446537869012259818004007455004404225317626848184915764276893206818966064659075451570314757407789913419529956228999306523380447770747072457525364634805531602861248517434153765024412218713777554294556471142252810915640722866128444069721424907661168958995018165890667688095329287450185863708627252792002541480947834942322049199234798405489232123569268263964103683795865787489863505069081226640239507768150811873860812590699877571226863260595141568458452389300081753550362360603515343228486916503965731749291431919721259772407282437491827604433184776995207883549095437107794433194157529584908034560344342304542886634280512491356231880416610037550216031247895956793699665427625372251615406886668965177566196873997239309541210218949252114129706773358368437897688853481662164758156664320380774096098095312878075151713950284712173401901621465798903987759556143375057396215633824573249823300861215441590282694104360412358320237932502544140492442602730583231245727752573879819126273094158518159855378771202812799987435376505974746653629701145220038941179817046307360498993587068105815689003814857002766002515322175856322551889778128958158928185351892621281256180072303932941868836752465427677290968781832412030456622102900117639582225484450452128362969767705354589392888998009832673886716630674791757876086393891508793894440264024307351410352425181109398166843631526097731719367938395442477282197056753331544507319299894298620712374420457062327977937262089992268513623331363615183014569017665613345208383650192131178341713372474694298054894366192721920391228808122361142395018865242055435056450121444977266290308336545738182771683694369806407699263270208854480397036303773432102457636837249441813003683156424962464774531577984693608354523007257650360146933651716419074370152153621111421280644232584656938838714493691631285790473216655603522855790503257917229714244064938323544292357477067088449811237626982027250772402887516582087622752365821772581461599253969009303878758735327566350287931695051248301973681737256139215905138662094611036971103689269173247918209635760797910044759216756129703804365157026143726836403962093629309790806592621378144917264292574925981370903745295631316796780206785800091859827553434099603231024250087182781352137185041352214236432494707927316764717483796082440487764835333502048619242717808117956913877949403431974562536237824852087320921512601529151961161823081408818703963318512237156222955688702924628286804896074241227085058074199341686285982054763868802562467102257672135323369574118868392884667473585403709048278823572662680396246969816547647285913800351421739999277614698222930334495653483190340877178901115298441871992140978810168938043344127446838683994115039492529708643082790502990823455255644106606603716339617924868444811375661517851243757944845179110288125063213962355572044901082525531811365899480412706543962238314333184933519980459476264664157310276428614309909250110523768858137803176445977534802915436457926848678633029645154499544924868258038218490364695242723176998251765462291724413613167737336132176847814181054615082215616282807079517995432857202572663871379461296896916319832433546782954368557588527738434389686100448811522411225304536625322449567865288615979284682789507498691810760465914670385267241308269044907912341672271763007622370060122165008443130711664826213618252187329130451209463444636675072696416754055989071339353090089830079431854257803972044715919510627513479260403933223211473712751122405252835193105486486216294638050852239810071151578330374309030762969537019882735337182107842660800500306735842381027056997211735142170165248189807113630855583878279376164128017956467832978273704215902428606870519628504504346861511962697782874597927868723233130442928139766017471016082135974636434680127501664576309782462711708320417393234106076199266613943465663793820096734607772646759414815885788545051201402312605791278354826262784794117547307378099122751621603703799440001825151837744223902350360248980834077733091632868264167485238214114478270365579123315182090061956031603285110206024881990775814053965185625603713648969518141338738880841617574493709880580538185887460828293210708998132570064359448875374976612664984284673559948983577315933462787101705045103225518889005618489721662920595602163275236633646722807378457881246978104639275436920450971010407796446966813131678423517204249500491482740500071959767863140244634838871544099726229928497770924484142042412846257055494503814956622343458837504404823985757618096014737278606621454789666129743198273798170546790054892227926957793990551711440392580073857283393394357906513245166118166308322040205813756206922371309209092608757179116116242769715235243970053452056754408495067038184922230567189466697911480755455247634351770522964866172621590941444517127294304371566051032737138953116423042687035913095429845775926562588273458266164232549955350327392152229037901769483734872635500701032657761971237117418716824013506702106889444324986013010306906049528216349485759882088854852199846772018313684260172454372120365253189062027758050051529147851100370296369186844077509880206733495380469979385439994432153659990361088385628179738561012856251572924383002354023815648385206917449416304395843344601994567948315501049186299617548368484233699135071871184505876844455679531763580537188174267615801184908024508343252158937156446112600008684749817593038199733017899013246278384363469676679840268939756189564532230104177163148733770072165175146957111383037879581197414934804775934927610084748363343268001587606151962965402369897130263330673269952277062921064144681260844325056305862774776542949418960635354313893332067992656455312393534824920232399989636732857798843612307519841892089150248935925453316618831605203430958565556291971009252095625703261122401476141828753350883542455647965193686199134445319078523893783801713214768050249779473255438253105963633468697302766788135580077174632230293344362537538136728360160829542676335712632972449597488732280158625488027225501058772916891386367159826409467731159451198260447073209564769947577665616241888119467730043045936855151894849073419800227877951887943255945561062672595195560233353497330227015092643395871231994608903644629819286542295134018258130494553522365754360496659146048237131613542230910841495676992950131337878673756069665066872752279651055855355064522481289337890504503973871478198967785944584630315862519272033013216154121487058452022859561202886151947706944287037774373721698947658406732819584083515330985175422698128010825557612263558445576564587366799381090750238568892295182801612316220349412208237776819912258638197059377269131218611016685211535609719891176290802304835651507962719190657695489822134973672360829637741028254630016717889056473931979398198394216639023974789435191329565094967751462735490120450830178408953237190034053403731102152534523258894958087101283870253527188024645492061552200860803864747727580548763601977258779124128975758330166600619994053827888040998470532010534130299579862153380016962601484255780196515724608091487248887461821607547157980110744029943566567203957031800376246352359719972052280927333376132455504939247687063009226934530988363183916371435661335108109263619308531395000721190816541894144916694886869771384248604175628161392206337004288042244177916542839850428798704263907518961086692109727206955077581231630895667254639759221708157152915829308510929418988112298052936191598118995479034236952182578188820876283628743616741053761107631440161515950524310493086542906008789634856669064375763173598473775395370622800710872200607934523901183737840019567142572027745891480547233723517799599546591265457162211434018188946631716822539197116628728236766573734506764351117455546527641095464021294593375213059584914501785063627501990791913894495887679251184956182305416956993397350043408593665194368777432369271455957529403709612733899096451472425061729456644181336411599752197011520363216573746608000444698327169816311498605267691600247205594079498578400576620558899337091139126390480030193143329359984941777225990185319235063964923453200574404182606952832500267510495192128376716025877372840143054083781364341079115065249003887625050840247956345205510123257716308559799256539697730251803851688297384298980465519329408688701462424662840287897198796411943255555374270887768904110706913946589748063464264407235904596833325175825613696479320045481959184924861160566197209509181394438111152333970147515548129994060894949118935265358998718733837764177143823815881115380102699877092071138043388700610254795158068427686091871569283517828070301709587230658140929003147906588351658323935008148651176958996794990935231677849575477620074021121193225019645133777965687070558064595588241259646251835399706140381056062065906726985599859408817122072937157171403646673016925410648038129017719280175214863669584904534621246775308953454393344935549616706261526804806983187826718775476876178981919432426955614691860855769986919731065743236965558102470096145203360745691075726518653640042155125378206495302451423021778899631252227670069334185947076076382163170561365561939062042438309864901493391480331326568819358640564905329161577246468500665857590028262104996115072023014409147130095116256353672389285828868179288467927637201590442290677188805901135480513686399944602289286206270193309649917269810773623547771962958276239127634070759049928429294295889464535197030520424378853813879019041184926792334377242214889263454838026250179591479254002485819721164516903806151820279320980727848342605578212017191956010589538541336641336212715657622673187487539036655944510872048541662966935964825009086442474152321145540794151369536491331005826226887416436271706664609539558693578934953583610508045175513618401231582433989318942882023703679038520992300932375859108058402752705628904122107675406558115489447112300339382577815010344133025493513718204004234725446254956469900959048625593675457929325712965737266444154799168460234854723203516042045694098141020501853518794676734224114872569702215771027650404953591935584900321216659481875592853303600473575362864727069047290813669651200399381468440765504351589127213287354596922155754280903992760167224259341952016285339683171134558597827748402559727796269843181986525834179258537819923415788629150805549992756054884363085972548178995566089215346350552139652925532645929200034984191642219644218317552993890644305730328375486309534853285365422107434423556195080583291759618666566441034140998002335004169000443229755672241070109202084171406624919146399201565107286653474202214110307676311009071431435780567448118287495427971406699652452301021453820386711105921162014519025926609896369008270862934333593238730946818091332257204854622998132243722967524059023212057002918893461674987861682478417956699076251659451757677059863353250405151268153380875989146122990759807893946035971520326714923203293950485429404523593107817334045969871998460656181604072539440350121744571459129446856120437636797484074106675451762749411479727706417336717287096448379142548883674882118035597982176370007001549320260922530277394578115274456563638117056691311537409761064181588092564263949419064002041423345739631274290094015913313777320191833285215766380657206590593960258323703788256001279469380523663315171732471850564766280228824063367528768806293364195362332019000271994687266705904735335809387163168360221581232709642295880195010793916619646810056473156954555549400235235382817983590190302166172441875129465179208042427413716748564524540585161949681494447138907912096754834283463127740035805107714664200180322613255840880054612399705604758405953857311642794103789460526243287193291709353612894872792454370115580025740098746864132084248014772829852683450879125165432943173245440931321009055369372119419531206520641589303580000321801737810052730869377992650702225850157281950501127894658513861451464144184064598362011997223553154278954874967329037747561463760094093209059451863553462571514266338935261897063113276981236537151157469042411953634263525554396877542569375732821375936110649479952373906138502923702291774115410553330578785980160384250504583251838956454898783944919058575225308948802558151926935052019967347015110920222529643176214974108628675877850887740505003555381500594180179827936037496543937327120644555755456254056260968302588484080963273913286032475159449495706481552972833018328607241448890169262529181890099364379195742020982586114661858254957802226544302808180610995780712581048673698190258238016002739167110176859420908575338806410398183314999378124000966821958082795832079346342500036288350111701905708954992616804900206241903231301435320924940062918748564455783775518767478075991769650042429011322507004102408078169216168200599183652721899532120458839411250085432096002207579190309488433661809277097435481508480536830705244694586829308979382101472960323467470432705437845648547949060030027707465568006921369191761566816054926150774728358330444597945606849669418389134998654151639336953642566187933164921461816665535084636149621594383449333034854045227663843295453388337700987154771068491351465514510685308685962959940066981322635936653123757314103197751295267913733032641106626550208413645453078861397066965579423518019386245478097316458859686316584254007199085872297908014383328649919835306544525223334253656732392130699419956123232067119205880147292948970710665727873754733155701739861183954722880989582920039391883224014600691713824634603446476423446584661029100246682627788448354082156633897054121529886365291319812539138419163049161573205502268337192207962938153485584810192000246027291465242108369443251327029617560291984975570263203322420766558419905469755193624433990772899875174692238809107110992270485513676268016861065121536497301154236335017511564222295476819708256068980595321131355012928457459563344704229718745221370387562387641301106799587902461500654837993955626955958449157896888213343324156835401826610441985295943500641325548172724968431762616101506230652611336370113881303589439102508627819183960913973851133824542800639584743305269792026902476081041075215292876309913111582002378986922367538307644292450198692581904227596292191258043068592714981593625868845450304558803551307916008141823440420575446860828977206383954600380936556384491336267897794196506516901561997487060054353148255331501252771624395829522263614002457173864190517247741127722549790452228440197184043418249640983221659711671795921300018026565153282441611564503258154565186798897502019996769296140388174817087370935739321039962964933579351237123220531604747255666649247425626840488697005360333170061532023332496905001519977544620538300294760372278075266543872584033006920473517642541584328914422914692373679632091555589767971513619178222529584801855812662989307325867171137201371947761135811155533942770521600054916867103334628478908128608245711191219760296137553175368979928627239952845111538393257373398609025143177353572539293278413922389461306373826847721703315125245480942728565940714934679209808794773268452861818355469422541762992727790194608318262364460224152462956549071102073243473173650634616410293136335753535066935989216560127843979742336304262435023558125628313758720286995748473733525830375509609202193436835118268634298187959655426029990467427677277486533523481978792300514433992768932288248418971965510826199232942203026509703823845417898133966998385930586335448803431484172185115525589513802449365426503611426594841771217039981713299507390600667455510894845525503788174380048377105776900534395459748184413283350344749168916709178447428461467789767600697750158445432626932734475098707260054376568679909509879118477331374538989194576370704195334010869698887509072402592947550699182879759491288260896442799849333803935124983072590121938428249238021580292208902968088400965413294183033502848004688226338725579104453210826263310307472949755591389529616976617119118363103211654124825757214239451565424401075379271523497821530860260895808497187604762352044511432998783891384346512389053876419325197206517514082544494601599254503508500972424158900604334516117928866604422689329459043968289860886328190636753450537710698238936354979897515976092596317758206078107547639041861580583812558744078626595931699536371030239896663958569786911668463122167993492247431301899368469953048396511046876374160609449885952238105075746782681781567342217750126132072203151530398008835590102625488189759100157181833260605193753656790938192497626361647007090612416154611229116089320469043312530147725487865474575291828407863233387435992621657191649028743885079677371930044182801557106096425284810986468763846181139300735132142277291016774321871630127630010718845612658788712175899728962745318368084521357046063688981021417072442470166422593460423796739076650074991364168591739377046437310352671969655650074952491892538927406239070288016610859243291146147005480148906915063734112132359111467372856093314079477030945734514758401653286409113852957558694842453201095900480970255503935258242438900314635425074047255747328619557361924712970957604904820611138171592120805550708824141994886056523128549320564734724179217647607179853586379618809358468568000265627334552921530057740301316947468475022544759785867304970459584512744883981732045978273178776140876153730186973832336795625733966938166644259303158228644437585204291179152248824925507086012574044342312958790344539354321962332288954650207588473134759559524293279219256691450303282944612681421617018661391029838937541013750889223958701174894363135080954006461784887208183794280718548261858664500957805420892821240073718734820801436551355909011045644781809064632253927096504440882310471918275808459416993230860744336793676855559472598873747387711100085246500063234036259762788495141537493516477899811988967268724122602812321432864081936011061549925249576386972430358326803199024507214310111459404205877869081792385213281934490619547438589525014549585643436681337884083322539619678586473872105620575117172877213904324113619048458649716378693707719478363763428029595420241216700820519329192046918939867472724926159135268400852466874875754940786386057420194582042048758322639872592544949190532593112848415514595795211094895280647517165158604266498962169238594057122845284817684566232366800664296365717167598426746962174102673038059674351234860730912763098852234826478317905227110408106690005785001088702308257043017190245414261238382081581358500688947204466986919131182445507170145193583089820394352349986542745712254836066439518041458467667652906454726154217851663011947943259523054013230658093970510897067533202262240808412723926357463497513831560411736479969918072815547910550521301149676570487869797577015071524843896541597095336645864575997370246371097633189770480988029186143527788448411737299345918856734312382793905746320556409444620811595063257906630301674270208886418320802945906384664732023049721110595435338000254707614028596893546849986799748327572693066691150615001500691012610736227839803175443459744509575029009979016744964889284332107495482514164144302825873656619756105691877258793455543970063272872812958538962160310054647856540302136205691459667872348440058558849937431230277292921904036465236064504890478505657763513779454254228204461853559315046825780953999388962719012944843307481499871720929156049008060207445861243550649096054596233523037621481073960027453658447162375613236287116699522290797006889151951496018222417100183217920355123754469429341711597438433127969838834679509316835225178150061467369065972051352664842788143963925996073034946430322297857763114012181769213963342096385670205784152519672142195037857744521134369680659736818216065279195521059960005803358946929442651427241141886632752508579220477973256395705706211731013201114982159818831296426194081892642478415194304022720704313995456044951595990230705699567081952657228062519286124383369058038686917450028774142724023374484978490590770425431765129241921911365764476314686825376018304271322076074207611422818440957181174676523868097258851397641396103760970301372066662763317678898500323578484494983862927509088803130282701171685141253197999107210211028659572459439728165309862893532091478059102752037113608268448324323649024487885354184032816404627463496412935365443556755279273099778669931748987719325873416726067442845789196499774670147369543817876764859679153227674075656180560385042420493831825473700913014324462012508797318457492582902830446748943664628772369729169479707833015686303807621358374200033711496922833414824747043772229741995148723292939592938143997554120586665072685638152638318302221387140332191149842075942979991301842407715569771503229442617381450220782011152192402029255233651270068360116045758114529298875450208572890384378474463804693359208476856234792981943039763118351998613391795552392225743065029729529675224625705439346708571959673465974031903712764663963379759029635009372929810068256772791247918265344497707512369627079128734106559957580160348577542646883958056467562374754362838713407446687579884376372153618627398855821588474041092200270000497159281298539627420092537930445139810372898484017376590959464031012118133157773544166071565755428723043483348628816145269343870895253554371969513987919147597795154618622945866191880459061121546501831998417226478675897091383735192050337544942177099962687380788057436839273349159917252096015667454505543943118399277796974811999423584573418377368182386728928491502091831340724263172883689439566537578950456687342122128046560529352961563930666483050569807565504571839128392040897074741574842460581324073587404119073266090151213588777417254649203238307382760349566658842209190262503183156144515782073086455608157129428983030327474761837791624812537493853586206130026085201081304259102379403791069319735222575734558993846456358240066022054714072094233473285716397438770142753641301254258199180406267020260702740228912866927935349090678783634616555914502744312785719543985925315154016452140012423233815573213695152971499009865893475526267245384019745150420759334948376486572558050209320221218857389921436025241132837424128277578425184715386752255456271035865060811292654757398160160347652893804026434747475981780970863151872970213870629666166063918345698613632339616617318981791778848523210620293280529684605201223977300496921249653698718308943879381231170455619832762176399715273949356867947499352772826788367930068579457200502018629791628354047439153978149684954874513729021091515199351872912842510020556807966277912786301613984198442707555248628508406726785184188891457329711118545745931204509407101639162589787437075266837714323698932770084096085399901422940593778512424272121271846011907688869393515883091767428399145120907647530608774027956889513425340829137205052375239001030519216520615937588107769488686619166263996655079121369259517618539219192037397682050936528390028627803912356077392018404485772586745123493494606389820982273598779700615119189063161581107775957935453326859803709526668408897922802957734395664749880990377278481914597319730747607645830434934063057989509311510972271216586882525953599944900679674917922870599505612959063606500007365872814808278512031866686107650692052648383908103226339363226780108915366151542926869794732454642015198696014187414403165642418711476057044110216370430317498176477411028109330161672186257511342926688331039390574660056674298369418116176711742792612828076981848879784509120520464267846129355517685754418326312388002013712447938258817307117446856248589614933012319601746046044969774796884434325949660882396152404103458249372058895730042697380305530239862965644489756557275516511506866549369952951268974756401596202633467674980344292957076782891099365751618182011005967717961120547625867273989796170932956677036352316217945407920988462027341755749605880587106528882177347076916331587530552610259248964972876717339021680244827808386175178438428935362658882712734243269280522557679419389408195506432042627252670135265859251987705177152680771301018345471656071427330134593089948824419189035696059277511050647033680194349731711103387299422137029825845353675218967441872883061032736006123464924866738032865197111798117665423536389413162380987066738484055158912913934761623389746564567594197790390255571545810398864318406006584459336833661250483131276053038116633707270947026669274085620994547673150668295382176852745936923770332347628684181166054534348377500019796367458145214952595295338155689857908778737344395745514541681320053124487114556642723624628734744196936874745595475219190093014249272574693494556935873921704216829173995286060622739337433745645119093365496560260166727285219001713406406136946746415768630749871233967966846455013142514356698576582094741971845455156776418775379983648466842843277951179971143666368097993186345145935980530764728351439872072923401610036096206520551676592581020183707761071542324337317673828857750042612256948597798555364842414778793155126291304304005842864244949953269404190778078424014686097437975394219403525800043162552688925346419472472974384737571750666998297240939301213542389046689393955768099993083808367613772217473150754026142317674976835660409849466614503342502547216541393085608149779159634672648402043527077349904369639481634887184065947506225158619702185592437722192659784410577348943073125045024468943032601964769936501273643286366153386730262394110223431364596604537791027947528613324043474903205756772007985273015441051215385533383556743268361601564148333679022215830818575799147027210203988465307744459103691892303616679589470534223768464413265938445164452385035359567122669980647544211219156613033731415738692300372329806605324603871000343675671282366342852922269177129081762145861245709171221253959092931365478370601782633570520585183192651098340376422945185985261985679008515267363382123620089907585045136926700399637488483962461459968296307445367979143473756137867705580789573153448668376116973416646871641675490822509231132519699574955340769968928530895254557617493423495770372007586208848380051289619336070164740222596351288786946058111132442509001406267159225411607377321630108414813772274051005515629521781746011195682944138920300014211464303802670185890917493193183907027833734324643432137296037885618790737222317776723913168591719388625310083786131574300133946987513870130249460594338303117482588386962510392956452274564976660118709776982182518556079815332365700198240729251511772040692034923275291003917601603250527038526141484074594727269673130700016328293446058289390004659665608435673631863555610698980656624426301852824069621578385510919558897867062572699097538007065037626297698897309136466438424066712734890331917083300571605283881805412083789841037813972311309487106718666599801831810048922488830257137552484688452609914068314161609709824857529965760647509429823072020942395850642158575954218921988912854457754118076632391464832389290099350759878588848412156847452805719046519946304199726261524109650815340476575753527728358787997838658192072520966106942039401034373676201798520690212751278514933432869294135352980580731649682300712906528810128208309172329079462922235146158780820689566592466559308109507887815299146450561803030346082206131462447537570070350559432206384465513675127963422019180690108860063938435181569888071187249312480105910251678744596365429816622555831762242678800281198547923808185161758530998716068002102200761642277225018479999811922298674620616449879886097374183576453980379234930807327414478195507051827825565912641059978559161290830378693036355092524610661363788235370848988489801448411179809007061501556366265132590479479851052764358292616896757534284339391442268077430814711178548141522164437634910647158617735800372779941587793031299093912730801780363806523412117712874851021259503277042440722114146646200827093646664389376138150360801686010832270968722102656264064981529825515779420822286403197951878620978083847626689673151297592382638237225735014944439442160282627745807666117780958293775837376116411221123220262860634244655687886223607713975601751787079704596901211723385994358627567547675386938690571838453472041421819806316839111935013378995057504046980440657730231016115412990075091394124564062029942486427074561414861448883035955012066267532342982082290686545311844633027248646977590339570469293555958113401523100539786915484516612983999095480516547448296083705589436397685779008407282883741722629160843854852055111597301341602136346412493288898987273240852199316279301981704020590823944970864932730329159664118001504325246468079090611116749156717506571044160680220822096117373016631682046438529424561499255651637572846402308476550338827515735754224375220439226900391383070584481291299636214989948090204802759982420036678385322323528667506749675085133759106958544210540242463666261321900130539095075010937629110659062057038938365207211117346940088919725650312737523050219623963491200043709652770865379539318225521553152109299646190098542900330798152811385333319071001237032518441651947748932485873263146598630746417020781893992701929622551678723807600823765351227086725285186383173388508908820291823520306374201327607689108402783986091865339499416788147914415199545092790210998171917963859735285053619798198010945634437277735389669610734069015102392400135658227156141476091921962471863883989997221409447665753758334814865748877552331797606014226784067253446835043336380570183236986967366457044741121459245759591754931998683475107508480857917860399377347165042658860755284592464794063025933780460301461767716908580045714649348199483498059824651771167566077682916665260168393182782438961626855157535533653688762412590583754558744912357608044019021935026284331309077112325913403316901193039640912997458952850104023704613662266822669110477418654940330852511243410557607960365542488683490369320179100218267029601768559028299901582416092857124003676684030232102382313750721650228920322410614040474286419981099293501532776752698726356449706770862955988185041833099602423959236739491909910134582481152442534269402431371012662182996472977840981413975998804240468361748417083567554273300876402997578977551387028167564778435299743256008679669080779774202958560886061739375103606959168929310737732662130404401196122846931065926618440902120258981586410375625128251548428774977514238030081459165128197532781823329101157422585025795776810341828970134237573909299350530047673619918295726362409426884706871291109543289833857459597919260682566277130544782378642856824724465229764762566844598323915799969241616852473028700801564917103002203203958186848599525909207822557907998332069991081952643206046209487873967492081620940782291198891877373853656348954119711925927045473450822448362788315737401270883415139326976474110906520869617884211521286817779176441220353348129645558889472763961088639060980732690809248263988926462724424137454256526813910392205896575440690870849302817729528831889278998672077039189081918252897467191446122334330406820159408696211844574758858897318753261664852065847024707630132059473251717522205152852804970822329422025089321012517776840443617079500799057218818740871158751139600061349305786972033861519868416326165089708478498387393377337003448105094707359075700334653641762576486171042737389604753397327376802690946514194815858758769237996711389457816639747885013537849740168338903909527589075551472391824857759966917586265858797935920753005146755344514704794644865567436656778967502693633296252362829531395418391241411119730309229892969436090674503933396019233884255469185600142656214242005326113348992141782357636960808201227040122378112539444294318528543444899031279434386233718750822953809925858230172200047426624471931616822091191116343795611954064257900517475286075157115799016975350157516632419051173155984485632858588408777926656395805725882752283754833529439344239904566013285603685625775712228295843060993632470178210211841993078194531439698048819353366042585515554106289171299549590768906354979988636435412385388255766533895812049731341194342078323692648092209015762553412452588997244467307834688811862679422245148675714133765249248608777092427097040971221358721416182711294183550909417211341516753923558578550302717595104407883256701890788436026613255760256151706207741370047870698358565061661948917743347743200047890824228656173598995513202728556854136462569013317617735379101453289061624202142669513642469372890510501831873131636730472316555772429959721398090682208526164736948978328011121794277889324310656847351096811568091784515145184482151976730444191293516444043385359906111405250204171013093140340928830980033928089450653133474424163874277217552217373193950842915877476609176356409094833278528236364395282836067733292266790821032542133248123963954819374718707372787429192280637012323426848076321589804597725284255955818026652728223414458577590722546793259133194286905645731350833333573696690200614372080642766633681262289492610229719315340029720011918324771469194495103255671208455637345641451485035318422077070507732348702544306785893909486997415345378066617096755567254305348081856752389515655390022642397264330305433308696498528957276162356419507026607135862956699402244030675006939494808109215342805208251125102071583224262073900213742319550428328165982899499258631607971722649200572662118159921864638454927033015476026973082084290731103311518779179349688729011141299881504991311227800396597520914490466523016322608968426624576284216566301125261952982312085752915793922394528746528998324731318749546466886278718896258049615770223594696136526991678529012630591051209367731951274362136979227356832417839383280112991346125468641831877679373768450444785517624207348197574927460423001774323399089774735970006287451667051967108231465444826357796787173995212819195325449228256645048811253632856317955847579355370622376225472526871863339264758890359045969628107631594055793327207979409989812811551984852947899419994722452525352202940579517262203395220557872093741651649373402294508747773033547063632000207409378013194821812760770454685926691801886715252210328342096161480787272344371730179301281088041564823277319880568697121944973295175263964134674315071792524122606424036391931909508896112612469829067409024963975561550514494125966205555615001637854653372308043400205436914412130488273285400838047477045860425631696448645833772567528301226764843850848090847183648078737449723779879498853840058403093320182335476517237338837104611013573822184630601141531154858527096085679951242138312236550569890503813687359629202313805815741791933795546359510813515213693424282694200336954901199642910648829939479285917947397948944411757178124984245781901429733824425417299963602026724686962691428186641338568784952837986923124872704547760675523141244213651171666383262994544135715042465653588524313093732190371500187964237119671505485044087381491469816857054206622534977452423748155396991177112292702073197417111392767324610931924634782520953640132542662391859633821371391976448122564438896114047419222910750404945429820229899523954028734245164672694728606598183764120023258494554767108372687405342225446258136526329695589701096238378559918286868778120809779753351852136913107165193679821850931739278983031228386952128465017257454705666483781689756368026477310061608381505743550751012925179343318750141764114922853444770836660120576548295817699564279478458851526382767976769446711776927210278927686235390398478082763317151097103069341535526373420171588779853391265430745944343012246089397961147433137177937470477617614576775841512202554138813128807800103805524779533098145357138895227905878428705998152988581674163516304029525808324797529056838977427393810315242897508859533673940087761722814281500540961280285810279933981598289447243726105248879593734869421789644542935415081481263700595028033440258017468426866485665651340252228166472029924608552372500418388787692205143988988431762216272849770262886260519029344215279285158366971858879728544172544554388335335546631128651896934867385864888297054697118952820886451474702732265286219473769499462604852078994910080127526136353199626177163426488808633433463047780614137817425404646302644273202617864877200810976265931934693831111449147426852714398055035587040103474660828956950101660680021270207882602319312824091172807009069335363723849424609610425936460007179279642282134804293540162265461488076856241989368363972733213236268038015253502844077171951707490734778789394055295431680533265034296761168777530790396389702560751132439843160872469453827732536661622361907343411869362379537595557725670266811838611664519096163673773533967172891100671450792414123775827923660356234880215826675911426996976666864065900068694755697679409333382689850331663400283332719021830508089815095226181909713877037115275034751682331390058029332844787943673272093603265679397579334929886989860528315488732363059853303422255320171034871276480230037206874884399737539257884913704137214080244762004009557079974274252834445219289161816707200607318563634353582671641509597348846017801155748578571159439964300170995640961877415160391799610664656382587631104567613134869982398260477729245856547395058181404990029787651108657307551409764651516494482915562373256402950495068016162360480051388430706591134217636497008741308015940105283467398851154722306446781355637901120323439770575999135189905204516197830927783076797062180022972346802015448779333193976032947294022063629303740542495523472530146582078438648881416106917896930109724604789888141280600919609003694374230184745253465434554907652022349991100427415665785444040264446505132428531329473851647753802836211459007737338935903720634650726808186718762888845008232624862935205152089081721171979902226007386286923864072816375370345474028489323976418200505916502374063979146037744201190813054913214663535596787853721351552151549665048821438388634880324041515051498951672466796442853304112739649762206620906236888933099622849462318234525034409350695760304141553872369600175113644956114023489637884808522700980009972070648608496389148265769694521474006765920874074765492341349452651897491337631023939576878362658926161817388593108759995379216981496953603777321387832715892347600104743404358416677185774093357654147494179976016374270311239496929880791264633794617597704518835564137814810201828937065728065452075366680458018206259726056547652122497604732733883002603853551013687326644873152769348221589041764998377992183178730364418182186260768606075115672405762151658058762675796273279011569274655680146039883365016433581343151419930001095747553832138870893863844225891662476346757881650261765458975753831371665736153669977376180482075584777158859976987771693511447999160174582569981827474309464934734243348409607899990765722098441446863644604027729266201895849084835368633793608259679294349899217970552804152680667444622973152502894380413047706876237354871964674983899702888628633237473983708485149997139790202248587991442513155992272573483969025440285572271152016229991791868998762357883487668132079148138901443208042333881578706977718323806220524798047614122270699276737994035784386006839916968407103577128880296829556943319669379246325635141119394712877889801332694807942718085730179007972002631172759568974785305826976488924243850575720056361933057758097470056738788475301128015124409286296072850277425202159499234621033368283284887798644953199800973887828666823458053945337532133258161090439120883747222357659604943702866208620453764653792944845472647808568855973568638858350873067492530369904226605929008448664871920571757217791372839135832095750724536243776077899185139847849187694171171623504338710117033115673404007684020392236675708475628378084712351576870177941082298146976883419068681335130399948785962080126562598931150582918953591515316207839606728218364348342464604502178573579396932663242777971341883439405284286602276051244476482879134974566901972378659788429870380821038806787894091751514839087001502349929725246916882779413176712787463140357037624820738125733619932459931730260723704241858486825618020819469773716382806579657874233044906259160603238650999675348145339372646908439568476935639632460321654249799210793021119619806386570677118192515436489380251379784038713617531076843439594867961253287389938023463789083966588907113230877210782341344425026677041671729166768720209882544916200000873919889228002341643485542476071425972760526386724776910541624660352148025349707755797432732354266276073571938732995178247534442080593774259993971248636487554765432409804846546133031965260232184596027674104364742174135831359890212544643775126736041591646988965062957830389702503924041507188935524353229228859949387627412543895749759605908600890654147347551926519813397915699992816376298017359011564970530029784978947664502919585431961040784166021714205931389720271246907050298610349292829309095670163636560272675840309142689828080585136803884187663670094464915806274881285224686686893834528458234912912820865382389573818805303720470394175417645784899515096881271167288601572732149428291375259463894040854322225461447354655314400586187664907607368387873751476387160013754895885734704292606901937245796177034837995690829227909922051863979609802953650717726580371636825381265434083765126379134047836535048460895351832131275288840751925854760424647024020024212426470904681981872856370241365968365781186885225530650285860161281793664710608875533253300093155332597215834970125830195621549717969783208010689755455522742679590258457450320365708201906103078546503781386243029601135522025936964142154209065393470628387515965085698489461625795950757461595409093289061639144798720100319561759295448714062453955198444038428536595930487688560387911327702357446481540618460600502624354253404307672457891824274882297237322058024771234870297244740325373226270824711377361025186265178548342110356871758675710112087180353991734423382795924889863207306013179239096466618293804483944187790583684946127708481908818138501336225492299911957914031514370692049058184542495183975686887670955615557709075181271926060424011618476031745393129782537105467847564176716694123910995140787298633658202683866223523393070285585928335584795412434338147568938715882897912571520344664417002745887776629570846238600109710393725519327579926392525956567982294334215249186601392371731790627501825856814502419687688321278957028390730983833965179855573990062635617830988695524944762012133818986243100773371940266495805959503222754300594370059466142975596958222826247061360256243627331448620714852469936168955360237723188682604339171881897258554090295138491659825175034979803854593079358117292081301360769457555444295087014113773518526173765906245382727581408242423506182418523651075937214240939277615124910353532364393459279970006451203153393624064730212549608489450565994084428723625507689359451407178129893294855139799323196509677187424209748460887613268440384472405465389558783190093447517551390034744577555217815524339114089230797674841544227584438801900864063700400578088524642804975372005447323506971618029433637962996653588645790990424184916900053042449475313167709411849075551532664182322871036835111761248031733051483812857462814279451290689001140627072342635926807990760170483667762795227051114404059963187873158862315747419105827063835685633195181809318649383795230025935772713671673933379683343571604762004198215033214576047470693415469889604219099187131188544031618973864520203951668947237271877597436149511941114720270499896579961099365328159954754866432687072841466649963630050454509885471705727916114109819075809586779609163471757629934140007502731309971826995077907111565845715165960266880579552696070218386450302933216563800357177726970209625694610232735521658499814526560046416241881911443304682762318891152224985793967688126969671310091629151891460719043090283933518292754420618341355238089933377303973341424186950136102711662869040476167775550079921502999394714888616950011805753733405546692850893862750227637729326176693535886847685431042361033944038534011987667575290711629835033146443552222230043915748416557776749143287044467063438377955992084744228942687730382179089588680980183017956116857110682525052592247893457347244856627919711775656245611955522986117146404813585163336997397154722496341544718581481392930709322846120292203977527324810747313747173503288907080379222563628176799858535132587878918061884930468156581081412971898322243980594496004676248485141566451383183136851004196268695456898156669412663810190519034600747963028282836357272320244701603552385720121995537899697471405269428819129275231219927386479505731802225156911479593055347279150469399853941832675025250566915275720189971716039722831551476805066106646240116720441088878521869582125958199874034217949193222005102313956404192050129699481645025892725974111898341356159204867370743865079636429588104459567382046238256300345132892251977082344636021444054043794325838365047403608198926695681169136473042157850873657938534442312156554327400462589451710728926438136040417425843570904671733002009192676480224344696104881264822215052722882457940525559122468358459829698918801832734268796887057406239614749463430295850337673555453065075013976854385667448983226867077494122152377290131722215197931963559322469360336751311291165699233682797435513856268338311295333595132588872300576009779949153367514225622164022424378184873325021972293614292850666614921954681609387731527292731205724727397520440737286532594357705199916400492860930452780964284584986404936484647783015929764032109557780423706064298956167545729763026882826332562083016252418754139174665709676046516942535661126509513608246364380152807103652005539419008363241668473657216355633983726476042761095092086042583325976867879780621932464370623913978494197383303037111486299890184599716082834358063059505684013754087323989373800354379202783362420631274915333075270757095500620395533577925016981801892901418490438421916701941037445136482676002041640618354665173404978687767231849239869291398003642981635061422258428713009892551556321424135599300674988094375683724223882813422079809501601330127172602067988411324341630436809904280409557273282558548648546408379124355170055007338242838774812947920363211075763777877790544659900533428820195754625434751385476861214105861000338171580470723239259932296632531721642494332462770785231982156065037159708420382077925610781274717927265495743269990057819487913304310890052421613964407705284618845028314823866184959724854494770680265862927388501651195020401885376765919682388408866216805939459623295856314085806135405385899477088336002622590579521457703152228850563922739683791119483218380343965109834328940305047466179210336818067915105288363454537589770174681134015829339966335363071258252069880699393200398186355191418615859197385098863217137729628262939306745115645828854296111540798758508098777701149994122708323896981382002507409154037208936303562251999761142677710636074096558655744799377219639185662352672252681095975444698940975425840394232283447163176536980062413240939101526331577884214647172453928030648019045942086388275587603497449394339588056159112637178718604239280966201702066254342117416740641972928451903211302577723989409200926908486676478903708716666394266535137364326706011075007082883802483771470860895744217343482203895472966029761842938778341463906637891162007493704618630754751764772230244039059304279120874621003987662634303949276301248022776757825484711091855616299147628791599679377244006413427042745170327308445659903769292978728836002911289176971149769033117358373465933187488111098293443042340850627261452371932077047785950545529550750999203818756161315759449554872490369927462735759501789812652361271769374901301970157542585346109505386312724185669803708721630006852520665493543890762317490510240254425983010019210089649765175760891908432672319886515830180836290057882264279619396447646080510878031231698340930514680445192357767666971582747625796135677269502003160417608224934291420104163226235533678205470704983883693980519845445932305148696896331163683839747491357516392449508170594127587184323364311524643672031566233861840215917645249605609744514730149850011502058354747406646384055652583176646723498620364364383085839119943666447747067779061978131811698880102856508448834679340328896592328442264555060562902840052775656556222910895839586788393291484863356955232381107007548226539064785176533096125392612638874705598537215323107487894518213568333797276872619067597008271833097904609082806746523657590348503833728694881858331871339846250296310881096341366549437246744335738291368340066212926336233274615332697626977149247467696790726708728583948541483211704147194432222737455415480460840583252230976565744268555474179728903232699348763239931402487913425382173098901451150651011379708349494614751402671284953762803927442673757528084704895713656700252529444687252548104496295189397091989688410346737394070913429059955419779381922252716256465110668659860298867320839539338322676193634796723285638692552989597316209238652131720801071860550005435008382169803021146393313258105184708078090644994994670941972390556536880712588706183461729855646273231416075999259238393157705798706026395179041408237935116641498693524318062177148717853841949776317397410342127004870629931536299049331227778649253239631057714140764221756442851941129076068705284772173902149085224063918528594895404811868079686457919905414398703536103637217751581910404209800257086124376715856997203476900143215063230186146950437390744868442091594221936667681951167278858135649634588237779813324897905473490346875175434652085916121956717461059259064642884151436490834899591615073579927170659455059821912208416860091602843891793906323379178222973389425415662486800342666832672571198633796907434902713465439099451264794156203641497598843229425915686528246540353562041730811095155173568046222342861115719229237501000969776887714105453328408999069675809735407856140018808159472906933935620632772428354535253399661665058663802514443130364057166048571011260752330610773799753259202442945801874677253644139646336972074494126091307244650936639330521986844070469651230175506321553330086714140335353009064224711568178753263189721019468196234109641078626737143914640886218424451818367597105110006172064312141575423906722759758132307803239637267707023524455113734395426044540995447301944483489774948358004081846630270846825990816859769649478149952410305983143324299199184613425546640080241322486955969229927718209207797242244911382060254984070393125112382282204214919522823952930323060927413147091799594199732551604311691216981304907926153283406601336510722517776646401672584767427556705726942718003238474693549598437472128303813181859032015448670574995658237741268447019536524212139827495566490495637203757717540756976065814393954492419101000793286946127772905711758467501533044106269117304573703932316191330266661954818886265427882714997170343889712785070481993344302269598334424637409446956656454065723323780293626745143981979901517772272917294664273440840139725305425407035562330697168924975429069678629570887140882287610606738495932752026803799052258875659194162229562030678354719847463150905296670904998553720981976029747822626106734872830708940656059525740682881723041016480767037675574838209608182864493656831497692245190736924052845867683526332294600124587757691985379055700061629692318349289467549652812925198039851474386800784220874658541410598985550824102788462233596328692838397399741714791585402341871829701733081557716042235543167661422046941705802479864851988092089902835163896443164689891085485778135140558631921057942213517292138909144429749888050046688197037003183851403764451676461358282970633519936133544555034936373524275827464613687842473697586353097910677613458701208778564109339845838328617597670597556577847638408500233374174519901291113083021192096588757031476267682901781869157025175743693742492891972392239557159531139637758082804725154987532855354843686598359254257660871471377735061462081681743528296618436739591711294870028558000446333758713466701008131501220820239071722322553944777536552702701586427382602676544270967643288952564890040245453351609203676256460631765444070076082618403067602972940852853563280720614990281233909663983165435699822711348682439695409949708085422845424446652590402909371809271756361178915697777997114813221174159318438732488746669233937659868556448278116401555717091192172370604205309966257902090485289920629117548242933105320751247691856649755966809705729322244161996759242003093848991708000330579772852298412111479530661960126676552238538676768267003594335715056818537987607303994287508324575190547972839404115892442835777668200360132984042047900498555583887110884809161666517244059419548970502607018201415809502662256682358972434542439994976759280430845704039006269542161965352030218571756713038625929959720873117462372515112268754037342758350100320030202562676422758791948771947621091893381474379175255468557351015713980154731133688519686682670089638613118850172757530036625565346385328110428683301893261096773807581594883484993702362675910270632323453019115208836148853523128965447877354604213991370612902969276168903471128888909621435892603856631540098179860138541036346185639801571057028951805184434084787998273654411710435630480544502554562631422860254293527422496380387744790476241936417456653700723598075602051529946284797825597410934106081290989507590425924840375345872467440221174896447106924386686676348683470244665478392872887650212904323649537862284563475881419993327755420614168221079188239287288554641641646889596082490306196258867768682388220131617141003163891265570172797434445886866819517932627644373339999214734037316234689731876436692547235450408240533584195699670628342535888314653816945787578018593319767915694108352905895967662813640148698131940621426297979749286299724835297684605496295519844388057523655308959772519316890254203119991167191833308466114007497031602851100797509976133475515693524672049002799898057264308863100400794585053293630047870728227773376233173464538834086642209451294645643709496133028834658240837442747276172773800437400077991243887530610239607813314031539795951810736551075004837926918405055717618871470284272208959236744658122093371799260514430807327800672797191508514354549469128010300358527150252246206482765320435566666670804427991586895690467888169064569551077817562594004851754053987712933328715348920866916632579558254341303352207442097975311585236989133089119388755220769540414362138991015794425479006264348667289027730029056077734745582665126541989212756675985285209891697945986569414670875516088130251098020036724582689112623311622464143794957251304358517288397471873962248230967640085264758423538220062437637674190633991704666716966857811487401285947634083386329724267433744918676212253069388193475546622700022728237602774356820524196693761366051427659320557554510438882757521909363917119001392520411894040201551376847005741592913274580674501455246071577891276502144457685194946728670809319102816307759444326404090653151840665490325550635975854831553751402331875575543956284374678744492011850587221840623475850395262825567610753134221458992976302681357742858831312914729118883088879723825428964254808465645563754939942548449778636385465669355963190297456400971989755881279063849454926247211979369842874208009497598527267923645758893391711081795009244128204471281856295025568098291899588799961655135504573598934625120977306075604824552813455541737078696510742875926234423756744257190237773584699445011017969385503907648765487763612660719421926256124777464443942444873382233879646837442573364243457299007070379422582947286931608629640238586059389904879837918500253786603373237123790285547617735404818278588470145858359134327562168215511950991087812486406708793848744717419761648437704876154478453271885629830746771689743501441597830226194234299308707208691017249994880328428680768351050563789077341510364966833819740744633038568150731892625950648944290717903709106109742524261030181134181431581692718312803381722465494080188934185254119809669049024714000830691292802016321065998599194789006205408779790080275991275477253307887975115038861523001926568808650243345979533334018014724633256268614097827821622573662624815026954076322298940025394132564038260707143082332360969585424989182395141783905731327955541317945029355508246423991857322195657946321915181490883879676269575110107888324041550479902779542248134945018913069425314555874520062238122549761209797071252262804012776535232825747518152549638620659689512109529960147148320558101586826796950101034570613390850647010872197330683343824259952412132728847382598873532976455521988423201796015973537734778662359748694347407907624989698512521667452482839175262191631996206304498873882408850830680584208232852314800340164814700311253971868293757617254640073537601082666442820522728662531854816192308295343701948788211857251469378175635976925342661918762912239553453676128035313000631357116006757817011939259955397244716610805596670503135761356614500616607873093225041152509423830170209483990604330636702069087963224041806635012077028386380134749360681719793132431413110278713923870917643967490407549783697753192232593721677050058157336024982656051774254706423413935156668777689571346955838395898933822168697308938804672217511631189570895364881087353418253278814239637554023851818405249049900921955535618716849916998339705614200094072884043831699852892487471356385186183668901814509162901971382026616189724798121151052817399136560823140696493426823540074284440651844428881169900139622313185327098453378434587800332404684186665526811869343783880912143541393331762899682617908669418070426025586168021956995096113700546170754884203044551490314282959050544350294877076408257876458141101223192748361289589105785658691891719132071749098743644769995826656279297172354798988374537127831784937699194779155310754809538396396804147221131226701438063407588354915161525325353895952403445450935192608670087309704949443796282306723206043685085347121074460943444974333918598933872932257782190497471714724115718332114064181249077868972486856370211994235667954002083036527364332299321511068478672349940230811148610310355317111022223883332897143553337134377430218494081507231641166712739198500458222376804876387912234068378058440273748314880845902653181694408580801594813766631918865681339979960511764345830965853459438524906354505744785812864993162566962929067481635434663470045815745685563927599960568637167618379919924707509260458190779245872126364448733728640335092998053687488825144885852731724068502467240604627680666092491972385073093607461678662386008269976531759434708124344975686435766958758058342613043656180845866598007950963779272224056553259583989497257370441716533951823677565511870590358618006372365003591675015126789039344703803897878298093818505813352110973835362771105828876300648617156371724551743395764677250849209999618288321388375143043018119742585582998041721500428337611382297793673254509342303077813667894512579001125473037177044305004561174305996413266699560507039530287492033412584993955078821691778079329944401297587426677545141040343024667843928420890648571922988941005495727918721149966633816963407017434818879887544946668696562738672218841873922164817018709460689281021012451096781584231972110759222639007263109629631007028165716630475190078041922033819469900174693600699644957768757552434838966380410736048391678712668967712650255213059906766039719320958298973526120107567149148160590562697462777855065556175271282147575717089758358295701279854854462989318243085904132400187266377391089624694271343435778741285861011164760897461502666100420846081269956446557720114715496710081324069866674660981513712116201049124393606947972560298774427384549205523467001760279203373737659749334401422390140920021276160762282971345864933624201720813919830039270097774397654821316423827002645780134764507655496827001454787687251505105685577410897755185795040930700015507408294241697054864038399019680248674015899787870281704000050057659492022107365182218039779290367314624263421570152655721168093867057662721342300502653221200161925033554635823503930487161590749406536148352041161011479862678955817324798551681097580003872694591303436634103725393721960573699868937658445251114587537447798214152039356930242791830528870772978196101585234434579907892272490170182525656661354556485968241502391090609040388437002732764988129188048784940840898945900815190071841111936240780074071435505902175971901406469975000363390343703584742095104882607276160093904639586138919911787245189684521934937243160480409148034424276268372349099204771870760254238886875352200034855278573451847896260371869635549667768645373416347044177606029836047176526096010521585321822881439178918528312986170886653794416949005951710236512468639339577442082774295979435636876706536077081276548404841359914035253042675237635131087741182770057582562061623572189541863230738881051541752203752079142063068095675571406037250362414255677252116148881009750707744700991949882621520950870467242948115335467384044307490702308288610114107270541522552390635698011020714694637653572649482008281954577935323528239648908961841797024779527932146187373959379226846490214839542713276158669385511337813776288245762141626999377197740390686898521261631100874195140690921322875092926602628337616821351519486494467798981771456451853398525958845793890244349691154657451784080508842980816747191387110808293391013999777696955351346626598661570675769605978226412968021322948595746407559084931076272080273179727908764856904627280109768649749456343748750744625665162501320658616228142030937259082235442106747995652096404067550472360158990433850680302666744876739244386712788848997503622689109175174814749227097072318034622004693595808923996288246328967216509326612704640677246518535180804195511666208491870474615329062259074168627762912889084989094849415994421543142169756934182283152463159021151362185161679752196302967841856158700453121030704922769744020096184462335646452481154579540626208758976059957718898077608820585158526863549692365779977264012418551530763647015405029413415119170099028334121259491809425047464295803523434118209720074678052507402869477509903702253740577673044688102352495219609011077542882058994941930465833293243023420031857210640959040778112085602176587718697050932173679817489023933382546046587150798120673556444113675320328654285423426575710481972100794595153864545630775097464323174147929205748290826228128988488434390852149601295709520528552612167077358562755011162901169322392952607906074610182386317908548522027221497167840919590121391944366808637559969860217431566935858991303598149300010375791761790411205737804984114597055176016999579048445311281021821967014179935194945845999215502117032239302087714487689846586166655874892332934958400290181423244442143192213460673760123499694793402646410419766970145246978636584838881673009496334296843608258578742787807592382845551692443170475793109293488587197696659202633389024641082408432876626809578730814830013110572273840883279886273330680427812160802968112949976796328617508434995313988325864045371217132656835295783482550272412507988258692264185817156011552054809514203486762441705328510533754439385519467689242630500876095875947750811689517361944755999410612847150400748474682117438625864098078599676075982081751976069501057008757748193967293565288222152003977588204929864999291263520364234885253172739903683354008290986511571750984074401381948984378121100385581376836237048914083688004508046742063870860720277127030967080036803055060564307451299308131021139826107879171682609961523741225676221182832692856069637793746451106318311336733828948447770397009524593896758080828647621873019896615467229980197071673011010976833420384037391356251681815060295198530916493202766300299016950863866843626170906225322484233588446967440316309522737336086462940389285317572783433358251496478045933116016357397402618301474930391602792341892015395514327538313232833268582792959599896964423497085636373702396748933925229050115543361142756893947085594433586953393463080556425952603820409686613392365815808447306182090132621768858954893350220828660268191803242477735977772416484206210279436018368722703603298532624722569486104744523538618758460408089426294871136471569324862121206363604281468098151321382422529808074221282831555203583967406273141585993785616103486025735362242993147199231893522614516922046898467301724889206837994529414751797532378899275885988833162357253844834587391084324897281798258447034579603268754574447489376927793387424055306070086058691567045234849421399443577739289070507402406957955970033264420949989617503483237475754962554027831454705953643333346071265753290239075171858922181349119743816463133209063361543175409084097270160465944402209627519775990566298652908480751980094799675808651336589912115817830163873997058014059014366479514837855724304910734116866972024281254722984711246509619215942823023786737758818366245243431386545629272882042541015421165896240348110348330072189351429490527370805498325614607769167360422876961768157578052191001111163618649888389417635062828585022961303645933873609046756897396131584158792894554283799867128576848259276263092124291144538280041133786338880909316404358571718212482307808528198307312295532099276570648298328635560741282162864091084772307822939421835622608814752497113862027467334644701294663384512501633477335904052840645943958453417408343404595645354101796460286137878405831361510465690783655409285460565016774377732167284524122423894107053927593829028943471227009072123696153882076501841170328987754214377138461726677858172693382276301035613437761797526832004253104521764507757277011937419595073263152178429404994158225355217220111710708890055762895921869624979218005883583271356766015228824998162902201643173962006738211308725580632679461536934449894762741050569045043253390549387595053457210053369263301464326415657480209143311236858753051318738095470758198974319448556043791344429606074729719622901307773550136627719773153703481131460246739360204469413695588597380816055181869729918778176549224990392204505646102641629482738115267488703343312173638275494561145789661106899540067105075694908169697358790871726045098414747653434707102848968830843907343291973179011913872064559746703880359065139786025627693036208569828308009401328438866057596289367688600672335145882138814656309621376417323037851799689618585241662972630745775115124656362802891697989738071535773355345044162027847164928860597201708435750596632039117060716770299946181642828569156560339509022290818248353197908977785734078400990172131870882018531113752822292834102742087486511597913363964410621838383419911570004478304829578554323205704252513222400265258770408635932340945281969561924156675137076464709080885857108768334564889810410158883407657405504006920168548801315041861185887744945863912183447730781412979806202016834812388536832407336354889911165514323497928228893105316432325492606955804738698702659180132553567373652240106853780170051951340587870066453978972632043118963560339468230759887489471450975713096518695398513494103166718073137275462142277173151103519489755468984121559392359966761857966104519415007524274696276140235300165804242771069654835769410709176000607159904083252316323725530653650091600127469396982490010652803437710242913353512357903077935322324560510250072590793170847742725538209528884455455527357744631927965547690254656869849403930551582129885484256842681781414020442284558073584641773499603896435072339557868882060165962867720193800624643713525283188788074681294146432845562905309887389132056982617026474681322309837248418772883669730545013032805198019738885639443905964535400683503819829757585896902799354382199106549655868181345390535258913656266606469969694514455346479514811949840973401181657170176856642641954386268489859978818714735282344159448604977333308669418062491919736003739237895365345992949235824201641038725790174045539576460380789398374609947331769726661377247461261467999298737949250889106428242374732500464076501058866629807553458051833862732215236622268366329945565607421898585290267149960671334230391713931637221002151657717423496195881845885499870811712610575624078515377759307924047527561856627094196132616513998432053734620032791695995007483829380923452427792083877521878054182571808175801826429713925330058006815333230148698273510027902635510314046691317631277726939962053998825041071059207494512964284212106009624855839003025798722868931791761770319672722356421307011359441535451317471972928850077396304085041710378119416165542349607530425415476484457659096403957509329814868927705398700049490649885946265554894050624237204936044927747552546250537108961115323151378409323953992818528460078561482089305478786487495307214677434322307316654798595982353381098468964394023166434432909466822135214457381785909082880518930545978441723457382600589417554445599511635105385406353563517618128286307233875333232048047335324090117180251743797736118435222342104296946770287178108359708219265171597426672798810579962597203147970390097159466746506026479098234309173150465009656754814089653637336249136028134481306323727481531198602149910451073045171558073163941326014895969027588539120122023650174616825215756942342179752338798711498915918538300251138830995943210611896957761899303316134922954596628577183383872902919256706742739838551138749193035781119553311037871140569964415797331367955288810290278952474226094138532050637280625619129840108236113035472511180428015164966712746786600146892703491446121252827615963156668164730087280768620139190727762479908072424003882838926064276267065461932758294092719390981902867114453605376988996863234596470538636665590469886184751872123966130550944524477716002751493212551332667723168553861774093630776792796698826790831527809049149379995968918195767941465887429383403711973337951714737166204172559947090900544262487013025850852101300297044527929959354483034413878914602132652546502631892474100620369045672192815747397898710251106951518140104184330083195871482735188596242197099609365953007002130342257261325754833946171343426794104493454014970332876706196326152384817561785555765561466605167335964383925422789153779117266955443581248593570362519047889709700674472320496512275441446784938596578165573722295997055486236017924485944348359375583001492819742662435673557354611405831477536881288282384863100881007443112440391790667606827474717399376939654207121376503964416066097480558151858966307406919963048394289878135813889296474007745823766659185224966705910442619468612286201834470297930912766255878486480879295979457351013216659312594175148627680975482885788334216653836795625380141993945084992451618906942386530967901009186760324095522500969468735351046141325274137583335083346038801100358413349395556833185819452150942895116006324571688441389897577699084522622614330524738836814113601451190443825901621604957494412762014984392908389977677003231690344458276324720169218501870478681598498734042089615155632871043540712873172162251579088401458295993794807222178295998522050854986975536494906394914511754398323337133563985979154132179633864778186094977429853328699570012337588331104631699391924555295736017467812213538982404891319378133360553149303448109714374689000149781795842534964990805099404916754306543574116866665116764286176319050081999539944901937227764752414890217383372860994510435578443246180799278529687959823855962212521661805702354643966823615185348571572399690252283850233106687144442052289549171273053338291788870228411951377023191111844363376835498473967717527622990870778494524742975766042759273938620361825581564679047910383071661914944578116082063178088129628412352658268383924819823650134796769654570929359547685683537941538754720789296652768972094477725790248902096360984466699537836564301811924970190364272715026358940455992262438776224875660128178508477301881769142104580549681652236907563541479477811994192382811703873835454577433309415759152908717315534939555642617728843329011184202878914949334164808443234313513542931604558324250095199422531863323788369631470291485009010627583349628276164173471014880729477621142876663147831481837009876335775321415861785293380723039400865737867241869296987115523427898042977456055722830527912366723514256919451042785212571939055264147491366447801826289934692190019588174629222433048180161390397937058606445196057167018464431659666628898686363441051278352206409731413079040902111469381795304030075388766371826041871465612789685094732308542399763228909313818859465852311858923433676960517722782309499864420411677619801879989247411613177459957632827781370092937330449281492323594499970413689928099064094878876697911095401235936239397729309032535817977426682029227445995055849345723427954116159533113285093346733238540542960831869844059964021630287086607190357259414969727735417247035928267934961406590432585427246112050518364625217112052818314820357850420038475131744931173371051715260509515540835452255776867527816967003388621533397532341463208676857882510717250215133128264301244142842381514823333964333976987247518407792168750943229481520922589792125277659217533884021893056521511825900282712742220625566951207485689351768195155050766224352418384930422063648107015853538839925066275752109698768267039712569731191488043927039387587180638104275583985625796122545352797841091265928608545184064337583006824681570302035669646721861641187703979310337037802471858391231762604635605151331284589171592333261953630393262383463427683100226302129434244334268253421472912461112966086666625242351452394177008658435670818997217066614767313512482991654801367727820505696988682561670896456901582242797216480116406802638499144243184630752071423994820925896645250283500121613134365992605331903641925933579699760130010142321315812016743193160873031234009395178519983136790643317160807792070169011675604298085188036893041505598318831619941603388875356122565111355584141092192965863881098818913857292142481400082844606551599974949724472577474071233320012905324149179676376215027213941954888112743881000797919938526944259548229794198473774886385318051045992693624053535424750088621512929455734591895517338108388635716861716553424132048115716825625901304361268942597623947388960905104158148798975006225958295891896679817912392060018346519804104372296151692822047849386964934538042449691619181045554949420789389366210174414694382137902199238642399106292301979458509453491520915508198401571819367383108565128222132241612252954667028330998397941705127348861681148521053390668353966967185649300226509774002218534778223976138662261332862432148668652407200698473952646995438014947855763091587919425931247227747336402460410331329318506039576066529436887469323593285855590364373403573955257685252920255546379020476766643148174901756770167094144121610833041395953173146187648881788722838690988256571106895444774683687607070599163436908094060456575479606489347854530341989891393522939843626097023450241371477253101517839503089320279713186834489316534310034964057544890061218982487324676435474577770927590607610735118348845838136489509532397528192221057189950994297793415389322288192445095286525909582574865917752759874368231101847475756932119938746986152389856077225194731534803296917889941741452140513000399696028099975378284046074530967175794998795537335239114835891934973012736199852812374556095613875061580686602007323088242493786906677316691072887659458439737760384908806896160263802639350711358245920205714180945715760574171813823437520444225044514722581924586054076234863358532396948608251437473903503934884190110168920027798520341016633660652870516102742365673595823409506996934110236335444311751895584415459347824450579486374278611442552554081563292940461868019681895433859088439382177200142370998265048551577428117698359953570204155066096702703384787704808012057919214034425729971875922027522626310414352187131750861134723826210673666922950465885755142401114264869326858143496527254339474954352608061884598265532224904567537135587230965021050825751407627862652140691536498438277857207185446766578432200842796767759929667997858183341152742243651056826292788239777593893831627351361766710266627923181915918083162996787708794691618937055057224307986873632419785088825196638492880846842127443963109371348033813687941506290190093423940814819470416576692030291780421980131724744958541301558991191805536690738726399211944711554575489408564492515837101696170511923618377821498310148586654583933298166829487834340530356534619975825555818070644830679507599574767558687982431599605241676245851056328732141276455403663018913827782320409203159425268801301678085011747722662004026416817670347378490147510707198597209400462482554886071941243970166361926023958028329899735371445427434961184729442351610505544141835607593419813562642531938725120527695316683727460606730189685699882826559937645977128598620491794413148735216669222728814971165828940925613339813310375469728049573851060666145182265196325364975201225239927918750592324173780793743101186598805421850053892021046990563626140070459705648533118785664464047834401260143094547945967338040904267399187211511482416266123064697877011192928569330582821573591184471206053400823458875596221450566623856528080154986585240199059483852448679837490478376461386296466045989306598763308444119747673387019624381743783385125549674355641227916402956407829156832321452251241821985597196447467482539609931789595275123705266624878657506266429271744073604338910051005874278519436100881081059991155106386358358418710026824935390692697578940399461959914612415800355214357475881226408648598783114327055793630190269709222208640707536844611007157299718294034895144926106917165873243494698210743587574145046097594358977914319403252912441365144220207846460203608488544906193554130794075684267528743131347069848092190071535826384258940735563468466866079402266505326023406766628848288937301546423458539687786990254158163802357461983455823438088976770122726861665424633312636850218432150238796514959073199957617798269577465581136839255371303077983997389805675028032031600905025765680112564626864813819268957792539167961645369162963692702443455731590241146810316288780341625905775501181453538826595786441881290349068898032791978203868996882142661348170454851872330160970937423286624422990445939344710228531522005533858072791210841192034689499706141810440702455956662401371316941224445161171396807069495141916016835693850089173146320334572238238684565334076706673782521930577092364278921146505674705919834174101330159572118304452345112663446079206564354351711797516318021915100521620491339251367511002853214621406487717944108165135554963191195319846314670880987948375924500942440691968976227593665449480229163425657189360653050951759752865576522571781262586516412031239314454578928527099480420088861263717633088190190651389797164705170400314188307480049115916624487212976064515954347703077057249759516318102196087496276734640835423375952320709791317393399089960307321758834509048538889093794530604247406263036210976414778097103725247549782315200827259154198372011278823958080491890163272086336838803261599078311570929907014737209984479562700542247240340646562138702252798091953497125363807848667019373617144525459164633890988755741292312001928637293624426958821443255989238351327720982870313237495905551928546172822271164314991604997538038745163572154467625673373377537364169120749925199208492893195114844967053803318284228061378878480238155860323699880054257466883739353074218143592773529558204262816811183648294371451950060955085482150635378149227208431827027275299836469880777726600074300844059093804313585980652075676163604439604073892179155070883936757297423396730871567793577120906554609158819039131676137072516547032529753217607762875422315033208024475116253068098523076761055728747095509646223637617635926598989830356924294757311878329773246567627093569874100753858538575450022205371430130232072967472662672280635368465191573980268654742720334290006485348788446699854389076466027088802868578364767439535271066850240130834189355448725057926476619263467516782521542636371045182783243287547300879878303279406741652290606027353909997800479545075792594492093705144748492258740343537727799844902368858706871205271056460869456989740015183906444819299410910603281603110647207451131448660359593815789588741675466208423176076847577403156527970931271144003807302244362263264329926747336619516148134787067236582883879026362602846077410296511146780415640678215696790556929700770977229888116521318149732903467324735280533949945977194013695276606103976500506875828048536236018120233274742894171042527421141205742109873822512427067528799878281553290669201751137059601738833390675602190622242166505219950900351476841861601172378556709341200061996977058010564087335574573088166083455341914168606834778110609695077458024900683669714117864802160404595370771819696210053175219533421256204493220304344193708220291495192957431890415866886542263026978703691309489816918949628993074075638048785492471885973417768857256809630115580363249687144768365873656642471244284492579065737078108327220139832664438824819437320636784110131717075768102803248737069969485563317178419549375606622615701249549359477389045453330374178679216413117437363340806106476172373399634348910380039839664569481194966029866803860794472813937658932719219471680707875563749340489969337459255206927904847348053678914413105014983065693576874543837807418340897127321629682758173014071788963743453795053905578251996339956379346553178655733232455777693782465551117836458440735486134854432381894970719652618792861858960624110585038008205338048991495523117546690838069944310709409464081828976281440159838891594516783635163253004775474702658671632896596322735794491235425189827900942032130543081220682460131466577981911219754914655602742587140324057454502711019687982126614406886982531770744114224398067081241939467865206240411987797441002065649376474611071232257783026324221081901129572999470881595346840160668426283839113533097708770447056887143021103815593232548646815003621936100298245275756821361592102071720896106672793762049576773686385639962692500050275558127392713883307089980583673816114311777400361109500966196879427422207536796325660150799816431337952550448984143826426116364577990441945354089238009495543773083939164888794499778257536268224522180930058934880684522720681443296120993423224557120003801399116113484899745000346027363239399972512154159041121084445756027697257576084240235215281886968201091743364631453057974253117158867864424561647972906613688914253423023580613958565935469719331450833557259176728429987347519330476144307084394877379923246480313106273373616999282305557387646811484547172764581996630716767705722963939325835758908354544358155992810598058253271253784663566222678523516460433183383610722581316370373808501949949407100078900497002012556148596074764018204471618218964777417057782140764861380185441411833911750425243596578315308458400016624165039440513090869156856279216241958709078709202375839646505566908355179908850798359817412661919956020675712580063714481881625550133466792780523826597928154747411788875705739250081304971130748033900945588197256730093551337853838870853141689520781591854454636231003796552206747534953707277768619499869923681129552653215331498487454376875485979024599110366460933227023157195303563248037199750900530864739763791704556213538878141624079353476549324764892135328154363494005396547565397240662023614122965875794990463709706332414176247997553955469788000609376009411742157335714577335320648256321529805224766525386322044366840246968037242093676541563437316275181058040658773586365306854896679543376502994112651319866693853278994080089656195339868690214762362488118771129026096202395986591116320074686729466764685521852279143783446844748427375216479638278175017579633921195975536313487227671902141054705023661132371452319952306643918021092342556429064323258212094606207462272154111410339445051019429553605198170312994009113153897342316089429355763772903620935558189918856384270642432710728833112571156642438138448481178670328714030948821824389704825070785175039657715159089545884363686829333522926678166200186524319148670049652146337942348372005178389503958707572010141371472811375927778671465766102392145102556144503425933663057389996148883961167226963380992677035462141498330939692030690085529015783557611599006832616251512255996105607519192124001788084659171506746047407394899444414089048264611682161298655657693808695487233798748444997735280031767214739087076200267307468720847300900855716493020384808006945255409168533514530348643051525961322589366975529709942064057051147111708338350394710675541658493809434894355155722098826178762937581220034518843831181286602231565729716012735444211792252486075775063450839048483214635870171983684155368450704571117836683918265526881452762768372575629999042748597813237003504842340260633394438612531726992525679601412497108416407786605405656617767791327590144695291983315408787009423323602038351078638733617997942399558249118670127699899752523524022784387713212291854579967961175137825517674666691533499558942792372998814889403374856394235749566453224555373665669706653522041555763542447698897715721635162057095318682855373590251514164715799508235916029076564340635236557232214790019220986061367901450632375927418486398939650662466740526548521973837931655617532519218844276990780088912763616999931238010453085357354558594727471715986322354398696435889446347706088821649996701926625080716156859201159439396528108031190012712316542205047807367123884887395658473438934466530823990805316891971191103919101089490053188379421286529193538667030930951899044253245436424495564346322363861716858224950482051491855203973423825376687951460680213215793329079850418477917876473322698238762440788389405623307679969448793438167631965346500060477032666169119750888425307722304478039800616366983907423937579534185704274981703689358399629934932607511246733751743680110538127009332388116794170376186090854752515546175648880792849190242001688458292711296918090538914691304653615632908684951665737317765954169833666592232265298307418357831471711644622932620769222837227813295753312348047611639044510974294933755054027372092533197318868457906873751988095722542771349251590656771751739884147865671672410837102926983008687797972764334942414871633003756882325647174025938074351652119080311367163007752868433269092044667921212291018570375209678312815107566643235002431046608613688567410270841214095710002951982127381033691665754758037094864118758076125245868755485659569049068302234982475671350213460081794269286942004858162522010451102612429201826271291469379879720388583364560902357518965044914426408509889775942498946491036511049646970431649303752329580565169835393513438404263701382225388247038391578729687142466136640061504251378663877407418463985629029595325521423617331119691252169660822272900892429192344698964030011919413560524666186883964956875791264500815756805414844141023476013957047142508260309781875829754633031775685554204316249884615449914299151903936297739518465350092946884214972393567664130613291940317007704796005311023784370605697139687662848426234597913734045897308806409822197053928082274636829051954299454835776967333018305683938981005163445280287000759011763595380175915063762113637465723100911685370056147447985736599084829887735371971131685805852266016809451027208647417141380365661076396422352334202799152347748191231937450409543903672609745319546498513341983156648565421939220425764915565907714794963751867087453088611881710603093475050254576144045811937983923720907403026983661073332878561160400626721414296145657700968401505479973873149249901886171778040388284882312205620584592963953780260996622028415371448546060275347832775069950707036069455598908428588668673950348737218075517461535550130288404125538090720629010774529802500570173263232483132995180906488642151570237329024824647068543945782660475833395835483301429178041497852282597474643644183394312030651819765708619282538671043924409149933739136245164715319444321275323524761517577591553567002056804275471233304907449929574597170323241088441720870108101984732686341199396474715466208485807932505528131366224975241669510593475387748924351615662109698034756824589587777177199593156900598891711889161359722024086578516289001588023510653914761576608660327670707023340394288537422179243652846810084380141361769449675900879631812471067696086758333873738498633613212264350823698067006791581436413331993729976932517339351834195259999695878255466426253368328086498413365263036735818135992720223834589470125875612022581988053774561141441487083384711993987886452387759801119690085308946810492176075333438833842637784881308031163064808384033967981954477738277200139507831027181855583599627887537324696362163593712760264712076112929844884542105029211816938821049146741951904015117399556563353730095985189260498525576156388825605254597211120716688527689749416502884657606859358798710827004549294971746963196511170977442811990364534483676949406100541824717017800809671623801079669356029036208721088836699982826540842051535902877858765526499747311338538545976914753331643512050472187215162518940048731384568533956651173699761542592490999729120690405916965894746202555765846309124666289016134809826056946446787539479241409422126507657369307932654252338853596840391705686772260901714493064034117028934938757861546023145069944461215575970357742788053526137173553894055965276910967194066727795953429277421164954696191640922438973831224854319406198478993685853305703885778934535187056149681336605630762672078907197733830468350727823199720726563238326248656385331873640259512456868618278157913773188071045277433436714258415564000996691954993759149065335516592758249477754849378781395966150766258960709151134200048164356082279180545744427672588962447568511197171699495077077711386228987142885885489044431195030633299196207010201660611327726506963882978684609818091097640173771966435602359512767566231041144411551879785371462623270802394297095233692094967158040076518971196847595555598536342144027304394773837834421309324630707789131501814802990428151233453953154646901569543668475667622361253812738114740099951158143186513683231531008706564608630290464973779497022672958924963909603391482011729057905297258501481800048715135027724089927183344502795786738238431427031601771434551466874137151159928424644420380823668276699275244862306498680235108428804785680262755852956555807909392494933035645630892355541615631022182931903813258364241940925298163018052922191232327712592943869243279898098119193061659742840337036399169100310785278088151073319478994337948277623253089837083638818648227318110425652391536483574087967487057003681823006358276650559563140712053240814748701780168637944993009875821867723250714299983154234401846070636664058267029646721819740341878208719257457978784883111747127104455549907884901623905014974701946040084830065766487704827512702001904595899172065008271716827659156970720946062132225340125971437483491046652354880048229742042116659641607561910326153391667176395249601833354085029010062682929303757267221521452512814278759267580158928910396804313533345219624057256184455480161236879589493078432021513259749265089036277607989022931710772176475280394749763912708422298305926026486732485085696175397462518894662705018547767625101212695077213401659910843947066468873049829122304646284960553113200892547861393654195992611312589914772697864052838375828460117759769746996576334925048882151188510464827372302934262990884836160035537994745407238666598621953835820937637984682369266066251160478385769659301405663412124710289970286446944226337093495083140196645560968296260503521504445633996726722547923277577114091027172634514534055040604040059531887112592794359607115871517519700505303193361649938852569020409127138026048848199238899825917396689557684775139208394248764796707083314535466454026473666468448781964441710029465315394291749743224082912937569834666458728577092373607639320827566935444033228154525365375262090015079521954968747416176920121787235549380226087545528687958110492121835424788246566727453607199250191837805863329422370907189154187046827445727481032844230274244714871797796907025461547420720462027968542216784036557157968017155107447505600263474373601717607035516761808915024911013334853441629268599729424400092759332884401408183512828211242583580124253330508475805741279482365771286047215240752593340523078996854287039366010688578867353667450920940947709421969915786783862087408369540607862434071013405595372667554074625665303191824884180341855993657299904324510409055284525068794318799074221944376760698705692399865917649062303706581717189635582648672536026705388374542583682811067320496226486198790647098222501613214383367500184561745476575003637914803539882763319428349186005363428484230168054837059842310255228012157284953222992538255314253521820847531297053442069652870369770601835925930881247448966073588872197919570804300358962843714458530468167399653158447630323343846711936292201583512984686770814665040059898507363070873570653334321109096583293527034922158998539055980968581216915931317522250460009819430562639319535270515552725770000966549146853322509852041512529406265366133188881779800998162259678813330769578538901372040613665118596900376766553757506755481639299867880217232881829725236427963750068925759812550239948576163194516901083784487756533076793401101636861046947875323244900637509658628556245854730379535950900118551961570449303719472075274287192066404883149139023900715992000269820254015999745065176610015958972674869209576904060701095792784208376428806435651933297379842275981262488128375760194477646539904695000174083952330972979028575033857786353134202445758390776089574138282150249586175713088961473062499898752445151047706735532836399794709935042822304003156698618657217513937032209574698780123660292777210573030772616778384721135535287098882530900603648022256966771358612001699021783983466605718057611518843137775824041579303011025593012131232403000704252597201038744677675481759459076593654361602220303582437901777874198266870931267391758636663273378037821472958393352756012987217642408504685270218140092094070797681589376964479062777309328672526940994680856622921348735308205928855063878407700912035666028232997383107071249185094193987079365251158931590763264771279277618274433975133840090961896949933192628894576035816055635454609823233654083578308355735161853852746184140327004500956245901850909959549747070003497899921147610550844075073962270813437560465281689733877673332849840100781985457715846557214739249407592396264795648479410144417174317297975608972198839552990424605267451067329827612854177059506236817952881433260610467937005699201925590548970151968918008570663479388378699859725377542822535749923541167957610887951239734661335520226981026681285540669834739058224576872598569552881289564705707344091327882099209396559552335999327596193128326700453397391173289553930525263217510467299533061853746357278668917336042795391162002371801102030100979044087158868118302872873626750681991683016116695095382046235941771140959590960128665095819526488952974800338421065058928133192894920507469300696652202517269697206477629008805883011404603399407554536797931938278565366130994233130254765869455546084209075634922409025053698115138420314987823449917292208698512298636830104717488792232474178227874386850661885766345096926038328624346223587181132363490951488062601174789239107079275551486475153975881685257845772054060172127745437122686808115298943305598990958789956286688736111712212829816578750766251295369424422850722529776608674143760775144333148981010274878304880129224056100636286284456165347783873767400108406916748915860150152560527068516731981187269590200388045143924568461807204001838446941190696023089328195301364529684240414055292477708750521746352838924153057529142410274784352503058233716043032788307381075044920419267337416020964270830773824050863413507856174023994256467173154935413317855760945461975816011985205656558949920144896811907092420032617881353174111686376918806868525255475573626724793059650742318508207693972065125840056761047870231204021038007877835301888168877121918763151709542817674146206761554997223124597193422249960426194069859689309267533728331130428588119866791465763882727810684073330978715696555491480607333574887295024045542389470003749154366531274674626211841704914877464184319872558788294530783257111575854809129614922790580746093016782046722381783625848350829029684705896031226993141334363559668120827841704261354191036537671143787636315514225757189060050180888924439860476810648825159469201764132372176409317495086248783584436168394212294245876477881963089439819857487081754752020482227831167066531035021871008973021190131349453934730237984673330484275884760736995187164687594915522216597179082438770433518308292970158671566025806553686846160015459067067981112746887116339085053011173296632577923804737163627539760480613279780083191986160754554518536473959849172838680679521588105181334512270988324892665487873196078678795272740331705303845742261462030620598210200579925286850990393348736990584743847929390400344772722103533604176903291643670288052772218041792643751673730256237160159194013319219669912118976262831849539791360653843521035784697057429549024471125475581846559277394318136603747629049608504907516795899953843909980050270198983167598655071063441834116175401983677556118167699683787341707080088024936074315191296280722816182664187244692990086872371454513810960938528634687463648588449571358686765512804970073925457237651661480927134733024445275235343756419483748708118206783222152373059795989142341237895028898413348519152798357491390577236568322191799724631743363983990892496333149048767618693775857074634190787344286498038167049253600209638761531947802455474410429573494428631310331139808242448467218456300594612804441128666270504057206753216170999689710636255812397303099311686845773147858805350786542918775250286969359904603753607965844145737640033322867719005860712486602333970629370699834553341368554977904137047918587788434733719161061733350268525364912375766776705628911283808129633210640809599330916127124057411660529084362936815725593433048879510179587400405549075394300142410654527895720743196899460229561756725842563300019116814578259589117682011051701767856913725828710009138378448560357750061595761055286624730152134116398352486951949574789315884655619272436106308449833671778502659156170157818980226681067373934829038246710494622504522987470471787876256194310683127790882621692935334634999477365418133417185649534300245200685546642177636371246671023726678323870753166771520171156754540791657649611436691765911461543984817638501160533027378300662704372494442071504851586978008433070811936644414879809888079825647247315012089480407488697393389949841327886305221630695146575232268167217889560106378578957637596944459788732274383094655413595333638416820047854028073113756443276440019168873784341423933400468902177195548399190451030379170339572149374664352727398437847128373887353338726006273120028421727950850305237466292387792013624318035243926508982261145589936842196094996466615870974592607864249567345840669052679392644587018715708045951038964753202839433233513587305456798491913633327220517259053045858905220957947301306095364450322319270442134226298422640452104712280744713315969493133550693919459645306832284178925961750536895260993921365115442273151170639545169703680828452461014887501880858145735266731040885814604005561436483322986098078346038669957966353661973110574664291797659401995829436866179827719659605382877267895947978510132597111123411259855084973444519446597458453716969443383119028887279288737849068002570104680287985714410993025702239245130954776002729500297912851581074433250907543330776028548976637476230776406027861203618437572444893609338921122374043500899445057634515364571609377230620303138636233295700460267624182892424570575052558963409608358196497963460452363635728477557054075583449692986437131190944135263465482890579300485742103399432532195830510591614919902660640852575221044280447941525726082371087980044102114271328184349564695539515958544440011610888595947296484066414091117641435778946298713266752045984256713167884433060325262364524045301129139206414552100736466972987525676520283582652314454288054709901383951551351620644258961854914874314786793051137140510157474228314992715663307691129316700909399786231241296797336551520947795039233035322448543364171506792878879824189626182470703266984181499402366115689739637305801919889364490844125183119350233761410736360052670350633963560862563999235658148752611650893099954069459284270814327659126681267883676187370383609543276890898480195240715534257491640539337491851742785482526037629365052942347805898803164542678060141421902693646288475000650524664991165788595923103423763079830943807312689628849782131736366342846744215654831915303957336360714608966337913707529323590850987712925036704449378692297558626088302197426380966127052908845887418679137855910176278623451682988279716670238667145497997324218266767095267019507802828546677691249918313057565547104667893240307476789390421965296893159815955399891375393009198095498680527120845174906889811867601376815974648301060525230239431977182875550894778570805338043480760081959188952273235271454711071313647366796393306581734056295783968392762166461950283512528770580585467054636713483159348368472158429188379972260799250228139816073248373107309311161339208205730910073157819898723594997352742173606383555434326010631928223462081638542039632593270522085569550464567077473203671300737609466270846863929234510968973203205834324855550048082206433643707286240677460675292731109208526967728741893641060818806544478741502175131713113493738946970939960004540267470314757186212690482688278158062487683891780983363762728316566973279846558622273068672529738781475901038289962985323931576312705421552522203457732146283277313370588008971763710990196501562171463038583652471483039559579242325734171308626087176634798134496061646054246625807727731959821962951676525663510642810930379893905642984531166667719917369069866385894264568539990741337653566150866191771052876654684478380940235822391051029164590459193981702340786805374167662403647338628574515615341861048745560115359471193475574686358803831800940118376666659035411720829719353139452997494153409385542199348075363443432525743705736496533585067214139154256597313943676037676180723306338608529370213185132648751119013110697485652455693808072422259787824579433719971045663843904611844693339285831637715832401210737054802734969678974340137615947650097415829024325880097718888571545748488459896322067346180421488125887691379218524272429175727112562128552597697056742815593348885614708211864586088613837603871359352133841062060685205619290249133502917228063866547386912235295344481772072741563687087374119618567119538912070522373616759280850636823797271507221369702177777232678061793172778390521102113414283464735830469685116988083418206855273556552965574329793724229748960217822331703650105752591008922785218004723283058343190120649286855834230779958058151959364897024014777454112343646367714423923640561289138035650234436932973335036897027649138616193857227739598767405842904218522409130100984639651487611175266784938237107354287413211157889077453722933730776390391850075187828260355078448938451174629215758079484671218364093166710789157940246908853847480633590008227809961137153746229170833000812336941753155443477739715086804014173730941418462649961916285632875610776233007491747961719157352148382534225829830362048211447400399412764524995768218149621620401835535566061249814373044547364417638916371891580115054174528886289788812669898285787838354908851391238868012758234713824571323478462719302433665312265341319596301565318130765486770863153390410302216743489220201437782884124453031571218528721805789325470848750865303214894634078363605649691115185962070819107688683271825334292988169258986346574474162124034788338542677174330220771309063557622717183305928729410678571590684834937558264310931340870904957107744239602834140506349931994528372669897962272106532301113502238751735825727598046060125635019946217549745345953964266865661762365737042136245101990623563372500847826778488671545382157378576345686271439558602830732763622910247085105445971466706893641904087152470284965837137157953420479435801615812150599456663039086590810850611047954029285417141572660280564236050817965038858256949774903093549913450352249907958129319797561748027378850739562124146310310400497152568853987045599575694424421295877365845805810367105212372513070686505688103904952328574215506397253415265443646871096731142193358899327100967841489407370373153924681732881143222051905567824600693633463144669911830456897011946656213841500368045708336345946898130504773665002599492833723181378173233151791133462398189041468512628489848211549952894329052057466793643890279133887177187248254058924457355679701181311815222941199338917514105746297026587880727431275249939722278553621924404180022808240343263158136491878055430784802720952586467626089860000303370762830781813448766180572922327012448573561567879559252504875120192209024553742357089520924775608669956551958592053738474933382912850511261213677641242313929142602198085678253092939193895686997422867621163906228653199169383922104341998465048373708704324204375844941202696590936977465418421387561475964397239113395942180735349301829179170407259463058629553250562623471758891654992368640918228765005275647859319776393262643148818895115599541373499473762164279653585242988522249923364672160109095523828418563563251782702750010285314391832706866982911145283920321147806613625428185640668712807283453796681971669971614510426851285380469249212775230552950548033346082246324818822393957674616076194643138959003355578376662525221227519792264049522142856075059795863274606172706969214411524824657398836413995849202335155416493511809663569996419645335146777513777987455937091861480125536808673863259003262341270100978254282176388321379395296204831589794594943406712215852896338096229669662577907566841403341624971787543995217130124331216852111415232650974762257639004751109502744943961782259639475921044950516289834026143975404815377850895976399749335777269967494808189667513656069368923916761566116730320401436631149879204687007957186935467363382399420290686226026307779186311946279305908953581057701000229810501745209092812873783624787873525086242211933340726037674796366756470862549287850902648654768736107879990156772321594244074583474877818647052603118685506479765393603834851167554146368343568439484210454899266805652342220895008962933014208882127438421402257783439929549403862603491391974704192735862900328654344189462318558321265580401681317619162732798280123166745827794202548042232689766993716692934393051827541930587535056087049800480865613723631001434105814411977786902796415450231894392727237502321267511110052885282574726314917854414104244027879336604945252075304613361015786927141250785662215849660228412896333629748349872646254502067837613184569338191169278765121960710905345998255253784097554837775412396857814425414590360136883090158874900503432404548784750073358347211281701527902435262800863683112602019832735878284554961382712240921978218607538033180067191849990078018019271342941035313145644208121011940555709036264813464189127171564179111761118391896992917432233366698908887497355606336667113663588976020744544627263762516977458461396302342330646227718474111908090732927917958712606909030559189416075800398541477967670975240611746729300659101905834356222578120132091662535785155019799681964262586408069274213710319218813614745191396667115115115844951312846862688663614465499219850003288169185500891680920029139048581188613763803894250809685005854800312873104182325057163780524823172960395444554908620793504918943034778477366087985728668831937602343595111322383390987429211515452025353018511070434476923840230672540356932118341826811662225136588248811707645287342352027710335103623267670189256540375265248447752387377021329202976623724315292966899837079424973465233160599926569395153746262001654780705458488399970187773889755344131055126359079124141634146357287109964659970564473167844593434560872805029928898906820977437064046551861636319147333659257979942147376456505802646868627329643887309690034076229569216990015220375809060933279521271171593981744972710304097471151790430579762623481715301176907999587154202768348435182914368154476918896980066417140079683242519758778645637169916750008316962599987578998422356176653005866838906798351416480411791005655177652893652533287828716294214648790549767449296962663105744840322885081489110064589991299945795586084499578409134511746478598915998044860379633304951597256227146202151353235248079643965909564771633141174286042909222163969657730539999387595709911797931923498712498341342818583639493009134168831598343830131428832438880203571156296621967931321072532765025846431043978990290458072545107482981798185986326560016538158282896075621794016297475739106594568152211260322279503936864332026719381115574223551967700958882445063981927386171680277604292373044525776937389212373709452872841357404764511044067504902486090414489680806558377376326691554003812927853541391105911002734238307190770267411176858328300179256750910442847209288192317516567735058438121917025006721448092788976267565317259997457011374914638044640733616097212845821238818363943435277325291637928879604614621821101839487300797747663934641897832865210909333144400462929414152516986724216554507923386787184903152620021035886495002060653224899877463632008717628308809510761756246254975489845717543060855531056152208499314048364813430324728448516809535331323949631042238171668354892432567457299777739825752343768399491648563310592272109602699610166596917653495679210559221376461400279488698799370289118770273390721585246639205923271672555578245317924394053658231612476584593940655827358255128873456084658197194515683499132978015664520279274863116486507022248499112216391913971931957173677326687399249065055094525396084961836437341323521977190110738261215478891006947335481244980644597099696383600966295139058175417976615229091974784599183324793989594710075060554088192618550326364018927527548704989261537007358644197659247237968305148788341132439076748171768775395859929289673455730713287075459603637458737709171481621106401589863786206040491973103632867882679548418185035580363697214359315136644074273086173922325406088686228687860655342611873668298310819882371806485568204778100285723426311515088597294385504815230793107604690074764798393824965131437755555025458332373038313865020906442017124134272916445157618061952475543743535581152583905948243232726684530853482501039166209317271417412080944182049748357899162281105026337115972550973836202859879242989050937762805732405349095090758082896797945571095307897630805980961668506911408647803533289505068362663151160862946189633234592064008990550997776063141354564973726166991517636165357273490842346780496202939087105016948091207349397086646681193881590615430082936519194691602046407661504637127915028517320967765418719369341663903136243751358701274753069524178978933549117274503543995647879424429968051018523092942964238808674581297271484324823869847015463525950574972586616949470300262388749637598575442538289295092060755882047732445939996733649388503226249117809452632555229090420608044580156699891234020672839397099292651807178393091188803354141763760851570271700076219054048553046312562464236679659228296813980689824963288452857247478961644977502695575502133150878760736071191008904273112350218203098108975176787903619729396266581811324966685810318620380025106293803710919957743446665527119605617577385290869892374894030295342266604326965774573853323450880876852733217489356776081178127586477845619535860335748576808027760699748072156522578549363656508219456400356728257561287487994305625714605608042131213452067694514122832635567663941091131792531202761989025771386328457328664056485836645177754865958518498636048747198614164207337300421281521260528014901793509046662326965548050505607918925189692968812045834131943457538575515000664134918951611645193684255843009153020047932095102648485767933192139138969913741230335145296945007516775959304037516682517044714394796182001838821087850109308677412303692700109610612819492981987942889561226428684932445922577692912760323381097328590976223049756614590533160268555320533934533832575737695980176106347032218418216779324609593548225967624771779453590698572379616638969470347516709901264134066643726194680847547604623757782306262459327738612413837026354540544383773870277864860407674616156288473548913000708532308694938650952524281936146778472875406902656026375735618759661790242375251170835263194678987818110727935894361217949372514863363142475034542009184050151439514856871729785109011189996225865758316987129741932619417650911419265449870292741262402524168462711295387277386919231605905065235019863895795586509689245021276742023870878499305398056701994295587559592823662281087725651849790846981020777333322630452496622620385012572736874783606348471283133683312635813902838963394293765461703590408037447935126164004956103880357635062159923886536734286754462300651179358028099452894330068197467046936220315410472545334708600557524502387803887367516788273742063764734610405505823208128851193035267888642121894730013870105716661324469320174554092277148269527750673586000490459035507530965555473051026617458617628068047026289350834834841076201985155689276659974432583159358028563227621228237497504005212728658624943135731203682525253262241753577255928661611909885691414365909502793292821860110593182024004639847501006611025762014096464096462766584701415044458269551843823953823137200589736346133326839443015681446908055426920929131287880049333611854090298151890840981135453148409611692906414063282304796322514875983511123671728040912527463662883994411743671662045027833421250355152782195706036196053082007235183259975644411937546890617504276922507438390752270938463554512400269621633660517314636051753387419867048337267283960520948637975678687335323567343599672571394426007038612333368216491041526011187772739700452748995789756650946058933103071436244965607989867869836059650940760400047356656907676992339415596159634289641030562243697080053983777286982155843841534161074762033962616482274556373646959712875182613635723772182541262525078453671120428030460704528097151334456135232421516881619537341351738442865792118893646875301903261487914407127193424082006399666061797165699134539146867441390176424394304402917648650429210296640554514313094615016186658202981196383670131820876620638987503859764933426413873996683703435634862801243382597264307617138150114091083112414809364158627770574216074661337772061432760413484867107308955574084831375561264338851316026916961469499660563831563085008402707940010457270329975968296168836882583935225063958648798204676086166171852736499613701002375889663380154071918346238252314731783274022667502142917929022199157162890795511664701873590532338381985717618956396445721724156319566372244479228604897140949258357226422978553222917562947889732407762766877168733319206058968015569138297470209921470620262248643250863751134956550635752435443644314727239792135959252330356440878617088116716804183729414992314915419969115141496285717947061353852599230809037004205835347784854541937998594775661818998100584605416873396597649538714656166569711463832765206407816646248532516258502850454699698550891152439678064304461467491722041064964703569269095436480601390901145981308814806370309541625900233327693796834049450187362842969497434131199131258523678483746828312535989859458254564993791690043360872833461782097256505464625097602729790221103921228196980198660520506985191070907510417481678091638784003381990268608934671009169994530354650946850001011264553507837083164364679964812329805986277154173150176474993262271143918846025953608638960042198575098877238519151896575219338708209043357267766955244971264906017695510106686686989410469015934208511904606909304774211295632514977358519351317930083770298567690015452056098701353514645821918046588004560646695579550452114057235698962227643891524921578356847960446744024502567546494107457818448261869410924544822665563974587131066398679437534979161146394181905225380123214362482154393336907557354061091109631245596051165907545928058492062894130296879258224920293525488596422137648231966280697572347782688115805740955882536669259612275387368529634955596216955706598695690704105197081354129372324076844329960358026324747282806338589923703359364223324865658342867922225513442501786272100593983128890681799286156979352226387706412494135967946051929310404102685550397869048603844134032079657768980095785570441420192015771067972336491947062870776459222603646113710108136082345550460650013537818920666584487132946581705533895661965102253637268650069459214242649675291478853186498470490600087348354258911448494286142647647911507143659215423436916145445738181787090656618201192170312810232220900044153129948227592419174295773172923623655832769276094451646994390780410659114407832544178031165455489284291694646528760888281936925884025802775119743779526259461424131359121614449857429316926200717452867067336083386051325036392899999193565037504372791853133584002843912305314845314143260350835063103307101461657028252933896469290136454336743569908431297195821998193135866140660101320409027644968321126104975311461391960076052755750914770425287047841769229534706630915902956340929613483206302982884105172058816679764335607166591710618666059832328149469249332630674178909126040731816284262270701003434476605092695620669780141809472557944734411962754297563397667432065837754332497791048661735663488347360482573006220977265691416662406151133529732056379543553548053669125150460410085871756996843874109300460998546726819145749507947344795980547087241493388700017138661464990246460458516262967702789639863336145848695885994901029724541747939772974050236381713897828843216381477582643084651405879930876785441750212313286928561053008411177983349158321284760494546784571794661117192502327828742344181987775853195123962611014880128398988709506691615864611519609307089146330832284880232552241805206377591832953772491395015620630463712898875226365605906174793309903677714549187895607035024941387985309429450623097184046905113966922731429681524663887718961642393774341822900220582103774838005785509536793537693996365263421655917903727548625165935031479428806161686295107338293392345362357673537794807588989557884020739490204070928273818093217767243938857676350744379924466129707516056379953941309991483113726893526690789577591423581295080231541253480087639597787898384893854382774677244123690751587840091843351602709082335232999950213415916778993701070180547040872034645061896004863217155427209577437725167895889645864920816063790091912090770875015922144646635093039264524174070069221316439529320725572606807754602855922864359401308229808235209821338089447029638880923880486828956299916669344498545589404536983963634127483044837737218409802556404240877481211686138025070634558581157528600080986771320575419448581519141102225941783085352454544458294524353238076663749459436714769775411074704164366452965041545641790104679994626995938700266919077214321617630579301932155752386588975777381738994123789258943326903286042498874549261377097755163211313016621343112265334074986529259176969392848198691138055222605950850309499715781646368807095726016318873419860293278720215648288716988183380675805847848540835964677861406195911327083422238949521360880717239639989595486542639754395635226526581356393372963960160058270951344615976628628792238447406598977507048856364274475328543131556485934668140973575663087306611160752381249444270049962844957527123123364972525014739561920083730276994238009979965236955448890747898523604961241784997667872961343206960858481849642148207673356599465804270189300041291544053701386430161627668545659610228713679827440626830362165156135721231507351848468878894844910130372864619012141660044597256287855191825997286887061105285993771067718308499106691127128494037946188042554808241798555984484633576541375604392685632726619813118617208776298391365550626907730010674255199066421813215474223180240588366081563993571861150129484706402650139489130034215576658748494741900170858558709023177039065117708842578001701586528312653294402435345450030428851095260196338973473694932718028062061466092761482969033208720191965461070146687817196522045148524270612809867604037884933554390069281496116671857805134368606653805380201865246777476231822974096063050993545393155071102246584219262718306779841658884802596460314284504680256375440334562407879155074905585754244555058297532012498866029314614839040156111397866474287005799019541281853210357673907670951585251225218590959829296597659209107393523453160582606403593055995941781207353540842882292365620942180132067274145391684066437465599204793368117541834022523549885870272664024971473564040355697467733234704893806063135243282226976941219705424933039520239987119045650687012473046296481996269642937774471649893523280707769983714975653504593779986347942905371977400086890155038267352558294328835548274275038048388584015181378259749624437346354501808934381319242632544672218489253976156539313730531264741162500416958140032896574425339521469947583482580204554007766095091595909313929701851104625233397405796825849635974517277758814548512073560231327927797245096294290812267693975163987780142583669883290340021418526909109932245460667803487935548421344101998336457573600811882111777740986698783786013424980161306738413036176864016607743049060490321588610111243348923160214040285518733142631388888099501978948432054157143450390501026603684005950077843180364356590201951563912991395911779269531928309218226897260315568306838014089364796448890751567181976686127989446808508698203089661379286805348236263002440515900305694150594805698210344295552836249191337546682481773607077513951448856816237821752766006335943969192576944721857189367555248770486115866647328180094299210995813080916929160964664789035405162781305643037553304214998037365341867267988815946237733952831010777653367180736555767805305164122289476785366805665224114361567318414033633749157679360978370378094320561488807145466675571285333681269742192014514520165154365228371346605025416919936852080745766214069098379549169331250607295215388976846994157386861855561523812384709631942624724382602942913261083788763075801794093031627876915139694509936278829045911801080886509533840106579462657586310052389966372582356894781606127858996242654089382621557364109791795029689796326412408911567548209641837587442184607032751058355440988676739939039658207192165936592651515594848951604992057193502832601378762904055136937404063750111787155877071262304624339345941197788841705595657310107992428793140257831695561241812033045662562847500666620042343902813880841099984705275000143069776775908677915943917624226442618413462622981658891235500099408269667962164821593445839506391909273775174356698076164837991890424564479564265714754377214724857410541514519923647158359344885716680528270739413720738526108458008158560463122335417254353541315756699022593784470465710368786988844485858618494953434761331152246035178523860337494344928856435358261932708678049292171034302680486303701997672622175193799323171250656891188247858750069369630691655646635291173983236280666978368540238335032539934992119472550668281711011349778059444404983441486749044775190072609716178908029397080091075164185645391770249343959125992437478715353105874143092989440742993299024486824981196317853416356587257603719927364697523578758385989693264122215866261002263803617681624554988836134252565687433907414630465790194254678719909220820092165629502971717977303834110999673090362007798332659541293930339802126797607648927758611622418378898148236498419462880949974195273160680813956283983364387875269420934979144016559817159096651160948525577828450202754905688755753700625104973576321466924753974187110939292749492576783284267515229007928117426318914079084078760917562423471925331083769613411260020792600717137209791886067136856429508761208642518567007525429365446931212681163790869767071189359026202080293236633077294963608128174113551440369449055944607816864684769486615594234666821263030707393681251010538066982298971064391511088239782046697061125245000315586935506060158168501751655487921967377375552492724715479895811581530956056870858736490197403058818304385924591517120815305825780028173156833451631918043642428969068056802495234863532560382527772609354484575480330250835520446296841593074406852828191907831500806952617493641612472509266505552627475768209480367235418619453877481268576592961670055933609496913816068383682184680535440305076853113415565456652462266822944884021753503415818854188711175272976679376515622572361769870407028903077306163252787973210149079083166179793597211452025241268107159893720577900480018423327148135402573177445271391657103143275721326226550212315619169231687619688246663972941095716259450130164083902397278057507957579722320501453889071697382683241742088912429025192599469319949022320406820659389055599156015110206176579040411154928985125476082237237735154407962566417754792325079106607536008247759641435078793956966220691765017673245642682407184244231312415819915197975228269218289269613571434445680753398394343665393252597900424833846189355650801094820061363449915892701654314159235495150806183081612936944182200531245952147716718848866738380701286252309385628340880785992462575532199630318040707939491626654577906344768434067179026258068270492469704722411217644451594210048961157004650499295656469532054771005444869254368611697000949763401358723811528481940135212082933886661086696786061005676020272632505348011187599540184266343545680838939412178436348064848560105592907821717427842635397494627974116894305290020958706948225486465699500669066083624080949402740168617307951635183743206817947112863227039827182411703642853432399487299685934034088653098730402740072021091990651402870037873404964588038232721560764449831657471910429719733085883288819104306964395520530107706506889809859622809129357555700869605287642265794741997240705334838554098812297807228718369879152481925130102779040106638742502344172128577261262008847333004567118539254585194040425373511562202487984978397031359614740086245275549619817119178595234794140132708464929728325810904941301007514491017725637300302630639626049611984378393856346225871905875947554840904255749840268751997981235893460004879007027204406319013984196126200590522831660371762360636869902519141850622270562339901530311866579716796847482875331725805697875172131397566981408329634651748671569384264269238611572413306455869088286729179818331776797781299852647086672971364895396496187581855017208267077470010098541600989424252254400724630990071342339024320962433718091640514375410052458024504792414852954914742276750918120358248543331198129458282551216370581298041292006076426004747260068908225722178556220607897314928656733247075292986439324962440239495709220374776526092292866683025301494689493047146476033297644161256937837544781932892917161091118058711459360492468303934852242328815824400969290394174030169797233555906459966103700902818146906601664743586763706499179602863739227711990371671682027325175083257468198654129404212830509084626596742766026265499772749027627233266605494445230296760456630888864923507471982750473190431223998456471004519761085457530826380220214215096521203255420416301703504572401788068159905700608688076388770826792069590555082773847076441215219728065830562937652565128354146268301902885728455761119523476627819791063848708964843644822271862326198505445731171067852134239230676761676701776667997374898427910339541242822286511520077643445144163883651185479396281532841048753397997691323366539559953118738716534674173648952295620846636666227285663596401078875641369460074154837384865920845168038571568553644455115707714676384480621127435387251499641999803451322782685740861298974989541351332030443858170318035738210646149983113939022346891299616744992191400304915987817024007539497625940091808027274170308204352314452049503807903821143303405522724749323006760783170245382615315443316891579599998470052747243278209678978565156411962461904538225364004917298851524452693728292740822512257277108947517602428330326362216051730036680286100938598687785768107650796223239575202271607882134764601468904065544481327715383592933123134538099082849580563598819863854808407772123509139579535386484856005493020976361018995403901911268934609358125070443351818661142082655286783144432248811103366301163129967382561743534877184236855808567062319752818851760566007021608078887191646253922272774241410044414158859818078108145964868669763448390121056378796544603399206284092526537669990880373940495368358112759575807628712188750972564427065458353045153557318325665513698620466624521351650721504448396487505842279295965064090579646953392849821038595206944024307041033597059302177366373274417843642985332027162633788384825117080321764348105605066175110731925503145809955038449387267603717838223804898850299962889018510749981009410348086821326287969175762595651514139475561065078250852928148871713396802957342870870461251803514504962903313393979260386682667355114646684226935719747321155117880656011574970795748925976999992999618432812854242248656774080351281302098617516010086995434689455745502169611614972138140211186672195327295753435938737645368436689140340099407389922641795959796728007016093654149784471432572486218184375601679986743702810690243960473661455471444270948570809348324510374283188163997450139295039402698564456016303629011344026553130246940522004589528502317981205368164470129569224737287406709702482938407858648690468844757923813297024470525810632179019447137918972605546589593345567423321100401022389076244701914239309264927770597643476841357198731132305635248970716693547535463842973239669989124987639390122078784428602986443018108362781434585109926561263197407209752682792213243744529344322701706720341361169225019812926697274624511898046822359762239567610478294239739438130528800311754622143761196385755481728088509307795981518263749718155524314697678836134323280418370645753291283809994365183243667672997359497186581591905435107094613941248943601266192836480377134186448173221413341522730117319297825377703336650362964524861941419140335061492324108759990047694700785384892435991705172610875845340437556542681425374333710458209423649997685175010063604945733159105567772427939243387128179069569006686314606984063852809253009812466126813251834418896985760648174743527370133339099364526914949035375769432848040236144893851190199197051063461184830062553077522416464548448702911548907352493252097333204830202398675182964139080125877331530475824347799588137172943449005662693723067807267405903091012466352605658646989599900934648526859079795999696006536304951087652074576332873366782002606271455903157044636245114920823548322050013169622525901255341865670082705478073516624369490670077916599367228835201119490435790134642205803204869366661507692875107877996598740830052335771815003767806945509029036120364964615400202727812384347843018761823827776744323580997269264131474036534843703948717719921353315084556062509680354284509497202862817185666234910544029306974448621647040239318553628015050188253842992078551675019014101211280945302129351606541434470823853272384133530809865688251659564908508950121474021746547975628303699517067240597427872431082788368948136114553483448144235104927836743347825176568071143056687244925281028939312615563693982614038862045727339133843188129928243662549201827026524402792239048756540101331183703707872396904344539264101689005715202344717500496429862045068037395771941876457561587501323500782809416977272062043005877451369183166183209743320420667326917796530388450008211866361500335386746071009353658743149660456568555203780683334647241845083559739160917331900851942248770820334710477573312575197210866767677925273128036150248069091006501213171575481058176866691192270907348076416012315594749589378594323212585749652411003014070178480142902947854369807087786911228423331134351896793046369703045414428496759104402505445718427016535987201081257514543626924987871593992332769545940894018916171426540344432738615374272422838316377433824763278314017555221671108114536715428401578928490439564527013021324616993500294232912635341891924347982598599528568601046834743619717588275319974982251963193804086649404947477713364599180345901365158279917779621559863718392849915383471783877287811906818918284452815959985800356640594991150018748207624883892269190794891051176371427744210346811544925704806035075958489424433124342792134527472397031605472443043337148593403920782534764040534035639656558055307999141123992085309302549358006213614945443905802831462995407435771169791868816381223022134021774109363032293607594139608292167999145391810743027561645442138723064305669980887117522390223640041822914578223986682480858993142532381169836194445990347706109134354023837961026194409123317891549497476290149561863673885687389733958961328718391513042523171876377278681593652559732978615816454933174800526995067206674671176139451456276365684221751370836438743307409030911971056705964149041925228225124261742290472345358493380937699285587976676701071336892959009201451657079816837626510513504080260478614675874659743015614216385191075836399764932736485796669397127630695877825080980002182582996801254112695945208287830195594796201158279026759352688505172879819129127101869730452314505453930609821422195560021255242503902985644170645262335046892011847613298332787002891693695740163971378453460795408609197392330802498371391250509099297616823322986701482135448484870012562867778901706755926444689637980661479057532610062520685798537602194964051186398080859090882129439407565904558498131546353564664300210443042996074904069521594732723209088043372937489071754940455231295872005560320899420339769398916951651493611691209652330539647790770233620305289390365478389590475192927306167986755379961304241024228444838937166192039913387168823535466566146926617338822036935041042213329468117041226199205945041429037984332942762259908918786888157117182047490678864520897913556235503189610937796261040050328222827326588456661503241089262716103434955285855042457305546038487675983863466799423029924240747439399164136547626889258634887610142705771833632964405337918286687976866233663451283333553421215616548762660880545377131768180505050594317742001518310810655684821450690098792512995267727647404963792417640012885592854112668897228271914808053405352224219842800989290743377740644915217226080307670944687145285329198626233134479935190832041325049704534115555547820612125479066617873508389289848771688649838913241714646663493452786227309978223389807117522633403772811488797336582093610925096003594984282566903003672927400712532305505030649622039905107060256190392166615943002545210919628118253676601250604823179414600056166843342239000629711629476280003990909027296492255734556587357597886667114219480663149129746188256054766808375243619120685832757216520575235525439186731986053279764762944917614175330942340054728530146946679301671407670930041389870614635833973578122301602121457855081683995479011595203096726649837731551940298573527195488112512507272128686708545613049901309418223914973526801103617146429830322426205073656294928555510419629305722186502953961783371585859866938786872679569395240732292157674222695547227514211049131866896620191484582194243079985607478989526943246939393854256001661374929654012659327774010272004290629263413370757271522522025561620619017286090699037667456778438903879970293235297062506677433766244524258641601247277818069120586357916065229981833011442807315445659898688523274261804845354914597242994036367314717343834896712381881410937915400197234677063214532248856149737589410865471508590795016184170453455530045030508933176601324948840631316312129189634516007240610110296082912407766404780359322180490139170843100582014060560366525002941063552860892164995205336799098724761083848909010765976996816350592170073576863179502049098198188465313572916528433617792903707085018057449586576075860274293984263633374489829127603884527574809986834188921550984646862899419233191141887713734784908132551047868431377007443333045070704906713620676598288110969308384457560209432859030967788686150639030944818067204952272150341259089995225480846124727998659464683342238329190445020451635817098373235909891035072757347082546590790569864052913760856518822929531960303183092135955939157492217074434898335977675755119924860655332952358178405081029213922227095370621452265156193566687161402660645803516027638616317917355782612876416636169324232959550495069568627024451461589423126019553385657625944139051498133002524598198028945662201605954018990099375911225952827955363681186094207269001788825829889551054662846239678804678697110225099556216072932679649485767516076899151941435924379198328390231971520682729206863446880898090774729669409543212042734493225208081504445263472657768762380157028205915818906321053741560487620500825118547156036668362069690724835544488116714460940610109468941322404498841334304578143633643156456829032411829664071267832594450376070554827233257422427465083621624808945523840527314271880829392367991616583483805166830977459155767453235652291134726694540996288165486444125488828352123962081197298378838658595702979557569962770587204865097139105746772306743741250173639397186922616294633541324985324168289330783009648229295796491449271764406631347862807603754960586944230041863008013062002286959762247803547980639631260386031070689051290860935336278138894616325834633231437741538718719735454785177879995143084779935906135154468212401627322062611841052617120931962061819450064761377600321997249802479610886971223168514211159566277127511346399808704956378570341242321976582450342855862314892109880898518363359621882990693864249387320440278630494893119413528044564098755917954650922321280753980962746001447468515374401061646368393448830106108035853449620114284005230932100201374228203001824720911265320003572746704520815892861677943973950747967212018999753599529496614320258085712639490634072310195649782848222084369598227752770857633079930817583518597570527242938319247253310056263906977006513668834924899885337639424380151075454863559329334018308003847812805388723739402352094512383757920514278906853523414563819221499607928394073618033852747800791207034621001406868848618628202805362268247712288891646103365913194250475000988610988905959814507995233927841238482287266888604629472710258932079014215365175230634617936219729583329714088717738414673103138268215897611271966712234942320999139631311996229506726181685743351654912980583491342550645636385231461285980556597147087449013103851405475371075837380898227613057582531798783584810132596383641359419356277750804658028805162785197772422946054843568035837636194337761979908167423223498444760396976919354392673054628829777910108872788178611304833362554516310988105816657912439233872140631738988731484925660292987456139875930701644838352511162940216556442734978212183446471370033981454793650802436527977756519393969484705638193891438652643819464684620816254055685090668537194760812347817633518429343293751481909978614119075579891403501866880163573772864580638710082158685867760330585150011693756359492411468555140045963068958819186878623957260956483619845823540714051198419861559141468472281245795071298414144940416963644284604887828154820760095407925867731826035081735400674355580285146068756467313940474385175991150503132352739319151464714508086584182664372020085454437145310921384429536392473067237518879632663391492096519846593084740399115007154859869177937799526711250701860232379439227097866848782583218614113543219287753466874857163706820285727763063778266084544060927754846127172603867199850062053375107714707598293543506272684501720895658771920807782786180868131754001868043357366161000386829405620138504761632316161559342199004536010889349666400115798508820279432499268534805822815178199461776174924711597185077363613441432302397478777770453631583202472212754459511224909556716618693054285472037078730697030248718474437964510535590065222547236447128940497470462046925748526279264933111067973490876510059657381837332497747872971164492125279954924111639311539697790006202056026368472621021171913088584632773716097895318263027022683542409692200857694517323595571340523201576176643637283681796625966510787066812480461072965538183774174365161410914028632727797575749971005401277932451074411664666637804033920541743676594233543206094212033244263588369703993452355599144758418622677588858810659991434724347569819679583015976300187897849111281184790298449245589272476213349952328684094224197968889390962545152972422411768307841564674058150800361995920220544238538685282558369528973512174099553344488866719459295229414094904586662641693359798163149813938076435352133434612244836831458402215388572720807101676777505329641897323600312561365897380313373669859379513494326414736976509608244715710148047618797242928176885312235518435182983250781727930185102792941408541314215729055186778098949070263946226072013259823606710068264404642153576013224927680718965437968422732263159672016047918775734635571160070897588544015804896104064128631427300712781407044108410184688557915621495638171529232900911949341176738640812025187833697772650632612293280784850384435554611755851343025013830805890792785809359826470762044166780756706336843648344416171688157523116661831223290093975253592735475453392500152280456418625822847115565195358656200646693308457025664512235506450913730678737910305923212422638257638268325229866281460867054516400304458213158200123763289121095465434586115531835659417587193492091489131134094052238474014962584393240764342754271063417892108506868276799617278570253950317326571244450643670565441192170722920592938439950032502288802865949004746236135358085541841335486542043052865952286092968542095908221279867090532376728621476061519185779362922273357643462933445634859696135848364596283888240362553634117043488647438202926614338255764312094895269611787824920202312109233487089114988229611275894001603396242875916242882501262794106283759955021249651285542683528205292162889353735743675430653818553469892079131200809177465816201974713425960413923934808190463644523896266441899176398882682000855048360778287044094329350910338590804871967492336970472201099284387984196590057224172953105950519957453855283605404777898711136591842607608722876438142195336620756673751737927737739122440208651399117723338433805607306307387405902826822817206149640873165881016553019143856809073370678996006870737101082415814956519692734566074023063185235053111501677225044214815492355519418536041040660216664836551578862073857762550101251131849059316568825912251162814010640288713594735775745004449566292724221937206198846718299620694331119816509322461648085626300024105221328946301500540468559780648883413401215680937668233905812161607682434002768003620717670575414339971193622262228720996298389028432540340600063601524102087137435409048020202242953690017647352285021054971482535330428482703101036132563791981001630732845766376038198879646193260067243516237783142651532791293804413443483502396250461716535585683222567200410828316158636099230228127487214587229226500993681311238197265750989747712658708968693301356778275147292733109709607223209909818465031551286220376568028819963408212140998269664139349431526734172362405738922592885226153561912598981608781177684205437812892279076080407176749779048724345616245911578822801290066104979215797219984698746420171823497363787919543479264726067939432019020448498867935452693330911728265432418084669346521990945286994922330825445778636458587363645582074403692443578144710200826886781001347048583870563573520168247593371197581698133401190066408697226456173473728531938345721329544210209335078060482047951041114533107473739149501205476747007907993754333834012769370863582003854982613518518498376994210602651433485463292991397266005418150552348306876647561480123454440678598861720858404161904097662354127057571891239684993519271951439984807002782223851930959487048322757610431852911995829739158630617963867145253026985627952640108151879147740207639667007895401385427816632780107383042816562567032405301044346729811496346217215364235020719868273853345389585394934298714445579477749587533859272611762637758504111285144473080048640637531874949734402406275223356704201147334946942987671855105787433168118056587161007412596236037305937828403730543767718364268334922572899573078198380822873350621774198498301511488672226881977810701931306410263532037007691770830630338301797018403032474195482319871639752011567140933182879763924999999132832472307646235906959532500592984522873920940286674343610718771419329912236739364939574446707550094861611596316406194743002476278116739762917737818973357139053253755781368667318509654976054669831157804168383625134752449350048302077785036278217722570560059823538236247287960824752546914293828581123238662891007487174281423392715459292685196035307410882001988054357648885363892339376156110084681667701085221397323939851837244934497335566018244663045293574522274786601292412553376551623790103937094817270781617000921128071628578705793277528240050546062628748210548350526952894482941135047470699608058478970142262746908074487634262768304449608225824475637763827998880727971364639631007990199593466477653475669247876972547433619419862321878388865982828595115886876694070322400587258418064018919483684221836052524259912194227733440597143920862699432311469329901024153997512615381664933701101846934456384555392246997823607764605225233888607615092793536187162972204332945820477863012007024531935422323238552962450328610941152880199611876836214124023714790066644031792895951969701054673112425153424524622968162232984368467219180915313688882867535154341109287596271023048296124423645728782889842535323131012406907326785513053777491507759289153355838906766902192896329817007329633439559376383894154604766034787704855401877442341343386613577148057677649426319519086011685608809990850976803582056238047076362642106796108568902536981839912657498239789797514213443157760798500097231051496841665259899668125322588659810275382333644575155766961926082333257504030483723598633813357345252184637851966390796943976365156437689086443164723258615210599468492473896980566348896227557386888995896404747410052857963024890693555501134043732732789410791119976817609370285292315813751019658850802296409871424830529871519201900759119585235788429625339192897597934821033669680568992387823778859847675720344222511496699916380102411449828413397738752876461189165254054252310436595463812556263538360017743439513737539048404333928693920194248713996537667532115459476323569674765426488280695236895355137587987012997864216942951707173875400172353950945424427336005520772335864818703399339827432656719501980777313306320610685374357575615300031690268097826323082543157504816340276569963093843789492727406366005574378686782210620872236873442456754510927360096770311045029005037813112187195072059372614203361373670066790025723799477586497377122181190752129107416649471722853143243501188239470034097189604334461412279677982472960694907326688689053910791504023458337715185940644764691102778888335158581314608454885620768885077572615511738616161375834577384864629343130481319939697509623695590532568781782853037105927864402050234889659027234395959482129304666011722454196235979649355928628734374302565304172648284822713356033208957333775944830586275957243823275687288734641814223149556754195205608639102633285796401210801672767132571154153495846903503473759928860384124466433585357305668623165027614232248774079404496598050934559935828514432413488904760578840439040429205599614856153514281150236301800922297651159381539167914276875506342977432462057807596141130473027429319456471326268396316376856409056291826758008199370740488464720979002149886392383307503600775897722318605901804427984122385911696970011759572035229918725053820467506508388786112349787169360136383591022208027259666601355818361552795177720253764274209862216322565994886769633722762586410330021533702701557185753289040291939193760863903693373515544412386292513441023547151179608729605456129891404829236417958930975513614988065612774617636726717257200374102099831240468033416357552344499326334620808647885756492009485867231629588302576473096392201147598528115742721367068769073296567906069338333809134731041633027280084422021553582569355823891720398985523176457212825802628231346234868726299178079232895132235795336838366851521464241606195782680674035814175088139462404500358384084799632468593562564749686946787510629914424818503978784527282783294441441907978146653939003314021577420243473800378226476324813858807881558043112847275192311721050567980686658144325869516756449614289799217408874177478474295401102254396472634612919593778124871603667771130424562103545120284027260962758543162950993154212494129529587321411361922093988832678097647713742226986527655215241059360840731073788274765630788006801524042360935255615761086998542542300362921111342224663473044383902541211752388241338690537823821863140109419026018561045695799557908837773687726294240223406643565682096477708569015780414881582448650285091370449151734357896258871994723943734633580290090620549393586690553069729717037220123577934835320323260935309808182611774766632801934256345818696654812543674908907543528245578437356631224231161724351590040437263217900584661349092670001849118209387962583308848379545160671482015272555273760634474433143739996745083115992070169544608397886643310519859343108257368633263469107526070760849928013696863101531117334042044108524726183387990884221224406087115311825067656298974139274077625172499896797826091169831593124517221102734402393972914008456609243825117783207946086049138544238574764272716160920626095055417484961380818893705491189690559830764275588640187227159403283267747425942399055053177542539036559149736204121313679833870427364172949094342351198544885688090344019213624322318742664957363255657689543058671653710350894402685534875655583365220012410769588650796469195728585423402543999283087303601177010518743542914274250068745977343770505172060551581451802836860494484903524126085003987370275635638218442033091438716217038322395979439719223512344426233298536793335018657355031774861489907374098761768335619774356500555970153900217445138495141499560695755129234278066507257759765890211599879094958837159414244169635264703515995784592411353227941302539221482331415389196177911404716930496282931377690709834279166823145130364873779568980925844466753900761419038269506342297792750723895240434974809557332529374948243201826321681696856438713091835844495604673501956264430233355961595527717364755255721733921518181022104870881978735964472974915120983378998580472814130494035792143882336908838589588172787191226665181453267991036926371552631604285885700986953566577407116394098092390297993405070362134925515456263346606895234137549059889301766367884769020472100762777194336383470325825410844145455777738244988742768380875794094375229772255906581545898797054483208891026009374525495041801392371948549741161615747754239051336441976110956482464097423877964273797123536497612834483320886435806976579521864798113858815400351299894652937882520711778133320956040256017210728741536786070848194574474472547205968476259782216344869265277640345295450621781972496742663441810395013452277472066434295642423099839216212893526259152436322342615614071024410248140774608331658647183496950573664292127683841561362645029879947818929363036079724296920600234217913485807521060204460120193091864330359074379507714265205491013585714188192828633772163317890697720205736971122081680271524589966891448796623833341193358375882144928822017935900886835999604744121011108136632885005571542707028424685965151691101322648610758792998991023183857893106150089128039422357966866687793108665874018377287317732199041299804502818779637424423569355666753568321337982003686547603940554944989785105850679015947109384807002994244997378794915832011017402625834377136107929210154379676794466730546817820099618119411502693481538940633900991062845763616191673803344676033344934892965113474144737509456508390791306696176523704179483319686210539676011886433686581338045429636026058506827051080505800125084277545675769265469241977111976063343026487409026301249500611601594062367893314969290252358598633184449575083642400564255099969457693723023476833778013054514700833624444266674793202298425397544564593863141233453176380967133674133687243093194932137122442415013448919955617466566217614961632191963380605672969627430439655128951777066116316020881756243781396174702256615765258116579489864429848389747080893316338856653707350134788485289917344903673258396339788822983101176452404698039444003308915055041739903300695966293226618861200690716110098158960709933431804134350861892356440767908426817789817075572112935852450836030632368346299597359657472707337495503633386890987710343043917098641017726559107658142636077339264069833578475647279168708945788020767127519403951557115034257232599973137166308498936991786560910369145629500377810031133077953542160112724760608955797999881617498508082704413886426178512770466353410295706824436169750236349948038440821140736813787745911760460999102322956422229172935065795338179060985451656465130279234784556370164702330593528387917126216422575202121257374951882075944066712850805448319410760270453320795908897348638584790438631872902307147992472577492822518031419802003368172279323189821694921136903676990417059220573439832293255483089108628340794764943761079629883740641031249368178899064634130627633095628648159361569373381394994151721169587544616382797073448158372664932016755056524606887616672143136639636750569008380281633905183916099192502731686264954631624540244796218320129680735313890820959500925355677468476787375313378978995178151790850495876859481369119443872601538734686386339721204118292944231407720274879162928864625268053854893238412126356447156313065441690657636536137399599981632225459251346573574297438934797829701053884050798517368607456332976235568149615826740297985265261196823771634156069778548584390956337760769818264652561683430774521698488130284285715092408118416112690550100307523028489924115426276933601776057906255507811007038579182354248661652082214730893661326823423228784315580704608721014854990882337776764852560168544244820632110125670080172778832928738165124529245567986850716970679802986174028888797543129013661804727178846176446249357193176158944136454644982934189625767204735519583942757779870048674453198825863859045411937543812756616201187429301040083454914047360382227821149027413149556900976361410418019821348243577318125078007708405116070608632280089987056194382857961575407133064294507583557306768215950345367219414638090566363865755321022209996796024137325821974591183678513768412863017422410466193928758243849387063126758451923519355508441362488957438527454584950253581733667847082627661899906223041945368892321486445834601022361554308578471816216404550174450064415879568032141349198906883252009398674095350199117827562957676665783061684649283003074480221546830490607895242891974508891387298733685680535553579904839100695979547696316930091771080934050857108290606772959054240804198496045586995326747584162940077298993113538900035301827325257923965725185208117775291580084815428608065982266969005519737652673995693927315393067106308946162339119927063131912388194683856693276190746068226037006513244204954729527587622944633957986911032084172185743309376042539153598067507881340835754242344910943828045503140605759259399617997307471978093868997522143205442369549198857955374880384488535078868000140842697186219288585295142405175656111982646133245067536630030838092454588772936569505780668895011195793034037238112905411834571126354588265059084310893355521972613830104893045290875627563032764214657361409239148839359175736717742649077084450076901144479837807772119357955790680526856036705505265367282801048638622922826875303357651962384937860013318649606643303090693741301334970094920745309821151379868926942294149477854756706593484926537855147135312702595162805371354427831393788094416078840303042573982484290556932324822281848994718912648719425648534539424673073737885357067945217606807022518327904125866624155391865358223512950220597399513846186018856064064079203969635089469094617147405524804844101051906076116967036473421511325080787686493561976917567429500672524111519863016704451747793981723117034532187545274464930082439405455714344409305954513427150055830291717345413701289326717456808142599757546581132380774447563155145610108515524690986680158177262571198672763852277208376661591088395077673130415888315988320951681648005555878001593402879156000110038644993178544463326248124332189566409622621114494401388828991628773331366888486671922838400293282144088016451091359376360685430644754842922688286275773764717647775453608390027082991055768534306360980981801989595000985430836418059441861798557716190980319706963329453055611833589098969527478141760128167673569321240392071859949315435920882768218923735722733677484058044234413382552010811595649036783731663952629534289103804475548608463482955016083035790451800952228878312891389187610615311501673187711067929400939521567883062365905502121886283256019039814461797923374553802730431984900407141396328445956594008038079750665064840396990030258844882862522964017495627955684705437030448788338718545034303549689017958227592554361839099084010715769602587023628504517326936035596112619156059462542864411712256049103646317992484624345716605788005993577631859379855572940418782667966489422090814035575970850013667318367246642651781385403247664681896239878358298679973165459113810346206992011100991133967266583817005678777905283121574725464033812555006822296253020308954511198576538401318995804532896039297052188456492734456939195322346017549788140069278057131245332371407860498690027568874691889441692755276211135844280397966335470261427435867888743480771464448165795784089604223320684907278596549866403379844454944931094691259818239999468740963101769872571475558638487761377988140642998483397962235634370890831440142484689130047766170215801159318037855178274032300307711728240083409700446896645688042144475600949898658968116301528408871681359375410124286356296853758559218819292951073114065487588727673138863594791588559390953879774068170729123910064027184116231245226231245818667459726430549880386493880462940035826136231008041308032303784884123556571829342336159078975425432236689780176425127465553179627356553980122396909752316164234142858486050868947567167999236255354260048466277735260490899262960017056916043080956540807452800195746358036434879051320308700086730310849293940400673247155978863872247958799888213794458647614749039344901431301923075302569942475775408333539322935719238679838589383614615399855694548165624911688472758745346276226925347585380332330953202389650324537554743089438535767623937161355435395186473167820109150454033833135036856193038968524867114803247560794360486679689560189915666388822987638603216465471386208447755473184338408581319396257092094177292210707696149649537924056739500543986281171421814013503664856865769414359232830143865810861307538078691231618944078196761488400455964673281701983051502232174572082442945910021024512216634769558009714115547564596878902719137589311262297881145147787398687257091476793254796010017973687312703073314764014124138455800500413062195821355742025852666924050763978641586930988139724616485460362409075307611390176915227170108884800515694076940287688052045662450848439478169292257987123713333206048689917312390524417362734771536789275930131431625716522505334737206408262920979120204720081150755170249286305648427339358104736425654838288781037706676029751123897199876758225458095189665176665709774999789019185562841581957853974754566690473497063797626052143038488657953790368843068187494126563132719015082466878518196977326860883304667004793688086394655163502138160889020107870430296707167829445522025300798389464088096010287188075623174199703024099477095218894065617310051878144261361397673247974044834140585613842082714349519593376231783817132267158880914572788352830532578882832054165531658392290944345575627480928137798097722163403991104615122958773713226470917418874573050664062433799749133170745577683309090963412638122090581386437895432731061825514436143599958142829283269054368518516460877627817240319858707091635137807414455806961277884234842311364074451759312515299582127377573526042875949877002731175845652568848814060950618049905954006129249176412811523282088363562672549570144773419772973290033308112974697133562263975164161210740627632480710460203136986608517823039351180822538634954198864150394231678403274141579119166932311301289315607478902576234084446788110159806968292125898677706860473112754922816761816787721905272173278617665618195850464295576203046787594657760947216211982972345553575967860358872658583198607396118873276646598991787757825126580705169589449157210802935515632007551588421819938103270810402278673738147211194810242651538805612026674677139549713896793095793187176237158555406428152896911595809355549328642740408741216165807794637218285117790057902865892691615717069701239498282072847306735213027728447354785664948223028458571733861990743153782180711093395617854197298919311340332591206984255765423953633141001548908342580846391155099818672806499888841814165979614383038440572714116953489981337637265486009546124908528000010290702381383852063902343101557430719526886824159268630090284402787889787801925570252369469897032806709372966875610758126356019029724338970338250102348671608537096319297291072673459438220001423905663701992661288251736746670411862477741965750315361549827182525493688080962435981736302490729807881645897545888771674436740355604495630045873646888742417839290333806360319264631073398641137899857463135427248696970170687285377368616255509266303127338664030309425743609821827646472138204945308372517457886112087749020363811513190051838170497472474728433805109925841256492317365877434737005770354919649084013728431787634329776771688377248490389208078637798562554222867707739315847115419766743596524036141078061701870942354157889779739344232289400559110891663791498368972180187601927040767264373238101819475404772944626878621316910642350390648148127944834278695076158475600241988518554875660114726161294590796699882034872932129561378646527951483561835256162681762757201598374719922267056593583553192133071803340069506651061383332080830765840476548876819947452345293016903299616181362821459272561340963303575327424259073359717640354466580969276967989893293501190460007458651326046249514595926023037382487984513625044931099838176131925677561906975496928818384852699281252927920921875178739057680192629523840985655523693609424803327076410588413979041148134714122604911514640389580891073232807330459515208989254802804015791756048531797431192733553657654841052796642507841301203703974755759772456884348386370844309281205436587293793516760381967406006754074843643245356171787061682529319914978176729007645887600196343178296625360551153399186291719933318006821109520589871295870109617468135799729984756543084921158475094832739959595122435037380740958969546276430448033580895381628948313011241825203874717956487427436715319241053254589646774294114540630115112293596488901731339024076696627035919300994840608146175410346919655670907300656942526990961090721747463074432846206146057179332195976838601002592001631759500326755776655196135210343299164341809206076166124517410795384654902812889739614108589201244912945831417796418324126775852939694640332047998548854748978484358632948739429458561774140702788644528314376875709315225036789760114764449200666948208065329605849386262461099646216605870901126470280667408719016874232435611262207112379852946438866692571684354211514975858187170571248025762953183821490603278860418158656718779848262910778488386964364429113602136581765184470196215434600320487887070559471760443944766284039658471940363301885698500069735628951740851791999918961826506716458311159896571361555664659373848521301628142089795839318772825633226263541241815770749879681647246519586170024240034645450737338624213305196432932394903103438716292868494132558624680902089892676865905343037441288584245063227529963982332401467338706026568691868027639883096451781121473348850176634469325782581714823736632518929833542124471370865637416661598360868807961288489933642214328168028356077731338918191138129036659877896400386381510966029194920296910298657805714820517432694092650515534491076399253291447052507035088942078065101889208504560403935053741957267628496687231221106470078172147909566809212843773941877681299104690405349749698940784736732134881622299538440359834819790822951756581293432278208933109196120162945339742141110586439653764031152993807020655582035947779001015451616999487014356771669423031885870620665409814777713798902107208144433152738436593965283494997346471826381247539054116065279013050079178865133165382053974538996469519915304094847456600873903807666493363015225150794090641902976556662276335177775180708480708738375064682384682402683857894087494555123052354468073595980122729617976580320335926062407726141647957386055272659360347275493352203744339993787764850380636751522077974455018414724592148943457326368979733617464166684318529850811853796607576674221776618919990672498658946491664691287480719896567951225529109552881495732879239683260245758426702387799495104406592566005712840457811572287490152652555249782647832781927521069723991351097091870941348413837780734051123458657053051558979447487243144268799927228562582891593611528571671987673646343844212080170480964770379310960153491348728853990148874303179057287688133387614032339927209999986393686840417662022160278435907862671517868285931400478460682973670421675772936821302417685884003878820560273388838826476658115111335659063796546302693249267712335814284823996462240058606584191472009536565878632486755592641330190231827444407379542466976026113624124941480823211078226866777096555092609902329645331329313087406114109219914378680281212788193498067175417031933839427149498687902979943197978046741748718767012092052327287795390000751042194510216781481056923530809592377857166906853730832161857732090981571730713602725519250199022320643008668751572804180723198068913542983373867510503438436492128960117013253736123579644080837264336312026213289049349206953869032154860240385046354000172905367147340265167003328063007077431019899106260118200503791988474457763189300520330854752202564041540381525237031146352611548910072136828883072574352125673340163902983979311707654347670028999153211988973278358344950374726343989494109934757551778867683455268917756002218148501640769775605336500324906333362697227424540077649171734055538475013587161565424368506812654370544207667760759137056204948741973946804400280308122795035061243034978962938053183447894804057166607837129350522570259143193623427098820107844407397635455821363735028547482543518980307245047763826201010697493603811591958469971462607868082903388848696684261331902359381928830323232497369303554297660225679050897640818048745281249447482443367336592329573109534902515112834213845854928618112231859399669138599215743919498916147853454139871940060740256447030887172684471454172828245708559949058312618387811144639421232533851374175974959361196010161132853211550420025074633132434131758061003370464631078073016619940011521574831894957679815223002744357489319312089812434470521592634862117661390932780846472641927792093315466398019688282329741449364692211646553893511685100079069782310615589766857649873585295742098121221264870753014754051193751431474734597962139301425453512655782978973904331720720162497182002768132323912984222416325722604255235545475241753741512501728480233520909239019225649273820239901567254943114997537362897562508008595712450528391334501275843167935936276913405734863941600218985015428375393494660798743151442705690732755155824407712874853179969237461859166007865972436554267060939500469809786355472164299019587273124546441580125617106242919414711701153845156288498431882205916781701882046545299289049335960417299307949678856555331078281822576292850484527538458018426112282129679664484491085776178190508252104769010906030908308039872076771996494382180432473476526674884792613554214796735164868026806930591625606243459638072891002004167195708034721021606238291623257961404855012720812721110283051257526700287223282776608789983140709271485736785170642680957618767552344495591856043470783637237833449779430903667151377450904018209509839475728879574636544645937996841791401884712797534447271000166590536667455283368927940828728126026888041400032885818429498216923753188137322140791648262688511979468321202907759290222500017272191268890224194968342961592608270770401699937208919089651329637648043387472567469896398240743350181825745036389195441928700043801856255162972264692087850119115496032092809343644209954672799234214260398608402678461277479688651759806488052978367697769406010411516350858906005102094524434058823173307188844038541940983641130468681755221823556353859147301729717931659271237045997906706200907365188426426762436095277914263745911328703534474416820653572151315122158087835403541555047498278716189221277709187531792511074172334762928982315052841574944483911982004711661038149864910952573072502873647720016956240531595148012142041998560001325407816861469365024146517781221774587299334069329446520497174174549126357953850152848810183328690562195550961188037316200722118205634398066928550444614025875469195591540769987720449161064585012228590042785582163877233248389294651019889694491478067181479728858877369342816842812896019504333076006656141861122773386043423625083638394396350990351022280186198085455115755884166072438291235251561298642953885618174377439423637664143559876118313765119000241115353230880384644133081640485692078617619392025976063694954510854603444147096661420258031998993823514145729238058144536386363218459505856832102498701314545953621807050371468003877281150894129774943994096709933565181840738708679094649980153580876628236644047789326625675280942878334009161986324246665413893199979382492497007391334291826877607699667088012602773634455047351508835528543720373171092439792272352979922291465479245302200605854600818051156549248672972891026022669145689553845724379461115819734512167928500018806625629093977941666742822408089906573155562629895099727038607813239625656075597687951835072301457940505306320586412395560380901399783074915160890439553491589173564675962288845057782859542102028476106245317277253150531216873392328450099989519001882557578204702767184588612127934138108406103350395176717957231261191025713799902754545823469559796220623262763304980539333127610449935937584988818199116680749726945629705151347686336000555917941462310678253247474537398776872475779485145532768905934481735672268496145557517328369555113322910330099026261436278636551500489262703072418641670213139961771854934279420937418951649629289003852513803421065998941870239311708384158128922368301887894810587690922640356741656736284317284599038930368546846191455720449825538809032656666117129056348874874921655433111135047881181918714362433271750673656085772501806567580558789223408401172763336931459888051555465368717188408582501880676850487065465893994760762454075087190752660559911785244540879059325408133899236085110837196824903929359233624842519094429805236991736475153977324895241808589682511571298839812113160394100394156796064878418705383838973182116780744473367460595925945343877441292053101837974764575135574608451759273455946893423288572938152570347970704690425103385373013639379532678142532560089495123243729096681776137235748028657490068385067002485711626567388952643348832292737693954080828405979198625761076210629268603863764986601088600224479207410820260592062701508139943301986106476958150152773087857521526048039361604060252076085561930312915505820406215389992607220284394845985049285455614447944870534590791241880000462391832223455428961715935120270480870986608483621405202295323340089646177312265182533887633250422345668667352712266872845824563202068791975145793678025657527908860880357344969967372697510164251462305061636274866694229441588344452216019607656581106349168436922179862238970718476006525909222538564804852419485411627608815082311240355656443957549073497785443995802305488746066484017096742759084794304171394968437771410114371656590444476807330939807985222411669194972720027087223305706958622749909665963036211073726656481210429762899467176304773207713946796725267142759207355783872699501968561336084478408804153233660537496690948691718774316066110141962945154813153032587313083949726660234911214994787802858137048887255420986989733325155648810308118765796296373964341839360000501742721267494370990859586061424429712411640807021024335683115751313727182542092901529855249204819522520860517068902158483119602182048275211019214501475330566943716587264094370329991636319411314627757861080418827154557663561506653517058489771276857782041442128257386804217592716856016244083547128075346095861791931816879643530097187884306514551338460460452892977319015928430569763861180064082057854406409163030524109192924240620548767794396263339554665710439656704571287348000262719971824943707594073572720118479000100753973257320324403960762528178618698627936684231585658634210585279448510520871641246782035749013967599105918116369990602088393824707202641972024728498212248014366112088469160685343979519964780054978358203304919020371834253706971954399540394773826367973103012240368529623145545219553812526439512418512766525065679299515152819981902689504539243665319701945310019425030027944053194608500723957115386097843708682010048882346860346972195392437266212196782404405681507818766754033126279697367407248854393829045016399166666615323171265712378686185600326137475528023640772728732244813350056619357523139464193558133969922548128170237712865201620229484660521781765608501624853693261665684582286434589778756431052190276916855935296742705519407976770655536744320508791637675060919496179222782135496145248117117356078214998573508389594625661132230252263669928940893508171959910671363734716345923807953552110552992309294063017013062125781111840780129963016980753183570793448425906456059146230070811788701045084979491990033516885458513537357012787306621653963110877877187666690718316348598325119061948204974200988916716671060846422560919278331135218660906611915208592681258575773957212864118553853554989990931562591692975981214263928414563449432383083525454666431035732099654212765076533228691700495105561436982322223760264602983854258608316859386669367919814363638728021046260961016845707891227744541155116903849733251119447101088534233410776317364855590633696595420670212370087522855467669103532747695754208038161330310545974633353738857286720983749168930832298034654032119838028322062960242337372638131273579812926885780571639527196062409209925791743677435471798574603922013016899805617895971869059367303637873362688382129721183905472398554104404652986542889121972033635972385463228980980662239901387758568292545839424452252622714699880309534266165269531754175577062085847278470877937533408438424023176402761557126560244653910271275009928694359117770918030853500170725091999417113161583157375468976886844879991595046629665613101296195924415817575917645811326143187362484696730971601662877296756002487950423294786727331669831317920665643359938498239804797501499685639958314261608691241219253896828148011777002739161867766732228982534872500441177249505411300760219421052826031154571277860147455918719992750456293281935011459784779133394290492433296090008509364317968546716866964757705021079419850358286641248651870737338630489576082745066266002263007386814561713056042901099764733670893693458119868854834108349111605232684026200530197585830903264024650827503494025275702128613095277049290516568657043249407333632831306210833333896397695581426459857184563477503423117942904506050766628591087092426375563066869241958217580298215601222969871809675108422594927812899340004743612304534719331546356138639193257681144561305506022855882454000943701515181519452636189033278910277200825271143366867790924822850523905604596800611959320622248292635848517203636182859780562779455028630016726845253002137629245338969614744962491873746911364301064964836384682702029385146770306643267819408272233900399355648835496226163691668200693339539247634634940530628281413724915293599190224065691070145855060234151338503721203076490738262786508038477701417441106910583565325655828755404521926901124363738333112593908822766237256300794222393572713337398520978925026103966020837492824277317507859188195880972330876414654295927023314205875218301520588728945183957761287077195123501449257336165020791214171072615908714162913523424588882003036395912757448321498997866881765243255780631598332309556964283729064389685265762753525774883731531528404190489301388031041471544530933513208435561507618727478919229128890820745832950752034444748144819028538193310510646683932777933574880415361879472315203081017292043320830198538022367385578575563722428696849688845890485461589563209830099734830979526068361886286205993188794403685924322464165805475519091332142904938446858376358039304584303780906189393103929289979703535838459158100848948033571081185482197062641588632217086173661818146329562424471827673538342259397645917693635241356526820915743494068396300264477971687016179973519204539595389912551563417047833758985535209396167882342323153157750010463373955137119100076373658289109632454970020323214365566476861381080971835016061797306338764762639325695423970722362844049617792771741346672864750178419660279897324790974393693594178508972778683257496274871639719552543705372234389054007248343310244079084564850614476984365674022382385338535947574007750383243315198134179850906743811053723856210230068956830384945852123759839319252625230167668308702051532913237513801625438470669142054187993486732651214754499469149647567958058836659586618473398999056993918079198756635693056834297905872889781286506270711260998188578465372817215132253087299731285277643200862404567890099625170614503090375714675243345771805229349641684878156492574938248734136470227818527031103390947576191900474230374588444288687995336233236666025613654562119810676357831200163592362440492365882710405052192096198159743422321918535818688569344583574909353252838089448683359358061157040267523203586146309400849238662665041464987084133217456500396237450945984168298478749355898137394508432764797135228894924088751032293560652200463415454062550671155366180378589535030303905634797831345579833858597248519612583207419246422148155476424996841922108544266496215078641749811783715025734001039654361218886040654079259857312768156707395321489763481979220937134730084133698386703025195624072985624709079617957999880167271938024726723364732355479342656021447150704762485709345414205589359321512253844184274533713999649073253657522565596099261846116750758057067718860238679891422369425155970141827482418129889846551874742457563649687182668557430058414218109869655536475699619452363704137854646618690352139100097505813995586092729353996842239264857264110226982749285913853384334006678996234895332161056979370190350759924987836795843092333620236059492990179969760284698538000248669493516341827764342889205465234801603974641839737012212233629656093955569918002640638326682023939744990517043727220988041118259773536149977555958889064469610021014220013222410449368130135434485101892055230915086375133545545565424041757869846032913415261370727407684754918794481791327163592796265164347562096431283507426496166718748669225466992805971904507264977178605863418251265937173382068090475042873710283728534134955477659730926935035048046833282444456870307484348782075876208728796621885433497226528136870779476016094290034245316014306412008035947416631525550977795125672654857576010644093322885050412574380571925807830270912794138849340194297067064799404342577557071866829893935957060560957973741057383825259800649845421091893578522598171896284128402857440592500125501332828314496983450167233831253209059741927922346159840574570830003696593292140008360495463001021302758761147723957740730201174512840000590278358753220581879843201598198323474524532864279284080767467155632719107348560067704109162140959172907341525213656455510399947938001772526847784932322417816895039354676300388656955426805906717075011918200281351727311815243139728301300325653828261580554950219694327191140214287354060551272258754014653859321215693922002928949527826120469300814378881013157932851913138786611197748105630100573172547624257252348680810927284289659722569386385783525449991599919672811321282806419567573680376772399340117153632358623350417585320434711257186675906930891148650681327426375376056939523890857570518485256025101738948853787932506166232499108099380499804505544893315515996120657915096977146467500089426206932347431362991452383551113354931933341545495343807590661138660725784637796388636593939580905356523413800515544373200968694673690950124772819778669771537923445024170654104181377076163159009695158199826398761085865377113334845007379282428790567630190858459078084054983290282345402792119475822427925925740935151663317672283987639510090141542661147244399214652679684162528529292455923792134157862169844167661369648366112139598116381647014954817098457613148706113666052300209180631962291447213940603283380115661289111260839122951847938627168277336067906776126299769614076831087549715077254444279279986918513400848249528421916887649545940261395042951558645067099224707067634401064869714067589272267647511516380966657682685272981042540777846405048148007342008335503901135757598355602454857268381115150489588577485433066134854807443358135832871541884057008468890364154327549057079584020329359512653322577912548106417594285633211936919207848121664520523394831907875549844489596541080166070507344649552116379713687905922096995158792474764961769679761527820675007746073389608368265834988745194076633543192369099441197212609655275073330166124457510384007669036762910242703336758620484156913186504305463943808715748160884530449116980333103490684870905898580894248769908674428951199017245207510908056074541483273587779612856848937307777814933856042800432422224364398918398112832238581071972717884031008790425363035745423704434339755871571186963225492922750963060549946346940618722509612620056658780782921937688336490446097960923596022840827699313520506756268123228601572339298751081480426710597318189144275106010295857289460794004180209284916520836711128953405650307233731996715573963860386284616447155452954777281409654937308574823192090877536139106906332276316594786288889785343685344503210089073879679209687572589569431103814250557942905840906456434280387749075494718977540402946925724431523684141359216368693679504991104066164367886100351689824230405763301984976644423783016908084561116446933006440637510312741161244813986676037756413303448736209285960998354473058734586354449221852976067238989118124499910165038173944923764025265903291035076677806370974986994703491633544664942053227247643659286762911008406479033617657898548545178869635479405110744038845961829757142878784250796584336895687164539256218826672487743537981482179688890529084431709867073536961457363127229116078266536759352121631863213244483270530863862109163182629673780439844516018948008104901476962036740388226485054068851895476225709507493509695390994294082480203965859986212123146096541978728226719441246263731216342612540601084040011363310063245875559657445212876300984321691223808686232160556442099146066733549696012826574147919687498910369299685263797310431480751518241229016607575322583155747824689224489160255734283710991622103087553250877568501317204536919991238273370667907823220309606208089190251520693451803551535531710454915187553086129268613701379288499674647622891674007067212487230651908445231053375111742144206537828219401244307032792702950275966321266175605786596204539375874019936262627659658229192430504255684399438500160327990741068784764385466895755698984479628516981670383161476217782400095520293147478022180578688984756854409255375849365839974570638186725032045610501722744514696829370619055368674386985469135507226636919619156658485041126979128315426627293921289008587338616379232432040579249377712465255272923486682418471114390997227878358852322860568471727659066601309003772325592197812032552749692866233929785545501141427376984230472297819928179460418301932967776082768263371258958110953652089578595588041844915633963725701654496931164254869934236985044769882218759097640484050280260324846815543586113941509771340763414524761649678907360937679330947535810085174955058819966932303642130404031059770045390101121787304155993854720078984257742607860860550580685020028895739590035718093079836510481034862342500813168963974795067882688993162580261168690298143903745641424634266576503985080213535148669002861216846058749296709522377554373594321423433860752727470847900815864465323247139895413208101452367807830352922304802461126873968140514236940646384996104905409743204232565644784847078788729739474616813823599349687865333080885832001676617092153095945236845898457466295514792235632916453385808975421740736696166531686233108302567952331265317474142246308749845919135147858167863321145006862097457295285486279706240397173910963489494980954177022434458528590222483001262910484574738987730189209250879776111253926559861406190215701575220029947012867437776807049159359728346894511195690496617300870436346225199753976373019808399703945403628593133447754267300000256850401270580933750917028446414019269121774113885387716909655485181955809510681220166105606153035042706347490251237659415325750048633566499532646815572552323202106459915316248579857089756844767168316403464852539588908879200114890218984817011879642363553866114889911239701235933190406284548258585354972708532962552431879960325534954210362116306056873839558341934680387849554180843834283803123248399992166023022346429048687021141682934689894129759843276322589937413081549772494947204406013835335223014461138397906574745341120930842984505987767061964967755394917827175577449799870344412741481004001675540855371400296716471815034773756583621006400125245515425547399116545866971896544035250988611726575031793314872617844040544331433070916764082634801979706949176665603420182484327734000910620886686000106454549594436254948267717153450218288235291948231768838411513637810575921531979238097775850559898848001667405822055595040731021309443610932126997314404792127489544889287752115665472999276595969381833304314273219539601223960378876192857245505621877804712666298576124936612429288839483059320436591835335663092951710654663534056011609144641728469697704206440460323816645221319687639183638421851195486321270362083050861975305823530939510084275179911224216233224637067320263759734560494593478983750153780189460900542360325549634076869686754766687077740011119498463692288364783274848641291832263899265339012918541022638290598878879380675111060009019659314194841531750511973778800708258273141725535313076850713500821995273607710811796563611542492220055751061683120058232547486696450572704191040197018884027888737469845234882257342430643877280473264022084216076117604073934887547946187516977542840928628971255444292320841010700633962379614531083971213621867048511843794965183254719392459660149271415606585305975693849085497547061141580278442555931571698195435142908578777457274857804214956113748690654328002394764703288998506104894258598172173306675379023003964837519440871021345804463983578615633609442394656593688136942818134520624080732872726222355357626922423484769585581140938399309198999072331014729484238395803551440465333757477071189161672540123116536785293777469962578275996789786906960861788704150313842087690490939732449162290689467982408917817847866191692371479812346610240122535119220668858689210707851938829274384790010629744381801238113611479628900044613766516929318222854658577475978299419347991913305627540407604189637920656638691841798501989129354665208817540432260191774089491461698897762041261007066269420213459432581155088282530419019658580528610513230955522769348960172783846279212121010566589354825643257191675415630147940425557862349944566817346892346588562597011460533305942041527853669840638330451939098936482378640667859238396908906557928288677291489719492484959061130363294403478975739578809511448982206265057399401130303427882000785312821315639683144652424127564204995261540478899962512568751659527576710488912890313722542552820444176130712241390854888598155257944454113205171724832263723419137877000210266279619524542035272944700342589581043836115420723568747103758007880987462052140190198803164286078161802301229790979835863208395861552551905331491640414784532554697003713224188100828397822319788965175142379842111824599728592375775529374287011393525761044252575070486735676508885803202485945365076741432896908005663861335035025960701601320359159405025839611839270955029949587228238929712622486857582888191903635381115769417317943423132334932749460049098929728366903431835706412064467582999689173705335401477564624577865073545399575489269546252237541752686594629422586457211074592743451725631477106722421423782877806809313579405406560978728499065316799381142974802027076747718140432867491739184464916296847492182411839874030704544324287822953403986956949231535023824916905790477757725365205189885976371533339427631066616692788986965980814894867808394682030697192493352469900372999101003211713489780603968918425260532839266896331614691974753894874511612871848650928441170702375956406303140035869573180194195794064419550795683879285432815786382425273763018803111505104340030807205032881900052791873242177422909667829611236085331606637075611600931551191182413065034255289060390224953654914127013005338915169344285599914623115996369726044773322814446730376693528241741009810237063150419567714100148736680055617961679628764624773044382241471417444952083830050074378941867088976027703110933111861419277865182228518559370203229299505425928367152790242760116661681533890379488451842280611796288497627124343516241631732811562174469125112993370196044000767891914817650670573122328773936494261657742004249676663303054101167310162409208422516409023333106013180616602001506728645060282412344110007501687006223297021276491430893001938721402529716588136020997744859129936991713811558255098973115222052028832321703715516687527581988357550177293873707165017259024795438348691448534484251279510771049233530869768947469398915006365131552484263089594479283934646631642982378494826920375732450836517596586885524382065117727332475026782669872210926005510937620513474325892771200072421894132915674830209706118213122348064615613118381888417738608909416894817923608958239393253091304999892358889345912516199366547398718715806043495402318568113295094704405515757674370664273724468256309717124536354177166556296098705209573809734507022688212789119589279926497823020899895535311294216732420264984168326445620419095005060748111475761417420076683274825255405819889368737161248475534548835262617027334741834428828016949279860669015579899474506764114030578823322098966750208192119564464040827803743926948238078119226859329206966441620044247634981969281941504610808495627016341998122141999658775191524919652847156403794186230926780937743810543036751591996413751991061429676398887019063271537914202782456435767212564253876435326876804733556280795338190786909269042619210580339134845664052138372423820944424260067108819531668216654211752500022928217015986390548314694190738487213457389335114785756000819165271707299074011448678823111451430768701564792773013169891287006495055772730867750610026551832142156968190438535437215670758801705361779547109504353511376966137512738856083078263149461207616024421248351699212290659051127916487617938282084957247647476695660224847711249066791914756411879067406310496227682342567537243331164309806625084473438536372900560674924624535484388142984543851935655296641577058839875504679753485821776882207181783080302812488021009357620186324462578507985423826016988139297235983131662856473725027401587765661554007673623703156994943746936269404249441568087856338682540420430607047774746445060328918801862137686372958916612261607108006898003306714117767110717500148459281898387923888853841449200934136797471435237016250405933245766966713010035251477627744643775084073132457432582158097007280936515980967363395323782118453150703793487476708650822525759419511864251809529113848986780039387165856506604454134598990014768984113471020154255353250811626515979404819551620076289812937537181355240555056612388230162422923530048941179316248817033756093867659706427190201022930954694035411709573367772031957366492665213275943569104117881669206756902890792136678087546233114607196259770107291249966672388227111420081250469852808455076184857042151571337158390634825594790810196447638604123147944754407919983695360011656341414816573609616045742559668428161870869751153151709906736230182227644114928400594168958251422241407483986637994050892355775661036099840338590083528241530338091780776154845893094630534614176211201827514715605797143291013458673148950791635318889809125723523798834235750334216358390368755922806226218756125496511453401187343316569038001637645869630878226865903621482747704303041192787755768769380839473189561540633277352552550963378455827058077516119773973614031340916980868100980172384669052384588928025381514843780407865316805139055584743854279091901153023214992925491330831731357758039262338983818397026601354438293587383821577831330747084615230747064150892338912189312391861984783257959057084512152572943596535270646039738259048769839368175633469426686901562612167534580769929786870133729980691566862131300383090753232930939591204735174709979775821141343132316955015327478427769706189589679334841299472186956269777055913382917214229387084260979821142036494246766852013115905880100916733885891740252148381529183813556604216863039743811342461439503564515079809044744279598672193538171372426372350139750110251734302808714793327093713413575431532379477181534574188859254053709909070339544504211660893748157960932180212240807307955618636807869861660775996337652425063565516655878648011630171685451623264659216857337744285293045305628314775018804577734283945926127718392818060993545015114459376400593851378067344206339474822959054283106423283855435817871474160988422473907465404759206808910474628275485885307506219118541615824894643405902887405214757669130856840151803103777203559720201076170693927033765291931245075486060570750367328654945318142168983990199789495042330447447232059197467630308387152938644153176463846273333874340116374798462104482992705463980355144043826921591629930946177211512995757436353018117261900722000830110765157568882669447895097213909280567320351192846567945636861292409814042212843132638770542699513576803267953228744523180873791430059173926605644713489930471554630003610807597109507200242598176577833256032792098393695492831254878472577018518231024718475058243268423573212635567535859504524404170386193261112289418372530338752846236039980058719788987771476391963519268384412942184937756115866033647112287354553398099790841961341281774023293163889794675848205214582679062717085959108151382312983792917600345382327900284451778111266227713824397296514399333654705923693117322553449536134024226384592174939086108048289338116684186859689733959736288979433986337691976610231010342954752245974587488413996938317992038080371637444784465466626276760916339492432369584151409874477434170808617857170221865725970135455122319125837208822766961683888497506041665564753821941742160601984068435806998383274851872471901445900881412218598366426542807815201713294550346595199138881603143158705407075228436051786292399930487156850590691218542461532177985315736009714696915695981890043959989919940958523580624892761364732604164584799640173525361284624494493774379271531577239197946873054270928949688184831813073110340827159948864338660200871202286379642628380778823306776670812089968045651885308565715948585763571874217680423338525671022310631846126694568878853978069330170620207118177268904004208274104946162538363023586178968497204154313894083721968937703218782087353686070993909682647862995912179373469688684292815515476045758825816321565519293521384675852420591926724207352420014138134508392281813872274832717305606359866141928080647036647108934814417701541688895951258432108033809368736933934552265172149586884630178585829003297068819913988178951038132201966277147768814732228836748873996835577040757918321589517733109661513939501080252815522920881505295067853465810655723056333863069050930403793387500223390311658237384674813134271071259442710412434908929516484734084913485267354627020528504064723185218136729896985091477231773169433908149510330724755649829367806600067366618955796932410517347449449097938952538493440764269091965299390795513133421541753388365421198571839998501094628836697863288349315448333415329752708454848194675806788412153642554499411536388561138115881698642425274711834005169675709526112486444212076650838367564485251441310150073459224154126742119288188769847570310119558093469491850093961404472844416912731383898655280870676681818645162584297815802850768263706718532624619456749527507810844007313344341760187612750926479062072242788211078828193432256813832718791320117308822614335199631277342706923201966424337266837431048281602550116741402767086128404993702327702213181310612038442624920866282551799292934007390635090084397462391058861901406554455750701569042411446367714459466183237164593605792225685608185739832214705132370249971484666165799001658512206115254475214440758493941532181286859065043883545533238690399835593834753349073506806402717596191627359282603470744279339325117333917431209819302809831202740925372694358763707680488819406445032741842912611630230643268649712724255792327638928265304548660306920731732379874471003263819369475153495545148606199310081666889416641978981704769888789948111374352625908591696536865767335761844055299015381709611481541692421386420357683500819811857055916209784864975727050576859041634406001646394121829667811810367217978566018435584222000981054602830099374691254917051577934244279685649018779253606737225225232489489992677681281696151667447691554595178810781850294132331806885636191472626150582957190663374670481706287830252323811995907125045358655359811956054404724339480364962301768029096870833392642352210314527617099117898012188549065784206188658822518800521327262192699130285415866314407532185796008926629514791922073521173354419496275564944574154748069692432254236337202710829038361171253328105842735451598151796530563157814528727596576410088827701263366229549823874423953324931591944646638694201067141631204457149623974272043054826992314021107014580772074751903223931742999708703328161212892303229637569463524099457630112081957207538219384039899513924724652742528297018010973091392299958221381100879745333595550594327928794057123177158475708248165977557500959454612121695469968534629008322874387388064332338519556710261527640111638066726525253990753192069140498830999284323443460396778340472472045625000237028484248364977809240044216252207834179818203887890711158953532857762202608636129384722030518825216544578845009533993919492042215703478952209585730105486111110787601475295734526807898560797468884534484478702610275316604089721715238900607620663580717326470804103350814120959032025563115660386088288142541383538089813257299015715356585160206776537899486839091347312776782610547657345795421893353857388190790410182948188049850438113485186788058401208679932009716920731263324427168414200421519244857829142115296702724012171426533585849022760328452266265119038917832940432898115517807559144099696734308962786320533226682813309425149511601141200632637359211766080199558829824795034636630301114818419720265131657821569200029900870863229153555164012147935129608525133945033231282022252317015538832349727746957707029223132868277115623739854322435080402690409115334387760005109997318164590019911909158877760146903513098743436087793699129269469758714643790428625372111806236177694631792750613304277052607137463247236389210355636536857337231405049018148912740638356713675426415094231666769960115176595923701883889444898393723581250934107948011754019995353716989977611488094353273547765687035626926773519701111691966052188399547568196736234412574929360981439419639255315231084044033114692369455802186934230656480086350872970054385384172801155009328124407532618882156314397243419792039734826713561612861617640965076962349035266281564084161114736709148316999615402346324411825641341473460653302669288140031151030822424369470339347889395702811890349239926165571723615462165343497692700906995458027859904019121689926443965022074774375882886663819828910847882677727044483387074748468952559476579302142885259841075680213087849304403181049344309204754968543438245200197373359811014809260719954254995638636448795211839263155256303603127000033489847362064051628579331367771560806689971621958406090278800720577815474157890283923594343012627360660180670326081143793524608916136386121032472549789500824191653176258207289027702858246178105832397409531542787338025392907420963844744006815162947691621470460995040998620694122906838284859490487636653285219622023193602853497666287407998761618036430565095734385058254895233793981897396950832512570162984277126214773698937585423926654095668492220990056370229667740886262806539330153865189126910071262864845240934704032232065181265649618249279636143064269813288523692383389318316313092868290406121953665131603229678991890776476802402074104729078468641101362256087972758679650939236697530440052669930752740032254494480838081903968890670450055576260950623809685738123034559291372472081654903253686678985095857444242916459472465413995794672418878903611945704481074329875568474417881841542751915945321430581616262917241651711967313443811169716702147454187615281890547421356536925452332746335420431749064612692595219055626402290305854279607784571201218575581755040824686377492789481832936570659617582670402160263683219641800063684362290522154773334835624858477154893696451815930986470106926498798417016503870913685084755678667743361649677996383593861226435452884216900976369247664195037774136994630628545761347127749654718551420064879711502202463915447187917201542430871224441851652562252447983262155991389348169136952642149654482534887542310740455096172404622975591031382656596312482972275455765835678233888649111181528907438803081240507383388306069329074660896009365875345436210875586734891068878463037555403438463876728833349109264738269065285239180837498657873607848520335273504602945770150323200382628792081277629428856301758895533797758513741413457318707031757343334253005830078146226779149544909194130458094101988594640528431961279814734213559392919252306800163939226160436846988544078222462366630325293933413630767122114639966710171068065947883184115287357135558200111926230272542344446058359868327163887907090173650565280607492976126851216098337522965501058197324718971722550322617903672300267473492002634852997682898139787715196363806282140054197789304994537643638419322751592037900943841960554066211400142106612191281425588287963445371016607513824059976201647388672839180266405288752690952705153914876890258724033666495498395246371234498966663956906699230316754576888241039218214867481273360861715474061733469184504532971358333312792166890989319887986703549539811322277432936165973539420743781360899691673257330022410842851274487789647239193428975125750792107614267190810503410224490619265250649007359301361229090287438876873847420900493605403330162644113675872840381828649094695652301541720495988975606014913060802711242106198601095329528829576622082488565588629568497589610018734933905719065239089163793210522823491458781401572489169906049174628958277919269022773017102522014004002572755476888069131613258507596937942923107063566981530259277451490175656648039093528839674691506755111578215428573211739494778566253098157591270140302563464823433918838313959366149170716991184436799991088808338987890641626132706308067384122212633383468020085505933887470232825506709147004453192711725258776223966547514688978145478252758962514675513514841673091154038176298492329322033519666632848254598000417101479230866512123054513356213571526762342513836913353016301424731123106697560752893112995434153342625711515336603222065310702291807928253717943501906423609274615034783902674646929356675087341832864200316979263482157944227644116716892982479479078361323261321801905766531957410926272239124907766020403410825377036805386810890287329168814670616929368962462221511931764753418331108828682677876491933257470022112040891151259179108756654172623222968455244240401363695097635547726111988687904166146832074260528743906794449105929179233065087576819670389141501656200907216424603894924936357451789044035528866242721476668225559419600201856328358745470048065790175558383881369166512553462148124099820104109941306844222416728823883134904224892826370115806603704939757776647377708212497256961671094545474665216109406730651736538679404437983623760395744613002512793777765545229414148659647733958722524543605228841729059825747646491444712756455316496772081067742898535639894067000840063278724080060128105432103362872056829431853155478635889584221109324594918630965577768903912297846765260571389882510679351113332640910079517262890117268766194354977932130440511066975318222014212347542518305912270179088955435283436546260882233586215490448013600267441842388680898927339135389195979912952705055890258896714243502516085543374712128478079463660209050991722418596662142512618980767271564068776155084336322793317410027869206720365746503700027599669765130969997086503717638294065457292753001968318248711535140585386841898044424063477743248908452655241448411502282153312720248621342532641238593340413116959406124330297233028979413257389568555824700380163718854274577677644287491848775230798173236669605752802182193698357418282582152281884271436277421786222744756722796698520590051675428088344010471796113726593622714589836335630645802873494721507787689181302481790617421856974188419998382284998956633668389805688642370492635168279127941764920300237456311941500582259402135954247405750007694077147729453433609275805169658195327209006163801792183368096604904103295186559055166040288966982158406663090091199564138125026908616116419720193252067079936595088654944983153448597572492608736945943204213615587529708947223456165580387321249578570581020425130347883439576577286855538322434924888808223584108686917332751207127327203614321012176318599594097232202983037244138544854100452842627572535097090101934586924198072037767400049904769648464072037605416940844022682212032353954771158064036587664949999825631467891260795464544798967966999261653949319020297901101268461980501777701625096560084321258937804985068698424008087841374724002674182816809948906218243145261021609814999159296173568826215918569883370481898454540066097482778772423351698775419041942197511965108004101081501407618148166092160782748738770179087727055905509604717303853607640197777195923446924246425695159938330322331810630988541222338908804132079870250865299458522835683711308276399458805418203209509079603976332030482361303599136402848068446583269106888341015810657635472197722103492992035536253148419459455932424859235395538687489955561001150195153059179378012365967271267651166787069504154584181712210217548017654510148713262765913741369557328851655157801588352657830227453200294444678325065014068536119245118741418346267597136389890874502118535769362441461057596241303220558915029877966120898330487428145503419064927962408784981827215078418003408360824427416769719011432317808792394529539894371823543223876703902123393592165365361740347697080856984058098545647145234915878455748108229840562522822414887881976128536480968579891810907678732132870068972714922300990212248574425958659278936872681148196434822307644106363596613372358580700497830747494549818010808171761741124254147648792271864032386605721318834533493055339497792242211967523444015712672502371678358443937219955586090912258512036545879489984574447637524039309265376058585385516649766805311818327888691555287840534699155766781398493020180422777304332665630008239201985998217036024833954906991482935448812277508264678394452169529469484136813199560505896734248667006938837375575744223479952787823516024525281673916093306606093047179756412469090190840015994317698654816436615548311405921418126732520477109996489930326770071823944814541281137028737918553778078181859900229852114543503774925242041441908271741839041116120002260776732904850634665971661857152748477573784433895142096159595148932606238818222646021085923897257430802627036831993986079051476534132850871377066869203133145883483020987925286473810440499917911945101670455728116937142181540877455895427759425924148153988716994623035625954383582684431708021041426028322919449734613344919512315755092750111788480705016415383307451585490863368833056356732867480029912893732167632664864758263058373497074652249305683571901901678232818021797370641896025648652931985200713513570559224842808197333711536878994104424442273757824802201663595672492079209948800058625570587623294629341908903975083009467173362957062403175337238696557782599409661875754470002274331063777095554816223791825205113724423436436798764547128424134942061275762977914425729391028937060038016996612879268035412423340894741122939792079872269543015136405064289380880124507703220470557625577457642555917176720235810713487367152570001771296917087245310317184338979896064251324707352613254000253698060621128018794802777208573259328142979383193117691462939044585172372558876518190097525342747425089589352542225040862677281166837136963401158561170111564791925901592188047141811614933997643376016235263041026376682811321296699190288899052297793771953647845971133834299277668748524119570605250261237198698345106341253200824489511682325242146951522086050015967690199235976335234136205329898404286599582218902454623475149562897723181119011238709852782805470061378932612977390467083588298883792674944032268359980574628934915752247464552223128120922047762720895892921059915250438311102380747127709578488239851217648084950394514655425898510761264098502475712573648082374351258282888561655020227073152663932641542745519881767494963588293879067460880206427775606665765872532415629853046079994416662932463025369715798365994865571642311262129597400662691825881618406181937150438584732537750342311606381764357603002024815530760747633628889932704970309613175636901742713070573736037527927504771679016105961427981208947184079446064929343371587885686027218969437296059378983998198845625724625794090772243333710964574937120207408424891004385282174860589126892301676621633014374220951631773681137580055685119835593247127912644147514712466865131610611380861934245749495396959888487615064451731101480541711994240929519726893939790194188377389271944418825011279787770255558655903319893626715484513548106232774409836574008684903671495517271860082666390654703932249481699298375184447081494129517739395532784206292418550790781563247492123949139033889205086170857293052596824771115006983109379734826404334103974984066821930936652339725313631114401012367532962396192366602025639909749782257624662923394636076879844900316243324974157470470050528275802189970221195663729344496164382089712269474253494153126490553508393326937709354081271088685804016183078819727592746631389387788456213302577793896955063944141880862133727085547867635275426300740953590961720908379624689251809721403228283260677487629706980373845193623315659545594615734398996675423395503152735982697513961417907881270657173821347771759863436696023518334100154362400193569720878521389882371426318994948052331371328177569064905004993698645994349416784835794716843192405360365059188213469461215216630551638922139669521949252945212377224869583653815475089415186514463407441149430076412247144342259623030573795818248373135220863346460013096040199529033188187023762984281842317638791846398238626798368417067744991809358809128222545119728454262438239415111382301126069933235349683573035818474349609437858880188445389355236241859483004303322258636419066432716430357774832875453903488249127047131917548150072009520974067983102220937788008407857444544194829724698136531341070082786821484641832417737730811382959756227967783658319045100604737121710102388986622007608646811338844174792923048096860096122062602105847374688456312048764762951818107400093844754400694637736312243013303815568253077990635649126131379840343703805618389618042531041362848177664439368421463006674141593103918647139003842294066550911421669120353956932601931453155688403118908994792487917466618511887384857039365171409161404093536407296065893085128432226469892679421609510670377011150967914040770177869938129527671119048052015555617990980899897703317372601925566257871633534872149347168764175615026877623719015767208237809836184760537829165535178739685248759823597384188387943938959052737401782502084424352170848146580077054830597546086607069544134141652704635277562981579888842841411589541150505476589108341239389438621387136355790818121124646824186670710844942151640318294856169253617444502978169175167415733342246168949825057514120115385350200128290915368051773820632083946938639575216696007634946334002823089415976947095770467436899005286234753150538258315754599235772725144645999248947929943351647526578527822851414776531003650829986895123318410688615687429099825425016374852766375652376306396026680224995130623573763086278514455444473643422239671169336605048806905702250834476597492333493829947996305108800523855056897362086273555047924405827217124842135215395458148530040568634748357338879396672552096138757824536573609290928090379899699540448768119546471091772623339319872983177166620135391848913869749325874013438901195215464778393192819920771208772370639014690751162835209802796160076095746770592380982445752407064429426306986516065673087014347781239656263689605016854503306388982325157380419081178274700377338447768834335201714389294881853172807734386629459180802236113714912619392114482061223996039579075629077950835306223519312992835844939984899179078265793211880693591985807038184999514003268814033001883419166712478707308211554997993154917513377016562199617461307423344083510910825205357056083320733757599298717535766925098453290387940611547226526273650157894010155568372178700509904283663829896682070516791916900140817538551208172130415885119825913683987597836509545314230129096768896438052801327369567667231011852329222063960770947918174008920303844291464039175366403547276626636927482826796471570698001555842136389929087836941027697055539642612523779146666260922229110275952319962376189008505725160872048165904889312351869715702247073955658966424294836460570948681260011858063155606397611083960168874086059325087727171251067600026109233266118260721697465570621434619971591749389041304122485750105709824856235301184973453541636170500848052337935458366364313103043390437885448992714658573103117400579703201873912764856480481718455274082492974624540234227713846501285469013430858312794823676338486757069948123086130246077832230607576394886070069802980067980274241297983659387122577730765343160533599430518313419404557427101005803246356024375002494303259314403176099396340304068655475755187356297797122595611730205861941529168112946044208452462627859010609174415148159483380709436919886677570867426269194126362201678578928511711982990391191447299566751208234145860491541175333241408353224050494077587036967318268684622543613606006857643178805400043708373129760278515012846824036330104833061812586334594204708644341783326150227740287342911365129617959000221089125014442649586770404921899798972502361443528462671512880395206790095277933991485142059867975545304913397647631409300338003572117721827058450831072805710372377373462680471431360001640884860584002353426882749461795549470073818223963668920979796767575322738167438557984338803702154473352587111476632052292073772876915361028821666016951520128666514267182178253150462951805945195749121893610888257685098154907884749308881137204057806724233269585382694760866408166657605807739073427149689393383525275815264139757732868531977278748036084524841574744442482812378317358667287069167816829911669070111095861550605490992276472158219809087795415957916014029935849616253086961439006766452899760599109290544320231750154025489502949744113239954561247105194200985634653250663006399370464849914119024235160996696190651104775309230945068907196734874454154253600321482151840481963191443902268196349576513914510472419611449924301062473249451024758744903168370003718818131402025099618623369736063040093952958125752187196729878626567458956275302067220483338690858025978588249843811493208703774981493240790335080132412582262990268188017581200293266861755098977713656150149516233951101279974391075995271917974537082642324879858879332715397547702346183225256358362850580555273823863305341280327350002684705863474617489716113211222634757226285103354624545756527350358120391546675883991359260873129960867899707391951864821083264083200924486707205972846391110885023203209404315720206360104290497293313942103657099406074564054077853352408819156298262896294441976644512086685876772178344256052169886764015010256147491988393695990744248163298721107236084136201674405699687873239966992409393517284483146664385797460173721701042407196333706014478148071557621301153717872499982607853657780392220134074801179980099227532089688862175408157439466454564220257726105902059755051452524991385953930562390190807772574840760562008414938254917823364143776534818817437245778767670836260379715881264481982283320306161033626110127078315400860831973578235844919874536454243810236823332567088865471835619142281621028327777202030887752345450985859983656476794426074632969928248304393945897644437983997673812968542487748543306395354998422232207391387065453077006409932006885037987313951022560028223534382751989572706984160659335417386787748061887088318727784487298653755949553242974047404987752822708048841010429778787807768812374865313702729974118722984065140282829685916324873395351033404493318281016419956987915639939526669351920678197843258364260698091931209200498518887007781454320012226937098227387037732830991874953316794641874403267205710637601561052134457834910252924884140682373620350456356468805926620884881490805308566418550307722373037979653897551938390836201961005174948546027447173694298342785905826391575529532633285776154506874699637644885343053542029856712019892512780257419339685869332076729302844461826160102656079940520594949940384585131900501970077298819444350015981800024760059921229467910708210895622067384167694551610018774946665797674150559528045192691420179087503691530548714869817796462438061741444942405730220179527947230719592624890341305219825056542148752525697779307159366077016245122309836416502363836833186191058299700529128407576178801881183637760256387557812091062290670955250496707482850584862634146675112508090719195816218192968125779912817551253342313303207266674283831721735968143482262503392955050023236154370278313147008154097958400127738314204767114941246251322725112825989726108732606456652295189322085908366738491855221956856008076167519526221378682958961110064436660801882693093976229607742517328821210300548451609222029318698833575358936200520941926400436998506703287515042253379833394055490330785520213847572226617696900516291745616742553476281272171352352320081732170609686935755596640373760038541402692569318473983180724766673071790501004245423321153635349005479865375997335872618876582661669514542227874430681294274903085618881748874425206474151145724712887649538271638140931121123458589229221191898402665663540386944692814647159821916560840866425468772157115999912159136201902652117014368782102807446223960139529805169422386187688152103858519523815900181075047899728122776276892121483035903871714748728055785868347447767990459102354166794717986994865368087791725897892438387264726652803621796162319894180756347865539940284473266023830295531300766084977895346703640664526769656748335394844476134481820895185374057117425075877097219138508637828195084546602303203277314855367839890487383870268254100749286337680488499651491060912970079528649546838960055268118667142657058402795072633515619638742649850508443983677620663024284904303256230974439963022445442835282239644878402763128898934080903694758120415954732615805325525045366892920181000469604671375521954411393105894339606397529797806219530817836824719183285345737376022438528227759405588286555213665078408855480442614297772604762743176966037776242906530919189609170910367021082261191221360587390368463692584299747255781991605910746017813244034227612632084785111698856851826824458024234641310280422984769794889019289302872916568534881337416739784788652811909975752385065915358623203169634531526452147973956091635526827711425976917611729047303284364180067649099251894214751088565038435221594565991343087235144828770429919196549028071271007124217319954757038125823426348319401276429982269062843919057668736536729710819719098034759809772075352650521515068808265684035380318616673406492759013769676193172365039045041197730292911442455114366068404667989521045622461143938792311961782754890167447205205845456335558998097346173818293542388182220766594069511581348933613464216116461918264409397418928472257135675666764366532738988250718977024913566127547665148440609500638276776321343411259588612021313207094104910351777938693984294124492027096995956051133620157252482506031074332594413782504950405780537130890184752537128985673332272980239785928296815613859202736115773297601942893974427906415568925703278616510227308022049831536436803403969246100762359128017099914938495391868484061971771404411483641251321893254148095828650729991335896190211740776335406321748251462117170494146478074400162709959764176275148455243736564325312817532400395416322489386727724158349752894365053134884476323325282321400460412634264137864900423110431251242561578255509220101524982731150931450639414234291671073642085019458836186256829836394798205663603357537876646131462185760790768346201303369069231287559370777164638047409120353893155959886191840855269128537049534789371731533771967955066781380493611574409047520129090419628780427125825632091958135868118725229485816853386906126046015771440896509793752020606445902188071291550853270064591249911900876443453646559665734302734591190733653650304220368888587188171497655455593116225830757292539542812223392728476845159755002773145870776598410832680295289665254335795459326856691359225950495471321129145894906178365845856379209180997021126601482842646718109606707818198342487289318022265257241043988180561479032743362302783794619006053108386926015479166185674607235529810119656796141623242696673348932218332174746147722341583404713274695843801679656983086620554905752815122473720934693900296435854068326943115142245865994050499038717811848759360157849454932005001168089168321636969054772134721131326061720276555729421020168503568020375128067362415249649536042311612475007154175727563313120974148373862997277620748943305900542204451058159675807071820028158570961445737917657855787467197584884037332597491362095556200352656727750941463086766396945869455536550782745115163200043380782643628596213093582601874778376323945682450075765553156280671423831365363796701052410541385966972226819713135144325736603343795515615999479163702043084187531375287758884483308961214674214874756978009752641818957143437740354258665350186734295239619130010910061120185921827961548569694599155344937403830986201134528795378409504148928970237258503409359479890410075367775226776014162672621148295266489174367452123297891313416039038646929025135862653767828983656997852138707644216960439308857176311931853508191048354257492808917843967729828843149137402766421333316404074306535894187711057748703257722639130761038157063095169263957923076439787472410117319444682697571179731465993156608437600990491586969186633391693142888045147028400623920575112793864215834558084930529793552172625550526160859571190769054620413609750299107756664282445040908881924038511129499947581952921128835108924535379525204708148740060068747665347962574383842310845235340077502273238222162665980893789335557465337475215962762717553194179054143151681008736317087332956237660869173415778780980089597589870210182524612979135542261553116015763472906939991825029696341305815766071527735036081207709125437720682471844307229350823084776877753987834536597743161436750530191154729013313656142444321422609894530859116094340594885010875318148488766470579606552139777656731426169855111726715008576865349517198160083568583052467450197731989138464504114861162591625075486581882691197419290689849620540093828645738787816425845876197544653375711597143679465848205621552646757708433453642486293826062881239263306579582791119499592302789308148638240641375243814156567424072885401397939719455061778800457850809047971224978420709473083594097471917112982003371068134689313856651054240708293670342403232736519108344837352892109255296339862379811395942411043259251619175381952404260245085872236334216217703017665841887393878547690306158904254311951685221804281250614847701270493519018190738798277121233326997503698955716510244547003849646278262375135823867060066186357301975036627439879111552313826288827424599566254933365934266308389260642901649858414711616179990289533430169827920300586831475051090592888631122053931275138883044333811738845793030741997253512233630911047037057234859572106485508634069454533752702611696496767212480645339151568731159531756240240555350381973713755312939369571782477090562357690740977286899044723451628866377807334470839235125935996552963869228734143827957305228692488566603311580809679980017338429067051831476355627710444690072219191818532662472673645866759020831995605324126183664574224227084428674247827854247831804043945613711360426727953444340822238883192745002752903351393683021795866869787942649247011183275844774189158852018063749218876889915469188917431852856707493745625608374834349154072884786390963578976521523900224490291117204105121004648580835847552775972527056771249207451343188958973579190669996603722024029943078648068587552044046607414215492189584114653211032460572040635472629531546539570662642381676673197170103646253460721041211029475650898294704670376760713771484973650709153160881285530001048863435534304764989586145690936141934850388504737604355793965725637535908051320852079484948635948057090491186321164074332568825829716774500896744507494093155233424560507363794836639713999065110902818400397308244614823342365468775653989957660334426074761196526868979325764717455211813206935784010448438388180159106664512321291913329760497742245659468062681844155654420533148038895915053045733670058002580044790746474089206085895837267906862145262986791358310149521846519149986791971765393240478578220606537192573130671840268996722350282534328950688438541098802342742599657621738018174997945173598464014888271314435362991604054321033338195800697032835016662760811459694595270769769322708105536512449067421659914723510355384107696902604043175804399942174270896758696663949615503555353279810935626761711212178741100115463588580962545170050819300498375164471158110314026195779541717274417227485011504664427399606632803921841508006705339093465002693553306654772188738483099114021449108681271250832322687532668148100760317773811927478153836939327144520415580708656110127791503199814680701735502087608136366695737234993780349242826979610924840085015184760898858500814634469168185245045981293022883349793345683507466036190306151688542283549841053343906275887725927121251135244504471960216584408910839465831090769011820724819121082657890405074010820539029571435003179783586521435806777255244476766177666305495493349855255489180072742296422734373437441777668870005977262836867457517434225216023451748442074225017508890985754096457106945012667792754420524701896479247874653491230105270004892862416169338766607327390560947668128034558838332144041030373832472341151977884974677577121148426020120220268701888237677627081888817330539873194574198258248117711087081608384530854699478973479236346582860802411812633515430966801714771001177235272933594642511359288554354951999803674143370780678580617785541864109124241264032336630415481110250201628599683839050525469607217373080647940838419582583949501435616298552972577913548685959671775549033012018732773531018200081259773855040677574490852092577444716307936819329694341223885578208932494315722886003339032815077633338077648684161709397833552036188096912445634725056481367987570827806971529760320923704575425905124967884822223675445386006110801015521718388847028357095060835644537864034994807315926586822469307138767488202108231578694205443050781288160972003395449978475242985007398727793446641293295545991002568240628930134814474557852639964434831252609936815054385286033562090901051070044427117447083592659710547045628423869660084968763436905958161213997186697380258196865579151340947951632647330390198373223304469222264891322477449981348116133382521025405403670145503955299104337432140642484492983318935731673342786862320673142748745099827317640688457266068879936102727418096926202636412477124897404698546883677961333573310243072022726919732007175492675011182113445853141969144613249651445502616594148988734788956955818296258196662437659827141249074918746787733755648715874493636522138206195368986991580010385445501660551263918042087891344713008345404030211049956588534791965101270480480596232774207545892318245691033968373248109893983863986538297859220800412936300927670982913640917217432898193736256360996909601634492587337759007507374330377011441014266260089468104788425034295543920408489670840164277824579274087308835496002687253751899624397464372762577076369876050336991911335826700380243179391388680120670179223356560711797403969840758275004029518828505982286986018374756936469533023090947928387341421894317858950512160302289778995507887516024350257903331399963136760467238644348124096307380828491491162166648385857215521162577236220846736199374437254848692999041821610111771974906942337234771881964185696836910349971898016058045737276753714947126929092803661003211851538581101082542758516914543747354958142851453463668870448388063969209269134273421628629273673078928237303571551987475947064646252659861245145530897754398342364702363487822767519804733869843949026649195805112350451717366282250462527294911209021992564492867593679313479440349802166372172236267622145296488373345128408860173165814078362066737050135326825246683942566069527121817403253281990258454462933915353183437271436995294319089191162868718398736315548720980222539971720861044962861874877568727603532185070789305824844159804245368204990782475369384575720645420500929903436359410585334867924671153117363839768431257879276984979224360907441266206821830971482605093658363701650655268321993933486368709516392640708674130309259532191374076820191799126112132273261447118095256977937469074482549188042855536643119164524394487211505369590053948821797647287928525603489671559103018517731404901499723440973380184225134911169142219104091310669806180425745200912246301505451483486295279129222151761262823732420319250161865457785756454110287138933281997606152233473023644658655960164224030186920456513087888268224507206279260748439926316262759980801932919166751826082201545033997243393131905159226859660087756780231427572731194058731924296154801980639546074617569671824225668360914772287683636926982252709308925407208370804447749908778524445417088680182725685071739315194622959290724623445000903220735260982937093545610898707028230803257383261023669706916544356616069267451874729920096284189023253696873645383922733683655272320418083163870759154677255260037700596689956633564634061518143731418828794197778365165159908033880609508181677877680727158077726210424497749307795286439238192592339935520799646717686661141578494617492218681690558057197102397822787351869156049091597932701107717594088981887749676021339113092176286340948429840616032159670249366898001857197834475078557830290854968367959055268029638623350970573023827660964683593818927512381683614649875343553244114225069787112822183713599042262890586611039579497221249606674013810038145689484463746949243853312414035458041618612140510582179658469157820361754955856855157292730001317080206476313679320602883655885392285723594157327430833289398476467252911683598916303443851412792385597921626242972710941399213535697502331463895880707951692179550993614531655176552448594233898126918738298361625302228933079807224765996910883583060092426425221351134021363403217432919733328540266667280041769205664780502287692401765127370846264374502219482458061408886208612077770391456333900686233469557967851357803453055895611504822150692660817812209878480286025426902553946137345513471538952997881031570653965258624443595214201759738672897204035560076768135695369311955810661121412550049033029947532276143410116617198292758649297056410378029951323550243398047847290596700059228002751430141291054011057910342721842342908096382039685126690767604038131654685048199640378723774637939384926344326194139364475663875459689772553912779522990159585602108029466675965752406492578073520827217852675707668094921278189395854698733462407945431227248699177493340978573996431156296053199285642154018424826990235674340951133292383720022388182176949212293881496942841269084056146508721860003369272586169841977844757865577517350247857154395047323345528347423262595306118277095476427811760226435110318159995887879515579598669783110800699594499187464540078839567950010661914326079468326929874136573452086748730724912578787593349217798086632188690436164923078799534392939986118270334940866713940131486766705921606817102954437137983315398488602622817793302948794107684167707348024389181382273002722254957577134975692080649679386469940488675976795313237507132577180607242315606220001838729363042793383422851320190909651884663835214443428900984841793682425691322317990866231375103510379996393401138887461304091544208476061029949298105765263430274650939771459238608214831421069701626575112811303250665218025850902184524016763143190789647160738167145968235553402043379650181960137010985592391305479790384894968358762601072276826531522562962186575293231147516943875006551176919238363233592704193995166006033724295201872626907010529637672751007912505025142635677411192022558310369663103854401162245096878019082841987030508784527311568278405573513152908638445908270119834824051286865178902085283553653164340143145077496300800956773638103993126736946584407320136759252556446694206365279175765455817532433130735901636478446305169209172757581766324138887734522458148538941332796307534195677974907880614715732425699591644065471869206033464886924225574542157760782940317298227282163326955987309521441968894370142830211148347003713618056695417793682060582214503069448464541933949325325049123910379376332904714921091369863881809401266436874238957797489210410275739358824167181285582304679120469428744392375277882611619821415052652187217445744745061465830109272917810932122517742805168660485447564902609657773653924132316450634222008356359995045212310920635822375456366224010178212375629091234583373054645674664744560226691103782508449085668809347670872956955094417260317460570623368957431871158732634965744173567290966282899564241685889741950691896683600810953603249006130400840149328302185852136470548012895274198450774809313707674844279485688053437765287662949424971145800026731335192727104878062476791536092193808214130310480604436105104342673901533275480022804699495208532642999962524530061626864674566806853035001592865326069029411895208870368472760016483708479551113200694446157536186453541960807905431554195370921850602230353942321884486943219547395991852825208105858301342609189792354020847308348630020036863160499860474419883914917657865015485349758686291286410174608931950161112658922343267041381369845587773152963258347563448347714390949477746579581662108064467464259493049064798648269128784259068734854008095444695454476475560068944953358393952057923291096110603018176787753087932162905829050493034651155783666798891078464433474394772756160831760484333853832206962733853873608052954937951745919765618032999846026966577532517782827979840619511969942997091441985067186674356649019714577315205598716212235344696499829667136675600026351561524687825562065678272634958775415067595358861798645253959084007006309441852800019257320887787058304102840667699447760912647763662134062264136071343651254451233347137807561992916758985033235769729891859781148955572869272146257720774338011019147055718259391098096938537208227484871508655048521805656718034945564486654457057649591700055116516775287092379241251328884238520922125277290705866060814342639018355219438179860908235687445213238499582118666657844180175277573878099698361529733273278429043079986309005419466182616975131763514773723699004713119800010786825586114235323226580737995741713474666486807972886539856931754740582297929711285462454401864717627903534952877041783382918545367187177518751846624108426250911859501231481872511296986090196949890601204163911556339906992557898562485642854581595507975635184251084994957014162578604369015619728473954161618964742990317076860258218060198055685204899194468525678541366105433164214508658322209737491211058470282028368216010765236823827636984422825923915791061662992079187265886230408107582451769958570283492192421513606504282655933916544125388129685521711748829152152754015609672175024126410733873759261570562401336399587863984588561740518342160464251798285574162894390418825286684182168940304508826440505046166201594543160324793214401093446203593503214401058999450633881761435242438533654072434707399702934657618626038367554275819411460633369783731428833322725216933509327189238051393818495470809264800851748310317177850419002348698279957655244557288054039677429546606376708581330525552644461156702794249293747883317623230953976447540527051949760757994138869009622458458393692643557051445385585746412294503721280646676208760166303260112023247933124776317553571586658584048792771334708139068414069771633708943094449204759709746359923476923926371386542378354273032218211423111840194388529628695367249787427639071253450454321676713349098452691964744399411592519237694729522505174447015043437420892785714754709006390664797596629736995365199893201841732001671007462850426522038207936778188942921436220969474129150365548640197052772091629147288503376094634330022614103871115288866462975048880970774312972114935412391479239973861609432452309868048649754613142271803766922531332181427432028612416996002379752284128660597572416400711387160673573664221674547465854920557059303727377228486069558157657323034016061708736891138840628237135786617896852181980960458770772475547033369187804242271025856535707763084091137615628557287984797543610169155102675989992836073637962350613065526018994710236181996587290425087688895974716041161824700972053875285185234897007608426588184011229447006382788364596154491635146157832022813777039182261348918271411182518264078783139360162235114360018051707786820169557607028998201328399938362112955855982161557891589765670918567472527631755199274475433726865450148091661151706699817078340347683318474844043134765692288393117643144577443267276581314505634074711412031766114511376793800856246726995768779761038730238624180366055905692424131496614497478991206630564425169958896880733172838245670281526665111150176179983117504979140270796343571534586758370231484991764778387477666189291027889399647482246225300805345242084365615681638390565620880205549213134854501432064521389146952845981459238437596624689633676760049475540603770170428293874136513480139790316211759895503273831926884652875237814013816642776281277636385150879741526165419137613812171240509578637635772118859007187950456788293457619295999000742033679664001635915191126649091223949194914292449883542598387823492992204861505182441079419826302539078783596603129089021931660800398448844965558861878987005788014757566536447627211727930449133905451271746597301297991839321282580821614347869301831781436513158776993974029631007419994300702513409475790716729778978540389923695849215698910976145980200174524307364680836113929912114073573570727018408960510939325605747343565571857925591011886549107269567031402951221913897172920471945969697342278131582266239265580458176619016972593522675569247645356320406603837649726282517107597657609476372263839128888449870694437800168506429799558408931696517301498174896360105005893135634649018946231172149388360281168605038383695596857718346417139200832017289400742416037589184050906536377183873037139306923790459666440260339068923755992874431171137501238966597025166699488573885632576401653330640155134077769164002786938589247383365651103015188875662190592849109235020021990894873546719077598487187862435721679539838391010805698135315003543644947285342908354669814661410441250119380328760183098175396627465268155707676340046178066303859141832163682182133798570049451605682782632509616831816166774984238331286937423344687216410959631255869973245922891004655103937118672605695636016896490569041870149579594428327118276335191660570406538231351127030122066375195099700223600543019598069905582912001980088159707169597617339288358306410500729196922154373335763184278260019347837715650008551406676387436558194536474904140335607501547272270626124167667601587741665480297538747521109449643735938908947584314627077989874582393480661259296449479158415695106978493560144379275054425633534514885140483006464926602360425612771449437049082443203263141453549590115429444314321285678716496533794672023866008187182300072964296513072160883163254215033971403525864552132507541905556034841436532495988586696700977997196019574990744409614030979110113453972344911410857286893461041591314330380995640537452679385673543908821260214104207581380022627558627837139381977930927645060950834998627714780510261044722840065288061741596303156892278242305654898344656487953634299598760879670974564507746796804882355366951894710822647155559049575730124478905170841963939822786845321618967055413124901703898218884686957173657825148259262264981983514050314893698131390112716671277701954337504378525626477756902385353466658667065344376263689039792813543970644698994150210281797552959049365618444809370807027839678318233934161237085358574841984929368538196760196725106458825341499963261268438651561342636911985758104970066681018214530308593141185496011377482413489797304173701093204387336305104780795001177865390117866815026068299202914605546833701432207661690895689906088147174388307115490541629777116161050160896640690295346199390117180405984163380547231236372144279681128604479300690025684579046779297142382689003371296667240392558526918444136327647614904599220458900049263229512814705154881659016041461629935002627639975734280780609091174887625658485955606684134096654863471405540511643260324424842022815778931991718168133235375908688463906019557150659017772737678150270558101635640322240630413931401178122907938223885830370830840857283495704396018388168330009405878164536109195217272929281104349414324136715404177798372486062691825477186153866740281900272777296982399722184811899856709026115966862764268893671044395695724635993301965507838117592149515015340546645466547298401160663812051538644551591495729765952283795415688914242927222419356289308645585204567565452929800761030567317066817774182962392478619798172149939454788815763365920537226262427948220830874271460935304371691169766192755368553477961671183544528793767258937083715723497322291362139258310378229290012083412267507870796372808527488406126830717044251729530564723251905696719133409574850859134991307400714097094252606688227654874540072309454943792520232792815232096486993293414306666016789871254056100340875367296730479079782168182707629376753806773032920917090249673750745494276030572947428995136614695996030430485913278697135987353669733546315709231425366674021193885637355571228996338191367466663917673869071974871774845089474190117034466251261398365938141460754068236078767557786526459316782100230974051204971797240096911402687135983592010959095243441194768407683469785528613328789187920789250322456746926282826216800569265416819388129505122452112026074780097403522382977211038175177051394104952412400817571818763439211359124213376857429558912440685605725441191774995686303325747047564474050459008131044852442513983525680597010351640827576261906386324597382452355918137765141625723377387198058376620593569714538009355564974562265057544893416361547728092893033006610481935002811395784118111260888105439400225660143891778339154500734948753644805357044411885863963344915837583161520932096072989616515877149471589284541398751225911229638785686900918770096050106873389216033891273819667396098199857784328622409892588574097033392559756333888914002293159895175034935089954619643474607083952149390241021909761092669867866006758126809884959012482608100788428814510043371089661048792893452804023663753634772282622474773967945357325847404460907939152308841886349673823206843226937133215457212039483496656863420132421194406672595933743809802426007123289018894966668289870425495237863199200184281200350995619934785244933333775300658053045158696098045867681675813003921957349363919948718374268802697004197613354593321547680436681682749826839960873137951591256003881030107450908656489956802888638640126437591657670403655206364065197209369413330014074554543802419673590025298869463049860026089544023087087604635542751287345342455632871323078513757337669583269503973046673955495129088600412182130325816946209839906544635521601317045129799459916948120573844199101079817151626349120438692399107641625955527827774999361003989352340568396486444604265522648115028786977386421763591530712580795443538434890690537139585971585233377176123134992160453901875793432393408149664102230123456253480454464368838633107655783695135450668808464668827837338759223887836104584178595715557222006730799809166152070315707524833731988604905795436208589094000501158713377731044266979672645228343335472799730026347198287681074070521418346979290941970016161905741561596781307220089468885644084321082587644717260637843104398709295030831851537720207906961481106568028387125978110770001135765890639813137428773745770922308566717640624144687720879316356487119813965259999943208923009841495692495950888128037430496085998651463155082390569930406939304943406046598925574418974049063251202292124877499646124839748572336775458818174951691790977194561550775561745920547579023207230227736597370169593293419522964868685824685923183225155316106995709729339564614464524716687795817883677128161444402694319962379894292542952094644669856254885796321855776191534480602106179427896331038375633034733277086553718956029581770724364468008061051725677332560892786383138002846402146748509499926870724730836672539189094739931233385248776644207954517739589219797962433250704902616369993543594964121201515194582632155142143764207648837742522868016503792903208270440108379610899285358467247334755111887373487310875630443421797172486458217954871315983096690534460606675276045932606118828310481843385966199505445848421765716907508851220716236457052660150526619542571411773257324034440488652657077396818891235474584063118440123107030788109576395120422411052603842926617516021406965997316107629719023446121046296832215301897300739987583127158628950738665448798665145154075315636737379397606691132357484505971250999012991423893710089217168667205544205701905375669134129252566973380699936776460663887294133008135033180268536995204551321584840213067634250478946679295955569594779986599318534300649456297423864404883915839406979811556389814506727966326950568563810380725309089334168166768149491596106806816363239404742378340906820658731063642569123280378700907795534917192690862694896834221746355723375412665676893167087685326824690680388862708265464731204962545419321852211818534842029365412745252347665993059038304348128774903257788203231963233752629892807251977132329501103325869918383209483534569737965832255411505455526625416004795942918098682691299588082886270969833820849002272725472705858562092844171778068668524217194073387359510817917418900696263624017545492201262411212774613951212925981710203532153453853891870673419719574728330064396756753357867684919679225393359570112868972187664204254682371108394735261055349507673054900295796776049836741139710703202207104101967166005342063091725114076742344197662445627900842300645252122818119227528482646065806517633392099277044783287902298372556712075688557445047849898196631168360224804336118714929818122828521087367869104660355052591602367317791605519162974554161818931792134418123183505696496622551418810645794287877623114211401140067749239835040575195361127292563325056134367180203379850273470223010861095800878481926588419623859646568610948727614274453566084877414614125018363478746670547619163973627068832369900585282837235954510169361951712045313412551600391418921718380384835254642271534456410479255834931058065421871932449311125649953272413750598682562271501021493310022995531391377452717550810837613088812965428475762259530967074420475383120963214698630182369240094416805935103809854942796480620408269396420394478782674744364179946100875180831064707247257490354032584887703319140540176977948086222550371284337723294463032038688366700949374691571187227173200420359152464984394713642046273818812449609796682655622061039789151952446056106846693455762200797243973584568409629454009154885284290480920368742556506408534981798730955351068771080438132897915386732587980314432863793299056684819890904416591401117093200961669268220764995423865433854740877983772733781406391802576815872445606048328894540722873397527406699357524385711562947193077969075623982886455873226431084791325111717139962460565556834146078385583690947058706159988277561247631860782247700139240688707068822122760289908096515559204083857003769735135027949306842100358800227754217221214510296634907266071399470984757946773348485389241153120612157441953934302967832218367173507969871814585251219634420562390671932686093434429091340841051923132289558884481740606987857868793397505605232780416491360684698047782126689928427737558614047057127390969659194661661403812159154258773821171004938933353537540614042340498285492653516133348342231581137252552827834808268215857058867311734921400696747260651298618700150241070706215941833806477716257542005982819042300972859333528540482061252475180769407786245686586922718961911651408972350158250223668268713690896573812090632215768031932383503698876625027648187666387511019182373825277747261872974067399429197084859270883454855805655215783980250166809941699320195927135864922977870490642187368006489562747443473740282976687917070304527205874389412709971416427032467422014504911769264333025282986376421602697441789763033034506626783719149836243424079675846302793274689790915614581024944279085710181855333488871704896150176304706293401557553599543817325678638498359518300102448365426870426973123490120027401078582313215626237748545723082653113841221788620924159408712238299016687571745012292442574768437302766024409103912188145083667559808014359690359196911809745242656720454635595975405867735058533656689531838440905111348905812664795380778557764685077248022766141533761920675071293079057875365493339821556704249160524572657296434643454209433487802515881495107836717968146190163074454417971429746430328249060325797400963147947081970520784590625586003233372900667498251316966836841372039148523134937145694509821673898262743256430235294624078092325223430884874086478761007287508203363447635442032133958304272015751939272159506319433976812611784473830257023794323506036267546240627378402398403273164994049008026026255860679779203416370020571046106027799983933072175068196461492287021221799465145463535927880184612703458229038389910889191905105836987495963899086413824727288573490382369914751838172103176060503173742668969766605825314935793775102687358544814112457280711022743383934109171417210349250326517944205673374133989517812332426545867885457135052654649519153353520035405946638244000778327392411093486427703777100725100880773764408801555564187473327883559433234183795744540690230879696513849129410223047157733243436867861859039835027746756297402108834201582375980266586784919287388974025946617142170871198569936159077130500260626642226537197400399890722075875962008468776094921229872436163575689168310315450392600555364330356172387493165217431119888216198155764883271722124335056987317831344032871219759207775719306250772480643985035093114740530792014627182736088394343980468893246917628962731056484050155698395124258890580627848454415503626332397961535202754623491119651518775060609239750553134675337590213924091477575317088444634369665599941285141077974255061737647408183720258949615258885780651752620582179545784508830355629539599681247593267481390433215808586593826128304470657364135673233729566118731531445631612324673178333428602024521294245861754858528938975546295302759184662555456165014947114432031100794506473080030098897102833119152525270170855838713226802348606864780583353434628390713401288256406446067788197721283561917537811587975288494624325114693626894160644126760351092323759121667601480747509401754434720592048957087213538085240072696567704206639132076931026922408461894266721656648280882528391305665465436665225099070903424043049434087855254506866026650683863880941684417836731896184975443341405812517472444515078774487539528227688961624803244848699372994997077270969799428241060916669393103294998889534364565160674866958862172482858954825342553566361368432293059757883751114977830422023645020465181827471431061491725749160808769844321033365298825868176327627815969188312600239430911011911169248284072728957790230028619005805397713768074394167767232429910479016983222118833993118161668554283763276575684792786623620581917358711926253235508287673278264375970581076195794125920589110070038429645694111662151997222514542629283437460132601180626923871658944135278086311197688412595045255138445491116688270595284986495314035661388454273318606646091536568467229142495104310354599114071680133018341388097722115787483752100090030157619533435056701492551339672397493197556763041616683074978661812491198936000587372155442057257410002315684809994809308948112303184708666567771774005258121370187796530724937287107753992225747778123784726284272777935136928152351356951316487353790799630138030788338607489207398782682123058828122469793379949208596760846003150131513486252065757496813915791653990427819395808457809937726384330108956135045803698270234258307736803797456587087658775804047925865974046454696838424219830846372065116909779921005200634107040077555347414586608427970425448032745498280448029724745826023211784923732178788347436147292999163384261770906685225883083931236613169831306378514513047786391247218793170548512333919125179579772484414864963340264000385859904245183099520627341871094974079940897554767724678520816088898493661515913763271383583951322690522756965618011844299380249877347661623897253160952654541463086107099792386252756527597257083666971936572902439569688627256166340711762050116151792783620457286405392888647191643670631204490460869980506578470396496342020101043971085380015292199585293785331356946551074187442138673932087996793868830684814964216412340854713172373418510415062200180635899818750148209932986728386815687633090765663136991541543179638410315972872259016126932315714976932443727272546312784471034824681809228126171078817536692658496293185786858635735949844331659042097386872145886248477564306175325988102606964315987223338296382628959935051776571977074038254318409803568561015527308882220591762413010352130625441400014581620414902942753529142809604900600727080188615709437886139280650381387681314916450313135916571734383723293125941722387044943813475959573642311023940092605028738785527797029380604487811198578810217926632099838299795025938973940660692398633800831689431087541981055171579940017880315594690848330594983377868633739924075737201120718719400343330251141036162636717835545089498105725189948296777446713819241599383390541293921952063224988065672795874133360202463300718827205804177782775207265354188690738015663951840276295291945687075188182592099845497173088682690046287016855495867278457245475639595225477069774163658983473780104621365832392994705651725132644726818988108332945072801745275831887680515022911695493392763592013970096759180002513904608134663254488347912029363944770270857859622958010757029596535108356516170031608340853107287812847324717040132662458821099885414051661621018254273217861743760165248894774057355363869900756870071292014024160210032293335098393367508177027600684529951087457828475232948174413623746780893530262182209824921320970872750019596040215771622123476013359235485330757074526926330926590042223148250754360316374730866364127041015004964778278715132074940348542661954968794146805667019448450328083116437701380163855128843043527095880236743255869534265381129003025153759710622862190871718140434099523345346055934440818711238672250510905152657180325096870066543162084099183551953268784926620365540240893160852461634514418063213647663613640686497921776193515707146192173986801934358243061946876100960191513143632539715131272007205137563139357161509520918757274353604102982106110616539251977609008156057618188627227109706224600230602927026313161940223139745982160064002525666997584978341214422041183492376886542203363173724121320165364002672296775059965115442021641675127383915982831330317045873889999354233534757132506736842921409172440788522190911739118396146006586205128775548715290658392948327078256890592320217385639108292258671929773835231675295408191866025843803416082360270553194864096833144020448948955756596373602717675174322852450360170908895121137421044633587432745507698923951221364916683819344401353941657861730762574124641425006700376010692014103334424279029193376208075655215763850611204379695715771175967286865130709331475732484946101088960282526402537883694594766265854822043933247841649293673378937458532222964836255406644496948820279627972906605600590823161998635764332504605454486476021827019807326769180924339132841550060236082541460934173878948348571476561687289645780763260588692808245739010675679256650770761371315096021075831043918615188505220414013628428872006770021574247094078431278484806613887656292570187362519886013587919054075337144533762385162398680706443146096607832427488107220704864886734024166633128474534834092372071320153817736788336092413136318555505037783296710946187848254635513517808547917194938099053222375988189114863745728484352822757031332663319853067205367844076880369698561720766829765814814754984211404022843468526983715544664192073309066644745155773615413354054906854161171589615926363970969268737163214102784446584719111567947466361513573828137553865028108665244830824654195868744249722826611089523954207876940768561002574080311599960819218145670982697389081847214646272622357644013156877259665277748547844167852652142799049495065346713379449192912653890468357626699026949255615624818510781844635102419866869115633441571102141327644487729086410801375648571965426582199815781389809372982116796522951072584952944214436867920234184657304211945386099235621310556656877347847032042314440711781156672834474395515882329198148025243750669387529932891038437770121185661504796332637433751634654684170025998691719098213072587405203986259589860246543961590251282514407258027319774873278873258100901424924804005351172632319092169177978365434495385829017269145160701774193305155725539135587431573543961270523163083678185655486094921463003918418237870501022122027549227645926737867755544818823116916530843843958771770205408381172387292515879816832171394007853134009904180112255864272615198441951137567900928236153092276734973133638019337363428612024458293170516642035737513543388504172033291427471323934666403468966148330004515455003032149351256225569023891867736287459318432216945546306363083736754956347522179055392816334902235220711583273329944303252021570911604135778206282209473110467174759462517422225062582743981279791275418853655015526571992301198993216763823987363884795282825997104070496019048387746925733108745485299724782149935694702235960572429610180739558620089703358402647619724692349683674553560699902727619404618365162727998654673365994988344697896461199609897344507542483203672051279829998801401514049856501843576656672265172728477111630194238765869316831633843706624301319988451540028060824108062389828725182705519742998896307810091076658679619236594346418809121161380339631782949547334460865367967779160801896803344394089219146902883878532111309163254861701872408801845362163131057950856493113609532710509507842405376848727142131675730088602497810302375794042590677434139292378323177422313285379108293313590991247508145453486235491645214710349212057275355597433661144017981994773705763855962123750293465169992122484201860516217188076841802254598115371416918495735978718709959129364751376511351886409760943924641021028148262103764795271770642742365695317023698666878091883961714696783832109981608601567467770158322521895473412203588436784825084010347400653201196792999986229912542695720571419724192789134452875125705861371017019749146321618587200325755126255035646269534335498022600803251513959260836017589542781318253979530517074329381875326090785253370640860778752745109158376864642782135806287533412550387061999860885646869472612119310607103129864184481026018626251941103099308539164112937591628730826437396194676711595616812014816400538241341010508140283533673852532141328992260711102451972851832204739274875958779606915874026491012201379215057338697200772411549753898308490304965890316949429447300345788022895965306280981073929258872651534302305786248319599595196591508347129329691019231702283049175730363539005748124208466613654502045486794893262054470055141856952828634703262298815308950845767269620031141326059899974029283226140989163531881061512673292351642869220394369697095951329287259807396562232021486538527865807996410351535084053551935401994822028938786672448720529103603926032027170661490265336550479217293154264796581666651519985280806654926032114838032648881147116162276144388291388719358902434239699571651586812769982829904334631625327631074533266251750248659078333609376991904704539853178624600183728061085997401284236623804986137850927699552087882510889463715907054381792474585692142419888778823884609062704902543166374302921543987608479081141141274161369932880668251881441349722232597690416633942699243532252152771454855737130398472403879484231258158712760428024574020815651802712992387411319282632328206242598302382253730522443555669247462674989759534328348675041452543230035231536671025775872848048424965316651099130245168112484319135784039961818279163587050083725947240806523538704080474255649519908694298336763321752731820871465159366471003972364275996299071190459496771727812919268985549597129967855409678557031089338962922910563644070914652046787444281030906456708065436489875252948831987527679474122704927652103097987655333385056572149412644624841230272363661148995419823473911120054835744687466306919372057423344429148644056853033969379816304887546397904251458799520906888054467177046933213155790576651404588156172549755521283300403501215979490302920041866389429757214929033422495303630246728388195955388735586340468912531925026606078231899451539258131264526919883547622214466345122921423765328561280908440646630198259911310241544860667500454070423426278214693463244965024831908132193927802054371610227792836870918592602709571667248163848959846762748755327594517000524574435607002948347945500134127803243341680706020810866285103018276823217307661911631713396463183143579264989129457342395784383942413864952382145514356181520203435661350816093251708559499394979004563440739292350001641990640117039400952323703813447983692543890290138128167149800411818271915725886699025324709630428694587608643804250589085889336073584025414888455441532716630410487354814742069422672264289812202879538525397699151243200127702985644297491947844045579112169922506127091439422969367183285203473539390039505080531248552949694173763210998768398051548726593596944445878811277736269854062186265381471773771633978312269106624041635416295503914726146707976149922160431523897913718109617420186670419532409371919408337393913243681364408477963048801439817613223020776525863781980896394165349123974438863460558312642698238421339412306715225893118881606681672075054438552326997052827768325012148983326110456509416402064275774240493535431670995952820370036056605424857619475642069651160528415159183835878200318666736534352211340520498799198722690191964007496782931741640594330410672092432402319067368866390223379238584389992976334039257682218718201584295539441250231238544572403547431789098514433946556647715355231858272499420872970384428672262493582849831271165158850192345784287394709227026451783455461037025917348436021136078356312432241801655445540610852155517406944988085524099650462442652863317790286151837899538647509012513983125327934146221725112587229742193077632105734002636155070313736183399472783358636172264445352417440883424718335669193163210432937379382652237740132321852492681857185185367863968513217177214869332424233390974376958113103443049465342914851371457138518691034005716539981731849102924065869492537568753348528528329399680976939106662799623744660921462492356780123224099926715707578114056810624472523447545237414763157329769526109022375512207874198168839897882020770731345196320678756539578880441263765133595506525115377627244421233289629101052908075640164724021512478108435235010317323830384611256248792448446234633454414179039074171352055425822204453022674936234816048854538827109304636593720327647155840247655231853373344223503896693122706465435770990823880426232794287794259191587626193178253993321032322321737705120461818307635816578245626066094643727016094925204449210655475354526954665903031686988858849137162750217193094055893199388300426695491364651859187583079727833033692961310217591398452943394606903910189240100476953749397539673760682106377661863719541717094543304298775662306457183840719303502341448421327426575126217975549874798927913533033991450862387646576471868393398369099970144496800585504671129758004493570374408163047638690889231798185743012648426168767080647909159589624066479175261562108356027474673442306476158312722309109641757737174984092897159615049973725959940695360154978067959361450917602497136048218370239184579864047914720038201610899193448313681330092484711313226233636417526892296829553019121913881418327219427074345670512412553396530805728269545428037594825513994551252939209085844876901490638989618826196650857008720029742020792414949621908004837921574985338630237937362771363894391258916254445295424852979077175417648709949782645288184445642107017468496593821173373300005468141229675699921629252985037025776165088632443046562825645418708079853055386072959049756802116170002657493662519500954749519976432387413868680566129951704580360318813527256184083014594083304605868728872181345289633008049034588665232378198929667959368425228839868732429838550032822081126485279575043287428602472716531971160827837749145250952074306456137932876990518843437041786943076861697114177558195959715194650894571166777065246770577353608447726140531686611859171690602772537082611214907467836451407131047684146235574336962567936364555414361962051264585251563747213576234780015386083400112070167435612243583779700165978491860531552460885138466359965489327451557688244460448928698007116173278757820424972197437273648517836594039969826391110873312773804691104870953309634376536742380291064410917348130530535070157870934184987522127044015971876842593839729222714512383349253443177167608759182593283839492742855382863448761102499159410902444017647523473777478134911174642427169739959683430232431208670181189610111036337813678341345093145888538243227512396451385024459075647762930278027937001156053489326425530540298888164997531290943887232301032715535460794930892873796384976470887806079063095327249472403339598973457907309673528467382751750762241668432469333823743951374693266911022099740722797394466678515605826885875612562913635537948093500854753521192889833650478106623586438660302082612950228277329864153495157736376834901399617115125204229332653662482552396289556655968085356040297379354824112459673008719931271428079762293192865567336194560592867758992141743357953928355497736943786920903328522234038665637272935067864108803653029851102647192080251485434821750815638799162586747972749394540550067677262558762041711613141893231819597214095073481379388021490387668019867119108788215354685668567101619464834885525746422822071626446238138932619004898075282634780167899078539210442075306086648926146123203104735815832250222502903973575551288212671534153141306176672693805815038218736912621032416105495731753261671487598141935112469515855550582415206385273202715841495475241294061175530941374841539549714007464627803291293268750676544151586843199057723320889904881734866003745171651024649630548310868121459855910347638459936082088609602624119389888271696196475041259773822923212926572368232869487378144080495025615480044383756933938726587286215680644736782953791146420183515562733638363025476405460391357719380517917831082281165366807321401405803967919996993988547367188451720545252439242909337347226509388586360381384560857692202774862279393358339673667259895992500479244944764108606037767123973084425346047471245812595128816911287152764190170245807416886403337980532938754232148534386070527100791150178776297739572539641698051311903546723780716795691975510744478208962857553644446595081484680347676997286389915787415711725209053916261334895592033936885710416632432385040325707010746869589209315118047558992614921917288002994630416731641291998242451334020701633556242701313390737446663836023536629621295281721960352191961064267961360112000896792648791232911201677663121447999002175634084356796535937818511772567394853205079805754329329227783303827598423069602637258453936725646265693306728341524329180857054795131859087220388918584953716041191952901942967924211598850764145031647762632417173396387474057409714490669104707185176513123952153751719328427431311929398557104582633957203057277135296805949374720189393513321297425580656891063857019780033980077947252230397005608964818930046441469562040115408943471374981093187938602741180176607313504440306928569793407903055282777210413847231822696697997414300381665653209231944859978163157939474753022249984651296603463201107381726526322438688023683594719139486229602636463314776117162830837635724482380990219965194576231995176060939501981893269599787299420235819891427173037162644939069347504332262313440618278393279281560940353391744511087804185120060607966815857789138489573669709145719097426596656773319563516147228170633034961831006904621338616148208494655856454469647893740180607101849381350779681326465626739005481224228198710535345565636559270144597275603665946698753725853520262285295144573630554054365409342088284732392925348850947574857275954404729496475492418454541352987098202465038067129122582071251661731795428344106931594328185744974353318343350711500523796681490077030901628402544305948477398067753882399843408838881209127112572145974483560323641076542581414724489253772841444272894008984472583835802220553715846068574576769438615057386395758979335212991878210900008912368873576663790093104477808805330205407945172637123216523641005525972566914178512899518206099961823711840358812353569159315877011874406155618343627349238430985101858698062328865989793932927869832645649579372917540261610046447372658334295147518582572741893006301909569948159816922332631440347533757793057725268873030379441147183201512403625564122269849379769018111360839203649651909818956842488276194070575295265658047698152227965073238151988179797131833056130664647420136341410712738733290253324372798304555721550282018039591688445538893389934218514331064078725108107439493336542651888499706200545718978201191656454064382412519845919517135765655734056488710170829454230898801035221955126256078183397356387367331034210102709046189052920952269428143276322202919930930555181183787228569791008685237763167053640566972714641566792941094338157449897941153031974908562405611950334466164520723531656074264795753266341335494575827506219092812043945136610868674306279630392329411362973217767342226048500324421300911749485673991040254415635383634678044194901047941430830994063001694181288594145002921661268537735085768004871802349131046635877399217990332257147279122564779093948736495683618901919868416316391643958918153056271132656692375339618711963047086042655511838692280434053914812169727168958004722614679076526306389070669563219937160169778939472458829249182845456461320334657870503760418806335339006078491317581928787683744941076946237427432602791065322064460208370869681863628151036976572296597487418786488075260783493366645899035007027324968661983739803676681262626156527089243414287684001316295037556774508776699247577272795937472857489935275671135750801852451038571566035036796728881736749755020552672353360927643481244786214891742227086717816591988366866132243707541339935829738351247315775934087303769854183454836021668003894279874606841149611399379496905626405820840989832600839372745183166718501596052202602254913319729424442786409662064042520824416132299944176995859856846373558411455811646332611988520346746416005608179631093723947606116263376391796112998860860265964778209358068483016323350502493319438916965123012852623993027001462804459835585608258175198563401722097419877747043908562253620760222456443777960246637825920621076574432449924138932958340477699638360184321616603403462091085416264215626759354629779646297206414936612341509119939173391183850540813829763482405751023776673118541628076260363469665008060338595801352860424994797249715149905824012913168840044126667465859889650167854022693283619279092159172588086000092403883863554523401623705668154748832450367428290606246761205966047199569030863627332097716039472841173062092662635850454494159256841666497895460364912045354759283746465779375106249590651391155423114494854687549169941352088265866632128029692858369143290746084238869527575262706081336973248810180959321797705983161068439146467258089880419851524094254923366634446660115702088317998239809924753438121650396062875029080942362026287353887932583929086163455997579744525845936265140605491351268245727745745491859854704424064619715759541485859023927705676093057278855023647256203009388383989655006274849918152128587905983498725393645486302054090639442882222285641606344883315087646958874657896307532145771743613522718004502812869186045599467440735808900948890497627047676781783884993279981836815215132811578778839358709807862820970199998893311751150197884922456751572254421675773545794567903330208604389774129625158280932646231599897275724938938809004814392831954216291917726857746613145245562129986425628309507149185001212581994477738122299836022627580635126993366414171879141244241969449454430217042793263625686410747886525905003781435196018743996437396749001032018594241385239038444722181864287743410211083132128324200466842404063601986477324002733681960821749711794085474790296124569272074536622941269724464467023436640322824439013344871080756838763633922355700336734962020937606583029167465839412196597923179835680148228474051081582025781257441547705593958051805097899832857542111571841372870561198101772878565898839144633703124802661840937279423571525684221862444291438583620254281860500848280055474230664033354579845290739917835849340072744376639854624607295810595935791600038380586006731443429554703819785716489067626827656305019368929154656737923906127214868268950414895463065785513373724153414448778963717125963224442204260364885292810420294437187915131670476729426306544567641666015707278217628829648122520074188018875430305833001812008832733672241505355026436596476219496118240743795559448325444865437070906981120468552809288293013310133531305031691183549455153728084894296182974106797233579768656411973769999458714685102804315183779835048517620119805162622953233250282234182726317836922860697987243626866472547123575243635926524795328864319256393267878847159947051582921836175721937745447919268011927627099761062016023074016594795197396622298126984203559435051001977320274475049551103004699526504500018833110043246520639648363907582219364915559511306182542111599122553258899484381782145905524558592451358057667524699289898970784509926096224849567656617897989498266523300548024448860978047883106911598151130059581419116080225774088804048080793824724131262760705117606711516608517872369017848641863660322855494454166921160667188419443607290646317952133247014477445340578562541859258418246588899909514154841757879585172815516508713407748287754606538670931964848522695951061062699544474293100045854878518444868626172781967032052258974434262877087781621184910878763158824097010050107853091422595124664529833686034159264682488077687363871756884188575262684974433586158583140156888993125610282415886562698092632824699285685533500162539696544988902114069578167534158796586963188484257253861471887010423529739547850476211528307222903062634715840837581088006666515398075975136780743169348267863033568160188208021341219776873836637208857733438917652456980300296204300428087378253191175689399195712632929589468406944778009854247284810406050477811235757310350740797124499733277290252237335416391312178280841910331007476932976077086889351096065402423051959248760942983341756478685764131352887943735543171945655869336624859648259119012931120073961505615108525766135022216371744660086588285376941987762046847176138160744041602751095077205662360665678476304534098629419102697284711226337520636432256803936390972722825833252949444340491393985210400087333070840227343862380548402720781917238909032394319581538961548908039145096172829064115903516039308096606133118591733987912347715893155128333387884609689903572225515178530666154030479207805220185643557406786315318381667968807776920165369687567906047031377951756353541586533011287891321473424172372890028732299338490403975931518085640350079260835335367071795549520230406447903105732545888024286183543147817790710873979165302686866036255063472922007578475980962769470682891879644886866022546609774492114391374070521440183571067872364340966785520236011838570128684222123055753743269308249203637168071133621785769798446560702554353812518489737649296824947541968179438355135037462207822257055878377420090076008698499263013496898617079487682487376626308290330099324148224497118291589369311753716158095275064017242404158241287496653510620985117498528342194706994076870308302849631450085771522342511762079604885670603245496478089623496952401225191882490746586465842221655282782739905511165573959240878749987940796413803962787128151719192043824208030617892591596980630072514316565556000739325031466704994359988500100470854063997697744841459249976416332767864629814387543108787546049129549763451734164255996590782149004315025319784054405819401300170783888988230046510006891264122433309928563231550377097619808511678161551337968716421032332662546177785279452936538897718227118886377565951271827523240986268056808000626387966072878325802801172659725718045541855082530673719697489180612838854675445045628001220112496025669664605801031803110431175979227082754929250996932653067766034729121039431527742693881564037985871659576951306114859565232193419660464239691680855625529974233071955712155495350694718750190441300449820872646500114185439955189046960369362145926571791920804050073436614350958283235165371561564879089297085949066655394709479560302144378591224027583772460220410139290412098807021501819452825439169974697208016330610451987024040708447315557722122534288250022980527154326165307616458777516892732593885025752986613336039165841409578886706004850113493939829189784945485248021315212691277628637163080404911439575833122320410737062753502843248000243217582376910574298866954120759211747884673676366145829844362029707098263468498177263249804549406808600370509051981548302636512962550411704481480413208610482786273671980128505329828242551663374707237992613112924755834072197762008792461771868650487051367724821197336403346159243506404799627172925139690659156280301353833954428068334430699602157683999623638659791312178188528325466971672481322191311057768108286575549448776530336343332569618440182913988777232295108679636507904345531071725512630552265891241485417798430970079923227060945820666430331797896318111958959372586993936604281662989385258230102890807596308933665100077108693139050329335195323994733487112618435012799655403469623874766931959351955405677335214117030045973338238990925203415344456662066146187486405254140608883805785143644848354620172268215592987279047409903112558855415568347535428498947179116141037275591439708156466250711271417596907570033762240206172672671829419612009067897349964625211854796450606994144690093475606177791588612775896091808708165320105454123267239043410695281554452939320420706199093948095669240546373878362168672259002689199482364076651395499029604899086583646432482309352123675007035509840839081445161853770087626593664217001047137816279137814158277099036055969110636112966398396525691721292663498193292964467172372934000402593126678235366902185650203013818152453518576536756996598117935173152635302192230146254275191087520481569130085694402993850995234252467538191011532931973587143782222412467747754377926413726856375944894247061904490270578502415278892055279107988054260553225929625723014754647740591078516075735363902463075541667191617162657861745665354713321163865910230819170801873724268933076588627219279980523117775993919381423311846532440470789981678562180080696852854935087610699685330158138383719495391686445710210198104281529049278363642221836915790764554975991706302408859030707200972585680367748758876636269095835002707854081147607819046589073628708928475651954729143670731132345566085055379585794131627426948989394656567425050929627745944943518485416349839590750989975181568147420659849572301895740922592618818114690576807448395206452554468220935692250776521822222990508556965627452795260650409696287743563516735801852760954333997297180192256192974837407042359873214377508684307686981589348230407419051014912080731700165015637446913784238255558633973849332432470534016115000369849019002093623178290133022008686208202820511888510769084875930756121411540420881405556613618435778690237023970122772449878655694656219976496447483148068832926440960736667214572549981112210334864805734205002347372919152815766045808147573417543719610731811111824267912490554388603357396924130197088210286268628160938347050751658633982409538541394031368868983194100139247689287906598541290472569787681377699335019675300757304926986275527689138925984695660934064161963662013217803971070027807967193974503753487232751320346825507241633630372619701653931659543051028710467373925749179172482123320500487240853976130162889097788109881094840141121929801369995462425480112593973921620562158840337151681375998227769766982533962891914586761279415001648969796338928419039397121295936691614608098987586194192716385596524315026102411074030011923060014810801271728678757566931715930628403092118027588460518396932227596622291521822213842155438031311969769864726755376730854639011001158648828534415950997547029383911584389610430370687571447478673398699674427289661810815350060590627856826530410993620922712691873121204995190920603004098913777554102676149888324857398823136325433420338997675333266484133898021786013613718867074972819488549418038972287617566450984133466053417243390268090213368988396511444885630209565243060359932054887171694750488560799051625759862144066392846381260069667246627267306879585592358344225659701375069239787136798998892581658572964111315862282760174864433621820913615838650745682163105022163672000517889632236207984710883684640210437696260091332937846156597182055598100508663945927220585588709277255313649694434064342560350934495464517643291724287385591823477061290546712533600098401214476457690611544245107809779753121161181449631989732604283172817431910175650685868015919759921385988486736956754417627559059982325408200154539453457051273331794315411992087188344847612014635380249337115496421617206655787254857208315895931135553856604748651639307653224744736651984493161221361495284395650707370084697778497958909734142984536786449392130756060022209777937619639257521421560254514084899363939634556948070307818119716508541879332166432312350310706636951741680483277546196749143913855931900833933596436777259693220329548562464433591086641906695014960016227610642144514958941459273452070343256161481225180208413701371788778530511966381097079977298875967979335646878919431999885655324012873021766530249698236823339710760327341905480009001009439284822254989678327863911563531429477675106085569608639961798022858418311524452676749648917508351772648282368432563680035280542487311175097588610138368253638861118698623657781463338010620047522581607736502620755155351768318436316820693624084725540570343365909850412928142505330353030855601857184408058322668630834531531049784272768096783863879739492047775916611295138714962486200397875899765030618342657620532053029393321529045742620294061648038069055005357679333940210856381374538903009899251828197565978696819066742914688576245872656639209888618264977664590536646539825122647880772347549298492966530781329625030818711406315510981657755250694116299198068602623752278353565262495537962081645464748204246610980376879807805242053758645874321626637854324036412483916636378519838156267897409016073949817299771162395289703883444136506167001402454432813818260598844914441327096842609080713128529966206926115893494362366739043517009385117667101537435796903074994436518802526260531930415187125393778986254710558475390567377218201233400861588259086367755147249680453955260428439570702885589720965847232071215276005928533269206380007346864433828148499515704544150182941455325876163872353472758400245425079147653821681675917456370998030600398091472749677248668709509901560025814509154090506074520143334467118859193254572521806290869978412444220901175611273097046811713478319162623638767918798312005555285567185446924921815743362850099979991431359116068917863843842046574367972340083048714852762364120102230390049628148154397626168134838259080615404004690272031343153446862710098406143619555498094704646449078841201360144366383194377020927827161503428125289365199354311176201428626183238108751346734189405981909890664546226234069846685263455516858968312453403138572949258309201167086981489345986427436757939603367778510549944555122404332565020313228628488714259795558792156118521494266889340923121390207320695896161070932733065372721383235789097084216529962003290607816420568667958122446156359167374978826065379756799347457007148861230440493852283189738602731557632480464329377701348727561410648122486447486578190924952949455198319081701216385735517803556326709412164876245890603981397432324876760960714458120219045962061611359893755398025810085296203797181221526849058900504237350007662099847329473880293332070248389705443504807698396893393597579381726492787051170805636448110883071716139846782175969837727929243893966881361017055479692304328145173782824351163964591062033491896101537555931656028161163788904390924037584694135552702604033320206399091762558272442666646565384007297392726218144896736686741169594835720894048855556117880118464838449660432379357539572397674836049027697963231878999445437096143373679591261535594506404177047803523991092804122944524003436102866317917258536407687810395371491899493641802190829586670350916986749620883928517497507294805347640544259624518392402980756427300837016153920811620470598577314740304815448154181512370781531732268295049987245320426105157047602405212622189548153464789532249195605903319914746774228553185141446732172523390396653569895299040366791924592457442005371384904113082048683352795302484219972728374682061244116100977868333575827232151178533815062222423952739639566834728711246721310850320950857814328730352359928996190310876157303690956559002982711599411052820335788027059580410903589457032257005288580929442778882627401726235745551922438621612461745623122286235248254114741435139050417777061268494430798274868036095119725957037183096381530154527269975007900471344088868398963345067730912541890869317128315501920379676492992326268757697355649751682551271673239884228546514973414692737654191488614165249382559368675879843257853497741405409980177234612146226367380442407453872439244723812646459879260978939645397742115707891095589175665322112762113079006250131137355566328339112729465336681836374495859993759240018349255155592495646948787753436087508269973497001680331055177466762601205582399966520395103737569927201418804960621681313459434502186626622211805114105260223965701425121564887488191313119411823077087216954522201899888937072571363234919849603139978784172790301335028245697632121046811512634177462753136443490575529123542151443341531624477674573397539428877564417783799149235598839370794462463374099740376358517364647353458460853421361010818431641936861100427710395365299650446952475451178436505415363235100192918775485969042903892111662716254164998830471874980929571325477928128836047287263858589401870535057833549883393113061521992905876994413900123833565927157498680817433579377174746289586254098282233952109851289999286010471024287239353244138121279297940500642148451832791055697630270963657225719338375666034139430050094729165332862508501632592724008261105344534664648251786818386987068718953456266443578671868824358073670706081425069102033532166684727935198879515161732320075676678685757162950919694404425358229870134036910249592489014287415254327413083423771747323812750351741380014921557383911179082419435277867033932566929136016301477402714481264805138357524516093798085035220164739304813378146796380333003129401873177922728716631552390844427288072458982156489983196683977706089546638606268827965561715053770679608730944783121288556813954025352359169974525608878912089190853446177175775773696438809516431282559297434961185026255119757566442510886359183299865794173623634776307653199765563070564588212796481422726407153126235520497301466225463021925028886135619670744594552748067853772661084222630665495908148043535906910310437488097590278324672811118628080383975461344007688786578099719511195990661749484707959136507953264819841783307083609913081869306387895363727940173608532889953895411842647807084480741159011480401587607284823071599507091309621124296979587194723641570694400587808319975854486990434000099532289746270687088187668320029547617389472958641675490514617909121106284340107571028278232654855788387205348435055001048280106164194004538768022732670114018269717444200573157201255594480277130825504510327257248949879440058105652035029794051232455969932994686948911400964872869114500773852587256879161379317923545375767299264546438301149332544177811810666198334516529309271940660032889448848781750231655370403727586648026222754099789948621338174748569206508179218791007913233984399814221965232797265614679986265589978998012849467639055599511809970645394190557588399553647804491023001563579981731521065600519531769662420487375709904555798458695000775647895256160235920149523441913905935594803838606186013687947197574250101645955048959621447316234216599185881580065035872972845964311740214991861458651613155181119107777873361426590778037761245079295201354803680921001334551050898746406893867410794932345633680752249048020050595477804172396545369597573080608379739370629484719969191209270361437498963044809120612260228503023326282977270302743262874469223715554433506614746745972459555166019882268538701589828195333731559028827286572465657351939866990409896874964956027486110850713698775138297239548035148643230336325496605817613595294879523322135003827174335935917412314879681977837415337579928999171750620680585014547132749577647009378353914591177070806701656139333257683058705450153031871331897688908170595358648045937554389084005604412753572675856692157073299338944614730923824857205572655825276438090466534429789239526532556870127073581428969071774780679290153286148755369981951171272099336125129031227107021591223983086274529954327679645071436725061858417143009825728318378408123775088499758078399939014904964285106211753861632325516835297713548787980727547412795944217226458773000995646484767276778782548248999421004973743675857821628954245319367635649382649532288009595853265577005717948433216332675797694166582532982628406110393721734783042727014962495817097203757716961316799804068985049517912227002880653931495846840485080519967603462086552491422273562290711098809123147439821418311558413180880090226872309516329817269067637367626029571995347138441649310018927568387823323502322446230138396404461236717594601861196082972294358459667662823839187921331476820769472054528340959616166391393762757547964467923801108467163724782281083963385278383304873232663700681237433493076666548212713460202304638098269294523355494113264942226247725750880362207363697507148210113763294142009283465207758326467335199711195890445549391436699915478258981950144560085910749325137198118405737846271960850251331077163346202527439906883227252417204129683092222207842812450458042620207560348077005740018868665590295851083700135141702835802938170339804616266206500843480445163976362528752917109801625520686225920750209975786348215743536956971426308022259242892555154886840969335820082728840894369667532788534781233791266484790682066248508610515282262137629480766016440498518801902190431416930764405830854045261886484088839148227092611317311215693491061536057634621476114964276559640444941969315602966135460564908924092449589576622958779168856366051711145797895388326768099997992261481074203587504123636936511017985418407304599505437958097605798706383991046523359894778151850816449297568386192588301457615486278638728281973166257133904447411248710886942568260446648770728778020881644750212481078541309949090910354234841758815009915790899268228526027330317799249576491406848485307493511978003259192926972752320730263645638453712662349380673506407221822249424414555182370173787055219539294813698879880098500105555486545680017038449362309191414800815171208290616766899581079200220095349768213691723921369307726710777131468733102129880548729161832883842950211805012952016324803968524792993808131558134569910078908968053017000208312540210207584893746066655848982423344295995706667327219096167749867667200170124849159560737633199693272699187149423617946038295078732849623097480167844305884356810570138441263639265575431502728417882692777383433033869426171263914026046446732772077964150760453738604787978309658356699554048903668641737230185311937008960304455877955553698074469413472461624647271703510038209571581695560309490357457700334377938656216247474871454745765079518913214382275273902744521998652510038236106077402469391506105874907168475286302187778529635837609234043884163566645451018034524682298874369139526044117348001990437258022864888775230241612072928041558253828138054096813306420456758213525982573968360994909122326030082798754666758493055206317203328065714510164756650110840192783644157321306657996186802623297894443721744669537713437852845864313303312179136715804720155031706436693343437889856927401303729780121574807668194064209620615563844602667659046330987366727616639902899637113859686709327922136443686063443654073008489517679000900264668902522477297195496883472904641368613064287880366142040070515622106230140673875857560903101498081912508051799793576555609264973343153824596677085482510131743963432378552519039283681423955627169115095862531451137300378209055045844216861359391815238940078634746016009114196981595945293757193400028985588843325206914867597689919368692521417453927387587477317187551113320062268596071413093098185561442460608174238472381049050691436877181192585916290125845284218012747000391817531658572890418964350960126792858286459426299116204658942005406592857854911677062069913166629581038656449650896579180891982724248581058050637006134922731511771208132756051871413152196375429277399832645340773856395296478741879802527032097557718475502804439155099077712861949595221232142044287418982037588273500455514579861522430886652245993331944175392019532041200000702289527462877435820120891540021645853838762661249016979045093924209843561192478655551362525322271551439661960862931508402161631764752220780204594792117938477821695818022583425594291415193472918978897066481870540667187537105576691868817583513174220786406461255251804488108423406042708684524638025591287179888154184676601015797339203914210149307994772041301880654219568959662510386150621145125622316191195239261686033911807987090892304662974708414663664551028620680401650403875703445596129147276535351058904341165532626430388063822871961371333251110359519013494358797855655113451591414757639458652626964501362287046694591632996121511793781004393531749526131460002526211276191934677855289322247332184322775145584345541747443692030443461610625713260274213542809624910834846498783635778318000508816844345924871558844699819745846710552253043558343318795123713252929683874334855445508739595755783300992195932245267154186517711922062947557331420600305480544883583239621205998646316992300812410287064501310158940363233405946827587945718624961284666862425685728589013712604165674298967520379360108055970997054476164794564425565752369826788118885289574373257494877156949124778194084255954784244470532044833122861353938709395908624405920372579482429590956731109826886517413277651576479648571908199875223658293475512650440845220018757159323913621773035112761020399259443195614445014895070986159057952508560566545626003948375709716408684555832447268130871185525915904492741048843605648129057310716951670115434382719433474824815458648536391087888904632624302219062460788863723191319707015434931269829386019555376268483664260391704925273656896283001882812936763163291949641004891866665760589600069421555151159604814488800450893374040006795898176800765587811599437283107180555649251617349043335998340649544301834476218532754658212014280778090170101491509509607034737314668477879477192275708108842825563331902973566492878321448020275169503420772217083015694108774795018229553161942491569771997001445227695608506540075506636087017652971029784982973648035638316586426275522286399441379477264071958003645086644425014267183912122553271667794685930976134373450579548399500839999258401431411872589630729803177660267662218576178989136487463760982334660561786733838466709110056232597695197170363253216642332889093742320463260818037542216907078233857053904905050843079165319271513831447778409353312591874693546861280560865854210276572158724527928442207116057445806083103505759287431128633529895336546720176710460609007307888751053197402286490116425949893581048896054762647355957278296310793905749651690381810364073733850068859345907228277966431595211580326823863813130024589638706209862518065782739393391058649510904439682845054132004810631511976283981390957120559090836691183422300330296411731312098527405516714413537576828273481570406012133981895429067916023740062141605320034771469661500168809285843452385704805151429114571098909891040009407406819879034580413743589187637764511276561093781375139688479144982169435942966985670553005657892907078144514097973848573678380227868740150878906824082287785778302380939576486086017760794580277975394852252755607653068677681866947371888323536272209111564807641367859382521376720962785438502479438562233402011714144402510669122004286731778767854101688796532438469731667850502434615089189421869199894234115916828381234283103926413516172240060491247141694598710087862325986521631043388228596449886756986399050692456774400981095993161205946096463719735783200093485798113206892763936771000153859775787763434344625574984887298721137653125037995037545162863094508352550115899481208820855782248347970584415830207806455459427948257297472216284108422313705956217006686572844868331528869987637203912458304866041731048195922648514668596222196946752011218769017633426214298583568268010306640035874651670322389778075239629928378678981498521631916900582566499119264742820689559806372836038670072051476223249930456409702171650086061697431311688509612213029814294713182332093446547554420531466707361342810675097452117021665937580421239550041282936959831255562641711794534983139393651083551447222228523473013454887579046193395144978393787134742275617324505513002810325708523716371950923956421855117181524931548885605292094157766900042193601891895368804582003063593149465315473420681711735078209239646601559237550400534781205155791546471703700850384772288685179569835515951851169266891283872372760416168512485072597887085236728463836277102534822358621921146423545484288677916003263633159733433757248725493063980693828698701135439916290510074690947819172690623938869723669509519471335146347536178193996710327300275980690911993805979610274203428741077723873944674006470041098465348842276711982355510492131147165439293307910044385793641523753524113447294083022316287128682705239685772344072025192224150193311957669552343529423793080572954824992724075440111234367051559787260272141016379345263343789031839120866545572008558319973563179867191428627241698723701463081668796861715645277122904401101883161893695576063183140286550369721828768002099096175364258942958531400992769531326997470899474789037190223219897415152167313843856905968113253475927491370903028540086379218448748562232495163014758985959135733684046536499589265968393779392194643776524763439090270092118627677384771241930238803233619702391210442122762349459189162909406935588855106515569567514821761674473911805997213684400993848456351163016490894713826780502698141927729688428376095630179000794125120774806059832341179018663730694190166571082515715455412646074004822770794055031632957711481746947468521005217739857139448342804592404605001242706133919726573493312059372988819117102609928936775570185254454522353548375331807725729024154459664159992565367306471778843303391809770602058660428858103984375912626460310586891425355337193668496491751966327346026856649277032893182940191657282723313022926262981971447055515245900635957641824471241895094867703793783718899388626928927192629326689480612732593213249559871252698572290849583258180057526892520204672032496131825621199660677921011958457265246379816481245448799636657972205225795665457472579009827499057164815851695630785820734637094591515843212460471049614088320674205994557539965240601462859365217522481905988253659602069850301272643121975513653460582918945861578532148756164277360797858558058838736529628042390185330408628022240183802211160345465775330077143843880957724881805835088722734926663305298203769725890789094696886781347758556991233075150276566053342270869775060139585326643680056930599947311091631106077388343914930439044552151593017265422706286481828130325778913088610653394111612151645923028076457256226851299467208749426432965260992733114673801053909935597566168090979738889018815526343841346975795412272828029272417648297750839420099392565211696008751961577827538101031048125470833025477600243841159557379714670176617719904091205455509141761282865342217710624523674349201414504943597754689867490858711001497344534694994765225732950838829887752347189601250196670876855799636991559600983382869635412231164875619099541540196843760447901188234845535442106649930441644953549808851235371328154639728564165003728232780462374783060837108727175783093247024440453979829859684847110285018608876801343230264181562438919295692941427710694666674180303864368161880253967029430479451313656685596824222630874973185790770383492560372874950049979719224094696509223412735657682216527532924502780542099381120926205605587977591819641275286204549916709326649788248346978907960500012239951912135624605046086394050284262199448986093965813183198839721258908609821071844109539125052943205763375197112675626041816760925049038358299074694367415257067970524076412317791050338044593473350016359194592440304177325237396716161868786476629934474934907552691849958189706055985883529318793517539119706643141537514678290681183477699438625321888355416927377530068173097092843100971567883929277473724161298534782989132961742405783849202316716706508033451611857345937440500082682162968856807880354226384497272005765516386524942915022615710537021571749863594152718001002932343822477835170263055910770742759790877700683323899720390202234575561740900157958714300601949787695296286030290470552318116793632156751516800935098076912262967104046172933677247923951306210135083903641769770676095791387546972309771705090951685939114543820157066911604700761430756046669433200710710368389145319987259195534412026915582565360185740688951801361032040136959854016737082451637897637966794309237987150676379428542249360175542944050300925245744942574766627230354668028459010254650185422030911061946949429881116556326548414557764925816068892514362126477024522559128961239521988828879980490791627500796651051645480763932516100551067947577137765967598962007244290804854779422272228523044791404058215206935834510555879682576105267710053740588457816802260313874457974504817415677811474741313215858215805165440025216382858361662349752210423686709402902380007294063491153751394265549129577486089530773254985577482770123057711745479217249362952247119086375788729090896897077532352483921074853940269679843843303173879591583543434884114312905908704193211610370631423828792741392944791097818234803659525211105663892934356843399522559879479847085710976006429091761406908845634550038064239413075306083907479765006037295786500156774704485779665063687098820046303474331827579492357006413012096863791221570961388845206236880780058918229216038746629201403830386514029983882317650056674228495883182011427381067733330420591998594262843841016517176754140529862261724989033918857538263298505876430212593773836611305418496504974258062803454307843745686805158877002926589729086826849760025585872611670073632989761664011854241450573585098882517776809163637016695063508993945176295106141916351782738708406653519891674478043007234024323448423473986573819220269368889871000861929721745392097053013705391959553201547990056781199764797798924681972579245966799433763278224904588872826740992114875026891420331809211940843326168435465620552808446702560060348942190482978400415987469916002550681810435070405537227921119351589480978362922445956937565287017990275556086634654888823690340335741062649243876989482416687049279499331315181845029984523111942688476206757838097167720313453484741042542246527022349291952548206140475728447581094362309480790493088971198516792024587908468357116227694505163481550940463134673923428526348306071960194614477151528353703244569446073388702240972518925909343315849453336989199843224562899780131391520885297561251835946708431466283710938043188517685481457615457333014775298391194470040072233010151001230055199271352998953086259122407942630854177800769206356735748939244353920138495893189880816297409676356459805825513481724670531641406041835697935681043200705089122396918152759273910754051291355434064288407757828466385778213729725609766283919390716631472473409367655522993895331811629014652581670192093917291355639460321463568334859909733609533749523629465866053806028003607279651809163966238314804837670086780143921470040519647533573444624657477092820289152922290768713098952540251526633021740415956035199868474618331593633311596883223109549290307596873257836723031938168003474065362409549064545043533713110339716546270542877068319263798840368505570581174929917075808889373137499238865948903027647326538725920327120951880498940574718368284123727991450426930069059978498010889276318016153499989586228223833323454362995416104725540319473147476157055558127842576359851163682467225920098469069431186443384951174655948675443488341247838414916866655356640730831374294756805560240872429416731020856498184811967950546323962679439987678650598130669963205403006537270241726456843076561622487073593351695002997584113010040204981845264348792699673279592311470092034973364248950666567312788724856459264647889553226344979237427946937588941347236215817623980584935851506058398965006633755533589624642053639551363440175250502129981672301741920454808133913341595975330601226057625209127267167891740021919338598342985754553975123164074537136081182463837076087099572759072038162361346081129793066124009075310758297067887308375783412866951097243660962715023967065630040431526547332443296586687264983178186814302673158794557838065016268253404621667201092548318568290368559913125444302835972620701447117265200713158679600739389500788620969316797638845500357605559693024325257597832496625782357869459132470542277985364863479356696405981720029830635393720597618567520394919061453585500227779851613114436399119138517487017870160518911113969831432768706652583832475766965547197760922373162416098945408897382812933573057363850595939312350404983153463517099523053565993972830241765416878610901895159344592708019548470112284699175783798489928936951074069822765087463542064008726918908767151775165682385819214271491262319659976728246670951485428557750209417874600691323257591197393464987399287056648681021789277363491484746597152973689454887821576816490705413405370072231508027223309651500760371286457897464496017269153500683372767407953105711688705339453952814117298033989313665614180047800009801297305827809696632409801344981888740376850449698314531731205716555786768520954682284701283881140882869540102895353321267012489309300709781567856171702350349999998098706726058917802701735853324045003268921807038627778367632933408378041464240042739258341706463464677958906763664410681903602830914906899376310263915231775708608547500960302891810914090240392875162433898545188967292299502189289780867096917855893151097217540427722784426953157494870142274991193642073773627070931113707700386435008046814185272953229197390309448886925206178990882417781596270766519196566529323904091963338064500866296719973188664077342386210322914519613960520899423531044220326231275660706748886690544263268825855861713247501898173640101856074848297882335341793147981961659708743057494557003307688879181122385597158773177317270146028726433292895078565176682756474046281059787639258955949054440465351812486288091794953899417576767507287009713184900540659312886881995373165709971285711233750448044416377590747215190242176609314454775721038120479293671839647282821877747395418338966566132683645401545251922412985993521150914318347413217899167506161390870117141743966079899184353522794786555548660013938248512688151773758188256840105048564269008132622273181996266196768579161392596944306565179238288587890475623450156033261570321672767286595384731532424278890332963817564842265613076759485663291073997738137930318739008123696526746311474972867534649114077571668108821348805740919805855889938507064948858647620897684292119668397221773880477505939647093259987708216650217495469396672545158843845511121100185186061991650242427165442299511419332520343441608301551809789147726443690513319970173838538923726102887736240086979859268793719256209024675748963374861560967807847544361392279654104246512413165870074446397441189622786647055977150341642052870883242395005619266286446490657682457682962647825631333027979369942347941175427656365125261991546123582072082964115112534870039658503532998982628049259663495506601638199812829245995830018481504529549484491471647269934984663213324567455929380929850475483518167850482294165911186844296556952463053133705318958069878076081130724511761211821115997709576103076589696603845701197270280390243203828005698416722498829464601007800228983071054190753296507265573003661788780493714198072898234508695854992056241034551910340060829446821528628701633632759284286257792998065910690063440868834909145871451583853495075984549118724768047596907874736647531329678602830637573603374371772237424754022270314975034857199008156582489479418383134424769511812147747961117424238562831932454815805832985916738436193105981855409592616037624506108127729726550006591895868362273616067878698454945268860863231582887903491074593935966734492518580389281575281035305479729414476231755501032208614932292591191311725852971925371536201294973401002365660030055493707569669267634478421199202045449032284707728586642446856216652983969612982425561253874383950746801442923401518344258087868214653970042643565398670683355598807805457444328012068260635007234032070573249688274967904450194145387286767582595613384601752199817607893272434097408155494706735398398303143681084504117289886779555883671318462577010724879895134737059734827298922891394876748017614041559333887923548990044908277965952726740202755869002344829651460211284958146286769064767212963281030580023534935794973747349295911257271180989587786515601694280784088880233370422247274435948563589953699251900474758974770910772814825068513798788223723898821920151971716809546115068255040617076472764706600644729384107242087974537534500645467847505124948889288214698718997076897809657489417261213939599092253442025431553134015067567449609220440183660731333298741490108283030503744742557622946343390427480237925097650965779832323910004909823247679783708472907430484879467323530261403862947473549990701804781580243197578740787730009783946484881548353900399646413222164760114686885889187100061094977494542193843227323893731366704581080957999787609707233395814475608516911166967690891137300223318269566678334096959140366027655940726937278018227597405312570199094960397115273335502251577912203721719346505759442831180425312993736239343519762475576016677319786884399363873690936422494647987111088818067807128681048406432197396549782773044915529013254087335152520429914586019209200516667835219046229920464930279794258079390865495570078456339692915089746719517949189227219779558737520219617705963604409520953306806475708268981583541120660257236384530750663227781273965075421792877507360286337822108644116242615898641506767165695549364390734706052741712565507258006905249845378346523351610189023671063143092227796097713425940490477779499046952264652340713176549632684877620209719083136274162533850752118118787969199785739358896049263464524770868354230613206743207951478876131059279293348022837955892395280483502348611407327883331937349003952891748497583864751261455350246781847322820578046338951453967695546382162257635967025158489391358989677646753288191601444585384341066062755861293360551023015173681864093332572923610966215729534392921256385774288871612337054581773485812140971191898243607225214884749905426654481727741143907579158198196495909990051534902164028465899854806790797772066747737558926066964707362578876387532340667053666360558772423480984927446253842210411431415443764788015871329794460064752828650229739469568534064203177674059730627119031231098047478785725149488840201546117069712010997786906013374130591947787507441843567174600290244331084873605770638248556543987549351764072480811966740686893020282183217445888665527655443557986748407810611781830445826208423987028114442051875713408152585193190715182082701143748525232509208226819750583581405766274860642182988303441235201358494448318399483536583878886250782064643460345430804604692579731809009008987494995084389442535608287611698094913657440282512996740819047610838468952321791972260815557101703482190718772050436431840326640932758298255890592594903375916012944399736379160881155109906019793430266838176887579043537403395689317877269576120017141973214978697684382678469523921690646304468427056146109222412779621459092419895562152720835105366546807176463572929241683980035940413611565080420336166635814866723439098211069028188974157489297795549686036837192046435167012555425002807870807664231668335385097828361689436432605270675077668970253661348325225791041941996660943474300194440751447456087187488639666655281082264586915188651065398816533309113289478633296480229540297386587725171762722634502754034829199816632107479284964315290342367767931200072186646505503932976721706725450484928876217375166305097542153069016343830698540818256717839481703635015081220402789208284840982214734022416019025032720865116847019409806474655166357778809540398361546568655349097962033753653472037033508683295311843212362738412358312228576316302869315371945723245615105305822397969205387092950575892545871619144393338511341080703402056083999465531168325594105814770609092890967365352621639774312694563070547709545782275997873473524837277248167633236489913023534750199564623498282274491267087404273810204373382146907361632083686490616841749929578999748300402872023304059764578865108609233387935727062360564442582347952919849612377840554347103763783135633408836850769941492188957870235321721825657823012572944771935633802527733917409248305954630387099579800077047616943496997594003006861005296246110089227279448715554811389722051960294729662904993935975467114826580329101446826145290782712048525398384290591916530280019850507897437361245631596948553984922488672338727468683394845546157750387173654270110376890983860074983138918422025366919842332502475393327727364845345078942333491447987197916167814501598739170263959871423520204347125605644279698089167769660491586027256539713107665694758679280612787441142780153173554957616233753914599489078126976389806443977198870298426734445014219616780319589730456323155365709719864894003665152199824553295484467928658803996098388300058196455767314710100541367177519047245576684764601336186115497185233361604034202373718747038180129928707383325706155021486954789832796028220405682059795932610474101277177868397968959363160266059856905817675025238646472544788104738577397603296426020603791047101203842521544106620690729523942479593866405287995436379930430899288272238702060739947499275941845681742587952854143019826538727771682877577466687284920531040020642774006632787040172013390763097105826742744031694911073586586703185582538869538699434325894863026108541566260136992535236376991460916815930189438183011963915675009248613032077000485702344252043033449043074453950242866984384897278578611014402100850390409584459821807765590013967879680257022498232115289124170316631075568212410895285276400484040759099995276559100527210308173901970162832714217453876034104528398670411764680762877302014015198285255877534204548713598188863990868037129827668762463504586266853272662803082619165518447601995777859106205166014669304728031218404086717616078396107971000761943195218977327525496648877022926712207476814495353021215911976188281717479540092279880580415443393622634776004029502325899039531021617323655553484243563231158072334074644408955696644911494541196879420062652022895670760476856797486252507010726105430391434521446044181668768926528987596785361873427818028898800045283601977925902023748714527767178589591168089939510331782131677058270668158366640074350826528052212614878153858654593910921574146003788604001992186122505547643148349963684983255829661208398546525975617121603627461791882170474980887526576065720608097036137165916887567768122186087783006742252215026949569314779979781018625664985096059442471887393816679689810184540537127824006691082944183780085900223442299257926061730122100048649049558207512969997844386552028734436445101782466357119467972103257911737021393502088659088443864114544385057537149414536662709062103250948439537282983468752386719636420330402549124554630347580867789293472977061589271561161692896177513887302290703320277196550698320303077684979838170995792183442995822115103493821253769207076292392073053063846402611354971393135961739168680426518131204362333842189478130797799029690788381467376048167398127135166690641267446645433595963836144412801731388616300915369701148264552269979104507044771122130480933421875206159387907561623829487749087719885231475806266495927806658783810223666289970709169170464903533769641165518076852441714964339610370508049051393362539309541900243566036123132880841573601277815015985556942943990264084018593016862111920809622494376201182988741170066311465316046647318224300927948159589547602351041170474809062253144246871921376916955796057655547241858789103787989629716298595190431345440835332832406562461840942769203254996236211715407938989082229254897875100957884836917609373201063150788232803007255385431871953734407069621448773427004955933891969157188749424540462275782815705403750438864221722909469761508666032786948464686195279723202798876499430386838900863613462646263581908000162696925516854480094307098938137646954229486891561096969113793759073848909048864032177623101228892110778393656087986838907436432488220693789250648871493385800288694149385798389731382187811118100348742783707460654044889772813201987128418168086971844662726141578274606590154377357137239068356702108683742590275842714395417898321101507408581330789719423224854581361423383815877943498274050816746151874967816906625049135538118941929769390259076449536469374646194317495690102862165385170780751471487020444626531458110913828651260561903816990465113477512705225949991230844216282431594880887426170639913451320134680107939409488219782837081374330111365549979692069643071631071859571879097505668089981681766465227813463248749358766836475891037896493435974856105456515792048407689746324422402410732991114627312326028072003180330142702775537748705841585526455703652511953907591483256315497226679814389131438108621831080272319477502234350334390645734793273135221381927078883181812297687867780696343410491554813281950432379712251698151281556358436240304780256950348685405334194204222863976420752025904356511762450984211925327691075652561227479273079850061285634196361739124385220441533729417998316336501076024069067217322245331808109437483782923855768992340202711936709737571700735107997238689142509904871157518014790845776444844637888867576424045750727971241222315926168302058374131015145824331822127934758383500637600618099419817436996010004184314873535942699410039515795948561729112754304077635118030989949295968238337752787264457925821257410645019558461657616812182927566569313770337201780147653382251186888508275460532234990055607240745666375980325200957810556091838702205078094783462344138121771936842052748264556047247932599333696787476847914089313757899459207087753991494410002636547831714234810119253363334047208908506462690160546438777869635188043324030401953605558854529630617639627917991086043681281942578814851829575087295566688292597114525548866309647538296606247893429146661846926870813219390543004164931183371276177041294074968103995085351244889146513253188487552345228474772917161179367985551619997943110570908920550009658095002437011650174826948632349119878312857461422875455468556733369080007581026420912192845347955815872036272478067031030239676527693623528307833048842583977457224476302764440361058072398447440941900528956318172069763905571370575788187379878616653888176158202965586723466540460307089762258985734625278457279895540586116180432780360143012413016174698867497456683921831025145163581656289127099025800162799855614411575793853859995982007542287728313071259175489798226561393167275054277932952185915325374840876159514727560111042672975522885621031721400074026625385186486091364359616567210679999477072137964476519545035145043293484466493037730355783363393631686864999184802697616024093766187856684060456836591048694590781028406398185189943379564946287012465275518959168968221447033075409857341585209767347173634034898702034616602464954300658265162355008903503856119018738178343849577150563857770697475025781848631032052544871511213792152328469116671029569457138081681434925899540655169793191292375212398677738875130259220700644015666729682786149595129392510496840915515145955402360962673636014498965881586469615478503357788259592057581797011653544066826604533796293052075747201601894364993674760188876330767299738420100324165778249725328815880880048293505354561223165834855366420056350517656816202873653392934272426549538874916691674577431587042665231629185319119008768952425133012785721719110453130808717529323353414052706282131416236508183548265674204394144116651823506646297125790557427725100380474783353889070203749531389405660282949247483832556433393632337764210430675662691603301678021015449183068015373875237080638736631767935871414153432230913163827989073674511140519714891849388155013788490375227849330257782432229306525715061145656565006739899576007661798431566448798979402026291491554918985479038453558137042228767919978101564359104266798133143051992750981211934510197131219370968919384087214599048088254805480385005005685039755823700571312024289105247682056142811499245080339044591244633418869870442238041009511012777899492984991177758290703849665703938652381561520399319950575245261141027067576593950610419011429254907212426950974054883768385016693463546426583611540549677259729382821200389504323271996925314415246563164441134596283590446116354794391703609952127390951864208019547614707870239949511105836506949760128504182716466873573147061787503176026423817064348571973027678302890452494362747902229764276219496564810655984412850484031672052148147820576672727736293345314682097952969924238499614606137650767086952238061206619739312269199532893331563497512800323996843645564912805880058975548445906858214635963284328766755235434775787299979296816872136993704041508290649230267443624551503871435010835448386220241363202009863927907211810840501866586096771368123763420547470360609529688088178178230551094763432892424162216528456081584362511723488642991753783356369601807903145894801967181142987318447716700409932034249979295050087049001041659500881903737462177195595653770534670034475407057416595127922434308628129509868899735267093451080522529473371506082923845333067959592860167418980329008214767385900907252289192986953593891557474627023702160030846282212143072212552994588671086899707714062776520407522641262067396055943394562118736788162711675281977027455296591504974414791310782802599483296920920920501160831805515600929550763361170367996113955406884859344609994488664462747112915928665457242150144709184995423747838332460693590006446522690328368656834346117543022602884822287352919909526214140210023819209619560142731847130537334743977930681421967286262749395434245898731739430633704810814079590349136942288214484369382657639809542954462793061561808947033639677672569785841435957393559644895449934132775635501093066868915355926390233963770759268788305219330174710893630075061630286739929546236843506170892463557797324813955238842459139545244805375267271973994220966024003567622414970537819675122863158001544100751425491892405686958753959424577310721827030755635931551329999794117223009165078118929201983054334014435861457506210273486997096744692248771171997823428851199513144615350956245831433071324842432683695911222324863461722015304208433154576946039128195157608727659193398510743092314271559785550434246231947618875403778626353785826949607918566632433623854305065731033290626681273335775936977295971720071087560103373681362024457512709078476079189008893578301494625074332039973632365716895119065503721029092666040788933588894664422774592201777509402710144711763007680544225495538431167423573736091227699962026810784359199922166428393326915610935066948469907349814676034194979497159988835614486552303511007027883787172996029509699231284425874247680753795173257449058860792074680154638487761155052338502183089080104671553624839316810306433921444836817357894287343359005072915523918319318916384828481942453465307041172363484641922868259351163614921556816674135961538171135953219043498227427864616473326207446043444792060724459633222081119438263816786249045921618394400501346577969313311427366869637106288814527858755760827878648428725231306333756270756523766831377720931667630985471752445140669116154572718595504401324424716861559874806564476974622427870146250833334231075250122878052697340587699858522108512759100025433917464984479622496362350228290534200753785074588535887782376980695635912347122670584957633615774357598633806973555566794874174345775844661194298442106166403835505552238207708842510972484540359457754058634017786555785854839064074577686935203377436242876874232090585525245116607770211990849605042392085562064107333756584943857843202200181530405204810144054968942796632686496152357393722213389956809090029805290972615989885994572901785959287724758189374008847768562227166053426009080121802410266328949949498784734697389292683187108961218390846230853975232761569130432743304585869594996975877786097992097693126241151858212461276215231742419676036159460673733638144807649995637962421537266835187854204119517721550990475524142008006728390720602809630268646869450421987017460883318562701596392800543898647520177127222925067415618163824439989705746510759027983336415883775421959141746841266466941244548705622592750201507588278332008537840902868930900091340872632790239505608789008644781139649524388698838577909949106930391410961787254607412181639602326923795561594909045711525004278203421549649837868887636376639469781658783890625136064050735882207416442374473204954067618429163443454720963636218805437203021306625246672433970629172903096504317942925562499294695900758699200857711763421366550370887798092223105250839086793778622853033444219466006623166645598700055833813068208855606162210244857292599095604320065143316413391338413697078615771676953977136346051958238263625066995213341380057786744319574752517224104966076559181086739972091045275814215478126170211323034094994670279653681174428620638884128882959860511428626679838809876596295035435252259899473610656537987002590190445632981764030001677444085599497186169808961220782861117839231974401158084604361894389402871747049241127508062852845731757207609581986666412941446710431238999499135345962457913204434334259166021472201294829944668457716757737205450883901633719356632344767661157267713137624195730242840897684262747461513242784861262858507134739998502789169917910477181578580683026209139009926194625682958459948172750978944605424459500072821500709819684394201751905543520675186592909263089272906865052882624982910621580914613141073501306727177827834261471167336280389217628479559239359914623840483586150276500877083864832107739004343228958280129218877510281174355956203912360832825021781806498078523822407401327320934851089446430084005510942309005472222736590245572952127252380251237518895759969542689708859199916151938132971743938371712743926323118173918822121515271098152511641705048841626054936645937814966749205808662231612498178914964615415890742828579419762676132428481625556202702097990250989182705778219533738931929890978590854335274016204528866445589788692731681543259100301946067708730009938385333477030196889706120860646330570762798660463859285066237269016764717488103083572543902418353590986842877605160372069281814893869375293862348589550614086337181624365307945144949236140812392579884942479592189003335599199794307451221298643505992055210290604166384615889869023902578986780931141483314864385254478759112090639315456608529915267559090654589649080462339575200514211730068718390953457155864845653558414984132544606194259064106431580630584837559989493086608242440825907990843119065148661689435889880680287510764315554408260718656939859911892116263547561467771238447666317325595781794813230946430224307438776352187443398395879999278837356691764731279003322793420863363662336025510892569768704743009448622159307566810405562652501323614023991167540626534003700165247856509487295289707089010939163155323471626501253280406154411268095220475827733315645170377246244155026398504699718982993069184116601926948428767336811127859117185315871891722826975252509949447574544812571365287736136125652399912346614003405311604833059175095433741007168681436763029786918017117225531296393394396816283615952950830424713590247489495365920424541142600349672714494290804614567782560710934397512189805308074858839562000324402208808647111886476254257263135376408940383124832718008788421450655903044762197880885820412589116595224037789892404535398533585382288538452024284239672209147945584090372066666118932933612479846280953103167817350111509742306809306482691194434679760511010310245260130859242202195443103750996146218172320332725852802346984783447956389967762399637350074623304153969656428565405261533853312424665132089249864789198902935717440038725339748388755825040486767483291546879089159930513208209692618191500878077583180022039825561984258166286411979196793803972413631392200387818733247127035602426639680651300930032259739533334986054628623586269990073502599452970351655609614499401597838477031525785902501547394260864966361786860839146733190514276377116963108210322598787563234943557539613777743289872548828389246405235855534032700308790543621424244989769433880852074689685860494784389233720875988619765506444454500229067325718798130585440192012124288457495139756700408913430561035227729421847092693796138347452302455236891457697166680590017795466624867831195509839848782421174385923666989671511465917698405658950752533139945788427817982652991717161296023228291618454896747100996967399685441905850241286061225801637666345026441396617236235855354286335086307709086893608247453339508755669375492539762880803686188566706635499424791312331395557570941611452548281608400944704918887300428920282459696385666325628285721217236165322773016380525121610870628082125918650238772033892186669154053614649098354282335732818345772330740259873929368772495989609970148051938431907563672662199950491464054674254251064609740399508291470278102890101988654279793560944506607191455697946041168747386015703382757171660478670151136583215823932298129695302657413437010295503969264124114056208662081752574044290719146825289710513110070797736505111353656312659219635446797472607557766834914091606538717605215269982989095379795773131693548098855305522824645384841351779957280453690608544032496194169406681615642621146187234613174362655934406355278659314582214780015612827449948699219551169646822811512824217287638661188514527503247842022135288586773995725971458346180737256390527445124873527646162212799706044329796425354548740543726079982547096766480166559691284068302468155099421051695563294407415501185287064396289448422649639430038098236761004803592289089857818787643517089008148317312177799814597527816893621061335146918021792875642539606874287432959993288296243727123459047884386179498023737431862184569196594530366924424518832214531954764049019813788199259893421547695192688720894890040423817024202607096660627653743409609739202344438970294264213311212153591085042259095096219476911459444269898352911769627306948804282712361035548082428046386358163668721008992939095520649251552607200831587735621037791471339376048293216357586887166732052308978786321938158225561990465879926538980485663624136512618044307922771384544748888466132398185889656682474672806662526693097891038913776149722527687743632654342581187725817842148141062607646403085211369444591912209676293430907202290866924319433312832598931237594458763881709178400402836767393919391211020611844572953328006202353070525710326004396997878907492959169395088879491242169951577057590897865102517640841493563205652849918655651281791808012678436116865664517981367067058264052274450682830405948122251015107180939685687459508256024681351055243959978750929002889383269171140672596850050198938277906974569973071740507166042140678366895885157252283144362403706328479683389614827296995701703612089736935528166420905909074562642375742898479617205015922858613435003195668225448018406262717187396361948766746744231313645800192842387456004686323120910062099970658909482112491753322714926336218562691914703013481495139802305291240165593134273762272337142930319542241053751700336691054832946825889688281191721598572594441190949981652536871053491337497757066537708840532841567658759522668712270095527996077326447345738156601907181132746676110944179510314996972763769487532809204362346887658650748032150261693309503507285112436836623106262389801372505161377315683678921051034872230690828062877272249687880750681810211164600578070442565619714668176475748957130575576220826787250499683449105281656253178266615067241000565056641526444515271973625586001900378625577726964475087934975601438512685672973831337938415594460188142080764194295115095995100106619474508025670807710546622371923563174106711773935719395364200759511595994879193996391934956401270307345587388385846727967726420806884335776560548583819558219948326113977631066687026592287160446221936765518722594447681765764614883023011661516998820594095511823223374326325583029346804538316921532744849403492417517300118694099838861384648490110641227587311245247976612716302082747812623917613209661949041365596726310068479891178843691358508562989802445771512657749635418171109058017245287174112786245876219374332332411936480469605401137686119274500794295480622758160205561129827627103707918679012592401803904217826527625792442592085854253317231792652916712716297564707395257300226579544647516899529087103526181696625091045315412986126123380529388521885900793820881602042196961130821129991518881155837216856429654162306078714672539187628374521177955126801397720458727979993903600300651385908044650796380104481103664553817014039779881702903998029468590814462918534435608143964787862224599218178435200761535919681689371742370863007593249156655603503989644848672104906673053615871614399099301232905456182459952627374005630082421419619394617428258681361649096431812310040363303893629740785865267965020748940272033607748705380374920071203273447136404280778230390967258192134585106336190758573898226914070096999985561008242129460735547129017086171646565322715226864646464700457579198191724081681789334020297950153347609375342815419861483611809118285055882571974674014057050506994048039422737572755747528510288023275267182827865982146837037370990314968537019446905110754589828679463938236413165020306185120438347496567778726079775810331583940734598733750512320703965972970697727417201420063167635914338265199444226561690516323747926873825567651851657896249524883068367894429156701810715628476176802276963152439078729087600003387806880120939442281970950772578489389203783696504842732568299278995375691100853742477116826080559395676680136394723888279523827846886615631696212391751367652505380852507196660899354600699764797183963236923608337526714937490859738080336756823548049340328503844928075955260872798035560136269205659043755130828193012758056572357672302758416561262586301545208602070445849004056718301027305776072224762586789603397369723741146696198416327570438044747570583785945949247825226344574397740481439579613981962059494044893636607904175680265336257909484721670774082119284241814496577954564730377417801328027769294820685833943090979631418475802976616448762352333415460831410565004626394780738290807584635619989518988429009372336245218731079782615360009057065735921764481166085375199567182404889557355342269068500628176207772472307977876069930656989651690563831909745014347867207098849590551524840926426714298951062803403724433904715352914158045968610535892897675527091068406213304987427650720466309246676021170662332185221996722114370778108266822372968970666972180997726963274431941960151994699098006013808373306368810191750527084634941761285087854025147154252164600192998245785257601609171686054483805317082407062855761278472471011510956337163286925307709427279188137867884230963049820574643679605022333883416429124678679913847682726272410728749257389979558412386374551776670503308452997421437752886002379299299229554529395167185755601093601540418862693004813890832455767387061177932486131847492092334882499767342829039669429715321434159521400057246334177273564808738232705371593305274558833196080681393320349197377004278018124151144303651250027933710545017368418798687059638009939023538102362374581703527957636655847559027812039916332365189244739757318460538635247116051211734683467036190427814690432476938034252039430369134960427558105446431301000090642437712635756136156499479978398029834867534177027606755404614290841729567203347631936214296939592245147007093698655328528954600273597027890614781329854373309220650305130567707327739758125587468979860804087396648208577489376088019021043756316568943197119732473089278286428248373165093343204783091200706178502944994948039196288022118625157929975728573449879126677015445933702999168511271503418685846622032721041172951549552611060279766649902598605146907013289324549794871244431657989748135392783636027559541808040361202909422290847341880632891538135254760873893608316066055889228660038949711738349227889184782638402600887517625455244134455930834695858080470751521756413993096903994452480233232407397876364889573181549272916120613669995283627523579317285821915012486345666853049869259593878500755447258629065040814277840295716504105035165285299185449367542845045126592207263935081278575073903726600222104430835634934371670452431476538491736850241442834684268960330588338993266293274469225797453221407291615278709258586121196926147417267734033657815433339726707267129055834926536125610051953701315424188476633669725110675129315670729778355937346380784843132190933446341908979066282269506214254691210135579460737402577302263015190298946163840610010599487076508455485942960066752392203470473913607667508643611714181346827170813606932390155036917353949966020809808168191045642768300766215582941067575115824589440095550634691222222840819836592194806369968775624831561828960930253559883378010554436310133631232845883667635031855213458129457718445506824666548273899381531031254707732370584313996582822867067110747097161149596369422074026991130435292610398766445571860717709098400257081713430093609852241377699063195205737581282682154406478414258493489612253028351125830861458132657620866022210403426884470717404133219218371705077732418148163940859102985063220563964134417659335924369931656728883417419751156812163079966488077751864688488659763179677719882902002021998686787692102552804198163947373496095730103971552769272582677169540849075164259792953111655722409051403678670652129250869764484821559785838142241654996733102202741641395812055575157276302880289452894256021765817397208835187395880788941223226210111049386487872269232154783223300638491277894232803561162454914977798585088282428260438162631323334076420900542293563766998205802342224898363509733822921161292417896668071276059191745827341917932591448091952991895587803114882595976534184805412814116417439449711379646730654805839662094152284067190508881228022938404670078222125173089652406993567301588430042925555733992393521505060419748402736877387749083123424276674831313750276535968455477498334874912985076905518847240368345544468795059949177808267514034100406315377634324398296005710523658326018154486355924919524555126615912175241090571026963480310754565314846257784826043094780578834725699283013066225385697667551636920186074231260171695792788127743938443863896761696202712031768942036915499287867710553262656022994516365063058797434185671948832837437792256103860272994225020492430009407388151724636969463588230708407409065548780551066347599699428611038545280019923639002327104449632007299495318932031387416552474467638679900724517119811924645855926824018584267651752957698997327202858042632170869833401239070934503806022660953469716246694213997200333591210393381458996690572391508894495472376705807240154660920867426021848158507317670753041668371096810928522483948475324208449635717816502449073378159001848109974367620257707966907510773511520093325489194205984657657565235942775265946938632334171665937453809479549290985711452942214100817691392465106614230393299188263580866919223300845791234385385294354458928786066031531636633527166209696815153264128027225933180664831878034510285020033310352398382621357666176729334601345900882763310116254103996561939942675823519860936608049729762030903812104975673776192768284664902244250713490780411582587461899107628587994730221809889516786483324294728584531824758291147880485781924350591267294675008060885976834938978336533668860691773535690241357503769909296764555837781629919868697013029900100656676289598800871563911205719109708002707042899542013120177365901493696240371240181293649524678281505125425466684571086171546743611608410720857096734548555345461050857482380705302314337812958914061355291913031086666813533187021447434320437991057820593088123878278730582620874252930215106636398081685294001809320456603888450284310664979321351602371404134565206548665152207521517575315403337204979374928410241606780082575141894629741394650702188957983501878643319177991534486909780748308033964490181503672234795941988937180006341839043102920241280519941557867706974710981078494580807539162754900567393447001486499702902405780822176551196110200189725646488539038990616160199885753774247124411958420947307258858462324084846276270952512285069423525196783625760494188636451285889401732588706455724322022370123192415630675921305315386952372899075967989661722303764967934581372623531669467262343708313310856614817447041762039024136793000415372105073600063123544906344744707902393217378362841171540584652084312671470433319846390889662087037502912992556109414962206462479524935979796713159213495774671472213070843234971561073136428582751181433795101916487750271591142561555564961381791352839326207803188928205338015737136898348836810794859705380868960663775573697146164237473124482199044225132863958764861914345484278823045160574377802406462979410794611692147527983790464859306027865531877954747793342694018091545747052591675121346492072677343963100061469306340772512925393607666028467780261825629716763181140702278608504795461017896038227634816142828657291558988542617840436248127612198867692170350554813843539865846625846392431927306629455798556682157032194882249051384731081342892809679826398699411659834172678858912795712151740240287612219961413375584565862708906460273659482517377907356006638581540916473367662171882533276626794529771290230127631543574837765348814798182891342825337342567726139736237368419226995411117928835784639132873528348981653713995016052133131833723943868427817469576162929353971711604780373854049278975281232974885826848377729412921017027281305761549000931666828490840435269359906508522607628361962953609845615364832491291543835724214711404451222016080754851993567923131802110446968562821504637809668633096187894795980325678914919712632146639827211124471790869342044039991755003031597611201068671531708608516848244992257722971696763589749044519164532477674299127575077177286944903987150809803763925922997270479383094609890217985597087109244915191923301885137998333551385495412093447654078258117081471650811135192215241380011358480124622653411218250461202356276155701244069644189265166551340856939696680269984655394807440234542451711863648705829116021057367382310764594978293474218586031382115257285829355422378501035184898409777025757256843173886736684141620376073648433899520067596299748508374941271238537178575497480174397251095144101925189603624720166348756593050375180774928092118710457533929653597863504761244370413869952040265606865198410041643637761924278613759709958793670299979288109957813608956110586153221641001381744784856479254877911751759535330304363496829265918379250127084489684780039950152775969807606608675902303483512339877144562599642148914208242792602340415243511746882569575775927685404652473517873808446616684985081372883938631792513566240798163820261423324311822300509126207957258173265474301288371952723490331578099329403072025208505925552743917778448817270299015172517782137237556482387682672570362974646453765334901127704442685832430758455068055963750986931805925975456875925627710514812980662020631423401160599489564141574978284691413634830629161064145565425843499399502330441299484326983627412365870761743115599183037475524464828146185548615268918822398760175265647498200158619050881333819122184452826375651732616371290797119392460924510765117265452544836488456565151031295968146620512347451187396406442417528453092005105317852915683623779487892638183514345677301981808993981928831361990386048532970555828558512888111086610237457171683699182716689689452793233122683768409867019557261067362007711682204482418370384915125208742240281205334519371238046633755078283650721226964537659587671546624623562059251425174912324517128092842639386966024291351390633986284839993927332310919825096268658468203044602018736438401113076583219413145552442009644732098452754250896706911834968245517545892060732309387552580981481629745488993362639940370800102517643099714751942799378155613007282696552371159856384273081791364982604738385206944031396778791081536276626668555277968369801497026930490111671923513860464109708785073995973540006536688718995642627238989668017419327410499223423145850642411691917752741104445319282444619348448172065465727090223884277011863569639143033952498240339217686874548385442858575222693570740227553732527762710353434605494916405596926379611848243658782866786592554283645005125006981122085594076278455475549654503056247280552818462791281153529116018476168581671320331495972888018144153977447197853806102066019487706361107003310035468251645968962760721169355419742017624888841240180119560255366514067907386347693231930740501280572243991991566068599476480341761227984656960051540424617011916577590391628434499568468136290922161842206850170298381572938460659241884600407160882598180831528676853456332161072267778142598795970691628503167426697456723586277879400204343504180066790053937354639021700513930619407542810571829484383907228847514650544035833415224220121734280421215376060671730468452088590200829346206878287319790136353763441469210761152184518413635088925609701663271674723442787827368964224214118399092278046131026726460042925654219418548387548898523567191767225663271780854554982883018455720841003742043174307856900937558408000259561164460749084957886427396552893113311787032502648236525823651185368571996265212168604980475404693397415114047532343373763149204630074409387466095561472899914737486904098070374118704220300906014482228822148425765325087218573927056245272500687260875002612919166329688619724354863265120109842251817324700429706599296591312998096721076273908424888725778310583736208355163528372583458807415904392896481816940027374285964369178487302910441695715906019826683929849795113229793501987228938460824046563753128278192078131971859971428330467195100373848991175001785090296385257148076732027693209810537559357074801850371935886775863252038979708615355242743247100136490068799586868306808245983492930358400042739725214001635261626376746898961823089412128708117477321342490358107455652731566079037434380145938752350321161626173452857385943284018671031938345516966072866041738250384298724859632246188357649382322955041179002529038172258968299996360391094570074500444761486325401324858321150723545492459578843396412173371739203485605289303049244665260249386479377056234932082414210310827233065325279765501163482368449798545527302368083633427460605744972357900412209847816158184553945333390412463807377643504634628082550766784769760300582774859616421638217757351119012994343617660432010446207565729118835764760708944088769171356082302811126116884425999244328418836688391214457279306546062982442600913677622340397593176624694149098456553777707872379375908984747597781305070678867840650343251778183307232637518588505782991651078535909361892960904741033295251813691342689967294662128501919815839459685387140361691795309621543559937311165283235928263975851678842937992044439577613223794188691637431338028734283829018890594783523175032525216134735470762258252222497350281960865924540439308885640532923376809232817608765967692790087013977237943772063440370464431910179953091530335073386235061513822277458034803338659386596619853896960573620462129506675891339594976879981866000056398707357629967216229457531611405975029828989062262317048023594949884397584773289962928529720749800490811215903173763250113910059471702822909279443683969828128678512877887573796560480710719019884145436142159760108148771427248852938652037554622143188894248928742403509622670824563647442871802430973968138683558337403207385549279668986758920676878994886668287162251279783254546769000462599815459168301985946557534399134711602023445902766115153940270896647506341767531803090407140518057250355276536037974495131312993775785892783469968070061401756728158261901326421137370455315498442943481707901847472054421296015205127212669647999815791191108016861247191766315054684358419668554777601022893715561374927145001565522071669420246857675784290377529152270921417390275598082550597170952632543172943760109877471933315867637732906615955782651031319186158983955329728256180192469967927093171775536948334162176816553870433654845062054116561598449022441358560190435864658173272552446358603188718991540396817823211158018222997970775033732441108101384887575348822106889710247477171438745851308700721253513617242944991860859733990521832836368744345873462544595863901919237265078525109843013541086931807555459440739652352070638909135702250573488839578434130739775330100791944468116085000257608461355423637607327022940592888092757147725450769025738660530134986629123395600010368181929829655998001978365485448108002692068208797557603995084533435689965720720924261868721380027308547622199536811490924742903727260803615756094774117828357813245853533633393029272428016302081755560931341047617913291820947474597985102791193177500503881816015689482746507970216109661356744622092437877150222037576709751201806972408459517265369073967459345736390463794456129393122686370306705373974369384800629110392775011225806031801200963760362451627249064716659334436541582271697540877957923661874338603651679430934763471893136995129358248461381852721035033676942168407834551128690417788164346281151335844338308547758237538590511789906386616765574588595667244473123173519291371244999580305425935141659402555350504715942712477299899525041123463886791243691524538098282938101856457726859225994202175278459786062816843441028651085721848053599302118959263454200099828174153372368230253339977782196330218336990619933547370562996241605894282821954526476930324562915786994925914549805636608527524239947694864935472972488327048079300697917607985780163429499194125382615618615948291352519742803932296516571878441614791083992137354783692710458631010746798528764688713056878353503731665437609359895730006488478275054116931087415765035878745794142486049504801136026217882550769925480953862951930270639723750126108066655585611704605861454620458746028754711270058723044772662897266103044309631691377696229669522286084474632747557621370590560854957815889813279868269523833851190950627891264124453881374006481440363878211198539994599155514060246953353545291144715671761425601521417333604172199953726951056292582313012393382125433723621907149508614796820131517147655892241743259275209936382442203927734722931152570809603110185190805978554263085350846193646468767664289554535151239157948154744608748718102701237132885102084145580960765963434664632750865922942189502756365313760551554939297282507311392474040226476401283883457972040636709725641577305557618276802023840255414540157911096900102201990046567131948925671652715133626410996052965754949311546159988924897450912367952985771506146279133752801759257635238765552457280074983688039702304949031277026637401553181231712395728049113722268170501195980704126600124026364105204299986049144722392418145399811446439336042406504965193938345513424353107366509883893664699562140493026172817513121016857232326997688375845100602548385801929964774683092102413378548545206900196393601625680441377130573616443984684032163120922298614648693975402344076908849617810248711105214238835231355642794964700080912568914679645068881022809692075363448269718608341336273640475189172793020269864064512881445976805060703429841140380935548438551666669909376394346061258103840184607904946189321318386848632158228391718665878469942659910383350222199003947880872967648493464139947829863527473196935884317253713601375967651483126656416883798140752023027175691083642069294520890609766617496803722714478908349095880840359576780780336711566137604738990354722205025841198489918844537014734818787578505661002883411209023285033272524043634443966303968469823566530744760428631111202784531215325067439527034183196610587422237622523222792052159635518321974691949630959176988305831069775886496219866423833420087120956541554240364959602549302788185642389337181013884589304568046750657139380227732561535800214260178051926420948419265914818593072009864524668381736748555926814122999108426503770587685597135654802885800151078911206066418258675574502795492873322949284299882527465357302491135248601315321280466818939110806437643810836475320681989624517763037137895866477043279605021030160307575235456605252555669630933041438399546852739871020927878125793329041447327448704112683266696353658993442235206140525985212619368751356163025285898319951015836945643640341330445505705867703117773290060635542165021366093618866536364285751226882202959840944093266800309644163986109111435086479859796612060777407545087895654679869120657258136673715515249097815954177166791037946851628801728068178524677084177003332818273052276246552834518541862617917366359543174729830208925183476451148057969752539846056772995064632792835175898104263412414478547341605332933223564822729126827163014085107830468593552849967156487873628095039021123255981838871881713379247090572831879495268017958211051322586840949685899728891332704500272672915864038245016299643402715047964172183496896584401034225078100770148870806808462633867864820407497227363684341341079590710105036028298264882983623850417218718091598747903267782519345888898797651971065869334086602194243777650068590267887332077317038873267125031902794962469395042494059927528167786022988488713088933530302930118833865000284280637944054191716569319670536023737354852935835744750868332925413308069373994320399586403170774769729350249856786661427142707903605571087988118099636077276168164014065617630464242930350805775492278304838983721211156481268929442207488620285737629304567589528124436860303247434710248821181977620976375714279401516937137984554836729818383010900374552072927247205491820048022257237701682135543364103986155017035183873049748177882371909745741698077034316836010777334226808982611669550404671913634059768158242703957236543251873411696482586553553121870647211346912774699959667485268631113842712516926823434216880986457188054521102250780929260305526644330902269167864320927712087241805950951821386521811216261485605904870806369323756540789492293157800956155599363121966773696793269117028087231676882958723592506065176212769471036282191169019437639852432484508634711388274790901115950666942611833912454367326933405921511657816573673579904500976000975931908249585756360907666905820081857263938187008895439324414563022753371118293456254033430367559294093505418834119341446346866122274179558555210428834586800222241008055901124636191290000653533973761143550306706233872393761250849967194534203800136393955525474663345461485632227068361470835130493554377807333782418179975765421776326287637493968833680354868877205278002851696387315356478551515956122955494557407554899440100620139688101712511927819231616041031607130459816175640436382646179147806327477311198938766137975550722901441977979039577122701586273771690630275691765951104159387743659353549804029438001321599507913292146011714081347757747884631106235846650859470747377778235449708279359400331463411607943429339533549411121473060510556826940458785190648763456088009871054847709571599436018237376972238207142540772147279992326780629094607675314061053599621576868451829607231666506638704012020304740310849140954623259924626785930346829024506641844320062345932420027436155809033806300273784021854514301352992898877942049704690155486708007026820938067500022600737417620199223118924233359120401001490269404688775318593255396629616570576570127170393950444224054087764526586404802561280925185300480492861742536891813340912084525356313663323385675021351574977872512271392975318996488381144160911423036402365551556090906610176702148874328880669409424675342842153954732068178885323374847505606014443363574535286627129803055676537159123565687031718546247210538613861451090582932242946762943990658451495728053636470676889398782105243790602822356604267083783995159891373340608521212093142684438443530857367149971008325882598772538851212581763428667363757380000194535654080492325832543700282218814293486302250948543758558740874070597017010017570723541083473627827721687000132510668372115026992986603290812111421594597551357323634687322134423433274042277239073642874182346260317939820243831014252703875159788139981507225431447331616341326357649432239169440654736554471157831033222675618217351908569909546694681339734047049340383640409097804315799733661893663185086026233760561619140476113035234149538753432835135426515359468800227908382671960513586573745076766209761965449541801901427686782015830342037170369236664740243389302340570093376943851480584904366602457479356973332448866454768495899374207617708678950399046336642687096068335296293813171031669938587638266034903105005058142902540280245195476754143150197665236853722367179801779986282173233864216414389660772440679627337937188309968945221752017005187351009021112625134745952407407018710813116772953027667620401029289235617190034927407368590106477717933977005895986246183339512027479730720228535879541305530527421704414038554992821892701680620957705988646389165403785319821256118820972161015753933226312676926459689186290665617189784630236777250493517118068579668366043566164060172791007877069122078293499508232625658350628219684816161267326278365118555213521442060946996825742607554214221464867331869704569506869120652479627638502527087435453796753339692653612355907882664752875464029208121198122238691727575969424360135274430021945380600633376326332385318862493474530244414367541467330612870102159056177361321841613064122040342245530624180011718244980119227693837207263595747570732960730707233563078266143665082584608998012847888565297621525162218909807302776231743480953898099268629290951814273501734989051821069662277504207822734125889609869457700260912772684986650230110139618035476780147526290475040367562999648506749910976094222247785015129303752464909275912644469844383851308131408243743896884409526293269231484414974328420899232031308191511877198500506934371287640321665495213147368608712273257543460319049005208824200794378833914850903013043624642844111039126534636111790146210082805268545906081160446753460842654269177435322839172011113561467782722497016729545487958719176247005067152578355571589298748516884002875871727924784749548593657727408715355892513744066843999241093886321985469920905486376937022465587037383755099796959454053474978750177385301426114315999784008190994153632086214874052031841013350916474194783318438775732079743879625059615082884360884836952715156869890070776285456247706703561051705807781573155731425549464939512374679614136309808143597586775330476725601353069752659419995950331404399092786488445435005843279011301169585779025742446823386289559362700706710894094506338065261190895704214527857615360876561854302785047057688995551305901773352319469554236205724009633043402218130858302236294297449437408868508801724727790775634554153654867881542659784580154478379485738660727921802158221800467891120647407505848610766925127354196108815147421576052698221626586984347257888856219269908300424004058450689385524034721169066440663939326590385439107871208127146522129267334869732751617741914218359549391840747070588018169867526982725789882392882624642772535200407853146326742520458426151146169202721334365483107988651497488981446266075916610936186692763588313948010799537385570358075844329864902503209834044236212201745245959468597911258668389198006210923444177222169417864792699473198717929221815351098388625735050173356621905516357202727971405620323650853893320420396185204001408470342364532382909702572663302211063603655613387249422513071942526608954311102741415315681003828987360449163798897207563936439661095667662426431664308531768262711845398637848935723325800031501242229864323970049985447330964672683044175348462545517521666552656585984256582849202260743873720264202684845166023179691659275106888917117530046666742978715751544933926001132560457528012811532895346591523387452471159034713055969091641231152892864468323364044337683386775206330472286085533231435946424575335824463031853854342115953600659496440252018345039408211011745461235595959626178128029506150613588200579710208146331953283582658024859627384010925949395636431126617259343999641426749063028880777344632033739000795263112567993287532525613441189430488731754687123379424787976384360675855734999830651207793430451946639631101476610412414568586204082173830054692344199872983222327782265867339826984063929494956263149326654403040484168228339857828952459238623336712005693809860993377133267757004098948843603930303012730118610313825645724885314335768287870541183667501245690060142459707632402660171706236462867899156403209313580335721643291265136714821188094412379401023932879334135832760251078637569955532449174018381040923209439546620920395525102960433435979856034623703295080972196527278174716024437619211705398037870333374098343210142258694511538458731766434901981850595013733720945599243142699182085692158246785116194931615644498593040860768044718226592594662130563976744399879556454679513787773777444003777224566128314418483912420506280629298191333631529618643931661983859045992511156364933284430038521495398198757337714943313378068054769796995254048106943508696996958879559869409819292539772040249432180781429099624190028594254150343469485116773917032094857487573773645628161134769422836836651763779653473745958727602981700401070979565009241305191570195139462780191497517681300380034547557916154640118061784896137788106322026461697751015282485291513565362751713967102716644124762510021383746711105891609325550153294833156516489762821881707916745316532173770719228137978652098830125279070913973526670858797476977656537989947638106509352532600558581202945883735753615099964361230487848938213708335380766142282749749598004353060083137526420817155751577458800382369143389510925951700979730650442076452640712860285199364501530820129802929001117352817302227469326814499988947213015849474420226526111935995821858545114199925006388696802085915095465905340427952230374084981571952825903287936688077684776747429179924015440629007061070607984058054380580414549822073786810395113409735521211864363187592486171315993682252634485183197697434152721535653093469412753640425079921480503736906320316461553040005630726912365402769694239457159446067905484396734110876300613442851029596521349999662160726032068560265738179337139921964575151204448175942054526593209296846845994862423827493654512129206770072619699650480179403646026888453095827894898761227037038264693466946848262436150537561076193876764482012589057042322917544486982148866224260241849005340096883468902414664957897108467805345989709366613602416787592153434321356467094268481402153240831331520661166902000650582029684829863285815914921965194647780622534281358757299423093905751615838889939177927285531034403863944183996372445690157381360816894148618249326210511967421074839169707547775694373941492991182039887148173094763983548695839429818868143718988364385283104471556839847179733072389556222876447520658988382339726619993894192773343948851058367307782423338059984510360581533833658949918632655616740371648746766896354092417078712685099292828627729812138251601115680716486635679114200897945036045806164584891841669852693995558880572399978701116324981140841095228399471617981540016345825933349696424136586770675758624610913646019114275415302669819173643097184739090113712011769962760641457717214062655747514895349683915980119585154389457336081425753836956969052714641563275657469654180855645867325484523548588772415525730783181842433482777897100543098603175338059217176659860786845155666790464353114837411428090101459984401961558750093116137218374911767927224342811162532359458296159096889177229238505444762062601125386456537472544276975226063977836025037521197945434462875432268609278283437782612620588710543183838279677132428489338273813064659556296639784108345560271983776892619918740370254622567840701648375208598861645992834486231525991590030708361012888987759083664013445232694454211206002527845082680835469566590505644904481068859569450443406752064034613831274708875517711832809173238198607080951783842844523184737980986133124275840128768151424772140265141241909447765774278797186240377669264130773727326046068722461081368272941345122533815459245507198272205557097748920515242155952561716441575067205735387508651426047230076831936921614500312571486913745871693198063023096692826924712097632667790669176407166157111919604597754563288485596420862514097373247169383300308713771471001816345013948965224565931115758846400108914525920528557019326941873036636965321693124296361281336937694457293311662072628933424551912233517799729096486285334154365441165008059525079961541162942353011385538007808100735088715866591295295285690856180491351480403338748687192056013753015140657003951904150111236865754160547096208777789770872131697699288139302630401478126797776440905291988535729984130385130347587458080671381585975072777562573368385975971799695561059484666122009051241822968085578484097194451389314418781512912953268698315031051722973580827938672004513092086623346917356095710468046096697158893036701769282781474838320628649805207425606684814727848191575726782530842953129410641941344211138104388780144139386481229884865266347363907211981127502779881747744735100094638624840445240378772818650999829672802062823560319688424256984548232777976888445260969398451522232220982897840873670832925908866990202836135998720141354867333351526845811270344036807711168024109900539064186707611548046664957472843336191667721487398541542946868515951581270531477189888404227841068041072031350316628937954665236446173522664129884916546840444727133096892755894550231306246020102570318188962435944056557255419236007717492254250570424162015732516942731313631346732578679052978050927524160886073358315905301547363025773232086438270441437362968221657397836872581973970860748897977004500254646243791098283673390111374524677555432785378343677624336023968752427736627707150285875410946896145696431539317909116908309097978031972759957405113777782872353780428430273579058504094663346458981785054717998987548918415987633260314842253692160242983350628398645391520096398460702003799968780700742687386071009759881266659082013303457460009857236177603563802438415233978527974400925624087257292626330488262445798036966404540524244887623001052319381299290652128666267953452994027594560226473152744049857498977221597053604478538693485252368838785162401615817044977218626537127610590796349712234624687321670167322582748090604265016641528964196616921030842340733091545195356566519315733634030515961223848446660948034899628643868729989139056970536209082309363475785153587937584379802234659590427344652088005492816625391225179079807338218175858674645564429970144179801566051526202583614406251454033952781933260918700150602463050472786959952254606428514349601307039668863355259691078044909503562589534479692626116082430533117881009716013076454913396954271214447082729543206480635917677552631674758462394170818836431223514451076659698260748910053825776911871373329365372571630001601581264070618854437862624276515402951798576696783714307324250574468943212861260319102055809249245079172222409502063155880977467173320545612615576340108581232558277745470995240925359730950170261092701816332403550494352049674638883165862321885111637842063340753883162124681822232843844622420132991974794844987423779061532533951732445518685776406529363783549359621625919364927686473923971650129559491122652875755405381725220031098263997844545801933815299105175899605905854112265400444822795172731339066653963129175096946986656206133264444914359084797420959805512922039100957400637882809956881947001885739898312015209245161467258318673134939158390459599357985951158208684009169361362829508051788309036524455416869781529972840833141647908520215629427988223886145443057674036557857904784056443257472228115931705790000444990765658062964485464558340050038711831271755127133811018539468570619471119280373946554764402780227672040512328760853945895145544641717157219550679349966101983163316565449048090068822167573430286777270675148746376759899111427056887410540611594792469425322845430809616123858744367569638026964044182035339966257275759361893654214549213711098016102531888533914898319453146327015548577032698144030793375073407521885569318123714524671821185281821170848088628968667668718053632675122133523096171005240024716846972072747117656484324257569871532767907737505321668510403838455729462778636169781184592815035876625751056137288817113111481127769569785614638211966027306531865544269538902529964074312574199539056478306776086254875117412907962691108499988214944239314179879443875083661653725891287914786410230680265629555654421823104470215198532512819185263790881012334686761048450800151517522093752862150006956675918993983222935203186095751021972804207987776454217612921426816187828328744565659986593077559960073598258054044753757194902026542333904083240340295539116167639365854577723453035042929834451651942465671481092611599155421567854035449445144753183995520823857641407720994643795494707799934393137272186430578738906276325796919104197279478094121928697981143012898495058700566499702836430262354002516568714482029532623853959921098852289036816221738614845541241900386702759289840387383072582224950982889659306176407385325959140115806737762394687658406869778418629088822478591878307145130813606644663829876459227142273347223015565201106426828474520887974421736776908508533611200928875582030765325520019163407156311723985857455107238087454346030795604830173637306739850824629733133474862811198755183130338926354831548210436857600334419265345966524491763407284019410621410183532045890753918220598561923701865046692921263452002335895769109646117926842483841941620146360562211787065288195442354498911219574614215524489404318606018618822193528557597926626321786859591807919310581834443206407960648961705920392092536946479879201173608344870584707909208404069769680887228192085386193633952706438647843682635773786975379340604770494160966728205956615368444794434423657142453324762131112915504721283672165623793895382958079775606287861468422355490654964888097882351232657743164813480841759659099076619344050894532808262579160664303007125283422069856458904097584257943181143401828129041627493780037276734636538844544054839266514840378913363899397661671294010059701384753220845698789874857287825093508129415480943470880838091399293250607425758266047997175917520781692615992436787081012631219847717471266966230933938660230042787888188435392995050008066172726400372357238019129584312703967099922611721485619069508819573386410272292253246090585753440383679063763472020678764102431493861331681785413557915686274629466368591013373892240317289532740494422950022208351861854565169998699508402981345740487701422228460256342981496481209911141188712865858053557811604348214694127991048116118150243898744495114849229915627159771785291333266044800102774988436054820377220337662946621378805114613352920003988874323117330339792493871321470310838724357467414619352678548938442356365350290748587196654204158996179977950949788625728369272343890448664275327293030566135429538936275864463371992295462388594539475400922460975050855698783222129102949746560975748321039111622363358188676256035778891381573603492614750947010657015800400542661178944366790894510255141984577744500716373654182448370814272598863933912593556369546246895700804516437671373371985297526662051945060348337879423948081314952623990136705977384174672601345845879202552980005277360596533261730952595920690903944491258057274571259224160754755548395508418753626656121661006187965779488580980329346757869418669609176338548914562717173168287104764993292220810529429888118920465172073443866245621726791695521309467930067309612770056950468111920596391329242590021819244663553017945092458492152443795686162880437441800196631445849239006578055832410254470135431135658285315117262223986301551800402838515683808645484971258249133586773148223121685854375661644824405475854630495830623075315336485847090119374577651176403508267789163967779292826816937190934470990706146504556717171423761234041570498413580068245077737024161002895460480797077763079454522670953608025725093719295426334377221977013794593384428781667104462698468197082361949463900385639452244410106625731214852266605200799804052970031558262840807374425497719657674615323010398358444622649850584278596717675464182987288543555910707814685283445124710174184914745538372507380307052245396599520221801314086903894951384393652259989610826087910630906495735829056146017039223611051285391717730338527686901577299783508210585589257870217404844393348320452776979018006796712383176069674852001595357664245745628902852724220580586540358407816028427704673792581229130770371843649612860020176620066393237887031330101658557141720386598300258031075138207739676315701726306128856710503204051848755133252552685228694498625990842568727078076730395666429371209269422346698559822986307791312026677065439940369214135519914934209556620867768468358030445750782286463890081420608874858178203291309116213497167368727741949560224541687270259643350483657178589159644518177800476390643202643036910009906043930863240911216347581170597970651388134030941579653230873657101586393550167787097187413922115199809526400137393693360727813315617732508199043574550817839731412816846402423535573939366783644923554456074067080563376035647920051967965798675494053766330010537501813788142182948093202520872266051359793462722975765871562561228983974342433952371046151647839201055504669479291516856589699247350136297007709563688179538530400669220906937721825421468367000584399350535683403799018860065695728082470293467594173288304263844255231694761148317336605678537901992027522094822941904864511883165582011307278750813597531985386281564463593354731296408104642353542116920179752114244764029375667947666240347270709791559610804261862033910054662638094963572347147519262779782534123070877220129990743418046465140561982553443416615419753811182927746251191514655539715887440692604013216900540389202801697750968489101039685389117620990216049846056048402357568480404190623282415462967285541155680208317608341774359601226551263859722585580331951479774252044854766642333676845592007075290272617462716101995907690622227232642857228788985269704114523614661165483796534520720756857192070894229361095201137310601878976057616183574179518578527437445267421153320040943420699481630720636681349753963656890439703373070912965768577914356974461595644766565095497524850374476362251121382162770898853667084562611999822619012247321662500024786917814729493376018071247705657469420046687621419483027319195737836941626621000152988870771942019735247788745106971115322240561775379011038849840526768497535613165106032779708617510234909867673510956230305741958682980432471150327755024310888443979573319545331257016170228271528034157911716228833144000082606418443745153732331949390239353230160617460095469992130129083208926871514095481111211849453899662993328980420581151343644133058225535789411705687869907661825368632829121709532850487413610098257867625633506172801802087705354019191942417765222161704239947164126821018728399649172860308726654863256970704677648332335209181935491213723255099596761607943813410665542165006488347452829444993269373126640205526730995605870252190051337544112396418360690742927514052633776057546453203270616861117600564021793765563529647969324973574526446143657624687600574992734174615364812247379725481664028380643576252465874857616411858816506141331111273630016620430624123952211400965640064554390351203234637972731308594345070280011610831720201016482658967090212464206216150921381752363481973950479437277027484860446355411550110409858113755455304482359343697752944182222369650845249879578789342648582065146612340642734185891517898989242181567729650951758400975467282751358386024964020762532632871057546319616887023611573872140667292209086305122329982072087323994276460238204205812430408982635769803253032988930976025184484171400240754522276660873814554536705975703360187254801269732338444720872865329870283679069233820887345398426914360235091445943057776061704462260810550365757482427096421161116847475321422085565985302873311337900041428877618347539530646152135906720981142251802269556949506088050853806508293221206254269825883219249824471265035339428356230203434892701297185201609512875543143432612049061721477490809560142361104657616680729768545900766099035268980718599661205083274649308462213627622362733050126523404577035737132815617165018075034087206007244253288491679319427377718177451136160727756746696913820224221555930452243907827878799277926580502709565830442841011844890821021229483655279453093438295719986602549217526755997464304244741143037315932182235580433038294341022248786822319820094777654353750567009099302312139527367538046308289563122926131593360349673096719614619698282491309957835963830633584561704658038068665882363432110830862632618897012298821221116222509930635975817588105804498588609050177488003198381252133172273147073588520736875401561851959168301929321025021541115749958480932331402661489901437513483679752090736996419956692627494127477678529746499136661267175848013827250600699479180011337492316738260225535386380936451418936661571978338597943057389055856117365342263766241630921874938411379942135181344915863405136244686260312601812296385148973948350978335167617305702467245249212155012187160160377595438208099663980874348425202279339495199606324294655271580504343311752111051722641951276065342595550809090412781389208942939466493357884773665727813848719829930517656777320451365814415604202484804241426425311000447461538058581935332052204308342842887610484876529913105564682944793486715000804214851870848819466701349420426412857417289175250761790854557577099154005836358579535441973722970971086988052733995054368293325428162082294263183535138119808360282010116091701479661200103660414445498496167898770154279548716931257008521570504295221211084748831973887461671418895519757955749329121253068052633258709896564761014707397838187054761004512714048479292999819794848981121857973366099841709852997754699047130480887884546107925728669976452446867351136770068973328628245451827087773658367116595855275570189041312040258219845882645100070530198065570114527626969998776283492758458885011194873605126330962897897506500117198629420833675155720828169814918771674693567344756445433750762835826045176012403126992229718699153439013314918924071818024381674900295663209408660205171451915658008930200138737299033291163786661075481437858961867103008022968335099698593333753161945707123530408678734552392209569334057333428259389588547451925033854605221881763682187300037186121230360610009383508097201928002228967454720466712442724539293764196619351054294018494484643830467314875327581429702379321921499433935421261989098077934591212441653227781191769117311913414750642423238938972647714387811241429094786059630938840607477379330871611435914111526672862586120640498637450071545009652182305691066941856369073533977336277289060330873545418379770758464066941838443080171421307865849028944748098926801205245468633800795875860173029732275531031544692120437897972072698828732588544617284423888404111436556902559345430877766758680893355317425953102479049526511111610432361359389892616229290290575344717949990318666769335941020569484246247830412761132205534813655370013176018712113926162133805644553856334312391758461497246987456349615723566518891133638084213025927163849536049610399302841146780940648376122548401417805054955109802711683393898990608267872353282456732388646481685451296274533939314753816203665534646138420592069494010222584860185053275805149914113290331194357350783901511527245193761117484694783564969697862867802955696074374590808723232292611617222071180196271423524584628803498198611884224903143767750495509476863073334255811985606235764869252726238919134298291840044963434473291509792693064747847688158533926763006619452227254674153456317071208900206499441328305361992228787493576164510865421692846962046918865855696352853880381088270945146904366088591735448191159162012861162100793735237237721725537752095665040481987884946912121992773906895239762919934738141854243131348227420406603268322542981937939922735367116728260718615072991127335476314014353298136222340375807040499961431841360001242281687185700955697061571232397646368684695972890216569998485960627950805794349952849010498029302589623227250287824354464837188720295088673120154605378175770019426258474265215115395557052369280420193297591042068397754951078349364644125106365643577738655381010558674330197282050739844810192097416947984537884318451426930758474580498399230843153360913141809187642802714427675867574234131743209647080591951069021618589689788533169102877604776625983641888426663172496105947363082888389875015430542855623183941200209252290987657686534331575300198632162912711629749757650877635864410561201778230522663578107282239823640160715804207461459697726590397697805349084168597845906629483564118928718689370255332926971681696832970444510747121614962979255430314542956011948220435833981684716592162251186245823239887119882974066200988026464758161602500964395870597300116125444777291406213623838459049606632783580953543444914621075968657570051552640418733074748477415015606963418995255223133639232309019588884341359836946502359775339493683552641042502098525586434487260397973230729687564594568467153579946726193444023434308499900430721370037725064891556311599334777840735456568659809452349244932246998659940590959697190417743744635558448007158994106646059895937598680771706151503689603344792740272302862651750841756552686685212667815243264422352873205030483684427255450767333315201848831827484213384954044354150530010158219431394405756501125329429330946510229823109299020194704093984631407462728003389555442053111022137032777784218288783420783056633887774896007030124197520766734696578347962134215987047284347493437514290649167290184597231647057609680846421517382247164343908206692118971136166333914752727622844131888107362069676430765971735291788522028913901941710724180216053365958380940575988941902592771559905094094611502480409810277621045431165362215533023936032768891738394028202118058830172859499783854191631714189028437308787440672448869259793148193009113709670720638742435134863860158620664369389915078710158807405730131729578772364327607834399375036637357967324131820624074452057214250293236197035989510883574687222377596052763723955965864213688383049801280576676424916120973965199623841240876080517716644202382605484094494859562720938038595951814722605101462944617117513485697939140886069730925581207717968664542750214855660619328350808967738822133961543543187212135237608109568407922097323098084790440135736637383206082269650538880112739822299214077009283057572157202353239720771115024159523322105239398524311765137093398582454404545220697072482045513912852668445752419367448714886367034841871610565150565388850191591095509785755998276775441702975164257229377763456784006673990486500060101160334059006964156804792055789252429613765328926501789837733575835474980199483183736311868665684829620634832162093241456342587886184793740838259397149779778249561941459864623093466396257911033432857348159573518544181736643171657829070186972799336278390518820798178081550327267916477492081649928882702723606322129661034038339643940676767968239954821334367000841927425193471045353855638365341615948523942450835497281806073673543700651760809792250906708673520962766179488551364102971190025609756951439818224196056566668018937294988179047315960874215470869336748970710571225986192811860481021455161278711147127117325537086837716927617665026197533096322705116750979263974066507346414830281656077428280901820017227711014157550213460798476667790730986857978410856020605452494557709102893710767418371501017505542279739108673722439157807423660786960780027378148918016272435103011102987991114207553056980767386066111261702920478700370494418771528340743774897985952285478578475620157610054534808052336697949016488658911852102976007262725352814827186471450450420334460781584802357016621417456967281318602314182295333032084618949212547010173288929477990219592280207745783489154476573330917883105751033937877584251042084375601214841176228191080180321078763736441042960930624814217435880357094146492887227954092169068272677207965934598736060851955334596144811167096517149155716704756170937079918522593524924276809874980963930573183351382221839852995811427705359810762230171512750083126729167714428813820186163298676705882035068289271845555839184485290524884423733578372103567504080240676711656276241521564932094632388674940707425446013085002923768889295428895930087554082429821766151083301464079028067195597498190184193384245953293134455372365950531001842532653844267068459908570291897604666805399442714086400510704813637734310023214902748801127389740595498542432870686637560418295373917864264660690550664150343737531387828055037927586838589071000395069557874140610499800322752142584568811403559971239519643656086006278609610738061412629876838508736879578150693862443961699382603338429288776356832890541311488838754644015687305373575088486402020126767956158729846859016873142335589067747742435137337889904141383664641554847429956781423734779889119160132120509866978693123201505160805037186858131109631878690063265080430373169450355584484122608157515523419962649295254673188131007689643565176499601886505795120264930595556074210737581024481304372107965987209434288435208080969565913969181572358955371084084332038933888410392869189536009145254621257047569984166912418538945734129532047694712400043202328973687459818754651110152520113381345415464217245671713673839357279493886878671722776578916392158622818054539401235857047370404721475273952068896361373727980012639364450295267029983560621082901769344794402005725232719668410258605685784867981055620677588444309129234367866712178938957947756581585961821388948927278287842657975880171909626505548834862576600721938261023200437058199541703053385916088494340267653547683695687273575339152423097735741591086081921922649678231843770139845797121684429774583663722518217395639479913224997783802860600252811926602903360647768092107770188538553709329579948380747326411723919686456587080942967962426674906535666329107638147427893657663362150073287502553980775603891920939017862102176751863171345131878536062168823245898345253224071696098803695689401047657089591552520283778047697647772143111586443649889379446543834004457253490645991489843048821001715275944708549406054511062657660096560190808231474575168318639784686764606733215689335198980626090688890670882134696345379683212587101873557757628828148304779556198530324398189384888492224104844107429059879094166077356124120137146690165098088359198996608050708319218590840774769130211915241092901814222508426942969636693156380956055658411396272711970496808277304948859624070560025942155533807398457658327333749468392294561838472077356943334407511693301051821364847959487903277363387361744516569337064754289312447145568683026088491262698231263842277451514560310520202028932880740442609190922078928914053695452104193025800618628319164289268509718620437882679013679305029709149470393573382895956692875496938514366750995187342908675601894664054565640272973999539949822268455704265324356558766582854516105168109236770387192050545529008612768749884872384863508628261965288598607400350079462502828586308274519980511241600846881033406865521114410116927602682906124535547292842197098315022722977473208532736176408651787859260760119140650607041264755936895595389127915834939171026295521816449262889942815442336405912485985881905601397300355198486732980062845968040703888233966187741466910715216771846397458014905122778718380556056471819455835227607760404751178473142903566424460273511413521539307643846508600142303095391969062752793244938718879271612844657654681739016810403742103059905539961270884435753123506577769286311313243899660805338970640148881887199325541189342627759281458935003076920343220496781369960817689579548834509603087179955725353956745779220781239390099483307227832862212923799012661542110195013266547938118411560071627978298146233734735080499183758130223869420595787767488392280813418823767103005465780024157474828777595204504909182573176064370358586450999746249595386896397047369564695022330703645255139927056149593838170111131752276556533651817590465349000321977963412520988037150598014329467565562227029346263582030159003455029667230761606920718384101155343291996221760185955384118539107562071834768985179885505520989975583206098071139832943591786559604791435837722933336261048079891949171751204195108108105889219056582962152556651889914489707238403275310428383204856559592348852011309912968302742042988754600862180623046382183419950248675072520577604572178961903010712959443521294893233883435622372688959151291561439672952380532200294653667969997937093879257962602187053720051290676005766914155239805024135790200571154949556285517990251907366704014080984290877002368226676342364017015492741601641334258525057859760425519507617341973460324169938907736701691446420244838782905809586212698861133006087198264563178975694192932752460984752665043435792088114651679495140970191484169511596355928023441490699799454758509742506572915245491204002668224257924717266711206952464734128533548626133555503350555763758558612722007266791158953714337445464184371217996868007491425841794789235244650438995371327957302423763703756960234306232709917524877706575533393898750934065621558005131508096059112227538597915190408317640765006419772159244344303988380473739021540220336331832938098525155042245533121425846418751732270314823438034354391354071442663817879278558979765184760555971200996110166797710296587730995089953601982247516904803059622694614476852834658567128030708579848703587052498850209001477043257438804724281989801716894411340591924806367232122747733367355809686951641480020209143169488684023306022781769907560383995802828363899926069060388114846508286297652172022958962123179198441276698577310648260520497867005419242232165841004436063231038617736023758750513248221093651830719938896445658891431589696651587703298200905276227464555234938398268155929897889507546268737217027568390551837344722602343763790778176304063946261339917685024832382115477688401853408640676355100175417817467143075457221645439736135650225717375975400139978613313039269730475808109342295354451352762424950771566489076160614031253885346690805963761830989394772108518558204315849179076848603824802404496186476097865768610228208194436330526434653000600703061861141941116543617962877577772669433900827640954232236347092108504242885352287241550183733614133783801399645362124333848045854201150664258440277546029500628569488223754707234584825785084402010421773507808921484124235442407681748837397045673682178594534247979430932300035759609095427335055235127862395531241514166219619430477980977063540222338902341332206098048018864009579483057379067340763771739838094186351335447386234093038468825953825490553264442762023897201696262386537643182539385139198484756882520155078295998287681991483045977207462689289439485413421171925329997481148013563038252607944923860711974631710694379126184147427155455641470981544293333992239135678008457686598436059411070620803107665824144824909876921683645179166373122394747436340773260192289875138539856427502250213940734220933691799469609375714705476644541610451442797114738983357780629506945968875627784943806160805663881142064303316448698740451119824082775772812225823878594326175639111249162012291303227817410184301498598859428682631220117068368855752446388220695365388936152358409051575539321444067002355174044187717943171896318266948548150061186387435620470081464174977536757178068434747172921165914316924899133616927024061386353573804600219797250283758692690697047522474762874215868291658567543591936017801366110262326246539902172202336065285469492326316649513234813208823405850222141841180083661367162358031134519748799227316290673658365133347443898877948151908340890307211524886064431260918379973910309272876707992617903659010027439777765872178352121777980955400528377345970202048203650482089913992335231592844514001807705885055704847312172505449784866319631995764724971952093653145821419452918793897303983406554058042642210028589339526723643563196571530751888241909375810407426824556956538881231188534822042326664989249410728743199418921562205420472180011751536567414130399510417739444318537070182201774242669778922968513575805979215209087861366603207261677141439063854053428797339127563824172876529148629875976556703993788450839456402671891245038559563333491975080265349419815040168768575684148683764338678894022228622003142001371129937025170426830806868451242459127796541875662419101046456503516888127535916648846252977684301663460341031245749040808901550522256386240294518585732581098609253409973994378279098466777782666147485310958375470083934510271840342410473487868020019101808603502424889413090441636116579394976886979376244538452717080545592494223700551943423717547116718738511579137476377074093745519058291250669818255542383419438539370233984078596491560462187562239504962965952217278655282602037070503957647563699870810202933409276299024334801034069064559156993233690293931132592025181839767890485095308825838816033912325599012489033635766255877396305192941460809600528908806737296456204046302819009488825112930352662485302840511863791748915015743787676441943342480574783423304840914174388456597563160790312950687456316497306429351745719536442303408316688722240251100299657786623245324804965766612977590506316349049463580738106670989957569540690634577555269384218913061711329656748213866628311019531327591236128905358490503832977120344816862035411337923609123385357491046541034829743085220011079716495961046065816045427520830732463500130429380886681718458721270811221673384689409102994157599396931679754467124403509863247855813298786818010276628185032584038133608744195885539902638156303371097972595067287093865555735034753297972579591870188118915815971034758539449225681761376813856585333453485849473484206547528793696763152191743949974665444547267939030606018030854897265860070544273652441920835863463682426841081745471046129190305043940537153765987289439148539070661160211684890621960617673337569005986446101695533519544937501010794385552729915233047877082585597437525428907995777362234640588620072855273748920963350426386995525091109100361484463097570528029727541007069471583441255773530975586169327386776353502319774092806478767180122475218868096632079016838386778567088415884225985673631062485349436596757977905895714916351605024682617083424498014543072639678311308769659738784823091149267812632737284057878057413302107390352097203356042778641131390346817138193380541828361929052031394678746223413514667454196945640837041748446956979256642607442500757772485113496865670018225857537803598569227321057244898462120298080962059581905046106012374871706246469153048209809497565507465586279777648051631267566439569793903108650771448205270318898042616726460325844314389703858813204752487313301184306460665489320510732321431857725257030331696799642289490888201529675520965329423335872939835836586593294464058358848148565169939722628515639729147150626425908897210609231320919354720707579095298336538122116600028320529408129035961956367400768885526175867120668068186178172306336848640320142417167019471969299645212075014084118867391348434621331418829134886380639277550131629863597309274961588891360385530563541187460409615397462772383539775897718973716936723986780160000783205477943268762180488951825289874731385951892044715705451643044469990942926583616560012116626406576713684957165357791387050433931614992939654548501748785951616316877863783517188026687313747070007187117657197346112774845978268603624216577790905493744978084664077483362588694252172766032784048549423107847755204083322251176418593665178052243020872658036273317609865682936004773343038640131722706825759004695325593503449373051842853451566465212310982860256915892769610426927803264889252381450695448295641913439449884359121370500090477547141041207968123195806089696035804999595705089508784805239227172116041896961031005732793214908730464667270654894806366687926675368749824558488716649351081776390854981661524320197343142883924437744606512526255171312097557309072523352658044562609777825048479173257478073415708202259279469525187942892551980454013625600867500209964448732746724459463687445011743704672681172178810509646133124054684513911983564109385612070137033860034658185906645188173442339537118964348721531944277864275494742902408364326225848984410989239012680749815378257951330196730583675687583358262642041129192599211209696119869282497306691844271837700326857158248520573828186634243237427880768410378780275279733444078725652667216326308637191564807292470452178232356082795040633183074846994162080642664707611965204712294630908469370898165541944846472945448119435942253371213051953078904184797178728266010357723575296810473053746797526344738302639385271724458531788151645125568689144815446316486554926353249030433653670542943208901212704356726875919831430468387747697746949197922338703812247521169701862656688569999737144130973111637199860436228412708586494782551961581478017049735329243042256083498304159365210894054460021369390592250300415521385333764895020897878417075217731543197656072120050162849248609724016509598735776644999847249197362121434267423005406338164029983850074904026412470897313950620179098878883998841904873388112883950626172069693783538792811544241282875577234623256374603367405726181194405780359925803320207472163744397026394359665918174870197688554765480753730781884985713546502857368133712499641197333254014786406898226333175655200443357640677745006828224830234985430392197198988513327924612827169867544103753630464549180161398589681092400865868909724734653621087259468159222811104295196339875724072539890952260089633339064885257954125581712216011305342277885108511100889243624943565723067401979461918731439213299548990167253999582794724478234874022936498571359339896230178119564959659822263731289755256566211848876756955954137246045550647582504743288946114767210182601230023048445329592417343151478958809740634974618123019379344678255810353688236348091854951869283630060991310434163621679148243199504768701541761778613058371244395065081836915477503625410059153775354136194415955429759994593013032405153927127427608159898256592215075495955857564770480540816472131794381255968908717210906603198200774427309146685483480039815203030526692163867401192339783268955208268729536235663753271150771805014792899830855008498440049520184227105781340484116052832737159260696445945424019724290413050253160753743417112463981451698291562865785199556426092887113168316560219117188948901288567921108566705273263983794206270896244052755858589795196520157738069472482577106759891210940640769106493803329937222432448604613085168458839508377883019690506487979109356310628768325941279788571429337277480281795298459192691077017104220835746159016164318318944838746024486499586254211967439606533646953571851699812447823741535049340065208485387672097015472853017840975779705634744062881522379077515093629982563984966577414093788686663902057760486185059663502165520538554984912686404095896866303200559749219172641217887587395474355085015534180542299103033886375900158926932470598255519772813140533473961848684491182671000944154733172035680127552311177987196172827096953742632830522135427700984773545152723509739346454532971810584821887979935210878184241477617097731636697556629209346519075480119593769886630978607235700414382936428253826227016850952661019305014576096575289399937853849619264467110917754965260010766286561535837633805929263754167449727557137595742226029628070371651307953058641720777470967520790743075240690462422182226344258042336912032797133797493590529810730533354236957644353904582397229313928373275224496131031916959367565767615416051162667490481873021995081681269624347951517308471305894768402132189524631838506952483152467606661851385368789213067376440279161444465613839874770826213267273142982210498944129119763543280153677359328864050007459166347729356994816261918464636592608422062485471184260608359736323158667108738684121850315311199327988715902531188189182354053030217560910424141508306785228236273942906577290183110826169269697209279229723023621480863402793836237697858556151538129462486798200945840626427900414734489779308881358618270359196282205739336662112337217001422115838695836910205478474028214157119401518764104454515724859907182538047964443287017896379988004613544941750895837335954174931979017754292281825849430761056295995607662252690543982444246236251453658278884420213787184256005076638612992212519243786591145282372485044899889446178071812325526644570648082409358139873810476679811402884941241367731549925229271807668089194829819050440307196740152540569113337373251245070407987715877669511144000211158669156010837638652260773766540209067657613058150911868405215237334451354440198323055106484448151502272728933071931641453631517402125468101017091224568322308412965239296294442853846208506895049437070147398396036339778682945836485236435271680725355525195912968897408732886092102624816246807085225622598781572266306509580865073480767463699413761247803659649127584576965473436014279113791346729395204731424921195423941989515651568800586814745633815095456925529968088255842788215599904369272032609062183067405621429366682594124346791114171139093329262277471233748516963180608516347271417232950332486947405202118311977061558521298037726200636674924154085625098487298718463703648830556660856857598539926234765510901564380676668281224682130604438292631150596474835110573031993112453879786723790402965122512916496019925387097336840424953234729622548623716711647997406755910241460566251466129078889469140981490395417204886558085149680167004489830048486088960246090343843450124532559647480316999114956921997890295623425422046435461494516199589439947332447996028906834065903696645913417402733022586334934193184794529893519063955160441447582146689808700043617480801027064372649385293679053961444602868255062708048530101471923797313336636109773323275290087449907951372251213123302216965180357775302085065213506017232611220679786206920377334026104176176372573913631789333301039549095626138387350727528439749581169003654621447230082808114017150058035498813177718897800129122974536707167151763631756013557606580615446291887431034582734197228717842575761113734820855186754841138576516544395536427280959630197001199426903641373550119141794557384111564044079583204052962023577706729619137780406154904655840852653754365581861619158414380888551760987753598377430899472912508531843696323306309831520250312013924246465010463734040975370261438253118525081354329779192561551350956882549064901515642126786712437465991309673577158632955062071924899979068731723728625515920194058141789481148136682352722684980000710798587104941213532183932844671597579525987424891326100359613156586801254964489032033578248071678014904270148080840782974598270244368210722300831516363671595072578405130704335463832839156145650150436223595807520652184259914646486099799735076469552853779449982644251245900693892022705633203825388516302071877432609268127005530416635817919178758003463067373702010259715431678809241254955052589031380953779294654525998527386038340687357208025639819067078894636263906396099897109355536403523044522060496178111201740755585912615180326116926378506396650633027722679330895563668747413160234734270267212811680219623717414679815648372128510286412557207126649122943556982838127703391289623576458163912738481832115762456799338078331007456664466425940927298788840214985796128527459099451092101750837076184559106436055595600647080760896090020068352079617507538161714924017614989175186318079027133447056189711449231602517608547634670159837420766699805871259111250890234889182733045296810358836069053753727340422413538734943970372002507255598493279554355718297574153077330519772564149524468660037429419919754983469105177833563534533717892435921732707284018414491417395165242937375194052686508165828280854956317743502027590727590346433454011291912499586810731986000845788531984001101482828708375034917145984417772484584905848778064122468203271972482455621265671535760294364356612138634317289197217785011511501789737471392364455663313198767426892622824226323263428210307580916812787408851274862906515569069914365101653504781659403952283345635786228314002993404898987554496501106457236777003161825223665198425711318450245727413185428658058391443274511127838572656517468824046517596805217758543784926205391758773599663805660265795536754334281095317291297097787792491751387105886348709463521286458704428728688147306080360935297580064311787185052243449384445432782291574097316476106007042078851931381217610979331962607317213336742828045166998758727967643562883268688710121563694294685679907535746029146327344582513242247741070769661826728568802851899017072077223930560216245139050820222999480948907281586170020755745561493798637351131367663234056546689411904199159138088550894562377865134447570591852217765973825815083767290844180793533843205248474410900979547281356281034787678033361077150618521094915817279717795277201311346299912704262889010561427939244207408579802564212168132121679734324128893883045169300826869339696457894559576319875491048616541453662315844273200387919592564353284373177036171152086636166551514434147068607576841708794884715089645697659857164664326725548993303311238597192585771033675043136132434780613203810110241586199320342366835392029104501559778223010974367498002131606324600657495517379061537606596376684088274782760321554455114214622555907437516467196775172078953767681649714208674554478203947498461405150910226304425877389378621176089065989674069279657394528271130137153772406214577167183117601193909616902440722671529948194399836320111574189450302087044606706525472879978992739978909031794795291236407842613902647643162979764647128181923459712414336302756965423055137786063756234202346028823923485799114820050961905428614745048123791518765493913339055589545688097603460330569221645000361644921578058557841522216473234948901975932953911784417604334773401293517277369832655550879815063687405537728149228156558909669834562944458187604139178958083885037092974138942527862736590886859090119576425483297689475568173122371323536477063349043040686728587712524197867899470392170997564780409949375143517315528399689127438605118481783727893812305352154031758167169149795666215628454166206241024955788737950909033442486701692631944634209057728418782276960706986820096831525797842000010150539727135152433243945317494719158370354557325435334635206718647971742044610172535068609865503319543391688255341452342964030248009812282774874598920875578543331455646402731957207696912857633910797929926676521505982056003449915406017386881318194239300807380886088700306684170438748705698596804793364744265788711141012482247366814168166948578741041843581268330254111152436315469642448200457539359573171302184320999415888510315820411595641580482241436970424017402600882888525033321895616300778337031407267980316924233470930185468968099317562728138063623743948074676900423602486143397691551795949222814640216376790073722619159638263986159784670011116341864323004577650463325031889337191351458311560606147227741801027966094763036751584273216771322894221110950247653613565021803393995357717094162617653105058305821025894407764134504616402982555125696051442623561452041209294763148855056071780126461170872419389456075912673904539173395319881051727261073791665246138964661681263951094438070017394330465546588633802711018696695917047072178081349836167347441210613207033741203347843915772746542021659030116687151289608517672769390772810724216511716339683490285676227137058637036394334779165958888963097806623985873410440034294702446125088807337376010745923093650404556843877833939309161686228206558616134729376304210125080060938400340112262662441189221071618918960858269475260861460008491397192654955481606337414128415602574294129122509670262051303492371915975626186567206065937811666421126018881917989973530139323158787638327399795519067629119781161239474285666616509294461246181226508569011337127570990233411998968532683644458849698284479186487031328570888616575605759030841395510089401037285268894158429693598167691642598672423610712328169682398174344863505052665469836073895462323460766329210707682513736065450271034889298801591195621961272932728847318541002250853161756182468597482694179920412631768099730804179314898728129484862431740471562376313641862302707749517797570397796653280599303806154854992467949156881025841269232235853262896614309446439359659303777093647789355577548521337768464618363364917542592346112454528006153198835676754929301283751782089564498914402298498608850257983022473602944525941134449962662460183224011093776336233744256465953429509267746771022961232899365392712289606145471032313682659357262846345012422139345768139173890353203182640079813277403688718238978852329741129482650690570559263878403955012329632531462616240804060803354061169878560470835886046180973528520285847369630787428595541395126373252293931371953548909129890614228429257148436766783624457397998006136484047750234365977830848182427616491489274474320777222795862026255232949385048114604539072488716910936340804281338299952137715130508169621614401129184091956743970078355820022367807495757618697876758417365558855061015310563486653111314413233321491217708723091334125476936639472247656823344473925185654143924622631581167150642064769043170700701505542463403157699424762204157997999634397163475750545529343069318070163153923433388169520531295009812103803500342251432514047407695492321887332490570499224841881943339209777755566312354227374115043949752027380011985926359836140122471248141641195911327549422816171779038779243145393370296301043477517550311316972861783150682792701694980364060709061550433517265983079689166229866532554657198231482257861649044686911271740878713992364145253892168848061485391236250341311023066762486597317001333391516831462793621793603316531829306458103701973635255054484029923674735179827119345875846581257722921081375039566212722438622449984784930928023736663891030736125458193141880529809158120832731513086727301300696517315925868231164600985391250476234604129721639198146687350504974097411866841157748657773458707889835296193951896926341583810547064959391229796603441370410895192981377994241806819474273540252267751737463155532184572574429569680297573001130442117026016104362855700603618884458062412809695554714868340864017008758489389887609752418053133074585242902746290084124147335039684601661524309877250432919795714304400478400266432657353541225459077860108164706668928168731863856403941179590128069465081093641075303093528487920078870743866497549390135117212637682492178387775194941256212554098744244975022335696562984469563703526553521409542699378736458770734011745124853063514935578679770294693620174814820162465989245673626367379935140112740712418065727502375747852558227764667744863503727844150867767084215340278673770115249219028825086987516181212129760760744929873411797437053257452203638917684688320966292213884353443707240099051140738281030517463654476758506120883216453065446488732100573905089119527901559857336187828083818129358536302578685862012927538335076696680409600077925963742963038466581864179457029634698408284209407139931309464779502522735930460375579549630359089182882199581464169457846554582568726661933427839205248300250730447431876114267269711937809686250661697026784657696645540203587001184347207071644309831612866060459509007106595652408875093156653586147114905417323714279214953628125066523215901292021779008243152891614904706459230500413432198651546890403564757005533892824177677809527839962044786465608448709707775913115814291193376869725147993115521462168309042587260457255787378941372782009819726835617786811900429855229030714218648949931656420524348378595965375166298249736905327049057785473105812788221723935219518789661119174960260062890738911021074545257000935817190036818671128597936974738581913830835424322382912588014829670186177159436520710635204913754772851513791153937990635135611780114929309593348348392382075573557816967428280664396133492723586364111682802309699874268140691339668038287650684473600433204042483001037315293909285174293955614310365358245897365072922734751672768783459902810961047875966142643286623281136821486503655990158321386143998805508360666512191961796167744709297791569661992555896368874085103054052339266365454694508921410984381637121593841789468383535214998912239323371698027634162802488360894148087683975563206437658481895719317561761498214133303151321155847839946163020600925310157197689046077783082684664636760302098525672966978017205240234668614994590740442084341620519958946957558813318090352308978407406742980972910885958329708442293017803687774717353532158945590026886161826385792933271224950159766892845728674419447082294164143071870500735540930618295901551088952455601500181883359968339680801913365232491770944047582069771902534893249371095262874826573720918426959653956513235509410661274595444518804417260910942048431942784179779776670178094139703751741156647803290534975420174180080743827128559537162726072742408304072786892918567446212519549540374825835302500410507241099621987159018946762405124807192191422410670596818557063090970855471408028227428402077845527975191780591498086872589328260892009439693889347408626449896233963602337630356533213698823412944922230635346215166441251027296672137536018877386643175358194246984735402114425791484382815603819780541010607426430445752892745864975236134595547488652671282224654690355639433308611341273131230641718177336908251370171859716339939079158101136287658108520385778006915350474518417049596119215060670453471658721638103611170096168366659330451183528849086930582050854392077701926010913136777050324128915332493778600826831372211986025672422868709148017382068378615053368877239495295148109933875434841016659858183155317978235266433934534579361897336168526261211569312287811610399689711963214311719763773018582024779333797081170103739394728760229836381915759643395666733402381212977843464052330073511383300151112926952935552439572251967567119944550766922612341325693647403835148738371775304761812781231941397870277110013539803389807358536993762682882044291555541922044517110073788285626240934998536970512182959455505152539069665603657826095788713785097183404257820261208010956406463230072228756919218902693788193951102915307538132817480140989030233603755234304107483201128987624797299479938759717341232706018521111177286369636763319960837856187872603706118202063942731473845800538943878451964306072552224392400394430462328153298167874659079134780761920808484691234751651959292282565492051435971920375675330929966777848479584304579272751920449656370512557639256015478568651594014067650329629723121517153214593490122919129305487438082538800329788431336797822752082879226116497839049907207882544795951847069865751254907111225752854660841528182573781176061364943576890242586991731478257857295003993581358514985101079215586236539616435536414801468878177111488568540734204629211287340157968233025420557465427750653003396011687113281260963945681758039197592631102030973930707599334017109625966357260812279357495569510256436125124789585643113369928924861046403087780261225079027269329553934212273195457732149374461290484577244165468098577686072623830411577939348459442744323793366712005545608868952438270948509807090008747492837238397430330580484453854051062513075857077323318639422741568363937159713571802819782719493283621406587188804753794023656729104223406685013484294475539165388377026459346741740419704255585444218931456017190421381284399444625476983935576750547376222871781122259188378390231503996261951161732130094142140458322844149302345142454300606694237068003040717561642224451914429059682721728966473818928340483171853742343431401360433224186347171456471053130408182787792127621073717898603613237082344545462104297520306545957637829639197131788273409515519959180269856165302246404852104524565050144344170868198401405819111357924554508222023454499499252087461651866955216915588003492644937857802215490316552399522038300121216597997330398839230036977486188929462037300130673293121198037726832548707218345810831604290713209156570949211288112213874421730277629816201049837311892544866161343271613706973123181666474694652831776026329448027448065271897018030608538223791431907373495597250967242121630457514961587567681288832726504253820170765435872916544034528563922108598657029609112410902432087468476020606828531865303551380196602854813885776066252964604824851452622755092894646060378239901639755126994745341236710823542954411130501250473883951123942022863486604431775857381056566182951312902822787918129149531596187045756602973018916718038834284904365858936074023221385830616061057532502635220620631234194284400991318158950298625967735314476066899872558076757711712610149082653971520972697631398591279315703839020145507542020049041391631397353784146296577811813820234473255871639472386414541515998803963359903589869178485408436070625750728931469928090917766496990918774187814538767920901448405231911875961013115137058961578316565262730169166045487819448267917472316582651188631660190707192977116786801529276838120574162581662394013531225689228324616341086392531381922405296113793162267226294002297434885034205403166440063628320089612363537022739805065762197879694727251743612800709072357139019534313962627743118449319610872898355779518118069179826845215664410856237498031746644950269789027674338135096595603333360654969390924786346028036995160116477846257133198375607042845537659803638490943574857007416510347599446405751321126929576480568999013854602861260448654522876339707674040484284753739876539503469435879218797346876979891425156636985030308352796794250575073771029902924873238462011941786320090487817722731874877174439366478164755565694331329714219076795999033014811629176060316093048149040182470605877327678975492163823629520953559923303869299727400234021388242990326599018334351978350149470135118768772751916778470106644851444844186670699718079076703900270543294069120582994915358046462173314941697626817322787094206285207010890868414321573414932279995776031704146497700715997358880138363369841509854258913250824162452800888829090757744560176073218151388520780298844823034295454061515951640465399296009127945793836837144684992570910455411853739993211990210925728211213963262439298009321818780529354520109878581205815454044483016399169864020562294281011990685692566926423399578542783323453558690665030030082533767272001022846084411218911788436085016347471470064789951339540780680029147136740786451755118339118317060437470230547943758698566084351727173491211586036400161540169388454594441104388898885644395999806192722348532209190939056621470769548193459244797256563172141879147650892767658367390834747307580909470893971449046978317233233931762975121511533442100759101001181794936198535252923572122471731172013683680754907954911375322261170829461167845973724067115038768069846330445337147542842653073515982290290906490900295080579471911068235652367966612709774736750821596106990808314938018840319768574942263915841760207830417218294308630627847225917240212347053370257142988420024345779998712279660150128857728415384783679360173758619666187587256113470771552962046355318442679754274361020773862326216752583925503675806117433977796590826086814492684516074762027675384849470263382732617696687346584685444566964548181770682306709652805192910877830769972610201905864760460165913101058654208499258315896818666304767021961638723332304720097477594253676948216285510857006634536834754894289414874677034199187550702135565818317245601517449353615699354045224391377973756397924343647047539701271788863316265154163601021725856069720312657915656601089646405547871327607040983249878282812706552484964039094011195530996469083531539338506749273297104604296687894502558783145662017518232016344130062226934580300905936448837081228983045209172723054254625887551953310722155966947535860199023107084623600973706256217315987527619760962090312019880539902860803917202791844323823953957845244150861665993883781619296530868181425317676194085559317806797267931726269947565911238557322837862209471210999087403487848841003879619028881326221014128263149189344424841384790210673558248926638611566599891537477060268049525040518770538900072625463027875164023124095849388634308951885320071867123117827768955993634173034405772079809436092268728335539761902943708120179159556685297889895545410715704122369303085602936138900498454813123203161415786284764664466910782075341254006392597515023353478297363348740049399183699323482249044363151719255297350099917468128809989641492210706979211523142033368114604554431321339144066120557590651096464183012324687386158092344667565857927902580275417068464484118012905178885841960570044208557541524938266040604438448286283437781218724019960848076327192943320624111367293448372933298935501887700488702539968189281632526535699153104028854142500435719753648877324431113391476477652607159568465131983910833888988654869180466645547927803028755935411460135460917868789911343459867566171363361015285105695554918597630587646207113425923595863359569854688498926978106255466729609677191946852836659473386375922369066663117225285104137932341069631127274636859283394885434601803256574649649691826239407433802100041158536180169648805596814490115725175682898455651722429841758283272932693359020285499495540139036431933307987646667075980429419884169460770082331217250468511468292377559895132675768361190942960614000315576903799643645057380115354541494461443279182936049908661574004788124338349516092650268582462974040553456337095699298746905511023758794348036086544752264177370963593556565294481665177713458510057570602373833764293631946254331787774613978429777483159691777935233083717309239090636456864590464369275677084086638990345571545010966870382971095176572440779166527183358965518174987508692069794341112197775359766823133113952423823636075643882696711635348933429316991290546834897922797654412831164223291041838624093286501548052471921492496688861242674254068631545053691509886157596998305966540137854474852999212341449456899257256805675744614147928373351993406063145564289035199115030048393700120573160801361674413614764696113333219068108859804396209888234906432528758570929138050838506609393047429824111514794251051960149232220903983887755649290787093861566150847700789974301953832816241127824710305990946381485208476397759839519556129027518340294382629161614484957426384579229425853543640924095952966830875193987688311475622937853986093411520383457404758684545230473843108062096326741030041724867345531887251436335334153793709445405740464331422474488109146570858195118462834893166300113268616179150376092351642530365559064957232169103660919222771930623611412524227612759248420868614830472055106119522313293142964083281335696904044500906103369468464933778825434608188900016773856224980962618865440027163525595702413243406993531021380937039699344771445965731072477271753872211044527995453305888159489064054056102901673000760674103836424064246747465992196082563040272195671399745954828225055593873768122808324434415774233715158866153744612490426379931749652427215923003417049181356831420290011799282864570257730724460865231240136102718803110756002075111780403870084856047682367067620390854826635662687760634872573127696965210225448108291960867219633711526750978823518668181449135456333186856297055670294452116463393678673925543329207741585365653647361537146841155915607071931832945661382970268762681169133752548901144969646772397626148502145525206365504555732438741845496829750976111903832190233089809125996975759608488714519585364361478858190190556645314157755585470499469234213341462336713755110285074887929857819329122422759768590624399091124913673192435500278403560532651285018486370895961243895199345163429577371971600231721691531099022976474531949723435211960366393025438734986776856913928706287920057768733678087135041834493959330764951032178120613217337771383505564388129341471876357900188778825204719117908669453204513025964474595948624437115530233502337915970975403911385595094067664989858663449951489760744466385270417466290191186183722930802561659649867816944741489379374015686518802467671044605507352637399428519566910930414712967853496039173653004990905878381038309078021759343132466384046879709914976373954059080171233755006614964370306839920094670655567755627571893910249661692119175689978444897355036115377805976490664618005548301239919103554222724921179217244610276768747623763780068685739431626499258806457816204208698509893563512391947655124909827760113991727825375501490716617302074413451783475075456462732261491318668865331886796852846229541998310245722104352793448924569285147959648075554050827033137404629420355280449277648935709678263021073919215191662420316280335425312760311055491078661947117078810021206495996899651225336607302445490248298853547627136297373385802291769496281606649927965680856541969413776022520365408307303845654254875203658345699602171139618327679328649902661772552601752891101245846316615587164511114849414758579614934809741994070122712396893702523239709837308033044661705567164254031604080668386148099709465359306647619276309683908605808552637149079575084507927783247489381810868000837898982701462498274881664227206800759630658805312149657298698858987790178281456164039253276899506658359784216174430259554683789783911878611330743859351407272239632254437933094087284464074298672820734160261175043945692849800162506323561136358659314675186893630400457892985383397131367951997326005565127479874058216537345439341211265901696871038382102156526585022625865563186577276053967510607363543440893211101661144298873732860780288298661626252385660128637253578873567253644220182808830337696324375329737289729660980929265448703561950401454640177001159254391193975116907976105312593949519742314595303524185117869198713301100830075557192231625711989317592407673317437507982685684286132206900581522225790212669510871958227102009139497634686929783693567680258772484321630058164337580102911615976586274219331345312134494610908721787740342993640803092450432904595723745023407029845161686739215407469616411488637246839662905586128658661125751108905671872773924598659262425368570813289283757046649183853933160619161611676249178107254485411823235312683557309227669847768268989800116279307558280645757312931768154354680462514856735805079221275641638693393930267662636525612573452869061218698365478206854548056519708336137528469332188180779848188619291341207960247788228309992959236269703660548535326024435803122299897535178774641000749976404583924831475383706620164135752858297662317264974306990853510598805589028848737769742072737007719859554754388200103601960325637215770408888735522322565631496345858529063889130604001134033039057084951214886565084374334197340614044307619080085647451576130698142669852139349891929051314323816570419586328693077123330823459530130498920515681342332294239046103679950733660573725620416798739846865669393082455085191646660918767062371780354716161876024345872174431168582537142750147659046681233724159542173056818782980235356748990846491291127960141866732401918312056243989534092319090060422204273224071179074916130747460670778598159445905733899844721132044339075186121630702623655249908670707730165215472705268390028092182295406639552558108437631757438462465149746508962047330032783311778078533208497489971368504793260340965907161765205150160945992998269437101151680600618263333668427698712127677502482975712518192563835304972812122295176590880803443754712590699577791429849779005669916946383007284133198427562969762215639561630098517115707456175681350357061429140574677732016077614494746833089604567381053039963667339344176846645956152305857004876268587210427592668511356779203351346669034939266671351935530120536313033556273344646324363123390816359942942999245811273401001541433102530256852392408101210293029375328165187635629192233844726559254609953077417023246970899041991944926937859357195141178949004267769276092089871773406573829800800891615226505477023780316278483066980951387597960534219988876087331473496853081057132716618025543118351070700231743293893419057209334206557687992927680376292181880408091919360361958881643099344660988181717174160771504428336452075972981310789994498207909045045471674193853407584314339826707895316411485316169860079172232360635242163647022486596347738051515373139298508660313668574723528848032144465597454025037540495211231177906469816938936086070450469721281728763006618741185100960003597244489653096412461572955822287621366872080698649706640726803439802909995782680332821326998362289715823751207607195155963132092894415395452442679451975487584573564042797845806715230998041557549236160070964475347010676168947876495136192428249261491604766795780575107336400918767524363448657285456898529169769881517636810763933007764442218064660550279406344709221599834427915128089014265624173923199557039371707224767825174095503807497781746315473010645092053808277470774805475967692606469905990749129933049664596404836872871647585211639844896025907313891795844953202118415654723632639435882275253100033697907892621784172085942238626051560909296346805113430383318488699187484109829048627264860149717560814285937277675569350062046558940498822509479423456761106321873657664755929760834234090428787616032284047480054437184873716132468509414732099587229237312451853135473738821055408768900611221883780051526623844658316648476201278782617103967249282502476134686666050126686085803156387611496793839699494957275861566461341217370093262868955540834669519237973660355393321294626895264536141013140426231200506266200836725356338318921854452887195737785786852081338450890487889810142665217464405929379880797642440232876177774007449144405374292245703921672202408999863133583441727017627541963724545721576462720928024558220050044965425853238164744258499120523255478916632039669356222742013025614067385430834918864538939238858999783090347399626482745732011206635755410370321531979444504391109271574790296357016726359681077371186840896122334813131537894092733535578667048688494400991421130341236277316674947727711900670394904674573123130066877390378491934732549059435870796136132346334287283268113415300364990402399795014875099032011811444975116247041541274941565592639038904774811170146994455825494659153894683416319662444809964871807764993154716513317998777153181610045635500579805248187387347365530980859137088661689932419033346630495656662847997124460764602667096269916753380802937713488760620403181588088929069677005331475791290571070946032823458100334364370269020893131863655198803601546211647780097179113279327743735627968972994666444234631577863762331633590601065661248204534072635366620136079395352659014887595223049082869897136928460330304739309086058469171093563264221804486240912206833522979327686913544228422297602080598879710431704112976895399301278358519722761623791657720458110874270871102360996016866048339880644743488032923928265351877290748639594459178247942369173064250362314831250809549351164266625987971942538620523192821122869667338765232495745291785123680145082347107122225038808174063610915531051557808322403240764400494398881754376976145149599347937910934931551673783700546823676381641025260754802677686937375373068165645002749186984142356838433229749805414280378062089250200416267761982185192987562116510825590818118355584780863605892395894561600313825964896731451568740345106279553977804079866174035318240632897163696406803094117524191920662543525278335190441135973856037708186670960145829900335770928848948754265960828517865374006783543397772580042803903318332047956352173926896694052704207795887740785026959215160978791290537464897627174071546826354066725682797171780590408118876897185428873620665403730937367473309139476959977997424697941140189194033996165930752619199997094641098928869814653109009268080707857168837731660978974218742362851871505079773699050022909350409002568801391733976499955573622942718724801538277502660909783094037958746109121339409126890056266149961227153950440479555660490713018824905928200337621723306609633605100047549828006068189024331091033963088192678687311684271664832511039713981882068215303248409140545309567323739866357810054257597902990633688643382502323315926354669954293657733429690829896607200800504064269062635790925924446140094498145616191482097089960179461722865375255548697332347438922363738824106047577235040294771124017595500292333516546996941060993282873477567828761660434964806106603890059763807791122413684498072330844270309520494388883084010507907419717839496401020347661458293930154138227318915229371511243730702056479345658997441624536908532738896506979644795138670089244047620243694238873148088757459206018327564932205527697000446719184364567687913436201574045121868560043274871298277629964002488467231785593863405056515091299141149252830713362170130331616899137942432144203148121944187875449208919834636191652948513940856317713384828616752783841228102898840569361821008708414829278947868260041264084837486175991238213535272586438296406924001063792397514739712460894394587334408145487469452123580129358410967655601811386921723657221637358319040082387985681792804606365977088047797381967775142561168055126648600963706854190076478642263044049108862249329322224819249728161208308038527390392550788346507832405139923873797047127139135042569167125979224085803807722762658153422908409355327882932569191392430075503265432339815244306694548781584493998399597553483196544714142827856745125422926005940055574676370924093429261800002658467534600583653378164285349011196711740214912729500840147658284233325739889278743045338279288216566625463194245170316481245132650684491594026587770665681323482682097660718551555878740134662888611477476558238709786565028768872409130708974820871918375609274271887707451792613831105247297249999503243587928876352202042940955760774466085433284695258383635153455177324279455296789492561609548811045460056413111132566613818423583393889418681673287773612620523871736243428900724417004812541159101259714380249944982711475872712094357330765602384400897643236790512908909704931445843901491030930434799512502307424808327840248730676340177574828171022618555167909245201887459857336687037800572504884055175709837321561726822549721100548197505619056373705972209140046454579396894206735377799886535417545039647907670695529165488631431242757612469725422633630270286103533092495775513637568640389099909133736435891376056997100035109473969976508752231629308378114016844779282679510655798592309203214950714778083296687456369955457979856480901514928733589557084202311793707846622550081224247344359957540627949277618137935848210551774254728690142836953916268677525218616027737538737615154146221057131765309223555347132599057418639257180223570030470558248423530258178842804160576207021305593360314284138275587606048671200273479445453934850262748165081713775904908876757707176386444283622469839308696778623473273206650915037141502277342473615685795527904486009592445439425671409667139864909030667007959590360963120994111006822783442440681373502270587944634400701189814966903853960347346719900496578135214537080277850628363779027648690966002436161374972602940525457938165809038613765576682789161202509883000408219182127015465411048527530396645445029793419628951879790343298378610278292881988744235609610862944612556412586085407488379307215662628519014515510189348067992648296697429467955317561185331663569681960704931921346007339306967045451384268945081359485859189661129607714029022209189122105939795626009973981485984829529361986120087744938865161991672385522068368719141825602637757557747669797158811323977118617499425704812840912013172432539373652231201607541248805341702909931803363859313451702855114508148677202745597532631802290966798314913448061961611653746951911218600733986090613977286062813255936779582208824473006607040411220881219734925980546258698903853270872333326970003989942281641444311308986561411603298532811632247442074583078352417159642767837106515549478222435791631133947108664240462945840392278260633710246299674682956425298160067278146620092382160553594803856161075411656671098325608119335679929151229443028415607990713300239133596078268737950808459199207196231060690216629178558498363802670583705311335019956703358050790763120259370236425484419458794196700634339045456438164534362623657971880433684587456040861036695783798867562602691854247622950907426532222952504056671921190142963988989056215431090459219948715880208628384861344696290093495151496963847073084040099438836667977913387451551620418983953048960870077474992323424166593144477477685763551706607851814339574890521376987707835361594329868602621861001260683526381839865985106120655381702891548876592561641623836639323485856681803335389091715538159829140970688306493792205608538195999910053102280755665420482502603812433115653335083597324810506682372728053542241637549769802391617069884615858348230693995053282629231124019438244580914396271012689193027017354284389107044389367850613642306245576160007620257745343113893792049437821096801183170080943949970521259342290053806388785292347511794154995321516454020750885680370166270619366377027194612419396825486701349899240195462529971463772630578839133591465718545854912374170359464604224580825065360480830737402694149871221907173808357114057034904753483825565986518540106537750697369900881457988925881672762589437181258741212499832344763183234467268562004081201114343035193516736128848444528505762282116644646132586482305600954469906797497589133439275976474286909975284120614048591554726391065034276543664490098547998552708126392263637301336095295845321321297508328208805521221538591715642128376981320262107351991444934393615848219814110154835496603124980294740054038873672103811245216292562171097400039129502927231177055174479474791370221012549703715477818882997091726891772249699607136283730584290611682321327704864390706250218593053227247225486254305371056006419345376432410717203620247536627353330427418856466929940728485301510061749257983753444679764919609563833296687483713461249464799480399449701427826495087156355025562037067301890701707273038101742004025522689125648448594635439175699714369160032634341438012216069526825193007231144721062006290678422248480599667457328678214351443899627849668901396882800992863591234108270980422553005251508561929114461004964586127181234656850309252246950743402060900395491916921544241140100395189659478097124365239351870018437410642873154025439012435493390912982448565119727733346706262789082547592399013430936613514208805661032281897449688171807605427604730486194375341667653865745149941774775231412754483486317710093123771483585611990304185468251286621156465012005898211614920318129940176838401782290841072488710373718381083296351612893554639155143989872371254338525797620774487619129944503935648775852972038188427364388967567883765095708170829969705557135195240449698354880839174442436345143309876679446537708417541589226503611342995527576549696195178911376579632319469735369310513370399967191964453826929304868731651347964667631393320369600180864791018895538284088787233746819881723152749488154156164290568022943060899371385431767976180726885103502419523661175115328020540537278897760448438125259373485646161442280424354968830887728428643558772722494886282110142495605144289148985589645563404200982057147191071667934460198447722959990263524738096492637919371167903542142384198451040613278729199868566792843328695383998111415978210273089396071325427709665039316342351994516673282640240298163751316990449562676708675345776711599767449187217162372931686713819966605967999625930940772926398893341880985493332899366100817318589534830149502043945648906908920212797794795389121859439239047247665171525386414689487660697601309011146087420333651807710670171190130376238213615700134382234153393223095270569254916708202051763622153082993312696540713542735565731667239100448006373196877600382035945883147623459189165420421766936049568663742699101195112012744951625953223092199645676946436611684598155537032539019724428480688506402209650222182181066320501731012815218505747582981352007879293308274349167560385904689177479280634520197975192797422515843314249255174408535798614232424378544018369483083493600491757378443262553471697380470187227575638726030378178632403183118549748287463673803205066821514974716435010424210314177686229244821368699439873522153946346723981004024293282948635032614071768349443090219319459661720900313903680180332203053050811625937311527530134849606039551455567163814709406105570038190349407772487662133382436309625792059282946135907707282023123313524292865187543196901259937091595536995190534591429576260456072653973047266035345506306579050688788126942065540703372048553082581730194154863049400060297160937164520417502240152853668167630660465483513007661000234269495025840484503716910303125022976222324986145579204793957020196388416974156689791619102445293895612511586649496686992134678959997475605887019131839746652891711347090731249226983168665108380964348751236478735177254628940819978009540384967873395986711760578243729194285973771689643854165763632037550956908243691358700310066496027530999069065821743088948382432375457821125166306466043080987634842604813678495279166333555920517283660593427279581458229298272632116102542791363525327603207092357486296132512887210326614480503794746124927919253888543021223602502636407997297817434860469353228787226797615125279738924601640904077596123474097525208265541979779660023304808727879334769585747227362470803486221599967870231231273463448283831670289785652342556066477097595167768091209194647285282335297039572521166680795139794558930334596181297345909193131964699448955221999203606490818414613473438118674256752974140397910364053517971719310984492915078471391648022104486686223434737238067640667960128103564548549710147550736445680379500866954995252518091394418751324512249579811045476073114424948092195436555212619665714073435396188428086897272023795142259633459187038010646725214363801644920263224389460040501624024601848562305449351001293749664150890923828087668943584282888663730294047284394166553190735079044219553107107889698676709926860058745937180633670969839337391295374504496833563267369050523123174273282400140651052317688736536689873626263556717777343760251116527214379745321463198873214135643507119038269855943379303478511712989504645202742881323449118332208961165466329528460644458906181145252615101910545936828027900939345330906083496084347038497373209910282610587031817791900365700673404622178984712713654556660004909757248325022572608700755570701235372459207477571217214059907185478002734410915636128872715387899536082480502390247618809665157641481431251241604538335299477761664469807743417613903872888294740295915346254410207806529594516823821808907457915613816177077948620587382752426027860497953048614818407406997321891683995722080767886778979794691009831767907288208040849573188395109911318461605059977171998043485676527126682542634935005630765216188473452932194228577468888160337895889514450693101709532226126699248162947887391015540045601013081411934894328456374669112720844733104785865763686997366566762049198225335324086579997422586130208330543680515268182360799478452388992110920569974695549374855840477940994569232268079794945167429668276025490634842250825681442153984703446973620087435771314138087975518210645825806729351786942182796039174115717370336088972719835110968310015113772061409891261704376162207287847317075735428782173785065149034772239528751195173164809705799782019903792708178403108471108399221498571370682455086061607805829766380937369054827692578690985351514477014903399436005288640817094037135258103435613378976023215027070312810726679433417528860773003729189296145835770168257507830778745564171404578435894126957763256753777081073869377494921189321204562079466868384281791984284439416116553203607273652049262944224414316289167706104237018209589942356260548022620791175981936327652993062948975392339264223236079320943973724882006816896298854340832361106981742617453644975352556368175318736610735496366495166897918460409136851914033306559969383179603596945278109355726356155050372962747486969945252542979980316898996801657316999204381031762950599281506637662591946254513130300483653994207346361354712968040303672031234561373244091415384422321656037663878502689703543301884931651357689493968510501560685369869051265931771837729816550912524501171128949618057056840579618219326087795065789929356303220466678695217681213133150911900264274375435135945445252068813550108870768303012895252200129243142927135807024510297815472621792792804637665990133081409578652205807850143124292167236127967848892837094367729035755640782658830775972182393112864107905963550159595227039020989859655372841575877214677963870404230257491190169155019641474673783853776796442685232575724232509992882441739649848460325241526578732228535553955575530140600273457148102715164108876435900958885956829762657737649498241792694528241181231605087763453377187626795787007597444396034749653656011393162826917103686650653563509336317877800787490547547041505054450730041682591332376241757575327308481251798300040472678670463417521711216117899304551716437499984948139683169554340977450291254442971179908699243539192610953254352189981964728693244383229601134157800539007465062078885318580297319147309615036280594880556162669702314881913959187882239919505787873358660099393093206328068326236611972713031764172164795474974472227220128633863847498438209059706728455541536164030588423668666191170188977785307335764222240143202236282383864240777358206425832244897260868347540126762824308163594383474724471316871030385371116118470922829013159516679295503893663098131028881667379037981963160196501841002331465049309817212104605246747812095945406376404060461218774259051167194713160707946353167647146592992166026766514690466634693978549405896266081855003896367435388158490549330321016610288422853100308409801081290195480958838116390983022862444858945863935130596534559004846686535344155945162513567016103283396608976216041469343361760319801059196931481535078902799237346788711131170345397864642825160637608150297476475747508978317658874591639089852175179876703678475378025444754759459909725311799218988395487221823214947286704173411260694472858123063320655900075649101887294229075780595840283532154825739353517930302564507667698926493056684317685301601122353330558681630860865003796068417169804488543208036511469051566824170583998714051697550347854362778335283314393249775853799878335994367488301705446960495616687877914774574901688417768898541182583631033631689207127681794164363515718879562879220117320204081381501522412545331545711142191265470055694685272042773026338849471174419641781337274883281972864068049236099463704047535864872678330481880713549384393925183862667252209991098378123634042465788425225528557242141418284390014235682926072702374710244732346611469113143410483783443089825067945991815211971204375383571299110847135859406173017201111307534214451151151127957419181856199893386890891422006350057348327779229792983917326822892690782058666976653640299822909369707642468059550193234953492378646995607163383610531514319778026749695559231008399496383600229613224035266756587918447616499692106129613928394286220254969755801868239187873625708368203577994118478769249296956224099246536406769043943197204765359405538915237568582955884313787923413339790240837101254744926628287729153423178699945114763118044729682967762430414836798986647229209907571525792412767153324182353534940779643859129755088714006109217066920388102785636944006089964926203471368868245531736668928514543215091318186799175715853341046802313633730588503149380578947309747942298239871276020734418232036052207459766524463619679107391712806209981114985551538087084796584520080317986582613968291500321878429137214151743326792405191898170879411913857269354915095589500277718190808714869188246143009522004884429494193985626878928655556093648840573929530552047906943397890468478315038296300217426696398519044554693388092150157391220286016986947630179849503802826686675768219371910157004114462499164683287073742584839727081270146034839899789381032265846957105320423447598379147347526820594319646586555646067924377856322340287485154797460223817234625664178528598478227809435459982335580629003530836242281669071375518379091229688939894869496329145188216485691548435988105850713772296640373497487763411384137716472508457940805655731747409555183022109082613346539376209166781010803869208002366131328612710444259496953715820335327703165207327912894185745119659840852292094663942853227433959323534892357587296690575323478199493439427391158414928598057158891919446953001354958668787644079051488882824462815355275101282067895791304560105950570868797726279757903999450877433532360725421053087387355929052549938743042027049533920674342109318081951286022334437824408878630940950562029968992862136552643068431203213044765646785750054392039217873502571108674723569992446582725881535237889451154746189478619305555248675133701368912377977429640873564525965578212696728964914068029932414668545194203886100091465095342892327326288066231188618641084613019581548994712063063209451046458456276978974011917095890670673588788836029969524139711291159292727986268802600416458484113053749630844546846882654694860963880838768100591595704401937469595740703692299782276753093076897191961674512451790594618778819480534759696601020862396925466317742892210013293592317405066053883841369522218306440446289114210728416878564314709891799943308050899948327680720839986353180658738683536102390234294220885693811143380330891100606221427829516938235800951358514166356754890203925019007643718683661547122403497678924108569818312664493386887090032305878672323515723468622379649230746449100261160887103604414938851317639389985651134694237729641911792194844014810916361104802565716760543523380315427074583766550569610804885152353020980461712099416384170032483975793889614263758735635421176024393378167998920156817062130783649352171900034053566824178939714770106796744391627813338201284363127568800813548839608336181166878247814297793935948474375380285797398634514966896175564857025562621869473455868125657490350876105612393514676843512424106476855702049631384408797407588121848718742794291101273141146590767677894221262219261746941882547880968019323747076376846568523058280292984948450257159138139226737317859505695047646612425857458666336056204824726922791470015208227805368986381103791088027798210332313135155120918053873345289787778974295996235139240405404187476282881246339630746571259359921561238198194699086316934102249842914441234973832255867450907613746891069049098158182373475753171466934326950128020917990550869437807344789867221773903314333485169420829999858072185059335004679105048077242401666911885010648554496484634724504492562702701019329595212093990187570037034712452609337875296807663333076629638690717539969123588635368739169776727869146561090037423500091351729751343007792859796504690146621385353320044355118077789159418387680930313924404964777832417522672224929451691377054368279200238881045630638367885091292714472895084153953653385096979148693898624927863624305309981422094131138239720215135259489174412660614023736818276936999670186936444259925174035932516006723018966450307065480313391325019879691785464109562251337455578031433168148740315680546093743167835209148613349800885861365501449025202800283106604649265885200712513983223475077463663303943640101931902300600025412141561326575098056104957903709247112632408851912883774353179029708421971479677423609077212946202800625926260346782689382788675420167291820325442172511184820067740179969826115285847305507622554029111023471108124000779908428243199315086234068579954751960311640320108482862617288744070461912802342553507541705182132325661064349283442155751545135644906495590295794601451375448178554213528648709802919962615059437903788624857593618312322392545344670811844927463201453139179170438578611663073421511743844514281164709097331378490893916775551505294388223990326230229383993369684472579665302281585755863908113342544854310159016659035725523119058014669216912002750311631360327131089964201512987050908336766042789859627771813732096431879569659733920832846893075282736123714357944873980637107585608391137511037391925543983918165723027042693953324690512860792569058220345361718933600818449115100070083519605046629986681184158725850893253176583149721355783720202293024745500019608597404718065668579041608255353349613874787377773325361640282513116545347779233494051646275358686552584666169289813390242567928608588162021603177409266091570896270380332449720588739118672959435598481897604706890838289276441241346257748779236158310912030065477121338018893533414985894961554284575512256205107584310678437057410672531928758244463896973759514778802477118352532423741137057381298246526870281829517232530410839531396582831467412295759460419341894346431184683331484138606006750552394147881461285771738668521266582836839280638719425091343542866097592826390812739601078111992592155972194042638054534462732266869062482596673491970906345374947464511188218183728729257334676338016178956839149159045674012276097493076197434704046352753721814359102087953869229398624672433061287764046708491508520383814981324690917269011292793463281000560482502018782938337785396722717961303467422617470455566739729131046786011266375795898054742415695936782828925233422371685065559278266128777778815336041142946229452575177091924164790545202921554331991121749453270083966599696596778227119468129081304107772967782203530317497412194878192428875244119541017947104117354251048606076618897228653833426783795838133339508461043746109415906250941390406159258153523319642407757845781887859050456372218770655440937884945399948480164874779657640195930035097816562433379969347549277735120024921999927904924600894579767425756240059834614132856741162244048534242854189931556193127144728550481053410558335838758515600026159135158265365814128300631181690702192792509012317869175016298519552933980381189198450576422262103311628901341884556676011288221911504726598597532338556748158263668507539137615234504505437083395493038184354004362598865777329460789147202030798726767977523785647428385828885958757718771993459857527161391989917210178327200292199503648902141787276741674875848857287597335667265580090151551801767827477243716352052750783175369968684030180316855039845445849119533611743991537205609494724178876717052220544684741519905381209269108959119814307277761098661924194800084791738209121168259793399040104615016419195154166832037011237272072328935320037497422132501811094865782006138061713293765604858905481880964928560048481556523067570162820262365822527867935044393862420102054141604836606752108265181041821580528758675626509121015723686305530041119590547314692576815470671269090812792334579589222932828735035338496584970216213476238097337214697573537137476983651175924549211084356993263503941180600745316519696631107677752030431124504098197312014227268749798337401588502487817717214934302549349260921359144320258263374199884649526975901430915247174966265569427667030835420212857847698802147563783128635321048827573460371845964214792431502647871254666091941092677837511730683763596352717779608660265349360392455816361303858700753649317779959953673479716879299334878093455622935552441333781812585104714531028340173337695596735731875098894570626849425181511635268839300732247079160920203615033161257440176514740547203201349440402398308650802040763969105741311021273046663145702339949672755179517579947391630370702088562709448128655745092144717051925802620726742897962753697122138547245243074712444448062374573103551123932915815445051998815778245335086842999400248526485584677598141119783164089582633947819895058011329428306583887232436614130237946705620884190312257993513586870216680552552549680473187928239399983425168700006451860622318780473454577239118931994738850520295344703359529311732828444819620134883293824356015657379366873529873504647422501637896886037741944037621338273423367423480714969581852220633264591329131328606014378648967967317356341167623789293529815770751433470238794238704231819745166310773564565240235798720573210511287878018007116049509272761749804777082438852611511587909986635085850034528880543411892446031302243748240864864769798476450784345335693567667292663183176405057970417597502661620308620193243014908434515952370972481967130271436329530544982435883066831244171489029630416454380932146175830540861410301406036847748271700342731587616598711626705212391871643504429309337666998733303505005903750868283502235957950849282482617801349813944939703895382618763271003620979870763615397372113855489348137052141565084547127188047045449989452038011694935739951197726098581515921775247803340008330753962643500960949493725998160172493271869726885246323583381825872604873384489962140480088864323088648548027146112333910137650530007646631107596807505702958596687569617938711689824495801115086074628632391623184167118261063886676399648676322649074632571414176022743574111112005709149168620628730835491435920935125957389489723627186478302644904642997496621913021008042168971017924420787306430166856658616603972303410069550147773198409947765690937622835954939866595824941394439929354914789181057759754223472254515320764019255007386078718999780717010013773375050547573371151346538314383314709087379447926309228153511645482919872071982489576869479194485396367228811236227484278476545607894998663128872498103673239124840846833466898373127230112188900501054410262399091652525965003097514412323915242507199549297420485659355971979078648150277990946248278178693325068249848458602506357986123014477716045450517008055561130254933027648968167658709213240175018794095965336096032714007236003100589932509558291750043722954626822610571944365717024497062794488901616011912020797291423938129086673239676673927680104815456372901886540304835654799861385607202653905409103285249235951864004529133831548811675657674110454778400245440640166773647671481015666749842739978340496567260023902075365758978847785162032783511697220102460027307513696333594662206902279769255255844540954635697161712300554450763918188846746968806839121714168288181737936262029307157577979214755732200537601884420597752374498263996825751772081605808765037311606136236061172019439128592005480277843940708731929752444963411824868798373035154893186200723350289059114342240111177893578892030611758257701557448776184047386617237992979673489269249887039756275614778835963792933689071872205260562968460227327759206098027725117231663659716343711891115168397609674923782420682052826176937260715912318754332364573281548508434403294078252334345797107198125813265955358209827307275164679755863937702784279149517810876950866368251468616717007091732920864985921786008249498346690628274190960205296456454356714583212102482970469547950600087999904195670624733118944351389451270359890126307281132095996482871204327515847146113474034830524165699239448298492067901969416140624998675490239399583748729345278985161406381415349102480063243105692632662368029955536413356348296960981464137792004173416653523324379711699668697629390147028121579832332183827991375742922662739079110398493532916125496116399261959682213718983352420551806252405963673136146367738094293111286870236801481103403485120856848932793941460082918229324497010357486173576226603718600802973157072937317671057450580241832752114792783660193014146184431324119855765759833615531052132185321936343919121518081194129734971562376310441700015655140249827028625370944108282471705134218050453473878644078770412244124462423261219117412979936778193327268112450013721137673780874878664830314447664261411024756259604585317084767957097957312034850003365883473824700825534223486767910138693476400115877369298731155164806372436452616520089470844053833011185042201178845687724056639637752190809197752087395047968916560406208971323426204744854828722702470180741731801816967902624462914396551000235170807330754901297442075836056566532510338066590535267064037037547761133892649322445014158176512982189205750798256526415386886332164467147294627133106669600468108267194554847402269179736136177421622919954703293824494736416940359198220141865911941227032979586240372453872573572058183030764105983907534864420320150963147932036382417246649816942564010356617958367881073092314179854497925373348123675387902846047562644251174263697965091902853365110284657101058368454325147417204851919289290209993846346421550457225219722657415813429439281620774012977859443870053450709472025054297181209374209458559414059672969622178547399837542116751384699599652152397475617861081830497899887874259655928536228562286482054741417577859468306718889593501630516553228004728902258348514859391004296177871721641030804316345336154449348495833629438338908154612935736257582308693385378006974279021546445141197790186499488315966334785558148528416534310916805106019566815560869405941067260456293576455395536658442182818798141313049514920927190049528445133227848877613847998116796003714901654939730021815050573851645880183049005074107721320537973223398718462189054570729050321567706802109097815903103492172980186385621354701315570716162096710113381601016803752271011955394246130473025996992306572029080721465878585252381795869824695941529420597694024921488227951478235790269857305499539511321456032210553395683420796945936817252151469163666166976380900973047636027069097775693897022919680431697226170070905006169175967794091352454236860184246683918544508960327106464860188484244188355228497836737337343749336497232830680193094757525480719305605137871539909136207231510215059529352368413593441150794944449898888351646366813384113582274898267170776080002319805073738188218979651272026646620108091528080202810252288540147899600278219538621408935054742107160497479432210333869428423978490572215690404493492542669574861616087047653074975887454947111446842415092743658803508662342836132377314188407216012794764638247003715748420957661316217173807153358333126084698725947414383494336275883592846154985005646801219436791454765008696905270138000983711881761049009517047723514424054458813149030222457872023192924943160040419856021307534350334674329043036536259495403494803276565995184911893015944662878037965984002669622458348743678515808278266374356537145268690172742898821432796004557118474019644148130629181204720334826199011392841413894595444384163752819246459927603084705845841872501454388586712567793668068294294882122790533076131951807037553119102929006250748947382758693386281689384126853622484112443276709917865549687490867379668722628027663009789150822617859249287182087279781143872348378955629325092253598591478214451428854499745830007271118955510509525885889570004841963501273281027493040291304911422698666863171412743537849086226833122272848092713440253712202298547754093661329310633868491101998127811715257135702273465050350488081617115529650922458835904770567984890984928644218028177914083036004144846716813974090613366045886567625954384040321305189865585894722041063614081874203016016845423602865231159524348324162948808057372066960557764299698559928994988917454899564243382036381548343414341496607809141201557988770852131193415391558590684658667999168207055278240787551022868021134822863295957853720090287083124634890270686030735347567701835960891740707746688408866244271483025679729123343202641894216801734491313230997761948636840090649885294440137439109955977164703524278720731608957200171386047435593558563121752297785134444748995141202654508338473699193823438357182082756863810134108632203568510828614421523810778492951022092028741259529528872839970373115993188824454480197131895789426944095287634802737540688269677029107566673002412903160059923002778196830644291652472700368611631758755926198766281357710484960582698937303771909211445777136410400438227430530382094961631878229835981261903081886461261092640957397505010170931591940542469788785814479490542158410676000296135313772499193211864161414787966916801005922467292583764683118435162198650499250144998184240778291681229621899421714549612489403581141485897043567999148548727608324785879612081911431760526232526108327243465732291828271025683352815933918402411544267069110411762994682796479431035433878041640505264923654386779681696700293467990139868088838030860536160614928578530371074702985758402581372796327425918183560582506734245256529327442091625457809033236926875115620639979675427906437882976500326999683840199916054833157441671306428773723321206881653414179312654223234550683595239283187260196375564581463790602903404022112743016826394428874437197754295901176577574005509091863168931005509529568466406309686922627087995001534030544167184471770911036551964327659862068920053685803442745717428035633860970684433247693691991567292108819511809239069870543957351791856396667912943826796927881381628911071602605360376410488844166794159226709167177425051070180567868101310084885830908984663805214357940209941915318379403619061214238179391459052430641039839485722654036470859882401570070911537175382382476953434796373994694738761266117638028799175545535520553133668102655329469501402576964363134767523413754124551922748616540616892245097584494599064598026083928393711040532560263157336415599176644842507530173032927663860122881117491580823763437713620990197676807261706047940099511052152654781302533615530242539511929412214840524874982146140055835244634397571651828585105088406813436427001696057185838656191422015395692110389429081725839371503755102001846208253930721097057880343171729232073161711127515344285251646404282274213696650803178875864239711757991230846645999522226712075586961215305444365953814402031128893224947138382376522400454002880754681489243867178601612663291530163217995518560055347167950412156496133907496502688917995026607596622555357759699128220931641044678978349017008939197327036618252496622733578227673579955134842916905775044762167681199383483096042135269806319788382274355520258764923168252532438096138044030327698169777533787204155131417868962631447893685962905619280817544919858986197919929390835814626066852552510546700406815104985509570333799240804433827431335902185969462345781343831541119204250455837281769866564595891453780200249187879764608112496682138829200352021243055081448896674559310655599949488555455399425274543500558637886790898365721607206898854966408527655557530795855928790736586920186196861092525182656666274601928702059070175175419960581691962695413511464028721654286546563128168976097417539843374587885144515286666535606539011329921517328778892913189504582789319831062434236202196565571727200185373309691729073679184173980341905113845353453886859714953470681309291698987925029602032567386321912844345635089368656465272832707945684541362564050268272653872405347614844595579787514999935571998894234082835717332131997789618605761050910037581113968339546446328019554006012319231929384233410640669377033080124843122817832732348593235264081451258527677640727282872287936561112704197958175881310605061885851604975658172533028951758716178551783650764340243990812535376115331068000376141707775083622600056096050470892220105833625482530332671207068384257245204420983986868228440273008674818354260808712068071672243479593788501617396887055722223449281640994393564555250129960404355485353615775753712086459493575983248539754320392209750347882282687815541276283468109347161301503562535703459360829872550610973001660648652550930166830014900234606081775165766601950337568591360351763821436245901079408070202336203198633517155409300949304670599188769627648450549894110188062852500934040150205317103167547117029719195974016895293507163520199050387431826567471046912999320457909402971667279608668251710517783978439180152229924572822134471762866606986190929071679119933797362537575693809068076751695839910352344895447869048589565475719278434560198560658962817965384104800687951434990176777440926239791106337875877862727702227953174273786299396174605801546229128758081498538418766132115787581234921838590323392132780032431744030313772679830528500843066081768014349024514941333833413017116105409820729348563034340518835691004519555417974345779429917192698916029033121183203139511607867830470893417362033027927053595194831753987883530404788584595209090861471009245357416472117150946222399970969340154538685681848563520524476761895456176038657468925713941513153954774859626843669854719754466529602792131285383713961837730058171752042640765006697144729713411253018186199957627595922016805988097645033634332071192957064826403970518034606172995296116209464834577574801948783866789711856700179916620847365948114318147139318429396729791440400966761115267830015163492474181178304975575816312767375605047599789475436607625767748521146805621672076766387081288052437569679920936351148517174572723094984549727083764383271806068477196596671929390890015485036497324214315242092590023321461908268098848989708496760649966039505065612578708644869545361721829401743801586956430481031374630892327183017241314743169052953185574851224712986502638408922619582015611891456457173261796920094605282180373843208823306705275175185635709466428059481535628570832575270748953745536493704412617043462760798078026911246955397583794336365632258779311081286154763367672564061257856506015024687297899298186056022885122552516505829009547325067437967959418248504494953785603599740995903172591203718785077655711716470805061949464816367652417319852696292346119705403135054525934843032056493513640756388727990285624945690326216742402180826970932425617175379998533844725186750821694278823633314851368363585185611108353835674062194676613640145051967481579711163013249369210714052380129505713389527014629461052515610107016897292847989912346756803237603422335607965165509415959538256410479866989184070980820025292368205214061508298029058385718488408609587948348350458165713452417402225898686573043957217892301614513533941628361174986356630979388744040602885641730325978335032624920389664268870544728505016375966057374448654276935777487090016852932048439908516868215720291681916633526701119129638781948059570369888758247564943793907962290400065634462111255980462210739113698594816671522805746201410954093036595534752891555322423816158868858876629320476808567086185046078770128489336573495870788525228196939648708912464099900839378615588852677524674742819103470253373728688518317143401015403452000571501286930447727349327399516678760812347455354565745810707250021705698934926979170615680293442187826592391461586290597068611749237857109736348671295533889644902078833467068726029772226643722249591506426289368980746239770863052227966956922205006009281198108515998800642549850815720877835952396289466860483194780744531779798738125354284486926501169388282406359635828667436591493006273370414215377906265365649182491203345269049857284336291537068012252841176054465227352657402371625432178879869387200589193855475798618755375588037289554248969053981528508361363189642484418619971985334969813203851218093583545021997608679249007342795308275101325893813997262080447782753647119731551388493684622972783982816835679593315324745318345175307434263955716825036078728964265330634100033584550360083902976751947272544562612157095468932761354580101694690268393027066579590626355184183315236013621555144870346184916122968314221778775646904504908993888966907630521447555831703978525918166590963617758034118679716928867181388512487664505307709030477480179461225935437470299853440224636798451292767717653728737322956311515837743433135018395256406019739113551827338793683799436530156572893764825487527976593594894160860693529693464472951190420835872870891090714282236963714493637244731486032092344188881975098699509354927452420301175071971298868916572382823049082434031666647926995784822664756187929708179334623319278862242866098881542600192636831132566384117169233061374324756566653084877286893489811643988443281468656094898774424852526478954277019866059254696387145124018881324345666595676903761967167159788460297289598753399422009555686981865417426850048907246830670760744397378947834557144300377056984153093727431980794055312386968928534443734748836378605783645734887040167479197806278609203730554050134251675772983954533783018306863889967865880324479019059839130979602748958468738219456107486820920122709995739890489675252665117277527211784157058884538648479577170569629254768505840904497721839992663003895293024370731668124261049629133263099618611064305421539217115360068950329592185006387707059310715793343564864514133576761305987780064621892606394542017929253196864958223841500593314743906705167102931294220383136767213750325281973444202296898399164349256627654683005510011631435546887486082525598209891101378439956734276816743830992437144283360636271961817786798018062015272713508054836067279227205403399155915252465826977107684277533143606340769978641279605720162913345918219702845358999436476765188545390760526916875965925513414719999031880886990323990792864367733450389493798588330504227012228937901115769667833631339141354755807554614270269821473650443918642819495941603601011063605789493365819896881478686685846065895809163409928750673849125304704809026735532627029740465567367951487237226326243853752413861218368606357214333745075347115264003460407520812143287625620287956707816253827775415630478845818062522984320878604282987538742757279077185208493124894486588495553918871595344504754476458077282882407904769907206644382927540959109972262970355865801342262855516163228011977866231401397548601165249023923385240028199074610617728243085879850142173298913829485375764998257212046356806482591330042255570432752566927980136836416833831036803519987319746821231558580507109043449430520058908620594646189862360309938048684532542958150254303885931599932111019474957038091939298776004971658377666251687321198865161309218314024872890598366523587275678111538334276958811174638809590264895680856675921444012524602719117392349187816071502896294356439114789876684908579123192599002526460512887897947723066712139728691726930730027298958695664490412806478123894200834685517532322633300974106116857569760627257462077365910524128667593766257251765190609924358864652658698216601106100806272436849049853061179127685569478592056624741517505262075586212539248935212598208703450372400259892650050350472831563739538172202242402362653682830743826512084576976555839440323022999398785126222898062767509184893235220437471999629877382277216590690648652717959369338160335790882435356454732463344205844813699466918907189899478870044254357288769154465187769165917187401371506652433540727607955544592651287378941853757410110961314299837041141665110144964486371316083432918238238436917248756350042235143963610714263049206368249219168454572132279026238743443624698207876831913303759057722503795832675241211822911324175458626200247844530288197225952889613617356478856874786367523258302707185335078206789128933934371250506218294799515360834979756609704416598178343992621144592293064282071896418590682216075789953344380259468327540004852770510406877604521498936344749381338502888954436656229254852730111410150706035945640835102004106903969189354653553824135523522603427454884297678506296468569648911680974224694052945167307571737624148434418096450391696761218207837965255459379436830962107652419678716100517888206478182333676412092080975137111094396423165726907055827385787181339903321515205542531751369710857383950154659008746510041988807347075260191087221146305424152113221410507281777285347746309420550384302089438375303929556800814763156156281204085212145779063001750688131353990540191088303479217215167166953194398834573429392038249253643822996681860085489902909794240028348247958826595207242359491221130160585276238656007532782351284610964923857940189176687535240324256999154953098844887681002754073003066588017408474824436629094544199049721760698796714792846249955583202654220528110594695876148507575712059562608674567015495140481193959657497689911281697651315745362274789680897800468306492386562419277646087371089466142701605268954054935856933487114732300398567394630525121761435951899828379121672727134168054789188148242627075924715119236134783514324652727132603742606736359164383500897580567938608838321742691750585925907164550135614567547246441596240087399157568006727141255235460544575906733695633824849575085045892721271968921021680759791493326138509349870598010679623344538826232342425240455719476867247784087640887410459328770388325055083077200200956475923959200770560083642646168113039218685957228784043967906068021975422400028278235193960042991905145978574860687502044175161687368074826611930790789214299808876205105261907852297519654928397991462408653569966158895116296213853821319208770712006534715665885218567508170895344377387685289396758556308098376396960301209269888754621962632533141946751332862187927962040064816121038220132330388395239024096219529310619815103569830380232706208362037541106390335611441781991631092654776754083046393144521293153146819342763120450302056155985022085154111822786713249071222779533677890434341182251765988727067947520829981034558482273949537503801296506643650351026461291899318413004713295102315514265476848251040911700141199097689359480724323377462832441908798496104847736876491830918509561742918879784797524638341469148708563627631660561468013687924258942772824375977629892312484312218124540241171978139977842001881696475057808488731607151513049298533057177307491284180646842136071929399216108717839464568593970303567378257165799361525666922301185945751918693099524151879378455753210825971919439613463833966444312907966768632761163228259788706883664204708283346271925986378508783870268802249562137419235493043441440361527675657446807241289208591270005576960399955557473314024181936745185128771483910910647414668944277622360281524185029102685207306389669508888760579640186381895143791276225675083338781316900510642770025065626991495715210489038489632004548017798458195098109956913423045291295544013803870053391965951722265671386349348988084357569699172893148947998522276057159782386892482944834834121102085622473796582195918905277369949801327551780697623415904926649356235000931107865546763713768511508530333688136278544262652241132772369040695419461089904624177730742500828682952993300430514079814494358156710298502968080626608698145802453512770928134684889024064158510350680868591629393300946371382695455489399587098293640761373350182614506575020991412609152304252440678831915171380026451797946836216521260536506413548465332408095458280887454079587330143212102268188693997542786725078326808631878139067182634407887889912235474681841671193576780251954921684215245680845488635927915827636402464092150662507924432372673751218226517840030599677803562892201607249239190673484370903435221635042023798660007960918909122647389071039966235546518262598634251712239981048627419958339356985745148948926195796384432288270994735226137973087720039084792623009609371744808464830874014829581347289593858410665306512145344991001561755595954022355022794670726107465745779816136847990059730137842373569498661583446148740971009292453324672023875320283677515045559954058295371292284546847228421196965892758353204398375517270024809041085922538662552285663068313726218352847909221103060872581403079318823329541388220245116531217981041604337393095798732438032227116155466043851007464019557183654451664531726920251388134399284802623760813637130725842258417771192563983352501697116822671951595983757069831948347715346173481393475023803298909474201208655389142240039604297210290105405817491622228368096282577430485148260126503503197954215299615738399095584150651796087123358916245877565731454278423469084693349035971422443372202073024190901312143024167663560365300295153683729709719939327427184433653898858815390823439819649823388815464368840215992245586363089277486822003128529234637214308082363260108945980925814325885720273400904191935456496693874634383732876409772520673138849795580412046783899459180768011222085230390617686560691593743928351577762304529216114907112536890274523555210251604700427983822615233444202357247267828883474340270921149950624618618237589872775946629376884308841124743635176424624455979453052493292228983907750110090436956683443448999351792309916183547826116613484430403142827871102278210000719976668014151808599849534962738051004101232105075767097135456860926456571027610499030001344662697919185965316510183295141811653584854137858250798835240464703220069469218737720689198658384959269018372113391740698479704607033971223408715226404033220235592292402108450773954869633606683609729392938096270363539256520222698617755495620096585480393003924603780037512093936411650168027652749307739660211551667779122998713995879966179402976261818648755063052226311742899128712280898979764731166968374619364861179837193124721934940395369572956951158855128188241510725751038387719875540978717521010547125071585762057660368342370719803486052403160367268857450289087231383688617091430793362241400072309121645323847544061785407164515007290079321214993042086073534843528610055262974051622377040128339110926987504376207585732051471457892701839482875061791702421141478012332501879594375169121600338023241849380175857044000154633556434515077964184148491109339066378124430359853742577723655651814970845359573634630151489354919541078587917442230441331461776393177419728367218146388219862108031640080002530096333240042835280273290020590142183556248618817118707795919131854143809513988956627831593798187383426595243082608796874847704213650400304487364783527848961929134510383722582862844336562993520767247284666515687946891211174480694144684558286884246211757065451589071726996584036301044096593019434924790115943882606919432245710268810424139852805807948462147075940166840488339335845864270221206307422783480587321180663971478721593368454077029392347387762353211938264927974011101121356413847295996646636072277885300937531611255125446456512876242061436170702413505024591223982443190514976913374672250676774563480241898298748430612250105859055186347859175415538545205891143726657341346642208649364355979941034838444743676281205896142252382635475983825759071039095038776252198699682652311497292653072973045088861109866747431719227408197843351030912889301143538920910543937351133904854136028187624790395017382698663369745775763676043925174778726734963848341839202679498827787324822511547216900576390046139412653285684608484607325080376543313504343345981221151223912105588727210547381964355225607389080704422105467173601565758034935686452467636832397667876970108959253372578085704510703865285056355476917786276002601421895567627004859434164393333470890023163782025082714258465804924400798103688878678652957733408838009177372666947025992568832084598192864032340248775668463491450380935677383793644159894615140346377889098242120103614264855740707855046761136209105131194391429140002819531288464135834554989016791273721368825256336983575289863556314639056345456587107341662971620024837569373153655133591604670669353502556793860105386002795044758831751639325694030749166068889971388623017516800573580762982091638910642934826289198807841078961413730162409932191202172264589540755848705975244834839395626455333760613763488984755999607240146273126133081259648884494290877532976278466291546776718670677664798817107774086532220345635607261286864144897905945598303989896267138722207026262534453349344371717686725952043057114757206110064515566591694203432728063755867070720910995671691433665720955764863891156472603763488850294119111880389153560373690888137412933329710441850408462415776539392101062861146246429037236796537179370916659052820658906355828392624203348387242767467866094699936396283532997814420611781416708798408095102669515058906724117704830384566815037152709109042673148921351071188887326883112947252974756473579949795155110967060337230253009616733341092639219793534940627526603519460072421413256718306302211438245957856081563696031357771082337763342207756768413078149816700898016770571155109402841820006506895294687993216428705704445351479992589049209799368430524056570138096131658983526005780168230925565707285427106590438369534917557554459710027393821719958478550021881846234283626141972430698727097544911399084508854842748817100758777503041506248336871369525661447716334121261623447923647240190494824718290413796933046960843067339794147821362006546642560594831811408003602590481551600993582318474627603200595344314594185592874374265216836358773678844105447231438251784403655644062858693073902151527438002838456979044147473604999603271509135322234276411538397933897988706973284465387932994232872881812642803602816314480048605201149638966656997199195299181239723933097878375275520652209173003358388994312924314296864345552567728011255984958816607821301079191290929292620460428220006077957699811752360085078521023047553324945037506095157914087075675726456059896703815007802371510004658768618601413175152129361210943359464478004689689429490000497102429495166773804846395902243452306538323673231199642367788156889265834428818946453470999157580428379698515958013450428316834171855514769464888274058551609056509783704087065401664480271241475793682865188346623995333277723848522696849741688050195347822002967325018307098808558555448180029002151859542473495176375981554212606316875256120907591570706980784271201528482593697870654449692642200329039230000010055205044677208302922631697606719601688547023364525353355460314732490093768496758277741288714037663946715047984578323452412694497189135537284438001973107862352356497942896565539386770304181357202355188762420823572124341209591356823816688610910159866567143726703033057907036734614675296355722440247533177765229429865893744471511815368537736426277688608830251969146303029848783494241065201104548121242572097212627245909172825956084199030010302244174341014970274828100773873186144358337075265946487133045689300255481571726700083826214875235971022984645512767857505000873878102262348923849457969946901053625406759233723454270888014066985527594343231644591226227162051699363469001559027186719409944129554115419279655252561873659785742564286912728442506703201176911469844509738829840080999204806959739266556772670816478767296998691281642027526017866582722721180693596616983105147672320077315150436005759174260132893052240515928085681845686257771222399992403184111036578025298024881091690887139408102549315653487918479524786249179077555234584066215097026870345275410453779288349354270283709187716805241976589489972217664458249853336667795410685642032189544546438234684653967259487333356671575192082143844561464014332907654154898541056540520932805609415470316718169875176000995486698336556384748793945537402877319874580522216860539490702207979152619145172815404540086879173743518559140080563436531676151427495086656319865857045442420968449001222180081231687960434455405932592941863089257100818654868465919932264554855866344897606618115479048018675159345507746307837497448084454051106107124836035041530845913647201041789510275002462608877845231768031893665172179562573173140746861709352657600610536551611581311404116048496187746220766547903167138026696919235637718371186804793896705936343223474966365347063775164732758375845685392112378035683472802724568539827820088053704163364824931812301641833770240848761759529727553281094138416032101679746667806362844755066563848164592806280602591901421317701173421366212800327060227978526247567297416053261056384780821345684866114556605066470391025899791093203344111428734044644895841822589927184673313892476712209194718543758411383794715080835988854559976718996294843718399925263258124236619844941601269098197009405274123727126211292920962393206729217620767781671179092957329091512894610993165228651006764267032287230819281781355103597499057355647246564686620576825348092913475844222182775230811255940309174397593753185386676554419955364122795479513184470771195184523441464866724470087914904605434014287914533761198311706788570591898839830274554902417179879347270013172141065966469578498460681970284125109199352820716277241626198534362461709515302808439162024890216665145515036023127623517795009224397781840357832909978960618623693804971227497031693160732465712316862115496511805641504765217525774811559090340643785528912557205707695315809288056055876998520037825885824702667916711187680476051329229551813665658917849164950592021481308321675971226153220746875108728040901767440196155822401949552487721726257102534967981492923953803028496385100616167635093703589594498226509103567591434474923476474543197788251547657164085901908534342622556064618722494797209193969253007612772124448523528869149369125026274449839753371830287389634088378126813675565064608400519769346301037898203955675546085273298989273814883670013185173474930802962186015349970936031535227601938576885896576197598186390568893376588739010656563816734613425975971098533392301573629085210450341712671489792052825814889557983380734099047891979400696394329061852033173555687922279856563046331386186188113047254303545417091792010594220399540709364931852906749267581324517422931571900955356549165915089745385876277922393399995033147317901776006260739726416040923712621192368273762267265249657613907235946824620779286079079999962733581692944231833918340161168506024869023295303318928561744177674272981066874416954406465060322408321534861470323611906415365172801447246349978126159952890865672187258306783280326948326482725063101606697843303978978778765362004652897516815869229037054837694489052418143740570324921240801333213671736208233588477143439826680598885005816150250953085076045450991240328961720739277939998230060794458785826136056116759984024658049614296294273227328296148584520804184813337261939288772844836700527012182146293455512358590979302866947716656538296249006881067717098317320261426996682483098129751244690326917650175135499800114312628724820699210383960350345021588766558849720185272109704299933736864756466700754220856904939815102025195129067681253724599993098515411403529199875503451671636874786986366165639895035208996957560561881729797113493792603100780899840137928495631849676273831070455264174204715738447185822709386870234305832489159997835246171112760108828252493859077132025525246203076144518816464094328827910274598301905742256159448213045757328519647507091627652161347848849690995177659257709363031029217602227649143343759888252960089114207272323852143636737240432919467181840650566993214574617923169640154576403074702458027060655479973707509399249490994779911712890962956949994919567902873485582306869433414214190151379716483726360398951508513003268004239215081774122025896692721981522066950156334331988211365276743315936661360507098048201033597378058178912633163185649052551550034299162791523999744645244469708824810956874512360537765545741602092814498235007965921740135235791794299758605720379349249568154453698635097570112369396168252905274991355098417453606060140287487628011257057064777058337884230539413770108754460497615029123392419465896676137994050621478410975047073090277722188475426686380640347218692433583848677829706912923881119672256080900106702714019927502028793487784076845096078648467638962818717043525236022057873753905363623063975764801443875319616923101878470781004541119137913459281891795671874246916812439666782571089020389729460278872558584803539983333294935373489560929639597150603979529671095698175495025586002212342792630121294352203648759494182156602031669788939712457856730969658252007452764666031380012275135874086373524185587858433815049057322085331149261632753384825082128604651303326143445231554155376960172114130793879144815483749896167890314251908133739702308310194739870413545223320934816219681706663692544882525953669089246144908751489351002565325722381203077509901240040999234535603399669695014399289436613487872751685110475460778285044549289701043652100187859819401843689431595814806367738493471998238327494857610616983625130008785708126478437140835568392380286311254475543672117764677700268383159924673354176321411923775395432401408476132814523337757228808950300969080978650499212451301078960928627880986832237838035483865236606281668507801400810251565962718952907024444017559679118703107194348213264888003294115188073939828536351507596481323182064500483039169053181269314936477794082109006541586665979808101851093219964277678141106459066143036637841650986614888554360076567851363829880445630871109795685291003530081178947201020408478177361704453110585941481964964632090474487544733710020559370058288692608397670992620628912053777745611880998011066943805211741868169334488200573149093377080350884773183633416972998450875602157485324027340340750058012365865223067031532842370675312280464590188587076151820146046770749569773544979335224355787505051678963552765837584288361909415731035465161718704812126559030920916653654080058022563377797420013129131478734085434711411873391354791536083417633306884717831539639548761285588272763205162717936052478734117904097134816636405466882293200142996253969391763396521742263082578885835758474458893906858637068516501320179396133882259400715231987011034765465226471540251449206905063881217503388873481725733796328856300076915334714615702378663627618287076236085890542993546695755230902099196430989445520459390187469571994859045368753984284845503835373812789792088732060586945238091202221426452455252012281945049252306866263166156296419260638426553704862860573076844386081505052870639010234460768609375880247355291785436071364115082070949551386877508059460308385228796254651794644843641864769920106749848087992753195573029123943332410052099897610131084394885975116923163381852228246864731711608837766486904814358136497463678840546422175174360965795107563881658309485341250131572221411951453438427820054770467919846038195903061033556432060374734372153052671026135470321359845332766309352286399457397732082474606123213496072614899060611518128787995139607602647321076431482684281225670403030071865762179920924820412712108481926967234059822543757617654581945013586350703174456808651382411387681379590942227429807360572116807852892683167461086766862895724006791322872312616129616638961770119541931597037666030553368704650144063916518849056002287345740951701962367765141968553766555043630756474039499705884347348482267201713101581854732178973339718511826063270259354496907713702852316410064973913412414768869519744863699478381936734346301395626588854039086188856385493099006130429027810170127024027686962635865763080758886906000043061364984609286617341707543523886635839542648718933979117172317855777726038387946679317026317718962958927208571159897598904497277547130832556085184971866306653663693368404297879641541796426404209582783055674409708969883385046171913333142879827476436345261117342592896335001774214561414609677316187302018286077929786401577656617113912493527335112929775271825605325944634648785372391096595349870246516088301474243838515954803272786193798826209396480553673863103704710206493256145632484674320495799362416023432505859262332916567474803713648516746416069793953795070328259787496568343578353144083767081496958259597121134793893099062394873482441434922104808765563057791791013288028395707518031951038386929696778791197981022485162392957182660422499018497129183843756319727111141962697292215068789174325757903897257265769848865746022048088962591346596374663205065040719409216488528205884193864553385437100830622745350081039317568521009405004133124648401881940773499069826755009230004965479511759098405808211762372460513505428317457237486502769685772092031077232593213534673561602983358504662342311897139537052853042986648482565662714867569303490323509514487849698409434583902501552881948567623270259648365697901690228214748584741680416386677005782272811322846562345530064259621860571466430336825029539065403988777372356709890411378949958200986819873045409111719507482603208719425186471066541898577700951134116867345359091141691771423627811625162632204420330169685672022804627636406995318659601917873706538222987090530760858627834290022998106126050011187022796474905585457706557960214867366337081665220053817613396694736740612236089948242975986237243189470623354287339549598234807829684136911857831340233120593935916631022122034113955890409390579381276573466265644885081299053945049435967744900736049321814589547367958180968456671336956565047689696302704266377725016907952795801181450016265783095074240978695456796775532714168869671334487977790150768014142360810224114952615406487972167872096949740546955739593739614341817478775448709776378851155653164635167538657943534733598025583678320719829162837500825412125958865823153392918275796223874110097704404472850183706269946256125628088021924613477224440136320234378119098784549983661603307505777888256083088638640927543169425530795609651272829262360037508943123836505720052266852409824850527021039659356243213251089304278078698086113228094556727623866556490095563822601094217708339122550565198545569461866389860408199156862323312101827835394743171534357142506971105661084158602134981048428198026263236324800077838798132714582027258631028623580079421029006095759443214914019607071842363447243226103884657800857686088363558573691090169561388264186393773112391114772525004444388016353827119465758003085479566538056539063489592172450757321932658351041164976970960776869281298865301733547994823115981854622579686480869482218109736306562319460497559490513827914954052041943315403961890250795013985759322478154596583488304588276161742145077371111150504431377089424116259751531664684850379775275113875094196560360777321941334524699828384906357205955997035383000347458870492098759168805575380930017792243807804734800620004667244617266685285456143805964343329327814480358182439291025782451461433264712910027831421656981342220199726505286864723650824487006061340057940972852778181852679241539409590210018070704852670973200374440931940271663779701834566756770819912211709693303501036825491346200587184083088436678964390600449796345190345495619074208691698386001369506882520411115866422005296792486936322630819469851490045664578870152605099162044737362085370169875379778860311368512268373277158234271709786135106652929731408753064553961617920951995403887256878843345259948314501378948454373577319150349654679349666375626773213886577089496754215693644608640665039065155958957639146465027578460891801729922081151953926663113596709469073949315546344689093801145579244606303449160662786162682541826797358982114286947782898961917774209490589853226638714464588433876673589796611210149259048769012269321055765801429722156283334657352452253342006042668189303279567069298968629096682924568906137387501059594149294846564587505436773149952800864382718959264763435378047145149368579653133467298309620572339187185948612430081846009758473123516409433526794631780902621254833506871828875340394191906461765553596773871566396944648607319497339138658117129051720994259456108941152236207847153398248405214362066601013537680252717646568256087383372843962054271089557113407596707125843029035236662157848246113790722727717450576039501907856995625459555661936970221890570109320208371749009620660178333302123466900734904352812484787943049296841818606420528081698890501872169331771675244697553162678590875324163695028234689455528247870258203375541481329376880112182222426823179703418394379743693342876853960691902082389731762187961479390554762911968954563933531817203357308178742113085929286941263036222090583804453850271899948593874536915825705419412592869234031012216419587604604583966086264480835533264898503613481428711496440293160824643145990965994943790528363457558801738900530953415014296933429482800229672179732498169307204750099797101083586713542306699529478236814484552855881806650694442404495021350377186514201551455364786700424291921286466485561753162827644544442225948985879364384288425852352002528071746917291989024554968710766789872866209983361791206562042257432133374256539902797412663797446920398004680194838292546856166861176526544856003131251608301833228210900206955346323196849576195779983295876016169722148962198856247662218077433298894809283923814580672476367812323921578365209926429160175454817873177934665151112990063045485483846407975587959388135997488526182590391295532394271299448546730493523219727982587729934250664235355203471361826031542310899243119151504168451738077256411919448153826573769700492610088440126991688401622377212104773779785066749987323361119503897896467831515151823755822052034566693574197512639727348060055080160234222116486886227152957311799467474613532468979325060400670712337296947657512379387092747580180344926584610613861223445959063417659511224680279180565677932183799584593710739329115442083740883355702075295388608691292725012520871681466536167824083572073543674502122109021628647063232462257396735280798747548539289411001691989383661422459108432404348451480875802466861370456631606892548214426045657580708707153138734355988499105976522165282716932479313184504777424953515661256759330137142250503800097029118888641017986541917241706952562412432504684242962976585591946447245851293106862279588127845738974881089810572790665359342240928122880532469021059578889890076353711694111031594172584551050508020625628352770670480556172327742314847347442264224564937754064526050719661918339506708733993379974768537422690187197270540273952937231575132334834999892270149117511578517412202448350489652075437747008205330381982698336955619720925553520041026473959546790815784646155006149386204374186006633828391676056006388870686631234203441448384847532413516170440033601443082424516852354936941985347155516419434769603188362962731681058615627359672172470922987713142095925638112021735394290767338441097673557198271330653432650797625899663205147990523701133215787935058494304675658643865413747007376562041784828734375064082531895975183617848993213164359151612616355715301324724630137999504370885478850281544888022360491629590158390034543818231469417606335759659409588670044010893926912495859235968666082126053649168934751926414448140639831214407170194988625440649130288509586876666756283154539883429317244855917012333092301529956636517590895359046479249283822488250920587918860802857670513383627654779898645315302960699517672972298997995102571313853182219584187028685329050778941858853465171834582137383328147660430777937114709869202846257127505157177235252527169086635860198187079207611510430991544407766348496393587463429237089500732620774038454244678336670642836178685999981509172880081413993370055594735217284972625661787284428269405326295054972234248621924372198031621121535757147469546778223610339813039014388046118925690599463388383558417635286198767210162525672498889797315345861703682297309538821953337803385305261952254323260858422196045185200529309418718151235737842620359402981431152465645957569309307221877859269561241231514092860116634054215230525494031100875033969664680579688421151833312342672674855413323727816407378606430352698850717025995972495073238467172039748113358787234731131329934741912380057601386377576930716362473698250178343009537161903505594800350708974873574860283692371278231209276385523388941129880344117874603662258852992813404336874985306762504459552735261329736263553293918479582127059332798911777740138332862215236860670976213759136382013342566122457501172230722157450845345961469833219714645893607607517854963099021496136036055402289699000809440781970766382754565644646640248987775624288515271715579932848380522520847646958087692187897887633594042677678888427019898694004244221569768626170080707721008251293363378845961580259875855077941666695305973724101001333378850005622269550312324618955208110648974970804338378915928392536132333176913427727268174485826242965312083223083447490509087776925488449910315576013332557136582256222877052847118850825081177674444160505779926282585026058699555955451354011007295743472897714491506026949885123776243689603700859657535752703570792394202546565085740220988720124786897196684114583937478600765129202544189092188654348188460635217108508920317332475056067521572896505592794635153910425492609443640660890320683290936439940745392465772860474752072853640431402349558905741559027099993327432256501674398441228096135435321577919188007710519105584689296662762090300711605519743200985766760562567177989641740127790667774209775957571257303173242663494893226519576749893784994232016376303489449312106001954935517091533793958185835346829038399822927747690856286733311807832666165907622349836936782255420568873511607113559483319276252561280803454399706457393195959281664851359148245783325040179131183449901117292442033251759447661880460876673177104588729347975242170702127332543363009776661022117209579657390055012254562521518938864364534595682022808682509475269033137863981890427395201761984114659537238023138546190419849688403882439737240320519281829161244300813594527247087869474482633231076768858576847173852132998978125160745330767215298050620180225308411732366006249617041203834888549806296689127519619969672019665192755727412457914903332263223616024911199656763920825723161163273956369904945934834694469648153367719777165241360398633787617129527605899523696041930629992251264870763184126952886713393366141964844158698784773168910596473655358235656023890639262765817400780843998353361060226967751765322474282389704861460978364755080855852384773761844066569064384800021852688911136314581014347552024963660529518268604279539579678601565934372105400323527090362152989194678170795648799012398922634259332106634658012708541660547163605200716382393218796444240362121635681434844360130956948997660488556585169837421513775807380592906143444464025720514458082106646862668118142608549764807242236238563565468158625595033550643467632623859819152956801103241402558328969267308220769918945511566011342462552094405638133520586144639024081429047647966699960530139177388139370671686065325440351379994806194948672683110859311720200588727979874080400768584563548994639057783981712997202515239449504770381359384705945993305631674751598758218563609853783050424370988571995192138601784236059013960729920619152351771960504108132294164103768991050650972498821703524292680465102425372841399857084721191167953636035516979335251073523390309001491622454321963409279880290481899837453798975611210736660146913148733284917957715389407548905787109174436831318689103043804977500854598060691633295797286175035609146310934728061272078117487667957563342840743933981273598196579400086293851776167170517125029515635338539397586141002424032128228280919446711549730754419010113076309333405285467740805389941664695302242858760206931133210789360435659763868494339454374706334203452141241197989104869291504056755430998171667497200992665481032970687627056826493072103907635365552549709022388102675472073156227534554459752584750219034457614700976442038355191247413436917464920875602420963372992368118866221432605840930891251165044025964262852113320985957644188252583440901355686600896813027894651780941709833664023742107842010744104730304481709364001668855792271383520584035289570728158456508308846321066351272174907275447327449415545519564931360977393591508756764372701379848227504034537597535320316282852136150250060012034945188378834061077262223834643076885058244041269531019303459175029063001007043667816049939631525118468358370932953950010962437299849976164043518639317464016963578258329116713276781144838836131653185801092876748655015983059110316022393443241163295806023396291334594184026777570296207810984433977655039546875258570973414193111719311638322612195885017499397960117898729457958527507170443119678619980267923349549679477821511217865674203096436273626424442644009630130090288157510717281780022875890730039768605228076857557070832540077353877592210544087884083267956991553580651949895463819069428007555819987164747784010813618176997310481392117010650313020921657667725539228084712198708577808150585201775754243543365081456388168264228677203740131943551141892015263393837627351968394915170576470806245321262608133431624183458171255403189496659362024214166497733118356461015436949513833806944605221383167641328112394465111006794207932917352333916283786040369438842312477213182476365688206720931792213884255007448350112389773328483650566322698585727191652978926909721242678327193336001560844906379864921245728281462153675221869573091085892770001316840204880882124152104406278220097077263724949580585491226662881845577775288525917896123871304753055910142623521139660722923323651143917828227475602731497203784310847859781945706481780046647235079667710362352661994923739555423236041575286165286500876022527389735987495252090338847637787469246634358245086360153185831858399385970481458512600145199014976741579124405338618965751632688638542493913193448412368556989261224635365374046808327204762315023105399868716222277635791962374292430093207213370286713759719603749701856531404994727280468484496321992738353820969385086546656292368227508049159884812406052744563604861043594317602928858438355928584634124647230047920212931625473269382493868287202660659774005518892491338242684031005919310363122542718373106754861797204041109447454942900890479476348502257296964642125978022450705472150293583881584054139240188750235085775943424467162664880895319272639738181280135238848352244856082661953754962176903333948248383846541811721593991555060679570493492739306915391822348306031060195929583164256311101967348975360541676154341355168785591381583557076355404370532053675386484842704280647815270594080483758273350389814855103983263966070265795983916047523008746012746297432819259686932116231680284538434799709558107053281792234752525942071139647669777991793334675313243001461478883221571932475496389220034367131523533899655398441168517880399155892681551880607538135838850793344749166763766342481147280555830020602696348873908513587101477675632092233829146922519447838278985509078227572810617810965329697767312067403841410621160637586346578099157654037530374744947286536454989521328175647850593311381799180323868583857487988923364755560612133801912619257317601982502630328197300763282836801810727350440256158450673813021816574603181548744241826215080400350188964465225223563545908747477293067803011407931014617488612675399257998823564356126089166475089842005807526981252553071350684115896510541998689425098764580763929470983878585430580032583515998138135727947716278610653828743679915823010247222911342914532087321465834610894048548938993293865019315136326818059689655353259799051839257939033422687541038892186163875227704014875239304699748604727765983140077212827236695460101283084976045112036333366444616077262580118211272149233581807387546582990071544540542047352321295031479230366829252051501693271275982161568007611767750149131047356357151225927643359715072276554837873719781949371604614326031483849211488969217138209645889673454391191406296735136591724149625299386070550242596854545065949681759518717291558458616691162891575529540773655789731847202627044629024982498633692680839359895636770401807837835762413879054852371502882931536625322664474332177342917132887446033718715852799311245521905895436749411324214478623838841125964387530307649051997361178248537405695852983857234387731291127029600383384184755751191772261627693188689595166322990354353372288415137421209257974631109845027626018598422521362625342099397194766592979417040358583900650467449345631369666728629640711161018569077135465289117298330979497289138773299018757708001695179612151321139702980209692578317112400179615129902598005076553558154582406725600081195767456786057151439682132082239873079964295266239432473202715022440880878654327117416249297205463308642988458002717682045082354322732222783433298430245291625348284744274309410990160625070686946736091623904974770131027676215044275604474275154829357287201437095081797301154299509345132445601431174201380948758902582023763396738938181653729904038060997225746531728453553004013459143883481883124942704016212749265072750081297089834907139008223502619663326757305491356293429479357790423282205020987936342504655927953688255113470520495060083799587871982055435100662455190382686241927787387771946021282234986649998412470338244220401207710211831483054198039188052180604104901867628717560854588940424143859357518118275645785462991714707026824461508644652783233303465132189956323029155584132826084795849568369321543004976277107018224514840298539762190170161932301621612950960291708551940159869222633142341024102275489565665379197726005274533990945216123593317672974494163895468791779615479080600298086962753946064034136602891632748712497929862316790141203925562966282178552745105522744011506542909410498463042516833305771321208907751938727884027557336756741849631785859870570686810164588339647048643125027276354244418997695271310892881888209399417412142440201838140219267605000849921349150073431084597596562263241611447130081970799331279910282530629410719832418479199561150453020232701502454774888010388207690966070942626337401437902957519805353987770641297982143115502504845664298578242841051212788940950588585592686027239188505654957746736404569795643512086607531189126962867927058756539231514292483564419883812002417536373917734890595219468846187716160088649943165271958421143400836545957910790330692543160810659305293415065857354096184373358952957736609413632725914048769221883480711541910998774537585175291959553989507293824252376147374966015711932874081920209857122050320543841500804343737622263283071997364786061558513855093566177728574980740873891396438328326495930893746635812915767643871636738001858971680734621868024582661070421895959212717998084138721877501499344531601376828428771916287233343923553254659483793857295881654128599440496453211968575269636791234742052379817652501275298589594181114513709575013925442767744975602140811754559837304079172063763584780884273843863978727807570275348233048080238628305458619954240744448970642573690767772336449701947058587138866964172122274771891642794416969259072979015189701978525166779889868771809258783362258835606512450629035696161095974599152381895426465388456971611267425376968744307512709339403039866635556744998234842184019914233575898828096504198692210368542124265250056316859013953330736119347728162042296174074991433596753806430389507419348792221224966221524262411752087782052509256681259000139171982314995236036405925441436276540399832642633251208208596224873598799613528244716088339016741336883682261465121494527618397259124472857997163670809014486257650736742074969980484930728658108545781222997127416593624749319181000120976151155804306882265130046193783133130243339152404999944555895983177363366535738201662697900086841655075456570925449957091027663900435140491711123740819686165078269456010533733292598031411447852333733184989865241725168008587445757228800492091935741635903945536228369731905061260924227278925103698927529962004547578992858086446021906952704967257780322807677155378267234369177767171660206576933497656417559073193882636621897688669023032919067804028468393762103349763368273305889104684755975231355399304978176541496189272885499441233777621131700388004241937858670244747542344043381348433927087278668559095780409944082119773613425708347947831990366446229999324676031384029316047859404396693363404709330533245414121035767421981468984958731078749766961136614468848737508998150345705031644073449591111534333660115931832612425806885340225536961498686544965701002319978655223253237293507173653837326342523348307653396870553082946253106337980206449392013577792639310576476757108101936808094129898558032267623353181179830544255061440136875196111706695722448524700826017812499596766664585909475181856911492303762652700720434733764486299114896038646721166177021688361469266812593014119910998447471779834017911788072082368589026307895493660330432195913312955522459208276919016283737362690849220213347590306515113590207747162298381264424846253779038971019840548089840695714701799994534629286165371465186987136851333704339039694636589741123963095929840929565121420637879144115800994953203235635609203976604976995206111991299399943485853444118318347682452933405020571857226494524761960980482029846413956671693309673509403046192129972117524617260749410020455840707973273492702116712343337924744617559302250253565682507434953150021837753671949105405498645665806241683904743075246270648740679411701925978044407730355950863846506074663369838083145920465136475463553238397322103479134656616350939891039093602128724362538592160978626855590368119784029743547934095146683550337748315301691177334862842687993232981451071928155398252021638132609570313727533332543936420058547243499189288548942083557170736512092023634660964515232972323371963467702960898195706366133681418645221341833137350180996043874011012382474721491985422626402949054502209877385406986172109905979281719491313194152190995516361787827438469700265520267802391117865330164127609746683744377879202659816382849328993104592847575977037219425773734125421607988785734959748944486669885037463752786313443319690558487209378163067169615567559313260494770457731964988734394038440142937488745255625026904012611660299387469423470580866472503829055674854145236582012733330280163623845401613482132007032111075502108883012445868702019587650000439039551918887925277915861374222414809075117623120158994934994223460412459964019040479909071309028039556873102346744996733020057966264587960215973940799824732563726471511631401398501480203344803733820920081042964424080214856087171054967522496225317934321842090102204853048658180432977154307787172643438204506178798420731736143599932735553169059228832921495801713672512162133391491169441446494714066442791761878659800697799264398029444643345323200007614587678740237278048399233177574397375369835311640856928973876630305996335945682363236218277783981521142701402425086497174373535988815607726301251285763517732986742994658918993563625195222378883584259824585960948837814254376605925878307995516702293479080910668406402668417509276085632676010073342582510200977764130854414665706223441754786339705790558542001660524260441931345138893848544017744310983317078452515712757347647299056906849885812600914580601416578784690238485479800139003541057540104455854638139477070771261456727708187180931901808576052644249600916624357030928637727665018986228033910289293447279979109721686776406450941489309693433469866394755326968306799992353340700134968856046713790242255759543643183635969353746932368826680139836733695626766878850946581561835760557342798099059951289569697054132835035269059884052250442328728043207322717607789709831459433263919843467319719730856974247286574388919283069916220586044646441878987948690725534230910172630985882656395745948925137768563262307392725422871950134170996370853598162921542883357363051320367377648357938088604559826282408508939158189870816384567097890659893126908010575727478113919600869735257297717728786768856116373508030426158234856092129746628744688842190265315008951819117646908633211024832789642441311024134970401865764072621309824562029685130387014225838648503402311343153333796650415528338539861582625231554453379958588903158487734194445769453970304701827118552519596775603136802351560152258558833700710622781809023077581983752431704162163585519491947308191861652862370708856793914680534981330365252857952708056796586555658562056404978712947266379156608599916194491004162039050922131564658707133755792611576150922804241433920718339743836497625703592332836330270875974131697852381138503258630463145392992002006581097809031437188777067020030477377343689092378890597083988728583322494693694635575618967993959461497166952934305403880384791225961621716271714819128835457791740699118713738389839964834522239916820330991405531126016877580612301684298141735673052512255650607837494667991978196071603935411267693746998619637280587899194807502640582531862540148577033275393835680916168704657910720925505225146172245454524845675620770325204300437571319457914511903500034418927141540925722603446053135707720883228101722752775056254987803530564562631620071851492755006613142487535333957200948375891526557579189142905188896107623717809758914445366160417664417488459162205179075243186152769241848156636498413502344174611973671669208658565969717739151601692403282116944001448139397887662100347927214941636667365197239617458885780989054852005699404199416357028161724220677009538708446044331268055214629095596950757661034323794649280738557882897633077126382583087465888124118709677153583271679693918128115500416328926030396810377736608458025032952343769484340606053480213894547422247355851793852550423972735717187141390320574744011878835778643076562922742263703404620757203398271039775131287548091503213284638676759278871599447978340144464760613765462804483666770093266476033481471773760368393179918351698444947849021111962681712701995583303116059995625800252741966140216291224861646556224799519197239702192783618342639457609212761775231735340504167503695735842371115035434330264534774543603807409812976103336905381341134196654674132284125603272818462000453270266390760012722800746685683861307190953909591416864131150469901053787046494625901854259748875081831162117613774725379120922382206459833369549635638086475939641215373136675407381238963203756089480053066256779500342173017599931858909145906781074301618683704861300276174071635167686246150859923364164574775655051310944849707832841803008961765385792762793436029263134563353183908965969471539231189702289575350126741573355844580976757408514582325194387422108739421748887972073329033201584343908796134906407660726386489481898340087969925947527913910480132149916376468196374029551754558454423280903066047980670577715040970945293244651350629565589559648808520209479284364625090979130779674668197902033747181890543757048124349007226672679562964081453185917989997172410545909345159909985818355148234072708526457452681938492261902099869457021521207978768098631925291091218303341518065014471276214154205979237607890093846218120423660268719831465363071848353046626980626626764374085185399154453296246161405927737508709222354459511272187190916630367582793865052495496561787349370624720092039882215377807401678519573689574391973622099376468055560794517245999041392784164485783731759244905192642490496542337239959079762399801975504338864461844009734435866426048598907400328855168141291246266727008004960011946218307742054125893066654419910260780924697430909936753141389509289958108872412640617223256829684701212127444150230239995777935719734498663966938909172938048389202671368617371171615182756033644348353512252598402868678354349226788520946184149125901227060968793886719092766130294093405009281771036251958060973486504524969427533852827635700293182539493947324221213430160071753048013577749242451176406525957722502421483977261880709170224870487148855006098588246145165340329889163733134279224694633543920692952696287274447641079799370072951110124975714617341914117237629594265466526413333208235435262135961288313992302412854705529542579671312597985485447794889581849955910802928507088748551831840311335724196366384977963379096262574296080738392154488573415857900621636648931881709319433086998892528670651716300993038528155327130158131591683720934920610918744865964556063622204733974936330326017288851059300861318545612497711271632229873759473668664790706928688144619090942665347117424504899168850614679434654944615045321274656522958026338838778456684158324019563479906884859794692903040207569664308388488362097348659976049152334479884521407561113239197898281294997076395817821511455354000655203991293027063684250933437960253142274009337497685930749174413420050475227112788092689773087810478339057757405899546636189935524598677827520904123134193280021885605760123634930233234917797956695656887370863284787300681716013791298300968222619806391634047480360470240535154994866948968843645948239132509043302850208201255453874311463999365604468481411244717982403753083808280472092713314825581238907376409901168996520058962832035141348819716255800557915843867664253384322908901026111164704868369531135474797842595712743243777038409343456628246798888230451368151752920357097360739512359646075806200864099429430683336454458804887924910229114917367579598939071039981460865921869666698837115116661758650338708156232389497748963365241357547478577870362471218744149337566292419994370918391980793455843764804970118199729882598044911007594001762895797725068952070601010257088687208442407069425452048841744836239852628320660485414638553326895323308657510804130100610573731559736050044804301937913545925443214039783692642749060862824679131372519595124326707200712616563038966182330582423815105847881104894752637187564462949507763336439555698108203025966731662739047835900340272354393497604303198530835048747936386250670205415822815046039873740834429635789245861158151656770225668446483229598214041173900216103049494820910883837561858852912837256244293684898718647780825556096255264291769939484017083918579696035196423531617053234649238764860155893632392574266677627200243802750993067690372819822675053999145583773939744748075132575634848130306312659251807486125847491543263198290632189909572895984340255549373564595746852108260105254784164019782259139152658009299875471050051474758949416759928507484966266973096520205655631748550040748948035041290335113601057645068953375857058821685624855928623664129860176992060299108769524790115467281089839464012794799091157346772490517607114996336869941730191493825507696319148176630633228433303996312844670218990582362190384597563429618557180933751509623917642759856662256814154596601888104689811537966803687455623617497835712098167159299234885689049369763104053047468371289539351040604579157823165841743835496510894249724991009179584291470841361882172641322908538997696061847334410767413570793707827423621897617220898164302853720089427571453204438300838490793351896408126577021959097893623260654319984713163645940196748131028446022259578274257288814156037713898061745860095809084852536435823164539682276879397076757065972702007862476254350266158268247560564592235533366233262341132844462504001868337527079605256491966046636945385145362812232909751804547276727852998429747767551300806802199538524551771598773917497831994397885664261664950227667637615784289038724792293333820196817848450496608678284951161970340900941199536370319017665774535354179423335757670573561494128636152107837415975353509529988932640782755660933011296745062051135785389607374973192282284224560161984941232839482366964473251544158056802970727665334318403324820073336335766949363173754930576250588183810782578978379111472931886104815052421062440810275151324969368373229863399058116489084245768463114286577148953772565711354256940376196349616445128431637668411442970566392735334141252886862485960863081028553407099870057380849163432380037881946729380410009179709107362844636642154447352543928989089321338670782124522929375091304202258480924418247732263268552518591056614466481414643216070418454792368905207921849747054784468228869371298951719418424520357449507228523059153742618624523405405134042221376952855698105380147217923396447685677892070338933269245033665614288116202956385319764086849880247966324056271626623664931918698956281982992548227224301414479590465426421135029042138168607455959272710840495026407562008414919951120892756379816446261321392434215322784806104216721974310473085811777094502092715179140956783469237271579090731055914528015692183173591889385267878028586241888039816962584866268546123719186433999316426828666756545444822441283280451560307953847705532245901895815406616152105959046760394178375563384448339877426392533909547629506540981014926343416102087298185731981912943136417451512363760850681634168241479759155418413489689868717532108909345845849123228459814256136520412590809586684590053786847997751386853465096176538629764026919796246868904773304561317863956486004904034382663293135220228229013167760474351286325773112892114000418653625050783619398821116089739352007218846620487621729702853569057998534040256370044423858384561417017172431396854810021109764538270108133330509600709218479545609371096463821588415752155124608113993628791188278127205657265243246875922878148089303528662533518039800787524227628831590664945146440491208958757014791767760242390095375638058740773566135409089152782211072518039082915367070289066711712182817793875128874354761902783758357888298379228721514331836683844451641287588998213008710854233196308627339457585492065343794828185257080100017495909301892210926721499163331290982804411091638829713904398694287258963367312361562720060587887742261545063156843962538865461731447516372413908342750234068898823934219454411072878618637468317017057121762059212403542188334792752868762702175743597103170960461838380916015915919832752626062922384057379415555851163253403546728798299719830097608790437153558083161658821990638811920327030840921934767146927616200878518699293081511289313516254896973591878802058660755978650085749205478174169670778271168098773580562725120297361405528794366768650219296013418532486290612423868428370063472148190819851325577884018725586083782404997350565121334936217204887420289890899835655496327997792399225289443044194980370148166122858787957366759977656941417969339893566718198019539037352586376460600063663311607366306471754014330488280980029869823471869509400928170633077329656755393282031215572170025423414100285157220223057843315327621086897858468583902603671085565460158186338418688665203515869814901798649523553164278669336852708462363461570789752760035343249684763095341945554467326016203095767981483392468519718272761406059535211915489920780014997725966456109931015656293688036289438412617048842183132022620416573412405834630833369609943403493918468069858891929681740468130302736311234036406748913015056265858590610834419568533349391784880063713347591598330717531810974916226053421894942731898753852556048761619293630886778756930432390186098968388046770927079446401734673873650923966742318868297342680177522833470455925595808948417064401378743852511374616331021172568118601005941149653338878608841207497631720897940162757328507251881517246404889428148806515727566493550238683931007448593681653599227454795942523777206864338458327715176572982770844657313640404535493109050069713765131089267959263687159018943163125156425829928360810520990396265470868658967010892589490283345411884718007422081436131176792468953898518350867400974658831722686026669678512727507663538096832169658987476876650442859139566777960246218259323068638815297413048658021762149370876595904436733948136225571927707945830015480491037390079366875834402516928417102025198394071773583290383959133890331824725720705817361952647381088069889872756305904997571913626605540038695815097033801538382811008923704081935476217004547010336929080408701590433136563737525012116803223631382792646752151149511612910477400273750899432565917189429921825922002121684805834505555185798092715374130613663895924663039354658866334897052026116477119058276313814967999005313633709709918379343930818605981161404855543435201880967905018281822041321210955047669718965320828608566369261418601928794429765611902086734325751486488803691236045723314055481755571084850896022516539599774257497731960088689268993714836748929912323294961106775961178397995527402153785420806019077520117283349317662099289770799929220789569101712696193430537636396842133557781711035970975621476393014735598439367848142086522024062951333694842039602673808515357982622701743207749926409964388156801174706934478986904254087581318196677035947505031507434254520825499330765996031507185922828784963539890980961257159150691332321972092086968230096287437836230909328965248021813438315487872962083546917660880402262135123196372937800864712245434798775300252139010687024081284054950057320156055056527950536155332627354070033652830800493749439603504100756299993111709493889375231262475861039815005380556375512787156621456382023057767537270143810195654358624785707701713005999165573777036637465870694977457250155406937513448127787095502196269258272364163534804689255599147964982483967389705686692099872658427475127654475696849917692857968430486727029722285624059142328202575068368355797069150151286620673323698808773616928096297984406823568294052230077867305166002239264069482289918058530149840496051054577546828846985024000464269333663068739657893217112153120336177979600242570205319643308955066145672875966297973635967234637814438514642513665569506305749301751264764421241662385278156317342023580075794449163639386259946674379542514166822040351704410327775562975706569210030066123878798120496767491078247199987239891079720295634923765945141583035748032364140129212047610729455240388578861837386922301826171552999455698425114904781696005869617237105304219445026007256715033752193482207955806138647115857897828345128527352912420004421329514982732584705948722596807809365805810487889083080017278125904881992628051427001659455792318350163323078227153990310245724192170847184473182913293970158083017319749622669272939936910903925925512906310969081128326867865006131564794136948325917645357812528116922710789178418868409938529172255236391920017609217080602065870631632506257565989805449483115680993006248358489687292933492155003225427929575670955796081769450873032074895474260939697454926683762136056549186881693759455887597394550530944875125423861350557979391717897827074161355781706296499576345904315239442400226522382484044980461021628322606509802024689955820127394670904999495817560992104871825803829018428393540514641246323434082985326904044342639480803149284434503824251788740938468294200704028468552838710455907778593987679628143351519454774841426082952969177230337301291280493763208345909253497914768252977482699713300136345335450539047210071535412043741710116638119009039646250458597480311775643384594535603620872187232921819434906460904854075781999074650702881476844119193265821095050776663381682196910704280019155912359992280187895122897362326824480982381763380419040118199557110649266601505604142392633951130607086270549277837613084595084326188665148941421156467523529418108434135635729086927565802781080164648240025705139979148394878119139426987805128914470261296934449251544144492219256691617194336347799796248707726711700895077979050299491018543061898129092419169621404247556062006098087145568934869677197610580249441940186383682134280653221723745369918558604166849086191356279595284852207537473915695840974246427614607402043358587257795990995771049540780354680699947693483512702006577566388291792010295975934888992729988061411218275853799498220855203883466590061611846510303971352106412523664796491971157663493771880526129989563715689803912973090680175174770585816980973188941595987510897185005748695483122324632379002785501117025635761346848461082731282028458073095347151416380010277567187470958285193418999646085117542790577195175034508354365089312582117217566431811091906476846526776851117632755544678666214641551883477070651571072062913420396089832420775118771142139893767059308939938107649687768869732829413531280618597147089757577452415108051471198357304689203755361034901995625039476854707003614770641828336783417189101823355804781346377107443053578021139328032585964418552793000637107370825107686964584799290088059643330028992242700373437957159925434266697984541948681497245368995030707793001695702180168602728488645600400808686137399292098135959741913277653918132061418908178983512964058243046688164970363982232592966594269245785802303594472843785767109787228462304171120632617657707355258441693179890424906839778264428357087647036774203641303770265215239604860026756769057907464660794634621818529168263973966597904494757613266154496980049784289117273186193894112571860741881947196587196441003268410285978938973591214659966329928483819012578153808602508877917322114211402074730930121961885204455148580436796033752371386687152530604097529490466520623754774138704016003561258661552309641074612746189837780331715861276484488683580746738756379912731820891851786704161927084400550253317044835517163665327607272745210661428306409057928722749629040508525106946351317709205406202761825847967479064490308371960508560809085490840634553845411057039597139492174044974358794713118458286472516789981171511088720379472396096939782342780388101515964177005124615155390090568193842824443572704030113376632344544620422597337163478981733472480170595184240054098654886031663273027751984913671868916322665892903729427410239980664661419370402745986126079418690616913335979985940590142510479443691118789701446405069313685657732674451188507797171002721071574787000663936406391780478857882358532131755076739805977683354211388746706625916012160528961279796492280570714785163214106647658742685316421303483869042139912630452953853637884693013656996448231629986339492451137840001130323262894167745687680157133906749743489602933022388237537136379457138797506999564055536062084836272616896314162080661283701551696505506892977173387742168902661184419938270705270434161972420220271322610776813854820422796996749419930420849399829031182133538902575084697859465553304157043849823896603416266258935943756880604582242527697995408280569158158859562104938808374494569469254741936869027774817190030001092587208585894396441391531956582869578794011285063500503717087935712542134668848607203203701248479585231060149227767796656903637501109697672122437284803351950609558630387183960987409881057935566691179541759818604528591827835724039342730523805814920147062649876297720651839085296403415665350304966873683425945770841314607056922500501198195254790711289883910379079836487323998646537395853822418320550490741084505148310420478415521708825528559626790876936520126735482806857310473156754512186294750135866126110025196436820806225826134320095881890118180655992348554512662604970373244700730532349205786025349595319862751337649271555204213868062368085937559639732646757386451713241054436399617747823048091205960267453909919305876071292224803429841121464033888226370687126739390297853620885533003010551972659437277033252100626955376016120200714820670326664189625868312724650460210706617117649223919417599010791399138105162391737674321678276729352446851148925398472111859840224212659748749040832652468222586805464267320206549230896740517684234451975083891466825503243795697492640193878100276912958617142039480648591251389764538516899620345784292602457319130788235713117551834167275808968013732584764197001422624264407077455971430278341554695563948377826114718971364122009469869272881418598947836932642600318684836866845551418948910661464370555278770674070264588721154052913062523710500629636918138290571446168909031939696123730477046411146966218413573739606701936872532424238698507836626577791961065243605984440407373239844708244227064769174733919541853906651222025671876186205555093447898023264442726049965479718977206309158810426893936819009521259066372792470510224376100582484742994406589552805632040058975455955743526007885367216450330704979499649770775758871474428145402747706487321624987520247878509115095427284690478275324474385138636731392885616284455584517855239209244314428739749828340477432641400299774713970060717102024681983219803367713922905999887597018107184724609272677306971221108851310637904313437774354535963925287475649977853531247560815782994427079213015466312760055033415072803166405687480965684998715966772801785236027897179078247116254600232578056557638975135109148769276783073998622347663956252151380306128887688031748167353951449677198294118543222993410991324673368779555341377420846044505276437489909835045035198444497933589561897900046503746648926339757950995273293588766705874891213513772247053895813876390071355689969919167031236435260759982342448503530345902176244523734674170217546109688505795920359493992337526381969682787192347175880010818385222942281090904590795302090306841533326868908696083656628645439968067628032487371146178636148505038650013179019660781248163370151832920550059104231730880532322822788993893290688511653036051908852235769178584807256952816773743681405792201541547069547112112947258439686706542618036297613588558918841619124860647702383763028396564451306997814682391705890863169364201019412468793444314419333061671010611177682201982119737779382084098395599815402208617932426176293258649227095080030540616820358564253020859553535590023133487911299954947098223857533958174962701522940713849545141525035295243152683822672642375015596736473874948464811428483675915251616193764742245212009632208558076476283065312438488443741399336428357284067655568858025720057323413438143331263525643818310963378032899329495575937411103450497064646717085290877055004006899715737210971287525252535281157503556770159753966942215802062177747596231726725365365991272569017391749761380806546613973748101504844038832548992132128078605317934496828447870072139865079039828044177185038401975017857940206430914898408335595854004825180580470798242108135681506073392772880201788350891853888626225134576608875113415771237792089918475911656111354289033957990089123689845235086208386770701794362603454239551798483275222937551497197201963826988894761633000608378919740771294557366063736390724429098008450499787820374909996477888205309645498169288959934028008259609380028062879346937698534943462127442951323742194947039586656475284857657310482107649957430150268049251194427323269477013125240148022379424836234371220362128271964630451436785264484678567785907304867306831445410460258797002979149677564894790018726506001522321393020085263650298109220278814640494845133625075932636874217079350730414927594346347303693084427320141176771369708796420449822484820173288594302131605954804876331831827884926157916124397078164743653080542646257117517412533359000833526145319078773919969242651119564450179679809519064789827256023194446056238813368580620426133375606171737664564394717669027106700347596366321784347759270203449818065644870565650197278834843311053251421640664730774927591918228760926852467756460479621586264143216492939005058728339795654339264400148654555932585649062403184330132628847728926043919242781623286440432930599961944900255402760731511948546514682915974855923978618064346658509753234565743789689544899570827419129109328849078690071501665363159605461434401109963783346740370852536189406771057962895613653328244061549613450378462763542949497827864037155213144800450734647994414030410356571039701984086437117520129273391965522284609224690092519490174801643612518843721955305285386488301738943577640161125044961818914591508907780199408618794092645561437486575984536817799209268860870548078225393520048061886669416783218403474948417339439496996129535498767171421045317852887389084110534705677108565451682991049987232458684305505352413524505589606864813797920721380465188755985452080313108141357565842023129321950124778357663723397720076203051621041785141198038471300852563583476430578604636925456475131589200034033571331046030733876998654142674701932703284094759884782206936923749785069960540985206413454884882645629565383831480654048978653862309266811095561764753807584102707243790919618765125898242701264669287000490145439708100568941431506399487059469789580952579592888788709386352622379752433010094574865467291737735746825283026304727529996446320097307467234913518151711308474078898954814679936569106190881745143963446343539138584516577539202181707163084488270182983811628220474152414175753541568560925610514670947959935134577799624584380048861338197645227977064104616622718652833679336448683975059225902199466492836332363763746572025339442221076239520931070311298138709021764860931923619393488389501216697542632124342211712470629142598121482034824935571859183321961472851815174153853740571072604355203706451869757935275542694118992402507253549299031149734122267934364933005732647727117521257400592879300502179648574887551281573131009531533606198004519420569494392404903741998108390411679926262711632945580376747620929912521136526380143834318103921119745133409784937327445103219819082535409731434431759421768607791172974307991937868712273456067506977391369446278858705386302286872535745233114884332967016527533335328945393898593310858573986618920881023805906353182326819155563877367489677869945812417431404222691771720624221543249242024333866218037612499996023831699450613042512033192603798375080518775045249126882173913398288955233632851011418638477107755711132762634484835960138754651153876426302070936072752675263366937421274455008417273297690294944037846423863905887242604267114426226741794074824962996602121893159418119108666249128039889000980427304503582283984449998176933613729430085803688187056855381563551974054016690757442690143199400765306610889543191792024278707824486927545006049035771218454233261357419911013662784917498593331120158394223742712273445135699185589079343195832774916642732735920520844486182527344589776336549149786108058977228674143860629905426183883107511622166784421409417653412615371216689606360675850992940594510855936826031702161304639717435975071929353645995117236414369545394276855500319930456596516630399099165390209002089344999180652778004671664250475862423153541467010349713548965513571998933500055425910059474446575740637486444091230845546411202396609207838774095008385227002664624372530518992959957637357151000622238393185643225252115076441488477499003641662585230051513455099436453976501889796669347503144388526444455028771138702149209974114643185168342056390984654153506770635245684431223859772791580595784686375022528138811688097566305679835806254471779047454214188524368083048255299807354289696154669008130402473284177968626239863533878620525796335068540073964053976158377569888392098497105117553095914438403727105305037193309552581528717231308877895341366817788057937856361462931852278796176698641540175734982978867074100424779044106358552755699272196587337396554942012375725119227902700732843452915585599629229475158123384081832155616185011854513189541605335292038096574317236717641582753980276325702269738492053190892617385266764035285791914554927897042945219905851316695809696297433789438974021857955500686718366738615961595675749184597194710536646174928274925769707275472747494743467333856764491725784715471876758425903107210623908064649210577679251116774161504785753312609820628357035176230669429034081408331223149593164903852325610140826469396084768069281388225416536357693502751162822518624937735474409935606562485651820928585344401770856288243800324618580279637154289876540403437732182368469960250656783965423300295142297376701426431830141443778158237017690836723107503757539065640356827410969791324326926999492196669130692884218820005492097277869517031140776522302390837244087024202563943316764191717848291745367505450567626924418778822948517263942672480295637209539448936734587963595730951422279528762050681503332381560883131555304267880711222220029031519666187326872476411319213464979347632391002343345580597938295655171803583174720601886318695073475121261818672944512673437257739990649463897981540835014592451927447213518406504774365616586284057451580483570034790454202858095054912170621709174260490918563893676184830063894111424741695525424215329122201621346329161070768445661641946211150397963844597939241849681967515775080459818766609001220122256121681495895955501503164512433373664603389040857020480569746325541401466875835521600835867433345056399345649429123230193907723851778135671268353668118316307046870019864040773108462957988378768203219697510747699873688591165148976911264387110907392651571865625057695990537948196050950252947556517572986203970491113198188901298698081404688279930974788940575716456163348079888628808826129631227173442601971238295805966004729071043289491797400783624071329283576362353695443255419280038642318245821597297878207931011022530438136378953722738659756749986587261588444734685565188332772620671666103214794069016282216713362073375822349862157561509634788557760643797519482353784518571654480479639539081970250370398866565689912965723920050478856984188349789798915166322259112842839028647329161736831985494595613766194605888226894317579790135364886643997789258040094731495566848063387902769992797204549887445599797789577820998063992188309166365704239714171357820534209943254368883930598414092499279366209720821367211855583663262645170947159112332910097298964699906600568774039263727717317909067686199682585519027801636565440961067465960043504052442727222623617896429774653768367909493315524895401719253179447753048089792813428045140582181792985717532150987316506640858556607558031167725998596173613986497570382028313664699428076886642800425646369821582400135202874116155062981149466722604754495829237213194849609527414584675232467517772398254208856561869694261922590100284972808483016698522806210410696140923093585942390421116905232003322844487198725438930400611862381181027468781439754008379689240020836063887861168086093310997495150040164771948000969725437956942557730111991495836262042132586185483825945214199803591643450287507056319591950923018480153203273444247005897685694453286544741509592743788172544979945874748997836035325767055427091785469390815538824780314051978816842331748069586421054796435827406759373613386796703126120085586579830417928110799892375041557100114909794268620164615797817450944474717349867789757526996473208246876275229392883636865944865553045219606925074674742767659790552344727803829743602146839919238116167426264773545533199115967286696977132902329345493244487312773769524790049011408833469211964256783530704494516880966424489807321726128989616819936112708766714447935365053206714007036607342064283046935457507002902574822186605363829403548073658667488423581160831146280063228662897407018936127758322877013118786250044672150926426158464433881472664962164744387107395142713268229836155574115668255590943344872998137142489702102341654208523889677155101908826213983594698620731305959920258203931644755927259422180261939417244597569102471841554840699388566025107958623922981090326115628643590295444217138122924343099658521644868609228288851832883330557579646846296840072627462191138895125481235958452331311890301179405251087547457361154888009358020414863265886908576618014301996081103232346307139288896276402712460458303835414789678328379770892796530095378637471046664681915193906396294371583801247798617762836694740694245495049136147787292989611987016564134667309363623258682295833906347487414560884944649769483438544681565484224329369277643262640172538089645602249405797889157852782026637266792475740934399738045011926270785216911701121923989317402254296484188724057562798590912916574103396838047096761920929931217978190133676453363013494524924048325325387525548381797724689009416409322197399293984856305439454248858189881713481269440911365656094144964532683961431586798580281700395439011829286366518232475920400271370399199525043802473723089039168343655183341338868497717233655961736569757691551693743841724956641220141545580390850997637072555456166234153822358980135323954420837980492296260596792989570537961929576119170050531890197144752849171913439351785904828096267974630846841437898945284201885515518875013010445440909270564621130188500277199414115285245417475516791070323888566692343854975086006184598673190716043101697232119445656649766975757304312180632869904395321755386626837476612826097741527097850187726622855573850604759857708145510924747602670144623610738372127466117685594229891152426658176535395724838068211548102246509714934627192315769852547224116629342133892084496942612495595144580485531594029514259191764154835714953034388893262265047788968432251607781548090098177340491072235993941426723195391243392849053545540404187582618129949377495602895280496666224734082924395202917691926145721978782814110521432147588894608199976683744487698818127877838839931847476427111112810396890304540375067959742694704869192761463526480304304974883121665089009841884791770266607664119970331563331642211005743433359918707811308048718455908561229156246964084156501950601134320472157523102328549602520709255130955660265881065977681540465031779804498795457248267187223015948866457492047340626265290934439440287167941640107252761313216941450693748509343726387895824266381980319197607533842815833491283323527182631808868519184125543527901345358857105985776380905990940881761270466225661727701683073822200097483136381502864859285817555223378316743822632338237522276154151481293499628989770710031290504253926648434999764801940326279237232618962852653146582448367385660905792763187791302103291338850124322309022868992110109915675751069431199097937089614104031854191903714095813729183166588167643565302974776514044324851512693611113737578699668515553172943410736283585253304309873613105684053065729177946019275145091047589788521463097394204331673302283654031767392044299788162495624908332176660070872123470817329169224180621124951345250977395082295472796576251859561190206437892979708514004947172840232976114443150687977999469397382517499045134692598218750537916523003454164011148518643180183718569416270460202107584965715290294248338148999994094067799381674910641120364191752161184407365649219049001950402294076061468455975046157675319552627666746534633202942747133941691753603324292262568252500724030893147011282993342361700546852055898011905281445841133818909943403906022390552239707497147086692208150048364349786994781665105114594949612046671487406759483259327287090248224891856604071257151185954218274501765412815321709165801438282166861347121390333998165637005060239381881571906115173957945134920213678402180476012845002734512495490560128152171511801650407413300159205198314275696704575904620794971409268877408801867201742874980312249727858478278575724819466209035652196474341327189287923908707971474804382832067395705939125065559543698894881090160557584145928522920668479037851891542763829945839652633485507315114522132628823823856463236284026347202533278406481232353494061342241936959385722435098692705384922506642462101841316235715057427510170436726252247830557928451137390957976010056841007318904606426023987339896892921950144399177517044177911156866107776318082202131093189172780260473783804910803532267454308213394663911947774736860103942796989152021699258965775885044399599509134915625443446738205764092026309903473757042209940354714942131374534337921945000893725696896541603366249588450756845231361568237190914627718446785593089910904209302014204505015629217613239731634202020265571073757891954078499137953982669597010074907916242233928163479222276462982796269299650234115726412423262064001974006686208234756807561019751893585772597617801963152334865716580722304701782938199715466808730337482919855621841637208377487185408213079533728300554399723282007920891530600086030507798349266368443911172454016013704634906636429011464940912146255173897078442631353251144731141604518579250650912096909251466147496211114798743006026742894148383910732267306849700219602851500090022199404270818962500573493272522267010765805481796664765374455050837472595418086099699202260436394385588549651993035320288403499943778003122559354332192500758548737214985920490517351747576359203466155929708219562416071312486563035794815737363056049103880166345965329515018755504446786419971102835577577317118310145910470369836215750425059702695373469771005179601034296725474019673609493006654199004014484492276097813365441614411743801864281925308145673104127688999071784247227162923361704709250346419306383997526170219935096263091440522266225927532514506297966868620388109865218208724808572765121648420731124006399521083491786323814634894549610518032863609510944071490788699176278863343907474851028061487821003670937950995097971762488744357373016620772381995861953585457656299914329119825636315035184884973343722961217690182300480690814887139525197514203938585907256189585457617649568536986284144248575917957168170347453290121360319267126986757189847137717791928503192611439754155220616494306803242437237768586683677091258117167074560620226972877935068450748716851062889378272832841952812190973617666539145889740262734748279475176011394072017372251513963476872729205858001556332460090958207764966467398663559554833639680166361147609050296322572482931155622898049911304848593175072691001024746911702403840889442778862244389772611689593611422431239435046834012429135902669702627307365813015354338465988339233172744248995539679754017130966505289024583226519307032578945153000803420594028825568033562603494110302118364209185485236059455641817835500266717691834347363130107243527851905552796442956491909202527808939240577562282568880147396959305755814937356965463314950034448970131545282564423742535517254362466827291181817287826598155595628173031736120812203031349527271436296713131900058072622413075698546053512454319536605220413612067248696006822093553258884943062271090047813492493379201431922519181138839712940611472336717663701048476696761468861584695111063062890343944440247637649261951845474993227695728243494401100337569770089895079641014268219560011898811528904485456894355538921516052586374805674279004015348970843356293944428631472570520412001825383239608820945817695171825797721079763167251871306694072837430894169304475937245936904934967831491402129130688882652506182635258341735037139804590580452163169072073072275070867150533717277669867158141776557199117588520979311474847490507282990940060206923687460359605753233639070392593551515735195983403075287111898707702353890154444598736168002838015770630320471266067356677032768130422341365590079472980858142071976735332891742679187494178124134184742142659361362160449444741118611517638798530498737609500888229587523571217645398786610756767894485456312176139489424047635528508483437314801355271799349367540482305932467280966749089159145917748088404608811791478762248154008524976740279619181367484716729805828575721189897492547126679347072051984184271865593244886266999390068254221020295487895351087796570056928507895067678711485947072807991911698267575592025394166310090059655143151863408060207970462402680081474077072171384665863548895507870848341779946806508678389861239399600853151804592683477771010855337426047676148947899475334254500579651800551156986872314268772533863238925504691687956149322145486035478172794243783758069767829251121354723753661259168679174278616564543137433104533013280436906582758868131483924896758420053472464791209045485119307987943415322072355445384491285233444060599812044823623978664276878108967760684598280301097780319414398522824409470767747472705088839683636625050767455610240484118581063753009570693477563915567393605843662070377312747730004482663572432421830590519869379090621483649008069700265177861002829229316383963198901918626137247261520402154133706757803695635203598891359528629451345729567913265118839009212267277626573767878159302402060791987005347174230550933087604439394022689902911884687612336610707513917588609075480553073443722527518992705418244850226653823624252335417784216121053949783694948767695635958655994415271621374593955698913978873245431272755924030772471062266561539675643470302873249726720398467334998730166230242777488114236868553558099033137859981527299633255475536580547511000234817168218244813676070962751866970649422564794575132223880502387196168486375434011215962238738171766638002755289332986704516771064193455255001682073038511552867266601206421542061632795419939626085691891202595317406579735578491325845987768930546284039153386608329893275619079235039348046435019340230105005584374316117171238511341089421788604043716400990950510876657560875547134290479535998312536457062524245677888926228639434776818208096115296125984005460610415584988188199649385323599676553869272089434820470674473399841499965804799248852798872423268841609896623662869072258145828068712990002301444226897864346128672242506301858483877433228713360958459172032175057931339892114958468486344994624340912940369668693073706510017222465487519370803980377728535020669085364399419623364291400672080984580376475377939918351729709056230252906082298277991721721640014135522722832278420433038034809403211461489979880857189987722355037724243788141586597667449728484395799330892367930376594395381596992431724166382666177584627255196058450447416000397146447778820303729637907790905318252402985340881157366324453140016581696495712775986266027441986109906095572247439214105257125476351593671140195530833224460054654393019428777857431896901043248911177291944892310446645978379996259109087114606369881191213668526278479558116334363927771606555756747144163601601782297730731319486493629300757318803709980038915352364972215050778886415995374930709528595437640815211465548015728585713251860609761745596395655116834989485818194011210267282410167581402630696626217776219644173239686432408684941083743586189415573565558406393216637790863318326348633376313299177145888493164185613021066807155333086027756367971768912049237497377072687697795031286102610604054216309507558496337768368946373766800070727103358856323775370309642162473737754733910752993516561661040132598260992475719145374653992907907049291355753941008350457703288238076061236116999741568585164227998262030410000720427398887006664034040871737749749129741274961446197159162212709094118598884787258958517325441971410254649647976790732540215443584396716378304345301169418884447234642741723880905925044297756188439408076600048330988437721903219528941954537370872214351139123810049996533649601598076974984423383008579315471689037070471763186051496303495918068295299915285013064821797796271737486277561322991492362249129660045516138748905958532276371154417537412795367165358726184489401167869892653027672966881859342872079587089756232037499703656121901909027531165312119641009547186699208978532564355836939292161651890135660474912938746980356589814212947222136752503909086395316783210076442319918154644996643582453528978026082085069736031510765277116936591237998020089034128885747817779737832511549174680440453973929179244470065788481633417406047370999855797600515883381273227724229349150697677446509510345851849480097371143399635689577780166293633340360694862467399328537272309788435820158934141400882901897430994770090955949731841068660361285943710521809413179980943126296074685156134236651665455189398259828393132306753757553710170789490037611129265465154385012606243232613319209316610708330283508592318293766539735806974966936248342219010536509313734504568593879418018384721727600464074434577488899668677305508606346361099085166033507495134980468769254459312973812979311253247400098962041800743820960188587633198078993710000443471397298956889434073388460048387645037805691046465649924513154671588390754716600676611641359497061424359774995805060326243286071394836945355831849877329473265422393100628273711807030108895472964057185946673113018889830708956816111732812847382038130161991752764417719030979372961827204574915522369738989421775282819906618009165405243842258198986903328427518513733385080657580644547143742152083165635639298432691506714527294709366251281639754567283953003923048237106721857378492821388488203433204055513861269474557968423615845536889586364651264537971909344480012681408342591677798721420640733612675118222700757741608249468690266298910618826307985085240020477806485406514624207976917760493636137203755307893209023891535754818896023527950849757062280244423011513667312227594233003679582355299339208988780936437578100805254701372479765515417494924268439463220065650310182287780390046269248619841362682439336109508438828030697014917860290088746902835741930603660927319366869884904017342658963332073480752334120868752171143299922871386623263158257278192225024432759565253477835113673827289703158915515908914465333908120939966578464394875740796560657529639211643762608278690085439360175369258354973836899937542147480863701395263261197180320027070334720004069245296531654635004524267920890471593202442612003565450632804461442633762091115965617913039288708790549431746211026913811687221858640112086580234492627045589834394523404062181522284869386997947173881193038135661941817919564152689096417734843093437215939643405224887698579157421502953537240394520095203388507330454327700915229703458339005055684138992949011571882996060121417652168329349773018909413837360289434066364463449619559638403884545837514781727340708908468699553929558503338282415942176445989427421035860670670275351887257273593318033656276944202193159351122770542068146297083098104431759990670548939042529122562134101033751813239103711460711430193230231445980988639765400476337044706494621479093179720432154273096000664144543204113489238575626819724684222984779979016181833372936302925026038435383249974676179633000223208356034947166142028730032605497336317432428252718643057621704475313428939962319136770525481947693954114782457313415840455984560360164390801968800662353132335624024197774181225372438308746697819243404167381308471637457392589946625115549497235429631226994257119736644607857958004859822429676790356064029694425922216571069119269497605489920927353256060747779696251499060686819405137808952435142149696987378932644167967756298312723211067575797837770868380884307627890242416203621426495602612588431866120028080511828635367284300617442957877844586257408709247091130463154742210950069983197361081766814955296949980517813003541652097796707842416014828593633552868547119651469428127026680015228891925479055236555208270103525219028788363287877607090818473906441340550498389466688472714131874550282542797988394946816092078980822903093616861741622575379094569018606028185778150701838290788700812474033583409486834834987054613133609100606785490838592519030760966669328531171653322329123485580348051899051308663892175122653103996353207498132784995141509695975761342933444130450081836048254563685407185643207385248297501050724016254211314385344698583204064568183747700864321343823102545208828806864488583371279055796578653316703793725760852357484752360997049859721222809727209981818082424005950386856448348411562454868893655316524981709687567288802468884630258374309128933194965313245407701280849917307190038703556301925328372513866510173477098994060862680991701709556541107273695845232962181365659741935889311665680920199430045505572813451277090681729069326007585439848243705148562216417603663086252622233631297540342678436970898787569141233417413064228598914046155138952652477653469715679642142806284278424364062780210593701718180616877387902056642894886985590713020147472812860262806839926860917420437322782382651969985128416458444278788869175030944352783384774753871990922498868764023349653757505831025186641343118175140849510274835996247556440038937793254124371913784254326397015509833052908626066259090670282314677021284069377742448260728454480860180881014352180563882512397180688542810127408918089496087899286147062355354399979871878976030807604399210289235927047006005556697144340313870887894707735797167929776158319730362443660855459894859437970417249572855603508996796355274444971263812523423495611861879699521654399816435288890236727371043150238186577465515762720041861745688530306610234353843693979249217295177254124182016699151737524051310539474062983842933741055215436743140286098632539900718841193698944114051179606827411438146624586883000651970153326265907914253137812576139512170704954714112871243139220853562093955222256060867496650283268129829806278966918636335990276747880672784825729728495953525950527577740420811949727286552168896906770949885732049271140137037172065066693838386913179975437109152815880241327481594698863582411124533088775653504769578237355467144016431227217714960918653084329661653100049566026984706441824576770898140679094909607640472833892765381842197031736735876385267662540930903588228408445805080846051669714182882403029372757743700852000879290077453968672797252659465253375218897913074874475754423378622959780543722251740613761664322540739989069401273620314280848957420130143504238532289874390995193679971470945108107282337193612612153936572183491740498238757891732266960245794959719358375700095581327243939382151585604455164258262410458225087861851535405442637421160694457433412343341726202299232547628243723473103129715945039246181110551326896043162499041864390114361640998124117363130197986464297321679446203869490164607583463301758528742822725617049380586368262825530929960111667777181979043035956494018295130750080836830607525483963872240661630815207827727490900479366276890958884148846345554661660071586613299120499020512963818038014686018673186315432801222496185242949286640659985174222508151757318092520150284602952585559833005791197944446546191630871077842033316537486432833604747009728053730931536938734842316532900875586716872474603746922421215404530247663742300107914896108575266305561468600083637823594557537337398258418829324180648730794790317787252367253816764863457456095998151264305974192496453779695225876967589422393117937942786491902692977314541938629926155474914192953925373495679049513754811553169671343432172176189579399502526266517351877908212925852210976311124291670191837859298083349644010092458696085864804720261576314509957252691019265303429042593404399373707696474385245599181663583600259350026999748155134411273546994534736544047192409160351589301972016687523384485941319159080305760065931494978955810045226778996832260752150997494648320579852466836174990957110258072894741579592075331184118776407976472139529016943928751848560738176032942633124783057218115527735512650769446237322558907670210983537846973072115307559362361077383180120209380607486955610964360460865917168728446582935062320641775294469089795534529830410765129109514575586276834328074733112687284371729121667997283252828102498810938901956159112642727178773840801025093418692824405256395963534862893583591274145225004059275496564262569206253150563098083680203445444806444392867703726673523249972719499305567066929436192725035886033310686230280919626530972175337786790670612056778970154495615126356682361352304054195710068106396104570667462302519840130981143757312263860114597328059415601195131974750741114877044802941379392867552315502443660722234589200224337973731175772998292851400885326119459620885395912469426612920461341958521423825493962998641129751488689402564619034596354333516193400438821263999978157718007363199479420324996017260688088181162512470338263915578681181015599178502327903105904568561974511929936253312972765762467698747099032757066201863352860836095090481560128111764936071369839189853755852299822963957010636829313816039638224315911825227161687203876803117440650407443509041890500275688677046555236093591922378406341297887395658701347640145582165113333168748822768673213147389529859106891063036317666744939103104931538541009942169697042709431083709560602328575117980804805957099098722059021021879814259616275991530677555233284123407104297761988678664991428762745352269335689936153661789577197520871767594127964561343885576735179867842488517128492515380484750896718598111759462047897022481437695533474091048079561626698291884578410972481723474714392469833210100177066859901801744405598110826644291164577843025015279999663889462040876762487159773778559463976053628022166270095182219547322419185740727512983850858267709214577218329457784270776416884914906624733148906537911398433458951068562808662150230262192792485665121143668021660314172949466504877473934199574554217931239269760828310263738662999651332691340738914327793053775957642020043225558450891274449095340863289276544786948603068674938431101303350067824983592858356981736951457219411472294925368227677181830515089169160091864464621085004320490466305802270563327397572168369205326169985552639439139258416704860340622785770998431364288638928066077948058797717030779169742009443896739928077867902537357452001683437505716452291097921628325962642507206655563540557349620888209831152387103353096361586724584350621159069055509156413251252517896526381628329611470274908716947561181317215022783783544752640050080710522124300197315699071810159991022469225378290285491042268138840304190537144763187517627486396673379272422771095337603538033464700059533819817504279461547755010782005563281706921881883457643046545477393945892904986427757254729078849434904314801384171842655344931800804585955612106718012530946213368166267957514918334109350384213105554809695013147424605316745531302645317206693848323575870282940099222359774415399855644129792593226746864481408041586939916110996745036271573947023326349920174523579196463967167223152649115241033354506119761880785327431149382255822744279507420936843899964650219931923838932183967475137951090637864593094750914560989647920234193871228685163084625877969217213486710040342975784941491816894986956029516734129446067177854956667125016064273498806684313290198257165056901527670248483361792250653096760585774720545936046916360081354952423001470404981157982887200887476628827716469449659812647218240902280444498559550037787394502829958380554508440934248869529929861749143045076611632420561177516596325323410777459228623089053366811277683759136518016897478500268645241443686997179710097841271312677195692050166980859848846436746262222778469008363234760182008864450167404165284228375404809403754512417854773966938543860555286139578343928934138378510885485039880917524023683222541904493838486205118130611460373841816401221981470292102509646560660845324253573336711512527817213571863670576378495394374180054952697211135309022881110322898388315149398285315924472842509551605510148930251359698509306665861131160945432769316617102244610608020705546708440980420042248349742203099794396723972768836937009098014835130275906826956414885995342876476740962858735877578394457118643950939403756802679856358308061047296434557977969922519858202892035594628193310680045596016306427988706459815718234210977509633130966965175347428383070070300619034056541383999799470147983073047384017059838562772291603151365100376138125982230656432875539378365835082215971936171760571440376028598822351077056483931010608059289493625906007032287377780728957460407894834955425529665913275644797004877231898064640624161851629133806556586637663927065434879471966979289034846004075915786004110005201687304044311851833395037100912532989728881557709677546196635755670762578033858280362791621757559992910890939030881158664255272213407421768751018800439840873367483036973509453253192018304166360947888711020155851998556151552141290173404610199110166755028447872100561710570243064803558157921857424072297671101827642934095219378329419437991247575171318353532739145073056630139730498126257295633271574041331535872979429567864695064159357722816811432453875233998307379160653877875027049584567550916316413741941883194139710887289058703962186835078844882932542476069381510394386746596906980321537335352192630427848309306247672348416853820220633493080786081805971544868834908662381925523758577745430967746980054270715815362658543609128694138128799270559023799342516035297650962474621327378915167201497891366297754514260163506125591169010582487170909289769728237256566217400672330128927648455867321340827469347362668024892839094172305341014273965053835755162488649434859499066438825763945073534542230987727960087739681619349846696897264943257465748680484386861901887255724901384131998800189716279925443287312259336864866411141962030646647617028784429846670244212017958023250376701995062467936923991858862238109311822270966593638763942908306081212112261362979994017835778101892586515740008529092839529513532808477242281403270056891561253716543650913686756741670683375391946562882336724932901476712203306917753169273578697350857661840797949393093720224411583567849090894164609483213535243815040225171655830132455065696434909053080985968957902888061990556774047297306541850436834407483110784785684264409064462886911767744295552729448281909297986124235484512335939930441887136731659815164443882937522137589137318605137103659841885839686291376795998565144040325014280685857119721450912069794444520077751585290047568587497157466102432650660574148284645229134537894213332605333344754458325252066166288775679105155180133137362194012537976493105292618647856179409352589521335700139128796985604987527746511330447817096819933717720461876181020012184559111151373083859027829913885804148298605385397360426698290065146696667446515130811206459041021005590674848123455883174544654129617059734396157972697539622955106572128654237426603854987725558853328389798535166311783126329251903821781590782496730884828335509078138565743987975403446514940412898889696012881968567704466441703484012781565791357493394195971243193997205934671832203319759094856219067102739613730985229519477187239139851263744982938838009982052050711464246383778494476695025956568069136737122644905570143550765092084389710671083366544920834886416766950390267988928294049903979632368515070958467038061331547239470833983115167056118323355377827567553511288000830180033974608638281952110573555112998213174318397633695466224076057724510803167277743910982335053068301166254041514349301406789619215772691044292382234784459235976711336654346026663093608292205245630483883309639351890014527170819462023329136811583293324364495177730214646439558442479864319053586218291769900447645298390059240937992710905022613347558666092300611674715216552640155084629298975886934148936440260923408751755231693859527660666183306522662794385891969436894461267422290371570932665155333992830859935610179540471304799266507386792940555705985433425692095833865377860082905227766874149382554458313341685644839747171932174746873053630455270706942358537403637954956058618591196088675574297466672096702029110683894627297507711965664276212889630859786947223096753856649431172319377477769168891309813213978077331880269404865301560400503322832459851520848592504570050774174579115927007620504679645555797152698397080591569619169799514480048280142852932137403733320915014229755822795996100737687765952628214751666414931864966976928408633687538685511809462572358889433473983059900916119632846655193347010755719083346063096203143777865887711389895944999831305683318289368128747161018126001834492535016347144487701115867369962652019158884739402112630723456347970610970373519460205353465442516204674327323607865482182883731259024277548066061445030118962965237474729855914748979262406751060321152184668216295059150348924950549696815311705212280215381261031288263589759133286737891869570966903445935943527237512130343046857694478008649137649840268050670084409627146171095400193902860651923935587080174788545288132609374248241825256269469822915525464716901042916341501621676734517133048642119886694604188976841469127093370926506318443898628423885858267863668260612170281870636958324760068586533879813997799341296253882594993875055481057301711990845238035891498021417671533341766216128770703144129394582473394824292116632842091933713415909017327033036720965836337158697681972160776828804474357547144321529367970518665829531582050735312195975449213590826462636393237178299535678987247754002476288411177251534855871751459609165237798940942873771562197049714772715470217209563448246431477898033798238454398958671983620354505283256178585124666389723640210677461829078475573670534513653926975417543369684928731689065335778559932975021535166863645118769216641237496388082942925289873871403771002459651375323372275988403375214391547003098377005114575452459667993684976838433618084526953917796465202244375746656965442999630319416725645335525178473634661715666901342873626039623231266431304268955902305595375278944075577673825906227324865123171330442550610925651185402737732518469789535228612048009542682396102186885818905949377321962608851537495512161337845448736976560440558949001605694350469579176561122200138079855992267709425720874190658757694527161632413529998284709742083430119994923015898976608804965143243366481499466148955574772067855000106415959452782880695473810266950325654853692364667827980420611447159158795285054355527086844431292588550022563121216106425010070722669071724675546966810124711159779856229812297571550130444952037668847854734730771973535505897494094420115824395839820321097694055055867879685407457996050528164339878743362446477211999847290640680733214671343366507667273609513925320848012172861725553366366329303050738049073561285280156023741857043349840046608973166708098872981104565653471169234612402465087679254268330364211615779446584835888991234236501631299647175591196644069717106423592192937686052729594048505421922519192185800732449701794088323016415355228804362475024950146254648214986547521466969526420053731436763185836607718075732810887607271806138575341226310944597088733676968009588893845372123529115344102994838094055207272456928436712039987001531087321956688423694270524887408051043697189354722826451239434268240480239158709758496116428975679539134997109337172739786179252566472206054441524555996017181785896703632827923727472923651469043708322310626043095669655295329641318488549577065995351985738359914957066343713757262188121862147863372932641144289260912406787124985285649664464221488388236552790360348616685495234126896323873032425091489035279663009697374330834729447457387666375303163082794168209120587869775197317068990770669665824699380611284059838979893621908710437960525941797737257993766635790486011953423911352187856538210824721523533857325280727025422721428966246693643747958959858450316566299265545057881058884038338753405737981582245531787184862401839337360424466861857425771437228607487958076623829601072471441354674932492439996717389983417299794626872059387025141423508901005474377870695187945166439677181146567929959867826087994536685774343148724523368153991332855090123922297271481138484717147127345942537833482013040001338150873895623506003994732735114986770032309942889300212894891317343634198927682488443000779684309444715642328460783522398737053671511075374175913097955324836734496533222837549109588148199536473218945779608583726329886175771954311332239622261396283734692564637719703625785746972031209582573161586543862770662837793461379604083709668923322494492098445559189524729437353128254954037058847121239965455580241484319022984019956045390849917958142000454500189712959106569763800781985912026386286610536088959384493462745832333326717460192121465454108957406951178117690083562650221954305007886030801994664378356450920335494791298169576456158318123714668345575370868532301993360978900337427185441633858551002494005059162227387072863136650241146952196052157061843589317590798051785217803398867591019295291295858251344585374092325450110654968256897789391946582098331059369930489483564066931786824239343553902703752218749324869229940562415490903845934467887289505689571824633801461135094177882113399933231933842311481745966000311769396863714795283974796264821799945867100675653426410875051922353996315081273775461972771763767761654733979627485049806255469477299757109988291500426669773773305395595961852064569159542884155951298965450283358587204215498179296099229252251843637921605330012066716726404761616308339916489555732409070708131341683657714981718584101549871825474436923167975949812294899330290733438911434334008647922513163876456540186384045264090383159717409965332429951725772872160565198317073888035569431260823374126467488958229896133241630148013992900414022047650537985003105704410282036211362653487770148561294473210324745240673187398368313382547315511166510819482635916303060745419683131305959872743686920255980409990864420316532072712469726170405300528186771930004967657360114666772981372972807718174408380988478995998836703433433015135466365383201321492521984523813667895253644215993139201665692306205590395231126274337117719932460247523912792867842881533975143702522943407975877776840327991028562477757873125173421762024946525432394871671660630425793126207315419044931548719327698133929631721241363215423876143687717035758286951227337042694826929963073652258366883901365687705634213554969423012383945821186335193604526268841854692229455857018079350335660198365503358096674303550113238051255052583877881509717952741537212012793880968599911787112004426920500769632899812029277643734445993326337356986478713475128333278870352737262108704605770729660978607931522203681452049697846172166377241140046462170690600321413804813385439446953246607841228306287798109607316458649373037101066478330497316756019355476088098256888819029795644102423418853349223215682403110436854744083265158477497812591120680154316745502364268508062453740480197524716648943445473532401718109368231414523115794346050555130587434147518358875442241142720264813807692429441974591171745620153225517870376112578137034090589477157175003856791832501474964862057026194472042432998136055530569039821590306677498873883423986329442282161081059505632898807836811143307462003049917570958070625679760165667841303591769872833081190971251621354908529663153681750639748376380641073472968992176935329695658513157342633757042352274244233829526182923445082718730756900972653802694980715974994107965900699505228122843865984919400250514965762337382870317980762755019455796464200933268233126937655991220710323054490797504071042396344683297708271294591841675261538326850008922035378334419263761632655110990954638553887557615570191353388258011538216998879032517546311155781839294965683238735417858713488467409317570498723339075257430012389757941048832735376235119686632600997524538086665567603501279663235453453729313578730997815790689896869503394020962411005865004256590105652220490397890676205107685278485785899692806444723632539602873575721525800260368535854771288028873839862515499365897590046822446019600122296452187767720939411671677266679671655203288683160582160286896814657517865704398748117797966456563215122021392991428330860406212894861046870418953515431767884561280691774043016118988649979583464877882602544769745592951246717061128990487414584779143889978094998538983788457073830068910867551385319831728299002098829776585051267958193706648911208948471977439371251794365924927829959378369849473381060007090543972543752351060483202960887299414415642311924646410510971082555281106824600343102092505185761412613301228119685094303791130484563170252007305017754333441992294409970929671931145622817656974862948620660175672766726040501242467209272710514418303808507495638688949408497409593198245954453295459308129762249584825978191185019995647951013992735195725994052779363987850188700502641700127495998644817997631895209405516695846454327265181887308165621093823902642529067159667691956002887860621469788649153401261016319548940689324714214234063968114954952413991008684475782501566954940187785376709215529929016981977632155039876942441404110652768635290869328595728251061282452000397918197533339163644244272717117989543421856215197097370131377967082819499540299305832328047581577742259554345324674150870808383520764978170982298621809219614451577629545496379838564366819240408868168233242831247660022160616483598471440716746425503949005704115462459814739580716244454454717752961282654399379531645156911393283569680964700667985474503050009218693590186836102992039263354056967376918098208495288523671419025093779298583036631448597822588185869158928737861484089710114101596054037656722307787774989070147900446653692036299769420177533783736062742590442860773011995188127417185397963826259354148120226462537366767902355241008600316288304053427332097816062124755909746035783941690740357155375701954812494216713271003874094172045222791247532932524765703949825598054083777799643436496529580027129841545036851246075891552698237777475014984210144048153986339911823782610578417480935980730917819985711702169807859695307372268652318355831529323232250676679858713975154100001358184137962304336187089656879015122664246115325669239254019491999989136360825151319906773621984144929093271980874721987111921574709608527956370462223251009841827477297228363632683364357323451182982717934359681436022670397655467943115964318416586820962729266158403792918642917276400314136123530992257100506016964789905546674933105663615026756344916966681966558187858409261313122943632769820580090592319367752559800351171410000182777393588529590329078292464010921982597371267371915740831811381560305390822763942852123859615051528135229726869287620839376867239680240282148730450632929521219798978059125096200983719610636966596524828088322544659415333508808200734253757331768957518357571727552532356522464270170910708997945661435751040382545949536548742617463751973792693011866907488878779683992223441662246293942853325939182579212039168316564509851552515310237641360197449235974827159186339121376189985098727685551002050394298832260839686732053693538686126506086386996919075078321318023471609122164790720935204203494196062616046954677490303019024462367098319033442014578201660652605524739368992222761128651023206035078013128884738019281207335644788447354351581467848464612875181213658098915472759678196573551142345988943531012030568403710996557048339760692536157045108997293811152002150621428245676296268534739217235491985439295605890817966276581411507753780433044178952889064826011679966502090294374897260700976192250222001159282907544955157236298625104067579525396839806223538307136130892934827949001316404173951237140546975941826313326178918441462790805438707749236661620740233332315123164133840191288603712873886423018149588454301515291612061592756228672076318903973872298871637927906523454470551385851948291747100995524811049867844195942710473370406355449260534920318566075394787021358228768830806977408296500718720191196922879999049945395856210263563017514638925721052340336644586156448409423113485154798098991379195331436229105314693830939835372070034430734525972662759513954338002078980620900147707762740859006049940214674654126840140097679599798157672753944222701132355246056397141000625931419191769627779473850850327383157467367887699758570816410211640900011059220551774395503454514776278928296249641304073223135400174435022992880132748284235133270212482042608040080362004408538200363160263840221890989772500269898335602563903335075485986952515124231454800949436906165582176653026338191866160055065786008196851035643720582238165072807243554886934295558025151826128360438461683162993480349167349020250802548342657099551237605157327157268335744760619274043437381470568405186866774082273361480745418419595387633336831035583787632699790556391225757340605095458579708113457697892239693258748565295047469620549427938316126485018648345484385684953705971040559158424669295278242654397879760482266516078081330677674487003938004396105457641637159330300482417818578313534000915756451396074812212652128933321711760299453950546914737246036828234974102889051564644632009545278195536024007656542840204030833352200931739055293468181011728232947975479091340667177146617052351595583585639663130684882453380333637303389352667753214922385051402131988145333025915604671831088900935801932602153912229036104164069358287036047894573780002946308617396883058987644099179400215159968181042552491755293744077016175696792244644284415007747379723158782188291822985757205756669733272523482816771296415383079187476172312559596256438308064335034428165381981383762644524078659447319552709082042448596414181740037081798018318378407682398775516301078418819577948998258219583384530145100183088958839998357065972504718936136132961229624683097236246760673560820265475469082995410918690012465159883976789413067002765601607104768368480197030177927338270259142312508743983280455468251352466745431193657642958429924589369198480005938464241458561528969268435414226053445707590960387083652741246812448467527852794671673040170838073318408127515525737814037972451785658024464559522416803012070210566841693380022651865391752533620192240064728989967771834755913864025101864802471995634964606894490719073043554977650658594466668025554217298653107503376594420174596603451613232518731231833603413398794341033189628658367482081703140477061060831644209696050808164064667134575411148789813797667955734969254475739264568841422658031100080502205855203173175603900690698171129132411331005003171407586081667242511374802734649673860342734823297436359581437895139928620898920171721431649316009275128960852352533401476437339590821645965556399311509820693574009434532289210072376777255730033962182899909497079836932709819360507077833743215040203184171089966153316548447943860525079162395380524158301316004713772225712015982140203835912722668100115515304337608082755625365700845539262313915399339229410321422593927316074873647197520795513746623133501020943724051433941724499836300190811300732706324521623619941222083338343701791259517565559135501983814909796169415438976173635193812357520396628736247791000813146520201258114666550424915244254884007254456685578350628974897759208810883725588571117406457627722077598324812830198855014386213218487519090002762461701396729821236246911824633044261068303218716797845906816589767706700693662367092355988161549291081028489853334073080688268305522936377138003163492786891271581747871341027328552459792347922676179808443318104888950838448590792060220829690419524972684745740102568758645015346243364630535974176856944509996884832761958016228560285502663000455980817239691498447471655426267434416198036425879893039296271580808273197036809101399987306760458881678297763620435116858889111816239913325501300224529098764470808266667800906232829370023522101866370923847879187626138587959827073563678131598776629456074713104649526737532020543056206851816180010470556578360113951961206993314231707009164270611442899738674528050114503244899538356363766387799569301877542988349802126808780165770446508663167216368076612337492273401891067757770611843596628231620361057194869979885397009278661109202595956006672718800175776788433455801244439672143541789996291214417920785721800521731126365428586596677457129866880874818204676255912099597234042264348200524865056728878118554997598473693220046881918174467439760554831926826530272211214454527710032278651089477384075308651071763230730759221970418274585228620702112105191094233707168544517838769834762734214217004654545713997738977365075291299385926115948687451095010598624296053280456013520297665080621878171995632248236645895820140158676550021443164918341353685711574379700608911495111399939688946618830375784480165372848047693059981604969050919772751040775842336133413123992364338017836057302372705556015538573851032014975675467718536834977127968790125848236384917304981565860679938635495141604187461238343140263473964011740072139676219924427843409895567103140553546855558420215133274184186951589283359794680306362886344882661930270513342232637919716204565175308768901285562855496778068972257751611216037268499072463782093879892171997403811004507187758430028555940725287060604964091076408072739536234749275634139455302025151872299352406024661384292206085173189387875211791041640214284999327821534171300651867058513620493936470334407036870407512667821148168272717319196120756555650347949695019535924490224151662808288067142819018032617389216164261502922559550371633508482346294051528462874314580872968880220457360547810200643979361925393774741903540248240532767854275192145278740907593200587221066184424920002608553252658790424900990158312868132328999027727182853652758269809789227536865863017513158224397502904591931965190025681877889689838264214456646201774266780054190745172525414208230361328273099040832733969381995851255149209506234962849540333070915364749771643442834495819466254447883585086741158971593375079070894758149029106476183130602537110439373195248900141617200882935552028479273615638817049073839549501273128857032626945043833097810129913877888863460879661011258126153200828593330755427248157960504772014132690837357681743129693672296345789182184998486284756935554985586427494689709571972097961290544316308474296420120569991768218116945384106662689533272339971625532125651323839834645359672333689304674634615206717255945732826108191280705761088998959058365908215889546325036421841928856329578437156069533702928979108614498403575130120273577846220404215698708567659782270671369430661174194930379319565974076234773150626822272854332115895357421134749899626630624264471651669405764172796547485622968388982010646074440203700819182987210493680703346213339635742001114057498814491271648189776447265358115068052217385824966185113677958920214654658763108306044145687680462721227514665338700252803493126019802490642036987222250297273547659755320711000392158437101108921303933039416861693917590173947604846497569070440239776727151577747980795235691992009467022994535466916818643621975634867802156466864711015944143644481871928823737400494303355055724665200630467411335283715132857123446365664396457324342670544043942803718065772434204406681051691221334835436338126331256047425450402670562756518173801257759240488294223172752267606076209121933404105955937122532565588529387056063281932022469049136302506527309643335960509272379418747867503041032922264603736813138211663158902913944157161911525200620552661199041295086499317991276435553859163109904755613539497976906158239661102376548925249078597658885411761323811871025224208290614537579940907520402091832274616776047790070269038072998607994736023446554643014628502388183416266396050687425458807319727440986527485459239137455495049302032132643171490437288459445567433219688081341484353271245956336485144451700564631305664296938677332538190276946346716804239721929776393043018953126043725732993594696403358320851123555627834849824351809225128581038418453146375267577966995520880323786111147841872887065685767124943520189155149615215979849041045314361057581989667620136045294901758787191097312285717929726511784471017807142824093310053431773942233406420056861480741376211396585529582720836436232336593315015247374460267168574823188724057625443383092251609068060796454745293297051722932092524161978332332286058144257281193440747911523584441166562535900659931416736829223587516339861174793057033800837177553139836142478520826696641736628225386110262548666224656575193964344675701194799536356351445854197288619913430487567777286150254654151054433206557593956403846306002421095265953283402480624781947222215586195017001100822330396545729417117138432461622280948354897714015666481060073096836877686804891180275585391425834917365980063477489971650045704928913499780519689306977167515151260831278601383071954922357517740762754149365545097710200359127609161008493562995926111830455404644033836226813632850313477053119948138040114448093872485305335507513049333093105639132472477589158086209275205917617225068192393468025367902801785720707049316325277087987096866195789379155599675898562487379570587588851595860392365031377288062599036505017044974603719715999373702414569690841440306521076259990880026458323641763487674240090397013280905648775089806170136528515580071009911435338218896032985701874431366012426102113016167835287372827476843583807056782766150765381862057213534086142535558217973021199262983094906029736963962640434921175110259180074163420999709827359105086936646308774222275747523638620891238534798690851867524303187151342183422678211257111971595764878305481447687201294821256059680647578657511135575573809829416511873298613291995440753778455033119368985200476867267615658813420215591456475004529968679765936979542622763458029293382649067378123685282108551337230069428724514127307631718249196034721539271512145631954001798935410170823475700444391922653604037077569365908313745143290981311895367036580849760634587962953593848439771884473323017084018803188786536961309855522152330208832676429191127752595685969812987795636093826152209317232228642364020730039243647101411242193867194524443998909021094525679514584094367226708108982738213694669729141199342492646849995303764582663337170111595079179643206061453427184861857789095873476273321976931574068941256755376214609809156189017925595014854209029453842305578735761221787098142857099162111104218043231934583373512245603880389685519226524949851477512540226751575280542002668673144962454312189067691832884999396772472995614479502137259108210108801036226780831351586859228398660990947394010751750845699744320994636481517027310249971442526322549039252790763047033277652468702415652841471088537134441406569465279474858763115592973229542752483944362673482019727537637592514485897912114097182889620987886325007677328358175674000610930665066629794844045606316990093904606566141963545910975471167044157070161428828441742044361500361610652106904558948888750561422204265592418337372134753325901472492272450767644008997225691443054530221842631394462107334002308498435522218255738404860401924325269792206707806964036929872713244028003460972346823219543893701429359825184548732113892082353502697042848196925239680560955780150081235471809322483296639008942223460237537066883337797259007391836113137871377247474066390133812015679936253778081588530541759515888414494367027439815483596154829996259303168855084258653418732570559675879183395752149675862830839501825321781161766307579500117923809559712577466041036811749855637820456612018107606751221293827228573854905770341256260989520688286234929272845168257356123795012571808698541204716531636676150271608164086221543307916184105888166711386340730003831317852007094955449269348697814036627158392994901073819528296524533101783086471545952366498343768801854863486893923704138888767739973058754879812341642914256881372857923994015249570632669813859607246914331495458607912421326393589676236909839539839338408756836979357413669780900524605962545190317625779913137650279608424456414146517945349673716620804792473739916356252149571866622973182237352064081368680361841047510546985491692589143012196330920953915394540283975990807506042312093130028899356727017362505506678410141254998839850042718904290448474779109710065796460669968511932859374156589960663640324912431710215601962358071693975048389720201439928597032945115327471851050930545124437134005121829862943909509209015318679078807425634604578127328113785496108605704132870278242422443534719705267429883598420852373066476531670525934752869308825053609071782839014693199183398634434946215115853966177978666204998089011721550254494925002531910658011871540075504164378361283641722884023042487319385217835426260455618288134978448268994550429698207866549924225195512964784959002891227827305749518828942637787127485464496788648177213606830541021705326553908593810403822494162299981666590511806100775000596187623815930666495460698652860789898710087296497494449865374622723610421582289167074455455655065594838390271722326225927406028438654143291495382977101505117601835386167675305318938873318243584810763299655989258925286182062840079392177011512406902322846264966090722141216131319157366054517712347487697935020537873118748111217739041130715885478916654033454378330661457731948987546877408795907678882184803457597954574893120775622591518659358692251201404098854271283067270182876414746760200021233701297608200224855326870249918209665298479114170585624068455841389590530556562295166856055860286024157655799195637899883438447733759214637003116287963236725976571866036954378205998439209037552498803100823148236843764305700557963435606992706786406091950744120945418285077586318099953142335759816593484691891611488548259851818432338657861115561040811371161059063793872105679051636736657817668574143687059980628890501106684329660073040258754988987198860035817016747421021583594857491006445699731225428045396231547146984622307561224013580084027936816822195522344225250723766517061256114505649810790570262804334260992200698298548884876001608310311727767225698084897735297709748419690479618191468484015942025471649254506068607463528454475713455843390601810853897041623555186111905016842278820240694016055308932643298553197613769465519022210536968134685555157962740406655493754249985659892610264146862937599753208185378257234982147964257935784372079817628654897904643800190337773453948724598645009971998083301149102966275673948660766137744945884036720019164711994648810530646837306997939650288362456787035245363244884190875118794541131625267626023555044197696621272168831982309534923308116215438727938506184416235788901399561685106842705705184055928696100372281459719610130386205129442144584808228377567912832495622524666315319664751697923456398715914692030248319938416020931915450570629490302119922283237559951390662213824202495308929284153981829676793932531125919768294118346823100849003729103004272429666050852033078050682223527705564480528206718677243265534858891642649471665083520182326464895457718748003918350567929818924108185333336656874387597200045899376733724643148429012654284540917395200062362749014813926397063035123895069919093573229660669780697274578259962323408722682740549360465983351766780824520321903610661896351271552194633537240077415964870430347392272774063871578910037691148776748456662979876821696069398633021073655993010673277343927906978728372188920125705779059991311880648998979243302192284992118514433224675961741896874149314991398344935278483597019130652895882705301590172844918593587526731037177026826936966495438626187754743511640278787897020187642051283060714059845692894963527036161772448696550986408183698715861391840726551649022212037517301184750104491282591672789816508635161488503169868906224937877377056922828037104302456286937475943176944169812994914542620614537067267935264619430089066203288190502884093423351401559447707593289855180704847366853645384484769039051504495806492855451846445050600337588101143077413227876096225181481677093308377506537148921231069967793943307971989179401619627365340522173263042034203652924912131266483599317970452532467525261223324428072871774107513743212558541794614217473265894276760946000641953167551875279504147143945997507231052818318930916394634927092535354105532591932637967772069979840860925419967055548693411235547289102996183974043745271352879582690093087929431822192059732501038710996333396105888831753776551337109024504431109049964716958290419933748295365389279699601842729897370603899789143341815785723431216709979373418224945839676217843229522916819813610642666149752040148262252348155833100651406443586408366490773607147708105280041691132137703430152034659518496292992128976167995607900177483697320363074042758434856542101300936540411171342070390510233627213156512681263036255250576436718447131543319860839669051768205009613219990348311403927230480621003382170630588395915940876751014767419406156744810642401229529177025864742795450227940697589292720984114673420285451193908860785016026723987905229818054810212813968046711806335040022889582446496031529132158262184285515518008416327861695415195738850956660940825558269905546548212865264557876249269452573650604736671894629860297211504670980490799706414355075225062972966326212931259787028450206867036698072104758157906755606108591717194434862520893608585508065502758110486650992717177673689180154974901737113863015729351857637899384147922279140187174359172795491765012699875516067744011154111900536516700721065649251887187109605684960643753771910611877151564074119638439937716429547052111113488417460571870623975129066903240595111837465309140407103740403084338163253244690613293689321210391736908793671336449239215382662668398647216212565648279522598693212900836694408216930993706014519153867614619763712042246250385985099049109540360249426800524177378447747323393159184181748665947219970857411139477379930588174924788735612569838436100807624692003541568598317264332732250879346112561319060241995445561267371743617656862904930496474842717646421152111592889102591241258514528435301489414591900390261269067409914583054832747867664293897712039486529132846824113233111230167959096789015560135052734636589522193069132676676336336621185509021308300245182950867320698919945520749951333708035514540873379839495795483730576429219826216133157060739669565475349080545941834070206350198075502540762209838278520509156649113786336969577195812386479649102884290412376591535774388766382443007111388632824569377822089271538997808725266854330766945061524790744726759220638059291384476687146921499057791168648216355581931398408377584097964854463715333180116751724686010065531737680891892147766025987234928447079771598897296985182744502651281539094303813973181850931836610302692019098974824901019090795676599647272172793741466427907884326382722708220687315592028881527785286867392855067270056441580867594746991012162858574376122506001842495120182940982951953089052757759382778673812880976577804682458240231455179510378863633198156262721747886259812820030656332903558609749008173926265861573902909933210001904139413981297713626180008397611474685416125037748547711879417191723966062259257951266790334280726116245160535096901689005143084045174591528147865734272934465706630956462243603462707009716001477750451221537867452376416215855801268078717867818030841625788684562599904034995694285340542995201515595168986803540178954115665827549947305405548591399907479026671582886002288531943595804388191283571584526281726756243531137378117672434878582589657615222975637213837357520113540857724530825614075301398742723579033271813976420607114126787636769034944312349776284393845686926463783650933484443592239347662795778761741580765473786242551236423942327352493180707285879969231525926203380953034651536428988662309420296127972063533005868637945575165638876785703238486518676640980828993107642894905626922466229103490185871732863984313165862854328014707975714735950768841069607169544623102660709147890364215849499864912248872237969071479987763429691137612829077520426493777854853240318569739357846326188844386764347546808022131060569063582861328810162084269292157761327737740734791223184797616078233977912415294731504328933221080293423589081493677062383020922324923696438328204071616040875981334772556948303731427250097101606599664030508678386567990483383261106104661285127830553630447935321436286691008360437141890034528347822526915937817985462257981703732079881670622434762986445136541263324040024617097396122855667397245306049652641844415079276580327722613390421371348184341369011568969103669598984736094767433294225867994962487208107852830773134071006615971322597857712705443392691720002728376094783883803354004333859268793560020527334706521900758190620728086362040853827226600259645428632307903837767249620762462693659917830117536319331925335703847547816648776173484943559795189659578873812225047345176150606070996624024447454141182517093763430139337477270896110529232092824449876793773245759266630713757378517094904188446207519345029062277705742874810203246160494491868273551495708434795861394994023355225583902733685966434333921455937213943335571018717092981218409940069566893457863425792256071904647866898892580580717512228428891998787670841108809137385336571687940259401916530177717066363845551677623175473371738254693140291054555144485275659167657175360287015625251967363882394416142277818792985618746972648307421484792213424110786909962785540529353378863887043224907466381981950323744464737288178416937783022649460382869331208501802560359562482105709588544993755250908713210496118412496112041980385327449097507374475961957361809913931158373522635668018898347881520793748444538742179452030892840889658253454719899033508228140664366598389012183488399836665096000716854453672725516797168704654439300439113613838591260360995667535446370633059935558006246141315660619778760102683425047566716051786643398664100069076599871803134218231887762297252124344699701926165613856025546046266827272581850649175866081448072164497198821228865199046716547514386394279874730471184466428974287812933377738793662982930167899994592853872596280563367844212113089496536806432305913182931810152922386327641705189658552594375467317065068086424999327285216115665778991707780338498362029291306883982497382874623489462429423900100505251210331027579884229406946410701101814312331108485594725400591434180670307774489118003576082643217102842388673463702714675828309286231143756707194846461422906528366838596417864202904727821619043286541610979095858071610491436911706295751143480792225195173906029918758426846791308267825646977946251243280981450418894748788481890193624931755657482367535926678374301565213605665661258114859017862249445829364931837250299792040503581233987095027328146423682953204820070169778968116454516975652477831537642927291920375250281007110991626683534513271888305666831975987373695440322373337143871154076840748246497871078174954696886893464134693287386632747552419331199671514947628064337839701861320095392901105995423008718896814724682148332792043233754602165448148086098646529259951082166209252316358403504421972551717956429074585677336249363787542484282386928847965641551952455105995582196167693530343384026708691426730868915249386871254106494632616332868965332215819335902072981079324739956083769241309277384488339599214058363102098072786653048411695710251720070887241937126360617683429682239271387758332503689782415231507609707183136011648526490782163836882390885078877387282816746377123758748317539640392427403403320026558384025848275093968102234710852333848473963796873141888539043975982284144941597414576525577536144518187855781318225775595472815195559869549929336267356574355000743647980609414465772336439063764509880209873111177454083901842105634882300736114912032135192750860507902415957533433869346970605093161391958186306753111199123561314120511650735891362627683428748406329439252522231736393919112631354400880975888814881098412431858642218866400685375441024152391182769517274811261057553177990788053288419735244125594450315650902573295495380334629065822516260992615367211345066167051966833325388932875225194576050855988199859196788374470480931591314737702558731483491596854932661855195321688702861223564438926480953721624230419172827648755291437316058535829975438020776441298784684362522722186170185818085450587465002152915563809842015635684685984526228249495463203535634346475169509837623002704213469721144904702717181800151537693747197410156466931718413540776335431841783287378147676294520081143565527619837495675950410059749194452665920642754685549786618431806950286937323897622730540403929673302994257908526561681297125421372007245687753775889688427259240875057895395216732575581431501285520310465588821450242301327253694260293132316455872284862926252106631863845335281027254079892843754937805009445892918083424278594686149953655874394277840828607764665482071098614939861130882519452583881499874251601641206864505987088554945922081839797236815020542391843835901280818982071496554618110840551606390231446558564686929031580448813625626183405436698204885478546626472041502220393439464669162451943689987702229570832361937137611821627091942578402551639104278005250767352357819773077457384393505250379568342125192336385156215701370776907426211087306578441407496024243398596909327897761950851912380476386081106339335871304616606063610377299771554977198810862697688338106967512563690276149707406920569671980131522443276903093922497655081704312328282474993212017607401052550881781881753228796269082825684862616220622704086243396440629585883022753942306217333885198789012765815003361516096155750962818426058530259287052765136155622180942980241720723810927279125992717231875606603301951198226741974377937860960002798307561094172606706701764616161690753471220614294736595446256537971438904341001162266407522920805345142187657781448178988003223836014380354657468872998307281050151323334390987232275454198844329453871396353356614140214976079500953224772015733736822854564641282440029145750153503460018957745063261170133903186172435790314917972690542879347901218654748812873433846365954571632979130036227315154314606844895446210377094683167138787208298534924047028162560657020870528188198754322310807541818000156652159406747922321640015044699976241745602395873192214086654575002375486658549829199232281361197106050612673812560284441343465741157680482122817267299808136664884230293430484470243678560046589096308600162753323956154967234676042741917900238059998747958623865185425757199281995394997480378861608657781616797649482260762239710071758876666036481871575770143162287194625405996651886766687225730947242121480281104595751229295973528273864249620242346606621078148521548555219862063085980954021542817823062993122805158956120105311880309902036424505244459556363064412473707378025745107813132318883905572439179302877424790124518907350263604541935753305099186438206263040740714896608545709736942796799033340126856212100068273003314130499220650962816326196645269493313960410587736438983666406921068990017664122843439780875382249299317689742590756264428590408881546973808786536079077434531398872345182014122471039203132485069864357998678290347858258131694745516224165643930419408765294725245782484964465677476204531392362096042537106548518714366114367642119622230422529046612606753306714861348647285915600319834877540887920206510809222128506711648711127451135796413238829100498954987549662503411494108917376388638788950389975197186165914899164956821966713278979521129369207399495873726067017909759005342237354905873789560029316404821866703238422487325577947199543247691468497330460953492354661031976418997993975163530214474275369928154494650629054219828816517396563145267658700110039038588744922307198031604485385345034862275929335188415397794909772517182081030879414925656713161977293102914180925895392895668871068769271124393118245221073893477411439846425932386614721224861115578010641885926814765674546808059846104037063368309918788694837682641255797435266646552751945170482087443107616356860889716555619549375501838302960396407343191313472613039779567023936048325651775306797798408873937302270709284434111170423879495420348832002774201359779125120816018081968633455284700655015576307125703436997465359401323944970848802908255788925903549888133936080612545024247920306554606059823533073031551046384924820767581699128322430992418456814092442500458361501871919337100528406019339742205016598651685558069118208171110191315334941394224758744867451437224615743291449409062797770975155074532614774623371834083822429945087851396532545311706056923443140712854904972857147289396004292684435841297084790471914527039643362973661681929262967500335703970525993606448951042801140402805862579258845546909343689791523381883125033173145033972405897119285034514217645382043258029170865550498265715972272025128723006154451824691438542823838462665910526694290548649833245365714710795928443512328690462897091314082515200306845786832112565953109871115846745410109428107232796806292662819576744391238600112941694076880060925021862799647559505337194543034734417931424305792426206734339263401794794216320617672277560804245565686622870548371586595250228759038907965370472125211164655646683173428302934834851409644215590270210977228623618479063640447599551123004554201719828913446244294960845788273526769861634367419977102240207075788247266428142322835189526332194300698529387854711654856095629688925784077731820401145057552634102549789646680724688113961045751902650414389117144484586723790854809300245403131122618420510444646493195541050685428278211545710588197330669769800544948810844776565313576259920259804394457957318821196556974949616436659607068121106880015709466798097244006256788638218358707550384928645205859938954574107878248926838654564913866300326716990664270396290849248674445556075788651022678517690548070124304732121534719872674470474598318407002923686674053752198555228661915973356984310079380399197186446078781355859276344655957900004120799681393373301261575104611985063550840842592137180322868165378587966723019583901252728006256188599178437825286512387211745555316053462364303437387925825691420641178617603829016721131214149079394819431349296104246121257768405292255095038815136880309976165727812998090226418639078395654003110782160943852467792469930276353044910048439490644648496335723496350084372236847534098515328561497601261500272524522482558462382281263799788955690742377020825745612124483946268634188742186495781968148083503239844074277158491634466054359063919921789914867930722431399695048343964869412835967757237083204010739879813504570278721472619338118915065172097375666495903997363263857878169855580679694354049003105141178841822233849458760022997814337562844731831175765083028385829350714950964073074504516633379361566067997506650905081615640111450449779041356330715142116189280010840783186198583289772044460550196737062949286994717771181194416522912409979110965462203602431072731515333666686871609521704267315976839470042860690001857035180499390319146493133010648455641178251740936933724664150998090011961356339673711097575210339038579316959519233738904369144722045811642690552060452523452865972464438344371246660906287548419647120174877210870304192058331954533092220400555714164029096402047303715127131947638455741563684828618758846344228906630190927468649201386389481140815120131455197831339851249417461199726158218994502103563483194251455821931390646783342182686269994352129602787966526120522593346720087845826675959654576722171119828071729994992815571812861563771816354518272325311851602726177961109536871360153568854658673465831447217926272483514161383125652018886379814592822550989969870525898443109718455940123553857882139810226862470019713390237611699572098369494442626916489786887498531269862349294110873818295848294071633224238840341060096419694912040460352919904956773989948828249717542060926083814939496884767088355121996669968324096900397038193522056048943570099258252925302086391955469933090517736686606805603149214184253502004300334897550741930008115255424719081910851046619772815076984384582538825135013775975349321260023960871342965386391568196394883995442375533256184846006948612057815038141606029303555411317685111340057234537048251081795291790229469807617039454371529029452821187786698333226929102250428240607039742583670319738400828365397735936999555837238319780486296828867082001887963841818545410892358038520331846701704164809172536804492797350932896956810621459257455374310422194889610410195411127374616089812152865908609178342071006070235178463284882028499349555744656879251675645957222390298760477536760422613190258384632874765925502786039090123444129814430182428326397877831033146473011276622183349485111366451510128707774205472897947395369654209562828208644202064161759360093866029914363747560629229073517904893753251596232255187374176689678305800824548394270208647586067408794500181268320449805747124960002925957761689109029127100514456044949780445619821998669854122616142475487375451535839091445067982733293390714710623676400040087354349550871498722229903897954777302956490544273721918504041513782643237169052611458020246216755531200629793794327014962095775950503359546316230814631966298353426764815043267133226599173281785670129002428435863880949732602572623056719606901877449479976242679273145285211116858369935654289706885415561546679660851176879419199152997678483669600447590667789947002525883303626977357553758048733782968810256067687931328552469465296516224375827283573390012500281561977163047245773865470742315610948890088892931043483945971320558688052078244387664206416170484053873055907122891475163288589150703720629200856220132455225145607262582756993952918297242466069952996535375860377386783347964176662392600125007265574168491425637862252096083649561477028473728898224309776369018077222216547418343015576512770279752011900088184878478600487933534527363655334571258110948992417562881133854641960116285572064073917744155098337782335681429553424740480021772636071674849994937958911154622449508938326852524434496244866310591283727821561987448727997093803005546204130049812516244396257896784392438621832403576946324481725693105412007309792609467977815943116460132547081262151629790110310360595388002611482139598833681362959831201508087014953465784887079107833891708084340981996610886800298370970567229650512051421272819630227140255338466190946267221717224827290801441115651728262635820082704179495752072331196994661454939002568847834287861476670556023287358330982059407613835343745096326151905283767311672890224584757387626816094972796795462952157869699667964560539646792400162984522591329383902757779345466772794003604883914300799522772120587737912014616149416227044651803155367117061752703335357263282193140038272770611504329368650918309457273810018322886961247953391949226681095081767153952941093231694493614512320064239384110803685715841538523131748879073824019488819329658069595692497097063486145025716834952329277190540480863504749664888192154641925681483127436787472325188893312227545481049843765057532523361146935834053914598977479312931400187727887702430076273049571999408257566427327828371081682306669168214765059503853110149719859950499996900525366338202672493844652744974649568199131293082155877908701311155653744687735810731991267301546981125440933697607729200967125857013359821941037191266116352394623677404363566347835444449659145953362926025492573151050769943263065949838198601026461814566818492254192722055248936329811254910986760317482579169738425127118317093740594186738245368734976655627581796525479722773040920751131239683613513214136318697473350996243055549125654296080414263170813817868716437525610908312574003131871842039601089243056274187801441467348594933630129183323560352467305826081110815073399700726883139957130891361117005165742380989798468482910102606073465157218575026731738020831723630270481065162565873464603159736943372939476311623170825519401134101546070808930572037973261327704779593991077244713315361854249024995004475023346707130743829083200472997052625343963261143542669765507153159794584769711898303663581910684754534674509138156923216656368310675172615090053564713707812125116947815147398947927962378420580183850398912851814379548756186976852715053530981176750632523373172852908399740533558896492447173774357191336265478402534458499317540969752168153082667674109406094522942161439233657014657113986542499022445848298036568521704200890723424808839881122688300850679044267095374548262847772013140806653843428752230338477811149314377014750722498180783003869216419592460741928167243405867865361949510086012039507853948413596115534204081946199870287782427961213606718082864533503560276625236772283985586684406253595627624334831052956409830844200238713935608971660640724201940508243908171116272286720857599618766242045023729380939497618544827460504284354351202695273910229592737512205579078209379149475584741614868637730297040308387928113077427720502889810449320311741975733846633739115120721160089249517384118102252584130728385077264981353538621151052102008843396195938727893355108966719495002899252204647127710278597752318952554472902988236395925675664735908750568107767716360709011449912525589944599130355409620612414738010794071976336855085080666091717990829776962556930995813046846581227910485002847460432687840440010495720693258330627772751700317901019690539160196415188962499270611551647787343127894071466935869541178335487812244082232912929702805886965505689425886002225676111421177518447455710687414926872788370950122102857849128442844992243027610244811103526614359100482361968828155836342132729417463509977525882539869052726393237984682978347081932705489442710210867743100815192919820715620409275848988392068532170022418210909195260391255194589756986343711136331561071847321017803319564576094905928989759476474467832882575940388743934117708526759948563653881799461590673335879496328825772374302451428998408209601908031912574645724710776696502328443603252613187678370673643640920906949645316156614889563006713816983147241682159381877976806529986404451342278845417026672786568671707210053432048692987975590836839132573779120306698426489254789946217846345478900281647941298187023470447169795344454030943754100600095830123510840384733549064854225038844307632973395806656206035820455811881826598671273317865534442889318916786252805145905852886675448543171395745414612935447475718527254556459059236207435968316282500277266117377048045811081679180567461850284722949504178759480635167840627103495680215315955500916973844208194377236267268068427685642526029113219140065203690195653717016485867685697893007173212113026317085026202744197831640497046815335655872672762107012283225249853450486385382228802465042026138056138809207048887315610595066520531343016807848478652040839161794715188629264448916925812081715540483411413533159150258240050747504733871732361124042157838800506260952001357297466406846906184059746908239479206682933837429031913242934274024591794158031272694000048061708762456352571897949397319128034647873511439231416288408601893305194564989033282971131201642006207337230860818700221499191357891939309606962973389497869556530491339479316648516857905365994282335295156940902105742683779360355764443217687868666102153984400003344262790601616190690500483462598210010208488409837161772098240732786384318907074051297450928306728617864783923783550130039476721122900599559552027709121204223686297952835850014620088660715162173039631152343490985254448678694856787225199383591935812706117657851332945261707193748229161025811734933042182827436567034211848006308921447439490131748015719678290590690872600754059725814922495432358931606100682587503812448734821101945284694110939873199827723898347906237318752102363542198452109901648018468073257578164438644047818577471603188546863471170576494010626172345908782191988014808999947425780593592024641672656711428031283757266603597280210198048301418042916034501322266400774857289994942064865794100296439211811433303955039963270298064304428506637879188526105382495533927602705571111006986804980460149044871561383065493011393050269419203274728042317823728226486274594741041788956337398381064615278163710118909991997546623356545840447263387656805228162981701158388502212887625852968000464122392850933887005443383775849483464474405739912693284978172853880053618608691810204835040290550905131778434930934136946248352027229833787003921728507648019157673863608480277404671249609529944959960029714275876916150225692378724240965844058557242031061937788374248329043640860636181397997524889216295702734684137152149056047616539208795307715762144222383905655958611258778909713112359336249765607654382735661504675763909360963261749568889666396011416415086668359911884023050693174222617003245507446267298507846672999281954318169909301609389639789277729308675655603483313821838920278109832696647975121212116476624980047923771168566253149329984652664479943081900932790812315135550377997579622733002684266381332195769022673841571763511796255470079472834668095189221068924265516115604941452789755436899174301016685387910528045527209476682297381150011660754618191913247420101517621490546473619064799790706279236123801392348647347602412456046304892968581112785488612366524880873336972328705222680882233248585403422757142914036848240969326091888848090937938298443650056383716662547230114761217901018372675536577961248266710982227094095338746185739082061537053125890687750134772694442420569146129438789644421172840257640184415213391078464387896241775863683152209503753643851626189684571977085023730227303086784416340107781002285151839005645470948492603413945429591289875915987449304451860334482282519100116961402670803741279457453124417981377663037988113817006024471805632213465367226181985093950346166570091782639949383361003087756639155426952433117517224560724972693785530419869435988479084054785764055071960694409672478402032466399082691751956232655276619615551284087669802414031034532840253530580897453648133286187034835080714257981734781824381768760788862653863852354588062763248702297425864601687310789640918328653333555643361549605374128966638151360957488184343485555711371603371415832139111430863965207065289219647000379755268908535521672187658991487804043450564402870663847367645143623505564663455073945301786486921039175521223740555050650712222618889699209418451604268348599209870807962689628447885889550428381301525293514414026172033783538742586164698762200344307048837232185318730216121701500016637498855304617484079981502532340935380615830943474125250851609563869189788849167648165138485063068521833595320987472363588702869429227719691712378117586643742697057498660000905517586345864246047803645218553114068469714158536956611542477393879572440656512986087322754798047599657006619400111278338123543082401552251653668615279005212864806940695613399537140061766114119369988038726849116475490563354828609046700314774010076269354428593228129987370553743233652900097194083698649499852718357331700083186844071670782035688301056130150297632179607079498436686686884566080864574416387745146358053963971078149614188151525025398100149291663735935656794405826137986013856840637398517613064210733286869297522662409017945121489166055407905518623247038178341182473397532027936778618297079560267735131357186346819375204287288162898494720919087640393512477551120289410457152616108829359914173738631138659253562583430314071543834431141964188708804808465908214249313901285403010974124508420416207647292686051975639480855896015165167909745678892564590709467423043849062856701085140456754617953115009687090287606475952544522251495867012956242247670362491235085313740515063069339352025227397148840995353465147688255369547549775824487828845648484851469573753089590349341768481052984926451520564513265324685579357491289411728688000467184182936966235470721086661526297047106453088630797219132643235698539988069921372630762817586369335182865474798371520130148807272818824302748915300618313349762386012129279668972805982995265484262207104769648105675388628123833799899892950417648188982790416428329991270909519361103058775157382341383329820472759895795487624005130644761127962498508528194648938876200551422217338156207432412780417062123247961421638321258640908363378999517294186703106793010477381203260930281784363649383467521824806935045820252085762698522580956408408128032738590752243351942124011344223530896218998625541324670788774371221614320048294634062664525254206069439951195162737601650030468393827613788948956193372167009908367499061022111745449252920291798851569323543172300204955216363990177433863780584542641435128148099995714962895049236012454451223197443117767452884124645272194485377461423972060991114969134880863104922823999979195933518391413762986265444180205835057659451325416314190071166289011753070750729418901498967504341299644446911331052892080149165590735285580425830510464099110162352071263220170468833306226622502824637552023276678173571430260031617132230105283761882175741402368746619152991546060978956021202201649384921555792126261170604338784900534980969778957975144047975607441110583774478065912680560581113073229107985416742701832907459103760787940662940245590866397984679051431272538696751397047322748051846812608272409813083728809370265474045243390368343702729531238101043365989630999565763327007872427922789869104798705255603911017807760928561392800582744564410429020030697403181669209879713179531678770497693350024606831579702341895215554198707619127078349138794643570782547908730797337914273104404794813093789104860870032348636789724946496545701985899202623397467929395048099985661246436943646296154187940877141997675059832223938332971559540561761783535742620621430020796480119000792998648583962031895584946974658331736484063932530077712627402426552558530487417040039301944977197467047931822526428469199636203491025406677180070267415805644600122622197086368493121954415781272096126101226332921662427060768081529099501057832961570377084395644787344214052652250837610609049149008365765342256043224297145817893975544804607155905594257400699537864152492111913984998456743329129012921060926213193987235439164446833491312498239983088450807676248533098245262260213868282001762851991889843525417652339182345639912344452776868622800735396986211272136305112217853647922090264355182978751015703876685891260680103512343706349932920756260121916684813359372859210912994377656203618610121544013041343516803290206531308244326952057663433282236045134130061116873077682245144838500085848268606541208007821321795838313445965417372235268484499091481239568591098697508596650378559577893513371538552641643597537097947759964425466577143830772137771462654285904347259269125787273034124859581919837318550568575366388625456263369131415740916988952407941574105801533656740917753506803606167475968050293148487397285023503961890700947584496044048884896130051134033990792801027470305029709811744495865621405025235661731516163543153708966011520693925393449812016512460752997195297204719042940228020915569561926468962399581395846196129057762776756170771520580820422573206812198905261131263570707373212776813498495429819258613930820781481488252899248578501518963757067582645156434444124458407444567239473149189126365894836986844087212249985863791218203207841022953116374643205465640420178567407650015947854919966017933300073884276922377172284503133604361485471991347853331148559904289386600160333067899424571765612340912744306363710885920632950475692653871920133800964507727213726240808244303828910356828502096565408881066395888480067129766079623273457717399922091089666053031029892987776977635372582256790023881850919097955135254433071684210346457971030323498811140546354975527954799110823648764358206927734209647462379311793602964398090833765090126099453395334061939094066115493207254389363164698183229270039046778555101097267824279535018875141352220821412704279590692758740674159116347853255058035790290808834211770754145431455004655003963748494503939647283133793058371360842202933147745100807000524868666227200913051964495193025447425430191141783469700222163938143143243027928590557450449888956108708553812547240302886452638538720820053955303772970073711190216678498906956804454813800952594804762749374716797312164574994374041250792018508085605324978378799178157540917999230138403984335638871769933071356351183414940158225218784568820515003512785995160307255316760532932738974796105799178186014535032513394317097322793904843768819594366175192453504883593316544085590135922959602283398818976752594328783925554770600055540549693971305668445945324515472091399698488939081421414999916964435752142840282817545183125723939087032761932824775201039298881841717003492835512926064363031274612592141511697176554120403826031997642191187584552818908211854504098716397116978525194975351525076744503304941333729003783856408842219560459811225868308645036468847972678876831641396009177489260164427721159319957623600640543118421538170776077881421452759975916236738567011772406252609601650986872692976404954066917397164935478698268922373762099985521737708835069411578512514106814293747255398562126997185420873751637206302613066434043033821261835447470908388917295446850576041265151778775878637242652945310620253036970028022902049882789612486367381238958281265559774044963551284441576728755049190316980176627441234851360190502860095392586982995144432242623591216355949281916513124457785158038817147773076586253809663657685771306355029862235175384237181403534070581281099694964054001972211543334865459545823407945912121772871105109326566407388500793765122659026541980346897234052919738546813827076629995024727126158766988389256011468435615609375132778819040643982041162009829710225825446582214701876593849461917023545691454374832285724238951226055984839134646862721912318191940790187429608238423474817781405051875165739497244851163541372225791390730298913866396092306678139606868204606957867943346855054907479741276600008495785208786209050220972478986269931926499699139791952808182638231118902921298456471385114838134137685383940752837682660136473535288987422427659401878944450175771546222677186044348604517499248104896724726085208941729802017607914374067157639209763070348528555505289051147717469038734073866758686369956241680303072342136322465026924087828160009733683874565364243033832557054096608378807598273858280829380422726816066213477010825374293439001589285243269701174814049637517780006125839549249795122042732136175647985170674046285232114506741394336723662723885206879344233261744255160890081035208366094985615634235344909583546496930125320364266904866326245808423318518477511706393631223441451258951882102896907167526379072369593008891127735356513313988163269264696106748481898797716721235422127335209492449367903955419769340209093459226590109737600212355923256650473550442399973674410526811340894156660984383379653041875325892935364838254764989357051192921432448886660921169061979864748169616945471105475425205609798739187836063516410401203259878268529808575142328364872472725670150531351473382291621369434999118757866608066213604758617834988391436662528987478322540699150613142686857952736477830958733939237638793354186978333085834153075143001675636728346136193395549341362671834345106306747771709013379815831746756481464232856448086569859916065850636566169951359043985241266961459106471911264389445070852102767694380842334071522908271480206338729329591149826392549661153667375540028900238073999068476809489560931926591431181597993731101486044537338550487700710371109547253880477115826521916634699959603801045393775759224239594671376912058580244222670333516609327292460218068124507878372135545232457577017575168401621667292929120937182844974359776732279402680558874271840854032719905081172808414280097769118176962549167950737309468201342252378681655955552800393051508635601290665611896399649203314969678386416033389592183539793604770988864915302951294326490571788984803851981011149774722213658647454589124842600208328059560055735941634580030869160987831547111745465457106110452630077799885853703126927093710783609729249845576427078154448084913160462767072649342546493333241228295160831670552505272363236258451913526476123456014022931685660615850727571494648555420896947519932788561426975424415475421909340826901005111395745631447883244920144947581774660334134374894843611149238584558716407372148762176707203335252443880687264377328545587141031989104962869642692643766022978621220495446648872573233907552940111343575090980760137643605116099958142184486002936539643791079573169425260404899549270753340547646891663772377403827656051724600503037463842076737465640971665351893473688491669291966877852348657909308171862433310198847918625688853082241080961531286698785568791840250978551296504313219584232316613573439261266067062839049867477367326831103397404443124855439234447841724992568892604833717176497824114305881211158633785888367157418739539477008765104791769226369484832838101917943186660924112234460565032110602991263584308650358570900026247465460078980213948909024746215899240063592394503252803601406127179399623969554702780349208355467568298233941275402672254452857196693439369414513819794107852895532878571378999864535087174222253316715517817069771874278539705204886281440160131698923549316884773045456267794139045295366781933078170381648796435050763632005441539306452442146795565362015527179468374358051043011016488639812728119326543167613009433736211357388597770673480603535338560749875128250721926787568221032424602990383645001391394358161515351628845350775766546822284190409370136427663610183722491700266081162624597881024154605345259024572023734119972685128202779763574459205559200818239428649741586231395302195759179785530739029804170548351560902475954079465548474247094209621132098170884710390413287626342659302485896814992301673557655864530781687873837570747808411907634856706266508849507849842119136657961950509450083411215671475599112278343268499758684449577176871580570935071543574387743878037958377466643092482313433572694476559971810732795395991411193664494266442381240620769556614138917549596347696186407162631389436389728723044696758469297664023622998952399634360417294294250904420393167942409087586568753796690760262503262258932148514064237749038838421104595236388766171894411934421784592269363792252109615584493387519105001491409770462366459682210095028404995671950000937935561014802117370422502933963572764904056007553798479884893244953136041716362934240659093101269446585273243561982285711829002641452663751609465808166010216279768321600561111931156307452579223676893226893596650409274146584157871547142463563061546311190335297926913229473327606273996174164515169478474193027510014741413736672887756555022472876501084856378553884189132440463811352033171856146024702699268733986084986084447760151001023536618669137990848983363493988467502586376154856756026077024998773864391514177682844803839720694606282404478053220360935844358819337814361016035495276239820324595547795731917637930983433882131073863597109306033919147122597737932511664387898053174714727998931042717417018837035723699627270568508605802756283858464816923518025053671437889486192631418724296436415488072289571626226588917806996226293622442150781889738969897946207194482079314215638446608944622011735285099763798503844656674077190802647481429082736683066154701199571423442474644354602750299861460919719131470016411451721720333496672870283643912418257814093122631440512180723404611786725682628515357429362209042871605449311671673656059151864038967305191711249498800106817109251775720088261849243325319036713425380506859685006274418304751101211331204017553615704640370991397148651903380626998409336238451725571885014887428408728759906067676645425373831918207451531246962518463676913976884080405581487209710001326166273133766781185303735982893771013650112169108378312091671344333648749303494670760390334987566143093446959469351324767585042134224076237383936899226807920319202919982908774733259735521481705677733775967752529445390042896910770920281152286153603585225436732161262140764917642872085841708789214382443314357244157885983565280077942082835515501764931922179187704194911137589870575052712216958952457188772174005876965429515318407351801476037877640967989305416520773574933671867795213010674466556630759173528333093663025695628737611834635775051499095120116257714941924401183438890508027370002901179103075546847381674963626638815540613666466835139812647898391169203415996562263438348447117709331527854055276333706330179916433684623808498474454947232378088945853453360585748764211059226997181693422568772088273087148102835118655490789920834144440885522362550888907490284662160282773265024415317335043669807972248399898091037107242926071005805785517885653154356614564265386922111285348826517318031045077281605676092833065018153520571071031695270456774018012972774340147692605031147193537497015421886211226005070231284890794739782447999742119682872354524009200084548955048182399208626433152586615552154112629888262486568685656958169758315459908670563015456732688489006194969552675909929034627116982681908198247577573800267993630774900355121431131153471155503487231166448955432728547100895969883967448113752387956437721626938984163415201214611900243238656711302142025778775825392665171164033635475490783110382644641875438752294778527612361375224426301918919727429146547902848002216772730351850889249299672256358360785875657517782578920620409699033436164536680971012096711056636455024763598502464582026136407429444136702490756892671665910625759208975029772358650296435621706195264259247225649119433349019065034571627761501030513968465554610588054901909777644024414990074877922333237014197883518179689617070476817310452677777233611249355993426936011557562113507162677515401058893921175084556349725800241360747226752798643982886366313360790515282525128944848492386966631489267916843697459482453208420717298299783992582797521296176017833555006278840624866803552616204395592902311668916744431219279621237435079171861003190017036095646476091862906674508769771508922035716355402404172812390880267672079079216114468970885266146006784619274562298219031390729280434489039746577452518368088882501848415512798702596751270211259019011972247994071740370924427790723891127734386982449565378746250336124373074505105984646917967611401519930590384043033670199259303469122422893265857367920122953056789778091679395500977165137688365866169453822482220268348764019019711818711938930804352322377662179101410788905151032725886672975316873695697233412302287657627005687946970340908936105123411742090168213917337000790284777155348075053048276444251504250061971878592573019672526631451477022079188707232194949841523089676821229967249032667909871181664403636918230974813421082934430343382922395853098323266694388311481466655102557479222972960405469610092074759202383251989366107867748787184456149257559193943317393134110709891375136055506963813279137164374891114172481009134048591294157211908554943400226232511658923693331894199959277767407569215011215083703071277616274980955873968076012794599255743677345115782843020752194682378644689865559629024614742350360594553711148316451944764250095694739449586262988645456262109969588688013747051261696173382747484232870508657252834795929574174776221921293477791685366082312382704200584045768064490308312675054064438868859222557327904197469262504640456541547703024841597119632285412017012118721595084667210877833253926570187293650157403103533838484701499777221504481307910971791590499372256828622406758266140888695438275842001562649916787338090181411966409026077608818270476145447062765427065466316452041333705751948047112940131462838732863309327141743680393736695695690843954618589837449202884703446037557890867796674123315989086084290049915428290797560773386409443205020978171715343555652421344179374377108892087155540263032118968732326648997584904986606339290157662135001416114336657388898280581300684020511449021314716314733262371465433451803532706673938911644792629357950682752345591953910453065441923611093653556486922535262306601686841984117613188332397011722907509400802595884435525643609456012889352203405311661477159792586173226681531056355378990924696974459370710126357080624369296652152174081560393822488018580397386994146332926809105445260047725559848192883709412942862207126461660112659644038087992792552338678900328171264509287180948049823771854775695197477600652385231702041574744914158516534704456669765911392164833716369830593238232663652960349250309417398077622957219946293377004665793892508139976219738793905459362192524164525639173448968729144531060075908585394559156811552332594805515394775640027632796120241176558772216349207275682932227186479917480552848097420775069749609383290905227969081207731182796396466746981964629978192019462946270036001135697914146704324231420617099104516104911429368144040526747579036023898016371736782549738749191670591667493285731761357556448423140193369685315754708300928750787334247322279329543995547916949175259489454964337928641472240292345592544863407028806015300508327288192526712318358032974558154310904089377155932722767123501903556913168683973766206459882736299928467982123625458913935176909784868548610959680070336191451883021002139653646419780890446540133449470206985338528859357192193529120253986021098796295387709188349169577499812232987492097250683528304879180252062597775808315519180878355445024165406784618794446644282603453100233030831939044124586612105923286440914558402238485253018218555456781761516040841670526904849510745520593538740634498923137952881505617372466304626444398790686609583753550685869177332581055225870250838243698548757223330216532914274129619943604631316163205172791729562552464954292366093552924781254832250319902795305704418357827295966498607258590664533302944344253686839173146801236273858408124187523029087633015845004128079586618709263763662762161561803467985524512629965789291631344400094114865216912341906233170000903128742378095961592306730879323200565950308101077901039653345527701135983117633120308145933633854665486681843978477123343382834561446626451899439501894700240017637278140793409526699553089068227310360345693612303138323048259940197082870523379035162556178194117791063621601762954229286761324890542523895426295197571346845194805085806743482156111072328178207182156437301850214191896614359766062753789547413819458638789957550305602154584354335507781009003693886026505420261161928096228504247329856180315058112551947998463277672359497198245850067905725629857783280445250893579552430696434243742719028596238585354681563176948828511087750731587627802542292326060282901609897506106798010979194807278590145130344921841839348400797541449645707915701947912599302055800462365980056207324728362679732351652299550493277740344928999698434885528803028005077980544549964192077896963266433979141889622005030472384825715829960245935946273061516547131146486378284178926105286361674548147270588530876675380540148882045173607633975675633336357859309313905513995119204810520098706668888732191219014917587119149931932773683202886128726239583879364956703204641441248969918586093847612700834283787350999454540417394512771060530056067381468692787300181970712634436638938867238829012125657356833814182209084684837290694150326692861617349039231348154937413391255955785224734697546472997936493146823563775343478471428682362729693717788788366525582785947738520138128137116113771370068457266340975782057182316372581192592595749926274516496292104272928572859598084856066676893227072358466888324065235883368687077978996422267095049397745175508899343482731881736520678546255469489295369312953400858595695066751072712265172864582002197185027153857573665602106647275112005466874011707871026523192735163338593173434951495665614102086546867329021551112678970677861831828795057457573680080909011269844597140255480938208675740300208335616714322420587727432749011107064173169977122665195524683589702785744965948958590018499580159597107252040954126723472899658240274993674630066859188738581936679541176079319023062506927036312419993424127955371619870201474458919289610357929641391375589712102985080653078471901863888481965698826784970568326999107794348113466821473420516368626852208286414195290996554167571444090755868000869231614271524367771475445270798033062894593926050237457020212652392667128809138642459665719399941012377326841643176812838408993597793374092820078209852106576559084746422695996331799348529334698856803205980436658348129871387671327569918853769333741964876758243748827437561101386078787654312202479473465781313786267460615542467883934553762952159160902226258076357353257374475018083235564128428036561874892862729630831412508976566629367763090444034161673715238012346068526780124536436700245155552454785055441043723765572265877555842258047540657711837283382393084309693392143129293433500319465120408919531043820271624680467165300830697962809209300286759787611551922983522477114072713619158073813436340169152386801299727436316516400795651139616029261781711815487436091119530657585527556779411971188629486892283293509104779789339073898711248272090719865921500518802964502528316607045917899740957026442381203662976976043727527264591222748273103553004878632713101980657200621045711939917483326339488600077511867595637756159038617512616694970972826327396165636708935188194816735760185173706373249205693114749260275920243656038383604941556137288429076464368926547902330146053280883862518278298560768055789496728635205082395087452254803348064784057520892242771147854795997862595102857528533239597550332073195422174276354802575761670657007664548321548347338060577437777007105645218399403934821328933223361905566497134383545331214963465262992766084671101529430313309495225733576638775810170393079526168167899849841416369781187596352214866356362428661692984802073236808120315212056513324894915903944018572516978397195284324532611112490012004405301420904632505302068102873109043040516875929976257494083865695508777879947138464809364728064785059782792251112710718274947214309379674869385709691806655770503946750901344149098086895459377926492800785457562284515643802074862132446342815837916086078971885160732438100791425465713449426467274354392479378614958509869876057383055466619698561468955890201557300990030236560325328836035794740161969302530988439115835073768665888194513691765814175871989420912824286653552828844390380113695234289712738926794207438552621569471684220342208051496745021908160444596163059867997144260277957824896933884176342734976844905385643484046563828501648064586333235243083106641101517548655776012014616342048788257835534820787653048991813405761354342101385026709015920152354823434506810458318577711555970164087079843347684354719806478118082433740089390946271664673651106840154930071754179808619092596645400361740641330288289224848786591053880515139212396413613555848422417829414018985371260043160659878172135446772050383898203551724026543551398760569354112237827613147360559317374610560064503086831694455290415923130022030833500994114357857994247286220565234749055125165994419615700537351574642659095025963815924877006781034604947677913115576957353388103930168711050351563842850075543050931466895475726453685227469614097146268154384478831246208522598979229574308556057532350660413681797268950289290951035013318156485711002712335540766601276175785037423088510698521422104915258412998618249859562636578197350937850843639236581642898023346970223537718156590018722536916489924484944172541081409595040413607338613375670985653621025199302424180078849431026678574760217277615005880909688680502521603887063040332244237507288021876403498095873894984495714221581656718526405048162351820017107729000083050076730709985931684717086130593714277687080386990646737975590264294751964159548859646794518368387552413024477481486465667531532672212697967411361013847636818198937937550539281659766449640715795739461503268727734451628166508598797635672046790026410594123138269197195414839316251776256304602913156752146276749431953938785578654962140656964584665933179702935780859098758458217858542000874879982991381505034181935376149695110008747047832884490800139051508849241825387690104272758823446611398592971302043474883043125012165645874201897714675206021828653433001518905077232840446612058190512756414363552849645369730395433377966151707286269133460260492172917511357399776134017261040211872019169880723396860358360261545889398188457438701205977813020793353503395454393951551200836629328415246142176395084404232001128017528505646076536868948484299123466811728093357135630457424918133945399705026288595702018096879843869668393573519362510078313053463815066535402973629716626623915356329180273127927794372689798070698681443106175741970362783424819000894526849175863270574807799904681030752319510940161753526656175203811412435246418356913442317265234600254708811222931797700729180683092046539398023150618574586418086593296022959125489267373755895537505462058187950226192333823405203223875583845627328333588425834509789052272528937437222003479091730949788044534251928015938286829625180239683617167102736849679123152844668416397770808898688145282091919982664954722678006635873485067148273135196472805531832284705166642442176309325423378283532464035792202199771656947135943329821162832473491709657100986254116730738835204934146222087822362255238861061227757561879197518006267475833956412026642978019734051294669761359155731442948987524920332530744533644568896212150427826905343412189702135804377308426523064516891427092983862440287708022965255602491895248117107264279437011562586334311746185501918470056366853354510548967081874838986292635262899175752782574332737042888186529358524203720459098197815012851819570200217238654177309832859725161797242148074527643008594453685811071541294088289959411837860209358710880883267187387650563637128971816113304129089029261144281162467325854589135720525292207497945501360655225953141429172433691159337728557066543574716379828453472506700988430391926449473303507475078667903599941432771756834347448042565393346826231443993136225059528008373285008224370142658793301227780778790454022729368119782753313633597975615554300370438808058654268337686488196524312984872581495004625549315499222233929286462141972097164866549127385740669758423163004554247039966134993072090375628184814507116196012390266929315671942311695552134055984326962064162217955049011326195320434389157089072078509000052506252501565161401244511147755374146525691894489918817208188846876192473855966743821475588496103852283857099449990947853029777129214050738027455598257151454059710095820059533467175131990879663881963178754176849916112428322136216338834197910168643018547957984656365269086803690510973272330951687285927745615582847631601574698832661651891404674883304922356692780661556683734501576233971958540750353665795909313824535692262124144280197119923326793227445003357217681922177547552015790099433258872438715493622656375385856382850433220467845561433571720262230759028502837280495749102741763306866107054453834834251552265758064907951532275028206161114593763434331969445857007981102643202157028797132390580029221511232891960385128544957037813786161369126021561212133677192456625161215676954984918645888309895498054902445008728507674587164204702215953171465933264515410001841747538206703644180777967337197191241632742049312736559776211740716236201498255301998262465684944173009486676890328002931814294661130281262918263377010350119690371738932332241531186800120385036105938468916815473961756555893037271871696540298863890630825490453298369587329681189187031957758759199881277540383871112861765490359778876894825031411539353193029800581872863925444936313279466515288795216390697420706967984810682697207531174276109393451261136647164031169444068303332653613902407988547395773330134986327257260219705082074798341550154380677425708676202779038090516026250711801959004316608149009775585291910589858999250253615119602191785261443675258875177089596032638588454080464501783989801325018156599540972451258089790224404912008024682242026555153506473113124102628332831760563321552871168949024172103347670095377091590153298336554703253188595834308766054564745425150293354866738359160170391366605231425267798377814308580630826687079651991041856980334237582599272010252597905409526628881491461808942639015962305626945921711218452030092792354105111487684970615916478612590232658029731135784379593606206980119303910357947718216837339291725691489432836628581911351217916488548206319686693767760690422424202680318234238339645515227266663573608876822182624385750463672648907504532333339012180129896954716016830289918277077309278096139528434869316284918904860560354255612473785445425937600540523726443029750798763037870031041450471854094735395312937359273679087857942816716056359653883526745448749996669764640891697516512373778388514092090989854424747116889631573469630297132589798536612293801444413462558260962927473370028387412360303662913610474203404506064358417926190395766490939090014516268167601571883353383323393991059755707652081842718701558691359951485419486407429823628791429654807367994237579791007911249901956394435579041334125051500898406003804023654110352034149489032758423870092309605005066033908429613161325927083957711732571833672909752008893926343273658562508419173435718370186824223238063919106205816372838911495027994290030544669323754248656426949137503831455426119524201910086061540246991084526669728918680921900349641047822333798030397147659968899611909756793595046991814430702924394583063051075782902624635068333920147028714720940007408477751767445381046847985850442353549545208242864561697065153495945820975344218625878007156783845746795588738303959627707163951527124880775399656161400705626287957498777623381400350717029567859174271423012649426537401165776313092961942702856433099299109719393296568100272756634447487372958271610959809092864068241469124520191244354974766931827799615922976274066324454642764611240164365218004964075390950221549756461424248825366472306406378175166511960662803191020844108115888080161458348008115322728262359601614769936647557571656216431963315490347238736509745303528095419924711316114179836335059559141132415541796393752338207319004484156034543388603703037952485362500543012025735948497035145809945945430677443849322714213910190890570257271536692556228745023550985023814824272676458842724089422688360319592489062865809313791475071851888256555300292652430630246601900270610724789055160535214029511793850009838552509333829941500428863569207567887480174912784382640010199342281733924488472760115483113785802693247461119290983013955591840627316171119643321104493791209433746116720245269745638866118275419468496914117916618172434362948011084945230498074429437606929859296953007183190633710889778153441841833833303079923897245647584023235269640299987285842474081564955049919159831555099581106727399907605381608222020049944056710962860291581525556528008810778608414087163424142705890632842551089666429285046930276344735330609729467717322049929901216742892868312168898957718842981442539252440945417417855541552207845725132046107409778792377769338807932592750611369678317283142216206899118491565040015749088321168809517018490790014660204479014759774004370261189783086217661830908972520714656950903583976388504208558337628330973209525370623938932971077121885725315402948446680494687684779235844341651890563849764261267961732740474528804209673277510683276370263391525504540256168496969029606514952291333011314519183137550972544399509964018543862951048377900378051278966172860997564664211166254807309101897988904965412951780227443940548203847318251393274633235711334307107071620648041858777270358683049978581799263131888723438848128214198718996563111848513036699416562418243967843042549524888947909296064130163764385706438378012929742503271194039722305692723781793191806323487896338369545516377451441538202342547203580972540326706324438224950776611560737239586030308885842078670140196221230967803077858006780821354108127817352821682994825235621360004072276503688763352801653915154815221246507418007946155907261874175762716094389111828354144661974792539157011224068869874357908266720752857553204558656189392295596826310756944238792129539042713295900413928476731212270429677751250035670742707967773865471364879069506233649781569326571288032546910379810126367859765309887477282843964614741618884060045326313284569666657624607425220642537185256498829511160094039777481636178443152748633293176913701806141089954524432329453476531420197662233461536330456618995253863884627996061269641664743801206982627709463519276516627713013025275456237007096867310908273144363404133605325113620679846002750586638487870769475448870645570190631464890545976891679483969463982259313911691481079014960881856209348764053959768773739128785763168751001220005942590243512605029003703858351012819556321709207729659452568443961322349113655595319210469693865246179550618426751774611310056148191881693177240418198956487069354688155423729858307944625666789895522269806526892654655208237887469313737259298290288308962936441539200308260241152492439915395388023926190824234055778435625685403641915900560011279542243198365906815157423560839506292632175381855980040516981151698275084442208163118598217303765777002099415540399596734456681688326868419468396090893963391190050998539623348899679649587292324607189507316303386870751474314831833728906017915923216402121355837294475431688252842769077245304331048105919204366824047435744403021328928654467835889890820350560756892131370159612528457914282186581396143510254869409936578553603677190627058652606962386908807010254463015008728286934291499040900842887474672444999064778546049081262954684209873540014787288662032416579021034590977218261002892617958080586297809408221493717382161106927364628341607800946031689912473096342740675028190130540769701163509688396435906271239124823281664740017296956895917946137479299337591220241085857647585101954078017495872526682571397720772864565918308778699814319152249868836833900902575552481072943922711684046496270867272301765952395674774747776566916650183558160519363345285489629149533786481573354146716199088532685925418616834365117821310995074048723769985979987946979719887469382257217840254697275126081348789329493193169310451403688609275913412874366691412830955484598264790202470242220627963174939311094218522667505063962445539421844848260997495822414138146462484963128208706546220983168230756578084530092754501639183628944168618097281623058115851170218599431352326320217883452959893296631893989612168312276169759749301651343601753305280322972845437922757788094426678948287339483761713479534023014994096383810049252764544324958303746221188328215059113635866509758493711688166118736817723832478314096094324637399990714249341848214533829235191670483024656941817900861874025859407074793265605010598745195347846321708638217106689365636763765343128198276303536255732312320262520888696911584670175209139938388295555604889149876958634653445278561639386400091554825128828143484732375619517394317568205521275656037335971838314926777871979259038556041046583394213636545530878066858144376318755619672201174701935454284847642407479135384042230202948566207672630791732743960228938822771447173494951299525405368393982024255764757669188168047974583185707805214852599689928141859257939367611060379842278431776829776377667009861816361126623220310846793456731090816127970036264380101403673191112972260231871304998351705903555545785570734977767467175967923244523624124947372279325586375117487464709127266974251805959030892232356979854063230145720376042568468367418853505593271379502748182646340041380537011173478241174785393826058556644610692855879484237287751249690187919554824192740972107173770710355805708308870039681154678358414241682252379876843074025732247724380959005691953196226578577556284106939738530315082894559607860272112087432238581895321553153263606274984275545470467901180157695985066705892526885150756558094547447850428436930652991913601809707226898539073514649777380896666509108640878934303206905827475396366190617586312430553698941359829351198921039778906796859760951571189899230131287588466430083272203004454236874045947552230894592167855967618598219457953333665321952199313896641221624467595679282848418474635635074133444727301489283825553788507719547797984540449422743601144369197021518383394258075172245200278529067971154793954144272519153902693245316662067420638695969017135323659564707192864428223429662976193977855276747701907342249887822463516455054311543599781821830694873425323378474483906304835453745908607193635628376016994776205825179018145064169367626906978920002512253788747790642048410169881333182708268278393266814878423043471135177293254820224391607579664545246896377947500561230982714892703087157304579086433971830433073290734251333597131867650148580766111542067526151700432651285620113247406114812977820496405411770101229705461289490172823983314113922152430355091603485508134503060979101073679958659553215240421264163058209064570776034107091322603366690516011356200035562094968733212179266425099472050746975835878469484726548443368588143421973947431573587509181531695823856011145307058191772318569669000360402660217508043434295643662078241633770022927387233527590600025369320857119345830966973143095836534689024453838308745797192724701459635134584554549605477629670317620348116655265038327428243824151206737856089913439933341286939147817682251463398976585321222399611582846642425023789503558839981363814689895237176786292820234108425634938085863358727053791706724034774443749891956486640038032215768582883792553019967529093768142636132846986271562975173480625554979948393160058338087429747647743068551909566483557011618976903661012024772768040850215328575807720585409622267664515723999434293135132007524653062687219244280507803298950815246196714837542204826065938417679839055110432734566111045389435229638034524179740369179723317423086237418260014330448042018805325036973990703595519587345360191989154532099385465054610366405742603088528674822362693135481411538449705193512055942245033797070306591022179005745466738485373226955842130673089936113946522061737100251425827298783611536485122246779113034506132812695027804257478146770800863958691749830224049907141104296950187951603051218367601212013187440466169058634076219965126640376562721255791574981895779382436474143974308959832005545808050775745749882510177343261511102150018311184011669663476143534638334165975263161325650850018231104720688052428122571024199859847341573616548895641365424624507778751510521656446155514569232378690585331283470898207130324722611455828904797967545959557593911905543024497288582909730975235336094978743463921039500722730954534556977824531057724055647333696164545987703558738217308764747960187275650310771395247546107718462173089285206390469006248062774522546514330797153626924112408755235050471879034136298094958681968106863482674284356677703781431892228274078176659028084418705069908538552640161926384437796807417850791412042617436492354554377772331835280338395796167277145736594654857682334800253276311783515011881697556325082496576244083984554814294335197314605760033972767846855776623478114084385141075149602518597773566010974037825941402651681303052850898282901416708385153762804284197543195417752553491987944420709865230738577733638620823993711838239476755659977334148857763432557345489842716568778427610681427907876593801079699244090267729521692816361682507729249375998971499750161149126627261900316640094884759373582962947912139983460184064282884989826646310130367139883520321146084114555795282312148510818998095395749258331920511137025027981372253403641526222607652046092851844755763752409145464965858184026004402745832505262319237703103546309567242322489021600847259817536135161321852662429172233245580567767450651078350314419274938288279906446555761612050353818149611038738214321403661339645358878819062106369938254969706185828205550812607064934415167058287492343224979845850209699546688805570851159577492095954380707044729063461803860742109422535279546698425238941628596292662839534309794276576225685522796705685703535591597303443463734402459943732904333857731462893171086657300236128098018133132300812572314794949518037315000834856355225372496769254238735582744201959292228853538311236126642460935048591432900190719065281697088590256003315175711013387431616088163760718509961980949825709579184075197413342199478113259147022554777350995868255160525042646074654604961201882304876525577860915850364946896402736251205939032662944538876427480295715970200766868969820277717062334519963205703171013708144326932517539802773942110775252253224166753720052683526888376427691471744388886352391584649288990921718527269715817515072068627013190300234065135735352520445630303429321020320572937458171463453529147426373602314182602692222221027021901573315120275999991828943356255075842898018596870642661706263191838651835844022188525062819791260649882476380415720394952808122267521146336678025898266657682945433112734418710004651478792340844365580154950018438280528377137626582416485730845362240246567176416089027569848699977280806136709003304430920087518732088819607881176423186745469930572700030113102604752573447784544447717177972253633251819782521353813054058269870086032248955243225096507300245849076681043969593747909189562929083775056069804536331918413471085064453250555868766110055614102422200250181313366413957438693518262831621588595377685748171205161574430552149968812076648679516830773652849351713340807295740015983015672015711728443907071990090286251534089852626575707770002621712432770543988718979585231464050818685546433654533106482970228946908138009995863977496739956416839886963779640755656136012969926541559667342117528415288711660118987748523228951749876038865785334331585994443631907850923272866416292535343623078489662152930138399052913885113972370716689442994947692609676568318381577893732347468246486264596053562190463544116387708509037206154138388212862444525271740754996812988905862311045131673599541328939175663295995337534726416041289644712796955336450570171789570895900163068888065072757551696876745569807809687167065854287671420925064127636883668728070062060167473762167753151230868424242510044692577870703426372201191407781895595884703039681926287904535469010466695164057271129501472039052346591582179049829004357887584892114651381953026406569895258052099257194716606459153524412146439351260059473677550815765838688901912497704291655607252648615441501567884394096159001621961277291440213354565438782682332844040301189365794972085104933351974357035854820093730824201702446586957364995907420963941302694822385021839450795414049187044764633902693109283929523400027993299584239339808763112695134282228829825114019990823444782033344334088424145246243281415039885834101137305602102523281676657288157815139479720186789216918976529056498927529140716632079374357571267225093847146740464602165639867503620532377915073153603001615071696627069392128329166836179574819840230840488586816257322882812012217775279075510046093615206059298418348030537122864656002239726973556354854262806768424897234942746860817890897939128217666699922691351283989143737226485332898422519857925463296213007569653111999306121418597661493235793811047160627619297123427810799912996579394148497355806489946759573007205289428410387757231309389747732503054041834482012226137756977654199244187148793827135692901531480925117734928926048799291401234459401403338588250307167263484543050193808750685764352753953137004305165112184691659276906990469528914164572395829605127004101448321213079380749688607677597655481482982435093394939335485295103310301197770042257431025511278011639219906944169627286127414976139630993285922942938134738788708062144988655751450213518864538285749558129560840849914503418393538477380318138901620952023523452923146045145698086157216932575878407695331766729615585508484176280445622254388574417614461255458469758267985349740845666167414838015763041636339559252700438005956521505254080527186296182217316834279512028867292109048546274716077069074107299561202546930194813741061837041866122885943597331330991783303772728872303607329999061396531935207753571943583726303689415450230771916941831514106876401018668668597172965243977915751559478148909789426624001725282068572727800320398219872908207953419478696235394239920982364172831309637920554307890270941582692652340766366242285258666421945015364217087693179781534664311751360829738205800102770571647240481080310849873537098868581445565293294969245166753800229766373507582298802350856582169711683154623814806982972900268192067977526211979635782805720320716215060475776061798166902210781290547348139495755627352158127185904931780812387863543311462424668633957465525394491555671177383472049147231907799475190972666319247144041635224973490079948658486602879090759777980537156555174256780920848729962042381769606067027884876150752669133245382222379713670922213353677190221850620051909783077036077713069996146597097206463235899716470220816611668305509160853208004850406350950351253005405864059541866973484324311917977691018030380539417983006919523066553721541530471908031457820800216036618459641256011165179555797160329058845841626968220809928531349743462729643427270091363168338296983087891700100976711141992622260817109728971107971708274450171652892396563567091856433822444587749412239795301498424499772950424511871228665492870881867404823782402883639097453788361890699259577479658484604791672733350750278841921739028773340991474397659725062546902596569730356042383526220072905133357391019453224416765954756551995072518523762565156066449712932624136892155094470132557296687735689707648296408411306285491145939075634606879356836196971724152115219463565677046249875706462221696824403463065784250756194865462704616984079615572081523087827156884809982359212514113292223921257212139587250099473769172014901045601332902461804638501943629380399669444459007010932885082428989702153978293010273496463260119529628219046026486962296990325221952308358871693306478914299554068107984863916398313630595001624518900456868561408182294736656864518327203531610124109630763949601814173011266783739958103465020214115090431330760305998209123688959953600335050059299622235382470120641639774053061267316931986056248987641330308136975574676628158747771937322089833929268616570478849001850725346867508355614539410529828984410103190524019802924820876247190275665779356957959665896823281025906405509645442252905986680461845703667274142058271787516852633625344713945658671387976288000742027820100030287649943569858982612080126134137828368036644831113163347192875128502520530020473533152858671533819601094074979963604500026724830905686768685741772625182680313590841365006283497106166353706983041485238851474695250834139235815355797063173515502106189755462664353690589353660663472708321827971339052358976091415512425617163803438994993226626885840102676336763962474596318043030601786833499524836960340798919436351190122610935744861616309953897335205528730768136702178987587828453354082152647404855837133152035153552931073512342165369821258301784094939811370285993883811643962857568253083093595727672717971920759156812767557550295037406722426433836197300939784194458761542491052937916301047918076025742809289822176996191324451846545772352856911268387784062236018195754670923771344145065769015425478545501259623601441348216252744891004956605894663378303668281321536806102817860065780140223701214444638204819595720401135599610042794895851624091938307779428596964188068850286126335043128624162179796896246252937334148299948552277607883568641261670697755888947037525013071995677358345758470216899821517113886591216170439596821503046791341156108145183087143531413094520318333055906237125163190111437441112353438496142347244593843446890433169840105543216664470031631144702161225664582850373207184665875788515996384085444038952086012715169033156219967037902088223170294934167074914158157775068201981071547863878882593308715393240096361747808519055619885422282842920032591548057491531658026046821354330604008819336618041960190997492367676947355780507617857527094071364453614182562001032921201939399203545413939504664319540482864452485906315772662618644295857526180817716161884793788600134846325114310762569605121655559743148091395230014205166122847600140964033327923528772858339198166494308817139271035146182305377039844808622595879941009066701575856536950337976455900067987683030810641431435890617323328634850698225274909395763073193849920995841676991420623529883684566576428686814868259537729329045504876002770821709618796108964676198144156080920834554057196864256056454408041125935788411525883339641589781021397420197099199298244649119475252695621231087961537897793933136252817874039936830331088342955562123327496758488738012639585101045465495052904472864988027393177273133593009846059947469336612498641963512402442603744561618423793878334218488822967038802086786696512685359525370231608731078548128816520145920208885915895255400367441835385518062270427876719312691521343776384291156563490815890242716151311256079212856000103609402872140840506956097456261375103676855643786455106829420731050656415454447069203438950822376460082899561892110902809883339034589898373289593312906995179759099440901490441799210433517789507249162997772147090629601428350635700241481537842185495016239766903622730986323226879828562841029271237491567028722456715608550715857353167449976885645869915977400793259980015289270503326499533460700194370751695203108617128186309630998829058246986701952372640950372912608384968327706823578848059639962568871613280184488849769468632097613342838421526866739499726969011019809557067280308878187303230906418918877034758955812742794960424926520443113460101469047270740166044407368144948603158870673175632878553110361915424952518037497364934933651224336647537183302663606047070687335465330231129771815166615645458389648458200547686202448803753440149230744599185827100338070006727393999296348096179754516132349169451421440570372450165429825110444584572053765008324468506623614705586588021964635033124962229864694162720263350599793048881743270177805663584909591398726849135439580282619575393219712249725108213365315451555439759934376279873754198780641277930286386905499910505940031813072682456287458069796905556507553941196161186717488324184081544347894128558834810996601698145103256174005687752871234953559658777175456891356063325681572470660079848581271531309097706165754878802353860447280203444912073345928196374278670472053865594015052185191010603342466832935801449313840583411829928851559923559376138555000124276198095701301708562111630959646121785063242142950035692459321955954383652079607105481844314494369470785618961861002920460827037788604228167700717683016614061283171258165197642094846522058468834346021691861138985951529041044900073993347254713958695586036422896381706799278291373419156873817937983868551748832408413884390292541796233014260464076873423785940436879681489451136981632070857434988012305959193976272102982683903231453249560194856662809813094932122526025843165639026333737876184793452506671935234455950194291782223308159011154965675536596950622632424805588162841591734024495132330811670897954045780061134969875001593421729779663381040741767590294576636884119947841899834063901147276937618700080814196071724032419995363780926040231670141151748422437953637832119926702059227774356892389657237142757606712818794571006457545907422594990293515647339576069496634893880911574967229462056905003036177763575603704871892842262049108278133290836244801955659062415330538538143445503507702726371360544613170027751949743192073815562631121933978489533489858986033370333176458500256183216245185354046842561599901540095628852003696952358808996384194694056611924101052497825615647102407251541681869611269840054623680514646100537405818562038079804784052797523141222609828033467468309880879897480043742463217801900752399531213094848498652107762755871258084453810361282429224438660752015198878205527832361614954771427625222874206906072213462393819661020499744223783269845977744588767730519009145448647664825013246292063145223857864262960121200199697008122524830425461119571859505751830581007209058167652201839918875872279202203509082958399431186540755809081517976123751451502738859040498813330519540058197253018698540902171682240298672331819115475709986445595997183802966814422058659475903200543664856664809598188503824970927509048925344185240152213855166163421206322058541850725930554312355830264946772113556897181417263617636263933862115590205944813642502890473156083662164028845054795693145173330035850122529306602641592559046307635559601816522081907178868681510127091551519101583007394003806836362163476659715174810652224788978986717771836458041691551880400523317912014226210399468863018549160095534638378058197192236256933512541057972167633038232084090272506017395765786314323990195587815063521877503622931179457883604145134732159776090021722054867267156484941788723467878831813025799022032681118176629265969795381872259356267005562287166725770925552783642011133981001073801964793782141659423466733736164570457550558162712079950272418946419206332788969837554225422844242884134272946196008338283800676619458928444356470184754726184577738972141673058203976134455239681994700289819818889691927225570044990750780635890210554313824233915333967821110036304102987300466695012588481715031162971069233822795856936173708567780136624608760486296896826653068442501187930008781348505160886837038025641360638056270007378326438876897718185070614544373585788051472428603764105800449348048333812637143906244910189000214584270654893390887073529370004673211252825741132233593911019029456203522529266304645630449678603068929597213280073520378358808237130869927278916951782104628841231065770169140333090980985387500355989356046113574124717069847957220040591364090118050607113121717099265546343101993210130603353498927549416727909711525610745581311469139481971953041297912681917442596958083306644585526629789962664421235476724024755082596582437920396997117574152037128773047717493885714340023297042315695848543362771740914654153249675766075252030190231133969518134149534769967313001858187226538100578594659305669639140676175844973665889412151630434352447692027089085382671007334477727348116068124536597247443279075908068528230724028359996102931823635351123115800631183414607916581068703568347376431179133398924201251458336965453988534730570623543196654142311222080670402181849886824656199799128047603024159719865493730106157893880055897313738407461695938648649048217348691893804679364076640584428389657628346923588052985251734568371831083926417529599113069902108976610323580052286222981023289156304196846518890987887554831072491065381447315132188607109867579870075153021458000632622264566799286572973094457762402607128870735479430255821492776804139940033723097480831339134826804006231032009638756203312594951008701185322294672843484449590501047063489135588466370997379731643692586725756324879593251861480635923554836348881142155254630623877626864413503139430869498551473533735738110356945436576414739446334123186973202072162119365516084943947471727276314304405311961366615460742118785371626155832805993062996239991111065713733782186591090335935531443958373692014920498955418219913612926883395939137516816829118531974481716674078919063079475107543898025706083391310305639790782429227184155991783428545741689583574585875244927581280822057950203483004215170527797382132361731162113771565880609940985729491336029663912882012451037620477564091491581356467092731620882411622219150891503132861218451827347984034050739433264173460333275208022389379887677949754565208565549741905219356531124879218760539167327909559041836418327362465944225796798121074894172281671184886045781802204156817222659899993796892630902537729052357258957954311827086921416136496764987762030856890502603330366798344521124077374536654698979817720015521507030253754146765479756429699774678003473784043095708781709822596864597749191224671077243479698855829310764540624483474337805819241597029182765327166245514607790142993320728947001944612722078174172750356643288747535881171345099125735731543393443241671085550709020064782889883220185395821131765758194270723414551535872553799345876951699173413815083762369716219554041002924954126462416207046313950366293881875261542256567878930627591770567872769611170490549951374119821962150585372193434632494712972463335643143994639788022225773437861837000855768758497364879578852713561122977419287153286672090551361408025129756801557243646118332465647168319507274901650550227737368199707144426760524075013134629057457733582436910433143596364606257003269862562008273396528196427834003504392617094777839027868641062398624979649696715389132839968929121348510626516876820282115055444495019822736671789004468384855916148140647319562126611249556401675367459513259845880813989630347121682401803774417682905803045313483884077822653229409448758192092903640243420469116430544564470115090916898718678893139594124846966895139509263417190049209187994977042051903282676500336567131822861959389371037770557721501701242618554613035817882154368892408777992647919828105408538326617572967032823746301002336028730878799478045954887182967298137872100660040330545779244784055833922001023678515890792206778794274730976891266822798950214771228552938384589695528238208944703029105510451640881758496602153654635592755358532505849246313460247572002281027941803645091072469413131649171496841970726740782352448653533336371797724824535021004367598401331783325792406321833959677391256634347640218148643247976368175446713407445433223231805655401972322559262124980104663273088008742336201763189607781170462484338414525756225887597383455883055758702780029360207770962445678111685238096309890592138114549168943054989627135469132712830053969180860422275397337389310599773283522235124498203026642214738455330613499751276089467100843732335929150359455400407453361702060959483188939610191932175498659346235063805109462723512501245536535944872444926623085469511700086378674279167532894538381651407821988151081742514874160627085683484285520716335011573507615300164904257636345686816357645555281492339310398719120559560993353221923419666554955832908385709217802880388399553927314509734732588438346381036407615697286075341206115148049503985702222949629092056085842306690505102603588566611168785876625293310658465750408087609165674641125516317056929310444542234483593429861188436892327904714079630190778488057838720862563013620960926943577364127847979291867361015508220487583493216507369846840942913106434609130178874108524318675015824726518804174744114644797536019670445567287721000780468420214630583038704600354309028196058317678360549479648050579135924475494336943917396222127031772301318712510554464188536502884495394535190524166506271330666026581602892272997831807799493073401234879812615217875708512703826210449335210113796229222593418962990921111788827345909938311184483211858118897450377931449921862649871969234873869533199200283225237581853667378257514499779476108050204628975272694573007501663287189812146909975714158179680358340924908873319713778314674243702550553646175216722830219643634177108589196630669690530212168630446161643272464941122017637905917966399623073186207028648433864631593800375544442642241754162682867676273370908403557708602206433950011272744679402630451840673489901351956211629090040784925065966991292761158267985332475416573700826744111938264771464518819039252018023006074223928485970567115709503490237006167431779040472167215703901991051279683090042076108572708838585295186340850653083380174214093178936500101984863482788637606514246641247055069435138884313375427038080455931624128359092958441342846679292131239575074127957011227467414795338107022119301679651352985905937261648372621899527002020806357499721295730119474801269991258618780374263586992686533652526880924493724020064525710495164902063371484180687527144770082712521948623493971980786590270514995517745883697122228523961800228370712042734983045550285597361130035876013873093594033964621238633788795697443125077479458403343511544699093187068543363321541128147021017190515808515652346936058253925954458398925661723840998835049367706935620249922679351039468815483849594819422540250191278638992114927867273860598186662625588602006470226412170706743589023121999507712086534374343044969525474897789642953245629994347978813423012337603384228828135557202293011890695293515773245929580083711681648433033976451455560586605490815231376908340763088747201028479566198720235143674569013580842033867906526590750094489299657027313195386089397524654807838078049510523931048091127180142950205606233138979994678130778645723586331255728849628399580008168204656751229803995030488432416655909454933327994295735640884020788837416296665884358530830152222088260799803328304349517776648188931974091214583569970012145607136014800542047237536934236139600246806612244842030366963671703968373890999590733673221459263793506846968719019642787831884464714329430151235809847522140759310298229944530938467446626331515596533347080932842648057897324778094989025017965399259931943474296354946143004946564068071892797726529209966965203372468063137302201315374801763261970704815543336759033161872190383607941358609371369562024709597204743524772014269161109708521795416770749317682772426018207913639351105387751037169677140108674225690868667777131828202891668442801415049722191938216259980212588811732634587694063851055509867783293063793354584038129938126382989346010507704096418357353017398460122710615904319207550673156922386845135701545594424319665975039399509952306837077658478020117167513982914814252769167644319595200857144302372138938848829657239383438878925009887642884868659125304812582824353612519308258229111336227733091593148159064197389751645834852961440991538526846165165557099036033550805601843323331254113455341492520124297261909406805523203880307401816238969467425810184478872009930539965088167313414348426078165388382756250984181743509283914411927952219875956010481905224358983546906614932772050794583123969208739355417009719516387782087359847962485656884103473155374759508292398066437240333704018818460069089728375583303003193145919438667991328198611361185272117290968343607927715528420983132411275239940523485443419067395367925819792098186246995084001845873350252418718965340360993939281978146550291753834605578760275544348315308743255540305955223524561199055968424329639863070981321166395373921032620534049794068825821251736807731269534664655148235899588153077059410294872082371598944248524343579338671375108463463638821162770618825694110045157816538870738116856445416145346823860649526287795106698967336477930764526528533068803698857590842532407689994982884033710875741735773962071312171931793626343221597525269056752464595744617286413139920310511643141750541015634241060049112663847311834108010417500972631765030296312063262958099735851442557826548922084103845012118670742649343407393930733123862950234070058176278725463149775002694217040788012853652872081125761690566483082356278515546247036361938599601553185345447397928047517985575192143844963539763694168000595095495758056596558844938349782559016908357987246611631420815242064846138575253574931676055037454538963575421378401877116782855849563616185125775758994655603307683463100644478409342411600122042354052868728376700860774220660858965577329739146814851647139807336042804962696630327026266352980621159144639117519709190226375155039455740669338375509264413487948273594640587079847962043737984492608888055391635853438772682030920045878596569852277992522893082078296029891327400887389920432895544531206344260166559213797256168127222577518405292530007847737483804562083229325870892872860687791351547514134071621846258744133300302502623062830129150093191514806961805162447644929678225320226903654086889069780434914833431334816717837364016999126855675797950992132761052086089124202536796963081142044905326937377176207061435912044953681106696913482341156514116773592157564980686249332573782013801156642534854928857004935789897870759695247104289352938944254420107897194429021361017124357076769727952914480594658747741802996207170465450831800534338917704718305733854289822862976362661950345123894313890752569075944542815049707974583119737807258711189179327678980933352065711394207144585487468615105067801047585426641923867114710171692108930038319978213265816544582024415015255397390454387470790144306670796735024551027403514571220152560418809739647405689130921484904151691750399106918957444390063000899139577437681991123217883871534024178596032633668494950655313343167951789503642427991218917860712773634636906545652089023061778736008940127135365270996023155359510407144291113663214052940908098412477886456145587261646965449060409922785497410252897773661249107513513952700332606910080131911851200516763519676741029810969813225788779666741004522160432340322118118330832376091088802880666652926417383749007072371889900049757688673990711462721885274815680159379417725239359720006140068522722311727045143341663573134802862065172854565721187522256611283239742921957988452097484074748688912308854388381072435037861707044378261229663964756495661321933668125955896830366818248460201690299245008672944581428239680004017273009404214331573156416025309927985051191930322728644221347694783649963157441156172595774773959019914904521983457334983053420469305243851368261890549125060155099891893424356888754758478618369463423046060089708657313909847776504424903766889870399230996869762060930326015057150590640413627058495731662099663627267288865910858833904643382651345871421695973593167191925995555041697175662228136868661847059984562083865243775354169175583040609059576539432790413944640926329333193118483093891245574052249323340633568701257984289596334135001827317838184260188802064383550120264302847344323215631620838440296237594026804257768135450548097459537995326912691021457301033136078339254332045238832517479736332431481834795996910507100689823314784512333114890297157119783948367859443266126736583020826139642310494795099214499540163458417165563127410441011508025128746409034723356475711039411215873591257362931888750869182347098784089046312194174308888835612064259482108719125542861871879224122952181026466073423373397967773880474254677059552359739325703686856904365558090212528754176845866965539306014947519147232554390029652087464833607838763737707469983920958065478536105073383813234865769379249669980242072921984104581680166804868295731797682803815462660259028243400379911411831461859147935814215423963438033413727274330460170177359797094143963376759943175916619138673794427096788780869979915284506153213777853472970103846705395532112259352638605245752953035092935399821580586432444969481760919391348983929397304336298579805827414130725234840027842579298433429746283462815658362489765414777906679972717212108142454009741703322428374694698422520198935083489992241803609927721335450830103010131353926788877361840086925246105786994709200145321300770198571316713053600088194148368612282169692317096503343034674788163673444922055636484339301755174993676426227480065284193196996471756273129223977333047391293079681379589859128084939774595029864348658988587581885194666880530826219599042000849381108506138318077384446822349526648415616580944589000973102958016392776036927283657917993681974645928564065829445224607170816636601760728920325933141104239889119730435860030605165228519618323214792367336961716792311747993983253969510629443412776701618739678562342030443652514778286277246484023874734313737119925518688952348585648904048007412744418555239605603804540323222461837819166294289575827662584828124216773577602437315087741098674481520676115518405996042827736043746097471147063337670625714005646744830378419631899817923058464185797883046325161817608716680269480914373610338772242349951622081047121218288642858578225364976003583342322031890598690487563422360435439060642308642592253335668622679944780309876438021148339544459917124353432616636222415801525210608886801352286625850293072789399137518056468260853164410076015254838165417713152382131441152946276884360583321228196800920438040188920490077923791922732401161381632284178785892852445719621582439538293013673478694614307372859881801015333880681349351970284261941125782733295906080768409655448976970990892190975629262680301484667417941597914116008521700340259015400581574314684142814743546460256155633805216143410421710366615168548268100513319862149920838075643842775347912416276427293036394676228359102791988217950450200124966530107700916753735147370243607719316950919952517863718581683426411307793350053603923653573312405117276775707566986227151488488320542796473005293369584537803357754296564327171550662372640686740395286815926701236525067667549548790563782688582809889530812967617039741544872251344000393502364578272965542738106402590628649746098446572036294485762601100002279949952468537523997752256716118600006643501559180932196455830374080351813159583053352616353813094649393171519320249777234720078335601583049395097964229935032267349200535297927964600107030021660425381473052842227687984383140080508707176294760214850758796483890244435885640891705692724325795366895884545847801969162541359437054880929125562989613813201368623802651613095205511955141746189590707767754800286906092689903690237863443949824779493115230673090465646968005395863642862004798270617592068424179502510585873352208561399218567357981854574556525403545771022320946571393843901390342927768134557390152734261611432163971708372456590122562355952797313811221659141546745798157550349957313415888732433179146952048152363137363799734772362134541537571159853338750128374444701156528623929367545524315479848890204284713389175202226606848647851806153988820096351785177827562525537170688844256414095241076203185960763282516602763057093101677267077045996203645690524614253704001727251340744301489085004139628669344398416414298879595716878639717055575620828880811335227832709497803755633880071036752247669943151751313868801732426070558968659228829923478610139052830593526007326567190126929115152529388025992014047743174494669306763063603121374687499929474214114852646221828540796556645848137803518647011532013711838580222295226770650571567220611991987585271219812760390546271632071895046732620142734200301975142893281248416705708602789571661834672532782797677655950673902961535937632309639252034798051866672904266976430000960494665609175120322950964823110620911917365404534470645116579206727765908439772004383262165849976297987803641321188766511553865260101466563173228188190432410946749992306569803643677742720995510693950402761541999409859332450795455144973347840549332899953198543359606889473298566421499687791617993839630576906092900705973346301885874763519860741827077579337519463719706677771114510811099204514509964859153246964308275444211449070544853830228281078488822467198170513152637819588175371916021327403509006537449110333757924395929462732102452506403284127872746944126004820144364454060616717604913270684265311200251850054244348845583973899259150678024139807786058748177980458739316982503532536450069012823745925351110635663728375929143740290874574082124966539050941790928672052068060962535060138390960593902009384857210146977758883762834656452846064915100716089122845173033427881486594439133475073036978692793503522246583926366959394184684160384141018004192859082543642459633594860635771628597399135921430250272632647236078748084588616567819901664414614027844428269781810982164064895250885171545270155135466468209200839715491570046733567708708624265089377437275931541978604862965109938621595796474676035587171443991314752773774269917690486629239303212585177344065447517476123396225793596416790265611150567857228581348387400640009370156445567482232115804569105435736799719667558488727917407597439132876635646413370052340555211875737803652571118718556117576266655465641054549860211073175622996713538444498057889057881281887384944364067687646749994169822928699272450363336427838386945310824653718789307779011183756797987237220812681268571308075336891797556566210694586621749411665942099837704293259573149391124951740496295806721320773405743024154950550593785417760625630418747494132448900820568174736870016899642777564765923368865790671632425133033121920883648360042941247205014547255887325019387850353781828129505602290660545051833821998023914874661328530644397480329115251035164280672592690321368230021313169722465023232052684364001742191515732486192129905742255626317663265875596510678767107154345084590524234993294941633972856398826560112737329758365094495133835216146113178541924397011711113371713482421514816686454976505528151796972527486949826860611841343503753645824381481682218088586869400284147970341192263533920497438069718708048574780439998558495380037457370812430384499533186116807569311831918975590990513241474421693668828954579676752785085511335880783226368656109454604817162892990807507485926544656217221172009664205820803965549617014351340228349131559116394932280758027778783602279909684533351400221338306475820406819279541061334766458614953639693715443803150712565934916295152782238334687254772156019314616407302242346304416382988053169796191028212350988115946073117013050797574249692416401912977693916283991743802855366076487885585810631285348591432572681903076913097447703296329791192829077563781074642674052817647924805132279054194004971885331745373069559780621724862680287530751280644475486269345079758310153981408241669451763641860770399072113809633629891517747549861921297104284405698885876103711470742585878603502999955391615920873922629329444857252184685289263105175265458857582209636868602110613019213600819405424153002834854637432928290957426914312358041496395409727827444934696599329181385506439523692916681072778799448548751868222272815397162408833642714393871533239021905360263939247082435769085446701932683190097765655280042172444557161644270656415519283988771681829098894452787392874135321165356543750161261046320112540766386854448843522610621980858630384387794135728360444936064299175748151385590207847821728951842323029740794727950148884709032440280339912063255077422118032076465614802668645999172763846815550341533931490571873505345338738814607476591238874866857987353464539635941568433375228298312862827864979141803334995440462147405523435442880962229760298694280762176117039735000115473921564860442517887217306026784389621313076761908536063205506139208444943049749160532120958654383404441453953227863583232918549544547386361086350139158482063574868906767990947926400798296560795096258203115619508585284109644558972752935823994091741879803398028587234895358482587739433045100866696468496932387817647507610679455641409712270055197975819811323077739655275037836540038495751988994396518069365051323185120986770015762732701468269949931744180647311527935500107226752490834266639030785671646872710525379704783115006967390020917385711881701658536057246352713678775367871374920098179542244246632086027004698220419986978021817775911396109373910335267772440227140612888537164818199456192356600056931732015469929207234759913985588358176001206449479813109698236249028653572354913219978150363368443648787604227296959170963660981933079387428361973818634111865511815719339399964958094443315965163797773170981032144851371291471351868074047412988194110829796498463127570436913974194795693894941419007707858408242536577771736561379493589344940646005155471993350597687113390161944555834846901641500865951282783527359454232102387651805838567324498113928758260066452758781229534458423796504899737778355943117712682117595072051099216095363522018017525230559675800447061269783092423566020181283428706040130553372005972931801602995484165805834862257151650087122090119711412265132165120537188183893427542263732719420666933982634149557942925674819173049653978185033448437281356621215591613166618868746655333908164645408015463897643545501965900654785205109207410924712428492579833604265841959352493695937562938456417681673311581039326436634441205077672921132585015804548517850875512092025257618557230970796171034655806491998293989869193638268755635205199842993345275176115726042990229720496291334235080004650646003750194180772515664472314463118759744784426096756373843637760601926605014769761425051697659811679151119522155180260471510373676504439279331998528037021858751051810083712292974262642400631312674329081058880465536967842220584311533784778379621138821258477263118717379308277419768552623223059373608566314764687879974143942029399864074555522724773428592484465784508905959102994787102980045756900042714994578150035243225799270626047605665904219910329739962376617708179851310129856741728672279835505636892778210551486904844888770385611965479293935451773265095151299685470043348727626113239871287019541255720803896070094454012845711589466931877872184164159540129873776324535971523277928465288767265563947798009547937033719362474314213961830512955470560737337497878744091289177070354944900111381481366290031447479706839129228524740353496739581179957132430692722774179685363462208024229113507659004163989089942465473831885270336847061040060298875952995832154704614727016097636610291968556134267161229737079880384257573544460102938466399446423520395037711739047101206043869878919592829473825473859822283319146436331354860412965701895239478647020986839229347059280949452574193603119043240727703820061059288064068030130123233272763182080033870332738773464534861273099572665302283851877983860505526199617003334776331573058633048134550618738213230084179501938593939778636412183724064515229238219963763088957720257297852091448394626871489928321008171253631360580171062692558005191635619465076015687821959087771890442544620279100405289578090942938218331825613043354821963024444912139564176062086493976333629827272388696721879977500531414629032508117161023583365785428461373301778099396428790164530269332607845050722814512973837925390020776296827598605861380985852077477805787300366767022644039996948104261833396685843611734413278942162466016390339052791105985867243037812355339966577558739856320334744216461951563926744447628305987763844547219361645655160460913024021985161046487216416522716371330432889171420425627230669335904257737438726929890063580408414731939744451458286406150348733944634334061176836070851881809884413912879706807324301554656130861384277075520748871394532215004437108123084370924598500957271295876333359346185273378636919748315164586214807387293197700169897845963560145169223993685638099937133363519274271452120862598099014625163432579025340942784934597021581624789919030511651156540217438549073504369702951845422387719027290729782263054192691942992488448326003178842983277436995704812553967827261925585680599612747512423766211903022470793667580460141632586159230401677866504193736404671843038131815367529979517827102650046304285573170054738029937836218176149399592902467900791560276803150823904841450007954012135147160719547405137825995916045178355928815002320375208620665928794173201911753111755136989068834134060021977377459818943364756071778769480249589009383857137471384978449418862593977221274107180776358024887195002089444934745685980503813260888872002766043123702554480910777990250728404838124936385906663781433734052187693094207427354783882972135061083307260303979615267825468020548727534947194030088944187921501591841837040067453172154297991240331838552542958228113572601376315779568320268906091799322293865429814315240210916951328920924141500901113150012158741941927981571898324413203456480583349993245389805263838825038781466376069196417825706452706576193580486700145256224353140487466336446548200145655927612798254785771809577098216208604179838499965435383790153265337341798742985572141881997294026403702705273452435927751360026105045960305122753457675125883602006692428614822075420230156270305682868884585117148229633258740732445919139195632859256028693911829294480973318494058532965140618907445088241672172352782363385257156731147052603261553045429682993049278356280915448722488801982032480561695733512459952883294647239652953432401710661471375844073708963341291277457998578206890722465648424029131353860849245337321981024962093481098829501538483101763122798477112247997544273290549990300283519017369998225374564555817976610062293079086071608419765087463470601763323742785696710620366353615291170623449937768597158569002639153447604675411936755321294505372144446649795194371793323036541232503806085778077243506158165541990569918325114375456384717730868243496192741370149198851368424566991535873869689103419540329376362274435822418063198743173153136789097987456566868226041791099528401107043615343741889801102074124395889791955640797924877090943449071092790064533089530508086550421262754927651576525164830049274165349456667590400074229094984087300822653467730205370228962331272214350188855251466343048825670685727423289279828726985966890220968464662450114753870290765086547618362062968180678148022857011572223430014702571162059992207741128082469670762075453978668483290788696760071457118522723804811685434280310595174503993769193893124811819581122760745808130188139755352965579128413036960004989662890158995018030251090419424759479460108710259330798289869685405959296694160584213738282686089071723067996592971953655644684334076650489144590424807275308456604556203962615062004752063302112238507549672947764576022608082604622843726927308668753870840298025160101042429252236859235935865915341777774364041702548393131023339185288867681911458563124792912216004340673037383636993349267715822583430975585289787497228792186941074528499538803563085394373837962664595824747593982092038367263733452052497817326841740397308852024537129862820113488367767686786579796259593760247044619385032631267463242943652690178952146645897169864640663491587944861952845268063251055950649216817557177891310007130303549759410401305668892543738861149305581490114777746925516586320610700107916555384657357043389972784640888505855587772916399221314316072688613220116009377492988775256688149328682370641511126739841699348267887591975203314454503162861318860109104770489152808253188773846748267197288988596446576543584673921238849466953388771194353126811604849440581458862519326996131393316033233137326567595172254547170582315361384748221668684317387479017084204017623097313097618709671955995100171069379920310793027963006421470477516452758777844499803035018490265134465985082027444113615252380475986584754894254151814173236187376061870030356907658904473363557874539887254582494302246668740604858436052020156323405726306830233705074720621609632996895052531840857018301924536836058385147510173029667062409327750982371771326976650702926442401374599372376931000811146247522312385558759727291115743488679324273593062778858311564297467373870326122656844175785257928065779179310861926653817241049607919770929960674160433900458064279950975098746074298958779729621833120767670824132164675029200858215554647657792950907246198528560825680507828240590603859691820666705797343007308213472466044485438563068065812889331763912090641830030390579462979247170159405647488469184757625011196029333549626329316396821535405659936522991088899535406579053887105212738504614537071088096006567494640489213820247467338880960965008965817904860753270501342686610861623120017212646652483551601135516686712274932546222344901948591821110967487354293184132058564596836018863277880781537139388342579051173330522134055037358118349042057845377030912492405477585338618835043138440383778522269868701251723974474607802939935410348482153095395642082025971769067877932754691753128218344036405749243378436217712600452040293085591611540135744878291385657158624944216087422969956242992850776985219341228812879445444308404763570256808604378007938736950848956824232684885023727772786708250378920697198368396836711722255867195444130656441144033717268080322329374085271561323940834868195591793540146518946837207980164729394054054860636871217071457146493172727403939851207157061008216183450159915675529345457294569767871403017638907799230132884458162360696601348200167648059214375513806117636124375495389110488235546350715392630228519120016881627883298504860620849320378908424094590258417578530980881889929348126552915835385930824052219716136445174708570768590379736185185768611055913849204144103539223872088648711611423723648471627109376445379258387692771978096918377760157925553915409219915194891488055714374454350677196670886794383373466283577447828571100765799038181015821608577411926181533254021364954803144427075344759202596479813619406435433988692864089506460110571913428384429971791408230862794749603939923408313039831760849730530162193881088179030514766462873239304467046320512510801445985371022489915068418439859636481516368560816303092463989819164805418657755462941898487926508671001281730061926245069371401029832825041515885681368159789560121083916757367093470197617671027668154151341130073700527327674306140467939968341487190905971265391039851801236776736348889015556380861955250539162101444658808961359469263079361721354714215900448502448050822931375936819904586220693160374088875926607012117664270356696131472588840023044471843420381345240920956491591012361024976816380964563417954323556558194562596600260681870280691842541617433868994804842623078042778243443310200112448648170257501296299726524371251507051482550302406774336927836142582451329323738091191217915411758920653229007518818819061496449032964720425426975653884939395153567002656246113804060611968402732441703896281132388156556339849749985495856545454978431586145119043683798864945322555343969587292329210479052398776041043493672187983495217187432719357326029090099608925500204445355327205670439088604300294365639343439810095325399233520595014083286269861624337783021654961920139493404979574319174434814756953092116787686053220560446113633628494038534458280482592538500103912395736830522220065756375596349685827744413326420051324450665687684435591711157846573438745474167604047758278687326154698084101120645181254702801009626054205363333907858958694070187515466919103325844498452187086672976179623392979994637201711393373638247613685135305222332884209992738083805661211481368953071785565914436170524623450531992726580590820268477232340034428855842065644305439375243934297632754068333116527676250284821450464870868696223411199642168529921762770270285113217148411880440503717142549316333240126843994883104977462763146600446740773777733923939246440228593364169919015152125267019448735007834743434437144136693002441131985475577977931040468100024888155001507232128138708294793379558372856003103464359873225911180436935013610660586167790604341210513758478456726889175447726795758925770140709427921117078634082863700457546579191646300828763194484549128782391765142602573501763766455296522535968967326149868696067696637557448363811132300345552021754202634041718519079200775635676627497935430537975727708492509661571052140003432665831718480272134864310553725906743792195934020187579837846791936054947725251643261942671913009448808876420239086154767921965891671892759802974389737157491318114273777831221664546579170541527568321486633000894281434008612753536059484965297220440123981076829941593611417718649708431475169774865042129766300278749078324000764833653594980185950478472844861037473545981021921749440179714605383914985799565469343306881660990156163800859663479748066823266437061065129074477063256224204967812660456084317193171023710291689527312330411333091662209098455835039525066639857501026560345161256939756000711575972963261321651263955981606044708836081512982333277824367067814613218409030473163350469549149595620989479187022280662988684290444340327938816316605681050737252420362615696202866140192057950822202586327837376935670825193579917666346118408103816033607688979411650940171895039878443828335582864328555302917253945512454871540441456537269199618954944381453669509023596412593445088794447607210639111763496879628387558644053785639203712321929701097652079413329880374029962672391933642237486288539328082547465423227196385043487765972150191880262321559297908059818035796048643269743777467815323729887196130911908489505765990357830192346518786245923735781758042072035742778887801844941520413538832619456636710640480519137783128278486072219379217387153477998521522653086536532351041670331638301682648384764799259676538066306482331530452568481175135666946997524433494394791087367617608633099560129745161852261562842312750208429122934597373460398607038507800788282515838005318911987905555086123793953075937088911448895671758529408044127252664147805313517592464665025662941179891626603962215957551673699681111832850361959928038819347549095549032627568955609493737434838351204395105585945256175623419922801333410270986516259089330243199062180033411642796004698272223107331705279678367715393378053965296270249884016472893755172207449126729763925494465922109942057653795266978628563654032868691866283520828880321709425115433870247842095817039785964689122968270090266295873029973414941185880434816565585492458190217842611933268355915626469770548110473711469057180240703420969847529016112710872681389632994068168912325305348617789452202024461775985786006476121889940210216392344711155326593746729982276962436498437017793296992720140094387374527700735057158260064679860362114187776871940895036369567937958283919946137053253115400384455279253960255069732072108930610494129707639629202589351295105243072065908703496663432486537694397618127742298962789728733288975188760972606629198049075315693379389940212453620036105850719450847188632557891340685918030015433932850025173619496200612964461812468586029805123366846959283826793592263073902217693081435538129405436934407607234744076075565484464799735272766987015893809190379147152542309630202272487283124184707827598834816226286320188891813600025406115866713855775512882395934110927471461859190844019337933653007397311260691305671214916038005174305604640956726141412669631148483292243288522084394704092664205619355989811761219811749043741407567551354911685253625858818883206777007926599397237459650603842107934583726352876093718902665152719884678008677817418066366369658217776078878037733059849642191355665500461169580714237391213918970708280925587824274414909090241656961129823703464403578854394544268305034561606095929072125054857516133663475736679640602416683219432698957644292436670083302266832798160930862828455456543175407005876231752538308076198584794271204711587300993712824139031201768743113444302755453699118532577748499674309307185537020995782553014930029705029937515052700291701969460791734630434228212113843709091361968969664603795774167348630844780905111456974013275832230535825443111976757437829373036072847186697932352743781061965188439163631161147688052673623264667966277906461454765946092141198302719128598943149950069850194325956476228007459201737061263035728967599703414888456896839048985776311826139687085372576700858941837358672272628157542060835844877222550553773267377560913446821800398100705078201405546641813933028197748110976437695808206904735363024232319443093287883160626543587588054949176133839608776893064547680292827083592809562991436189697679146485479654592015305271788627044953112761420779014724899174733620703669001411336141068560601834707202180073619856348719429542939041020993091289766252781926168708360845907987593884009106241923589363831414001661842094120915307358815249215820421728882919639892252394329083315977196225934439566891071263406278374303314630724225779018108277723792228784604558939427814192064367409915568135016219547274510892661270774906715760712846470370889799149147434243175328257669715586787129779632593274721758231516601556938740701765266992839128296923641697152836587836169180160594126725980474630654382854036912669434686475443779033483895676875828964408173760223952477186868879538749037415628394053389253071479564618304461877871549426372061598902976014270544191198668893379927975749940433772028913478644968123532745342747729416289080223034197372574176346889164271925879461609668372814087433037045074355745429929948037574820316857691055476628067912756384483109659451317165649939586161584910733054593190956578717720264194048626753235238273102002974051433334911028444207569585448558686343892874094816549523429556407407634984673819225349702264295766565837139075124874463913822463171583574660211059051152048392193693845658481977882039962750619159596916902748532259704859428339780324966924962564296090643511852318778014220701701405042441743950139761140208576549989854938150785506502316959423634561457870251581431713837285213484336576583320571558042186406364709305444269883457197544712265942949859138166889949732797454866237977885031659757344270277579004612040288036742443687286002514849143176398803038879621294320612288904471060162331230984422515105428021675653748567396755361977388668694376795891408782300867998841963822741420284775527361664275106252005880758252432099682571371489660588155395760542913980116059265229284661688631049213394580197040379975567915787098612256983295220476313927341229564327190523321278597758566961343791779961554928494869723926111967751317890514182624151946466244625640920042035310171599118978975042851310592464117616206328771889984204300166324077302798760000549583789007424755969421402548120126550144083304465156220963404136370086083144417999512215915155005396726522208804946560940210713508662259142555688558624917720922951846513823567680886661402158035750033155354729636760613146761600742044635752988671471776558543515708314252744310880519511072677124909675994279430320504397314849991639039667539922511686112566091777734505184982529575168547622969858645313160805329022013885703116797506471251024025004181581831063382930698179135697257079467401989196750559778660005513129965908965754746933455241105406920299819565574798170981293870111659984117158389347224802782848885883295136166065424004581874569534676960097818197100282878260688186883259789797740082639268600631553729885368319367923387188529980524301721713591407647278625381957679711971504222968399036532111071724191535030371806030921226524633937365811464894492836574694030895121582890881163201768132560230090903304140365927012245238213664379458246354281708565731816488862347235208087319211540314741463686396482152179887076518904340570943550243644465510904601102707738608101825099647565205725226830823779458083453671611329295195913487721019249972811704645277043971573349086820668039103019212463460863042688543042641661869487169655029369401811363680831968688083509994322062687522635489858946488022556394189733097760093712075119500649767720995840828130713374108390055567348569075140438827112171142711524161377844190996194025802608488245252143927418469973770405390432277773770368444688333865751403735830839578967620174283764695469888442019686912306390972613287624217207843886435776085051956651700107585485686052794370276528857953969058561012625072401410033559132608161794573628811988372777718110359453895545798024938172755547822163779381502361039174718885622984977998195575490784962188930155436192761409877083555242274805387861625198255348027689870075778537288894559943903422925259973160952214977777352461988836186104139056401010058150757686390537089938824074923031188242262602453354471362244890175934268465952636275397193939009312930898573891037242911290096388637211859267653917902045377076623705294966009833674603794378790690379134267541105297980429633621854896925652415450654519223650049577611045707093138564397745313580840940737015814758427053665522366866618693541193810137748584529139714139130136002619988589734914490155116779031138177488617106733680178598480958939536323586307048369776899170229349889794931030079433038957563144801054112890646617111550861940149130785054730531973120590045580735840775858925173722783413768529213691820046074944679531036774376832708025892423954496788045543182660370270201309110636225443106542827709421145353564887428780075887793731002490499336956260638402073847686835262527381379086656005979455915309158249776192316147867803149843596508799209815372400738015640977869063787730393879353413787461564961351978006982609789722861887262579184570215138264689094233789046329930152032255868710945628613033731110097967535641299068386304701702436582419924284029140538026430985906787059035079274502379886369061379691000599759260431679960621001104529852622122380944568897945386186389253543395878364017973580599595592993659008495312929546163099318256233673446956916131560887844578236087215749578878976631750365344889251478702722803618164213613170203211343612313703204366351278156227269768758794313254543063126109387633939982368384435640408877428055062996072335223022625364275021097630603163422791595950716037687500586821268187066958011347268334887481229607369844082250105830171631012130098434896986049919806652137738072828188031531441522814212168450611139221118025679744933231859758672877076190507800498389244871535590550099595699411111575167426093066634472531945007120373584516196762310679743548734652117672858342575174609606613576600216357314285295208469976022609290584303525394392569582840251819089923191350279652296666311142098467374040398387316532477124546912227005110521001701099682499598075308743813223762696623263009794618401329855779345348106069208455221275059630257421942891423484447549596046584534358081952129990127698687661838315722834131554291167044772919054220610112996025036266884564709752116559894642517299539159429246241866158885046120315623469215216861382098638180560017237276169080750567332557950404580869611246975835513314275602422959142926069027661965178978075536581824397797278279986352055044000875943075629305320001196924176563102384770636171967345079885589323631827129784017413660529488433386951298241982235563684568450697731599993979715637916952222838841479470427203509677170128013584461406286702562123571569386390726547826087741425266295184460921432443870692489432053398286908524531329243449351549303071464996286839568006730418277982695329283971254392754590508547311322574308804014696626168485059651943516056999523949407862534554924347088092605321405900889310200420050875821253962831640968274652846766380152328772022436436136095753899450430382238307372877335500765846050173049666399396864078999525404929632493301162928647072018843406920427006286417689888395137625315607864989672203597909414952294173878748961089488597547481816825926312884597600119792687423925119474009369010078847750648183141326781833593916051256064295095002066114781545994012200127147670655902011059898880606081572225213817395225417248767572238920251546857763283829936216595017625820795003552896860002773262312334585543779525849388960893992102819132066909008657101019904013950723189254315326446415786616118875233628147080657824009344754136060865379098773798679318185139653718860982821425878781199441007568198436654835581431197701050162813376068026233443188640126518315904151861395317732215261995891284682899179728668766798037478560696195580911294174335183878240257165965264970940210995010721496433110251981609855521521861142600814930172545606111436390524069523203517682075968328674288337736043560687209834046397920824293673960939063404964039459149599024354547930069679520945642277158968764798452826794040270384532517577518787666679231515504100905678287458665024460138837017293560776927100249480297609117445539552029032910197234819034241891748740646351616431960122154315317753359991590931895776851455462024900812164237137535320135694852797312244511795764652130511103830467859258033679686448087457739127799753048053613895347179970675733702000712772761109616278184328979649935015698573916957855738643210933815784735091341296843064046840793586360184841945685827426649696201993367015053984078334759648296272610079814835770827186035113850186010080278858545202630684933598409826476763451107424978630926653727662658993969808097212279156265763405580347654090157312032785177163734617893179183125240733985874507062344902973259628304717325835488928009311289648055942747363647305865733042711973302725519040222096022719092526580949757263222234993437054212605284912763417905794760714703928863234202496346062963249427568889505838539553867327458572173309496877451446098923733419117908383761865189348420634818529996530162030126744389925616807616336072912856425110538773157501465081758386462752870268928010775600807961853264307726535570052400635610567158760585985867261337182548585125980482063212887268967673508789730137712737908896106143161638730208749664189235361092766461074007623607209527197762346631412308682006226570003476570091459443263623133186546695005002872582378171645128355544313986946493061259149914002321783968232441379530967795310723397659411662927085471698354986022921423378529269898168870941759851435108240915746326348495706632583176123583739678108339184019740219658106093372840393627685319807436014510896369226738003505531339650943598796383110515809579062144090772403049330712423094606350585384111230028197376386583254099307212060407625709764535806002783427007966883288893599083992279203132236811123704491832593069078850089320569340675218593132804921075322085289439137937927618861642011702184637045786115156997582346549047805183827260613070519646844635121335281607245238367724068590639016786301931177000325815340954584103295145155005773239943965237157209503053963562008565397890724099948374122984303081666728042769696799046749412466101217402377025589385534934595707670521812961403163465217065661966211278168265170710571128427286444951808620061453718447951658528619539579525978128252327341847800862310042582197592970683226365605933936650781827920984486245638550509089433137721778747144604740651663876545161490788363326685831384050785479401062411389444927890586131783825673656899210912114854331213979233668671873073490504822934346801209152960310892545682089822451898032002605782699840982945704107550961030907404121137871484687871799304195657909295864588381362797582566353928249229498666236553040727206355832372312115268938444460146281323359159680023969114744271472997953435412910600190905438639316477783869905409891255625451711874411726315972009141043959464036381829011816327222337870338451417321955437969352736423060679272913967891537522940353593157161624982754021730469987377131161294755558517227589911708780304814426201494044661158064891981333021079758609224987354453581094014674749900201489645604053697135968451532463017917297191914650716138000941140770314623652133780901700305655672421695830519362227745305215708111588428453994672255895659810663327956856716140153350041458390793236919587081508380762063809832676844217510912722965916539888004375698290959058154023222626451988606684404654724144377944681344783575249078046431430704795969219082176627242385199120534625858146621970980046807245394449840054518008737938371258466999876278427456532877981445032979867114308490334173228135420341625729284890035043869796543062510274700643606056353144118147900345616520828599041286875833004443587188018011250006055077139558787238620713853620151407739374156930503885262607150992812022871490748942466219045086600949284106594562710281312458945142289978893102573567551898499591021170049210165882029199260794987514047706685049100004491445863269667645078557185614405048481978430304060485008780383289682762652584778492812069248693947757379207604870482434864046947381731723517767243731695272153466724930306080781623010301879792363034329135855270031372929262253007533210155021194354878924373769103852929850138015741512413563383827688181161456302951376262633253430724682063229595594283049085986685797916799363236677345348829512957680608683477173699497540717426975056258150293049312178758050454971834189716029759838657194618093121149389066941301723540601656208308970086611810882699297912452180229017936566451313969114450783686259701370983986743278895491164102232603853219504447045209848126445922603695422597024390909023383391516135173619554574369175162549421445504634167274452987325887441329350053929826861369474547260993023381682166225857579710818294581413873279434746613179251987970754227724298563275418296200710489047532249553013683663151636618219210982043445470197957982432914114445298000622196481567961954823812753251805656884193771280400716040390038206156781466962567281384195940918718497609911048614024052294347550466969613664422206845278299584762810157069499394352817164750704692150415089183224315704375949737526866313448987150786141905256014603259207438954354104683207936949247643665265823677652505185865385835093539123141751344789737247971177174607590375772922149423825971538893796106259487282871030662542022200041787032731228531544576272294097285329084185863112420549747252186867229423796788601313948077153126084073101499454008524448494099689142249035849649120769924311824150183891690541899445339718734054507034653117204792789327288176859068130296296978058251028222439475623709009033291966925473748363947919881543643311086827971664199960049378557192038495573855499402500727328947111099983029090445078938737034163245587151716070320358699474670348860225601830126849353958382882953996324419453219877560844692623844053106529496320471772616065880837565594541999099198821621238021964422776482741225034836562875098361005994328906008544252278422014150708781432412411962204664935978949284348550055563315284549220566857950211977509301317266455625613710075681372058127919875596801527890258696062618489536578622721395129492814691906418421869041385981047139926054609342199393052393205623179218570640394376105433132755141715815028387703137587979291291336461865076599271107692966792097761931201780868934651807471362358554813437920973237005323181808367302110766015046000659080041359606136300217771626273900064343359240888523777982727508200677175453526693126405146386880530748766780182580245812958151161405110038590285955476808656527153177006895768403191722064607279823686262372153096909383549904257184203752600865628513481007521846408975500064823931527920533208604509866171529612927256352246718999923767104578037576351069124372086244708247747741756019734568889314649402955261676088458443691360728969357264444325649392099565302687889034518551927967872343171862221057282703789832021085559764172465559531717710382631078110898170287630197086882892488166284026407479342288406863639259027261522803380568390740386543491416243857896135700463509520977779262388646557937378210207695392493430885944496007879786049419869180602777201461353896209536358918006258473038580659093666451987125484523458759876173038139728469107977187037738790626564403095797804310668423747853070104885212073764717724424590171504022409071764320945605662972115252728214067869265167419762979950536038427421838956723260922206964567152973344243010928997637467801577717561652819532159742907040513032214119300554951150750989508413225024491072341414501780842765006155038526465420946964045064326057542580416392580757235502728894968167027332247014128855762758206978989448470261054512873450223279549462702808909272205868749856006025808706009123991154656055136466884424194265949678581007182486334646585647141536668990719510383629019162859748438706017636134400298803201909972507667024716688266188116598456722994165153068471777568296069448786762655934875070428225815021414629242205700431739031343365599520240826173796111902387835139442907763802164557987233785008690037133448728534646357561896747806516642186880011591440166345320183422217803317152195576589369717706478726560764862926248653135020775760519136093484712200183994935950086175017235014436645895266322595249611389505553347626526201366732294749203491971733746635701643813250752191317021752588595100808478464789135647723608070696191548928352359982506204111743997073839077139970490773066072549714422504202243181863622213734169219208984724359494524019260054710704822351524328916710219390919144927387268135881047996557204814913857706897536095609238801634041097559990321082058767609601881166539790338660317326351133782477854874159366009704897711908186014116251706552809676367792026469385307532290135614590728854039945686970162965695132863387461104085815432565248768735949624612046779238488394836080624611047399404707898183139862823147691470463748828290602006975046698092307238298280849356402469826618594489300975562564726199477919726150447344476017875473876037004404597920062797947739925696789370991747597685484423372350975577994802908146812021501703706975373161390710844271344008703226049340560523578136394386355286216667940264434559117345464565932805868820962805356024974473521272409941118104954404019335906219109147273897697812071110590507478306705252825047630635724352337574047985323064536859691636979717293410832303218668826216270440296712856081393908706613957638881929052271445776658742309033298862587183267185285128595512669030223028660258243382674616359117761809919178729014277098119868098903146829025725487213381841108904477261428225184070882428368303143095573814709754853291129144444098128258170370515727682877298451704855122813823797046486970710372627160421414922484510102221195267009169026491306577311379243230959322454313792221131971340262383463265748433145512412772039421347877367023549214698873996028606813927495454394419546166619475264943223357988356130118143607594361255920469945662412699411783569807996808119729508909864460206356139215667688771073945681129915907568437216183288405250987236858863102567827260882792198756243047705988541857155154999786579047950231346270932535498886678905930855663101216525193216961030546691785385111540809619995320154858950852024834004162117656419524786532642952690050867171878091575693813282423440872049441146988184594676391555813424153586121012115137122343298733088358456253297000194845730065284980460290228291125042449106335013214703340692750184241773474136025716062977420025952933404094001903866804764797856325406598545038608589990950359817213993344259279484966504205504926869965073423745084392985402024520964318151544075862966624195819837322584324814081808756979901477969819035001541366305846427729096221518125565884835906255988871943355388443073643922827479743087321919618729810848909015955970140220384781178631846702627912194159233826543657598171109148573079580337630010970937371285162810104524272559927200969429856775995245092498453729150118040926820840890572131167082047177375191216244642679248805391845465101708871986175475337054524864774519820425615887797265515297430228050301158656973022625432366515767830877135735167406987071902325344143963282092637370815061293189705627542312938174228427846885775785960425798198119977919800859219680077742879131823289785010417396949492409727621181348321188761818265412013463200324324654039393780943269458970300168711074145531701663752615154810744333026259943529290829193382818863352366278422302680940908256815818349464866349453602958838815758289912931091726103308421655920817556723005237364802327482783286876818409299676699843746813852760327686102446993957152861965170062035813891510667068322012606853850643355256599223951959480398125833839714642194179761119343156626184054925831448584282975601011858163950827871437566728605561881308915568013567246198942460720834791046724379321428286543505453059740040747350532810706638722635780216917979833241969842604075389011110861197033888390397616501667411555212968491967917955855928608960303303892968675044716108653764383621066411607528144353198695966203878239440670383746778415154006828655223689733405128397416682279119912031766444404026605148858003996335688646632107112176842529839366521217693766920763119780497454384306028414851448671978890411984004638321112779474657269915294046956999662331365990952188188665736663141727469548617425401161035398342617424154828510570111156732490982954447677789607683621239799815452101078594809912521325203855184824212036086300311041829810937287800578355596966318936406570475930885248370661641229433846927667051351848489852646807359744472402655350052120291842857940359790391883135573509163082208522977309259332713547284558466095259984747369014733597488243975518198774601233978850895879758759696231429703049798054754805912934385164527328150950351673329289267094451119624393766871619156105752598307691730207749713091949861335231816072043222917855802117194643762939686926131584782361647222237007206432142408307829936643010049808529459438605925575908370844432071921731366626156904041804330911820253298534856949565233204214116463817687559602567182632837199525840483913986128835451165769848615430572301275806483361124523839423991186315057321810631171802275934349127685021182584936192435499080906817108367132145244013513930625871714594236337644171421867041916692731579588645200367381709698369172456338973694168400997804814256403765312423939296195124935926244336582955669229132299587251097738154598875839356991509431207988431877966092809244185364694617272637293502399137009322845876069217971002100055091196719410865043089453658731455436505202505843234189449944929409636288171944689036664646284888323059832980527050146547250052684637016638354485517013019545416097887149648372135979405866909316502546043515862372326203752557153641620051567901224388446643948503681446433825790873681435928816948819888397644854108711989725803344534285747722966378886720541231504519810686783830329661456554088395490299534421554735385422769246191671672394571743464332730249138883098645276108597746377744598267089703646771918444318027717435258236411760252365227595220014646849561036368122654210590881554046753472900633106943760318957179511095647731405623681236287514476581096059476001845766767591608597701925629114995577579785787321962310820030799231239671704125931829637054241483302284593410673976964305927269965896174650041600054068299804482702652343879311537806781574336258740388109166215501299381806846652909354183024943654297006197382025140537290508848858467465068495807172945283118165623373151555222043245663189847082435860504436886519391067375227731924878453448131949610880080063387079176957607955173216191934714576466654932242841635245692342575539070778127622182495147868793578151504109699773952028907233913882013209573383174463606422531096648585567487609217003944858998286183169005631237345090715530960480776907213150715767616834622989850195399180587139662223989831509718669386914728111453524590691767172700620622337151109432664811912414037219287100923764159000709515537505384530317857222728271901575661523993708618645861567121339327183922305160003085710026663679539517409341926173399557111588074194736587217488960647413685675974232546243404853733947043661819458778958864496994925947476572080112191057516182945206686970841992326222455030073328231263009917052864665682975904307486281804623739976355017146085757801009765226093818256931287000618633230015346855462652783298372238627506419445738030170932799729210960006498275521588418575478188028184797465969392300142805055066153573222611868653139838441536666196432675272883914341808215746404278067325964582054183542802231426798136703659719825409115720454115870045301937990062668946006842801311914990001802771294448896029834540755414732253028167767955675039803648450107135745817349946113295974231716177564280441948714767281339125903108389769133252367605109433345922472331892448992043900194783670585438258133039741687020748919616022841987671560561805675192598294923612200015412461271240275534735667497527508725706918111832328649561870236709739308371128867456068379294666421444459424984300691125246813887841758310857784189990289890844398792348353237179075348569675647992756648484233208404317493501803478645324937042959831200646182217533831554367150351955338060439679498557339291179022370534304668136066394370270192233686019368246261385089373061827090592592418836457486456436351110098941078441963648155677130374633501254181554797377830990035601402374541828285134105256887999088012480274878342241629491752397345023639255652936724079423333181703012121120091020064266138146657378146144276813372702515879491974189444548818340814962289075305776691080099531126561116389955679247396933023964731140381332515837162112986378556649824827015446352326296830178471318887506364224477681434133082428765231454233528992637734479539646009057095993485467101450489813996554718646334102263359193985317621771767660449694085026526148359129920844057367965283826370886095361273094622052915181251850956391364305357495189218710414743187491413850474376064155007118136645709021900432343554832587161365720312582768930035507750825637901484222387682353340786835758322432077536239335899672674889140945670955304676628235495839311074276527387524821425053617391126882354725121215003798494149831961785419208906750578673371654709857195595391496956273744655918397987636203177298263468535245229000801866958087898886257536141373459790107123229308977419827409739792457420858108207831158502340884658377284633042499223844012524099515241081211170390268426974833567792197638208806252469986118520699752115375862625259389207960657897939066418940225447462356379585136127666057171976576532358026557932068590000777587942668880846306808319149732816706628287978085784815647211357207495940802368279209214252671548457713865576636648019673520982526829780564014801815728831577290893790578597343738464065380789559809518726149126987092328379471593315270566072671492675367709116875778990049861302380777229194361848288668871568086982977461773244065643155696391439710947154132176612289299188382675278785108077765856042798199960724396014092922962119933778983006252351539072314847164641741157187046445721399498923851354279915129745178377058360804143150360075837999541432540849518200909307445137720580518807638259738825995247417622717420086785867082714807392642725544717263351128014715239319678174946332353307503101490820542958466651111920562627260314877656035441837414304052621573324628313164707806054634784863708143064580932481822241473058536644095666703859521566334264382505915576827586776437491684832363883428952146654211599531099313536820461286852034336930418762053544422684230592752631484151125090887157746250186960221257307132545085744015125234589044201491826619909046497981750451870481043872116083620806223034293168702726575175352762799760644532795202405452817205470388424624733850160463833068957770671754415906762584612141074337759925727814584943459001096594989381858119000834084124276001872400193153816990850099798535629500810336750669176701376787897446414525626761322366922083716182968883315216709633819353691448947875672999334178899273658622206795818252045278566109774130884294889710012434548125959259009044300690513785528018574322313990607559813102091096575200203498823187781358380950622798023412088670235631582431300742305995623708737298720872744106601867362505483477481013416318574068265654516581017726849872861392715281238521105028044586903793947731776722258662206731904902050881364760559615483844059522729797211514640498779020455827642897100679803498307064686142253034593215112111620941750030132916758419405220022998808324137018812942776667485584168355574257440699652092065872460382270039707900439305808097165850971813351524440582056302958345643742285321736194297993046007514933214451917760913496007733802465968213762400766305284195056092261442804617937127279230823638767564752348195126453968914279273090546442694642493076466958368059281597287208004958270709262446675951292176015180038118367587300529382894047814278262733636969481122303757722196768892508128448691260054175357259088573795443833340203837865552050076962937852891385393445731546806290441375769119228609708385359900206093087588905814038933784835136623901851738626708805740112629173901148266952984205349196446071673185841539159827777225489726825902790144529341792555935094369147544002484253799280287705878710689006014371543296506529720781464541198392766962532618912428026279870047755621475906144338675123490651894019308727061854508977000611545696512966578933073130577525268007987464255142026614869908914814208424617606128700617766884650750480540370636435523591576509839771199102481899078273649183392058626241852649548472052943177331102226691485211196890062162292147551474267063139003626950262354001271109097297832533497512375505854476242318536496753967193107767983628471834976334768751291694532891060115904215612744445631058910307917936977567978826258329208102670195117610680937430478202097139827267552052280433267028095324368794717245910872105161636382224165998843792260744811935593581844167586146910188519193418909310383910204554566343357785275976320740604928740660407903553960724884709059642646926919809123441607157935333138237219654971591256484657372858508045507883991085666021045839182456211630356012307600117074044186950707432008430185657665553018977836224389927016284336139168536101794278534213890472471691552566717992723054582717267391576939291313750043412893938661607934687870230156589378664273707595299569587891384659071764322132596029732866426339178257383257099452180560564580038209152367257632528488925773484230090352854283085088621320748857209663632070774146267199336041274476552745898200145660895539927262225228949797801565498185904801378516064906773771523675845216549871295526025621365458752449772968185877415764660912457912680867563211919489105782913164380619476917430269398266640675183693076867187004456538483718742536029675569195538974743957427830513048689768592923733365245906833396302510081383064030565687338144398727364054780437526990301514672909367997780430983574337182025923218031166835427055943234199697150849316653702473160117986118858550183938976985897018045433815509785490784015401644061407526231439742525289471838835970102420455537210060302230031055189552951385428414882287684902279770422955740821891689232591997688054221258436944962641961128270502052936463830884869981834804175444082181179694891870331352435966666751111402146640112809409974906233374955135474210556639861327752210298643406265289779582281237568599303739475657847091212614980884797831695377966647289244324618409570885043445776336575056184619924115741074032786741521371316728736152041201383927584062796078158529114131170274415339999214300002323834134786076719140608525176780700047814667904075822517532375564527440379601052983311473465684031575402110702504876601962591916538094031268996050776100570409395892815680762064992699208499418740414970005042104767667911358954938782637340242637793310247816765209995672925946880324454490801842056723444731441761906673113508500226126784537706874043044819794269313359268318137450797019459808071195496831522117541038385411801029973176660791308631361272603879227728097126783623981545577190582268053807745179313713020796937645091539809824327092789156971139640304906333668082327913489152323871769889307000085376541885862626708635807017785721211788545387571184795394368259228485144542811948395110216700960271972558990564018560024116036901079543372342495759917620227895224919790977229781684777258709850725069365556215156600179783804718314569891413432708035314068369389866542322589797433494297033457500363019550434246704117596852137635143846949373090098759988203143817061728245104390666822935423869124041472309195332619351733450540616051254440356321111092111997990797633339389094467459362235120009893101916548763048816166904429430148102245120521828395222266288538936300256812424572613442261092122468723430401817062048125405783993550626330942768626321510384333505001264983093725310070602206289194431889630746194458115050814391958820790101246438773936715216861987640877966909117527125137939050441432784742782110483147392587489822607688290164478467827843185931546846544620230688584879369259813566907437303678599334116293216533881653541200470138704900114633095599496516292218940654102992228791205300606637778956928676250683523584050174362289467333429002416461541048779674743183711833976189011456676710945675574419027478849167940655320456624521714856019436579026007770057148763743862102158469365188585833219670598664230981901234892725705896271941666548587109345568175136341981944950739740529135339035562119906749833698886672794284191939440401641163416511686968818201263985863143925477215704308492861393776377515132271090084364290385194296673551150920600529450130360903347610291323368088675128492978032831308304757626752496818168839887763213838919486293703302345424584329804002458629522464986045116561626398865158886311764601830777515339304470985224874603041347874426069210723566627535340923318865611411256140260568032274339894450745631478706043144810479982524029263257289343700568266169658573716469347161707092134290541114849194655351588015189462173425957260514274370527057627120096657450247188119484819518785800073398289374554512240014003823887149396375675180645710880313603637442368337158394002585842064872135672223512375832412972191251097342748633779034767210104486122852886595139031105068873326945444096418110217435753111070702375214196778442805077438254573979686713687364176215321219832586721010472883464994631916972325966333160796182616270586076489877859392688697279513589213494258961526562965302238891619729805278786367778595110352862621229543639730631899164287138414968064674397765430922522898182868003346395735640926146781617025080487317329556653389873836148611810089567904240300654860621183299473606375536168387260246894376386160300412668752579939396321299081766746434513497769976974443452295529341973624160461752513654715050734653586914318960556458384119803754085311961404118865519160364764179543112519543977429477077663871255618645008703561374780021716072043454779331891476993722779397428341785356502403328674115377039330700170621508781495049282806588338175776281748520672713233984606673459656428366589597431692665666049854297285126318464775585187971854189314808060688275885188814211975899481751773195492215631982705293886313721255117377453821613466917269877823689874779795215509774389836272375931031324257461130156843342832197593353245753749847797563527815817764694068260446524333637032568331461488176437593878883343057575720147709261395850536169604543264197910043896673196716066795216922647034370601175046073607797798285930565716196195326922023402313412586409874888442771028384094334614531571604059930625503648755776225549532062759929579706961677184476822143860604788226613054187667049876274578739442334358377148412192305402239729267812171524038343778646995002433165684139051884764305279413682950423761818161115803781438588603182914354799206673840138144660232640899725706733343375528342581042940454247093856141375454827378214824314780607476717549245902881403523552635923468711182347567492014336123113401976150389583343750064370678661611102499524476607019871166924995173183184710644664224843421026048607322281808897698683543231193031953266712935850412850156513252230995212819758374106382968278068429524125203853827392466993102860866291229282424807784190257998091190488492463753233605327192961941149608299405839252501698829584899901893933279594938614889318445538707087876037408463543566593857001594630703230379692940762970625141931412620934106180767308057910333949383192099500355968048585497979667649795699793472571481487625990290301302501678690120720395364513164230680442868875162689215309198062298730123782217072175360700146674769211441236914953647868196645455212104877248928265867612104218491439350691426694868724574857159454638441997679176704766418004330900568117168505632298583506638058789962994172280782014888165972666791945669037003924122644923565532783695991869546425080074805249207243433139620184169696014150563925566088609909293699389030160071199206759412058941179657876842317306944449844830202880001503051158097365107257180129643636651108863781627060635010540824684680353139327977311396459371430752490938811562824791950627203078370220873466234384179177748785372549964788125633145968075323349039978470890111962333451068484549551891681326324344868466504366804227212152626032499463989024384128571512372231239650629802107089041804243748540430235549655548933945258874028989117456758838432052674392294590803555603416232708061955279645294129935672661744700509049524710315324100708317219277938081199603066652854897524498925421324163142953216215819005332041804774091414251409345509693729541742217299916470116434019948643657357487141814966303501594423222474467735752769833180041745961584725466003885974513741317157604497316625328761837513840617260179845420361989964973203325250713431744694330732620237492560895614317456652277734837574284219586004584160622790306990286695209509584642144579497504718643686348463867045014662416634350705919675176720545266953936247064561966316300452641317409326746937603604584113338555199815259064254740134396251210405418491116204851143948824650539819825447501044450528228045409697000899088469586641191376320291908523648793394305372841277919934384195650251378411373043828244156223705252495901552679177999632411330416050663774976600681649123297330204197490020160168126080555163902831109892704292006483462737307765718926622543668268817389149898274468517089385915296549133729982549350933050487939003920552190761543591644954872388986585011561914357224786118630670371726497209461513093063986154159699666560261135850296386544288621616852272407900920286780887413462459095672729080389016216453899158313103633090521607509356224955551700451859394656670154203644026877950111939953156756556549284369901075843772195044755824929364414279974264606853276683242028412549005017597183152666817623562116535382696376133963536713345437123898466845200762916214256878431753089430127275616041423871260341837118875098262258056428917457668913071737434748080944798716932117828213510657644107825360541809163561041458306098284562076448814253054560465514611563325811786830739085688851319948197263624997707317709390119021036567646160550561730775247716377815653452417163275624641034347795763083194233233819103748948777576349230943234816995698637257750148698258422204057447988130282326787042071719302718055751784997389040134911052519506575054841008199891527392103791912582216230319390709600815093969652285406161845868746051718231373077879095851514356796776659147410257830399868566738140669475866807149854501666289988890046270657305563185343512345340380385858067034096273414597616639794445910788744376837763372106408233314803854703875771236075730755358551070503279980303452941165010665795188160409131126203031591714762280805925645472903429323158821220462596497663171357539223749092363356813370173228376105416559858473432321993152342455212935259122349436011693675230628473802794498419317373573157880443529703388226096995540846471005562936808389154292615407895209713729850011185367004746352879700312736349481213606388768810140528595473742165751302195853285507704321398776732608580667456434363609463230751241697779667288521383649245843636369971224661089351898190650413335740724464114313724336961547403989966303029552432822691704240417561623170532046774265650139394810071457220258828444897527117024305032130679809532307418027538623213023214062529390228672148813638452245282902051540005689881988627741406925979361120871509498552720190736917777477129269629972520541564044552527898177228683808379895672007051966600797108959711997895139114123695628156835532579408409063066689265134760353245120550503536274916924232639896444652370277872408290683050011386969092226516920570956129402161152050389027080580122818601480571203047299876083101079487140895200371410389489552984538346147777506963776917220348184929777668644631575791309258428692506771057126848766284137282788730602737540789219932409534722853356999685156582560700185316316734860043441751996461189371884171728635973669590584464606319838392927282545655140637879865651333681129659739705075654320724776845760980615510682815425377377899227009148000799893600736650199004181436976957486559512085731367659911638695367867780397794302624256197641651692324963911417803805723944172543444707661514487705143416266274837074071556184134929541805414444594256302854615516311456957626753681817917048117445162796744770903875589769380971190414345523334035473657164122273674509792922236215663948414463557379056682926634204919617358881967946810845947022427603335235056481189258173758047496663919648066330602520266549420055706187498150006042273747304316061769157256395600780521662531703648679409522033834574037242646059346686614523826245897454106236433554382323894419711704969720189176188129382076436170750619414738298481744749165295889675008842633217039761136589996724222729335596845228666950924028042775088766314265864857898700426885188402875258376231723951605507486431094405664424848618691810946838955555632605112875814561860500826915640086067160449021514800001316857249930876935083209866776965527904439090537524783657407039525893896574656260562261853805564179460209370609437131439241510818901146248427990250147377299785500971733300302372007416957356163639087149626642233939925107931715071371864697331679839648154176658756247333269341075738667994221705536283332001441629814518319774621930777317967437360523152381621200631519223009181691449238015994462510180288256421169408738976097026590805400320746674042904848579435405570840223779742550244056007339236990119674791048104717237785837906604337613947204389844620163752148472574405660363469848891189706942166374985081981248235855425828570670498992018194165791817400912439328637231754685588412466360826426498020344165953374392120204074804832235714853032268817142841064099902349195690962518528584403886632274583287522003745455155832462819983560524703900913181162572882844011123254738060342951375740985475853758796114972735508489067162495087351221968493221336445245475833629429571999292738295617842764636527348504220402416539645294363337461379752119656058033386410011669020003780500388166203172073856708145736204581895284537774191798274834726282737546447355374735814289323912348957722840241221886876744641611468928755605088739448722843193193962327736764839361176299392878910489229830034444102539270894888667156191719371840378609146823432422086121329306126684275286116408165255649451470893392330668265582927582296596914667282163466614060765549594571896624799646983205810895475956044807016599732346007056863373344806573340525114791630043502999441408429997390957708413001333439850621703937128537234301904965593000017452352644995303264828154912909299405316380340169994145450945337866224285575589735058787898248504749343875516283617162142069992726631681191179891620959169339505910244131208359946380921017900944890323622735032834359124347888384035552115503811703877775611918736138089802744104975956875215022847748534866329586992218122708591577715537515855226032100410806959842013149133066393993833430075464813091287806379728472894782001858149153940016972215431703464974800548083466725011731038342736457066724968265758502854001685726120094114346834371640230005582221013644479841390782764976152407529325000465377364286220366512243785580725936810922542965020706257835336401049775712072071401550723790935155367127800978487578329679239197318971897184246453269121813249180084949578931523422909731676006187801349200639830227787727046704493187860496393957009115075100158769592777760771307894144053526846723603301762124473932087206914220107631768547019325385518120268659195077403639362383901900449396097435628456107632587562176467838253577275412135290379249778242572642778549179395911390989175071788176774813585564821255379412130552296442904636868162120032505568746983478899648111548569630788032972778704179044299144157689917779103330558470236399197022221491249122075229025147462770707474962357402203959950506336434410482064724502165325233847943812568812212905746573965346965578485975675824875876005069965884591602721937836903126256135608685768017038798648084775554442855926870593003173155973384706024229636437706788793359885495510040484094610653153199425260992946132735504080247546768859314327543992848391250909506549442442478220518297433520258913490048792396386335016950960362219095112845192050559523906908139541824313555404884326983685866456078279307085478455389126951245470057088951382265055616241031167894072799995518007721486661260910207503016595007586256125149475198881937871894417120402739223944487087690620028772940663372987807441250794004873455194446414465315942151668659792030619987856132207188586216225530829151437796390040251319950733799643240220472930970745384147078033588712023122926788713342305532376433661260078155156767620089235721928581558589585242886665705766900516522797265994072007418940882062734577409024041087018967042908188317424820464506108762429423900221709772186115029267023757444972871319098325186895226201605349047403007960910758266232607402992709625202055324053834572876415847015683662617205246725490371984766862101348667859155739858041296228214333422807831809036057641416122071242983767181711330352254680347213154115008027247793206240059533952757970956852001558826899593106367246732004858735779926632119053298718378450030657299097884519868903656712119219343894979785860090917719542077668078336546736598829293836084822208062394152965205785891015556866210023592688397327220380364174947191242302485972187992172939324549360452105825125276091597946641980269397451918955985782212379313676174937257656467278171883876424440969550927158302850254787498419776123256351165654951868179360771859304187405853284661232294582017586412707107178935407472829755549359753517323861711107411023614082513989435744049965195438645704812218010186649316351931418793185942081537777886340993805523470224858897926810417299417090933060700383144693495248395197556190600224382771596912045025555590382573396724764333869390951472352363625465732231418861446837975940826485046144870207559578079948905776027436509320419136352515825551719947930140460475676343370863943990054610159135439707330939638661420139628847125939468074281095493530612770383183792929941824835905152578520270903452143384240812894985545651252327415235573203867882418626098204513348806838055402743425913262045566691623820054103481406499248903551207259225833882718509401344664343376939001126500793202327545322415075240579844648775558928838876058401185163490170261109227861005978364419563256350436945318445079057568081609664362345680592696181949118714576744507294501937957524558380420265048269828224359284493797994076484995216989500592474300898534299706008752125129735591141798932478524295073055827341197632238910342113760433351013560846495605790838612141815916237423266683667686796953173740252869141637947364118534980866701098610740346576129031066633216601547338333871195543956528582892599926820472521507940730260319491305863294955933488491630430896439594325079151444821264212933721052039054280575978609766139157645310856356734780397456540346976755375247615316288761724325698174634256554115717888432073350236279896601109708819221591404218141641245320529255513606010632856092965844738627603916209141611033158494168673101109259131035471756801916498905683833500486637909583570196038149460566256190874657893482338844641970673615366327588872921429772564498041655580826526276006601658019870198855456259648474724823599868091413411476877515487225653597121824271272311625226306702954961774113510829648125668495983906553488355607603858462955002795401793127959862593279486807051955399321276861280663958451071784389653948660886994264991650551915628195744812581371970907740852025091735664724322145677693447180032388640350099507754364971520444143290250511420609340058338586634922363696517988936584963757365480729470439341336297346051887700117775421826072830086303276987926796874261479318259773903154842720338890346317237585631453113704808278921001721428415183493507274822699376418407370910555417421154581767691827296736639613979692543523481660383907554582440895599856456013629915529556870851011246307436545624140728828190045438750899325018275732710967124700116270190967123765363026993348217487789964723226483010215412264849845173843461034974534620555532358431393223115664394466232275528075392682239029702263556008860860842185966045455989139580270886420885923475068161849247640730083254924719097959105964330205672691953111384702872471695913750945429140917070609616351335093483786582197917420871535769951863974648973153453502845491827720171699085506950957594317317782512434960557980406907847556374471080113048572365044762314972496492789464440621373255928898687473782533881902547560856731425097913662796826887939541937094611812591192749249473788093444911228092829916488305042149947696893797186709741036932211760305039170708609845652631622977091488639922496875141447656031877924775726136699612683101175126827191145041595934838988109619200032382723656390258406362852461284376350720502947410679926008239612005589327236011253542577017568557228299919681035937706703305306683380325549849010656114742327027479073194155979753080414339913202966576355071105940402076267298104833765047961684111121928127109242887447353538372056456395866312043079355393024785032960621788365200504352928342329765923021832292602214907206260853351731514031341807645035165550257606209111297030940587360584665965094019602898250868119046433780770058903836475719373341108796050172392007158102592617772406928961954276261317603261358071847699808797261953607031704748634823247727055580574294901791543833234181830578770150076512127117876227340364093135825284399933071573579553254134939784006656015601249263902571541327091212343213327604122056910586257013617191041713119643890719602282659279705999466345396848317159643162270447603413811765496561203454530010365559288843688555225495153114609775965305527630188704394147578037815508922174932441414338663831561856080830218747427173636524824147342108911931234574409923701472845458146863533500454926183261745131622800356201253312261720418554369520145292768013988181641016900372858551305630447708954152465393900824624608243425734587504120145052998100207892756987460305569065638358742306260229379140595296975960825189619350205829534628223407960605625154068038143362873786239296179937717567621950355400780303786990579348153007699441209929240688179048260924126057374556384929900475171834723380332493940042065857853373189467249043339587852378105896021503245605194298363454880899022726163897991557412820950774452679546538834969132760051706814735748245931575100928494549927350714922844471788856112829179193894276516932003683491092087809049650633036847769960411696301313102243951066177505841314166347466214287033975588657414500588775252464763487057216538705834028559905388201646007863842324370323578458319881279804048245234235058475321787164013228989948012943618687200613784904548346284433540275031775981301653545016984838879824412175033572588280279317422798375422100024889100661865192611915196112145473063174891275551849274306362963592150996596018213313994969239582881297203554100788376724180328493576697534325894180865546379491837984068918299859479766677609125115613046412422127389481168321326025194896348029934263089818856445236394474236035902454874043659754128579722136189480887667078825170050318924033964387477142760708383023780648575363449681553791078627449913447248028476758313487981944718248582444351736950827922427796715859755158588576441429712681681938240882659074597395738552351009136049115792964830571574042480314809840270271207230499765344722470379598158849738630511799451411770077821449352662374637249557486924072350464434041186151737748585934610653679236434205146880057691759642154725883563027500726864223452853204894291044665409884704647449378256503671172647118149441763175106956615848575898417207874803563145240311980323731146966215728720266792924273329411607021650550510080274987340767369039626941989811912068132524424022563173119817563445526634587484951902982916879244342835259445413702719095615093957394141003384393267968347427013838431862628387730106777173501339376702775145583689625580947982829035472122474246747635949876957038440961894857370044374251596929351464942074088284024151634295387129240138715291588482849559247421767055477707879726780803955954540015870182223792036048410247883695294792558185464792996467513863979139372499803737685456962116870021160025783904971383809558306122223448241595071289123298602850136523083217022784538177621718103889386557990636830867771988477834796504467012726782590195722149780232790446136194315966943084390236920630611725416254427103903241097538222381651758959162121205168276407033610800588807533232837777213654214030205528622665894538897761021804586711132655977141441817272221297996440148488898401428783426483265485419244896509566557985630913568920418417422251939749151003784031263887906081746603842348222941761919028189080772315998187624428465600716806750311909711949251318323010904834853749728689711584637272423014077972611842140779990807125474352052312294501984295258446697897283606510674367931123886317781591610420064751389571201651998982740621648751281761696837004354047169781104286711381066416378304196606741955002800575888820616534689727067631105730260329164195815342893169230712480695818903399057441591860348363328907376151284428585166065169508820922779907998209338508897677330976936557845715595464795370067635416212363023110834408917594731793372935031564877639861857616000645796572794840753100045257374977541848845426937226725002910360147246338858966160258366431570469826181144163404861985430990382664098501312368546389052620910004172714209448436010881486587938123483026943245312701051692881725368624616010550584503344719835957423649833191252424504404282191839743568813717993503495199622585335428378383066988678180503439843848029294122975271340511210902641165048776293598215155431512792058770113655394312648223586746163850282430085861075685935653474861612190829677368513582308112866155405554484230384139058603793927806799997459057769684166393162051727115653686491811003427675464023955784820129086532168472999201905563775224732981118435731450460987194228409715622925971825112765449947722330446171095798284629214735811019819597531235416318600509849034969461811311787847308602304745594970471955176327240757680245125750741900191640406141827179822155802893731552616827504300193821304774337129759447375038751629837556610818959587396938737663545535259729519650315204732255663572249814322444337189658719773572889967415871806365394984923489286683440080782155205950246533024918112606189324825497479184267453610001406756145677153735208524518135529041667016258614316474441755022322083113344248458144976234277568056579995184024393162963494827642874865666379005636909035289003151448020300129741651038421454916946804589964124411334779488594824135663328943858461565830883632971872862744472093878293136458227718944016823171882361046228954963073821239595998032083796701018877860711705554926303755783278064895442869526349507149780515796860468249451088532124923649997213647713467936295217270989343909084067083295949741441733700880442558343373351835947030794947277821084547217583197320534066050011403276625412464113199523486083102675761920467523571495517291496454065349381257878345301287841045738638285666226121041423333438736378663976840807537235925692994808866516657711107407648318221141838519836721727636157804807251051938610614059754367028170263900169352480873878092191232411982210778177512169312995616609738919102759230622805204372890218383411394500983715312070913574519028464014658028255972463132527987788532765803973095980255198278096366908926038017887857559167325993752102262206795284654829310046986768894476818865156510424108067003256177443906625600444886738591992734321960109833197808794625816729327595890214385830744006057415760744643570717595890354969193265114310854313246001706038211687263234638262562797775859020298930009653684661575361282833362961894920060544205437045322133669763228659689624462249947872579838636139735883150069718627805331016313601675869696729630198009753821203091453407575111060989840086313139051316353026152177559408969718386842776043842380726805537914636682006945155763407163383457039135813838124794642515215084856807615244168458359907406418329084261335493697748806184993593441391616417007576505844978304400323968875106403724140074423891495554132340828639558492216493718336253144787994214471931658722694007940892498864398575230453262191146585629693058633610896104147194885964788445643345625017232452518292735944273154161196723511443989262834691333329782266293832318490456953160012308103353133436629446152947975691295238629544486763135416544160663744542551879354332732133215445684584459589946493384737345405030455227552362168674817525123916683509205152017676589208019325720334773885925299358830094362891517119866618395767609614590023076684715518555096021754707419518026942224867805990309226986130873828032249011197173187775049995668334468887568538586811054359448803590485247764764200777157845040764372526163755241537897181978585026205851039106008745509639724200987304513058712249841349294311482992873111467600807263332616556733449402618386263176499797852750551447084223855179577226699271716948401411178018053670633961754626252840898072173020415523732566648120779835824623657369141310008231852409645233707859543038160351412772459456200136774382517473283342011951682827982094454216748185634923666088025152186210401458825458725278229687869247534993987790867341459342836690247453022199432712641875640962179949317402308372547602381598137006355234973546312195791236293373396800854790996691228269841930748047035786995186010559608225112400645415047971014319460568701604704860360624512371261122280598568515490759486607602702290134558475986998354883820133699651517695121422564788253277187982622553604079043812767685329391767949653748450160562559106412610487583207231974391139840052296627375966407357368736619462015862390084997519312119720033055242306978137146665611309007061352736390489587011168728820091957821227253742870143151446976932145005991633129043480704926437295541915488725256719097661256132694581529845714018782635953659209958071086738689148212607647994894902481737672044549176080912293477424290479071523680815694289759990181589987909298570397639014760705980224977795062480529605309601156774142916138373993023188403148746990606617412321303643331555668072994963394384428656860319898913860830719673300948105347965186383899579917031937523631950630996121260027995107400905025358996997255105721286160103567707971651119768293514516483158710913873321665181913615747707304570222266875601902426958647620563140872206313958134992032962210337172082766677877696836037771115606812637775149209619349636058070579622704346085698017063675429877958158386340727152898516534125114294530867628951932632123326739963664472842087103216401113152923312608057883971907188441976062255993758025524832427903324117957774270518790754142941876854752029125534445683372963849203532672767220481282996369811157647825654490858931961687508369795531329660383462260753983302473724608787295744866529231645190356392197405924822579144489440967240556704816613322353578166972007743751378405356966523011891485387343415853849166465974751911849293977087302721394234321183797666504351383439073481996318371058957382720277990536923472133075401921835889060344774503088767730752790881897219509833342774709820049633344226670095148793019960180592871763484364714724098000876267464448972041924266443649476910126231491349506102077121508037521470074284009532431324166212823511574514758840371286295250457189270564592261392968466018545312578435513784701582269690038280499058574763963834660238120048078375032188656937536427276743131784280670167298575649291007400125320125179477958610013032577789837809013951780833428245900702976287513484624851817763528391993137823782630559576353536087425010580958224289232436882544436412748046729299009034467402564270456378936223419002401343523340714976166087425750304368059564574010069690469838210238223935941571366732241912937223417656993916613312378092795937928602942258900926553230521822499060152990937803950474757331836348662441665425865151648650189152072387001862590599428671843975620143809852099712076765129281547403130992624241178555381263395210623838160249308548745574224922281580206544622436487756278882690093260656604015097359933651006865158959711313690706282554128861169045825398663080587547070265761087610386937505830069488534315594653179030184673619856659974445517503101918419572106477358929435969613920708817308130618744314974532386121287375321548169923804082533207061115602717092459899990355425212404863095232944570403435222416468619062947465247424317036627367325908453903462562422492738970867505314200180442754808667807636306499687221809280637798319998667393629844258239857282095047921932952184416341167736279489507169835431008030180718937251508225988782666546199882281808241867522898080419058790295006206470897893417419524593078570938752302772261995521755425310227655879106296348313724849690299823475816770425320575634809759466364524695783106068654658171683029586903305492144100078683048132807065566176569703220834723351251203893639151019555823626040203245063297853269054134066963085417567301860334545097627988357982443395661962095762678646945210039398351998394306948610043053072463960992678182627820327803817329862399847076360894500981774050940255003711940656721725126367855978234830534924195193306773194636357113612018836860406847358503393231145749865337245441132592429106971974696347640770275619757334540293610642309797279774659920448705099874697472733593072989949818116344358431835158110338788928467542556132250212049454667845001724688123255462940338007978318191114269360705188457346894201405799604156433454185754062803845906840670942865964674718855213033628650077070724912958111863900442046706478278345127449184991045744014558893606543880704644611941404061553928021209373572664497927081447431869151614909134069859575544312791705030182450160569091840462524594435378023821896789850949518539007477411499676598283724012585374584279224720971637470222491182606997922437943357111636679253397372890452353699535323305612368162355330695523929550558311179123533804188038461945026521728438704250890144915930469982415574866081382526659860538764572350723604130385601451084493319049188492366206491508169246084370631781914838349505741172047353805745983002294384903590723229741147068799290442793137093644984494372535361571935916579031070674746698817634583838825297074106413189540244901341214988501903957748304636936723951538358113570994170597159414474980725094034369396378127755062833891014918877139041505217960113329585396632924662260820526942921833064198739277611133629124547139648563886367500717834754895297850558508477117161681039117017326097062845681025073096827536543371663839434622565987030379194778610422999212203253925887114721830153076032290408508711280488129885186776648866013337545243938993651759769849556158098506255427443150608278710263490140411094374564475063552281570519259585900935925303833589323237724474627214105725143420863896642183990261567895286428755272110014821699024549256356034309834149219786131316228506081447955056252270249225978532860853264669745269221605362972751549775723963166244569342747450322699956402755010859512268155091667486717294842759452484300222041589409252755614916511643084973522271021669784134976699418885329379478865330399502428918101789289679368998910218630171559418957328436825917120360518095003471718691367355733970815361295836067580799024295879833221704641506814290955323772904267879106626003603417352785243230919518685746532914412788709785535725782750730451628648892499314809366306019812867117212231896390586751262339691605564448835092360825809755066514234859322872255013162546553948478852888098234340638193197347007413799181228312694626421874211725588741802108232736116044512473899380179718539327870391521099784340491462391098939590607785621909762503507575686552942933646913573861912511903095343155221278606189331947636912139093000247969713089950346618096530222873088406242826882456826213057054155645112230310688677119570633050817099617556958683637741918629342772219569659715235891594013064755181006061134127846832102725895460225190442865512173500549652865716270498033953117663993140776976104253459827938112097809109141350152358561711259649941753468066775108402912937828911117020441685727171258939677355741240591725759194051865700074765738600043999654192181132501579357300991468677833561110959613342345582876824187085547922298743213463786460754372448576107208008337534821352361816404202336580456227840378715072196335489404011888638518049995711005151417584638970716486866150394848946284427297048694085456582472822903673209403147836309570533599130742567630470797880867879349159610088349809509495971272459748356040527001311954113185749297035178414868947155522424074808370806135857243039921196534986997347160211245274062644119168364184437947651079090031327886006524001626306772758183597436443181073734409605623363121996008801851233213559445024344341877000710270759875958466550520722097369111415273219158461895378294548054178345555486005413072129997344022003291553472641222541157195457816288968659154915261171507726783871320170840367697917626943312852717614458563140219667649710216133878086041778023807181581472814571959212233584877155054948585184461807087887642849704820066537067271444328151639836083832791310809283705445093353395215892053913917384273849980746430407472338248261963628506844906917530959075111515626122604437227194304358981094932516537275793858765966388588474494727178821116474775990095436584221836485333169220281762107173327961791242990337484577578643076329299156071451679082473482599825680382463369787577850849334161518418511782534908472800410427930066114000550282712447685733025783866798306621459437852398490537887515864661526863060226148112729542323940162540444853244772253423332029268651966257735056086455103181878728637928086447360775142520023954847024972491252765454711235150352706758422345949063451777764947403086122863335765794250048660544912902470455458896576053116146629894671852333384432551257994293365444554567977631027044631603172308394960710575476736011585343211640448009262213233097945078563234219115989942837107446362341322538239471760258026095629693982137942067046327267163244778570639984183550558076702156196150779157335108583953507146198752416033540082207600346652108371089574727776073902907346791708865203408643026675030869923671403171820157075004287100012077923658499660496878893613831217754360694838608489830428360596321626113196364584306242685572110415769225437376004720770453759048032871613447910713518794152669351585569611660270245307821862868019420530538656620096417914374147748600999430770884465064461572867513602703014701887201660818872043729816997772840321220830859604375136823071004094529806631057837892710614376187382476850892262381301045887614261447255222095058980291846547509218254577618140392790174051628164642972725060085044995686481748170195858607842065789228063789593809498598047792040362133020403472418150768347990776336607556788305918005529066339625391261103168371719112729197911727648128495487064359199743390979690182365414668345084536224632627325013415912309090712125050339110288897439200014602380446108062896287835872529838274972987302079500360984636362645466129698546775721589227510384210447301806493051201580594942665158018137076082358072224750675237323486774317827257204438238184426049708390890869034428351919173321919571963927948592040866084704582736031558964406631525786288665761716808325922974024144160528743697317742080665141572429662012130633217682338984060122317712134582570325099372752167974964006430224987811061658976586029814200517984646737871366737966156691659333799082070625392518249487206932105721253129532852682871420668235434609545372912456494421902892619068684979555945007049852014952497551142654608046389080058428620873948810393255709872293940832880444003580443526686714681249729626134026377226673931051857259202259743969820136727311432392913244184761723195398694731940357898834212164062272605859983308132069763860657037998379586149398277151473337007871931353721141932181900200493740347510151382120096378709046081610780396330070357628615719489119191179388480740344232514062783935812570522547602315161965972311899344166153792757155399121252962646111398666198701210163049418615477853632738758939657178488654870254578480436383629579035143742452691223130809459872986124665024778454522229851011905491547088121294543439826083444343370467337923014985237515700686021942344487805956771504147809472561915401911079651811475330795870472679948024395912002983170501340845875305247605917139478118748185398012643537265108689402533923261308891336483155720508612408218571846975158195774838399607731533317881195517731923910278800306125065433530508096704252982804598476520054591686691736495279628999555764783089450682040489622677382028673383407009991544462590946122045354624943009026811003036972933650060432909689483517147005926652176512247303329291033570211697935855781077177235845934538179623098382885247705809954277193701806727305404897443960549011143348943952243837719384035056113524183792850249372298792554692657359192282914554628389359824974050154362627813136263088606593863539622177901359048776044786006460129600743360513139677959611003278362338695165784213926696148754158788164309062463708912408595458840639003989203777363443655905539449132388445245734701410560695226455148420038951502900576704378775435822431693915615830230717669480914309244366587303878832603542223153827669866337793631969868069989945048480898984960928352747740191571329408592884678150540748131131292494087686273712639849287706279397280928994505896038389478601812111815156847323203152128188419955337618841204126771278446834611694514877085707657166026574652921573483052359930809509524936782606704421643200393999456159003542716908510311134612683971897494797240443650590613326173996845101270402101707721247998737848652858540594296171538248001473942513815189967316803640701905422822373570336629847837716311384761026792598949868719316128955196857935300147125688860703203996410914259215072088853269999672838046362025005283461516627949744232450116903527721011285413648876862999353607570893147142805082692072818627290770143345740780847200756178399880612200755754805740768469613401082195507685572720291208589101041848055230326402998820650537988302880737681012798511585548945791964830621508727726281019605712321511917857013779026682177330811303751032036474913282037272093669047196592283873880557237939901974888715862864699427223484755635987291421481217275236860868608190823671100841366456275871458716713306046497090296831503547471497400806267868560968234125343258290508704834169993526037180808783180282102379638114339689391535061906309570730933902414184471211871583010655644587140940555549461149867932875243003166606712222429445455544979453649352740344304838793142149466278170446431328804146724420540142639634338534284451849403032934188158395298081597301429014121735371480903095845541865210540325271004732122619478880157625190144167320676627812500712989035532593259268571672838665978951122823508957710775953861455339675864943167856028626737034230663572423980407237911979264837533079852550901405078018799967772316666539056904502442409752975144766087910689671643198346628824352155251167526005606695590090339959233663578099722696238782359479111799066997809317661267702115122326124807036949560614440798110750555583106305776696984769115045736197370588221896172855998354885346586070599145900628895481097884189521869618563588915450999645097305997525537114031383694806055122260313371702394740675220576082936492897759811473287216959442826915094218091628582786865600652254906554444047079721379746499456891411750213825369219227979631872040727537362504678427237603945129005287360091760335242951156896566069788687585229526962563683177692356656026239846069946296751665959706510136259776179164691621310346846417071048185752347759374828466214979285962006124882664755712736352930590163083015008167366679696420152812832706338200297484021201290919271395044820795957609231433310649454974869322762706656116942626052738127576286218721125775753889792822881826353105051567075655643942169176129644375270913161882810270851361548269607105837856765159668510800529786426334654113226907460705359351722761366439544868683644701517537747095178270727246260145988138246564454032138365200405912925810252281240210530493060750227763197677705687386757309946419950561956618491561601307745280157349017841011048046252610779513761958840533571775528973512502624205127007572390376272752708988203450360858919530435486976945062038484771425248604387062260154325234379178290959142918094542771244892031343267887941854495171824790985406285241419801344238628808994718244668984759821097761445096414505682673510449334509826104901894359362099520485532780861618921164009065110335917633863162722905686619089976897855500975952990094637116018256431134229133355728974503402975757124679304673920130126534978704777754721981302127789307050153281205460946059618591229140299251194765117855946510812970775015024885620427236297521752612468536769333008563340972462984550807988861591008695614292225523687813685721851982610454126262701248894761210906904734149165907787132612933210328855368528931484718992425212696071664552300500131484018851666616546648938176081995023540249759955469950971343924691165268485923731181402518846109448330272798193843494656271076085493313519051236567271637766239903774630712831693664507949376485853171359140880171386776235758602731363379894620352548225469176432398623595128205063394165060875226235540919985170142621756955575167742687363492842712410312619724412209010154707721499576891478481932800967943508646779063519867834667778356794223382095372641232180412688081647762968854476806976029445776619807743952759519626576209085679692114517910122342951619340231145037265149261092325758450424979057142932015000446694857066060593585274331655442558969159998468520886695846261776544275909544341179439615907567716387616583217146167417250658497350982532093951001087631855372820596669206372483574396525696650366637690316602514578410013222976292977141592522404820925274028809101818582673614366098081862691881400059662167770382281710540755819237321392435429247769530104026352989679499722805875514743726861108926919536041060266413592308989783047574755993902814904717111642503415784922959184815472383616070182337275699331702649186119589603911901069947507147749858056034739904867399545744620732963179333828272375197311335928356692339677452110925113831537492153782249029924498836087525462400583127247363316877061538310343311709272625821075371384315442804781579091408174679664755223466263324699098696127871538857734984380501415242963161164647914464526356587181327175198616086808088414092551195426748433146817804267446386358323749223604845068666268650755180012956571735372909073222551591566414747989887901641318880519717501641692179948809311580230716632375413950702178314213679539577450055947503473970379477737129455880284993712950996775745692938422782553816697842566417233470463178219710301667597393210359131635700218659179625391365510269065445331730937411160033883132026387127118568171186214580066137554937670032221122663542756534178027173150448882507914771226632327141475416345076956368656456583944418028906995512417146540141372874737644902040280436338185209466676472516031515903879872057555292714642749588425092407097815734174673081949809720038698146577307065300366422915731985770251447233215830667878016510302920644013212035384716497887346664370762311197231512256207579011628684199975814336971033031450985788051228031797422114950910072405934325247976292816896378122468975455274479855635567518961546102208164444323400885694278541219610319409568169109628146195061090286432871073424916501178847929771941315693348635877339294157842319449328477431944256061984831862267063129334151177729310118140008721559305508579016861501072988258259463539591252626540922635592483905708911929318105524758040179329116302679615331690855231259705738807412812543055282290027332217011605108463405864952535060550802716545075709189561902932984066304195285428322538529365904648074885029303036966522216400500062702321375670913881519286639956629723704467797466163633680025533998389677858930708939950057731151902007772332481449109569803661190216115825864396169620246940834748681842658779287602413132288569190869594852084192179178881600822008167752571908329959427838649191637403685142058155907824831765500335716343887192133444947083062184439374946725865229861558604617916850186824568589963011592423779860022774241702053021353598921227049335407483951086718513909624266170647272744075054194900969847157239573305287179394072371297235073578978720090841023075433682135947785605672586234009682286994897278342622674096176277380649574437898105549853155488433994909400124698383217570505044827457859885515692739248938215020948339550560385338107651768246911860366797282953972458235269053895130396443179826300548446009206377003957772281033867293288249117249506999097390582041988736198062086546110634593101243325940533644905379514261156743008209996104557876354989099413959271554124666612818613488076488859876954557098143502190241408070988408519241528285391870046605697554884813722710853577528394694396813452872156202853701225204885983107282607927812998726670786911198358617838869647539034518107912522756880096237364260502481720492670692303911631741535446482651582599558330629209946768177115613237122230341130243017013266429287785726077898907241482310161097019302887367126543812758882088668829321999823622525513826641023565178800090265370593802258258400084555255120495203849763550140090004936654754626354259911554857139118218088044238060691227377664069846988127319868913727617779502536853555561279132208484632072128128972482261271301939417876349061317777375935105231126777733166632156623412303125747655843968603065551640602339028869420039061220719215915218998614483526323579929334999561163221339696906358277598514291756143475281613662519452208970946717895671326659550869589169900070213295100740963602891172405756770586603767365527695729817962195146591408783185961032372290561003862569697583561342274037432064331762029834333829383111267134274119062495059630837727234444874571209224787538340728557593538901063773677694144853979010052380833402226819928471316074866954473953051819178184090457740366014978778838206077251504099864353008640896570967907927334700623287404509160597449452534715718670185851197301342917617510069387229287380762404488323997451261723448113533559848732154474244392108501127653101830960619101538384547245890829750175824500124924444280847268326618953759689615629459043964703252753337801745911362015480510221671524968856191024277075988925158868336210451590732844149222511074086927538281661982224760498555480060457882373217210379956634428001092889088635030730789426487589957017965511607347373617845427313494859096899485063185989178749229716499856592817857504235335159476750667432045588005796390848133177514706250008168022085690137816438335580929338833627337289489570465704657111959985827462792943248950613687828953755652188522245910537069711724524458853905146523075615572589929790068693820978371422552293871913260316605007893759772198192952181975750213566074582412860804232862916685298020686600177273328093163123333546861182635491636511450455632330476008667322038244887416664968118171727138774355850084952280231266205337282244980188418597826353070696314218448677638276848416090586651248715931602460146147691727031146849040909294438949608175576325185171777894934172488879078845078008234802818886184329242218173920385038620818771248273214237102942089595940852271906219447860231859918289079027541111737257327622561484373640448150495310869552921691898350074106231573734064742597589369889272062939952858663332605922373224208115288959022690292181225122236065409687167937721396139407661945791015684516893193060963819580492517599736087158727729571428365577097612467898163532180037202101172886189631233235377645206094787402451588897001962416449609818599402362581140602022035581732695728746246382433459597384697360439321175776088984416449090858028253203929587653160550100211684129666761538190614869781221802149736732530523978289660628089490757601996136541787779393207622871776892729811397691955993917377827873854716514098529104362782792051895268238456706393452819811442037615897814679690827358993781460812867467396819677809396633788165038880567857964887654583697843078551859999849229221676051391949262131710618249952975991607968944246529297422289367032118050483202029894018225956784225756215541442924077857246767135039236459905807816836154646131659820351837018002860806164390310196726733132537218102741514859484569345562423186717147805583701691977756957408490995973731555802227154036613777870133891903818590185328528152739259164253176311171332487916686369999352095031843506938540913924386722755881743018997469510468457260876158571393884862324911532255211246461542723832869342220856513961081075900032035580339463030004043210110106421803698511259443750444521788922375510592818481985070667432151450014535800556613652879425572471596347427465138957540910188500579166669152418715641348764262171403908594260473543994219583959900272435978237829371965722436421245433549983349518707640722451982159679799779170787219674591294295001556574301769510918124109850310901675075494752243326468425056580046754062782705893268962514700622042526651685147584051823050849305211917415551419662689402441116361356263804265789965731195042474001204111636017239083791034558982406680943305407226131882357100998448106768988870946453095102480178282782225016169672054399558304998210646866532413613431116144008329510899327923409145161188502431476974661997685176310089352357365396414420343795173227132111877517862343628271449536885638910888763620374613632426949448013244873935998467624588485930721142966243875186874026705454025707001743411196694857256966970266032786303741938978943310742590200872674303238193569374160251476423505637585149967016608219289432748452081341726214125100923346865040125511449914088335070157097996349455265920104397509319329623721119285942152690824689657811008124106859647172276046994766538870406074327399063617898840167256359635091463312815721325360714060395185036372841408007516994529975828306702969283637354615434504043915411641297683859252893529921969758990505912183969317080802376919410435986389075376938702739954012910726058250617256837433669510856723668703734960092767971192114055656771336671461962063875304624624867507682957230452284824509635027060080150338268228678995329735997504365260569584938755569803544696440783685109922180622792891142818661404571330243744297460666304936580359313823151734320605084397489332732897098722857644967808649406909301663244315769274802605803323422729616720305242945461936428124100602930381787911967728529592364013696157339420226118749356033078499054319720857372800703774647108757881999550024264543730540363286691802633604497744685097090365032660013199765786946679711694502214005555644319214448171600583035231563579473344844363709753835182896912543456723255705558354339372802168973733967482284443503004762078077092355132909261237656731365092396733500103330416453551667422727418167014056431986472485213093845978914865082867333978553673098729350117313566012860690145487046435741027133727260686776308374628309063936209298388783424524417805245438791858963714209647512995429206700474561101279245905060307649007591076457581270493497716173971216237820221250339967507887788688557128286911063071274688087778828478418197036584539740690952983866418052362517337108389154694198618793027633216396965707524784504867017689432178301444976773015457988451254269673168507395648069430899191120223202408362122588632887439726374011490699234919344465716868167508860549711870645927418234639964988653417304769236692931032312910296375792125445052105127809350015769256105883630070623390469558114082032637735429240286906070162557586919436840747693498938423821751820372266479064726048485791789425834913903349553624985659397113876842161301570812412243222983330125012078091345555763908884505879277075617949610928542465392818420736048354724388969448760311331865813810693277583568180055131383876971013776470718072128672335112353201313414817516740379957348844455102746703343188861098071976267892825051203100285903609452891120669410937389378462250169154593997616003240455590940041429801690713651972216460752949904087496249641810696638179000502690274540395168747516664255897460950264934801012113456871232687277180781585708993643095419690238357096087878085752388261322424266281935974590243966787267902896205625459136937783808243040688416853391678704366822187327875337320864339533815410407785459882804888597151174828812960167855424173981756495312163933120634351094387345682878576679003030885127776400800824083367405464453893029325660254659570054704221203246007731095460463771438403187479713011503128765290877699242573139838196065995566229728214715810695076211056456514715164358633756210394525118411686700291916494812634431331442891745871039001079970004805467279942839189833889036582110602376317120506730685612824894716119950821952338696308430037144627142685841020549549170328823060176549681086945816769428076530594543175888510650199056494471812308766106282010052285461613566987729738408236115567371510599511815933431602362014735807749677598094383652579736027890735023836731622623556275068113565039526037309655451682244235145691702115962195675627376221369970477843075029738808734411183035566511569878247551690984801886411156207065566336198048133775872451912304807889245233711648671493472318126462729981966907710321715443769530350891643844612791346018558229917199972001839329391742646246061435828090133539204066008719659536342022816307385173640962295456099603780539552084546650893691144275536388773766283778692662276415021691976172803947692799311395554531627606289677204332841012926068853410511706321760437972757085220349959764249071602562271322714589442946785649854247225595200497970905815710129609434936880297055117821491062403765589854178665208271429453402778898513498187782675776849678039742984617840738891101555814965789687095407364673307916198230396571410513301114541605318239866599765075592428346254887429985086353599838333837901268378389472073787743855600026735504779403582280354262856230716775836303982129823016147632881617575924765005222757756172498282295522565362997488656978093608511391616405836359132724666563759163578649560950642266904752190361219875070722642974510729592427658364750931798796013731061344950998681257111786853093007607373202670153607349093245807814063846283635098624681398683076822734309916155106333946999316789720667576873435207259413019245688622269550215746306026152121220870139680958444591203301622413336120666357482308737275419867908120408632256593789606633020646401403928082970052458636872553177027137338992253015104097395822363114278629604119857136362334087646066335154090958984697454095227140215142554481965338514541566892685621405117035493674586513563221094592581664536924623066338172692755130822438368897641560289677038317389456797426130596784001668898226219599605158268968915809656374959619636470663850022511548432187551388581169313306794207474447006918492355201756682749594621763018472863997546774581231118030101151273056028021953740384726350631037610179919186197314872514948353519276703869484242973814479264938698182193002746634190969147360470871243185840704338851310342896229393808481242106043012079366648595096823463344165605635092161432316543030378002178968295218572957653768210952358347318853903860419157559617913543137737427408414521959355831866848952606441441218578135126374838384065730492547796471335906190629684926513796207947291972161333768662891544471850177901427256955162388240645506785682191595560350300796003624170855491830579342694366483432123601457005234250027917565909225407532730580584108961189036214263896467008454724086179037630121600109206785942991708321548315642719450730214879164791723801459365608772685975905973693730681709987505494224309970999344908699506763152847886895040062919183837286543077230815538649565599706532154482132595551148279549573640557610420024651702484380376130958140339481420990635178065965416055664738675991268555243738640161648200829387260144848601634778523704537640467695419095852840564054858577318281807904860695806258922890374258409285027198310857840963009076017102710627103920477317013753449296490515280850631835151038196192126796717411816820631275918062594936560160626794032576709021084215300411603154213235268621912649996752578943500706358409194020432397365092135309893785535430048154370287709295880503952364171849422254665891439176475973356809353755277045232373139413917463478213385218542917062628143139109678159717124355760585564623700064645756636668293573784126363076794143810295083952287974136215525147160987839862553138877392392134576982630056895714409980179558797355380995194123297960752835895290166264153538494009737750385849598567237245172530874362537550868748767894849188516513366483961572195558130734539396910894152791025846052462352041981169789617709741625378325048915046860486964756117505288227840369639502296900980049442352743302929070002669631715980082273186385004821758017598074431716020911633128287391662182064185798442952258264295389962391374012697566870062364371672942956045976659680999276729396153632844524562816673609026356055600178134544780330349401022342259144980288524045563535408133338228732488075141134655788239250103380936086212393548539864237111864435953817551660561024814399421608841402098820693053038556472378153565237431684038827931933915512708081849353982014685947779327292913099185282925870210380061828089224626626290603101404822908727403641873101174836150228201281965829496243172967782551678591560622359416950004895181446746947500142922511084606952536600221792166821311642936433857139867373986295561555206013711408890288324434691122900851228017176326145873489163540508526800383913206030647300419380660691493652744445766855075278215174661754601200238337458899193460108994312964432474226018246678239197314901540213111717028186710670321839113709912553360231814234822925024123075226232169475042682553906965898689271363803991378400820767964728494990623177399747231014996392753186935130725477355231166968126695484833138299305170902267395201988982830526030779810539380221029535471361853618318893822670948568027089469666822977506945405583333850948244764242955479047160120741060648002527329239598976683504278527485226896208860672808301928473916857081374947773980869626225623252924597356688781652657034226874320128477735355649447738637960603796328155945123993897607135506474603015673278415469351781027192536487677818486545512922042998688919258797938232641546139362487457167639909391699948226568280147763102513367003764714463927893381149065892478303472399948858513447722161067098252893862583578630781317074190182742851018444819555958025156398244705152090795496539075979557257140658841907103030249623574263035258441151036813026076552205069594681450505978599804166132812560701882414432397524960281801323219773223463552853020217210966260471257513399523563857529677676227529592925860312229892483910871331194332231569370978280865322825042146794835294416008457113836994951100051429102303823684447906431851658028047063504971166186577225332340983250300949799326415764261656893719477815487609265417057558331110758157593648717751444902814693978712563276347237806002133441627466975736274266618937768376056713723966046536853513078123473074359665384581699490764934049426808222083049583012417286423287567756287017306749109294533519632458481273479454062676452115816942143194814815932665940966438767974386636535630856109731055474818149771743555741636038079846406579461561937639399439225490260451065487588404018857782383796666486606978212864795033112216399783646408545585214890022944679537332502571174480670941702526204957438732393169718777413606462401955508478137900841911946529997611868497528346416580383961104771674165469128866291733703619357464627412674649924018055236793701972034384407768324155101772841477605534867746247200725334823923213777485258399313760829775211262947530403636508684017618484605788697805786473067002119446180535138179981384583693540002976331128559409098907715214030450120952775659636120614593108489054251256282233680449926804911415369233132605158116561493390812931602576120971608956554730723337776862285398422570856155147740478928848909251817611156281364842650574819993828152002284504629875715847761555879063720702814749785109786752297251735697446683859972928388110002753010151478487000803849974556894142434578122423566460160592185820570461161298625925881252881587044030486872173349954409301184921326946808278288140894665802686446261463485748783739752137059103664847767153919138096005095731364728431139401869891064076959031239938849324504074759987187244698052438118875416306886816350132232484817391504765386138094643613262845751388898021767767151586022923773109464733833050983605823130583799708077514582407239890710554799697897780035701974511250575049856538562109488648092805727886253945930252121074624800880393354974877087423954235153006715154798827175885618548525948625022247234017936014850758430713783958335764112579382143295795341935280249167342874211723235101271320680373363678657075147157970496505239984036112598671690143813893892807904066260964453391308837550705412542624217963903539835306938025362304102520617085309977116834409283487738376827191756721592211384026339021067430061575506207715066364293536626345005176963789180021717479189220633886094848286562528113615881400979724920450535902419995997868873931615179464787283341290162004653803102687145937640690493554424339471681963954761150875292215089457405742469035826519435775301834634170862189374360740180362747762707144233584887987311319300260752451263715004303839150542277311562099362196916753189594663910642435509559173518166622036564754672122794613904866151946276388624689047227441173204821635785557611869105924759370095242270753710671569962598951912410870283239537996444017051587798979321836518350047849711881244455313087792608273152059921348404433659125553658603204075867729611656451223540880771480077438756141872537646526462621432609838734002247242385525056068720595165537333359399263547341191945601766356560131223479258994862896397365632759330035499048083414679703619309370961029279755175802167244971403806294774641764883128733719440643176875174518866196237160944649531935004983095457575893173095500388206777294866028625990110215407654282103712725447558451007322543697937810371153429233142134908088546889995768911520242073528200148669129454552771878523746211378993275616165629213230500795851954945663717257939742803895492623464682779387086996841718029205642399604848289498291507070990775511367189275252111795688664175536690882637907883129464089584166510843204565532631702336218002849386124913831597874303350816079622035255987199025442014904278256722475454659965609729613374711948843456676583949815356104960608825212046595149607726598223473046227830629751332915769918921394441560438257893846730223214968289651910797622682469319400876247378810165485787517850186101191468677297161832826077651930863051675617494102652134383635950133658578594366342607598360838815538067882914812481715130872538992248571177806262509910914726572969863169301271108896406872579216355778180151352434784300781328352703417762516016821239013585530606733345122386296022180412182017658524203603111470754417336333482695086301671356941260812710123645292667196652833895163142441195816461761371804500995102887255254796736700856668547523376933080327956140717690417971587110197774306983406241413859466668732766939325117156301365112773421012355505203761126712666949722906778719561428814342371480500043764267571553849792069380882000269588321589648443314077491304218474071295243412310191910313659002940690873680641863730691457583738652901310949754160174932166232999341717836661028202419289044400707442169596084909319554304855093205103027421928739902985453914787554496883085525528257675270610264855951839534599433969089375147874100748908034415218514118271327867264122179571303947632570134034674489856115385121307570004767347696704588800109676723592699137577878433512237325175264725180790308713077920761740125746776527787527379295946506558131063983762076572915875352547003043888225575620912350372073980449214796008422123453703344744529125442483248310960065019291704253411913113952781444416604916202016884723565347723940765971587690428654126900519934157614989166862840708567269986461581792720305544143544210122063193705249730974014604424942515106017297419610260762579513654358584127196178308009087819524815377373632602161197765738079838208092511112396416759571419266755395891448798363437302796583229573946935092641006390464767064638063843485624822399330643455562386851937831896416760249069083410080417460323704067984520945265717435306523095974217805748205197282192339267623134245005462023377566556449999793428744707213985929005976444701043077527723195683395578466942928514497843821231023986276745177873351664947022636434169876815800948200001333651248431083452485003976156085050672262299980372167109580627916207332780954460765439790782823810857284823976600113086913166890528725122628742898411130673785598720689950282838377111360323182351737054983871895285937761577416607043629525820811282512873363932924233776843122522802837184295551548463452546752483229039819315868347100338963914208720937925181822328751403971105037354428102881656963258167165229728873991279717251267881517741062407381217604263002714189399517335753185246179237272850011581929043642899504229744491300352554093136611374349457042081686991627554712304368771713344188098499163430946305399851711595323507428316671790998175393127008752582921632769448386189806182155392874482781371751689091090058593353590278171319369585563227501506013315153488874575499877714027045559674429503586159447840936651766263152291330760430457005591965298148776324153329178432530663757281652911403674946471339098738963823783882279410425387565666345750382295386624654505039905524540879292645914628154688516280533076338235421499279113832338905797729667256295822507237441391951973184725335214954128293318047736032731156760062275434014918048131919857798271573842912869603484994100562067428149325885292690225210090188681470162851517476351041790683655349321323950718559802620921015952283437837385117881940389405235894345621173848418017967645920800924402277531572445381600129955274860170654998437525870909142038617492080305100977234421371022435083088323919520526065101995054342557441089114578515177176762640755695216905158694738464405536543998419400090762719086975479404784639503676431762645016521489518203832363098586685360690534495039737446967649937911988323237776632255456804344164097496275269616384936934216901202990916178165318405126089771811584624435119335295095505386539079407027514785746868949394139850366863023075445641680520020489260696583195640028114746984257409978200358442518175098431964701035584468284382636425591525933590938354690403770605666543505228554178798687293701276775895404891750377654744892569157456640864057792480393897202590908781930422726894811140012972347064616349971211145187581734550338436039493032675884297269349850238473655542641533949020068428502517770401092887641930530595682778554976682749673319429868684507616088418706093392973791187741564937896705422240528858639802281496951692191490871790558746529370304519027200997657483680683780734488957617182359479853782215272218194140711987339125179486241623904262592662758025012912349648462698766459542697515992393417840966086247361249342441099731861910394608863767780009934443521619663269896968504174729966590322449020714567817147776032405720623872394839344456751938632284077449972247083338933327889559197478568587119800686592842944068364261660240969719490760675859618616530719931332005701658586153731712455657807743247472864953447653884536938153976888090565514776804522155652771132780879914034298521015960242996615099450451825003844044943216512226676781012241028660113187674581133296213876823031592972158265256494978741445193403167486158595111423321361578570484688070116808861886763139319312169874664626403884214894388599878153164237487378598230210115992709170145917153067185918321290589230475047580096153251420193728474412664645725028535582409657251306915981045581089786742378519335747012990486659986618069280558420585967749500835945092590805422187574741400744404595168236317400066302788057921611488141464975344098610308925240612425713116935793168963453984662843069930806916183794086352568844774900325661070234221700492515196864228996395218516226060378540752820743254027222814415649008462675970940979336929325077504928251749087346709635841778137878091897983369794394709201368602066283453105860195473424459471645027534482753784783830399386942893203834896326307936579681554370148330043817496162995871243955677873401355104986862900630068168871952224693878143296468617537005197843831940176985146012834265875947018664528282843714919302916570596356692351251494931212812109666548082125622042724256708817557147920784756168624398094619581301993187729335584528264292554550088552167741215505385252784900872978308972893112607170627149975966161113302260069641657921346365933498986677727549367993624478389957799421644549638674533309162133638259425047964970696865763778417489283739089123164947932200340380050642566355153829473572371827777562440730947836736892775004646000505196030479755287515184265740954213551926434928648616634573554717740756620978821778282589540778780055771058359771604762644549440961125415417905355516363998998641078262579152690296609363826403157733090578692931599123787352122355108081381587775374751321150410411038491861043457186297948037687756183350029492657900981912106180553612350736097354276927575660824241098206173812502817446953530205304449768170971287906331487620705494452103935362161422775169560113842639631737357868171543928628955373118780571726196303850530920122877104989631224208300896381730528154223006079207374279601991225647704136912515640772062301492948006553943820340738291084941340795335307116958206967837032162665149782352976022886924568467104954254123194889391901837496503410029088013491699322358325500501012187589168813818969270144107235987151103377771402276166988748588413207734788553796283027633848370866309860596134144759668032640799785648265181652627309010145533915171649573063675839948233335889833624131125535326428858652511402665479692432104089684436952573865106425102156360397609970564803470004175336204087800786694148789822140396316370261685056438965386938436559110598304786561510915924525787153023672592995829535159954038152043053687220947382015020279338735455773603657240717982535498239749121722797539538204825679833321897549599892428970857294237068940900042694780714238298189714529006946327210297505189162808889891933152117168720009619435391583931720723110098786957989904732170118973907996475788487611566365608441635034546931282236301695495182625351180672775025597406544589530497624925354948655565794500391605609344059498243645621163639860754648706899979189971635003847982211081981319648811781820843310869890670272844954059883094873742712655091019288504463437193811851903138135220735070111491418361879020759953591889373556716544473019660281798969832606984240404265674783888524821709898152330737008132075300698721202558705847481745054479195280217500668116640577631698098566406298515729289372115999196756174954744525537057790242646197251285835628822367116936102182236211209190773260813105279612614896266568788118825136726930710619174243010403278475313803437417633401917506519246558321651808521883230804009981135147822205615877073425066379142280732225435640593432277975496564124608333823746577649402686769831669889059612648926287983458341039627013621107982678304455088708188301459560755417567698619951558890746349575163246191243330696574854770725623213892922537045404492256292356928630196498739146196999918770914249676120223584920646066600353361989732133121359778682344353781932832877395185800294014162841151533638247872448814953751727591257142714995292125007378357619575413111274123365773026708326937362194881520781306432359110601780165321444977371547628930731444727067184312824276993782307534659783920235119727264252971810047066501105579319267879698183832210980700490189995857064997671015847474548022835745181848775094488706698635831062034033465524406287464384993129010258287683649252033672707346402779120392055742713237627801640149748026158377395857225918957479027851730776451454319583214260603356291856785908946066714485591555567436267153458471479587777854346980088237546822910429063826181880984749326445887697572000905715531774730004144789167378815542890588166632000530870029581417901579292481647416208616051750193125210019568942120982445584860802124158821247592877996616930020743403099710791686256506571463128583800307552859206850537590365065213275514298404005561949839223964955605983991151893781809542864438764294371290925181077047197389453221514113514324855285090264078840891747545245261428611770801889176036603781914791692957735057679177441496681970249190740783096856521600156659368192304458597843430327255068382560026559371118056461966413539731482565166308651327043498606801730186984948857080173986957364827903694063533872982828864011522339765280841912844346937868845164422859842693783505351139878832387184496470347666092712726951207689461123810289216049185166941755370535820233072119386490472436073394601105650498348056353984354956755532713127110624215335469574522331938681716865580189979560096142507765335328736006385225806003601459910417091401505324847669287500147823655213675217421797405671725853245039438915136963795214283386057280224029267188889489168423364676771215761319352873385489704573181483262024456147198444243615056361992093778777492708707713040491582320208286961418600634715348813933329879223555273518330110170200303500248505053617266298797978042605452683397169558411618573304589349148105546307205008459589451630176337314257149806326412856872159176714491553912931681201146175547462780295662898667694812417126290403109434988714823090152201269446545819062429065659770990611603555151350788956179697892254630061416870714537706017650673829087049193636667139411840994121199928270399422188588113857906748075246356276576663168019248838239204364326750099457499236439205715897523780435139664878654626253067251198583452496301711627183013332043264137413975620371992178394885450504539515129593598596620253045896505607764353873002991517285582804422040376913966298544048470749598469225949626231280801903053169829798866666849678431910584562657467235587919594258590419572010136070531032276029953313551311945753011274255400374804798479192406823766202059915697712745875456116772650733098092942854608902907790492709285746618865275745361197133764463993326471570018353163646208787406656197544221036156328846019736313004523720286478894093043850406556594975780920099766477303126895394796060595846279527566363420355634067484277623960954592407143477849752466083458420143947775570716888780745206039603511403407033589037967138864195311414229051438615779736690072063926576083296858130211953331972095048195938998600952074041417608030971408976424415381463906927709624882100572058659213055460891007382318395968408140962166145819807616813956463467557348723172146674030870885293427793890246540824310202991118953507926701091975678271354977303398023615985448472912130953718475047062817448570827921006795218435706649526315017764733292650034680673289860764313990210322802623531190025190457549099924640383881994517127797390154131906018061071225960225700151827208981868454439792520705618761118629436141984801550477245350197818458997727970000433810627669963337162052567885102182382715116100231285443751928233863623784649057884683620062733968098050718938371866788015302776077706002501845266365619641374599249527931867055169793088988296642951150741536329109782719174173953403331426766972222303858252216268163998414413103430183393766032201092179050902099513097615152346140104818934153045364091113546827706789475780970681902480235646940918440247532241200168187527127161153860671341053669506576820876944052762317768614962815133937804635816256895019049062689935303316631276771186390939449101073478469529937343805621529637602335248443651727004331131578179100390926105920220744298419498198981477066302813198689378426355828477459786193631246377790420435316070423511035549763431644984740270206075259466915553193426971556473610745654310724266841429316337931769786363419925740070734905760878737479184745843317102386397224976241279469543499600993038632238286957446961745822136367775258551241049807222880456812345988578998911739442181808644604861772350786784705446436181984885421051150409041027356485246807096894284694659549041535606574959147050326322563374931739508869438462681533210713531591033292107531934281720411779834634135412429692086706979091873127603509557729932568151113497434578531386777869565272933819441238314834799571590228922987947967473307412937497936747100060590874093698877656099384959050094326774688546885659329082832073093652973689298231695211975296295036019632662307620060985788115294563916487521550685918923058344376884414198389213138736007213564027658106205113883897246956288070323439485706615601959419877954401358919299746780052692686350955729058990816718060152392020409441560386755983456926559473963993750011980237374423906004864434136917689357776484671256379865121757112535512121630601255980307353993667616573415127644759892277334241170847411448296787069466886605232633922359202372646843129856423197716374133403322272175485652165583103835734766192385435483101922513464299370961607813435931018371751704276246248200381423575919880680456068068173160908489406452632280478981321505824837711696122701863417517960723847724406800498862762348357581063046445194165623219754488756452652856919661122393561326854238443856189211898324204357371494592561540882551847271944814779853985179169772662024469374281121942211895095042038764204032029708116653966685195730844534619640533193672176546851427028083689314386093071697941018947432224395533934273151533053080356288504415563316200880641915488148774121334133468864131659030481012318653990460432909338568986004496805849606125951110921345260388814053167905481575238770102074691177858940901158785306621486907551546831802370611623857033964074127057556152897520140470141497197058448505581590990274186704816953297309630020192911360060076512588252319312282015751779197529248167453807700179710808639140584593966466105249868346304680029072501075303515271443946586120121022845014589920877333058788026354212251958475929051253796584380961630962106579308485486775900695828053571451453345030299707209785871460933783336687021488408459871247392075410807491942460060580818762045239916558905000469812403077295504666501874552807025558682841941451723604055618683874483134299350915036870443179568901215294255671852548826963978143452925310294602072707379531175304787669216197240250594272445936605217438785046455573105898409269771506556519496563133355020219474447788484708828369650278913454532407087936443436689897162471098699769085857652594910744894274567257939976864312333162414057369567892357487472558747142326932099791004822362311547901848857271230091903282742438376200927761428130828686113794579172232059862938571819633204206252417040511835042764519398157485881932228721031646637023056065219046428752548561874223305818498888113091724801652473563147853577668541760843220494374281835171347174838914695463593252732097961301595186432064926042335490617645113576954425155061369619836120421025222205307326786598201099791047364182698223444473058255361648045385777880503233454473372286976773438131581169593477406655226698597691400215495028956022528682598383325037516984186504993996044320925353323561808769001402265880959930023910324075012125553365673625711934589282690712399717077748780965255190040211176448037397362751489044308782480876604957821953104900861947513628535788375574789593685032761084647180861798024409454135948881133955151723860230157720505501689879914930022332580449366750350442479881621659182434124763795040999417296145274127916109495802203767888682049036704525117242153088848174005733956540971069306258885396733080101666965253552912832208307033419037203583561051917043842894144734968623050570473045860111058251871741241271145388378479296410451701006668647654858470317241764536958496028345704364409245958771176684193702559777374955976311807413374072561360929284928128580324604942616394798629921792924779822536450359802616361373942671066751914789543071815265277014416103104644271838893828569284964743525519313843875706670572839239261903222062446041618156755769961871023760511066647399529045828317794025089416456889612759987426074880814595138301332584617453796930272297933387836227516854334626769639785284112544226988613231991235683188477608990899055525783524684797032004016278808934837739520350654627840303466787259367078904493274900203275600828479128256681957095653009401552612676506150382303869071173459297632548415845074002822353692858687379962282215909397630768304981571776537785318093407930558789438867148496535700410100407864040858406867522127403580038893998185491452718927695268353546981347794828230591894638621415907566218102249819268208385557550727761000537106207311077659688502642037877628153431701248997013084350835300072231144133569527511142317541811818585246910398372094743453659168232746199454450711506402411072737758365742486676407479982678946521939468753445119685829952630371238928258491813978187547128780874364892387454566075378977392773018241371410972005583426990485699400549023097131893058008081657469168326166570458521938157702413474122952843389341012891625580685645171628956650144698497966678782747510741054191399807128959918729619200775040821737207263955445928335830027568471866769003614994669454862769982925594635762573075459371734552178450870126114847094746516971661792937415314758845385711382863686170111918456135579873686171948365956764484568696807814382074382374732167317680291672866763304047480410102797171066946543802785941605557633785985358755902459299298691245140394268859665364172956071520425496111851709047542243493586629644090125894009451321938485956469218978741162966365735762735795439347385680057373069800684418368756545519031076842016241024397043693539160262451173226699572360393547795516493272927728259245039044623701089588801992108037215571546431283549197491061456744671409309940886603806167280747455176494486503129453877631234382616998173035684489364813271209230788117732231490837650572236433781560996286605156889721741593711309301974825913185427002856605573863987567819248916917707362048879612500256584887269000033755414293698505574097222179014879711070178350666858315176347343327270593105407762221168814267025741759513010897364542671542139362988477263564886777730370278051072326345630121976962080903625271832090922767201870918970351292322972238116027341145651548005757447180973259915274609171014311100672216430097687525463420135828356978783114242018609641287968809540929107603141262227854623868757599134809198114669748049392846049370576434276109789293656750008425490493362701108544682405121813804078455067560046016826813218321929933979193959512361279178934431017312639354195446501619078148884036402828338693177535559776051887351434647687865279509253574825422503146848773300068015734579377170972481486382762644835178716588775516849739402360103790985034053393923681595405302931251343032646970375902711959653336824582350172838978749048579318584562636442941633977456295963584040774151731610912186618320396172872322039954608915577484193351379552226906621186822734489371819332780283817144737174550435672643983117530100708151941518856745286456354962954023503430984817416479632042895633865283197116791910176391800240049497264337467528167848899229619088823086119692749308688397111083006137096234681127918623812622759098963703485468083448688623849117023969737487111038489103276713909977380723596239294591115972640909879071619384482242037479691437479188063088583911650959650908530125589464517050134610591301190188645661712933585832835673831249820960643881595705678764300867109544096913390255207572207810499066052174140644047189846200080012862926087472148514892787794480451218483842717226762613342577186208222690127132116797682281363482225050862779542208592766902619002279279253303604921467650800803187839033766701882022751921419701896757738232431521968827599201534620645904123728358201834168591143217952414004832051376011675226753933989710790723947090557500106900885673204552027556192298379345881103584029019960201675597135042932996358197579330526494615739009541184429662750452600184821960760318055087742899194341005669703229404617627204216259001011510162245270004085576853710675005440699062909066299876166579523393715538557985545533555151861085872666218211387763461665578974248173865611960735329268515982870903428880830479508824507553672628244992056735987921875299171958088535343120755835715269678243451761225709274546146838194815096327675001486652855459956414853316830819575734609698444772976620886832830473810014856560568038460742545865722772780485970399614180554380644905697107267750133247763291788471892645241267123916540649483532744488149131689714215516968855240960950649583698964216349460569579850610128928214596871626461755657125661679954663527337933648558329554224636680147948200512227053194107549803781823863331913019840641739992232205470599815793829779000886673003154076067859977461961854243296174991794097631755421901263089987261537859246976315417684644583975811501148578497695341253659387937481637980213998216924091100842598391415536719139212012136516147455198636418133232806636688611385147471259309962449282360457210037242291450431824584423430005586757300285703938798799390119344628456997697742624301315201713194020600450150050190648972288324626580902302403462971485566908909598093560948231796938429601031483379730897945917416219115193342917965855223549891668481237243217050290484455517970401352295723340481843211083111438733111250363295964049428890010458623212843497268086145521762164231286950403542394768370326099816697024368584096154248869191938075858609114546433086469132663888641274004206276230253254106346645578629460665643954795433790609103536119129954464371205496075089721386930816738893542553006004556856101171580701947865872159549986597124356626163370163549300959517974793252320854591319021042541357788908761584290135964380164082363611078096893802157280505680233670779813181601458634811252416044164780889918341968578324436158404632420826708202560196625055716393260379846625696898204474385296742961586186947417660645175801082537898484617908057158980092052686912111649467580524949526008116404144507108909871947057650829705139159324382316698943867696987806905717382792059846440778872579289655353652913391544080254075952505729597641435952601066947701277580524406543714551883275230206481292166460801742921081353197216639184870829246924725152402444081266946764736047507744133205879124107995664380036267574965720385882771992355202310950850949632654795354864351124057810080435349276275933068327856286788335118582415918862983953097128562583574395431099869414221742448777166720846341466788791661543378228274759021017418004748298371061061672628127799438104719618871269616711805837733139634629013910823141596575600757887204998103443804964068740407100435902057490375119216137166212124502528272776442205896508306096151450057423833767777474042229408781604964813898009731430395127056898667659162564257240864051750683287104732847156445423331240913148974187229515666585299707297175390262110537562248186361510033366020682430026510230860085164681708824960693469754247389401639789022419238121812411322905159177931073894491197092523947865939569949031348310809601713766998921581539578275467708155036504729470272477083628702520402095658659034262831157272234555057109810086248750208834178583069217843726686826170247173026566154729472448843178741087788659432412528188274809825038689506703176351700162144863056029693773159799819880889135667429377783527825663815614753177894373636622393759898978796469686564264019586035902043921415723937849341466910703943548937170589418838583194045141760647538873888352930518768900511506827726975499469656345712757747220816757633399154353753851501955783976085929283061729430668098596829980579618467315453013348885056067529735597799194076941082110916040066326253492043045257807979127904592629358887169537880452926804677809147257527048371208199581921650617258861618659711384601031575271768369220913925309670306475638996729868450317754488965057571772723641617746034045381450723846777408188659320389662903676596783954271873550231266874594536624860758363199124814741020280080022816328505774658946568755708340545558998137205159396566999668332996858283780741387639253411399791866295377777694341083819062709936684918730744236922767971652811317520309977938295929887706846743571907487799478732433631886838813826972129098936334360451023881230124329607365417449422489014515395948869778242748077904374528680608521312524470659423960719294643056022563968384228098971086083629489811714830736175303021505876593073525122736998444795310823396368026315391970007669287452335864537583469129927926146130225754421071790657053517167890146631096185835587165761254105956222387182545311134932496844431737882866115797306089338960261631985096890052423353016933496995133057733005497556943227187617923950315466242827951183990967704349143079555353899804230678217999388124408773213872274269881911477243215857325155180077798809135706866614478675614836201883768916120373945438943846502303718749261811275458837259121125186433192766016140325499200720977310925292871795055294615881004899944725169091397069878300844275696614562644920757832777979044551735523932378264089962227727754442134561031358947408576945111433682756052457838944451027234612423723499662975672454783360621238536720818740493050883012276505573747256249687547397008274864692570874896830950036830688425000496035420399990676582026842329648539647182807300938070877189871707397676220403022479637052259328116753587811593432269160457059379366473012392029188994250003215153005054691456110150197139669943935212318216515993614986042775878073746577754721422015994800795949520115033177795234934261055288087751378777655336624448464091698439665596299302533418773116909648049724032293606010861038666301387833961225553300779650943481745080715026582736736040533778939051915801560332912955856233398533746109712684685381950591555376459588819532608998553526067338224263017500621431367846435107155746633142788520825787126098064775106320887166821052166835964178714200276797405059643954282414051381198077013201761384373567774748045790576581838087616216801992354935342493217702277590947618122154017235963368248142301734315692512859149969990780885087547720401568753105360020397978269008513249460928919828915764117100093748370038736513600815828886311977063777026166962476411059579688958312047870089105578133938859607316958194440248485591234676579342947316199600112510206284231290862568814643384514676439769251527718385270307618661653842276811363753952217727829157536688269882948085887638724513969520068325401093458038206558103195278158733045853242381238316402146893661776584900820827002539643768243347187642358767125040189718262621921396038514112529009867230436572427163149261515350932128797415723807002204100590928980097525372521272802871135162599469515106121532318792818709705810950128627620726121930940369819827442772310891358811574339315270665317748398426995002700483406520833186373758656047527038785580289782325395791363254264664926846408243132985509511438276286407352957487517875851418919488959535478192905567049119705544337341666620406345972247752336936545799302579751941803872263389393005094069801241556248280936631603862840317492672669150468773253348498024986280106219162830515136131138279960617681276027791851762548781540252280417780136652962880532502741870696236386792183108848377130773390298175924069081567348859332624516401533258034863087004771494533318933820483325304746570225399062429491122973661187294654672158197827588872590339752003567051682574810661833325652597559334864097343996023074173623437449217290221342880098233345904341664690640454364568975217701873884831872638532536181587422697801641322366247993362810085543674150804511196045962362788396477671127588043740999072601377494744124134302985092603024711241146468238577678103181128026577423449100920070555266993703036296977859400531681230487939758595936854243060705542809609745869900710188218172846439057135981883470930687724275236632040479681064736557073290900122804071052501280269005861893115402539812777895609048075217892993450042579853157390282536486809575690884676828766463660281487759147572315695200703640263312607147392425305449421098083724072500958975444042523122282688363254266971468714610030359650966111449017417882037635473881278862048587252448231225608168783096689893724643451305717210911568770178702316412330080354542677618217754552638630057777272070339892464561949261629487732839296875633113129450665575894791194643948785631800138814255152091407123828538710946767839154960337244411058355097871205499333128476537903379486900272067485850804742031435583992163713486015112258943405411012460126675799461253202350258381904630789666052167371591084891011775466886833607583815437248397785173872508259627333215772136267209967596300126737572481237387969736346947697930320839684153599790196629472710803616196027534511409684774661128557068263878570251819477991125453171442620606509690100828846469030484365454455136583649954339283295407876314539833258512341613619827135424418281286373231978682971853438036887689257128213113663395386849977100340959903521199127635793657652001828344020617764707767486361400668920340689283607029254637095775576990262325949809835264167139529802324067016340955451431976661920692700074214618824651675849040413259857246845704463701425303574572895912012249545472261508484067255588562116246136467485395598897140990873566114113499650302848571284105418366607052199665330619675920127934551157326626337866641821313080068656665064024215175680008255583827227485387187856686549759570630051535129008881151250962582581566019477277151220323095820805517863094763050147321103847787543971205950694777475600022674888861616809916395491459022928982261981247892948541284203576269552231209608763779131399636214221522196817434389128754225818567862178273695593565402219738349789496156185508085047946375926972964364031021511255634438076967654055054213020737685898151403040292439991659959226242586367278872372650748214325414044586598420448263961598634829692951401598845955334621552021496550045102249453502918404140320197215539561401285248796925925323019656584507515142363926582951805119758668718000130951217707648374007718834175716396529327914406785831316607373413444155066742228878799257518136913303560818671942587383326304765821128995767661438814595219172932629016716169208380324705441562181335200946205703124549585975226746742527811133173179823772911617058581234741368507685883123588010179567725547617981273551935739632432101371647728717296040834547790728716335272288282299065840691319105506856071711909644406584583304167755821614094136186666273498858553315061510320565755012547461964416777602490046008337208065641205669858688332898557197890477574288652171322766138561723067822022138851464060279981824010243690073560366891397719602076135654339168041474098042380746982845075918605995628288850453680899803099470647514820952570835205098708122160955585789302940179812930142732120128001342341450424484447704950794361873085540501463065063734718080881373939516706135140426521041823055972035397033037549061373771461935117828479092939741272967928885535574350166843028662418685717513684679971736162687784836597375760294855481729942056953484648142419091244893044037187912957318967520791306445262837784954593001810515989067992674633399067221937991706751666136139227044156202705925917162065706008851603637558312418230120143651907725991087874008902502277017521700218744342965113265670915120672487735642281673673678983961561426312527540250613677325665013866864371560470448074695629625219061314835326494416940291144234178874032420710640722696537011924866390803211906700020869750767575587109927637828709349654255576563489103141733589610173990709144307773651624378541431203421375807035415245502141961281623903866200955760863924215205262747268018449393201260696456442034398947068071298257869166157780570745670555831897762940980077430280786913298160412576687712736035002602630321036869941757849701346292039862482435122005518851439556827846868061446449409243292672307931899267309989123889858613461178898331158381839216543429693045830722832009720073916060471798762588237458889209006666091664371217409003951096834921670523333522603064620494256909579715243134769694599036985261885562861101429187770420946847027948698961773782297128310670653098857501792591295865596245718752717540924739783826800111200909324086515664564206404147350322985004706071207533834768669200819815160516288453386807400590830750877709555787533235735228227846881501733007653149386970564304236256459285354289770024722550111097493981337808857956798871478151575378010194900007024773636548063181451813469420884043612394648077458219361403282010095935679869936752138642238807499112323837173967661320865012098928352820259900221803042127404396672863277363899464090417515597009304719857778094023764672017312704978284428161483334630215900725958603615077330733684363691416926054587425436173543269630245791270900377715973992691667417719427935409369299059262010655646083711254823048667441354590945445340734073967970616295724826489165973229575755552953475689981221264865010570924436531864646159750364704565643499088643106879247956208033583057356118945238001344347975651725827746388401920651664507927216433448712426952524266441286992900125629298367020562076683343842483074267805546243238646281318440375101096720934729410472323514956754635795048933787599591620064826731961270911237271561783161641475550159027072987553950148946690101780207911575336861273259426307093480849435118340761243725796025682864304904958476958399245715456547314275456554113836799480959657914822366943107113300302959890008195164705341526370922159027880700043018060792359014077638568732166588317531198761601129243872653955606562315048086695266789196287197746597035322919103717795818804429641845334793758856467739010707599982688825401309701793575168287140251402144571387231493444219836190318176751503792885791952823439580662331387801914729660389747990359814413023301012316974138905668415681090888033611101370076944800768820242790208556234509754917847670833687378152821117122667212049690303255773794182793297376365871629843924799057122859486512785925809243229440951187261478915251655324429707534956307096918748385091115622340169500466629704957568374776527677393007973846381621552255639075268000934336948446986563240157843667993474795438687517275430407259784015059045661426301867619454469816186317370230678938426035637680405353091776941664939750703066407029198501624157588094748884699412488712264158156064146743262396517037568556266520879360194397854709118745097193106708842178538877391452788983596810254792670915863746962172648652902240149406036039381243147873580003124375549549457065530568432290137006915053037825005847090975997403117005404300663069304946217605545036430287331876789256643169935629653141225899185080974180907610571674214448753069772680129072203994330236379005296953975659123370862761275586326095261906298229727017556819081674809180988241654735755492588865418559037575986650663228515839522904464074310264097752174525088770281778950338028914911994500842783525601911947496170223254584309125590746319596278057398429738212356034554229788058317036597336667344418628756332720367078654698188074209829234145220492024317246672224089927833090992074455135606104572595938826143949342533844017521143559915392730744618681262079607289933502598882569068238897650872400051275523850300246694072600497619867165673519961607238739689931979591867363672081584228833028513880233949264465937448495953895142816963317538867736754058235289505316205395589836790980778914423874234004801550642437265053794325557306497535543537639996632258475708831334698101884661781751061474973682976267044481293362125211249830900732708613809820469662078814302322575466773384306173152848569127086110173571322231545154433183986932208715494082435853861943208257115508082045153423507197903926699834549824482951900364286016893234402546167687785808143533144424828359173281990991070868907614385078569302805259184933828584008901922561687057621652466501762070055742005486409763379306771669571379101836211669442720627965082303735196946937326398935967618234419515600855290306414801138753847467826107557983237952931721375471154194672777464387082258225615748492425582993443189425591870286336836590967329206035859163615058198840000312391579830294747149803837793544151241741584572332325968839036369218945266592695613345860064954157835867203521997919711636419152102827188064883276169239879038971810372649093263011789461414401348765784887509089979682228358730350850364882582468265515282394639415158850114769419114284216474492279187748324763791493182802147538956821159397675968587903078953438373492048223977328663365633292864709392868218643906786910245957402493478834010941698001672447655238304181998042350386274004517443750682865284545779717582997338693583679302431757735443690496107707006661626209535846383537980702859741854877407675947725190626209079173856721372333465790138238332309921545694967963486631225712756693587404639034410358453271441748637029261107480166657823536732960239357747903808907798640394060205905505881084249565650108702234340769756730943847826430182560588649499452407744242672525730431222168174049891876815092714630717826360940172624900280654851845650114652307804483458209516677271484271752168451836239654297586997006116889185631448387712277133725957643591988814182473417447582038076556805292481613044526389413267618251969437118099340456078893335195924188352680011380254640240715254131140469752750693739108845733783078776466665464452449368897670929095427560032301178026498904220096634024539932124420275576459462862216560776921054355281161862670141427473611572254547438102202465624232164084105111516401162646411194196563165024502238995177066550049960231150152666684524043005371286966545948062035701087472068271898580170017024780926422956115178284817043052057123564475144252276826180704960893147628161830970889338875143478901127832930145973557229827028788009910440867488093672754887213303571172638225028997372005923558042085577724974676598298918485782940345857011335170880979313436047020858349735931478424223216335709584217472159416807288266488953752609886370964784248614005310289766545016241503192199054351807340908358502672313186453650133057477027982432768353592899754978560047471026848967983654636911856691847023774214761058076085149157282815580710762517601407382951552877948931714992951090663844949445341383145889251754222149058087819480922631603581667599152029041277125915901805440764252296953838900271536806911556173768185718483615557721632839764854902701952069633842648911510241486520732522901743542602266402308598358228111792811949134920734436700352649903406456717499703540603483812992330289747272960297653087676024224251466965581399248364829964120192803324021882441279984988150600545870324790639167607875484069116814304961164685687608673061847163579442303941629189728389791051262875471467476473532089920093361186253299851133260901021401205863915470596410122322315853373735263873114606991529672467663736880873746116302818645954779528707877131166515646002028725708341738664301510609149144934658873456671430714490356195922469995586346700624434994225001241877917315192750155707701112793513902667040707719227565591695772724616031396876549723381002124157661997499884419773557152863890841637587003563727237947393867436982587667730711141138422411326462256818481722606345494923638725667999027307751514396717880353464051443425834036404888572878326788652332277600995187545151427370365362979684116454059658556937191823707384686112824560826337494519813341090813329870372987468971913752189728707277865796628533855127248432146330093456240181014190840941504891795651456715961934937902445614108460900809482725810120299885797109624613271667896483530144018419903545798590124811235274280242223602463994478443113370412387298974375754401354761963980493603191470501642531560585860464258286972944689840837562472159295219700510407641326876677440918402302717655587906877206518806407276055623830025372001204462151542213037114165646354972496093574116810456371020807452246083522745669421886113635834145217130672983816347576001625396756610786722824476106399456397716241380374702190042073352534674206380883656774500872165162660004652838633918842940455944539617896272694446804000080674699033045690940641056071176831797275800995810420314312152379415867244864828153057452881874608778202251657110265878259803558925630410465285745385612940707068273193422027726229223454071108350731390597662966659690858622540631577664189290787859066298445504598673170447217263885621351510237242937313290367836883286310979155488384977034683033213277749848985302343550268333671022709429831263180984389444441836608252775672353221582759066096304502945921599049599280115852227895079498067191496662202393800953897175848700873927661687263775080084534532922354214897222754890075024109975976356177342049203068183365779727432224752736061930102540399572852258945896747971982404997623714420982659668391703250731048553163005851426352485095066418383544047308352277947421375341247703470328637009627618052818622171561085874153315769316516304532439059624054920996110089427150963723777115723483848937039505617070027367303445537092258731946707538325777130411113242446151035205098388481612731191065695589144841227071263603097599762410288615414791044620850122905588204173015095265327975197365600490920519210316914602374602798837256176484250683476979328029710635804952564133822369411718557264070608561735071145438614218892364669477886134732808337477380329796320480547296147223379081055863446225067934618365927429012546979491994388983990696816118696144435510221562798125047891536602206031939968148050801499563566411231931180212351524073150261703707427659078773512759051671604004370628852250194170914153832415226405819471778006079823496151052052174867055011061656998802386779953608192195059547504250555044502867465725725655341110107755327176774496913144661057381969346701686331336005492650291661599586299969953346258010862658543232968295214213076936360779722928586647851788339282275492310634573373925329678451066050709699803949957661120526969146076290020880382132052162386302732654472386757575086091871674423103751312601810271969725548972358348486296529792043175692497220563751089593602218521103750913917100449275245501826360491840439553749172517803281131289509674613388957851027325723971550957279074025845543084504457965013710049019154650423470778741169758754443245113003794045151275257248336111807533491027119839340024589598218962326058002127268900273335889668037343250955100547287636818096261067382274634453122746391251734297176807763537979169365857231562296426291127192409004170621749934308091653194013081821892559547181138622277086253707163766269990268664551838705821127716490900342823236897759868853561078094278347401808846366563567469863258070936435887102909572185225409636890255623417935120795919622689599372230146163722098220159184071762280865010002142794231755597647587588211760241711258744726859384538519565316977997666764569574642370518280714211957389144556461210227224804317018016384627913691521005874765199217177252189733203403025017761342505170049901157918021916581654156759241978406931701177418503481526256129935047697907136521157048720364315578796043396379397718072062117011474153426029833236478140041220788734167860097038506011372020518640177912220204272269458947354830678873528055893718307988005192521278287353352695827808682113252138576170811171798862630719506217358091001537163513533980567766750448259179081278388564752270365284544837669888222563090089744129846838943082201222989750382812928295010284305305065902872222361086342543565526713013171420299080530902170495947719515374952373250493931678278428457350452023032551728213981276986614357441808621498257968184014777740846080316182156796301559283633555815085276441575932564730569855340265998645576334028475740639859878506645137886881830439247481408552753386828269333009531866908497680053440439646999201456613824690654298838801977679050209560294290757852601516699956191855004899199990421451896081941146372210865173546328314549897750677212520024047427152379393532476874912371473271493064992307942235369266670485413417331216792277582211057591203073886290037217965133840639820536244986588945011145339978850814760030916005989893228329188198673240237839536452534299906882249499109748546719219200710028939574632262170921187737294175827160342475722994816956005515901842797237717026028988424776568360453035238501618032056202607457962435923811857650182591905301348861229910614942631359988821487070293071003399662821188735360298004014890604746400703262946307758685830076089131608233387446808905833167995812940616942553443851153369517224633341369021067525118730197182681468279425323779636127008063593038875232702217104244694086175064489437556007003640212599051380497115863916362413554166456094623330640688595131780663552340343944708009585377281613976601579037964892745236603814702195617080946486529902544696667885592734127469177817216538557515770170839574777051346264238585108074713687235046873344519408145110753122748775516153533245970259326286949581991125399136689216470837698950012132267692551421418594691188238340265822179082195780802643542488028247918447088312090572485639026364684073434335746792869227151972561155291972452296463751927063517743405135980724337533443787933616951894061301703668100743025084974799730453657500113476219091652846110126270880044026396743383292599159488506599181562522943843935889082478345972988674177294717598848366278456545209356195025535663900264821198990875270053638469734874374079429391492479481890078974064491090606869634091491785295830984003437671219320830894836557476691724162652881869600530071648361357898032484113462887207979890817354210135929927249815935840473881160889556511248171633406986588410601499681273513897926367148693646851611943085237871607744366166448219019159246631814000936254813722588202946355802616891604205834556389232591068740120506536540043089044115015224091097847098967784640683381026877364384944153445856129783797596635904573698349836274401848472786536019108466576244838581296481954466359055583230002968195187458939918274390614079740599769079803187698227171077098077609979104364531923614637074714733623781133214007425397036041194462277180897993428529304814587682929246970638030411393784194812255152682488484459117310432633698323194727531370541460711157305619578476299937411475156173811238339780577993411799641681043931854634821063412244928977291783154101535521093790603800307521914652145095566535243318361389744830873587061014557423724242073257210396559845729462305675813669245691852521872324533524820463692107350195403302629163456315168486136897134386757353133925316783342592978170429745052169210513013855303710094868638085462527743024967206906680267628665706999423327209206594585649430699180718406923781200886630789523829762314072723466244796083811281683429291347197922157940270288140528112018797404294030433012271129442273734225074043189591313370030873109909870511455947758198690046087761584204265279863237679573729512662283076860622945883296423675935571508850625309479517279269924209096699496534222969183693023544792147289330511143101699112138645230242207851327746966988972929318499827215489076469678998592974258748832986883246787818756679158328631752813110178466969162003450656161903352754406534942169619362889387479655744708913429792587196107633802976294755158909181857444857085410736529385650083050738057126069686916153593460887195107504289712996780240075445309263137270380020312449557297767794435016826511564350842835303138810094564409286333837729853018141900003099561030531851765980411822816531219121866254726618936999220927807200753802329348480792981744012742714083128968450452613125236154173092289145876609496896422341825625713348409614361124025315338850660049281054094351641432709991348735857810585631488281256489734297057251974282517356023176015533542543525632422114636044185994313707846669119565167989890299760366700914943156250866377011732899003201748939492343812792714409323172067329962556026571079502696308083264286472355998092488170526218131062063277919744203336342955703053437367271954969548685602493784631325169284516872981138328371508218951550999099928204187242476563112430703548275238899162601857049853392156023718884773566749478954835420905777673782564802805832975542557635383451752028681561147850801097817241384638976243791716563926700707873561228690682726618561684838109104753208798125547644339883910555051759541582101955898532567588435194927226930377025755235642036852092049974119624662867264308414225792409421772212000411010755620022038693268589435193226734958409726438108332523816648275472203892820734285278985829814250020000577859091180716259762269411455194065443028781572642104039436035595684479163618174766075708011362482918746395008281196946306207779557284982577782901819513703440506339642068791635993364213436260313981763155114498312464424822011787450333733264854341257330822962848383052495349502619327428137623658131453311050955600296547851868022822512577810507505861242320056262978748047834084074874936865022379236590811856578915596659186114237487120035553764442293368927431218698426621386449076603175310209884604470420814791285212424067365375080371261905451605177209334560199469008325653283731833312779233010618124817475960449970423587367307667255639225310017170549152566884963258195005071152631658165039043122810318732590635657651424598550552244609061014237305291708495462280553694971542848433748317017967352981752988446269236048944847378136693937445543982372891379921325063604385987613113266004160746582546834957155728617220866272831200306432635260346353612992218257680734934811585309437576392368620393688003143198679758830463750449489480760304883678304812676508590280139858801000741570549520738979103224230883859960063179499177200090115697086381038258425696466775318558641263384009176966494320390055757278853450712425090894799478088827271569818634512636701674469319665283401063199868615796314926525863840893881138539648339850769475930870356799021343472265877118721215349836877646046543372157841114890605510397719736555086078219378304202216800441018916829914316945002547616768766895422104572779989046336459063671071131945668036298702954981183029626264404726973011242230662259244380137233749304302125601827547196134315846269219853750604859599120077396102319251563036871757811541202205459648941402090556331327537145136327020945127303651451675008400611728205924294156791504105109443667379035412397319560468273400639851392259951004170413537395421820110546171057929713579294691331962197698447067944510613044254180241991528817492976953386392586399620243662618182479292952893106018284714085820060939848701758921196160404149444577832054046335206158614750456970240084599435970053162376593146743160224181224911644850322368428958417521927468371735265062210474558259653407066107500182551457252510899542332694507013108976430778680930997634826113741196371029305467127239328352690513343507600672001256083331998780826944893120878007575351733955617691639228561807961244217700952677921973570425061471261868905260042598653666142301112433199379744999113016212180505588481723541045927339607218868167991358291328626373359115497100535112042822848100134924835296308505443928991231188570767027251320071398027228448085804424735134277308051173512445602620730227242670050700051132662576184125200982843197565714759252912589256038920536837207599936587277080424788729173592507438078902627916877876931030344849822356568256356367637925034225438183365507005965412050308620335330885175432267870687781783508747290925145640643247243734858268418070021411270537209776111114946083745945127303027065801992720978011002176088624807534249731751121523069659380365515731576525212331210799569307546270795285880972880850386073713549278798326174719775031342869504836056339007254070229545748209641676860529886198784783415431919354108462840714366891166598845377140114757434631644617981534261949719122108251029524342243018812967186497847858021384506353173769683937387059185242976850334823509016895707846657785555540382927325908889149502420790720029213042638599387196006127334261859846110785448900089569323280241637007024369357231054948475467490850972321901941635079129572888617574235486492724155140873528150507850065713154747125204497428524428077615599843161927449754320499080407280211969877627321155797392776803379870169204321451525765783813149506342252075092677853811620430918064074497971153097617293935973482709863954121580259068472904722376006421815372536991878811087773540376011792635618172769133499664168005122153737538869708411636328823216701091068286919846779874157944484638518795036485723006025870874206662355856864207137773700154630584480727382701495692532677758412607902402042708695888903270228896367933114958292313612725290268118110554485775981814303126750527340209449553589834762697674636356204270783324677358952115570752384358013610449080165032442834915381600881752019902776094755868524570773666127100719116082482729556577324478193810168446787441966802182872705838694344716434944637718521123481574386628979694187575401434220663788300598926300389870337621714146377968467256036852262924720123346584217465828552262618572721146584212086352478236248733116423169771432168428132658177912880630827823985506698473456536127388380891594541272829452461768729732245592731846096186944806072791102549818028947494226436072089063182693339408049522835897689483563008606734951674662753546823795972349936716231712740072267241357952876454979469747797211853390637868906156334500558715782437984988097803879609721701541728191164608984186366133456219388161532817618465809226789373755466766422866678137540434548338958132461041382994139583187528657866661731448706670831567634759193495019309678968244011956751433947892415228951022967671206921305862476574246007315990616289104478480205841372052589205909520835492657978745187370261012923569534578231963137449165471627468896098953742235694267742275763123727231668970262832559802015697710245881917997305373003902338320576344204975769665091248171434858619753685463578850096400797383209915942118617865859507980776175447179433474874670428059204504078309978646124385418569232565347032434415009069384468848399253358219526826797068956824156251019523353651819339261291387291811314743695468082325836324729069869751509350613035259588286863213801594667136540214744291368857797331804668538982599982776670182484673971313187793671965928107910906302571607734347716019580047346571606633250686858140094378327632294854157910270787116341951161904840515620176211386568055166757089085011434103287345080190601797125115147793502400641279053828943218309452316185678363243635628650590204242256365093633017419898184942095778239891784695266642670787730737305699677059512643573279812148023893820896056266346883225256257257111785165668922390501196092408933851042726890421880908728842549452462361764009350415144315758414924012983173062506226498391428268389741564012246283022036150267783989421962959214171905583981633294804502528129804310544201865011653033461201223808414035944401318584006645975225595358594006760241885928091777619344650309630033104703588586043976911312893833289283315474803900818198227405415504311023989249873552125154170864406974408175935890851249108239826270881991565720861970405609111792476221037423068198193907674214970791881943549103668231496395333236041091184344318624185417181718271294924518845810972610304685608824919929477697664384691801233886899766223185275173482006066818177422802125905057891787405867501251960798686148169784238990617561946160178719974881706015988005351372657970046483986711032804635425191194647455516745516128424746109511790639442773832233708192639540059613328763969826800430324094595875881830970113652309792913645222533934614633877209416967925483739017841761601515017569215632937807515025226491648443602183450825048004287260501984686941778404573908398061680878135441936322971568101039371686032435142323759536090572990962056479454506055003340808332066544676859724191628690664393956834839374060626388819438046561071931765762950999201802366665065186752984796869292319552262845159476541546887681634417882949433150781453553990843087288955496167758428997065250006257170940452610211072445655782248520985362000041420202958787618898171351020609321975108515765264201205389709496932915095852103035735793766141469449174554246735170735519922916717019837932630599055693883436133121505703817238619563898223991764957273494698693511707432488444528594034309172285417742566670784801530752796375719399380688231967381321091584372766183548767623718255483624456506184079846073153416291993873212937141081874403191076968936635197636770982457348123117829133372101557820905155737627010297768953816206236722741762781570639976963570547739964853927351397421421404922916341944577795134104767911513734841064701061020047383800830191560173729955557209090490268235219373096278521287998261707929339595458590521431162590152215518315028672619157323351574951583166119263954019096860544990476415904299166290330043981050764601986283622548027923919751152981579977587977498745344134440748764669104302703795953708708496355277290924518663090014494631096309357853140286653524861989936110089056627146227588872728114647722751719438346185420895751406770007016580445960998458795309435114950197367675265047160945124510062460178961426504822290224962285302856566943577818223474666924001531837211058766709962702064927444196213373020247315419789219843260297129304468527003521772827400181695397689731023418635434779287382396490912198833970470753295241403846265739053863272663911993802461099857624466177092538668107146488724466046182967982618837543066288910114094818034977482331872655752026940989662679963114980355933327979001479682830996040272649549727921804333506419121133511944681631667571091809469673428915227488732660726911086769417862568457183908303702276180244651653306958276037469114727974109781160742785074539006032467010066041700353476638704844681120167471869607257123253897276966180386262769984056658004315818463352754511378889398593686628537781601915580875871367452034558259870726783158901995570956401035027500185339919257022529144816372564407358544545219420773571314688461406141000663816306007199353262726553480375363402720409852116334031039804595243645016597185126901789501294591671595043472069449834249076414799051739238710493571302007313171267371011075730159016467956570084473790520555635358225883542051551578464959261847887915134734154675102766972162457844992696051846917620968552266116172549863043205356314537056690982771578614851733406469885839449042157572243692590327649956679243736886289033193110986137931931500803947136756891393394411409300847773014243984351137515013911805070873076795135615681981545837261433657211809895072821980654216616807553986113550090875652016077318484363827540847631102699533694807312381013094185083745609737216039749882857073503334479056355574721710852826774690643264246165753350979857156932817668440241209426989392253556887686414943168054838129725955311798740773539882883469384556355821834055435849814107616545361101761069581537977066699565923856452797481504834665178353692399463133803639970747595591174777729369138562504413451171533279912288102821375345247266032642928277874348652982440704963563475629239082804276460383624611480108081752732440903136465282076185529152441516035514661625979915620703853095492076933710691174459842496376237223459866166499401822316171967267880252428544140368375414775858080364123189823797862092008217359207088533110931094562042440074745590587851923496721659652316453900899106347151205309850935326916921272729745443632744638155854537287722672722441890355738469139066548911523950893510000750358541460120989224680445628308329599663714025476605856446839083819728377637701652173965097058412849468576420958260618027583732932127644136360331845491743199194878880946553369665010085714086917598203119596157217449690353127239198680859354755673141537970582914685849426637519560993415263122051069807130631620670418130873551371775097664175835130692201711124357335038247276265403600056957014504090783618614387669199004909325806276346347504532757200044052726582070424258250575361258632813673828857214931508181609220155918004248914056642400259868815569435409848669871195816622606992466083129383081053908453888385585923361852194847470569741215160065673721361290655919725812915581972764755355403364064851999329901412535401498596601313341963417770084380234486083491749754030071252586393080123796136959553688638418502549590008053454446565026447574817946196184120206337046980658360950183208450798302999681078799689325961054791540807010919679524015600690571181551635603409789336236018005857361369439664036464626645836341965900811830735546349617975744438642332276277538274865812258989869122849975607782782548202374167505346402729142794621693779472181597588784017705870608191445590459579801104019652729159254017404826126377717996715351638169461352043770529999745657675006747426978852136453216390196080467530825253300366010362171809899970398934316723600796016562463666284853128673824272908472125630565037285773320693248873087851060641522783646296158243485128106818851986361158714208444615005886106169326430618383111667742821109525682450344860960670897793028133043189109084868378580354882357252246617975740084860762663226587839781086914784644955450988054282920276216646823391165570471346868567193577305037674008347001476060566169055962475714039117828686259011165213718636223048230319294065619251819996659379545549332419158078046701724492430137797911435634961746130159233937317345830130730608400941411481530798377187703019771563067262163082995254899651284732273906481844896748941006789271929630623547228679293537099058036182346711139983546715967831559823768098737894308205580218398463483065641202437483096634618522882141831825271385939990729160410055869351801931234377441074094084045705429667029255931324801610695203678334057947865012330207143281109664509801613340437719071078027429913234754628276440175935126003348918593065749834512726272844670832141008732435069447947114888801098188780879270497514603081374225870676960561285407580694062865824662774240843615290777334181109587352775019305025798505787165556724376760695617280874031540870770278715712852753243138142835003212982725262075063534099256242378795459188147022255778701187964534878578399519584498950390319695760353445731466025069178548324370432388678085256062984049041338371550884792310075023108992900612841875056418661596775276206675510515990807046668442888262799348144853389434982728908963379150053662078576477584105194642497116515082435339465385623553755152653452389344037642838143815068696005614882895056169589812376693138431209795198935653208416339434493323744048725627228078352526707716383784879990200406310644801810656005387888148255843279286969641437510345988505247813920724586994812464705337329146697840766595188444975258927227066423448666246287440036390350950225000077909660578975080722363408741754044630430332573674597607977600812274311825924181968960386147885653520863448954914400250029756583658657365336545724179322806704997255699648891068900861041682848124180230714434289037051000543698122369195978153892812660235082865550476617731750258458562051624343926773530309929221296159647938740103469743200598306833624880546749436016684468217084775005758602511279677918958613919546205583606328449932735143291494649017589318590426783607051578471544644429382107289695007254404020680826310644979690836227970271005236910964983328433365336955066118209780559134505470874151078976230541647208231893642020519441864206316986362856022817090715233267569384222470877149526387209403734822314256919345546896774590925598924845940514374167032848819226440351552564260962560296104835567500420489838344030436261590937946372683929376105995286340270645417312799192101227598238763927401110260189291326974864474331518113516371988251474505221917622679311818936936127434724974024304306757260990507256133893855192148740948630805401304453288091434578001338754510227156763232990774592538174950898899436426826405779726265073713725574280422932661371504639132747759309189502810175682492064564363842863848355726563772277425831550924034574314342834801285909916260790162164487316962723646552855526898422507970203233337440260683436423377888567351895550444655928098094860424948762605507755656239698805470501788574293793431675473028042023285894936290936569339192711362729496600161131550768695149036110004441222288120287021579741184282072878015920108760840945624993527501661513175898735537491520086405953957985008344810327067177283681010937233026599053630640291982041491232279461563449943555252150492828851245040709677509878032544681160171287208635709615193146470898798783020786562654228707481529078480558264421366020111160489887368741296476849423333249346621675168739569325769983787185328160088330835978161327104236203877185425497810490741128090095485386648841336415451966965617244711221697946754640210756767376753750192020084275192909043216952646707768882674955973985023454413048666269396625247925192362502475986365817403495369102987783752789590299213001925847524425807267587277710676819084952523848405062941571494399664472279252647237629983880829529046364817627040935158967474860691326616808639531873937601976695094703455752614759119226648966470626607941788941034217856392000156121348922204812006611586043075371659824254385906718946220228264519571784326203722241737314261340327296775221990738162637811712478344305485142959930176216394780279400478176427972860642729777534839790015149431968196289854577732142746898524709096351006402189091779270628729237764009148874342228062833436765324971164600426115304050015711701496165114750850982503313841887718800689995627830884856274123437267382241611547810214169417766617477734898254593251038071024868495062104820563644528940711764207504140062717377329735644095045448830181680245193286522133048771592348822221093191527310704606480717588163586040448219186785404335076547446574372459676664574863177786451758350528883444002836301865594993082769724779540551526000915854102404963610746236002665538806797639747668787265109715924029300642867199092973346169666086119639400750055182789900321108761948361998790136798782569869095556539760439688938113503945128509026052645996123738242954380792449535454363830698343310494404578276231774963717434344675362349948648034694547787748154196678435491629478449602354867684100158048719809977917565213262712620424841189214593979126818404028688706897127868045239408656423528883557558933954602481170934878993338411886955414338429321324544326394936674190860404192784453871502561220069367920035691875926611347581451719894998945588535500177217155404312382927201661625535809434115394548157302254226905506810767661955750829806689484535358395856521736009222281504601390043865149653510520427257553651586060760635304778068379427757155154641244291198788929173005624817962560773528779078137127836226999199016302256127141851192618848064968044275033542963850881488312510123084995102083577332352236162125565643807381977757890697291247718744712427294247943304749591630354460173832580324114239519717835827767464567289611158225318846315455675846266045918889666431711920971348594700925378000981405193830590772162404942357826955893988996341562373609785234546258848877979050959451466468067664987167883635675048191550235036188006110002399530379006570389566160589576605897047518091775017499072173680922318837391902421569834439462818762881923181969728309147380525583477429003043127015845726328303472016566016300134071014753560037685624194740868086432282280814696028344136044507635333482038478841756561107183399688984999197100924983411173818721554246232573018788453065578452677964806929140117625106921007484859336129547432016553388036866419620926418285268648980528192501739890289734052003464885083789232293069429292315539865112376540827355511674478790376989385656514956201626889903767834013094336085305939392736100625641516238518058040903987291809370705179566156670493294748536302258709326760369740183968715214660058030705638541277938830536872500578444567822654609502677392221461952249651062766067460945874017603786991092499905784194255875645244207932416393890885658337482744654865135548985741704076775953874012974718617000207721555934123077255334472749640732846459031823946372224118622921547606893997147814222653093404573899780281001480134663721544402245909663311795361935933883325350332532542842524612080697362362394070416047227764382629942643594466338077494929918595078697367287546053766341248467245523558129165164628101135287613789946821835913741929561682501121161301969939258541778161120683056406034217782159801258890921411580570593629180584809072062143689652151933531068537277054084272397703199337334162993014820830797404676096350883004849295247937444140054671325974655422166011091392706128120706418517903089666700567418008887577256589044319680379702547341557748169341286094580381760499468664896120302317802636214027466844858112126899083244939244536636081913397302421492893879232043315527989932951943717299822741604961915459361582460790582840664938389962648861814490128155868354529506140579157666443746296884976671844879871760308177312889483411216737211981166613919706901352219739798821812288077395409132240337925206659421049544746038446524053196009849770568192110573309820660850747064878793065837429216942499026829170235258165039085954420972257183815870773264645426473568968234496824037033142049897116221506337820913455158455360715484431812637497358627338779320455211131828472431296226236921616269742969570908951102366190582648731722736812393539900215393746485995426232814094236465659747849377950164831390486489106566871873020378627252436527830590575059971372669677581376082504266846922368354696598098823574204583341886436517272123043393812325932645770240567893484239788176342996352652833700568606569547565428309674239387290371588758409359745769416714757489082793735136587562364968935876137161100765912664817877681153467066335811229309697588738000682639642063997790150800411937600428358668863645540064380523257626036434717201945311402601777868459605145721793348576558722465991579349477158049269659976731183383425336966335284424743059483463221562589735298666749048884937540109699936721561406375061839588651462189337377500423869681907970144076002325940803868590768373804345690713821430455525343742146833185630266681204674414007432322353868026153183459325891451821191394103889887508959378025708635192024987636405229368733998243667460674413394967431495133767303454427488139786988357741308214416513374466160360464284104248253642076797901239405258671575908414940604194628619480745467697347497233423348985347197502661045814575649229489484663640582723148638697218117919975581013233252628668101420027372976889521823188835856246242402140785474773945803817686745352776552000235659145367441487539182600914397179485467139169734642125434690749567712554323890742950011615678326598861289286312691023487741995155560466609523257993698291345116419911207751418612456500119457370965232038054154990305763688101954054963314436668744352186219690502483902305507324303209582188593011219578999497485491567137624806856233182521639170389615641742558315094874493148536750978854684648053118240089896326920931464599948065654617819118715232380676899472942416954106868380457159704458008522566481216647646239646187427829869551660387813372449847258853087165569479469530774165119653825862058581847183333068741140088669793643732740099945255027434300308951983199230654885907341349529310168739751077835903610112231279216095270268307309348579169630028157236903719366982938253872324562230746468229502296187009602324596326108371811792198755619240588423345786516859405931834651939881042700959693402568242741492042475876198959349919671163699650393042136222499549229325622701009631053725655466835497601551051929189277128630992563241897248345007268057911113912578603759229035153550334937979190511889401703512930118131631784563922362553944287673822084439265901928242162530780399307176398702581821702211402903978125495107854362245145199519193693403732114757216483008520819774400274385442879953135972556712779792060002067311926737344999270923428041764036397790501310685149807713561552875808325311032141916321681110369863296667964870588668605896974751807994026829777179979611459603791556999286954561357642662448617776646049032758024099408358679084757566746487720128155171018504565341710703457577687053049080232000336149724746582470803842968656811533702542985989752343401860973282541820682747308103443664758616400514062970358516484735429514467678059608531588594625833428904066520771190706484779571223247166741105295739391127188754287198426766192357289832354747830584192108116324109054279723089297900078968259419399413895399321419339138971011640035361438330080701269715306511910430696062266304425686224002885067043219074153049472470132928823726909446615049986105691489346005784361392739187749597772514964908117096689368657517185768022728492983390844020137153995977327932517518127414038392459190157240206688434079805246682218251103484301170572616647948942776547701899235703098966675901397129948309698120253206641210181339867750757002723226779341808163209113864496523244646222179415915846973019768783610215997667763409357851932162945382709199138321175723414312979041690762989067273026220988927452031644086692555545792150795338170382086669895835561685413737723186730804425758547132470295790225410261043855859963619382169864790733774210629294300210908525500821534856278675126563879461556952508947934280185835091505104656730313043088901975818171904016079608056127323628643708138047034345783992376490163538265539735173034078563135506454729194576822169811936069981147592393619153696427394730041239889119732678237925151034295386093566494997563295569410700734460618225509183384160658645879672792031107006185763549677943632111533113132315084914099845221582815049862139647403655054881434873890332467780217017182380664634588203279540270188130850225108973651832535184425482728132442565395778116244306531804562495502013389317174272803792799442462490023878027812053133115961839109213720545723618783438453187903918295151749158088672097888937763981705006873816209428252368651306296383497569720358083812086576693563334346695234242008251060873533658348837138039615968416944225917393194391126797747461837456763881503739066122864726619963764073529692072771818831544136189220212762552079117749263963824166241793175544302611874436237613401354079107889311163232663508925580074984479777904562957692575747679284084631692667586009949469777658761964426506859135357955664583786965462686093130672958598019722419981012202953965611599746021125225231360980135545985834416819337777474394216540947011987184304370273133896705126557364319111306830103518804044823590350361081294179505460817964065801911527383070743968309572292180269238064423855184375102198424512181800357273983717175772491494833572180895634086114243918256364876495580004179815292743004964279732044200505864206831889518854614954252079720204283794824724781028222379495317868854249029641459064673917594129941704938412664326648304454779296911118822219110318773867045105593450449781400053108004691847904891660578694502265000942355978497680468812077079143403884107282442798334335567521271105647676169041101159442868750618940286649656420189911683867154367888800337902366419439030894419646919113249866833824874632464042063094728226675859492764452897584626512622043376113537144229980663924652646756582124411447369710774625762092317917886670036009416711237204101487511967354321186955630987725627836125008830997303369381837560922679895912180191521444647439729416488725332934514321245341858701132078667982590036373736426539142500495252197950366953372128844551856238160059330511848131385426803837773460844047397099497320261748521211937270110101065834918144303170667446664594373975542435689084364676734202390957587529121390455940976803794335317913977701708215061155482563682887329977510937825058668519522366085589565249788770539776450158836359971109896643891809625903581235149257257933697896372479372574525461054450145389488343868510090110761135915057762729996223600933359430951867419190802979969993547215445401041752844386105135296854926480707866144625409337240051589343412679468126940211330247114059865647555406418016103029414409840203028298463168317023728209351969827677115389828114006490517433474635408732398417782412077932604000153259099875460947556802848890533027477033907296578953654428791447008171546093966416025608136296231066995874386269843723773296679134003916399196924748406020948764872644501548709133495366441550540542831267661834598085285075776765551888255890559027870508134713907146239451140814284009194800957655729771898790830393947413190285217201256330402851880434462132733715817923742132649101669971320248136280912802027156243558076342572404530271487742712412166380008862177778529345044614889782497805597691068424914712201897823608048391617967980033742244474043130101524690884920638600562150899877399941730831300730607041266226134848345270753362336804238050874664272833453236303711101280033058111470509577909874677309740359435608141980246959282762201917367803936292031858480668463927562252696861564424005137452111843632231753895314823574684949921656928574685298582915579667617704060458141559063017852450754536358227182733500107282052108827576577847860556522745771844251008537971528878164579649450197131556934621447779861961679379789738755282191703382133268770935297473674247388145777046616595233648704285820157209420015995054556817863259942508746501750848944095430288690112046978627109561894284396100980158054006672671154288485913788925470493638219800901016995359869994768285230908428839365129669820399075445802603205971144424220549887877952279759324281637489615029962861543797289116539626001329907202661764518596018284091514358083128442576094999795194006372284365221759063009219210443860007903373846329779690179987310347920853704656050157544895007531670485912220366521304135120914167425072034392693827448428643033325767128147287848763564710783766422151753713267113074884933182911474728200202447965315839477791919029296958288399416311013006491468496403591200680847745172448303492515455376567292855564888277190334993255060848737363364735474033193268857475796042412302241593316160024469534327572466997130820780265634230150181301684476303671337379542465885415551858502001673314287682450099609345391971140340258146385445970091638076591970418292036010552806218414543610085936549864444646791489344065605950222069230384131260534966316533785776895000152802214966102749642022878036140840645950828442901607602667848336029759005232214219199841150965621652322890305559897372589874006027411048626002587321112949572642534972866999211117069713256946950124332749440097945948482263609330452694222352359491136218474674644294561532602088277739903342439099320341638383584429164443688556706234395604069682714614391258896375721940824665209652841369847369732491108294674715102009140745009332853829791567175367684230125435879822661106411602856263330961504636600900701735773474862038873437035309362604575320977669947767545479138835032862590806481409456826068230674604255719049740154894509109904861731934809875956831020322420870352566578801502783209188434434658879296627427714553408087331651323170210104700625571386081429786847173234656878224569409323753131479666121454968756738464223201781586840349958038721838204671798531042211124127701528294064406597559068232242252267187668809828172829639098560106922935693177603499777005472886048704696133835580326609094788544067613852821945202188800439591476176426613191625857035251117746371957451433972490897029028900364208678679545825698852982339223148002114360608384115214365099311564600183928283470771814524706777116075597653027147509847355170085046785381121613087974226925143916741496139849456558582420556023559436337016071017924067512816017468219295868520990251028638368167162602780416775356713561445378196098498685491123764536743797469815473611034236929738621354998950870906412130379981823000131521659006996698482120398293692882640501247085036484985544798620402107471509452117550856396911373779841220560804955027461388492171229045126561454462151514206476476476312770597231237750219478024470727222784350655124936057435790703967845567829764743726230201510850905722577370432113130899643001374883601060016220950098870010653292582247065494080643858234709475611138633732382044486832417147829025582952229337682894334600396311193500539622228465944560086540050702418162079172001871736455685428327309038105712647460880799329440464170746096547221233809415085376631570879876209278773097846878738929016352780712782504215894289285044825425405559229279723150247090326225506841698919051094457144599769863836528378324651433020565278379392507258490963376230266759311423736970429208643932977848363598175176570780526319800097888962280067546881978315919240920939035176974297592421612342313145233557016949871318385208589498481986325276577450483262242703559609146533505056703962123597937230881881393063762476462151838572416851563719064059646935880738738919691939931210274172614097623005380645647280721643064402390419012148690931280218277996285794609656656129178865182788261405700553228007573947101800880741391675419839482011701349094228187322543372967724128047621633037517707949452658604558321068230865750904457434252940102908561989988835099828584541022977567289792365877704971607607094243196378177361540671000280912336394771395389425957361635135469143131347073367372554988740170025230269302280570982319603601773157062628637348584082510480032123394904981712380462315003066469086089790975147711494164606863828203077975358258303232465714155594059678232278568113920187707407761915604357567890712197233210609601041112112986738266045323227572985525262476047392011853713378931647131690690809373331625603829407650510056763902019913008622953830502861450977678897874850117461182452583359089436422338005846465918957304343425321145094504563560242649775224502983315081391379713751469337491786744230074847439232274187059180471955182815933628599388232219428257732737749336180307573316357663978698567415101017129349435791935283375462907325608767527114590361629664067870274732376485128675362707465588892117847327665770399087969742459668351023201963082793471487073753232240486731484635887780214987891970161004209069152689618957967010676444161567450372996049039945544121853286278056141454979720836678550018382237399644244071769555227361963585917215723097205403302753999064639527692464987610787482379902457539902292211637542566331437093960350416336087382307783446942041831461255227562499764505734142138995589218063001938087065148936068880466079393301430228277022580204461557135664039872371615816494860393159136632784141162836738812662704946980146553721281263525545692591128014429141042245250162563214828939105826195492900554651687225060860217737044921338050026001160273601797181691916537489761747540790454343638140566083889683193047100218040957358429752792575493160237389309175860938790532426835460717287421419796611453782607620215488321309049952018099207528837290662291515553939034677292062988211188718119747119335173962618496373947187917274279983411093752032447193524409040494695614886557780171735095627657770397464117414826454343704006071025041145764230804602765924927915531932673551354596658278879197512124051345816910725931245266846633817257872891665156800004052224163886874523983982549664279273889462561718534945785489309849542951692888931425655163975573896291031864568380441547723694131594053207664502112926690107277041401719346034952864601507331605119896999369456838484761406613406770396309108835269186456497348176639368642333905088529932207301666047787953983949831644201181354333391514334855640450907376990406481226247775908624981705894056961185037184274233194894407527975843094634708245813882423817080256503528796008115621477283480518832060303806270334395133190545972684028775620815529142274658656059532722941540299541492942619444200962707368683790821973615701698421188716857949253019661700248633019858807250505705025262555500056233132717622544703010130510039589423177437410224120534518527374433433777406273390730645358264502101355838263619052435362573693504172579849456665435926421417437821046066259192703148396176664911275934221669388222674731809078155165952065761323930379674196011838923499413155567810888224475281915400962106443810338595728761968055568452698973527955739320816415086406855870038996896138133162873524275985931251811528494185505411226369826715139128567566164130116954424290569330567816848744728575436617716097977216285320950568359274942899220847339140385759001198271874402396890247209360012975401945845523182256549355708952145890850118668770352984993168012976446030117555751828147302050329344901009001500481401358593433249294533737681432291657854143434579933757062214478614497161021219523937719974135715801173545230462882094196976623534676733882548934564707924579442070577173759068304175577844630586984949479872801102889671250801718717895497857933344526197513196339505627126579087361512166755426277190163345071796100492481332325370474860349533317592431453540981313309308958846498404399801572505160045590048149451067653058398140520022806675398318059544042729228236272432116752081792714774467407200681857949863567359831153709079902233180365374741336551688789056046548028601212547489307168884448716015464202029402192375906560870729320703713522898660236661788862627872449433309691613052536669011107565235737855938279444411375493533721420914234392091602666039446036489017482351588852744048858974263023312625717943371206948755799633297268213637100907157875650930580541735296204731409387929474218418798793101221833408221125184837579910584269463094879347882769548453766905938675699788253465129787927731449347393016477289774743068216533186500812258750534829751995430277591307907708888360189165795835537677465748112138499227108202993172293797880924741219600268656078811980841444565591581253404561219550161360115341970568867778351934650415588129955638814849143655080065527834629007114433674890430721117609444753258077557968074910987669340189374983235921332154067666781033019491336634264422555681986613342032354639797086930855881753955075497829203873532365475662470620309049417634019432726373331577027355591664018819570092772014754120698660327168971056778191857913357388827120003671649329083379990376834317815073004729902276300087531232947922666362916447130258467700596015356670259192502242374322768806599496080443434840918455413712080290003719406060210615537357510611502223899318400760817707611419777124750048434359779075193824276146658249178088510586573880995128365469687902271852704254862036644798093475678138489644975342825067066428887487395146762203562595127893419907766890962658558009713559399937700671620487620368336811829624308360250953356959320950854292321755368503219126533805039246145179113282973686065792405834378684227495570732243701137291596017037197626325474212015353804866017592548859339511766907158610288687821916776726512563594991626553807965189334331037332207817826723686675412436930103893256961438492519424934455828989419918684311004022384236007324314688902821458833915922210183556095568570895584221200608537303802251281775259215891613316708551969423263622278227046783790169096002705606876213847976844931260589553239461159531446451532042284036478488708218586550475929295890023639821826830376393244114549430060064192600455152277236107005497788550307276079594568792289443155476448680826575867576913294252953971721484875065867273747181600850784967034404354998625243896392118734874500586504139856309908566359392723908367352789255691214286820932153327145001351906327407773406752881167741979843818843050833384893170257250629801569022297372182272389618404724657142488566710248035578452627368291188243136749748018938079004629764282461927903022881654688111152610434534404252138796429634783388642035180452967638996281383793209779750013581389871797151978790142009627705518936098540864592895610727976669827321863710494722728127083877784049685973681251413415252977387668619020933116929323066434850001557915873564584714736345500268576209449425161456575887853207971317572378066569820594911773832090075797211000126809496176552648052179636202031342220072379382034440301460151737729160070420774966268083674683930927686222198221972806924692262452346286948357844509112176459070923138119069759358310550142576512526934379557184848137196663358338975798935309064184276040199137917919214795456688256204831849790095314802751406602156661505155782315414392917055221465387023378654114308034854631530921520660150587393940270479671122372238181221533766296116560550105220505520498932761956709387483602136272736299806318134161831561820187105228384221535706078299432874197409421727380293060399825698269831169104794859590005047710630606775313322681118489760811961611781724835395456667121133240931806819571069872651833967907625133321729516285607558889336392434682988663532118304493036750898119198223930420384279915240551422022202388927961205683825528938281670893044442144062683176563103866110182339460330572691482393888931443086637331561931356389531993656674342567783396504970971229096634693622011012015788859231295842713168046823195198925511341301148692061887654557315891547750470274104878789115759147120109451103176934390193543238723675960776907281837266869756877680415619102646377832132872989609519422550653897362644969812965789521118419615609764716883525193504982388227969698011400574237350068448503739820838227471739375906748722348303105016003572181849090545128894468395910104878886726228222941790984012603042638505148347103972330260760146635227017046348137476818475965970869057052065214395720845532846378063285186457467339914146938060852026471731787904720357747686726511652082563887166714996621871643885588429377387884858930740865233245656417548620963067540808543081681001448045398370448891759618972046763209510821760181672363275444395388237705744453344729108164996962300576459736361497795996466696755532098209639724627636084091664699882653572257601566296404549759459700267586388645102111794654057389182601415064453084377725491437482307993153360971632906505577733724658181024572458029339280186937582751706009382785714376413694770801560233903902397160882372563227924420361122017237971381366002907232394731528516704165993127566072778895385996634128423389108429550014422240059314964685637969001221468260333672793542550607464947917118157352216996798877142008095474746968742056788777014985831785840030669535344458630897378935477767495604471859374965539445041711100331502217753709882103366058792800561800909642177689750006156842486061902285447298061795566997259352419378551509237534891409042453168782577020203026476615338012683022925024625532768252850481890468026441554476197965557599312345249442277665360255184854698017438826178031674341791541103605175879341353996050690216781589219540037201803985980849687682516049222546833738393968423256213444291126513576650800909570702036101683506097743459425664359202771611781427964669902642595751070093466355771352604590952108974893554220945326216582140104362197653084965206783428543666282558557600749192809469175952868219211289336750788092263402754220450467987945088089308203422368888457513533096388530392827694803416657031969234747304191545662701234228025340369251254456826392314639467985124342219635043908561345308441870225417116901508434025788370242892579225908822241860997566453324439662789363097464700977484945734056486636596910285392117319954581386442944965631929608197973510658174335497872048916514274830410892762752213447683512832141370269242725969866601123192572564811282361717284334277241320295562978589120285315843887341620784169474865227891290910090511276000479274989984554419469909918274703366914704340935506862427345968055392953478732979865613303974133105985063348571675083837408472375364195329309573558747646977880036362744842669789045942884262333367111992401252061094248192406180382189938534032894919177179245624991260284189043095096185341348944260104565822664043085463367682101848472593509913013710083547697322783646609018613739881360821862311265251530902602842116974503127444093552407692246666209854466687941412294500626618572651299288373853718422472837680894737006213024662108086579326594894830388287104239193013967954080061405761772953482688449110056886089984824257755586316249064567145863795487666897409828576030760929500695644452033196183519885498741407342022135086120141071265918507295622410302535957326828833786539443472481652437062741710782347118900126212259919842313673835566743121207896074880929811798559881240816460078707633037068225597996004344990663647358554342176269418947680163459085516814275592624547861053803203012877328500772090374044603828159352070406281854640019528321987614313936525381370531663367602538921416664483214266539236976402944142642346450049965891032786238751493061943069531162171816852096387236700379215265023915671183882861050141544207069428883587661567564842112025823280039102741696460282568038788480879651297817844823224191100197341592299893954822443321027099894584033744567066615617853952203540227897721331703354429986316650625012032889342789289234985109520078183221228077813882349333994127924564502149695001620984646021088304674547633435382868352115357531755220047595083082186793960684799074906354382037856606653163652357939167789628045739480694206496731148153767932063798971225370355832332038270623940285103627921086565374445664069032668292060433087208505104537564088371468820056393785379166069557417342914288611474464466156165587981461565329988443490376245297590473783416574883353475628450100895342520263036867709490453616252085024554989581063611372247391947142157316125323454351610687786309206353515408816423023994531688306892006757156985683863001871668931932191401264500024471013673063845458248280241758383542605270114920802439897670115186428004362888144552102590359123161450283751933544316380070829111352449269738963733734260142405275278790356151215720679574327794085648321795267969423983575996088414003304629823544349970100985809586943511028495925160865377485908823402359980679272958549389123939869692525338706023588263000509395163464462838061769820220039794931240762564094246550416311641479827577145015355881077714493704855581162456540314568761561958566325873345712403013868522687826116663048271302561210111695200914990120760759784290099598311806763420028481949466218079707377432326981594700972433180838318667204658522567380778919630985735906998743744107095782472630597168807573970034988642073286900158409957472671615488753591627897638445592340872691657145397435932966277612729899361193381449297397816380871622187764064993615585822207052373889589042491913481501791106211310320255192728652776413972096748306467555120361835657678215866077658516916889534976071493022474002287306759266709692945547049197689132372072875240244443069219769661952796607042741202615846201127976418260602176609569663170478699267452958771038193406731210718940716942270964078841524228710184069378261130228106178491066927297889641840859149447528556112337711796013008147374975403151077624183960387931700268024479756132488270252424477966245929779783766258290742926513584969464624231839760381704990648743323022589073796131404582762561680480931228223462623539730960572100648930519255751535276235997287198171276680450874037690241652320230799573474820953666700631838548352169074710872895450567952844640724443068836986848109563324537261685424319382604779666737274727385779278717129900405175041876090090898211713200090452497228472195033772425724433222195939269967909500443151830199739417154388441178369818903019332130459358222657667800978397791301705118119574172000561103259971829330619710643394526982387457538876748908231342221172563322541524661555015956380608406546081776383951171995305792693207621248769610735392226165211395881276896886827676513929004133559440687779776874327935974866430540378697464107036926840570935467520582619512554640989240635725141421501111231950582678394637184935945702336821615164242569947435769535620826525147919043227661373190265392436441787424315319953851510427672181637277121721110010323441659209963973998407366815592431132685956526915939381265528990044387801088023434052770831340959462567628149073776082855869405681860380782955815298826846261098496403183613913110876147771154032928829991639215481894350398180701671528353012204413366816312803750627595163373982300755529053444200399856352768246520425120200942172433153586855802321962890314950018813295784442118391162550424912812199632115421261227246747161098499241274434355239100311521676895364022341416758838353869497887432662061494064881218996080928545168113024631115900147034510023373047810903221468690211414338864256516991195495606198369634559756434180389133929370594873633407275954135533149154844682961564590821993793623713270824162775025191815055427441331229576331979280792003238865657767401749842679721069540456024259446588294031446434918440631090372968093263469495771107728293777765825049112933655367233971484577467706845142278053234679741428677249617361782633681190394662200611486424414099009421776624827218673002423978018855705468638590645303978094012936177535018141966186414413118338646902112525873623660974558387110418266095988015639627538954878904411975301661611964654035940892925300834405275037487971791627738659060864946807797506453074137745332647818060560566626452503057432862035103948060898399575960880391628821992502977066684795177742056100687113241069111492450509108048733453208508688953322044193661878064846756446341431501626913251059899543570178408077978133064332356136818071768157449198716897720703334595387848501299988927978835851741029575722474676130442806383467661114262544891357173966280878828092480295134718808161782072986529322898737821519678530912684165342203651110899604951221526446718473297726453184407928067822120346243734778075405591832450201080837392275045495658849932419251377314654714062611138230158991390998868639965774986826805287397746183924874462579014756356151761005016223896708629862174555454861581778062769532100522283340048631962795359648291469786234958591464777966670516468613047058638368512285919378439223588235910057384246141122770623842187681964495338488227330895903360173607470195393210377865995325788615214578766125835312762467444361593150824207319499038747580082303637275942520984826512339947791402498655680876096901712233494587438553039632208670518632150206633206727532969634452192166886953897725659405793319957026109438338310749273123813090957277058610601030262181616893064317371450855004530210407233575006606803289451210841849726438281176133378102991742596428806961269520767509436688931328876186263192239875343306711052282681612668990654027851551842002623679437533769524592819113066777812437730483369524460544207040622608786649102998202566518735163616588944354908138964356423294339444159281408008763180675952603891551710062539850848849621482033590809790482819403543914056118574711888801042321056425366486845044247454556048160669498178239024185257024460276276123536946689108911844945779753594913673680009062783448043211293312028060079773066195677317065084978769579316537398089381758885767459849400637635444044221906293244809745326633340226476410268130927596756798097297796687103290918547733971556380185927103922154542755254949778498824836499089367780131723880273838753904643940218461253827490803024015016814153041087993626244000102879381245770348418615806623062872812562015933517257765573765168857329962500854768034762662443814432224050633480704353003091303770055620744981819442573661798239751191528455640802441208054576224468190262519170129233989762885986979831050336986956107832007161350900174174755816156336275741050260592591484194436313886858003999823283251247380034551738011497214338224622037704224075680345588434646051150242378258253491064885300955172359027148698485402620189361237746946956095596847469191145537547604434482764011056606025776184647168923728574254929778853763702658710966984711424193149112888811213737379915645140933149797896881598458620042216035717973939767177802046481679367136279776966729603944204159159582865065925096514257960783062724858156337048175592984838000722860151291437674267301451239109111840719390504746407884404895836888165049755174028962159345988901473036319696490736824250738518201682011072009450582954529522371830730157556405056482559709651986300017003847353730396789208145530126973108754703289394595214397755010199237023213130455868766376488392794226718400737387509784867511342439872868537650144300911056235343621557240976482421825675741363373784393840307589130432911741325097133108690800530938213356410831238417930905359037059011586182088942985113727208160954790598018262288197759173109265757761178186075567533848945470216153685047013482727378153612785960107970747949410477207666191261356332739225709813936680843129086427932031527726359547911798265258171553862737658436685504920975100581090501619879234106562510696371190811012069618037350598115916674106221340520481027003823614502630289227563890589727560649295288951511562603288025729962997384474997392435629923566214882477700024213453797418799533031242376556313961611812548030933999858449428143067687505354355355449590648215096004637141561074858779980711479637562856430376558095245135560928863472007229830830379395038290017260187832659158390815006005318444530806995059752171471625809147901595236669153274733980116986354105366258967813103732683373530886393247713102915380773249379636916785047706815675507774476543796312458018820830254661718140973658909877915350740499204289512968241176297396484610699267787517633746931623249824762841654648812617479366231769356673334601747770985221653484610419744188897503281318185996497977248461730339943876897414833794209656574988788993528202620341450222637607400377829215663614002456196309606105613234472234268949689017045598189417894216761363808483920745122876842592524213152856886169287798924871801125686791272784371077896128562473116334750948811930443310368707063294844128655038490309355208102830955553328029580056385460625983539782036407904957200289788102867823402912441087084490231269617641001586306774638161870806526723458117074816394312033914973409659918173481760244253634011539131171129347773116213108428367327441304390104044102426056745108678021269205081164146789082621582032654472517758370045308707808422967681164785759413122879228480321429255228184727528214497897930791131616166471686509756232209810956527100590683755641073082646627329701777826492185916398129556901099829169682428864662137614253642813240002424600142846320442684943357220966411596985367550172110837937001492481602292134467738189896006877835079655802562410010495662083385016602388302308602408449326371060778733589789440986730816427665128144248125538814597468709460265335605162899657894690036828241034806511924253509052671671026460420818515463983050604764959593011933952964801851386482837954302385240039103926217604143584231654489677397677177701691698280724424986233602087519628504097993829326482304392116419129202593646657816485045807615256347803551216286694048347698080328553715419071696120649666027265915856022688751613487710874015307553281355987345145114984657401362424991821584781600572103649657921655564568238134795218487630586208528052145897367773452063713620757074727282098377012429412799974665503796812301806496268422759871469548519266411043422146116755983373680334807819570102753353517003819904452409103397631512889266330182595223267572739974522277952633506678474420809047039963921648808783911421493910511700341222546865248578596535912146299508149969129896482847878939677090275422907674609817682271935393270523527558662804434216453255369247615232983408017303417788528288570669826405004080538733723407811823889166611276764919607862810050130945756313876312243686472034685649328505891409148961599086875165345002532346158971306655337395984106741096731015325382046622008074188454677754427850927569354125608392677705630058361683954433115378553578738346568746580263228813540682856667527579043202340313772564690436849891792103312306682223894918610586064035751236519071942216499166090721773419841512906569991566872642745453875199843892616159297374008192796064632882588505525894367029114692780149187677878099275280261760192015763917543413784086074550395359259867368426030754015297426194345737746411049301096570819991200627287024304338088255007813055333969789706574178306024254229329963646714589437413350021003107756786200474393626530034827470206653220404985219526713406312590806668454429794474314541250052760431317402924204796410839508710968102241171307864928578567977790942994715618112717476790235264364556645555120416075548545818465424273931006624848046264553545478683743272643564210136287001450932428772063801669035901950410093033435670311916001988272596119332213586812837019238348721741754138557301881803602001698084149141705544345549702447379195971742035085450185394145873101968367848371368732716583300714538203083930135192678702485159499558873859276121447381379589624495397181956686804918483643522208495740552742689883056405309166711726585072353098247809573449711643005138050688183648863613821182007705643565384253487199129772092249533861933280150456791437855536945113035331973519582730724097899274292908876262159726593975316738521756487909359208689493523989849981866376421795152470611757087254322914119219161443254011232887818364227367713553323816034682138216406967612426913542293900029944115422219101675696711413205188388587426389533826619898297801955824353684753228522348279731890412802233131383578482062446761452424926105985677234457184622221103153282849649295316068790738433557898519637601201405105746993260114911940767932719063818265378765482565677523843220658699393356358981966616596264373474040185536856552474555657396368384001284627212223543058790193244309617433116033008734136675681299762678120070222753214886223493341060902145234066818852186796715238076461644494770526974051020321483250730234540574230603212136696306411811364186572734258186392296747195491341634193509029612313405835558891137369054964584991876757564009391134243502863709495462814969540720563533587221432952209706555005084522715540627432826823371510581921222591365490983507134844880304450045545544076634019410851454728749148605269989592713229773655938090715390239421810307790829461991098989149725643570326665680776939608205008063887380277172117973534774859688711609715086297610290795197361562168265211263887007172146448109588313200055482682490110403255760493261174317503946017671622768835623733927186470770649918561672597140181897957215099378113834467707963511678947134888997700793245780736475360148665550890666793407530934054442719147180577249871650841530104067463638013800052205693857869624508451829268003610243701736667811366224427162719037225382324602998874888292103360223636192665499829829731362097050823741870958872669536059495527089672883839719225624735582064647705806053497336627597554908472439387958581443526497666634607554349877959542293723609428414085476687525040067395718020000568528966678273753287505477146076154323239653050390189197490812951996186148457292653054048560134753709056400847175330611871774952872373461447900449546060528939718514082557480251869651207243748191203333588138599162320790670330037055187694901369145176254514966686277397102591781514243240338961234601302928365769448799234954901065040947657475010837774930662251807919262095943856050015666587621842764857228004730664851379860602936377612510935037319285578271534635614020186265818489131181803393304756109075468069749623516463015741949625293650161804575526256252050433335494078747980192776960882535412646628451605848381906945123155037917069564477676759330162180290785612943568613189796397306666965819675982769332562281114184890214040335706071918803770011569602818092869830877707018858786852922214876259138558897221132030713355324559732927242329572567509649667382314946631504076644150073206370491757282508841702226783583513909107314475127426962617530591013737968115218155044416495183134639728327175435448289684587769915514059603261801722153201489419611039560686617794995009174566637702544729914987437470368751999925864242866952106202955101014115236947692022698963674977756558140485000203881642883465533774501463288136623775401509103349452334298196136323588043281317726814925294367926629598803331551256186745238955178957704829661857194956338131238538954114007716604016415811271088788116725319619621748141359005492297236628665924593193201511058169136366222001717476596215809341759693818771612657940546255285853724818829378629549569807247500287889849235586516417269805704028403618824360750561572464248609717509776030483228041380581348238407771735799521650608137548235280229508957141440022491953035023796370555731996622823133911254382399382444420233959769573437501813528102725228844313564273540748596852373759562113641144578796846485315150257761014924165854076214839221510474632153086228861862353857117323090239423503555917138828762084564154812449187066818774472008314485126979535809147237769653255138283540630224315605670477365014754878052148425097400260823544371695573567044427270347403627653728556245100211386617509051961727566920614185340446157671614745046956055651666406725043417454936360238924764388883949263133649344129193423331649595405099787093867874857897683449392919571778951193780932303954705155487848147547353302408657021191517727577108559862162048405285638478007675117115042421698116364088673199317464349758457162951068780205650066235353349925443386682063570868322015030671099226651563576660131807240941917536269805431461648385105498282548310020559325863709276085191469282784303136640295127499726853384404747681224127313420951840513976529103051701831188041716434760578713369613441523080942653524483990418007100164021103504375424877142727155406760379411601252344815524501092409807813873668715817814566992394114822196670160049860807485962707490569943186523715847269660622361894276149073989679588277107836136139460140337559626816251955454931025823261826900898207761273434007218761272355472007803149472333635226015824989773651020944712465791987334861423113176689214522344014693849240162119065465888353173465538261618948184680091049738273694359084173506071113344976806395878349597675748504513512655647887459794462949517826763278822229084865679169117674117929791600979367645747463706945188501913736139732214989217012428948876242870561876067510232962189991332675268884802229188039442526663628878139503885905485787648532597573615591009692087588363189707820557269614898414227589589143311723386180224403972173989094449335675877217863468260260611303325994235847448187348177650394401737562503660229910808559249676844863534857120527357977436322695524923870547103810610977057212170760282579848078208946533277199833201822536672768672596638897835118681064128814133764770014313523760299954619451939731308739145509504694737620222433564619247740465753248548950344798684345242882230001607117707026977702490197293555194958666823423277845755999481099656493030016913925737672455720243029642997568828481741443247068528569521674085199956939227131272025961175075456695658059580472869508838279124612779027215315297755584482719560856003802701687399307943001555822924871842783845800783167981691295569342251224046879662816078041780581794032686074093642489430546620167768840419121269333341226702278410889615974575433580370492417723215293914891113218153832074275721444963859771785173543088866120674451924481860526996111128506953427926835915750536547078566139543513749582556805075443947369758527461861553865220124932765089257569566838311555953312057409532850594129113929842626060161762078168627947022234822847635087702086719524566616797913742023146447427365300749147378527515244488659844669524509377402286683971680848889154467064565477293722474861011413770433650007405515509278777852795368604923883807372385531468914601274968940355436305407027694864453449012162240215763313301169354177597612864630511060765125601567319632015336891572977908075450217546915079458150354190948058722944259133874305970354349653347192029109948078761796368496301201905599417690183059743304279194864880077513926337446436964598921185110492188082900041132350704462079752005426135104434041436225462186019399187702892507588100148747650198519981576567682296349606508290409516994725244908342544718251675608351619780662499073068755046540084119005746978383098546021086579405332724377473482079487157308698221279024668223215206261767366231562782895539940911505385109175436338479620624756662815060904048657960580312233177829139105807037239633621689411061104545420575568981375778119008166439662577828794671949735136387344855654077879160637712309847064465920900143984082068045973313434048430510611144120055068516017879268007403155595456234989718328687365877552290640982908311136984562940755408674137833699298714759977230064812177706576290605100857589717449411135299933629961268642622149892339969518826308213358041454079429464718379215126768491590687045932520667411472272027857910255468476679412259758533295172150552396299981306896599755940209977196406105853484948885174197720979880042128121441452938946724228338442512382789673477671200570125275531869258811515299829494987484379931447358660684504311088214121885422235794127346878920850910841084591919425320507683695880907480069478785932680630866767904628812537069192145922942671548191020056180969657557778807921414917309006697265966778681971852461501050363866048479149693537198935021672061280152087952788653445560734209163812348524594328425839088458547646759945878960253717721993448395674648672097343341978571432510491676061566147819614328919235472757329428944451274822576100209101354171801112184714108634043416435705712384494067189374959974077550913802287662473207220519121417914366091034180956016650895681508679832043021627288722556394291504225949194037470469447288085014357752764447041629649846258308398155214526521192900693162096145577950794723051211313704674710564856836844589707146134884052876646479475401744493478333437790879173353888183979595782277727858059173131572986944032969597968945625817595496293912333938528792771255557608277608953979508113103123576432141351614857254121255397713608512600985408360574786505707148088392715900216688850724998904353980650714137172362114075173700636328294863590117303548627696797315938453358213463249381665455106852783020079146049914104962197256167374992119658551590563277571504818742528770125541472150013347709696158822591081226172734083879889334336855412437925361408412838329342240757843124015284380197106800046454130099591949862210211442907960365317061646313549950859930532119620121086526808737110645311461862286297702022906325838389260657771314658296928666450110748792182002246559862987143621133050662375939712469069882148201384620180478540388566632334191294917907711738279000732203308759858889669669312924071414433457100621848179706353837518924000591486749506668785203980988507607858125690974578076984802111921188617718496750425791752820111726460370147035196015202770892242188907823395193921031596456957369553329932361784224597044153272109392076647018222552731379086221841125312716262719282462073211776169433128149060913321645572175651053870621472634080948612927230771371267532374869985488328763584571631542032481826772102338416861587886638191895507131521167769915917154996965367988132137781959999449677565700591845479813702627657304158444087290476027495409315840473635100189911913764320762817697204442984622480304185756533461456591204584453958367493606019703769523204275482934391264092579128616646659332486171610662953714147362011219924624694989285897668209266317448318548484448699558647323063198777850979426089651488054765073350006416913807607598908295388460184995757747661608229104477311693073811352849053186577013335502400820900152213188720522772748478076374065508774279730745042869181143676895316543767685646384161584110652967366305590855389618195333531190487845362284287893980053394521152987058166710104128171092140276124207577889555709867987687764704215238278625470639128444041524567735691229848061169044391270998216872746922876186897383221531875897511971729855415069787169986148893601079430272351918466083820017316953893516273028042745702167970387934247302266698490411197806229510367932613016394737116167128009335481949932105550753098205101132024892384200015299849809313709107433855179799218309284896952041270792490173548293118528036151650578558765213397579904225900398530313675511581241316080434805871959320148823238140874892145450529983439404133717562486633852758995534543410383890914889566764413798815448868588256911925235283824049528997706904509381319113549648680520057601988535621669115777191351956303867205495813017781773237537043322999834571361458586380242084453910498996858484276427486574278825858841313084546437934716335800906750018628525111595719346570066207908738880770116113078309584376942018971588585111120167403889623747231288753358620667958644394279964073034769191731679467941381930571344729613907704479751326341558227028251651234157244765972945854927126257017033822235578687001895265506091935801685887776509045607538651477501370590239266608199489938784124173997303881539469645856057405909573733228095027167501980131109827999394335284117840509455911745603802523037522614849229182139109702238802036597957884516237270304834044869429611701553519853691595443570422890752673023315267597938446117465231993069144139399450045758004667136052788185553365038064485568540810200086954739420376513501233444569477193166875982064386476766517348291789850055515226789484776080126748397108584545464705028374556853747868071737686183022383831156093401468745350713801910674881459761649777927636521248506594117609206103545060331386771435422434691416673935170263134588529515385998104741171503154193054185831722432358032854664447889777095878494536638891619200329267481933380890345222648249389472348220746240601774122020189617215055725821034269483151161888865620044454662058091637869459588541954173195759833904700067374008004585637166970114463463477031739362600763708569977251961314268155024625190081603376777360155589779831892505443918109821963911576786068568416748774094210991171112293941688479548506719069286284334441238383439988754224029595667791306095063208359710838093499722758838793533847345761552020570306499677341967472998264073488306472380629845893987912518029068576707330922897556252442259689470495437944575154107044986623680735727772768211462394586551371181633676235095920914043624130414351262340628689784397389230507320186813860629863536088077257219412713962707119899862441470944678577852448183901302517285480603453185435388234066077120939007486977081785578163383885894981236300476784628143612680145705404750628502354078011135462905902024992387664528138028478767961390696878922068900942827635385254741640661760059430281200483601788872681609370612825962581841898503583463640808721553142191979732302732686480260613738008830110976745057894987321493147006696127567010845719949465196259163954357154445168048195959953311936562210892966868853831376680608168832333618889121263838751591317218111346667338788143711707126761531609626650685901740215893594462315228909215608230782741101326354073639891388299448764657067844130602726142739853667735870084035044440708317172544277171635884002467807311224097226528205049620624537952861644881887409237185360460652671256693313420695369845637295989661218076246172703265665760964919026718544496956521126081126800807458796758883653956879845817479715931137818956584123964991781995294062098072777550817558585714702873896832237473529396674424375565296544331527724281660143786158151030288176415887263800293960271973781822040706748573725456663183297408351761997335000247911069164932871107117091195476033894753511210261314750138096106490475702896153999571186863891283031749255386440320889275446183975529685917317787942318789537934652223881177750902297164237797430089417285828817821646037560519430445452429560929601435258765033719719834285849941620612161808766556634831716388456593948665030137373730949866459264393597835455703369568667473035097067167747796825603773228410143633845740583021989983269683190241556392331992817803638429957052262973374619344343667471014305601056864681418573483466130995233800111281370742361351841090920122941500798798420278889967156754718056273867147508579820910090758701309277118939160078382043800885184418260831206614295512037891131135390163610942383899034246952481973663591635482688015405194811740135854701342796931532118311775732429221858647695545139437909799979021729387461967293827699637520512943029038332221195544117664458573725348832295309559659647457526580358576683349765244350014842243353992976801588541263298777209990023312014079465545646406708326934177226676682200619697512479637948593619502213732686223054953830227984160494914964500573214280897471435310634160110604986375088048107585932346773116258558360336530499537289823132571947494256159067159183801618989348101145872843066816762988911239761771249656339265922607434136889085811117781235566089149173621577208764277108196894777770260015007588034682506901151806901524444690555004470139013490572776561808046625752699709713188534016853560699681336267715430659231876729737310997291564565155732670046957739659322439700833248372875821561868299951272170027205592331569363256943071784716409338487482798257464946293257233608605664207035324895238634129033879529926672397406319104626131860268305611602052662753223997683678393949183229989060825295782384513139410033625112798295114202831103548198386207441575923033187882067366977752221236204249116063409252162798927475430221208154159730178656844997546420306862820400910020334662425809057915794606859211729666494487487165273897128173811741994434825800380672728032396246580765657482204585849452184248125902813136881051232380686054741468765669070304464649766928996533229531132859656859677637831484653414683226895552257474950429168291565998483134801794362980234172982684504366760090415572517904132329911572970523452339044415474846577467303444863996821639264658297817656645454086026093035771204179135302540129235419585580243306489666277022911275944233638793414282199620055489811142293081476392341579238001106288816254911755626328889344088188834257564345724532031520043255291435752942103539112187367874244839691288289697891709369537716889231525106154875892783178785045567290748655936787213547776387996145050706955220221949298423102952566553171697997658409628693799668109282965762049278909578649164384408558047338596886248408682695972304708807768376695709225398606419960818607457243955972838101854199491961174266985152743549094472349786825465781975051220561957389558135393735972440407455468857202126077492610433162174824892159140864484706892370522475124738100934658042831415170658601969181408357064036812547809025605545683959107611092739653163680452426321395000149272400525569488779471761947984810137727435310712487835354889930392390941063964285081451095658818358267914389139924993921193540682295913462875003283912833812285247608077764495754017410771752866568546744004310448967815231488265740942896398659020359915813824099464890371953121749397254521706915256998871509382980171609896024736395483076420112994521145800065123102366344359219103230447836889041270923948262956347032350186975321986245424320910536947827705927103032083960468867282383224121154378569811242862028750048546567593142022601988243079749304361279696401379870646647134334976750662259397983704581205268094811525085085739303674644027198601104011501464419730722374488783314078283082176483019340766387050858124677597146460847729480034761419673610966179620664104962306364099492248113199884686702214614731824183164573952581626375977573642086317030861137648204052880189285868955095515811991987247425756740105310050409183000443047789841172581963923783433169864426364349911795682545018049955102819417674121156840492703855067445053015206515927896036080953162910298242277105955210731127222941790714826662694415098647229903547813416889579971050349558094418706747997403868595665105635091752956626603156539056553094750018826062709230637925364828335287639895228515932289732884233859205800498468176368705252367079117386008008519058349742190168205005474743064376686847064287292645759130576225017792889825303636172047402713378535631599002034928178742781176318821144772572485347343705280977771033343379375196008576241983596018911408706153283748931783712660858410151774831168690255046356757867488818963716930186488369275896507637651438972204224334329890574179760084839382693330081866474551136117866840551892801360467312134010920933213350638039795957098956755427565304347524160548284272006861965499665870845851853882981627976406050655937670883306073247397550775293037186646999484684949490241034545895384888093061564111964117962636014887604384028032410707477064968179265972589921362448492442472651498695743955091464912201828691012481438049814461137310635412765631329586336243490790214025553056494514350812401988768160557685295669211864058187082226512055123643493514533203301016664773067365483140406520214391197715218116822518180300999052981044802183823447517767861586885595151732644689671420199154408230814718087005521865433952505062936548634779915448508988174507246599106530558143145578264266317455702493102017093507229116878521156573236251324451788739358207432988349676027044285846750412887418937040396035748240566088768334719490800070978252419386179357548050247925010737444624498005498396431723947293935514296189594084605334897706750863106902425828950374696870672926606324636651089149371599423634251292526436395825551226821285158897860522294428942525031264132302018697255079987089750182995143199838568281957318874256794366454901121136212149228682555932721703047431823773456755491829046588336105161180217008692435019359748273515483569943116395368486454816315800607233006975425622036564960985811673755658290986503881927237727409374067647968451008865564183349336751672067199237133540159592542966129159569294168435952815720888728280463158900816857602159373122967344343415546477129503007886533395181563021458912763377642400898473811446876428551060113556932593804711293886680281910701818403542457722525380814925039304337232802038920097683011678797439030494964467889420359542130309911555542252924681365562158935527910118815737722039872946470569945002890195425872259530730930008048225571260127587583242706275238432987759843204781762173541961614017362062589416505859738350214182796563651522724693868051769764860608814682608431416674570772883280473294569070394360110960909127480312465660486828809905088201846210386442104525240239233882036476031695126583248256146085331267525108894255990588005764722027967719379577617402349518003923045218266001554641788151060101232397602700373645942149739512480323313307723291468513551607235374217018334114985227299583911282895421689101642695180256059384269519697161851881293895349093579570747188578205372281806825665136221961607539023637825047358495822067875723924577196734104615078824321003092933271511215922022364569784942928817270770407201222652440909071404611772174991027447319876255087964860438185125776096044500514877634238379951927694221440017726964358732186470689885131250086726788594748850352152118927753435170900527648599491416576225899564010023157242981427169178408392801247037540131151216796739369918048618608569349633185930985770002635873347375259515871958222059335599109972892856292888063292238603830419611776533414123765572223776366374849586598915788406809090221370955349552642415043015562743324806381820453484561571651142559395557128639552975081553658297689596682726804753421392427442178052779557464796719438566171455922444975168166879112261222766760155107840836617765683098138290883393124015214549849989874224358732174607757160434183257522526620368964497450548735958706555346537011005685726397473964760818624072082814455842733377570752777744525950177674118692852727455087372830646107369886889090554135625744034853867899641731234065496299022614242798308981763686790195165263994001655122854651006559042018587699333654582402125667923139026785439916560681676590163059550364355275362898600520656267928392586558143553546295432790926247575954721737253668914430485877642763694880201934332948131939210400678116243236250408866205962386618379036931246075609169140476055234244809343180394812148579010044537604220047783969526359039216271004276106911192838220272546918795389762598467006291294811401267362477300109936647351630993691272110425953946603229000075889492239958565383510082153498567487412495138544893314527281285515703379751802537214872400289098829723054997126369024498546998175493222855285177821374753643248431820431057843608018453817612762312214888277038366330932486139894116863157712841086320812779227031028574321375954392036951431591123717943794496109831911129760529179619986743015286873742382090705822874700470671884651754336262110784701958134415738104368542471237050806202620667483372761896605036720516827607810571809880382753268441727640506580290302718303172886915175584722070669348132875098503238559759531434512681542221866156086253736125019863914900210463781577591789541304826353684704700006906805654849229874381669142602485162029692624453491284226234412396819061714314672344390251984069021445175819870787996337318634903021671022065967528491229373442670261853817384729069069892232285635006623298427081937028084122217158000653596148920639441551427688150116395099268645347288783074845264488532589865459942452839463130598373570055269239446202597075918248557829939634601628750489240781815780280141740699536391512078425728729110850164242931885647484162876337036301913545917861501860887663797755371696692176592193398312215480117833021548284942679656146953438348305694613907798442101026217255623514611032288200329271387094105107534159487970327208121443944435619431583758385271044303032322705287912186882553769381520555959665052612824682719625697645108108003429998992514086257986984206829216651780093431061562505052527752994658882294555146200702258147279016741581405325944941241669590749995775779475511910932029825286056080976280818813068204708916444044885674565945535389344438508783614633163764753104499509636839513123341419133737492211582547037528417293943312858987657622408610097118156883605646591702865556645735749086182355918186939812568042737570599071471726500977820122972926125156933736250632704669619056341841413306251662218653569904835320055320319255665998040858482911228801353309865977199414672055486156732500974194250420961856414208983163607533394514828455316204849672957116669431284388109056691506539720350540571889008008283813068722111873322505025408004541126409578114816117370296350051344584833540001517556300359829263091836570416198469517839383590985277516956596853336307426367571750045966454850007606423144106313765854692532649618573566008453679841902173065316632873981280764109527911946684801041194665041857885052908665948011658930758250230719711580257247897165503941824869674950108548138405570832082688976502981834214354057407721772624817666958882454949474970116680379013108061399090703675942953836477469037758323046391055834286083692796168535576081769862333053362944546322533455580857518435305420752589736976534272166374307450582784638235462970061900295531843869392502790559084664692650418907760904013998189861713337799935147532860290798511894957474641144632631034872041453631357908048554950644157625182873529283015953783806096448982054967032526772923304401309924567626510060515004637799471375959735814863999515105041166273812063261108509533845975921896741115312868773617464230350893893504112707885432205104197104421101457639544965233728870183497401877459526645357913944570561116207428137182861247401680365830461806473923555479594442293134984404520175278839651347140153855648513520286747829895444780236560449358008067809205191361183125415819904145194318934551070610454469802103585156979093282418475140209895071658914253885238311429476835604019063331252561987501266349671675085739471641516390250338989709648572054480844713042522189697709805405933262087812114481745160196966308312089226206194132642702025217126980891126992019815596239490956883747407519104621295258430860709362220820099175222425890568659994881229679292631025307785788172582479351748065066570051895034253155765488855978455614624446667193421722985729248558018994691381906505082735238504431666816549574779259024293450690057741441488064393569070671680828513775694846061851318958770668512012524435563433394493333341401972980607394692608361077601603340635489979522135653441281619703262088111801748802144643552742800196590813639797112947682986917232672556526648330323097882466880877049405597742111158744514729055938209894328416706764283114126598846902308687954482586142255156763377943145064280585862692973353964891920052594417918300688385886248086575007266357653036370363289741874002625894418006610109547695597084935848757297224902539684193923967891314821317090578463723528260289804730806124311991242751008946953871947382881518867623438921923639569329329066609812332745416178937458084026770428993918239117028720542399822110060153999809509225383021889948635845512250244647044785765872447707836939769286474993771774725765196411216947813364384321662499268500550027684579873128263105299627390595274498367547399080657685355824351663636249694832503582597274161394056965109789377449800895795621489438681440821115148384470328788329810748267234333321403251590382800686893266484635374058764480646427527761033965634152263360442164259720204862932962252972021284965817419439389964615548086252668082553664032073553796717507259534138787121897866402194200805702580881453581883870647528474149504323671796178990264583499596621242617526136489248343550413390714022313988250761218656687017737577880032207580144949196870765837517573035609833185701528136801302298950578094783776214086872071748183626473288437517392892483575458981417169777616633066517560868392298300438654459256132506524487909115258687956239423952574439091259076448083422189706750276271976931218420362936296692371001983128717238031104445292009062869925293035723287537668044263596954801882836913554473373382372121519051297838026748311225384827799587806297129904247346284240527217559423342845603690295172901601490868145643343862046195222137934888320012220739323642159743411837711243001664145604997137608114510573618815346635730419346131678446486707246124859529075077024421818511457897604246081777241762144871220514640021246401801035428776931611968050229671312182051319671615723322126039679240457413317023906954131697614937865759941389799124709020447014234046032042421446121417916767910368363359986232333392366150051420382180433077883681566474790383029956048901750537036848367605121113564311904271816064197199190590815057889132688322464202048081658560452123081900657293188958164691157194141877627507931179775840643108223893948235331950576831324061572075700770182393586473698513043633601867853610060194004534627731141981241274373860201188353078164452243500132576880653781407544555278217758877356024361684706350920320279625888423431458441727713866103422541213746481780001348661723091820163465147603092411719262639155564106108371351664257716871134661918145841665467582918622021599670097760927800185202115321352599503936488640058414240963391413956614645688433752259075388311482743726514554969978295087931928976350115696576671149406237337994046865364529672049576669307117305405841774379757270305491371974986938988739479281004552237193894409306271220343378723410087753473806681586286040325988560582676078713339367212195642403510863548375555181919884548673058615546156949732412912005374573569156747002247791803504493959177744812811170605704260326368074841719185373171084394528015126986560662954781730697318873645482355489396417099171878008436597451823134035501528664946367310328261408476023313981064409292038478766954511555347484526209829217630669209234582314379459456869013820480539428344906788524170572269615505473760932428294558449427445514881149244601361434520935189829730380834254223825907299980655207430279461209025756283189570096220839633751047492817878363693450278735477003967387670792762424612142332714004112955659054874396226116437146682012268515839263571152090958523272655276628991418731491389403311395796656338353832608919341812710501737047311109352873928112367590723320306427259023198226003492194214043058344432214552362932282396110594774375526871857866515853699017300978732190032207315461385919464352990850356199429719581675615846208020120837563663088076789586262442767755608678222950970792125347589253893289463478290080990512767656738071572185038004115906692177536598538361734065339808628433940947042621789401883654882379670489617945117107245659728703403286158582259041608766601556303659635552011373280629140554865761005306414766320674689701510593254494745046399770722273591318493102650037213666975890889429309044288219684461791845570733834781680534521722337092326695540721339787646471095985620178125281313498719609254629400709293579412029225083233023229421108481604151234872093091291318901083396380498498811954463545876588450521477574381519399556037121390789528149676808135515730367639990293251580548926189594709506501015695395125871069106488244255818655345614066629931128829086371641440247451700663359149094244286361866546365646595689172229692190120659586541349170328406296264580015328574177730672098128485750433353354763397917328421384401443062488104894695525978555224171948746840274268667063679271969696464929684935346537273312157064197075502747805076484371419010182580777329059577783149641017195729864757064535213407119925575313123159034300715449548832460933634713716889973350743496265628169181610376571756520104351289256994595829744842021778794893113112201024853894047636154778402080315420012979393214682445250099520528161471289509193306585082575248774665698330601162954605419247480261779005116147318219891832561045695265433153739018000373334573436661613092046097562033870300895025937013865800648477232932703318020878506754007813167027862123923963720021471410906918243848724365441702944740893781741432485639884683351452845407030836991087334723787631143240083239751444881657129197130825983456789985658155066882539241194407094452830505623807039378078631650902404625932303116360031164939420076894066555686005855024810425717957420491004621380917639476324745545053102312521014802383835546899296729497051780368697097274595906205808947582814083071424499754808965790920687402288171828277439635231653342819175378917285892216162050346190411005485848635612431938663093266664454139488337573121369402757504657537925017222758012887107464870310088256632845375169423732133729384020859046140362910653495844113873002902262546664124770739892939419887410219023279918244583838905662526877545971376137696839739801029434051216377679420568697133160650298460417838746382832162530823428046738497516344236230666296264035033789712866715644162569818568919674208181044211478515124612741685321852789936207219584284035536234905302574013186596154978132315496240019996421252754271050834387064977610347270664583998237260370617130076553097382204387196793667010866173106949846124142959643330556006089964759122464032740437588295885257649146064654030673222474158670442986676736806211538264199931118416970551796449942268298201556978106616642859388611313069734933962224259847582181341795998059647331943572894155000813442723678717174805826880483671434416204372621941645363909534558375320849028645198594914510699481018221488601116712413762815197080367809234039568299637312427834432337863498412190016624068309264324523052181145626784729197243902971446803428279972696636644818584037619057454733985765804378579408674471867867975903482114167980710333605046229420065713769228632949108850826828131560086633630341741195808325255982175025510516259295207579197570993988196519140290592821080135331115153261600416794628062488795884064800973222387063325938346420866965454682362878478485826558676586164785465426363458771731055331859765150361726406420227545164967184211957472615661075481168517808291912153519889199060633674687743400765274401964313883310914899498331508039469138773491956466990088738334756472629918611888644991509984684127743023989806969490160280542335060626018514226667954744511621723770703236971140727093413806160645882448184464528960719827760286861856491896734676469899801921109478860390799584376774899780170509390293019422594393667075586099403975301137264439299624775354949872515012968874495695458457667124633564419010487217445470181957706325677400089196209879146150467101760435814378713743961392065759753310088853806592923477744081461047072649421726305614011164748043842383251670955574922312689328401728726985975988472872709253090301856664564738423446146614495198312809733090930381087754742126005216552842713672599084848680896152285446546414763325549178785980034777463445722301398502006012462056236177145500786080910441146075111567024854334639421302924505936592004169888503797887133521649575242209847042741758514936925703661697252332555632961285147822982412958768107251526302925491581584089161254921302214568020157002574024096851478831106503273257143243954034416919183819003366781359611389799108077389700182080688890262019251121205352491241189095000613608011877066201889124113760932554518121705549333105532019973905122894523830546103868079282912279995023592772404951945017804813161220908600335644196087452652031573151153930862331055741699746446052161390155369591376498252110930855481629106983380117602918499117426182903790538224659305128397584311894857198847439894406110733630212673150705892761281292061603136908118566112822275060217308713269015495623294484223956562671720125850857115195507971098231875873731249201371749952681036934706217958844966181692677910070782771137416932298794370994542588347024137775844078440878454153477495037937014872315724621875066016962677407994469210103172148290267057558785682471924137016185086825866412878298013940078283685699661470811417859020228704461993769372861499408150510884179476944926849654223644595789800090954376557256997328522762309993795609750852395567226430897667996689662275804047728977458043548280799314679944032516942794767826638808864385040037004140829192591758984564052646658648347711885892735016522044251796434997870050341409493484506450450320126910445564469424613886584118347261372462117389599063543948450436961655782853758180666962739322544651595073566128432663578566540120231623916336485628517657479375435379448011637207085514070665512600590680387735175115511098357063732372250862931385870137011623595835505289568997360343265996931338592715350312890292935184155546352419422026648486108094014219714408657952197264984156554004878775446774958085683012126208840782772222817080463762540126206082844244046132400282530685698532026564187170324996691270021946955234120926156924190587680658431164524591126964222531707544590778348271577461556927467325191835129818479538759117867505789553637662613961800422481694102311464327316130640016874437956110107502057355106317741086357010709382190375242813199151499359723718833390769292385256484184328156868288146961330686724452666358038560745458087270087206785610653666457002164063700335985232882719702461239998634412117699145415729478335888230350991313850275462907184982082653646738800334298984747870609302626213670016257980443028461384201738569120104532424080439637369578670057608429306387386065236802695362003410176619961055488205193964408081409715333871053583946302132448580592922054722733434499483635907487268593272699415299336438611576227108361906817640169583498964067011419333915835208350872607605225574862585223529035872122215160412330200289183813652745451166939548208325465132654222450524262503088262717708287112315469985272474333255258562858151410721722291494125916645023010047572547124715275584641942152896281604219446150259640625495552442095982657066062984510553782518421015444207688341426783147738619904453401465002872449391917312722153211483983968854373294809887493636838050736476824870047037728012242846887496532165187013608152342054417584658469023034035161385168779012373138857562316144489340811211098734436247929771473955767358182075318997312417235880961050970435827768715782039985524594060703826652158686335288650639469379416996359157783827941973549966402117411694991045360749373081707634408806791707786245473412067671726182888261625874053304858477181113223605614426214607565132949701556943542216192542625624247435041992447871960606212021109514300590439498692738843199973835817760514877396402549472426949781084906993226775349094906271616446377638693681594672342330038665068314465947876207475981451122198571777146930410009636029190004733778569771432107977654718156358304503246511922911807270639125608020737582616571326334223699206370322627018213456247577621950045526783148865437035067103409055737831501046159896617008083568615772244672893442104298859763417443633164838153316469777261253234901006808148025934445486431944567147571196910211709968077281136906034107196395059886988948161566402406069283692551252428732116558814990447502985286863491795225975190022830664046027744440683401403082883230686238571332443207200391850148515461345553147658510622646507782734307224184120883433243893230575910366294379053754150394138701106601861905589288583061562495469155735652552795764538451007228221099394895859317444015581406854920645240825798055334644295145792058504776154138841548804677235680076423348309626390252958501590878001668725036868377768512975114060541397446858160586737290353389298207973972522051216731163906267832480824276137339836834188062093298673157750983457642547028027350139987465056740265181513703784362206536310368106311512487656653570158780636216184470575466053759946338363574619480483312209149854106419026523909082558042890663221135359531500819243639636120446564082750383789030647345150755138820026846038282504754693983690265915149179920400425728249903199138718393094587703127546412998397602243361363986282208885355875751562637694875337183900035334325375735378346229699117225658762277177289112913071504804616679738591076534645126758992125620235685100916207296477182267207780584721674698516092268291522604905133063517318325198278431799554040217395102780549538266880175947993122843013123058193960101693431972334238934233042821770620700673900392685814779538691568583293279602216958805189321045397877673317411244555176532014903185536497306334015017750885578777677615728512600260322619719351876284234842636943775042557856204231369425183459562887643117071027413183785025447759423919137193434647121620866493028833690760029146882035391784725066480034641617536603596489194116381922127989577968933758546977373741166275266290860558475505330634493514785945029032072993342631176629660310737717139931129627218105748326329209138988419254672893704048113516935095471103976136743837710543076985616932695745735843730436512673770783643911244899546608527740103892082293125687514119434247682259385817934653431834277648044401085423019168948501070027599638549921882558569833396023617187473530453498880958285940365867719895297628603229056135333506477939289934291875307555328850814483706210202155471215425489048941626093042816037006097418983898658131259958299581986310732469809548083608149500425845231370209319437853388022864775832327208702844492611335023094387530082247701015086366944388249075095219078382540482076474142942302472136517146009174228900675888851625053635290672316478580384615361906504670765057536616507118301510121308796959025057115237549538987010789379593260044210238767788799702630847734710552065127729742297698510269983824073350526448494575880870340206769262694754424810097999362302861292413450716869229199066257104686848959949562104501327408346867496926776793286618745229234052567840403842850051822542238315887663515503785822437552429415030753209076634493209554350269967855170703336736458172830283364584435370723964872280598542181111236312732282088939608406687847704572568908758751383018581419891420573578607507874147130307968034300733128163801478314678618612359769482967984184834859261687184184235808300231915479213470032281231657271518719552909240051881591239668621687584330325710573953963622937408318575789062166029632340822180177933986970148551169519143211279362759925656478404495271259334526294922818550350926864708767394066245894119907637007697772797165164340945130845404964254376740533617500394290674224782776660598126627703691911103218083765537791126664988358351690996504476218343009573226491969305858434721378774223946395384633818371594185202467872073854841934232450191254708629026822678707512816302462957623460429188533937094713312426081870462155335532970260029607284163620344660884549671569577879504002620673732421282754256350992386525242846450916088472772774684022270056327512732041222135604821321298818370046748683335756254909399052245025776585057953555457121655276498959957248665760973662168914763735206492793389867195644420976829102664519877771437064069529205382920874204201972051490743920910597530252262391526089493502393218894563831069851428695797405830583563623134583999560693151745135226439998992632897944321211891049364847591922013236616612721362442389136372926497672395484562605407376154170722615029417331579922142407497192843101363624469501161131984675361144044258075255283530367516460406770006548195384827200975015864246421706145987898025433265493637761186119541023759389809252849212911517982444752928405035327479508096535308600215222332123424463440598980232547392250289975238355356044891397105303040632111206079273457597122006932289495865600701031887362781962482790326119882019649646377179850523130673247089570453440223964695259872142598934476554583552832683734535633595986538968937161479207475211770588119077080573560256075116394148258095090375292833802842958516800976950342832232272062792951924570372966369407766675458321375001819294950479743036964356025961550798367240653045465908704861963387257632003076952868943874211682483379592967103673290501887878253899043599797985902004996969660295832330023233858039961775936884327803701080835009742072461680629428508647265787383935334669690122938125126262947476946337763691291223749738194217632231796191357679955771437074460602995845943012507121308713640698134981140362784775107935718870073784889750292666883993268054269076958076367491341012451156305830143717078534752738798053065717269818252225260123664280825537475720295855581503207466361551599696960867574537027486361888018737993747611502762489670804048756561549504220909097286764786739148769529911798227428627758875716121821654932357094435215560198007289720884636242460430948090330435820657005622458985675849064336660399763639055447535067227893588971134280035626732505829077956068150930760042439495828279184342442198214857818544529896851611109053249524775230506607812814553954146197696590125521844092812795772191025527520862871790474545187410809038334994935056566973295837117175203438130905904612898134290948331443114073991953956556483510024629927162497369156238972049283168916442892194988387123371568050819967562705964166080296509664185795189389276036021434312047733523899649129218116239060856980005137928534228981859339147015720602571980494145067984227087792914593592063597183767042232354259975236703223485317281112523841928336844632847546542211997577382099213079489591911624891111278154001328995066655297306842323750053666661204617931624826629225611405357388891976849922233227988744022550330592614066552753194953866026688258106433828182649434126156639201104413231042862690337510143302388541577874092742958506190128466709002273263896858507852840822248484772063396153180218125916499691064210314520868952999050914220226858668352877336508960398617463309752934066801873454186694057359422385609359087746545132941500178000410189118230589556635011660837218462994789615608551065105610004706406699322735972004408717345968393520361639874022840669866911351608009758557474591979161425684535138077016873213590082404365849226999456762689379287514049922144072304564216621801694390683660093559883696958429726304925753291515097175003103186695548960575072789695105041154604463245324265429588341836205528219521702257757332391263710061211439316884596533426553307766910379811037716810699419236480235648941124112867815506563447175714338781640162729398320520760649042622744834356073864555112943213409136194816502375489648471105053369589973717984149574610147632608202875865118871224883118539848700132037960960255745080516896928182181085714783910702021385843554121691875764949664363557467357580521551935923210811467224756352847010077143756445867349227301603435690260507695208305619805857142854002330273986518846616183550034264194039312992538141192171966798502065215984153728540981965806359892938590164275188398315972246457696375135317801747759690914204430203371286279140543807031632584853384523067911001239884216751065608912076564497610855719672370773056298845324081111411131527798575954550882983510318011252383220252095015686365892987331594923412567912111806786456950342308053211947184775251217706726330024545410991276597921985269395314545519104026529819156729798257402160183850955402868743223203321760281063046605684424064164060882595351781902223083146634729291527166400872667406245685813602014236141840672960361078617860175810984699680565572673635297191450829288802739394506300774085383255784480548830798232612545218909341783416593311902059917287264642395346352514475270765574191942861181389435837544791275911423204087568655071740816105346051312060913207137185340832627938921074145348729798789495244168945727877803892786256242199608116934774953587982223099953261382763511137861893324584221388582734900546798899343267055205957131700619960886810893484541502464996324292585618726805900304622753234552626842010153788761228756006985980578304281568625001113005755328389754086644411470728496179543885760352928108488173245708778795395904740802167355030684591559155352104858991314666744893997472727915973870735901173283104537980699174948582918344151091467964739719904420171311108314194967815166748263726677877509023135040115446521465303157193227443797423008280193577910645624473423465140214904974669423071045458328657060626552497245354352895175807099203690856581227249568039430252465932636814577153902225352515284096006928134785361038133236309600408303337917733289655789764230901251005203691067779884590737893644182078570102042067502503713510644555654970843952527265877536706942433378046264877297005972032015635847080782973498159949304902608889042165102437022959041029533260252923486158307272612216099042469155881840173974662524426283795248954509691305346298085097947173747403114286859804424663713008178057348527965721241000435202109045815257487744541173556755174427116409824447037611756571604860071773142662737484698088450182060431323044170779921572941226328070427570710736477673935587256270864367713369609765772080202755507399748281741383993090865593117324057341134481373338052327400160792224202337485643804382427153184958518553641126418938046905719897435658351965915721930391523826955097701922274598024767477620529609640542195662307919428751386073578864775540771317137719706262163373048436820385117286853039547347054401523793220308838075692440978897176222429248661251250262968563543825369794266430708885478742534479242176562023753711227943351314819573103909888140702908536413989080623585468136351202359722423460551420498730829878797004432427343054559400922706584941980270069493675438190874590331404630133062868317250941213476421514199633788021367802398800767736264484509571856742892306733979733106691306643376861520426157042936061466531974777919507542671408263449943023332966357035990412216436764725584238556373579168664369835385479995384916764250779476325032523017041899433764005850799944053425286084785575596554495711105117075664976937451054247411538575044884628000577733162686291863234074275141085390337125078962378010907296579973821367543331061136908973235290268631261605006141676611200541886206226552369798200173559057009753192093277840652291847392096024783885334318492015881473088578660680119099620571385788537454497309932909188910863793307523966992634696002162097113296392348305675989286059582117879572030403501847732245269056447170925447006208602606152635254633934355252791432712030070034682524867100554224283638474134456551601572699342773668107492415378335778905874780006752771636669632937984435922723898921141155213572902161881686317652136880392639915206123999747832076170077102030733809009021179397679405183744448918247220208477496983779365686166088862445450906595064630278880849880382935113243463204228918562151813490645564435843270477677109002392074215527853471657907961873702914453866997259122967742530088879916684524804311030991682426348296266038468266283291688477236817141838146913400854649663556488307768518423516358974222947498977890656123098390659409448300395164843506564184281492929207589063417295556278567496047507641262826696410841836944702361464508035020915274935828297972716737721423405353434714857123820443631339804441738102910258970026025772798030806264868629640544736426526555762663009663168198681045385699769874535778830383603095126591682612701815900195911515929598420962456815054638594832471514918046678141036122073393482971080653025204783299275257742642384543804670168486687007506198869323462073754766869444965091102732747360885100394691655084569614339509409327313119883534004453839808399778202374750610390205846681171762960557871359960794837410309745586975475825269205223973609691467474207929209604920531121893341140856971389193148546259919043955867171469865356445272412005378756769882708584405047317467329231293904913033946995597827677314443924618622325792045535103031446069930564852671207593575287310275643206345212983696769257913123452818908286034758356294314067198874019164198660678706177361671423099849707539146919283531191463013302840249189553365115002326842608670139274216165573941915729427504110466890138083627683009170931035874656862560619286659913539330090826429331536687972214781420062397804963458947770457394943777323840204259923834473465963006203286439422958920500199982123108173334804540745014476102257829895016782827856829870867029662546188572052969162699866016778522956713640698592688518789872837183959974109470128262197273608419145475331497539102292484624479100875700498277191856968948409733819792437983356022964082293086053493981702539769558208522564509018121421035394294128347090177149199276744929129700344333480631377625768204959773741023831942840099486734435125937609940230984004009074328394322744432843223804194228151382401784873400584743188001585859197743836867014494684900552580099943170407007374638628664707326215648126011805449744817739511997409912297943876928889714979839397543951735368543842391513044016187622138974530470693522729124201332312879500611402473555028690995808644352806372532760385715506651084976191431385281500046083940854826832037881455827913466526643381165532036330353905160478218500700414037636104815988371442644671870561889062409994432920114275148708225847315011560319810807655182151849940539794846889799223810323630363535116377163622250107066828892000983358049515109587842836101810528047632219158950663541072145663667296120078435945213558959235226807647697384922396980793702257872865913321857855426463873921743010083141263535782796335137671505499812205988915283002692394740831847556086356201415396178603796656387207236524032813216139866461478891282896697151307251827120065068612685100984948814083655172446062885016795482351248200672119942106712131513424795682011910447249158168013748452745588057101855692435599214545651519112659102917712184500244636505342272929709895434181985283321369731879555540971553371109440585098255562711782148088260766161244679133513920652310578539793559206711779856257947768492122422692449942542144634949027164709720823347994553214631919471383977627359431781156225564194754020756869780309658590405960836836426714123833346821499908945643452665834108639051870313393315947048448341692627382587977623331528413202111189949064980279045887013245171290682317841845130438198928902876931710133948861420793730521936032631147839065935611684295953606019731763090963997542120023718882269332730073440388795121674114747551945582436096439506452247155546126037216527858808833698908908269335387163317289289381274057886947083482293019638643636642947589475033336227368877775775052182634182518991412611472562220349240455440065385081133617609010801275724785596366729674012135523021906162007037931444558767118000109421059064176511365979296154741462706315879889828630571382629985264258617102814025699725282209904168907932837637342858844069477662431930445848471686689793574993216315140028999548205099857866050832828054547878795898888002218906761642534245277981743201467474923022245407593110155888311393137545806385191720483370998625658388157552179894758270318375759542186944330594914592230604675227814048328681023853553596697344156948502784762275477548019381233082500118594538339186738332117257060064802414821706910159366997499399340091935963916353743720237508035346888729093546291906574404290809734802568825892343048867504831397021276799572493813933946078885824518634633733423882239923446951540692963475561557583558273798713172429526183206112057926615937649464977897627262950766566830238379233890697891533764268156726271435127716055840979093193165964732158120605947021430124881684141075908095485043182048245281840306314928734493232316687144738746281796572143780763066141690449883615840489291892289915825489166062582956005632705202723771973242861711462958123384811374129975734345727863810345955773363949435159826942876308816496097841703469176464186536685256934397586596063029004630124598663465663696527023473288251435170611520818579033509185819446779102854584162781056148990835690768676418666833418607880229742666775645552748434720462773147950873006456859850871167476149281259095376167633440703612074478016641936315813725571031495413018363238604175553281048260569618650178777550680389415326511693666681999603252065408954354117143129941031113993983618956808787907418045695817891195592736082438939093900153784929750535764523462569301282923503387444311932816600519181768525689848550517036134333896643402415796870306894407743289496694689835507843288037885078917473889526370930942541268781598060922491414525555847287269445444728849159052990834641829107914688305503117348570372586755434147189530347648402619770725259348651440542879158781069459856988457348177417719197568654620290288361435114801138855867077525650582293779669877006164401894594678027522709529198367201475837552443158779746104037521447716392109989688421378204773267713565509439206373854576349201660804685654050621893462946338397045129897271407131410035308703791538525469629488058676030423351771151521261991895425640656237348526067760611088677035095441496285064762128007453570518479848962963242502222330929432797738470912983037746141485440474304552939408135064042557769604836445047144010882652468112836346414839210436891781246373309087066283685995701190368800587964259074473021319718352920097960881068067452146868656415597012946664572535351475668466850160324088301275204975670351208309973460640800383137140902778650709108159504072307088385145927640809909471594433797719737710569216813810489782803066791968753265488887889206252523468623184033562695391253249607149928001421621566075432898346313026635081329689177818144957059303198220654773933577582661999563493584409702435235184870028334567228276626707649117707111426637706953735720045810876033436454011691393463012325304796266509418619481829621220708855865207521806672727305444204695755328682191475172302621709689272231274188083801676539272823030075649082989468045910760265373077280542894163207096414390992320204541887764508199588143266249943879428743613467454725607041289797259133124636743377892097615336591017930165125189164744126668864325507673857566262668674597813551761002644236659112618158354796631427094745729161679439280526918829814091378014234872484314268051119970401327157900652278474941334814724477659546139493972599481782570513463479513422466991951949420966851863249255147515305083629827241299948636775789311381204762759594324522664472846499439037090549759021621977758162760330789096907647180061161784517221183042367050793538460949177638261865513255395024264261660572183974074618839986798738656909272261248451845668473885039946182884617603223959160864784819852005171524865774427268291838775367322950074610223630137789692439252773202840292322516960419143142402625407286283815417455319049668760709543258186930382866542298376863376548421404573181637974350589065339494499244486590655384913571303275751875556263866028760098398664869590734677839827696363498855599617677505975297064685070874317460844245393274506801199535913213976508817740244769490630011647888109451618629604751552086538501364744768209034071917520285468412502692801430358657122167342937497038722426226054846669885557849483381731016910738793076561700112442095013419155905094254019311879818041066349668010969864546049342357187817343125519100467469969427057839044872696826870600733778105113153972338092819923102411591907166503067644758957841869898041595672851838053390580714967207142391923707852660214725215927709504100656441725223964731789294739265622023953717628988357483930791467978697770858737586638781420549934234255909013906349750183121037917761645267193162947100778832523572450686096496128125269011459775991512466186299270499224286145760064906987101507872010118392655222371998844928706844160008062469389208540056440664763898178107925615503438082276065711680533214025985583457511197851333665745569771320492811518990885583556469104484276582378159092019451859116828343440761890222689394552600808915992422120833958213470050619941909817228572459662782113269560322449314182281499511743940676200837679739312987512811407270940277835142697616848460451859823956638358773886212593584545866781099799534033051835655146141411355986494413864819585873858138876360357343901188466802327278511088307195713685152621039285920507439726819259797817992463027513200645926011546641753828089051997420557661446375453323838767625402679446872368838064782113206875039788426630707322524850862232503359048529816130297243092699698126164217184795710379710983418725174584934956935108599396192365078784852765763632247910528295223447297523827074085009267195632598285016964569091271307902523778156862066147198352244211439318901156320201429962183216861280072072819569942330791360020490927260597582381018401854329243738325115873622899664403716476428424031572601341910077908207289282126179943356076996943309939095735592153305583621517381548166215639882932319396559397988603712451275379004685083750040893020445603429341818672262268077543301189484221353900673533402793365726483161774802414474190484976099364274531988405887353053410377599048554570797910001243281391953912260896134839954376593819716871166357474578045612777743166094331555647513490975072621773681131780753318209574732193634048583480985948750995412045526307894747006656459164991904595668916265391849044604918323581012089273751529081107710039613451150106484270230557922983488596576784353744974391134452918644286010117838762309674880467220318996961135117908024509689483551619638075523505700888052537517112361082186537045283063502769349224618848902593338750497660778453069471087322997983455867326888636075595638314299111372185187083502728281929862612190054677082007809341188883645929306995741206991104365631602039007200675745726195942532835176016016223722274194027393878395807233187489669427329048258141715506201608457186311588827343354504304577781458341003839769405544381370210198333438363687622692109497644055428082141683366080682548904092598238074292842843008066358466017420015227021953601438732359933269924635965744105608466799151346564768952046591827580834080949691753441398550025967504861704977373929376981376543083832818474205293580152364843217864507313932622184749427133563261052901018519917176651799429820877999230456548166007905480733240398486723454312327448850182838362858280352170775154912401972149276890446956915774077797038657079795398381863201351472132121342803737912713832529290818260235595647993739172412890416741987136305729121062507556783984401311892687343429755537803881234393866250060356659607874293159955191398508968171587562738647790661131565861474110101318934251915365909943645027686092523315757493556872075143245219235576184115639117027627667380130388774355459498399200407243626344202205843225623098713670466532385632512989860042552922998710241948785213096573667683854013342522447005891717604914898676584909522924302981713160661468603578550061183906672469666406284929553419642512210348598452646447138446812278931737344937330426856793362087982420538968920847661661602076384010683592190368498621039338113228391045481191188190561054399488104253725692415011685285007519580824693382665893171814884728925720530673595750543808890274330377299049770268089783157341798905991976390669390234829762909317782214506869113993311776699053800787806948647976933134410962495322548987873542744572032948874223461919878065336147830591921479786259376680711978734666873049831546117742648708718116186573377912959381010979359219156040487183244910503769176191210677101472303512929452413165706299727982297687678081876288543704541952718780691570361237750127932215346523595283338405879883243171545840195796158381712988223830500407252084628804302784151630794625690215691102932543523281034633630218554388035328904451970890209963723116350569627645480700333618454787978582360027104785252779478547176306799562670322480127880517064966838964499752045254101827666679134522207466069320949679031172755997747807269887755896844970142148801846513974514321387454788643741110470337143830380746158393407645820435589156801986553866032645246234950931044500084918565692371249995614334947237728603027226033619431527524590274349849447699302885872329977250743847668222161344465400384017220217605197066759560680143496744805149333241092407410996907043521514594157302759589282930677208104010234605590679338779827277796958850936624212637302349860327960382302210552685503369143640912398734226405144588019841763777380181299161295287352111916466376358382530691507483890756867174559262660094494966745923177056180131152456703240494340978726251109020563936714209498519202312377776662285757988087772159223925356282062012094385373699084212543399956255118809866848231027958239376828409260061357238565226271399453550262031508886411799368842799441118655166987403125575446059854851578724119972868231253671486904274044655282651805058149234327367676305241286677559274719174138445566680951293417732810464812664354940484912122467500034923430483561800015189075297808970261415544747295513985830312019701867565858348403355429709866516470667249324005964344774453129400227173863012429623620498938397315466160222177208521887752851245168826009679037773171981938208833094202647067633172291198186154213779781734718495800327902092079806499509318231751864083919057341708993248065307480806262996308103410332097278253303559588751690440948783802340891060283067144049040484610188305577307930169204618846436940063415348739617024669185048386099827444452849313939120215141527880199998420337900546085252801657422127665753989470102822569909285184159336120525471534515785642387479351720575526245603767193686428368701365257583762489960672367931590409609725346313211735666576063418528416084428903451734786901115584857833727331063161970657667035441419715567026973004859603885205913352182014035660135251867950861065276461586615061330102423835649223683812868086771076908407902742759936225742148698180337625961207118122241149514330014309076006959688231753968171935863069162041046391224058074983377696563384429281880521956938644587754431098507178003139451242118142629198744939891623894649519736044772106618834851368439641184672003034030973991585561375645158765504441383831827852523902910548911521169762884676250032209738328676660999419513696573279587462031851719114624979584718170596664110310028822619745297368249638560605324440341944652529850794893024166328272345106311150101126001540276073309577889672202986367184473786034757169841027960964217205119078484314677264227943369162076508042508632370429584272315273599728317346318173061295762860935066649521535495040674685325154327827344292174960200637941619689218240312070894309231290547094792527197809917080931047174125103417959082402018608768755929757707207762638041417468787615064154996160741804166104781357998208306445943305667603705698021344993996728507824258971413142827435724113091972488011623078092224267089481509211135922147930971382132903797058691011092356989331925720778231979567675689563820546306148488180516664682715001951471444470330352503373459265486130242795223530747293520433888902773564079431721716730598658768051964847764804506757548439897294919500760601350250786403219109662524495016880661330838965651604125843807569458583890466886635124529164357576331005718877647781864261569602982367899458488509611860482063913922821905895316023843396395462575348906102593166894237839953945781999304980989229224198011686304166070376926557937362019178705136139921360676988814023383882275740732527414760187081244086759728104775760085897684147648832998191249650868784589294954716524897584916511024828327639363840918196985469916812097010324710701438352227746186664051620115553749781708545423711835339970541365553627482459561737574735163551539555141345299707813699408258532897888969005865292986613958274539041949946715378581584451791262749953801763094271372690368983685506858056144134518514375950772692229887808029001117400079585974638132606836981526966250111132084852835509258255203698798640550070556275376031744205032881746327287824930511393890067232721323039903942347981731163529592715520400615849023230794921067317642971397580578304639134764717151901673311251590058567234555960060160932664422207967622551206340790535908436107121149157195664889342614401316826534233878939670891699243125312613521665399387393056156086374228096615101042391618011853113346482162007428440136220743609985044422865298154851291375778681045931529203561884817725393680688210406476695017521399048893950999328902425130510563294157977489478315690485211088202028891457052040277317050164536627538622864897990984690234827000413391060929011845564248194829640208594845100864002045611146737252803847042263895948904752241648780946303280233273063581373695692162713988332231937874163882834251149359288951058866113154969642325243684376839959839552540823728493541437648310762510557286401405638923073365325388777176992766277184576732743295416465250261511029931239369790530684299895851305498657786056048046980748556934102201505049257846146217199156599255408269333365250734899258560451695316811537706651956973374070092630050243845289372706665957576935153913324035797829354425990515558748492728097411462333982010012254684006937188870390449269210390432660720286088237354882793531704967213440148103404768131459916702224384061037780413332528061308522061495322563580013949600508190514992826639857407433084425692774562093536657346293151296041156011895157125285732661564827077693656821790120941163965081024174840931051423857855133482741571685192684150690852679941506324332863272522569774221194161653519570419399359699416915076489237882359356190268206389578017955232621056373990665414440298072052413949648742756152444612746865359961392090851044233637469324141289685968529877187693649765100871037273608687711194919474412902396384406220827024672732023926176771524790469394975847369295789689111432546856338147822355369700152194092702407891819823701287455044746572463183588038797868863599101405345978506850483802346613703212046820295297970021547343959035901119302409936467720857434893039664384019894766432801278886237360084978187622169007194484496700842311660558217398043767279364606664997089386683177078744916042192600194164311829167553422615467267176763553949901664177367573367597785933687151801770282645047614178183220184633782322447053207136571536447185311988311492354208875795218225139002523306118507037324854515293664904428427736392912560819710445241670815677657413502706307119834021774563169731174428466001185095974760715042129595534442490532770096006315215580473470364180461727410145619053074350197738468350797316873004823957627592767713127157244999523620683827185523906053185203177733937046680792407643009484380084934110696319386468490681832464100298775691290877633825243278976038794779052503962052105132791048643996362676985700749872617140769926368140052420283533884525731136627635612166914654492153257328591924692998054903938508229177005264223376058427134195274818492164452938215006718766883396048903226725954076658206297461169873340088077793695007676607405768731843791424913256606479320425307933067214457213605299041259657890841191564751846704857461788638342267324450512509035615960443222421386138510470002881615275579698532793362908433817770931527182676675955186083008231977265658125630982246941672952766183531892616631671081563050720623736017946637100659647291167309436493865192714351919858795601947044467718707064147895983491602728437311966664021481107583511624891704532301951239194564957406852288038240317988003602896077325186139649708106437583263557297490347961039979918239661955127069478502327830645349755454720662162358268977573581636565325717966276512243680496482746564729883054488270925780125142826134828926529768174269601656957023136786992856343986018372122814697663678489486592276401957272355189472441493834459653088272011150389347598115222480167192181778652104718994716714263237699590020015787811752399326431962752025479343307340264900850987459441422849323691730782438540697865391743808711382608443901480165819250477264695200769789929971294541957765292944828817564240176737905432784451686554738947966605398135534725096649572013062518187326559484242299852108677621952782076652168761331789874531219827481040455813139049239007031717102360579056665380405926085151782112508378642406722118532813842789998312136034915286136614437400174459111188673793061613716535197861689755199770144274718955986893862624918052020154428658754432720873500854222247744175976616731652935082210146095249192853586603483326496678435016358035061035863620065014748414960748621976906025175915348498376528898909905060846170007757992287207355487828018407572944953350948668729891281657293115720775047023831962302480572074213503960899333210772195999381791453208655163013727370271975291621983870516762865995250642452672073280290256684932620510924103804626638776096025404359067097434614759985323763418777259182708897334702461257690464358713030705886922761318241916782163214085091104753692836553966003059481967994112598838383842915050300531415427287912138394957115134521116274860143387575840088615785587875628530623804137466962400604310279392364715816528367617342374389124132835548691210268720314842994599843686980531669101730300500984082370324496721923386602544938040218330000099710722872283855445357563616987457933280697459187735041280735382026140413491728508856664787250979232269710113039305847160738372213210770958167692414688442524822065524234242018361814496275467237690346541497954038784429384804208223507780111318830523759192902546916975741569705192521008470179034342412619396832776478014941518071382625835182479268762781601505702282425571500764912604067125326728203214602958208578509868894423411626997402519654277493561331592570893639545316395409597409396219923873698069256330246886169805334192166174493281172542313884857244198995521167410434142823915342060514919331487066716083379438026095155916902129564765144941316209978650791937975525010102724598365749143407563531553749543947425163905158762068326953405866427452911355185181117054216012868708796540028380539697160191855342695675733233205279985043741079223645254312995743942116703813783712862292751327386525716765932802347302753589543668962347705914786599484275425177664498530036406454583848066800515497329341812079656288461546378342795566534321628504025248766251801722119683216393958412389209106921219750302565695422492141735912908797803377396748952188388734681528416441948719338265723231700583066742071619217492797019498118591664812323852428403048534900790862129013423724675586644339842511880339951632607134658650225410676733484127552771465458837696725191372056678252788535288088850628344007722572621491906572050087634856366614005203938405984121578775736296305604760913579070877179743489021000329238078708153618917154606776104028933802935660734753830692653298224032336225016738827545263482474928874622729684033211959700710263262156452638948473727874303015277389474554346204445815489350022211935999180690032228511686439108821947329540700310910494103448648876651869244191743008879379621586532676705795530593231780089930791804587806026218475967889426820449867751081300699336093806911588155145813239327925104220879615318809232707773753970684723080687912292452462959446832874592177626431575093825326657327834081594391205292277175824688604762892289986720681255551027449492608517781830219795145434526359626549381565850903552351644169639472363743864934426540088994829631582564663227578049830104533886830055942589981116222514849725802277776214350633693642975490968360894772010326766066631767756442239140924787579508472450747299233672569496638240321212247747649366738533966550284513800081266001141987465922771372029467979128674773227816272038000461610739794598183747140989783899820355894892174911328258338843532417114067436211073632369323991129158668585799060286239071564832313999039339744205492286244833202988997304683702296896731669970496862317444660936576135298612249423929575383237131092194453350546253061897069293135606283537653284025288093637858317447704788876461004915553737342303775073891616466904472383462546173099456016911470334155289046560990101009395050566126289542665579605874194423717711774032536947323432083497568640972709377862077302086886792331170197989110675490064702854062642005038933868365342120145575205203776544318335498855283954665919860723116381671901465872144824869807675805051339453084000427679548251829818180379524357270363584902552109042338446775280103687911544129623788986762367044838875747665054226153071503746553387377568814015966211321675688859907111405762589842451121107753724807646782359847285108675036587606953724284094899859054507704481955896917441596373281261547309987731668403010598225877720553298583900623623841653490507980125433472699967967288652096076122181810202277385637838843691521221320947218446383819389302055259515298822804082206466235082686201342391668190915596003757161693697219643060879572322167020130117391457288755614833645542753508684163497852191616513817262804275136079106993978660086806664234637346844041208371135822394285723616182534734681279589648408968184972232230519313934318608013681585574987536273782749997160560867462236348465064796803247645751371256308958508436588547386644890508458044163752382202501916632794726695815216415726106838451313389214665359545532378685002805951733877957857365504312841935417851197636014041393413721983153729941217521943059499224562578996277453193290574488822215289951234148108541831918440210393435421826937549302951643987286173441706472326917940385766465951512974763980009002877302793217416635620735068783667255735472064761844775046042788530438723016622822959651013873801578662881157899525102478841072941382253221652175716000717553085019902543088031670247668370637999281433084334057256699284697981556966130919712225867212437616665673905739496665037327452607742372714555273817135556390022998699228790108269191586431509769167728172949548468127332992791055009437888620566934178509652000437393649214546962559367965386715178060490311090715469211919765200434355977409032650437486048787195357097678537222644987405071630194346981307170930743488246048422827608891176244454971772617866106188613332660680703809803038599813924168755961296105154902704642432458673792939048409171130639456231753174263807889101598383580093532883982748263169255499180839997787812731424689425842545356175764689042591063851997707578340883255883263064008962403297007640674452771807896646306370434787355160214147693817418558775413193921359448183675000549514293143679806777494173951340820657629100588647888971524437555910502869467334910091275660042332728586930562498620695296674128517709986898576392767128480947162419483863532281807995620454553143344940982685039272332881271053298671986865797691139160280295084250456407026278739408722970240851522432783939246536121632729473414682983282583362316903630782515123077683956642793996511471875888308928634590364253968681145413803860813745164141805263452683847119160546075573567981018952671952693052400526730206613487294678383899126346481925225263447169141289187619237574227787094331811448459087184838981572543684770145135208111784274939070496305043486448168703298274941944550415000672542615173225071816259775468370890439318926161033673738638189448838008215899350767643254652041486409910842972215324154537935012026236650713568808466667512180852295944343239851263553150189121593283387631809867706177397976042490185082103020850523398707272892017025589015133787321349127026304909698468803202916487741829675244626950319818344024507046800246457397450972768985184517379907931467767044572597653923953218738788949310960891084884974282782962195522428380497527499257179716426983202557351653793436540154253342274283718038431289551091007975633619640733734725945859339689032655274240581077889856747277034701111732966161003369679323033526529327747960272897793699159256913923228393999900024397133262430406267343140868521376242087806069997837945417613462613520214067184618777717935754376452489451234022671487128158533869113606924667978858126929162531484526935055406749368625836519579110592942342641260086121975115912508859452068097246699782770142362321327755190021363975589244469478470664106513456416096420919560916327222668711484542156693178880630999114635277612691293139447992250312229065284044091598921230098315740852052192984009502994181978383289579139886905427482320076996591808178152654866895829839511312804677639801020296511918350675550049838772473753916608869060486118600913546100870837154424880782505534051966547419276543321894128297338169344829947048730430781102872545013783133958891738897207677205675483882686552104494384273566716458044424339418003944889743960971629319803169539961393746804810511381471216789574914032019824793617328905055263335212984213306584626443838917555411182933146440279017599637248592707564921523076329492503750511434062492197450150879748324704194158852089523644465680134073065373036675625311312705037620344353184465641008585616002084135772309459226534692807808058313195666723200746519771635117810281126281203286558818655080768315141399253054791630333557308939697322119606792788631964213795161541466993398052321002972489153802486474647831182328616067531953642426105598507532790379713032346236804035313728602109066739702949700867168809926926446913303420723474048711938573881677577047218099559726746039843222153495584317911525574438284233224133657429114753727490301723290656724049585602916284094592892050406228533004032918372392575124710804731516933316638782884441261409218074850497429328741148350687383390580146572482880272309138824033324804776844233254821182881925905164544389819932141314290477149526521989621036906401461916569165259544922231100603576613233817164052498586853339803391858726482669767771205842915203568008376037735394804071541603876499920924788586833389630964251224482834058140805129154579746905626741704478040850551978766729559935535558998770189117993606770603769825324217906653698959845883015379771751604333810743351863732886636880618628824520294166185814554452010104957157131577472739797256002391726823326112647181319360371876954085475109390457546965559545804747270547139255679383277860982429424446019243048292903422108141343351923916519955089310808221055832463457284486348112730319283299148339233834660143449368478717287642525357512515023812357190827132766789467620238483864986364934638106554630022852333790399780938432955819346272757341128803299658610559011045437784916836576930125443690615887938068408302346181206230528010351360349354417334668971821155800655476495824480485470579471243871548133280511908774151095934860429637702435464009546008320418718281916244255207433135118820118035874698640733588084993890048999415838442754226729632770362878457884895894202148186074047514802294482173736339471263339776342402073107507444214625354954306390088477044120670372037331374702934537501178401221848035065128804518335874675533332363544989381803700050241062770677389044329880082167134484554693372576808236168842326650242297840316700179837890889007145027864433495206748034190440050080931189712305795246224768424915103947561061611878600792664128586354889745133464096960794171073114349966664221270531874289169106210751442079593929411769607481335177705606846591530130832452351925836968190824140539549842408143833879492721411608813965196388410854244696103827536309051833258696717737948368524671095561943932941523377189424325330490565536101679771090876293500998051891573556163929094080890886156753344091289827817126167359473115266686932825397180994112560092478634744637065272969972406815913658758104578831265296796514986064698715254996004459898723935073368390678883530001617537557855014189508388381758448754973891841639977580465026385353283888099360675826846722974689479665729327181436091421654905940468860660135920084643953314569820684933876335802729356532221109497120824797086661346532069317645709546093842499861304617713149437249433774748541199976740528858232800100791862888832796964281215508217597660747223412734456880805718157706709977091641361164400177173993791414358231454799946745062312753243641172860482138390005356505160706130503870401217120360789649379788511958645279784347862535821882696749411183929169664552238858324137520289529226525251747561418523438227884184827257827832166770863985936962705495647534987140022850351711604169490585759360045516081405030604730381654519132954380382943471864329277704305971794027797317891031208251926873622101051839012576531672242127975959789229008630527371226380419288128569196727663321080052285857593969622486003065403156192194008078192141054347417563909949026378863208240969286946078940902801477073722136860097547675622213881169750403085852113981653645734589839453478339458770107433248235778806642337050906911684740370996725491828683284351964641684549898058387787586023944000436535970369265913678564376466329152249833971234227072070161355777247766664836733174028918122451563223886600303273078916867983724632787744197631758566601035042662108075227850875825804604935807071530263463055084534746906690028894552982335433324284076511944498718855279114501204963441903163000171070107973587033554016631106918459326843313584907913364913210439799073695718400666921989057928908170673604576132466836262576177205346993717875681078871517579918226127426186281957272262611452878307638249673417774841537725164570856085081936783866110753354091210006574195531112183231865286562242557789989523549628581927682163334320427678389267774230389374439851588288004049923628809408427008858311735675878189748866160196423310047043874530398843652180534862983220850759386611662370756904322212137377607422485737691283700769938725147098765020162834186493060092816925355543507655637360380399911130105564393300577513283219689003903150962221325384677243201925478346931704052828849609381839887395487609449133532357258928244493160250577461778892956722673820979162593198890733907392540759377145500593821730806224955147224785502741605591917794493372584569410192038673591397454337481856579355095463116790183004132198609753162352908476446552195629164181958780972031313010795376569186760023190905255547006944600174001147204623585685816454018745072165796787459581084656043610122191527640542334418013155239465562542812513375012839896624179491910281666188750087514648764744958257657017835750631528503185873787267417292965795379729490928834619152036614833991279498552853039578291678968017901902604234497793018345333017971023437721800493434863467923516485036486080034567471080405950023858483630998189414115018668220022411681248984924655974519232851150110909207840099636980515612177486704798356730843985617744599486580669066704677690109913951146913183975964824489676488904260364389853710714121998742282120153071820550838741095556548676327875540359080428732147058346391541976108479869967284952637352803034018811451551810935864666482009899994599280778643209775232851428011122887495559873093585341220418670522092908972807473663845602563050147835905368735296926791339716187278568577750562800904577659594949665126241262737125822541352058658975496367340365791974673735491965146559454378157276676029996166307424788257153263215977576171584432248718819225137983053215707476707822778014743189419635074296380717238621867461526308071349621310374230995278161934676685484482862646427317425799364518842653060597732810144304612636550550180000163404215411479127271154073616128656908013244298064474530497979743958037923407396458759583102460617052084280162185073579564388795331599259547740919884954832606752465641273252007066837209663628601709466462009130824027606569037139947040344996846357721594536913283649506833516816384295356279748094633321206898194510848478100091838455285402828005896033830948407103103131524328691614102493439250105525403453873525710853834353746841388044602993139973166429433405630833744614661196254467062838663153178844200207493712526972579192287214368621070595825740861896415873869632176528933392202547515625581550429079938212365803184613810727916432606756280478511247303223040513736600037639279592634532494966215415736097315992434603156852801602562319671792127143761595225346599933189755280914760674820752833037099973078998413031042458476003672955942537293276413417549240753240700694289703958502527370029594772982599933657579236258663005903806423816498707057320738266342339469619001871453577175122655364885479980704069428893104980443142003279917115039887998371568454785051609119892318614665297076026888310919598583325029365378832031583061020945331421811541958599988727855207922686471354995816503575203439762259677103442855574499842249269387658296805415652894389138076418154924646035251346310570370508543413952857090234217149989228520995219476572595410236468370908808895854050296065054988302749624484073115738577903244381499402166732450736621259605164138007164961100176429558738759436452969464378817261625958751342118994940665239214286314316088479493432323625939907697626562686515379049722585074726345419135445672576832655041454487148197943559816361684378187020904460870812897998115999445803061701190169325940843373580122314157825357701754811469879246183390290832495260430300181959849108779707266239393330972886954103543213571810092940702178697956511443143465539824732409605876171975396766895499248865991702251773508010639112205955968374853853791142292103504510510927092197847717949341393680904810543299147215753736652719943024967670397838636475598064705647440726817537869889698301518460846379536127502128149450273427499342777906644596692909024876391710164351192832669016946547379265433660821981149016013487173328941049415108496931909107435994775527731329532400231875896945402144701455320430865734514877120048760458609821539102056645155493197536465025989191343414661769437063107639296843003023068938924166980694736180220941722801181689938476668417577317626684327864815928099713867017954060217690292796108567510272371172009409519001875629263019420107492748960231839192958366918738954074691066634784343201289101465418379387095283473100877230285958527850501429865671271097199936123893125482271436007307158809142747551634227054064885011786438135312180141642356905654665574547637344025444800229282387425474690949758131147792169546566203398991777283101680696319500273347831593673605658962135144617858315613334494043371997465104857367395176385432898951454851042865931777165092181390931741908609759469416358016311780966761181890835311653465613799979806723387335543156875022960697374620312383895817653317044493548828764065228808012807470723167511516760618790843682772158497316514442499143084061007750112447791703118760447700793363816768228893654263519335731784177743204240394407385699086579545990604695820383309948454811351667856531190722956302079232348177842766623656145536926544127272430212540800900806556822017144445867856456431607243782301284833207859416417728482199405619433653106950576656799142133930620809882562595705240500872601810455744846547928156439386403629924319971464233125742450296509175554875790147193878879914267730711763986556579106439205701884152198490093773868910410810794235872264262478101426679053890060547453186806482441380900988244839357716522916623707009890542903578057046879186403746420392150329350490187134035051891258835322455640226655491683066669132513553234486127083280567158944092877611008544611500244796569505299446888352148064989714090486639082674645311239230789932741147029259542189972965011712215726936513460679791404059444144487757331386364980250743422684712747097601933592264929247848494890461341920493836398129046599534794488973140234626577167103992987401127714760622691546594788983350688470263845239124169721643877074471829341594352751681802945826208191673824656389568186328143625037262743700767956347690904572787221010368994151306569948291194555811927506961886418607696136956874079680717417942761215717395562630471174492394227334325741685957287653370493885600535766860517305552152662036924374438148872681620707102220441998002745283876642995250233041610796163242587831858179771896372027436137666417622769590875981623079658411835342680112292758127795696790469892714490300002593719450411687794409624433299614845158935877709374520434755239264852508058500350513577366449671081011504073850747867360267965101715552706539765281028610857856404610463015407598209513074580563707824608365084116296340154720701804251246579549143601138245522151924640949420575174524180618034031390940399763774591448801559084240214291057979478702327659625352935172303125351742001600736607983895693830620095739720927145381730102967137052596777076304856836125109938748667481052113400497415944048561238388344350673512467939789596089454248704001349587305804418672976267011834979594856919329635329108739553510828847910791710081746454047461456158468884889685339566286088754641390179926149051937419825440172187561646208416749683703297395725643664496224970357998086686845641820569128903484615717213142552772588185961587451184769838315256706732500254774997696736464641582614045733666050553387949686200417993142052445335496693763853654921980418787639735150194474506769564771946646003109454740194129961095112985667415945013127754839658303642990867525017433094919544270758806216256415960097862982290468014684868861316212445266771203628670723669590865483451534522187391002872616141978167246471345169660249733220380349907204055714322688284775135573519577546510684246662070917161863244469004270998811816435801500983544800618561696076868011333834202391324779775827906155162500622332574148274157410890777246175635717828949649594678066186354755858019707469166343356597589736355039646055876689094242838882290597147147261857146046156319923444182219092618244666058193342367171753356020117790769665714655959244272177162538458222869973795024394058562180625105726611967322536431527438576113010462435904321302658769706079922963270378686003917845199132541146215521257666241410100547119364195730162277709580699335551274983739468440221400077919289654507967423397684273197718276926728619417737616639696369740127766506304492165213829496975443030402369669261083171340707010252014438689479916686912093401865873033147994511513200599722581327147350738256524124708994279751293215419857898310630316715623092950310536503978131808523281732461433733214322299960378867436948668042452599236260626715997881339858568385713111385328207252905106971716451464440470760165432345672443449798148469320617500578885160354055806639200706948621363632395865700206744747078133875214130962158013790528253833588133611488805367236362125389945915581219541034035047858591303216002248031409039778322699613218877685915944071989756071675220353957366853157587964209037334169281352939426252655118113273432495437209284957907462333217079455892507367624252745976989752127686722806916722177828674224928932433992995582373896226873541263408917384636624159097641308869684563185915063014729297234038591844128928340677111025865829884488077136903142252748689239769681208984606518257803617037719737279331212771402039888977849599497616380467124564937822535749134118371191207580148725175924275528410590986301017786720025887748724239048232148185840296864216008940566785305717456103055712081998088646532172443456381433941702113537958049270123352093141949191805988987044319490003497366339738953988511169276231761148817039075958933113051292374630564789123135772703685143439671985138603910833939636206312630430718014578131105991912269029224777948221560215210478793793129495558832476823702528243499533578331666981071220288262173849632547398654860543511568123654496944031335829069220196178240934344628838804239076429282119160369487993878470330409257621352130857123938463117403174786376384849259924725390633574969053115098043504091716254249425832621560512948143311527782498342507418251921150184361514864149623493148440968499425715736329406676331129820017748295814377279858608718896414537200231030919341185034337810811316075564870039724976166988557507969993461120358054134078117305073147617525763920803805980313943466502743155560622143943260231109189625364868120074798466667924991710814274107283376210149101504075337487091634398178571469415607478039402179103715169827687877544370913432761758472680971699568679583779346965500707706263876050069166348209799034592280544506506946001139599830149251509322592177765992787125015305662473502553222587853802322094600485564000019814276488138258476188029455715679368966408902315349237990398051308770883867144731016598303648180739193834656099621470336868380152919572830361248224874347143059397945459428930246147225779213348622290983046146263895941832941005522222827130502706019360761154335124257114063933815596697946407723956420868142547643148309047669949338449135950452261351343066077950348367247257977575564522041262960568697749348646144785990167429288213087677957023927455950158506760117588991360790704342237596244163591188150671794168350551996674996827618776193038718217099588182295766675569952651230741189210821482339047469765381880020147254233595366568366661559744472578926683259725429427872422870284867586810347621325470749327261815659699149604997700246705687502151565313439691340565036363263097574939580308195843206894281238697081862826355929194332252385748895270037162773832894721713254482239667898875058654090874715508288454505933609977918725300536916196320054839889088733555088014937207101266096335784324578519521696400956054337255046144780327608558498612734634689909806675466163803395622737422265128593017473111660559117444321717653692799716934390298329521007922657985367670209415852893883325441840663381463467867892004872748736873365302385922549866272703790024872639565659236275410060423717035772170189260695546090198061813588165450300259648950633833208657246167821842367273176571961234733106807252191123119288090881909225407987007047355180035865624047193719265233904847048697975205892239116543662731774902711943765703370357483289005535411956337808796497333617042723460241169190852244148796369500432201780662540002054352714075576152417314657909828093833619385290625394443852286955486998209901951525320163313604248992129726165634946137812236748817445089496308358137388112878006249761682199746137485712748271072027972641655059768969719685592116376953843802748923986255307200664468475305308652829672594482978033718874110510813890918741293132194149005527782228711345558954379837571206268724888033176608798968490607069551760347091762343334976687607862399469011068434458062168371221046985226579679469084504226984143615404621861428688872028960600611483789486052971850677446482035834155835931816737678507324131324910843066586342083301179522339747767141385554482587686726561134784637231126414802270872999945176880318407492723272696004073534137912464445980758296827540119618313820904333609049125302381534926100986942740540852232443387818687790454515523668731957910310629482415939602631864734371901223353032499004483951335110335302272685229435494439693774594931183162101917792136979482474233024817822811638102670891630272064002401302646908911575709363205479709254898843413159964394652245960308891301028410377144405045842600977272962447470700988642079233776485353774556113266422583932313314717975578022132010998785749502318722620790792467894544773997524069039939959234337492854849652335220385472462195214513462769719130636147885901866786781484165072134857874482194565281100678582389001012144852151731335942095839324266386879937990320264033177958883751447194257419346110039184953317656145493582722951055234696521614675156948564768038209534712703114704212285303972251110742284684876103667835938169463484180415518033941447438515375541202433085868804242585402729617851018360431122930726603766752444039110131157526181552907944161793834393588684316872913152517743621281780771416439665478695622950185438512857430184144374654312183856594795337867508047420459510145885763835955948602940650013358081224927163750791384216356079222804491249137684651273749135492445390769159259590118055987355499819100564199348056468359445033100860675728762197531547088335854697722661616718417478074646045637218912069975816137603316957169807411851945738879745897428217272575820860592064269002453459738405313877455798903646497040133161638458160240929223086947835671297979118432560772944290584520811040224486271347250921992591354460768685084007425149160659440252066229800809091681639371152870945419467680959355753819744058755896297484090328218866770523072908736644590457707038810611700040689761220792238404347095219074242820068171668010476594710346466664623733070494588670861799855156015407858563920867677444305690376630572307194994118892713055910065993733390915844939353208329318572808497239871164766485548037278631892758203855598271005977360941601691818766970057292797733983913694103162425971938212985421683809238025283690958333049095340153764809546199473546803993832431438073048727375958067995718355987500592541911440275885778173273813559594527182735318305509384800151497117765305797400046490333108586939824645627992592839275363450186831700905545976425494348650713668805456219539335837861634283275397080915837162146510673334230000085825725349863164441783195093254093846000345169435860276133300661848335997324517333873098605627440236516190089463988286105732062037970528450235098871442064622416060437567140869504155287683099337810152333976660031689444767353443259395037449260517621978986089485667522360464106165267738844545510105166724563658815633503603470036067143719929664168968200154927693370249862316117017771452496336778142055716099968228114281045345179140861665787657713830968149088601795713200002252544326433012656883078434562398571087770545653284193084083557820656911728331067938366240978648660770577416006868980351204491996790438270629708419482668828002909594359499846987115459417226412719220509127173754030546184675748933787266082688146658821035820811703721045975279160339010137104228482979866869323732762884962358650615572000900267756116995557667602168708145003022886045536890552878061473373477546101150730521508776461803134959179400540906388551212973113717994649243531635101508245801877458047303643653032484952035513773087712321714708655240739385114993847345916936554175523917119370817450932031044542122569769023856178652807789710564000409573640961545443563362133208748214984540780694482942513200165780374497273974759560684651957680485794809365947581942908154785749072132724750784159591541679590353670543023718737632562153851859469454086414675420479236426497196682121795959971323017560711304203718864485344300763698624067622156119757974102286880119481847553587231586918743205717314519059237875464602238032294703018319298185234407293024561517277856574994483489257667644111924382507097078088717998613075806845070059830738831235435519715750306736065506444278657168848004161489190403228249324167409050777613400025337564517750780679446873899408248852435591069835424830582406488176978613564088731003238112429677074366442865652256282360102769532220304588993689066218784115570439725654126118428277223242616684849761497015421889213482907076418682602236428860906687086825819360964042638501136308941829839814354913464572697899812175996302463668746433777504710058109432793854448826934423360915104408315330644487021492616100471783236571178714344634767281999660845004934528075023357920615887467212305515700855012020319146081260595822027715147287863814480490140426494921514025257859113747692329211235523212003229579246003104731670722670530309090855732600265008774579869819719112520674920025139490357646360750335470572753260002636348216936655693433016278667770364952449189595361931961991812612029563929383928293226456403973738468105808313697126735202888928262865856143711914483171223110308704606082634672967812658690390884727872253818031740762104361071132497935894050424443742627360835712172590576066345745096178686902555627024130928529520592743881720587157912415111193016894706302251503089361507091031022226566943233429584506959851189660868670790297393764812601646989464396223587512222421947365526264019292212078201238930596875676938253831007672794618900562122986683447342843470714468635124597593945491358382856947648982088320695895315450185958301751682762859248186664503517195363381346326467677797405357711890873745124320172865159886240563266864591760322931450507419459127723236139076347042200841675062983729733247047136221661779191639127778197636434459374070776975979474724466958199206876055132134632059084603533852777276317700772321160524800898175238223063848275146482845237230804878833823819001861193872180242121710812421773034240806122212149098606737424844112746847969073769314668073506345463878918111666527047185488233653591326069328330143591698474171743904855946223162707533126888049252064569537943919171302672855023700025558415930315121917113742051664499860455033316453833054196743334597697812270680454547024972321150222123905674401798314777803124217456683409116677881257495968300328906787135072965147226041448051254639328370465331838708453789607375011659358426556079052270706124303647210086370069657630472575888909368863275744637277728416108547876422556696417378962372994396503972789286449390875963594885446748254917567128389913837510051844514658532165317594954826903958528515983404435154731430545618764671986322693650241765909001660903628972569095586303108245028097262386845536999373045767144786443966305100614407140378844612780794035670857116513351433103612383597427478792486655565148325514218438470020127456600239109528667498742580045201144657954489774322577803598298659076955104197055418169574136942177194985799765384593440276199592897114845304925905896642919982868757244030276237418260387630173418377278749213489016416796367260730610448077789748939559058162824148969087434401430655030707619360212350233182798226185405804134905998731837965535422306434813032568583012932049931201694924083886283930494522605666311390744706972123991252064761292174629698786946618472255742888722076130084933681720665484191371117002175702368731572285044135379066631938421771598898405227750114738019826942411928905136966233158669346040119575496594913889458594709236373007169656656823569064267003051347474460227235697289722838759247186078970538180266602717667417947755476068617571991700662727710920983678810197915204462413108128325779834257889779728515304598612212802549433566468195330423841519481901580399596308676597530197749641899463881251451666178400743445224664920193392384272675129981309102305735930026156409477613658373706094329278341836867780221430618831356159080759463480974648171472604911123198168413053814148232953295371015325491498647055661410714172102215470873132507367352164748476935394516996481529919856355337724032765104791626086239925999865109588083566779739943077282129686080195076727245430733786292857008486871103453519370620796732520804816388326609351063594964695435893146439986429202989178055126918904524087754320839813606258896257387069413945214801131733145621730870391957745612013835762038256338352832046391780460323259704323205716061451258121939647826806901072386029830929781450668716379662462971535393440931720470880542696121688567876411709879108925558446978087304151862050969990857933131158405092823404156343942001882837202674954741259371922005706907176872516688804024320070248309194614012111066819222461056778554925374734367516219911324549554697819692049953053120063161903808361815612186632172980120899298291202194333883195819365411555135463695172635330501434684382711519998672834179963016654750330660418767993577746992351906684400572345191809929041501383528826170347430101128612371839856257512886298509819163121925450624246300720408795195519659499019839077799721788089340744548101966103561319485700923129039789438944487175294396151058000795509793062848582235150369025405242709994809503586770020707840848013790305216827340749333714141285916295395873146972808330455124495928629057252705025778898641963704114623821281724507263151471449050953143447073820566660057610656909857789273118821693691715996350022301109331014503768602410196353087462185596751121614699631466501027904092029143613730858981760957167384986943737514256161036777443625870613909151966259898275273540609611163431524652239201481161217577866089833612181691281383437432806382432847695792891889577369242361663202655189132671310323411680830009125978780925727517216148524587422370348051375371200028864532781418901454375750989161625400058568353367653784744276514235532839059190692094641676944564302454065336380685040070849237554652987373395130343599923349464736295386810591817748909750103242637441503848690020177584119534912672017402833859977831860192291214306937493090518987176364772668736215854055856482774217648170005557725697543441191789617978973540652384797528333455385639010554647242463346239163093327264216594352201385264845127839616542711340465640692833069146356102324790737771665070040967881163537206861712018448955782658165626474820038186191752995546689662460916066612886634560806877685296981105157746496262791184903045024901092528569830672297102563632666370557545122821601722854455054830828582624781550241754281720853382533735667373801484567904901235248680879976484705694644257257152936693368963343564333245892464258337803440292993654021792416568540650204769532734836022259057942904879718153652018670752323490390748260435114628872018759062789892489224815263247716333871413651474147852863461290109812600528174543841016833334323263214795620112054118833900366321415649006512282852758542979543294233754764190766491989824483296139898884332199118184381911599495126266279628735458670957976599748939679155971120749353604312102770712396707562426436008994635589102629784094333305139581504356722030841557350240368356905738307994482277860018917090040330429757972589050263732104107968186387022184951505351022434616784183219092239467999550992989152684685928382890590363567699624347337236958722307721178509983225243551813059671743671557556471404952991428386947746068261316215699253456158862488468232014790268813158275702754245756769052706845143984348508357272819050734493303904597658629747358918501135111329011499570183951819956491588925690218823681212154814869017852133065508991328728166754783098369524521141871562548467819115897155351648136403546751952192622017658320461812799936245752513032984214697067031110583031453935653390443973496965279199924727310864808100626713378802860698275399360077197616451475116872186768950331247454005539958421461257406836676137492160309790375211707025175150315748425322625790927670537489438964714134897875768550324167544932762808331668354064043410581120664010223027771900663336683689421633842021566220159430677864303268125814844117245399983015496781332903962440871708106935524449173882537914082109450159444168226144581105950889024783849928990106000671713166594644457326233465303957251023524156801259675971847075470437740727454650123950063032377517813730579523774840805432889289728203817198964063969681449207657448068445904786326701997951146355337715947242313914477204193325088083963786616804853468995840849817296292791497364020060812887804850179144599756528886930033163901465274211538722946380410995819782729270243348814995757116449745060646393121278237472700803344450720212384478801908993203565976080288111541877852892420706527637708488576014259981356100281031905683817025711780657289488991052563322487024150212374452903071207637924072202065126133486705838556991869765824904704209791436809917047117995536969199210804085476128750535329951784711710673997075592387421329585540525438588294962323575345258350600383159291512541801835757239100876925071304216633742410234446265894481422539553200994159933839813450781886164424995369330855769859829613148579533216732599631426828981111384471195997268968011723293890188347814171249453021869044056904789863431232685770815637265698589021999926714389087516257282170117318961118277494033791934281138942909071392635474201298258630016364852814027722925084970669101167381365758239118689931842635483165498393777927437945785816202367434426235742312983423420322272513351791119888132719655012528730736502986997375478810896589927507724642244835832920403948253017780343760339424145982216119300642462918249774254650257262463920265671243553593989924640927685127631607312546369455887188208491765009218824027360878198695313797413045199906222409891979148581194204825822147766769120856269180132046979393846251455238696992033393938417663140549797546394622247422129520583096772694629971198564174737313562675912265627962545683369476754061741974992783633634736040831373135727932653906304196458574897597890105269492085771162269743499863200243978519709982661042668787552143272756342303707233035001539531571661538941043470661616913057208820459899858905978643178044504573921904258421105375823355181346349337297919064734864692554512954925844159216107149198506076073769905567189161440729471134160266732006379935975718328252198035507228645363107767259921727045670691830604354267801788475344266240412652592741626914308960635638399547336599373895361316233504916048401018591233146835135684789084422324330301884733078568669350080279929120395124966110751063263737542278969402499778701485263706158248316626141239361534268188631218346423827075375495432372635298557452597300178268369943707496121683793471646605638402958575738041075465306260369492698051065997865395536212576068205708985184907345458911382982265874435114699818415850870430091178590117850045414594242578461540147216300393326161442668732554871918341733499623582631278515165134221887900552871409331710645882939776979762722933679406734655449665751806348503811180197855198321860648915756988298555022535487529122788223758086719401568741883033200776821730491766407821799188787563671589452402166848755538646614776847660579718779974598622605350929562244610286255816427427252440428593984673395795904023258339289032327196717727303956599228161935941212304483486280245364595308350959000683630053662369978815723843576638814671469569733720075743392470873123125908523073726757594342648258992318515159462842800051329896622411609252320548955774003297078638976056739211119537614872200462845725951670590578623946981010990131846384136983652782264855649831767529601657014009677875074032072982852826729155098441914451292524458628879213166731944285443676553195956681799454758862441310548584949985710224129230313044077466854625638030386501995296520998393483444797726872456153316768942759334927818028174706172517194061409713033821389914453075370383393482639327843307918054877548149437710127274799261856959432891086698373147733200126182537608847137162524467562362790049597830987711058022479207313690333281197994954191210802997833669043787864508675996215551843464742993364235672823031114538413074586288634790503001336387399768695303528468092254218438447291754615911317838757392181192979984803585567066062757402917717555230605598247765565111164710922736309198955850093863581737526365303805610152420532809941675809262993026645791624255722453683201405233518608242348582161768877345395928392022869351886901942618492223224529192319833277981626906076520024437738919990010423173904728912002315095788689753921897558882477385533470542276526581415945956893590731696728394000849449560236824867895973577753136897353558982771435395564482702116291123213107544354320743745378404002290089727103168596668258606754567314226022539131865757833872293364284848969282156298345109921991559214566786622119720796499422186766602581046194977649322858134652381224999256821342438825910481896630433919646645736861467771235310452678371713225418029937785896652430904440709914910483513793993149373208357030123635589836107414141411764219368180304626268829942333122128103159317246766019283781548301629608628628854441775420591506011384327487778246198369046424332730971212263987105002976494968376035913327390455820637681466653184731696013115081013552597895148743966793016108976088098324376256879733284637563770361379297834390336934316141968856227317225080816489400087163788366882750819742309650920812243716156129525601561698438858805741793504942485918029696747424277968466422800120962586999931636053372255541305545331297972308737623011633706122219080893281122971760045108034315504999566911428294102497174320045512830523577326055580949532601617722810227715444060284500965676581981589914771232679735374189402080931366500305675950407280936725677531454848196949416139753513483937451597554121925983386417266109741440167226214316007250048682641546448087705470106265214148746558147888716514489206301934392429007133337436853424742984638478345766434337006150941306838734316992145252364154676833349558241751745214559184959304558794517441628920351432404694145159284134375767031951905689574033297167220766934435232020716389055238516390309752120462341407746245991425655268515796948187856767264572964125122017450822819409371364013087485061310049782725321213518757678919646611999624162756343966144690619875325807326631193397565448456673462098006954509513988202247854205600505295035207611306062176427358681643767403232622860463805616382702741582985411370324263485807870561018540631994767068842803729544717473473395125004805699966295226015046918590448194473273354504566580617372620089420593054657352541996777237523407825420269617043933303723685325475358929710830230165120806225110393297263866213713741632286853545477895329785257358413782449278951068278007227094380422307279420086747136891221353849787483007688388170498281281880227092545381036246619782146250774400525668401867650191097406628330752669762846199925344666193862616999135672406913187105885715266267705671835681563496638548357773449581965616619869749353685896471933957616215500825403569821051954382468323291403925631669674821628338182483963854652811682748506098392293822679480518735844254603717782926415853421452920661382662120370691986720096000324390244906542128418652493304470856891097052259815612111631146673452807486267392969825699732818611475607111314677139892389750369701246401782454654359276060370139085269276975628146607985207415083432600469554880394780697092086724888618192302374789894596532770460579675962888742678644343341592351533175004632397049075868832314632073716373130279324164622949873020180444060876150244586645671156117079395227260631285184112734044046982977199164345138182180263913724804029519807246095769337420903625020142993196147561875157150308037001523510644051838743746364505243228007848612638563672928276189603425996051533957300330649844823729030186314756660307444197517193253475167162581021804845531157911319645848348930959302623638084142302606974763376036755488188611054777090984312128460759649821434910221736903157368089213280554519122083604347003795994007202207534901969917028328408901348357362182264550011817635028245406158339033960036086063721219805559173461427803018814877705641966114192390132939323087506833421699657273418343539994438779020280409701151400244135444715935596803137627662238610585417359195176328190981483156160877777982293873861378529043855749720472990349963154371795561122694800743723796716828236366801798051426273336707909576232323963017328697049466043622083230056771257268732157939188125927768418730882987034554455227843247805519581259967322061420544905904934485630293258209764727793345767822961224917699247936588112811665116079727535280424075242770357316673786612762002669431681865766078562759326397195960832241977062075137165728443300217330057064821212807676734812882128760891114568967877098327945850508090928859507602392621312476922258500540116530671215651569712279561725677861383609294872546917513909238056516716109844119152816303303961647642270853462871024075458481606913535701597362816189021596948858346021237323226238455320680843146777124318698429286148377507780969927760605209303902852601337529064099678927911844383948223531061250317802048888322940546386251299541770563244925128906256012868209688511176828242733961294197742692246623790013919111346640052715457660783334736224809864282130838783373201382211427904385403070887140465998254634734253205761404497419552031968918229396229262810090495417524745861087563941737728955722246945300879109201453371881266320470082256970499862127038015077671864418500262817583567528197976809894251334266991080563424004841406379368179059691675286682735601382753008879883048674532360840587520640775939709185662658177486187391208873929515060412417697494511246919760199962849601679553200359435718169012566157131527132130964447002778309792605396218505559986573989823970835729461223818517539844986074593079013406485360595416722475410189334490436727021902017530431199833734675023418905521475668591976335608125709408802379949337296515613749748754037921043913113521960870134020322583515170819593658781644592224326797594223829119879500094486851605621556451751968309109412093619402414492319842579371797938172173076634038781709549078837052434980500904804490086495295852296084942364088134101629327568024651888150054513018141098210213347758474723348399179446326459596668032507959590491111632215738732594130258918560785167389436526768685030769804777593848311652401400032031254941078651922516052603397459407313309321960645437070018197210533766797093890322662849240743200455964215063736214633794303667547793541270169630298638346313375715077412554675507260912524460123322524046608666612372271506790966285925797276276273650913927756969153339698118784781362309706970124659096259366598008779325975870424447672139469530168614348482293381976104496877213479772072823524322301979663738357788582177625680633086921036523058522327128995972248882934701810828220242262122218199213210934885696570012887907916259105402945263619911784708427955483312065696707269004230404448109196151376358849010685909630611488866066083195991111899949651181961397974748623408549855651668648547342185267781149742510232335468563340088837138690624772001826019404325778228405037521579920433835164188888327019426378337047660461335938059016580242217241835961462645329017877949253775063041989154543795008437541488055051132920635726194157587487678152485656914857102662444826213751882906603499452658480513010078672057266612010918531501982398901577344141980841073308540045385537476047524103979164514882062517535035119510002875558142151783096938948829121892600856325275162676276302088502929353562531768580381915087921305626955504229124403218045039908736453614503708445604619540534089916628402317686313924444765527917166562439974328872654667137661937775207742902000218445773019118460217256824324056693446926512352709514779196463384637254588269845534577650870255624200287084721578158240325917515160153308140310288309634959517337045817579039671852008952490891135439003316477931783916349359179545728245833521108702783522378587076803867272457824925607258908961948092026346784306884227983094572350900388578980756267103250797487337958292536817330856725189407788765105392544054335271406820352540197364228326500376463875207373733026879351422900394945945660080961864272001667981206327944820002305675488815495657123223939003504614651655509150701301962297743182837798030136082808028548007432763504549007897364138383649571902844289000912009726018272984631256827819818001111076923319266031140327950550924525407082263686014963401764232845201658400940843361570461100720992362826479418027081922375156642411363197726873682480080110259601021465298913030336450957662617872549921466348802815749933837125593341172177132755932858926530838414219519368838869227163790471190882245779184788902306160792502368757270340088668986876418473748039049000816558651855712156097279996651651654146965601048313124848937246603120291463831402115809124307915362598002656777138202431342681691262234156726240048789100699529556513089314903690394497642908496319136712317013727215532300020499099126869762660627743910006170326271785053018352542611860117408518294272775560212555441120105807930004905863841382300187360269269206572036762558757561112214840394871958123506047456332602239526889612427674231767255172954077145644160177374104872382972652140638053423781969646398516849628003880604133254002904329052348467137572521872087412371442822676473867405138212179244222699085532736040223423560991426468289022279987311216738298158772002200157953715588625477037250451706580327320432694292107672138764351512519090950797796744583074171430142902790507303283479220329008468544225316848338534010342147266756347266589696738723238935402318973643918471477865214092513275439819918804266298073391206607163087619706954011638830444429068640772771026229225849689283521960328291561642316532331478290647964343549966952844616370404925586060916207365911575986303672567418421911114195072475963262297860951640582932465780389837849536565091512048749894007379700659411532840282875136173000010168675237838069142097962871893532976241897724475391020811461549090108974764807759715351449871286612416406543443895971552434044278601872199900486110503243819263360063465949966624444708524419477358610377883862162206970038298353477120363017530190009256423839479982397757293972035319835234198038446942013167208263210133495702799054810377168317223356924398563459351826206442736556886724226838345869526166972346716012418285284503735380137872117887947843970029227849468256121011656388366774006576013941029635172023550023191438503462975689773029023706957863863767348034408470419193540071998031489667154830475032015295114279166025020841598656513549691605992141322228619099817441998476970741279472073863781483744913298059795958572006941010646823195885541968773998699517983925804108278855440228547049533793636585356874823766550959539624826951587715968108023698894763770874307663645100047538794586531344485422960731397574192797954370425255285903572665655393034003916773520819900720744113819193628417890192084473554373730706963665263136858279535509607478442943255716322153549866183605285528691018112804282307473462653039453190307428926187013016774954482439062943264431143252601465665541483848024775636180744910513114008232418396135966929747575741099324104191205244147210358493890310595646289427602791391860287167423518018961525079299953656091543437311519644658491967885496917341136011838091099572842370225565900594297736847369635508573674598737136589491865655633948958965871199308013316981626918126336001109119712574548245707952229874510792434850701745577420018199815179754268374428493127649474739735943461059716926963284601369518465624795709268223701762344668476079469106807029916569857774166757518697990876487010046648531550171228136648956115970289516720103744763726739273071416684851779100947486883476889777634596800129989952422526021652170184765425616914309551730100248347835155421300006827490387660131736839099381719052823096376363792682684749772652494012266373285832725023693136412848563728225566022980096021489752200127756734417328337954086286618532620776584070555319212451827089374040008815204433977383036187354913466075194673544286924783644330902634888517832614340229158972336916321891364567285912862512635971365996695480983884178757270647109939158013337879960682474892798821329707362737436814459469022730898034809144291540039960677676136067057371157756248494488645357600510901243001482058722868069341649446864280550181927458899999199060120790112429259807387324598454657166293426368272541509042403083306152765960772059053784808568464935440918226521262925255187477473345078562482501366207303168784689716069838346977885198931985250638379274249112222520334411905946005903075360308140576919123706207586092896806767261550675685386083496747106538564699271122507542876753719121492220755628267685011680835345154213043913154012272641136151993429177637752144450593888469363382066393094900949010085208559426863602216915367979245760270963064660681820690560133044565741384303762857776279093584235015525769332488151905226820511369306787626231350985520088478073553079134014293205368238879956812861372193361973240961436907193745460041157550959497146387323415960740593545606530340960897382485153267117696691543066871625897662252188869238470649180809546282733614152216837424721907463714203174280700206948721913181353223834460409624791646076638268688794305965984630555029353330102308875961197779566405072168461432234180172260358978348636511245272814942828001411252274754059457780604610626623082911756712034681548934056177743868856219571088614306106809438735001766018573885144969838721238699295314684130829417532299875780080243287380002816257082007616964884286176719164011548458409162011284806053854574280274785577274048134622531465950915446323775130305982099349834692492469183141187690055885946936527067899414979761101322826151454484150518380640769205012705953366552182136805182338524550467445765576214545300380103076862883233544416349600449403719339212972090150621926331724426458192862049375551759187396733631256954424540180803472671691333543743732087776483638046846701717822550914351277450533920813963078383274999770371183068879917365247267569780807813320656452358669040953761950081164908358089880149950459343084441982487344856699582856135362472133095589608299289515468502751422746756547825709762218006573228635147052724045463082676650312778162331316069824698146356151415042581146038634161317510498350917421810806803466022399406045292650222858075775814353346897082894289349331844581353931938633571188025376168594998853433060337871295711794847823373817903198744020978742494308845363682985533347910683074437742745689913826351331587920537932229087496282788312622903733011788835568498802544433501868822386623450710521411911357356831952848319222885281247899966979019471127379473653485107855546709790975569723844993463252173727990292489660888522421514470816122982643564722395836455089610651139788854054125564862811520791079383197957322424098498299684166268137401913394816476202821054664731405992153726263188496112458150421866203260782423339396912159480469609791158712821530764484126585157077072599089571793440689237499144391923843611932420206386594846328311536467060571087154651701624220223748637964662074564997546675369616485502817574175942453437617859396554241666448524848381886233632489766358242367712461832688904224008439332650985462168756077746585410551761186638595484873218824255120627872311523687974749366721959863913135612930337787643571904445347555009980372664613730229428258955042141198574285403192063980479303993091536196130752419677740995392272486639295044685708495143439080050887009800579686372712302753284407831932286332772547633658168703670958247364077909685815008836825761733023463233266859802807843366667774792354843086614330596668511990078547150350283529556503890816473256435135526363434294178633266323521444516491966527443701731699186136589909674040420118510137931588110032092623857476751518437470196778322867245357582298186263012317230417438008860952540175123912985172791992635651477731062648141693639033234346698190584015784489437155058540375328385689974440812808954163715242345915233353938529677983871663629052474724305338236120306171512274542392640950899343362107839815976401576637106138222102899051727105044851156913954237030238304750166639245422252137227332475559690247275884328317760565609133887559984935557561684601999777030024735305796959918338995557014428380905457794686360016663442662507415685689687509462607809825916131477094622445374437227778928563976255837939585393188132673797605395508467621938426231901635256153705150338814478578669499701385742500296060285584674242813706695059697903349262273946394293979788866280007667437127783760303752032007897525565970188823186048072459989565672973472669381574378239546032334543399454805979924269428609004195842107995065101103048013258521248036626479170158886121453493259901282700301674599229212450861228221417785602167184865138813904021989643118191205588094132625196969790225879903272520477198981438874276323822152710920887499118994792655511574796318528470718521526909747423029394124744843209719024326323243595043889008927309355891095078737177098642182025647311634649397585705898543450695607271970459503131927314789160163175163062831235161638962145416227964444819008841429477404342206768884318152938057853579257281263894338431260840974794366098195110470230272110291788213959563141093108982932151477364290153619300606732669456312514706634367043599659630488597628700113677284335358229708751771690590334535176509642848188156774579438022767552500292998786235099575099103273106546301954085270934009263307087470441941764485551438980157990508759408898699204545972014042815394865960826403473869387496010536507405340168473667615397507311162140443176819182262822781205541711422864088884326599066201575081275083686455809632501739054800671081379417214826973847920052271726103858199307265624465976924379168714002247006626325760193056328905118668844132104212303852735949196770534970784207882396446976718749586235391675821902004081717211640174175689949874465554641661546439431984988597514673493974682694288741058550982399341520779008192564184889519845183410870667266531884074565954087928337900472429641711755870240159360571144370508975200594473873572433401378553889971205802237528822291524367440601141034347369207522314218081811276919751530966777542202486332716545053143845894334075006324782954024117700851118261728470331532930297005971810605578254600608684958333259076972802152055050893016166071359803283720143714435596911342719708121546308305498856823909347155957332628315598311432052169375963816443211468052151577039386427507036709465575362433414132715195985141795006090279259049159884394940902260558590684558103085901070102160930010007074430366503842099554787069636360694107674374280260070804904518136214712386897848570766129510732856875669291504236049461462014260072082150411849353804159275207837600954246363022454704788939283586149934315073197899537821331160715666195950484622635480379598017590871138328871804146228517011353588780479488973716052323626422469373708062259779144240178080585428353237125628372882338428344138572516654995463996163033381719260998713468330446361707777581919603762188310542060834648140166820916107065881103111229003668953435426422419210796984543217498112450872258732349715172695113152276335658071984966270151143635661654375323503130623771042721011668517311261930242222975024588193394034127467397304210547012984631918168916394614042120726736189358732541676676076044323991324554313276633335852533067588983514417221610507047975137055428605327643529922735231968677300958695327930126020032251056976109719870682686819056154257425115431120964216474855869213781963918454015560978449772782256485580285962519188084863903031804265670469313960910174538059506448510402670499022296773970660018941339478208220910357423850182096505952163356658852764627007110310172384269839027911884859859701485969729634109274062448658461729779027289221125217485460752619580947366341487588159505456480806311417701795168486015241043479776653188335501192371739095561707408849806181551219530329352471481388594271199493100274829409591713614496501057272076674434306533924872340310522532621897697698381839344423501684427343711482504918363002429741244660258283540679421893944202156405768313795445879917726702796974486622439257991591895833526835880929240116483373953796034405285272882413958722916924241427414447113885705624809169958014581818981431674011555863205351045846559515257102478783472784059309109328173306573820321434041704758547489651096888747366134853893728799451667545000011821564881353242200107612738487279946748630770697803449328203321289121845455051445023759236969505476289353096184612402636470288355099678158266532725930013988028488735957346847879774000707193821100197271853355192478631161466843162263958631045220229402402304521963489952445669758137938989492760853004250539037208060770868767211074174872008392957929380407382015139681018765007867792263371837837144303762695307462193001611364129306404536103628670638219285982948577456322248426223586302253385652958152918767068804113379833616326555918377167489192258910555023588513130964382089157014681566391345436505795070284252606321278858878625112251445370745925561055312033361585271907230112806654128097423928777553374290764664324320045611100685561858417170978923617986640239614780712282505495465974737457288157078977018859194411375515460218370398904665702437977532080861362694264432994702408370564951510687295544484015989408514827393154045283054927246472284386228263704707089140886209439267994881505671494810052581066364471167803000333688678998766202504988094538392848490309029256412311785378211588611995506985054536100161499799771517712009973174336728040045299176206523082762088350869385352905951368163181523750292582626257952354969761438782603937275648704960705041490885692943790036202856646285114149565845319981221386049639300653016196400206617222083537794236470901526612813654455243069328185073620595772709934884482831750262441088683130475559594017312734227223735059870942221982082853358605320485110858480853891484269898894752357210432073417322752037427899715711100672102628405633792924811366326033640567397936978884644029967510800990224603429860420551586281174431539525127814126852565958323119026314310982879029528723650654697755844667217438782465945826191708343195280781569686525917170823636529945371997177409620501644432053322173998270582423743608437048634599866501714036422594891354261037047256584721738969119419244073050061154292676787600639641844876752629578513643922012666725271030884527650129890762485903619974726239005205317546082114615449670482678931334539360553083538828854898181583534898777735181100636557101853166054242892370164801645831839673000725896288454188321515120222335110276947200551850010840108067420665235182513507003923866868349821285037700537379759369101643942768684970006666109200175220270970725759143328095642533739064241854303503114574906045328143117352199077334214040777194006717157102445722233019389760371199596033654029362262516841811857130758685652645171551040329123009065109339639653246705877911197454262756412206937076474772271956322992204001038799655631445960014412031321559544201521097128976679122449195238255313096202700993765448741281011226625594386701677769325722619254294855366489700258835656992238518298919648264574158068020049255459581688161501280799441572488548865214733476591419385785342174566884424927523409996534166315683660272490276445369563136075041436967082242424550214964624352235905527582074659977189435059754814328994296450003393502106599934842245688909771185998251411324165508775688287911925646913871813152601779022291635921049129761256466135394454079469371933991511061185625664945236383027099111239460763393797474555193540179952550811015370569514694721161147329464032480518800739801862050449602681291465245103940212939930694828166968926343958038316860172687134706887350733881336650070319433306535477040842766341992661606311225198464176109935478794186526834855556124248738156293771399910752375982579389836273324260381091071296113306838252107057948645403942936926568692031841493620322701447202265692654396041824749256161276481548513133156013554275830882876743307116255658363128348310893901586139647643942677848825714669042830367002371128468077202326899030748148747963332500579338808359089677152318817457981655883986250818809384783236602705212038146411411797117403353794581013322029128642342379529428005227270734587373874272311085337582879622087594997797544508281104578063864424585847624171216529845236187268275513137684193192111009749035316381365217526076370125644129196437970018847431844708083694497611698030463234194627693400084680547087059339853991182463572630190612298121288050371413043022409796631973982142659383569006523984089177680456536710216923067385368015898089015245713819292981169344237470839965350017770789458289369315583898574489046763765015983714832041027891519893538733904388822380041649087922383124450990140387950119116196877456207049861273840432747043317026513987429125935637921534100192325713290706835282618833219626181125106963982770366227883069855348635656473784576363355049041647741661112414072373063789051369619209359240710550226858922738905504434734010822576544363880191477794933943387448629563753759534380460176936758764053414864390064408501040535680232832210299583946984377720741727646246748974967156591761444610570597352817134065254412908402014411963849662885598137454564346693237300039757526697160761971761250778440844976185501022027189576953353803922426038209948286979360103733945458609956329868361016228433768751682995103137702613143496788758743079329050951671895372607229627051121428628803512650753883484999119823881213619378534904938816286452233533154662411332164280187667813512336455389820124040848934024881058869575874969174006002775753514755587043392694552618913853105935932973062711888340788867648308385784059678996005537388484981258943787612302959467679519289170387332614855351719793317345757640952517838499809624314239414429276691163630929096403787878642492695037440304132164712992063688904524928838700496242659501516370002460586372467949729692975365138658859997162820725738495639653863626815834877510443067916438625456802341808293771208529117413784718260701604378333225605567879793482429960175465765685978898689117554454889041185567573078210300440413383133576580048955910729665272449624965491245769048254414401641420069175252255408900204798896559780691962133550720120059903636967151886362788312566574163829141562352069718363101276215503021638715433410716942582987841718970241397406154450653368460797342940248116589613523666878402285071001788502754454738701470763998621977735542490590603495815990938312942090380514104948235034213987366758747598414755946181529628585018798104728647219112100022019977860616819382099502836692748515724068036768636457239690346164051666351795276025234997123749614455562225564303258180843934166616264886688323062721560347938903895161651630608417612198805814283581915545022029741516651628850578060267075288319709726320531841872130070446059298191942838251058982196159733661422488170317758053982729941986949725610922931766565692372644694680536871897413228764495411320110363602456795744698079246771631510238633956776787533520765122394208530377012439401146515177993918964818692402449567824749174282913810068897248134050113721713987377067669933391279005164298054041908868133721548783517948194380035236103651086139500302352455461943515048881341555137585781651627185105672990359391117939798018985926815237519374001848143815712127889015612151842345351129851755828793491823894873336255758359250154126205066742515811895719268796013725706657297807100118482841645229718610262721665924784091734286436493316269817286065655072048440769976904691301017982797509603075217240290291317567768399276272986250809136620836273912224019112935746569838777846372584894562267668038137723243343930347038812938183584178616064013377514291828109473589822295671473615428032486464410392226641267275558510931131666780011751772428380760321244335549310942161169607073677810477951294361674074025200300858451135812561572302118412470911782846408211767306564202895833789796505137777606761917377916262867703830828844255077832151217097287573244788850819560871117184626683020029482832671554936846873440076367921830236173168596720427742200251862919271389981369472627392792545932485990694516628365562790144416977324372062907294184993618908812145134472615835218471473028061767607005897446845039944100900965377971253453577795278960535856054055563790678183004730602271165177458621037810459151919939131643043007859055653016748099964986336014232132709771568646972400882334154400837334292058772422169982049031808065590218245903929605122557243692487195156449783553037445691747052063694413057186109251666796193300832396726722119065558304792655731766346800724887568571928552929505304424570522842922888558805108272104970888136138092567383969677701830349780282154343343184266350744235064031379774722048307326368523666980710715583573752850039343843667101017812423252910065410570789546493189600077407224676886675052744946288291976741097295154209534494283007115088058240387228326303630013200244928161462723861005870405730569747901098142446479791869159565643893768951011883365331776513482253131663751993735379641752895325293461138569156846239071190525279056999017241542579469836167604402689468702822294758168149368052897800247621644049350948747163089773419499822866794768251695058163927349975701726060111737364209468562366261451985015704046340754533660632895157503762246270629061983872421090552226136996400520479210312172472023420293133776194445540875437804983281694306748454871729776145894674544487762952441080800118309652905069309382368768594489752777060823281251659251570890147312869364952546798065308986556631942111054280371658695398418452170266218458354732247596440534252946716397670832933672151714436776464646415333765224399821382185374565331862530450784146131550241644835896086220994951400229508207373684305188770033035098769004173331858060706700468311197809983732759326347804966717832526005726990436088724775014852483735055141021110813059795212264130229646682905610202248559478136092427281466917710409986383087416598390201054530327404033008313946193559480767775239612629766463373018416236257739079187990264407031790554617406760227371653194193708056141875944974398240790859090284502961734690525140790622299928261171469065558702630736665177412684279289701857654895329828351213219016844982553284493812244236121138079651337287513622669617099203995042011834251032657656636275888482849614385119262815156078326038353164529451688459009767919112278436958326398167505351758917341503184663725450288124368674369198638268190784836227087198443300285375545264681023322277991682111754267534418563884386095213915262049832497279388129665904179439300064196357249495749532576570740927158442521132926627441128416537017807483108511223229864428486549626080819434414442163807099094028273318135645050182111487529913802624372636040652790794955223794428176408158688573752255614804304365881597165792957711324197642178133575805869761693343820907217219559038556522571611322065625354707348246597684905511915635242904828181599213012111136032665330533590652143222234303379311391890650614576094421485120950901500661460150437912111896404481739613838210367808205006037336181335582678729293505861689979809776240969223279041341649542048813051762566494688217430102996553417160616046204525219724278149648582259246157070696462130008814249490638121944303998316073894250218826582907997012333357899506306431545530936356407370041901264778869004980001691338625377979254135563489171448047239466946403989582983689345478263713429733345291738559123127844296615541474375203861245345737728440425427267698903712144056499869782406882515529787960971384848704001795010417951118291656110077369174147217239261252613475845906141744864548987804795987649445941431527430361438046580693463186964061795860730666686052645636904613054043181542353622048756934261352308270529243588849471268303988695662081389614410920117915306730882439721301048876016605360138917606059299579483626947625884250240513573011055333268661978193159665378640417876409759546587972315810859964667974778871034057040237154561524828625095104941261287755113754975248064304295578476719265662797990678507261849236888524030896840350694803443194900756513976735488167976477496608795110276918320051290072781083119014517377510680987887226513332228133535807212426243610750562181617785117969017033360107944853885125338229759253732671918976520099015667096501205824965338905769748953021979135043411469609390306551785570270431027512760360141261080301365264855018866723527142043082132861013051874152281396535538454994361092298244673371284510312883858780628288154444641215489678229015172254493834666544202601537662860227144906896970700691144741124351095926518441471794789726429064105842165194947220922982150828021114897408934724302377807032604877603469134842076809816198378799096729866641584768249514576138319023872740650063628606197370993820182806914630057675427458444926023001750064102521055760949907538680610713421884212429669532082642282622276625656753370572734271832999910026154384587440255469286885937156892894165730962084756744864881843911952291703128583429722286247662321639992464789839211917633023730705824321155070796039704433828057648578742694236452019391655379498094664694150679014516097604055902370949503779965733921216638723321378199886918128830190057362379225004335581916686887758770337363354798640284825549021302362116663020603055775668212217785931040237792746592380431752863569917153348658341832220894567291561946724249747021803745829584735546240694385410230345502795830737157907909062400549690557847488701790388948535807965040282388968382675342020970451292482358676744807527379867795928526987967870790968779080558298153745751982461305769661052061363524413729269820065243480773664278747515638209411296839097334559024593940825251278106178377416464805742531455720167194929994769273981424906145208683216347733508920103133546597743063834621996475837529430854949466385934981118026178612119947597686777520028610466126528499239558841427084290040228044012433258072459753499468307560848064618331017334722760853035145331597896452453666210403792648627192364056413100537581030907687646153283293373682171205192690895457587268292672255823751343969336577811278567477033703139378809945572100113095549730969445501298331990171155764390448371062655161745710316603328560815999838283120346694801794201326927913066010587619199571314123478820316231430159496414627830813691651884027744846054109414591883072101673991443933906256896353828967977554765233716881603790549943599882449644496446829550502275366176062981398603978529228041962477651569425877440502877205554547136616158808530993100508494027264056725928007673379872872338479337294841246093521168184889923016751936429147416664943711653314621808907127305646272953828648625577007699335281286332066637903837447651494708688487466288635144529083566240796170363350886407637275321760396927549298417253145089005940861531839095800262571333632861194847456901589659247830601887543851785709287644019192163005728454310480590082797709440667841770432232808602278196223844262775472236115277877549290209223276094856140333999234189035404831616230184290570734498455950153416755903743800729946129697917503108496673410398455947571526858661639495775407423770457398729012166679608925605576059387191285944073330562851443835117119696376844151496115399004782959934339501888888748603539597204515598004359353132289781045404675791669579147039528396599330431360831531815449674811323591687738375594200071711425885192850404744371091701632001174512199809451410680768128819517603881136085752953506962983785501855192273023017455142745741275523183609055245710000210823268472879204564313769244150603734997501918661940122597745360045387759113890830962065522105372240827888081439281471244614740496334112419389464702320142284168171521715087032704213977113461164402632457903885503624189822578033623908620991617735546304070596028983675798705553658829262562285778378553543455943821799141892738962010362983157734694654400723914024395539546040737531005676530313175609591112695970314166178991825667101697647560695109596965958161409996034172791358639617959719209173262777374900501664422907962004036993744460625711921348091150519231726900321665346136614341513783633685681361639977812738738475243969337459064852544202879502313416673206226740674893654563952166673427563305731870803292502834694181538275008835513471867142491143564613822427317660043541450354908531111389145830547715576675096208807035797007008234967112833180353531575377654037487236026227082751015671677851291403274671648346913412980889023520980133269453340042875470789059433799454958025052103002108421276181304547207543532873014985829941640131677330125640260180116510356261718451244119595332083856579528559880662603999883669863225247312146700676150978334343209107328449395071178249991628094452690103283438932999089891819659495540861540490068720056527057473687352909891227477326228293508987440201834802167657063261804986723041824910739019281436752775908112610086740568227544310133050777681002194811000100445266051739742951167507850076706701547852303289100570785046838482076704205669607675921329994658071496681701229470707400629277984527750414259202555649423377850002231345193185133274798261383859710289367924563869202958011764300752919312586292497346727230440668707635403062689561586368088860318580207384415925068440498047150209518143109266876296879181395204406686243990628270017311452409218161171626682582673327889476078967321118815354673742077378027208339007251363139289644560691129723229111338149996383264509255047370457206805529904688989128983845740210458672496650146275770130092678091074568484135429169799836426687719733798567341762221512427289964259655709904519031778736383462966814106794939582797833541565259853947915666397621649900024458115873257611727139169721772150351521564369015355038817236219933524779889899189897510037201907804609302031925688223396776341232142959072611130367821427687653355866577451225513408734297771090049889188582220307763949761813108829941619701891828114768483161539592557528634733919888302310889747294166424230709394408144557596586140597361149809372611373740146114669071086789563391914544871109030414210318196998031231725148271020337460081129781000942637351348174252287701423786002206207846352861524360190193818885021998366976176147231656560309491490955969894055173138483520126356160673118637428090153564811178781621348673472006145910386579913048024734882104929255720032050588597149081784101452442652335373475298939483165406046518194412656943285835028601424716107463429614480992878188943385964186520561981808249678124587248178982470266258007916957363975063146962875087762513845847139657869122437188223863184342721788265512151944937493985609193228610364533205197725448392490064810214006893375849027606773388324534014736261135738141224943813561131967063630251604991374846851929334925158016392936399821203603814160904838105854939750098275147390061882566562006467593848279579177632618648168295178685739998584417876759636759110401696174288797037638249138474097858231212314846347578056565599276361801330760913975392766273097501644519067901058182810050082308136888346141466644975439228566110607256363402227510918147186249711613639094153213755733756852804454343517200443138819002602104429603172418371371373796424049320532424934141400735729038247455426925745116197123432738693305109595100284930120085333536046043520933834772558035864714382525900723426534566853036866604415168139593070693177461585284635176262657315117224734893132396583947682817644131403812322424695042231280473029488985201008544418724161639390491001536153616932871895528185222441338716387948404341381193417877653756736581089467612364345646946126881196502577256168104708565258962225384883547956443772910413221006745627478049184538033646665415817552628380499460562922373982728988887171548707093967505767298245356097383449028884306837784142577673666874008178272013475201267822684247259359199054798824388536296897944810365326268534678982101130605331203174914124308108915410706817444190642431868937398024891162203608200686480390298405994153144368153979972885942098166985540873672438287051166504181440687532812302110489328852864541099529486502286154703423344798947996400947353522148507928518260248470590502986249547530954388327873710922702047526481554671722816867966736845056994802748775918912952583620835794635842530998343610490080087688794080339884928406111581106250302852959591814378954881959869361145965770450607524041587576817108629251022209451100546469064476771103892551799063345204558545899705397488572947689014634846012778633148349569513727795581328332298940509516856397142548043377216354601202227282048509073233943873834853049177791398350491431379118033035280573078615964812997379847143132965003528706066173298932723592234027858519843895008491226960153961226214099476203456525704886318998509117979855353472894911306766252289795684307710858284484607192563722861584261299624701015522602467081117097051894937095821038092198739908777583883444314434014117813503679998064644976707670028462838578523942917990539577804738387854540918735740938392465966356510552522804467714958627247196100070167679779701193986219796790939138870650339074403772638504238993303467506893784424825815463226266727713198054742008473865570398648545917665954920379560451200603134264787554577367662067073073088017844893337715597922528170737965364705170281599150347740022354929628789724822859677849054970683007497769006088198809873896679731733656027289960555333517244399270342449558476068076273831549254636356908424812561101257892714044791766890572180630761502409883512160039521371901606426840555084800971429900963593138488726341176457923069873638123840694566913125987928447096984522360474016784796934168413370215067853245630573552202571842991334752109755539798727371797330815747326805483480628179194925441050903637143367559187631067812765035232807511968090015356384472612573428788647477650818270335658343235959421891823994847850911697852423461856939107398029126701056287686667980586581643092960093493069972612610230007561142901689127926776776970654640491967061101987323181755871665531446893225547355696571481372242086132342761587359015444810977292777844817527455997232811596444976813894190637988528413388130320549586537254488408060826593041398206779059460125521721949354363913369684748829721652163326805939502719172568769034985173662249427765195626103211313135426581778914350819194017005861756936799856839716441701946814706786348078889028491643513732975360401599720568046911349822340312491705387820202544591645854106730157525047170030846165590992262144479675807093618738696595614713819861539100538367889618178824243732565732700855768557974515833949047586098179133888300850950964979346239687319355725984091572578031192414997383199029687951487915187347486872805393159405657781120402984445832004160905839452850181446585267542264253339005434646037858146508884263810356259494813399853988660866220825245981867823503554183660157291005323982604060069706041155029937309192714896539265715353058104463034073259632457020201829143977435431278306819037247734261559794729078512149483435747079114212998240342961215413455529364514235531434331363654395587814262772408709130188602884105002004946898350132016299265934111893220432803126296364192088442389752977565867112731599697191197159525410204269121808455827012340316451255737862716340595189150712787616789722584258803106633751971619243642870400875756998677888145479482229220266184460353692443628470755712011258188697644785425476869247943951603984989513874607223351891758014792889469683635448797074296534430907534993616931394398087655430163035172347476622083762138383228141348707248553516819124015254407655898218196574683088683019872031093803054793179593151410287707469580087995925683626775094810562318337820695674448833057394985765709387945750156739221371391704734849367299651852856878943489926622923028981523907388926343648115643736758675649073889290236877502220495274616373322944571991698592534420942075296078498621923987885974084946015895354672849346623909000457208664918622341149183541547411661157534998191549743193798438456089159377271454442765702163571467999230672299405674444644595006899030059569732866448968523529491597993467390673443292507428408774105050342467529384877220081146378757826673762014842398349228245683009668770270022908993385310061272979709272538006495201023159840068268074012645433693677536213444330829989380931504954678556198437795173740278804634152653684000487714990888855504076324631576115327318137332062402677151915465050485665858133652792475108975937128542618133500609707845237948774881588173039047463567223493045009745007157723584939730205644731549873934453008124496886004202554545373729624731210309796818132460888552536459156683090200525937100446100699300171603577916168884754014319044191044001359967518382966362597987000762188660928855005789448608544567039256876983393900506850723278661429866612259755814389449858148824663677698334643178784746995226116653860813399353383541374656255163851505763367761538820187047439413803361000386544921844938395770432398915290911283201357748354381206471398996453770621847819583699859624352505256134438414874126302712838446401979027646200996876410650739730674526965344088004198825408378440986716125819462469325774154560717192163629313268715430005667432574462033278611981749122742386318912735054103240050333057115570389483123421024438963790061634222548086656587674997492628718317787004785161609825226003239106445467754958349831211258758206072092041936391050247700962242127905754362619369453738811670723843875440182191604940234550800358098956348252974448937692722497368589512725407879719522371807477389461180354894195119629647481693106482444137090972344031550469639100222989573850354935061346728059246485673717187141762188890016858692484888531609549575885291655076313165293525749897802026712031248620228028096099463077862862125854966440252919224237044723691287192155987917151209699870795798007439536666281777164114849736647179003741402520402560363424836855837277972722183731816130807940287652282805327429025497488344387168933987802282007919627768804472352766535244490941547848066838644696645420027710731480777845794219084187324884404690689237768893159577329552201357164885735764371918468542642474979862164614356349964625164781559071179322873811704706948070535878745675697668816636153624973094942164049360097993079562415000093746213538084581256307322903143290114365726076285101565750082292259010918726383765341139452421772731628766417646029820293607135364336124460025276353961546882799631224808016931653988550920499509777912099505553876767956573433582243035009424141578577946612217827800272371941001895030424484313575630954004709261282170121527081705439640310629595941151971094790651616857852127039402801862927915382716857220244028582337754891376609867562726108923417027040601010297349292692825987553841910415729095701722649941897770670375281640787294797985691589234865576752102728456681674618664796506835393974072048920867581106801462055793989832258517973077918173749945525542753726160033791492011267316500465885878408991764454880265917134690023857329456369654161690512872478588180009453952376509066878845905706325329610824934924513367493860861231061398789220277026420437871795376428084846071287139188230010824476117918995819876752330563406784658032724765259067889135978382433300473323961815907499135273683540298100373930153597893473343461319717494809088779512995445193159419856485391336357917276613478349037541350931607353170226187068852269825980854999579496086106571509658608144250013050322830026647537316757539189424848721549518286784469937633643145993378725375887805316549477658982075504539420704262145303651627425535704748536477367051872512054313504076594180037072247777794937335218399124320644548035976876948130992111596728064286326323011266616001825305589770146878591680080568122478065939871619777545545592579308919456620239664993122178978654155218824857668782935725500013830955496849607062716457374573898217421724715458784652576405215926975958917723015217304981163378461645863532615485593023519391526202671704005290104626969333523709192004622755504475550931299917908706498650197798738548195410034365479470789330304070956808667962967037110275542550716149298802286151385294093306692343345708259573161661892581504667367221134119200940016444090485834136601831449610997237558526771846343777356943833728637513263801545592249316580020359336406914788551351971744585670582395513263093207422044081090358830365684994503988508605345527258186175318394846404446329923661965314095965063916261004030180825141727058072765216488120002874876570170384382089170698173582946359647073107608139670973561586708096079892796006535139842183169921319505058967885652454964282273579255214278511437815910834629584466212943562085970135949879958663202591231810826703308876632790516118981613692426799870573825186066933509316645849624249505446334971835158726963390621787678206378134347519038976017901915587956425200311633354627799457902908066474815157494474123780175678682600432657473498007524076054870801933095512892918677911531519715308415637146241066771571934528513724689655618161703229877964959932074994001060504938274825405426511055835969155815759780134359708606839512769640633442068916401799221765739894618613041885900940930895522144292240928296550506153735028041165920077373415297720496640283250568023522284689627416915821526020938513798370921983190490635950313107122485050995626677966062269812465680936107124483510889294424462929589068458123714704103429352493970355520903625191207916586965692937938088258406871149931391816270490301488876862535893787276104720500028465704535956743613865575522582760615401717921295817171422235092047161431586682454663627526432167168896498434124882439706199917899380949426029236596913247110734275903437244052138874318458647909722297633241719863046635104445117843368678658190925879135321526619760525933434737851793513669901021473868614919991421504290251345538389189055869979057278242268377916827606105432738213763395556330259317517567389333828109255836676452704661147284793384025287523342719371549488575711661188680614442839214299509911358357222740763776701924893921770549533174499919890208833703313974511048288550199032981890601131959916428303408763980258616394962927313013080535146455446359588690208834876307761506490163024482500363092741832079711853367464816881611678869378157182931257349542431260861743989297224867682906114496356616691821702650912802866801521855699512909341801847634193599191772281219578438820499922183706995354600459895331723981252532348029421754607916469032669340201103769989482367554608679070086948721031815347329499323568471503087101225737379985959728723121018930469346015129603992245209680126208528192691420086257871183191732416064657133139710312891436978857842168091016578050522871558219394231075596200599671460630113968029654196713375316284503587810305883263757023888013076058135373502225616739739390351739635561727716170275951630204419940099395388091125709497154163624532288622295653551050517586253833646928652328958579266286562231347454487064580696394855740289247991266809668262074046181010511791625359698425963623879854273129963966734322668636213329681481935090354494471642994275385531688377120273204059136732518159932819238488818560654785667357382626567383782302862213070527387511144228855586934602353235370956937148522629792113350258656108994579127063748576342674852219101703183327623690811470196941551607600218949625648020683959358430386547779653993760094657130868532661656704130474960387495278805581193199471942750631129279253597041305652710522196035443577868298974033608504909952683821806910635283727320829822709678105192880497881298517407719119246874501200824830817505792127060130990124585144172566752702838126225641912692481380150061688920759440592305282408533110629854302702103679037326597084581002848104261039180386265794698314371927492304561255779906189002780778969221073684171509625407740603150585998625931192651728007911640352533005891452540317985967558098397840522662093372140883311696184434586520442351190244262435328354652282048665510163286939452256375368605544240207298944375200867462833647890478410070131333201053053119525682576546787220307659751368955161584449821846361230617668256490187767763904693649499336499063211197821105833495452984907065191699465678358337979258385897376214969064964898482694927776528370469594881527925696834760100048714792014278504665645281076446685546297263085100802185681391512690280204291905676508600935007418403652474380653337430568485053478952874679553496040208672413472194701873146564138479142064332848209685833163543894756991543039604518248167758015722110553611551354781381180461031493375287713220699730332265960458683931753800178485480792135462528449929832333284134471222267770814622272470571435963970441693832676690181238332303611184373208610837683445036030424759273273787138535895761970765792438183757105653801188783868749488421431074197889239800130027586589607876069210289302545395276430333410738939803226734696004305276620696602571377201711362651994678029650148555151673584934650258566734328997284648877104469366492614353677948806530122140999202027933109312123982983181062478174695459846044985074397849182438953404034258375729991737703606859379320728183722554477531015591186387071505019737087552370220398965111196241313115878965668341779917491175168794187281140976450733988176521472212801333328132225277871332910094334207438201608579942480574724588646376786312263250705470054907448269464264866649197092335006605383999111306596010526209081823914948321626798348939641229033505589988793428373073675871465934859301479059864921228967913579552073494057448705207451096325953981321726477573738268914215810351941616307215041053523842561152913366056869634369124476856368857018841645732393463140604640293366174675468446574139827102738200038078180685079589362280071347239911230503406677760095785976675514710620656707666494625780196408867421945946829899574206307440437908256670053751771479380771848326319574522186198880464103194103332025454833704238152118341014148221958727810280589551092877040797635439681213259486262508078843166720748807740881066760114861396761914667468367017203546432348360563688905964934475767027041001529195053088055870747735403817551920848499859092586069496928973019102077670277319549622626272146688316381356224117795773088376228898402598828428467942652974210052463316692140798518388194699997737881083244443971100191951090672294073367224957907299580870319345763639882490811144742614838335089272551068123256803268430665268017126711932608932922923387514492834991780575646006254752691669551069963242408957660483335985237765306149103077663991944063545743589696636343769767098959128100872852370226618282919135272156497373708672561754373359119197019244148100077277504308191494690432716643523812639907704801077245023215475438950284830303940530028054716843093282134375844541350975231722726589972322918727011657316980901598244760623337958409009281977321738841333202392074376568968594126315969739698217934511741931895032992072531066689717789536975781294256980348198127923883882440560874330455832328955138583603616233263575354264651562232575566832375749987840732542335133012980881696067427852086173359622626312886632283209921244264034988664804082311741779806221442468145957027640125914586475344088081093877519370476905155938934621018727205654899722498054892764397905091819856806626224121355185581561917945785250305331005357572713141258841153349493345229617027998644301407608333263566944696487912094083754879837426486567238325302133887669119935625242337146475817907145145695234680267841926118363114411688638674799839823832790686780575177792228437022627488476266022602879809489506809154829474951717134606615299287719811623993715891137312512883717578972222383976538055744304421088958352968932299915910882341609617751928720187017261600173295450505744188722361193598353491565939496532740493997474274699528460030147596759608317686650313189484562521185578143304230832512234790925869337272231475908929420554447328511923308124378859534254708807475928634865004936998663521113557426535535339340813473133627075999383936235705852805177763021708132021625514231995586648434186987209967673803162954094032768702929548709368130041854649723650209996902707551048912677586601285162320020293398062522432702555593463023469592913311760362821303810049130424777004644731481923918397405862149220325021843732493018445371233653504695620457919685740481019761757398057162393747269535810052218301649009070327298639459114605088452536919621650841334872213658157080430251113940746638135128692915507154870063426099459587650069889954568420281530553261584382532531611607593505747839179143167436432672672876262267056998505629700386123730268202270181494063435077576716066439842999530421663206168611195496888879788104907470497793016071452595532161495295601635947212881935905388671480045245356738147176459603795817326257648019078583163618103643258330797146786310199318026018892751217052114171577235166853084898621418551743378034229782473361508106435152278590117085826664751970529770753834631891591019710236974146625542571383601675505396690825801612742510545508231852188271143743727298766460151211780243770999041170701672180687449438424813358979890517424945199150352056778173025408003969469239701212538038119008649082458647953402060999449295737666761734037015166458691890005495259409048581753063643047691971079752459376941034524428034464304998954695449657977904904579702155028885309870710620186474790863199312969667802714640580389159640515135372204605483022609100387268703780406257629540808189987963612003473865565728966648429321842087090042603798395808816227995539895539839877113370120298881589401636971841008565707869752126396202545081649494911131579141860890644732111919149504502250210686481534731584477172181218831639513997219100847226288793593864105020465826724317382849634394387008968650263844260275678547496406957086505246105345182542071612547192577664013675069730463220467542786902932103249581004392232175727354262425444374665257591718672415543675928838866138441360168201071727415902694178629902317266371703055717000234010084386668628500520803969108872506766634043129084263815418713157294674848545541505349416637854210289231874527897523901514140730199434306775147243312480425973852391944582223338441099627544340319079396239963558301914933651561480568580990909258241244965915481471009729644605275329156758203846386093776910615652665292280392322520833682061445367958200340732211911676388883924837003166232141718401325047344107053434946809517444966560886830703426158537921854898789312192536333016719811977421944119723951552575072483131397242574572961222495994710502592398033453299472795144937331915928601002092941947257045148601163901145593462461625954480594460896199917866420406939806400353192230800337661684598485420763589199192632697221485967442902419460964969351436992743855557367451378964664212687682570999342469073033886141815234225005423754040483480943368209162398851112086756657320668545270337227457413370403064827851749693176301356830410113108191426096191373967322341812160089327109270335720980239326622529902228480501377192505704993687482538351113337312582758574919970743450504942836764908951741855922371165563056851379154763948202886971160818702889173440220543644863648127016662564242048878586119475946990877805366410535845095234625963661089375324661717100121762677356931220076977244080410437783070564468025334683252976641933597070456116543760970020315217636780442931780154651096101520724919240683499438090511303358266083240651255590616421633831482055629514062604051034664243218692901941556804457463269453934760131490337695441557065099245892669614283572623545521518478502886864882903752529549779823408248805113912625049447194587998955598073171664745618695864950659773899097718540515112576096307825932241179223443992644229956188803671992786220764000169197155697077616508696509743058880547453326611955451524642700320672739434963260175167878587387658403273892203729367790684570971467758517839901645574645187867867763281364793934192884025902121667441474794908501574005437233168811697869486359754027992652592908707567946522434210401674672951011006899898491003282195676276289011880090862941224874394421548280007584252690982820417695580505753029142421334185523387552641826012456451703411082900046988262333714778557831222699748147108087987040844785658035701015940511492266023859048162989871595217627931609008990622216730720551058933539495231333587939065750565224829266728871679593931001917702515007136185934137864392780448916212805211668852307943689467011035971901933207016779539428680003143052475869222791995493982205843729658923120357638414038026731207104255647484562340629472020404185875723244601424537247947004681370099653823022772061714871442603356459530668401033067978602468773191522957074747267698522700280755835342299511129954832122116795367679071006639469669918257553060259010380217568186905647590655308183050683670918174435103848680978025684152695819243549596267665715111356103521196895040981314466755251204691584810792327073983556077240295670831678412061162055530512579096076389149901134923709757161648385036259163343078425431415692485385683676115495796974752085899839443077947487345754594776151765870423997431776103532636037957460246221209275283331093828380459594670124877058876529970236563614509538790774765836277321339191671975797256159313684232386655590761163797915264780007664169558063669764489589543952797910452922769470399288037635565555259045561188994618730973540246087228412985229151299671710217996329730931433767246607926359410220290479070909033756726352532062045439708968383344777576204864219185034374913620797052989760241886765180226137830998697172038494512188209552559343349715584695905888903572265395170215927377037056789095206228345391676541761644598034253221349308348919845937152193287762666371127289767395878170151223801217610887813172209409478392106043347347717148551103305237636452456398153865792815086559866702430968303882849157122900785385918868891905422524998904539290716797692767476239852386778032484671609127499870762617375550935734011427236439555795757144571579599155271437936718177597518021542368665344715283718502718409170723513570717201093144685567447121009546379700089940144029299846628378862766399351594761533516620312899443938383522453650350409947617300393824120956175040449698979167909590539910331864262401288446592943454743472227547706698129569551261488133835857014793150437350639929834107281852190198869356662192450746108234166309679182849641322066116247119541694962922716450690843040682593970546192128414547879281892537597485933088253755857995056499822048992356465713982710778045977517498573028755517622943767562231917265360958388568969595575766841515962425150810453858296136062452610376305212680944781000158930197539106571401337040737151379711752761468160579427366372747842631654674773850047465995040076356176127937717063534345767914640477770217131011180249711812264129928463047355967069604074521968941493861582581249662927756003239346354949612868735536070847655164474342262386326114372981645259480669765923569755596326677289946551646318642503358941235961712913090877464216774944018770835457826614716282480215634858371527076703305947708730364140235088529210343867845584666975839025320711541506614388040414929301346062413824164031882484334837411555386741112134940112195090204166363623535855738291598505348746308381124831755193541409886674824622082153176612986969365710659784055175240079027323956328164950384447867276244683186281517740170497841642099997751882244604401533338911694556050046669742476320556711691871391600103283636436540657322429903668697775739068188446313691608586964876217983416605234415408291709242742890953539108818637072362364216154186395269512472216048668988413623082581020712690970183428041451631489601852343822505993470465586537809445992232363134352606555369338784384275894675270923702850214799548971167560925605493480483536816791541073140976944315620466570310322555455524994611401733784322137054669146987867782226117539031656244756062227975571897338137730530210556370967241735601023300485090346413865344485264936521566116862517234760739638860216592045949674001936543655258194381501038110389881577422024293935421619656445618435329835584389317645377614260485025878837741574464051815644025347580277406132468925784145036820794262481423336698852200111270487950933448665137906523976356346112309907028203598053863374557421335141557514325871624475516234351583590004597897420917564951833347351708797251682142442563387640746079687507374865329849301519044573516155310732923139374482613774149748301098933570473782381194964646022811200854557783368250174004469613254736416008475947650021636007464062294392405353100012554905631091731117615696188880759818545624528995129174350672084121264267021304650437688738469745380636104327302722674236693584856294572033695567605169819382754241916888880159110941443280002577327001060299868293843304676492182546574677634797832171844794348764464246543711192641346820928486285067417252820172660261345089689291215006676934148519461874392418884581426651058288592071593123302743868794369082701181027648348319778678670306998045649086466358504796087733392213456092477562877290463531624982422602388190343435739603729733613624148632777526350771814426379348656135308043249905704759780181535620648347607352667819971236581628578183268549729586917339251053718170716921691062135720880657776706660199755142691364640668612046326091258258702670847497337252247684742535889029182602640866828754352456443226236864098052228715376535029641482644430595341333395346548357641304995864689243485434398457537838557617654973070472476647784114319881154424708229554381199786228586802762139368191445629289631239790409620761836946929455691975824132701326541907940615103892096347882048849904394868937948224283117135332797785053978255569862173281875272511236631783857318784288342670519738528963724247154745339994795691199115997485578902952994628978288464899912671879762714116944875061708664571024323639562704982065565969943298188592206837478179219603556922457065032978904232608315830486288975079638654205800596125742742692302080610998621941498724135783965050385362681772330783645982540944000645482627692513824668213568838375602026406360375216575339767582671615519172285096753776492102862210869305736327560481492545689454163202857675606368523056438748757509543533268039995308527961003219554598131811633831612081236043452576393250007940048776362506776155745780081740658597565236151750906976091993234820755803460579280842991593881259880573677972181068634839883899081369415944150083797686756449930989636050543445484212069900079050329392243202821335161287965226557727378948817366672699976196130108228861649920554873293207380941580974574655079180911926413172421328218745371689554606206477089234313661197243280676658654245535140077676694138690195569581046958650493357294753944227976927322231754778114937921097834137223553655077721819736723837543932469181392087804844723058472931652823795661824583065623733885439097103907063826399706424567052697271631690922509939925003710259065352422555472188605871568816314055144920529905077880430288042257733511598878738156238274702424297286959980850181194370759860959401907542874783434160965806435984465211276868492497757876182559648157306048373148268699674232454175067135980595741699869459501004556734410929193246751293930996338597606820366821006733797733077587332698345454510049888734281471875961593729598994332066840183710110341671529724946997442004410141362009386689273889428272689857834368941404430271906699302239924011440722536244996577140922977048478358906524387283963957180983124542599947762609376853716503017510254856914535198083234667046361173901010682497223716985158542600989504534014176324836205813872499233451664771909599181418498453955087308686055969595875197314289269367595197632283386719125585420337135100135942025705362848123306133711348003827114968972639460470482403350220694568045550561994514705897740499532894361539242875790227840893291910101965204729757991594892677865616254087358710358816733869881966563869436108693708296832188861443521823139025725413367382877155617179647748438967020369842710077945270180552678990254567508490547949743882131122363354110653154593333991053671361368451237565533681563385287843160458149693086765859170319633657467425720742008004901098583408123679720799011995660642511419836533373266394544249256731844582584678683915029096475673210258383109822219395104586159868700981625797270448038750211000584455132345009864751341143709308058572929041188611393075771735625002223017271928532441335499826571533811198687649450205835880529469803648266226569418541466181038495207250810309232687126082330296918705295663841178421405840280663598620603427284498826734598637774350398269294420960651808674976038657586486681146607805277485642802822999119643280470806384247171915791608820851891072912739573670861393388775835870952816361812368160857962035438771753575873560195263573448126016047207653218603833673996402824668137436501206786207992858942138036405976660998696584967689169641342296523693484857650339027445765980833881096643400781933895857162477132633679157053883995797437172978216131519061366989324136859721525006242791249560777284460640574189289980694466241302982160283603409602078602154399669362495147488796312457676641264520964127459524444025867311508352184082305594479934602936929610979933172396853390857254662736136128019618551703516677498340017302138910746802550367959202729509091618502226529471111961072775961922258428605691084118387031667229492169050083946918605542722066739216326261782730449915837392269962882928329662144710434604107778123281523009813086571556698203533079829772257571157082626711643727498938544866499200686312569380147214610834548110991126608966551081695590848656290911749412480472884600736509350512532944652379056588301809509970858115440603286977625563915304289471297851957718709085755803546617743103964945940449771784211691912392688945686485109089700634899501385584729039632749699036925480965744244627475238852348179822033609393727799618471468900973590023972362379746693569850541118048691110943280584802046350886132832975476206504253324270369102565433735420825014324034284304112161041766393472965796077613434682572296329906921750382863902033215302729167134496159833464790957458444789246953448506538499172091818756237945694070244648772671436204183712062390191489363364849997848080584542283020344435835770684653312931774315135426112778147908856823385505138204021871264701712978312334619165003944186856849758514217298386385623018817811574506513028516730272081913797320913279825626336942305307110371339070551117250976402688275217814494444947984398339299949527473509698533192011688569863211044895308832658072152541371320330797075149743065013381331995311981084101917216795414697276521519647571399940594402680555897394087846575842993105311362408106072914568754728778483097559027953106377089015663213478692108157106561577975105376480304051883890246576749348377193301214189327620471418425271594155330230970635370702063268631163763770512866358684730566724723123105173524253883556758177032085675887846210782735596235946136423973802780957247238247862846192597629370484848155925853004369838273236851330481645801951365146141564960057207800370273514451757156609775668133513844333700946170984361476731424685624344274160425479516867411264363261151016163019364173211959336464707560851379904241162421979060946666492498987426333302252094286244519712710883585258950382492386239566527261293711922413756262789690378621145958532013311648563139736962158619607951227347367580378530865165160161680644017329353655181475488215543389427626993876441810863648078409354529221423102786373996869713605097529483017432257095849112385283755460341266394213965070856132083319903796281493445875086593489794177132829043567788189122233810634518545575714082361454071897408296373272361947503953409773707146386087595292297248334856846680508431111417403773989733844701845210378943568489842258479697200656660916974915662067477836661446092448552470196118669216212175178386780218971640397393313636842250797855642656635912148162968316508259637612848132007135045478608625771606451060244969214506064668869380256416909518273473014860078477639938607195703141976007306294852976509141321531632949115341372288702207506756814604126801546022424071900250470782242854710781668532838009160869769527137182476958104492146376977534693082763949232211266760715535966283299971104157647826678440589817561632057386504611459206576521745140470254199348967031558610308622014148137153924232298080381322115098869010168415279086616332383676308902050235264589941219290184019668834347227964952718847505906639381995712107559095989446385305527607407077901262404400884380060159873496277721013306786549975541680879877449035491567396950200931115420649325691153881328340074141354456701637087553716433055955618432981917542687271608314562847401926294684199626895266932469469191273913506666269695842453310034524688620241186891761980838121181243713181030824724362666758942867537669675620310443287283801696265880952340379932658647035850944785299802148382793034557752413878937667753188527656811894066247137702611225180275075954876860686220517466654882717031564941587136051801915539526858541640531611970152333966984409864080521635545474065948164535458329755867659957568831849389776623613301662479919231451959690107528937294125618000010334451696512658448127559160120497190295140267536102338097429535931511687401759517405125945039854659406518881811640026705807077089088736804682857695788493257562935843677259801364779960995720918687204833629953347686839749546644732733705760711078217484412792368371802686939357000257747502113825714897113753516796970574850954121846195788884529837180762137553323264298335998535579953274597860208247790640735830648818790758981264283999986227095751710224546815629060553354731243542255759211246734739960538910371276590551134176544950232891401783840843771886505009238522225939850706264606303838385035251665047758448353043546297353910988768343560896214363586161608020026570591294214071807863938205712217924917288294956547952595707802132878428275019224856871066996609524654720441846626424439108293466469338046795136716958150192005983730273461675523883710688083038472336178349997083320721570400438910558428805646171407409878528410513097561117891128194086916973197950299719171370552831604333702573380865906839461233128321609703438079857429604584383376891939933400673342793867041284061731874573088500924997257485885534437993050820992871900858135910174698198178652644228527783396432539430798242577867021587122146589722553560215094147864492421507450901504311779427393008197576376763619179114602942092230927480898261869471421777910958818629514579510644327947850575040616911673704844695511332654907057348224658213548626003728254863342717255995077852108771901139874021068313445610731455523955091348074048856058134482026368915416682502065446776371039121026359053713480904754430183532197420668085814484912202519028089311503314341451114372535190344757646634603626870832861737626865424777478104656118215491859094230743423473648123603542339379905429973165049349970093382603527624818504243587922763855986434110873242649475524493163751468696645930775375941754562366277675267026731796537913277128207583110180247792219972852495539991548388238323095937672367091537410684094609177661339158369206207273577306615732182589789959029374522890645860195749551276877762223607938698960824136667318087750265474713573340049746572646425949984207774880861166060517995445410109365717313109698256618903730901580240422305791529222193904666870916337161526329257999432274113952308295219522082572961115439136159152820768499424499189685198487804974830428403898896916096609490602765867849465106468154587571996069445443803100906711341480452093808512608518243535916296585168212233876873309651675150704301201952852304927851420745019434122404482230964582171345930269148123647967023309531471361234340339744737661944424816027404035466528840804552872980190865497386645866178644982142334616509616135214992276431460975950772726590760070443937195997751766895773955906827435163538229943629418515073260957643846577277662014711971490339238294359076829554323424007771776826110767414934441260237241418690164449567873186413297019848858087888183098839816952940148863559228892636457801138473203252466364275711421952709539756847691196559127542967081281858578627740021741667861130145107887928007229557231199015896836702001344314442416260347968544148445903808788991059681820383977741851561713937795706063197600090824577904446320957790067429052233946163014239743617541679901237547074799072683092071344926768162460627963508753115843955749855438350572686881382886627229219964485895561644844843148949180695880789275263870323290664117610823633811133632348350207353931342361964136696591622944838682808466358391652346480494731994277176992578509287273848856663844797510781072129743589568633702461741977577609213921034488807668459487124318668196685906967668516630454691748170558577159393809161692607147624900234528391111726493582487143675908192145805254329038089435037037742774410264258498155285687180293243386553153569479746997451272462016453663653233811744397313378032022459958982115977468442378039547469276656713136761225773513068839466703167362753365290712335537387741996579389033346268910095797927210119080216945624350892792293835091557879318541648192115642017134805671160317541041692322625160739812781401487226088099908029888265833813646075163470595425086689718338767705661937288881838869317131448989788170328242778635036027745765893813018851470624479198092214375077810866601890131626527235143154582428036176160902760986335375992372659612698626780421473852654761466311328302738886270694779163950529983115333748524848088388996803843118844605421637354908311019367295760771872582994292326415855740285005194653316986024322601636510256148266317659315447836383797432036427594254406591251573883552951507515854147119094928622877140323939336342243389064036663620558067757657613247517745630365880223042121166134283093201176795367241840898811416787331612108322211866828818917010447995364796951153023975523382680801640955162019506966131000508726840260869204188822527614118356598839091265730885022696735142023147961974665739951849434748590192850288163624970152589445293929742361750737232275937381698920945388618026416464715039493081710628938529680136882600766754412591234736092410325035035879787614270134363206271893258874125118767172404084164765564931223311657641479243385360246054118061121889096125537170959628263171823778441993688807292391361415282484531926564633672405874433317422497906269780691849183967083528494614226940873535813327533991186304120639139943347470629908030198139398193883972254023902424344223110103699345680840118186445645182655182374281599038351795272053213064258128582522620106681333502876064326565300887971330344665263278767094116067360864248330091750690005065380036839742808923079276261435983511635346683671336658797172878972327532040854515856327841369941191531498863688072179014767188686393358893863492331348233946630174311941571057010607350858505095231219293678357418249960467963729228770596128860150499510815401791271498316560413869847725979416432602780538232745938222925110796884208756852261620379769811880507038093507736107276863525165572867621534494962961967864129438402627102200185493194242943473030831416039482142101198972634087993030895477579362195837118601464560280634499374580999881794039795320316549906741428270701093296485277511629623153883314286590932272968234976011105868778647035327467338692151528226103912832993045331498701926022843333862044551139929126309004610767911173753372954004512593116995683076248048125764340130572403589788218969963641620236405784295284990388381237533734482628455633231774509285454136088340500647201604295170461687947425988984555703931980224430836884565589547200551400684198994686916801554976690178250092615637818191110026342924161691417585252055750823428921927660724716689260220916709810215350339086539697839303710082106932846494405484659939560740246987706772245036412743993386035415008875779430678964378333003224095700667725673813324712118887724985616195722175939562375209500991926623025736897585141803550020761900424896780012098643308529464213127736485808222736551049393986809208937153391609175493175010315281384649194810045533051466865333405365153810637223260667384254506913356291954107706823948223543524287610381890917129090448401021300390585939155219798492483041584670589384405466688310946546396102786041566874527129110569031512785953383816160114928119474170082218928725481505703193561592803748411033574617894968609688432263727261244448518716524181864325632282811953309984380562759462814770482561618153111357166036880644644298569029327287831796718162042164311490709124740463229973492500567953558304738934387036469998112122188891955652949618055639686696425432934832627635317357964159317425984836954704483727588397605111831713980002652931951868025552397311743062505285403872967857567063087082083423055889233209197033801320427014782696645727406217745744465519653528269055439934018225711531116122689210681302020960358160621941019042744795656887594052309205788918788943947724110562928912394563778608825985085814841071563651812367044370806964095954452183259119853969190460781298517586366820298493143829840469636580439754433843595286849492044014734360675326685270724407562942761931952142642842137585904864505557259828739514393538017526605098028137902419256969280791310793241431595401543696080315158483097242992325631481455747180255577994327310842483107002090406285898662159765354105863985138752726124412013852008294179893979807969473946838616179479283276882556123893090729411437756095902596089525698411644877951003040911478691516792107770739287012708864227662605473407452163756635881438691474122601401710221300536508734735114108478701158310788531990861755880592611616947327771451863559521584611424972911483451973616094208622083456702654200741438973880017070056094159329213668901194566878456993011314835996009339537153054165687316972375086908285232398998453765392775750317906916255657299286087674635026236936981988941442587904082143841969410669540486173725401767543963380344096128323914103454072493582298548643132615282065605270434389430953335702841768623441509956496457492475651971952995677752376620199942760897357214559406892173849771332256179255894098556399088801985539982319828793294439344394050506393232364395776001315019887369253784948874036236572946403563849551700245323500688521879165014350042965288472173385309142828743214513779124930197730353249585960014608233262377932964082192291379904040637132139396172874204103387761093016583863337552131136549883523679341943896558342752637859160705990993654089059052888343126108109272395792138749440832120538385727971083896202573157026627353733258823620583208901792855133019135235055517634930184702777012284992061965438908808916239702785874339187127593358139123859771688441847857571575129157914775782325279366477285852668694805670969817916326572693065768910316102936028101419071305272150117988525563028767014927247898134625778860662434868996237816668357816716302836259699762314077010622765975168281557880332777619690936714066195713375591671634911514138872819685732967684899941080740318352987582390683074990771028397841258259637718506301669772512776837946035414856009349290554334613998310546096990999668842655615935897733553434561227935386541184821123979557434235150959120773701115800784393726408471564174725793248299299810702354075328131199384612034243116690675516361682757247199098745867778514600017095831823425874243222228624317433166282174616984357665797881791639984314100554764052604470209897413750005701401751962594640275068832286500917062761750338071157120280988803131053806809104946302917810719485248611741561705205020322879390633411063421636385372475138465082684610845581573743609567699085711426194249645907385912967928421626241604803962866487155267071182262514997083807857005064492858020662554455088454302196106741329448013458084290483705747567778257980151839557875195846764724018755173584805009578171263107454093968033219556416014623762226351821398637382647827041256060472200729163713456287643299060767217117808577934983900117530155973604139909307581196109191828176752102363915074901021390395271449979096806425820795092809621353483213143028063897719604678688043039383864337357976964390679914045270026218020208688911160417974752783703284468803251111544104734268965259226401537181880261257787951428614021773017202281667849554562401079439860780318891933372114316077199410791242884230398734229650582622091721274133983293158168208847684402501193628939975841764777549089585317977864039656780552063885189099420486415438242274050707674972147207154529112633936246839607065341316993416038407172686391001973427068409309098097653302386055404672689522871809431833737595115362318329922221998887091056372216223684943568768807311276442553309996216490578732089559338697042251735558759135510737774723886252859390331142602425761695898101140345116743764378861985948814703498385571686970486441826324390023271734970645145209975524909351751313747124457292128981889926788061783987572303080681084918790562730601462883364533573215388734424658117293201922537331397353073049400470042688130618878956413464868575225452478470471481697070816517212855281282376120244968589267099944526044785488980030502874163793370038854133142471795641169493916524737331194832321658103430515266469411849678060229792679432339856033531297877872680077610059073386808576355691395920470886223906268214974296432829070699180954245377510180912950148952167502185659870903942868229334273182790335083407747478313314406902429214001090723919749808226056429932555579684150045430541918507882012722058016912033434689799040619403418767908974677438179932242774924102112010350831604631949239783192422710944972933000318616640795186940482436653976654275222801396685219888134203894694573691969797222390555380449445173416367094700175736738100201363787650905981754259146763213978559417966437330932038957439343592386484984658888634070342757366137036870890628863059636870760249622423337658665301549566507598810752230085146465300895614034712838090853052135136415977344588570484691420784790012862421624845622299608963992328995940257324098314150336568991593951510344120013666788641846143622415879627102019584104572493875716485999216279555559647984223589949819518648594403627928305992287594223103212493390087192151239819964517693658565124433424123744739485860740580767819131279131226288704701517060634139787205340069325642140541538907513808996454161426830531279781449688169931594917010068069245289543614191251046943289226371114126321193434279649565567884997517736547661308115340864553805876691742278355689673319537357742329487919123268208186499722318940465789940987912463836318964298803473407902228549789802334919428071784138793170267318114391796461818411991440536104016502449474270231805173360007125903897289797881205965661156291906670119873118575736748594544900206800857670690882350775711402939568336553005907004480887824063874605460309158843599041366858250143955839047888763489482822566439133185610673637418507525743847234951739635834781963552578614311097187147509470019063250059657630851705893271041330871212174709484126545772124251687517423881410906554478863111705125524617371785402739233263348179872838360926523624559361778431838951187732876559010992394203214314051179644244917119466271480966327830647069858515903453437342414768029833614586663573720699145077741368667485909237722478252944666111345706444593055866851950385922915230916655134886412641070513696100507539546609043122684270171300260324589491031158996289903634860198226773714768790178832223355048628796804566095497439381561744173196243524715611112813532050607207511459875615139037682082307843832988415485741788550390483400821864827588278144374945301656532257714711097267088897810857279131559658362141496568672780877548484926057084335152205221133701376132725158793279435463389558094692438149856612161174502254063324620501786126001027314317004492801021732424248780712737675971565541841637091616714435265328411894242922659125783260187115239226907526823596740768531428976403599135321474172137077831574648428364870064624283839181425180115294517981327966505311257491289733346252557017349732052981672619681131694651768479335152204543809154376475438801537042178484407325934110688360435677575320700240437140767486072150374077046524828304434979028805617165426091270415383058435072947778318668695043125189790432457441936556532008967072021241979750674315571127437675286312386882939773566590906394886042319941292012134333185758273237966439390582582528681806121815017227610317999596286964818131050059273676612523647690761950058950748748068682318820780335378530284867257165286642370100116535828658894502957599647260836774555742264892676005182468644658844262971504966757372591859990865632837343421545499751622218131020731465936587251294059697081436155457319240422337093714698074216771101865805224188200492998200054327999710470711099003146695042523254357158255358163412170480533203651939625064792933346158193297114207381087943893048932413409044428300562281870204246042092940755324653821851094511916197659816144733184817727785596666338320681091283422016373644180417585994914759319429297588123082643791914447687925195679035409222695344377551628448180360559239130531410004889985131369910121287902420870069716214219662466648670480258599084022365420810338634321978363528348476343865990781339776177379824072031349370271378255233192330743033066135173133397682807745903155893126544686688216888710422873619712594486814633123138517358719767754199074395727184724851904470809417235816483009723952458523493031007697838955637588576446855412467947320369347564681359404883443933471634000586995495964227949265978998811491804799782796784406903640269777850650933506963841475216374776110132090534939572188445819137685854040895662923809652506943401081560727616860038507826663126327176299157641544749810178511076032376670364800236313813839548923028363844338772895604617157329477378036823625002704170560357055846872611692076139532760142524076129924161800235529176063827246955269168709343933343056171603444354442640743810332294033301599991899820043365509658501872067679106735387613124513031733240546459586741995116877463099305207013398668119833342835024681601758058881155517372912780162866167284865140355578999712040327566511099353385983200098606324146256567120978564260269426725453147318159827521946752360801860051253280373544533953118589350795054541473869925552716545932615626618169089907216042124145503486129334168637684005977452734367367399691180789310797800967605762319480394779577639033597647876350481206947975036652262451512198049768125545277154385200793509991184489755645047603269145776668046050917366814867990778224796925789216485478487823744991166423991637829505371410246184224824606558127102489364727554418724392265985573559388185184919009216184747116375597763852392043918752323191632886204196956201451831577282532818381579895916399693526219367724087022825963547541844805775574640678072052692217117557801950638814681733016050724813627971991510642983301663961454815838632909297773456695037369653952729588748939580395557876851326570389003292692787364703689270053666411022054682172599952924964613668422846933768089306939861641974263065619581288710055572101673804701858415130977187868149493733888659579575691072947433412035292775434520380765238896842883278597603235625689091558168839342016589903161073172422166710250543040057251462169459037176405764549096431138591697524884272591105600849497402260568034004630378038386540831643479835955910742467788413881059161577070522404962232606778143908062146271516362783573905655230755454390998598243666586517544416128320037147272927487282132381849948611194772842951035236379932859962555485360300699801409574897835640264283888856991649703006838712638329267487463522701224630966699904758207616367466222465761538678481143014058625710106404359488957775001676278250513392348451961244741050602964883462892466128551579228070513236523458820329657601722788797873075501658235268461775851209782231135654347332476828123655359687712090665936565213699839740273534050075116050673214386932738272270282057765320829204506528076222646284491694608654541917616138590378463965890526231155122124797826487766209232063649008950254235823334306922951691221780129135454379899229439198487947269802284766355656444815245249452144399938431277054924832776809671757175690906395096148202957853287256923489460405012413007413688287405596460589828429214004605447698518267171963749226320015929730327402604542309507914879388090875986000093728505875587629778421343765615690634946560861380052802835620136086503170456395616931181103443070073073657682328400044468962023961565975942535596292625679235841577385183833891434650183364987937112009905459699342102356481008976123522968724546930773913184731525142031180815755428207845136186528355415511281038969667291275710667470282560011953210116549364896372937110401866204785256457005192324892372098552574987768533503332933494698435786356009838761980745075255734470913674513507817328742209962651871064825120537197373187139411296446282220921681002331746713753435817104810494949416125608325420611575179132837827229407159300899503809250663226771493802504996971228569685812134116342870309668584169460738103812419802419031197754952013431949130546397224489360461895506329488889185305722768937484183290189812456182799898083494842001382438176065502897024191802239241936713332299423508578554646259318574142905340328337432636710361007353929206014464317391006277844564823884087592252013705892517349419240778189599630243017858901913948892171194817553556475476693899906996052331256888988101218908601948019917619369493031848350347837924849090772788255255467699726267102165411603346965183329868315059377935978432346994909104173083038057064085840554495040369032943847371597552225324086143263089209043705403326402271538738612983037885619041709600177610556894805005874614894236535007978714286209048683085239715795690286309996278003910684065079287646371767892552167897469556613535984391910899627071666158458706361120560832629087712586410620229973183170933378141218473008168293680226243065063656183450673460876320428018547180315234511051191415834640638779701888429244335867904358094998479801713283463950257112757443970000279218417657319188813115362218517541776628624596333036890273669433241609502786357750229112124614650722569953389117092972169270016753876486568981795749688720899817140379598242861368366129228287240634349402660453207314219616648036096405796255867830746951450542902505398957327791426063040083853292470197624109669740700261291478200862618554840810144843566123653312316789513470193765093146181638968738208114457540456550529539338679525461859643974910794049756946442666453352522105933172718755959920041288251045952472636340092549618367999480083943933317997767701976610864713055639515325916325808219932691884471656658930929380786522234451004750008658548691788508613131563192532164302084025764779801444067470507454606855584309286804124878343652064608284626123954420493357063929691321107225127922211388953297833430236224545936843879440984941114016591209157976091887820623926870901072880943487715699369606065592938314733042548737483694966594329060024517160128259572516461007269823959963917728177562318155661193794679085755723446851175404503055548452467947674549060587728834291983119907136734985854671007261390939212867752541182513217454389811076096911851539757218526585537174612079587047050690605921749499893355097186165345176832019828664449029630293290506564242152724932654593049736870558279407782372043026723950235664023281980636100991870978911706416635874553021956548547912299064383609971994620959820360800744659271519698166343117741572385843734266612242625625545401018181104427738009058183009716109195754086293667625329061522052431782037163827578859080017284516109294135391703662257220558940917563845455032525920942473680676020494744862736928122724400000575154657646358748319613156133709897903556063086201981296594254164039283689583413424320398677521776186993117466840780634694375918596731011077526131298892036208366299867644299626114585336297107062084175674934285012433664454625568182253532133836757794147892282263518387825333581281963508041247952697636063956555401854310828000720637055125309052336482920480727933982651273757864749321620974613762779292810330019709041718710093976673578476691464582345684605528537115999978918975902776010315405447705939113296787112764888792997844664428212674112630187259347460650466944156034677995493774478736379698861866966656749736236028132715640314422746635540842914170662458166977424657192400719884620357085185375459485381320409814824725956788607604868271328642590812981489520575111324061031934576582111981926606003079315020391162898902055785830342582599931676982336304637690982910226838009885660905830417847380754810402228406483122316458206462147438363419224848456846046326747086792538426465328956766690051953972362355467042969443467416966050725222003590593204664298211894957887383259534812008472798987759161750272266312758822934428736284935515419923516310238887206040448984584235317398491692317165890477382454351526172129529399438476707041252385994700220142995995073443481888994274152250835676950880820016274890042392657968349564312415435314036790115069247364434430598252716012330298720040673176317180099491550604946986754980781340163378287675134602103500075115879334977626330145081330671180429267002204422956573248978407924945514947638953481879871679782004981522132686431854377790098613760038514647514697346759883477649228709758902229152051316670543725773567458237547187696495886297507369982650560013392254692253269449963145155939155456130944848022967150377182782746522714390106279758839795686188379519915806865611852039351635669332951880372989644023094094973014650989200094239563429613944754040780609227242429246445891153849871049349934071708485033592921195468161743955452571577138735418979134701377510667222297853866441940489075544352332767523597990736794311944076760580347731226914965358350333299080394328097880065357829659111076749788283110917651767904911549894772681333427994408864904556394810783789565720437307331844142841334894913605060534703620179489350002321859411152894780255009226341304773302008443489921048108692329741782050091935181104049419107288553869419372478875609680311618070442450516222386266612114432063251975998514104835881566739165089777313783681267383596713047081277327629198955270362423221802372097984460736087786384725902798599227565783947814808309918735883233716994375785889799883085652802997875114962718696849236759273639667112387860885895661528061199083789235223285290571859520742191433530065342976794822346182734090166172822322777342173844565194580434162501966665103909615631727447456893998401679370516772308557914641727214967252753530596392989623398604810348307937973634327442839535708526323520934140827018151114816735408872310358484912202503686948465773210493160040917283969154367813713725121276514257855996629866103224040866011426322512095608700968541710226838346864220584594307633347277861150412045513618050015931634547412905825765093638615731378715390256959841539591672020630035503942018679007593625204107619515164164099412240126368396571592504434625290350113959140442011733123477872355523138531386286191880730276338307173401375588848594459303730290494670743291195118488390364960602264991747356589045458948997331599987563065365484191693165390752825207562554967513130758609296660245265476537850299950342803943547193439231830377876943816227051982944408201382384107111178965848313533842950483208264879530130100081389505011908901736042699701178448537716203372318694443219253320097776175341685936250860808928408361515248708216458951475081332876373395092499880751379347314870048320520603130698369203052461499461927852882915110757220381849324970828733766960384487835260550933383307620068922829493938792123680649126658920286387318892105877409153696815280304658728936168759901488068106286322122815214570400003494710409888881460115108275614622134698285260796481632494759654113202488411626284938064183241440790776802989616959365442299233781712058617759482106946682606350606208633560904335645600441507129846993226426017837933148981012181596824243442714363007651946831971856897034582355214669024549549997734432537975709594871983001695980465718119694173429086067891673895507602614736556710136726957898696328636896487905647324769975346828247327908699334802284265451782225332401721357412888595401882654799752508982848141595342046653349400686236601038625573292415069429284438879137189285719975919601330304308438429226291757861972766244167989252158806971267855379310542922783943173066790369331312144012465321089040220689206635745709906469673775140869261609143543877595907424370081042596849629458381732391371745566202013359133676758807411352274796464507275624625874365534563430145863671277860418674648669698529529683031394877277397075216043246644361604174436992065360423728455410621279441362777954097173900899224284613120356206105622232951535857518918977340811431916095143487428793075076775006614597925019905627538260200028059176472577002911863363916143837511856951975580757859770244371990983580764296922250186568956374072688607594367569945315323794673794399116037264594805415865410817968158378698598808524541401893343084485425854398224706183970051181469127169419719156348248299134050244234849264567349020531453744198023385723998953509379911299087719589747087710191688877816923523124642864335202213671533830019023803976334226043627982802800788247545963293341790361809259757588139592115674096260641389617048766422395245845077485323685987888545501816678121500553813969929353643423309162973798609862369510740121221165376780071471084205232260757373273667332731298775952677253887446961534092381981400014752437949152644964625202745601244239988132000327943746127384708775826236339296038257965218467441317681643532551256443518653254495308242408975171304257491391130631434449311669658593604479287559939962909959215135182557783765055690557030865553546080246583348159921336830665649678371481126374514707489469941570199887695122044844985918087197213072156145069156539221898538607938617269817042471987678967696246250270022635226171844631979373154288510221472352265860465142569830222100355192181115002272557521279720053899185537528015496792685401982167188416434048627660144001758786092008397076457595436277348530021081840491569312544034355158717798308282272561853714167986157590378731759452796473098677280556882449926703575831924771138332376501185084917563683329806654122589517012109159918540173061777305873315576210382460944272166202472635630364492767445227005689679701691142111898893712293951019500524385766894042857472194766553732776622633793966480100429270979776739651104084722708615192970956177624511925780585630120394391462064959752316090858103626646062346018507370744204136291412200272505971966056086186033277529526453283880952877656716095125390829543360164016656444477670245134238815607029181956241800291228579908549284398757124396464102481894143116984620884056084889900116645486510376460988394493243857546843594980682310468311651441289734069290157533078430253141732701046075956323105543279856456757164404111329763290645714735766132236981069065909280298641907988273924300159784027079659372716198638034949746603550851526921547840585541363579141853499236490636265138370198707365138866986387360450392825930822764855110935964161732215064470778408546832043680699312799054138850722198579010704921949884854632188613142602999805087827478318506267947609713651125685454222559060100803368403701957415919824099751467756586698119476264874898657800501573089769092548220333668071777090088638453828564971173581265781361448963172702355215409894082956182869112428788682275196669199554785043734670492439862309749917169759585126418367406385387947509659079601595832442747261135873220823717047333678562091706765120116237919661418925877230696002355449071326502442498343250294742241010692060253775888692591821737016086769387021267281276996615787024649595759207263164669574594030734101248818980193959754998479363158315400906670134733128028839401284259383293533741817734806416266426914176756408579038050248467457764774928907073906210700105630496803336608739757779647626646134149191416472029574107482260610644595335036708058790684319173895456310068774682254061852716542224847737796918044445500840062962507576584773431701085677438563393229814997419185469012834520636358546611815879973107338325589089311162096751440126803516712456935583855050234641269969152875540736140647076192279886731244960250783844166097392147174727416904427568434352547444488875705003689640815163545365846570514460790388896126325878104675882628262334532232687407028204864266200474053734099707359167392057611738130099252661120142631396164543225830729219909383153935249434425162099767817862653460892956882066785869555402174912219449899529063612704938043637380703585166166785296164504080174607267061550865740871644396411237054547448711539770114406181755211779695756905975960746504206078823912377877220505325058479926034780895836647300487642788291810362190967033283367878218988340192976920075459964593015814651789597312954366171397948026449519361246481611097324289424474748692597277511140016276883350296415765154763808803191268795902220151549506158372448330131433950584262220287845894360426020508668846070198184709309731151788682788505448714592282338782608166927406289116551338872079635276444016084095307114868240915460623748380014484103707751108017726066971559937458754248017935662101303982776962895595766608865228038373756207022919953271608840723818036448642444717544358244792060432691921285943901075397833548568032325708147058246562556962987581325460256182431575622462502751156124454899629945931122992212560012745360810896986039156544046762912241938594601519442163495354972660571014812854426798442954281688557795090332985050496830236601314918506488406133732951240745342539420943330394394110324052875038083424964912861420442967520263855093372568546138573677932093760147637968547014379764690631913549870862096193981450573053146475093053142547930169496584577197452146857929131540170463154114156982321349872758890164206800689470157925919477710541288439242360826296420302007827455670220522694446718330981647117348914359193255216725734889013988804277154523221060658798407701013836591834603630928197967205429871752063845245374800381912289562750568707355301806789137085695633347364599842057348254141338077005271670304055049540788118445347677295391137826852317385626106990871281643813729054330900509336459220135424002745451840447406237659047450098551810087903976675197442353579906388204358864465803588283953181911393544415658384845921238898949137366997644549351213502345765278094762570837141733142979727513620315236755046048281496284972937739202839467060578930296979181275681014105530240090872909257989872198750421701234782273333983392496443800007708210236233235271765055924508305787273067622457297199910644281787894195811861344421258849930777829167396116037062845637261525358556570091516231159523372557687452166853459750587018230449956760370035445247529066934721624561263341450279693648740643303460957078971621166941576133144274862007844563372307029260734838867370199845123377226341867956585629697136495177008402570031717518839863865426807076648324627926698467035500792886817785985888454812182179350296662889030008043580414183239767706942692950194749936812726232976919097892669620369596772266177406454784849352306697313892184893402263823377898138683046742170233388217285715757539618259125355408006143367291112307412708079354725090876332469629248851936941466975907564892693688231215191426048526748222308681029028868737139038703831459003507131793098790386121742274041722135107630491478513300950115741946273261653716289583505177218372242847601875281573830555804700013925228785545766023923351868237676922200363686874479215354615754699823502342374447802778066065918284037205678731508245923328161356265509391228595565815427109471951460611688111032283134029567869682741975943635917152951894392935053493081054706915425825345055357154099908063411120475771571991501636146816523380469950704504220766088620582851249908705424793274209050362268254764754183066846700364424810234362843108064317035977001854815482004103539645091191871383035003940432517039443038461335151511001035173863412841815540669914074339580365089894844516869750495281963136622165191007238694289169818340333127645839198351117936445665456451487082509675444196204666085218318299546658039216144849013102007564338955368920330844142904926542739379771344633733796690944463292781992205087627028800273241385412897623512625239643084030576042207214901792340490952357528631369925710902350892757783517420398561940301890041419598102238375383005933881574697241843023317111964982456600605748201883295934409825737422688200804689750094251884877989053964306989271164872672846059550477971606779502114340548872154219071140364322559725201442249544073865769338656519299729080036690020097900548826426125969108722575087618259517657308467863670712034347364779173381599140786964859571391079643943215910850157272496098260846470032908280127117791027495049370133652627187182336651676332937605191964122050433353549228979695233364934323487202996211830264880963756520844471486469690792029121976155965597327208950569905891448139862527599379323589100670677084694406778295966104195573504499651727844681921914473876330995346065996939083757143792343150348769162803969945753137077471861540749460684240307225682995796237562213156468804698290046993150022157103281526491412847674577690344535600234316312756783808847919031361001110471763301109082819774131422413095156900100983547792003688417294488631237407294245465584151623046270065198938664537972715400855763648671398781520687859799275772428581871257305772139875027463046718775477213294888236765749369711087128413243077397132125864730937009598279063092555150562248299894085950271547452893651489232430326339396829022243447889207430783659954291637111108765565335885785948422455816628095777489682001950122160538772585401300901928343767573785487209831429135753022106748823024074777948067944504096555682886130586070103913028390489765056469653039615610456558326249582718308952686741422420975446960189186883845291422777288754405016010697281351147893479689921867582684071898421629651803242813580540024226114309534545779660890744355191724101931123969656580235264121869679976890059572251107448778209446780004671584484567164114391699471606280753839764800125556436793569619177351944152930487991489728981524280758869865247060048164965170867557747228529836978661417261011561477066249226434696578302257082216998256202740144897906109672584857199831581690758770413073599724461398318869532206020548505544342063707241708074515744337563278533423925757204307163187897139369378948596489337259400128029281877964623358880799615211120529002167079207253415473861180418953830997866402731110197186870803152915292222635486448664679741609249620924594714196510837753411213890095167610554307407144579292732775460947013689359011718937041786681154715598637382871747192699504006607517541768218846082188743075329586054980876113449152319602907339393911318152823081796472825109084897848244918434845410039506397445944648230932398049838251043625567353278933636199828646708252221408473604873817628617370840515702591134562411864363989253292583827736552378875792964806836749505174593772615331977907371273370534944882690167838643699120037231100317442926678958881348254072803146243124481979681282529154418244445303434164899321228647133642247141741569229546232181683430016860782106294256508637362615281052383846777117358428062470615382503040906191118528419811945230148923242204560305256257796343662441616271082795263356677649291427839617250758254963899654904219418374805681017953122189731622489961761052290892494013379089773419395923212690310700007386247323916691950734935410533857469797545977267146101850955812966669247986539716317275701154138147389520583492653451336007538149103046602619241229436427586468770475395036242056902092345909951565346010788837303750476240466382420943292469896675074447418794377245250498753531387102016857343090389120493138067557263991595166350292357860841991472576286885782213060775598487697969770509773382514034308101623068993175661436338867053166838937701701006343462601591669511941764441041832383572785447320998053031600288130423507590745658741298342335065261147341027174910691384355450534586489597406835543871482575043825821446208520643584550797445131971816046072330340564363048479777853970606823480526629137643799441658822825152611460375083428029871698497079660781369732420093851243326297016935629973088529007659618126123354222994178772501737650023120295401154420860919815550652263325027635075956155376028648205876412610185854633294353867430478822113367009413883817027749310424216809528061190725402415911434405256434003404782055837941467640130945337062875945210824034205698629924928024918891954324154762216133193899714382015349337550794757353373849426077213223814245013799871921267679291221069961262391648727639299436055545686601304434068115940284932707358808711828359649510978099065953691514842098275268526483074614282886211003726680836119700536881798346666124630509120684604903150021842097329612313106489509700563937577967763115732845357633517698874512947984882250212255268724598426945312740511532150497700046546698640954611766656014772158239400751755720877602785472087922156894087982197678827777973510160504195153956698591907541476601134113407004391046293818819756424895450445686373432820251418828935410639366235167846989421825369927897883190091215611460914749699335461115776713633397803614793124956466394596494534077410814451095149817545669170788521365454676807375996042550635009449970793590063143845516308833726874887927407108327368012683356894545494229662930779039027779179513668943045504823695534579284015487094554625761903943401087908541422012795788266933381372052209273620147003021595339876549560666335734568590597298930076981771309473007209939017909766986610913657944649000807858781254503394157840059461799670450933022588373635264016705645635919909081946451130693383874242796156545993996430174846606525399222932103047342854956344803733225142298715502924812836685817283614293448551953380460184891829114824831316346830549803055696714913642736958643306170290220840305468341427170222128975350282216482241472172180024502019981044256551594665731031606555965932704253555477433515596384489873621045962540147422483089655383265871589371521753641901399623723738585745374100946214937990429372169761619411429624626149271068507198522388467509797502835016686409690985254050371151309520721201808446623139508946840942271560324128136099066661535064700018391741176590644782172125999108631828826339739892425716795471435928598275488347972858635926075696787122721569655840011806083348308269373880653480305446471478771671304849068265580571589543553414905221340732348386201719378182524108647765026431112296871374998872193464225049253378528459429328435617568455935506920921406608736367845537436343229813215650676782138153094342604738419720981227346937648493625552819634542888824092168197523666302458371406962674647336380300186007106316046220195594698897482186967656285145211632711354898474459596220499306568307234308003764148435821820083891879859774941876592186102857166950380979530956774686305321320133700636272400439455968350408575450943316408625801852533750699138146780551486014587356975560930599614817206771108256451652001905662672990004561879017645211494341688571433996984313844201661041766555429578371965022765167913506388638261015097749516032813466710374334919200072956700568444288100116176718400562483930571863023081697224623276153405856425429489462469927372723104482929036359830864643956041593381268206845355036093592948437461021754996879832187295456394478967871124757737441340127260259359445769401244422348454315343881195003704552196794258477129617170979666678666090335711111146898471083775956106373944368418391868863134601142183319555325613747843078381715282120515765435671863738820045369636471184384397843706274439554195574376544828454596951586118090719779134078581928313726521398243565588868137829532924762536660110098708199987400328866720077380585716446762191095409072216162060762376023281391887126341515764849152713000391203043741102134284431239316421543049828922629291359125132660189589082956970539005734468745972059883898864463722552715784124683609423425689583018536773688146644716451329473277173010167991174748706918814694238661689143844274754320289070420797791131204066178861941274422390539548061917461876901636586133912153635564720270910491467204940110106348358583701804148926544402914136444475338439833593086993744831041739147686865683805194808242356498158960678060938228940045492670179555316558292391660260118419260715856253259035351556591980416725247782341906008148807609708827758243288154924357850218440741133897691536316713228472280878991115726855279378654176903186417586748775704803223639644765746923103628205582958656297371708701437110546323599159819948802842553187859168518892027620484294968561929470332051938012859228673029504334947866331753498442372816772826317224135633370950077468573167027072247250453368101247539459862161456055712124968012674417413495154540679718632929190898074063238863899733740998356814803114199009178336542872459982918096652306776049925822834926094282504555836275207603799807546695878680313375157976971569080304967179737029116957494975953177346959851348396200685385325964346401217045296041833162208561850135457796696409800495475368986317666452432345087520735908351259459278408795974327699470352603115605257070810515109174167013072457292499850525794618142716794289019906441690264322881150471000198363257405086127307962450064864294170714102132603315303549770013580492110209450023280685222528440711647369663882337934810804580126729930310624978075394692862698059085731484611339976134344472103352620324845835564719569905724484521922773932651438874977923721398741034834769314508062921471951726462538425450306129686145796626426996062079613565322892737452656524467403056638445146455912055615785508162168114187443151421335338213750647690302064038867543094901877398330586721837073899936325221802598290527945951434732219789814551018720823994572835607485434557481827714121910240418444297409712880145275509974915083065992936711317036248063391271027128241039818818916235771575304047875052540567045368378819693767280951950957694733511102565232760840974851329119889497988115818781086826658376236602946526447452339488708004570233386118502991202784643333832121827186907957730589132028658481637351787790659888131169034078523622902708607217140284004700537067277822328526375349065320128064890970750207899860598737508474064968946491245401257003605023391712551702469119117164332347220301366040339366406965451138549800769346230739043185400330707570953047136317182559805218937074788339949838833693130098385828680013856763465162445451508774377886514167210457727128630307224991673332628654864440140247544281849887612888702055945494262062608270828852762872231132228816853907944529712613857251944906183228377417716280961454667354225391626152541983666347316790434470843157280450413362707503919465829088460869462977106715328748818711905839420632753752343115303129923746017255042603974348496612055648211706140251078119135462107968539924255756413870433655975110170783655113255492003216447806022722113114787159792204607548356555265376241355832838739253189986373427025612169349353470528419611498192597056586714670969284935066311889442421506466313127200721733505626192029644219327407165998368086456131065596017562141326372392148806453904802516537239521131694043758625983954833334674406177744999967762074229484756521563231879495467536797970625214180531017327316019930719310123689366218084988577649614858295695887383846761458397231106809619337620642362183836071051450389803775648054485520676892769902833076447898632816422390255462659568567910244928799821198155405054925777238749891020393267134719389721251462163747662648557535737311855660158938055665087174489947383782786550914060827209464184346414986832031781489396955483068988962413730095471866340340040392997639762721347024385077768374812482467467033783086733044613288912769697346512302116584610942270999096455225823516730920202681013135408375862837360418929499683515797421675015317248879800670576149555501431420773404363513320319764006561961809178266262374707513419082733106227128606564168972486231326926299542346573840070941929385256382270185929074492132895166002965661529521467398210751989080250940704025436105178743465481260230925062952690869413659980669789922703187329171195350542924738017590851373728142005189821447300014793988021108978114962708822617483844347328658195848256875939480242826565602431899133506239522210871523738273487863520873051134530590647291760396693414024068960312153701734667412394418647042545655432954752737913752679745006384986539752476888633075021002068400227102872105116626358553156775138544630433079787222560694981322326951508747585087748700088696329184198571123745148943699560041323996321263569827235901228313491461397334527909644242012343782710795509053958171498594325250939406842307673487841100986979283240211692130649301141594334786526566913273402290265763544209126692427876666329956089066944637480779898883169312947924235346324677223833695701896036499545811198810434831552624267359313652117663955534216639001662937249343949251643107405917920327532385345865392730930009512062083524091698671252914603000659670302667252839359033600173785001244609444117438684514993827568065611865111175092882429823891073094533812790262797428821731580790999774489013214086383024177458538264134911859117377523493886267773781315982245377471819605185174744516963675631264744322933384137337000945697513824572616692830543467716345392511352065397678247305264559326521080698302757565362699822837211813696844608703138483561700354497063352244066864453822355959660852995593591992240459066470959696601045986742219074244950419183042938036196989112269388200457717360044514746950949150106348802803496649447004441885454064200469416261201812131832311056871492212785771928022647996952946400274016155250821655739314853460667868542314235129280743598842418979403268541648014056837001731821387432881591939263047112383959860237283824991816410313633353100792900356944302914817590160395356035752853383386015238162707614778380379954275526959701797457728251717976694217045822940551867863257793563803858581131536944074865226994764130730189732113854691725473437923505778348829063884697320957431454449925433382005383138272969131489997308489360792717928592377006289535843834844829281120608612616027513107857811245190134801368271077100709743112319541290875335658899801726073994426780261452745175300879974022200422302879045746371241803149672526835281598498237267334273150466257174313263332595502883503674376412733471811591586017626347597050435449718544070461802382847486197961916781161662081232559080749980767290662142505400097747068750098918630682251563661253271828559540277638020102760243096023145457968302524392577919480047748585652269780694316073672200816113851972635954850627625252894314604151742581135021225312249046471563959494170498962110258608029009377350165718831396541761399823693603336701468629651401094005237828325293422979028461452936681197494076148173945353060724086379902412013727127024988004358313346754204865612078588518811121430915664604151006548293053682474095908538646597431130053912945092463388665304523100721184923755726223971850907883283792571915995589979107270816866327627111241425213383575888302049782073269394046388675497226320431094554475172319488702635389816649924488361382021096214190622013480075291967585270344443726234856307249823845012470382289258571553606329255610140156121856365184492103598130649455082550337791341902437028367190080530282285008244251336615933869314198565251319639934678839509543169287273134816087250558013628947758107192618406101791562222889240252135520161207288328201404522706960123547904576302770633255198218577622921363805687866316910175463412824883800405328908984956922046687956667480670184290707672748491371141553574095762199022378858455407377531254465369021629634533611357995086934306564445200325965947590720576496911026119588812972054484841280136676311355767369269242840911004992495774614948636572160200929839706671368829851805480115403040716019109927915120962094311477613164881016471260495203777199389432117137205304111708412013152258921107648414544748932658394908684106711178969353258650958231075368260016954804473816156041632640846396538079701290145669052732088098742447886956610107425803809968136899091079095821962633301073626630343592124320477816393000238569936316074830255853570477132333846753059676821768886602000828961999352081809677710402184749574897640533154267214822695016561361223662257339631412759653146300073683427054593486312587851438552036588360274617201674629612302693064879975065651125610380248188314286416722102928366482918299346779815692768956726108214841436436903601462533219022264335111636306769129408176554549867308201895178210634627338251444539440373296563319227396645628522867131436359606751364184693446689314833661594376125804219617556060845716630674711317840690570588292821103771019465117454529884419348024215818775447249157610608963629008184552108067890039225058679151715184580739927313307394599497882869101102780008456879459280403823489468080634456265848414168223661953293677956070828938011584845354690406824132375878065785673596286709473192628827263402072997371054232121010495591077792629040737950978374403978264652373449519864157776362027221167020673077552788820836033169020264132986673681200687526259797220372974988583726099237702875612324682738141241687827972933370822019792943767533073753316486363906130077374892951133428907603129106792932214089366052979942384401832821594867755423999486206525284366160374821900413513261796656400071012345824447341841927217460526044585874076396201689798975017388629054537104020444262777237738128156233040622341917808500111677178655358132540000924530684866102738396562842107815453034865446914383007836943781217232775742866110472265057447018110475460503073038230469170970245949094885720867398790173171719287731568830812082701190782968827944226850865698185529738539200991990146992626604308936498528858445832713827869234387339200269577971324879442822026170942806398911055663141780230545603889620093244332021461738510042688586385608576632126339887174645566429012690882931082786152867365584061534190142431488148893281714406530584519717964345560982434155278757435227591483818467058022709669169051184957408259048969466674194744712222182363152935587136096103437049709071142248788171768490299197707694444829609258844390352940959083303668058564488249832614383420017646361340443043794114167162838284794014232943330669464091055439109578213125436136841997013638316592545942686635718679857353506759162323954701958818835012821387143535456586256952228017095183751063395857297277903676824684676718469371198240991375402207592746012238576900180440667391635859901924693997508955297309880563824299146552443395232280600069776004955259802809659013837383333937424758156537845876727071304962773784703279024928376468458887747126161060872104782024875856050807809594711656388906678062182996378889467439866242025412723207396662409695361775840153601338778999983288919191198345471810046942637435405587715954291849696681461019297585776059413171890599146992338801107956286839023467315294130291586116644539709872262278746528791770999009530784076245370099353680395828251269563772286494641996285113504300607221353243702499941729318822604848170846854258922559317798535055897915114166837255833918909312966588113468097983409400517057999631016977620082105609630022668803292699694855286724881242829197515354374438822337425376485154262162426995672439695111796421919840181538847867363638094397846082759402684791784861956936786362255539665410279854899673945824666787451005077859000752082610939174282202944069199579269445386873841817471407792108668629589828529446038398501579381481694654003637514178851478250427466864126879430336392293805530979195042564529656983291802361795599281943093556577610851733167934392008049038288403032063880309818176162908254228545671063626183552539547522916708782540954268260080044342873480497333037782045834819822180143500900697379386274210307362117295163346125232794466448956690540742090725791645000156639607323283092150182202565788831770254059942088998610744217926326176531607259103056851515124446617070744265566419915306879861628843147409931881947873948534113653041158754471769270348911543832987404558998323211518450304391286330952974671238998679305893995447186919316194448319436075129746450981362454172118043322769018379802937793741339057785965020119928830792407067260936696847947854570017563022841799147274458980434119491026886191320338293020773957457908180826245503437306783022968761314569877492655715815763973769066427807567666180392802195716917328496046014442320482846953555468033762131618353542332469188114376739840183300401629344988878319121682283193507481032674548230123847459540652948477219071677409444573745981808869464016561373033493952908075766371166475082505961257609983801715990853169031777461327540939462773814748948051683986908936713579628188108887249538301383569556642156698791383302266196878275216910004470989396805322255650457297919738500891620403047061563705931495923989193749582790491088305732301988266180071915715785516908543276691932509119750582970752164879176197491137832200140145655030888536871448702613373234859341549904724562193050209148208431626559753062471706273277283913866024511820387320454669302657024702057099675203374173186165021182319250805407111019996785635696662729597436785642308759004814915092964851199122691056710502373643433570724607885772506576649974817535125929966290858949671602824907242651666160135965975960518931187723035082467855750446311121408693287536516500644504389207711316920306315767299781309102203278127070796429031670012554721735443909645729119261524776702143499675565566689460137719049511762241846171334384176624510377625566668822288808812017156788272571829420647725860558894110065122329756864639662344364291446445424307128778105711533234672135410241834378444285340469521994493648431959843435221758169483376313869258567184773082984320741801325341801901204419630533051284248511185098699738607505423195659825508497151732186429211300706334887372473075490330762088798803061846438823005702378182457787004726295167249634262820191088408518612949953900404764378123746326787509740918765124834556833994717857491151933603307320197457749369753735874455883093364619895520064349520587909008168871979437213421529368600352915185671464231630828498405998990976356057272408586551407429588793197215837366412910821035478895228521978057248163599117497654049841953947998636006000180150348105169372165057235316950747542714493135080488490518666418759115034967243589376892254010604797265883764916277291298884540813510293751120376271373555805914421826480583952834297951555831206905349184961602168013289206851246442769476875161605725629184039648737942179383276853744328904972908972034602222983590040337443629152913606657150616969371337511033588049253207148317842739124440350780756582726617465627711432534021001999456057964126106507474707780363635361125250688543712337068408098140048723418119461199922127715488321516108033525542132933452500976975056794621357564209399961141092141421069376387828580810148528486672095338559113924297836090537359202694941333356751059565725873463709339178565933642645356132614491421011559122722753971683941815109527735345184680975194058353458376907145748479947216834092548511664912811918135449403961253833692977794620516770326412981451739725677326497599642786360330864178111846769175158839885307686682927341048954298294047891988469145837007006456670670848908236342527763179953640649670473104152949754070178068986254416833752358320212600624167089242767671116326551035738592818034524662629838999501422979624972284779143323586874907257069501164684381015067474174780303540005127711633416376294973192453425614434854243766669105525797987411806731627767090205724858866035742301541665965294988710449932169125551217281263956176210905741481553978735268874696823915028886795144474876676459571592109969860638067777063811710553018325103432105826485763547556986794265947221890436000819512650566510746940715427331646969015501194080984606431805667606762345533397119624339163206398044639675706808528460949037864504771761830027845450251395911808846312637309803211062488493599684835558239666049145200909101199569973009237649710258727781029635970565290724200455332182906125636093719535842545514300450252558486180719937486134481888706832462953587026616240607383038733146482531403754194074311910387924577879827278055091332677440791287240536890167665288150157679841351980146688857788770097775914905360685844133872912582296324467199419872827580138427335767832530322208047216591139056993168752582583741749173150699317270422859690213911645298730941742262837482364192184317425558120982115688896247870308129286382190834673187194142367336118474341095480537246386679105760682657256755910149822093116578366864128432074761899927314924666451269784606675894646876455143384114320258296023856145224704802307964798343109299249688854488516912414485462845941259967874475053409229125604007533688994944688932277090657897839852130112441425511256177121591275304216267893961391369922665447550082373224003016511096906052138488841628396040483791014220734992391045453710755709826153728390912316944027984043708055886675362897355181795163188884621933920242212749173558892664316414253641584923396627422802533295880661661227981140403481548690412416722000897344636051427103819262963030043088330578673819993831537110324896591468268133439610924671967319437110118464398960899453598903457021968578396316351043627209228360558713250673185602868836720892248990193200980846187815513496260934186009585495257741133337093270270032505903311100284706501750762359690236082584865384630870032397347974349651703675174089933952782818746492739968496435193472836745797260240774264189646393183017309460039007962473045028843313707265436533329190536785211872010062689744099170011541249020323236498046849483279427997012420351030759370889733625730577858742740476575733354740544658930683135431672820247788668109662070861102933553226360943486017823376749625645695598238966601678006155183302239103778662473322618156516719834208591649717659679843823739972222092120935230693607043018894204794703827227764846877498363252253871261135915180052729876124394142796016054747222991558038591145964992076670527157691573725500866672306258444309229801227537820111596270380562710931062335206596466886095539737956039998396400074865935859150248954514442485656760191436732078896361450959415733319443921724272602339007811144045254270339491266196844827013952397964009067521874648176845500979567529780903717961241853152302879095308491970322701193612326336166220719031853083752837595201474251504112606707235638898774990539251095389618146208340990397024274333362656865823546898230086745549649784223963604635430287080042560151224123611922399977348358050655762047275215456559414500025381327935571136696628847586702471142344333666995017613180442036095919348483775837041960333316466817217176554948236262253194687194664071641715074707347173196112302442224490258728152841917801873668169717554199265957414767849272718187534760122163350098254993268315993243191626349045252380488684197664140479118957430533362665381734957459160812609087886241042938902481568570694810564869148664828134515184735961828601841370782038273215462322326693044181675688533718445349047148438546162099372571426635712703316917432156658759045548587310581624988639147201935898535283165188078948473200968430180393305242383608308758369854301196113216892867232575016700346274244222737161985470865679439960900468371750762398323969469921876042760716052288674033559825016743988757697423545446420922492989680175236628610234918453381550320712387078475781997892645415523713205611668132643145970029758137430721696327621262589295231887151644140451930023617234728210873460926517821013560772296502100992975609524892605306648907145416215614621515547245759864147256309671165805074755753620305610754400501441633766116017513349541863295082754023390227641705274404660511694941801949332315864085624068825581553108832234724668120387321981253230582167482607687267801298706720579691504708689628335927851469382450167773213419402513084443640783627082932768448539482565269012892776668157419904008015699849059807453405004040950099316981174523246068834572135775118176143504840224385858189835113054654181836362670705876069563564485801443773955928636891042533253690755417401402343326345556181227865753529505582717064583999169728755688242962939829988118615260381766048327017609518145543790408720935451886893208295878968801904537256237587220453293053118326760334569485979325079540754665886147954810954024476679079681995182140349559346166133874746761646881614517271201210917826176657274544638360918619442161161573353662091753942317746341646744034635652870230119873291926374969044839714634209412921490710337529563665738029120409433956712310141298186745532951022390561959950767684309313284229652289430702908448623330600897254769625219799690988832834346165578176211097532257226326941889624348220031858878469447075912023947456806378324785407312629869556061384366714418782101077622769662816977026001184830965451842387431686665775450236688382832096964252054575037464117976804958501794039284447063534120227660587169821289213706408916010093877759876491406588553268078290083979235903927029872664855404247452165603599853895794835619277108395980139208723570521741315511920559943677718128413946520298620346557471313149088416636265495603029152327804101312395293180819356981952378419824860880942075999244761958006255840998892641091904536676843199037020376056633326333433742199128940608297322530161398099625621229615274781954831848945461797033568093681105541838206942306068746807591664232640357135128214559316500061592751160379642336923828571456982474027624909892323618918449527854426269353821587219102255533379312687818612877656736485218584269483819514040558181012016086957257382969392090976710364627996999962132830060093084232793109544480329124107809970575468608110509978080186942043460254375280797096307605456951372883244839783980592388378208549844966749920538379820375514991694494922986240619414082780361269218666405505793697409331069957544329748739559224991921705627235994537348835598582067493168503800852673328356364619738066440004217329138714653389012354167398117760703760673297409321510265773845142854887023516200279152182783833102349363685892653649193343309416715480840919033160588473075554729614643124127854957053210455483779147099020766379027372099408656179049770720492659038709921098331817395666979319217069595963445231029056552229167341931343510666065483615536916182524738052424748977138124009787409044764198878331666239813586154748113679363021927756355966219622785597929870337680716847881783278281139422375317846096672225087959776920622827874702048268219104289802464078899892875373402518321947796250299940782581343730414347094913046686676637356046119879602344259133789201473288750871793841793344789667446043010546153560476281740274518559831147729009571341255212530252022742228745690611942080432679724357792703953869218086132184029177761898623013330874902883221984478940240960924678092767204002767220880609863371699427607416419250572098147188936526071167124309042028085863182660178980413178560969323626110437061054393264794220682808186304416710896709274600195467179101327694339827759070728272456560870219786455970993373871730695812457473404643005256606264036399462934090898820961523403653793377767468379130005831671828475475554241252888075451302904861615746146002193618814094013504169958027273020031861568227217277302582627532235657873292468981442815540188376053553648122829057843547605013122952232586534952183930409616957489438686209044455047659251490397313135683029535451695191100857512896608900759429426614731366400928332258776837385526352389224984586255764946838501292159199537508653898578781499926156456647803240536355846032556561631106085709925534222211597436852110505677229163628564435383437709641075952523459248333487416281817104937385647879220392401393090773794508108005095516915239025792355598455139555226898746335860846811640788720281785670735179883427454689675330690485361600427802814973014344624401782982204644130428745143892242411622472704803559529678488434564392188483702011664005347478490579750221620020051349299270324409102242812661117716678873561556065604998644221654464449646604990588066646192630963288894650521133180077742094921512566470451863390576757393408799494696222841138581590981805500799576487871270587931525617977690210565050744905916785625069698888456170127833564714698255088094366234944777694787971620153467566790487799409665832459834624969870952861354796330049184205752749193314876720356254862339122116645521959718954237136107780176744539261803310359733822901129837739947479952279467139529900118530670347998094975422088641205368992649704155281178316252179586420306018596172426812779971550861526880132772082441088864815443293330128349888512764257623094166267821454133134634286153090691456359405801964430707181342472803942247453350509831932719275084346153171449967469124177848387397525388117517175680381238661878660268267442649484988021549924338372764305622973922784677705546724830404199613650350651456232846881924799881158435302917776196813697532957558216700166937349054336303549712242205007148909627941449981872582237753756161290837462630637461747585932802539083618634652741653891788306003255602061125200617846034959229413216960252049212576727926484997409007228817365013104021926159057913566697729617580710398706983384469190662211832390722767887152562337157157732040042005127857157121965610286069512779362703428331821180369988615712351859321255979698977443976810968965803939081873232819186143792934592942028040070154827200048628111133374341291279019205791146508201451887038928757332636144346545117786307259497164468372187417677973531088437549093399647829853598567948559927815663129059356335228907729490642668333978306216736301316833253742206818502241327828328490836679173132265486021310961568822053398535635370909043760875456819583003392172132253766676269030316880638030143305600524250379944072830537529707542857425413911611387550936203446668836200323981408724156486934316042594420177430544691686807825432409801703330748540837578988679662064092116108050219710075026676837581029023120269720240955725335987878993902816778992512499990697944286510112942689989909830640367283815616680751899046223731561251747586771713976470300435900066925909585636860866002398712984864629521452713537158882813171296825926337812348184402631716023955382244712212516622625031115975105482382338162491185722386685605586793912300142393979103379824017777244172187594841558317702299121827844383338992348768569810159112240902313536475853949787830659433707907305642447324456868124235733848608905048758095471465297445732897374823920128875989623058390247401133160681581552106464927245420295219820335200484804598934215953602119145736470631058236657925098921912805476741319703524314859765880996385853875017255128851205613598101959445652782550249599821907311265490959952550949577911821812115916404591186430673443663079599609397273741059668675422905523905092805655810095176223137252067573955209907743237383412236489355120497357037996267204310564937438860144980137736928333128336302482093308632134387022125269110689973515013921840901618957802548574421695138577566639498047506586646620810768874454297144087777963381100745805263722113750413364255420696101661176388810585009326297804288527081433768394455296042911489045717236937746516066306782987355418638547816244880500079994080597932807957503833851899198784308108223791122102214280863125060331320813681905991114803118336171949323157142089013245522494214209101014485806656527948622441822168117329047888853112465804144658919561895810535400108576137727000988775854082741721220620646664133621069868284729577983581209724074937799191990606583847780068692350590883491499852972650239031472128265929159690837364401927564850226290699214639487559767140323776037909068415983825036606087299359503439164346677082824446945689988213854782931876187075097020835429325683391055509619543485002248144930683327373821368863173203130800878847282783995544458484014097219879212078429175716235413651167923735681813592554666772206749827172324301191431111285844965632674550713786483736756520152495480143591781596893585083969933818348932889294435541520635073919963079098626120189593131923817647809047891745951675027143636284927241482624812871064131547583833982859557481006819405641945590540843860302827378922433430977701724290412972136986061534278020663628096267093174464525304112630642015046573357742112736751177570710907287879411424383350109059700518343052018818156846881270065119593534701333781336761513576495435443097823884504179314652976070995826134785437983970336010440516670251859723922279038084705087484706606568951122034234389108663481722589812148396614155348502031833067603154669883937957582031801058961764911656700672161512379653165662523719767085925852743105050632510804971596652909372290400223144642656745652788104129341166376532428463210109161717086846288361548829867928962137767731183683199264573220781411552129025382083221452214932115637875462174436183356980948067029232690335839297590078218751859192249010795444534214196877675820080051526960154638478085735439360077584638313440334939566532949666256528675601764951439042211357007420850437403454347566090718252753088086573604370445239279370160378549257081503452745077436728817947710129890531374485031058132477583236422188283546094347144435541812749272698206293834319597390336285732069895721461762409416755007112302460522416937820076955008710977986948716076859880725200617709026304190877910202320496661299301657850841174656570242858487560632085859783604277896945774693359169811446583947403118196302640506475493332815497856677617562267218783559081969309164319178960996140639670523298659699854674060033496931606900461019619193961572428590589203336214385370092594909439916698536710930579746464195088147008735034805207245009300947465863496025730974666788292989984010660561778393057959544390067688861836149348603136724367482838307006181529442847486488370214064781603859152130732890430400484225111542556063570169603183945827176411211653705509977659476738930135133688011090164360847679500581333074993836675971995388262726723190019327024300577167366180606672186842345891087529414487541675685067804245940621070574179702885748593541799464811825231314166797422877534944264826145889098285153616927629991478073414163786735031003368179674239545092324937129935403753415484365397949070754310606113763660877023544490818794835940974284454299854137236939881314543396048175377633539057940671756118548264918227815825808629559564201338491874576947423734241762184478759038974379275954198921476738220738013871726797223859767813214569499657511986096296073993713621651597825336440345087009967069978032499617140762296566967114251219250736488311068451111367874847009838961329498916531627537321661197410231531681843864557485454323372072585302693982661598985652535432849947040264279938082104249553869234786521859886429769635102189225850417731924959675220891347932946555027991519795347905330395313807687035044051183805590710218708893866617425050911887856449781224434576464966144599366193848224591284343499922868520448086026031305166847788389957513493748714841166448603929166178887130786485504861247329751153850755508448064612198182670259350597058236085670980452783987201146457523536528451618420912515913894713306032676874362621962201760603098515219029525575939626898671939305888749565915517895406452672733029174775912481700794333926494306263647767930766437598743566044840851351099578824785604952938039340094809364063387143941728957309456148590936918167496223098641848868411544832058626922899063310864617797108751622968734062904695466363642982854038125476106274778770403660290730892753810974427710443818732121966184292848414093231038321151714139657692304882665337711599088988004654307715917083582819324655436509006604270891289726511971336761083467626940552036194352425047126250213316665571996244330323025165238367794010861240535892819545841262155442629823372217527758886211998673519654172369371318223674983834602201138997877243182738236243766264026607652109267193431907215096477036964675264321602463090966555952482131167425261366401902429739103528706195509251879025048647391281868254078273325187125688194252942236334332850443619457893420514415315681479153713627462034952260047138720309211579172374188272928757577228234437444621811402111218385815792710601121236244134864549221605980261535710581610391196265020798387168237929612394182581509344333960644436992314906456725568602988667658646702902317526056125738142501927161886028919923954241243644489777300560471480062558415662360462330687252444520893816084861261536022032983023696557691880908469590197258938704913299469319900942268196518989029176590660217035203795659420574250468917981380275396680980771895260013798726728023180818878479006605248800419526248854550098956638318278885768746334380063836055532133468980900112204224417023612072917271889650669254333369665380374604288245013133740319048490091725382921929007010972622841009587290804660551828196985251706963591492756995854548707468226037647470813180939364193820405827814701775062690308800344204841826039531895253430697307504530349776135431566203576941514523034404660302353973434357274218619562572803898519339051851509003206135171040004381972746103616889409893053902583972290711930418794678983240518674554459062342512079159487966812730271495379523787203510321359784395217491159380603710438810328961749575246602022524426689984729237189907076527782941264326878265155070431776207708845854852576748177308048421408099221042643221017033994952287337366635979448466741583381634967404542743151157017304137178576040595123457211035946840579042887301598691188771361055328499041746882315606631168605721042924483330410744274823611297006744235763575426257348834539205687652149860005319084238441026163358062948923402379200410640047232814792893854615565136796535456374771143211104922887981486656389159818144385389687149205458067957322864019644974532756524094167489028831288086416706754312354262106390122890971984812199610983003254760558142718063574945109576981330079944417759637815990394647533661575395191337993040058226287836494929744195075095467658485158753884919109293059155045334103396823872896590379041041176951244708918761892374045194965538038543166776691289570165140560695435989669492034994555733339324666663655499654701045508747695362105988585434207856301277614990266010969575985537121983473116504936179887934909871638524946543219188331498582184082166513144642801910644557954654953144910727812690610770774422712163072314581427142904678355687157598521707677765306397629812366279795080781150630117842160491952315934653194488257486490060773278550216018236263688117167745665542828323296787319162324800269040263714639534757457894298685908533829462190958112136532180778935290357502449991036787734921653429679028499844022601119418261671592106258516579002141598715816614254809184134654959932645689561026214169388365968730880207851284224513449122071943284820347368369938109698233652261766816306885573080195828942095785762277030444431790324849700341380160613906809439658752744038734355802989968522959284447113890146023438047637013158884393383615701146683983765710612102412267150967009743615589941140771345476191685232616696293586467804935003787719947084169946035850713582424982149618066266337548474646998033243751857102449539770994409770099724486475732423028354434280524032714195971306216573347964222809481533733982252391509269051052196977722848373870577561361083373561136416696601940506826618650369389870889433739246828811350964111545503776889875818144902172558071796015957687184626388390095319769541239782834962039649640537758545942042826979931010576391632985839719968664266428998002509155384703746749490694361403123690873998350085128970399559464081510548978809162870181571904817666756475544037543930026298217036543871816482844540933304590226144585833063715191780778608450157897390258840799678155386406531073247116574717533404728681137225031893590920306523225912595724047164475032256247450828151359900029668291999274833080312963090939413666529705391881360337421581235881818657702848435620194085055059611503614999519751377607338993505276344467958498617214701212589220072216421545981719294284118960206179530792411713168092684373377724264435795986031302229975624636043226775817116822041025588475505052073297789384391825909733038458482214229064984441632230124217722844408960008443701772696448938004255865775116577418824525948050264966384466402373852625631550198515604648610474650317327940695576319582717111835046538907937349615122971381366974411822821559136671274185713372698192185795960233813193810234927920882350033388268274767282194707297099496481675911925938475543678839197840603910629366246944735033748121757879219761280585965115844528454077035302035643422706474564866940868459940590663229444223281242608866133082165719826729921819729067886200022011620237357295828781033263352650703251481212210536331060255606018699563943453305400519919563219385574188717911926431233387367831905461950194640365162702170257646035827369275766851076671194337501325752215863906575394011477374158513215511899696719882764935449138113554863875950274901586760947171693655542141638957020915421132289320632326543891933250462936185207993956576720378020972837214160705639941365776486156124649129072127205828272924273683720040866355112750088548829180495252744984517756393137112837753590093009713564071333006457365244757802943267103731149734669877177840430217708193797496557533092856184506146631338097554183988405586183854255911099009353543839181342941785168107980201539614657249226465255148483295716035761651861350091759348305074469928826383282401008860852334429141917007203551890362557486381030726228003977430442631238345545658784929128480793407717015432955581214320059225694988539136168334610144225356734932887591674068761775853475274715648864540796864614974875235159498665461500125627909642251917031833032928825416305889093361610840324021280856804811237051964787759974236780200584051329414034744219935218416711920313535554082504343518671321762152260687460123044728340196591907958288741145737807803655250737412603466297441755685902047194807989346650861173462513756465454259080515685117636883125297727092477705087332621258323673088178509445067461254630509019155027113287907341907979939806023435491550384477314363090439533133009989758828424891262645990014701638339517863770288122394736856424205236176310324440053820854608699306303450670157262697261691056092240344466226365752442612586369321934949257866728374314760159513177206374336525331586957734722406249065795259075763006796078484032323122210933451975000339883220454654469386037904568450787263103303505537913105073504203623151764526307240042470330490889310844135506341835838737980806870790793914213710795323267733391007516236749234866705758996565164375853366297302954094848077712372136145597031130984324768480494461264547507327738921438430860086760777676351156598419371819700165322497726759444173203204017844221746346638934409280527618696365503327458602245411549743398996150915857710598293407798418861059633583463277397864063717098398855820271399956471176878880967777648231409407948795851962447885167868372309194266396457716083480607984667128556084804975863597292780604567387642928434804706272837811739727541115088272859810985509820947554017004201460630852721651217240514888882512255412462015073468566788224354757570027707199788684500568097410476463839294066439963406208418896598319856282595997001738497313062243890152967158918103734354498331801206268063032843505500713729389707811310514222303254560132702030911896071682085076265551557758999871178998569890897602546046856489065924858829838745756587360522811373823731966750025547049839219415641721965431024443607293732023375175748381598246665056673647127063245976559573628903002259363565693471645346688240192975249105785381606959916098529667597217213454398016016879940975091111342130289935524424083034266041982651636030234221874417266646126057324101092414380332951424553366059944554482373450155887638031540722672195250347147780293848345035052511012939889683328380893743618653881238603834011025969958715200193001503187024719848099601309651760806286212927714491322572183171155083427282308891952441591001137660291939668117747347764612364404144187324467387522296907782614827132481856288716536619857785638325173347934581112755282612872373936011301182981655942766292203711583866218817414966472243102284762440371300520647490326172737268524908232691803051539536519217618016394972937318335637380936901433183276702635262892784093558448983926564861211772607226597791117123246751091434320205264943031170299077208259171686020778774619599499420593709960603577595085490247396584777836918922225936902227699566672922877027272835478355954894207948433063902259059697432511283644238116433382119444512654559155229341644372587169676969958044497190422371542080274156489320756414816895416764241209656827536630522640354304432788402596276968261881379510336052427581710907113484888630998183540428720555915935103146841759512739862194938187614531647252981675035047801940413251320789829970534174500503413595525279274626490024162170550677629222740213566115834289463542153208749625685944324816082854606387684528015364998874249557693970997612169184015872820177612033980709530276867126436128882523611354972105990742557789632455064468047579568902215475961869899023598343575059364225747877799529022669389353479559601688800694393270137242884500121648287883263156566189299192712976708793993933785335546761969364542398496710728786075839534441617815544897784674411842348494379048683422068500763529391470097068530034432051510093511777610734371104741514997530350839421591458234005152527230097933092869080913021944484650832330210873828849961575285449650779431398209434929843289596869610789413136432240990549907274297531156716881841205251019131798439569663077271069419092975362628358141715101341516742259093719882169848682046117637197892071249086912908306994891538297912265049199070624884877432537292769786910561273349962055048905382857555561299527304474528142414793221397988008073335831194674283154047944853227308433709271824275120850208258376905253883525663405624947375156722480457736335098824173035087684167542567359475884909653738484256411892642964113774610236852937751976244660850053080362177256778958677594815582871525430992970173041624028840973635818795812760913970911905520580846834081036632584193462163615616906269178285141394862295461367435419825188149456950594274023977197598518309121831125120871192968749045876999549652001585138259990693649371368232526097117547686423618666812543568996339165775463225047230087746059464792269479462088198551942801289678716302499632826450990987073662894936005164905870462266618500722286770663334838892997706669492682526106882646465394182841630014375031369062606876605135373594423408013327809602538838984178896106837027081015113270481239678086553813992246920490815549933638108919325231502562946694036909084121646879839861259924781817774517914930710068292772667181284260148998437468619360071958915078243616566704452127383048881337356894692691740534743897753714443110606863679207179864182024652439323710186624423031735388992468538901197645872885019149732211176191272305841493376460405251386877380701406135661381959871440203494760042307356901768708494617873945895369030253637237164095145678275031475397159823852986560206614978028305244848258779421754292606171718482533128169363247921836372968603517482563049562466508307359535773777530193021322170545573937098339958216540073376780915643267496192738626591043954385489600460994293210299919615458742888277442887317327991241884194762088843928651624043708803124986543711668538083978080639798512382281957273365556188286813345619211422430189335372661029520455748542089031188894077351504169058473177204122556540644881057422041392263528932294444975116808789093204804574171999770643800377806377994248478148852939640397398079717643595613689651733514408749078394097890370341096168991184283274170827779879031306236470765944916936218446998071318939202650911737552107597512003110980164573913650427546440920652290125074690235059910104243247023552785639424454488045255672418571406820901810931468886370177952605171849971139264779639639012596216495198836854388546461939272002154614643255921770908748665725640030641150860111243288392967228229436978226833043694654783623359978074140142300754591084517805441484351036833347380547717974271359719281478794850959289830727449562428889511167940652567012509444322881775493640788554837801771535018427448828408932502288935702224423969013336291691959712917841741052780608042219635189084377481115021315477436538530732908086742848776993862980442330754717898765246990217001485532025104646294354905325327737403523281702164430432255365786007282319650197736451230068352524499431744547784821487438555574698608086669854831347750889783578535369506321526738346730526321255926494668142074960175126995158643339745653883831338235669651374943796591356703411977946413657520476267976977412957898246712734144270029847459068249084908280746881565950616247894018583807011143828792328474811840202221179690441438819750817379180685566893259228607519145896025157876838667083633309386978418003983039972586151772503117209672279152363001819728959397542302094737234810873864589146842845614624352706434545064890368038451798798393881229536418089668356537453700001494290087365746174576014318505098152491990583167588308263213489177563559243426567971446712627853444648077097849601178127419002283526175406530962154679750557156694817292845014510703772300849874110816981710061503820006507981538663120344346755014312967479596794370100978439243806513475861569461090302036976584371334811385173350065744926470630013398356139195193311708347622070900861949260971553025993833362939149813576280594348497341790995650907220902086471792286293058890978502543227592103880477623797821127510240496678515430155932045044718637504148942105884952318483702023054757538145020658312891293068064002889477263744981563711842472793507951523205807980875549601818472389493671881631932474370829631558275350945444925559022979657459744230057477949949155224928792023935597471911630774556550311260368905535269833513783901380187912281630820629228368078929490056513068299028930513008988173415090152575837877340019705979674781775369724772508895536534787764516111479506866325564204590061366505310417587404943479397925317361931460760165308358215095203135006215675500926733617439677103099071086426737870903252331133329275047456963055126211830694215331627676854966569579487574290263562704708217203745247635724625913050488957068616552881582558983017680661489848242606538893646927023247594228151043554349941601728296129090711167382772265671079135513762319080740313297640200331643207694476338363502989734067224019945889046839351711053026885314391627853637027187763585664208191132113006031262850819714813530668574155206203368250724095081619432704402600344998611829374243732318294691647285519604918408552655531985732801679915625726959536556060054639086870043435869577368978526115037627820908877718608264480364968895141960181773228174611094901916375524071934306696675973002054578895194319509532935428120976763350594156510909069048538618013774050963065462531623244773629764913707309261275305358998446373624365480540441450496781800432075257492350596308495485624734571070475956077845823166592899791465274178582589317544132201176650968133646222607051107153678079615862549723538507168244311164121438963122154373340900853128053656811847665222721895030939538146901695369239047605705176353707180158436346726094425481872107783599236061448573788656175273179842852708639010629193556793573879095018408474623717619326721789657062875993113509570861785120680311962140330022311446892431500651247144034307262302617032235935021265607445814792509472005066193922264715908937033517205629864604283209141790908528626655101656053918970099377091482935125176514144979542382359881543604281138985769993624960572870329377840372944038301657371141756254574183869032078357228832103694278397506080990034243388940005151650797756208005476817832186907037655385831240940300617454484426903158061000463615621597253911792001053097885282443614518575775464885440357917785863048579818347579491930575315566498464543874654273186538484890174288731265043997603655102377136183625805689090338765225817035844717799617349287184734418645253035095845645440236497341139670833164417522105660351627613875184739524877540246318172453151338678460397599986449916277448363751727735879351375870731542096210994583098596368475164843147144741299459556074263129718083812825317936664258356236174219339566878825732885876159221752687110852853991236553263888191229641714409241794867772954991446204477860230483988614834885895093641545194647052046008020275520555200515839735522134488273672055485746963994546318773282700676033376058421925083943873184062347715199007581949283465945572046594462936564506120859884622849193123712483138256493610579327835680907865725777263606809943624645558043163203034910294365384375090465820956235830596010835896218292609588438977571847473558962276475425313666957744111252532527594722837657858393566673635799428194945030326919531854960281045842822702670528506128453305035762394523785537842684577067024533468737064529416355382206551614339179533992847534503702539931765703195509110843428740647740431398088854108321737884435689252049627129344271986715378139329601381358359005333553120286626522347650581655499229401032066916120717642735294038920099294520503726579050381291089481802970500837026615600205285375958887793765069845923835560430052316691366589098097390369690971072283990395011011750197143763177345547643100234117205149138875328480239277477005171320561889187359444619870778948000054837030273615574710149403447503891171138813667662097061375582797095920548481676870055984681173148893679433251321800213651187260246477344510286952333298069420070339481729219958956295101548447150099689984287113966748742237116804530299379956720993682287606918494287820310636546867508924285073999449875354429193354647503646475943449744685547530504322773021314248496832326584628173015219291544340786326121263198451384639098096890018798385895127323484327427803390904869907571744221350014806519243713866807258009612874129709922222110880467528112947078260799845226061328352802125759938553723407256847577897130198801810798053040364010048153314977242504837623586349077573330009647745518219361476274799821392254285363538298166388182163747092466659304777777582321084369943604002165790594732601260455618648158581892663696957061752288322953953917700851453270146449064650550309707394050765150547945476762635324459034390412426007003815449906434617170178015913198681530493140968483581948154403717600309141211158451144864507822298813468799554215554392903559769545538944104591679297962701983465863634145746478530310692287411335052856152032877629042151575384415538067335457505366905892222654836733249652688214647014346414571847102255365108236689897135342876480881665530631636116405655860791183639581730466133522684485926926616537969850751206845190828605656034987321645371843904128746191564564005274574949884648670958780589577997401663154498965731479483822196049348580067679369599064580695691973357735835052600368872835819066734856553530277138585733799234147543376808335230885439995620728137335961430672966660024604218371364166687198129439888213807497887006487062624896791194694646661206809352766549728683452703209055302746090961805014407961403447322610340593029669997292973441890833069748262618635348786412426369596181119137208209320628166680910975796471977204582518597658187929516226160362335357439732971052448419082047661977081919566570995707992332355995993371574045975559041693159696166356490044588013051410466496455537123625075208478391758632952802995565067282557795187545465821142779804043089935064591284669515797972272331034662873818289826416177353614920491407926063384064025728928980991790794344254943932706367853320045078020565253916841201589162826576141800117230120552567896961784532126452865719546912192718437540811116072983906277524123380672701172435896760960036167794898961157462183988341692286244974307889185004633182226802964901911913912806338826347167648461730319432477943167513318878525919929242287294635818680311151586836918502414031284161932210502521691510616357041471018091533098419385341738432480529500462496228736772136129980931977008417595528166181744971007894549176137372541084021055259308416037522766507223873560951593727350946032143478187482821010788597751876776216021784713967993952192582096256552940674451161243002044023484568686536784525703865830354660499301102530128579686329782028584590947199107331033287985515227510877363744468265422630700271075845457793663615940892861087113236717197772352748216912213653262996809400085513720670100329778702571691098739365861772658111919886358786515880198105364322329053529007410229324240324820352979329961280208600574815561570081608652360597755491627547243892015312266768765492731908592785253077280228084797363798876068249346945791871704700955268468498145111167489162465306324329162549991289853813426097332661255412659856609440749014048897838751097095450384537190471905656828866609297819880984574461024023788112276998638036711888431893613175886786740759487039342964067927057846877115983122198342732735910934343948739244421640090640708888202495612770049356449985141378008571115943929937490007576263433178892438476676719522280387984828455568272197278604519240101520295550219480049202783364828130870226586621864452319503007155972594233930169489181634906289386128563096799385804390800941404717930112772464505005471307550929916497005075380479916052328020514712922979425060906842745124623553475403601052966915220629616402959511223170336547441171334021898994248516469530289800093227315164326296972432501747847085475031146575748172091201411067460896056022707175257014902972294597657309847554113151763103577044312171838453032959734717583010050697457663891347610975002506100197672809693320502076834227565553967431687427781413910594498497495921832298597707826527655431927393310397164763362316821552131723565123942443239930552043592096724494141455049658782783350939514990689175055441633970897677008879222676259825567125849136320617789084115484949756361567193621908875564538013284078459566013525653415085682157506885140328817553761015255886675871068047082745946049709190411231257740118218160214249658560348388754024142983309574266355028777053835213739721407576706898205187506577579201452720077306137988940695261327799861020907599185118107600750496570491840976021871128489155736696028560482038442721629221929255696263396390195432793647523694739273162831490674601423029070429637138344347743457997732883363439601244444134284695886788793390360724436241034940018343385201036396917591653265246112522714848909489835494448226958116805241456851118243919747866184709582869088630279461985822257798632091087473058913112866132993715814377447697187557064331472400377409538588163645461332875385183314121749113434226433727621158187243173016307071050318980269602775396766693290542239896243189448771169367936643893688811785374299404085977723750307191928010881948555696866235184500901589767711838356022214566086144465846964347208257169343939109494655218435811083186988651705498644922337853272207880151875227101867090882154716349909116644947938312810196342181490692115620028735926642396050298661943682387992233695678381639800901794562962493050778619434297743542974406144437095218635145207694661225075850436072501243451090257924159026604339110198273038607186715923092324816515107878547032976601834387078485002046441215892337821947399939390347992053299510011253050775559252128186043732183967654647011508131333466643394398313150133197169031882702345609812433453280390189208422463969933188076133237279533172172236594365582160482431801361376458012897491902830810778427480108491368557901997680799743644205822880876071279194640313682817925384214875022012964987747447137471269579729946571681687189491268881534472809921178963889997267481296162274514761661073593773282662367194585732426646936113014370897603505343765400197948809193697576659120265395624710012555272179528754797658051482127455116729739400836361973142765682034889760315206456732181856234132078175535163903361726342259545242345551112957941925686278034841402520340335336495467826704771732756728973708481994132474825643575944121172273946185021284377720992664067088044279907659489503116600073350693201799072817359253467006294010271483694190692301390743383762504974635652388529212827157397349979652560854874854182063303329388255416499805233658801404496623054490464167035901196248825025891968019393955482554357621960677579976758052825468915198182099582546599799447395774541486910550904845689263533975656686276242522525978830572308870375373630235394260782062415767177055632460784618907158413728440410439979648849871778210987511068245950266565626354271079874949681682546884062257225513301585201316989852555843032885266115285262991781802629816948053384193933419826302417058711118520348782673128311122096609265968380078864875041185935421635334872363436709902109193752759386301745630735738965993312299056951202549052000374996521813283163850417255476909257201875710254487079400975253626026620634238215857716493532174432962417385488932073151693177885450013505143052324426599960502858005992995526054547816702313080760137610905955252443316599007798931495055355104226069033884938637319662621190064603818078380053746092192364508431549251038141154381641452470282972144710802558599503212245466535782469980467937383517853901923436822124876315228041786252576328037185014400945539124936646244759406775863060255771468117122023067361508859463139933723484322673421315947255055077840253750037005573464572634328959454741385594869597171085296502127065215753260378705309695503710900822250989907967165545763802323958083648335476535120738700390576115135078120944027043355804750601904367629288734137720689454046855106034134706127500510821831512854645707780796214144713392465813878782621605966758123575935271503977422932939391928607505168335822132534931454985633558715132302897116462647837422849394994380150757838416288742098247947790602833623081033813411200366151838697623951101603353142025842460636426153472445610697584293607631872955040318847760463287875349130473026835633509093734763480425582565195582146998360909307759602987754976122233352179554191429479299782785916938838206144009770387957271657624599139293119744175395786150033078982048487841172663418152021949422856990230234495161825641486156433961175023711891390812487073414902104070205166763029461524817599763058744134730712450887838204175767697365002004921837549344184484208701468567084362460406603891402260123643418568311957362757834791873083278066961598508817976809776240906344257466641178782501736776430838187915317144789285747734072120748017316312919858346999187394396217701506323626998087659920022580613216353923313532726307153633444306440545080853704428881804478341569785549143507108885775038308637493636831749550256375772331029422530533414684095289579593938698615990258769320020304538100307242241150898636666589673971951980904249718594796764452479204429930619558560215322467497032108102690426906965742666136553225043803413879036182663865658382276933090691822470120032160702097888933041612218604464546151483304929340295534579543312875055697712392135647253796427659630688387673133294807233778391520861190236166781578248160021371309285604253406744735128741234230388514154174600058468472467913672808483591330706280325467098686007144308547213027190676566058579863284456114591906403341499709395660050706837818291088787434224647269397472913035455359849900605131720126188468924724231522034672749405359645116575498637824219073726700844321775603307150397072809324335257589884160594587088656108872125544417332881019698679124031642605444486133578779956434029574020876687771633416270249868724016851858466310063625253109749337155894636630081504950962616661653234474478010794333635874207053226023310367334414392121378754661442577421163899927409968055316441124191967275187770398023492917788300546200842016072221531549924652697321449173621593640852993814473638215136919892136596716651701580095632781143525192253607342304834622566339573653001087376651548125438622313935329267959956583514384986926891722075058612060911073642774064810938363655773567427029124722596749624620213454592137781790915122531253470375181043947644687495821631531512829461271544773871854901893050040186355387727496099748033384289802569190237302927606596116194222613421464122412940769954250645427782717566127566786307065076164193366059746018803249724979925346715374805332496885831564654952370116134903752258189993236926509093184040386371648973633110196138170550638471289493851917227614699220603535331939642241369294702598401404568928951835152999622348780593361690339870594009302870614860420928422448913760533214909280204881766707017877386275920868718141120056831191211616911925128240853330719596954571850252772178466789871824781093354940567426240709380654756109223793245824651988275553914843861557903486353673735477932076047396938161919535143889773893894132721838613937428819967510696972424375002688694685460281757542377805480184755622495038333145323993802081708904459563216445792058217511133863802535469451376525439981892707762528823471092135301649977956618193301755743190782812185569072754189914178601555940856434113722119744257823187031490251613315171485576895239248625635868629294879994315140103398196465068219507463894729808274849056319522753297090010453358503812074049132944042804211596288680028449913026036515970326338719982132585006751035031433024888428565564780169099163807174626066836957987491424872145277435293261438684866276067060204490463524464866464144345449383620143964880999812972510292923305167975871093711951571174369801329032745827149121192004267324269421463525169259122386301040755491641619750908354323051742437955090695405342674180072269609058479395974104343021466357449981346647709823770167196014609236716886488267582972138705275976523501650337105567152195345652217574575213947315978799679397026277095962676466810298513956337218814361239569189337920681070663706762732102236477450006220857069436403740408020961474265472356656289057391768624761936369361275328800635113698431251409884495677696262661732225285541541966331696384256705782870016462645396594419044943378345790730034222544475510421894216440546490377825574748877530573827954096101888633071421235078868917088722655723034432356046627284517864708933069846746776205496298169435557762971288564142523238668797336818727954715517527403392608909215075472206586587561660837522571184395823630583786331732112454034060153912377638275270391266911675874100492371907215683843363701265352559304892742734050184151108240632858497961901985984449848136908246501137321261893491431832215523799264261238868249653262472834933794696249489809924501883539782731144172598678275876993018540382821486718279181040116925845542273894611802179186078935365344962161351576126145220902460147169502461456238578692186265676423337268466416331622184119243844555453692877675448479504955748354647318742302523791393941244748504580408056436712456684078920574735913915967662865827243376180394185089181921581797999667655242772482420229531913428022354658361350713821589298422403042200612601739705709880883502119046450104702495086206467724824850864281192016806614326859376130028176870339887064558712605926511166988183615666573834159761949300218682295009639139557458734472616930154204321761522905952007479988636428279216186933576315160947050966885309479861644273350931199808223110033971862120639531825358118873693423148559502494910935437989935093718509129375997669287169362607185328166740704158721868628127134079188666173684345584963788521692518553275367237298900440715514424665293126109640769763617677833324567674831330260869213197919539246524017174348629619261145988369243489907001599031258235692324922922354657196476753154346607236069517920480173976241411571827012151498912085227388093468182676151843566980580604079577805936468781220000762929161891239210567900307828702529855861893224394636820721187233753057084377436181840149413590658049663648924348472603303578077748430230159460508807731812647816405079338986679273429903962986612881973032253063516157975004444782550202933000858693890540600017880836680918444889968557028334582905592929529746971130784316158121620332397401979302141067906493557778922498232739184079567435984380182486935355236156138205177481140970990157444618835850596044100993541517333510966147961839289606406553161778229403766249986761086443397766489475416310584537281968074031600813463184802831360823012585168874204317048160675171533123918249594489502488482530499410013706702525730436813713632672175956561900325014025862740953714771356862423922560033583607852771526477257734387303306000528694990808504263483309302960351407655968100132486942509141346294381673738759206160870506322949377015442049481069640262334259683559330029558759585812451766477906233090451210302001357775952036108331359857017889139779650223698058342931007847745623665247418840850959462218127092528182458253742349306510654068943247461836955664759042700903380997604502543483014000698612646399095697647424743106256062031454751578129844732202641824783327442898310435564422499219474123991560168432055591663759143818968581702755154655841611315074848214931558630545813639697812072624291910694739050099165442572694361626725908583710305313765674759730860106171138598230542292216459722769836645097755571199419861628356414042257186764445121125226026277098955489017319857968236247829317167726343685486519406093868828777143155013966365856321751744165965175030824516025556562454724290071034283927682874022178062972528334810773005180123167618821758482781007951017416351258577222521974708601256634260729051191684288367804014967907660948895936498148789126736388472708883922539580164635853628750379022136514095148451507203541901149257093484067467515973377714053578617344943409040811878486532766625561509667171936023027287096965789984594566298564474077479295374643997652448659124336830023544336473274376371061205764200109818320565847786744342699896160714537091427719409656799437780397472133312910625783413053923942764075073616402964702537987268699223008497151023543324212507961999470491765657098335287950729145739523832116343418735484749913787213389802698346785825747296234299858533777264739195798787556095052967231649879221138789201080966373875618458475680586144472525645977496775735406458727568673569292421404436976834640550035082795231338517776278396794101220801162947714939348908196573974837797779002869849333347697259904162034442819368538548547457252748896346861734512208082429187727071167015236736598920291431821416243430979171807726540709006927037703975840453973386871513097560317671230317414476024323726084031889616542165410510135270804970122856060808012164322175994194511068424036974305941840366703353290820335405511640597847042927804256554486052904425749728227825346107277559067587513521896827965780976066612415038149948214659371233815663111643172847884569408362211471628281430383493570016411768285056265786483326746668630375894526959838945305465633583388498012335798476720348474232273973087085798288495019340164082039398589840425751105948553662772130888168045771818893703202993429281063245100239743129474345447691792312305936114936264471932048881287917194482414379773298667999845362937865432976340614330587759298896139845567604371970524114236505121784538347967984249731654075026920073814500933371796128791991899122812840204258737808800525829850934870822731518085232583408403066641579963192414093950819607661042852669765399847295330570995084706304769042339639058555000247126444305127767140124372347143245634495269935945126271394012303616892439296324202737665195991694820572521030907103419072580553437805302250894943545970222094936140087970704789778454990885083335688772853554787442800428251997426148851486951914989831003559263980202840926782540510160038958419979458951263936340623128991887174226909631960277348631303940266880647450839722864882891299617932040418817970524600680854519936936323281765846214587351901809935583047138726124907619337365091658685718106387796577346863824358598773700612435302049095805396326663338959911180191538246536028927717473548268624434760742496825685885229265761502734759008060871198762946947599618822069466138303872803025992945192187655965295338938620071120734361176054365733185640645203562649664568345246262342849062541744103348070846601935154996456497735373339497694054303058508033106282903748535319672451027277830003619233640848121665591827711269790113921120045551337161207652931473355231318147500779541451172340962805384061150813493493907785365993230521339320859898199774599455478363763216665747193019070764649382919516547105130227493954272498464277024924103183813318984091358706065015426239343710774282924356880803649695600113752640090792343665923282610057432633932151270036735141663068088493345532868618549815013600036169398871946702820807668816996939794178893279743592733568851172413550874919934861167857017206746156147025709270867711642210706722608809351781138786265145454251532324563865805005440132183809370963908362188369383941244217878487258076265501229861186804386460203639618832187609029368101976280844010957813600362052063352839586889651851473764029327351910939559801206240653605023502890532015434372780106372697414858105181891005749296239130563812051210275865260203034610528920619522702559773334119139920006364537746280097250915590294331709214714455797033196092435715775377441651360276123319231179655687666152793088088665751593799380480817414780099490924029890725350849023031174216004102113827809590672422950214465386173670996924299537245544246368523255142780675920262605598511073363383930149788443462505783999157072127975081141719890515198657434469967611397064549430174998951592042731743653691156367294901839050178411029561302260624939134231320941707771880260278023766861792986133576235173137445931448499405199119220780673061775357929743547610769632946338805202001233918134508207444145912869401758693305983529679182404607915575281022908806867396438859000372596372869941599020839482956445108103773872655760052687989914855098036184832552810463623920466049257100085552357082019134396044606702475025023173610951337565261527304711604955101225437019299317385160152501704508656599616647559244995954148922770786914194540823776665955227243498457242549153661441236911413568827926633589893236741155165951052703215386281191665166201145006898428708081194231701800821604616355943255926420849873777053618281186594733321419338015614543521428923558103355235593621603790453689124480204557300561392437708627777807972525361051312232121133776762771426881493560754217615099201821049424308289077536480393557231252006376387671110901847826859316610904008374912500375119765741488315738423881541693141130968583488234475673943769450849774785154560114777124455930603212180961415374105870578486846730353732079535707281788396616429579451089731917708347406069600879730946340485523796344036939929050810178333392244495694341508622797510614857035259157132296168583218303490393073594130277046985736061500710031923266135391025560177417678453814013202864350347672446371437090475270280421997325366456673436659886121090797450269963375565998735585217305712966230113703074392969709589884089794375720106063829356152708545542099868651820613651025354042532582287924305103398616966314245400504654663142892690776606658909354423015247892910699193461989479242384543643068885088654449794197501774142865807146403274093627585809813997933088879165401629951604657423335489150783243024340355373331395557775169123460539075248924787632895796748157295255652460948778871827796046586912188974153364058678206737977783965526160062381800402235424608625047489332273523152392765810473246996749264046090157232819323851482973478897873385809384741044446298669169713971599166398473349775713941752682407392265456772089233870887359580202243093048951974555542569103957249729869224719683497130843995434587324485460816364692323459411258252163030837379655193825457805526662213923779605359306383458316785279936091457621475512890659152571670354436041603076017413808784145348342676362582119183426583719053729869739324237716655689532937072742513911188967370218975866980766719278359557258394384818609512737506325505813218493430372790118433098354953426077425683268296263465192980158403748515068602425379053272457275697376954063630776536795799402306827131170158495593893240345827310580262102058121331009657035552529943379202422660221474307689803672416689980949448728831423046571957404204374264045645000263383134010932115479125427127590738796583735983921595925990393800286109855794772165915421556173453603746751274629390601739392700706269497986021184334172753530991456117509048010233763403792133851548683401742908447243148594967506674787058574542415061998317717359798953320621565275277596404025433068585714897335330511695338423727722203757047218130339272948443009795836362081103917359963186613240680894141333389812554794437442881072765510452771441398960393021642700561948635660427001951611539125742051496150566921731000664988273229731486110489163713326915071679424461021869994013719304169184669678411800408590517389547933250275512831939775525895713496094000085227777708430029372666536104922126854610175221170483922718131357148648896058178583969912206151861509636090269817072555939198372127540457543203387342976065488137435082813337194715436455124276281592236934677461264393655253607139979256751815936882976533424180464486630104039538729233367431593215268495700097547122486865121579321229252386734663065180872725509109827371988903573758489413712250495356023298830012873320303591178512047872041606264566687943585059444784034145755193218484103969966658314176436749118704338238288256264869025821084189200978812220878536774819655128287645851962485445004751615454297642332490481780455709900374802543820944080540942705197060689771170377469557633784400499679251015249491168332064894338653624778113071248701131564866837399042458781263513298254599869494774244740898256719740237051753207955097037916566119219939505205883536239223691806699885755014896046783810492189852909836074107536796538718878301681104608100747467979498166608909971779381455836048509933084136371412410660081294066273627788079330829352040549840607997955304676812280015088711346680514132806563268664002388322237127331567094343304804549337313246520408946226864149077171516471068037325780879831112306839791721395848017477948086610262031752254652348031049798736806522364131528536646759021044604258033953118485571371440073859508663957599834431150431541885890804475282101578397868545149597384473625464058386960346040195731806572423861728185138680800298289221231674774444376798746147625004468537559203359353102563272267169311580971634092762206514712134091183773572881497748973556589666361447166049747897195405784985261106474473467321054843399752596462682050672311105673333702412058941339717464599136509309199491586471575797442359478928773462276523860195926249751552986354728481601588357958643559781844928252897103358027165960172597460149124686608195322923702588059288477879975954274774659602856068748140064661037016740403442967473174318254502341512681343867763945577021919664420374641753226156563436344466220118278186860008217477808204502220586830378010155935029535808595595178343431427067454551092610263075504616722972488844483993341379122973783807881763610820201276408314228333304670696623255257888352922384531511095050251761054059518688236364703480001875457006350788392153203697292778023236415221940097051092942910551451239213866049044781714901341011067483682742201148566541163564458410561365802229788394396587320524918623975828355168527873357281868927437360199306083998829925057920350709493002751014552827962321554995695961765774195921645288105452277299325118244326306761290872517607852031990077887459093537843484671148380617434467044800841964657648340784687870998232146929855516134074925816885238446716035842482465411749126074474780614764520298623763859652577550055238805288082490172340061352820811876062899854929991854836783733556194073834958987037180078270043109636139052059251939199997501582428198468202893970529762125488400306243803958986411251152001731439677083744143321189681371252527893325816501783885347177081599546954548529946819751505739199360043023893877046564719191425479117994499957970153527665728929420789996396827628124050067896629265732547294033039092270787406646129762250622682716979015541477429988583218065817744172976925533794193276025053631684913103639654492962047189459401848682475421442086846294454555336084512951055283861654979484782756575321545158017556326548938812138084254075623599035815344874794386455716715227940976026715968872699816308612543105618974737036501690158315815370719071765286889294604618394118726748030609162627343555646348751712068739491264257149711129849923208702035271102970752540474449681270489800194318404798136403420361245744544135887625761691265229787733425511186110531942294144653431034567399705073813208237085133954624766554501756866823782503963148755419026764411424213636305337462068042458793288501747686081280521951797417305205151474085612049333865064631883205540315363930326145705171509673691274023951461803559592261350894555206317244029412606720941392914665348832018939402176976226412734030270129623668027620358836604809443438815805076686228380710411586523965403497247915112987844996908555682189947308947066704818106355178045951645325991108211168479685375498172953172990546974011716495800254734977346133828830337875354800589854666136420421331075773885535258137081895494179855674898606877712073552875433971259134895471505105217760617149717991299106710339363462223705201067525037307617759624129350912152196995580148600418211296729437855605269856585557715154376032989497988795770017936606771040548987647350876408852699583434756407705770157480971865701590874921142261612923645878365664087644559582654456246514033460266059327713453233004792432953422860269047523752366968551639614509228336856851753700196901574127072053732923407540452085641148443933996355162366377328841822868344845472674380098874773413432211101123595926343455998982500230297597270818435531456319507602411169925445052345830061611219351431138554245098305338199240526105823917247184716242136026812554282671334452939626041974810292838036275451659933931306062658550325973586189622056176596709452493652221234659739419801444492337348714008834294230906696218420540835606325670724468035615981349822888000128885518176134309910406477706402840073859709931242779055665778041783435343192328248424621857247781469358057483693752992535690273703416205488492663445160502796950025772385380915524177483356017820407135126455685090964750233833228583421253595959019558460339077584872831736659803654789371147047066686766840035791239619076443529290247097238478965630945022831617070221762006642159411537006959215055411634058918418048338117689862786517837556883891788891899329737678660503633949038120553555196045826890406318721364362370555982862465214153594923721087227679839621969257551273588480479991574703240652472218530826830829310046118969579367975744790464055995791271924335880285438793881920081066224574480379994130905421626291548321958383190309357257786138378705398638625179890470714534853146100524425020454853845484567054769764366930107562337193242507601507344318827301939316214779445899928946744209045932040304781139077458311803344882431332280591225653072484385096401450455166900863490301110409714069844652969558100083662540577188572011190866566346243509387976438683880120027426857770982063058326642864024399593171881934427648980490380190666269092952150415644827642716436295923897779767193878969590516873900155979207044511075085247945719993701567329973861708290095890662357517318421138990585823810416155227008357162815752737385569679726866493973711429092362997032641869945402237773577528377358979086279646387399177863885870530004939566573532151275048584785882427209031444491235195210604839186672019527812824933004949289759750541004655008438849964020362583600046527374730865543079962660561907073076996960256016787458960910846492141581282947673186993064947482726557732856870746570878034260075586468112942083065901419375516964034073579109946969504348551716718111384633987201205872033437391194984521748698011672944162607501594084109759290303813762933030891473951200109313971285245959594875459249149436750476948538066519752607382669266002967684710443710303267312920860464739147271591978741696576396930745493302088589865194984932501527368497078864069171388362948354166804690211808837521496410584823618909796174487150730517728273838110131980270633892881911251136929307916465427642511096461626692062393367946750146760540770081693949169527076012975797405824426848828037525227775101394936380374939193288294191131770622528663305936837268212805721505660066575897714560473165168741609922492697789121952132251655403027645521067202787201341084720790020322900456558578721846980259786314193768701857004536085370123956797165384533247980271121601892512000690245694190572772179376798707421935150751259617215613139903078690579533974786117067327111434847487950302870069222858400406462287156322703474339276909526012368696474983270822470934509523412630175489111481072225234693847606727462308734051350666224164028630320490749693988462883915557683997266941860713515241874769124903610428133505785328710024967090207104612531157991602130614880819477030189568741140342665123830076487203648010952279798145515122256771429081348809238108096648929649197468875260066757304451889619250562886451012510604757354420048333909348631913457089563330936039431932971532304430240862004348315169385036331926126164688745036386581747329656120778772855080439770957648437608102715866336254656496032804330400993522527508960880615250985607967839968227101783798679353556743027240635186942555539157696805655657945495826280995589932033094499389199034579651218905578803221415655036437694094082493045632428926718380049426190559201704785072870201432274375786456694869041599134945431238079158906902454909365937498853482609834761056321895549952366415247323555005236122334684193043263695826866502969584693067711061080718041698520074974569927979335150848835281040764565374636039263900363458500421870060326464275888826974810667425697226408882996858087698481784160786397545711835499315162542114944361452272995744076514289558939112624195714369527750009536405181538569307378109745037650924350507431472629475969467314845088365012581300906469910930566476894620342469598160976541334631371415259967404679070870884498296025098762978538373312468650850749914052486903118181209903443093399846640890213463450301133296874677316204781796365291705256684642969923315183210329331678577289889119465207112943246083370569747089270495405224416319573295457771901440135130723131647121694682364287761816871864793164806513728459171488392090348058906618011825402314081424178565512043911127627425641651621531759757000668502259234196859368249775058180623429566996888393781043058091045873873553639005831933249903333397606687675002920296078332980819808080458096034863171270163650896036253570632696578868099035260893519056668188730185224532943448698383656194710940809845059086528651979995362994116880225161640398237021015549804916342618277605220334122750664054526933442357837061571740401442277482194812640534340368370479936460497815082337974257079424963870454815223699281102451398725554899510991802868692892953931860174400043502057861024450966809642352853074257718633754701854567703922484385111356710384956151793487795978497249357073888551083791391480252171804729676716723335004467702109941460722634571333489093440733469430997414060848438885391735297611471647016856730730025540395230375924006889170013754775025455673438804895602189652364698273556441762923660505279119272141409184791149724346623123712917410720964126245072289324331168053247955913230158581291070396798939795143852044140136291257577322977958714411009007967457523815527672628626743371305765784960463478164492243963399438471123414164046773387113576484151476118759710374040942361608117093973353726628240059219283025882547276413606218587275264290957743689742157508807819884202371378833688306836430710803623093449172060928996232574693050174068256244697935411853573262432208022558694951668537139837598878535574664304671088910503570052654128609213462730715495133489711906752127250338513504993131208066507206101157025451085871739175281031104854244314826548482304426872684693515989130896997222666839528638928755345138635423137470356307434434730290084996699412546914691167168778189260351575461188933529586399110125341128105575902628533369693884443868448175991990411637437671092830203920858888080167710876642729809358758724391954111767995283253476110322688408319504332096005011463495114842788475982481575055193985600058372392889000554470909541506042852392094361522561636114076367918572636485100134813934838493358805980851339617645675542198772239801716930428775459225757321531514892449727509859420302041122833301626058726458664026818178515253635855374116536258283476793793411550728631975483451882086666758538329211855415678403345677320743975826143625162083614398366351302796531474392573261144366906807119448835117537971416179181648899357926722055431613291799228556317724362901832011446207529411219778135960718617349567089917084441170330627730184978382890415096986058631984328537847899333110536689402439216349180343140700925041002464054285510932294858521253103083439352886913436056579856429546192540442226183029877336690155104482708437472066564801466198108015595639751990458605712294338786408475506040768882241646577107656796287328295451857387557600273081477035214693494455274232716772356711749581840874792440681367880974025031575526900496117322046067622806719998276292149787566685597927874369530272633132121235003877393220121196319038611677789224406929116282945479769675013850750836133327208652677733542531347793818534746085219072094111073418096156472841832313138245248892029511689677147195503243257428932554675926873600332352476264766921762689742093523526595466230176622477870913447426036188040265707323706590709696577479021618035263308183714305153428247646521911569501996962288667729719917401341618477432836695887420723510070220651154274830223395021241428990358045505199488962597705839322260791149624028676210344802324856147353236060607652559396836834306596405582817172260048469314162692959192400389224272012621058544984643389827390090173313912236040505901856261174910656487147598111329464092922076934089794923048611365322292880320797872018065222314357296034660783323833163692610380199156173057060406334745504727651554342352184762525285057359985729440993748413153853576921890198458705843739263463327158071227887341242374371145338397609683945176504935594598879355602944902503630071031807984005513933009200006510222039768501131309324906495608258570029835165418817086923335765427391904456534417298087064908628217935409767836983464897033813602302994910031828521672972964166508542107751106959890568467097051000682599164002981664316176149997303434159283113614343710023654468483641533539227423110533096902762729086116479732669437393391857435707180459362915156051135353343689052363173292754255967233434617607965015979141219320481020146040144750714099760480369924523168458492048796618709277811239610875120809804802230420336837910922394344217095685052709432395548092631548832287672843373144773926418674353582383771623986450091533626831995890979333524454216971720750506484182445522718512253059709555651040993396856192867830556399028223025110239663794359394491119101955136846747350747095049328236218300336614658114471903657465872538137868860877074530995677111559302779210365645393856047299167194725633540355487193766120895068193219811466796261748656921217529630968848369107368483571690335091751718368397302624611590142862883880809154101742394348005227641381102897971451750405716905649875350123233572552831419817864721288623428267068469651316840316381526837592337721055404118534506419790795844266340099507916830140605827280561338596873241438817394771528713323466457343625034524807219828686394135706549243940775952815900752716063609202051545506052021227864651655724396616883858529726593288270699066975474780073425181772822966326982787669663754744218879225350930650306959175223894110629359903665263842962371292255584974336706512702034135956635011002646129839615229138164821753419907188992305485984861148400362004730924630885842894762391266660339943909817290867897127140701823217719747416059031337965427143349670741091375651547340094990600857526096248365026895653100572704554799944890680502707202103122716299584159520517281097114256678872299501275446972152197079876417565251760742417437161037444554773807707850854516954160570276081444018298322779413031484172377361895280681181727368382638498437887727528383344102124352484877068965176051291951353130538483368084023863412196068689752072526311257500235820124348685601040118824287671252206545045422530448328222104021696587797711146237069295228350596496871469666541759930767453790016183604515502641658361007487840306280761174444152234593570214133931762439070604733483982987668173735818491926943744898621366972567037882934611785676955852137064059178075055872471262802973045619399478274989213282145546380172338781147509160053947775632114844699302564325416552009175780306601480858215555895372907742217905678701703135009652933063831089914915919248849270120858760156308909248453792494952246485830557585444448297982990513851731001490229715452580267438932857735161477195832185066309193203734533146377571985205919971100285137098493498532210138334439547498794583222323639115259195275405579734504017374513076912221703522292623647081426141565896140904936404811431076098583896102246582817420670037848943402158168409427068210709030701353478612063271606676940904260407596835862379430135869536579633096245391120100886699477917125886811609998665844141377481562292298433789879563236785626826266766272658464196420224964985117397394994335100135260942178856881346156519437741714742557157927648329879615005093873061158802816453545983499385340630717270249072007434727748559257038896318043562296082163172990805653588578814395681892834343696642590972810422473576207236502635524805507536512470158663136251274673508671065464040471736776893675229632972368714829060110048046171040933815349572808329045418339331639507671710098293536467356496015508410530142339255900001911184185858085870799687173793898299025329568698571878987645482276295030026911913456909616317700367322979545742925804136977814760523393482863173387762510174312274318869334683811250975388103021593770506086932945291451659689614349605585513149078828411332773502367422794295688586263208243463470765926861448772610746086366783338433151956051214664612678054827453085176573181443399236830736368679113471610605333654813335940132784548077549132178959617033937497951481096333296616358376262027251511218394383530666331686299771301203348749864447485623039646610639801971273896394736217932750718125499476330854492226721197467708971883665843982741867781708352826125647850481949300062137395512179022907317807889793334057466301848792270765351115632185955175051021889127427802608820209978841119739898133421997291292424533752258149657856569940943128145877740488635987167199996818822759417086644998364994286153334266416667752041331714980593606441532231495141456885348095854707808353266954535449465201926437568246725528052801374111363627188348304683078814302236831530043371009036442883196023364549711160154280416597544599640655650130977311513271419071641542529911114383171165030581633593007551637129745623147667587969229681402050375872287146639023463829688182104571004789011597173833492357649930089569534043100376504486755615697797956217811211858335100264940869248589878969352379676219663195048808977561426416168718778933758466088340269697762804675451215519782031616021176011938138497121155392689086842526260037459804155199360127836572582116243804906043810089727334810425958706250554273397118196365552792408654611734529690499591364048122303487404018731890756583276486108179990263897872486370174159733694365784038312154803596850410632015948482581434995840362199114415642646310439588696237498005204019320883924619597393523924992465605799195487737485506422171394805101386921148557711561194609966479046442888710935672200855707957353181948916567999916169284145066013798349936608834559565825447101817829896968787784553989594135920812465733017179848537348751245390056578608052322244127990454581885250845263771493807505957028004513780276039882839586293096209949454053910790835060920083449355674934546893149798886557195240118289460323503424123132785814969187677936468055099347425515013109620282550403052930660026398004418895730583620901496670491766689155438113689457361460323434439519627544106804093683407496828704909455025483788518415955970771294040679355362413969898694238912611720226505794398624800604236296345690714046349749116865931044961978917447565118162841411810861499257013576459681443281191283908226719385460153814630260715702158307045234168092872657146750100050022835155137200113981734490349424088861196932119357139918627434248933987323821035164105170845903328422743919531339097737407387783965497493231029065239662844147861068598335270810344209457613512619122538573063631338274438713097651034152733172776596089115250568143645235230494884837240927343438677270949134309760160473296019777622716214668707247127652898175092735497835871611976615923403700221239126116601426310528593272617891724354391695310339146644869233289061074096658463716991183775892559472678260684358382654617413646922083544861851886735812417818778130540241894847076322749992232786069650927950274257293998371705465198723528363252293972499917112725388401111053517485121472560773090775318636267428880704484280817645477858302299935065682548356697377732764795858602201278252047138215820983449371251234435874498599130874175130776374275372323160249269765474578158301995379417440991233070845327481557200211751118011385154189003759914977925632216949296702625393642876438763861922245989818853587421440587276421327494024578511105150979898890248954829487766045065672640879340722275490515885538426685884410935603223293338513550579505900529300678908847654748820724450164162594259631492607367673911023781295127039483671090059398522366371112126719086444131368810784785365229987877656767525336670348103405005467541384919911319901886811443772480124021532796409282892281728675401438839086984752048510157088250721435766313782814261315597069991256062456892814545386220506518793415367768719933369373600471595676069766620915961585822957141009116095048582689686598621830512628734554076143251491320546925886893380651413596110671415647672282606638061338987383805438396467313042352734701673047091867255963686193303726498444656086858656031239504708563718705495905995897639120160605696094877581332279197109836889071199985448337733527956171506744774266036693148160097431744078645900897407876916026142040453482761251879953598505722077217539949559396602378205223503637733031457403495113548223364965901975569723202653390312478746162718216843636116383428772065629483998414036644301536196789950125219009170247558582617035775793914630800556394133133487461724034632239360437877244446353712495127750655472850652230087326268444603433110017709828917983698358487508404994668819291097355027102606092230105146910786081966371945725183285104162148796901544168472583096100784216690096823737027590692701575853227591879138087096227890607607551599356344213911442485970053739696849183363967381470231619227822427759071551855797248463657774733737055116069225755498102711943548636524652557871845362987038797561211952054050866049567909597047716334903880396310223716396398406562561178551006024478298979316132877292716033516082515753668555443501339291686269344725270252323522528432102368110674644332839689273983223772024286681220872880655140490699575924697609771751852101585209710298096925416643006386428689768246111170054113957017006643786772617125767466149546287573699934747402368245662901913689662208132361734401794858680928727397532917331823517384818808298024296125691898444825736428379280932384075634813820609828687318368078697101671475725465466655187251962005146834512261826323685682801780308352179189639119889605067554593765418438385166765928661184157990300892686525740408417299860274968303622467607575431241486148844597361981883465295612799697375603235223594471066441652655029032428255918406042179539188306255189528231124535170648729277669077660451591870623499671492671525545121876582780017664167131480229300088193532592283856556117207544439041629209651447373453101454410180698428089801366415188467520752302849308586444009110656992395633440554327161835717807996166612473864956900620109088602532901859468254369776656256023339337917090465949863864291879391992056724526634409391968888436989194670772510901058955122652400648343182089082224439979211416221777788083234241486139695902881809148878323301944691232285714582146757775403643111253526801162328454079344305011481853122695210943924824218136954706319883070770261058137646071564015072279873609136031087264893576980170877075984601958813051649895877620718054662275152841761170637281430951612607694373258841991906352046499004743249083463994442326327906353954371015594507908768211561245418665865150918798518836599889712551735151784103556179154284791346440853131717810300993549181719438774966169458346396641428721497026622291602790377937573457439451636555605644440741763561523814409406250212101831171703986838881758540621711403149457225973341880017812784202213250841542460811240458885327822360783877958568139287806044849218522243947425663649743697133508639707388261928975754728293815923002824565371263630795651779129736320436431062133533506247282068250697311620301216732821898595536995097422963172797948488577226683666179424349279842532414652115395519219208961193256354179488003369138767070990800674929123098951361006904018812383950057936175054763960392900142126993143580297094125168537912902949801585231349667663865852040831194442184645713998071125553452987011963188493305450793286215993561725139641510193572130080087042138673749883072508213045026336203201081943294726539015173157379992757039357766201027662385066132557026403191360640270394113423257003828104550737639262402581495355115272346866891599122395672473929837704260778254538839600521423081272615924510032506949595066434625272339151371540972309995783896625983960190378516162033613599132934462753346450075011251102336103297313114455681575444810580188347053634119380060087618963904421721307196542595185973757065751771966343068554535132861674972499889969368090151592337144590538384793217130133945617086476104910246825771439546208657985085308090662571828003091672121850131055370448189398792380451573828726765402813320379619499577608536111921658634672715923439106779761564303340750603033489280203926259636783340245997541430760917571912412621521342061239448400773707434160291605649799402397482704818838159392992588732188892740936023004687228020219272076844817345171317259197077805608048264152263252132414915187195651584189664987452504125454428498755014217434549437049284122436410667230121631762023969580135228001363106684896730975762665534916761756460125815990170007171688139036995771991252043259550717522430138062669608628110505271120169382238941909092327304232576185730899179081171151314419034275260807494941633580103816995556851076414121567965874804295801944187449474844151974555064236439308428832547217027439480400986772506575401754403480055821573859336131028729947027812696889924243437600795492823645218500452259928444701287207033334481255663106199047691214808045527698656824383935732680414369218362793498796673487890046478835828271371573156777412037195035985155049038305827636511144542967744067474947633740279637967435627066585441602981513615970367645574759741867396625375615119860241795895759752869983946349645182864041325763067136390800349727962432286633902364901293571431177914137980854434364747522788127605672948325985441926739342966840340447564889219382304973083334972421997989479821882001103518838087234066168525516886583279542896813492515114834579697164915817142953933805901091576240704910279176126259940523280761816751564169777539444041087548476012345390430288305431173279504904352565225892111581083863874850854850126717839316834223262022593564092838010167736640137726194531494722388928657879303825748469986229436541183549724091722819223751354372981133329929919695889688595572182008082844670923598808302032539543724744106259300243676117218008422248635741192069299158889199712842838294906212424006629175076302074038647870909288322567322223105814517448220702826363002414627500028962746382863253606159171596136040093902467140077948132317518338287177469594317149670704136586725114903586015625057181334337788799756427128915562205181696679367410653251851969535247842758905808464604939157984554337107609853045425504744947262933311034985315458244766837109571891366020714499007180476362234553844688713180399024302188362917349186892495251717522118390759474397486196730314107766464730463213156095497042195268622794688268185787024281140672993867154995576498667533150874469889821037311985114250577652383466150535694776373075675725855689122166668981171561278794270199938346160798405812929751855759621426020176611178842199427299265929399967330093230960004660810170679308260551071417355280944267885574638352157286076488423190123872648727774494380739379229970024563991680245111661333538114805324832212398279949807164223929920855128211064573847973036636219761650679798360905945199600522877069679901988760693068419755484481152820350994122446312202649257376856518708856807150751563136306650866392309201144320614436224761699165144598859356891505350086280810931432646917093909181793693865106365108172587496404378409761282186861159312888633486789228870633779321945215047704968123134519457422895653661487152321756577576371881399131312870907299765093892943865800063357790429866122490730349802396904286314000630379757301957308289303777331990203510696208047656669112435213038042884030408195895698375331049606180086966679466501500937759048630089063907810106800658766428149933292049116939236560674156151463856915489187878230912764088233907258585214666026029369475947910888038627165580683287239586822949528307626276303558559355164038827729015828115346998144794673026579258470808171574955347600836047595511838820983041420000250464454752883270666898266073309060810846999983774912377436318278065838402212180166853269673463848472975350564479670869546461619701954464813206112536370219888289564748097652991325119916570578304201371877250029986156157800444224129609606338782422387805884219476142141152126789711815447011291438134892413688418364452213465301621671894649750759976780698799538544573771891867629160876132402063036521899630673349350763523727709655261080159153784945749747930268808956622927072022226875120209754911721208476308629236676016428984396641969179414332919048446874985195030870205413904538975041386416214229593184882431516897836445163143042402344499691116840531225809750437715451373623765850589213775709968308090016697501214866362373219011563066625814625208687288562895501362886988215212268238616030526767348988064734000182989396705716692622094412094854329078026795595799724728780857000531722432857604213081795077265538548956651162362607217856165670837820112469601732075364381080035859132122170671450842473389770313513017236769167048826115364241648115679642127021660169577667785952654296639192498257519089104143280517692647107648454662535922281335572347773029969097540379728126343528343798838362648742704310977037549913820294551349836787074967476505672744968816195564585770136583654942974022173986030119200973400430076120619390587848276353901153439166565421709323996107805909565562367307709670090096672190315546599017145486633235207360251678353142445422309269349868234153511553606974902834536885820828449075110867889266443971064867619450327321029487918476387708812833386556391559059370300000540042582880854226383523872482813801248709735180967189623924575169198894841198193107584782976226315867353141030996819605567335601523547931074611408324220162537895129129803441378660482184300883874509304222693771664093516765701712771262731614550640587621249102656474145763212177130001303883067613853335924597089599787329340649781198358054650526117476139549190288884521527966015634782228843275804118124527025158839864260352689980728712113919635837672449014900248854750680330277304380986565304240296355033661481923829321755688129445924084373892605698903097865959787261846241528044236070970556012040931052630731666836138748336841396454427885458735668380135000940857391070137975316337309154635495114576822090986048767808819271026340636473900820389593671740490833256609717617486240590347167953020641490021861141337539639392092961016552688316456016042362862777181981246427251681776901582586479317934264426760580415038532286659904043803973268329370328654043030662072171045044256509776167224700501329836710098543962205572612801288189749741399277274338921482252561371258378352526261660938439962092069004164878486778340501552608769576893556667957726650174029750695278688823104363969663586248831189763843759550017771813038684992559792927317484831140092415064147856705360821686514232693308762789168093453443708935199295726280522760743794443833787053940137371041031193046261330017305222386419629854681062195202417694485504713809370251695164567401622539029449374678055534951445643583935740544996458661692202694757864424296577163426146619618652075713560768950863707404065600977815394878623542690199687722328706345430196419995277722972319515651186421568034141023692536926658842849393267264667545668136571589703479954857747794964229448020287446611775058574818174924583249043350521219147749724800932856290926332626065411860423453584490933282579416414410799307093091842849697100648772415346662246168124035188400292882887437276496936349724065817566531770465071967952774645277670659451949824098584137272635699016960752655978641314880638100102708006249386018492872487963280670544044626514402243989626202550994112088888349073799134012436401236285375699009340165285448476348479176187029394587096652378861709598287071093222353170525021743533400906193418600358673994111000364962747821643386203406700704813599100200059408560814504958478625193570859461604680509527498052267396397941587050645218820600759575563854308457054148000117834229380555576519499131955659763745889272835239498817320416489142258551266094930153049188315789221454168504299073131382681871268982295410688643649294881304874305643170487860343598007546902314163066995439597801697225360164159491365706290881749676434848643479403196182540878044126667640209359961939822949473548080035907469108529858114398419365585944559409180196480802031861492062145752374134373144339551598913549620626882656092754537542019882701967350566619344626179179522923589293361938260085949542360561569191113813821461344188449733027159094234804464095928990613082215758267479026135809008308946268435274247754338790133278149684880185349381745692238272160075390167530875934331671662934178015024525268638948715331637197973375474579179802120444557929980762115605230781639244099066621661791768882170159589841724627982832616024662126062568107777066131946123325500156835636185448561734632356080878458987673298567322747030948614459712258687936915241709909458480065012147699454865239643357245469188441689239116250762045536981264336539194770787642221126924115923127140516514075464999808119400878620018470595284263516384005089226542847841075616496031535077214601733108326914643854452068115188204485622104441056910819695498315453544804239901248083831952091522280320808162547009123663223679194014935668450913190868998600529643690127885883174037311574530116008039091011727516768921434770300038263916329191864434173736286737831012791981568105084536980360693397640576139255101027929378405128874922166410279552111738424993959598910240663360000144842583884848726079604040872233804545256900818282110914509118767983394978971343707327532092686034225982320722948504785733419076295603348463680185325742213689105910829589120865179357973613604105041078170490169804513113686320853569380457490534912557444377382882550804017323926639218329353078236698107799436032240814061728072853242913423149163179660992764716755456610120747540608139634166064346261382389057538484590966691645828818309648466921331363065655773018588398408759422940524803804362293515602018883471989210582169188952769038862133697832005884739039038364879247914132517885402343794104897060148841202354894432335831521129969284863552271252167892231226768792023385078795125777573502767480800096816886176711103462530310687356291638306394770514040315545534612577242670436537896572976673414934590377705184129204109639325904601680023279383729514948578200589811148856823913762159291031989902765015231270283601270333472853911598892960030230706454082917878044604422484378948294253978545266858582060863419961057999398897577090229615556215804352661690334104150216177467138196323046498466790866772889685341805080428230195714407792370832272321653695924792709736327804306874131889334714051641170476572252966019990077354510248879412235128034481745367893489724027765125237111978119299991043279505956584776985681722050304737756391818542008839696502632070526905120793949241017140946350777122406661505926390524927289507219079181132112862937461137453350414809840103995257518978566105194872382283922454925607845223434329605900827939426552069172683930195085110988781174030289054375111867895865051782142941587080516540969516715371007819805826917104107402074814396325677248134110971695184600957459284162403077240151814051554105525619689938554893025803278375236905142903775195040832048118522585822864165736162166326333190039713847323839021514062601474349773947545396580135973538571621129559486202552873012029159367568834263148603335690153176647509964458909157722813060365568015606509538862193998741209195530083839271325467149035298447085252622092323509541445249536600699257072538892219882646215719496760309966408366802796874078089760642788531686859284548624302435218211059651313509325814601005430297499581400749632113229288761141188530780417428664938683727430218057387670840510444174086862607931435631806464127658781517215391712131620976331712462957914835932855275784664015364230579707453254903732314537118149089670131941058233147251029181499800218500744062469380810933001585428006882469633645835448692075283031733642628331263628538307879796941888971327793837047557384048685745810466225294338055816628796298783604914614784184343867293311966567907502920678044099877641728388708940928857485212584094779218655111053315619305839786895053033864946259538041817031399937158021562183811810818944094252355211133308737724477340995771753003046569024140950276817333710449741469314948537023526508440946522382750738677259816845666380168064489684471410524870526894164492060778507105774680923570210467253051766817010004965676309893899902339040339725848811579725377984608754382528973971154569946155359909941665222725443100406147276375456024801752069277645231422883507172741822319152817275596057903192728552990031683911357838407485615232899039874713546215019427342686097669381296103586169928704770178339968925926755957961257498063871706197737271627878200105090919072169596516463759870916420525425022481168842604189428344282222149972472890122929697251555541041011434552682590401099085972836930537710702524393981227284970067455842235968442582864991955097230443985380133331270724006901662258223328185515592290189523878106117058442170763377414844240249811156734853117090616625883171634703702331218628735977853735745189438234186076420826754091717419572853419656461918365508366888133427384230550909300468281887585513358502722775355994081154085731747254130092416812385871624059343066644086036323868329768912526522502136482386915766863310139636132687744211463223286203085739395768369746716018949219080408090482496849697966673559572670907862492862462397368779488039449677328445851993305713403001310478499323299963494960494383492287800285284883405355773456862795710476229580852555838218006221794942814264229413072778026376274421472733362802541452776934291972660655879942293999217450140559082479329398034458776702311640082742855486840043370863376352420528749322594752833267859022973678445479847487609697024997794237211696808497212444947900507039740959965978829235137326753332633916178743794678452951155011446482553593854134228468074367133522885101008774201465178977724226347098593691457418655505078185563689155649586924236599035861890852606437584783432334597148820416367135256622692591534164022465382661598529396069956655593029460983630662099454839404945920646318638870571859124293920426461706441428077150758826989527388698657024952377599213520523917411439179282939831937029203910957877511785686587788190055941495494076233888724636404578596063792448158158032908089573592591944762024515144233469617133259350683291764900676920017970559799045354084862837790570579403127583617411732118152645336850391449858631461698040965370747866027468707219498606452257459629333188667984023953201669988020220523131267877796242979159599927103841178028623873313377454204514076481620864766016851891217171138157633460064821818199821835425785162507635503657698448616757658257128000822299233569140065321901459973354844870101709501388124373653660872970604537168488379996064815286892722930173192700412152399791167778579207658312010418571052476200489900673400782715138565589572091429895331560355613310315363548620240190578557917504029618119419934777836361371556406637209264105094782280574322721906002513757935194598987164393422922384345881678158959316659662305089631681682032715210470095698876476155628284159879583033955638670650273771332338088433106564670999893637236483029158743637093200583163186141181099020560284695786338489497794989645659357154393309985041790118638898272231918552176241282169464493043757301590624978772435342521048610869935656687515028237009348167557051843794312662007553157328485834810213071012791243454207771299141202304369246870984635398174860282496783119674810287894735769450504239791735785438094603703014867107407030717427940813460245041807889264728627109458829414263196149087293123378222849026847465238196374113878385765998752427706376605695732531606897346002525083914584210123417897492479479863445796253396832204751420083368687754612219500284189455798903409552345341784200176750167160569757077440873816403833438387189322272189812335378403149837562060823593545173763987379395189673140629972806673448515744857428209315741347899956837261362325196724182144181707309896954783521242981358202546168880806407319876641338036763596677624042314718734795359580742206408397506936766115304074799392453295285032310017586099332815666615781430849369307801535273112823483738794335923020863356880986733445721461979318022348765363435556431189956640500692315829091087667803834432102563468903244921763762931132475336155903274383739821770881404352552179469756387702187913253855981891189208688846402149331705003546804517411809275614056634178146194974389137580743522155903157041843058305652713989675411309244590972010802694454933283150766101673973498519956229666645944525342908515106349531782273770639828479672477044757343611794308075468283944659695214483446297986682576913768486118763014790066834908793290096604312842672684235582611006249243263330107124311217577951683431416725745834563243622716056045284412757145880151204556393545477799064364591195663658849705421084407947820758371334051659362053905811580437286905338258088953475995951898766889545041812889303422498244374134613289369763265443335286065916560509455822985035860512000648766372601749796334167475470570062066926043100846159571845694909873326130333973238144527832062589041564088382286467118142195628649597711147878483837000700918226544007781531132422477289779691313360234899245913645630737610990517129617254121428071748704931444063020695163959240275162436332294075838315961472401613870374637465808757995427588800052897900859830105925246191562443569571067623602220350347650531305788875261794593499286416006501375220551983784320011024881095217880949444341544153141791322582870175020738628138505303473543780349575438235955666105387297191156995231748215856772722733309016246326775165741490820184259639072969409090519072506978006243142436076231733007725113277477435861006091622759844474308763031563604808923152597732214960340991209271204525623745735970277686902736927137767724258911606119515210470789597228033224703357161085337789075820392836519564717755264301849153184923505277392070044407373858747416446050349569073973963879839059582808337646863805431751612533646145366055575540546501612066310065425957468944706803408534035970353085329691631983510373777816587035942495262850009607225346428753652469766853698419525601208890681897113956368283270275642097109822496815940722303529028148838047417001028111901273206737012851397385719306820695097852325801419394446536908328563009333941799551061567766264123721238842274764887791878527004082765535040508897022301769419689539386817633929886788416717431643862765564074032090584163310510076512524559247850405374777157849832431921460967792072868980687622330099502111566610059471897091177493143274820490310761394985442027373781322567446653284387539790565682033555362870203725297966950862801432346126984624770383194128209192069359647537308902826008533353864272953153182112595441789455014051084571190846102668100068379946208834773819668344207703653571728673844785280747927130297792627087648089213260690794382633743656860396732397154767293521226256403597525037433051260836789312367226573746772616751732771732261995949954881058471095997144778386686540716982809635394579389993618078045425796696196583215595045513102546965473579017897742963055904984930395116101044513609173409942590242042962597916201051518792957483681834901122155055849537829557194940113802574656857163110766424628836140798900312300220371479906501218077444258178867079310416455666085211604426555652753064077168360009779910355692025598118302272889977457402367377248239347495388516268808444253648488167662065781279876092814790936575454951330361369789698122210829732860578236968481731835941741207987725772394181432577208124541051203258061043434748845424467851449530350017691931392551766333626472862910868941585360766508580759483278459888050045166787720455774585599681620098803273877123339869989817409422186513235722791847180525792536088219327275010379806176590684903607740542820411394263230543373068848895419810915839978195861848013355646048204019112546294821374287468034490102541825481209656549977112805972750819083730574954404610477994153753961035727686149007628968073710208102627517675965283479448546275202361745050973974663901175757140932275408950264184423689073360976189010287746147413149020667940314352596794332599107895512776219605206033735595465921392891943545541619278885346542838995794957789191456123389736572587894952213218671497127715286462882234097440495762320450417435562596725572390723402772299005471330785807786187597368251682033873912294105266798469072177340880218934461148962987507776309826192314941139503360672107831430781709292334207443615561807615218762789674115325637335729606616910769934759719638361655132801724720633477945610338157579382461601318417448429164631270223633488697625607648005349949640437857817876961975636917159232230423888735385951030790445406291237952606481342886359356820347175820533185918750858559512757272711675957143546905163649115002414810944073704690391695561681903442481225682657821660073026556028941255350065046367867825989174807783662042797426247730791324403359899893899549565137207556777140388783481728914023238200458455053240788768261042841770410939837306450638883628694240293586358972392344494522303257998242133999704903916620209118031296525004809464667827691153268030684640490447031198493862830427747037480769671904780916933443558130597945022483990361934025092078578676053781129802941868078967865739485393379719487678052820063757109541046599147495211600358453018190562372852499803313665855210628315724515896239118173858861517529818762138528881951255869150548065206844358277978541731210887649120609892970991227950352170323457006795296353041560874563320406470175545664767729957815948607935741549265261239377655756150414591625060961694085982928918074175287787226972182612978413557606965321254533860669444994568689966984708803839916290278702038153890496793626396927971421681859603218016007753652759378186614113275847699439367514154179973540003570497799511375247531690084530733157192266471856426082894161644821291296292131722718231324138995503870137855036746333050286260487390744106746442563141396798828603240164766042546666319933321164938081279693211810211038356749458811736659184669848068171635334795487051190180342770349642567744145989288363295913393743737245221032301640207874723625706393024740885911391257026078863205525785375611523928004767311641209597090138088109494544933514506592751464394389612851992833659810571285354637712798409473025694227063381613458623290137148761285440702021865130160922507752071071039394655376387435012988538039262471552517951891657079165788813676762515670102958000946832490872753011318788253715728488282764210534176104190015677701890550970569155824172357583376288781700932458263898283993921736382080682174441152457103568653582634005413558249953692893676453236894599551995869146973996828815883222949612852865499528554701534932541611622411892280580274674954539354070188996604051240448015460353536540643134909100378764040109846237105850825257724926701049495225909968579045786561322882442100888119845336714797103586661382090767282014544691542402737008286391953047265698238277571337389899169883175913469920324796125810427626116533724780421715352322787598439999578243721049678913209182494753449307095304261163377727568359500489190781515257348449764867379323568955651671082828060146705175611238152078913478242890769494702303377584960985644718161869668755261696523069137049265845644949995683718942027043453209505222251344056566718128190395872599122153626988872497131780859518247800327476838609610234651679779281686582908808984013944915233728114320625028397988327023365874002091535592444601638467371361527533563201009428821913729766371842722175991014672578020887598842748128940715962741095249467224288847349835669194588454468728170906731712618164800887415881687232627808454196378871655978212930200497317205689867262412716830682152267495600708902368155931562423755477485657731214440596036354433555261001372109343370789692756294523628731746227040356308778421657998708860756826683294788682232497091949732885959939320930677571965455410829679601569266442045802310383291811864350088752315868364714251316284103956874123231629594086301341444973712220668944142808975349104797487344913750878516373421510339599791948043785166054356241024511437909012342416414586053181860685997511037314482581143527435536403867988724151968598730791815264207334828266123919966457214064294161520845368306914008283739618551986332032135010197792195058817640638210493984691853731055076310945874963769410504489882271107215302880140748442138648955481831874535285969446900221543520245628249206142712833318385502788028941166825718469032705481077583766099171616677335287566577174086018053960388224185968485712948083101302750634413916234333061170744916012151677510586090389256547365169925211263092808374130775957911449572432279113398355508405927787482334324818748540581305093122084310577288401628194843108006533209828494817252532134455431356199249087112647568561125939251644703767605593509285155858183389187260479657218459334726591330005903251267557746010188152577850792311219568665537928644580545209127429926923492826501184268976095246909257300828381978753624074671733645382330688597423542045893407820977140164670119251064619004274712659392936761777539898941865618943906839666227870289707644144387999254559621600810740909703645997165906685122361547424877221151496917320461967116621797328007966809687942032326000807058997565370717971790125419301072935877039999764981273773037952333976153612353908284926941560721579748238439765983434707646188372452943811455256684041929030360559473771697725946571019814540476594865383806463628466752215705721918962104873367063500086668549164718580433872743363594664447016124138447761590047579912182725719797572854194697521230760061918085624930868378965419514392194669617332417519266714561203894310127133594904810778913259104814320038178319667177716096446802435002088550246073302049292683840796271318641457392456369739504278561899618973166877970224647652845196556595437217840227859838814635526299885607502954268288236420503501413440508427829852760205964132092526257248148085985365933234986337733655484299468407994219576664344032297264498032314762949611290901550030889379768225530489340474123689393869245888439759393525444573578276473979381387273611167171518350936735776121287012962050820295216773315824327842634396374022515628072922460376099298832032454589599841609863677461846636471084917228647068544852161589963099255443327363257535224634015237620573256860520760531106839908699361347384129144133994745400112468065304380000063349730191571461046015316795451741974899534096046636629408209783301950076652337408094360526582532002750813759929882655297309973354747316997337560497019213261579144435253209984138110924629364797846999531005653343731408721498840640589978767430790504927746377154240928688848695581287301901986280763610358172642476940883823049814601495787001286489324894366357330854128486686975074542868944115219459100315282507143284930179070019515290427724742184874110135916756651653044219224380565247455146233728560446883795761356872699880557736369890569921194538219974874973389072875406416785460311661585443152074475044242965808756421259388959442699542027767927850498122473715960282686156069827295321092618756143022791559687689501511725613519085034179845196573838671412772639667501863077572676358979294769029464206779387440903791630060728879541634162177536496189952178324311709999180358707273312155078666599127147931352820168075732622906858225042397691245493949867723224094980712204688703900169568790007406429194345185087174864902669650862772736051789939787569928149152174174182153856518236872061828856170758224845039960342916695940625506584839577886341460683045689089726764097514148745460318807937970173293255325408950526201910445671084644064523974325622440004954155640001663987107564178536471464200429757604317397602672672308061435406243954990731122124724436609262903276768742663772377328310282924999096680063473029458088325658229993899585187812843510529210591789415743494528663472617642570128636279605019624804295908668572881737368247343466334723847360362539358439008825558179513979862570481203074339684747748897412171155197728685792773595456564715294009018403580860426128516775859591833998725598425068969588893732495331761698695867756895887481516242555213953125167155139030125320096686322606252067508241329585603680657615959800072622776941569904657794986390564485156650686412913618629309757817024294307856753360035637683716956894273069484348957389236239040406791262686181124693121215700882235572531905142768683518964499603473877170462075035822490276204055000663051290839818157118619802770440325034412510743503884913390681979399437573355356645862148987383648742032317096997198585440771389817327323881793712264320601604637539462602319419594299188210248154023630574445169590743431155296201311901868022858400165102328767958008124244695044196221616340434113469108348518411622465829387720040183081549896138740412256918660416798639196908765793707133342120854519963178334529905175818648981811578204261456938086991103750377636546255136862924008435169088742069205609457412358162460286593453003947949509965220558850497158778154206418335635547733699658763014329842402524778293868456232442246541717236789256010474972597706731679958775012744376403438924276212046112626405413011463940409594711826439488419102084904009155047662583775594794525835718263680405844574525546108616009562631722885832207046034985621404397119666348218431882979217796404364749352872308186690328610579662511196003590164262647518782589313666096946928002831671227748503453453998489417702047368691724355436723843826697628236920124092164687009959458754592271439373716528369532106807291739622468266712585172131955523978566101099568712912346866973784914159988203687768997862242747152628475929273250789113037512799488082575155879102608870934474115190348635695628838024143346142411583834951652692928831945038975833723155313444073957194855783641656292164316616496490697250707703620224632527581388568088004818925644941958978973819391260534215874943406338904565996465112157636405500725101039014844097236924249354593595614092668050056209607467199074439876436779440872948600400802759720612618676560179892799526215342304061055666616551125595356831727286176892563653402474309623063706308946086854773741917163145057996772596208683103554594236132790417856639668561362095048758225408704003386812125056736130495642455527014111589814471942830126934702176709592310310592815649540498371417480598638633507660592876344670195589333087932646905074603977294601667602378286149665270076186216602553481869243038833364461389848752262237001655087393068812465974330509955346480926103000212897103538897351058626132171301021376859826961449914966326144575004769103732702405905154465960480384444177851214475441205773845892354299547564270844756535062027700632106966289242399206483387022559791517925429679948478788184522149524622320277964157969171261672721383980695026314720303476074568904503662131564896673674523274443921081721188854467962382365080386325765901557352853567516644148948337987757091397707694943852375642937979991231342575605133146258016818755780335443922833482384762842043398596739478390169858881399086695919547897297919606928393060123647562973440017370610125944189808067067700382948825603722177951864057981527463296164332072580029601565243071145861234176646761434365674561856278431824636336777085912204994933960176376153324579877338812395445552034858621291822674298907997297591013786927048656277814342334666000892829252188246830111216430034206355890523437799013564129761476985614667878574392429145675864508447653275862051716841879646194138459842536647846890868511202762177016556670919005943804220980208746613300073015971138671671236786489954757093696826733055415273137968674048530658309010216516813808427920186062023678229756417911813489726240033818197987629292517723717367193023645753270335906844186372470911353437958200938469815832344790828858629212338248409610735862939178000046986862281252286641696879514008072093735905040907700667796118136072683638684655291639129290633671785123483774034021218957284548694073540679946874145979138199787454862152853342545217389143932489207361773756992191578765875461122245362708331791810458570198231988288057145838219319601141500042266275250572723092032141142835911603353265559936861644917463438467645481506126694160342355806227712758511013659763339736045640550429796320120781330788829957252360260898860899506256119605662654072528340566504990184628347958107165975370316632872030511208468019615030806187709726365421927774970735718841650393229031436502247630816876406133237968949188740479516771000771545442104297403510076222600742322239422063361253426873232419484541581149894891899459009953104774436303299591554284830245190854152780014127638783350970607818751171714344533247624881416663064966621842745890905005577999765007880032689515168639167922017222944151117945141098078725175754914228693464640118352847748038661334314442403519309658200778858537012272469578492062612157588716552973469811917895242364188001770570318409818766671662121529447688375480945393215102208587837778414373510437226963134727337356342048056439158060012409829056772736862820228945888908777312295202232853870641971007562930206237074197775038045488054623316202141242130292236867880513371370581361938757006969926142882905769597500350727137406032153027544494524836782853063297898034893456953024088778263191575154004885972459645574439226385057729309172987573270908287104603080492872322995874163385973724098881962034042593930214155158302278776660805003529354381696141812033274334529904546169730194277630845986094352271024975180917913970836122343132330074717174031210336926145917738120099364610591678715236779349952288280871471844322639937106410202585312971148617385542906115712812276542978066884437135148082070238020515744560663230808893411920448833748048273440804535187535600197273879462832538880344818575001961236459743482135421908602639117969924191175191375301376385530827724841915386761125818742134685924114358095079728484045218843455704147365151943581421248144996815523416512019904104809322504330112452944560036435590113095703111103091201602042024436111868477812325374558718054281655684455442151883843396210560425017420031767265653950978118240101344386930665115138541619796105202402173686528278757681643939459215968309371733058708245145066878749864474638069849802779543954429802835250876680657666666197019204094868069207686369113761949783737390229827400359827146657094789189227279118192170647789786793529353417474240719318992283541840762222517151815747083556647338468005868188592405147575222715420113327043121973701128813516152796353470071248800252841113322308810518380857735329141261653455451883229139704047990319297664623638372412445564851443360014895092401389402978878764307199709816721321871775185829625241607255528080028700093347980212696822310997913517636768154585673208980889697802619085248216823603879355442427780453982877905747937822492660073450471525324594565180474744255656650193116230867744989020599249886762578851056747921026283825936037095069407563347517628662981575874133740801572437140479960515319621755736149457835405787743194247801309153277475900061676281727096372703625842853438375708979606691797369564825329544359447382797997729892003944715676790097998784096922228441265266844440897367061380585162649117505027462729786425052779943822031901144390948165422740840426279802479029026155008334638252225691078087491636514861503067596528785344685831742817829587114935655840453833465235249785943532582042595828757730347452732950531498641616944909369550211487878267753187440727145814164009919319225788883923528106798155552624243604970308037881187202327941687730803373737371428204660504314784390584717954463390962016524884417166710615640229794448126185195123230917422230840322088288730281230128818976475971550052260433510387387572571603222380381012726908681162741281939734955890128141085927524649964400880640549718495863488479684958668651505635732882502562909284780151756917858051272376603081654166128087520271988080227723370900006240584289274156774143102270507705856077390339182085656121518163285188321782284632965717002101939118944259538131761696257201887637836870673074917334624710420244977025741008354182893977118400082498670352502137370624869296083882894931284560974583627512172930179733352883615970242732570085248665372666406606460252295125849438299191641383720616687146870459342513651318584288242969966804911182955447467878819823283503111291076728033560131213130853314399962368729816379123910899400243815400128458450934123660869048080365791300465554785775696443104767140997944495209084209088285734294186148851063673333192887772936634493047685056813018341381887858683515652192462737368825267952893367348117469316112874625827420260254979010396834557725193146128114301476015614374661819254563952708006935193873943211338203347251884553688003735251250709297259309000349214549605254810320753913645454351078785679130514818358300389197620311407916739574638292981066000492341837670972457364075310408928351950050065164289665150338855007438342007049023814585642770733925917646476384894255058405674183631379657881078224591007547939405231986369202141441016574777746833636093674475161273562769335998292121206472348563797790662226372993389384685715790855474422258542499221693826077123765346753680233500673800483091652764511741660176418947402895483434490099263823453943296327061084216774807599855710504873481943170167264792378271450796513667516740433013579935412223550981600285605143876958667711107705795949664677503023414367160878074000865326468211776879925602227317970316375751457723278431971754893931356209991898166918555243051121357774641604940300303742545653127871979212341093431098342090266913146113222116941195304634978611523706151713310931043113757023495566079597588336096041885390621161008138065323733194529655405388287123848080329263768495543983892114482956980291269506331908399874207027401117494283564208950155718833046328368108175358002025085028429185128974027458913053922562786969081738329907382469302091423262181251110645006183073688287486295746960527489974424768312271388318647081986304295743777753787063205478225485890832149693245916840880456353327279524870550448914501677231211419167844555582949940892682640584890385870903582727343800953755589030025478796739510808324516656327814019433327792193755012469013092964824446317327010550358071126302331627907549513456040177637381825881623801085224765938182156104107136771963812355784297582576111192330386604866803505867960082663266664267805755088600396879636023876728242339975091362798994985943323598551366709726104661213220619357014468618084663268887692329736360895488304734438801836304148780335957252987954601729804400189736015531667003553459191945464391917126173924274983573472744325113163884398216376732706081569740264928622314566709859020931984170726019402225937754627674944803085349648636368890751108473836374224590085478463464780193489875988778084890546229158800421681163863556129949150369572098455925493803840578381908183007203158033433050688790550605808141578289712700671343952281841441017938676353116452767736023524957260456048396117410931901176451358694125081520444478332196950034411982229754721320128343688648783042142890080881071648755776926163577024127832167488089458694815518960510402784493779666285157655959199273366218531571689147734124384865201392668686003589872167455839685584884406883211331744646438471123971974550269584333025246273388893868767751623062541955336686523575453119739770323374147823370452131217191682430444510407875718272462224079299737588239294924130774815345699643759173279710460675149155529549371885044104325129003973499978632014621181703415176795244872838065566374713618286039768324154099354848816442080863501535156740885519819128950326175852423390945556335978691920464318184471938435613549812960287536627814440846451806438907953274015977653930400964554368660215410848676110983286912175183100116703954446873798254097624672124981442977990552872355695847680140316973288078620814319888253609154141771267939187940653982353032110871461630858168718493289004870735438876175725698589752230192986265924989821987051647070813683613730993786785052215831818035846581140179474082299170501858955707472822420142633190499271542134319764990575630301352957070066263594630668522622326653432780547918081796930506118660422002233682329950792440042083483271170847454075421231912209022529828767932065892511902242253390856967672296640462358345391485883376064975234804351336231701750877297675633778215771511917359385425350307300702221085158178739178377859498851048875622376313089319293311648526511302856350481657409736907233794333758968460023723956335981756552391691581970267150259928550092451157895872273400395441885537231328312725318653765526811921599169463946471251791117299059336939805305404734784955631838265690131401670575284476552115783855752443989306480915928317607164858919435327279800838545221010687649082176033791363627917553270713150106826999445309744523415828863183850386549284799279167154380574406747442451235253918156331004325559441433230299705606571620464671827037332140386104819241747107186847848899310040897224608148784296169090786929944049114876768020692473924500749100115364011335803013230069418553230350565928581310062138249788693430348093564379642374306621107818637298308731941913579778929026877355217123914032643813574119268594267561222479970846422452728118684185733028387277970928551341908344181827277896024840795122631119040152597973892075213373590779454006339729814929727647460745714419950984123201873621134792909435328349459297153809068482372385559145359618142229310514992185098467411326953063827676272548395677668756284399875991671403038709313216262349225357127061982169974773618892924299404734139069426397539732711436946627464638945742914633852430403351933775161473287948864517217412125727689152597843892285239123459201054694392401873902287001700466390173512709001365471345373835329436055452676127373701464507301947353653939733669565283179669325855288971751720480089868730299255864595044991541253123163464167321207686772089603535167832329225286059199364638007207952216047704090977876122316857642225002328503094055319316906825458180124603694723051920881797324735509687347064199045828519598853057711685940870780753698922046896393313447486992467595472806225037732813825003138443823377616535058458402935633659043172354264841570651440035426456209395552198938631445342541704388454146070276271168560914122149081591622383627446702353491707679102353652066888475719741076761771371440599205217759301255479102347393744760992779900550504187073825332991908839902622011271219378840511242200673747577320493733926554560505205109588844412339202870267933887916585784774648180337243769042011507366675565824839745158033785854720970926396845388242871624034506641211330710319217256555525288590359439639835564605796893753202802883599511692493747332175887613785994550296984891819814794474262389085213367992132157456313102788371915846209652762440170675351288447286553268931336675676630496204772853344642294289861492332869834092241855363491859725278903110855712556286560761564109795307128070621178399534671661863928495182131184207615962056271447202420500907157280617539081511311675041980435903342972737309665763307652691208553773159988811656343360480584772413917930092455499045624300210538909724428901315838650398618434338279014717067289127683638153013356795846768496520467684480262867580620928133253948034030823874303640076265742536052516093259263905862641078037487103827818475478397321404088773316350923028738813801252268952765136327693985166444940691709468715562943085359372754809120107792485437205571166583252466228638629299512989475143551570385195060287403919927558932289201133267305715578529310507397290447844811873898612010160944412212610662939970809541535457447987157827438370064302732524929722836079653822103415655347458854565087087097191188906966342470247019619442827857214475751601776130411649887847051030317853703838552175404754357817219144732232195394548068208011738090871460888520142360092137563661209871743749808777014722701314021680167772237170397907921199126876430769851471431790033804661268561817314949083754370862239374118027829586233998102492035123699055000637773027444123920905165010639720277574471777487043411156051370009381119507149552451110431259566899724427668960139178756817015607329668197189406614061235120865900500111839180392785559841390653393139063021326031827459837820409765497009027221506105670160701639628198378446617446518896382645509787421504235479984710701036253922045896119477791798135083839528022850335157514816682894748353609103254834938529457463322009170591895592346797251028362185604009623581894224295057527542689662383308548127945285115969968448293388581979342020294847163161025826911008211711962400990997269626053881150566485601287306864994973020984353315950799732744968698239199640849962019869847578579350832897677097491007096199711286146110473452082792393625424616579603480427020446984089429465805827880903174645232314344986137580896243599999036894334216699007864441447729565298815660714328839517621180890427614274772163077430653655119213501773935478414889758964805541899676632358064789820014694536218609934143000255185835770369211289044084809797841891391373528116111545187450169578660009903557586489883498784542201850826131810102804397172529368205448585112704237014422442184617482201239375692390646159199917634467305803095144544617257530032764992417456786998270173668204168194744115772119174010452650701840816050093513614221746461400804884828251107969294339257017429016170327579209142340980140934393369861088081161575802105297530532930529088046632927760022726232623494356869759242820148702028522624023816880547935186222859030196002963925186203300531436879993284643130213453075177274711373656769489820426639943248552410869950637578187708598959485363867466652621807843966499497065377430092240943347001283613587006147579718745922086540135972857598601784707204143249488495056004986454554963468248186130879249014481431837705664487544942980747692744436250810837216186995184921209179525072175789324918743199732244190397482483234191278829455721876064550247727907513274700515761217645419144335750027480090833292431312185333717666761222789067337170805335435571654941544373640785657148808742279368763549698888640872062164877857640399292915782000472825378334330868654309769250972948861771156187544486511819894924816438920311400149614847478421164341513874933567163682150336475937423419659303936540561400398058989312100603406137758673312964941782973612907092008080539330160917524481035277158878384112218740738074906574402349413677086969711541644530565263857211386910013160970430152181241570922931578084052671440889691021747345083226794406231862744555080216141623103706328085434748517200758577703024304366468017476355510419256613735261559714739116359847780557001787576192018799254074503886925417297282113321647611035989373729278242634806121189254955889186803408676321806104499689461808439740858059448132550614990118998421102710891735642872544103149140194735032270413889722220680423045321861430345441960007493477488096209587176581858028960706192028783397083569692662332395410183327654979045022225614508148902102565808590762055478657950180750732633034026277416096607774834064874638678266105161115872405897426246130597102285437495709241779531665069713678681039215045832377970436866399736139852184183586835973234179606395873177807594694618047057673109291334864103954038959180299184546786131477214805586986547468588588315899137555813257187305102016740681107614988947764194151237724403375811442354279806318673520606185442966124065462881585405548516696798132332206720401361744885059215755296130585344940217955138022321031431920186296279956441918136234653803888783078858272562636410713785198684942778301187354563099920980586306594843356862713447943385066106600752333930824903242499652508065008248270087973944941361154960040868810127231596701329174415579562471606519209493174524742775611313318994769991664923365656663811562322719575963851565453836658798902509214137791021846193484310427677656051853162430228919795824461547083231272904081364018824018322977534666207037644651617062420455500602966237199549415656586809289875491043682860118322305196644557691496748199063142803315152095096591564876456944266219847240576936106580360902118388881577952963326894230653644477988137457226537775839082387550473598650120097637709916617327983179971165429016313815385280259737567031000018899498179018257168814906756946298819108530339604380255410890869490078635991988300117847532697968165336614704315675782329168241422476133988814516422472635572110074660818762836707952856864889341138364331091416367467686766590179774804142412194009633001211591701289963280427005745029610974847467904223817287406018098030558122506550581905087338869091046224586707039476350826453414794806137276428756259647362495267733231832790787677775046140372212040347797740531470122721596512731668007998043186132010434251014700701611159046176784438847194343528222948990741218748891366959298738022172656580392392471122546697996347727877496829422049435146266065408490542614773963836742628855451942766569460407501685375820129702389836773329071067657189284116602527489458563005486306569293484875686718884904290222516389197548280431882200809190724096353991511122403859600889983826743350367250615511664299524964190578919255295915498424660789297908437042615264281217160036233111692013196978819350868820160161781239451336871399756171541411608777733550508416296218566469235162038700903741143039159707218507520205295218041371167815715887147166658161956497232920982559658960668647293126418247327335078376101340714258231104416371036729851256717455622447523735621426085935540000043583211810297979233737966904204918252970350419458904916818630826428937348626909357235802746788963273989055298657538322116845283664821510938813844226992586976828683886495862685245640296874630445110459497048921564865239650473569688581633139920635050940062553721152742734604396797748277973163228771442055952622138104841164071432680851932726968953903062489949057145184235094866526738544345514793065789572219964064971359790614004789067432094317512936823422770218109584510469970137600927948335483777284468160178747425521506317437549598796894430779945009100978243993012619419182711962822902626132991842128363365304682288628909945783276801992877498026483985261535426471811743671113126137254064462714456978485845062797060369211523316081398530713431522617141581628259910578948217461866200918701845559069199480063674854669391194115421289359804627712874834770524674243555776389781468720234516627420592453060065617846476283409410214864761957963884276139414825447582993872160263003672138909567224236579046358808327892828459176865456060478493465593216078008907246507687633308536509621774058210098265268064188764593458617123973982445858678554568925850020122774081078526471669001798550682838194468160166161468816769246444799622550653790452066592502381753207691105772746807469531141530369563333670536751766458445257294743180892756405997418825926090773739610659449292859772271967917532345521008134007516902654093535719464902674187011254878314989851960780583923986291654045618807894810822459192626181001021500232151592601848880990314568976068694200436475702515713908665659945146112555924880078385562936354327918670399735206234417303055478558846119354069317881361252669527013627329414720129182681958705172892199261237976646731599816535891266006477101988351612616011014743828276337961112934560705875379422883593281243371520839762369865908772422990796092847951073164940526952792237979292589388047974452996504840322360891258702069797843581475076370364465044204359572140928589979727384143961675563993857859631054373955991402746603319385731465157438001884517062761430971017521316658475425119691012034968075353983248596120826562350921118389500521140817022223776325145458009120030182728351110851893204581898682242685169148071532584514300293915274320716166728562018064419511283902451786433791165224937801115045402425075993229302593165053101014490939854539534971331242978456862589260042969484407771728890747402716408982865418346267527237770878623994028411203508598995621105118129023848675453826424802737434104380647975031943285047549945062594986174201395653566003945625608664676156085448533209767031376581126916731158625402216504251422552152268879855940006571226043796584100789706271329567711472772704078924264367872610057814024796663328359525354899807850203318271496016354780973462298948541013513692177098634803076730067253788007932650494814771863975337491268897529497908909374304487912920283033440443365128013441811311660235919116354321272397062871852907669033263296590949300609253091737103855271715364539252688607598086408984672301095883074880261288753219421183103218042811999912731304822826361256849786122712234584199596418344012525620511425930189063815403629118465562480932730627583611707684133162168608986355223900957976436604057640962443475321196198170244251457925837481791140902266885407528760204517143652274599106250938098016203970501364270959402782451859127634788022433221655585876879613197430436672851956965590841653999522447999558165504648821633638386160065277118249375611114323176768930423631401476879643533490566747306128889333046907147473646379977155752460889083618169310616830000769297179409089934093694222822937295677264932826971441245265070935642870122266322950558755047742943090434690140331529459059462089324312257875980541591269009499450482227103724321179970825305529949100744695455748777858400995509923012868459239492788508743976273356961648165514784971437395945523020805113801551800910985996627756520115334987138091494629203253858009023440713292152114218069907015842313581918609182297811485550629398318175543830245947522851307412874234318549708715521928813342288879351436144598719425785691309426640220032463143639924296556151841769823350443682987574790174602644280247859725662307063959087907348897541473042400767612117418513049071844525929621839912471120755664002772560806873316326270798419467326709939358693529849377258349858956238503503112191749223282317538082729230385493123245560036161198257237868864503010235349714541639447250719386460431228002396793178868497130085477312077283135371218731646292205244424197292912425747949438764416521050802134029468985024019929194119714952949339887982542901575790093094103801874073519857119553801096778082612969552180531475456442078344016749530912261770574983257785186606496451414420197628521235123768863046985470035849844265520791445362699252988133772208406852417408012731405910823387093725716223818074184426491508194072890537753040806655214390332792290101570545107558510872225229922184939957343302813445650104221996802326340042739807933539093231747015479278977630500011890657669123584980684191278888696325080964851812499715166016951176523449266118780496078318539672109085797095266955771714852123281913099649369016718188420763540783634023673056267330657848296304311854845969578338201911141457882345247788312406121231235360624223083338344423277472803226632761692570913103658783596223131912343073984232734867936193953348249398530265338960658167106878989537169447800821875841523187974324446256953852502536765529676137402237752132984837123730298185239878540521286068339598958405432564808986847825742040799599098032464096044805858952757285878482792784984356259983798193514500282569545045558173155394420729591107701201906614004019315806997197395858311285955235515472581848464198379678261632990660527772450848710257474740321471976070588272662880025222260873010103138457639929122674839447489515285969802650219297239596835437519896896314673485251966007452795128524016438082424869240928456649189426597032498238639227893126553295455979996186100496140301256679081780830015898534142551450707991464590705306186153045473686528422221870179064498115548903388898595171537538862866284610262580991589784547050939519997759610342089624549203092393234158921597415275870344782548476483235913914457203648966478278218696616012444007339441391937485291513974509768568603600055385536071459861122889218181971845437906817747425959988799283603355695026757561721847306479433042586297561401456726065681476887340621820673861639231570815529354963605175344247976179036307351914146379819593372242077170151807671348033214066356457244280900078527123587721262278993278215876892115915741398971829642760363881487337931206956903105785351975205781302346781121289563617347148478050292839972412091320099761376517851210160351616567827773894587191865477675291995513083981765789699963594383694402770978629706284198847027350235661708585815860364344769367450996302244101532266755002900123817265801075467832469124346590973961252788808676535696492920493807428048737104328265918979753066516413909614254495551860318336533642368423132030846368102254689019017313821963799555273128136980987556112491890255672966192920517941818891428057554388791906449677888998030553536088366805838778923222554691747679242214586300163859232983546934435265654265878896466355883329573492035167498104852822536224880666900331990352409683120619718676620597727691595945597859587703993874294297322407144686508847416951261295926585971948951393504080189527244090886977496001792862442232999701659907098852005669912507122838657400678625701853010060681971593487946210176193173567486976179534852729591920964628975882313140330659278351647632546236893153858627442180210571048674972037921292004402524240607470772355672586219364706456981767830556354607145241055582382648171970115052485679181760759416065273041146048174165933875706602257057898640943435416216555491053604069538118920060843919620507731962986411492817908358346692683965097992617459646200011379000139398726686753100231332485464624846208402430489552668368498192829936340018799653655609941518941810712859107044066499904219321717877733906444820078483449753205233240617344097427656153214650399147401010918638401822579482739723064971374836100135306976683928326815848257980767205111847196806309584321415943882115690628849914661740199334293453370194229267747180155851330624587260710394790470586149075760638090365096851387447904940764061830478629850268238008802939958818541747891758718387758260771489468379697842335714066837027097167573057194249602825051103714312872334973532694587579313963222186950555728276966882314870784299931106315353106176657890699570736139036844058533161222863371195448120733186541901714068358393584208627228807521484100543440922932030766550147828815401005589279567356297286510244377919709059345525922014711379669587090123147839274653213939895474982699001104702588579689459759502766825473520234831018343069985118204634947270254405135470216636765481554442269617951139779593501076943341610389357754067672064005469804584766310921461965090093067821014344763221848944655342357910914537471071204209134270070568879315846725118988411383916936866066265745403476355185333248321729848980077060424251554413419502540152871704874312760798505705695473771090398567723299857120492897537982237894261184326033664296285530500706349754781766073259254283517260875109172935710784682114264778551270547783831852280951804176390811816028457783823846850155965621416130670763908057356934523485091201972045612812632783649618757683757602818075357409189765616713110991592094341065808556237453501312466086391325745371114829610586443176916485952134488295501308962529429513136097149934914708937903005801233250881647505111670368032900626520982362498203297076121996142233850545251817864532304005034653928382434941583099002461169594033196795290022883587591168567603868010889295861460515469293182994484871931644178103117618052832530186666345841444024799574224794193604559728087201084483845734602643613476713332837418248413456924498252874061783671801911527297542076174169102181331075213575363058372825149838897243499125157551530161453385782957465412260381904644619118126973274519329537725514511478798195134891454511675505905363048734582194939116227993019548777123130612699445181438275165499969156678926452525559397370257825057680523910723935942681658390062507437164676176485185785492393905706300626149181750062191291857728363867867624055302927327235520732315489894280132561949925839814811233680285141282248877021266682119116651858328527563651481585758003513188350034112074291056220705132131763100456607961970982862332173116396884781145633425956307181773653060748530163242318975922486813282882174164052839253698337696414651720673961579610971969688404317813513746464359954734867865636450579050330954993040460051585889933414719273713321757329199870885738000995893090828200969695328130074216304208599404290957227843889334470420656937657645304305728285207581335445130731398934283097003634735286250632321112390112799732044025562751412447579871149494596325489966899482553548156189068768839452004543220439544394669920212754127140250082615866905633379183258645840625231337275003904667872602118371296620678928099250987630577978821240574706725206237478666046124648105944259508402450241379188378499921344058726369754033940278954719613634124505172165702596162280293325439633267666307565989344619039813215107500043986169860538069587372517836802563446077343296850841928366463629939080409543676689244763602940212531392545472374303942994117616882887644153082964635546126944190017099228779540131706694837966242669952960221601541459776556949769767544004764384154939555607319922453395895849256071355851177475932050508627393135870069905200034808830837149714281196100028767926989207294645684490176462613688193341011711965963973129818117137813076656636168432897706091274927686094434768943856496652630961656060339429874700370106298863325761915465676453395882918303490496105484254982353100693287340577477712048104653370022150141608043312870167443987872533746089550496318908831684684791589023382376219461119343437090643760385075951380123996313294158324417094818448354074798132258747977743695377821342453968430673717681250638609489124677645908017076749985024449811273955302210496014636613391111670933382337762887814572337804146964999296185631534493824855824880023079516445227208913998459255711646650303368804781201937753847411078662508204674443720698928819233013597903349756513954960822887563305294994986869198634343869091689206534312889122959381315316616473320948707221634628659137321848712611804227742744122361523426665795223958554457813192100417415259672512230993431665143499130217075269724836408624849009138694746945810238860459463945190365867989843875400710285921897855610111359917036077177902631745582674624739175838511380128927532100536944586184253054703684728915600440869498158410123588894360049732103344405939472502154207678859210363961685313795534539783699297481477115342605115946404421795454843574114757497277794214540494774859328032500295331369017238836449738223179326523372909221930388881274610210691697322917240516558519209556803676765054784037438011162390368491354288677440406601922707503182022326305669822175471963177767788408239636166875611393775917723984411483413366865008212813084163695483740632219330756823472607016055434442972057277076407957696250834681238309294774289738745193993081425251899467970022306918872970952654344120762712000127727951571618980083291696335990373834875399503159033598129229534051647531244996032830414338414993198312862313405254664535943495790243754819015454830351625338205582983644389302580678872275066324737475286608484943591398229702257986719352876953126784498295023403480097508545830003592045045921647798707904075830399037323658419661352212156765127254065012844722810018781945865093889386976312622579037073091583757214760381535658424116462316156437583610245427756322361635455889400719560920388215028572963704409491213448687013148683074719400989481821631046627521606507368347104435468086773709207216536661196419696158193514630263716392018333795257764453628648739650679710955579608132428828348242510355536545557289428815987453011903245290383885368946675178028199022847493763549803033426238165307042993378791253073424260325341172618459626990969949520126072824159985594084808080425036828659985789891165124476323906502865261126548802230140604704205474237336141673993892519449909574687782480452330633458649846718870499877472881896147077842440610797786988409588615002183867756205196750537566013365212160988827111789938702327280670212713972980266941263421975713681186624749177337016730552191980438967196666012416407203182875943554180742344284276060551752788708868208071599173828104925752417910538130428418430708154944055434141642136551805901308241557611037654065130852498811791745233254851993545020505923657100302165716454010536282874372594075042850881740508458227658447640041340896816803666571420844972531159934131205488952502855127130517558511322217939364993773824810586112024622669567606609550750946626212500907841852435475748678568244285985205594161179976325845523674604435519403195020802027223256386868835261146034687393932908116580701006487863001901488564909964979341235205332938419188474199573076568669704020161456837878695474551411846131136617425547325748201445620656509128226114034463323880699031872579772688411001670544218856099025786311792209565104386309181735144334115304191283258688282788434161540594474183109545388265648978939388898039686044092726248022964618774774448599837719142861277812356792617265940216305087621048490006328189448426289562998344150279896754938253040406569139431497072218809965643376714536190082911632964703644428077282554862227470623408906566860339906767672922444691469955893925575912068588948208379296693353938614158316249210264693404360008045435747676008889778938963239882900768753942039648075819099580418194048420046725681292837622228564193697485749992124715452589851750878233595178448085870387022874266862737894199845607362280351267413605652250539422891579182361493624439916515579793259409486917373946501755791507543534869841913748356809036519725705661514980789763111961562954976161630208436119179756857123096488282656148432753859151138545992004202598075797386697508539658150153260380520111570617141473015105201462554586511656410937269883728400401796591452906681963555396178995688638579313071187524907409592379636903087661829280378588119066753293534610310411680372933658600336247543675552331656116287720138700349284503455732444019114656909240591253943971544194431886295899007728953213300269890609321500071533716479396081228055542378912554982113986693410543102866394976171932458094412188973271334516159966836206630323252798931966281057553994107479335410226368990091269543977381267424124625775746915861302234208835073508431869458984894870303665433178371285531983646197321186635647873565283802915092317065447875376836691128701719112959132161760819445806670734643418746649297923293289077553757081369618005756108664379742296692008487804968606914107928881110094776159900421785106607831181566780471110704046066617800798978234154528330173217890423401035453937982184099340791316852614134949320809909483528336480544691550449612822365222095627966758237764086805441098004966099112128961694502666954949819598402390330675816953941965897734226026851144117309822811823193812533152672589500473702191819911216392627526557869660367562221019567995511030141576202542282415676482195362807615396095406867325649457291701061644625480645161917137470694511010431676227501857694515089676172761871150656040906664886455702784409139374767525415383788331902455033755203544688292413161881973381956422181220269161922402025056759340066456243755232366452242980745276094512292901894650941115396669155860908069151030603597975661851893077251013307183602118666134860415331703863976766276235510891399011991199583541697852179640713656968639747134994048706562447255054340846382425858293622493550270300887322505133085768070159735444516815791907331966174805468273078883704742431856195175571680282091343671974520548401936905690470259425678175197525005590533925786335977519731950647161172174063379141167731046318668133836781195836044180883063074995069251621640275075280444419418880150954833094566103892791152560004879737174407978478684836635025628824750937584515207646580228690207463154096121152101032482542007104425837228763200731270488006171821792039355662502152641224621116253614989756069731827313871091124855830624377122242161938467679003915637068675103404766278311400052290548486852080376662593259574270027439023957378556600190591890438650608490487046922238557975072322743417910971477184304462816396335824746693831415232503503636625651468113930080532363205566899875589329333312184648585413633871274678367924596794157092661726821081622768522036791680827362385061596222682226096804692296690415254620289434741808579218926857444336093749757455177545081922868151906185700858937219526118683068181100663929728208117032551422086257397997986759370356737415343711891312991224629377294788771947429460696595531053714324372080475820902492691644764239689527593946723422867646739318260415853779773677248588610080809520116360515686083337573564116310405690375624186537035541620993370204118804220888995099146148447650415158168025619516756934919642231964915381152913368208391944017341075896733181438909151577741070240197946970841283451416887422070987202968810915365297486793746431380559991247826602218528642833123206355667390789594537339452794852196123604054594942900773032226378307887672428701679422756825834424005534439823501884162631558379964129526277185121178176749472092050298043413712441733794226279119136807032216969254669112575725187037095357560378512171242692591142665099576220553109169569067565140158063674938091287560303390234239394488725103687603704995120772262694216136349828959844322597348679939556648061491276511105202655785372097377677270806323994543670094531497933871507345526742998841374486234789259650415786867039329857865032161156669730262196937196987280806004668421590720636127834574791222413941674983388024274974555555499586201049094874504947875447828415691778341122066538042888373254241308438369143710384907353523355822752988411498488242493742548779711334677455056761988406811379186289664366038554644786893429713592745720105230483516459212206368822105803659124932873235645444165935714800043176629855398223026977025337915083457085839908246625406092581880193519368548231804501421485874384847625400600440428742581500149971509235826509698636884597487332089753566558809081261103583133323035157353742276313757531599531279807516019050192599579706958526836412631390853466491533217746448404057711653772814059178678560995958414521273190234858072805601744933740646891286613408259957176724781947733195666249209117202977551630105901794293036723028207623788693214807787796233752916469885603851448993452212894955772187512316060051770784419915670108960088426701375636738039011707591075343117038883244329522141258750647023080735096830209879447904651378038959687933683006126284895595363973805369849052830346047243984306291905378885990055435626214808937566814853342446105631836186653716110923952061594000711024387367107771822560567236883756265124758543317957749982719817425544824175110022960262427628492298284861737873617140457286016365927031103177209656472107700359489573852576743221715854598514101247695727967778352240931637566329595750727261406022268930585038587759995171109977603418829569458000565747024704665401538498141506630815767474917885525376340889304998727419749704645646598032541648271138497912072890536551171945746601491037471649742979605858736109822325257399888736498466249463888766901519508140441238765070926682633017795065740229102270576089633360662528008947096672025274537583746497065119033582077380255924518093783738522234185465362196921738501496120156057242124002930281660807966166968315446724539536086035552418576158829539282396036621619839590055619478843257404169813707932289272224061684260419037732168797323234729664800727315771142041471095374746642285815737694324128708382541362528791845438104015861521996556099128862183515263134608525370826692294033083365378785274095689909307252388819545449121720092079200623658472230053628888787992767109002124293773765495430095488701531112529494633756056901003970559442488185451978594737801150120514826789573020466369271412815766322681588581093288191206537006555121652456995130385103320056463736165784878945125052767042376338336640202346706947666280702479132476265579296707694160662039117077008230079703547108877000591570474811069924875050379264325004296547797717609826608380131557086885982383984099651513724587930918962303403737289351522272764921161542821472937894789468438518045059866301238425925708607287731737874253572154575619688266124167791072935045978373614158275732686782152141522254436023167978718122523299132434132669967340882360540646248761238321361538114284368671156237314150436005177818772531186753595483787364275720397277432154631398811431317060450333870019220572428941948871568614002389605872357272998820256498021323819359900431107556393305280132032636378344786178008737323913490423040777826461893094604882208451498461153137441791446543978129204192847561300671752520520935034978084257386770834308261386173477987479373738210139899429484538850517199406325911599834845869983448071386512253445199480195897768215092424971947707482328286696360698656618488991263345348774760037569646857514651148317898889668785694108949778600553027871594166355216616421680449850553649753829078345532294550936818317038953094380762736163341437231171654076186787408087204094839180849734893136397894155238385658993685618481071462256994614040099396697404492494590251789219670613073317452977030975336721325563565047752231459507395934976371253784210689602911042592176206692266696826861443166537189098597704241971563920610945076212548330919348086831410824945568945253049512453525176549198357126653191942344222468253828845856270116301783164204450145770617885650369653675505575596578019760810686548679667805711201795448581416364856059653960104352100700862561706932017916522332015997204283925913153421030555885779682078455297146157515657367831362153686563328101964345886899766524204558518330874351041094019090087170392725279442571571061358795686091635126697393183116999675814185327090903095217230529803651393306674758605489622646858509278832571182472605830799484872062219571902601891137909301178380889423441209229284032295180884460968766580005174805145134301003469120196962392987300477689877989487388058649309234797881872653744642983723123617832514814451181716426282791580283348972136743159860313663638335452740416641980400921520193481112743742457441774352595628075852025449564395678744372178219790160915957496814204525201251704918858438178038282712562342263862143313378157239037142411634619875641574370806918219121667127090049229253350069508536608327115997687498373243753485316386711740359355602972674291782432502665275728907403747366206572330489753106754967120139957557518983636060191303158050883409874825302617240077949121833687937542999512069170329118734846511769072503016351520027226477910264177406105199530980729073675737603308415960571457253306802536626388217712011202181925703282364872897540921368284339372896830307003669961706499884913128104080936603239584388843972369046015174921379985058269261868018983597485645931925775871465733141835386442274697707403534594588582223505326068066954133965206738525160214801551018268253000126547134596192836627116862198444699314692957921430848853822785531564882556029789895838198417647471978263443695400398576471118357624317717119847658976037555998681877524532969185090306888729165249864920916073878353549186239613375304661894064071694806539447556369234438490620593246913650244134462009503309230784438105089113497617992981485253062999793497927997484144113424578204026994453230191382628309665794526639074069724300564105434589531894935349398182740806119973160617279044345436749530115088428434417731415843212505222266858711039771600105553939786749542960965189786456553279167311784276988049611245733712819220225246185711986810080726786643101826565169055163949122612871001100327984442934264351108308011631181472902733100699620849868576608650170967415558841536253532725646413804396593297580814899854057190612525680927959307681781240812418822326807763975231478377008074304450712162927784197599360248181639039828707971660460021595952246784371286440744403378136978998735018495985291456848368694084226572025600504285911729064720064755027870933195285992899281365717245915244202016327687365748511206045279294143941630317213517800307356192367207605953087331048453059004550734339423809211351131835865888313021798655964992823103202867717974861744186823075026721743192707344179980800414918169993626802552313980622070204940230414356829049540060373267838465716393070126191040652994432899333315309828801592777434870745047112522218098845088533743479185839797212075507098353565764602039735718055631619567121647203808282803532930900119329211980011069974038087148356563320177517705230038779942889178056661138058331244193555068209085620687466117650196831068355932043105207255390010652670670716221668852021675880550184101178613855315328196847461373970615966094784014900895240021757429121909603680543197853346085355379284691083594117861688774519041752618207220791613882266961305708060349900766165656013171572613908203294149847594492290441516519482979995218818314735307991600775734678396624919198979642139693785265573723984905661558783024687372268457120068410841639940369382712135311293156207306322676125787555968809962954322475649827975359164851735210336242954875988563280878973123177423807105306764518158488390885810274301639156947955716249520668761406394991623564417995097510105395070794319465131101960853879095171646980742562125465265441112679731260778705467189092388343452796201023718447583662152717114163791654450925290415570155015570232635221718695926745982700163102089111803893972520482972617069722027774415284664635554023880965408221002319504924714672711938581970854006486075474891814442292131396737393070101831409873632406067931063473697634685618360445753431953308241108720567604887882552722492449972953166648344965911119662370121314374523671295282459357968711390242670405181230890571449135298753110800526336107056331549545344599210379051551021009133177402889178725097743136949217314189507208025177758443969563084478636529398774934929229320560457627442662584361713408154806049655966557038604876789706091691194197871472001837860980007590559000869112577906653716000314465626340137177256191890261284712781990694888377542349496409234302373503219031846967705326694394165158047469607072369071267819223952687256729817321262879912917627413224233044227697414800534865190978197412174209860812218650525806594793292662538674558719373498077608510636686929879759523130046610527369826792813059382451721753476364548563839389651513983729628186142362508264248650064974522909588420977438257273165836315184124405032025924054759222886389455359370718967333349702406138028460888387816023489854094137511665361627316431659638126807053962562741678594729940669738770864705615871434688411779330196513206218819894262899676422638917833761846886630414285166804507353489391011716807268629910193020710546324501437076838738466916918949044271250271900261383556058707749480132186065036644635420497575438128446048008998729397970297202128539284193325888008652500291429028181660639009320361477871267837319123516478842413220984848062430469907941517368150630010673072644105458382650794337392843899861050945350771242239409638788324583888121925766953723134449116346000124306775147915651078263684147054170539353236152148438265612635987224780150266252224630755555732665821627707059195508242945400858553332562049660874082760835326822993175976222969411254127167899594162393633482654042503841019499028496605875356917224142773714035346721650896029298403608200875160791283960590333527239897534567004053144728371233515069650762745896233649991658855283971990036556287044037973514347666682609393987908298616148467844105333214759957443642949976748253371822928198145825337139425993483994979456713497610905092162617806127369540923653172916879529108868693769942947298420946640137769661129533453099734269381636155230448200387305449467431632804566677174260439470576407251146475868627044978366705799746848645962433099780589737864803201377158688745291528948439081664352056026830795225258768146719304882610437493328262490114474369936700890266429277761773170394104043430596919425707578087748622951191413900389750473239679308175928196708298214933812731459444330455829407940717105081333648238537203037600407214983981566769961683385620032558143409330892016853301886789020594023956346737741494220347220884574600236932043204786597328136799487862151683476188493994124577417888044556958314081742062921421128546562667090858208557771411391286291799010114337392363244647662552516846075413347621719671140687108505814707717018445199522085846722195425102182838513224751660995653381060602734237924776028214485497166550902305869010958899377291375699092217868166259025394816020908034191397309323587087829139966669830231260868838619351174412695810613395321394166334749683960257629990918126384187882978153887955956124903364419853199831535292288803085795072149017321899689744228087567721580606128459869342087515860888055881884209379716718799073786292322438705336469077267995905074565222071666670355625227520326083875693440365326472307805690866233832219035661656626284642940504910283595763598172346608697093268515949127908365982627314296865176439663506303367672599690558754181937600146458130671838600635586955371136256650602992528818867304217118445407377298994291603926534657013116795749290677025583796837126939106676049982376518436554803995199720572685660153273885955562271999908309669726204964998864071287959515791835362809704946683831961289660712781617802428068883661444607088611504948872114766112456845243648893566373177584591036920563260420634919936561010326577739247009343135811133847101380549561922276237118554985605296714037142165463271750674850107154085681893391873507743084331954576508088568931117637896918080089045238235558125308995791775389758223060004658682421712968834256908577850542735253449586650841566543073083309937629969885285925480659341135150324089770255880115453440908556394073060433116676997085425911819927300316528394800970651502473900434694986727237619195338405274867082117786079550010999674345456345354476607306526443890429399824919043701879338104018848668335228677166321793945469965028280001642762458396233235058656612489922263630197466634007590773549104438349363926497906587594630407015244689793887796682353342745949252257487983386181395758362518233784056251317325674901734538487477872461683464533384835907056264253185647473326351337480950128249843504711271426962751986735720525850521289651105495084463731610666579718127943909755102784138113389183782012058225414096957242092428006873322628341225821099762748652641520693512409927971764127563718438681380044365120454860210910393827076507536473976427243304526242723710687099711585686105936306243968798329983278938027694622584375140603223242796720138563283478126029784743712905977165402355086462403665106190632064946291975713771255338957599142234177305215220037492450999133509337850382514323946360004734528008971175765870265765434804693822440673963903930076072922267167079515149340162723118784716342729540058012135930004761168913818381729888544744021747590695559455431772824984228583458683847573027605926033863793124892262469400717915173666337568183765620409278246248302002743253809391328279409778609329303778362681215233714540000031117769511057808288443314260464806461505701476009013670518248290237590299450829497661565687562726127197291264735727102067318391001316756126675140572896401657925274567683310397035484103343501023211619552566141312694265183983180734718711126637043072838393126135782092020234098361153182853849810325183713168408353033538438781513597521574974814543165102840399183108900017310731309056095238024685055701274060987790153611077627559897297027866012590293530420031998151888821812626523151857754277707969632014498198588240362828232382413608013709094537349212727458880638672331450114851724614917603535692440906720975635467250874406423578561032806333837653788301379284198423107298931125364738354242589618439461119012052970851278929503114030790914474221093826964595379919172859007027419632448564506199445113016948574947648021827455322059153422265233854941959018120867137855144411837311671073840093406583261933184282616808774192630232751015954437080331212265241149270495077942886744502936110195223872666903771312202225929690154537344505563364481150089684341836227602723768730507983998130904334744415500401813675631965334866843121887239904242710646968908321483173017038973643399893797345423353732693975173287585542663384354029553304158795819231355729421007294892490039713374085190227509584427389381813036602077859483731873104412047541592527820167414618698381077048341063036356814836131732951453351680069428892160645496449942301840865825910858750134748752342253932003029227614048142342716152468940251914767001571611743111115840358700157616301991159727893478231629796242262569317303159592628637655417202232366284943004590168649878268605703664092008070883627402952857448656750359750009845624947453515126893984701751047083042329494690425991112936998577395635437217408176954006700379302826332874133915230601011415166010410216565682984379526489661962456300065342375046300155322324068413376492561009167683109966691997406235554686518535706237633563927523334139869221677794413650109874517601562700534277610695105004752506322560989517800112904028725162812048551581448233034190461934047482971927179441149778243118115811610320869390683685054275273186111994036794213538981670625040417111058532788031961932665158888947421987735151729802520816136895052298110204722235507022251182571893289554716284939408135031054872479831306613500123883127677926622138588487001118199830538236738212515608807359176368335632002312579308963544598824166259106865174627326296197889246145947480048125593570414696182046145065850266013234344465125708295030288029576687989905400065758189805842312090052905907227744829732673676421269143419946220349720983505036016409843970861278635954795108749602629300837823457292166965214463481828047401672676302572826736089113289039158410162677663360485544808709612414838159616548047289094340655895960494583635724622276493003391562189272624102734059953441789746253067672735645100523047574009024504068268353545703344957529695536662635083886597449375307092832632964300350537907571932014833248079945486243939292771351533360624381336236413345262713318407184565320516321378934193097931727573938921636429501024799621574280102086865141447724697810101973825542654900317877130600523065861875014404189430687269958530750887124989132109364505502052265751982676950252092973244282210304408326746693757180631890444777815540917073135168991528507777312538530885726201327850754805808862713682394978335168806960602642893351554386288327426490986199299319981349089538436796100439768861212318730900227824314869534313252427918043071451731545645386654994931030594105865225388116621543451323419370948904271751544665420212055477123094755737940519660150663246941092395942577769315084690655351515712522825940059395529966291201618310346433307377447721907856221946021403714738675777264856698350633676067528293415078481907737435779505400600014679744130149880426728816999326762558096158071996063458728581500285980778717669464935193548389229638865413710236260551529282134717213691921610046722917722470302575854182680088229345787798674775268397335595852744245341917360172468998696464425414946648071792484213798704520532327077608091678571651450367334034270242698671396401547323119765367425576583097318926220365816139062767449867443889567318684853802067421209720875396486239606787458100429871989654898534444425724367962725745401691050710046912288608074994820046559610049307490880404138563244211766415736185040221203313650245499526221226788804870264909002478132335090895060340083518708983658171575642667478822457322274741896632901054682627916491085720389865748176625966531201576087863504847394746118777969245520002419595778505862253677595774294926660481482332035298317870508283239511824844302346175150202530907038178917888542148230189824313953723402317081614802514673032922018000579524432410600152928260072097310507951978555635367249037736072109198200341260200270262612392235546561207580402184572515080443738786011722525514241891897368131820245406271130971164217149497911075259684428191039800390269984337438800663955266186026107337103006768738882163924383236383151638346556434347570073929319564900140030758681301194907030395937930631251525500075512451787497352250865509418220321778586478979862980094203080315495834794624498571268918984772381604906877167486328821939369980394617169222410193601094201697228752880903883912087955117674905303721866713498594840895811841040871219233911109019903346865949221331440699422895413357607085287379811614166368142295230122190261503934442133631769161108361569257253834928969785769399663540092770432130562953029016566560183407423593012671691519935288454320090545984965547373429808651262302731218485007700067830915292443220077751768193242126476266700813864167122173346657261226513413088394957653771313220442491176195826125140484393711061058639045697170692096286208759215076806881140054215208431265087235823480777593688739402442992772146366544737616470155023288901764159066415471253076311235351652742076648771982397821449744559130398040820894406340827507961075415773372345016877234156605216667562039415125414180301346052993519042066346508769233902418142561099217505848827301545521571933829061197058980723284024078562140528661533050137815969456260447392141891706786679186779109517869746957794071159269456086698660831257568572923245999389251414172488432582271730870660306256381671040790593509036316225060759183524574700913487412199715199475339909975594606906718589844766031985217665132441267028073468812122997013994285953248061044650143890668014587551662049260255418591329389610981054505254249534203953254295983564535991283821625246003419300584100061135414023787266478498027011194202463531699019676864711039614473261497553583921533133867300228664755272533999572795215759713485827668889505784318734130681026830327981556754699530961154565188744495313113125911695855715887444093132753576341888602631168708290766101064556639868520158086201297078770506104107523727564849073827057438597626015503160970852161909176478545026815695941551623349030071613129386043246112154197909111501957288455858813539503987973175713803399518396546283857881479598115328020945959716892388503220965021782257160671587870484477710416218400852634344016309749880670446372149406852781565789746826175400062170731022815557276802046554286613390333834428937641662514091216961073807359622908275879535928402707688750200431212812140457242863768150176136511750127219820644128049246307477347052621063907851862727661369883982325340282579366278532901993733650376928207325983428073173498126062049531126310618268832304626663083690170565524414544726814142279370376552713309641359268473158225250226870183002369765096701793311259516672561278443463182270617930159399741633097563109356274029360880120053988443033061273274575560414582069365852229071204009935702370618429755242857201435063629528974187763083832975812680401244080509178086173953573820138662337447782865495008283860163107580693343847778881516900289195487256896414012588719202467206126198429341798397951034272005006864558763448057916361137164561988058171180722929444183292882293087191006189043453685419146986591283481601487781603917177016724968149791714941148226367385639254482266123207747988471394628712050113840618530290982956563591584123113136804087570349262272680074008444090753689177360220970058426533378288719020384751853137480384222819192634958771760298171447819955209759262692125817826078581456303216269498553308049184263092763568610584099835337505778681224390441527787057334287024266686105853720079282489816476486277497129568905219729589134398235054227744242964551214022409238819229090617384300712583526772027595816173003704106097607373319819835959048503905167833145464593994516712248974643206775323664482094831636520335206500916563483980327919083990069545127019576397423024900230454546305429842063729760073349081743139281799761315170381089778747602197687940021330280674140099530104827934241234371882058602333887160714604501170903750550986108104459437537992968215208950849590387012716830686204864968990618752974576492479304146145960330028752190107659439000046490596315914223302079726144605113801391008751887898457703806908712705123873381925965754326099623348051410571165851790306464557965367153302517781299049791408886876211695722552690315377571545377817392348436848087768970426871835153874970798098398046755260276391761592920704178919811915488510799731931258896550571281326488022432744234813641941380671330183668672969997781726498838525827987791964186110420645244345331742629764092877156110732127026937570752824586053322942118417431385701637316150055302656812721338847514470683934628009495702208268230570637955416661255756100670391511304203143250705058406361478229156545241648455129423312945225261184800075229100055910619735077337430730895130096083170516668409359503874708502594863030629883951239407872839108402006476147928730218800197069089955202614216166732915579146350337189690336288775823398679058748837617606895920306808170027636388573557845841336746834004484855565675059876190166875984598107863891491482009988614376697791976448386905131028182254693040809261573674187438436480612752395171053515859590115729497431262410454907364056851082215339961341190364667067896111826341590683775752110674580418073456891482878211156811872189392713378369562385115696438937295804397404970984103810814704858568650312703244973636905933883802035969429203094701755181940619426692200611217307803594487753483694993985604611766840681541805615907928862753601143666543374217411530016379857622524223908518183519094920984928723861364005512546062584057184443787364962827957454249418766777689457489268189282235170001887245510422379272513025335608287353426405814408419655771800209509192198136896498016424012668524657037179617067222701186192042958840235053300378795577402301938982048453537246421040807287799907674207302848298209936890302022914926945129064674925435523994253997315390566094444248009797050920173657161140944389053934977702604327079964065807944635416962573159128959570238867245142549716817476837882382939144044938949125249822980128350168934668011817517884420496080720613185488509598283507891451095869517408093157759815471069936044196702391011876924992546325422543596033527938359431467613939609096978730747729117405114033967155328366077807052784150906691556680379911135826000520706477661654490418343310661594922318301326574630116125745570917463525713994797742602421266467515686839957863041578649508896585757982917760809237886916211166397740695909036283910459456362134704922844980447457856281850019662899973243344303133889528896519417479870893311309835334118328857907669663999772599267313984042651916996056678843960427039846781657605985469181444841208802980642745985847579530475093834723423084645191345945323977487821747222275343526206367711787646352729572636088728168341040714733562154189143146053514863995257846973352339610542504515518844635714807693890015997742627172744486833327750978118024197741696572443153171636786073132713302222603781978096711487870446850243110118657942088466883302224497708588302164386972927018547346010107115148234422557502426241546706149572388740004570502137713488662382579764077303794202392528157561469681922016783310849786210239216049143441755016952221986793163047358609194874650137107162606160588574374585015568232243659301091422957939210977249396725255910933686159618875908703722788604463122819210856000389608384184822881280054900331195355229419682142102993161312400316422869652913794399411134301335035978069432863997112719051000037353763152935517671820538287518578012324144175700372644945484383583567372701823075493036970458097883987956780269925754046927354590825216034146482576898958888763290508524576995300406008713321176611350001510114701946701785324976939915178444272947140479276997327028474461978044382719941806526586379873304370883410423225936773828109141359677485027554124170675332341994794064525673359345328639568525732058683061648562143302223565798534583539592150793307150589760289926865028526288454639646211933608234976940890718215133765654828433292624428228535872102950905298999065675982276662860502208158659449470630855302313696396142424282163145350517816688717816904840028704522237166405326779050721630806525325968691533728238828969551833518166063615582562587718428146871948155171124238436884808868283229314415603129595262486289658597671387296286288877633431776679528819943998554465603563289008544756723791619885462100175205995929045750590447461827131571475106315617731345792405674781306308267644346494608979806004416385482880299128438865381380610289740461875112533603954422056118325536279098540529793426344475676604934041403728770880793156237192763111824062158331936725127300217842558898639932485885502996945272114482167789943678673143477690943162658254850302844341663953443544417142065441631286753629363631501474427718311112081421005109158228695723456440363595859471772176273206354131788098324016092106072933610093712888272918282185355034753310481160808186568899371607322835452088723333639016585552479796649751700769044615813159459540879111768490807241887180803495115335668829202188784120565966634853879200216365222604688685041103466717074608540800856711855690961377138123916145361757386592664578349177565790543601790153246549812127960752711357932885850054624587519457030586740477521112534920967404498448977088891116684987599063302436268448005495677508068633110358868746799775934260134556191099997002081613864784562022165647078146780309037710409305593618080835600821342011705587766017237666350608799918299317500790828634652065153626962129117311138070559962119409854971563813834221413966058038654758051307759320774539177333348853081369375931262259597199226764085351942707607646037117843981766856203229512872170448265981659081528357563868509869371289389920046692663068757259273867282534962851104308723834468908736439823827992415224056914208106725543876040505805236707023880984266909421611275843856037632999349971065239066016715178212918078660487412955149227557708907220881180738421732666281053291763387806128818591569188070630803220599219470562074515329746332410270977046792016685825529614182539291360724507824252959794784191962788763700131166403682458788968840350645152033868643911562706076123954244985826614184865649156543582691243389453825148180004526994581835965520235656515015370139719217678075597714599498798479954620963818506669576926644981419782297342102057927116183353906078314868926482968499928757846998970382887202673310573329798241410671105081022641048979578346296215099624492024412997486297362863337173293968561972925624778661225370150246438407023490936018472546577386077781222740074507640875747804757270328523867780262262561125111318649102038479349554036911642731923547636762741940323202615446934176673095468576092647617747462147859713518578218322391177754905300691238944304590519316814444040128499653530367231171956494136376133097949069309357623477569368152938229018577137534376808633432942930339314116817498385997874203231644508372660561403760394145083183369052476435720751177526109425847690058734116498916871664762718588289471282031968151646686960218710647305412139385362070445040763428565922113725659541092768581014932074177861633288198530880036135283677039218537776494297935919535237386876933083384505959282754522318210872775088853237356597431559409703737231779659919920516218897758196256835387304662845143055353140356229177393193492213678400203863852383713330884341120604655827221946759200294179238213492341213774746354948392005494944820833155030686259100618517360593165512041536278999444395296101540268965401670783088995379851108912510837969879193020457356615434685999306768114345035311798102577437091402369363046908964929085193556005530188173320226768452878693637497342870098407861077256778094226904786490408152567113218050606128584660561465834560855089941330074187884719298080037067704745778179439002523621413028585997014314574180215811005355865958297758036538473565339833767685431472320692782918296766334513054798327081504515490673377179566351436810623652934733593455383700186637105755694793286144550083305464463561313387595601034296813641242474016902373376500508581746198490518307230843050301884605240031587825013139894160359433170705994146774825647878277406178511229363624861884308254636094792272815563128688609064718139003966128475594828014305935302888030800025294232888324054327960524471894574398246234503928454291382538205528582962150956757926630147193423436049538399261759025682601911018153240668325993165225020776200696865444005552843992848344196107075900005942362766692258044091485580149880375788784366781242386570192411743346751100159173632694634872921100790812439146256094481046701160694399285133799646812192715708960919932905245014286116660653932165770032711587048784144297072934331793207758760155966475790335480151589823438490729476657881097906012682220740683202147363202914871885043987005946331879355208883116061670650586915155255759141081748175495806484879973245106410978052473719099340330463565163664220609679401274619837817046136293598852706889101640403327564779877279703727051201407597137223875903430685256004868095619421107567045763959011483252555568507216467773024938196630641749268759513966932078894297659273638793565279852646377267511348215860610943890029205549766377867984306019140902864281598315861146354757137182296048370796942237868013910442051618862580448893582353305939673913803315931632227960209776186664302530813296021961498819976921312675822938249579552929341058376924885765574845204157467607511466137414495130411703504694948494926182420301426976526482632862295253664893698315735544886388133888891373696058573741817707807963598165945655552674612360645032193053359186411046315261198076913769364365921367077240004347157082142132383403491899900084889665775452392671666167959254518907406645370175249459701006974628993111946521228729701091848374652828259274996080457395738117107936159900686396781603743506831441570112002151247945091180408402280901521227811452380651560251962463194152990826567817774324099884275442474000391013600311632549182170433516168302573837189292382825698404014877746867529331314784633592002454399107101326468610818014126989194359637319054959177442897477383959067660268349690088019318183659222626332771836901816793292464805667182167987669836255558527757809227085858183124788059455390292666670253627700944195440712145644440335170824459719188288833466999116152981721447078783722254563954740012604028812326099471196644499859410371883610179813611599989285308957273482812093157174054481905258327468280530351963173958814397771011498456021818777819657948042415412346307018957297291658721610700331516736575683040360439639375505479430219622253701270952008155723016450561740935569192901828088375652923117276699490910599429526698677583117914672731700106148331318354810646920421716355697935330613829499095017509517536169423611123993243390565044913547942108351561870620368964740588248771036285071022626098372007120881615656339378329967955203521913977458029008726280125211406565942598953988424734022840016321030641602960307062235992272209978927465666240041168657724404425344816589051231870560986146512272728654718215437443052672553495784477253361416168001694749606884928988843369725692650998110222976557122744920031395224857657125030733121544746306946146683663412130950206367270830819423850956093881693061370633398409942096450805258368216142928123454258928524101843622474903031453916880338111760938248723638560425049582162180171997586886684497541766127266021260036357778920456878977499107489424492674635067690209909995329932129368219440494244533390829313590836951580103028242250509876848566603149065676174725809097518246542774628630135838010070637603203802835942334296406633699741984418907603110718311871574009621586237340095676653690053685677068386960468079868839208445078235334149422299363260301327506516655207472072786308474132520602968160699476244652091471928939139283450325966895111172706583310275842659602672096413526164432115160705728136955765784017179446134627938068743654029371595227224664093018509833077099564843195649730054826171568070096110176715533651153949683304999571999298830769326062873753102618435484970037819797597223667027687072720675777370248910551917466542685786349827405446443032010946147017822890769102895767880405383724920926505907703204604069966759242267505735589042365023125747964221205392445326305705573659615971983273512087044006025915972514228711898631274214523434909018803157251080862663139454077333929619350685686916267832985322060968776262478636682040053678590318826652649576789226891746416776001028329059238593245493275533787976780504511533324039432887908833906144867187029760874157779069511933424831658459580487755546117194467489287101545668953202899897835039166008756049823719903139991371490411571784813861016365666441208674104315145825626984574501756293046307598185907977834560368877121302166378882575931301183476564644206280609575804279689019848004058077382883010523703956878509325073807972308049702506730987050454846765575263087988096596419338638439896421155066783820979152113288231904352067865943180262742835695599278461333769577888123334719050421934718191133833571664541844083515729557779546262332994116053277351793298563791061053800555759401711331280726417437706583387816005736718051210565327220401844476299834933538860247433237672157439119512438161686790879063027249618024912944101695667422527829763095407336658622332705815240201772408494444262120619818495533294695481001352125323921729218558178317667508380254775026120856986467253391802462138580294119711288282823434591476177084298939282296895211063322402317109420732296665730274238337615669269353348034833152921819142842782262505600992550655269008382187077116357203906981297865345093108616773416883308672171810798998967444451492032280036664210315547512351807217009352880790110504713068666905588967586909459251555145003984936030365454471336283527373183549770635023843227392724072158435629166170449333258748235070378799353101953739107164110673989865241662992587854251269629872172245367807527179739859854391793018607182934247964952774292689210210489698377087825658773149582699194326579657754762272728441048878798278369456019489307962378114856662454401235650062368596401752201040170996866284705347134529277354616942570122743085345248196769184182307555580816003625314141006848973741263400273465502161385259657345399175036981818275439889879946913606686763463165774426265354808357392694273238866009309115656767821642022705273855981344445683201366794280828016833744743690478498308285674523317693341088080847679971723912702374347060771435909208127408780415082634695290170482729864594731751732290297250539806691736870402565242633551736122122729238785241974890846785001712381644237665634268719225364389599639327010167915764226571468219169830041981207049972991122463827313350132067071081152792399159345597771269643839526081475799631433153843069831120663465100274624519758618014228325333707423845811562585288679554172099643278691415514842099789246205868297424154852728708749591167416228047017076262533612363544576568846944861116783961701179658853576279794754761272100426018809295358677132682058881215911934325327067675383539243109076784257185305568827507351621711294705957106510305853474013075699184434892274189994197839636368020472413036078452260751849200014523349395305239259333301077227522302103566038696514697663736722291675276437442171455078259678362763032219404826114890927560791237739619576769165283623317673956662038883027586516292984744578811825893859423398952547204805767566362345082106981207772281617519928896858750186150243376630807549624632313751656348402859181373911934111585008500687220047027997067238343653237166658609339216262832700886797472275604418569610679024149355687645955360382505411784976619116387747609800994480749458666461884418506744634299676037076098634425158144303438690512374442093167298997089623161106131824219019098402080909608528581738757762370262555845211090773097223253339106156131863519356868391650676827656900851629803707494287532321802179589667714075164956695770508188633324211091593759547218947804651866159370457823480305377832877168637517197412303262493403571711884876826611366435938929547155147025873546893445575524134581868923103312798644243060507309926995041428859842576641733100255274768010138330988039269599167495712964334749877339616213972688320067026916902503531887973465880378788199770279956962768126291712423509842018896553160108660871059905770505735827278670166527957935666677575675567905603455697624197057383422044960231388211958986642206834643533011594994506084205819527100409404290963752989179374070812170250487723348816236918921873486107481045314377070448841357594399298842150153893235953142731052088166734139793199406861758016081957787736809368395767821622287602352947410768599335752152410284423821593375267702677874550698238721173084745104782254763615947146120441193297967696018376552095721756237032573661204741137020980163784491894540755721934217644822992150186466713747068948038626644780562541174266110614431909128814384913862756253236927964916397591174420860779788290966153427009893475461456583489990869329889017368623100422248595296523865831771002881887601733334174737560846254634016467352496416553316761709251057319807590623074800472453200890902445801616483856392459811103346107762007264832067619783369357713767833947649355232585137381073168756876945084659948692183654721579237414285210096639013575090255310964543107805503687892660896960750730938648578597431017973418990553219033715552575098141010605158309467911107991895422746900489142422902601683070899100437015569292854502998961021047516287548979679193141696143144957430980691628435861250171547004591790158566292065169482011106393580741807327882416631020711883550304651654217171652079858919409249919276041201413383789189542597330474113927445735709768529085403099775811098995895337684613069340266901094952791237057142475561847236768621709686156207870522022576968516718477433457569276561982136657759296072468533831758337684493826900893757690966947942609625424832273667796722696226424065707421450548252253431219810172642958142556901280957142743546539558274544352254676803621174700535291258948354478900875743335276900268256693524903128667314622558708057445328058904375764033170649843262083477272570098328836378079362076751425123434170975983226133032461913097619517107894734163926327991595117530377214058529490427914144135538585339913564103612913019749854578823945929169081971271103702616882300098915691008729853073118920005372421359495983643635167870293431736321668637254358095873085692113646784195349591802658342570648142015362186320510132858784117424653846355973072005790738326869046351316698406491311820829883558493324042447777672249496666662656291984369586019853322293498703579617117940996485149133586416082192553458743631586344859962463178315005819975571318988475238435284563197836463813914858569100407364237653885478687542062816540685254588533993714884092625430227420016420493617209344279737279331770385755089895447659339725048604214247008370743926936925139809675113344347897077548642244383320551248545554912124573024767977498704266534599302382933352795729322306446897707898857394565176382241658959409826014219017369360779585295832688030334277504332030889978043281413940589022258653359487117037847483659282460385575929644576855558693773427830816649750682065993314864674623065903304824184305386558579739088802793733851079911639363489570393450279834190350017342812448818027475376099851949566734864842466955036705035159102220069747343044576399650504289496815264705341290319263893281315739934210258059619789173211168438926948218328522548213305452257079739185426128812289290675710754376953380041776779847306527493409757624487749633971432779744777291477893242560059611454141812011423099089674959681816063832884137049699362786843684475188284948572332163675637519570526896681715156675503927213330867882948595708292705378532243093186656353915925651026360508119312469852845809799405685963229063333155782973983129710891555510637988421034927185040861059505490114823517866283461286985943878248837592906316492536320391852366941484475079086518577382179650557715997881375116923694632540178071192991395407126416942768668592379353036606725085014796931765999127680332646080604406807325434516361260266244020501828261699886806473959356386906468212587532454530828648521565540626255495662116510607152472109534895164244433785899012453387721820002821933426736457279828425370649219442426813493094859286927160337168161305546775476683699184243863700105786610617256731064551900573021670644608570585919713167754120454742729197862236057982959847679209782504999869341529687085762213320331180097980295646208634139826606809111354360713805050119638914937103712351126105246303295212210149062317635526121623184760150536422154811558398121330265018472989714423076746113966388155915806188602343665017919751624195217591158674997996357272720660860952508189841314386470025977522365924773017788791938406163274112217287844953103153336580394311552411203063207445836459020507167191327476405329360821213764187668900313267598960221869304790342913374415885959742148416741972117986421792875050627597528373484451025610139915563857558387668041780953772456077475020137087709619918939303473749334145375750782020155973518474001354750075280339084865626161808114820300086402023429026742001850669814979431759777186685888818911372365007277455340307369705454918121097851073396509923196263585237969738055249028764481697482773561016790012020765829220784817918880231156916370720332185893140005263430929515454793098774736656265948109702190733304808349069905257965413461600148688834741032781192943366324106951556166313579486417206458139245493563455075871908534840077033557696995017475741682537013311325916952011390924218323432464429523190128806333842653035067083169813044195340605864449346969715400431096220218438220778884281517146871793891074626986243566742424092684380577439622912278055956158069272298020668933898526175333636864672095724805814731727448955678302305323032226148605641534625428609018378255068893268671581111252113385046475054855557165300118303937156297709619015628905288384609629165240782601815530417235642154386062141601579917784593653964184132484618979329526693769547035144603974772229779318261795211500879971721976040629595835678781025765321951808770242129803442110652425542397628073021617979835375865309186926574349456571468593437449145345879335564217461153924061052492310892163595572133435406607991353767217055873501230745546611437539984179938015111315348050718081132817936989877725896753519540951316608598915246523964623114482839644164590579757058142044527812313120080798815260178872528212810539677164835434288985248064322225798824970971576395085935902730638119395363409400626565176615890962735201408521120731790530122115128620613535506144605164761932506280430346888483017588172582706719429902324594324092637128281624660688880180881953427213724256261474985965681669362089917344190637371166452976607035005345469628624136746504966108103586658299319409359139312064612241838361169685860641052527693076141677789885912102209228620872043462730688556361378497097644998233246354127713054178683240047066252936176787421847539284536949299387966361768684020679250623998031842290880226614681326873973860381609831194005454896683749921089868237600501372234917597027885460977491676097546464077995528634553144111614585013623251299102116621111975921315049573798044525203208635179826568730122614137817224437403391296785430132483244229464733213671009646465832700449314697632532181518570149531545911332916294049103687628730673663961951537145590780564014068196009347592934102702180776627030776759329964645241390611383322996071133687961663180209347303424948671555553820165682874447284065298783902746868709228598956597134736766255085083787183806440715653683697628338490169405586662926428109841810946520706800357552827916984554487745450577227318997954481422402714091782899823809903183845948323939485691287064287869339846998965551372967963995310169245634511757724802615291431323226386777293111084257248576371937233991564836403560931694505124789656790151912509356672218725179648400895745192125882823772554530873005798803412438518130876071124234724452776891873179311266441567979162235155970925329401209584816879819877986038725214779631170340906420396449336023761760273736081410523953094953255246292111756529352046623031651288147578532293640849076458678799712333078658153449343515694583113555037408597340722557469115415937744514430429768924463805731827361220010645309150679632190777568596403621693248337750794001921924878721246983188993479998531942892894328808110340896341945263226446314366453413448390579511064672063875479452004213212209797893029423416290656042271693291312107371288255790372586464264264762190627576130989072879414146517872183156730483317599210511204823964542894711758562044487416585552185085019305775722790538267820315767113854356094494018241607028449200085065162254954119277731672276174883694574485582559321319714067226857020968404471848914898766804530921616034948223764604571003378756437095542016469487385591282626316482151488869885026466361088586774829528120607406967581503566647084764896077218437588571283725140804171123635895791714207621112908088083863817588243835982979186317654924585298972293252552696286289271987319468367744083528986876936891008515135624577455140355284189300590548552726234907823284925238297709399401026149570695602694717150811276500464093478274723989263685106765425960667360713165913590665266885892624829742663473253082747084398654570403962763771018281743170396430718705249983081034640166269733832263949468060343045757834883927285807022538624062489302340155171757318240030341520096574171125769357294348251126087738495328305931048020711093673673621069777314727636274593329116778750172359379747813282522628013294226945757963701553203890332216982640226684098247532092887199059940373983018439878793752522107854775122424774496946608417539921999916159460521828052173634654157544680682614486187985163846148963631589422505372610302265528171979498810943511550701598032936037796742415516922982410842916472658526863474023024342195676744843615692226533704907326934246329444124895261618388188077306461982533543022340531666087788993923560155281694814382919488512071975269909458235044550882059838497519619827808637832489348523088030467288192607932926593672249635526373199510239736272523471003738526569244117071063635675286653657361191490166234807951196979232288414664520709445826614951775498276785317005412760030142398287004490658352949478905855519361733124428315930719377390113380391413461938408534908956740475677337934728129497372027949673057910668361057630762508506222135141965515307301692993384906327709792460336697722508881252357558268882248987696708736259786038957523365175045208541392253735596278884428622822243649228154678069788084990081249466165613351225287794653048341977207447889695242277146087974555589545792165513357927900985467874172263666600169971793988468229666515044762059622994216891791081504573391289989660239672181747506627606345260141691013794806157952853788473149065813271347699290393325676188385377280715646093212117226638750652161488529100303871153933736224048254007573455874140346469612826130025775183254220187640925887026458012634526098906185924396757621346953895814641055372408430920833624676361886649028185202815680741241241006770656693046501405752101767386526230146488769846018288554067173753403699406976510160802777495651111195743698318450167080032614925677336423530189280815134105249180296633310898352069292953520428325367684113104272065988807711099071169238300488998719483795919030021602924263445156746779018615039867655515798062087799118399916771212688580853433744924080601454430352779600375651372094372316436490055460494675453496606385688076342396041538498413527422888533724058324095826705678277864602961267836345993481148812323310939507681842879287131246143543305674303805579806405247641086593424547795357793941966045245865961509577639088289041443402469902829436825316231129111719744589024691957719836120903906836867734961256218359459256591556686388483630011460666293894646004167116904000139594892315550951303458275438715891265228594231923748507521849997119444791177871067132660269585863254280741417875017068361856890072537874784595222643505203545788957027549540299733548971744385571268360680507204465004207547143680692682414132468794816072537157056050161133886648929282573071821686787337689764998834233806651282138809274401713726391715527442305173257442246817867717825205950357354973160638377776488924982621384200023982895069619580336785396181119975978680342313439260753227921239412132724698224606057438411270097531170546785773440266674878700149311563726426285852708295201361340871087459109283895787134471527847154215699416631363141599053355356639797835450903176218330207248669727147115093480702080435418848528673080026795246946051767360596227713134221112558963513338503509066287401935488776958649452785924878894674914525244889834333511431745044665182571541034755704894037880633646976823652789368567925375414875935938708280331464145807103609394541577649179923473820385682503799565217744812782961875527646544223170680530737511643895079709729877050713134790453945376979880159386727000911230593205763692196363402227999880375987372539081924635151918481558587828065920399243683169068471784537505023345486787416597134221476388370950472316034308794996346357658934406039587238938722217776269928342077892697795177057675193886333608250946702306833176007871189287930700589065515707536340253544167436704932005511711475413579935042182298106844672207077711878788969629769045846607906428315296736540370200325464828185390725624447093165886101771791597752241795436941154254586939614263697207570032798958728325644082989186767130986138546298639701210976363984660125776517989036448000484080702596167067051442714647792868452254912489546374307237829233655196392013866620407669907783068777024717719382120994601967618471347495214582129157727863533990620490472516351177437851984015521285976747508485711971857480283622037471176389010680461789061939100851640454283167820811616224461063449211452254157393131615026200419841055401713534654280209969748575523090280756880297079501523252782803877597969814348714225642369009449798351088255614462499018295191889098020441068742631886074032631419168018298261960401340779536502175755227369072652630521914620691386787228418293624556589569977649619806362546936974609091617804207805824703825724453725623968697431551739688450248401251548660601551647964058131517236320203136215506331616554197412360611605447926845463884671577573687428197098301253255728290810396294730940136862428486434855741876880647487048284135620367899222660576444480530228542778142481724104999431372867691094815116880240971963357641377480778857949676692402430619736668950976136981485681457283814020903072242331433913720651044376228335562904915477002581826797621401858276354469807680459023199780392591842442349396708152415420683977210709987163681291595986468834373155830786541856729813792094770099456763757134715784072743783657847957802034212583405410951598288965567537647407395356168271938482182268661005026946198215073355747098884022144918068009782849523291971794437586276758441125849984523543396043609085823973850582574644153308487445352121119695465315548682778030881913334051178887957772259874553218050273451673483678902848364224480815289539989350272488666661120968735491659844692609577059735134115265079168602540914306464442612411629016626125680308837895736446478269812683040425947499377298396525580742815665147457045816337545714802329542076168201892061031936647235757908886833651027424651924861726887172040015416617460905014957354747793852360090714007441455138481130701234254673538382390641324405061223027105014375028967409263366182547617664747976416269891683431055682837129191138678155254088898634334051465260131369731457926067541204799988082788139685274715899838097315585336345765025611825795915231866582158066670220952437199754259362429626330982395050854602685790103726898768066100284711853885645240476372500323442666822297783862183949135229759575524404259600487354942086477981589158999830345769036910164521852527498103931006348334369869654619577921039794232282345305004938689421951546337507809532832064557086657211908337072086492814707262069138991055277573433691275630539987446443823090815763765571855476652906859620904979466598595639999767751205980417149442661741782983725136289981646238236253975154163243022417521519244889115450450283526263175691313436896865230684395250586621011364843668216552428413469445997468708791804845836744772554093665357593399508150762343282801709954209189876785045836288476591115646158662322225295120992123288481560245261149882925659705331053738521063339344220607582212213650981501250902003119515033981145312143613807718528455872176912600635744792044559521956365574318361567956686494726917443238095363277470865596102015901961078581067412258146487941504392448772753015003278859740225108549307384532566399289398345211125147128308525512412018957138880326478050859266160463230426430926114311131724325084706292336609671245062451720035552721052059459047834083546757526101625074061025955064228960903264424442401427779549246250692487752476324562012824652130227417065068030448155180531710509562701589440883410281684855055651650109741225406486685705030845542044873621699827682490393866749728539711208716198992192643040879704207525815723512076932721717766353455030242355231103242162702438082910910314989661150411733367773492529531737758021110876518322499715584399718909934495033363117415790420733503764278948076743701637078400265491865332220515803399586904016271059549630432000793523650073679038656275566931641816293856246460833572588064815570069567892867682851920681797160774323347762789748737749991971498124538741243870983277608467620513581799221770340906407200827502294159697417329788331083420943664461020335587352890373399186733280012893946602980207407924773342267308398362800630784316427966923581611007276638178149577507972214095382323275002402987706728288730408932009498168320837637320359880019403459243167238675032064383215811205814943460784350167874288375137815715044521121806519221427150642658180527930569116906328279436931943451009723187372568644827863533690665271904262489966361268629021637245739287381776850565375535814780364599400672727477861611575648498586924395039801810986481282036724248287220190094980091532402422705259931889757434287802517579974202155242412976780464101459136930844827168946289536677663306377569090000036281752460331560802847254811546868842978691360762032307690220949145111328585723427178691558487614089989005054982697020785695728785787957556737390926813506024321899521455184696265989769279841443020005185992994412885030470897392530397033474503506205923884978395174698152669325874222977743652732409165362498736492120674111225478304889522502377860295228868780345214496906364642133729216264350285921683535978511032541645976258860590044852305698885651044710099761097362497173570699064930757716060804446193805851010707795067994348766499440111643386690974469083343505792276164878687893978187855633366959084387117952673712362854391067155042249636349173562847564413923099528938720193720888936085915052446010308683793183400545308286453308065152229909702994577793870715386800239599758847955120509434453724544565161826357039913187925131769692893969410305506323054869111034601118913143513787227056241970687666952540738556161812708167832568043707482535788315005097369410885020434865039357766566465434694272186920843710345293960930120122839385913040707600643116081514108444176386263342109379021754872265884657373368061753398306713684901058859112054293969809569638220592886441260802972188668656109045131167588037945529851098266731382220018651737203539877356066057846993854710938313608668540345948041592123286992302541439499211001806282107460536622306461695991930955722887293069367030479582060533764659026108339916731543569683617867678682157739500409622115639405958528972172107759690376580924785175828710117801837815416996750370721628208963158611907829258780044475402912627803931478350055745361189873843905691941600455934235713428274497001842835897773997572047876783824013546914160616976309842648506875308106281351325463524453037330205443911108664863995556401184203608558499520744391888242069712514243284304225397085493918516858514724308618289382551049971208025018213152366473462314808184065568052877037125187691251781846797625232579007218058093260498562937589202132920732162762365533738608958944744967547689135974576103362026880631706587581746354696325891013999914657378440882162002688847187171006222590349890852398536397428020352649553681208582185275689486602367563298236401964685826548302255533831550999339300759816055668705570536673034938236643765770521678525273722950200230227126279650764801253732461218451331998694084540515080784338144887737332797455324626873258889646933877096371392272560339494310243504074514426482349425007657828998231217822705641833047973216187379898694668581340426035213183626844493622125813453925461644842850894988015132751177346495750955284612164743520534090207855711380375834182752393733485175064715892155180628396359215050061083082784613105545385450687024819060772538165916961245994429734395685066428303073931550476127165327658521539515155855127385781817033932992380765090681596677450780155654540680521696295040378533822459603002711958108504214908447287485442199075385725932614815372330516692382479851628588647004730230307565621552842146410963407241542000982200572228334988172688970926770179757370698099983710732312923275539174838274136084226979352277786213418325722823546883369300846744538707953754164993794767105087786793074195217486192408031961352323962037312063210222270716527460961850432070854851489233408791764148655003411023870746952919938644819535285077530761681528299655084333754804568421685642578345486627505858058660097407169711451159325725920108007217621640036307135319217539316140164488527566568896520089276056958579441602936230087849240248334667533652216959352806732144807318383884344243666720073957095461778318805883495287505030334262950737243655466038522956275388827989307173895511314464283804397466180026139495651951257093731777858712568437062038368968835038856121372852773500347927372229133602670654761274580964518827225406202816730248920771896246432443422243314525780798369058217339553458598464889712188084404891862122207798594285039148754419865632029431165989551169912087468605040840551455957591000531183850683970287173602520648531571207335316187566798698410268575169743199577801708876408859120808504039999259034864203033652977741169316743844134099916482233331579264308146973216898201925719225014674069716734975142948952925506345446097194279109912284872606059303753554276511575203497727688505293746422962371419936100121065975706421987465173661798416549060567719799878583383424997588449122483836271347351756176906192983270858202222788344673290462309898348844049913907703870398598570346338342614789598898362277339228631320367265611385956422448906101925801876677632772838565529665684730260116389414519077085432257182415184759426687601087315105694755801172965658119052735318127104687906342799712793715032731689097933252307609672761867383210893823598462823487547481412696600915041724157391873142850700716514400409542056798348696732467302938379270510598630228763578727633050507718831075336049187038995047981904753636728705152172312712700172895211347225023889390806282992182475830003988426363570622089338257471481825478234630473564270315701103616869742977199564545657535215512371519941241296018184513426133583898490179961037070548339286814793024705229922499425081649385476708470985963008425121137349640738877809635396901032130473908161909427764694857736878121712999987800113083095321806553610839382405969522964702579781674892206882761073299502392660990837176422111296034114921528646651155231429370798263300057294422141061668074171036693614386661794851609300796092553257808534877699471445623383852541186789591462117274194746937427802888579905101656258954554324680299447000237602851264997349563477885098851604142876737022586020083818186789752221449681136037108932875599134433397758313817976073226843488883010345697196496987008332612084103965410173391350499596778056089864248943359938733638065997826850585135025104912931369525160770567822472826928088535238674537087636915486178738865255650975839901709421505294853529197334140924616494552078696239039380346378051267502063207883761736601221253389577011992610237721604489452573916712851860240217810980730952373854177149192185932355430730808347396681057489787778183148305312157235898454185875844436742676801958816537979175074304609170228197178894744654788030499107124440629413291446900624278317675135481981224242611944789416236911056352734694300410744886455424587825285734019195461673064214260842986242793287696627944076492082414842328229361610084989356254442517859588975636249859437699740662710885307749936346818333548598254534013028173362297138306656489777522969309571427514526101236879657732998385522317433690072864680083707976207866059023436341352704848120867758579071747041928058623221159392018122377551239485222177255220774566226865515419012861369751997887109199777084221727598132377923647414052347035281137865840090794013654061089397347323767455516034573945460732190904185774057034373635459584354396651316163488364069530061721046863875414030152749676996199025727132997073509338046712229506654381052874791924266324881340897024145250316196878000742084496761937907596076634603613999257496343352105077228386121689859269902096557979759211851660236405413445617936226747236930792454517737556038939019505972432347096009972947331692592525439405948754874129463200185225155339689418990841568415159165573116900216471466841577307209934629719997555594284576106008798856376600587866029979465953022822680195669874565954554748327976963361622807359638258048011681801842453690254253115592230409532227837674519147824628659188848192362390449307748440088825553092440908326620671209261028656681830168688191286780797369964486353131669277424393527344036658474313583428188645289567104215778026949529245585475518976250778534015567284392010473949292377109737269451511462207308702836930596250533690356951235013278090543877115203616781276299047971999708138561183848551046746166232805666131123413706056768802567737350979532083281244422577096170244931889988585488049712577671658554960011985075302206449792088190982355485154572394177443327399763170117978359960725174667732205373368100255588270265759487169346199785315666459237066668696595455899449796656785246046906338640220454684688225257989828705345977921222219618349832720171857821280701689973407689055565911797711422775802819161760623709113317011460404631140184569930263164634569492110259501704664873010647651144594235468191381811139712822434724517123807850393408417331394886778031462274038367161969762290404084606637054357903058238536255978324426923298799741648606279947875197471411720243357741528033376746454501057360413602371360698406280791029210218175493761924795722182861047108701371999493429671771770187644568656118901155020060739007638819351740395818182025374310000746656127233363460890490187299188709706195401428786337986999396822842220582643914085626724129002267456895782591601596212023298705329279507415325538733120756489268062004124914154480281910312164886875077861831313516132159840453516552011475859330601579299819339846647722905215264951569169550713524597425049804592508419696238310320206435017671191244322457071275265901409438032725302035723387529517747885440146904681471537579604532259935192062670792040453028361563770735821382113742712753034326011068326721208564077295193369574775694256479939662371159168972523349988446705207200612268502852185771779888666948867752482020146828346401401621071725258642242435527688161901255732430940450298600118223848554882804844091675809434223407613521022242367286915078798340953000846604780018852110019877586125821175897418786028601775545765592910044466760575574566619714218435075354973438566872485208538027076194562768321625428565164095301489455897190874128951424742712874235945728183436765620002503354231133086319091733936778307442299035239586650914856135377775122985900587126080190665978697892217788278405147662715002267993393383247529012043769532674619956717638390966125672845893567685120580931830184971029096168576813446724516263088693306073581118435092403999253971537562297489066748796328452609281424918560553819796909703541824893150850486749847287492071612737168049103706620113323998304254777245471400996315319448012338209179088109082972703154893873632641399634469801916321687073543533087013941472980607770126989823224033623534955799372185895030844684471747401998989166789652592663002233934134950547396579317553454320026720232704437663014805709720016338556981267783045077661790724686831348019617741461082517022115220340028225285741845355193181809036427692614794283276873419354693609222878762413824547012563084227769811757229535137285604184958373158684229813372096857720234182189178949555069774894865403167384332215152937095702532320794748471183708092473084133484758765400496631694059891747476161332053929328491136019637499019471366414776288256124774778199067352807034333901770882451412181329434497180674079038103811375937408232208161097190374913965411545207598582905157590503417942828445448438571615381707392226340703160900267618153131686432672208344869294052840696517891152203854503252293081687854756071574108795663348325783312007852848361493316865504287189682648095714237382823132511071258563597859734779405163269146418313583409197273022636877444295359828799385698817416541721566410372444460190581126665614654806544851493562224679983262256115081701913431808548412720377778078440937324641141772155491960256639368895793598868488135904544423412937742711129560539678536335591698642259061905511632722321064434097565432058389268894234105533150875594530757409094165774236834277074744342812101016378841847627540107349625348324534883147290735547730200700565670669827857300802666577472064593991862339536838070557693512716936290290569951209538805783399577735837247874515298741636703068936607369919096346032303005694434966878347356825269130859093855695019553753225227730112370362097770148991211536652100785196480345250365547356454634088290453339424413194542120801316875554980550575602509136759601553808034650176552198166676537299838211281819710779986286729234735883595832110475610271955669305578733066935437496107083444177622676170140431767554599172936142736489924335358536912687691027383630111383650755668178272405080298125299675989547422322251221820106078913367995313218579707360284705589192888222273122067601145818007681170339877485786214333621408469065551561306383860765096298475949477324137858339313526497480296279025401581699726869001075673487070933077172141545243493654463691625625251505103108578770437403530741172372118302627051402739254325319114869287694565903146736013704404455068111295139868953240509610106754611924504549251874769007045099046314727343414515033364141893694482712971775399195170143183847932542418305446378369846433382680164793521034810418073425206178404232841197604745626731926783224107673516213147454919046866616677862999310195578716591171857513541277464993927118586766622941730162741257394771137715861322259270380985838178504872545841217175202872657319334940560923580541537965752272622815120104658386096529428372564898603626961095918124696687672627672906664956848928291576929867805811944367065844792372440470270143447879371750376993248755333332539594551475558359829539280195503159796312782410683124864182799955622529684806434807132561505577261220124478312331187829430166220455928205701745421583304435962879297595580687463121497410654227671127095159527977775629914750547313266570486194703327986219235067989685822671210246776965547842059025778653148340429757783771451640724562699560474910522357515338359079525189787336549327862529406176837514412716506047752494733238321175735174691407246950753890063644996855858436394414664464356024950869299104372902321859953184888225631019123252371544846168104779955810686307250977563739897056299926892834227785584305099883673722369544649009822107329411068288444925444988857799896790734201446221296436327029153922912238701296514396890734580817551923305676320451031085994836758046054214583368942296912057571636695671538971565413243585548493530544962939452023971991674339517646857992383252223848090964455130597985234488369945902551218063890499237665712557699993589297822342852452072257447231271117657690863677061446030409766134581246395361681530493875906215368283363949477339508102843288236133488161330717108847090219103127629516072845460949014073076978797494279707583923814728165696792193687852813887300191400185547310136446737653352252631959912436513324875518260906826657789704283044713694103590342376339844137721131041533272493672784718646729472775806148285650838386508659963205238741505911340427684947759877819263244037262910412052250455969879266771861233727253858580326988355398423503655278975841229337108645350320595048591220483765034109743833268363729242309457882589506435360573562472596016064696947596953605222970891480911543460932275245688515205963210582413942728042642074056083223251507600711809916882322398098114326692941680074742186676277156791157537410029189144734783273170670635425323259112832567700163672290469427154948521840467209466774078935794489565088350085756349529530234814134358546976630985921799448193637899414960297917555953279636171236835495592339610063670703841044110871481791781742702481645236460994149667433099015387716058012541236985842843155146338709698673286093697525853396528876788025618657321068717082036127004399469050374786066660609287356533177940855551338375237627777553139709866674709080226322336197533829842771186612638851901961316473231528896687036897857579117794394568461738798689361011509615989675869737398755877849174585755556471868451338162629125153929283480069566413265961934184733196564030850877441096190650438420763052510722139517771459037390430236018213302399592705777895853051594902601796661325613458748547751081377753486150926054608278933709501902522620505125806963035303951315045243070080037260891673219910815643080964808675036386755038292615240106820768548688479879996503016309533732659902830224282592281693381440051789382718734158347466090053297470862132098714604517603665362479738992345540412667671125752424714773453913903985394062297211057988884674533541298344808460225906820849589838779206127055724421875588116345674324079565653560503619081979248647391745407553540572448421313621455421458389959026850323196370087859517859200907234059405840907355973187587453310418077745954430973439066649261707040739070225541719847410366946058005497481126748143150880039234223988106009180999077178255560847665394855644321782473031544678433069314324479053568092166264833222815350058715869851665391474046570655644573695189356657965693756805665965378984341092167838214532979834903004679322971192074477015225744320425077696931707160532346860493940537777057156756696508663064960123983634675221453388901545578552303833362904479715462948286260107797391399821450613007168935580638896729442605982216995318836098916267786964455398516499866119117163073181470745130737489247214416122333681002472786437915696955854352212489521399803178150028816810896721983905686692007114763772999408033756577836066136266965893355795434934128993270923424938762161996549534641959095629227145009162380642476720418860018145088593679465393910975280202243743649421410942931175255030337183496463193763252383965372926791120133251600191540634313606653316453690934021085088151519780296785378506759350907255747690459555933941565456087823053454104772890479897885104867792610870860491571894889232201429307805129605834317406775414329601153356745985649446709681459788847802787375270966815718918616597084338048361666254175155646211741632600617803179093265696279504883750526827920346403332473192426861235005520438565781005969091430690089968282536467370595086608329851601701979930897780121994844750546813603188347928671406868372120435472757480794739252741783794382785428701180502092132146400981275144682467782628620820416617614817665905347263486397797887725586722024154481491096541936981780245549313576255690663197813600936474014239258474898073948579736246595644690542503465494299737582511855136500161728572997636305899452675847469018190992852734587633255155892324008415225443742371256029710753561435150203231264224950490016460244457756534681957384996653876476332751104433026010771996984066588941634426639431747545057045371645247961956767625765143251913103142094355303482097654323571548641613442176736922990251899191607443945029117102579675327150303068880849232137202271503832203392512193627562368073598731223639353221119335258505340951544687273321934580674183026955971734906412468759541162999569439012280557916430542269961173920704228012894416351671250476850723158140162905544954300173051465611770637436759726363578553429040965766402601177212624234327091697334920237242359140153970146981067142754770832771971535229213920735238946791336028178383342777580356222261768983263980476831089111685228618166998169322100270627442832319351742695177353858412807620035750906326385990623619359048652482023302731295028777369637372751381785152096025978142967758844976525528255809344926585472143925712228648839559572797631843627695531007417013872339817270077049362604023427497292126048871309408178631885154503771346690767384327148044783513175346114932933841698238905656232684920063811556774681649615051878248590393115512127805695995913753817842144272495890242188208426996041862102351675714119913787444167012004265790252574919251835183403251975003155728514686015623978513079902280137130050211682238268376173840548638661255572568393649719023767176210763114277166372868750060642594308745517183477604403889852505320279858151035493118169276396052974085244301060648910051032003326920970637334825241903030872157735291038494772811129216655049495613723097238833272802012887439057162370084141048417599880314792439999602787570164779444762010342568864964610545445094391519834772835587980676710112498498127181641388184541630836663187824517380769697920603816269291475905150774209836320951935233255889952983382207308042805670876840490149533168311505167338269855267272779867768349555026125639777247677987487859411907020068455215531533444679188595101960951514186795515763232344935055032928902768011555726650222707393727108879145008436940040283834358666478075315308102408963534733887313358110552469592437131591317493377602979502496248419547600099191536160345755214396799116272054709061821705493072906476114844999053780530598034274460781993448222300223463804569120484349045443825604887024699181958351794406270871741350863398519656294540431601205194830339940864607447628304156872914328412656817750584822621266438097997633394621872731510243546913494564998562371788697968706024128172584274601946538489704038617160875450084989862990289926209502224605388816277933452854110109411416366648533397556630692036547991569569018450970674026485802232800027567125423197042460277918507569531144872184898630562904722340848596338407094675652904614254210857675430992680972754712304482369095379392770555514247251766871123791868194919791590986643308301776871377208592306778908176004687035819318072691273489765024353147250726325109762804164719447287056281118683938491668542127879170761715341194011568212668138717716253787003637955409032366829560401466094838557008987590581928728399297164269158412082089911547281536070193218538879227546900054614613140225986216761356868982727015286022345257421059995392102217115369989540213701784849484648090004634311313915954185199850935995995180424643714997230046937443456825685916259203829159866188294712190667279522914515959356191623909936131103456086087182601204649667820513604174530027979488900515818384579800486759523058181588030607244664482135951575455639023871827246313368755645152003855590768753218716290717688942543597632982245930950393283233409727742223044819951741790199565684505626604054209594032459735484000722203189102798093323490463202189955200661901785545030273822051525958520245240363254400549358121331845135695227126071204656884109682643802354795944669091350183393024939120723536625021912554356902654633648200243455732076660729979948817105327944738535610671831154933917321840249974088737436310905755236489322476475445660456775929986709776113625652097947648804009434619918021137111094076835082005422651279008020197202810030126007089453825185911289456129434749627610501388278722289861410461549438896094639601765493390358517498960216939242284773246662917910865718618511292363855078932279336083839828816869242765803257192245380215735489715493120271820380038138763616717323420397890077576875299222631493263142411794899557397973255618120971250775047459162414040671239623472974989485961350544065251878693578265196125950528268354961377753548681163326417214803246367013192357679912661069278772635452459838900363772771092332665610396182575199795414744116894423081884281719130161994817151119195019294289731737398435422229174940959183052014302270427036559075945244695915186790930433648339037819220147484267718951779781098227081014376062846494691547075844131736458731945960227063680058414773361536380681231738763699455762345767484486459395735086101471832478014642853647996438239570049720290990980512779496389640738595300961098324373506596803701906015253624170623067265243795637153251330835039945260019289597156685065430800080281375366409895854395973210469752083914891042653120904222413112809673775736177698248752845122703223190694015339224750277585690406000932852317183274403787293264482481163212341772167293641829196433526991140953558382182863302625804631632823306620010763199200696776784530243724525197025487126469551326536805529185926387764149722331132157958553188416587916917500545610728722652660846407715813943125742003585560622439592579335148300298379773717110939545844174605126885026969065842705343278365203379398985434833896587853082367008032965899512456128417267310462427780575519277403201061138947645855490324447234136641940439199087940232334575250253406046175981626063171376998908355507947814711980240103804027302430450303835484348220723845101130187675708177065219082928344864998813441509076613335760973067717938394313340556114715676902246543183496347552369243605329180296947412922154874673584834827377637441429240326503290863625165199899537748322769439170417208726883049023183556636259924907866301141806192778298006026994981518625295373006013809502918697729583167775301060076716867389822284998760335117347950633868060961731908478872949265081843587472555353350769030661031693236188750910596873294133157537652187022153667949684617470162912549399322599935769335510861127444366235496535035186184457788563442702635248511382782883740214070054826349445138429824593813927511818042111088171347316164135169211436048208947156331958967374891102597570269026129378918467305378959846053951868125910819829721961252365480596660112803609315127977056042703147789562314269105145478903479994092165085123699879366101438521336516166781919578170330419410158259076764402612767532171166225735941678929353496543791374674288457040166000934338882255619816706948081428422975753615176293585326397020737667206866705694200852657347319350230805829105063333637346725992872331315212059554649092583801517570002369218244541975084429068096485911380513532695725419783586339171530740021016761190585778539638411041998461210924931359257189618352079689216862194863594256742970133779136850388043923012637225219802898912602774411651359299011985938938252469819073918335846201991159667317290756676503447545652796571305708758987388900637191812572822107553675524391743274841275039850046899735465639910591469155665174429843285614203733467090339199756471793098139232755385231923389079510890357680662174605245534834420407382443182353304913060880413555556638874461670622368769603177914288173472614213251812628989508431534293948339971405600486298569875794386666748080831983284934785515618143145524413443039085149655145228618774394594180441728141380007841276205147838330938891310227667377505218880050412560351005433987442891283207067726205376851033139759857389655749870680249399057826582028288281914322261547847150258556412767066734077942908430444790304080042642711953873484972477320140259181649759958802259561927978373094383430287639116556658814197639931286542303955888679456024120453151244618374234943145945994906876664872817321918353896435511955877326401051961121723445283943066526360760638723679712821887970640525369924284781876562525946347874644738796078931692107476942403666592079333766168012078365359056252327343884019122416992690902226739235140961591819222098225395743564736331015449666573425953798129547796758277489974839295721617962490166786691700815942814259430716586959686937800789650496461729750986142623819762724278985815106290384924222114778769508240249013041234666713642038429559498205972307866863341075466239040980000782666509451420274925232204912945644902843285356466735786153769782686797431503219956591601222104332330517526172395661921542872697188227325965093069762847195000685831083342308881854635921730132473606543826342419831815185713371328103916060990935264550990942913520510392177246376157702060132970865163530772535445027421893254642193108665861715740597686548165363495282237658139592861133794174059871719521012837597582479401334220602213892472866571062200236675619565890490164979097122913199370585213036299065963210393948610634862477402107926621413163135488127774581549224255601452066985374277752590340134913865722908539361411944521617007339577174555403626200837164966512081899788715780987089100168434356020746850158718924907922487317118092318837922558098725670497165096698032845066217437670670604395238464476051969950527752993464865756567070181558569725488320662810080711472447157567469142989600586756702761953831402047247972118485586649544086289396959398002177801647391534647938550354482936039366483535063091558045124887437513966361520105441598508752350913684006665936415249646452458974551069739446636949757040566753190195263041833754560827224079141206518451650290499179744524449284712608256836597605271226161810734872202226567253645157712078465708980376225182053482243321212995027037645644419950510656702718974054384459210401702727308070132132060898759189661291344768181215812474876206098123594504208719204405292775854064003302614479864985397673991835320024364781784769689071633658215199811133049396981998536231253552910117891206825464707557959542638420333608602323064336386622004828684804530524469161879059960702982048908515763827694625021196209619195099191296603665660700578297925390034322182499570853540958111623244775368201193961024726513099948370302608664017555460738480342943010529559417776786912357289819109684010218205899882516399901233323745396845811545552473625343577553196795685379399473283689525986885563700888724741760225855266579513075331146974876355433809092928844489868225446710740783379958836565002421333108999199413590650175244563486390931913958979332065825208801223885465615866771401911199209926934263424528102307622839311116248074843951397568220068012208229645777236921689883245360598256675548119190811267059552679788986542512223427432135187629048414256162639599313002540604816458892609223672436214743581766535493330162823600365516588427720899248234658738127963725243635104900127747822977845329348639206217273421389728625941848223454395341733278859035626732259956784514255334807361493292094904114505109594022759574872518420100869007170370599583562765589839095183936169245168251599684643230664471280581854937885205419608058582183133598214523863076639175187204830859476470614721823943628244024069161993898274659257952170163046591837686049560174242399589439604095431086117281115861308974467364226208329111737913097519023697416644710297229503636088146527762644350855662965874758331781513741621979441575217974524888920858983986926687852390506920532232329823945118684242455879450794092665854581867875654292785837642582523052298754566499081034940721215334989676210001205325917203429447453727061366996175617203367433292138750119938643423530904580730774608754379871378512647846625915546044814050658550040735293819827099683371907285989465624168384248380493060915213761153931736767803062208394816981521315559641238002162623476828277721159236644200267037676474874753443370289229698351611102304588480107191954103346899638550611340651037893543021459364866888360892092737930658935338845496175835882102947163178931131151985862232635609681371149326206349016245377394298646203503367282500170658683376840718921305864056250066246758399385386353856142691972243415156140162490155169242326790069626911206669823702751341402720491889573493445975335497486912917978621066243093881272106134009602998045315772886167799632323993424074445206751700501339005470713322321109832845831843266995056055234194790648450285082191533917720017153804601136938089868272411864562259987822676593158929306260380214703432943115630758378674951451279531056257096219417878130564765576953877579252314618227522179332667600554682452728988132075843987957738168806398319738081840038059141268737316307881745435546772687640999276052489013759347686022178614545595260802586724416103205402527512001953967176392918045038741324502110665211434365333481419280764434977389425379031358281677825775603107164679615948159884364706087172222959062574410742240232556842175270602900524444166913911270579569263434344663060136195399383114085885834458312954161442307134581249846581983769256690334362532148698604746214623547258400641377012167043295485487651002670626848718057058080629144111571236486019877296517224791111961170821878223520883690823757824089940215423669054788886373495960537449476877702078922667230137823183365407336219207975354155668139550230543730692437788426904820861709947367643160494851335310121167796371426056478384562760337009806288856926636628866196615946778816820229769028787925079422140427450841413332048504750108056182457802377971290018554418875964341793127465533443654998899166243845611263507663779350924546453628747035990974741778687660069438478546944497264973064199717675106041464091618098613289871078720116046686823858143811289185495921165669842779142002937081420745153228632386266356166777217682397875033853959478016810912706969364506121426279605907459968075560044086449366872734570174829730618637849727084001195588766995949574701770145798408820272354688292599289492137276922661786377646201906750055400926425103529146142081618168203534006753592040493059378052212072147697767460180051173958360559459657032389129431996292200221945063947537562679565080826548019665867830102726834255429553248512815363922585384310041701346464205153763503300696393192677080174290394748490882588935224981120357832656020655796663005809808059020323033698164162016475544397026000201440654678346471153244759998961874216362345333028787647301765514729958611289699759808060748795438482969210343927781910301287134482168911981237662753027650762706531359473235728150733421403886192224787253708036492660722883314774605395558588472956168032243108640510394980677996450226493810924735176966884292215583190227565222856794581959578309432752386851739025881654365806486275799153135677516149745969357798260932343952177490149007933151452283590521042315901194562548652722311079766078787160506644934787090669097455893668422503649990818990636247297887258036774680156106447389677669386124938848458359194756207366443455529142081513113591506307915085776426234452990956314974669193169774323464294612400803529007773997159351717056153534283466596269985823935387723135833158904220377437908513212331610542864111307209294641897172699562330895031018604655720472325105494266747740634104667061473158152382766530318711735074546484888607671404877572893143990410595024607003926389199301435620663680046092426184630374285106245839917582366237699990438496114164985700854225363288088160463472438675959483688922591797956839406557809568749238752145193067664212973894504521443035179001190761254161251749489825755010720413973555404575234629957484150377909014119653342516369694955949792166966210167101993760107854232641853888617668350865574629653429294131761007803505556191410884621528755541494720324550776716413482749048525796231202695281039008871829919856431368120018519548772671266250878578086404811570707800753093648194611199800127287784745361328472150081481974640401463873791098200668635568313129944011245783698631243847283226288066672733683851722926712354948993786733007177660329326099008493718237076615252284162128038267270407598223820669921645720872044280822759050830191267955017845542432812802563564114113011107253987848465830512437620130001779065942109458404923928984909534880537144835168234507556705542209914488172695638605754528869478143435435906266815501715276429131046913572192826826138960336227184175452548008873090948556092867416171175632187969058508813695156750604740405625850849347703484893077835349145593112713181912390316315237387739656014575988364447595346808370607111088388653690134895932629918330243987860679514265949327545939027592874439664116334266097695031604333056068685413673080969378592104600466266837655037624048960902441513246647771586793818403158962490064434713985656962266018520188251026118065037262552311122350153586260266972582620575557571305507971147681505044816836687318189829832776826393643671474899405252786983889911675528046648678195627552128999256065003617052040010899886398884210023377489437801653174315609810935473538289239911481738744050493257307424924943958821534804611979731669270350253586303078077816392681733620907584991182942036775882348165582665675647182471166229743309896699560431263556643453026334485426064611984568539840614545424306022924268281131110720613588559281539713077501041809606382265202517045483008451023290805815741848418384566497473434926793359329944670903787283480838314938678399762792260041624472515522128843938217972871107925800378630811955957519757347788642309001057488067667989477000910826235057843372036694532211722337546674640945524777865453456625375919985593157291046022274891813272084475806381397730182127002498049319326611190327857670314115404383468621994003834273726443540238232388907058294813946092628631188209255730127100912518540503352096659751852131069902675096741504129134172124778149580444279137064440168760784801431946728328013546729342699458948693710843584765329997557404260694657448244140579078538033420645271933655707845961228722078321006931430019421164627249640070354861203510695148921809830377128684792078856024611044281460820693468363578874981854496269921875394574486469425496878451644327565127199515029658210089955507254913260162659058761705522740767133127431874724609712191789981563776410363573668765184311963614132672301149640990673103645555363024508648944789540342515919001071665583788700026548690270334061686025482112473268286738640683427676256187125798993917295681890466961049119466527081436597659477824764500029878735612554008102997280691583677762944643070172778140128241114383127561565955827012554797086978357924596143117978576612942231105968347773062912742054503552604701198252920886640244815947660499328249794563536186881907132605154148641768128540972910694522992423270536987891351525569065216016624826133352809872059020148963991037243443648055013972724736573726634832955834763404790790155522614934425017781093561757795706130469415562883204430155678743875240384851830043547758558531652153193855741538969645175739777128012165564067184306694197321094104181551452500766791331671408802062663846190830050184316565846362170714813500210445106716816205911859125577605559356651237146200318341934432958906069426172698786290600843424099188080931992849386947078453558395100076549144100017197606497230459891259247462987951294002639596515321835339511116858942162751632620570084767889552953799444534844778546046280679437990916799979283465318174802192731896224129410775844394759651706933154031377300655754934281845670061055719561109287046030031189007699462226190254614993748931509631734047280243512152801592049347714421952945608295979588908991503633664336636765733848952028645936098544229907410240304939106232640646534768328572414901290547976673843246872001928955264338306796424452875620790210762038295144834082628810602663160064240140270442879237033438719966110258766325561281016568294734676162915329181338452224728149775701665104385568631896141209988217135611965844526407503523911516538341025833168726809365206560180749393966181268751874223858889657682461979115618977204308429561394258089873044027987293636824555572002104078949736199501002169948117447170349064946427969947046344339156055050477731703905682003259552236948960283115693767059616853313082331483443300381162503020623853517693841267770591866452497839898721797042308814530958884622737613708570089707380230621799310675588588480157328021141786717816928703804864738938228337315138244340587210165419298564131764426171272601613820578996298352315539064791239297826206317118782828139910958399662535766226577779667568885864662728234346944001895010010856877088713866963639461460902277711620084238415167102963237455373296479546692050680080800702099513991237425396307319578202000574794352295213270292821091375570784275391290290249385832901600081183262640041686424093066605930625023429692356321270122165146092762743742118127721123542301239614771530033325607941296917706250083064040555646188679515158807446925665047297576342807173316840719884191566298985384181297699920984032287562418795014788588133019105137861011161144306924988681113266521056077759924499759783935574751328115053747500450633679099273614067837169491282032790628581169110313435619578870829850747519237583714737826652311852154662020442623647697632354326187328848134131199758904482543362119313206666024247073525958517379041879284969439332534273845157047750588613086540165954297279108722236342586439342931584909489425560186095160800934430690798340173905744269712805655443040883707500776929012507483953463635879755102365478918434139235442262204578638845957386816067808472357215590243251746485595480020874758534265093455044676217293468743493881968562212451945557514887164820743874128368110606737285178466898032916160716502899425848836190501045606011690490283931801893133157238856730606336403453721539842691490501968117880316731358969727942775569802609623825746553562200847123595786576402254525828834035839133837341648849815702236723921710468998041354722549296879138734409214419232294867706704793601069871521247023814062916575576761328786687805105298851856480390189428839728187208675523600723653528309096199826762774218576702045651480692860947404428808766000949505578407658712333048315343752716969783227255638046304418821589099201086808715235540280984689175093320675299160388308326802560458284085500891139636676162767823945865073376771899164140583555147329311201332749017762756346871563347441784229160580690417280833361363074965561047470890329538561594855417308550644405329488274497405519426115509154461107307077427799639129947295472803446093521990431646867135568683492135108697210538937541016558527174681176463651926080312226616547625166095542949737868822953105623314529923675223848155778544301730254198070279102862767793390232741276175256688485608094247132810320834938524867881642550665685890250233371124860736075956144464518845371502778180158816489633568286992574467463756697489740320353345421394700824746872168929291506646226033713572541271536059514626775648023077940152459371082232329449339225499586505532163996029435618377071560004983207943371710701655734630666521876467250918438645709937343939112073921734878077165036867737579406417243802443914335233775314958755904572738948564395194870676022621885895475261087445703408901379142801595934690381080114264438087917994688141191872756336865837350099591411098363472493188308535697089942541553509217566862182855788713427958328748521899281855822349479526660826802586119730468109642420825914766396917778534558790619358196382337352386267323786145498998768962144656064684001423707047767841247627012690608175128345541466534167355961928676382016053907441364697804934805414588306647963235229763861706277271682025144692733134591210148054350441408258172262152116901391999585518926041105691817542952085786568981276982775859644529413149212753158061164531948535081373389611438936321280143067876492518424105312151692552364538132072838934675315777055135695408279251468837058305557335736419935135804720856457080397525374122047800367628409364254085105654075946187898106535007746890682155967125077075653631289215773013684313651955027336708511753216641293462327308931564808663269695645922221092249269539310276687436230073695363022943996228612321688639315159184835810337819369309527037256750226801156325479081163920969773657374381202639006455343581543552000959149970420588711546203674311476270613829437945333331208904438243806154876185495719995317383046608442737233135334601466169384778938448565166891905230504693070428321079166232305143892507681617574953279913577330823013489987968503957118467359485808392480906953115371540959779004298858717702055491013944831288973177979474215975413163287524036382689730821421712619801321667310856028764624793090498553110336938998374466090216582067200803536537753371187773783233222573025233540230012293940632557637723454026810742703968327938636034959388153130265551903422770238392294712974195529361542392469639782549631411604351617684318043611095605491251973691076473671426826483593011132414268964025171557459718378115885482434783517688054925449375624256408141753629599018834368621718118233095669121100496083399971308706933425047010962980857665952918743315655633206134091495814263886610188272957076006569510102448771039843983638047258254747320685963433849391977498080548960068721243056897043506206547155645194689437055797638524790419711951582021648898054367249408105339795142292085404862760496462467143793291591449931781423829415469060414712821491093409777115642788643720260674093856476591737810811031435533677169547706972336793084460975997428137000826703097191123624127942241838073998962052733385416347794246762299294019739990045725503723647620521717721864490342282659564292441337993858637039901825839139599161710049970068393453683383286778276303752288818103765744464275610789898990581622853614941676575472892995239086585667707755198527534191819505694466806287676491049399100901956092925890351940662040556634920394824366264150070250627041948423490537509940690756238285167632520481555180480387725575770301651399026548229866249942386570850043268921018760349031095244070964436602601220323434815178341406789475672089277861363143482120223773077308587169133777418454434482086425485927011807089913947648115042894863996989685523583306697319486069879843490684276285861690769804826020062162217185821541102915208329071345214695026212483206494957832202977586396449491685384892730821228291353546612987339141681285801748680854873155005225423934369553973250765705517354273181930496009093734217641613654381646190352314128385935888993059036963946734352768616235174001514575698254616349092660931004390212092418663171324377669564393213120199937737099730506310658948547414199318627380478760804143998689592772327462918904606927572917534253130988825777624165998907982879733967160514329826879586618140520369317923661521462950226143534988072600520001108513132869954608221685170213466709482687739737482876679744393014345215368092341622627725570791402682605827307599843153734185223761647869357133642956669486452741451528677913156281361710103924520972291102501158409032377315728019623585987924158965173687382079627447019005980360263277620835629649455284190942577642900457575965049475867455049459804640857417809628930356106024035026492384911180081516790441593888856294972554743736285101931511607469785362155206286981443273008171030539625148696409525216749760287795949838485321172895984244899205038428810458397571236850736244141012580388331385571863342060607348472090309391202454608110481436011794314475453869485144104796658343549113657816298555348651668180768789889619736305931773602843050671352987872566220740797359290174328719705133278553473237322277780413511597402417351202842040583963170277318888537459029165504392629927457360780636189478598921089569864447105317714871055052578150455751268931038334537877212259892654760534634928801746114674083482332784536405112202381018973421635406618356821137123260774727854652498262905432321267859467408312319714188742212292710069176934512796973230038130054503035154895079779978706589433649666140939235313320718172781482551201418052662769600765155107183918685191316103756746408565351083074190942887093030576577756507283597319398895196508231176153504058143480177975825970102513677206805571383957621806045281569686911838825388551670830103229625914538831382152709301817986679229559301624079837932332560109408864931312532801181813158593213699745913516910581550530230689974808348917447697151760370615443035563634831052194073086256521823255653832918103493464487600656685193134077066510195091729235250083164796531468317386698837313622407920864113859436483922192884344215658019727202745034081467334337554246877217034118686272777047649822370620459400768126186627749663547669579009619681940578437015024452712160222045104913607343063783077495096906400112577374898371202149115416559241231075906422250873320313691777892448087656169296445680912925239605780417289929427487603281263321830766864269865324824172657692399871100159142596546861064535527639407329955911204785739853199837926759592283006823673109314236202884969829570259405076354688691505417766020038235698725151160189700942932056761132449554661403085130737058008077119252639145774457900135730835890176186589633452170940936306156316383744473408755135769854770513672410459480601981843324673365396807022140368718513045471647977369529281160124258631214112572788632364196435423058797109931828006044503944960814351871999055269067598053672549510122140431306425659458978180593821663415289722811285995115851137164403255359285672421977624470855887652323447428619174185665063940499984412998691824806489867007647284003591288318941627129517743931756729480108943247430288934888477846898779333161965976088068157034409562236581446559085870030861146701721633838645967670071741860766498275283906906188223161047626066865191551940200640857416397598271487002700908910568688881753624435366593129045335723027000006095591561553359109265951378178883323234591269857671323622809398298977222418119809171409451449986159119661937949710666945882940538274152514954251666081269541333491782533728376168587817873131544575612341817394496114722288905549282150196127831975094080919157329905598151331786568597933843331094164596822492405848321090341367135570754033748525919103347669295734466011509486921475978316838548421117510701806593843054108061022454642796586253488620613859485881288560598122045898208217916489737138485454920931078044015365023417974352308097282596165810494534826602311376649527276891044947585717974068723224501828628331507120170591252472139788472146224651317341282089388335452448564218395917164978602879586328201077376877902522377329217014140301118951652547599448282729586973109004125288677559373125574494139599510346218100879731265203980668253926206284742290947846597871587797917558984535749039388493773447107976450181508480025036797068483896725341170036090731809286502779864543839495715990145845116444297726109612623338744942493445845310130739710916055900779744109438638371486910068478456361655055292486926801765311788841748158508719583930490783318343614520527640655651483129959779765397769613561245072599722892778044988406268671396380515794573897991900264714781963722350722538041260410820923464439222483146718081275218464318457412609025558044051378802497221422428080087854122665031257249851284961898763153080262153747808219823703501053348189777383376586175761145375214780693750396244274297620502546470332177151415068955857077820878531218739500887529354133942765483876209021453091450736735692132401544412114341463983403242553706735901861480711773890711773395084598183547050678997459291948307916896801355526666080629285561492460912765609152911690439751987713061829924963943014463615036875347824847696865447496390069994487167850313075167764486736220326079634149863768884350371478333242292146641199467331958269712303593777298129022601498288106267782420108781088329362732382096497400008303634126330619619429440115145445399769411665021683470014124051376562920968235907180492099582603885062870988533124362243918990425960894525309634594966892409694544391610678533361978387658028983630887630987906987793105186378849690855937502296916809879492445250149264213482994992900253773785123511939446104222328202869272835357133682781516184087268674679462836754761337218342374411124529553913897204596835203113401558550749264818162195299201958218398119359455715460982746123644050788456944441532619940137974968540978829702062182294298748230311912865820596706977341025624895286050709479621502190961375157048201808085254497208326158336650276990928106651845185147538973931879449822907427338961404583385372826988655181777595395074232943024281025538932210791006783307933431682615508287412665341145066769211293059850369459209556800850763650338253713243029688933454479452395551711528609466590732069151843533620600963416033175660312842539145319459478819664048747491058636908131443264202156204257012730738221961625608917642757445135166427171304336129606781351919156185703553713047650760853389032267003690796579278531154277301900002422812020413289660138725066932930377199478725971533751607864711941711475521918398652544875811026690523335122382395047459920927206844635665719752771521091604964206959279367182929172308320734410715635236407201310512462259504878900308248580792420174290943158578584495366737016696862004661229954738392307375612990741926673702227532144193809557939396329772717544229466870293137096682935403269506769878547563274913056947207164973454228552784259487450992101297560172085872163642796739818437538654297748361748578107833905679113173109315150270947923174301792645552837147449535537402917289794793352087578293478224900119295693825018989128133669399214287382525259267116376724506646957973275452843494289464685068857792850721829996299592442048130273434452493126866670409402767724172378381076553692987822292032851113821431976431777426994357539198340548852972637020321403977161420324078777654737405376559189953008125592393680597788910942234030277625254300996368343857942287683803312058807862963295887153364751026858965242389043276136940108073546306832129666881473182410451439926268618794858979841812292881430426323210132450218674559914666786943561805405752558750864510179145530577886820678883530341156835551896388324302839621453160816091412080089570124303342631920290876583520380505916100790913921132284379191927537439730413887982113188526220772135571287849676659148692479975212446016516628155905015203246420557292915871157115863798906324849035992013212610113204053492763150102844381559186796376890570120706586649103371575755929050813033887981682020970227018382291810142991114799107264260523719864394245466160800272566042391963925139884699372873912014646831784082959158987720466628780776548964898096635469859378528032432240708341697609878437371160863562673657265098413255588815780907511520045507171713934330449277073688544546200471554095669548478665938216293838171087590245103902844138501876103202513134312266786655394313219575749020164630590334683282876081363634995963995855746243493934337727359843595967841004177024650791881247207257334898054397106040018946167643205599676253335853364049652264566618825949642528100356242077198436044123670928041563724604270762600062867572828033601535478342034504077822005412088636551887423986324129341826486249741738156312867579663514062518524913180802037526105984150969063249045870359125500303797403838018415283079161515175843302493258212089925060137092555372502905799096768646717047037776610777011884684517661416881282368963757279502370516591406952371514393380398957053483716503805554385472369813459056708730166629903084888445112299090630456303474353080822200758414900400190268087523020627978088998099097856699258097337976908365435226311648563650664697724565947458647745073866045346864178292285823622568758038678715700462798238825186852368096104717550657867509932935121332348726707769938319414901779397296247181014727878221305708643882091417078503746531819547055836296135581884872824389469454680417574903725241070588917865557285811219148951840048923198161916273408408456390555922409680073221428190339200508510681291059623890667268952459079794053900504245979419547342858299802237413127869711419084611270372634129117794277478924485000814387597565257169752661210425801747505859976978033686686463239720689618431620077354475621372776404583106281965301176877945064334162602480086576909910012459408553199919062212866550666984861424580363608605912463445155083138982506241658091860837458818288246758305139438177452488482090184854254486948896638826795399610920482987770782745022846631997775328926500978537144175155878370038798635121017238694015595738502808976665374501613174091359059800685174997508912513562955724460807637175938298253055482209539832027490925247865580348527180020754324804372184176943811966264583108793463051886543909642347143329820680962331876552690837742863463609538387325219512586605333493278782965523005892645295851883664814830406700980650912539444410127441273024197142286309600139996120929292315010328763839338777828448930488310591805619717964063437401246339088256776266961407807960290552072081170619856382753887363780658255893856748920204882419471546717783114777171532535605684826566490066485470884574984677735819224205303270787192459385048406124501078180986474352170688821326040860361889617356572620940064343560131687344099293750084281622911725072842079630274503064214777721267891044061868086536534544456691756932856549697723095233036230791918438510428811948179961306888236992092817684221415185524355322916648335428866433184732746580991781260435186931733562078227936459190563673815315942837475952419936133295977566544810685831892919300393278646160092797642991547142068457285330789560903744248291727732335241529757447333952608332345876918792158179461836840022680075182044306777705410382001250224213198794084731804513726989522325722172776558941072664208158781829137309533522512170943991910899571348636538111708038107687194508851717690995839089346061303687025554658919557404907250690025382548005445536068432841821757606257133293225549990322620363967791050927772693807016411103064781520408832119335935361119386695284028553130216706365650360177535702462713207479661773232362626969552350203738170527933375526928462152443142959783758025633233068059395960329887953873344681005068041706141894420809640862984812652629960799844222498621920698007745291984997073072054931990639273358649858425068266461728108135301420722193967169528941175223418536964326528137520376680963126626151948041003142151332134113006541651967695543760976329562996679211925715601158246964075325757996874718475163179489762316227213594431259823085263761199769373991799731196952005689547880235217705579385492299868472382778035977144774494816391156942344095838677448830726194370708507570279048771403889607128319377081482092738982630622497194446365323506584626899935340966343633277085072235270968060993992037535543174301938939356151639955525182234345185666568351619274180603806274594248983625977871955706479573277829265828075198184526302020046353875859365026815544124715744931624708006770221465830604029740990922683259077725556898422428831454476765198390491935812301972053581588119471685326603995350342493146246040047108510898574929850683676625884023036057586075851510819998470599314922895690994155047941909080340236783834119467174634917107035104899207750705625574109483088232810397248956087538456036929334296353804395782787841190810398973177500894538653996789137488314330805050472321459551164006648971624350637333634409913671433577783013210006467908181167274038483494319057146960133840237192064555746351800821862621192651303604902482829445408308155181255665860337176463346247010163426819372513200324870552455158568828401010103400597152430384169311062781680444465246453424097065218083922494551960912081121346000356910734966115970994923385770600172446599787047729467074487739895508301084743278792602949950958700576709280330768870749095898017837001690814523238281824606559609646467666360390660711222731180436640901342577288514295732064131185820842042977072880797962846578112616370864427933096625798814589450689772498630928949682408962654708781777366201757454650380470317760134957654279340065535403362352586466785412676422398677514354756470945485858965007823375081127020546901722738087994937521862044161427339165753501528950639131829957900300981765050261285206432599104962904323236388828542126113562360207978060852115140328585426146723037542372038916762691119878051741893125886353143703742022300193517330595493883340188591169200528274017738126072007444285387752424142617005083060505101232106934399698582534569810534996765104426220412414393975809910894150716583360770286175201688098481891661806981761165162362627995177302095276003342102283066767816273778507008483456484439067643888033001242540118680332495306695898030925724223518183787149882156071461407941595384572291899578185146922398892043696747886115415459837271907918076972658305740179246874852461163548563620520661226136999024559585466535949820392327057307878363082170273576167005785012087267606904683138214649606508577587288868361726992838167736928033311195456626468792719306019574343085858762522972881173620497843010942666851090219088282182578499717628305968027596132417418574231860557014538273077136453764987076253168026280774664261945777469862816570359948592121091536063968007402853477365342272513997455229502617920394315796436198398414944982606290169933819124391723724142225127922422551802963867608095236129739802698668279749145177407594338229579760625924045213348251799191775922924808795430657215585962953257341907195218856979399399841059716340385553352817569091379877884602103597153447942639566519583635051856224943506826207915646349902942818058478502787439386235945410482327760319475996136582822992250949421764457839619176518815533693292893763088868071762813490904244997606669963820214978582773548733906077423421471526427240150485576364199802501173991132820042291198686373567188155841305338710660418785844662736523254596580438146053776680106987922979935458931058573731224849247615570700918392704834927318892298605625578089357755046619372643782920374147396649263050409702313260240755522705069098070819054054474548993027045387736232773218781456759565203084978900144347176997470515237179459163219735495489534362429988339626186672729664413951140674363488472535160881601710860584451760153831668252498748895886065554336855532077307359620355961026354900635617091465863610611672739252480061515938024654930745204533087209299856370722944230840981369892579345635407044638939080819297225768017918256409155228681596348295011336861202088610931792199926613423048269838494577241563924145642653511267225852876567350371311185035235904735592284292733861591349509382685731967574050235793318291773583958870041469401229969360133349249359133035116376667363191577482182875683152100473723462455637439864512906540711421400523310375036839923077330398382501073702789070207756499958952099290713453759144577017648558465531102563351274202647223842534576840737371161334195750808847275333369306438873379160906198084808370574569130246809416513168669087344109065017083316342584322093670666085487949028280873807268480797433386048107403547024028086171721838370407468968389874012028632291354900838576518010977341642382882806969487860041239864722770974282051821800674381300869672578712013114439292962491819060467189153547445740757365311060268987257576515600132992157797872315012285891895201929469356212442548114391255768197903903177149216369643636220939014678155001292518670530661516204382790509587536339073152778524647888633383446678981641187855488265138027467958364937010715554410381489671761086782670458677282177449485324883989763832540084418330272489418270763939368883039832179190474143742881330824315650858488226083250831499753396440068989768122729741844513549412897107529922428638791774064080866275058559878949664781039593449100597239773202990553631546535058530229267989130604059784405844664393619398940386105527907194772310820871769364157917674185138265771811823658447603591913682502514031855644093959808923965121169972733740194729184061345624244505434819772815137834373715171901852787225165912496344428828666342520245902005494600577947418379481813529053816784843127551218578979429003645154739071099064850204890002326479623306358034216931989353976407559292612830276567862697799559097387597651686306351671695635746126389669196303077840842568017070196634291498889599488916910683621102078117967973072388908138117964441534067383279823534544830373917904251721155135923683630731297032488834126906058391611087484758695944772422480644087171691900819276740256438702125337929451881275725569122655629356311656513458101157924433297189872538278919383523999144438246303442716425073307815793828365047826759861446030595968122098737664936876304788003354155540645335576608779182786154469323306870865251935511260436303544600964329128611823653914214960737960100379814643344594257817026797669044196994307347823594303963502051555737233750809891060880857251748114721388596189092829222751759569498137106582256004120879136204753384044569656151001814398910638506666785840951087892651228316187312777664646784837528356474222171624870116068746962735118513094714204285130175853276746971129172906701388251438050464303378874045449748952821511019219942338469523208421421477146814843690455308551897483711953543116012417026905633690080313843955220624666157186474490263596485227243899911764438507604120869272745104615930488626412059497585469279979388787739428938283800273453312034723773259866440486996280940996203815008247927678611527548184323016459089950461172001910177690050347055526243528911647976184601010906368486722246102916367200934788225350881207226851236100313659008345143365456756056204386602603278808171364256963797376198257862948801318403864277799644114345755957440260232400979215714207286441768249831224026832800258419468781377952630071141354029810842428584743402564209471163786339158538740707085197155056555739840832660285971265482160129631191864614163328149954160203927532055775522998418544690689515884448040798149493632876894809637306374515216931219687045799327744545372717970377777207901758635479942820430459202256913249363782737141459366646618059158488360193345060760917253846771838126493145361955004904557096801690263544592642844131150105167167138480033552604703639638125210844028174649674943276824227139350339949712475841299942965162735773087509271487472774216081918107689979735469449345112920771720197878043516931089009967737113942191267817676599865428189709967544948142698583820584110424999291811947485032119483870352103446507122915265346714416866458590427270712272925194913713212061126856063599042951407406887110550646008796114935193681016079938805110345168474438395438870310357181143791825500130143116357338827620101555405950333172390974756496243635023520931946811705540662519902946658267181757568917914263419507234652384754942481498169817270976512064048963420325448087530977237980720152898581492663654548784585606509991190582094082484507731203287352559204627954614693818781178730106659729895905245688179596890265756417298981830903661269628723378771622143828044442663341324543073332433194979822665098968229809116799264054524598688055059305003755778926032337442399803184914813037775147623790462848344324199286322221668206505710868167719429925693486662360550429512586536767773032707481797591329174633852136560211411851608333690810253502918634130680217796387073012275749833624056758459334066605378754825469919286145151863988994029500197450561257450834150407550544551258623607462164329692088765446980659924171650107981683643864245503202070840541190481296336307494109381826211024526262904006966440914634525342239723018865193537399591552033904088427741132618816311927928734087910626710469561729573922965513445276235326684347025058874748262121175229035190989595625038796794960189252596307165709313456232946847322598171082848022611188797834389040083439251465718462655904133561382435532453328406348130387683567708413454574668216702744304374206921170183802646047800640097387319244993642032316865782827562848519828476667235367774129086051806039244161147436951674475181631605544149078019725636672594120024113701815363186595255904068378264071774802238233281027117110898168711179101141761195121105433394270707561313906920621560819767019958141082816591146374020884353932752578449376563062509669463859653896837887447548552231216978824933582958593960835940421656094900798190040078113163264473515270250203738043177627106026666145477341951534992601720307440063752100167420577037127463937588751214890636906022401742703056561714691248691567278074116983471308035777695216187260191881630366373426681797396811079695685910916922218533017723719620321298240352766868525508506132437917720099590223619678813020998872300072900683545397122597917610482035467771241679008917745895243076490547253526333335257821325073855427642756002934029275039898292015812422918649179066665886554228471402806463493732860827876558351990754889459922933790634776599067058129308968125973078654452153263491070542142477592056906882336705757439526059305568924240688396423307458717656418048144069916865871923552394441343781455405602683226940177238585713077071972505221875345767324530867528479910801810399998030055964333873726431806935213317281143501570941472118496017444989264364738658248239077453467503014828724339765076955043581487828661444714316030809618360376485223659522127984522534406091528211935926519391328022709303257253583966382278800975074428562607239147263454651231620333784074847043730643473993928060299837220197595350875204334266733037675756570360341161570562142590754639794749200503606427716213185396284726595094938547052946469651054730011439698020808135791184071950953846377257797739460295407580432684010444553294461284745799486798300226224448333483501664803040814295919615869629255479321056187771775357239740592274043844914318015555027150741516395648234503547180045623918622043405750547049900388964912269850892142728120579596351887724382433529441130823337451693767720870034536500355133685683999344125743293253844930286616733369859750936330185067644176060633969902309568317017934963726160615868819898812198319779266154075104150480746738133124440537224675996331747841788571434401491189215854665892901372515431120106805185818336594233887629868115224159198552319712136027708117105254944002409060958119648447495245824135188543164154280254299856527408955639410049896920372208892945967446358543498189267646624768023320753664920592572981044793603712317267603227193869011576377489468646954521514674281015653585666139161060588038602150438517436944528257401797440006871858456814702680529307658333264363139403184314846497592938736703624922859066595477602147766628035738421445096749934032236357316087301979699335960317740479876782778811710739648983611052109262605023296341187681167748058970577232382907605937004540669427924899897243137979851698418357897342787281655046049203545068114348913979334409281760718964281212533739780055734796431394919668162417246757824000683247082460940065751317384486379502891904136448598406604398814926478911634725916747972026756214058449619336813652535292845745070032244725329648900443582358423379398344695996907156295344463643681359301860565860404225893032049678484297110429482339601876678315637958623114651910065441918165506589742631851426478326011294715550361173159985860443938797837337548910329490750296596285039532900383479149117302092904191252811048208744256900737061474303628141417136181464653944608596531972120420950523095785299847943158153018590548223363757532774177273629833386445181491143120216887358041525575825948154516419445302650982330639468211415777146550316842734851826953293455532266977277403262660474759588004854063360023360622688137866344175247093189775277125945045591508426645312352322046852410567116538504466940995798889857611995431050056721161183222996968858938708251035248481447575727144548457751826551269516750039549899415226140991897987366219950678051038708567797534646745583093108309851145646696081697613425613281960649486206886639044978880137208632994270195578798546534093912684352338779839418289207457072802089172640280131204302402430476357559634180012144826815723784092020393355391234903161213523339653273443803752620864408356389171881596885211820898514042909536865518839252607189385796022482770734510512732340891045268777823990738011622536199591329546694243293077358803462303195410282187423218852580505474363497361774482131375651132001012601337485422129594055740821392985094347827367729640977352928771213879954272194808493962001144005056880765124041218018072017744034601593424067676402773158949069941463418980890881002397092526138266133203791483396678918495135812574767469774925218688752006425032124208437481409076550212099055657813000648569890223165289050021126338211582912037065403858473746567538473127586633926106688276709492805678820196888246612877277905591089640134016845953662189952485456226771121830556365871109262478451054521873991131549962360410288961396084576268538457224111346957163351933659617624418381955089686941862666473608195113838788953982659105775589541334975832746260310548353134824885853880098696249251412983619011126618595461626874681120951027477234954581788155622143382974036788791112247937789334521842569154070574127710435400296377664860838678887563279809845761019386672095652068386406032695625714711630132177673048292058765719326190619122596401419445804693370644406165779700290602330954945661753244299322826684971184038288385641727321641369661220805993968046331973345438281692670834462551364884793624618117325126537178618027564704069147110944389227214997602472168089433518104293169127407725590396049531863660300542464915245538126259261727603327115869425214454705099788138951927630196421384852172487860927773106846048315982150860601651171699102445135670251825943794076799004729861192361860686321360206906607366724526918971892288471031940805576318123843917848180941254021880123703444240864963571964091240365954828064102020315968633939874452043110519525033889700234578938138426737377515799628397018698947907337816867060251636302315648786347021806636995744793842333022462160618843724393974270494708036087573057841167787505638113942531934259036318300896787107443171885663892599286083158583767479364203208703154894563914178866681770204447949423349856850746743758796705561594659121701560897929297906982503372520833891433338441824822473285257393960088960035125598628327547844540689204903212666675675526318238343022738245870058525307202098796645358576049211343822100173499505040924826448869872251168116685023733259623652583526217837143009986370975003846022742563793259050616060683299320074040874081215511910189623734197372081878458508723162733022059467588269579381292837108376993360888238785336271976916893251796701673443664439688998232030692758405941950095768335536183590419492394409014691058116068852692551417693474443854448348970719805886658719717035682993815192363957751744425090053933135089893386730083103568869862654456276788397296822000895027113974929842181868685822341493136608744702321554014913501447697574817857065539808072174118958174903701274980233238868661450309027308296227575032784145697089111996372869342168102405730509841500492698183893541064720879786612253423087440245052084018009047394917935645662661418707698833743898381759526748150841449509279753399699055542821841300863527779434177996056479260992646010932834366811445455066250222880239286083240738351843158570857504435199939681830449544855912413898699563951266841363326027629736437047925728212410728024362922735229980804514596094648642752626972397537322910855911125891868860492490666165383084036408389346228335050960134249701970785378662381350103491966247363618587646908991155336571741286888846964176500928450686070793182218583412857814235495809906632368865827416523193875713696224597156580320338092057981187537462271570152528397525501421381542432367788012411126742292892514532635242787769121862998322031523701861379439395190590755463836225649423876665614836577742995044074297935616415647133110913133298168548299934669833880300426629450517774169399348664988281528865332617608098211508946643330406619093369767837418494716431571958379223563013394099225913832752392418912525678407224412518511364735150229932928992692156477484535109620587757432855096790794796923783859417289375429699155564700443979257067188013010556844845046076041788238444202102838558669617159918793489384433712267105667466615270585173713422581895848425682643447828370673139390450389009472339919068613268215620025314662544246177389743361856892427143773550834155002667354375095121468944626056341012542878100053911293531261606413673253197386271260217204301977025259322467679852679603190998007345309382209377754688606758188677426234632442640059771613890817727271087817698381779538540319971825996309143315963767036995478311777807559715669318370310701594810334157629536993413785862273853119859486677235020230236261023152669944620522069081758221338879895865376014491470247736449332830984211887423111911622199564120379917226795493294047847019726418413106952041212916861906928871537423119465995521488505971530388777734977310389599771764917206205556790877087608564945139521673782598080585229460101943042429481836913177315339984824395674014180188900587412937895446166710187191599930073040065230215128886580004171043978938794934018134494049463205991337559272168192140833539953644660676151494923632035277217616031693563239824473243298949540299359592307875871998418547454408209656813981363589458414258875472583797044979899258752168640400835928960593521807191806280197440687186004501757295284371233883368659196531831482464699957414804984565205300463350358822973401592735431371315812602334303058484633369553047733411255320044467270879393206762800363495758794090870425997996822221798784694769658952926928765895117747708187731154591882986618362013043689643201793126721281215877688738540141329065386813233409305490238089707159188006640371742852788595520038329477280508327871931715391312178932239689018250446185392005800226057134870834294966340785654023213965168585937112327128263857678057593193207554221980325646173504359782635608893146415514183268863377691161854149682686437511928725640616770177748078372288427128901532106867718117293450187047285103246912114044525214619636266047317952954425313105634792401576890178189460176975482026573747699566342597917273512073591413292588303415646903625535729118576880848932526631948011701713359034175055859198058652098669513238500373653242032322520518661913801449673778584867820345183710660745317765879414435405277784129978534936402997103445166474853942218730387086746996985265127463641401732111542359724593823304119309108664881440448040299823141502134700049471438362233871211458126090136673408989764336225679204761857189937276782807687085568028323445118870431492961383063963977574205888071844823978490197362054805151873287440975236376319258795763081400782400076277034698009345004377312007089663638785545215886215110444394323050785619691972129995667484122914420801789127203991934469775901116689167814926162919980243196930386696858936247002156123703096546973295143559790232716592519459550641069642048515880215636840553471920185314990017052937206861335659937285100466114202019215434702123324262684633833289848184382020431864108147841141694165429562953301900651054574691331220427571585546200819738505577608649459246046106672300546566654636992086120376306789946171481820271296079881614343207854470952510916977570306281984710863587260118498465378775463174170828241322502545440334684008983534564050158029808929408697863345066542488334284143240165777275997637497505743964735198531641584856398583434663470405725245079686624842437434722892540696944538995489219955289056629875388803636042305110141858288626021622471427535434959843449624636569657155628892770053653527125645394330870420234010071807137431842646150545850790572753583017639285060481499032091879801946516313168257703616386890457048737389473916123154989748854143270196687870842649710494270134890749855089021111748618256659931187996027719373945974578577935602405227373503135245541798621938123079021777743589010271658620915351567089989208646405161656960371205190409979632668380223621305751691986182926369065296127557137411978545614111745675757527150691787220190280493582623998347198351462071746460488427221202910695579874801730186205280605573379468496974236337847836024044169467116154187759269364820382175041200510372640985322427474181446397116947527226648402189821159903669598014854764334182832253409996272022007990752869274277731792287491701872808209968551537147719373922340302745326032433455370109450456123327355514991499075146505544068582812812745158202997716306065599527290968929810644236492061811274716018166505664773825915280576855283911653878603885612264383950914173398123743025830116216509146502051553281136474215342857030425060985835360810908239900170363363945357298287134743585758787115686207295821686498702965116525932983994962943376965105758631235602322332378906074278553064342340953847095965114990890331028107339940451318981854168201901816609063071924070361175584007808982191122578385356467672355760164880841515457564529567858031062042201344066134014591550203273573096642577874911575455337745918671284684532917166905237457542757771680299941699481957145501903063820053458599420954125563110504188281558602670611228161390559372698531127223009676083255918402075126848091476847141429661113258153950933674912807045309599843980819855508085860790387071157629750899601360160968760996566727601898725094516456975168192795713001161371499055859137667202328199477655172832419508501352079937970437926904869534992286406590941661844571212830635573837726439268021465838650713575095626102933150328703383197168216437635905590596436743221583131810848319580095653301842851151775642384717161641079199321879415414900492150814879511360169733551578203667159486605541800622684319700471322715312396540968092485799703882446351922096780458633920714436394741882343261527696555597094133436099356352215162370501074886599670707882320575794773863108256390914563878901083305973685993502947491374681744103810439709273137232957572935171901310603072739537282465478028244560208090733073524077513061800681748955603694905413528522826374252142191080152943705896734194124374914635475528873694591598057843407059267792884822229460663079025363341453128289807910360031071642104170736363762054729271461356402114224565609039237539804794487410587112190076771039014277886008539008462641393447747408596928523547137245712042284497229984035474486657253584178037510358407173124349311045278799847508535626924195352294926723043316496349464204287254824441386839027181214715277408058516685546272969650808910785078960863120314297071008582847835339970437338085444276050699064490056193071379506391441750645475158760574288705286648744517187132426739792325071256232773360695678818519227690193320052336352484708219784415887784957831261506676819226023326838812497258404625617164966920074958900534819344787274601728035304388725229973340131034103943146789939693562800476505747062730357020508617226058220999601382451754784132447361715713539658173972675907572958628819270669486863084840626977702016602339858302761690817579135711126019520500466840415772692455721449135592913953717039303014567641653632005607602560705742221347283691661377353422634625542324102737534783249122191440915115063804139513461927454148537185456048301422505290268731377381156819063809719903799643953984803969976379657670155621204636136724896177056180115562802511451526131359423317820995144510671674571530031840019194029357279149791808418883851382874139779196745078254156043198688737742815652869516390974336156372398918381386547552749855236613958356377532073551119337381414051638534240278533455924218789275886597447456680004449996873653833501974138559366518760241122386552301776830120912688729027573149040205893935399444575864001088121011758792297958781713903186222074829163199281830656936084776462928506430623100032023848855001880529187605815764566817398573217055553295070033456141212860348077671392309128834959659674850735132355783115093945858978849725246489907435517926781310339846514711257625996985783362643565511189890263770744461342307399481933537721674416435068057477289618281699799046546986704805092826185348900689572895105541019954655590124106147141028870481182031905286989824934411818813660420501455576200048978927072793435628150234887203375546225787840397960984694256138754772141300961535635211568301046148076287619286743944994175048064521150021112433637477537549459892284405760711213376069982984239561403413184450178357523671808724921765587805440522825702272815345695530002562986252831741543936493392972695344939206109717597673340491103895172733096678647339365093139843508782414464024294441017869804253306302925424136650319060557149627730563066234797586553235679026943173954807584119479820741053818735506223790150899552410095395096024097316446290304596000024012057706037958735668153459370273867849391100000643926445233784609205927413121482983398611311705732918742008866644410320817847101826063265264572269950169270693289450448999624146318342867441857769823276087370335749963902793480647113512939166337510608646001913095547891710231029182965260235322530029867783135101843401804199276133006284260852684211551207935050387394334540680016122029583917566749690363773747586531570978128298427772665665425595565090558404191494085609699641802390621257408012410488639482715444372768758216097220673610784772908411456243768243575898304128311106670450358172805163139123643868113830283286813912662015685789843428678258403058105117438760190101852410075791322578774923228267053965344707208852457926777384523366552028770910797077381478799937126092421357083531338708159944074273007169422290662001401061898513789757762546050231179399732647651661112262069790458437982606638620871176681923146990091972981922982856302984091317094922802390270487132918280767419371356503369839607698550682220978014765712397285624504713648894712252840005429497452021876517160480875963096077997677255207569559596371578210409147634889276120207685749785414767166492071924815439453679490579643808115972933386455110876104497264133093227299998330449166192243904381872796332375658889909682448493748431009993739408886653845777329129378708503870522962184127452356705889570012433542724791950892383755887454727059430181520990965174420109157503277965514142322435576803773472181639338696418573879510571731730320555314824386724862952243404569464336231824501422287267348053076981169131930540861073246956035094662699323711985126598207432395077777179847510050828699477212408341697541331842597537105545523927851862887489607232421909778868537218701265106036168252657824457937633573750279127117427285182691150413903846926187830547149138125576529199344997585287309751941232179138019318630562332313809126505151812652054032317869476554911296073564972685914986937431392599748727639542219250868775883179227535009732337406813704092784867738326827782316428799154425634377382118614698493292549322617364290445501091863267624031166790833145049023773598554201454340933133679335299789390949616076486356973720615560934941248484588225070227919079202551660138312516978692436173731391189619536303972149577285872303274443524642798531827679989781758766370894751126368818881031595459441633423022391034299239642437127296525526287186578381452645644869275057114354908170914965954734109791465694714912268600378327412042322694268118209399241073194964073766205881508369583688843051664248116627266307124784503243092347181839878967425115503246176232284221034617757569708566417266197233467217411898415491161274378803798218650225610331237550659090509276693942856621054456593071101089646005864780162336843370764387860026607434080954620717139928264071559023840573897031045256818516386205712262905118958895460366564895694612776512954092626407687254068529521109963425509838025910036467434262129674705227409863545262310069245906729848490251590180480517309731416796901658637648380906891075747054742894035382094581319468749096845077300989949450349761353266440619653695062334209317984174282817602434451194993130666275330489228714011620429973002824729638322387541502437362987669168970008981290305760763556567934681187321600307214567465247041769348130053252081083354425394505326285185160337026980816704086570063121675436885357513103227297339525684104985932071134295350232949269824335984615685053636865146599215301583960634228570577599591960972944610263992312110827852925891424745189041502157133687831599784559197464506016238106006183461017170876652883982798591720756778719661802538406352372494871155892312809564971676061508308480385761978404144819570316500515667199135207428065123419069072900789427701889068010242548510761537388203170226726998465593238932899145728778863790681233117631094929959133969039881824988850154530064887173235219963005003897426527103122258045863295508322328437085966979448632786665316762471025294570451914166545791238155703663247084965875594923975444640748133497257439306633725632190483019358719358440039174082835838874071108533378848501637821434735565017204800484147562906271523154564298527950876413082626801680389768424936039426409044836095603106612489364527031238558432295064271551261680714604942510652133259741283227620312032671269295671880109467729017210215487001791027620443613298380007393042777185776547671366552256705872166757652402513715296969435024913462767528386196709049126723711529699304978950134993760410127308693507186484371067170966373370379226612328363684754576888363749939961268718431045327862863484384066238842841562042683495733595609449329922955018690530175347829523822500376795859073445928650270187051067976024909495368876351325484144485837078052536619562963795996834959578481887546586550842350802983702680509613458362738238661157344493290178199916422353050208450486973295910807313227076588474568646576561717649806153930170475680088479923896625667770558833994512881637269761411627422751847914050658798680018801879183606690393760457024782838445199368285644621817827334004686467979033859968302060681871679715227928393819848942837773239221260951786451563358418180268964668137651977287080406075934959719946636629948480841092994516760922575779465436802302239469881262356555542558421053201198675515394385588666942048116212975505465786823118294429054858909963839288537096803294710402500389189058559876460595637997108339756463751935468884834149144376311157276262072185171687026716531037257955766498049127212965502184541245084668315550814859768667666470307095553670134376454084117662744165066352000439573363985472629703292297294798922794694217698661245208929150187162128866192631843240072679708504029734012208070295112742245293151592173796451083320336042775162924684676148292355184150412830099177703647035389614353854595906430285394446460967654287701702741437630556692848028132772356103519671208416587116984213491056461234936848245145319336257335648391754898014407912406147769501264468995634254581721686677416098294036092550333309326753218346364287248354671201108060986264032746063335566553529285487992541791686920456124065592966006880672962166733857605258435103140437875196927454163507911821495275426129582658736363636030643193924089297761072534123219373644323501978490218225663952143352726438799397427751614205891317890671952829590130268799527480250403534987731398108001436457672538818282116093564673328575450779549943664311474924803150680160899632988513356542033362948691903537881021577240289928356059865500325119836979703393795194590585585766521773951126896147635681786480429871732503752669148387917244648756089292624243300426078884054078725147283704040365152599134421242009360397348491619207098965343749808478010199729006555617341088287234552326722992543959601005324931814320398997483681104487311027819925433505651943929654439389896110631134835029049868038841502624398612336665854045215195451537764420186389185282114545849742005025854424290074378319310334045000622487457321331598644529238665536860438742423915490677393838296018474704101516867714450316924155401261652103497109119452065402869833674246894953063179690767968588691020812911766596045105289409721088923115731205819756685698214451969891033311433747368086515368826467567829349426559301139969256359010681468101019201565268293000205068465972456527243188247020575299736582151348404638628972356392702146535997485593747418984349721419053296082258355731489124143778979225616517719380790542933381046818958640189512591706138296909844845204356650344353885282782110454742979915151884024097452431965594014565671347100417839400993240625313630759146396744039509919685402088836240797050333110070893761578694032355711186679765407373201239588414605276041504284761173440584017520645530434501396313880475768175662246172297157080215694610908038613846393105134467795515745002503841845237482978624429888343665661762924210074587299845945394456093922183242776875605021627289365449031117928437092614365517097133707004976131665344065766632337070264404403076162896504312498183408650130458261307278717874678066431269992146272601267046077089083839147184371314498764304065109424664717666265721919453112178695139940057687483120678449710208866440644492455348507144950482496645210907479813456349095496452761942260554605091456688827547143117531829845809442770104204057900216897901042466667728006658013012635285585589585352504174667466174607517810960965125607006996433808550190624495183712612417953460664279023869345579823751297017934895986903877272392896348139765104056062510312849873495852358382470566522379691346181512259521882337896254276745039126732445621094576118725741143204604816025847100707233960444396577967806471413675184322274921251264878619187018022932816590831970132766816025274704500116233852328469618439364415254914552120073182830962038279786032774558069665017178273818589250551751621345906437947022935081383226529242592951087523985934797059317349922554964265205590565669589835560030879542681036405788612726733640523408263948276627200860554618983161105379330322657731804872329768812321880553903152360704490106103765770521043163362564032986240036894277401793196825183579729237751487767976178445965167304787395683164063827442023480821491374301542181439213077272080455627488738529679020387286025945962243837061252755047708349015557087430026403818009844553539161709334143856175870441123179059400109930184200258197587678731070229665369332554460359470571315531271257656757881544763259610996023434867360306636012688934942322244742629209566859788503743968713868114549395244040541007719214407327086665330190151994325371701418993028190803243089501279863138195479172781547824967008357904592629942542404820915538345597909251683631448522616808875036780834391312051207055154148571014402378983727689049511759433165406089819735370005510890451118822019651875230491150382488378657544047250256591500971492763203765575097694492330772913869162894823175334317079391521440165962793869654103846161804492222024387695433050380808062620856747223542110957940079249246606855157798451529387542207061126940389324888437479798117974297216131519811633414112073888089950639893527147545721258071543210223405716836992829425420997882422830855459026159445943290166005043905184870391999051705646776351214640118679978318564858380395582520434596836012361227962515427393440978874250225021424316220031598256920519940782034526216487205639463328133052074844360002020395794439508305168007508469778450859489046312832942489376141285783770495392437658033068034094156622994360384422264622755735057981876303432362860617586896374385944557973327945117125925768589059558371491378803380950893127502571857715485897368783676436946667341296727405493050580486711969336948947766548565208472910720327551846604979722991594626602777768408282596599846546523242162247862491829459631572374819249420507730196182470760061868077030644517839153732577160127090218078397754007119890370248873413085438290725711406133302662658020323428722073101695654877845262962436912933587759090231098614863264252511241674990229864677735761151117564399700561446432160331965895555423600035676995944008320908426869992733882798149536907336278232450842884994932707922405870890209236719535629172223102792083576046545288883661536263258474752899832877011565612916116353248826495735892083311910172350749020122866153321400388617469090875359925312082553851998257388455304560373877099759375455275580660916369621153945311838184990910183599194441679885975102525765426508120469741043752111034057261578856481472693607935849563393519907075537791924647354749130938532080365117503764426276052205000302161251788564245417417586440158974420257971723908783530427250008520565245479378771028751862729825129016317745776464718528401140217108290838935212003310843797758900653168262591340134936074315257757426510705330279658801545577024982171596612905494141508567162563351654639494516328123947493509668110794729074414812572329891689888187238553784258144556203038824601492840481662503859900423019398814172273250098220387661894179909592844205184104141928275185103112834831340262953398528795997900073429822964743298414158719784676494739423027874908282311001867220525220512681544396100888710997871598639546793958329697054580972377136757839159663106308947319904967512458591451697639499877404067340224457463290136603053032776910824173696490779485574916901370404168995522451791341747235834033022260262000705175153830336930529100796280912530334402768227917215377725925264914313401205732990907437571169426027869878639524282356174329183888552968270564415279817084325420396196544250362517247657383653541770561009115459642283623204446127953128504530283016948503209798549000080772495401832759902639197514198670957475791609091656872592970545936294424685939987134917246561534046992676519293848385319894435131637370573340752770396049671297330406042084191041471163750012466569000077455926274378992059346071646719554676215025532171116153988056342208997716199330816935116427419003648050183604338183937657205425327866427277510330057614045611794919416740285988184177271195034018206748475127246998070346722569490541826436855529828110793964008184000355354390319445903786726445286066970530782478143248292681506631518551402580852291447655291858622337400602950542784072792532373873276453421921415085208030600964524962212460454092966875396063704843775791024991490892889964107191608834252227681332604787046670687566139860831130023626409981240668105917263063192176542428362413914927536315954668839893617986550376273445699383128666550836112487218131935460505962032918358780220670811834285044802932780207554442761408442448221967475075140811072423599249603550774003963058912285063446729748634081161954247717609693644306105615223366245936344837574065282646069644163293520405653945112327174775113862993109566960983909596940784977469515365504635169810474568169295266320556818178425925832263440659977427537986135766980975344972065274016261191767124408172464839754894294133187026630289590884637072853016928539995344865280649877326966503510647540061868775887569878171501646880690011840924445475172620378809897087795290959478056449528356761369098816710864473013584305914439250075231946008543175808735512815861987768244504470504322642749668591706229011931979781941602290588233544244210274839832195608902936511235305287766651617756640033846550129089856328871052485092089122040435001579281838771825430435033636853389839691000788590132117418898841552877217059641055305977489510678212613295938036607273861710475882838261572650471480040897414265641091678436348543963263844551280366589265265306950843638160482042531703688248603054897493993344821709040216334914088999133089715338579970099388396204798971763080695900471975942099314194816132496380435737387801584976266215914218792649013305236039157144035563371678859495035886361924794858663146924564723268755002630163973173949801441760767838024250194591540992033899142625392500156782350192974426877340539620424619738577357770803470784554130214717310992352256828708134920451049879819743909688929251420919685907060223072149733424668528571273673258868475067881102883619100771753167065029381293869732448011227276228143375309485112019537974132763322362241989914354083293640653293449162496962662736566939778475090168109818130526783086300552191792381908851386542613861075008390112991403827355663380987164608484035860626480781837272247883432928609867011634137116206857834992525458418251433568313837329391211700894635594749846692767432865779723252068206857538654132288591704826053456986031216094085180132932861036028827613998802962621911660043252409203096365579345176626098596985975015114250128433320074886315783681187365150150140415008351680214604522908862121421434168523980747010162353928474302088328509163213872383303834699138457874074080357501066132533618968086817444072612748531096685383921550314660303100531807127438316354817735143320260134964993714017838327504911391818367248635421066047540171212406431498380753911376981182367621700754541478934264220624578264545250405988788267754440212649321196703720574008711159168107858036523149958555084741775705986747552148765390200876988082270351888078109971586016337153296029572367306048860489030320678907940254457920000447600765485338775672988448986766804791046978143940263780243134929706286791855520921859506009430752844441893522405618470645875014521864399044090617972314059810690543043208395970710099624275932198708878155573326064223748137938719342431406482535890094825868054286795540656897179630014578856939644562183645144770224117960440410402310204817924043140891873694081250223161929642678456493846361173078330150353769880162162342219599137061146848445843851649633859414246000028307744039839492792527433813858017659212477043513777654079914207520607360794299522534193492842434597627002730077916639556128442181992820220110085379541586508368663095185971783953896864516744899767446131097620141316977711621517785090171324060556645686357967898714999608320774826239087526727066474118207682230124408757831580474876630436869642627092713552466516596241349433637947993957266959493393233732403422208395879629593780841579430273574369408177336955908867048029671732945847960309635975042574577099719095090351274451452793346043465790923924337716175135748710858325825760296053274743517331140278051310996772600892420524102068259422934988864146440543466143745974129468153885306518888938060076876688949067282753085220364861802726951438771902587355671763649679784635535952802174843119360222734302624983743849076638097477617998736660494917349706798341509288921654883381781488974367958008412330426074995949059196834994458732478645089187217618053990694170944722740859053351095680035578729014259404168192245497690437541252352975118466981249308208468528880100696190568590581002274825940406434106903016020077130266184469225124592452654074246370795585515722418121160060549216644931617491398322744224568714115877330973343443605250887823150402922509319914317684087316705559729744329816666223900539265253353902171447777525728999198008396800772984854530013852281345859404823620773226177462480260667207322476982416583041562582151558804229174897467519293594658685350356464230175283557168078043290299846353666452477114450874205000498385337938519770203016505176723431766430481942681453722964196892666403295123594963157571931283585752637690385706538001657997204758811532092604901024491420005536792158177676310333594555238475678686872486288729113081355095863937496288930584410355549228962700538770217946763876115738126743449925827362716954291414882973870962348005932136911286601260567075685053775218287776224252586551245506004365717616673985194727955465656020375885380007899932355210169697073361415725160726361486223112642494986121049642016511935842774816465200484973401305765656079031366305650644594677283765114372909139984826334878654655553398114705212774275782736240816486977412572287955058510121703469837264808289429030494246650165568065524621151926409245850880810772175396644859096037457125293061180869952509037710062578415364218896217241354320706404998556411629484001970409746197396202219894468387772458548119680902298943367845810914823500262242158172372519626221363236457917654122067629873158110711567183053530426240346274684415550854388172018925102184577521047433783505360743833300228854898044971142327905609076119474712333991491732176129512243283030839301624973444577424198659645865911362722533071419801498098009221189810262593555312871540346503555277866873919334578048452189402048414169995497763291406297808710058952344934971917223386566329387284338404726871507289497082766727562622495617278300239909255664650966547025173643609524226091239765552220337526932444747834961049308695975020016560147066011488685584885972422019270931943387802755538129789307405398524619613699167475860249269260542860131906178486696403009790589675022888464681999477831169562866567447854886007881561722000462144860287802286316614278336307212124381770315398334056364908137185797969995230333893990816501139580360153236896473393286536049030869743528221420086079851023312520639133992733721234177766291604643326457453684669618969739070089130488780844088497063488852291014131177109792278272153497370493336094263657221996774869900258894122762591271001651118337708816135143047094347012868227094869690779668624682789082557133145283208788456129030090784558245692035462893456370747695263535420975596624917434266857746388109366462561135754974299370161549347591524610932299204181570135302237382160521486511704179172296770176181352693113992185836054661873976633839696095427798210415950206265763949204117759648103106944877550202210269226627549911236891754063992671867869158743351822384120127963653573835154245817608532649467009557256530272008747960795558701714683912438551363672615675140968379191033554344223698520807513910895489269547469682570343345770110445044893860115590332451393905417275096968250442837926231865145371355511308779066622916592974825953432895369989954688001702754948342310614465222875827936487075327936708768428601217214810551614929088229312894895473982531347434483186834097849946303149666895249442123467069426173946577107812004893566285695208593394215618035742623920034024332318286380266440231923263878113534299436022381745421110637421629932490774948580305541481636709834219365693567231322262735184493120944302096186707212721969999542641209743757245670718387738868660823262667658430579640411707368127917704978286629913648153833535096274200039923825637123649176087319092499105630644178000316627351724864255828215688694696171165207236284377673675697739927525129084944236412431066563300264054831527127007268766689778114184537826783164588668876163619924262381872528710573521485802056733907121030393345370395850750081369976670902114673279127616403139938243435560868804093637510811471247895573777342606425087414208048162411104459621589817732957034702558665169311283773396693608488727365157755953764143099445599922154436681399645284389169408978073617059836897975249690099387987011595456095091828448234391314370975007308871324368991296057411779088847885539464189716445468432861527927273662173955259185914787452047542261808224152554319871735171000549115718766274311714190143285187647129083941170549980349355283172003308650089014620060764784415601858500408932805324747809230408686054713628680280246087686015173030476468141335382535534453116763647485947980335639349534957657018110007704208287784384253525360112689119736364387589975569540556715458719901037929747429961640863437181219326340476916888496178979714677873603357277517107644818466957281947118464233489624640802761420768616883279338177900396948033249048729482164899556374380321587583384136949565445475907233597246147016765364066114266900586058303234172668261246575520119432208092246221818097667301787202683522163708804314644427008280214661027476236577669840419638507057386019253202511819937791577956074658065239970530320136264877468753078708565063803784654585899321312917607236704315617029551440595093536774800061405987547729753805669697012489410969331130624897254991586631368373257268286801954835389611087922837505416595367240356902849172085948141365755931441759051880127094605550188442398587868731831964023831299317508830587101536113183239039872898597082629370990652281315844414904801634605863110458884649291257400733724689633058952836044340161897170849455958329600627481214726591922571289504033511051691972726267661103413468570475814414144479638655103240976281208209314329414403229908903436926085585338805149690702153600223885950622716021016208652089800582530041828116067256735832587923495073378936287624591789516538307836334000808333295972355011952935106481781534831049992576139477295590170505010801413969440466848018985202124312774654447477164363453175986748567491364860285533024932156835561137573832817491998171158738731026381234039174271343405329521937193533085966900822206521251228307287858122149223965994861162783927444814442573836545072059431116054969318594231599221826478323606485325231655770595561770233201309557120078048190502223351732061945024608650138129939136695222047143592119291013135312980197516036581095512290183223512506076879409183326577523905106796512630540607140813674253926127377291523549278605167255845519245347592574874904868074021667615327481410437288887078204741343973232649707018618933298096415378423095374147131912762766614656324396689602115323014516638763881911441715926689611078242233062988301097533593575351019795853367179232130559201379269242598857081620359614869483025416292848918250370028485308470916492574458089428039437409019680140013454351506746830397814836244267109432600796798319748680288525243672650962654623812826932877555456054225640212299067015720927101520211075243688304723394990182740619594803861255486143757343744268989740819186179540931995523521225581390406819427556912217479466842172658802077281976333611700052658978034476581273614231860653838296329393252553955698128565913497064581813401280219307817375762579911748067433015710259116611127424266592748532931091395977727180572506397852762057142708225064641258588009882288965192396019461843885820744081084700339983720049335520273660505993158250296104512693819684073729921322181441995321666286525193727051953381752614956071701287611593724816375598329307756002005300930626205866334529726899801963776503932892799985977620628215796596136431541379718904711662487364012475682279460162753610393371076026626581472298532751012486884315462966476159455586060317913730507827148377158177798559122249844123794519792158622148370840896486845109146139667309132078759603757489868020340500385731459034911136336957740452766183436953489531593863761181656616179558540507807808670031947159615809759703858868783580371896468278034734821224800626500254495076647638114402083571184528513436594476894697738068230567946235810148927492551836269567390763315883717462257555804539100797409707739364235592935546309312714911700520716494237311165519567633965049113354711940586997870474609391962766272819130830879650917378012893926977642647470708871837802847934459111827349185219643605543020321139589126381778612692872876928337598592389557863382752338674624105969578417043559852231332061072235669089274392098724422619019537273381345629123960997348663217062754832309502131761452622499675984118965479264260338509206498853957374323142732289594898334306355911717021484549877012866606009138520179262840645299476928137937336838086175423518801077121331843689438452518871941555849363801415024792778654439728934079851243242347936770413169186740912210105764648557045490780261604263522610981221847565200032612855601761424413197456166448295022183929015327297411361636473528095980849164597289834643745723933788394899658800057127580679409577349464092187551989231439863081655539661202222450943170503505710888787938482776526788744123445549539010019438823517203101783156730198217787232942577266403369545691201744906907385369477718727812454530418523305359064664956910096337065562914505569414832471663639119396006271912802265897439028424972932957662481782757166210328612450400784753745677215197785240930928486186510960966424506512348015070114552944498009866120951453159284949041836529388699693059138188911041531196640919018837671469217247801666824201924926709158005424491879821551294508594464837562524916258159186719580453063732115664369628932979872121149680957467422530211030155532890682089615985604033832725098903855741077372123499157002371556606240032465395282969961974244240304249858050725491296252509810405801648783284303541012449149135831016542014454665316160024645981547474620944637231270010711706377182587424419619936878660130592933192613412853824752911141976788896662479322472453042044932898196758789277071483629694792191805429138660342669592290551750863293795386774763308710879662548452383136710884794830202868746272778775051174247711972767466614449296213420958632489178610493286769484248024895699601894602155638944425768274180581780177953493949907811907708280142983332925592387319875529106022449529383848792237669263593949982872847676365379919239833826400979357139383345845355115347613634373089664727588518566461913368684216262312830643046785451113166652644923914121741675008943340811317736204917974804679728610900115298989578126348432965473183013781368821970382063914488617070074137551168141467683948818434347627255968503303175735819860050021394048712732959041741653980651971058035093066827590762573278654512449996991533033646457714728804325350027864076363612876381433859919187489084035867703606820266741337090188291708288772654796194921837167186970798736102823380849660680222304322439252252917053063128542299866706156894471382853004374408683821307353747635353517986432775169280562215830310453774686394100912790943195287121120313746348557168793487433332248644858470535719753836212228577574489360443509194860088258488595753964837002087292572451347278458205357064885637343164564839682919064688969288509106407729484756639508806703677067233880363337416410582687513531379751161061136080363039820166072122051944257937593561557510717704776841865855716368108934908571982602476330903545712847292010219721922413899108236870631399991738621786317601381769572761849060189294661089448288794666462622531848163585979374416291932612858685479530928717793321968179526463852164182894453459233016394879355049002948946105687725668526592746117728233467830171591406594812040165553939659964975193623306157695858195431457445994090572350621389115247000988500330337774024432246229645655759754827223791386341707283119326290279715503740415873054866526462688838131704117951539570222127376316231855978030280976094159252191049341571011343722888983092787553128687535684579579969566604431310833963085100882876950672124146937523428797898149836905837011691057265829259352656710248298673987411080913472288909696821702618242240817547387512393233472390265756239778589805001382914291081054646298842598971768494579682484188069786164002042861095687553832744416455064065243052123958551260160129208610676616603362732114665962553881696068200286733728697996528865609595053600631467074179151152363125198908998683249164658662776814568378204418503207192753114325424371165803928884417918364743685234113652065451787226758563497287349910540604870885698271184071368661467237682723611425996967284944007012047270877932049760012884356620773912456591873921135399443599283430204673347791003595860524944497626272806132304389369085282037795666423230317259122283755884842262650560973381072886685605593240990966849930206897638883721679015561311321267372800309215463635555713751566574164449850567143387781147420162458081732682643470759875913192824100659889325588596221729515137270698650822677447676099201178378130915820096824539214098899769240391157868402761647925287611236328906144060260492136419638223155248929518126220639487772039422708528749790143516537542247097223621322273878654046760280712756652309250490136873053751475937177924284783566323588868699514358947055202113117506263297324647791166835130004017111183036007621261968209815531001666902876796554524720729502809604837741141078726689443182901587792011589296314830051333499255857895517246621867665819338869785945491143179790124515041117041615813577329610350249124535729463319800763159013471524780738158347077816264019035090668075446058444885420224178182742094182120938059776268994115240579449512354016918324168814831234525265421376207462686655198353087412613572140578413942132778241358611685700905841366280612075429518670061776759469834147352334953554631475528239267178699933724205979775696976237527039190417301247077226795790116118282233637692765616529871651116753518562485093092139827193995398704321760643064309095309922285535143673928759200527473984622753021945518656506929262203625325702040693791874206043623530261892276402141921861316570899587247484434892975067934235770803806098138932580918663633732080768544191599236617870913898324697647444352620707863745997770033653464825516435893989866528183953523307039947814774256565689085865139033051728017429454908051385983609120675432836179244574543924531072939336212304396562915571648766912147367997190027974690067465544206385068141866172191543662452439346211161920273429032318782333923853472409798171642136446767208113111828188375334539811269520740471295460429255549921300188114713806052101228199220510962178666098274596243851454128905615563812877938397922735134346028511026040851562620995460552099944321541633442414197057332747681305200301945932905675376645363313882658608605929697770903198125751790228081138841370168152814329457064627762352484582635763504385493883973360393669600036719435143711554735841086971406781910544464268372478269590496638695234222314272341423538995039718056455720268787052489506035423648066623716097809449192286965772200165346503412311273283846829836067101959817791255969162877582318887938736142446217273213552025511671972983487764867227389231239633566933649837225931697202109337856279029381942117508809149066214709637441061921062756653816510246540844661542123401985569365943399853393467653316872446791413274044734530178336401919983622858116455862790203438612596405000654148892578925748726001376964905894056437494040778007965321077913512640247844453671752867563032813658025183870581838532708689722426928532628352334033003536179748973598378333978174929597477617340158468815468193972582729929719458424235801661157856869686778283539271251461470380360991562303986398585236425727442707594264027091846739650540067404308905955194436063101860629378210435369107873564131614144522878238550449243315098829987636306614397379944745201167304853052179639790398265351024680860677950918033354684640494821599670402863079120632057816994041472446059512579533799849261329827493257011187908951562411448675939992733619522409471826429645803939633899469037413497339625093838525434488084896520915999938117337841143235978318706623295094252442141700888125670770298803628051226381701513036272355537823056016444592530931889111437588327177202366970234953943742275125224382885999273342829011784608420725602462318324267723034738587056407253325904786132676237162810345587062753338874198896133325210934102232823848361464361533419014961493642887717200574320872758756981777708914824485998012373899510587805864728955638201189712621438416835561354889948800919021864872226724852023097346084336604322828166523230922797471575326869620359876511100873318282996762532185118763252614804884018372853103915769487535934152582350801850805329576985801993772278390911777033606821132048162539643130796128471179055000044921602982992621469364802059575230188767710662835979903736414341382226563541037110039503131555659211752916989425232695823233567530526531639931478998701202113132489902363030509124609301627419392914524240648532402302944520595992720242269380331617677610091590936450097211106271458044277551145907301887706776927244368023643391831436445609420628885556074328402619946460923361090051486643839376547172479791460539614754277867650204631117472520243305446454377146306916138254096456758609720338814531532067083039269957182490566002752873500201860363275318619983679019874393108675729210422266703196160253027706451805257653764350663809126317587659885518292426898264739297491792997397553346786616261433225795630869766512968791809732833304776231242506624853373529552258796318299351711225061502095049486587690256058300388892198471514943320253482663108455697156644601240216762670876273966831487450510387436695164183332341262805408882392381978859905018343261220591700686587346644906032647088479369489597973146927353074710467857705261075138423728315771668606690988002691863152223331084860739216564290331620093812630654746060774883921324921348311221106474766728443240416050849206294807642850120032121178207944335806009811989507183948104758518741061615753187320003384213727782435548250381608315583523351729227606413983254722585574128893561674554680635481410730323883955212376498901934891103383740204523949972867008487818752883100546358840950150536335515597010539999993165609268080529823206112845901183877930077484207657869232797180515323320440159027954316247858692002027346933597807545685478424173545487908105472834566104273699241174989581552348400335998901928941704215076906481611686633081761363699147546283053611214040712343108336494952097337994534527892509207658914324074220851270661049936834245673659098744817455284943481408244677756426098406800704479820539873294696759768607416412592510064531357558310579138711914817446192500825578735585405571594964758081979988686249857731946810688093176308504429637500443682777695870484019198021645205043490694773038314281291332474280062214258810466911270785700900533225419812475852351589322915075846533643924382162086802043028440105893424832671779513485166320054546037802922762830875497864560176109798918832320172670788873035144990882184970435592209381460973901542517089241381528221941215917159005981900222042519185017161588460849769731373638573701793660196580106693230284551472552807319688805793140424121357245349372714640535898411462623681304688753545966342476146490369328300917006254946208483404577609478189524321544768807735859075223916332936711405759087990176168127352544547741559329222063589655443948976281368892717455259696516619887516838064106683102157840725990785078319887641569641020363651792394520771828948493266538882294396612957072877610398883179373385604694448086142048711834083946432166500726534090687291145844011069163812093387762859351209190809203863795965816343477572964532203629427880135785602545980248939831752585956905744310463205245868938057477731927210493018871190330215636165672478992823893920434898756460026946854665850518699554843322114532447263087316241801151344451070373951299547999581763067523854639175919859697045136365426106518945474108322611141212657586625771139533977599344162202836069532655692852071945979186747310133418193461727488926420993067365834412272294220889115433139869748500616349009965795240732986213743335322219853964505663817870955335968343999748283579314140545659904829713577484077751819729223937184675940026880304329972933889886726450751031335618142673105454671176603954109099609710486185928254053309093646048109815953187635017167143495907342438065732820729277368431545424680979689226327765283208148099027711154039223484145094231668150378595659721943428297337731662351857399415098393968042011405129708600649734938927206273507677418092966182569100715284965877117120073374476519489324590799789912401488916427784432052099562353946234779851400953277741045440297158252961896450838554184329931738990060401858774600356207171257949435451784616274211370291375282107907860052889136331924881782606713995359277495500827846302012465542813335910479618417350824638684247330153076456276047204136780975428422529391596174152640827827750250271866577173793230877077959417925603902006438955200900920032621458181980005006937878445086922261393316294190502314258062163849524460011669037690609689185000737272740602677781314119185922854997943388478527079296056894814865486217886686308430258740798552811457437385481672983253689131100941832619807279690777946613987456259736184046470242032151595029431178967720781590263648703069532942935647240977692273008357953192058061619850951683676135893178294366804491321523087595532688876065362300550550423512920461058715682108029021338287343786532592949706736871454014530052486514644859892715478376208845861969419720587759844903369954853146345115417357972734845512511862408852069230984027054709881525554338331514904849157678034860930792061584147115111505617538214560414763034940162694476089615265362459292056009859920933378504228588322563471522321575375070837096635726291713043610454968096248600748235389420020709716045081662918676604422505341573914395947910176501958940827124184908250963273373292687104892184387006295718615811823946056646840505703900011508245113967452235277335900243921340675937853081056097806679808284933136097746979620457267375163080129445752856063637355848819333752804403744750874865856111827521025946671425719398898981066704842779364068651462737198121380958672037133434559871408776952678897001749840204937988667975875627924809440875517543667572708467112504836042101875446334463016853939297395752741296856905780085771016018536812061691949990762755174961911333004744663881873896275478654992571493249350793011765157692884310583251171156036430867526935979314964444946197971058538492470316885530666009238269302945972170385343735657738729905337970520496747217890212182576556822584557805403277604655851405486363985405832226716970477766279243328379679511107033828175480776995283381722892944315389447142331371318567778439086858344542871613485407090975142958004463596276314811967716621476317651880338171104240037225657051120724780822327242167111477236149727507109685856165595810737155087051536377390811253113399447658480706078622004474811051937434232630088938837630905232786963694623873610485185616110139227831369333118382244410398081283313883235864405711771522518666453268943204786872308643468300890272989205620997490305515012433671657196520611581131435023864389213922430453367445966192866771770474635512550672018492695261230312736705999133319408715483567877591200679741978299745273891490709672714206492440459945981678805638524414663350501165410665133052287068214806662707137645136030627111988329801066352753554983730944088647440426600926565364731024584907598139586422884023944189126541422066802887042456382602549917042386307674292315691745244958995819083856123852493235323414801081586066899607330703411701816402096324840450542846693220960290775607751489898117266039094716959696660054616272571688190779375923579666694013396397871854744047554055938035217866740390352424235749851567057497540303361306355290844674613918646755600664775288111640673405706191366463959963785747602085942875068249856018199456192481955669432202920757414294458956727297083114618043757063766383822128828922140958561860571543892420659441854839704208222598612765212596160576239973416246824078592304112937206317980293626243498138045199218935846143832487860922442410730831457116113613283047400184571193299414670354428377795359017381359223455437667778048898539598246703927004009484883751288643734086386411776934576834020129336329442379866134140255067854692295721611140649633211302765630772460422852373807787287809124194180491430527853248332857690317748950367554313770794177285378946239589645255181828849621931158948651472805370445134073694888330401062940678234731486244982218293519692782299639402011170784783732756667439865661524604624281442564286108749203369618495808925970045444715356870715185738711874091138260020829997742849300858212501208191640285092589830902660485447448289458686669657056210292750801234643749706082181768274958327629012742805605699423510693987475573070604413561780649546472444022767271302772346415258526500528205590977580048323229940177318397123847223235369109604469842760433428942828509592812939989405983933883148584979929340619310073985179882047467851790879560207562671028607049114345730386641257981154378312496333797831693206786353625592335971186391996189713365220339726727182812044367514985772304540165789710135134932685139948650180114142529222991318030063286468802906479737984391290803851850417255712122287386498642331162317810906364641956556423462785601997635810557261436150126892912396697159119005374423173010831845478832653156012075047055063283963973703832901568010906741649977056741393308321806486076684271485421348771589833863746703513279048506072302056069834395795616482250505670721535710850151725680424584324285426549253827707988433065490216355424287635753703533433456400603474119603059299397360142554178114092460661972139455952183711959443574601872976595722624186159042697285297815764248147743308813126965943634256643776580427469116130908514307334909017542081963035675481828746413759729595990647850005305508546437975858869668601769566698899358062340137873493330353292129333511007937222255525793361467933765412385593770279087583954670596513376671317987977524843593854521189090934878961601340109695372508720652019956646301769335607692817751482592696543352830443511462120038671044090084988299767404707672371083067504357266526550458317949206410150425120319256512577080025802890437023946514149730513999871722415122328815156949963010972236207941298001360943347192739779729016118060098415390493425906507998584866366451516798058398768705391324251278441165542093087680993358077366038902293034248174358677992228479013496518743345840045189162324646287590845826599897556669494610001172763820847152345245081689592001910855096349817802786193922142514736801833322511832895292139981977661623224907115712955595348769072385216495000984044605650220221870606139649376581681323740332342635856240074953305002147976585994253409526942421668767214823979246613623779765121505516637802927786248757580215769295529298050273056346753476585033981603336034756483322272963365623152657946502186317648164750449272577837423236862760875084297672293259467420188949763905224835205019292130584311901824494311094318701083686257137171002056213590001404928592079828904882312479440844020426285938668602929713762518859973962230997438582668320115606998183427241659233614210558280039134983362746947934736089682943946542710067945585022360938463690944224498581037514187824262070611728571322849942303514397677364371159439605985049589426552273274603646304160666857021836199221368590310105919769547315597741581797113582211016651867884137798011335096127163840915210684082358435663824452852662840700766413935377660355302556976500719633303524463813815247167772131818038489919821289086280499625604604286117632311609141234681493546817347235327004099928862804927175801727041786090131647799511660719527721486974106273610454617777462605229904046307539208950485513781983142323512484562387332218244421011641582209434778293979380526699590616504520243916799706852458267273421420075001483771227347014831667822865415022732606270078809093655365619750083497573078068790517519109577419558027285357919607687844450338420862242677344432477394454133828212132205920034899584572707730788898518482513851612959167743148813231019013583134532414231643060163188781547782714700748423451368364846069880460739322953152180838155546645979949884553996136126849436515204040004373858097303163251579783028476862811587936329690336896887504306362534223666674776370324469609191565903174593090637471402503847475374139405380150727995282153479840026033781711663201748613933248361618739614984568171065744294939242064446535092988429073932481307207219859213465205754406871229879795687131313224811911260909810780143293318594922254340578355265757185037169393320678999453289472588337701304349187519454764356381020819894193691043169214677085046901850578352608351642054289528480003492771891512428853660690466554206625616684248764174620694464093870257656616537922798870032150074344963309301026203515477008576440147114802467857616800293313503386328784609366464661461513140850587401025120449956461679789487079072029172817186564193394778271559174101803506099525311324999571028150010801000528128302796442773778500283032442503136126639472280968003512921236468576775117390987583689604416388942433832842399712418344329508202717108238179525821904230793526376922177155375418122048347271008292608258700283369642869113395082804667685364089536102038529699993158200174859462109508281522077828282651514530857182686124211548637465581662196866032531437426316513861575984379842265976044657672721577104778681449425294349275681987672872850829331429703204984387703353656156412093716930886119441699621681767005504675647743610384223699364607421501473408934624938937861543624241693478820710468719611861896409415565675587991749618614463885351256722958684156870594446196505825470080746979373180257894559698726140488202546456950940363131475103909444115621490075892017675147585938090673624650467341938812696019607543591757778277081958586521819259712623998283583064047343818133263491076195063081006713694975621694309064189112078842137056210861770502207686451813122142050640550048673942608581582642384405479692546302408612030913201134483882564684249003829974862650231303281316938359892461268115661169958957037410131250933081837985490809904074974449140430617775335910757024529934057374089965055130708910796445830214722050312338835716741652570706708776799855912484213750834840890716564599411204323382165868615480408435764611359785367499875815585015107622905396720455936676197949070319023142026372523496360611888696194141605674859743839373747692178411283608383841183780723953554688671536249026602201365659378998734888219087682606594893167449126685481176184629797478794357848341361694122498854519464706271204922527513552422811480841408959481245924131427623198224266284154519119855863636351518820841104625019323683745839675626996463371403288240287642646752401276900325414701366726553214796873945590436568463901696688314255691477476980528957700162936794268651243685998999329901111943266086414654631562896032775918911532884032691948027921876198768572320853391100190735792046010160891140972581167595140527673077837450413393472773511426245277656294336671401188427673904664037227310752159408354710731408362481180627257675271746587695653752494049344840581039233910949836706972225240301921312466837976540731071226309673654516630106312750773179086627545563392784258669737160459080154956962647170518373212067090239870564143505912805045131293155576473595920403657912906327077688168400436936963537519607178983518764663891689365424090582946564305017581774642856474382519788564340616819457881544591556983702661797368928766403152102779318339630190376821237688125029698363833217267312136728818419781660154277548758096126018084705837263557813906886014812473459657438969626103739799734751863327619525801566305399231177415892330859525678010796404451633873344009742395949023172429562889393983586095687120233892748448602059921769639097867175551953975020010043090595039927739539804008167261143501085646201151984422772941023336571582994298490362137201015842658050016840789308332652925147530320842262476499405829854299602991520499931359478046622781373004044624023833152512324234152853056798079937648196084083626492721384635320760257235482295763753155929057585027171381821494751561495131639814978624330527264649185832619170345281206895842219967973650116808309410678917302105872675782538311687823600744450070354657048140600427328284844315384458312484008803304327303297896187995323962046349288178384339229252060900177376445649326629903876649873542621913123254785257519110241280273357424596154100132658074453621364799305802577668552199946338184957686222116772329556849176721657461412541429457637812913311098993780324263029099193800265786828564110000389158684456541181976210829699697061086141352723174275351130664806607264747071392300231347734089075445388892719859871809484722193985401200587358736464776778427666989911155346070902077701080701108368168959073581755637319089918912175570054938748208478350309626719364271415880614000203216671937772467262307374836781396589501330249368222419345660050027655255163822654212869370597912419412447787664550082202423463336937949575812795563732490332614660656488812676161167364335759517762293889699257865961171493188571661701567474150395964089733240425097916335604614799620724676527805770588124931996958718378099454983569168226330251880581151716861814192343479268492958307634629438420922692219539929577650839003140048013452005969791667702580673864251430325289342210212941612494657060481461263706387349682824576214345265299608448088070149094145297985471690922074527770866760779902535418638284834018257772118382854304182126387892570468678997988616379839695977803541042262993548874904315818236035712415480214538433169890840082875872212713548988859291326967178911891929415348457374924812441539342615675606499436741745036660237751108900438094077335071255939226722378609090296169630078798085846836574069703510041165199643866189928217010219797728739256850674277034928388943399945753722368216832390710368821833691904797287257909469239047232498333860147669029803244163739833697744274821410018628470490277246233118689886304945638718691009036555827908703999691951219433148467180641322486915279852839683779303710732825682713094756035749882058707684757315097942650717801204301622768313755203182100568240576286456544438522657090505611730351206912674751278186205965060299628055356948889795920244853341551155353647940334394630659327549714114224799240108608116677572153544259626451871830555632115718092687557320334648424464300039668947038739195822569141575448471376945277751060634905492649228877570899363017025335389609075551692704666488806806680106585143828847767374213824859623334907915380635232539995323451341219171323063975066963477310611497826351494782717358309940783548168374584493941194858005581328169356613423655657622511056025486755415714259823695855010915960852910848849292882218050225258767807166680000546060166770844396027176506145642638554083517021258330582117329667498272665493805314448573992294566860223699522167594056052209823788702023988717743365389538115833756135387167063468128104347859914593882800262420429821453086275068793657679124790573228410301913671237655806716280920933430132418462311854193618407871188505569237319966762193778288786908585357544860738954638263514457430966006694519435303461694339756877681936356086497671871684367682835283691528597990067913956421372721673350639719680052008121820280386791674818987293903191679070346382786795003439206635935875491735208564585278451544692049305124292153739078883260757490591358119712381185080128398942311009120162119240973027643772954939984828094569233555416639675366454025121757082217182713977838382040881005315258121565651458528041939133111495829357484959644393528004822550390386121569518307866734894070908629295516374668488534851813706833834701976050339298444251244591895502001405071318927370614677066235679507789641893554164612991729635554799494705293743293315684452634273313174744724671618662753163217723073828038702250622754822696151644188293594693220480795684397180140162608149658696046378365484423444008355136025561363810416079942719295543956827172906732039565764547344563261678710523944177347910145566382694819231837403523909799633141219851176597966667147572378730100324788284915332588901910064971803066078914965427330162135733210549580002302121514951825157555545097123059975541926010417823027157420736414168415099480597544419313709503382762544302096495540028857753579552288693686932954795666550834894552101781468745859297516435878276653814363632567686978680024084958320203223495894097775902896134516122086128382015340200195194550163428397134170625479797701617742034711378442805716225752090798497212107851537676079926900671686916820358515944220697714111396216453463840806866259525018999751160669125978447781405747414142836566382763829711998574462270243356067640974527016281891238877277094775205373513768698164986683160958669216355013703092918396220974863934933659083885826889143733467527731577633381147884011385429245927178647020736224519169219049440904620804724663760796513725651570739067338844710896578938994848021624609799736535895461830619184585705577608155562825465083464931621235863219506830626843155842953314643374977170075704902309583172817155317753970321631875816434109218740529376211856822977497405997644164229337596967276965280713980209631114405800027417558896298805361333422460376189735502156454951618793086884573901169763173166486206204580645192015047490287275635759025437538736617844228116568651998968047978082170505469863124055609586979625832021891153413303914125542352844856836887510107615481529454549958608306895161036671912391003969767067454901651738523197441103461058007710923799917007382309589665726528013098858571155010031830200532932182154101398414259617648191038947031895655847425438620564107767725577369104085083334746591644969982033658285839460775039102083177157211684289596009931776743065677068016382995322440542415138003764616309736698351525272855354102867552407611623044062106458161450057923459431038968653717646979268369239901295606601904328321935480666870074652237653646287730972708926343152528560247725412896463396126643746724352985174597731270150662520576249129765127282488304527796789688584433061213837251880460294016213083577844627155223133021708606773181328403834714854389624944272937056046729398945329826935700796249494014060113060313044689316084443718450488066586520953992754667219710170331202786480651885959357000455398441217655557294406905454122418330356313659820153391012093377619089523298601860074857372753797050416419937634842373634681945980753614422518619239836474215696161180959565618551660760791394130755790090002054713468913474662282183766727136420434079320656980723448362997070839646851943163924170289522607029788757540017094495861545251842479897777625989143977542023276111665676389524157144141848594720882198763479488012191147971204693633113210538043027352182294557334874551791212097847190209635058387426300074496900447799853088256171656499514734935802961677392006752160494481874997871316776198582139267637794752805728656084563338071565729838415638931078345681976413205301145625750776673744027499682937730853647035122424577694937948624686722147359358195099166110748834912134610380688097720527455324054086084966880499883579071471430915276143382099624449929485248163212106107178931442990872597093219491886571157085261560804543152441935245985474425836086592594299547529430989326991371471249746914881291400245568739791832652389528360883103531299577601632363616413174638937400447788090549378743170167081099675092682943232588457808071012933811120166646868716598575155224005798488450582664433001638101610410364910090141795354536369185020389022371823500537787881482337134008697525257498412145416847138898107634102426023768234794108174592394129200721477743949188212342324301465681518534243159164694600457840543535750041813134690050048641667638728658259175319414957824615355062600213374390419867275826721479343110944181489233495931745814464308505997611784746619938586461974582716933329251936326650494530521197907428384147537491223823256659068576434150224054172820470879709930274818796735500170930376087560036339406048224854382932132962225085063559419751971965218031855772940316667196928168287264108503652038560914423842930564999307359463343550670592397529484190377762812171975760738259073891123085716243788754911214685557664061710356155032347606703160736999803773651765288853517836744762269052444015464449899229665259181667022118220174288871954259604478825867647221314675283177345131121257462378817433475141828116644891766941369191703750453190101007922399143358481709553354413934407106090540844305006079656113406818493713353190682709367547459661162463283603797616511523657728618512336361967668852928211818977736886873091909413634648809891912533605426622932832546041440916609413340025091252445610953862421097220375157952805219428944868813214976615499409476375007361281134485643346017693277632919058326161211806820511261720644382472394267930534114736034170508369591048264502421516692095549149341031214157939147463148458152608511095614870394788197165635370240714951296744824646732828657897719184661592686836623157156687540649968621161897327457709746689581827015158838116537110072572317892670134686636597482667499273070311215586561043929123324682619415214724230191846140922858777293776276430219996827023675364593720959274332466887941789640845639282938731815977806203632466275792560637834467945819009063494744050234408728926385902702582264599787446860217129929768194445947100669333190054266813782280867187097147178654726292784078967690018183320753005388407228915878576962483163847906140813479955697735854399285893884498594735110348678558216525363910624079024200471055854796814414494836734799851327125860826930186428144951359443684953787777541143791517988667789543698143130704299404556550486552675811225517263647582216481083360927067442977114324135721557387084461800397536950412773361522343869478778361228162758138938839860166869995538798887852196412278011989849834274438335985185424780738504376677508081563626661115556979179090847701530143679598003915177436219395673048390591510171386112371063392918287968156616155034572762193221554109371345976277990498751988173513455084998919731603029047703522875140325345893561407251517741480688214144357055338887564339471435440912242527989850640919985609705696856348794171199061976865045826636401143617053742043407361748538232486781813164466207285843510105129179851033474833953875463428787253480676246137415677024334928364317121436816338574527726121873649968055717736461684972078850447355287435627157975220375129616431113727685131877149067263256371079595898577886834884936681561272473174744250685044331076377906502830332080324827107437122386952348769876702624111974926032326290449425321871128948227775426765471276562840958871106017243432214962552539657442446099105721551728952986260253547966265395698708266092374872201334515622680552840271714121077755630961929634524592927910304036194981796948807144954562756397904904650369296809132005125803358321783794751337380289172859723969297456163860236855922160949804145782844006739207572936679860579066956990046073007304427972020464048494713120427438679781211980057476266753729789992169519448564379438558328535022129324554485985228625284588861642763570627887274468484566276290123030740577392199986702896941248011945126046110192931367657877580991398870993674301452826125809286886613147581377422976585028104249996120132127068241248111561116855652326283743245097346382153537125370742974350746358106602904888720142023033316387695502835260293275527869126734450637648768959353931974084472265081138470931825203712206680700894807136489404280194766473755854177326766143493637546089568440929594333515561186204141663242540204846793189567554790757031516782614350799092552881666786052379670374976683314437149566911534742158796101297971544499861344728283542749823012699996320225051274842989714558186388074084543136398935978547027548403776141015633354356365903948118732918456337425879651455865224946817973060090507539810230303955565059471191408341706955038073253235352289665741437862419177116011075941032890566041812607437317918450970880696125530159722670329964494863609314558635310975625100594801837377174195972135258397265114271908358271138747907095263576395475410996858350005777787791291778347014157106679930515614786335353087966751970133946590818594213598180371689186569484415455835885950719218327896955160082623480420522117687784721544051355425780396642661330572103707916160001494499550743597733926421006252833022003745331770649509348553994973839550739042825531781544476051020427806790097790873611887224005187634196268865161793160326578430237362119912537282452580751881958374939448534481822332815162277381706566201188190138901746783774880756542880085149688516510502819365467199358481785059045267718448851099967906088817136272746085890125464367743630458556374522797957298130340762143299639213596336180494967560089307279191782512850526848576729316015667023275450042575426110893778974227363635860662743145878941546156450231524091376233414718604875995292645625941563789560200797393247344388804153722314486906943378857515494124722918408297699066600095907907958919020770233380535226224850254693833277440591243392704314911332717195639157975333549092640570340396287555781034477760246979424358786830176089228437678428420944953373358944974914080951214128987123066955199792626226365516436750361654742116482443271188747775099125766971807810896740771892671096979999025256321588393752006223919454603082066844326994841659981615559644334310281105236697137124914861465215329360222474448512854395595166837587693041042689631250427618035395305728865283099207530129274764671293530587387601236081384476832544278465944732235503714619025306437010547888705209678177923544300823266140282183167500477569331126564389414191146442013661137966852753577573462309871121151916909161353276156950419965323837326963160252098064907670672694450433201850604834076596232613264982490343976515096625768512722561915470802497740253127829154675682019001890805056603981319307238026676662622443848137826176478456162737890218589162406542541577727985431242771560530806453270437703968953653577324709723850931055825157660192300671127731598620953403529056539818289249177441813993228839551512697357934197233848136502026872986763332987214462659956482906949385668576329009416238276610426878339406062913489748897052304440115749992437070745627147573581003857025565981296368547924911072809005048059609575994474307085249240404187397449411938477930423865845547210766540513268523330487710284606415318165103221597601718923019332479718559748045193897879018482930122532036694124517677076364847684462652504363723728792265455557703954143854139428048356616413706273613031844039099419688801018430186493198621563260759873172743590563800079639211297996876128067217346268634681649070592461998808965714670753546363334817317313325714714711100984059489179718728862684055006662166187248807821865700353035435382354889219375375507666992534715823906038165238112950995533491562739514789231753672107117527377719680049604355856077416573761677031376690221058359849139461394901583354839274927614308471665145108561022787742257723012374342321464946509854936898105817776809378246179007101604130290689631274674728524850575419943680815637275540400046615986718735849691215181986748953176829922410650155722114201877899308959401918369032293759015565061454661507334145408174821018857779052883672295845453585852269604421302605273385844471142347386828650919500884478450109111030882298567116375156807665287620776883476343581057032103355055133861289927177383488967123354034442162257494214288434793122236497855352876052786234304445761480938978783385549283319787119941720575627199720034721581119335830514299358786627194783765544323515590965452718332901470860514881083533920473683757066272287869217553034867088046535022215960629522632202636653705078326030093327373675218485444249150734912513645530795648375885323678533004450089673674027081293118564628940290641454155835857870249209171030423760189337377588592708435993329013344338408553124774564973908602615152067095478218407324193429433594988368905385845963497025287512084943382641712481425605685413118516314821126827893292962039609027539779563237110708140499195550995565657049210459344291109235562903203328660843676065708651771800516078380274340539518713483365998174177821892714234958424959798754346337364996354447274770996605777843586445228178959145084916031970670093531819646762114033040172193138121565214651638689703892250214661441451266653562433543651485808202155272733113223369244555246206650244552130980349307205877837583554234512125754580671951901633905313583877823437841214998978987626419251956085618669222322124451252396222961604603099243372496864134781452854503927545773408619249704618553446881973274223089608081287257416920398716129524153626732792470227208450362729186002875761980709922910074924114390828974542961902485465609663955844748979901607588264276446463670243565544571470336639908977291351919878126112207623225533807137635209221695502299296090090708296446105667660328515861371385486025688722348253317324547312042294341831859938883637664901011122354566290583061397231101998320966496198575659567057794330334423004222718268970532680009709449232320605914350765818595623159270268370149081890259258218667180431792995682562562820889406626041587777028325634698632870656017643990353377307487712982346007563323651207245951660838986877863392580937919184718757177064061320847546265426056864494442103976537602168717301660644779614054104872328066142097760996865667539525933532235822853966622568577016103524647930444135734593289244110884829078264394694958765982450032501302118442347265964379266744143683524841793524847248153045292515474480406983146790191102288380567633818454648617480688840455904397494014476933787197346643240045789916549223397938851503171219421098503029391027145332420145212214745231002544321851435879303547374092993301518783919575850209017246710376444165866631695261019233024495798435855694971625352247618151528511759826467333022818820566169937243866596482416277297234436509310423592944324076357994510766174927690653810616391491707340281091780700643998298648501167108441576452727680768610076316066295158718950035045685601756402882103622907768729955908712181993053252252596087018885058766846088738677791946274293338833218016689042999225146655851992406457246025222532857186759244395427753088504133016465571440592470569390413602697761518588569463056218780149824492191745428272460697796010660630800289878909289067374947099867549441099530217683529674548480544630886776934961173060873434232171857712676060000574393065747451745598776698821781752475401836394528747359109930476342009314685878215936834176709780207588120422434554409822869748739423865475887247795793762365999621043248425466376554859173456227237258732819825651066286520467205209427415859683579282370297294091062545567277560870161165168452911125997103990897609457820328640231726175858173295658295883567088124172345308968530208553084596840175816439185456242523866486595904323509458021450430260120612730134267664824687189281325814369569365364926627865117020195248843293545507634127435956788045374256974582793491605225880567317070866452975766063641772737818590604066650940688016520134158309536578136086287951803194594808704653419569986732052948553688984709255097150198518468418543176443138908512335597723387666874268585145134869765364395912912326950905009874442105662005609117265781589848753218603029770117447163996679453791842055964803214111729517835717045983971856813226102690371722402265382434809365189988877233238413512348497549982998923553451158032219620556082137222551038776457827282398828677347798638761184340796486800862602748864114013413186899068929181080585288051520642361774700435643721282255462431174880293271125557774767971162497969519018973067454748354216844225743917845354119562001469633089541384815555338066311200181033440209755926320261573586756542615170962065695848383101918170764071324090369024575547192253318655068744600431116594766883231737907212615039258778780311982950958420368040340190301141425814567658453268912461313641166086091949000306087997369643218888386622022726275392022217980559044902830394438660218348884772876521006549969621333972607021912015254846366266962826495675900600442614582511644796049644737609837546086800181755562616668726614193788081986653514609293904517744751996062137329070445551211148446890826943901431940151424953919873603696939245929111583607092524689939353845762797168177645225287187620518140348434675983785700046859011359552946732213899717294132440131440920562356635509359292562067559252275412119459881071128226128497136054130157988100517008267871003217193655839307953165803279595795245002931422410543667344253414415058423488669148794144894800907580294171398593114759975756750502739226436732173674373754725337555393173352376686565235378374760289684767317785893140408380290779196647997378132345316885158919876662309128431268782424960618974436328209648381728254957326278989471798963297572445911633701561938008130400998963754610972125603349140744165207390704029457720272066564232490380546082116836115551978634383097096024682447764531499917940100768259214549359701330464031774118237979454926998711129487823598322935609332584500282980099799276896770794422731383415952092874443843014600886702527440389113723980879190037057887349825070595212258923027387510599316476171362563827056397034244101410706330007842087614814326958989847809756880660790878905589633645803017316996562243263189652442558811385687642480505917351276939689327883653612747023909430801000547975190138384798945356946518884049476120996050777889529567415298756907993830920145787910305100987165242772267476831989194436435509081318025807727317825247019639702663445238854334407143022325180084047739918993627865678704322514796699751961993027399669850621837162081180357298002435910877806643704573539136608693827513553111033203092899266339474472289985989917142939237058673911651936727045240712516100144331419697387554697265714508487050913517872828473407888827633066954946208574586532349485522990403544604127707672945767860622499531633505869056219131592554918834907123447581434577053142955779933587047270348666478638039560227898920461042944937136836637199532899863898698120301998490013175724900992274003000996236470424301996319965623133614414417527557452978024684415511511966801752257470073793636241439150537238330071521327068741515615132582540293938014380571926371060957157558686500544114804472710200579098356657686567432454663527763398844917784718725136728747997695979798376929374855762814585011523564883863744942154370677781401797600336940418560948148106841313309650328599520371430747926351767134925992364818154474923147463629912973817493655582077721929487763345580083962005999257659448703381765583933155866601742534072487730002968967680239313996400409691117093215049568491601136235071982722201979290873807739044264721608191018961202030687168139900810831322565022801096431565072546043801477665528355686093878602036789485261509903769720160464323285271283784780602875352332220981614897186796521141920855057701635465567895304835783744753473577825953532738474649108356475572968124734462784294047585557240055240168327017042051667123991173304028412990255871921882427333961943990436748807711697571700737492376133348356417858653516905809539414672160978338255412447862220768497009405708971341461142058645762870860791968277168530579425546578518159119064012225137867727882202200491004095402865713969894081885704549977801207969269952047190100270937905795259816321311753783761000500090817827101664621396203210581803482881615408405762538619466542123287052866238475411388402918379941026582643281964466140600799414969433337322116243075956481412012806461630435646410349386392531370208791407883338397660818981788103611532063347210377988071801987344892939514993419773323379170610902124217786138575995865371084904349105669113962256926028231911547836326062370055197317349495346450002154945218402114857607203908832796419134013134601180218550010671519238454782129450316440945434025730942238507187376455071759590434634087767000667472085545981581082955730145839047980009146375826669700226988636267068493492475466733906962423379756870130152861991658087661905817697908448122842119827418449922373018794569431978672460010446511951886077130876120522998369369504011929590710951665382006979528471761167740828775345806472185917696536061405147617362334112942142363308151699718697668954410374521853504460462120836260901065625443724816741751425622692319802842352954790767459247815707713510122311383868906041698304114921524645706879494894584293143219360227826509069445412041542606851571565759843282312989096933557854127457190388313639875651178715681940493170891462756287034714655633498876966903675263750225364945738596847979338063650570247490306897022472079489421189475153725910300559948264641164480038812537484295671463219750341823311981455389295659599778266561430895119037922626261176750526928060773727973517383118600809003175216853670353228619974084177777357874120246962065586109613284100989551182406455643034107253195900531471224815748091448257134047877728376392664301421923350825666666968306400222941097452811431753708948789295752354552796197962680692060319919781666923521101554651056259702423084160113614178404971562560465421606382178802518094805032049966567428481717036559264604695881712467563415745525701993903331080813804124226810363227204884430573384404809426791921960269966428205538228225763359601180322946207558910094124139973954634357237346647286414558094112870324461465661233185211604172026738564570975022834026393157620336886526868982491087622988196555270599709926138803642490924525043249682428047101007406709034295817053460671240362860287526733349455668595369142574242827296575275998126909426101774854052454291362514421314748478695497665404980424737691382207769588367694606466119602029484281352497616022174620593506081713197563410579085806381975260544208897821919621674398706172993840403434363190751485134795571072233409070668052142713454172976532142368869554459184488338822462700302668480532889058294439970997080058978269752968469200110842170381394049646385658127448464878642303878101210056171776645630323354223310172595126374985518342512941182917633137001831550187227768865683451619571958569468281459029574779767703486727420815496025686501035899614973182906998110243502972292388449234948028641193850246796280215347935388498607874034926628750008940555474295922792159490817962465218396364829014051146336484116946600451529755668123392466668399084239777268582605667627382680067663915734463859903606145504308717345746552993748933782083633558279987585727551268371294530873406698175778061234286470698995262007429569411435907746831743046111093657924558787635496106236658083629632460501882213432684886895024333761264457430220707100531828035430110386874332840911573879967664732534465625058100083510027383723532064720690293582609294820958614009229867253732164095693923964835069819620663847579423234141978250960509807812633705163266757612424925871939614756996080792074553519578111532401991229999239009675455271022045342425145948954078918240981120811503073610015457123456077792607158595330000614074046012576959540694756600070505093684806901995988011752637371239952474025533596874768405737746674631639899303263381066132770762920077024816602708172082511716071554555206533762892857133552377478395827686863159553137659381596091276032987585874591809380477741758282690227596250665681073716233065437124102427905021949597484563198183837901099559443412404207595539200012152344665319778205066867591478893599515480274340707085682852386882417953183262905084509630380498328469805492539494926758713259319849654312623567258662289301756584596540448838959434161138940273489583747089068928606764698067984369327958307007295690325921473224638851235289491989064777680344501768381888545368392426913166043976983487423080379272878361711698371031036143899539251619401231608837897751142960559860785114927679233179809031879692089374476720151231028643676439438852197289246989492281395775210625853392657828348396155098086122822215738018300943522598336058876756733120475764814374177253313141303360146219922451328353506208135113018701801510170331499277564961706451841931153208060201698918863356646045745393960530326269595298461901347699470228624282257366126497826993671842662539400379220708762320135602301113091606522809002901970019411590062486656017733514815515400069359296316815640637005643162156119766313892089507205553077444713636014190030024213511631835126091617212274704895013861228727607415742338832406449598984087522666100559489339941427970433936182700936207028065988222233978102298485283603485778681442177957245680005686105999652869660523192902030100088934295598642070718010068244809659659285184781235740690140054523943129654769950986730142944567229128238863511622897742204079123236052569765554500847905832510809335476803286694284626635478294238388100523331521785559465657208100284892221924963286597495926564001199555306122747002475390724753829308595038345570795671656530183133024764397244507047175425987898831602343020889399465402424956173442547589936218273697408947595052581213729133660652245045055139042497752619964551688602402966643037770687117841687259128668228418677908557389347516497387085276101121307894347393670182232592693913168177052407737247230248545300111457805530540706236045765333290857449554292188349183719491171818878142203609058014694506659093988522358859011461766251775969979395922286936564955789606458598228536847192094469812224285758165560737158861159726996047786338737790731754322826131369825848647294272341377071753344922157720331536498009496332767442783541519018553248673158045697508636494369475900043589656577691279766204989657605118676504083736617634387288204445033029438844401502942759157242217755880812245510682671073548627782052103021813050574234159715540050234607424570837400420946645054614457804320800199447408083694233258159555015813292279364125768444280363850540207329537588029886334561549657317584244981950610509646708239112670198554885749934736202532620978596934039946468602987032004606627353314702487210389021847300764204880500477297432782442319704979103519541678130253618468231673469103187033714061923113534019065121217779882776127065074649498726628146818022449310435735644183214521413498895978675712814612508592429840298943202950071898580140092297381798157060728488966539320516652365849796484095198569511670321816069466157365632066944529978927477488843612803707070932817094392992375469785922324973562994930846676834394699237254068709131314505607935527343399163564998504012927308826231489512070308034321748908011186103536421005849767375466741880359526712090153156364605477628013849970656412170531313830143335436342743856795063679837728043557389605803633198154800706759314390560896747594540873979591011405138172233538852147571823315470874838953726931056505757501012572118593884044708709008056721869468688904777258694428566171106072126012565107979450031657237192373711275991699945758584214725522061996892366379185947423532269156862729439235115548731536388200317821936155290944658438533372431113169357519426632591046808546745766617818530799434458123290695437533925479354131396506288849244027926462365495427004932311216689492584562974139123330733211049752068505642330863651039807341119311259811933433105355916968915315172676494943456877859404211903746556911426760433106626885183068985503081261801832056738618031051504203131361005128859773362939355080840371815433239938253417806962033276767892965964755022696049222661098711778053287405920374143584448819462017400118246638730911580538258066017464993034827393300970448338460002897818683943707162985040752612587953607164208341105344999396526961244526567050924737136342052614710463271350556901452711587343325974652496925648358868914007795515367099752105924054851519430240255089019656612315750941332372980564905190726072733289537310276933592144499368594125187206452849013017438426958397598823048850148679441453959611246333890823753467753981178070672235520435909659073836688113104652646155786104012931162941339687367675438944131087863797934156213041000225790079319463496872001768552785288094915165160878142140738798837882354670954657038477876620648079972855980672422898383265003581658161346642526604939274620293355937588371201965304369648526401425086820091355269493607440687203342146693341585957750129020076207533312808224219823659398364661125161919604655908213213452727951027907292234139466005480083693088827464710791718980638358699580340962747985445571697189749064169561917110024127285895570452337249876064895642203142360852944415516982250758369035522306320097733123812691418397833969228775283721944243105340807467336838959441202177480168843442435206992040059736766259599590837375616379460703197426032125991754349352840093474873592346265180394406546338890651488748815197551267498612757612539864298285071580435381287403634732486718751097731946672713271994692766409387217831845398080235671243135585010214261592036316172332131494119654863866742804473783153708835113692319916498620639401845489600447082713932384276821119942965752816078749718943756181100168100734882754710683748741698411888417072073346794580938254438537663251624689512813738429831531308390732324496240066399783732821458363129314985283773383425447156789260187411475071272541484087673730316759001494457443751448771240427871541757102549236286674038272513367554489744371761738655510623019292825669995463231199391544077150593978734247876879097287590988255214470896681291331931624502117849234417358885826948927357895611724640527420851158801698509928628843243415117016678754543890740489544644187971901116051266345500763747802303394559642917430270562186853221328388616489734067387501491481535405896295406399685244852599108445232939396777040040332509523662276315168299849765966586024367076096312993267152282638884576722718589896760825762938348863452979558318369377273449509300763065464972584292174862587670176437121119612855183988322637805490341694757741162665870061415230667972329828368186588889576341283710303786620067204361628942550767085632917798897330821185007229305163552782925307986153402461235955903083282207054105073688351034069376421673651894737121750126024536850938263509973788629358870785241975349899371207322090064211565706475776053215148853535811129570867493332332464384276497160912758468326007851758336582205340491559575755778289165345110859924746270327604766327002968757229803866178306771991933539372722788020373273291482800240821903720385419914881139543304896162707516403855436542119427848154474750687457093721829327995189755309204035421485608004386721303962735183192895576322438196229547033809866834136066156234115297186741305170768382718231061391001633140100140272916996011854106308116153779198174453947165984599196503902046668118195211578702037335745523524814333535243999410606256853136564524566176404906201525390802952207409008051137173898407889697017904049107903668187520012943870771085769134256622881074119110130507136358668220633777467973817772344255286911921959099140767016943356442257266433225970263056898480232809270086036195392603414342355757376627668650547342094615639219103686259552317293373941098850439541165848295869049400204059360242933830581269233468342454500829091554943441808777632979747320119288533668328428153855968771015901348172595887129880259738957221516469429153765704564696725252533916168522186164140479985710499253726836134654822040551830581477653320802503076769480381205406506292517488803347341365636291000708358568573592062958238702254602970421363706287768250926223156028222813272524127310413829973221978607323701468855149658933379265014945977944274017244167706831428087068214546157079565528344241446253135842641640925083209084267966435462788018984963000068704322784256631308288122319601075599761592129010168570199474481723152416318871623135644110550959309900986666311884972880151508753784669416969984228999678014852906250658114835952215872276845027639134564230883654447804172001024018132515762105223694746446142579758314154018994571425213127569146757988738044524780908798753387331997233381885644192775483294871324910896794882307283159551536435210591471825318682241778052550468073230442512662871137886899090957460311401811153743663832140829350813955332348290556155492250640781567883629178965232575942651718682506119317619043529990575948176127591266519942421749576510437768778664329172467145079709666237576143315047751188299646702004584466435635223471094832789071152976250195981479762583374917141587889080595998354624805316895666021554146818190583875326489719871465765452398065931208092220569454114105527563754704090485046190569174093242023068403929959654191598812720619076391445890199661414283293431152364402894861700801445075580144327739007672500606353983609756494423976676675993411388920956966866823376043654985876269980059457804258240730803272464845337679268408826254319422706737304726402392148051371124661986497911499426859832102318171503392540741486814223576810241708025741913450412792892843960334150761901908285437271498875804106811252344471212301950040117416337714376859388026079609038238431863667036673715573602519194244364759820229348136842058058819216921418263075299487811816194572883678636962506724209848091814310958471434510145686959873417870436332858498918305193560737577434202057273578179815911130200760819261534990283308756496065198566944878460178607910473140470746914148992607185936271029606699592765995979911761190888876942004038198833425618269221905385023895101706641403203833155384941361640750541974554503355911723475504085681537666673694694804101479658673830651289424026884652639054978062364242860725315884269784275045410398582599199047517428234078696969971312700664504641169592543587825062903872885825373235166580952862399273323069692616638048105749307555382996381751409296050748303065080504873552429685401915850019666548487776216679155517677772460266172145831842165878119775301588697759420629529675169530481318902342280381343450344961628870338711603834194362592977741212380661970686019775078284573324256271991758796762652820208938524117067128753537818550717446764426754069111414810644504903935878407098874812771737816505368476085253457061135900884360085927542725851882402426078636952114512425296386696825789414849336071474154248148848397472654540862435772034411033376366699881414590364810500244704147712747671897651718334206123494660393726984675480398622348723311873447171092563714722938214763281832634122986211626268090187550091325418999725025473442746061912645405802416994989797620714454380316012533012250257382354667497350916517538370724251893573695456014605965735933470009683455714162360572511490088249699830362483319605655246795717323524551138536555924118080551382193797352048480381247472486638368728488846850304648970114689945706096562424536936962681016207192805665807321688808078671719927408013511857717848677952739181240121389123582569350560073877611456473201553056048554412909494236974798189945448700364661135776611363880774019433314477597948855311862351680702981392440130487419681064480047641286959383763877883147944536368613794187253647145683703260183893966396103839186529866752066315775035666747108735816782511287416956155925444745930427671054627791231791360497105437836482824822753024105922583361107087288461503582135973035092736785472995288247205419013903618843823411865267842900824259943294431401125953209937899044129352536048713747043717783752252402961189309001953403071141372292644111395065686703944052921948369873486580819972842184697497627633991496520736069275308693489640542045641040068405623523495480848941937249750871266017410465175604966500909942608441756062260034832417503685663497885327372709459847761868353348061958863143615316196067007758112097590259742354694877700083915846898532435456989040713234179425223173660399777066991826029568988421992296261210877404933103529913473927894643579659016537658093757066787732360639557743574059493727296759264073259942367333811692456195320712674957517860348150580955477562459817461503704799742603134499661202228775634294911528023756086500239694107772871591089976774189712858428556979376976818117809749919834954225683062800341010794158274973180756290153311038887804735767481536332638949444673226745187962477885255054780359599081189769003642805734849574292979467412786833351368927708026743600431309834586094690102296987826004117185833555856792358451344590097182814083283548991112540450102784333036308714113156313313221974006418779778615872548956736463403525997136955321954488219073886058277184733847431360249125699344704559778219616397094727789426304522590473873090515553055889702465653501215077058785320074463983434687895960982243456519974590173854976200338450948403202234636004328523732216783009457847752357411471828108776145375634663158270886905536307247891071386639557066272372416992253070258352890618937355049878590886546181963150904471322738148160455085909452494301416617421033603776150155284748400937338358473109597595127381115637080345899156842493730496919802714335310276386529407218787676049221518474642787522347276825974614618567491536959918968331896151049973802340558925723683503190788357564525473964618061918145219614551373785838297804947948946334997378740697283152728886738563827019220358117355531560470426342185550133290133330123460600491568706052851920459229817838300197332348179536928511049209443544783710170140687439979948140140132269198560031699249803802039074693183785925205506583433600713206789376465019599101751906622924650275766355637043224599405050770098615840090022824106022535958219089363924065803550236906706556078656775913653918598225888833678797764110334472904603881431221544808547882743328251506912957381467855171078861584413796617860011941022735659138513413285592172244415193480198051959200961005495645035951873115540427428467873347227310502844682988895883458838147790867131208860019702342299780320219946870824732746311426108031882077079385576797769276791317909121227424674720353429226158639390493305777961607890764209027998746747310704002759194842543529620237706534042245016079284504567205755748728615125054546999942445406116198776952809281676305605300161550373163120139075972322104055971714319153255712251636008807247888971292064241673222622585289555371764990023275421974864581651516661971666531223247800308694933620128625133470535356945260465588332223923513519943495587179501037179627076501011859879148283563672395214161501872212086055437287745350712420104451543139458687122000522818273318234562094106816592113682127983722428135331880944066527832554005848743040588147892540165269152700960578995826923825359009985407968695272724767004570671744434406130206528000271380322240165587988907087371575628913922768643562552547067409047486542978129993842587647084869500185496020049032021472106793499289995291547443717749877354293400686171880472886387928299067264186511811387070931079721666193596052352124398683790106695689334153542809059815091861196144797344422017975082000353715438121892816032047268903330581285999513273035033607197184341862034181974475017959421085657086742955644016956301973850050564931292080194552503490136062486706145080611991448133886882298508856894528339122563107901906656626301562537861587278689583495388497991281085137900658880708493488236450810766645495508497652403686689739146720047259238592934066830473823958820241377804226516808257398915680148789816287010998131268158415460708177854782082583939291554665459197740105633550449252678213248279188973796486417680720534467251366021776794323808027495063369792894618837756413058260087205342427749999523321970532207783975746843743455664579079250661251526978580931263474418577566549539032650459068362562546716779218291165672745543085696322321628372419697459270584766090521453684448280187535827603194611775676752409793014884551346056470166873574195769063206224500110126891162348109080141230626707380906176978382235858424090881362649519116222621005831465472911774470757261352484945318570229346341489853666639572217777875453714788230587581510492975575055638943435895713946534985843266813137713022402066617027755968603600505350345670024904935072688195120828718897092754406522236036027809280020677905514308299936700508609195158287836723042233821573813778842395936734285517753038949240837327392867163649108394284814356093411128968779261536103368528907019988138902293541384288833578527601637335985978562307484258413896428227125039979533589951070712900055163044238576854576911598818613253725877035569300667833396551827251148359754392564081127455116255232631242059558564457387833544418383805549470317718810206125191533979667464145152847810488740443279978962810637809318996118572783491334537558669432441455633264260038876704261119379224022354382813835299298329359346476024400247650269709278654177056316079444612081732370049399587558424816745910600845622494234629219965103893315690094910156381691590939198017351375147019506098911798206683302158359403667814986599789114587745028965156398782890556479568083161689023909306532770305862346697452366324221367834017503769722682760776137362978436504444838129493834129399580399941700664197994004513088530910111304397277825615601384476683201674153506286899273280309430084169987079272161691488598001190390634217169473633011356496535363376483154655795168577719584489062363560951608929961917598642625050782827256556646213847016674480075574547966200488600349801150921112791359188104297689190297013485227076206084990440005454873189096418745743356032534691831524383838645427848217388861996018072934574890931683814559565122094007045349698901159824123929456666177749731771006753266031171127037340876057185875399278836728989039900568944946287248774365443800719909317904152774511502664108087215503041566253541762260599429997974750943501559918408103255877514658808429398742075028958701753665985321327021399207344730663484688531036924091661214446258843698455786938298592289286325303946855806177341465064228398363921994267667006201570299012463174759738753630962271274277522725142375624979481846581436563565854561824233474650806794948549550489844721554179283240085622274385358853730148531321159304835433053678031586378341120744544093676322558512322084978534061000781063482256980160888245785224861245915276493232864134546002318280324345572615967703022565945299252343073575789600409047559727850970558900272869247376598094123850849626435853071031556970215019484927034411329337877916998054958295167212134854334380990150164299358968859024643611201440252263071496899530591679058952240047983055707730489699798132051125604955405947708769414588110686019466561936915488577968151625340072465034229509807913354085790057599216704893235962803693442788213932907803075507577512254697553947690890636238211364929033540354817575495055708468483503308193427906894134951594713600137411175751935090435193106692853326226541331026085524612385121728333632556755945894297579528272061471050512518983777337968406147614591438971818198971737311827876372113868897735033167535853497806172573633608362601787284067563605484616793082974741948791253442977886543236795830212832994703134001736033024828163192718212010345878093470669222459878709068775445007006416612380229501074917618068781055677475799169857793917531786914245639156122118454826435870781469009695601967213326808880836455242219849898355800570615490452840294448009554674215600684434826486365425281888135771856837266737306057949246771428957387909210207154905563439536552899985122506536460474102573952290264000113924351819512181733272799848642511245814416004219220641219180046177347492928539989487427825365597115451084223879954988505123431867720627369018862259936962975789276087516454681453402353369811390233700743194390124331521787033130113791455237692890837242765587235281779253962501110456285868290354277163593356034574793647063569693100946893252841040541871626640960116976417513339764937342665079350215226406931595768884709534658759821361270782862791763360752735928239026602346442177840808947860343899905106624160714911049067817392067514566773188165507314673744827067539477590088018021792973339532462420499652489209236118833031599283315158116117599017886560744288341067082816909673304739986264387059204628571671758878158127230623877985207725802078263991218757407929107703083618100575284657036099552642283485565088920236387732831274161844355981355118961801172598058548390952211259990834516662657124204888655209119391244812246492402826887879230048745089810086073806781445597130102409683428590591042080083820468994286256838343214547880682475278103266426742734800762139319674864392287370496592326731048827872222526778893748654388370645539163429872050071964344363458185021086166023717687901503787102635094497100784322724482623134843980808866504731057804383913575624074297906887469050131842222174555362946725012916100401827351120429003996650315740982259914271425321892787585728811417035360421811024550434718236959880841287028052361365406316128585600920735548022529554747198209622619003812328716100817433979694928131752388168396687971082897980278514287415968734961556415416210109525004992347481059735757103617350628927087154238428817514149740921986810905363652064871523337171084296391295100812682744852416882925169284675238827747565872681690824658684516124325513419907421790714611950006885965131259242909126284519033790526600187826782762597322330075076299152866072539511258194083677007660670166190194810092308086575186576986577739605186029339454051222666236409954320242573465961625888460699815795628501658093538942725787497767126979329599038526954933950950176831783078519060140513322758518805762800564195047559779029076173622162617629460348443751456220081294181233019584604243953361147243269681206931052697867207965144215788864110062848806427395957903349683934885155276790918413450888716855561840779047784358276588693972256060096498153323237032734372073031075057820821261936949765920700897000830097002393511908056144507285583501969083476371734401831323431569242973948660428428564743940041010379689167261699117902159983007122044428194778175870862445144212182002062868140933786902929148782932852863636839713932636464334135020427823443894489238268787020828403964271538834292415117839948308382443299901769973170305309541712114061248796113638517717536707754775028889698245007561940996807753073972487983168050521510413974484784328782339488689169874311169657991145579655791394069588283601284393922197508905239724904735767936868044957608437681748588656961224643616890909633552974912125480801038692688090400410449598537101584706131887557565621594502961470836459179093539008173429975616223783103844539343410908590790914720692960499398048513227372754393712467634198589756353882521954478501519978657235141049049869700939088644845928327243714857718984930619258862967214146750282408530667435146151981687514890565842603912081932830338427033995827789987439899717731867184169925543241378922948338938896803143280194462566059128748117941473039813005335550042219123396277164823705114974994398282717017058339667696965130621950470908726509501387243087279820116149384517476442756324793318308226335450760948300898877263141595589966398065917268719265988646426759601567961583223191452381477548568178432091963964563161565750678498152435765407239014293205117707785540289337304168121703446219123060114636490391684272434238817057838916695608466804505657540933651248652270045799520889168457512326809779350358064417484573394409690270084349613774438598196854754310619784795346861322904864243362041089860798621363643450653776498310047642114084063647408411995156569028364752643973598880191019045099233338716286342777154204521375221624922104550316849667305133037147115697398646545374632527664667702636520204275442964179777122310732669050913607069969397480724823178747503630793020424655497680413270467179674559481441471786073263067715123336252976975943727496463926992871084572706850340839323954866734378456600488162660467932627873431035320773955319494776515862422122143281485024905661843133768330588218930750870308652049429609268848023281855448769319197743805877600848023672452035556238167243940012481066407630786410157539087072724754463118643781487335190331248633654709506542208885557078875329072907765614178154047976323016969639173590844994349373582872846875242843805579168040167001171381562938711198200301266043654765308037222530541565542524597797934893218264020225444909577757495537352368544580915967246272758204997345263757425223019715253171561016635198928928339108546814111440648468044990359388649667954799472941381545864148110497684220471176503872581549925482869149592408044978160855120425184376781831926526280406649435698370104523563857228477237791308549420828983378619584940855848686981554185368067199216661446739974679713580236152977789915190422395122087058526509190715631067593965427178357457625208057570777916077782117703727298483739631867446989615575296860131987770789039769811244980905730602586520506825094949341671035982463753421898949290838299995877068775940172374976991571338146811000950699607563998934950936385995811012276989477741987575866016885846684952163593528514707871985618242903053711205341314899566167227650755852988374897686181791924703381042658162468130735925712497997660285872671158602083347848941858443794197053627105988537624428274807787723967708410870932886631805122637152987167572801869660427867951422214491650365730805163969919636520630252780549937112934659264584574933912525634596971305754762287597281472112768256572497040275573274282143511919464905767413947788569161806602520747954579885303617017052066730333664838812318809040177566533312152162044517460168822810309385984873204347210612696996526252005123938082151754309072979097982887554129665065083488343329428308240756869574153831597403778000405572250622374944543924018557135726958790933000122968478802967574190420792385584615024296796181945825940496665012100140579077160340226309033813240084470291929330703762965872007758777854929243886104699394870503092561707482353481403358563131619713346682038763159815695907660261104601743916237371433346014567695911808726260735907190479230777798953044585418512110865360891038958737385985368946170470356240565414051715210510616826928803995197285709971227091635928586696033239039730119362475151671382999495034660566751643293932996868337398358062603434772448863224258559839872106104799620607448050778889265665239032137232722532545113246939855621853775076468713570453641588763974829462720628094559337465955374754052499660494177696403946992081417623266341320476109160680155804299719519274065146295912653309488283200796309114336261828368562383465933525318108373114777711942702807975642020163026914040995218336569657751106722917153106975553922691450029078910309257091827229451247457092676997999963167629312889091118637936817640443364126218726963613108541081001324479725948988076182988799424949987733137201052362946492525749050719068601819226508296054347971805904108716266701180872765947838153147917893235669748077505759895162413916193363416405198545955621834223656737978684180409391975164374399295544505656930069060371872413637829523384704978106376198710314877766993707313930667505342839862185544124273409133845173013970849806218893784004249155000756264901568909669215932874883185116724655296014777365880211283897534672912371419221483065591285053429547453376669668076614910236005916148875188744733821484384203958948852443692437643547668056694868119870618372101774101948901048947922434729918456987443677558182686400208035480419334535108047954378947076268903911425935690230815568085757153983290061115562337294528404889155504024436596340426265117709980560705666180827572063472896469758150471358641912594636974287433026512550082645680618866175893689889536020888520769149159688150374807967035391191954484217531758803702102307245874436072708034126241047189727144590188571606166501963236863804732475162554990812570829401737764472670889686906505709037227148341187150207027254998311486473685475940998614178011185060629622352826022959402740263076757478712399423197878232473759404150025250107432560574605162912706766433911839687008186392187770515757485132894695003193782568480877098404586542181080917025965440971443122512272803759572904771741442678415078846920784106967398692223989364287981698710527439126380822405914017711811333300775350724493279185321943086405024939512995771405904592108114799425955455848138730901260516492274083325265952510130749962519478269802857199740876855099658676414166508291878951259949731823270550078485454093665445452949596459945977542904716188476330523841121039323288140409065566446904701295195191733627263159882852705896693675972699849592831335276462698061870239036705043461391426317143614142897515104446089992016250078588043805699979006082818358957022890554397491844242924930285628797505166107517157778760241105128807244760401747611084748690622618954269256312379726604849328410412825092100356976476756627813404453326683371069684689837528288677186539141868159196494249813634940242128582973870466125473800176077553096294959340133291321220447748749234723324456856547473219004181311512648087810538226251299065095356286360733055766538676831875351317675545039841724602508740905428669495494023058228356721189262354374610683502910590407926256596912778202833294717728753099280557332082849849251299170069030808835667813998289724836518168152801154958648071552090230962352854693105715213812866243632173878846186532898141093500752026405720204611527396410204191877625897319742277188821198827846732636632506996945308711708619416912788486113623396797075091063007721364868853472749091836184923092271036968757430109289195118460747607502227215188244394855272466840620805328045519776555855642429541485291365077305296171262483888557630207451384570736044379601533060115752165120448203500637695558754139794092713418888178828599511838491373824027270289755422995678694837234367579643565936714849343932355210735299083305133197164051272252056156530944062879749305572985031461518157450913084486457099234610039927061590885095788275383464021442847254834110646703256122725061000461533955554982250163800718205268147975958207092650768096495261418131643529670859551811100968968078715225349475782517827547295325788117418444365828464798672758180664614193399661113072319220363829423207320088169866890469923226805979662982878771302880438880494643741144606012344133564627618901291693177042381238095809326919362634229713640232678734537535300536457231876139028114843041531542325650424123484499860747684114291456870644750488433340989756267347464476429005420593573999737222623523330126667529733974234388247248463807427173818415462117666922479347928867744988087140003086138653416350918049876261075358544062466062702064135897373997230675988809339620039224370465373655199226936480821873484501830971007861157699427691260258845425830126786238717709986862264146970195011395012356872047355263490899294537721605244496463726264190935827683687701755612447822562799319878044822113254104204737438884253638133236292245736636526733543936865636761530588489715669510368699118543415256933486756043921987199235829076415825038825175833917252551935228767389919859294105829550990387647748106395556774840341100829455325055373240434577648586495904341606129351784929896965985469447152797863874462798832303511871298017539226156034926367262008659280501537217465481626737348841348398727600873193190612230169124436388287333713033850349302900082349442632316879581439829187239279671828604518701070286236094280805035897402350095962032173223882862645493760235324941296624282013153785123990974437604849948110739223156250032780277322368003427148142165828874610180341005977095646822164215614016160883196772307282102104135839101091673146578676837041681192665664531658345788591304357977912109556009300028139894053988587480857163273838292767886728258716672649175436603848491928549502250972693307444086143927390142986596874436685233279632545569377916384131275723160820049277145454535389237623554620595992346400600470695645721831949813167853772500519181045261538311929827755062624460520598153900081632590176675003852900434522603353566901157055854147766354337968339399475622716261498960494923151043608024607403798440616491787533898071398223847645834977909891199071421426571854469761414088069287403856296619994333645130369160797254476814929246904854054777005554318793421558185259162651330807932534877170634575838788070118828525104024899633607551524494368057613353406325859288091577510265331340023730193164152261294349973788395390782118073245816581090725633247111859672841304252697640212618027350963455194453515543230425425456273960797040120299573403258055753593416914841671239666379787484128474048146334913437504519964695121765051508512432584824086823613350875541103285396551328795212789230951008765049773201637199977642036459113227846456034606082776095628169824000940376411025119792740045760123203334339849617065681817780495950896189642266095458760151517534904305193946534803233441741070033532322039105022775888048038118022345395698236899604840963398499915023673289456361537366530459830985300044385197006451267652713877307067075728048367510587083805210120582028561322911508858539752696828464633431712240137238593680056688564197754272300886087098833930305258744786563098152245747987411902909992427437853422351675516065471860447986085033095193389596344370578913528240257901798674761636038699934792692049373057914073507661401308330133623171872458498093828132808956249928172035836368013729926271944014446647271207568237696561230070156764182865502785518661276439485239119463587669325329826535852019045465068870488809242891977865986135474000895962968721589214298799582635300870500819916145687653630294385223632316473755421145113990327463987636564662422116310822475490227518943015400268626867600273917735797087877779407974144305781977551919793223812840689164549987315219974828292794226571051763309634774112357543073511255428726901808532393306810018538192632932757316099790514221957954140261099779019186585672951053875139680680803860612446519188593996203170922147507830663629162778547911263209332259391515203198904737223625154981701543179514921901051246816360479134433470160196687962863031469094979620955903284128844333119576331001299700557479831433410280237366050247698706666441462000771969003275227860055471858279340904321792260149888343919302043149486701071026376608341555108605544736104805122349062903437818318894940850225151307632192698310821204738013941620811972045786222855118615824815003193377035338214221386531059104631624399891801246286627326409066369960572425513692926592571273968613894432952615108255624864456985864325109066512318334933436246776112322685179235616944770081960272948464008508538835137053136807071632871501671022437385015520849504232228579622484395080341120568240595465784563710599677247880396225569814911889961539637050699711123324202164075259706623030077846309688697614278287888423159217168128768591363936907542832524967979857448564505507154786349125479361824599177096113003791164633061626224193757445431650165037100604001431345664719801275041228271740620123117825897519199874281392317448565701823910945273275901819438429736871011324075838800024652216232622056367259829418145854714496855352504870403572363629519753678952945392996431976693159653502801080908888093150934536387896405730129768674341820252441880724267073116223653701995443922507096392873146201203978340375518218072234688651176775784119510117425739058810135404578780881868397065026536433881149856287330191804183553887495628828175363607643476933568712978781656414181435470356058964864872322803533566786527928281503923215907752459894607179112297268015604008808408891903697441000406662578587870320182698812433069662268063516144505574850413414376578711042555936694969443949298091343222611855465928922628433422557956491362389843077732365569002382133447457012210186470391742673122515949246008213375605112903469073729881244918677822798346497345775595789604671575464548986939937282464521207461585025167285863294083873370759184759621633241866643864130471758143202903682380835989775228874590397606292391450075645012764441063903076255394144848672812242174712751507367054278225210884964351222780795832612556198851071163355457004285754064896182008172498512701127262959840336281336231351691231219147726104236274182650801043754905093374010190648656625417200103983577056208870595072093780186067749356335454483161093316271021437919501769114217121743496834406983461431330649524934340215823483769854997199860603593558214802393254211181050681879718086998325388333789141712462441814073291405078372142591759232457694810679383087247599391176460506591840929780668732827620173815535398479446053769123103688836678275722210344474475403532782496784773908741042186730387690766096498357671750226132457429098052353039379262933546899596112349248261364667033699953906829701171352155725318319864688142011977779930677702563816927580559751710083429297707229917299610085045031921874305955317956101607830066189720665245172047900507964014456924318250903058248737042602648165100114418060879366942247747992209733790246969189516563423352732477120575536143866503200277712869103409759486543220083214991168125547449876586713939022457264562286247928773337457880525082309403483543804662687145999981303731905907197728684637715947693381041422198290436496257427338738168139587610951843097703073904533102643661032246863475649830527510247197140708426773652376792016880824468023662301999465874923398113251733565029326735375676438632000742037495006068920163194483189700317860227676407626333814092092890746188028338306701906599367734398204038421494611436325452385069984867575954844154153734270113502406347750071013479900542845290815655882510615173464641875755600112691963217053383279041822522554453070370582869253957145827904283713709826883144723162405614385616947579843559948674726291377281140519604288682573418119478137037369370706351004236220554855624569103650673855022950293001491830641077749323170251796255823769766468343814360760603830707246337916893146466809273183362509683140184090839979573796419709046975325067105547361597148492895323551962490035400707793054076898195507937019281272715297828000354461857863102606102791848442321736511597894292116267662181396043966004046024143070534368498573834986855026441445213881412234687286823942502073945200995909101725914607431942606119432817599439745454943836298910274771746403276266131600570712375705787800693138642724770507865748841202622177614278630977104203451437812392106835687180428743719642374545622131680329359615226140677816113936457872191778959065460416407002854087010570084731226289465927523616092069699652595384011480361615913802228676434267572106101790526778562167032323146756584872090438555992245486689601888575940951000981830890395684154339826524120515529132756812903487592984316954902246076100085429838854124112806638162451584684474612660813939233358682494383837530200486993984973672083724866662150857892054073688965070528637286041443078119009742597817581576842324965909607203024267966337356943731484291555541208191913902394684302631655492250873189660502038088169685728782682798496073182347537492418703029440473940647677930841799877999386681665817960951845969813874189295374705946748554262992613112548944393304382634281502074123562044779191544218619421566250999075875016286104521386511714714102044121954845798203013803680596667745184983268065866234121837055326826709947884834342799475712210545383773187902726358362291230004222278378543931124053848517339268700452940917356851068076273548746890019447246606892329881252452597503339851629944465449710044769508552393017699110051022445252514938961299500554428696369835913978487251152068248122283617023408688545137823606287718657255101273901271716582875603362808761162681385666264737751406262375089611379093410116063325063520804009707801096921344132271997236245513178318748078236546922732834346581428851959775014316723106895220920615012403699336891388396511145666022155427393787989717694844729333045233048932476413016672857758623140299202858387393496305412788327384103386686096636662981222261515899980203139551163430783386252424422237533786015073352591861426526532652358232344209342431003157164385630771609176216449569817581618514946833499821796941166207957625254860307521981458323481686146312985393385129361534016405745059446631515443906740212688797804493011702738031998495763790269960662190112279632111321364364550969286365339068327465634449882226518098074740341669605938347490332534954698932791752365293933992534641207408672950097054432056723786171600595471521414849363449134860735721147954029287557246054665462997791238849163531742081280014799243248791210220614897061029275393675099212510010004396671011427617264723022810119432210294798306223891943062842835220306125358855411856703642473370432904280225414815579863312305601631188556440770318947546379502384186070319587385436326429596786095246884394108341154491078000722785876798910271935150630957524032939017499472527797290449421559473629243009139103489475051088523098209937538937896767513526406134317544892974773591608943550084901360974753947794915573227417203242771544240981853327978854569216692157946533241832145741552438852879275815167592553504928439485704321740426698186817551499719251962490505664541006564092439504270423264597974885079005694438683214501514981991634749713979685349677787626028056191737894444001589886492621383460431036412674395853596160440283546009058172771595292034505815146221336050266979765761522950671509095689304056590615741160853319050285862827738359857101814714440453178443865919771526543016528361295263400784610315752814408127754458139564836331155170585778288192660049536897101152161909475740357710229045818102460116483940361048054631423162681462772216181325278415621579450553795438094087699575290767822689782409326640663305696020621280638588559254510782820359199844364799008180139810100656142028485350488412905502160609001852883945561860700073321164981120187765497507091159667396377094190456816369891641730975277430172186563401407608969474802119160116253540261472795425073508431993637164367985737643227747254252625128733829977079028152268530367096537497086255828685020419827410762443239271708514832059212792561034436702218063200541747351436878462638242075701725898302379207135919289938892383656184316317242460327534394400317553379354866789306716484082702929165334344071607221035560230353895954851875202660026513347600308687742839600983043791111837553193302881035691525310749516635965602739974390208710282917835066495496593294126872218602012253641819528097328956056442141755309532420592460071917453406563042024556435321218681911596449334290131242114761079523270207845079155243374233474072244924341973313961586257092725647306003958500978217357784743882789587643420815253928177626185787450063562882113667678612824182577299408250717770885991942415506908046024085345335342130850136522158186951640862841787555170965907263778228355697647047768761613135094158285874733599723711834334174672912434503422345703880817133725227422629987747907003297552599724333295704206014634245830917882801924869963559455671851630184222885904002379295872011787305132464538036571985755670027168664516113010062583543250441367833698246811902487789809346569594893496790269433449169466564914616902768162579880619308724033538661283416201459348379928303011236528168408462872835882481919093274074806905390220463039079440852249132821338491986334989663599266935617580070008981904146982801107819666702422303613360840164236508217055906965624846699109483124796082887513051638550120243865418648993146122370963228047630077662746206035208404131176029640621804636456076583448557675347518042336827922824411192597502583210896884800600132929504407793522537863483239229084874442689934799672340278624927485445549934533209590828334603455850307154964011541630128468070540602473905313598644039425763783247798843371004452914373809964229874428601200433688563862984249516011387658906545295047536181451374934208354470924443621016308946461091233743919860708045909265516548843575192770182500843439890887780917297296408244531036598054713706040024904642954314340619626956316042439396523246463411280333137904434271251010861522628408068201974725430670655367264351247524430552735153610338075008329628103230140588398473382939209800284388535514494308175178246742977142065223924029704626910957958576736309642291101913414084907756360159286636434698155660832763935893329977974346195557905910154404281079117010337704295959103863391764481445624936942901174296816118694106141950963933197785762413816243267209728599320654271693165571002778620774291215564012420835721415114004814384760073174095113252171508095276364296584368063765134488448080608622418024860012088516839070859348641634806023879976020666209396043564270116255300262996837283504377510308190012903022782546561643699004121737973704205364628752026803046764219676204117701124249851180807262450804575620368725181719147393027533727563995747811239520525142134596002618035754603116542046565728588484533311639508155990071623747210689330578976137988056353210185299143494685502176661222138084652481941062535434181524520798251924683160144874935080922844134432886555857126873342043039235518038472691020406679328426823662382167924734253788741970607330221924338620338828478936735257838998157267281036233312707912896023429371705290487280440473284280670917459812222572144489109302596260236614728413909850139957260371134180553023134063613161148438996050659816263763339549517933491939680123812651930689454622935516584127044756440811215195448089453650704299104578022997984405092451265039659942600310533746616930803410172857029265752509907348725921719517741143451937314746337286895622741064994875414082432463598906731875816683314160580872403642646209087881184412315964857422062303558342890650639930847089529306375059818416426018552948816115730384485243539389498794537810046761230319880586026129137267521882631772277310865911735565118240768463282317582324409076945280346277690743040663730274069170189909050520728349730080523426639931865949808620228613462195114695672999996415859453785043966054887729783629443112140183172721698842918004697408917385537602183795957271654333584590574099700806928235558513708585237044068419734536839663197910018404457053429613869922065924718456708276368006684658912168424353253712464882909213833693122291402799123136696722208469804884602864704797829155767798203342371773178152650441811013769474424290711867309865021332987010656316842917860605994741476544238019951252334089114713121676177480074235379583969377555031857293643709083557212732759750989354896832383767343532292860659640531558536755170044221800789517094491410840128470001420469535027787841333580750289952306848039086293458994222536101649998367497865271174711130407963196477277679613009711809605594632009679829658298791563968079482020631469579867160922697064963174042448322339090574476074587864227919384807567250554466172473361262064899739617161194324416501363033110148910077365861411628148753865708761734336397933270910199201049508484366357237620064597679713986975879609006443679767907608721535242703165156224112978879090486828854652290245199811758254856859722591890586116948790847864211618186290073676586607655511212949199680930448435001603957946418845242066430903190898043584121964316637990347003403490848498679063021957469161458551926060130142667828728842162690539127726090784013699364413101556497786549744919785563889418092981247849967420297551764126077221706195726192714236425359954683394523000772282084718151724382075212931421832417558611617974770445814132118118450885706252850346408617638037482222961445313240507749282994449271006593717986462506683773150548799368300364134028868906837033359655729875011042750937787665100171076880010435116592941621015082621557217750536449987849967437150468876546553086585256916805336062909203335347649368068201696216615436419717267571191495848547882195448480536688095112978893249982220099860951764735698722384282194427380795807837838367581776660900524881834163518109726899466233436480797859847871939125681928324356742809692390516112113903769172267538216064771036058007282113168888341178854547831517494011393122884861382988868773120061462810445049043014639966050221790549386282666510170249369290859485745457038385005065021456822291669837757453036892752574842692601122828514441140628754174389736110503801030467326698969624265402869140931354010994482757933601812842039583608962383441419648661300087986127834176282142915674900399761077494841939887555076676051123164402802100923201832875455858894223081526770194919557277892356157092501760475551417577345770107253300403875551927228528962686177245344886994563530868926257350742765544481366642645775601378228514109846663699678557771386290958131845898547358343038791567966769495375239717515803520856516441943714406849181107551723516191269012809908763207574915363453501159671643261563035463218831973487212322122902687016253022035507443822417781065170019864251872113522937866720534756122462317034158371628131959432360036608071361510372542894336380160817545992064155245116523052660726735094334128479788773255270709010295956148615939599928381950675645352937149365521587606762320370503786886620533874165636732021167153293399873032457052803484204822253473716182611535196006957575861175439120151345808309430682234257851916019016363525788016456526579887666351972014974702107270460770645080460611533684361210604334842754897636125291948106160480785804558469862096897013977872548087376873463555462653239006296834602572233377365673854728791995380306881253927486902258845344438477488013106044244543595211156892847967882376964138568965280189929640245032498133081810536825685802187495417350622305709726817581012056232493481235793221909323859344356964810199245796569447302744786609619661552511792930659126811717589854145480546514090808973511972210270029874016933196902631825260709657525811376149752154364615888193748128384580509252043642608162842978771686857503073710386091898636643231591367946499006048989353093194206771570669950196259540954957036461946868341543270464401144900893149998004399528849232082258250895134929685180883190189065033086059105574811550454200954694332313694430838770426945539856023406944566324766699317093608241708862137425759424688993918525316961044171596896757769069321072601606648022442587333254558863306606422803198289025624840404574869754365905563847647307217220832911473145013149552967190855038849045261954513152312367537488612209560486289108304576041334199628870872516501435232615137908358262519060950137483156445344266347907391260694360918730307451457177348138603487934828853782253909619166126217401627768692660204830098092394942499533571866677818612134283945228523939296770222453870089617444241923086696680522076553406277790938325255434579580916214664563847478884220711932148166770162266657454941352172547102163988350942888990936222911298633616032151632990929735934617759671251764689006129804570911144111858480280828871985208418748939128705147922571707006195943855539717791263258949495184031088154331035980725148431873146869704589385953125154161273453158179549777930166535524254154651549491735993762518437257803370210361758060506339559631396433194976672083516650776369004179610700584299796505017364734795064955237692028402091067667236384433750539676144120204430736401267126734940627595618160968793264424867195772429846926993137480262311189382099497495148955277388708164736849939884736030108610693217791167438263669474309788388776542326035231742904479583476011991788670719062414234099931539928937666639493612599296611819299973707493085778592681316474716821124411830129346907655670619955658321196672087110188010878746207620854642183482365772495254717595685157826313996560257249620286905627026035949566283609810960167152664957119076877625205735550018316995211495904332209314235296572985042978186661305479946867633849923814021399620338229729992351458828123742153601071333353368032921912989915988167456478459750639651585861498645132028278632575596676257392187863697334803228014315280210524758816632070977197748569109529984464091717781978789991918903935208576927334000020707349972301366584859866769166485274303869722737005722606944274856165985319917476864397630441233219527797322460405270950088273906890686403229265951830767081018878557761503515701456941004467880118239070256940410862603062644384616922667675980052685872426778637029894746843654057060268268184318511508860994892209992225147497285566216217792745838280838823827486827874283282650620999125395548805742524733715775468443457161003470111321132489991524251501577995982632808439303685287426957751787762939688630741692875845892420925170214068290496777544961548571589376678590548129903110316611972463049289991226020826433909209726236766576053049637309691208099152947783202879399927295828713526610419732091367812765442748035951611386025789685042125807296847914263466952202083943631344358441241376079010024838473833309669861699007826286395119035799512667400632875659819851604509379405555658680047213243943043340159601150054315257374098969529473804102227042041272664589426367000053350823355200143170313172630868771568321927627193177805661917010329006077111918853032805571565645631916824254528051406506534175772968756050152345582244188973524281197422408825023059521154065689179133015522539796950332635457003027187839630156679550996947824000657129496736166988550707931801793893928278070035743138025246572399462597456569556574327133638342385560146564295491777815705497823597213562791463774023210008656825235496741808012524730007622227495373360377696194133011674965490343364138522339189470118565406830736909076007046262202311574592387330966640124382141128428204553374673719774586055965037337002682382487053910272600878569176990898840894799204223861741658924056663535751365281911636245738025442097146940524756096357342558869605824324973157721426938147986325137050474629302088689221783042051495516294371418459280064328350582784496641293236525640956582489027401447076853306700168283120805114410784433041850732277573342350200788301058530939649680112995772025154735503453757163290807713425934444580948867912519682536279335965301496677708832503300509478446976859245618327882279822270379996151453913433900642740472478847965090424622372374762118384171572876453972616189634956040113577951730208898729885235797679344008439081988827312239887388242488814527435481570928489340531796574326715701535214609494300151086686370801583145513624750481633373585187301939192422317882978325930260984599814034801503486396192548512231438685827407427520297388661081853422339670111546628642788923517045054286388646831451600511968717900937479024378915006437240443751148831758767445730867294440269676345706854049003935889412172541608000938044444120127246970881120635086600544752289520956390908973125609546182242000644716944092295370545856998672006687025138543669055470792848095438475339628639196421331054282680739652661203815163021095620625157776847565207347412922520257610169952514143058364021792679254723375112801191687116986226489129784635043791816226091418928180406905544609872587385769891851679024991549906945148127803984568094002565671677484698418894363750862355009612128753395811288017294420528626836419952134728246196965018778471593089209924906287756850761867468101534019779388817861644207278682797792198488875293607767698716805556412620437600133745481637404342822773473816481927227973966505417593461785067241284403688311143334617227104415178254173005298946183421644074268285897885523444105706803094943049351113298872846307658402569921840763133421686963727124404429791117860264561813229934132321214373134522316442338392057047598420580809752103707561012660884959001993357651309605337313181811748383758960899696845998384702503339886151173963229832370172676442312020711254930296391592723045711314870260750814902816055894085738075209440063296661581917823820165705617244871391813063212964373700013824523217795483736852780172726649728346379160861524271436033788182957662241410029558653228819088930259931381482604799453705135484116612251159157885708408330458431627393013089706463023518684407392873631917511111903686469645173521078394219360246175951911718413478761541055287356879559663767071505602872395574371016336940779413366357956788137154662668283371530877790757787596664175702447028512631396572588589276620604107001692578522931624924005914129861582994732734219282850787852060902286606114577659353263414498253808303558404858106917571083531673434721212047254641726496114946219497450818749981258225986910088524600944879440485211675178346609594180096334664703990927006402251046280328104948078602303577296203483169860817513583917034584032386620532254661168143482005097145712805822720316723510321438142385211854704375067375767249405827800159705208394943138344818083656136220611817726062294785949869732530115421354255269353043813854330331650437744111981675909084136923796127813241568327397754543854979354009193204507585267011234106805656409979508441470408926277097991939261533836536418115213642561007003710779244721956741863171551919016425888803914149356891688709416163439421308991010545618062817627816708245100565468221113640228190048355783214670898298107434600675995093077670062325442939479757579507315429858431417613208473605545523668092740825677347562457818621236664425208185220268982910309620994057590188613235883012123551394785932228109221503086166869903871993685797915993499889782232076231955612620090567388943721686032202493946292903526164107735258095223893476114907824820416712197657490404344222045701021287276727985637478845032349756396032161359915313080352127054983865078576734169580709604987499471317239743943299159589140445427756211886825814672388828545277742624152506586243854884892846954489629594710511707537363315322641583777854527363398549670385066799501835396002620514829610906741644915686882773556640088923498391790834770238127488486584258127958455810965237709905327686842959255793465519043189561641387437016008840119314415256599087936089144436054474252175111397371834167504398321281568392709882362577249888138714742914485273066635542781872831389319159412963885961349640279250826088570693143678383923521407388100560280969221657367312918816315775566235745404879651640553823097236440535363356878930187265464830005566786715618317388764821865649133914603276285313872523080847458565178034477513778524933377663382902751949999510353715398257970633467208506850724444554226541417668895651751535137505912266986004550070909704809979360320528747666254726007407846540215189715191345373331701656122140872122599050590682955611624143484217483395993015830585601644038481502430743271700506112631130802357829607341768926125079387560852211884831969548662446443207683605357037862168194155449977259128326360890934135728539589360907974632690479549606194036674152053950164489509701068048324706627164531411963185015961158636796519280329919173874080127064383282021038889004891879227022239538864872041600491894344475372669967902553452438078660843625317298165760662367154504969145611244031170197825316884373567580956110482959166332083502420570578410082994362616917970148577349542816171935755083351792182895911199749509532080902829764784883820171780320121376777957040228256683444365655269403236513520848662780187546519086521007752246728128236292435934353999088298694018621299850588820024296008169685410244129394654450258151346348875142244743795695565054313079774342938100969468532022528573066332728980078137837913290577420470056173637291393759851900175561244736139288769618988967458292502076763971828177656464089092437184593999769128848750490790679210294715360905463913901889189152628369047960443163185717690139594073814104509973118283424857180498909014145761655470096303482500845662957334776253489493723494610212475248680663889039504487800312246757035890979623210894703911541491367915981145737883523219309722621111442826108447336664574243750296100312081284899994841065468979544958375807087896893284339340742071262358375641412950220621036371459869520927234494397717091043437893347228161743309558894566137718131372598958362815587166683789606142530211067819071294086744563683039423415942693928543931988452138055365042524732566605457636375872349934622622390385573587050362558325666997438302537202613961557350746257869208040290928129942980633041741513198030427615023465393580413606167410509559502567360118488239720446730295084812351482100072364165344884282764179635910786902709097081699943795150651336404801635333837046630843884964581566210192394168506122492739732251964090540174761042175001706038060712422306046242428870739603196019946531027816491660317662245526484302663103956125087438789939212579351782774418815740461683462991974577542336134492220469443777653610329122995109920962005151370874025877721403013172342714703693773990924974949600358245672098998814699091041507270648767628983720138803946210047496603435261184199693661719305662453331887960307811813828418500028528364558802792048510389121865645086859893726631290797641940639539203795858897155970376543367922913218057277465701745393178365058558443667686546468307721510426029804185315150621701279767554191737404906332321706410493905835894178562779156212208454481306448894152719940024542170650574178455327178940656620722507608954137726156694114405683960526425261403073732540993934358754206352449562781216353384481876925884302694030822608673783332276995598900270022401949673755140898490565304097806038057876558044246788810284135893801255294622994239192057396895395681377528268033620933710905245659372300927008970194912384182661240002861579053961964728679796271878186922343463865988803453166499312775305333511366687865576305099383525800869778197510790568721310813276324620673090685239450899200991959129014391030081048670317041185545083314119797147723440937351928402460687471859278964220512061121162806942564383521556601112799626346990277023517312554272924071405968345293383985212298654775272684580123299508908684141763820861187641627105919437521657245533491511153148507107086373034355965336391848656488921104920138941375427391177065118106971443944595000441703719210365758869868352067541256349595813314438447712756073698928837559160382042864403844004980909419295076911399349163172561966264943288374820364215296304231669691555318877451373903907554203209825794820011551254125670084843069390497270726747301622191680951825051271123921466752699868518464878544863582862990059295052559828373451596489810584672032991247208408176838881131647250515123058899905524097376826619037226401879740670343286939233671283294488824043984953926635674170107524504634935459683881972452141632178999868898930548203157637944496885899921422469954910952925405448715799039402221239227982282424412704218019180472639623705929557623872597670044620917298638521814638057810105263291723049988383496989596286403515865363079981016098968845017317750057280289430851403167608981601670340311615390218338992546050190302708274879874277504288821814765178384711320591393365909312833087412767629181375317149027285353426602166742732616205873573329231896176996211811363599893781502729889030392767395190579302389746485898227496441301330392239731213285816896458516619266807611218386434348534780867290199395011474006326426258374746908327524148877090575264675019597890660394862523368891896909607373355396597074561529528681528409352297316527755048058098695477486489035945631714848097070324489648576305384474006271791183853460902645587007631952077254564297062923624835807296223962555060383138074884088832641318873367857508143986422777756045702463253973137666742117819615922242125401683637918289096163811563160028919833837427268884693210419124136830930765945974251420192565141753859552294465761440107307388418998391850117879191278748008883124009748169032148192604520917004036208784909935064513611544386308841919799037844729925702780244496272826091657436503043176830887709676573977297146252328564117070239757230855300565387506995925356304878130322062662478414557202770234553841773438723029508291133467538692411375209762180113704508293769011384386094471598033041301596248931759136652555602115816115146467681166803120525504541730942065479023294006574234275051800190929626403706684325513729359849870257432058714185250902709188315602954748265919586699820127407201971411324580740145015293063332131851622629949769205942735466151521571118929421126919860794340214610465843760126095407247716622579277481974466970894879721810279747023819390810005632490001594091929549341875887604733856428993264509331828884148386565143700348993469890081123456274151205706303761096967829484766711270875747626638378547542258765713247395318964324575977381816761333541697206582457498051100832355188951823809993149633523503509231934206689071395953745269247305743541247962762123819036373703205376316254285925304324397950363629054918225708978460618262011533385618317324054954644403138346544244244109528669544469368357524421488148786272908573905993657556020679979486165037844228104614642891343294945250701122209255981443299761063098628201646153173647301263805487994119849761665412577035708449029329066783753700451626658509374065857164900115522927706647722846138340245518627629351964051634308950023409343620048944616027743982037266122189370160111787196838718047058031612695461820584058939962840736714929336182607499168283799020083874045144314456358052715169628130116755517058464519912862603798124398767862301328472868004562795848224021554877344290365139011902255424142054461420511038927246074475194282357919297927959101661123989583133449973407505081229311837484411894140191711933565358456315338240626247288310518193311788246410862661560762751144084155620424184361058369666481817291927837743480820512998379216286093063304506031936591104269173233523426440260412479050008076474281146701287008317973238617201956055237614469940706964991340062144633354956735241227005258246639829330754507360922099984425952984256428453003826463903655731081045784955356476913023885107163941612916547663691765823757598247675549474419575469121550337345972505888677974744154459669876818063408696261903130713224297497920826041954039046564982948778272948029335668416412080297223219516466469632498181041529498381249729527419347322386223547211700208613971241440869420145964309108043518852313331005197167508516683480610188874259470260730066043030115432520705591067674097598065280507878193573592028823640810916292246223828525609169521396865238817806962117517238434045950426244012856827848682149300433396351039003862023447050821057175158020711632511336816647909659805184854675700040528972133955646535046353731775314503090706515184549900250733846160073151750374083062430852660472790966243915892210372339837312158105881177636874477353338627769014702852825078458275610573590934932817782446470917111695407395015118662879884729490975176524389820522649344939499126721872140839076723727515097344371321859130798452028316540389001608310284725972652094873109912544228653574491490316572172939906699084308807376677857035411174341224804346614219731339810626899245749468309201367089485046387370141090514882000531730426585124293977319114483045821640991056143567352222933628132986870038286859871059023313205135584148569706128568657370607247830527681569777803566924726873744065271375219750440231413849504538865567518147976134552066622285065669351975551263428787217562169563085394140070198574775684340707854065102863058941677720324391839742350612070066436424319993446057156743909959993954837798323058889683189936804283203388498745932428031437078634868676069932763563701096195692954507830650788716908446327129805460233806113962527950951443730840644533919458399235269199114086614098820562892490893613531162384620332950212280997196931431580170668942291235441741032699774587801666712983431499328118700183288562183653678179266226924651287904941198043092058793955874176028554260674032587941087619975244067740198925106381053777386202360372526864130324827311016788527488779593160005847105507083121023366106528715853470085621959073645103539384406090956681409596289440829340211291167557286504464448979455630714291709622714861358597317538286680320641930055550567919584619405126641261712699837139348750224450538046392848691169244099014853258496132069096596657964495766588236046164132745931581863575764417429201328902273296499993521060961264153967051091948995598458659474299850333996136900781921780082430869299073311710187069198937671676871795285897704673589649229587795978802504384686010924500593433304315830371412802671164997099226587085179229181452164333320993045497531899389944405794315814904010287075306280104426743331715619557223436936990474342670500949378652225145726847825433568494484998076376358127060713537756202015865902535963008451350037611552245186202050896662440140921910451589897278205912299379428008474942293886669060490798042368005888603073658987935686940321004303355196118182137051451083976037078266931769897902538749627506841194403300927627002023706893387443313033939883113559702611434236250956087853377360290154690191586885346796134575309696511478630114588371168141712998587144429306075210279688463376245065055131400204135893228829765436132842559076239922152342292589800078025154585627362548173199400374868726289279002347981488170029688031285502889566047744761016445889960336735160633975832941324411231352782823474232777365409768811855045323956266824023394114040667899639157232422673045825489736542884806050183483683878289851175748322870421860669079537066431133688950976646785985422432239572011902615275027559047630594284585099032445414358177026370929256768938407898444360364629000048180261646664228667504844588526721822729374984668410887844582132009108851428840848869953999142427866594494063496275600875251495646612125209311149225763587248763300508882094760127404230246371400626168953137567489546709675918857640446460650858507900889652057444724853943459199288932865699842386967274948510570661286628432235659842375709729374374658379450878483965237624827469841188341711939422344260541345313151684893730763708060334782960089902911588031036050720097049113714165727607286651233708638139069709487256628836717424169178848191949161747239736360710098510379088689401989712450721894204318744628350444852099329654403222455029511559472439244929248891532498798182714293526783373375288748006956360139281815090647806935574471450581817368062465043998366602131569956991813101865092965979205810159558751225074265348466680167882697128026409100803645507014507617810750310706728236445943834178708457812859031135685096285292562353198740100217294016837564634788438117913610872989393497606145092181585601604231174380134623769176587233577558774310406837995504128237678943557417643855626258360797693160036349320520355152088059153429277389266226996369643330128370925030779974675908679339301486052004624659262700602448833636515149654687706170285096898552695749076489110368464784029185974676239182384943593188847152954191492864984426855169425586336234015546469773684130765204738554119944877672167933650218664209460990037591354725048672720541119071454547311310098261433861705607791478634253701113710461680915195501639530063909498482136172064312421043927803307964358599020159169056388610726952920655250346067088190592866961312941996589797857998332159658297854365525248295506541052788201357471791367161956240384268564375546642307620765425102155590456684566017280825667184994968008439706794637124187301692491242592379219207050922338013170490988368244634445933553472813970927711767856522911076456192607530560264152461094438153909083946558676045946215482504806061506429030784189148635391530282372552038551146793101039672096094130723716664247577217020452036454896939243955725742153793562441388547640338254925317981414169535208928559145857481977009094093015675597925252108441784489651337354525276012846661511418720068548757715480795404863070568475669252104112020803416798448819368193098796760025186410759958056704986978050231762201938339162236036712085714750623153819731956005272733575650180580837968271759716931386076588024576307353711333427187324336267085094298836151896455474710729729628707315539373267699863302020941228290248488242156318937816044746411698065194245773250810337462859029039123112128466301895752936688638998339881274308853998078491241992983241391676016790971786672031866343471304442974440510293514359587420131262225168917167200076856629178161553283313102702352670528116458974129886661006424407618256559437435689845279653530509793601689969807403951650782132051130868077111298089434079092031286911759468883915893711328641154081533615233584001633114001245938061609889468942710156799266121020515732594514209741924319341527486347090779888494799597095673916003021269046080676800774177958418518861436749913936216504278794855322650950826023650373794642682844003756652662982713328647403097636334693713944521198379432278541203895035073911661715827493288918838084842074515552077529364839145505737539117932264072368648762106402122511215840161977796253066179884848677537672308998382403415908550354332095137997332236949104648582003136637555083747830053433477282700730882478313051248650344287954295266257758623324107476714114309208409840481812425597888906634878924031005296206963092631072371774903911827417233192067689105057392364367783907824231036025115676135982677853759834967613022055094805460979708464061271854562080577405757561154141778348978329522027723308716067594885131431051771377910318640211456009594932588012933842767966835237987205920757389743326851998994996845816801883512620360416427779244070584631541204875293927638249151031564214523060380804624078010521559700138326373709553494763996570260405433815171808865569000025335611896855854820036225254188387307975512846011546419487676904142713859774575469979057023851366538545216337609787500002779877945320031965761646452924608564791192127572553236062587332258066830131257330580359727293815490811063632733455737801329365064419205406067619192023805270819626765674097376342947634476445020524178095609583343091954618735757157271791190239605985853558203518443542124987609500940287002686035615407339236285058360214439155643416095972712886015559816123155298652036903330836799056229394141786466351221793802217165898648442867917596285648151008634748478403821009707745086209090524244800167648777010390148075977741722626279642167570998372762437841449247133420821487559498875661783281595012316839907136699659392112171967413020453818270938333505713823399293843202778395733406417897583708030401168852904976832180320924421399929127611332229098673172725572756643114833123705537860094241377462658876815985006773736966214756793807725125032899512118379581268051616197829672736267133551126843017801366907966800354492202654746500830868451074563357074203201263304922521481279101005691316209285614390277053091864288823908913777842472726444963636455505024823820433011522722787040622453082528873065226924443138304623256591374395459767180939579535172903991528140687646432794492441653008288827325757694657140485434931290349236155414479129718829609612532513304544553534771567725999762384069373630196291233864944093603740523057431043654553641181696618230984903381478287643305346073028677938767004776422168537284917004177882973812295448473225832391542826601621431410411340833701884387447317952614783115469067253633173879135821014390350933194680656787830763879519463826034214213983170998218260802682807355025164255819316094884916520636383170502663283200807166301452539798746962475271448003538504390686990713697284831333484085874133659847378072496772065140382894940226684494357552571976058101195344978860654454473535905063407343244443013720967544259270805262725375697641596520235876899458498477785162525179058802459183195607537537035861236221458471401694777990773267706895211437567941409136262814705576553034742196664363269371982651003076554037519658052308898832546556258014358848812082172388153424018924603688541250909833561789471456444680257641720380014607945559244988157543221497506429171519838090601624576175583202492325337889220544843519269133923854622512065306340076723284420627450199152350212465844967793896119355674320451140833315853155302723463761368744584468429883206272592363705356214266740091405963822607509229574683832184689863759502599799674390825144944074983416844038259160581018377701789964872613824213825507739495577440025551610752749307877018543221785183953497116873567492550521344317535823663702121111155168257952037997031081305038967481065213155359410226726658333465982296072202838040852094014269666946155324812400619960533896582746305695639284756787552870779334167293380585318875418340385440025136304068265795838152444912381449251805067959960320200358529889881653681815934524977413363449585813933860599588395578184786362829702184799772847806422124282809155606275236174036402306421233500769696821900432438896410326784448201449807536719794153167486684648312753778153749429651494879037904229993757618125764852497489107488807147701611828871569664479965649451494799843514634114250918124742066187245134255287949050145766630259419089200308642833344215079445058373093983505004953544349917654119711080991477702254692750052965923325449317222699114079913581745993920217205722386774706411833166840792302990122858016950589087845781705752821400476219923240651306871931809966567986944313452869550628303881537466747802726691657555417836403637073825719748297558437798818173070845962861921800814366717684083202271653217410800693568273142781294708732879047804766770278337737143600837006497723099862074635678456028684475648774596432948496907943730094464000899256040120557426697388255944519967245331999746958456188723949836396290214284242853973780390165185483444006392325357054191681202777094922069399266395007852963553510400095733253504654108257111327153235699942320111062565608438271051105338249643756345362283570286489051886635032754165983649518631594731282550847040803439594381680416994001747612524613145910109275722489136090420194937618091005975825064051748294625700123999783817173716485801596705504802970569182809524271606661460405043115756944717461465485431154359173404681406095124755783892077344771237751221143536801691954253555637270690442932200957273703075579173322193190108094375804019053533786743464421890508092442860203653248710244508278589965773381193023597235471052308250658618469933113961544780005337852593988965834508873258560679538294955709367397189339377984155566083769945251479281354872327026665758372317813650553385989358708633334302910712839097562309147987632802413747984648229008515999921670676973236388546248612433885017184239320472372875085636535279048136131291534302630434698041938253630970684183114418863370411576764442008459452348657459532077426720706274902777049798272216431293825374638783578152756211227997838896994234794648333140936026410563314503697832012844469018044037017590894200716844699043719286878609158242442857655562285120172239853951240666138684381948511544555684565140330175177191687635567524907085219423396716644054924140565979292095355780962011643085239565320208620674782245045843785223436486770490970806920244870034179506304652826696179320335406644612448985838044702546556456490997076809873537760130904448379928393540559986135623515514241724167057219024096683650360582596227322598475779373295761360340488494543442308338768428913871462831830784365127883674946950431143180144382598615999614510092883014961605370979857923557229257758147963581484481092847978124879944926887947944101707344737019022606741812621448400095561188575487481431401412808893737265761021918015237672236517969388938566423392439273475254359484908456981984311033687718058989948349438976080010953362729840458970553291515628097813372735889296502736503974047005374824822977409796319378891024567061096650493826600337814005346014024583692765121310362583593962051862591661040088594685894601970010248965006266300121983550918350330293635057985558029898456798936110893815782789331543935333595832626767229910256359027790857782270785418284281848358086998908452449464500076236010325442745791819023660608180613746017770911369363664579427058484297904680676027872383889871520713511452122396276900860071749518773672113249023559678485198151008748029001380357327676853345674597080682858279777804563551538392474353767283664984889813180631597630174524195602570367193186113653872210558633718685411445972267274832841219196236442144076839268741361466108490374898430577126322931193150764208647125169499036758420406134113556821870003353737358354208809289441524244193963672822414981252755520047817708136788045619035275657005926137162775779611518100894054055722298920745410450245027574132144582131686190446717196635073620316917275701895383488228332066334549381265787417319484714297477777234244075757568589201244042828288926676229521972554491487923063366937401186492323858830208591336488873856842052451930351314879045386785450245334288275869993806502065544234966266109173079431364356806084821953854474441772538014437248801422219701417035641446385665212964925667267463852367035359421473051619540014931582940713442635118455563006059960040332661264383103033993260655268209087414649024084899159280004539883762056983104935924950747588340024090304272212406949303423757654115922379288178564577430229538833821871495491548725100100691862746712232375082182065911171846209870621903228749127755962476441485474529951162749070833860981317972974638714537706372105034788568991413617333380538514675727995018837686575772819418739400205207004284936289970847788974577069616277544979884211732643576661160506586787699486028258982046847792282902040388636564528279571386844857315423028734090855721348895326098867724861958684979051200409753973369531237141053833463383004569229995068000835454615211737280422948162502911059522509599186391636441299016564597677599433321510199099477102108120719253442233530134245162006510071750558285008123798697883761672921431192095726660147250364306703147040675253734844082238490947176856598831492119983987539515049640531980745267046574154531524685014239644264597897821235067412302493210528959443061602483394619899075718458617650465946515298754948051470547746619433669803004419629794574307401274495689854342116143696752542397555283120276274752328805149715757183216856629689848330794442640994389527847759155553450849535041394363274576441841018644313904691671652155436520926492636572595904820096388177009324161253234126567766652681171245909953624295673277126339022322730275627290285868017864058188750076466227348075794691584368461255584333394586053657133360505860924385004031515299541913280414191184728913485974854628096862348341699813956149920420317376335483135599632384887681497091327957655287235352761543634633875848129164701303082029324990540883255056943199375724436412473941654914552608169115328599065456281569958160908484475583369581440963387231134261062045415170108311050717698374064131235464652886594820721270225924838823136708999887548849595228844002407391446036224689976828790278937726693807751488655608415612756417861815373281351560814714813269060074695958463225424742815974597641080553133012996866921914384601326622177168171340771975302329584186442988522395840262067635154404215694852515068010449696840597196981704648011545982474988546361052401717836956549329347433909389716344994586904600011219568366696566110768353556138950948414161812223959688320346601336330802827879010122233050181247796476612155184378948864574868140826101449275769074725597685095075812294007866672975383088659790074697331092393025201235432542465000157388417195096278461638887177638216613088414675743210668806284039745703665745908842886380460891576403821370291464550018457886019845959387583218231474756563517153972116691114449863064374166227915233930730082579950601072807298523068402224923812328982595768151959045412211877807583116245880063884761410850664692553180493919127844461818248443108125805107006646417154157936719733754249663076950275402828133289274146676528839463256153837740902758004242746561703008813822292457750127443954805804754355677470923750171960585350635979287675585765635996155407073316169984620928390996184669809257886179225083630867511884311827796840901124081132825686242951014951493301570168671077370455758105405297641953882957430446950211136094598464587059468949074307521955392942708873812558850877466978151942549249879541922404120258081542048135513556668484432203848045073745020803505529728395630547941614919095607900042628549085793363521298158237829995659986639639567426659146198331203218777471814656379126997739021963424895792173571942597198366083694787366647302323993004445674526189050716403779923079001561212795901661813615386516134825703705279524723589437919259973717741149808125918036758430928175395204117866504203644657908351664398894465981843408795437195111185516982708327714920141661118757687043516041744823942386366058452971136675854676450650320755375490128093904656632365414344214981974436203159623272681720980443269843884662768676070916294839999797743421622920480003787271293576654712496616393275304279675013916182885438672977807047226038642742394276508478241351332336914088242062812392659352559148470548622883930808924749164545957110028644092080990236495696916131441177780560326504326281405215196738839566562342805296796825015864966021510728277365092546776340369810075724199091879882922058320265217347368629475390640565977406777574323649443430307605064049066179724669787446642387904490953362756848146189855362213984075095123540937837062022437466703626608314468729486423326548522347661167974800116856353376134130938432096006907883950842808035214621510356715304592925651208042000048913099539064984313556821521208468553023848546435569561906434003029824828066356625698385436964908163610208247104193783253540162524926962052281333556982242360566075785179040658119345730242296141441172404312419784567760182386838330973784426499599350110563367266186176317435620899441632621844955225978397160581499751436297208744225200026640436140954544367835072475938561944424953322859717294107292657869662501227782874043933025983633371006369449584497542971108089551770160869146315277284028884795938799807956831168997508222127466834499135353026359766449649230514332400735592874934733963563019791074579485558694666415058338933671741826482244180682717321879585843563084234873359929340844842848528315861965278686338529663185716560038397159822778337955154640058464520248438283200474719825631665624571856950061318330719084788656127124110634451625767844713932258861812532550308510125467195055948062573159281460073360103031259309987813912080317531265453292948399652334909306919740027822377938632106793089960010356463302857045902585275584250325800254501961481743591617802621323240810256027095996595088475039059170308677983300035356288697606153334406795713383107384958929154456114116452934864836808260241129048792070414998052128388972644352323425006572170886503788183809932861992020600181758072250785415738665908298384071586257250490791128162646367999369184409844036565999491114179156922890655828039250811894712789935390367531011208941040767866030229497848763430815250640042138426980786922229525071309710651279455289574745612895645824032530402133017737236858943375846109902411899288121733215474904872774927503649659885937279211892175556867603113192697727433057391614647059992621092211266960224375702234881317712461377445978144697715702332256654782108022290798129040011473214079565071056091654779901853925169601946975412014896659298506305782432554167887883427950746251328881002551612059566345880747292058755456682248248494288530711953053548440271806656259896466941185338392266174347983023911498408516469178197738835784821290193650764710582999920669119174957837337808652919583371335029762340475924366485702457948982290120622127534389885958142056144816937210583994160017538114022647846668672826865531940001428558452398972213361564892682663918018919716461706282852399339296353671879288026052221182369584586960336601152537058203428132941879494449979026824008757130389698798896872040329303257854895574011023168620555450066469511127537346690882247403016786591198651023318444971297482691244015665953079031948340853499466766554543931664150415042180032485590500964223743323897509569571042982145570532801400636482673314496430965071947157554819117122854392914198011096253685634864377909865149308461275453871863450618211640120535442814503747064467278165061035902557147541735396330280380522003346917047626624202106861401283779729511446276295250269171457860384072047593821474556517030003238351233146334114548512788285266692107976711767271901427853582061540442886589173150995958541727321768691785587874485718235777710533240282758664835768917495456842888450425390198839191319366325107580392647939320768412473050337742041238241836755047710692078981749915515099739780903365673924620532856366869839838797669988380755913323472678028839937002201728680295610466294840027503579863449807015784926514913433643736365028932051714907754225483044177438779330309942437026488955490429061339161646397142934911855726693222066414494270297273665485723760458955009020066803737894079529107291224899979540709858534728753603298455054746222745149341888983810611933084213631564615247383181535637079860662917405608766624783844364898735494220388618219864478591180832398261129192016783342673234874239041061869424918780123436207736657595536498150904862968522835138000331471044401148585092920696105201102259196114690094620580050414907651386535060763387324141219321663710703016053817766188488290159972407401535821395098254968493490865582721417802325831852526302502375177899456712032751368192558848328828145958083058326020308341713708497096558792652910514708940759667754887773265311992361329933568098915792832731599777552760526851014884000554645638915664403187263742986021806873055026685625539694237064334405605504093043694202455795730757017470682446512842646735815035477608554497676807028392359631444941035732649647857199302921196407672127071522469160900006426309230535827340202593717006327091343493903974681009228358335933273713632008989104937728262460354355938910628411868517495346421423693590893693693861345054369306367629989701759293914273848002576215639373282020342376498724506117615291563326093210424569148961155052349186091748888790074329726381493640017195448599548839994967380607629904410708939625390837632059732815415985727210358724844276386672067213634695168628659559519879527366928713165314792441979183941845801814239470042433156539154593935770889129636742121851114106333526688759720638920396528343591946805684654968285403844775039084714927327228399546160629569212546188070054173573532638913259531224829088640058798874207633338494540581728034981710538664514571115076509413314707113468842818853325710804777980550402940117385083060500236657071590757264850422639170121529636404286125089612625234409167589169662707208691492656211548837426720694360175808531790168788961575728558465489494637512360190460269656734812807517308875342856425379692738447279673020012956033146658346081755670205162430165732817243756796589657096876047414874234687391397351883007441073701887262765564618143048869730556576960237032128557182254362901375917032627007111506854273668900867036708739520905813714482588564824270950798908711724360872942856955144113851034770263421593825275241094602610377992266866522322718585339526479362761729368804056870345587385278098493177623217895229364611540915852672890557747124388894850994771533216676387256714401812626728611249890662424493594641234510117658363082508203104554124479192274673174807401752863621703389217424174595583073057067550964251427754078007713277314334414487756575786418494078300796768553853582776458640720290857555855453939840683788730467588057031746648436421115807191444833295017438021613544393134426384156787380244268136130557442778892463129036771673713633495730094878011177493983786090384869472684533662340936420221506196601223429015098887627099983468581253964054648365793787336091827254968925378336649237624529233020364076615526949710822627343959808117584750550588650892683469036463990827776684722956163314532956646792908278721948098843178210688296833654329608564225863053725616633189297663046936981942566221103395744763263739940757353956697825183130585509409090654643037730023774158747060816886855311660679449039380491765154270188069930931805576556210798293560633396074391215653029593396124854576543640263726304239781334267775973733284505362669588191046847234530700771752608240995604811031457441588886074256292246566940069433232636385794430737317182087654100216493773548876841847930547950181482062969412700097056214220707119568793243941339919299241116708011003881610411745776248822297427513816544518931219669455930987033076522557625385214202672068101829456792478279626374373384964764284969671648122007822151747172731967368365556747291568363958110316990349530885940610341071619777385387926096238969936591855181263286463691945222285360569152554708360070974715212661103604856174460884846032053672282574009824831378589147285598420489337491546821634223188109007398680479077497827449360299231517574268856355785760140848732734611635570363974935830438626362718525911482103519997304643356250187364203973869707163026702411918644431713983204258438856379977000878534438405257590220203318793798215240733901694492844819163065974919265103933511639723601005330261830573603023241644418417622892303408475115922677863649468831180412927731133374166645086350575889023482304092857648691495840783125378605722157018807137917821204351427932756286069498515293231404977644543603973073856639578211388344091639780727904188879226045683753306728642891002607085354812976753134529106777680333291882129600375569809298392796273777132808939602437793463241543054966595588161700022345331567054360890574421221789768663077567793097484173073920643189474629463177973513396467578570361749179846257040963299375912864223292943283501212880002046732085791070414483065325374815252980604596625151660629244456345662572306179834170212326635433891927606873616084074179194296844307639901401299505155141688291259272772299838081406803979213322434205507838953616446466018123331640764610246282065071599271173720892911483200859249814813527157408550744615229075157194365669609658570651167003579834146337831530929343012907656230897920249672766657851484945558056859817375173726410862927386127684222820394748383759238510922505657520724872028979811383940975296189363807399220387518712318210238324979259496572153000506036564769486319290316366795305231160930240480713989207707946287861969987713735530718537197445852393283487058129390530440726702084962123694152899238982336057272655843352351086770867497033469064657238821482491392075169329534054172925659048303888766092465147715926523364388058917455127052364908888863301204629395708209257653412843412981615481766669676001276969321814643882757077934097082543867733067890338969938984650571587248029868668690342382651523228198197231249859543277251681523417351493805924186167550556493520258792562674216792038549151962125093696270283536942009382798581152753625583525530561390602102250140790417839282104495785509291729183636641172946669134933720775613420905072908592232050116726802739573201087925964486150219358282128380418861558586447354111626533425805353186302738463018836727795305692273510225407829396277018233153649866285564184830669791892079295063069920035617007395424326845286920677081832859885170159812286311294861762023773279303978565789036360377802759478686272794675821966071911080349718562239725435033253773462512372566118107719203294161126313951311040434567248091803079103150243659305723911902958363125993205510553084530430431808683967325658271077886198559214815211860186188713222893675509473287775323068150530358469972373303041770477129154864549332102357247059244389711798877750781765550447109772212399139674509087345823017634675041705370150844634681173464194386418528680746380155820523747138817878291928159442084452670457361011513258255780457799138532453418584125792095648123047463804064960781874533017690710823790112838248354743241816658144978725413531153941794051573873977957439070393976380696089260477341058952108074707780659781339394189876097848190978940587992515605670879949325686785699152715687264480762127995878609834335878422472249164398018475247666887477284946066415279262875706559889046262530247480553126998195282074358565317019904805220630328725079839898856919719376671428187377768089005337263758927392771525671299294933376881863336266747593812526585654893007172674738019262939472528636555634977313961134165230953901327188735331908344942110907529281197221364275029708211520238853154559183060668381429145004663748112641208728008129921257139631283404839769910427251187434527087702364687787383571881036538243329498573238934911334925401373619356738215098544857271142545834581964613051068156893788476772289105993929160689230633307511756059275087991138075641426412141513608477001855001265151087883247883429204238289166249095253727221917115222625882719225647905718531392684619853352473854580362296039525060420782055620767540902802215043297890165341472534561129646079467315711155402431454583943146624838634629291759609880988155864268433093266666056820499305769535451745542478002625138869121101715308809076784669582795902477206839234800055352722195924696867262558814631877970966901131235369702851852194390588225680816372099233263616818603437942444528092774511770908446585828510506104781012867068604539984969560063374596944292229996057568344411729382299044300521264252409974105889771163275146413122538968934829439216120766078754046332569870769050888791012737841267431952161264564693745597828762815390126369227776415164946050494647924681246005959194243588008819398106774453789545904082008367886806823225957242014793053690863573794216362013510725902280814262267806683975232359262144405448277986355287012162581627311163675052576336833994151937519535937436665584592404548333792184538724022608744759387844262595624373403110086946682599691228374894757700009698704707814252944998908553637104004634012591782208168758523735684044695024531597984990789006222272127814616162183216312650887950594150274897059844829190314818201353154974091661869178407318039105569964787613082899661979809946320066582602907508071325147381045725144734833771786143392810599852088923781612008278165440753392871827643394455863701894381397759262384627786148432883786343163221276730301472445532856569469420296681340342708160300346843514565804675236669638491399605412787694580073022419798971217623013482450852115909461161662865423129860837340573382460366348039744539851566193087662383344416867918344426759971681360030638941589530465047500291937934172799067865764060219950358579057803904816801508188927038432360223371888641304118834200249038763023331006934051607153448242265279455599284958150855823941822618075256734020393630722890540870258247194798408640798946635425272868179006370435540649593284125718880020612262729234906087849009142743110448741984875357396791959671438742824806724650483435747442225267063646997770130907240986819930830824841607504607122793070229976337470389308657072547074281774205774954221196868989915409914490842211464816142727648350512588860506808762715969301635030664423654233243678440228966951032469692410251365088361751755844844555401917556006830316583143215488778146136826197425705755544801795964357557054972325558720452031376086743479564230845975914230523283623905718566270416488575258450776308619995173072196427661775655383066609516445497128330986237731257395727258459194150055571159394501925939911039722618782155295602235579538279056188191279021610373869716550785420899817065076151587715767221040093728652271097979549470800308229912156660989999046675510220088695648603561859175040245701159508362121709945159286772677565252899332133221634908514670521728133670660424809841258847069587252560901267306888788053023326108746010548148788597216518902339040950878579353641363518635430271053489001850061359148657977331015663178304077375402395317768653943329005361520842479456639179638313619002370236006127404094482980445897977882109894008669774590298894095666186693930194654747185969574054925161686942968553355328309406688483634784298319375773429395003782184493111169307738007926229253501877680381628812866022710984754374879153307471905681787660611426004360048633743440443222174489039526252382798793519047229843196504445174039511094711186292222433510666997047688473962943287155536737150567516486808873163585134171086653120469557137232399227010435546661869716538824928659516368564965002643716377202609877335426497398973969648283517792179333993010915365364387665382815700610202579409879975217059587232509794828396853936914759063050640931403882965245692148886218112326324404091599836902918530164852147467254724383850155819036162271134131561303154625020682853164086046267087090996292680340045767309328710156872137776329532770370813748149063959526538723648265111391683965824992239197935032476349826901619653001781643691704768289416664212709746858946183771468966223230341716785481476188794818511799572243185174799729973046021452102965841955329373242718384452634521702281695638488725813048837795192022007855979537964795243736291814153123946552314668175439198684772297984688079336211060444279899303368274454601252048238090150330191447339995734062415350159241253717510790955156536075137292011978540999139410482120443053892552011144322663768124405105552122268417370643140480282561981979238224989751473895890716131830592661702511780220531965441199852058580848764086005488662362335680145094609983334134204536171227175966744957379669952934539993716899472199359077964731115966129726443230585013047699027086336649681692192993284165113769664219589616493733250928771178910965513969168795697557854115072055156268129753933584933931818597871912083649156659170433415456815153790784440559692175583451186472844902058781943567800953230399739405597452932228360037320976526975209686842369859600960597512435189656303174346486796842453285245168022213317626595696081666940566875679353570704987097232219344038755597108967206691397595585517996116941210061783899372837184326723347970393018876534066921294634073854726343078041328611655344276340272334088051268430615005503049819306206611108324347622109496235652097816640271874876305465410760515673006759962452604645209647677174697869462550754864125144292891665201282646899034524769625238520469003660161909770190919095318979199463106224026238859900690706009223246613813090825945211977617648954566403057508039675151904792514493579136423696690845337953600420853368096397620660102598428702679765173414671311607617323843732316974201647500794359079368382653131221825885132335631279026939623003056252399650752808247600332653915601024166430576226648516044077185656824789041514626289417234372417055399110864744258412277542724649369371895999391605624173090505831223864451230226110086382626873918194975226265920066342761427117903252916975931739370133833798902052104823439539785641464685924706555960961785442912869899828059518461788193272102051577263186775559839380614552793955526490387122844964944866879311977065840112833676456146517502647055810931388813118667113902179105749540862490689972618149975092501601885506700185118245060950889289142749796715458831273931224246383012905469274978798817596267518489274611161558390326939286371871006503800178024295594860994469532021618438919257523122307470896836871231793172885695389026832512318952539913001343787055293358819073887122966379027013255513384492515191318813065417370141895773739640584435293917164438419305476327314493596663951162270302578196582864756285990346470856987568174796472840026690964546310377850121896119385821382279580260023788323277788476833555546506956876920324711628574136007881417436995048277092586403394680257632100544752258686888123481854416879648589795612609126307154258054864688889776740213873036376332992251289615963894215069431363536106363178934577540731921416065668226401711356047546136926111483959776820422557485541100241534375951933381338905769969988986943643337802233284785412557346507536021363306414460045432620337277957664626059882168655385328510154016900111367254250210833546530085002860002837710184913661452761134874202274507762600399431142974004332051801058191157132350887135365119260696004186929325212347924793086069881277931637240364788231897130685217403352735720549114215615799983915260842556475758682077285238236152798379848983398195711554991551620739785352842182944616462511352343768818231736661436085520702610025799060007441790716060992946209577731975363209562769061155831708747420518782513692768495447666707859102440106121081422330891083186798563897176608903163092027636349491363298811368632521480933331758241673950600510813291315435461138046523132494954069258016023499368750302333981996219543543950181968948756364079987643207771843621276924746691043876761074729794430687546996755782297345172687055018661878535234506251003060699424069881418965976865051614174164685926834160046807830873744750438638162326166652988865745997938507438743173418949991925892635751077987271393249098095958727205389429183520264748696427228575236659425191143121248840744654291544034981179500274068266426725102049914674587586632110007370704129075050480800649954765901056921421454299370655084790455513383899982393180543945745782853796104133910293988178783850133505084625682303464490396474577839288778123504942279427430368775235122566550111404852507854834118656495499098756641885855675793836975881865362092057445516720015213146794424202908733190591506276012551865092507608531882006296772010912620885573114160748942191766706562172451166619107045681081235227342276090829157368842441073597894482238071270934227879620341339346171060622288990108165007160473229725963838427747671168106485504590916518136191236755122069064729527553451530003695323131129735683085859484960169701841568873270099406560392157364993510240457400923102293179955902945805875701416536311698776085796967709632763358885300625888101714470831753416637331975627902739474444179765595867834399409181546181543444203296385486124797524014007084826043277255898432651870857967788594868693151662561407395636877614335497536224293461699739931832227115912312415458489960984987637041883241564646694134168342746719794945743726384972947569940405549083970138942632076999910573556946602159496513716736656116563638746943347586650919791657383961230004731185624828891383765497424672590942867289945587780415321316661859819980582407601756462917014228151389784963838786592954822415521589981460920303069008115701077577781428396415149945200768633745230769129728720813338115222049732386730881594694736490260367013370387844680846634873958799931032972655650298053099291016320865849585115597790727632539960116606113945546121455467007935910952136296638363863031905086986296145079392420293425813908224102946245944749091836635146596007063442280859727338471254489226215503574664939706781517366798494935267015898158342392363418975227155239029555023883854233328130896829965777661678537181577258255242399199302124417758447287046870953939365262442313343969469890782914390477095978585032698840171090568624935259452440016569857160005493699110424185876010234334921413784203700194700262703241683404010976660988898085519845295562818612442080013030903470859339172038856093983608583308307078200104877612039538838668088498480276783064880228194380728902214387948692378375929182312919178805358468787146373151256046563529006246216030210299028354291035266355965453748642375762768567573601325818489302919043246676492049394269644874994352680914562109897125457456855253595559587450517161008441607186424298078497294556081612800341254239203576594344816777711041581221584448942365168852168784305659433514927994160238532380292889770946516681527180276131615138999720596179263367479382359928329205811989429152615931549186977691043088857678822140836007571729683465375769604487943457786185926427594221788274195692390508167247484265339130007579327270218232467967466656235076188740277951504903088881524055478903378420485120008239754768908664171954161959448930816228050907553778326549160888367377282852601436024914986289365366415786021341439231564084741510852963078321576530282860259663783465694007468096849356005276428175726254544884550582824017404197510841461836864245524681464052014115974643014576431632997917974366062523195714659116356588220144262801673352528968084446617541454056350041215356709674117798451158501291806626519031737393530068281718386216497050852106631910640455616320810977111511754487722018972310648066514915993873752023193992023850924236447694767914990279455810061093959717129413787910368614787746129130518429647139830729147267690935618503516596477097081980980581898102993440065255895703385597696914352429834316443229683099249325070972896467397632917698148249992825532552760710913635844489915286178892728225722313681000303268982407883279297739058951300632924473721604177357127834494583109202997013026564534538638882597952304309471015282047144720658629285306568431417470554283700939759937172892150300016716728700103013017388176914558100550456587231556970043135453054346054195519950971122342925899006357160716790002449724503870708467042476960800626417843638691817443539957132108526349799144418702352094187773391718577648600318563312889310743735542567755195488887318620942270130572736667311936536398731320508876171984896386370711196172301450439063616732832095360929399557705328127920432577718929066333977096986213463862263673917022917348331451721157133605178577668220060992600934356055617498667119273086791075693369213389339159945208566178198676695886758605377198572598245223506312244982906995110765571821933061189687668229047424942919077095192029214989201346033850233073315949700279600584782544687451831659812953892373466267664791406606700999987140115183608147180100176078278354524996915068091570848939524787194073280811892791370461343620430209514614929053909536410955657057831022233891032126689986224317855403064686078185452906516966351071105292807320196919854857593041246299154384557026162230990810960984957199135584250739470357894237006939953936932765127548077848684857523430251826057845181375292581057982149840472691292695277163441169919511158365175384848037523018894424301049786667639617481008906136551648507585961659578508913256524205917168845623229195547460592970636339807234592957671774344933620402406389776641364184310243226541253759218174168225010773993911555631793478848016444812508023389633090445919305518508459550586452136041360893302303548922432078368071498486031442324357467526954781044606096588456008617475636475637724640298938873689964825889771332948458389392582339179723848712045235689553283675279487127586218691561198867921198228985183373743330338628469256184851875154204681288850470688439756193861192660664309737281002904938554656734779690348364214366818881733775353839326269583180901883430483924435625311851427142482890342706093991201797963493562837717974207357470298186800191376692367672167357908819482464506652774597965838960266760649396760851511387156478766211447882565328004684086850810833684233173443376567770107917567788165844442531960553308035949164913165442640281306609213188287438627437743914402268517077683827510657040765581565087654050491374572846793744715585149394988442851101053940630813923388194346447519882563939133721056254386766233737643466163851487482180817619212361139596631641515319686319636407422669140240854965950015172751745684982768498207020433798958045244480357717100575952154938757167218515692652294369524721711056695903185281642853555117520347929800537090202604099062782810473224911973092417405210968015209666004229654055535898723494627910134213288552267878170171615107525967331152975053240108616778283878328742345200203062627728741813914323910730995792423707572725717649009846264306013997140999640328452684204370682957642753120810998428203912477230520006291638774755605272688325550102706044652664558632810596365169178167033870712850264586419774778071814639542516352033060834008028064675170254393258985037143248434805399112347207742056165946064329657553375560226804266166382408108391729789489597906373974108300351810783359109511517479198890781758367899584342909003954986639504827900144914889898577772450629926500964325764542620087756294798584684171534545423075454739622738013921680181158821915151578814278494272321010287221590734755219895091946615383141475513037237961884541696539719602798005425812382731600435374288186821833862024829239389348285543468620247305233613242803971330018466325364707171780832690577295900703790844724159419147078923238244146824197293592891794103191512976051317359102784417508992362056432653355635602061470665733759200041941147979943794085611402214587663220901396236236561793704423030016612542656195921113891836242364372927680013347427470028645134802641171908563533803750548065536704115691739207299651145915858813621237341235164469680155472942374578694508273461144894113758389203321520464850727420446993612391178806890188492456602116536623186640456801861387342190015734491735098578791766992123554477273689760700447968158789710880701057545812649208295019115878560616747573383307500515893219273258573413144151418368908375450285064994446969624596939984826405909758466557321448328578535059152502259832732649321049412513049808456100070268968591297620142082728222810680594147250904855386142921155320191218743687943598698068055682332175435044895978986627646384001025364067214248818838566011703716160259395525627171436402719174930118459031152049899936127260154038969666560901737134543302438135127336008293410799193317741931528004998961313144243189336237510189105746246357669442535667070083556412712780876285217541986054074607830343882428105967200853178697550762256777952293794639155048964209000850637834527763685560436484417995262376715871610371385568752853164534888125836241371958886827419317680606348381099325967523881325337759389959114219663013379095328444892358297122765293523084252258021116009267403111335529697191561401362911103401916392408304306101887332303211813640343325009013512013715115258342064324427313285848233157212780902384986315699579283308625733534106892534626613567938580878898643481742191585399344618884693235450616784271220725713804348670861050693803201870451486636698948495508582778896820712659583627334647183868975516392606106238746322854418941348750161270753660190297787478055174182486028692784550945280866072215439866029230799605656370569033544657019826608402758038334062996581933540354474073196988346908799337233847933268062047383883756391036122795330794220501273782574057509704518695620695336194922881944339406026794020977528012565541292085120325262283879345539051080935367919540901627025245614580442322578217819611558278623694943707615400029591911602829278363325632467513982707266970890663139339737761196765041265001181447443566120268023608604946620571201377684017577279928245504640395686257608183177066517654958817049127918626162717356892752097157930622163613503489919004364857924824350804946473101684930947904085246465397001390866864723193004696465652704950960178142078422548813380991686853115948291359291007409248712514817842151629974888761710744535345960366027798710292194061857818292355267240861931154849943634327073081606317273410735819374946331276333348737381630993111959095591918468416987045820504268609209500897825895187759119009795743715750199256332913944399183413654820246869320708667806562621930296674164665286435007329808483769920374193631236841082010659867263407536756223057384602162639103000611957815835276714291180491172841834895901211751958307166921373193020317435169238614713248371274136793919806353126340777119520335620448695897050331457779514262393685973743975935403154186793424727626275764648068534658757006229925154790123082226772001781041856858391966049346745695837715385989658243732550367047842787477883161653434318903628136790546736047749757093164466804637857098308598360887761415398265327425847906129159274673597959531808173909127694136845423836091769800147204145637490553106693301704596029603404864370267326598741849550926802747696417828585720723505993906796409827682285870584762047257898417865587929054291459423895514588477476969485104366652977869384414684847402298775728452253918219194115943931794567662817340300643762146046721690824409508729366576973662759010925929041618174826727453582140172699340748153527451415326657665097242328600692109960452777863008907766543991586504910291064989262274559262283398468041512236219085786468847646183737205323304738376396223803132270316925733501216699886737494805322514992428904394387920912110032180028912845378276554141903513712137406634294327150697258064174002714910572415768117380406964979901553514119834467368714184204753881380481609233109158452178029716522248528072667705154235840257617672426029622579187634739369587625349784483121018720182343076756878221435793967505201114083512105666091209981133350209591684042975182215011350841870737716676592020153429169412873139880499082353427649930956589144371123145615873115316146775056495548175284246369828315248068309325834547262242062413415574342081311345549339599887908164108508552446647057985787744056383044066834496016803675749340485866388970784868676350961609735095611654338606141917751751277760775910443886096172503091351815590350506251238345578228639242595523617425105099771609946182119093588687120392263983391651604912632842314081054577670583305872678164133603378069918518083139958740262766109486667351572040327786135002926319022248883534936075329433767150402024390777026381990974020855431604219353492718238817828085399608565848390357591170161573795956770114869145523745378618752345126601682030473875126501927219120578416642907999648148190301482133675080604962892402082514351459967278519023373490776161905199701258980120577224152685459164893268545262535196148731652127996998565324803844306065403208232115785847383334770174552128158186147243847984355328160361227758935956765331700981597109685066381124910269591279441039555345785564208404138372642217012955854582105190262827961528819153234946109072507413565919381237876745746544157466447713729485061924109931805167764020965259129073257501909969479039982412794026854088244317768049031733546835178771804064964762378672415109000737555682697516242344756039790888521526296529342754549099226349083555480030848134988002892971250365313541670906768105317781169939578408096757329990002065793705631048759654937982713627576233179758630829685377409281462264777954230808605072638486392115089765320781270780540136157451561865859022419489800950121715560112619831618629359970552618565208982396948284832324086328973322107988293295264579045695337865871800749836753642715936891958816513794704031161937313954973676759975793807928013965230163983147148287373763199862232070193561086679686159914225308077708620421168411191528600264530468397047134887017694927099979286897948301218500713691185674940613116600483366524466464950691958592399764004735511771303764242730029854611112337022851463764975144460644676103036797815136999664359567645982434797288922265388758567139071331964291075550212367481885437519972069934386914847110277868609363054321466455575069337958554407311520662959150504934898740408154476178201745957951962144529805076559830606960747144719489523414082098832861070474710953135969977378442402038618580420228941095900876425464092169769451190905402655125465345235599754198042151965081520636710317035131958696268493739686997546758939719981256911550217676551686529948845117713073953897792107617195315251551159777352620979473300210626603621261200689590995183650645566640607746097118476225132657501899737989072158607326755640910052067224408115195482399744289399156038179951928396221337900882559579903784481807775873582076877478752202703411600142329070256666065919210102870362620450161267512204563448416065526082573297902855875316649816586550659460361679077510018695377528721655009533170932670784661948914063167048508175076986199261833954751081699300006202346546672106977186469273063114697825334463889470503407555975066161238571266967998111867135867714256562317007024661231140679995009295327249483296453827394417648015191784971365502303667054321448126364053472429912130667078129079768763334893965289817773802367765816887999819261175016568053901542135340490487864925752877263748066718049296955504682525704470537643657569038416272943190223884159841088441625405314428377564641482340899432906183467889672279202052195069075202053056591833034490561401701870979330964519789424752073196488354065977723176519602986340267560592225441139335109510517685281214832770597897578402468177115615007906356020193518825487827826078132818255614588999413831866943258303521440679114973155047715598818910135532476559017507882353868701882952002381486148933355580771923875189820023842130520464442704089420567327635766429309515242836438681817342834580288768024035239450270323385598532101080513945609765437258199593821327241922436779135678298739498998470511627008062953818663540610375512714506327051227382552314544329982648735688566278146947907252531857356420516031693497291728908894717198182483673755592627035974118347650803728974014778881403111315036816877457044412207811215064635046930804804507601774167438615240626702905176026561383198067491869281490719856533385767507504487930740874735911872299654706053457843649546099729325545719495466112748875030705911356140168020833669871329622428941169826552510769529337691921844832344941353604396079327590141081051360121801507599401559703324435851774990579436500424737000627602523230404983261025725721290386351525996857304137042341286349214588721524766021321553914578843833490744386883514400923092390103792101192436625455327936221696554043713598699744579253348919968484733130268497828804090091388269706473388300950565104046702554996659773228782916691275467547345978245749501223833733904545047314469395884677081988792462766104814189803900241911489704603361819615647279996291522240306318687827815509558967562533460498322077440430341367845633557145960073445576862865795561208069146274015752198722144844704241738715910282066904889537940796195543197628403919499979202479496609784070763098821793411839137059508179819228426654052479521304347661271472587986468541544421312096243113346770389119415820450876478319356935249071657046796921935332055513185768974931346596394957863916217906815725495190409961433546533359598753593634829249195012866942532014376701703046730558113324999298788433018303854843243934361994332580122640312842342883446728460502416368700488451813361576711881523208232578885715595532379871213586983444878651994415703595690835831635062216840972032202930124803345500101972656170234548410508439408570433278777737331321286534883866679095873283453310786685930008378070174643047291733129332106388518612487127593540121848846806124395325864686134926804740032455288242202258438058835654690876707640356309517549434580637657920174207412878467562341192387386016254874280683977785615183530697404437328841511639354976256739672861608764941265345791497605343483915743087479419081770587828143106556310143355017890570391450017326428769483741543287982456144566516305322745282237144295974161594527306066627582135381405951498554862008244557972920567218181346579355467417360563157846709334521375927421765413260734682853538270569316459164445200612052299638869905658159784209817965119569873236522631636271086927809893743470191871249764582851612972505410110396144093662779567448710297817807438880130308563299397165321871905052166196817233860772869976885996065439602156937013636020760789596212157853389044720258650467669262955751824968635151101448072167923596211116028262997716922329445860178878886961416391008004333152514411754422437598697764850926776149799753289942318922613365793689107482676382201766566353799957034568404238031122176032421013465281558636585299586341791115937836928201874605363850592299164037982967659848187461019074635899570693830810712950360352551763022765729676044678071827422959534863375793691478002213494140524348017267517495867832556765118941236308763452802577411919652365736103498382022163430569100281156649582313011754583812790199776544521354747795705328207004764970157475478054754181035694127960575479762037706985701005981508631719567738967257471998726777917677712444709189660533621536656649883008522632595127793145960673574594137530711056412688698126243229097206982086234386423094685199004020778031165564249860710138991361503039919526524149781485082497797592493698455826591201960996384305880689830692220967932316449432893602697078744946122886101741636940709941509806599934630086172548026385105159782322266918920381041384285930968348050174226295257083871604770997962151570603315754284182091146470965923462960606026187072472091089274680009872054595040642883671275942266123818805548969016631445252258917165703579443812019248162360453833285788323592930791028069492005746939124334616072835618407897086074104670565642110625227294259410414527935794379834940218689307001725387217722884156971722537187595570702183767496273921199312723557696086404372199528625943377568664654938097679613023166917470352415031814357653430001355747885300104269188088914909796873422143434553649908754656514182864026742122748052769780321399245990542240315557655047509463020393934005950357008699524772139112130133346808688717668232030042006909070350358153260288876282421783937544692718964490049872423614127183169817956696718665590455528817963138807460136854282240417363199942284476962675064245917713833370955667222931187564277142378523503519665984248352478472249958158714421348785457668592973491000807754284321698386947104078043786660537678202331400968048830127850217109173552050394170708687910010230129564381774541882492831332435115052462340866591862412823772625863525969863155775437772952532918125587537933735486205810756350096859192676468308256227739125403892943463055771757613856435427317009862721794820727372123124517713374114899291890740915440713827883958964024532762484568786382811471464680027111064348999420069021262969948818578797307190264831540405552732611441114311383505322178042101866515314056860170159247617359260268705232589674304159236108848299105064145173164956582549724197467702824889343617119968726877920349867160773310618195608904001041377526092387982778222781412650487900464628194452462179585664459470010748588118176541765846522608876949834976095550063193607475146090750882687983765967709758769402494809790763482041026132964141545054049576975625812279645470277947338581072320450977261038466100484386446053637841453315221146039758127167859107268228460984261608597407590755910722565511370169064223718408614575442393137890919093870893579673534212550068090438705524916603772359984805823532664868048279781697068813743958638644897199671181920138854888361753100184634956998226997198905389684411446236176618940584380468222611247180596865384080403293606140345425013912122688880904965002244498781110787959563351065464744576396237104851144794743714160190940233399290893506024334774775990911649029187528232455039199991913043892855141785937543962246522822900791978995304657770728808492410343277509253189122772284817388504952094516962548968864604790928847450205868581481512856004859558492517852825722385599806582272631585408432791219190100229359166698942085063824140066457762100834567649887708795212028610942286510750073013538498632048158186965729041448457293069849804246271561991738783133335958046117233407171921402509937769211525203154012871194957277414447587114732237348016021558217864920955184279695543394417253625002748108629729861312746361155666785825146573178240036536954411623115863815364738881322756262734690364059438781950191465507100303124964123727564989047137437470746989884157114407965591702899757638611525086234189436611766136681607129497825104040613183081369593850765901184194960660001093206406498163127481411076125920764926443136381152784665813190320376254201720848373124076811909228392906017164225648079303934362523363527900913270374961817477411464325910077264901528353701282888298824451554226680830132486214601402241496203423044788095762366620798677796021363562903578454758653469045421061455637635072183005117725582920052449872084241475351960891839757103597106645804163175572033595729700611251121289806327451784596927136765094218189604009230749311360226944576824269531600399397458224162675626268242989178239008693893688845169563310437711721176194534825758459060960881346726555708135016335600835144871056484371580223816200087654111785918413560384712544018848720590106948292067613720765498862975442600253929343667348003533627652102913939826944240168151048094153653349873870427303817849531715536010661673913966784543067976370465235796404308335170140887612361333692024801034475005674820571364803296239224372224111145386319002888584727880287738498997653255333774911591346535313597932384246943282401940743700644624759513956914741324643074450450154615136036182403274007715611750888989050409906868279773998417569257283496638125128016910826053955774486929181714471932833019719471623527315651768141155389383931938126068172637316517458813011319285558708519386291808679441305290427271490577321116905213717686354571321970289508323859239619173700115187019722791559078979803474422356433380668706227869331854941248329188989497048532191139356173817031727433381214738323145778892730672626958577465905818409995176034856470415433850596705877268889166913597079508483262862078442140966352131624566606188738975734423974537193094917178805574267047622374404636796613185424639325407086431098769720320373004697045664586554364629719225626428785781671622604513088657569827641002909216539747062242184617754955299455917828840764422012381494093744798996065561695033736219594088889575684132986967737429772400272557477921418362495360582310355302181596852628556687308512357627002456035454456168696154138985894806161642936419332180884922822718845976952442786432224321491836673705291415575440969243186766714385599670221270261344327328925121683826248886499117011816728018718510171705986699458821626440187255206575248987785658708063506999215279059194898879325174841697095317862077836086819453698212719402014050669586279719956520424560404837933987922054446986782681341028855224806148706920972971167459072629913851219056533869764984358537500426358415140870983726320405742841132940591271785996893035956198891565555802808039075182670029153568247429269094847990901787000356000988139255052946804329482909317249277877584101684901230299241068587836231807979094857884925140931562774032209930247717374380915474724955652948420511401152493835080139833986242322772668790179906971962855743791681096940233270913416138865756933688557825006956820715805485539958365356990629724059018184749401307472138458701402088620865558864301564768459824138002248433064735991090627904655111510184045576748592690698641869749134411030876948520386281718831434546755075557815578725220292182141140891677574793247875374560803771074227599750132459621282286574612063418251550843087767836382933846095271048838087906188709522527180823013525890747092520663286770306749247880084828831029746988738293182951245475246912690639270704863188364637616525991896102870337441353016354565020434868996929597055281787964058964123760947718273051400819311298422358211033985141434712436658613354726318865097767585807687079910377028529107643179632924756866647587102546754415455633135431621959688929429962069872842423568686431193094188505861034503004293326470462184554003211751907383595600438116600827215836073894480651339766290924820641987263475613155850705374948609848982007926324360912745260244858801486787999780492809781273195112182799051325872414820792835369594045235698585427858457664563935330533051672139599164447435109243906433198804648454734127529646733790904719501652158363075953719479386637979240421698503667377025128094399132066259089565972451263153125251574393693674540490055953420038850228338191805543464202374945816743542338473338659611663866711374000242636896623390426833516059024568217122660523821587983457473597824355641700242676206530944518094632243286078995845907305858079042297052173283465284480271802814721992453761522384479295994407027314219814427319480792828109715299265632924232226295900577305364359931997894610653286268840401306739594715359619877340098192727792443976053588861336729872271069638422606683882564707917664219023417012487229574827733616086179993841558358582570510955049471267012209016465409505162127392262789140337144786490528800459287127016318090180001186999118265306954637453782552151715562780223074139718043858318278792270240176698471319412391170630355272953346001204728478911321186169082082287415452909694610655421525642152769613206178000978340146017529138089822572027303847963546727991476972964012762773462301520502973626040003968780053343231272235130107709618905499921346408638159933720643829153342398544700361770611491089924567253297027791674139620735802001173324843856716217896105312714226372735097590420887880450796677317475167359876884706204938957916022002044434767408311751158074857725834826371486137131989849704640159996805337069622992830475740894281776757796473909860706057485143009819840876010254973214982376884213479426273772673242379357063345585833858364322508772413328257983371689641365726253692304116510648436159643645618754140387067777078704644480988705026861662591383406014080710432078893707288758996760181382469209605754835035675277414078521798461532176420322432548079496859691190154981273427451587588920913862517060009915645570940649666566191635176231794022550285631989375944631601189830025023619119267216241980107147719397424638917655934360650242840034357002034119953016164498076649287672706547242738222096178975945177141423524504588658732910005143471979707189564461290441905839799631693325754961740943932828934524805754970117961459598402435939422076381117053827238349892729155247458407206816174646431185314563817238439632623850410116138028319358091061977602061890864416833898968708093653426675926674310718295992324405518157903215730355905528347888863206567971969301206940103031061608177157312548287546609851318136727822960762676510256690287206140689068462788971614639787995777211880380240223786640104906367348501428446508350840514020052224162657920799899824917389315088197242168400002467507821186742461669090215538103713224139642878028419715502028524220003278949957244961304208989432525056841080008841014144503254721330066648440178954918857734684423777178972650593576238892279404946593131995883285065577018781723160047419603761995502864070934688320142269498630957665869266149943499473119614364256566302046226685860332256666866695833411064924361116493662455971135161028553336153417375269773097201270030464925020417665567439859268667148450890361859420563359849956140645043845977434221748697089022782064144195414555508509209061178881831994612472696006128660847139647818469417453012407431873020518612639296960308118017868749885190914724096675890737021960526483414864148061492510156971436245379006256664470340288406523132130275191507910403246710096255447517210308241804504950610110708502677437365948945984896282726875078938113061560974333614103517555813878822730560380810525435959068955371732534903904298653915220563825879957161795524013075655279425708057571824061856404600407568001753844130343908464772554564423260741273191078288450693199669802969443765111514032614544143359193862715105839154700162746348368989655211134718354656524569673492579640661256247906713711127854610031956452859775234060760975446625161770791174461509973633980952322187114382132548983509850156522377528323380690655299155733176098365692994359467072037524433042479027411575772422958321067014742350286946627658693521039270174637437455833861907902578723454279812079235226540147718974360134988685018285832260072853709198298702105409773225852280552388047299664849022647913704491211852430650183058705850320769152997423207968579903341107159385491221689135858662479181686658483710629669904890027713568679183300884719507551750384286264504026437498814599225355796960662418024585588097714903869695851533341471813687556874494154854329094626883801150429117372135800386279741359947514126380562342163482713032273418788331987309924381074840190128103471788651889631382034460363746485455032526378696322911638729991120094661761423845169297700549418922445073530994470478776205191113548686072251760054215542580144849406267958427627974943479775645464304963189847289111194776136578221935135461985015493388140682437018495638879346346122977204306003620477240398475059329074506405973102806753220957984133620194184464914128862956250175634410805578347509510305572912942362023831551131817429572164034328697878951473568255845751929513464661275440602420659539347903388611365633104456409942333646575700118449012978749153264089057618336609386787249490146986793478288535787143950354375345716824210794010599524601441422632208703277714758806046133833626713734922207534701557310186720836884363745601074442847089994018391510233132387291424295434991181234001236298109499759159374650502787232167189089783175022108973291494540656442448047204237771863946387036747826847746177809807717762832102324860891474137383979990477247313913191173103565431969116776062957392688115803510336545387749563410578990294129219800694490801404617579042183783672775055262927869979867153242818049543375034846089418886203562125270709932852411092065274464896436653292341720163700767537097704028503825595501109384315369005150466191832456732899137822507124105288382689147300817649257894896219351526002929117074366377278928829044261878496652904719229996549779954921311613097163165258848156894899862865012008064335134504201967564524302894739003502813868341250107699852925172606682403788967352412438289106332512273706497504612620024261109449566663854047931794353014110145457518733074619111189590325120762427372047246437150419522430098105895723786577223599264376427599198286046472638468682945381173748931464894682591960092406991582560871475090228871886584769779898330074349118298635380073890327270740712853134135338164312631526469139060075112105236759200782652556781694505979931739478731194603405426705015561187837224914209977178281234201554122026064746717528813036696682492980381721787368317790667311448768001665240182117595780865695783788343054531875372424778262026478150314735609486386507665185189390334209181047612922312855275651620110070126324148342511678336353159881539608996628144204442844635541006389934692539736695781870488905141941660410020096874737892605374580315809407082902863131243664153569201703880596248454735636942020276179490062978372472304088329816172443654363902232067543813899150369246700808147654615421227812068063696251193113307617540203326438130936349998209435816439830113438403279378666685468750178090992239745612399507120209450269667196380813537252327202415531683865107768640491687395723034514159389840598040803385467671271905718757006409371100641517079039515853648706044103775752530642927001277073078862326140759586511063544383125777312151191027759270155292441946525523183342173169504500126613502066577121355205337930585061020760412241865107166690535967572009415684303579910602789925587555375912344103596862219453892924456979467926160164773030463418856279309492628027948175872087068887343560419315412131983827938997715072765391390828153396205285754399898651366220471534886755409195251208459584121487384078403433167445563934224811874813630577690607659612781750582665868795819295851325267721895663097384178585215112589072358761603801482673585690526735309810049764470566861324164190641041845721402064684790062106441374238683370854633849693338199662374486799728533164401857624341726931149391311165516976949646999068437542381137640991973552904825902492591073049305535688356234634623277514234330764648494637418028668199178029668608398539685523463283780285628154250794452615867826058024054795240365463901791095526790461972419862693224624814796757393315010020754844397506267390467488694369257416188834206758908379660740084430341185123854748670916207403989765145630989249735747192303838084836582148520085006132646292077916315423006177109054835724052772432553357671718649946565512729134710478724956741096689828586503180770110716094891428600624248668673432737881858285792121750471484779796968052440464726369613373889831611305899154837871808063297446348941763507963390380681068344904187722528723272697132320194407880049737499874305573011286187985080995955006334988906576484238566506542963851508534999024470321566837855153390653848446741977783487751773016837688524865435684666260794520104850240741683778752513237632542335897102716943284159537312015699519717480455508065511893560751506647899153863333388011180966882567366128507766638262270908759241062290555097274614641444397785385912283774772651047447315182207846853667016665193482321752438402301030769266621855968241654196194125477572863965366690886710194329982646524586867315274566549747390086383901851918754445346956975251715300615965611120555154560259508013017461623468946871813020067376768246039395869156683433178395042650512309709622831086487780780524096173675205359702927358103363350899746131194599842292650515858100592990535677222034533038459018614085669369964032665744722188619900380915845924926237847533950744385549398774729595870392469621196469252048758870198979707898523759249439139999098191608289536605952076577991667251396389742039704949788953070287597760348849729456285174317816327662508600837491502439583357311634056744346787644357441045962635368991559457602557743043881632873491817234839001476912954406992880399010835168840487199531294442377039811610439342659750888287586470169527494217411086520974965346706226294951055918214239974613795739826871889753732430487926801749885453976930927986422939964573010290176283074095348932762096905868493677935541795629495356800167281333274565560174757481323499856606297021432616233664517877306711400177408195675072886784190005355689054011254817145007781337196878932879314784938516708519930335779174149384288996111888015116372065923725422889829516552940984043090295199273425620274360742638011910773900876996887378230050080399816914473167049834228067385505438797956870504549455246065306917513289807627772788902485235121690067216041841199515351882945973474028523626154982443432994697183301536412635794512208719060742504332005875827880336987096876450416658765558423137864247058046307880767132897310611324512302137503061647951289647640323902999420082546036574342492323119958760362873386739142819291523980520280231849337588851602032661286357182218787672287126403167828072411425914760961511435883124022983995541715978265784538359611854217311796481380658673197693998691768865187586630860758419852123599235941288196715194002200038149828068710733850623038055711291320826292727739555659063254264575759903601040586563073341039516941738457720354515811350132515461835560921575917030667387272152631981928221243599176825440026324936622913530674243624472538618877294859015828241570198416707378239163592230521818894068355589958052296603113734536255321495749150231621233292830781660518075762048868699061098386584685229268305553657356210273992582778758383979380547503824952777288048693043976724706674254185163365907287460813882891199580944561088361976276803193901174380746220576534383335436154080153674589183511444185649897302416932066299789350298007346684078203128072272213340812842542748218398562470379014831954365356585026685438703676861265926163181941086228804413140030720242215402608244313771846483801030676100423408874292894375081549771110883164645183064057337526620591321026103068531940668802018824717022785444328916169874338043069881288135741047293168850599211958534803251149815387160794971112506112878359079408208377322160435402223074424885485578308133873288536324022092849600745947404916650159339269072316848981012729988276663557978392966643546969258121243608941859375677741616355580076473765694524790184238607352886799555732185517192186994462117715892465980596365090860626489461350217241641970638508846332759668449259331848713415314441252640271031520262432477017072213884415659259271101765799662047857311531300072082494502420646586819078787944130608809113479575276197379801316958279599705132203113564603238899590861940527994877869463695187459401942041866231962071788395598037103391979459264138488321395554072411873009920408237345788925471626356748463433571914926944225119961449879540045844394689374037590516945774591222246337415652688994571489783898460054775303161732278827377699380317201879324888855325034741720703997602447179866378146748298180505483414803636746530411642287673784859209267477092409841571270476009189588518351173343822357622313216567738584849704985690822112091592430370015119627397487826966687035121435853047982336214608254616808070059062385194645084308938971465860163302332174848897993165159426902893028474141301035617944480992099736299867208534102526583991103457578398553689045909976851611715265386220200721453702852308812311508251692953108759067980379911656671466070069564638476976561665338979482148226628482807269971377852640085132124310021781586172335297662647889223895162239076857884020341868443809826372798634796735414666570672409999852221019235853348842224204953793367524409558558615900528249771342309925919470969441604808564906495724343456759876980582665201175261050277571070597740034171769129378564773484473902460791521369524114786384540432603625129690511125048493426550891161242047197245544049991827724749972232313534454619290544379803121417033258316293328994357217427544388983822186575295230419215174353807111568827815808754234256677228185462052502987123476603576182398751170285260959489811351002309653212141516337345121746831043833417045975769722440727266441333819208139303436877473078430177680211499300265071902262221565889614430923293949268433019752326219985543073687777383763748521456994853675412634679042950653165407579136366875999157366521219897479345319317384141506689265943390785713139638769865632413229636663238599435174683562818041195970860889588041263773440014218799662359115809880046092624270271554232473965511189290528059529281631431156457222402594105870675450807753289238100786818604380136079316745727372692948234978723216468137604942978871568236113689276508805592250261078291277598145906833351400544335385226317469952014272271701968696729032693871814971896454597673267803078520923515046143425984768420204912908021275306122427012495569756447677360970081739047644752418729989105205133014740883417636761928403886955109510065605442436503981386382778081482522031973094634656157763460290483805702055449365435762189858255501463402567934628876029013978309242629199315904858636499282910716523875386426297444280002554704335580040303058170669821699710640186524574893078253553042648107164980521901591451535545273699361194055886662859349864645750239955302881695759326928310606230648873097832339665507381586229160775377980865752591355288166552640755984174643090170998358210020200914493161425720308569237224166968216921792236251446569313385162933157006402215133781794206270264038241385437155785748667531244710418181016983975241668473018486507481264708715944093960401824508942021289188252253544223902103796754224954518167352217960712354993439164399441250533833265315119764681166171579288745026961252729970717284002674708680041852754567627310333702444377642168075487208152153890072764396237709300785583741121025852639694464495321847609585401110031186934363385953327701637898676809621283848750089118378051380159238940653014519221813887654317156845546771854527510483395594159532440917111558310697856336991721562946011519908948998944893291417721771401263572346479385678148454803655635464670212383184159416437361973321938080434759698064359483028309255479830532746821863272380909371808562934657509491951910644293872730597376452529106576509875213295016521587049929134318505368592351497502592123180733490027795795845787572781604869394602841892534965663934391081463987384519447606401958782354709864768514106171315430575889823834925376787327541897734507567347253547591794346005431670858465111336063038567544038000527414431701675570138344118022574744149317280093849569687437247461797114646370814171137440812875852818882295846416868632563375645644762823559123289785184598889336369744623262609225065922858080554886570679000262201121299792604011521521543448661104990573983712771316132136321128734403675201908603766477781277019857057119455873555530189570703615664228452045937224662091128402779176129671260292706722899700597094737225280954139696398230598557421911474043076484564580481897920542996012696001201919873238858250445010537979689851315262951630379789405351743898334124761238384357284664732059548363656389385663097627417895683565777777061259429158565280877321930215266081250838241553727847526683641117704762912574992154533962630351824751907117159854275972116116417062610304748334938227698950561594625177436020403337720762180862575566238321485859506008700105547493831378596195736399671133917422739007955381164857982844444218353485904534880363735099164114041383004001700494185891009955641832007829626528297271700060592763617520622988215987703531989266202237041273419364764177426917260451867091572973331370133419697478607084403585989324006812173704579240692328687844929618962785280696969025755819702839590608396044666539883628420228256151904182118983759520488030950970547135186521010714145856963803781038392254411211524578555549732458982431468315186155157239289694427322701516219645561964967488951833477273811767712769587237186166531371631157652582168420087822231834713857823344661604383146381869381047959249123024328741849760927643831803495968855108741788644996905865321723110945070060874491809003500024080741139705979835718177408498598845414816390864369206644038422018613753710344026974355862902746068305287160756013256885045645357635945805360362724328955580145489088476019020309550500104411261879232557714599835327259572068154140452176782631024965411049522307635676764364080426760280728403343303677912611935435939276265638860993511656884669532211391823896758778580686913253151151081042375077956651561074743782639791644646913546804442345414309091961645361037163083861019750158202269062990181474942450408933821867216975348929495663007574660281977209662196666527012997732004763667348034302857887999100565380536697752171437955687848403723598277985798264670908188816941246953932338079598187628387227771242393363121707559097266236136169509867511429424177292897227206958179293260630702200896065188522646973606806357612660183740992115336410477229234880725674609298341476032264230326531127150154973808280436940916087427053587265739494211493055265983228352941347310761100066333101397520421757431154112382657254304721613691602013284939754269239827978086376005376483364757039344333809629053537573228141090147894734129029696175602594018601135899462759383487338096101634200545159186272247492001049233859434794024704307033266876893965975884264986318355816686520644605787533077550089219091608624256433106813911081033234084510772796801604384913897953127381917330020811121323838912062454445654307125509671686560025771181815993709500636990088938649826647883961125641560262802978176967979209181213136980676668041961010355202581591999102492387772385666992628028706821813068459070418654833814093844437950834987501512154788400044510399119619918095251360326526673612695196558619845780015720038020720222997271308218094368829374047895672264168514133094587291995296791091758088548311661267958617646958013908481947192897942049688931838707079639382515017224789379806346018460796021723064501229798076191217750396923017706439521110098859038376823821193004681168596888619556323321929079918538002496916633667392074773300104343769692679183449215166972920222582194867704508000477581064744418374771407145067216548966206336686912601250704929680770812558521688254781516270855763433583615503607791877847254693983462247055616014113060068316664840949723576942623973666317939014958608010845077097592528367454925090530540044803442657066250042839141193775451317425327368959459372896072044552265616842249280667888553968924529622924677638372345738136073413538775042564963450254336969243382846339261446061374814819041341200009869108162319511498939698106175081333860924087408238484254827469745863353550039026461082838206930753046483060599584572745074675113346954271973835186211893857118972741419969219457448660972684866911108824791818383769744809545220936173070440293261933875998600628357125966489808656193966618537708851782409305309293798499806272436673987795118477482978710815115246443670092656949475489876780037848380815317607754124112155625138660161439098907122098126838374548735241760448356288919535569537448686366158395085084776144637524622732901897124369911604372924140441272314497988696837620571302020591503243231210648634805951805214209424379351966928871333160057642755174367014528691101962813545266988224307598787981369582737088765415300311835021375700947111299224214484158745355224941882428220384675010783836871795463341940277977683819116367529180881118882352350688366840016930295403416673391261217959026371775338019999605234777066132778935348958950835746514222510253219494805092124567647111643803844985259213573276361511191632230711522161937724422202013498864929910682402076318333800698579067738538194732600991654961722577473184996054434669624198960834421378566658708635361303211111269603985665544092777577200060091155280259347014241263693367488440053007752248256845604637016403460083617180757653604997666608717713180530995499845670679783611491747857035534448347791055081413660526272938847023167857666322369647483256002172179854486455043651575233366849966010772013278956631440828225535585208627322104745412024041072266075705175125138397671037407186816323762042083152043196002001027639128489858066305815998302406744120697915337636425046672466426378726674186266668971871484052652070747380988058929301251418429316997307239526536582645171175362923013544206592801644650246960244947259474482584146682828467819426685457278664403561358803501446607958683512881672690724559117362205194068444199927823380005437741846129696660894606578746845220015624455059427035962216298084430279321318476742847259530543347443040933038969048118997905573026626457284984650929787656528644559285592078102916518100219049357066568288247009803726914240665571725905270101772837443986362135003713296540742604957446313090564082883369320268928085334054348036329219738491581323732151550941190711940263982015306390549475147186147715708360146214617106617248292466992698603388735957161642140172251017649795331360842042954197873057064571009814978512150781442366888359365146818172777826293939586212646168926876330013188446467168778345127737130617576112394897631844723247962653817501634369595838574799784045150837599806207993002234424621833539706801538950363633318468318081787127650997482844149386187412221696125691463226457539869477963203784193645829730603543546571541032353381242120424231239897007970473703498997998134796327036406009728531432802563715817234105827818635436690584446623357459009334002841523362282801159814513710842008694432028473933878463155556467078477478970489682859629677177195617071661552815525723439260266772202518511259157790047375640842058209091619152001404845565014828337020035971971681663890842337790204477476467116909330179933245666625785950457532453434668364735249266778113793819537267663104402934820367155558969192629108425574434767919396344389417846154127402092426218516135468449639794688022500300546176775246356231385575433178432028484053806435640241848035129688254767841883865451029758907593449734969009288231832443781611883841115233190706611939578695881037101159751919862133159741928219186862711259566676159633349989086300380739649115572587710889623055469408659893970175093201242356160194489157450838665716355690209645330797621045379415991010936016993015453725402616726496062465206789790566189328021368441924716693750290573740821079942728228860333066914253486967821590009179464334559534231985662487778291809908030480698472600695411633825302142519239258475192272725733050248808593496754734433515189984843289035678903334327668244388594838264398086762594701673197692828945578159556232246135944624497369114322101341358183358514106082134584761907767624447531683668441919013109619957602236194719670497753532126896225533942595904016905181592716282172811299004032871941746105541757384865874182657101039051924870342818552555923464535776035022221208378118374038409931722966522028158530705054084525999272857288703593766257027566927902581820988869862373742515339847036856831509350619384668804033180687799149049696826513098022347365545930782591407580700892457844844798513743509464291636189727341456720370598582228781053048027531794487437117385206882690208889991036820413874833825499597713553420727052508836262220451325570982709044122202879327788715906510081191254667907774613633127005487211943497583587378686088944218333079083115042177373689355723678006281650976942185419379666006169485107571388264876141470161607075486912620062019852887292238262978213093369172232091971785775763799165692303296230670776944459999641815133298646078902704507895545312626186572509454846155027631392940617827883204654594161672510215128286155563938883492797525754320852110768966662029222929539998259060669952130158060639999879248476865834138489940762331787756777727723905319287552281970520501881897239891211378800479685608758516353343833407772157211203817160640299964873074123061562671641079072672756046798692930103804171427937628569826595329088899084956632001331172526291538118234914552526173828063565284539663490422510524629528514504913477054205124769627120575345196358043758370542817164189873630929956192062638465738048463099117864017442264123786590815760665303076140182631064374082557423548514133182564028774177086681883815382371747718386074444402362285966919381184388247550262913729617753406325302266040244271323589759602313897846765253761559126966891821235215417819083347736689502169939015965762159292927766123201185358590762111183884100945313995101053704435913555847848020634543376156251291604696488127057156036353155779463336969680872977007986658966679587546882150994812605574836520345181769508579875582469871310760139506744386147892835923250981184025727402316018277369841094057134220693308900001645629623030860309202452406431090734534370683322596486158941349822215626399472505913371975749078157844864516154804354019106752982952853901489418389235988950315056994203808733614512355066153546903920515082315409735685665962639771458282283753870717183681288083004641489294037519576890786206211674291710854283202746355794891724359271868511679535918697202018966544476854733352566596033524891425254572714522575538337088989686146764275075730688110857191279708069185706128409996595921166694603145165586482521451883213827219414628939635114280831455098217375174193264553263733612813352738986262861471420516866108517352724598797342140268662439884495551623083482977188447357499914687578216283547852571995240539034544500711756717534634976977208681375448287088654356545748846360549889154293913818212510815597589104074666129311857890169291976003335154688714778182909117940307081306033831864278533522481933662251140721224395584847575450515077346195163405937543824292109435173961289455328620421350174055867817936794793561280261028021546675458379117525061570012057209816585211551413382279864493308287450158735515963736649456954209371942053094554109930516369007402984861700329997093247398744688991335134814474742125301604604190200707588233033203316442113497869978957087750149003520966913447346855067759466859776601527699785885871450953642731269704868640873321579175443910765121225120296563193722193947463538410610331574745726446967284812720440575758984233568233397170836725319150102139850301514116920217061632668209226190104480029559171604260591739951055299832336348522129102683508778231026297445924080211244763030558872121449244678589570652143522387677477042338427304718683684459018590110690396610289852513119933742016300622626393777708196686336719750458281226456646885051903831029153679308270256010677377261305541146115139002977119385041282114582390496650008130685219724304711963035068153872945628328321882571744183901706102764021576644137994547103672287276270135861445952761265596141877464122812154279000175791078967637767367938739843524393043978170443507779188216744751340418580571219060178888512861230113149111899521339605889987302798224971775854816439932367292965528463263780182959111367243549169279505848705305727124143348623182752553838599944634569436651580794358974425669921130975516808345102061606802200454738787731362633028164113274755371716109747115496473050693378395439160888477337498213393801937220118798162538471924627934502016627430336930896012412047272665574434827264205087773818810023937740230241233690159371170017327827434971972443552483559617145160662388127952606231509961325938718137654549075871625183641366102941108843829494189620317330400589907912112595625540021019037230631115983113869676015319172342330117775281089908373618957124201195638322772261487040973532260533356429358613530893226605693554977268847376048862153334305906421921259381161904357441223020139105545189371394937113931871303414235418956336272443938904878956426090592352544700155337369566959210659656199230159412939997430636536989871914004146077696003119939181957445388527120402168691300849438779971224283845154849749302629601655100058360281585154052798127805408082314862796436019998097667260350740892253234051921270071065229418755405507970438714814409733455337320259545691159559623005845913071340978247201723093539203810308899416480357999447505480604340039209605011516057376365802819998032466479393463052892952279573401298981536083166067044552694791118251054039171769571884799305457632611574912011330929972207214314803222393387854938095617352769953157550268763513808639220555050356602460660407651725083367910511362270426316249177431955965468543585873329514147630492480978000544619462317464956880290107706945089275328454090404544188058029504943327637474484936527469843759302620925460068531763405156559539846686304780246494549803579071955653227727880438459432154966192327846632396030370508054711578836150520268947919303026605332792246399238064000891564810145484746385997827500121754046830245134806594198422245043472631318191011051497005378249523345343714488427365667272055989976101422943974639719808730591599388578470063631600967483569913232253586000621907939734023778234570911457101929715897084610774285452624373392052363714792158883317085573193375577140261706578446406511281811462498183996770687430491323617727176715347384631702232610963365748909824018296539467972627977953421351671657846570737252897549031970006857867723367693754590712030404140996010887973758222346582122873898800892726799228879696200398439841724100642802257361792185992545022701417032003629720866203125487830102919469326692051953903579203454844839402857551598779499941335449371935298881650165794579091599774400150780602194340671029481197858100945452689677475127348042346444116754587967073676495210352472949912027766631078845632257650449551354826265812578422364965858480969819203993833990926447026961543576904033614676591874455110192419910175573948535769478354820827445600844392141069588961041213882207585923175894352002348632956973713281150196074389309410851992438996378427446701398754690388337270126913890007333819807334329756673979572381987387369801612505815359115288130270636983257431171222573577733844676621539439861011035016642985029523781288328111337978641427227113142707009221554551880023531731100518636228753550832185000612822838191548822078101232795072831442595285098591040180615866304078045081971326079447590977222525043157779362379261036083422271560243241675647974974527236428538359233625154445151016494063845054674715402988222660964858174173828790771428884217829095553651303135753976158013308678960069231058295149526524959323279104965669649962765557917171893704822224787078888014501192377905345935335428662237991346146451547976265594510672933203832300500266016719330378740077127058434671393711139283578116593972585822625797960245754157270391142523463751398442752294263559604153942696587636130164923040034689855549913424110029842156865991648912666500345213746880674356689424348953608996245099927722584940864405562024137860382863405935018943628641392284740723294470021281991251110302867119909498352844797870228912580029666165284011892757107799956891432523582380001342297964857217658117850162156929146624446550233789315074103215294413503259943436103915614897410410535178013881257605000909077450851014982497688545004226536989645606689633415984993985125809054835795682680791552890095476499824041240278400867033461455811535093744057053402859639436069596957180879220905991004438383060411927395616770191513066281444671363926537226324166994256016873966909186380004782012339805220757476361976155417465229807104322833897032625485465877099480655579116911308075921975766614668798233790600398246009405853454727503138633423669568402234257212184195999335377972229782889296093451131590844912919367785840213386050104654547654425164842693137257048565613349218573308988731034861948664307514036538340640596673856992391868394221269889969443392314763069759589104961083754410422664001213084679767300569084990335585901544415723257253466628942531115513884415677136825195761940319223755872343349138944902751149209338717628723689365567901875910276076311186220945725030473828038376387591939278308009440930776322416006003358159770673983403246033386816258810880069637366490218476680015730848297733250311167523241292868708084891445236115385169381202360768467087958133784356550417401812770557187551469199637150110104322446294297310552161093558056708073131672721726697547828585171407423287338515659611532079972203835130308995843621817179761294208292782302604846179897149198628701089915723706283255215598803833208909681948316658286474942510767511013388857601880997302851128113800964539060296839797925779011773169831995818436364997915156751497538529981459246792558591912461599559456380538690052236339871246230752260140024968586571867624005978648380137654368594123117479257892638687157873198189761196569426075709315322498721043526667072175111489787284229561351715342943755481861436710645959753008904675367734650217242548903099696240452583347041480913749017145894415405736425159270120065853329373308379924694659308245221317065166285946687911860086312222064072625209613486445323042654184449081353805892385309502143155930025430548270089329161115465011557436071852588187888302883188051133174522430873389063100441443666432109290945865597898419492686410045469436091271193788925380844489601809467356262207727673941644895004055818087290000687255965589306049669742796453209141399751810798966352098402102939581730763375977235187580518323943802128347728297720060462099462331106921139401962766666532556898129776371307695120300089249349304701988260749687644909529400665355190525949941646771933344824947669478575151736374167681293996550994952206978529079076278960681980328479846131575547856560070829735730746948808760126211112051877601233079918388434164858328588453690225288999718373477919273662349217911666459923014291946185400448815360639108399408000397990642768234960265273490710871579130010757020342052387280646426766579600189227197241731514815389540955264476848725926232957561340451865595155339915227350710908010127242740566132470777211417179197027919475939778177333443443448276821032098106537855240599602178999884972510291945580790055575310757844088126143235187021397651486091520624204658069109713356033023097043389068789111102571232117823263786135174325136143250225879286427915195005745794708602161050778003969388445704584575811400520336614189900809628115329263828433771458414862015496294979932826734843644566857516616154635812660422585395286415389504858028373553567754044269228127384947546696053093039206706607846600853258732922522449883332069334656072137741211307825255667244808085243633589913963189030599069758718159821109012689296663218149327883015162581445501584912269507096462039283739636321158666207247748414362248220953481108976849387067133872362169145068058439503642926125352161952615260298966058529654556101627849469791345670165566193224033228652916751650085651349881404069899998391633987927091700171239505771837790196864237891957190117992213658107641019283560594160909587132990822901738975564649356570513348736042596866919203013611676637348411727245940412400768522750952231403003452038814576659086305684504533113473781821559777517098424476459924133928731754508503344429335690904031125091002742217922659619801635164523143655614932047455837895255477467306160071757566849126549475072548448080547788124572682088595813700273555828185454176183439311988242754721841633209006490669810012718824344008263929748863576181792450151450998943963226491660226491642820249855187756028481824245156046741599588581466176376962183710701707327954797726594371232612332100813525901754193081159793832473751811318850059935054994965680454318056351006971749999383779006128128919570945271266534882337071961256030977904752749000274609332227171622185656921321701691960913936590256259452296214665509176755183732187444665220547286686644660436667273901945068122892037219667800899775000302373658940773381206174206334394096068531882202530210321298046536018922437628468737156674972239475657102421096183502804985141428804638022270193950387316027706898287573725994302333640620095655871521202749961066515465458953121728983059521594231154936215146371032653586636289118918411357738764808534768352040436453439893882744766573227012579455554728976523258722965949299925455963894027939124718960394705131598508893845098453349769768611505877748714546895022761628093047215122032404872724331001170647596172958270847177552567057764903348973916122732586571765554332343414591315015491102229628051051358061706319724773493413870745182317483639585774638480802992528618027976746948215043504107629627808012578208738845669466943042633885751738222639591910448242946123233503076470369613281595338253172238020055823398282009298454717501934559566220280751497465748357187845672941566510637516126861781368881182900803724865833417804219616820405317285201283060185472656093634685073227309305751579587854912036044885150139726791668745942614700714695616132415148248464862380365036337311555677425676938650849481545332352064224655218545453355288256377623317822802249662538716919707974009339474817622569237472003313500409989957199172018595020039976077187406073487146554359045953101914844033308576697652394906563275496961439267999465509367414068535079383332294931840520232685648082115516194315317530989158416905806810314101318420537638289608738342609482644955180451741997909283045914540457353132565839987811902928653393702509963617016122571993479511439206999816321904050307931457294484145573574635674324201855365798584113391886639940846799005640928556095536739741614072535158546509735767861114662905537858233732218409084278069675177486141620202462960288460939248325207684960401459943456618865167674596997099846031020937824731091797562275142995415374143830051204904991570919326657233798007596910094010075734362015061675826863042543086684720856202936472098000834200875425054274360429333586036101399021027225233055658855576277788385254213305173834999705216541830813025062788718869087857920123813773215167808751675398091886599413684554812349972810719100633138398257345876923043574165132306981047861072582694787734412794452258659458031830451838627767933197327729209760317362806718313042789556948656865461940282285369055703028285634322735434683335984808212103744454059935943725487355336618479587703884329499292367833232108379229393682863897152026559701860561098264125114964912027947824547934706264112291272623504319842469362859423573747478145762639733911923167527070263936399610474402504457098463490973763192058025732757916139534856109650300013634464838275409645937959791856971527783506450049656068832317180878536242380112754965627453339046382552217781355443920769001708072038066046144244536729323758718270693904256408778434959792991101438168133778067347326553875940672692447070983631684119725457891989819577089167479461580002477571137857413178950004886296000832156968608873421849833959036138883860148261418358184238932973661834554033576715690480864024073125727138389261997136422387668381302104683384384169656854910123564751596944426999914222126286244199744006418696257904348607945545295212225000460919451593474719617700128319853191783351389092057167881390364146818899406058086247305289545371766697840058904110543245543627353741301105003053174221142701427953062932576264276795343722059386464219937555755000267911038933052884005077747714693943441892136996881372805034977971251739770268142286876277611888953124472300568806074813931095867700986801648310438495310069966972321618885372577270986204862609853371334375824009934443309262505561122525595850202460870907645850874925516375645286329937950191259687411083715115148469107104511185159999610023380560295281160132258222160724057980349467982193672891453527741130418068236351011754319656168951184432055272674276796375072492734938503219180146567701669621620957041805649057851202718236875899357276851340297266754027056152690558152387781084681531688746162324226442906403203804308663273657296708012174039378201207413247827565631602669070242038248351990407747947340259087033506043349634725269289071436937780234572870083372137425145025970910256938621047007949095570504632112337816488656427655415865298235000946818368081874714386114766628538593453723053567518132013888577883924840409176072272902732129415255369640532949421068334319746680636727335278437991124392113667716586395507297425983779074752104493270569768893337606242310552706176648990252540646726378927393182569839365088277617466670989688167730693832450257806148044253452917160762411541568563428215518814463409013262375735523421881372065437608596415213129020321145362445119251057737098198917709166734690037894761684570072662839127734845872778888819601127196201131645159004399970438468174404270294827894190412049313770708590104130443649888140044087462095608849768303261115608981136881635198273387399143099809036494566585053550125619613840250058446096961000095570881030590275351419880417721013199883392799239751216436463620255017157745257703521156773410848484858719930934012744281644967299568599976078598652519145256062582434291674479366961202751513696906520635577392134673031135001859933229452403026335122718542473928762574157329362151824897608164761314184068736039562557074248553695312557464169967128514920109145694769535649354141199582337053279006777219257434143058323537571528243181531219222994858565167401845751710619604365346269309173082798790678441713621440524304318536479507006996842825807370515301139601448345502081972432340340311774668226364183900616558995912348484088666981074309898264821588350841502907486951832003783892300287815897334360908386237822596376481306620250000010853589309089215929232027018617369322657967571060624607183240811776655909089785320042353945926465408344455182201576107505877416678174969426106992568509531216755074527037271981253603431858785343667688183747998098236555257695900979744757284880009236757997586204812461049839396125002333224251012575961373459962671280558662974546048101162938573452586192941827180023413338928376178532944320675500959003565699991092881037522070361616343421012627697894859018570047261456475424681701441058374487072876148930391832391004521220053629736638580002322159159243099313616760644205296654818433409371998080655743148606853995491919762738826963995564140802964605232947054857006882747403417140226419618170720870190485381850510599719088021812834055966839706760291575687678802612358345121858662682528550476542813568574939166119505477210496387573078835302034326641380701308259784204430816994604285164775395855416096450131165485680539117748573963367795304338453417722002163832789805251898360238118833141958992090594869426402068690102626825145363531521426869221796152452695779356208117158391742330799873039646100711391297734484586825814349510036361561567357597707862378686166917875752361918503671801195108004541663216596630147200976967343795295933903905584771142654487758365166090002308168463853225657960970928032405735029157210387564090534759527459672048589374533824592946903385836019517967281407871064706655915580773232212148157688028574905321855445764050426320134246547795589162857498644408143763852357876839753726609208002857700427242551822748419440634799049742783645406431878447648233042740735238598190265037253036014525239307225028088926366675138346384697647158695313806215494421573528523571755200895907431465207066257262862410939348628666208868933100042312544157559642580863180996734925779215812719252005442646061056617240582912815696341741040071042395659380534823620645093006194897788106115765016447112612381067406253348508549989041332358131568201375250086231608678692791297600186677691821625887370220807290568035869035268183430808683242669751586738547095062754868296098653944263066348282549888957253195600589306853696302976456680442499169508475773879796798396800951373743417113921771373291130190225995461546199201845839084351339224760061100336641625413576416363161676142683438177392923422880003778684165411305410002816731287184364801243916786571144959785661678307818960820184451114542269385219148528090109116695573816877811595527174927163380738614165413757445898165300756969359562027585229657669820991476267069088856820793601051939869622263877125332904325878235630893242578280422549029682203063654659556556479212203572769553681603936217409196403564462291474604118911668925846572135980249552021922174361506275858529038081989124543889879027580999740634833447762006722179620873389668894209229435207508754409346285228376684167450621645590042476743602152411286284798687422108780136992677033000252697960809471347901619538547944202398760645728098791704625299942865815742845587629544023573737320402554726084350992440505814352820801962522581648608059185432415869446367642829712339896298511779947184129992576834473206970994254750125987715447351052715826455837613428033565904925082574476190457137782184039865529351273736206312242569823521868557630514731663455634905117133843234132688741286326967605284034569862333576471190017572640217196539884405055443768416588379085762028339170213738293018993141097693971709532229847159871837003752015123330401287294553561885556543187426924314047710074167290930905921941853136281851778248929058349623154197095271517958560121727779806841664925773713781345627353951306969786777804184615965914912166346681734832086317056979365511011447244768754487118908179455388828850289438645862494615007322524887037854504895959193871480479470633994694628630829668595683236593307935029322398477893534817621122130074694898256304328128709328842610113404237310643620472620382050913035721297847883474891234873910514361411254338039490541760363058444800984530277749304416054473597200037704864572486145653824241013159908606799184442830506317550220896958512375888206247767278422021860242938965722594041043986859710351006455154179774621116363347173896883363548252766290597440742016563851612829518617769438826188493928010243863545136605074920131682099556722857766143694609188020806405744977531032102023716898019965722810396875618570833263367476541110051969128062437548145146244127250011139890521285633459865147737847137276563780643807294119946555665980992062878803287119386612002706081825646000864015991769611213858958843488256685058516284271404445667184670002073158170819327981347028617451344305601614372176754812812539855479972603806509498392044327349193392313071775817878591197663683062564470228941087617670340462407461194466682576371582521910972759751886801815780629571411567787924249455753423856429396981137751152346403875266452722356248069481848617484508817370210006070209696958324534503383971615769360538641007675577526016802329883850140769506568862782233408770562415545307780290419662226181799201236394586721737062782495750320185299031272091353763356656500365097403229572702246832275346014693350405494016820211426750563262121908148491521789458960552154855402778780222462830528563987130066141885601130901636968671879619700851772051289977315030107744387570298915311397111391680227871279843705960233165512719750740172615518226362977615477778546365536606446250970687065427812377835346797866300949204289306810632821864163188797530049199161997735080568607884305947455480023517858619463853949135056395148756117124226561710085990164099060515742769731241226876656049695896138278542865057904025112673025341632621859500735841929954266331818608808558484684843570383071472752907800718315761580904749588567552313736789590179994480109370662501145396795771322285799482233386902397267439638506350003935962498266527994670115432019653581398182932238768060014165089789382094133552373673166681667864198309855708301055914854491585497372311818828729318970946511960277427944248474464119060536962529945811523826751588701959400515649107418957216628334469385701387597975097056065940909063453083462490689438683137379850988280683717667442797825035908431206460584852272912745883643422694924426115820110986320469394426272721601853946105679541802013112934196484994542037031967107263313194410978038967346577024964002770358930782889306858033219607990281819085815713961903148734188306082980437274562730889266837227080243667712784920996770086150402703492243163003149497839816738938087164023857417299888029109253275039414121089932242985507519484528718055122775712838287605680300880866169085944902550392454152831228237171338783408711892419987319304577216893354484270872395599135769288233239528589266515351533375208014419087715815330992742090550998049615231593069738406337817049634177022411906974468651433914225581391008519653081509678390674674719468779184710670820293560377908299873334607545074592102089558999142147474323513679417131838837806540963493233240301242479943991041631350085077544857562372138746844209535503783461258776483563915686104521286939459193281837448617405286180666725682019185915054337919826582581096205501190321973900738965178446966154196176134916049512955733103469549390719019722434968397916744105584315425998291460065784402006287102064673699902799009348775662211768335483284114579267663535346432534788183400770424254563703612927710691340519046808656374663431746982143866164207706484641172326556136865786670377111719344922151296419165065158792541754679484939261534147330329288397522700787608530140966938807578657458928303720950010696644341271536480372562116137827622919892815477020371037943667185343932218325470206633894011598179181045573357544708808607393775751737055184254026304805051951062461473368546506385158874858555536901392953805439801500943179976521020242884595943229850813777357737278407274425625954519363609515493965739736841177144326824244439017624361010810433871208377540770953094639428364123726257440941628320459006212001679658125998063899168898600338169046102352774535836448004905039333923924850458080131552724596399352435697032949109806859235351784974743310111155153175162101099033641989355028167983977457199595999054904352763178842465126173206058742517319929803405673639690672576594421749867363131070747679257154536978298258785408734949173234246927552649215713532804023488117687392959740578607749987431461770855000317025778249456335018181718328208609653442320701675359719418174556174616858436832312654542067683548846935748799196926401083970721930877548106341268561243452752261010775974643187555173378034416572620780158805026399305674857729282855671143180875096129114011316360658499328825400686165970705489063034509695129292654805530267329949810236940477511176742967770365748366180903730685375032487459652899682869275384325497090136748320615045951350188516034991213229533396480534922770078893593482869672386208250966986719506649421509895063593522239947321910909752385778207184035441585203276490031501823669993184169295665214975698676050012831408092020773975519821566933884147108489413944755470652725809863532249132137491149999752033709120503405252242675452301249655242464664888210749616715952369603611454887786334034899981652601232353884663542159260485991368426530035220666242093781423008327077688260050372063520445105933046734609372938234467206812979571481743133200861562345025259517152931654677241630467365539511232838864591988867375838997799237276198768878524718208740175562725939283142911467301331629812308245352683618147046432289088323777464882791634616662176902666807900350315344624520663441574562406542460338898244620609536955474231882152347412918333551086797757807099383831062538252910517869514763912331107462696816106544489927314980759427072863138453260142920643942888169826176874575662222614288757415249035989517849043874115043245412576731869075027210216637517693660107124868276654645815982054205922011704791870138733958711678213768381163094130510406283116269246362752915516060959125698365029916162555574640207341564650423141750096922026114446135020378087331758807521853040272276362567777083851243722446471167147286331856006703935982372808003031341532258008523703426958467634657212877264059269998276138544858345906531122416614574549965921848571892548900094118664492654924340932796793950001012186558303610578777066712176687010498807456761720509056575257039153728562500094866889787701785114724617962921550775738615241171330907943973038980227443132088590064760815217390078931990565574810369122048884114488069331956245752484269286537824833525466523362656922502754797831343493294257338937903236090862415690927028279275495066556242198962933435915797222602154748112347330500741442171166604581155178780639729127744036399922017108350007918576303397336118177056660475769919640215054285691681990973311942139546640429869422868163921850715346714668981446301887813020498950328243500299346739800709112422576865643346735246005042767778189066867065034289024673209209407380239769764846236826238251005515624709755675651514452221317881576642101519670276925225315336681272576122093312596041329594232916121976580169308185495455669058272418990506041099080314632223951901234605219750347282772670828294674569668460590649620160458507299907088978496368387584654655358188208380345027649422425390216436750527223051649648004369613853217790194147551865188127840594370559272226054450895584503730687998810693437183651768888735372979995316602693559223479036278828820994723799623890929178444938043853753216349204527728815866263845179091525340205607699999728291317431589277703066660563536445502667838300288018841821365640820387989309634722097626573337915244366774750908541590764624018782211447530843107281575019355397982587096621007232903182084554436235126210280822734173435957722017359089540029466824225710403836461987202966168004086937907893852977592911343816884698106724609758817867545729193568006725386060701385175137065840858118117088761538633579953328778901155214932579730296684863915759284317870475955504571056852769253942119382615894367149386197649319765495529327069120431074864836401139382852318780531538432489317966386525662536191750812576151841273776039134694180977995009463967768842520188204858955326922967322826151254650853122593683684051687174158460560967410889032664830230205734330729699296645996999460896318742936354527668920923378113030375535901449114576409771862116829967640374664903200214441702610884418794255662259586044004334836321216409863388465505799891867666442598791606350044862310216360959030341683635127637030837344587811498981447018782206694361493535104766735758662040656590681285261764701689908970802458419599799975344496762386884183960718758474421990632065358782567386866890551141686206024895269682512666891081200905320005494064754534961584996281181823435523635000129842135578543427478337289913791431400455062119017386127087781331093490400173375995447396090057478494072928156603225953047747032458829324699681140044038744713622890467022107915642338528803000303541749773875644851185268128434846108663713361486049485232503707797481573772477814126045520547669949679280612996404572623179958354456921570288195003592209427084289552379553492632360764226488332424071372118054807286511688356327210744291714150963842006417760752973350477084961005417791327164790409493111905132338635482972036937409266276246613722723574838490150260692792913660412954339761514180348019611665636692034470497265387058689208000674370620446639319502896017788646033870137582830434319780651777417950404053910161506358593853454701028224579503966981593583934901495730376043722641217309532166758551165257475968546111931576213053233944928377425756102631574552260223810344340956307297961284301699525387820855102666625831803634721058344502333641569314829003399034968998265299728836233929881501834637365358432988098922880794970719125228911321037793112812263815027088987792691345153630499933332194938910782793002212955155413971865318441234803902786552656871815893948823884430909806570035749688942421130235611195143151730241945639151632508072753987483732544504333825304224681124203869739705007921870099877578507032211197399031908826521634065349240698458311360061239233790410355828842629712323983778488867747693280407246300344775378146321793672536068163969011036338515808326683328995590211930612862450494826213497137251440691143045384091802019905680923103060903062684901925996979317462770385803031617091955396645896271637214225023218915623170107038892322917243840172032608612632880734393898540903459721160221635438674351373741760426542912437694664766803230886911373522153952901955670836034341161757774216014808623295229674415498946848233349996482037879991027714560620101788547132903210585609372115868829007512969941370698272512600732163146398902233529357705701323966682726808973046525300340977370198216346552886814255848373293007713362408376143530703786996156050865545442067755907848291054744470922365011901594120947645452732317252175653960562638886258793996969215008328240617466385929834367239724854393991026093682961122151946413984110326547016225104610506826309843110607903751260823285056684305480603683824424738969516117849328902049721773292152190609289415425820977688965414025582775402006015612494828968923308882666017492432471704427150256096521283808166254473729987785123689986888941429492602448720559846420636941379997101978297557964861202856958019203764982015007734743794216763971618507601445168505557626476080663305572632278371533469351896454551424368295091054279722326219004285196589343065553858277169972574708834687056939819611735898722811323576746016731872362579518522754578179441647552356672206013194853558502855602136134709634680788512303303662980052850313967268207786821763882995799295569473367149837407778925333413784759826359047857711381365215418074136042024636971593192758303460800114192357767609646524628738497264066936228791868823852539263021720564423333738886156479572270723147663901769854042329993996782437699568136558171318464508276301680076613536975859773751535905335603904963902316582362689713273659395407111388844016960960060884850782961032021066138716005741332271827586967495375636728672149354314997586152599788488635393392820587902379005020472642350059861846814454939522308816244986663062790063544865678204109600891074604551335019548054921521946745330134949532235211941589490765668837911193810561996329194069922085068248880960835618104866537337651460615479794605770038055995141124508458124953974844473200173135825928417528998744066569291897958583971724313712475776316710989439094401297532181007205504065608854361059771933636630931107132312046203449857197783243617692458327749402433038508208918815605461408596036687692457602857138518959121953339316243422261555317816818597953060899597456635062213750022566239761062908214283593006229869102897696592550615683431539184487122081269767062813596102540650910213426458374723432572164295584962440109488021990658144527438358195697082725188729549884099029248300537794635543237699816653593871283585779814769460226393840588591140191590442398048495110613204926332612595600066210504243582458375978032983887067458687520198380700292575279066331342155382168222792729205914735405966211460644300685096179055756173923715514656150731329855319305270995012454755931122595447133937011247026734165013075771932520274526231774313879819758783033518355251984091388550131506274232575753032040195751111743772685369339478460426127921854624748886360043479000423243957686561154392614830302124055790130167155341875863340655630382479830220192220662993867794616583434682061389288296427021417923886027864517048380915659725706336056171639086884663560083407051505068733834359502111862286362761338339400389642711323764710294764692867085447360942893036695654640088707847187973871508005917438370939197883051404416531320725479665732161754178699809029836106777609398957030670805839247725188218037717398783667827845606702205090801608324094924884557959013784406944222256458740671257393670219671884481699384811755027019001497007137960448098122523073278578613229012000621867447549719176279914787753645340234696940149042472069702024246291836616378273543686119145305468971807325054388624859998472336453096174316467026828088210005321110339581736159601766993150174532293001492624784918529471484178054540283372477272326843165370174376892232800336868726273082832967577746330847004189749425200156823331334235201878559963657635550118249837214723436869699743494998946603020142583876465077161087773685654212488488199110950634659738775899936299220453889113847654696619338689898046269333566113440091106718779604417983359613987602782392995245055903447475196669272230021389613574056423060299686208755421200215400663090821000572952162529932836378681927105934354813271829087424802893927081059318300163870550806581285308061322385691185158589271455317684536211882178867310742659668309452813417718297029935152679080161006564469082493611329332524853100829542057157414924225688348325689597512720988918808441618754600177696475724245410447782220192851434596460310121905251359297046018400708153730116409246475073486077132735916531717477540724022930938257167120168164473754730272058989173288502256523020977735888800847433353720215808211658777235070742615013472140693544696810532052496127964474316449370442668657516922368690287409669823419622251385544360342507845232792861639100507083651093152628301163140590162279234543088155059844460043953925349663271225971294858463182182276703732607331513108038383740227627571203429290225160030427171952904719239862837571442701670580789748447912413709569374301144094154738377068406293739137477174096813763595782506938162769300405689465441998476967606958357779054122357658341001852278144852214629656759287780088838862041769444279212565293852037458369587295956116614530653682270383609805128542363987218237817482560578161641689056523471080527819903950970047309235582940669542416746893250146982017793583810334817013177490105881609727752027788918264112867769802484158181783443296232532108268611267984737277675769576513142793819997915186894452403934355518732383550216202757385308146935414827025431662922574139484242501617092815028162903203544994010016305926982629560917884934180688519297399327286687980072605507835976408691688858719056930472205036227152883487114864411633162458913279977915801351195608566268310482754182000641298714851867643679017943456652336365326411765883946788399976695608423721649971556057872167814118463963108677960220318021875587904673038296128941202555258845981703243447419308056299650399681668558986655374330481496921527089407346993441241004997723031891601370734198867427842499285894992570180575539322168708171747670647759236434352501031839984682035941695119878862118403438489835196785464927852015638555181534791579230925651790842636009551215704461654751936495402580718794398195236383096235586359097411595904058947931114306826978321209772160164150784622434146845533035865309795588798796952817643722012401133823328136864479607947708217569946418003402848130403364180854250707831490301421181828958860440301166445762280444182132283672421504342430067572199773426587667632810230371896032958397402512188554718406673402232593943720681357908627253779778044097401856871887264477670538578169725120264075686638234322084718173107266530291189477759953923660060008687933144780273929085158150512750737204796858901746841067902286946279646933917806138880031773931973724567802519056498845452928395486443116531921263137785372589387278191074890548519392359159505538588667649739829102537618290424107551091210778749356751190324985502951640144916887758695600684835435000798414146322329591667518482615830445848856387932491418907892628630984705440926492938426652299973227537438786549831252842750204402291411242329202131897763340460564724723789664447178211428422147804130498210671163990899458852189290183426547925052720413183713744360364020548630516233358532239112287503845896022467150280469275163685899974705804238283786392276788931147693840577135550353577990696383002562808306010500124067776256023597638817271484648750837643847446104426656855674925309627436944404113523616103931012509444072830314731552769035339363429136774800863843689603046806045868187563169918959474297688528769748350889479336847590743885360469418971373807698909068862435885617979467522557879101165140198977482487422980166997155429804556098749150779653688396824241769421236756122524329574264817249144792885485810821060498041794436763738010393157420213700316665899182458326020138193612822011106755223364126466727262810377430450069050138056531324996955443341319875426631182554065313715393313731788664118298737592418291761111360555483120809688852932915954874958697099003927205866690200280676116089602663515424900837774063364981382782598295149738877804554590898981792602751063454685309036261012572658466315254773657223805783672693447376180349544176062961451931286682145665514604505973554070103601777402614458754211615042177876550122875087421478706603086574198688509996011498781626440379760103253051947529728210805980331112182779756164576817029897560026276279347799720599070602944855876173894545551932858647027630251611511258811185671646340828792457141137148254694019510203530872658146882618999298632500210157858440290094439833773290829233040061760711917588772182060915897660742694493631280994744934537176054116133498745113311778401998433738202897462744395264346884718502205344811740816018965214533330848127557806728984219551770160422981567782294052620556849584247843085138095737485789206327609545569671889858755042223217062947365534750100521187861409862549598223107090861562680020008970410766957295065452513835980254468815838676826217000988335443048325146876507159698174929867149599305691479610682446334360226688459159775436321300128634123498851300196566620164619755818830775322388345959191940565591234866639412326491100381209122791459010488263486914320146168762981336931087674509461134682255910538035240064799448103794813737597277822795887219753371605118131166485411148023383524185764661124907837298865182258518395340424445726259769182628988223748128234279454424233850823426157527015892509517501671682437570286705945569968316754821983505171968158635218455876520694175187154337731205374770455961715271476185475654616857846351959021949504411365261246839198665139220619541087570423129109447851833199904257473813787769665059924365616260330839405164077860742960443397034669100409291664433930414263935886317559456297395126262708374719274540661126105713951595879015852797126920884504787804093822247791818114833462307646122730433550280920816856783496473142453349397357960468394771914594104963524005236443734227578775283196472687553361135352526195466135166369710186342659647909854054822860346030062033201553885895840735206677976542156284738316553531257048994365395205668449510783168955587096546794188718081990583446769051390716238018820953042993030996340479495261219177138963644701464076689127011383883399428925948100959144096413020018857227462645154323188766111215360322987194713767238318561181751922577508288001453415658648789695941339140811668847297182266270443236139916895295872047976870875023618051322397167881436049791531732456171043322203537832755235807034328403279807319409649184072890660258086063550354622201946606634763548853466856723200314087208775609305103980209196808242380723914916535472455678274709011346207615417946490820461926005949925544431962955257953696014266001528399112097923218351049857667025417954015238330170288786629055795912343676345539448830666655074782669116193821746614096724743033577184263927430557710007711311650246036013394223383502294841489181659184928634522509111125104243222805631682596566077570453442685760548935515217416767480549923468982425479933474445009779481239213180626864045711960001176381189119994225252383528871153069385948316310112437628930460045589747079097040417673938382520130820713446738660335179132689496705363179668031469860392688462672241006506206653100488554126532794551505806215188047057740896371390529057625466588680563933971527071245679014063941024939885072757724373427609626653344178265291397178817312093980797901098606732074852434861314273903504094829807941825617537192475472096295594347820205288303849796754438669923826103798938361193345227964960080900740985372611553618464921357961656348964769326794946230994188928040200480567806573732371848110085611026875450362630566887138437627713787448999247650303405122352797978253253942268183162608532133921397241835434326077446901556443701715900017911241505773992949747012765841867112277312116560880092539892382704573242583574926912438505334245796190560113793961774842721223561915943633391855867650818345375971595041172853923810820223824181264498226632596984641297492942025721639979196934861781183535195406427925970003839596596220292045538761987332783405793804917392094279872711877606235973024930060034260222534129300135520916151800082903038339316110745865333197961671137067310091562924161996335108278585265389127929632759967688996769071748247431174976863885302263653250407766861246286578258052704905076000531901221773905174765610590329734587525735519215394024183482185998150640588225685531551315705335831540947647737290022348172881420610599095086169151129230802097806781424157165011606387518315883578781627168445779128675202264098130429575141403195849388972617133722554790764381618869307592460724911113143777797779994396131719413971236381292945690104554714914198752407063579460821190333040044895658338248449240905037436765053041977117001568220989581078055117460666254680085398274342452025207231486137140031948824612019998500097585501592299643024501434093402613176152360270946399575064852987690557680876215562348083935451695745159541256974323857299885826385206091077648563914821136059116795255320085825295674900646497164584893902013529623712921735482297011936646924348594755934193724671086769471419976303107906897092029648959155589302606990401586316063976193441595959474135288804517914370265096251795226510639438356877809761599611623707638653134205016673808943824613637179285653019891993072361853026455252379561447668662139153154993478279110299713587838947536719049083168286939420301569908218535927332843813387098772462337599245184343243244811820713979047098361526255958957801580098971765389615981945819755997273821661876467049630042958345324701135787230700199898053723003603549167583808642249632254504982596489511318824967036304969094848643583016207454878849110075677937831259439892974772474283517429176674267575048253479297027960419721891380684276680672470972897126750245085689441914048129232849589830546386369432139158973931348758208517054658544254268680229021185940324770813305099063724397594539425360783051122033740058469593240014674721268582149823104583078678215390067428686837846386012743032379802575552748759281767007237167122788403283190393844153972152171469122675622530481710990268369732155430708307566627440673881995582746204978048182719199456845674356890804261929994663206542733910501181402728900699236954899327264322125716024082047059786671477493299651883074234554692792195914001865569378697151414082638584576570581278300606896139587582577659005867636431320984315526213824691621154010447940998347864187854640957030300621215559710341475777708765058788161387146447181374825671281761348885612502745020622924602591679131210191000001866897274515685635425625168006832423029842247568972834087878692400455640689266874871957783945197344671368440431394637895053090391592815604363976606098258173035319082217660589792260936472972252052925237298084778125646233346103276768011652233722218475832065581258464895931027452090254107840919043724077916144400138158933009683418941643108688743148807005346166799797581187236736877526280201660325367105573526508293996956424204901844417063293969534189947097054288098689622578488088737070524819091279940108626772586550931378244340018350022446595643958344371989862079372021725629824494313145525582567822411469270355360716056536086860855930591842842293183380215775839175512215997485198058227022062917381421473841105970636759680188688774140334062252286102904326892853481509757494028657545386730731551162348522246019854003335589911331918753895826881483175235666144326473064407095675266405939440200689234131636684509308252924984477599865289287468170360548754951289627253414794455694207867077985252780187793269314704526476886050594018437281919995120707348768813877601144258111098983461261691165137733345718126658436921580300735367568939662114986955012122099282255861450009228887485879425139802971773301167886236248766082966497373977510843818724402507369533569766539144234525064524257330832176575519033305205187238067145360469187995453299181638988011357989664359669968394025263064294238101359145602174380533891202513831372117032655243058487177260866057156095013078941886762497735684807689993735666652906769389621248204172599173952178346613190197395836910851400138213066276787584763093307201017012810179254691661189713324720617175909081075858787488482927043362906198547804363002050125037347564218853036815972535016912838806918758638098999636163514761247458704421263416156724160938410383272031185747858566753428857885084104717175843426391261477333026686843635020009910216028466591458311597814504297731786969978365943023001163822907861322514703868454168087534497740597881217031553435730808229191109182893143964541741334108814973279061478800323551372039531124465664931889033809888863593295796653629379638782794975909932353541318386739116124389973996164750181775803011581331783156384320674469206529257142265130871668882242054973129094052105749449810899085639389041827255353475346702605871457035693696380806607773224882765536972154471744723043599777260327664342584740721923498329569319853386273062179061411524133152813733303213560208918368548625726222444814498873422439845679145197138769080801061233843103354028197783321563246438006831575371823081022981993620428811273762776434073870859203455919843443247951213502241299565839916235548194460525536014712779155937566437021974373600267818420428522352906212470133629553481432615348633808252989605173773406462720846983648689462138308243421452478946008943315802893820798712193712110854790805595893653326968700149009378838289930220505646240551218639378490896071080069827117303242023704231779130943920622345770999404241237902076211229131616890915823746867418942634420630206731997592739643064439632142366985995000694449822055466658402185322117545706301040582350894804455034847927130726845111426768302196517595506717421431946744495702203632716751353078681629560537785434890859530916614387911802457181859295160666330953265791417848234080039159591344043127599182990211446567563993657051346182436917007098457063635467146426770633059760516851867391926965765000839941654397808792807793832671510181816494221616307821573059014217723670206131453636092307006932561481815332925358048254174889449588481803820460639471350038101252752989452148553111381547611774561337394490657641637261169227200582397152634772645773459022653944983029957642041729332635101292052192997060151171455237515351233281962166562798289481200941203131467612415737633573565013654802201783111804259128297184416098142863280240470364099051211015268267788260205414729559478212132144361138257662910485099644309139103987252619816541737395841407771506342302965655013190117324090242640787447209905221678059884860670398480191491388248772754217549480605708687497378169709882635729185951104025931973233965476175410960395065277945600120311399383537918539144631996065239721084498985476695190660016545452630377966490827972973614698681350198476361812024216178500985793547243386523727596728790721216880717003997817322575340680253213363487384115555300157858587356797521569345103447936049954267869816326026700295498572234363907828667174107581670284730840408744267951099218841136104481227540414728797992098808641434062768834264710535943027021662286287937039160952018853042952282245530432859741663525321331534634065521270404959829664823585916723878418576232680531692530219759863867647259099844359168261342592366961181029362168362339497552185358076888743076090892116108602544022139921590990120156804054535049977355213150976123923557220328559520351842849156472607298457087687448353838274248040282415934550961287926074353817453819741946461853224511391197456099518106675543383514945517802073330442923486563798534428829531217786811627891325883890654539063038830102154337583828753509692639363379599264542681524236042004017029617313248863772743065092281855789940019844099317756279332233693263888922822440099327820919167932914770868983493287880165645632746298616650382439873464026944837378608641949599773534132776615050640448662675036420267746212125338228163055012680787522447635910749709091391444043330930622314239350181005701907233465805730034880242740414009127320639748033118452522532818951901762916984285341039208643370491747547819203437966090195023112866470860821576060786438186021908545313614666837114550792158395115501621594102059244384270855573885774056080866443527797566965154591949271537996856509844050344063568392713881657035498663449210425805489896961987579821462584438321047284468789277849887423901988885954676537670192695878694136843929704991760729774134105557921460664348434830393253496880435227809393595181736159117282012089550372167032760452150274138426520580006581863083931887279096032681312644453108329943391548817428227799849907121310419893505799678875678383341974402841728766249481451467164450367596188994597765222831196852149035958612885267456225982008032739138992783747623094430275159053222515626403030302320298180046013078197966237528443553390799330319909854384432846913664311124020189224492362045823546030489130365441172886390053228431600114164668558715263263759154662468095565696227149171479098565406078261458516530338726274612879909856303413909552028739919173771078682101450013802086264320202257921116532635862428312998528368398721366505626487116179348693048262556208373196821744454427781021289218784944848740899336889812875270240215721122648166460114091372340098715815079637220528640110675722552977389214128764672639216380486476853350835868280099676726556822851122254259294628900107989083449612868500608112745010170674165891731457668613290950336532652198979153697308245729837593457010571336201513178774609081716014063114856214235267703909335236069361547430861336195689317267489043115167313755674455174342724283357734090463608383406483844710631985277513081557021211094344708445544153163553847461658096676985928227530252926227905092467622310841686527708002627490360847849925042153508349539718911260415929210080062455332568700960819844452820851722819701474531593096475247963739895351549424910726652115739789550871237429731367232528135952607967197532871172319932316626961871427938926804307053392734312167480143098476220013660474837583916958975767835589121295681128629909225971190063704373684843731835405226264762247389830755135054989734304276212352028039008709152155851414647550679124600967674971667876048245467530252104507863914515464643636449229856406824580625288495788751488681094341659777058360783102935068127265150889116177727282005184827263613241940584884712215732388346913545885166455367538396284842918540348705424729527918375020343991639181672869231885735771571067308162303459483879139761600821344910520640454979137819491227771679302376877501268374241923590064769726860322943860196654972236471949193403478108696199831074698354127973511696864998367380618719395801962865624289046400175071629506045792501425060823599546520338185387291591805281693046504720342758310529540112882874013551417536204277022698519980169063779465925842046555092117780091978159316238766118556808593693296232716329208220511172082931455334884700570024743847021892097384469937354384163093575911095959217615410486942764768938282559516591322805492198828718808549003708488420875528356316177883234232246393771294042281267205690082027194681751344761313954150756034511935408299262091710211826176407435227991328562149489978247080657460706464904746809132987607987557625889741391519841900453714602516149595182093546724515850522397629777345124075626884618787148982062611196920859126219295417082482936823422010904821631855198409229086791345607207087879400575916413813807130389564618204744032569407649632748514481187799805849594295405038579098874343183522093504239054479317232127760713054689349089687408643265593902954718390388153754648033868460793962141038360650326906096271847744785773543300398720814762515682635835902559581860938661297715622350461788132341673057794537987127528537426425423585527007848997704948866593622604724160366070092453755319937730296303685265573004598117209959314859202371550115656374089472515189125250183178253683554283031870011918065373746168919144859536256569060208381256636607938828767984745320353070649312781618980195494225683635522626847803470421390508503547899033632477837014956480568358636191762133052768689835633296385229293954020139414788131609059015656629439758834446071823020350202410741436822328406894035938644864108922767823308360812335621545410241057957729691411767924575586515004261440838717902943857291115669593318955357302688131146674338599078149219267390404755021380736260416558217423212223709969733581051202496784052109106368252834889519081470440685383299117197170021981156235433996113416710730986328013959806770564494081294015582346728313828971841089400388768150704864441121978846529920421981782015030923581138532627368244340954477473408576362724249924405398154271770623290198423445109311386294845358458581692996327388576702657101954571141299204929234432783154463436963668098642837579882278579128007795548568853653137390629316799273676551511631667831203330100146503898342010599720255493263606057188651786582170508275583903166163495229404519180421918159006006806538675234256784691459129280523213379528447819574468193962314119938655973733422118239216324168874593076058271710326832268901835656652282591082734277519179905645203086753247718547945001059122696612280605688839711712252678970976415622404841028148983468446757720990948791930850352255331646722229345362094264464100994417813432617210363439507640356354133265737123226367857670266662543467401399743028159049293766045799844961678854213055263897597903348944745615824847284278520007197934134547913512508661269783759427316715045046921927876581568284684578230176124692469347063968654536554749297813541403941939175659085687246275987974618540126860070418210528274373314776913629440701445349932674551837078600871922143042767946797374276946007392281754293413479400322539254036383371561512265500311603820614252655313964213871108622898807008557227750626338709723037231614265226323342516232178992923946337366332969348127844661140333271483307053620411477445389193029015730919598075230078721020228350648943549592046969155516209680546133387813262708913305787847318075771073109749201162981109410729786636169743395897214589846321939969248843314595788958343773443925221038513427290953527656263919208295830006981487628240369710219988452710419113861655666998930933908317834457032999157081167790762534389634188161637646770327031196995388184753128704685766976537333107825154839651799811359836023291978001265759174233648912160109505947111224613240362641010202953315772012174822753688287893144550721685370422409197531371812027860527245610212322411266563640084770962862033371221325226454883265538025990321810112256398298733533567870412697686268893665317575017624771074254627955075355847028112713019005517639464897997345372095316121234033136401050251776693683746400245222520291079712603145278643791008923760485530426608042419541617326843563414383144251145137510518190719985986453482122572371756204022230798291545157464887037395194666019325859440438890154990557228208419427335760807713883860079307501844434116744884121671118172635092700708321283293738221856000772851608729111299446258267892574715054568983047188127200826975177651127057925252476081846308598678052854096114582922761335274722487763402158268202513747941426319034714623478832378958415393503204155298934758548919886632001113591932086668373142848506187922717857355000814781793715353456813361177519672803601388872051358507199180688938069201604295435462854958176455835229541154170306831954025715136902102905756534393969041728961805894578378978023802821140891852797066716873971352284809159652214987677121021932956233255648528009130919175753462951740613146584888575002239444446045427986104161513133091567755743128104498320594159793409706799386960741172708151881396764087199487648045273806152969659851961679230675784898909701355073709662641769975309535679132725707113583529315474966493630125444292173030664980067955691819844222718389891566872090220253413757937243390389319496601758362356509907248773950002701407706772087708247063737569887606448798145705387410095955970942080765925927433817958758105881079480916448992433337457601543969024605814415860339901968845256919002115289560105899581411582802142399594202686624078442064618573941093532137941458501072820081259449098526978612406517738644895701854004143017850284159812288260575725798517407141662252002851375057717731908822147069987558222953998736956000114599315217792902578436363820058502471191625241513756028725963237983327829253820276427448030582564233824572371058710734929470325663428892387141502322260521092129746750129679217568372826163801407652660361116590217263612856350506566527752377909683626639030306363838317282736288424156234432621816062095606886861557099167525573060504821400929968909242293405611350998023264036318149459073017695635541102905207118985136619286911339505327993702259588680749791024997481868445110150137774586254928533015939431860789424547849589695698855653857951762303287679372702808015867824119138993885347284228813225363293953778179519699892632478249570539628210160989765056428528150793408523966081473750160988884397841738670216062556799220741586597068414358908148831467702496733630005645162722759887577250724850279454446698694866010741502158914076314904094638479411913084702561167327430022049980088352606775180837417279398731549460450574693987317807238963113734442835678180664870590825938786124917369375895354954643738992190777603133160331930643229257102079360167172182604780763294957039759036955621103309250056536973862974446571170218593048901081199721778048146819172388690124888058829966637523444517114422337521226506757658894795451174605772891606918205353122220134857134453349995260969620002503798867420508736886305849162978724844577680967849522605008398156071886197610007803993764269651547054700504388789253354299256444943136319779794073589378386499155292641404733223993513782255991086314933021200776842720694644254194106605423521242164786226632019759327982660821393595577410639822676946116371593014543935142169311062839576048864625128093222499193699385646065391164971781376093605057816444377232952053421010428251411617854094261439075714806642226526365745401336484600694704349091636009302963193251895038735043335642338308731871270376933307180051000748586891861979593365715981085878362305602545447682961930657739989541815683756586053344163562735587405701120079086832136425800616833005333379449599351165667967741097855661329371494897964523582137806552535677148366240038402609811531849087969333140751264347198409279803061647639660123108422702371879138165945878884868333785036636469386903064948069716867199395709266254757220807193988214612849260085235195239543410149156606063729864297886191204122738886729040796657649557963683179163207047155339381378070781742722601014854605920758514135265139932414510516703973638212137685644383909883434602643408468009842003587679628871241910261455893198178537561209891506681917038716624021128886171058482001669891291160915915591740296309842659615198588379500639760248097668023613096494178206473686654169343307034416286868499868705482493482107291194186101683698572251390565434103479349696292681545764185300231906293694356085272673836621106096993649519673387419174928389596555784232837244187216739049344491879593743761643464502000127842003497390732911265671147595112109040882874355227629213193272373751665306512692322845252662651708869861566887001228916778075880915758676373349295691315506714585748927388805725267087221554312952369548247980189408445182880107404096336287190732138445546161936843257073072431719689215270353099439284588586103964460413817182796969857558853666438174749634675446180487725902988771642213234574887094676712702291546308953405362510463509802803928149999368931177538674668946906199576152397891225488834884100086601372126187376620239957626955530386813931495036489455249958927343353502362658319824550946223533792645288183900992549487394762918381632516219484815916197373328203751308748839774103429340146113273919703533125545727873335600149494464958606761304886432689118626382063195396740074661833770934322865118221388649310606384480189761846771499191223685590064286627467961159304893023065053201701882630334625462883184164301242200066733310047836066975560070307374661880391247420977203564954801650250742983997502491840714183744397746086275828835304411576627002383272965635423457854740578108152125040634955335072686475586135233211318589475887752096019725751552520440718558009127618930827421384821014586726827841537029866111997466425801607860539685030538170124218507025403128385132846375218019486136970316655170930689586726778995507240390289540975636686761923497632246276489210898193592251579506269095876961013862317186913863757898137431287976357308163761432383975721904547789884772202984047896957981660639956252639143279278289838632548988766174607240840701615699606839345710423355544152194474691526762056663047184550609878132704123624653409328852010294071065952534740696328624594154815794233654883431493861862339897579799655771544621233897068977792746542806063294587284660203971445272004876526068856802762661962374684059527160661347018185591700207283508824682742078994448049380281947404362697650592299797745418820430223978247945988783709550778807064205381515321773471347502764313545724261038942685341795296239713868984339013946904387773857233112445636367390239966522151550391191823455520362100765808312243618007900103516251557584911124352172883252886634139766086063537145131625078165416518199375299486001462387877285020322781638310242351660332708202142079182603667475556866894152100999573126219220616736999986768202547048325378894284986372239313311846013476162011348732541909452399300769627899680310715151399735252003120881228129792389787355087392673220805919190495909447335142067017859394418356605645251791515683470528458096808512125675254677464929322919687675489826709588919457184001768077091540828052867716444642576272809497019856206483872676199415372628331178030997718169392243183653476405960591904408624503227094479172785543295070150283676511404512828807731036450779070232646762299970467712197377109631817178320847503091295021663129379096065379913699280303486779321362852612509698442019903143662691868364833105269784616505504856457709087594549407175392275043074755071599348415425937661416022454412137385798659350727268247823949328358620764188697612936596107137210262731511244901678346069765492462420334348840609809809864139153003106362516221485001927527024758665773765524519808095710388375840677759328652871126691782583161457287812487025313451838260606603764635391168230474966712155872899223703193585653145230924700738574813569500958337591350723840794717748215154973910027289502794358153201429406858732123182065872546566348560548832352447478864161267838608745910173120090231060987934786029357811209363326024893075272163663632801955120204305851809926750979057562864141413055161515672197059621886249670199648134210890513407621919346285946011534266754892353352265595514648920198933120764419391034375933387936411513717213447524508646875598648264629979880800829295322800191504988605923129232732129033692984231249964604612671870518394138323094330356939613308837099633435057268871720242340391818866518055449327709132309577951461847143210028200515237685110681824024391588078212203479236140645277514129178672888172730601794371953350248113864640160213650585584100460964579216962366391224570186703549080171401992937459006263851528351461193596304760814072910080530606005843262072626250390173788436234698338660543433430699905272255271031813642283679014580124237314700118272448861581602962871302605112173969740823586252437174831770677855705457652231180842858048236411165192136017504582338177955118596304651470871223697122374354494714169559883913934726589264756269792590669131338898790841183460299146265139147850463049850718582601989009548347861266260764894108998706603487672272956422738570553040673561102714015289242400274440843469206032854851160027761534855307593879297584497238783884695257227832108738912820943458659082305154178137092891534981566867770883176773074426043974759396969475321379153026662199776616265883399671368296329247230060983766972121609491881887210609391029242521361578562730414571878027294688626961987000837832784794623114698766430227944234603824071634424414429835233922513415415368984632415709921469945108415918877027550587062972349794371384096345574587589767732520516454858301291858761458100376095193162670861323172542219085987006809974173784584599372187945451074908278432018828719719667517665015474369292828147511551086885598797051625002533234550436570169437072723281419551114490807296413115532997302107245576618443554938392773645924567174339781727708436363746546541883453401248871357256645039804819147480032100302788929409374697585909356978463128190396533412979151946802614152896270671031527909723247200461746209880466074451983064765131183801348004425914982479072031913685277451794184224840157886709882563313071813967758658803147997402921470295778568952629805267816087155058302203963946282099183839676776664091791611239614321986821321026980892488874895409259404640330563050588506812781426696333603815773114131556560218793856987163977335988682822202293448775549480588289137392659917181012413947436268315241129553192612201939033089178420515308128469129108066149635286064792471780842990299000003190063646223669628796113356639983608510834998338317396083587743798414866923683319663446587086096615259483704096590457828487762183673578525993031763878541731354862604460148026836157422624696814990882975385447186770282995971740801395446917999851766915997084624575467682956143392672124739139881938992051729926136273331468596984402767773027624803157277805699867537106322876265885017939876099157453527172495028416342550211148418153266447298633062990529713848936337243190094794593666699077886004865197560131638334697372270359400774000193575826867396588016334551811000443394516021474668467337237461149723969295437614856574684926052370660974248583666651448193423501720116864153101462855140872750054371289758599601910186267233570632982538023119578978763962536249021885983123456078575611417946151309401352219668402777131018220219714518260898615040667110019876049534634866661630788532804570979862403459792433689420000505407007989636791933066963835210487115981057280431857181209829510467870297391673756296074525414531706594683162087183669145826515255996295733995184623431752971520391421019914606205035765713324199214250814723842954937284419258177899518311728040654783511235307375505348060353410255241334045091772548121294637553383926667960144931267731676694118569535969642774561616909866200087883767970311075451863130577811967907579145636313667942747025550575924152371662060585774976421487618821115424629607119835578726958584733070727101014801520746970087565950348645457823118144098134983706107887746019658349713368464457422121942478794899220104046538468673843451050790021701338196648529240086015087056197895479586479055329172039566244989588245665937633253429240245033758783931881845730311299693477843719518086433905921313992521106833247430433446203224809079884483007141134337392149447945854205835531241976709757421561296857764512494906886154385077506299328381578688766168351273135148741234865736228405524477970174586040483258903186992362681501919194355325370846650439295245738401522295050893835994258029192401740246108803466339745661132300265513945212759311877701768365405618011082914255417782716626252536443849231176221491523438823659103460981734135943324779101837847323784240494482622825281756318314632618458765463096356276792754466498977555798161635572499041586492892888753848170611310095500156613544307279935516652278138794653091734469470774204086732250214665972495708805013246217582075301657000736832783477272447624327762017537908946056764585244067608742437839702422132986567331865067436732269385957242737239531662665342330102027959069572643167715623192505649416495433603001902219724285734205701811996780576276300172739775067758823141608374958225863107908381211041896823050631838953828973484690516241939993122625074469274831594962185864613110860019014660295495351342649078469404341720248493112856990526105327952059360448443169248208532523136364947762704325345410427733640327547816634185620086124275087159543981823536108162914874340061987142375424140297505564782374823961442805621761372218914738953410445275632895007383791877808773904889093320474594350272118915939749462700100717874725021092967227403455844078329618319589087889027125733229338433936983334677684695179371828218405885976932716086779493072897759293814508044405440597959337089777003335350065637975624545787949914482975831589058313978095679931074882358191509722321434117798081804388089715010832544802261365116135038784843762218170105582067134025831544539682663061827156647046251568579253264205873913118399714296651875123002355024154230629206577211714058605342913246734007426702922429200658023526820906827302935465030281818578277345782979627581849694969389373683103602106643567692428116207214643597697462858352869344290920039611663991201645541315891157399381354871209211827586403122527362855810704803215003478338732862667111268587281979547944205981290789270252526593312878749806169690574847717032618449485875778611588891255750940469718706062427814290251566170441067957356901561776709604069653067079716384049985036505802434188244574405967716923295367110238784079395753055294516451093632912257688078992113592653586696184489064020050788748082085924779125820275434045343588144787839106901996202998306439181900242643803874092491551729984924504238672821828080750332043815719372867027696870225304110515334290466926782299207795565189659401952199175811221121133906976486257701159082150731072941825144907478762711974798584837265573567530539419390945721825755202127140089217660332086483759088519614931952353311560929227038525319526534634645691387446083131078229098053179494353080053910159780610925239052293355181841087724588839503918763588555276406897643468852283308227914943351483435725934153089872745083936839089873873255742815334925928059546920046319976066562645186980364814647335884203771748910982956217967593810213759520416633024454839956556877219927360292299669651628046368688246765248876360140118329732683518946868613878310271317499416864959763906963081189668520704593065782232748590045168158043624026996642647351159140563352671877921214715108771036067430387291795493463679409292105895854502549356380302355241199052039811411820555554459721721954991035655101907744825655846592934131150833422558801187906472815500790847769159995367440022189298625103135791402707564262188344791837724157060304788089768574904688351000366466986615059006282322800966342801887145720939592337416816789558370357847892997913009492857783765191010704703593140048680551723464736867003792842762463189580628557834378340017915100767565992414053016373958895033593934568603309998124501070654799437712909391218643878267598321680365953759901685398466904168361689148738768539155507477367184510826620389219304546718157892618868212765991619555338058561122640817436327210502330226863689508859052234051327720797267657963080595719842788882847399513295985541027372321690509116733017390936449563365452948282876787881765013956847884434645075220758758973859374598495632208636025125606719798242124597518297196264449196432232681065751240776008210001248943318790376840303019474698256023681943718166187610567184471422867711259781739697453202281527966048798382094705360287611865103343936827565164647838839218622983861121869970011756553577775477908781994131397008313005013071621438192439849455761459907136610465611232162347753659092252709371939904647559082417830966325998065253872596758250473671725289593088730820953491133084504927471060331872508871635151650275796286523818198751155318571669292534041974681801585543975082228543817264887490410870020213110275389600381500974904196824003865100891738636127123555334958593838446431168430902195213142815064242705447068677507381862079580468500356696894799907195596760469209547196968226865154204125733321961888937096331453110891091680881637359717132911354761526129258879952556880257090324176558113842583529487718995902780405599810158492340402692432498601956818064891336527643307654792668170203330653231529942027565291109007341881167980644852212171718734653184154262589416031832551967036864652242835328881430472637312476086966815904213766689029162395035910315576987071122762882189634249042243271690961605692175056432161009762454113200268922133778661585961645125851622474463506889525206764126092333086220846882478259516922802490530365125163537395649731491155578407184942863450412412138405182243635598698610790317480489134751146712245788232938591747942623274384355567139344026352925465052099439512122253789988931218396543149896274219318942341832648947712864477754864823791686790989539774948565396508997059519908649773547761759796734752970990246519594909818055146372494597345693202108934621377983305753974591811710057057664525720736367458124422275915851472709814524373643523183677044723333034821284498767992859322829254015720890595592969471489179683097008970135841350389249458424878078624927798881714019145410505183104721590677750150047255348232503482956641438342935315068930001067195154672787766497035723596791561073361255961067326759945309189133058165710760554689173998513045896327782922013151495913536226840254856624271817190226410941606928710064259406966815293718864768381473538303788547017500934425003304066129262629380236770745812006230172146862373614217308064058044118298934214782999834749213854514230300315784519296682919175410234930296787296161000648228220790349766246785972834693257255378017003597042652408950796297136000481812970687505052594952800370329798066846827232002000814012564653708105836539181561197593621128921355936928638196088082331913465513734591813492616008478033497458019804997553158976164755820970636974241861381276063736935198489030081757365632712408358575877071924838351829048596668511878671277377744479091283468840360369834204339773097268542009627033528823429390753473117783401884361455841684404134063190401143761785922416886868953444987457515064189167783161441734952182683468905842997946675778409710124967762302274885596056139292704860588122076467371706072481014857441748481364104636649515126066682009982410963984333063639482154492489744523016149194389925260548593434107445870317201838003102308614545629255801082622693763191675509457939050150517725252368209790530363290120837952185781662207875438076007224391237281277950081899040701011092922211957569174794196465207381501320871248660062622429919614633321087605848877844298766370711852449718787548228889062123751549108362327985488925502307032513255230898968430387366049075430122142734802229003168933983016557964261368398173948132697293682837835482211771780723948088192289286042186211694419165160947289628015559558039506739118256427623602427962701550876715954800219250663395205199241942300995989804657625795586646982660537133015850085274644842637250388323245092936644645020535898600103801358428758695163791558067485818313597830684804889473880388155379555835830958610067846884345392339482991021403473251565904775109467955542698085299360884493844362106398815760496196581581860654849167868496335094383148116049915219998143228042976028808320942662574534015394475646332465724059764514807347810812077697789351418539351166668594627420410266864737831949816144094075702551196911492098289339488020512978399825265056829738174335749662311754657558469230910269010617479000064522717408741954238010287304370332320596454632483303834286063483310163048029339231695990823664532328804356402138245032688460030496762313995506332466300331899104436572118176666940124323678888228030728401722831145113318774739047848233675580152443240475381582308763739811514873812306707126465971498269035844044349726736027157698780200832970298792596613568823680971680817509110239757707368057590296295323737913410075426847376923782590722848451534816325512208145640506335961363501916673093533721554187686678395069904347538336243006151009296311823965238582791210265553014932123140456344112002566499459038034736222907170474777056632311120954456099403635738695807928206654325681778354497816778152328766693513152350642146884690543881312002243721335363463214021460117730223366896830798033174770159229459704514736869540265588003598784041837798835033204611919003813874284278057060688181686951509514762648198496762369934615909714339562001762105815099832085603503289038700879661811906427624411301157904256684771866626217766022543296492467969506646193807534145198692615026031608035813483472461040044663001298305988652513186392802443448740406528154058826087049717803365263398342885680430916060459649864664577496526316117061141049459316158418492327810946044139563243382255930713511145423283858921730480533321613896679065721435181881286916149465152257902528980813793119194535596083857903532668935604417722392759672562427049638331746648728028311379975942573593390806482138141524047281551256604179033075188312612484993237673500430197728382707462272381358750186516953327482992767929296786183581935555572598567767081038898771484161378628771211004326391078936244696604996148056091776246729394373404826228287495056698191414682562773398211331042580116624394772976334858375984063111867715941867198718668145692415434047684367009840576503526278289045952851504878455691043042464369082540403922700683130725244288777428985557792741600191126941919936566217838843838970021294774335522404258437705721851094612294408954124630481857259274414294321101932566790091352727443456149630684805392527331076344814835152372293758447345873126089594530697691993420208280570777417941478702712456232325652350482149080000575356988580016509154519544990939236567841135722374870184817053770541283499614086738035622576901685286374014402581221883697090680803377207560652119901337069966313626944796623998229495402876736098224914523019810572592606785099537506450081184492456126962219692582270230125923720886219866793858376150053716546591662847175636470555477629987151453378445997007808235594258102248264311724612056590520102108552984163194679384633391239940067878077828345223540038275347212401427595733527625013446411906312104543190817638119581078261462605977971740312893488569836334881000721488962484840953644751723097769953026873425047134971156487744263619379202523431102305131811177027694114862828011079666456217263376251286088982322141970295485340430951689619377949630608741862955660270380939047791316662103090315618232441075982798119975336180246782627295102791962106936255456330400902744960424341127376963540626402068579993795866744454225945248120892512294743145848577350831404849286398911822896278679933732173745977145708900834464699597887957312345149447030121236769222757174389581042378121752315175577766136450863487144084164848709944005558895668882122233298851829165774483455267299849298061904435153548237882578438806492332637436066816997640607577310281675858654004743492034881705298953155797035934099150310847721424046849187624714376214959685882181911357224646365920263951337190117130036229365908536203161323464772857605213921085362656878373424736114789555151880276576205543185673500448617333824178066254244021613204884865085835956965792074230761993658884139733445737881529290308369227981019559440781429951287447139038695324749829209081253215592741906578560405071838680080614246602989907781600326007870232053157789715969034582757331567319747004403384848501233272524141469253596851445462215358648071937791236740582221928943061149696781683920772205663875579030359178751419808265896068164180218344085269390095492541684543059512889021642678040287398631445924244450078894970446477499359432273093481592943240261451034522435496287619797504549463619370988395905160140262402513219072675808470360947709493093039192435738052682445456953163350551386946317965175834635448753110646797290559720021296736720628130373308764865957220233167102637318792113739434105147410401854220197103811915306518999716961148952679374347441780974628615004810173478228433924991000928763246587353431895535681560935417397343190085416503328415624589242029885173579471730582091021769195572260558626550640282738104850061132337516441336068222451619586418987245150234202655139661257239187728355392148607885334866458728733045512762485481122003904051669399369056504924058072713938857295125430010833693432660997214861176303765502077244627273698849078700580740862454174155781993212119081505471520641161698707763682312085469497072233050036260728650102997896053367921088035227408489502651836672544719397349790506341742776980665855976784876748859045459704134976539295132690731670985712611837241681199252085452088776240143329107185254389766397083882795541558917318522674275510417311879178250926601657466497267166551908208492656664811099889828163440732515729856118812123629302788601306922872362494062037734054548980374339429048625655629289444504803097267338727879090639856580788135417110678658330386736026814136200449823284816601209972827046671064970357027759414237451644307195739003570995594582042470911542386855966905331956222347251075583265991930632378729315684272539142183187902242088474316311819607198485803328916889038826547498465305855767896656098187248381928174478167853281511052585338756041061984252597314179595746556471226928054816511708218042440922039197857488372247497716094225680200601531979991826992379423030573124070428760827836091855033624737046138317503643011972267459628149822089958860173324720901339888528992056723175247881928602453886360508735852067259934304564404175457991927981848048766738646352766359549226583346070707938116181911916090214466963716672353100180681595532864244954326029419246278494167208146388460423882113042977347101751898848490645855527743864498693213090936433418245475017088650902321206427703614713463087761686182744887086790188585476533564682519612974787371801420457067379263251225422860572538564417156733011522350029450272475578142961364001026867692076372681256078593931803011101224428102824842500053130244023410291208329393778299327629549994074254049420849545283215864908432207608303663275561210900410209366920054172950956620722805104189846854038581820643748728908814847015831113841922341216160493633049730307570896172563410431505742012084158194384458679147925262617807392942899309738256929989946458469261579257658972409307446603744208495503307956275290519338022142312501456458853913896691565065154651448203433176355576867281616143022148711003018619115978005656118322868973648951413531961796558077808153603596119479252185218936153310159264047552544710727729990029144237466697600927390972138448086476526934228677386412765485349500232452351205464760732819685631439221416655986457096426976983008160026678073622523620546765944765873761767795827327596446047860073400220090609221001598050655227010579093494331597952635675557685836007701233298866156792140485988371769622196399370630042200685218292476716421437819834562086287423192130940476868927642201566503640039396424733338099721997004358186071855594017046814311145365033612397179546449880890972425965585608809147929999683534384361397619646773164202582577504986066886651634879539787030640458073382789945637785555261331092857606531575158530365249502013199114087257328770977862882259621889298733233586695221146545236315883704800148770321411738381501186273508424853397931116344285849605577956732911116323296481209525108268654194029186108317759584457334430673107903049925986398611410645113818576557972284611876284010487093483084875252636120809496975414474005001609975946950268417154577367826293919173360530450193819162394640210003814795643439926706667473321266171337309790613511492957401146878921150573062229307165275520056011679748335010447339085718461354876613245099294659112633754690306664066840715312702111743648757000869916672315373189911685962019219435042648994985471719542608270682606137993469875261189823785280337452985070257806835801632571798059757425391361766820328341222939869786380610278461351234485187960676295453049524605825186891542607530595749436775784608351362278105812619956392946671333394987354988592524616978974395959569085506609051288314528679262913591713223448177904633372412556781024545043082684001678997492298047414624570923757250376990509038386351947713855420941494248294790855481933283398038338589315418012836891358115718833080259326044267165126724613569199905225912112561307365469733611358033578840658300141682718599073257295900628783882996277103092291577060535018735812679225570496331548282398692297421865211927079700299948946106576233514771108003835889416378824036082344873991094719936145187643777414412855311055180604328974026527570525577695850470421074443494380409439208769769594736045131114425848481756631796058471024651040701387614103628798654406758628140013423155505324222160667927483494195559896436394135806438741744547577931854978089051928459760793682531219585246627938936643220078012888576555473211423115836385872901317539073421308471623259932148614745440218203220905556913428760882052812181615823711023421966566734403388294283901128865062086387567556022659837920293878195271479058891133239352632399165517848629202128272769187637917434108062258995664072091918710572862091836359554511119221359119210276621557745493715676111152414287721291512877977789048270983830341939129574952064790850137371921689578801581952743139184320159989639942954527481624648384897920724018126204172072002998442899721838098380217394016084707507834567588217479750940994711947659098301214068819626622103708582115436784490132973137787158865288087785698922900045282322383738174324192301770307523492111665462320832319261071300186001340071006498591875702432391481501617309659189854799124186009421401892530809380528163554184526503371496975309778163917325259012527465995472981625150709225809591152887422678431103244813185426534630808158861116587787763310778178604966162736092295201091506446689725528014135328871816000344310199656431884458197203068882880151392835388225474663516942790753989013565302469592289566623158992023100915809415443539361329140062388616766983266212513833300007484240031801494436833696903307202307994419984613916306761100699699006744400098986353872830429309947177976302169964807165821777165480659068434382829821927508499756415092811313391052948856314086177373617850697621089947708274189734342744533142954169461472229602669858374724785878740918322316105475905096575928365573001244690493513092039242167309785909553034179298750476980693894813586603448345157211052561225369837827226250146394135968832204445860024024307685480601264381544372847335397209722153244992215682508488606676533208057302270595569379741299370348187751063917737819750517639255117509571861238827979919460505253470041923713188374908622557114070175771136848509781439667983521685491366047852205115343362309665143158077316388268547442730223004330322425026544816443834315746823672903705164292949386217584316437892116762929074022648973097137559746581110530437048324303307846073889514107503268179321298862725036556362900411122017015211667788873219621144130188083669135310132478097357029686724174211973573138071492064703422535995354871410547751707682228817847211919354954527146690483984883731644430467936520366825226021333256578190604415952567534361741862641979660982420924750943142124730930421270439017393103487524883581523639183578490251355601991904704548444964698117991479941573476983008333761951008829640519881008360342109584101639274032001172467117229461733871941197532173671681701997352761052457226767345753825893104303144144744108945423245269126000464939835001523734186411089969803688397290566987858633652129889146009261961589555289908053523697351188711779682504974598385453092296051783790247892935012127903287727106435695406782524294809267204708225041816198303867499063198635902924387144217309963153422618929781740493957136660223088323645637180232363559541563033990485658903146689756209711265686191395356772965129497092327745582219183800436575806439646979523026703081979319146577169068222544942640824894378489896765761989849088831950602698740719587406728037868129419976190605001101078331997861692384260860528273682396912649052090233120884777850535583703489140848716715609208851215702616133866786322522808267777194609241898652338600180215246715529092748399861627762667464667283053928442402459604689852887219247957339341654347491968426488831394228696443096748195394466468466424438149840467281425594011835937928765551820376779531430397277370966402740925449734413029473212191557624104337501449492230408800644745972836152879402457498045231833717732925511791040509920189242091012002759033387453442093292942579978650707307285733295039507897915824588707673433594912514733439991434659827234363163037469026593510483243526136437057440407000584285685947487708260329415202550718793893088444025671599344302105242263462328030310116500868045006826675066506446534172596517167738593100265323395020854730229295394992009654777546360768914727475105085361818073287685686695799983333103175885317515746261960693289060408167578514626792075846110794449924064495861149523070648433827345718705434178179032868726146957303674365926576807726292849391575849940530545272072737721102851081936157501748120627584709989037233230042446233947110182264876406243967579809275883771411339214172608140247875770235544445201858652554136170255112827268802538006102110576082823644844521123533433208270895017615597292893526156063471195143509477642797709351532409030937942660750808084753556006294549515390910888561649763296188325325804101491105698432535085737546842195301655884022030239686198360723824091268986123826132803744123690783893127402624458619698748018144403393221674672306224034847273364454673595979799950054972233679677824700270908813486847252806687420120788071919816010211978889127162325720398111470293096396427427906635663334045101569478004738177992205789517917159015857935725529512174461665729877335319789228850591254874128584515985309077267618802386848938877558174775870789192837220215064749179379614424331660099192475757779440724820383734865521252120664484045963718203725032549108019966926112526307729061452938527445421595495124324368379616831725943462679366385265912032814427717678502496212204502926823248739711079085250567949766222789498577991471980985897270783359408802076985275402216935640294688035434967528764097442305167767255071075088863706006155078799410608624769223916414475992073922135914328487881690343002250094656032834416095485509241136989825645523232920570344814975085434108688584898202075826592230110493118368269033313915608286959716763642454496881499744305590373620303044940061827100183079102865274598509549942076800233423940009508616789287535148785484184426271997796824863509462608227097677702004100459885771286932893516597660554170292886228606016690991899454472099174208888816292300181492466664191413872105535282230689294556637481573483794434524555648053924598608756523124003253534076237598938249551443570552743291638776068514257214228806729535295079638217077615199683865534576680230992790942482847888658006946208830339359262307479424181533747938984547551480790878322175115246841952993870048102300105848105511576627519778393534458333431157517000792817191512386885888599081423951047932667425322694488152431146839529135311404672276918282679848881948788858022216827885732929231191473791041339430602548340924164058435853529508670250071605927024862545406521938597035419198599297442004599361471155221307070236427377707893372265717633771305581344614870263728038108620173742297025872157303253652355395888655309325937362183379510816361393667972777091105848292119926810726965729314949270034341846276747549879780185304396925794555775578258085187961127617821778188951873628734800544545855346223333395440972742497187203248710823799609288863558049240021333124048616804117582880073298455983365542460371128284266363594786526380838503983836323926686324074874597105081622966289237525066208600100096814398833195749572934906708145138769222668688444731725062355359385832405094990795146414142037370952668992294112727486196020007427325014077650049015968277160859213259099162669398931465752434312841397054642682829629428028446382335882089170099747097532488886016747561664397610775380452298732988003984996432787583991152881828471616059617650705642644585741399402719178581025701054377967843452570721856848560764151225644435693491392229306063572616246868582700784486422838898211111162425122116084514121015765190561739320851902966822562607992033658011226626862348419780303068708591330335618386066313354817211122998219674587304685974457725038031842870231954709174972730530514159169153992193151153197715354262233967824456013540576495142129038120473817189440248139117237527473268758920727322130305123068873201630607787782068530651818746586075497473960212290220725604600283563277986484499035930610305022580973532873192985761916908411651997790966522139651781232374441701663328701782232812236743695988460616788313343600594550006969857096871824983287410794600647323316723069905146480600257483237333185216494336522195309683506238255425136409823205861981441945575468992384302971093858458476999878805002957221826097980797969887114353734042881976743556128043805112497732993482481297722448089193504481024056472773890639323778085544559396326938453391795407784846101851091231711004537708668014383153873982720318771752633751645250061222592686419597335464258522161366500061439934669049284907623026838932070068602881208993350634250098507492089515877927646931212367269851470550604877470775945261146464485487139223202541766606178995271124272597275500873916842028680029133102599372953497071386187374284009932966099760205488232177885678604883145355445171673728474147829329749173663223885650125678420042315861152546092556824267676608240523114576888456537087935311055319035774609382138432421392213407237522449507545501952471618955760368960922243810987996069483398100487926001420703966197869708788873154367682411531270533331927558966767394050129408449740714922184996888453996412090544447284623278485574591097095172254220301272612448912713566485885783168543130212111274645372023119729935956537516000487961565705199580392030544082705801268854861291383045597602368135878140539047528827872684615346867448605268634536953567378606454033009362466996876700405097532707150043749085900491278046990348384355365438842500174897081450134060750644304175186704591097387873584418646674576539677108641742323174636356545281330981551841068099114548375522233639358255738937663428666486223771459100412117268393974794997932330845634871051037313200401938871497997092796893764806341482033609279158833597202416021458209711101435867411275889080211381116971515695091417851268195246711889092957348569597003680912480008562650722699394940683825888891498553806194663889689951894266272893889145077129288287600766211698667743557938858686770275036970649304750511928665780001690724904112931372541497181487991572238512549823256392461054747710987958703440091450831657840583920216911171403291583339922893731640029179501840548589977648866681950898621102842625406790767346045590132546780385227964914984492155323053820340759966789153862420993844400353885664255353497725719686463447255849242474653880681411463015744555808265291594543641095037899444507630862847733907446785777599892317097187391069574220361945260241062573143174780453106973243997076159234815737108653240916067182091884088155532062038496136263097414531356348902368968030304622443528929033010572559510410135963768344541288967968769997521750492519377784861895847964914465980989619310628714099313045342893221886554397822737564700939063457975463574878755051209210554149723968693948867702162341008662172315149080759605547400981188721637915122550216433672147387143398834255505227492338257723405991308224718783397430184211072937340249760527725380199092132153915298988240807202921009252845417470326676808677867186372132277053500222812036733296456915847786119819366465832406334549319702876523876661380649248075935314005311994747153210338587586936680622707485780239922481159073951490360347972708879739011242179408045820762099552801514775671412062321650757530722856322987171964894748319538043888553762861927952273592101366151204479519887496147741427005032078613680330572794494339553814362797192717217490629511927793877601427797585029041868614755364528406756834222027948353706904926904087636459432081913591089121621321166701681305025477263487552380312852139047528210624425906793641300663164006153025699913826656097965709886212295992180136307572466900740628687949832790906340051321379364484280840230578117383897307335611011066203030926367754318415047092012110235721083512535065130677595400580059619564659855757803002773419387351972729485188397400874275841505634604836824556008425843910144028787656530122610845877985923464532049887931959332090768410549363609318556386967810256468012325546992263120655332314064697836274263458574385378761745846438938168674249695096558184652902602291554084880159964201739678353827442138326380882651615098740516011686988023608176182703029681497469275933458018519854377833297411867632173445772318217137166677085853108534175645951861583677872028889218045543771705207585233076287234153932521878607849720088057831184363907972931927571600326059899237152709490116115542858868382775452234000418666564768419780027535557597538907603615887912826858770516012125855788635729028608652685673080441148867571231192798252856170977119339718502764750475794501548645050383286494720202742633006134883042934723988994737800256168177025497437368365449547162508183111281826103525217393017109090534413348693989671485179253289723694687392636165455953748811723288171851277949633490466790728936024248661024956263521172569791132905193007290332171916219719002955341120667060242483651721313431404320505280363442502613790082283485540676168173554404264487472629005714267163373631870081473173952629773780975322220216736556612325579508567242202614938857879205488508562224471016430847593201381884899398857724627882095230451386430114975485124699749941679707560834283399534502983793794285740586115665435952539096625190247972392791642531529935239267831870110218687301121580731993235156744603456856252179395161843400056405377136148433386269248286128544574336023041474552757773316606227332164922982635689286687600300167456904299215490412806525286300206102583567781102076087489333408609395789490611142245955301865267837810356252652264604102395469533710270040475904250929436776774189126626646248439469734676427174715362762642492596746580477782746553245667992055487252261005729901793945554045562682204352794463480497975481893207463813248987177659527341432256107085233687926447157226169178355965372785710861457831160131187482060358603139729759246408781530577308337165627797370897088554247508552605615825040622566556665005963553518083576637141278938488357541749405307308349762001370622799729604474943167337761822004394605022372702976602352378717232859502306382352504964470488269354362155484258202274169449674161557298466481987095524741851290861689065932532953027853840186925150459434240863400766760495899454200459720482904135556385666840744116970728989966799692190517451334864842456205786875596504536134995392448328208546978767886940435666798354448088657126149714486496082346650158742451139586236718572131671006866683967574196386343231343125371179238667008377628137026008428082504773428606151997483675599416825505049464447898013148372234491551990170500830219924527365547220142697372499691104978653564245854875566069130059596440126753405846678548443096343267439008934305661645644887648080420180546741449867857234481566575352495130433498523232657090760214546650773332736837201470654685508323783890124869143703182735983011028164618436201971823768681992143466233411993782463028152415122346046072891683064679256855499645527956026194493036094858415194658191270191784870265129245301175741136555255305693645995276096876507674146567189311079717354605710518520181291212300953536538794037057880370291162092812348815898566564246803946701613227202464350828233287065605213830672180852714535186109523852682198536546833618278247369538813759750269024679019833916648596174342222098472421899306774092407646155344851372392921202097166189640727089569117800325282744874585132338799810491443043657910631454351393514524042697711942184231538333279186802582900087240644815064354744399672246856254028186496714440057541618799547207916079359830644724473905098762524138899298863334050745122392488399123722117248641183211694894479243852649639054160975447676077166502333476277974645565793352425265250994091831463251573824850718948141290862066786758666061274273563175072192526077163428678446476981155410578294156592032785291154937665938133599468607095444396185309498547175328433580714618894240869126788827280795547207631420931897052966212149228191077615705573806359323672169463912771242022556592918933725930520173664045323495271771937439514153377494684717580226207038857880883169929047956094827687888402526917736280769959224955514016894946606009185152045454557707773506622059778720035189771869784814725189483063382296614158600502126981928114238801249486830602351891007242601856231397182909559799323043754414616221698731037439571679458854342549790789345015191283050325084675548755142200845693821107327381491308082022320600022127630936257325541785648573703982152483152888653988343674705036712092180674838961063758929385107891025643016980555655270380217152624982255653464312505604398274264157667025922013229196876667600547495246478560345759103643862949733793447825056433892587093709109734683078583052426868798902453935155172574292160158031234702027865996485979521992381549995503546971135312432566393935932827741859857706697440165110145389554844330202375918657891366900969024402729297853150103375052550280369947912940912119157393962761155907417837665794535317036176056925992762184734820010997141662402177059587000714272234177404466630511506137583773946098572726241698885752198385276828175955504742134959309811526614779373571504656929299217572520511022942703617937474216573663073337067406285042629566218183733099778085112044997333655531525908986341924161313495701658790180745883788841348255794845906706943761398301647706212680213579334179366006986597261155272808430669007278224597445314979966654615703276279212542378496117529230694981497325233236097392628402915349878258509266484951105363754304669839190472747793753336829198107884255569086707429759353115036753957760542821765602299412773817600257385504917673185427879764264441294136143203664170774599749370964012658357485798481178292079221169724709668924676185333738035204440237458318899623382653927906126244897578049384281188659869604192328814300848835951054189496547557992691979506840143833765964155066826567756101695071055049861568313000134563896626929701240586783413531159773077830353860375513278455568825343648033586796206863759591014546256546667000302155797143824807017305704161575935510816951466432905784256086551115298993079505455416981307415775419142460800868750331307256919106848589240343502066526567718215751912054988989666657780577368484352369702496554994530514697994068916762729659818327914340932590672399532196250021366401914634207455316775592204432626699490095576600565036765089965948750793697420539540225320275578728583021695971130903618042053853919460934831675987744206514560288259038783337188523399356569831493337739595839926018870003450196849747095827042083335555052103886018600144319126636599537440697630921503600685273318393122864060714998397073433997119770514763524348543904867196560615133363282942392008124588709077272567882252521894470631823637013628445283009040214463414073692891179621566463684006597453515572551338969564945680201148959850058884210387818405347410038900880722616710704659186721992260431000652274191252639323352211498091363475384713713616051412662029105600685571388978632956928901066166225685413549697409080559298716617339901783078017350945416436792286251329118985290557439874764019888767423289433230676288052717662292419556896349480251944738045624763016444077994348730110970618536335784868079886715125035351602368713129523138142416163410592739678984892288814396248957311764188486174313258095352766488391191454717164728956904367201151720333037437351677042296629672398974336655677453622484875411965496516358433905068539670452245539268126729617704220647344244286541530141878128829490820823955763152249620928745148688967140009636453467190911414240103850930389820386508673653223337128867541907607839593256029900722212008217310117235389866904292684342077228677468665357128220865515668082375842675996835354379825762193364220203742757627397410618812288383533691968286921561264464957242941719493083408776983631055846353066479598253327880081894507560161784307503910859867158828717147113226311821877006916791412371056812345994998695524152406382799473833542583358476446231544131349318545665410023874199073673981248339012118023476415043441964374613872038157559682991625048732054378774256950972457991884101081881115292055763937897018799177658474508592561398452486486671467423983035411615322931755067893795587298064991049187208113840916305723134132854878568091594829364789044959039257986490384056872122237864793254258787742038998446813955741804756030569702809819801909287885573104888151820767352481627931135939925313991454451491953441133481775053460149588857360949518870992531270280992870317704642397466764743480043076799086335682165524958898256923423211238974228733980100396482921457392213675170541614511980721979264914859961649722590139419741804459888298206250794704650673363153718195125096033546083655017052094079434303515265089828854398074921011618846652314421589365398334320833705463530290622763995984686383996019214678282377983905695120869205018684637112814297213769035297207934788171513528111647460247834123157400198026884310452277812747317634719959954161270973723382194492085193380501317799428667466537408155449617226151740515146280972772867960818194006694568871586672787062573425279654647151349258805779495123206217643967321782314538253514096821708804740761295302153847460705787928808613783341098016851283065395473378113804573931545483633639901771517711022029767173345602500342256623847519235857791010731991283150216585483695850664421955791052054897501389652624969144250514452730888465315819983261292650321444835314101626579946698439857427423060064055619930910604653693179144033675859120118239854659183842277774708395762068399537617089738293457567259932202193936679627107536374029125871594085030820083449339534346578823191303328034628249591043115554256878479847397694044629203457559736014203010238065078390041298391183881576142536241812146506790305596571353186632130472009622343011651075028669919398734736568891403285906496282190665626800588357982751204097541634169035279833490726556454149148995984573394121776278126691458903985792865041047175387034662759355772770311071586951119425161928672808905516223906238008586863751862495968816260865027534117967455064316258656124000924304928567713444199724304497783379714331086910123233209504566561396921392912126804886083282472209950975912888204287701051972256342939454320520988018638683472031462952690679752487462019752698072870330447608371710682545888073441399777413069253210912355750803974695852363561322757998841189309686267860164902217764277115442709583339759761312645233339311653676186505793601875871532354231097345791175709989088514941140780714013000941105152801164878140196719081451422402935696703639224530080122235352272883962346144226286535685084802743297380912517107895422276757191763912080841764779003103221280769291967407728386776474598846380291097410705412873013672122946436156869581935096722533615918604309686789963955945256170181431115541654719154584826211713273933670836362687368807505153868571409758495621650945799417830337563037580592201842863448874393698974977669956130288411647257031942209972662830946715720129974274459851280975843671788407509956565184155165595934918932643408837274073324606637202797793341974460482838853759268132466880674612228054565089041984063606364886383342498105833059731105162254029850377119692010349596924056168809451385796512191136129779659773044551036846901230031955303430221134487005080285862965388335196027214998114711771245170496199834072207207454893475223174904325142914624005803674885391790537023010454545083860892024067195895256371740545501269315070917007698431200987897076934160472470191661345796000367564513011265654957387182588816567562061925248470150682331904772714939527078433354556594634968650578531336251828270638747856970206563911951558228288650867671059506189423080286780921408893132825700826464766640674307575256665090157088969327413174384411722669093422488940119115415244684099448202843693973625711735821676503096967729437131356359230232023703034769448869625364337075402348668747494630054639417070639163887112962901711485959356732299559013762817445108097986981688227512004521275783090318560085104324347490916808066257001967056225271962155123521318211183860354628698651986950651057300252983027845305476764600393931842454550187536291372940789812229736654621485874923192420870222915205989964660307423353608314237227768768418899248034612381895541942956588883311204636341676616811296950262881826644079366474527005007235597702818862491822830516507751968647753000471277160774452089572183864460820223494581231827290875612175097812185793178266754018687965891763908657785064926445542965896128795419430258529803932771652686516636315067855178222603265323508490541819783350654507094187876947292146646791174492877684574493549867915065360973884560534454382816613918332697631153424084727418198503284205712267820388205992938306311110190235661550219904874455823332708430833772997766132037736750680720464637796425976021352087838353752523631556505608214047863916796100765379863681998809933465385959323553904937870117991911456260577577995233023888808205175631527447935617131778336162146665220573524687020601067494770230580521616091786755551385916472355883253911757778472049826078610205851263239541586084643188250386221295632460519510056476794376325901067718989264221995400679778076828905154322679066650272204739859853399298309102637650841369967150273462589205615742274614232993511038796385360776651238053540640893263817974402949032670452089966034899363235433609102733679371877601738023412251342958339734556914863413236197289315637298693302578550883144046892160300998865618630343288556390290313731523720516793583154544007495587417170516447786634787031614643898852496273889013605806573680258553142046314106330795936717888945869571161046213566928364242491366101586963962292371137209984829784841727274267446780002454227881980866455661847964607593593320219853784422677170767759102493092523765683988671734301604113412076007260993963224993759482389250368589144794141446829582372830250060604291905311277588421173781030517979655241576145262283106388419054812927725107580782128944673816658498426460335867774245236197267360428832400064239316084331264737802180975182223533969074459365600551591770512343481873295317471510894138239422724684732554162944093238026699195943396461314461371882576985203832165433197534557814948616532348773465502935017282065490161361971736657271990011795363103677056676071763743775302084576870950954427732526354832416017738051244762732221046643162821973916352254298981733603279730033258047457679347017645361423368970073104476314456193113515188130282354469415734015046361011673129626788254567424756344399550744607578637537102756106306512408293492324196371090200847933207075476571124330998234131212987132359452676761461692123168988948628622474920544238006264293170681835856846243043274220707161288826054981522027936612846148654751061078007981457796906522703237248784949438847774470472483766116875887203225596898655266729775562403978167834531594430788087738955438283121417208651987702276225494822741740616615408446138735322834516507699544688436367782389493595671981695300904180913492502188520059779782841015615607887672878521145355088029675710244919208612528159542257331295186711080101629739764409532680970528197760136406044162387077745033390744897486259514267118713835193619978242010926228044355017259139600322609001505886498845261681064614801989221015433614095463311582450330817970586183790302444776597540658283457986113707642677470272328749928606968105015157474514279382253290080952294788559918420658380818294793239572311756065684609545312345409455408414104226383211506842271623568103015766072799376425937592404438398729107797048056661467221153740587983939091138141204687582607124442995887558617298468014827267214169731652974065543941474272896666110562504742129498124163885667208494590159727141289117296801240381183902579904794301875656385692399282692882054672073081195147260784059617017165729522707762656184429504925866661738514603094279207423363481632349100322055313006008666670735391386203959890626442599899861397059967417947554460020674454406771933588068671928898034807062505321459673511395579801296438343797144026540907163809382486684188839970101565175240000595345345674497690830207082538434870180540230339894431401589931346504743608463707474772055012089062407127122616823863081659991664963816975370392805971058112158494500319435596227259871037132313543456136196038780322199664473067162068283503088980999742115176616605577914710284626532101898381614698947687450649315178288241677016859372113307618084794837532086010302463488639308127146953057900085020601855024935372336239241809622303686298187756176832456663714432743205919087994967230148425866383674116999196728622298549543293199611744925025669953551366472906277924674125716015915716549508289720226955819645948598153252773531920633521832730426328824413283309631423097146742119699056685857974202242998939630978118619567849729578004850799690396326901355066813332762785299844544911744006262136876064713364348648746020078319623435367154871875654112095332360857827595657779050662302675070610347102798599431647517734615443513712687962742018187454417865727037465536749233200524595854293460503002113923682220728298326470965924513283096625264702624549118100786278762000342484157676252363427460664549133151941888872339345907815591044008515662928179389490693315892522955189130876175082828102693883993583908089732671767176633039423014142365247652976697272453748052565480762871474912298256515528668585961554394382578946836177944894376353537072377375262587184756087536577917438404160433005053735534637404143714257633943217955307077175226339055340818125204438703508911082224032683875870467169834168080564201685936801589764622826528281510641844238904466305297753249081686044555304574612812303521736257259872510797223338885282964065898109711892925068689980367992909865065296236759730471578765879552399622994424177196881520101143540803467486773986992892956557128520544319012571243739310747067227962878604749285172420863418662136504768093356387571247155518009674985487828490546572433328405673964755336052354608568158133957065822143414090425366827114815432053102361444635254928334165387775624110078604037658355109042548852376374103983447196825411306867041199225754749590805796770781211972174451798300521906579795575837306502482418503180076595379916511332549873624822706571421500626411519143502407854979406995088878007958050776516759045216464944121029694716820217190334413874464535622669261333182822555281538176353634045968150306730541123246506640596779024084556345484405255526551588341082769958966254312004027921395805557591529592893428405493773065607798797758609558224371397905963122917512928292207198431046060094104472764239754084458740140595992223399648194653300665113812703156231714790214893827528052815914070977645663267117662976404014753308187772562121011665702878586661316362453434919258580512919573155009750630208549025274766703257987948953965663734351121243335866136748170077108432814324341168135075513230536900504663804276987158109265844512461179284371660358262297547218795639270758584294356481425305974947420516383774892033482314091541173673075565295073692107120267961661033373525554582993805389201004741011435396363475229382115899517320864359241325276139965228788953670222635381115399221930980646560247167892673908287197301590841148269741822955241726414586353117117388029591099608241538521134345342275228387978919090376683584641360306759533120412427144849041808314300484703574178634144700684726596543473953584843916687854007933933593722619569189672411765618217833428979823067431827884270440241066897570903716644190870986111408129975731884012717370661123767147458345534918151111477635018878734556124835601673247524845340744438616024143295509065148667938107666409964773633112724727930634805353356281994195389643220229561369474659957349495381783941968223604699165745215019594856761402225768904836866884662710292489632483547372425454297433542192063726565132975098739046472394164570349538446634888894100505552318905810307076288074178206059528731344230297408090237243452107227150501493523092760494627211158629260884872760030536559768390986688569977118637514027554996818569750959092302943166389821894522029048872640669397855603882684739816504798817873325428120985218642967379503154200199181052516853137412816868247830004922369883364517693111535672026419149630894579930620320741887718939339909027550214550254424709240768485574833743937369914874214053974668115686595223503628034863149730901151260460616427475854130793456814259437437673061886533948171925068103245730891256555108542881963103895577477063934497387928035846868256686470952712106178506602235643294912201686252887624662716055296740954954182336261642631643526074560055048811378088623753037476274542255775510581080335606214168437956633852896896630748780739756159008150915554049088305735931832716733569647094019405350477600613727161118496054545154390731992685103782350671781009122996647992872840618426248100895771638999977524965379292129367482812095876431919781940165481507831659392145094173007804878826980895735718481035611372160807712064823964881951739109111651074864658485238594217256036897677594245383707895363885796356621944737089618291695244481430556254573708432243170555366967555972970753254813395317761105041554701588036208363114648030352827277084850185351584613512613850626344846344823109644067802263992196716537611005052790988106879310138552496597897946511431063309776172691708471636534843634846239099483557807125203533321119883695430740954498145357624822245299205150554231398251860565750833795317793582058308104516126432425016874050999929685693715704534679673086658928127094957121243145628530370508809560762569736848053917558078816188896211530205987168929677747504731509193153339318392297672272793193755215701433251101669432392186142854542141424851588549402238560346864609476373431064551147550688706166607268908764789989262340416785454317868648238338677344622936915471384795405919702084389580124808339839239826382930033717671762788769988442054527928545662687096275193255021690501629220751864080371540519204600381321823862535591935230514358974085679647032360935102753751551415159128972664205614983217492364668377040299129172596890922834355682635636011415574794803443797649998960440834639192160512978455825335294146374585549627761322775272006285298450170457858613693836148138778066647769188780905523126099518366363843195132766037617841541628209158158253873122627156678601815088937542790221609983814192296075957245394641126805948873270471450440677682479247764266762562710290643152931490195686452923317519291830255761379647054013099642675607662492443331631280163099990996330876125904012132183100727962893601666273983643726386170753614612446521872374257225951998604631232791289962075432045502551671743937353245965280567971104524714496657864621096339048084957240258069721812535697098464110774246862782763922382714030153316158771535131784136923441463355390312522442253089534164502035512529482646602384606452100089716988511459199457935156265958763289653342123024560322698364557457085583936600638942903993834899807150418475367474249760482707198120258862803622600758023165519507447844461256063895574744624362527750913391684111268398913582644292863757862993575404253209604576954957115288904492874419081692281105559841063872257731213877603460416499141803546914218481799588423037032394584414447491360943606550352352618140629697757203059889303603474233756107538590933296801014226584978943564470940026710103268107898664434541823045738724771613243339414707544123979999533094096328204147464878818924967509432500232532065715572406154369009935279407390158358215747282190703891343817766637516340409594501995251958313268275379783853169035470565038994839817036645314889216024345392482162033462130473478426189064607783896238431621235111796414906517639260814833263620400658189490866444588429367970704695508869674160452477860891802165034047179632488698436302771350292373979265767778760895741034373234467288063281633131060473971103312321100591988187491203584702015267634660378001825603598414287449594589626822514353096670059715653142794322567969299048182063552764867103167554853324963326448084000490075713510252266647870429678880784755536612386692180047316386847666660101265337587947627029941768384038165722565806087299819449868724016633710591058689900316091752195966923131601146508489298451064737492495419165886796834810320774399970122267387660295449639838789403656730523878765380694759968320270917072246247734896223284784173055447862440461333328297261222550905707548888742088861324564800781140757598634867197550504138658421118837974124857247746547804545411413545401653778501557288585588920938828773700309881109028060567104996960246077533730006911841658013362893966134671750400715416508049981126665749286708659902590041957222342859903137693498836465863225027816523597018549839961058811312395564741689042316439794183906678885439650587724900107893482605500506513867201732799465040757033960410103581101636094418193445193851900461846564156816890175804888367641138750263933253990373225464699750199542727233531702974355915900345742347316111100575772820842430634940472621787757220931192315245660580677283299857060717566005325577067918171302555067612913716505729534426775727816874226437644122345951663459687728284847339077547013682966251996996373671750361182666383061680049791041725611871113472424248129524136016519894747004671415232964834057481792433691778630844852049151295416089851044183709305096219626673999081026174026813197747703993981778984772641147388673152748422336799385398407992333304366233851711922923055426927391558875352489571308529283943941167185314226754892507325669491111599881665403049724851387953080303056182028887633774125108078415765328772050056278210512237327367532521767965764510466801669027690252523998060202397689569731501457851949791083382396249506913011726782217358911978608083991611417806128365218740090343272296907211088201921608402519556551083714643097844535066421830703523524078708850179952355704276026758220287609575477731641552500800588788400854905365606437293974715757044634960322633693453456924607253057184496042002467132907383171575139997799115872200450938364048968626024626156909696079854105208727595450581874933694413872599088944579485331647750300394143935517755994503284976521861779681911893952687707643032674280299203017063861404102850812233881460545705007186443894797431778467633468961777832317058359863306291753974505953502054132080818727580266518919878501534682645124219175191748281712669393190882006233529714102739719457467520236271141648008455599249836351042004468914363456940361689031232920962411635079678923800647554655946149205272055645428498521605842416221260104093337983864729469496752908832054150403358909300540198116237192609872662149807407795389967519052837750107281542088527792572643233838331471962834223059257314524424709740180485420165695757302492757337813957781710928885272191128007307192954065561209965162230499974699071038123642824402564579568661885961752850013652097976513072298545982898646905450601772912005371388912697553537394349996613391725076749243221364644979881412211708221890796169311741275308895369103902342258639393227088051061778014961356364890032926445048056857621374016944914346847544306011877332123793926223098968818727467159521971332124423549775659000494217249676756199095656575508802808432875128567360259989393540880885388911854609995125755337630771664851557031510552222021878718028679663555566692919698510250610597114981459604057488082485214026920904978327954884655698517290352708407953830249956174720638808228934030781431224256384561727442459318740609307458571199949015814971898579286994292530238830117573120755142290781987264548746197639980422000605439326424638038764392905776023484930458677703601856374531099242372011211386925609522615503133782921939315373924565294264703164534101539452987265086879215581065926479281605055154244337556320233087807971958032845706966857129006891356695455200780506072286600511911014400043029278377960870159810134681185474455955998389215409021693894797299296266656240324394156023395860807658613967377539239533255856332852576705862278301634663439174084797826479248262614170631063357223089113035372226440038984765629153046181870693021080037444371074492163850721666967028692135769615952795032130904134087785857596307973310564107631341391561990450916970866814492800518895650988730459078702646353023605496467323695622847008365605091788789420712000029449961072237251692936339132792939444573027155303533873715129300727050563833903671736350874764299782695918701412550575186875335118183610812882767864566489471183613881657231796128279968433477853677467181997441120963011678756366810047856225809383143366810886571698886583881100631267009797043087304999539205636218197991178082317305494021537315177590613583905883361921535006576673517709385877016821565417894249233724727176868340875267172683820251373356788089533278240555049462329513113142403942920077011107027896171356528838682518774535206645153742106979365501537329112871411614179628302826434144602314944382613782466862104935083295732484798064070189180861653664127433632809004235413689982254296704950594243786657401293448875449803007917287462031716020680250797869240802616844699257589749463482745893967555475357049540359738051761198780994757846712127885175366594564696165674303327376853593920692899916234440370812965199148075436164121954037981584294394799796926522901630773245949230331224602122752084549044188228331192079160830212145092115211276367823276409861135481111019089137696208396481551796738910345764185019212540002794436663142521799102270275922791633104802719474580480907414026854049924580657274378959410643385191346410857559632149117996203062618058440228654988343937538102583873279913175306064412468984117486159829731180556998927727476796782431770483882069290354416695111731062493173194493500566779016103239097494755468570801963182288948141456173271032093786833855462425944084245230026829719014891243588196993087926607965297678361349711918504969094304368784914903663548541497030802086521597078197189025256850952908939904184643892255662229998866995742900513032939000726018203826920931662439701733360574256087170573322901414274085911332563602890470556034543440632221514758225158386117404561563141072477057380545687343588041823693230178400423371073633342049965872798916940688216005231301566550171291195749487762064208434632431794932805466673940232551381798080945751586275635461936397020330735876666174251457145784749728316482699493270550844639182214080335251062657509814200311924898449287661000738871871049960197687691221327661860811260626963134481955295146888973338852426319009309695940324758280740164398712028955470588984776297858101213729401600486595536857750034067131134680931165260601298231204976179910252931420053682293160768792537581228984829126457771168371070882472185238707369290625541385687920883372082028395915703337256639259000622171918403842190219240081327979719970735647318563167573003165893498411530822596302808961817646887035216536921274700687621900906150657552509913108111503295415063852388174383698939713774766422098066076744777134328005504593132731535420888022119476778475147943961413981228069669770585763537061572290389393239169069270187142858374077973017102186177594259080730476081886968115383070794134671666951212231216652531794816342413060507740272562780074718653716949398547625302432873512896500223593333346325899891741523465977661501449175042664068127693082706998385977959171784430317018219078937850584041945817556765634172859486838609098349513033403231903207398700268393336863605388226294613779601562111829993162440266344724506429891054693617948188628422685590558481886198948075840108111011426487738075961444395848541220606954765409608620753703121381853897390026267613453948458902302480546944973899160257058720729883709317178897906432502465303420017473024625763783371717277956170633284763150327687109994420738170644781597793099717549658931785615467517072529371759190034341753408207000171973175029420248259655919043317826724665473511722928642880381688715507087466012769681615868804836012634631050711040567553872939031615568259250252519418671060354865960227957413318164632305065975289052924476028856617629213218624256025865951013110468981841094138042377821767719906717805753394396875665757105667877851129988819249778780721714314041590469719302351560685503581997186738338250020402472207878524513302680224993955278392546482236698123775697934396966423265596122683680057261147397881370350153012967826119827958380243201265396977848770077797099680478386511642470254090419720017110334744483090283069948028380865403063662026444678764245947273745372188765266481554583302160409659378146514192481792375946292946792585348775975340823647379361808058180482645728882300770601050001038954734697621400785544084433388411994787748841455772387609133082569156542039832937252718433895196052565358960399004966504650371055621986008318572831621348996398013927837694717252329361350429653589250497699645711078804679984734556962392684783628112931558369140844439243004971252400824843126038260575609330910949013648211510652986363239452079931253405235903795278574826441644855394340512071768284238685427286268711172569197973093084718636303741254996471722855421896708137472553483773060159891916774169482075578361726607767361785307825531735927549615266154386303229407451976599610693477013222436593946075395910656738628512167564741182600258633859806668786916337169931063170053899455925892672743345817967057761551419670972583065670844468362404660294500479677591468796359014225328281581020791314798704983965860432359263849336729251694487244138937200225210096738795239415362847093352319786852635504630018212530006184795150065082128006333674836894089180433728707417980858969788968436848907251761983482151284619173530711038810047223091623810424619634901858221100189584086288086989022133582795904224835390276906956471031411491223105491107804946096951091570243931089785397286282026847789287968691001283695641409391430328635238855070551004779548635819256649296547284487073521803470853206703318454468170015584054167180371771471375613989481994618109403760922780217528790090926972544793193199086837447462672530212296750604179187413662674831752649784448278875903604462953306797630988032302543832546210762665463375540777126049319911889564949869483730620011344686071865472713341957629219414354083321055190343903886676282289132242565616172233498158136576129306308892888885636397381474912202282181505932422054262643142128327798208668590769438850075749385230884741233421432852513761534606392012930880854834582642255881501012142425575808156131769080592423222097951536065116458366440104087322733693589774475866943072880715999742857940270980214287421585767409329053992078958662430257425743044654737299225311994326836335757651029266406132205922913080810791460504537477943917809646356524791651005947671540177982185830646359084359888950926808900089680825989021003083216128854249232504460662685563353499017698546234868444054179424654395753098430727467104768004366224736934167588452329319907951173298114698057867447360090049176270979714586413125781813412494472510131052099183368914068009348077050781384603969177625574830765306561258339748352633207338976734072573700299771951902210264327966796187619148698050329199884212799236900653767019394866521973255978300690471963374910596897618662114107768244423731114807230471111324290702105741096531014682621400391655106931204417873025193024537706216561625728035422419687916507171010580234226370775846029297576478588537640395534593623695018231450220449334952792433433528625513592878985561940244845785208347616954890607310821710224686618266174540042104270800795977429805815025999803221189371862688275742728717598662304445705841630923216280079644470086578889305386003775723710061677764598733461735958135307662160965631546597569911658544466759159663638720584624522268296358974163262498245134241902429850886974221662647600964631837962437479540322496059749939165002085805424227705828066631279998818481714269498324346986510933514978490181194060079206267293217996953257393031668071553117395001021623587186924783115863723357749707925980753994871196196778153932355979566897650284919211122995533143758126795183913343492749163165036431560795438172820357862244159312502017008869820331711436476671432379474102123313077410605578823424783137492295099203925467321112772315046843418264633059565832799181722098740802889335258308667518578233606648327579244414638273826847651931233037369228373114496230916399133371445606755082471053934290474217632605101546298302598796128802058669367360294653903303806372143082961491601551650733602722109017560976197432443087702288747617835584541851154894879960297871224337454657540266437685536349211912358122449793239512667883953633747194010960878166593813066258005800419095617613968522453001383241364424756112574346658695615307472836503118252431679092664674028184919892022678686681161674594936950610972421350763785996861669431574888709744557165956832166064140789401036763943100209776503861709443049758535536321596738983113016642326592968746704901254140494250240001723362379030293714499024923456338812498742084253955372282341028534523129839224706908870764705365760241942422873544885874081293291628817403254436193757707810677977948749758177902815641492557171250511657462227121498946686020734692347714265274458414678255905086811452594437422746917751792953948077383425812536821779682308394982446155461215706724220171849690665368537872287243536060968818238840232130823425128841508655168840734634326743429000880528759189072726787533936114972807656245459241587383485302712841002530969732063881902462931589463998853350635093416453522327645171547570156567209873766958014250249247797769963009516409828988510881551113715663169430210335343744621933751443549679991242349824840604682740704435865013167976295101494763840116660692695443179512469055805998674663074281412215924963368841109473101918649427416816029284180253454513607029666804239791480640970174920595209766420466469484552131725777698439706045383029298645200742887249779096846660570067505423084280020933333075213673800415181515178400487640613253812051704500664843886922952804595512937395632307697963385364949856696334495600665367439278450341003125034165525913688907817061972732306850349817164165913457147664173269614670163500121618343360560783886093556482029358795502956195837251304828403106783607143122888343945148457586067485514811660846286584998935858850288989681003961292264823081480762810220682999480732721773815166475522609459394403353864875974943333865633162299747948029080680890594350634213464700764245932033908338773610607143518005017095160265593952807470899106460782212960343965801497326772823678953841975867477330815599932450276052739653528949017050563947544389615845685100326818490075796721937114039568890903358452503964426059626630541273610199090468212942014663599805706234958141727541503909612008565155068458005708037074395872840948479545911274585393299976753286943477750024747950795693372156153098343583884977656240379086744764251340889257247055282072670721848897119567671820805534348563412095604173905744181528296993630874896067864381440477535667173567806437238072635709229136630394201501323007516048646280990966465280925499571071102611331607976790878765330355795496533559593508451699623713488365632424379008655559920915455345002526663935071761887963965125063862448429017720231826121899512481746316873362985959777128757527085328481449921195686073092086909778858076461694230738572555089895431550477053977740967687853507796595331278979323148186585853242105007918384973989954231696925006977935407882081541791012521322624130555020751605454093480322242095940010361779595268059075582170624493724960327422142335853452977016092045352189312002654690498473520966578443888693527284349566379735617874037878895278923457283286821993796431677468606348392067653893093582326273787801723490495407654290487748325405145373977028467608607648834196541952405467148663373749338276724741324698265858751387802438316104878640386639595268063818756427754373947804798103325931802769880823346409108198709248441141046334191828090464760544803216461462663041207670584871128952884853065066703113351385332418065646616353174713036888406269970236477163530633998868369112205159177390395578598014603271260992530636545413729050182775510347256921251011804380973839585703682629800055840957973235544962452368057017621138638696234589332785574263191678205495604067253719066224203310932617966949624221828545751094806716351355744398248509884544943822598710258718380951161730456674017894191824410307673383206911843196594681520587218226901814007336037965721939936765697379197536049249631924396934163218878139640683103209897072968764117930810860610444479333876883539753548059567167614332839216618788498773031676936449552530546337514182132858149500809442004758334944143073415204512196292206327374785968709735641164173069811740815239879103294544252507313499513266105935035250182376183522306115875881458831136545368331838401494981254543128446057900957944079962453075667995748793551826515331306835925471706296406664814777747235458866147680452148055298655023309515475860840947283637903718446262801480995330588664697272517738283484510016639693378110450652511961100889254560503799199830608796158783807114911719832366735460226747631161475729297934885642056662668971638029535034235408807549127695442864593154297141236645224459419961249220031527895745465706686815106580627577642634670810351609356596104652810309509158830518418323083945967044236926743444636561894423831866295791570686170767479642483294559465002180392827739817191491820131245998909741962790937571426947897383477460116720582676320716848007912577328540025859072908896444692464386297383100351924172574886741745718296890572174879308190251233018845861359197673711714073064679653333031047787678184930942961593183139924424792794938825493930672920387581721511287023058385520596783510939053907413178065141968827866078528755880923176625298281448316583991791825849200903005901215097101614249367537646494348977439579242547353451951366195914810380230559434369667040358596597992562187045852245487315690898039267936561806042975756224289833447442658212980865784999280513450826120882808042011939116373614188314483475523366557508531884328286211036838464056109070240500651941867877986509235600066122794063244279617976946961709527760578757386659051430872899681879568358849981977774803214414656812317521829474350504008732846138878664206606552061071526794863135014518245415536139926812708137384093671650602895212838926704684203448883394654675967673673189313141589706551872617379284817153865373126641886315977074645457012879567731240237942968911606923306358919602604433201224141477791403665179231010560888499067946508394419837663378366146696442105606486100511191698906603473065172706814446251268117821893894726715588843790572063974387332153674303854261819943863760155384966166052074736823622998796450699216830484885495808820030487628266864196449245092858109656310900021943666345849416972295739080843120742789329290922136019903156889866529947363195230612620010266148619184555964772156132735521686015418175174059763028136733959414661820104461558089124915786964493053772410494955005026535809008492164970739529972516473392921710864315933400002642169212469986785481639760526671843862425127938240561383619441170560178247048895841490260330111157946477565266238907150199996077650663272777754239839935965276506899694758729446848144946842198815354717733422110214296856565220557230249859975131586532922937923877792822335841737848512599114613817999399740789959016067479326618231089383761629579844789921194705844458721078843934741205314332870900681652872833182310578649357265767882192290067680608197997582200227542705008461865438837650056256287550859301083526653419851555129551471462769663847042378718193454024855022312119705117642260080339715104830970983578761923059184873766077644302210227215399476809493822255870770113681962496070166066150983859646255080772475592552037901202221949254818474316650639528648958924662075963471385730451483332551936968135366875520170494337753240748378799169337174840310860935464961560973982006161544689872331767544060955529312689972777642434679211484402146667019619315011410415750312324947259233401655059669132054141570845592331492090900588751001886333815873937332359127900535658774269752168353832040036823185787040993543087382389364932145026240809402322102574356777056369761574142772920609204417765385369106249017261152776901481705890457997408434223826770730785428882633370660410591007093643364571317242359415950559767435338068368039986056581108344412149677301155616836607299628651602545045605214265993056513997755045116895201874849040478210834294830567927607816492430762356572889778587530961875342900275645367477868665596743172061103724525984639244055050456868397079350212865605604590344957648899486980850181628016625285786651677268966164086820167832820727892121724898851287129090098314221720794060358521466399676455718005413792669946667028506071517456157692084668100380387367256793350837709300804415936203724371034586174105847273113843827356999703577105879551470437751574883635824042799634163556625789466397829711193952733333278508830295379767237276663933691387690850685926637662155107522247860749212984556502133154949620705390302412366984820926648400427022585963058267048029536615073560557311778732314482442849306642882195929910152260376125820633208233882937412082524386272673664289109448316507125788655260510285208872524849746166048368052879337940087723074807781940356681086040609903809444477372499714657526789815238224595998430965496878944878712968553181469057613188572853238921347219313273399971841929736171377721759008597157924584849103855371061145221926713436591043500851265806931794745908547582304760971616053741526936595498361370544057472766489624682479099130170331782642997101620772011693527947715678023722373675905420576094848745472280193346468140433637313467759902596229017872521974280399656034311323588452094002627657477548347867987158887436264471726912227115847370863379666551302727798518030779346959844182248350341550953750604955366394472891340047371428249015424081973937452313034537587176339021187090405562561318764756317280651663435496607133272720015305733571195634533635913625406767654896842398796456351508446881470949574302065074734374063814923531701411790985802654135892006186853732928325541599227903022015846279000405470365677539466533482798126310130588774497358374063768499217673139995931204246788203377177830321010282660593272767090558340328276160187867119290791938469318470017409041869563198220097209730239858197822543723847944584178419003422226045818345193265202292601109783719030763184802314510625061863066781540797094638729857631942861692215924523598382010742951924066231937698095539836991843527181683398098090903898549084595651871665299717866383627990055599119610772001339291974016359936290027583225656400575449799417014335659278430110072532929192441929292383891212597806555369292704064175317980029630688091892972772641508932139319139012789188243158668780857165631489998094694015931648961869630923804934553760801975401068584595681166877278831167302274594516305140643070662550484275561807939663072207600180229295958112906445366836212016711875265843307055939067808941061731422109675317799767516470353973101401630978684810163004380849879006881989167502673847692464275993774160677463156690987971862556683629362961478829739273286148491903863715407339085843990873888822001114531150226849420940946872152457100490019527082134426948948621495244596849740146833923278824265175444773466491020254942437276758709566665486490080319742118404051499349042985580274680548510358873224825899954761614750342950045654293606027809780029823668405617217658737346264603007376492749262258802801845808820472116156890552838615568903592419313006982412214322942902310994348436316932899797967326311437023688528573880574183358643666490358034571068905502618107656417486956806554324530694739287126918591242654660014959282065368878000814531527485178627863398952302645577455926789795723151555365885808913355189704091869229374371138723915015084547357877900417810970326746823196255726389555092345703760621050062438099128912723558160198446638156069578461925354100928869520210946137194222442009906956405448008106094921073610993789024600014667400086511346175357177257602619996759377141130930088877715796964742934197138472014183641097254777962062711094408993717808796185375149744621943015900245959585913496264034336957655708092898860134318777688684373374546625133068749190962695249183353496782641412654017262599496470862924731271644881150331454851014268163464599484180349580711699538367694704322971379328098621809145293838011790221881729467626772815205679110644175061645284643874102655775512970554982938189945848950278731739955825060417453102150760728738094448248462666008148327280250438239484256682382062267506483889942045547069365931665005601092791611609375191777325533880097948860217510355780010578828637102215997858210143113828935863706425527781564817818691974220534450121882890361317385335608689121671443664053563497413119988913146347838339150899879746422088207417609692874085805538634942484961867463496773612970293953762111799354295141562903551609524843416855865873822365607080690879239193321538606688594088925669207853413529863874725239580085889690811337988900825013317267145561231033211690819933339190806914763035635115108385736992170518054388103697662516211456923768744699509060811103110912198839299657576581023694650368603470865891071624902207391654565730695199247211946309894032836967330091799061498500807361976120253763129363601763211737809405435089496533313276173666950869270721593034639109730713533054008462852602762462947159268302006612354128261297058039296118489568133385712806259682375881229497050012336094002348444732491915653466763099171851626910386035132888956437933938531046379287033308632603298219064342073971939835973699576916883381372694661651181408024863739933458456075808760594418116876893925193467949948523033831874501756987881957353625158942090620517578217802967951292452461925625884672838534256956255707745404915023453655086311805764490869155769353932770735746793101200786990580410019996656829474265872302320401422278219380316394212047697422664971936524351267245242411125644702418881650912690767060222078613752931194403042734482247768477567824580530264394539952678676593742565758584460790766229725146524026257848185035989902109587451023711775509956745308568638190221231705972880401999627769680212731500353215164309202584245643642243719744150263072087124503254280445090591432486360553572615108344526420271965296418502068379654906567707427614837422322738427412275068010717573256299184428471320290038429773070729479271634526900250669028654475402079076151113414913234460085167388774441360828202322239731963570101417551480308320480133097857236882462013945256761088424926554198922759404072472622024335535566205354820544173513944948641408520647372190480099586042760491371968069203839214850753918514685912668786522076433824512001072859685877758522655305912310945570010417829196012249450289423311474177800408968671628961764582289103802563911586514303864120156560445718107316929972563869042459671465955417895568817026334455837356635711207291791348742016441425626709399638594969654233879253917350318849474829628990494489231490843114338174971240255159226789507537346232057927954749311262626555502355443089591478821905273903601926371860547528380057431130805102805379153669707089781725778690781109616113821328484480064331597768679511563948206817663624654566779060137720368120299646834563680018881517803545583826939623897474753155703997300910407493852106371732884328120413241590506784808263913684116972614743988904283677525916454308867020685612892453807301081605282858407709355091568254661046641917605286893693317755623340261144661806293004983326903934253596401175854027231853972375271972269671271192441178187128963281491852653942808183399259021810595762663112859159279246905602921062438689274399547505287811776238625040021128136132191217679929003299438456132525871720452396663336443345659199497304283280921694059327782254211969359774449167785665669360861766341336637416477625868335836193591515805849538011546791025551893162950251576139480782826931053076165752001162804218922265918091943238671324790031368196833322485048903031174275560331516107834299821137728808893043266228371603550741827686691391375367235028948010634696164416944151485895099660510978769343853257157957969747625861718545073311591975555260405752235678161344885826268894340402430728620765869539612254940468079557597244350169482986546029735772796920482698436941138719534187647391556282738142295800758285920646384381740540081923327769490007631945158806425821004622213990673606522867971410409666597663639361548528473734282873384263423023499145465739301276937246328120814174412754926187475482157861817098150537869306520709335279689849373783511729127765828527150682108995732909651566771365569556790847228492089648765090719381418550965040923530815154214017476602057259945872309242083134846027901945723282342515511584746566464921507271548404080612868726708432456669691534654630606668539196073884176048172508200357614788162072096545479854187566510161083192618287321013080702627589448550021899043187515634656639702414827026460242804192583756712669039517375511013023844598810045845888644215608763012095106938446469081003062478352618642128373366548762512634829691947479948062210647777440522433186402329594789826353234569770163801298122179966480415532322935538576041514909674753284545419277350294749451355908639823189813668830180222667018557239746865854127531609637740595048282591576239693811147181952111052034745719160330138566306831288835525223579955881471507191920420783943258901076212581654007693149807994552540264120746725110139758233561927417412947008244982596509251854322917634945872045539521927469414469528678570113788937916978112697861191695836337059111232229894967281724101281376588361225845300576636799996064586555465998128321880489234486632620434084841322435714105254869847513809466114449820389732859728937017674790511915053556896849359303682869704450357186037519129915396458854283037071521429764225621929593674357008533037247984494713132853387870197500733661488676054946177903043532358007552459773135781007229186163758603274092719203117481580449930818276020364251227361006702665232475701810037711242193643640064523844735841834058412312980363107257538705789283327317970437941604640982028900838886721939957083466527799096587434636206441609525911505086091851978518493073578755361895289464265479949805995190967329970097292192359947858553583629404776673094152044821428944309351123167640897377766769621907528742009584774458854387225018325519735791194532082542323486806576586279413057888049145320717085570271694914621855337224116444542571031425800814127363351001322708874626991551674648305632370600738985507024529784388821060012960921479017084285982054455033101078525917337544577711282277687407635976287408089321164291383905268549731127513486151375596687806111441455636681824022450446838719103770957936452601050178210689555424159554445289884191402243495504761875670599452455414909159741909104566986782576125136422469832445705123222117655617627515294003595518890577291031321591528617966800121176134918909718967880393883368649344912458774677981213538828770949242984915839513871013755463148587267546915570012346404423855806984995612354464381561130803271524732296093045649908447438743663030156170011102428961692112574994837603452437827146002879035783636303308978739830980682630091755747550593715405760543866878811506819751169836708509176928945001435751573390119965089114281366120985975892041370691799793673529051223923714774287877195426076081052418222357438143304854680514808318562217841654221598694970932683101628168848082262689605234402173797482710689973977094105433341370855426624807987155345262685723482949675544739172089558170547562993592826992387790302527330899404752507911867380618876315366173324319183480963579639638896281904920350340334965394685163853745541880802851145897785882879605645773958450785513108445951841556835824509458094745003858325346145701252538066925173358144558779220344012356582078702433234345553164601979146483748142991976991156540187124439688468707861052402404311425933905697999518905978729227681899217741630812513270820143866291379801880878260186664612761287324880007357604250254744501317516663209951063255738013629265087185588612689840290759721533869200035038482402310263721903332586686914161487969163134303728467014044684869834677602417298598906114698877245888525956083881522551874056920342314432605422567575597246116764476438543264165972661770416196443029960695935864449329799388795048019641891526292668157347151391514575400448021953247568687916163630628004300212221153337003383716002668360975567187430192221315373959431600345707501768818869199079239093569770394807903121480205392992676760557367506342092330223738854382870390068061681616780403997441316495305160916291230191093458899852554856647806532645314425343602871454461726711953848091672974443045413992617733629803952657163833094707180639917730548076654919859862226788771993304064248192846336187935577171950929445493396328358074087373241407457573106040628156736593228747777876303302441781728656375785910918647405838010959000147899139630610659313779691092825122712513889212859357370310421432867491695781827154825699962968823901777466890107503343006238276654455867272699122339000027235558763546029270084878102371214359642172030300754846343428486387649622435749238237488483147445244733988684124977259475474015958162415316388683020793892857128064061390997318441513716332578117194181465378842423982992793121870020023230558330279147415124545700604406064653949020077987529066369396529700639900554299019550327360247151315144119281570759496638484183381862745802140447046196457292089891698522942995915078095418169091258194098534548732412470379988464749451208094884381272140898297789306326940192279243228116523850835530937545496300377417107367405125505043712993251464160081432651332238189946834495283111160990407104930083466080025580234931650594246330635347951648027415778175541800215638853169533414879275290316713774163224962292019525107816483208044148650151127353883434810998442468496210166145084946959327378675231025253777856222569304968520818462341311309224937663352979884446388864254040838427843111001165425351117926587580044802942029407374853620620947708245396351448828347422067517642577607206830069628604825954052249776122319422219973584993319047523161404853027293758339185104920058506351538189132269441314365770242469489247491270607390507050667971760698755548577840880421160275648871625497129618924320215584510444787042130825378562271832382608285953155509242591825253169319323034223385774148121808813333903262016564986946907365766292739790547142612170236951641323883052432728433024714170175070899946422233228503692590019376288017221820862663027487365146347234719274734566998740928936969100604121332982784399428339036695026642655338977190169924172417291690159073142720056335705938677846719209382100233369697219859947584194734273299168956951880061393097419063169362839747723242640601072291295022853210852479685095429178313831989259875125963551734768198035696030123279471531995928410294050313871395363481133844110004664173601593071036288103158085010727885035319157107974655634222398337449160314883154474849742678380199822939765502356111687942833942051469747490499185845033470832059396081785020775902058999237325939393392629896444279111539820278911518084525595576945223786927710029398999600532229078193136972748286653187779103985122497501509736979766432078540155539566093658696296675217019663354682147963450008374985064182468732929898268493887348060012373859985203473055197784293731913701995638533927950836756279670513496882352283744743302353380845421721956084911411725969359477552436516121824664161031873425223632380520065350867217877136025645975921889531168301980880748964848559773380021318455166661453474551956193562320420237479763578310811004440707761796298421858552254994748879725859219621736605710439374476339693488370558507971406623814926093808741415580580290287280915870470709104241020981953135364787996283896591610470493502626137904617067668462279348473102684424657825851774065270570125659285005971695309883288225082894747118724191024012442332530787975216194299849814060944641051345169391403043210964595618290518223962207223834988880999836658785557706067565697191962334777656706925558039510633414352290264265978965771373312512685900840730918653352686688499595554149875029924539635368921769403596781414238477554153430038145768119453731849884634242597965469949123000907354789711467989934056758265910821670129052734254293683952794270326818357623178935033574237971982266049760304362080608160674725644461438305966133575791163626915523314602491461651546137524600969078490358849776833920937248199652368981107463660058994053146282086108110693569731560085147145910439888761042843332547323596300652804020466956172186626732280904695025244170632746611377846930905690817754492114764111325185737490237395233599623683061038989610751280343192873186255789669373097173026105807054711378243515072594065014729241311498536429321689388916658823324319534528501577791680998689705555486981184909965257632589688032506464480725146321177489373788261330590720232874798378590564043876815924858286455905190585254095201368389858801360345182246756008353124225931778936654688154788566194833013207385237479332265317609150972695681988880686763397585990217792784980247453162915247852928580412666245544850848565966590851926327556193871733586892306209963882103403734161938287644407848331208224544380989180952283720592993272793949361368006858035224939744829540022623606930056959816691283106542392916724337855534876724797208228691380832064213794827131712263728854711555904097697927525546716542694826167375420300421562484235146542800104119868053683923717387054035597825517920040079384849302652268681434611275729218914491100841859880451550096620777557928829736233027993958143928839993436419308148338988897802549280742748976197904813333269322962520392507978660590132928755895042956958111218060805072889995418826621142637874658958422700336181632902891155234574884831882913054684163253986609282513713463943108189347965699742737798119933727468622502520774812659190142325250185945724320173024057513202691234798514833227551309638609954284561808116325205268114317200669429379509253310886869805057201769949971793099970323677309171308809024378552571243152633569297582734480096708845553566302109271147459987636036978558995128677478688139010657431715420854744007103909527189370126431568970818339626943049674625499527544746945646910404102239466483475287976069820437673705508980148991437665820619826211643796485657324630675985618133925228186241106901438759098702754400950614351641568640584310546496262266104092635435932552670839866202581668731382720515359279531665430028879407033304729205583866210280982229037751396623533573925001152609167619707018070918439270171867224022122177066380752544015633102261358925357287740381787669529016473021522269885125389335020336038576379570512494111521669978308949582028104624545314261559694854516408339526398863041463123819271280039116815882288161027169404889817209761919278807774237037895644571163264041559020384254863613637752502335581008029791901909323691392190065463996638229080332512444767041260252950780064504416864025216153917148997075386687216835795606424569427730403064220425332262517605413839447164080218559520994378932574489641794983422293545417400257240559083246702750739676349562889850617381616243225230680755501280558185676200071713935626257001121391900677143750215544763536130154706495185186468847281361517446398700822613313529258992877241284308899759782110642373798218241129322299213697431437301471742479504454044586336390665845398831792878683964022498910823496105280056137775744312126167886182598320024882966951059351228785146136900602824394713409176416273505058227356808084925090194039453376563695955182963953012375043143274853884920825898522980798955257915763799315908166803364351801479782161646115572446921123430789918823697944474645163836531986638581353527085269523697364839538686748042471688192356959799667780182486179379913880991329838167679202979025742602517603377499356882052745618699483132662266150624149143002181171798506964833121693313721333930769014805270400646708767492444224209306628242239248152355178118107811681107446860133051464263076849576885087130480971035254860628496482800780617503043663257491770460745476214583914267603549894025802665989748934294219702799006567292090585773204939512724831257276003342492107232518349807926492521029582399878705990946453127614191488847580225902645461902027318538731618690502150853956140514738668350424751991345583629735174351995553895438781976920857026404728789390320105483120299702377965293014451364737276303541054064858804134942774179241460576956707344934615780244585474277795801824113817030435422510832070702069762320052609032258729310185142812439187127116904276474769116584132709190799567793641791908803113652843459868034345276252070214316252699462086959451555489349608412458483664231547835145609250088778978814943239359498385179750803602555516483690043522794450869361451338525696411950528408061524859332559876823764326236894257113964563065765604185501124967724321297424632271299033939761865733486878703637890973114998383162145347274650808664327340696269260056787501341346743092277655738532721427560038069691885427462820390342038038860809878250406524710575296313013215259185395538869942891382925686431521639628393906885715428682702297709299498762907958501834579025712065171623240887195478783705906541823484423421910249830681436191245181216816343216202318192974734730317122621728191224262482214858855848944273741313228225957119064963320524967407268689110046272664395079824610368856236129880112730655080024973653172530502783512649133073632448747310097124216741058655095628330741331452534632287527156051098920140991796107429767166566908906843648026394053018386395945838419621423267116669540279343840584654564630845078236213083624589073684589393571927181849366229562940793804069325658002388019871910378869003300839499424998113332266631068189549410119851946948931182023675135050314550369300163090924516536466942154415652626889333147640780008130760320669465224721195298878537913683781177943766174016186593200782126176306570840002806988436765565333543411516037118487501913440774162097930551809653553812333899991026957639674657755596412125696831057046311383039032967186753053108196025822795473297335815222361146571719012398486854819712888022404727540736373078324930631614131066790330593872344453070031913706769297620969498617249394276407048248652084435048236278205911112841251293612563289348349944932856659308289637371892600661431578270050491897536128940955452299097412591920638890732439334887032935591839629107764085610943570429022057989377609898628782222784259516232784997745319977808858699849762335932890129142843533911442913193057042910980176029889666024502668557671981303940131311770193887602609861951650719589606618107636368948697245165034436127656356431072844646446975110559533367604204460766839719834198322285935594231217513796301885463048950032659477132265023481065924344082592613508813633051019016155880026525137791298020412438922325817468714359880204516960086027190169600558854322435503982801247329108317191423633211902282925997113662594398285330494381899415674085618236702419252530348194571157642113999649379816804467061033563148221757609850124909530822786636344924430368950654509156647443079749556748947821716025724561383113183278815441208399520803579145777225494484148148908343993616241788544788438858972829938579498772076676884139428902566487581290725090601705425959392397110864068308874706264899362458389764114573701663998913130537853329502695076114673385460138242059085970920657095951779524205920324276801761379887120238602485002918191896709938614368910753127771818501097183303530995036259374266653623075189535583831197232956761245998139799891960894541168601344338555420599645495191699758578906707567764566909156079930263862839496031005474944328425333550232243214434604713831118737289351189771554542880804587339940594101128286836604596369546545970610121191860675825511596101769799166207939058503896172132885174575978812251438278133590666069653629582661792733889814076498616592268273051472545686838229138750793327101802248971169566842450342945469492726412534814130546460177941451303554342155262956853237014967577811553085692397234231987348734172175389215772270022585535380918562767471203360898507002925623696332847112453892580135430843674771627651257790506635414235867721379538731178174268612844128017261630410023884722534941474940176279695511756214822494754175506696374528492551063458959038248107221859962952112481466348707267671577800222825335467801756424487735437849752364424702647444834072633734161616609088226691444804558811928285989055865781421910667491263767850152758582810984364289650008621768962799075065684289432973585694865481342099829632501847322453523476590182825936114800496799174292844606188157118601684593953635724232910184206326922531957783732221614045092672862673964670819084669413099378567227695875584342888662085819956772081809091210848552356087089740914524890906817981350111713665550681185631419488570403491854224198263451676587210266891748932847440411346476989273503887367165009668449531710965548244061606701511997802734586108046162346704184074084655406181561853512517282113065333526673240438079656623647446145740772765891029334192466896290736191295783913410668290271699798990916482171544790249754258873517667970193259679920256099401304456758951427217111051813836286620389901170591098919818665944988554205018417211320901391162864101116281752393424040051648793547150838441382532667707875616536806729997410251911555718594938488391588989812542998031784442345599782343320759954213837118327882704410329519884806920957464749928741620196731689367209055273834705617323359411970276456004601532029465719734722695873566095481948954297852842865694052857825207058597872782805516981740619367712012139384012520886443084313533936293192549821690146411795709257635660116867381848776077635654692534104522950958805746631398909030579150261611520248220366630832902076046615419913757544183481695364163345469345585374719434969752870653754860458238877722200996603588494030073085268224873231956026447438184934125179152717156172233966192786805683797585580856878828481249525470266948267832966143583213623694483550360164836882331727411493845502915896777303904344350687086207695731018779652680651413589844332876504639666749046586893945390809539902539675343656223327174523879386366589334747214657939181545830754035486914776409119856700947473270428826522144656367413438619666795363796029000064644398168364583568574673731272612165600338685862130380797526801936152568879838516434745132394978217234819638724125377483406203325398724061470588333908471714012398406145465326401614925276265760829942292927447480481012839955338865395872139788409692764325635360514880975635643931522791451086970729753339808081519269912706527268675496234130756105150566628755409902186195888958412642163657716233053410982802850739324995044705312403739866763320643028948044075431329246322199636104242252310601402038578793786604196176989918674017728134454751099278554979049664326635466493386343726547089070859213944381458318054563109054580639639693588581743932272479819719887093500369784404235804559657718206198399543025129204986481559237644817675632162208699122376027085888045879134542972410525120093951172338213268628992411344837211148782075157983550642195900954740091920100840326534106841346741983226427697502759299568215557948693363125666741919147339384502184847333309633471069572180320752731368541011695749337982356407342154530736813215207724521166869002265109120681966748657466597993573942846560552110724756525568140211656318360768392931114313690905385444180140401096941729399971989502580894127054340365083468856223162461413836007057823780169594807595401506145107322704704497845720870203269974805042616862184169075966339554917264991518891866413486261808902586649406258741376875936792667827097751548024510233359384522420197155968499928772033576722389928418701705282620310179421279823796248131089920658040725827717162007116311917942714441598209441101422279043321524301616425834702518675571099542610944519134731278654490787093676753931685499127111708848953782209784726393389026087978944274029049132731666705392431585410294073025721425506358449792978971574181696161244822279006128083196858573299482473645639822891274117906808312986871994538920660322901266963163707587205888750497266820100454188201671536705804328562122628220344173992024947506939315587713128794820420506926319331336359413105471364358067047110922947692631077069520497759959113008282534509385093096220305219195100531218738142259128221252311971585613239614399273345709929065567328571216424676153278616483060949374523693436623174668418309071462191353265035249148279907035089888193648242985766626473012463505282745327525684771648632043809853170155782452672362286018353201371956753103756886266829127874270405914099077027913184512984560567837654853859647174159469870610180310023337925395245801280375740871189295258351680522361016573581665806660232926064475569858338244038199549050604701018583235918268185552167304982109943610441905214337205541174656244857372573040387640819103485716505552064404193127484136419398019345905222439227622220146169943680253890907602648551895461490279652508640769450661442553281177987126236097095138656508201964457720210752268864003918930688252477465516638805957825396127216461255095921786228914411637170213961828077801284009508640194054996725182157431101387512334422497612414611934807830407574072441604139327378120130619527715413731914649844491023704872740370605843203098912092322314025764482372337027779678660761995699594393651855515806787349918689674785563803309517241222697104062171544154141956689157208814569513182362651268032233479287646097645958761788277248529164426895205807178054472563430990587589155930532169904396451562661667094518892568998347431887429899776640615465553708837273820115513994046806899313671983381140259937300649144564935102890877471588854814224037278072898096747248332860273023303906243809723762496832935729172493108531817939156554729917100992394603436482083448439816954743926426619116747123903228480981810877504889166106420102678852170654167968834272649825537917481874253239399645035065583834196200242752019253679633125473851213726929248703243129303566337263968695600059709446796345635352732808791926855999106756583804723551418263970057606001213866602374399707124094726444179566769229504290688286756911903964545456392850072948331571090016119997882489216496041918386777375115196516106086574763096436684460941376627257563138179953131202226005239725524752714322581904402466772087801181249384529009851950652291826556860770706567543528489444270921953736829670530958641726063783320861951951667162238921253463184650104303613042014298132771887745422861616583903104244430568854362183534302466649435207606016068351266709612228524579014062479906976388263734652216574053575680978340524877178549553251623105645580863813441719432596825103699200233321603317758669184033684480723328379666510081013795236019335123450516225134256445354066880555447759057824398264608565216950307350854004195744387113820403172586197006623766108999026530513255743843942737389449986284483426214628982512928117813337916924600654020410897606834761735699842423286856469089080502372655179299671855233694342353552221381661026803268405840175475178344191094520796789377673276610485167396909880911412478691631098445238512273003232873028491323910275310871426235145535857705830903463324803729140934308786328499757294176821485235366068034164094774035630249142381277383299833339652699890310593997559047305049223091005203578266640674169390600997416628493172609339338335180571756912302538919764525501420825784673647240742104081016401026495765329829303852612680447745889285807222646861311646975484352501400766411445702903870156507325037801564592701884534416706668588958624988255368661948854369631467923570734713122740590071711542763230179772744729961162586251765497621681821889687791086695185406248814547627737878541119529156558044780845749460837741887829299800208240157257424786162642914535608159972021495638855161877047090652357737527444210025983955540255654562395211591208287550250816517448335854416965071239070433940018395025295894630757143133778626202463827108226654635416598110019651348747761936750205748238761487596531751285410526576475595167745642563944890047834354542275820676219592036210009385075671205866154814071118188643889003450042669364198622037656297596011574628502941176247800642518952101962549114417536760820211122076834151637264694036736799082497518831786959459469544873823016919955088274513252957643883731613587718880895522405247201110575757091099927374835361916368854892513065454354316217795984318869036209119636459827498730252362515026604646901875370517095195505272140727665004872604425132769678617838988045084040833368559450846834256963121236854386698609861375963630243153267227597471607304565436054210811085868341356119853221903711603848874255741380389589117288948510349738957067635044069270098704689697049501163158331509420762358331464818792336494678784165478105447124975035843955293412408247811334721798994400674245399385222168756077063858132158122072611356462734352915111215424175393538141995761323140065543416445158114568448108008043484355516202491138831142790681142065230818429060444887550735476761943523487398799276791211745810616037655588960844819417894142297242739443041362320407481264633417796152341406996525599478356480363027711148581323414522274683393056408115012207706283452048206261484297884847031168597615048920802879145055102105542121827735513194982087959181724921836101142591186821916001816845308643413797803013893719013988789794272525098199793571652246802492545419109609517256589784144642445845399175136294801827689200628297562391068049230745251186668968923628351951017879547625076585806510535097183311401149630575511174114845590467755901666848747836684824394341260365701559849558431846652680446201198014000134970611442586473327657884976367727954068535330992118896502589184498899596389598748368585734951850963224547618710456857482677596394463919377777900060854028325930091750512041769025492345090975663730142330272018479494580423634440558509490345461853807099812515501419744635005374961715468690733583503372141813983848195894200345607720138690483733636556466302807515569082797398456984841544432350755595041115414094956765373101158264844422707545747492101022792314132910357883083896030773346691024400401808737454456873515081137328318346612661161243904598761109220705175750953352272749120607404220881732230695716633027446776464261567500871033143458440219746041787483920903666009604754305723178724241139484518554636059563566143164304359117191801557963109310826279985895041373591687998093558157841748904701432118888664153170310292306098689065614072336681018330307019823428056024351104307210275385614424631613208547053074104074792625360734120547017379737526206654198858709005913365180698350027524303672744261242505765264220231538228441079959658472226586981419205578249850825246345150353422202731076169324240969098589831036580281625239716104600434429241416684762816006465709189652633966640436123867523681134688093533502266485501589373877142232341208552279718857334258920459686632233430345264621866401328837044758147996382189125686953169594533470906143804536907843668331502630004475204390701857765260228340684329213695552748816575098515424266903693092026323832622468320147868881350231858168490602703351396960844125970187170970372833986118266356774369017763369551223279110685300355030902984696508855526185918554207587437087287448780539432112064719058841902233615732625358510965533557465785831778752537876946186483251838972783437667266726179176893428498139528236562240675399666810723593663948779265548410279031651971338425826024460682502099216539295980125998106935030426306572650796936137462438163457784299315391075015669119587675018859750398058617577070546183080102746514355437900171690291123419586049200395646817833945236762271495017104231740776698526314108794181142894021427462981194349289994188343963479270773898972882074819160586549774142704626129983504604664432891896530816904498506578649046624365101457995375519086503892111397227901055569930528242004164995829045830921787184209133669538365590461728301377893719850514013329020887226671485922876659885062662910471481699871823382246911813143802636142471554932844776034395147816058900235187112314701565275925518133440546762355810120382865920062063309031006578061465755826423728819531995453647025130509206285511733852821034249471089931464042213947271185066534255685686245115152388786605595233085737789263934181915828620329947719185180487207970131848846272271799715153846559597619994954285664460848886323671038326838743143196050361086203421064693896209317614329928262345436657757867102592569195668019344749876336449192323636449569037307181085830360487640721973566409754282670661448433786211010567195440745246992428319955813331012641822604252211042473800343584461496815407394408916153566702969028648254508699880248660073653431918419660205667138447179474189173586428181394163465461903662106883278940402777942467003322258065101544848708726257830386581680852129630447917684127967712495515082369873102838403067152789004404873753815595429487043161514314107074359155272796943948861845474716504412843070954072340837690950073922061478941959854744174386811672808764061504136557197087389737626406275108585981958092050288301345402073931855643447367689429593211634043187621160026890395277739469575540652897634451287498381163352667109051124663990974943773733206300778118006640757545346029367840118542213399640441666804361110278575360747450170686647402181985166746470057921864286696512220861303643444839511186369087539112467650406513729556254912678393822293508453336532522415304042158160751297665284940270042198286783286157742369643566024533773822168124545045887006107477868379722430349074703589065228279273156277399040698560481992519368491735697491323433023027546118619043534989568647492915654007035639281278407417678011706040628008476680208076431660024861031835515914781151973975483416757383600780747821787014408260679821834755786679972314447336480779307145266015092360154128165672294113486051525584777953356388643299376946343502116127011658877653258989472355864261769187801576510746097674717513070203922113896292682081818008871541371802021795056207379210029517313707053855101602425183257304952575148327980799014138773847030559828859061506154757226147790626376848070129064415128136478658645039247575719906602114449026789400165714639948765101738892431144178326973031531986050746865685180460556799949625355827858873326031974604542477350954192980269815098957300371265390436950395947452797211613732454263512606878266502346748892704567463958204053994516270991517673534151813094291694555591466813520243101566522446616301781674514872044000161541477949560035225141586003895714756924389520501981613091293031283795507683578117697658062653710720593093113283601757535343533394151945013358762389206935641604461336723732598026780191211241440646216782296353212702920348062242590586061985596793795768846601271529428762952698999643971351059023423758358496475036014735702965521378357043800279236567288813596153912156646274148197981294872183343483110749792038827454034706784194625611759486181833977600166626527884247472492476924162032378543894741299202490442329305129690747998630548705470170021943077806084592757420199136677785391918617026031909289023744982088299399463342286980842151921244577579770223202083077806105554675197611839629913812755693532338083990258960729281123284719509443319734113434648719949194912406313386716821607551889008144174277138333557193650838303892600091452388819954602756814230854746322297634691668747675064437330678895648202304316007634466146062841989703684387437948869602260445757646685935788862794576704586906697360818568339848849308604534658358832333481059361148027825429218266213411356157154163609224014866428456838151324970340821812855104992131326602097673341093756158727290831213956058625233308675624886771160740767329155900749838370361526123044054623465339425125918457872343367087590622097193688678366765804094763401782212882668147978948535321700054415432807150310787737147364395994671424759451223447578952917452960546028473680774851654208861910581054755654715486720978220116186781116420731952929999907125570963168778429026347405110898107285883698555285641938521146507609058452516556177368991341897794335893978711875944005944346891922999783595064232611740879870507101398756455230014936680639672094877601484505950310943066523880297076925230748304531951321006609503993329422534730668023689628665216125974875181477068938910934764082181114449686149042799091877089227774940419082625671916228269455717122449932521696613537518811711390601635410706667564040826449359615292067603824109972786244035181431191734576510098475163210673959176070396902355770685450989530035813602719159357752566271153213273933605531194355667556199225775563188092393393282987879894121585759071611493862237449446096826044493892629600175427048276849152742412300804359201362194042124831132620646020563273390311428881895313972299252749951782674068675234422596236278299444735018866541339861041293889689214840635202708937971149615606339830055323746510114134938432036312936324292014529385047492667534060300479766079502008642055986781035213794451198457427979820851360740976719269150939276845665984263728536906054911502716087784785569825818845878624609045153347979607096583677039165290306600163536434976520324237535582268943581410136981089513769571224071918224913422138955375255280020748123268025359769092307256744430122794170102919498951342908591914383920920272151806527976619742253671343631410657061348757285518310505140947201148440558864652871437903768329026108775694732455882333371573142516718642258920779458270471753336746259079028211639063680000015434056048623995864211412121706191452264286133003530095240918034458890140679977349705507227008952975402417058649503725175559465174339678583363180326986820792719074360072368616674924493200300512605233430899412375020049654496385779351980675866452648348402900263773875926774082633282723460022599167612129566970289924691528038680360414834917137252647878908434235681444470753618667330449554658614679868732030567864732313382767423653447992126158540950198486665490130827857170697598265411658619499071474743500945869015716616456513813592792622754218813069722727359334551104098856443732915307500489134321086187996659949588753519304582018815174747268482627610337960718584939363206627093726351847939523954986440321362782798605142186422280208238009479964497544372531615709852093103129898014240211869963165857278894211338389478010447940801384558574526681364626798598347489601461323832887239336439467819461853006621412688456620922260446073363739247841740061874220237433035870965796563708290952095902300523438352067049983596260609556351897191979601441631798953757772668797008991396372849608724829133678183969397170460649905622483734763043883772758189983901504379040883539070044067876584226548614725952443963179429973338805273237224877658074276674106967678425108488591132066531837763521828618752313673744960726853435778598354251193608022541654967934152178129740726719541286361369414479884122013961311192190773386770431743514897762186696479734376720148523203798025299709236343830422795853447850727340412328729009618145224586116844134894002420075070926499485013046718608555500632786809787696280089642511666310330364611612959507646176940859092405010347187386503003809754954807211697509109353260777099117369222760675331309167331305332260668367712044867203946116420676043171059256477877088161852952758061213683430662796086395866005234370342060431456912761851802569275384234340131848824689169184605209834318036985489489295981323434040404352281576423764100396757628935706576178850864798474642671568610793738271886032115945614892369264915442933224407078429221804223610504940176060668002253465622141285994265873563746796994047479888507926230983807890045708292572389634625542777445068841684718140873705089921626209654279648847565012248586541807812262465171871062779056384038906506722696205005520742914793545118308024818913869472263217533402045588896071895093309118927901651579592623461892803691716557032603252412734127894078443110083332024438809242498285463704093871008342530500194247588741225612281487693025900860404094479863364979735368658373482663069944934003597681396865000480282973310144793281557144874093294077384493168943129096619317217986574959333517626249928743897198430672670159065396126350496720167965852147694861414615734008730720589880306974771567870079900363449370897792517445249897958745095219818506646198602539968555545944622310821256061724361371207691299314626500632414162343903633192581494309585519516562364360798342772118582816902134093902200023402617663698007666567809798400171937944379557835749819560831263397698924999678014999204550328120726976361894189113780185308683515689350334650501298317349468840501729359364417502008294262703629050129999810120843429488307993464067650929013286021464280442573652705411884881449219451284020490718943404134386653855187308817728769129526022823428799028111325295511773788370059139742353973274072045239700605940767106383074241177505194617756349493690989299815714055894991140598402926333731471594150345263279272938598008050883539364965710786786475912921236673505169371814520565036492142142367827329264276057019976949845059312785625245179493075334730873131562865850506906040883664359520164965694711601689599924057224823239615317953888719449983745008219203207008935866114610940262438569989480607366882714819041647239807013570194108111748508298681091612234406529084315740461450866478311428089425781908620182435049190982278830308270230656509312541401299213609071231441641003747545028376867684955349583805725107030362656119422480240667378195369114116982283467991613715221278389058121554140164443925688942598610794901386943667640667416645701599770466166501111179511783586531164890162607194595239465552741458410812166750150709071325485517215213976369961438615715311070576380944638406112819383402487606510734218065944702332702243562165755649143916311340995747959396706943706797480755535141616259046769688477633693103936245961866395078717574460998656794678785589702479443176345618115599436717780007291426558550167683626432783883864583124773047200862856814061377715785443638551468833352382016240527901693823130641281967191193847413925331223668959093755381552672637075288320500847785052336553769309137415741757795737680737494684052935854376531234305571409761160333887825046992380412499618591502556663226693054792266669131455444653944885910150196505375021401285473062985777243684990288205374069071403359548734846348404503403757710883051572128772759414528472053166479517624913719581413562455487276374159353848643289547811995688191693208995613883912690200027429960452263537205768462363367991293612732180551118372497314998569062469086895233560340724880117650307888794944922563861079419544387386706548459076133331169386250609494758475660020933472725738175275898132672856292198665117975150535918613395534370984914981387377982813663873001151107784492212498281267459795869156933766734684748710071260602155800589560594989279655055716234084546996537033452505118482208629797506891010410168781619039466952364046372021076137556783789929906139670520366375400825621976669937882877310249155520369503794917552468562645030046394874561650076881803981945864769916673410082527731949909582249593292722624551009187591064141156955804077026033367929688040641331920828437674176990073364470965638071625746141964489933723123217255723753291228111073301500399136987120608052608441336839628045125889131601538685337439807727331500632182875657881974976941120410996207977179529815032875752192906898992361329837129110833212778848637786635822930158663475819173434994369464935349267502362179968912746371413249387489354558858913768912789508014510144821569887978479264453645266646161147188595351809625547663370547468137903021033100053449257472304403677478669099796663393187848165595870121271778802165812191357741752024686371306988674105353096799313392311290181157750060529366526260393880406085062911935458990322905725542688542285262447119353198202693762726777441362561179111346428027055711122887528934568333231667669353205174050677124924924114574040887241732291624774513141386272039266024559044049637197889332093821808547413038184980600260182925359409662805573939865214965562627938432489899752856553381370008430642558623827740657650165270700752627952891649137769060635400617672076519204866873281054680067654993317719293708092721558645186138502369441368103993395748764203186279831056921364273362764600753945034763856094141655023199368660693626484524503786578356835401336888236343063908834982591250573426793226516926852483712055295621981498499113118532471623265070123268106832128524680394895247383187224037814873357623265634448978017047757800965600786807739121298771227273621775346205691089135299017115224219882480349850670513644593750167087579550403371031641637812270106196617813774976195247132315948639701470675003507873408184422432783267576036616627130049287790032628177344289177907620735683029925842187906206695649593285902130443318893952134473733161678822889445181768092441771540087212045396622837185039854484631339663038916921532435243243791406334787209474604166755977298355180756604025699318037397716298711486969967961773541575108727528175379058533529375233653392524747251294946204543618378127989640113891305619997725132142905276341024207986155386385451880477560991179259330310538833706541934361028834782554413099139538174355339245059209976358991257317907466669734186246143051488069108118619536597025682104578935071401592820106683027216641810945716420778850788904135600847814295571986402766602888261490829721489950489142053055435959657133337423866450238839386071127125260615272961263068425023053452327992750933831938822134892536067816063423999043263624850574473567305635039853341744169326108649855833382718354857062331697670065245027338581470993604380946895184213162064526489432611271846981805537007989932933234106115907571755960277383180813163691350863505260426032349001634674009189826243549185574313221370747335629377884173477478968159299110422538509034777632504931964222707181601040398686482855905141744425975033896168987744825374361683242891304562403875687546138893255719397461405987712453232944630242819883833328708014122503403586936594994199326458078976365144977487766327787345747642162956059423234897673895652326569587631428612684665513101564887653185609999522084585977198177413431769260186640540295785502387022832257587486076567568314585831862416306526944256148849532933767361725306258942387444008476533857646127428447784990734290304618008050935341694112472576502394262244160603440768300345493356753935576100649473503973612009237752278424081394590361378110802344452344789620924476031491830015533266913624542570162992635826635706653834982345989869307302583713608163903183807652234419537828729530044180110699741418196013211749982095678185370284111317626798347741397280966894144846834354842694713706948846019392689391200399882331944710709103550346905267716312438851595991398559495309991727343245071404765620868800144095022357598150257260606602101831865939670924024038660941003110937567454845941672025113797288599717338818927639389422997363114415009081772882548844316569659877554723931907903576716835087410280458466622488111580887807855067194461084267283965309809798529291675800834468742242346104366757705136443197479018362503445059628917662310399957508168258353899512624538199437263145813127602565055896251066802694261278673585169535834594812227300233308764492085543822822781593890689348178315474717456904697093614541749251192031433681340143118332640690813932615620805970442502867132219165552665115390291970252807047557970657580093424640461600718926587209252885626704987606922655314503984778606339398901797480765083332744188909565771029868068338213334583560092567623001608622276823469616867352565639473840883332809357029880095574780853910204814392424969576806395705790138530607541620311490340265182071052591507660063414168019434211349939896752033111330676233888192368596099687078390754088505199811420618301783163949095255851065997547978390985742083601976023030205684656516861169720123117694621503919042157901752345988048920545480322038086018460344447984300586080286307633918779027199304276553671275948664483539127616449654030726172881257341052644063595820535023647696079099247675829396574979776108784570039578404566653856922375918769715389253900058143214884955770086089496004971042845770855855268696181293487776202071195890321214867213322110222668606480820539952664170262533519484173896435256898382894116222494849871903626539434087396827153107026861089081350177904654991648858705200969355330027460032578712607529237445659698698481253614253942865266179667883970686502836430757024993769765296027802127415868835073517771701771884395121183677995431667541672546701750335534662852545740193722251403758260836036523097826394803192023228494400274840373891352383011613318684878790594537428968718716194102130390855401461327468612135785991584501232648076381786520617891087324219887446178779347267490616907401885951801339148665389865935411921952223997832077925280861636704300993184219345390478253688337940345595548018774781393477794126554876506592361401113973051927793607640075048518593611155032357526067527209419012374490739055367181578254315359984950212485689261992031633807513116293656730314373930050281749288644497599003267661224791660185243980941031441004142958477936868929974934038880350107496082196364159691293638933897165908872817047563808803171393311295285132988581801189977237367881734002558712252986439709755426192792679549821992813814847365641028236383472189486092424668039030689810276392606927137182437348075465569428044708419583874656845796093044679661823495233133672194332307131463326050186189265091464543441303323667105705931500038602881638222046582240254721323026564439071760893406249462973303640717657031726077090051366401243346125108232629132012595265131241485311986106634445678564244744917055521564059174030921069182763499437886266014920289200764915107714004040677926923094938453244329234009091208211185235289936868271462692686174920665410837606535165495940904216203289069977916308715424265877937251617411309844439822029398062442163365848736220487699110742217008115825811940418679312968487729238851200979170359809185858826753862690228505955478241468973351567225180743397893959795373495305314160414269552521620832948040662514407885156722820064781948319353740487226643340718121038289166208605463511270553756389601666309440163432329575516114843319930943164426007471952697892419438779152623778360490182857072761369928177438465434316089114191694791369190645939940721498166057745400427649340898456399539697878967748348289014419909894696374013103456303525236073250442380254267451594601222734715056925811588230209762582107062088563108727677885298285817035887200133739128335472453999862799839784893440608307480471783592768732869174556142264150981826074936520744786291358372489127536017943768267850743446546625189852584545205882910163027188069969754719883233486083605078408293203241295336229846875634081102803817392348774787205567385640130286221059321145268667800124883288955988466272514442385134477578501156389850520000677655693448434523533624990306515050283986068991116603036092242397575805593960068080982248145481011580504427536373094330362953706831851242819017230738477581370019243628876348230012673820422117665637888731958373819436644427526420538973599646013292641817077263420606267769360918205470069176945113859132475050814688467945503530443166020015827966390716152224916460792378623686633172535844203531727269586716378952440254009513800672152103737178785905673252701451160079969007246046330561477741496168769909259090232967153869922045200368356158467359132816341910852870540725447014437447847780265402377878140288624635641539589661276030767265604751877756072886092351960513399385295075370191296138795638372567083715571081904584153896170858685253025279780900824932811518516423593917348641009974130105412377991627910486394757025569844975695156584315252194224339347648271054235113415338295907415160836097152107437661199033676609058359089100841982043058169189425361848103001101673562241642542687754205293848450129295792212035584885657732441741703407915170659619197075463747233232707086396382814141198433222671750688569289708482924179476441555581233315129640973799003128096464509190168082526605721224805746936701977428788006900694073143751610252910220218161785546395498545240259453726187463292465594315287958304402087385250350293273038595895139514874141299455327565080865747963250076090043608989271784263821359205583680433062466901660092473162529415832671856872010300811225935297352979367769772786296219023610592529502358986354386883692170155781874481258246298134986014446260296786216584952368875618382490121584496551689068328995873811446234082204909651655530168998569317749816554764469975586269698973212111908987201230064405951708048602161346218939674551822144086520778768941456811252902497778359031959855664203571500109921457968732363775822292092640220242743830480456197054385108538116645178720488243525396056595377051658062381055553555071742111895482815607952063775353213989482334724303005862238936693540919129941424560356155408059605739568493048546547100705285848390089927761415586936896374974657780561703791876536023383106224128311241572410753565053225728805891743491064674119773646698350376211932164913433403093816087607197072955007769634065021815172273817236062904582717781066302136641139851711613027415588842806863104895633959274178569814595081327099845874491218369119673900591606722173512031855318084581299060144305772032383524347338193163562006544783808365321977437270377517842358175820025014812004918263482185518213026093759663806371730763087861199874657861515874134518603989046902970743010687596352883809376882236992575250029362406072701852570017782022822665170957185343368653049347743356733125356881209363592200735995474983197634134959600371584801135002244753448654036579239378361242169907800255943793562926227218412278791252486426996340304583563599396100374953365001346879003308545038896289427214298934686141049175399581333359158788859903238463616933736987219232702366666006942429658915130963365987682983699833486361582778693930763005118294587226195258410908034341835032135656974854058797995851306538138275947043501021548306372947367235538518953106576910227832932372930984521348704339815623179467395967693757476555792899734014728213012584964554649487664505825288879456147993282254497461112809996174214129267537328142519304285165510088194669048871567760463036116969836975914635254466995550749402131702129977183151786366094808807315353546560505101396205812680468888184718571826366135785373734691772750853044236191690036820551110538482269895024561719543254028457123375590782532618993136421414783105138164016486577877553599735913415573782730949060680773658210557387085416581092820332986533862004470632074177723687713514444104150010238503268182614796383403532225055085884327831764033840888493648711890174675032974190271675194864795574371019885806069944650489098239808525330667419804181194225729436813098091671905649464366578735222220308504499129675802527474120495688102013775066258318080991377142780766886408999488163266405787649651151540738031274172161125518456684594008545600425542566495318789299773931699563665671884541650000966006732589658854619520057939624764627561533551169642057132289979958645572477289389144472409804724773343231060120603488260817293925401983045491581208707407656617469621670937313187681758075628111884929120145613985492146804684928286878688637005046623010384020993402688356166832151154382719626978717022476664310676021541434815810482602054883018953729887565634872505897471432211206129790180103654296629707665380792117699094801098302418072021385982257647097348459394831829644964812666516455779675997410599123962571086176338754052162538666553951429190182789690017924169339640162677751549145726787903583955194573574689998138715422574695305170740625759392870400453293921800325854640463058486143787422855794405979420181508111812450464430543869663885366184824209263856239382120431002710615995862504427021247002306262753382735865885460811231850123336660342743918413612382245675918177807368084562196154693235204015660515731480093093115820377644814452979836817011359236938495950602725759397425601424434207986819988582641963479822551176290110367889922164700137191999094247425761939186183988569683575601757140547645918329378059518552531688975676625795464406400336151003587656819659101533312158364831179410676734248749007077082450609172394239151468700075427819665121761415586584336218091596800724744474654639633431890827003839246097123772266196222885604630478759486061703522150369407110111644451277747951668119751375598082299068516448417662807143362507266920906328598816771831827555567229331256024460536333073837940486221625244152301385163821869031964490743973096318750630768432886042025246303714678694364282419325910936122160279335651998929562946342767537106933976971344087370069480737430180215394555265395252780053534362392589655647179735753901004992609346351768629507751473395428572333375898949615475730797496976792774061762927568675534590049176961102483260340121788599418904958184849182177071295146310348677174641584303405967477557456619563360638358707077700172624260480641300990209073188483799467772261352950105139267277401514987891307773286924953979714275957300613985042896816433517086721263632575317086705371650195947153009834909624023879194548591739141615361837676763104618921159060830105413765437243312239320871740038403599365438593830712499561384870289853678922815682550981787604119530294447169068870630971269583837769785004732219991607660414623854455917200819975972440548753584079608549772194760133155255639039032026585127954234621361223291932684825121792506822332261410752556465578499858030009618412950364314137002422531221448290511223794130657925049101865649830031973405607688238482617319105145628048959076412826270922357148236461978100954732588946954783722229971591687853798932456957727655596351161241873429785249611279833226371632027953483877705523356878412185313206035413913846133873582219918712087055154555414712434018157804197144927879207474706701142296364497506376135265758718547727340209182471214088716879759283845047746907498641696149958188694143208427866038977891932892174096343235474486112084118923237336580471882267681819092665662807536030939385061321762050864907646603903324168576979946091155814535633816445542805160777863767558990417901423685119063250481055165233852332032546734332402789917335851118057027273439364837221340229555340071192829536441552582568551238270592238147523124573935964040540287410592711405492664218266792964153334521764628544628799878666771921038406877547947509397600060716965056381237067270540536264675104485320860605793991077952874869186114801512714728905474738602363530860165295579212795788338537958391355092050804454473977648345225908065815751155071521510531510371606266113316022698353721479506009284655777431252809604078469367370631099853057793456575407612976400287380230627916344277038268020882159772447158855459432612804705227648267412230779692142866063737076408643131198054287740171960026427226639525315882707622792015862564369672139372413267156696444471224034050007783421007200156311808374150296063446325701720909214235552536715018207422435683382537969841517011255868836768886652125526560962712702115621000913757649736818635746431123444235808371404360715366363338032026485820564564814594378537470386031174604809999667887650588612964725910924965795757985463034078759544420278906319855632468767969054836634454734734109635029618704531861623103110500765678285966817526493074011514729830978932264215702105975913301686868024592967786518644011005188920173141354785740958954653063335543210777111269361643188909748433375833895854337907479327081022452802652517199180302868484946341768721412717443425474091006376399141383516228665547455832491209000834606724569322568213170607571391881357959485268395105568424551162924130824563989104622645016537102162835770108641081687068474846313185085794363087199965338927082997065792156978974280412051734218460879026970450886670053314126935329360656977627566404450199618756316661153341229610929194982594129060689249025242067195638202410272837171559136573138823805775314762528146089033615949251053014665970625722069152639721433202134907963867373658400814677407227973514595542689690934580969281392722420928441525728243677631855384928516446583984423424123892377743853186721129272966959002821542717963818818070432124522855234298273104454022700017636405249389719423516249694518338589215577021955966738099814674054815572607409237941145973896178815592676597692937096167692507934973459595455754122504107233088808983601447471684197630370952961126096164211516211241005372827572960999277407329050727720550522837001063947578400600476211924898437301488212314253821042734059565743887356841021895229003785395496287015769692314620623488822875634107064329884622099687849168620818489788756061795043092964803217572546232054065192100120621144137567022487818589264220943989064786143579211624745957966072389269103255228459104369632709920747170312951022350574908157884080977429232116388513361668065733086786970246480429300328903407868029081723305439677726663446254317040343535208758697926652951274327174065030928867573203425625933406527392350641780558394007878118681386732045178419318665143690923915666477001522296529217556738011113621040757560228720290726486863256143506918719845446249498459946184690026225102641773255495919403435813095005831971762720741930269164974080187400449879514169388221800407795245034193521622355707957819404135499025939304777015621952164173082980618064197991591452671451005437850918203175843469447345553776057084002707864525114796136678653709008422897817883922491000437037687325625063978755661580920730154646592824853123967925123003666943645605853106958132919388703993141083467690024926250855515749118025778707496557312741157870268400648479707952679787019467874315431255764517721288961411216346641879617562938583057669890790054487109238720960120056044615185990825727845177001335411424009148782718782426134940760492206801331660408989889177949317745214508331605276084676040980315771963668965395977395572145819527184409109475880630477175027354585722698630014853395053130144010521565818787298553567352346533928545600381274006053584035131681308137455908958750200657000758346584796831595487245424563109160386481199841503536506264087977989955089518273443329993091657144133859202720666698336521466563743972286432465166908871105931890488565246126628260514299313106353213012075688619902872575387166651462298892643086903904888816294628042969116615032885158930779088457567115783938806711679931393398902040111280487199574861004377332122232903673444592485930300793834097673664073063086430893980362205460138058158160324078776005505897279755498174217983708083541267947260345431066236855694678742758162987885942937635650319115551174632676536027476093162641074302421069119574169576886525511426765027324947861082858450629288831667510763340136832559752474617026603635302096603820532910854420222550611148660390771805772247672893130679470836694336755375213504841115897330460178848236590123641694048929998525026217394643796072966966692042104210479916518105784005018558362348554289323471133739529566293776302257692846716539004885093028084521110727521534729003681209482216923073102025611743620898196165397018779257618978019699614680417146181017984130217713434861286117457306117080990089106446768950874867167376365087348025924443640916600830836172615616375623435554296893033636892574997550229123521967737496245241532274889715676459539512716726249913558447369480479823764018093427220227452908495151115165280508206687170288398064052969915154710903610677904052137943977083378339631479496911639942102239287650097204192383566615446360745546245953506321899003000296906253975165703850156678322856041896707634512084568474446119939375383179960709256174901662550345572816938950458193341997304215843453212904796209248750353545526539894398182571085661606921316640654098439186733370506009211675137760060602639849807390882595676590234119820084138185219947340153972745442353360022260764962237056603945220552136342150242494899773322451729637286405300814656892582916187710299049353773644082664758706376282209035704017364078249614025463589319512021370286067193803237364680856214377599965965332593475654692912912114629759890708836239105565308129801821898954643057731000754827234797580912522457082773185103890440206202832944045459759941651928389496218563117354529354006734844987299159647749216134975409163133548119573595055832746896674784103153089828485470826573914199014026819864124585116163666692705063520609949488875688584408816215770308074250940120753276068940816964886838128793233957383200493797469573690715666619192169574699999465346052423991372722731215370627131849752106922175381004701230588030389920282811125833562020230228814232069023661748397166526354566826869561293093271205135437067688030403818232749942744014927050445842292158778571555986827285578080903148659902488797591083500488660432577992510882463485875208809460747568590230393331266496382153291114488373563497706402111897657469803651636730622981041791780714542928111809790315096596161132928476010351746814870378641033467946858088347755169561457365261745972323068476151763726717843128919025397578927554693445147653688858650126082664130957180006697461552067698658807186968347325475475525264735164122141171105959067887726568926823220077581238491054683131832693432780703830725578266128775074506145048380716588159136203576608002143364027121287633376093395267896347877044604493443196518561926523468796976064386464701024719440479230591944554694155628916937172532818240058368860414573932440638863512391197746074742463153560220995866013966289526357311891487492559924676893550772335181786773202096236507062632770148686715571603336846381202049623836743089507411891336858477396073234709627303703374756797864498175637203855397147998136472234197970406459999412981461236678538871439008801959150089359726043341693053543781956629309513088353841845714044343596546567012328424423937542888355975506899076908763988411343639745869220231389128203020521239555496833805772534659468985605870093027582262696367220765316684604701383824753190438642008599533627291371468058084457738280201236667826946370924157652916284082359098283897518940189699980181797132198495515070939479653146232056657771593424897446066820325943020633751167185485971620738224050648869202797938522530572222475418405066173674722863016313357986776550751987185345956587521109598860924770269659956498072093928014337885356002013349271846926030341270787800447075924027991060887608932365693124226892602498745910839307189133983982366210201302345109609560271363556796987191132771282914015254610593380860163094377200973955985718944550994261143458573441182970307975692045388367739705401725625143957824635489268088422621656811106244350408034384790140827838950322284784286039535228808201399387329663408146927706881639742174178750489311767137880657365595961728846698032903350405706311699256005720630019615166755399237616046913277072704187463073928815646049104377600789782353363469093849452436205893589717821844139827142303494517658679772657382200115573444104782428831888945884203636634010552808031920999385312280614082298313873144151895808469598309576288189049063232005626680629938246371678497475688051322133563370820530104019727213659674852312741299262276493568835880903621874581345501344258104822921204069057716410898393361478675453754458048406478869510497577316329775003424386844621325095055900690982873569786256444951690662468860583392650789037236533593099967769108915237809337377598880607290061238543219854443378020187838963085553184172953855868110846119399862520574494219334540047159057587292050804446531414137936712245431192411838475639892007020733482001401376462387014524687069740084240961677220173870439189976490166058064320342185395827711701313977776271749683809702086440693427952055916572586184151790935672476490362380370349885137495155683272610804831815638307089461479009688779711712502165012813731290617720540492954600520541674267075907694081591469011974889161438639148922774443699038640017204940236217046556975031501374050834743946026422938718510810099814546016930239852397255365955749864118721712117038635827394853519178731256068716983660344672471096039155296712593651885439792983844032859741300659991303766500202425253352665098011046385521759006235946683985956870679811576105902314924639638517884712008481677400067235958605592576352303791400848277810172561132396779615679994313570515533180060109352087277434245983067875959692792773760199402822663374137518449453904618806707032726618948350067836864705679648462214807731374452649736248994540412891306237657403645480999900090237133830432749775685075473843249098000332466915284863340816755871184485102790431196180712373848250147668237522400841948533892830253839142609669737829150187026789308160947369066283592571688913237855335679444323899256462426532521890459347511510058340041615094651430706333950000985545301370954946469467369932980109706546733393703250632455620084054991346786785919941091639823075149855473991965298764846864905974957063328676872828537293243227804533530312354565771763958650400759907655097938208389641188311816811487510861021960187618088276485455570455907840278282318037136019298050156391233641923836755747540893710162129216248233861709328409361531835374843495965618477355400763453779771916949812680998081496712920868905930513357413087813115565128318857819172451733052438838318002897596658898559257083826549890091999791015446347254632623237746693198076370893688258357481556979335769855567787470026372258297127591261754231188120365803454407551662750024929538647909595427030631172146770224946727403740907245570528751312956736775697747105511423430985972956916665830490980336339361203870238887968904862115639225820879281659185451208913778788598582755138046633262646667243879186358827054115402435754078975424016396816195199370624638880939448667897699113177474394266709038623931074473206787317294775316897816250050498156929607375108416552863775043198237502546788775268037842573900997133411945089697782013201339601272213103359433266574777199844673235649377426979865185395006260088594898764885768440131581424352482345044834012648442550526347102106164461896295659104700714043806548379515466911943015944738818152643336955694039492759152387554613701357514249061043354461940701974061168795735487858882422140375428083560151449593587977890528255538559044698721995590853749400007650090997172547163581317119706671463968684933369940501653073645926108174782751959478376385164126767028413972759523363859258840021805935188657687476108290651575078999288538213515292085651534610607994607501721996315774903968574074044406483650069120765578934071319121288849477013346324558002883393282307712930277290014639148295217083597369036317701775719936037470684187758761608258194747195220307283479184640944163206430556338199060425240369386590534134136770524313996083101232940960742245696847554526569932308711221091171320650179687607674112675550743375974886171441919938332171103758752200271838642001367539944592579246706942127325935364059833167659480662322029521190032330802547668552100076250514127467178240777441647021092634503715471197962684694048341398104077074531348686139757960947103776450137925642039121780253065541776800464884046289921101520850117911427561577141913230628732534778543836870317773904909440580739212445584293739826044594298273924044377846757076307991637815177813611778868209148708058872933487280106870701370180445271913553171347775767698898356874759170247085019096579057944039338631214581471369041180400602868555070917898406723922145873798581229670146868906423321125451417271231891458730535870595644978957104905229341644881961441394054488529300040044495181660534845036546624364323677392658476837870646422889638159981419384954800857112912258470277479541347650981474581035135801789584858423258181100216312620808250335728407212393918397656875740725285134598368899515901652830490597309479127339826668549169158364564983654513334101794532400767881074395152327529806512510169581383295280241455178753189863247323678823067180698947272383528110615166530460578848624870278394604842085899605994551809938408510590758341433513097622712530303619052886876580908333280510003703357889574608574576511637630059621086724527488336854346994143213524381340974452026532576603255734053609366822580008386191010556428282297801816635131793076517143340953729245922895361578203237052021174213745001665582535341209978635778493314911711754017920439014313467184020708996143490560938534702878486143433029346798137017327932123430907006526065779813583502453636735412982049766003191843723830650196359340939068440674614932848563515365061842119826901808102268859611862407438887581659427231257838120738257557634844715651407155805857326007554631497043477913712600477512940844440263078776270578497742867931883323997577946403822503546166536220710389252496580307715312897818782389539863211797402910088016775575081239220764904225932617281084249047349967148877906098194932784764293254160369190634005358295119131131372941671176783912006239625585510207695080050621307393253311242660615042979863076312739533020360805763457592965853467251179873253779232687943845225538101788075730327533889425360276446700822396272361987705265679987160145062475588553411948386146614949465760945376912800887156953727246508386499359726742227223733911508188048846906801733210197996522218756792135963159367931825850822845009209062818459335238714608394082278380253870988416466099983752077961136327481988509705392902953243946237132884426452754461187548048822978018778938313413386970997808893758272238485160714546281444069589624811492098939251696905946206644507486128117633683698140879426563833494336937605119131266897561247956375160920274909576643369208287761038839606066346181550031383033488622092607906213067605775236798450127025175975294964003340853288628283432531457785904817194686839170230074091777721752305755723887299694565631902409896919245516180101274620085565876979005528806157944389813522550888157762648271172182664548158603780143061377116674241008516604472818284300017884129268229110046975595893963210346796482733219551229104300446774458048541048685536138108577686827795337805209744990392267967998605561052644758628693113025016842411695226725719151942098754382174856886832394638826267762083961878766420148832212771024426962115986351008107812524551901950342362831715751576593314006535616485584626503847855900655705345516436606662253095767284608854219250482190002498930793759165995116203845860624126209485230173933243802278170762375961817240557921994844952043685526710052389440641463502803625463447610565082544219416999725652744169976164862884813529705456012305213596986325438107164318707529656374790839560249073956317354627011868432662637554888679415684005978748160058460579022495602429141637157835445760197191322870831125013526671126438894926139724063779968222333898724194725586366562485118957462191219534548178667896012270121641958860962565128015441998406387284568472464169364931656286776637523870401483533079946376151811147012472800199173704617870807905139714093200588862585081997150137789651663760333479098233998134987623769102834294778093053723366489093334121189713281222296752752210788450565371583465548753719071444900412241069828684810341265650157635444746310101696785107442328803997407547049501322320422285731827366374723846282570522556497878771008328580954541400240882809710037091814410090735571039703343520792571371565629844182883829166444248319372996822337764117465230066565531377208083846450681006426757786353324020559359512501182284838484183923242921760866137093689593375826824322361914640722094685052713291029446499828518950533713004074083549437820545442927935686378172551728557419669804982295374650935068731368213027914094190444306828634142939745384616193240809636023040068450050028306324114317852794083284757008697328058744009470639840484103571668084403092116843252961464780668406617732792349885133450769553923678366781029854741359268508403290346128013189769257988997468531961987598997744719055354362719460485536104614383087587063928853851909030669900137830412714377686596241550979978623886491278177420204347591391162507985716455984072783546530927390451209583707109394127085186799777794768351690558958502130746779040859959112880508772877157820201380349736051759961946772507742453211654510652949399530881884726433294890911395501261284907144657001399413423992721625109411310599557393133981158022184548177474149958457649872330850437625953479076391187300684259028863010254245961880495457632196871402268166164601508680998029481226457577744644078625289531415592474399515650786307756081132082409070685074570960781320029696823512015993385602708220455998020208027766897649443872654456881401158550588547376762714125410541491886455205615151213259070809288716129417229159372393146426347617855525888975088278876255352309495607140054494793940425262818924030401824543641549912832233854455262166130746842340579280060778541977713360200327515192600619096343829364278617146419024875455404071069931834539192636134221887983753043937013221652098567025935539838284493106854929415022259878206243794183668148104231354887410327926803746047788166769370391812053869858643647789657167018996250734414536938002433293873335356338037884413703960741230943075750250118989628921469726194793741132200959118711807451556683958268843431774900696193739881719282489808209268000159248512775813632479963540472519093678458184808407032787951353399887155091466541577467197186074340759803223799411979722302845114774081110072420538488118578807133414467905820866376657897992819077451482216078442248336566370647776742376360793674180362816908972696759522000808832224367134051180962223744716273647577789457979431852262324105843919014105031027097785169086739387254170814442162114713468928769343859135597683332262069018780916111475296892903204248360064879208575105012959716270798747376584858103455518311144468400404481107955230898968840877261843205134492779851155383227529958405477689130918467063553347780087945776147820217714855246961849686562575427068534724198023922564532428233570747717999447440081434305430179120951312878560451236198935745160954966442395644703642587968746376650580729672131598660588292728439132072884030126810551743950355713457198744666670069117067890832344432477447842382290256047649487511164407117475705420748027203111807703186882783195627224442103699034533557875592284489164113799461389094811184727885945697840850525967561636962486887987347158261564524466055026996814980680667572331475439654695695709895969382288079239745787594664574993707645361719435118580847141549417387511935481144559283436875358671910608328455720793957210962625000592539872866935426153422162074954734359796189438368783340744884957721432710851512489788711802767606256942493537997166281125202991396011426154001944499328265590408696908070515060927580417984560451137097345999950622332350728047244070501851954366820193492792803512398907877171874918068376634665066120872304325358295197625028176008137298903564225877128841665110341262397379846270857491514813468505095715515321516943295485833707396093205155633354640872748709763544319018002174424862620872223228461862212447011453891455466369455914539195172938408859813247267228709284016778165075634694159528950383831266658093551250632598837652642049940706086719892302100905572636953079989293745529886314363628270832609993913316313809377883944773978734419085126894625147211837164821354610707527909711108430434282096459009769358576785974318424860709647926335895700454574696001719811411792698603038612362389952831183727295913250013784171354321336839113590106696523937728247573939259631244368907301907624131690335681918506669901218428347198761232792339613643491933407171485536731772252409238955497107718832185771754560656526333585493305102652695890397389898736620886554894672200914609514500680409135244259068164668137222145912598556978976899101441561419660634845781327228701980499025940715797782443285814253023157241202886065704251608092736325459523743242347124146337951395765147322555910521198039559646138967449645593948844232714147775353390112309420184910001034973540045652374861720796314246779473852668497175219085738561525804163348072113028905473849988111868919182672840467285363729207736819093462898012243677937856835537320974146455550431541854031845050129052142974377917906930322125754746371922350888353749908980366200376971932057291080606082300697829661644752604064407780766306083457799436632683128096034763761782840762758837675900080406501049392698211377159057196928109220540493253799603946616142280126721531116793198239310037846561436164779686709562196504338665518919681589777064980101393718058586347984516695668611712426683237824897732819422538421925576561898728853946656415482847843214303351835734310801034900121062425986992760006105886515610142322136221204708811418585067256769182064468143976717044403481193460258501350661557099883101791077336224338981085106023375403460020541185677972341595611996580982094232426565033798390770412202685894394220874997028370420618555824352720077430569961708915353825124822918451551433057915825901101963667912696183918396381827093646022825320815251592293789219938885646642416541705336679677676278075245457236855015074176745835908746106709546876731784210142104364300213350939217677224045999690007313736547155253906748093397492208311395907733267244116140226446009139958481390037429360387311128797787222377910100352094737936946011650819010951174723687154107176105229380796852163895255381933649325889152505676550621747374396251955005542575551309388930119665450636179953550502470834112669264451368140606259054237807638690594637258645021120807911675380425448327298655906133239531176632604472625832123885232435405922026743716444510822621312557109212743180610094303789378430584623504028459506606482933827181561434764679862465813838234053798799488304061920227784092019940406455342962015728998235825047252493853519937758904909602930962819368657227595438079088366532508157719942074660906415324857660685886259121841534782340205613127186039364735679886037443698069242974482093712617254554462628354420814357411920605030258038435780594136582979440915835566400999803171800789443026091687525132739416787796171921969435308988659047206238621958909795504283504841282038276146416933754640818800940189042338793503759306066108773921039019448733026844387671427980032285166426308324948485401726377838309833283048479478169450138705303522308510512598079621893233373662809254490318242860365888921531765124667285277748883130258024892372378689450078266662888242126084980976338642273628206462649213067302721498796784645187569532970084986313198886717671998620731966468376935435707498164652727144150970800149009359809693858044105748038576497663691148639246031514200302317573283667573675844947868341216054313169514552633476485061600047380063555312611659739525127116304677895607627289722729552055517253944312203078110194980677206469197139594119240371451451486686814422372123360162750071404439839246928992626519477109829920729675027072234947218093509688709851001962064220439384870804368113426091932668066675680700063029681206235269497466782410424005162845332690625303668944775930370586153972922952244600357071830624008384173049737596384594958273795428326827123863284835916325623884801795100728659247874032433149040739879223722812115357784227830451079616777467804226564059204623180810625365175291062463670512195400591893961347109617797904331145967483678214490047991278677135740838706653198672569373203421863287797344847681614856629697970123390971476985206269431618970917455319382989545622587431980627590352089706100298067639496525278374306870598533266567150896269855369270066572918484418950704958488066644435775841739847619323107112652397314065393157824768921011636118129759142570226022223451058630895871317601789972012099865946347115084286763357064554200510277234285339736892643453078971960399209778898722720770235996428127023922486208848159645034496947261363058522932416322286126475522638255928718034326352346521677822927612997861867486934652927514674044067479070602843637431774706058583114800758684600998789220303714712493130323885611463101358737233447528385248823047805194302732490341597286194300942744131877857833194794207435352306758991022442263316849170233668881543214974153136257288648930614935170296796646679684541853671462439774229038547935453355811386878169372258766970070181290855657341656480445145597101135467972467425938727307237280280592749705822586899533173367279397620040953917235536894781932010792207634227272236358535883120845870125797504498300937841035513699639464434162403011741112655169789120071708590697664888872280305849438181730938333888006736330623928817322379604760694444555306795282510535672324464993085044137448670866799637069777078111068372966871707096653097660820393832218046642015435700766650235423802694767425252727001279028799084467220848307550612582270416640529959091136807973062128780950981427294724878943717625881308723859942026450645248207288056285398941372253851805076214099256353944143580159627232703001707791792072725165630960249675445308091508057742325326147360705221302483799702692451772395111793174876941506504094874946456762717931232115216380325200167610925215232686472563496208103295154902476558403094534005852381014996275763707584093522823621991077924097507599871110778820424454214127436551417779284787692545022915934463260086006118330199844490593544152680666908150794578273849026620150963177068410156780137309481005876666239845178519715476431730536793403767201298100695021896752214450246769865645097187199463621751720329914210992185019763338128099471876015850468431408967187612680201441220359985993615324187680246574237974603269907950012668656146628339743642327170396342013348678354662821500641396783006518334535061933136233725062471960748469032485644303420699631219791102455308886843227052917303678025026254378494479848349811335651241033155530402139765814002595364642841205016759600461058421091608268280400668419127299739014095000651164798132399260941119992639366372806422953672265974140811348554052800367933029148917554400078518052977949529743210107321612135021201991351327784876712635609475562712081506214450228408983107770156065815203873868894112546439036101095425525523737288511011243281437930294907049962775605721490013055882383857911712806207976558223751531178104526267053499923421934221009725712032597618578657154969047698845699289173297739935715203471140234668480287012066642773914841746039013041963735666991704248323852724625573601716478392408343337014905796926523853545154124241661059657214381153964135808153602218080011355619584737061918010768675863487727289354033003700662580205328905548432827057821771875179676494747325595696378827176376260010334753099970115038947195832666068586840237959250924119552842180250194911021303986975475832193556277868902514835199747599144581053776637012703441175826457641635593629303040901124358180320259516364349427613622654028506620518865463787894435853460678157922868492290214488613888222588020075033849796057111175118115223979683296082166428259506984640149594649179103274535872657650005617626247564938756099862125356308381891306791196652181370640189887208423112389459524378446543444795305542592837829436357203666100322696995207830817370974739323231614750518852994754196309312555330750170922223121329258074998022354432207313481869134308493625578907097695275833592510510400973971991928603957917721588622689596484701869633784477896941132755397143479016653752445564166250822794746371937872187666105496678300979083445865067554484389264869782326895285305821400301240441177955798924046370629023936837751525195762368674444296940971958705471826998900666869460028680370496526171558479483284148733342185413491145808698278161978165469708030976678411759692572920659551910122284926153690197356860882690884997233551743621682085672883672096191988758288401975997498122482520780668072723909758972364828601720208342209501006227881436690967570760621391154409828369430517431551627947438094058398806958153732556875559424512758012634011833254719280595199785025062136501491506745858664680068722184908880741185239627294895110786933197350449797145405665843446616232125247389620611480984836836440053058437708323234520227273280609446179273400188473453657285273770575762722819764112064326478678381712393634855340114207926483245136743060248159631680128558030894311131265621110980721013027466790348339592485520157125188197034530093923478081299853354418011390364015225845774594992397681771461500895229131386288121296739693087679578337053873368882737251187107982719187898869522993004290142713887348683542423018370549094179643765407730084463214582984366032742650517315674585093059346634834814623268614830471190442529672516708994227960286014218591096865735079658938400991209841668645870309763464282951773108936000720180509485457164411760032376664080825000187203017175654095800188865600596824341017622509874297013322232171236024040781485950832738406389022113890302525857878267387162702531209616930514642173978138452162912844977326752263493469221377332298899309058049544207495336138481666919032599834927540716753834367157302710090153463757903125283735837293526152522302406459677949899781889008799919326672204612049269445629557117953655911216667636380458032079738701476007873297413884963016292334928225622087579233564067111827472752476552716598809364543962318781413665858493675920868084662038853332519043411919163046566409155631630765823446820438958157283281289371160678893863554872876154857830883613691310909636223299181770529423459938683787050659897923151221990751073385299446878979914026289688754824407625978338324521389737116067155860630102457276386711782109948531354425287075176847057083322490210188954440375285536892279568936097859073530222975162420064628825642868405704990698265005654321580251935985274867482214800492317467786021427693602435021464379970486687652352085529461847994380564251775258276709951552031981503819902648112881258086727595538378510243597257358262077507379606926126506276680081186928143548245124716138778817562674136742464299109961683794482475947375562857218870242870682531944231151184962491650393371708407257173845713479808656057422735364240614351351778930876196255941662434063960593767060956226288011638620867004933469844743351671472617230993869404128054787784441105521831729554447934924628065567827813830524013666555188942592900218326125233843176767806373717533077753829793218844044536060404951192712526219800123383917074671293235187325820605770033146467249587211816413022814541483985198905591050611198442873072224643324147805728029308924652597232529015950577155263070104774347067302573629025230029473393377762542212286457242125338987122557287723976612130553138812503801324341922808570132905147776665060178363896485102295293444674074506258555656829122327817550864462085168386720187895526289767897573158891382673321931046486864108170786979943875720934028617228369712561584093482271034909596052416674276114128919144271027232417051079059753052373653233900700429892121561556992785999706804659486581742561879518955116902916015727692276968015459929911115414046392591538855138981691345532748263198008655696606900494725025779563320911195024546285791898406322621679916854585306047504725219030531484060666837738270156352801639325482669334261062362018180373974707097969873000821606736739909883480213705508253450797507223954805191919451959041437117784467058222747207606680006921054978150246167937191119200689731442644484733905155063485020956067034484564248919217013593200626719629722503921097546419805579965449653842076842248074725195056588112999604742245211257648279385985274284064681439304537871584108520892423277580354926935101196942116697753990194622672780955746485334762355922710781676918793323304357785274691587364338606035075178244729660782540633135624127014444371148083711656761749890844336850736445610912771867024261606725980347685556116699687314217072412004394635909624525632304669216618666813751320318227041793729576426843000910446188119200176511320974071200357571665908419624836972481327259620818711873968732180051353474634920852006646015122229084186115253359738048150091423328081556469543940066502288070633301616864732329717674204799061458362293295937444665378450722163429328872789434663854634436981211594903537193555575262995929497046456469604115795616183204000260425060233459434493447036259014701003967355275516663191063618815847678943323022527805446316921135178728741184633869189847881977676293692850044263991362079696237495730912495693904884412375170533681005460535463837797864301141681774165910239437188127801804620408436909067158875030820761233282192874814176236323567054119340058843757015253379931839748978433203273421664563283341576164061491169863006800478734347641541349163877438502923645893401018475787611109531232517162688552931520976971371902415814581111072636381148621330341697549514696666203144535341006358706015922163523874999312038812158658168582873534729117525673881164458053873096475114983771515066501782956549336295446446810828251051567120266880384635748575910938071794788905859495321575345092462896416004465684439368838154627496650494351250771733554488096392673816321442820267671886856265754247993633644693090380635081868481944982331194176113145540466758686401055698059972651471966242725204262553869792495744572290638212523136626026044240926149626932778550554436132087762960108539108690378774647794156170814955143236186390731921800819129469285684968112720851972440675908860640001516810726762551509361933533257715335856547927856154569058382981425502037056577871388486461765730047155871547904007750671169825035798135447757309081058298157711158762877384012267588664515298022683794397595170827473944810635408177481353917056294608527236247247910365319278164011957574807100639143675261041955458793793817693450291411221017903244498418808383103533263939044558725427016508347856497037762030784948238488457323414966448111119561393341799374415305199887093831178723437406664847300777162792496758815183038377912831892746280558391373923349161876433139484636992744826237776428943394869896457851255331778540118241394814113732633918896600450459881448503520747210446904311899679467097227279421523528019792028832651551085092500022532529435608096703035418082156071429044231919166092263070949397762742012936621581201597298860155036423319139662253229305096549760577316756822069157280383204852494367488234189285321660433285170017325790250928919462068455685066455467409345586394955031608593538020336303945661729928210748955783778587977360878176102767044126356567933828979890028065115988505529930282469493156126560611057253636075750327682079658573797980581159022812820159797108565123262030746758987003340837918753868331196196922598671443972399999423145634777799911705355912477449617434381802039133180755020849392140244541620836762785084114798141437469772697228534166473405090055179929464936755686994511332105854522203948377727612967947213904092716180509685218679165193176320711355418540059032622936572570238196144156480879811195049924399950373121586669479284678961621277738287212574762037062389525640632321445844122552124744321608707430361248866897278094331574254774886001309179398972657632790633102597039433341319277994698743145720455142139814134102279451524511262317038424148694528279543731231007724489046309390403682871894800069186584557511575645432242640045209706892815381557961467764281689238665815304615636584197990844122495154804917189016992963626069748154424998712037928829164767849029129548870002416499878924943710019958248677487336741030295183851786790850422531540298442858680785969773795288668935763103626251024078525836372716514268555264159354951353975021844515760799560878170176188837965502147327377303517715798047799975955380793904588556394126626365661694142122848882000542786080297611923560248086354955873048741886721238161101648332731956565170849633301495666577841686799918104844293443616309933078465765695966215899568945589777976583847718483530850784936224278886186324806767230217328157162524063451229835595948782311506234221408886497747606763494263001386335894458500296513143217634437614427027720950279913875041260955176849328136400429700702688110732605354726386802338029839976195330937449319812905300193806637610244657251678819003467876440835940934165434812537769246281420957294557907348644564557090908065831293788924097335818139970293743308592139173066670069309945555843918257371912856961980481350781437380325792744430503065739701226407297204766639281701406902063129518550134260150908808118805541647080081879290083903421172183444593678535422034925845686640697506774691081147250425810856119416977438359098995586398862184454976788081626055523585023645370795302407745390621193841058600573609239451283460990996065500333885114946084275257281763766203568981432626700707392505931260477518091001253495815123555858216910324695619202493794322702975830201939798996884406157140317416494458516355708760004056943794492749392754632842400429220113416011775073375949041635726960544499954794333954676911550250624987083408495934173726774626580785936503509384742504590690116193682353929365378516238372762225242732469839331478685394507284173379362599845661949666329671136885110396135771648320095006904462857742957493296760502392485258855094095399823785632356621051845669893731215009766455114993887496653619133956140826639288029024116406508890284178134742452104867410301019330532441234010318210605867960799980345164554126118114671880684973670074811158050541296350844405489467926355845732929659074224183392149017680146585143535412320584989627629492529994630311323186267864477275907641751010018963891299616965561371810217630766045965732927301862891188937295771260621193514273231200388614749799414619727326585598548762759333711201643769256027478121461307548319511614086143764673422181411596761048660458490712173959897848092638066248391080027423746299770116655440644307582392846133439919823802235292243791514272121578650113635391545712305423523936416916462114360110197850377086810161681065445985307658329626366312579014004978946647701133556725169189734927897832460112153733069758683107162271556893343317144810747698475104480247533691702843182387751215390568815915514522101791697473138870648269685139863463618839014619426238322631573863856136809115184575849914043687246382472017076895601598472665670345489213450262401305969274485163846131187188911196928220114453457466614171310059971446622393329692681776776996111734945198926369498917813628177594259128908256442734128381140759467605626555355391780958974452965872905475810400260080234745237269135468631931198918173473155460877294090834327718974655849735666640117046668097881334091653486029407933225114396908581726694256048307507620002549140394658482604736349096476240488587624905311758117321225859769950666222693399825700142387228447651895278430223982396050331775673223035866600517971196720900264604691910108209976792762842159219687155679690871310525277228755699166065268854123638285922147360946564424005367431885633784257490538133259102102989597384790189353992616655819289277388865917767074203613936638825672969077257959853234606713940396626368922117526701074316213947187438376979271361443615809249275307513930556903279264808133528842314591213959039224857544150603144113312707105839924578416918351443230071111356010504345608308338680004040541500690268867102744058772870671451464722673731999794638269361300952269459358608406977959714663885624544936467231031741159156310704104800549799565714281811105704302720981763848677514084732692329933946374386177360703047241866525453686978054439873343508229534923543044281960056322179313397451149124430020550363377235448076472333793715519665496418638731232155453004268147693065702175523211605993409513933478354193626134633204170566878847278354940251826480799696053184604358294283229286158841000571490461878950581701835389789330106739730008367924480438636857519904367733210675043806983697838337637750235753622805841383982928602276014840606997945970586696936805275517149548819084912589884218482672531457828905743229233885996173500397089774342322210040872295492317769731830306426321994341934992318662453544089111817445746534323806265241654780500088415466660792914011693882781214903028741739092984901238899640677448303754848750738610113083076226152030254804180643517248050500275314161745447896785836484026150915273116917077823033469274733294361301982465894718637238265217971779719954491897495547788648103468667124950081089036759169915660009679677576914299740445675557783236460483544166128027867708519652207484757638553560251214037565964494639160986286569120548657487601192881038871095256734558260403762216111856334756770273022218453406743129367736257841272004964288470938990476546568348000801816091479564997314392167337348728301238258455085835840295709271361945118491559149767031285022732254298127446441035900118717225464325738793752214363372659249121286602118999954671330258796492992045654650980464542740606410042199044474508089185270492889007149287492242951634386994906677653633601657471175861895402090892953100835873371104406978530422209223297502514715776965829420330311033348814953251241305440590714073426393362716599649427058210081490044705327348135056314369329627598389141202220720671086760787093601961285691999630827292930557982148476789707272532289641161283288691584315428359179188761149977442365101558941152964923760711935355634017301792135849599077057222908199080477944330046606285024188814561979172183233625319369431536544207042434202052789419904351982452756024302291880024713477926848735986708225463262449686863600666565450645288410065083205536731500980847786510684553587090761847291753556154049076999199331082946172668195911366058821423862365658205418196787822817245910869413839143187176181573105022880832260874102818198610921411148963928642039819804475228297396523890853858737629484783956733505407240625062287393719697101716000595620173544230903580162902099784316002943878447062510373867932730483539358493337849618600199727992100752486075720754106456095276159222502912241426669430556768424048956747905354816109632104077479738404928252778246406014777728224995166548147793721612818869995219541613278854446917701199762076910193849611704602522573250580600151169043595258906085623980129887285926577424118602723747685164573086290605350414551278527131500216741642093664784250583353009415137932677934463238088289893709721518610039003859388879013699128886262349927305623049535226918915388570034949076860683044978631892877266370976251653392152677837553291491144096178006865714677185320622021365820632034309196833973643674012743599395921446258759050137211405266921977409900594945001944241001007312523745418827381414806485477012626574539063174036859475668088269774191883719465288057177286252108582216707744934503554893620603757090218912695977990470736467495509912233773092961531605852694687144656563463844308687884561150429534768599885647359678300285946798929408228147010164318116557596289881770805372117219705587112829464128253702171221790940442527885619827879494355744767308917859489986498885413256060884810312549718600910302455080909525736160807007932193691216065020665305000461340679084643083911963318755077842437516020978036567785077625411747121392698273711375397893252131029727777730988858291219176414562823340218968553810260686012613270415741424434083685201977857733241232067903806127337489589148546092711738619423669778580808746586265920333337165812930826903495428909817187029343629099648569133306987528011330659108398228041895332492743229325746451121152183955238211131036730056738471206444095078836680425507998304824286879082510530786052644676604349030402172571300173080262890541613809986512758453168018782981437157487506228313484640598676476648983967450632694817012503447535092476858078332166460301829177120489790113883115149693298517094784363088920929061487705706437723517700992776833937000121874609886124253375454343877079427990602786468768779249786969834447313755447797038561373223669406273035091202636047366199031334537021619445748734100419452725051246797754976545546614344738347946153203529894218859000338018076621662853970563895746659955463847910155570600436587941661260051487638553317677184513675782430095020067289060417210266816612020417057739987257298658699966213848868204892625655604008990227112693550993754738531885344760160687800882421773159679082195700967144160094663774504563393769793339781282997534382132171880473742407718339830247405886299297240743318365403963292605172986303733494911760054911700066662032511351637970147044778824129929795458379007463618699166295472247588788246364796518080813365941372042443102343051780863447948837804762383364404635988277297891330994297503011353722257357062533740005733333068881085809775233683300645835392354197360879110072295410549304944960927334187790874579549661660164364136566505753130053052397806256573784908974311515121166607195955411179844440929284013178279340028013694582448934746786153181727693962984795603113229051308217140114933716702964044696442128873531095259231132353227160599291586919474606211162909363071928035998131994807951291995202732425039340361670870426236075401627728028500866434677358950990426153134354901721935070038419707482272958487151535463597771158450764192146060793823014282318745515177898959485584696308946241835222815031083879393013072106452365122608188679603286343407880357139928058187351163966172611446374901511479731276910254635994836364334592316011431402060290577741037829998409080224939900832476067950977348875744935639513407647181598452042789450249306098505646790574473563915705115035843921380333874713346960410748909719316750802471636258983560031559761082105863936673401797194729305445395205266327677642291613283050778988040273340324370923293839388800551381154695005556256279849592969627153157391016857469987795256290386240681545496071455325520087991177466169716201826225037300240281889869583433379153301473508056355198614217462266003821287070098695663231917212396153615301728065488960467911836204929051467977252229678183687468779219488741039711921826613447253742639763416491752275088902900677465439503225411285706558311669118957419373198101123156475633217547930394146835010336185317864440954163438080193680259838937693552296279028574543371920839419677254308900187471296964382696805214947188087468584649046760956038538247417825262918105413644338438255738220561827443476769656527246150576545907485562897710314905752882638786416457496048104505876565699050930719955823219678760365386273673336919220307151298007967393318026095104701660264110909229447449989070684311124974274253373442590962554168995948135502687948359990303689424568345726333340798440686914501590291825343988264127013188070213126104165724718509579744068320518345451212970373314293103755334973865386334170807438352130578137104151535470648377071641688233885390311194004319342196398190427006378397953422021209201742284513300963661698206124885022429091609753503720549225217895337574187610842938174759650011878280079782521899373430035301851233124640636545384186622486139103592403283436409169136884486668459990943051471086136570410444444680386995038361978248548757212558148086463631297058744059228119178857426489324838955158008531432294275154068570340758865831249068020989743507248787934420902831279960317148971316786609787703803431491455619322494921254980053977027346564563657769779806740035196878047872778870832560799580162153798122140811794374672361686728955288073548921335030630795502025305934713647339280073162261695518709078782929280242135139309592699627644213041778330518677638842277503979449557155978089297849866622790830054790506314241228726499283678544939423027653352872537470952399932937623151102748885950152515908793794996084076247632519919844174370250625577936697082277491600488488951508967997794541417839285611546504741843559985389384944604474325307959298480016320846721615381573866062317353172502207406698394720290813407760135565153581101665462808630627219993097909185375958417067779936553671821798623021849404314875972545597845377549146306595224215629656699355057573308834702617412807261916032241466824355256834941798698271416869234755908807503783712986807355851407279894031157242586171855157509255139815392552983035734399353355147307193309527501205705889659766156243539090237822626040219434583410088308224563472799946270283299214489260427016048397544048623286508698318747884390947638622192896746552871826597321520126770018542383827183712234688686076819910423572441652569525066355553239262042466760238698744056589028487938580335226796402576952178819952689913400628445089353609301590559485347962180139695131313705824712117504480653933568967731637574402629634117349207360171940257134311687802270685634990076375450937542618202211974981165869668449169384082805805712803448339788297866860892262674896369681496800208797287739882258379662660985924691177366328196934627183494010651415726710282623597045672435872059462532405796764315791468476292431038621883066321392631228786802201334974259015861135421070400733096517458131030869681405127506688562402560709760302863859187391020620010987573320911931844395439089746494009105043354729892234737911552807135650861162933871026704184837019673514939784328456556893240324759552685212283803004878133071491052120961702827537736397377395504722453708707652999589941673391333570991271429315673936418101016826729055041997539092575750379887588479220945896759148527005356443440856352527609560353750500895597264215120505649439352290040164704937936197095077326460559043781169288991881438931904837483296096637315913071610062778601495117740945838107789699758775251121403234862019425635182959009029885406914003417421085490773388858933685062885336633107144146429404148151050209018229709192287541013403297088306048577423912505897826662793471743064856143326048892990792195604995862260102632006389170861700352560310532321889680194724970824191935187288027987170994889674119020299209301665208544321830555436639019535495631053342305550808708540590515832650074412655551699318799598291171342593058566277214066034062143040845884789220144909264309362692920799395485521768893024036170592481720546675113587921953846734591210892052527146239946262422643504257031699369490258574362601849003331610061415036544855352518445181854963702167378097131644637247330124838775689086402955988762178171071799725957166237362102040890408165815630116006592912085619738141734025661375111129869223208710621331451921074300858817651105263703105063964248311972321329471486978204249378286679710182260796600314288632698425336020752102008631557876486505557257334362308005288212483726137981166222408774574911881695408990334110798989544634777110239702975264304621541068480191050585432359244722894602327585052424671780771634877282454868879769018210144112778185042638441736743941106677693033689354326632160915041783398106216717882636773349921641280375435874624223086090663220654599082813344127580860510130854082547240531858110962137755711059727023338840312275853294246301111294097857459320830610247552997990705811827952379340123524565110456299927384826078709232210241663368184732011341528225590139298909702956498077103754115736044264750536827840199976377756597247758234608076532847695337076713698449395654476589469983546990704862548575648516965948279977842424230516020580353976601133251998036038552646359975469735444509212187771875359305576378314706595003620985919238446011709070829126013303850228637847623289294860453436552589486294475129777083656462441849462982922019455818417984468114588447753304949129559393426334537432500004041068908459011877000642710063761651437492801713902142773358109490179246674399771956387616832029968432805348070114163280519256764097207528718363309959270880810536639773608118435842561316599224897691211776837168536617890377885503609854509471724154608603520225183591268066675201218991068443186281155022629293115522653124781139352324198690144143794222176776528403715641300605220155352288163174617399452144355080725327940554035604985125799290879543180154616271872101063842412549900245228599741278922977704215237317678593156403034029804042463224588809092624547114469811039492085731195983974307983372264342319652964218635283101129503325479394764082652145647760338377068942102998263716048804152218708875570225813954498520131077733634485639303121637995352887062711253987682200653969041558231591822120165944528323320508469661707568511576821684951330282332004503878660655885663713082244108914017030102205512749208905696443727006596373105887109676270182011607337518941293084985367338153729461834676397519285748200542213876412112988353803392450222935193402341684600295169801112641784555509222561100883428550006694822306913893232690221777876064766982027942968640182646222907697006748981038864791014173190637587266247856298027191010803209664206453059893811812094115601914671947896285097518609829272503735313305981668342159747232498076000495125932289323459941855217370619700922639216504542807527340746258074103343820123226225436419843905379633286928857354082596069976991287391789486625569592103818662270609353219846555464075527479949463604268058667661578292121495933349392971022158403709257589826578664793122831941296740763382915284435988149142768839588881926260585143763528059685792085100090861666674183940366236196768371379427002804396441726745400275287717713770050416412316110895528996327118021060246156856791210491569666409642338530354892661307910231854428010852391171843414762422858365528387266035099397903693630909687290583544449334021241991317266793686406377087264721003120503117112416988741068189923603811258812443777104665862671425622682532730486749815439764363472946680810630470031056984656888163638855108844305232819189915595289441412793663873557914260332777111031510446690245142984348432466126949827702821430381760454790861691627904718497536886631555314069224653875175940021588570355055666414101275274167511667770793005930946240672895021463638954300634538686562556433058535504811632791415097011017860200004567191959412048032814285080630744159388342295876644001578263665458049646194402519980942838128900660608313198815171319720371084217506233600212678699205468725622279225012853372741865803536192651826696524309167462370203994209926344612414778991328177143363483043467836246399047753333512575567042402427000092514926784618970609028581398301772196361763625770523106129507132790066056718421095402189514687273698409023307252748135183858772127481884717128877919151418214432342668159061465763893638168588221202015709590455145818634548667725077846051919493046430416970121778475935088670300823896808680466392384939819421046565698929108949196062621269341638790503412872346408967138300017632024404727670311552310030345888307852353338367787951658033888656865874366564693407152313171868947342740701085136501231564772023264642438208725920166481497576687350820928961504855457389363891327288514066299928458799705892954725474507058859228281120154382988658814114494964341685043979822251439986978514304600674987658203280060935537860996559934683924253564573687389180807117775698014501310805674917483199603958734731842279115675505819021926470182043434077297795524196962332337722245414876439744866329686429750814113451692954954597882542525451854218877701802114555738191809024336187439719306049844424875072056451075208855931838360275713986952655333068638570825382896419234020419161168869357678855116334624708511943998035578300556307969677184908792351586235072837311404383539960288574973358726579787514885336327009581531997008255462318401956493616572811988079241664177103034360442232830790027008490884418467563047608364058571734998126954863889635129898613543233147791164649025236704113711621324436149271224662427146695448247226624998785263413559137445121062838555871285964617425703510412790770492751457404791736445126984881172615365330627150759151602166327582162599831830632631250396922960528951395879710482037739710645216461500965252432601761831079167197315963683275094640094559859261408459278698413555906380412810631705255133017938144150674714837346984924125264208356905503296249537483575817371654361398187077412071520215633078119755519165058462340959142114068509276825500648108977662614580591893302300344180961354754443584147734092927419782897387808790732744065880209250406896629988586242633585805651993782309774729369085696714654053138749436843638945660439373703382760770189062805667916530517745767927304662607604154815982092468859749546934249953399129111865863809410477928622342610852415077260370217813819290088606385540524802402244442552855363928679419311316184079046605609142900509834854151555922290043166405096089515751016516170894224204994427529040893303235550575345496146097271675304597483808521299617059333829665890176589485844693626930407988220011421212680993776171576682637701222096459570603434167342710621728631229026679961352081444660313386435458164025751272326333443317947604329220475400181794695479710565449494732584885365770308652587416256258674045806753706507546115085673297641310645679635698758093193959233547797431736456100440252386831702793468609606363389974379860763364481283082690757594936333248935176744687354550511324148536799442572076486714917879942944016743390632028140354459278236815040786383463685438551913200757782697662752302734199848815660294190392482031472046314794044365931498273824114585177245158025474985170662576931644478124457034835438253310939995751358722436449118791908597787570793967920649443494305823760091446346995582183975598856826687803672941099824870102779377304093815660528186903594485719119802357471113202192669913484315210026134987701136424249749754628411034930795790472760180557313064203222221776341296291198927718368584273052760299096359148393507512688400997045060177511832909640084901506213987758914252022669793109688916368659838662302221308108098632819571703362941416332218112501310972323492237863282069878498154500441946017413350040035446653846385913021911326869720109624973570579515548446729067484141449699147899019437499049538440377870014705815690226274708035957571757043614410679132573686090868110934804985507536077198613125347721039234373111016911305942739240182368032562555864074453903783559236929841088493371978344163665417688110290000658447361524126107481403502776898749986719275993992785388246802161030488694681407470696469429631199635504285346605296379842468322272017319898522213355253006989164826440344048163000675556852142439713323245851847150828815012085719734055548086905563977028476342623484861825497749738239773714852265723250453672816777078502071798609414168704821372383913049881937489398638813643834682973782810867309933704717137433231289495236082656234385906459019477619043543130100740740852481774191945059706034784893844835582080166604900609060743147625623279037101198961172554323827886456963309867058735013014098106083416489621396999574007792411123047191535121746089116684559447197126064701933914923221106307275656151482371002715486491316880675294451276178146790322124642000329508856517421684062458851689975670664056830223852340313650874632063657240957063685786911609304801815246909109149119097519910833983965185673468261023916204784525207860838790324028751359206341119409067148287357405779025209471451960889783116548388502990970042123956878438354274570773402672139863958119077202841181691836039263946725565265296704875204051127893186331065401121179935718235055158902831234581316803513649470318793882200526812514322601310950051517494519473480823724360437531996983829713133017599133711427331402898617008237375784659677154368339878202015830274157165194899733741894786671693277546613097561183950632146259253580955335013478986447508350427227705197771041321798813598831091958261096529454329553438420182063287326091089169178655110959797892406698106841435696498174263382982566028274475508659592407995888143220079305057240574189922072423150252498108301916187233557200218171180438406054748522043469282877435472285820472489900007166181657211617369304870899431310000744470783959797325645744823296421199121276998586723157933240156840624041529884622325366574611249452808795407390016284717867472531785310774992994134741742034877878708266026866571126728088424983573167448686225448708026120634254444638672538569549438398646538024735769103530476476699147129143294525551420581206941544604989611731684149757044076784047173594815904080940262432558130251048850638788958733371218859433846034171535128862809630868065624133025474013857582897383352863500541907256536356744112508647921393744414921152418458538625271844173851010447111301622909046892384109970226017547461715139962512243742150283747418740922432232920545585158405241024346897906894949507906344886082883290689850488889676162090753037960578621788110028631585407623289011605278034051856675565849929152750363936261334858545295352655399144343665396660218439340520035512386243037164982112606018875134434443632005827881794849987766288616375222793836134760991102194385268392504486362043246759965623916531588918526663629123900432284935646215839352938172604315837308300851499711987185645199430029215328221756957425709768293788100567691417105379662355924269934457328016429548185955791218534296015774500061967111612668264108706656432762065235773996209578081041479759846530472746398805917223375753369361033295846204014935356329173998045411029434308085644849876933271942891607847382157633723631663449752114804443099521412928271475508896492592878042437712412714066050578907406264320570813340223397744660834380123970717493054771425860904046651904202179337395429884411726259018572430127329385107722918434229326152927317594734409355315591253082910300426269037220296464917994109634924166637585645689263001714120519678467708875286085167049403731794905115284064089922605155185597504606749061523149463944149242374211044593886364729630370856479005305001915332989466416425596752509699507949314586468085576798346579393876500138462701804508085323687646676354472339363296962140921012673927023389552048018917042886188755174960729176866635785421054974108209988240434718162527420319173362232518065861847614497889948697266801841875487694503820669243135192677596792173972344418826987603877084973057367938538083661509850755804549303610822725820424129822011555936700018442160619433615984138315734601695293202270171824900370558236747930270893678031883091865840127828077575588091534404533902301411991738896664780924156374712716163098306884757038451274171057943297988386299483722017830520724480926313496372252912866490389726832045435394061711682004240493999052413284959027771212507074020905116587595665181298034387782438111321046169183224776619975603047241154338888578660955739644357208516859419026253394750426212708003816769832569786911730847962723922122498249193023531494697805805907099766905068790004587401142498778718913582562676273437026001265922326616159489568149525380516776785085808520281078386411688796203802888366494674843577711455709831979982402216212104095135903176916570784000733051689089018889021519684340443136172892600477569469209582858291764652608423679303921231319751628042664462499638904209994809998936824263524093727285091650831239901228856924652698903196922620214884218102905531967375092152749966607274907379765484233391025239059913504928602502298509754023238724412522339859711175041554380497368207779397894523542017143862809771673834096732415055708371692568351379784394472423996973713724186332299774207952424149767142527854678065145744277459718081003959841588840583578009739723913935115602891580940267555453098599804519236711736996872109193182968915083255014165568270180824935250589820938426094953889626304001213040417290561722972753666338179089403483246165759648097896116531797871099874018763056010046917987024522647881260109060833473822001648448381262614953356648096248597454712278100207444906763578040661295297355292268191920112939669450417362705252624718823524574780507585717215168947622483374442626912926249768919078115411469205275953649748166022217391606559428757494578761864775716020838427683946149160780043079599085438285664271728531713951567487227073048609901740831532153972140594588520875504365992281745410236140642903149404942138831675736351120179218262334268070128397437194629499042556015744137610293618787135464004801452314352763129962856795765082448364665510785101520665855880481393686109043583146421920627146030041080964124955814633070359834507499945810236106013109247681685831815435987387184067537025693404479783382330179722612858389284702826877221825392230984826212651060847424814809519794635280821125726823596143276189939320251419465949329664025637443003782792912888702770233522086138518934089301200174828100839470536726007397689380846795147992590873427857327608766969560667357673728330889822439461976412650604406550508101365359785748314312197526865458321658157296062055640691262453061773708094836693693885924892236564396629008237699836206069972511794449540463366854970869734175461489684127147063395496488680191313758309077396802553862015735707080353641603274775223409442912628894607458221435104024921592019364504102358886994775723384301139204066142034757673902722595364131691818287575739751738617845234837780061164098328390792669083401632072647301787363859380676189733042065659206534331210292293291983386451745960797807835734914629693618874105678293528245068508431644191294932208648160366848004911558956909472635796064089394411115683816646650088665814108733720416255980095140897140208335655561738373179729337566641634481355870912116182661631407394158261433872499682739605195238581125499161831704146645986449120658639904897303617628796881230737520411685301650059313645939873793579594384145762238120586312768500712055147035862129286795649443597452459243620902455079199084802724605707034157079473236675337189671389450552353307206564999979902140944428273113245725440506995689374894674332196639937970720360736255328253149400490333515229192601396692715876053279513868016390282124803324530135139352887825345112695610559501343649788410446394824208161908918171692632293831214044287950355646115731953346901183827799495233421462722938983107356186323257694474503853010532782817050547921279397364430532342627320469523082270943001235351321799324582088468184887361225209921978420860860304737710204764500382552824400124622669591830174797790080760619774156481933393041580536369634975925385559798462467450005303538860052248384516014450111913198655312506824314494490852768048827310093590187022082538124561988534064279915043614322777287471527304921271564852088474989827260947085573507070158669341713375142071178880668251086235020426976293013916868248446058679128135083958442774226424802427538449504689413696193972536449036819702761281834165223623556703105357761333866887608244616553499153747562280196221632521141756782696243112293056412483904043420668901048586929814496046907609494273358454682408855340337238510181401580947473160937946119570130462184509026008529144067837697414934111842860173762277525997840638536435277976666997018034816895019335183863662490836660411663029956161888816802636223776759980377286474252413958527958935862466520502129491274454177279714409496043610392205950018142293593099833077897561790894288709912428271553772032675289560009918320915088273957919699661643020382133080142871727395796965916562350623121108373254380323399924663574886819583535437893640032101559294849811983135192338686717851790849808464477395736272292213736095655961000150645955568692423506751965931013244550755022406721975244783704382642119322075881996207951396797935446998460699986133211936518360143905515852720363391885877736429020873341136293043658189819853348611168965934701979571626949323406159176612390473180102943051831070458522018875121942248177261597676203468731805320049818555108985412837782553058040950566889956126951094198344046942015103953759899602406796674532377617841970821996555051835185963201475343576781333520893738484345555206762812907933285062936158781051014543668095542575210218305379572402407756471910014971187901791875004554273954906335043050223904021724922362162232648104628714603760829797347616980425109389460097576944737965238936809479183814499791193152064314726347924551030289732709296681590698766197178223395879317560121687383403850510796064075299824214455710887802908265107432535861370412517597144130869961288960499706434467001371045525782368337858467364772088956667399834661933352540954587995455489167673236874235554842362145253399551349108722503153238588097307222086626657306296080746421869027590986567714318229095896162540374418112945824827546144902553906389117853693657609697318617748223877576013567334891071871570906371064181075599736079637877906242553548927363458120592008602430679063619708892962926585700967166934001274658049070620369547561469087466165458922769044084579139669351091672486960044098034702894133640290946834063161535220639352033776643368584735150405265110921175643169750580664325695073464706655452970972784707928047119358291027598590682841312492014076513008116626617411775422082701083846101716818320722392645522942418722635480678084797554191958314531476300332772324159195603744735903594848400179860858092569744325439639956191569369371561076967814212754225685284944519623408790552954727857476589243199840482565680197096162822876595676402736359016396915643811482747793654094334580243829007331677175444297387337000963538141320076054229005720875751866903692349188013479208097884764771565459775583527757584876379732065213652737738562020244126486855530768101593233596789227232930209899532970629806694262307455970296594486847304947402283676101390120804572926820628189599920901569437158691637420493142919510516520894792136482414333787610634730099471377819511177654794878604693928860378285905376106660619608330391521953184489430267842754480428925570045850213096927214021666531098369843653758788060897867918136583641364571360614709194963116854344291697381869187618413971798937185379570241497310172507406245824001751824783553254567627451421283532321583132095318663806974607319387499804948481272679458298446569871827407867362683575257830453646720831358858363791693073685402489882647845429593131334451601443124359901411653778443705010432049368951893628339437280249640436761046075110744322851674103938788758032018189663173542427886709356108472560614905011310457838297601950065214900310591062079957118460530668715179375093902720115663147371115401603550944685182755108141543887454548535276910227142546364739519317348034027748744947667684110905774183551555667457563061951740145654166614379162207164326969076018665624561350646074827731835987909021591690265480501058994636397874345329568009586321480936502599917843311526148252488553874426452494248940824681306728331124838509427839307839089868809423102310968972782854910347741619370331566960232397208915361851935106338260354894855295815756220445651804760201777834725818667841436272015770556395844147873186208327809880894863886673310756511858738084604627776672181568949862756030159642326799137056306407962179458040096224971029061562012698656864046972317494027364780962143526928138903026041567674422721984915427664353076403672751274037771103612725387769656314347152074202442562159464817545099374961633389546049421256684463384610219641370957972646436287980739724888352083387324076113193089338026024338779286043674524903140463863735025359046185441840416501130875696602420329439874511973926384631913784503989289003586818201114536939956092052344897295917848334086860596161557779644953591381747662412198932782910260961738653351632693057602656541122996507632729860860495077746874927854826829338654975106889674518396257364522239755592568066439853534608459243273435914907762794899329085020473816989429874784846226357618311307833488421595834466112497223856854232719134557606908963833574173473299310496263155942048183856056067740681282110471241427743075456269771013533368885266433444675356480865918790867918312242359719088896835357493806367508089889826970061533379117002123188890794558653888230888812596745632633271228599452096572524466017422125459520486593990766359808649993430726226196080263270805676296505813830487204598021862339749004665778290219517412871949516501398339621513313439176214195981970317781323673465237910635000666615001020167759312335438632224958638259794229446079004401552822074069716314406918648873268269404131618778646755536192869729500204105674031882243517113927562397817815059933735672371092681752365899847016717013783065548394620007232362719500750250112128919386537130604201962166637996650907570309792619814158183310791825978345545622018420759131717454485717410544745559026028229272944442946176889520812122226450402322834097108034270126611177488802000930998528807074352085761838889708743116167606258648295690307434368633287795162478689928077279440262939155498651134841730389432350926404712771852103804294716232668785531788659379607605109849105751355059659421961498340795736087801908326212323938062251758967133484642930157337926597676009474385516852936886981441431015395427713086566401943353056124488978338074795797217525431881959359230563756675469534724476838229730516222721483399886814908346119371766227331475622989474560478230427377511441243937228092194964148489548831903038303490226180904311755803254961506247614059707786349201201996378927896356612745763981424533789247454488956080682030000966002031323271774649017508208781212792067236871465424208140116309319079459107735367579486678664209470375023534213996207383777715781368525953179190640641930625533425127966735391751259694772798878538878645314999450220026458265397458235375942544193189323544348305219318061805375383555895343940830928081270448541132111129535869967611766725228113554240484219844005487630566798254714735224358333020107852023781873550767730756070046133753248409953085138562781710530068619385345699161968065610455843841877450847165735494213712511558657845419057329316991343963706279623616617408917871805269595330686451174813828869542409714179266600077953240265308755293954296275678428098205711018775182665890458623041335306543693136823536198637543690212933338141001443686573631233647539988922808154659795269482904878177528267692171916104771540771303860467446067639406754978708493260636776616622050289413520468943793059460793564756467716222379573388040073079686488974675041343179446511471678490488156434681634412531595871298583612932595986716790719275024484349450240456346005845304018337523416607216417722363514680940237523899751793221460148308500405661876365707755370004103002557416263183179863737742298224113115997309861641936745159774527841344312262645347414949639522056387533815827606211624456617377675933865603773724837138199014202508058981982232337087073548267920155906385890117420285009192553268926808859618945423121038371453415806790848926567055450909333127309517651765168813985252844847962676854206140812629456697285096821168536710548929189544372707708932953407972743546734751629707320552200892785088786703739667383208408654899949454105961767120628896771106367096141770042919437502393435213839320475597360973062718204923635012814360574780487574105365437614029786759258615302421978467833368910896146728310394551781898789001872048753111059827275866174788199796662430211035318701295070755770709658345051917704636798596002373361017361826420177455900828120160356176476411486748472925170592382941464736513258268770847159744873730175607927863603316803809031227690506154516280490813781208843221956354570662818630899737669930393064735624363677340787717956933451253842118707095859522107738139541139051531107287788797191212084944524079724498458817936985949402727324207858053059070031980143892351572765957324139349904508540182128612623994507454981897980689733978335969336384678353578985454157558418898578348852356882594996360178776227870033137254304833244931660407823040128699757332977143673508313923943540228691177471625788855135574686453855775416225594669752261864949940250301727173880668247952792117952683050146419368709299328509437030719575981341396825726394156841680462042346242500688357338615674094135440768055232036447698507849362484863489557509712699455419119063183860293045314065308904245603882763719058964615655489507236802404283570233044401477794830222603143170457111444749837470129226104576201895324598835696113433187605489440878200930784999358840802241771985079878817993186744199277520470124696927664330370380560603353140021871166583710980953075731042957600924615016541837004325969479672463530046067163404470883328650638784884532574662032763405523968486477725961840438815567715220431561873642834593059500218156592389555427032729201707822976299780202227102403483860984892884998308538194422858206804513362061402286427453017169404695340330608932090046588025147860151114216794324557358669350051443232033715686616238211128349371350373152574988622311081968938364007063433913911052404468022874558799682260223940316841208283654690669662783223577815298933838928314083729330316919746822329804455746101122989951147732520757185707034737525868975688919908068239342431966810361556696903527494751881723309161311493332198101156948554829828715480646708873859228399340385728823891199385475324051636688213737278976351165107903212345326123113916779057070908547606413203814739481560828192460678105209857043794130627713935407510625754496194258200977786936221969828746280009953311811592597891121757869236245550449808295754838455751319534735223018803623736471402910177806496997270739831495612000971722715159313628279632299798791210500774156995772882042405163174789859374573483735485257918346186062114749163360337189870409337277094060373492790089159219749948463783666043020907878375014780037573729021398652505392956483293416640547864969522427818309207975258192847443574113324658950589585867639965668820642903266289348805646712888836244494129636699595897123263717837062557293354331043188214918865665474914618683148751651888430525781994992753846512857370407330799700366828207374097915208759718583477092340262057705049503903421903319877418919137097293815333361084961539369940248754439313736755691239491822077393000922944366759498865032140528761974769136755493691099122293501708129048754733004858119033310262752258789388178561725441121342502197014278295724852296113919338498153104148867696980495682429292378749786738597225641612655402995663062244920701228528294872182418343661262812914275147770691684080171684393293487053262327489607551092484065624731275467563289346860803984942026743285566639857851711959103904122055537389222572233511921950788109824967651174162484948001523723429469463140599205062452422469357077086825452507689806351051858311312196720107432966873683552836658361569165646324993925662618716212369066468563211211646830377133852666060232414525920917630056704300847513884078644725503165543411101578379264890511595380330625848078221131797080284948511523889009944051777538901958740045795580127574878405848139377545150201205291614786137727802782542420985891896879135164092392414149554913226505966350068461757744115531753613889096341573969604737462725133904483624126549416114708381838014110860652727125577272943512717803401365102113601732857842561014268975605207322286288374531054271516478418289905614628078908906041621335920564630988893764848420734790005495779594115849081954492962716198805253321156964364764895984360141155425016479414694485427349038380185103117542644252200137737394620903822253633320787223970013951402714688626625412859121804449383865530339251959861663760167921180760625319803055281566484021759656487131894217724228341592142311118189716351916309244174260792831556004355959965290577815812312118659049568463994231647823568038076110145491369086948874451316825797317341054296319589734953907421639118032729882891764424712744143049787726450445081111961779842513942785825809749206128161626161370489805287843252903965137568159967706467853114076532860090766327327014043889821714960420889828735911428441598936860868625241380437259401867941613436734239504268362997720835650860598129672175701615543292656026198659854304101209487079035082667128202996096376342114934970182665564046512161184624778260261714878033620353656300291060734205763075400062480298803412190769226206161954397608154765312809813508181075593788231898890329601125108041027494340326619411677704588458338359904263899472845991741177160081533717872775908611864475795489273055075477024287371882111714157096919259882038208796623047818494925829947769162231407895605084368482022827914404772497459311614160317976927559390027934854905475396465369446411942130241027679679593402759554596886098770989839710650024828920348429410119232179529811965976349812814775121231884480187363586911082390629338025345123059907164171519979489847184122338099931118136422624055938545696132162501308051088782044515907511133955732144681650229606642716856769915217485478152120519211727571361766668974829758115771324758148166452574538561625018257829784268453710949695762880579755459166998989377358385098451075685130263970156943926554389614446280274498156282096144656952841402490437377820619345042005441816010598184536470511985133121487903563493452807464724033156494401733234724006224608712153788887101890412340526631690523214105155023276791597236324416411638404465908492428367093531410531189576678883365439091084739872772629295926964136044936883447891116152020047601910961687586257461724758121666836645172260219958490575671968619897611635735179440354401599074997983939631647228615444698176527110309329995491636489218073086795987817157748535024303546869376359528553167213397746391270988121301037904121291595418144110538814302248319981643339228513278650479418873591481802910980606973440194604025719441987358047026229156620516264368666559994434676936041171098511779920163667910741117860562277749408942290179449072270427975377247709963196830388787350184533079028513654961034810492328327605110668296175781586935882268958531116953263756071553440451993702569434510423941777620151613311872217572271788973021510498712824500984897052748398875922575636428530811373019094997764872661029286586716655593077759488827538071245938790746802304426456187208554255974581786128702707435299837842514532552484782744640992202202080986758374734448863886677647849273089823485790028945879008518580870141989014312755253685374187616315922947755119063773055751864139347749344616593342379592506684724063619321471836107889355848058209667317763702633200055621014655568215914270677728156117570080132626456395200744797207919290805001797898908386134314542838836864898941886280284961877269631303692510582757486395507768463280803036213164498665251086194391650666129209498328212077975835373830597639897040533565590914429872462187117188002834642644500027527945337818189455975005864285477710664385432403057446197767483143487111229554661189078176052809131190174266695564141771143502786560944193061576807505924906874696246330544835117539244475282594795887551513678435620450823358265916829043325636260727906695890279115102350112544851866629005585287464887726737977927527889332119509032991384725660865931549855407026789416803426712410209936592781645707695612192499329381744700091608069840715384389523757077973201520515524397872448836620323124979403472267457975216673774651721431022064296073457916220103021794142446197855250843899998083645087534514275541288707365914137263430898974436032522961594424152767537400418722697984345898769832629151240117203784228065925479433647411807824330612862839418957497360492811460361005014668904402461927548867314514188487784933642152725328225350539542251084268695899190567935946229984319284930645292150596943064296885525029349995795609617603123406688551862993608886973974896041576563377237689770847406532582740144504304963264025259756607869310395807052881088388750343121040130538969018149267509288338935354340720154419669713940566929880230046536667646706905774854373332574866307597070168262042623087362878096709481792963144959001621695749733035668506656896396373423920858071045881192032555062743060939104515792791514995885258528725625280424976527999649613749265266878972846177402181941146573643655319918426009946463979116144350889911179825686477436641359526473841676539080727621267802165613537275273535469994075986018258127243535787197589996812742149173761066269716631190471708972425131689864179284784740105570896712709722961012444541459279268616240688001242660819062153668674489987393473712715892382978080423781493850892559973870548774062148912950885195266438802861602436589574415968221625154075126054569678000959744679448101493573601721415428919899653999241767121620721415371879554051760548200467098117262938257660601037763939235662233717417626747959878447214812231213659123946048655203806301746571171580660301618889566608179173160154734097138470528640656719768194466748835922958208297316756469447966844381310750303648376991913557473562003552663671423227443950222584894058564243516515678309202241949104152744823523798636523305248129011867316204954395694903415182271603969928549644667371720297071458773045195509750325517638094410625955387763245178391115968867030548713800619477580712008858984602628139831982663836792680287536362922921715981679730693151607996079644036189164037868981904057348496041030950528804444881745861794934505947434788181806862093988631769130637510791320580301331240594303308637818782729551379047238966268943451521453467678000403790716892171854437030991497568942235434878534875495754848316679948718427192361964400745650732932301955582076992627966770886708112419823145719929444165827263264929200206812453660748973795560882758811042031867023376256547512133570848515358656922723925644522376027815430904959302721876400483946405003839327352849945831867829242495264772705230563334127565888140649325519324182330401545610523906593170242837385605746828441722181988427885618115483091344093762614959787372612398813742617622508844251335526628643177163214403285170250884907069244340916369139919438418638621450275053449342210316989891347701500099850518362624772328790526126601833802882557490009776330413152178045714815668445489453547287669490701903574893901621481425035840393954317433718913572313845754049758752789477015187000798843359928245969695574880789411434333230287046810949284964741916642598885616632894774051128263941923007912209855401544090634248906448937034941971765514560413691909347444473970972942710281473102373236498924728698957261363211329776623030059336343555115911948259695145729148170314211658225350305896977866297181035753476777796243612712979928103090148609884995996359094638830700877989134148252020086842414947957615629319218671411913626579475836851842964098354361884917429541434882024972287896985827429780352651676706923306035812356092670853343031045881007059960186389560541253974157960970379059051704235206091077708245166744115210211211731823482000558957789317292028938621909046903639475372831311167584464484646977682823331703395404206256132852462349931167492396337065520976890661376730237840913138064595138689707164011117463317006178754281864270091334968563588509082552390252893336686611528040893532181540784414067346458651594682622682581027923642977421946253809195761286214980093831023896773178866251693984264977513781809296100190561842584173113329327200270951969122162757000080633165438306475164796453871490953857983344087815392357349935315404233112548930141248533573760391808122033523815017714178479084402959486487686615236734295178699845512546941494612622099459322833470964315825056104506422220839112272329605458650044626085224004973295049734352390352418197627742022709763024531193507568674948042273604550019864731815217365800128734707394380020337592811517686648752845903284307613715903126004397209430497283316968974090806118114169957205632280353350379482993815495131832241573135505310758330927464099670431302527358062327997392923777725966412019817105814289543090061995910718498932323200831593180815594226199124502429001298878994268363634564646647443965992404972664425186159894621459520981521224185025375625448673779485806736033049900162371729149341985157484984165028837523808246219550261020917925700560231910427289282902342334410204070405154792179195419074573463608487534603642940022533762089222522852926956947937503173607122714631572388998854500553803165720076812771727810314127363048124791683772511407787980705936881345474462702586058274859571539662725759337157777416560577931381948410773101915193254701794798711318373099964744471297191902970770963944618963986684618982645352160727005510245667310743701265204444212856359956382438656653529363362483747442501682271093914037925966804268461721953854713711390818599045581772448599914575556388405053055286570519848234656289437226445115262003775242317806491815527274350998837162492732946222203819482023556386921588189449073975211070294166935348375931939109695214773819825898503015737394879202515467501430186203564123467568611860014690364430398209508496474488038830752392618525670653892909002038502490401692393163595718121824798460468696564283432743539838199898034696404962000245945182952345658385173117042393738495721382974066409782754590834033951705400238140019993512706964959775246345226160917272020246099290382188189955704242209837090983083185104020277328639049765178390068187723451542356602092290894413951752938023682333359033867353463440666096926277437218754586814984832438890660136474404134810997378656681685840754458557596414293487496728007540554027201130935999508769421428524894039645314750805771980081127373028321908232774127013083538799903580016183421912434353311492139917065655426193825269114028426145750710047515561638182539990013082535276821477365242158197973326819020536866187714708582507721444812837615629751858500460663014961859393169500445311336807883622224033578705669499821187990260817262242375055308928882734899694410831773237881860858760069372657683454030743160267556104253573388453372099787746928453817352777049399081046193656532461524236113750470333667301679172188037689939469599141028217666512904452753015360188751242139646650170460505356178628376950298050552586868791927494134622705612975502312869692141461390749364228212437491736489690300217014169197690117507158728707872239962989261835844419507134923017484608338130911282865705213383798427406429516878810849836128679762030565404180164411607221144431527042191573294857487697105795600595976766639842339313218275722669739521592453300014788760710628423271870279711355763968084040450722473615925699823907519744733461440017407936378884762577844269227100960898797439260216528791727732925318385016743552118365695744614698194876091455753977484748786831332291292167187890195030654793667218864653285477674537286860733348634208943460287306525988765924131290876506826663280626150077084077042280195537287480824278545205412463434881962741762685730762159844436500824246067842287606071041955546388859022832150099848719393756042599954744886744901959467827819828456524621093942646442651395083933479447361678154374492893136973749353352420036319391805826467088648070217425727802176442716151008984977950160386433516114067420683504974782658599457581316562507775076669497777239736014248749591819630217110694280296225527281905388581707048343365558060280473068538986528874478264086643109054646212284029460879165257831355616129208788865940622491176657016194602354226489741554773883909231653676491551830307223551196496020352225515281504248823583572864969587374877032854856538058964355251459405369600059637099338520366745199708706206513671008275777714344554485826076823399130090397324028445839654888861450669810410192997972105262293824849802298178221420538109582854443911403037087777413875556676685308465843832445335933590532117258231253326979037869219083565178696623999275318717669773456703389133422946091973555516446140391218191609139308707033338269008745003400011448997759386337305915546150792200381978552817488385656514094888752564167780173378789119315763612204302405489217392957844581872615365004304132882798293604980412875891568074472258514537800022487968896761212569666098438521372633998388239644402811740377870711506521552728881968615881262603941614503143484754410005984580475988231544225134044350946391712205996703300485203451165076317337175209393182893269648996861002287471775320497112392027775140730824001694976282019696520194241039769398821393376236069628963493773212362197298479444252960990900246857476280886944399580266279804449560541887245775025558510533229501055679320710870751996790028210687843896544786942842931956505849886389658629396196303912301346221803190166420020632231066666172309341132726902142622699931243608138688925471753185992800391128939730764281500981501807289276294379722444714226361164710616459290846279181301545533944005382899478129878306880865768826013360093166171988834988551997037434713723604483729370394808159790782318175934710709442667848480746613232555033358525670934115302827264500106411390643919077352378943656531137632957975089411290271996995756944214511696592245431464076922839406278262463068752664072596357941096801672079937955581420821517488366522090461795689038966592988847585522492305658750090891639742497268322918772188116410311664279261399246879927624991635656666354274132843498370301599059057531303656478457487670281397467277308396342460525179380642163539555209570878675596360532107704773274736163219423006543517844336067861370710061291372113017269691554256116978715261420252759259718968626190385453566307238007653903751756952643237637023214334956059091777142063663020134961358623943537841197459555286572786524925926729611170853090826946226336967713652410596670907293042323732300657404112361795422032160154599982932892356499803819686941493710764354899045946903819623697613473899779803534672924446399405676497869613807835654525399370484411460111013779564332787400111243088163997572317283091990967362337657066441123021377585931641981509711943709992382675098282548572900324250548982264838896348211455749247917456749229165070146274424161978018825599164351043687232343169456654912784016690978902300724793542254557765570816461430629575325362691710098179933877170456592116876498404325746212133716085690571396260791864168040860908084213598019553757585196571416228169722213563084078285939994345140196553154387705725411631788375795653896716233239540556708640044180636787384907930678204676358153023902840642605656283256742457302336068843311012937537621860644985304951126535340603637537446991606582608593638523866645938658892892853030690713525757236970300680780924969967824384873773203453029492681469286640531561654806576748085907054109296084446312178789650653320245964040167335136961498860060420544937797287061642942083950781760384899629929520832769033066703392998999194683012400464615439056203004796887223540976809367711172758778741477851824101694362432795073307433162533156997315506769833331979753480916423699393836114276635632731314508091269867007971825394899271011771326964087927710174612374137017478197831328416636649736397754724033542048603523475540325995656832800034577506862010979932747073133676266545848831721008459333825781523377959298869913959296098689112177521354263665442760787626589400419614836631312205667328415418524900701170196440518776843891522380124197584818782305120092109941673725264831023655473588134093669294659715318409085503595745973948739360863647413817667405039192960330122274743069675017642358403683441500272786716047442378903304985875890833247653757444161080390403984693721522626582855439552229848694583039810349648209385729058633574520686754804045855107810198172659389869312242049797922424585435764716929377125872595765263331068122913249323795790178551735436380095894258147282705682098991509311546663965552695893508497656145825929833985181772760603146510872957536309205803776560442586077606359563427189745292408695990831647634364432472088907021804703884658658640708527782695334559662385465990169324984538344997078155369434439811353716883320813527346000867049179651751525766875017529786838977804975390942639686120581422851461439863913572046087818171807908468554740082909389475072399671005139265245924385266753256523208235077241939688727508067178599211103696331123997717255806193044891365076538168370161404227467917634246698247968686535744486764594130629081249854688703315197264932707227146860776305616361111461462461181478082187344747675719292139053100595743657633544733540384758503140267048703627109543549284180243884459734181075741271958212053676150289983130146041975489688769580102836592947700932676959353306326129050033562524482068105240655831384320937927990656698373406818583034888431884388120534796436612444168929878389437310862660492715073549534609538240340934369880974412499096601080791148520244857864898230470167636813585173931545354292952713307745692370270016168667644655696426674387612779667964050025060803316532591282958124584232243611733720529052365536796327138004507730085326466144647717398104844346095224955687294592322695906349673406268320469972528194575885791257492307470435360861629430577307840950770089666113373474782492192181860865891135978351640815960827442503412186325749230329524586573714938986836865415721409726975365336040262775039551218651951409341118836057967047774854796181553937586693150223196761146710004238445422570480952642374690062456639860541393399786452959818241085806627161162614456380725248478378011696514753367626137546219205319393973533624949733172542507787734753624419750532434204768405737555737414251073372233646473628604450116870393452386648072605751642230302353515811949877776678560027819513111955177592090426044258690564056860845570571891884102258429091269515523945315291012728737724499929379717392393154605358624060779563822975154496932859928599053342986691004967375488735635123480209045592274221464858876693169398329337789375424884135286427319262858547668431132497206285060062917751846578986481768578353009070490222587014433131383172998361919849876442397253387715445673205460135374541471858647788795671560337956248573230021963247684359283650554646413607817774699714751084175265005492801928221366218271451552579204739830985494822448116675539884884516626575692703419007495059170488431234812308915043574293896032822498055058375046422938401487248878054723733823465786652861010142503718585472304365567342944319571434470540155186369123133663582375080781881023989372079469650105113221897653028871331460025029799475706377622377777097180232465083809720998624429780394907617449261590779720751084307829066405721853405784315029493764007769302582957407059969078518231475785397958661162919466588668699398807675209067624150411878845554940009029763998846403386443811439460291485323375378646814036908294082759122786604202815018671834355754220542446604746739596606750143563646324219892325636625155981516385361223792474748610347169254732942194136530979632199400189877976683952764008442866853046396706045119443467500654231867664412755455051856293402006868836033624077864426419102954408589134782143950720637310257273365845879440607246201547375650422419270926652409085665548734997651898264683758433055099175478912332423669939381221188838261043528709377007963668707571070172401810234140525729327589134565170757007515249126459944160473707677166379274019065268840590023363528495897052159274460572817944881900459188943921406835339256224124943071389453972510529162516881661432020681929475907495194593929276910019172184133548607120157155072124496517706276307413177448055031006421317068301173005947274905649330807605997030786720846814891892477118961424476067796060651102624978036087105792652613897083414038889904023673565092179004050461538939369815641802795955989376052359289182038825604446425265129827689481754941090219191358402739479341505856727048523833895461613437284656312994847431471759602127975725206365010329763452113857009582549572984412304569736698505538928166056503201474341625895436419559218937386408420852715417291106880807962992778385842558090337266092755869132328827770728578686453987172788169095362785602541659264537608498240726356720495351678746245106503867504528949218648387092083169042516684659535357035738344638337628470014340652962719944640399776841939537981707094956261671502861191384004125471336060818731871892155839848160971582046005782586316171453048486954899538242112877458567299865523341262436088543319200173100746920954272456952162641399730665611924471314661940878378800029708270054012221171677207573922655668762420844819490042443203838103285200214126885215525318287914427232589113165995328434655927332096572352865753027463466709857068990523813972472509473592154863769003814437413323863465144148320918104844478847979509881686743831545855472277978443727270628486339026318032078473863540457797133478271934836970389947112449026519691570999520628032647708101519515621111664890134879266753598929985162549982696200962638463302694784281529910675660523197128065050603050587314757392459893578671365099155909588068699752462163578962355434876275385546143356832700322840819915016883909041652344563124203051860057181625263528814318987169399438719370465351147586270657611496387303786293655891736544141046674892975330621253718444751414190760416400237887846084977193036817116353405870696028220250471756408309105781978855938414551177702975679797161185981178400024961192849971208120648356667145849389896359104584083799031081876017549719258773955251624032534412278174313476289318389072834667566414396254234388544587859218452790185339726858278846319127571729055443548076798690896370477837888177573642402711537762513887798930603128251134642184965718348059397531429944870148262739842900213537382321742304761588592115520615275607469253115634639841515866138504196231828600511515822302165567008466168456606844366789786395369253839367909087264268922072581146059089672482663666310402450683482389456243615185242361098855083788162255190418180626024684786964079946414212023484680759481285606546038567073220686331754317169846008470462069090986361765218613176177645425622656065889619455246608114427725038774793574352222437474821360302695193463302563119869670637823117223035146626941772671478198600307041953746593641949105907011210109903608914544802435560782037190626404748209227563406754046916738136386032003930855525492503418751477160054275839070444348960801884438182613599781000409073444653029372346115778970906516300377490642725047329063123807245608353712622037845331449450320398241524171743077952430527819874702390110980224055578863274426197055034185640895278946678878366797286413860164595385088600228969421040783071871202098304488749739866030378351035801477978076185086490295411755949836010748569199413159362257054176032502795207427393886748047676073435003576434006394535052493690798302286767486308615007409786072400020276689178818134421953219212686814702106296212101467008869762766546014125107527837098458264778414206863506327419323374343820853075712582138831038727411864017382088871889418528474614937999546554305015600721843208194055102534929836552286526873533363970764073553967729326638574698337245714044834314119029331611855771031219685833265652103947626990909811392568389529580499728721963260066003311651792022968618990415583600766005820175186186009804953150225017862351740842216835222152795119490737283170600341691451878398142234868145669297250883394218753998711660798841797232476990854379052433431313684297688565857298594322647913822804004231843829667218720127656713412723116317868610241148347937683745008026552343431587230257143770060419798637729101854656226887342657040557864603557967245826984956979339485414478261590084528516567522779567756424988406684471521178839702372801486901101468361948466940922031163087833662975196831316410267364473266397735106131001635919069740720618780244056103825427119323727457727901647355711246117460332230177464302381953586918890301397831171199675859562736104472329627007340945417537331593351206256850968802812444509168864157615757835043982273759824723269112402274988913858332475270595507293832618711613755357536091939192124120868488172857123696399023673204975787631170785878505247003278145018019004708727676626917880786969698369938150639745673879942776107599472489291172160748842494940340670997882755087184611979820854428949775389075545383635690998427985668270905018380174414769912257056012054986368909691368197668807537364494531721313198154593032322516113084718034111018395111245046707712534211469816573144163741730005092733690435421668958789788533321159896113052757763300435261654755344363393328055763630596658980262814203764611279312009913013136771705786504123752925759184426828509751571320271091897591022603485376699204574661645647133636060759343081607484018325324271440384785531751121215982807469950979914606776498601582573665498585605057944378889474810617054322101358773109572773759717752680948948050021716948645916879000229820647967298356276817342044764972952652731810333303147256189862423647690860014873020769560538175246560979691869336314287204386966439191207792220409621982821259606249192075831454743804542801721511368468787433583998430614423910928453203533820782428246076140055457795966616406587745711648233358913720878186265163660695274100607529151021291926344487665315290051248571120970831658385569058078724569071257478048504724758904003296204368037221146867626216634065164399106727596876631224862847691810432498865222745328590543072509341083767293480140595224459163086644700481500399161686488283724883428613329207488938324625483777334403108027156156625632148594403856839534899776675014952564096413431411847801109082571003031293574318614344146590959945839003952423508682254113305416240701143635726300564466617819093166299399874358227431285650487018319093847323743645496183532771006550421596496899223643030757189254882702857438085654451071752438144189757360074196339852872664809805342168380839468855196629945319894197936664836399075246685157188252350663167606548099314097104847356499798626962392566019214618725905767231690533875755063798406865488056304801269793130591039470206168186985298262124980115400637703566697769561074676050843905415483166109942869186841462463506053928270833867391014815923918724336175345636561085402569172480307105579222807431364571435222733880757887771252349484507903013504647038869968109818403880893306252173473446683522598528045148958138392229006974100776711315325857039110389191548556264486667797571735615370182568454299725817085799181602919218752392297200587650663506551255038726768901299101207737086259683909820189231650942765354669521115175478823391519475684896396871986462630372402744590536208022963143188422453471465389608985971379603882794596236367509869625516804087660118373501798766128585374814503908862621457059230421627902603725233361897589959654931043914881635607830807536385490180737881035988867450471016655945806375425317358360180165459714349471862911927761142756294389135399841092533143498605096146959200214653708014106132303965034031607410639245457654855594805678875626149148659168279917624021725483260103089122932818604959340454791429016518587197870200752205528875439860643286264374123346573758981494401147619681293782671330862387596953414188717246345869204011194681469572639680963682466564301671058782258690518096777280398752223170141702956828538838763891920421728328745791365297428270326850805812415060313366939554822973901441015018745832622315443172074765127911602931163056970582402596688837190520761713829782675614517840797684235296666908101131562357258443847157398905498820815997932210137273036524498511046409424716928025860215516618646159236234433016070153021090841854529829443227704881542656354319150984267500733421947480026172379471001189748405100452140449226199279628218759273442283309940892062422722834346328818726242561476108816724868004211900983019538544940003087802660532367989972156818550662641888814428763998433056225090846397389993557494453680737887037089287903455493595482575255562363600546141349607762632843131482776863073266278162458350773057685025836835463895198806066324337919561718387911725348985129776667169464317463547099331473355056672122007609107361100480566898796281146763575847770303633407334782162031038094791686242774501508540870356212842602090865946388708053095657866414733279812952392194811617401494945114033257247295757956281586927404393786712963353098644586014576312462643785679387148002885331122406241757805272065390523037080602585706460479122057631841053518994338315413844604031629616529486188473955997609655091867073648976501074291355055395767161449441921252527243126360849168046507089190001033030844261690249651127843173646951679801296713790340015062475645485606908847660781682555940901145225558374256112541455288387797563376576568000958333582746564057336652805684891681336622009289363790698461922111990100615092949190078475210970940243566505926912120774179179181666289012656545504676404781218783418865886906936888194596694888951517240545358152413959142727140507864350370321282414048631770366423720156269501078583550982645526841996153335046682796906412802540119035609002226195249931694976971857001212082516151261249305321189762873232169500648315214942870713992213864473069359876022581218909728655101274106876743021964616668995642921807994627937919328512414833528788594296411733499430727837365862376722757816982776960924876820713667589850902283895794471052254902309297175823248187448817367627754816185823916292675250277684258931303785183800395635719957999373870681424265267880674623587275837980860689589934074678760604002564490775903343063691519999874335939593038561088210652394372737211452349108472988004857765124473575082795340072839076507129355589475384293411929510655378730478007580172275170307864558599350904699798793747194171614852179247349573406234706949179400947183839361742695004409717885903294082451473027800604079312745588022939453839605367003325640659027574050781074371300712859229977993580196390580063674149927947359102824472936356280236848213378744496220742180573216133003001503252155880787217249227576338419535905379591131317426787159771992624049243122054031894921012446354817001212126539268399699429884477864117378549710443064355943360889828762347528626049479626456353421930341036962400219568663247772439269606616606025496291456295259136486213011571572300434510854053543653855904339696065474123867160341740786719519264512900473068726377510843111577099815282117576892875430067528118667488355372484531816603873366864706979293778067025164783272310403824682451411791191093200838529564920441675073268427230192026531179700051976798300550354696472572477349009239224732894618451130402282644891652495209436403991794551706258168094712894211075149470130445177226236206039608751472723528722020517412605100542959987465899157022927646031166993804529368419806534446729259304272067482599693712048671217956671966020169053348304780044459500231955108150516875891562598354935734120888615007658051004821136580578089546551265400220372757172429666188391205418447732275353912133434522188345304868492212059915593902904630660240246123966379241769864191191349868095193497585273188873028284496622100064725515789642696957781318267638234696601348248847361476398781613385236635232035575685761918232301697606979295944065187290813344601199563193601092066280119319843980497396428549827571214128902895008085150475004475896692683662891533955132018335559578586443290637232604193461842188655678547739674531029175170504664434371455274689372563629214037990216239498006432247863759275809617621341311567959665757279279800230309642097416102357015806279135377017063993977743788504168497462828924674510913330220816101632834617101948076962004563554006925698835382973221399931783826339894853031645726724604031773268077886747398900656833410364314562796593711472046477461943326156384372843342732152530186924639270834909531292865174353482322048925021235666151832397278223446196594662085400831828664313632280297573436400681089487233596979966995401030177511664003104111138921748863482988774171028987634867611426293384752774161041240036509857846805347618933490554501209634174198907296683404593338442252569164385403479167106486795394953747204170937374474021498102711199528634952016569355005128708484958061676756739532047561011172340143498947636792883116823488474625894836112378286439480914038046988063580250548232120334636662152080590385537882853747993233517116259695845070138462684655074592247044824065128378566250495963650180362330819597389046127728929309642877002419798177762786648608766447599658054240310620683109647231127642807061117166121092486595545543624071596468883972096828249567770005512865390946117286107905485634279443333824190454379748276781821311118824548578885900716462067757322707992488291656395163032129007856311700311914962437429425410350867499665432161930171720007959761028575779697026638197443595918074636904495814969502956834910844000869649687918297696098904167979578783751509432577549419660041851945078915234247837883059842141177306401633419141582467258270884999888756384667536451463807283533504088158926939317383227680757899535290982778957253293779751462577602283859554188152090887061797689188837514008247003088928904526653978304828713231976350047256567338770784090205980033637090211844770171082313681137205640540378713458071992099545697506767241124205868644096899246157130554504030638574288458600637089447858875634956515027641028174814483917536034807653630208939510389334831074576625666255213674287818811970438685914113604347021627565448369225725878921495032191780985846225207934396054155795745966823208266332439453335072882017912252979006551685247556017520185879962435355878807878352672404667997937982669389345529841223432992095340600378645726711241049938728037470532063945635156210689635567002468803874394468205798310492980605885893610093598198773978909326604015389076388923672401322741045923029040340624853408684930671996562490526519717151467119739004432373493756563404299204230280540668402116257495365930736687239135555464860607060316303010879347126315576403461233340052834930331062937105761077574859882513188619417553193838279229198621709625862648621451208692558028630785232025720983844877274353447802799113737880554950582284687681357978597758340834191966888459836274483130544884379806216598078005527190354243920759405334127879905120601283570406108913002958245232917745283422164578586145917281149728743777393163424935079338989498469941990315094890184621505424616837285917303989465679176830313601536907255610320698759830342530240609709689789492071362983456236478522366838615958770967098271921433132900764166552431118328015721298270029247152281166548048831055854608597987140259313808621763026712097989875750277963163185079529028488688488640691871369421391160684615556697320807367583391800715048902282246495511199037324382591388854266845075634503510272819631788699192899678219378769048926366932451027107523945281597348077988021159168405332595257373129459918358808891878539508118864634159468639205508634611839653315814704971806278325129336550859575114181464750923191704777263630577620180066137915634465245564253608245492203463368696259711955043746915898464603579140338500099302857113639450786841035725273318544737637538661968612452501485397034765689738409032873685150094739769984734726200039373205982228613397403169471746130738254664570258879163561659720170743440109012872932189947021664733717061210573801798367102854614367503332743580435324349767642702083679665870495786974943766262334370491542625073563815623559759767431995249681235379770943763315002678207328857949907572129943412877072116524629102144938518259438960235406090955903740208607319727660666662964170354402189797996401736029882127165023884288725106258503083001958701913137280655995108942965476768623983905076739707449988634044001334880866370186312171368923583880750917753673730427970739289482744982758659763676501597745089722319195929792409583188031756517158344192082808426503176555881497168230834336031876328813644391097991916025923592173698121236520724136651443275606006329044563429193146004045710093154740404449666134789768046311025665146005674208707255500802868752608603461404970084393959282474973259526735388708874604187877349529865107945261674681847312863149158599803745295841109668052068463447742417235968339927788071669329103835910986209346807194318761602881635247779435822112369919777611853782255058783769058260548833995411819812952419084284055430936830028491800498379720500434955644005642596251641260648660005282976347096580889155803408377710166255385330711912519029685812339081317054180225112036006020326022363296760377830604514662245860473190952997166208469780199672557002548720395120479686486123280767871415149183431305708395196116592426796765933650484058928687606133103457754737950851886653520220199417480104453118686489684252936842912514903777332668195460608297805179067787138478140512388957112475780470381447288477507446334579860723109703217020310235921040381710396623147107661559840268710849557146263679216230703863747379326340699443433268296224872015847964743590804259221504389150480748078041148780711951416106052125977900769399787580660223601108933439355894387048020684911880891629758836349111075531059686716821290812571579416370270617943178426795792654454604976050023317790573341650984183502189509677884813678905585305907142819520370524888434351045228551953157106737923401366737904567427453281837051754449194286984692456315885143230143387782788677117351877073956877203714249073393025845430859816355313946673048773120303523957852491786633946517104016407379008565281757036114207553243548635882347905030391374783142307292812019678115855751182198147835400187091129368756898547176217192810288107930546316681073002511456211779770019836153550705644356180835994446702513535925331350711538614405567883181769901057350979345851090907813336503856928904294834606137861736484264708979379317422927520892712507446461474040167320217591962099358534691702634916625310412345417626777380913117071133182588509551683433950937629680426081304530631858621784171299366776533309329307289692088426123005323283450486776742495168546910035829733202636721380380186558593759950887045237745315313626794637772060579524858235360995082626578294674210814121864751031008967986372983914547390749625138186641837754426540047959042336128682035012363817075667582107458729591012911507746191206988919624259215666695583695865056880165614480799191359012589503422913573168255429011372646279216579946293195141140350910620023157674601502398448108209886752099300942983082797688941838056244547401082509697715486637068705809155628925825123887239142001995050495309105318316616101244302565731808044811511157076418276804953374651356594237660032508698044939361334711534595704602362562583949817489106063415604098558323227988669828376429831020411537754700236451763236332571773796909857416285864596849614903311756725845230383444271721648465646936205884700030312135876460622425600436718901274914021358959854019807531618915980108605417147644954695647311896992066699409381772378267430536274021606680309738888980476412104887754578838521489334459589685989003169215195041034493780228431363542479815351045547711602995532719151853151607144434940000660910110214055432288087731749228249029348108145722194871004219426287053521389454950309220446775249175898857035264349587480426505922600311636667723527278686493766774864067753634302122878632135577602326378538879242433549310223269604848750696109747031961611768216929051456123209265308993285419700702832497839266566758772507741819352568795928521459613229837771920646368814231052065683402739500773925347946543133033843628293538425075997573054484763967484701092359867961268533887260295216461082115957305939556980254758453895343912134112066782672996695415109515543973330155004228017258603402768553439642174934729851385095095733734207603671356883401552450575081474580013548672227788639308392898916277390394417849646696718112621098435585026821202332457195305660597106192243878426994930171779469181185883249011926396012501702178764604742747550533448758626325297727379466916538958144848016277619646263364228524439797189521142755135008484685970042767921960012370518031409751271944655172188449193362146250050991890544607208814505581400564639649188547537710474038864186404904202485292379527118107320896711959876294422212947158782901427292894307326647385984524800526680606091249753213008672778956422598614502321324645662265301284821585101496621502681941085440796768829644513429602046627032301264757852988910223791771876715935525260493378688367457916751965989238939454964766663196642304242807400756376421767095095053020699892569587674397334576080269525430658923211266184797213726903532657290589616901734125736092484503284995511870054000278493889859869595604812132034668311099020983227977435835748284906285090987294073974252429310185366672497889610360051998236951060473920270084851988122620306263660058517306277107624493126362783933055980394562980229209256114842759669246516797275999390072287982077712523139976880806138424374384370431161339375320525275289167125922381346533154830987522969242289788591532575379750111784766540575421411949755398006877144076493489882804961763026836704433823365474061882808198192802304521574581454646880382578493532451834364358588776067799627848118939275518147071058033826514335076320475124266328263472973671839034531686232333530511020492257569273118783603685584542794028917499475298722756109230710424287331527547830168910202404632836270176266399910259567689980085778045295606546299962662833193727633055028447469744554978171826165819211536810328292566527186777371298624972650576784025835949668546072335211019676538597476942735756858206219266530507849839439608867104436802347921041413646244739399903469901000810548246159448473146779257875448215226439166551368905387178701270348477319464633968485675791191029395371412146064507187792637673074702239881195142608570398025549138444567960756357863091388651813861052892475195015011003229414601219976806169345847039606558063542937950154006893697739511920902099684705702607893202003377168552864078089494455218440465100418252790663436928944453948728643431542119065527553878231058615642231201208269616003130610538709792054612611004155033566558157676999401722869968374778923076059487604292832792211229549071809424245895420267290888306872069371359964177729455758328525093016306000115826813541136152879792756175194427305952067590107118791595660366328647828309683913507343356956993647421265543800812724832013822517036570145977677916131027089839518203234373962479868283397272926979537151733039942069647539359272084282524764653679345353961014590180033404761576778705643014806262371553803618228835792712882544726698947862824569646128137986071158344325636850062433506984042057086510987980881009947487161396945137264903079992331739567108629921450522264289037547673952009884097685488404128623074137095338752552916837158437128660015357490235084209285574882453719519386869631011013705288232544816596556221161819205137770907807331245594569433558830305638081727798123891844189501381663996887318879868206378507495193489377143169964208472708917905725507476824989018530385812642848819379206700980673558500375156251570437335033552094226612000711051948194126813256063928601672797377606081837310336174638679798274633677674004528731896864068609581847546874753273056098115053725208911972363744346551516187670686678331877239707059274293677473026791637852473261095946736498031848472441741788805822462467368778634463730221816262691861878673156402119566555173984004686218832918849084242779530074801297276969079813897826608891487518552041420461996363803461388478547193286969862192752483177038506567625496436462619230559941543499684311838189934164150386800057413743835745601464544163641997182602738116003302463739250946958387343093255298868142737451751876634836638353729055987650291917047669648887028358938565223875651659961849428800463471012157102183175374226273022799829237902584827248002393196765691240917223126041655148888743819175861994562076825862577054487464828219538952698498735648238831052228430610869168873142826307266426827999703464192999313181506954548681395991669311131168000649982533629673382808677805083610161697524339168266617253476854484255399246978629707682326872108165538130994657704728295525208302011076584036562901933865752322736289254078880350789707217933680145293123838398153396692215667234929489347314640099223285636004062110551570805619933835873856101645047702086254499488904520485145502229345107050780423519256412161889902773009117338962652329695207410651833266970938583704270933555039285102720636943206938367886693443585906304501161276009892345767138957528892327862059939749958457314918316589988210505915938716614689283224723221058797884437255943543916512662955466547881273570227623232093671554153571249079043392757242630152005508821336037151578897324001516203692784285222480392533458776956147790412795768702530572040322791879371555446354922324964206563354874295542827017168611215429315520190084834973541056720184303076893752351376569616084821662733921823306880034119648352346634409563291713779351328005021231048337914045093623124078021510514325161001570625841186337720001729938129917685746281574062948338244693738380133190293150642341882234703013434261705826762025707995460440618436380099660327306840723217346705396775608909702164239115012896014296676811489227303765381332023970287923310718482249628871286942407203969131127601988188980365545336224564912719087266063981809128872248833291686512977903091649628909843578008084610698136044667157048485001753654925308200240384954016093372074798332913974323983207442167517377893127790761193357900982830106303582182796379588544504488258618168422009746826669658951609447457740629597164980534378747689457004818624829676794616390176327239827569837498693832088126752964768878852619987160583217275293645916348187346190046229809763995067575563977144273254543050875030762857033686705481066597031371065312162897800833089196308094483906464100698399884649307869394034165081041589429011172358744617733748583749532562129805198610705240901463518887622641616466732567232547387799814029747007566361603737238168639217944847473570707983195499058158532803718938630904381762807841334186994859589424122848205305933883234175901592833443041687725095492223502315872280916054728113801192942906134126756915551730420617828877500147346479265612391955834601256694573652352085082611966557957374011276570124935711667639453045333343664488520595594471344485163514697513110415358392940604049973542797849720183409740324182843338167073986765005563009329522154993075318692307704890779243695917228001354579113545095762388372336782110466945903531099886857928732055467681048091350177133503502679227113367635965675093242857824040032769845306645180833641657151597372777513673828237991258889300952551047212656263204964276230253463115667353612328211023129360237233760822620969558745399404247819245298195867147086025275924374205914026144620189014358536810668557508336704844852103262537832375764151005560046381309404126223954451726213792383905202873363358913735419425215329985133516127817778150646332075078421029205825723031706974341985992697362550996788774731098570403944661686739898826285748891652481995155862493505970227377752383789061440494335466105656467158231183715653398958971478763390118801800408025255591780020514483130389022008313986173948154423349404073798658967886369072594397273389713335236775343774738666422779930970682721321792431787494532701732129695961792021009143979919968466541112883048474616521762989870731955178529176504545209998393217076121575760728437177833340634705288372504321260338462202095138684136764347057377593413925401851538039940554588652814126529660069173511665260766621751813299273888573587966740462121930080345930736559477833500881415926432648316351609786774618152469105912899902494759415729064488216445332073317639673691693712190358594791996251593220860941449996026517248734197900965221134281829917477007702464946867667936975339535463577523016994838704494035717264087053654756359600710913276639055960786873598375755319608960769043118909767260440291475871502857725727624207609289858534325156703959931188335809476648239119268789422387868055845392772495116260027131178709588577771268504436833813725982477653566896318685598830005341965671008792653410726629712476746413085642506456826698099204163446167638812851942259577804280686145238514242640743921011215001896886995524802452549726417343475475750724328285792741943585293968500946277968173742103372445624776698022744144494494845178761655806046910418073572366097013350507677750210967160629324748188667238626014853702495408060329936062403015642949058353324121391569294974236390417258551572891469823981772058585700738126086864530061401654708517059590942050419970242152171650244779759599455832366317109721911413590440587595422376004669434691427115301828343135471844578819497469188439303244652968421356679597772970177808011473032842370950058593914137663041436509014576324664452724661663884556632311703941974852492798909705577613259892218819842488694609874545109912481479664246405760867717005371634437776878529062609402294886105030753090228553524016015201894055445336607043743023408600788485749314336606544779494378668598047619440202381195823173301270799807350456764001458308416277813243115504820390922210254340604374801850496125477403034975067664592433809191875120971379786379769961838841319465380087164644511199361474731714822764116973853388624248577359074112220383423572868636922549784632286097643123666294412579647105189509885171174812090591090879557011704220633967375355543259323393123813462879581792623997514314196932226933052340050695524035405751659797196904947178400565398752003908726416453766201568818275487109585176000456863177474724497082861426877792814518199804605230595738209545592367010768160512990132832897664127546423986405588140163586219469743072966994495144739336552794146796339391093604707096596066507450324272519829472081755681001456752481393855076898146051372331137780133103464703255727443901072128916556184308240343012863694883086387827836729468527792330913639402922051747800555858333203443816206357449850938687774882455459787966513915072768567919648268982493461605542418430157217515354048277847712257529971659930936091066070584105944032229313931000895838311806683472459949114029653355780655211760583587282930229488472128525790469947803759144835600276748668296158082509634094075848517998940922205352871349215233165154083797729603311762015983715290581095926028029507259376307668131266563573760935960752078956066143962542689683780235053154701454541232933255684007256273437893099067813918248486226967810678996558916581447955864693694805035319938436678496637050527397624667688023316875559156729750539241303873235989501001239193190673876134701087701232900430525953570544738000237674773612680617732181738986714806258372361958461948893057491711838928739210252695500005182802638377714282861255287972517627912468714921775343043405127561790404308546940463547631205790423611992146720980903538260313283370318172113851567943398723239309490988800717231381597779401379717101561022325228025415928172859284096055769821772878112197396999713607493560282486208664627473047618169358105460258066972189903520002825396740828889687702926946625539668845098347224039805754430683658819418066479435571461926225537316574301473793577330368706486222950127676254384042545893297299642093541155960613504137461125975899258946201289090774316622041494614668098517335488813097651773218729023236234498215116356804078450870646631266783087661140350206091689159197078739467111868654146617240848822457335404505673677716974743450619371092075802932969929922331492333748129952561581507743060753040361724588498369920174835539867352083228319300328079345836328047085057330339408757096327365416418988489966471614650977944817950398240957362908256452339905387511944196524564381449847511875660243982251373022198953824171546996679941170029592912871572526619308498433157467322325190831767729711795674168608350002907902278095105732612106308865761596523463521655712625791297597920024088908093037161634597747775092213316953773725950334714352802350574022485657409460523089365597447393734526385790051669349335950391390099590915218001882756358027720245065650653336748872005799558814622953189213913308258250843390020611328296923560839341909841624131162149612310154800254265621127399560850712135160849856558443396736250586911501489909300373397956196512206531281095937877574836056023671064516705778724171443471134956100665656527071039594337110388671936446138723425141320353957957639692148513155588308163630175746198756779881760818194460630546833966686644264731428601488884428180610285405281315530612559952774305129081292068679211281484401029875204586719314087167628735672623211674511420978307157634460374186631267232599094303817554977554553021342250295899927800583432047905790407189676618916825581008482674246856899442961904522907820716134802972719809177904284848517408704736373592095208676307048442757984650576180356960931779632882688683387074519248240749835706706334869818190539284183877577210093465332041544926564861375813108048420828388458843697954951127995238639374622653300539644339279795797700560283121390016350340988951960604032290391427751073024582902473467006826634075210453818020991406627727301105716791452547325872868236291002511309535664544865417575221907826482642197250016799859132951839943597065851265278085229369817393997919652940387244059988042126938672987439304042488797508978346711050829722123493017082142216550253121393108599951808762939870908961762940927696700895168709881151652686107013636820965827625427179090631967023695856606012319630535564478316187546978968849748517034701270058124960689031925600338566076562996304682953840853205871245606370905290440805157863021727780089880109644045128067028659531543119351512623499314996032448432160900259943917915325255439947879192636152282947718191738664701213320902183349458440960440420938421835986647341643075280091516131700666231860208253222016234569892137843981403401795629482006049546006942686883679387306403878536602009149870694998718289792043450802809728317320614477148139313490170913145971611394269408046049973279448339983313503350833923476450599914961828614272013817757160595817139877558175667155378398938459044325190407035157185274504226734642834593992272743600436691251724500171565425718854500943365222403291987150085942214500379382833079096858582896637296961158197664419564243438527514231746301071932453027888518609318019343156927746112324812513655616295213836918540840225660013007844392913049533378177447141227753181627123249575437131087939225002163681605805547785160329597634555517240001941367245199345057372597611669914005337473193196417752649245601903881412816205144775600185901032870181799838949034949057685698002807376917803905868739584038903429929120873565312537694814885512183815481898625466569336844884057335797312796272177417016648014947922644981393796083788931332329637529542640907765954318961178283465367683962798693684538305723402195647185831747082795244048584304340146669686105337679265290722418652515620823556132902198541245263135430749915389823179686622052856525875249445230623819213531146308342521093449995083864058212724117483531925524626578492646042541782146235694679768178381878006462143352658716056252565360327199630076746973156770932459404735494583693644835920051771849468193369292994081030657614267279286162964302086078319621468694613508113549260064190778898720742998325385465632795709138019058515944055140462115128599953605661877721426440458791628064125327875401651116423399988597851409699346629551886761612354816195234133095766480165913915794675572111883107047919719970880899770437138450891450044765673190930617368426636205225108680667974404021754283224785586807466188175316144371856127498762971190189056049733939760050856931149419091634312688130265081082023308336804770503691212378535655674585231379851217796942935807424769044461670643756735252747010327194978584704234640970296619778961922038777361200879217255820654344320258658763211964835915916724873407359164195923850110735012605577967770815917528757831755918703946612696613570681001667419996320766296856460570025604683503423894456115898962019066002418534827582803904879677389769155321597340240546718356272214737917617133035308784007594047179112770379245662559420489394260465323285527205972809385527705303498620906062502248812123888342862809260672046342976055069827720766816190145270813677497687346408994992651192985955723291202914278128683296709967708488017848196204116839063800874393237677855639803121706859509186867370676010394459058730782953365501345352799856397012794052087489469552855067377554809226040712466108903424704742225726363544405568506936373520739666963079147799256383288319890521858803207533519763291286760948435878851938294064919981706477182698359050085658461361915932262033180590519245096183093134517540969164508105710005323429515101663297998392364254183182563751283209185082498191595375669696248886229223769598533902486072279453876714426468569639107473421059885525977027661726441888092230519093329362706554261277544804754702279538973768416312403416214930064300430644833691356807321161268102314458099141523716158355892886862632258043410814166558181740367597923266403047711881920862289711367787287909921046732818619644207144028435045154904047829446596191035430582273144403697904313008819594575330854469049827930232550131130685141093464833173060103221309822329552392874827068922833728681150263244828643580383115250548795950214858663849099579284291882123710105549337004366114766200124287220047030208579951158735575446447019158593639315189555189882227470925779310173934430406615756845937243102077196323190457922199425783105499575825630820261331505634309457713504065974999996072386244036860705750628359309826588309833747411453508809071144878890262130927952031652562817868018259689634404152880079279798304885850259209405701180218350645225202258298679224235497455501855302393764080406324676366067055203549834066829019518935043361870469590874200762252130162371812389958953772523426553799166307502866859237606722422052029672051381497561687689706718646931411545559171186338451990614640026803944007779888337540001267312987603489166273110638194061491315797037929070336703690565881282096192401555541545560208698848933274692496512820443739181690583497031858091581504079006329743160036912370359692476304975265846934805445756100082544073858587159124613767919092086863586501366304351003366459211335548862959921131550087981044078193579482385117332303610644141710177996428569121885442838291290842192067613410962429003047584786325103774570707353564498184519016048256371714906337288063536458509136480149638954631972503459022544823107137175680792169736680781613938146349506849431590779517935544066416672053796511241016796829247779619870795103280313497641069363677909609665595445890346558095260196708274647417178284428368934926362937730428893809509558806530392099843414362226859947378048178020790186195291948963898269369249207943264626487485274058302971629397934499522859958030046631687681581946686502696534365393155030952180666065507070121638311895768209438321608783998328399375558679759540250256292105781015187665835331605102114147259210489377029597831287593969994356092547671006201040597879926521888226531110402961344380893623485663146833295530996243781166704712166139723356356412006215422757271979946760047135570384323385346210165877799212300853296991563018302740615570185356387853563682240758567557104164497663947099602927162883964801016834501413523415026208343037976265058441037049563677054152239474876111602834145255943659634090149434859583288225060055189379478082468784755474286111897992052430293800977389539219348341736589349350180742621808818077076562629562992089599799775937591599135799727498366894627702407456305905206101211558754390083315832760779464648790985494811556614086622520992621387425045260378534176880324731411028833971931244100234137353012611780038901126264601154272752531891902607197091725508347694418356983172582903762627215148953993331058538596037143945133263004909777809935075432712416491881005639873818090708242548560589299517422231350388299039080008458728146209927972266917211358844337086664589677332374941535953795565840423332060145827261849646547997090233540218050327702813834454820680661316197974737756103955591792986378378675955268326970596996456254727705975094753149763667667185481353936644712413564043971310256139077896558901302865894683688119416068786895599573234800749830438184769718559144280512787371485526857970101908864609538174304168568785725079504398618794977445772505506166022597848152078465456950723714353780872814547312219315872164160857921515415211157977520198473114564052058313414345342380186086212118261856310090555264939266494992105224405125455839591635849621255077037324679843329998525448226256272077639883813320964297264969719006549657632878918021537897014301739864933973183197292007063584504486917162288479510709713227821874198807981353225987634748397614480279930046291381641976540963253605338230188419332854074711631759838798247807073590995361902962306873012207882932365825783807739168473158372419540477488034561748107519792009779352356062956982989586270807238265837983231899931299096552831901707852227684518576127682318965236701854137563601689754045343768557707056327808407469413042285968167537711479119524688144138020932066900220347371288607735903126879914403967702453541423168054547923642513633705869202747820888764342647684595705517599903005717600851467097789629486403156090022892819728983516666176983036575564348725335427460769717994277237726939650279373993778277609910120444633128862865225531687880988790370453114796360226255331959569240931893597161156710426663968457488884094241140832860306455544200890120256846216557377013864051454772723633060491437945536490512831588509061843410210972116581812334160491135660011486625787216498383114526348250931605213122000572579720093953046908943203355706096004133379555744245616343010598529524756021750150765446274344743206309505670353879160081481886735890599927087028984122320165690394323632653599087757354879049896885565018974319873813046471856919832623089615920427882279641491345105615766306239519483487105135086333284824896668767864389481946923701189031142673640727273820927152343276828033696344720618653838591202184020274966425393014087166799504190588656088544680924826866184985919785589032230411736694103447624645606463056874200258954554096508004297213133218901487407729081434266662502434324398479843691322915065823598702104378035718183103219196089578805882204275276643716102613236369728994425890075580360132627848661056514093154458384692371123975677287565025874267370778134403872761207057414520760371021096180316185243901229373242186545094041554742111746942543485632894864329467847799858780374360493206798382117931701947611739315855729071742200440867547660376001715922640144315770657865110409326006369517978914906236574047287945016169436360031022764311636625363541288742789218963641313219405642906853919815069352721002609065375538514465882008327121568817184492500267196587846621155799573654951099678219648621691164416605358973569490980866098196792072189722104870316669634751039626769191877556735899688567181779954762275169310221535171947921181844441707108853160829032057386962763016158395641889401518434895409551730041624511013671914222231559153589652636179508786840173778000109888860003478661197507273236661170057381531708004088250087888804709213066849451140669626319465022066054093608497516522058070817133383534332697440893108159147528941920711319944333823906546991874655224564222374755606069606856189751945398953123424811386599949934157503099478104391547133291370229239765894398326066957370553913961841645421494216840234248795301610004163466415769663950567306571359119337401819352710691214129978095148805695167228689446383824934604197319839989128676301065935300391494712232362664805753913914741625634809690043491188259584951418258781090117341352081450125132755491480569742899766371741535566627909230239324592227834540300624477108793245814229942013655755826314835144380898716989107416733424113704764415162100956473241385514515014954453870331153845604527842246435859869068911209150701914394700262950509410188829501478630440698508634464613798044198220892316462864302537423865838148029425999611773755473715805501210185953265545852283711714756544863888334919089316285475067186975033162894124689563019456638926132624279273365005985287608280161319394117753996488948484114521597853023864253904483179669815049411030937518949818209092888150712832250344575011197997878282535773828119817827588814359828421110670135748616759071535567339664095233072932693078470632110374719169338129433887067593514362970942671480219254601114109608981206472322549052840592395808490615839840744856517681066998271198280089955862817130816608656097693378413300132499086275173490538254414798095978727512306648773724142683337222132900000700329054337746539409782799675843280394919313390498659620429209988898195236403770095344879522875253229750258073629534229334165715171523413126943647373500696603906368233223247398555517305058143703603809574737438964591233300755618644758497401778758771923635006158695369691284322046579677018857755892664783597378392522623170510116477343051903337580850028143996453391443628678926253671730444536736552857007302937600363753281239537905328684982991341163706629028765125210849854454190002052671661634562939234920412417720384148423109922507945179389003571018627042617788949148927624550102763046758348926430743409765974302551221856131077952639161465071458671380487684158435336510086080066301655794930911909060570217201075157388880960731751852794273372253252015784865109208115942317147832625300841490410473471703823908711297399159295221574050348008494965358572707722100781245161585928680883453816792613720897508960715784545368612200170405764862321964713696365477366241022045435058992028171846438767207942513686735786617730852335478946313890660446310830343187973442485054272263598473899065785578697431185723439314071591087080449482142633560493362336604223328241766682559936000546632945603464874921257135179325285733091320268444790407721905179581999265927366739989795531654545776327205245230521326352869315101804049887606879483640575970290538068435677169272097970645384690395465297863188639521087571484688882489643325244787881928405836444553172039038008197144352759827851649917474686042731479300838112898548420479792861732124730825227528370081416154253035304293227982368094005686613769075205142904953630825681968949905737267542596240403153619391347151835327968192754825072258369574816673596526936887795841591709395303136721654921089847927472257816579498728320382115932496630244875573040345254017041052088325806952696475313784740095811588967047483880063866981398113675400781621802002436259074385425064340782113727680459565630106338644711373046336535928661156422834489521397922918295548702609497106028255975731629574442719138479661166187409097661869872269856099531286332592441804391994645642392260260166166758254765809210057652974694979307647328856743115328474012005576119546082818010659833238427739712024605888943656872565924397964234019483744654758026186883758894616428276029190493970245579570627475934096856410661704408135439033482287210852068176473307046571983324575808558054002809702060405842052034305522929441116141733946683143420127315217331626120931397758452560125485856588986732251645676514705358601379824227507282150850409353494871104196345369526141043638608828706840015691976087513962709299620519164042031822081271723961037111751763997254835922206118202507721322955756795940923646127031462475881984455814631883961282217057633439560526466642362599274453777434856384899221864257308141063100808484720045172541135689938764659202041467840808760341197502831105590540601251152594635360783871405169223503088784671975408149723730481957055729418007606962844690276614298261524595931816334589148900965213945544758677935340340331893208521841001281017199673804169224832498613606368214464595992124346340180502615677449442849217392450467137135737841584492369491050893201579167737114480087751133607447235537561409085687713763533826693220251321151624136137457501785117770515206960021423819743845227425654456947499873050344972867871893923979649109142063947814932717393207378516811464830336298287969295585282938829797173344326381985971293861430734224891988352344539102964043324414406684476151741731770442272304528290201877484393077505619002987593033270179093027414546970948665993028589503829110979162677602874665736824690602081836374450329133500537060417396928638561566460554106668266387065934155971348806399058196496866099323810508025393764966141529642242178326690422319437428930189746179542107757658428232373918685493924248972437307887960792549343162664841656732685265063827637841676243435852321165035510578938334969448239456154137874801577997941520415587702995942284489572365795926735127907193776564746202459333935160337017465257725903848504984461614820438411395255169689331679500215237702189450252300397098152251453478045806127962434500353605091846320488584335111736878010708676477363177813158055199749749302536228745437405862865126930624326666110129066694801033479892050591645642403921098465610164894543751822320049612502704617278511068285302680222288471330496410960247499809729249136740851948355920494507487613963972988224019007196771023424961246409554139642805677485198879989779458969942316117003220039928356336387974636221215242148891659407194395837182054175846038509691970678030327685115332606529340612072647100295074423869680385522634063064940093632412759430369510069493295091296138247127850202263756844362512201161327997883479918275622535561895457672170748639095911010715409833820611526225667672019024843430270149875773451207399355793349525574187828265861266035907651308207672836626020098422390892080315100443404137551123100439735938879850735968929439775890365389905966904402323273198999179193197175077724352935773492171109216191659631871236134660308749963869871198778363827815369643316776415266908399910554940299143730845919157396326553051810409004883449874554306079749481282360627509276038021901505336448499138646683058796607769190622915532342019102712886187792442708797455628703668772734753310275206421764437469346211133173252205603983990612491795419185334581263868722349889236501344485473456371266243867896286617227191697419643739787245903529794969371203730454507684699034692541190161794996387170028680295044053541647467960088349237905207510556111880189501484452340594757829396216007715659612392920927650334046261388021105373395360314979733544208559454530651156944123124193260465569997920963671635089334963191143045727835526772066984546243803042977632532881284243054241811578941275055139287752974406653131750585475997313689089522282536199800796973377058554665805915547168454107273386309040430763052357906534017626770927391054874853632614134272153205935934344918607405011173549780668610175618475293606559314870557041398206431867150456104045257920276389218082431906524885822744559272755889751572192314038575522349547347420592077613465419456261188872451487363861183977581968626453940967167326001935787184981071358012309370872249872394993486983381469341531521056022004687803284575854889661153011026036248310722567186542649268681786164827351369761363082289619578989211456332121541490543657011607307066986283386168039977424455381887144385665674665807090716579860705121689577860350227825859185690965822723107184335788132559515877687324413037430861496544864710709443400649920030323681752455849967848508404758391922047980795279063525886367525570693610864794459050669363609350021377050658254489961811892323127323955171481309201224455889587181776668422588565184984170870442891625589892771180052063500755709716657227204497064861243279021912602979447786077057711208149014909616020334175100778852859139306865832403565373647768527834790510609408539139170348312060575728567990504058754913781914050603370168956700138493647418573291351776178676455618438413481635095293520607532793246041883807809474511889651399968763439132249941876119554958087261603310657029301413465184855421298364553633912472758208655588462070480252370215677266179921109534784068607217611921421957442415184453594629435249517723029091409757065788040360049373706658710176293600494564969535942369788958581475974056577563714562466284342885249929340815218927300085479367482023958533001830141601318358498131141244018096932809391429225487048338058619018975226368824053696836097972258390524613137234915107795425794844855165066299752407215529010728722458011997663574175413539192352615803835757863535321977999302068473281862311924683407776910259539576686752457130914820167057185794761198971008644575850209884804006863498429291199356151639945159837863234358364711285968370505389815711778982873156245937931043108406883444154719744990440526677058729199220975693549191187512360468084461660994112830496844978050114529554320092058324999802279969358295871012052779428251897404332396575824913851824809821333537940107208240048776943289831016030655633895135119724366240094947793697666035830515458719775002044711822733255980619168155687254534028101395879018229918301581550946132949752486236951471643621262855874087550328922903121782722491691721156641160448295362861814970922410619454875374037884674543523044767248949198664862678206268526581029712579856800017146909361888959900032822783311771764117288716871200674742637865225775707235185412291758005455987160814874776620211323277363886778808792674350605919952103412642264137015842853723152280339127490886812605382699327593055385151867810231367294607344017762888124151044670332090923260191195957738728002731744886625447007314406483612464545370354408229842381341284531908019464602177226729520862926516320013829236143663235999316899819676732467318117409960228125508596531585106708641088559984312218096122021605875197279102580212537055356380691280393899080474721226962858615844003027579181303473325757256535630923500991929571352554907747039280476869537935488463170617833916720926704568391287832930448912040456104194421443982029566499212125108632987620730574590051472795927710791054267323294868193487643215284602084103845625271530458562877626487267159800741235096120566011422198296120502536160348486586254044353894217360163139984843547508239511646792717049291452861342616003297582800518759636852736885365333221842317195657647243721321095934029916550879415012357566564067952292771196596980633471871906952803773496367029900172755738043910259207874084259508713886960472071551904133899216536817859294466855632852528287893139036200989996959361912598051443113383500465523780151195023976768104162570197128761968719809064192006828532705719561422454207930418632842362166663115009606273502604707621095830264642681948335533676066176899565200242535271825359469147105757573870734605209713071907974429511705483486705841544572081359505892420876371427667023958435950159423832700338033458783218084294903969119542308599427896169235496615088781038291912764970452018912242350899776515148335935274306787484411429470131952949829447402428634616528575819284206478016086497697682091517391243114159821640927665063467674117399492283735089393278917348282396199286960714175910253942467787982953854873492544898154703665492250030347696300280253416340129672179776630262824114132409605292961713681013536470556867293529473298461931302381063547062635997851259593707702174018172531308583277426158576075469325346192429291299219963660596309082824820298459753876161284317661321067213906083431784318274041930584483662628796438517770525211340049229743101234768629324312610708786398205784641192053420292237069028010832520044207234646458815185889359211400889664172782627684580615001817719119973103119323080177741875159942888391633324793884544953175216655326231565325043470064754824051809991052628658860852763949034315593189545156484766581917364893072674171418221052144147607597542751715085075519065032415103580853404368976504882640640022946644942008386489472449011827770225887896934152737228858751912752431184037510055063669393197929231911411226717079836337848981207889248497550298935282073482042954497869947837788426336361459735733540806894725976953171346576475328111672144416890951469192488526085403053322690502171433943668165257810036873217172566458317828990543184445429559031743058847683723106456293279128953873280358805319955363354187193931252681661362384132618376934326647852624190379098837619232022513593550114867378224905082329905934884501404561273684807522952605040396134273913129015768642809290686564171993328679543272659073014637515688315553522570999632377159313804026865834090315962628439604228962781777093064741967342236665644239688898133271923399220063722374992740527071113110819631432564107480662834129477196258624706926324174435054930413724580356090129246497752749001072107395324087431725609154658921091644468754373538804969368171068032271046020519070412432452731216237262860247336846103742558416617836226690798981944093744131668333057348997369992716445716112953717215653857700818087339520052632496158405224376560677960394713862448232497276586375378071379599667407778952139161618260028836044584369531445850308999197085623948833735392072034927917352385385777684532684924547093787785477390990723194778180928078095206612009609941685967181798724716537897608562758112667017648780152490802711589110109207743828323426778832175851429963115129159861105979631376926046933212636201762012296085989174894210528657267671991902602656260344174878793713183180736366648952287944541191535884656587182823180781725645352573273953202464928550670999910497584098453407468164299605489530864008616587246939728588718649891623381609273732110685843621358170998619046569787212699668710469310235805637937122757590596509827083825824902417398407231866590169934689608263516863894024911907484691930565881510312709027630107516019851176886447803503992500039854397591920713447095353010418900739670433191792811093896165928284270643441118359906276374646368000837354457380635590621744156014719935056661513045489165500816444082170521917184981125098688657990787174922943799122479891386029562489712023695357736772276762899956548727321651106160449178509438032884504775652675435733626948473227865590958295462272902758607585285471831105622530437471195636984684218964868390231432514298898426190893762336686491025719367305919647082298768739083296597606981037658944754098830903991993189115287449131904465459090324103817694485673868235037420641014626372856323743668390186611259054893224278103700580125634634539238617554626965108249762513612214930104188829667392163646094654231585774265486308171896993110743097764142372591208035645413755128527528913142461243949985322438604316492296032236067959581578560617860199236130127364851079647743912545006247030375191640252963761671779955061736227126083410708896589089920682864659827355101990181413617205320575968491001083264620920779664134803601315147800801338789159775022827067428448125148638194513165558939966711613671569912203280256565496121664606839730698346552449623655339114520864153041319240664400806325831550076621091872445486702272306534481392519181880670012170397077768564724100354957340131437284396590721871907515630672753539760650160180686485832068247323984638987016007874144963175902179172192248525707421320810675735550410713398716219015434516202803280275745190682580673987397875942353247241012574696598777946874141299336357171793683448374500331289523299543343053003778401817480088030307232241231515336708575377939896163025579863913312832146139943673718329193192107796907701248736736985837959216621527341804742540618875791602265139124161152387870403284794187947497706244306323128814324558482523243825670496355631864253003170025876112936345354266112549776202783274567408462857043118584606626176509580713072046572105773880641499294867022912678945988785209534423006157578134609542604780524418581471143364837675059073546856923816445959365430970357766536487361870756361240923752828823960370770224290412902462445815893640654630780276220675985058226722009814663827149057994928161739030989247785433622495055208841070232659900676925361903757030288522462777553707390006781250561517001959073806769862420713962004730639345704321947926569366113685800189224489091891097066230918717993036561395847946228311419699476423176085024680526878794987000720719260153390422649232439371831398614859940099918927117652435922455300872957401151112230397812833312476787645841378566962848787220040606728007489161885537531989388601229513431426209089953056880067047547717595607455472659019132936354455039712513122759455976055253283827895559280423996857930206288067899318340599617610847369491046290281914494303970268444833022779863676288627463051487679731685197261116788629556908961227636881660851612611689543833683357604504958831836155658041895921466764014703213359389649562206986103020069886041873027471809511259874313386392979561715092050341024914102862975708588217119013134340726939041637368867804236388087028582860372932987592511943184355927035339661880503726100050410611014259628788914003775496002513494377791801380808064658617721986676335789686349197239614665741485941040937617445606742097796635046719838781564194275651757296268665261972518657762282392330379384278304635115884216889560217123641193606163834888217815597787738156844155185227957299837364243163618364425540564087469570631623628049636393767465786331077132953290171825390144624715958286101378665908946819110341223505797186204169545164697600827856979272709450705022403422058932953706128740592049552051887610510096746426091219395644352200117287169036022458053387211775669389406484948562259648048118690455547729622155274636830817634269347603878201770221546737286701721674023913380556433704019269308042201874663912498012043261595727831843724947269687405108354054147971930937784867585341873785253937121013218325818914059902671683023994396710544941821570159560125126255507844199051209656041358445262299603880801493199167860062759022600205535166231885751686744987089495820403439786013733499096015962711526397299766515280967886130534928438033040690212463314047175663010452810987161619981187075327408340302081351120111439273439691882023631945429319478304452496494850568222548400276525074148669257378687996047970830830106814016424972713840833337076427748391585955169827927471503589952026255931359600169118448589979426690781044367135750556355618336327546773649114222979056133253703199239462573517430604619949494920186681613968978755782916652993384800405022653836378737619399023521197303710598433050820829790932189208469325024418099430020828073771049874933139148296306948997347668475396496688367019180145270588252630893647837233135060440767028203612458002541722380798826364058970793713885501255076136044779612488296002909446585851897182578426003745467296259394357506104298953069389109827918327631139537831032109730636497259567894244329886498403214314351922815633808313764162673893070277709769355948664554457982359832565763539491647523717084727589295192242245691928651708469455784613268578971942547766814568656724616069424731464005272934470205253890142926894917941595140097230379191427012804150500021704219691227708977392758486457720652377946165359789534318207199203249369878704480862391583215738305852499993157629302656193600150386083467114832939514594326894350040015217077291401314835585001555105041412761984769632301709400389230804681193239342089894370407842113724554667243992231214016357354472701565061321786984032680083229651750049132145854298171398772975802903892946929756136694044484666862453126349696092996799375618578700992781209272214760957586949587760476760751406914205692969076039707146712439076476409466907228490909878186296870117228728023739754451437926041282365118153418907686522367210862031765082203342836704993799390934411216099146284383584997780545014021771074171829868518315441173357541219061997478489299142827135180691799096253132243529222937064689810929766813776367594790763849034820968009915488412174444420100560280623713971750966963894785481902625446324521973034137853851813077680346947514817553600477745731707420177475045228602902582827163423544841232710913126071790276602980434913042269705667241166038777541891192304560591437171390873949842709340888195737440464087015688284134795447736964706692770172278677271823607404965247748363628155886069189272393041143365768932660979398672582082827458006356949958942927030776984329547759092642639013773180452826980883542624295271068777558943845804699556308946495369448696224383452480544822613904295315012409499341679319269951801986070792607049398241510745634211238008798263255913549680206674627049021810638912135645875857504481073036174601516597007944673892173141992639509169203377921327509151781860849668453299961360891981214585751157387812448017700919300385054920125078084912998637064381728992725599475451668182440525179667475352686117815956538542542241402201928504774539143395974982046465037190997276556539811750889090352907539093168718659549693137771476026593389387994017242054475242304052836412245436699954407509535550363983177298365555773375182337931990078323266500263590433760733895418703006664769885959643246049600167460179455121615666459854857731803156663344755097502224931340181240343059277918145691539979514459428997456692081637062352832560607504683219887306609197062706118007546126060026968563173697702950759641254092150569453050345419203665120647542671414566705444812254122122322980095162789613505347767284915949979851690493853926564158430309101382017014256846357914221850456560914566157316959715388057200175700167924994223257632568657989219110311812258531043767247884731597040745810516705987918946403495719799957366098354620807115566478982179229340905174542028989151710990920996352644058268502087608423313929324041533821838387212261383323510066477695800624739115340441342306062796395827380545165183107156339866279306064804085251467157018672443277339287789404413752449936063377910321173942642766112510285321571636407377563537493825009929352045081197594855395890354695933672416782316908900197981479812505776484792939536701367089073303416295245522533553812288666971048541282341606300724552811962080667207906535018400950958265817040074795631809259539712987453744980665488073667412766197687356475717276744368691021931993007552271448132117298590318732694957543725829363292520328162600802568713691016234507701518187602185287152246170443879492822332891284966969003941771188535774435647791652693528580318233249743652173073834176813921384123818709730954180374789409774243586952394750057874598415062058677649467970195358578776228837431283370349848293868164287058803631921428675559322643037392030475605735734722609484703101611710220186237040273707659927680318340580805263057629448724785650359478975948122067196613258066114761397733654876525525301926307475080884278093559512759878648524224461567641657178813563868025159039347721340950455979600911433385580478369300286131905385325337148738549917215560948816909030357240125653353958719241425692613762140061179048678423053015688957870099982139563917795454553354725109279068384702833221264715527611142024951880598724542737021320021633907316662725227626366661936473440041577418314116339273513420044155093217898390799409302917773377393038543764614531606437506809381756045645339682158490176936611253941669135886575950296539466557436314706211204873985717767522961671477016862206241227433062594648675748401125171944245812587138562613327561420130154299198521653091501214560912814641419544454942073475853687792564729624997046531584402838443949643322944800477232789170165136143943501342511267025005424297870387622915798935136438255813660624889591329044215210095853481176938426594045047343330490492740869645052902465714460671880050694034477716498487922405717158209746670710299472862715434538025178618235822640571523653733187609121951374029374684867045571514992955892424062426998235106448595484251128908731407547053448004948233083989187795883201695116828475481343423507369770441846444682512362176567560535522260137017338643116897082820368865508400247748496943135531728196480645465011850579313338860633977004693713775376115690635156759795546096269410786047993343955263359449704038466024673144016931079649715078133585589580998943367448561603987738092365801752922572758070079288197966189627051724541502923907928097512589845031249190226382083611733325232520130685191237521118211334069649883993528616371300283010301072903406343585983944369740064716941604672857754489682982463300039124492253378593302999553463751432945709068995210154391290305494143683886923262546019680013778544812893246868562229070517397013662381544565537719555964439192574493236775215304869702646140852690311964807857268679800768141416245797576743307444995879757590492032426922180420125187344458505718712885937604062724265413446542668076733286373196911296288018365699239990894955371713585107746799436856005622126333277100799383577952191076212675373214754535856631235947565562883872152467802538472203434482614581023445060763815453825579041431296927046603070456552181463868801125879214131958371213935011386534310341384551833526435640390686663974424137409560132499828193957434799136756289923498472294669548011550347568106641524840415340235470954465131707302852418445612501069455654372962323841663922356491592332255081403813611223426631309972208904660034492619116893015349725351174430931316183641019765999439411676615267187409251787386435337036927838496948656427798760766260622518405795702480553232759554857041423510789027557639076590038207805259033702174120214256677942700207104005859896094921339734922445892500520520346471266487093423903473917216344177071705313446311475055359147915503477562889649121216568938023877464943177793744103578518539626239693136903647343563448881019041625455167675812367190251343466506751433675017204485056649021900136197722162244756476855954147578450653571657225362875581984697762938102953538509206525460209469613545461728530377556056375324904132177668403612040131049670073836658469558095202307387993135938752702728701590023557580842662268990747340082168811245151156930264608397176533979420341080639638268722334837795807760881436082879699295649506510863244684012420089327138194248229184292137411787936719835396711405120049134223190873199313979091660193024787324380975173607722829007595797351080182467096387531833033459740669104926610015397702460788697646851549820265806660929755255734893766326470678632005504982201058782088401702841043180280960720633113651163217415489797026376583295886460730203087607689000271650598422356294874912628182105200521900911911736307112371127617504035510916539787134875016226530349744653586169767692451595054746625745310243701758857061288854626110490654300680434444719233276523990317454155264570738699294221368505494915691489305761740733381800338048191369822215782376293259583984932615515451227045172009605171868251790437108672857911284589774917701673527731492190267545874315425201146880951247157274596391586163503508087016310969747241602080448256761939059303362313471470901315471527078903540784744607374536232556826784889248042244699004745755078048253107629441617004073756279541609433683230349999585316657600931968634204525489729586663020660576858131326916612329036486860794883178171512017296421069414586746330386028447725304690804744819708130169791828913584287990083442571065635040168524559293363575094359416963251239392827130841013513460837467272271323032299638922056783072739996056159885518173215597261772937568018743794804214419338732000766357329989322469080906258294904820938508544140661514090129439173872597589419711365034929435808056513065067486002535437203428377960471731763112298479433768136426587664036498912808274257451032083831525982673589151453239800113931259051065991887325209343776607167435353879752068306837413082908097660963384531797245609418965433434353282572824491481699464997523157420455927231752628988577529906926813455235396000115160134454717722476864989593016411903107029630922273204963998940670672825533020802669105035840421915688697099696655262989043710228467629312994958111608236905066613003927245001750007491702583867340334058952520796048370121132849014286808678949936105591457544286525207481659791497755931041231283320943314913802233905814615193147342913314642853596378264800626149279692155269874051562510223411568664512989132073411370933974000443773073416755936303447571077337822199997936922178370163562680559728822814824039450793964492430482094753251242513210363199002112111151296868456242004493185189730823660487534560237046389553966723605467235164195483992241520991199574024024396626004486762347084401628460185416004417757453986626696570878245349648187630011676818030383228776731231741128802894624114794108098512487465467490265109994606471902477205550416772291967725641658748528471290122736344278480467968180879911700449865291260587301457522709599967595666170650665495344145503227621869179069727714159806771265736031050481046662129762462898730901039993437967038941192070597839069296457435779660508422356706340757891167285167435919490105411025617350505268533834361220817987603388930808841542251706106066833140728003942906512897088863095701021830224376789037547444725616906532231682066225002753821418347656628435705365675253118243755591691135856248997976855409708657605713827864640578510432410281919236869916233504180457689257533032486024471928497857617362336224174631667751057313495967440641410671450685056899259310786819712833620938263850865797766403417700698475365550336074695244753189241816284155912315102367469727398218998467891500708326030169889559000109881178478491758102747446490608698286501729568355749551320221038437411540436834587526704771538630718176122229793820292223632439650076007601820350335974302412233316247517184957453952787682895620213412186400212753843200504849600914243090633988258160692506141761162049464979554235496637445737644490163458408378243291473163634004997079397105969374029231240382339805215317701811953211131137502431701425239636494215372539902202863265121029876533382505046787385527499302513429789449554389450778538405258547715036370439583489455769531643281082379698793041836875526815450193896861747181433459577099307818107269081424803158246989007355396525115302274222121819266914216009083123241051518548099098506781994039687204348381999937921737549209337226449256799137211684720558924744409616881227294337682012973365154990120493517687570598680727046481281634449533070713824818206524852937870198062778711739704126319731120337947762697229795999373191576773019713751610205091462668987812479100393543654085637651332725006333878629777576741117577384733219520525959641864204320915984540590388550521382640689316954919127701516588561257644197154807084937646128146519602630668992790631299570067082829196245505596664408419330923593895759607923394444773132908844244920396345705195832891072676062916312228522548542691841168273582395279578603409242636611622152789691795495850439391885854390439017367201475148437394903008308317847829277028437376653275571279583432219357228269529694904690950099102055536495924535393377663523642432178950841606733285246836152937064798727749854499926372014348183484024807538086757139314177755452095412922037390409743335957348833953796476253779880433496800406662035038309845426651988221725247028578286053584436494228781169491413515327942815301832196386486264381584028118057617860071525573277526897781898798564587340264433482182816922931834334705842122161836547628554678718440593952965068777596408083238783798456577314656054584795310487813775683713498952571262168405733810151339280824156688053941864564304458382335919008608210702694812916400420768779060741985478586576343864133727534540725545192594868747148045639639068496027466860234345999406489850935736333470304034909252909255004381613505714238325506655511405565127711264617927474004573201189858530662628226039327027989010949921506826784468487102786203765412365421431551603875927339944509135356220068361758448738836959584752350919597357674021665930897651881084748452307132155879233540709687741306830668956313611804064623218906868430867021707217826224024673260408053634231674001060137555164916659113888441829405915749316815085355150922883321668193911882148477756149956727650970920639328532426140646335816089380025759090181019478504070976546619364100947483297379378730975273155213235113757775828852109446703547544743309275393017295502331755142982438254366698114561310951873177020282976239593665844765711617991272769328273036267263502968646208626249395246665783920722203353325761853884769853921391730442696578306675294990757482200907627737156297680653296283981802725372175870278002907241575541353632588892441413564947225141361119776693045290349599684017259239005154674766286377949594333636851256649439738024574518799258639798374851550984971376643134383224574642330579106052040558241871649393200569982585504271525180819166209412475770011581789911051015372825926458703771615939462683577677135181093886074134733846808823317216799479481592942638792939796706540619755356068069967096038083222357841496966318339119362698710551754262811321522122838140834572354587008700816281614242465454985568586992094946332504290685030371306993206715177993570492614750350945988801816722376286826462008020756703917636955410392218676782702627067190557254555034624624948655858756825228950400928108832613759492859195746145866189146879265322517217536206113603499545285817615343298296515115044141823182052823548525269628512252350372880133590121926351808245675687153910335296357020242506865432212534532308776339402594521826118576471130956797618953204613123325343380257457345793500495073054598622126943467829565482609025850784317885211778558897481420481097326178795508554202512333595150060287494515156240686714813539095671994406967178708053898926739641176735974300842900882239194512378868295519550507747499382412742711850808515034861278345389064821528851953106746858526632573625426177390704457636171891088089352090565791409049758691688927908102570084681863784310011652511005702520640485946833057436428794225493856284663745931453727142369059657978125463305046603582235585016907468102950975798243860357261130776231097336708466099503871045085994510953253852695270343075575008751691083460321374432408001455019473088186921291381659067554567433852326092392615704752369358395163477523261496972051760676832918024990224019139958438527113512377764197846097941966123380304974879082915494541053593320127844119418024341460180986926694589470574643311857124497230021401643370643713046716225366347427070172163262987705740069355254468274590478146479394833323062746041399055693666803021730401161166330788463143654453672961638368071196152842474637881840093074768560220681241617409869263588426535480495028252854614611123903495300053930118475929032795204517566798369926654737473784249939115296752430555011519356432117053807779130300354242032256913100159279860906530408743003126264203960641142412918327613923584387334019789803078690427110467151925107023180762583639752279794030407542610091201167464844341541268734424779902415546818438258916246674580673934880438372194536710125224103552065143585386484635935249240074875496084976547896514031784869027151102828491047465735335819756202732596252019652242663916652426795569213250441090369950904356912081855195096189392671414017044681679918193624915293964014791086863424013870453891558596824024044553210450812551537694837295734769713119216153000438197403163407186490942551292310048177696536256749425619948238521604261299530717638231134891353965038156045483677281222855282736324793523642617620844521008066234586293158601705113918856318299953673390069145110194808351669035356108961125364662972121139810911672934878734568086180755841416424982602975233348281580020116689768703315326129706287422210946405503638516954912718246538107878857191713631367534043986399483402946197856927373301743867668941913284098055071542607241117659465744049748588429130363727407249251096171837445266240655102469792029554042881087559196328033212471244375242319782894400736430391875673915723514343607260401661991341721566573499656173429615042379644406951688510700677555183219374375700647121329260715972301316544320176753457005670608876581568224363464615381740810738273830084780506264391651873476249052430124979387308923199285956578764306699363301229068670589901627746353826466002375889642216309599157043144720516126870587774628398486504449696128724401007604438107671672852732153845038293699684729918897377796523087309618492625043866789291185331321395364842742293551717706331816278127733536250602710087863994771172908782980491061667144928831896276273506405728170631765873575454204011978139890886230128421049445986285132672856577817586174110464065714420368996868103418849261948939459311100294821303695628257795487909478257463208756390017632312936361104945501395201922177761105059625111151361771425362743179037845483344732659161239342507983789651970974888880075773850817502282794273461672363339314100626480772627203194111687422573059573672367937626391882315065197164142278486699578245607998013554307620788049169986598962843150962227285898292656693271134315143800347791909970876788322388309398138801130399399178327578603365137334183178903366893878215734871223249033306478629832686309359142675712580412615976874875489341972697430935337190912638506698634582136480177956206974364466948858224998482280201058023353305193488433650808231043357480674733770346536210397463462113402011667449559729779822252440801128145755788398489012746931353990250689677922704079811677575143917733643548534742712319753959148165107868798219818517731249009935698434364463796185855146637354589292183571101123522231611762453599068691523598881452977160349489939044394320798668583630099444111777669256855004528034578405805474395277684828044877320696331169934135887732233585197845926584950780787496718259117918625001926622819053941674391181184772992688739483997351499523338928299084997684731866839209398416897403315767897266524662331806957314974495108157975870363407177627482212666117011852148136435066315789224685661680343771302436990203997293074193364892483476325929840488520860404816713138715534201928018178476377305973916851256774692167233558713974460138227650833267802298763300358087998538098735167848523415266136892954431178186197678888029875282280567911119618139418053311021990670014837614756947235198093731282298719870694865680904415382646533687902107265099057509335233219730176520617919348096084058880569149995096593589255562182903796763415960995451451381952619881651531428359657700762459937102808413657928196757678160360105823579474816030165341409527620576579950429602003936578769029455042879873622419414811347565866408251252678237758128469887093520897415198767942979317008743747418091058907859160626712343677595252642221774612570752988143994878837359356541482770971466109893831096491952264230508078987136840473167358306326900039005801727870841849296240604006567669070950911228408116625882253168989296364990113123019777991347411618778022444443083619716210142581850591296517875409440807210239925989601199837910797236637037371676706373158504339365900697321746325353228857587556735570736676936828113795145305419998980116646796170035557789953435012318347384067694359670734715874952508776361828464815652498299704748263516969437017942667557641539420523179027497207903495540915456716566390415148644838585054918982072687218556327325246624968283979110398900853127681548361693929023873414405893290364160724700808866569245247086123755161618771027975766582534517451021154857942275798115986943961690364847273376609665907981154818872779004369279018439729317838287470632179216426486811172439650195392310052751576312781811193689184302227951039896290132425861860687958491666042117981662215200236992017230739998601616288220622151903645756628009797045393021103795351364102173387380051443193813254308979007354504806666879816716021110249915046252069871131930299194615618707606110496115901721488172057692921257688451394440074796961998360979131879585158808172795844505213591129168975230335275748467151665560358913287655084000565086110134656558571867035363658685939211194616645324026293430027106993229689077446169633055673768400575478340705707072747593951190448357899145582006096675629066575139354481328054357773586129790242117196953635396773969716902441578243640812288075605852392351406343414907119752241113660051245577925621086196982136827931201428272116213737211053589059984294567646948648502726442050872818516980575999674912920927204939775475115919656810296281238008966823006807512923475877768669830507093706789276730617795197509773868902800891262281135694653505771882493941346139873528613326643355715585561471281885286501313655458066339534736936887597968692083657883306202177084101310824050840451954625067333613755148435991235834176549319222594671551212803311275006514705245536189992041064771918834153881489769210621369832141167292970851415277900403328224298793852691820018979434872551313205703981323339728240229145541710553213062573718735825726871651121205368038963547892579553492956499977400272668674754368622441421307565577324408578097201594734357559759797803159585765961270551105126364411940255759833576190101837170638544828457502387997573767692293321620729882970291754678498379090545243243287761182470034204461246502270121387162743338975823330603833454665346864968104044243063676441786473655382151699335756034216601945223652614930383692477516218639726353092159490029833290742675632797293300587985283247667925411707796016041479709853685181536962459497572226470570350028496336719354717571956203590793195197350985881156262798837564082577700541827827727976242252430511975188756042136800619203213212563878363014407941965154383812041467871525372607020791370611715174133705071570601936733243708815520883711007436360449361929391263955114165441480739253756479782902339367041742298886910187226313712377777232937705643731646822593959390810691555486725263821157647874533197697271613721056512451322969245890569513810546840707723094586711634438428791369160105958898048839809673723989845872720911487025004056604936210687727738342662809998067993203763070313649558718291009268100637928079173888717955283509290313234471117391096390960205994628231463899025468072457216304681617328438146204361194868159095710370980287380777112340046140249833824856856181969136717727106807474729737519435210856344507332286437975684422182316376978386596804119231756498290474277930585098790489630414139657658733608381357325201917619211434471487540710089842914181422896573530633781804918623027447480732362007389934077484259761271784692705624906117253449171077776304836748556527650178140582305482603128869211981586529534157463239195750455817474586786764782925509522589333909682217781106909580002589436530029945477799578336774013465647853373484507985253687620507478919277008363049018041166027621094818510161568494943826788475703768421263622987718525256652466065580169494021153488207184819978762363086181383684748374209352871328290643117177249012652335877309477195082497914195917110799699119025602800192640560296101043580905807811004315147250332184342290252982283039915770139772404591232706846228159136561282151272214866763876811742789561132609693765112373495782617271655920500585148066326481504047602341598914722795494365432486811199286910247295004245488070420198393544012982452242797520105967746066175254947570936569063518606902974913782175262256482982114062484719967036922774524328792135724588808165090169838227361414230802117572794382471488619992511303132218198193028521639083163591825459101029706091172971813228193938082482552330957475989660414741621769066858964709053612434857785508444337676832033805716082485777784065799746644558254000794626240329178716090808656571083721670851076851092290183895911988222516847354142535939431145320195330645886757472573814613123930042458022685174270378636450371646162916699967895616806702830531337468531175790406246530352992329610438036807043047396699151602940174845677737136153179756672396613569727801097489653064907557156197883130162371755909700739471189463198966860152252960966568044989405260271238987145116859136784143369196088623843342502428058996702787421006449025096458905522387080032306203244295050829964064639797426987632304127104881392040022568714896483588969642931590681435716891513580169832278876401844586979385913929124692304281303636572240112894467977001307985229847630728681410040981209067659393991286272524652368251526493764043024471976381357460082159876747339096532338812516709659660557304686989518187113710981890690191321520646467135816513352496138358410742230459299793898062957401886333016028679294963157404453482022254987814572555168635788188105742068670429782869085495988543719354650667426658065409263521012452079935466936613882172691747868864189161951350534438655796011773640785816028292431374272998657043959585779257638039984622456111410329580456248297757337541362822154030688427067957098995653844260214913704621374172493580400562391309295878786968662145022146730811196310640794453567348293044489989304550794269510045318417494928742227537542666191586619230580680082877564586281412506892998038984610267825771029687476870173187436510321551722790890488523809634533782797639031072998787749622483822185704839074736489374862943223115416938388878268053088166109242626509463849964402280616628806587490440529009735575623307756024360863215799781396594858411724835107843006485861322820060791771193931779376823048433164775569442032508652520592109876921720767988255880710553725637647502096790213118798044501438717533213189341101673981654973001613015078677027510945016376913519704884289935287705672773304078710356075035446376473550479672813620645608926866977325305390861262808528204135386659545087953842513848445578500203481014503450070076525306368757098267640043750077159854854980792384582230105255001860117832435479741048109248662167779866984336941434063466382274574707976217748223522025381060927468219047210317565751330180595944437999066789267179081465509427365211038613386417036742617627109061406501268274043103264848322760138878989695013972301617113120130731779435497613730037443420947870176237219566110724863690127170292602045452834644028681475019143011186219747527695095380125039400053214804881530599184747619362373746986283764825164665893998398664246363342569108441129164555228954820558673019121074654499150340896103325196090822775797594706731404882852010439714343662445106360755774152302125956771007504198056783353620101965065022743005222909796706942302609147710641584460871866170966510133272713248624791011472018675163309220315431334436424941508667153287165747596302911793369373746322348717741259947410373153994065199103128893071667366824800795916459444967342005786748855177746395705601521566434715983287432948256943639817513878203448582880010457942194552352774647880746452853026285770239885531700339797811256186967023237977796106170757283325479493617834705946642853931348812247717506274427798991291988346247650796377740927418455600426148939656153052449946644402709393602022463338832857759553532105224080935769478297051423905164944490802061619552741458549286182431405086258895836309569039040055278485206828128485920329349774508744779903845601348851436444652518755611333680048706170673852645591984299431676417413415644456831435628213810805008636078938205254007821989771877352314422812558821337850863257101379030183848973483139059748772861866558278375568029976262546891736495060851936686379878355712540727467738078728668546499563142259729528820624995464809668896395320495228477423480664622555457221838176395259644944207260022443918381650865218763038081960489867681934905845705006797124096046573648416626188532629620247904660054670174651095622690174812466525352903361046682658213857136525109525167303531999323810039312036247851435951955924014276611884473031246110310685241986216693917972260667973616284733444256191575437646030642937384239081297040415765409446251735529395315193348350882042441090229193573725392150931986331274486865791515187007258136681838180098112397292654706139869752571607000682017138475008028614603074562900071485906865754871721670422662697066657218800314440445510504447522811196125907808870888753667366790921387056622158974872381752291946617858137187903241373626847808531958945037581470994835307943073833063590815291692127105542969677646187772069753426762744815558607132215418922825826004940858742183761321669935760958265654708724177559103686039885411184680470705658906269895603982231142844204684062978427641395633327150157552594965456239898219158285024807769277507412183695390178617936100593650929726579425537883521793629161211601912428833471488173155693432842506628802805225374860542015906095186137678488007734581906733712684064718400901000804726113891195509835286128537603644247890557468573130761675902595367179547847389214898170213925665808121792093570703052889234321037617694511386576075746976534417198008268116146729913831275695567285940743566072697118846076650268118575672615800837692089137741293446539435839630240852398554401746151916323790844899766719796912449554256827778100543732503783137089844223269917889388817309368895383315023498890481403864907488792205971983009356636925787612385718701546991964707523601324083145544527237810950489035484285616153267968624342718131900753720403121929727773035376798655160291326524315864552655051892753359831838858191436737295389137095968479140411152528018338353859054002939167913065582082837448759181388705226898894655318511043808246555875532102938985180082279486762381324186532758053437148040530390965405312116383839665217221861974644852639949045378426225928338192945359788392177835981696094055340043762907828599016247254289505910500999649566831724918961313227960901689821983348799022334556689133084862137395921567139839686733342549722449298265102983487225252425704797789193338154379712314552071870264841618910237465952999244026247448616443512758810574708138168369734228594975276989708253197052778281348441019410134190379943279468733458900132309525373647356482626525092907540967246855401959790369960856613100384144632452751624489926829002087636343974364455485795261585665191920848015057269464344914886007297077344569313053788125760523881670497937428812046371332199111437297701457007508116965581582259747779512553545265685853552907454578716978294192297060626406656907438236828968853959021272964501481685391937530311533435849469445239994862886260881666862254755402200292093891676953233578127401122754496595751310442193165418504913180452884505614437832891499268858827810083966856052332259958891825249697205601518011377115403840853317095343095926726187733676240707879769348177159310770173131796572682921014418526109813800173351247548428471546828990725742912014048745289722217093032955884511756059143480110326137478087835730471416974488936204112619981567277122078845265883597711548599343789795046254655770739548311820759904705516203929046903713340068979504817081219144305483899801828518092105832958948749603712346954340644644590482529790057921656870001224615481176438777344449414042349799292644043125183180241871721568026813801257201813971719384162549304280341411045799078023722441120699076001711094049018229513924855802691565504733079357776259846098636920857761285320991291019770348240083663527252606142485676521940862143203361320425593620290481227232519079776683707343717922433044720491241920508247172394210528896969334601413824663969376136515714865468402172889503873086251802531157429606057095277920130818138373725688150462035137963350952586953131606046176925585604658644541966464336424454284451189493415514789174016443444207781992236600856651511643849317316879068414053296249636464487594302912622349375227188698377853243827933253539306327496084514006975832436109323032161080099255051330129599692772363875460512422042114161929653077779607035351899762072476982136662747521373839992398241956144763722000785826515797922167195852154712386873232976099062968336362646090785866796843302525989539036502887660139415151914570581812769917688954677093278432011484282852421960362196031763094431262727292391968268502737378567632212442671839798516566692672345542587443603671878106106009238126240625609579076591212027975134791965110222780197168233518793848974657004715713762914459899802501743567370655434808573579132710879562600967325810601656405374467825795675389211923460832572788282712776848176353123599398870517282812634820811833439473812489630311586326582383664439698171676367505899586811808201401810355858035979023142660151153663715534004515876800555898600455947109534667103366861080367388077169920677960768393558686715747794092398199171823053360588676888417675775713676815081225526641457050298036920715988523930663956566614102794529320194369176228842381312989066228240868232962188968035540872197459000749339705591206217789442702767700590668588590770790026577580662593240988076820248914611158078063699118986406036754276472621725100778687836209658172646615169227630652499728856196928637253910882794636387341920395334976127423697042083506043187842084399656820985438519347878285937029902193639109932574723154871624011996332451934840161170904983580486002887900700893495725409952698571312549777658834413437946085047459370240507589128066931011286601483579579665487851802283590262217134358945687034146164954100697199772163341131947193893492148461778260112826915962310306285557979888614729134879402528942915310433645200840536496173533537710005302277330880952362913902368977132833544277996531107005825293994926448960201089352931953453858712355009481530483181449677131702110226358620205143388573422688657769069472615017928503540166213106856015248919375558563812874936760176272198246635530480409804721188467776528372270714937078190625278058194985995671298733402787566057914972469291122550523703976825656172507462282393595781393640088846680874651746502358987445685891675478018043922188634363050219120528507950174541290634540501401704308318590623012923967978071305350687486933035684568140065399007132950133583103670974961869236312732463858627897677200143258616298858197646678295747542725905641212978440884864840662020389419072418599747427736632271405064419534118354186900650948990712775452115923105232516491352812404023316403887594963644304245191365898109917856434737545518474554968835001309514362474451921432210078523736771637194656395992465195140904517519844441266647064385576209128547915991670183522652553897138466766515716317778748422421815382402013485879768384096163781914600731279460204743611659309722837220577586479761103366741676967539031878373877554890390925834265287797590477311452546701672962880497070625702329137545144944470621857328288402815538100331830429079501907133268436985735741714386415532962754017829856882339741137343865792661765515793296748972765323727800560098172955854205935227689228968516581856677589766790463900459819878869709601036367191825394969789907463616529097960093085812023813457515042990990734192453584833810695790926069777312369826799539606131816815441998339556197712113168155771169159397694927699993545220520550722725064119834785361168972843625237670000861294255371233092456733509628005370716581721045758642357040585790712330538680979299478966874953211570594161132307133831824793463530923468892064443865669390790071387807751575598356503135048550789912289886592071397754583855646867380457358683027583011009027538633606600790016339937150180641742246817973056038375627455068668965484349587202450288318824183785748594473708676467543093924158513479383968413781596828340129672654599325203823604584972839416503557718505190357972178027662517137792212549035318744534734436858960690236950892928790627420944145631117283066425247340764276865447184950440128653613440368496872254480937621574305650766373786788103748622842328700454355724365702832702019218343947629349778682551802536202270916732617152118459006698942040387162667564287622422262538395061975739001514421030066572093168169447003468344655574652430942088124830465659190920451807231094133829212768731805901484690863728937496811937399299969196521024297481024640790742937413509586331013775029055784676418903982242567530352044265478459827446606025251854566532266789433602144267416173417166771923411979695088372625311098338516299678200958805745610110885156665521608741642690049889838070840368396391049316304327289215848882304739231477803654052992893451365697209498711467653129256055141500179019220877928552140943570854990220980080131516453256881322725859091219426287345019172210572747614320728947895970229213774298201274377829029241777758524728153207066030723633128870842612834606495342349385470220835113243885879608544602451165249848635073292716426687122685108120936135040446860468511948199761211056593491728881856971480375459305964788234548197621424867775028303583282453671897875675378310628734438957948209597379749721665809688235043724808189216839036453099504586406928257792509574815184290403753555546993598463511955699605927139188866477697160791584834542695549786956026585223610290388663373774878836396711002219640824715954206964946064344360568443647399879922310000437528795863963027739514435293104572215057014377324594615510281144977657642337884212330693050700224197643873852768721174491820330110451326391451693247929595832902288401323076417360475093120669190763510498208470141094335300283497307394330925980327380121745441514516770773483844566228153955647195809843331702743869074086473745932689995933917495578331787118886352049931488051398817628537222026797830474995515114510725587710109730647837322306353038315002239095741763285567519974205743806478990260374358794178007970660683086688697242009671487558414052289979621569230715818972940807602954634892571818476806301338893181071995626496615792293670666721547594362269059525374209652751970502140409036859916450610493580794770630126033579715807827569781719226523962625724412048908776122957400804657390521364673535737421892376686552224906235106391624225339013664452526607521034124235552795160877005016385369048903454410336279899273314076664452436765564735610813783247980766357603646650426411278372657310253568485506791975147969499733693969311726579393447350849531529174938611540082990994926336375316362393478002812014643563209195383792864863693370568157637227167036042861838093635682520175236095724198437434200212902045703838152753401449345277944366497129239660470647169141085643277457091542591343815336540400063582250573094483165998860844565558646090856108394040751196133973487411047893080629157868649667193686372353273617204368662975877142642221241276785883696303680611581959493187419503868291679359758595284439160497111531998874429382888111778997586640679413602021858377598394192181985055298310560219594130815654448761501827590546194076716130199034859125759739118298596557546008050545563043270978493895345907198456873824113566233191136003207137171650063333087876520266644878868563615422457233253603473461688659076145338193421994487235708033664398634991680912489875494824900568666307470790958152683327219201335159551654961367579773873894016443761247543549076484371680673011751102000925417052691691583359182494291183428999534744190309121814635954778495264424197542967412658720840077982750131074884409275597926120826543581472509868211917304195981681071516878373541131189463714841329182142859650678946368525128000415977371857227649232567113649766646522928164680363788641712294636695470458526229506521951263744683225001644663001373764714565924881846377469779373831152526054980041726084005767817858982673393848372898347389277767627834921208202726216809827623169607240505808869184741536363351312851904913169026274900252106750584798389202914723344732722669663343453355298550681893318390833596653504246107960059859054644857974654006716855801905184970651226885998936622818478092467963204853034419150868705407998349033672512825080800670924908702100176541943601996537981935675326703289809198503063842002595366854539529151127116380667445837022672777645977951103362188863031473982249747970821412546001443378545270686263500763035326767703656608872950177838112195119788378199495706021520349931476855531906416534650618052534630543255781786412732312590275772161981240296052496401480066462126080234749571647958494323699703321261192319504705867813535959793288907014147461717618324163263860406496345767175174888634549973316742986777295168035682914499442496119054383371606163346555084008578855326756432904929050688725634910264113503823498931777284207458253479496267518446150238151887683862671698852904894612857744800063918526763961918967106436153769146099324558761724954612808325122483722044802060128490682874187762393308335634011620989933912440948314389839228338191452269130948919361506013057461135078791031773888601281774640715847298589730609124947546725619312720552691345042407381137825595801313216875815149750388313012363344029145405326837339763720796297368762145919749416422348935406753308996316875758783783262117553152018593280307117837137815504064872432732496895675832926185528903534031798226782288090867938931587178496446757868881340726060822737071527814353573373091070161258764273318649473382424047891335940212645578642885200949492522857736069708122369653666453130422354813405636413849724665452017747103322632806911652143591064712783320205676216849427932679913635597510393027477175289466161460017026585136821747899360123084703728162859938028186159957567383409578462498402054780722301363782742082925486442684789017362456319663183782669243760023803125891350076811008004408578053459608876859207235421335426586877339911622766171621046988169864193306016781548616548952800919033467282905940689625236175647216991501115583071876912851219283153293242299349943217368774635429230646391095780304952741886760728735906655856128737102784198929770174063156531354639827727495333026003213949290482506594416035745974699420815068857728563126737369369003224849202302330031772321750926066328846874597127199903509481070637400622207605789882100511960342133553702411583050129194589650364792555885379234856978182364776083797379857181401796439505245348465036680407108735484646010570462580110121667406389707263691379748325434135204282242103022147547729383388529781040014375267923837585647748687636468055804402879786691093126250040113882455797282840158552386444007212950004815247389903873148193667544732035089749325949033854746595449010061660239694032566485404523320616710994120983099739478538191736358057098630672459751301992553434509115457730340885856754805740617965570014159800135456949375046598798212219230760595394053503022062870292752769884052920590087085284004430277143116828630396980707537561774610819800544517093840673124854148692689864668181039781976455367411012451892526906813209368341770764199239328113306057327899233918430031088916531834706595418676964494093402778816502088448249914461929638164534042527216148788974129217444783902429380748193075312820784863608228028976838133414527812562807915734097182922052991130146333060237313120491889511237548458433147341480758809651713434193625043785165777069016400796023951186460854430897037334552271472666657448465418245089271087364373326617742513747619016354190624587072369367747208496061376869402641745592544328463390094895877348813858695424961604788953555324946823995210902591136965635424356703641258534778049248263629449905551764832101771174191334706109652168416720934142189998283010598343222451540158442871980670315121460296023598976241737625343459189571632399592290646852899634497847180645091965818249800105158910835281998766228277495017084074035075304057622690127139124754176796242812180378194176167984062641234239565832374380897479595544763952783083558303903470722218304852234595789512880473745106551176396049370428184676927319412018896109274461927712290570195708791595463840154325497883149490004576738080678397277075204426417536201992230240839020611011378880621759802487702419995433714823778813006479331832571136106245153557852066685094546304692539090657218044887319552720725617145050696161195491743846089124853118445607041264377527377683828208504756616459092807277742456938071825563195971238183550074847233554206996755372783104235346952331181650259225856235615707564964850213130918961715150321086163231256718218863600377746864342160031715057093959417491334311718123099296992611273705773326872360685911016665781596351168662497136247939819278281654637556137583526587855481449782519548995495752934264327419103566367104428699721537256543570300918181225218050535418704302497150113667257449113687674495248854382574716715333644167716560678268653653339906413424379072642416082323447183914481943546932424864510029928722531614082606340373983218801757103258309471812950657826595896236665623703069495065444001598584480709424152918728995191223165175623463839909678167855228141512937060773243774289891424963863432180184112578826840917114024213354780424766935707772899913406172457966899989129715849421811968612351558016765968249187329684745929579630667319440525152431847996104320085225757480851976880894510957211203913897212454602916994905329473110817600293607847965441551594224370401439247023765501237769758661115122522200515162999608932371868077769447589423210143147567688359904118663334438221374333809510177494087116039479988447502776556478414399668297842755875926552323239312799105096867648559729675430543053714547052569543966273836716541927829208205757568846482885388188291590058691095154149418707401079225225238592484071432549245849847839982072899300266831771396163870972357795731906784603320751459274041228787848987458200884411678684175973749685207645930130629376721420341456837579965602629796200757744171387930926645407033200269572950881213622980873442847938107085173202853375770398601652000863114336981987605955389491272783128943932842772256560737674098906218751583091656495670548013499506347722974444354269606723337263429283103970080715510591556738783016628703033947675293837959106006514011984292313941823557467611570302442717169043385006863956721659151813779363369937383792510338391389795019614941489834782144604917427223224660977357030608899511432092069225770654131526160569757058209538736010645857992035764543416955425572963545869156479626135544193642085585895525424419834106278642022233550828886776121823353943779675253019896854552425095062871131068502547675302825201976403575335816320389176866201822251747400328084368567850769237419756704167821661392219445817521443239167714045372761974529391193451668223600849850686430873962563719197246586970039771804469272675716737196222380018929280309741201691105908948737503881214276375612151644309729028876178109515478225732943652113448375160399288476113884899370645057750747919592125082754602520741192725777548543357879621479099243171323591173200103204118167943672217704815078381724560978197344165485696288405086595486410154953587368290286679544663653160957655373899931389838096526199734439341708084532263945636920044225096732621438113134256801044936638623431594094483902960398896595382685219990503151492924575643459587724257316413709091409566130075964137685413043735718539272723766170040830401585916988705971408289857326040514539869535086725913994348852522196122339673749952438285688252119144219149670407611994003552196933770993309095955976704459754450543227445634936992211338362102333453480901230281029664355872629859119361753907462056023063191502269927014785250772787778045046529365702302993344296466536953393563572336740170723644700634239255275030165977643776218537575731867237982920791507927768635694071269926095752709412469618394467971848701563540296322842215930255079793301048019134232136767745516314813926819063274322437170654374781105493756128030516002176008991130129551823294400021584845798973875986362665947956984620553789795008905669757597350889501883019216426520513095853082891429606064976824111107061887892246101452530824636831916219283058797764980142174341522792112892215004701340763511399251257193899619743456000505985795568903470495425187144136149950796965057920300852747240235702815727968349253999215440454330312096202133514620942330453940484226155672586064749412613839612804718826142537725337024676790630516125528889045464475142181728083618377943770327201702099725741574819140057143144729563972899460219713512804742372697656634600830539634646614308945527393464270978112961206238848497990404801653360745110214425608964978792620160004872578705172322776015941163879470488425465390336725142032010842733736966227435487809317142008108664562174748146693474390950513575487617813752480935353843935570287155075972722923697772319674830768726293188362856340361516629577221510346296080681597320284007618709993461625367859548806803118086695983281369496845325894181303505124372915204280711129691690407919577559945462455077491018496207728856643935472934841478151661772650071754846467124032255605402746956959421524785171256106490203057086820099931337871029016772958170572619406785389138313036903328058860385928504680263741941849843853519803220830653318237746625620061415276314517783316871825320271379560814418337241851302329223111245404337129980392926299658274608824702483260315150712159500943296880650993664361795495310675620404385381796015372204041470755623537978537386914076370390871869712445895852264898003242895810597713282818443784568342742114243224956529610135803079653491320103325511644398414748595119276794204045625356212648836970251518584196617198564232233319808189414984636088745700060449852308864089588027448709794095910434712327062622932320347243421245033039171277016602454228487607013115752304960058962541983908416470326974456440777778543398857617625275021684836973889976983946177990901832587645947034628608149398202018793917793257359194854827947254464942798014272581263547085915729884767822748798534173520408026797898790005341826031174479707220718286539995604518965569600434713982201928151130898132083860625704251206474163830365338162630851834187853361182036561022057675466318754480624269618714054193596063391183920080319913231777230325595920227467007708865424061270446144440085895422518415517407865859572645339338622661621829599994385054713050275091506437062560698006037489849388611938462007325407626946777819884951146297367131179144887192796721575277972448694582433124881818496406029104218163228309701844598039233348379651069558488256807547321376735599786096690077106253269720914073800237689923597467590649551649898401925292918611155042314928566859664388494468824534291676214234180082306336025382457449021818120687539803810021716692120612258784428971440083832322337649935509756512199634204527741052634862944679977371338052496361881647065137772383304948509818005266405954970302208740105607025393190816876600377222763733543989682814060166248181352087793793765407980096247997202534267013014596581507069498512559559704020780152429958737711651163729177691962580165626552765589306933292512393525397500370706333758386709581916447665854828502346590198808262093339702042129646748408038744603869291033699040130642581841858280530557772717446529825235493492559799877542769080907975204737203595632059102449777490128493678440889832229489295136094925187463815607768869302145415915176364500105637873404058215502719442809574156739052696075194764808801828162655867984975631454475765579645479420239940237002123532722958081736616416524469895656013353554692361042707629905256278383105214747555891373065567933412099220667244170585654471551969239727413693652619630783411686414277915315206468850307687220217597741395761973362741985674810451985265384591643062942928430826249291938071646100381824316395731132595511673981757908941161489006154835233534235042657882767885101285313202896585538861997756565923022062895975339120131097885649939082758963121833770017618857620231110025489410095115736883939419830367097262278352427190082125753208454985720797543631837228051934545358398896689251566798856347906346179156647568062502954376687158942312844699787525962206299409512220030645222059526841584794855781966072693563803788160998101454994449180511975266187601271749762306788787196051023566219760698741877156894772800294151391832056434944058122800236570105509901417580473141134336489891778329272588714432946198563729984161650369805232153979076809408362960183241448925232917660005181028595602942995243832631435329512564741236482936224896006992066579420865175334664783052227413515888383433007554028425313046449534275339972044030129978139392849227040776082160549917576605969230914165151949589454514360848885076600851708147878683759004989040896106520301843930413177108837794252637107408702002052943269444307024698835132110452912281157179566526237992991933175529035204189582654585885444971445401582253425347901395149588160785470327586527920321785917833663536141961949246218867315713485101888061902837988746473555510083127314419248682246879018909029710945719003962454366464513240996237068581767206130660416166817418134534878144509523838767276573958257414496417612271523071630551068351908525354536082993951095450854552823803411891151565794258420395982186492632132448323552391955377270409237332971625656459476961711142687189940721198648892200079696810614914624350920506102704031550380471145612170307448249641387727960533675192457049131396380565092530946551537936241646652108733990919824367996585888935910894780359430512958924239116780914633168105702335378694841376392191118222243232265500815764026518637900473274816710780384243532634452599126408307293409590813119448557869309415266701701588478232029787000402574547455033019064365367044292100935634332760068375056993010585627943561123811173737493191898044276200070636612797391207416017770782463629373812593405910854446308315396327142384855416533047370146598556554765845127148209722701740666818875089879318374465014555590611496962112350885528510721527365461227502327717338100141370969301105847179931642101481905207354643834031801160703624661276335778103420896877150286838985411423278542230680695607806730745555231110935377886899759201941223503994233665368423631737456061974142008147718369422811100045174502586732227648366883222224327805625583885585933575540071167745145908671947768485842985771545283089912901869840752883767611988494613286474320709982853161107980410509607880968034550636023489737278963424750692629697054660347151203209654546536678347562961314714546057888152294013864213347093440643022160074840265422437579298568039140064334592678342235898373818279426144715605698020267783062776117433928744501206768634653024468010201115669235976829086086841873686484309569038929097458042387875094054300515856117091403828634001277760468471010167192712492433200787298916481295117904784846776606648781578870302376667123420796091649275439300336016097324287030894492201762733605205955292702300069563562368240900108249182735436152059186753896379214087342418111785075239127931713946228176563069975912276343650667068992054101891624228921979250627530845018050292094600538753733266016683393212912908375296390379201016894201877203353531445842836166776385625358327443981305123297167858692230888478062275926062384335624974912680688840062976691308273806552773010035540204817252498842199086675397614589881734200408432023283140342209292992220435716005398528077222245675328831330981914118795239288603176045310012843951011527388013818006744654212198908061365585152851827951431323497095576551234653294358697614209580497820566589864752682500235815141215440682114064388979146915023887638052070080757663886358843020324661235274341433090773542627046723877537554221066559218194560882793209921689867036284578317783365854559633526719428431480102558460829531962981158502952472756770126375795305270802937295946898988150154382052613985317454586071132770251423138845933454678528185270173117417704425799913861156351080395856451964556821565573250573001406705292011860597193199407960589862844709035388969174935359677451048837373701824022698900415993012641945087589196546193136013427763825627801407726906922612994213729545664620698703053854763961539459679673822896459154930945568343646275631036177819176955294308360961188974087392438992476947751964779996297484692906251985989811248447058226609773295248177338293519481580263943232095926138185230757110252760106897787291764560404761615606453123663436208389338957418039894114699313573505403162331854235051908869592631570661566833565622128742428128612615925124710696183053600047080000387500399923390647616684004225815751908309705585616335908747656149718991624784893530435765444936212955117368443806331427060107592040760516330843221375274060598978938008659096090480084417831027055451009303790463130939409042745059835399250386043427950207438264749318801424753018368533844385627496971282380568826862381135942823636371995838571819248528229457073233248917974188178490494323497109976723983569817445341157569263899377519229068088305459057171063078187277118956385395649209491271901740769670866528418635664459222372477874274426163732391403200332252197099849214909671149568770741652816199744236557697628156264968117173957768247108122442660640464788024688808976964884315056777187359601433742728928095841696471117610925999393554117318091070157679622896935156396655682019349994552074698381545861745427153201011625042543335590837428346938326980081712876131611853090225908413566203496783000066039918938183244409600902405578985475017814292272163541063095609693952991075377568362085024582371315509604941565596153175422951421876785149635236406849831666726477366008623925835889942303303465981030987176538159692191018077715527466331177116562287795030935356458548023825798219505530149756320021279460627257070466345466809944447609756641783706677887580777155163101668552472125677080098499356489631217064645279276771310513648007142775732360054664782080923534809848173025739797157783627701193741697787875963624072348752044987104627743443816692308585094066816263212121619865944505034756424057093596888683663375378740395700446198423140648436771428882966488237270037124014080375754926809426857919634964443128211294561221101990437859784066181009212867973956605212491018653438852959725184766665974893954472822326013534456438783894456063843590302957402030346949339251234782024566390633252330403257087678068465831463627351638970128585599083942415925823705308228856938533608021832775720470779468899755821520086286012623073805362067532989908577773492742058987965809707684449256794026343642498989907959818514221709151218512010578478902440909886976531257626861535961868352244308117603065305077351235574684224793779512785200740417455643175250432304662630405907369550402838706109332859570903295136740150972064612457269471067281738203708364217808305688362162679074278625542588452268737909492657891067043888927020128746363848364384722693624925188116639768684637851625351905890211760062219343648091664807487351894944565348226092860987644864306605229227490368786604967080122444038060766812554310898864844937656438886403847683317597769344027409367845539140440320500088228000695289885123501622941958109552403510928648913658187150432554645950564538376931472867877790103512226657591644072733103988057314608410595504362431281201229398983870326764746786307942703915335225971101137266959694591741604717076954632715363876639804422173107120766600655922542128578875870547338024297471337990639100368701063788349210722897400519583014100017955381927988921297574627318648961631399080321701816196154663265214089016416220775341628338895440514624778853624952786030449698836957542920141864927923094414317314550726044480067234802717455428115571697590841536855224164362245148281201579079629873593113921579887821558223116260230520545049024914860969129781993082411608386440783930399770012127565041525050967488853613831870832685167815034158120107016171153504765989238578786520814346558329079961730553548057494338089303726372306037837686807602489524685521647082480511722881042532487952754925703471235779506886731521329403451409347990438531485596211094062673756576116095131883700742822597550072771345116888492924697220217683714424604251518372420540938402106742935854542474693794345924730191645761023672494765831018747812971889005605880262421611590058506882951801346770540512804538872814742138149881160149861202850380281848133752657031123512235331207898909366963875090606342760757612335383314090735909558392731913224025644626508560385386145092255682461818290912494171621500744415715867202190246756697316370847458744077890546063217696123609384203587551023207096844020753645104903483085874013532144804253970138327761656747042656644706930015667086995590916983254199195828213425324825545615379489341525453011166596541544325348359059410971678014339019727645388030770471636499446995354941543509404635317236586698084095017167079952130132420516375523986310604365452520877551899986231102570232362237463445269496110958158179179592489376382144516930914518171608405692951632569092101649085016463290072808104139617236833113303547247357672183881926067131040273427216073943381574245998602910751854045070008732380217211490406743722191092013508443095200017808369334085656417433543935516964405038924670501751874607126244837283982515439635382136228858404260004334608330145883809514926600842342403785849807158563890469933839861576991875000564093328854380304934177216027370470212120763497691577818369520044186029311633845276495489324885822691138532268263714459287246402595520873165228436321158042004424100224466937978257799922904383893963921346030433306090367224286225147516576068091764471663953687625249078571306312432380151988352980453938198379943196611312366259239610857407212142401032559197571815027419182620563946156211212507221534310931245098192566320858440043740204777285936067756848398847029630773229116163928559344191423343768831375247509884754866932197244619754348472920900826957040796142853135801352817239531306104267393990045443461557109394631944600253046757419895465519683136775542301436272809984278131619420213448923678641566348842617437139944699574274135114484814357112493422475932813789451048291888191504855588590119382808831561389999684694881445841026460686016443486691292878550832717490760279885905202875379787911278528553375548446447304869879180707451220057036202282089427290858270873172133828442321974378563301219890550658797521910480890276302977853224802023952087979758869506336237095492531743615955508925467815557529171121951158427524970285211893611718248777909739438253116231036255078206804778613025938796792761998984142470386235180173041061498668907534224601019037990216605154892505141512050508858224705942845271767594137325615427705872133179566885980503120487794559658079741657259625646506254528833347555372569507037185847084012312211945023641183126802302428463687070324378712200699811302467367765630730297764373813796220291708459223911516039163073964914398741950308950355630870550898995497175173484788987296809629453040226549224369687320617505170893539812492018145982384396003963151340241469296402721830380274245847220452047800767984939026328866948448147393360182415690862102097946840740527694093673539830234979153596156661892806545989766045564565449869154389930880638515550581720893535438588597582901659897128602506087368764505935986958573817767074148414790150908490989481023135824903091496689687738562519503934140563314629810265182183790000466569280747539630500458398412866521382018728296331615562199595176634582597366428093133961987242816798992284761042159304828157623418052915958127588745698193605230271247276675605401561907072566360854686899484222067987525662846999971053276639781885397234719661108260689193772941735506926601197351868928209678879378438442456531185587964166521397914467549400885378479692028591988144733821352902937807999800631984388807668049208685025306813313960815489035441576108949132561371296718131908340527719482415841545857608166167309071667975762230206719941693795659133326470246499638172788946197860837485245086079488123357448565880862133783128855308374947130133372557849131029087284421616582135560403448417356910850724230297482367288715527157607554806165669696382589885403011304123432607854620400232936964363656953818642869030765634577313870136933762296365577383210232343475526752931618717282304129346975634026007578426080145572528489269097266587024342696302242238034064944979056827766829563629495816453159286211459886578602205775710478673231259416189056652171108427405639231033319499736984254217169112199149564280328868439134878902828387909018474268940424060196214518416237624462852195630037632857976203734946543251988278705230270486788490307851282303490433718654107033836194931777489692220549147579460324399266233968668390880991648640039552192816547907772695812920950944452474958592166409428975451259662938116988942377467118975784986149440722279843798777183720924447598325924233165289654863027885421429627621073829662383791414468234665663709797651727952727643439213986185489193020254677300349243665050177312011300537979566812453320043297499051914139796194003503584098833463393097734470939298296493601351448783425768607424691111931041920247160545699797080211406057972617220418553377424702433263679284712902467534158288284928000320520968804265613286295248091115257333928057852164314597856954228255552190914283431071834162555456722317341294662785511410194955571942619649488416291267104686278489065466435216177914246562114989826562436242870635058414500808075135336749914889643857718282528877091206112097357194886285148790765148885911076594619494312398530743208055124869289207812109938420586197017486429391550732207794087257430056839013654953030655440639482235062060163811956537772438732216921626280392381023142639829317559723605135019659081499255856998492734271094371315076114488850371845923040823947507798783338446036023315129661015443994530037078565771098964492749926089498300780832136336623616380197983635053795282126480009952531837077255959615814007256506296573090322143136711928671450094957374438705159129587565904093342334621690502768744787792493273372920108011199989376372015519855851407246412623955494746465519989573644408148211930634566630875631623143960682688547564114428939053694643617976549214566988000241141415790015100817604689691815736292249773898182095126971103905238940815548005112368511502805187252491747566922459303494929862017747674698216800882132182378874955584105725422390623968657389842979632953988718282033515467707805597594295249861527909916572093539079810211905250870036701742528268526298526225956100433968297993153824410464997803702576924976738958611364755152512999684430950373205630637697815630150517359962992010277668733182119699980310100778418244222228052088382206368044627040311730129797855045514166851872223023717729435288335402470349658567705461928496177071736885970443626339764887239440933371378137617247907062314211463115858821467054560369736427448367967645030887757068851498251190909324965944192022113235912429799638993798423518220163087065113426500513058183182040848085119915446968123809287545805578145378059761238635227855958456057740606216969983229584109134277908374878678178610606062083572190502286477225674880420601703992427570086332803525183383126747787807360245006437874150637504614566960689384944393224601896682090519347821057180019236307234047047670697908523865851445684859282730584687236422630402216514775865275231668287975103933869997838248331464972633274493915513709266164778348271550916405922025793376142802629998343479994683467846680681621832522229506894617468741878660487039669737681304962107363529086383387785575383208997477089199292348834772175921110959244186797024666062228521998824564120799459501577400235229440283092026632270523070584311844492705841509864902954881603360744650962656258904166066354761172784351854719786792129114824640258779470840273798903633386186465445946952211943833490500000966246291290452784440170937078399505868516557965331864747901821484454359733056299830661682657184118955828263713281299170198446633813568776789961582122720781223760571574927617869840750380367651283861655557997192399118791637971155022610572557170200308496174348713027032764485942871581033529081344163458159092904604408255695546781583361213965214658273035553457193487613426783560721713724974019607138155397258885929060866038226859929944138190174612597125673353663073427850909957525534489060662407340071723953888633559075683155268021536015837468501008205565463563623196797759325523820583473360397706085134641529619037840893395813835520188467453837796655937220916532006422844240621696043104533351588132062913623296524589909402311206275001373753415577556341871555977195689228240738667918106304136838381477054780665564229955182122401349843527464691702002799010950977352655979674201925223660055295316446889361715976637867994992822939092187699450056573705628707714654017262982468935401537095186024225280689026626653757569951452455011952995097093203130307330614319294202711111919637232270064830123361204109413589451450473736020950280371103911852723934765496504149716135601961384951768471472306551547459939357360299873804262826590319159723422308262911293872661444257958682466971021097042713550621242518406626271896259765515956829026354593817258683571157281489701131251144410467056882386155876361735651864014223474404332181065976590090523777214263367115869487661719464161798087775567317328279933575839342393626025885349752113420665722301133985589417460156600168879349618536652190303997408335946489209735246109291987911240398522298763096339149300439561679873711424230743713226496073284079608281145199503741502780409251517890704909293485560209340300241136952318945047623122635386039266815744665660745016706094343363726062923813947870041530599867129543664637296008448966604086801998899282229240583497047356743094687242396762461369020587690808786018178594808408262451892963880181288518257907704783444501884571260195508571847558550445705028293992635227868460896711888747499366505952253119646753927900473680340488960495448462655288353701849197484948069844058740245424928975106067076964773119648802821596957661067709817292488208705843652045480260115274046329220091946580247722527820867531090635681468220929706366765289751317942489243985194917844761219294029272274982968472746404401169783643310255744426294192650116555683843883019224652170196987419601753514545627282059345759549851762224168003983640445752767950068231022127823512863182929878068729365168608544067976205928791389306719369728560260437996037789538239485333014419719417583413978635793170757272920896005113500488129710993434854281320449130859927272346916103452428548333045004475413602845792660148430195561803870565891653450860994365353964156132978806054353908783962488209478225796354376418003584770185954273771280448889120842235434470010511202757928753525981672442816732581553381079746957032509401191071490498995511489767685625202071423291103662349413863571489851878622453056730787143062409652341466416907133016084395097873510767875544258261766687382854237036545433613666040529216687962173943128456490281794225071868536632164854345542782353652482972665775250894034528126464471472530115819285105626768952998643567422920276254791513257110648665381222272190395670864951832590640223267699191178342762364358764238194058944521655046411507381480372864185878308222644262651027118381479281455048865636988195395696851216499361369783959655017165123712802845376794211279087163284502245342388221923048075858656890173169823252695683255860286380045694010888101514501231027446510568006149150126837235208504084917627944288814053146942432114962335584720915453464590205499792924654853279947480406305949202394526056815149403815675901565645999862028013198162449072075529636266381891287002580074196399171174575697770811823366970277360142884470814792061722712605961925697358616668054988712866528494547302476746239866646070311385782770978699437512074111764247761656266078158211275764355634495971287222269251511166041601965724976305481951905630636971974101219056280254279616955623937861653070040669757469078340678326148816826181399009836876885818657438508681941435145315583354719742886057710735957174240497216022942319860923116462468289530972132751257792674693936740340075325441309714217241104016296017538224927611051642129841415809038798123752695659352537647792384894116190427782495143697542146674840224527461386452341699745837607341910637467496733661719839589047561306056681474465827615949873457492012496227224143180098194345281587607648987424486604757089831980077362399073466558032417795497690283097933380373863344077873523518796859715655132233532979627094739832897384324198934210956448995778086159738533101577706546236344134848339662206439870444862976649630437259694541718942924630414710435191502515545878801630311315167375468646904574676564406146691173672309413946526331873186381759803067487047262898324127660354830808436572870444881875697234307227059106027415934169645347027456637338552392449198828707133300791447508999832187233796601364317064828594323764276108723849685199405876448733750319481013924414446589278235526381664909596529780504043576494110794181090279150166742180125140078812244464209693170346756398696605450591077359035526306071268934738194068835329647711830493400542368018341228432616521902075934262384204717807632543610470426285260822416811169838973963631462975396428572572126149708206450944290384068705170007688945017733880028181969320055514017004475964265993930495635052192013910590450269677869692646961845414199421644343961394214421843521333933327764426997495914560555701025956351641840549612823730468435141415375052617428995382708418822148708041330992552005391167759068924399578009993977046621265165274490880641418345845968417716515576464276571218323188795103895812262984400904921711882865825886196017299896366075428523089955088587254753019424922149003279442599945963350262787453900592731279111520186340842071486482832816829304203127979365420136846862240278205054793557142808816220389251719766510763073421682546750317652414469192706531914418306915422968418068564754237028673798251970385998417555637003167332358594841238626362002111240498701382490909978352906620500134306330339307383200288687014224331704594716199637637917751752965856255783313421931300181564099207795967866450304466397029108013449775273982557180453246568822586635300062897680314940196694816458807076374480582721380326567182333050463210622516707373310461166481597662292219337034779199648862828550793674780801331115233024664322233363639386257187596294527037151789602371656795294609314345188320694844208590689077450032052066313503252034708434467107038312263764688332136221639333823395390526221760071992531244072693152232937897576472306416087434597766728604453278087942359687913396043066750745010358732441555559705025886939396359013098864749348719275188117502581600061910095244123552292265497987673948919898581409031188680952395946628469276052295270993391706943438273641315146982385704560949825784217775202786026113397494833580124877378706449960159393506253739548245891398717216279643444477360521833775141165108488048164839550109117568264188100159937156695409086522584242419834158242538648668155780965609648712861205089671245255162774620815300909575057401478155110067012453214511530353286101760981248045567058822936868156833789480174224486621248665029365865667503626718396297509213565320635409376400844530823413151067713106968792387262682168749975252393141234304549422769164665500330853212524520315945554275117300230542470474485122092853061240940002044849050986231410398016283598245167218418346299414611927648908180691419169540540404395387370451625312141864971124390215944768620946990038328369343619825443602801496238239516327639724963655046030910433459338394470624794882722445275385122232357901826533905195025178446203354396094586951079069321807165924947637614831489261201716141123980298692600533010412183234682938808071060372468388564469673179854675155091878965596018083951597950956480944135883212555469821632150751414021035272054976823648610553515957863691741004512773929023693110035436814922519002221990024242625287863343438669432315097544285994361919341976230352216902215954673591014722994450411826854845277886497104890222554251182708251637838721423765502704831105979173963977076706758749582851888477383166768488102589807389869402715767975097001125555634817746979611323698761409065908516473566198487316244141811280605946503343637814964309198733513483592291789852783816572359703224820172956220330383301777761216782741996939308867587662061636520209705760493904841587670603992952257243296417647539279633953569976244427141333453489792549317800462680221897012660393139792602797768590957598454565525519135483501515505518212760547307599237130277160541865906906032074021903475071157833273087817654688788405374903379258543244840622256990289747976374179232258128831792818646649226828971661249040065396077909176718130823998161785898417058115401366545859697994677727202969128638794131754724466581821282424681192218977178934026353287795470564290655619509493659360590449513016901726648344444352045619306103174782968310761783974650071235875518672672429681703655884013524246212168601589176505740709721594091897837881779483618966896821373718787353305686766548854256682688911254009677132692805981512102583352674639434026696996512185754181240089587281242515368058883748901023526422691096680554570951596703772547287930456573107257868242545452012039922900084793926058193654229353814301580950679868509065116472480312435330274620369721366664982336587149411737437868425040508955109565060719264280231767203222420151616194302956923169297629941441215206557990027677542783649764602077447625003995556357828217865354469683925012415460779217481510918876515591465120224749822899358392868926518487733766440050567616054250130430840145771091259306614284335091098035045864666135064784355686948691616590481102080326096347865077572835665181194145764739552148550691179570119035933783587071990003911407907361112928435374634688717244648939067835469567202474865996660226034695907624668455167400253849512062441753949742618103465213748349405855568357473242968565613057737806507342867799266067537240201541321871340543733712705388825542082277229856311816545263505187968049576638797310771565143629598431668774230196199748566933935330086398342289279920121341995415728422410609805984099172762408281528696572943554316560492629260842472027135164720780925632538220385692635747168218408666659634256220390319249346351203745252938204297279407548586721995680732413964989243293022706799040551348584692095809504356367091106088573038854245456402413430916363543084516758133317468660710045897360101041104207384500379587669752099576195022448329783602797029725052578818998393923731509707624648764166114675019377591932018664965638194463216309627834973042308673852000207050408635403307476917566757092798223381351688129582543064397560893505083384625927840826734417917882820552408937600716663045557503910118635461642194370853011660525230467776739292273278333397048490290033027421848340004837820305707711350866189939098639331324120014078451775843043743797412874536508116406037085294195242686152780625341705766521003166443397134767163923834367327583223684012875831138868623852687567100825574924502336758103460841609111472808032611614157013119913430444780449040587758098616109300377409479844042107747958884290719805686351322778309177462069921607654826584427606257986957317444452214038944102153920172074232415601153043260135387038478349617797908636114801140396998992727441071864240829986420966378617450405516578911297182691532319191323680608229692604642892243054149496877569640002289492919349498480037291701694826762103412423351660628039707683252631746681514536359676089607307827655321045167304847343627384135861283607738950449230449940270225034407130883067620485996400305745144340789064945908850475664337337213851435488832315025689900919997791001661742945564872049587134769242412134669929613290854669171281397141259274001304491788769229840760493686414807984249602670472910356470668625817158626221490169337799954040285618709773433505082063482741079305666875846476714752154703034006684110812890907113096307555697682026552597440199240971385389330940072713286731420687677345709212049883867277557985491216106767995585848114891940951358405600189463057760400297492402202242688509074960934288165344883031288598634134404778628078888985769876217743005302569928789144871095987835388145126261980247638308045030501489763153982487443297543686742175072440234668823517993896702305583458134166508595319183248950056100241093098570575979618932845177155414482097908228354847937265790559404658644866320654747178570750924871153332840831846874279331719845802643620491260476703785945525147252259813578107899069188840226929459559138950225340768788631317499901039348649620771630503265507571887817393272767115013154241074316259519716265289603165454189591522243765192970622246534661190057708006793048234125562012602906735825849648274808619149013674788519909094233000488420542692646612114124050999433808578963577560447418743710688280973278192934427906394173445058727623690312787554873948572425556241739031555962903666658246084812234254037977064917799899449880618916880367846341976380903355821610063285230856288674869163274898680093024989342641930160990647388860944866061942485667361588576062107200397982557770259136599303223462526558960567717948907445188303822609722565356029539899071575740810593805707223727312994869620323497987533456239599685317454080764118607992685831763476224818927344416086961912353625278856821813715129310571680788238200718239475595655433682064530258951128661758793035074459990577513298584404619130243747936844488224430527036399232652531061404298466166284371017412654068025745317369228633980472311091936032981457895659797038052182180675398614378594224794423016135172317553032383561015053596402839206382465526764226830282577739077502136089941134342868559442578687348035277151869909086030373874712529144024645503577926153620581096289015914178722054287194444834247185536776749916453077493369778133122864536337505187519330664146689580680394787417368932926070852785243726826494468320684960556927881474810342099980043645272550458865601986872126177953068599188047940689859255458735375148104488346275922189119493071092582924077772990605578180813781461373445151390747886400697037725669856717189400988098787904371845760623274688554443535857584194875049862468462444185333136282591770256296067645303873441338475888445797714503614724172912840461336505756036240431206735727573714284242067175762309110159092913858392253361059269974439200714617607009496564570625999246861663180124504342639040129305531966310888419543770008857262124712757017270047917479830631821452319102929048427710036963927994496841084550282065078366949518802856683117810961194868172566818644492046663775784709690778204662906201642651066465784288637847070442963100941926909702006845555940338933082294873261221263873618890692781825685870115083571559497536653375682363752837282567319832549105378534113136819791430310636640004247976708923313052449927776343456436311864712582800730597456603766457809432595165685361647983763011825715717934566717270609456570065295297146066990347103998451937024797324173881842831691900088563737385940598374268026621093990277623249547953307981554792724379574805535120444687464630279891360406697561688986778748318386963741242322140558526582851907544339016357817661150219761233165330309914069211352679908361046705427928536035789868671462497727294901503533329507321870739026736413804526404444452670329444845659547632603981278629322052670909000177973541450712818876311915632144823653034413550656559607757588188914848590261714718278095715536622941391266148557064357138016226572750685517108498443250344072653047844129863652073708467484718551667025659119060510820549958678203796640131798484307787914296843497925500206131875139137100749301630009716910356283709205262875218025495545062209520671797637066975320162164539630351639149223010876289691563895600380781841984165914519105310725692361189704955620481163156536387612954627629488045387234419722680082706678007747868398636298028970306119654528965841803399085922645172500220129366167896103899969069465984016151146182759656229573734675741337752459948624650710149788314772862131302403547440552967467027167159494147490810622770535066747168829044313689434553932343830861162527466617924058967401465028530764517048650414827827011231226616886037249086319943728426140048749745299907558084442513473130050034613394647694571876345435209800179158383106584216262968872857084698583611018302768991030636879086476664697866729272174004110108991772502660177418459143227594175923577921310793236040373310166129404880517839133672822746640881462390815299268821144684056600749041632774174035409027530802329588681292568381470802095347357743013750092516587735090301473639689784020044787124536706165953012975980622978928417549842006238674129172928477519196983198137872161821538222909614995167793324391322944405394686835943173100984461921757244974129569124166387865280839654326523022968000453254256793644434519082440581666171442196730484233480800842424771888751972530641478478012078267580561691214769686122485410274649349336936412951761535116610616189366683007708836736933741816346692293609369987605213449183392489388771470851384418715490372722059809195668349694167762680467841738335502295033627983952727519494730091086965294281878517106998869430901935285293019038512052720336452194158495213903391434056999120734541561108172801373056921206121260413090239495364959458064593172012437037921254998591322709375922908234714479865243493731700566329343915573460842841541905795092343660631096590517664007979229166338741550474057087847555985683600329721425338755882594257071019124508158471336458157640926875772357923947510992899547734513931087886473511740971568773888262467753320371151120976235053329932408492469701081744117371125644553508784338561866432040076641486551117029353387418105059071818677778710379729311046158895682673114665511133454878417474977135346421735646028129619749499926832549947772125823834543358886452157918175559266252502435509091877169167205423293888762601117170236386058918290776533602397462691625514535377137323842911883336316335782416562204209331365419632397708392142800115289408588403535205267482268397820496409376208091832666290367424535395957270719216184502008039735272459804778132659184120070172655056761573638000767288793286711271956940826384283540269628655679297453135267106862225112477235463627936475324687915410968982694031560603108836805755506509202280081725313108924849540603827821301331467909145333142856831077218926046313660044281926806340011745996279678417592368349626865336386148792942553630520750582894348626291938986724224245433546981854760096740349623718663550312372458079182000702163395891369532116832093541897711766915776259634685983375880691087313695552003154925928260613536499268294660101093318968505261496237867275256403700277839159110199093374109162413475880926135938692024155216470039781127813784360353875891947147345807087549822157544303488229487286164606730338626417459432604081271920862805344229682143699044676913239794329214544714886583413445346417757986867292875008049430587064814326053177528977612921689938390408068135771902566331131520232753089043968494058191615202865840445517276727080794874681272552574236585423517745866664416010003901106841431737537892358307699441642637424277350675594175055961294659866850867408817948934051688034323580513222746844513163782367183151335956324058092006397181574204893951018861626722088401833431787560419735186167734592032361886482929289120933627950255453624138743735595099606340758488507051851399831678419305929825250768245680805193171074225924817806195649028693758192523379230369781644426903624018204181996658801719042328148818415217481769452598258979559790679607805370656286165646425955339600905285329274445646442453964957938602120535087705864556452782974934713330239649933778077867855575764474339292696624568495139518130900463428571092168785681360549103968429268655284328163368994290350019214892968601650258347695508912430879521319221445606042177897394101226304307936622939582120601695058203608256911433021531607279239738701033178344013176384647989496139548446287383341990705640961445428892857637291996820518188427447819540684493257830074411192189739793151034054308792006224827639825439640781277560765251826063029769734512104540190056681887285303569743252349054465714707563381255829717174039781253336563510173549609277381312823594036830642792272546624755061973243616592004425088588848893202815167146943461872726465926398606056788017576681863895302732710389612998108613209549473585614168327292719955779098533385790994253600729334000255748826846293530880065949777901080004357531399798746766488177291060289608441029591382912126326889315633788988410725985070236721660993463746005504557663004090342095307832933762814939273004625391111494826636947747528842208452152020991079646121828116264809175070569544633743144086173823709687742588085346046636864008987450612361185794607602848236269671447034312215740393196217091045517237636703428023871225758844078439292462759450551257632712388057061319976875535867010574950358191103591386354607200436805074218694631181327733263208123097362954152281012376429506472250363378365407332088127474550784783145337505531148386607730623354730739704798118076577591261201889470282522591110449295693142391372453467555316276309428338291924896160538842212452241625365675993530795239062701067109696767324674918962466392208908618308457703709283795395985589884495454037537343248604866863600856420586058242859435209165566915861443022718450164508622325074281174301477901060526717136766816142287885482148412702765125133018514043801350839911303097228098787371776964734402736361733409768635595766643150064271489966396138055195666292344810774506433952387280472021947630492311273433943760115096045869159643462158324472018932997999927166487194050863925881970877060461947965216454880384755591416061636132909253180230414311825570806917921613135133644917309145853420169739979628398585818817070231129920919280999271478245845930323469678696171084725376009324151111858808264456398822234928501717028947459336502587810491097396167785580637482392804599613414739191468945918045523933548649061923555927731617232434641685167824380033972971716767789193176439451187044075985420076567506425283815682973334627063553126165413818447558158049358266360611464128292749605106746737111636341503025390896317542661494018951920784766588070331745107768729321113829360702270687312009037627630586814867202868563058747472338927639460386104322703665188921207399558433213529459779876104877320253510814140103475978313918514334519944605237572865159849496111755130702439538729780162320327312838736158404504722167472847943131079976109450784273941389525049107575260399983103339566627744242320630459347547606747345733683984251079184204916041891925547024419619233165894540907056877755284841312740483426588786486695134923690463339765193411874914632284879038394222657567512437175033451991157064662456602281060709922439303270579339917574541563454080147774725648373610397538990644342972724793492511623744090351210057044793020325022390620556563256845675778795821014193411006678651128470767295806973071887880962481149801130057441837798349381702230382630626107728259569297461529018983566495425368972046884093312691018740033827234802254857215916656424788775440556568325690241612034167709203897766581134861123597122848757626199241687832367307024007708772778246687041594973364954390674656957471885075038694499895282398082467168601837615715883774159526852926364723278702739721474677997594545273552734955377859243863957319547966109860177186459615857797554613395456482976813685828335460580031722462373014921135011740400870794148347169152444727829080427678751108994545438207226504840775110889806571548696530732108657903209760834980518151807889315888566604227219493196219384923244153781316452048349585324745456946832318001876801493471690399329387027993980691788232433702428649365469746617759985307331837901163987400198178062676135125695491402075996130546985319687520366895747542587197226800939188635123074750828688799199994819493807757902995714384032143818328466841978417135555483105338897535365448460759950551082121486510962544138704239289168725654340874884844846988839175276848157620950810441757434637533760891967871165112441799818945055177600122536021244368785360216723951486080894759888604737348057511025919211792758635795931613866462907904471039085576141024009174942188165069119765950613547343085821100587440633140034456090169548132303926345468646667901296034178740919971751260345873792457183163339445908750748691143699151203369605826629486348994577928476974960338378753890326833596546240805541709251581936376863282633424379665297047763152157624907921386747619522101197731758205742975997670605097971656383464557831124745752067125048799383032374115391095668766517920548233825075142750601996619500113908880134697574108792930731894641127605594983393007861063134310269333555700933007640594614621837366200303323927027282362050616646991326565758800950337702174666208739963322299474482308015529018481288245369964085352954936524801853225720703437316591398163382977156741849452778692200486963974469195168501617243477974387956150076436530530819755165584206165632785880900310245480711257033807523495156207207107023129292340972501459558418559992852251743685148961000228593954017991096779502587160863442671485734240936171080874805960037480941450738288697434767437116029531016513706330102081983635752969053538797620367979231394143768337789687704640536852401994623484681687135671814681252856986834178083117923925834660595767641719455849414368519619933832164333657663324886687915184061432457562861919312657602298656197200773801666754754915847819537143543162086144078238446698729076927333501115502391821044178913852016545167696561651838711888821187924004820515087927018912237731486656513545575987295422269792458496484404622102118091946807554439304871350060434370874090713456642516716345740830521759536477021269790563092574569181940701580409302960164346795170059962608588313827871187688146682510224568425531834744262764902194940381798291111677574185202727052804317398188979738662850932294548691463922643497139154652618912801976418707430457294516736982432112241267133194172160027631596743017068101217277216159910505517357371002149011689220663060401192440138261151617374175055941953595849811090591788388603180642511161407525094411449546330387998514198965436157573677974881629016327363097313657245706047671352489775703390845694028592818701362963846378740946948810601713565789222873050499545092422770994134941665570974696412039624630404421877289674028344458795655061340092379698226913977546072562820606844496998100581668488016963742405022585095006396234133918991527160978996055026442861802015628927166600442345152929883322888339130198980676752900733727287079902103526544327859596963463926736090992880251829645596577650149514581690212911368497214275869423500550156448516439642357334748653113446392186955051037312154879549030675013363009166156223351613955300868141102420120077396070591470017911690329022652423362448574380974428853538268058999023582591163479270472538842293167623434072816368959267139374773176441561872050856053526436530745376540468133622268062265503325588908989825989936302655097593010093099749809153757879637075894117510074788627956957441436295786326831455282738742567335345644215471324002382481113686307738304237185206404100406700459681806931224774188316096827331834952810496522781017272871711674133313284804014967895978950073085552534319072516347868572432909871855333686859001768870800215039608126873761666693815269671586640498808136695847206078461828695299159551015892008725277536985946440771021704732056423783193573011083382764063775180281434533534566706674634262334501660205114445460864073103055998333030187316183991952063356635398597218748508697243276050059080644969111388331584130125699788247372073721594802416790024565233379444309530475291945600377320727482533137992262194099642065650882652072292681739403622971710442797823178164660314746195789980836451525885489574284053903853496142131158032831780485311188299866665989207723162056996012464018798558053374788909244277534926905042793836200554518013931328371854120726923381305137468266309383873780374735076176873477200895691603849627122929363893135495768093949446530661474240513259058016403413039168845509776209299965042993584249796479930754330771354342645976929609874455225307389305668020321655298006147328339668335015424105694770902577505584268089415033847607663544788826248427043215465796519886202153358069215405425511906851922888105777952755760038041069248213772464434526277121161741615349769275891010912100357777530226987589512858623254546316645157954333655586919667155319888142193721623586586445121120071435884355348371145543042958669705910204063652415157911158034445152332877772838603993176170800465907529465650705119323532995775619656304280568991185770616176196034041872455721965389585156007169396218835915006691205867147627198999202923338831686401532879757320788428673163535256414555741333684098435668607767957459116899091622995372287074706305778338485731959230403749021975554984277450789201936980577122887529465831656925092995126690522557182225776045478107256580364207270850050553279580900810389460919386679466961235362096473378223807450847698190313576180005951911355956261613123201267211458062661772153593988035313356057468035216474845648430501480492012010894961296399133550541097755504389281914071172296145619894057121969121072063585767056556473271741063277275436358431968175740680766987328273857275861814336605459957513315629093563477630222497490205183716027608679382970559207911935141618030265489766660591957875658088029207064785989479213955620768653723474611698560520099107230008553829682651436508909495813447408641938577966412011229423583302164945275530336935049950604559526848607596532444573115105292480342872642665348304009901540128195129504310145268743424586564882122593892340848901530762365255224735758875543558127311604916683632215382882215183828236064734190667477839788660037764630224588527848470848239937429907787178652162245360501983965572416943794160882207678883865724487639845715031457305745936834913207231576551108633637292172236750751556626255333282165705365811985930918958796428109147636226342068171715269774375191338878181553965385325023257970084532060433934971648848095340411897387852292165806317519956687120588495544613111697523517805769044670286315051809868809181672067754790270941155583869038329965668272684820818140274160809330173504255879067471831567322927291683701253082374385433182234868165286349511200102618898412923250863730942562969629315195504321936939149337813705486657839389274404629087837914616893594819066261410112587151008914045115551211003351996397881245249507730976189518769274914263847448442605158860604254863466462417753810224890361475435424726286938991965861656783021429319412941713452803951664873911677643682351280049473917659595603850400349966918490713792637613747161000662597180500889370554237171482513595971188877035265801349326206795928220267238169933791477935163585666320000430441309158510362196538165334575024974101406653567101292440545173229856467343139510151150447476087688971670394189568069075200144870600568118663610488232097312078891841891269909350872034616968150545523716452473063186313916360724150176309427508212776981172305634793848586739014067568933321059339146830091995961308455993904382579076551308282624340453319843575681057798211383038460940476955774404224400526250279347599856023713483962919937109796925649771110780799963139157295727146558151205877462751330624523414940656854318627414188544650608958377326762590725010690173325562908997099902804605046486003901912546563483881737441060928893340048736788766400073070445322351134273412883597102170950286505311133894895472170287575592781354250078870968226942184724656772954214266632079650402417480244990825970967445242699987735347587733058156777908416823236941962176316865846169256529586746080116310267096511751598989660274544175054803996552623200699357888440868246210381342000682021217713654279989893103447165040280690112302637768195846065649454169188703881434055985201410509540546582836286604417085542377884634007513267141391854112290695392971810638524433408660037996080752429470027382296469272832668678995907856079303334152878030459362017100068491418959400749199951347918259836021666040762306930301502358795282842579792409309830812137395983735721279771882402719508247807213602047015387609385024102447731066323166462746046550803346360170082362524607322561760604678045715788435903909344661646651183004593712281959681064947839071860056416358116860461459930533616283303333984347126703331810356255152894706681375273925632171587989593151461299818596082780067724388808307356033920997703416929269594120889344299800104876905449987206306428475492441335694610914792456515435956056971998807361304479887986888479040255592363621541849488885242473816724357572981169568612402013337837814617511961879024478956093893440884028286929129682756038078425871148397750301494999209760821620877034987601446644868031121548460089928424369832436705967789863929565033175269188416115481986016413611879348875349820177722524954256650964331959625773506375408506010655955189710902669277801001789102397805322421596426435206765386562007747014688332104476316762357071980855303333463818646385942352943285863482936808188302022412088450034861354029645296346553457969367077937102453578164010042563077422788204377947385765158685399558791852637346346428056151766812572211800681061931885498176546605476505261006382280044617566008086377114529003786155880269849480604522929785974800809918801321781070324406412464111468097189580620215210506100446090457889661797093521270148826702967622825121097310178605764300713497108262311150900269120914470055064955717720480138452112434242614320523398402242473345758346479269902075307388455697512901921393741888450121938468409104479822527389964040252711863246024044621063495509264938744027754512195712613282744006112354025587726317864116090370417570878912305121535959074477676086948155672231958098134239252235036630982788975791531402428840709486658245621486274400693780178567052536642814057640991612950365939695806167633466295397936881528032851487174681115909397373783348630107605303500893537243594252127014927538901485055149355423435191146859734945183527461973596199927682777994099667261743148534695911415486885536161163165800401290250359775910459493788517719967606197708579186714091455893358307769031527295514074231560291252537168271575662715957227828644951146236463994553432334948952416903462376148667709543107890277885704202427893533492333766089259072914896574391134753123469764190139602761177899684693386999511872802388012086014952594842552812345008265155788311405222626329188015244744062206294343260387435035205498383560677767711774782549495305589623616158988668136658273837011102911960016513159082863175120527691993963326832571272707348299799623544665687824339668084480968530648364894706118312621798156518587235453387463490284977540085970759383467504022150769455880244361068609855586742340335834197369476621862922023632053055862095522556491027175806250106395039392637125059627461054885266088129407234125634083282202224011057204563312573254307252054383817036133634378547582123756490745761026752037995839690773210231819321762337600425290201495936327457580074862584007396681264860840533050718280016968788925407133440619582313783819565312204031139401553534971978520452672341276483162355751686680716208926555029432135815387955043100424942359623496757520384167019457788730900107887879716646696772172728063433148087832503969074724526257252185409534852785677763298861165616384607975720967157853086798531855883843917808664105836068591899356528779667372242169127746695542584501312509880087479039940023342991190460393523230449680200895380795541591555966875477848488932677400028043864046163001889464799816618995545007197270163188218043695784134641963763690596514220598773594418959209035461298062297188313297327973346112349811322525236571918049788185340249810587112988260736697344399483944337242187883702408916806106890422434702369791460998524642901894778681630408605136806682744674235488142292747790571974352959084481761952900320980416782563611639909601108037789991090624586202454813532539941823261639243116940731161457062671421302166972519881548367833674372540142327921070043373804662585568163779764097374956418529232681371696839299971296016338948776780516536155160211183657351844876256019105446675699961818884083860516639343580009282554372570628226904289509340312551876051255760993098329396101375260390627842005816476492165483872912268190334881643679787208282861998358393158282434305318087667419042082274158222202527512163649810683657816409162397888642128193531357892766091488541317067352248794175048714779613026063501567782443855351278146669730568843065516523707526562173901032864746930083350204611869652341596861538169484731877020794450669670154150047029755175397927331475500107729742085370781318953163874826635862274787421472220624638626028364707580633040685606542225656231484488550114435715782794277827884198630696033332522957758231004892013583076263306108411706807950953835686615419470802020870167550225753376710071335207008143047783647645097574626717662940373760014288569663577142811751969610139335799493822613674778832700737809086090387780311418745337828309984217204396678825307644743593659779660489132180500788770537170271277980129001937059716887520352791281782369126704485228766586291724245491348301317170689010105630335918056009370581071551597961408409181405713467957702280840791020249578075078161501529205900558811505733911300053204511243519099760294593097670501697816666539373497368783039004346791533058611082720081913043048306252048919501919675466400750580990152995187837181499068100065612918428799341614029527275448787575872511797260748388707731868329295900943102415766947474093977465826427399389197380292760514245064675390547689881337487829725856094156148767567467827391637216473173140485961044515740501627032870796703749407296340082762374628626975182909705813993748370290728637320172518709987710446223536407984509133624962306589583485532791362405488610935335201653153916698520134165436280479451111823967996043976101448410718001790922981082409008555416263263143397388403330231421448854395666168500087359825092130240501861503865722562947652323624256590764706479812575937927983643918478947260954034308062687839278330449426960862981972458206132301309047079796946986933322000466945971416602733534938387051681426924438468992341124963046342265974719325504457767097916008086927006196855721240546825439597641104737278903868145633007660002757411180892009525697002067761940012474718822537819347962932273196611334005393438398599576972626650289065327005356426811382404354330832490280050295608310842053048895355092222341413351984045410176313880636346879614755536802239630260152925824951850579169924312745252958883793554739189694420143242106486078468232171749592322548553828680738802537291291537300831299066458068533878577859026907567129574349719712592288708719000332757362155145205075819366671063553426360212128282722661759198221368597335434541049739999320811671423906337342336782416282668231928634143380617533630603493461372817566750448059174779709708043785752747578566335055086737409067454120080800075595354607079472542078375546868821789464532570413953492842087304108072639297891457519094888453826515668358672739753128015198584966183793898707972751802599329424608996644066613664320304465307804627198736894954082323835486508925314957740485743416708871515493767913509875363586982939119294483872822495625487511069665015400499169012744794034906480612302379649235731329918706495731920528547023672984628480033154772627052986539740845816104105242933362372281467926599774758907581452587206441734506521703077470581946481217364733707344512285947067792926781415814738186869265318896354132792394924740968997719917136545508918845878719706932855068249215028444696126982613587169513168598147159448738582855210005593764007980682810960001681453317390271383562997551488167075164900501432546912009100051213132616619339903752650007092309998757979863369241182492068285921401206299922865730783832734028568263449154487534057596803455808717139123921795524172552172137973102317470729713235349313938432706883250043170378445033673365318352565728861470758634332973851176189548281548526017867599909138053107848094780445472539160037471196849782466366056988895049447796215588625667020534452971332445257899219249126814189264181362713021667016072322208979809888202359897979580721438991996653073099391833552213622791118261583936379513405582317589891248092487204775723177757927279587777749196398612893622384491180432092979099644937131412596499628205283194797084361823224569628116253438820630097951131077862658923292132665220912856960383428077286918142419727129436996212212618968991967207443190860406222513615886549316159692083835369939042045539256552122313976879524207409648499647148620541990225752513936788128261145044822212072025322665222451187896378644998366783123586639796730792838495580037412053063864577748396767173724788386840668969487966573068947577878999486250224907270981399271974804324834784726912730722553301774517676420276199519241789979311749717253564954856082081078791977142214573880294407798244297958035455831824799572446641703974797546814477802673611991689796535780526050586686753576937906516172054498589835846536648998274828120762699523390674847450016202996472923469783717622259995869678084330430701647461998389458550636150050799514484797684541850228119722259765967713761475479184952839730094701854933280133039576156737546173384609563309447787773986317781690049402206080699488460190915175093049086905891704058464725283288798703943636955487649983549156276754515261504870950788865653943141290426875885992840528280911239918821100362005435155385888290414465646163155544024567776393415656625447614784361126298913180511160477447500676193330573754333601161686557531320525839000602093268573647052516866321648950884315663124299813000994891574242174141991996550355439367175872947153289642930819744139682445330918358979008179198202132360983433880158956195779927763197308008417256989702916189868507863407970624957491087842934896562028294352729755323991750861356739222490231972996657524778174532911266580932221517612234982435477327618738901715785520676210366880199205159877459546489521911125821852341211711029010832448526472120369476559328406220421169188452180411772010160174369893162401256355624657282977289161790164153584865741559585106033775826997699170167931007915856593584975629476949307063658522431903307233648680701714985054635924044572687577580831318129707847587108803910453351278876022992486702194464080378404738397495868777167002932467329542040832798679517681114217194981577384100862329631598731419601217058212111331557774792806348038469342019145427239061953058598731177187401137847509821917622814512748247486209267673362791607825168039902428847562945949760626477996138280048308020773054766227576841270749510699924091574941068841948579066277337574665068982447677982775982117567302868915387607673130779798444248450345840636058502352593255676018337606912354004559341745897563296446918851589781045505329422784987737663310051923551754557195839175171183117191930140319720677389015875203570121509701017928947711111901172415322074360327921361631081430805311945266408285099308591542401460097377582598830181231739878338273890746605116182918191438209094099525455339506575152396488378385829382829418545120025357031020677906446510248442484217167090516476198104497944122240498943076200810226076046936588645890697698121759261059080041125273549108726184955258191524013368260791728510773736828307738318216924011335359458242679454198630227736366021192430025568470145368544827788508652391310329892086070772556538107760103031669373950345845314753930918546077750319403443814222175519964283330091341448854805556734298636587315585168637826063436207650195744499111506189557290160604109140237601488778943835920907484681898488595088567928176935576814896844870780705550801590601690865323561117446311198718966003798915681490511212215763314812897032188796879898705239555839133614516057596321941746424820777451229375978485835918651062328082233905905131594662226734359891624944549363569194183851460908085679192704490284356741479638229963212944730112555073407102903324015160448653114955727126364185458257483253242696867594110761619195509302552700768577204719247675612790750843167374188021706998988906199156056015518834620901806646859701247067279204394746827244071253243943726567719193609468749859406276548401659761499407789077896427033023222770324814389248134610820325799182028782989205449461908394653259361160275858836952389829537035412379642167934252342187031327111533437449975265361069731679360781187046504975868929689135549167337237040273846115731440062395888865024895938601809854213545809812843597426809501135498045504014707853197967691639467713333756065779176462394616348416618250211677458249351046477629417863405399090476349175768071273971032548288945212885754972787388110731130866653982121801313247141134360692345478319613634947801436626744241655371920672020534422074861498740635176099288462861890143004683278761201807611819900624353207214966149099317146698153331167244945571933701374939850056994861284024859340786806464970551548877518234347439110888605180297190973798412179449581148994442405051723311708310361655844485911477853297757518428360758256963813603121044617566220043023950520348666042145517991184694849760523835971383999586604996839230921073036957109896363206473631909118451453836240661192220383791100728832743678054033802188475161775452351361233982837970233739744239205989551836799833800976526073800517493145450350277658739760043593607555930405946050071068471396828841874143141878115974837421114818507815992364571548524983127773450769625798973149417444766804773105936101501215678558845309760587785467360421515937728279240099490970324790730032702407776014740819103374143440780363794579130661098260060393621822078593593233256127780275290491172303549989607905501358797158568571732193754096641932262847738069149682021870517665994095048019846771595989219801150098510133122655994268558830429818341232544659424415106473530657416404207282398900885733150101773071758022041876960893669594768708610098216061557499234301564046709834912754243401445277358487648617771536813192831404417661530894774036663882471683955207584321163937698474227255541821935240799586553720179273097120808121742560624145531307060231044865912242913111617763135170787373779985523283790654868403259538275102429745705471380072414980330359150863685389609741398837902759957949004194222087137862464195046417509825082907777928757270066581241886486248258571176377898365046261455534831528560963529785097863029923472679326535926365248958748967876212403039164676337848580608475938946436891747368289870448062692674787738684788949265190867180857582693989507836071109663122376187527198915761316403435983126173430813690001986297596819823279319172043574624992359852843418657782616707231602621456062393047230675409724555922432767092025905900829938892449186477702474507916113474806044487646047861809072703442322006434246340783120267520840421832708916118268557434780224420065985960863680898265761349993110510310393042233457377649664311499500847171928440947094248063243333673028924142805086134296052430789682294514479403086137654971560205824531251952412421176474958157565032195643835059634430915715259981652785958008323111642257285845082625417391151512903202180107339170505035042094312420468099718533934395958298480172715151282494316946204575836175244793626228499702692325017671919361238963373269519483012189468409773515803732990340716788330923362044786275398500261281302829653597327630312070681320151291926780672636133393503320207074627546202633164913241778161939820645421767002067120893536636837061211854569690100630807537738704713167798394890991991589293073283095628686366171749621429731927537021422787919919213285833131667412372136973103960300869598103195668251623252681735183657760994754539666986606869158595867249106507484706138777645069310565977872210823682222381920948099759974418462261960609764011514734239071950329007441517750894305147725218716841041627693263247691258783938027670055283428876507464625165897210788676174985548255870086292858764010800003316525803090986327713353681390603616259851637855044298606360412083727854736946373434683681094193388076482289203458466495638296469945980427951163761478436398336028273442349212806519525251072247719513965232508246938760654052304856689783533660951846587420711259349708795838111004288550349654193439342913982674837684372211554395960479332599207999559607372074145385591423659157930457052637385556167697224978937154134226260968139928807603947401343167962509767909199719202503124723906285935790562033260348736287024179465408265336880689482868758924996584970446649095190271467950241678355730333370637152928205642943870480072731250507531457329676337058865269752397873595520595944125737674602874950189515982129257293767465985419122933721155641570238444732660338105683145053878815930645093942076216338776801183757972655858148606180305854173416030866139961428849630850285558694172088315489235248996869105697380539048300936885374039640910345048660391545319204825951219458090709223239708426882178114880826308792582763386337144759041061102073899346102430583749185883184766650117680013667799426272739101826831842018932726545327733511309551391986443694643921113426736033017543652971294501816572122497507708148442671407184920457440971721964543439413064798055618797779863405611141568179063997865268141326921440765287642403302681583423552253102589532762610650129217604938616818803246178304132544066529515708283798704173738770408610373651954744374667590470271228808704109664447731405164646906390466992857131516505353933592398992184690407729216047191796165045193691069188775688334137489611409660949603739411671353497615210727710466254182431755353794905926751634567206291740820232296649917102766770406435950185031205238189427858676589855618615453011181814659948261497440850206322958967583840705770729975730931094553144066068278775647401694063366864354572693708684255633110486083947616360718796689774525033390119699337165497986972346636440661847368351260517981300880985800743730357852907104831100504797606760955566263781811248019935026445247430601345399360730597585663933271586825067013864642366237155930991279451941518885284866394517076783966663559354180858485673640312586072128415825911863731647358059269278397967491061291196001238047649158564396177165139924573001543290275235136258921430612225108118685972796043403030359117887857547407687832582088712361344964902830550278153619907769752378418668772660818294170995021710365139748809711277579194748090479500803139215996116500418182170632490968943926111171164881752679343692386406960002579961094582924899841035226387373061738664996569120227487634179076918357198657439883053391865188703838396793302522348180294826098290375909087974910377015933650593184168679607586746923610196209831524322871195369878722084429702057371305641292273306365992172936464928027714406964347284981758813250096125913068854642789087460809764566532992339586350096761631692568024403537492901901816867152611292953362415050210750837306734457549119789801548112520286413861096477671791436836705520628896218863027765256263459294792909604199154858920238886930020935658666916763063345006828762601828402616775833669773639867486280626418639221467006209639564920796485382500729494491732547178626511063480998804171749301012691710533899483597675807157060166102881396231259878364272191164599810175451547390126442541768658835328854211416997662568073173658577912718971405281563950389050410720581580970083357974972744074776727501515673561479036187407142087943034278206451748005875286407407857212719730413016323671160757714981984277629214221737599952791674958146459623681985785033533140710906999737969154157617795603751468826172299313158823151751083906927701760692448391076783118360809680102795667676970947432695665545587341723490001135525515778859707169289406928600785403294713446382186819059042410303697455495218080198294314848377197493020134965355477285397870780875078151386906973674086189309514001127765632972613216438920842839950699700704313636349660076695363170708419425865436830051315462896271298289091158077605233989594810115711766342901287304792215520720667314492607136674762181237258230226745354889801652362575590044714274660321754220387752157821306232615757256645017127285867791204863872890441072160515349624504210040842075989152597678392371820487439256080857804510028696844193904345355559678336891622174081423621377972711422442454536970481687233882905136887382494174160011561201954752417129560152230691604242764454857278993243087100782218353693476690255388036523236756161946357938486750725850710148096697261337665242437715894911100861360006463069786579276359704104560370425414754963621546825888562888621879293289497864978344458826247950412664277418791418357317942000052280588513034611087943414933068627312688289637698613492832221690256137206814379718307324597110307309300898271666872024326191486412903840028551301100444939651554623115182566201242347753019196058342555749241301679783441920114771704240442779475647555887955534509222999018877069579614040772311048969413884175178786536433785565468667610272222788134411537204400040092626169646943044214752485098481949358169974101256936630445445037588247677650677812038505979358041124206008524944547940667950287077623105801331134084036600187928716533420217297248891887510054801343924788575527328841367580886652506256997773224014916352347008545773542113717606021599168936665273358841095818351839918552099938463475628753640535011257850080263586520584917686824545832170453276058531528947315121818248989204989748243176570623147212858393845799568650199724545166335974593157718958079135128764123207596956292253330153443141831012076760386636752289992234951259529058120825091291277221444817728113945547604594244478690021548592962549087684321422400951437135699126801548608934021382283427714018873415303683417772216023935182735691969567266153945688753064096922209913379796647567637650933525690235465370332796385388488453895081008500806286725439724930004131632014437643837121833076046236780408296968289953923469451939104816928230929313001596334652972939923719854127664724756510026152424877294731771099560809928558116823830794496421402798497620844448163993410468491199682273394589979649292769431038267679954165340082694846943597113569953443108503651310599919755488678852405226478727431935495184546317544695318683333663273658736200700174626733108045413255188694048330815905577920964279868295832041913928012149704696969079522448985166109604646085876955897084811302786371862564232463354906279189429266498310582012153295131637958079928524590775547800367054755385506189732646265525455414662835657075124634085368019436512987019034631978077678368772451119902571921918704431118325477397828609300128818344325852696221486246188948253179262060821876144074749761222705636871044109712234193805777132970422818547359096667629891791112636272768340766423966668643761567955846491732943527760850886998953440946202265351184832359334808309764538324221217638278135374711140400678777314325741371921023814817905408909947699351278667925275866862408284638216840420261494278590767291002861215783617359355275943443185209272464340439696685342323036503397903806431371186424977984929049968369363125141417535505680412245332211984341329759892026277995664688945282042483436451780330406016918950957915221855891040327770239584908187341390489995149625538766037012609489296359931836247033813211127381129809793349302921129417097773505521433165517865571151117205760101613439293734075348050188488534598915469109230000049042532167050065314845963672311566938474551454997044061397621777643963174575798828559125129448001789862075674194807191461334049508233908774299758203284661927227523388106161353360142683461372125026369608705171953767485538508699723601194990911375567068233403817847619928511104091939746161139916225622749247912219990900508861472451462152729449535162827736126550293685440317156785856914071995953250174286848378537110430117727272647824469075270789952991709059222661153348373350853982848883591375431715346550407670658453582651414297881252876286113875713166559268516521260354290490356063898604461449916772517947387597796229108995914695931594557580064297270051404366724459223753433655413105772170615612382316777170731057858304313388624955211663792134976437556194838716742471106872692414711337447493452443665288111948404690155860861486696479899911734410802048687885556681937723432585465064663925058296962086842431929154107060211514356032770849671628906171436839292776097763014270427343038526427293378099339837905039002698964403996096019664504846971219031327634138665297190566552161787452361997453399710394820288265784310987196590336392334868997956051465404613728861651185594069498507982714610969948321797549541344249529660463044870979950210262246437574897767488666267341953191835266023595960668957832294375756022718146601445658806844214965665264744987824850410225737628773400634269746349602333199236261622889652041996622397426390189625995042884567960597457426197162750758582153249119323757172308355793395678438443555892706291844037271366756966276045627885852702086691022245356353201461241534609582930786639505519197132200645103890256649167584105268667455620041186016781271925309827018296923068408804344899128188811030405891906147535633868858018602062346039210411979847709787952618961984681356024011966727295670607851005898131264388041116559516390211342533038669610398084299863529249809603293926560028712309537503249637073813671726700469286302174762997293322333566869615250673401187564981061986063237712043389717670633673293064949490889727381145510139167693829262267571607614479436564244125572135917378772118516306096395088425546459271414586015415090204926452959886612976808711188775347910312188073347161464256346283707989074919214668792483055655134774790652554914965056206302769599187581143962108680656900460109669891401604231319426435033693775955489950094988650106668673149434013899950790470502969491982364091361851693536414019577322303925475445843862453293196170724276279140813919563971089014997164845458296289250579682598265154708853540182922709565123736023733260524297838227943970884438154005902879286744039708243786071026815517381297600059649072695016957086086287583003882050364211328269910708765560168768160808399691547708398752353693081475658235827900449937207860731320963729872679031257832440798702700509516979384131121998090114630883463460664356547242589793073651045750250136937232343222310015403106926102269342002987528884969378503798532420638238273289254219799086330525905259116990223784839601948373045872406812277571382734505472169299904944908141000564390702205023713590768799128005451930258916807394387871929153287954094707153516459062253744183446701956933948237046656990814003435874181542195647994927749993580402229577568132899707201352942207358575664657145130455211550492745168597424087775169343375551603392942909652924428250230560016398764221236866958036607149298736985418149968441111135662794794572146131202984051490855632669933528332383176804543035778729306218224999428077438276979923215934756772326859457028780943679349473318840642855765735694246196128050833739346791563810349012628187975189681758706898655626056814690859647909438922535761864597157226966683328077854436835513072648276182973732049538546016485882477293726643949247134494774981693114810541741708839090777420729473399399668394874586066033336042959930988916703218086112166199702654670757743198461402598395142340958184583694494849420978306933177420108137840734806280736889527024706313481638130490081609556521283259440388980011515681331086930832425063783462501232049393832687585323650634260874889972307859840549427020492714845330453858925629157025713240338434579027848988400766695018044287937722767838168344549727299394412498530936823282224649106392367613195795777226116343169300130536235955960629695364299502397795820296678866101206994169790221665192698813751461525390123596832975722153152421658157661395684831927937233295568277476132316899683746705129728740429075830989394228813181805208352365818425202644714393372326660157520570629212267212314494195939368393489033769793131808922530813477912700097699923491235643105311099771010070715442318622088104210487481397000921591627693030911416067479428404622126328624605466349911704999516520812121614810872878014960772943592116425145428277114579183902694988786039446224965330190149819252173017717033318319172144230802842236164259631644176892071085174689762186085248591915888141135690832533838337919013313750125107622615849454099549577419393185378252818156650099817196503074145829479749034205222636054192916832445424741646298853223518109524864604324870712729731327165129526773064643772467926315504088311816307458665005029418928085748239085312517798985731850572905099329856354614110362110291996263583688474285954520859064759474798261644882468850681804185585903596851838377389583613607221535524725524724794576302156830930719540284502309068602900813003255925221997751496321523321242159838746044977524548080805128819944611613187034687268292339693918051041122145734859949208427158514965071324834889170634971090136582003146880343776027533576056995644564654842095254852380831483344212861404970418304170369286927213925021168415964570223842533673859059556779645951163574078906097974967512309797693266040735812265974890721700175238332921158885462890434193872061843281224867307631213168428459507617402893813808814628166996152177367815070254706774776222216360480334058394203739788657923943966924016815958194010204244459552497734068719138234809078240609233746190467651918019289553341927929856225983631322699967539773200916410938616047591436495323113592504763291146568291403246350031665201555220046430244756927610274290643719437815815092207164121147655520282066527712347055569643615035878232200970707413288383887210479311116456041113826623534312386570285965945509560715763035401676697915270019760933941792133148199794176131836326983565460145798261343321389515504811002670586173315260931791843048764527716628776249330485890311028719048912198258697457114991372620553353823989827277083876215305356622865453749465475477359014016837882402072931859288457986699409536769229607508552847275398892950887123054758555311904776781258403662913233794129353666031010911210463849255663190694381466770307427754351311870036583270921865954558469478307889035792724642076644569723373149060233476881534367129672965434233489143372818814443095678741866244993823526267956611299361169580275322784096927782750666950363401045546305635782714625030442243832554358408750076578662046943307621195465125647291692215696644207371878056214562906965305533898986276141518321313918576444397041863638158108533526064850707982049432023565951550892325845498994114620473631713510635417268199452531979270958068244676847338283651432038504689143577082441071316085618013753024761629486451763058181310684304309038475419417775855041872479827259843085093410909039839427058682946742652592263640313911155692906241562311785156220072256988961264796864079235950457395656660215181206711873788430830268996648067933549588150220081580992382992229531413792458922554342066941253848320010577427975725733326883463068224737821894202522080838087471253406218700380239049591709037772031762414438430515256081970105816890301167489916861735942149581780170452443835807175858215977000817291593335795851881105713789390991268166332480083572071645214194567858510335371187905656107648521842521872100018202598634264481560695642776527426549855911336659914712187672804990863803599658717635070480680834259144646999046829626405424560274600328016289803908210326660942979341864026575027719220188991150878109933281050777979280176787237943506923547155752602566411642610335737922683166711423911017428726798833590119858113535180176789031452245769052730413047408048435672561773512850097699680071448863125909194550835721971641460507448021432230788926431897467388096190986276660518425397384673687904086080542529141939111505969442138180797300564446664396007190635596781577904481618195153201330527469102105241604644386338113844597810076230244909064847359613792093121601005548897733460866145108157327128912923692472188997066732355867685787514825024257510568624448266321509189370027606940574749377506762803609670920949705663504078006154662983398540961269446957188324579985541437778498859303065171186584085492394926558961277624192379792860446466691604295406632042723225804993517857388022840781005882816645467783130846836311545212879048840795128134598976797390733302939394523191714040515890038990249176744014794757149383664868261166920222321989778811679034089490957891498540999975059910195759236149946335025766717900118036955298588371861532904329369712119733175062511630458673810087140194115952261594970243459238025612217509135647002137595216729289684163531504337451513249840481845827936282752932225911796808570676678063162505287317177969167964169235831575862893166165245142161413330334388824197916158961240376375156612238767533522564740515999577232330324884257667876824719515926060867579631872511987155394051872573623022278175459524811432010228907520148039671916292234580926589610942338261410423035999503033301029320456290810441097207532513440986561025926826093776630301369828988511127574396797811543979076828415730730989238255928039497327130286102869198506775269898622172210888962565895121986374790546030187505004306852316816028916051098271961455154881185275751693215297355810146881427358009049232834324640945395120458413556538378157131094473332576873351244009294227188699225232255550886730723988143094478242679794125660159205737111557699682761824587092536229985625135120533671165875071045674026260714368332133035667009472920183241439919357869598917001674527000797828925365415146978412918600688320742200640355254998654265629255059224988236636259126271938826572198886912852845776933595259048512145065902240323762631001741359453754831497373586190761939455760507758473399773156381406132052899628119926271773606141412094668527268863785101508428823147580144047442426932153172186850199212929478161135787471061545075037383095751334255297729917858275145042006373325059579530601596917385050024698646725128341987459510377067464722909908583098011247222288795376584319368483335072563596234864748011692676333534588711284862088053936924862540698537882290659652091059759467178377937790891569554970720208438343236501984952877854527448414863369918864749183346408355389672922497058349883538564637525131095425295669709976104375115036866558383654365327941966559146266083702438531921732582352346765739751250520959002007937002303661907181993813610846586507524195451433992581560799806000025918976330506322338410395314799227156871675437777539110899591777107821042773459184374369041550497438715866711553754266064239501060098638285160206596281293669057667872952854453212611163979331370431667330568776569149034431891856233666912622788882916507429280279048534473627901724618656687800944172842820289706736713871521331692133202286482768114068170699351784131391830641191198558508290833809829427284085247673457693293080409971721073591202768885607987868111085265644479127998368055930142210844166464273608877865383323708947311835400023988042389874828679680616092732521888795227437849938172815216747835586391566028115099887303989279597127315566471396835541158215020664631747380925677037081890158339914922501634894790554072728181482196572359778121219312125572770536865563728139325577823966394884123071544547617980848458464217738594190958244902429536157322719250517002311174959210211621231147826540440137820134715159089299379958233124447373687681993129800188041750397628278759021490519539139035952118629619634430456495705770639331327863431192991660127412919814501436106664965928075678388804310411190026145992084850983730433047902506752532758296934063536039715010840890493578832063622592021763663657565545233920699742638941416154442296224989521076371765444389027236346274395399106119428854515097939105515730818761580850716037423318142195312300969031819953925982840004409146983809053900723625213618396863114515390619235560701487773951520945230479615111924054911888389744362509941591851120078608308273303793432894046368231484313618217127940946533729472560091459335070391846667344592861671086666504535741775961824109294845991486161080672375308915870400865743484381669990756991429509404767763333347230595071208577134886201527206731996171237410355926503318623347734773509109480354365343192558090248520602505016476374159616044954436272453512537263437433244632056332063506368275734274556903541593529073490406869865958755987250433405626867267660291402704739951882543753904585122337970025083066797313655992239381498668188461471493249380606700667246532851032441379504868645986275192725322737301625984884938034954133291101477057436378957984950413890789445938225302834315709675107801282094564341325049629714780862632215354723464522831036500235690014688882559220402810754549738335352536197144326090698884210938683142349802512100982544368989905193014017157721287804609374839776660580775655594165342341894348851303793848926651752293741118208950640708294081578302503318870654253104793079871221153079433952298415166776407695025551643392544344084100938833511867826384316037991951794275326765322582234260650431062508747498557616566604084635375702927442628629771938928913605467011514275341257077306227038371058320523728549024304577050715725810461418958592867765808833442402952501906120897749079940161307189818018524710776111040659640866868610206938417148715690190334997448296865859700314553278961523889862262747170294202198339126141422423832765603116491726993064387256291648666792677042785782085873188421055590167006267380654163121323329164943699684502592599700260525689898820172680123477375282388817881163301466840587992168523195368855295809913742718948048215985692121113780433384471349121915959137032628153027624136180498521117572750802292143761248739793060514430812676827410982248223484974468324121003810936994931811589830338729134148901103893572846504836524282393405144191949128993461597823624229869424973148572040487587137020397768626406777136033085010440085722896298868464492170700750116664122214904062474126506205857882078880494906366922237414973083897897766680382414081738965317703603903767616922129468137201428061439577330217027246684344239566494067012868097604170856930482869352638671573744001358690721507550500696711852521887564190360610605728120900579535772131799226851414484633663350346211232529879192785044546240394615097264258060547746448407442985042200935251840379538981357357998076500388062816875402660017786953817445655818800896367886648625017453751358944992537140036544300116034205335835187274391799151772709757326037205746555832057013015917239012588442401050565370765390428850301136260939333382608932944363043169876847651832840110869882397340053207884797520163202671105216084353282157830184553905568372669697019212843108580731848788414896723891293333990277852604517716143612906749676048338526238685306678119734604233367385206301042571811606247771610670022742684077906795508003013884424175867303164997923167185500239016064412716064559376572342490022402420198743108837835966335748385816004501058412880706617236303327725897611308152561030819579924440392082064669158493978675620953591615886933041314337810164844652077294846117164089553448510246860838068355662536712183229936801418560611970842934245686616208008632878957931464749541535527183354395091327760266671499034146985847184872000291944497289751665107202098910172918982574680223512180531543947056097866777426440988117784626583504688845266933521123980528410131629132291944853899855970845029683982017737319114818488024637694927753537489964633072419846688118795223787243213948964195637043723361534532245470250103330915474143077568065263111672062736287902694069423917574351888805714965238612516537564586809257495523454804817707644005837971879557836373271588728539931505415559680929021320234990830326751704765316259222987818910203670182502070702311693273440014173972212126761901043317163584166657816943162994205661538285013249943009689139468933488964002706188918898701658189086350455401208940963390671730028047621524528290776242482304039459906822755242271924799543872087020430784551245450113496606294047662430642455541308097484467534692066898905626219665133946892954838128013733010159255655571116814044427763612669517665618746730522449089913302225883547774332525364269405636500855227208114783408193597877437879825657182821279275612615748595600271437567775650272604764229215730776690619380831241625989359809725435286279392459195308702486371278116992300549598015021286251108452985642649526710584703241161163554874991197187021578686461780761805801204834719277154458150027418829120281666467647878140374405838239663682681417787598815537238666842506592163887736951417819964691128295383794948135576708329904089391905823514580961900470511778792006083891344717403200305648874167281564757348802474998629571711541152004309033375020250967565260340152415464574398698501508863587495203140473486058707305845876329138517502190115977410324442884432094536380866524675016059273396364655675751448839593484212571000578758704154087031530765575358049977248835046360853885039233422195007834554979350762675248878235052854887819176855707335045296417062094231688582858075429732103973243693956862986621456862056265012558151807120344495896096044434357536299344528149795664319018263702359785866641392945018805038925613557344587420439277003313942195864839159433014915537945036164162584772878294814577722159765414759436347466780060975478915997386258627122491071152580820064445747209682502470265557285001331971861387964620513100468237284694485438882343712986749748043274116788181876049592626059781469892584457420886461181660271551198632764340683334762224274951741908749103202472263126284604661408069897398144228662689541579255335647778475466541929566743534194036671291388696364968363261222062547652221376198235471408074420264186219495677847464340385911863306514137880914888610397079211328545302598848276485478636021932436433680576140204473751958527176012400724775067872505158417535225051222706685487915150703787602134981751947078832897756746860578539555437940978230781833311506471774694346560237148109373218786329443314308638371166529207741966352361725556897191317451910092812388819954935277479040954030646815462996784248990752504137266296579793990898756686016472142525302494965405239621424116124907599530470012474738646299128929196422152670640018914531476724271435281649124952006480226296589760710482716013109086362892887221650506453104043956914508352281301897939376471639056872659813229858608210812092078145492274120581691570603005372826216692637241251975112305971474102491379800316506394442333600463013589183267339839689067001359769977034599422996870302077960148632598998362870130588540173950142833347189029149763875611101451377150975622487531490751153114620754562703467698332513364603669886552359673170303371000967548083261098851684655386644696600031774590518875030023754097755729377939454306555622415082988852981386651991684294898863853959916542398751380039890306416755044836838452070633551270678606467977808051724508076534208350981441133721148164481637902588634712030720526043783970031635896553500342474301147694231433139143693545525300777070008810978130899950135264912758444627812500908272803957811847742325334170408242232989070304752288944200250469878437360609368827793305830281573011911536095420179850649740074999183880388747400572003278821662156284417385584674422943061285253620861848310143365694552983456229350040617697831843435005036267029908092821082145551885915992099553007750935271454084790072134149060428662500668918842725831354222210407193439897025141538063093368760982398088490761094860524219623711391458235970286873574036238853099039588264594570138831000364075306851618349395229000352207905841765085975972899007343275818159340089260780291271162799233833100306872800710061347183851359006309936137861188760697819539937054272670529342531519887612315317781548329620237411971955794429154593724957560879233304280361808402798344857133948297900482064521377611707800944885421357217565611986577383701881903433822294908466793020882582272138774424840271986033985478864346882871714433051009880755109063847964849271880915750328628405092905442097834265755672163616307016586465702521978586645489801041037859311416071185431580699535243618363059242167329916571580326037787161528211931600573938978328433577296383030533134434631916734847009667574112434702161497993166490908854254553959878602671848165786927867463283130508170883917917820616887880633491514285046971920576610133318591925946385912279530682070067568144203767137861711927429820071954500064643818164409499796768804574423772469952433289292273722400131315330881053595949103217231085210476696785508042925048544211109089382640116853346548220536394849629855701771749656813317248340590521295292961997042984652709986012715149988985988904870671447216627811778633696011400897661840287411744307411639919911208156217219271774917133799417183672863806254873072192799616413934512091631459374748090483178222031146510820627811357399104757216814088103766407107032863754034964170494785480289121214652423056854643003153143301818977603477793269208169665371169388868734432620656947753142568493493468129322809187547470141860602366243537918161656878167887316392453310459403295945535987388063855807738194902630484495255880631801462535174146814631247732958769436989711993764733330200703517647469656736912487010091448298852822950320362369712114028503697303351027549539598546426626610551336854266775980592255828034405031818811939435443354526479896030743398603299887090027441612899532764581039936609372415385694418842218671889887876660451406490493952853759128248084353349619895883608333761633772284637162545642450593485892929066688935724654043726540810270628474861434873233157740213583032540174584427134377501943020933740423495412893772399641867276292203927959477765835666515594191138345443994493504201510270398667582360889886150407715102051997503298854780903293626484245553452546177966374302767584512450590317325973793624468966949375592433002878153797893829732864692910579265677693424433043606602290369007841108350980478147925629151809790693434341777595764355613391789297472441821254006050979072320963341469733262577896557152271558018352951159585063200567849898241257262625946489342097648306080133196537882361414481083912111216329986041715133823731771776412056494651836126152252338450980577108291114026820063765612488239315350609440193886586810558683558548475614768741166456927941509087672861164849011343177524013698639450935476141765722728690273179991013069012018968467543145902873305739546931943219665533729180348818621668652995737505127246061952621344364824950223378560390524902711080830116452844756126189208471347338154355076341776759506314151382915771482974167656923676237112874099230067930229157176419749085685865521045413949061415158861101067904281429850417754965240498599068920655303806583843391021082813647729214811181587684950711877275365815348774475061405390088249289759241304220709215382613202513748748075148852121277012312012933105409450942908881979832442396012572077867795055700598862942511919603572325238960611069281838421242421142090333783805014447223275326455605844339713303195855916844655034478574902974104748428828950193351620234638282632247179710211751129452569887830813274545311481057868810484061401277670146407877564218379567383175166142663626188367547447176067285750134572759655990054163465043037361170420370152490338828271049592262363674291521751231520693563530567768415660342371815524996193417388507015405708070498810461610701045678890815271794289816532602118006400120358004231644436765155015277342046798514614809213385582444342818048843162643145399883432936669930897166319743680055291459052230970392390761396370755712855185746299417676199853579304035929429905983701294203731764711643281340481602833450224034113772343038781178027442912117489387271138939888940112365731559494825737895199179008547171368000769692046769111363633793440344357191635696149544698313699339922326142195779702887043586302954971486424082139717087575620912769111672738884571170355760592776971564168696672792292462284288102416428479022229923792420879652086258658378600888763544466197972453311861650228477339342995136900032150902089171491528707005224386609179865427400457502116868661839526442251966354884797067065914146665848735510430707973082395523210966716062816168562421087572872440316536590550584097196324771584243686579998207685082099458828968150913214461094686472102910705163943868661815122495068572267701180485571034248526849954108689812137275882045501011161416255018772976431498825353409068153490607773049990644277698062617608585838624613998282429569016911702723258998957391251152276442444286969895719139904252304000956753720192040494648188744066703490451067231361780274274628212412360519737971292442699395690252094267732718131913359382110321691714284668861897987000821935699883830266791348024788302253570166222721833413325802124568163814504720198137510130114474135346488852584259546081270363176259963243918396482154778941938770812903990774491199357917974147852404167744145143976573642717565520405471790835404938372372587265132223299151686025582941187848105798108344097183104777670875958582089460181572191163261423987769057411798931811060739468806150322607001347482998088376016662920668508818961264163194863596051093697502416955052544574472380956528977240630096204097633639644314206455747992757659330372541498245306830692016837127913244232442440426778992789250094686363546300852863887509340087260250379470518753459782242950169593607809684776905508803567946232386263432870111309617469810913584999663784790151322256421775413532748691283570990475851621509207856519342678540838911577589953291036819867201771352451273067274031132496649779585443494203552515223435670742989573295224667029668521024949502945781819736250427066930124266245428507431343131138356354861884239068657095837067438925672458649863919945538861456521576070013135180514504323283980554541426367724376814772953708521574859218826358200373253957379314304821155012100800883390838374613006856524204045359453825720744263777821874925529872341471680859620966922690658809412020369475397159390340216677652194571248863290626656520464336240465843606484787527692467454449185920434357116867228697524666024618411187673475918823885373769125049701609712637829913791241007898988868906493758013493295292228966123474579390188616280424524547159152599047366915955581709803062018132580779837230754522785227311369431394227854917211087436348677864211349794719314133580768028575342532723061215849295955747063741102853052730245424940945319344728344604129531700580700691829132615302912578053455046492016550341546224106596082331575728089064404114955139244839176959110236898444106452176236625885392617384080796086168741623558099675566226236679938307757268521108449213850183780859456977957380151159341149775100117081921757761948472044223970530434021693510661738192334102895901989619667252030171287461889637107497250525466749269214061047538792046943204682056629820675256294215386804549438428102613906467753593037009217717031317283991771378928094385529540766161904431921009156325972126044683809471584748040714036391781800681729338720710991719171369316374883985735010688205004656489108668614825519887732890207608056765988592655844295619135500657073179439641313314775577080118202142769820701911328076993198040584215871113852345834531760349922345573744566372716145991716549949787015132092691419055342283195820840551036566415285860253515386438758227001367684899294819808732281847214043638724374114109370507504498131846584703195818870716436723544755638549783975276755258648456428204767181366213718306388652676397909556683386938339868839794364006770323018186163732155406730563862702344022530773036829048723177807071140449952310404376789353853744064772263814486420273012220227924669648209634303034625541908880321177011282469476149513111306257271202188334682428325829351445743843598913595549467423113685482522471421063070206068136993403375336480860897965059920052741660858028908748840344043716563181842240581435806572007300379019000950211966476009031571856578141533965515813376008341621928278144184977484434059478871697536366838613854936529152354492383117304876379411687593130666950805081640007247503533030676247289625176201176983556494137200314637733306050604907222545492971391464875065023163307083733014694947476785037155562142968720426858014491036501172603873573000230101484129671534069581304098666725873551323327679501578597704616972335455868211961784926650598068694717707472566930077214887733204505584339364932415182917382090180451975154979659950382942283561749397754233455314202426621228492466340249874229566340155914043772105924203235185486760355274549907990366552590559339541079524729231741109548274463403430111938135917016881284541849524544094478710475263033993741346705478711841311188631037779837821993469965978120100413698098541254300454294393798348041436115073255532078697239831129426866686252399349297959292827773704871558071228456199517483155899585986965788444762041408815857800767944864341081321075646232719101651301873600759481931512597205132708072508771312162911366636865912807088580111359048270587720701178971598009959270943551131108195581900733012142512290713428341201949938112256819050159377491014692622397281567476372712631722285505914517223832244244918819030032608880899905498697033882772407205568586009913820728408084056016640964389771164156077504662084861120592544768002803943465779486149521075366551468417181462057855285060197837413165996283553878503658772499922018232568648698158127751545858752102569702334097093684076644019854405595991143347689777261701774599135028659892347333219147508342722917824259180149087997759265337488463963722228147866447684948279804129917603015141744756886779279260799255097110384015500279137102046358314055953171997291790286429485054614668727622280622679622349439979955084565209395443978963186272645923922326365020835151951558939771800472535310185333573925469434357338114139691264590389577694672287478398168894473435539001655782445849591776989185176506020892704744830092508434093045789331504495367083806295582561268449012330089527864622849899459651165030881072608086258549539573068152471807669211137516148608060669019148526325341707170869335832010046589494650533122736154553051441340732467726183419390318010093908742444209306822572285093801679610855683803804343127401896600114925207298781444011829030893286943880858364274795883541655826644016436656769332565146271675027601534117345362566259256041175090676562652441962889714326051382102507008800116360920830299236539933371313776675246657911007134436214944206697413987949754903687955168201786891397277073835083105780235241885424036167701879781822075765957378332517972167149667587532415974135254795447128340019580799568557479729323850793164474988837482405556055253126904506664857594887540300570665123621304618043738164226753413508882103533569161023180507013063802409216380656304209867433616070725666423646571080222585455831617937305429743054427898535634280948279563159470447876997364777370119019910856996549135537494440857175672217749297600009449444005741256845091841313155575611631900470493938948487081550717286160635851692331659934580278715190477470084659665243201197753130559643788611185053852814142972237725680633535039645861983949701048899904930758474326261256056478281514928872431741211189562137404908625288756028184495654717880067162770918661836815000851676106685228344465112408633797275462644793489702009527058282475186723131585310574159366168709305129583283770890916602902664505080282054836941317989306926036598676643925184417822151374052043887624608929831711255535783619703611608095367049286982600506421405504572140710479756382341512812033512378204169547692630678958630026714558670916444142140582311933098030679196968660195499994257066608173292107120640976418844637751712845879956442508195488140518124099007683914489708037202502068591917285054376056620574396149478511785975731043835176032201482530267454931196203343689941526404097246408878529106962455733128472568739236370223847034056471300085464726870416074857249079501589016357284876387508159092774538318172231254872908845308195421942703985786222327066743478757573726607697189527388479763860074351806138683457674860006238171037189032087484266338154304691222509889057895088741048150395352240498943693274267548558882567333709078906251646062340131921296071427214963525644141684466935229662711054977246915502860654297096358343075335856445077810463711981532439850679278666981541447455096053625032131529191255184644238324419395550613671966702758399319694687723223997529439184806767340368752596570757117111823790944286946454155626187719003826641372566951982556602610285198639182372214072692704669870926662468742983047940675326981473419329564040782288255879603595629092774877258087466935310141988405601755616378784610592498423399556282160515239798683168204078798436954266741190333709229676822169112383274863823005856263997516868705105086475693313152362548294201195042720849954621097171488097195985275558809959775650494857697381552118714186606768098515809965117547599187201911638968029021718163251883869453697596485803892223116704915606829223926366328520402655877560790582947045334040299902173531009276985477853104481052220755842791360479180356176786959432321453161760943992777307789219094958938536590351385289549206115667749451816074049838362524606915260740737196268166412897963632036083524197415115338325957576028522604911021746786140541882815601527085074804924938327861369734286739783876548309723665191674132985317908570509812169082254877198171200620080878954811581362319104315822241828495288921554306843975878421245666938379687231620108412492090799690815638450523088277798854367371070399967068578851557868898435854637556073334235498011080386180416842809752545788448485624499196527985029478863973705431727614250917941180454196171632694459116410300766600420390131151315519933864187599560071785369747146980184645656662320990788143519605663467943194325340408946110995264323129991004583328235106901881891514333676127433693097565023127426123898331776121729145153760191511197733486208847288597048320311875745661540031579639244571489567060707589688232988529403122490210975097109222825610478345291645498895448101683371664267147995579741086677689274145196007586742618128217451038530260233860162616081499389159014034783447205443287300424014129614312992563033928561990111053206287892970832506614676746210498967851864778201039913593352083287736788921572022384309513439397487159105695183040729476015444163608271401345002285149205425826439953787059691237847616624126640022915235090671603506197578936835780780819352137410645070935592338863847318121805507666073278461401693504256435101366736267430629789404159429499272958321695095369450134475844058912726167625005149023767224017222339437964286025431294364959134568964525783308044930703347058426234142486110140006382604112426944670547959632769055597084011470485107657878897448142293672345097658876631732102588144469134556456868920835763648005485773730882380486835521094562660756873911003540266522451298953723042419429553548941474925685920153596367284680195536844350501026438958389930410397736418051016496142331724122231258340196193210122751684209021695080963677324754947483501032539565550357811928413927527804343395286680912596634874626450408875214471102843144081203926582046867030299944550634587683736029199287345916672943173224541781447865104374988064613713437537826762738812448611849019770360588121569299103233218529233869618540586133092088084980806937439364701835828316505210570954128940998821925422317167520670072306590978159370513685610359761563087801817150884813514217984151366481302935488972060051436214950677617442582912401598094322558351968766780584731062241876309282586621778525595280199840577214892297606177551708848514295465431992036814563530744327401517204150953354488788044077303942946942094848628684709060449752006958314869712427224132518868623216982909829397506422464199505493933657490561619671568737120960344448992470533605301900338803484133173139216160552491720888450055199230729184277425502053355740202404985866982369816332395742970727867921620690533929211327260125849867467618725696232157321089601264571688394059572807004664690455617098897643521935492318802309299861667728694543585259720309672166293866357107159329070230544397874214114380790059917735919721240381108249402832434552872627491049680966645628867793321197167978813171063893124648882067149474723187681180223559301429207871833382928462752134449353568672186333624776607927250717390148401174407107006444145987628100757069023960450400257212869501553857817437559664059984859654683387402943828213256311656557685018078877016927562943490870779623659880014559267899534156818995304047005244926425804850505534451681408249524959830610145452123936728101891852116630136472927343617817669305700479874768297087259234351861533337314907919585144028046787297002332139356704557470112989546635316250564044958086390578873663314738642686480145743395616170022590563294123031350232398033333481296696557369711675680787003545434816705980450482508579838465285737926539911222714546559412813583622224586836816516808821087657485785272680737287396372581793192116520445159096089230799915942554790911024115787225882677583111592422712360505257687525584544119329181955896838986891386465050738989029688593404388038483258219085786488454263223518705232802932420344586839868545159835546957967007162880253396344669317581397655519777163569558524786063418354851986939255710511503633373447152519891887759120489832936912933060961468137114917636345054493972965409592235684018492215816943691936568212452888437082328341459725526460712503338170526556549689428521001896430179414874951149108176185301541893629674286771847637967574561931309096913571518911692515039933449560664182408772042685833912024981272571820235895435365395522967133295180845965871551320683002163753738643376404925116829554368485977776347504310377978228755606335131850399360666676277913363051324951187267265280119780732550059779811616190139016383056231253498001946057525002218315436369340308410620617031223404409770321253884312705398355297453871381393582633828281719071425096952700752958647762836818067040316612495851678178224394240893941230628298638587930497997206012311480093442312732052218128285483630915614110391784167545778306347674321830020021034571617869684777531022209962131953159782990334341180493136468626494062480376806283774656332311223827304689468193007054631134997695706885674373607874131293462328260205058574926535554454276257887218487450018869475032239365669747034955377134079412973749276519872547604344352555946631220171218359015239791353582435284901137427094207314355241492928990237017869803284504289824760724061512451323245909710949307472233464766652326521195586909573142363821554317587477306728351755238277758861917050533325559896716553381860698114890943951159151678612889364397592386167151988408734150244011938820758369089429278747796531195829375401279165525785759505864978308937844631819962928352429476669450405558474734968701751293252536420602001492288078058315729324687488305205617485441262528113214638919430635812601166798265234726555137594693526776809013913333775645393370080009511117610033535089286764962192016661010028385278012783638337623377296982492587128732952784711765901611497023514453267615718999316386588803381288199733107616106567082530148512857795959396437148759675006879655152354104371921671690861825305333949844171512593634236261255290292426592423683532688785839666726671800272528059980536973304669059086212574684245241592899167440730467306651281833664426277741447858444888296805141357136087119203345834845721662793365257620493654290306567702954337734395777772603289751743803039465977164555764704214580646328687287583474097215885973159293689025266634353135621868890083874921978326012617018031533944805624803737746833515353796429241350424051739894534506092535226228567393917065255649494770386848517071284542207324603878989112544999118544188493720016833151434775753978916129578558489330563004402161610427613689569543664401663679686843398329946664078398951361167916599802808273632625806434837706790880543412137120220284819546182851646427631258150505266545082361452862963518684202734727955408083964380774254247072662336202702138485038263347809546492098254954311867193519234550973540821273757781742024650953667873093958039362169599189414570687859950959944974861278369948753088043722506129649423718001446213650843233906568062285049893068474209176667353606078348510253637167108760920832431189806116733136434303091042182222610287978767122822733087234992523449182984713094200398274649157618926997611026323268020614959324936262667344098696009539169570799464054974013164541193776466217270894846778007194670056370160790792774733191670681471718153771851941632567848226785856526658973407546681773840881576992820902546293660194019935152949920203499251058709944123156317731810254908685271856435379088046114436145983992237739805058449076005085223897699900934551237904596113249027665996923071318085063500183055394415840579843269128713766400353384174803155962334079706484769576011440543166441972508074361562409927701703174278411251196766575816443981511178258443546097716786550436906604709664896062113403609033202181638251744060500983833323682925583542618194220812931566316804380384415834403969411125729701344251811435231488947387375282561208886532127300849254702875990705138754462306716577150831964277818583929505398249880275567764947814888824462413765320141691329259703061598415328362437299283867743174544189975453042068188254748841189380781425118004332983999626945485480148263671781523260924436074119297071090443111551661296798291376602636765931285974661986606845958561359738186027461228934306488640745286888750845955905437175428731656581742847756281831543547684943400035311486950742274137188812947591422030818953227631298462672115383545978685040328068391021927396081181362682555587623362393936415617189009222253541876823723989760059439767694650102116636129264790296433034472988907806223865951637919577326136526625269356150339801395004844529265642813064857045165206928658754289411973803406077605435132195787175095645506522269970154637411810951560418688634087329146392164326932613649077022543002876558848739280739844650040726402754460457658180149642762268991508595409557812570427412265278801294491584429881286597447749149735409877684293712738214560756510941825026762793640926898284146740087011344476666939130766963557449177190240579070353007638679238952451086815711268570593970661862005075859336527502285152662841113368456347316904255353904927694930982755037704122104828975109554094326665580361117645503844992215760411680569121332634736109170404860568623149734808189210118684141092626066273701376509054406165121513913206719607090783836512442265006477564544881402928407260858123279152560818530442043228408314540400695035769620275062842229725221599581777414535354869346930423464238140189352561181396407679300943280118382880324876801459047348785330819610168950818990612033591154297858349988698032217891354282804227103741218979391724112067391141912059423675928740562564355215183271516536993651216718918932845865592628054264172684214666111505007875365656851740425805775317264040853666427143529796074864358526720238830346720042162205243477075758202325170879867918728723614470303577951334906832548989839826394304624424409323710546125129010972722142880515244514707904516537104617450934454285239130696305474115327238478614669257996586246101878801880660533872481449037195024017661646279538213136725322135784219355878058320536846813280229571488108247594226984951719089693864746686373066986945261297119923059498709565785964046104788664831538226281509109188007419967760859045925185683927483851286959361329324198012988740816958206772377970336259022705951619345085924411415685258692102811817831954906994020275152828571008738344445351818664453266282044051027112885265632077128873915588827882827270355086516375725722353327412883283154445328671125304553859963699869716343200189883083918449970845761152860033470462932697002258102410484189193042581372076307435098120289045562111711571855111222128998363575853169743510193457170567188889989952601566877103138397742395679182130027598351112521120280360118918357035385223494401793650466785436107132687826266868419552182648078498957811109351182670124778770916500739948843672289205449705458720704875601356671740027238656998041055331074386933665618452550647300999086491854787345273530442941331675704694205081110908942317431094379282314338625281072985859025429590090071472219873567686692368141666695838428829651914445958419006811094489822527943509363858861212668004175201196172352375122819681799248374520082577176132448567103694085661851867588170468842551484958678797049432912154910563712031826863828928781970513671322836347892617449924944452780611607244068536170622849721753487325027380089570266371818316352616707822722657527279161773855297635111494577961770129794175692643725502138424566690244208986564984334362170053216001662099451470198838379900568535078978989355005492241109767225893549456652863707401012287914307262585900326020710452701499933608612438619044547463549118307491172765724381376981710242641741760230809213808061668926930336856371120907585471281334559784054883086500365641781229122341678499633759584818428244723181454746978397493163987200345735904829498475473737679854948349512850832232378840140561226444169890912012855435410649121540588142928428726974277829753817671860019848193038406976868834589863448814018456450807224436537125562994595005032482333596342608352657796085772459776755589094717883191883324683591881032145104847194637480529046965242057013527136034629855446499325727792874454525837426154303301762038614755411703375186597211406182113183294461640261223600673951317413509318150519777323583665063848926046608939170775980010455621658141364726643247768954926174525803956344290788814522102675942353497459951315465716239714185724772710042443370004144496606653538819141672147446935319669735497698384261552375759285104150476744872592185856369481961250857453818706591834847489195356775960916084681369764931564823510015951778697923699090820062106593724648874594309271070037862564469736190869860586934294989673281590135103587435884418878144217065223660802662384867728437864892759910409750598268360812222300613987780249337980606155792824587340457388801688881795943815573237732722323125665365353109152739451875738968346962028440963004770541069709328472700808793211750547560421167846246787633686669860713449777854693178963561123800431765996293567862859102697802148746379714461640862792694552390287721920569546753655602488370240350813318827327562822731590707902286961344463626141975164154402179069035394959585993210291550636130517453502505710056675669110898857790153935424953181446562186261441966153373728317288212210350538956881753457674209217575890496688836212082734645471353747987239197323458754357425286189918615109918726617942443617003874367739348557683289167507938989533318603962175706390775155407839443847756839788153169185712205360528988498530775818561869670857470976400729835269385049585141542833689557395109686405234283417696078339624174776795824658308069827092667326678966808590941926017777161440209177133038022728543970282729947254993581288607656863082464310284129399317585554691758602494455858277710734400455515832229755371510868697615216626367256188871304213848030310174418363896221804527026720435879173790361060574913057567726908709366794994268450452159995463193921458203438195410282846228470974652502693450619829853742542604810767534376221708621550665387828571624909426460678231782557452442073625420780135443117392418676416806132205507888168729486670778704769093787987570365402015327945700405664747066731672617158864540799690604159266136039556599171896136625140748427530627402159821062861625142496290519325697931163654835935372989320773745228320538821403412390591777934211813389372861986769354312231268859331440496143089818462435482475243198486086409012257235453711583406826974970328964452590992582820310501383356647281350077285785815240593406179117478974037339012089094561332879403848661206980369354658313511628997543047088665848552124992408997977579709742956202181549165786076943167427391292516268502458044148352774036471819424032211653379571149235339719384178106646249404660225726791530463706571024800880818182337966338838720519428203180527853175786172408523738080043326776688278574942180489883205097306393507183429210124889222865018860566437846911874628973901094539330473025672614728548839275518656389335594797682911827254230603253399226914819090783898801660132868030777224101716312026547156534621777484071811469642369813072414424661000637607734978117685891794941099309100893133422213511068425714173847642334107655966539789195508279030478602789043388743524017025416899668239348914809180919966231292310432125258875516851338912810228289861968745141698962608211838944633229710331595790212755194638430081060669672287815701542272798893178418318180182485561610312704395307728544114768873527733507870982028789829855470278789255237737451706014608625144417202039386152893079325853359881195823090685676415954311880723645030356508936983907029502268527095991754466753157876079675555604630517416254653651070156107663324271754273806805531042058317875736994419376985263675219015193169055650588300510097336006019424684384129000138946044806107788708856297527842574615073125994132144803517279421704389216835774766234436797390394744845304710365686161792876386539169487405655408857277034310045045085550494679809938219023046442240124677920734881424093040388969158415237175753981205565824863172235373616084232683776886090112405456264017871496685483066833360847590585128136099246629911633008532322621690652519273669255054398161391440214632210961993306634514127335123607944186843320674417167656957551582850889103902293028121437496551415020303651450573206066608450564284183413461529793117138557595832254705177714005514785822686329016796765056583658113061436317779191060434346912905409795390147501174310107567190709362194583914730570046735468555189039975100836687301400127706537051180673577438937896180444687746243755496125021416499920064476720763476430217239900976555501034089179535298535407634443246693758664786835709544240286429371057767470517205129984959382366678482890642208127987072925117881513856877342803438303472882647335424462675392066276176300028017728878126381329257047317273523410789336704135776262968407144389617445909026865740247061205492906221608950249155095890477534657914590589866508338399299720015140845894515059998446547273386043014072764959461767608629026217602681448937726893243774620742065620030983602853491249421857416478368015501271198982367377636471132983533895796205893790727319964851992067564911377084222426247612255227930465851815336762799347991877846974476188169023282655088793076758953905707506335396191603426277956744445327754417609039322467184008491743137585571931721735734781138899558679331953296643357478674806554258509656869189074661095033694599867884361565716862745824098637895155198207711877320870411129001938069477113332577937342947284789797304798066053242490396366980815601224194098683574775520555176737666046666862709031930787544375732437483112999842580077450751686382741664692326460554841357535395788624422729294548772832414465578192669334615371208678788191487251193883596247737959637424112007683451944341338379579714495174656896921607319979221017330582379673832824557033592800665440734628039232198623731413117392672606035295534035903146335006192302675249174111475305403197554636958740007767359326971951877415306593598707518789241238259785775632751717175925995281680501847011346839075132672023147929320330862883706234897766767115944775608528982822507425794347377348976302212656991785369244401757457081647831072031882119443113983658701921854682527675079932540733797505378257308902303885099416278845833775525811159235009400995319221354208012178774389838217598256778129877969881513200070627930644481925888693158062889916058673705529715312370347230890211593344620429930793816157278005263310108420769284142000019381151450357719823025212117506456381569372030684287759401856479326421593150038609404582608291020471768623576440123237166523913776354136699831382873874090986040277526800735385304164968409907584803837462368852648796179017066827290300516928990858042299499542836006792978573756748713547785716127185105316735535460335515803336571195497936636526311502539743009090655137918058068976973385126771950869001044088470684451405148287742729626857615957149631452543919083716707866275758810447599650087635972334518732799188173451924157425374445646003167562617483189657504279111238582993791036759980429700231540110152347006577267161551771092666555829506192995146072322454583184894308210404858248565297874948456786065385505331649746841179989205555601200850871153224255763848562179824246911983104351081432567911601669376849049923081331237293578924680823364130242656022183745520789691592552075067647827441738222522966641239074851592566736802179969186217354181818265308843965408755605193040572610182906694465248098808796634220536588926390986744691131324227213586685111517645862913123282942738680090595151767089377505375039528228033074296540579915437601027581835984375484643533614458202339915130495408636043864638873879315911182940081626484645907763334908564998728126120375494131347294589077598287129584765479916934337612101003801447774974008849380140331853020630662322469528054496488031040571125242115210649281002837377489268401952850151552168253361168962905938738528403930816195155431225849667131448561908323397976095540074145143442615471760072814663275402384146451798483894745082918280576458866822836067148223503974247941410196861329530768648209228974623029293986824958581376623745036570194062433743542187131977714059111200820332248254997352214722429148387497553200206306977519023945389382564386702827478915598423722668386812482958631105580205105827505715321215780601168044415408122147670846752997000555760701191867151190466399108260624291328148265747869765307164989709642942027018834861696704368429823249993132607351410236457823253934511460862379556437278505718147401501602751975137382672422461227998385203980259937621320547381107474572155465681217823641549643758089562436131303382259475203677641397334825221050345798535601781318008873015580104445733177471545670121518319255893707918833726230633250790805745457260547620049495595754781466624256837006277072698092356330586662381396927833429134172735239588037181846937407797550335344203616447225716375092727528475689739101760052260742643052272535789528841906683418666543330657110198753952736840399326849447161975907798403377216899997109349689051300139434592538768534188509707648165532973620613845227106993364221615548693147788845476456210361550760621190030863481436731833202630053377352649380270380199895371078855989802695163342332120489100479789192809096745589572231418715656659572618365221912404974377857171846930530593103671530403867011406311786129306054613457594012026771278598486905138441145807677449330176396939614489682087493549031570893657257743403256552484254263707700839606124533592187451962514832882994598894240244488655960991543451902362518891934696526627691921419444966882058432871892000397073595247394569940411861533832968080898786663459985324408637309933406878917368883000686674703848628374214094946398203062561584889146276576205646315740870349463532218164047299112803823112288654579156317879078241202699256150185154261481267563221017364253032497854353051426447232933453257460279492980147705350870151205547399315240450633085497301363039786913850307067645424511564418632219406047327310353063235085744104491150118877674411803543693482463817125586527692964300577148720561909761583756960161536867042207188120059342482141854249117635957364987249838485411654590665082288007408445424491722425407351206463124197894161270074195828349212779613043781941620912284808382859341456926892497403110504161574898421102349519083259296923706387940547681326351563641755510119045556073791912308231392193649445304793385088640757763792602610650106447196186254501110339874386180822212003791459636778212390142810489037525142084860214301113786441260058137456563433289265365823829219698742173855729225154412058411206530321271062704495509468905317077175415249147127274272964294002773837078997422278650914453741660352029513639628605942936759756325687041006308205525365652067115374648195498837768922358264113589758297625215833068592026478495654305520086253373264188476165675360321165641659820263459659334661197001864656322656992262056056986208550413998824464837394495411082117034357336172696367119076129222429190507587101330989670788263497765669861021317244507317058565973347370059836502595234448763380510421901877514121438432002490929412622030981351924088940418049202001066611985827679662710438263365047268925423744537419913534608440489256422696274979745821921433158217745535664994110011606474524496761031623860103455940749259793951613899961645554743309958603394800570910522456172694132041458996061897969457556299774087132001999052926322878686809921615996723456545156592632024837031187372263789962445396300218251140866856100625666078801954579306972925770702584726381134680243624320658760404403583006824057208066829566258230738601954944836251071017391687899981497959438193582650240415332281652124706842896019133855435777759978119285159578736373847021464378060981892072778281787386121006578904431024319481972583179043132454964454965176499159566949627255612221384236586381685168565376173675264146058853749179361781650587689841332239888306854008572573236120814416489660315186296526003028897875122806384010824748120062302710684201034134106635103292450333195234479835512020002570666628516416201191330655686721656326975788422095269461471887004122929616787859528790664482312958320170975120325338369516306301178506751619872224345459007346139240521406597860162224539075274196151237698728821169560010223825198963163780026769237088652396019494729144949828629630823648930018572961398861692354472005072477569402860659576240823700777550095778734959635195283704363121688848362811839271449171185539825242435466587469500751212927768154677087843192197498646285719305118269601593350412300249630419259498121808024273420318760537528748204870235011901974770139178387700775511831927702024589692753081574977435184249339009723771730167768790913956448371621394532167777720610773679062897364787509408954627894504377564794908746761454880431106506237734030385231618989110388887973839521648298191205828779339393147027275520920709925452892829398345862171914822633149754763842907958532865228282518211989159164545974770908840012900352749381596002642554577428706498434030519879439254815315760405964862320594196339051724717538313939007525934751624231538013946071268231252949253849006578743750879835631815690927959779250750840233717287875200973227790573931353261406543887980432629272369735689495892732859263414854328139899865992868479684787583764394974742848780509216777064134538553230676069967706506351047131674149985954652075894533967988011329467200015273535489901354119809891870367031497520370866095040350365419034442771582980326749978089037096638957007749924579005832039398030228382172091049705155688397496561757547370858290378444348108927295493228328548958640399634647115498665569509392500633181474239286030201601679057392303157556272765742397614080328235145782012826800819898628044492462467244417635266733972795698638783127313415588581202573410063022172843243347227930132630642033632387870024770782651689945173320643878124481306502014636080840668274662088776578850312016075103507228915370279849731856444422398274309325179354314959698415136977117595476943171488852705177168116571787600334426993358311405486806028332256487587376473248674255438104791684580969337517764166635379037073898718269482572450805327812105168750372264306542321641005947536007505063877211415671064372653288708514938908696521433193089058958289568358981638301262235099835807553629226369569077394059834404499065381220059027766070962482963222592839186257572217613943578702806532090759220552904579101920672976471698345974019672686553533044258209764844614496554930058807709445724193428472164192572343693962043048015443741846275424072799453885873920554600029353988542426020586526905813871696653941551757778627451039072070195714422894123403774055618159108585969896420367920596215866457871170699373530107334602407677400509198777318839511257147031803958344088818911779980589356727619984467175280010954244756069809457579540573275277124690556250616138769774609233344458780443138088042416546721482471290793140844606934414414297189139631864203467795848418434284550018733261230650493691810129110923921796713706115589278203939985902178884613709994656246278479258392297363093085510357093449316994273703637062264222868517383709596379799853030360148089658629319140510869241345617335766973188828378477793410490107208828071230778257856769430527315788191916519512615294421948086079255439054740218866342349399890858224177778920957128145315515430820756249100921502666821542611927355680318585466116925387688023706069097159630050884005523988216160508322643010318161457525856658110355525049146339305917017114657256038329988768187026449985146396967244409892037168726926082888487795149057526977428416927549116714111055586889865778312051136791296707852230163976173528615785364811710533151780301449023006672081258415302769011803518407508400192242711234104859359748080135180728300479603705158299757562221954914593630872769104674158746694097876105000117855993529399600147796409347243173634272255485381182904490580732674867678170878562787494161952575601461906413257588573296101217100825255052358043039065126685171841979886504175595447262814039420173766334939159421523878397117139738650535330267741685134575341380063896314257656216729090847069701660786509822596562601239526197406956084373750297953263546459145496488175122947916146600618493954015495153459878747233794189539980356032978477018207835714881774641314803943258502897653627132541337767607648590012620169267997379483625906075294644967283659632465711851104535602624689151977962320523929160070472519986529231267838036747637417490708612784279500814853480991021377324525846844096626089193940575629213666372841110659045406247735379477313543456921850957808779069683063712227345888856195325798503352805838735225504996404279907142876802496563147050866727064895197616331665085151986863154436850419955196429127033367973641185474768787476570252161036829464009835478104852980470720179419412613576537368711891860653492128647100566027269885367224038786849758294259410545473186335607729766361784539706426709038079146593054234031503935284258035227337390482152556053251796979066797449162089243650313590700904253875321972459366559160230640606090241553538680833269730784614392533942257448661928286727956651979368797064706615078419370698834185024495028823267074783891807830136885435270253123701128508461017758520276178616372019326778032479667099740116293144894320736783640293867072103085422828757984072136692205274000853236623044106866402036282515847047845935911430350703117160458483065634063101031657364337803921678099313127630606739762697438379638424235984967487881381503557066159908171330696937685281710421586315340457571095119137154282614725113015443131108432660429533960930028019836245072518479461555842332718106077342910146134465804421271123188750020491083117468758630657814813347972582465331485827239938803756942042145383960819106830616142292113228956324690876391417125689360621393081615088526890195582474376934543627909703615621709115824582684915630837209737935492991452471825723841757197000079140734105456456433827421516089090087734672692782064933444571644393115090551105377179750369494737085967936525338068399276205043659852974549879596180672597978599181194831054263184297963079593301716813194120560175068215570300279924397621384358809000685753711255222371620568676361099272763018204278166551488200101469755884425929178064504945709588119558941970556749230459199112356996941360703247659419243198508005696202899581478408135926081448248063107919191049338370391598624976839065837624729478735323732022416748374187220533996893368197785279921903580830160286670576417691324720115655560942473369919386428924042089890849424102850869748953604109623086998663066371024156900282878166579080836075152186028729301426069851553929427695069096294376388126686922655330006877412109271362929334620543548009101646055764190969376727972414545575185560023018701284001126719552195675921818364221652730063955778771440496074685008535026001349239534267527450852051978801498475774600742454404192552722442618853027838535247353290121865569452117245788490293206199378869615166712841735688101474907951946371852618162759763141447531933992893080585137971279616676382114097564691735237753174856841282195464023783129982720771550431264549924859228686462836592779265148557767389655832523429699211063727903519035234832259585966018821011718324317287932712138901831181521829180917290129838945861735699042391613635502334067366908455530981800189710518842578865878852300679176355353895017755264207654925537017564806373549327927182475639611098160850073808532168854874056641691309200718568699844528373840921217665485805389703796459255338398714833481168555855291084318499931744946849158222151597681330838220131014555344340832053199964096925845914931782815085223421432414837853519863020918635967947818083077608873825274700288730074148990731688116750874684651504186956026102987270778509975740023365468355380003821082727306803965342138589918563027871997758011705065388016192013009721136562983030812976803725161892197669013195053119006593976283293941351526120275720423508006006506651275133438283853824639698428931366167391894891626205785504444612848200156203709344875054379603153490149622683734472034369996189764018485086366903300324954176880361345649379069199622414595155644865222942681262061232537757592933455893773959268760271785168848804432952362292397137887609817790313560980741384034042163354760201768442369274048199603534946862162057861102655004823141357394696136822846772011207573748514434144940425255306456152181673366661441092683985903238957278835957383380995561423921343340098624367674849461940129273725409366918545156988893100118675723796384821209779243530200204242292330078904563988905154389349780743551891302780629157569258005847908119565719583663508848339981313726968822659987823718568677730283504339946819928439657562064794644555804389473520444102304423252639002518927175304732446224295428415737836571601230490255019003106687040407440120462144169348205416241037446942844478526892521725681248507485002019749354637963471537738649889615879061885192377036029307582944895413210896427591313581617122570086418950349054696346159779564153918894692073415296956765074013904345553946340706563566299213566685492431184321883520526068757221846956314876809021791528424198123162037421044113228561292035122170624517870114326867821853316442368727769982211074149874431319413062410356628166340365589861565658655868014343741237297682829179799229610152324565188658084553015819434998957919657939748556432345736371345482275586067163047402450584267629321937253810749140716018957881287186010393126038382222581794783341574796951835291593339577353685488773739393830581127020979324483998248793326601197293870410031527365879240651919405565615562003001775208506548425823407204174186323472574093331284372102983936478871383625079068731586700528717274226761513395980611038595471578702958060655699299258032452159756956431183026370889474111516539622462878901353848280987541433722232259221852011790959648849224429363391338951206598228058085558522550051673877348543880801102749704184600478273570498219320620545307164180355148854321089831836258689216478363298639972599888594353668285986386522035319863208530130394077189712610723757731472177872494524216190633669850557472332983391521588662857748933698160649897573298181615969386929105204309479598568708734262771358781704864305722641820928545075150074963721849969141138331238074349934264092661432157742764342261251277304613501298603097336541770231566835909765626588367696739447274139941199778191468630100685913724293738236778245512465274097205471913366136242204266779554224100238813729470023550405727933600954329112662393678122315118568250701288840796878042025926686026409456883564997651411560860177511417538685882353527571223268730058118301099321031126172460088671752401338992184879781713766861622687896608500577288199297442161967490916156025359002784678773758190569080432837735392229273982928096772178871666649091658756147562694325034133607272556414668067227479374385077123447367190918032522260092704639817102228476588103341420116815767864107256899024957884653364945530459451042722940782795847953963228675079041260024025178306057407318080047144288529278186459026412368351289556541498157303760739375942528651610996528617980915785332829352976551161541938509596599264540392399202292247034825949006435134818484003069385419640672976839292041617094461651325324005580204134319864240891536530279791289651857340814140239387953117629444046996064201031482555067230677902341594513397665286378419410567129544909887033389059338984702147666576637982467472161278702369890886343820534165617701888633155813195799826653168503080554947505647975779369317852582509760584615700616335850610601683081483874943116980199046401984192354798447696726791830287710043005773453424052717813380139398894149746523318729158563770718113934002124702041038805358685481889572880185560702357933425261280539125968328304415628366726013473821167324747257406364474483135382914240873207785605909211131984305641401642885968057167167276063599764431680604477472195685743973011436189253853528690092744247347635620344809814796198202576443031028176800080184341486172911592611293751317895779195030734848394775900861914112258243505620125876583771281482539265001654819273545240281689466016162664839279902814085005249606755401764068954450144999760876346270795193557412632104989591907629715165824552324749588623865424781213781447883453536300672074138410460051729071004716764912389618456911114041318910792704354156120898201616370920976356236033049280835057558011391292144836195308426746270891943940342902698980190576516766621597494952842862752550970364599139537453488396627221625860924774737879947295970576484031769850891286502775405000085216145277096116897450308789561172226307800750766610517083767430866404856289026379408385022405990792858101536253451700938211147333078854348930820035460463866427533839079910839769799777286639017894871778307837470478542208536824668832307029525034202804145791296456993770428173731954287830364046735657453907522436066884560543858126240139809509330017013828910530774805886097816246031498061144426799305954393974958214561767594611351840319981942853199431138396399512629709637163891174047393776462027408267574592621482546061680398437591270866156081971204740751911050320000343395921875863419164788565955255923170926273460728316582742371750017430144648499983297861695215479302216610990603304454202440593365281538345383428377620255964701285897841862677951051616677439964588445792081861777349108370698918735924067227912224342330036430533970460037052590818976977687185700203109151507406646185179029835759478262020072740837623903306988216595760009708443415988873293621955902516954615033040094007821246975627839441916441079572369872508966299561055747577226745483436476147142540657226221720821798493876698250085208255633621959144889031608700054398461034714821579993980914219413196592633711303107420933823414519041117382871405735096813372984673543111327383078880893184651302686105171450338801244916689591366963615900272441776509681394128594419679004504172518716605882942312277667926003377195425195109872348265091115867997022904681457715699171105926961451560367244536861474242966627988634318653563593606553973276582365304036734669607867137126727422498294639853287712834768989448438279540036292020968619076411131266193449372728495082860747856251584514504918988956329865022410497291255651741465698887193152407898757411562374616049837979489163368530165714380078257056622069798691223477659441446703843401970275171208821788707064151576492673049913254187534999718071541565329890256027503332407470862268391200637555920957520843687412126077679430861218628941111558535164298130122028869253137650902101163872671177212346894340016293131525809126397349708871476141206405682901327988074925791320370715412501602003626490993135901075641583301370114827696446838174534745870137709000444058608172703425311029137337872409859462769996146797153616535755600875298384090607490930631860932449706730697730759769757325838094687081191875712727625129062181682213864627586745960884658766720124933800554979524143275274133235279753109933144718059878488292288161321260069540193430735120885220095983764396116707755200434992266758461167525139145418564586106740660962783717230769398375933798339906898636043511473638491923976508291955774683350344798992759655444674310214851504304798462139017682039438333971027100450248889104466259513486688837195118052661783604710740527431726953215335022697854946268406074580397564021665503620941089243072213057510789736244766341001881968185883760575926297055699223537111257189266819496454449166200398675402878401436431138716172531266036217631487616940310866416388946877292533137632858594457591128013051806701386801005287513513568269366232029597379981614796880843453163092806950809311220357650548378620652800989501549471849180415955434894128320878371756993030207177906343005961458344726939678937423480775742557041971822818143637710755106662052095346066727254041553405117098405766187207945137139683396497573975614187662746736656126493697037356488893839347155045778536491515015490043198817297221932872054926490514205194865793923807442625509533077371670455184679684677934877337703416708619880639592036374488327050435928992728734634698278620258638596447792610588747634329224840738734780808154739770525176358380796397239662709173991566728757514112811630987562817902265895936048154761403800631367573805019786181203228990015276816111483983121923589923807607664156833087345813629325372834734615748204176565232187548092550313476446125833321445133286955363470268265614855915861792116284429850897058629447956186109072119767342626230279634225686756576332810335271921348205705286474515697000681582369486648480473912347097316745728619032466840272777579149524014842560651612930855505271329141807843080916584354637895372046975144066982079750804645966841602750899307028950329151778488032069224942361486831294892811335792553905916201335436156118537570788432857231351756911427667297633407140969761060921151204770608862559501543225078721471256072661575773723373827006000015207975323828224311246094828000415043405483636642794550360716316546343220082404042521668635799829639200313179500917022468988513746265885583028922239637793345189870184520853123224499050414806018861722417285561797604457431150931796918495671376947111431352515312085649959955924105329035388426999570389227772770335709369214464079048721879286212772958545522305358510385426609136753007805420528026490153768146324549002192057526131035701111457633926639806356275882243363680856823096506823441062064221674781459416524363739531344536207156087929263416726085533245715679092822429769691234872430990668107094763300065148938821363036831121067819754356804020825290321408450979559794931701075840054075376341275766037828273879193222522616605240600695525622171663465480010704388641314265973057906789641350851998443324011260361792792318068251750721282635541941135244037014778625336376619784143316755065522855363525238544532816163492804488063892383458515719152806436443069094808386376281728519704507196146297852084857794680892384810562601191455402146959631663551931554969560069864067446690990915989235342796254469528594175971603256455670446956406118763584323635305123750924874779823403923318622697858404501666986093198543464420918850040166234357551396727713731847016042002035322370800803472649506599271344494121693338818749303040732467233947215450177563006514601009327834327584854199093841076611859806515176844959402850903476213016225273295384997793831620988345634256893546375812262126592601531995626710892341682925979054821749805305070338142025290597305045538023844979571207970965157152763732293985510254202590804813483062569884745260696007995793242992181315685105054553693098866728599241593726508995783378784036108834094657339154822183038286555104856128392709519250642733813910688085879214134943301527003256466703358017559981120036273649210499576109131819447924634903777314389070098063378652990261578640887772277811214129985259572474916557841706006458950826416597316860500346874810690042804046106890294513645633683825138959965367738174906880125458334012659577165077359075502134693854674395405868774184128695608605946807247574417150997862273709543113283633275658586457757995295625793126249399558063597661456374931559613425927680863715133081314996530073772301289120755171423715960301935933175483846071540620933409729393303611242750087354633452668752262078780173877957131487568825123530349409415098483819502285487453167246177710023745607116657617505250553771844019682390143204787668684919466639711243036508269300100876699389364739396924421740599100971469234370509095899724818152469529419062135463381635055736866067332226932080589460090566291360624503821571472388452578698166476712446355297114770646477644827270254743896658904372901223234759193934488262714889612431905584756685983460028606911739598980928768890026636809942710839779191079604127234400654882946486752269338633829642506989882273936872405334996516483971554010377555811157147040311348825043891039151404403840174687762352599969791157623428707376722124132214114967554046665074440905583296500308684620218787085797312883410708624310427412557044686768573538542750348368013640937117265145330664908410993544685797181720538417047662455308867234279094282643572654345316807676013949638013538651226978937373899328314987040137054733226234553993491133395793681518286151782107336825024934498655681635355717366946983607299245330312148770743567919325971821724707570113970002179680191387446127439407950871251523977414961643609186479373531717628333446130900415613786311141926734008571613246083609066780115556157140991822328068563530673342326988767904117353820208970886912755688082075084149981983130386419657808924838025833068894642333479772161166953341157801772813499344087842944566538573932234821467090654178834599022060508650325687832996334306005990169334603150196131722416608863022443772135431168901488028297708396211327854801983106629407172780962712337536070959963569734969445696874038702974618229340369191440626676533466358140525352366397182915586032132895614291242074347826668655756754971454007788996935228867110127390820238315544330743970768043009575966852199118362604867770635290729663953188178649310390200093809690451365103909258019865526504883875328610977720071425447204925300554057501720318728343618940659269360771916574992515104327613284877883518274670031319813614179149094031895726985915141265265475284063621843923122774609502624572796133831885785529766207818490138297210954353577825285327862623293446068998759055981699484548862406276413590261807019126711721852945667674272369047012399982896442229032007055548208324017253721486007342995055759880346177044921088627417328262266535240895754445317196571014687829007324387289668302454473103044335874032725224948151592075115808236719483858467514514646864235155537485679332168284918598954933866559044518198328413981229964237385447659104337649447950311315343576760247467936070819518286819967466874740693125839112457802125824119932210140247802771868354169593752470864616683902918994988377286386968868087558452264350803045574418193351600792280214497691676135273786440611393034961084402066492134411961018334753107488263526906155933163087311841695236872059883232729708258000303113686511519912096277086529158330495199674178448777009427422236502699845357951879947709799877704718289314825637162796524412665302998074139006471910297902138584134909187082855881523061509697459948342939972689672615335688556477612773802195543560600747544414999472535444854177632117257585987738574792595154350510138125856185549474473855692765871281247038813587314403652230186298957181897021073117023838746534947078579462806580130074072009094561473039369975830922202129792579923155960625887196216546893849036864998628512066842294016577792264732012454063793300978853422094466936073974226487777450259392231217832927931992628559017278590568651350368847164338813164520462166762084396145625345560059350424584521785936587822218967611964512767758011874514761176846575888593203540200406354498663203503003456355906672352203736998848639002097688939994420620558307591306532102605492286339383225806713280548551412061639940055390317584551161945722508185709887679171913158711255399464143909054098487049132032803440918116615005069191829330675880969782724278089438361646460379054250270891583942322092193223381308207114405621269319660911223270749389947227851214552654010035580227530211471667663473566224069398500336957070341139405971688699256569248935325835677770007146522345540157239126817269775495658369038331896406737277743781333521020556093318195312337686410918950242643254479698291864412108859736207200107093424498366356551366897983828346493072745517514587791700046011584600535130164501067300405189022755590485210861890588415386852441369511935608591809059441807453735424789327122003874861625848072614300647277910155100026068441572411113524932924657556824914756994199367072374115800343836938161532604966819559238685800527363915867493020987526322203643068338732004874528651512628121596377156966234092294618320659692678692078173884782851612755659069877163256111027490906828715416772282119331321407007107096642540330547404088187376178841931660006936553119679454260870291340940961157133507438655009897578870430121150562327727348749903081475290323283905087935004051460205853171616284626532278724455308239281182069409861585420406458512819744026649003126892072722268711819542120956795465336082989839033607060264685713705351019771537473190790628568986663557517882084175307809620992123461358634311303414434939855725525718367448605217056898258970762808241429017153881211125885614666258130670624778608782857904020263530703005565383598010312100645222427852343884974779245724622528895690071226041227579856631510603817515536958582821292294283251813320025954808659702824374892019702840227446790068744424110463692934762717513589900001590574799066219460762784826248524508064531379035600721533606793037209440630273157241950431201307498763277298117993778356631836956863947167084402520327571508625949153969731856688604609035324921189658880397853197051722522921504025416691553006998836771067498641696356834122759500434183846953382657212880102242291122191436071052862542065264910878314848810017051694892140651815910848058876229965921068709467710609311186643515407979693145165214215569712106662387477841084090622734474271823941723489670036197187315544180767406736454927699714178073222347754244364701946361754747849068118199200781328413224572361528421473217342549805940387151751070257596596658439153070353513698501379378971862514665290080794462925322774332391724925677954901170643105595153902206113387420716108130607288537453061307630210082121994496179876837146982261588227233030216252540389119970884908652214554208641563341940482587534463682053492897956247299927125104488291504363600385956174698384562099586176443094769068714010050799827737693494117121262746881771742970065550511947040274394894892569640707516072992667590722174019933381289610235522022760328808975163629662439297733199121899573985801835738153828377715193293553301246496958428761584375148829606130705476649922406078264080323260745265876652486600234578422803723196062566343904475389780613815983890877444610797812221004494478482576334522325489696887619200115903260884657379548995054017449593172310813629041320031186510409212423572610616118027999292535633910598390048925130150667066290933637436942544846659734690978098900913071435550867505925520401706136690753247050017373264734995981733994190673101076711038487932021103559443260234501428247380976062390320156959022959588827974870530595453872002368683405980692097555090449363338974247288326135908948579233675354331906955601604554267764105697798218160927461160397328067761421069243800077404616378304480346879830797945630165038005028664009753686967004829748601187746552676622089069004874322740561404783323577390853523180665305514434777692979461954123761315967570859191909799671355021254599096846236811208204562173732784837412833638817657534092264605954264525145044986761244131676629169694276257502731307560363440466504178509149395006885046009004841899944440639737959971611514022679607752239164796277267660761766421189254326039797086873684498167614010004428466138991484307323212690773585018316260116915892586604631184098786718667272467151736062552777263617538325628282272685933060663290915126268397615945155172893464931530461648079409201925303947563960501848309006814527918941918894945860682930093088750075514039077349165852265473873393067304574194448484121890788602333927658702823819250425180923759398165373021017804800879174685427250240747356753246090986639273371088829239224157844987535130153260254937515803795904251278699210242021096395596193798661148257034496700630206786308206571850205253682798410336569151550999772853075245603882547271390044305611249047226502475982650896597329291215223162928142034288099851679948039860573606630599264381547422542852007125983770876452427951349543715209236839140846493239560802904858861346613576720830460025014051534494237656263941300071061971318446149771350339154204842514579995841295923749234910897940439840758152994018435504980944988890269933872811692981400935992639890264469734268362990019586635678824474399687347212431453830122273757401114775181628122993616322561575796805178162085101228461608278265074871753057635810844365683465401472343440241300929927296496784019950800730904367916989335709865129209749329811944839480398307725221226952700414305607065099063408891990222553837253803152119065218260523928678389080005937643099175922159594863110850051444816474098611452168597606834398975587771881093943172265103873295479178871798975197708194049706358785193954068998928693882238945859488137817920621763393409573074452824581680635411811354207292718197605093267700272375157255266921702198579005541811744472888804347576202876614717706853742651569463655902444086764598739340412653384278668266945232827495419531677571522861803915684743213975351178107531074244960800327956885687129773693026468794183894343545040757601111222256289772941635147436413770858353454055569512085289971690350149433714655036964941154884640049183568022185311398964850754013126353473643246084858046465268958990952074972723068468643393622721281418577948617061381848340310123091194010322374814591412126225124269342786661718668620244218309152034063699767216048182536182684955824401789312759499207190367764386754843944003104474850821965036473604123450514151591668456322936093440346799605129228890886473859565243644264499575642117077887877955698011598469019482363045497276171547217458751074128940265951106750879729375753506749396968615723314272776234041071615549089892903617497004484663919308492226599266225851448407351347571681689273233779632324965320822964408086936661939351617414900148159957876753523824663928856730708281846322768765610799274907318771170211754103114664448969356866100522686446779783862539993721655733125996020897537694915716898055694875786130596180804127552229465648601221715204196151629755912703196251203103504837974670347608781504153833710564886969305331548400695014717616530533830289412390308592667199703635540402306839154268563702302814943044437962744588653504840075846205781774832728229403452928179182272430287962319762534415888092804500211325650496935468071569462279784610042917547341885202114606495611832261555791205001213723765560350059040403271144300169163482091130629597550456616126239663757012267724750975563046247079402827862497912656074375561844150844841268963222121830268426924394523117293945685511931184791543838575795755884746369515955777209876559199222885557519815491128025566480421716364909481538606418171823576970411569635935730013983299489279318455929354137264338236723351461670455606531503415106720167690601175204812264399698377728316522574306813419563082543280547669605930650865035088238400830968967338253266319575920795451464514642423629828130935268810414045943377593206008813967057365546554016375030600919968921213072362856156649013960619175069480562000276369959457811977836358104754844200839332263074184231613307110337183713805778949568741418629466018723800600124672749544897614076033915483794979009390672317102698413481155407896234654611138982938765672346432077325262312200454660774599451820959980815710235965903163566970681537169078046444479803058623741517913808577728034492708535510337984993380460389895268840956621049611523903624199177759643481205326079698138743956453918592677839496044311533690816613170005975295896602702703390951824666838450372270131142761482434881415308706525473963893647354558484796924347022308765613388098769954258902439449001140768364326022678976246193902080116740577893354264351690445910351235365150787876514569081149019435399281055135491500788498082276143410109589423995001651707545620865579156266980885203096029109568541413261464492465205693699619123852722157062319031808183281481288221425041296062228482547043802161397286988123771224496822975839606105870336340884601745673331003757076318309773100915266945094148543209766316838950138623277958440035977251531827257281149842393890543524825698639047242322970861949054185491363802484252479369689877334947950994295113041467111043628958028090724770308403955244564578806578114647239971844135737466642572210705837236757160062685520690354360990261390922315587551853015932686638087495054067634340451803170546804660015544052792485960976495232807839137259890198497735643467363658994548046320730303715435098347903994931885895331141835669591696719165121161904803167276277405570922958155906401914479869392529564469399260299936352623005095840649286478263022332678214674957714161792658428645214261856273474964319269543982225094933229807458791676681910289733657242345404810772600698871389438409167944176703568638763104957327130862540743676934240903509774594525166299795028083656596554092758145291530889920055175348869836655275440148799043222734235264485913507298929062171830767936685705695098503929051291891805804505500561936297621473538040284408632761996457017062927372683033107719561031432859476447338179030076857097527516813389633924944211711109364056348342035078514679050063815485776637970409784497049263549324565254109367981915591916036950381255764343547863082120128153563851555442416260892670691869248907272960929153769020170649769518093143689754406434796400677940741341466937494232490762053171123848740317906050469324645661357821369706590589134563876950975931892047092925524597883627296001498581439941569910506556048904033467569250158559171057430454307630625793887657502481785946314201659426604684954073259801206674160484129562996306686436595984834422163967381562568067272146025337481535597923344801622269097566784271302166980692302575820777960859696955964839850121665820379214257188141498864442664413709069154165570800274650836826085970197841661944655993709464390308993190591667931931150943248515836084579735021251440043967135923936741057492818394212471700868670969868140270847762631069797743262066682919426513289145971449070840253639887262048835090501463874415436890432100168397635607306796882292323941799574368811410179668280567610955421100488142749760985588506455790716035058859138959536227893084302246153971500510323474228336390954263478243070079760329754898598136882976207171220854900806617681658341598722728497494955308533470743780018390748270722261257874460792962593191922844271868472346747315738975894446747748475588061296740859481531627937268762176058866784513051070445657357175145174000937188268729838396842599190298276718500931055616810138496803923990227145597830812377395535433276828082541033790404234858641887683179101685484171500189281776052400184351148591986531720529692776791587818300867602826879929343779485432102407643734313827336750597746999300595213823911295017566420495218976690490482279116999141929524295212241253944597625420230934607415931739474768238745767787768803982115101438573088588125118839459333310751900585295489843651467555460527218989107485458062292611042497998099719113574200201591133844002864611716621353985209902629664154765802497993671682762827016521117744581241331509899288723533421135416067860344938596443003815524340617681379683044474174148002523664066023699182186034258689760701910955985948702272805449892060067991147896806276530687644864614828138322427821179916219402065362300160297908699245686170884606496602089809577681368931658439361023833394953731529117043260753745588001198975694670603339645322466333075361376026731255043983795678531098020629814125391004521343555758329963675960982279256940271137285482095786463362088654746381272262231935547307516597868168112109278675820685020251324732659322864814717861032553674026009453529736030171194100942993315930109587411425274827497891556171829935004504566566936764191848379351486801465653592645945022778978965229764729836097085694923916075246711097971602536379501272989861849813320466305645322483138971460049304129884330936634696951323905420034214126120863867247628029718159348976671526646714959226808134801084209509871515685118585840352723343281507178760587045658937252755285607277930919475662220048246019612620079717281908758678208148317822930086095166593096360990760146372198478606545092043700448670146264235890950240710930488963372019695951525870487494558364095886939383226074366517136508199216222028616904322223459259347136247456730358553917464451446341107541890382109093622608506559062541904874021281313619765946988923661647338167816629396418481708648557975510745487710527907384631727368265553963514489185789148516111903934592575191315920220070051446579648870358400019246159772118737102071135275129507914316400386567694293685263861362053836740668238579070389161261889628820323840603636888131557886559250720920230873291763744128834388785464455876650251320790375359348544106558948364079306496032334007511207687047035879977207777595766076196889135802403877435047158542627830734297463398701064007846340502315856717319065984427801344379188010607924827913027959316834927034785609827904098927577176606047133025450884960036648636966786009805461106229414728286001920455101705145494570053438471913135935579731673497531003549562353301155846369253790169161337049832152348168185555627128933232996961733315728005990681416353470883379265522944091805024891210568922602907428785106796296365790643036230128831081505022405749591062779032057644533928721729540444858519907970989829322483523600119877048847553529153370041128538337527855464445167770151195914566309818713485996073775092990571254390700641551398847658376151193428329841896220397348037266157325169810955708667200084875709188504303261039916442513781873272784557885918915878557347666614386152006965639876215734444233493380045575963141224960734443839118836282195914731624396151811918082576779417209748696776383881491667267921187379621631179079789856201890325770957540626021090150592811543452363865417125386129295549345922257409259368141672871024114058505008639604222538181128596418322876540519609221472418547854164690885716916374758543853638826933243394094955463189852692202084497635982781042718831539685539778296275523658491985693212975165401803237677333118470131874135218906805457917754357787773013575299628214072972429523557186900594114617802929571069754954723104321413810437641668001317176695274867548080528290195127754872674526952469046245531410407890921727716320461821994197276663605240106972736848501479157894983549848306942722970838258914436400013479630035132054390934362028871811546901179885973174345783896982600504349920225572020881120747443968610112086115975389402485865558311232890726466700827460268805401577537181781405208463162643909938465426046523586063249764703150115127260326108238449622820729390992645863072852714430308111728914856798449961598924467362116157330458592253313946311466229829480545675973801812018000904379524150151938033390041278840301826082500676976692899285715416896488809482927908391397982699858409307017957142241378373478046357928162002365142115489072488958153969875600526013127737714626956569331212217714423519548053067053981530270857407236575764209171066597301722516750268793616027651071910056489280611503183175888277539411535218323816465078460323807168598152414625091507823565121563056258143511408756684349039580529220148096969335220796542458580738871319186280150897925902526316966620362093250157052500484458534707580397950711857579372741942847003075133912547010256146981261858685263051001809275156935707453184364261913650373163909671018827881824439266089902844342684141140360781597938758862996608962888657810259894668742641226389433141951429186110085869010462099719913582114458923369795625852791460698610062329971668464113824562800452266887848729790330348033463820399207570337481758149821493150642903184656771707021838353591443632832805028401384783267549920260540398871058663324244359582460462324300458168776268554328848560623890640423681785099704606715528425340493835595819030850497364353474227978689418098508867981476593858173052593794314969296540131136138075609635880657263048091806064890681720661682104223038746093352806971545835209555245490083879393520752457679096689310955804212272362438498196719353646127053026332889562656667864230741012030024798100604624406832466536747180262082540329896380513316529765901038622723155937406309308004529403079164340171861384612035217241035822180391420749980465829988803098227930329210084612275271250357458133013635374964262903669773764053660123078685080492713821683670170533540059101923400825231774085545866104794578323577763754758901598133129219460887243157676604689651692293486660145053332996323646677284865467156679199507127032337581358933809002006705086854292905808754461046180820267467031172233444282637242464072115438264351179866899520219120712059972507144241274592545737682339735474527900069103078781013212948194983389886916988906915082456512842308585810903205663079450810235642804632557313317843996185971348812554826554890899959523190931606201338597957368016911797432951531965962003218794973596901868193004338298222373505142603636967395470546967384359412106851301175213319299259277308045043047513314448073183838461121033031140376281163840820169785678994980911907885543296331824536231676279289246175626276671198842986427301830037549197106960211659957840969638360217862675396878170689412899262953342234225180582806605520868516184198890008921564868359786534510969644484704954233388423854595483605654775539169983436019886804008677936664147061193340266212923849001016898155287030530744819496067113585477415194385591855294466029711635433184346001042056793752673522707678980768559463916495107550639047534805933622559049657117653751837154333371576717808101145814299930100514209136890480945800427165350729885164689179335176058436003163510190709020622989095318124246959541468467869555408275466942813000989019431276942558274011544135939318060503392231445868088839328272487776735885966627058883243177830895790728243014763462504083245821935663612596257904384378764250300594408468865214167029069408088313001413021306578431587833355098760554049630241379350314287464280107903785100442325047846745300697052778180983208696951046324128706383167387250172083900616904608306414246609769755134841493231901056609058865971752813694835998001186810631239637236026383613034938935893520333000594131804249239718575055056071000408035835190048451280503067641111377873607949952022991945842407211395566236384381418382021923690733365867929446118545980471071463525730469512063618297257549269737006138735719669507878364243733980027781161827516689647658042704374195130731437105347730198967031721276832940135251205939650391010019291337928239873689630159771669726270300678666999554412556783606281728909780558937258954189992845164954646192160897291960493223950488577538991325190128845361600469234708596220239088461018322980635192582164205412033747324643349593378581124708851613090961845577427414965394480052194066228192382029025725267023308743814899569531012316974492782770026849721677501329637297552581393435539816174826041437682228402128693274021111951714286581406807005445529929750643715155433434716873147331227974822034223059269189477201461847343677556260872142428888461149495529404462799557756415009012408997252640484773740434035193364192620065803160904702384875539111574470753631798820775980955663654529646919848048717130271842568825246390323636836766211865871265324052106290878620336110521346564510287651015945431740592618353288416432419606826006954194275773363664784403055391922825642482453484088543285217731934979547336561014458378556174189816184060326395137917541474525441155369149555394332711147299213213208502911705151673733384957435601766553410849259416550610779289926056204524106407289744883853985311943491927831862378059640401722042635762877392585639807125996955441935481358337072728702946414593079916047636551226689681669393627607260632015546240125822890721628952726152723281866039836473540750526833984525012844694831917345338480244998752815896028048770870794554429287413100352316670219771196938457530949176402803580364841708838519059850090492406715138510213773059182665158762453796061351456761741393461276648282613125793124780934173029212617763617861384095918798116759204362249816258637877010435684633140044307970806759840190865243636757277384069206294366374909677860710289602796471389141273596013112308107192382053103398020603408152927254567216981463722840562133909380277041864266560536582499979534584908566003751554434601873752160377944692512020176195784790522240343979545369720124194132669929609390365292140720417313620851425155294396201242762106779391651720456968216367997174567484440681224943561482463869175193622341119210469696759555503848140969586074438564786166420829558265484135572852095848587696972960392959839971540707855936608789796795436788523569517839955617481909564424876621988952325886245287637559862953488387222112291654099168289684020759536765645893794972950696428690530531107121411296133836296126660578097671062679561124933684484287772690390654118060126846794093368153017956370375987425260441339097669420917848735182576289836979252462141908754979539347924001712275325840514637913868656756960311618630454354679094187077075739523341623365171040298552173127448917318632370465994091083126803527447313322111802051878437233433168897993900658372085707237604678358477209774463899043329117432538528389451279180906684321935637524573933447472910383428875077356982418675258943654548336287758936924746371261207712738947699258253548835730279319406206476995222397637182205069821539638810087460946414016479230156988605296307441402548612920738559155571273660624791237835664080036905752903106426761525157524493513006471517807466829463342804089630114626995341633126554565702532272961487009925185482000846865329461425419889524665782938328317470760555038663006595967723382457900839213270524119990898232609728985411788163318683056485803966367242626628886279271552527616727639973970115897568060379843298899354683543800094606431250022089199887908801917347595358867417832315340496030398959527365314629103386662762777293054574945841872601782297210506559464898131811462428518858976269526967549159187959395223196705466922799196204119480402928632277553840032983349763056230323459293884018606981524239270507802016087479683497296308032227973316849089292583583213604630097947432068116473801475667377498796956230075193596677032528508842651827937889981391718467703019932773045640531141594538010991984522813931934004194995954634199295190347238901023946655273041661182920831015201750225880370007414316242169936036486637535716507042015807256464680908902098933327394586778725914087617597091382318124424635018734553417726260088432926877037850938328070216275103128323106886712932667085495998470609673734544846247014595771175998652794973883617938270479904793489619230002814966210050500243526444532179593722968489452240966861041013717259465045977834590436619863967803028322985055611424324136339011466282380187014472379046598114335637348975931208752077640766459274091942141186450307274134039075630998344607667145858079568980355862994983514094832848989429892441468619520864350780730582455230566221665473400930917071317619149574677978873619154748637713850408792079251000964069383849116449315730089502142387581957508100622459775816265497985828406291757953782638873552450349049667442151331149248884175909791618435150023388151235626141623565093776742085397009843406189301451678432545721665671874558392045942413776014312896120316056596546620008214132445269710797370754322914485122400500435169742984551827650566534748874395843862182545877144737710138645627012546010455461673841432838870293278599300963982341119330057454181247436467689040615596403050981453502942634311843481696553029283999223142531059995623437681368201511722796539068329473098378497367705946978697864878724388571009573481336861994690064057278984780280952275557437023961448841154052399239453058257261221874588070678804204514836455530256798994636977041464451999507440321145833335096966102962293021165036217404715770284132695387349751361247466165941548667363512745243405980594816655402739684153921150366835583835111932189127527780808343001525500996840796526845181514001295233106311864339562530454627738811336279959401121740072179985937166559491125481296153690945708614598989706114641063077898407547904381688915087599230083679831314340554898505384111471352241767010506979771337465689116949046727666888686844094857335175894900872081665625071730278303154731717111672696143462597485649294431126951963474027220176474257682801203128082168243160047192224031187832954313111867589451743880471358185933711721941312966572094906544950231134528202693626788559031424673854352849084104915339025154545206737288715767907994798485507879510457608602657520654109868714754472025209315615114250176916137221352263802168962421905374106319591451940960367175108483811833756745874353517929512527729522932243944317945082418842291288908402861456896135913138099798094791824474293087097365234628151576409451413744323712174159467416836762387383019640686375013047728451348690164711484163245437333787410912956993086880425522561171963920751652085339203798723423147541481162063625786691563092520836290945002745501633920045651079702253320998738678648996568223412465184390138837312179331993015981810400509075051284078557663074637813525773054171863493740429561336220732953711557711334300132098679113813877575488860086802383081786763219549426919103495453785647152643526825052949940798493177260765677623163761723147623128447629573845260558375978072950710088469006702221835677097599862249332521197333561653916280268762219859163735278194848962901363907865417734479439868411106283879339154126469025300769709083925856473202582452984573467834233407182501402548687406734854576445420148037832218282903515297218842708144088592586824137152615026030868294563399738307907900445676659682767599560284995800408570488985618118339507002412446467441336879535934403178676817661442622776756807687990885825135626455643636284344219745067881588653621332425191840016509474469194425755154316829256709722947382524286479669702132375909751152690980122998755784402301129288618881721177144729392093340063563746863171109207057262410683117159459090569486010190710042538752731028610793918449559683156208976938993237793810612840196615706408537924966029122417071262133618652449204609903425933605962048809039009972919589245037898443384580267377218486297275168234717483749016235428816752670955380293300236228369950608379679716635766322557564292311999293235168715169411501852538989133947094141880228619890534102070003581169731414247525739875860665254550240501481114951582135480071912218442330814254318315827119573651824891263346934733599669690305882627410610415717447666826808467484483766638334666952267343158184344922850614718060660845759680243570949741342284390876375144503474776859464174448766164307556526544875217596477535213446576647901266861555065270842053277839903564830359461023046402548792723154536518795936587752726517470013466066849819398392532908522094947387766300565141845443069355094470800343039910931125430660874126421338933792263530527461255400503981380680017245725363716556785084594576298825101753584279717796401078738457044086423124001023210033784101243980081374729375241675006418818021357601695860287936361537311310715977074745302372358255197707723265269424167817319500267385715008706503895510617143374288112833006604444354249018044023164508440560614274797195935871974843988917099860344044674981857251628547648487599381296057229800875764403186095525700241718681850330806709411077140764298327653535787776212577527890187358052726038512539772612816698017222131297178302174566670766804045244000236780471210876198291124544015531342811410309963366918440222651993660410480322714411389497360425443341896364892230035455973829787565504495402125736558191709041618730762264750356972697933540630791377502959437663910994760115044940327992974549365393322787549825947860547839163609684209118798205979302811330521439407101027516336831925426017422250562385784768265847976467233320788684441658182839293528816200991781491836677840581402227390222028103702309554037573841324696735222486332952424817635427013440107426669343424691851368004120044860376296694393558692005371202531057858684186733480779790447829386479217367077020334325057919256471275497552937173943584879501669994399601187197341998285403793853826906544283885056760641396797438685828602201833141532875295792472849039178302801887483622957240608459586907696598296090741461567248998132771520883782735918968659251062987145007277796301327842743167733673668573339283718051995533614567883229648502330902510734287205456860163169776939349225966202003154270636041603248661932018185889026841067533323296735700551243168624102188689881202500554276324719069113889179191744859897602356165891735019157169736382480343148206675752297080036098958641373377297461096563805539636412468968724179646192199158467651183002396816671077500548372475106097281531365328528404261605260236514359160644459092788026666685193468303551136574936399429066041296687198615127580518076493720253022044914977077962715083153809142985412582092950188224057287473169077727846790246533650296908164485530074974905420252483070764411466494619060049014365969868905205884337715068741766182086840550598779177236160770816839531951624063786992871965851196290804453002350468026573824486153123263169880821590593204013371678876835005008674291774096199680925685461875235984711067095115988281739230269573701906870646017876545427611023765415502845227780132940963873828769670282573729021996329410040655922907390538760064472214789083097031089829694785034748848307582212094032037074506884011309109052328899604628299430637078518800198989556429751637331524851226373675828217716398423983812701498923457488671331044053333424806995650749547487868887639114320989340145441834393040618414165387496181026514790525337537409000855812486846252245241886691835048167074667680699273928837137336328703056099144210454028001111151121153514843906130515022176577349278268918066269865583484121951480363925147796759790429505155053554686406217000986710465812949773753084871123392622697815706493655518262088502240419658541099506941687542428783254852042048229542765801744271766352401070156185482920964469115233794992036810517924172803392536005433878832734979745104155896927273308270377114288276624989958047551187857556040988649682854552742833885670391376734078618781818876670591078632185899738492085507825738250212659372744912109072626858016778497225354107378097494018547063557460633097837684663561594796991742920614962352538868095877122282889520672682107611011746800653182662812869233004727620888182473113853794394590908473350238545187192547217376763275023625395107029575025462357469343926314561978954791298893888767621008765609012619460176641707564500699925624980850262298579397569300724647474009854312049214858078383876437449295054459248650509293315088348249091765259325133146686451353275872076648392538078995913611995373270389121493860316143751413231377470253309506355146555977028012251420198550876031930038802503733791870082827662383394712317347807324520067443565714059664251374621835781018010102576344438710979723796328027172378228948935781761375026023684593251499496547895402674548846359355133410559837175645248120333556896385117453917183027607690363176754332891618469171037861763331111648407263041348186390396741001272405542437834008539062609847778405939445091359209111790572095808593345493340545824663131509341989665037024372043930271216247525281281756404940195662150064350760640665874057207126598236144449736999294197000166637718868667237291473414678507688936308406095904064554004432024638362956640687512487671888266641079222535470336178321499236195168890456824816869400981968621734749107581688817623346460621260257628845030231341348799235193939962883001872135000106792931623720674742900850116536816692975573472166165945954170311327719702409575789913205310162099948796364336324745378114174707444449746929443461132185527492052975299152826865281450830992429170350739142972943250639479695443493747619577165725133480360245830029424804596398351122357277880630224956687742522495248501044292287400634839075101082132164910067993291326385392211407389597658303104492495555757037558970757319375362315347770864865854103236139898593339587089409779122162792970487869444095861898534318137748573382742828660537845756458803368270232073930038884942157446742861496215726162695337383395016928814278148601649882689421801299649574597094885263486371300997004482274342131997154259023763906605462504487245220099249388846135034784273021178938764454555392597813938260663888188520343293052551620991067811790981759720769203038495875651513180881102298663386077804832481110207567991449097743447440447278687573114542148051644584739318347418167355429893422228713764999637064815437721723876312321638502030514796913883285027556772262070541459567887842010347034373463319297964161488793232029224160056431181653268489570230856246037874029563746410802449679119628119509633200867473154836470462237141390361989013776348592832364738867015795434692854904533728450401628609374845132564072411097019755576209845790600445984323390902180341136077034797317458072161159573973929473965915484343320664789703220204030404762360568629189108657874676546426688168589312313107448259224471454394630712240907123106081991136003702542923530604927159872639606516630940091291534390178527608941966822482472328292051395101608799283864320260275365606921432546656545349418385453326028276687164734168147376019482111723275475277005927124926681833934866867038433347565673538262231803896482505051283069776328351463264121660182666121653097679266339282936494863255424711654038325617542638485335931524003246902584296237316355197030747176609282370077324284045614144087317648046818326499313034262054933056482695058805064366770223743822805378982868570193838204157280745212627945647871294634787852987233958480559328219869599106663312948581021396426744124284874424607075506755697935218276457573029628280039548254313750678523660987803623217426430638389904337910772344446884588573534842833195172792985751438183514797327308735079715234895573548004015149454669274720262912771440777768156253124261775600083019490868807661268832278038846218386264477376809796237271016987872249882581912930577087272421104582200207498268174115509493788684865129365504419221398493815667745025403251884021268555013276520181595157644000636540869642247315389390826378739190415294606058690105038308012432969839576819421637362958120111442510296515896746436909566213417967483209285985238486971129031405050489334270383457370732137700963478759764922282406893848442924574637301489001167238161625586357908884651789175651384643157741097801843205647340224332676268503204177801456775385312713939000017835667361181944283422233802449761545981247696551267623871785041844091466054323065311809407555221219916484240704957435826368159771434431171826566628772872502052875057901174191999412096232529896294254356901425750370386039869031913058432247755306876521948346515684266416917295849460124926934605339647158375442865605937506573059095798655349352163603211447995442944663822380453093774569065079708034230847494395735347589213673613142275370540253305056670000258110386256081819070614258690098524010126421011345848316012019028007908063987535626108629221059158447222511111751575713597281687435107378782936539685238894497617763644627062561547069462680111484851186830212981566530950902043465757069355720198883176464885670684856779411188142320566378091530825384581842862697520166612432523911068185200649346432415311024011658187422886314372422861330592696977589834169018530489051501693666314767815040989136117458387099380833157372613751919926774400616112189313681231711408667814079170259681119787904883731708123569562133283466916575912690687553694626050544495467134622432127640961138461381842660172817119770360530619490447630912408107239279989587039671068499833568100164624492597320034544685872549513666755575981970079574026822757254195337397481539848068905373085433019826468695754520236520892616150010118091978431954026864092932414923927470027716218949806091670033839135759930856446774130728347887915810607829865032316983726924381637695195213369495933400799996708468686660125779946889557549323248383801336989340172397193887898695952695072511886185035555815707992208165938068542706958403372942256467699586557245447023113163989335197458390565223904455823363673824126123095260577477711402184903819202130774412308028465496206742419736208093144962285967292993542700534894227027112351588775040446036186811260208692101223003727797701043920734612989336336160333825846460928927202886293143619842242374021151662320312464129422740653602906366351422405157998241217896635253891849396622636478270790443368498129447015110755465701992750405321173021757830800652515708098070540686544676324777104427982161387865297380707465482341344693249216556451942422036929854904565528620672299860626518208842081807564535382246948742513632209826003718483401066229441906183814678902591591275306217438482832079050220386428612850372308426186817466833637756030925085444111803522045930504240815344935823389169944184116181413234805035568929780201161051530735513155023645843491665620859212804356385202387262899899134706619150891343931905415660222208507749082486571676047946280583806232436530543065191495071306095982148437069335090849822869000512501409708146000937217098545439750762779125412494218323697260020132077865783390373950325033562236277362814597140202245158895348717722618764548695390960904034798660452823009036854422131181580669603520529572073119195552096015690773025063209410174695968607011188146238067262225567572552298045341431852826779408445521448347847622873078476503228877693796597749885789896065399464497280228278073697648992724509533710546789257462898327010794754092951147643027434308595729109315993088109995300420623643547497818410618393147068675555626912772777390719807881128492559352994890099528194461333548629846962790640355696343359610723099474702075822429368735625490959302731252965178116767212952752085375707656853641100264514245688082397799623292207592828135778246157933330722241514826212037214624745979515436799917060527045996154738790982254210140096578720819952825815104040928414146786400111845050249497203817661709802384443999994628135048193713005411496862365482632638775913063975335806741450438773732213053000706945985151631530582721112947958218967221138899791366812075068621027967914686916720733727470779721848774755629591102822804067654917761480562154256746509199294673486178620363636039302815512148452001799428030866558994423764208208664718708278058731980115249434445587587916333060675828317718378159482730119855622795416570329969851349754273585441976013843706790294891510640603953109059130970023161054783954622137371297691412809041748621034181171780806502228615863022886062763463977473517085900821803374091771880560441460325161203917032605016789540707641033882328008223466345381957686947963838883430138259169730325708765936979967527037340203664750756827652015542381760811800209558958038052574959337732730603081571573807584291735976154812759088826387287753876554729364690632489860330277402637383923597112126480750341338205666795015219913732488237486022424592505765107531614013161872020794419645910402459258620702834992116946596031951781284597195251581181963761162984463788977261884051269550380707785384919532087694508043780932647546583288129147339787316968848025443384126734629172873369934771843343466756738502611047679901212150623543440242369935834711282901460989763596791303525903506954564812202958668844552884355292803392114307124198260113199719269577403645013294802446797428730508720629982482309862530055360730891262115058887758291159568434968682288326493190118754459278534542176603695315815865186624844913580718250298972985220285510736476676008188189392141878403595409519165210368969782764536900212597624411002334022340734593372557568278758223790101028125088061112189247965982443358267377331492073925627868187780349903641836597695729479997239513358465903430188054842947104857277568458835068749427067838181362791040431058990963584798516933066982062219186908952035041281800350344222875233750683686308907592194949810825241891813427564621706036962371591572380650545377900591363759150910960579225816885880984422121370250960358726275271122898702238486690950475619271082448685696491743765416215291016242579918882989319645498182185891284173308854918691391281149273389142440903411364306374148422844234959782566330896220558873827504128199087552357914943957979180830103699019887969044369261397885924024906285670252685262894202727583540708672107628603306649902286537667575728767671976158656144062898406473040892231325824366401834761813131686528321041552232556167541739971822240240557452373617232268166299406988616939223012166935420441110317965072201130535791723444720693977370434250733671952069550691143189306398187039485568780083540910197353894341181539735337469300181455654527669965292602268225985851039851254387495414085325975491547681684281015973868325500038055095579467915494187922391837029630776593331101356876229909671182684636573961267559421883170930922597838959646025318526176060770424199700591631138959901255049219781804665697755857483156294527037700563105085381782412667524935281759578488722957396325879601604631728061883146430635324439570271467587554329338438952944032118753241685314706637732806709440369547889927876499413896609781166074211442351503475340001131775145352467476275279852985073638295827829444020604954106203811564222311224774547622764894153657300985899306626431633985003045729813736785658134699061029196059637537711057700151046632711031215364858169136735393296441213149698077648353373881231699367261962046965050848494152866881780853972129409112452144374864104885395717513852297996193416763678778620520290555820283612012646951049054407724620900620621617884247412750863992556952398144342942317534734133730165594079164704098876978216903646170313356532501312870408364964360547931821092507366808871064533263216600139262832272826869606496092457534811950697079036096364736349683429265866193504534573307425151709766932609102135918897004998501415392469892414520512474618340095476758899425248051188953921472056036753698813362281452583284699778251134018908620148172558865481197645244853549776552621916696926670755314438810885128579833090605316379844704475542993589027553671217919775456690754248537330670193625162662903002439917162149254471920049913472359765140517565948308765016467599011044070209016929719424225628124435439619693637992712094554136264548227077277257458368163728931285241694955091772058148572546574931619259206169936487878200126041284164861770981482252422827438488196799882325082281044712249325216540161163749343668323115384754597183799051279614767516950917469686682498438368126625031669461466618598090893873699702035868638363886901770353934366126311379460196683872187191438241415583143056390979912346050177496067594462203457670239886891240776022644408124085040272772459966729294390197758615727903665155009483157329702604029639999567443356404829259014334824795737944835891402895249165746741630152102486413762836997490352650090312251816789308541049091360677163378055906782599748221484160945236615772642700836479013331215603469737619742526254539374477031772110025628104393074055842825056647244205480892304667226579988588774311999180218318393839244939139127658265444780544228517358967813247009745255908033392600060886983592329427081809155305788397134978105969935269729390978767183895290708821162327505383511426518485762303137417331273965090824645600862616102505323693275913984729072996126391706267284259208096329533076755062809491175897038172657723657862674939057276912291694645645003724497186478590174310164382210615912390879941651106095222705037674772026971078358364130043464369636633276658081228818551046710921466953126728506136116879498564963537958102069620293661069480109969762961002069841854983019470157766304707747735466355047196126220188463666818428086286162682452679251902963504589646744538249656714070072306810276035137380596483138859268249698499995554958881752477218546803442411819735716567779860741187420555226154534832523873838076765551859400492987842216786173762713121611189411062042837960140057901881156436043560741265270552323680879360149298495970684274882372013047914965337870885976903610602397370400381303214493103754268681690455964838565785589504889624399136643558151767353833466160967325040045240690947533727314460767669588436951412403470871979796484650381474745767416644026809806282363067141210113447669897757984990469804919178410028304830251927513879267958175888465469638622284612975079250863508246933734174857656895787768508350309540189965223662350089736374373036914875918237073814125165632763449787409911983134018114428385472841506113770769513059314246038994714893060500844976314190849682996253697359058328943965602956545935575218182774884438546345750650181482312092722792615215498292223109523227857341081963678509833383208201660483716773793677519427606014787910701036964652821936451729239451171922731625353879303876860652566920330894462140936639274708404328947331889781926688792182745163882429801284237977331864865204007586556357050132776270222968722429435714000319834566738989355916838639584477904990192464247186855063340829637312294887707244247563099862172427028831216091883934269583150333757885680973563876779808345639170853559960579887915770499149157717878924186523737125275043042676311752124201460897145070021836223938242020569541717543443811524993028897028681141979349183215717644095363264601499098900070434509601618721453296945760239482341719115079907084176599793185081197873256726358407235362157819486208859279668323133250725396523071372861591195679747940411352293151228735497174214986209131299071870577979496811114865047149965888262588176529855687336656676436773198930903495753878113204435662415686584072738491673556059679234000796065488064252021699581307920577472787698489483394741165173826456205326892409691773563280500612920799451172518201057086123239154260034230002696185523715080628287795434265604523593090406417970493962245854252299945491617109910887440671438211597508649153352012212925083067247506141353809527446584680285447799570180859396507688008928794973599162027066299496265313411023030006820651087649259355718122748522288300933076881280794883067806595370304458837172585545670329486907133946831724594213174332763052132609770348452867408319584197302246688253257012864946568733011745015101400683493309753557971929166968197683228253937417045592700043413832070384154927756930839100970785484335756658235372734129710184884358217306605667764298465778972895811026325679252956081297253668646825519986582075306768364461963641441449663812448010861844288449365735125491003091851454520471759668925229424110005649628797636339116538182367879013486578714650151541720105971497965015275859909548153285315523311794665873414186893548708373309857872763584115970818938705291381042054148829348147008243977576345254114755557609946586008408080328586304561527088673623630015942912724900818567893876093433827821274791099539248562315496362742849649063658454941724198491000008937452721247393873401912788507876897251824210133794158528832047949664056786464728027322128998724301332396486700254779885495200006529019114855624649959526111736882295317873380605595403732007145791040408400284533606395748148267151935438142992617996677186376891747402671620435646098296464734727779859380198889713447150845168228397862246649850228125411651530505797274507597164369614061692141484177306897655473852932841937757612353019732042685451741018863887420523125049036112928770760706729079887185588549658210604013574750314520823820900389071871911728239131914428781371174716959080351142443846766569866879583357622900462269874043880454276213839642089147112332309727842477688114601017697244811533529997176843097892312235441637487765760473663163566997734148305173744924722164619779932186822695411300738259428808531932846513703708812993668163111880772405756186972879943885208698450615461797593019829141554161704558696691452351875643234502293379518853358668183147394084068465526099835338925883366566608288324024495318354330355947379691466313598020142403367087947380199410551069731186354294476926670383525219318291791094487981080817564108904250246360502726328494510149569597210189602035611292838190836020590744280088123424430981964344572833775159303506935014075395080939786481503668897915218538140310667297713627002166164560734105328053843493846654925908575644332070911934225314258524280604260490942414664935846662260480306372584261088731876983403999103168709842544467548785149173717434065167793663567782999401548738056695742021570943076212340726705140529239737146957994840316098435300154894614003675994585069313014812159631558677282153001653601212398725141114306451882739787639871200699736368846928302245854782111417911091095979935986402239971402436138747675169945729529781119779217315644360231213139477877766521825857583068190123433502840646589862066917721200580041928086683918645779265066437213768907852936331869829977002931357822154700804880864028542304911159316649081359209586981605662580163213637514674150195893005703256773038543243961229628139095266477029642536057643622559653003700363269071904429032448460391735476837697533614891376546247362526772889910294712189016912210284407211672163842325322559049600092488727259706023408674738638209330781439382338940833216844939896861162060598320284548035796820211599634656524486884204202011792160465533917754009824646287856909064376538587660964440261921544416468872605477206610868520658902725543355967514904250898317658786807540020645088018811846583897352653413840117129129862586332690821236858155670265016023555151436194168707056227866734722444021897595377130899315338186712453520255097057844465120250957936288322259719523695991211631270343542582317881207807807803422466646307331247833700952414161512041187817100817243673410269206902565614017442440125271484475223087338021988014951349846296826356999348229853292030062112597100032086799382821207262937176673932459400588092742680079840734235115671053918647137308706319967602215419610485429338734425582440334862010170803960849668400262229427962867115891322953371993841834325037495279027226338806338226264990272912670806895246521068396428385054109222250973617184087822364298364953900403936883950640933845330318824009216206368875231038750343164523450222730631191623569681442104358079850767762049128032400224576061660316296413554523154479701007892794747779954078987592401756484409061834880244694668853395574988601595320356881465392009662186394512822305075522819876252580345618807497886412866519153346710620593953430578923322086262326326372912329393487580080186509973138794953831310484349782229990012889050969303511818491874221191346111494416130581882491731392511863641849235156970168263287485032004701322162874652840056319883255939903658905673089944755613630767796541745325266442179364955385052582084084369746551452114053428050704359996917992013825967147105345383793015694564189909687016653097736113544945880027653743107564778069866579219823331571094897488715498571407448101513441288875365780865265986451105669367410975999855300845362542579113492701669147606226502743383095983153843706917742210857589382326595016547634179911742594629090555859499279419704185393450082235214820962334636083903024970803492150191216644603659760150669895106185913384229212098458004737109682682541565910404287646017208927064563981966886252218073873328089779872887754170816125369095166025702087863792866705383862542713405695651250214616702897298068757225042732471847838676929448697656460712827021724503232175963822774516121886633318809592936601760962808413932460408620631518656907784534626207130551584136426297028564025684448189121687009984936889634231246805178283528744533403288693015252261839902806710457678526727053531908256100931927736725672814973125130829026417454955598646522558561271897596936887975833079069006813023966379127869636249638239772417293408410882346306696923680265562950587291690727640201173306666820740450084419759280796190989942895270280104116444181171477923494519779873538659437137135925634525178760393361307603791257973325477904566717990497505299110989996221858612725963406626356170314738624616144003874571012413770718282366265281619632175937941526363244192832554252038534493722973687246133340502652629071262743850473114493904593482402402527014057004183233334865357094549932681827325558894567153500206212355864286971344814384700354125329622007649408116757940079028072283673093973469697986682171131646930436724585375045827785675068088600225451989610827309488533660589787659736959366061879369229862878168756161584431216453455479470092339412160422613092867992498049035760991702718029806697565345198292135286765235182824174960151559782274078363763735631677730029042563935920509007221655186092132826096350672074995033931809676039870944545997157223405712270217873048381125234080310364581187292987483017336079615369125609482052698789483898489434101191528795907336030760642407674035221577434979984125708959417018395323156152861253460910509263224199815448120532610600743275947271631611977011256170533809874285704228802394329706020636649585490969463955865152130282908727842202637804037190371784388660450569389669491868932614784825236926647674026038782369623417792813823440513130640697846759402703256702536317864045035917381909807416491193523670542244583197569277823586658184647806382551311717794880592285324332045084173291021192896343349464718893640211584917285952983027528587487038082942403434340230130157875161834666969008531585276026846167760853605472590483813802561458093503466767900456422917686361077215325642149546978000102392024358974076183348741136273610335337098661223859390173165184571408640334525862201807660154033837880400319544542483659647816828085672559804908577393510890663194408829054473007528135305164493687810604236575776131303839139033330099286566184528323237725324458324383339719326481557516237201843722465809295586881274043601776217337340365817425573269010241176049860202090637694075103380018015900586757286141001138465028512211447667317763671927959861467673426467945153980357792915253120021408115832141935326497166825746948592861094399104569020403998005144204629319753748168206981180583663435878698482251660380790607874295336929127876746315004757828518044485232309520910696736611504038794410263280517794906204597209825903710135878957969672732006946276123095269978066586946870206379451867686167426781422048290830154762756275362225568032939993734803529566218128138411415562852486524297537232488630320409769318013619120210521067095131028823724108257992365832736235738314839871578705099105666497512951096896912526075577105252974129548416169459081006159558985451246629069010937212805799646110072027217587017539618195291135767336073938663737827494629155191086719760100144756130846481431910109952920426170079434185008939945847494402087792069389481044083636021879619353988467148570002207695226835292862950046592020872936576548280117691392931466707275405299289769907257696449169139021177725948130426882844523296022731739356934533751047315459774453260727631722344498885856281789759572223074706139717162865484507617199656987337032728419705112157244205873958205536020038980134431897446947319030755911470835567982446905667973709055934950582714322441955359481900084868324694819873242270001090849479145075772536058824785700329745362881506465290732226400622152014977661212526759496992687889091681776462060813784526636708135647458244739441850415330175442152398716436508838535280537457355468966127810869588118116859971360963462333784463162000645902480072937613151451184172213275739393975253959307159833205822151933410037210847918086724409348175817296564709670819372751992437007227394637588455008835049836891761197220839170213175307542708626028018611269357353360908481767648828538445577599418505504534731856732976727098548712815265583217763913477597685194087723061574390614149435869176420631881378891637665690790215423596510922489774336462972121561298955246793356199054153358963327790153919167140638349974752967961137425644146429110044068425299033234349076165779524767855897363722374241152472687549256538331935872306365762747172877835799348887805373784694752699901549171578370353685015298813653067211910406166306567101253167426501844442168866255956883006952229299245778859071639852927848223957327836763125136549485138546100841609717371016006640096357690322656785517846762816794679099090727011709309251091619696355146961221179000009075594003318919654973223091978338350840427079604202289393847395591885587213634209343458373932238444787259599646150361011112031039099872328399184145971735620216657314937602982428740841095634582010959354651941129355568452973851767099799356798859107005552575553067316126423851191026704270755699298181874043702984063058048917091598088064631959302781097279546998227901639302042188551040648610062954092195953588139056199941958461476555670232210044507318676179777381454342356665341398565551048179802395796841713197624052559588617383922794202616444664899393741792038309346533391171494851541849853355548521397363962169759911996697871089570474896120303069958204500047749644340635187995439693904917767001924376761783342282801750008547485827856329086073741717044134702111738488057680960303709645389785113333847896279580871015058458863028540258246235838152738919954271809803131620083040138861863324354282001702337823824403812592255891729600176680718605797495943052772101664063958708435486926703699473484115660022886683077307800164089860996410879132275740568903771851608677601640927530420810636268863584114759054691870726751981882717773319485448193707273014824504861263983921883724440954714058671881000558254873699629739665611019193104693254696625400410477643953729721728856593365494167348055204705295128529520292211495138169446488174058362932512197861067233011611076301659781504934674108211388535812493101171284359954173922807817569948541236356593266548994506983585779638211744002527792791766076429036069464695203768890751708931997324038233778653614857600310239825784437839037888059837978971264278587196528934220108622630766439070898992983711134301570027940068134225670753981203383757811021172222886401493825663884774777638955003909729064028241520652600843418425503363369601897091849076123961622397671498920834972973153356538511392859057318697682505698173023127038045979909489607790441014771419752811906276240503542315030215962413541438861748393510691339560239154726073040896911685791893836481539919271542246564799806181081261579342314528096539356593979393481863435009404561433157502147722719778008835156874134186451689514150895144994092389670017544251288685750797295239865102543507467233965695457149719706758853968148217895090215251163015676972241812983346710666242959043369144348231747439024454263234069011441118673075379303289542750760633294290548669929261069181032821754741222312317512229163956017481457687423017357629918816926664226789116509392874702380924045452598749331157896873689846987678478487055897758066134342532762567159743232439857324148705374768215067988444241417292243880552000031839408617222351271883424502356097539069716229916910003495804635905469708565560183866924461440586051607486781360587788697925571096689257511171725838835800098759122963638356003615492989722312886633955591133006373825770347877979103773948610091114728365608105522008371547620451394924668504285356102192042083928080508375983671083722480532982885827860204216268586490531049252751844605503047463235825666727828923248258062367769135606029832646011902096011147671504215006172969770739935773364764978170868141516200977615492786675947799633488309486131564809722933808429769728095471216307196424155941683091905400340989875508090160447388030752585902827167675188379588136329112188935669289290951550114408966661241559914234445854925798825843221331629743783511067108788322028819040464335038066953583189292026213629393110612623047037780609638182831164680203611586546003844807256430602475813916410722291468535667499679095177682658453968583293225988672852157182598226808300882639080249923341927103878288251514731884586949052289168673710177997517313532031548761062188919231881989572925096289808606520711328761728013661226645050649080069151210356295936733396483219847892998021188924720186480110919313952900252376438000349047645039734505548309442019668963253185874973352222144037453022686575969815496925069604015934905473627989200822076716164600355298973731407609535460464958414602257467897230569138678141718641057493483210874436098168113553003822249855684283986494831295207989696876171341890536230978032049335773869701129804797993823849070474643749926808400884328763590978864947280715642084906036812082623412710991326542832063042732815452886186039728734170761772444485340234922590309821527026586904616546470658171972248689920398454104842236438791712877872445689392517496358310420234494986076493515408639276777331203170401584445133182575529814654851276357695125157191900631714998465948983972097388291999389804177408865836338200462761619704542334070845094615648676150621377765676972890695723673017780424233275713203427811075542480860595164190992680179398247845966885554920333148866707108402977810640184708252618493085647398804757296617118881920100610990117715988425807828852239049963179508310538315690207297262662956429864752188214659755435529053158191771333756646372343869905215214785652161883922523350053565267615440020988317841533320249972839283568479382914920029973033547181291114198819555500993260407342516715830043074024800895562769736515426093442774328341352470430540472581008440764105530179170290318919365642290058425511985301714698778920355821646540219763580165267972188911496832437688290154914302401941072802534641319249623798583425762993885654585437501704061861307254022827077911127724333306842185426369507283300940888268266031115080875050673061420825733351293017031313860211703700112656457232467434185643581002679339234399780786888991918225428698287891004577979789951817359055905346779878048336853041488790915310604965792962938133460591808896762939535671494153559346145913817663448609957516990020310303226708179353045366471531171746221552213721321909251645134880408285179831204964972149028695913563553917361872541600515778631952368641495109933064298967837327525588920133649713750149059646256634073839608496926790108754148805599361364857910455159186013797692497610362057199043613604364255539090558644536831124116032282755463883687132135427660315435021253700142302617892831457264379803155216926400884047047533365007646088151877656781151519925755520822709846163872236930866832029180347594119666105501673386071729527490121489321219088092113614788161860728241418107762690263469223845164222092735287885304029814499056902090601151156327103205484678023389419280005141649357787207931208604788952618265638968927295523772950156018520265142649081850377649463053948869745388005508936597752888624461464318551432844632639937655669908591013444670157204666192033043697774621501823259331171843718599779945954257953824113421970307362971271022001991932080689901230665821990050062521733826559852361613776083226501429417386669129688048911752520544086022328463573573029108410926366745293001937304038845882678464590267236810855874010122847778763250393081652176284602252947319495148903046796811407115665447372282363483862128689813000590024556081547287241216107820303532970897194413761168621049883721428356771178473461700288114117110270527700275668202191192881235787114233166615788134037885275503932424698327222397921856753082641961647223004722142249043373206053729712669468049883013733276286593964397666489780714891051423540671537048096705265117466873458456147415971866086298691107952229533204724965108643929026467117263527672868666064274093526780177536612221097979470658763040440645266373294315865706474605134835709551029164076224746236644211311060870812347397203664507269523425849627501134414759778217036231949687573734802765971585096282930092266042911872124608273820163077473970597017223503212243287678655034014400006351393551171974363057247996393257105080681259826139542916797990681827834589782219937592885389323094392191012477018032139481322083162029753435139998145587365760714276283387174968229856351262520892608712422806923197900735941865067860369574627309568792986891819647454933910221705745518614851133100008718799190092109407982905203553605239797228831167383995197853181412885784830850047007994019935867228044357598670791706097208107699407748758312956319538361364217365423293504126628072343310132997937743333913206588428767305191942331727845269585683708965482984929596644551253810843602726336601538182060814477313520691652651088380944726927394772821795938167592606317850809489741993846061136520789470646224345337628111420241603910253264078423346974879367810044588893014295957126427727474682974101026729418135461986966433729138596106596098504173338784800867059634838199801026203460054272925993745921216421376641827667634264836603488014970581300878422912740015224379916588613985413762777234513578816934913782003712700704974853028792278020301084202606222014215095732786302493729840678050540371939206581366840842826592596665955560787703354801030638162605492648015209076723406357066434076493767569064765359803341453601409428317145438496126295999270229809032824036178805898992167986614080612721820537434814573604398347898840044002585405892508983756347506047265885837767135619817451143277912426908697892671559392955683746412260722581824966331226323534666992426230855382065901842250499807789061707253087406261380361728840405096318853785280905390030017052251940318046185044733243421971956823174668006083578253060360130369134609319063812867977971582994520517674100271425930685688549675963526152637319594502300109451661033943243994703453534491857365575662097732367780074168071418830321600723463494029760967119677898567037837331394396229934005498929429580426667786427830199811194587116466722633918883337816478996620104689495229156996277586006394722630780146464113488574981960772818859466420820349861278145129101917227529578256100949626329481046450870096600228984028779877682675767617571818596763782509435820513190351263420833989114287198645783425067378301781694650906892101646150059119905361013664667803614053063095734375309249337990239955592176771802139641708255710078984643063347947537843246315428876460257741006587164328582458790675749879908844084668207689888612229912107605375904583265899642241178558401721165726515658142049939350643305366201755270975356170491413017157695802342507799114793901877001291309120379301195139992941202319600170140475899255074093929195817770869172029010938100365920824002771671893940664809958914235321061221218548149006758002780220723763635242478091430902544629531385732268178316987495900220063398698188910504082438209554649848132747344568665716400326174464085857759833246270283198938316801652268512762553166505784964736311093419710223606024762610892209782388252342926429085815306104473281121872378263614787432000166809299183191992354387551345072560234651522328271782582948590682521602533037681199006359800790382058030288634436075652913423700350402984998418356430352532553780729077530273093415441162740478243657618640408176849302209346808393815314785054674183964171591197673516921223246274499083767954381944762899259229330507276067053245996871077772612830370660891038762327715265214836051902043007306644803518084549450341858563229341410283912477760500273758213992969157157009680487136660370698305730234528720999375648377319268903710721641193271533923267310610669590813627808308701779835730487467547926855167262361049235222008892097015217738758940769794922645021006205929040670070829635754947854558773149095621637132941797352385720954295089842360485322903834083735670771896762406515831824429880064968555338103538259530186158661148757551143620588498118195433321414308646177417444131560144615225715033595128174273982252322433830417559021719725160778345791677542713961324313820249527407675197665726932592361120157989517975315322944833141706549383897063836766179815336194350803706961703085533559384430163186926954914463303274017131041927563543023128727440921439478341549873312957380673541915507691943525777699254248380206933320477443144762257171288532426815592138035098159118655398439015514222920336979713392709865835957916099165338250379451007277990018726387731859721230020367114196218052618738097653062524073891022135778489369450914534139655697499393596325265776463385599919248512796977958366553093165865374256240881257337421343837355592307847091881349311802588707167933746508227635254655062813481550316327094568548382476102821089165580904014725409483220926868228235414625458463534265030025231101258217172524708197659372947173436221865155535251132915391200864502739092739301481017991998222027087993278505821245237584090499450369541865561669800169848002486909371016192540412808793143672883185376061376325856913407774918517076419806633356333582926715599958202388916846106768097754116439002595633197777146252770959083736592798713013199038347495609265863909658015778428597618096194028603791260397092080638518745437681300321895396533207685076386797237991259979610066158509339314377077519342257053019611703741484470462204874276210630134948191659094787184369030437469003647807651456108265572076449361861758699429409596750164188038658581573706265380253949318664220951265183712852478283861996471396792062749403298112486867608026700196963800574265200550536934927288934977668589949353381667914251900246469178555413123834892103166710762038266390672539274542696782518257780546631120862245192292727410543825127040892835572215908571465835339759452511878721937805273334776401700238244719131101071537798771746161807574839863885978749835130333575230543510046015548556126602439509560224333023939505159644858471706978710170699885991744996760014919706198031658184955309394482023396795525376301026382276406224102139684664133848967725440599170303366276215850585629823262499633081427033108065405725419970782145175236178524831590417070063975978091296291602543056261995352036678674442766928627061486055454947033255572040323729428287339053981259287075998655228576966190063272134297681118738549633697899947144803067898332206549424284587003471364594118458510509964340709943039101119676943255745793477555878845946861856395536232998222304006611877421642186571606241966995121462872877154967006907602968783903173745495075028778286297001612585847835538493430405523338967409773882582454066245308613992413828657494049758997234422348129188750156942324629901918007472268302641416781208371615094550001116361887451646796314351304843237364616598921250361594829730249838648490189697823058947104418790742051878738896583196349438135544826527132776196538179725069912548076482654695814400085497498845129503773145683448742189307137453813936843186662967084172881057536238162221154607662062256495069636254254782009375313852421054247286007115674421731347504323245539973263334593839536477906104370059734981190557325085954073692176288158010218459712181223245455699191228531658062030289219102026930200127348577986430710228102848064719834890132700828893755458301164927485679583069930430394859855758016272620268453805431405564754104894669165862217398510186607063848803371181895747346728971300948569148513054742719406173545421691183909875950546119499260129578962501115276959603471632155767855918719635417885266623902773379630242559435498794076420410640979665274301904362558201293010963716400455110632593525669057329057417047836411563597464405268523101197582712672737893065695796374428491172696302507875891718763924997490442970181352946058508561632216687470002158307836642997045988826041061310301734134203674069255129872783848740802476516277420833530542795641351610151910937913527285558662617314667204437272449834129443652358754542717090672323045828920443194395233786086038110800403114665065646634595492840859097357416945717034156191294300140908740987880936450308166461640612251277574468186127307306057542127733085379675284645873826099871127167422659456518193128885224744045521638729836539598374784360482433395840357139337336328379041584000722188351812860177616597378035453220035359327932086330401374627603143190595905891707589248285651059053515752583004343664433693447789763522220690377148905836998974658858589480034390364503214370925103879468278125941940928493081866422062372516478081527961503069569208983834144607186016571309946164187960425818048546993895885343178281001237326334745605856854671193046951662479747486021166854440488938008114482126773238764478582443778145947191089456822471978569006427857763649700434419583726639375009632415503615913917920194201606322999581253878803195751033717688896021166062900610014107198611550197339710026415551686758118016868522417337826565764717528249375285496086204525311851917675465219484745220678937916763684349803189755082374018153636120041805117241764231107920746995444365974424102072632155734788176589522795920678500089324286293478504054996316741526085401142189990774020431659117678334413981554390212507642897279267098071581101951719021942034797188830134868781200722099929439395762302625576921403084887954331077933050481984020400319405616876867328442140889348582259566665355188663101669745076897310278027521160904509549231184117716638358469891750545068436940099057685450338627242178381146897990516179546281827102336455385484449900117721653376506749329375974425162466129686902878362778472816076477313258120913069025676609703263901614453736665930817060218312706030571254392226806542439480856018509884022824946659965645164155177481973368668467670524633674178262469907498917246813687290208542730770170705558854330200489970383072242542345052684127678846667334042278662522992589240575400812681018453390156854672399349856470556225436471788253051042817959327213753809465621473633665898179650434831319278009563752472426891743370073218805865325841273452718470931380271078907901318822988989452153867710359182156660035610939622788375206808479351917236147951817664859534062305314077974360717914881271037051281569467950285738475890700426253889014485063080284899860778115808729996862402993884394865567423716513339894447837995709859221579666532522888323018035717822073665741779067386567603645043337370474655572594712737034752114749198344656194040750212221895013637409289039112438324275761658095340185665814785747287951480269316126326991691065101745927290284837430379294332302191623555959119251860640875981697256275306583921214405416718815148213997731906779651267798567023005177076568231898574635857571852324174750546311115449857357633573996311745313091879679033262682959445649561190294558787592262327780004043238069929853064643478788323458900617166815035998089007121272247728170802563498986073992348215041851763545192266497054616625209620440484761703808266959294347095738641718011761637725239509904368911757592148405224176859811955041730662335088779921420196544325977642056568062787978853447903641469596305454545741643437568375221236392136061881932928124597733891172905305024403519130932698469781311531700577472663669901480604724566446554207942258871842142131316168436948288857748023109900371944462658711600163646101717034504097488746195455057471176908693668678554881181747491185716365651296730435017987829914998164529782852049170103916406803334087206778279477405227812117776246176446977645506274364487357585208954719144368417283602389923718780226482360511918444227630833556312413280578449282193461210508927789036795002348023080758561576239062798820301957751570352973395625311539388460170176317962985239038629223247691236175001540645177794171677110738052525059832092107885981546361759204522327136225068343785341506792028549334446066938839023488387988507641822564620602008828339223405930175721608235652777673562263518952463816375678526884741230437804840584554846734684817686826115910172744387619109541976819801308770255003046307318021476052335691373157980829970120436608793977864622620193500412724383099256143853442801217425008231440103906887772223352819011407175477786183807788783406952686863677392234985439684261864479157387847471616145899563731226301965433113318421281340825841147401012521836279275891197965496777073777980217837534648875258209755399218709088192892634130645638637958957097116004965940128321390019808883079822386873064694593292684039807963082219411851045420098929511954319176441155517165082269202850642474389455428473474364467386105062683845776097968563569211058390658128854392886502008623146400869492887896914757651112347326992967327026399290348051747866464777461405977588777034956649666548681647685861405168049229728892828149557948300035666106505858932085263245368075956792425052181172625103950885163267037207773395823107551861008496520916731048093999396888817389343132440148160992259890668661202625700037698863443800806380626321903358408504017761713467356935228121033331176025889701232399688043221048391778280000830132554441634357094695070371676722282302351036128226673463605155364328249091970236642333120926685693126045157634251941294891084228254689008614730280204652370919337293823835623064430513408911011136660444770193966185508233103093234898055778253926708292911626291105541344437313097641393464481807911028607779113091793690003250919491801370381944397651255877090317657544775635277449440566081409931693528315071795504559141445883981225580861929249343413889388367194615188966561443835849560945201610100460319651366445928442278888692657711146149485400037087179828878366421415650615712377647947079994035713782576693475473778134639535219917235950077471516638744514846071427030525586797588461469331638723090345644971792244629299265161080852947894517304666466389907953560497418914875671829730964144397150481142560322611580122622188876951418583068603469806999924100780025272392172370972992263151238403081083435107115819306150650271080435701065920981891123902360384998208921099552254391224198731128190663743231501244234720895928973983676493053976552406970059055630143891097574525526215280100821495443674123152173856607546329780149252961742094216614446935259854136736583534814965896801388045413591857611568725897861761120028942321536785249389745689186567142590547211148963590891171351536343484687114923795598290218304057618677044631440737875998780583249627001077201285197766443805386428771207631165151022298218065187098701454041450752508043597787590004336692799367606579439334962726638579785147437598691804155870994375150549827230922339803839202615858222776415963510821943339913083517672661496235240239479732168065053772036198919813021641533888266322822812309340828431328636116469802093316436610092205694753800095696215786797912223526449289528937824043118098394404312993935085359831129704429963265782799494008743401002762075774086751494450005262837044543111532467914549307471797455890802639400766033261430401397639185719747259436951759524735686215632308498233745779635207933793411961492713019951469232610686765953700892972693183425245586649786223484864890468408750601139636204906202904236718497148731635514178291766733582760073342399193027812473844349399734821123724610066876086481460795447983309378951322978361117470715718603878325108144863515484777368255508110470363455475491966101568401964670772669509998684060849002471431058583269029193413558246472324335831570693551621205123544459458734952436344311513369182187635451780827872825658532196973956190796996844061239502787443560016030116450155552030078185771913911922745467869412751974619487042077801703858662667579133426150416671692918823179808039736891217775645441596746332273414733131276893513690055096042054991939844790135986540516821995323685613273358731288566029523041391318029580468384219441378405259035275546700093281435698068524974522367232746776855018390068666527718164983708202501171501194121450247601137727059558285152747971979949898131357904635770801585757831096104186403364562108762897390489505065192941011142094460238418643811583101172277502844049544241538478200943150609537424385790688061160454649001892541221602261012656835039789579094086799480269759518018771698255874460432421598746004945340238888133396170503089316938070694373482421876052831596980428202741558355921018622605880954325940449265014770158130466982737144067340342605200090485427462473841445324506119163296698566617164642491496984727628511742582407314321888091331357433355151476609915657123009107321843542868279653947430222074647831194158605864114587732150267400836734233794096104508720405081832523930551509280357879096857848099169425173100138984469481709557048725166748388862361429679521655079121372805216989973589296064673352380698017279785694658109918217610612644203655094001342499604037075561411840882206214584262973772624159117212748516679350244939553738773586941632153185679466023774467616608303396275238819590185380348702843371011689143436756159925656817254725336647429323436678061831523778277283376095433797042206898470781582120784497695006581840625900499193846771889089866491303909579080455194794779231463078744847204744720654753266082796081140306443452845689616219591827573831599863374352888995293833630223196680369041469805156885973996373764203976806993372846219738336100773094441940755872878005549930108744447084891087506944055610057847129873658358177108569728234733703390991495074198608476338170589730283407158940530127395799759422975139326771604438095713912148133327573588947295736695143446444085961514767845830297942795810812550450930268035310568662739451376493905215903802835454687433972235570222003060561457837766885981170082622251740883188940854104054891256813101063297282558005993900858661048611892920894625529717600666682714471417237523214085269959533875715373330137020031241742474188763196442958052399795350567879936479578080909659174054088331202745424928113336707531336890455377959931219344828218311887962517162098260491984353584795847496080576130379667020514555575948023258255737714652371781355491833418396428707694923761417419314180955956245853213569627243029923990799444962172770400823228846786234808757563356028378581543154802915383195074824363780621175820476001331290057928631388883513292135211966256763921284489756257411821881649539584638593927074956317030913832672716098820000960142812894647431664980850757217384948967850472675386084873475760756121693034347056974385144255161346544925357227999962485687964021022012090337784617694635543088662865335716237918384728800680791826914748782826342166978026416077222673722080437202231458245688627068058800150740559702232682200708568376009934924533124297539773907537547358072794777185815502232324771659684106343107597825674650034012707962311002325796834494186043684378942777866852127304319942118582527510837892609213581613126691850103675429505621839683347095663039492279744738912671929836359165800835564692969287607268535227665756727894849979982823872746129984975557770766277624463474411350577114691352422636363156530860849541590014263734382347417151123615690734586000121955288259367947003486957038058663088781004829653192111635616752518268026271547183144598384127787242736042437251918912426488754835991476009733419928205126762988677596133892520573320804402689036187480372174708038118020961547850455357225538705246137636984290709214695278882473297131870369274175629607675177749967284685550760181396513766474684415376979616764714013236966614326521002033750036924055276629421893810517287895678753640587421218061828415407731978008147473422674124455501775012784880199760675694934229082674069338375023441055247945169396688133070821681911465797438076173544871953923289209823258130942176639245808039895164067413494291755582223347180490861965435167350843027311631127372061101804144185668701672254708766017714985360253893084490079713347800000096546250612313740980476083198413003309179369478182581301628763188149168670973557365446486462627414625194715744768873734999115122242964529882880552199884833916657433913332977038982564225924069881437582555393498664318591131116939205199957343707879834831882591295886472639836660701607463517142205302357417944981691551723299525263513557872177992065590060125329926627133861801098962108818583797118376040603362814531754968987448753218221652919852810882822395051489913817572534654488928171946655425192377901022938090270543829525157813796381493110548476395688551575068219262444415665246122089649416452697452934945752444850696978144242985355613240638296125854030344487826022025835385989229081327327887235420307304732484355528740274624317027650768435758008533429315267230412899547818408673515936552181206988793320660710733586527405146680022365378647069077701921086629432972290724563969613156953704844053518423282160661802372208057109612553133829824757509213015094297619401617002703439517654230784784375311665254595511738269071569363517083285409677982886727190974722031271417331931992730511077797432021984954459666588795193939084038627561847555602740770016935650137536879552741758555620463827693693481928393503286101401896180748334454102260859294172188712877483603277247530027116201912191533259352914702296734710446025506708670053405532378816044704932567955969859018174842518050235430886345649835541670675326676078666551541300840972577924187128133852562461146051999608544165706635117780310937281053099682042327874477671508572894504924426937854088689153686685138259254894673527683460568261474064656358657260002718392949181573014648501401657081353814918811750496183060691789045457201918471007363489314998661126812679285979229683522666971449738011631844975094101214127407539489643010269768476230692466790359488976931130819788856838361498606147114810031103467185632021337043965721218162258531378302553803875092761467205404293920771907508725267110590557118338217368682148396971478858249269655463404834006228468072724103964830461003906472298329301676989275353196086973288589345600162107352873614509612428705880316348708297655627616297497564519494894123263446890611648910966748651256022912832510739020372159228626507327570425812762534373413859111545300053535527078414322869009226165488032227265266064077334088331711362272935352273609305219660543529204472588080534816085237466926269795861995141561435153299154643895120599014240016652057005293904171114254191840724292686344688677496813980638020694792109332534297619419422893059861813717242138350919716958479510562902334565660917835025815115790071848864039584975055924328660393710569515444048922204121712633174418375125836584390166566918286259643856268300781601795498581112390557815626335527822104024096812336839650624568823930938157437800305464886175892748618045879704716860878130853989991423477469411186819636400289465558489776329144142231852676758591074497638207263856676019658020803109173261140410915788084470495040463417729081339378183491816670890299590987731299560237826144367607262221780178476430122128037808814326418928083862203893329724003885153849506047558128333699041860851290180506177945668220445918162329480086883136303034891375982143093410661065229774118877240492127327868697443033633102741291743608732201670290448439364024811298650316137674569131961689002825537869632034306997106128153531596768151675472277257693715912986707831871815337632099005363607926115225455688636030411714467519636812595686113153503184748841414246862271007066836971108309855028116894331107065795865205486492226614416196719338809648286119643043371142070274843428833360821257627103127428033243566756664913838151610691914193537266172614504317707575774111418645485549615771793199971645495507497225998826366275488568161496262523888323546299828112813791452474073014815222860684687070653317697091816950928789384605756263298605097269015636407836717085115274984194047707966541999154382124148007197291175765277375096928615134033469806183955063482977475269082863863760158472756820588657613531273122734311160367684647129658407717043152360011615347399524912048824313369768848329007234562501213982520069809771580904466235106278720920207232479926334980914003162681814056927098122106489525173210928239534611900929141147940584478389992663804898219832538869331993932523434035990710545161166872822729553136273271308175546482035171308914824737716528081810817733774724829900506080968072222284179025772294151277211126998840240551166406021249110794019665108452627042435413716406011320246108680523806704133826436217920927371028425621571400943314182626093874771750491529925148287687649842683939527803920845443638011203459429816203403707090541679011630118790040635568192469453522642800627083188561752884878741888717977847257987692646712830253049703401299455437935923867985703029219802997811800588602022257559110043714856937199395134138558880419087175073668011397977616644404096062686470278141774983221798478562107431425685751111210524460268371686271472698361387165946031838975673704667099485562868848239565029133529305150277574107565575364048571843481721396009166602590046929836636813081326515053324506741626084329043608265741500410584133927706566349753064950644587532321382604052272616964499035474296365287018764492814818345763210881944910201245913561726444427315547009256439721557613915847590221410922475895807287483580040815788675123186628341986619357708255505952099021969685151522841723712261334398681851086271692480311450407294021413004373080853525213693915155562302938444501613781588130861917488234662549237944837550895163003778406507596082792275158798562862494422389791523240015689693573278338694011084295947678738904654243963860733111386442923463773545461372361379518645085546622432140353926445077099548970649762681889550264028329571166975136102067700643579292661046123009298369268158805943145515119738907944055997292345867943655234840982572963877342641982814040621419728023463748520286899023013202647541487451251219545303598851270736179430374942581160532457248408086152661154140156581122170089672463264142608959247724722679667493412643006169730040565230598362485289528039588259669065893872678185722003289887575678275251125937730849215530597788463412239880047836652874910148608535566037129262980500569248339625779376264717483464896940529955774821031145808410307978433257066445958311080372427061417095301494839437096990682767517782764201024597447317527594789930746522837314016636621335417881296532251055208730538223847416933701371826098376891356125365055436383021678602065694035933450086709581940665674215256800997075887830399700416281661562523292553975518586298623836061737363204615041807638029065620487009415705632988654676469112551444050256926380417582969250530401817425375347058685526853860826139599337464489468400567772408809572620984016129943753591970723122508106402743936263581215531791359750546392760584466089705912490040076009902663370262968581920105626859547097338271548113541342953850456608617655583270185134028179037793756351883067947712778632271010727070946091351181310105752831116585231691045912579148850324190773775281302682800861745480667471146210477296720619087341540931740186254401551593536577329610478061558040535344846938425221456992343670009478237009360648527913828405689917064616640881316829357117969687105824142523088904730501588037666441696594245885478869884797365752716714165354892064223173340966146485660473301228919848149805270410858607667988727525571489649171019505018341235199949508693033496679880791270407596224380618465736268670995150116270356234002924697500115697546555240399031889328447216609393072480417220538307765844450997492121478438365380638957231387729462830183542220717224339908247985528598249583902808913701441828648224896191905199515405830394440144407303665548253992904664448184760484695567318342258755062622461910682303106172398779570012204339880599081961839708141305199251105924066514920859673823422699882165075180198164231194987026252131680125492476137744311701467424572193569649093370833462997075121158035400732169246000709089683281656238537153346976331826095533113828553461623106287183591847634764900024520833459634535839657547317811601095434429473091727169205235215523305000649597129396654589034864228661368220864408847842502167010971012469499906205519641837996036823217017362213854048413151483940692718683834394518000729122803170069923279496523111712002916808122056942053535972235758469543674221423516302829902221102888822522079173186302073830362847209468460425345902321287915063086976559130020379386287401859564464776480375050209419941293421258853038897156813551658023521108107730593619430457329334804934774917569141616573646647090192035322231573367750779834127889481286367255859174770979870154338676716403197980606147667309009333706245497988353768886363402118675860800879933810497925545612316122654123591977329712137306430831683188129643885474795780936196857844386145281017558034338154974266397294875837280994747356128593477642788419091815763118366553919435387343125941632620178069370259114969049260478948140192226563779544097625473824102097771397447210904689688433103115134926562490020595051060270415298438156123379158768484411642955576849300421007804484340250681319197642638313078964026966158055776087071476822885638649230590396124431425538774395358070524506258391296132012121973969458880609246163076661918617866461976366744830585306935214849912811215190662211933385092592843142395582895585811623489299024291958967735508036297425070601778147983327344268766925969524080951622030829485292767689780153496589910259503975741860066771618376996283102814413950217193302894512336352375054453573615055173461049984825358104169699101209193562551777019415778937581486874478865747959401932854412862466912539296609727779066236845488129820460211121430501170992060836172310078388879905671942920466086140345250335794850121969344963033259244476179383015610055913643468333801059457506453876237980909593621430380019147509597845967082029108495849624872142722065832322683891722600638005096172780801850958175760519516504806367509036101370930402933551414919946725004805816323138015981840862950878252660132362787404589117956311298451692083579559088853708149741644897325104801548183969520170378660815801913935792405040764286537507785513005405755216122927001725385234732382313202999149029074947006805392230352092810403026136201782459666577380429675719739059148299634205176827276035698519331184647942987266821032527649839157126305363309094407646557947624995552668457866941093042445252147231922709737187872513992376881368013973987747606484943109387674045925836728023342713417240326864928109359665044467790841754878183669783718495406180602719602008137440089150824721262375008582514584276640864509974015626996117582913850010171531503605778506405398488049450949854746288467271674005539880179153277530457505498998498621413942843752634934834995785106473870170166366818689246128915043216610021303260788534603860424407909660875105834515125476442556830368124793782773503294252013518475083733585462226932978751914038842275583311686830432596321042712954382410640810491079452475526759556451378944970182085013583790637917989023319695884698710408107175025693194894469098100338790885559718538002885398280610208445139507074073388668899792473791857484716809840938385099553721570371277256154673504342934654243117206188623320491323221989183500496636688862777869372079976380095521551131955445257142630273331810888964350486539435962259068510492143254311052893684538483502222685740908522316006801024426269786519185338616623419324320516166908510528541674978387647567634943988599094388934313249364879394851219010879791174941459772681628756551932120091780864770581895168074864396683998456733956065093007089736606077917604020060961432206131862979589858950042653599651114711250391110395221592320749473132370333307225053612799734665622048871574850463923979393606166518819573812545704472277008651128652341513105414172683555282551074426578592256391937745164096163146497509744125460001910387519811268764373081065737555687286824206607349447629841545199414108963717922066972896377965030121639966058199790357396022629121741539193582566778985978831207936019752378380526991781721607749371831878636738553670351898137213227621440956234025767054465205761862495294553518479238760750134103113140923375962616184485742874869418144821232437966489663579166566260503439656041788868993288881780936855212612744479697149276781200218748474066292027990987757468650980961996841931758117093316097611270948704179258143503263465482049947505028634848385323354974454453521540027148840550155593834975165825997551647561009274030944963366971635883148090208425710452050515110695041394432076269588155666228571810534035616952436135688169072607819196741568524723843590038980577375361919814977141169129187587642094513957149663198294616308857202820152688950296953633055648196132321223787937708282112400072605792787512920046407061510237558385263389819605766532364357397019670125286392698400306327845345988310764957372084491380330656785948163122629353445019977681493851812990605826914605845004756246769891922999234613908544827040282606372288726513400069361845078413303538593875483241049437310759049883729814529385607795960300962673341850393273895829120422688557555402332423874110545940071398761741209001495989711144808178429595216328283017393711968924593864979216755362960764447452447708908486752806547562701866435509120611489849046658843224340623824544514869385360286804511566104292293599844303843434206499196933096852332722573861860364721088105346660285746638036554899635800537551802442215407933713263829444287711329726050574110384720105152158617375836184954879899552525614840533798359955335920022466464052429552661403530466084975032014367500864716227763574375372254588786552389997146872407057383602124257478709966889560659297695382880137105205825082846160139001349406329441641885906130495302230218849443332612367651143495789915063896521316067051377407922072337181840044362254431696435095552598385246829240422390348769084300827851652172616372613107641938859333856722461133027059062801890063982149975111618541497349145960953610714950787434768006278172234711788994881122737456169159832918194977540253174541116899915865613100952420442351072365229032760887096248990664219612181657670190475770948049579432609882412177185877433608107930893590490689794992634070879292304328467686648461408123793413198068601486281970846138673592691325984788048501562426889403630114717349642952608579828019282388526256347962005087320608979888793710543037901561338221065695072765019323618480280284527935409382938766005526042974989516983160552740942485928350048665040258342240513431537001676720053026436750127564489780464639078167630843472507200389105210833973868266803194838735955646598352455566874776421331258096000704367239776424204115540860862385371310946658516923085618120600141202358051117900690686236744277332843703389457513866771896110256934743076242838435480362814697511377655934388533721681996206153720116282936665226580942966159694151819445244674965935219241495665581482550380737766031380604766727036260601604883213844043726288852245207150704807037614143727872758856194532321562420242685174809166880524330936444040389250656946185687323588394971579820387570836745319848629000280429687930437296929220280983156945472386926700987974799757320503061756093058572366773922384007569604388204256952955508464960780933802378369810202020466117621720657958209657330792123078885911030013314925844398802693830614427958609660251296089697263872775433568996505610632412795569777248596039679031698826344548121669190133329690364422534303588998590799450059432694218927893076464115135226036590278996570636089267483379974216729584822675648745987997755637393198828106247581773440558988115089200206391725442142193261829410642900398389009678571954931536005315452535612580965067446437942068243092904388734732134761809327247129851004815837180845403304274528078684807695548534792552091461033655775965184239234177606586852510634207475246738488287345627639003570101640509909683055150240717989555023352646690103571105660925170058483108787121900186253975831547184377006903320314437254323510680340272678629727250467427970557018807282327128172008362019363778872970397928426722621429315779516444843452077340256858167834503610868839720356148494255982945895606633643885373599604653544639749382248887851528594719688930071495031020535488819525000302380788829098022601290295407035131273673839345872990213001142053938096960566392982904267791471199332337210428425644676905762630614403696077673137515656070125626208627536655378752529418675675966140564973361426444028727681299070694718034251248997884208635165996944347129839632803019034598632097322541123154069322418795711120740322611925973192509087780686275186669321850405594344092549305362327825069408410972273322004482460321122857227582045086470714423879594697350708259849660062932218734934590918183912664918383257365851837326453789905861127702821426022170808661974011791364775795647079600476494098308035387895040577944767038399753144234374413920265397337434797632841464925878851070416528234502701142613148577521605459585989075324915969408840029003613400286786603635285722168688175416163857886290801687521966835905489486474754538694337049376285475991964424811013743715373096352730145705534929115675954188274633813986041985354727474664603173206578448244896535815124703427972147867684323336860443850526658746178379621723655888594305963712918103268576331813814000300064855292052099456806892028440406790083814474975843513063941466533805933252811479570483155861781849856981363164813031596534671300511823984957536756078945959110183101582488193770662680174418539183971184881353004430740392916852801537516783968822567569136831219286239847176987167234109384041831626252100852688891826693445016900810409951787343820806001648286455576049556693493597852721918279338113839050972485927440051561523055310542301275961657161049034555286164584222589114634934156047083615726343184337988116241225440326929492631189043451040786466958166192884765861391071748490000764723549413987293089667673460865669548099609161806767699618661461739541832294077982039817759480395363863261000928732384987045126261854450747920314167605715624281449066736358946781727180745042524043533714611991876065895366658031292862380567052169044892495530912788225246729949179436995611459255149330870720443653578031405783203671139216651597325820917103969896272867301770573013040339928556733721340610847968479267768627860891914700159782483907434046601281431474280487549087888280160875098410866116474222163195015780706058909285370343247928136280211113539343447036298856925489581302766801508911332364779488259259402278190462411967230416479313704170889519820157225791122141551061351257349585280949633815855421120182732517131836699469765653796724518341324022240562311514257630454664798040171877463235966723507269043606729786281950952710604255889326736670826698231646261894510362519966332693708178068447872055897800861046365025723892085091240915251463685608966334275296102420126555578928959344887361742490447853044954846055815174473356466369180870722877436274107269229166142234125217248875575193401158895292866712643191701520762327990597666785850192437188139982270825170019768927990614984273887451146030425503138064947807574565743140855378216288385048000293021352475975949058226998315335748730373879420610380153363202069982375314089056891475100720713625758624614370575428217540029294309067974297677504838993179758311190631198591021626750789041774291875869225267846112950067611857902894275095787946207376856400039933835083885645444772943051404593940920939259987826207098317800506004526857921329915545163509011342780687262963194067246529511669624650930242705627677560052165389277573960884898660240244087032767599727681782303955187218785583005255722709831165673535336393706114233322343675411173394599068317289988693872995125813406056819562256541698501318266857067140704652532134386966720197475519960939810052008696933738194251592618437302399395013154681681258611129605033175028996045670196090645700357801005305574704306241210240245901100515142750388324282483582362954907921715139644906468065199773811849814208346876999400187340000192815832888080075727808937183668374625133248944424400477416154314158766907570906556827848948195056623257942049589084137164394387570653957170885723168606079824759369142715014153357678660230674721869837870657587661461547280556200139879185144134083434544012335622440562589897855010210388468183691359041295960804942315027900497694412468215797846070326091806446937227461150784536484420659884791405527723618939713084023557043642554125492332410257734869359466398207397548133896569269964938321339843503213853350948867369008087410402191342828547330144426608609752977045012566955580942695599434300556682886613384817251742666440889600797452833938020386738523328024077248902124699950882567740327056240014062133061811292725452142077380001130731050615299220601636997269262292885048106830347441521755364622737782491169577529143877277442413855401037460526662779843636126395801608102107489934017293223170614414015067951823689938912412098937223020318092752479299304139096640098469600023445843905075535159736559834448593963423993480901516361373571508068473403228569736474005760160933697207344019946733322379714087168113447360595489691341296104632904826844845911597836365775292629841767104716526877259845700014979976702710331503157024086584052210941349568364150279570844214979192560171412508090032497677994859370324962130777329745133331128463433159206609104880944984177905445421924597928249825149970592331288831551546364234073023980053411706066846844341123299436890562628087012288379061133796502623007669359857099907108617257328059074311137678587475122492142910748409048870442579754206593526329413993684973037031400335929401499586155369178634347507121327578252982748615339990232435511920353813349659188774678415052995521569978447900102436208246194719968505290051068175053473238970452886676811180163576161269477584012382815839899592773385742038234484409004957489887249659950836407483466123452998722038488652626581136443539746334850119203396112612732321770908254369432380242878642845897717645970808928236038607430395450724408214772263482268047662363271811463941410454014706429738662676312039381083042357401294690565833314655274552993395112469416678324228783759419849121236318267267983030998033315696391496626977812377063843083922116011459881773019944332786991357543358312218692530121151337771345992352893794134684751796445408787260371621512137100673231278448560145468158467834554748681409462311116415105269953780673025088180395333748377166429355077469154908444008583559146436304838948838016180129363514438067833684808297359965101032585233309303069557432899069350610368745239741676509666152120424763062699360758680100677665624960180475131233572289190256466760593787030624482964161483182683305928527883389776939735892918219108244884256137039368941696955652927847144357055384172990364732783515578527807822956794577160755140007708848377813115397557023563015201271752294080545638530118663317357026829062853700923636178841615063121163831151148935686498424858931173393658658083628137430341539280616560985594291473484066867079482060668668537758589820702629216188676685226122660931651729003768021254606521381988644258860107605956638938102176398038774542613782508182458267455607439851202521847417044711703192605845150261661287212622083432117628066632764427519432710475530711422159209528935799792142306920179986021520183134109891668780974822310616942987116703629512379043437002693712479937409322850116315907557328023399167398214015497018313992371627097218466694240474379951100375878775472636697375575668612030795229299790521706444095853266765394475772392262540489982159737396077770405791344213846269700673207830003551145152227467769802935628977315655405106739162913747606956774959343989478231544307383540023376402212344866210163715435198961275093989038925403474529513716586578782872445635777101093193750868813489236159976625057070349555329798102577360113616469624154251853619230655692166313010674247668495932428347889992232434935906263586331436804803589223298355390246195764561897363934744527805601239238072579078024716234730449780148327030107026999029383748367944517763689254288512447040390731680913659252132306480473436757830593261488717242665254474693760224964354137607759246040996757640207975019444136840971504671992559293366433795623304366673205111095797322310714773986420243613923591321410724251185109351238778869511969911140418175495493881626256688233415268755437990738832376904827892186333416089400685646672377392313626940942891205364870041062442472096128797855326645168473396617601051272369578552351101037473448148713389535171538737704826720614023531461244086471622575385415662085798805397592383851689451294221319739954810969219711971342317569072726171084688260056172632401637902784948008985206892644539072280471695830384497349793452043306652779286091140244893867817497414059111324004630577106538870935622676596843292356485996358371604109867334206192034941694660621934152315245763585240562542053490028543539597289743889270185086960689149161332407221196650383233186265327145052357844016883490553625573090354889645907729747822583010963041725009294238016643906164737675836294256304635134714862714748857204244628260383354248218129699041253097846744154607524617753910746952655022987376746210480998866531484674362801689331471825399209399585140197969610507039704893944293499606368900115163251845313764329048353787569242075369931673962872444623345165367720415170594397998445580568715808027984631920372936868574499015835607484725936645371829808540939422923366168183177136297242390281346687747167670810352005389827762929413182703711794638725854199724255427387205501403505959312894542498179859949228216757110255253814768670576979865288246156392309184227532494025466446145405192479647317678542949381154569139584530746746911240353827690607879544106102532042944432574137056585175126859961275820626327439939046230478152884909983737201474005470381623297026827048390647624907704093800101436658093528205788304839823673131673965847549525677444535763179370382172172291225836827385394304392809468778431706863694952259260933326200109340295071211097911101289810540039568139282420121741519343728585625234300485684225295654569772778807964512889434289087282668604522291481928520541262288640398106137798163718991115991363585921998974574369928650715904647671126526291927463660671911026623252322490168359070636808231595511270799928710332837599554667848446647395170825968645878224298326540978225646902762540372751847850839070962240648879357363869946305379719891513720635580582569565463131425410720906590185498468177651028574629811220106795686594563017936229549204550504584826788820591762766727381464315995893077163458881366723656832589950151294479258059056368491664034170905789961096602468773526293557620124468519143736578385122137649789481879701506971842769402120539636542242545305484327819977327086915641971559496049184189108337069355826701040433644033238460150715380072526292563310959532135103712064693078309755653755583399831670477318818385865855032890331752454754476739696449444933080123666903879541272212596494313954125469943027273269680724594129367364744608040883053722629368637669681006602200716217828011308613998280304939969076761547730439948581335160745829552203628390317473533772186256277439088486090019614201811783330020688987661090804386044389385513420400490945820658654280311848867545313012175948512313799113645792674278121800997738910406117173439653521401524091850461851236627366582461995791125485623522203547809745176759838222168146498612754692704748042237095709468649407572243449455179278747045597317682052589095787401764005196917266999563063145396702780026388725182154439975073763909376696615619654834356582812121193066598653412663928751270214196242086754208691595583063127575466387983421258353907932624639065778477834633627797712468643014518402185413404088913284846810867489224789098467688815631946542987070686781230651825831626574414028563900435920001162571744119165629707807056017342090017346941396377832325511308600439604237507450011048093991886956515467494694916842352930645857670158776301241616264333933043492558226700826649541496006216045071882363354668577692916251898047736582555938420516671926838375464465702135889396465328335948137652478506000659869967883003898599030506710682582474503750198431911829097792910701028094563401486962445887928365164329519174182371870764822138029260772937984317339421280761037431945965663456198600867452069279994848509755665720762102162013807472367927179962502545159292442355115902743034810882254205056160204716259552804184272650956894841736009786492074193985813749442639080246693148130585228095214045644575685281759101800066738191980126457741624900305286894680828029713801435423152717252729168473744313072241206516322283315390316663402448962699325125677942224077205567409182888218651723813956594668737293119321823814405304364944825330939568240161152946300823612670613537524485480281519172980530694381091793634544302271394593975172975271648637500818603005817536052589579688637886247310542887018534685005806575124511095132524419715057393089268115356397730516257542180220864249350125505189295459417125519004123031187510228974348452080012325231753057224535106584506931239388346558421852295257982769910712491637348518016368714141129569930189701657024088692565101299038454657685119895470121754320005102474179434168045119158218132940474816368611392607504793698945185475105788135287360991177736998720355165687111986895638877742313019436526171625866176807527929438180333451502138015981095768208931360975612849689875290498709402078186425156950811974338403377871559520760280670930777690999372743653982582285502696635188696889592237521681934391381451861178006954105132732403635997766190671268424144435415696444948978789469983603205278652934741033904209532828577293101543814696458731532726326245124827725369202639585226315362726327683532207434956445438718746763199079871886444028687678312903284740411870970741629601011787052545358936412719364067688646279818822066010094274203046983593053978148504390340230543890470519484342947418788494453125228743227111717257593329223381773063246601856139318056422696568121924148488482003794056144266556778941691240047125503164805085067057931164670586167846347358116472802006221067988286717349811999426668567023274442234613352228311059586649629917172618218147135974048076315205150666484925997680904250065968933683604297530872696333766161884834113754296183599219480694583712696297721809716163084494530635777396099476890148224339904293373495665716772953577098227062005681635443550118872677825485173658502147419988023181241065928806160968038656780769896673138025533531447700254971453374772384240696275951325854764410916747809238140175782040600749308847807173212582254667760398174894389492365620353289084392383573588310998842599277138088274695016546487732020385149838422854446083044004688279633965659960942701789277272018095907364816524147828409776940991210144863095665411696913196668663013279993084435818880550598611732349213723820254520207084697904123189566910861140926433558076647909034387194833093613767474592581352215682489984416943997596463803478048414251068643174029031784461512341195651276992934894470875247260222628118359638033713596325628582426454817342889039730340813109305974852230624243664862877831629374580973151635630423028670652252793759204678149441288317155324812042133740854498940930842757708461707238456974604066821013481332634018568201544574512741671822021930218672191792486991588852922639688935770944792519023856764806580596802988429132350949633359015657720398955321723077102880945823737573276195561027409661643323456692950969518651851100887510516326344649703802202766057238897949115001931598930753025781846918942929056098469415352160583411314867082787886641993173705277820191374859454322283589973055638233729568174915911839629617463757620705234183781018709592409615218936588499069113420763322983323373792324883616457206875064760863008813010472738029363484787659305154759416788588169220262866039471395734500323096919870671717358686264938221144461602804549212043784046500888686364550204652470248298212822175389179637468076711166628620651487855731101952599706465718195832762253169562280239384830827053265785478134885378998945184611423867581240334201112893449634029299077621059137700335833274623535579452726052949623807662041725561225608231820503171555143352973266511171619056428426194981235256612878512839831383930646176783511220747693496616168313328875588732258786830107215383159846972726875827431201757362143002564791777235413303778858998432717913313523590214014276223503445083747145647303530816981951654101692261321327919721733344920183744085985580900261032511270521659086469165080152709925997466152917054560348194223721093657836375574775852992934977980673728218093147947351489396489057740069136408019092347090395995039300068629081065675670858047058655825449826322319406818733196401353754788094607351407842809145149017655622482851370386106008337125849082929385953510339521254950678578798871431341745619709191843159998873126203402494892426196861911847496817334815958802120599817887810065271689424309509012547284001416392371693280823944764948127391104899116127164823523183043490021654665727625564541569665346307198443918157765796656870379058482221648279659569273283508453457269188935638688068253703592318813051639357529933998495586843031484715932582416881690098187536746733175613617187557776613362505271986183944239603120126227751581160782801601872595776065512040942208573402478560640043972773275917158047042120363956392238462546547121629171636217682461362437078238574125778071021973558354095556031268856232137663807897524740090688841202004474705102346652299614195481328955730386169306031356959362046025272378268767316278339216047627347486634978690114285823552933155318055990652921401437345005468143060427439116473437183605389677454683382937955526461210234869899851115433156231919716046809684649021002507817349322295863239161778168455926731159540495725314065378291903776833778264261712052793113336199765132175536706644257422551089015762494516738654088815963666573141685612561677047635727408842025315673523627509636980347930118827923850420655587891008437934155010763690169506899932626597422050031058569424371583830540162613779780483897022611635384232009292054506170333735265444201391193831769080021966468868610977661054487354185687891642425320880822382943506507984402740983990357950360566647061418505518738179668155237894778339472035624790974784963486728269378915449432779784231645363170965985927230004654696006997816917299096428687212873841286342153751152619484896026916010951361745726368910038510547800573552377771406674399555660540361526410006171603628263401216293834278860363327401255555763194362680215578619844706321712094063679022286755997969309158749791246154974411698288402195227600449642890151175359727353870726409048641349734970040383651944472857711727241829129840583699724738613165305171872809152743719985383440061982297934913781339132523002355391040127347571036013087670592370702893564432307008506910940941359827745468047890592317500293260123634229549268083049892314242671837518179952785084889517630628668034770505480125131659454844601518365283283159985151375222108375572370393665572477566999227811103520058792045190596847343833914146259069495144334819344345166739292481611980021698556547995863941668088736221857044178093741169226841650260122993765699748698880417787994628624677504387143007937709262883792477663740271146234837441991660524852089251505681788644211420123035151174379736102236914862715526069598044627569950508342127691062113963041633508064044559191040345261086494816869765571886607111458334039656890963424393336473980377596128900621401130408169636359001057703894104082210212040442326086407194524247393140192265328655056303939112059899302349380070290039972421948878934850317753931093693006222344945852124249296128545265565223751390655523106980020133257137062246306253727457449817188914069575697145792748986508851247899068906178426410797055888232587550477030391488042769992783883874643907776186427124510074320609678276685660905448330736503038370164039647160266617605268423598269488876757094454358477361502588248430773489800292270763337544218783164509226328399263635314704875548580856581660047514109978219313268787666307584898625874157614717099348981327897509141076512275439629331539703505590325532387470526026407961783143387357969329098382867044816645028950101284513623088550649133707648729638534058979229391936301582385437016281730312189890272069501781022270691175749704518656423426869645908649900903269533311636651952884762163780360505601956796674031906201542388099846164416393810130003589372764650236167090083706590027463586942959636187344109234570637096510034734091286442040424802134660940864936091438020298252493234942906338209350702375970039834338915543842950444436135041677392715202087450221082496951127125755014172599321331734365452575384503326160978733020725849571338114012360203786774185845406197171481949083944723296564721248199458120845285266128406481534539512881098909258619585315874437568073949483560048148891392348509677769917192879120296052092030971773715271413044769240990536466564761426911687041410419879965317781906643360129238435622509613744649999400750530845458895715367735072455499718624564542962820593734926547949976256551166045569631824443979818462056665888665166034376603748122225656073483234224290797004384519364601527624623091310385160116278055824538719012433286759936404249627860302118804032062903236346344374498640272629989816213396428931791523457486343858274508890356487384614105191583274149380484808252001657237866532764415611595135962240522756165282097998869214521670454654743470153277450191799951619285184041888718909218788778572691370658269428255743101996048062889408863533764335661240883775755078834382766073369304496434341196526204276169274788462912000213621934262123894479438336298702060183285470794905826060366193949149835619730082220348671656648156585714190970792881539595566926525042632843402375428033739191945642798346542140486558574465898714008628799147382268834464077512128657383547452300534873066339537640403153715883014688495216413247759788994963591356452507486084673573748741898767449170336228565179392528429637113503876058023649986266877734212089234356066785409966655038174967737105300162215381841218773343066245828253108256274827312241933147914148005379857599083790497776214642141006777593493796516510022251809424894660056359256312178789474019765293886882136673450277803545976153853264762452102136608639861968402213336542485016912862700726616489878973023920969435413014855194423462659525770878799596343974129204280341548944580110720205349759075453051943432314324079574680319537013573273020202034470029826363308429314648155293312261309487560789548982437431319281953710834107398982362940838992177033871803773435353916965891060394228314524970566208128848671493140280963426930671864001773081771807920376958224619218716046320951135615531090989967345667008216574359998540551269187264995824940274447664139020711757713170663457849982756965038292213166515466531704335575454610481653726952546357559142472335796826103846158240931904477373923902200221074489838231973487946012227214820902380564062301703007461617857304857000935428128546734051828120648476330664988631185125753091077397498269254961500044471569944223280033520845130741654542895660907675042149114195985807683058520017152329052302816335283950247703046595506074648632966709352194121431754185832996607610314055193841276017610727676489592572188944349786744131374615585688876067945957105990951654737819393125509900435611174047340749412484247896466236238493276194891339190213508034015260148395401931222611382352538093703013037941023790385340703772624542506636703091770212180942811874757664147253822278240860430529021230351190718383456880612508420783129499345468007793799230168366976840272421042497705524461677149712419633394876870789317049883484087462799314011255801637002230919729697338493841890359339525040527779715340084297897771097591354008769749682153901064339842281203178695080823181768812306928834781531603474559869473194296921882413462833248792847424023328363017993850971573673908990031345493459327003717607564708863995208908694378708500745272733293612970979975588771172688200182791206721488398421477128952002759189047485313768960150956823824169886657986838647049496878282557245204666501154704485116181250450261990022234930901105363275567591470904787348296985805099614732188918216793317086355253359154273053271999963726899792520003451169053302929882004116401599127751114919938956114544058778868568528568339614854096959783349316390789266914641016806956324422760885265856949354472360455258463329950126364660975988347522295608883812507409929977317105055843248444987962446237061811490004635015321122857347197978484555178238089873144380893520974370692955580102940756072462118027933367110068290845940368548243520220380771587479260119943366324836423394383452958806526752054662571445920680754820650251320306748295422437771727013995198862499727830619493239411726593782142955438917614607850706823773054217428370528216587068162154379264934248863497925695771830225547953350887772521820688802303940956001943594392594837999244571502624475437475257909450075799828745532439410515939088294808747853583008081883312384084251489125232125771573430108443567305382047871997996684859254103611798708557932780739911445549715243835311463775345741226323951637319289752961502836028149830488335246139301612013328721161483055527548152167462635121698797451129999136756734191840416111474190476956184589983103009800846137762180016442457810601789762473134257541199194959603763540900699243654574706903447999719238689140823245372661798391845218653539979959104024570780341771948307689789247919760173798985780307170811545376247835079340017026652611083178467229730069135534174696683888723512124436760262077362115855150337269237748753137196466692920383117628126153351835876421167911943319477810887509982340941468738273416873046031399291013250350359565018607439350867337327508092957938293566174584791281564142571842859071590887593142071352947782815513543006889185427634867301224590670658246908542532068326541730444511384594012823054330038787347678094085832238008136420719937037751375862927391389883392915269056589319133492571223386266532397465650060765052927126615030535332348297314708654868335828898441910786542198646755745759420110296029060019787498513731205425871308307120986592263451936581707030311052204427184954878855621121518463910174067290579975108084164202594997171998949569846155074215561851049125928470887905276703202412382302488444071622123218553517743422077049240327907796094808295946406470182001216052254582748204367621094135328170624173362121611515863288066353642104724758088227557451197468391671023143169940718070276468449167041087433000707519296609593328637561645365532210328018497536940748176239380353512218769920914026897107426872621093796985690657930495307386676271079669647217085147270047266490398291581420244581544157301207247519720295858343609339875476894631327799482324137107550890458658042186606759443083825346847788331056466439210738352284349755250132486937375649203556172772722939463969254528529764105286334653734830761651745801292458673269977923042279666529620383020251124025941251112169265430468449305092590801294962649155129043189856196610995496358310862126736557011340007045964343065671168020026066459378979358259328462750734468458084630056107355130417114533605954924937912729010598894825414750668959860835410449543933657284039972572437741923077492896231951528854486328608936132770813217182378075833406753233070803860279879161903612864305270282779929738934644903594500965175038147100277922492071055120225670725062220827343121795458202106094509034662660687474706092924949270069073303760944039437439977840091669410374321986149805375810675667732842551111210561238812525129845026467918569906794837049227396226890404212103284044015063786037572991297352814610562968875615215539247103026429859715793003620597335784627713073812896200824970838452559464517252203615298066793092639316817075565260438943972480515034389300325561266710307407649064844948569830335558137438411824811067188824891143177409154550061009192482583562403482059766632018839300588519625714050197632439603948856595829329868490341296629345707876759639927593968414979706298869139862371305857122885961263314130555142530675274712525379704970964507252141917448080158342315606748719286513936924555553992103148036012363933520001079767361607281707218279734544354284413784936401329809082365963631221753596065278652347107142470471377681869643037355376367586261558403132642611496293348650674187321190219032938153652131344517333593381760323675468917992081201810343236107207017940799194219775158085172863804208538628437031606391715389165446596438013062938275311558896233155022501546592635461215894630212704044609416388075435867399844303641203233928662000592565245377993270605516403869143871251454495507701536733580520643410296079072770256357609207912204264733930554247659836467735957792544425751764130126864355518929679061284570980162954136383432259220502794413544727596292953741545759180151943893096927192486831711769286373718941988780657547349334047489943925938990666791701454606997636631101223070740788911764239123586001174057274161348074043393772792721720901930633797841895058834114315204568528650173638711653055017761357012383854201114623642352068282994363491791013148164128955953430396169160635677827637157765127317197608735178479207841949999695023720018792322335949430236366447696271468080463564831093182419604279340629835929050555904439093420204136716267857841437256882597307951698887902584159283812557870536731399220516190605634038794659791090973195711362757286707607034455547226115612055879964035976844485645057835471667934318032537065707098265140293295337670522838978128994574402093829483428780797560090789118788629772299065407612967197027001154804569478012447424875740856178225417553619619433784941296125551850346483187727620917707736466644029678953829995913584521126393633121710968084588106526879883965106869580541533710820279952725441895662987824829554079214792285019103756396567905447005458671220642949302519059313345169182816925930150722088693439390600913244493322527476182278776409326264653210554015563518831253738697831652394202291639463178382344149187766093725992322917216113370407022890896257320148374230427927406919449508311447224864698105440296616289372516981786557965639413216703864562424574896858431981624716097726837537398930009946852698204118249637866143338820626940829721594654393664479235650425184388194242959778004909455711059818999604434539077216177747518342493363714516530496189910023810455217010751514271380318663135913318036617892312089320888719141688901816790622977485057974142456716856299345774443150888609482973365092972700543551750192187939811208204018986635524729939250058483038746370350406758552576274177088409453953932321030546227857226180352328947430647313205707655010023316426025791676007653063303789878285926646825508619816575001507985269887264802814376068784622446027030542384340035184663512503374600127749974374504883848869478711702657967553721883102249654050240831793954045631394469764717270465103545042446286795870233294510353333255695456218679524518335847776175420472620190314532307195856052894482089951335486940834333566812486221299755065131409723078315363862331803254753490220151501221129602941987433126890380000893604166095119486521373324747472560595374395121691986147059220190012357341365629440727630159461869932133629643366543179319703808181315020163339261129989587655436297280659773558967749408789869267777183849651937087984429038581193515847675502801791158439723878091983072930672570335470861838111095574455927017415972897727744995943337325093052861897250852811426899980702554327543979631865955676641103461459257400604338180588666318461816539757545505736053705467965747481944779454549080472344740586461281610753562638978698748452862954234328010775023977852913657053338173459718117872487609044540111052217123599932331012094256761931778181368581695194084093530124600454391765600298010591064449955870688116340598385825312068856062755604455060784778993259869934873609199779873236771901039630915050040494516609768651687010761208077704909262748674165888496951647476583202316403808328576005835693879098336169078473218427098452036708279638963615742087161418024064554649807153851171413312326184233945322591524098038201467621491041989595826022081944669376318115329790811043463771200997708775421097408744362860777200279779382879654062164343472103633947206233016347605072744573746254094334448709318384121968582157276197421783527922165439702284595560253849511543903925816345856074740783113171378850014797097709594654017120206577870716979863672294129817209587539131706315107110094745725585315568983179519094827082676626709337412729102898285411534105901588228176527593496419195374588701711332736702634704857316307568795860532040306430388144792972887227199971463765956601914121767882929763573645696383891163538378567015245789763925810881625575232049542950780876694415563685954882495998898878164587758405818116526909631713555038104459256106002931406406529299200691526521833755655673291902460198707717540837134538568019139772989152755788214360865908237399885457907080166448232535489256652905661555882725634784192116871278071118094993578068699004944727947112507812307328546331956072120200343936255519901527402979630782494214107800973835515573025744800601521718992782620017138149927318569429500210507488398304574148789577297800170757556072856185162173974409047041972458206487546216358035241912668074217273957200881305122603724085950925739699941741093398386541833387688868858789810064356712880382800256525665345014528152800458654165586617486934976423483784543680719867419931169451569056904614202387651475249562682886073948696225706079048066731374959258661605116427977458387292363902189245225759249123662511152602615547530214495430534664719238562324891964641565321858062526474148123232164925522734428772324870319668364248648285465974526424276712547746114833378513601008930859705057567428518975575361766287350165068194191031626647600612113937654087933302590637623833214208166962399077851903357581170492486269902432097022519044950169555826653332415525385479305065505821106391850791551307521728417674867750925174571195930046384863788256008376986779044838036677220284695629735361959577976635281617493113519240856162171826968148125989047105345980774609602384829921252504927367202212870326547902367065163613352755064223539651504838003848388990007405943276747580558783138774748951459119186464425616505366773483765967895493402253547435388026068143251200328326519454558490200319267070113661498731883795904879882546892746932662122645069297965294110780926202301326640998185793846094208537271120061599649640719084430349088198251615807943472611192576244201476951722709639480523266538653300819666798416437286789450538335114550458206015087313089063585910389764207484924389725875625218220977162948352046785888223103354987656223046936451529896002173067573626077795693557830902460468124787328594517785365527361847387759274634050356034071330610544507469707256315453527201107326114158969439466351329365243242839646852617560871330842200854283245224849268420507531226265718389611561328621476003597213375470163775741387247234077459657615571553205866798882645861597480404101601134974058529732914690737924820128298429460732369936762914644268342543955350328428444720330112109173859280110886481232903882714584436396456592972916976496871396364847764027154486452519509278315062585555410305166694304097631594911728415770595159311690421460747169603926871099321261521051129108910246888419311647908989394211746680812701980816695311755929651301806457366583716189641297897100861868103822048061345081918257803760107297845198706171983475568252574133355495941252563922212024001301747323476890161105660636445836963275959819500137524648354872054143154967757521486541880921611190708790493547350490670166143680186624903938265310616373342468460698389682207525107550806993006087409933369732336912854969100931053078770570094545845417674500749217987683172984217525746932252575544200362481982609458851009079573677721014268120062343189732895744732482747879846408487050896525991143189162765354076342822303071126278385635155564523322800149059477287336368571580334272416455104096885266342722777178552042881926906569478789712767881435764220241046629912559675510338894228824601506479907352021011102851150312044452633621955443712453828795235494654208235645981946353871937028991710280116688107813132318673982272773155454469801683745575176879249838191505126959645079074424153673072414472485836757520773261709702648779111639332986178195635793600980234078223957922276075944925965428958945201652744813027559411941318061884924678195065499087619910461549303871016126449704313398732358374189500852686172684561642787681349877543287163158122940532734992421472375236183993114276449286753711457743096575035956326485625906281124869725002719321122936509345659028061215605132445431206855518038833198026223182420576689018831901152921659911737215724522084109965454632997986725414920674111597408818782379730652041849252260915739268460255667674607620701803933836584916466506541550024428382017312891886043481743863147741417758986037715725265092566924101368066183633582063566189199000603619394819729471908484020084059446030788248210040987378188610329959998016241914886886647125905815220355970145822157670545561484936197777518697138627585170532031287094284713483410264736252389017104928015401996123312295044000438410130202188470609918418315204526534979066679697129737017659889424050353683365384611737377988875066429420578089555891802810300196948090978258546650653628895337783087594760230701790823782970089314699998070914784339105255565254399045500747495810214549821596307869327930842942380633838770605771210808645380928670960885289499732235667972064684528459164938382041220231325254767493400943118504672474323445048124699531907667158694551778890382089392816233625449077512812801458746914753306669736469910840641631734045656772962830118414561640162539274570550961199610541266874066814676884102429214876445629715246522947279534626596463678826600774199208815322320155899630417517335112552712675583170939024574742897688294588048596209058245347031572711415499484743164809948575616376617572393549798004649091100467072361103072144845213695487566930178437332396894453010695616625547353969738289579161156886688716334033453403309088675085381550985786761238483777124161522108078021000904156700710421931715806639966063960856953036701255348623085082422463239384437941026195846857906685607397542412566768158543086409378249049212572544960329932373396300532573224812143855121879207626573013089437214261048740491601485814970351361045623894610686608481474479390755586037326240711358180500769255410930851185173909982191966208755843410603884235694457339235121824752823334819737348866765401024579089254876924635135039173393719210287153059574341740224437896659293204980200748410427261621161558207891665546653242114584711302556240784906909649178344345166768934120248762529321435431800403544946326005659990028048452480226532141871391374781215315660225807867245461091326015096322685078526748646223373856479432349895776128109401681943602098166203082719597440469745833907279478752973703563709120304832718779401968433207754534060401899118566677207520697948626935280957226801607541107601965969462687350663022742801330032672896684996450887344928536552669859438763627445046718835951278655621039086256611163226276864473514005467678475948468892637700367765103548270546788757314727761616767569860716204018567078384226147173531115066616150205139906635710034047693195671313967945235407197761169400966789610048677856264126078732481474575078636098034514503886979040501381153711169600705433776401550893689644047099466491067985755466192118317802377764273133693780725277360078406032446792154551547519329605501664176880555167775290306367619522184017222437246656844886835586871595963347102323751969250878312012067960198770862104895873183987479850814851383378308609413250145673895288378735954510017234727217317358369039789816238055453821950642021424669441392587219574795623248780930020983771706967391136762189597091201533023699800305412911394575925779635769174329012858816885486435640714232785256712916185767265965532049051491879946697860393562427068044251825813700687008888812251884830596985581312278212254460506234350465509877684266212363742607068867535655103110772106545640332660609546041831592384916151376795707364737144640667041062996004980316573478658567697847071429912872826299826643045631323899860949344922510932183003462017794217161228641699290538060876257845179584871985272244551378389150260829261196699588287464057907056061593443786247759869844627998957129942272924096520993526414808296291560498202149729117542155199634019180404290259450621382950074691204601222227184934468563936856328423529584856054039500497560770853193284137672235592605899589385563261111402171321941717691714870609598983757748470423756491733501835017693809710292658483971477936395935451170388504353138302087564915139107651253676493303310178359422664700767414124968280447404227743190936529777131768915626339217827133907732495697099155879523770425514128855843352341256120973686208988100464221702317847223041438674335068004086469253017763352059601243037084888384633776031235601335264429079192628380974739727776703079266587701334571668998893162287472821419861957278551819469777708579496894157227220200500925515393902443611873276423750852600800271313564201999534142131989210690992268246312667908430774569259641946149175126854698127276309297131734814246537871042323143103617028069764380271533870590505274580752734616196376059202405919097952250964339934677719795560766836913923311894609141399400765044210097603746611491575598639577714846450289536184608522052160098386641045803765707198951250848385183523028894145840028604149668048945345695632125905115431013616480070240382579286432939911426119920252015831396664520725549174142948543764583042401020661147921075572116394093845146274254912713522119394981048093983539614131532351772173089801529736045897761636139899588493097029800536939261318802431517700884192378736000241244515206893926744360783855082049905508580144063461830456067450202379028775005737375169313503239269201092480133150968380130409996073288441660480897073503870368418694307661987954999671145474281939477034680285856417269659596157428186632278220420447019562971437836333338185687859616536730846339029610060713245341297255754062847773619039676961996440585670734123492173804507346643431174481744687053987333932576993079016469125475083438472746073394237176472750381305079026422206073705616051360087682844773636147156400875422242978080858118089030869254346776877489603258144149283782590122406148082717973875889760681349432791675261205073764145033017819428590619298416558728954669183206366127948993064021102649144994959894721122874313316300294189969940253971268073914535771222938463399362932083660821392807884148010029792328695043129034435817284591184092319888906320191557038657458062470986705717917508025510657887072340791287864888000950167286486056573550797114646509855163977395863192860043857903211954894016422288096254227949682795670738437500729637686128454835862317253547077301807348519817464420128737647791563979392666286206548036310894167695938502752986573083619403835879930944485795441278026700627654907930327011552744252444032101680226293133355920439543675633166927916515310767208123321295743137136540480266429440368128255736350493985228195480273058264167619111888525244795358856424039187357256797647531677146960472060254258104017679295658548423333228899921740380372113474170192535391672324249767787809990516390647113484693954212814554278745943669761043072462653092963507123551060041918009008801066962470398878124980895234812039916892760028493050087824868333664472482913132070270209235086698688751464219285166473861350354779071755148179548323392142159857771731943485992928298432348175995714616529674432969319514656105115476953061067588829631196017500794036530979452923768567908092265400588526647634274313006365259161855195399272813575116991091714342592572124630372375915886665103242554706885121455612981910947449518972082853025146284496053537934607129275550378390633795449661357012977095804820249674509929702469278384824932629121266809454169824565176754588560214961870604069625602901653274521584197811576087941126823863908398386371688850991422975986188983080610551578922215298743424658021634623231161408333987488561655497531644565104358399172480534228882190566705816890604945124852334631995130930858467790790675179247204541024718755968951001529610213613505950443512758105619737761809820830711695971846392443154078513581125253572175094393651986968635506767388887190328105271276597170899224810322650661961724907021105241071935989344497804152584316913674151874010021504817312010664873656778165724837651015557677375500380120645213821875383105971449750973224618821916004456182783643300281748489817282379666797366088991533402226776226064557438005865896717455100031300189966938533970168282944864839775774772749876042446081037021460770251709832638730218874330219090499448074465745847633230947272308628112870813699416013190620074113094604409356841881019811176730087812668726319287597547341798942483415999230730285738139189455420071536669202957628973971480277929523980452299534844954749091652659097924918646266353299807758529760669722393140156108242119797766071317025597465190926386910844200426342856444175852596298455885526354798844827684820825445997018984886962106604000720651243244861972930470121053163294328758517653176139780317535081871822093342978620656132014763156378737672446114485212721582544079211363923703701415313667581185293562868446532493228986591672081707019602918501038947476423834325755135253505887667752246769291353520141313237290938731788131576991952444928691881718879669957704680736356891806011784614289842881229370179688182907426766399789749071928498958280327432041977992649350650915689028591285383240301519511003374286728960842139080762100649340749029830167306717396204783715369024553210802980922118765350601602400981373577838841244920097079422010103114729392950759604362516696432621191290137132677878701340436082195170570809031682419692439611765789252976893325450041063096864136452267266280648204338059829681259012933517796452508371839547791975322335375759863407531208391718364112612133931681990252682003915786851411792004813969615542883343746210791123744707748361425558872977503968392167200209792276450338129755762067751545873914535555480941313250757496683862157658300379734401611027359713427291199707270207602792973351266342224356762038903382537960638938549306480699652560363720038507354361093807564373213569800136859431497025373577265643952117399789488590247917012145777985985156273842166261788154468981820255632160044809780338136068052608176805486873899820713560893362014857511925638873680547449873539505894832196070134263278996634434081998847742954126524874256666146927619367825875172445951281399852565861291265913288032809812333091542686228843978223619584732001561639435614796490870668599176965464543830273142338159382497166106561677009586210598168435977302404366578713094319512824816393337526560865856511184169326975865436793758597185616810265334237207441356456494454819239778400430252630962246961910149071009582384936550994291532340410731366064907972099000079212149765542814268836650668081946862834271662575785289007543378341430825162089323132905883457590560956119740503243551390312818394055110832704387202683129740444879255073629999376483350545067390776341597819235313546909890339847415421376692707551876591712483658025699804835279581003906307774839974785938674779759959854648834032606449665294906128085048886868736577004592773885967658529092225186441177641523579604085000051097108120015893551641921563536524940309264927804081702059873545593453721242537558649620553233655126574158329713715174970795765932846404787285024712296393534604829649500931705237879039466691473271272350135493256240488495483712766675356002786396715435460843655825859475323836585531258596578991559417172087008661483667312241399810285004821862722678941390278194073089599567447210363704622362185625156129454030044038594385897887053289434582310821754719381593643065253009672285344886404112012559830199306938534707024559376731106156502170480147517635839905764490260129062627210936092331208063277098955984163137984305666129439235056666841140162973008241263309678005626556883764808936541564411586411077177361495753856052727797129471419042387743531018537454952991786682787316386150663569397934899651407983549725524623951637045636977429473909187836797701102680546694293487413354266423917537304687925050117818204686800778329188523663945237798955515472151483797487760637619681865271097760327986489703075691011318939695546299270873175485003809373335699615002795820152099484710689798274319270064224472376505158275730852745589463517471442410679226137264233062138632967007224545046428296459682948414646433823560204152076617754448582956100667419872164705182587937577345977048546896227747957058848877812358928750638636547531413581703973647761830507972661668759754971117431624574902926393245564548944231801920331053727713015050965437839143297391436332180501200796437273586869175157061892272997790715081378812312851259640543060076284356960928550681356038452394384117458447394002881702482225419837488271781548858416052848865226720530502504243646365419433897378546066830900843851349259540356093764844343393314618426593842575183834750301940384280322933849760410706775091690564274192081773114236937216787438982895528388901092315398350403736654884374740866169552010242890055856510196937061324754984018556941974844183808805963535921261296906076697051446933799628493153648277088108281462345583212914812698622947314662379574686228562390054349571976930739124619228805560027399533879082398636866351460184188849740896471422429040203839476629919339106137426937069374037408398356617523629515867095233307290162426297859540718496238187219330390380607853418802463873607698456279958279638117184461805791635675915375894169877406769583821587140684430058080906478915758810481652976040695799655573093903633677781794282440655930559069671458224537698075752259532017309648961928545319540920865343645920198599593897500678499171007336976623176686471611772180841431569965479406926114091832517546119204814809857930839647124507222223376003405079441884744835644137236471365908940724241336890422168587431346903457016559710236656297322610540690343698011165705842166196502161750571248204861576052902063313085300926105877223600531124655013226288482324897524992132334478043361931157014360953060742792723374623671745969223841358175460480340503416070989074497506243679393038672534515959341601305070935560523967320548989113904069487583107211809010432185006435534448572188856025229753062878722485267509284804153120247826692136787998601757484754093223878687926725839751725169629284175261088225942255872243324880655605752132573537114535871820006100795482862443974619449280060303342006036583457047554118860383369591892279326532334880670345247537934276073256151570819836104935710016462439883476842770389486934584709888268451926181536153708381465211022476519596636484156947239269117691865817078333331181761255928217525467628560663965862158584777597245437518168664698858941283128277213224355013921777141891483622974104873363920228397291255706373850516974985534211503508381876896932617510013932708189028518109406354874017557460664895021265218924852228741170625937746909479254987692945321864763802097266777105618603876081684358989429399154378524717114651047814776689052809085443748929774266766766308814798102945498472000353105513798938042706767933409423974296412666713280754820409048061284754437375920805232860084762289094776316354949579943540381773087824384032391990379635563119401308282138172394705534340517289081189190717733494673253235240954102879804125807423026400111611162809569881162461900105906061846036338812578772423901730180342006928760974029640004185259613222881742678493572878371406782291413938616523093290946309118611692114341634533424155668703982436030878296484193141589559913074718059571883955268148774237108598116133874369559802727376710116960535050050840827351565680477416561107807610034734518720467654328112789988243830955375157530216032399818535937550545649313402835205999317999121957134341121343060881247569910700560944754935925379041334094536753720539668489387569559012446908066319008516364174763330790238362007453928696343364015337934756872262152152500679600659632699374957967575396766073532802871213429995289540680059047167764438992947798495033055317167970445367077659769764996844880674966187770527086332259377865264145911954964649194900548936549970263451385719446428041203045173281247322655960086796687217774421224951919980221453925136766318183514088761223320521905449349512164812809655317022265872795669750065953811908377879351676280783554785049724854791720046503890697306980803409632454795039145306235857129908450813359473207927367761337642394793913638349424463029798169681720092392584842788454803166263730354921857829745834999881772408380523900533403435738920192920226671147243083601189652408583208773258032776134755679891177382951549875661628923878382588185811988355447668087970356967274973910607398928488687376661677433661384076943332708452368868148290924414105382411769211221780416192571511566232669680440083385596617492163828142256821134612191057375033893968669885311313218502318683477784367164339040896348168146078198691831803685689770598644383358938648795640840332471734139579752470124679743426883581956818713763149855028638072500527024942454435223484744791962117744883286998377043236897915489541347758032082767029622222241091126831529698024900462687216623788097468918955064620665401105284479322279980235942961614275041365840263840323431909725415618747815440185596453188245871979160000652201795884086567820141788027837832069094417770719546307308082310708325926589415053192559502192818026676017608112091128174686544817991218361542449449138022621867553954885615724096315651645657277188911455673977050126575351725072040334108750221385214602043726670803227254749706184365177624786910522570479326556372453596961768536962306547480781617419425106374728409704513347667971577151883312846726231666409670556503360094258228429506699500912443792847053233006883594227320445642399134950426023072523225708640230480292842515679033633045502468676986657217310030562873941478956911924259236270869395198655446768370903291842472050020172030110848494585429576670451392015864311225721681895566975693041487291505094330791498241132786312669770927151118667008453472151126776265331917477089121427242819072188683557447084108009617807383765937779243980078102564656083488539407562573883152495674557384294031916231890398323550393548134300725070220830981878152016419334537311649829357038464611771009552163408610920932757942285457252484245693772509375247397727394239463930261425925763961826151552486497496095066461007240156646344947818042809721257135228595505188443814757943218368428227298767550094374845984290782387101925054649968665738744957780691169566604125460706332386779948026689679167750937196453188148100825683082487230183300547926331335507802312951110115483722805426568668469124530908568280641065821830641541964562867385092351549873611857874222774384759487865265072176688221608950647308906809677821115442117792370101361902262233467240369208406070559326309599570586667203826765000665302063035805607665267618008165090365246595915817712076130496646765770344023827003125671739303747310795857084015327027527471131967079997067429528411568409246836617066436660622011536717261842642843494080273917570918706101346755737492804828056201971469922842085646875174449453927407328071396830535696416712926390506547013519722842611945736185125523144985797386680967254316194825207784987277074961967617854527754413678966656946735639842811000506268478508737548438890379066388564404066334277617071147984146470008571295045782519169887677648422078931402359369059600328264319066598556295118227431825055682600802088330877676435420149573053302016104056694712394753861918521178984980200036842317876752492626775350669352624129631234783855672998066688077322588536964545216692890845370973521333158800397407605807694288305902803756804126191481677833894569932148480901180323454853233083480850479023256134952107001012774605743866441224745493043306838741281497297956798258920605522173349817249969641414405541309530314467636135045659333991599263053288936617229234749057792930424087450122795371704747199291367147253775795266767839003713226839160695735460686703595694860105389876283704302966258608160909283944721831808415598968482650795888503252807149178537652779473505926303817793809616622519389149930489184558394362765616041673427193171508874642969451115743715970756032620475633474466430342092732792584176570778528348049157717095961703692229015561976706442438904181421717141315962324175537217063308155349555900866783121911409519408737703392925486902181313063961489592000534628838481886029262431975854508981686072741346763012042992438624813856146858429986280963928503627182058067713615372325839419957775253365699293289886770803465028400360199642480546716919192063968976121613254398344688259068696828195370076693633691952180860429215781943625199510726804734518816721968118402224589530410177803042166994759889787132771702633735607385275079572277831015399018599528701271474206772384256995022940703109874397923978767459316678442334353020390994335534052840382439425032711863914167410172282106221665532982744430340476315537425067237935938698233237163758522687457291277830924832519774051622589846903638481252065621250038075465640863069363260090543026511931661687569183121627629969990215307605506302746729834253987924255411140414257933987579032554182578543196747476330683722683726632793695290279903056292487688723976467003312387640419260988076187861916682348407562954351153535519858996910373108885785670027894711417993133246479647822564088172496919884430463238690761007005219330551764923488816827635665481927527605168632803519349356496133622163848840952621346471670380549103193940161789675664220689660928244809119172441144361724158036908229523255275127412789622251131887214852534327901959328082945103140011279893161331211745612885921535354186735502207540102106019242993069380530745355783832392225631741914867955097524013969749673593697557315329594664319474578617239156536516380152657687190701197812792098770011074658239730770285970044088465174136031092738140445561339943006313448675712603725353821715714978084722113262497554376579857652394480851244632433967742519184628841263754144613024279449207396408653743537434079049406249129266944258233612147778284422703737526970873385674570270474751223280458740462877837856263107437064108816656344677151964181536791053521242834445113121453609797031263633900095918038627608106964704915243773141255541841806341744307893746333473232466679786220877377899506638142068462375438382185331932726765483368109686574732816124493329175059862647679097117834804427694820257883162916658444676768801120465367375976065887500801166067545080635039497669404876793012804227352356625635965036594745391042352879651897513209752477842805504808684471452109493242215102515078402090279326978706669123295124353551935014256206975390549292823173173751069578305421088783657381481532438669668897644090665410835112124012477868228544153392459292330584157622617527780146665974786944541364682235829972006016738197290923510764350519607387247614050030614245891806568344151796293197976126116097272612526064177468770194004656943008692691819968214528641882213185546689067292616080091831798514634058517427970433744150336509341569157900543920173496255985688570967425212331937904098496588839221438390364875004548227011445005771888764448136379603266970336229272123584401200320573841264626920712362469433876747107645856271665112304855563253550695547844703841311109221275498442517475823164442508531172903793588782525051617944377780283604948457296238705240667975642423774598462248248780231448026901415163021630420027470015719411151021952195565663885815335994430752127917848771041144417932208523210333151269000069317572370543940120030748923091197232262161642517199969272700115808064372087538648933171629118410347381797653055849453302486380750229714775733983895692258802779570110501288316894554948551126983926656367992608725070158102022448187239520178495473172467500954328246454959383327714179319562819497044768561484383863698738575832832587549067328671428953390810024164663089229355742256169150043991138099074115453073248498874907244381682388722045738869820590363266283754928012417432408200154916572426604822292006757627831407692762196552061404324244134724845665492660001933963424673901742300961802019049991390525951893494681203121859713008202898108618750827645684331713029615550267048493885160162041139259643587148212881190152433114065911332991259339379645656604412525682946852430924477344644448373555439758285148284257093403654704434548742232951605443131949783975874144831340149723329175538651549666062381524086494407669248475434663303749463358688683932139684088381824263842626171466243021653177263361566396003974472806049872159515459410013507786242437037356211228039764238611801226701055235183478774165130062426895675855351268484787165243261103361815040060760880584904830589898645053616512090332626549775952286341905725785172552205124496899911904380304078952987422419975686642083653232001881337183772935949319912644534336233802935248061802572642661565256809068836393723674122608331255806582981828924043665881418027283808031138135789649644106650109673787662240793052051061974483553923065340847606203158636391076265895117030429557003039581862791454847154939668133695564660205576641797776940534896111514745250646483430257063557437445165231904070479135533030281565605192676331242344380296218662887649239585761249719182817658455808690793646976620651821064814099069899842248195816191389678868074512437719516278341072616824659877697803786904180916447727645058269031652882973789995749411817660394830452781730802452948625400825940533359708267215282459961805408299672376339707595144909784004564933085128767326036258754581824643364945227839839881027263906827184709803247753483126825803601682683863928168294676444958868703191841737039148265883620816885206844354749429524872846392378729162028658912147020045149336063418309760578599339907417099192253116025152069293956978840812739658136645945539406860766670330248152935575875386588080997011347436863475061523201430721819614268468131027653560319242777818147484452433171450922764740008106504709328199826530482098510086017918152699667141504816057727236596175792941033004756829769003456565360938736825425003957702510627356176149398759498670538893401347939250477139747781326527205085024232368690025167668530473145352725352350726155193928755978579649161015084897039924941497564814880282656237090358020871175941675638037950435217660185419812827206083993049266640392224152768503373676405713225549175553076388842166335245121869447107660794154200084301283907585139504241556830537634728683127211440037443983709787735506095215496395998431178283627823641040566095347057729311455013903544995948097656199200000891011411364195547599734127171326267998272300421166619043955842721329967829839307405413532710201524095521225555056725765885978984113356860918371240930696788653617816537079176274792812694863963988164912554507653859558600990313822430785763795389229546466209721833295214290897173959148852727314359668310605757395101351067603676350491302034676453487698867923218778574176392893530664590277856643400836030058245558543528535797903932527985055572841194081531740342948993897256299657406126545292526910967446288671292229637757858121532735124408947106463617227806293708675828984857296570709428585260230607471230271655680353101887503532926598817449734425888922326346618742724082129340676979695968344994129688600953267861048383366126946724448282878909680624569621730068290377769100064326386201802700200629988846706825803125280860956009323062824392254883006593571327628383415091971643597748080282772124050136793580734072021359528660845559852442015722061399734207786328587838569151677773421061734721612507404197055436286508543553761067064752171822020491138940740049519965363986305217052924985197946169883719275489627758115403557340034530765190889689978470912991645843371406168070606491085320790663446490372708065172134097435882298300231801093009963731455108883330007233809576298888372037533246372971825808095502232799393914371300916399718277667836998429578477957355975486215734739286391996636325311556688875278005023279531998261966805572368727456336549132146881471132751611674881959253814624157778192157748439076533227529608343103996127027372718431410787495005897857888577840057427700103822928558176076608511958228498684566501973113038256766660911883229246384493118246509984013023943114537589508018901688021605235472941911780520187249807691719538169613163270425069016163237207872296725598717968660197523184654631309588744960204028104559417199944693351948572641625256689704885536775710802719585391576710162360705177144559913089840822879859260492387150867553737312835006776971646215024142284538181840900516320277385769735534221152030188384845173113060891814181992611564254358658793421026599563641063976984639575471533140389320038417045477164661355188117939107037980872912102971399734144619580781172407410550960361055101621423343609949067251443536262533629111350920748347943198138681359647237622352274907431416433308574321444846995938845583441187208974939956632451565608393096832530654908483577378139939914071746835221347758247191904844467733149036393172107105536820058976179543091932876249685366280369559285445236697735305121758492640859359555532770783144133272103997991847998758502451138337884529793341264874028352580162705886393266129018384154653937037208074219503315754872623252376319507711789168403898139947508091452472707429773074847666813910907714595408133476387733692209629750274955658469615241375869718301867676274192817139510713435891549426877299234536265983844734324549215876294642508710874559431264615220082694655455569609908667596598137106201633696216344194719557917214110488720727161431416168646666354312641642330679007282769265612273071458901919861973498089213418720064158272874720186255998189748551712906470628200751139927899060281460758426995074162498256166880643535533622010159488607345379221849277263659157575311925177067642006803365145076328234155775560879502346360411384781381714795433463165619408865166280457813629641685779934295249561943947162695526204163928070886460621606886986069234686390911238645137966600220739646716618533003781847312323834894673712117474680339020647689539820494890512693991048312505209631993710117041164911352171188116924155557777212116785523631172138147156249246044983755781706645818293340162756076543172081661018340072335109184416204029003299658748205600355035693304085752831839944074863502486184797532734995369467914024730278500009366174374090637515353971905452541076155130224082223564633469713898555301277243009604357833543010309407752556931344106868809981283895411213136594125525798517862521532847057801671253260479398644573036778443524767232092501759677014771937880716601037467520140273885556501011242499851772230681906391717672965634904940768575320572099360502480595011503336614447862555154368756287406477032294324397497859455928694407092012490371953530923164496117945578616411147051204473328274746453569251199586347333823497432282290423117789186411666706333488194554972718855176569814069563085604035267771336839178552364228404977599831564355395243226431907008593283901394599060894846215407248676442346564215827433236040328222824770862556882200713578682255103947130660543853166717094376210082176123537059177912040108089161559012405415440812551929872193671879753093977992077678960404163240059072262354685672987961831065996363631315639600278994788059288643519359397606016847278038233352894073817942530905234666160999531759398946629160338965984428950106620778331091193078874685964713980618061738797723910582462023401188145045782294968556772974006093460354563339010174369384010961874056691507544857672845007698282880971062690168545828517999193581437146554177175790597112997194697869405649968109488371599429260795989772631388729584811841819045790657899275952378879523784187513341270341649824036834838629723233159251266373324877621940295019812594517220773386965504866714453098208745972678446497162190374594647335030400749117535020398903500119062593626576488466730903462017088519674411204037472907484587270020704826216872271541210095532003733507828329111539164824183635820094446530199258579258944897754626057434312593018910937137080698372023108385807281715480435221826773484166506632842805410227315206694475968487753579824991568944732768082493010151477139499658875923946946215208922683956308144634389005229522300471231153602897604969529079404707928996264948700168859990329179692786893034069896742262671726433786902299381457750263541369553855742421462457922938764328138819607742571427221836658046773642495496978979859295965270387152993046861667421139324285600075552277915851855922446083950510104753885510647508503226261805533575058638251926367899824659093910896768561862160485521868285795290683968447873557430857326913827065812713653060929154200174561291169654374327201009083861409299400470928856290858489910363270339726030600948792130819696929527138184227834287902928100656116790902393429237684431362028637301997905422136218555123673599761070791023042752438903367919693807000044222187491363178455708168377345087029015502302720469345810027339007393591515675422334550843601969833326028537421101389051639016959883732306560059996413233130979279289085273065698596939154284173434073638698474307736683397437851992969248586971363417371119599107359981698739732924395380499495769814815227914605823762149713368980241660337785227146960155186172460068869713793655704635401537731958216513530055704400536560467296971607333971954434078108076995965969558752720127724493530961214545333915214122689547929787104318633262829252168490985038387878732740390367690604666960246891015340196722200899388873222565211060388570281004512224843559333517699732355643988269820093283737953180179924417523624852146719618748372717307591933407832379885195590791366480015416320103310324304660599258431546376202703295349154389952336339835654729803355840445026461837456223703681946442517167536658042326615713116370067489870589408116624352353200161483879908682220962114939064713463914105044032069465812724379144834099421385942939823176555826182147142286919107128298927053291747643813622167458860440861942734537171664454288142981287061705352072885865966999078952790322473956692614022409706641829219294745211924444041178294404795485573161650444361225278789144448324294134805787225279549219313525561117520873679385595430824624993100036490379006718235278773770792952516113837096904506160538246808027903044951540529171814285501970264325500599789604253170878250533699638246086976164287132701879017553156181477925354731997373526530332706724100471309521555898996128210919668374212667809621003102694395550867730155421484518248262252801961755762031936497963702462011583945687532625626776151406016820339926966723510802619126501403129729804599441468914115463807391985247080831283851039841472940727087644301525253859973426155136293928203783717631491130383840734266500795049106885887834970179749649673989711163169965759180309147603112153037509019841787710428121664235337365867200885353442391757270856354486518782675843529624388960820711575396982421530593098097595454512058330889928862429964567578943699426904488155533273851407358036932084827467953877917918612019532958042670807565612234942378938813465266294775097158449797787541613027445296393567608589939118635635193379594347055250326271350706189129639569584214535308042681059139785735259027564956775766392045930460967186319508392582257116407462210188881362990398357214503198065021931574474680378365247995692263598689081616072192966590986108804108528217932940337242545933178627113947526058193517987407332070474106069986987469613725569236530341348677538641218329536586294632785322239964626464707875851158751676094495885399517582697119713687704309525509018661042117641210027271632557795136560194718276510592180952232285533014005882139610007355343899045344788627448935678929577094554994732613794335677451753847001009335454000730969537932724477045654363847137435861975303803685756545934637449130554983703101083652946482598492792484676681663579635818636598017752103562234784702523100769732942695967261084304584633822939278769969439032028012771515869093391635348517550592433796905276548891918616829833480740202196896509453087907424250036251923010294274053222670760822992511745046750158742948971756849376917597237983696212637639392920207300720332362644533858183915548241350601051635259740553416957852126264393840713931297999428191622554199446167823334100536877380713711511621243527080380916034803494304729678189869735278288346017133773632161346639298019292817921937079787277972423100699207151695995428279405179038428959357179259917121118462174714873839417044188925270485191162327877787903595238596598650861104816991785741772379915423768256809078750067132873265238040735393538083212670707463039678432753561436921127079577882480615986867754572355191472166083836692428003348922606203729693913364042595858267084151567746699564519139004254039751625355528381229130530011598274914497017919041571844659592424278727169198037219414422557322653131969693690828686152428089912908639864453429087342792747478032726751393356818832436805719656894472067150731196260948901922394851552941115328122567639739898377723203240187775763729910527586912795932001724279593439853094319155186311835782251297822567486340858024207154187856219004807920618106699941871294319667209709962363498005126634738320614211485805256427836624596461035706276837686216501465853499960293361594902526891507039392302860687547701923111742253385605325982665236740855912571530496681618616496930635539208661553312251239841831064575137552322796219154362255516653449192687651100021792202844787720989620731459326349076301865826812167592183017450806012432048727402769819848055808389104681183564760478697319531131530716832168913007685878108489077060327683484127570032970326661304133747482599813160999548484842132259530156580431731098499323219578604435075552746470846953386178333576745247092101502053536246630611039628872064654328915565582836557065600593122021634978747831965868602229594549949967603187200701749702893204059680315021759191962213135232543667681387394494111867586870074977792838915958996899083683328431743764818605445933126884073141928946420911713421929422404102667153448894161702525799068071612290633368794140221379964805312008089555728700790855830513307505417889401657333399701450932101643393416128783489049651549428294646871069609532180842041897775019363970995155304308837574130404763974587219795001552422603716989197687550237180942332911731005499494875556472290115456243851975118171120715102774560255255986914262429695757362791308949552006572647545766845181868982547123523192461749217941674230629162450275028780852143751503174242660170542493718765854011424378630159994825639376585309718265842169415778132399828730563551983997227511909066938814734220877672024017577601272663458210068457929371663467491793344128664527443565371534809741245308583056798255052250487126471041518124414533190601924722168584033659522143334691236736863385578624197426607997425244870639345511923396639041102361189031414066926491172268841092458494284692200833882825346105533778121213173658987490795675769122479379853035213196098798602176587807083025747175524493362248934918670193141479072843977652151598971086863024066968527195031716879006812446229407833165965264333065311960827096323275966655772914048686880781745138429499833832067500479281407129493082474959365349528749690876437418333180201624053703457761868340577523359383797809307775449701674149552565653504672808785721274179175798605787115187163665801425255403021447463318911339131407226187790230518747629534574159999828533658488391339071702336509363812320154202745910801014741297312631867418894304105637686929512843928252605221019843712667468170415788312185899796365283166580728124380897589638556668265707100425729943697956147418154082631072646358929740447363376010071719555053293780499951224195035551881491321565534813693531050621372557896217407048526145974796107156391803022939415957270671609545502221821928560211750783634944023445637077662609961950713460165939338387117753067673007334113053791715671493930045314751342872575870383099441187192188086063894782681536007979511053166600060787236153507891008894623930531164919988598037532186911838647787832617096881838984013860515216253664868381273142308529964301892764017012647848842780762357865599802093741659617132618818052840422880670688957972277837964920388407481509420203399362403197127588904825101947771810948912592677787028920097502003640463073972862270569622454163836465308579421682721663366117834171892190761479316922917953978376563837425833077970505761248610642132537669777962744697082091618004075872816178965789841256940416733286488201988188242011976969123314020247599323078416651705337906128188639883689356558828315204523146107018038021931998439571896724833507567937889335035178416449351739434318167689800741258929275563062501049214512712079528733135674877851349456120391735368839710522353589919188534987804431610621360212424119158510361231364197915491648253521372409075452105837917725233530132716394718270185835937282840091328158279808270942341712840211995340227151347324967648146982553347697021288271570395202043689923102846572255045882829382377683752577601690364209965297861652049341249408810228050079202819141312510572184425902681413927621084049864051628915835074807802263207248899892444958292782714259040957565337021697541611113168027262017746457881951152588521943121375998509059436331169174360091047181980860307652218555159676514500182981459325713526243416870940478768065829698179232977381789096062966812128286523301253007992790133743224091328119542020419323725117385169879972014909819635382787015033989944615989777382897723400301913466203770511852497301903946222128810006922037212806147773357017537620583075813283389570879103592121590331217762809430504773825298834169956405394417497958396256163354056615992219727728222027034722468158247042909201938124659283089961210917294667032557033522027010621470593123280466237790790355117542699787764245590922340570460123872447787337146790207403708959870154712321882039780426838730311709122813664457750128714436113763839524464280558738778123790234672056955883313770789953127907951549981231163450086863899093015966929803168164088674162011675949560286207335527447131524097015735604942419294282771592480874598855609537112091122001818770951080468930208346578558071762661910175344232060766960157183965709192862832461017190818978639878617556156626232427876226082429144715365602407951870921808803974159546721783622127137119684243408615315696313422145008044291781543001923968470612759409023791122814182575812524807451124073708506656468008396354697348670527231976589045593281636701777082650774100240742276042579531375251427525422436883534348719528475555482572331730994054842485763548178519011655818778800181564284190940642580680656940018892810774126736221694666025675064717097532627207411721536869350275828483105261024584433750229411658227338803973429018312489078842078971256405641179018718653672722753258410404396440039678550938736479683047288568966675349440792768294808881892875537635358178245889096741063024161275916572803124552238618433517555058394899070771610934820043801894707154361854300913368417249734126225284973522599612346352178635172465130499932998252664593127489538009236961452009575457335345982798099791872121022195629007703219880523498877248981286447585220152088218409588827229809724006145975632651546779548475779868958946201993553538571050511822468641820230747460683713543016803166866983376555819456964865581884760150841515521942858315832805498186701297778101528491888479217283319328565172956906285834884168234772606135727691632688148110725858673957682693555705274338542943129246126958540909647473736713617657295350262727456719657309494230052355424751544664271906061194828776046586245761604413888670124608086606820473831275146518121991051812639911028887590177620121808887953528400762747033527277394773135179854580298959654637250157401088351600534585164961524952927059421018670536913691273105993144111678050403720860334815760910856572069154019838564001463408420410442539055637908439430408616760398768867879906060121059821135744967332766494389754146736105612265604883627572328889204455117083841512347133133099023061798648490459018412553473128196925996958918578993503203869312047458824918438334403587294501028662613921072279882229766322507447613283468384947367528598077567889133883430544880366035660859789124729924277872169289424892662951946144994657943835563997571792762830358152252320906157723653808256641453393795797240599339780687272323271042551457678928101823460258680438267109568070107924151169713563758821716320899357248523904187679170844944586733085335871901476646239221761601102335648472851528958328942615502119388340822889948887809429805974860664939624790670801888842022246939641661085429723248703359999399441662404540241122262819717317327971473442228448499967359193176268221791861104000952280597454943516307943339363914949201979291802619790999375574056979619677528114572553155672985796426366794787952289366015796931244313333832556112614695932230523630136432900221048866639525304373401649396681314782284747072832911555891940266408881595924255910242923822733467255606895385028232511033847493551277594907187995812834965460733031864162438473374679024015976408713176531995631627309689705086741661768616360990148947948059819520664741773319607527344983506664300049777671530255642207323994642118998908039071915920500067074744945657671242033309587556976615488922857298115442343399992303885710344783147758625581139781695128341291237003826165815760604698299483019700933444855923326414303349896755725045896914283112865271014239068073161494304516303583650646025198159620679375493340176061157081264677622628044600188066512497780185698079422180014360145058176289334993183079441676800203777652439983307430711520473665856499644456068740896567800924789616095742865840788327372256480368328523192730433019777746073611056615500590287308757517653886264500328450099282223442575994785119037282099935722832835682389939853038594464741352781730979252128822961313150152834618644176632154845090206845183950165108034336788344361581992318457438299243893958616340259837497840158120433044954563865775386847079628148426435002950867774915020026234364064368368156832353343615639424100861944857614274415791061181092325375330988644725003952812852527158899478426082740871455769760199708105992787165587578546873943174469189115451679988709294820260687566185643558798239156410821407456568290658919888622154240888426583675931607853008172498850806624067501525101416018059851676344619660514670502489985458842795357361825459043872099541319926649532256269592264137040279177407635671477098824316459119196748058138949728169958351909675592899558745170398422675319845429348943109081329176892447422558596966680591658064821135655458543445961554819710794267155013036018351456886878167198706021488976203046280225616256850050406762236894243309223376638667004613501827695292817623919718910446118645877512801841933728735583134256963049584734298939625037632241193400867617461891638113769443447888965777020594259114012376524498414159197980318079123190114780187755345599011385867194283963315600775370066835951891999904278249979186894669776655862118686584765600180416636080251186036702780984532995130595210833403893490013508293022361214272957826299405596578073139239748799890554683430621019717368431094188702090573332284749732597354486326383417966573478910031678730519223469044334891467945514162138671264643898845028672519375558238874502350055643235199944471312943404269956339489871375028692487738355614595824561303572079113864348961673189353841459771973688407780526927696151226425120701340034279984944785002753842371928152509072531482023845382036003262319968991257422591991315409992277811645375645388582147959513820824206753698159579632354452545386428885311652939431105251312878366160194011202214478634115261267181296453789631389110656979699343190546004334341234170985555450908258957226899661523661063743658647195284761026369594912293845384980935884202042894612512054708574510076295017330499369047482990879700347610224277828701433509713858233186927728034347004619705799309467817840075652392707355050231215308889187134187972549711711705784099955062675052675052543085883068896860461266861268542636093112773920850918610648266113264732063116572600884370529519843138024314909228759046867092263514938752255637731429229872930572681032310790710792558161054854655155060115512392053319499599969469676924885700358816399162413404794176053013958158891430079361398193254823722139438908549919143080162800675011221626498961618237530689106606781331861636641406172162237739441782713793847351831660009494987026712480468364954596713626098528102042110143809142008840687742862846910102271043956490696298490275168077758296545231023783107653518071639450813757510493296265963917078877386172615348007449464373798355829775684203759153712845493771063927412815296666682264211787116466761183105010137034121997242248460334523170455386832785710672488746406765159129914618709690481353386614421631021418203683667009714619858919680120737434534760157895046415257757106447110372192277732797720337985901333045377278133607463406582286152262324278357885894092723252832855763984729590494802978947611412226578242064613334367723814287702947149118916908194587513479553749243947244516358113795668432782110173327745683770347964202015996373617366302028630917077739737082710764203500595955464847873829067045455609688333175917539646418153909952138637741720004168036487205494284192539706968566010610282924529105564177858002415325988401953226824468145843849797153127090400392137826255622615342143956471724922828891493773614915123008228790052888943585390429589007249619094937165766306914069467903887894457350182880114788809380968244862061317357912726695136590995747123586971046879740374475023079425873578178655518478893227992550210562822960332323922291346033812201448905452840083754939514228475868685135510214006047195281391939793725372937229342015300438245215489017452565493330217079873801712352168019542070288876364603836939160733366963640917843365787714988375320233426965136410534982294106868069567621464194225157853139758069387965225573119500104452681992759880529296824057672103669799470299752837264271524682866032894267498820637105360805134778190486185712708879847481022082268268021837848721544340374861631526783387579118164179391039861502400850235019622045854026879166922729237087094086080263944772473261684305781356421866515936244535512559518651285353386516582127035661849619970072854900381633142759317181494252174209634064796463209537423535479638870266596632827985462517077788397206168984657853068234679427130862089022801884942813514687384640194884197836740370068953858300853960376463521419381720493824420450020228633676054517774211478472300522447344856592010634036468165683164561887255042205287753731867254809693693000129260750342631033556384536528661259758757417976579078200728125190689009510317533725492312398587846425772878559420430767182235032322420323170887846494367821141199123991678246825539710928550242436217475911758648949376943897858281892696422987363421567810804403583817887662024639843833824929732149902343945213157953942984449339075825614563267958473550616878941637163847313314319851367918441513045280261549377183839789704352416678666399384865744003556390938074641720503901610183129089886182850547123580746642216542193177133127266560464642947335850944332130444569091111048508167553593163572289636016153814598656784033010435628874530053575831459501564092722159263397590564996147235580506920827771793671630313465680903365688387545590034561978906999408702399977425458154376926030055136734996189926003203143769992860158657704809978113506475051119877189848583879768512643469094320025838653053167539942500294640625349184417827275275255848360090730707706111746178416905096788223598253640855917116252107904650677605849886302029406284537137131636323337568893786347912034221583699876748203844429174802288122341906361198680980792225729566477442767816348232474438166338520003033021609945147178359218674065896608604185466704165589673052232401430183848604428904907390528189847120022352410095126040362672352351887489069401954864092339495192767309724453444909396507790126450134399959853348153523813850430361703719911284768517139336027687962492303748384991735732925934244212308423989283854704513643360205025498091334488787799912049701727266322696625564723468129861590961634311813725169551665272974941444900401263440379661396126407758996036272720941571665370290803951650176763730729808739944802072365511990036331896677567324194475468602414104482155976050992245557274962922020024040789603540699347898115666366420477317417910168262328609946230263276144455347465655655756563267800891113582345817523780774897949330737344648192211241313935497004463366771421740690746671442841609509211669301024808024804085525988460746340114422487637565084712202006925505758266274632856853454376642749106228130238862362454296663074955477702047345860679953136494214044250962098103834314145666943371989993894887083203160692799444351492503272395900386648446156193382765782813800745016607877522578657623176958987456258306252429025767167979474231489854503315623412932301008634217800005543746187415260068130781237798358539712204676618177867692117982064987456030372659858577565503326740800883714295083831104297784600296299805113556768540696753470478763447944764551715075012223269231062618905698274134707897997572167453839686299730921682561066742717366811381274137681143506269453924109515989129720912275358874562212880046358035280224507521837721080661631444777335517465136432935257757472862998952404581447824014565341279498844630598019310036178135442918544797557509440322093000903803436642808912076065389605172396454542584834588539457175084610655037760283364035456010402925401026970596079716116084917680510229507424937027694623529198793390879516826310337330646473913245614234624904860460168625391887547980545834154696994745313800260235724328066370949144373965629701753948433339243715826946743402906732980998188684988628140514904662795077677379686784938335055084608376986538456916142807178800073026885332238781914568668827399918317827069881941183013783924426381287908563598273491706908965316720961897185020157343626309290505611185895821296929940705221403797126482154640659871499003720123448293743358768754520827233584072934963167035157109971608833998720838067678730212789019038764579015740919033318916917433378028857344785556472540989759437076845922522477866477696721868037203831138636035437993882059664491613526340218374603344686645750623761325386570661964519519709253934939218054824584375546740019429066545887508710930163413732077640017962521612808951011074406973523009106121511329441289927341599371821721831367092901821670125267659174560784288156787842546428178759072486525912513022534731809805947274476144992328334220832757298879257946192684058320813771518140428282218554425846724083598678804413173535390918807649202758057928898210812739709546150819143390872670708251960553454244043218046018743036929395213656534930100583087875692916661626824019597879395470790142858435957288485198285658672026562383209358193013704160346231996776395596758724132201393745530794045720224569992826565254511085890317464368034586101063363315526958154193271938391797627094802096865698614262016597839194893723028642739379621974132325977223844035857333948405176906584195485737976992094439189206891683144768572867230427705086742469170044163847470889311424899453169891220112943568687838715573782140698299427784194549985689343701429395072286794524222769071339658960382692332014983377630669875358693368944942570476728601073666477117556699771271822924976324807061383938224076993858022513384041231126280348030649761482451377983845485178849007423748891770950250425588429220320212978369917136184418420721640306539614174348063341866764797914334409773336269940306567405384953088898184883648836176916212699928080213317546640676780342947824663008755278077566317674820253186776889287303211061255214597365925350979912588380704461069273595932727575559931236786330831166008384799286140097826559653622995690681574986399454756854661530611631371681566362529948220207548789996957366898641568841728559073036335796153547711019474112763713166131759035973840074116435283158562347452361097762181610833933542579332754266687045217515279095142971092934076855260659965836614799621251790612141534722423985615609516046015988561250247546101021973584690247860802973837632638021061425507880581030310172642293551349703208697291233064232853822020658444435660814220670723599673214491010944407238528120563036278002788425588849404521892472212925033201720624501046803478613146144137558559536199681666681154402341418593786683393125848908193041092235606299609988644660702676399355164698269998653179690580930550094598586211949106737562522017446482365299913469010616866561963755469697578469212644717214039800567386123016501766110190779002067657293308851157403842484591562511777067947468133870443717966289257454280286980624886568542389217334301284627269094245836948412957592829148800749343400544385813211850041990273300757052393402333676085328463470386133652902727373756653916632433984971103471012017543236906511761171638609850180073027404260620349044628787496512232965113757338159957075190116186599838496459519659089069197348255184328687354138004233286136162606784674451099910977255991899940094947970316806954955798516648198106207825211934616563818991711009481110505132787427313047087753724993718033366469870517309353504118170076969264296287633028010893338339611058433962387254759554152592865935263241750034440647655118653677256183156249564169152195827553155999827815896857553214773421231770313739993287918521447033976676436420492945358874580853278478467574099415159103640386181996542904821498272036845730789281957647899053185895564203708004287057302724533897105793377922022623771353639419660787167378697547353017114600919645314869236772506231833227414087054050513282610425203039177253310242408602150077894899036485407071633690362995881083493017575001387088448238856752067745234819640288464799835382588112374273374242745979987579410798920347516284746933353150505314501315896163081480314281810527032863409250061591299649720272491108423330614518658805818496917773159332585902935831181948375836218436189071645080273866175172424676629946418470144797567612971651016720665946250688969550700866322448461398099536308442838361844685097136777943171278274009287094342747303658951485198057059075797044607779107245871658947143340339669208538029303256458954353763774355948578325468216227868801818897775253863577895135078873766995459357128808939447817421754916287204035755209447451036759130975854449363288848070675959024154297733035036855119756487011340026581685529577645159835815478412239002838508879817166529734164025092107673353307846542931455252204054665688635433672679558245946371159106968698227129014958330744106950322684890544051632289524613016294711484706368865599980924985876779156213651836007607246752833354752508585497462671182011257308036653698979198479982182425615009308469116716503783591153075002771384493815695073897517187782361432987830232074412629541018316360875129149491931061321763659502235099527141729119835036585433662118002180308921418275233301297071225944167733801715584854617586229017421465832550211917623896871428194820741296712128767220878150842584642256901553743848614597349888195026985982529959057708326440377125869935440045842349580770896498654656546629069095743302117308782389244667374172653860518817599405678101869098572193944477096747885676138055761706674599673698726090025360456942365351466746009463760919119056662133756658275350097997025959943145036971787030339513338521196341504582456828340778636356284995965649160931582886095720174395182194182540016376099339949567334624508342273818099699758280609433795489135500660707435829229752836124088452434485159211137246545322029842051608326789657373933280046887099419886532342097894228538441124401868062987901835181862999404598471188535181887089462177345989883437183323350006836353080160469773337321739041247637036987767741224418372021701892754574963513526870514818833813284457703820649216382923558139761167629368629358004670025149816470488289142937404840316512364350376095817848192260668284960720139908953358284569171571262353346758266111183434306831991775484318609437792113272566687867665192911287907221360689555529464357098494387608489954169463827849919938559878071585727496000239252745120902306321836744946984649772128544967444440881654708909866830428702569618278182660664564487955307959461723375354490597686289606542870782831767897414353058322312318734640615986021713737698245639397183599442523711990314600675974373878986657766185229427242542740347304943568503198826274850256811522814966778297275649584035376176246326768065830768817364197707981862720880512611787853556927225687027681451842527339685758047411473094991055607299139619258143315737814583259828795714297258843742519194754697899106367057225147319928638499239452306690557873320411034602868177800261585982081740573504649133634785782732769279958594873286382563383966806935548287599864279141129675358187897438683921227419394822943137872440064757775378490955567832673905582057803341869677515494585866477726424699556212412619051626140928666567013323255858404195941487340315125375016372534243909551264237812881721229135150429109180227879736922208117233395276709711565459536628145419077163839639246560778400363085731976787068360722976795156106686698906853899195033066049526355617872013838034921027789149548708623710565945464237606878504933331573655599061336327739509451305356199155422459143569211535163277031742296414789967163030542585487401105079474943312966009684958847389925624168944001615238587618472350513338793077354469803327267575388315489551694538965384958730719264175167556311952016841287596876065063595888483737642660571491138195023753828291565330082156359100164542515859633266793344068255090721693159767034405103140404631374205059005600473401499031396646103679491846052143909278610731964776475342044206290453866717359115501760990704188786361231570719122454494696201437273122212706762172627749330718493370193433950479166690869147666781597458776564488197005134000122397674696657482669726433189018900274175038155077136487622122354626236924671185960106948230676130171338846889009512503008817586073466391995497117643444006500191913975803006931022892567852286843777944587415270568716393984832983492483790331930511710279420297489317244476055436719551768398933179997787927231017528838654736948036113081056644198675525707210951675325998833278585820426189916924126887205546361928535191470491189915953145832485589631568503466548599335276414490587776173820207845387640959335928772529037675288406635454206712603190393888522703336512393267459948377750423370918540571151626579777233182655967288126385784092909226756571116580189954766282000662006989650025891792770530652401521817060835501355874074190669434158786355882767007856823065189380532321502581396638072012766083822637371971366565713250512105838580598514571358835438343520047439188685737155219684561499576664266353493499925284236475669039401277422669310766526607604771777570902683493215255930188948309490966097519169391904913502158843402623330771523245004911842275147356779630606632172778765924424799167327895211181739758543474895537460800162109220010173188460762418234357879265874532964124430074422731565346371184985860357667168650933195441615549019436186833436522132255087816016707638523439339230534949435584300218612068034623550995554823108267970672350044878435776778599581017056074522391840879046788194950801875231692089864184478671175147686289444179201281645619362683442613201478054487175832495555002866820970503599535877070582788745437475832847500276958275710052602634940667200089919540281133874738913321309086366212859784597227310295762703558651326252024043078815068427980800766480188742569415931799796747832858803207411255913584372739700668415873972760021296229330045692653297825233906211767947625033895639380745027143516410044925447680073118276670288982830720625038733615039438584843821519281137260353487748559177075393901736876026270366205256465657152832827816380199561904113690266232386160507986758953217673607854448534967637612809461128083456910212604751762055640114347196782173584488238850793517091058836379885791598358294653272508501207581410739074416187192901013242531073150273715847378182563895304873011125355384169212890324876727790863821664930812888609085152920797536076395587569119907184978245371943006773518531528001328221727046648193484125497839327330744718768106724217020794780467893570517756446545286345468978475836665469269687129937101608577221092689044997758220179238652148134829165311664045536712778282345868594050520582812008439073620017300904440664521820133203897367025444745626516261891086991204145744560619836098021251551043018429348410857283055316648817333617954500679284531562791039950217675179335543592333533314597712376785977871955143773114212272372895519288916398835627377599821080712971209354588438650136612730062020443673721515436325515363338620667463354595705718143160341038226329006325522112506695593656145338817577617264423296043478618264712681451271565437201499543963992280118941713941639927114017413903937085221621461771591452439216505945557919531185536736294897175743573312489826294645388810410386058213791789808346625763914216521779352909616740753781647717602011982680497590382234274634936457908861001964807715275866921158421689301523618961566751786693524274614921890725656577048422804874257368241909116555257006308435144062168633681397513304481400604951447900985663618745343581196323368558311119385229198538609145282904724020852969121593312844062285360862070487505209634367109035254713922671361152027642018409983700559624844551035785839496350300997334401113097281415382582653892376538516535404308879637174445455309605481938132479395306896693107183603679673762793463463611595878899809184170378754203130941056695828722508677014421099730045021690111043340187970437929094654184722775976564111526395368010764374923243242815138995055523510103279493894424188633568677972592845379388615462294090535262672735643722073087248525915621913206735544664477276869641444104638182107774611576300949905697392262539144132798733769343270744332147076700682498515041358219329789074510125176817099097795644591916721147270873636859018344087987815106416475563523957996857296833103755797955610699074445861134857704059705265323602540970331372455494424778984013110317560487376347687619435208097577908735050141373622994850678560551814055843784504734721820749801096461454753328621794891462073617996533902999917969813863374614350935283437152725453539247837781303490823430300121974334092888842681017645261699832126019209636152762180200260769509081388064982320384904041015903117336180394228233114626135130183228620149027278579061376110585509754025385067424495918364789289606951930951791542525017407676650600712650812439276284468215459118117912822473681944022964079062945371403348869929493037846468255360895781837777223274630093542487559207970491106248630058287118865193273869352084999742708544090285499523475799860924636066222546756700022720361541064348305340668175272418082625902163686387446308869968256782023466007484602025891688708698606290743291928168863792372083802524727142391230879986345300929154899613860536702247988795338117753909758942379367609023619369016865477445110882805024437543434850116278610275616370999483222097723884649886017809013087207994843419737192858150819163596412664631224655081534923650482554253457092885740932265381550448481412342691627237511035789315390215183136663646680838878706855188265925392347176494695378382867739306984971413469067240183443922117616841028384835985015982407274695182477107777452360217850182542955294879776698770514548822218683812867502663151491569916608721002032693795182653237587477994850456659136468488670161794455975324066174111776694641243789013055870941108212154370888851239848403619725552092584534557391134142002497162581644983292511954029036603138919635299341617773762614657323496522765107234962292752977074443937963034274033990928764154664890102136051930036227912114516681830417911849089155240310835221601785333840301682696958493785640712283780472369143090783289898527085515288202738782156736576894243873706466724883781227093753594007354020225467230105440954667401045256939016562454323391753475217805752136939923468828680055784472076180859664981980531338731155620505589665057478546508216852765882192900373855261315922063571991071592837941132161852161413542008357032614899276790491349663949962503755090367114867757345840415471278399945827453969921968674682955965662368510165606298422336324320685457330702738347795957559765022513407562784130375448074732726913108879124137007662935218790204447542921153769121913285690808606612852938205048878967481778228405382097734435036783655603228091328612357774562706457731459944754245119133162930169292082612745633929188233868723407125735493803061970888893134685603584723572415826237077736597160221626668584641697727091035797706578439255822185286079962917905459504917685514676608171341717962033825763873559246808967056952739941026026348717836972645322794516580551667699039178023013867809825885272446435923763527063925482025206660923863223782051768629927794565991026951355292061886189864415790799593456584326539503933427491548051332932445478546207228261946642882880705900711321508134544591274472533098530458001742634735860292423020028822745758048318243671866791855700940617529660659516623326224881544156157555503379082064334496746316070644618567922843820686492985232893905371952792066943110610449472855677264709705658291833902411300557640883119099545380253179305837985325215209063539649140403493940168740751361147704779103099999477477211867232667958936411592400567197099717675968204103463647506121219897863420130704280337987905589899426139953981361875523640681321580818867193262754639569454322759415955685962360690187514086324122812717598139236314256899401845332529201722869225565808576553492702731460704654361037095330744266122086494962659945465637647672482018384163361423815829558597677443379758874227269832038460798740989725649259287878018120653257321583727031959559111779493753129646657974202809657198439493516134857828832584781029191529587916651572963211211359990784701842736380810945947906554243903526299308955011788953271641862770167961913198079254516296888840239885490085756567784677244526383898652802211081990294690029794940025922575522165263346812175033776706277878777288503535244340100151029200125402202456257333445474810093061165836884101456437401059978428366254669241835198734764164382509947870102962816156873566497115574305656909486900346619501754946693654484213405377757406774247186009682946676703168930142457540210458442724618925775862260662414153041056582635692850584176759691061438827745506295469324695892455236215054170206933185028779944143940729880142281055745942062594794338113717727315880707919252618816265383933646256933643961481397142833021676247079997416001090820966572961592182357395715498180037969178159733315668995334660652939170180348611142838565736206128714117797711703124691150281429010229984820299823299369626772563939178253830114885495976606704877191953885819616218555083406233210289059496813313022941453194024172639438710025237188444044752818997568456455687167026192223774485249621172224075294363009074478260027384291220316535825402472941215179496809943938744623108015715587538048661442632473550874240929187398260984437942546897255241093211401560734157326299980806859338294376559260062305146705297997586902307145055381635312803533230149593486327660395428739870526681242248029244977645851327424582347192905558418006431000859289186284613089196329791795365745755764460639666771358129837592744189448182502815259548399674857099108965465573737916283645957624294753097131569130983558749631237468830221899527023865570846993544260408323338200578229820647547270141467174126984137557284619687005529662663320148059694536749367378167342909790215947580759356329973842333505072498831110475906700883316215661036716724599239827030879649544388971979672457776047030461200680997301693581472053904674708836833293875873914197161157621884182396117748273532226165200700652068697463192201207565824370187742977129128680554445805607460148092161459290236264623689896399587865552457653743348444563289774819463369472808176092700824354949680038313033026496030153168023595096856208442436802630615342796400541906011213089529040191144627486022517695037262482040848065200879419657215559113178553984181124924820373989883445500494726366676771866129360276616544972338858876413063663083466817918910234305405311759535337210133104275214611164551583317056200695330543486962743322676254025681766291786620155281289933856906636056791596572034450548114143919229220868245321063220925311471686898952351295525377222109150148291053510208256223469795784937979261222789203553499294383481425586431203487206078895883344356531668960903313809654818945806679527020598880490186557719624169351758883014660179759208825576578666154684309006549200107208855024626935402991404864148726117736298899274021575038474290745109041593017449653354259392886756532521755131452494550651979367569617314934430586830725329852166080624313817961919609847873935071351874037403705798704244281495252615898316259159332969073661816393233101113886810186173230110039230716695405913626778982148079505053872850718497615532523973653583688286768940414138135695834765459820329980249956380199231916391990668410602759766206088359164359447264973632832491856210879447280151467156523710884913905631917107326514254728913355999125658515521824680664137330956854621883006505332452062760038039489085740262595382516945448703479848251632782542859252264208062671038343553358242934905691788040565571024037454120800607836608838458676771524580992779188424796200731524432341111813102994278545396035043512879162475741474570789843021508466902712908436697149329107210944374838840199845818772976976916542941245042715640300071131457555033104346223948051730666181189857192568789632229237818284984785591774113577437862822823077520748655115400326988721232594765597869661472659311556540078402476322335871585405317881603981636790234278504851527798603651406177766129779687408151953727056982175379637443315766637680195258467837159607634378591307982144443810459490000832993120619058535642807660394584892675642342863259595741162485184284376973549549020927681371935289907705855845506967138978482450584457663946589371686962919248700690351927775497844746286932930770554578638481338861371262416052507391447446214247074761120110883505727199190127290223120373254626397317592844868611808575690381751726664945456478072696466583680458995553340165489346664850830540952461328011034735435392889099768274036128941590560874899335728183408220635355558593983892904916412396092008501409682834263827627473216178652764288304419421417654341213381039617822055485827665638806997373508492499079374020888611760268065360856120088278038134193322168689863799164588920512115405582595359898151384122892800583617803317052324822292666493111280684550775435997850511158065312623277158115343494098755151594125613010753450665381287903307226356273462591550720311382771832137209670944571999645441465127790578561773687904362554981081564173751061245588047702566661675949927911354105401774731311326690888203418040641244681537389670738301105028752088988641351890085436119831739698181423306382862608785685340864782811814125442715469020391382843462301063811882090727904165920890138748304834201825333957520150240161664925959120048140419233031765523070837912909758172021616209765183077195329448684076181918906177040279967828602525558733914315921365085043266061884203329945414304873870796718069790667157578819894726376802595077448977288712860748872783203483457898815455521024708739277314431940518327896538489394989844711929755597538217673331655938716954871401691019840541862564926462638038462204559004839459420228277892175977065201886683953573510860684869665266708813802292357058892357303738436200526303619373400599877603069357360115014264847386554033936309857982443959518151709685401301880587885290832749617506370950525466043730992307331290761278724777427300496552494841179462314762092569761565026952032553652444830528079603863430882245112597757602900667216323830675345353588257780099789569346382297344972688874924873737609679756097047950960106103248576001144364331143521646571601679094916834261365904251586997600668994671127516203492660232071464056658885566248574956930057113983756203032268407823820851280434428797105233849719105786706026564903496669994977560936309377687103345382283123340621161527376060897627643463482639253637919810554294308963070738488428914091897386598374340641830254496708011695705045454162599029596503656740442467040376553241379895243927363831816821779058687280526949300648390623855748454387941983082697059317662077276216915209092000609390972899537993629632766068963739974835787199277947462486594577205899051730263027903784620924404536650620788875156965476168578509278035847541954984668671701392657452307325851087730289502271593213838565926353963446534715584302304595751728219568872115757042223524573814508328380304333761817720410397939754291299722885583753968629621240515896811690327257787687496028399882733496429307857159051499629888452349426540656987842301944345457708712756476954053477780928891286353078106580663982106026067402129194950031380206808826185141600610899445584569646881204876691181587247483165403956100078622901746636117051523430838463385909744416714064063640271318142491885123341554229760370260856404392248423104254685844617138023760235907815720600940346452515857532658185785799834308295660449560598266732934206879573990269507586695244844735000384108825456938735086003774239077876329024875518207615631356965665642180212250605193530507451035903234125299036955460324146303793217131346187745383979956497996381118585103828016847706146596577403859328696243525005197370017871239577081597168873893208016628175134721228102096960234383309516544414374696610248689425551071793871762608639265701956916201699125504021769449874850028035295283438873633794776830675347710691234616376060688246065721439323192467764307838615076566852335131376888786370524772806552137803971542250520820430260497222327933681151542055134663460927645607081175196041207433458812693812628266734522839860302266528354338360560525054068734629101533446442099168582669516097582892633971765766290356382560875719221486916922620729510677508253536230965735070422502689827682396912211935184359028792531987364706887610682803774548760660137599077483599408038550072012872506413185237283929430430247602919046369198829137754402016334147813829416166038694407104392570635453031271145027601086850267904383264415455336024158031712291700502106158697880825419882660630806614410296631531794406095243099847859005386040518486587149573669853338062225495568239094286924752673372358201573657763594565420077896112894151096913091408910482864520491161321573805819883062900391282776967691930725899582532230184357148424680002846031689553659857882294755258719853297761791506040000576301715697506790357304131727703276986037862355221948843245795351175260179505924462364699240740942261800427572952706765297560611208681340037970276861832872457063063065962887790767322902588637974957214332475373011784764433621344635745660165353153583052541244735469737435952925287382569198509300864379673831992200405972340140526216923310275134566631279465342535382582526523383478489616966245419738435747434698633439591081847089320083588411081831655807168467052776304685888220357151336505423225142647547254469742946504806718302892225736082279170670874824564214981513338342238584940275542528398981137990048491204798623321939871860967637320541686028227822945686680950152953598710309473635173847014659030450439266001986321657848990935502345382029455011615424559834602139580839314447959465646142310916437387311497044235657745202438976840744496075512292477354270978105141541381255855737201287190388842315135168146311083116746988020324544454855485583822360034926930738832693241846628591714831134589742474723122638406512266519969918637266703742960564885303154217673852889012994995160913593405198755407842281994213924207959074982765668122743024091938481934943208154010979355745187097587076825744633047271345936579835652833360516019187228942941642759915266253342187064781687297062570127180031678685853605591489730232852063032059598132924809836459122558676344218152738387923277031400287492213570573527136671991631166139758678321048676587423751630601868337481392481925881972061145400813509782755481852810013931438014253438575326821175552569451629779835011641676926299601625300405966949008715950310516279934292183776136641460556952256833891954145325110128516069469588862017536175785911984259441978556873435411600200285032829370561376957362244385582821363119433952356656721482696087639417832372960013769684150014246029682710717534581394878806506149085353702875893504511816034279847925026927029485755015781407312522901461767594971815489953340109171957109148266384719458167373311830753384827581264741018057234462227563236105886987757062264816284401700899450203105929156645283042115331585686503921927034124222082565984498097927517000117347377229122477523547957420935869166201685711605978739476565022909062503526950119254458879457176433819471061947507666431291362173187187479788627676554556880042867845712874496064238942769318805515523598427091756420739873755756686175872077184595335729699703319614821011394879436994498469471264082750451820403151056302720702515185813203834125672069437321236743237520228847041791650460701899129157686697117398928450151200560734693481434407398356012731464503984437513197836776185120816469117838491282573872064242923834935943366101715073780007328635739147593705984109530155525848556450344573817697506808568512981696526830301391664873625126022780030138592104013205417471004846390812034329527587287232880599046384855408224044452324553122451203473260020380511854554141640887907417127973443846280413589619309146654388043901385880581726436483096890553354743925833487579384609771313249112335480782523454931587898304202408116405002163962607221106802232312656822743648829272604143173999568938764260972141343215876679052479029034663833480442603916944115441157181133897968654560912914568690117841594261980843020064237640442834568511950412096879665670884191358655492686685851594705085387868475514768016754937386377911148342395801609346810471921310505643898915379937065679534759064524485042080453764942506165806538149976296866827761439155757236727822285354575913270412101256383919876702478176911765050268897665423568702826764568425591563815960597603322230008040120351306146294639727654155161998055803151389760313030048610962448150024248910727339215246666484814516928455060403695717556773089238079006848314111136037909219820528006803779017222711687009292182636211492777658479024723701127894400393383605903066833230614190611312365496961284219869840696072523327888132513533491150461297031110769423081212239711159454153809561387902593499570682922478865967104843140502058341434647655093578606849959785577945495337767872955627772392760903566264143535699504364701634572382957930578200112197398254522263243414841506301193653709984509815711513911248952733352203457818839809165036566221511200712324849487039539229094982003547823411970222925505659374660459702297914159375627347198420973219347303287923321906451484198742145129590819675589360053630045943709229630044298985216915484346053463769310038954333835042774573151868390164794576164767820881218717998876607200404878875051221883611765386814393954684701913047966418316014257594247766523242990069082325407340197843320975360359725137827073636642949109896136705824873934265166978715986307534898635578764662922441137558426155815803618240578403737044763388885081158937704712763374658624603148643179233732384477220771621844173254621130002435268113145011422668621155957884737819766182335465376245434742599679623660283269910881910014359355324178251021387263409182389093248542188977910889359326344167311591157507181340075253155471334685292097789101027348516203828434179521538373203843227447163442767358318021601463171507930032064630529094325716262052633308022612950275679891982194543258377272876666671081097892518421502074554631845628823984786174940639401370458593672166247080233766945160367523870439243895165359854229140181570710820164735900172170894880462543534347945154040117336031476545535244152353909704609523797109966896909730598645135041369241635626951440522837419612825983421316536250490602323648924254273393307390434814366469037513200209214110069356856315696431703002655658981078117835740746082962539420934225134943439741039934958746373573656156937981081305539404143228963244300115313806280813405734886281598015020714046790830559594464869297001303438822409820687651689563225345417761287410014672389557713846027785924668644035138077553409523376434614219562353508297750094536224523922322300607820147513135484541038301293034051353502024696274446036090955126507824567060631964344088970792328813671371992714598712837415590058348368144909602687821597990350714357686854177054166442579152405397436427405045931230748825902106799896908380177467139938366127245252223608921764134414309740803370061880090651862842548701405428216662595838878077416337453787363745012489115712879237737607737930609889968982799792065263776826960573355829697756427946896309915679039326987694272241931253374492661383120508031925893599292289482695048938014468737039473806176691045700302250513796946768321682602417940123402415437118197096908852107458230324199064933615672780283324309372396997600420179337723516923656034318180858599006232139314403317429024774485905195165326790739898079588837934957626527150855140939511274333961384884779233274354117092081026183303333365557215501286042191190413284674791564303738388094221226418735955382462806089779402574731007917936980358781232140832103470986622488498038867393120634344915600414598308026408585810267284708936758419859047129901630277666713188860525033385325625902093577804173079701343589064905145404308779494978848263586266871095332346025723783973707783758219248693026610799344254090811349532351092650524391991979890510241315656331818996399970744357245736176049677955087903401215114979986768779223151538515099276757889831133367334189788356843610420981264572373675548714146866464228977171360855428063389209366492640235990946496378844402050746048426447732448030855039776386489932940012697590073871002109792606761434292589893711144898908334130565144884569207439388605788606986180719896453114628468541192751031890843363653648465103451719509320566370285034668622131740194863684920469483129410784006474188173462856006346580992480719168969546251458509241498591832551813130783087270125354984547338628325715747617065357380406130819630012309334041959102623303137531067557232287464050945159906884137652492851365823076552258803460310313182973185261284382798093188639794780050086507314444857363771228519395449463313143260698675204471992558811496548600748886216927294329643896641857862945896626875190540210596334918215379846441484700722352768910273073919564615750422889466673878115793024065181432469859964863480798615410475395343066632411218861935344291857782731338691660042063834144593164127012231145872079399231514854222391042250210666831718979526443664032643254328020388382615667115602360431092402439403250343991948314075920631712386444684763923142397465422545708388304256652338400035416507047138469098974150953073001472212077562821055127371715697994729348696885762847733055961884307555732412746890061750402800196468007581275083949010226022200277119735472573607159560244393958751798261298580995643140638097085832003572834987070981883426912813097364406161865756517219753839878032378124081826821402266258463406244785417807650361689441944946411870303470843133562113041462366325831445359982827595936526302474614698837177431691289476567508199479831319700767990193118995011091265424846944416919582580268249845839769975290668755377587728870317303336584315796186685076473948294193780382814948415402128842226212207363150125674325391514538098692296980586246195041627864471150458560581498280234826338841140466346284321918741039224614995798712877727403594647109771188612912317761922701838956511954577862104323908315789959850583912305257228964613455864266083693338967710777653490418685041531068730673152247670030319618894619190380642139958789455813903692469355719075595489982527818496675535883123901775069591736126764558780463281927951119390469572141946031561425914639596083456812787771810169434656911009550237585714186642303860170249655375208588381024938196948597068042561837829849028036196180988850558631377346471258476645377587969451288121979052939778271174243363698045843734956681957279496275899229659802705700853703963229853905947382161016407559426973734591895057931720059441794345717997024462202694285356114341916850221563816433864497307148975608773605370829256084832084928003173020657236796760444158252257084673249559752370293388506086040065819670140253439737763101231396631249438266088238360266688702207199124253640316334940684307226341432438569265724913441571954154898564899376389157736958339751369629129442959272941334595447705214256546051655237914460911129459459059212699514956323507635165994573331312875901912155157416179783549396747400328235140956172335789355652327480775058585075916341241364637666667305775654927660577893544899465552076451223735349597735210267295643149825029649619252097895574068844540542564453467448437141487632022357057341533747505070732718655075668887833002330967995064011503576792862139363857738986993548059901779082649654288514954875670935471897768435693253165167426784353576751407284805789492661334297518488192634894555769703103369748608921422054868820732257697078795254180495555081680324856824435267106660499650269727931058068243224324296210488073413902472628540360259203970349510101560917954430537829492432722180267494126031385137947519233226494213150874170006537474248310459949073245192953504540426612283357564514389964188825423469461399446471303330689003523807611686808345383246760773507482884209524861405291655963751494111565562523375324057281374160318236193271719416428360785125524219741465180304831742194421951988466933670604591411081201497924821314096059798125934080272546330859903359204523422668258792705569835793862340967664178661307014553468718491493529139694113578442675701122426054088481660823334718453574848447216791687637298987618444671341239427532958396084890602491119790562077148638780933864859413689427846526066961837267179180888345938762521729055815624495451286026623922481933390978143641717322952674611965315804963197542818391505527828612503891980352105320172473152001763257618249996180331538767801261671945719923153555531227125620985520378851006155358147680772908820643857102880565406116518376089939223612451077549381023075872851762556593331693920444731972536176937836092540861681766603989988587947552609307105693850614753992722620934406356751558158252756738077561714947765924107431284440242005385305973857709822934711906600739050394539951482257152088359313649680020227415189441507168848866658122762703710872618897560657085922656037494011688660623637136156173661505784131782966354248887379220008737976597127211834490563923362124152602387649853400430197894337692804010325348281330935521530508869528638538255866463738555179254349169195310397990124097198871919741783777605667530013652180837647085724435196676273204026031723853163961528685633265163693530922204590531109132403554191640237436364746430408663346561961299214405716681767852204356815959361471867128161449132614813521291307220358597628882700915794280386858084261236427055715854726200597723707376751412519801723800642435890703015765130803072376157289035789474645777937028256936004516548331034051841315728489080248763204417766714471699834284016388965169353070726589503517470423081293386881514359330651116095590821047667017165690183205027274060045048280656977519987218239108604133480262686928432986755728688728442501767016501869704608703791991988931701587533458473847407191082318606984793580626383586394456159266460835045796795544881141247344431842108208924216277107394400948414775357175248971491018548837669478063873030447497502828831270006477115072172393441069282204920138414034222415846399897626170661006810935119464267358668632482256587333569566274817024939463506731792667407516799064062974810100058866902223413915226838569253125287292796957965104191791511270517661955563308691745258827212256544085074134903392688770859146787076722283569067040214340778094683238432002251671422153930910704585486557173688663714009056463594907913480554732715651463179284372510172287666293579309856099745746419330396243008913414589756606933612565654098242903405400552266112954355447224415300512992042169908241055661363324152523125694475769053473021218685630373713363943468855907911798965528824007666726246493653241515346402680215703442583040747231159544441580508771411441508813312636173709436629588011705608730282074027587333800762418971172630141307646298940667636593916959383974007883425013362482264399127216717185595834202535373806382483932375247184437737442381899168733001939385747959729340351826157683423380334543249363220154159671192227306752942717627660655867686012713944623367713407704126386183997234724654775476948005670979595095735022013020432183397394425151871602123679685370992408579879495830747520229314527763409832898929928089254215780708991930467992725401021072310899721953486694835881272017950970550625003614492542807945699805165087912874677059355542694407984398135296467867847092191198835899740503524336102529481790681381206888972909297114661856480959820468012558811747306235036576726977938407271378901802701043331680685088467501287236327015163634320653191137530155776524182706904477991560045767527242458430226953197479789672916479866220882738886008378197046005974359837575884804636387723192852462538770936421976038781457090090971006012660706270269067035037875194881470039918679529556751471224708264721264360355798314567060973099894232776134904191247044555209666341617491431643550275671554343026282754392610911684151234156060311838850112741556791342580204183975364779383182990105230012589268360541443051283120043104232853372107224863684301292484590451345829144955413503332359893024954775593646529902095801725154700710118793113496287262327223852375741205951294072823847079299288858973578459010481363614219385536502564102675934645300965430027458548015974837786036716474911782513705486673421435042890186267224590920760971858707856899877213341654957736317404009934515593355870920314091874200658702023668519183237049609563656810849645846935412264094410777220412671598176650729871730590090069205975387150201351688942423020823762639789780612867988123203809445551826277935980725743608210059749913670170828891523208690757008257675757178480796253825441459068684028564125334210090981440108416055966216152924733435084351233746714863551384562395919878623225236319641963801204840636982210025120228889607331141145715732538046184598667717830107319703415106376908000584302516861656262698327023970028888061041270942841444976304128721553472907676462740657480438525863184146394463729119484021651845950052262608984460554104247803817045253280021490218349392449269041763370236689852310492629025358434771792037922567890563007793096741415915927407171754590494053857884314850168354460425213612728370791914626742143839282116319587652129530946405959395467396969060736260171730530583189299262849092256259370765524882474104572163263890365785631605746242958118133291608542752589867160861108682713091065118852902061878041923895108928171876427750893121557336613292565037328314364815083581374630791563493446646074838144923009512853388359861163575926049899852538077899011919394774433514647018137705245303725727145583894885599279536974909678432959796546059683851356167829496538629084286045029907049328485962829169942395001319171412247797633673245057367698236620078948385892471389100685528694621355996754018578796667717044944060550645986970785189125064468677853627166415107917205630853205118249035717346717380326685716206505198446617679068644480028571807347360505455825752623672060944977228493152426493954482860592226787954682475672301828267029702415054649047881602373463794996781420684326050048702797759958554773899139881035296288576931518284084087096009508918426265456707686400191072127421369618507460569117929685183026304252280966821392084678330869634075832876664771990468498926339631071032002924341331405906773818212880397474921571187427089709068116024136100529234934089264848623565899535745641825675400718691111464709969077741888916182573160134678752672456632829674997003280824015928970822720280051259541273137464652722353353271627164252011125829420671978143793464049381094496658718256505514307538021845601069737194555998147020840109774217616621673934517114097710149655828147226514524633763233742003166371663392771964681534741998057121673233576453326943186067111459179927646860144028912376041279278202767986670859079859956699155683696300590939157435849900859568715366432643053062316497360340331674430332132976176831137517279532804874697335085896424484357374261054174070357705214074071152045809715182662538762665768138674141937838219945261542807518964582015148490476908197652445730797467974656826297316303593656972848088890121171488142733872423797186337872550507051665599962831944645302953032009228000161647193325767117615415926151461304541735313492524938041429560272695488323241544446131999046671979297257979290050189186499231266592005780280662247992865396415306315688342977822733890556937253611195730012535261136548621674830016405367429273912595917956257110462271703259311492152103437118292089593785338447765040481741074754401378393640304858818837122134328635662061643419406588013901903213808344228273801981109011004809263579377803249800325527476537816220859657995436212909238233555040738874324281952753756867307926620500914326077525792456462092116325523333576001934266889141648185600405237227070031991583680174833484340963716515021318803808760831337941825120661827169537135731673336331904098495498374973549270761437689943463707681664256700975294848868966530750301386536857625441497801065141896639237759102765341858660565748879886297445480157867004442865863068730758508237742616151782028037330250371684492332647776702876164477212954707666400354975942599197623958880453091074507986802087515782169408027367232518973817665943325777142167478574705846536148357422399676372716160108798425726322636229776420908880593690773917104233303956613542365104792925100362156471319154087469184674591302601438408336689971883747056770767128774223404241180027145779014650220069422228396586677700118710491479653412934996800756886943794617104487734586976976158847448563673416687508657618573851222654925251906710982999275949416620569081169173452649687989709458877754347340614462764050618146941132755876550042734813098559858711717555657957669276833186001252756735202049573214454713001763039754266808848092827093458421999952300984438922133110086221121366549923453372160463706639598288806534263492759613698012958245422843287745032720604164938142991343816794331373956705237045945162331825567370463311410191570910169687953133456364307174247682269085542970480137641264861244503051566706102517375194622860736487679712170596509719892509859322527221540339689505748086243844725942986702310500872916299882816976004123934028848813702299275220516689081958633105876317819623853407631267772584323877948131111156062107714400022105447073318794542141236697904552697479075978634668659035991622967743202528351505415334777093992806307429024495807592751624373673429666480480240860748788475976667670908858510796456423942652895714245235282896448777914123053890029807055391324899709625135426434499623615795149240121177350140484403730730844851868159699898861593853917338209189143384339018317012523539625292803650080338388843519317085379422164745813086243285390981332079250924404928418511024778303550788160470699017981532699725176492898616992103489746996397020660200045789753214948466780256369770536309795790018750054190450461000804978692658163660909492319030584465164465629517327527080684459425753168277451666611326161284056794981543043880567479145577229315805039817242973921748199601575462785409298517599777099052062674331856947361522028795560361381103908225216637595575130036785799737660048980532142650247951843694822790566714913005105188970804269792269791891070412964637389773707546279008503840263378673063833980026612767447624756889381259416573018798986266763464957467150217393236075911894096188459993345369713563099945155326438954182215689268322391395868935186393944456001135687945049598716819832615613412685576032532235151241563419796846317332969507174315423334516927377409280153603664133873218450399472649955525276251806167707409534718265209532872383136799758222705082932396854663850648641645310310313345572232629870841055519155811936977398651962435608333430601133842983590026824879507772547103377277531583001335670573816917079750083165169152630915033224861393528949119749981370723579066342641476244879360505313564828304083056760440205522627840298507523039653787510402711422494098606622707614122525058947707251780862548264037264976227078979216668787704663266631897214857281050908974527282482549973173620652837670389164730580099867625626229391838000625791692413018792131050115294489912743139085999531803629386899512740393677601632361635686954875634460355563884769587579126331945345700902078647001123840951654522803565257737266632687067947118256238351719046690389840324410027228486002446690508267802828353239438392743950824608380168305081388312816935983253243255659288716178423688637407961353259679808176544759657651263803098102141758552035487156310314228878140548561720814203449326496145919018132595765926713088411883628150378874719870511465171732373702910966667931346265147748024031781676320893302300179379278073960325397399612299350584119368545050045853802231633036889596433440480265339360476255196029276182056075520940512626470451405935359639162485108027729892385775184919932464071755388367109330558994335621908038077702178135277311179939741116655127797429558104423238113051122570205061809499518995942343011573393462891791869242719799245801257002821768470302972120835963012754905733448570935817103895046872267216584433997942858227132501080766549895437998630318048602452879325210716765752790557671809003195957539531752227681465532977795147356376108170704382160639374205031920809473042707354064367802162270257641994153963564061808179128192338596603895151945229846791609513352171649804711948996830957314902065083142477706807485767771393712977372253635958641743087511474396566081216931678778689322843701418044417896419040333785349691694972385630820062332202643377630594508259026661637724298055292018296984090508034173773269087961943601432997108575728922510081623997185901126797822575108326111126829555168961557231214183136388893270994661862253622707548639912304521631195725038584669524374823687883503898959392191837516593213141416166608845295918065855277934930139274032224955950466341249882994277688670371681164738152031308470755490760085049851290693351428635203046638991261736744593375275715856460728597081263162528069859217523120362116717010048530476376222614258898253945865890123169495105830170087427977278405768670252389892643538192070159830723202716723350788950444737369817678410055937318487326233051338217113196356075400478356220818366384348464897009107355705929627368485305456680125778149228775456397210149043837367770973357818394916232883047772220277824867112166921123224693399397233493198589361073703959192305885877450400006869626513440763052957559364690512526901336698087425013752611969244098853679606151572595088438775881331525894799818719161923140414128116247334958439487040498387907936049565500555727801203344365798561098898339186060781133840934092973678078683693001289135073099215643618801790056349571846005211762433989580616553204707596370949989600512762797325441760247841940775809665100784820608159672044727673332342322646868200446496204789426392139060940403567762109346221411821418085314519300889213026755929284228011330521762309850700975483623131112435893893556525536462723444218887857161266626265925248704285861792382025223518216622928076168166590537408308938298794270482946040433774488142112304204564748393378082864992423697127153058781008818584955575291157292656054034898292878666329045088524989913420166648722847723872372198918854848205062958153757604692462484261474968966233563788261100798530780067749569379417003953762847485772415128657225772612676463197888077456499599662831897291374633812289572022900836334431565392462664976005380940470947520456028618749655973404417174323278964565305100701981658120988533955193480296819471323521194893770027529035892032157272477476368787045536006936922199837574638842370464922810275190083671213393503389905996124232754007143577524392685892646935359063671589131850835133728102326090817490979234012310308487393347471301620275440152049506748415292821477872962732121956705615016815270938925395887396049523816294782133893318432337881791324760108365274375779570059643081866333854141262810226790693913706740077279087629985227575630643238506237934657611631702971332710158898185723510318457193420635568991973136585924296104663232325905723651730217556690121828248447730743611548690766856411920275940432269533353973455487211791594470634924340547959651657579153399569516424848901647388325635590303898762159287948794667560189006096968479942731917166794970404563292154840409788935240835292012109777585117912328379576576148897324326814917294933479934362005461765591735996470664111474887778753752371904191227635908971116209755053805888834542383300049022651310962686466796911508007112864170780822229780252278145247005073009433638083579374763809090974113171458781284651414364888436361501614163359370265029692981442238879794035478275555497454268533307619846690844430250972199503451775660223079411416775641844016954429433360604686482407044181129957301910161285468315191578444423158923296245955596457648452483493681956185906166575231508477057549984851206739570162047235264342799323953149249247454364752015398393847185309312461776536218596211675284975000484316588617777473367510274149332294147669364748764031372326183289848712418119451980909472727733731321261840593575679145984940908087889920764036136314712310340779819338568181913349933050584417696611447597269272537528746205626264001589287037248579814364068422306583995933953812311099043711848739313410877332675443488035870782777770875760259254009904138480204148639348620188301859452869245032661475182091257488156568450440641188895412488277180370998827612973554374288346504234896772868769205194677344745622182389258990552041171725671577685363814584858262130276858621847101592252989698142753495809215443392021788686893003043939823678139665369134191344871851940943729496823180820597377321341435461326211336312333333423962383383656087565153402778446684135808325528449502673635123943715028374802107563795718971441659005564214045124940947076920060805467442403768985563810075928108494382150345297215510665852362348788861666959645343918038575458275396447728715349441744018581749202259597566126154692547018288846926725930842973178294779337472436035310358289095963859056725384426448356138228639021680294174411077782020012064306487768572847356110390946104747112369653740226983217630599324455827996016353590108176160353050322949787844491075380674000965046927699135142152218298693085274600985064560419184458903366457240535465233169852633454859017482916735833074780485431468079389079054655517315236219583934155034347349913077281523078701820249757114388612177874038323370610307690502848053863730295696747579581081463848535137996901138992805167874957151512720476665014910316527309294762664162548947571506120014666748042970394455903487361995426636494776159175533564175154014173087311480718704438861149334093317284845912818705649505159275502970616430020063510819267344124574867059233902867438980906448987311705984233357736282854447545926813449569390203819483570119531796920445894411770001832625126950196718666517577441079848463726479871143759873828786633633718202579968711547386206820070995012044876361339404533869690937740933400454928296915907213184340723888273089751991189083624791942229445164015349106548576614236979026514147340189660056512727376632730713428094200222921182673753872677810749738507599666429609463646133103173519057439421981924896091268121958742550549489447420078505385027392444773110139574298865208331266281163730975340020102065037379714363692253305154313971689571695980647534778553506861908474610335489694032084843183320489830642229139242607723781079660246197622145967295719035885521391277077031313130282264387628644291300337916708983991420758224416675117098580937037730821842560700762207687018707186769469244484559673504297800107612934416765495419664350983648694148722943997447859277766631847832089817043933608223700918761049786193220708710877445010814083824226263338108316666375362813936681759760494696311712841327580334760925826943534177456257929460080533774780940686798633130296210685846088429920384451602717448643439936699572449090960061242433593514647183725717337321066353225605066354238404741957349223436297838892253513845895860144740046891431860896838457147658437411528616144094638488423213907006024846753436519172770568079455950979531275723452343966736858400896102195238027289998434906792831544695821551660353999312451249828695842928628838771976230003926699101696809292861033726681757268923626253732119111617797106007067167133327090053926749367110957022178898719371888435924679609413257720354779333062978351231371107407959401554045541269580583610338425871697551655228632924312096670199515859986325683916850152445288552527032951877904708457914508336977137320129209862230356599775280911144675656136092075182460937350943416058341041705962910941371365213238617684826832327070808892334563254816407759120992233338364955991448960386366818755263297491623409910069950056462468345870313609993342007681577538781465180758314361878008990093489659020921774570674897647418224098016744713830595676853601734999355894701300162328905477792744299576289138596903643692193345283841646818027916344754991790544776349799577873163093106245582531944429459378528671331505044364214552572188543892041672468133020618592221621241532481858207496139280729210493271763653661470167973234269556752073915888387615209532525077496151000136611950619695668941533348610357738788888677429985210695045806448040231596538353819717720356689395249533548706832231938592884174642078293332710845836253954093840748832847659252900646536038343161301820684248520061919142987860390630609063948597990118479037845654733911981508512477666028811287801759223008330369993355497026224678973939598287266657962805509011472804099547348601926861773790801307273785250664839020373659611014965019129654336164773082876510992268452624927828708185316159192861133660388202544111809568968935885316617221563363254755175492130292269851931596296686216909147950108727575955720661570395521054282644285401672618103425248439933967699858339594408252298676866153523281802444579780062171209687795425493607217077704835032743282858503674401788723770916705637651445934100237424475457044990839596966479578375353973180916658609429931753657644429514165986542571875731511061694438036579634276896095647781222251351820322925490747421660830639839216667909930583837871501616274422128548764775763712073468145865798180603994742668627789375955190012900045230157505651177835623890191257910137296232498140584451551611861788160320146503883989051425151486793196929450579068473033792426667818265687535439191884987066994042045229775622623240757737380152973499552511449938162340262833668989400375300419062460960530280875595039960281473493496044965094882817819245956550484839059250353377669829720132668863690333691903723332693204772004742846135311813017516947667306920488711842774162975167107725237116234025048435803476951150115246244497093130010447256812933188530898069007875579057192227012531739171476172843911157621840147948628582302655357531963277652356313095198892942772981131781243692579705163254587919006833392756459744238791975345333512443706146353611272616668968102678862190826781865973833858792358199038418796410389297181112259909803199478151079484033905084926624891334365818364474565628299006169780806237929367696878453762703212617807521050810894640469764937655929895192193836015119852973843111973493223315525207030020138851792228938415142675227668855149331590001322760032350260023748445766329725617840617328580697306686721500892239516804937287222717909227848844288753278916409572753354316538146716431440839704631800639070864823301414734257730432061348470867226054068084742186218682752057653727994362894004909643692010826491846615049314209983169843332362875460339408717676334609459529761585594117586872383117485294274280898375404665256697393705558710938594170851676687438333205563289131906889655106842188903091369578325559375946754559501628502303190180277424929631845017381074163159749331616868378538273589526244207835692296127612528198476733303385208590514326864564734744327095687916320481352943410709107788672368266817811305791689363810807010215487948637487301294545719827307326929863380372436938509430459517008864459562433022786950696788521884044581863316288354234152649137145640029690589855421155020725534466427825412364164789573809510379825162864229244721822080424963088525149295799014242023408965699285647251988699083310334562925351051969976241030558971498675659233262776325085158202453678284024472375106214664209182357023726859019557545341338923369667557474334087273287519038611383432878743918711450762214675158037718504061583463586371973389801632839968312964611538094273247548253854236307579137135082371429548545349042486779420406530385994864340659543126977867688567610093295630235800884524875089706454622473049876073500264934953288340851441650151385051100944010517092849790597618979193423538356474732040673489515542196873079536710365650871136144928188959055754907664912580505370832049482244936544899072649650800441492785644581914072713082041478377125660638878218695804338102859773124342149882606216264254622201477640420337567245985452174261238880447877262057235542245486622103797034632931851659098588845929654811864391247687018008658904908913489766621518396651679457047909249781269837379179568788513241860596510551713433073696624604640476399374877657405960812943889135818592639203686227221275904733638618261878293671581228433772548188826205575574453483160093992188290048579751568554048210802874788478737901339167457776386940502061164808712448992189877109315200641976371141228632800623008604303351589605538691675768317734287860362813224838169976712986441366339083231053648242680097943006672881987598590480743531526615947084772014388195858196650792186288522239689388343956913813022831648047152239030223037797775923883037575664885337522262579276531851405644257974188051309552074039251352307632939754230965033548907870002225542843702923868068000508773196721519759326258997176503767862477780680733209455808342667484356050782021391431168231157425266638625692502887777322107820377724745444092467282920236726547795400874022588867195283135007789723664446403497746190202145741115507788731725306880388030465445917355722704688509455856445966523062706215428371849468046578826120517218659115408391008230609726288951598047459097022972845586916093426742689395616747637843548207755931726855230986095290459842994433151595980387327906472185015886161197219719032565180063476527484382354431424643100963842628609106809244948775829227819526323369315725203929399293042783270067544157449502850421334969693980533030022482896376284276413909511312120132041259969934894942404136366433368544681916312430190127362850183000705124818211633601554766307638364024738503666937980090210410790202269768198839325854911164062921607614138369592863073328024900051310601602081558485927631945734982724550088384715491429545980977747158279234904468384689131934676414185762465303546843790864233727421583299226890545461526305327248339962101328595902353211710594382272154072468729050628471797711536118758513640155181358413663247493523997257642984363647195305648616818401761986156697277380486443304849118054265592228221076965404997388679896341158452197263341967668301943361804856038074383165768799173200437150217535659959385173316445159323763934296320955817678324103422354816703316845952865582339906779367175726202427937233183781428746345572846054112344455787486119310053457161327791092366875160522442281969910894539654752241763445270871454106249041640016528719123990456563346415542385059906202410760358945388714769008448060620906021706271722459734729431208532023168579632649817193507016927144729647165647650918798848009774450807568671145720371119006541119238040508824383620283532895163682791118558291287285229340684708223764526921248011965706461547528059938121115046821654349594565810328855066757511472988726986049498378518815804493573177294882408713452633363173801793037974495970648057366875216691735743202451015578293095276709138359711356231884141090080921679371837023415237901228346052617831519208607581946004242363489334625147426765290836329213850125904228103337761410414736269288020226433947416210995947122380541941930371050107796630305387574370119367976773608665574844445321515735978246183690349507970676255687781641210988688225790922183622576172355872102933341094086580813018207432195020062237692968208236382650464180798832791621276406630882723673904168228673834330691737375598141382089983973851432515226980863405705682345440078196154859751996515760395915697326810202442803822760581680980302541766222834139919856340626001903462844423926540564333829278337591872339184765944574008927932384839975202187700288989042320342060923701838826953113596625413766655114558765854234743918845144414691483927538939871463404850343876566796836365247877360379054751689850074557334806650529327541455200410862071175279831193930873949713366744972389857587651646805799577211217745485586843907331469307156008409860511539457191418691293853276854950891738960334600421216901922787695064971637385965103114846120509952695469529948391955052775365108402168363896580388973690499740997172844482309405405898495765426178718119048398527041399830609895756172172480290445991087868433286781765348763672785496017986319255738478777761997148302311632000817845896655754761296981691888670486149824112315725322503796373744364901701098055481447359597826836040029839306374468706140508316479071879007224372533767249331146854269245719738196688172467257911178881912918721768993878852812928362427867612597696386121147676160594608613148204464876198871282582307122445566627475192330479546546190055334011186240893119729416794576547792166441109352594997699911652396794846545248013281347947159055748421980278263650088462825643216606658890072316893028471472861248869102357656041678035382137430350204297933266879392692452518303011623645038213371983416269231947937679258390312887878601239740607132799517668044074907613810162138831503215120408752929719342691613563163577278081783461284604085559228068850979202060695242723082538149181628281417274163447448201441191831134995362223134986472161268736889854932213127207959523592583635082332301456893388084290226807695561859873734561460877157755204375903731324331920933874152743620268370938289830288479219729034671017818858139691714550038303829201904750292169452686928688460275352914534537876333349868211260882036145008733056322450419842853357132592094932593921617046389765518272468339971455274354939479339861411169110851686928400353007556773193444984304673995291732790404645251931951324034289718427413717464506060675854447198048413059010629198050013729223590678657308238362355904605567839951033719932367304403029778832350311934171569765606245848727122728783092136337957977318038851686551996599461940554243620461272454285581840616474705793750243395656674187490280383665901423696131670845236186171520641018231419207743259234817790843826946541646421429211323526252780525768657713787037299396859004828776690641328028775360381022944970894350662415130544661705627811162373692009939525269346927354819029101031761235128316612362726027435351650335349353976565315577414411502620956323742557300803902684666156928844005063232477643417028568659804821202673634365501132976394943085607495543142005023164150319165487312566849533907874760722159157271501787958115149522243718729020551553528675097107918425561762246306969631514306081530212825556662137008786183324837440906242681100356882952744776667258214590030333100240045003245694504681054312081838848408810502273160698024234044613202570565906644558969714115750284528432472191065399455673941935105010067087531789749028242318187541018059436475033920255785356934873197925001935976311177200487706416934932283555932100459800937559587574805782422410074445332920330526953351252034438170727198706743164491014627531333314294581019415686818248194396948352047775640648414757567001257769458690345964115986834216528527245177745937501504140118456650150128104410267008564090576965160632485082624303339097256821382094360650266084259342638106648372780423101589315354906668937086997223794515623210180316848656161284171606342635414655612247259012831095554257535869813671213273793093522689419020030001379127298030005838586374499133373053814432377771276219565014247977291105952354496198410555091901117488494383097695914914953976755507099755285896787872650801546101389735588755539445151413681146091207477418748299354565566928725547380059865742620888179833700474933853217545939194328908280208707168548935183228281150090667023448244366814641290926526092848102722538296601091693085074214210172037883247888573609346848679049772493368624417752092189723227145291581726574303225968362846851129569212352996282142648926778041773291335668226611552434142134259909378051640965054376840637124527717298527351751536757852266930638280814364433509131600080871423451160260712172161715420837614068026741313751054881289152039776993132408290600123253878349230777235631924810444977125600438230958243642562266337976636004847746484494404029295230165283119034607784239054421031871002342492031734616888515258257284348958101754847888895263935176148213604590438222442520814776958033091992752191256193106973332408298863097666250777058563490760387024666653513706538771045704513225214959311720091950061338841084553110932651463162037589987160371895248271357934506705054387136480959999109421565366076125652239551714686251615119572591044166574892494329014391464121534455686510165891210750973912726986260531847955574774917975487886772302293428000103755756262579308107822009352376282912763339437418040267062250801829946441974290841172260934935346654221451435526369658322245302422014862346171073585554016968935598085319106017827198931705004392969845375321533296381293420076909536695727426757929909117758699327831710197127218801304886664471581565188206617633216327789226356918242262511822389654095958105185359388374475461813311335761132101880999528688225014504909441045475497620205960380291451933843517341304606500817071354404919629661761940177942833304636946968784618122210616759843514425856169436721237721933862069805509491732496582742344862572607460841618513054344583539560010635295195615004457316292735352315977101121647044949962456167343961138874240830531763875754787265363521368721313217189475831380284918584840798849936154419296480223650423313389255127870847546096418645599881431500591361354862825058711126219471248143610513737467408840930248582632469116655878123275122441893474681358365292287389281005300814171937596660020969667145784185332124527397148798799719552375755272037215502169321530020975751684722897032297183671917659501942120953257031082541220115302282690350179163917606722959921830457344085439511288198622566495679973680734624549458457802233005209541097639265102827909999365083061155418296845560961104223556691635954078933380454262252645272410849720425514296232268874015764699418413711154191309888351840242651555933298018265881300108397535838135055500156983574941381316819730513895374188385471002295691168472035835234472506354637648691568340622863187765643252090019602672841188326135063357671121778908116042766782082296689314153252431555946939043148307601996398155300222665783121012229272232358255452673948357279052748698494429767192320154116640375048745275958828294125933314999971315622210738766010352698997624283014219655782824324944435884241345981983514356749185563486627539676187105877457938795086815903518339124993409373306184143497063812944338530718120983691144623699162918065192439446043770816709726788438404910936465140537512751446058960634988376205961660083689499511477726928143293474004732883795682176900829575544117018544014824293091662395188807463472058148924669352501970977849658507687791547321412805034641025191200868260985527619207106643932045341820307272790414112074312337215900258569504718483827419160509795694824369329157370948653964223205196916035987491253705910384582803924141761859643495687787124711904512196365340299262774837383367302250476608638854346027984064822353003525654145646753712980761004605299445341629787258455446080940894793351225272559388062764369256162467150801869791943383436383168017894070616036360958383999687985794902726498695550666274154004578424926265301746379123692386122598106704281491630830512485440007996066586549668847084237051706260895587390024182962901756028438706681203564141242974521418786582542550048051970668562926132372044202637732311907800951943444263597705660107494467649987685649900149735181896910919404319918884840445965275277898665195415462491777902267404100292645220300810918924901435021028038393845209879824146882420803939578111994795302568413478015032007907871781969472553410307343483473362572565750721117758388741724087974092794803342472608879520385075016638474775157876516851904078874738322447434971609046598267367851061213980141299978746801162751210953672779202747434390959918363581084468232218784413520457714135930254500242635600301036882521154062430579975901166688245633183583795262851799042825418268545181315153683124025104876204677505618381468930154021841240112632545784837959846339134095626371296287492426639416937378861751416018725659826535151830921124255469504798944356574197378072277057084492836527858314041455272154951322908225817953191558342514452952221598055963776459232829328565242708621429334668128664506903856596251313037760879009060779876974110464385152963654140021634598986004320682037883421747210960618989770124166620560959071815009755055460690574645705649108387681474717540885265469083609404469824698507525899973233956737328653080389043573828329866525599373621326053107119766298896972199710794549157466022944261518287674178325567553624960495875101415136704183376646977390648016115649915350858805137180713947644656003011996126055200496893808397583910432285523073414306835444442403371550083915854212977253370786647842131836799171148475377196107725426881516863964267095880754975056816266026737911828107685678509597951707416682466103303312975890644357085312932340822163900189684152140100181535643394850741172633628062274799893634053978608809276636968798018213235402337800642821209320625522636009905308359573163432052647536780402058476835209308114897786887188993288271344424457641223643274256298726099959060858343906761714158554758471710582491919763856599524187198316475790321256194557402686476712612953923387533369352481467983758825925446536167478293069092710960498738382241982124875398716449324468780718315981517815970887047185187295955189297745946729260103105299874849615361510637233436322708078094158536577882622549317053049237917406104158802694136765537933158045950950963502879106651844523826762414032992765390385630831381874162784391324147941092755665533841927180753152604552507871847308838352173366779838855734327074273669354752548982215698877830057776024081912654794229988127133555807383231226746075254158135204425934322202500703353587826645246918281651049087044002132931211309287568932749641488229321643016222254516237327371798070242263735559712480095401788102833722814297451578507876811576753687156493720037041411105952863256356941906887959730077411584526121147840673907309891776284602277361416493494169067870682806952057740480078965740560681988385070949339221989270466484703765392286441399727757241010860759803708807862050266797218404818942331222391944811559725286824771818123001455297535152248020914298534706407701394122047226610001646871004305981765870591853665533518370535186233435116834823503938957919739947548512773004280500933098007966299019053990589981558749334287606869998292312109125001750572266350312589848562576033756561292589165995626609808113142028849660084543369138974379217577575794431397326426960305355170048349088215148358013905978202703679179264060608594656204671479444966328892266443510174813804034345442811025330625076097442799294434351059664820134552777645801981075192075652347994381203662480684590561022301017801778062401928338006537914647862019440067618735120530886229263511256554950648705532136315986707674239952123590239159202392624758365771211990414177917092429528759433932567641679680812646924848052084424198114330728049834190618967448815179288734566230687253202083429634298356218891522121202619398043620333582099869602636334586622393454396333266516438789098520700074780445249767998629194147275919038493880652591842254732264877388086814963306492523280606203660775834228191824134448316908506418655293130424361935101388949662572861032108876507473413700873715844933803615068701997300886828524631620934560710110397780423039697281136071550336653983829047145024792711363764529359989889763901146915642871268722594306754414208898769458158953930636009058706847981794507083538526602902360497253356000457502050844663784835633087091597405145423421481639105896692970162802186870867264984973776773927507842950446144192788675679151838468916047910174418903207514512873590943718075821977154286536547167811683545698674163866380067303113259579764859649587774111273009937049879063373728961008282967064558706095329983155550924348949445890758392773693911853169905213592551956288369695179877126443055779939091279286953125660135333858883069920480395043722547671058597431175787123409919356502868303282640436628068021017203338566184369212441977951276799136879368404283132322345823680544807042741317410911932657920563650251021370279443283989891305829706700822993918831233444311968947698506240909307795720135636322237643985016580030214069237287414025675464650976964646123090813139360027425945946678306482217511172440563197453091498707034112849305598539543966616558915542595540770720113074004644393198356845015865410779517008366694354611289952999246407564785989778206900667277294435727439887135503190817500562610848079705863734187595396962259454821489868287337975333914846272027271704060743322853561227934191436152274259677111025777922967248754994815485976813156670249980253443282111892267306226877653246271391958035791076021663436455429367036138448344106354739947980956778449793754164198109971194023710100607420916140278294566412234366534868047128981741939579455756769988603561585391097333193233114462019316078792913823595503376004408258214068045405421268183542439768837045614459876369390347122229323011438053746561366168170378473003530008388234933698174749986503502231650121071324701212130571297920766050960156044355106735465954880196692868126422181097850287944651463148307876725768941202375460172217972026046283350665729005123174277752977151131152521053155420562274090918720187490577017787688242299695899833380142377418280674349714489659923145387828502273274028067946813363148463797239506613214569496433762183699001613609389529752351495460436788310195786729936968464401140307505308180741633320601509379026957330227487216244470362029151494555058759675065849220316333240365142285567504411181452062482243209833108700919580407467665184603449693176165327472943705898562168919965902924073224563857316054355312063153536171727156371745555841029915074643829561049492888785084325517336325030845036772794540892982825988670836452026584440425569321958330894269367470814570126916671815415343715435972311099756906646598388628159214080969993366660115290654612435279510508484922492769113255640398347706648570390814494561078583956712457293084450777165318609889667998667283623619116925658972465774408331403642326296561543847297403606512348219358224715533378519732920102258521392631217918322052274728393331928249747914938589168313933375934356717110236341569021167816846190735968725080548619238116800769700674490170767598261929740222244305376870184170131522536751099818760536113514895209766223014032043866248195065790264677528267181790031195230750472635911159368728673865761671453522559175718927996451254464446597239717595013721253503682212700609335165954191085683977654729804992523047858732498590896205636365360664864006121841673451071019507884101629217690544503229198911020260498410440049672057077768245225855788172066719886356519577333232095557217747505418658640993167048669928816298360095375872245241043660316925164821268231469436785233409925502348325281706249913404861837582567595710465084312553386547478785296555839143965890486642407677605790873307635447692914831957426768549021875759284741999558793192499870760445758983670630907489819165406470027298119560154435203371627955843366047605399266865681659949629311422867082900646013241274987027167932471148993178475691473866280193727316100272220598839450572087888046706265991495100258673688795127715848495931195237828914228851825290786271890850775052840484211263439329812383626086924042240083454620335380765421297389657062440674584855395666794698690581593731898882932644684960764957833415405952875098977821438211784558715837390080902682239533851532765564369536150502049033589379175417811717947232432583200751657450666452621547712553755317361998618293189984279599517005179622412457313131046528765470727161100548669189682048351396588354585085980596881889169587031786450846420672985672746380998726933719505249093937959653111152016105631779654408857704556777447786624116712406910368549447097904775445708873510285613774268207540802604552688699586397924514077085839123891498781665556501174115510549087052631180956504268484029913617338920271272119191061967119381952618294625112112582015070468871978586530206141711109865448106447405121692914641604099746713676743246745087301435840549862298147164794365066773578723979028216041150165551861284393627450616147078039340140001316088162115922028110926070997592420995386635021487662949739449552860987857855458327152527902526370490022917738779945389065138032588601388928316585651973733489264274437335250057137533851776356244755898605640347565550468609023490463866311649756888845816652149019170661222191004737866892023224997704009235968240804749553825389653922998039780502907712904784084127220614329621575456811401293553415878359157012225233919585154667585810761686486854593749572832149012525640394831170852112916422569478936189635514214258545136223745136736536239612481485811853442703361616137708854397553486871061417054510556583267887914492339644064075961118118388762242080413633275587461366149987180584551539587076718232830639048112324500205008677759618492845117056375269451289586513366601935422417504410481869159720423702388390533489407866844207958994504073392836783736115582227166224488741032101260707731575399455848532309235050071123065591178554192242704118230538917170975494310439397726102413842954586415966051081661368814654201396598119317975540881943397047315129933769361923145386417705798567112944284074720721012140400683518739701173832294690791543508020876312491949481025422041572960509852222392909071710725125461628219496842697489789765430753430097845789629410326163764612673798202744425000706864403986399781744965305825018859263128282469366164333797923258360444498474875461556531396496564050225407537098885276562768382320808177238058275657648620306744415817978976896372573077942733495567822261723489328665284001126693550660236716925959611442508104035915399093084469856121820889653399330618949584835087361972838047875710507587623875933825381272435743651875125227786817758966277421030709497000714676956484957724925052327815912544544157127843794461670991890572281270583694955444191903382364316394820334266700212512583305890581146424073704046396398999960910197966706520165043237169665211760374275086580964780416621078546484537409322682398498573920413908469635645439420820103804381990755197056265924128469674500657677357129958091720500764155305387366057457439808234183348781460675087961735169469594560256222939468322397792905841058782226557722290684321907099074569091483708924183978877496885467020492872412786298131434719432881756430320541097555732965969370833799727364733781275049997524803054109614776451345054821932676397610949174932277235519949679198096002217624071804696371374257731142052265907973819626671336680527444311733100751944884412908517757180836423645157212329203346010735650478206610412453634068237707048959672010486762353781663998239605566785442292624040165921780895907273927645493799051828788838185514695450930120780590230185786105805078195775904858301679134194827524934418829058192162116952414496775355396703069581897186473594149037397959725947483866212433028215955297823854298637392513980425478475285859336966919689295036371417827339547875568930411802024161633929888284861620985207954298282224170521808795537334067041987420622623066759081240583183056378794363991617409802993738386113701454046936114485987690433513642208182261467088966613171614521426715173124608920634017184880282401514817724791276771083345856565806485021321275367050890923114470923741301471173536734074328960538748158666584197796281312937002661343595239571570552522539748533089278466871990037147366683101375248873665788405128608317470957668054737080220315403471373719250819008508677645272680097466325584198619827426441404417116421462232472331754823712959368804601727546643102213206377885396032644898977156690881283877969583247319033140802740396657254342264386737172836742494173992212156854962295020424244269767958235124184613045175970508456548370695509640356048978877938138947383645546200548663026414318564749983507381458622619636388209209160928867213187757438688373548404683296938671275580974105711442507494449462878146697356859753841755146289419487775972569284846174094566369958249539998609963291506355412281647307555890432586221738936314636561860359415048229611198909153146512946939868961694618863814410177177208509048183077087752420153810346025112726395757282934673665665370957134032323902806670663805876784086771270259893365045771512032132510572791064766770622100703375750033417179749466512346044664363878902134100991053657797960853700540450856061432932282213736654818047980800191081627243469793136777407963478170610029376937527120291146778132810327927551400970650246881752029150549133864971194311180815816482316778237581314144131923600363543470146409071821931165734126852695313931993319242663183129389312937885531469798622798694123875365398327011985710716594114879749379560430077655144303221407946718636277771298330127666977448690143774670376174897590261009564261708692660946614232095377111075139327503715986767773943253232730966948972817599685419320565948734396662747479241908083913337827262698956591456981787177348781684716262836676231858152365344096976505027429962925239720865885870065568590981401595344292690020925638894300648005647822518257521263584616014332281886139884808583546707146353084972219017664339599896610506734760091307100473462418594012847681191688007290768211893306926376211647557588390197463819318247813734519408838082968695549153221424292757416506589615855253920446986312394966709344970797868854374817327990710120671033603730727727369151939891049343839800420606956763605822361438707751295489166994242262207929670956677597217702059759949497327498137311612304377532805415246854487594441844285839780075604402259512800782539457121803359435541226405250797929204602770833985618074013173565517757542289219527019365891836509020115965493578075422658867009292382977996133093908289129963123312718614802687722958901493830121409487074299243503907581333248600480468682727862048998806043840192485434884228228720249125156754591684948747196788969238102428746137134950194787031414848505281399817004963016176882481014070192271409188236617253202655525209819822396739624062350286464243670744094519115355526481988397993493743258670831660195966968686916209715495821753543091044705651672106853204424127267455016496158087369678894586197098376028494092573174941608581962098343768407619785339604459682107807656807448197134044584858089220856538284310551247080770883508480913309198360131788256306430018496133049925663763593782752398086946111108862569911994417332871647542678377132018602537188654905293468195897599186197142628679727306149558299579469253337184662170575850878296153164846230547179907920160935229923261576328530870477632069203048237141715134242606166598087325884332086296719014567691766831677152106143533280629507015273446460229776233510540486775044386214898783152129158911345428837505333622187626697075953208082743415514838314971454151486061299452229122128933230419264653095842073314800709841148732156692022611988641547260957090680552130330513533733246862330700137980453514502465188206906332729737547583654844757149652340795428475397699412883437873677851563900251668563364851817740524692839814554788078191899837170698440157943183525358030816913187314714509306094246321201874088231345242381663257739907258836582888344676730769620830051899515937176768914439627070073606985836769183963998043131158832272865759137237021833918264057956334871511821200152926995281131578294596256481757631277565047316168830458110100576618315851578347005498361255849924674540865902149907527816203071679899739566798156733267779295903778661605529934695073438199655248140231957653297620278286343747950629452481443628267134775150665837525700689662294356858089927949458927576164628926771723878982045124437179277203803672258135309541073368380888216312839209904676027499971843881071185505790461714750527372952975031981715271646979649420796013714842301692379456040845554957647422030146859050574282099942667190068624054414366467372832138509913458814745021735399854950268207401903706825898406187236736318807860018002627389520012291629058433060888127079919475607918299100420303118187913108805006936930855240871489018341898492528107722493762430998722145925438386247308830058489579351989304290061077705547585246910868219054219864068627545664697908747070144795617220763549829810948701952523253237919558772351563473690673803224018321977507880393501792839126676559410667012045883440828310178733897134942503547776153012489155226005348410284668944870168918913097357060282559873920428593730012981770631965900105517070234674530340091907533507385027555674186387373101836481542071358619743415217340007575711049028700162442739885594644671714312937732850576553165893378504870359183660559500997464175451022870734961553388218234401813935737608805416591686917290177447538398868564889903018768089697609096175876479483495596660483037088043165220634881138045374787669637580746632486808589524344516193421708604174196241605071608177619587596859044231205288401613740164653562510453309882003249978983753638073978697494138598177706522323185940703699502887818622594184476185976510929463921966791777454056666147978074087065814103227493462854604593529678769284472073665532324716498323743654825041903727541927127721808206947100428302098403066322680546582187113849742944420718925526384499551641305919320281481270016603237045852794624236398087823897021395210750922234950278038169868042294928451700087524640924606091401121428569996057695702945995689233420926742637700393963585726319943467721833006214433257632450581831963857911172196555696677157797080497865999914446997922069070269371193990952038777625418561109555821636207843597968952944431657161952284353724677071156969062163045036972744889457401031693833447718054072799083053962645909133932140026330174180493761204493624319204484680016211746703466233412999585492926285129885355385945988060146095065300970612263184927318823180634253643914165381751056875454007213812081538072582582490572793223136433759982534174019019957544593480488420618558494379399605622325543521344306809872269723913523285715713596229393548243788832949427339760815784526655054122460031626297707888332177081474960316594935477341856174925269885287922767739056413465531816094105234716445560571795415865088016467035535147169145862528111266058750058391860972474057562441079109660668154838600002819932370092445549730849393784775216547453021878684584144165902034271083820243980565310936535628014506612557195702543708050242606074588917611255448915798582397940358020100501941613511531904199089212205081800565935495024647772169235141327505210251984393814776407394242806233987536347356406521834327942073216392875301259304175895074044872670640948403091176663221861583658304722203211222042219773134627626920246652796597857660796188749249420673782939625551502102836462410192417722434242749215111674354292762173337984472181128150866511405086871882275084354229220182090003292267581104818876352403454815371378741684240989113319267792838112093069585761164920673661097070081755147014708761256126053680030348621241408335564524542622242884969555614878112793798645082271919714981775693826056684927800771243431004926732173185592251912609876479644963199093087257390859157626942111942086780643692165563637586519216073086750826663906903527806547749514880110245546110124197598198668970606101464575990317704548207758700801727802069641903179470636906815787830540482959499614075000222148000559817369265191493418862235712802406443790338451559010286476860479772125449653497854774013055153561711353688042224648530808221718816937842988468067592811386558655356257323887599962654318094043254526970349635142223779006169604232491296068723474543661523114895579589089158778485941723092128732115216580800781795929175289354776716150474500452206142781109480673291160223366313289179380786284272934685532686371982496567404850386072638198058626391427066212897436521774287935699042831647631856213945424318710693716221952920101791585014332798205153577747059069290501543357844338710243601444243121596976234454687014415251342885432692646947294806120555260231893600852167092410771362556301727522238873614217704235227342334791576717111550848802794785183675402923525520158163394992949429535815287313289314888464100171733407083882048663095565654389147658922625746967321139735943964126453791271546400427542555561347531758347349554893647506322559559684302494159842545347453306823855726401025137972511174631115795420341740657792605392174772066825183118372046227552748648030674953930448138598910535406699380889418894710786362112214567023706970288059988689381321558193259476401497797813028459991088351579891057864881442038239575029579194450850120486226253332672443833099430927447780934880067125801132672967134416623959847884745113758713895482568457765728771145282369896790095022376320982615116084272485899509865603260041375688457873787953312585928381227268847661656322256977093468337078145329913046409581863513653506962272904129709025864392970160248753691429470917261565959223422810736443755454879691406119881204473154675814060313730418424977321568840494813266798876349964014273356926883409854614536279982700222263959280137092996761642083402657156776902145361208799762651539078325279947059709978384417890111864710893129730776099790420922754010472969460841277245346446439518698534898774461262163285215550820689512005051927705750858137730826560468856579535855855378694771998290873852857907808637982284195017591247533016826452888109567435947677933130645328145204652646810252425974778140539800854168657623618959848217782459842343991741343332616591518665821632886496208838931647566947984835133466880366487708295826444529049324150908167295213094903313357067070642162835732674147750933296320297791334256510499555080451385974590708705289492821247620005886499321253864207808124837099346109587975570942117908008131549353363142797066139493520580304084010942397396692326688968174341512326358426564386094691906794963162095512310186869323461665066492351619000097573177433462235347543458578267823418098722510009005398640885182474505181781984522806351865274460896587310789148382295362191089279690392063600369139817033738871868733979515458996348671777879244692173353309331743512095879107185899412647502011249081475198463735800021421284121400032494966343877728251339464979094238722869333228138102355883760997817231577148806459360004985850238794019235130300277659075456902017025668176544669310269124583368185282933101076221979793156695575833295189939188058449404387243794166577879561382214216687585605250275657558358639911295280184359868160265733321707553340881284259401040328461099648623187300152201079976192349918932644264860735808543626561759777483121449255605249197625076364456545997960714867102235738451734608693429753769861110483888462362289891787038896777951617208969993544657907847813852588339600844505182324690956562081062360786682319182912240556428123007825312661985995753240064129399268939380884850882545230181832296343715601586823069368009141550093969336113756853082253419977671002612566241561253638781280744387415329425828620822775318108399411179442525386764956743709803263938233411309698470931782721772044523593993435573255290486733351920087314590008329879684365193279866522818029051415139363000742541488246853052043579395556729673570206135058583474711931946419095957158005739079380572831192850551427691164647254051896302815927102640962191294521233946719677894344660173234225682820821039660438895055873155034421612843021187128446017486732203850020669833619004346780400866018819384114349068859531817747901651302088483119566013661262043176912604142774481735323376295367917964005961343945164424542429308701358138611675748173157110381284117956697704475174527873322893152154090575758016470622700737772072457691074262584710925482729779012192685807705073887864962911156600170188215301790843753625450413654582991568440467819021229243733385182677562850898583597231811834714537835885995369296004050030225915262211922235285742493757229295862012147457723162802315942984355466799793734336387578024250008000108307138515712191268724539640214628260204803051384775622657455099832532027337283435933683284552136386077044938961730265246629291911689657477361194105245697971385526178595981598378149621485695415496966820354768380769237022226893118851848633770490203695394777024717746941611350579832914145186958060904299283306969376701534156537627523715330608459106531206400069687888595969826571572935105694322470971870928829378609826151669095131446456282046217780555838474506782734842508871017264877495190792244742030364502492499739570484890344344409073380110678789191802707858445385702414259423463408760221564354737787437290958793660639150741298676408421158086089280987917160267250908595278184539915455724215362836184721974292437911582326045938176333742418366039744463937050696239211099319849955494159404567554542827472457079278874430370289826736114614886090672451404101032394827827221136800694766263565214180459868193644204506320238456312939085458165953603936910236425890964746118636816259294773836827176993367978719080801861516360305684556336012538288973365836026766586811294543579946300391347561163510799432643066873140423271670419818978952470797358061843422510904936142918717024892179284771016781081067537806864966913884082341019819588725036220050624496536289798537462347190411084901778178916056407578202391046316221628590387040077638553926219489056537396815572200589730679150000095696780434099971882604633244070070328717877583426152085474874824370071360728075692689688247094209359053565769244005962231505734985196461857278806128169387309461591511187353460146742419377703165083903903219982337176280631687806685839140922618194888791139341203596130742714024175279323570016004004960580374975528129861890238380609375907239047488012332176575330959654983202274188686812353976383933979591816047487779085199850257417631626133344316603477057457837797043060280816039165256873833054624495692677186014879203885798943008387414843476797349885978572822042573881475583594011956400830217664261891651406679658700630633154844526375875858773962758147095051661254634104789046788831500518085274114504821545770967894905760245061032978243992501212637304574113481676737029653739055148184500884633734801402965529831499917402888274336532565748752714550707337672794812944595454815118745701889369482163785242777977913805630141009778809395467526201330398180966874478561003088797992335430029423946076550584520967990446825591414995410200286531304924890775569004404694260800709133545460800187238688819314303663780945854050773289261806319475759368353906827411903188422358090236494373129701827089052885010645305456800974884123803721338603864805915165170292192743464598008083709654666380541180684899353409682036493638472737743501547664156300842840421980380991205515728661611694010281552249769059523610998690655395727066421495033616566969498320467411399737592893195642500023192386608044313354832451412268600993825057406544424814842767680598134628619193578995578294287511235872716377285547450886972023191606513790821361511752847009818830225521735288386009325920167498634744400646150226465320523260524405195386579412831542940086580965406916241240529325552546367126320185320111925274895449928058639466378480054190674738909567133882763779447322765289396122016738592844991441678721093482687370010500057480903810719601682791806406455548705572616640500727848849848288969384358302791992934121842539800016144676186213294684367214048715908390423420894224549123346168163073344733422265210312769107085147821361756025827593388837035319694963945318816326759599137316159608128564882499649094840497532761850324376455999277796869128316108230693500349184722341319706338515447195592278338525738776127715070246818781354568727759311608038407421986363152851565092918949103673488186767434830223519910838028763201880964221850360290313737961352549692359737266111089732535208138711571587588368745725914003562010077031985082293159646137848687917625510264882616737633799624004559138199027078966624512466537574335819621819385255460332031262708382690396383777279724700949046843050793827878856955005101888457550485502610066403652317365684670849003641122915282104269386458431055672726805340525792446615436678102027840431354684242990203158470018640408862636406817104231603533586917163058502871460249159289529341124891396899550077188612553021888245657709338149025849598459258378735287762352211307840285985062933920685567186291116658295536153820364108543539749850594595477233077724661493934741897824812759730121124811334497609981740405467788477848163879241586292596741875845695468085250663715360726447095560983808067770506838612699666742796079246362109432163910528402970990936979451237338226274959900005500771601766609799642479660198833301769731402749322059961189082973309905928555236897173643663139452048653264860344523036665074754319428335532396345126118281563058878749810086114903679410068896101368736661945670281969528922667651228140746054052633881857101211402999980024940425282483307429741205940306194659263919189232506383416978754766400327976537478192754713376665386139675340055699942862143140101200187675624147255726222435349119418890807729692672743249989660498879089487816057503422106780546322389739428255369359118607307239776570212082853898640535099834112930696071165540969531172190535660730686792283306341259618209372186034863541398105204467994568835422800944398704479276775095710800995795981542740252508784198487570987925943583201016114291162040781603337347947841681744753807615613098384100287733194967892150341129446995246078754159975962441348329116745124172716954727283795081888888094890952766349340815758996562779494284715702988506694354309549674922478202835433666437859611366341316557552273250778476949235302014520576452049126042610866793061670246395253019284521298287035288814313282261408002918615663476360455947050206595164329482645809929155492030446965073109624510919013806320784088292866684441217920793679080037998654441831548105519610252045104511356354552811078009012606959153451558790308351163747548436305407277726219737858754798193014519945874098429796062900494635902149846906214987439831158055175345869528709925345001313738420226233508497728418986549524795454544799403779582629978184288926561667107584123252833075164437687013795535892715378851031816188535703484325915625936063093357428124301439921293313775140753289050799643098153181218996973075512497602504694748708926923707058932466838575871323337573285271303420477196022850997914510567246990343205849697812418755109226304636580644252783884845608911188373078431054306328558276905031297777745713835201977994953630860481056731098308613369926723954475698668728937992179947790406249295128783335560701392569728368923080589077011615805116513916628715553307057103102382614827506433712477599549242903929133059242066865752542375352281665724446601582895966141179660943729165913613764500516317262339733925376845923974947724215381987982987539665235210103050044176194262462666659706936015403949151572223400865173002175847856119931431449070950391703254401278615653310149344455568980958227974689724749535637342220637597397012912118163693266138410379410198690397249935312525602072891845108095354503267552686594118956681663925543596000087753991770356245172645004242586503509579907676186446948349501651058283330281335173094741353344827762295857698539174187748653891292988180089144158150249605108815732250086591285032144328704121348602517576641588554299179535358187069726570950760620191240046917904544331033720713348991680584818887610806632317133571074556745360488903606661556864651322642940945906323405256119475167493182792972345857047520357871926700655730021296571871656664664596436651708103963456454532747396989236759373132232210230902247287489565932167933923281133135190540894495567096584087060991109168210968826482330757492153958906017403950955016071660082183240511502366237656489131242966692759595138066078721161887440250000776247024410982564399936315423147260938098514129922350080372464883011500863547943698165010888839528930204713720735392859438904479450015649732464404325919777984993790503317684356989858434672055308816694636181506983425766506238444164357726661630879052590464707487276102121935159267220147414063884559602756052784371276720599486215654287721822428917036789027499757641741253737571156628832695240171443235609229196628981254046854950293645351841121296397043038972263533921482534238185646358026130865789817456617047419522127464705849638571351596023132392398869062331619063689029349838576146420221763233076098758958130015350421816007503198780747308291866938565998554977548453888207524722391332379980928225060983529981821755876554757247504026777239962906438636860416005771263365938349251493408053598508365865270464615410751134658302140484564185706186932270747594382551560297198268554825093757134119378302900753715854706793136863803083029609060930846209807775002605634697165410399756900483823305248084251169611303092203877283474304236045501745005231834773789855001760027517960196683649208971735814704270479730551782036231169268599680750557294966974159385246769751309062802230977344745036181520606465648278480971613268912724793218156832091718797306820089506671018517238776126078277189332318151561636155271590638443513597744763986446168962191148307199860394280698302375563771442406843662087551651425331547066349391255571769023292655232237163355235544704868104624604149958447620056312663974502260997610888876174774141678664193327399006929170475676402070761934840689015960090623385350697756018552770498403392551746137424015554136144587948475146636810538208667500973973628903463063822922438146257150467633036083682027639378997046826600951028247811638517867868343412068594710847880859612237703467444969217584788727465757351746023123388419271938513704309371215506663367712665732608453925375997972801879442797164890508614308693562375572245976365612499055768680799331028116635004805698753997465424595727891619476848025529620535348941142978820639944749030594010812152786384527307156768940224690799436962266095115641189759728943460781061189243786923951082465170925799804574511291539725410016954610977150253888162673815175157358271998010673782770036909693786785761011919145658596476663593966453299544647202113302084999159191452352770211676133300275135200360267332548168089710767341641949454690079840684965292317946044466533364637887712403560789664077853906678425055977397675141854177370054851096175174557549791234273727612218667650620621256693299482417503557990575452073176858666099744040331460179295753095396359658348927079790083667139161450146363352861155647978707489494156754094285733260905453147100069626471418510524758892546382260230845112965989806357282732190650811386682937196882410822739371529156795049537272218357673643233224664824966367069931797347386008810354474583672592726020808367966824239485657429204632946000726959502448373860754895484857196184926489502513632753724547100625062671789915181121259476060238282953797670088889643298305009274556304415705973698859870054411690801760868301735410791456945656396983532587632268605359394150723704850459855458910018892566074681215073437182368254320409838381446118471881120709548410200901290718034657919661383248621186749439375253278979418166948806216974792404452099913082842829776623392725931299357869454367603816530565156027328112468949842397569292466062478816585358429041676312464480143777190008236382525866194105689665264959196237155702847027136503673941427404944504044069851649895558236918025679375550751910490958681219217481176813458432585052641983383828496779467376180791787890270269395026733508892975261561554625706048025676969945945521850822504342561653345750797393366241659723859403381476116366563901342921485818245472102154964194101529330831395589256731353991413871021661736421552468977863255637837676973138237514722301737771880023282625602296350761659786254604710041029579660005514621126750281706023143795421818454607211096891999713010828591277844194233572077262002815378417128489628152915335689872155634118823010030994070341821894572097506854072670636736152270682361405991414136976881900652142337329230793608655130516884702766150049221253676748623845022743655734359103869376893121959966098285929042302180091370427254583636541230150196830521525581050246521413549957583361742957914441368005268387571152112051766318304513908123752232804225364167224370164756285416317967633698865773930296405930876584417499387443126743487747855418921523767861308435654872711986198122231656381091046687261873081923963671141454334412468484896491364360650722459162796372938687076945516746342971760807311071483686594854906819106632422461029088996949351588858463024157318563597626923830327064011780426236598380165539947863908766827244861785568496785106044650406703642169530765269147883408472097670220274659414792481660627135659433100009272779687644304496546397347984311467002048189285484414778970576185328429970903805185660129197170815904934959012934097182638211239258490703901247333580690159675665522801844755565121608936238379909156420324973497560216915156887215619765331016640217864046044676863472899801275803903818376699991041537300829417820923247689104800114165024499486831658930831035827693560945965614800233769153073259020043930029825550663546070315175391301240432921571431524705216169543866484431700618985743413326466125570640133554593557924901856404834414857273110806356379274998645328716570660847823746260284197515623340716451634518239634339167206599923530791274173489051093403317868176273538048578561409730802970476308598164718182614542873699446086515079911214031686622818717891359730528492310905270567154985919918217053011520755741653564268243989535616074249766300352206957845658790960436241538239586732182532891394307494831065440329125693983977680983052576295412750299886399445029330260398189240114293542057462729280705163896569342693059166293234597933245281927598754133485783193047486818628202315915403412210424056365619006080991250605532389707037633228434331784701667018473671164813583717053122450700094693747484292191041565530872911169415134612979475321322401412291571858060824193261780727394493714010465210935818014890182160218394015556810534966946098169286942232013672228364176763792840732875272949503321832511279207214314442185821021173360773123832671925844163485342020113830730105430031167590526646011957405022320883711178866207277734277771868822320545089717400453365644114778713693480414515823215491457934083369526725205362750030469078153004939790088978138847557182214741015886629399400576534509847037047971581267108550405188278463580007000730375638339624260746665050174050467243490293980312457222140590409395394995239292019576386242849110196530179845255198944827778688309595116334474824040942433552050127489035643342777513695583036167779314360012978290983683784188866852964399598736640764370464683768907989699699897892390255738544898833894197297645818036047397369662364364322308119423528977781518822961636834999352219843452933159867209106208133355425382533764535955370880199721485703616510833079331718160260104984595111054049256109461347768052509460790600610918492767680336844441163962288758259454232901494701576109101914527654618039001817648680088481285317061801329851433593018567904865964260189113542453360020381130170183024287563477996873819725053135340159668218642189595720867241071619831438414048013193139854748116935694081946599256088567449586847451425433986484295788163449251509350024961337187888629000349810378501187733278661500074630816651504547690937722047519092683591918689925260654666417143970739207382305616232782325964130384788854865333526937545235899783393574055163313041434696607245933592282694342669387255168515483785250976782102381544027476437599083763910970632885227958105154784564820334229552082938003879606100764023994860097571080056623555678257416533871745242423627503846492785784790461641784723408610730321368186690823932636249152028746408712463541592079155255389895320377473092703325978689034042540059451196155040836719501984910367643670241686677001875298790706377972052508660835776550037804046284164392904106782764031277011101668094222557817222182081213491390104659494039261743648941112174799883273657361064483186820664740440568754563493824872276886175795974188012759400785286503780509683048000458521761322112417594383296479067950267736831547277088939294759541244038820827044525642871255850907108145750040790570056384929513721667265992172440498943167131325322257448924912485288194526442285772194285353706072468251407982462399833778305146264461038714714365734143118658082468802926618659775526127037194622372332743153426385526086230139850261984540947796851337292405567178406661524348051071098630361253482857467501649964280859599131415091863739209560747168799297389950898614165923602393603245659948099494213978311145198630886447215496642029697018279218809207015784796684672957600290592940693898825338662412085251967213534697345616171016250287452317828039238027568880557426881254799816935067070014242778344989586735703944444843925958164688296951469880456404550247424309406367996287114747817921623785160151319400894093724889657500213282325837829580621369465981278727852030679262259054242112774797488829518503858951455743651201046925079788140935983409283790612980982363755113536709331327769009663744152352155061535520565427192519707139032979365207520573374880962232606539553337757016763995096040500858108632041222051752982211267041828069648579415174442512419651293958103983751476166799371067098456095570741061025290163492346079532242294556787704694531382126090361401226734005358057864455613147609448592854657651649327613583023970899113172586672311207060733513653677794872852625899217684654545837854496955174604964321154655848546833524910776833002669574058480705690163607172850080882904877232088473043849135844667870240076714704333246675319710325409574833265712172400189172741849044339678254752444323089333099447885348055324899912329418482922571365838027161659534701663146864734780800017470935298909840048597666623884283585767720446112820104419617983213403544908780410851532725121086450075153172335434001168104968968935095278356600614673999608833179762246524937326968434529825340485389029624413444585913556914990409440776573931011003888421095083034129813495343042258806445125009701368946810063001574323216943626524888235946991119190676328558071163352123416879360341378309840571076936449275818486665657377321271195300527233963387665463942633752184249726992667265477294928690258840185143062004625920013942041903532500273418222844365923297776724250778140717699779314364658840074924385302760080011623432526349284472420744929411310178561613780252530755432911188821352214463040333085829990330138140149783884588421703034985127317978179387435620778383096836823507897391997692902100267138833914406661369547486270168440550961691162928228633646552085466446674777766179268551444182740747449058793374643383744024275971098484802253067157674361521763762080306660232043669527051726297198400837606008731069836002657036429444640545755916600293145644616680636919952371113228008865671789749834144821180104897654219183357230427947424398031853361644153368717064730246579714283371105421820806678954503354255862623175115452578969499251669954782288970075880129249256489774766955334541961924322189340622341049797972442354309482509673802269258671003281622991759256855360815929995755394656304260891823766119371737264071104410170267855423989589133102901281290572597322215333222226392856433054789062573456802699625114936461210962803164092778585914407250599388841495259058433951283614921067735351726376951053264947493110622268022422497634947721685617781452334932367962103256944669635119123010021848880411629807119219101268338028177890080788459819950573202290284256498065004205594845262083576206211953317262609853568752155533309485568732584700559413365924978373940543964813246691902111015409137575606547838297261875898131647194937425091585010300106947285253404165105099184220328859472673308160420396868493632001380328674896026957111115430415691806520048728437264843946394190727516017795908169577117785764820399988274085438045882326685512670822312703621292160359944263082815855367380310146838503284288421548649007276878853959824200106834867406409846604627358632073188315670606665792286353240450056892839813540962090741570206252806561205777588312608564616195868024694376756394117682478231866598020377423437819100089182840972182942524187039077012838811703203219778116367635822754384276888489955813112783656105070443820261871956136173978319113332159637468275779000824163511255977127688966127670745929621572371741419878595694202638712013317802497918364576053840916372643558276885673110595345804778920084845036393408756029960264715913095736545342972818346971208482917667668147789959568929418805729984566747870163317595754081446687850449544646043615182322035168417115917276413503575406859487271256261447474147661019130636550757391681541335686705051743338976881398273090758018750744892210255421176818962527225402661573527303459769501973738740853649805774295281715839757406345229406461644232370725195964660955293876739763096117411718944367977673855108523032796048826921827916088738382833495318435888519437709597371157951481677082534189987689922202083989955425945811647840080340477005685020904501178325092232048143351375431186051582811143751014471634884153985777810411678778004947459324898760802334746284023220934622183764647657406076432676346444700103279780578063039751106206583339352930081402442779900318759806767679299934513896449296482050140699667008737326323953430942893845382199610703466731568591012692080468568898523723971219467608506229527617722728029640634039195519459769470852876691947475115777744182567642255975961183220271772541194600574903070983109059150154396203946194556777006421752312558901328405702119401347999534137607367940383698197471749010350793889743532548714763222241040048541390210494170081781718837276068858750366095183740210451358019240901748421335526337792954282665208812345846174901054838972465739213950714566210555696792093816218620371293823596200942243331903928414422853018760532295860870977794088975885017737316162236829664020685682384673809494552901630150576175989565821924679729048000298203736830634574970503321728171361013992260888096479365320444924376073893209125012024484132675813586938506863295568357087189497426762909278152354318458037792078326326830254050302190916331617737769177947493722851157650412946397105546777317029359693374272768093005612095473185706591861821772464821276306446113619496335539119772639186996055764914145697296336042524771046505514690108125642261907490867535595572309680392264542366455336283477021405155873522040333185091855262237128904956389491107575908415892087390375777475212807767170776786934092941483135067365306843901227502059322622709650550154618099832182538284513225895950881825668885384915428108814298681194891298165432805092241806783373461272854676396928190847557923408993413501684974091403270452378712334154139953983188794999541842231668000336287909697248420522022760677924173069260710906260972162897394631594778192507910589614988266625732868123903572515101320847043089391274021302770526335946098846214653680050218518845134877837265902675367751566814187280263927245515385480706414406520921481767812376938742516293366845822287522121862589174066330381492524088497741853381509515497075144357107646250454379607861224344168690096947476980885822027802699046913358047311635737669335665482994030274264046383331429018989900925417708303151896498330130012575704435866482999151427255236291047569321613579430501051463665032764229868152738519638558104143365517420749176421113823531030097069279532635879389216707848804795317860281773230714137668068939818760821089455175964252501056249012682822505119933943298313446836869482289978561274573910890619078338568214830271816573845161509255078596222640328147123446720426405712542469343020390255912011185986985315056835035684212030991527045292303013762509663322589632892497959819756314973551868656400288833987446841650617556144149372138786405770262561305518630769087345703505660242005936182722739520257082819753729705733165062681203074186705330932504483131257086341553129321748228798314201511080706054492058470526749775018084565212024151090027362031516323073487398143948003883108751331656968313214392080160995881796160650385354961465965618068153782469806688221491227589886771518013954221871833958877117485560596164827354319233810650636491517451308308304765648743315938849574936634356730514114001712299412750415144760868307352781442455990175022634492645935965571765490993722531940169317741559743435566558992191223427713908809628597404066244806680385787045886405105414666610442293748723323323267251373411112816013224879549590517188709054236913120078772977190648166025279351532256831206462985421892661620125193507005874797863225277621073478596300559036855068094612593093042484671934845557984314014547037794101689702877960850738393231020070702588417462029361528947451930982320016848171058638517267965480226249509723024128063046077928573777173929587100337763304802050098739115258394080201732896943190023569812294131452215488918124538516172326878761267745012140381828223508541090157557058810602073136123704333277321460874991855209872800905746664432940440338156382097639240574622544756287928336526685894447801350175357978317871916993654434340285511011057849890752652256160631799990148538246218205865763820733827091855465572685591104159707279402422653787019327655992394435571553431602890989212064406268371383945505512479229053632736092020002064928839320480704392138335903425943508697754255375584999408855358800646081669174137360600701007892713995189950603394559077069571962228685258156290490349983954296935795813445669214416674674678835110512930308155180629920412062516608431134715718152349995945390538291098054129683374405720008638869167095535160307285735034208836529226321149593979506622467415984053371299209678302523550156926000907824792586808043107801473593984890195998535585440258712148142663228173425449974130400675556203622237472486648281476683459170949007249917902521958161673159439759520601646633442813587553021539797814423484090698361663915220050963811685641171414751723146060332328151740712007181199488976041745017061286355288753065757344011733919709346520998851115617578016468420130251399822400789621999003076366169070785471778314465052229425362501134189119185450947388379509981510505842066696156729073613838030444966981153255838559383862700474218083734341901196858143535325214195671680805258767940625493831987060566916246833942914769196918207862655840163760633379159618624672910084674958195391271803023026337256520298981417366791867092685853779116480013847420365592390875464703179623831464126193816314123680903158569364762904051131710472309944280074989975030863426516166395330201193292976834854530178966565929219205530879318973174965320178182332865803553187513315659288218573719603800576121720132218865184018824432252382063670354978123585345551589969442185922224145058489597539995452334685683340202681791740523934122783210665481469763630431827186272644466079573739906535284199235890398387454887872754850775477467451952994399029117779925669996831864090168019749032634774938385017886425164969053887406399907508918016058977276439082581361517815259536461753878223993555684465936591386036793922847577856139512752948310355477715506120724507502287415651410635504024616056637235888855653120000933704302206959354039265043274834939291445468652599013677558471555772698582920617994748216880941952687346865918240074163010729817592001718673001282300516429135147776279752504509276481283812083928726074847200289183547052127220841317619591073625928784145497624452734762990203055703108871052751831254767923000893932659708755543457124256425881387933519028463697846931984874911340002008881166491371924940003531394461664306117024272856865564370355087969210432040230841270803151900691071128373438461501927390729562595466364202913490889621073159696945636626900254598307837260861266419453623071059957905348837924395748430098851057985433617097465748377152729846197670664596767439495520532243777046421860234499282932621711880003832856567048537469672220002031568277069170709651960908620578711010858779112331266075947794951675318126238353951752932795253936884246738976721073584875337186407449321975132261757626525549818049493912630494365361287311851708612131869004749967557757783405547128109520102548245571148144117579321699914330942040114710724234206623980833496612425109017083971886540474970250170026314420262260714257400249591283903640482124887969970262008835884294542566335460364330624068925278267418262113072791294992191462386323307683423909317054401379379527585611983960645500979577647066194776718266699732649535588061013084334096859009401916568745903116585199313411062831816233462910263228232012652284221683233187741937192573864884596827598838262206916338259152975889526627043420121563440619331210248161138849040949501344209327364664727283271310702560530573096069714347446166316289803937105838918013209652239763549054550720755742752361067887780355253356887040830110239040398857910610607887569442136701024072545288324152037930438358887643680014606564330774193387679790968273770046982162035560307314721902234521188363366017295529149624708092816547453808601748259759759767057577645871803052398641440793490822419410350679991439449590685838834290904795950333123217209237128759646249362381414647031286574841075561529432234140131064086413668582901086365442700760749073658575131952213492789265564160471542408354979927668652785616720195813860359515395814847619669552713911665954106085859495852726554636435501669201958251041586246620260289313523908130826947930626755001612140774243359199965124149374760444085864797060570159332974376279963614570394188251003747366746188544644979298100115766831031868325001466736357181790486218824900240179617778011103878122275947954980498015580605787188666276262340131973477869053998294950094089115695374767153602001180969325031234672594376445942005582252605458897484895380161195219876115620376659417046991190167681880036951100777570310671566753475695877892610301902926172364824506884468403927179548081608727495980391082190732619710217522147691464416220041519493110522431180750340418923344483638802230223711869568861925775917091096119041336533718532173768185353674160136443763947047310778055523155665475370901541809361368060132492589492299709371221793867795956120152446490146899350619814005577311471605329857707808833822438681531805461935935864804792626102650565241670240467650329676335083973153356491035007435813876563458152293109851386465136177727356298583777141010194432353469920088114375990725083869767457266939827115726305337381651414400727120915857991024767595894477118160577595737762610534624613103322028488757568359410975387644375296749421682210143142051660398182447835708660258906681614845792489089174418333041640113958727240625335235376921395322171810209177469391672410733451421331808300451175260922327394765785593559787595765387593577107705263530458231080101721570736736297300022917489416804725950064172224287682024983838603705011364722461474230979198616310630958350678324576538557347999594163179950944479683712449033329484968708457792514975877080647780261877258740001795755383464240472831118321090914529411908559102718788503121101253592202143561253565657553469849430332457649060397640101003062822096677743985283242697588733328706060804830799140982469521924890021332630939270284922116097369922980191762621569740789600456524288645248896196028316182360372800267905838979103269149896764919931532424294626996068134218646242683541620700293016903842565751975920067080821730614058702414889282344774992470686426614386738562315985621989411436481868084176437488355587746060037288769092102266382758373983643671605646062772959085754840604485538221416698453325938907464048975099835936846326267626916761459687286197344152844562696823132412639018718452876053961587795435347123557576039763410908002908510297019209445198169639528741736341534723642614834078086652557285124678345310254847666737989813814244234392686730502929215785355452159290533925981670052119590726365918149281823633701277901107194213923697268474732583936427086483873667392070088962797600481385266919557400788228564165051133447730250266975659005390982376864245644508106376767540545554614993748240401373350708428695639674523233209814914844889137938831680512930074203729334503100061215211131969962058213550812021967211926271111161116449143519924455452756003065261543124857035138225133787458115778466254974306988429156866141882042288395501507878965786050848799700391202244781841218709438120596420898825298872736020351774222317541114611227256016146463385555041835496938051528868749177865051223609931266038928303781205517616486463869564591899378208954434881531744568356765646185344497561126670602888328941878697679332071628536979129645077933844114807708296229678677029570108531660894176637826845408470401626411279419911640650830518484806838675501404584839839704577965866424613142892110763030865436626767163831686727620813835668416937279623577863487156760755387734998806179763074732139724113444091828750924088332292904139719404463297001120885768794196383912124614883727611001589657902521660704536630416292717882861413934114415084293519232346790711018615730139225007140861187854466788858222231253039838571984479936930413022345883831680336452039880631540004470229146264118045380772255783318685819418559621640640095816309081613201632556157977802641858540594130595706100994294219661517763702585411576146404719485719714722933370045446254609180830368009066129963967904377729583856159228096577729644629521706518787906420337711969593459220392148339743589912553278964871438563560435182152987350033247407661906051347723644458794009854342901274304747777141321609504739603011711091616729104378057867208067407838716455960564011059273731757119181016009400163675899256251260604276577321042997510091132813773083284464012813482293256331161586830073375080914662626760655839721755401543841131695828521197403095443129936076945806638961109733203467366950660208914486911757079118157333343303350044708316659764686117379037932963672383947693211726926836714209826518186496874702257874881595724131031538524976580117563586648340900822770943640146665517890906297938732119165956720670122312928854159883597555959882176091080381346877805111982321756266168916572350399875938045428294769097068308827118370521733620562471634974328482647181315304905580688714981072380100847115591498057370997290753613607570981513295455757932303641342622253113499700925063864030905900027786627363810586758715905112215310231340553515390923344067517006373835807056113248196907026687764337253385994079681943307971313181126521154542741296340495178685047090047305547287043141971892108928942034488611025207518074709785070026532085952662333978540917050291529629778586461460914437008671233117391933299741324003528684827970173419373067659449942742239992486554954381427016346632089143408812054597588387969650517364094110734436063204017085928384983139581678174243748987316403672633010948630113950512248015542444279086071951966601867875990115557461956659666798291070347558004952838455880235665451837503880576769892595381568955186071733584880335640637796444767036614520425202891420100357112602761976589331021659068386934586935321213315382327952239091292160968190078406554686692438506098744170858219888224459992109358138168995283303263300601079462756057128328878992501848320085492918859202997371482761783925781151099459535827256098207234402325379652627391396172426232406792433863397125625681709968333253718162721932704539516557949985739307530354209416622221584165053393267364935639340618266108488749268005566117206500340902009529625700413184199370931030800044382408573385535726082508849906261426400179165253280551243783208577588687463782074941271307970486270257983991509462225257736579982102242922996254902732429260013583770123558282848534669711258127937648004294921776265242585476520187588523759231030091883440530603535696214032022335357158232551127539862068594335182650451252028685878980428979527500116089759042895454787478390666213663443401230954704702118492007366282613978221503643339627941256018609212325767741490243686452930438163018467554174022425423867678924115245509834439890459812987658184960467982553815063161089753279785287284338232288669160748250423083109600911675636414136630101630246827501263085193080776215066836764736293559165030097384866400855814145938108890861239083016603178104540360773828074576026021237002588446781467522589373867842831218217482677366966224545016309741380787132488804024786298212686332272039090490895277313574181900489546455740268230467766244789251718872564151133108586446802760900495808739782986033858113000380904055914065833630669611600312479138803132441408469899244206862990100261006969711912422605706713573127742388594555870096243164423295007677391487638851473040549347447815907975821995951258807219274325084720710441832261134907874578497122066013033604439746027133136042206868278673633233809634644856007822107751538897708491951932850485496700651601278097675888676163246354859323626937575224554618910345601729685575250434768134809274352835013215795537745836263368569175877503445180579075376264786976232169802699934498423051939897008802385530518416330697582488598014058689258976037823233259607120650658721905706209077918145166319068180745659791936812806543587052547341509291528037231515320995676983828199563676780160280659267165954638908490258533193648308569154887987384019130363865261386422286897041267962567786125615061713010626217232238327963550960875428307260748761032561573849432138194796605562419084958652144168927479164823178380449029383143319368225286831541583582841448326006911042781278956587730560415253837166838005969085911392305974807868575542507994697109899824267963628727876424193133971582246788800068777387499875840243834483670501097298284185004275436305454416002303658478904413108313309974219893522054210658890266109099485920547192792706955600162027673075186477580970449431385173590791894058470817401980550781892857402639433540830423892498458543021619930489881049967760385370731336769531518476082884604705597649008369886201067176265111075883152518561184188037850458792018292345944351426130888211051655887145319528823469086253674358851155761205756784359896522836118263300573202746668783518387694603768648219992804381318709072149563352225903968083954746431051477948558970513803938836380400220883015477954831139869256289323342033055689741161109022531214406370021207005892592462730972264970621235446869352283888322923506102286409734923173565734151867211406809662446926822351333112330959829810536047443856424871452081054977181498899881510280948483800222477125374878559278483064280512320960495368782581905105841225323313876928679198634201713665071730121586081784819146682076144087251088853854236419766124027856271166114860714403106072427673703279278362455903675293389591206495560407095998072155473094847965163695260612950059998465443315651326438392234041282401045596055114539168182971703064452773003187515230574700847076760533326758109088338955973660939451012542998008789873561658803120278938409114452591505334411360555416488882348617971807430992729473731693122412405747512738789793143161440925210642544083128636723826949163398349145667267028754600622279377014642082376654519014621453332809251387828647755135192659274572365344211471430160861465060943323301766333439785473620359161285792130530406658182607304465073039060470840003709028880316482517912761200335031282135422770252655868871941821513395730451498901004531172889350995166510997090182508703394821344764655062584549277668872315693425394719132319112318257470784854679722112853148916742700914916733917743158920103559067628549989781295116601891489932632913493993824128104438223531855569310892834210287686422093625653028627696305181811355817957703647528005334572667552142761860619970794172263689586011014865719233495048628470782014079596374680847493612721833082429847588712218826479161695884453403150987750802032696625478792558356221392063537592867835075568188654960871051006861188139423938662472933387563482901976172833070699144896084970391501162814022235960829038302364349433433445521417763958005691597693159477821691143984884027522562823910903710296661045350624787181000337748889416430060679050659676757365944405583861960954675586326178067598010284791632700696394761420718001312858131443666845770405939942376306167530080867105511324782024593026405252640975768646802160174910008050239905183419951860793365580106264331697302937587873874056938842556363065180592234526944737929650353914612407792723386143763925068561532037849536394064054637546579933125798024518630337140192582744052486166760732918471990683048491103685704204798877927665265626984582523414628538856424562220943381400061772612725584083260857169639236830048795753245525257508994384437367915651762196898386563110688357588394224810566154506765375492701203774287658918739563505029080940284815277193928591167971129535073738439434184119894470146536090363824349411500686057861585172859928413283886649263768121160716940429171709815697019273755664218969046440480923614294397404022189081515761692710780544084951604797022362036577082680724775621772287230146323261126454221118877670606421370059324102695701005856122321952268622746478334310779311378504777527517415930852820223214349071704894974742138203024542997982313039308400984511021769364045055459316672741828521076976088066991329059948690539364536210192825533150560715347035951838235273175777092443522571547845936896064237236044895533132387064047052779949137006929375740953404373435937211729485798706708707443669068121848663648053797624910003674309288300900117066770332049104867111189922431529290326007541776407799734167875334572693865361838254192155344716481049369102984919774611791341730206551759453380358296428480698011503248643031921061328486539657641385958694054604403241534819985784570330465529364110868002344653717301356692798138438655916549243775116293564433079762102206157935579718093220491175878681071047743759215287397859795994569157187021690057409592855079492880471268186131731271213040438736294100888396259517921954083890220667655363805835260835707095228895785816859932602879274436849522725077761456490419291965188834730720371524855730830227749730199046080028623273068813063653788979843919102262348357443790448959525999582637220721387740311580182603701129665664277564815866870868638223004889199008901079891192247299427203516961980770366952742937594850503645022228476274220425325730630715810838710463140619612539655131867642594332876720011206954116847522106665504701912040717739389830399256275271056830950202270384354125864307333285457465405928612687441581426063134606255895233307463135819884973627087335063915221585312322480514253210944510557521220805469008585714849221483739931962114549982678350817448758010106049336798462229432731291687749096044034238220577718777987048074530443387645052137390144268025718555440928616014388468440157857044351817801555357572921915105578816688195565016347022745618065026311698069544854340647798905158178874003803790947400282323432549835627504386599316405830292666251144114477517991821338935924777834224767657465902865077746625592966717786148029867089962976226776269522200583637029176643772676345446974972045646336913664076501161886958416120484564669883979421891987939576450592658035862276486900874700491457264629226384610000685873583449492154794577667380123126149973056262293821971675390437934566707055783800057964115333511807037316375246876621862398266522965415569232306228885849810153868016417734866205159118201391900512559824934795407592126789721771358864068568301087555419646852931063886871458850872224733544913652101795484562548797852709585598773496624666638556164061656096326848907865353765318799831905793580016872105939131532923498509858265866404431982597786659172072783026235676437394426636754114609340309505610506158721525834975942458416205819753765832763872066517004418510579140547585153553946380004715468341297602551513147236891227445756406555101050598322990619043455405162919087824595681791423225189216691956205378106963767047037736439302847054189520206000259160307675668276266592903751729405957783803645368373510523719838186588164544485651900423111442742893410725426474012933906239596714420411148889861564813445166282264716858863015199616405755968229890174530745474586968196812349298762253306597843781164755859255868401434191734937168601864210849363077799150810913931143256646016294801008217333074605853036293515976723773743267807189988235273709708156508389763665677805485066976257491113937100932613612056585953850331991091327462150115722382212293334268938132904963235494051629922320641841442696691820648270680855727705734721989664801797496065689671923431930835772202720842464530030524917203064176385014644769507432270317064485496312460060061078144033204805167589095140324646145254774479230778063614726759227432883462041830069512041963992172219269173993318998552072496969574168828207943989227233974616096079165730331307559540494544830719830541585725568798141350767326717279714567864339719492896731544559749864134843418459335025955311436180747705250808745028264953134915651894165867495995197602314339583048351085570490865717932561237196637341004639593752821362830411867993854938399234383473498815089632350920989801695677753214154690587853256613566665878835932414079604355048697211382319996933344748827878213069464445326311404803381572909719990831410875501476693425904981573217743046984905841440174762491608008936979548355282929756120923164176691045060038798979640257596179864119488039461911332100619003421267849957592080197207407820254261152027787140161053144129292687573663228492548563555702838901449036095240645743927574835580275589723400151905062686904617315155985612516441676152995746838679962068353739907704776577753105279927480845026693420932493250391667454646662712623055338339119295389907169462050589615105900624429775999657315662414212228224039616535134457443920081738780230415558222693439201415193187041125631290827559729309859663384692487003452842873187594048220831120291194688014244633893873432646907873594185560650588960862465125982677690329623967913253580397636905617652260717174234496908163299204852504799506114193192527781989568532792890922918541186844814044954750478885598365957334909639554479383792146698253012300794042247788506467893521789308363045234280348449232852428899160958206219750799509087049149086883122940095018706288788844972277155244178430932053466689722874856902951417824607607362497773501416682116848712824189678929364438947787630946803350277368683438461633469341659186181887080413354606087554793470720552460267286714670323730809895558939063328933378471989557449207218763252370558059358631395668749522360315348481983369590011892539222771173930262246234647775616348534689857342240423457052830835241901689106177582463418974619858694511033806827823922513688461677393665083029845994171363232760310993399858202781674255819402222033449912011378220066882373882051585586969336387449901033833347243546297893110535915065341121614545893687039328284794205629872160150741987732902739865584665977247440201221362274333767461119381274395251320520901376372143057096964380862591519803453478537676964640203377384661120684861704825552765900321594348850406921450256780492066288496181777212176093443192403485397802404514686956256865987506520457174760383863024290923234641140665487953907880617130039086301351355723191826622293435975666693889200954361536182514767931038499522669992412574655213860218904169113412376321312484728887000795574864330464769371357179079086862918437306171567639726881901617455876464089888752437983681076366680627414173711767068254968029537296288816061616858627852902849673177165085626308105896009063656648107148340569848366071562101607331518034494410155346788684850894603893115263724971241076993673590890797912455382449940364351722125485020652659063526207537239663541002456837998861388968258321406189655607197621413356544447855284952544029470985606175178452176765961526993824888998183047871025829598099213741504538740970103720122321847421607191460142122231287290618132648725694753563186631349418961277330168505548527303332617609190815736306473153428640661192779558048217513134020316871359509113541685723178712367737058004109423718672987951263222017930783669818872180628328176028140402803646964015207585165422880881036481908751312946412146571358507181073979871604178661170686253257288785534310796667593990718894614641015232612904588997966750463342515923128366608216441850857226047510753638933127143573836337487209680560589429394895762143497142840294309894476247799449293866693268560319943265200941393712855061105936563514345796392768302303045159137151924439168767595035451333100868971179565309437259150065456000912623311842630912794041558443862585695311174911216946431675264238563459354703134130587092520337548067473670874853096207313594253446534644257159421732532248133637783277369726184380117134810785563181916763892545973683754952610285858177928063448117396387662945462834723242137566574233822613001811798812838024036833235936223502312162908030771831121780325160761931807504084327498050315961754597968587035327364894696753810757094646705466389934067439494353444852168209951152650197393839763563406792165355958695385338015429631770559211566187139183570599846816030467888503539970909415711463810839537539066952480216906456319982543755176507437055245893846687645255366938347050590710715588063930611161183363130160881240328481942700715535612128391232134660571328482175508853863441137062757285375597369540361406957295078506062398045661293344442797213511393754894626735736649203174619834394034834266394099366809104777825158549549962072065701783305987421597290813774829769069930771118809550480861592166961550479631441961772480827625073145935965593654449408344928053085389763254813382788444269856862609637801275890116798314912012548080777008738610913338278512367291167057947632296995088034957526805535954836102377854717640194837945840862020879230312232102825754661291146570028960413981737613582436631456570431227534071329842596695717560885939242477938951022086409839862446743013937418872678499973425120345955594703327905869442444376020970863119483338180186197075644145012950784885314462898640379969321933785955199992120519299357251332828604567078781942133437562742136634797000854881648402511198194324459052611387013297078653220131613601733409130036547628282357442055545388026323983138348590807421625772965230578353878862010212446442646155309650871992896428207570409160734474424370125221939974866908101551273075024123345228108014814739095922048069518690238045222083707111857622020583336641449724472481392643427649266539252556876616234912670049378407976162171716316698964100033687263670671220426937688110649384174648735619782161865047065536890678318387420329848980903171274409888649066555906890675652378038800607767080976057454934816589768370012659563309500905049504483000746426022632388679038754015825695722904093193010699425374337023628468905869703430861162042832255669684644392138677958104393307581848502580331411188973229048147911490068975575706199760646850763450030230632530312906759041813830201178611864340118191066949434815519421687288750904470017786718591019209784036604538557800186898758347552270457380923024104878283650190173413349604384426162269754825082856443454748224232134063230856687049054580402248470779210245934680856877285895877825531389366106827054308305056394835096285076005561234709767725763550561304192578789585712304970510321156485974873827671168156315682471590134867478014320776776222841697789717648019483496091328563104869836377589633693111802079700506229055489087505272933740223439691829183247025756677698988129914979416729551424372872212245733693192991437190966152010428306057393331052622341162346002406274995014757152978411399833458755432611675130558079484045163360486197687413685350770333624720064437082645034175843778345178990088760890174870555940589904856125852446874180094372244489079841379953667812106607012552868969954912985528027689515982062732448804664500200275295437795702235529592107085157980649662560755137302295840524900156528054902404967439400860855653431921188532863647068968813472585830027958714366052417560693319741640292884683847789306431704341168000446503178661797450090516791201601834584290715424033332652607654720214241222098107485988300931752479863610893477911927419844922254152159446629740125480212547439754256009427590806247562544810588091582114451786868202221352795237669582773360386852696343708882029840987650958840226369880190141160731066961850657748956191576397826418964499401083570201667466784524226247637437043173790924189427114375982060563888929490567410233364047959106405201146089784558149338257929390428685634388857887721135955735921178963571445320948007103951913287148793552580885324292323903475899177052470014639187851660150201386480779276085619286674713136836886209010096707242143730132209527772851565843440601321829692820352182850144791122557154531861594351438964101102528687044307062211062055587779760740161257051777613257204312165927534248865660379329438212898569253355552745922427071493057221837504837443213577953582238473990046135028180480610714867509368298796924920374957372144779240120485525355054695608351019297680699853357046108150031404495838937782858673591796952898729050622552405740829542656396566105197761639644141833499608551822306599570864959646671161729272748762686354307250907319023242540599994360780153205788121950059755118187128952081143483245595565867156784839821556304830564109883459426245966008103979374026174830316680419106115639199920143553023655375873203910254366734543316235882046447770288993776800490861757091356345373178737116446955301719223323137503408895870547274417484697380816710740254731003201645578197678407789423008315118614330257580737486975409098115091753912479139217595238185838952020508434743715946252547618542426387967638482844953778685008627839437038378459391152147930876748686218800325139036849706731601902861964324424135005834547779725735694453307026485387076339277657184011140873292684457356254945216616065102498865982789648844859507880433117557547395612342964456029294713185126813052170168354594625325176842912113384357499510257561785340744647877191937295326753281774901252568593537054889514158610255643238091220946622049043812019606086784089225272718468256728518756606967043573803205781192443616486058505402811060043284374818010274736891089461527224504460164963748148123263484569254083857937604462070578340699810262364849615237859249216299264860567345631890182864449537482117805253711219369987760420441919850956862369738552021841428255331437658516207359003596880766438672779394469508107393759656253077186543766574062090108860753304908203220092726260643255661792919818736699248582036697302689993747916618060832600986517427762436949645532688463667626980085950755149998967358215781297639463489288305241991751402899472514215806399310149888016219437067220526736217042270067065136846647311390561784821524196715137656141331380151496525529254026204609180420384910579429406914589262989454375301167078987519531439184244292868597472576141446335993674307210654443318037944636490666274212978904493625495110524804460931389820463625402478095310404034370212942546055011824225435643199793259941083779447791191900909559851080799198603538357537456559131210829738125071363788550788768354914730052520337002420795008503881129981528407506552779595956602126528867484822518632248042203065484954639943933074095331433100209251176491827699783560054570537267816249787314890736923990476592268790727925267460617643421677769234258904814682296728019458558904876970617573931634861590806095511534365723272567037903294247142574017458570562977823799715983502125767662921140409139703404451160219905360590382366252873866293888191673460811507076535404887180508382584250311557386757882940323639744847920752153833247435246995098951729560956047171604206256869588241063227282006709339550278962455272990126238165269866248941683383869045594817213785912577557417224835430295931381142345855875611390236898625102018945721388084416966986708729443390651577799162528407731562859295276939652689877940604335016356749281781504122168231773492588412992170452514752913464988289651159043639472686379615576210411292792681766769187645342600043266940489887697960839723469338008429608148802309817516824689280112608412926933174847237730803897316379432413384398202619977452444415757930578633385778447808367130655508886433144173050898601738397532302394750128746120276597600472001550197725882042709134975338540905104596073988874782101350356526770460803779961533257876838080222944461727076723553419967120332663689479380864312707859697452233634489996318069909320913094491069251476029464041202141299986019919609829602904377239830542990822919623513354445496188616702921300813948079750594794212085537771944188170149677189812000054457564925166143209460781577558964331975970029085449880380913447305721184142097764365019791080650841657683782526358252140965581728167613982158475956140897111007783528328166259547404580103855629496498091445771785996516507063945411391920948506056024650526811334194701563960976356740413004564705195629211687974107396932947556686960559643193873939366149204643561325460497256610873230052576377368100678872477559141927300624444964661661280717001608977541599893653271100879199265656055725452169968109486054718663387300207441449532948458471095915625280068331424761649924515676514252068385650680461525883465861833499726756116552839718225216666768953080701094200818389695194110129815327290764478706401578030331665553138214910677612426101224601078033412854038066507682875471388075552371124806241331882977752028297595710685398359101063674849418926075701638472905452186465025313520434352661968636469633532848634289519995236341047497128890224090049676867589042572780656751971534171670701781809360214960618057156557605845519956673514835410289458855639962678067570324772477640321310656119188158597872654356535901659613878202936090528935213049781642805702403340387228100722538646921699298591044751568889025483304977841629596448081200099819374964450486421044290869350309590257049393027725872726934474448644910487404221504639597575094759155608138334116510512127495507961297128999352428116507976149338670675817605205202047186178767810773082937265417841595872288359545309950888571467541237257435110374168382579904062147505743506390727536850288632547363909217844753821640033001187118025858284284371417495621908195552177873024322131072992594596584183830438997067097386123857714426443886889001455838434318950739082225138339795359141425818200196233150697276246010741060824235836600105719247366989397681164774312270215944685362099524200565729291291961357051727996520822775098586644956252252911091158981796131082454783454194933960122549103037891123085080310410593587907136641843598308539943385219414534876135333096769194203186955805127297486191953842813214245070534675984502183533927688391225057764192888909017218520851905236191118551233299064185295796870246634199278589085604050302314742397229505539912407136218747775532540653735185144278820578028941568750231777502240719996630737517269366531365974396964666490161038941824920064113025719116663099517430732040727433912626586604054069632628132824918970087393583743193422593131842902103127020340095136977791773618275665477433754337529550170869549156952989712377358637334155935307143861261665538514100105393197819995748478215522741947746012553090425041034695220931856661622998089040855826933480361290464062954144655146166243320203250730141404394263563940554105921232253334821528938035538800791942488841862810713832610672456378905616249164809605668227812278799915501030794893747944931715745612248618307010831936223468674551566556854290374736539831063843502808910028921682381439140866340843146308715644888446011168287998636751109899127497199739034613629150760894205077055403798040163471155073432892805582142302077958700178682376374563956341348806384732061846835436657880389953013378234130487491472166771308624184727887449860049340720149211314863761265241827486382575962953223562077957652606921298486748109556700173756171295110500405521200207636674483370121034637370862874616203116222465560575825087749756618760827702274580176114640514502074331817105295103147202578640730247783498973032094824596826112634833531122073885288615665485629005869358500068212653641106323066934746755433553959375293039650067118108661014678243056706575774393595962962525067590732017686174926650797374985948272728470480048207643341373604593233817081713191223318248112248601561195446454311211538166264562798081688216431085137954291795710430959488530538169385502568695012461902213892328357725642107883872755607682782619075488393368145447487195610927603573583323855368789620469916063096720823516893950697003338228357903036102737999260360383972189322418103210192446789528183886582835073574683406286271308149478521062940715192396685019621764563177354511597294962093187455378536142364898323618137124391643978552017784591771513392077852706968966954492808551655971977901401687247915002883208450908687388660963857245213156322298661588723227668762366923934828110785153754430017299864002095115413646345494461310818093476819040373948298645383554769684749764714236067237765325679516279213963451102340448442399995225898741116583954809987875069134305663834984208791736143432217379817115425467286551117023323799542106969789960036582101318514840673546855092386154201985047410035124506396732796221351910309516318471996637820298341049130552545781012540182826624485687669142920714347738921396821007196983007072409485970129605168284793059868738384452735920608065989856863201868971873151532575539026275709348115489873462706368462109162684811623146395778862209761338074878367146130913477253507017599972857383616416704109535379529825531219085769779726774663503409141541073282861008484788443307431181013704028941084603498924623183432012793702255054952527107606300688720319469544544773996025059487710737561262430367018317311772625873604053182560378619522447829878103751725810191192934529192773490257673304596705934466774301160572014850241193970077095304530441521734200735555409489927570984166502421756149224433462752468940707959920273788651620020558127930349670128626333412462085743796791563513654585729755020124413289620680787324355096964867686490683658768882586535128729603154312604357043711183849260860503285498692956788657267778448170625623957599376326418262846429378209126886036678468082054209266795156216992062443551576909927691880653929542023946454603951952266258875698943774466825597127451275119337744277539988617500805822294616816661435017034109384508400780390097756597482999656466979425936016517162196384900519431885107630747496810624017698083090148833570818664125330820971644917849922599053831232192127448663897583822225158441732502800231869577657518729775741844723827757240544771115803613291438914001111164477971113512752578975980420196633238407311867637722331308399456723489553562897639456824329893558690391287211891774488188058382362649756846690541480807472268995639147678091323356650343015149057427113654665593594105759752376026875298543921524569671146581117128315510418234178098408587707465220256854132909780919439080755941220172419281987780755993013200050035703973410795072642816034771674352369310820401453616129178084525756008703399329211401990583875050401204294315112180654325236783222690917692349921840441935888325012672508650389010524711157114700916493098009490127368813471704310824915767753649955969785171345339962592671156390697643247832187928783459146920365427496579325074946756016803797399188177207111084812799765470888611073732424709393483516157263298560464266643645473461983811226805245526101407977968369960127912788897660106185644742395506231808499501049123503652117544850744739463861896124172726537625196093526507358523633295772755112782879285357163935911838799119850863118404957561704107844048340433410797441528258555111099797610904459627801571053759102934335810506827587951389935200865017763005840135707358181172944089804203165290659975332507413693104702086042329382874632247374501006817501359805120329397021795506353314646306127526344276348742591213164137662104366710887169313940810997870669430021055080350254757644775875386369314815377524868810904586856948845740307454793968974175893960628269630622382012643373260446555372086045538260708443354143438060662944623728144818719590388948296587285731268416092558545565628912215086913916806985084575620145198918392601230005393162974741494041384985737220700065342290136884663639490681460380047096499632822161563033097722541394999297097840741964676328240961541908480998227864053078885167212841473060447842541561751712645201961121158689959276960743504987684497254938033300259343409015362108856317905033766320957897415404079740923275088793263346839581477804331957435179734005378028797086450661551989749097968861913173585902829671363365520874474916838042811948503593872868495867458545091935481551954217565452364517574336547697459423586371384700090259197968811019217396966351516038887518357224848796461769811720261584051454733459665896184484448759048974645017764503415843393315564222688762845203700638806440653534238011058052388987887460243201124726735773460503903411630918626530071360496641170538513121784080648521288380988957202515533255960889483524883714870789895412946626350374986430427405623483155177084381659378849737682204076794426187663190147240370580476746684914364755838046630121106077228512590995965632673962431518035434242221431739569815311969719433911530567177631608596970517766930297014187196015939849264168924593865966488360583439074546899378017115534561098590556680556674532534064635806873040998987177797387695852365678246333723399571019708179647963692865297373776668762420963805366843635511320911140759059492299408624859778370480886509690320158464761566289798032938606072291606269214501718224078757936382411546045153626791949195360120491616122684720300998910843208867393247900152692431392038712738049498798649458079564292263726344220443791663847106078241958202012102885811691230526736039805723858359935955262461414063740361389461465770543845543508284001311940465908456988640688995413978287208002089677594937942566234663150188342174460997973544330784020072092743425706134636267545936043804778362505216387341447996445183859480173984952175383435094002088435804923448251082658075669910178490543457340814616588731543064680898849110948277617320283798036310636694546704120546112172519359681024820138418089605105822379441245905398926332580871701241533413257825228651347191964508854372448578544915199925169597921873581590297804125437690635062136512940043259630299876405897376602650930296895136606377789664175588076752499281182618879609855682156312320192284421107506210364004000435955445421000462713191608133654664908878102309816477519487765233326583098793178171803689201354855900562981840158490478876800758715895644030922114373327446293214479306724579876729095192425452165348000219690170736973137794688757272282227132135064204815583706756565820710171751024495382487387883871775564946106074497681067911890156307773741745548046773709821623647522516330172614845653282259896475961803654682424127546101814801712179139599038568328431024618917296104779736046634865904340270040153397691323792089369163946503264846385774811820912741869733286652533418867974083361551782310079958513206835267349675642154075771352414803622683683325892707335422604356781946857479234225639267433731366687107253696868653204415891760661134300047113323662036682540200002027878102850708267478382668858077619417504191335267012606903363331920816306116592462514397588459390795876908874858424032544394257404698321449244724238092795491448035445402376867871601139814166631131005157250664763623992434941009059453749719151603346182799636756263473580670755812724462605313905715763935651947409912759753083453403863145621403531497064924548348669471631266883576713605920221321384101800404624214385075119508321259303444126712575100745122856309253878134391014848928079851251419990626138021585335677813997249464710664215046215975508375688581723392124598738868209007006649345991380762544392307758653688597697380163248759133099513610437500942479934445805496836142047257831605218000322425202396249620427384970085743018015445059764166440563884681949424710286786678869321132080125503976604479371428016711074577559676667582628100457950061461823845084221929283951509848512107034065047582431082197370809392084028795888922720724664968134111829184672626855264823288403867126506101019432042375705253461198488631383103213360529178893924250369064457952368198744400240958389457510896089834539694162404358961794059937812687204186079497184417563459660761630775741169789184983820569722385349361057197192222597891299967105801172758970902169443105590171185575681661174682710137340766894161552512789180957299002804090906315564374209813863937282131473287960027852945644833774238797515378963560352888909194023192039864398011182391909509420244306008244877046694152136510805107608784644052192824272305215611894190119464954249487884528988775503683011990192282114799331694739859789072498805760262769520482916824964958822220711264382418126905440405827172623440235898802010549320092290765306740959467745620104019899996293605202531171128720172322103119708073801532899773804404336984559660416920389660284907262405581289560158277563634463910600989860084545464634963729075456192808182007760232786594707659978813488858094040391855600637333248935580321964896300386586276396112460361480387937680376107585291344674083364431437037074635657638237172751059211922049282178512729876914004419073889880880169497870187172535459574491411620891098751748499474865696320765902680316182792174114281725878066306778137931739593217717966179669802614325975667966869500363018588552281325425367162010992393099314861918989344522881362986932430491247215435548490658401092057180336967236704517846232279086073622084788273744639609871761365386939896225250330430223376033431922059607418366055497063247101509150083119505756275842128627767888851339497078742126454107497644199080388501293779799480848466294603689942668918085877783178482656504144926424872325223086538425505292431460710869348678183794810342861898338723527598735111750574757754319643912301462670803284348292781151864501073994510549553211249246072571754138429978027942610252091450468467357444877014425725925415222385605136037316341369964875214717330755345638642101903302302725091127303876916561835212028931995050833336010518191976093104237332099940318830199111084001127312734206999199193941153477189546568478220150064608964692856525796110336443077342761130560108377832389239070573364392988740285464366094776440688297165396840884530447546922681926880886068563593501993054839108028245754806111770616820615160976198525369844597161942381623774808153734325200248099316293451605343277225881815149090327933135950620847370531160048400952962922614858768229915586036217904532927973296969587215388266587030520152026452956033643678697983797333198350664222160773375091655611291301452104681848175175296379713175639088113957066619148579272839577183533600299841979756965655205155652723529169901670108192249280556745349867856595254641557177806612598434575719621461240449134917848897736878154212094321990089061921253438690460987379289695753447330855428575237443286214088249958038288937514738386726812669202180603841007526699705984185844960765394002021513911652308854552208429477528601685994302861654640961800695316303991297022711422692032279923682660595191156416576565102525925318844378438125900242753240437820968392608785281432350227147902430535041089190405513504647249755598559784449622425120001021990056726367513510160627004675927864772323698869451641185076844975268343788936469330007137794655828717027951034451054600910805061821447041460820878015012654023803964138976165000321909685529777237604490208014720119125267459898497537569818356367016194778549566897972510065216283377184753179062370216771292253956532437320467071255045856974410560675803095029949170713290953421048631430264469517343469663842569383430266630688597588406544953455632946560138658843628650621913706864340681151781345680137701771282208550764812298179170566621723594938211938098881804222775730593348556584757438966971868757355987944300114205970373860150528418658922790984287772859120778215127329633875244330956654240711148713583949490072729284055210085302574458250554148362886366790216249524973518773067411867391316740934598503123985014559160071667685297628004999701344940364671041600491690978430470418974225222697946880541290781508434635724880253254273817490705455520868542999012777279163083007978972468996457035983285666752093321692538269015303386531593848122151242891009094630657030210778580320853139669560887740705740178073636602623133460386351429348825443001107404470117632259117646932697966704690930125755839528914152506718652663176517699608950293136676754208301985137160683521134625349843927540287773554695797911872462970586010821503826421093695294133271603418598392985250597831198811855824144577310354089753180248651180457239444174461331545706399906015517972298548394917954591105267355244469624569695684071097976221129081689492366178743428129347001823508123402308371613683971481345407468838345555386319805656527073219255226513516664113241951867907842812753472653818094836562674143570603296207209897863578227750982477626200904432688518188152146138261356734814862019597674406582440360650655194250831099217738555073512106878126574003045265682904644403817439708530497380861870542789857250675085359211089305585415089988567008066975674023727796760600177650230365795480063144960166879451556095621056183386205273828264157535596495180230118275665221534642149387697882102084762525478637630369773803660718071663455428908418271797836672641977125779793150004094678399826850811727116751363368149391848845961097285375756440706693201851790585269202855038014906375916438767110369777807657653339932395366204622757831099750829406089544407562948788313771671462477843503563102449966780263755428379391133236004789674217677137254814573018780817552681703168932111521244479734099711585827075946941661782045172615304913245244204569762639240720993300259840276884185073698957790056366141780768962916483148003567562869959823159577494499471035971659625610458311774829031588568571297602741937401335952134331859888266466459270469974123404016236684156784256075011150206473474934943684001458388660604497199374444434936740918432276063651629452984369360548201470151754890565694918105574204582727378682889471998626320679141477665736120370137338282178678791138706026587824838425008390779244046895392911482129433027114121275481260604982323522759465394624128096367162537084325013728719501304800134735441485593179980770751961764940778428913310822247736047536689513464304686814047285298294222711356227144017318168644333740151841847630424491371715412728886413762191416895274701178541586000284472882368526593298609225132815320116047686553881536750693848879343859989442514485844014190801771837360599035961547424288404019341607999475350487503061864165604806135505197921365810189432983557472922423223483854212867565122276896629179317134081768183913293927397757159848776826388177620921255337230581995096097493978145611904788603734001786916007431524379890046321659303658742571658127499458039322113594236163369897091658377964454593288936831164073176482168219935299444994158030499445904739880960601719752608792305235404853909651909368347395372806470653034261459100018593864136192213053749995452245703775199004788159306751358497625997355558979448592180196656464732596185880580473466055894108166147071533769080647114820887515555915860488231019471105768680890396959385119184842437168739147740799232979984924061808166636967658281273784615342502618615047878885766224318358386319128336433624724685049465296060784232841626562952168327801211258372605333478045493761917250842160699861061753897736106441696697222434761318539427108178286577729900200016354455667215396832248985588865010873569532183295648668824796681824638711249962320213524760809478461344355976510529539648407829513335875985300070706750752799556770153322665081866188368723338787550792406318679533889952150555430426286200155137969909013362974681052278951972556029116024849247541605343244300934034878060908168106803141195258936369996522004067148842383932422359623151681461022101309422854794118379328502517328864688402368499817674838748341711357234640828135951488268002760471105471288174462686319889617573704006326949224788689680033112898213618575580119137659595057106470313696649031032586521642703423600408621380843700361662928151594269712019581469035439883847651811865503662687451943617726987748122823658186019471740570912604150474328076628111169205872090701946004222896934147530241475204527935501724897984955752871904423950376862057972320223475148635906523386443280136146134227259057183219441892576611116366354012019433577543103851390526238645857236275159689243918488018163448412205891549487134762136432410473353253332114504492404275955720705220175328734265065743159907470997114691045081030356866457921643477839044059846417967419811385288344298206794664112560875306199878644714729329214493476250781516184931036766760926259801946397090060172420067847647063603037211006188261762695223496371298531527712867039939875363663981144205893464732620617835859122779726040734846445987426404446750690929524043128440369243931991599141567134196286759016251918591275750115877505684370650484886986852904159598297284288394710190314671996373737220150635033568508203991971821803598274784204790180768333910117316891103434411253382300961868869411642353641522786584835073596665088883817800661554555854671021452787827304471377211162886436019091575652419395546453526615864172077103345274912184482723987499190587148329709992815225925660925888961746383149773063296339602507099850822458939366817165579287763137945374663584017575159934923855074356268410489783008178570003025392001899883354470582883284912036295003901436368089870895158693311261889268342495410051676214493435047837609022849026272641172064906227621326919771299661386274392834472729320435096049457610154650263056133668378529137087644027044684361927231743471627792074185267773953029912902782384394253423081619318430276558657189586183678825010446938878210856547930734488299517989805196974709462498279341940164836117339377457700984731442876156419516088648447396781281718708730690115881879933336887077312579468299081516837265480540502696516701213601366966460901819562343664309652890160915544604380541573576057158606462469408312032054352793166554937805178519807982252704866390002634687495658584174058891310940391052642666167759700992028232008973572263075142655064878754256869397264627605275462945322223775209654476615024929691511091234653026523643607879666185406356953341164732727175806110221013245441558510558172077217062490458006528475659282222914694442916278703730805038946322635583972054835618987157428667153275602633071846392740415169767780988161345563530604054108284867115671429607829545093535205840139825689523422108979742327150084655956495289663106176814571202329806656274529574221298313218325102049506479636666800205884700739500993802096302171956436101068461166557792515606549642200885742906089639836861649670285635301518882742011874121767379979875183132794964530218452181993809411781598007929005897155544473810702275061660357435581877076688066140490300757073278178578389356877036995840928753532776321584474553226767172414902194837456389721754182449801644521526058486728443069017381457280458319570560170829333888450958440142807667613087078707466652163572580102252147888208474194248340547317925839474776753866628287428684696834275717431565712131453776822578328756441270338352929742867940484673364517737422063467254867033470273253967688847938730407151271655993280545140502436459418513204347215296311793901617852628397067708322338429485406639028302446900657954591250781029063351554080590714369800078025950776346242361071979037675905349271574684506459017399088275249866277734170198189409836339998599536713333116975686877469090634668009157562127654621445399265663126463870870340710685576080119353477530116132425071603278667472241415205895710422221810485289745557141063062030951537222737630097637054462901271738095520085409273083666059545034939644927574731339103676096307458061602557109554731505011260569021434271594717204384666852354980791911146089214977794915890071996484509229639583228875778421200045344655441525105966850997717289065498338806469491311091635905490049438913760641845078356519421210660854906070631866686088485117063788831818905499084697754105587521853235416052999749024842822184122385468173642220269560736803883145774518437892535013100700248418242586818543491882246818723971306336527460205386746845113191450913811928368652067309320665748463983581125990631948862427844081630321932784457039279811950261211258749188160128936439847282314500428949221570509179545146682763136820990637921058125706372895962009882611803568315589396900610710449729029364807733247496724392886160031382162084372425695679078691456990391414371686493070117824360511974673135255672945760139545628634846460020246262162868905437644858820459826815158406089552840767755757809573172838271072307458719884030993385256938767338123545493715290001229030489020020459251691673476125465971808805566306337006142028588191186622292815373154838767599777139123475437827403402687375933392858229753263950320166829125427305326196059007046765532569790735780109260865392837275522626460821173905922872775725239525143063242242209802127579696634047069530339183601916641174547006446342162821165840775271914467702997119149920015716240086364542331779471280527853705180180319473070274785445214826320341448244912419329745281133795649662236512437262205325371002134616320533746891241374317118410253056263289518723304755657150110852052684588621114213204813121411806623529611093061292992813938714020581988351479920707095966309899491153037966709619291756279199983692042415643977869385095875479919732274914869840498234976230700368099102845152350805677350862642048461559188553326699243250647917138542141519482861978350418693141818479751664264449005122278153242276476045253307532864081139218433527041165520129191840415269699146673467952033575810579763258192062039886064823381985807096692531152826560783622133553526287944040653627950663659889247953349900269770282595572247370949861412680963692223440236530765327686595608613621570331491577777224112140140624734630474567842737711721338341196848793779156652654434971427248675328293958760239364075021536362821755545554139334415069249702824235082244643699274121980678045830670885960076346688231693939293079160227207134938985875052253968316507105197778020647529157651273812664545028501052328499025264492527367017702767392373952081822944440709069631340982043725442515908436978358821928303545286674179022017679515593112167814324303217828204981638032591046721001003473190337332639365528300619835744822540524129981624644152443520098064913433728928030873125483783560552407525624207652739943189448846838306980036561249186548027511107125972711969253183112529030931944885059006562307265448827070581522990702259157456669827299761415180273479369015110125135621230484433075461498239068765447127186075901596822853046698811235348473613575548041103161885381806650717087781729351590438383052508501035960246249701397216292739889110733626718322083798799499509428089400379965100765257182948626622183378923373950948778428217900766648771204917725579867632074913950021494126489922276903814359254587400423874173762598711254721548852503128178737582699971641093402165774555505823708176048418483383819556501940035196861569158825912789337945281339107779336677378124548410623215978958652955080960054797599483877085182640062922964132806200548525650591960576362980380352654003562548763661750060375667266210954514433105863931815380604551431370696668508315298197788479808777053456636301166367777602035851594063193022975567677107094891955380045475326005709199304668778987301799008630574467837265105688527665369853305450273779718946763925309351169200376019971385347442026201426816311255472255107089293809728701652841051428733713104648375654311428201331684511494984691989029526917504437463109183480748787296064423248857842378250977922880469642324871817962681009254163661576407537483333352073554378553255293855279369026277095455691722286386610295438054647285475574496301113329575912020116495079319901322038025991323595390166514237524894657746398046892110103395906930226511363167846042319256261697540855188285538559695236644412986084838792596695538487325130335954238130854075652097354055923422856820212775965023882545497320142954042681130614487495662829251862230422295635639661696823001124612416753815672864470796270291561479178315281805492194393847487255391534816321711941089099036378701779624070139160053775956429267366087010632188841107125422015689311911299680815797341552604831867467033923280881273148080008035312919406302687860388488016244494249406055795097120994813184338755382856292798248214257519841471824090146451351564323368604365705542382357790341631957202587641156636848956990128821712863969199393752337359173433492679733526305012181088457887043916365646362408336745223090754428317156638934038949564376139722056384315029807554562737611704984137995509840452511885960564783458658181037293368386784499254943898549871983455308233147339904660718095739665305152101965971599739179980837622358899535255198378832427536813738136582569696954585764183611022895619070748548932893696739651026438755593796013975599456375938730863094951562413227925016264120267253882464225578225953116219888648447351358189198826619012171621800944204512978059580095639278074762693097327676547104697899896027782173057744145005683750130786474459679094311796272719771932901650208955298044874641488055507793762376923732494304455337701193206756125325404802121587032239631753646116074522368464252971570442856548772650746734738851794196434535475209969406148972978221587918326742914375133600689082885972029991462497717014420903368853467731396858804375554180432215861897585805440657034135475802117846590294242365457645126049389006585460718007383673737789883330574032798152312220593626468506892706693655460942181197431062165876864074169950869882307537137907871073179501716784349518657899838630611052581002472873735664255282451069224183859098592628234035962652886705607439439759554285351268295671113962648311429096915155212468219315552353317390195151265717831991556190168347926959595839087376513783166575217920920923909150012570869499505169705128421122685872723943478271944840092525398025006659387601086140895662793329205276390966044050932056777258661197493408416648641357368621018228663407475282788307979343240960638464802533000565187100677794867214603676903554658634901551138405507640810546123662470541338171618746313378759254962409679720454034813558277258400134654637992440006939828952523296202303407894734502150050042313515750092989311938402727916866311149362091502026831319065980180249514829859582528278864514733223553039854915646363073308375859900050074985590078088163334140353222044442557344910977048491462935812770404121361076679999277967395650552231828735751271052097675578758330486255831372038431351269064245219043742014735712999667093152973763124986545517218023769865457477431057583229609972002977518501418525556247005625129441353640342979962036388831633158757541218710534066683844606149498626250242827070433044528221475339292522296202774124626141203062012748393466340109862777771898932274410046695542576243272392767337210248762088516495192442086133339379219917710350724110672397385016588183976856953865184603872615195005193257599708342134461178568086510886935966210287154659159097972745345369248340228806245200612212804078892159744862302883516240573354653780771850428346508433011237486021875204922919084998818373415928963500129060714393099165242105671171687922951342074001430694266962194683017462849440243140123076957127357948529139813510624459781037556127447589400736172428662139834100865413001470356306886036802491238656300288621397838631395815504327507151293893516707757081611062948841558381090027057913928647711434458524581184895141402613099629170859787523982507258843113931585372093486848149165556762714306952481645169657265200859905868229750813569285659394105457870397321271346497214290933279076234165091275798210176310748262788782016251652352260302304650500781464494928084379881215097661128060031150866174390749411256809992549523538787899868298227544707022704813720644194999436263350059431346119438865264197316741147159404720821546920319571972641805178409429830192806992178761468485175863696846604172948367768880394910983851842728013906526353962466291420793128325574235908824938162057066116357379946935979307104511681017814305556396224667510129390385087224427193292560246282524892993221862686240615597417527906185400194000344718769605239549510523039097745252094682447252262638204357261905874821776808657319126816102361903455615510262411958674935165720482301505027872307399396952364533593477758254245278698366273343345659967976360972582483970902915381196203076156535975147723145119511425750270062199221536400554112971049505330381556535533804805867920469332578768861388178057714106103774763004020229713212474334487696737804169013593894770051379646291029405083462442734515560962025666299097981727567622063427940985589717775587151347799925643920202796862271519599593096240755437508584517020220415363154954406228999979397437127770603788030840071002900377165730244684423563282533892421897355065884979490304937522471597633791862819410780553858833910589026263830383009947387633220895835560109266358585077633730374491689009778232093283489000138653107343676174329550797520366493086696144398127963941418431006625930672645402616417602394491556220221043046929498732839255729709745920140032330307410706410966821412272144640352730172557681198353629125284260612001018432383692652692083392903690451171544912046483369381041542271794978450108120370739102856289385353606874216909669542274132044143402829037525257723367112544534872848287232209834803988560068911973430621124507455360024934265225548840232935699545618902257040475816151832398348451144305256998993068042693009691795966450942708647909969869765494458072929810812474570106420476974477669539935763873406193320131671654263574937109916426381337842141832149340231600362324568873822336871172315315970395516221888151886514601310226260468214924591366435256292199918984948010072937601994126976282400191981003177195055453992983643855028711536744021741717513423787865002118698349938093259010011544432746227583014895647004544086720166512074815569887817063011310432146587122027935053361698540080373113153239150072201155836512867327719031603769132132082922781094458532721053414856033693525987504597260411233741133571461153442748315942542630681758762093794909643449720388589647239357197376984109773517017637019738684521437278689511371460069143592088607622825358186913482504014276410453173412806305667944286259430643384259725806432230447679743973956102240807069106486670639907097212301968003358758536407349429806173017195115496935514294163462034288637220833876720487539409639474429678869452347789473821762332282924667334943660212782846523746135448428476755685540138804391924970722452233096736429992944320003168807472064748714669766974937742348171190614318063619002820531544903071660166736154341488180929975252889936326588238352045903043200998418079286284384088756471293779063844458474036061089269102652861635845169480426326002548465936068435864516058294273287515025230165582692604295543297337094637679642699983697599880394124410035866682298427956329310504564408359205268207666184112053699267607066159832337979402011438696391626006032476803539628875586101133158958241490163554193847744483112332642167681214482677969618860274301387144564587144527140683059028325342782626747447676673125820161520900306678470884099127505781342779905552435428038815009459288497035089392454946433656256043031132219529704963420450454722560162896340547197524639047136135607047370127284076707459448116599613505016800342544175169969051983728089648422852389875820733832031196614180947805301598506043243383046941681504252682226409774166498129238396164937446951069339399139424218384793528383032634077225843402482637236776664526721085008461235157112532580664531803550968518542984679066901129339190184598741206853749183475500450194442543624481118298742836260334563812048131652575824356218023883284364737507864824711022060466360079776395590686656459463639479595508456075865668837060167775757122633127877647378812615440133369890358622221431442616948357994843456752168050205900854964267605701271887787108068056650568561448596901633908607729010859759590226322588790409076517355224535950020376034663262126220106095494663188257647929379666499322904942839460035573332945707885370688539287613910563736732062144823615063312326521462670046559580227947418217048500643630181555294989292813295816428830429034086436139551965329679446936318636526652689679452924923530457493154948448054480443543749284678370223073216480049842443656484192495674766667153323254214102261970660102224328397593104065905326463686121498592211104035944637390108949715275108872704135582683057693973761048276758861894028154979176737554805186473287436507304358414192851696525671654517711734558458918115685838739359585035946710910571209374489198476452935915145300356261304892541652489817039393219200998219583424417298088766799690003384408322347048447323744859063830091790245423662521537318353110264097303038898555538921981279240792898822607947767399564817144526627505019759884623898525061373314725126748932817937912637200399504088040125632753489422956778307880137634039566133239250561752860201116342959603073950384440575947205540312158464198282308760630540164349937839677318623198286235742918333569429998748332405092341951410408005514476547311738801895139362600139636582284727344995473423375032183324991400628250326526671245620815459692186474962294316574635474415581325901697530213303182809847966806249134948262629703927330708040237522980659490017788863578035141154852913477393318698657838050740953816908882745310697928569279315792473936164300332194550790676858771107107077360289989719214568925735836952532815502814280510437573564269255908175095429934461886253062716101513177360763756412176380573949599466331847540302198312813787623182031722733711457462812688570863184774042021101395527292997119707319510929065794596291295618549054956322043201233445961439109894765198790006082582535457975078738575156391510854675485732582055773308745705753918695038163572619225973777570688369036349277707971120052898622806968607840232215953346297607954574841070999838691788062885477569341640167349459476345934704853244356518824908653581302466565274176243025247988691874696821526667585647616856788937844113186201654488785527552250363995057106738196703574064138379840200835535770486879748755421151829000248148933205843172821447776367255216709514955543078719278130579847063062306244545457608638702767454023553957349097398980769600377956670634427859114932562305803299616223332392138525843067649496744978201090576879716322075826338934918554035024392607409258733485548689784437316187241798160253306979235613112428097094070095687654539929324268930856633151725960425577385979589955474650840108998201595872041810187719330844219517150334004382157770755121959872975821645566032671794931515301678727549699815780394044822183013360964317625465705360395153660831344125829090405748528631555620861591580360424560215356902013651796488563598198682588809969086718079708705309280402858759770560198302257121653135456804912533030341648911903255702695606796207096138932139204677201280162904012891702724600157754832142367498230269747402422651240946528569800647747130414767056199168015033138707644556538999354648690904675674763414751087350744587400668300966630066371101714890973457222820219579178022408157994205244741647011316007926075367762610903263822094547232973832179553613411651210570624752190047131622542492137237776137852914182516078656887219485692136013555637781482639720806947295971765581413669500073211856790295175919821406187025603709712176905813846330675749123262615734697840672807387684857258054645462864374875529049847788997492197846054842139794620937495047775094857443857511280311461999170033260068078999188671528753618708267698128601501140017265513467698326190536456926804397134893672587859281430091250588946981308187316384670566346011359328263763783691638282969756965089986947794610345332675072395542207652236269554401178368974074333305261796381948731592597521973662982032023098531572434970957457817517490650052746541403607213747131758358805935011899772389744800613284383734822092993313936206810262506643822443442109015534735434552784303108572960614749857896862814893239749066633571532971296746567634944304892005037474960880249488710111756715561142919292296917207306258755856819161443129601105468565923329531101968503136774484199233132856376479834873270863671236307554941439068210847519035061233700075605908295811063567284416399410031320050476808527347414557716051938649259652206277631233935910214475091984304611661639118834294720005937084058846650538013684150227118883415891809149065065973502511515057681321058336775396676391236263607348822433995496152127193289864660236550854642300721547670034277143824479001173814457352594967656469289904996064057467665675388426707579217263076907597504860675098990705339882415763537833955907541497571538702644112280686155875171397994521047038560333279139027142670382495215706929849229046058153976496711593710939388688213117768074255390319040303823898369655008610578611450168109539767539403811635188348264032317709842680343696869807512411557086436113230896919913917657606767781847469869734769328470783124151430976578520179787387233975009736902831320825609830853630287377470032125085903950655194257476912357990604682677006888119411574174761042175796765998511870056151749683172448307992576779998124692392457831143971528445391250882195611703591774060797386265812512224508083193441427249662690886926535063286341446865550388435836679188087521193828311052399077323511359005081877099332321709708866646485903683113666680200391083370060711119344823286738725141776200936073322748264238890190564893310997291535704966057937420779328401513898482798910358714226223780093867472334849354541102544236093325517583699362947653175374506231387196072608843944899876227341537337166139947998477165740802855496089432231622182582137828125055814031533121957242422040688074228095611843634227397932738594911925113599046745582006558308617884443387991485553749428949407593107072368809383878156178210670887003247635979812279216665055969022345692473421881813444840773232699292289919252606726394855927417535453869982929508295934581940872668192692429050422721233681848685963767610481048004313278991993030328812490239962206050095289602481264795953664661798132922435269139909274116498495074250131673854412592050789267264319797373727586019045084995821659806173966767315693983615078617997212657502586934173342699272189625216399248213562258124722226373609792439751811155472494632290207033683786471503263487061695445439755801295885205578411592478935685978331119067270727315007518470049506188030800881595408081020474143431299210182494335250009363270503800403279105431875146436783543805220724477673519385595959692626333164792776505480111875297551561850369839773049690898139165465884867294842435846430822869042894733536923361882776565095198560013355416436040755148348009094340791695882721184917027090119906960942431227498523392590190469955253499626919588202847110150257504489638945896007562424319894685170800384603879861433772962606515619463427345327468142018208854651737860183497425212914824867447542769046023245066331943905218431328488906007375747302016994246556400049203156231224062594412542124894443224451186887723582059905359972534002449614763934389410933738483492536809248970583776208934792277940688446038053970888548239065911967871008913588633599935181206739980808994414615530923734086565247561312383998516156936853248679915757464328877615980190654727908778242507610227924651361222630793916499568584850076574642133009786094378007311779773347447885782983381898365435479947144876019854647100257834640648685251285401685044965194804128404139822911438143195036204164317984734186368167587936968225725564943000370538312421547171820859187789462206841852815779248413353323742872056749322383428700914263835470035982543315196166118029422309079591355050542184539959645339484730772598868456467465068675411923127154442527741355433152756213191261681128841567913312633735585543921942396228207151965643013916907990832897153278611658751629402547685591377213123993732686485996379512867041563639586106658058938755499084525391876294767672468756481895133413317662128339243650236881558706095724936199493135984384839163631155721250516108487406927679346234906145018933090381544030828683675639941397952150370600115027163097157498424677196080279189897443509268316524829697221053691414981276927150108489495952918271061039945995615507195355947695046414424703564494259966363088028908784273378752729289792552107835522040289575701590309497414774529666131935036265704301028817222448126841227761319420515350816570266891133098891882718837722497548466687496085194793817096328794330126703754677514313938985813108298449381564985772049260407503365519656795547366202671875331060358016795417472469373567278915818862729440251957507547485526974799800306038156756734767629938782728405008027342786798817409262354610494349801181386440301614712170556121209603495287430059413179271915006474124743185467008801945487024764132010523458219283106375456996740919065310651018307813687047412249263726527830471021883712210119660247925065862896802957042805558751687862188898931382819064861356416976213949252308190649425302970380436508796619279948266960939991393076259821243426280240285406514148532716977633177889532379221584253326548671750887922311616311397997096347986604370323620410234337560852375377331164378772283124292548652953312847845815989666786183284485194998637047817010694078299870466046210259082548067193780770409274366321637446403339731965922216753777584036922258429655361682533281588138227718088677674933922300710768945633461440875740243660382758424866141737405616100968342857288867925416586708674447205660897210587966924219582510708830206883826857829810446894622809863517644008612732298281774637281131951595218071808754514465545345194204723927675452927902455528438010145337572190304870762621757744968332407283876600124236566395959214921140931455905107913319367760695279903534533773370880681135172587971379819976829331518691282130262491575334455960921172774219321383652902419107446156535942023762730262252938351608475691060976248167220917105601740986241091357929078875852751547200745793868996354419203785839007074810977566867708333473862981507342397799334473593547528522657909760827720016449200912961759271904437845729453482206002339407532308776689320807052780314311835667922480771992124792239906190832745738184602054561522253080863251143773794870480818230906100442077476211233575968742030002189042923920413820057936324720886370188410985524288059629669846078459912399383281078836015001368495070847809926410408889645311699056509988415318787356870588646919110453346479951773808447300341802716911210556883903730758730859610567230042866004919389425742450108781830048323145568063089382458145747183646511717854668039667862777883524222337979724886950604031226564691739985573058603448238105955288818487167041087356725904821955910972066689768762692214826792193885450070463383908324763190927533762976654089256275800416857769564285899206740664677098157763714881674059438393188849785331296468971661229196710344799831952152979255762105308686839292049981228297367278533456708022556407219633020897525510366399464247991650545460724640068711793619123797988172332779394905271203113683423956291581174772542807827086719446703682891309701536647990680710405104621249098435247728722764581184548951938001052369285089557704504669075686338495152938348632938499711468093610208762435415880287313712373780949831370681693196445667671179055850141627139703485310345214209532986105050008671964800733224163276994272012953812623810374371128458669099633926838516416464165048929881349135555785604748868566631123409075067169250037000561764500893269276671251247627469712042318763204046253329162385380679026803451455911316359714466051360621995309756705869704191465268391237148824973183626853107988831061593783391096488920991277380873281033353385054246813798685483414403421709065031710593137269190100809120793552815069391996612139913530459191259592517943832880752046867080219760076040568105448932333835711270522910752689593792256376118251428882207314060314473561399583427262308233632543333289902989223632450734468748551444988517165008713643611975888979811724459212989208020453011847646554961900115039211673906243989169703579582328595771152731903285528370309155147721694933544041671791839750489478886874893899013397957586121660293379619589159286261848215283854668263567344816523031713773574536116680478013446588852925254473152103741479819816329670321745674127708104913494053291525740110722949554668409874341367726938127787661916580849609038663456186343470775765148571344923026202715385200711239124453300385747099642957076169953658123948680675690004156908754067442931180749400131885740703757489690381371908175753272080134042547293532692039091468072136004733668918117820302069853108681124341114672916409121987035129747872548210897375541713980108240565842437968768789911795271873220844862161532289756868883928307794150692860478106572146790932753830164806440680278792786738444605383237877482184322064426079767781370630631936150666182634489502028422941051362300085850290796804141012622392295523773480700744447205844991429462640378496198252930787523748428744449717369908896397944092552384382092718197592625143675937249202673954249670913707262140869371874612837314600576581668062994520190987792581939719464860597535699847895853515500764391880545535935461971227187328474806675444623318913556762249695048346228112607078462584541138877778959367192105067377003708642838085109691096328917433741314131936146672925028365465655377149201099439576599496368735519432370347958136891849494838423224450228947086852708312516452325643596855198256377644609151475829742006476006099024906061074472569515231503221344829219570190304689881950858806851078711649740460975465810262450750794010110636691249915913406659880010084257052018567079773974581155307280674394909618515653998023569386190531495648736557439173104239836512294150759443182992965534751262575511660384344555628656020620572908189773760329172531887741939386173677087740334857743090438813722865550038002555351617989699016157670317979843739740974922742923224805501866236555698284877479839175112550924082346606424626342216447756572787147963913194263381980422348345281771458099424727445410520716834599764348198875079093530240660256372616013565781585198699025314713515260134512933460569325564368218269192764220417127664908012378686083627819481522514914616769970253977100532302658679219522888823715268617483532302778040110187886338390736141803620559253076163262625785248697487671119643086745076851629546826392645261745623030207312814886835907004724820902992318776254541463195532501474101837628103962965629979135543507916059514263577957676250639112531734790077229033377785601687570136567115375799018741036416672894951561353091649748856189707536909900069885511752250523300527643960835056712630198534978590515035207716721260777982759264891930253729936964413868590774011440353754375288256832546644218808231602471797104807884054649217490706188839788209328409504040398034268807215336927614165572422189003558598770866440287211563703970020833091989693212631823727180377098930024166488195706936377619639251783594053537343154324528901678996815421554788008164960434077456190976028259607456951854639466796912880901805957432452668101972201353078802479898230701533591835928504075312388359310053174468047777853267428846484041285982233692227110519881671531152862332569629162658316703203648125079127324754992129488575896201236219451649505879421034984188067752114064858390366515171660731867870103627776964490921705479081605049090028182790957581841628477291224665826290536026513013383145763617984096961073905370274941866330209635467881305486484308680810930846929735618311409982513114872025855680100464539479995081010067162875022274145778789581701878777683682498078312041765271262895260391130526133835749467764579676010296498339472053065192348348245690015555844754602623169006995381114470954188817218718742934946306860783675483616561001848368279078560721763571122009353906759401642307283576400221225428605285925654313542288489324130792115151337213218619730966936428961410012899349090242138136603656066266886313405366083890146541339520560866554183939535267885983888651492361388919772437329250064000531064337395495125932018118175325977090401644523996008183833186371277337125181923412856335492548513025561423968600946862994273772859978911838605221531326325879624862031596738082141345317416249827934297478608886667931883284999882498832500584989637491641321366732387309823860689445486236296630645853223218696984489101870801030333676004380146881526290741432696121944141072087135315712104093704731588256752733659485849440087410247154277679208832980947962614259690551530536932533875670994059087257547428190644339212489291381392485957809798784749566603708061791922583824893149259797450992251590010285944939749432379007702247674997960459671861077187238692283953857734450037293797994843799457217846006702507303149300725730294555826877031150416435838090955753396287572500593388221629140642587621245034616812559724030850742925227035003726724026225924141964193135220329133985401899510116981876194457094958906586065789548275523532283621686414143592985288372542613620941604550543515437169321438390339663307232057739357099614495931923470078398590349044973266141203095655030582199729875482259117738045517864428789692078502930916631553706025801870574490044879214088579816431990955018039773775748855018610994812816078252215257825228541753638968572180149517211454164690064222565777738150146361338049162549300236691907957082460366845783622466177852743473483432613950072736534439582249996258076021977695778801629919309934657047388628239147336049287764869443448604756675934674965271764584423087464389051439661126886937491093949915081891633841267143341108487263784821899267835532197853429759754009881151759297716494497674255022434170204359267779785923886676509547456426574028348432161332406724283536304262560465270391009585458145138385871192024805221402041856401084327038292537318936201809269968690674544010974445769401712004176335481343320051473528377754394058056328841264623704758727232315117440346358688300291266887262691747254236524059205709723855968036019117873395322983639633496769154313444031385909606143657071385651244558042671704318877450362400511717791842776287769596511787956415022841925923256422523878964931348687886674238333956206189408727388846722602760357275637586950890700671759171920696873897827354077041210161292548437290213137887533558890841238417330706687280644481488020843076264195181367033906165838757730333197686292441534797473441014757058153098045296972734916364014986034227034454427344672729562679790551524529478122683327421440428049468653262245717487061553107458849339836322925672072263220966077866829008460412222074138661029836433200306693219504395115221297124306352216431641711281198615686485677846926440674922678632492891714590406726798756107704232810523578843508167303938020665508219594789105020987585612869373399479000740363263349737966950776250537831377545215489562607268146424614520462426294777560436936780593406180115391600387949338410649207381937139718967356661185835721124128523456224882150260222663814084457679485701783117204892921363902270425411133948769502514573280664256609895084893511177760504576764223254955330013222103450508234457837193747040773407030752347897695181390189362718330236292922652739869155866726449918796531704875231489460560907488838732817296354397230483211730391589952065413866035088943967587411731375389549708863446428681908817516395123771410356041997598226201831582427548819131143199467128151875939631937044762073117179612899995505185851525890744221370674976755611295253044267583285822072843963552932395582256807430387033385391528553301995109652230006866144852406421907537271521354883207529104661833005170327841434682596120812409763371275728413045742326154527298812546030398900463092985505902746716484428156846191486764497073136956786069325867233196742425744712093137019965444555096522258032075005173380514419812844894989664323905194213572941803959114483407845221066199250927086231558770352090763418253608164115270878087375301156573359489847602205540855014236940515046125965020585638532525402215922079767414186396589776455782735569839412699486520370536431877608009781130634054337547046728500372469435290352574803890960980941797389366567552439144355688981011325167801343441778635251773098366458637630862763936312900497881036642788181649824124816647191997390765154337096443559388098706320689867995348670261240799043569127468829375486898990996188350913883978112830629138816461795127813721716261533449121943835644934239381532952206759556677843795377199265613137704372003471339335807176912429712392751698388765149302178190855137077319044749500938649011310382522548652435293963677123421636015823387569114389240382346477267047241965035188812265166899529258044553270520722124156486914538385570341051904779218095091114555817254673226311941600495350142532326251339503864886506559300500918542630828147141608536535343527317726304749203855566177808767171347051484565797366001741474563501574618067700658612099301996959359140804395677950732510860591278048581736134931184579816317699958810688978858225169823491674466663173440541024495587510340558978881002819148300455698989111364265825535607844360578786409104345591543881998747377974865334735091384481890830888020309495651957653733744705141290624324827201863494643725767667520893842204820372727298148870025606532154003696784757463713680049004817172171835760812818059055663678420575289388031186174740382392884296839254739340742730881737105508526938418807011194341148563209071963379396418043658984123931343158339845325446815831394999491723802796131487149624601933564743762339398337832950660911821142939126426766823762449150923937489442923026974557996743915094866148230315194143726271571615874540518482315364662457386700527676034552581759665665862936091162875352516089813293941477217289388653278066547787230484163095193985395605118991271745567141698738885453748569777523843411627283682531851368039180920903449528384240502361941347982847060707583664083546738961526831172337975384172600194123541487841981890846789515437711328174775374567222608152281397713330868481505876109741359789608292865223147705933200202091389927807578493633841894766032533303785348722087950361487953770566484588355615565515076353086757157149095542739607516140645116050694555336520703661898095806640487045219753188960148547392356860721823950359363211648662975652120511661238065490238761685015023447235584775519631773671068232811316225419157206744317241067127255332338492289609084366737979229912169775669039182735712411150348123415988354904377245518890091487304560397368116328205956723872829527013337135816212267334668660142022704638266645270303615947734470431903462327848845014328208567477167468740537893593897153251310362997652535615721938693387521360963655370028561696929670661142824085557428389783036485299611485350190194692607201687802127290374081704148893484753656475711460627010602768390811871301206997201911415604063140729244482196497559898924280626040956787825679175872987435379638167317731247434996665530243888906264023600504989805201852589025264729636566099605455941465278824013414825324664330843976765881402312593962214798177896104674289652534686376917661109454075744680913993032883067317762664376133099277699254323506104760065984253019391985869492674329574415097747062922808943302813592233636693143794283817865646522284886220338476547592256775270230528202222526597713773565869461129415018254604622591748062754346543145506734506436981300023780256894021205261185513470388041805920237862547527069279276115765624600982980799579104366314529835659066998147179722365109120787744217589335961054279558420919972765967173341119175994844729334987425277533327018276192308331038707664064023821901639304776614494240639027361470412772833948873884426627842075920653530415012447905114122405912511817821217116049096994269488617878361381839425095086870474341007047386683257036824493707622697737549552027351660880424437994573866688484145240293760434124098638557380536175046530026965828132421530812455788514526676609458896462549565816776470567360980707814022810256948965568038519936632967335157844869499570026292802391059077704438578861659207916749600170534526886858796203103285207749269178786450558919697130676218939201685832629541390546942578853214244963643766771721751818462496509253635414641025068897354426800711979487661568097443574836310462476695268708342825651880541755410901262183584021966415115461385186060344581405574291812188608374713408583541990881686287359711308904537321750610049933531853060635256486901142144812617591922644517575483681572951664480239420877832674227155376439934013268509293220332699405072270361586606688959861513716497730868711658150476948749118908829343666060288463842197902390098228431568649760233921419965355311478594862634093773462083648431476505651844275719351601726384103178852848689410360722261336421323093232502525859352212911981492015679983225207526888481935138120866964575667252219502734757536549191378782209290114850630130615579909082784231706205560781793834688981100207261538085097201791330696654366037969842431677517505427487494025800681970130891706400952692524940868157832598801731377497422845799100706198768711114119884806381440674145643273622198019695654372239088543698820780077993217926267162362010104251612848511410329411655360401716676780588823102466038291443059908687823139103201361387681754713012541154816256367834658257514395436423291893994273574741912177615309588426234523343841152978019633375151855339419562966038817110406036633572114239364918933359702896852218915842329380629685383717212381809007226277837573335594778718095208195478821557505979342088466802933104789884360951543424878285573068854344903633971517544674529182159783358117462083847805732430728681013982255527215542538780479699034170487019137212042823943638291852819592975751885620851912884116606110879654710008194683823515485148360109779023434131601792314898714927262801949932426291827152353883342222233734512656746008042939090641096687285752768228290338613780922342190726674427307251612777984192239468337057879249108258379382823702570421991468230816178914651097641662210632155871137694071401197389092652418329301881665803111048663645032913010761596760940109928842783163482243358830573799870833579674401643197348489197755803051285573371904683212743761404460313493899345149422283982686738822624751169784803160091841429795841467952137162242869251220915473543913138368709044829785239294746613974494812581027839348380781268497994351713985687305272799204737360154476810073738371456024303216439277265519193793264050247254790338344554452368783311551780991079793793260636063815182967156832765561670619422658327059059904429060638341864611728259994452478837243420230887878634988832162369330320391665226164424730827430647016608107924306686557431159905994076271299523998210380471295977277726407073840801970352212860291603036968909732703580292229788942953714254730255390988742612404695583490276778750957269235491353728301404246740957732253938910542757881550203247443573216045252136339554164498133728121946744345994553696763698463342135303235967777619824285956835417484091295427259375463607773919709394160410916072199436253667715530122341571422739258039082794398518117749575477528450236612940730931341334273458976296127687666807501576434200801706793809786278888394466243016054605875483025594779153177549392424813071645426843521830781370054145796363251981154449407014293133840879922982649324135486984705418296554991169083775549827585580006423729990989427540605507416056478589930948855579275989693753900943286656813635429584032701647749193509195035542197065418306972029712136927425905975708612101734456413716977126755990005443837779464239643047259622819115304171082501245998654330731762823163507493402068402378629663324128009433387471257747345214955458581079432474400089109945027730220382480730972501060769284178528791219658011477000369426941360325622221799544934399160337870758725327817717214027900869344533359719307079463597655383866698384411736703545488772607821327827326310422337692658868893414593196498579448223725069359477510623151653625905883843418391418873033106192582231207394770883911239981041151380317358676941356979771180353622481007833722376002196710818391483979787781752022538302192267725256074344143581436778056713661793750896248850453823092960665043918840220941481686980634039572710271813004879206146728939897717092574275929124923414379116342254212806097032131584297419379803397988897090516096142046762947323907858437091477960914432193974536885153356360253010993910189133132665112642638918417787542955392716426946431016664372545639025000920351567059764758127788885274520197971704480589159722378819245284086653179167461376886181470257570526604559498703683110702254230727387628493319308534439476827854447045212500255520507429484169849469944547819675131735504444618247253648080603645108496103517577208931805333583409523902203387160642899550170283943593167297913340224073509429321026299984906000832135338012226901772393910843213344733620723573761483444068210501744064893204150116817824030820173251124224163989947406605809440185804601784690548642628876564581214463294097756819289508466474121014653896998943101780777771002105759377797896852916410906952192216582944058238410836149571319837578921163770745012031022759092175392029279368515203537398703551474385674667106154438656524093719583868329016187732831586571619822367128010149433410660040831383644490724022761970802173321014424917390437054979982724807859103635952790635266986026936982751781796250100610196403969185365036287216008929570273147046918037585732326858913983196839478457701355776488117655130063892966391120403290161400072406254110000594687393456832833194690094190800837350456700530078966653330906077974148072553318260040328096205472890326627975804925107923530397395013455122566650385782972661547957120236932831296591945614242490032896044991531801942440974108182965961547792770507221924406917556377837538721088663108092531696917806070981208375560224201963368608514092098741832974935022613819783730916422011420958002742607897750748446340777610733473362287781514623967456544490598072933597688720190029917721577502062884748512803335505027544778101411006708745468698579404915608136050283056507384376204369032952372318296261988892122285091770335641611928838090856685612494064058274089777044713999961428976789562171918034126409687785622105813486499383854991738793547604118837611973926055496744157165336695862411339113788307785997455409596194876669747102791976891176602264299571303593058168946887110196152258300756323217334442870706177131144726764143346772995475693524970819248125264801715306768090053251167157597818376022595374240775315416434592700887120227343818755859651718065902828552230123703903109563292642444070890250421066110134670431079937915478781212356877108112820450333439402747753028185413280855348639576781590741786818443574874898349308448199566975061807008887311117495014218672756927002992593844135785181125656034236079480540735227846852734924253599540386363186461948612569238256343376469847504894239710161141496892311077926315179580447392249937249024636041798462961694153592112682942818710273904359398871141258700020031279768300659743061938292720058524716444443061167933055439747460391623253873142549127677693351142374979239246312086022593913596122071266334046663526015581563339728853247550656684551181726001321343913645002765185797206254941755710481836673975878424232620360455547311130995251146324501525014206890367417735937652582973774908090612912798157388038285036456538255468060691774714911072378154525750752801734381732685835054946958560904590320676191624858118944893863515854694713269647257688716878818842260563764269092141327315961444844123962908495792721177106433488400355096440404956814671428511413223585962298681747698551021174715967893747158733702612877693085514021118260469941795331435473597096380384017813702713306389066149718539467225606857309347136387470326148824523257565883862491447520645394071642938146932423569073372303191707622166298491276499040094630368938441394305933091428182628018966659681762756501166618584584876588266538830731926446648106646833268492879696213373679250191062602885133093490183310924689284472999228283586299547787921060018210178667407208400064215376104403998220904944926624326155049426111253687629360152954143839699520894576667392093054954175586163620167467695099304810380636605875887184201673342833007214090746239844364952925365689919037772338007703912950056889014305026285353082858940246727563416378581798337639497274522841465340313038572217455848686945618321078364789823352971688204399856828426259540262597646057761865200588376918434654045018069906673918940074410692880966551713564282512708547821784713526761791809220042324528398217208836251588918608920153843534591109093925615132523464679260958219240542795683833132531508850600251761577435680146426041691904310473909959970369887026746523908009781143851772373608798342371813539300863384627537932225663929794752430023515095737737661660180243830536391125637369945945107893839445348608660629043240430757677820002872138706071854452348516125323936756175330322900149439006855426630327772810861462964776334662404313659772958280782264356957898099596160332450020371902642192642778146265276039678408954999176107082351238120784643943813510986555760500688667901499144376874202473901869863570213614695041824915754830187718923559228125849258558207457888742862708829487859933270952282801364425090986266999749834891300409068856848947591417928333750416171793581570795489546078983403265367016239159091816932268257773946541982481582717227119359451889185996826905680254796605083715202221489948266672077989207907985732786552061601780274280235280995890045441417100475585079762998239917447725059579282674619705524930491710067374437223462404689102673481976591381179307095300460695655571658776151169151720434139789966993241575980632662460508972972664252910866468939526831522970489108263755633481330338657796756973704255632557102247260915005429572022254218265151800153380846577041202061788934280692045938291016519993300323377098164705209347918065693883886959907210436745376173477031051232500260620525016895535674715657962708738498122832960480350566088410114396222258527665227037534598500076981612378465325966469064860050207581687906783466280659775535090730970608658359565307368184756570526889503441965457923214911044148078014337577955990511197293412187594579537719917378613044222292752051549298619136483438168280412144375756541050290762123023887630456809857931572695865211845132888443141999353224696825765027007960737925641031821071442229937198952067483789447875035569877578215090177680073468517579642573183053379720920908492403786215064854863875775724305658099890639473012824772337664932896708394984179225170853909622196176069780652637592279677422396954156505236945973106104818024886622749327365089807312570435409444436781428748227189128785467641697302989668633330600118549093474715453116643739439580287632430190262848024504731666354826456844595860196999023331286794895476610288640239550303224506427003367221162832224506617468336566104940298951482746342952664627803177625916039471003991718832725626025602597500515763239335739978091999555117598362017639840480680851506740307230871279420792468108606097494395915899364792983350492171172465263073467475050686304494846168910810142628536844564505641965319412184957128158029046454566772594333101126490258867472575391963997683046395294508271104133340329259259456548581042539579271713047597832444627747850948081872673658883015866595870873892654346947731530545953238653439199309178458603210200911366817475453440351761734713741320042500456342111887353646853726684269923702124612214263884622103745002112534202649456526631151174248957593084957813550661779203821303569853683299627808208923856325110867846280671179561866208542736805442534738675954939166044350326563651442367857301934854607443808513540166270619527661693616218248890892271110123869620674529153103264144069659142270456923927837673046364975889147350521795920711019290892461863043853951431024778254649273178980056787254616735975968767894009491737485729269140337465897893366352067992519735951178981037885518293235966843926508819632883732630082078026178486599976044541632151839507437241580423128168160599726205512106319480241370974203110695898431724581256477005255835414681282695021475943381395384906739954918046123156890415088683048703095735671352109811183618306120965893396335152020504633747124098060216593494313155496140328999159737402047062112013240927739305365042024993817723421826190929796851368548507649385259878092869678717599404063063484166256831626078720726135364698579204175650353597135351900257301409487961755336106814149000763999147734328207128509557480612292172416558209779254926238128629712051569825308234069257182534230309349072567312236833384408552029609174810502324241055856007281136732346425054588385356923571831765883091684393913292204136047994522409057265982436689001911841436618714929794790559687988063636840971548166127750433497430695563493232007460325456285217488790723537769390245350429722372259940665927864982260549211566346792365516519724209910418434739133103690389617063391350488209738054614119951132917233036600101411340690190370910736496833181562840183680527570826665971016974776540387240687254681460913756724302809798129498916871760632193890831548672399750615007475221381005537018924697438853984996580806336363817492595924901392348569392947547105171481121351583224732238959169612562793403618833251216887558377747979123843146540818361201657728125307033827553271730734942626569495476358615149196162439870778924000556469908488725884241807772392503048861045454361635150301725340938923033905971191961287957799994574254214471733115402057463747796738815277504147004247242737067432708150799009757867484994596026561146967787792586355162446209436589033580290506055870906174668238224825572775539805818900594392680945666116294083566028286259932735402389675655505313887615904243513308837228874554098266431317733251905200481866550058455335064125055816979292224175686178103472185174768322326238382655578009486057681187576982237100599447970449307295941109643014935691547714351103289531878765550656808363711792469295834094834183274127849523770472530136588626947607528136742520982122367511355088095334998092587802720113388867738699472407260955629531045272556609831069725368691642327759362537373371184211271527734707961876438378057581031286016408448549906548926998087255968037715971642409731462416748564363461385253337629048928537460346561857863049217288551786284019965733339742586433735078673102511167902105661274586238358413802930928305530783095989247802727910338521306802833199122219882645265973327631722936755904629413673884533365556182842827020840549726808922538325890918996903876555241560180027931557170304261898909112467278300645939496469300004135826438100557040905468661611283235256615549346033603004987965112593297131548963261510595168471434138217348683004584689473500343365528906694078116151532560381822279027821881450798087006756400048706254777171750863439299954146581913636667156276750862443203848916160422928042319965250586455359519220277191928294939267658087734151732494656980134472924334356964627461700813237605626795141402943073514592341918416937258799913517424947022784375234051263907709589545739978903686727209709889219695801444967563200932828591484197642993316676390782697280333529071872646759705469502781305049652061712677869232262631047340686344857967863370495689101807790817361132148604262780055723960801622770859601097933366716506104406948347601287201498161523684338129081855215993829171863716458561791417425392491458024507069340867282874405733182593862431067852769117937542567676622828939820903350958582261468717628799753570921284040322398629152600540880411187256303912757447018279917162256929350855907049882793563136224332437471437847767135740894278049659485562246026342423200091681862597812616018446206105430132561835310668974636793905177416818350995936042414671316576770424402537220117728672816916924430867866286834828621892151948944904110787396955685206136132568040208341577376067606098593373501369968257671085941881322434822900554542721667311530459083203811302937819890511133645934944166753814516635984518507260243735651548708805361011039299458048262526956117757743070868528443915229606457161777775472551044046102336334740427791579141558022488833491339919830075438507198904384089908678706426715437550353248493537236426129413225573756409066015045126610693615925354884432223689692786996902284459077762176779256166654771104691215989268914532485655879048044932230460509274564465265307187942440857301724963109445111381538527057023840258390205519803402062937268669606089514338646923972262580416307529683896490814696222334613211336865825586435129855783593326270142469717729107777752118978498972273078129076127956734651591237708980266533983551687892223757317874942598404589114055646448394831621677038015130626329647567734084136636790408482673658955380668885555771396705342464825606253651018756960775099977191969219374093870047409056678450270301857874151658907060997677154568953948641696810375024448133096987273828042220812756787015445027425170041185817458932081793525712285120336099134234074955593225998192669699935318970893460347524277073954176644359073853809458103901150867451363525682605672309950320976333448729145675274187818081055305843592742562571633983640695174106813918181387759846351967239654531059609421883308929136487188183779576937805225594368652616204874279371092605587675702054365746922756012419816658070012824303642328375910340476591166986099162047264979052084501705808986939306927390791728004340125966686037680642767329788911535946415974955472964038513024362414719704309158155021588112604320085908033864089055570225886577228048573299103109735572423166852591657614990610834717351290526691787940489147562380532124428879778776808021761952238938352572879725119083276230094658711597245296252516326845487464609849233748808066265908652044879029482368272491820710892714643657220936576767966154220481572173094877984389809459318611863078076869926895873486906122034257070076862073307496483909365234328564019446418460286453979344006764904068556947490309183558853426040642470696869254657442654693695914858220963724537262786295614544020751407193289961741904795206184545838125753451559592270978774337470117886509289814994898140013550363067351602384152144539064093730540872745179623076503602752316700688162133600542952215153229066772659082285558748443650994497670067822154370758088246858926695871910904207739625688993236579192062175201276501629936577528497296211871718465912334081535590083500926539982136525660734301653209167350082387468866862461693177021956143851858124613683430733230713076793227409042388224322237578531243329239406834860695416434538480175742231498259155354481464524632956431204104374107962747169375212971898767125312642961869901169217231693622454212333948317873205360742492676498159115003552881340143495802499423979441846595951558661160378187432640311811724042077668133700307079847135133953067208323995206855255538140973560676634817329275967544157383024575983746669973369590651913534242003943325031325206200973292253228474360462645325536780966771111009720332544909510318735851132621891376890677527788124193538304253408064863219438294410237786385433170177175166358407985404369883397926650333007450522765919205884661446735968406600525658604290306960415404660521089130721156279530066514253062386910341349184868950225618288988377560159171618288860193705687682151702380488883403405403463717421856721433120493238626849639227795399240634436121273745414617839752144895320458095139235583267254855320381205396031274281679756372402916127205610804165038655298822375688173032422212613993376145344186626461522533214348591038062067033873819433041296924115374236809764247810075645887810657973320825958521594834134980059645602656925454521833771989312616342952341458938651086563172379781360555732872862151249464435745958111604830104678913815860685883697890750402912888410911100006413818894361560905739222659115343978409025108288569246859486920849815417479545623879058717521233361821141967831983572658270843488752040927211092419477448224755287915835775569171817524054053452681151729119872941040691516368833967827294263354022701384292966726446048433627422834125451140779699264810441528304254926153756667258822096766752929219941344981655040532935340827436096240544596995934697015113657998040817012000739133644875676825824236180208695012373087591652543200830563185057756756880896274685415055179778357864934056083762549524936070787595452912884794262504951306640111333171759610838059896347996145281212348960871849745192392899362187862429015841158512424677449336135715900372212972136369184964132980816958079537479810345418981161671437157059332031514619188359962700837174626511228083565630464142694681863535627063457821739762989201473531608953048266426481434430777044022768975693729177777089643567986766032737088445674159066726621996888680463888292911084257349039831718571274674976887715102049787273232789592504635562371496451927104993604571589926206655288787028436926385303532384439412039860136512416394765499635140194161018363329668520030964542839470907663784181110710570898981977428475850420544942463946416544016170696291790622452850394788023850550257295860804100023244155565183188311900917666417822796227574038196084254672138063361852553759552966681001386431292840925737253529467405978301313727691665113822109762485212543259304270741724142320093828944277028013640185142543131146734758992067574114219571228562581072159333347362621503626899023947077428088490700818780799604762557579745219124861314361449396643259783114627338914706769835355748969479808242657530453929266325545932634931870182341400695407206313997895837702961185933146191178966634592361215534504237553555816386958675336120676799639082560470230998359637667747381756039421825374370889597654674102392097988075222736883772412043869876385634754958385227961425257183732059360278927651043959737490077103946467429162103312029049394328192957104889540806365966048691797825863782208699183030641038566986261627106519485473816711982617811421140408772839096736278745869796307758554963236293086846804850831202874585343281437520870575101247189004543173227809472000184113007271576411315730713630500340800323531060800483065291751848164166291421980876653132823025468184815137390284852898510840164142614657383496954052781867246028669885384417774371638547790631860998287094771306169181184713011307443196995016939575988060698717477135699267675317826660790559374817929438882988703351302713051787033386979738741197876443167458693927846877146761440255650267918530826198083765213204235312565149700373747112322367143491753633640723316008767244956930643099674414519685057360016488303640195816889041020537140953289530019112419614090676735456254544682633357594313646827396439163145779676461556428260956680283044961027449009212139540132195925881367115641922434790471120286818823289061525623415065226264226276667124924314861737570655888989368210140162908959198140672766585152773542054056685735732962674510691349354431951185890140658749917530037955254030438273384501770390214081184058742099616427499054881930915981400478599716439165767984930694804765059621638654243937642358674136389557474918658521728170625848892718631260788489903225520371171119082869049766002837933401784174434157953805175009805846678271629204586649458064901676859436013485916435168041496542695093776375839840396294175418905939829342218621103880667328126135255317704713419835190014025715305100778312417016103793314776802238502161931112743987799248748990922007998766537113740123556318092743376709298611019645322192381899631104548714984450944273939283577625913682568185120981587588359974000875422127331751616982700831738580314412036263529050370956673453056385434415893175936400627432442627376059954578837051324201401568024012097097032944196911221877758449516343004812694602126851674068097563064156070353990427725382167725871812112752501341446875187301774493461808377075585948262790150449144714501464937326958003613070240196195873682120184969763075188105835985378141259789466414258152846770570542806215582096382661364004178367889208431750554222796040117847432760896539850563837216465497279083516624150902414864515792332145714456172706637632252688919685824980322127308503164188242563703886648163140032619040880814070393918707113583014830023365570221863323965313549260414324032922557243559309112072809151510151167759685850037134185375738291001588637384178239276186602867656808697503999126277945561289920555110039104513962774207069165597951274736813526297798052325793303730583054254398211719001172840575759380147676788293737722860839754826689381751571714254077563516940965432943083815183852315478418725868004192064696458931546177716736086350732459027185236679706285261407641841739328133816434229540855382164660668292179117833278518376841524708494126075138927550918421368184587518496893455238081368765924851341576069857412954259138890371033317466679602312138557860429003476719861504958771978716181276268147231135347926427278395965874497859288409675723910715682268150832260168252323114460361382313606675759068703463503928320207755448928075723241880794947313107368580816637833666650705102967055038389154992803706567302960740861688840256164212040162239132594423039286767916567702195344939222970168360479375298211418386844491751060681704133113528600878359285102591295079431818930109438417869487772037927212137391086849372275252563989146368475445372368318237715812541988737678873597139040280319127295530816920761153260352784761372570515180943290531677611491516781923659501805919739669347912718261000361135395562702367877455881283819127646609342124515818894522187634722795671321109091287970667370369873873912014848800492104577628651553956356379863516833147570766179615065687862719244308219887041083290907589181842297486269961719129520697695444815468804096266278429054735802860236615883249439918480572578699941649654730081227013599387680979782665602537380908858192640959409474388265499899251577559713944344980448404568859894430755802030159497951159159129512522056022643638188678249262742464344087178002934742627092678002518710924656260428611143291894967485057884640854299430667726784195602684547092862899648667850587825669084780706367909612074408579755171868624411162224422471920940425003527270866383622043717929194975566095064743383703204069250105150906414237645918673515699649840061973103252095640642533085574938240267031782914917429731148030172826043777607574690921233453998916833317359712638251425721614554056168578712160193417860283334710773657197242494477425761942197713153581479800392917122468640427382708873901639789262132901391391047684718674729007557492074481883165724349907954124580104271172846471085045452270629544317058865953778046708283191080389049950116757817389263872419438259922164413858921555548935226125052468961057447624563130436428588143872742626123470758754174463561610511175174637453127855242916247643664176587979759227702390519571024610871147719031597217964950131184230631779962050201042814397002029297770616594948706362461128024449565073972089991217506250169560736466535701807678331037092389318980938577034642090455788393917242731073410529651949409949946053231304732823915414874803235817276871812492840362714803488111307326782664493261173100834117814597672487230989321545259433665761803283931747259847166495591950124864396079640641924076993097953572059018915623526518712906505348523936988488401431175803854620457599840480276146167442501624830938233843702137839280312950532205130472964951951328789188216636226232813114248763247230013050923401413763356326399431607477268811069388835244124957363932329744894784445398359679754467573865840040181762924781758212379685044575375835471064148967667519745549403068246198957716308759363965658574751087487917985492405984549563032575559081651661199803331478424618758534923044993842387343052821017894041076655191949117163874428012233825821986160926612702541253667734666449078715694250333287816252089840175897531892484200121343044518209649291843595900684276981022923555790840941312358121979935735824367508803935357597534900398482595180930914577827761589934314293488974967513072047560791226794231314349967793019783983756314543455721058102151191327037345216503568283536630031434376353837754381516422604550519719591704372625628192413528457017120337157249695519279025256553620227181365320398656812452218447569873124430891016022294377295090502709130891256786533593110047369768217148115678071544400836422023792239007518149451806237963526589270961627930059313872456451927276283469094530196387933950745651534770478481887011227727109288500893206465901944763382982686660151829879877454244017942138391051529470530251190528878516000535738888595117529651884915931573084600813774193457296324194093200899838654064880747219632824451554568580219130049314567672291719387256019777550317012854746909914450660399157285587861579740408288754864651269310084249495473156203859653462052853252399453374891858214672201807193815293861171143733613907376665117427968542531334941663864465023550266410673229050388622095187075561719929905526930073853645612226365198696496732141806851141501880352904567354468202005027215198644176140060284672171366042201200501298050723698788452168345800820721615536762780697997947907332391119628858427675943255829772454344700056679457990998045934694071553080579287179626153535102399108209909686877907339389622206675228994611526246704346203746175249776322623822634039861278563913548901507698557083523783760142429546114097453259492988612403621303075569417639378105541805166722970299434012049257446635483607108281508437498225381371980375985592976088420595884237663887000345370209946401394845917508893038337718467379669361841731975300513425535899888807898103716211152433086383658679018788572959428286580208639570031912602336836111322814727045329672579594946720100222632862814675829766278454737180920338147690766774653800180202261686808098195203830555561473264730417290328203349565299008549357223710672889899920619382739285062695085651627895814462427376071020970024181973197414930644552931282992519489323267162894227341125880371945462400301393239847661241605193086246719376474245057222364047664656874230561832565024277461714294779628964785872092284025658387542332908435801272042151541073926061825034846942143722502591288412300495867081700619648075291846504556391661743423100689497248508473802062132091927926129194654853282109556688009959045497377885468194218842290727897547794421429331847248244158892130699035848861153061122100887865569962459239224397652107476297066147030974074162722390079430196659539477156435932560200898969518023943206228180967337752411419565110275539162826513982026345117938060430086036407185825839878176106158717875636539350062170096302050669465433694488033501422538265640036412126662013277588855840000359902102544016671742575415098542600010111827687405399031227391601193568052794828764929175301084794948859032036239569318565806824768135006559378526160196747883509082110450758874780959584808511932507286628458834400464721158089354575283022281027930629207070095094421829441904506142208229131165508010140731015674138532672996588210405802579684217574509688049243391886083703128259277151493751371791747063741782241861218671871465570578541012659087656110135839644708757555328852985043189526487262957147052430671769870024777473396317331008625722089000871007305420966187150802859037188507501782363313331605846991518878969736252072518226521177956136966255075182489446358626219018626025865576229366551407935842764489863898643110783295659492249458217651081987840672243138397605217020320515942749628148546623374817342877625296599904547692680495084467945732323965929564224957826769629685917266879330894238177811723634619397648273552683035691980681869549092873635529908445017775529153095529387268785193874460557471416535892875804397937679159692624930828784994512106450868869150349418036535916858610523357040367370732958147041949596000583957545741608589277105793971427751835204330276178216790944650192703516330971825694330158590375018513091049069480722763078872691708805808766687056757360692428243433682727791482792426462700251866700014973289858760071252139058463202362626797089509535261534040653115568954348145948516349386575727929164919364461727516071918451037001982880275786859513881035718070910209105575914948156919083263969877379771311295376620893567559997757351357208123792861427839063523163970781634413427326499414976144547317324597123166326371029477626122202123241398736403835014659364889343636574278603510546609020306944473337304701629449702727822621506062241551414070639890791861468448297806276710439978650813312878764340270538879345059041598812292289880209296641881422896071926696142307664754271923840339570345011961383177776573113806471798977096522531721666413840903358963906691664864830411504612280678684198591094769766946702209072208975679862616636516331226601324527874553361208669289934123203845803998261802417478935582273548205682882070908617567862714003154933710487602682559034941580090329172856990173479966831024095754475080105929794278031517543309796293213571806685663709169847409070280114635634119581929234422880315686900157147213277415651855979630831980466809502823691498484717779906025282842239083500359148544668956746285039006030652307634349385065271357242520962685470711322886666934192845003564269091808087220441057118441208496387316609799909271782324960980239785246366994571090764542599033570801055408101274834393962701476973549736247358104486914900292046476316031233131693335595990405137640785276401543664458733619654886859905486062371829421951007798799514535119141293283119687974587652133959210872208653970140893030980983402981295276693762203526994890731217452467035194834273156059777180348449132923189841464408024575848999428370069029973135887858116729638291494245459597240707931497691238428726123100764172283130568624375607112324068678445218439380747997928343153078163062901452146482129407378543646147130619392345085319626629477274346857807172251436429658249463226567545406556452934537196312956961868248406377382546196373339524367061041688770963512105887187697509581363808948417144829205002787627678442410733585467712805399393926908212032394891167468364306650193794673583347493581785623048667326517585525465870611642425369658564458477889790655978378778755881566225817908498548667555667847747410466105281982876823430002943562667318548079704051356420015197858852009064538306842302785865620896759637561257438331874247352714404410134337569263998632775246842422547009749089583677920909797178878941621256219338718448907314344424795426298022767285580120398642854172241494130896967501407664101820952743765977993042215531309456521666566750656886568440161633715569906665313597219407056964695659789924381698268305865675435613853457157493113832352052614900499267704479476844521513336119300995135957852894725627259981182872936538758281073029923751865761110717766388236497826198088564773237849040599532373341824868920887681066301917897971828791585882158870849206701883277379385192052193347404505196927717364054874396744693195537084821860077378665944675934729478063944594428625569026275240104449426565515692373617448314840580418867486210199631656748830648177159067991325402871800725822488367184574850636432313179490212344317720831862690737617010101796400840616368129165368350088590608820458006565695261226313764297025626390491675864340550058557190475213886786377983019357278765193174227774186233002135936116445242956738046092031125301652205886621618414108401787453069093271680050568247115780287607053786085861516661540966010868177073056682275947803098670177538575343157887206227308831655255054164167297732414725934504837513706648136674266895154763924475962543550210493260023030783958960550587271786795117329904585948578103412369586015162975609292884823339833877969266045553028495869871132301995138095344637813459484251075124732704176810540786852771345276858592853119812785172040947457900537268952398572923390243818556859892372798070432165466949383202652451096232373580335841021642405624630731354819432219072305239292776788897489698732182213946214458338118056867292660083918479511257910499103896154079169911697971057410632745302728530167642841745130356801167531959687308259135844574458193838479744874836157213441480248013043647454052460415761639955820411536344134950583509999047833265621181110482075890479947769044135888106991303131069865568986869247238842910508277715674437429278819519510011583687495270525470938588640236917210447887325465524620273681253954450101219713941498125093527883208520596190142711868358113814754025320316356069861517497464691629608425743938263222000473012480277464383417053481507267729020497395653105296209716000550339572618507170710302056274834088248763085384194155452756697904643323003663169141038844434986878735971129937773437798390354246291571840880603823035605174335519017893557059882432322673428663419192091839792356579616215231843908207833304308853086765057996621068142407912701717018831809807746179993276271833963655526789152487583137055125886263609326539616053250279425194225955891355319728363109615088459015403758343791498827350832332006272546057073309942004586447864217897407224379337644264511575653096647960023181182490921347088090232882674269285481558595359394089759883179868297438267042210909563593642144457433069913696894513692847014173947338588556567382080173479589156442137576113952175653106372565719084062797535891621991694690460706058170725407107602719018846106570417734477663645106583481076873964416988081169720078784784164691078223087710257552123805680256468775563748681017548356217451759726566706272900596941932593543315412570817802273724508875971017838927985684773747335700363369822902930171888468125584414226173439706689339211784122495058617214608826688889060062699113513303492894939295165789371935797859952366395224549605071562578014295026312236426938008014791728168560426908810055488532783840117486762700176550504196274098465429502138157007297497262802266043389882216620929528039054918831048244232507481112569911025447526141421304242129265774833583290295651445653691811770354715311402608671309465619081163051276232616633513714026044911315392244060750621980001721470305083495446262925343417876709483618793400087512917344607824108245084349291057095667873755950829212475135062104234941595950630240945549915299166018579391619883685626923402582863370820078723566162461877703796186985740305272129501417385485722915260299333104883839217386888375926880067909770185712907922636295662845933086550879616003749840773188162660422516065242548052976652066075989132803778624057478536990845983833830880796603564370880248591833488330854789127121933737034778922093701129767647487356817251772757860685881871704504426055518475086461651330161182783141238345030297795774006857797100780413043934954622214915658276667175166603897520406652014247659074673787653429200259670085125577521470670739040115151891448696197670062285267316300951424549723042719507024540247650667545064728396799218769315472715058581028609606050875934785234475339490909306853187981276149095598871004385001726485934910581322832156686799917462743316548704924124057534083787697883872518364205779632180375713076646990571792838196213080469755267463790135550749777632258286348777278671449513696756226562022559079848212091937804429014627750782272069015548960046793688312803832499721175965643749025410625229216541371223212883257962806989357368820211886298948993905598660353322849202586780182376655498098142597438410403224116580357865973968492959116766883242418939930134055670668928291076863389994843773589469276827179044381379301144589631229613445295524667036975796920383613129575155859884189162193349734931056671092734451455488765196993853723315350680170895890419160537956440591016837251154754510650978704248728041508959977645391597955107494087803623572724475748555925695069962420035524399531371108444703904972675250563865274968497254406790567607409026248388149107698505476928999689250598916809673620045829424753130898495549856812239391941304674143385494631122174070967819196594385031293548720620662105802083930514514372720213355241840205901014593338745275009026410447958854815528489690747000830863591908592301045416479915629055419762530006646644762899774999816435906339428739332620120300283826536865114227685355319449583848607273104982542735202938968622576662650006801414167854628717706347518985994692032185888724810028699217091155943924996864784491922480092063892039411729110039442085394053243275743569942587460347236588106911611502376009101032412742468700111062816981990592300454406632189472875602823914119406060545887714336572638224203473915492116456236806723449316664715042435378298059776289049042055648990513793844770293434818566748077601967406881094394948101952589719024346390288871668605051082984298664640917532328940555132784327159681387616775326530447735369460353458770260428958137369555046759130394650732685579262132869536262254336346648741400954634177553722521471067252817352072773968106557830853827162307571734186914145150696506233141026268720575744408434538561308112531772726340829950509011467089981518195181696052754433857152221772523002006420416707906189500148440877329518985825955622636922046028634779881327269463658071045393975336115735896261798833899860593131925094392885588731299769620796307331503437709244898672928302014494995034400373397185787078654205978254953296131187412861415621610065173053112273032532269350044043865885684242928282842674928668919706460405758878208451557055490256192181252662265921010686501467158202217734675492631942520345168748847809367104292777999136766123974703096662365795847162479795787205269677303766389581111784593698403102962789493519861560262622607086459559501051936933792965138108694745928221121325747310376270742083609399748544863757758552748279777807390508464543082617927379499418365317664907964179018870389643739001319352155755385163992094765438866615216913120208755634389395302316946550694641953537800769721446655452545854457974469567443056261593040662925173073037701742127726170252228210096711712202624536589971075103696187194378330418772780456395821641869756426878132182170737057541004993986513175037868697979742054464496875947977732424278890892529972092889315418425750134755531097731516840089365074747554425627954028017435098967543855373524655809687833428821574267805678530648924264956892508330755943583282601729557336258830457235315098426318483300231709659046821821285885471554991504907127794533575778094104584433198514702293035907137524537239688918268533057080804619158365079585618349319979029734782582749898480414424760994033253705154471229986893470900447264470803327470059277704493237296311622667187330685204418947228919344346760651315251366165428862988592048569753169824090810497910717496556423295066554676380394359113241585150777366696579725396758624899472606668290526667797478510048034799149462543583961234859031111583034158173259350117646603784156704169018282739826840803391138330142092195473037972004166049433834532421564656678942226535846640308806457413924824089231825645632846205731229992915634714726703433708086147637525029014607640398097550053870564416786468012780510322033722329091370330965528805403272143167711568860942888368079047382954083420677679892142698656693087251575245788359215089885810625809679482350674667968978019332528050406227028281243225092955549815323022972135001708145521191310454188909244334862902673556410598000243326056048518705356341787795604518907870264029688775545488843138733128505499553309278823963750689318968929472366439344195703009671550937620760886177187546368948449527185213123195998349577105389656637719270162313089587276380123379246767336724216027506864333551973070882923891446884607373240027535790631365509555857505684710408731970096782272185860177840785721253162917250841033305571082375396993433020135654628801570878493889701813297992982286508954359115464313661806583349534707605490652643454016278327861344756456481171073071268596183919182915626742148279639679028086915630856788251526104841844303321583478706131466686457149262656877462984033575476837828347193989738595396817961182207212544889665219911823450808451794424229724905458655011669576797714784274534842105197153786232202151408235412172951777075151443389019659944245679920279295025627616447321189810423646576076599201724916517449475716166345256041582080077151563876635408762034369066396914204191724933896941443302213834939878263137304555675204510661032128740082998735317707189483576219672982259666704792729297301697984055643072709006585265483612161690873250724315885134527612448593090409543751459611406130901484767658420195870025687595475448761809016515975561688705572434366745914430067183932526778404373843978874942052188966125262733338684920173792483001541198184429924919988934762257689583493101688340462744808538626257260556534478745784799361016669013077970786175073681483399813633343723156533067388955132385442468766352601257264874016300705131286212176805714796158406097959639354905954079190780085543808598857614782518533950340777647585121997660831512942842016403748374263281067804688272627768226640065376821332082128324624012974207131887091781545894583984533140627253047993761787359685826084717199750306837307861686248029901883353693429769079057694447651258799151650826621190638068387737733208708815464899418727721877348129690057875507278228395893514533226702134528440545164303299931902608358801677398665464169638310352643437367838074866146425921081281903047302353607294657927172847438675710098949967566858558426557794372401704477727227434289184895205540096430491467527256651010869123930015758571387522092104760996356175309261254283209994253929577731200886935878147762734736675292207804368413659676714283860254465813800128110941753460162421426531001072734668439311153366809338818633238046685774475527749975475941383342154971851593140953990756415453604661511819745397468544282152170651693705902949567224358483826787751301062840651078626527883544860200966948011394554572767739382885786855673228364644102837641425613477101101450379892033761776198384873955420597279327641236033640641794829323074561211152487468233371939708046370164401666557406355750801728942448119128642217757621896832239109035000876397043699959467714964091448154169464880977226969203356255629406056705617206347864418087892525055284470411950911608014561751656847843334742761048925687362873573698327253998097473308872707083023837043528994183809758232705201868154492237155850540464601216029268634566355934288904118439976812453374950963563491365149257251503039234373195561288390623208588386345571539138377884266459217810760633040382243682971285843571416000976397979673087547146792700836472352325575540082749699339714336357445244847877632225107077817978691000538983606717519538200450684466949557250736816918769536296526974865349419925887750154987718512638819520487389115576060766690791401097623248167017247726125187632620694602326482016829505288257103770605980228985613305256865885810309367443286171074684541415645185234892021617118456379199634558108513233500942221088863537039176987648114801864815252193822824032952214956314156308709325900523133415103376274596475197411740114219893050714958251431744580810078687798423864894106222535434818518743125727177053536580023074075270525849591875447307226938808106525701910820578940515498703992043783725108736334734076839574079797231491963737951733257462293948483248632849851583453781826906860266380404597799207538183398805134734190197383308450175700139398902380552259357204745021285287252851065317084189706406280986225162255628327702126937025826465660568086676090098268625995147281206936399988359192407656111891675903642428847827448681570437822757811970538024130903423887184801124835694688420978350002668011503157236195231863018024313912034639589563057150877839945744206487495104169220084187986904420646946194797255581957775916642037796403985753271048856668511800773860969437418540188477292442441519256366944481602365829589013171119612295811505585210498403724157064290681534797005605574107472843855951108315935583772570439855121766619331976920942551867203900406829898256263360995011627418883422061608199457579415958906053718465760634737921541362979402775720650548860275915545098882406700135849208460900316571834719069723760325460777965142976920476096274385640845543768556168543703646936333672735423738542441125693970908284531061680571310293545486936374089429350039245547717683005869291043082550805658509023429974209681758753721286470947060080770168862621113717997062174209025506859779841304443362099882541398317933770978528914648630263796595084146176854836784578371808755424194788657311178796779119060711690314068893249222957332034194075639584203236240674051416848938423019213816042653592273641083423277238678663466392319736976752502691962695387392453145770479843174652470863241715113437538321328115172488822895765078198316111273131565402597317095165052130386021027197029582668242433982509484531019649247362503573737512515490515910369575157529413460110905503899336423529323738108692721042562542466558401575823589131103270380580797462491958235943151513838169201544276634551587182597738770112025067133699359944611398747461028224962391985902668185503692213393914741665998874589490884755296948407794613747398904079979090269565266665693894829817558188365370299062918017539037498976964171921475031395057594109043880862110804954094929912665864407565066743462960642703742535797215475405391424000715238198300177883528925633309761221981611083224051255872392296804762443939753151267286385826384213080642753483564835555089589977789930866554637314218853871345459069380840346357000424870899277836100293096326718805189149263720986736205212974006521054149804854326162078569032939516036984696608412539659286505295697694197027425581966793390089673773005417245899414534724538254506688517221731812694452145422622660418821428911814066144808228281672587403319756355907693455663014241034329927199630731436001944520663806705174935681548566422302313639401624001068129308884836639294342478512590644956427992302624662306476317384006506524673230987261843759602821255059046952752226018083227520387705153579522474326617421783637486870148147398654991989089033499306363090224259781868324509381179720998859619309898873273575515708063869916924361191483312255216991322561560602432645122669112039016621422748050437820190646300915778160379342097502872365613889780507526559407775842288790346232413664576155134718482573518436427528338680240594508789797414180330996775511651899014985950839574590367891226274800940727488624626746671471897588675935732789720156164634513887621702256778830660047658762805316609579587859687958069034931717041915606750541064824442399355883750266146596581985102816469499713910422741022768289773777962107799463305158019004577672861158389314704168969962985613767777375154434136849223277733611389261048880596525594035167649339723036508230670582913463007638491724742361601413275138946242585205470247623434171413242853482903963834722587040932811700136587501247131204415285058929925503895200991225014686334262381983903536549975579382829064913522439720790072894424865285188442728563595408314276572534703783211055707270597260111225828098053967975013487944979791106188268467942802664442391087636843058585359023769468238464271562152071358266690200678961493135528663440497037730967589360823829633305379404297266697708583288763859576069743319460957484338212646265609151370745424191804638898205028527916455886853550250094677417407818800546220807049892074809666513101808853552266729363010297464559717534893892778906626722737722388984686806263728629337373714510470897134323372420372848160771403117668246319415656023982642821684546611871037710696377635532665430040404189668565282697703260999727670185741559169458891895690847546351111286686040089747813233967706504600587185462963418450886527896847486557058757274385260291334503835489481592947761254819653480956928336257213278260263777957906499341879325580861825516108007862790801968575466911743787205061869161916058783288188332429499048779115325683900911526449119218705606100430525523139491973507164955952864233475682216149189320207424500446910753696097644910211795834336296508252983969559420614349403661272242628308249493342104049085612073611377423190129236871430667072880508478358556566891723719787240492006205471852613187868271434205210757700795634741993951706731897688955976387581435925058364053994106991066663644948370483440392284865996994840581776434328798016887788759538208258562907589446918614077244756291025363532491084532414126555555968055644032506172895260281780425280624200568572132759641971819195695947975440968983561630921447786548996204490631623419135098656838161156328167123679801639028435416044146653743868109781178702688739060287460581251739438544562118645323755093081419016039645365434832045381750904571903073651382406199692282674575715294269124305262209469960272669729115110024759174523655665677013344760996875896037043287942132452480787780064454287228679380768149490791817545428151936704575961774965023776174107557549523011525691122884802316228371112346804269495675213708997817798270147179423407594239147181803614367905814551146913907095592758602857398704342403424959433416818046068856795258228322108906231517351327008338615057258526175547870211884074845645054054347784518013280307109322564997529656741567198516562156821189465136244606772361373948259332019304444460182474131322141952299143074635992452208249217322795285347757241294713961447297225245955314185402330189166996641750595776532320795176548123952657013438289466051268798996102723431635330029096946814336053258389813066781811795738634857898016164221664998367572452047446839332108163780161648080074899977507689551996031839155464206264803322956149707907693002734576562887419354186381128387974815901903509516264039678685586108250190556880496446079488124064545361995371363983211282148362905496199045215336010784546242844591495109482193434873020082360783560139968368104228836173911773867516759183049471534542559893812022869557185029331428826995259556958200084120908773542089566660852714104255581876980555475601831939805315287474803328395099477538632466168776251195884432786038785033885683792098068009561385072259866845868020918754220986870549563121071094476459543118591019764387844054176649830861356180439309823042922578183502620209240625760109820900819366284071645483153412101245803077409244028339432607633625298797889581870895405259056702267613978556878583205930698353804299492632170871361577697688790854194474501708184910262649223151732660583071449500809267450688186225561900564744553575135014501427389424617661735414454001312722217529556442303421957925484043400867566603875637726689424990654788335640896624248508366211429524314946346499753875585712071589625041079885133326326270243038240102213726580488897107096234767955129117814079040486058584198626459570250009338888585256058658183816623374640467347750376635598989585117635407164284917933199665949449923405279634327950453230409424482861509866098611678173015835361187060462469920407646146622468015653396544780309253991069517800296501360049451455491274830103737389907404932911932079239649211828668399400897860370350764067547387159536645554262872762438078303088209365496563011688087195843820781523439127705770223947059158671055169164293366046806127509069231418553739948733050532987462809299569138500310955645183676845393795960991859963971467378250482078346839090832437240128612182603903392420879394776335483826884254844212356416052472859117797891529651867179219084349949325301275946814082463632842627280158172790305393868886406540022709877583611774529078188902386049762237341688398409264603157577403085722089442402203918161739855487864965407995197495173187506085497328346679043957430510158634987161854127235731829010351578504666443960470466515699065859128945797062500050730777679105815543337292367642909682680256363172744668661297550084660831802009412949262292595730772032381860052644852377496414253151735747266352486428045334121393071384233702021930609741130474150929097690141567071345202391591979637919229099804867718844770970237822037446884496929196857034607148132209784469592985796041796784268176701945387824810873267488545020783772972760791456340751386864614092376047516347385877545213201521338930497776195003726451360581790755555738716255178451811342881447555645310712463351946841568631970361000481196231894409151905523384387638489820818388998777680286223683531592072867949245196444653973679067436910695461200898570734301426653475992483475410004139585967790657038677802272991855972033735804653357554524773364118462933419091163615469651049856012054880536406402476156797731585316413441547029395999182094736059800677011398652713153608718634577080721923435150505974846960141817862674178550305846701974867642202932461824889778896237157019333372630063794332237940838168497273172152658045444125632739408189380462485692820919088821897257018374083419873466580826056825693331903197252964588842157665989247317449757286643348475268824236489860844974366993534664671148125696517645697050830506216736566775505935165404902624541651585696819054939944904674548279647391952323650124421861719903689886929057056890735170800066460008145412275998870125180003291616594422336771768930180403836820772953433283028877323985801063928699484642142882215985065251853923659289795784303366544215008474728265621780262482401585624583712126191544589884979020698128062653277689966631225225197142249495982231286265999587813036386687219101731365510071898560664436617731639070504006594774432647428952623653716217746752955335128986091938838564473282067696874620794379820946988847903704811687940637488393192488713539080266386325280848952504414124125088519433324687690956197207974502433962515029142374495687427199779400059978875100444395479408992046214539364746629374754941997546931818404942293020815612738607518290068192150589077646396234501189628668751873877168990141634550652005702602768445524687084581704167010089134503313204516570690717031979562250929721587369113053391571970032032085431499171881947197881198835649743889034531246757250150407768841916561738097212058508647634329877439891645598395208646578547143388984693987133164248526650137350598552797534240435604673620074859399486315769640413645598584802821600060115194067430505815696521528292055985009418646991820256692298892509862313092179732909507150969883275321265814279745138214272176813295758739636393358440042968043232089042737497012433745920480123825952747010141555578541495966982790632182421350455049639432610879561654910833111576144451709842999981728122207426723588194298053416584810326336475987138849728259596580968155626945498779783347258765960044213695732702079897136877097451001707897513611757408978802075151369845835411611546307477667409024776313162009462789116138738292697593949477443187931310936315693958965931548991036772225886771071192694771622855583266959968442015920660341456198784210601650758630715639554491371113844499507411957869493021252516914873706989097304318853406749561007857992028112676299133294689334358362823984000866103260807381978488219166435523381154519833857753238723894123544221750436922902684367569630135648160364953332654947507825865630389647958170836481432650687891567446340749444114524266330284604379170628610222686966134463364357663765656874412735489049335270818553590224371189570078937355362976002116014235831810813818113996769275789932734116379195278808757868926551650801314537543490181548200401886182237651267096162492897920925959972336992103430352203129776881539771019691468600320673004462885932860760454939270299795811860329244320018932983679807145723118424093889478611572367064468769916895662087751045039023660845042526968177824092325154802117674445005458777496451886779765213673193233382443150333517494396154506024354247072798652211326163687498847845342157114676428822790304308714205565573853954401598012388734918650170036189565566752469296212513446143328236088543046046411599907702909552137897018839158839374702855818790995262942931053317840105948572062456540203248481717781069943752437638208754286951592142951591401840263254936900671288703923861747360258917964362513604720953610739548013910153196324803936307601666880621362242130147283155809810038248476904263466755127397333069874982573075313356800713760678003545674663064996238435448752008847424845506789602898494328071172572046215114736295514271526277716213418795621254130639428133238511897353307380109385139507201031811376418457235990602016682062839366852998860715235143945887472840257427164097004162099359530263586539928845103349036408385541222531477024119638451993154112378314598501846214728880948536481250390872778855576014326440667265047572580931036671857324637627336833314849172176656658400106196025801862034883060699588930015497864192408416029855466593453089036028852663033269184636657015054603460979179588146788154015503336761499055844268567104995061155231648291737530005145323381864415459927991065294241296978089881623240583070720122471964481690899743120808336993387783675413650859393862498259744833592412414093514943934820643219939235428327808780168055148947600438740600544404701529255065436983244395152444860682354345256880663684767266036953866748141898328700398640981378490281442204636099897032880082866872271714712064466842853735167249447785357561883306260071078915286380635238480627272787568534393152396906321159078351685016110247870963221126057532307319785192994080886665908147977969913470863180558686355371257322262481611140166083515642358558942088310065074227390018989632418794686166276754500292345733450455925016162553773119562541126868077315935190831393253561912614325698925741501895716116575377234495384715846800430313010320749365339271710508776889388659770301896103053219038711698126703252042224898818453097224873901531615882485901024348059863048189755239710729821623967389221417831342209599785347732512583438989604727451391752928461234912240857904096221079516770047109757034949963768594896505399233115732809190077241527994025895150157772930742135937616759698576051757929262529255146480453633990002009578249304184059240741841789748417254540693541051823101140449184490529997438860772109182923707697848312778042695041561374023481802086158251715613326071459321739126586243841440765738412098408101333884847715935272133560651889642607452915057308315772675451092221172605955264016517230667619757052433423403287261821062386745326914481576894992313373426917371779245755867764436861774996978115981671485474216000609512923071924307104968659097838002141397714169594495385559742576980513503283272388158220374566181345097329111251055780447883757820145249622129182039746577035652127947427236587219321013055675391459364728407380539759781673848109022159253016420425825040194429998189324406462946765851728495564739437129521439384440738782099028937973532693459740826966231079892006421747766872545212088300325856885150948948330816421693672877899251987795452730818944854280012130454625243384552152528159915247830368893453124861674015128157520918251324762276389019420755293791910244063501837274008707357648602490530896553644749508017812411592241393391099796275713266739951456237037625583327030838490799949929415036462155385059111588392019626190602280099261111029777713553881766070294535351885763933888991517162095145790910821734309101907029242426202423125336881852589804436769581281111033787870547709500952408427951844802235173411883577385280030420188803007098348855834622835210354378869420520400170065963646984848961930679368834088370709046499210774121286279386827633081365429283433130423198142468905517627066117878194301095235648944668437581819814703086026540578516079999399957469183299093097231000924615519222642456912942656921361553873659327412907993068687733227311151772731944836850247087683788161496532644267439505250859211919383995510265627568120779025525699521579745403350260227221425240206959101798160643006640092389074050753577860793394643712635271984373395233227752694378083541438788788193312775636628427838211492229629053302186409102902163137076386123100207210277491388245335517758450019339063140499902401645899811261700044619710390509763803791173875997584609052116189898397134889794594547792829773262084284297129905651578453014062110091671150635094709157027751577310750436755833162179245894414387896194468004998384950664248917222318597813470285918870654854173359263073823629842936462833427808521287574500764715384747060188581170573582322818338980958759479578382158803795141481579215331050074391301472704313245290182411787375007378058505720619010556772446733017913354568897382509884479403699181456783246315133611041189963652828278037594660888881223130944614106520750406300470890278803957986329473343203143516098496437888406929720236120558469429308273045333637138709231845343261558272000156178726390258548063295371603953745289344558915895468144421243231031990990343522680154232878445880964993928746033492385310259917048498795028851569827530635610816881293745601989485848777679685170616505724260746707388051186608115068848047637404057916853081241703772085547419587094720464902365263253817148415183036295771980706729368288494856029384417525494813326264263475215188657726109271302717133911335469946834642487766512182084758485399507784619641954961425215065907718710115943337080998573856171284862621720297105320444662947680028286694850227771093748784838353171922347810014790069928332763274776422401920727337979409334188551009032516395526859911303050957408418551303956847161308715472818552070547874217116222975266894981732955712052389092553100905007027335947773949901206980371787328867429057166013298297777015343301286750917300845589589150429286511869116712646766342689580507517216106025320305740907715852622715318264169988820290627369199033449709429882837682472622697275251205559613389088076592932923309221236296758609097676868677147663931362675512483862572408607874720932497152100020886807745249097528727215323387837259312354376901028050833001319149055609037102544336440458888950481013240487576119159905637477448942806349417082918058659091470660960843484566591731006193384196882686464631458570398082721664219047143640758141145538135144388673171447579076798254516806893102870849778594015601120494326120318013682026136352726363131969978617631967397380622823183214519848696259592393233806507974210506880809791044108470190058899242236756218071974601810200060605393986583729195034089195104977087677910764820975342238780742281882962146403921060189057756659567092276196100044049329103042185742239214023440203443952131541799474413032123140371836315726490007744481272507404769970084635537187326992742406722404836554580099043701417367689144298633671189691304825981793114342399247654253074755280322523372736774995235143497588213034584395042365642279890576277117479908969383660250649052586255068351332159322723590725011578595421500749033044238363203193466762374387094491286529547381040274313324306695334641268967136972070460239948858768796194897208053511157561835989982863633398961611764191195199890893868580928055323148500204778738737602506686409822415742741565745702806752787506073207781325806829514389166201217752400118151590895799134082421758565381142376641200313521997572086578818291157029028543929837705284107821772557747715731474626329254235568380856965447949156538854961576996486725866376508373800921876120478795542108838485911544102245449767216919268775808503774836720655777997215754550872563310395688713791380833946219615097096087363799356018705485764409972424009088366395181636837253778421619680533764367879240850799897719362600085020475569680498101324850660168116592372477577687895380529103098166359954728397796580431040096889466388244149945041097777220106753076895794649103179662387577414088104913023489470249099271765471685803803488217145608148003564014533887277658827781524526426458370154694826519699146031905920468284294850524705976196859888918693229810492035150429761612941530621913567554898106930941410973069005416472088515979673671115148777358742404742881677660474971147459081581227179406132182232236059938882149880262961365109342982114809314902251730155834594990854039520979179438593084887781872305803173953258597319390804764805691849791650636697689383914887634279430689057106310455223737471434758286556824809704631919243560861962558746722064413063464639506491495096031334077741230831969589456180664917110237180777486714771346099031626445849919884838373277008333635169253099724892344367693171460793724397943795551366222266288480581478765050530154795728903216041646266671227440009501806295556285822325430326248494446615951787118748656722450118921853572573056490771238861880524939028079079389238500857522636144232046358300985643923292915428934528138561593642083736697835462384279140053353949079103635000562127616425295684843620576103808483820131601397609367093528561741599496635863591828268524364370394806348794501203393400581085614396830646097275480708129535430378266412775281727975074600221435539834374741343364003367778447492790776361888154272016154983783036908725613410817602044226767136438990840475899739010688393210573601495256795766268930525335937037466753227980875370631000670779098656110478573755744524841988216581670744485916821351786101026066678568714375063803225591545440315944689197505373688636811251691611636230894316058363987215074605981277622047613138760124468134444333175978404388059129596209702177825180087200530499265435067726872195285770973789340367679471017139735977670579554109273426920616578456058784351906723199302100061398096970377228722308080602488234935304969225465375030007202812076068512211233373263168001940422990708232089565657807570752340521675927157335950357874943180048914542361427160334949041483997193252527418267975157382626365149369952257160821892835761621567384147908811182417470656709965082466295976307957027781569000134178467610246792104949294789626737412277654869415943435957151743216901201113639519415071148179270660426675987567420439442451925961778654618978981823771516753444243610143907947590118786985713489368781020632313358676310893068227529505231333277905586211390000559273566822622072356327405041528493830902836194851529862352259458241439771991102105762903114436543778928405421832736028303169882500239327892909779887771174159448301904696824077495988459324582096691744473385524702684884757354424486098568056713507875655432623546021098702511475662507875671263097272181729242085864400977971023319522789385660027913141610175550119246167340269790398381447806480407978272135742041443581694318867271629388867409195532655916626240935245851538456823209485413542338349075376133564947477085610367027584316744232956769269329736689799361735789095472324755130908093293784122010865249352261708167092344435077917707101251584552861241494250362382998150200574483670662987096934664149557367993685509895575878533290007785825809942550796525697111265452731282003695142673139871649329292044531968015007426384756779094728141307213252843738704999325547836111105422986275232483797823327807146186676145795023249645365863450570146595379795942251194858674293511365318148343300688600100038839298956233139999993148343419303369760460095258199337772758118055499323716551408807957804888640504620161703504938296816658476219871310425925520341219131273385145279065992517120486879500382436431231398276790155020248460713715435807990135008407304397703711151420045548211574033719939126523265950893287299096779460280991442392163325645155758060420307373589745253990805437105155092931280242139280523886235328582985734715448560166516980399426175356699758805456381140230133751321140822200967940912626391238044754048165993774958544894070922637363172127202929907042593783293454635105110240868207568069324315227086985710095969457395770052904038951378376071241901279631576054570094269325451756170625433650208718964005354120252114199228141549632996869376739693999708837627110459892295014096104880227756547182821982540188168660098403608844070881570768867842969714309921065756907807115794594968301788836762274655006851681769180957473754982040683169305719487010680225363008673627404551786898499245793974872533227337456847781337345671822188566446934812149322733301818357853287504810019616256370976599350856475176354068717971617557722113837432244176989795737143891596233409444987044671094261720605350656320659931200642378972929232904326449450809772997030643515289851717446086373267161955096087064166233144020582224673619730343625777944546689750337613869858685528204043626129777356035772805991989241293601882269568624996352257149649855165762495416990995275306562287045042572208977919895635284586675425460300803099283100133489550056817552687959932114893784954572612559361424325924242954515668638914967114815914539677348522361317267346904915170965241153985387080756522683711360146794838521891483556638332711031491365658179691502600760447644319983197969149674051969867817405906154803344228933624657511434413556994741810936533708935348780396047354735095799390968765906729376815281529564546293301998369970952878910875923344765099361980431516305360388635400044881776717674807589791524886862393564675002368549680362387186490702732083776667688340997819934633292401717152845400899253052641605187522492001940140573105222616991292093079939748721508184911988784923075527704170980013474059713036925308335811566760425457518885325966046252687385935895932153016269601883217471484508494666507596596839749085694325453608779541364977018246828330262864983453821582607481340129331684752167747122650785503826161078051265676636083767634407245629827402205502720880014411188060858833371652018158431482026337842661032027215164278047576888797917080773086901102306538195174634623965028433850304729764275319576194271711338589474168166640601818723308177205942524457522674319741258665228009367103720239992730886448511861586743251497888430449070490146635746308426984930086561501074609867504255915716469204222663208448369781299854178799684585667452889220333874127822759028900073741331699074333262741185503057756166236634702075289484703650855890681424380922716336711044739143470940250546714014610644730508330086249965596212487866054933009452016690151363712933479502201752163566736312369528791313712998369822167583006431845786302915524846564780696433796900132682821039827557106395467294787588594325002858849206287311529934848499079860328051345279430971813791155964872520606308141376040065245416261883784374514503113338935501242050635848417803154769798200030679607889144559351655509683083419987249583855902205368707616596495604525659905268039132397819992441259577871154782891701032161381366420900055680525000572641015514312628184289434552564888892556111703894352792457819270080559985649089114306295307749073950067081361392000348606303795105235181206839868255168924204738971329894168721848246835112678768879335508497228599014425873485478576992025205752583339427840482839202865169180956951847786602755255606562119000209622620250853644198552427225484222180540509867863099773712731671521195771965778011962182798447241228916965517652093774996248635730302110686357719962069416243495670468040162036853285140066743074586323232141610218777031375084223332547375301054412093750606934082591563981830097630207367678623368363912209971512256923476834598587331120462249161554293868933855290605515024335938612070913522847512725188691356268223228912192262692261857549221399506956550528969259304971177640771810146307237719976236175938752202249504096989528204448025794088952601114846560849856212766696859164954431722051136678079326870259368289383369229449718691721145828100725558069971857098622583479337422240913269975317715201746528301842507068421152669583576491507035983544476919507195681467042008826154980877058000364029367265307602412424643716301477668749877206139271840101138210918797579577443215536526258903013726074830270015688610479800577741809129758952750228152005289715398822112981391673644352790106557870975559907869460755209044181322564724308596251692917161192276962950167801488944388630084265547343078962838168208698469380378561424045171684507022141834800251074175360857979193454241881268104601305736427076357875058798180246260673773331552684931628949844811270557455304924199215665957589462394059105182519302178620471885711642800318490087195791765963197342851032926557372073012882818319710224071075791808638207754723383419606412324504431938508051202314227293574199499629084072999137436231007210886217841336834851486290540615768044951669063211415817435921790775511095581057156198234024442052763005887383264315313733842334956415198656363856495921812815605921422374550451987662179699543638239575628503486627809623661542221956312779935085678303975774597573315795435501426374016505578755363154505557544566909797094755417228042175184756748449415703557707353392795481178173942445480784546666627822459444372306812714497310800764952667164462937945748492402642943939445429891949906137999628021839241423709834259892147333229909803371992027246253758281717533657315790239914797065945082049290455795543438474063555887118475445987287031231512085714678480211883007411928902247906116651173916083410548101658496436393717234138507062057229536528427311134884736648708497819009317132773387789465311903418995509716146228306188265798862556571696904401044582191554293197711092059283434186348706194847942215419379544264308954003932004152014346840321352309825351733205368728855827548472487495398171076296659394846384804503807049812418341338007349647067907310647866963908289412098387303141111504570462248491601405475477616181522472238727650948517111487976152082902463770484264351874156573935529713631934573506988834164510559592175553896727535794343229714158034715842418976341497789507675618103439848659952758774997229503874713332544772929927098801123083703086721126138901653341266701790893192731800714563445898259012234893406810942713044620972254806708472629946306205749015037058747423222827538934753379695780845038994244296074110556734192175982836587578503326048227271236814055880740195480210125895322376410773015599784205297557130608261900979807901210791524934349227273837188023529444664767659229548743499728159947003562824587285475797605462440822618829934233295107468153946267774872223284037726680407928127952844030112734356172787495757545922913043949359439539519548516186843314864072155335887070319796341492424042491721564419900854937254968685588445901410241299374693944173891127311106309388657747956413264106632227602381554032774447480264048816081582942417662888372374187116567244605138545069381881365412459278464361547990175233304843789133834657430198467692783571810964945747849039360036052449785358210712766393860691196058719047821982596910509394379198989227735064222292324607672317497534073761755947616028811665694226535226103484130249584993781060330728095848076629139418565834849017217339324259205259602070914416512681377157765802885978836440964016609747909872480254693992055938324698347875788224619514660479657883334703651703679878307304666315731758573634425107184750351727907990576962617923402352010304796624800865874650398020897354775889206521117537386987503593210369081700300918391997277913562290113897022882487702683834033985132695855100299040317758389730014411452509018887779375598372390425705684776465454168636971217322934262758780123865147667012245314765127332019233581146049837985005652052384307985899450810045132261162348365108580832374381262904694033841615821505203277065562695759077652049014053650300477416421003773858365720871037366906088816049904370824411419661823516763176874432373818546382891731436652425692199579574047534183566064290401700277065511046499626552259058387903555144382144407173247988808246906645887877353693939519116530128822746901434692455294823485970772362045160154495065254107357895752743208970199350938154879231671871620792831384455611827529402059750547285673063305720053787355531482518724459599515485346946617111779883664962212544621792686566543081055760006339791351230917503880032203606878603425848775687250443980494571036964586445098863822667753117343182433969077666352795141118308991865227740064333164297765774839695510010161983946453656692919459473369497846818857233071442991567571151167227992897974035135109104053619695146516625809420569729180008617697795400569019141391731162896800668966977850862256424771677305554124646490859882312850501123011472113280887785490903768364526361286201284423151759489736633218498660984807459236582013312230103138721204018082447732593609316474116978520846713192061537438526476277734172277919733314764229180479061985307776132351222458155162375905325768936454318800393590074900713360879190447957687284781773340015216054505576672628880375064604050829668129386465184934398987398205324168217753287977159727192167064599715251010130499426896141678793980140329666868711283550091879303667723514851625835400023642476910776942950925344282977208058548017627978390461505629048156369705590610871089242999908750291581003541748192327988906223993858187164662566057746191175208658805704326587548403054713207882023156105116923366018572603632244003744218118758487500024341997866721353433289222982017841148576214807428842610577920891917120218574438161231706969373875824045085999561478543725699071117065511907224724235248657565866273421411193587132267100658752255859373362901013836883204428265388590779183787118462754548312230436069367680802768468211830207064882612226184535231863359448650958905025010782047363085319876906009770855786595575394367561929871105016060699979989660702987446184361577846810428978238731357854735322911754692447710401567836545401591019281810042467159123025883929217975855001121352680120018852530675377845853201856294690954133342241112630869412571013105926118397956504379529040233220405561821096164713251366333994462741934792005029372821333754227424196547437267751555359866320144213294248012491566477552537647060926077626457629083793275202352169396503348592693612704826652465614954826178611859850621888304299832307794853596620930334606996882560016684403834190370814464503735288061559714852650563216104547776859104087389120563060692229490984948934652312245875789776250901883954184526395466428623197444113837604770056981258714053655799661538646998600112022541960821762789120869488807313417408733557259091047800219574676226557417766511686532775099177117056315804272841001914378715995827970881404307732914524491781608748081083097645920478395053896615220017550473288904493614377582418441433153087800582507839790272355579884880752446860566362653464328014529201661741664753038571868832634735867688292855342016324569311255961140199039866545444497873064640312413881810744282908859069212549438000905638512938800084613742979814713614821626701583163792805572416663065155555896415127985191733254084205192097265637409391606521820864624981749477568168011748000283961288360084396501292255844214309678584479713148054497019880382469549256241213141553751241923730177789036785994339888841737028043090336282242196760659666794054376087266205375527332872372298084439772433122605217465771677378946925880333025281379916220598773666420135836272771065004963777654138255333460348131366905934901778294985720965267037412348604364009872329659256455756494208055856503868966006366095513569603182334210472979428086090394234811639473275168364875537888634338989952850681044801317689783753124655893944983412944643634478069375972896262072877010794246617352019968905443947811904905927708302604495268650671707457134867674156057554838600090933118160437471966519024629608904390695092111351785467625593126231118413321369954240250296529780038346694460870142869483908035504161612143061013142077754960678584226846306965925991062100953045832960846055912272196620473797959273776032563508990226470403234447419203573645316377304293508264981054663239777859936226363482065643063023169174170597082660160215492086691299859756884138780596693660642902532948636419726694626868178728570184965870715233207746093063556156678145431851469786995284600935798570588427386719127126630239705304134032908505985328680404914703301233534470391490226195991503315690480288149895896742811920774971965184759827402847840520340164666620484619722448860958920392375910963321651912057097251761433827274183069242319997182511347059751619797846282687570118507387230122163477164675934360619746544084115373864355389532256401780104458685146163799166613987069743019699006683017544161308649430954255891920038983391120743897807500317477357660992762066665563733472423351161636915603775333127759590784711342262668573287889846398872842508806048888952600954598032825600935826121776496810211018415026258954120748060413867284126630381033714770421414169438515616697410401214744153758867285350556170567030182526785435509089468316315965903582070620888747768738507165497327658842118788860360699057356521448798002083358030295645309352988982808534121605365698677639751224771985831275432172216468053452232388747112328850140059981217416927898305737463323151317905780470514218188873697938912105764836352251619595131523083723516557368237364368432653337995834341546288307394784352431953556564021686256467626650215057511483173275311900408923748773978885966915695069945099158892676704235351359568791531920104537891548116987412193714095993824598806853451893528847535775680404987980120411077617254313231811606538313795510003837524043052761451577878141251416078374646193009908237892521192641152681199733134262658071853776021663962387369842194776677000012703130116406919418137324676952322755171008787839484488096520674719835064218988931429908927408500744798161945818803527889351439745155615153319031548178433916029982779266370864178614062630236682542172939263424163131905019990592745298898630517161783126854390080722872536891566893080040027360666119861146694455939460903922754034719574481676841414915554922133138212310414254384920113562863495269506975824589680524218228536312468218305502707504449611702398286304058149766827906622688454731666530440031172658036064434678461567640974130714067512531588397702080377540904195258627986916204455967554391514890304911729489227263875849012460100281336311942021562135227719982551323238716495546422123870411975000270930296700018017036859479187996247783075308860039753550962571363140857995136842061581625919425320688847942207326394501360271227220752197526161595851400971042336757784831491413590804115367799691869219046375781450300686059129599575803486895753309165811645321089032337997559899654656534321281273591859613373729179844953517447273785645645230220047211129424407272421402180023872388623678145945200631102142064612926633961608605055522881901266968963053464256192201484535734315026873823217474903672092525126013768021942610677396812089459560630734637824281993577919670133276081544075168348959689150305739793583404805647080130085794506874768389703921227201410947113920411946189806028137192816734768327418104751999781592317654253258013226289709205883494370067381544628662703574635913869821826469441486222053549439681156844873205077038992595750433643403515144850903276979835341007938334585455591685396480685193271800676213192839051772862947207367470253743917811014661992921224277928725737168438792371941805283125486334707860628786066307951688018854138281105885820601770359223672997493708506278915742812579411320697769975184588681851298015296191136813637176834498807283709194876363051213013450186145034105342832330914909202980863682372704350642851002993416051851533658192533976056889516450215644656038631380723578971932053768917548749739526516688279591425811463819238666548517747113617804582878901420507017993826299201528365665849363711504796425726299303195022624063679486532192043633741958419285408852359194272482930412279301903171772083766072602199650178351484068091803074411232692399480227896416881604662541245702986872208227239210959267215680053076867116016478976852627470736795994210869013374109584765024290312850498152628097094019545612845169708494362666750693985184861862079249081082133943396966173933776623152427090363584229229652446221827090731393039264629249120367414865375135860565683143071579085749983828716336596409238168936853550711686114073910166647169891970761568409890628056381087646017687836486048570855282947126617394228576387461675501490089064367874769447624579394971308042979846616655590695286394502997908090862676716998613055207915848908373658535284660934185945177150265050314271293366074858448511515517887298289550066807038697574483269137745024116423004975114402588404594076317694982081811923696941157489700303677430009873020840240213909297857075836238254969317991736580895036802456471923678282728177701284178663553355259617922504918632877846456404876651304145730584225467780924921962305287051274177010747149501376242479353136722439488794240983071675217636442480768787232745675967894858128303742514149363758011636248143263123292145376677794118808469324703422162407330057585432415376049085163976104707004930198730861316349491829672465138660453695714122647492703029768487711143383704694424122010618569667817858214278878018443454942101224493234980446599539524443582624840116594304077881666322494508531163074767648191796740437386696272793381838756997254914025136352358091504897919113089138647684967987767889688103902292506739079872968417517205691457039067290486612043145080222810827588533774601334080918904166545546162927241558514784722851254247776495925078996253308598119813992598826441691981517103920481343097945148338321086775323295916903041920570555588977414794353242265323752270864290544611722037739914890783553149289379880583894540408784110313513403102284494313164342007455149037179458879547832126350277112643465023992480330050990308606201588469600418420132029922274258828031225334524780747433855282124449115683828421852791807802089764122885237530459614871884666890573469960430931926727240820199251179689441462689635878205274972916910574673934946059067152713042198023263128628683294183723737563238184297232018931826719416254769319476266563096734460939537387671333198293784501980758992601377854861485190902784950481044505229783487655419064742250875471524012303018749814980996617892433504134088055309069848840920001555498669463437671098087509000445304064034414625237343637626547294102993366057489537816480442701882562731830614352462285821689241370312666803703029489547820103131067142647901692297191374280354333005462658784572982728249087349071113662974678972984957419142793774439956689702559229503478530264563640216314830539502016727800614833627159912878797062499437335950962996224660005357977305734700366582113493763416122225478021770802251213831566798223926217948868389133055242290047932316895074641349944685655058805421233944452620180018513113064653169955905145576937697830295815284333085203165625363321665310943687071317772270362377991017221019121301755051584185636667712918906574637805682221692823331384302557713884643429479515487653584142628712336692767785034751779428795658637997724555278688170703172216614687489913271737101480493620917698187200332510162843084878273665775005710162399398640975699220757509766454605236223757486531080608394227586979494869134055166832677278221921033126041096118362655481669828042422867292519368249860505706435797718616354530944617422981400685494524013193282657070959742037171849749470747181063845185190288413973562290215563440005417408817509603329922492659240344228854181072821158759910522002453067604275541544568868042832619584970032157610410340914369971981209123203642398149200820016879880465214860292185908949744765105436377411301691853595490184936440689068032603371336090368417249536952924963872767359803495287930550874752947422457722662680816242367147279358085605765456963121409348625518022595551889790359595246096569646284858064094548748035579269877856095129294505866269839003388016192161145426933187903740764107344359202437331521329235808480392581711725315205049435855184358139960908961036369640941125442795674498087951137729328041928944160950365927028677252364366904460886158107653298276996155078355784926809393050201082214338880523186588421843069169970181923553791237898412684878832782748769772701115755333417316157608991748203858871932681989728266850328540685329525955246067309947589520192323060956845183156829910178466885466428743681728556524143774655867643304255979452102854869430488447542074131625428077435493253885335439238231124749810559036529856468703538201039911250341163396747135533507351124983026317840418360806089700565276846568920292616220101059513003687683105111516646232124425917828283816041489105207847729562497837463384013121488757662612979805384421911960983379481704121555303287667848278131722816240618022483945185384883182152781372990225387380850913378427936743208368184745335144860296859362413129892361932336476070036653748037166592818895025151708084909488023228389040016643643811587644195366047201257418134094662620172029555265960855450201441341239120414658598255552558137542875284511757325405626439170349473927477786403669553586490886627801397044124207539925022155253527046544775642201577419872865720985033567775119953840042720417475477233867877410143837190850851225660559953814345138412277966314129199536053596198323839116945140464885684603008732194949910118416470397652787641794833070179293421941300715169379592502209422341236616666621526239901819375223665010077326480327645410763993468601590081645819609535490588625826872021339776951366769236291665188722111555834959425199460636793103573540198079196793560087745646307690948536644664873833805407187546411896775484215202888043942419376616539005292958894005469965025703748718105810996362203122483890906224851473410156896298979754785232157259894763210619602797099316462445191882189500088604162689526474061886656989122487130610396599015072857904357758854043523366511129167991904141712606337764623426805894887990161905796606745797176946442367201125641000752739695607332925428744830460894876643851841537575068701774192932545142765696971266174670137282900325686483789629198220222905192946580883884076645435163550701754315600607889615991955409587218253475072172482718803336598162727057459575447192653411959371258344840211766941948240695788320640421931182891730957297140273923861081095724305761232819487650062911672217577151220067215284302749209487344942708044584210193331086277089337638154748462374658153896160773476476659068332736094948283726238161445942661132582305672735973143421456066962306283352686804474934458050732487077453927329519525537265579996679915992931307934297150110852884933821101549592312371612816518567965833372616175144030575459038102773884335329093579784995612035186308469944897388955902035257830841944574754771970967185304724488953185654827716736038999761723291696161214768880573612309400840482345996104987530276230856838753364770105859652981516327109290080048527845030376470385343474957686961986762503063610160515614926433236752187224385308654261529828636850025719168053594691946291866828182534452072039921317806505573476246093372910300849590935655014465051885458012876214242473501003646403307564676454885911523525116705192925462690571100049344627303274238226994394877042155438495042157951241229297118502626363612062539550730340679623918791881949467996621514814938470650292293291468862048016867163681040077655442426532192646134112909723082511588458162908700751417229877829237063091574385434974085786982796468260184285259999408886354987227112738144103133637044757174308454459845981801596948445373629076668117600978248629507612070234431824999357979622273306442450604610754724753306937430782506834233819919113562236915302985970235764342447020505041302328418950577616344399826734635976772696345507102935996869934680161844171820047314544705301263782539535599859564196268579194669130453091606041800997462014021751223778671800490472529995999060051207138885504003798987646559115557687927921492495192633600980588202789263483406663202453995498490003337486449434258300340393437684121600835223025947116456591929317578701992180041560542989012146763197471540879866632015086324376812976018984880285707432592802527905816705887609947129350428250270365065391565150441859756351585165266097725577066831365553865629208868589080084479870386077091567030381062794497731548052349141344784911555052855916146339955686183674243689772857149318561644635582845106749447588391427640948501485392936446804280079105625511957532432163791829032010259409797850022718516351930990863970463388194960260541735616962541177606715302746569060804176440283592773446285648334802202467160821632471446816459030973269202929771323790897202514685926191988037938303901878211141865211317148755125760562564466953123303526415262095585194773401101637030907497188000338407893391459722828341617540317225200562675195305015284742436216840485116356325593852445644149625119438035644476090496279249220559600371653853253733566282631815615405073977249071597300935348181894282063477164459370119262886379404749229814499818575958734529975129370641637713926119399643101744229779692420932664339426601605723453852964133719858532328222812698305877656433940051773342942346072756019822571855285751218577861007340338333561672381145692223088532864500702130304464470265590937722200220479257774771455789514530579313486180393874526937015537869332171119608250414231881929402634358933780111749453785454543719691702118552489023570861531957017658889190861580078321236869526759559079135569551684709737255993776418329201138250053732838966476683200392677935975968387937238488953599508990008482598639826255965480624976064371663389584613681279787581039569056633285460083929311075896116160876083529137922606030556712765044190861583847780891924588379540858467251685643253083710955443011169636965200890202830060526874225928778873680041280719632669304383663119907775284869208677296357849703278928355954799615688695190858012027936646275803091462429979881207610346085249249030043708843327947662999922217671052294795902222229003234891059050529567382575424011970370002812583221480093399403037567305833828993461745417892538589479461612187462806981102521983617378273828883252998222202222045560341222539579210439040586654557136741407409118246633779768310187141522990573616759008776291107242900945422193171726128975900490904719872353815765745393165389816375097984441284740475526295114593326769580786449720413191791604572087988589129937590086469952627518336860867838013437231757329917396395620139259299902732668303391249309429631934437896245739466709256489875909379634942430236232725905652480161648609098372211702359428775617596525370428837733544474997412125182110347429404050136263044873512615937777102130211041922575725904098224991974481137987210045120396211502808623753775004762496242506420714125955047003325624355741516993550571077564729968326528709109891473714009163535868124757630651919447467216038325153003393338873946565257866507040010045770206346438601937184369147944020790371585184154881091341068450896394468212001874433647639785669846830882140299358941934933156274544324170697523749185394294275639616493336945154928123889937198029986945529812263709829643579738569173719478235485791499125005926453300789295255342987718664520711119068721148752971269481544555271857811154700284449393695723871737241791336232581609740121951095165367940970916413724613365457106561542741117351974262766388503110269774612532501823671991352944327266894820776233772344360195343760071604874382872714294179798499509228471336572109674528072644870621366368466397898300789240354798093236090347336157533649252819867584376398665452582761613901936754715234598821780471001128709550821510204212464160876725857899760366640440975509163258806875134494918987869711464610799343009137710982532213908992539939369233160722222207251611112882226176671400011056445721408925100735056913036288976665625451417656868332210597539580208453888509250301437596358581594223552443053927070616409872075717748739180304606689082766560268796009341623170212450411564196215120623172455404618349957141657077392655825512345625635274736633425095260120411032777161504012524622219526958714717349113551986911335927653037597357539121464761425371477536086921453224667732014128518453477954969945845257799603653231012484253027059526848649828221543377330432321750651919226455327138637315310634506399325643007592913384805732572343145562790865283928624047151920976109462602341126838971864704205894188562323377302755101915142731728314553889828012190506269398403056633495508901285283167085419116997181606744454124095461992740922840231589952188207474332995403530406156862536088505351603622611022520731087539482397891850941016315066548863350532222191059683661939650201984364090417321061954179913794044526632280608084644752020245670627189677189771258654748619336836064826229914271558314230554271618388414786538755329156359915705271557749213340494702459920988487744939674956568423938247738592571875612103320284009098589291885125311286290378558987007735896646493764283951981845849213556225666185432896085358330541693310420904972705897669583442274657514347596652650853476294334162246915169009597508372022973573952163547335574054647670281109902637611992954189883231332763504339211237178079451391790528689948770326184003143955530647722025766902674931684014221358565031819902201542896406551191949507885030924224456055529641674714867525834459403630108728391978517640933936747306967007116711482675191815307554971489184765066768991045091197332337693957331888334954147462346807423836341480054097437216971791395870115501521008568842769028218880585258499401067432355480574348277252053980579698352260463824759824343730210572197401278863959246212317845651942683401390948723170166590849393130875263264470733775899540026966720728036210310647101151545631961246263412359863455931982749983451278449862782138962337642870581276670434640502081125706312667562985347074634747037220654492233031149313629155446937853716970312162216300727722244225146349227430523851658659129016618179440237854463316521658485741046351335871451144234870999889139166475868636214205756509988944218933823159097748675779639911545172729722399650844990568107047992640321437243464885062789208413397866828200187834700831597208728715320300173193120059433016593342453720360518746753869556571187990736340654138729969449687048477320672649209952453173581694822703140446966441862993580624149687751062241758016290933839547128837587701277989492876028661239872672481368758432892325333485305687926109895336355487930786578651637764334570010407410829815494076482452562867619750003995007825252669602168456209334439696526300845193936353782531632607269069800038011459335075637467894705416177730064764815253811499036791159765776791868181522994018801189778892622812339495304070517096081644206067823029606312315474991374200129185185002183061333058540280202596436793481077015654921186222990499329557812827447237923081799030869335143444065827092692059253256780436356714805164364299946879921070298328143003428048913236236437604129036602963147974681954737386673487212875033876274368966937200260068707936471850701648159718758879651171268652783384075176722418584350922453314493690399003270739966501290708234632108726800762211524445700206561244950906445351910420975573853142664937830038263175898415847506972538458165044614281330329939831730440947717905845466418918484380459024066206585865161805542277784657975215032597819324774965732679544348864711264026947573469739043780861472570679097219210562180544258117688404759812784092582634481947022268501271766234649408586124398540560268640142233466287151400832904902454781664311569205126568326980282896504540493967542777685948235693044437815037670560585627061010939113491604554798654493025625344400529657831038521256716439515626682475181012988216505564631324863888240468124267003901892823975640968209459253334708794721164613364036411994403960858529058033900362601138460121388587965906017708225125898557760141719844530843059420001519556498445035455404736170834415177236235232794330324814619524208933654791843684500110204320693173197170029574492654322430534921525232585859529841126651594685918591457811518172369467946432204975182265557621982093013087108740379888643872120660981528269723274797906572201776880491325277421580736610999685308732925433290756400159826136586334169891389914264750072777100770813150769155561040774228635241327220027016851657198331279424834469233688970601707681342719866814460070507425652782684931075140388343844896585806321847340484950268723768495836623025880271215842378769582987605599929638231309056361707798788637646412133235251536408350173301393183660983377701170359950728282228248403757922753313962923383647429211233011305081444463079867249277474325709999332349908409016448744772878171331938525295100794300478491411474646790108102782341290539577532411147507315129541024067543523850735697120484657273728163362709225624288858120504520092287004074157502703936775290569077388366971446987192447605159890339595374317214752860766085101489547594711804659575664061395026730805711671127817432175897362794343873606585528715910884923838892185129884140753768430291532823962258418305159082830861976181259420627520210347673113779464006529904159582198596111640095824224201339160428321301826035197104811305771608201787424854440509390553412867634384555699207962008027862109633130088291105023634748425661561711838395989506391088787486264442696754761985951902337933165325849143554889098779748409469201109929734816982020259123369545194040305895705570149676115190391753066544808468691707170947255509313719262010782549829222361877190540410923969112689391903169799497519307675955587591847627559253447254235892045015391595433353214123619865537173943791708671847432372427080298159592681242293951788029959569361286966044051418830368530460423426589573574977547348155659719031205066025434078082937092689963916716527914405926602950076267649528826005086345989483269983546660316222655041083769206784060017147895655776066148292721636191618235509831749763320018153804543643494791669724374249774250478028881207661694833919187419483159712661338652814238653351132955658781285049310598342893892602676384437334278976531474232661966634384344494111010252538808599974467246200688434054211664643654033695036827457582830052175394417788189176141100114486636139644724690234946636815681472149408989206176071061862784691384992284775103698898507004132451909776990867649594507959308988225915871767134168708608217738609044525357572108656985934733875394521915315921004724524996483565882901863172031221950568882425307882093224367241252984469673831306970754154451512777746773184822124385800105256680698899247879291694062837694755085645271942175000342061158853013870726592657814512804049777463586037947591708474578117457369057102358744371885526613028525565508382778037930004026608576612216604192812919141432031434801464777766936712428342979914756958687980905781218331522229913676025622567002692940730395311131772828679057600725549976929019206995801949753142213423555363147576907962200516644829706525271492747515657092648531812727112877039347774936904388832507430972222666935626614769507889594987847125035084275129501343701113169750439884727110793213003129565879863239570009921094373752420225594320755438181823279955575433187959596983121718137184523165803753218130396345610788515691106498988580317417404201761680737540490590362216550569909066317536577663134766634917192649504514132354687091261343417378484249246194593753015629620645988470817825898883829893563536717609220154253485789078083736987377932574928743482195274709079940690550753962386329534947979386899701241730550499993370075042710035665218154413862813654799491460101516268328230023154544936164280679736525844977877588885935359368738982940655038934160797024354797078769321895378473422075296784361133409534457464584662075417350225660798784383381123456797402944578553350380031846556027879760840138172626518404475862973897408387879330989119323792363377426449486230326026349140398380563178433676771852310226017082905478656987818271613282508131268841067540379430964356473335393158805802899620192570560100237480865087867388092804854584453383795430918979761079857803760828502408300834787227418438468374252550248534767518673095761347412331078895926728094972236365777940704860957814453723282593013905143766697423107783506449522607692326170352655358756475575180966502777480770442053958957564308957665410516114369860177395124150429127834864288617964591443869421115084946551685401764871075761609557650157200507998353109433546451203407963728871801723346506549479230999013086677674871823589029298767964739343905245568238078704840129443396730153922492681415186164440467877365354060302546187299787092870826148192280818062742384666943503926471736271440413353330748038866699825074983174528896024997115672564575888291334563833309611089881596006719608979325382152127473678864434929296884789865183808895948803759091110329562140433591716735075983592465965940330081381247476334290797204990955996415506741239740569925920339706007658140920564508829621849176795296435864049673892490686193683621441692164157333084384205083475967292366305945607077359273742899748464651284145508805576161939886654816309390960200262077027674944605184391378200178389560933152755912085133732727001692639343267398415770241022023029842956133557745900502676509097937336394775199998533491230790513352081437843955134710543771239426919459090934734535204958257202537733889982567768271606469289208035055235163840781160028262456742935089649160699597177676456912722771730064740804911189218752245734529866656944194453479709556422701581566907835948965126441614356623477709570283367353600050568448885912739528396581971794209868547769599685223671633386352753040146298419787192446737557311022681853571794028773987740147279155756777398224261575173953337005162653835616388924435459426937074138752694083897080743010420695438077032679461334116253191515585697306993606715660632195784820597915849409271620588225102088502626761310164934983550063245386988596065887888892737245975891911121463881034864365969652741939676266331899322997937134512926132701165493566313486242224945990450311715054055817478549986029674532550076588159891198827481745621048596017803821009173192157177825913346757009895674697725375606836194757164235040135676997133542282883441024994074603306626911893134792322397170062749285450642507517072932488405297744700760834746252516462055350606967730757022132260388791695988806806478375255632240927485985918714935509748411750975852232075063373772984928848493016485331521066424601543208822914125550225316421779008511417466205489388246540170941771921647899634033389468910835333371750617680219077674481053126670293527029110314845648889155787189686070327156520184174641919630477805315104742523318664541895786581509396661630750270501590184860992167574535534366679115245143199478054490345248525511754521104425774422765506013838896934475036024375936006666207116939957455417801338652080244476489300308225197088317882017508276206736816189708978205912568009009672404365474395192795991340665208010772240099412854313318884465081074957477940110059660914657371730454336613256682574831476179451515387273973512349394519091830184859438338108682167718347871537667007001873125700409038534785910322516804814274307075025795429138181489028333228632633797450370189070730059078771026980965577780439484699662441174246040449478723802596890298730070593986968445673151745141272757465913192787458808055177004133810417833041613765489032239108242073322230885515060867100401754088323035820878512257026681648112121953982615682176727524539272271166624596565031227866828876390759883278520969012740224863408263990425533492191835131588190785029013004753953030038785464031091334338991378614365360145697393083756786379041976534367920500487714844692189174546119944297858213608038584818253901133560986630224748798811342658721283489722742852450940100204088173374292450527341417244585124067926780329078181644565403549269332521509785102332587669811697599837946457261582221988516606112209335644827879720182195850012831808365849876276570466636938186184798533385094571727342002764127945253487998729479239890838063706088767053463788674449316365387380067278174819398580302772107460355790329226908955709604707595782681773018920327802730035660308129374330861719466334309735845529231164471460002716077705240829123121210599895355048118446780798670026607979723223767366452637366580463751472256757445688889204354063906647026656150404506884690521302395493086848802038227160465802600816562696375039548417301327955738452485664406040646162676797498658061591641977527828572416371364478418166349517566249701686486455163501248528815376874305482214814396782744805833368214490845193817563499095451448067743154107050777469271921657413796585388491994119863201961899301176763734101890163953800718911256035849343042663309526248995160818380811365627605509401167712045455681898355595698962087926822346473420378378444202536307018291147035596190262652974395804769764957130664203019628555913426885344861836343509080957923258466167782292122589288370623861629996700279809165167182090166612948108402812413194966131455683668740296141554782050113423312933275221818394374719494193221026270626909656595780893752124761087825845970268161988158293690253698387617829661821022153066101647562131978583843217950223978351469674125057595160706311685792782667999611204082847017089993854905941478797370522844729321954827455169109298731149751138129344232188004051200746568391259368946658838534721333922272154145366399661649142573737421944528806984609569187863532427068446745294182595784067090022492358158040096179109764286607389312976995383667774552718107900116414932495955173331438601506033357436328794147917464193880782260932710561927456313953171963778347777745462850314345209913071337474946677570859838831908831464801538068160889096607770276762715945080475213910005934355426644758112435179439335427325855545771392979145323047758109147201063286442594367021880131967929583811404260127388316551675322774859813476850241304532098602205604184147207659894123212710164194641678043525090986623576355590877935149416838390719712122314646408281158867959302059629737283034634935388410064424390151277674376653817387504924619485481371955417368996559097400120836636321107629562467315149987667648032440786482697822365180247741268962409768694864772602902419740488232776117418593563941552630863540222369691532000491850957166156965133030382201076520118974306164323812548319093155859852519748292693984023608721395387489813390201640279587691683997840598278448175552469336306569999707065443951687016614361949377391914138888294322457705466915715222904249376790862043510702450297133948111597057502495377976656155014981009373045243376622054508596308469875221840700216502707778134287159693076945869769391784345507920609815331754571179453874241874097456205754940291078741593847341536714439048751163342979023303184705434023662332251959220280342201599819078053308968284972781734481581014146041771861651112366566044129247253701282539328357318246583181988147709692512313113022631223866549144370718391138109222330518697108848517983504074317651959378327242245585988991786733007337639785669666997276028767831993177251187712700901432036974486219631053122067141708250980770093879153720445017461326944607694769946430298776676171893688398005646911755918488384229928446256293297942228344213975184454427068756345483359097737570944507823991196599364341050642771614641553701812858082025950738675923912209381626861731345491421248283992643099700559822898504221074512822736999271309912430795028599002919664446682755353680186361453221940043079145832812523964313451598009434817888290863015024180079805151279274149823562012419978718073743192971753487090633216528029639975511057490030413961840450368938459578519924808415685912015593543965246394710605001598825559119075425518404163382398496770508358696381031793754639926489302500106923640299593871830070179019045839392852001823400352194778051368613284803590290194775232530921784186942417297291123602075632025004459056021655607821304504135019818618061231062573086159808251616889413017041164970195092204713226585277805123424656394891145936862010988557118241760206513987043683933828507336413047399838192729358418542219743675786910597475343876634757317774133976814255022533235828775639594100346674321849030550223788397379694346367032936717323525390231780453652455517904484905880934762055899658971128121937270732368826666694309914920738316336253301864818316281432084337854320571663105596710524006752892830700507209349989728258591108827702970406490374933296231503292333664604615513589447291935383694716125675169539197809286387365133541057536267792119124126183201381076773847716804592236534092268518574326987407857296634327280843773288481440524344552015337301985478554106108533307611054638563432979265485171354283567086984079356203602445462870581905306253621892954223222746509449852316703883560523345197585853517841697816072358478149442938064741925579384404510501329850434907501150535672117285178429797272842524094086516187232895360928002138762105694929141392629199739409106916275627842613621189793719507059422077013010752575429005596203254453994280289790153429835687147501679800128328828905518034844575218160093812778322550351283457996600178243402539078900411551239317802294784029783486892482073623760399829347211788772956818256144050091431076922096293718828474509406716395509546305335784849634025641363179371762707867754003978935111244799522397236996043643047083101199976118018176255810513478480945347863693061927586532070540811298774682853488481906393394270076428138839536490062220079473786981288166477169378896342546990058453975426033641463695626117117763039887551935090645405823869900372004453814668475612136378818405588909699211767476233160723930623311531475819168992700607374056713446135212941708142271888537933494254339960677110581309657019213506386298244533358038340020087859680646871551479758168691527456169955957531414246702374441190124123537087377568303458188897488629989386014941651430799200318964008662487472405268071663507218981452978234493430372128691879958316150632370653687362311664656688811299389888204990256234210927131065223836449361942118034277624987429589753641468746752922788347037279543973204286328191917358030338372011576559574659271307597288816012556737104614615298081670338188269625856794995287206466545772603154984023745564293146405454140520098224932665245641834266542814369263161276778694107482714628468545830113054135154501040285121879141991876073683024699875299858747470657854126665309041972879709598238340191046855519886704781064800625976008881890543020818482461931319517169865031120084878368009813876145598892253200809340322390900956874857382379330931570730754578504573020184240581705161949317334415939424461858922633232654376417363065221457636392777922983621614011772910897218165087521929092387803531822423021425915634227595769571526675929688909728028389250704252487219213951778387992217553674627701433701088460651454498497587272700776335212196188445575214352117062785116109271455445305583802446573007992718307012825546807003465316647079455343071556927363309051845115744076787940326104168251348999425637270863578155552458360378663982289545832019324072029276891909894534469979144113339804041138098495617814768248787704573544195571152955887725863678077546907090132624425725610708557625964121360729149435091838839830112284683748800741283420878982378543156781730193554313156118907735296492137965959757840685553358343346191280883533408774889606280911178656374776477336421224133926013299086965092601377052230413558996978004548511729250767031843111409169647415466416958104475068497449231026701455972875129568112486127811064244839777119486682779104512570177058670430444511155696177051721093893017287893947046227619840667356329107719277175803351123966211871407203499528849374073194730880942298202999903459841203694010797094680933441870036750270436726215994130010872537821253936126688526029895966145590238765473263664687534342228882100250782119204096430225212426191132147418130736517987881200809558161596128127195644960505507686241421050322274376111590606867356384254446819212666118283877754871610988847969727398186842117896060675341807528171966350252880668624506779067759464082205786497783712176096027800176657051164356488425478253099835939906618576815266260172025721091149654250856433679664468618282967540267774523882600147905125517656007106279583971768261094958147129109768434010594557711441361248212745737745164318373700588479889015729268522200798696992013083303504507917993349436491904233000787009290937027800837965275558178976046469371957600057076192815458160625378959343688576014873201038909310710969669473633385823165146785437337307028639147920708409091436880062694664816355041636564614718619561555812495099999433072215077401764690370588496277223858413274027506862662683119815553736738479926932443774063690040236991422359810555341879359627602165943844359480998433911750133237483507460261349541150119646725058685263523815435315488512068044902535180729179618975438731179939805326070327309775616020601167452079315051169766689801189039634203431049459145629040698681110119183795580338089964769275603250360186677239806013645085139080178191378198017003785028590585971648760419430470285656133752094957278330040465139208362580134472838150731105478873619737137990072560727962733594641725579584251744089810038084586854687104710264545417877507353348087743874924604747685907354702949740072415615795994621499318215199368445914852286506677114004939173807885636072045349753531633421178566172288342562943056318610259770239579723192684889432298277773961839149171474237224996182657108884529210796080881302867994126668134841463970410092603768906217967212342537332976714353947019310164366989871349032976955107621990927188842977701530016196488250703771386494981086656114125912247404888882772337599477512027571568769550001212986946003999226569651669056332385249029112651099549620285448683161912553193209802005611583249373920209023975352998595235522779089534095616567932809406011206097348023866285124224512574620341149394202480949798119343937908895239999099077144235461208858473816619658002643495936781656095359941836968734858931500185289942913177808475157105211966484537004810299299558137371616866794106549975603034325956313198816391518313250393359464732498121482985014900802564488719782548952841298141827664054175878262973087158675426942550298999630717757203303839949516053553633070083125844514374411399496455273597833376115358187691288434145998931627196092574246999035253931325007864741518118817166587980026015972087658875584793888448800088105249462771368333819776729775210797235666717866089028232501516300191402551540381860645701114530030550091929199047105991543825206045286630060632051663730069534553644868074692673639021081930921373578736007768858650447532243976551176830465370507308780700893985610430445586217956994484095161519932270632724360693383463160708958594272632767691666612385718944049912868660614647819711849566035158586304420204683314409067547514133432409827070281438416985586484280753251075253145182501354155808783036141411107480312063290393033016976271872482639753182536763749092392059683023948340063654336761771296362045727677029343624659319987985745014920292286359222522957111323286878622136347274189309857306598107729606938765388431215206486607642940639171490811036972921485165260216213576222168393261197283644567130594594323995549368084873081805967062200729620582512376114147171260734126996929910687937913675681493814051533230415494352835642799028471520793962431286200018557507854364922671223031277274507312115167589128560884576248861447457388279632220513516455313171835992597289095946726448358817408214375671333515867455638602277222064131807556101756347864515767946322651983179135322452774622673421061392676041606172539239705144483011804020288743771946645068840909587216819946583873242960427495212343799963159856684704834558003085486913561151582495194582105605095546977366175236993450230588301861843655764780175879860429111961800290631479069551246726067597489689133868107280187398029723997410897192505213456704272377288141725680862951739792308939409391115971904473993724554393010918576184108258157790538343745402407630497803166395140612081509064021200485048642413121391028308324680897515200145517099675213346771982137034239150801621447534682052147000608210258416886652085278526436208653666593362455081932689035488367304339822074524826700617072762736539431500611946863690415244743787232790204733684587433514717570718840916007400489366147853864884901927972122910925097538299496545676840161604975579538143733961057382209458121484486551405502330629832857134397854520604205242098735638694072246003321800645946098030818683870669159898803571414562756697982873991997951697543183521126749908889364361056808605639458881705892417974217086862637056594611123698569160574990982966789953471314580436321525407130374939846264048406642714449875099315739277690526985204139491051369694720104434751249724862480099080917086310778668397657502168875041395351010128399260058726737873434609342033645536952515090955940058018284158036458910109765739545323491445150975428949843334559310847743884434865885068807073347940906324100208627882632538769766149175182917950610873799858671655387170181312836470801571812913332647409040704520209989536123624060633969634259105228481435540541083510602008050434928692386330856814975987334556121178086886603881814004461880490567107402445702098224834861672866952953040344925383519221713628044648765364930483448406393598770596752339012100983912451689294844555757083268815496930580319192038949330008705053290534666701812801217974586879876691952735754285938873958903909439094354552325432434308779343430765594506518328860900990917807444874656343324887560303786812182928653201569618170258464060920836092481023375418462832066142155142646392642656159866869109784480853813211745202095811080498722773981261768083137355278914551845041469421260123612684083385298719148309419998985288682137823867370486639835234354395164602241436832050429319079273193037889264862997729328386044996024152113126725164739101860827085938207184431201774029908896333639654171220780152262034659388473754072927791545684638126892308593594578062974790912706078393729726942047209208343812129463150189827548661788340412927554483686810007812502560169547272759032978673472957694297696640445331434589374159474379253431258630320491729641443613780361103078597938765504812119536953391543411798624664805310242587738567998838964244512562773669475667626714413621211990769672424616400481472295325122229851940769318982630788180301382434723434152707779552429844197444641575449894947133826348968803873715338601653719563694192819150659835338191448820647832761635347753132291725705081344901822561008964032997923103629198275979794856730381070662054047554343997651003733133062914501494487722004198055854852072994781977959591776640778609715282543408696127473687327985392077927229986647265939806135583155396557747161760868187346706853659905538382857285087396261369397812444723549879426948899968825221632854491565902058011884909283510284156594870188778461576461807737968046161588627755173566011569243408034355937950812497177160577417593227671106309083231321593620339807879614347076482219305780740658710345344121927454924462041980836694862884613206083542769859542444228167885937031916128599081571848195991776345732665625905921751588724147936135890116206985464373656957239228291136105402714441199936617589941335711216655741688672056207304070446371698678098129656277427652936966234691414307360970216793478477132860887248481179341463250911007875842198449521691541100687059615935228521117961144772104432966365349688463067629618409590746077333105058871538234507011424689590354386892534443379570545679251103439784528139919195218434708634514935258609916245404606550681923758239377869988032203948291841789076991115265215094629587307537975165645010974915154943214502978840253662382403766703053775746039164582196602533416130499225268386143495529800389751520647715710007628742497529838028250785358032571913301175605778196955386155390915359773554823957239837347760297421719940793655896706679602304728947595773270881442650847034179489107426138499905357235744324105553603178212832582772689288598959675413779041926952596464160870013722572324118281082535280860963957346056403010681534973017321813758568035150587835520019182830279007723672205900900442702744286287081821861786243954987530825443427350476278727742299413701324765816316949375203332837790335187017358925816703863254499347316147385492999631961431370545361729519079286959683424428426241553056942859986159822846397205846578246696204844643638910082455117732030809386114676649425442784566055462123201649137302252701310670486723856666033533796866249350169402594999092790372678405383683312860211501910803472539446259379783035282422392964600135106123086619031752934378201822786054933785285309777372791717577292102120730928778555082831887635370956279886654401008025257612859519897483609086315512555684316878703681043949882687351811627309942984282098782356181988968528952027959126386446319847825323714560002418351173796307642542557542824307121702152673961612894393040431340240872318220905957519106542047405524376907263902378223669032275050646346885159384525207142365397034604177676300884054260977209280938959245888835068314850777520154008206304302493773032036478290766004450501994194510764581539911730258463408454823883650296036950591746926480251569355459780905111905731344837920341961654611243800384345986035150006668894403091379600078042765653420906040432887270595353916000786679332823004607051874846002060114601385485487940815017462884424125608728880563120755699337342254306873026954199385484200173634976084936283537585737201716631153634564567996441354017984419202090040443421871172556730889279922448116156607540894462742482301474525239412517063533277868679061417849624437378066344173511818184174235488261775090215542645200681145742688582624058381977462475915232153603162349760533874545254240143822479883744522468078239794156019162273252417243220480846398239261463437752495452033352869775556303779059911955435301940646831668338115036271639810070992660652881653962248215281482814151204189149266681237950008198228255360705796964349952369431800441750360038489561611327350644002935370070776445313747259120380004573496542625553573678979694703233416025101093158561910530349502229102172723757378896416794201605811916290060441595268762327871399425059209041128992110202238425995723068364020189844097874249555267297429413619621275356120368337560105498053097411264071244634334184455855346150538136216239455814344667680154159770252971060603175465972367197618341085772630353150877458224649569849295020892674868469750268262886776442462239608082760691419045285914542021833647838164158105899403491008897989633551235499881066493737260572902592443115564106921622461966126457616157367023369762828934061810056369088466695806639419773039252715906533485246882157646760016919499188455687905441646846272438282529915434784090211851236790932635460139787012132349643326373426288818970131381555852465127768121407359664562500879440425018119879770840796066797129262527052664377217722830427894968758485644262394373475528285949601102108592257798839573098791499401074725967559658967021184979451113008103678675596477127576636666901743612702737090261795038053337209212238414973122605163491032856238283405619335705888100561283991451904214596989651532156089851002649673029136642717379948446403102677981715837405793451307032616967010640759630785312563856566587241992008453051227832027258812790841825792862258192127791202686022957760839949788692871009672596040441573519252012519117004871707658371960455672985948203363423923184678942646087566359387612938236188134967989010801042110281190224607729878935602993524595727616612875771605880044907424070895504522337102082304200120798549241138588816613963799176053777531169163855075883665933147731804224888485077323412184492583632798556614783904804600875285339136441623950110756093309229051905130875784819396984345835797435891728142829717895754298974938611710070304889030141252734351277748033820849761186699627188030817176533986676520557400223611617284306700166979273855983023484144906085790940983022505179304550796142943987678958694633731475219674855011214814174412200877621216001873319397340223116566648215259037312788012997640348673794783773941410938746265875555853724021169482517222755234869846525976268507447809427477297394969419615429434767097774065396285115788520722175771659571523056923629501683330947825387436117167297629040229324750433945976254058031050430847309570055641505434941158970183780326276208993596411868763636252975977037031845789028921058186627873420062086199635137753619525817626537257561161592500241406606519868199536305078276670218587272361208039815377462184074766914193711988892435504537899009360084064610383297097695246427248015380491350701061818684374998255905260896134558760537924576780003502418331104088812550806733623829441831539718143810706605645417205068465931066108276389958495295723330168110662099498390897899440543349685037085379553584941864964701173933318263257421164205752397571988845118311849453478825620439789824066779993910049018734608461933539124359931734204091239069558989562889325685740184420916864948131189274434486510000477406520691866566625440131382974395317855634088949613898282088797729492865449085350978656255290256976843444855395413280018128710429180489427125675115834275236406897706640176123038269690947639469467185929600692789755412556881094393328897008359992070334705254577377249423703585618843200371774476791565634994244454981749981129638505471321107293239020494225654932706776576237368515191421927962268080752508050040805956310107069106789163484898255030784717281765283318712647271095864118646592403700461171438250934114302643101470419723919014864862227082032594500187710879963152992598747431613046933625417134531328227309122210197095315220898040378397248771260813422483057403125143878336613478501116668869159928875070558562299804934815107550761133759592675130626657499653418744876933504747661067883159297750039445804056804744885610836774721926636004254616898319160263150212700569743036123222144371675017574741681395060489159060252138041331368667848193835252963096855113529445822481319258619724531060963153916740714205508639522317110563453379048562338759756499389586998259167179717327058085897097370737442979180008305341686278340879575416678683011305452969343757235978699770547928477010080555166602172481824342914136854623106774930952529897748016865855871172040473274257525713528849087540967318263713929307509783741724464124275004803430666417216967410368493022838573030333739465822942527975396366403985332636150777684733345859242448816472562102385848884437276809661831038307864577991999227852609814937522996959606950423391620853465642643844891670634491152106701616915452770027315521812939503754655805018948573768629336966932824787107783040881609885435624368266580000388683933692189913433404108354469386254455449487847644468988828420345985915685329490209729346759445108743077906105739753795149130865810699952783001847579305361862126745547125392502918648274368904141623337541086143214132072845708286966561129256629027565072634366673703529069676310541714873082885785247038242955710016908743385189729726194371300512546893937897996122514197903815203048697490597722290925181360809925293005394932915733958867386951040621301201165749700423349004074838551085307498626835504751556570855521546083476142050112774120322051979436695176665758979167209248292261316478278996556762046467337713951377630108874326863347690897298818860937395292198164291560547311889481120727416845560515870255502190530345738832474974053756788149347927628670369847877935549735385923595593407469132843954968834313926838281302972453809216534670515441705117269987938502195475554816895260019066520768938466848772301161395136140389828805633418287324515550658990361271260773543843099082028132013415592542767775668478896385633571661172447114487584183573590827994459431598110361735102495246963512875680196262220398747302983896467714274246072678064439136995523489761467720581140846265274339335461788594999312295576531317845266190109672683415332317169760616583453867355251980091655580188193675534463683862554611680324220171591620921873477509508397602659700786752002418262934035166716482079678207053514843823225165797415670657153414579225006979604236796847498243238437075593021926374301394678812753505528513176235040668907755989968854224128736608108572035443173745447590280015610066280331113332674884785310915307178623215172813282025446994351837321921124070494114121447103907070983476461237092501509699867429811824713475121126227261244873309606639120215233773099049533005192438875946537156143790441626565118938162101563642765554388483633701615009093167669982262119845031653502553550319295764693574914540067245746829511537258005503997965414535064888808803100373991588013302130310206650452776767363358868562001201889932415799353347582796334446555833228766064067826514283474530549669363403935553473275114454402640179156504687324248439499687673168080670734257144393287103669462172317141925789650826498534119173063548788533061526697622839712403127876464889799594721423536832337956300545151791933181432988386064053811779786355444831801233006007075104626968600082326762280955262858296848212916480699659324205242886665200916715404778497784085967052797057297532545667622154769848021719393503087989873822357975229277154128866621245578931314933290670509184647682310133190577924481725914650384335676842082386265283092741719452707830789708060139999301566746013342752999913713294324682282365961310105911812761159952462297754711367513169913792718270608277894387211006280095804484805380472780308936746136187705389126016605295113933092845459318068409057453077504337473485905171472241400010428564778568034494585524584995940919347135947795792528959924034177797283605459105933460235212711000056773950554797923049451777808812111463111008202654275588203247341365927617404978792870548038608815766453627471922089911237654350639686419557978453717559948447243458443525435558726818340924918408983115979100550733973332545666323343899282972381727665967950853016817268457726518902868028654239595569473978933476149053830759419146281260118322093304304283092203706956066833345126308538625565471877146651958938104279270243528749277572444535448603189189723773220732702614664031556481280662371490425425905584140765719649300194934528559845087376541767488120133473153725161850202155780014704248197036798675622800263942726717666193661331415015757671560219507189709772595325612619641509955858477814555792120945196262646054167434243630267681072198336916863191383264563884397797479163984077510939610886392567681629044132547915667729600441393687170752146990232523121880235938035955526022169460279569027818308421250373125727700475799005029348054923574636096022299856156095290820290943427601386580893037403697789148252269477367052207945345551684799005055468920732055303284967512948045191904108237975738852513216011702995864303594404384104955881185367868124529968694747877819328513742144408940158670691620476765967335949036393663472156203827133531973998690796230070855399221015930419199255879037540023834283780493013780949245795153624479190704253964374169084132361654220828437030610429739587996236754390438808147344903040866287802487954938483737393435032450238671465138899921678466685114762695037157663969905346286652173703476638010399228590511834004444611668755430349239320898037397434883787875865302173993444109929221390404711756638874946168203714105789039179355270527627267161304297433359438896996159581883809692136841983240024949598787702691107675662026983476340607195635545336497183568898011347562036038765376070071549150238153830816578582636419172602719897559253795111262872146238282494212872334074143457097261504042495368639860395849122582997825000215743457921422401784075528959281432311450664369578577085212544477281221260839761304804928706884244958758793451078715006113350611267244864612704370700874437012562488921810798578159421144039317622175630168363523784902693417249685519334635328080140652675750427314891069658131862018419669960114641097841981821990267626567103879860432606383788284966160410845843139574020153597274968035052516242093178425310406169777418005528742545879275369950960906037674106996185767670954308969857690871623103218333834553381701757462680348773978737081144169097968609995274663414636429636227770366879553604975945663194962070793723814062726940474889476721234902844295283318436587687866815421550588675928052852580030420851982172359018890864317246200461636325802244793370541739784733333554273986575493901488823994333254937880218612989279770347820180718815152255086559297071107576951446356008494200545148773051029905866949680876167100469537483353230043925030166535569988581183583204906480642492030589248089263872308952716292884069326499625877883901341465783177903327134010156186712055651436346249940748980520760458582955490757489152826816151332957109319042563036382293087757404848342511538394812018395153470167898292873434760917064993491308233038709499249093245776925095258215905800069949626382827600983773746306685510849713403406788204356092863273194482676967630581128504577264438121054651897146711729784969426498734880202237377082353164606561821920248463183513819279251370664767350335968754834092844898844774245233531459497655291323642192807456905532495858252273274280843397337302465018446015327457381853026270868468065926457497722563614557371967205398710913150278116252443100770737555481175085965996409396895476928183657141800233293875143093898701621761017798119973282382670261203083570462689771365931852112199409942009354151508442132108785824859121345611980539369817416787346820441979447507502535115890406112293717905843103069281955696177820930687093425691473935387472508918077618984115754126518208964976744641492156286999660096835258574887518994031910747215933472796952704577599164661389611303174532443824909265851753088401435250991572749572727153476048015295838002523847548058266208135172527966916418710246967927634243832364173673019209379562547784864676244910070993019182421932428654669628569042306298666730051036230167425843174296249657587554773843857934819666016624885548837389798567508731350870379176725837272166160460855065340791650861671286489045872956615581520358016260427417556066649212208631913026781647723444088666802588380629555399683818472334357863681030844057575401526509492626790864519624873977436622935474419654593937604034561106926968688822666031357077114549789859625319768709312628809762991780298474391515383707849239961199888212614721082537268281553076341944099757462114655389228294780311190813837960263231854260316104268817101552770981453431537274130509836203944399218397203250422951216959798620736461565962982855127659505712295148094100582133061018447510682447793350234001682117629614312989892295955884895944837174256802773828990743811443308545300089481234253808269514946377686998223547666693870626466113646000933202476499028684828865110242517541205039351734991485762580677431335522597564811919455795942968651058440770670640260143918787874606557810374715763248967199209914406711242996652583874311110242231920162959133232917318392816524837241083148418476966992899364423901769851552533524917579960356977446660468428462368953381465681468071861959624496095833377834088651992798667440834161252219839997161497628236083446458380738136084694583628803774887968348866779150445618149856608478451625208310207923664502911455159863469633567120825556353499014819231170535446050185744907425622965379233299415123077781948680155560052443408566284004182592678689661305311059644062934802725036651773239069963693520073957530933369949328783281688786421988949818059219991048638905865002449552861074656862957194080673424251527877128596343999965522222013628888627380460607857870882311902349404375209801420777555681626205604299084687803326878770541525066291680527203268053813441034966587839333801868091192611143292696092355179832308361811206342379709502830186097703796480310267673724021162484332832472557613331587392956869326679730926619058887416662846296704512808418931701062867041989538915193765362722267309398515010671979529520231928094619152153063259304195922521469760729380710544839945500208144696831572133422466471997270451314252619455412013215724669334354524949359158657139799006570020935343584177720944172285271441187760422354269255337522545774743813839254906053530823793202136695125569499720278029920128311752638222539263652875700731692400281349023400911674910897130479594355397496744250788413454279460346396741751127626926984820233045010895929940232887110578142208157131389192630384568352269845572304802743145708702106648671835713277701317369854287118159808477596903927275168267480532630317067673688191555320992618572759452895674221631787828620423258041222729132478475967899894691773316043688562924552327300211814530440509393750242119370895136664481608351457263565711096523086065501833417610014238233949826333148952495860921120418020859633879547009874767560083948028587357570711503241193761741876452254871396630090114709014152659142048025798714376345647223212285844978872161736365663179336787050179510682477734477242536739714230703378867123993186988714393702343473728041136851431296770844120282799086280115578028008066095528332007191682313637799943866596836621532536764702267616302089242901725955866967388673320119035213593372343911575978614096134119172504731957513114734496635702258728515550566921906210130807135348212133600739481290758184336646988199387202882953263973736542628608073875968480170828071544727343496402820887992838634184658066012642414829205579742792053259595836331079313817364603616012473429554723683732130601355722689400381565956627118923232141289392589830249089373327967292993214146903424684501952005970948616908249162447059920273918684975422331356804833256553123815391792849871069482385708186193754864021455433230755466816550422194481959340318737706930245156588953592250094227646617123179088905673186170234651075791201588619851772706060521127375733543753988611472567715916216983467008787838495153338591244589661069037331635576346771081061503978704167717580807631928491399907033201835536830762060685067904463051510344716786540731422902721428058148527750564789479610760232745149771324750060325273267105124233046483466594398006720530925182302621509231972036178221049414695781954362769744713610816413734910501693416938521405008382177295910670019050449054728492789276155685228630203776442911361370717008988059413198945713354101729499589036726577501173350426921368584360777019766186978629816869869574460928198553565050144014255460987609655924761559037221808293557090217125830544910818613170758974339632685610198863606923969419928702062092278583604673814724469908653004355501004606152489639049512650315477654202385636536890252449422055833959661818139124233240545939421229365760166125630447556548150265172205548631401854263400181773025029374291560145841451291199755138408258791015981654258030379598604358601660498391610875370568517710098251622820890045013815687570701779924787735626666941567968663027984919762681561409990121530489942382611179787721285575515608435176254063511542335177040690999534418083182283865240783059818018026195229111401372765339691035469094412519900223028905455313456997075374270919773400937825041367944831902010630303009750024471528037178354406601239699454710052167898621011478413815262129548241388929878788114347750870032812858267587979480324332659436828472149186422474020925309320654084787424908922229845460617335942654901783932774948572796634916334667210984826977311154172269827895352620204085680792252134202942060407379518061185096560689402363740505045374026927806955808494785431773505399008950863418364143365646522180733939590277576008904707786763739666505421505410572959334006919186906537436330538423559270195643665323458373069543268614490381283313562412777826851160304411648847992900764627020953547314216625398784095833999823805128685155068662272570395477563556216113152225518197181212805585828010823625069947880011193325988177744457397505962278759565133384428001549395390080104405748178815858410199592048537882287285495832528278100648915772417691743058181250950764005433265455509104310748808601494395241433102426277604643813941328530160134154441177893649350830937747023349792426629329035191043368646731198385646678631033899879304399710126560698425978639137573436084342011372312788851658046832468830723174311952403439313098337673735542747267936080283428488938242376227159246082777541717146673479727962253323726846513412766244776169392075573616516920287830156561767117781817843656048506587754210439811976004572369739373944487468906885715429826169323702001001917544891401507785407964250034169617208239208965373464790141046845605971643272118028258842107722320449702647467286206858580724869284914000243496907018011464497025306414631512908708346561339001278797982828174803003518492850306275182737856212176133746661772729083105191108278050321306776813878176528185651631042283231488621317169272284322190556097376744977120911853258969136979129381192843341402617159020926726449531044417782187684369732003709400265707200604102265775473649647424841205330575812609617280611438681785052904240006295485459882904190110987732436776201522205825958441991638618320022958041116606767447304715813171218847891559768271031294446128524845933884618510909866367604119189604904707370463307630323820337722621619377083502747930075688519358716353491066275193334940531027025005101616379088621140116451535455207540867859984689322102081864145127087621187500245093401855327677411125443769673666652096882382156391832709222838723541450981469802121742412659576979054127446955912773235298979993559772772537327317883190154794850366794042746537888530273191478321497724602467550129283443292130016613319949212163144807876454527497354144122437722302438614132696797433576521164932482314484133116060679711378375917960874038605406895346691408826836101217705221062104817110456583389863580886117793429858892185644317176274768064420434550223801840638889845199416161862041267569573635262435629301330191769797167563434796992629495159864540429271198186152613757220268472292864222997135420786992262947321124660540660187382424177279889699101757310654910392795701291590002233601808849150722023350968536906793497616540576330620224124253639139891066244160377484135239872870665155307761924099122906493245462317002195499088427851113358620635205687726505696135367377087023248244988556012853399089672423152461767692484327068884204657669436711486038352152372577845676968596669042866857051449899379535463060773947950336020812157315041213009156844503588524847933769086817189888990617823561663317809558504321006940006395111266005775548501137701320867574855159054423771475409724923923028729793909828533821100234347216453730566024610912091353855689271189162514393583561022427248370245627158274614785073458726267403715176933812983807216307341215771902602466052495994098012173858428415475727266946768880829621991834237318917509929308726468266708179411741539501918993566734913448643354456937967312651691256235905774230441856422554481916408772175317535312018014816477451959279477386999961815759677823419754443056283021051102573197411625751225302755324270962150725044836216624642012566154768864365875106097861259472313241206340451052725009766477412163402109109674238147609733255389935584684470889551914307672815983393010535903435579075265207539518161324835214895879772347701215610399069110670849072466860187962809193031513382480339513225550218476439901232133458547786658182356612103478426510422346289520778283256196318308553265606425298996786897021355425479196099262855269995990285097815181619313608311424613699702457310033948002978122606722329208292844562642613169830954296351387962157711549781860297877537062531918217528500512427541750888666938596029570779192442106551265085536031640088570460481050223915492535412508188334575629372756564784790683146677032590348095393716532924272483191737926282386153727420305281475205589021690732136885791269010333961673429024220014454565483115951476535984995559649127726717349688480388526660640312535728815498685111759174532212495850142413664005484571938996867722730550473616278233559372831271212425871666161651063229274159574089274987224920391524999304639910598482131647492193454567111137471338947734073375976140003163259746311202873521774733784526973138737245930463024120427758875987336374045418829348322260088301968989183809209297010217325719975843927925914477108546302171430395877424704164540284565166863396022607216436138839738357895997679250501427313684210627030740232172342451250283422664431655928610744633473520310805241848964014709207378003667727040199788255179914833337326878304759458271121148552244719989261113908009677681006820514129888836532547833448507872988017413827549430455783062801722919730028006247111566168642705695382555927070394128014083639731354138282426345789251891240142309534822045925646888464576037654168623882210566876986885266997760509503008938897526824910643323761708529752994489291177400850598386231682074964726988522874999606918245105283121144970749960225928301568703852370959368123063308553919948923216240333809184186302097001622733137589898296916302715815806244141725560171027985477300071599776784593714122977051898016284359926263706691420017890090706692880855343644165376193958809578511772846600033046908388062883091665195802745765785428366027893721310506286499574216468204835135234426320628290511546244497640115676669112586657609367168549514312646898344502394952795156515080952789323373516236711957652697323799617777471021485992258311944096717368508537479943682044321641885819459777263988392401465828463777147002820822995022802185677333698429223161833209457730880445544248304899700064120872285243358995372634737988077728198138931172733352030358906607825739733962285563329817033250523200396307010440656275651778329401036160957848762953155094908857154728345520370466866483743304346116874913173802952423330969807389364357824995492638361351397672227723433361962902043938860100326352840047072310022857141928027245518070947859038031868932085635473307687387411477128815773358043089973866085525073067252548206292276652958346461010341337152689525549281368766738331971862700370704667766780177943897925392520473369962209421633337445906253274407662641701065200471944648009096131031860908950505588013330101910290312787716582041413751552635497917457733419066489102123497601878142956146715405030419065732837894441403430640867819405799476969444198856465359033879430405548916900486638799067922422455375019877670355170593687634795399529458981528853773565380095349753049646900520740896346524053198189039458495800280801660867179879288803313807899811051503825703494323398491256742026944702987712367729526842086199098310817668359553523706464551979528458472328953663258071804360666612857878126724353135871266181783563585531088464046593322283844787286878422717956818916607997487919367644174865564811827143969796653702059004835989636086634952313692354915551541834290345446679501117408912734160704649082824098363359430196758892934543067157593668290521011769511811325684256727875704881817394045825065664825616513780166577868591199982256333159359992321655480945905664135110367931438509343056952020421072608468643877363877328165971918764518738256739711144227559579225821967367282293142127284961655620719244762766404871833996542359146832872667367233365663439708065782900139906150049838655696913985957614440202186682666776973789262728491750165795958411457465290010125310995898211853289147050034468543050758119502275089828357800711386412659028507723692991773111398811205801478278116564457165387558802132744174928030801539260025139993406319064926838889362529115223803090118248719942508637988557450035969078666949899361041781014410981898736076718220165752248598292565695584981054201399875016600473409132792665786279171272935724891565758103417542116701357672130391873889907299277972163938902103628487777124983323800796617467650624102237395571605875452375783720844963879443207887096038507685577033672772252567981828534391004244299032865280058336825861458635742925935146804156335702577694227558426116016204143647072051746940947483881610284367535701153391236893479243495972603542745264190469881619280360471196629599976625455030911296387291930384138166672337505446260478844224321137081732198495297031503103336985697662765000039930541080549062445327400404647880167292307626324366912361637268768168073663596072199204732101604175542040635824022188738791153534765915648706948394642580421997150247036112181816910148611635714660616703974990329196178626746875533882772981853802465045978484875116048310504531527736649231451408028670930859877016301548985003315550035252341902527836023292105367202156751737042282051679637151004118928909427868113910413358133032195514592003492604727838886871375303736224146608144556947628756280858567399426147938847903884556447435629772777396299918117375974750704767704258112020544811855116518278321386609460210072568940991941625181426837335689867141670273875790834211614867491168497429432684029531196851719940238371291604244328941413036148385827907740182149013073512124302039634773183285198926069309050533333286898462462868530331846492702439927127801303993195645882345124620837877310348686137514887333724612662298199857197196150499772987324394978227207764875003160688226820572843452311055683818306277791011540151628171205354288979955751958194376919002303572225753701055625668449364436611902744938777443604341540819745663615544622312105200149408203664723601207370007781208014166512554860845577059252141707742012675229738771057402019194258838106806616992506291134349371323532713220127623226756199045914225499977423794330031269581283762614470243652040690641350426522034997404744317218425285665166016264815321069200455458575474517167492736098058727369981955456176280292834367143667828870480284213592188452217590915185065578262316527654201953411174298166583206101513959244701406125604422262986865723384292186051267110872119428589046479374544078713085804299842957535085291761217183359496333830862510411594374914877492683484564534240839061643506949286209107820073629419674730383670955406230375977391991965917342072134179394049383756156855591615258780202811886155089658299039844394630643473163630606889688954599812754812331454294814147563263257181687120990710879455869539751915137564403018568356786873300950759853250528872496066960344865118988435192275630188743355669186201263548258131068408679228578520513975803675580375348567147510429124109120611476935549403331001580231827742179326731576485031208141276752904134709608303494042543775986190109528441629741180512633770425246272300910248823580823036927591525543918489634655952006164488626284559276620607726450661350062054666142654055754210698392348251400911478483126943170615634297338594512954830759980416880619515043423695147787795324954125613811671417266425728429565598380234907032467256016659313926823885853242590125950008808855304130453660332068658287718558607727012907401647407031208725328180083201892684400001449865602368040254871203133215401525415161917280969895412310299058789691077160994358040365740917134380556729203948953709496554104544805032661069172450601163050825622321831580750902215904786749898465920416027889874595850018582228829584354887424728563039480482428969601803721554576298190536223461682948966635922987255940734987911614281791375005075082865485824132597041485151241258810095229144550575997137332680672990556050088047932225443733803260420069436331422107452138595793301079759108424816943206787727652202821251668657922572622025647294174195881631722889863108805575195003119878479844679426343388368042583322744390347137621480173270238852616478196295216178673642911767425380915766076419961276576498855414915950936791220962624508058992534032571708924591434869285960932266978224109377829639790181812981011329351656675043253091039224010247331584311795804534568881782914980122688424273584863707305952778378558175427494461922514437264786852683877875558589062676053002203096076742371496301799690473206745480191000262544418711510271861907044745931156437629116162607224843718794329523412571007009383800593473496779552969107876221999636577382922959619146677003671957442900728069736688724070061097609814025435881623090152386405035909183314972851662126069761468411262760719798378173882059501014003498419658689348694104641993524066093012624046020454417785167234597317723818400156632804375046287960992050713695175434254490116882165104282447776596669344810074959390395751554648650831968325738357020659538959638288173232119453910788855854714281678241255351925956775269313307649496174608830295426502807980744729809519199486968040897173048397270585576692268966741040406464473830409860667934777705637318141659128406782794455136791566664988844294832889377340830204527417676197091578260467644950349111179445025649496087948358070637022610496062154179328525740998942991677037166322512833174448910889954572837667784910228722447185483084717018069572965046519474895012764929490028331983228375573759107842064882153464323360996511225714903727886637704453333739093029262598002277630715228178438679689359176144232511369798152654436841773565055470948718184846751753689725851212483007043957452190152659311443834544865626550499445177691909620133158517543868618663137922860127409725821284811759433283821421601531695404797042620166270745556878251191841571401343949492209506420187184942736050279480043153611983126405548572985535565541037304209533974038595363874457353477788482650197800092548252874195203304419395831260187824747935489458667780112239749254203750425695546366190613919263554890022622609888257089971589731133547489746491938591672171195022928855382149117622463670280140612048107762466956224576264626768620661051877626236521729981225327300535088151118056424329410008841385397225365757324496479763744885558114588719308783150863057048466823655520809637990786703899938105565742286534480609607406710607852173164709529103388840392486661228221976005272073192680291975630706189063856872740194464319711026576238400878888575727727188738178268120695150211305580039024888866682429887545372071912996297700941183931336543591301939862315478529805489359139277315792899884580866738249814560857027725549544100470406380916965792310558256438194945676718923485453447167626897346288030153283649560568829285520971870946994680676156781298512683986184781470948916465471840837457270860459161626493003489646030593902084344546706696338664604651740072257015588464060662965492292893314141908587143958926857068701586771676156299702036693029857856557551974076237606348373993925841688680189732465907693455240459566576431536767618109909908520741507066590455577449941643680101923884529178472598383916186286107298202256988388712814879461020730344754996407853322384745268296980300599845182168925798577571169921017846974238776582765141531976484947224494749622890389005737336777463047716670439860750100005976770097427086329645718229109786662976799269678070566459458813889104071822953245097313683871797406852452730761003629108237843950586661787961357478688794447102866240849257252801343412900777480959419208102299279806919938243160030820218013030025154053491575441999277454186900803518180784750170534620934177377744016397335367894228389204447037833865745700398052403453438359110796224280404624159282908520039478954120968309927167998477565991309536022204009652019666542292804086801870762322526566992257918835527677471588035972722008286823952707150359851986193975070243947960654753199756177547842585306069255037208210959386780197081397421429517895352851076856475156399760865509433957744788985104147645507604802016920982723708935625827982130352709963904830195916236688042549857823642070667752319241573661552892316027143287468234113768594008286980079847772190784638773978781738537503738600377284102705625987321536258756403051249848789408663303102766695813616005547240746070906068046588827366095474248507846672907520982986136417204684298621023178932783527242124980252858351459151103380433646310795635393204218494456959065052440859780297449008100796076235722998087188043568382150135423734813212083344639127293796335088402784558488525583857145371863135736822951238459314886744331285852821314914965894386602386434288330579043728659290540777075010556895016184660971716498003685239849290109582109512216031393128339771703908876272073756656460739304199696433182778267246334929853563468350640090303044715041572138102649760311858704169649727644789608354955806249021277176089111177201667063908391458975712242619602858020349388318055089546937893407768096339479567809142352587124980574461601049584079465655048387472886214448557377573075518825145014128346979748635491701758835245066699954123301406074703267458379483459985184381635429202957286396983545174886075143369261510779425564480624104560777707211118394964401435732108336999314063408349766908433311826297975758282677037294126341108096954246387765808231160440862250627507744786449657459102364155995266153795453260906716992410212492649687758024716582574458774613593529045289658918589446761175216602378924651283054065397985233512025733758508104109071651719574791940502812077766127594647389744878350125382640605064966548283077001842981509073876730461094316242860256167513799840418133690773829323063921481591235388632852807593807920037032955785115379895302292593483761537375588709821208744725962223926054602271707241650168976693194563314151458559583436822682046726053970610663977384612193813816671829399513931890895381771326470252916273688329862862966061446255394658115232175063326073149088732128923912883321440476138076961017493867621373124311556708683771369257113138333632154373402868993041017499854634549560568015141377341515322465030596085232695082786272376248213309375711931535799758787435995604304254109277067273463866411258669883630985473870683085450479425433457634772300218925927491782426396993419518338703395359830263053887125691230821025285368679947804958756790402588991685089658258375972055339720113745227666719535816695728317833789699885626649690110874548001492704430868433441513004832380644439700263936825012787929375446575186144073112224609404129787023828233177752906021632412334057867891591060421464510935671766915379267627702352110101204755751200503377166132276927801124126806084489663752159304121248982528032171262562630312964129741155502926261396603918750152966239526370134997122428804570269354907277683472705862792584953121709426252241149431699436628883275888033317718237571649257405346033226047724693670826940467944132609022146779137362298488994465009684375577428600458966706029588132379576364176785749106725938019574580898075653793239922782976285035567878680714868304092439661366809319239836294745908041348962444753339763239975658604439833923996279502328819343752040686719475359893303984032194345957120503105229274980617225516600513337356551094967388315390995351555302678732627311910360878332408545864004221397401942104414925299079697521078913101084495396912741798239103776326648830586644854634808926382089309071440805711738902739405631106596201910471051998475506403796235330165341615988871995875496939937404699856825761850600428040049485163951569285158378265455634601182815544555890674994195561122317486183234091125782399691477316969102130113966827578613690493602671092530169757200386799165948367431309823049636798682656103858508568023447840563729125870315790014028237644874775968396073632394595565513736239481281894107762437047578268724831558442583900251737794962579617920986591787873519240231169974213968704091167266087223174528575511321891266185877800216872580093646798350768851047960736286083019518686556737774853281733741471089645093963775479440642531772231379158241289171988877930533358015281826366470918411071472550756159909212614674049439382951343824706073124509647066392189078571453612478440216833528641894776212509098202839330530750278295319546905864362984188854079250835278093871847507609184355195955139433478367669877457952390211034444203384423511199662805268605949794135549265071950160903977413851627435887829580521183418891159248129849378559642352614281883714925813015956273037335233646512378384061564463273467992099867960884575074613805188208840719954398585536804427936255587660709807444343620895209886331276061326985451969479212092348060566552815448253197251892767005330560930929014163218999086021147063646993248302160376993592859760940102626080733897429388893610200742541439710787528496075727084665709719901324709259275747905213180282832394715140545324283120930355449421759134181667339085281075294300795804300264773832590628501427343825825694502184102003545396781046913943687679673873292307541581592471109351634917547860627329971370572517584063352838143131226945658446116658126572578160861762258887374146580010977191225632919215894355931841902526958572519816551233478868579230200500419224598694337614034953518086374585546643953528942321552102363587017264816908850961193065824015652908660116691503473125912082916803631000873097945646371562263600304988286018555972118823385095069695708468200613558592116257045480463517156533506440807210052742560986883534401777014210831957466418090293246984363718396749682359397277754876409775599897097128316892235261134188995431128177674484782192778885027288639620086164531009062564305333771063271941819069721149543035846647575987244421869256871028184982518765510745993732758432197521473378456647371776156030227829393834598740251990756008074206955512330471206562898978011340327149082396376485703863903157920700340366305803426970115786691144787112910320115567352400262449082876279945500461098074764837893098127389919209939247466730600197483007557426227452211649758635781280797834273010884923624282382166120611678277292710012135468734221514237171936585805426623495742178833763645164537518099827008729481259714088000963466916440524940049397230295139260416398391415335385499971420333734144558689222123894132852177773578524372030612815019485807990533386785977209645550466523883930355783708212275426992066788303877081313456930561594912101942256945626382639928879100910066633607828500287093606826364351879586192455366428085409694401830212230525081754375444619280949783354633463442190383537555774930601597205314389342042274455279313523359230741336484807598020028483629905215909187229146282091919232666649648167992165237331528469773658692406026409915863992863045130840677761214698680699838185934778779339454285815546606098448926690123622783505511446274032552467764985991733136489547880784076688152062527750601187941477687453729797697569575478936571129846786695140357089609291746080211078267136490812917826251280889198274991880815769454498652197590935822811147065935517012107676338312428053900118212232571081624024147218288984860043766242224990037261642567536692587477505749522453028900749750712698715293755908569183559163098970876414611487317689954932052047881817578528038474030542871622210705348931556683533232560685496611232097097925892059086306573609161271460132709149616356516033108041581563416409708379112537390142318761892317980366049994613400901523659216603052372851072661908621213235992453825103096312556341367448731960224546427393786695790758346977950191951260008592154318342305750040088774275133163549772966734038809800107696514168345132214515203988164165321573364868602516492462845870921242695788898389992106302230589837145228320878900535828776768165175128847879184196756377208191111129793212228031290484576580390468949428401031450453961648300131255287632893304706191557152295554442365555141171776104282087057945153016251141199691817464676328886150280737619401150586809579016618266081250884327839873727883121811046784568101990247256684324106737324148992463583151234700223355987069264843324196144530798356044742951309572237350711213800729965533581990444823042550910586344100684797152902061307846133151324724115951874714139740601964567828227683278804320899327140925488377999125345831441799555887998861533818894161027786921592941046053711192712101680029544330620326188766125415946258633777954430724729716929061192824524498043748689389975851587778359261099513244387219720594578003532031039291932570149486261987112933864667976031956537541589788806125580151146599411598713483811452927133034615199076056484303620689612694871747935793588985024263991714880757343446243753654828367619050033932433759402343355824947172739883089361915348535295119991853288017302062886101872966959801284006344367302560610252222108353444323700605493092546788199727245199664321955412796101926145256727112974622204291914329314615979521681759390194130390589215952722498428958562948319273751327944907791831015312587266585852384474478813841886499051455362294010553607813739056536381411455388292401483915058504077417637529172587783595444811723953280054569296646972221408187644774054755784263852057705194348175640450121459172956119954189156084924940324976343484276165846008315453850793254790851714680937752327925522951257915519053576815504284878436241926224421396771798543763446000651064213625771589158903008709889738147844479218528162159552101167728968755183400024058386687401806539747257149972686779484137370421567780033432579250370568209498596915230504319997113320185834212604303608355699254930125025356205444830184573374046060329645780459665566403261055186721922907436653451813668665831601886917296258438166366931902661159636726702368343613358008895729796070216767261535690660525132070105659476323572921571888466008505827015913452769690551892122658443870339069009967651360790231001303479836313936424312406716111668672769069362296625018154468564678475248504298983912754521471154888551171227500063384917163903109312767501713431848122551868432327735503512655923901994260620787712392074341328011357567049562265136472763642775379431413974312337772573370708281776509918178073176331474274704925207129996515900662817148470454045931924889058572720991029963507051425335495203491242914958661166876301937816998369192970918349792991474652195083030328914037814732918499199573564653585176677413676901163668323565866574725217517079925341397066162965835226006133988085073860381608522984562292818910565924062412742787902636572899444739203308067537853935598004977875141538712679002068552170734408592060817819814698102786995123783223610572275045579290514835649229138420481506410493482410567716706373925826346379136133905176518602178669306407475832381874378594852459997613589429068028571135350593366508606597056918314967636053296492223684165757439215068887456904357152132641008342804970477094440081955890011291110087551361618536026278716804205072969337042430325309356885437112411574218974135859479221318015231826092509550116348499497317336310707153688019323165055850933439774048798682789745322829778949795681247218043401724735418855959994516794376364436708804317794422460730113024578755364831406760503436323279132143098731302217919481938041930716890363050131370722322879755646963846385201276203907757630177743352463033065496831736408872343794900454643979513901478728044549153623481110517424368036137867707063132166025463254881431233096441600497408776276549121791353485884026460966392533701419367048955083957565759816205182494811675988026335711705243531387849211430916282651797908024860529000566919682974284874491726753862756646085682995936858139916958930954657938862336747752431287998607311195774909018689544342276790288237918893171986634087451794111722568044659803368349225004464148725062950482937876150635653678080907699750913143775208885731729780520051985021474019640933330416285332317231018847599449163637073072086877722105956257035515282772547743195873031649593608180786993961823860984666460000262919258843900668444404440719525869076776876238631410033594892294656743140315616569182208633223223827792994894212377469398516439180105613959068490561456433677265756111248363657362111947868045628737544047958217723186788457054352021476319218351693774748287480720071401810007001941892607014039292596445289897694971350787447006510450849874582931190315146762181668433177797887058720178591622823171267519389473849449169624414566143390002765801625769032050442730755958253938601697770811457236987783468419763920308104960627111457023853980004511087534822028595173750178531760679569404235513662990647117559942199732626386105207714174881609475339863675129146814754208262366559181136569037340205805628952359943596161625200139488672600647870928703120804531744309389793049457642237113465803385075985279927739107407275961868295376144249929783385375551317551679417979622316883278288013377502781934859541585640649902398410652610497220886626874826428106207813737721976356258696747975156604299980566948195139988848501012325595914496255292459387723375670382957306370852120493044783610462211952312870951209630964950579328546702133388126829912193988417588801257433328578353623001401736855268705837274360792049619832258064429049809424800784341674010733714928780939665927829156033202961326431241974732425412571741209234609125623894546974698488292332929808011170096188151369855076106604029664676645282209812172232512742015114368878899352017604935636571220035745534425694121670959081652337024408698369647114820368473955843430084662045070282892593593936278608678620960148854375912759544498513910084362362145994666024549585157533032551670948368254013076558911761842616553344305277817453121442184930174929807518738038043508477564003303643046696891200777058093202083830345084161824884715194947208403371181651583282194930337717206365329177549140279033525078514119734212300220195824831650056668222090305164581153382436845283696717292404222373419024506161862693570534088579355951933739685639177357312054644587534893845609486483550036177000808586881507045049722518513621806867682479436611522690368128343557312348418925091150631853518950724744906897791592923397221942366348727447295520189096101890546928553228557355993447074268091618886197820813349040516795557801099289332847287677711271951658034808149964084364629977307004007912706018934835593919830786394206917639903614441976458784259827175909139145017699827567029176634611663381984303862989497213595137652700652792246113686799557529101674831424007062854027463321653898616605723568015288637392650222573037251623729553292005342494620612544045490800235321925384027952364581838289914525237496720112641332472912734216363498649577391574426904369096440336694472458833080927377806360952806539088502729565662045489154621192423935185482456497105435562580560400979387895488326679690876877833023782510097245870258981333969757059793103788992404465927180563167140466364574434723740956570371111937142621298473253533325890779856509138029264798177488493411568808491797720881394549486647420448042431624320293511207250546277047613439167191310476756676072369868028542382943657588176009848792575575808185153772386215699562122613228375878112192026338312970829897662201058479485338107391061290835698226922670789578700090956093660301745013543981731529824728779616500615085811759400793153412551947798599902169692449886146745370150471421636458171225102242727856486751274385622864761527936151311151882292586292605358820330651089255108029689004885874824027511569772655597517167293474634149856094322354280150803669420461310390793625532026589717909585639112727549705962158660105510300406634051910119594748714207547741653580733873644744171300190180148697592635534384952194357789038357576703851140749118829037687076519545870075010398843862307972229259269906700402510046047729328770966120155934450346297950829850720466321771806472957401945790658307159359433721906257006514045491975670097557936792356928244733286803897488858598424635321391787539290145113196035573541598522555320695035056799650374480471704017553468753421740143753905466673803724851055265954904404220559012004775248832687965209363962534940865566528002831609343109105178229497697663885700641735262952730278567689785244647133272861422804144643428047308428202743017796942320076883388503683019987921959315036622648621011883318383867143820970176696457322349444046312802470169680191468359577911261860278017616587817396258095827880618910968439341406407177021238034291295922826994706780239701344307130690057612265978162759079669044812489631222990664913291778199149834672391247807792080051152760102227686704582453641342943614154797035145025309749013652799352171726981305643132316682661793757370520964752222629299082192665494813228812170232847497532280044641863147000989513299214670425268284677392756838401903890534951000761914215220326483017514058669665642442643544888955590155335378805181539094802171784330916628038495719914344307389854356525079452840900844902563176483622042624800212820239883941331232749524328601106358260081820698769279879413668468694957192856577258615284467734527911040687582849081364964183293034283392618431636694361182528115171238716757625521582793770144016343012859318412435929406486038695340063889652036933362986591965633508691219636118586590644342740804096488185731579457717578761668251431178373657735329946588694172866763329328560747636999323819348631998889725658278544510919502118407410061936486360143754442525351958665982361433578272632524119518855255215491261652677185448040228954353791112944839726594613565877447035389207339042403241118125411214045170568604662091385008743592154687539623649336997913331528877363273057980221468405057714516735242368651471683115728061130307697969130284555118273115901751722960184727547616175116409981096876802077523098677750520184850845651045588397468520243618838606151751165404082204010383917159138795875506519691598791112524212934651288874280604337373018285671454059568359133560942707223655172294918150407426233530544596486309254284299286087336740490060431304402120592372788716204843766188634244487086830898188894246832221254539673758541748624564162381121980328219495982709324728928456774310300617192126283362631738162748083552138509068189054140634087697295218725076685322305210516896033132252213239119081562770355881906984957517442752134886648935306249336539699034496322297523556845586624304894527344201969374473092105366027443746345961225316811958012517362966618274212441687005876841428503206104904317229572582292819569985826214471541567705894898380411742978376158038095593285084893689013924505062728976127413477471092735990584717545640000226967421118371453599508363652180116797513835737230947325374019692239597992919542788751597728406834348762126134666407336690307784755767065493016202748303545641384248295422182627690889430832761739075032686360447937372829558471903691453768847952411472940246771308815455405326628494495496788407591885741943723110370396582246478288765809058699700352851423108290410033250363602429127413930513154701488714507430595368344746648369986750405158722482853076587029139959915456939081818328534885189876238022669503839499218822479337498091634288054106655486740304616299834904911466727626398476226617008822881980380368234364437142053453188502467537702712867692550809075333951551150363291707419372922787449894883699027090038318186419684220276443147011781319203316540010830571489963341848293767966589763597921459601146428255336920077711276483809591368346478713236338773483058502676124197749252783836081258003963085783575674343544592993155263063859324592594654017221992179426360650476575977303900281364927260322969026792322580734586008222882398015833141339850247369662692345491438949669912883661004572045599226957204160867162780540567625429357765795484559238324236727520579700353218212454500083376747803824762240181346231303886182744865858859252188930771222833352178897931041085011027298174982072751792850657700524598300731036673492982764068207041861099684932327280392818205386781546442751862663728937691708529888485195666154554907725825644570825802067197118819831648913262112439638125739143938089512561006553832614479598926413839913412214382963402975174589307126206985014268876427918893751959846438883790576084618538221103941964968859297151128538827768818634130323317636549306376659510378470234066616167679869136224456311653063056108979860029733166847931724639304522055740722663372718770000328079570182996663151100563629664693814492445584107907693359106540063388635188616612655734119841931780774573740094388818103978378523965603793861839675594380829110152444983392977483741219007956367393126605911219752957685553339351884136079454200110901963678185376830996312207123134013162768884335392752685490959234002154781358482833585318988646011431867899930994940865325285089881164857895003983675668469283204044463756539689796295313151815273964233136871448941295732934780034793446031500962378010134134078936394301173457377101689789400181895883290891093797398344202058337044183467952471613624188279675704778678962269167275551989810868032847420466808320981462326479387251697499727792733101050857413216058907393805768584082599109606119028450086388034962511844258881792130729652056458930262713729253793324857401066711605411137101372372900305982731416687893220845111974108439906422197969731148912027185503164655869030558049424179904321523119001769661786144929160104531088842895627280669753649101895227727639783051966969683578623336671900315080578829137490546709473349008222557194904913369142619617499754190963119290615211005270545493868175560524347253434436753697842107597889674312284523144372377679086605315432268670905970238903538708718276567323350006427002826414874759975117672497989418902386119228564995689945324161631078646665609386352620377900406222388817720616677592132048506974367861481917567601311300777360571519250762765480320666816916173985008703689334845422759357752960608177530750649805998866462625924649956754789422911123313661687157987510519389658536011275979491393276796391200583282322248787301497291500108688654055940326779640842687920241883835229113082141745092614554164735313813250476573559450278809593567540401018383274628485308916869511440586950907830043792701147472547479333982428737276311294657810862747549564790437806646355377249516274511086367721541526133299949218266225534105989125878741601906515353946533074231309843641565004565064478477941759022581590911948279002833227308924269176275175411109894467582725226515927449102765967680619512067490411677339276555379918964130621352997267674715472516786737328615635622674914351332824763984459433725049667993595352022779577635443208677523440855715015207819171751670369100848246747179915678744863046931691995489662171992149343389146435013671993293667714971093904730172901976860936084947563799122344384575717949864678891808370730455923081921152628917019036049331535534225710321384400962107136873878067009629114435199046245703811024371265866153943751799839726158590657991899735173619991046144386592439207156216201360934524668549631555563419457597446404749932222046200125167177265753537601021419633954941198095617533544070048653865062255000638834753170400603997386754469342097766189040754391788401423486392416682589040064683006666564540636742462065237540227659326689409263023216817749914403305613408243848481561870746738464320916561288170120756850113619733791344328551684577722705166512953015649922379567453996517224576322533933320153667092124227108184825606850333121469203542349296562183568077698053583681731172744071556624385217051194805219410028527368964299347130846470517101853342926363605165992848518457746741875668087696344310339588305319730732663817499663780323001208991855818261041327245813610050467788429987244805004273520880931027888808970587689983111620931913988803388743851930706955127204669529061449099864278780113005947733664388928402305764346299731822210147976018821211749755758597184638752910247224951042077841633295825240678352322849238951202076906397144602281269453919150135021520882856972630253154556984178701096409270488580684372044680138409764102033745918663981358362547296757513231550479333670940440564750150442018969171273203304548957580184605034110468970881667426118903628404846976857083508342903349294359601001127375935582457363182069707694603280829778643743741953955079976859808327590495101166641146421884874927343504016111305664766991301934204429586291897230477245061211085730884364711258911402074404949588110212007715890403555426724229393615489851894400020700900313874786435349473384463667649277230308615658813375392823753847434581513329880049655391723102933090030908518194334563976704976534878883307959400025038234011506417483530482218171125094557468999760368769297077930926974574727506786329545349130357085113314756065756991617921787562970038687690644468929123443256617322608079749411639668360590701616119230972514718135098475654781903085373189139017459519375132329559111975267537602399719867628179697995715178669838211815450838263200931449206648431301583092048335369265636783504132993759558310829408342219329308209815774654372806425323318273719227068232418470381839816496055194726600178930003246323567440947911081052524551862090200534402258217900996624091669758097361635768870897997561182843318953004412006689394033756975672456547433481056392326476508830688162991531014137389554260632954697899263466909556367765605218364241362995973870497473005443314183271129441549467408359982202151331887143178335976179775041491179862110649479179358246776271724236832617626939261762767246825915545668613801536660657164875640789071847964467156601596702776091185910149647576154312236197940234712980200601785266192021583884360275102309375314927176954215297679849127252883707242185367871969195093072091016860044815970606144168211831330325536556860273672987102350447679287621211812751390989078748521468919880569525542176589540163255283432846879599295443212742901573869043841442698372837038534098436480740261421521991105927826577848266510169576956307803595211952659199702632668387684276766723924907753661933268269293687583712100342646503952584526599776445273562486456365653341756854777722499587814490503379753020598808363267946537077454729627717654387881830193035077433768336053876362523226123913740626066182649888518170395716406727614306534750691363318024036939244424502151379180688025523277937813127020912660551440222786792068789581131351315417511046139844084755245301361181852190164128912031642165211612547132695517121443951706765678794723322832521088022776829407319499342111693572250787388317572665493244789385616093901719127673964552114855178576572742870620782269077934764549509973143313568445652323181416308739923733297812571959666974391376352029793009582155333847172221652127626566373863416172475138593674984470669684491229001606385456849393233655344038338262520950715067499859693812003338613010253925683364786558574889904746635937409887776217296609585376093646019904249511675346984718927801509516344498591300137134619301410786142395887198058715122448053605078807652070548285697076950819063602561459469647312091265136379627857725379288297019978188782247396423025405897889922126547627008962534873682742021885681687637606427218502235123896963279566696307255299575797473207300104409231262977679900518983880518923783499961055114696132970432077851255590182611875584944826694245991585720026660658538702328654003000303806133291044323391966610574065206217612916219690174396092292001870586892398585637225825862999174669857106851649182517912394406723629294018212762528306872661542283550618126924189981760560623419663966930848917351637230966519120055529975028798025118213167701820790445124491563119915773946441372159581882843904579666606644403261488187062673619433779991973198936629606698090127726162899705176146678682155607962125347719657994905199191995932072295662732680408700020647663673178229123451230070758474534420767806758372078665289283833297281899241823937960760227333843566672693418583126184187206886531052932732888614838829646993324699931561379178701145428766768827741817983208361813573305819177817263634526900174377452951527768260481919253958465131445040716636080687324140569811988174608154716116655487874620319376462041471177587940510746636397924751443682206756073435379880525414491496072154838172238505160326024334650215623924742935756603384434703925710269785943870535810290582371530915601551198916427749443933873585015023945934017100348160166594026179921219989782779358612470455291313333439905438336109572516867301046534540411907095633089096403423374488270439355997050726839480883107921007187776527162302489916446761086921460022373605196250621617617632536840690599609427207985795583547686542286934884801838077462868866352193247764241667345127006551972145926683431745884656246268085511942690879486305727367267999066750585946182654008991927139731599863923443616182452726805576891870663450518390126435621593832311639173534175384786516205031052490916603715113820702880574524372229386527224245547153557161278263965426498776128029015167942381411624585444876879295591145248400546512812313966839662069117018180162852911798289738071538632680854649056127458448997124487100285027245850055271084412982432049315387886270679765018582984553087378007634782763711729669052331868501865566016834364452627422428418222769190337281412434668039116439939874627065614823855073150236931488832940253940891957205673221335162243439997404300169259960234359994384305072193300246905414348811830470037725258887781365952332978000553275743331030918137863916697605678146265782257322156633910875081718534739529517916829527682808256769628253926344960933440671427986279664700592273424769887013441850599509977048327273701711547550141420684643678460491093006115626030850973340163153936166633279239740250193567211833077946482426710384496107816411603929734071042902863748563376864834427237325116452542861436278012916759332026330131024373056696477548713555207317693477879434740755443547171683903573925088073725068825883776785972725094518329089343016710974793663435886105784117466439528360007349166180564573045394088173418441947287267982158804212671044742312587843520843840277664259095329403827986308276895407965763952723087990479723733812966306085973463413286648164143027890005477778157709095409193913713310927151620620672412359114841176542922419824969097313301949223066938021386235374358425435993897397984630739674196185887003043324475053600304893244164431033245391353310284291742235326741151404832422609412197888149581965668618205664655846647617646972690791361036433261828275163176972371814044126897261255800127826836761453810762652066296747128366237051717146051708984656361906496374129417493707823267214731396183663318359592432635596877255438963394478529381944115361432085834922346220999656926273232252399761261699805185476701630752410949913602203163843612740195183967195537865986363574321033051685430587298446816878790671390055731633829935346493812300154733766775187472751831190516928411280914815855276420798479091713637439453177863570263038791711382581360469743848233997510310319224939718286613700858873256290779774516964957532609454401777214942481225830882198688661675088782972273529575554953788608005811179228655368816868533996403940455260183478979708008306353939281915590918532289071202028797631296993043363028853755293309104697350600170268440060017052221032117240512949242472740381924911903677906524934549940264703135781911964806936847899331056694867620548535336918169886517531035455692633362211574154113342963165234994710690186842217906317736913478482675106785966385305810816605672388738881611264225037624502182537026584203962703699519309023706933387365872726090912351490038868346813538571780632732449888636271581238267605855062968824135356155253137777516322605400036440163917293753952893740585885765388781649263202306213981145905450986817311927822493648827008732706330092279604908572088471820829501493210932930071984123974368638201593989371438214038554418925870240416577051509933497783813305721928884974199807460799359032463564183608661589160142789091514630055396066819349630760311180136974741970771146499470036602834378726471040911358056007440389503419940757874454270138072863401738569488196922835382048954153868370268427543635450102828137613849217521693383286441362083979982268344905007194997391318488962390353538379456303875151105121794073076811129017565380952918441530666759705921226428897376834890530793936850466472758371895961464696412350055668201173515747844250364338074070600843796772988057249561335683637954199201829249850127029647843595439515891917843460422082115174448641861929862386975139648537646080435824467091402266403243232726567737337744659132697053072605726826933793023543232558345949267851949172310941741464357735396455408557024649477634706926926824092476902923602250631260691005391130015128049808182090002334629917417055427760465707931206328698425434780926050231849787193721429719305675696952981630429833988539977832259597392523199946778677070917081721574892788395108353732449459368723301617515573176270794111015674195604316442355753199701113044377642743518829372143866864515611013658011457647398443750547304675442273091471216400911196106607210492262968074353900745851885806003757674097171075633516716563368361193150955481777121503189810711023150757251193652241079272863531214313625381496054243393150818500907833389449938082132849787755468368225813594189496036149850078467331787295271105765839157438393879431496698052197782748052850330640655239451182914507814604035677479458581049203198868309217337595807649798469353877615879027848116134677408756562120029887754942902910340065417269970736216793057415239055074757161260376052477891916118154741536437316762526566380642003879190468525475237337022730976059745740880051074397399324600199958755432252333203684467886575792019429152542501838659469956045005056873487262000704427094293072912459588713455446862441949067283339197557732733341266066251921767179599629759523204175342128726314345228931039072534755012399728612184705673976569023969531054848306918717473053921970373557749993217424045356087977195480489573665912320673486066524027322544004195394906870863074054516616531646874851530687333800476710339559650082593654062046573705893960267870699837512806250699216849032319538811552987164862018652728639464847281506998278196295884777069541699542757804495902426750972864233450818467683739338040913789344518778576949743854479861300439261204243309063320217784691165403627546848455698115406136185386927546371835867491663225520179631581786566480577604288572118053422084500146422877912870981104684399759045658232787078362059717801535995047868308419053213884529809684004030355359003247973938278973516199752035911201966335984876966241965516209197372408039084163090506861859501052250208520570250779685027712530873893109529261633822816442434155549067909426125381198634329416690071782287110261662830335457393873571532261327547448038219366582131972014563878402958240635442482814406739792440215595185851814529809442503584285679510113276951624904340360730791393950286356088206148769818597453095646960909566393927070034859566497254363475443582349410720212803520447280031688335322022779396387706220383397349270174840256143360180004067774958473863852481646782352067557302766063132714218419235038543639343005035139097946875763303111191480671024220733139652056283021548436872258167339539024217816623451763823849859554074302232891927703394446171078949543699738265327897265898102453672225781319619239997952747134945677854520300930816561600703003501216847104545011068436189715522016591714590289399835780057439434015490440567210005881978635935233487898866487567123574814989482326483503684142843240802130742336510595237642645624584928483093123855317127623498959938788637490507488282918867973704632118496546347783086913890318530677629494883882317666398732549907947374457321568574463613357639537821776998303555194752627078966947692776444238704898422675431993429431087500999053129076823586464900892651135407492101036489212068494731594265063432374535787630460312375321456275101337485596869598351843017497883297242027593962491752591763256384019849113355472456057389551942615604976225780976908166418319241812653874081214374365392805058097069432788867875229333651256663590507227626014692853409203838839541493581044824102770857992229712468439974844086514827989600838000585174468596096683221866428901774985976761436287712009489214382711643780718954730056091931977805162245302184906784309110220052919268898724223119301963974704561381840220090667356144371550950404535449351484632955526779121195091854225674597173286181108102076598727519132760050481021428736479207244663444675651426068494553077400720145725090405473764761716964716400095641596876094656170393127986904953122733379657952000314726954635343924475606426482968068272983115860477472438563353724427145325013258130707436764203029779704709540329275321816127753703570165113684917120642154439410063090786563640561602515785698781345860138432174564043545123219519295671379375077691980522863123056737101857721854770996039279248401192870785297416411727562441242854773391410284529721601897059935832518240329500038769424051905154817461808601332794665485706586277538136727146594885096871322720311342458456372466298753386378412511816042335168589356168563761488062615748506519121527051025841362458322293489594008787511557313440345468303464321631448439483170037938812923621176782335753569745179077192846044580585100921496621363985608472045367682865041772415931150809281046328880832542048456696765012478001027078136570521528674574687576683068610379277917038814085974122613618142718443965240738851999127390880336518883241093317377339009362492659531883747799605473736150639111188198410583681321810516993005859313202403925528283168012739780413853824347336920066411409127035033663062563577554485428571594945363381025834137018958002805258274959496208403435795367518651781920468535878300103748184046325598002455782551460923405926316607087741810295969262661358853151632037337520709480380437744376310209964290305626713339248750377480893702887558410627852470725884006719403827876749591727878435583006071806118211521663782724309617816258261401220728813269040388315148595236579365263540888733283148603433513265934427066707095636958309987496510876221068741209160886011489867719298070510476397599168358974453340432418458600516422496205027256643761033130692197701809307845315579559358312329664008661568561414426411307785529065986769666761221911994810344752023557756988651370524422087102151411988133939970783484209210725503972129863567068819274179571167016151510242824573428018766157473685023203542091595215631706283389133331935581137125132639984859190843708674617307664766385069425777940616050582812434111203755783196740793405181989531213119840700792064868109860556604431566869429575869780248368429358634309209715601465515101029569095667306197187113530950227624411784690718242844844375273380065717899187379069219096548571678661521316143013342783999047455224345378924495789047290258326069758834514876789234139875432293458560875644935536143318502558169706729708460258197187220505185758826067744865634237708681773010346819858481101883415744605598411751424850855362908849852825168583673749829414470501073385537506765619475874739117573985742946354918070534922132296455533484623376090417280522385168440684489831316207668352603126939641749238869258136560870251304764864148855864103154567521099134175817281633308201101415325965103302916832504186375614541708400212407850496567582408379174848400712011007178134626669569842755553683824871508016095001513437669328928980642705325645895301629083776749901381059184258132049124233606121813857083325284071961954632498210604596216871008449972630554827103080360849902922707369868451013354337435305055572753051852564917444989017374764849782998839690214702013966156336004453733720337914350849534942816176588604413568734489880188721966827478620363142052785922943044431350252877134778092570416298106007033686563999689713978293274363818611453379549554971899079382911997238074519795014020063689471008976549660025422312277795610962114349920969576904795693326819241798012762674575627513415574254240539388673132774742978767277573515479720290181504063466305617888605773512903228732301119293698160842791922602381526802750479538005630361862121822463934420008180215635102617097566067477971619440560118467004680837999417339714514988829724403923126578009431438709304679628616084039553898891862957735234959636000878772914638470096323907573532453642885989188864297805712507788312659753471578172799329077451398744933336580988011743405014481741456697059423270658755976646787363993963875326935867192588570701008395554837119214616085430709812407694484936586863236623254700496761152958274100054007848692399724792040590889251725502288732255640275125080854718008102209565129434631987426104607937603409604325861612844390644356288519921852715801493777584487760714229486064772382179674860237216250105605600791727514404569823358181901552046671295766824054307177425144900447800477212580112029519390453965423312952778485909034322530154307421514697118864391258745892933515906405297016655616880199939650065634961175272330168193528669158071310755936275209258109658641738542452225684061828908279426099858210386963952616988633710276941668800936570222761280833918164750857965915129502366287151078162607682627746552118559790024718247401196563453549781486404731455548294491989450551333965870948122338484439906289035822345123317196953297682934988243230307908806042401606573877641205061735232586945586324857545881839130802697440928360064615882540501124910080193637023898024857760525036928797350301639612974073591786403790463094288880947108831405838157124966253647903328922152556720638719116526196561145412576818785148292603819028306760345955554184624072949764698623756805186466914180329607641323221057013673364385782026595835881549820486680374616360182354220800407112824773643555689263809358555146618827565177385907690583239833426336137273286545475420003782326037942826369618584559507393671700962206206682014039178013537727969445694417074780771582817367449840839181766882788656571507034468404623941816890742363273011321479575159991751475731082060343168582597890507702663641301162191550082107435454685747417194954270143829254098281083611252665997118052745588932331697199975372890946481808806477605931926714619709769646321479847780663237238618337575066331361370155276313930897474001958647391026040848751719506072035275260290126652499222671489149166480350971268069138864784283328145528925460377691860661178372397876044597255764914747563704904057380708339119321345096191391884929967456430087833545802005834616905966753319433754169566167826418781454925056761654607671558554059726240430877051148016053868223804615859912050001157794082421435478168998633758606622717548549244980084022842634317653075293973778598168273319870422821150646911243013759011101817841421345174339693219587545658364454275528094209727433282459753908105464008296253202150147604504366426943745222766601284662377189867150914197630745735686119674387643898915134951673445312108448077505883240430320413642077568182533169487610087034349226899710843628247983659570158970746290364346932229852413937610964731737598799704663493046652448462153733560234357302867040432264337312930055256777590539188683861316128117797640290391728645320853189208265276386701098709605214429508202213321816554707060467847608660115580625652524274822488718610182197679395299413589857215885656016645881864483044480849362424455880186767778525059181014525606225402583890701402896226083765006954184258204071956287879297956437786146792474322383886895850807873958253327798884369595323127251771943117224534581356448806460195875121020565561467457350464294596247046712564314808566690774538122514116908796894046991604414625991646371342450493895440101435521700242385959003834884579570388108555857113193103960286152441511046549271207779544205729006363286380621274061880477523283870961313297508796471118532604407888418275462885787730472720869177295628007307062025975488903206839052355787452154456826878744245793483223460456036377679269806044036860060152460914149052811882352382707627381693898770597217924866025130465798202383888513373224762442194443946228444863513527669802088155753684470703276418994514011761754645334385805984438915734045570661478127663928871855295913311428963305875642182175380941275864676235020083302185605872174713014893222467149744786424833991013225892062915819953455038883714241747015608363411618762544780847834594924885525647236783099039218993433224008587483067871682613177453887245380009421902284766342458542068871986080651414462708316255503024950296668642082425981092872139142198129757593126453815373819399507900368788429594463069857415902138810490112770497416905122323395154182101673070000580368615392599132497768492328172814349928724686245272712755404920169756320430991249489898641032978169498699884436826203049110271506926842000285394762325321335886460010676075220051731794182136451627929844962699342600051461723982449078422494963130038481738982678697859185194395445606110861357948011427582964228756809271396535746920881004904914239306135779114541214292962110054494944440975253762317941325975101872362200954203851801267533428481711630140742438505296456445941401623928515421958472716613276240330963777757596674849885839172482924202195544138433352805363482877629385285459979582064855143536187195897445745228505927549666771555459830702790388108986328007225911119235970810942591426933594806783095282307252156486772531882188717839646820228265405809717525915965605415058875831212162007191540909728645479502531807333669372571016040820821955723899566483009676692185497373422397570179214279592798854088513276850433614494996165773565842094346323906235900642197052180021047536395829918924181199527780410946048679514436919639204695463525707220787933833937177322273992149490087023800172635440108497915711771435607883114256908861655457240489195747627648604883028819572268320331269169416736695489906871589171437191362453046781074165040326354707153841955918273186909384335142398689582378925980416330991070416495915795829249464211684437673779629411086102344304596604648898841150015416462160925164267024888478659824450534180069929991399772470524753399444569780686250553610053843667394267098298984242162586838554900776413347522111653221131302827817510634679060147804410556275292857568402474441575358909363766008998742718549516593679748441519394556906062803048635571035644109507896130284356377349888843359017989392271209622732692738116579881773645730046797249144141457816323008526786657876138131810004198604355567620878618112639170719713043562543431074188363938574280818828986325669340660714342428517692531722295412841371255359356067702913942292252181553419448127402333426981764304655742830164738843059309037156935166025228301149738351437026500746078391022691099407204860357302495573758494687334933636902845024457668911281030392070339213554600679170850218925629146884583851521760386288594931266086093709500184585918330112253798901937258346139630202305832333406834326853488178410937379764120858538075496422140206141119015532043744778204689138329840323284952835592901085703752695976674399369063730693725047067004884220120462593742346406258092027493091235646252918861823648180957038889554367042715596469684330887392410410449777736097440197170857450026673216400110257698723107814713469296845108090653028114665360877012947870607479002337731563233104726328920835651904578987345864871089738921332842003525345994107128088744882245657697315122330347352893058566667685634976294045952745650710941354427029001897150203016147164755539822242689657572598830162996534036250194831906128608238133036709718571367379648143994383226923347937513604142339930401380072186004835182010322189804186570472466320169591238019172509400784539726449884734721126227464990324433808376831667693967510222542400242644972983345300866672619849376967384449879988016188407206240235927022616405046719279239941501862331004861339753887583108533885815393847317006293583358519597581146964730621463307960784373987768757335455213911187997490192232967618204226982895841834703008698459697345818366501321954052274567846068824608575127168413920988332724365014550388442856745441558796551946544536042775340378722693579501695340686041480460826979959631877019270059069111548640981955677586066925035523364214847837046708022920566896439308893363717254423840224792628193251862534048523930169561393921543184952823418746934804089857536353538993009549040955160780890508279162424929775146792142008949344972802577259129214993152289857025451283025910504056808065553825463833453373552509588844251914648730874359440803737466476167574333517739598348739784864550539260745969840611034851060529444041434676565717252361357790474108488250831151877906884592544623015175886497758384636415088696978542798604915033105827231794254105980136605546750122521274151447888756965368547581237510179526606954096017389851622135651810723312359760222020800432735049565243981599717707328038084871255405241810712573523507224022742228916575061103945869662226995045777564680010311346649517422532287829403514849238953403412512576813704961102186752751517138678471524449060447317122242489513115066995876973534858174666560415894501951745892446791447968161964575269906087455270309948302747916340923861389474837476462773418516312308453573794614720480935491353692342920789079608554527686070186536568046721335602761717259550312473414133262949913813612097010723288425014101475724254298055972890002123150859065980002251573647954346589797513207782828087233377054884906888529381318352384639714095001642245441083228436231575608841233358133031349048355053969345634553752480665275695839503539761713618392154684657276288454249703967997963226800775472791481985384909326059175389558814560225968220076081689641492302044916567691416827503802686872973293770968227357408504306070999603092660983432405612721784556064586797528622501001270545548527340871374647216669185793887352109353423379229892630644160139605023895300950247500714397126242150559340659946460124725869117204006199303616154022203415943066025573424805638986934258616917720756168491051561932577424092196450699904046266896515712045365425995706594973908581494301571560241371495441160171189240819659402734604049886170987162763361784335636846211685881244316675402184026129933223960370155197579571195060844843125722091321472863907846794428360685963319637320342921240036289659631653281011101555089821496753423270060798451303550926051963261778702667071532159985630055968136190713485966216921627445431722066848581487206644212898004121921451537668157646858621311822148085661595599260638042714536289939411974002131522206621404094740696527673270982349207268041988831912974818645192360375242872076669146825377534678191013429967317641141367115721972505755870944303937382440900794000429895234475751612535351442664097784967850900981469691682593467148366157739148020926357079432401749055822596541010036309854217664101520139328786100450133392510799702436492046936334366015876534737735394209588547026164474641726957375497794571618520232566391719898805068707689225629998640754383027248647039844971555830372528276528103984963155916443169198887350211850459586455657775309147981422452834610615960057167726966674780958408216843409606281042489050341536151929689707688157842512277702832140438684318184618891983362881831219194180798683410347230399405477263145033477509977361766411788141124425039219812314827061651747066821305656855712088002256054458869133354828180004468599734755839574199463035051031540015522099475287980738407079866341147348008640703875710199946987918808697386225054562233234421575680607438838859350754210450799462875211090136505557160284283417560936210333359933014394204733341927334265041309122109547516105224705746217639048050541782160860699539677449322680823193543561098096438665018941663355482156202259130616239079313118547352732317026832852459929658754330512342579059606861422692123944320066049552176622429935283187280538348229399283650190971267187882242665033885393082286933376068992448847061726320281638708783061443940555096381112009774606186899513597660773761766519100189670181304394913930953337842918272374756036719782084872921165088562533625988484116054468471326177883280743414085570724492996192839156005720330140969125919702233764078148056742665232655900888463825692440397501523793396212286342779943359309875287108655865123260351066537358543727152452805328463685915114837169849113066201760916514286844955604206227660316503891801347475464940312751173709499903942898848845385778271686223057593957177861710627816543382836903494142772262695053956144329789443526331931618772802828640111825536934129160673318986515665733050143197940479578612123997712187444441629188292171433553416488785818747814597756701501911316185442397656735605103924174800019623702452417794824067662826461484949828352813867733231609418338716109018830106326700915211244639929557149649311705624755409540024965721229593836870645625446170077033611455160031915783078270676853106764760303518174291391801906221601200657657506496411555360751278976959565266828330576997196943156692210086376744212713702036743689702620713095309591192036102863503403037815961807507765752570100571949204102902625073497013748673470087783660850310930137518068286286977439587734176644386641456817262950231444280237104216529114713803909352213399381036532924155213987649742493315372017416273487325727081090686873631018759916422095955432711072992401344254950969130272010138883508938033721454555405682122425968722507598492023976968076883348962518510667548298327454134012852383871744077685897699080918324657254376528774839167292303088844431445530392314074841923774031703185877115033560542530013786588480348473174789365792622845301846912741788534639446110094445336355138893560412552702708239535433056694115931272116772370251156053478021501105253202501577544482474721959571804157620989590323633960967888663472604066096108798930596352177451498470997308753989199717031542011276070266499192697094070254407636188106998525461538583749764957311477721163177255337238429602764840137648169337751506053947745212134535365139231995516849543919544052852315685947742069764097151630458861306050144993661345591085282384275183022414766980844846278749087651701707085296009570381582206217762851655412766756743800537414370414070628387375162713125594037461174502792189880476403727624333636952874360832310339834058813844770041373405969669941924318520538957378204619012339194123125013460859780391127719317390547124986451683443378000698248534251443965918906869111779734252666446809100692925880804039066463462129378602303403377022062553951118327197912975767812026922087065262350411500884277140924779913091505848336401576017018454692537003935088225565442441587583811907326647699739618130455821010027879756566117797789890427096752659879109340582800763960807231257405853198969715047499788687069638508968802449933587037540327522813188638515698778431573019084193208896058024345540244655064788568445536606921894394243357869914508599369101520868740456701399996897631924595939827644474461599676482692528241603023572146967412967058121967029397517110943422883055024983186642179381942803955637307233666437020570813986164042561576106684487298825445878115702838816576878438511941259898351985342303561078011145393406588552147661084788363314125424636564088212127837458305005113043915364719458934238008357518044480081009840544512387863109034643266210801855097974296982029596048661521071618109443568884987315215584760142455563791585717325670990637090235567337678831318877869068281135186835585203641409692903098305705458663536225263417084223137205006085372204625532596832552569740448502073091203725978365361412829469222702992539666463227417438966044577327498249076621156356900838506014876799025301808021601934202294588593991180411853380678917568622508457800927997551967436677507942480015289377072713514238242690128904866415439873717451576273597405006411081736967883054012648205354190756871842900765126485611889787755854985162332047391691511719590054761572133425591965495583461368420625350186960259069059494081897154631867476334843854811370923735709598903420423842418855880708966379450203844316823521002282553356102274275964783306960068725100207669156025055935702428911945397943044324049761873282765150199359273140107162013225381953218450086604070504487656533517799601446528650825266588198260841773847233366716446866514521058515817364451027024969207992641739693242849915267516498527243753965755264682326469881123262696163641880183534647454147352487504148870312767481122661561237042981626521281080982283232489717031003568648347842569120532074483370846902703414153478274368669837558346879261007699772148888037359538081296124302883610817694498022179355628270093620845905370444940350552562797796994976328533776835632998926019395713087406589149283372759284319941655273687580198682665235789220677176219058393745004871395274191768970838695587288110526860719926245573154765057583951365355786887814478711631412211288631658509526340320012753656659481843535696889814083107171393414960586864335839490438189408392620243158502606809820048339589806686593839614390857489606714043664469014789812224126709553588037562916559045755721003386273120720009011755527385962956354874559630508715652739826599719962843901563800952812915324073161580066945996090714593674067783448454427728123706222388781696176750697808050807517748575572569670923230053360642417108992908715858928271510455992936461079400377082305721547723921438626647041856238716366619006262163582847050786457280183929669226383682661547793184661672539236153139385645050438145431194206469896747898447335922616075207931783847419207138572314093237985771123015025849734569237808273335364434312217333261288104418961008141958995069447922836043487295409708852318597264971301624226442905225397818284505607845075249957689561178799246092590873408123078926651377896665683757017995971513531152514593189538078540006591955657260356998239990947200501333111869654961204768108327855969267204598077346166667466363001038686634645189280802115346152787767092600376995315751218678477132400209105807922184186856037402332013426407371917099123148663200387933032218897302436569025929668452594753762778610177867834340578893797240985454432457917802831929062603071232584342781136649682844001301302640939415410967614714915171577465437289907331210203255343027224979736595523414914231951737760657956953896552272050463915825628654230444855577061952568685027475200234174293851560478203611960520760702101127162984770883901925320496500348195490423087616266878448455748126531006527202444579290996635532097030929822770338976625239271816511915647624178913771434862028716137951710223142259338758578189519723455204405926208821279501951481975669594985388001197215267623739727396015695357553338728197050835740138987853882251768070126485633913248913075174065142068678404722759328230652621669760268233739421562819256281371567373038821860833705456639756381939981310368866853008893042151327813823408706162081419144452179668434353308799455942104303708554533932714415262654248205864223788238124984220690968072026482080375456857616485962873550373435857658456538180838606460110238620999475571637952479497270911977381619603350089321907372320702861326527927826991585967988187021792871262835510369229220844364413566749073216254078632564188770167299463313103589880796641650049035350214667186832192550674882540657574549998298347222580232987497616281117796172529221672785584423041321930864747744402212506190166586517723433503413932255503957372259902795333843668547357881374528734155558051364863263682844724778772950906890051627320746291672875031435456203613446595894474638582407971088863870034691157102284675949465806003035051053031899384285691768555815373225930130382419198261146716987608142262266444352602459027617076926007784504730469508112436310790313832315711321442997323957522908638175566601907359575316089566115870556720036297691010827851390343221516285432596915488404669266291435172388958280271104280752514361185969301872052810481689480755772815547004694557172531184680311274089009102040815537023761136252607432362535787846864437385521147160189450978531065652283167366218516486306231538608022015424301121756962706177337487682423414926185616639571106208002332051306110987216206623502169095417806316918215869132158033038800249196634738577863429389936172488131255616624818248214729833511314827929287414147420171585703013648119253900787466869003869303334315611229666883543805779672936669316703489351638662809154812542868229250339979274563829523306151230589376805528579275783664359298209878280260445449337863060195602179812287701259890006426186329535295218055763067673177994384717310393776394315564070335311472897274955871878531853246981736634222096511270051334768431566563340742105105938687341107840651672859476647649947290018441143792991862993588605651347173502637108068351556846562598397545888418493908421676188467847975221232095098862201023454581978545440883808141465413337749545359826428242873357179092155647223368172045904252231780838230512753134964577943787417497474155635692524211800815662901193322439897093233083796105349293261533625394295691239399395933069929265618772943419230310757084025365767286379128565965395784161027904854686999486995690177212196447104828814075784396214969160193914085512861101718166026883122905922307845161733420090667406815512164193741807748496111154835485792486638753659423459389687555672178967694316137319586828634456256145753012634848091103980883808229495389990611571177213451412029013371143806897978840901509879599963221530226495314711196861462276585707087840468721597231631646912986336726822290987636870013712325303885209913876232717744801990560108243902775813148235989254944404749470699528257788938111509162410534780723719396699176448391380045118140605799832068541520225081443042045103889848215649410978022350348743695772409471418646618836698155174961161613585011137021055711045730539565358200129687061072314480760794653047090855794176741477789528969376465463859875796164373017708698073035635596061154690843213496848423989035325531515918981927747950371066384901892032474195107059130861855867298637506463983877797533516400826372742801487047766355300019219709151815321752009998407044964819662429528716504111555813566040074654316486699104150954410742968618363998144346151172595630891492802754241729722177180205485128130773577295177192031335428973408621172974093053802428168965594259997082975441201410785539024508059818376928980300509403586765852450524916057020201888549323788698937378721861043814544210127559631931335690552754453457190831814667055460316016047824670307422236252559919688794351061284442318124422691927183203767402728059027359388057269211488427842432656174815043083886381829046862773557221205332631413204174056335889765179922120202828382542754115705668745627888916479499668530647015744469549185423344893345486931516125721438377023082957318435631501150185656525761948519347817107004779226730430842547365544924255029902954479468171275287069111967397273782153226459735242387162136247074161196092818734350296487696677687218445212327038449255372550674467235488760611552028912682965006861321585016771034855400281482233678180757030796999843035096237750592881367468862008080993126212432231357283408036375448345490400288326187626085962699209173895858508448217005926407787562408892578718541605773084788262013671561568500083244980383409496044189622536184285078283894314373168401479258333769326996455084254252272300418843491794459035701782579695577775606538714886890536171166570614296273374329521493248944961528720144422648321980442560193314722494928427784540577901191503656045306119029049446135768862097654613077770065895129726307897688523049478237833354144614553709119616130992829112300243133673382463623398782834512605516797915697563993096128152659603705562998092477867964156480716613756623150378125699112148893885977084759789573005034422634922788230640009382052054156886104119050438000025904616984853199522435756630197880343251523644298765141482973456787254265790675742934320737657884203949060121970601079846226368740241507357305438919808278082819333423770171112424146955488577548312456434144829069379042641621076724987641250193900021904608235034108562687154657033432317893535140858819766769378576847167454140506394186975750450509244391610419890146516125477795230077990168622065366998287160780069911978318073583203012656246805518756219174361994452471779616312164120338242903125639215449864537842715242124699579364377132017716308471221288812273632793307808526482679302775869751335494584814752069529418715552481316254167761770452718220022338631202283373251523113202513582811602816101259367864742717133957326362100550429966198537087536061950505336487911428154056317928902512880738549044859548678908851785663479095213063556739572838446250450417995375025385365067906761413111637661358097962155428405348416369983368487478149821135731616207229843679706010288275593521444549290225397591478394940000787174952908479057660144501954905832085950927172638936019981943273747913275945113789291231057334587726098747367146718929072000165991066559266749791133793628190058446370192326703948321492541942694069872712869229763451069673251085097991576178516592649870617105683719137639261110558919489451278884148701907407065768566687216197354105113373247528494877366786911890281489548307029365848791525432863559997911660799888642473455333064249681126739276222779880184447952398556251809570285540803048165163079412650644801187956924403500704484173679386996007991096152586415111827570205927167421125812824764592710722939045986738660319358858049378244979104637908028738442600296460139330665723357747741066075378306354281071782347072747855068023334648056886219217492341972840629469677267254059779382963869826320216625094021071643095482434899989748468076079989893039735997780168135952697950309737623908671829433865939816157276233153566345838900519935981228978984393779788693148297403996408007731352337679484492277353796346727342227136206497989717646714735066494912392593494485521783144243383451091484853406319799488448107031666663900681941595928100751462193616778704218106356590885979120360602521850865877551000988307522863654288365732318841810284759049980918537122234274682058612680654589768728952604536436390517864896183892623094189121625097963831965042513644772445612579947369580504755462812619282563238615157245440652895959458968369010284947881905018574129586205759145453236678511079794846559132503759421696115676269619782973751062174670552236991956365569588794716309282185034665441679736015053563465980938750266854093177946740456025226043823063574001977381798662392829442499616017675718974765583242526817440282423773340739796408328465876592367826677489178217190310753860841431211566336095992642403406836181617828558186462089722051949003423905752470884664326032694855820701049617038354881548236246339103856517847046633675676187510765051154942785259855803101352452689124586528538802291069130000995635984756047692551914507942105731958270306494756944632824917096162325376581807293282838468770844899988981046150149724838055290342402152642440205455770380425189242964980428349642826331088730502275437389030573813930413313759130176230752305030618010142781881776428617207677343751585416551864115863051123935909664425493175269454035510496520534293689945458404836630338403589567498113520682616762006063533927280904058680899801278420879233766498660882645832062855924459727505596629151137258226766414650404988618501901289427403148213563478756235057120714497012633007166846910921999756014988918647869848030874581118616141528215629117801935898828771101342785083087598750691697746015006744845251332193184372351750422238927542623252735243620951731899644037650800941851458490485297354085253529312262678650539050015447595722662011552727138801931729883806510123262421499700751915359258056793072512646364044948084050983639675191926884909222800622952959822618237267445786224732160563958304126858489734377627487237800825173739755488936402433615283181456504092349887741451389112486995634289862622917164867564315383054334952733925551071606789512759803835114416429881515691259146504772588602510917245310775910582698299211851835829706286678328585251360848650575587764627384361555880087202613579334805688460857040023762637318180804999541518840293605318074278826670607464309940337309213248372014741640008755507900012282990162158516729377342003708768018214791636013750150965659356480966978451235932122831681693008761058418221770374341312772784942815521454671013685161203449035027033733745255059242223092756835918125078280348938991106719787124305010997715096382814652425759234102400434361567128381188993070385058283510887993543192794684577918307214118097646293762540074894729771610559675191333438607751860952640072768838441109915403507912257447607463780442721451093360169984208721524879472680622218743047108400742704213289336396249826096072802059553932955867306468556905532011213419897268219300342544207445446375573195063284576369171394661255983895242522481981135042467132198454647982028852954614643682352339921788268082604168998656824673673190298068136056251451155142092481283304695994392560552256644178805983144621304333867959524509569081766669800658200027697865680914453992197575286510935861098916721330548253665997422874963752056133259020327062481121831995682983932079937010291478847647081280812224426202769266265820406380188954756404223794370423774894423715138083598670717391476160583837497860157430733211206954376564126827073943554345073835569510382322025906870298714799381036615649555884436819441027421721439125998098934236486677581807220589049271005009009162005293534454895373855625681910952398896070265290097929735610003288461058985880459278134085494035079843528091845404108178858306181385271179169984175767261293807115705794898992568265292653360723160819830667092458839994409842522574053066789786367381705331172532008720505686321212292199124666218475856048405455042603573846503360470660613844544768420289827956929653564955793966299776418506849055848271799669972040955588944965622620315606138030502973065862570957404035467196097319035155210196882569580293243158198047820603835815856433627040065923270254823936906592124840201314415195199664770575623394865995116263489466329061770248767456195312348953910547439425061879890938870860408294472982280315977092360975380223650327650753435121841043621398136206547152889558767532468685030065321119556256152243086617825783869768572377200594046832690221008531612802461393177321438203128982283882489115363067761025126840115513183808863451700325451724291706644429349092914058181192536203722215800634466601365714850094744617672245490709760460243071564523339905900386874615898294075315103019970336071227301531174392439760464578729127642608218342299646999802433737133665767698774664569974528142800362082372714887136756873173577276334039351353417512089711098347307569439589657842238064508335404798361580855784613902197767595450183999862235455497810654805668642911052819170005177001987240237881299173902454396345220542269690502449301522582624643392960474324650465903918551467021213107071254418622607732175868521988479425028727304635938081890587177939356488525467263108100835439682490486465338421125361219792860869990355500630432591455647329265366257805688114922051783823836087574673111867550339906470590481469448476333725563902236458873064011943546996311095640313994497785131110866990954436743160635950245741532392450416743650198575583591090224681427088538018650584280591871601626726900103582129803123318397315168955262561033275733404110793609518046312924071147050826214511321812775805386330354588292012749576937292302446891415316484162777416227708850631259712463344821728013701253258859448583489072309072175383964241583674081470177521129425460225789185998965870065521344459995941707362231027330795657436467610491231640779410326454363460705907614140612838710211394613180021325358110747237457952850421257612065455070244681078896234654510253254709108658181561775316666684910207480836026492134194607321707569697796786907179466289203895103381054607545304621153225447976232198173740521121336062311967910467786150507097287695526241506857441733253719746913998830350902940571935471722613650659026332191841245306800719121827018800378355358631091650620280804915048534512432052569022289792024891514567966540438386371088480591094034157569049627589999280082460260015117619760911816957928084000234300909608171139343580572567941065404127280226193970114648425870935612866878617000785803001168831469050843158450335534429997799671920554331761542060241362728221247141332047878701362809930864429367003510145109486935731922088419435945537186428726211570738257390648550903208310916675794702844672432296924690649212996668370167608922392912554881438319424469522674658938202152267581995714276388656678464825795319720587202435477165403514503431788522553876008228703333333597053852852630588835843835990683365663929942087636199335979066084897358517163800986957504717181668618691603417410064989549748489048815474063776765120673877246149808326134509523100032286442854798804689434376821191971062863069289473142687523950749658991549194530208681836145926003232848652758866447900934400861789581616501298614237778706118205510789506203493417613510355197537240506391775919368991743537956288758324563707797952532646778392701511930404978450450022435960514249480601519521576662434210788614887402160466889657634877706209417710892048322634438036262169049256862374229178418854092836010477773604168915089017963597910091650106574947354654987956685670715215668894553740448372331939500269740907701035575588392515390237647433964157861390713353686072597543249203380658331332387346508876521082786237346195933510320857303076412975897072029488294369012346668221104536194453479059089098244395106659895764356325395659786101387821923164439071696447228290408381357685901991874401334526851286254731492105021927631332587089053922884267921371787750960657339141742767044805529930814312712821311909209054784909976458290021908673559127331903693496556720003722169135195868444963019969007085949984844495573133704859158885305074966232585271089660619323579412778659400050144034757620362127848824962988391161106045002825306468993541829407762401088411360843072071658004872508488206361357419455267417844352031348779586700125554428154050349593845095865360220963304055731333269376302903816282920124516163476440536922512946596392248355523382869641733290534421292488458263339100911844713729549363335111222040873750696077654527151840941224452575758263568653708083219848158097129531311514878232802908601394147821577156096733615256751697953573221191293312032427301601749124552548637415452947871174984360039422593399159360048890308660083845376663609060738741139908153977509124269620328232459708193253742647807146782287191427683915580673414819543032031846176923190275904352794848465147248319980580261583300684074325162211514335145402705549619303812859518829432433532123022812614016102224425849560559177649207850798742770722298865928679524461068876584015047890159633093064394433372807859095647067715557288797609105628931723130567161392515910883855508974536869086708671810926609337782706435265088247936128533861777943128786739871777080886106357217840412910642586435944503890351227960705630585674180916269759772182044636253525199155087219342380205835920188091905813342848783902841926391138090469187739256057903239189515114700284834335546305057120194162167805862229680463618042695879224637619088895680936293881337934764752785923568379157762065964840601918478211808851730980560451164361496411376011163329861652759406292725995105143781419248865721829485046239725544022270032041745348778953724322726266260221210124606588660369816798435103558993871393552499792621864109857036978676582563626998652242451922004649005929729637581840078676748753764193485483460304223761857787036712992151830395184640492505368621301629320396503798144647278503853753807892866189430751789374439319506959985843007643461998479511832549925550013542399925733550249503901254117369711933740720356411240122225928076240385679805962536215522375354589478031444323215414477981117048653523556437141056291035315611252765377473033320032957066982472703890154129106249495178550555821885521170196967288690241890896584336726049834174279022558469391856549750975475611372421282405363950877260072038358533681605116094097451996407208887446541506405703838498379866335303057689639495570524316653213753087650712058286291553591036260966654409799259454634764236553463053029432346008050585215020570795170160476833393852345503963679103374735612585085945902694978864588455905579284260208506064473683797534809082433614013903746549660741741257288520462294491091459971278944168027484230137789651736787038362599915267157442575989748771269495434386640500460861289393739109493887128389719030770016351139369528751055423053910637419643238059611371185385060726996341367862677127288548529992627245322746409959958213291862556835553247124551637785470216972168883285026776540306195740265905433533853465843068881672712895586084526160481682346584619638675074482680750452815533148420142310196367562274914736119584695505624560215908936046334420275315749288340055439755515021887050002899006399894664847894228772316030734046468416976502399653076817922831043447852180648681250034800510388645022119546382178024801964197133642231219141879468205331227722907731770744441937300420533219711231280796227135126797201216694180257207403856616563374843803952222500948704458106254929732065214244266434946439745313867395716286820140067960832793501380090329705030482362422448771794937064448050188681146616834910085332081698440146374089558489688670552696096719919319163071659085879214085339559694034490504027479697122881522206539974740556455245209626474561225265744285969076057531365541471179465264366217861872277483594125727523505591632644251129833081589927895493337191609137422102113547998497854538700623590979499063625765818580968588283570406612012968686247234241943310518077072332834857605605494559203541258413901741953318657209794386608470315934751042712402529885696158690418310542318499780827470717307879578269063453058488282232170019978589320406676644101136147760983761193532230043192045549885469669209437467286201909026662146014735932221266534864691944675719355133964963713385679705146075195717338259567260676926271453345061318161861487823802889107552920873140288934885644755253086219872217218888464079923794600553363480363823977660051763146799720381171360792376394506193352673747954353494805730540261019961079190573279091923354552056575769848202330614509361850975240069724353944189455312846522458241690489302671872325107736798126340586717325227504783020950669900730376504568382128629289613560580746462977617228797667681134766783151127799955550326794160521082402747579580646715245345928259683072365129417040752714859040781534740077139279754643086176718164843906772958704180611792158430561102623611965095356102615259931578210866032431699304007337875351149206510971122267233065891641475056265049492746788475485578009783644935952998788854652773713745622606925331413389967915119090484410330095739423437242884493872552082765595092703917542923309812356420105627189658166365307259212931038546131261301716285417786249142762249620378372032847662779577740620062423923874420911734371467106152679411645115890959810409818152536382721506462775849853525902052216372192603654725504122515587847240171901445449096493647828297431840250955799238860520734266669204876917848994112928104306505134315461249166691017919200248788034738061479109364527593007297455449241441109678547115173274766816691000728289307411887046072821697332175732774500312986492030093466148321306690039868433293082898111762222799008464098293662554306083775426468883884702568295146287458568476035011971407727507442243595850008519722593035039525742203876784502162290277834775964695126633563439139256322961464451008646988262671373834158412232695745525945320502845063951169566990155571960591589696054207911571041843138952729205443973438012405554882693095470699003219576040394239964110175034338110199532228269563660106538530139822189828651526176751636195495583538188477526049070350568349976544732143189999792045294608481124172502968168159275121101707327655382759408512139080570702717069283078699453648467658615674600416944196510573989845905248492374659203747420136269330569490273623024976494973538803723630580233059478035596224005615737042075785112596822130275953157329958859870964322468214383449915245904742345676126566847614082766798708934305621295148963196722763163790869668632052841151223016488530225015530467613415109594688219596953425113481768263346609202283543049485344052227410104572501248919742592176400146703800326415167943498078102117347528729786485007543266642025727742321383241813527157771886074834444052495828921460688792484011957949858627020970129816626385330131436180012045255569607251698165948330259900724528778289283558903858632623853278251118815490607136862352409721621644638329077224186095079848084976413263084353285481163992497995508033600431280697969321241756586726023706845445002561752854781050432543308895506080274052749408696964104841891600927183189843668603702536764286671909519559221360722195241094794079543208368403927707351577017578665046759382240925356916685703993394703937635137485143066699531970363838938082781268943919676644594867476736589069895099668465081373769584245159489932056017636444176799407314480915428806712242468145115672544801559775255164674973549967339791029561951386515263504671112097752869002291441498861523292496422389962235323397723238579348730037481083098399487699491651547095540735033957212215578025346483968842737775345034737493326540619606626858633583165040522847801727425615742588220207451144275811801577334558605234891456829479655018252581601059074810751850478491303679035952161781955547198556406687269199986379740250428047843429287448186032002460567541043414203622632504788938757860741842995767469598377084539583586663982018683993518631070274022012327896677689925549041983303311163211472094444403247958160851899311355276017581619137979014486570507672756410649791302474077970990885168471548234586566488759951604142969923550983904006211911725993845278933273993717906320047244011308732285453031607397363947012204586556027873292163245620986001163382591942157282551780403797339236068234219264301654610087612263368269953453698365210952344197580721847458171144320539515505088748173626272592130806753473152169390354910419375545261670798660192559592866248512346839728722335871600948363489606919466616814516394886816118912385913072381565145833686085701327346172575385163159743154708547646468092371508915786272193248899428433237110447427400565257398174358395902466733915060543885884038184252311352399294070628383541983058371258853120816950485855662749864239021040536297197343815371065349018994398145481648395887009552308778831588555985951938081116532166449973397992228497013596155521384638974414752793116308323566417176800875883056849617919725293995712280543640006312983956041291230505289062291210400832607060113048701034686221442261608385994853041797511906655562580300125748161279543203983980543944527216991044396503733088690181354194205330715418700333788510595752898690642612637069388347588534556525176439441663998638715648303845505980446094616221319851079776704966393840803389037648562874396291738859440278886960594913798710709825844101047261135462038784514405934347150092494099039172674258510365860446573926004264411983774397405200474300766487558668306350393986211133184174762025771840179404457733785979482930066717886954411563588773135608131484649559918853874288527363215134068293477268688985034828973370648263862673732847582005326539382306846811324961787762499353441827403661406697230278333368947324089049918192210530097927873813231844561621961828146529069157833768454692427857917779182470498302929161195809476552903731340714831663944891489047580142478421084066707824739113084273684929877687975583297814009796747926761135127042958210915915507790927158027316571531610131952076984146886883029634083625047664245355709994290496950728362923937514337524080655652534499608842473516093403727622112420044957067018727245154159697969755039796442088754360244523103603683044569960759423533313256374731137293568863609661313845583233122015696169640321276233969818528105052250150515114992299657470985885062166253237375244513185327870796325453818518404730135783252462763001415215314380035631669222300142225651428658937002620222085403299697615845228297743676794353930379003934692623315892745160619200146499996781366654827732199974381552277785156228455676691128802156780500964548444670741506534777495069711897679053323974975329987806437274888221510881752441126317036949280520207687838800595250711624969240329420344724778883602955437379344856606077156375701824309760438895389150975729505631032746974334909303566408321644629199582464524799470515025904857101956397197756948707008884885162795918142802143495059966105656868517203501314242240922559482563290137374433113141843548352849085927480484467120333436553055408433591565097632312690698938369552945345488027192741491370860410305951744742647853275597264745562606854075237161783494670127739476007634792363378302538380820444313729871936689655573273195802631907307897473234139892070875805814363378253100505645419463560255816594550414336980724302791307724987417212602034891433889566985484763697044427302509229538760745432700142006021721162063398348831924427021791956468972356086674705800582355961317348866103907698195960994338633349523441470639199085968296226225087195571790057289076658088249111781367754993978078300360526292925310505353247783136146292640702501309120473858849841509375856692726623266513038600294067914800165463432156264281250633566295790453080055518531058863365188909618594240322997448826525721926640341895542051121833729184795293359130609750112423853661972197796421698108600344516874496900839515615782067009078302744926310479071857127203451003722793201913959397068444083720238840558979042068423696650417832959700892427501453630106519561625142486732516269298841428610120124022084600444891629582609484620370528230784122803346943096319135510490214294631540962153030212643070860323923284682602191072978394777805716339697561363389065401815575122433931762282467893021625385012486104487119745794210557275351301760141038716740283893815578707451398562886626072679417002226359353139732429826281086940059857190456880970002713709821058056681819017295722735042546432476032680240205887326916231373409389110555522342226437333922197994817667487155972810511753717685403412014299615889923733593989549489075705000281628851130157906482861249975237202157523213516818092263828137783372469099771928373297852441264749417892082726997532311119222163586693569043733892530159347417079160663940973439632531100096340129422057800971039014373421581027322975740281188627159640655844070333021217886074575114888788222203623103003046371910356161460361447124663995143758625512947240020853040051656772880538049713087729745512686104248325029374397814631035539911065672098850920167212190238426064005933892007864671773768341915561751247656671250672495151438402897930206826269456210905592891816307189635932563622929984508557587034197245034797453050722847555238133255044605925637081844495496921476271360733477818669372372072658156817717438774462846847409334968115045666817399476838628326402299717590183143871463381977628533427807934857948061030112484848646245195024561597290322827294761178658181407247565542409864876189962744838898601120624286410898374838228178312582907456517152483178210216274470357415727462785170088249328504976587356300683254468817286394579746540587845635135638950016712297300903701148965780332192536035055850312705287519986487357449102700158568900308559021364298363949019577850160121901788322119115238345193741000676998986627472641883566008283905592372550403756755084085347238536076075245860297270308003818637113823298769090414358488904807358504539517519631542041917036364676097617921709743644985306626886879430741617409661623276209322073567436866599789274651431373285126852762284880859819503831389075694615928242707839286849532195805844371440002005608313431401757779056114158381633724115358066274325524458264437868439634460659999876182590035951821145735112558974472205949912392992353040536220389976968986967488354635814130776859400709259872900988334710328509725188382944140916668270989272988946526532599558406787808770697481019286833492849642111064821660189308436559368732737507899320609123182323140198333493438418544965635403843275432248914159476671719461985617131993696935166369398995550380370014483948264836143170307196997863874739589085304602676141592694509147356939466530022434392826070532924885874526710285009286196114009457338919791323089316903019216805895175327670472683720697707418401735999918097833798339737487725344118209316681016442884766865853910467876177030558488432929329084307754795444415502502217386154764499048445694259723352468901933002865981515343227934200009356763812345101660084255038158714904140355345384359271219864277216969074097982963283658466941556688166527457043231197714729067876587543065746107572427945324364755120205762305137798015385618396096923079676141084641908605288881824279020307617055897752483107580726479646295785070288710600964868513223865094555496810245383855136562649327503119329072944949923954469882137262257099070397263896602695409079182988455116258624149022604321191957231839146443660965664621681679919087606127735534804345076487118132180467897188675593713441639811790716336236070634725804023051010616440673351370720386291999968054335999405859758798087110310410546720193092305073355004229290395270325433366215398591855821027226302833312354676586129579137596765831216843243642459412556766518895882437419055355018125367833812639825540138495097645791754234942439093146206600320133368618300077393156742958871306837874401596388892167696045734896402002101249635256958838470872361213451984995789752130754156914639770466347344326764332676390941795532791310022094719555997108909942138645905684885572513653404514343821283910550474682284499514464038298614315061178288825421756216672747709992334071276257819202812142611911073064798810465054880628455212585039298427631382090033316230930290090599973068018492557062122572606985670323849716094302582415045916987294815793469229579760818199185855177495988501155147526232215759800337229658837522871231518459755774190575993633746993893726320575495163168726531483566543634743213567305544779854557868705472207851676750479887086418591521065091482389784656304525249597714150719740256240673323914021548121155079450776725895259774552524868504167121151701375835329224175783617351308074103721149368553402609758974950407653954328059952581949956830728639785012142056338066956537875914209850865451424283361991580225586628932632480968109369521065774683560810824090034306627059835236158194409876039882776495308153353407172345203044828933842071867368630774064087802581317835674262267272571194999212519951500895083062093317345436763229271869026612363159702204291023845867353330973792260319378759116152971494208837130709202602451880449792842049970365135405914259565095475662632200824794415551017625471875906222167095573782088404440282526398551637633141463239940470552520380396329113597577051295777136302870533811763097910542592797201125197972945817787083354790646314435748719338356550608745663336715610355961775023647698349524715439802994293915925101371389446317970936107436985775148939501621766977939988465629688967184080723347965394175985271729444704735570500850642907034416808910211707031882627326205889846715747993730741112188598921355699789178215812282387005568511520843561975105364114478765814974502400686254181546572330536701457199491158876041832375817008195130601427980127194897175687164958261413326196423041387527974869045242448083882023848605988982663029510235092193139933402861956252173425157701553572729220121246926306479640827342534537508125930270126103768112815834991658952509590320136511482856422868306357453311084107692861625083783531678197827565706849565406477610572780987279395052131321607600079034623049894497769097518193636182759515265888093189249006748548877605516551775005865563939822220941910939838973602449804856031634818335521830192190572395376909858814815131158093086173354825412974449264704149617018792797551542457395835408047327490942813756218311401634166294417319332638459048386244878540997010387706290516849000738413905000136597958187310162452294082953362592151652470964080018904495494200192981600757223873464594219410910600251990851889979650307226971984380863169277567176389749604214565352387993159050149886599579171643039704995570766913323826081118755748265820937053464845314505172635239320417982626500689674695983196584349581956793472037416172439405217339863321952737696512302768543006206570645250697746102293517261101574358357468550702040832150175245060487398754663208790646601078283675845896361013855073853510067375103793444517038379567884672309210851426879205194065099833876726940816479860262590847627314160163240278515011717283331830007383042586341673042441902684263039812839942805652816390280775701830753556842170688889639286340910048618559384920695684121222988175424660111616145243453112626817881112601311758979869348813758860629565510530136096226300460539465340531791324308207142332346880771058142328632638443762155457012605834526023613780147370792592232601975689880244385104790262484368737274014445950493705856100181325062898538714813309916410477108273896320672737415980009673018294928515566321190354320087256640538581117926868021096311833753438860875617066106439783865858589607145017313995544664800449586927169067750406791442930457261825054463998072206152426327269111607489993076762460808397914105713007613485825047026643464484202007455687844322923833684462414977072559053243400550444005513343466071747903093160026974264957956379432387224324195887002996962798105534241195197189432397299386552596294550940938255062669127565924221799367909789368531922460764765891223654895674990915903340469787746976973930834501569386494614735221477849976255332723696032514489453481008980382440024331346843695761211566607885070603841288964118248780622338738196267690624366788210095949809442424187562920320065251921314005741317690519616847264830636439320456554242832719772422518781546991429511245825750723270490340733933769658655091818329727032517159380335206720871052518113816643567621803802207149079051651785090073202085241013129353897317621444981703603627796346264125107612254013085507414847795465977430594723659946740754998168125497909233542852010001448544083060455751502499444781609693439561053380640235820698312287308652188163032984115442194790393501201494957091942660223060087443517455877404080614120977023536294770742730163376668890437343115111691063984870857519016350543929592210636817954914702533222891520138549656400790602184632441609006988707446236248032682714885617088282829205190083085865796538016811843420359081005825856419711414229806623345278955821005280076814018707429270445325412904113997094980954258139910556790380307331521886928866303167610202258697653721299475250430455725830013552536455413611426376002607782200866394469579105031771687413811477570744638560709976983300615552895214202640884891301254586279135234858815221928187218277823724276360796690100428531199243144922370007106952416117854972086343646367528011242338623806941761946484004104151768369589386211672763870089713625828678156748640448367319609534833412469150276998904004573119536325362290146945885267037511954030387622339833721288017597939651478121498756836701081060841644819019103413258723489099911512032052306111490354204328213759457796966455091713536431701031818789758065035545352780768265932944122772631479291865753641301227820237942643323139621811766899906807167578442117110690286910440637903149947417620216238363272784365149503929177120072697391657984003323601088114375183269883007397742578843761218994989313871803767114013917634842715143156860332867902398117230149814303669219832238328737555695908507588955719140035565526523284417465782191381950372630488461607110485178178877502066780785893750860629420172768976033777331949779447410871076037228795539021441920527564586232565418362833591508259091139375657952734208778367239981680101683117947611744539978442709503174040761716540293997700041802983842660614615102291021050093816991908695110371786012316410492934555610300765842961512535819319041561916413585661881481889827585146636091532382030926865887500883054807814363140589654388107122017915577094150912300893869154084668652970101022977488062864603940777118033095037195123381828721491853896693428219918709144566746640755182469892695260926850097825442433634266838101402524645877522270064738103124379923223987317351448612346463365231682981055786753759036903810137943117641763855556928496402148632656623657201812086754818915812407120301993190921439060249095443746094014905026519870444311101074893116639938095692813211452137762013845780621618422241546500674525878892237157792935164775757592049539598221885648317022508468239135430515094557742174908566061471617936435975164447810550323883367016347348090561086875199872484536852016412415436427786505742037176795367082235943081586072996717682906151777860547964419627435006860280062445135539479023094089400776401817207383352662528775566715556181919325626010084053824294854349707986807242163551425379962996073940594985261670806225885950200515857693057958763983079081500442064432315365995949760572786888306347914976417188541737122879569539906067545812746557730236044794882853966286488923373694396048454686805133585925408469636683391938448771232905708389200254840497096830981221183594106008197993267294913245104068362939185136240539207708645740012891780694050360426869362367988943079730223935130170069136311552172095598907658201164205434939884229100514652561281382365969085095962275289809713239065257696855360406132767731004472784519833785177405249019024859790016925739729020324610615708643335000443325193488284265871656888058387462186448436589117606726230276833591935635487910831892053894300131051615802949357647975836268502028740081151847588820929179849891397802356805609221911696582675767219961769557507519713620300560284565468488503893566575750372087401278474702952372451046027515211136833762037823553184521688008018506750487488057792416646929619762988811588090923578207082474494262580208813957252465084101644345843520497778022636731625901120453983790165104160520473553607478633983876258779018962450825770669295396461219924247425883494576806024091901198471623610748013177817424628451115335958194187556981271136777627849815991032731212291961148604838067640053847967207162743143734675195071605409149507089851574321186441959986144528394296943179992745336029553548178368169710356016266723466663907916176896743868503781887513594367472576378100866630102128397424167871234738626820026639627033882858353987528948482517860728526385798258782274440752015082254416339136455590304646066146286501131582255964339631516504491062297554843959934442805500920649539344445916981082710240454797651956991128727390411783408005810977644894661056944277878960085328362238013097855866622282901743755565968026587181838448284092705381854284100335500951582624959967086351509454398850918721664150914305620677110957862637111032829637917728577071703543406150756918842528133991607640317423650348572704982637096878955235219016656058218871130860593161030135691996715774264297530635878474089345081155771693927785760629259273192910998834920024408783387938712998494272079143091638929815968784330868790104488596608646257627963689533773751023551649238765174777590334065246845548810707137613597257439109842901903580371485352001772667420425687611862285727933352610588783238367030778490111136837921411066339912783068406227378021278883187336296782006118115437957896115519932050321193013708249582771906491761179178995879177558758695883223157568048400420618689518128497552636319660141034955162596996749622784181222636606338222523078812883528500076649458076458317167622574588362164540474840261932489588225645997960704772566304810983593431767219595351275286675126709476768190250465664403073915407270787808858679230434462893518309718654419044087567138625646392419983261946853049709613601060146507931990150204060000730858233147028650310493777474044449019682886005050056471199443089874339674906037626673454807305586409505393860718641758414548806693206293505377890047441599097477129322854782733628631982272880887417848865408709540436947183628855690450775891289731303823008799327683165383024557644667455761053723835172460665024178651723726170942329392898425183634862996668975151821260971174620542859213592735558642484789519649778848542721966538091459246319332682070876476133280023236059691829763118194160549281736172610794638988120936980323982571359959168707903703188910000482600819961126114211759622165042385248742961517377529394110879823634244913457387361131459684398640394303224344115188554456113979634846045966773161138637849931183721560677673371212643913489074882342576811606291050418167875698881796033118876732401344994184117385945881781197272514613486796734647442852694132714496360607673186564903236083686577493089132050751816742193229901051491275537091562163798330316255828060538272758147883092215024074623742660584482270568649109569571153623241150434113820574945488412163256022979623040967472305268956454439407858240794964151194971801907855628099144158700996272843479896474656279798803481454837405943353448348359030297389293814364900937297910560359329256461702406349168069848974006588588375434513923673743458866617934074396288377427279517750013411431064380990151596871718021197219149627832531043083109170939764631215136442592101383538409994514742094684161157344635588198153981433765655940841707197031513415154675758321970154877767078623057544993163007413084542685984620903774312501895131553385332908494836380573530908062621445324995339900010816944820833916302128817399875039017691141067285113505199510069548046017888462432363903207846248417441897352561710847532403401037135464653192346654025664907872280322013863954587613503026536713872954520734578990092948338262033186519253231992740673590693179900220137954449125159601356306237464103694737830170574660522988417145480380726078841337418290889386593476707613801322789940302274651903713407442736647272924656601830808634431197560342830495002903232446876488824070836465565534423675516152306743022526002372167269102885032909297520917034688879140236519551513039622641718013234316489462533469568370822743096784834893549499403256466297769882686704247836875275836865109541052733081185629978049906901999533536880065076868248589676425793118166757418543004598797807104670951766850072802502723337534421032059928679614912766319966632523868037080510151441584914314686025001139085440143703354518090586140764546374229655301408671858144590132886488497982060579580323484735647150423460078722335628346165401961317773094369507276119873676932566487604761187099498596325729196787027079632891513349856310402996682437145524237030203002228654737535716297899603406795595864795451765292404234981871507519259641250774346398984851498296754383244959186622264464766919194543552953049535529482920476660447494983541827842784436166228581443813349244522967641963637188261804505034194295627182110907889289745919240068971865838199750405497981263376773102245500984475107061424981136457332690274803688990709862202543851137084410099813971531065793964577915270576796979838524851002817201016891901620788169965661851580523760718277101574543358280734879902414491326330556620565916794224020630167423352261561663659740426064783921778374879740775599647809440057656960062429530885930949723837201277343088490113867604469663874041589196877891989063741645994657765449253577407362491476486054465032312580879887157451879787032600353969137877930066660285238080530958889428433151357211718139789125711639857147574432616297214193307854420118356524149921994439937108376594085778090680637066985420408604933650065489925306903922483197318356808414437345392232914283603309058442844400209448495208406929330532618124091566527218781024707786176204329658037397847301790007058184051880384239316274462626509881672225662933567390757470315158575500321614552853123647750907408331196233575061633592687228011378281640620471426811329240094601622714517077375324797628877548033600337915809854076187814376500137482050633009166737489523945866512168552810154946749063299043316834347249077233101764887605666511027704566356503369030556393183448625559349772320175596148078348977729295403624951366447368645635567754116615448441855669618201497269227585408604877309303719251655168256063982126605745688350871554758885484583921804941636808437877633271393189372347947045302480839727739794719169237430200153280055438099320341363408254910625236698131981981864284214552299266135837032295278053150558871601705709622499243118623937163299322546200379649613130493438695350546062221969882049996594911048710249351321618961573488035599700704873163895579841894267492153466127172205739880764514557613171825778074891374971860935408205457939137649469901501295742290964420933975500913159428481269105870812086506674795348105239056257083980991739339124090423604984892465014670577916495473139810524353586710061631896116182667644142023209285306427913386102818486657166230540869830135945552896673945266106308180729293443299824489604923025733563412288286673055225328688415824865796267703517186777279454427226455221351506959086183769983907906989403493210808032229938933182754382617720815086350802305007052181162444833755392688005693012728276284408528909676447649928092873267476517103930417455338209197424185536969263979177900598594424546969364406197718368819950237503842116894192177340218787391207108377524033257372571193003411719103726341296505537740937475016073894691317312364299049587356645612355277834834766176434995479869664400432318169635226459130936867821961314175764517085444121491234126678652001599813380213819049170747244608758485703917225356897570446006330718456918704802433465463614905510431284753375309475865746649632092556666911548636965495291687449431296302766059575802295029064670873611179819672553327397832769585621458775435755551523905523950572393119256469495053515702211886843830762954470200395751296451715365407987499180163326919080147979198580975209145836503385988456204282348451145825236389047878062416263166571847429124034057479199526509765132353682995542811132585295009466216783554647191077151704166832237822548550093161062875196024399179314383476853387315647775721352010980878238533930766356718082461445326412282345135170722754922259799831029244568157375234617890177661448443009873852686094383506799310224885476126610844842532701321574645620088527149380964278776628467968820070711994716170884939839289232691294900395465508960647991172754388351010562639183019794236260050487410436059508919723451948174523897559620852488256910163987085318596355956861992879075419415611021622789642193063712968189273509543871256360325213799566499225468850388281853502151101838731530874446716262636603728987947696994188991626098742052073648099042432982496354963763461911173933723506407129917578178753469004175762938168722990690663107556532853349070570802961069420664196763785580120858697328935601554871843773149926018714980376995766942306320875548894763770004031373623268401682303409364621239575009524660100172963474678504272929582974221130750113942264348630057420781098490824622928230077860376471792723172520029318313097610927309074637963424609065333275629375310945249036693100379830087932692700867764492839553129124401954062791637945426837593178956226735603889443918718400430467975756699914027529722431357109808481024856426856094678170374877624276856059212422888387447291098929134549892223004336262253718445665001150785247685225870098077994719020105478442366050438911545873801465849312764001928244102405946082698289568431038702138323303530798741580439293514301845264995890204796608894558741952828658929508177383114412353947119115650850455261853142502813164342554637260595772290200239699072662333004049478304094903614346731332783751440152773970708580860624844821694685579625068124967118115816861911366297230866725125765034351555293279776641881454764846340426123710100719558942195028356763304031384983460671313368001741954300693603999206009671382945871610042942871166216962160851335886896621220488333418591428665118829258353932577796271518886712528492567427334027803142989415127850486501594560974441192136993957575343407677610477865199433896426860036648811348273172535529692336962047121345868562085928311733089181520754014548981115148520782609547470758436034211110110216137289007562418822923616113159134976414194797997261007657994682028057291230373940950765019476913969461383808091584362861958581357211768432949327752846389078446226310161600870838578883855236355874489595101688239833768788798242308478522374505563156890322462603585639041643123775704210156658754398659615289234667734350435299666264388625042368449474769893407830834364191629451174034753837133351462704556530828120110807148444058617645765525389465495384305271809693042813677489543927578018494099754725372126878048326001808847996814235546007952323820651911363407344978556455117680369784203860207824436204663477193755215064499142172034208390174103431682395299716610798073677698824947619025109396411979430917378850331058727047032906484925765308124868800679365186897794623446855969936054127622500130860027330166646078852063427977495962483213990592612545693885157548376429972672531791254852428502603312530208229457724112879320316958698192121789971336691248249957785630602137879649447510470413548891625290895744695025251954267516379795985018462575203615013183490636716432604456118830708683106493953756968691996996152873083140442938939952903145981356069974417725344607659993659323544172485662124751289170880981301117660697877263536739766831008580717725129907546822888788579596140464643781986294318392565517914114651076211643664530790129415552783392228739447925799387002978909476041286508503747108285614289459463095795162560591571991856861947359185111868013290631240385647437249657531585688704198011737222224525063323536330301744911817021339330659326082671911629950899583737740475733315628431961901867046120076305676375927814445947440148301543134389660428525575116890127958770172102366181012575605391265962152932564599983010307343731715048069035162916002683313035497573228784106714787638113077303196150811706026760813489765658690123162673238299377833118259724164064309974090825551646402744884211084230349937123881919214018617174370380567247529188721730885783814228197990728137292395858279225982324160917240195763473834016337434673100128048351825555626418106734097203375400877351662659716417879698529490429459567229469472446726705809227951557111984181146458604375595692928424750252467384411373849570380156539199256749973409587132333045059228571123425816008753205291213030835402789121807377862287422006877142820314654701800411179497556533903607419734051180775577894201774406561742658558496961193394811498467328871487049976723392490030128255904668083875343764530403308815833361872586660607379595081521993259569777194958409825640928007309130865281192199480777851134691962130394400820291528641254266421956905560770598704385295064049533160466189202672967265178793373931860402665180758665186921739758377834686786619756595389569721797526369790703597369730292787936341071879389446860227795776691368597100369362439069779492418241322168714968252671262669886677700973803725903695872722994207687186181435282506008771097671195325551857221625646576181644468964624541195042992170765492267452508932919860316023903161846012792415264438766111152932826849282232445602829786337037008215237377820836097444973304528144195446485835329274547706578042221623502460714233144851281704178104053609372517095769758313807935392224976608392144399405713515927690089387646615967814454064805822078093030411596280551014258328184689880951044037397410551668499404170980010181990554784771097023183346623031513588841180753698435460657593452103011370866650114594283922024686675562792772266113601269594542391327331878321134340562110420256444298788710496395293433949755221182045656883050239666009696806946670220620199997774514843634488014101008842675976413214430044945918204596310391421765158316861315700404371003710690572135317839019162909197719217979867928113872176321100940923144541185875331749952276598576844860977920461506517831731231529330330964086840029548255137083533262190935892285275236844269528079887498270462834266697125478372335029973390837209166827767722716764163495060721343427452836162073560497846727565421694226009147667024031249817237796662653734766267650143220033177777684965080433690144264431118015073238006354504217293475648955330102032988545597621232759692335539205490551158803098118657737908231136254239255550454700090500712138277379358301077657312702537415174389043307538444230667805396096824673221421212312634406719205447947188402154040781845231276216611886043987553530844061069171253492952796648833366317585766666200168644338087299933944705955568847028290949036564177456420816976488492513508215318880632816105326763948893633024346205331833060792260480271412215098678401911351279952748860381931263149394775165021934618093083469340674089291166226620528022624529423304837851182971338342281565419598204494504506228162650003075559664135202417086233716062500927746756452754763982296088729183635063103741564995276744206625342979434449760702282856432217053879654572051909628456501444464036058200701563968936971521580882103092407102472764042515524854681712655899927795133834329699327430070043607993579610557568466322250948579903562396403437687268894665247905106967967537646284008585737248916252423778261790375340007610496178815824346000034985360103426444061409254608632778974783292855132851281816744552522773821060406105899293980836965219282923299066248507317271764892126127678250627876427548800640275906548462913040840808593553468686845257417580067957542859834906252352791875650314793127403733154035701268160726207490214419288369343981227747676590509146389116665089826957420227133294371988318475013210354368717202915986151161206999891846118726550794404184686627267196691063071724515314565533746074919102855512830582608785561449635500484343207919604312256970994874264142266431970328128386162248464331477172158288238762792087299868344875782958190926501834314212106897048397399410973475237350971298564184387443038167644642834808899354863736953330657661037695347714017182561487809326541630394976506697074194453665167078033077007696057245618580065934647933484543124542023507688058750771527752364075526908129704950406519191777004562237659216905346198286983973138509236442671366314082259051641318690887537268578538338155468079498467354704478681423875049503866108221421342057779063930406637623563310089309078893705278099189009212897665264007340776948820132549881283500183000044957514856485134792571414293327510629555723820370437442962362263947816454577247424916708456953994415871711725769334786441174448134191382191304303078383891642853505409302931902280816206989264544456024932054266120566023387399435193518235512633540892951911155004405118260228865633290318343668416576214476455781327206615837329908299531175240168178245828752787002139777855375392851403542062349494142008713851184131585705328479833697742113039603936536618125070534560468740708212949792329204859085170024199673146361952144498144778482187032344783181244188201909776972417639361368632869510605626091560213753112852350426311887842303836746592328856141248833515333440382039219537323127570088039512200793928545223603227946787298842864912709244656947099958192735749063603134094103238748833825795918848141054126656248716779082919637561997019919368029403252799645083349667784595580683391557015238758355655201083554879351899977905424041694679296747128828293610361373079963614235893968039702927666202035368272107607466938334704520198831593768364179256365529876611262955486198865773826146583467479993298537632146204636988127796955701159832880866931009556851979007132558774386340419837473481109096176878900830565331964613499266333651171055837783777010785965141176187422013647748274075403255635082598532885258960301468300510949418925057725984077716250522867325796910661339259887722564096592296461481566886080727689616018183785726166637984760897091853762189378959689370754812660261280390724550542406561856719886332967719075562508135741702901585792428898242894846248433504105364577388584432148339563265317243986941908016927168911729884615235390829720824450363468895987091300552516721276883457156220150792259631642046914106674119738124492183770818972635133549184632560156694695514191130011319317361439281751903408147814475150665740175327116873832507746411591798286444615043463854789620353309890698243612406840701854082818030858279987481580605310331131136529842095635874808770962006233043610673585600847562106254223859714423431380623999993335049318076817428216997386159698826975653503239926739808673978341404630750615405583562901013809809122448701242750967308639212153200859111247933508842325023022825328772173399050422938784525763762735442142197061969143725240537530488050596877406017090676390184979671772201496074766410731319206127614501910769094122076242428936519265898976766696878560374355834285873865646701053783260004528699411779240930604333854076176569336750290839369578700941633987261162799584949161433696324396964351654659098276513561423987205571383436477696117192001441618582228159622953940398621187851302375190391330435118908242677129228306763657131411319397822756487293732414753295401384662849648171306332581823228604553298837567946606571931161934195968774721074740373503383469294241920179608367973931384233481405685038256777522073159287737636152553348262574224839153982138599122308672281781923896736611111721245174290874118901038994146520507266283834809166381440739879543210014666347900656716652363390633277684799616997517863635822485198270871632111826545989735640543073469114658628018737265344700627087130644947910237883751588411970969630576047001956440447146919970204071291210023515629790772353784936525640215453949418773955623516528985277894034269636860809647270411069155741602720287913683632763324451449409330015840163545367479390652734414386347458035542556482716101467063682993018601998632732431703160629711167534280581390351023002868654229328125950750739383935778919204758381834369180552993399421205321336126154721621827655142750180624174013412121372652322884715544554303981125725203407083399775487066366241506096452377878044092063350032820642946524648897009166837312642410311170266820249400281350543484434876514222017133086627313530371831640116764253193547186406375183961656712236417535045085939891881525711210155628509813872989382521976726999931838379669476773286737273741919078714442063369519215828377721216004633766067585124156859711884130691162455963623781566643190412483182048026105732490233387005656393110162395051517415649486110397078824760451918732952863578676500469930406712876383754993163431872317421624141837205829303305908196220793043548005689667087635198455764268502805880524460951400096704029464845459164770772780560255304405121752680683163316152450701232206908694470535901638475589076598135713425426788304823763284789988721612075174429453331066843436800928555504588740357801885230453589767474994830130301765350823956561502098462057027345345326169580075353603550559602383881070419804243954661219666637010739772936059951429668401632324443669404712668551987226422238719830490696110700974287366010024230087152709432085735228850610774400978106316980549704239183453129470532149545386741829545458860044854500818680867053379327290202048627828469920537528395323534370588472867160862960601612433653611534738874038339638562261423408097195960579150231462485303432858157916840726819964174776370816305034575245815134087658197691315127931728211758110478146872346164142739934576659038298471948236138987232551318709850573422957385135251947216700983338852959131759510185194763164294285797088980332798534231916782188702393464467535823725880191547090609599074336273188140932893412291227474840122508577230985943636753771425618310648435580175257909387784763007343643925695167088775670454503342532781145352308258486357505191606617448655834435881453688226966438620508750027054061555482641730627669166089965547608183370626265909214912726243701936232480448351395210821430775096603582305512250916241540861313137795468793079378876357027999275476347777033331478438901842051900265824936826314705708736079357119498880828248027648638137359690241332271245128133433929803110808772580916452462655852632972091018949368003237130548169250235030124505260179758976550402714176029254698409115658573431404836054939284070570088162803046782291750513877343812383447134710295200900455873318210700491082687243210430238903083826565285343076491712989526756439485700863164692438666989929826054806318679892243188809764540940990165324665347678782644994298210824129056783143967385240469652218856294741230183196906638677218944812191537038824862147080412781797423795561482703448749406135742659420827835525132515622010751594683259031408678896014852739883326836636258388413200761701772056291815414740513260386556174112236714729171684874896915055303571396198401812897238112654119662970224491315574512078290117082739461411697002896372008256309246560725936470267710032023874439665129824291230524764638472931891495099251538763702931948463168521358378804948839306982309300659296554631719080243913379480237941926605114596571758754635241115242733687337152376189570344388169276156032306466383785655810216822160171120543590110709075582164588331620114828593896472684831352938851879288476736567177333134390820654087145386848006473984596683037696473411730624625747018544923368436704752159273172985505318320091868389640043152762025915246465721427166677664530969619216416917750275861924503347897304896102507246944663980837256314810861585275003816376233137987957417581317423988798312747465277728552434302856627448902363987413186997338737731769523805699819658556496409570083140093065029623768749592543488808664601583269557149045722481786268772203772801454336237060818216540804416386619311486699648407597546885126403100806283643191761093782297103703731720150204268326146395163780320612635900561828401466991050277642648468551137343713912457093961919618989678426385827611800352414237750010306149837279428200479556076953279865264360968632298876301700388146146657321056961756973880681896881432316614693074054572461259831796008056533326160509269790724097140553587272612400059602895110609785458689647472150939830904792205894909554317099656499930006198668437639918566947535666942087484096059635878252233314889181735947077457103559071964830288024242578916821732729163481682774624109720185940818657388490603688588699741103977117456146186908802460328428028537758881649036807466834450440263669268374269104313975436626161614444494462625776948867375674004726892378591605182331965431641209596245909849401325953058106066566864021529882341729243394639458626241026278857040639283874184287102724659889841565938715040699230571016643480179973420488180643053612561096596037417387522401129271407795760017499924457865091435072467563489585588222252781761939782257825125495134672936920153136018342559454557713371976868512680290405756917714613475052568393759007735957685610049041623867765080122373925743644990343822625341202100417942439172678954172481170658275188240499148581237348167656856921130525769769110129869953512208353808903596998719859837539048926238599672918867677790829543056578687565504918241486565241607123425991318650698767949080752202588474250232769093498054172491085487594079709084882852782954504440514683788630252112872293997177657653272395135721658146512126546182813517333078235165813349508869904316193267289202164544361566454574919038707651686595216191808393656056242310776216982478784063133649394323573053443267225180040151839976698298299779155016183371003217523407680683479614064547765448115605732721442941261470886241707592111370396229055806853008710207080492761449750609008272480039362673598933023765730043883144179784043551898130254953996571532347366620066791282051825940787744341996387399798884151065867800625962773812420837969429441198510222067109094363808406768748171033062014800721012992690132932234412717573943809179171731725010257421916112472424040664579546344193772018921201380791563750248382200856242033918586527983193137937134293402622128475223478978067991400051218470095967084519023622354210132098794069529230482686930779860282253143443357472641765336447971113946625478275446600103324003646230338215838785319975249937799725444387853598973370021617065228660079828325974173639028568271437233425444222055151452176050397651038148277549935568612980338321609426560997747871458100699891973675536113627293084090781174005022015929194553480890391471026241508107473304067982522002600491866362326607307459038138139634324444046009641844882718948435659684812814281407768665309495087405964913382830384507579331602554787388168440158396316872538269568061765127939108728356959496423375773396196945149129540412096117676844711702136027231745795212961714029801065481291834162847997925468045159686409955974647845263765853010903261508298188361994698457009886157350572247571939800804785735148402876133991128158749865216426873285346603564515942653134403454810525992796035412962752136065309819632239522716378703851721436116942615192823173862108627890597010537532806809189067616565663780402296923378833907929303795613332719840336599379456689980229935503409849001400173648131498323407105918726199131095227875545169920274081957589481697299756231269995317852527394307716615653391912820140912238657965141285373656266874103090353343604771332777432651974657723970458187932528746818001350517727256479331533841290637971065008143607885519448970059573104578348861488413463569670634572667744431918019301870510086777174276908520507773728490510332249408215649679733716696564298799233195915558183595874052809683691273393521874405763160481390234119422620064966133098001252590938484189463909049982182778199991333056419807506290727422468544256769178175659770933122390756368365957279036355031147317837068763023799987155896051555881947495911397416600240408916473059793605196234730064743405365326539187034944331878462059573800543085431183292849544868408911352061609469982418959281913993693438592646949153095353063510149389367632786226010076645166796368495721866627480859410065698586223678679388926446724326185788425132701685293635795747717389294067205597630216533762158439797994185567253499293225109367618902687007284262175388615828200736607180700067611820722074480584180423033869221839833054413941745142754623005251743345702264670499764795641479690569760676408635338251853509531787268641241791529278792672386013626720311273053488997682665971038103955899796196610361143184810494195903648814989373578305157650897319593368930620435214360149420372002042514900125078385697039338604210643805668356216074667704071601585969331332668942675391848234381828979459806604780606280517752502700128352067325844295360863339629381092224389515240631097789912154935501650183147144856320560888575269224548652694376473465237645963350358970471786258208341733765066929689143970376645199846476581899076293106894240801140184865789822265509371598841859749572518859430345232996193383198020642592590523199090696606153154346355550640412266887353091337973488164315307413975905035210391224970868289030033731221467697692035011885134683686693412607879753856419213339585684758618144786096519056403794717810056677766675148479119908214124040081839741998840100795249987105171349397844542542552166344208502498066875299236143122289652581473462473781157319638173663476334303044640086266422326940652503042636938687681628216674124051059657681375227404250862096962263716972100086287413613279777911904105617607170450647766968396314123362907723755175169717355386098288685452279246708031771154999879511738254527460283689787785087037754369912251959473990729435551046697277388079001177446556290718743894223046476679816461386698332150935807704384081830228608033596740987912753939713223419057141800880443035952750762848624971228586986658689089467486832623481468496402763038197802863481451092950072210206725133636075223532638878478711174172125265494205389286713795415021054203425239294469567063262650878183802347995605540396632892529139959908130929677412993359998261680758225338456239239939570674890233681805825958956792528153993426021903065341065309917169292367004475148664431180048431851323600012381217659433693427741679615810041172722500471023733097194828952942005287079523301450120857235415793620117152313140605237337997875906975237240414138835680409461991399511231449342907140913826678949305708582598280661718859387874308526616780296280901704943995626344154726456402994299158256411847268233272420533805791190166132409784859161914779682955240003211740447370093552665637182308339150989201469669304999507856856892510490893167990963640355529123495125689902715031912907079616800982237002836639878977200143767947847474557495958307582940904147660607889044903854997751609699114573560119462530224107062062138803453265394764933393527096867203421429402696263342708614336412711210565380451073905560277752533004182537987076139796927389954554648281940587761725475329270114819058677530425471385879639207923585964516926296313062788665446184421360180649376710765767398218759252202951955220372627146225062262253098277352241995902461317886425568975231843648037185615342495758379569009078489630592698737364273994512715551270802097754247829023153052856102840163428135190389972144180252483131275642949827450054639400563959543832601478113720445027057646267649335867101593735362143861812703339249562456884942944369241345029119074173901439619911722977497956178805688464507375775834842527255670851409757464608149338704618601850821685801714951707430408360402200599892226846370549859733177437611228724105407255967129807202121393430741069688112335843098638860563847259063970972421025763884747581842499051089500994575616720327008115189066524025422094984725115564894995021452271525565457767090441888983541576458635370395363348404970219988052019975902478479464017903469912123543709465777892464452362619503395408826539743374254333549874921978075859458522300346837783420376652441395523341054579016942104697675918031992897372494947055640397817064871352916277707071329303177221412017367318060270669330479721418735965502548050898922435711326855098431626244500023526001792616484909951894049851802171475509207988044219329296457535810777111018037363613044850700830524445094455680598242555255362890514476945282616227682175511254546661617700315737342350296910563000060248371607824105319824603239849772685138342457668140407239569550312146926667751756680424052673455033343831847004952305403801997449536808420907506992645440342063626971357384828459195611566808239940312927538710800516541370865939054335293461142393906395578109788460054729827524489919959216765958761050201888118208699108404610072868207486480498807176065591000679724742242858417896894745249364608070851232277868406061820884522565105835536210375126703316012362994404259847954931953383305005953241261967751289693210230804543193351877846976045531386283840629933973509572742408516307936958967534244560951957559422193660676141000457308052153347150260772465577815267686119674750571762040372516187664628582312537346459402269344575247255718569783232280478145721231075645148055440606737006906759891316197415109444347488232442563951837286363698245145057463446526027851691699112970718653363522806634239191792056442831139677515516252310144146349299809040308197887007071205036839990809813966049697077990176923278425488992293921283366774119940663837936019760548518347709042834073764672914116125944057339763112544811613416364613411865527316589349795617568864684319303996438937805030332834161683426824477096991831928690831467579696916474357716595094097096930620884698148170160397558792220126763477317420771385492160383224981659445188821210778104093567611864640712814104613176731617479650084509472467543992464376906632387039095183281660538163226492198280700536840563608788705425679685041801554042559110955852449978405600086678957851514415842316016702207653456267165973751415919898774102692991784943415751597337235643033239203689827441812480239257614455536500702045910747266426760973998790796138441140162501515051902305351802979961372125922846694222583455955747136395376195743552300352360657538794136175018647592431167281978311462513397769218669268016045547668268594115057808529749555449811981619489131558408754472764297136136592381822292678985084545939774507357016343993940152194501662880853917300595822089797698099352444539894402300519925398821637330940260061391029361102203280951446777334441613764104388127050468443949662270784492839152626397497258759080818456948259877535909866943785943376830424813191240434234329496348630036847900273904162066366074521155415456629318489074158040952427720859558922342844221475380282804077827125636799320915906863485031222375140498378539013881560110477116178909441214943573111686493647370778741645075256523875442389896294443594354756691090152704873523876875836087227774354582948351644339165714764814920199062690609702607577558596461617153442975243508827743000940301957549781484029776252161695536909037692221036051434976610928465941570117194083026560547002427834519267277206254421319371259857400710980972033218084530615769887942785470370262527216024323807839755507821062808324771552559501489617830874522338574353858379880912538701642175265338419762539590951888901305226501053829677116948675420388783686405767505755732942628275691622015055429796275559029019366611427926487663602500863136493691798816641134469066867641405545513610772187756697210017861080790882040922157265315025154682293426609917628921126533966484649874041443770309440804930851588123829735171816501541833798680212008508029883536213124302205184423800991609755807814530066886607652317512378687341499105508872878833376304191380055649129262165641095065773406309612380893157690998426528471136366371895934058580396972685523859941503855902808471443634414043680978631254882437103085281551841109022441610617281532819544284900820754123250098854284722443535528199827883593014815987465255350787874252576049714055212943775356463559188725801088280501121886771280128369911558839004521592280551573042765904075593244928579145553990080210476792926519458370417372945398426154544398063862849074810210919890431295914775837268236310380929992834090185363300079954444083793337176863750894169327271064763008557757871091492764829540636200541585796897263031204367974855061208090350919189619224893910482964869131420198790475095856290472877396935426944674965100132127317180231902329704932782118419402969471686130182011017316286123424536849410034134861609030275418665691093143409461674581466910384322107589231413579287807718933453408772037090002780684034642484775288769131139870899015991426296789784475103176210156399687098930742542033834156474091189012454171176776682392007488960792509125356725387072567451614733550876959617710239371602263178496144520139059521977151859798128996670804213078218061680934193068252016644865547618123760409940788262946880954611146448012683899577519302345934645772933123495315041354542022254127304612037900936957784842141166264711739750764559810243850365870293993330908997759060133449506851429982931772960514466220355003018227516302938963097147471857810515874323793848049268439836091843052398226768823048946296292409114053332239191653901050236730762292903603726056434936858352527559006031225082199611471773450945126039462107456777932267424351193906844295878305021233754451697582118068918881915105137927617027346353211649163389078381622555286828124090350330190400100054364000592098953483279137209003773717677552565622051840297570606380021154513276822835554710643393527318799337525951877041277259201467757073115045680273810866074480490771920402196663260923891222555461905886169254282498877530409227601510920560838883803000102850351657761752831383974504789022078668478733926556741289954033194278868216688086189169736839910099966503383431165252156021327704004589624313028973293499514957218765412891246474362212099268508787006566111927935478028176804554522388716705865473738091160790615508741585994658861254425009241561319714261979130054317156427580967412351403620527638935386466483108017780995840290154459249312765394861545174040251795196517111984525320390302155217341881722759672457918310370374160430685622792630958050456539753831253725080247217145613051541214584682863618937249288283270512668556422607039577152488333799977433945134888483199234099749189638189902260174176526552542059611288898704274301183219644052191902152451919008320470682504921680087103063111167779677090012029227176655398108377667584499060450190906011802049760944293375211074482301031384201029752267565861907725158584668453869142372067342656620404821144148700870545159707118133963466289706906506893482636769034247056639963390405755883676304784252573204322774634428701476135637017772885099775181551419371320902771353311241198692090144655899529360146494014275549262028249127517020769181150381833154734889484890574328313629253111153246488914231664229909362970811034577172362657150765450337016095859172356103040669258628730984754428885145423168541443778653450284456452628221485067355436733970587559679828678221949190029112030017951438905371797461414140434856416806232994534892420249585263005977935776896452214629161306622072124177366051275203502288402807439518300451896727049406275776325606483418570169335522303750595115808775398006232087244695821264888060357936854562479526967491651260534234595592038922682529515805410138390899251872817175829744884233277735749957504212890683864908666454571120739630916986190233796553734266280559468404626943822885134727299170954049576752224216181759274987339851223469085326449735733244495090967324057248653178608260263784205723519867700894619675548226877710869549729747314841296148230704147311410424136747832640220999542658651704469050571567301748827546634472300403088664191376529335492894944933217313704014222572941027177971832858171523066755575752728575482071397713963020893851229675747507560406938181918505514233327140792090388148692403338114864499840860605171775574593835404843827817940982239142553917562978255221731633358396802063145660551188496330814482558494823608410359282273469233841185426012564610849238662675757151867237156016833719248219643220790399160598776493321479121125971702919595309484138952541963038551487909189396316493791437026253401342426038786461518416085860354591519720441707425348065587472467587402609467965002323584397264565777004529005985041820349070853265198122076242869175835943154241841482376646738424037089570880446441862550366645491377119822133893717158391960919776779524008931946810172055836824306505570345075047890826744192263460607134240118021859020950622883929679659537921386081914307548885880193321350106321707732475892842262167417642128301545018591497428168291825788494198581517871593954076360034293458250211901233066916352491477430434216959263395628617954162385871821504355079382984335931005315308595456763463218289527042965242505430147725659651914885947548453822116285038720944541084328916057765508957977434398831725388966574056264091851028338177005671512917922011128235419195903385314593134690886025431383485185064559590747936072015311063527608367067166951354693998502395718513520591150407259905206609546963482490501730841036953287156127697523759877936320761579314294727899888962419050304458620991516215910989240027413106253922000799220718922927783728496924397628535916475292064476312201332187695718812318094432546907514535437583528620301875953506572723860785408616231109080655793642345901116809212023924869168296807772019464570370997614623529615720015346101786358527924614687230503564212992825941502280687281818151565009715377605216053485850820593981051974397931671357203547838612659319982453750397096860691707037876332055614850343638087138639314268007532456752276070829261187661106394744374873065745338511987720456032370883491169844677924801461990171263923029576811023668923922690408661108266824182925982380548810683961851203063849521756741507206324903273091770428243532795555308409776601234022916531526474773383672919365318166365825728041849028674746768378090317256075390327942061096504689372613466660646064038491035927469462919089302022281220945889116934329994361820928012297768221814897851949306965786353898081314252812705242629981695682931626266174532458797716713533868972560121348425383670192656583805071917002797048270309525933999699630783051054956320818392939402772784517755230959642172565665913433690811909738678579427063019573842051297202816965803437304572925148259345531700662352000292775904470751663513578482238102258142433543192899885136638249884404826335681712283077862938639018790292520695756442539158965514997366643676960670012314403003049877399571272640349544958037995276027429870593297104048998125006651804327963060515478841209642078825548494336710937878878334145138708233501568143593530548080266585566264995823685484295456190531510605612155053897305504427627913846301091079094472712310588595110858892033144814440758309462435465973306939701664097261195877982046966286535462263997261254842271447878465117681810304910266417978295793863919814215962458987752007108918522258691927628205190258790411980729263050409085856235834595617008146535665325335904336895782456259294935315534794366335400404273645910447637077956418335377698640741808800956829763218564153869391297825959262326646181717437759663577952260626841461589248074293030811242877044287193796677653187890946043849599332672358564632164773235534915707173121012411365203843060324807061711475945356059537830369143691877980462321703797095395107498440948046377206749436713342667245349140515326660261269657500366584885530160863674918962117155396589948194123620234366123578689676708439282776536366301423874181012540507962956206530041647284995270628435513218652070409648822576794238353815958231723440219922840032221205348906124536452500152878478668634719908980785385190248272706712910103220029993708116593987722381018119965690256062974210880742929097146437960602418576880231486935530076928539758253716749690728532553592464564631893670390905160432556208084140617649096150953635092533406791613671728662367503502554904298199375045232781873367361491317145619892328798628011226354201983273793242947970195434171469590580292873189893930008862065163670383494518022875970007481543608643347168547723433089521892403340726505671080416065172387473502398520165397942817215456667626260028637551984850704683085566485140683704293794139162700110309251864846475382936111981294549740449151813168979751637328437254129930051320623066858511112521266317446483824282483767074302760996653666920993566466891326321317594307155368439883674194735969053822746993635186185401554407867099952249969490083195118506706400685197728587709286868607839277191220353069562268521945680137998167611225022380716081461968612902496708010403910600134533673561034336948110723835518546385917467386309734417290790423989413983907315469152516868787475780013078420614221100195278892862250593081594461681620410569206884475003990714581430937916821107572003359360398294551099132490664050193774486449625082359265248475963755989835006361069144917101992760067418268047797213282867447649976264812721735710328528228740038201595736027136927690763977435228892411443144411107842603620281832178316029132007320899371584132570435869584155844052762986137442521090313057284686427536347268506411195027680793371433850011306590232534137683258359021807321890418211507028699768336593906803762809869508854149575924683675445857744326936344453870213648170333961208764220504533579017016153042041306169990403397594941293376754910062005953694289030287354663496522017188561192626029757452022624234167951215153098375179538140684725294683591360775020041633291814215032390443294170818651623389848532869349334731985725562953568916941771319947179029792957881478563237262250580346879087234678957812673963909344294510709840223550687852456063872610710596411223783589668267189224000562729798933788346709301895206180177067601113865561791191598509785136954107202803722225742461326473727042821375100562947899014466830249590387411283673809533784803033160213831529523729359414017159899653510101306156338442596695886849585095667715902079937377811820411816424219630933725879748206771242342779909530920154125177673808532785720624660679019994883827232482838942033124564772986282702317599005222107140092895128092276957710635980996608322226499782466233182044871730831111662415721245999304459150559318322915918486865655708193056797371482535021107016972456543254012402293687079837590748926951240487175370214112073933526991834403041763545749507032674918001265142462714530167825984595369135148510884636655201416449661301397584586321739819005950716032894990705846332950003090557327828620168401353900348617053979628999649606350809788401825310238294050618332894058737602431819812680667919714315788343338739637220719752115475339211513718390548464542934636009619462417415058216511520541438711369058929122619302287146026890085197485002558823579131168715948341839089920913203075063854972767734652752928034026493501792893874313761174984868393970303759147335728097384010883774314574282565318909872276731857691459069648135691033876904323679844545809777238685590381817021982913267832664867877522524235268774142729406329411543050704368655101015695882323952574048403055708588002454570041419602123065756489391565167328683581377031738080086498736111074396295246286842631787295874012903084016629335888876979610849175056980401561246429677457308165607778180654614062005057882438639395445106081083570466450216091535858957327673031624515567667414384088833270315702351416773769517083904816475197948053745391392892914443075568025407184362724604793116387880701357386869070041509206510672205440120960364276011329724521569903499161456428535737837998070474770336403701343950488593943472979664208546205860957485625414649898041000907530773015267559628676020239060804678739600844980585607538101447108177562902637514391631198007620498390357270270453957954476748449813699248136573732371085850455541465622655548847597218587336544518623069299075559875968233556393219609485327645401277479604279632871753869894815824852014983119965952208520565350097076912140693283464094998832966033327647482206722078335087206902000641824400244539878693260812095946246806081131147733413838426566850325166279342462798848430573601193670732386623353056875084387389732505848972807063946541614631712506278718618333325935204306260396229611746773288860680632582413884626199971759219013925161880794998591155004263325784577918001865350616631554840400349978960175534015519946829586269733755172728987319651664239697409278109883348254407051660065375767719860169142962601186482660994040962664747602687138442071079182564424455274591282961448902464678476222749573972730550922196923047145738467337876058492348171795068025605726807859533682513646141636086292199119239707502079543256157045906162904013896120234333721904327349898931172866602204501234419812077549167812283834949088218332525200331770032357499408325962170586731394091149166634826120792156723553721028835880678598450903647457346988791424991352223829245040869650968055439053931355648816257191773502732979727790140132681511837066437583988395966001355229239229707031331844186439143059694525808918425769846710019527853206278222326145714104664090790160237298131324588399917544531981095528976491871967798245121133859530865513119491744834171997233835790210553301956340229418616883534268120619081615220094211575799954120021940357317190568560834264141083231190790548593457529346007016338580518090626461532224967644340069975429957250847689506527290578192472749156574709674646590051029914719147118289119392488649833608391033309715309741308088180398981485629649942773045508182141060611892261982245041987327031645910316110699232391136595764830739615000899121486352495092261820448827979659490195692948676155222876069942655492593320590329509372938542238395114300043310150334224272375990239946238947470371396912711279805220477461609649765788386169787484538918283470587957864580550031204969700483501861448614264032217586242954546027976623834301622668689145749235074051757644901869947591739216810829776005245159094203528225552078283987355282655162248012434610515665302607682386563898988980589964057275992157140536848164807779927658627413837133703433664593255874957353524004871021737258142700208925494265839456359548321583292575289882258524152018211564659182003382099345685696347723373236065750854976460951450777174805417024303340366095450264973899892418022227664523236738833090357407868003472831636709513603296543090553970703023891247152841734662949816528726057289626528678913761689969862533589189388228385408106083532549375487987502588288792419197385550449529123097845943659388224470244164649561863225923376654239452018220620850426134547724373784942333217033102296723884666902909447383354829932744115819617966377300247839905128763179257907813625398983290984754318889591348460721623930693076735752310239771502009748978095825724985688151150662699303123750522911125315654372367792234351008218315869108751775029397176891140169019348205313750168204474542496359979596304630555266082785225111015462287247687416665492667611477486964189665526937997879872008955723836472037770450389166868895715959308846517063397863076616015698920110508507595378493647917878023891227277859569710396792691182181979885853844279993779012327978816331461933099946800503014663787233138642673888197106701172756267345817105197591776137673462060998945606787320209153888528733589996312553274969212711849998027445814572012395414727193431045639873916934603508977487836882748588933804812223249810255394660291952949438117714752702349470119783157381355357443238578130244844759080731339724270164421044478851236117768141995626602019806619551318540699224271943659172499975664934941501203947281606859637460807827862489809807705834944105301557299840666683952683832936387897286254630047256907266189157702862167916019841677916306357340277713508991705914030836913977517767229957548764750534783008997069000677410511969149421700811372047259753644396456348534364996181727619958963117334536183420783992749980006811654333085139086437720806160505642214634078125515034149018758084320509007059543775535576295838141517858318504811239432032597386797390485719867309273276937327021885716319818723434963331814571216387915453142560701111122519796297470549766509374416322195507379514037067122265137962871127426328987814945034177016172047024292026850091153712224197022596642643444265681568841766675839187098984621114089079039091355214667817370847918982660148546625729760797956915594552929142836840356448820946654651580752441679701330243051197204871521054479530890390304331756035002410409738021800474743405408024263938325013106651352730458070177456887599222150675865046571620964606843860581273031013311355585235378602655000431765908145255530057545584560652849746555473319027207181116654299691011129049834016806982463006853401538525293292398550378731634664610327435423172733034002784455480875271204943207113068599440209181907732606725030070416093340872697564750497858436338452349595563880346228878900332735110249594226852538448362732765130052219884677961586038050372577466012899557087878120114911695368226660711489146597476946743888212129881693181642431809960390518234142274204381051862663503313785353376282132013672262663207105579997571779678957335649772361963944093991824629976247108860838554202555211201641588222246550397810498918209739194495800251821036732413339435105888834578610201900191733230219628435417855468904112718565823364819278026521390628618449116702191488870904827113124623137659024305147037797495403969435852749644802648127072422451007442829586951880612085925065572853359930557825928553367169424646210570855059398014895423863425211986241096345894478786787711460468621822442392376975625283159391356671571228954349503339397183390164447738047580490001826663070027836196973952058095610387550833148805493164514258680228509135229783492307133837160625618032272227125125667805414095387385252043133573198597037220148621959805848392348441280325999736965203305861722938658065020774678899453894900056300996036963736734090336370710695683738103338028479670112821713919665536535797147858545348247034319221726761005852620495622749281362823253128433962134499700729495379484162593558357980637927972817569635221847345086670553335723230970729692047884874675016733531415662846788336034997102461985435045604274831992405293588622915959902184057038603307703962653423068455935836989408497344274136350021981539503430047093035116611305476616079203765896128371059263299247806069787203840622146209184673391276842327800183148160545882124286751640938895871868362289526791964626884225140952324039029539209763511293370674815759476460657494889932883050834774327653629391323834959577356664822624809331329612010475444047663973140563984704651106471401860631493668164272194547072378432552302413027674183387246280539131982723913194383880574828115230529652859988444623435659287324708333701887304027079141881362170157407948899335227315102015913129343782388035518369678686648866458775590626905571391094421987495085386554298723204501811053941070750407851561084990758127752862756004213472645847357335281891889724758115680629745069995044908659008266406941255820104044202450851031496069112095973747603683740391785263341444269058855918829511239682401763767252089704434771049064454625315969514300868852818715156508240426795904517074787849823184440944021315945784754298774506141861122526850226990836615980029815936697515791887027568765032684717317695783102884039717980834303138780196924336187322847013154863048732880232102336414591487454870632242458670473849517007401725271149820021054713713967679964889802935086605773656534300651517863444183132600548483118838753837297634185476546899224920339455798389617043081293960693984308786582730944049297492273907535724171797463453904563017564370359716628528123296072312928875833979101480386106227710124593794723394152894022898529818713923841617271471054759924479287937016319787903437251832908062925712831828040879556257266064204248515007357666011703828688350167496623973204503845410482718516998777449491757871099503655202556718856877386281302841198306025737603008900941402120697931919865841522493926543278223445097306962339910319698033230580468352998267224727399763880205646223954953573191786894111119037852389548893993885913822144760974830184087046539008547146739223911568085190203902042226807455967892802652073507968080681718808227361191000011762669110075488980544116745171902494055376838342559615989819634872131407340372294027016006560757944214817112536983592225870190120709727435583711756971238308431636814898135737561585213343568923002124056930883383037624686267321637620792885437038624605934008565370623288505070592994123998873022581592471531892726381470515798723742530812219283209153994377896520382609755360650372101462902179567809568573387976397920457230104245037172602084699324207277148449369690747093558325277533698058424895214410676146810359577814692320540913105284841150504299628812209420419228726282399357236063362566377431233591001008600848906124287337881854335992729412019447522428441888383333199555446173135850223147716160448926581545784109712051314256925432391209334253354982507654632182285848222217368640693082514710445337946842284259766624508318094642178086697089510994774882329859772900164023814258861382208587799975340449173489314138985486738112821354430862954289796833150539039913240267497168955916318193843752859809771618738927132021175054785704230186232810331697573035196237394145823897222420640596660771435656788442332478385687515398740986917901729330205299506596102012788388562313961727272685264523642164428094223531478975052657030078379692943439544826779368099456707395463700591915926200550648610290948924773859262700579648670780725931654848980862147386159198980425882370302057129449694950691013047069040022411149306035796792223567418207956108509390604624133514685860788641494003960247438815774705171113101211054166464905791225199871584442210841983972951102256709277126236780407850333803498870209112774964583900368497684787344645699920976737119381335497348626174179513210036335312410720995233415810609757564483428248214640053909539083154842611013058897704727772065677313350439845959347360643592699573911181240189397542967720538490797669742228239288532994695146323645066722809419376371747688891126118486366977095622036982023458196234518938220828519087920636460406584011586912510888913345645080804548003405580371455481043019504947401964988101580484234119870639165735477748032767736145818207418264470755717931377755789099873803619962295442485411754228592169248780766908387271197795988245635890139502916920307923515073375764785579760693582705392806604187421880106374289725703224018620714929245731211344846018264151178403609267281558609246129159987880823109668958146061051726181881156131785465417957923856448738858063457836874828659257544775863425472282067694702126589671827441961905378869062251194087814557675577603335703112550422960448523919801860120626345500770976147885886367655476983118429649701344264904119829322981005359189576268629001841651883632251377585625771354823232152750603219786177905737132652285129386097174460960679138336531259526318785671868021324432838341560238428960230420588862121120935734148324713920395905708020075389239799935747446870897155800411133807478589082429991161605232210327101187344855897747826469869097750375957461739328599174188108228968664192342259614588705317373279912481596081926941014289430872405107026489292985317479525146654229836183574328358538052105866972489617581920077390100979041593167200988955732072827364869025487728884093234828088300575948826565896080512914620210952733785816676907805057101751039278365455726194795612505211877141896034385592672524284887788224356158423409802599328683949259343383746146604116235383868936918283093795799080951258736836972992526958578914721152457686652907647596538413307181751962115528433597178645706981331017995125171935928672173471714152434737940378029132236874668763898470018846855792652484768276475034630336530159522359248635315430908167150007396989841864574894874381536125334749602737919623964185547554277718120216555807898585650345117704292944080206897584619938622060474265007723617075412731004625571334405996829268673015475344047724775907551856468245990235287425012567501351332714826873457505520006128891509365492985754602482358889708901121984898192680735276307412781592745472399705108352575266997858725543882316370490830427870662685865410097259842706495120493688070667715027594364384041287358377873171169050261863670036021783836556107435823208636045648656789701789903098119264766300264445957683223869178873981297392135375672029142568544349994644144969519158643548119115069175334162687033877730440234513168033977415679449507225095216467825740546968338554550505409124221262353981363598462101021604926574033351013458878070664210545440587503279942629282213832377734840015473280945314320273871674672760577204929465358350443936942509294356905970938868200801623874505470459338525078805938188808417997147204380842953769639482863434103838328200381076850344477648057235854080260956012078923915145287972129961397398393028022107200342670414166932276895239578851823574184684247976655734801817296791178491976848991449508458586646435113717134997676923015274388543962112841844297414210600187800476337570807204296574901504922791169795474152122112799296177213436940815790866685464209516168858310831541177361236258061545153806481144280671628493892443726922108274304629001625694059725531325032176698921242021904016384685115349102237777249873882136989960286662026183446382879605159942809655263215529370345040917837242411978327242251905314048201520599084894604229446096463431432291948817735539559446365116530033984079618852032719215007813291586850400500088749932974318621642238360760363480529001169981295439021976631257273194827313623814483699913176160925042899591669827903849011458076787011372617189052825952470809171999876118179868456464140926989360372328234466859671005515332367404840778068507611984568718589024258382466117618810564547368087692221222309968759175929853351690557526419051467851727944863190472869324748435816331776337001814540200607300467453902846346027295555310308817973386168758206015829487334767413405074161511872567773509973683048426777619154067132039768650201696504700542087907910374053127070380266194387207557503129500700290895794342493871734775854644260830383397410241202934525432613357545582024814052837886227951552050907361447574327629209095230196378170706015122327947779379910128830693299859068723911394295112716565326477166165751024964284025246105476211242843286501125106985955298201022417339381082112634047884545149139115608055966921304805198831759361123475128900249972222171740945523334128895089166184486553893611949736185917130907562848213737073141803148109874254998114410774659409950183334866189568058529145378294650625270185684445861745111303655519812611150455506247014172961104776013478085577831336877220048580023143994856647276651164245709534643040035422906303858731915226552689499575879019669915506491581051215975006665278737454358397787020685338639889320667132304436425282263872731652154872775744494039002965320591998754390556631291560168793335881133717279443173434833916127949511000225310506494985077202707931605488747487747939047955505354198678488698602799549834608479571957020166245558905546790122827621619664605409595116192142398925871640713513713011197138239949814250096402030179786329938549677947187250770391298919079406037597109941831254201187496223613530912141572979523382255647366776026336590093889248907955866191916200459042890855174806402522414952550019265433648100067151202972547723040376378908954620558387930763594144491325062161074127840957195562665711210966590445866778493203375388315409993259626444088216896777614665414721041509937392103469616842542948163124453480087998377809094226206279511929551771873288196799931844680078400208610255577017374367957126436707018826949924750430087516827956522257904845242526846992091976166239100035626609149111109556961187914058914033152905231718837728508525161976512284194525926136028488005753700469763217315675482094030254713435977952821979553250405340885392695458123433517749885766101133214075073583554377581333843862468701505501443168424289163087135403555374352248126652291862635014665219549890750024154558573510184153137897644543564681809753631127901136118680469659028435430443273886442009814956298384115550328448438628488916132904793187494703325362032777910841051166680595970459039189669339535328775971679216617331572646907421203662294638337149713676009006577502210333829894909263933379444155067440975329242890304729916088578513539862122408287808563491803320184727983356277384924276070274287883044064078818186411921531136836093527077437571505646467476440204528882200363721204379675637388275123637140901131219205964413127611084329478383135799942492995105553478239862019452049874080772258572784318332375885155515129863010600210801545990349071718761160343436331955545879315450093218026917710022841287319646948979116010088273821244283066347199428998831730577760356144431090880796694324677147646605611658564708945598484069552281127842286687599723880460690972783920872698751497625510169910159201718219116231116058657457235654543292735578054423426420249966998526388839859159188446818221575545323210803175856656988579839773646804047094397850589454610217901459367712119538029826343376678710437609592248871112137347465766623040352940898096920466695574260674874874853022866077032105719521301444408442602798822134661690932630843609047010628367937432911172504702435069046001737341110009107493426902640743280373710698011112486487582981659322657705154281693725372465017272314573251221168646164398987863707584517348020940430626623211453718333829899580075104160547267585485871791388294243571523722618018052826401369760421055191090904240217130682252757704901728347338495041708148070593808180497754512912713977249646750454532566735395891137004724709344379076020072119095519939246483687153517950781351722507338399439537110440372434693636877800680209477847129024509991792073240089163748107302145078271572122783184581779853928045326760498583576668494241921068127811154966383057039752859544803895993837115713356569793167424546207350850502824810804662791477575193611880174803016117533204851067177470191039038477374061409337587716325228668099486803209281692159762919100050897896532165682582040058584563503254461868478386153339260107331863535135881357227080841721584834578194059064001780226279354510409297103027688939771478446553369987652677268974486401869650778471847382749649080354878176875790224697369381244057208610782957464562734872212798789898259700676637168385583423593902047378066601678555229783687388104637047669218085159024333343303017956836795257609336190694105835579437672127279147301916369647652680247105159998428252509005860453475436293203792489412250801734043832661274234344162308358816157854402785066677727844605731210384403372906474218712851198490476382760881643141418398747996489630507707493226595139350565785295844565107918174871802440308934672237365217721846830778705295177794792832643961454787642589007770296894538014178626994128589272257904210083491955163616723654554404036252336748147200518287584584511763765979404358511791385498816669877462267161819398367784101154501023131864997706610630031539065078316962424903734972020954686105190654360143153486817846516509658395388022679502308709209330089371920311380192271357940289355716773564987355326163111275356807159385028049717510925510187772209689989154788210351401008910524942767483063183924423298972201453706526347563407541380205482801669561482079674084968791540614144524280204429115641401631245439782699965324627526913376433346088724628463403319868614633779227951878670335374535349413792368641116999710098621235198732556352069399461850609439685175044448148931991300373945661885726126051219072146887266354110644063282509014897348724207917099850769325217955638988235671983914206832319795205226260773728394386653571008192475201645059992804909056663028515087960727313151810407632659412772583623446301271716021640711371624123637897979878588434245949658573656105928185688044187358223717945305701111097644087126677765225591749685138223885396960647036408191310403290752996735169328389354390705066345065735469107159251966505614446780420342667728301655166454817831073147908409459918688412338611615005489279101752805070288632076592193556394817653670522148290612405746188189792334458601493110543049667858650292403300685850825045894600172305746595204071513453684140543259815087406778795887802533685627032805325754158108156480281969926991673781765220859293414712767334696087273835611667008356263561507512185447237941836062794274422419135948899321735745480280973178470838501044609236197066326806433082693548044608171407528972411036844095301159231245410207810824327287953314799530330969964783170810211388330133862871792964320568477645677854401086987569672430193095902509765439396961636680190938674882759826699125754278632768865532383416121153678023979414237195003414771823673018249117158071597758926733908349517180295586746411569514707661659301523734670992467971341188056411088845836724388267537701433902352546341751683399906168238655555745892036063051044976179547421587391486653898594143945672160241335857219888899714250043265239691891397930369096812818312772335092991817024988931904350512306374210807871057294259016567947364651407619684511525007171728920533162644816580370664287889987531253319626655606029821845581149721324381570117304001369801643966495786175784306200338457124877479199647646213273934216533441033262497836271438662578457335193965889835470875159927047270152405321214104311284517497081253270764338835492099686561887167473014901082745432708762091216282470442674863534820217743720083571849763664697453156509648059844428458015337423251988543001185761893444917657385795034356402937990720804328051677748654615790679961205190430786482049389384675826988651644873002253767036293310434784110342945870522734503124340138063112318406606913043230815608782543156466315989181706470888205616438317048808675897405732305748968461260089504823210210918728862765372334986669161721653154034199211923721770728296420008462814211079930121604093212100925426441543304393391332952412778076027921960644982129495381054685116146335804670461930003620944623625488378251586583492396125087663349330068326911977243985655733838288774636916718722467050755017294069340626319623012559381738983453581917296911993230695411862511082632037938078784544049916395233832627427413344553735588773500969125513136733844055202760552856777182388367104976147564725551174777295761375102441249142156487334924464553537853944040073692675012134306509190409262454781546743105006661364923047492485203365320408028414796982019428304289244354306662057998906544792649970309099741206131022073788841986810828063289393618219780995960957392669610920983465615087172773196978017041745956684992647941706775429730015650342518592004761982272373083360797454283660642284296769963171040968178176535757136599358181438654238278735813123424314235577512187631778819914812271132452174600955846703462849352195256628788915690678938656248240053578957473687674179746774579984631199866625770935283867792159552640435468162126333864234906026107082894240281100346467038557194354433276554505559486346933908921471061042425777281840788716051431892937438622714366143830839083181047738837276902091939999076283568042286660588393062785476821577415598454597005491806074016509874719690489153311840274669138302820696587917332765126245808081074784517501418595573427001592472143154065735397541171643430191600323536840273861395700194415543724841870460954798258743968103478339394316245970163561348305915384218346117758265489483560678341270269660366240584783583430892050781791265548146265836360050679638271221719747084917089521156544916807733031749842153827404653359479937533419351718285797715796580636938280741718926704021593084587938070171980921866692561535711139949261705378877148747295225801164833705936403408195515217151298017177500779127922147393270538307459022472088147973976042141759154944728921520837992531669907799020813523401283205012472963263007268310987322774805539640866133210193357431124233908669154636132333567433148903653411126896316495565391028604869422889355835386001949948758417927808229955994901983025348772031328010167632847472214046329815133118889107798978175443885020651149085573476247722886952186129133339388288569213666820138207593906523558229514029717418545783297355197595622190798338918871067418840880086352663264092097175631302505832350256038690494004078763813620406361234505927307464155837949980159892900414004275887591044554138404173668256319969972819775677481400292627519168416359412934578748961533113331386956837462490129732119128304332039433003735966764535858835008197903945576905730247258985421613916065642541582363207889771677250344818700601882870171560339235079473326738915584475167966557620326781910255082222107719968230164213144963279534987948258312779091753582323889041188238703952703061957493745441255426982729127936495538904525379708108731251341024177394674616193927317597712585575006528725987882952789035831227270220267389152480143360390766820011268107446681344505608883883176304632729730868159767478936682508466011591627078460968621559715766591291115055597729260571482304030858101087628848187259838245924892376018663142706067104951825897372744062294765786959126012414866288766502882884240323317040770457335545708127872713640297490658237459731072396224295669907466828712677922302275707836816756793797769749728506724986011432884900978605743330230120355794811128939176577980038231938990538910613112586925923607613696428350575922140077743413209529287534340656414316402954718070562649902030745760562011992677212830354240086301626986179509206641778525245306406591774406848142110365604143280918221948389165557723124356197632558700072581508010572422732822318257699743216887992361519023043508407695043904755521099809946600584003123127670982506243365199330355156055818596797447977677810277036723225270424956798984870713975404057757347475891980157071274694386400126975190505414397751416272495449711444703147848327872720948039446105642857953793022783770433848980115309785110544637960056285078434786411568904786770361086399347933670215426493347865379270227860126765378513310420655057921975675987915491602029482832114912767249564775628478626995424484378797959428179024441681053394471982340113134424801749233702133120249138878671761097748439937392239741042038510923327502115486641694683982881674412157880207352855486873796752407205618769592738770341443511879124741574363807642798419339151405098913670513890280614143496555842457128886380408956195294351927586491690912976232207647386680602495109146870590809773130147827557079135077034373983945939785067610535042974683558125622158412209845990863459638961263015279418036836038747118472316294285766216176433198993420540196512546599134979926548944522483095472919199703896445959414660042591087274617452835682668454562157473502264182666583149188090762474004270780171532754789133484650487065276305171030618264706004939891590675849327777527422200162213738181164147440067963719289666174517731809054251503791222641384140098672736494308439646092291622976400508085982016786071963444662188769617800961715981837895324163897484774033056962039160434201599544874742044423052634376489083592560157517984231445676668223310962272789018990278323763782391205604439012756865357398426575134337424857932041509687310357507389906425117820966337890316499909191875220284007603962108500407783380498276400061584076128816640835772051551240659705208030045582056028781488276401192627032641975562415940383753411905671952591898862513301259383005182530060179632891553216660739627146148285462936924961853462391147448687491723754576611308129070884445713213782901680283914017180899265565536719286007634281089848291651499664148892204419238264542674699354821783623069540256158661379746982768821116849122732597392614869743317081484596343085322229505640296780593944889895899457498100402126864142624228463868899840639270150696861108889365434510326312670912529100397262030475787182017232363415915131378309091317798128113726425607449748117219371506729209759443888549248974541827481971427673333104863139002320790216036091599604556635763668164909283764186705834406982146321159903620939958044863734253910796867729348081969608244984554236984429369070862660873873149525863637304531082069286756640192167073838918714397028111663650679212896896303874556342824634814523350452761141131187803834673278682321570323463305773648587492221420577756685355674665601929694883068516684289567587426096136686388461305215179544900158826944487949785134264698493297645609506295189182616066472345008902930244082486847167705077998508112705852635545123481534793810142256000884011826671033040313679011164882794017413274785692666918552371232856734473608377010812916924853475209228359111764794838811223021410145547508427313194730446242476720866739008356632653513291235577771648402477846190404613420043155621930674028846035420858453651322900564950275179748891543903336551685314917216512551825689506813471325733751542703975369703934932997784709568579426283367879623197299774564112118256727650363211468938936688538258169846681040288062585269044659315252042630784731717969436880715927528249606913403704789774652398096451962376536974517926302389899003868604189881959584979835699623387933366341037382703327951788667582197514923793971087067819367684015255718546995917541795441943304563874588500542664697136909756144412322557921506283664863134183834881258762335335556730293255832477891659861102638278079550756871693851372200436295936646531667810594229098392661114966196596328094725161233878544521627346436840490822977247979290983349503925494829556869196401878365422671548494266235611145775065811636547944182287810340998094121412945449439553819708445845608388208023560670817921070754114592795343893632313165467975331348396539487519349888757935243065383620714550281394375676163722282042058221838816173202610246540077193493944083969932381357254444910546946394723063392054676803983299311905241483475403825826979370707110988909325389227668247048976767591824038269290933728173825768982718143879182515935609197419970415188308474591565566113429992922778237141060534110440577804016231187927920015695773318878323990263023634271773660867021981478389090224228951096187827545739921191565612542799414394276235036772716960672199387483775701149456871132052811238079283046223316472745031317854294873067548171276793391775191570134538212278655583519995955162347128934760964809459961040519706130968706553596709850894387443866069180299121416706964536033312141265569805365460795256561405123817741808058432625851278287996466310165840787858913353219774337049899204845544123185388345942467531698686629457957079584382862522457170471829866685392202481310028630552124960938498862726576561228908870373905199076500455952511513330335086329132824444543156724660332743088668705655892178558033958649204949560573090024631207415317078317040726926725418320005502850352625714935183363838939322130864589217702422005869193501188556264494606035325796093584309556923176265060662483922843228959709082835776364280944260794458932222253989544737116429715793826234964055221148318666382964463966787856649921691663665388298965375783949866499758576809766146432498251790690700713927918594450873787753546817423609656798272341189082437055077644242033764012459644775266762751431853673150568407450151633716765026752707537273620042615846724020652914937176718032064293128891336149456437150772746110468709306926562042812959591196631729418718456758182774200190801533238076608692070083154508554953738594018432542055372482781728703534863089906205550679595070198319438764289927689829204173518775392354035819023007305314918978101476589100215998022065441238004129421505003641006163351791570659697136224939510730693822902105160634888333550599395550675200629021946620835249493884073899326357401911469768265727331876402529517505706773044137959013112573293121118660502867624734469313230361156542107103802214474236592391566383586278423188803558972901840451130810206219218854515011974771786891086644441750692762394572258880663203188763258554285114686024313497442176175942538754099191798796454612154295015451415240446349082346614439087651636647354745912574651082512350097202867569253457552235454556904739054551655267342575220299095004782722830106368827466740059276216398155853769538276744925965779684772056816091129665818986222705844526389488002371646434216491636598710583274267422043806216309289897972183654266256891807553096687132762211177715840815527627531120556622167856626628383747766375031984313336068237751458513434016458290913102485173942713021597595746875451364650053837980315509635384131165899020948647428114099988592136373779487326804372947504130954242898844179695474803027891299288047511245752506690645063793834609472864506126354145901857165942208580590877982218487698812007927988619574435241684506048282579257100555662900726463856938858421631235579575889764103804327969749422942229869660160239744329474883021070902169196973163937532801196839316998929537469022576594027621926672165381368554159447642681888327934122476807501296467559895027553888610675405975117587747977263585815670043603083211262003589762442712581298956772134160168106114105864813279310200517213840207362767285793083282665954338311870041351404282733551622308096759219222751762530407916947774695251523471495160480135535458126575496979118335655675494181018446425667113572360259110618654527194249815908756086918093703904882165804935350896268324605401068030583294245597311481627572808161070061888524756595067252496875436269796304495965609568632665356920901155374865337606886879094264361396928087334468753408330023888340103397534075471661344340713592254040095002076454729675346631423344463638602678540670850821344777294279647600791669728869557120628783445580405912279651721343872836708854453697007515908898688222684021991785598477463871429916269392791629589307149286321921189192926209727942052817588190570221996915835452507301732641539461838586842207089205402094818791618233259757826304090316172187350386044977051923416469456622141360523855209340371369737383597905540215289050024046310885165496438449533909957215323838191149917584055754813077716395714492670061978576698479915413678546324439609791685454498765026095830459433121814863295536868356760086623074171428472932879298698164634186186765646137193115012733770218990447912531381999011629017347011034069712191872840142367734251996584666384686105013225546981245376998072309285977705904127817644108875515004878674835171596047791462750754189442564983763716927436568175676870150047564931513425092021804835768624766361022193819360212292155571229331077408498465004254417093674754763198875727471671687533003004133468259427052935913989806647829886363362036298425249791492536303657757395345463599054928872658674550246551422483457796500917326795214918682615072260943583817277819493264360317286172790010897492917136048523842499094951096598363016323868766264047656329298589579505488499190333943127008202895958230739556433491599385252741698140805555055623646494332201501380968242999976537263163206540106484714936243630026432659713704183949559679112670387327703733373302174018722716995973470833075372754969596036762188537857654038640319108738208570238190099695390972266326163596889389879988888921916898802673169024823743126772307950121862860060461307782223884715871140652712100931303692373024885430140154386333716897334313280175549063461389465991973072108298031446685186136577938387695402200429381502045984562056360454839746538082626775522360948193151026547818550500640620069098321871686949633922014711197390045230057452766030025688420641237123087474191114452817672991202676465678577042489402855005459281987983064008235984074303170475462285291229045474245196860431331933217478889597329278321202231272919059767923386362309642627767650180676455379927205820372536804518824552433395938071257323721101907780536243234867909607150315317280611724455977549489395866935375746603499243017074902756361315117100548971585061940123989170668389207521863658908526328513653242570856004795236746278160705520694635564812870207045538795539672209333791853044823651046425453856366606691527803187840586373967486463349822626830878109372654496750315055951788187854470531890474529536726663084676324443163259157117111832973992034274835465473151521613117022543773751011536712812362818486126673811110288010718073974169463642288334106494871701197686588244669643992273491979448530792022117608686085539990574400703776817938726745657111690283248305222797937001222330643851244927389551186026728513135482275770403270185876540191909388926711866108339416625044231394249238049905738875124076684872125895313177487412131813767009274819584518007616586493325860339938480685855545325457590307969840254862824532499612710150911716874065770304662888630133425374697685434110673999998730278850962112428137419981587514688948522162717725292180699133267501514168147684291174324321649569632755482817736537360884316902080758577621686958657702016028088904389804980787582967078875424051259087167349319984722950723347071221837838043059337427075121267539041439368404109897746696944299214656041297384185444060287857883718330452149204382848616324588911637894501478002985158655364900123446195591608459299249371126522729495122698983794325067653584781973519427720850749124928497365877219020955436916049891411956923961698012209160473684952628226785050578213241537523949613620945944581961278978035992277784454615996859832713097810194539398004486206903508156383402181193348714158859720113646607851531833025574535651619044219481345747802809996540161739583943419419623130556881090397321236983630192475845010510568377038307175755138938455357601719651980518237244689226521518896619386099020113528177811235102078736053273011439769569904962337091655426421015141116221417751660646324267766840210273190043374570885352810595015485144682751286752836831808063095861202700654460587241247251123618410694422128554690213109600191218420220677631269160761149166774547568740151058366474798305348176191915136198242103925105382940889276477082821995703018129911715148509905697469843698791687680117244346552855806141281215971347215766278047946783319663038800749540225657854541027241003812313570148066341306909693471872612924616738144124327191759284039707013119332220468908655376256112130676761373268741682491913740763602734010399816657767759228340947343315502213177560096692180337589973397554291855088178033110781613492157639548318121604902480616709453172185756332845250001359231153836290372433083127258505450193197256739497776511608288912016168834862252684930834892952065312987406112819551541342748245841556253220165259421268429676878601742940430122195497963163684079643220097313026326254299405588247938220337107588328900853457761952826808645869776705408115435835819234354032872936197052871992799496188786393718227630514753471170524753979466112105273414856106448185071143307401939513997358528477968315905541261115962828179103097203214384423322866816085166373106457317121505554265472404705249578704861522128339419179533347616415137620960682885771854521430577195128884456653814549443382036810664756667228040451569554086830425411066592220673928454169118091538878523456452684351763780869141023872505007593964487398073220816357461123895481008478099130321478147674080360435115507626426707272367445661202582542460537534308877686935085536444048010611812401009764967918918775811947869974276599574509325670497868779456888743595593801237305761584229117941626146066460853347976550684306128544698331355009601514647631918442476674057897174616154780588811459359199088842431262285172031231450294287837136775968482762378714290231532580216257211486478956535891291474865166445557660060537276690488157819771967254420376138490467230559080862501257770713962201656284734299864560293980870047375541576022640601473926765512630537728182759741282193883512427216031915070355972478475853311496567164628750109147208671056777049584978553482691313755907433178670022551054303214921630234255359108662748098324300365939894691285477182438268572844094171434574166060801356551021743805352972241758810376963461854979495579682547524192749022754304517591783487216419046531783578625883087633947205377489869816298916702388169413289551940758909111701916346202224115843043520864453647463800058302593879401292565987903669880862175007341853996436495120510212262475094731517748591629992055795405351338448412641109873314240131166287237009694961298646863636697405734550437899067633454705123766042251104273494312866223761664740198189375485702728602500033505487016144019031476392348959586407593351052804198144661702326228025479044935996146593256263861133861384755195666522843166374447616678877569171664733584595741532703343184042910762882442255812281506512451563941948482348285211127152922401223279479872926312360437026585523683505513411350427039322097439233091628356500803448927952145308764558864666879318777117822926087178089112678066224578162812608900133092437022560766466418035500974895666452834070139921164863106865867756049677596119456571832293976870779520717894234999000283165258262869051114912192297302773210330544429022990815296605744136270462168476379819031307026184266104913584276501733319846954973565047239626402623375375944998246958128362170615415414152362820266003204692464064493198902569112605803125920787103499267439669357651802739176541328732507459224042331709164845322211718832785303692785743640142065350964186765871479685452989457574069380155614956704739577796448877837424669422516066606468384143683630092810926438413305776007707439408854735470181668854132234522332759949531080657558661191688026347203545374075621340571139009903343476205696505485392871710281396155759685258455178958391589398241577653846266859920505897099250450147404860010176168634948677898759704726476186480418157581726429998319737720694084601156295170519470056877249391580500595541468565013416323231763295909499716166247199131526487514882312023188063328526287274100330197821547474736071264563448032204381951333821417900381670292930670606419945618203386663191544308224296770064748957242142543217082426021636451957415770106761182785570055403444628367004590133214893890261528204742137001431597844344968286275600296378270964971566558221503005124494543384651201960933023287050536528203829709149515959438735158928252747747412136915802094254925159170608848226850473773584045510612899296922272943257124776781992118733718861943228156304269606659448883667219346903784563569859723805798246501504310213295122589554347587600672664659074477317409359598617734336477080200106492120794297502940585728450635034927206997669717639650657410872095680467635719620358396530491161394932756724345228882013655560130497329293308871329454634889056870062767850146880830060013857293422785531051516278380628260672149950613649086030115410769442511272807788211171608293790741496800964951616562871739325646943992756730894688757619244169567026643315987910220652503026348846252096855245221361542243401559763936523200968264181064041938221087012586018856763034246811012070841506547099141299392988807054579539397652262439551819579850495042880276199103845475031477401680615230293507599529240242444699902459102347468689783075691545526186124977784938734768174698689722101577739004448874556363657381855130115791531841474093693364818422712817704479721922125059831393780135162600128924270088246442112419832869425095085658248031749643673902150072424486372179767257262661553218668451687331959085209414014409370051275068415455911731203907779473865026033035573250903684229062672998581970334660230152286588526926413982458384885501353643828662063273152349410755220262336869937486990026828851917103628278413080833130306132126719204719071541458330106179331787190756127614422745670003567584597519122953231715771549231855428718987902296097787651990528557317420640378529666887423018469049582552077504039111238953162827151019062815325596685739811607428429974624688096705633400362616172668116010554255603022151710256472886300707075205929292612026771059332179722266932154165592449266209316514013144194700541650978872293679001394160920807657886925065567680095106786814598274551973838663243102064629995507881963528983415328133862340671719185865941274289045619665434499090403907626597979298985708461206656368591865591270334066101075892934992910381992820535663663893891988427672295382996909260733571235768284939230648979303733871436989592407762475935262568194918440230960741859892480877915419753945605729749114082118718679650507029524269786291579019565503167250571995250850269131121783025814986529689494423051474640243714829988147799558284465141656351914923557345935410555063460006941076861090236669751329804575133182518053283388622484076425556062818181226418333832305929142190074730593507378181387067921186288395087656760345617805290032444437309565344013172084616153170455223168509578017337986635586620537673639233647255196357644836238149120010223981140957998072666639225025513004434134044810931477899525758577898926934266218039481581595957499879952385022256047339086949855708457944004808036849080712623280274551806337147754248229341698495351660119096092730815959858405279015540887482571416180545573404385294577864505203720553001162703349811940729364067793322492766550624488270347552896365044127897997805781327040484668970500345337951271954421923291464741359291752826270039625891075714310707061489505848314747068952053909906334062659823473900486472309389157413295182775347511930800696474674134180118395330564913581488445583285967953168591846402926119992697912479293750884977043602928525203085813582067576047530298220313961315719817327410271942073988320071598136528924722246308102463653285783801975946136229734238081827177227648537887458726127979910600507725108968948119205541690601097004643683941489038510199852403844647946733681541161345834938270765830402236110440523335556109654986999895248946553447013856357695187512844852875296884913558263884487749094723504601841995529274591191664173945467983788497000986439787164755731949560776311528129471794815912183702511800845895475208977019945508619539943158472549599661951061597073948709688291416822899280667865149852226430117863544890343335121969599428227956853455964284946489290206682547382814163582689175854966796840205013626715314710792455638471399959167339583856269594300253210861414930159268208628782211783789802844838683226779525141968743774991778564365510511211033781556145450249073798645043702521446105786702713604549193718315977156872888383746304334294058537471673100997680949684631670964803524955994834062509979882962626930802137988113139673729086174316078552919395569726125817232976140658700578846141444317195285719641627734598144574322809349254365072201689095629338682855722001960792576341549577816294083513392913396231982968599424432286689330859380841355502628009892198915918546940297895316325760953468871318679707605833516454176675564318569686643285564798729897660330285180788338962300154115543402612226182361236406466863116617337466703332011743310885987056701995516589798941501406546473535340746115580687388637833508838996217578791666303850070435205770059246183731673343539482403146536710825220641110112274476660026526589039163803182095396115225313805337071639598732763479556665019279203381515994834212274524185205720214521848667559017357907258802380176212634903983997172571932608398240774792198205992205778863440532256510304356284143220712764898958454076319324563943073888134264955740438339012794465846739445333498570062873920683668549838324328915570976890548738851341292684854442478161684449313086421944554196793072166834734347307519904318994379321851480387985108704917374960031842573213532140735602407958503958106366659394527009477513746682279153000273686593814472423799591286302117972931052146395539117239657709466891025765434201649903448126162441275178415138519913072121151994099078394592557606534967961274403591365982796810464647136267983034867036711386934161899084250177377262825432497243275895471024715356669025700946275703839308527356907800193161990155651993539215102736579041390329227798673797054416473031968811000063670447272337719247335900837697649412346312404691732259389870664969208476196305416537646382166001800524056026902975934811194734801353245386377160977915314462012762160026666805582108039670735010740423420564982448724679226394658915770108125700898807217390881291154881205496812547081471487531311301078828804432592779806387541696044708363453821424092465449753513567915989390201834164441066702361803722821378829918009132835413078244108361767030852140560358772897895844854977521146072590906544447458401057389290724229234577488980533055091675601310999062138348952568254587249506411037702261414170954018184579894914447937624609408535352304400597211512649950792183007311147116489493981362044840106350790269205657512762286846061215762705920554835096719347779407409772704253784300147154473591211567497707921267373677158998724509173741574297597532642091932107039898673799276479433708677974259982837681241519722236496663294401911950471956717483121244319096405332187620781871612116032402815899135475787615255211013663857412899201425290571976138652500697802178285456442490198162295450318462763676312785400962425372196565051079618692851433904057262150452147136811344052395428285253722221048993562399954368605572972296245811609121660714747353945237045691809834180016023478984822496114590438844724770215278235402587944571622568925608649656248094414108022511563180390254501182405375878064951779712149277238446854602957471702454993951940252947870156586384349157414512493182281200225574112995042675266254643988191232504656984354252881416502348113063844574158549170116445976221628226091413274471030857478547514778313650975570026524959903550707627069110640233678231270476270915716578767406551273337240034013023302158920523400287052488059376690537454087350798585202920586331099631770427924950606950150313286992761922984344302329070602035046646756503007321378334826152821427869676505372678001089614060342331173452453679384333633022007842376110578106592333581627527459529669429723673376126041264497525412959847339426366660468890008257626256578393721329297420846732108478859944331552583615131452291730825268505879108164843068515571844421378847476721337065189561548917982536319059923833401591791969760610708877035533677430896858128869516633954051883786470215572734619277898812359073240454708953793406870981075905672087401111906248607549578284562879665451169502899152248543956529855670342162146355883156819788846834382028905458378558352319042022805983373809581197127899948330926212930090668531240631268398747114524787764742802494413868871671215938276585582740369593163256864639579189098175892467023247861007750086919748835465821299074484727172535467784297769846080372674848827168059058558597333957849607714791718282645527195637725013498140217732598375010152619472536820754173513392922641408065603975400219119659249424323102713550988877761304459548000836221966365524900583546052632487525697891278147372169267038699499115435900083695511782860050665204745862891138494093913757454381645158083332189516675174506745065011701835697649128985460315248676372677640926055578184659048359878022720291940289001968232193512614864156632573617385003936817360102891155217375699513618167680117239392362602652989674482384344860361030226535783813191014166330918057547952564133618782730170154746361454698581627026045831596894623607667912429224087734333152239972657361057602943579701685364582815165954189081811024331841666529962583942825365166274642677407171307923161716410973096656812191999187388861163716410005578543670154581815464190068044788329211338297620275637336724060372884564280156766815040118370878853729696245913469296210489537551448071390447745208039916152804140209581048922631134162578604378912849861089593377267859208373227491989217905092678813500286768571267349017014783962166604441867902357393054363164272706813473835309454892861317219826472539989839504350629329924470109996564352201328218670063461354236977015986078409678155210476828780716982233233260638995107634331031120662040692547717248172932927499033638546861938193932208662373585135869017026391534221242156032810600917177697900944095364378384835368011920725714780130547669657196688861108876500152569430047981621241033877954702090230770412734015353611077548210781780445384310720684424925617744811060245728939633325114611079693356873847913238213722276992156838014595683470519654514265926403664691956787432480027689349795934931119569388681472309832566553980256247925695468054241898348926846223191052121565263800618109013368284315372988775415335573566026027593249775263046693036634798335112410649416630047529328424094050158526977931521208243553921358586181768369239807831105001006316170553754003146188249524265105021102258790892270285657018705337119459843707440999966563592632916810881888086382948683851882757898489519018804571258270472838218035774078120243127401717735900541887035915887759591989500839912689175751256175959145575513917538507975429581484216152511651200239408298496197602985012321717712744935564618942004074591706955167828837285559644675552110078244780156193524335041111111581062114315726894597664505473959698488642397561135753367233075542989346924249356781219632672239333402627438567237910018668844273771947634350413434282565344454902152937269578022866008002469214610390018638056823281996303502988027528354540406516744438743095185611370156127037692177247134317726127399823440486667034478490094058095335727694435296400560836947150340000710761173863400770107959698059684222806692510397374820571817204636789184645342529049468753497152970219785429127395888526116164567204610206204249981294160717482380825090561938487399358971539864685425366271803003281772843933871361672270201227961767846553215920001498552596646435280892282681195265890399035101306429111872011353966820722016339954567263675181448362451269842133401341298459452899253584351754693982074241272339344447398783937930743622445907167486669973032621993249964657509791893667351290892603785941443755617854394163105451293468192247402305332905367218767389903490329154542161610842225823046394293901560254803752902916605756549940994264406647506466334237670543483266991114321479784447564089699619479498293858143039639586985932271778738073424345571221302195785939310545432321038455715559684793555604849247466621583974513412185213555924184851079274273157321145084456726848310817992054516263944428480865789050476642455304527240044814381775612790627324146050410265232445319605373611090000658784676390512173184454509851194515245611581340374921136284615510587557423802385126465399710446458011067248400102609955809625350171896393050800023384975533969128126765109451783368131141552958538003346692798452568417253478108602746495687826949695973263099215171779236806969846197551767092491456832356800320031794695899357580531119710232378546797645989762557808308124247466313832465418584304355360098420414129409343627009576911613532036430492224986003581675418073513675777181443877655929517840032723599857240344143168407056495855871612610144587098089722195893027687144094936990223692795393904766424073743966356765767765300463355320946276500267250804803423617262010552318945689203042631780682129409952775406910238006664339877974426469041765210169058860319080953491923947946266157645953448652579705247794790453962163551763883607713857930584585787604360086746780491767692975684790458035021555565069972114708813031967597260389282575631121540010093124781624273838073839071640353714654130217647123571073854908378736957960898195436323324285561583203715543144708251771708440139540914800406200187235229548104097911210948569741368319632316353701373383414409983495897521890412025242806464222593267845297161321120138191322134259484374572022176111819753860239837973708590878815095725975647432737713458970189042342355459323039696181978532165623773799587926662936494795256478793729787563434443243073648824538485468781768143122119856460521548368301777033587277399619256632352798028277895461245183286152121002536885385939620031570386743579779276248557750464346915448378987316286544611200994373656298604638166047812374491768347488225094403104198289232071817943643178719994022725288535603809868416710484270663323563144474200297726675305085854101360989719981263558685052085462192626339903061602137585662197423887195140176411569340403551036621042679516954496673124621108080491032100849640137307555490300942208206513514781324220217888824610500898967151073880385482859891833046036242151438485457885983994043743637759945413543167355420098882239732772981533417984588142786887250898261962608012337533910693577197394921966682095945222703634421417221416452594352368111796335061548297050472558643237950345906228877972302435637345849818819485917781933088434786335381882472202554275163548673990455201501963764100222645743516195914215419625465623712807984292777096433005442244495390750101268370621101964265755763830632391357028317160770088945849259892858278236170719267557147930687454162160411439266016427025257626046889952201112834640605279277264302531709645517302009072312247711801556861298926979838130230851247885856932409444558925440998770807335791839791719383800704989398597854430384830085760529495359566325239566914297900125285186368296446783035321165060596921770212298202909255467249079174714439148555402128235146468109120811381596595719704806391496712681972612279335205317736172132650934951901764398066716373112943486306945591456331638592284899223946660309870845851461290973913622360954245713331806237135537914065973753721473120182275624487273331901319720165488673654234190025503041161794907592438365881719085253900105689652822042218365056209295612132463184539891309865891242259335299351671092830322970498838962690383428119426869782885803327486317296376117931882009128130487771369993602850626321735628388799534590125036565337517047143820756269012793023577543949313085902767028130928226206144809572807805560582170166559862637482078278321098979317190505256860443717110935661177699173358892924142007053073560460623182496670967245019931307542624958739059090651855720912744107572022048127421025709672143006477764963020508197826438774527929914393328113107966081259807710251996266290259616882065474367956543502630646896881140142397839627265132004845703326567950129943783720421598995617196771844173436272610614141869425100535915139265386264141748010356274336352845754217563059638751177030679760207087012266395360548157318173601946580021355727205731140715968621857990196618627040859350490617108193301482956739708201911413000737649689258569988251064267935276895878031867629223215210252027400069771336821619415188146697880777016222931844690661665584125666148364126565000259325089939184116607698596789315021175094522966238135358724863176664516609165321769774753780154700171656446678423851487835818432088365956800390391264643127991526697685073957869867473819424858326328515315679651591534490076080498977448635913170442825717916081762911237708373813334230139626852908304413880826123708049168221637796290082084376462416800753214478352745669621416125459112433301330604291059813671210382606966217721625728124146538241438584803993425557555828977600529259231588933491414147943470271737347679896223924081701780009558771544199746286527952893272355812455017583175729419084681870244191364542170938176978534356954428557224809716372142087468978502774563799224046202486296300287766288387448832103858611890780611202943906586368221910420696862736449135281676853901010641616776623952546136620125136509242417505818546719415296390720310283351095941145137081835176369575273402486013566757143250485331518969638726725353243568237400435300194950449270092685093957660736014536204742410809465772042144373599698976229462705178774387797374948017871988989361164628533347599947590422822208643166701441034244045829182763663383411308842506070635180093857410353697320821644899686188323390089941970343606311712954389009054152873375544447466666156611351333997700713357142206144455938857719473689727588626039630298977125022296170822786805754291402850035477078698222628749742633226104301780595600379832066919157932402545905348983800916443259498614054796675178540282325998344911316621419064635294091808439392532402071319060713406269595264081268768223890589216959136840499415264372420024202796654389750173898280226788463192679389458647394670462717385878633714352315464625851806369413112198483337899163755778941806471619992941822217981336428385225254014612411302061178820028081135346641261824570130835208139852338937374722196823986883741299281111061610913608224273205742829973420038607094258841763029222299328168512681195921382274348301839384760049217592168045895459662181219767978155805732653282452721610296703042696439954211236534689111499285403066523895592640417111588767813694505991591324934617531697099610762367131677946914640126655971716187673720616337808227165405194418521585515025970954154076537893384882783540348731183463604847130484698069574253862647430008903629242710385565595811650904995818581929966415988528410041597108649180546725044844749016512705014315335812838671105886193608289734223560750790215028408258879427450069535180031384504438846488066878568695863141777640386340494238254847290562406692044968831656076587522503812425132152562105584729225037138634313742902149732227015663515267227169472272906133999835361832860100963426394489434510956366057676613359829679189488156552369256299044236584595561246677859385298214286319371960233187158985836488018765576915168992732760037055489295856193741862684025133750565522892538125897339625462927645196284979419183767517346986487553176570866574573722171429001306265922723981044836796489782191915225637636397067286309533426414681094141119723583742259515494844538330890921455343762334286614103402686921885605849333470158292968298550062706330610602298348547105744880345682563802623824166673593256663215828656259306542704956445617069194921312840726429239756448613398034490116500240037317066524305114651680432648343889610697758906570025126062452970600276242295172557437697942468640092736590940862419642118899062777737450227694726889144864956689962538759117476022188902221659335199960448537246104708215647065970987170617838717853750250599604097527511279466341274264118537475940795677129613949601184411100737831144739666727090524002517584810835952619486553141494552373734886647537505816880830116888608833654655967725445759217816762915554217790009882922887349610113330770672244942884713166986499338897060010628801555935174061819581020162951253337830482992238620828531479889248637511397161754160841582794776861929218703133865852369389859027574929893312678748336609197356603450605048169732218565237174057069401126371118007616917887359120937093492345362372953235609615873009952452497615859752989261886279561959008513052816024257855517318238364754532536048695928684890596884653918388281374391066276839476561880986242241467600494231998177531754779577675132734393503394427260167742674970815169065099307273602682475515919441604171307834279486954468308549796754078299609597332670331913183325952793322143353506045177638661025905608499295727851150998475366774021560551854090503859684671545840867313967910710083951768989944569550172720372129062502295216288248289411815775459476220182011320670862811999923589373627925026417934046653853816722510531013896462613336603803898087393288487358980647635474918478153311375945607549358543430737165680729083150278977881274773358072315976863791555119655497177684274422589853894307974963596217086149796616419985105734865610993827867959521965455978349284878152489659977964264864867867531462258372771405370824272606553661583483035682336342035209792091045974632290138792014232061548396180665730932640559876928323964566236248882224871774349232684888311797117174866127153441164717722704468994183086461051154083612724091129047061285197728697682475799522706063236493455034510447105188452258990441367488077355280562399705743323011593909824456366464247078038905005581954961068819457449305698711968422459506548330567426890208171516142611238741721147874038101909516606158287607971243734381068629000411955997129052430753488693068113423601031509498392058528642293067542572277753286910399784150494656185814981483633439328344295949715190769545925744067046553981276430017648453083460256505072113996976012197839410406548426601590046545152313957185137028490517806656263390160428242045954465835057341225976124638095224727941151859920659120573665256742986894709298264479187089418600808656201165226485024115951456243394273252497455387485322744201116443071178970028280695831744877457462096972729842896876857954735047727409977480334147933949795581120844949636354630548266743979840446183126981295820181387003329651931210417581691990265431344745835810710510196312114114800646168662029856984543966034864514759022780636103564248919785442361380004809436344546281728759712921574534106513129488198385870978487839410251199125078085338863152039673311714300749904482955054415381145208788451715711950749450451241125901367947453300764459073466579988260747797503988436516860292264130251461584676134807041942855586728327308925637573793822529786733708444695366159937473623877320241503048307042788114014001179799978269287085514558258807168032834689066752095821552055605639585276432718887069576334818259957750954723395784114121550163956521027327772193284439385013810160070178225097616855024557569279957387952477449393714001447612305440087802327831475618232483388966665944777357595417137140440730206160652709467084531852550134555543494723614451582865545153052122021423770779736101487824497870928387122711855978616347436977203862490181113033422923087140107737416006484020022188786427583390642809326850516956573204139206048224915209777752205499817417075455933557051765439381885967231155810565316806010772427932599197965745041488953945308474513484861445301006938868038818898383764922068786590904096681604117246173164140850423814118264419751032791372623763621258231104467576753097868285392113320417019538691531665535857243123206333119065473944823004977542469218207265222778561043408823321255018143867409750575390094587518747748194940313737918019230039247939385353118622151956845463667336183295775735975190323729940816619642183842463993752410154290363802010234914895062426367670631385431319718802486363376675983932322138765297188774722231334152650981532737931696465922823063384071487980729187002100226709884098572163400211800179422201308473672666700836629560879468736771541518183786511441733187142240298419809230275413837210175790518990623077149760706009145277850245186679446827984309853186869698452822496161918499671781823903726496932557048498155079021038972070840122553332607803150484513520922483809430251913628888507709985381044337570451608779656557097212321341480686154459239826226934044224479810659218006192355523667447988201939817589429145503956283361882765321698369208009989224331275174637689527372398491138115959130553242882417046640902180958989855734557723725551261606313998292168243823894929674049928061488665967313719433392308782808428132679896670684533027484707863317909733484387463468379394009952538057126912183193406383933966211571846217301918078626884451201500800663975297045795927902939492512950465058403831983281607868239780321779243000920441390280854707077841180959553490933491581798929178448250531943464051728293725455422458600113512778087335120472917085666277363484832690101563341266178765372414658038473540490307206957425388850751191685303015284742864411439808296574182322849160996696952783272313290685394561684791514214852814105465601725432487494027705673189007278231159656680480003667840267834477771799617343757585333179624591969943316365631022122284611226290477359605155806191193784959103873717278453941779334602991848377103921976086941652982869115868183425406367044998550903318923327671924665530868062234596238565996664674293294669138790135470375677570661679139236350272590928917241728655522932023721731966078801485546786130919681672772576506133761282921776477250287778291444108743513110670871806715904886373638048804862903168582092389322854409006573035651040568788334995130416745690819248569345269527846670901261212084079920417769436606488324179235427807320962322288771640908773741650505517391595416040797644676535454942621269534395994859923301783696817120028176062089260731430592461858938216550257156259515383523972412433559991511343582606858492544202312619117412780087724680852584048468486763926406086860669587629385692476378594175023918497096268341155050075074130984239130110013676450388789776830609153966048327427108618759653709801382812596688173645546614732348221748508404546044714273099221120505260203847955443198208371129748555149547186586258756945600905899403866741303362459435870505113757380093984559867108534631170623609964807383982968464775825036196317560903269141439671794239690726474901210399658398094853387443623871050909100010375942561029035509028554380766439613507300978134487331930758354854506330589428465035876281849115965612285584810407494227420031080215546421593226233001391968949082139672833184570532860204330722878412167623235652683910493651318448173300663375645408357121665401007781137450394396076766240912201347008979862762527603280921734060023325833227392556108098844638054755080145082837021504994160128482751836006878626245990285477900803579132518864648796145208101420269760052787082733865522045628514913262662052999903674155576745118066980379005984942523690702242485179523146664266125927773865361366280219422202207878594405004032979248760535523164217877569342066005236649646184664411760117243829687723741693135966143398847122743979110824276839549304106205889847721578675939440598088376686983034924984167790718065339216123738980834512608408368088182054304022684811925767102689516176191466355678260196454255270768430418440620079355735573315679338512170092309929523435363133920760568442102006218632908541751117110363331184799532116100720369846996230543599852581072648276729990404140167322024625055225057305013029412731322814913754004457506143340299330158597134811057188979050170066385702493603596373932140374201663975421544729038844175781258972232872305694134194961676778594039595634931707978243197934809676283951999271159687431234775440542412093539782727180185614079194661442224402070107350994675931930128928427008996146790669006769755183678500318248291398289941895129544217154624435155376222923053265223987422285283360810170958009880491119212382127125595666208091842777186305226065982461907105738700352352634703047290211853725709947675807728918719625018487143896551138443184677752799150069828331264478091664871067926939374409452354334025335353162849752393470125325642034983862305213131403358697689195421862357604075023035981083263964130268765412424845929879667024580465692448698659021586804733906081156871864955676127241181130716772067676685556610330339475232978917395992546534769566289538028498947572041910654774328907582310191584087061133513325402482117557987399395411831308937321825572095170033951213184023585354521511843363909270683209252477070577200473075525840398457550444318422354776062355539566159881499567094482854418156944320834152803912948191984058841243178990486565887975379280123840673434389055113521410926316697976697609397026695131325379501118531252994615180849936388782122634420594909900011638103748753926148772774316304342567227501804144467641613547783556966505849002302898197331527197859436866503791080856167582458893604207791814987555714221075759635060196958624023000167248864399430317005729343153560720313963919576337742487213414728859953936645757577033580481896927531880661163930919851286545937258256787081176366074002304472451017036995765689388091270810862620546921059525215471649904226164921515500260443473910965995886738631474162322045116205181205627733245803092459204652571873029745340608675755098043421515088016312125282718804751113544663658234989525623085511764321830493253502058376805994828535407635465573357927808720588932972475544783911702736013334455829606129147315654881839548125351563379121336298700921172043234478568290632002472666240740111361544722421331807416878050868071001552693665714632999639575966452749348059015971632058496423815131884856966089242337474759538499347072019733926598944699175238410480055874855005295455498607820199737801009127111230241754423725591405868572107541792692908352019715794520553649073802239953310247343691940288991556027327503262405668621801468157762275387664714194247712726938818672339450860296161164911355436879570447166380920827829303273222427665069557848648615543491455411126455070174482289660677342446128917609710285666512193824732981131080355580214002623675381614091168687215978757080546418669418442587348119866990712598437849155238478368730067973644315017709517066883609551839044521122374362203744449710984178066792596979903921262965178505679666493357806445951711241911026920915324272446791179751147789305188897955484801462936444925608928617019290392129587298056083420882458613642961471156574624221224794767635039466419075292565033542916793702005778842136940133905891419203439860058202618026548291849680741193461346097556096450581568141988482862142353538682366274889373664393097086336317804327850501221833903042628067292890672531094276947518283789315226401217099270233612259173457319875212675818473280623402885363288378618547417671225792905974100329926987549194644245990488346831170864383386409406279650771250479282800134074362276068702349681703328898983843883182009244007068450833719384028753832886806715305185137590122524614532224789733241531432621946247134921098889445173274937290891290711914132750396595130448698935745125284070069606988928382369230250376643350750503820796305006605995140665047920987046294113596482475115128282455900320580897199926300384888385019142766531168578519510859528094024483469956113353501182331434564622741437366292445825438307763521950134276127628076674683782993163338270201243275471719975778753625398391727513961447673368575674004566250265821644792334042151687214741854396893706828485209273820000138903643888951069274918605416280717965853822486178304499236295688803481247976797960719922164742364715870215158060820918907377750564122772392270578745069534670060086251168133775721480431715606807392557634367059060353880957336885578470038936007649328333032267429154653783193835264679176668270742435534786565467464314662639475805475229720389863227830795529366006500163638048838756231923274991499109172942542812174306673198410937891903512464380336794918621430922050962795244177999171189856894082880646824292235160240940564827710888100237895962657760707384561652637289899913405379986618156543563351135905430184533771108548102684270542421170528340226746280249299264873135913073747163741145003684568679730845122584365901596848143635408052329506513053253793174831324462357828993023172042857745155934716892706322905103122786922748714824981031018866832448506021743090736957047790238405155721740937458599959414318111841593930624808901533444596053710589030549107171288998803462392288479171672262243285936272165144240185135886700582112046787518889967632689881966878155004368082046591263607859103379741283796239521520998316788029537259460520854926161670127611610880650147008646559343395242693591768284001749652908689331156921467721522013161688183308453488829322186446773681922427056166252023664187054840505794726117820986343566285739429667380331822580827592544422235354877902629065415067229283613938667825286432661317102756626397272373261661426687000803881045989557401831857716458379072067054421101524264355956521267206609301956803776246090505817670508436625431949487141736301268109773442598651392100285030638294215022111363391794954639084253199540054328987609831140599497131695665884607231482453955688737773624053638821504870452725815829724537017488774013049042543798491959569257593925506471578479730010029332999605292346083312650564711354971712344011039730188105951547318325495857731655356268272662901214837601501291066079221790268009359762904822258759400865594023886525749977339058817576011505898694493510950395268228068696824218650535106480336577691363939518444767883185449887807006580567911804705695807471621228949278143912412852531097968380393222347321575361744704823820132488363538940216412847662907864507039586112616922960825767783938145946176659354770472505053582696814771599515926068580693200865904416438065738637653407664867771324289363269125740812678190521396485416760562462481960330158589456889944419689530866496748991080713482930084458566254835958565531363873906344823982207767131580102756773643901325053996860870755515529655106541177788611541252597559589201707664753564688560860520878102407272792731022486720024036435846467061911172928434713280025264435392004980915183759165853219338900232014157653813112704506846471818372135969559125536997584443518686173331134862466749194485159935133200214321620199616003646183592583158726829972972868042274259615514470519101546913469759073834569389563915965912242109178979213735380638828955497698206161447233764002481948912693500789002883599002090393211055764556099786831543830428317616200883147810797706162478560660742356287610518984101318886433910445520898076983880961949589887017443462182002603504799765823989469326117504789639809935807470195326445200521441463948395936330676751437004419433484686327860192624562435683561469665113114383650897095828193701089794879036618868122507015363277461379729298159289747171490369038399835908871984814126170271564979458978632171389390091777981606915434725500256515855652424781562662635928478063709005754441210537514858907702394253301097714357836314016135152484849136688072355277748524694421077355142741426721035694532155458561261823054486016167705304362204367195869641215857792225172283012663868577214729168572738549755323098675714295532659201781341065340740995591654296361799094320982517246010538664164258629176469980680671508405298249206497742500186006444941317216327147394151241968123846154009942052616483554689579016584307063228246866110026343737745590529031412986690311700342498064558654380479177217035963228632273952128240239669739395136212621081270128191892253653583965646011148995604273526885495521910489727757972039502884179539799984601773739540554586463875640714889577347500216219500699051579297182311955505182613450296564589656033419209765859939826492857207013057377878817540747877510294418600605722361097212716156364450499969199198569571528361721736480254153045583503802572506851286917353479071589170810853179882520033607717400114138634202180124061066350859640655651351883722878627216946045282227137570213161789434266072536427029293075094981809346933611212491784355601121483620013608294604765932276305392672752931142889768196145105333814195400839819308521532079997948390598860850805025311567580393232297717015080797877721577530647645805776789284466671925525451883837246470157871251160007392428690183080309417426836006565668492166095918489628996740183765351895000009278104320941494458161600007097159442421002040782188279522142962915002970043799198572329963224033019005221118948079283157023610451834990393850106836054373579493505786925308579258213958268534628059404064659482644427371167648420379176532011251814943278350786700018153667208533015699774847676779328753496957034228667550837535168169724905234999440586389415599612347900279841765454648620603892424567328131453673980601471450956086419393506965603632749135483308426052138536116078272024259214185907659374101717172647861338764963251446386346702968651202871371664525865241830859898943329651548773607066213351214936848292584708849290265608622078610526186149572852955974737281155857712109456718148058346140403225912301000765673594902641724501776224905315333946178474943459124997683997483389899880196567035046145118031855888959884906307049089557959802091788879299357434938833001873022806584420718119021273614629875766142030320933401186934266872079561676636210148954213821113237228888759373882183356540285420250881576502611046393474629370889650104911169482670727675792141180474111734798841301900766901843972166209281176979448304988141659144437567063513637667344000052188308490837976942501779397349213989116222549621748776630919942352188465584619467484956176246066051625920901529586406616109377702753718341515106485820953424710577761478609988142651356474280490487564333382064349861401680098067833532035353723640782855938923239426512197254443846711528326922995870848515399735918748414087815299782623925995168196916643565465822514302180051209734178059824181439702615271145632054272797235446519410536896969059440981445695572112337944368441865582612946440726800491814811127230876414424202891653059706545204253072879586748941363058751872903788197960891428739255907065083242609226805266912100819839157531852361989020045722313012999129875155165162218279643278678290592508906970553933327101803451090235661497729215683762961957278224727194928773722723786145069759700541908090085371966369497225340727606738388247447765857498520652974490846674443265996549151969137081091056488656366455195267162130788191677297644597299165546094967080873530877476226702355484575411540231566306476780814449757595948492257980514313362157495976008415642707236781852404301664846746702791270046906732831173057562269818894048786347298272634184854779361624555749399705271003374914892665096342579834309022780054273659911589538230826290588749428662863371075244438782562537646869403234748440645087098475151490459229584832264037248298163077586763627859179576362298609425707242950170619786387438774976262266593972975176032989160354026324298734929752199468756460911599812633775678340973241351389535104753190957749176379801669575144921695475760481804154053129848267443232524563439572442334195211578075365529300832627301768722968211597848369185116445444408983271946206950115549853905910863127712753548398292363907595199946891781575736888128644863897835826523677411050986143038996330543521879893252756586024530629756290558500018664928608443219298800912974236653587447000041249640443223970486222106982520874998728309054756888017935700717348751227128922909059508236971746081745821085353992214523902355036636429727925244801529921054597857052011938531642788811996422595450353952171938813684961294796906937049649212872953091684009510171131537872778109971451080544177749895206477716278122944113247993785070577312103579476344291077930298250240254457984296972551760316959353319973809976064228265777461741368954434220180351099274008937849204541124525331692485631553659296278078271821230149910119475989089248693532068576471267547741040884716000837680436681930088571572734539403544611172378026940437826969466996472279032455782770951179647057869865132938658630380529384464834698213974950009666019591356151354299018459576366988757690605103962384621870866772546565474260708568067546856264051333985028087109478361321193115723770766940238539105954908238618130591955113597459906030445116697607595858644843242744891105941823058777980521076423040163804918122635233028843247839050336570573444275152406265062189309380966540416353669235010077705596772134837506165915579295838763517748313840168676119992156181027087134575422123906796199303833180944829422840539189127770273786855915312858482265192178269110147714928679682409656110251577885034319075817629554283555380795041604450374316476562383717099795536311708559598956733837502991005760438399127642176434179059469392236810663883221887128494308636204106956771260979265476030168374031950631463759738459286710366591634902666661972486715809888922466082879577534751372725920269742230752769847353359818248016753269486705690617682463815009203290537902668173485263359803920839116649373154722821459500951264736975416827228176772094434447417639277370617362003386024201789197993426963177415815373048540391327268825317582215681451155460162562578741313181027687476259674167520256858015641352383039024345322543212112252071905827201148586750952515190048777809341116604400936234600870337370777210463422216042423957000086350761249804807331137792020657238001548483057501932804676465647167951772967691699330358823717189210828186944105428367813296944666218108994225837811174635447514688500389818850383940427090518499249351865198115155195813666476674130651327198114132768911052954293208912139922895034200934023852255984352573933958375035720681014272605736241139561063741685193989064824621648544469810209966543044450220701011695326760144817302018951316746109430724389969674737662548140027230676636759504031845896021100776437114131826026437565234879212018505003901813059147511705420005002164559966534179020946541994981165803295447373944983688605240141298273446990165812906503723778451214600828351686876351293002595812766873126293112169074100887517946579811482292040979155102574962469628022761360098441703498694725718982972131252846083305177185074995092021547604568937100831101882450047877265029590748480383098025512251753826524999329855226194684054920817460235286170653546257967720963517540668165185080993604478676225043189746367502022155722803954150815035167041034963482601192391345222381009029570270314483797719643628427738434843287584755350023347659244742835580163559199784655060743719410010363002932499591098513972300717757907948734391515206301449438674447903487816594981877470113829690226552250652850814534156992793250073444773476926297255867418193438834442109234949018468536658598340437340596728933167081875856995649561619401076326493345027364281410094156022835334435629946286521181562151064631058573029904762771136008060539643283355079440192102535955932969176350857414675670858200072864712324200511858973478193826167631015903888050053384551055329432351796018634555994877858335648962824870202090377133245396347818113367834685195439691285769524388784966301966832428803203441935655775022801375053871295004708094160589961885619248281858102788710600014798760666714709909722695580762313493036463165920010231555354719874218474779801957253247479504692527067315963607015197894423571345816032493679528319223633962202892973406068273745088150308144036380302224769273001623886069733313066950470801535702055827952556248701196939769636920011214332309613450774111858700904064564706055402526726216701636002630612586666996385310969007066529568235889426346444751903983352334251901781526986994622553703476763831841126009142552920182958086964291895664322919101162111397521645921342946957645289206448719235649356260357256238673659353835585090936132583273715384512421565744250430079758534674425523761123101906213358355978843024551875853695356530094192360986327705002960557002740417330276875520786394484406494661891813585824869155109045303212871493404129213124693715042130659641988893206643666117676116632609745176747960095266957712494043290909395096653959781238410029683718904040118525174468521128600368297202063963166385428171776827633951035244157931094612930071301244119914034405663822671395724257926076343873351599304511666296491067647654613732397746362056368858833001423265611345543701237951571140659430357477503211374681084694034786493339527633489397192343471688893936692663587514468773516260035549774756135118983310024259933300779806396091237983658467318585504946796635698116007216995795992231952459128369076285544039182253524657326039197535263322518769796918572809301375692123427708761507517531672690708708568485730335957905641090205216239700886997917112611591866728337697632115802666417050508255604329966131247924434362255789732495375096661918251307426016534465648711983975510616666414184444017532807994730826088568773818994322915442970830335882195058302932335661904603387202787266615481846338513319951445640599019979547464665208995154869677836930432017631995386568676321915305953980923973512831885795723091690010141325684269835099027058493961816805066464591754164484405752566059697054228762625763701805048510311204796239439868931127430336949573065306834906860439998163969182600275228078963677033183145208092748649033956074625807092333505650644617625456520619111222168903464883918843384783198035534863471393162374120880603337939749282788611860448486177101286815901067648956343563586113594589728746497531331508473663327599101620149383585747910385932200096540650076160085026385251684493850289728824351123469671412784914763370969394793141404688062776755155127096828533246003072591619638352752127624637321056377399350327486909493550630610200030922616365882835653826204939318984280408844432353849174688378483413537213186321576301815656880958406676535178566613558663967750041910408247761564539165220487664591534541171388655659618809212603157530547524109867369684156535415406463528441515319995093096658369364650302463971359577683569172966750506982886405635768155144925794005014469777091975004876358439422077141870111782839138871162457725733131474738312776226630260537785245138791688733873295516434094607868386332071707961570625984641697452144835939418371899177560028295850103901572038970313389252558840494060722831824304131891758187375151276445188873809713716563411833172529442177958956626022055524225398114910226199869721813748566232545167291960402478849127773521202777101665785319572726480121003636460962812119969853134029907624422576690263651276038141564580781049376300318955090586379525664400851220707435717995159087806076358496349306516623365920156496093068819312701860614944306390882033834186662297342944745965283912003484293947549428701613145567503106027831961212216250739415046641191191698483689942593098735586342465416270975313959633349298205131293141362798547815950101770023157539247230189371160926064894064586097919669685371284139897403810838908355565308342696312028415555010729262604196889490260374974682242221901773521668968526524574367509188435016575079226830978115414310756980345550913504781128278855022193240002617105527129234267190323947429964301274523944381312023025172406137391217117596992747150963975551186558601394858265400989468945430817791917264956168396508235145819519651916584786730424156288873068458496241966413596905632996233839851006779989135563997025589300040638869227916188743159270263294905992154140968222643861895938092950009649334021001529790839475987574010230899519439953154477514043087664604677750349612079294491353052731766844132508695708105242541513379592071424739735995450980952103185288696180167654159647330235496146255900391318231429714163958737332692346175784717929845197667215156089001325212635868276831113802860533861618733721998786115710768747379436131997525047731805435810652454870297716276447984236775587223832677672170255620890633144583179076796575103465572611052011913224673866179442714111289587612769875706333429880222142164414253233646000770508283109211654327774765942353869363136068078793038613642993278173193034617342259992287396513167603229322540115254819540740828305795668319790777694993815121947647296587591158711738812029154900038062225214334672276978943369293443282617467069123817390486699673385387697595869108434840156156476171911607027320759232275953635908825926100813694157112005521386022134541545780995839887400476003144801993778249408391015289816672067295122116625780027977562072327736803733663258260361296754080438174286546335749495788164842499488287178879292162849530125115647687645089383684065001181136425400505655645536055167644669338876385825285408479040271187674086124952155838597181054916789063746731372379104236595721729058312466739288306427512704191067121819505245115174123149234864096348689451995744528923874230714432647507017854793549289295494839999422565496241349445985296946694981023520083930708721640992956375748365283894423843267613131726212432503225470845931509021193837118932585481289191654320054139494699352160877679170639898233512227852020465120209734792116404936419925766073859673323980490564372427384472295551815307388845322355483921618815411222319705189541590788549169122889481382849559514139648848450403508999979359718706014718746062571240644159883477911987968825331776144733013294524459306673789576025806033572953125965896169815006880733954602729613676220333533455293083370520684846208971527214443268080095727511443654286353844939852490862998323666321735644050226551304854681872931520391399258253782807377805363085796517729728893413992919914150863407565506564219843994937352578280919885751538987009580364639333858036502081565795805419693591437042569726802603648883499358855041152437546370626757943485651308284933093622353212116409946120649404654627298278782281031193762947121789152734965580302804233009451070623011613699438799373773604701332442532169935299706792019158372382993058519444320255780729397805610741854031354077551147587222987824001337758772079129972056628727427066082541494819892457535677082706285686863875492920115059544166511467344929599924206790323445140479500304364066600402483496703585491896308880362495883340093941108664820719935580582748176832452670085488340987834050268702811427564120862158528803037082131433075422248331517798358261912418570433447046501469829452989367823667547302703079031937252360680722016786448901921107039353652906655380430141474202401913686186455416204927952926354002836280782822003611544329030065376295751808904151062428901889309164394559599167181903173902203984846906152176471467042354708771075627433790173098300520770991991578853200691751255784227199962660188106878973175377106675072096732912821076370314118759318660017923013524940629183532938086775447727259774400715942612282578718301972056919782574220797950283281761089668135382967528243247805278962565517765754521148393873444178666213720648811325540576777424981699883207359951582617218976268251689935754799398191901837793942395678029335417565762193922390496048554299898104884902265323629403086411714479495582815199996351082983121824765482288225978104975683993396463432335577374747742301838721242695135544119639218271945043669233793740808565661269152327657977503851428927097355519845051486701950283394657299451197683367776028155445329025280311204941901147416635418744515757739794495788544847715138397653522238460211602596100130534330657736761740758899182314217037115048177193792543351613158335311870419454120395405195152778647630534466583087593632860772952468434087885581769880322886146906938823125787375823546185324216330862229099775460358891829342793110876131853105289915983236748306450935383184398578169126150748062719814776201111534981714517716170779137869338672103226266637795883509083005896625391750539956609535161621961426846580748429354479703193679146919145962836533535559994147169440761792151234231455407461759075105533019986589929438838086255938038742709153868996337368767505668731270238718347389125415059982552874897802203613436386852410088185426029466674581583704630587329969284445031199966676706218633898787876361921829552767189163510887761670184669972049056004265162905275361986274896899925141831544735553782170463128303227964115249006403747782528809753671935951568234839315360042254486045683606134320353359411605544190387884099198005680237864426937418669063872472070116204753382058241687264834862037733521985439418961260271167099595162760293639626595623234717833080213696607118379832437121981683112785549809577813366290771229984929512290395336712560478562496237255794270042751032781259450090945634407258638000910463499739488365656869604761005432126323288519787705536167252137100967718093710158453671098302592966937327063389057715871462494363464677437874030088901730338484320843397876835272746614377005999348162423524902955613054992540927583277667605551695440483358123583021887274682112066324106405057416660931040712633819651727146278785676120847422789552603929641546018821291629295226322678294856005993612439112528316029823589158876488700105708368800927907418967047362805491839254487270717762481709218871047277438134817334388981990763120768449099810375367051504890988043885483979780292371907734753399412294678475817488996005507788045044583398916955419805526761832217660648504786419190772927348829964863310015058003756655603569798948022134391236363736809655722243997627343006168543463162038573031641188128305819099816645600316487358576160118250893697245270913583787851213494233719907541091966787046664980757379448345689362159367089024929571261503126169759263909416585194455459070379961225639652659285733760584509305700306792311650457600419199204238707664921248231692456278027519607214146234558700401355784932553365710317166410578011175605615282473674385436621900068814548788586363007429433253326268604605617730704805794727947232273475712127333725976338071771883775936923122285455303209494207394374381246639729289152717906860578601207149562810109857574766603164789296441720530915817370391681323260855330860922727322986470488991406467970151368314451103284406252159073269099953405420766406430674855803721235750194284201073211391005303217920952518133841370530552900902569117138959147593132378546367985666719653937565764952729285193793277953132901338098227902177536835441268936329172496827949353205482051204185711702975351646519195963351572607314419876194979533795142577521084999128952983941816990123643009269007814035420000506740015981798488882392410207797968419746390156692978259034928404028125403942930409911730666828818085000889106401993057449966408328950356659343119079689175392650884773775462764673921515305617612899285224329130333764115348532228065942914975964292792958166929581261178490680225788033465666012962712734915898601537376508431800869937099723516382286389898741829389026729135727393821506179373559880688389158509151105410060901450576842491280144058657973460215215689660141006330064650728427608242949023843414024106131676440210492847822855646404167252187724428822590530478438649937871423908759085749585958414887232368895459257554206994310452007542609422926298226094118710976876144814512793707467710675720847186203146075796464767340287379099061409206959315735378186445403971069364764434618097869288698413163161679991084884805679357608122301922700515092562299634395844670938866903203155139281659641231466266353793001719132215789266438946854278280266312788634789233818764261423329056358708490738878283803429142909455175385873458340516497528849348307662671737170851515554711432946322272816454007402346764834090898674916813544079445864724500817146763938968134441857830571962167301856068309153010944899029454951216035707681747952718245216763904037837814029518276665285608532360570785160268205724468970418114604945865547286088528079264475626724080134776320038232938237273458046096131772374882021269408273750157453128066419095387798612094595259287916524193631217988339875282691270184813420202879837709318576250754675102723846659590062879603094010814488553631412878869139689605644243922433351104961096299223242280437305577943078385204684481666208156538349495379508267561070213050460925863796356753910849328905135310025071404545637607284114553250771318194206021774107057354349301512739386777863628432490205642722810728585601093771466873673794255603417207010115018909956197721097919694605606173699469758591801316998453162699414506358617116523967491924412250346602093668144238066170392196506236137084208975879495408418587239964685917284927416643960750422641750600030936677726983351152594878963165459391437451754255652769711431830570176412662996751595795953500631701438841680620180965882798410396566536192121119739122751209940793779524283634413793903267564972374575762167785258277108223974279306482586986284960796121539098741002733984259429970014546363099383758670936340879051834142429200032594772758776573734628923980028951303651280369739215233479858412459728964051780389725594590300316947532519534766234409448920901986248933310350420252416193468343307219600273827958370853710126370812392656625093456314297883420290473948962082281613200221932907116224120276244305834993761713439788072836183050325653005675511226141059426023598048428654277162119058740612739473054144469979586746941382919771640026097104311911045859509697557303582743702863770567787205672081087511174845501781108248365123627480546081889186685853367164517055477244105473101605525429663314999716903655617039688475222428830293338623364295338078713751728961948472063637379012171849893319494773219220121925361349317057606011235233766565997386446437207096675891874047835506293042540992352832534519403082502602267428699336154226227409061067270887060529724446365063411876822080538425269802774258207805815704652763180774260981398460906057622438755837253258910826235708061660957119667906872324465624099307194118326377844193834437767644230300241305817118489483469077033699750050690269579519321065438067811742788504820842948590226820236257615119903243729238295283368546683992833548249108185112490303391709927386122393632221775306460027614080367857987709252685584918700107770118802196291253383231258825775795655059206144801494833087205808492763448928940025838430540835928949811455366823402751787986105476897988794559723799287895938332680219456625906447246643592266993911035295370820585121908238801676118420855019432283936089790239164499395547246090095232351216720619872600149000649434887992695710164240047142945074815113570849372994182634088390749526150165753931485135137145416868572822188830945411935650197845349499498789015493585143144183081017624106045165005341549033118438906396633524013951435922113492427271590954379520804152007775000289585747577164329668366102241145392979726383320786619180364022975847012377068000659856126746244123411727436978134630767406594042119063582058379540133860826761031768997612889118757725679021020801251236964176520072784039040377855389351533593150327988881292017445005344756394482906113526144246048228547231979507788435761709523350516460674876039950633694950347980165037697565252521988560878611390038730575834042111679859471920425357162874386761229886930606545092083116898031315020276223493934853381520753902461793455044350223907949664302468299018833848132850931400690392255914754612730495321936464097572937703143374306121433375934748324624456415361654434882783600202398744449049463120814030171737829317944083700272598367112432249968613032242183358219908528066626285653833921026325986252935257323387272898164195407305138168995065010045674487235339732957169181523829482188087352607005486471713239492682411404311523168086303989201674511710066953381189892943896890788267469407071864203495562476210834605389415388362335307345548186103018047468155996331611478762845552574072016421420443356789274313123349059185419676794593591886874044624768457024734619408327825821645884017771317451099170575652165529906025603006997197993158760676953085064579548280624860904108399568826317396117207716854204873550334830703744149141564298805532162063531016834817750052453834580372833044525219502956508609490039461872309785515310737052108843165359852406426302146492265171380361315034506997747615994461880240235954029666867798095570988864300828451548875513497594446538300985909551465072497485521151439939566295439133224790987901237468622335173147899165521595292620887281803982863794219942064813173939228239088338971242853675694293916955866358702056332571004094518134876358036718496978036697413814491690826590241265152880480171174545071176334555495680601404388745393406137662162439093201647148096636013165989651907620412804953515392071157207095499086019120576115988611382282312438512359122088069860839692607713168216606923394820722686596263821112359367372241534776514420790338806723991579277037572020897783615880620198803127795350067226860827072529861163330863491053611666424338575933956464131622281519890361620056044173342112963038785694333800484340616229356368149538426449758496831307158977113310793430645119933060616352529474692499895127357113689630772840077520761992809811250726976807720140532301692209652280284664076710200261805950863407650992509946829868352361001094143084761902157413022711294715800687607074612926737820071257172318802260195124898398947377292183212739524588890471185857585799221892882096124960999181122031052821717056902905288672567213739043258156959388690324458742273339276873770372888762980193382973706463981153780327327986648713254422484075204130488828185323585696634277584178587958904477196832414300276047394866123204156131794305713847002036970488629800769962315315448267217043891562850854525561487665555126989469363852583291510675938227310147120827734284751032061387045771976972958445616933050488078681249911736865073197580762843078933668149398024548990966242721368846256668096713929224792104874541636498057659136029461710919939701506181484795059065498275591205374004561180193949174502055443877810595620383179007085331649832533254009934235283828788956580558506199104557018196458547285838831346310778515849558357776688775235796486328864375037091249658475278230043519881190087392158790272619417428979173835844735471525118306967466760570288532409755754509035530546192118229340083635422007071439684256849735439864822238405209057826284988342211057938824694659774462773109893780570734585516515838603687752560193202489910816032044955153709423172175202841887702425889006033295609203453139258650621476213058355899760050319613481609858540040155333816121839600280493610995747439568032236426390893285723646687136448674862701515937148799609227123920191676704336828878053179054655863784877518082657956720462556400347777560902299087958412395395437753653417867665189363218783256999609751823627835291968026450905542625090377130195162064698400837008459420299754329106066795130500676653891624091780798817691680979705194391616489938270658459501937375347012061326259129891489282063858902572570897334291397422445124375611090222291920396908166499919647987760521095359407073531426306757647411537847560735147567543794700430930331443020437942150930294487187925524017958566684521361079350746000125154636716325353847559097912143539588431670994704245333820895994230715630057075314473723623455235075073306274180094404603412218603788883208999371570913906957167036041276054609556406786852326406002522018275281083544832294001993677051774414438996503797576147848552755770197953099051557451705690015450207329406913667493686834405479598133562939920459022251911373955065120053262103391837068517730425840831879527017038413889337828136095876400729074401235289772266839761598796123971332186868063866312883261813033100143038602411698052995231825206713610954841307639540609584510580861062817328736760960906889957488644574751304234094081390343476270307618132944474373367016528137725138093272836290160367297000803841534119959095149706451222774763362824666869646665116028840335039357558929566683024095884862933406638024788266667975310994352577829882208353367066161436773670075314839411236009077214009718767137654297502268254292717385019671958834684052416335654018315257820560957329530444411829524319210366589087196735577459364668863537901318927469134762288261674179906510810099702655855377359102599789422385567466011596767018787696096927251725612479735454933317189225801245119097733927456790249554347772789859561378469005660500866910385563434718243122967071376216988151546196818516857562639475547599668462747222219900581335015420307023630952394803113415082298213580214614207385185043875051829083774068822641717269897652155943371893992581097569061923491375010659054052959093422353100917020592088460653892682106658841421845112694805298102033437085228230222795498519168176194237986995369151002496676083448958167918763999204663531606893959222489084094062969525485207082048635205816688360354739476868302421810755876967781112985266790288406384060136028648158760699781364078245177153479367986996341711726877156557774626913884628641142778723633920679286649559563185953026390594181926657688701654078954933807969938953879738950183416081450165172684393532428418562214904232776284843015205580420397645508955817885659888273173555336876343566881858245707167210736102529913785112105293456129877984918929619491988372046783324349917253944284297824108804902721008017318188457239291598197941677168215115285176514572994042561797365813865778458789674325280525277887170821029454868709955288996349315067775646192544682011563063039452811391634210895542486699168249328278687265372474781349633780544447043025165351080339860461255608464328546126823823523803940950744401000264383069473407177046256012840400418892279411860108504210174212386818939541624373198552756196281237574178199558394034508958409377207754046695361775037890495662363799758356209026016261428549653658052489122059090558099824996375143945262685372917599344717514487859161132430113347194690045395508694776789347484263990359612032489572706107277957892128147093570813909957288735385484877248258254388743774874449011156021483219917645069603511638956641293078053669387466894850163127550253903988479143929851355788012350183059320072915465328099347027177414976127473937924217955847542327631677381686892793522170031326234747005685819650211619110951336685801748074122534365336601732886440944669831732718711603098121989694997322578099652943960384916310176168452432651385008437281246839214729054246745264447265422115681533975596048654044084346673674296909455506155194638828912354404257032545392813539193345950363357811542893208068743112232597054656598578903436896391916885167032974639874497679555267155176292933775439111067727975931402435041011348328768372045507093423574991970079872347354482671043031347766644772858085105546576483528782147426598114993644854948534482995835060964515714129078127300052619316353739731778088250818237691908487358205510960928828291277764328279490648267088928093870468127648707494638781398457061526468123973826781283404216647346114763165328463768915207412414862933152418641292006475070631390605347285735927116042812645300864374600896924406336395479769800212678197755451689037486138525682649611019024948795736156555302168432463529234223377960788014517895184747576141165831396852748239249767339786206416977967864923505990838226130740335892909649021629551676338394811284021157900887491377859070480940203371449747126462589447581803089938034173851861603338141214661378441688931773633277457168229940109109374325448909853382491568427641404935170416932096873165878614382909810910614793246069753124066431298818535147139176690540691996278341100103374894232601303506694879990180163786214292854998326379583125940783789386304882267308896245942988969607983821258076890658706187032383996450136761131224938963947816195484419120324023304902981746556926685516888715063846495156209066882751816084270486092912616895818763861188772118406331643939901154442970408228444620974890903936523319757858169427871400926985580861172477130808244223953638485105991776584487218606441767756901142578109168584437704956495460204942200134126887809716491918981275462282951161591282964237149338394035024015824942337682106655641023942789867438688907574160287414190623017116111601303968413290357844352673088206375917275227441319597033248423388152131720584273281900624138957956744768931921458911526976517530274939139899346352371775560318959686598503349479302453557876908569795062831896673036450624169050161489674983135126798700092775856430818317684256422005426569728640659575625078916906687472729379696920954946606330454045558289010969816947641584816139033774732267646319245374047981688127776277543319800370473294327370187511894640634375383216171241279036712365199532057003576897837066370882799485015855036382539462413215918703378974176127804892818129613413878193274723944610661052244627201887554353693541878268512422946015334260307915943447200565837038252022029866073915657008121652799768658433469977201059243525300282286512698228400117379315108201404603577573513401507454149208829987278720390081903607679255817870145389916901072704445463836719124538758589590097065148365203088809888700994045089119132148668537816898438775268880907899127946509792446111961989916157211400258967760548135756452341128966479595525736070955025561020784962667440078757009706546965178448776997575130203601630489526761539245671148483491280112747194858527259288781944765548363868073288035375260962935201373632438212714167890770966603814837971781564567879601981901550876345467417424863594925954582671529607908349512194412658336373750417432899557419179242602213252776714873214712816686095056218474885146648667751405895559117008140250336558166484141154191600095294704081447773362714963445233282158037326055199200865275687097844794738967231516150772342506976778515741927770249119727282392738906164662234805821918645734022121764619880183856442084611005615113712847330983228461311030987231946926784988894062271462099609356626002359241064768059422793571705945934915326300388755898060089367060526169957394161647564350439062234029611968551336629867307005622696683936541872932659154087895205851002376172702682629504287733793479825155120350432264891747773460002081729817696775165156591093411424829007165104030412965603749238521898511186278344401555902180090360614690491638142347643416332378625347002820020300626824153489285147003780042081832408679182743033496735326454393753153895494107458650675656425798192985785822144321139931010510411665924395216288095433097194536100715971769249624717410035966085250391406205116470003683570790781451134862904007724407561285749090112348911625954656752441646388016366178461869453230538001584642633237380395695825660244816348735031431348021558181226042910223632909184748113578287116042618121305777402979569762763434971152355310508197079865085126048430051919410328655202287995622411126309852680278906480255829327342640345461460875725624827928091746700686122242530843833669217220490381810811458844522846939956483241742428899014020326665100224407992232874136703872157625918123383309819227314688568010672422360956164221962526980957751698010932548455862911570857949904889045102182251606662847639251465492542619339659948556680718245099775003903799563594493312987884041501134493469731228582014792787651579041617087203092533980536738293978315913311326140553322403074473826988229578901609361188460998279065482134078034717810970988442245581603638874051926055422949182264662760730196666422584773919916838465795752240428099624055550783659538554714570287218929939331450673193227768439205202716529423203828517726112626201126158762800348582140970733225533731142241587786526400595293858789714741028150188656117595724922934266134563742470991091027574331964509640406280070289367158606232110329003083046982918632168033431924040493122638496317461378527094930436224951154717576416706886815816597351236661522006110810455454824119816866311546358083049848640953114933943976435884102975520042439173484084914197822159373283032994992236667004835304311337126687050343484717110258059263733667834804770261892971227537121636572080784277853935257923696100986520611641911289369026514523748386569338380392114509625258073553526226911865393076909655507375631984876705827297951284816189123607442355194317750746373041798028656121559132766885873275184692274552295929045559575190476500591096486347630249772201786138644357070777982643143044893926162610404747685172660771438194756539256033612145478694023603912774577722174049667643182576537295557169165039001707286141857750932309504686624297580319811308083417319397773302301129053803403745644840073883675028080761378448688858749602412805715305218576038123015925223622856440651008681790762424784814939558158147815445666456910880332292092904791118684163790474837864594820144936902776134387276548330380445208943279945902291825472694955436416536357279423160958893464108990430168924654637760384263953904270113412508477000344655098237158000252645772973763757361241057646400146020855968504309711247297513052577458081368427755674661803376403241416338048780284483351331433809738278100884395000182251224874235081147964250898779609844047163910923977708635329017337717604892000914134625496013818079775372822996364858520605660658253463771316207450620394760160686141955869977680010290759853014029627709133992110885945801419391942925219218577764987680440455469838371397379469036952872234017523179437629338744092554334364542929662531899437188583195254572141662859479526287196148154957376607945019400899090908994884707818845984404552529981818013365460432806383268845138705530462283705520631577306141367289355974785809749058638647140030152963027159437292784209387473643020633152387742029476736217117859481506298442324323717740541343248345086966217669049760700094543833165139874416259596292675655882491129966981269614875893586628494745885146865517783697943353062339797354106544298533897488694525935926237365522708906336849752284536802903271246005249318613744781958906040615417270895826343823920206232729354063319731042965011766129065605085724477055070039257774494997738426531971908384522276896437216608601975177726477645003706860830825146655768893598738224193707079338497638477651195772874845763060446307596962670148818884882775569828852484051359590581498475739487918199437702776553906025626953019863040508417790238644270486014395339349757920829000297305731838989683227530966087619305099834083832810250921062824647648511859165232122756551560976041694757678725518014215722579751662018436280046803054766533830909220068655393411699798348248646249331589580215642900840238336672901684305018854395701727335905266246477574590413671104848192626206232213322253170552027972865293159181220782239752883324280987456824186856694445001181108894359545029116934696822861314170403147170928661225461438486565972586185667898295161745386994822107242495356557818538126178775618604501328082673897859449897787199118049777561572471078461096482044581227834411853692131527535195103470679665331537874487804741287791994563636835921346099274194997592857007991955360491902383839046272595330655417829318125130562365398012211950164992730059588826641638796775661252145171919196303635573521909032867450783226521732310031866929811903036147423830994843875806439861275301743107765821386373209733297480531734546358082861118286840302511077275545397380425715840096717447367364910813889644791885396865844050672525954496656597097654663845490125496128765855085524523016781769334446537205523993256730067798941921794150528679448395670173418590375687228017768590869010495323809030763997774155101549188969806387374427173775660355309949842689162908267868885970954488159836749927074044171728769757700010923791914979269662577161756212288285097721076863506308824495619780545815146773215936585149217513540979887787526197978266951636000462695277023410140512110877689646109196484947945564203335152571019623119039089694550376392179810154270408613218141895289021680919488751812950698585193750450516311000608497868114213208544177010944406915249480075630480762053394762417448887289421513236386429265208399852205328649705665551097134115951319842648364723159794547446636702611111489096644687466282610179961872910033813792169945194276710439396849045014509585291209975029521936775461362607386647398298846585241150505543117935050057947087906972131232173494360461565725481738652974328508311313507712774484278670954778078622807030554767614265725465196847591613946856764101902673196651577454962334686882768873616832751852324436005949402917952671791200820528205010093377852147573541990196619277043517325564054625439646005489025203604248396495548345377858442893002640946395143736999753944645143810728506248238228580695033546026575847691595699952522582855546064122407704082199512425925686561865074445876551478787785071048565641819240032249889679412094493149417221145297938668651030532193868272113076007813172608361441630975021995811574011578574632045686446162805995401773166384269219355668384128497145311233333013974594617844627003546359993249249364434411895888323522352730491092908358461383914526561756383646864467699433267264833557399161665727338700736161671048504157913788093155003314395227106139348143398517053010846070397788244188319751032947301031733560341378525661880791037116661781266642426767668130285388529212230627389094949597464377918692179843286959322160071590424267582609880187908752655510655847010575316185718211973506892640859700927140719297078480653536066243153682042322535720681140304494448703518847814307516614303855509356067684605528501714377341516642819135887889025891424550625694013495144603471209327236663617734701880555961126079625837828038073692266043110607605785979504762468320825864726598516512125740625520603161278486867337921540246614826034765409876934605430612630760127270875577692658700902247836803511161635584975263987072671341733536872618111365735918021242331191404262765851015133399751826865946619135522712665555825202562297624749472236210934288721812983165167986337898823237726348381062481247831247551162914810047278863153670663468969289694032055139741762246837177372497373906234662142845100037907120639625193441886366638420939299484062085419700295280729212858054678070965130804587643397841398905473118762618258232337827317333552919293203179805672251693673031898112350783914303214398724336204678928661382081428962597840015438904290441018620728516362315652093635220074009990881363354978454678328339138474566844347099579062740063002411411146794688962244424065317084107496895049444294223733859310013189417686925921127712014378865866742036800438319148613760015808905391524716534442654701973731608019902754330667335674268252548470695976094631828632462849436969975009331555887614680474538456854952677284106349669401436503843758759620364730568481315015195739785287513104393213761893586473433499665700832585925714012726723629423661040776540086541372010781050127929328768029756322805342139384935868803682056721449455891855087853870104943349140764755229373055486552750945628222047082853109668569453542005504428168151314444459928691283539328493791266139572074987243962669515463782476021128755286488567085071949059853739148086961476294915751543133837973451562329961867475593241964575466248093776280648937317575053972402778216814637421781078075670733853035363554950448536949601314780734931254196180079714354330216978147869461721020390018049058744409230325110499198918100656390715409380188222325002303016794060173921223596072968669052985176473112801222149601307950287977330772449204866615283921963217620085497823124826086895259785865703177913189373776688858836192683621677572500230832594097475788973747121538362257896531087942936698586918315997990076892239623090427403996730347860516386427987102239535768152431825880460119750549426159564460316634548425313089537597732252520611952441654517305239432073539347599460200351518120584235105291165270276298937767704042204818117056135158874438207402806384185964536177191328990703052637929726781712832614298114502552992105302854288160484329113656634484346560815927378881329608935677892823314513536027042403311204847945589143581762402350754428558311947423175694073608526480716748801272319180259840577072978541255594426727450814097561777599684048985483726003126068953204500786739084906887074615858494179144076707924066696021493709022702052002992394430104135594794339309022068918176504050532625948677839848932123761772873661266953697842107067639370908554490153650337860729445627244102801547932843115013483173979424784440547402301233671493720438558758801062288141892883629803992555848317092462162393504683520655736135358498653911627784211645549367282168596910297100476269457250718279205952063211140613373640187792212554289009113705106621522830666741805310229713120767554529657767379026443749022320163589069922272360875767740375237124544402645041051730934977984025744982911527277774285449175703390794104377731339672312179772900761042471591604490074375139047219286283833966880484021757228889378000308930365221990872780355691733786263687040257341189391489347340831395502619341354993987294503353960558923436063377794782649673942289605730315206963406874823641348253350025554042637780546062761527026095255170544649956449257499564102605912703315497559035160653454593818362666955131868113187570987196665638564887157703550727578999420495425515461790027462801877014329203819079204114503580639925525171120646029966833862373718721243938162939022888472500328958293946959057050131419673126621948032773429804881492592985403893389798950458700722330283867625466978781401981978538042894715533375809265419500718299991665451705392271629565391292821891645829810060849042091383293307323565000429385226705623612507441735017728803450527689396383184406093775396698991999014357091372592620635084782444706998165398320993385186711189686160687031476934126210902733044393398884082529660478139177468594770942919776799614459598052149092105875764895420553800564228968934512579142158473272589278691493313022225234267957350017252360588411280753905331436653699430260012250761373024560848003427092939640603826821302293097783316479120278952302137986454571947064829400138990626528992150219909090537109328607276564786957697178472558155836562565373604213868264956163145685003100090995220395288242511191621407488290550945453600988580760453987212868008534597524889366490636964357192080037827556093155973452153485902328865092117095796966157737302039074707794763226297041316517516602934958173093736115028631322139349426603573627473588501705763315061211086129572532264587619713794873609196905916328178406626381608452481582561553089260989962503159697666062881301949977190275637307478440439968309044964120237480063246081870209127362239605547102645179167301044084085144791259803688773592946097254212807089183707908218316456672273079592466521734819938497831894710396159238590254911116470875991816831101343671690488698206628866313070617044324662494320914699519635054621421728323745021484419454341251235543777694839977981421972021006237355598863741815128003240056452573358606888764323358383841056048988931543590253900630859641126143253705485352887009529490248043244512422875759817853206691648640414979302210835346866616301817019983420944755017478585870580072835775841820472530879228175976359597041815586167763810021009761754206056206143456992123912494736186949838654302287358395292230915886132088683785620545903312301449577342607360082026880767353165059566142376742180188208627179103401491667406972976481600404706530093143687584141747417933314084362973430430466212748356799349596852554330434534912691524839142984068775885083334918947749736803809598590340087584052871531577904002349361679177067243189133170299627207868563472558775366269991870788902729382710909583840653181453053150534400152541164510280642661399792568118151846392410560584188786640462624600771212256738700794265163594480080850826087814330004720662380494665401954599845039393072916923056926350108061939969111986004407413018446557319214127712717265116878608498954812726437860872784964238108473307024603371332428872472218828556710086344320631373423117577949022278798728594468601135149165285507441606182598509131260459414328943659822377037685271697337293844041629577693300466556406181320632922303805853191831214928208277253305688233292742718072268433958596278916801363410423300611170772580622981053049827810675360879050346929011071003092300098318250169203183854695006759346362857139519965427869757235689476010485404681337933794044414252177130656340758566278007523948035938476670599359010966585094703046885523178679527546599386173392660613737533059148047522005389902510486532821925114301047261575871917841042368262554180958470856505908643653724027718473866672904090748254561857258503312241557781489069544743832780653658444525706621759618271716554787481844892787256862983289450098411454242581521221249818662445284370156794064556170233439295188772715786912878219695894767632096129881541594570856794124899101644606706189115103781691580355864927438849187213100410742927961547242819510749637639381570325464964954388247802458198374752423288881115616396148499812316640812344868443656770433708104791670740522512132545134634204794792592128458486818201781428171203264417599601617680697779456131550146515391076768322373234761967700338667025735883289163362336069165139268335462451682969160812683966032284072155973084910936002384530722623661102109583485718672836396074241120786215426265904472823860826333163036198081188239806461623567738424116296019410490179606274574994332662285699620609775825360990844709065567219422150426818532125847019358268294967243968774359637958712481928962212868684602537184569402425249069328587432537760233511611927836496841032700976553862627123906574862437177337862420177651546720542786301755159828382040020651523133268758585148149807041709259930673698671628246986683875886347634153348503739836755509437499059795995837074037228444753842871280028407201914540324781697479772380759846506690972776639889343586667444457289448913053938098254159231690409563609497566051733236975557009007333317729342675741689231584357782788740381191298164807932508257016183713631686938404547175524352045458592080072237606323938456053013170784748100126847747102824462906763327421996139652184501845294522115452355956545435035127410115128213031865972726139702249536659298762625432782530794184991182601964075720409130472247088875388833604069584839872042796799543075395265888836189900711096753820568079096632026610325247933615331161209567460577780148733445872356819861470086800003797521371124500892870633729108043903043386376015100752394482329701015364340361041041268317369643556052350904399896897729307927388709513645786413477513866227025751742503591088428770824180902680220518141938057892642102697703778286196398370691231235788689994728987853547679426762571831556783826528856783275872119571371780828323321312153211556746764025416357434220827646094297632407989651399366799010777688619029250099472929347363171661571419406097908893833148996432746681939970866711830060408965972609636986284094297571887800977084173237609818863252529101386284216219402848452124699146601961699992834261975770696109607576032957723131160044624110911647753458776572780111632022333407745561063354462400723751921053688709960598264446905994980949749005665927989573079632957903426847989375679199334266842797487017885147497885766865008937839381924064541946761896232186005282631877443762316595692992325416954654647610053694106259554023849388634595623897905160167659249990856559427964379685228282780403868675647053077928565971616783975532985266055410017458566668232072626312978629057916292780056994800559749468272312751673083564919488653294274397539297414346099511295062873799586495253539698928645855895839614022305904024255467847339955028409752065418429347535733158338672784839893281348531797938967940102702024774118672557430127059731898334755689391524735271405683081474232690603763156431126731811220967917675101948997940666522405072623520113312221421674327356020513858816805636252915566861147199878204971969312622051438929419713845056851007999795273074940228669846886812672100397118270643580646620059182554008169242102665159187076521262297053989352438134494362326555162158208941642497935791188512437988970476442364524303130664085051771975212062063629142484391106069161967955422571521425592241412744358243177038858713675538220231811383306468940481608218674502032722202046967843226841371026667906813472541526950886479225214145889275272633211132093557906623176726931844602745803845626604676756945493881889625889114225050173665698856502701013202975627103436617121648704109247518347035927654510146833810033616638063209739746854715165673963804381217830300583350267003119103981008787688282127598437979535588947706068889409255308285145649779567077571961124538497021334332451584552975052930843946845928482240764269291064176542214528410605392374292878390763765702231425520517516733808042915614612270289624888494646483896336274935627588484522415186815466579824262580183808264602341856608241077737798018072453588050650741876040479035949188541364067826845271715893632387464601156485823988713739095038531611195589516995759530850161287445728277364518009434481728099770577852876987695295625968680499150873400186634564821063914689709004866034748607246831618332289567828845728598740797150353679464231674684462933608382945124294711210529465040207023330787930999359031779102086792923750514612676224981461393541345165393015494096997957754391629357163007816796405761997541098316848368074070441343643699541334084347953467714167070458559498860799245952046364519104669801405729845435008927340700862133661842404148042512687750806989046010086500997921709214195974460490748449201366561466274370493588082454307413584569038925344514945137965366612068027300405779061158199195663092278686602684456613390643024682726362289533264082624467391131523243253561922521300334403614384360782058266052187555031474021614202168378953552814152070752176501396890373117689692371502463801546855758758930599354162422100081859407172370601744976836096273693325996076094620583948080533967946734750070941555644564079747609633518319672530548737930824395720165442005074956952339383506086335340588913191331070225084996541721449907463650488880991568155736648258977654899138467226847690674289455022617128551090343368611188058301247295715366344410993910472934234767903233066733080240751328458594733356124052555594266147264029635365155828561727749545358131087237792140320780288871912627112074114507014294085133761844093580460471928595806707517643000172900456047979960591424213692039338507994863903723321444386300173157545139499948595462532371735112129805906458558869141563677191793825558759171528191934648729073791193865744688348613460516922416447915360005400547394922511048452719294421369803831976294904975056950627039714400790817728600640713911917073322150115794565560869136674426700976042761854197804778078200715495370561704814730289421976893004664009820681476794079085062678197162006683860597717038336855474500300166105020995733516254186811899934121943175773046574065574300870729705763760133440991278946250987579262901186959217164374753143355923809962359815706290050739059336714893083023675504209367866991700089772149050466528989376133047469786890758422610201262246027347724069589139842129265614963498968035427254804836239645724813366083743789266686042730548786311024187488158463330064039298027840217967803919209515286409922906624357714027557825375283556477663117679531272448193508702131786002593662933806683620861087504672772450111507579833225236046753598678222828796692834787853825230367315769738395471565567395758476745041255242840999239293492523944268072950574866548281743955750209214700222331682297460653247331023494464560067657716387769921275023649930209288066106527060452799616141606829349043598036472429593040889687223291835673654851041897727256716324692418349407983476071918170432218670804653309491466478629223935278503480740274472566918444984805961075811241281970573026298438362559608596144492017086767592666613408804690198338957725307716174174225542269033905731398007260544647676120409273480823416287667532390591473895316988163919018932671678690632393818803415061263679161753006318984860129331507400126980847656315402259118071227423207662858123586482520327102497614999967357013428065046944315049077907758248161404753852547247248803074719292261808100513901102384166871385618095399087623910716919110264725974703958536348537682543459842890988396498171647854172644662770636375573233909857351966532022385432915149216360422918077039894437466029975880197155419690752035595108317059859094386079292384240291677555285109984603588621955673455296209659557628503661125636679928073221516588637980731663966687926464246318081896256839484818422625396194700238932086714749961380537222601486312456715282648818158453123315486242466864217638696443403563137198977165199550118682398612276258053101020646998840243601949446932125265583080179976618614107226309632722374945021041218796053029625193792542372071052644382934195752470518106125631413636917088535672806296967848203611559032778054744718596477085652327593021587255397131927512485786771267145997807655583366569574174095411640357200914008864167029861423806744760404943192521417596367879230101452858986274541710603219912362426193399289414430568878388799147420649443375756170345167524524679913671559790107028146704500876154047951811910503350730277741918623454658899471210615015340318667450975858777701745312223104573548015245320408390649858294599269663499753993018941744472229834432367076220541831133011054576908210645227229976074139055450983607343585407244705772420197191654098086164584552448892108100646525419023679817835313296749751707964705704167079498150810252615389127264321590332736352025023589091143328055435465256415088678108913951715901059910150492712189249737055232898762335344291823907416404828413546755772905128032758161813574080594927488980091494709099818142602333231393560090556222199551926058080652497111619687776873794074071361440587723748414508307973112212944939373794020227931996695523606466588688189752893339373859257926193316065312295407695719450968988533153007600885612072603326230321471816054699282427033567335242726913261923363622218287815537224054110221682353318703942352032956915632055440727233586556253767105585971968888829222879584460071409674718011064902775829903693388218384605711335831726438167971936160273862373808337362323608813017349059418528516289852079101568898386546295676438108320151011533186487454131415513438142466580801324330192817411971682784324248422886233910985562790977894961824133719816193120197695142368044096076982543157137904258303372013598318278146896921296529561100772590969807881708693619654310116639726785678895430920784390266818375100462466882376298255953922846947132166831914715148583278842033993104248059882101950347781359155406165230127680642426479259540319042994879035823277122099478700583788063089789014557462141622688888602569068006796499519589331863137394083123015613752006821718064976335193938909671904165568295195008027817390354989102212428170036698470455754328434707189195752320978509435103460534228747189196519975387806985434399968811488720766508882293918388566819597329860789607128902867296227859128410667753894068859249501412947698298219546619410466211171927087166393359909935053341251370129216479874435376826548004409388093183145178292884975179291056167182230144525184719548505948698033636544927030959972630496672281117253415234498910091048829862927159996360768288538333439238418088145963070363425244218898998932856121097530374534312499938343617190062751305779770020200178151626016664977018051330990203645422623879503032285377018240782549029847784639985070784698913164902930843566969205334184553793923902356135864863192467961459087213054625630343789022790549126860586876348599927642666116247297898670816455515186650676457769527870972258051883402048810266797135714530182106438547441490120311987050813312507717488231552166673892123937274652050622047318864963359655785792968402080966176631779683219639238528564908431826846612735609622682416220738307434827247508630904613581616485849213550345526906041557457220671814206849665058260110149316666559251433816433594314777810573947750884312366919834957115876127969697500637273243430316110988735664920982009513860440200502581956274531444907351089241064658885175144823996148570688714999452479184526780267007866931403700190009303266818457609545457148374003288506448021407537368293098999351310492234687630222682828768858391412466003201845420249890134343169763197604743200186457574163288185599230449218919044647146599809853262295986627500450409953910190067246488430370334351016352337740108515065676748633481686264727087000264921516666691811145629953877616174972247977880300881619700826072307937943695722073824692335644397186251508613355286375563773753515092315564785952124964716377134588061594124112778587957625377261063362504504973854974544889209295152468393983729149635281295598268336808675350103806339689956832351676540426954019956712062017848539465665655517821058650976994783846459962017172014062432673035962179653470730482302029588976626248731600922858222194530841737104539207982527572429006391187171545061642573028418183006148593286906604581779581335226756366698602279883493789890408432444148491149062491342129395587036946638121636736945223981104727373396048641955438010964627326761316314300296320011803373116113238368670777261870170831895240180589950354387056218336574190748497735323061719222095011964118862918176058145570892070246247266723201077580261010263361302109153226830478008813783804626669225899678495449266917252568395128670077528328338972455252917127374568509857620372210823269669178666349395884246636948002999351137352167738448431375193709609095810689143153462195830746625762621734611524392215687760151722875269991512609405351040068279442570868756038755187827959698497377740020172706528726585376802120473100460392659078481802851340176267243835805781576007829674081692460991893419719921243013134524696570477029473324820985006420741348285385939675398905845414064555138253757391035412527791839158674495949771971446358134610511403211198326338992442506902618853296394971096406810759138217440604032423080254202452666147862429549191261937773846731263054780733855032135893002513443389309183117052910324219099001679211117215741632393162116441461370652131678453262503126761191194303479069788765402705402749298470413436117267111427634255847747583661109125244246721350091154750290566357968348562415638341626764750819291507168350111347018688202270799278609624218004208352325205119493495890266019089136917986678987914911242073688235053544974640800177109086402436511735479423563897109578921335302336973404680652989663693191455769560900796904513629463389961768257258016407434217743058942639975997077586732729781134494322907159102510932890213810549196122482802391342041356293077210609881183263913376400944890937025324525867085930702448493868343642411664744334947348622162607884457996571029421296372173736470219178221993351594952125593807947520095265435929425563732458301860689686486663775016757995174213197493999845661931880427837804265001870108462307679668575440781041985310543475983304580620616215541955034508103123550242850817656079986873298379592106740516229519932404103774030179266666133982439973460935376666448243174372821391205895749742062244492005940392765107458896870446671967514483171769244025712024922832279122648769082220419698550570947246554978079623728975359276929634130696070199655971564240754710010486902961190773298054179132829789861226098014527442289346491907680976794106590838785702668803357111868730334475255682696225874382901917376682452218555747089408209523615263910314347931918029565218247580553114917947351944869539023385377512442727694604925267995102786450442391573781416730775451913373546741668714982741036753334006126416148231619533085438016644107096355383256060631092969169824101111956220580714521145789623770893898092070455081103689333976174097093012026814938734810416891923483947387196339240058478087856781782719731470594187004647064220081775499074846569849284362628778036529082641472373032204652781785689462386950403638046981833945700058324483934112764327681204904758759711200990541711504025065692322500481761685721051853497892598559441008662854114979563222385751705763818455671939709438244567133638966940780962778533643561751643079557024254280631600959080851995022677576290812057789208558032622988437078250860141287320567405628343948069833839600533863941203412909281550131389298431552569556933090172264415375532256003546176041933626649357628486122322688090418756898017155030244071888560318419640959074568966990629219681734575412405060575388033165472902299361586321637303646694217268340565903830909951244177093942623378455131834847337715744242507852409111220658828588850492924001363111771361757441085291519384139175902846097160489196954054683738873915348130981885232489504299823390001989350673068282369086804011625702251690796254843673950178057597494727006268892377118404694977334127766072302466843839428597002147132359954384940104796601239373134231137012217707084732481528222411722681508361760308829658260350774359942228466379052084840085775141485325934076937539705841156564619168635581004113424878494439339355107699940035158429585825228387646318950791618053449630235952577448840870862419892927107734633557448232560843511348986268781016894324692049071645119661283255640901106009172221376077896593428692892308672705385424326384282025158331941627994118835956677968250183483415972100222864001692400913515986572408411303366712398668174826834697548732987196421777425566731818889153896411646877356829413672315000295216325152831301066392386199288597669771063873316899547804757702654485460512898891292644518859945995619531065323521460499845410491657082972905825007641310122045201015881699010429526720162385677463975611699897836649238381391152278857812768101368225073376863946610168348116546961885815097698763705510426369488954264339307617457351036467180388732583482227563527410924073513763429572430881531657466443871230408214007679890179420960653195172714888649143400713373576844428690407978164028541839830618685190196649043721496528321986675888852039500746859510903257241553686983270264320138200082474424961194954225840762570582327039251037761147299386406882044502320085852180577426493031337354389263088517996697328259913723953240440264734494978203344369328263767583616463855088732513042593635597067081383461579062033635863821189858099952919331043468410548072535113387928319631877645848643903278904539333352370675142711837367482604661781589682184064304828149112594994421963871115165272442454639231790094779134247755732628149679717587155827292658213784020936742905812143284757214832627109031758220513620562568944550737150872522556617396015861571705554586052123977128712418296312810321877109718201018581824432362436418501320490061216176204717105774660320681227475964609177300479679543933895729108770367061276855509750892051260082910977208090677470397784592825019614625051497296403022126372256963008563769434110189812630017684325617224381446226314949969955429051998031040833835186523057085841102301261481996820670517009339611615977196663833074866570298847687095277690743445079284790484472566361912173261318295513852019665659934304204039132015639116746605807126273263784980114949758898786695034741854043270518622458292825544346334509605637479471407562907066919139051634725192206965255033756011996569521833595899172306924449108443358750064550540005770354259746351344526110155986374874983660344312191182971532046196116728357090745773007649915261481477860724736414805686613853926139808303341710888375900928276819951285893950696880585728643694043032883799720583075648254938925190282506220423737280442243934139090654848877493844359665085099889538517939979681685787983666312255461673109985610206377586360065812842412004993831394328660524965235276639517118856131171075162951919511033772799832639309577022882256706435005137185680519978410961926416967241107349531882034467780400495079788835813189674373104462815881472986341868781130983427356659983187591531731928580732007595238835767318792950328637414677794893230285822473044935548691443583331324387654337124139508731354857759854653657034589200166736129320881633831533119345734014608950000824215793515973994938263589104335807908067655775627921793728756042114569685934739544051319999512347495469643669280926911149912275872913984802132363816285659484121385732737129016429883668294636507697437554488945361567035587509386352224188592013465717660141872530013328974701679585255825851368706985479495046909766904485654463066850219482005287735955201412350344659650036008263635248796722301425068890570719557513935374153340599792674690528494767842363977835771821321235466576749931385564564799706733804809453584338868395598416736892323039162141393656654710802567227039770273361877434834546742917301553019678207287780199119558910452611234629524946464051886480239042537777548550181712763903047119925221590956458958313930317919318249092600195807000198809723601488664322032778845987777934866358672833907092449087927070038705832387251386795476156972576288984918734022027338811121084297476576550352211165626602252735544673679737480917972086106382401059251919438713642084793037700058547362417883737518887769784747718350200965420192736168918891468383121442144099500990188485884988397428529785546661108686095112313898742553782432969513623134074093022064791015621997296127746084956921066330943271942291445618292959611020670224942388076997845309690698009153255982122543265711066653268638687456750160164342051128168845213955773873662648910931554702514174536895439091074578061580443881267109481271908678302021170938936829137512151633726036762669212679324884069588055388158498626642670680502202614242979072941057240432113226661015252042385546986276637138323985180864768535747099068078881800256426415929934795807779091199917477968259592979580334296969828179821874818041142119553947365559330703606205457392320947652965965952901614709310455700910143522965375484931368399436942334307959633953753333865559922816272455367974726286381057710729150026338148593823264928800659354153702907233540010593134372291477714368703569674421328786599071767017618539699886598978525210376011188922354562801790105971948078729509420395036090006180733803691822424587659464226904825056894124638136005434596704829155502551939738823998712851433357248894082966890638297167927510971740920769849544491206088469397793807325455475638272016836496121557497276669747336416900890292194749902659639520502849913674459387831711770250761110608324122175473797777710229014178677952525777787620503281416514124352836287762218532471037312406338324089441436524574333180445205343156932744003107400154135437741742754016744122287212000834926565507973493491562460596471838185228352570248641287556621179886242208211854188713883710549497756498590641197172434720883896123608282649827546542667358457567488209751354063989203006679302852269013104819085382268698470050208106399966132781811118436009284383677823468921910567689493322847397019961275934398523786316875211929805216787352378173780678319981295863961349051820954779301565393432218006788798578840513186047269348816322466616612033839082054594838781470275898582274991471949221823346447723104508450544043696454582094418153860185570831674203007564970436189983600117226727984476162206475638823727829240542169686460804845030530060400581009229073857657503722913200106947537338865543286011960435468853972721990849437386938295543742974506453190767566179248303768176538438808986435879989257768821502329800238314756300205353992844133843714331490393001924013241101853540012784958401035066115408534884552748484368085212417091913757422432292633045390622809218455571588847158583051275993682234782956017989707532349501636938679059645759325323564954582000232532740718769612987283154938487408744313326304131064458713874003349391990508238172377878393505339673851995291612112130846085777740040553250362064266216936883863567651794964825136052158103900625475580626229666874680700527251514199653822186320885960437990659997020895186153405901766976126263832459964078345164879501150051543565509731503762277000837329227201496815407083676421559981812665347677547460542201169724497329856980719967657568068787167953292633990089567411717152611837212629333715197033223874027661679474092576752489295102105230464599080019235117682125262824110159334424385118728962057889846288926264309503598712141902877861009241110118908617265581980175408216596529600947686733237067017528446972169479795662373801565967571520717064833378795509203068986321097294496398155726945472574694098756814076785029577076745616004602996211708363100580432614110063233311042858124320818047412355513062900648636274205689914653819114077715773983317961275890112178243124977980665632699976785749643206270300530374750608937322466026482462303870178989155467624923710159686300355758558775251451187733498241301479115771463082579735627882902236925234734092580723486494248077136561320384070302205654869588533637155515023340311732514369764895351329799860863436174790782473748290650118682679401488182217267445149486369271243910105524162578797464864211291287162342779221832451369379901068059007690848015789780713083780689371156659918212713245767883324891969818931452791271732779993710109060491266680504223050598029336298627146452880531407326476796918932230002649765447985506361936063103277954040727416567115130881830250281087093725161084852002012229177746138187463556775209060756404045106353977165915608139463691575203982926463306717685996918623806783086896266967048815081021727680055768628572680953985797962740421656941356199544880619930999170576380904933556196339651249105051572755425462240244998678078933144255366473333018222964301071789276508408401848779988443642858144143094268506452251135518137715746242734639136962701498582141698915361621868216255510887613306390062990061399210854014258218566874206958182511867090047178238554641297923045218094653816976188751464600259508937346277471479903057353414935036378781016101183345975115580097560308582492103111489820647400271283643627810431278504049002536041596003788914951403347052346704679344205767945267086542641115630160309710466256598801397375696207843912577773754290433444371937352244993626798289629429205334828415775098817277904187671566906809252640059376606545013719649926148439659693223768708739166694662444375447867104295428023939919274853653061729604365541136544989905090011445785390281552136793980333045748282370390431718201362626692434972127941027853245540187474376957325725602983696510094687945979384026507198650878082339695616048418128880881965310388785536274333552569284535974702627173369597895187224353380947316704334024835291966687627316528974726298770851479433735236438271228587868002000774265790440942648394374429411273433171014031108942310968494529587627274556570350604642245442031849063967459116706769081102008452324890744347690035621092822900474187459914316035268930012232890112859468982508790655681347640850922296955418569444556954509757834638380904397276055203336009649581500576191616962223165773423756468889314926811460699362813497416389434625945571219507154635438246041209482534627646723786186364746790249115287613136835574228708142299659312354477834404793170821512638025835503471928187512055003990106196994621316857669665936750442997797677463871609973597809006519669514112824055381943348937766336399473752853499709232525887359460253656108440903062539307295049399999456515830162217293139861434981358539089796058948782005166241867818853364568477238113989269375458806155189195276428431908173987675026448886225902637126864761176096669228951778523791830134890764855514159215887976297906188367563310762131028752033274698869940096332608448105217633477102002334683115902952379131678124327272063025702170710763095042907816455501998507412616457658811710640247922215834588580041121493744937547023957404718396261986613231982411824876453005753564042686219616004487853597578749533097299307340391008871077914967629046445888100993310361827600826367005929808123628701888641452620362786203525795486850046446771831357822658408056094130268176159769932228501490819587285852392860632438594583018464488084152307115798090955491182724075374007904571629855586240185481081261071113743971690909797445448204128135698150152745166279860731555692215733437418690113095594379788610602847865785448567573886634928328284619600055685297964964031887971652516640197618978788259875929461391409742717909234634726287259614788595616288721098316264623199866327634896451013298749816583044703466384987889240918582356417604571857905575687978796574780528935122935943865661995085524274764041494606978928401989229801936894295457745418932839385157059899439222457577057654400081206644308604359497867360229262323375117594385331480884006810379338279565326001606473100978889189298280180228586303901140747895095896056837670334768128559180299838483821246947236975321357263397629307541498859401711593794139685064497822918594479098196999746000717685379634202588960776195651317218302751182923942750745193816995509950771372731873824320819133848945076234274256471939231795857019797151044348390892179879869660526344938610744383297366679674934012959001360047304461854623868021514672357992077962496208374109366434710296156508393117555299264779274168076930713068600253072533926663337155156686748988254761242710598478497893636382556391700858634241791212402926297842487484184906391938000422655984545731143075500906219369460928128450983703093385897620465443416654109230575252985872036161567504811809631075905258939494622290780668424572171598817017329959104908227178326500878348505647777635739447699034091974237766745908506152149071562222757127305617590328192860027938746336045972840655710554945597695102462451731274643029078117459955383719745179681983689089434550952900525653492290037591634444627237440095522791672788703424629583617156762031886611145356696334040783856914371457968550550039648209179888125120033256813933924184050428794680931074134358984780967090726517766125940377816824454274321813086514167746708957249194658150691002472382679172328044785609287683840452861954986649080736023083609570408878207927008438808519537396082034519502696642073236931186656079324831726084219469697003012635027250476707338606134207842583707105383037304945713618897079171769673357749502509500207863514678201231259562329957554780642765389235256798605976902592429112013812692387727532037024707323223073069538879884171627371112370310962958808420936526488466134605067198056675936264584804341715210632476709278394273571691347172479749030124045541768140353363007935624760619995894245488918262396786589432191341142308769424431042828620527843019597804505342589527027429725927991640099931471022563413498032725703101240997673042006447732476592496758832234657577607761789362393137690492312688562980838436299233450930190291049865850465594712608630330986054068671223347322603147581936652143032078256995473111472035505792080873470046703766933647474816461365450777609527507849748425163105741520358635119840409119165849680993312372797513177285800837518978942000248830394669598711190568028703117432488120128633987294369892638882196513086238984837815076320747530427467351129793589263406830964339789325816410868974579018542442466943982905757644400801936091217656144064933830891383671714893613645427631347585414678388966867385270805371506333062303576843030936742682372522800007442950964752577647444220616942936177017043068643703988438994960574424689871533170356393919833815095904597695997391357869930687777617787704692363730710807436218919726976602238734981158333959194814920942559649923168502992121382262302480615705522238960564239073608216453023078071177453149072806302860437142819684991459710130030189916746676700532394273193153678732104854528034474311518316334140090235389540816366807493654138625329095471523786258015163661901581136993535365564233066209723052430772898542093061109755667205094193247335242879982598300655415609209182267530628054224629610919023049279696748916432151609305044717069518371790312476307373340941873790692065599886109233597352836646125376512919388670815559673107557332143491851672141834349630820071312204412353493525326005947311615632787647381635118446842028029648985166402267950036117593667595169790433001288349327993269820417529339590000955858014768510801325061841126087996562017486325325089786070510144262514106965843678109529132505103498423448706800298072750118799858004781372515341877937914812653748163747762039536359060662532438726095556649001303893725186667436945975068328996540531368107228759475687642252268015008887246314997691224021294681687635345483022132810249888584512625429608997045079478332222369234955162480175354846653691221071604822404669300153071746930067084704865777352445555650486936631909595691669556299814281224901613871710062354949832415045494640484114292426013242263087204654330618723423906257758187112899918734968624470581071582392211082835182812843095879344983987420054970402042933490048705616361056918513738929114555737058745610876248744026178465119509007210798886211717420516887198579204067705670051720298888649273850245601577792023017611907966696624475098659012123265132008527834649182906553382280595539185812608378227286332257555650647213029049095539646041931843119310132495073576419540122668782061107371758230614538319384394072683558757181245498569437417855313285216056115538164083703087412528549887618489723376972817309952745968835007841016242015347292767116388488058962354775930792727586050443468479808206586713165404845920007346954667583359241719530348000703560020743669074512406660831382845366840352463984780633365677744447613413887384880178598665612710952867533624603430508228604998692581490699104798253726840301322889434094873331192789066290316077680697814501439045374862057637385504337266057295268794096510045123394856788391671826404212142964632178532584320896014093453088086230953443019072548608371080595207981684872455706153786744662424522763205604968062779383503439928066355780065763272870577453190627562483806824358811641440723232752723839177776166120779145723924004895351067987973788621607291893073256562934125528575586308288261937393736893142260784570125410297324648683352233102432054663333774971047680976944802341137837584568426374405720171640044314349167315204326160844804184555758806116132135592022212041971178259174493288260066878152181621979670606810877467434264875181254868595508763300681791896137949396765237234780988416938911349427445856266338118312543304217513878025209080185407060330150107544532714897698873835595300976491282168626848765872620784487293981844921790479714676299027035019273095137053732203441182698772065632141340071190598307352462366092556675321170906474903411870380784525274568009132391207900997125815246258373467881164293552219146015972181093411979658203838796284677900144978769627465432309116005794672634581502203784836773081209506787749950100693931082616660142795459867728588041824528830164608464871210026162728391647244515797180975588660510086670985819706675024804444000508831606276882829951366449072577471114491584132870833229991051291709445699180653146984707868306410528047252797005629520376892093929434447881499272332300128315819543350741836494955514901092089856634779029583316152372742948859547923116261205080516184030729716115803551411767026915618893509581316581802716028636863720572755091488467084262370281891535334474833374706917916057276354128576113348383488535921009206842071537198861947455627506700822141091380644744550470093006373569858239307554203210146329859752141614187260552555523405436046655245848780129984256566396913219848262229321333949926872467686427547551323578938363345155849887117120849108055739304004843082791110303685995629141748477279244287147694316821535986943677550283531216903123197764678770021718659204014922083148233795252761698938131429814504548753722889666664808287575813672986952211424500370773832362494106011418118011677930800932421827523239017732413513477655967511083507099773715365585398304204468924558730760465797567837793655360535280855207342082428593002413253553292827684942367038050145145766425514997784212598135918175681994321216267145031400160432198640295687259314025283591200766940641734550111184178095296170131768514690320496479596396034511815756877307645264623264955187012359629327828584884542191955674852623258583733731609330810940107043305382479771847709969769131987309118814799702208304861172829947454031033500720841013759672873448745250904529846494272683546684183035471215078072462876520374650049144967408878066873330776163505416984824890546972950880264955925341538122387501500933152087194577973435556536778438502195352071426443298022638066172977926199140951565320488525731249492741692257162973431456981609130859712256847526315299322070057752059828747901769618642272625442899214729833811832839826693156694835585537665369311346218272311722859639919615825958493471480040115526206988785428048704207857256962850154360288985233592342998458400757853862410942931135001819696790256926617145448859969448383897104686933577158413978887165601046540447080797440344366793977808650516095852897128148959719647961895076480901296007385078153175903303837324358090073588130649621155120995183341048195769782851805576836635865401131876460819151577362214967983809776638797282171685579344880308170272443442121038967470396283887178424941807083035616081461488996869764304223624593245623513914557147212655634243258507356571685024188500019265882570958644598184284340036480498775058469097782977472051582227849011004914022154535837688961383835330458834208227685148453407715782512489634325173017737293205763646774199127734987362304606700647171723470630925203522434717190355945801101005597420854770434083157603273233578157263473925153279894659526377195334055422683129979957459432924682485942891398647725892311141927660875948547765608571731604809732067158486862292650916839518300468146733831036656271216031771068300084954278339288565861731273889581903093134137504999205866070101982831151962875325593396813840436711665841289309102663172117589989100102767628393986361750258540497636159632193484562174711249043878829696011095913142664177192453744286829524446103031267099545225882104692984187658884336274633756519579119216465337466022665793121113999626300741637829090932557938351968747036944413241072121216791264186730421989533812429189242330978166953016396831570387772377008586835640694890272958482539589442888087694803426892748017418267711803245597752407742227709327402315545520722227297118670053309483036655733371877488195463108445140306894429612387037106551967249203114209763452822020287328502759841113080545598611434694465496318282755905223177417473700380337104219449672705467723084823252096058057033764866042001206627544869081262982462754041051130423152134649060441016842008526760826155648175089188232718518350853422695217456784163791280447377765755501223127289515326954428593742497554414928530804239150614502937481113928033112710235761477815429264834947170769245164953075693067119815758189642810002027158074716576374457077709057713401125869749340537534936807875884611138633354924687100038283358200153883598985773910060783916219274878794466919102954848373294787304945917767350041164409646421716449171313585267867068495738733356148764889661603711039203640964647866017542706845213770301642417873000028593992835545694010579766575846089763766335045107055178456089578289764291730660437957767524031236274632249468720076858286500457604772972660056809981293235813228369079538765095054474812695828073610006971408150498732039777182316209580613395321730901148454714088710523920112483963327692294628521417968506496348968832391797012560148777146305763470184761997331817404477001437139865005322549005627488938193186445990270986317643636705511179714088977603963596810789393321622179690208148806631848606577571843187353896259469866054644490202722188145026906737763232112429199234278940657408140064204685787612988983002815420571614526557676188229463561042964557420550293427492175323675529570037785378998504518127372378911762253084217817627648513967204831605281016823561358318045054328075136251977441887219154048394950372832457458160331068857006549076542385630639291487881258607734316946216029212859863402266805090726869614686668931129387509278998383992135609107841513896753062801244880131754025771845928943216538531627794100109009652195051592680272137847121837305292772082538814059235179817935594545665498931207291849340894127228995975207973936237152494788611743503402171101080316315361404346631173278397632052818998104453122444424071923569216286465761216685305385445881196622719914632795925252740386668509994392599294531531827053597290280907475094517219068342361569501763410040320862414278033247680271262471157935446627997421038339381094501634935366076914188901118655029768363241171234412683820165678840587827231361075631622469146772454543407027321226550389379506461912355668161705093876017243737521364195448922702840088614636970620218023923955601824037858977005661147938496935399846099410555206160558422460451709059666456283932219053271836005699576391365589808602809156506670377448162404716963114244305160673493465584516996211078104455861024343830537096950579284371421644746181792124426010707738501082893722274669317294058839807006220778141650238526282367131701818919909047679453463959814457220859227305113203974324052764186981990941312522398805760980239387474218843060133296401431001467259637633925663755036958374393668911702290327049304953642484821408686432877729271003734447577315061327874907294108420666554221733208163397949125145684056987605431091101832250118579474223794181576753367932736875842642761768640341523033308925731610830496810230589281627984331827028557172311585338193753364892793561884457375158061461652762463612531258426809367942441849149498847058912882914438710846366411551364590137516657848920377251070837535302696061719453416013502195844581578236266121597951846436338373990456951921358078236176624733802051469192797950574966711682924834525548614646354520114114200056891853532100641553924284609533509623486944075230789690381479660925951374700517268034430929690276473491354580854198288057053501890207140888319727537557025520034240003051256425019415193736792928372738759020770244598602929489292000062450361710149812081849418548448227842673080925721508772753512339648487917514680779308114485261348563082979281589315586404339128720863298100179741446043941358438653791994195818353241800033881982012035144467764694501052932633228672062049400136271891560776835847705189842009511545288698382123818751833886094397880111693235351583596912836858957306858499715849730426293082107644590701896844987758623929229860025841743658685267708477349673243158519173289259158312391752650124020899110209958442738172085815514661704681420184406451069435698388736928834022060953279695306104596998903689018914903861802959997190502606345573164311228246009243984204555185220593482279933972313001465440921722167413848466106888537472168874438673335075762558626735879809506951914969998796193132577458432639227666680637825232674982503178720004065167929307868233103418758071097739473818956535964179599007480894034932483329622452231255004385102201981088696036907218961916141738098561550569516535427681793660820480879315335873818336867981062701580256326126462733563458686446414085977556702728818908138296948616823522767601125800555357015279009633809297220383788334742140446112908610111468876540570858976025826165203206371852039888089202390851661886383721238461735698972133467623052935545721271411601356474604074629801298322791982801650053240668851578377666708813170297873434943407325484614327000639066431477745921260256839009082382507575592447286179094833206715756850088438458955021895913501893944384564430901058836759347635932610281506287881828934091993811456381862584767743687893189373983940323441984473301591977104047555435547153982187019824898076494000031575151553373180488066117164510516026907082731336011561074967622807683635872334177606623344028311071674182226060746095306715843853027950032386454362815572471409383531863133830361060444446340266508479885024040345166036175393857658169066236775416701868851780193021028641499444606631560654754058490073981200859018248685836812631652520257461881616430183051213802608597884125108042332116577556466967591956058616201366725028041303360485501695370905447011861526904185184620665217715179132348659170807230000231181040269498464195226330505547700821905713498136988294247257045499941207727216080219692471955331842616274922079776694549438271533382247649125818958177821442662499104336238820684532798745825439871878137432502276823180845853209673387674469014822763475875883509566249750420719399067324168769460994633177907695452784777717992439797800987319616461361452702180214557358988326645313061449368170026791391477816825641463867686595627289913987200771478504898389636671411638010438478054180826640529723849637804106749374073035967654475952648404690138920877234634890018563213238952406529685855448835103886370253100734931440191231075269825279048344335478139651007831621972798791585639522010107034047515243636535428141241698938904002591593845617172882587989612979225994027305301416935447419554738870923559385580684289610049845858037843011886307134539108062772703024500327716883344654608793902351171386550121764037221842915403155305219999253506680122251207446551091823709792168002407736437486299416674683905207824575738315713439915248742286134537137208561082183218226530039858860499341228048025065172520881651342978644756497494317391274973312533830387935176264475522249472030245119055738630797311981314214153001356308890800380911806631446160971060011130951952479267060232622659536931209131276771642403103283189571344793637536184408795152234029307675058045211608632810364246919290933067862763115955176095066991643345758919416940486129815088650664371813436384204234704121092793757491942569096217624417313270845556955118185826920502709216313635606175969198084588288863655751985989415316281462503827454876019882982601416377514773131272635082968666140541794040834850474607511610361440916090935266412309006841853146247629491493816654572044839459639981562635162040354071603240803923425491552995117745102168504789646733892457765624945968708830762510338283566846139338856438696533790279114510688721368512322836970613936141229845866702755666236442681661526036723006935327026870944322868729675864031746369248857490656956707898298259659472087484241888251773047760459723630555777154441474955151420163931527225760262157569801134340917803059823805254224826766607625601904216708929749827343348607442093044808726023987489206458113733655118254415179528509843857956339922753810571787757994000220993788333935439257905462733135575066542666257902621182653591862521398777569376129529901292937118389012655284009010081386653110861008773367534403461524623349638817998241815091002563424031504723926465056417525321504211151200321722091503789537044632901020680580793448549612915622134861165390485530132537008851965531892335411405525695867746133578596121193648611468007584229452765235932726371975187337603531963383594673800322941758274707252001926564267206318992021458930394555365636592243094352880858443293272363578534313145868205317734181942074807330668271025484503407270456742968913807047557590643283264788016389954020720366027272029923629277840741144880075079341348260374071763232566990114901500775135446690304943613919019490176696768489785443551453034519781615558424503334921420938607870409561006654394754233666399929734211435311834496595148957270456264990627025521755014523243383637971789635937883742543402655542760552566444053457294526649066880493934575174732760522739925954229166451050097017782464421810765376385593567471649293727604985852444536395747067771447529245312295889723208034612048476803654566064535785630200316199150859462645627212127542949237252419495627007470129366689760140239137597297248514669525811304422905111480866836385700921076861259050883831369270948862185555240666500546087936841581429809217533456634228324543824798958081644629175357953339240684066250378334269062952637620277611042338967901142807464492519964372852666321172417671687537880730600429075467295302196825355328077822117156168131935364792747733878933036557200832649820553881665316382217317854062253390244139204318497503815676247343559720223177636036372147773687527537691662261031755206431741293553668735654705654225458388089828196780003059078356120193850810889857058899335357593787837795588689308615075897540817205670884274987050367805831235106004336180423407266489704722924394498479427141170151152178517859120577014044348726922645057196515947397056245753186346803312936767536463444224446471617086049652047822723104147947935039332377097762797608285341565082099292356741851764157263494566367762826675088895659933549862630920935151778577632064640538795053883494246004371904689128494485449909119707705910023533746984153285016884678295924394146673696349865234639107913283883486347846184286037863092109725034048554280775729803684300695282550502490445324629057732139899910848607840384007712254995166968779954859899466993690669843690146233396784286762856312528533827252575408378436676765521750290090190004636979516452977772431970906510402116872370667835555336861002915401638702425334282083827648963519359897500374263780755342817404616740787617119053866255454868228540207311967632829024147573248548528712785083033627802405863665251807192359666064801849804038583639020181748919901791191590847364688080329741622976527229740837751224827644988496456478361342129721593649010405560016701265151381062141409072320336361040305856478785104532353095273219171326113491134593459581479664517598782319781224010702810550246641388799579560268361849330713146988658299930115250075212572714230760845532993663296919649998073593165921519587276285774019873624801773227148856883864406355978502295446392727167512902027798235946013341150111575372160634387628797040057709640617253957295937029443763707646884688935738923656206738531825710184092100895772451736240316640107470000855360503777842106460372075658596097567291592193574520149542109832873333548574290893803841274608816740879468991711914746727314079031622710515826294942152647870468654183265631689304510535338000590845331723502813753503374076337023851707526783194688275605491154362672001791454941887013953835572424922929806474129366545275371817901533691434578728280337237421272491508963939512584779523924235264690593055283073439942302712934241586873145031311781128840407113304172050991738054666166010365761310346400101013648274802067278679501490627338177994314061836964686479826344211530236499648909185288391713116717805496378530027464835337215753062097680894157296103609483805670582160372125850404933498371352158386584250112201368825828278917572742601156749370722805594267328602197690311285792354371179685386019657126850731173042778735131059036198375593868100379094245783439476872086775980808480084811571909982759138512811946024908244093382501531150072733963006618665591760345202827053479612956147127751174181968244810918652699757282332727718646689752405038613887538211969173682882682305625593916185498287652758558662796313132452179723721564732263714789463220978272027516070061686085501995291256885744838607643881234984205168273861530535737375355075823794760518569956035368223605497137696140219639142429435136382859788918449146829563027526263289493969430063667729217647821408106571880670258404757770182059942669956347091569247291022279798430262570090187643939557626100268894462551339081623412970741443722476262541351703498413511982695695952800778264621605606563059849239752427402718429888550663147273848657348074587715743165432721853765400916040963088126657703704949965162542643697736218983198778180714957574373665049012747956426934430190386033700528308277754821760733519371066375436486930252031545750532664574863346055948930504737105257973523030510991018597825291913161067924607516438362145553532331050322371166034957480090319597615356859058711121117242570532486955242509666214388057755427883753796224911737276488765532031205871884309095733555698496963997259615457573634622382165020455447931156915700953679404133921882439681144711677052964230308019527635198684327472581453284429902143906186704219434570914954013758521656746198596132862601108052248459316785977798722454605452709341924946636558982498061180849973417954711191046715328756449882327312126333197448886659442063017047938405157428560752021746747804418678226125601127555226411887889313181573764040816185786620079465358743003439021946147398379361292897500711527138620279594602562820199862469748819446654223657942367089240455247723715540839989805311507844146245890422846895329676150271111190042179452949690299316636159190992005981793856030762247816221491496254678292228015958505028741276926655218619539704883211504414672997084214921103196131530272185907383486220967307766547208261168291578849641545834360119656603774750560769811539306204191482483423801922660535242273942610936499656393219847047823313904309912714693058052501045676196293177205338949765294250367967727832215810499050152388265670699127543565922502091105131897905861505808065398748091009866860758944014713679078891002632622402052019330520081134067348965086585915094774161339376460469189972326267057560518576749459433472381589276126295154694315218632168608317160666218546471473617004168001593811888510529629434958832844516116584758317607397904325585462853144644908880851246069366096204244527304769512414300432522028902097001301738507416025060321845801142686370337527707676581304705730550516344771067827772967701527180367675826520082020028876397597024173067695395886562383435320112042391981953085410641204404190129079150724716332632389183066498005701284104885143895983712786897618130595709843515529978374211774548783869515398971807875443618069167420318270222635308788094308699972225868206153252316768855941437866755934010812837600180347023439374747205971098379138036080110428463207750354136338149076263232647507683702657148856749396666419422020938555568025936118686261191490541930471500116343453233249088324502530337590241477521802480566912128282802531100512063470852471747013340641308539575611277375107148307698238334420274507517068649842132216098943241358190721433344667654860671638971279334348186918161506317801268589765909148078067684889782068864276979671723596340544103685061751673855786892929833715859420281399414048961848334971291354118685700583886702651484458603179028068794903064126391998385322345550560299085395343557279620125894995839733637852977351489923216474461494506393866301778881884379609599224747988015600335121784760065296409426588206021145739570920377465897806018487886803039194096629681600201412111754401825450122051892506128679360625292182448619450036469844109436107339177725572877620709580298260209652366034835355318907340970890930231179935108233286175885206568078549665364697948069283940882173199814355933728757947445011048185217619352560072645054361777629194159436794418709757184272994961886488267027354362850598112163115796571184507275388282597878929974549861231018232924479567703472470610541348277018644860112543881573485814568378575071455912493865996125557316802965350590225345258454004751125118956032664420706031094437359968488836607931693052236725965506863615399388864813186230592021582131237519741521681585115886956080878172295024140832154741835314811632770277250479853691575466121824683163851819512183519028916615856560198761005815551332393777015133201443970672243329444543637874832235216628059806314347091112287456564392426214500190876460292883808706686113698045185808034011256641810172708824599769453555304300968976070978593024373641791330019955924383972938205300317555541743414179791476113633850258399693037556844275521274964503215149218454302421490232811782734504123707503200904332214350698752821273960995887679672985250426578340405301353118414673744696286039951413431265334865622875476947368750872087644492288834862785916042431392629443116204071013422404527591640873524720179274999099303680247587745947467387656977877591996547406338757716658538232734262784975746094266726641729441484123022387951544382709247465065298563256069102257490670074725888505157631312015411345686528238714672755105473978067185592009109213660674234916235235736298650344150791357036606494252518608886909563110966963140965521212418944229685917406651916705941315797451373157612176434287096718344146075449371978267219607138021485461018985552460729290609809376882902646479238532211041290381551390155269036680553985925709388772474633346151517104836858726537870918347880166942928312156347424984431159026292307065010350191798806035282504227461986910049681598390588937404417655859455075743742560241025211199289061262407328017556236597492490645135884924837850403246781373580724119236264780246756703780874116218547445008230021782636264185657628576616320683918089300592621368305632488449865711393369871118557439153027280165927299912986865416038459272505417179895584733456549142303277722150035251213507354352890508242212973707027875082978013451564822254517649266943895714220400844360297283018009938876080551944937242232053613644314932435119769763351861211620023530068793849182440807368189651620715399089818490287622339820387533778636886589404039169809893072746109188298608315381281612350984315780950297634346018806607774615829390350075358101169984268454761867126734563327546189413801927745571933300015893085155450773904896395751194132398960457494064805468715228266325222753546177754357158610023682910715477934100236994161398685228712481409463962553129045783867156627288123514683394196928967086015451108081502820989984844467387412066490768442499787172409830308802283000701881860350164886601827807399725243461066385143941032595889911703538322214488074889611378529566880662532118189255210921644697073751521698748840581014641343571221532217817963878533006301468557680884186387689418735687121605353654183282462342357200949059676953665267131285524417555067872669292712257835108018126073276471021452107366981628775487095119469376677512895907755323095536396858121570595523831512186975700306689558709933795959227985377812354794588468618993659110750034287846527791794208827629544231326197434168362520728850732175171034575313970497425032564539042209023076860405540568975585949374730958316635237706743886415509720310636607044886377216150068238349106608689378940397307464948570635061470587538858891190844004677104397068578559218136644183427943989261765970141763248086685727120751694776724014218101577909021051749188000086630013035292936311433594388142415146750961084577796771251067425547447533664089225207453083491202001957656061683799000936492279085550559138360146480052791966786294007018283844861669702422579145000474167391274377676807382066979441775854882749145602868413350673554845007557228966216106731181552277214632497786005144716212170916885949610738399101322472897708253691665797984746290366696158297352910519512705115534449687449561561337604553367398044707580421037126714183483461322033263925373012461905173530863974561668660367412110300996419616759699574598207381016288446979673732644957973227335825840727489296816601883381680181740803712751860515741108510661881535703473631098151994251046146380128288327776043591366794421748247621589080635779159083876545849865506447752068848053045163968905495817248439661461786178121865775951945203332099626851684573997683881799242096037666897566757711108507302975670788146108976382162215084244745051047814208629566788851179442216024026656192892545696935976811331236954242229911890623157216550790810472991868224393745982169520303366271230939280847878200749226588001173120765849147872933444861927484549282070247240189923069131200917035311588400075925885643491689711935163191037842112354368434106041758682030878123205924341991910046852378336098500500287401701890107587560865065380773406963312485474970200613062142755076970971355520933113649448730827344885660498498479257641184342826941908448744290650949593019597820338747706145942665824901817066690579281473423899216549227059889185294945179556637935563579894299826810549301588060197051672940671505254561224841877874765576626311028240954158603463152208808071102547648511446258697899545780133339657032491218900740534750338338990652694235174930327972530925454702900297573039904659248461266163726045968933320955342635922383591087738891879090058967010271782356037227544464654545681653835324938306722670907899158303567929596220133069326162026207375679587731932298126717647573259845835698220531533561493472010833366773644043079744035524513680643318758778334045813294929544660947606697145007896898309264715393017760177113554264713024371794136636280127782178703427882727343730573932149434479920856346047269501820302752780662724721988948598195056222333970948499787507033961806405110905945863320702123003230488519521389509300036482038007797398625525508325771735293019825281702206999192636461346553103716895018068956214418019137362556822974781245234291519659312335425321911155347296924185679214181774443486643213052277353472980806559148090523413447547989134217594168424735847703613667368757896556616613934529612587708818790233836844794379681823087294193430546208552038284927559659226061396860221201551357590682961017161916063265403920792740810273437820226739026943260760376868130930005114235526369903533282123591140253499130946847385729476504120184554829350790095896074473975169071196807830722096325125516544751626824066428888219013177140583069414612954261539041565335538791305753909323862716559617099785134628280786641067676721778372680183268941168945926579963762089321531042071151678336845513123115514324389469731723541696594888589308297828295714999535257291041950190661543569312724360200183644819181252648457631216630395931712749389731821761715275907868786830059217757294264212931835964772513209248458895376540829422930880182274940257263347858963743939484269717101720494007280353018705026983291850134112096867758830830026384385187543830600505163656692035651229056978419683106132569300296738022176811329624951274440360871343886785705753115856957927544973502228734351382064195029232990892787099203352984803075231891122486259710904097150088136417963386745776581447756706093285456477103863692427731373795174924825296264017244410035495766770579010951318658185493012227897172803498083848272342420727214525779784917391871743760177872018074470398584836048224689938287995069151685866111219698746482262987970029852418751118886831995164620955676616844269473273347262404599771799015400518961302500451749540425046427070349202825395149884462858903532197282200534692676990145122319364138522889849162984569168078063021389238524983281364706227442307117501205315647559397213943625619842980679044028908461938503630505199429624992881283433125566040447100966583207622523138377651098385418599780762603624363458141745530895866059715937697759122272404030421923049277317135960667236904892255562875208503503506432209203385842173019624213927441313642736938416226414931015091721903940200479467672424997096470883966431983525488631660486840417210403907277639454446742203288892783948328210875911756185038072091926534268378657271975078928524242797006666729200310056671791364946172346967116758585036817416207562377573750043500247772362855982565703532276470066231838403747272784703183596852328592855736671453895419701696961253031682910941437763194749246177541836963205078502973121199483937907797665888521136002055222276370950399202316587104219309404435139832753489518301847657646787968729508208173490647590783847566319785443498235967046385400953413766274864882546917175311359334734531061775758409805041282552974361803116018553401626474127352112283847130655940665414619623301105184350921564681726931645473287416202828122674334458927103667443588876473068688753268966700998474994604498050679675607698331278873642756652867483207722719371967802782101311141143861074488507056752667456198589581211860370769275705107689416335585234898535935648645917964415661065874498276428131110819682651923174462223367021592500985019442814582309742173753423354555280547596152095507949694629737351559228121949730473955991751747841380673194687465056744933505120266047403436746961926123445531606711901600435024699555739222980369952422708978965801822394584155508070718030891044964330864743841293329237358611404511372709607632600841301995252883617014744202291015145781264929509328832461273672967004172170846355449098792918601484536269725466709717769057461613503032385219849771369327226861724097633462344226092527641343356819822665655365923302711244746761933731687062858961247175519981518187695946102322539177512484404552699739349227381517857162701281235312340177401465681804186119209794727695863759185324209389507241774357973203634941963601002920604656307354817655357009517578314771277651408718383804807706520521060148656096474858321918023336732367403927784816824031699337623171870341965767139779148246848348846094445210851530488483555066014179248780685298452845250212250390889254354436296779532879696877688072591366715277207970800496261661970263373467954771247012043517165196516706807701223518794441526519990282302033139722713908180712947063270199823240899197225060098747482240052537681864713045368125898794747308227597224671240216393359491316575504892228807510580741104136869596901126722412962890550963011718253973391920090322907655661327374667098724375748363705554625596121233793400214446120018167007222336840582803410636410898179448003300931384916462356594641302697533643972307104430947298840525446048980975055141751327397298525792243737595970875407013746417923524116155831081674050077725075473378210040808641570523749626801425593262083116474300912845878134611136532180330622870822348461323880945387797483663446283607815049984315077131466072100056633996367689434712739998712916458577475052526966930856268506937187529844548544171451818175863157610768125219787457804486313133471565489418109840026132682874673962515331654782774325935786944520007695877787344445339241917025685331513805244757424137997406452006235742935371050682750255804345692816511162932124359085958358350899044699345090261814724857563493788711360332328222659859446566796672422662280359014791822461111527068515345003781198123555640305566867602653288987311158397576825245574510436408946067848780295672561341905604426376791477881005265900271027089188525497681947566322864135331884024643379575660141889422939480072837354520033592239321634115329784277499317220294557193696554271060438328798565269427825281813157000321230661907483127123030968468929061309622114410010290509293119193558988438905613925925973104834613882165705903440973570813231086531539019305776205220570588782128869166492790832527281501613290774886001457673829765170476845519002574666820682811519063936226812330573787637586227565224578435426762261262748575740476832809775086434376271595196650311901299261980822122764736385967321895120832359174399150686321906866153751597127793680986549493567409624916579123406049463701498237872919451855477357545517793535508560538257987645522948594501985229275637545716129260844163188119066301824479158412757802084173992860507920578482677655613718534864474046351770143027618431453966419681148070093430677333018213575595101717321286475204711145951274664412577605418992163872304729038717233705447263893478767333854095507644364841403032582650123687053476333743497113366378879621208269480226334791280893104720013570857268832489103744791944974523589969423509269576511962754998464269234610935953217337347958637168631356520437507239212779591375167999939913793197677340642414125122632472851398769740166516857187049788128401184207019284726592179778371449491014216871223338682844312328346747946451633787439508531018153304423371988763943377980332306438743593279556526372170005172223139181465700861749498743581337209971740409205712333175986227124060180226296963384648037524221030855620968419997347116239751584864964507646849412939514279547394183665319605419617490080846067048423425381692905712508618664551848742017622812288340905687887269469339222261235164191511612367895192409640396471382832914185554764715733698128883240183693001830363100152510902654047976362013745101989657239810025205967805942766850350132810660186982480246635461536170727010886507676627109824878700716070429409823075755117982105225285505405716873267977082047300014569531802727831348009664978871877070021557472841375712215353610530738236184720945244413717237635034009627920918702529982486041367173469283565599116634701744864687770217184242735098167333604082778579086974779643591717990391912532940348475950119330150018095921462005107165374207878103758482281162344477233866088640209316385341385340894492072420234454414747979222118900417720132972062919941733541244410600567897501388843801004434590350239995395973457579814967318997093275726949107536822467650601202872446219617422486067997549576624473015509193263376116722937351965251792893440510057543298705023413783875974944687186527040962479861853237486025668245754587095523866727482279349205303899502564978311627383112141306128154249521076803803326394229666517106411349596429273189040095134498444146591092523812940851923336389716760848412378068486052845821846690142414670691564389687203427712744451142373421328290300150401207814021839236835160321958392123791248616163236406470261523709859974244774930900794569288768908967813132299370528124979315740196179005283093218044009952298597340729835510095456696091131015770593751930522580633675447396493061510106792455663218430996662791546636610324652347066903526761757184153137632826585309921382201687730084134716865589309800269576177978637403177415542247951558666708683642946461755838403731784261056529914294996851508283246487602254750055499724533400953968423131074751705131360683285579242841822720812717904446804334319391146829041811682444477493096813286748430662380298421077226000960601030107552062955162672220991281059762724795133047551045425120025808238174315439264347267931123763432074372927831872673205904789860415350112828682673355893815830532992880195687151772810043774809162522565451778368985723636937018534507082022337629421719506343460975319027390177349705636715896568957713677743709792037509566287187073479840270701026127203806823884752046024644162832337664575580294634796641306067330863829832766754795712932089424383618772471572040110416059375883427811737636660408763625394000909221396837384904804668685039792009693626193561359668172481794775262403220512093342682183517189860980342038530149687183543220160955135163285861842060637584713832902869173368582190088169026280306550452468651016289223329328713755832266186229035149130944224446617889419104107192340913775024586912050640230496494320848013786096664768475669868678410552616977296588965043916769446720055159482255430738815634344189304340080120218321502727190700458435774617901379927991722651258462015925237314113359031353002660113542002631337425811716132007011332404796892725496401007213689083158820727727646389743753264541187951478531032551765760021492680034236351086467814726444328388931746861714908855424244615669615771854231083769315228130832674237851917579010159980702793964685265853292216220975347322315852003690170094613936112500894085766383444178827782516371828011196681421882816980481445786947275363617372213450998915455990957985277100958911308412462941612895728277712223717455176898264916985231189778687906503367983993255644229557633273593671932080688178730565603472201732245129478267877599166410999641810786876688423627198933225286703958311416078535059280062753931499994847743972186813179642571808998794533491958895765649942607519390098053596474304382847403375696937263848508435561525342103451861929057990316038134026508976480546203387945482292906714411405423143933134547278168714671503235182452589934501402980412361931209905582830912889787127004208494875836528428365299588763429281832386367597221168169539522335005197899464759286846850803306324481236697591963997732744868649927666177514218280698480067991113770760498298727090270313879776023735315805780498517419106082580599066015265019649460523205938352223155437078355152532612991215260092397893507375508600430078609444798952676786464818703520546521624946052334214085943938065725524268976353029969249028073078158074370045420991745858105054724634469931725035459998828182544612374722719489510426363783681141754671882198337754858840043756580462362672536338860683780702644611873343308257961716203194217144161302157634406147537158393098771163785975665405660500615432179267487390034383782697841367416328675844622556534089898902509188080789200382991040280506757391693591404505054242665181295926305678970366703283241520654795817227205492660176709001313673706381671855759961943147011276671176514201211660548913824469442167469183345948636846075423003208041368358883515452135065583482960970924020899711804502623624047359000338533195690469146699632181421373337205858031909543603922220748597282020733981011306486874202798445721002423350020786034483049133675597046761784679321061964421500445038877434401687549035159694945589713186679280024473436039956228419485284661820278804574781268150235312605619150484355777454159599622158056423177708489494127261854325569825094568845251317478178276544994845907230254512371232261189665012903221958311296190174656799615971957009631356191791154911255054617814039474750224366285627900653958154474482578679327424798878086056189210173873930297887874985749405326485826364965331688835711849837918737964658535017371022710937765737225449172130863172861815052980570697985749143187496095603869073989253898059220770819087253679414470775273675217840699927089681162216554534800546619855276475420951823061075362303395327625544363966796377256467107008647988556012818231884846692457375710709828982172088812539552542375719589007376728616896069386364877694789433374189820270181537017749732206959121432985620005037118421981829500925590450775003597704179494003138062824129382754309324195627318870879180912748986267845218227510663818400135951614916777205473069754216298776076818300410136737146361025224310206686682240175435921166364116189539512033049727896711669224252586335511014482871850889677602343782965949763576484218817914314717302675634541819011722777910343085779319180783517924790684130670476828220180332043146182636733880377001469461818509525750890717952619784733148615667413989785688583484113572762487481792515844408461917804066887850079907749735579438639720214591677446320887757193032020852639344147741435559749783621019551889492488442870180614431302959957172458632871548033467614629251475661376092887750064575681688593622261511639367121901922336069505216106107566364748449269253153517811693933428277328172149733186768542950307018992479136944411181474272333522206503504224454902649944569309934285222211939587098868929182181156537518024528348469141333641578242013858389511864038146128301038249963560454159842123463284769655046375720833974051605213082069971747135753315104368769240695453977724706737869033095735807959929974503066590843194660111248711477066754879570304889777502251606202815080028687053627360049523472190853265246525958638891378819013707678913116308095190270383199019736888232272218387437600632842186660811023375275599314292671640793565485656848408170984228958887594310311291828149302973117808573008933941916731211815316874874945403475441948877836750103515637557526165363241906127483699421121857453155068386868742198447901601961332617179136182735409455581816519431768836736207578802926268158391661174868355400842289553916422968561951901599994176409024035406119905801345778370383634445184835437035846918595234173964208448171063036082765078344296533014127811822587096495459772324974913653520933192795561633262569039401364776933731082412685381180869117696534424215551130668760976165415976324151191234570986550344628643837786624279444347584304905341060174688651430278813224847479176500336953485012320336438441255058850655505192174263134658615864719505984562926786085263978682225234087498054173952747511500608777375763312096393164019401898525855917649132131792566563295347006017902408276113419617232204416033527245353769505445617610748493556191188130820472046310779423663213041286980174815086227728320414559486967610115635028446442734263557350415931325343824085484633732237323427219079818510906816474966128537609353939924218386451405123757950745586504546382632612268096391041443106662470317514248154502228422599599176934597794201785998607455850648057636014474343541430771076550095692139059620497864979644607347298022071913473517467829677405150913570295831342819729314815686994280382177575240206796640359228991542150055231179135936725369851144416557331769023247112908978511276137264553179411744071543633828302082432689655057473470862523461096427515318991736654169994052832594694344542918380913599418360193448064784899839947164679934581026656172864892366434360287768279279188813524970104382202817750103146579843395091761657099526071729432476640949362218971669313803083093904044948450203841296293653530167310805785878274740039659743622026476327313910216470338135990135471342226097149636077819565835560627046657498806112400025791373301898044490909301719842002517445846454321131273744411529888626413776874228012806375258310379833960535677222123412450112331930604078488729789093539539363499379979369509640344317058473792054152141898976610716561923328773134578913846566369628704594257586132199755082840878359853975646456732646714153168547690434735978948865500146918975663887928739372811941971089822328908215675375047591406373394069650166999430318647086751509324376409672794665728509665623982154259715687414281734708746981337948667537427092152139241891200976631154481159976435754386476459228613596923779724125575136028918279498122992800149832774668251945106214792212579293110426424886563610537461539745482723861293376368965656400146458755246772577767453361917629324228622029070450089234496187251374586143183947854305286846205951343014280944115957575656973354878811069969360075728923042892977703017610026588162939868258913120044179781716164827575163453159146196018321752487066732777782779879962037156982623687402394215557128476903911146222385605951972933981108443584917314250612127334785927650483376301501800983739600010828489486065751055304871742015524664510443251760465212932431826510147679934098919914496202293300910393764231397042507711880885182147580502552445960239784567993744405167192502533757385442888437690485500328269939412088388525720402814463578946663670188244795121664777475865596771845501281115924180289941522310724927372637665865681566965551154795018590227116709051092018076892794431945635104556375179374259928534604831569708314117061493506144471450951358957329796222935588017067861099360205040026679796651706940943562022722090447151305326338159518909091194000314142269286997830460297204208096571628293495638959757165248138393770513008682955188847422585458072121592503000509463519347974011464668577783858484256124898725551411082139317887258751213030465628395430327349770463917739039373238231383549109798678594239559566137570135481480982048221633970860818250851743034108848105303444525604026523904144569058600945528717838250057592023348249943204810733693088453593427360759762906022764474338604219528469441789549375081089228540388527265449105056802080018900370854623759104540857277019757703752080575333279919203377922950705401754619767989688629235390256641809478056932984913401610048381762462312405424190154555239804435792960157438271322388114028845919657607300168990697022570550080066482829388048889224573347503753959057868602377754657517286919824633793535622054106831949432128677700445778200677976107129038926680520286668171336630744350214359125679457666458195110187381422372733721436959893369749147867070495948589469039207420855124299269375875343006857370136798836932227036135915575330279125681036963976479007960679349193368067668708289123112022989400518317152887327496190559322490206679986047791664601029485843422318663939459922634514807996000246911397788459150901616489008747404297392954562736920896797862758145210467186043494663993596640874367916270624750762671386028207900156790562491820378404094876135725034173819931276856402939916488139683442441251857337058625227068793299571088649305247598296741996671675737856874545233059904819326987912351000556671774107282715996839416952792433056882470897352398155842410791163543380699702822127128865320482921956238762519673296418504644798927086451890795406727894972918790145550366857135502714263223906657118813628078956608913784550791223241824257175377535297974241273495249740637233981199727589568597522727593612310499456579447697805134215815778388000108014137077714654081298008339807315220463747731694207279295941810533612849681255383859113982403663007453322953474134874105122972039251445705484519129938743000540801434924312526995670473096078319229013636237473296111484600225462631421611681405880249760275076864199710305761352906681869653525878423176813791423243990248312175413212925302907216588482294528815426974490242690287185230115291363695047667431158655873221855727105792760514640545419904977903312394704407994223082058032600429754198124612419736733260603982580202719500576943157572392081850837552289476990978571615908883289486171953379096465987807471283690518759542739998023377938392450125913641355168938209893061901784976627227180700922717810505629367373631373092752467354012701364750677033700463169102713415844481671929039832148763119817101202123665514800325826350095039460068147848113696764346197648999975342016383863163517346646237374931143583310416345088332610535200185322873947629277064788574674061630037908282018873815601627783731318378634803008806838801929276245968921360250132016359155370532869717202421030632988241428478610284311990683853811860921026605198187649368586876519233612851955279736248034462208721786955998515230750348856240763504112586389741965850345841934287842866989590804651894589254815718196953567719587887514463368274857543031643408065305907240382283348524743008801702969444949079556773158934417128466337374612805394809286994300074163978964103400803674226243191118837115575528190011500874377539735117365112250235536010047672006547709876390297651734951344718338686655846239459113029558735687548587666964864917414149112263522968022570693890283189604881173301403895461340397157961728443828062743804015645666986187728185952070406523613402464468713141064583524996741435867828160402221802528344818994671373350117559158886260884301238550179850027354980288604688679766025955873671800366925872789598623896461044622307886852866860690071396134006238190696829140141342288290014471999235612508835164467127896111398354105114069782143075324873577567152957129861753689643145992508680387947677006045005424676973895479658346287156814065632114644379394610884550415711103716631718097546709342226749349765627681136968495649268463244266264440274492407839273423935231875390528780300462180539037671756630251575270247244614547655066953845596727395145721118667566544990783418515879163795752441413489626111358182419009574439410738436570630193053648029850496284748038396117143160565971778392061992781509058539517299593113432951250640849718591527403008281121602794887667255811698431814631782776689790659975940471237627080199831169281101531747482398877128912993539597629263920603643352409114351458869276332164299889215291310876474023286546128880736470853096276611663616313938129035849898908142756384192733239129744674896088573248928853669085944548508907876326114105507453205852166938062645155907135347995659258000627785401978370965692950304634623462658493848896935146349585296982711013212517790693603976945982269484620997525263508053723938015305061776791466564450032087107855304624445237948180092152788585939243675391261293980654372191173228128384696886009174435988687111056837750509069695645800507608005071556263281168327771762191625585631747566359686581044911992883415194789289258362297856432289424230510278473349812445547483849409596324536354445981637049497754605000074564623160503944324517567241142042779170258868522603075748136663311171213098524148995004628039349031228338432725874643122387410737102932864029191907192202856648375731193385428527148994084171037530248672117697805179783340759565945518603545912343821491184480274174849955997151349551986228825403647723837083058311428456826547828648971613650560877353505642521679244192053796696559868765631731452021737999252034865420650318916390186713083831371604026027326399824704812396651223778040162270765090708237216126434823203851473017480687703617706996986841055583826207915780457670679393852223124269564596360060040969157519898729274315573307770784322357390961891963370483150168478705841526536346522629680053682148770869253585262932314629327906834624504687573172250836440290625795250326182609402611841284288110411673340326498303846088507910926182886397257523069003378848906843695241363577751010058332990041551004085484116071123557822104476515139717213617124169266881799129226781378480054679840557701205703422469437750070431657816406142080407024885821811393083363567962034563508354821865760665978095238306693199389187774588147987963412336101742105325543337323248843785423015859344823991994841671410322659959137432875425632622493920580700699397274701778928310320327818925135873603660638170092993070517965917448932838326669870837462229864470839391831826592587545889548474069946269448835767426118910901510949794223838125770098694395847738972524177103140177339853447655013220555360324123498322830194579408796261787096739687927986364354134976965435836459383506723328578613474073445701379692876167528757682859112462661453567153154978039467633154189480875183411083590984887445230221606440947801374108235714057592605415576567035493744281407498547027127992069235425267126255918629662678742479523014552111268351716642750616386059921759318531121323107406825676939795185415902076059373874079122473287240768838175328128982724395033160392436780592580395270465528757543764569748428634901149281936873071056882477071476480720865230583482277667094585788589769190680312076804747309862648767482981718404305050677882940484273556042512905586953914697507075776974272713050131138197313777169822648015729299741447704821341435378340951324979325521959943664482609678332350535900656713269547189962381498969495675260352914230799865465097308494955366471077200405300105757010873504574362159905318561063966895804466084642780567584897020100541001066535886401359521186173631464771156162377465684225871184473570891775359422045822594937202647098018240908215289407467729709237979660200383160366682928738040642118346356687273953869904561950678570017208152498468084211930162792772171598619535833150058872877363970934164914884464407998910390054159317665366695452041629609705775436714465401675600440001447904039981023253826441620520024268581967755864325839809614303567973044134777248797479490953435332589278943306286175127867172720592389694269148564289422548234255465650447707858273748876424926073366145141749410071054938247873677426646777149203909800799733985410463194100345932356194010934708099665087221162104324371998541508650507203757165074016010883318823795274551889622915023446843808529418670608722653582783313816064417667984037295736644862138407372277171600189976307895618079733541007540893896796065260256898215277331675373633840396513254374186102682924379689414355254359487226844631024902876955323012357373950701391335722443070571612673197585490180253449932065984280003928814369234060842923796080761283918695322738310510280907932074478574337340790866950882186578551563683059702492955606660963415232919771657435861434768495026468932529990916428967963973690255764710013908713440855127033454823364598845449814626254045757410221304901335556101367184001169953382338840636572130950613085738673071317585790536635813591648318519081913314230912535225469277344996270220119236946473609300602214092935979016423274295232078265722925449518300000910735095208488666517762118968732852221125956999086743081859639155403900551081767343582200559646687663737807772755727600921133470198701953348100852096386240920912198099577922301539067420250389862612484728897588872977170618052735025254677301714090427179876347095110627298848376516400240442829211475505203114530566652130328675378700050496730985732189526340542488311989310571109558840035435755347696769603853422775162007959769061100975019549784017932581642341359237434248115534518539284473602064701657869091312069622627805643992578969112828547863763676203958010755813932754119833525020442278321289989641152080323954782631221467769718868889494216284028558913747076468269014652105762966716975476536855115716796840926450481285853532182687008364998037366581359833496314085764780516416199943980571675378434714148690498574809754974597634485336780653225577775545734021587238305316887765627684776596115022042231329550022021627239878098035768140779109271745981810804516014674675570869932772897174565886808299534239552332299374891223992013435952421918163488573827569241833159637027067592331123527388228561301763537166537096105452910361366173977892077756349029035951733962055463318278855769678905844517856150630836017195518312455725363817904544462416920794764233562798431662970511290994854259237370411268233460777953524274286852505509109926016317963739383625477056764741682468828612922531872061368973310230570489289089342553885273359556453213125598151923030353163250636379198256302072200510819172874229454060448917442049375895023568464012639631957750723603179123815359430249984340011073227921421673026716948978163710067965528959116505145490492230119333567794365052616056769065208857622912157344281945104331365954580354631644342870083520090577062443933735007380555252760771554151246856355667368503554296681173662581681501504322398966082305037707359702283676872044657964092200056151711376201329447363233581028816712891677951440926560138535891849016344941955857528202844226799090236351763349652860733007002246978213706001576628167917644182078054674453736465067193403578331232436146806439055960638992015886109247533936400195855740264031052797929671359767338734604959625108409767270518984313596755938808336604610313411261499345424739203333850681250788668489024294062858652169605615040047171884149927652859611461143665023205893828572663777204277546650096993718570389335739899205361510487906546381123064385209291760378345177866262508917917934073344725345982585201349231152565041114899613382420866367195034969631417567480420933501425857153911655291030418680108035704838301117552199093206011073804664406458987069021139920632520554460592768214935664940530894624374012429103723385635734060769399412264015893998770682396687813044558846488528464386035746657616459074967808568352889753130142832523090319130978059130796271642786170783805321189960689930643770743882746324431320765721975913641305873941172817170443472099374697754560656510773628251881122374701202783795186577127530346706225211728053133360312293419681437726414660173401295775424108112376983144233796438765591843145312604226136983359523965225837162041846107733546375019919337033180608083075490274613277623248883930546146365245873054242021739301363272576133679756043871257400723558287077869103180824094329271539233888103350036041823183850518022003665922163818183935182317156404087697252359281383295742592481639022015778176135104026499255953826090886207544504194186226269648719838152471759009490628500322602834037278799208453763293141701054536398629947938235152718885483745459056916000638925554914284696040081122777354331171853201568036405408241368690018704971968748283072185289458828778175516106234537250174426996745383371243676060548985818531213245732010628073389615748493839721503435582732126195265769902828819108770323970438190952452015826143995790277059782241192157368276488769614101539735057715268452697725524104698741991672062595953819728335555293895333641354533267654045902108958051891609602318789835539411182626863508409236821507445257628985938750598804523570589305285826253407274436696521408017049271045184964503335224642506329115167388725000766547961820985968807042428168358053749599917709964629562784354900584124698815712415712660970295535706652692165588321864809343623540201842147463303175185986686652385783404993533168858838517251957809076752771360856973314558443659787393158256386561576813201018661047645108817165163499491698244405309174438691774298893757040023675407324487234342083724835041227188940741461471589208224912037118776909186388892271444049373254374486065771616694651395202359546135572882491193851574212792792095642966787808710126253682758419560415700491499327248501444007516762872581400107877313785152347536157540048736412530761118425391486363498626540670118272922177987171908453038527334185026743735699234315674841548928974301059274794463865827679555627134876483758648164121836420382664375675077518307654615352098223121669644163453694779665922881349503107365576290251774976545304193544687430421451955461871447579712652891062292887164258103530786606867483962336467016556261749927634377342979567571480872218227955050330291886486712318326534698862141484665270149157949578071979618871936587639347935082745851409392998693272959003919750895721245245808946901834427171769175452896408183507295320352438244716859553008298487021340202099229560318779036213041524434438811519036260574529530242993841573046674885467168462410274335131751763561589447892294103035648077107803891463372411906834993329368736456598382735758982281075076262055734565337446789560203345856872848956499423495815331078265524777653905006535215210621413977280402183263616371666655467167620236450426921241449515851353223674564242593650296944882840735967544026951978773937414283939870938653985078931981437803931348710869608159030214803860462392699137695333842807980855605027526701366027784086932860946333368648056463717749936132530742386528694497940835141149936555062715517514565126538301429509950509625152279153614776148845972253292057051714274101478867496632251330462317682935904206492572213392252397378128878206112483615398273190179311211681900980945766212439045641305779215142075103816244900978963053658445530265877092221076442605626427732788724358970801910538982564236479419862735801612721005551010759425198849050162532489823469410689870426984587903689475042879290613002874989144061736872011774082259136068475296570426805845882124930593804608697315417479205383650472584308946755188094629253661028624199578023501420411996705557682482222535253571673506743825257103138799901338769283011513512476200986222355414057650746197809443324359904745178306674252654782404183083354568390131243512680048000647156553850979787082766868813630037504491173497741081416793397483171981934597018787003893795097517704768363154252222248155630876025326625612542110442278880709607391631563370440462704392878856148709125883211087956961776737969289625185384782594962249041633929779882150625725687191596460725863322179514285266254275159806613036034762650886436825069548861078657281121139110364544297715584138343313539078843596902198445629384118178794065142348213112916689086318786437162203116826824025936997481798247253444401381736151242924389102679184465262357341369942726305165176363572241953646496026245217727290704585769186442825621577848787445890745142526659122642339789375567458527954087762836979484890276850537353248938698285572516107709032895319492514673873989281518305763564900795474960999674548371431641433446416571003346676758891006575162803253994768406412111921752779205276204312632035253905399076218703297358847760163713433601929872790975574726332597906678008597923182135237359107355077600606857548773193179047697616329785349756057865430175064771828744916660900549721093249687988766440230630589055332373704985893711457446449838911679345813917532320098977090357364329376342802126290250354916870563314837207985884295593114390509202303867050712270533484503460553432812341218584412593378049900447335760664902766294209505472024539082609773242328282796079251932255940283440745689185379223656147170014825528595056744053591669999959761256138985097840644433984906656097755398136297797369989280729839073346321462469426908838358763282135168987211704731569985737269634502733765130471273458394757946728156258010003049867686490006592994731355046471718626274292861533121354117489203307231867856187703832431330578363472261723661566183179581167413878665297626943505494712028666273124560051382885867646422199161714413598771481202836712298367424096603606667076246274362655555475469885025974717364565872214267936142687448833456404943633213033595580216506990405288824912413958969914013547530300873477794297190664314285642708508814855706314779450932897292746319379994674515127545023844537910216015191376759839334822563852989509502522085495228405830777237761193907007858630835650872966966578934626683018899064320621007571014845461990211783232311363034355461399823743058626000144649510443933290792279267704771819666158960285501814392861056223008579395309333496367112407759222189747266380752237308642863569626270097945321961552211561938466232564029112695509718698279922673733459754434096692003502946648527495364081566499014537302479037016495464060097299284700824981271412064321226582977470589240000700091678247733759613720413401074165772421637019519782710795368657568349619611623064689024650729556491690696557157557121345145260028130784785342492146116304990809524118726025703745680970558038290888323506300444991247670312609507412471005606645055912718226613870596547473085189918528127324118096488581278989163701440306221322151101340869919490365755785435437133723625092751901912608857878262830449382836388654323551003551341421375851694531673951373179335496521490337232521130818724172913544570086651503750473366155653962509781782780997250718564333638356315276048834675734902407485172313362155488829783516134012522692798881499958323437217649398163568842081364747701089602452490826823034144003783243917510291169205826916842872747581178823310505444042236321369380275818819589956222003201240253674654697191725148381965558438298635003774810163292482427636029968282970069848080048655706112505712354848931314841955165618868935956349476153095171027774247832738437460759948585549215814884472091636088952642232882888250344667232188433089743160522210904047693043507214285566831072743728036941327961461502187257226941430145503385349593124209651376303076083667222848377007064227152568746446256464461115094044427498094931080132021430377207232129105717544571697601232855953135903694020442037047861618537805183429003746022937891281601183479753108985046842435525634161612990686518511167640903809064836765925250838425933381512101785707141518445343552120572954605111582279794386764121920350599246041679529834002731034463355562159991158807093208624018299619617330472218554012216751732436098182389421045870536167043871246812748417294308290742032184834255488300989289351896980418641421885131411905353545301849857905593904332694252670174955808235243891725149104802287773169651180456122663373006430346692808234241079405155453928341456582036105639317029951796733707776410045146829212658814824201280284778649836794397790143492773630783912614237895087315525355737710787865078829517384393133178434648739517429855969053529464237820730235969598952200662016474621145868274200814600080675956937466912114158438240870891181918767894956690015829365448968786544405426195224767015683471889730060164068822557096169091520070067619234989898152711352533950856658292889659935899992852474073426858910796054517418328224420599022360196545189565794432325336826553108006241183172650646112325298555595554900988501796934730243663094380607263285409720060736423055270812646302987638271949994794274957918042344017562052991458848226645461085396707305534738624757853393166760012970177261558608202045217496552256101613253197593707864807995229096794857021809363041450592423910178157824524648955590932315282492960680249667136142793111112910828462780968455560071709428128612990193953798034848741689726857881231903707340137486190368639461242370558376822378977410407362643257049597486639995388221266226549937843314718264057784221592384019002414485658325948465209618710275458689801113044849005646673094379106903164814797698102761894216211490992143060571929909766650499599657597842529863045851640738240847148164267894344559053146433076343249998829521598240288830237070019200517153121915084243193665979729749998934452691433809194412763340224823241862402709008205750095858825152635945189814418028967363204180040487054467326236701299524134836595684636944952848271121239447701778525702337406562336092727633965644748637216529006305968763536075314631261550436413849789871960863220247358909327750789435757140844579027756199010887351820717413993747981167647646314051850535369237981382069956667859978532398670056965161150470580849708614661915518594191992488592652982494083302042915374354454975550944411505245294903509058196101853217430139236276913342608120979568576030140313379806802171046638514871717522863202774775714172540383191198828495721320440089055626056700380982372318389589648933382646651505389011412081450980241351557489525572270726999850992879850606035899603703841139578771997106844373395014287413969100567548987962078314488916070815312397249261118641123392335601262652785739306422443518580865702333523424339961333349752303708520512966232087198545572174808070590067122100328108171834575643468725555984148423106556809237797884158803831500253949576335210590159650498406691052006449696640865029579338929794506566720788866359717192261394784042280261184276459195727896875735121350186146644058654214333242947878581805486132505466880836254930132539233491921771810876871643250555667981812135638704658541533992900100889435909945440531193001133811038020284583703935878063486427077024471819775136781963541191152125786312899863988368211430475120620542245872414921264417425760501980434981970690892364608780051184075557622616710666972184337578135994688418227261415927335817314873355885556442565410671898795153184465579363911286949755567796958145551841694508703651433282413310381440821340755992820853236341404607014036667620712949669038257686132644669145083585436442777509790989010077272304807821854650595618134238466937651390830743965098815712169621461007353234760798013449374150627140419787870825077015605453169725883453005973153527465488498522839368625335144495298983979253118173700637153746316441466690284165429605119006435070337124575739903797527355498540379897048738904175682146677957400136430125105007430396084910753469020187123631416179110963528846854538921527807762515808646302113330672636777802872455529345116505083363192554982627158869759478883673349358624747196490228244154467423774935431491689093751137302270887385055602964342783308935629739657335811744349587291279808153300738904027978654897492258668116868176691257950559812549994659960363164781034273314020166065237934351839166105385526509376465038391526131195523800539798861649544709921136272247465940533661047157214780229794190206486269999279398216293898570024297519264245454643722827695727979007576286641483040111702858232696643694077804290567003496821437969003699046144505534146472585017391863463423180686820140284157658285787423686731156650086029460153654185066900063266021038941721128851614699302124105714382799428473983816340796806838228934092098157674680989422001754699004857714055650094907966577780092301174564318487009022428544567548448557500667815278317267748852615314990967434672901633199474757733366704696333854133943383439679762979018972082604453739557599562140154218181522378032024687673891779258984208838936720002913997510401433277248494148108499376162595827651313668919306498018648528273389682403849893896938540368070068138703206613839866691502656270555394757518449338267161583220486172226698003105446608617979561993383838949673238822925310019570924567825800436473694095498418647936529102953731663380698248361897966697839139509462843883860375148353072393021551239043105542325434146108486396478622199417411978427126605773702833026055881174488260127617640377429148602969514514684744803248383354617844753050684046167198085342548532496303864430856461558590235247516921789346579459534390198135755563829554352369695411934954824623050209858138129718336210530297215771147864062200322824146409103647913698629356238381766549593915049461373955387555683024432983097694629982241389765277876790905997962513809964115087485742759092944808323705470795904466276367439590558062070230691863868590636730603802735475157983020839854408833655814511230076932250666469053708347984956708371259664351477340908398824595666810476571230941691211640222565351656512814222071738152512822123000226813052804953029240567581817078874564356687239202063032074934445595420102209254925333262362489271360276406666164680956784005350554050250395960403274458942959693219759956252618574140610484353152770913444011331858403061833266979075533990897610384741749734119292523599531909801660022550273488916753399507019136154553210221296127577746419537388913056870468445254102316526023797335687846428295187629039736265059256688362572735050172352128695073726667794201064927415980803990554991439475672147862197262852057331074712450070937883973227229763151353822508755859435735374359228499902154026156473523005263579389653298162354788768707366791305628639261027812182371509792135587142679977619133368306471275881501324731084575629506731734210726162894758773657058844948448681244433121479873649663721923550880677765759784554324598146130444609077825460911809727928498237530813213213740303757299452358679017439267178273382533723716071548601919757906292309182798866421109633837471196450341612202138064612759739238753924439659359576613697246232554289333199938189697078778419111695941089745340860938520502224355153788810406428792889599452231203816984852526808355392004719373590858744099152356497106259996805378694009198448617719898147487148973206848272520099646963375534988516442117839528095346614100838533598362760780643833781761484926187417546730753394557908465597509559684937573342478457287122819313129001188222873599251892260658692388553550415929460225351818289480604176455790637108146081954692315628810149086266812375780088488211208197782912220777601264824250819354312535094840148287045500277138770120945883789612477625894887876617172669288036033328346242697586273896280773275267491561675147685283565366889302561820389827983519944819393541303998875762213267393144948740440248402446715855587865882762424854478967085397961896641198940230005994500348271971016279362565808367968254675873069204026694854664415380388576124886024671350414984370520362182393066994299968422168238508288027354374092519828376461583614388449852535666907078727269415657644250046096262618754690884324537036325085340320849544489969192273397487925825244968018696369233793993453977432997861689882095492194561480873415267940102360197019922246004686528299554792549258056068395088323734680848384173822863188393200451377791715296758996578989824998407388807823671356750185226439401148413075674149414630490908773254276171611467117712777878246507488926588597283613816736812150363443281892352501987077865730664771901855711637286261560933697460628741169059389663533402906869631494237959955405591772295968078720315041360358348910187478799641473382594314928353433790993988880546540973197439643872190976203640139844262218280820001770600033107181406936923709572779296192476459803194636611022916171219047640753001934632834354422866084174123983828331544027133603985038404961355140541817086663383576710531842973371397219067376727539982896765455519444663283230547426015037275156098531685875967677762315569764582351088298927936593093703567215521809219846029584610698931443445909681117070525153743969530501743475132013768342271786977428063656191810508422163968855307308995873933126238938224504726856278949581709561814374042162457650655618840493149095673728144677030566054483024719992476757007308540003766545859936907175288015500173302623325684253200390824877269856990447217838828665500347157289461854910067484586672327156091213452570315094206092829112906343024538327597576590201814641022990885292842280394363920262768172439624812909701645948083430084086582648723269731828408112268165597651563693392639997610647414009142643494763294053571083723135670639371760356209120433005663921213472741857498817737048439073307674640349031445161014911074489408509924571903449142264205743215040560369138799473131999670059677935024957208903757118142847921349340744754723384585985801352678876115634259078905429414414992634131240949991131624377025094671895632252873729830795340341399619369151122603371100775195853468760685290663403315063128328731780792363211357740412748364803481411181666170654370805541063407632285312603127089048783993182127617604943215713313588346423697185078946929773093126050653690085043426772908107422777602059657485802677966534835588037680472439931574430610174104502361702458590942492915879012507575816529083199774450042324003439586548323375732468860719607639581150713843576277466017277915690392896014269363427117048697797283350117892868136206768573512058170625326622503551313175228018448453592544539345291756150239985589966128209078868249435024068757222484447911776817096108130106027428224616759946512196482943634197465890445815051387418374367959993346834047387047579186710806235693379351757126190573367126400559825447276236641943262222391481853124356050563993521181746188118279921374981104022734316214146224269711156019858373641581750936139098629091379291373071171553336715441124625662578590534148068881594564633063696342407548070020234742656524114426569474778917494250886840777499897112483813103345492340260142217402531271258014300661383617773060670255434513696916571028620768229440980028551078150795179619675618505846580021717734369756028853210024381484542319214821935501265251242554529722536968954772113738207859864943916508851055253702458334933675949715186830136095546920695501079586313621573019757679697755403441190236125159142976440509999575236718815111073098236655301813328339519626026401830906001473483169025085806523264019174476581965383561287076226730316817172408982590575378405438367701252362431141394870579767692701302200043044875170319485764206781184845927087441564729437746681283325923807751495218011592688812643730466303505415770979447700711162194942006113951025778028746657608873961674243246831926640526731252152642495007938789803801206985367012645308763501135708500859829967627488058535000368058699963466830635110351565368631385371445815326015408286442507731964814089173779720613550913888452583801798496473887747705618337001779167846614809483096638356050997781929488388179818366246019984939859430894475788231697156102161858797866964348321562102387058176324307905604995470003405280222512454366706019042880025262278986095412153156524222635101516214527405503189369547447755138140601088768056550186928590358791332983858744432712701739815525431909448652451721939603375163012154042419824276779487461890432692501680156145206140111494839712636006880013086801428165941169409121247663486694600522284756804090897005594187494240427321047774428195567312462131719284139860771560353996094958146965202224319679224082463793175083618633833839642576665581394152766691199257235165521122124748508816303954817857254976402660544836769921249431218219885595879337658329748419588401184671913868123688009509137996099991770975911219564963168418530236034747128673010588590133448975802244527028697871089588381986026408067974766703896727341640872391870801094790441707250207048355177760086622793565808920870872307462933210871153640873413428605557777192524185855428246456595693728951030502723059720430502044043936224753937409514449940362152101964647513243842893449380423248842061979675058846488520768531186250630910730695324145462080816758538157365622493658598720326568352005897330175705336661813773482910312164031885747196407914351774332586199777873962634994291412536741768867271747340225790408024260788146015516856461632722286808431046567756087969074293413655811004265465204341586724652232412880897972884662981756136930436836321128118516100279209480381863056334163529591367276406085474781889202150918513675732219906283236642646175391913485236940280279113909193252888599422444062554812251195227428614045872700630735325037035139019116650726057299028759931715127124308493123418864315190104669763305547590407155502783210874066125481688218380133783249242165941872891743743552385406953882244296907440221363660359182162809192840789648888305927913787633557588561757078465384280710925249655721668931766872622044479898180551812996104213473218538398880938413985746634847464521799934312268718093561748878386212148885365002500715081902801273388974273650610343102644982762716247436291827604325132347606578215236020819237068046338050009367855225947381241021639234825675870653870574263572288826643689417539913726100880527249052544574266404500500535076700571328704013623683958239120068099011890974027280580463148250078646826272338480922544817788925860948644845968530406029685040197113781591233571855535512662382192049228790441672900238723386788084791346728002561368172742811595482377717602577097326397412110996621406828105898843398747564712282331923037565942517730095175896166007187310136898705544472589484865163903424811837945556173595502621413057746008483183107617684068319793606142969713043754616659830327650782546586829240590840001231685304546977250201400433459514196249567684913168703488091611417774474712078498356863281761982439872888710111620389772835010194849290235745770354154004073032924261791706944884871448616465688831953847758890939414413036047613408183855437834570202100087459221665550295941670757664637557901311292419857501579204835857947680308294549742512881990924718257999868104167699183296886566624280351125376613887057382193734617282630404546802850924403164226244908148156224299902990365364367685611273305013939455208117932072904294644547454620798153818578641068624571119559096697192457216534335376020722078690151564248764743022222945861149730044975272516419426346599274521540696614614983061184454176946998373154663579185843061110004157640582495835631476543442527636309017933121602082485006468218609367231350822677586865095478916135556938393455154543556262285856924056911606638687199335228398362195946772710906353741779477645182104129370332359185761345077946139065564899108386281859708569863205252255030575503051423440785833267749525482745994461269588399463774573100882730111199394563239579597144271738324602990785176552698884986495096928636465746730440792889383170160636207818744861779328841873735790667116532419163872445191379353901326744629619002724255211340702795347298122384930403826886461894227443302749214797341585878456475403511912010945670207466056590935763938162550604680301059111894780883507937894071122952381909901114393709512858509200654362927050146813006250450248619498944732110053985137733509488957757394966612733947817051067317590319311825127136561399065550874342020323580863451026446395306365383526068833391324994813030008748003879360031150848171229556842038498263992073753994205075103687481026966052308986209876962827844186899560670269962852347801058616230685329811037634746356543869351838017446535809863415647692848677311652505747787484778391684717110122981663527538423373901312578350399783650203761014417179114575543110080333573277178687302387925701660812109310856120053066202207684767653471705414251750331678991769699895221136004789823901117449829815974102869840829113211656679832944542721995279219526566797538590324888591972285490719864789993931924318515811213313736044673984012946773069846605998899496870375401126837688921519821780853782265431283073235633926655272795110025113675502659731252981719941701297814468618226121178175471619156259966857142737483181712951107579672573677615708829158507726607724643243865786493845584362401565942898980770441504955514219672673637765112591076327374725791067141063012181665303899264166572945856653234552938731009412554877890694377443093495077879365796679469333696831351831117991373525892479679595524374224534331757949073524265518945165034014358176479400583867738321788359465102411540037027273272310690958517880061786760756372799372769340686682594339939078209803654498946450053143196077638308392688723535357046115342800939165959645106058794111746545198823440469752632429446506850547847211512009154795055811602492859944678184468952790291332018209371643090219595481986316712376015312132231132412705329631781842862082798087617788745532717322619194549039111109142352120677492066741457363619150203354973450146087682967580536277393190476033830248991928013849358891922269106750268493975384788672229522901893037994255630581742344511801324622180379518852717351144964148471995851796954923004791993584185294173547898899830299300416192047555423114102930179928076170474826645660975938286763571300399721946633031599015740400865440297117548933291794375874251032257730936703636176632793678173972760863779041572420304531342927502471273494355239825633942319120545665345986658399785700411581529029681153342295565300558913663385377358670127605531209240086564796885464298085433420459133620176205458327771690015887563116497018099906875712625648400199042730794431676537234026882358694353911116003732370143853754381932239100080893742515207366811262267561200501139230577839636695759036737716157778348444974559821311965300491667220614945957361038458205283587627819201666679833292512523888672990474204211480091621676861080454154188972293913712159504501043302074648126300164718302371112047974323686619301251018370775973592877995553718937569902370767100245099159741692538781699034275208784936676907405498071371610055393127082697257204774185324918239902530219793080648535724707533460417200151531703254306498979139809102312865354207983850448942607858885803272369372166064829164947658282282407544221961970583982018963739969063146206530140238392425997428450219562477054475370264210517856542209266539721950912564805332756512402418637971455805630430039605144992755064580962865596644060746802638318051272909834625559872609597167742603224865982270893911305572560362070945650327574979884979008278148947570141608272060370593535345636960834414298015062821235043575098928461134149009297213552461468087640554936371913238672325354017435647090803691360618080551394087499831564356251670338803746556137780577088515112504202262794397402387229808538857135287837514479435923484408613368079188179060040600732378639052836188613299263906196227316825797198502146905886852430462640272236073227446799377575217938310880663258550391253827673421291063833024709466720337806546762947010958236784608968282078980753384263655522422889725787164521765102569446852035793354195513464211535278764381992136804128218904586401075862222783347958618916185754491196187350847255510162020553161793870376056074342549607449321663601339186839930512556909425617292631366926233178891947161295929094358709237619198715892448707179124417013659766142887475958351372921478540256828003079751931557773232996152403985374640040546285608898091554686504272436073949725460993464499792440946767665394594306680816812398862621486103358214639046982954107499279699121409387797329555592769422572060645448200058752990168491927149575359662689665528636631020197829170664966819056767147648931568604923157409404048834527257713621498361705595458653448811482243983940570951573216468507320467677679482866575870300244337691726879162330059336737830309629256838651201560851097356121312172060270590690221947393292472844458980841877505393408696538338496359190282079688976042686535740491227397642948841924542721402922873561603286345265856447021597596972397634641830417977986967780577327991438909718133062366802390189504517015918903913311191249317522252747718781796935801395687311461507620290855962489554715214778087894957912345885874570146940913808984107695482665914710617697138030066291270875025310481618833593214695312675705987277103893164023649428068385004326178683587517167647940792736986866261781724392622815510448288420914623956354226696277881005677576618631690544882765945643124153473927105458942870363902380373968444371526934494077964242686758399235672305810845151250452985131275943610046329462073111910868853509676045459168578217603524092156732504737067797822576697598455652956315721583205913191767852950837136227635191676331054366417542110178708265489449220052801822993954420929305111076534704210659040756578136065347179226711064295619382916198774431890685781102966343477447666572329286069720753887121468363604913906805484632618647556810374877173276023425174028230735854481052663778944528388703808926539282295036733543471106682340462018694719806188676947345020676577858747868332701704067396933712423694293196532551692877735157763647003033782593014651151737180825087675305346635233622319119409652335858382303442441886207291344847009851668223680964772577817119984166830900449618387123998013904635273163811233839686516558334125726314495816031143181852382066649891400412697662801314909413248796188216625539996370602238468381406592308735073730759841528403397741464458944998137168491342808771231013821315216946224376885446719446353756899697322622284976324271872654607409662734328681362750962377783205996054216629217363513893182827643282200423566492177990770613749412664962842430759519629188612016435912757044071100396165231991623010490815265522477125669322806393094781602566175454706383155321779159318434642532667076275565437345778234369410081188085147532420724245935939032649907410532921466852707714631804804257252127701308049209261941069495369584242210847648651235282584407506470525544104659333867270383319518551057001400583798806418001357379160068542265475130036036239117127403782007965894198898293992352846412801987994085536903962987464008330338638687274928717643057982223041157871766167435408338933534691010906351286504043268888919356511059269382900614815128068118221225250838154237386615890715037537821567182183481100754348283723573081625780537440433772854986863958366147732199130211518904250327656255173918306058899524431517408531823670225790406165143142264278959412843595323487052420401072052428584282379263134566838662311397485593613571339233054233892582463758372825330304327153566363504650652393651749404809783778144200863144253032175477051364481163495856184199801988032558087178134710378674561572773618104174347669664700816298483397246956880823547590127452710857949731594158682508213202388180149771365456859222782435689665575037526921359435637085401235170904552138637252380123485190340631278601635741070902885881095180280011246410462332280880096484855711123576453656700316365845176151324346163968102747775498627210895668954334065640424488902221153043596089419828654626760422111778501979308378263789652779078960538828498086428237673220391246205732099726617196553472728649031275216622368157291383451926823011989821723211899697409190504804298325692448188718105758122275071378510401220450428281571239682337503804015143655005841775785102190926627022008596170421471145595462032653063154170021333532818914201965210353359684605753096103274647906477294183484462979143253260343070355832106712978815971856753945059095453496306061196010649804303164816821126102457153220196663601389552207786300285288734216039056836876920224378198331979815440656124048234108288203459719257312534110105658838845115734216932422724573727216373391302373788425974651097842201181603336405624823986107177653250930731459556052070011386448002329850467955505942000484936522848744475155933399194693664759557991604943463679226722305196966265359071268640990995433432742457869448872300170780779692196301218309992539323571512661208482568509286061167489038430776979616475813232363360221579004954568521348230514706647698519008282146336920257414512714899468372141897338432183720884404266447856961099314328063166883211736638731746351848304077378660219161479777697284079688598327835599723892129658859180163752174057436752967806817476399802736181520716246619750223241994028778494440445611824887492425687890664406897065306398073546875953280934556718984454401469435252598192357888839424256433070329570394775731741729071284941056624249857682331133876982236040586556673688575302142514773345878540744770847433017914018973453101907104675000561115944330260794668204349618110319606424811415628843944904182601161941452636151800982171858133276692461100401951261374633864668980892289385882988826360146898043015292182686680566519850635241052062978538733165281712105276999272015388000264135553679198442862719026111935369913185251669367141385780926177087637320753641828071205464772429380570150796046353856332751733277088025843971821007333487781288018800836351625713697066909860447043087836437863234057289827424051460197847842705701462270434207425320310866517330604993780937942189658301503007386052723788799231664688345057529786105489893267930965885756801090684833837672946126732953718917470190526694083059074208532324162360918122485834393847938396546047729347372839924074903457841405746172958927729853676289282528279265111949898310904885680160102072031099369627183589170763220427514518897357334338207645148964013012131188024409911156540147869961288870678529890829462226617425527902721948819473882450471455296415861397238332907310728378728438655916070479192311128497830114515340000117791688971735692378188752044263219261434818104135242171718509145856138158832331555668320336861324883989116394785673099641237002442302997058111839401071464652338376651496238506561714821804858202357692598916633577252423313549319120297667986075836904368046690204368515036868594335239547570254008508962271528320991667895737051111687776306079119306237042991997908705587112224357891806767287966333271855416223536041442602408997334093332674768380031543970587556872182173092008518526207539004991283766507710956987954865718800474972239902679467487625683506340793931785166477058678707026475412296539339675772860266083999846334784112443911322550161772808901280619809529016722737215380201708357575281935037768847938544395908923147031601178855778181746470687551064086243188976155054196975158084602451406627027221224244306921253271845687884764320450062412022542242948734693801614975649681772190568521885667262283823698671250065076571628952018394063077583153944560407902348171037895988243825374289251640096760474909235771486207460317919633368431770277429464637011722816822798872326959640092178319904917999227400076811248865708642259446667209486789434025739516930174711695042877644808318583194492987347800689318116319873652662510555798389775874835958006552501318093318054357351091795742206389098017830618180476376950151205931328163926479073862158677525481802860545081865052456582992245880210051971335556089607216641891101427306724187209375086381097037357372364089510253227641683324485196901557757533255622379101870940157672926939440334752847701625714687433660130689232700301243552685297202927215020575129242182405793050785805125779914350454392099035883992459526708926277639133722888587501191480029456108179650992441436628082358811991306702740003077471343698123609786185385390844831228398740996469664768300129410999414017080779571341031085240787082226532704376245845320198070442871728862163802363521386568293527278846559823690558476163684376164984441279162015157815418378555148842358780073358506557456000201406034409310762420736493168518034310609537841513026033791990556389810072829279320164732581705026578735418092395727558374881565172195509265057909319782466448804654102605511790257465841353979757225154957502201457172667269088096806179842383506102469740013847145031021188453137167868540558062393370143622553912110947066232891720076658717710062549039041361984140692753465649840206309489863839400403291134960885050863641839974064236455301396310199943511583863010062254918942134977442077742226289542055008724745238814352074856810756678082227765261300546583316002683209458657397573902959343727997203120814860982584218528233305079315028235389158296121921361512103715089187408903429396405988353868972450241478484023483932722669968162522050134489368745047270099381054507400326417951618033299853703184638558909009156970616313589679919773337858839646920348232077604206907639115828015310358865529541354611676387450714170041658690428845322583121457704414118794395969797875721967420318991860383181097792820306120898460582619328241919384323698397721457932712530955764428484522927788900922338040520836546795497984197837630264940329323829853628247137771535710347245644635000034380590022985708288383923778190532109480854588180687541602220211851148369679381122673833762836771153963082698455072822229980045465409178714271207436992172924027930987819400817736108694665475225203275818857029932185232764306919605189313533506087391894103625743210616287933458474481158901383312266096997619910214032199528778040956337907030922556005181060548180601336493198036627609493530752688974326257755194654618633758483735989284273998020843411682126363779222372217825900786356604399088839749445188185898096239327816202969107555144996421965803369814580874460355408999870069383509216765572482180471290638261567593608989067149558561826716904713752190690375083828603900102795955364203063193385961087187361374724284126156095102276938902421370973129118460274592412941913122743216231627132914638156565818037650569167671831874989538396860465874760120097781333943259530181412666494588717224347970185498812356573026582424322678066828016140688751568452217902868427924747005236970564596292629158092031837386961322999673836526291425339234018688404573835535327292702336857216764158008408888367629416790107631709855762426600353165677398285361979361193928798683249068382710551282405424867163918996304274175808618498858894511826830487320735653955188568292684950201934204615448923321252442395980362285841012738116738512733313168814474038519474546629694468371589459759923049252570902642796000210940248541757031339060474961751221806657709645677913284596352554597856128118305087235153006746755319611976683714852355845145514765864308844228432345501856226730637233337135491990471445020575313468409779710327517151690328261593141185118253682315647567738031856301863475221347666985606435955868532701330014494494705879416005466144314235114589010917854392169894218232649700526283812681042561185744275229164717966732906088809468575973668816383712486334327598398686470073618170459083450043848962767624396707549797513865645698239510880389365238514036338105753347043100287539043595082586008431286750567840970018233661482356458354204644537587363856678374471219220254459465769668400253174380857805950990924738991137958180116391394666374650569949823330902324250528557294039677207324509680388864685478626576971757570038613174233343305270988256472362947412068735818218772181832398284071394942739229855925839566741888547519421027430973482351052615057139553492456845811909833819361688492456580421239571914714157197338190208612696923277295204574247201579388231007120750303045301074426738396507911155285430228515420194407107444576645670976378312896427455251986822550280882461218405858548515215494677981243977903000341049867344420872186048485966168769035625595597257381643427108174117760237181132544265282339710992651780143532401706998025090060367635261529229528836248741082389261432357979263865188307356018146676681867808238079705599896661928384423592219202831225257391638580685888033983603817744349454808427733800935011015649074613574979319527425701826391410273217324364110096451254960312310258574533384352251331039674290895392698993243057984576312678320256396232770679214139322941499210333144492483868046766686513097153806876865299175539810685448577008805429185980523231357254338441739213907926732620354721252380266251502268439406344318954795527657639181979870636734621410557031716772898418002722431685045964700906817743415217832405892474040584794747307544693448140798752747334486933771680216672678456937639542457785878824727363665580615542597117068334982234946288374853159442418463865239986774876902092375448211505422825928978114137833075019030018359307539975067276583527697299558221066221738386489312207176872469738759210274492017451620531442105362997789439842165976150571072859391205031439668339921297878061256333608771802073539944823025306065342169206529779199404884456655411488285367765335895077359024751000163223984225488051661198588071382720836796821509637794890812921147779230837911560260535259822459568020724481454759529985966313347695395530002036236393725392324249925638320765353394702380874973576362655240527139561098150213209038395590949863911027381168653878273383791091691380054421352876453324505969171096874843486393317637981819815457545842530726968856900876883067892217987544447852595143896661909001776403505207347402696283147046107882523301037614265365985005027231671454151622664509460796632596416901389518319375835927815456266026383800481147550738134622923171652516617501047174391147084432715484871314125166139590652026458481071997196042869836280018775452366645926530612975680535244524012607791520590074580233489145499961017616196155721380153087018601041220507008527787681124927962544164113950376986702167858133168374622562287480261303684699023621950191758206385625982391283311679217477597718392301659597995397435109381317009062725817622418629294873382364564841329621308554713335429220711336467988542160917898718082696331645366357150246931763741078145694882850233597109009090137283236401904671321477045080281600468781572916565804792322511365181719643192355419425971834547308200302427131211865582936551693444345610960125169545138769448652519393006318836547182614252617707983189047970339417394007373233915097472804379652389415622993981328469880262520597477303365907803075981638942338862453561665549155669418982570083030435325511495372872571224673824059338527385939035393741474036674963628747259148070915777850564416180856764601869341472544452658672910767886708920915719484389594537607935962004659330220314301173981979140050290417551796593201130261274788737080670527359776835263733976711501403457459356759418405020921693781861151645105980885898832033034965418103921701395045091211132771107452121331783869257473220175352595614661488506767766315107171423229387392823065321844433937075276726755331136315242558125154392864498832172358238741469795157096635468953723274239157700620395267835062530090739872578353286623246351101583753044641507508876918273287243029365901591483911598661281691688699790027672597281770898263437027117203581789212532235840740895702945771470690557990565750899740008553958997433935766088055425932446649365171409696850834370074608991633443139992405463472379943845522445680879686313245948548861410487728201750149445283156069612322530168533821742745240986579872998444878380350194896626281167005265370828136454564310892093784473604840791872594976907259048911303027104397375905508134210813479668021743268042139325669572127239911256279528579016551188165235994080142719921647513470873140733625701962405513100533067851693607426511458636981419146548943948838298438618499766044569788431099002224699882124811174499280926829671742975691016702530721400018156013208322369321189579875623738393839279103245342446894631514141331452670533429400507882914894237998362388441085376738183051072216892266867996917824697364283916932199349754950826033755070733516023858349168853088605811811594055388297481413162656709680541859748640915095804574134501315477720580266261413398601640558755897020352330133080658102619831322787858174751889934262510285117209959046588159594194297381095411364192078728879472999663867946502068669095075165227623671431048344058171505341825399400832010558607334856101922813622321248905604236491819217992324694676623106062979577739030984932393444770198019165647985117058195714765330906646726109175944423724737988087336293719602462827135403533545620133502091958931181221995347513545351137547469464772064978423173351105782789072966416759880143512140433542336978471062283435473189376373816300299810949694717418190533771249075281128038021751978151970263916120643085491385256360649711085645007561289065633965790103240372428785309937764942722474383808778996328498085884999848658582253773184098830439763477353437890031334373299201535649708563783358270421132616571085039398547253509845534027833191424859202983070601429956768698896402825665738587483703371272053396521462311144748527495360589324768594051570019969599380391557158964842114723720512376088061852087376124895793296666477521441226565383047576557201620458456840217671748065314362277749691051675043731708448303684365733590297583074629809215262810370518611122510607217666207580256273424711532276411154042643442101804151535375856674630868998042363997739385976844306490189280413045681111335491338992580772555363663929901729152237631525571622298645356667252177065618150198703406317706983667982277295059067324888480430798145093600716497328601780203927857933442073633425340872083772715293339209893069014305806724288415275472268121907278132562384433668498650772642106109728351459527223254908426063800764697895780591177472781237020116855561328536346962244581719341263888661759183857881934530224271608991222894512046479462576138259570767927513503210427678132197940620422186123680521135479415788491334235713355688014881613643404060204604435929039690945357855079504208615717745629775792727876151622193222088239604675797008477905329396476207223708106177739442264397409705228762214427066417186565069097259104735249959202952311367194925500375054910899550553754046400689746694699635118299565449707727463191127067721878367595395317697914996272063327481577353202800331856184892791219342725064003650334401019397859090359651356100801107960570793526041188552900384908598755644777208000603010566853808734920124773180365940214859398464939708211035122919665073183955104487029591337870934332887573618205653049060870598809803169956575047872988591678840878183108012085299193236248967717525423237258282215553194193454903536050055091259929935259444166778571437698094701514337055034698427145266204027520289831780170762185598558851458624578151614957944627622701210591627314582418804790034698280830724913119873393774767672594529130261728565941381360312462214168861272558089400659401734991279721557008204502390700322744455011942896339522771081711150980746498445210286403066535247698786254544464308854030189269537511667917343557894904162439880629845822679176736548161605620439279890891519583797184056696102988093057245026587724220554907223658367720313886381198477665352180354688611761046477432597269749341041153286674051414783365542902614048155010310069255354037644571692533233679079235207808635234499860178250665294516587279824056349522442937207853034871142242732926999412548685749125192411220653620491981076049751045738950093542577850901147701502987066665707275824103032552324067466532576288843618438687587804034993909217566196460969784922581408193836084362906853290203450400790215747466490520491923593303630626325385454054995879040631057874373111336620663806326814377554960877779719587023590048064557006566916779546870984116224712151597386574163265476729816842317674189873138637850109848967772203335600869207870736070864446760035487490069350933651654503483850471740644665808892732669533593852690322353916628004333212506336502714698516774023631185072414584496433059156437578336126621792054830339635116323025545395285241545820756706778221726848454312037129836304712460404313834990655990416201019461611805928014809144064111446954060061653839597291386618324893938481366068696619874314413711046085214802786519134808242867914708039287547943747757790721702437667537108658168612604054792378249616311981980253526046042564647668158761952643105431157740421338164923761309910233760235221409721719579033413379796666900262343684405189296718146342188297929469443427673852252591711830648067301909443497304596074769199491415744703520688449123994286027955375659355991607477492789748953506194159019806465312821169874907394252461692428432280815742479763896096759255936903118906971617619778394144671282059490279699078330564940441332868091437693648157201603076402072887137698837906724378251463731362356086299938540167762459956872203998754925956028340846142134661399424802078096370189284016095622944417388855035477726902898890861719488568358945056277370676406106270275922207697786730273090170435187039586360572261655061807126452441788873053453251268027811064556896964612584447928914742605293039306572623628389003824565049722730569138247769155272071552842338111032986341518984110420085998014438790546704513273095594392537806359715908767701478333305011312284600332062061306093364027367824006757004102085770441445221246971748877488570039869554766290158983496968913500239563141021555710933079372338316519790511261838910504419190742910524680864872120991373059915505624729585527289940337328208872470766480282356331803352061570487005424044811771987333823879051354679433151663019938010380038069686742864690834107165699189500613119931106538055030843616760714732336327105376338923105444725901214155571384251993804256066253515869869092858111026297100094048301572402703063527155854277439786285063955735440193356967109528183622005711895670610414821281763707078203038801323542606682741053352340674697943943215467404286156038771031912947136664873187351730606481897866313849059540649608552605031535586478774212550125430259495702390153112964832340325730175825656653408993693457192213497186981600221418696373963486546684652555659229081287780352566575429554068870885074115260426568420242693005427875915487006439683837019828463538457465686558921399991913709721538628500668230244811789262448515520707838563191968057755929756061980064405058737847802964880290806922902488672224930720334452125741822417978097301114788940083928040413466525090307017287773209530020656258017849694202341639709734832288766573532943826124500497912293335155507973107588227330300796326157515161734805034653774801862575278732337175374252474907003447918776635274619624983419152306344715137697857635679680541068755835906549519046599129778738639262944751715412075647762997536074637235258131042928542451742516146275036565425621356522288501997998517525087229105604345251920838117739223017268916705312606407438126598752512739163899262686322098806139106798102815922651457285224390901913939458683554286834591330589359111241345207715054409918186346648977688005708850860103301035453597043537963238207452457301027539376132940671635623948370709935847663246071542432325209206476937424737463371154949861774080479386418913103557963278365106282156150468906413250526026039199734182082720093033163564127310055792910438438282516227716729666219966494022353155635732723748753083016467325372750089766592067930544428128191264706546063576477202824793955414551448822458455447710357131446896813744316006994307527984494677049422492303247550900140999989547789251930908491672177960600221335911877443243431561187345241114644759525021186588552792656661487641003118626997931769300990945727459718976840200258560800613294881550023453018152943144951650033881706611728027302100955421314730283552194953204701833159673327202011022640131503559459751570765804726965929705833998084579458444278584133974871628735438609770789855747976618528664563531832150711708101465221206989102758844053195884106047747698889575831015960226887339386847322450506744613775546038647481717965675938297283805572744275379177068163747103903564401509560315934116685000104521624529413094789688029958361392363420474556939483477961440073912715896371610803221104486402470894982724793630037850801408509909536118788271593336623645896635860272076515064625784493902040916980907986137942121532243745929901602818953756549914864620174366711921142525680384303043276226174382578597097318863687166464052576887016626087020498547785785816289742296931406345141425380497656689564388981776730478902024843711965549507880473173284332531494421287069404237703195995923859028549101093104271781540557232393511657149115157908241066937065200613221272319164448553821327745181790746014995497415605727004695838118864876274363178670593435022985804009604616251765385273213009639640682418785576939840506846288508609987740598265297882266860145184694724450256041645333082000500525373574692073074640026008685823793744936077489277671708934745801655021985314638800731466538416715284769339727950135986108157858741448643178602924158656477207115651097341407749263353921167610650752379399794469925110451965489311415731023065956338797577397548028525852127920772824548259607482176027147345263727216532314716028800664925579556099895588070293152754082432340855913655540256701844067902549759682339992897773563514672893855379316704588617397100387465719664171620233761458488482184489845918777890582590169364924147708345259840515543429865861544798349384537405315811561774839702099858872852273795493794190546611069858221782810202210100588271623359463268336426895527191781061231136477811893852913397276568689713470442035093507028464991509124186641600690255504668311294855614835231627299760758675616130629883389356149063211334861713093321919504348552440116843609925720453213056573613033618582190026296973214156838565356795046852370796841267607499034262497052965602605688001853134648411071184405999506480437900428432816789389048944137675351073844890139850846802739879147654867586911060770838327477751961987941560995696054381865492362069512627460528271554497190260349003050933582312784490145909573721482618853187087978085739137575881590576060164670931340303462571357182734408721406981485003806020261539826762488922207101880625211934417679794819993423293342604195506979205098505648079115244317330236777222524277843989601748005204227121088471523187349289925459805583866667357373060063891577433418799130237230367885117862720333592944424077306629521538104672611994101539052025869432484596203515613999983073244488826225973727521486616917849647837965500648190568347069119348831040879063817997969680359943049465025817440189153461556206620923796283333322568770829913005874072482698274835462016006582349342572916557163598927222897069787411061713079464890074299302006082097950913583894345576103531823352740344729602827930187318662466838891979724100056555520612996670888916731966624844556361749679149207259392351424756469482609659311116296097592268045101639202410299968860002901425787009363347790840877635053497936720621513267582661020845010368952157899214764338041681927014642989438687157752759306076681598584459120216973581260620554119570928296700351514065978997239948698805243557176529406960679065811348921100343580447538041203594987525142639505393604414048599382846481879871244791191019672336005543533204069407923860466885852816607384447456907381638659945179302134762930638454328441006834345977035305617163741130175120664257784848974580530353579192870891378159474926307463719053546559021350684474230256754873827634354996703240702904076809720061545550892601794153704028033837090127235170436519894733222498458982970559915875582120723781982548439876627450606725925658420517348238698644923619744239612922024740102068967603138333562122767218665225093368608083545863053485725361598530824990034823750047033268967657906057684192763989264953405171945228481971514814754693338862806852364547741591010755619795108611726564173421463514963461961133884610453930107838444641160276951071970014822901252963897142803167757598047851313126391489443992904706144713630760461757948425838665152336375075048989101653966793811173505622021614380446420543639839256463733509938730182909536312061044459562738029888622095775539644071144042922061106559041391720512060329275227160467895198975627511005227162948111653620362495553010158368776575141701057864973564273468921484425797864940630193849963932329560503929768865361277804190011491637605044629988578699960893910993061120933079328950717390680233456960593965224575304158170109975071555724326183712733597639904990966176430093574614425411095871433547517641503116224819289686981176217996436153661679557588845074351341904476531183267070091223804877252311186994946890284771169106244417014463739479166646470613371982555543021078603857195387783248469034190950482382401031694165094116379091576798343094389777585613166911617133570442056796391765769781889603875010232884874222643096578634470361552944113766631131300499810322417900265651133876461833799557582067030705041092913342502309320192267609516741612359092658028526312153588939798346651541128860382813715974863346203245672951763889475097514537846558693756913072274683465728646314490596457830524228591872489611929724876991072437919796264618340282629328320123149580346980756021773446254894442540932065708057465149474484505928142480183323099520433235449336246651801081807185524255184560432875767246503268767074381959829745568006171774107437089945156543571624191291078656957467319197471662011169031011767286985574820424699545804288251397968094876358680675034772931350331561622701834432786694591685298118411478948780906702604181310666505068954029965841348838476185261754187177679682332980484769652313099415815935572825160196167572677630334724335430962945965347550200076641215875367727967758354167573341003990548014022345053229484456235630399884741842866272627142378746528893829196345888539137486485939983987376818325468866853100802629064245214559999025505627177050209009343519479693852051875338827404531506496592938729990794930559503722746046657885219547521959597417423571793481456583115051122661062518393109517807439980883583432019466384162208358120850944790225701153956824869131622869726173788642379909363796821062081835530634805879100699757302449565442478013745358774041977248134652428208050361762540617560180331807736033443808662721790611531505597679376323797209794760134620985393212740175848673260207772972884736643022443928116890235666275676202072972201013963353396423958703323872553212964191248096249986538091466019437814496275628604841542809978470943124595192756213190050363797724395928165779782702493976657671223556249746290307170346663241445075854549629443703997305642525391807138645833514524189201516787652451204337151683557895171781438045317980509430526982073952465386942555190038929146878413200360229446425471980045825355691023885401324780952660764085095864608287825499329487615279948560773922950867937913622078175738565844330716315104817363411003743423283979077305903249392753829532760803525705048985462305511177048202027155133809883652326365152135061077013385429461260372179395683161206917906003343533350250815535695126135188402437114058954551863068689558124548929350079460256091602089809430680555732343620784309049396374356943187280130560224161152337264894862801207236456965073626379477702509873628919409952424820470273080004982082212931363995760647288092326176455969680976920083936530619348763887580480322964376309619915950460719029212670856082725476228139550179050013386272664815692649895164115152435799585631183465002171985284828879273287865255579763466549019147708934638104593997686988131398288111903330110725769824495383745879605308740428004382265389385953978294591866916759935373843130107260405020867443916142011917894065888020954977644551455043786632153816271994381030648000249569035798493801384576404872532001221637254447218388263012755701786049490890870354244831022678955597985476463970748186793084428754945014995692595567447793958108204091080607237964785280140681223771382775707950278057429296369087824140571232111892147147989557190269248663848733679988086786264203497636450769560734750609413560478162034960986058257760799512150015055619042863592729636276103316214297913133059512239738422646728648647374700439223279030647308582608917660285345282506672229846040361843431628958606507428331810620325409956214751444315671833042662092396111105225848134692541752390959195622365544994107149696009574917324850305354218540195699384168318657865791965406281622801851493860181226844550623850492839981854455853298575352770714194188837993458291435021899587947918487266174311921060820514535592565665983072157768044127976289493380252159935199221357088223026700331592492347455142816509768565991672330549222231193488677205399446273494576216812377448583212571399204987507225410970871581375506644751843637079561361077955064454661846697790371364303744680232492674122845686586571641751793866657587517033708619495200068704916836489237226453727308803494337014190709099816389866491134265652770895521656417714779716724421032811091172430194152052120857804053554221449616008089158579286132499823846261695606854231180002731183545100951375971630608993794715731577783264366610734381219681815604749073838646787357730631625869143997202295932919580604298929536830666732272406094413046037203446196558703859892375967442923751782159935823988307398620412859795225737368941976104201627578968086527861637915688984968632959129400695838608181146577300600000856347501195499397964480180327107869511016610211943564822886007896730737403332173096676261277213527653443185677330170534697890493401355263992209478382647435811829417610024069411162800857505791042554799663393039563969272745379110285545800023649947721557771601746503759882331805934005428045818121806346859463934502356786163004874874069464361846896960082172128812101915026861700098822967114837749562192799559651537866223700909091324992260887242650771232475679116818305285542717845107281795770112602944198517014777294507071405886809342321764492912784682616787022482735369649008303088682841016595205912413925818422794787118806337009651209439484161123182930915658321520933988352077209679981898316622601688284643502630466212399810977031861572617861797477743322728627946427189807090549169627033749239730391211531338083579799114419407295360622589237995070729445241653727444216395719132042976518436221862380723607497091363114091193069311463984276142341030227258568162072410736602704864279529361212791938583509325480686065169695270045652537682394400947872616744178115574510838519916253228401436950773953297094915258127689935767571556550065587463852095368827054463524816183762182717712856647642523241992876677132775428597435190427053218593450620245601937531450360408766759732367176832203626035897586135933509180678279067458316078279073165675175680128149866481244841964077526861834198631922584406047738755601690644121815808790373737815862542215523881800944951196299772258560608209868629474280490828107666334823730923674579869157869547331952787446872404646079979652532442936085496842403607380858478371074299501073884674065744165468686169846727575671720372423103367343181774641599216963767709963469146723996682294809160336243338099827615977935592020405227759402109849184011060404665015219408806459378213239226885189161066633438553634548245353147860633533145927558144232229366332283504607459942653689505921848786106373250370052702974588521992487320929123801839326023137879452248864338767989584458795121308409207063536471636305505798371618117390138540910466113515792831468029287280610246404695969660954845368295755190410001360782438492748048062786194269574211331128863144233232467618441153690845616514137798394681659958334033320708190860979709094763575364971830777652149338405990900617359866498166952974478985411765001750900076334335110121929902895096531618042942483841397538766450349295734422438013525348454895531376815905030847475750204087968583937157862092611447177299532160304428789532305868627126220407211298498585573428271777763438257520002902029366689416374800679873839443760548405133718595030563012430527315680100153062699514091432996623001676069258200740108456131123598715599068935743833338910661737958944121927106307692591016211122470334828310701642634143653621223361276518921975029861338441128197207318403246702389202089166049804480761948413018197483757104901891030091863213754294316160543033392339739884457879134515931507080523523858596304116534276652752794789306591792898549908318232092938535953928230909877574416224967827074030840743996773226004462923803492456408836219555991243700374423102623339971146131214973896925700283538676986306397977676438073194365954092118590348355086042906844537867733606753168049729570120902312043431450649932803262320359398132320872840572233595050225023280686773197682573672099525125394475355912601344225854299687401452691002244105768321683122331055826744844233432540648474877625050751019483188890935840057226324430957801068124511427214463751146531271073852285111998235722879924986251924467184705355518664185898858031280589608919875362218145549009256278959119157610110841558798865729379156299797520555982631739661704744384252569604212887937916642483623407538208703251631290286136660339497301330191645161739703110311669606676844075912172095600342725398602185857167790727747103273764851544401011203607946746195581190501822735567724794149664691315819636033880753994482894357694158394768811332180916088267115108798965002787687216753324280151717548502695900882110948191554543284642373405594368790123968486503116755601839201091120731023731849048237076124826341769557080809717066997035055842133838856991664016275175420970936635351736798936279591595613071480360212532517941266981781607059200946589669271784836361511796853594790457769931291899105542969995816074493963750098939246324374462547001718351695018579071685973897278467831328714670796165620444729364968589895124989343856074739970427795476936477830663078985572374897041906801861462202844669662450350411392198886309968690632985167853034484735026664669029066804728324379110648023320067494465520040359053561055462390796187623783491956008941957132333888138765532745893402765363125092793780969310354472165104322176905995377730541937215435639629357886634694301994371883797900619405064713829826519027924324924493539398141992037907253499113892444025257823359790197888945867254300285181992485589206582570999804008666854457388760374772377113802718548474683156677131242753308469216122771968322253845923008254008169586282460562336730633723949098506287731529523286413066504736451241492102455400079814783622906510186983261820135640654921994564426525084572217184954464636533670306448007993436977776795394644257434202610711368351371260060454967309013609502374119214314893870321003301720437208569495568935207562524404080310916023856445435481456213751953915392565214061907440181861545631026666017480116562520643944643352781056576696333062528486590550392486179618656049243672195039180604116756158617200871280351796080185563461033017263382969091711214614786695822560040254514481144801123881120716816673995317751604054112101218192451244788617417361382542834126969313094791942218924767535684378674466954249542418944830853578078346050365976366976370638724345084745329666252333532994179786958503368236142085356619538200726084339668598143515494521861634546942408360730430854217423995338032766702211536564742951505052467292626799070290759436646930340295864857698545245307340710765995362829817431214604450637382368818453777866077788133209469588846204671729372302779720768689487191764200684130336514326172288508486056252089544121309987353407976285188957342937261890563389739343686163182875814647797959334170942043697241495538987972167925296739773823786653691595285377259155356930002462783335475725915499047733296764968246479085486198316140112891502303829579631228692022806572342471086807368923618746361945866658446373343378289254636592183255331452410728106774059644591773108105663229351284247834982144735902906994262419629125529246651507353515258425683482475178529936991775638032533034059134589260171543925122928482446875383590606415527195659826343973536436432758310737604161374268204688164951779600462206928234076853134716300435093125618739832468009034170382908517945001567861296638971369636247815566441475978489422226007902112857995745748803131618534549809709666339896354916943942471816705727027103836990312796981902020169939182460625492123129115610280513657053763240210418257867096475403377469541485893905868166215087931919609243230473669920915837242272568929895123062199351831349276034849610560675872818654317967041178159826399065002030531106443975146931931902448319968245738660259147852018923717899101750688759697164455423519888573982164559114345404026526157549089804088124994935285686960805461348597353975224824597561439098205913176580513739844024670883103162424136343212171753269932628095791601800718172887275275728468072701544878758341876042893723756956015170434158287780444257387480557027815058723781423008349191097328461191884316484970940743100358981171917660390850788901008510505786985438944796410601746084811477326568943291065298727235417464367671022398149615194325238382069841833875829641501919973805877252668492703173809315504142659277928095160270551137390289944716120815721025791775385409207881852240999026025472122383688254510480603767268766782419495386724329301619883214492968394297038104582695311066800158548221976873843494576084427351338861303007613385318243771274550271872536823123261925622743265624769336070271181240075171867441629956916455525074588218741049163772280554984015119341456575113822828478480748858866967627342910050566521561996704608633887294467455603880353932173766809844152023994599123002912620462971099861048919551106952792784594157417161621892186713965970305305208288831872873816407494168288123664872826268853461015164186157613631524308591644037361007746677630498407549074421777476990199460841602157990893073812667006500757365193121663716543484677431730018112196809308971726029256602736036815550666118611687618049603346539144254851415701142527041988257987729403797599386767099943042813379747859635821126696530437149540538736637473621716372426096823735098767828499011279334417176394693790773201511872240256988295847112361426459470960951803715653717627188366370896669772735444003186714039950613081014958740073125157470270249218867230794419890715419420539976020270738843318090882708642024732268466015144381677360500134982804577654154346474982461405181584728614991264569046609048024015038651904380641249867807084627280488108271572189391784997523709198692334149399921325053688175340349400435397335293486869384832065154667005097805167418456414007942570216036133921568377502422914825097065864779917520119178762397269908560446457471577897508734866781337538153457699766029079812929712844267413758311961393386532322397880605743645059259362055467213429808761079614911353031159997571251871827486824358610771974184697121156267872096978045077137933227142245462694668635611636649289834889368477609886850091584739150986889374682727380572349937013096967411138116999109889954689337509923218462104662837976321198593900605062698573701571426451389781142665459127925003069007083716983021906544002620136583389951689965484031608226578377208834554816910935468891978474104082097678453166342881274100949363669695619105695578021301848277171282512261294151584780739906116000021562175615336172069459242434955428332006559895220383453431105512025208423011407271050776641967157951897892948114408258740229937283469138520714052741654582044181198899774228629750248215079278865667932402792957953821456608230537694866613417781780155356327300540129033728351784848307031802008343253261745967912940251073558442895129020831301721115585149149881223061432030965313046036441473763538501779401638325641953162309047448058464770827773497320662213664907063999082377585687290225996113187967702293791140912123412679919532660613005971403666353911592153678784721073810026159720434427111412789064489899094598572816652086522207565899584446061504093757471896300838216635762712939567267982892996395506639736320349860840618855871508663583529603369534384695439757267639594828928086735772356407675728387385950055134527972456009703063870246309105470413437393111468406361835385231276417969721439237688977964447819722725115914325272268467673414917754222114550284614558768601815767429028095606733305379934253645100019878495182056072065751014256630104662494543871415321783631388063771051090903966606665430136704915143080125160283567912663498716360585744376204761032110535940019844356667898490829530365046135750059688426315299056570662663527749364566478749889132591545162903180743501146062307338392580282170837254921961601660148500394605536176159949992587049973416948169873097505360711367631919995575382917090107313376443332942138960494498617130893064668487844587239707118329707646695626785939665812984425951937753032540596903123335734324197558685575075105269413163124082036822052038790439710836892028220789973585307878651194133983750171386868196834812960954280692632465310280157945421360727263180636944603325168410686434264807519050510928096011898841441917334408125473847907208122885197185932606908303922526505719592820936744156898777388783245186103336826348494621557888616397887865707541926083716999336540297923308297356137114269723552469322562731514111814199654177565290634399510284579873364945752246407448769596767914102847141369142937703646311304195288735908460306245732258682747443399786359483233857464174490127027331787155008954811529478428494522295523248443916042220860440732508968468055132431551536602433664198416035826913640986951360405387128466649449436434177453848297160881589198212827964107174322797312965993339376643438184182157899060249620455835472642388463485528971156465329986521395100431070160401127002594761284186996519631651656950416876815536241228895539354709995429026736081600570534795450591923277059079788902866658352746058142363007054789627347663638711306211844743955093099888084532242664019780078327730390553012796790018811289265395795697883586092134766338011112704230652557242826039404964342587130465165792892692457060404901343007169459553311074467036024421682622949537062264909127453662161593197461428177423563063507224457144426624270100698477779279927010237007343815699611556852024249078538689378682997673196010631922307455043803218637244465838268757431671419629183066520000919488502702445686699308529365471890891975986261335426877488544140124096524059177836349851526494095488305581728168960087310688705403390766269138875214358973331789098723819218837801231031955018068963134120939618202712888228872663355140450996004827484465305612973184193556196214696388845703996983546725313820242579427509755096963629188933578129614563071607976124713104170590401752225642181252203546606585349412057154729658076876777185568299936997424187667676893196884859861313996759199646048048185247662170946273016115486591868439268738849465169775451116819580687764242362218602769616181908860900941207656394832652776141378402866380796816090614139070109440026689936115988502387178098205341222220208960550658960318851961458617687200547794376853207693551621036926528542005201272455661125384931521232478595461545234429258050049951650681245494028799512828495942925520939556549301367469734040317301847114050838722776636766079710989074415397099051965116623213230963653855824706795179910587325871472743632909366991829138781092371809186295926561313329663358313285466869940034064026545468433496584726904533739281822855444665900560646716769783400681711869955912972785857956853273785692645930442049407065362232682501925244437843893894912849743696891524232249176715613674928537886074588239463263849710029108443955294273095712682964383566650592400375560281666021079296333113732995813914197620309578963695280307509001164319336903394975041432520660272686625521106786436307842049179746491031804469049107222071959995342229932725225276424253685732582369152266928245709581236581899164920723348885324416431896970797443001188269088925797994381734355574199047973651191123157851998792864446445234377604833900969924056560056302822240821692933378879530410628045937541401959358564473662422294481198056686336386492584333006262954570320174367270967592637069418159553806953360023812168780862506187255196930598775921027956485484445207975023479311233910353585663326150107404295094087691220900129872971423574716432496025571905674174646414257950375884880837691855202625368916250545900715933046096936360138186405107783091202517987152953666865160768813581337605339450112641248447283411697115089790920429278130700518393625951143796528616809319288776314428872515908873579388661132266598003479644585332332654956724775587467409417516559484449242248557307632213542063744366825736199573397219487883921188645076355428247970504328921976615331207774618632437751811013472867757258862970139441989301854192749564505845281538855724505355262718512921838065566208731723694262659598395671269652869692298247588713566175757289024159610514848073093346282150664835316526982482849957033310653441417762308537739163882089204132322156612230031846523267766911030047148249217084747682023049659549519383327945134011487731533914395071717740101868692945643393765479170938360458102691248340662862664854489454466535243108322934172431897877282010096272676216767957336919395021740439295966687386965824651176988353938381603298672509402180324861643495419914302403079805909341002201439111983430084298520127342246900057473426550665868006190961188824139745248127798939055979428836152519928566108896041495880569119727704433626273710301309486446016020495193999745218117679033257742247226150801374777683031377700840605801010377011042735332645857552991929137245667927277564756343971698135734518172019759179615277630993956277816246783035224943558251803819576274035123711249161214025371010901003159630360827197887267857150218555909538137060921992489694882015164476021163532247768729164747784030456523543887126695064128790085931789991517951181490647660441852525666673702258122093933798232535514299412764587757930611362250695890981527891270715715369474219608333004954713011337207168966676686423357744392988667315296304120779910266078078910556128500302723807574155211126378448356511492912856097521995995204552699072142935643087763432758749884734177472642348144252402827153179178908582882531935313076471462551420128191222746240788181665358308863905947554417907025731953633633844319021800111287389360179750642538982879978156535621255941782726731899748929757974605506591381757312300131558714011826131687366314069286891415715944744776266765595220504049966717275221730463710914278826845503461632854711942372257258492519526415593448050123676062751209611905896843586343962600603373044843064866331591164597910596374403704293212533388284518933933162350717212581004569025829162114404920196190533646982046922029814925332650951670648447842670772186133959664932320043687220953165087293811638865856773482336101515814648052758765413042208392397671176873784913405031452961527984205739193516775463862800517603189412668683058420644376917954309819806981246496085171099326491944831830678328368177377621429882053292802161622527242341511068878546070094520719525639736308172812748318180434558344042051918080272308185327026862560777237327415208847534598858972931040285011806627937830065698520736676369592723479644206936835167534559530258269495732069044129348734886080880532307165248463163961551735735555847603032488876681546120888891044396669837184758900323836169432080765879952685330941100400496088058137385317580781633780959453003180683890222213177200807218697720792536912111585304446457633308668053687594520166357972109686214625149116704703902250947053769695808097508753872940575223524445471863047119161809737577115895028010973888367257534312687419143149174504593486607170398767831543759138612359094065355441732229729427949413151691506078106786736521074386633770219005090421826052370901320673872013575055691776387891786443743626211027473721649274583960822448840535869039781097505302259527063980813339538618171626187606691498803834066536731908857094945843931150883814437389157323011347004517716774786662591098047347573194800606243673983595143078199269334469888097241675270979960517892311980664455464124631994888814282649539102208460188332234321526158442879784979006600717098046959865648989720917125681022163571881360909701021430415601308620886266804603414087167396109747585129926888666158054618332676939604178575063987373020929602638361144131748762836497101209305716578907955074473445368374114468670398642890173909170921352323653171422128176932230548182010539470550023957006668505783423328287921769280128572933908975689640832261585112001531969027875212285505966967286101083330022711067644791265766235295394099493498193057105261939173195113941033721909607591216839598975863268638236602952056826712269495664145674210574138849437189280559213601798293322432633893190423322024210040706055079836797445213490031160250882122640496187899699039608037132831940729474777202758326278931374253299723397671403863874450157847216618524899772012056131534294695865570336555916826302844423001698440301633547121735049572912656125343915534975710097178905779252398399749702019916958707786994912011288679346314161584416846824234841994937796774793334704041195867418751231526471527784964211556490693045585784758609248037821031908792268685592891319452849069039416494179823694123861693490228380428659362075341066424257652757866822092384277617651401908687755836583963650313853048468490772615700840687519931681501180470491250523345069847800146199195419139394671461933711781548805633644640589355656586296059869262322508897102826726080676350368142426396816400466759126615948881308936766234320808881301264556062588145419111173223386791879388030537138506861025803033238193770603079947563145522248844773460464178618896995118797976410522935294847982295451848240679650891137330966505421849579940614825043081369470671993465334410132674192099145898002333740692009557275298420237309600609937921583914539932055136402721809604331815853750520287741837932504439045091302142535148564685458409390423496953396763093248778665792309097196626104491972590083282501962721370694094985065142676625578739564584261943025243659741854537666126623752626418702059007244840029467011562663691945659550255474645120411927250510806084280419673366166167149592412058424424296788545735658946365100215039843972808045330860692680084469691617605032617906130083885421867796311598658256869698476897135438355331776207342761545107521775310113151745644774609000439920267705999276163577490326707606837463034831490175263856902856647411076621826186059636596503248993576460731182927227764694036880915405676077962163502686956062940930089807488755588032174744216116604063243347438717529141260552395873034792291988681614743670656504970298066783322125497448326177793722039321827424724825406040407810337160711222810637595406331208300518250996670727739602738044736081543633400095591686260669603239989760014836289973370971316608472370141710562046301446007243456805392095810202162923809615075612185646573170190192656923793140764834390082672445722850839857867916457046220950330361460981958219699225364657752540646400632820113718153260061774154500963442022344429733942826048532243859855087664608393320963589006766975294557828763006015737124699041223331145728966461018293303395964429347971648811010219081526254329724593623384680219548847996320768489494254132552660348004124987458393178751548582878841657932493706860993830731165269196271624178801384577267277274028144079816185409995544810022358457337967385590466953361510303936844063776529217816389753318303817463205582297894450863079414694632045702151356961470074170772837932225035949394884340615636087502081975102338500692777901021993594624010060368254828561776650145337022318685369354654176427172201629911146832680150975213670992710651651000824331363730706022013944776808705787831382004637270928445889897583394129181728859336776466133216333751050717096047519780956797642170634256762090809386257694144500517351103646974997937363832564671526425794388352776477047678341752145911713348453254545015536236713645539343221491323503411651452406212973758941310291767085765636742401622549620474969513850601590140452226061107951411522479311332230428434037567083379523215073298050800065936874385623373200157094479072761274529409905278711755214782168156457736059281121786713341531063490340429673684646482517062347796102794803782784157174078346003493420457260170520172854214405769672855396238095142995313297887769927759569793381441210003188597055976198295873192481818693431206991803915942763201794730361999732252657605514482078870700806102989353509200393939913230581103253523174403470846024756407794480550375675308862622472751600178891344494203596760589142956586015144448508013579398593666509951210666520240827484536746149421853614283019144337542668422993562633791062688160503715916406373563615666214674714735888487847918095718571580273712699325275896557200240036746220341316331004188093733923878153601548508473998078545084001048696987837748941341193220676198886801855122249060956960066028049378779303771224310527695410465217891333968724606516049154570051840803380445730269037504008295242069437563298666909857557391968112902323107575515620148388363964190683230274004522750125146631630628261249967115434378613558056180234945974310988935868029804417209705523885606382498805310484697887068682355858917328111079049922560557503088129604885194024977772085978629983356959956797084035336570626165961709303498410868941635043334371381357676092695183083187897898628582262330082330444002787930660908960033494672454201806338829905753435366785557328491950895831289929438374394768547251857141655284982966965526238057441774927354422460904699990664016206999905427754438079390183422219623343969592027055602563340672559619480619904927284149310221388493026399015071818661635559956091754114819629549943115574461927702234486890682247639990660066426270935777725800433786233535450562600037340182717168379606433256923007487250676499898006454388791630510404292219150943470860801178222506120271860084443721736680114468265548838477907980879304364563318396038567536581045069396503611122034059857645329900305623834046955985472819471886644023968187990207668542582144934927621358189317082998187446549435870520311834505358136440720403924762103088310398621822857119376357198522372143689325357134317518606864098820560243781231771226475381935969426954403458477222578549043794608741964556919845294363409175804149284350022527941215555331994911572977300175527003479829793644657093466013771333670371146579171916730661483715650283696937486662819410786610656676225610239334548453688317349517192391429188458639618689548694156147890795754297665315562213093829253689076917696307372849518203438950347714829762788879641651918131479301148888574003164876749534114960901847846889887915243389385239087750889967109607565588056642150926530650317631509238353052180123268297948385608664872150301695670524630955531195675339601739600742162555772186604029230573869181678267784242039700361877746562046153260909540067722335844850662860551016781517663156060503726233908985832759377484196068794177648211342302608839360871928996255785024043022349985156777721520464040292929805228486620757471922833431709898833323676042555156968003338167605098682325217338544181951761937765043336177677495047589808709253927731995655003730707518091615636434194199222309234215627800169801260150763017550691218314674202260334069864636973585324467251267893366244051467809205719863651390742017160731343126839379205461790538264093809569952837299210725510234093243640972499943857370146494255545687832413983558097501801370184807208370659959883253570204887647074454285242517804535774774533379272811355766248085063439912146899396927984048307461968204663265107187057604475538727741967763874187432448781185315793757791701199026350383014447162423879802681710278440921767971622377885498792053391937243499479264687771406463418105272745066839839711061913865446639721149860245705207774336989008352561532457871563262769511881582895165844088854109593070972884624121880630110753442527360017145835008529231646436284107465174386416304316650465139154722959152118977600689536740827243754730111607733696675712017684642675748128959230007696589453253042944817886267445830582345341872165024465361236585539572454623636280485900125508897986604100182773352733241251919193056415152858225553371946908037269067693722393586689438959498937707791576911655900241309332540197058080145955130688002821625706448655201568166805009888629799028524342684790137198697047060628664417107858749051898609214723796010978893575790450914830840994662576169833489927953841719810151016714823867827309116116636493184804993577211185223314159950992783892259240283509168035028950112609385279907647299855135692975601672940072262038667343327037924090535940550431690393101209201301350599384248097312210581657592373524933457727322260669746941597222045059410683979639989867895547201672052208741173497548171530090922516737646370250977831189537944024095255348134922184711556421433810382252588462813474761249052534548033253986475667763825419444695396988570116796079555303998463302291016699562425113057963643012914415117763271525236814872266291144025271752834193745329900318400701999038087480833581516982812815520055335696490023608747782608213167466224467894084038490661958326947235653443762219735858539251149586665196930398761623662202654993445205061156912375414675964589265212603072329051909953103672183981017421250659905182064168884743184698703937216561490404892748626780272234517673682012965302306039264116665925175670068637031714970083921802835983847135470876593229890786721919220832100596530405321711362625801824919254316160865879481375993373053444857172470927259943764584954089702523756920111130803827614163995731129036368911483037494725739021518900995108415581129990155376321599186924811780870582820299286179905179980696316153918029005453138919622674162781427666923924761236936026913825074824261899663577650185508928671619882651321951213909967476063161796316030940300285259856597588382803857348154616465329134836871806217711269669780311007525150557638290354360567101895473033905532512902157221659972663406103507973472329695955926533982215791220674146354144968606222935862557301958437861499041097030979335989079466564629902518594995739803295203248681121126079249933007785098691634642314734788739623304126396337079589479395323129267059307358553651523416875688551837548738296635176282955146697102894335029457673858870199040683906431724959935441473535899435854005752277374395906861263885981500012602128709988172753512119802709472320128737579912384744850442058062263143373247993197250095936341990100777331470855819731673902561879161796535453766817432947519807624587822357975899991999878117378481577944392500296157483063931162613964842096031840193278713697354081042768062344024772731147019851411820366152712658513819125577889145101460040187554162206916789941511748366653013712639883104931070727332595781700992282358840774755142146502984157880124323363342645460620787262457612612417287740457763491717184174175965631806250984980743582637477638164879820509055731255060357344040391127783319180133860879540402912792897777939873096561219176146579122053614441547198399690485568062376362967622866644487750973301761460437074191394507338464370499266457822883947432006934614204276154901462446979406946574899511734524242639718802998601911169930131292494359929415005529750706102152713388396932589422459606689211180830256343164567987951739010476021956064162873327461340022061755665509271105565088908232655284418258064717685834538034755768889618244199377132292007419098555557146926503842610961530029622808066004436716471028536379897411791021695696749097124989510515570426455446616049771098859023653195456848885417139570441188114917259847056694764217014209304035311334612327071775961048312173735124812391164948446303906637605662409003711134199668040621147694100109467879466955582529060784831824942275799945002968171910288039136622066474780474954277066444904782492490151527288893169738422387476582312452146382003057954451678081627409264169839562267969430694242070334596846723260545391780352350904231332373753173315148084149672721744639048446427144271325489790667025412513323611868885080875493878504338957896493991619636848156278342610872325174653696055321827122618907063710565462609326938824530094064347600203707359879394262987724004844818586420198339656912648452432141621958841324998515410277755492723078737280003079726244056908307694270631778454527971551307824622731274622639686257136294746664001871472047813075472237735289188413921453252557532044878072598653162764286197407825349471394367087843461297253106194282082493433075531576113565874439418222681859032888874311099615667895955071328946051092506903115475478556770421741910022638524678119148062460765605446684490264615259404229786743795746162071454983289905243379197318290012735498170100911686523667940159448942206167916848355247940481383880051058508813131979500174773166656097247641137288690588530583839268814563349733539669407392438670371185395411619686153660492039930354246392276753197739428915814554129093992840186098393138911556169652380990372303729873040441512768895136409323832806042212607992806716256504769332282103699608841369876821801253177473703388870087519014826676465987426616183794996007497629635699262542235311280691601937960260863447423032297321688695095781581969966198012957167478520757647060611809712330289395419197150672970463358212007015141728715040693032818658318903296473406441599601550503151155556884170572194305761199482600368418716995186758583225022843823150013109056049136087975553921434966872407948951995862030064491871947072508623107712054586197703718975342144524702840823603556248796778833488918607657408772037625673159368111087077739416610146258502680582163634677944059732064484380748249883130915616938633434404665795876125395818268892070036818784262152771560840592449103778871153060026781668964425294574935300878072605738439222457034543571724966980918246672680738485947905909660557692817818371166756796572682837678318937088338886786505341851226105382691545855763759823374060402900705487484302611551098087723862144534376728255887277551296850059991116542979547207766558881038559086162972496187528269161534694474034226296951013774256046344818865899416816591494498871862598162547224546391730970888968266298725725133849788075402049586214075907948403462421459153068330244349094048162797008243206801390035785979332893229143434316661518327747065864542800464992195720798390150018653763304711933075018810325625566561790177939075334290928867031632729344275861439299808901822817036345658272911006963686958515506625374394258784637392670805342155798861245733487762888560715911197193979274834715627725460858421391473795831691549874048918761684619445326500056194407933605462741991044280930331307781890664933863430928498185535943934280155270861018800518794318939021846401235968363488846821675693273735519161890695205902429199220412462380562217948766900232562891917601541533670117266499481100315898988222754478681792430221368867826119263002310538783235655329912243187771502198631447854528703770697819194927100758612080211879826949613942911933978331334571947406614557550870305347682067520297029324057812420529053566196619900942098207002795373253655897780356062212276564517131361000246944366710849461596582927379247913085319918708670908803040003184631915070650670345323480887056447504025399117779287517514449693245462191619932965942068648494820708721768340888389577464943278705789985817543914449799452034761624463002348953980130980690352881115499183463611123962105064255857511050273235387973335045171433512684458437123786245480426544703503501486390625526800529151357872225670847830498355546811761464278333729669053885283651180544578159049524491823471840484201123527390349953288141763860437159914355615896402509930266722074240102118097880855882651530351480880804710386137627178634926830165098888287175541232280169868350166192582582092104155471658971030613471455345743549586015497326188168892432603490316794000890920790579525564110060896909359270812111653684652006618374678002825568924686212026139735341358710701482500735315999574891676102761886874211937562977338172742913189794826951149002101874679291351181662532365455785240606413289596081692847937163159525594357825290154236040381983510655030311487096737106028814497757279469958556448531725569590016985853117671756378582794393233193084387767994559112066384080507330488447462099207852039899460948092403002547047397037554363625425491499012918224824670570528683381474059381863325877909151292454655295309292278504099270122352933950925473060596840652258137963161950314129692792236115757405418346574975004579112654956889492244943795326763547073641692570341634600336354879449465934528665242406317653005697661015366478508262106851976916355011989119752271029928469430515573472366551974134834961000726245259516884106154888065503736581545317149872158210116425310287095109246565013425441442320221864907649363331384410012908572658542020354919283933437238182087538633274106134626044959220670370820313127161475131010990302050995718384065901885831714221787625772999070286604204737811008834612497912565595539413814132530495863575085168941389780704819444289619864674551612212015753924834337801993635569323795982675052595806605743250651347709591386942516657358072221332957514400571997146095845793286810899725464130585433654640289256332728723956844914996341411786203484883843641113946778903540235535209188799386083293042585100394656236326735791700017707885943498977869975809158768616535852406804605463508056685940831045650560017614865539747038677536807964750107678047531514651365862930278550451473458533766304355546288176780886169010523647617978016968671117905038384256898960437481828985228785347079008003466996453388017593419203338571306534983446219746421998802256548065280308176751259441686396944863496551649870575669595796211442383111967297571350298015152185623331133769788271352878387334193898262885738264547288540580413426042852504294345908483756742859184914461553291473905972697176277748278680626481644087766591228854496871816739957263651443753221803185537188209152843142999046583661330579704753905412625618667906907924653879986958570612763815903962867121490509393375972651844470852667992512988561896311115087908976786827085907806312131366402434936799994068021669183634093127412599848069316205160124909401373948003544675667866162610622603651065436333859191010296381468598900245859289345571988331289469818056176276286500419673600490759282843509260647988914963623787670098304825877294120712697066118464272477265039751127038191393956283527757927238097859094051722093680200301158389558320077068095165118165714496366281461779903444010563145826682743160123558564608489916545196025447313452032446489914704758021754192067644810153311305008130579831548732188070008187369324784755763305086296822617894236973821841233537063371597847723449090003975280757430760123984693024074332318290008487813258901056934137076064915920439297483968733052231557511962698126533061572636477574110149755008392857435921704738442048535304347718269229026330388152673009093248525625924027213956041983321902356962685540816075015977683741101243906193346811319716257530305467400275496483861813293517042412861704425386353936529122343941112897437192576310888908535378250701729386783751718207117501027196527126974246893122023915787638191387796925850779029596784905639372162418245093966874166114216231043520937883420868042632878643358508069864700922380026436454403282952387386934232103463286361791157398005764337687549578241988718584088865760406892044945699261419824476759943645944182105308745623666133612518650225998599483978889807374572909516102221218478605608748396143739483663189030611346397945091930918024221281538017531604589074332427021455676029011139601863556178902276621548195877184834640996169005324057402781035356339027264930604723386455357105113057776060715098423248601222740249211772943358693078974038885906285497528683835522316432421600407518326690157853564269077079632516321215228964547131807218477651230944576072369383609817270314731604860688651167536458912739985421602167270368531219297523808027476297068305614193078500442104801081580558007947388997478242232101332424967603569647729129137907270259655238891497439988582492896160743669243696153876446217259825513337806275363509825467110592476071912324826842044835569604628134277303971742930964257124363889804441539114947247600917473775244046957479950552100737707927900193823534498021410572845524174560880991502440699091090071014921049920464364483789751127274284510902194741173597524970493347693292294647481480511750704159650962518572211857720415242248418037431783810004339550142289307991249301566160553803962245995205197827792277926173405739874383838326031061624230196644202578311593519087786988310264772184061357401807367959596863070180030117376776619771094944556907602905883090141250423105191317486463018279574070374614249304784220300449802268551223536257507689595137809789087390011952477941138919083499309144256078123971108014994659292524994292009998611307181552732774246211551320372418383776638667402574649599268170512017986725922150741842999491045459595725315770053119515071223107974895138089819801392530738028867909635602117050439629178239390580002210113200435798867271020809956155001586925538999338030949650063683847924075563616627487243557357551243873014069999474400130429463504766246571859153706664968840910188454975848037434672644698882484393768325428432572155622954198210479492835416078441448747741449010414452618763600566054024450906654623014663307900107744040747770041660553767786050894624931244976220449254598232798708193203442269617392457939401744385366718196109742123229150797380684535530328873575818614390329740476837020717477262102583550830797749505010964646011718583443340518912947767883637440308933812794850018600425384297885635118199840116405424896300844697209625747684225078839087092532359196067837809375897681434588745912045114167162382339860715020971095294454278456778113196841345455058157177698552506577282201871769324696780876656373774909758658680770668616232918256428817903494911053274911627735456457796996064783241649077397376399949797639826176368913158394584749565044102729535282007857426874116084953388356330423296189692833165106349081796759821188129140609437004976261363539841136730900982879815552613102531428799232691247184512892583139355868955841546174311523765188999272720666618901540209769785740838015831962257527451096151645071356263485974296278535687005684225312194915353131476463969371223249190584924083908161645625469832105447092079467714679394866448020639649217229411795395124736166329196995156112820003917736183917937867730216527394156360472091648083092787934816138114619658322903240570528971166726478182846179656369130027459743810578732303760444500628344718986167623612082773635271936794544373086122756655512559887065627712584735221460017543927642065785550996983921530510928945430902876865034014279911315314793235403083219446722567567693074272973601178686760385584097045540834064145394423509267943664814620203717012797277520143068259264615303124871422436134544192037533827097881896867682020294812539452320331855673237302785620518861329052969120467505486069827587822561840551782801126407768920191339391361738642305602045470949475777015679879754118179878625629806107675431633591953668282288417192357307198008410598624543495053462775197836687446357157538162028655228126904835178370458328058546981577648412967724521821587017166867686724984055086267015365445184583897310752805958805670163535397434144517983801914565344717913622836635449088761802794739544253211711442258241754164037735728085556776809482837219924704072905251409520066626166415525962403966329691177401100401476467649575699746095661664208236129575995178996524439615203320058984611022608259343950558683268140278034901009556332524418073272063063523079049828597237933825601216699243519689201125851235311554439469589918286276881224408239040433170446076601756488673185396844416487293919495553750859770379242008331479700046730020987149473853813059219428278748153511104770637625450501978980474992256467926964795118749844954071676501132079936040972677235838589214933039892097786695313578587718488574220220459131144741126904263292269987739056898315742138351637950294350956877840571332455914394653994561818865232223185669709011690738358173786203183221710955915357833390606170877540107439514094478571576126515541811678145762220696074451424267620469494399891978883283038680385633365782729662867279389680933398792537997894813416343621146762356187212898520238394505077481393837073797768185850800370302060458639275608695818020077552413306793520738719905592607068868570223049004138452034728114131824395848681637828672341909401613739783678718897539956563180203742428122951357855304590183035044829801341858891783765673637046852403812403898814741689760743389352988824725221707518672450705488417278285137877460838950264576584230060273855458947674559077921288116335776059876317390138091672906542383070514544391098576510090475092629863823353096030822058883817018248664649074327736131601174360648031209780768036834262568179359415541220582807106651465007430217022233330401931866543616670376273712002455940063818653311203577126703348537060459453547727484433296652311219877671734868621671961489148070661859505941596574423069992737306911993974730733783072363167800291110317695737912314346471138356477148160103881398400864848556983244775892825270092545870362657577985881560761881674233922724051235274225061659017525273059966647317177933529319213482814764937232305086774622039273645576724051670781154335121843790618234594726367932088122824631649413145285709454187724226922542916233784495535011310021814228157761611640652837853823127757977044680198590865130531923176655446486273881390086726009142558467265269553410080402400296093243844302075277701566537630794631296783755648806478904024179688595340854475082397413507843733722421881068518239309747347384147979061359612166754957477549245329858502016151832301470971728135997341850900123052267556143576984310745859424690079627345458264952152093129156876106028485121677401353055259595849814131604418201405197289281880308585164195328354314460998777983142149610413900874340127461361323539959412987069775004137515873120647916178481204606089507915541945475549805077842559759529082934500229399653216529357312479860539480041650078647815440896431081184632095596506249804645341848175512148583550412809968944463770788298536194279835958407500755796564872058964952898799565408955804594614559865711819802620810023110257680623706964080293888826073610106513552508807878829566371330570966155248326397997232673379235213829869525742463212909369820716794762963409043805742295378053496836054637634364527202255401598345325949587933246571677729747636302765337644377716824050054857746558130864374756133558474884925106780106460012465997655766349986814773804780694734483597541100929996991732833036890852147963125695184924945880346901994744988263421598926582961155185742738441638464761148554154940550670193515925147308266941049766850679810748096282172970635896432842658513016751679462417587541821633240131197143846187666925709249548780810984950679300719330266055894173007689716876104833598972257121802164894432067892163876794503891004248832709716449160482637864692083514277371896284964898924806076726148957911684270430827347853483461460432673642748188947987492415939590381427466015795060000702214658473712499477454430752665679684240682800513866240895140689134846498691594925029716873983870165430635370217660378320506566195070435380832774961756760606966654115163047955350609497675283358938286531518298023061341201579844484333481608158883046660053063002912682161015306244675618137050441851282388568431744019625704598712207875274206353064387600733770501360998781174005167668964443223019461431680378063481033236421354191344970024610336892479492737332060614324080900320494296843376236535896682579822622083515476666198368151965499825315826136645123508854049732788437970812849561746528672080530678383256304475862082139775444621945400856244175869352226617077563102120351704565588580825427717711866743958642886744650711951743020303805675292687137387481628801673375946682987061353547015342999000180695828564815199316452608680903265112564438992400585679833363664555167601327939857692118125777494587370217443184639748191731463118400423588436628268826081087288368528089992629290442152185554321351170864086441436052599091721638650691294490238335932663481902323977735665020480427738325810484905718471281528581495808925858243336872907590889343004888166364293557344901725745076061081805481435061871404966646005431483402402740069674707375662527770630510251328997436410056691756193860255694981289479436439888270313327858700160385295616767978334503017117768605627836604115973454254632035817565280419318872941623826824110575176763905187787691403853483569550289448505217598082604894185054727728357517262264148106341155737529423009939383301933851840183078893536045132840514323511761043023452144971439769749600980489914604664707771037632329898792247954365810159690138199252496092867305753557116097416346985290824112680058277233829650793541404106172672744126145878780834398579576524041893776574232652795127680427062944951883582706450516301847337543696674693317417467098732658685674899747431190017768492226493453413919676208557490540478910821616119279410918815019409433633659032549499563543467019679221648432075949307284559174915988988814895963048977716687746201260052943238437522672675513421974466874983324315017574115794202475263481747511019255816571008553997850956482666320342566083788288446803222923434225170599989558376157792792309086952414965811252839500094355459983282630405851078733540294391432267568048100054505260494597123989171315956019720589176343095427140807126864878139892510619365635753759038071616194896474050603014104023014321556673216846680847015814505700773415056343258375638103525631326063944372176821595113646181797093140974849439269517405994633654092301233201769726242774487421571048071365712123506750164786431905409947781035558021194166271834807724425637390959450951629023176810467324281285980711671495302580308808555730804132901645308114026162824909613142095666192749709851172293402387106005961591750612188103629813645832830605274168026391960994849845568969330161773608609758761770425534366677019829180956737712825395077594672901660458737422302201769510141965936264105284156616051399576887122029120162820292165798907168272225824354131746382389367823890611420521876992840867039794501413172388060693662595460622608680185180408692770717572189160425101725304703399884154763136017036383461736431690617545599906201636885485332433542540971642617744367833058814641616322320170701915252237145184829931805410358050595339846904028731186859446242713493256156450788315847419587194159662107809038735228693834884492335815346351566488808523752439313285204021197607648636619903913463514928705999552507194967723951682368148829762534825581589662645899376100865336486945111361298242236970685714797844519098893448123477876447915826825220762840915385773237284244647592849085833687834918832700867287304794241194870341294005802352066981317431425470915289437184804881644724523095023703913955813818926590097482824960795368272701484677752261219923917300968543519535497900288204895793712100500869102402006508663619553622754280122749296155023118341077466950915389124082804796357702951956708153472362137719215018449355635599533229506812998327838332909491927672106092268006631761390943883051122528229341665364854106536499774322519131804703812555636210036396822873398033109972703289420176221448640072873414054411115273061915726651922152279930645030143197389892632607209427289262117967386309750544732892885364315870550887837259653998796502962459486165188051388877088286600621321239492760091569679811186153863937373940695616077764949156675445304839406967486706216286110382754216820528970025797732789570858038293757699209448573346135649649500179044667023723416192822263267475056438690435991360595559714333329031274041545707678743162604956315320989960252587068349373898747546511822929143436712846689102360395958880446494089694150897650721417871097843105410735413998199765265408762589368334442091576574291880293977627348225679977168251529651532201507468542459794969476381897352535699164485969643742402375966764280825173932720796740642070531735018655436798869997036061545111094132843335953595288832342299932141712508580717123046654629297036197995231745631910562511981268346646862693838074326727872559808348065210815138863922923722797859206414760415844025028300204863145150198766661312628860969317359780758389459656490404782781285460988802509253439951665152814433525371113884429047025149909141240840272297018143602248700221242941075890400694287578257923084041599724606058509237190517096571982678458748655565434462573723710779762277053181146445310574019865151822774751483213714060601455423230721425771678099911902180978742804448922486373397422952309138313890633545329475769722502309773053328207452007598533600429356892695358774029766167023541867288625536327138604173992138458878564324355558652573693694774596640201990276362760521787157553024831301952451198868485881113723593021286882131568367903269835061912539672162896245405154667462242421202355547064163740759530909805462564398644927034300310183927160993986137580613857088877045367263864732677998134407126943154024664796232251631125602797988900203192313472557888189449519751963616044471723526930551016986047106097768800819106280276388740593825709735560786335220320853423626313878410336073687950044008135341296424764037341227625555494819881220137980965551730589877898890414244809044417428951050437697299117391866531896205335521150222004455973494312173011390617073464221690332875198218253565100919334232982379183788417534888281660587747945535865797105639957406929565121178123086020554917478556059633509772817617821691200655455870534339087216352474025749757843571519321539868898026336704264000581171443781597674702331896722686947000693154002565365561479807819424283597699366567143273210760584764458144097401776341686168241511955490004363169840542409147762320153057521217441165858177780370908021852016677840321045203242033387692074115092869686418306074143241652930822342976284320315146614814556800314451898759814723706315875868232349283272692789321901335161564719211442068113939517125686191011163508086759363890494512018485690628973920573219358782417355489540520402148670641779597055126125746764983663036376155883800954340479494929422427548799501498642326953708013757480325847128667044478485238869747877216433692378632506548096771202200298752976792103911276020363040484546384484208255202768381528754398466842991251100313130568719110522467564159092980256312606195372037900068236533739133183911718181338643723347372773639492960475441391279423422828770884265027305142772473113115941816081728249999284682513455185320235500529123579069565956026294885997142622647668380945486454401467878739495167260255610737274367499378269399321498213384091202005213335037497666232440083812426759317639000360947118691663236842326848779265088957439612147605827497395502380838235130435690693281548200815542000528313533275142936944143162186792754727718028456911889447297894915376383407807564579799422710618061221846412520915631372957542747287500636740199397613206701935959167990843086889173798299418189992230236731702759879867392799820195608331045842138060077213402836800928491925286693146092412696228927402161412479363397725872776168257171198235054426865893297195915970690703290181662806657654073961970431704822501578260718524098242478976153548330258795644148963742524643131302272776660864858749779501880874114992975141793721711429890138262333747901493000567576476110722164823930881626671817870137561682307444375699622779190487269691885474817189834616278633056198168290981180345486900806221992467034549574583912950914951197436342812564432459771616884809765621197614413941725541079419516295724575366587344640259563665242142675599481975268474887357436681990829701860042036486810204655420265445140604318940011551699784062044884849011110195605897290918879145010963278656009488357535004306399472122166929229409010150061543536879956977938053390947030125910544391292083945859215110902593424232022811937466706294417219631930805175743563240025582562484435681737509430545627031224870531147740799437055714433009845581693845218334135279452457088690903800325660088859084801467047652208362071847764761520099447904322089229946195125174053599757002895018212324056838387165400673934881308158839783789531994550367859498147071660070821786612013792608510701621344250856398510310872000579602060711749327816813654976260924500586391073515991168137104591181818715814532024078869039701860610198693987430620859451807762340186567211270379968807663190835665937534556985551557612087774253593038822582778774822062689060536804295416101021872553496398902600914066385954133179508635318837509984776318684096663226439785047118276947802594354605166913549214036963854943805853170548209429267325826370052595167060599347408311926828324750936040760686969995753554504507079204224401574208760244380609687789104951573997147615250803880876920539063511243241319332331910719907581543521919198358462567948685554472913162117045335524410791100288521555912633849162448166388966014208035194177094822225273143335831868187323206601416381400027919832737485454494177055196020274377489723558469442740369569916996605252834999105433087105329064221598073829622003471370533858342845396537706397703986413959299962724074249387096271052365345788077034404456622468863631919969983822521291695547352594947502244547419657801309524036333254447937472491922858458105498273184722726620514155630251704584513431000841507999111416879625885596156675284376978674172697104785039213411204153229106087835035414103070421529598038480812957858058046415324466262445417222032523979316076253775007637566445309091374477071500525284083073712842821829947830190349117288987570929234789823303113323775013517478444169984000159129097154633470271678082233415249047976506898638577992886044993323287148015521506439294530267235943035022897448958794185379472474038633753345395042424586559678690235646285979478580752868006982769325614539162373902831587094572538206817046611211907498918614466075354500212639612447414774923322559836938626386235063707339826077896532636988958713186183239585268829399845472822964001294800499042952156676060542933200991744337010822526714122139541675196887209511330618541072492487817577988539225787836264933670144356883050647700529373684837569937510807405775992575741997218395190487042047625654516799349909802767218401154213353315749526377054174198643293052084096775369518868541635623761220715453805904624184101314950489331632155781717094960654495948667197732528614188438532005106791707022188147451113911793501549646719656218157988284744211341895158433459407341662755499930559221398627586570672351645395768632825588772761307821131910223346943225916677617397269078910205915227506450775691799031293847148844625205828821219713667464640940755056551036027216008341602946279812580774785135259212393049239333965455050315133621634233493027540740216253215254104695497351948638957954599481777906790760102194372867538988617234638821586741231273142843148021500345706247976851513087895876310635609017831755609701564243270067119611420980770323432431911437285315394498483683807075233208702193093039599429128189837760980368874771726909024728778890014770405935346809560189198222013633588198064526140985243773336708024919169219797003066987626234809622511402672307060412027545666227275476106252296379326360996539623781441922624307708415790073284683676954083927890559229859378276634918262706840432481019958517460994735052199244813367196655084543844037177798633908451666886205200231430224597500873163526487837904546742821213037156451724976590304966554885452770008373329239782399561997863403806343693196486011529980772785766235274486784627433450056594105887109040571735204002366469493694944288424568077779545063226765985086876096307209738909192582955143640819111939229886313626401725533727116001503768686668977279115432465066174741351207889414839036322403406624418250599306642626345823882455519344521607169955600616558752123719908783724041805474187408914520547495542453974773164193299609299496431766623322921362858310086708483997049840577523878971193213042385808544921387301431389081472287414982321576518071994502716923144529643887498729850671451221138785172948318775176784551234207436093758181278909159458864206287236265603325792214990554928394863472522160846761018482317931549540335191704194798997920833791683495819335952878584374196245729395135637554945768784118129101966227547199727673845253149973185139077562553984080842989193895176904534873249080528165564916920673522454193748993115967338695132734373516408248489351641453759897941090128409098669993130906848873484998041887358479319589839670983185026802157025923753119483334249273074393650856408480770431797496483962200647294186947478477907278045467958684092895174738026498482315569698605846525707972996092611231183401801585651034350417029982120484122605579801468945515110297919399257779089832923292048220368247838164821701746886554029150518752006986052284822411980520186526547187987836874544968837990357104802219189366895622770617194004761616478200379804656303730472743012575874123651793392327778846269798691861338311931155516859598412975465094606510043331275656299945503407472112142948260423694720708093031524379480641136875689183879864765038652199844517874345930209891704682626267744541301063203678066238273982263518434937598009531193722469718626445946096208340078327544572373157864436684842139188852273584878511856342165031733395470310852232109435529204300857382159859407168925629380354685612689852962715066974013112627933603395479726868470633699944730981085645306813022625139296496844661047600154599202527284014798864634521649349341617366754242369736974233920171415293937922491915036244533271461418558054040234786673139357125458964727288990879932532186200145329304413417654273825164381791759813817481420131164842993530759858439913692073218769270026833447493673623870002374358959124226267657859468830514436544805510191923965399201028926352679873881539474356696128845456054399175885089484011931945086750512492993681523602541622349774790195109611174395496649101298324054817231764874647012946623464403922093310689195004313686043126858833467785287217757618877452580659361197827808875020915415888710708586374695491847595838258340274642533669202776631506944921689758858696660243358945517233470217362544490765623918808083773396036323268663512645868508144356047413009348522986250518139173624936298350056217864590990110565179658568317260604223356215495971539611955101218515024771361051688725461608519991426921990975530680608910151155830741107243134444934465273767227653632323132139219617767916765487587025249928461877660732644953271907708841747935476832078123121525418631305973705298997794059721084485194185617235267375629489893266008076953203030666252853480757605440134131631015163191440606979830586147011034120666881535910008169040434069529475229336226821043281598697964258051716128604114188717334675205550979352916378075752202200291849934328928579960964955885047294017945399057138939163196951192109300090981793928433470730748506049599091383465473201217476760602349356722891685196096658238648425435917568315278036362516432549587035634416950996162606210102278316928302779168672104086344185305055094446266456966298590499474324980575986790867436465403270874090406757565357382896560981855350569180425742744001011136771058648794033704643339871842941934263628282280388067720324140399366169939539463465650877674208907444484497854630478260207236767063365751836851764175596839917091329389241575220319734998026563025080260228543520071290415137726281065519985925437093685593534659502998904557346534477532074391560477834327995403560802203516101489807223429417132936123879796568686371983535802195905968247429918570038869818211088212448263479582082365020772222204846515494780601154512178802880010208794144993812326503594922240887097092362237086494955877230957255250889815784280172693994736820201696620400150186699716043892139305453267533170310464066873075087539067832400033903652966791219389545420513260845172303720432113078125198045397360623449441709317002293301226000462134658873080514943309819383717568028578032367905868134645082688512367036634725848697438554456595673126914456617345816707403221802161250780096630927210872518098168018111518459783862723073624362831987843025506400414082371226114767443813251631974893017588251601630870598076764333832436532997286409597928299333234799192235368541656859060888868531248460247868463945031888127443126989953190564755308328383804002124130483262029632782549846022478765874937673276849382564447374364144408889699569551174986976460459466264849633437203045332374393533665247841426437648818923943547101312423849175829696825464475639133412984462559603417987084880856337762032176507275954897330571128732174744015580484196361111194234836845503900031454775976672209408213654942333692463837122089264844187994554223517606680026951151899980725805190439041328264672659396374655708223193974816191153868171545543127061044179552598149382964127290506746818345698962006249550085993260962371650894731039537267965309377987558459012981838949408414340107625277271932303230426129906290011539237689877448191011135998875425296682250888325190801355833538480425522113448867706090866030067636282930666412799911123034286785509733424770331024684489225915666767281240193965633485915959912691414476619268951410346307258263154039866381705399775190941728408762255696627562921944092796483453581781982704081987934052759584126128898328278305844905938723792229351513221410003118445289275340613556431883082914307755884133056932533188170341161630797052270398868112539531364216221759707371917648505131847521758200139941479899867253992888849218617302478592644304809314208647776895461572537180425507388170444210927610092578702088853021248238765952961258332510830304963106738306610135067893391670495795175673173736348142660426476752601690435092294969237365669428996581497202753291897535286257625922655558601753300427620809140247408857366290833389851525437696704010633533287176605267762080181833989105713676504424936625216441774112467741459870732634799636464152047458852119851468649326056766448911208643478586376680716238566653497794169625115938879812178354249531055956964804345221096003314039554541168947175080129481290815913614325548668185102938578076985164849251498335790407225095515263477735209877458287183954659525425941360252863778429981883270225200059578660015531375259770795230643316455876616445316696465264951213374193917893517904693222882385151738867303627899953309036752639445509251855537138945784803632009230015073646168790807578339198905390947337518857086885169864604491765937287300446769728622540979220709050351591519491630285471931081593917249300819389254583349292566875439667116308982410658997986707213500151499695436945709793041563695341981866487926948920791072349352908743447934241679817426030418275248003300225847065029742919297911183226084280804717547629814564016332371841294023002616339917730371251602365256628336361113237589213726841948243755316573040274420732850281387244877517071461649509412349548702403534015345023477744455355139371095768690068398403427973633513074676996898608940537605931316446179750003615817519171352205036497457039425097313764157413857815902455400821449368682996201563544612450186934098192096940494542247366608500805428029849018678685569215068644217912650416968482198131029084541259880369792151755609622544154552691581494756548593298421292116832483164088982593790740874784725024698202755151024329089732587681999555488053342788856833581920274383092505549935371607989913739131265310807110479103807733494987127468923252498622876186888101814266780295528650272066857210890502197531080921663755581977619752906703200141115017918208423193368111015345475970485824830845828084204363987539487286713245008961188867898921984945089172098690781974817360354337410572076249304344277878749244529504176915346103438117194944344298221631114553970613196440428151964318324171303407746403923214394638160777658483846183874797282823748672738346152899276519394128145032756676769354033462248474287359042291444947570812644665894469497359062272801580408255825477428495036963912331870531901920957362819296975235068860450715320851038310807159395370415737982353400156246086594609777942821520309446564866171152078279192040082220649984555671090220652846633579475872863410317049542484938858742378918655025120178202744343272777954084306541885714642176720310053764548497526268412190495025862476342927064750998610016731038094913721177986629087345939571568827064454752382327673151745708813721781833302392165761616954873952803898143400369628449510852232683544057763999025541913485058030315006442205540872519353096263334693818587671483189706754335893129304585247378129591632746978502409828208085556745630261156929390948896232086413920060136380182923193525251401790369826022428909083464527859955839977886458574384878666534268496639367174443610927807071990597826052212539062016674294780314539174969500670829545378492925294522494650343267168979637468871561627433175616581242530962974017244271669257302195352750632272755856816021743107179162718764968806840224500318119628502591599635452348013350815117791448997452437411472423099608551844717544054083434015152630861844412098406064645015445883990527272243299888165700836386657891419250887999650768167273213176047418422365301363130348322311303080967675026911869272864338421515594222866365599939109110562688729286068315548602820659759449194308078924281470699115774407211612648433191513362321464455971537969980954213818552917269702435608879222701890164389761689275515034594538897309342830463108489506129222327994175000407608198101250447679515930801022152808409691281374669280198577445453092526294656772850041796039269810472293319051826520700138725354618462688829794297788570193715247158884778431856788685649126759023332536761048993107589634526661546998814493836219749847820056575530293902894224077044912741346100930780000235674617241198477277969000961958558988638231926719813787538939150560304423079685877112289769080168521734623586722597987645818542684752495791462775329530588008493717929767381953665559770100264757159856165764137202749103191016199209508052845241032694055984975380647767820626678687175865322829381861744335477946518874205349427759305625886881721558920257029821390808411523061059943241989594011070314768448347719057691033893620312280603802990166488443587456108981487217328763056864256209307278940597557514313259420335148787841675104946183535446661838002357458262209991817912663563965511926529049490168709057984747306939047149822519169512890232549080290703359870150254944188886093186328755740092181904955986057392953782577347553609040066520153751407505814577474731278631116120442852391458922802712311921240062954976474896595322154913384855418258465143549280983560044134787471163926375836414848221456625366724563053101595085620580207796941135555825872434862659624975842799547671764559366575438539383256169660355324488262478429332375267281179843806889043137311324154314362236570751695677280279229637135588530001577774411471376937178627956197936284585819153049431928765859136600963077249469338443864951077846075458196671779269214032762134530345173512967329329216156518512633172113731575414871285928315002615592326166118848742493423904924608623438435467555699960180163682622465858958936627624494084047480284967730377127797433066265989639244713475977333119519384084205665145682138273481047850447710815008977418302846421136715196321829111339884481500776596663347421750216100770172508136796645718458888702867112173324835224577080225817794021538007201971268858854266783886414577867884408618392025335266080144640360463371646447197115517761782369442554212591873389959258830206039551694689490847426110537540716965762727042995435214814168679855306832081868629982870859441737182269553414020724822912871869754837406256675900828580976487689116893799034088964302274173241465254555201360266557302883772984075486301782947134555348127659139488835753428222653411793426592582094340013692938645150886558726231294742755089641710052839744073923909077921135703137582819220190234023151544163695055669661686711684878691082814477200014569679825416386002634416253820877529809838029861398646564882787998254855394876062222041542130723394290411350966101232710032726935313460804577884667302231352009918850363649225472137831793996404921389582109741494494099252237454034243068204414816273632238812805745996132077447820910627247466858439376380889760766913161941210313119742526354382911429334989652287314882528959171362674541806870962618610426314131224571627071872543967362345227789063357911451725593674315524026675673189407937502629866702395344055893910079611919257678165657115094759490337843017232942583885592204628777998019040362724980868624883694836107145797972925415594969098915000517448829597173874701133398631888295154928341701864919192257927661743466919631984168136721852589536349003756737104297815083077745822302380826019796215644362521095053567653103824556690101124117697955952522635826368610555517315282988562637699702609291753586289110945195144305290287867606692613062021040998194039395288323540512226555938661057766902970534110584808539273412253690856707395129151083601858690693747012761259600782423921407947565078984826342709933192099038219908521266339768795943192231994797709214384735405810861028171713876939288227347683107514327487015492953947538348194930170349971778934431927345196625112623887442583210740823271538517703872485798102270860184858333101840606781608541284171389435886629419857413893765702868801105690251540252798584530966620001157983179020404333074279886776720374415243875023313633252088795198001065648855305688481551858415090671418740977458961975635146429664264752888516157150419592416082522025145504751478412440180976856922562182475131371533057743364435581797310336731249516225136072778187519005886921530294051524457347412587889624536759510108303878636771851825404856005743004802321712953127397833489406366484406669974450997598305238553721293209895492823483476075068262080563095703250678460589051246536044017955576602536530415061987819525491305217326497885440333549994466638782504840253911240134440897016344205520269705218967696638280905202457246235022122572032144778173504903746189882081375183629838167483962698886071105836287428188676506337913521976714099685325458150721879228823673682642864126500920698506446239062298371997016353360926219396702589191990719931543907693849073886998356084905092731044628032645466540758366187405209743575748375092761795060753022769225308387371470879084960315774925978279600619423696240826647469846522401987747852743113234936273693899200169827364317548279712018709518852924789172907163474105892417740870162905746404645850309709254858240381202433614546088115851482857476719981736206616459684142525018708405456022887492724052326606555629178990771169629512534696593025158466727903250466985564077183607623682999195783348592916099237956148685038896643681493210864077446010035935334323265918490656834890627150347798865214650006467748709388146945271790724599125943962417953905325957591540249922253069335761225318682629071404548054717732416605296096951211132728995534894145095248088449162391665785901846811873349033610299399166436219466258709160124011572854639898973868678340793002481240513692422880661628941617496654343164200190505269246072524791182979862521056798411711489191473076910075972078960677687178615425036318436284067848741910685361602172628357330158098024780909352733162284230052525046640667241236763842968895190314676508065684536242188658917746823742020200559310043458776275446175454940744448843916965358118914984658689303863837039514054510523108853328883013723423971256133522443214668471030102569537725017230895945419302975700834869285865829436649977541188136953996316026861099443609523595069997367415746282402281559959105012932865164416829849546687279795203996033973192339514441133810543973380907333262457737639527591761275612865427814166212097096301464456875401588243649625033095092759079919733168236023818226225185592141062487385349614592537169405643813000444785110278253971060780738274006145056592414210213177711446203022486110846497583372051244087531802969074764304494086245915107474338918119383642773955114005496110419127972208931875152658037431206210914863198094664895085103657013624585644258049984375285426851751352084782176345743239758739118989360417225078180133714804973586371068755907748307626829779027800958516264164847330925724902281532010930628416406092016608208049014855371287466735892240586214240090988088608923403356201199669699604122743970718337065075137950451857710472251809521587417425122221598324593554006142363072663698878244533681321522858462253569403733416156048091958959795331544251341224728287740448982173565241912486193339265931434190666744187494348995942323164771752598660655936480786130230256945780905911387320569568938042761109041157447205189297252415208800956673384495573383795242591958643703827813844375281780497199411080564212409623676050831423310983727499817035813838625335708973403108996120735411089161041835797828106192822975060696406701049545907481706176437986681646576693526621804459563388720441039677051885425434812467742857348100173062887657659209873991092504167129884197205338725166330731711715067151429693857893543449189622499757961826966229425944336382606850475790573536758822751869782903284188106916442367260352203024929858841095506683389184629362578778418944164066699869122755218421827991427906561597640753245658827516314103101158937121701313155065266058298089382905272832070973889257569973368834698761175395213726425036991566055427583974684894337006593310052660226354739620760881959349612433099953096741771983277809883964563774787452600494635279668343550660588989310108270825712474717778482275163017369968493464801536526518950680778349827777960695226878507934056807661014996240987280665261058778280978488309853734317515536346327970668321200104343295696849340120458721464430811857240456905599340354275365880436910594873189466544212185238833488436783751669876060925617459270136586574336287996778967785675648009718276208213751069633807730925310507499273408729382140197347542298679982679205892997126757354342023094601538894282392018931467102152069687342159061535472257888380752278218326089837521652249220728478637845761563509258388614672124295570294734052292326238408141456785591339401748360777355577720905225245064381947303967207677690914418466718394709010834681006734803350349869538325045809367097408816718549581565591491392659337303866842087506938360052275729285904491623025062074922884930096085648848469381131396345980352297841413409893439341639730473833418526985264433533949599921245672184401138591464497162736450420757634124772958484400022936276075165155870066583400971891871328857622589352459215306961009909750329764429272702249550036769559994787488741511828802260926504747590715004781300351364715259884843619686219853116851901691750918208931096658743955149943466627039032151169733830197566897992890248636297486916905134767537420744089606263564993496963718864766308086012011968425582058098734817314220909300859361271013734541409894226125821578595904846040937164414376541716872746209839307505303444404321831969619329086778780035169139446676536527896553605176362801194576184253320676987530473205526444211687658335268197503347118106410050583229124507917865966113012848380191487503079146965887804432881465194120533617906963662803259041022760971481442256501710235658969329237315236661878387798463803884320095936883509680054216177020029591147591244851547166711603300043718536758673930024214824987526571298979666664528414021541760585899405699592840874536936154024962096981275423458399603069755827758802766459024647434598709541697730813525047317053985026057139426742371766127606451977146778324944813290528272164508309168987248577891585397896579182798232782853783179444030882417165626451378803344764295274595621482879867724984343976699228330346583557296171123483942307600210218913046761446380363379001692205209280959309551942275724413531465077527983156190879887838267774365185126340604299802709960052986807248961177477575634710169367061322579450831156563963924769404509793607547501607847445503932317647947589491054011353104082266918957018338408785620705048659969938547958617006787628487055621529715458566264762967918360173104481657676754839019672933172800447674851196908692378323670424747771879733514209999986757520936876911237358049066578243044155011023316514449744959611727876313885125576283401951483592721037723033559412847654739104357338798435937459223501610740190587395951991566766735580707200548406101472213847158036556316905902500687617531064215980148340160291485184693155938443665134934324473060950444929076335675774835965070641058952567719061291950779755364457405660588269606555327826067092766673909689714335772557195749047064440101456665151567241010995847940884178948254989443369632891380500553849892775940650955275820572975483283851246872329400681975021373991888302435212721989911707994131701360468736977318255405970268665773736205689704411929276270791729525672092689364329778410983519656793075628623651881352445138508601484679742039411190574832468726651784203406027820312302580466467199788285621327125010878584098729671276990806812529031108868059471302132421701181848611334683214842686402914869057479984462193812344301238233757327831315118692106984538104814676944131292393385919391469077415478921087574574562079564717495214900734583067457283170444683997138629432604927826406703532423551985815935809874134239418800745531016261129984601785226980596518748077434961585853328610905588059451019862791800785177387761179641172763452811364641221302195845236517041278545750510648819519356214900395800930657881786267485352873127788106959895149510741400906965151380490462769287261144055464643218715558468211943524408337999898652017682311800808954201270921902903622536239855421769134378905499167949518157199379239169077677756726986638805525754104492272046586570668685446606194553561334257044145887519003871537128438807308916476014203335616616856941182633675631282892120088924109562675718450715596489583971908008693243110839757616499657473555285293100477798584909747529548055603436056214048307165500687861118705410180791575559637149365461648056154545036685285175928901302772638355615477475559593540178795985508510076439988739073050624796977188008679278632735032847238953265062570549971381276683125018035887853727543464544544439899828276520422490304661639527099126369908368872254631224033684200293461579623476826918854225146623417737243327207557920793955030344604455469000334865595915740975887483074416203966417453090728509840646248666220632689633653601055384874331546855101378923141881741151278284655173084279985326764685272555754788505655466495096753738731468205749088017186832454198059254080076889868012284645383116458376439443622360623451089861206356699784962394615724182043668796716920128225242910067660064941914924668947638397653569270170954319589825872230723066697461745281939263530273989162918222306083137731130980069496430700565082121072463041694869678172980828243501987243396706861936084845237804594744948228433259139574492380913665853782940456842327623378999995069633939075651172113701952210250940024205820355813335036171425373865599907171350448584908441262572304484373960078168451096772803600308719637607858748464008016547046863019891061892360925801999622882987708018972329754874533077283097239626167302562500888598819343933333656642304272339633455674882255352767093493082901510349440413514956792871385608930310893727612982978145433500767770169090896708349621364374615196645421919759207936071436146238598425147171944319088857524910732883428313406126846917524863901247824791736379112866848004147490312764638865722960916239699834645764418382661394231406080189111938474692482837211188928572522195459428212791165746468170936405969285045161119070843426624469461330463012983997187758144753954111265530171254548900751997541673217458867416058534197124503192653515715237677529793157503157902732964540666358140818878627944219216679139278911340995575391745186541337251061877002082517318914814389363610328308366315111175987474554437690250166445200138919456707159985845929733903826907670739928642663074038609436000907960418577453283648876485673465455672330841980259239496778025818855663106067031354949320048015276162586517459400112884258451478263066549784936190681351916595156844390486128422034495759676560515787819234313119658967467711385916699434033108421872534017983609692486331377505123634522460663625530387774717466763809243172793360306491982045717197116046786707016570889773654531478585637846251728568266242926887041318454587951067403995922428918066473750508719811147121215206629529244554425662790379041558842009760983112251632301253691804949650690726373484647312184042711627230058199334746566449268962934769731804309599418234175303009032572794326691720973714772294189345541146405482582256740016118592687511303557547305948140240988471742476861305507047732583778596495464630979236149835259011642149994371421473068722123735128733356309627280410723743821828162585814687949701654453127506338174079814503943527318061777019060701809684138975685178866543426103206014440296911714598018100529511619319619272524437720131519132464131898826427332901329140250916470403523945548143562552219835327029267608134371405108201953152982508048975359019808922979262492378539887958055655643593116016430450107290403315299391907758204070352617555574491467380014428415753401784837018038146029720114265746000361034632992000222484186236371343870218006149666310388106640351545598000541069977360187449107028095870488729006245332488603831382461236764119616964781894843500714918864608104820316703641015052967106114117726412022858932946975533751831388379681966837975130834304478440038158408527333386361692893217611384987878445412528315044290346855997518681272292514591572702587481849603379631881287772479057499702906010454139394394638054587703362016480324324055958285133637579428182581036418891626775749185808176779816967310857131079410301134011527260069957348822906094930118738924685579526916085869170210786549653819738065766529717641694479095246045396947966410561219488845910258003892847083005554309827363061557604494799537765860380399804314430399540040698524074386942816253765735315912609882012261825874292445421332900711334611273062938625107689091276505942853925661158122068355164199520794509783593324855030896560010652666224321729160436993207622031861944417088996780848969591766630864090957179286030412322157880518230210090596561836413738230868800277303226478988274111480180591953781236318241431124503691116719051555948432550788237172700138826815010543060475519242230087353056103613148793907698109122228841040306879516393784808419743914371727355280438703196587028833429829043933709627820011603451322256181262662200730057479818859327842224410089288026553963393371433265603683735951015390590769176683520737664269662325218023970185559525515337757110113964432181269468401063928797137653004024749856507573491446711418378795801223112235645134730923491609434190334328200475426413306842277552822817475495424287729258841714217773672944780135689356453519382852986908288262737248847458816497724857293246948076434810730779808225703240050551134473509646302420430068060968516136966826279494673845265585361220334083222249577456947511553368089710515970601365857839061361157511877308127580848021814837445460247241366931826137694706650461098787318955212680583160350110316728629022902835088700795749206891659269803287626089673126943119058602557798276053796237914669745829932994959293139537685196292840607741471002465735789759586555014847105003455963581263033475392874824917605831451609907432404660697455813671165220864081374266045848491080468796899712014836802726495016442492628775672615509554372265077185996564838961093815858733276592668438870948543707777272166608324233502058888175900353705716729878417866506596690908682374065556361985334406804615667010839051644755646048184896469211486612961917389964203096387514340332737824872117072762804629386610763415671742461245410172544870613653739095423274862249056203697915925945909100552123605784428683957136578408547946183459358356841933450574241499042287434423823225624451630643359650776013992159994231726692569688321941285982167814295879018954870531343799017574217030644381239610388057488383872877081624233547193120892846991718488349420095628160140292972786251971829543804596856569751618063555815721201941113761875335098707462286822796895903769987663139700552126266713387708033869218225259479090253423370290520855091816498506735527472722597505911124934850253334754606682072539845059749360395007822208770680912879506316348905020257034229102232506204060470001706225651697350546202225300019366351913188080486497291034367567646409885378379227908733028528228089442076358766996899525372373717668542369559710247665072500644109211185898816689477077674882792103324818100239605362096567862123824754977518815020041560276607009897161816740162713643831276919001890171952833574055463257502760218487540474839202218946339023915579547469870809418962516774218224051012863932528842525316419249015953067568010765849120955032362903525780095464509395814417025840049217972139723373787039183104339766657990497165863393808547067866033673200639812295568123307217155964606954987835621615327988755099273140329348992235513294428666803499093835687666352588414641011007012486949619294253235304856417361518722911754463682421395059380070995119439053119927420792511702036313626056275954297502195917262519052793104955362346690804428739234960973119362605813030786227652165684406862825033096118834052861667659399963964256911796742602964529981074616175445068155671766741702960546014719330895129751974442187363877093470247051852005218711822043811364181390389685530902369108923691045912015028803460966156269309207480169259811507395755516070442950672437135465046262059906721372527526051248802187264062566593289442065137548651565115624633624601037236260363849552780057282137432455146409613859840163346962723444519345855235483882795392580932587574881557563029785180650197613716124193901887943460451116165709934745231775721281395052056157501901146234895518914078758112499305375450424661803312827172910086589168829892782293417370652209657623671711487883975064506338177014633563491456335501986595000959212551642545512745985891017552998403376296003044075637285333891376575293041641600185909837501303875976488125159209044644463245385479139909660271767626307706675596162185514479828485352234344754887272783790583508344882514175241450811150610877935700708111171777595849654182467263533654206670974668853469138333576972769222395897788324067862782004733280912929116286104195454024155784062897823637837941029136581687525717620656728455584794681409453918344290027303085843782753559371221577612926089048835664482055172459050018697706307411015346490940135326847161347868625414499954104140522924018096392076705154751924172240398273546212786100949683830018705361318194854889867737287869297597819475199195363316802326549394196558032288222064620666841334575299804218566277577198284481917216649566816313960092364652099209465240314071253076690057431353275835978528491172093085133250718995141173814632024438903524493987215561311683642439642895416168126083654575307467398867770449435845572154508476406622860752792909580629131740369115140142912874566144157694036041028273621482730724329912759495231108018231237237894506572613940739472959631671883180748248858827850910362549206788022807239559079311281728351049069730490142321708729981959864840710436997585368690459166969132031801532491171391491483932467257785776996071120027686379455348143186294509918439993599977004809731615399746386209151012303677378185675807892837317754989775474805154183634696689161544151222591496400144291403853345731274451344931295740578873460157947431073712772419360750760947720357879989224545996011873193772854518175965366994332839815097548744060217401934792069054697260351499351733696511478222987988967724609324766790947328055226637976878314815793265615983617938953521812687447449990705886003638646279401527606630247803605647167326554350827766485160231451857159136465490428793831427208764143212095346330838601946192678188069645806176801621704574595164258770179698559396310608141729446870938977399646656495545306466896369991924172598049972375651722080274810932014533066723595265400336469119939818865016483333610307720916397842299782075620464123952259994550487655297708445625504922379909391053867341641050786167979830865914312243257954925806042068104023888223283224949364467623544857474440639915677042081707775035675492629487320989263453095036671416038919876563969614096116253478786676350626807448351232265423043942946908122907199862637969675232290652325663899712127118563081003145382694454214201917682008031893677790764063298709903442514214523666552486168047350983178768243164139175553955617301133833254355287512650985206136254211571075893373784889790591906306873909247370935409693902891196299564606606669883294824660228996996119030728180624571650450137562189844204997992542268878931661746618570744427405110140770955083091058471975899273878040843580816925630607374311950498044502531426353153037870805645972833214124431252086813619439422304786347042339559112863398182024093111394518351175786231393801732216354258386669527530328277419500962349433528481985930812706897503406579718295436365988093269079905978121812294585174955823560952221705475588958223235621508660363090855998301917873257663384747958478803759823768898560084650922029633511063268542793998589298918156818237156291252006430647236064458050900995751990078536791000689457891451966441704039275845406686442558019461125640925028603082734508737734289861165433818796086633404680348260079032523924817623026241783592083405261594312859486147678866079618902759849472694422375439247068945496019958866672319295442946085597693591712366115455653920135777693599016901988258762552904895968291843215068263128072518444427237880881448729628559835876130931295171700123119114523373709395781240331553140126313007321534147510212089797421623344361279690750120721741546327232870341921258652396214606919609570994790097080000296812586995409292974243051963748617817939230653282090578404464966309829856194877859399821647704580490756791562378755659220421511711135623262687970860611012421894850133576690900152860468581075085733776152918062733949627320516979190182567831747502594694834127478962418295115456120033748383004922012529591091539119153081267503276111855302244332753177237457006239020327830128058078419124049279688650405238389296941933001930113873824971347398022253162374544792754256020684427728927342965816990799466678632830668594271424354774428846069990123502421479710526251429660598119918213995898177375662715696832752215008438100630318870289015264309374273492510338589365670423376449013289011308925434874470764788630216647906825348784607197184455796071834392067990983971655222913690713055848402822609315948410173615084145694091772824501352330215412454195117607252138401477302619599090629074792961411532732674991212723764553108266391596764125106680403024161735811103990035949928277400626229557634176271910565228804685096426683578811852262141863769509004147825917543793308599899364155498101457127859634880259298698001146982569691171052512541476660091465063196864463376453454750252050404718063140796363569039047965308141475578565550355955100891543134120555509452349737964194224648590264221387343552398722695061716801530989415273611280623416419207260730949443716223027092690138463002990198225885442004625005200903114739622782737209074745933819814893543102185617453667992797009388119701398392225838990898767524017567362020818735864100810800689128325978372254802655565711795850041158783856272273850518809063570907201732432738468427867604569427006611220282176001769768322786752557880286826379238233460999993915033525867842740361126562382754979351574243953257150435458222575029941401132779359796851299950586574544154012294786266849797304179133667083205448410225340546151875765039340751553300959112471970400995754351716747304644265594853358777610337137984878116430868690600214861083162868813920098641034449771178566288494459735990910188645482619354733571049807569671417299977118927983582253411463526561485092812946154333673953126512492145410490894398679163982894147601683752414252286323625982507861666711854638044306489899522695790869371275877405824120627673614927000427023560492208465587348678778773400014465615209980615507992193173091701384323914439159842580537281564028071043113333629593593625470817982637766502856323601247612324053946566514584031831890324226003662793655582725026058901921581447087716938476050210006794981929890263952452868496300618751467573243339007598773793911158942540998116159344332404591662287551171184424543049765992945812616817221324704981317654394476991386759825958272483011108266229007461180178142287108040954325760333355848458934168294683320854773632274547439439962146605732070316506264201996468519140960208181485838258991970810689712019177840998777321813667748543975079540792565864723280147011198696734857681517015581594354210486240617756453719989142694253247597198008841392013790200657813971991467591718638124172673388080290211848832859297444082505548729103033704331754749635541495834179321651716578874918200368456596647557093395666399099912912358859016275927617059481867028274343408402303777780776275783166945641613669983209655842937671747984834150063835262024236854306963036141222405526417777858664677935617621468841391462361747876564513035102223907403130268497263379915146354595243164493488646685098008339227345066345646650353923065542497084441827819032213842840181703587927126971995801626341446993757006486570638674187918530924682278301804274057321863507205506779733579402300184834782204893884602072606188306367963238595609784907518084728875135738296484208724864248508285919471991235537177756212966564897410047102273623239711497834949311012741361247772746542335885410533305838915962845215233633030957427866257644430386263469338324558940345031502430346965396967875871769256037513450713796657239421999496313972612941774201245310416413965839215670613453735532292997635240562661087998278463225469192804448616008423256316478027812239172458496914320455860047687117480244896946737879192150321622843118535245628537160929750873079284884870295228842531604242675158839494450296603925457130129604891587039214226575226903023905487830210210848233145437866774242087079500351534692368136467266581429912872426254273036303659668264367732482614022578717406335923310876687221810207292917838474848950807481852545199259246766419711525272834034688682357588114214858686811282053010209164253482233160805219283571152768378425795093865327468070372323260302763928582645622630358194287480872465821720976124727022619029258877269497864110800922134524730062374001855728735811924515661578363814098157537597254439866460892120047099605242949668866852653516292317833670814582946320546854205788335502119054601625067309900933081753008876140928337368310043651716604554184716791590948026417767674298090490334254097961066941828872151590002618680203868023085036938967291411249263711243725032004610117003724401851468934871634174257455244282551148575611305565523457715766380765184838918807031784441276959947661506158507301466509556777883303623988078360331252111665582260847761479595350393525897573416717103347295898569396396947071190171557918849415866932391213838697065667404418928926566661881431044207105926270203544625542526070550561724717462591859777818497397174900830095372312814700180046704075481828543849395069537179667443191420522273904050637262691883890198230135484220107606135127441475694369974056812138196988913630338746237329383211601031986542400547206118467745975390868500074468752833992787644688347020299845535321301961124062409777959904844243614506162064373809182083031288460633557834715392278712664225988832341112661652145955156013237245359184397173115337448459825470880389840003035338967519720895860265907736384813226215047404354967728446559477876224047056458201415882379016207035313558949805736510098641632913233425423725125475242680187379854247742494351999134356071535506513456362678373195068214384057573703582024658788526633319709361905560113134543384761256007686510792149549669042306658612308748099449072891068534823112106944017081663005311513135672656375756933661745015699968249447059862010897769818020384337496468064309619128061956006306438077082872871828049750514700117149148925084024421085948718492835719855364842354478962033969500469961390619391751211456811975532118745333958010531686534946659286859035485505519259351885765648740521161160803208757988284340385604354876192410994566288881353912716945924186468323624969140403011239957561002950961752644454123377627695014457304613779868775080732260420341579548078295419993199162415877674192338685344491014679065077313849957530012110187485987697967982092861448446895888549229678998172904022279850170259257875989771573558543902926590073909319677647059768006724764279984819408506044247971509347925406033432418864823931960227314235568598261167025895741327817346601266516301795748799351226124584084981338746401810388563074388902773917849621960926375382360342113165711803536658584162341556617979050397080719432630384044517839708686211574635595344526196822070426108101325809702736169418329269124612209062436567149456111886417921516145966035969940624560177407223807072911001896093982863785581585893059295072567726450191612702783910375383368318243899921102752208219189482059475038920220327038454831879671399290531590518079990804106624551947087106173884043939415095748790698779779858805797651428152335592409150066340617956744768905241132999357025440445836197895363896566748438179572292886586181460062428497664597685255732706041077866802838357285163989798831332878309692972743280222025823304426498720360356061993680572345980611911676261406926028816968125078217741203238894406135092680214099764302455536813219886005845238485014066055473387987936213762146614530664171465165717818179497349999239003674383169943679082373234547556274244656797702049384518957666219356741707858841990706190849439944181906786412759558981988670458569821051010362425086497459709275343843851914539703203869877142630448085268557406896599839664424445769463874164165391497254352218194870042337912513050118946531970756278623684087472589367824250878404393477153126048614331066584138531543899168380779171546763256562370519424773816831923430904902142530513755562057528455223966314375088669926185620596386540427611898004297282245395212884329751056491394473079467150814216163499919727506267023768101562111498735888920951138327154030941286641309707399981403082421600957474780055978548221257338492214160199512278473627727457013630069463125665159285338833346583677075655557068054857911168890023301973168080516751059371463550641554158058041692740456134532193796633431212801918029198259527348894214824247123613683325607041136709207040574705765332007368904934205559063183961856030728047147901150298430266472673570429924572270115147363932756049513178426775913254132940731697744055897409284764086552814325897820627987185774974534595766898837761502594733459100229617364391629518504083022043421763662793169687541031588591895985950765606268784738401792477144420670555250749600577011928785164183297644878096758371119646277193936181257043426492449384489176848076217816177190310836654798130356359194429101998867252540330448693837677198329303408237181000072328605144568695014243074895547677309597548987381828756109396887189574804912180013363052224949629218842343379091232080147982818196807712585794007674880387729148266992975371628575021925315743913172887161168227979855747345684909392764548860501537793467963325390277183008960403544720132670830003324714047505809783760195322230623597721061334377483416356423630881958420277259063877937642614723279575234702931332497940300483126825044040104441652319978538665662821644409582716512869949980580308025800733730200259404011628063308109304716474036728368029455912314950951365392399868476841328510976245336276597263753289663141808607512860440270869130298348434525648633866529177405898013016953280385237824580166788025259203873729121162739934177394505409573630397022450580579263259842947786850497970143034317875742038218482727182990641115374437235615704387635249203052553063425851520120916687477927770412546119075278566911703052166422916594310859491734691068663418199452189553185121714314093789375818410792255181193298516951596548126436873201212621384173489809698592330594378001067070049121912387874199339843395936003614217678987378598373464247108973006148997737634800256900431195663360243556575116390301872114213470197409583080106372628268456612558916261238544810760428033970039454858036107430510502510540038832005895138790540561783774826695509408200100061849270083062920553172159094605252895227003473373173022146694387640473080185455192474434011964728661455008993632090419000276092542589048853036509911664538810950406888855240793762663163063203293897033510014595951838828931466965579857989893079881332850335541335126663967589030418661049520802863204845965884072266693314818586099493906467581661199525439751757636971993109042070808343005077226254961707218198961991473628762156003735830836691760606024275643276135685225583397300486215776007819032836111885997493531730616304696142894927931059052319020823210837121828626133329828939278023039823060702209322917211612598112802720341519331839269561471066095651479874160727272209933739525544296217660482257649404987306425101181077508626099555338341277433274916124113620816885666792948815601936929503823104437368916620219359282498395467965361762046019208664908283688922840266895662558532290643518721916253608636023054569756751980870662019042337005604874312127330241896239729867722810424472508454526176615269784647793528956842210044902348307704920339919120037858204467929844340494853211001801026746339448315806574895201774524487612425387123673837292366233739859201276641579609077835233828208839222290350155755493176026860794802261582216887699526494615409230866311677756446366616863337334753893623920476408653244595836275149387175039117876388465514653846406670916431684488934173208955267522246506565947263676031084060443369074974389818692245442539050462349939387041437031439567899041599554537610778044901751502790297918643033081158250431229266890268361577773697748585187894889911105512445765148684722408979799356768928399572389128902883987199596658845548188590751314964928630862517229969355824065894982991785534196332766847148063883729853945734057656423238763480640752727746426450842825580312641510500256624668395330712233868317893755219119699406716128374206877163162056448002309887443192061476976765776851826758589607050768086748780050945176252054465032006785240484785725811142762129550827956156521038618229603023679564400638728836301121188339654265395132128986826952551578538117402131413730448389662825108784926916059598076715317297980981714595031461376363618394885829082368826774693689659667713231609925776496165549294163006145195048446205520512922027830845478931282145897858578047764753215600844874617132440218104185536929026155188690155132890419426762508830080794045715690422911276560865982636499587415443426086618207042705190028950306030351335312746327491251653888170772076954629032661685039307497112889427599632553390037119533875372527647167474172492891305762691067802256030280630930138555174101286921821875163570214843522272797410743743230973119192818936524837448965498392027895138045822736111111380613409888536277485432784029106291832013575568513842337139450711473811985660474667365480569797366155441019647110270404387112001981300187933610868923836528720123717764773877317006580405791714562555356695067087447736825466653365510093261380760730318665693692641585906985363050265815031603815714413171042066986893043827233849405436853180424919769583987446102532757924954304227963536700494693749800413584706677631407340415083693854522195781246408830431633262774198551203604467588008077619515620747663828633037791241879138639318339252846573667200345362684359731140294996662068907145183265735193820754987163423604713537648723537561318935420051260804314020680618126421341069135625979162642483434356041403715525564467362005305189813411919809729275284556805767229802546216100269811449381285877481984470670732628542078432487380101844763713246188196277075629241386762123447371674157974635198212520118707544925949858096518787913570673748694327615596277066683194418799369335218610522314759012611595060310900468300277542127910952804943475325612219298898841183272661910149094002788740886720572718002735996455794338232716770476201094244275168132025542858809601141749566017170357483702217722293254475198736260485406268600611674680663720663709893230368828280637821652737842411655668220660497486876701584691570327133396753866305755426774673812153665399247398924638729557259371641833233883216507102376346863965204716986887610972559416780410179338755278991364005952805803771857508290686559423010873504895087236477576159502780624197081786453201086329405168250081491492344934919395096616066249486954706541726344795983040697751188742455535187501187532824149680572217092875162140638830906166765942958041137243303293228797156229168817753859432921715262659525171601994403121514092166647110193142185656656211704240293676219019795622235396289016107584085481509999802250184805947591207287251674377996825957498180693716450127652763711946275974598919825942759512681374167528729063853009108364190481070921024674271198386855217228091737082875246268267357263237227265236417552205505391974616208594617182713062357295001264960288259784313133146552956299992699548805238050902894275482103065917517991257422687617640039171706287598078069000331899635330462720643170472018844721677302820154271439255208243205306142814834568154802249455666404970027067303088997893147192796534497044218114610691943728881222462413722362079767233635717839704642034646285961119450585005251198369517467136921464937065806555498528252660247093566127220570604751805228926020662448574858385206286968845019350193388353035546372757683272281506459182556640013108105678834102777386482830183166669176105137837833738425546485712692395117013131159687575264520941283970070448436460367266027931859384780516373797239226829399605963814860457914649072251911030024451586193521101275214213852808202217893457553977394995613459600462532796291634451531760594865115224764256888628347090922932959965605022746598009631812963184175570420051951939030241597486720585669069309225612550043947731740160797293548097264971368659841430889228135654733969780185823666784602218987763653220195222108312506710495134086961817548255987498041490747755327175878581974496114884204252380094860813135651911179335674276211997087208225708413045929738131125150836480218564145028481031059521101676084693525030440049121920771039125335241629337397492251528855416960825947911629448915314707821575528059790141826928121389489476559176050979025215099360307788101431274541908984427064536755758931151408137832083954156961124803377364830054935404861076917421032402176196071395701020873444978659501007402338005773224264788991920834404574160800127444801116425615009288640534769815046208507007308935000112742882187177237936659440496224605480992150305911349476750596906030918726684279205685399829115950645668879639039357650961757439431754241012436998637648911836303531888181770231009302623280135630271462048747954483276485293761093122073798793512405151215579979283721969422638696901393713695749702883083317547980776403396148125660010192747671787487810427140388339648441623457999740703274931083208643254752406648683263594860463126447922096398306020183826226461501752988046737179924113153025616305618165455759895249248835186452196340163348121888266969360728861665028066674112614231024598319700034100747100496435662379669336750539685316323872036978839044246932912421932987323759176016467932430023900595198985646345081580681882990186802522620692692596504993770680959010897477561454346950610471003467921273521438490941992606019159163827237681481097343467730554578059378877255332990719300756522598917613903435685486072806456533027762228968705858767328003413823142202390321619808949892891743224190012946141029771037907711139119829007567583450604648913872834680038913491005801586689641211307224518815740842651837232889687009931167074856247591048097558766083126296165732983595501446140802246690826675477317641025486502132408550190055298003355702198507924191198499311806507671623616825793324771200750110909230722766816968168625915765850654804822543525438190619859933708032401590263170838857623422738583789883553734420135374428892863333153064275738076526797048120959948111356307077805720944929587203420210280795862594023108744092872546438298001977096055217142350914367773463762201258774284116464428914185850785862259730705845179679049860191046872535293382779163298187514393142506114729256012026153917834186196262539833476011690763249377745183155250540424877383301701500382866991352412036334479893712645179290036112887557092718956746294371010282875043859479553727000211698583119412726509421367308693154364252094555222072026951051183950909754053207028426558160756515115019896187537010357328901632059663266009906318657348304313760983360021994140834781082622966346942679155450119908242142214559116748831513332958312764574256887522746186850822799965914919843493711492968444098473683248194527986012675902819806737677521624879914147555279329652096493800220854387305661970590289844887256151408554053103633252885152128082249439133398060577924506113484279668213409140479024770868066515923811420925696523303319132936149545479696416804084182524981728739340211612733399114605082777623895243823922737837020370319764442161891344467448770394877988547750204756909040818640614769153462477008105755475322945327570423232699672400571275956822305416366290699786012834497155672392956230263982843356693580253318883724385089503537994793330772401582652549168680097828787630885228497482978506153467863673346931800743545226524463217511339934200732233818832176145660418869357368366644462947227516995034175941157699325202595031734413199924064940562529823929908269458944806283304689937534499023579935178290098785449418031079335255059323529514941348573635807130461368506402175518835195624453028762690560764163044257185043535212677255943333743787172450838776098633875745780144557893818018770365859658357343731760198843468749918248589471755077792844816167279206933019712998538984226380059515812069480525827271512064675721989199321073953464501498583821190857832956478471874230874040339479180108838501985821818071014286684434861376303082891953863077182174698068103459470754839890155846630986615227693321048748831498331509874103078029820689383397754305392523379616369904449033355006935312062471424892081882012891787789509881251798420325371801589205897242707077475195896867987854869255505735659822776782736490053534262971305294711375402961788132719938434054005149741334013906657552754769658115718811936182117819999986924856832951009376754413690577071357330664240931318102989557538575937085810515425901299765453496822064461395195018697243835094046154297827978270758645016723903498896398984077301467031613781811464702340554296592893406404668859499854296201197110508908845511771621057757293238506026490874527666234620776001484264097022808271457603230054876751174938816796403287526560458368063235365162953928130672617857040673487397244839854235835913383032096447899786084891611038999833745559596164609676191962959362114700073936448728961258258633238019997571213941332352188606715962951682948107468746228601041014629473532680199863646103197584542277961316322190565527957445811863993166660670738178394416729904895862194288973360026740788612669783462369108489098593830263139454272564028043813788644738426718643008563609930526253345752435090038307168459027573510381707075279610892454618524674054329825610623030682512504886503322656126715367999252373825775506458632649991390776031164149002931274691895100261387361826471927074038295649783948669674303123883022632371295960065842835619650722551868554091809512461962587221574924269252292991182315753702914909982465952352749354055799170097621754964147896051161217294869697163324591007243854714492502666220899368696953704167182316043531165492599615426368983109069696294936895650504060354230695665159369513781358152237662631947055587017439539334357153794939844905081279934046628453414536061639490804036970143634731956064691111372100494328448365043570935250762756570568322953627427751529331678700947149107001412361774110325245718319331124756296754574131000659269578978724314945481481112612542310343538585437602704854039412003203926174812854955494343374412204611807019892653415370390503693400387798921479897955704536953916858906248425342815844821415198347028856376545546858627806544654500951781984039110111243825649855317592903400716481105927665459992906540625017647939252812262999764998297677005947642935320270076865802038852349252458009409634109617049726615966052060563324907211869626571550987865072123279097969851924620344194500848823824938935927100752129089932857029041678561364481819632453334415108745987279314649669712650441954460197047874397202090125703763624255535732319951407799031855259839974675345127478572260939947878710916582705708351499524190300645295724347885919085765225451807009258074355456439271757978564078167526538277458975653257431656049303273441331201386656154464290553290686775806284260961497348829026965725663241702715945563715541932574519133612775375848765951324152709001361282252740983811053069785927787248443039558808080004309847109865493509763427739028677994703453058174000863394183739417561418776375700484157347028111146915474940470094247127285672698739023213768037076932576807667510681874373104166953399970208786608558593411124174435210522100223426716060366932713132521251314389598825446380393416033126662221604135330112686056936736878133721410143033622447355779281359127887830641670646149350274369488224504734174365763296152985422280721564789230359261853408743902839181400148697769963621830510094750726082775316562036125516701129860571216305544107622070361183003206034837630897542411267640405302603398827043063458191063799253562840009605415184507651616061306039653066358372682689379533880255665401864294914606995487602187816886406383115035793607432431834679796058206851525465253360629843524081523608466832503040475569893831735177844271738596911923589178629807701189167041219204490236324412912277355771043421993611325643463687413373179989522840958658021272462503716643215852384907806675435997925522541125187241157156953823958256747931988850711539213968056447881614812982294895445948161814347017415977154097156862928657577887998214513335034479086933456486749874005909815904897213127846057258697366561387540316329360721698347275457079732717078812396302575682819155355128803082096041191868265967261650010306156254342686644916310030830741725267367359082437534173207564257430938878279066708929347055881906655442576764637801460533700821058459313221477423963590622402502499025116816587020467691425644596866181733363295218075701474828878774140210658603501040984225976792483077077605804592202109306484852034879840095568258397013286198353006518848675322080836668525136711041036077050519403941483126878982879612844566785811207060775360880981728761418921980135824602323912081051674050238915911784716213754553947981785399307530105099631454524791587145307458909836695457179659676890207330822683134240071992934502862756300905710224086251100970982705122802010009894064732572066001028924351519710963928789383588160773054502465511685160446860600913784653638197120214558200830641085507237807311567099316322352878100793989714839336437639577480623284614325026214389193720862045795853037336750239713518384888981143345487185480557789857569738303836934256150089237310744254833365438160010942450460410667328140034869307503949171026718934462263009841263840266774729889039552011070886594752540146841081806031948422869555733935887213439858824455153564205183701084409242495568843069181745759789394439933063630765481799906321376691108206253470637473408609469004358517668234643261183588864424999516785893752163117521597735463217460499850884813567886876181471665895544422377501321641417923380034892110829104665234984624109641850179458940149072376737151912457555442201276999278308670748940692802465224757632992056831292158142623672860553201972693551760064149532952713665743689664852057919829870467168667215871829170867330709586846444279961499094635271836676417841840183669320243713394226280600313194483214276147141461976995941468675828019155584899531922420239369574938481756305659936685227901837576337756419289402391000609825727832393016210754319013998070992196367518809274363185079718814189867683159086312715711359071104556592627197390179030829839702448476731997341978915138628440128615137688777771821094736625335507970689994419597911421346068382280039958335675294522155183749961347211761897907994004351268142793358022815711614113744381576682833054315112853142773438426625722300779280065806939128815158306965848170363818621756009089511752130371462811826919823183296174170735766977430218276269790511180881591138472619634454057892196072089166208225314665489826883525861256152020947488536174687303206146616252526716643947596691052884274733702964444276093986816989277219590546867381929124234129593914549181879290192592050956087568297002037772456794719170653931975709511890390016253451505419252570656083231326861532635347324315077567703141786019171998472867938291096993926594725407416607169372404492212232547349623294236119006715996243373472272617676751200889838845493111305206378602090874186120476379666569015309707255860599090360163868193527497213918235893912193458909064627686589433269229528501527192064570343146041029977267999239511618361697178478591499402316031183653836856254812306628829762999617358185247156943643853604311903820478205940568089329259251731591766737443650869756343202970172571479194247524774561548490806768731885662718266025178264742432545345607300081547029669750177785726132273151233605084598885001399390890574973075778941566783590574749219886340762801883591582088782928862374636776746393323363401887164802457059301777852652242199164638997464729623537732816647044635868940035317791900862457351820944327762840107156620509164724868848703863543458325791694684703396749580970258018561702167468988256243248520159006872236521724768826559905963563402198544394576718497287853673329103592720408144576498299089454094788337463386454231786347162275866484930965861933289956072138925430394628225984390829820908468774877453366334264112431059785907477632191390143104019815248531855228218332265331785535801455943005102657671800442281831326717893103819380646190221638618417303156990427917440269031986526049527405273245802212245204919950924102194804338655645753698631868103450310629566779370367110968742532032104579908353839502210311921829543892545810650397818085244156265552188305088435400143208559478127241933393693692935945891498033655092431504449456787001510956686211714602068463822146559414283733722047377405354593076333236510210675216395845316080403711878459214380599940847986786923992588241058782279902400471228389103234744817218166270896606573610018176575863376024899751698615893362435349270774444094388111896133589570146927860069386959659007011008459234016923534747658027102480413996350410562702781958187533135541176571405140331026990627047157994880086058175116216248881719904823196714568948371376530372085574457879644818121378662441279045855342038148564535034577455129805675794353091688314883632951369093888744688934203655564028124939305056368520499669736720550718459409027740324526463404526367847544087848887011935934945482858180378824885967019313800516173332517421878883526203198912603434833378235113104260743504810362138796977098033086113620356737867745145985176460529981265471536475113511591488215874554029538598943490587173944665074187706940980682930032404340368812815964695943818123146544527214803968170207560952615526145949674919673600194234993922778332662955126721418505007310016760890358842105544063129403369166550807657639165992183541537346178962248302106883663957509622929447247728219577774329234124110320917902001140978329693850709145008753357511400629818635072217159911241121949715148655887882135147946137017924540604903123830744891609558839059836379848641607618259974387677759151797861647326807715807426474873281810083533079336218589669662616719984956191325619465945594314504358409005097370893319766640559497479537844995055386899639588575828681795211234129836325500255954670200395554414262058677454846060310353196742859553238214987761879412985130578418274351960612578285225738817365361396484018153668594215448835560279491829120672356328867261736397603693034230743321728215746066291713046479319934545050382449278550843842794759098557967866750937016576999879809577889010484632634985751937868367191292734249588249249797721961276449897808311233605565961941550822245332486699274734766782922726041859683166589774281440962313481023844537057173975384492783777988807071216306054440385586869937889293866915030669390335117901984094811281152628117055674821239880710330236676367786674517165491466099170282519237749476143683271278512104103144851023764950325785719074980445090914879686130819464370330174298112357449994128030611251577843750609814489910865200815440516698404681012501239110075406752984575416859568888344443655759179082937686772402875134565683944683226435346861507749327951611410887344115158156441803489031986060120285549496892300922764599263144968023427882705936841047570751338776976081220584532325489707770393121573924480192175182704697860434940640418687945919268261691394353535641867740153412603369037867360982134545616798097886333917802519880468271215888761542675234288274151188349859096857887353591019766197480684118791204301961745517651407718161675018248708469888642749609640383182573194546185949046380569382659464852642151173599152549713287662969197453378506375212002446702213132323874361317834359612466957901310292603557384033064081345065519654965892246232641571583568450929382092648317695289091929754348979288018314305512202779987765542473844296133330240465763807798581080798178999251165489698715313654138680312182432736388641747810918018182350274307238925797541749180073174521282920435250514911608563216688270206243993803464922198449835422128707057022052521739773962171860031259867702451535912665036089784248629256044475109526070983505651377919346325375797713320464312506637505879734400142428448996190025362639374767747475147434983965595549135465494198822428162496406104009314950774839681834280936854276225903266755816870865681451885542824214535094613624335710649687534833424899946837755234740863151120493205205037666611875496645012812076057203401582706736222140524375527837710646002621065499661759670587732423793221316726050703267472357828358968632519401414813175531191458618106912115878184667777263068608390166077077839554909952135216888615248788306787086822978836522519760931385555752326272753070016804058768016587186733315785466852106438815550545073694073375525565752381843793929108274184686639765332756139783165878674412049590682531646013873544198693214678079427542813384620974721261383771587619641880910670105920782430081310962191168750125743321967550313066870773527188862339684606595230119714983541476657684876135507510665083456458971229760480022690958248145741225245490797316220343988498137052007327532479999646561328392525192154599388344664390336222778805255637208778681480707565429721659997940048048540840443392376560591943349229340802105056216770452015219311793248454454304105813134060540329826061212444498853933624429394150174590256584858449953156855783474247373992766151582685928975826163122644324800246016148673881188573043256564874159309528349657371745399582682899051708145516036161645618229488146111591652672176747647506282087546865667178161933172727293378512123842083931351528060916529900680829478888372279716366715071071729421317697035056064741316277536287197278547741804292876533048965766864337723228696554524367633930480891969961229959743739969064604478701892233239607665331049560973785272491206612998048644924598880826705862291248331119391483055590284370107771405396926802947022702256165841049394320399899000336298687797543923375819929336419518758596868210129349628383452415126396506021340768733546533492323749682075276127009233842574593283729804914389187566782373037075841814075298721957515889393556398194948119450493901949336899507827994386053177811351190575768104934317174348033507733680278764463989557658865407640756140414948924285696885588735121189919655002717722111902819251729382779808806858870073321166358343235338323758679712674511860576025547877726366625648499422913268377977928775258159593901985064316197384784771459768593636533978707702162843989760794498253665150865084170559456767125736042372549340239848130180669645980696832924222062118272235287862650949117443236792637136437275609977955397948239924874428736192844980502334409345991682304685075953044595063628602324107962023681052725554989789317469538114921748105812589592386346597135662417653581166636672434227241713114962582893638257325430388029944665153850821244741354836984319804070156221868837747562092552791489128764069309157006910987332733635423344821814520239326109750827063862710655559159994307258482968294323847546663148347690865283961953584983904160862090007716741156282809257608289445626205205364821588244669815733551585912756030784683426783855805647539305054777425846177454397198181076128580968599000521529360670597339918503130601590619499892355118830687112148066566763318038050088330657570431080550137358821823986307197703306916433743999870111416674363142935717072794098177206035012492106552509778789474237267724834488679103661585998643147049740750144477016153133534857402702980324595541713796122326637859471408735875455124465650731050302957536587018418914482084894654082634219306150780376645259831474320564054941563215410948119151818052746081122183264990647948696564316922254759600242488444776644895011505914251927050086492249508942245492446201508546328602518490786134511591167709616381570636385852169294640693682313481690802582207288925037053333596327025877362223042239872036952854202762637056112825600615133485209877820466901538552268516513749157116583389408353782988833618141750619777517334283690642683083615086620230986002678884675571343854178388784468732272701077086884690974010590931788285843561413791727753817604583655874357551462551704269975920791024092044340584703064946723268442042008498122528356509986756462363815109886538670587947889519817976371040078278146426360752681980766274732312805279226115470154883443660606910248984273835193773563099766745191268550331569891180641672766804702210748230918692441849048105377323329889132628420695415388872501825229414741501110062182529640594196263274237387661681786028708159661769013445040740410085786099646467116676581199193658201503677252206668694995913990513306396867004028451909411199644557321968581016327920610137990007065433689313091119753130351998931948407119778325238170732897166846906764154712176424190908017097378297640722024081278051209291754905112204486678926995998063647871001006334928877867043456527784880768641688473713675136451782822636528723078912404476332799389687911284471263795309651980464835504632162200593891136500426465972204214693887727097049459564782793322079191818734862930892707928050978298350929193171473576301638799798064787332148924693900683727135180010801591350422487223242466572252000302165756684037633967159194574999941904061304884731585325388796050049967412693517064570192589484075795099828868018919505681482659701895527705755680187509361629836382594455014168423095662864533879688681400643337939470735332454979845391807881678295834193835824850545901196900813987152190306577358270484002970598379344534285035077258199703168687577732982162491853365030757452712583523533464297619689282656687951563329442014825859698720261301900071924791238826707117022866330361890409517940753401694552668572650052901272610640724461874334439020945412906218834986605101786689258505399734579093899847993781653044100258834473779250638672424953227499354042565619490835022701224834737495609674080638807075884655903006563247030278773678419188146038838119962982248875738322084136750403275611276134627126055080917077847480760751469345952759045086141894200356668059880568142082405410228847029113368972550879066140402849609477352584914891759750740163596550309159537531432006769052711519834779761904455281885460183116185102532308001131327676172366208488457812791069965528651956322794415164077626283852134112652537007774155894245047334795725729285512814613955966238636021113151113587641601556137030882151706677208471016674004185443994563902512861316428014972961814309421366398061163672847806555359676492759179440934996314333158874612568133338901964687027713662568621395685486493269289875982130934718797143954091739301327227888898231096645773297305290326828893153236440753788936676561821738373990295130027568351312835111522181946940850288737091652219626663846458318124877780296041885285260756585821742254328835627663982134749666359237311692025657572827181567874194866124695665434900571065228676789661589677509021684413689828511578314366463369456538728312721684354364278637216866375434673466157909635318017202914066299595787563701264532510471833191769877818454069664931084998582483455444257981453155740465063753489694190696089232079297723920082702029932606368140793872071761645047065969189535132583096299670352935667098942228259934375829383323135643069312990540713624282631128573041887841708439187109890766702876482161168675152635840365193655160332254149819219822525790932051988456242881521728191181578883363953182848726441129566017257776890666325993457007279145512210112487593060270565874977605403334757641674884545269420918741012197639665549736303162674869515690251142373627935099767775537459835501181427744335427876322599779973705646175730015381652573593750927487142972405262344649961234746653849910562165091407686830868873091661496265225732596900118404819903754377727069343512261070177776574660843953127152022409167557613028642125914222830577676098788548803995495970813175434944135430917400068308663645973121848848679441437709204987809735477750250128302979393675654108983136018092815557048289506103114975733975665972140196002758621632671311919073856602635597010927880684474382671459979420097977063188014674831646885132187715060503770458314932240969355924248292768313842541673137183013588589520236815655630568947944189337809983949643725460375419617292340371709202745349632018081530785231369152525468908116848511014176920975340049229515334280873207862449884490609960579007426476991842670886759301911784668201120373598966043328930010270451363020144263616372729372382950414644292061438053423077548838504918234549088834104430049725940943151357588547218814081823634459203355367189998876650019502853251522053241950567343400770650441993647849146935432491153399455252565365480349995952322071865232499190366621816694643240786068607084675752873703361346444668388473133704026871535169593677579358292097505190361853118939877498944075672383973958568256260188328376356719370828903682701030081215590317847856942941287584977361460500315890861791629182832743026991274477091325471114145846361183198253743070499571190920110094577841741089832927966937231453286761761303270005225015697705591263537448778165149286342904460989338570731604996960495025874483134610406569649016446987035750529764390606873071547826251777979017167132224890327848136368214711293384345467558124893423742427765841470372391582524828829720911190272083894764587837368071283557691486769907333470568812033379799433885685111817964483728307726364577204750501784493994033810606185030346907828790653056077820520666160287864808896840203196911820970838910171785442562417721524035858187596408499869088639304060871382648262116318972158785805897676150098816280871267727198046569824610979418928216362337423425786347735115241864342281741371302535726783807033448292583292273839753880591113448305619458292377391086961414539574244474895154326434552974302807179423159672820215225016151768371404917928372162471032425040594439329452545427073612895892844694421265804496932773023390122499479081670903385042506648891568582830612875975962939034446350899615302385199263823875685520040042210360380622065840579850704556038065868252458107226821625636578815913572741066000459675587976477404138163838382237682634481758779161925356548474772351584917903479125359592832528101910326521184774594589148103118545703080013577948483491908831820454919393709338670431190894737368484366880402161818866390410316251492985399122243983444945583924525885081640446356383956851363547611746876595047676705776334212642118894390511738684101957429226781246643163100180448058087291902523451450688340314728108467462129640624133028843712164284397482713910102739678186091802059731024287677489869813218992703836484908665334012078567802182564397772543040419243361289955932291056956811405326696610301419237067714260878565462157267899338009828508958908717036842465843376974184691070412095609452707497186944937216766973779364039110528308363756633081885832609859161643372374865195876379774391503246616765464831761073733538075514807394146012977981832289341540407779926526976980062453069185189249804840927239761836198399427215643814393322293413293457331818054454436245950581605945139674990895443619770859942889124387389747478624316678808486711327632232961176582925115807110825063584068276221670952606758673803971226195857567198191666409512955274139926083101559893617085069658441574061245542616768445367885680769264747966236094243218769433136800976040665995718685775571494416249064941827680085399360444694771406593491634991264311712422867675937774275721170390462874428127575173599538155776820431110208256197132269118786147153541769516903899973487637273445175416441205475973470713765906438683885858477531611916760415123466161715482084452699290323617262553958745758744946408276050662728765857812816859807049274146639962478995127226710563567212333282057620766496166374919247144830903084446896835170344448303173362153861615509072940637291596319853202221967032474041809462380385472239970403398940228767691188762957493422184763280994606748741696399178245377629414912044970652339908132542391445482124753635336286922779705311856114042355970221473460720079791144457249806212637383091763980709052306818972666987352886033800692136662229164655845988464952186987601590493911418510029333690585421948601409991302914349440392916298734243982831317871061190587476632279671698522378515883679914036875670363021719886134248536561521992990569497739374504560524947110907379613931403758236048856078234646225737057338007601665350090242419845875586454667397423770445377115369694700125682451252131381660590960572841088038292448166767138010772532652927600558825996043979241785225364505503940220700028358716773572910166927429059801148806751764427836014015470473781227451154368527333851390580507581023317655225349300836001993805032214521718601708433426112917470112645980450264299148605891160845228962695220925833664496561095817430966867462636850785806154253916321200477078628163914457330457100991891435484666778172829646347609029277039130855861297078977865302774085438550228625296233279911098453386932651804405215730823748856184644261628634159974371663004320986845824334545137724848453410693242515598861798311373909905138027875421173668172555812382067296232428440131593048728896182392577553085169884238849540925217966652461254582266797332895144858317808850003140945207177486518724973280781127412556232135293125991853921832305150456244051939703762408880759389161216511584987829589893539271395628355976554334121779635171049603397721085875042970287734772551676209623503220349177738703452827024594898173893610760546992272216792323703060643412842377359458799837006463525346085661585704034601962608931967957102216008101952631725830337935987118144926800324576697178160383747571663556751694215709986346145329571256215048534007790661196905861634437645940754689937864822021900875997855802019561062162805066686338059363681364925839960066996268305322491969281081131496707981338476668791947076950857302863582738014031074974151930868136162358581810338337239435844143421745702563055896000552516288545050777932872113995386450028237860290764659075378100472824780753565175561100221742223100217030121259894546614951948598055463424259231220057230834917257135181769610531577966091757515880954554159197282062225839438025075380289636615217600159523033356598662594270085534853489759326204287341460916178945127383596680880759058698186836721124713482037149891214321934217855368982307819505048281827955846551919844186473892023702894914605151505657209522297535009398843723481384894050070160808001790578420766252318092417520877042354752351496606375346344809972941201168264432452617177913215950402962700361725999260519001088385409765821164817168587709265497700050869653765306567386123869183923725800589302984707128266112071285896882608847905250129806606816460463776351168762906715469041417617058401704462852247669220002095507891322374018064954380470093656611560922758905125180321305039637507446165278454329610434426761095381601957443801993345648849244897078926313203452665738636741154911518371136480877088057233819929971839009584606456870391641907851481509666670940478729002067775702896578921975647168351970555141261981848376363119565566970175923445735466498199362377490689151523457512858889493678612695546919127553726990772809827213169549311895563374532350397796262018679745950901287410603560580527463664848002710745910883755876455741095240400268187842877063567946198792203109544190152900592726904762824967510265222943528902843305676954851656663231021065707498615322823427868147500049559581661318018295748354306494697838161685337574382029765437847838719441143702963119512724982124377331235985586130956342376313123679792700573698923110085802901522708083070448276834533552814298323974232402787185120168698159839633630254104481693473636524108505794265278542076930995549411839940038532504633182103470882882923786431212016428272143645332938402220727194676718537749993626397151973999550637349591172837638164930582605491081687024208118849443711157141235977877017241841998923500620707813521238864014284145157191519823566205736539301900696638228545913839602326988156920323298210932918832251298868214457461146534805374685240742859416759368877990068778694787592136735022989395109932078199982738757752752177738289421896092558862648549237805667225254657464376125593767821072988386036772779210541468818850456531420944113066968795008709612184255899749173760900691388616185171424027612022918995273450773889847228831959812342553978893950066640164445869971900984978863422996280113817618040639759541684591205906400580035488942874813081324228725014307263593475784994161504167897361797941752417821937763433910978723725279677587944025001793234169792755930851382088052317999753999591449190701360507579616644197914152267976412997946427145332360270106649748926828703131063761581888999219792044289511088260430516857260956057229385096881497827920380163061199594175685283289880076830197789893710821179859601894487104595298597597228641770944141674206956363150424915031673591330137669514080866409265226403027715390046536810262817478184074588324128333032672439257412010642009482912849793606281560680028230314467594022159794719348608933770889020771843181173233414637160183413494113017017451099319801972448555711255294123350084728438243877503157073553469325079765260394135178816678393680567620421670917036627065727751830993876911515290050177883467402880136223737166535288073816637814947246713246302456935451974689196154702938161274954754398434600292446589874699751024131794226993995367795652427706715683115741014531917598186605643913465540003428332539477170708290569556834913597185132555881514588946423841704708443232188381961451024217652923634326982687498311349275707433559102074201318555665103950835589179762479584614925117562512924649722129383078281572438341299370062965815095517784429340098803114391747196389598719058877915170397120170961520439669378836568904698095817738868398450200440974094230698091572518820252462900321799476343053213396100866356965189670381751798933664731297492790736796110925836088493260262734133491848736602647857186579334664688409671879595891961938182358963332874387067517685425603916737436283999297565684967939700411946922752068204685623483874930707813199587734969309188713372346538358620741430208641725512640869694411034901959654615650271136245932718272236583592960536182937427478213636299089115425052489859458016461049545166310455375254540518343197789754582711895611657495037291979218824912635115187084249303719580975003887319800564673167795937529262012851796718460734304367626160707580475673704477387741704714424908680635776871276993242319513313826290667631159172374373500707091625292884542446284530050112090529051759310721904238483194133938215870812039969441896515586437903470196850525401697977632233864679838031330459860469204798187644729736419751480236509867530351331667540932970567225110673729447157913743033543700485291249260912407373651158324989698910064864487869785623910263021242845410617763925012219858804218805293209466608369580068954925431569095173685348846217568200446267327092785502748805450795712037830561216387210705105259778372713471785374875034612996846643729407808565290212816662871728875180633420283446344791507413195776956405216494630754389235279572278324096364692519484311214811952999536966222817699995911698731390191140662946077352072809670741778087192107646665673145341365484245526361769316282082487601039885590718845117085896821496315155267959692689852035723210740986054503830455252149763411089028606110384841750637429753633534819816071268387376711514401094224421867663437987107103361565725141471722168560282806936012134366518126625889527962280827619207266708301887847476433790129514566006144307889584002449598540332997779062052281575051608972564456439168138524038503793541276891649385427067479154751902227983816557216757862073902610681040877586553767104738726166988142200416467670393728544777959423648565740622677045936092575062883002755814286587366764076885166680790259353479383157412857407929962510475768897810647804883462680424529255733577052054648720742266373404837342889489585379006175693966666135569103200080402263505423682082604957095554837564781264024065710202335207149795254149476487639033283506579251208445715180788033095805544890879078240394040127222418793159722273572829507683318882276020572264194510809878112389407823374595716212841040419661818389085898635888299150476470033076370899216030677661146599114757537765396664242384289542691000571268676486544923220156898731703404994783817105956683690067362481802043102690071145715339492303927439675457551138724662774938213509740532139250800009018401130183037091585334259150416535229941083380108244413535912659070413855502496780376836004927911710079951799492214232487903945545438682973301062053378467598342749651088800437663126327656503769643679854315795267273558769673947832724811515193234567832468804204249961021419182705229353260354502299766318516795227868287464333138460800691650833663473821948447485976846614633293414748682611763902009769806374721622216391785247657107545990296315426416132251504060902944878446162324022895629134927783851906201683793024575682908433488129632770255735077769011579440996858479757107237550009407407525127938357039499299883543332613217328723159463054574267090150151007373538212338450481656331454764816493712926300753565347743591067510964727010085088886573436638126680013373528971836297718016547767588844733697750877124291576276946718324350337091913116378786028805582341022687225907618540031904897158283310737764919826371816659506400528935856017659279759806116340241338295377067932355944642957391863305108253877360047443405684064447752573990620074955938808679598757688571006164339611347711372725467463991569481043011539742237378661489951055865650957050810191904249643485014527305061417316403943506213586612340772943004263734414629389715547637892716286164790694499669186801924296298787388249422414989955275412068332477563664284845958666488474866995644264089726578122320707035696692929668305802543658346643354458621760721929640935871752958101124941437348276236015979195774085463518130018619968978018375433547562057046391765841704439563486991559813365940800072247154176578163913509976362817751003569571599243052775621524492526247736567629114173542962017493552950741396204481037802719416699502213367716445397129671956988312514478318396039216389261782752368570724026234994190223602295414922766879531851541269142785583723137677961416764977865571205861024927418948267078021528299685486897384393145494904292284131557756049522279281012484177582071698309512965544918098642528490097413427204296904484860034843013851248037486811860602171093423245818869341459793946551762262131093347254939676271597255304214613097720480322475511439324860848964910532028829721870123859515134783101067339951502807749684661069888340717454151141133759170853822677897451945444041379533714327873833452303066022614682900186225757698415930681000220973136966646601537197746645987787585582600596670189321089735293037524828933858183894652508202409988401189243723819795684904731571283971925702972083111015548479001102461090503352177453252792797247664890951435848779164322145862741804840368440812359579348379719623349748804287541336918445533105991676667866945009165340252767512545479732079866989666580448538117217030049222292973564367594450133034810873928889984558827674299126388814563200692710898818987942054768123998567934695516162718084534045208744837538562968629865350129069533336960359555083865965002445256927516069106583466896076240357085523897156764224298365839276790008279688150621853375359634315020808052429060425349363279037023613798425852396769126346648652674651331567965756413513828975355006390685214426144315595975668729797942254894773623199673406370557012406897516522637186099388841516107248267037256645756055879721851586552322207826710614691126747622615450257592363414572924322380886244298811133543940029184026656387136143590694753048291551241871491780966714400109359844652596191503710199618277704579828571987035958852651706278968902132285970670344990306485160897642087847699520820102589535081487290302729570833768345453808644438151194270845900899507651879909742137409346999842005759126422603748521960418245638475415752853863692322918250891044042403724376823023829137380641578860055826074155493452405431864985829580757113624814843230258102522232007308881754404909412652841622521660691675379655961065846634178182306138202456175878164229737418174911112596629208941538578996607223278589211888765631046015245947833202399081360308395542102752722294812003705767739531577727001617048213371362033350008455573458144191717324666311358544367184173562845643848834468719848747996325893839743183978868005100331352326744083539053796415794175817853757284380409396397446908127350083940214567437780432461167820273106115186458396841294090286565077769681375947828530478862961851076493359476154802645620644027381308368711461227065318084049767617987103202985465555360987673278410455876610542090240179887831995062093968426534414642446400203613745850861910805841189599835191736992756012778297408563571698752323984288132868522980914097274128687594287656677982296492151755866439012833385556114942445491127614468177940986527073260709026092604757296957032728121266061366741096628498593888271673894306021625495155927277927652495528045395410803786033794721120821506945432357234000963222765835969974574328457163232349877518800066790512598599784735242344773956202913000122187651052766888656055409074194730838043141787644432705564520254309851555930511690255666477497501066381024447776910962805331945051431782301877042007847242533295965479260137739693562332265785350552572410741948073671857419288275909720492289238034849655080456506927664081057217121776972964890750905452700506100536857564968776810890578250105374054785849609859406189483135923313605267766663983001416358743483444308939414514787084723713140661456209559929056975307399216682243138849428768539988258107614723940561856841959979152654679750500764824648436901959752748588054610504835590450595607375983171291325698028341892076825901858850809806931153244584763905792784697111799074821868961814679945733695755174824587838813249405917404558413873012764428209216757738470765849021626526189404190227411472654030915245295149109756730751750230595367808661030205391140258511335776237058325429803295655157579464384933696789174064953134122738708542587556016468587245283246388446401853346924543647540682486579144951712289778082637714346014726204651246771230608305351135022840145155896087295395927315416650919205287734542453876685151811167720577984195375627751151730980456420973229153968894274542697834462580783854803205140921904239548415690101053758921076621781387899463890244009193946053372366116163078723150127424456438541334196709616313085241799439260114781741347726633066813178337999781765808304976422825266130954755147574737880995091640349847759798221951592889219677782303392316503516474192498208557810355027290421804706349431002861787943800418643784249506013111558518132894077276689621217754435855171573175154687402640864112174473414608441293651244734534933179583598143733629579651121261069339065381869294242880942683569728564779010120895210852763800019904724436439941251702627962743619476587964962927796687860090828343711403287072628412312130831318638176126526985573902476944639501729620492073391275436236048125399079433946490426159695349706781149706398401113766178002027759679190819144917726212501523826912778554842410931199954287461041773214810148053125752518643633171439524297594093415875687805965293707659188496948998238167917362388696714326013372953154609966274268487420958930212076822910493760783839104198163514409235684931017855785774343333483649368361181040877012449175946140579198769926080142826099799762841859528040892224043350222342233134024223420228144177762141973432732903732048271845745236786254339464872962184372074228898688385517811201142658476761221131711808982520696278572520876086493506810663207561391223212087708698667892371555322757552580125550430096767241638742451020049515444110409068475902122886477382930196954209691266035234463053715593775664150402054483534863224290247590354369934879891690675254998816706560520958819328171954962564889364227566695772813038765642655014975049175196699026003798977373859072339592123621165194682564898084194892423636062398056272763052142696429149783792916590657463634134370358385989587112144968993440331004158092219172314932491840566550196583816970664872746202916338095725862826652928798743444056492633982405731875683322956201344796374434154455354440132129935252728004162159642380545363948174918424657133667845597225277835923023208239444114421205934882578349956100260029743253371207985656891403581152973403254857077548878449949954749872393315180293086759418400071325528007576207448840785693352860815457008856515368022440507349959796837951118433939215160298658218241914018056009592775043336036855119629172684518395745594448482586885050394299938165344801044645137181964997782828187024868319135776317978021089231976494173788595948829476033749953532422266037598978674929913955881829992796765007186590122091139226691890902425395373303566256323770732955890560603014823201923596352633437126830367826820496936366244934517827837211591736600329934704589862592929430004922203703809952158720635034181660594063956026405771234582792784657636555720199981951340614447385566239757123346832411409689508232860427061483006844469914489553270073444286254900937586523612945633557005802543499637650256557220958595380364190215402805656415209664427226241331349696287509972616548729180276272901315874359658414827041637677607313962459948004116810618470215193935222707369249061010454833639267516953268059386793502026718810985280304968174257554977995478274927351387633890046536724947529505721096079588597884160340818214431589745518693625468994779902941652072397153556761963187975914309060368166495866949657837797847386250683259445931063566128648511606112150878508271509014681980927816552482366607794966171988374381668354890643366907164284599844272677892386349484827191776283552992220655820924899224418869429493883509324796456952166187215635315157354196025909206800965967463753616807274297191895404299586286976368154294329039601379492641512533357802143882630251267033529308547592335026742294743523333086736140194001987962412740543281431485484804525984641886122273584596373334693896240871478198018894209274979271755468870382379041274268932370054159377740424245679166226513833267834434853693766636749766124478953570270693441059298055427293006477495370645001472739567971751852330463824878602683596953742607193382919527776254796195011154500847279676973162710533375912198956449077015509518720782817831881669502200585946829708597584149450738434005968965585366132348181886248396118995779211324885001217393337048274190063324825259853144202329265193616044655369627676636472990984636968947758294989007420643912626804766456094615493942112733269720350755836086583707756749308781491823349287393977721260292391328446310263959927729742142338304610385866515535446846566232500320298520940162188279625401231223911639004885832468274442524162540862578548808879060034143418797168249606410946873569589756969970243443936908499738621027408263954568961516388228236195234088648822390446239028564709534580120358043339383314800593512590601206082729703493090405773109062849835028755436442776083375819170657486958639461425302527344378444760160804375199241570070937441041490154410756127369738559314515312847856306010623727956707690553891489347093475248333358381515627611720963942225882524910874849294929400155792189099673528972215807421334934188801902042858822884459388461036781714737990880390158638477146534193057010591926512423534208798695726153506323449103495034154013730591427780561054835435362493794454302684730249795562920138653600555587284578823569552307732038202207781483123812516887710655668248486625975394249609250286758767645551241257198555464174282436032636920286030764416837598063649991818709501400462758947911218062094426044981366027206248141003902380255413824822976522030419803671004421317009881282255945791429663128219031061271881766044200982529540718605160012823306054355835589103158109408916854976879015042603305988847188686625619656269511951443611770622851703124974625371380317973981110182939136215649373674010223876666407947230212457287328578998768568354238952103690833012122686928979362132120006965250401214778469899746014361630307673726446629010923782078388726458116739529389979823879946796864671928863279891023389534592899252394195053687674669385448006483926199327124451900860189005258211733668490521339181531742425645544253479484607376415183845746745751257348820920394022645616264515487999283950539195792478245280580746944194493162858898205840558000618376470203258733281543930297614726726602594428245715753803959646282529273991455419960213276601932373704452372036036205411706389186679076519091550523685412144800554439879868546860827306003224819467185799191098884102509226836035365649915266288812806060443521680367603275619781450346354168334865699558326472272510336712501786871174986172811496600597279976534405462374843411672641741605259731729007146555486013310006948864893877251956246498249548545012263192407446603525239810027289630974910587762997741558150713486560194472221618898168736581798554903334774190062617337715483756506870968165557467554286842506684345234151298059630500986027871212277774359843055691272750782511109986680547076914205469449113756264844415355573024772302268752132175329325983780982595874599401851657352558507512806958110681339344060857459974978452725323043939030882527306855590021977573469424747618078965416129162607290626344990857205743310753591886710255107166982465694426472353246227225850073283662895686055130381046967106452408332442292409216062385914938040106087820050532013544485459637191750825899648745052446959495245595869726968252685916842150063755694001091651967762865371976806000288574563538232887853428766541248301548348711476543588348867777765608373286609937554887037082374394132669254133043319917381619791945716279647493970166256702071134934575920520461018558703932774879315800121186683468670586041631097449183106145088085767055628661258443154430403700274456191289154012725116967808167744601203653232653826680008604302369405123524509151965510848137902153623854444721061060294931908183853523207146866726978102994641686030269563557006427423755846990782813681077730849898610520083129061955048228820059293780234833429338719317296772285062160074677587245712285054474378706872219084921658054969966943139599013190126371555098856610580206965929399570290348900229434883846606727491380930310262776080275908067073707987170306632075991109952917344143308277000267807063079600056134305717949943981767932931836161562341671642813584617389843458723563034148107733587915195284705245810812997637966824625355405997735950665909988295470811075690702986536137391085737345148243642674593443574569326276324573251153616730640202958390512201977310321782485629613300557091326264842220309539239006108351848579567453164078676641614267756767491797380117080916610503874207029526859064562170247728940800130066036890006502827478501711904680010393876108187928329581837566732249137990890564182250221824897900856220592070895687876078269294669560913775834132862725898140175266369304920145405890830166324251014814999378154774409295999623712446395920319252511387570738769660372688294802305920382448614420881955279603658851923566779929657886616510559169899413550176348634615809907716295800318895334828618168646114451268344127885521077738441720864142311848291910318307334469327997540020843837902846180767356377272167734062356309836884991140355969959627804267446970547503624813892577945043224122444665801916016740413965841351237199832845907187369882874715560049704423579671358482440707481233787132251814533229165243454951952636539137166799421515772842659987901223935207206819710577084646869058664799247045512544596419929493394894867721783078703996860020292019835345923259402438731716003345127313658393928101502553410190563772751133192214779070576954543480049462035434887741059303108452712359329623461036713776989868784205435632933036541688929903986339829935147070784969326025680151502550627606972538571274510525666455175475109557662991238393920432404984038257347824348638520212774138764931125305377465142305889326019771695311626846560562559522385498642664898151206694722714647003676960509136535992109537202642351408935745647051099380593902547844748161323722627464781103079940335185739291266633333850626386095484346750526583393843514648009543598619534801844509417749003244230546939257381475370775725073216158532548527770767405138791584883777598485814469170425200035902687769529262994864365006300344030075751757596497250287198327376792439686582782995509539175400758256215661640858579176704904905228780906208146552004557554995697743008108032334046034550464661380110581464422185737850341722231296890915853683234585963459281301586199318495030963802633687290439967964718723537202940388207805287279444729033531367310707839196244730697359514555622172552041800877423504400965402201730370902684799921783451796171687262265561680197653362744516069372695489836837634140276669997498675878971769008838554857781351732691188434683418910019044836337647617724675686454171738046056363547974813471553241874910963662211071825952022307145732390139757276356890277928845809442695737363789724083572917324140856354421173529158298171727166696729011981668356366063347819463589961284840039923555373036561323380021173154655321075576470233447680506269493599819962308116682061295185073607996627479229869649563515575938769841639568485980570947521248519433466165126021267988873727625696843642807482273613694520005251761883484498237922889727329125703791488166520030763128533835346043188922081532597687016569127687179910369063263819157039562131694252610948850935287188675967565552899869653060552742395361295644150213853875961769233786929156092896695969928834304120201347122190876416318790634918287451322230039024995722613180862926109149307306391831856066973367529472410791945668614281797030275997010572361474807932006513562591842920837086650683271296965968651416208894273421946669365944029299575147126791842294289491206446504959357396045577045145584167390916509772714697976510431989721195610826262313268768519774613726088570897388490021496382837250540335813939089243885122021458284808667619976201948039805154652986425573302219431533682220244978871935527067214804231147053118172013288165232789851083454972872170325224378961786139267379022188541850428830386977058817280184762030796270367749825139759356928719375620055366951636447079203503739397089370706500411848607321135843016872585470885949170569255162625025925929287353501356276849389256656304570761489381159866976448420058863414094604499810937823522029596163543232391575398411779318892408772067485480919294646764314859012524354329772290128991589161083841145199030139291460774849438094586645065781954334304508040411958100134893871356586639532729083402562131606384765464862437727025222928085217632923469199899865141115918724578660931803709440906303302797659911802131570855251712800618921935171951014094902381906362653373843186052732390164377890807376557990491767186107875291532806482777244654313444475340980067172586924296245873064400423664167904434245969134240857411085192256905430668274207526491952812573076112289101982040440492079295248792686036652766391522388067863492745919659728720267453768579909660921663842861422189371989314136038556482967833974915560477848058432681978200805478106691684111466154682411835773651313096716963431451256005571471054251167343248665217839698402213250132086756098850797224610430671481242124439363722263605239196585939277810180337625165002539372999184378550411124517842258701360205156064567091341687684674599107765285551044636441289834413872179973809090075572897925839715362494964286820883217005605217925052382246275174758990220652760192257218325462208532118513196237777893626419001946031285040392081122759541729326302079068190855251773647538299491525068970467767667118860237257353057852475636682515664726131273341739430893369059713048020996171526252999202495613419637825886851994557150741709350820061342449908596276831139125798111996475354032188956321247015885512079766705057727522406376413164158020223997563187461175398433443696151077808276171547672641668586189087859967083769219726422959379027306586779272619078969419779813800607293584199326061720515622760303243562854944473405654467059430457167092762093175528402518839541810511011869648199027656894493083946037046367605494019315261104496546938408785477146583814749259827959377349828179033605230012235564799706907445550561107991704690193290154810230743144179599018748468165620710483851313336079314518187295775095161091913579242866469537130418673926304864998775059354813209264686960316450682598431222032802620583178710723478068505912935219564888098561836387321847520907265328289559390766891271988151956514204248658947441421902692274322064677553521305523333201297705165855867209588095272542578478674577837700932217050365295475895656701561144043650526374333341420786468966584913196031010082739160393590566316512974668991400623457713611615070298969284153873040197516335445568327914189434489171201482610648333124307964741189358824817195758063363782029626944705739668664086756678148611747816948814224753737582855965607542813154256331516659237484812018864352972069597756391647405613832300603982549514884475777513699521644365148109215169290626977619237842126489311782349359207755763672969279567614150218153881753369339312708096255130412686157857719483229129814395698688386355858036744076342897472806773018422964735582170967603259570484569786540056387032392781565863977955614634456550684722575839195319900662685395806476791080244015136995559023942125945666015254610502224361720799816637205923300728470254947142798782294992562584110040271442243105091936397552861767584141322041906648033554850845851919198113016143183632946387320248543687307279769549063310882306232351244693296493534743505238095128177898787115053858514078798700232977151529861489366660720549229602924353972342990567532836175225865503051425984631261229739656568165265241567201319923720600245996447580728008436485117847856921689465693152601693843665502009618162751632911799245642046497686062311261704435320235147222536340617383240133295597582517262874535023630323673411184486693665686430957027502070828562178422001649800523899049696365536234381446395856084894933118305903307532017597170191527480971319245147713523362149770091602272346482136131608750562981117949826929214967203856965298863938438544872122648338294472680809158202083619013598163668125514512575455692319550623357532638551962545910930893031059293440701792187015930720183678149746013976312785280298674536201079339465303249474150379195896999239940608123795726051029794951615553214256309998053420216760981252013545549612905058893459390562941786641183208256660890597607034887862611227401057639187452380498460695992074644140861779720918021847597108001218009362499833789855105025456422424027535034289428438939419634769766196137684688357305448343318554136872135740229696807236569448852466506393171718125771999425913105479324522633450226580604555929513887532949836546028845089840346982229512150246105111751779198841668485103525285453132907221927836720271616274119953237232952859774540178487072085231580482802810699883991089313841589470255476258938386350302417865196710097458191304843012746328066760894937392363132958731653881914177641088328081951451780697161735394727899376606513076152495481054222421177772744944080196002916335137293504631237143912944873561194711640337784823960326521373649751110318843034609403197879917857728363483093133768726560768172359516430703069362352476956470866332005964010759621364252267750311131199369587732516784834217751220529971641462680329719135158278607919461693904965253690511925947444555713527883987904567383784718190153368009140183775280926359673148569619712326474732636651559005370495269507315742725592509018874634073484038913809871359857014152604411584981695054088396618428840466880584389336951118835604354764192601304931979156151260711382516455494231586317783315661716641137160366076862229836736629714481479342930253640719586499750759447344486221924886604167050095328113032118198401354279958755492724733591031005276697785172052899596419889135960662745404924975308810685359942493948413059533367935564568792457834058978524914169071585314749758250615873869359948744791537320222878005622709071885022282392380643792465712513742093605941015408181619403162830924859621446207133918179851160688477682421688315812551222834349069760806882468947119431402585008862960610882647040386384855008090655973393194089170841622497799503157295849936989240130028058317855106426442411523254543453543848280431405614486886327106059872965029057492898333123332759611366786985873598880376552102056172950542686310339766191347814202697005863733324275660654419555026684791806658088676492840526752990935159390818473954463982528965235886624841686803848974656504027650226472215265061941569298907444325593547155362750003208008026848059495248500166429121097099131359197408921913778490082361551801466084511261072844930234053069158526541264192408310723194569071408737080405894975325035734006742670716663039880327297123610498689669197489554263435751754679238436975704645312368283148867066548974441483028757175726576154293406372485680543210088722469629983671649155841967363046022222418488484236078630225580087830193277218537259535823138509396032602302335883521646660554846046052818908729525129907333103188533256147237112655076349881448019073043079625483433192296349784546966121775952854815209755435031872327870528583493285834752746198431552450627200194476841050561001124878823800244528981943557411910060460366610970414774278186896117584043571055780269057337394343581844344782583883262250994608870627129553637049479180529653603899076175250848386878572704767421372427262473835934140022023219062621643438796367615505063645652784326726352940559938810266897621180171969786044692337561306015426520695198352773934145764899278621728570506585121069255341141746462540487460160055437956589887276962125967494538595021319804261586361278833861502690147137662493523003814217075119227114066126189797116161362991395077429967065513185968742962787083404669006747568741679001237219323204924392657699626383575371280492983815107868635417254253866198174919988518250791598130032911437142613326464590727330223353531175227822785507041595312647337281728449706448980353192795345903967860104692370736179296801439414726338153408548613737933395569471339941169936356000747966336780621874706618016596183006618967103367946178228987496544139858931052288316228568179383397931844690407860162466003399715108372030684774928773702976396825789283687559834018894310958297711994658201098377242953919165324394240504530153713294089807940601194755688893173087156009374308990353085265944669246450172052221877774099764074892242754876619545269823986761414300989347071276885946698504318748978910791228047624277647211167135109246802067169133103163648042140004165557595635764134753261173444487483135029717057414388565315396805174441782334142351883924899288651934771394243963229723224434118397324532566710448542828817811018681863432322272076706523152043976270303228318775287622831256326464711936041392806783849125248749698188794650314096933081243752725795513116695878144645850768028889468982913540341121233985364485770053669069535403480714895199505868738821150057795604334787953282751142171314981000045402392607016743654855028996296811971268059093273744854734583670991851157632959097811340904384981544519191796794052051573966769408993236638809174216988505239817376263690857542569498987642407115220759240324426821828483280717196139243802611679202841319828919138715181050877019283113757670496481625277252043320412449836693178604238543404347995105934092170980809652310057949004016359961562536557418716581936399438931416450091697439216733393176929657725874899305018852556259372716100591038607144974330659672484544076406331652809024707154559680182374904958084178251531998876024828794963944861743417723733467548912610250890233937879676777220791280989675454000474713011773407224526983851073066643315904227117738548943145571638203291859484138554659028689469453635188448429217855481122524716341078084579868260236177228427544996269742813306611847487545187890549112274334658768239707855895244382024509272018705095552917877306386932497556850894006082957426057488906522572384003850317887760821277311218565139966306828751769455871788420303311723532586651195005774762463439772644007251526545145749843277619785106534437846506989372861105620429030667070231159171513318740303647498496605944510149470129655887498957028107400969967507038621990453265208868155681164375433537345286045599235969945288947231629121598448292914295715933575756357760657602458082762548079579637148963465081997160565325368049618431538764524308557764182657322759630832020863582101445031513849002093007540286966912969007432571513180226147857855353711170373023783817820536462689969096370257535521306057882732500666148741480402963667430462102300898907464709328062469532612639245441113681668533167664425346804194690835787911280395777094023537826034985262319708653892971500636115435976492486584510462692628331658871585154377730678457683360600463836405179267378913911243135557602270975496887599668933840270287196956065255035850709019266463420234781990455284426670182688626388317354469467680468556583273399398450605099038040304338048355000783403404120365360958432603653728870046524329305409867417534883665839759930198747476939334541423373831494087622306780153177151465931598691799520203242480273827991858228576230716547863906882378551117407081029354994026573457786230658417880775672500879088422239330805735108189174119347809530827761447883275220874327262175356239280861272278078240489648220736824107249458592269088051884692254329946143732062352202915447120710132444838991960481587918764903450152068344731755040639866650103203915269172749319040392702064687882831874496140434595395889073695077074561295508800738706743744261265120731566808502895458945708667861186169133840625302963148288735758956260141098255159487522992534622884084113503501355351616725531665979997201978991148833444013453106659265339862373900677636799995702995443631095788324002317336205734669856657490724133742617475451796028695178913329442914103930209608480657502490896189792787502379676277600938350289073576962707425876342044933949218993336589253734368330860509317048306525479694762163022971254602436374272916675036975619419041176631333625360017913859454296952443093629552775488555764326575152921829617292282586571050570372668855807053786702406470472711696700332195430618960297216282759482811076041305824800650206699625310160493727298354846125912623972717666036554587102821349150280597116725520319490668925110360095355355842988676796167349303659399549293020831166902177577952154173444326152573666531195976140303947106545863078930163847014829937985943419194686516114528783805652326322902853181690871544576565348470343811678628942175418147606433969595293308076155980971374153753417476304305628322327001504136284504820437292197336245513885591076073910900363845216772016437766695604726963535179911438490405660841272377641527825589373259630350093893150549209401255984609406131635572601454864878157427754130922993265862500296096076852535490914551655094397577195771336846944304645852766559829118157559884042902140907256586512585075739277245535815672230419959240106601352771143478313435983360150858010093862998476495394603921167485995020469029498950704292599355459634424117862994873572017537359183693442863604803338388100500183837951633822017062584099818776578984714100260161030298429658949165002787273971943066418450941540738219063769973177557957485046884243862318999156411788837665520947731050600201688728499393750003702320079839414973059240592924532833339610375935524445981045671938236113997513663081278914996071739128471369453511690516135925022440497363465534570038189126026121495370140023431256389456127899178239552112044451156056215043680305562292510959081766746779117127268130022721027914132523897468397075002349530401321051156218360025847851862362435556923989102860230126098189142571412024276965230454223758452269129459445496037487728398069818072012548674111361387335420282998787650165662936790343692181371117755142245198928458605256216926698455197869818353832596420021972366102674653641701354897985869966938608791225669483578095727519742005292713707028111295274648195999927924392903633124949517212196157017609541290400132066610097872161589413684919529267527720877964575618483316310134741186880298135965102889719524756298005631760073670646200043252220372462322597189150313890808510848441644465677949738392566107766953424076975842828325320680767857522401848890447545316335593505741689473435498929516142204737625055165667273653541833005820796718920653522147075485643421127710032348183363873003149908934988206702110705566410440056222511654031120003510578328735953774730555586321252879146825600357468541293188092860929595553642875684720371219526503623526802435710061401499267817995893270823869208618032829570304909888515707610256585363981554520333599023544083353800490583009159989060043827420364402801345087631286644486082632342736251744928193373938669922049308928224623102040608028506866008371366566876565438147195775348553858638951656568828081862118040392546279577888043424924838937801643412635719179440952199978195016681058087864371507244541001742962257080164915267061966924132071969215747970506680605878822872522214088896398312778880032024866432206729333587997295791458971669404090052128273513762160849176215344254337953843745014170549399731978844004688480540206809779378959118158517734970468032776372817082804059457802565225821319157583800704538882921001102511762381361005157941860877410175040162192920356405441735110821604904018354880949926754633040597656213904356652588988274076634261068169849952492864804833285264204135896281856310619873414175578433046040721839196139273233904099574704269663622759903496377049500888785431784744856031284190257050086857280365559726964399769546738424260247574502606150563276841383692820433525940442196263019993746306510838674756474143783031420482363927513889361503247215620750579381473720614693513959791986419591907660491391465820858267229794691891585938520761174478437411836718328192412170354231357193169668815015519766236358877086949125514103883609704019961749023378762212120340563859625100567757860436935468905919367024850234847462371334764625306607079140745519973088005018397023094689438505384630607212277194821759314526390202902974523874986211491110789216572563968672394712532872756180198953713643548719290571257368511772031321521070405147251502245833429241107775101196067459280710502741383821918367169668914637357719896052128503176479000037872110681398972836182367721619202309047008379402282985900222525406412387087242923942213126201647476968799936453239953322141944797338838596004233631661056788339479683009204313555308105512259191580378098121901201200804461488941114986455775575026798863417824069373408775965905260199286206651003143792326419305654894069368488008959371064363629669892306557480883683118699368047460954821460260099884949829341117264261559821598343776813683007096140701458875934837211800239481582871798698404836130920896141250838674474671378353552760833556295247468817097100209061351486504649233368489605662148127415797325931463262602882018559327295938913786357569065987039481822108446674562603835962910138105500351744066499163678386903764032725363937721870316881798037540954906395307302904393512894452805727745927243396599336021077269123600060080558902703681375196090600738834946099111048571533184147180263759934554450677808227223176519952885154851295472615797437943785906534712421583194010892055286298660254040483870896059132241142106018870953595931072662772476874518037981842624218390082956046058502453383990580646732961139782479137553159431661067262139647892412066012884241100221522038108439895934253454556014047937605417942323308226141899514811023967468959868344451064336571238535374914849474554491898566094519315423663570184692885591215485188770445988700487239476557041264969044241013491306802350967933650492057300698656586715122269304550122800211973796134779243793282670896352381193904375106288471800203178974650862755603987059224141975158058775627182358502441685483625860139269612677818365923729953147296222118174290252714822164684032067745224042489454663793229576590837364573647378602898775289436509585411706119194670169837049182109828885250881746083862036723733378218361795367872005479052317343863786342430659329711472183910985064998114182759329580424602943495300184067458662513210989934437531770065453336519602260023524269724646698896499155602161381411414909409442456476137909546986700413854802462803938530678099625078000172261877620941110543711663669596864003973814600809293990841969993262829071178186276798713338469265746171407300865327534805608944710995210826572077339368591297679904482969570014147674434143918005214485686009140375396984780183036954984695440048693486401612713237638966846428329490164839717956407147525437277456875047414151863380289695172681877093087198614181113841542127176264402587477412396903240947434278633388801528534801764313387033358906350528374096215655281320129730821830070951820362930549934061182553080411067996301890419688822021117025622687980239084401476699104951120719109807012482550569146728736339676973897228468318152777962300707379637360995439108482890189061123988139280737090486743470907464896363927652188047968835878131841984676590604618605410396385659325097833652291167834918655661771960488623729442895916680142158476812351052685266882326781922185277314727861324527337321824943471515471061326892614997660671281069015104438440045600899502891120118992119817658220208789832605919307035805454176480790253801108900826653478457176276500781887747017199685449673885871144183477161263134696437159263463940091281181516125011091942975925783642310903090904356239741151514828236757670090787321953655019858091896258876696465578963428900524548499950135396652623179905251963009396288816205357173238304526676802283336138199947536963437187652984329020681263055867439681628085720005530013519600875541806088085458716783426048454246777337079278558067405910122426784681083809178663216145391289123307563552114797133468154965864076414173040770072978757332169768064883972828120953777594459592007660061395669407757419134435432640198228599534828756017587107347992960904721021046983812160351211976537101068071246154444228809415585863971338146470547980311817156654299940394877930579316932505841363072836694426264572447049376754090518228740398374058416297422610973547821416063945095641274503424700077100392708433213121907744415402417203599635421627447425696911034347782132295149137935878449508604754299734470135112516751428088341707894527431056295764153216836109022771898679488526736157718870402987039133054360502366342342082345028995847365167872790050029947587185642312467583556957853293547052153845699422625317513818803674840248151197694456170247137727517865761038672179742212804215604573886737697925786274350264428861614433627920544807712921377093092113768885048360017753631177764923001078801039668402186676473252455542483720341468402803462564997995670650068384357142863657261943112989353636797063536526523316656308875165479469303821227708302297868052959044227792888269638789517134848413892663091317768793779948375186200763108547431431431738610750240132331085715982506642614808201429587262446101695553758015734488108399541152820657775658025080499851639318853780531599379453895372220862158585522562701737785687223634634791658708412957645665528400155344353960876520115084963171155932935929959565099127512901525530906124085779372318419032338147560150909339479480256302206277286635154244756071254570334053261834217903149327790213263166373046252603482887644266408609148280114786311126598396994646495914971745214726599111993268438642096703944445831515151424935658320882171645444614417504235304124384777179756634687739588770729218788029158421199891712279042384991639033325669044382148866156482366423918033375642726300308647891106251826413596663218837536089825168368535547336298011766220479476109022939083634159894303280950021483028758695726945418681734955396538709457831091442680479833759796490607402594802383514145678859873875634806361913180138237506248549230538385488353540136203973421130562698842036678706574515701400596344114397753363612174677272247242039260385977041917413928715703372433456698769251012952033024445664896827762520595923156838006230314337322893907270391881895345952100534778460287070685386240037045687167809293112160243643500391842830870070946552482486168916990647208600491949021639636177029745297253702035821419082904815186797749423664605519281541085108359581479306056920523002094874998867402798283961378919992043242529373320374782714754859696577160274581843836277321859786597853731731917746224445824208350821669989046274345124905439816647278873228697966447640029083867341224454933138049543527978311091364589354552656951981381374642528569121061551886245884554871791750019284401793998625794598199671488660032764257547493625902270532062241537621787789176928918813581320378277028770312811394700803392600550072733697041491753438526240415181967694565792156879912861946785390868160102702607914648194475153315811705230659423948474344373237312282188780757885816323706086123992434400614771036829862379002199605439950146435300375040458055701616801717309717338682871698048017367260553402666955973390410018922381886065568350188407488245104198712344914282372529636837917738195776722970452409224807721229260937567046317913108108245077208537214230272780274934524342133593448040135101125140626927020080698020639281792743149975787121011530736049101134805498804611749677431003357048438652700959700787764202662152140551521890617273239374817811050082123658120548054316726685921441081567701574969430804758493559167852497353033291999800767712397079149663431247783221687461568987954497271005865646638836932628410772126674781431593293667144491158256822162069848942645865824731628531285785932189733464361724896539537152637240074022546078360221925058367350985671827843024942778794336661562754982431719250135346639070437231902395817401866531322703890482340172543848175533391010006587967120195092961495956424517312370926921625537353869030487323645150482347256793041761971980282963344163943118623231701947182986115169222970702764574453622162066945624619716478949688312838265920795424110689079080260155708846803508623512449788173327420591893504978491227917270058497357378772024944345268614047719724727300456446356624164933442327346870502732938924644132396343052585036009742581010987261970749711752695923916349185858346290139410695039975797091161937751817943505102759597563839562688986651819496132393675376217485346303398053614209714877164303373567314524660732522925471658485061532416679557055433341837873115330924687199490369523511236894462471835802032771645246646468034656332299946871423971552038842164785824637588132527984218228732891496466157161816647552959445801244205211717770105573099127558005637380281021969776148111810839949356164230036290400947920322800609203459444613055835714513621219095351165437527885088159223192457311054991440915982353403492826910028985621615925020172223680757586147685213059007109901635662123316295491703506666069428544589682450099318920602556920924063835866111674524928211622065176009117064614737952359939489147970701974788369848965612305028119910151519375893391702379493441888871967549497615165065625669053698056141225791531534817998054884655509502489178044422935867584003973002986509030959394104625842123385588250292022724144096901730807357894177667980745336569870577118034862252074892770337671714176656896030458509247181894802728888377782040678222358392403914086625581425217260571787662773032925008138676243010512614819244896640896827000967219115977580695336312243375513710173594199904890434775427879529895306941573184899976487354881317402172529571366975883573201273488823454484747343859496641264383220235876126714526970333255771102003138732611854534469798069197485341141377548045865384160562029457353707986506979816272079375524177614007592100750843140754092620487223450649463423940211673005519561692595185357295682172873802543174141019901989111748398698062679914709287747056628856789205976125374524922711778660201482030209514853867389821315394280616184463572816414273984253534013264247892291760809047564858865308493236197615367920021630952754793749890024401206466092820874861121373035057033180450440859810539345512245989175264908726137852451078898822849514463385400016706215044035053678266403558242677647742835192504815048285888598697443984313933863406767485326880684485900962356119489855393492367573827801837056823594515610898214390168142774333611607519500199274301921080894969572277705490474412930722606951134163473661108698316718439422333551686839651504951253594672198999711069142937858523472684277808113037229546241435671311299627421893393981985706441197763273680480666840792973737901940457528894012303858420570481405147545295341090041962575605425106124149999741517344752478593897911242387609999750750907223142573018345398431560060234977130862461748419486012372507494108838816005961343511586178418278910090658790867050135197539225075036245049589771702599430021136231670923415446637042951295822287935823594075632855011843379335076468759881654885126009485333385917933927288579714290894513458741982364096982869762394110089719653483329355961027055718658430062600351628283554966079313094988499596846227718630017567568409560326842014857937472588516138735188602562520401055869403079147005495318468685483196913991709721246554220517757997335387869992985345916950933078274994699319016379746901678880538484129800505844964657381062551767207935669303542785365294556115155059389187131782926603242850961856138315127556190326067874816154993916802183079814004179699792507355550286780344176294517964005401544683699043228888070049000338942959078068886206174543579638436584419334734989998727551774770960922803872813807063243589189724331081231938425575452518890565913855086823187445783346532339246625963449585271660522096829812334510321609960900523006553036742995855193602852847782162856932601390263451536012251333260642784778842023234650936318386361652115034870093806234623872654705398367894404160425939197262729235848301620830973468543833897978964491957520184714590999892222904316609507307610350828952314454842822918030930909021788484112170087465679813199883618491963378705670322893352108413070054347226985033977139070888590860286286074876656980208382968527423408073750159695948285295893436558803887370786268848646752698458447662351962104710611026077440757957506054533076395979253633946928360109355950854378924382379672669640980749517285452825979160891917396242733941152408980431408946074039771040454951468139311276958280820406480265508874261936692747324343387950212332850805675421907114373524309243148669970648325470860962788282917513761907687504823059094659836317297787092554546259279670865040717628009331974839648795560004212455663727284964424851210827418097812041662734376854399890606243795863525232870787510214350007566665468040216157062835244984720063476774795541667295364134846278487237887054960392810029504459979208677968903380498691881759223057638738167817290536371439154851897573816810327274078489388430325455451463790502499137677513433172773754536112051762182166339160929707236952640734033311199793959462597048043776495314697124430310742518576957761067337034091593287654204318450491542773487411258548086572997246083910489736409578095601596257466457996118875622241617862762059056255649814111854241237290840063222759307283705515680099701644301786580972719664008253921924700681218884122435077992647753104592164664402343710334757014249224177476590100365607232037793056981647702774835439256985318122390540697230473432709007945235733247440139260665844174781773825276292393511658070022911366298794390909532667856106177400950689627966798943113215908761929421860084111015724267176582277388485524662609338556135419423612996475629315363289403586723689848861089962733482094012635397065268541087773023050155935972979560701733418483315241074414306356055847877566619766559198405309259103835730967219538339347426845945936379764329225718890025407033933815140385304179849266373455808200039504561642226327040246294021629875614133941922147790735143446167934604652753233679681842504662328437894111314018457071178418420324000449112821451363512513617631762484453376411850688305476578679500261350253849078936450312117357977452771876991583611203030764364452727076928137498924552456817960467330103340831660463806801858486252981092261862484593967769704491359267249053901136450311053135817783684107146175244729279984089454637680487992427390574387285682768301650333262711064427139204315466720916530698150548703414413539357712854961879892210693033818832814370040740821633458142236948392454716597877260088745814422645157863502770330966767719883483010156916662093748888853187720076523509413332937895961372514885281302293460042778794094607847529533244421453542051956488509214989388457087649997723341398753640351029259383730707722813283878672977601421057285457849710321161833552698195921797352477405909274853794034388913799435170891789167917707330879634715245939328147155992235949773513692080317601345397639781690511942256553513232641674780563344888861218339644338722991672641804008668873157862156722130794239219315250227207942536183219294851325470993819652615324996190742221259844780504437162465090850242253494473762832134852728716780840504214081156282931776749993170450614961231630394114125428494602662391649424721234589764805768845879546142182722716562355608410984987065324115021722557281575534277833231429674038705449996524136331605190327782642897936134332176591610256961284962909764101757383980085238176889500382180785786742794408478401374338374223803583621976025892136390637016575035530324721604707832750707694933222497716130649084226028997408296497712514905039172395048850575331162892465254318691215575556523124219860606440810487847694214480400091325665690350726601490450763821189415744103253944750887387184815325096628487335155985357656175757257148436507513787194674703340434253947629472832261378281039404897276553375618587179916919568250516554152032558966095472754777790528877441905500685111830594885661670860648318203958250742551987467791895718531344289816437745471649774929969105381377540880867122478161624849096172260931439766496048423056909854057188822801909040930466766115227830765069927077843542301799899136639333578767466736213207258935486428721834254779017984187606109934018752994227063784031135196587484609170325597865021100374034630729178735728899235539632744756312619018135953975605359335057965666544689064328873822997324304354467657899178347714564503797754951183817408987381961071648994748863933278548449705676755797494818896179966884190279983932872213766999357966829757805234848767571656822380504914174349875585888898936040336454119378402094652756584307558393866677154258244728733127536565250970171442264606008701465821169163769021293149030341122708791199555280088945790259759991315845565398723059820743709253031944117158234554981227238501114397146213717463326321852081560803585204671855769042433555163280372296116052794610504722374233374404023584986343264987212062480107443418034463247568837176036724050338040110812460673707371591544567189697283820682444007427395294098768655247595845313469313761862813479748674192690508335416201250295255954031177458159374563532059037743296725295421761308453758578958819937385847554338243711901839427579366628373077727211258801225636551512804949377886765651821330079493130345523458415802502126615944124314001200466420827934707769140196334389726280951241856420565830657560526406045445658361202989755187745051342192673046429163465033876008653716563599068388646016299686108764304378321749354655505439527323256672202482274162467692359895290440837648194325695928359080896828820588625067588581454513671295381206800982871907220201926948964324792611083641533066963223175112733567219068936037350470070942389015704417826146088040329463064376960247240670377071130542527148087729341597632598439973115370931391079732831672299331371240112459505221630190066355837976656016787254789673456139790074573364949327969182028090554040200261619406101464187625895047057130491036322374222394823235303750259990216248468881919741961421020861927156117452897710956700262559313208133621718135999792756722889162632053911898460887798424548748215866840191863847408845176635610236565454915880423279115168262580308753062780119545014660997215024865964652483235420054577617694960287184030295944734396057540631457462912813824615186178726689417752349789877400795488306834106940173783593893120787008496437736131919973695921975325801347731506315199125171559737475983356868370587489673599155611427517421199374447185591015949478385109583026535573454153630652210846554149248250924585948417535330337773437266292091378803886099877191284006388115742724737817630073671435590507767383642220559401846774662728894115934175549100942034824071532673658381693032792073663047343699083033474959161849596706744262463555157359372527060622861794136929612071940646850215238331307044043061523015044466467181772738230935568967370616435331288108501388348898347985252620141670766389647975256808468562652632869427430874902768045302249443999864542907540744280403555161909124818626949483350920668630475254347057296912180932899873947667546756321791483983830583430962171578135699076678034478142506397213164794590735220454779818153560474218954310437165990097704161509697773711873269984743530588981036355716479306257750963079240073800056919056505234505589365433245857305078054558995095814025741542867485060882583255835612729557240311232978344216928094978433567578971047204538765888543549820308796822715093092965520337371846103569578566668347765821053893240151005549255166519228183600715114862431129405180196375451101119489994409501514328979926866495856583246878522142992387874097326584558276847666000372499157632251503333653829091561123788748881924184592204458612574676988715759901986020754451294895535414384471525347812000259782412226547091876777418278473457957423227104583350508528458946341819478117774887572493508723474056769013452134802273032786149582991800830750216897175189348949576660416320335710194341109875398076156024140552984268295318323802064535544466809651060304157361039953402522988904710204093968991272129431875331216458295681701134670415238499250493898659045113864784861346063888746138153226138020229023474533587729513225586620767440873393499916530698157575675116806498945688184953437546211354287704621018555120457996625880782715748639218644241382919145600011978271782555976762816599414416613960589128118760361599708416234451420604077626834423446154807816998559781197067137363960104149731407031523150913139928434231313295745870021860125775191999504448629638474476992043997511429779018601055216467945799489791044679213793176539783411471754143426600486045863741765042965095769067619550110997961197869190944741862063664462236535130053083998719407933703941857939711589438340918985910042928835401866173200943661891846824321854953474127094178286344103629861369091170814480293597566506266786086204499032825474004336689105469487126845914536545812022842000482039301313815736925635941271512810096859065918914230676371703196678193711085656356075299186784314187006237618154786617894983485759428552995999650209702482081930322723394821153115390003448134041404483447067329198580570825696655501796210847007532516568608659473191288735323566419218637541932090989165996924774011583002253952638337625744606492871115033206676214042322470271912685089003190807790454311511877464853498152980855878836642726271271688857679830103630692692609306801792393804395122182446416421604329899678928885613047608442858592052893211318311806044390754528002817225474285916744937499892262743935191725774275763721655364300179182065954335054284971388012796208680014423905208034802969824600425132509358236622011297206939184574775939809875491100147815615129870964410615766231416715940346432608018953814093862170235650243000886014388171434321929713423028480816389527230041826350483026542919935483244942972725728671369383309276499792799120087485677310325550299190498312084815150701467404080360453459462546217097267033409163568720390148351373016624160426420618798361932085444697363082368367761600356586543346600296882116610156631652615698802158163308004571410296314478422219115926805587184909967659811152103149522871532377687362703489935759122330463893008110061398748364061664970559310220423519589013583005396923718281199900483986441872462480756821187734489952443738919317708542826889643156254660109158523434836221143332700895295343745258332843204639076661164492901493925635713763939242125769092014734939609945163371939548417610820695050804912940850322873779855911411090678632705820616713232437697198541497138583671963477666322414233058251330598428595500667193192153978585919937891779511901905239338529332541036454163507489781268607032605257490553587832338717672256023159499656043856424981867796174447670500123065901778854534887940159908727256795585472717302464324495942708208385460544649753391948015417665612402067391198841009811724800284994672458980577138789736503650397866959918380210024271350686507024309739367380463641946873820679870709557407632854223219609397258547659235807915195038122863656820744097693500768513817454988957185205916370456065953141346409719250340971087745281408852925254358770196679417866039744781885146157778134544238939871472999562010141048791746521869502270754540240627090426938831520842879413960587110689861708910401931199523246136034983544994951127580302612383324656431658516123230082071743908364171592907237421209861481248809606816270589629407115850275003173871466112202488983283375842540023479517139131147502110595473112140375893204743692285170070402984761418568413042170894239954720508617432188828533461009031889428733463924465820324362418215750218030871663075250759926557536589819996925272975811281561749754604382271557310881551654789203070706774589770285214634076095214934683574200171274452423404680689555614651596522601859175878115555422360414240397460263706262261347219457311572710708380182220745424645970204311794756196612150964119263960794883560516378729655144374516774865315906974623905990008689171289795707501058885276174931998800284273497030258769186834096129871959200110331920945943092848146265773099929286505584355248823208743451447507169843567990074154612332541268733741601360120803258964748125560450957366816441763593402840045621289239513498993022839313049342855335016154562271600240153931689313347684029877204657544968404978627085912961767908963478447964353252838008281166058838508287109066420448579771298397686340573531778876687365885646841446614024133401089240132673020256381642063929050884048804766407955881458532190787965637246927149315349155649796121275209839171124303623136397356439115842559655804546861686715420676765373791034750902845375076771970553369513513129141394911118614813707101531336942938223700010325163195869528790177795627966929771248508575563041383269900633221298156421625055819905512124948949539578698857713895519716241891461877561739411494958416261021833757666669382183101178981680335946272218629010058006948057733746814220576333884504976622965232930443273437444169620058373613002620002048982993028416517228443360076643951435503167611206367593877145289517209100256055767585416464193226167710869339378861488812881749852204277363293177406288433460075538363581681680527891087303338707916146938542502916949879006055597843342706340691778950463775602861081959687660681842025647347623795966907665757609948355011836897004232007351691925184070390247751510938791773526835050399205125583330370464567396679647556177500049433183862902999157218988500612169174268808521886544807630226217021191899816034679984043409340915428011106288925290082764851542788877715040966205356883022282012153943976737930163417118772722181746215664746123756383590037306475023850415701695189518207994884044877163692818914710623485102214090164120906643720292673568811233584306857698154818855057942460241322643365557520560470460412074935078816934701860599204783391928384008105114323960232994178621598976524970480103113085482068864199482503145687946040781067061303948534815942265636913854278707631594195231906546070948890246051616300156959745306417971533897838387591705267951719826138406793291363420639884698620545821737043157135618121512071113632108707402826802019292380109255043749880795334839699973455353944478396340924733354655791526453235692592405536247861690329596454143487976575296878562320384812490517739771827730085190949105160574770163683494308625526019501493668053903186369869700075386189253384846881681174197955425081485998090546203954355420040128218395400556879211881936986683027088550581299733383725942713301775279236172590180061606405594492146738312152654476477177772873924577499146335701113076031153540277967935326923037634070884708867129962119144401525062118633421595403419066903347426007795299130620914427890978931476166721290350254510420521642969634307169669576007196915083077532176224022123022886636230287155145234595753417278231946282768541047721324315402605309327827585155946600618664233365627721524703636192347003262639903402516063392965820110984777402116363869474842836780572731464248726862736111263025848462243409070211918754589743242731766690837514127072836771345803409492218485335561083592267063491123236584681242934852485573583520568345442772316055818250548732592511219345383968281608226295256604394199411060363265442939026093136748533863863617697249019504646542287935649988387185004993438391873587965915534785049670777741757251025996755318616850346794928631956224267278360211395478007905707109233388787241484285067780727449889492281869814143373255335411504696046765291970017633926745204732908844865017935302422224568896511957277902886343337477605632911329972582965745354554808166527920856257853004921650174572573440113145572697360444428462392926259019736761121774751926509939682339679146807250497228533553799625068504063968503783315022577887256909123079937037746638944748351501172833230406029067479837449747720601231167430561842873361561293250342028530714775950839048761856037684577750800991463943141290175992481451041796772260424193687321491279007723867728006455343903213293027637565362007724407859759622650747226048173725536695145575124305293394207707330808113054640160476169477275238083038235310689627591524474470834211864444239228566554150136648389784528554769860138622457254043930018191067712725980550341236085789391660034036021473893461033675388157536771949266045822304194092931854676646556667192648128886307490657591536170107642590551404257739218487332486032515422032648524678611666093884593472272351362861567578199794161702232511568513583365894988480089621562414703338156586926885118809575471102360192867532470153428911710816361374667556658101658841910305826884427332170011306491115078084248136040294149753974755207083101855554093055231987549345325628635991958265926904828318316460995038678744835549720191577744255771018249005411321182014265783833322783967046721785290481337584149178263192803483484165525249571668083606837308145155727113844176777266538958831101067510956945752481787508509783082905503800040363954370467075358944790433077578068917980447826765992325224041219111733638543716920448253457804519174454888499058521895375691664843271979334041888299542801477200842595055485433840161068778551604302770078977225786459447748480053532182470465239971682537952579248420355358665651028556163245848668607979720826185091366431871941870637113538693418453779396387838223366154993507670034657727148815596497038321381365354347182941225818982189391310105168254373163998537543350392717407972692396989279019081900309299912213113198315484391188630697956052181699056003089860147490050174507973354447854926755458588211837923101224403396293225591526471738802522741547728355312056880395595746087292515274761876630630293045532203555572657872851393085151590036607748299972737633826192787244982128217199417206550690875539388583242515197062684203140415408942315419647474728013374433371257458830889025978419404353116046838783614949316568292432392761876944886906308000039235667133649423569740645009422676642653984414762294814183567951750295169776935641155569680779423128960838299401567760943644761313241749554965707859027993033290463572595675589919404411088202876012911494719890653298212261667665171091788730955605474548346773040684622418799975649352112046904302170067562978333322087757046382227270606578225888073544354229132433707104706592475418182411363094969745502836885585682550321492909764238184264785024223560888891379593953047218600477690511180053266872537989112822487429761774873930854655612401607645463415745190245160007381661177898940995441102373089363735681733801678797181980488400137666620948959921426035496454342426498456136985731792434725424749814329739573784491939089401470449708858580198071409222031347786891620465290534998000477028626721483774025480375535717654152856060921027992456692806054311956980713104290733748049906650583450010986069929838879470681968071993360354141593776472093737845608895219253227274289891123966730829581626329653832917490527710169362749160999542010694067663362959125554380445580898791986792619276147585098677659084550033331236992879838675164976306646314317815419226303534421345925800146440313563991801901900670598094355226794366226268201088932008958064714000756919873093296380595149138113276215348068037288589380144919783683232287121326925395764883950002126813796430638762649047182736676585486357187602332145644419493703338050413575051234842091113479941371195275906365532508192481850055401947408202169739580683418659822403692116448170734861979827938437231641333369268313599948608647710436122115416310579796512702501864852924520953858791286936490602169988147441250680529495521720684705570797640404458651873439254304357153055344413281549841562100106590066680319270093518487378755812582754282645432007346467012443756712960878122683290927004889126192750795632926059906972025276731502122806838459775014874513305107699482597332571028648881014450143993480894350724663759514736219209101228120484392811498545577841410548127778467204680018949450828105224638959554166746330047158086315131608743844553950535427259431864379017248938936491540323164333571644535872357997274486984563895165673941788852042925169501867747997341493208435389946076139895615948566032701565588097344748678452953181609200599867167693468260618802815914769112326774001207041101355649633380738867951267115197226043666765411078196410120381971669102401821553197423320683117417084837339941905063657712741563021124842852815701732179541311675351193928924761995198684674642629382373552232892345285959556111664429297142678147749615194737668190562310347306548535147368143545380839574443745594321429594490996781562256249183634092724504289016048538756892721907303537477947928085493765595199958543679847930660575253477355022588983974869806439295502594026615462334346321374012039339486124135138079990073741825372269217903764417038593077146110973454598010638136728006489536043145105256405214973667724200529787884716714794292421322775644643440070217750373104611062718527085908854561923017024961909542407756097609655377084159175222078500468194751548165503347865338874727416731536389327747147553318040888174276993595357279963790829927354984475743449841366609307912334532250813117346195583540856963975966611591751697565042556260612567426809660845850692123703448393354227947259855026808817845635982448480838518509590513935835492048663173074745296914092231089036876493361409347693256356321777630985371316933132815433607777114803583696961387257400328629720533559302981361558635104517728459404757428881259277321643187750326568347549762951468844431730115163400648869738615791342645733153644030458711629403606480211512768291089820386528824076402598987442808839643656568144227505460710489583519561448404458448445807008834043524329566806260881431354845448311402627472287740295648166171883774581380606455349570802074079040055315730421593921775705181842800842358901629544584675460394642989216186376577330089816896773523776039795877623652891930591228432945731030929297495477796288944550347566331181885505512542742010506395428620400867062065067946910175774018534676207425290728061996191617309526069481830993210408657395112605240897732091702896796097656778871606718483475337110375230493820108791772811600394398731577926886130232754670453292091346829663058615026670787695187436628633956944624934824980541279948610309865153420174833335152549469070436306562680899266659623040408044226638617779000739020020158860320546462758051850356642330095312422245319221383397532853254667029426401680440482773882186793988240897702880613607598467948201650572659742214569153820184690123919809608872462057647718395407560126939364729038878360436192703071430581302977363164559522806626875326029838730312125770102501217548329706642595476383420599987843328202566382389655474947513558990547191486397430178657012632352384776553716572063006021200438914690360919405012955983967081630472310438646634016097817488385419570470269411723162947296092794387477266201455873956928039490125743670236320260480115875937371493651899847826706797664073654658302651750578303380962195856802887006679296012431202720658112564913903559256541910684441103036964866309952366981550728216700294201007717064844225645513402973276725415730880044624389778741015779642027924386238357258699014879072839472336567951526780183249315964145738135467512491578740334865748992448593500750131246685362069422388225218925160201980617847453154884192300947402971192775137932897441190856969556451578889439408148716225631424851600204072227081469741892999147110193727128082096564066526033463754149657490158822552605300713362973848370899241235868984084802991417471652846502756521571276445465613795196948368602640392198783889349392175456203761172230677625175231510207287948296178501000116972263743183465949601013255300112531026093712055230826581295869188208970212272746092849169533512499475266133575692276582381797274901223140463965615655774488035849645851911872288972155326363034197404027218241947131862614705052738865186628707116500397646865062229234490499346963526298201532436481493939130104344224367567952319846204839454007191411329250203519939799668077947493318557945661641888952871269758296936304942815643082941773399138565669133592035400457996293246813116447511444405162064017199031505991684399794772713404093003186003704375863961975456905630703236299074656914840872090072620640345672269412777752077752930505460178795845411618707610447249673490822708392945526781444678614403955865770480549956844705605057297951361390284954557015952100967608874560158165181872076367527346290132846823682308904744674639620951038183185269946088857643780585444366805243781102409881732201268366950279459366249949961271486082511329418852648750238726721353349178170490761217256179399722281949682765151024575436331172573809635558321018949246987152941462308895879930000588762309840671771401699762052433197109694834556458643986573785945279655144783173251442548201502255818021210759503018819802023380149032026008632713600930175199132154076412035582738810486130223307529421245876987892655599558162433003938942288866893800565429156878457729270068789193108975790337799229455968165537648663399709042516575010478856268121806772812397069989329089332954419878042875885495361357552845803617430351101000648307047784693673355468080583878294397103102886625033495081905244251850042654701215850721399100373909592655644180109843855931008099524388176831339116335364451756404551073559063227786653186412211909831901211571807907692616191708688854536301242037624733192869416654371349781672678248474480819597646473239890543962476654339023226395765892929735887133699470934242119002170365816639841619109524832162210121695087932318865933799881404395347128045556728980706922327312761497768546721026581554037922703191190410497782112670676197764212802656068423080920487569952270504665125889429279649562218582305610778516626686030071155154904066985585981047104444034448758402118017752327643496425287596443723224685372206536725331101601899226138526398358570747149242522168016252506710453907977470459221716884993231214918858080206498372560073810822100963761430948602862829216708785303525245335194783851881593609887140698296555649811638178309588615702845048718717990891782331934641487070184238735625604401500494882582241770545271318278251917476779937173121038159907970684894846564034673836838205933184210240227218903080560348375051844297222771215807398086046225810431855001970588168465274680911376740359356763394942157575146735475337005527946779463819576730886420871666407561505105968749761834807066609239591512991363547618230645324952255035934195364069072171394851447941276573858193947720146674806705274740620916562049985674227835059311398795718307890577060865774641770875261195761591195010393132172222799312797105015281625739630561755944156456613958451271576422580816241970072851238733037767513004619956329301224652545785679030888091320998183146209208319029189193036386435388837262093074423942555082690636811077145288484826964017302761138467482702235120153128265491160666360284694240443005169025861862995585946194261565608303081045895054342291708256229334054100188796074179326247885928945954343130901328563086203024714259197842384745817479116877494511783443338160486314166823632623523481349033228217428536550850395977682851168674217226808389927415331757084956012600244918922874022972071155489464815408593079912526989556751803541952529607103480040471552157063335550371184317526142174648805900623928148819591305719911166842687038381402904653450251980503558757621057051427850957411174154224794209775843208042197844544076203132535623287466609820123936226193585510685742668702436936630488628659369049489693714470520243883874938574436042989584236068613596772910600120015729450921042169946618580467206313811304687562813230593180697993008910373575583428208383752652614924634359365807920552899604509158343381880408508288803879433642679435293907661173886263331576990453298639051086983334929144178624843267851413742228051742731547644934022373678055258580251080774107855818350483737261667078338660734588569838180417926694944779433472435866565912245191140430815333123444371528918114045260563673004751389564103451297442390301601003051312874846147754245137381446507953655621465815292803432315898661740469678529148452701565174766981424871219505713784274183915706545467653328514985400610963152155010269607942444988915548025452956056435219325802342099760970164023715472684887681116205815011814737323972196949958498796383199148515345837696965867618601313505111797414730317775993614233443070350598576608608544504646970132475210135398151022408210414339417783242504353233428123844394373874950187836559762216693698510431538520680186556002788979498607781531050772068341518303453219594346956022469645843993317233600434598812208274935988865745953544035760083643867985716838374241581682951031430503684126230136790958908889201299753553024629079112703659370735814881052222847989464530301136605226886168229172018721836372606784083703570896620465499506210347479199061536567397111366577343354799626837155789770985060540289358028632912519034302666392343077864734310385695335764714704663909035593945729341845911686376895665755495538418390933574187208769630300388364104710744175847357621240198183477514151862321541734935832983248974548900060025484616411678950326795438027672860140530144440053975727105064413693541675349366710650411530775494755645427788754199468953870992530016845012133072696832217377879848141445908136460187422291361115051525109722406693506236597450652842710203833872047590294292004517400037343969404439442836236275645109996049065658946200998665595638542388956446122809059972032949421779069494842765277298291681418929991089957241544829334970240108473956866902448975294557871750196366603748545486978211776750590456050824499545401106811005900404665783556639025486517669626821436264350142646796204207161302179300858258461191237824350942531299646286791062649166705494339844995779602814848338730211752686755164938974134849610706203633691458679222096259994529095769048815684717845966706434012103024694836623703642250644167731342984535902700165256847404222192906012262479637206536355952796864333627371154222968286766363541334739411780967850544460114884431955460557072036290794909586644868616623607130738021279245750771621606935821386977601865207455145177005010936748352562515303228206062643023198493737131232894368077485660739454216093800179718949992859627321511012658686791888174016522487336313021230621611835908587075947003747032742079432134230161506012788306510114222260555601390962476035550320506657903989963845042977165971303296107689353264748941521740008828027159135740003962357435173082565696520767620597605321757837988615216522174525942734253584403906943895485333021519276200979792181887241539423406010684398506991414234390936444169093945924836486017941703941951506145770198710107790138434611737011969145189272245752682104850914745944554319934942263056392164538143688728760585256429232431374107526575978381720166578129570910817619091804012427473650680521639252821989229050119191207213396971885304735153295061931947258191753481829521574382467607055024690689703475816524519278196602027373295878934495060760477429867646705868407956887667852078189717674076748344196361933721549442521993826194586265820803139104905617408233359424033512009535773237860495648500943738580347067916252145184580372339576317686818766136642208361961800547173845777184704515795384351334723787813251622225016276069420852415202315897401494202980796577295587333391708522098194328134410093904810251036700732279443610915766518509122606972916084949482855165495389033030445383018565833773765002356271492292216644413534743749034403745210900448747947784112322779172748133856772137685383275336410874335495391668991991273696979674171694934522269001577623036150488777165492152284290913420243766470367437402389144917697511825249301077881955105796674253071331157002947731567742143582808161640545724945046347722144412504985931453122276576859296674395313303737612068585976364057654777441399340142734774283484223263504918757689985947719404757497916004748606348332870832939016682743747965005069781463639758806637558977430990499696163626871878309499278689472332909615477892816620482970608103068142749730145227613701939003481286645568282127490322208592584642343101722190356857973748739665700277045036151500335851934137922400566561877827496921336322861457708930526515117762872819574644770151964175506259233538360444229857756586611292820464255471932607532402464248977817029651367680850654251066552544491165236936000995376293380184202203000736199752614662646761934011383091101662946819759251076230972382543304869601218698071545017034831459751262637060208809958390567455834078531624938436789062070024151064498456500109713223048975432371751541983740492367096061957986442348086934725880398552132120722228993158744988611749594080543767220253406867980015893004034566460687925771250301793022508415338727824429792517147609983244481846563833641065944459240145540680390553939358996310287824196072531888526622620748126122106227993465276384089418683352480586679021148127337698334634381727804988989096861310012771879801049974446853068902243770023776553990730893645188392890885230701879639040635977285470778758975980588038253677539306662840066300461569905131393804113094080582004819354752125197600992809445307147872683946484965347142433344527428284496624099596359704736431228724324556568125907033418946560894550227612750899829428703993135009552211734496976863380395563234323858428277454855511325645340817035418948762978066229915630785426429773252043789832752883757205327581319876374518523111213459048212610327743794576667594491766259122965435360910003457778561903909648118703287998130838110428559654211332711438578664735310684354150435617084920200496960559469439382447042208871373735803853049746970047835094544711471348740277068866882308659780776888955073937964883989999592566136036079960906329023385785202779272302421598746417059817552973908295569209565965097478158052204551574947221474279752659549459825623721441946195756038830734585698140753668307036188797235171672190412949042655239453987458025090794628877090187419224678567977523855330631381972073439032245480570939055944992027825287415204761374293959199808072692743346096515724743026261235098414930840876116591521253942026166545111176627796100187097980845549810330028104355184040169871828955213839860693327077095679437009724341069028794311258417095487251360074290498146494413823058939151139701781398875907106489974260784493509582736860881021690942609600361311998239298083504377967999639498186146629802793276928817106828455413858481844547938539359984009171677672238151719556877979295898196113574061124173137598281468760621674791340291243161655434961016005720570163847641423756998216054114908635892301616580097984027140953291226767008472164172805890963236891860727478254247205541363158178516899326496273837124884905089510018802744958784859321577673310736683693986500019600497251247078800732204769567558846658844758273475458937468691399239412123229576890210753530221505506157889985431475013245990154650035598701221371501967480320107147715264925757143764649995141741620880773259880455229392106996463505053719574886401448910836046073596727991933978850212434729452334583268163499483776919989024263543509780936116196990664352481781117464019925443164202923524327162597524037738105601114120937291408888847846932489703064102962968308659462496352544029294053543504504499388983639143943465044473367336841821709148208861446166197057122514220791891577422834584814218569091461853069443841257653465590285141541091423200636743881569387127605007076266208487840175166068997496321397629154384295991239588876502096283157673371851552337341060335182620809397310536354255330161378210490418881418312811563933561529162313481670616438872877204961210905284818172726274762970341803997032589200846980329646929939966935143761031009635810241136104725360104854113414493140770288863432790740275089125750309137248118105623453313235789317652504957246181607123258588664673128388165572942075663844820468910121571353371241437046368617905190908951018901335603088925647969143229035696445298618118554007136320986470187217581524715557895606647066092535525362428539067026392178563308558746747915009569913871965054946391498913419132612516369162460572980508798765125454194087139840252188822609118382469438992392637118071410891221276293751513865308627609985406483193945622353313036365077707316966369959284774856151858416772162874825206836449173645216202687482935605876735322749091566375541833097269718469756940057970936865070378171839831776222032917336875687278801879493684418438075890288061034987221312341760286543324015071087641010392112451780580080762975258391087445074258007844959608736934050629319153504904742801529552939353934469846733071352423857879786842070411191489716889261121982349586260606030785755573762679462588887525762783985838123136437464687896544938701403261946713190494511358760096104363588981655325794159634363085447668314012797093981321879904220275090542142429278756164781324952076231581658073406697675138917624885156233156142546214722162952351106084176481607120539683352107722509853864902238661976897332989935634372906041214786760876694190996168383662961937937566612131461799002957468121855253723416902428431174500184901483343760527967015305246574417570385116579050626757762216155720025773424481096378257727813426627298687539681312362905049286619050117906925640375775401835331682009366213186856353213457189974760852990311581224637655681961669351658134800013660037759512341605315244628028689163763793814574551901112197491624427096562001703224352298685851909420231536623116136941547506427760600551030044346355469623840071984056209596863325551162031174717936009030291087768688561312594139760081997202143474712466638677691835997398987581454908565435461598582563725819028152227670593293010333245802854707278631399419022047803117528622716368375121791612764744158053099169096064279673734657783506139039700936819905324591489894523129853317402585262323257427153478312629704960877156358804733786721372649153071953759279440238860277888683993981550667137681539009286001184014929225863926585611654299139268823809015278154087659726572716901730364850630725298973531415001577265168509212354648116158811091033362336248239389699552201825212802257926770582035208617858167806359210031214538415662946619344081073696363701862662761041128897300818606349733160975741544102680354693421148513684304048969029365016997864126752388685198871422621097145127789628643992908631378959942582208010485530837225047902999206833231123057109493278048332898242778907898248084695813050799744730721970892009288124540437053554873922832417303115266831066432132826508997628246543201466572092049857421925627909298564785251814614365263712208768490479432476531438441880239025453683285058452272523485831748608556127589475510041008446354522827403632033712413974576009081409927406224859656178815139895201001406308045009181495810993664847199698775235819010316625470264752207055136282531368952330400235831853005555660474492706803176943682516571305756305841837599312384767594751994795654680684447938085009383507858781187903295767642626266834495676007519561236184657816399957335263463748398336589890622206054017797431626840502833148717479127375882241643900788549333594174132194744565448472925132215612414152517898986319888375111851377081344439948939714754173148013997110478353174955549784769493270764692135851943510340888756665074673848589827503099166892558520488578620072107436471522249519561662826188729507921625005877055058746508404407921214057285398940258287332916866770016867692268570966972767085653701905940917045407667451547763801993233166765089438405207452460830824824794827464488935982965730290496841547931221245666119127069287013964705284327296814872808189839026729789106050610192983688798202495829770924171879843983990863113754297131726410838333333043949743609519842800437401258901926346652925622324524916882768614260896812476620810287240453312328054857095257171781611791955419707908052235955019251177298295105430435255103755484943692853775976564274585804304396794521159283311615361700504220277643332012097566635219631134009487115200939698192095647464856654272959419477347750661911368148807099276472476540326453211385910847608817801649435404442404328787952520400611294704399820868283052509676691452458822956950460444251873134328325962313948132120609059233577175325661166874424577497672492986075267778723783480131479588245237224665349844377728857968705934578526247249531696117976359150581067165202357248881612861145768830831422371342340074279342445753167018252424576980989509906333618071415932452536598360627989514254693960128861183403834899366303826731014110354108481129595816736684327481141279007558570194118072733737157035487068113443819943763877076851452542538435052787235453187733208378316321248763253729849393088256972713069400229150382163665298808925383534646441105573982587048560118520796440574624257349460799347893350714372087322838920121728662212137238772095424441937600314177474696581503430120547399807153156686688496759014552746762518424824431492828611631008364553920646359013140407802630590524835751837894462331535289590588314287347807861467844056526227608831624479477685155834148581520223603937052648911138535303306759340798649213592498013558675166931983891512086230100338263089092371590397638247509372427684646956968773936051190586765889497864160041478634835136411532736257614475567612382825220942754061548893380420648692404550152348439297221174651042712071006135970341818916599030078334383448013301660296036094075880781599993646929043314007207667707845471217887093103864364645355250069439148270842141811437135262913689740505716823269001216279688177652156870493298268779977175453262915178519415846160508784881226878381849693857972033505223257349222707047750554779813605929582042467847036610526178978546400761928396256290585221295548408193461019170499705695729772998347039092423271190044084880643133518324762107038460055721268101181765131126115696554221716371333386290533496196059475691508981648018180061335652361013872292553877259518092827766241735202704191470262850953028219889372684323618215740404325754604929356331506389109935031894161947406492026643483451544931220452731395621754965629022266033099866030664174233397610231617835346543020792479318892456605212679299324813186546782039157569365133475729302822969646121899850635980500881004158136955233030722964741354962901310625711637579492339659896631517935145310008051245079664397619309083976422813341104416326611502434599865011297907077218882411603340894237962411037275191370429084243488402323154919018202806811831034247700722914083146853602165353890157662580797818426570689872499822586272216132457435513102453016117030462956589878701683035929801235097361308289353575910858475934000066291277360473929704447131034336111113298191096712664427604753292662974026784321822760623342438379199271248693121059562299103469701201833042931567823131024974521815545887150228267614792220144936915396030915662896643081179404101171104361315747175548247869237240237664245115615030326511922264901263837639540773127376594822034074326211908478775794573812201171985187658996550713225820619735151950189913403604457864201857373835248317195432637188555509426629135738573628120184668911566188687821129776374815802860684750930892015982324385937070194809586863117896413507226641574419219627520911380601225189349669939517603695643606357072022899748960504342318233752862917045360235997749888364117176816579104524160338537576470058032313513307557459619413815443274644773614938610102595417324532820667526460298387635365978840182204028336216492590104802357425998074373314317022326446395796397863823944661710450480785272471685922987927435574581131657234666265646563268681922443738595476238321702737858971208160390033081305148944410604299252611715854262981205520639670971294803579412292084471386992276699667766098339422926812310436938848858460932893478451955507417324736313666994657805283369436210531633667953038503580678147163219584467563593715849126601176067833283041958968352204232307565415071420809946491329234665114230371484561317765808090285945236010269320202815142883332016495748705603141924552319383702662063024969325203644711226201996468300363084228771209284971774742546726041780326807133757582380103384696417273404582572733187313043632520610150312879033563433167208634578410084122293120842549639583287006870221916732410436837272107605372210724403876674315769763049218414045549225146584793242464889291407638259590279557637410071503811287051045775138556942078807930944163652807959796186214965483997077157551701568705841985530548929249233409169487231949800860821019469998073232486638027453583317794877506500796574868093124880306204322612714907032968009461207351988877256982579470041879372030712041590807346919503688651170568915939228042469215984732241430289320009398421250338664287571154200962172853482110842220264705208912556114898214201844480119593332088558429089679825076578613979467465700234380092228870390963539200026006777745560117797495113362369464789862790933574216493258581523131171627257871015248094501058452005849674510253562258070919977647745233014491870788120308963334554550441273843147089561924781936744417615114567938165729208715151989649417431261808048401671525397834645135890445260783170588967726876550023267530485491624966961430782293488124945740146083988548658200526308860450070940196476462741520716804637502878033395224266887684978055686846034915463567638432749955451309091889079998006961059209605884560650174421216004390310038359026580498805196975649081650880177553466939181506192118003806282767222292040271205871121567558716418452415588594310521999811823524912510183769966122408339239615530419162656786732153215670921089816303246769947043817226970844989659969005541315105774080198655757710425726368441181493387798662862633520751828746101388580909584868063414835030514434776566311843138931136854636698258091748239393088004721151363673680743010255277160820292580178596638429550304578448569976318967302961594947253898584833726589645965026241699891734779739291022274244114956757049093902031188940596275511660805709883420851481409279795079499534616854002423407692622710804749886893747164320480645877610922096703533075134975943335364891742843317306966711524760364764654458848666315080852606165984422908703018188745352872009159827898023734988538102480555572166317047659366887790390480593067988487460268247195376143099371658710824527677854228902910466530257952576568788545111580264827342386950467466141603662560823725672757145067998350533737873944705400259518553067542752410351666598712394916706425159232613504363393883676081971973567332150826512855446957066438602513726416740373872632042562009016995400166397242378735180449413701416764624452229455388648668754257717718443231071884248788716680874577993833206287644501148502955746496634713119981505345550761080121807930135250802408064704958890783702411084031648189443714163837949804268307421250148514787357426546268219358299957813155119517405696450163686751042645368019825140609308664512464046228953306852110397126116182156818207047115325134763428088769213301831824992138637959957551551933504048391235811201452931173739372306422545854611557703605572458899661668364517094954259043952472110807777249050303550233378259700848699676199336051827801187584045595498061993617149399931675572052517057712460125413596182605627214824766592067560237849396192276981959105611549395655531320263206992637606884287910039207610145396063120329825810649074231553596828756216079517148926857977830484756773215321223608251706832563256529047081956053591504826608698547789555424736263393712073148408469037051749294003266214447714823730857807275361457877771479555356800251717951029561570832961006071221472237794455092985760754014551923090836311329199247273131763405419837121869214478429327721171061765155784599326540294753696025059868135475863961799398734779336936006562731387853237331192498999638613816339062964181684565199959572232392580990148284714150885529437512097478466851881250893896459228169918121004504336068437880336521520613576870792848975406654574077932634906207587965059818745125144900713295261635163580237339963344404618856913419202596962856966259822747446048619110438347864403766602689326329799429559725478452249292297143295601921395104647610805749190389146484822289015936949500469767055365501775381414865218863194502970320926400856190241313641609482279040910520028845365527161904571002324527194151116790828837613295387016415084645474681707991219102440977984797566756340331558205048453107596095974795492676632782243251570839052873584083801833952237026105452009898367687321845211324070343851503379762710522226755282989130435955298359535195227642202867471409487109470313323127462707226054390309192165237760980801906621062850581088304075590093638129145319240942001972285869113237121072037570294983378010246452843341690550845370475741215613050530091219979951428945670503687183935337811881858248252051029765206490555418213084688385259160640179731289291677665473595364667960027448168995272186452976722226290287264160974129775823651628964785781728666811487395359988193305067423105104553688163168744741383416794581128723832249573534597250761243473884266286952119085000588988277423527964359336914352350083093421217509377814853794536835578784137683950377859771597565663039606094310380823121927986694009318117748699156626386665648292926612732972929059906819777168989851998782308535672158219246298731428755106833356596285788458773295157340912689737818376265108432616159747080458247470746864681029701750798034996523032269419177316158719915413179687970736031088338319816093267562017770843157148864993698113018437512090017424807633410478055667521100168224715527530560529602868242837711212136975517569549638828836091932830141968975077804957286923055694422046733392834168742088865682554504561989896246241218094400270506024003157466414428798181936947541876547636510536312234713501517136855836340961752527267059769168093464125382996880895753289957087610777623879944687437898927958066483095153897671899529020085176810021222225902758529420823604199864528270765116322667545224394441154623125711477645475155823281008710090193101377293479231416847078685366701723501508203397768002575000797629882289893400485791652898947927190698540254745616736907836751400134181246511393229967028181879699211435851738970376583423449599670072333207560461904195632241385924564184310958215159157834786129048537012892291824058205237147569879741118634232237747692838444323293175572908854784804449861002888992234795086587100924054202120266000524649738088342899803460200972957468377830998404382324007923360776231457134100577017185628260669891420079558809579667237915347554279112594904118658357098117458001763120866136370399418994174375920606009066270903262728593738207293970910831506944508776391048604487422975414687887328207194623529902053637115963218177985096104797998353374778146812849334799615178188662308240399484430811322917004242519555010649972222232599149490674033672750470490661624081574422298054841050123573119389268283165917032311739579837398373827545245922346445176296874866173896911246235727858258793707693337219695326369049054578293579877311356198959151331833640514876643049518296841457135778687699117499789233620927230206468762260134508286911976554229570663551597129141445026129079316338495051705413286911937637221694813999594125320265390917180535051530381833553421435664015731220775431155341792090334303956299343474148094387292873274640509054351070176169579452150547082286295803988297214774344059534006229709641825771194487207189705362672555673237722442636284459272810560630533124261261718717273472389272367895606033894146999531940574958014209643932905246299373952235452762867683421290541676663265013643335118136765533628821991935046253032986324046785259372211108041596989446019246912952417069886135333225956602614049226501171730085336015539169533686482861314329258167560619846730458532646136253660113879885926568194062569651594594434162733764040057321650016834684390312578963475709481022048001449274117427584152845014932939722506669859715905914189531008499027417582581980142375475737556271743127703675022396352620990576675257045332169925356242658405666884765796017565073122175999929756388211474684226154296507062950803625890313108295681912918784630852260405919541956797812104462136748884991598040052773013717509717028914118221257471642469921354077944013334661560523657204385376889641302144853751066710288790153259798963423887479504166755168952297633625983075319482317733126739700733751801687642544951397181846002746106444617652722539053570949704607318416055926174840183891327773887938931256196425601533331246513834901678000943140387339315252943948999512479288766350539130262279152575879440243221137207540343564951628381222219651120755100216366792298376413391967038121720388262944738396645231544775720381972660627946786619872204325162443729860578307105515618517652725852532985541128988891102784057713411942451913818161340963205086222982008156404713055953065796397785246910520379569038077802956227882704250502219511990550895330828535783719135545656365297925651597135449291800704040241289905430101311935217677373154256764494008037226884739989610631073032371656373611419768021334196956478006992447612079119703330069562040525013183839749799651556354888227519674469877658029666835325189695324533425434646285076358664128016377752777773283839904993300076340410016012705800635749937057718670035841660719155330457448281669134559312167882676529103051605635814704539896682715361502889577805280451833595130514127611181575581982282729515027062494979752174509610188266966376699774481702689981565524209641834429879012915177258141841237018729692509968159531075040148532896584385028908444905075866696703009631783664549197042682225458004685078114239214085577394611503756498620205337285293763513158965359415173498638701938680144907379617663424046942572642336362055387108663109465372974049403283854889774324892016697573378984404934250045472830636517001523562245385855913769441219751793886897208381416822064314880935245369164474984807884051758494758863822479171063010668175382765393963402450406365406940416687489159902329949437959192010467042796919763603414957674240370330620881182323796777200275927580807538371269597877938293953462886905835937628326883721411760931222473479822332194375540776848213439929003103406896699593463517539873152079799335931231359274493479502557621682555853312756481771401801266864966458927466755651286731891637676285213182123290166366072534893142573381627643754668391376137398969317791610061960512630821377541758973434463663434329727089099460183643315255940493274157274921258570069269918671107347027912656369160071788591017652639114701788446382139819402418639717081713001890316656943112921677380152440836693188828347877221307343344877702364357231128251892367733792348560312431895354867606174480127429369511307223648584604240830997138400909801455436672391901046339870281437229563851939982406873251665430433817549383194887388748515088569052868173636707246875407880499516543160663634177448012764929286693732080925912104657438032351002787868080461138507045926089334427098551490161273812147045506194585254656433706542413068269370679518293268138086884410368362927815942542581878881833598337776504654585720806134098562675414859084070520948457582462545456089642626492485250843659431344479892741232178183606865608271840167226628223542422471671161761216632368192514799917896257842494143927904387385130933270162424988434150828665284159818791087953222438760803302217003146896333965224445777048708158901083227828367479019099877996443749200291671561857106214909247605637270987538446432993597004536268217106542355464885117943503335880064849844788615266977309185166900019564871695739540140254773560597527527446717180601245822545845950956866464637647060965529823216084067991384354629234216912937776536498712575326374902152443831845092567765634466253565116724079837836601671231344994057414111878530419379855281071707062187572545311490629324962971538432169641331620755646876490726247184851376983372494124509861795912028952663578147206999861337463922578427387271534317425646739787574855612621780269100200864509461823179011575566107625000854835423600167473077896024510149633763806812173355051942669490460955415332685767157035290126126390308826608759969447305224293903521939369020544529451793908458356426466543313037864390582811359532262223479657842705174285830696084213516759294365591522465927453050756561053641312751239589258168284931052740459873284554562793694275327514521584434568533143685865110458526062365963975255946897729200255367628792823136962364567601679688235048913310273276032785850110828308867544040909782430749152931582426552874989647970380431606072412719716682478192543877822979775855763659352837525038470865714225213041869436126885850569600532961877430567964792112397218781552511720158607789157061231095032933926946077329038898764061845398547347450687937167711952183555018032891560100182284623499349230583425088598326687916023195258883703611990603669514563657893198448410954279932000083916420890221303673635654313656375321223742695912108789417359295058699928977448301615777482814171031481374961600582231206274181112498961695653499930097992515055171478069859349661201065914391603548699501198311291786353566888517352922472474007658356866451868682390556302375762628204354103750423572242673451863209666784524153682624812554992662591286767927072694276948017739346117413254108612031069584654673446996472282630470352697502909432705978008736966800527191796910613678702870356371170841584630582736525913592151850037602306585951765022033595622919426334964057183108746595534153106504555451286731342454668899988882909628558618884960769103551453915095042294776813507202684249592902405183083083166897570270372165557992626973367178594175631276029873849925083615084641260335845827990595415907872498590862561318387923443765096660857671195840149498381444921085826441867207476640190473244620437223958494746050896600763622622424399162330407631976987610770497255719865575776961566567212373266065379076150087945185173386814854595123726499344634793208466380856462306869244016479747356799555213285684563525221953488617552891394617895793671386832047330185788633854230130962468097234236917031800815226061418684817085834842862984149682931261245345603882961914458176373324771123506656310099865683546257170098979853042827405483700441593979409043357816834279428502985136875760366279874987525978175837593487060048580444098208767730528036484393210934450155023307214275378265251704302661120574455044003857121528983580067562033225224325271243140842484434685674372058118329339589247111933274220239470302567139000314934808525926233902818779751960476884085597578130123105964270443750640285984148029746906447640329223410215368023109070367186616065368404701935506525621182834501683245528684014556858702185927687194694144127000153178455511204115158940338455759314865284657784628037417694505989584336954170390152906677548145913676504766584470533750760345695165545083034457943359231660934017210776003774841981125978638828903590285995242422807173425917519065574995199348893853799621005697196817080816242948429308026256870416466556363733475046602757620411184208413729089781526893332279540548813301438127546720856358325556034416302702035469946734255960502388643548664216840931789199067712598256671528992097247796501388799478318394402250285482353347625930054585588265863938253665744540257930545386138356100690294787248718337725851574361887981919396308738285838584085560601189077908825746217574915096878527304490389494617706148676516935037196889358629996630229969541206926119037338245700607527058828666230981482923991388362687244026493555934374456216489807938720964803572489083732238780919569275483670090997415092764546789259733579311387684050123380817162871511926427776922939105476706319803947062179608213145162829341222335950805677784236868486882100563688266098199096824360564927271933416728824152105417715976938095400059739092383195142284976365679866149269503041610279300482986173648465921448819554190688073615913839655863059319609611966512550176054759400846238268193614251674412839350378556538474078754994262193589490771924480635052876294815570607447151009599216289629494697926095687232362144911393948399400668600060584814801742345614977116535938789947872104419992733368260195373418362386207640957047759981382399541474762248220491796620576421574815336622450253905893008726126992148079310027717253628606743220213130843762337881296457998164826795558139015814128456909927845676394223783097722590698920708176121969977502129934562189256079827704804543613105553888085058282710689935373582147614057774184727549921558380731588071360042676840044652444633179026951960601139012884538509756185381439995655706660030123756490573225354617996261036956562880580632297932177985599039317525867558423598201375006321991749160620722777641295745879939796676537303837724142590783851725542853671404092012189852707844086436446433461911591959036853843483151633336226355440000396217247214870494443288159328664440745822968275985561978119264225895292442926896127537749138639097006480461392646457697653244693970421996013385179567855962913370375399532225631833443372991906563839476687575315999737096955469270093119962076640545668330660870408702872371773438746750909365638937695785222807307340373242976232011182834646064341169224639554593189854615633817688409252658022817229313121272200055599913631502920899252748991415884214746667836298917045059627612939169128225586375800120105941434819433815615045352457252795637239173885038829341873359675662381985904380722926779700663272157447364053712413028461010675638121309344472822466211466335481038382281469448869311856810154757147332939096926696001054397134156237340098300405076429372885302428965006544925754960078881990996117201617439319910197628905864861547882674622159347574466520340834704811722798984065798046667553457208079454955141646249354013444228968370594388732260207476933978993932904463838608482415989934804292500290095743505983922195272560302753050595823226266150674332857461235684870404138575433880782528809738074291991308333310652417310406540028013970471088543815550618112688723722865023069641441913921163590077340362931124048010480637805958678962751567744663237281546692798454370243969616584684394525139614568201622644723711399422319211609750754971184707829994237066318234136018204057732336057719984430847111950101015640432812314462338995636436120049447324897407993254351632580382726956366935362166906534097731239060259173870747255955601861898108969351758140210604302550751368526636173058739557372244132579581535436243851889733847928530927677355159260282020622029777274599087733023524415899338521339733799122809692566311660365508407078893610859384298690652570661647511892385115919018729957225611261857715990505262024234985300499596482891528345170025443476311644168008678227762462973843955030094171648497398477989025592336420817152806102269073426290898093129385274504709849906745047448202518392928885150109614983148211728279689769472015556424585259591144809613978859397901140007937239004296313328928881202677540477445100562297784587401521726691310382178268019000231834874306144920797712487262825810450524460214105557994158012361340067590373186044218649241553158950010776002774002610651464413836194182368250783181735179461381123105245938266141309910627283466308281433333261485000905104048066341357373657641074336965406908085642388913416955359648515586230179936396858406550818458143959873395920878021117996975461870798072095168177071667874711242945717474250467640942119719055538680312072585630157505173928423251810971942598230999795282419662353551693403594405317633846193790928849717193806121839872950212187034727153652425136404427748398804287712165244120451114172149602452654159077218826772381939495396732666081818580250951607538119971677203360648547398342429920314576787399042775399389327236129671713821896173137235334770098510143567484967076520735211362574029515652061595482255602732161125387832663383624763346822732447983513345909196013245376313324343154465286240421729139819903977404144190731961255976113341013974386546995929299501839245812452649243001977523290479286148140318332290089452052714577258250773536562183184634865221821973095744347236123762032569712123571699539123486477113010521668521414680653379822642735790998208791155219063052934105626355411225539271784250002357736595403959221135639697637120073464743407563793759084596378909053222958693039176255037386203010359876099766773995718252492466915885901392552407738933583607856687468493651908830415111907192275563220181064535553325369374017709437801654490806260650118654309321644756795774997036714696745708493939258636917026577831874564221407273778398192195231954900425905040705612630440264644649074009520460724144960190507005023036388445333013295761633625374844040664539390601936674146189488157498837912648620298483632799278933985644010143340505138005792339574206691879492236092282554764941916840177139042031654914933785798924990388718315824317308908283879526587249271207983435954484930841039957306202122245977606589417601556383991976437706481118534563672796808806396564918563505703217635411606483543107625321778620965370942672540612634480154165361512540235603081826860592427362433361359531533587597320909989888931608214977466084679936869555533828524745373222883622598590417024651379712756384993923611072339083914176723639197227438842317540433033313792295875284708471865869656003329022877329853821418849084993750673408505278073611520575739441375174632894242550726711037532785335711043872152379246389456549452886170010422081468958751376245918776005667352334211465070997411277488699680465597316105170841644239695434382597637763837078518558162889855259214001197031578440304748501216977497428667733713344464220578392133005521099033264029752522607344002744649774106321401775674321041041817478527903901278018618439595352579962593665975290176292432769681406574411066616608159930941852619441552634470538648826954631775049993393137262331203948980696271996143274342996357618583608450867138415312357396879038731420445666203469180486552148706716312960146450564818354626657900476067788629480668844906433422248609816392581918914291532264306261357301799898607110952967873061865444709761396078789559544738342968146109544204014924885417143642377438466772730378463883233650620518261852388101952791230162269886242701417483098465527470066145806477572803437874302119013938408100906360891181684452852763950062656187475939717836249509378096970590315585314919364080657003381660832151411105848413736359918997096204503752233782342612104717757503050392523453072951442059685469222986623405175953288168437413345854177824240343471602213260137637923214977416084366958080741133676804082131224880495774056836687425558933741658508153282927838803786593682518147558955204382583861638186676136266560835379114279327535383678165408670399434674762076787625229309320156217659322745372533058284781373605049618802398475113098043817205701164530925979182355449452631844864180143190739390354760330640683903065629971539056406339669962191322905128477081902749976306962215828360124704871908873791522685174518113859794943715772925474111558149764158473232975959407354173958248209473405910027586602051546608706853546976838532881639365230205925342324934428325099257340460128526582438634411158633724038347627100173287531949404427244946682840483374253714310631910060834211654776574915539465828816459193891573142091413537807065007527669044785660661013631154176673972654737296374886613491828036091752771659348694490406353794087718532128397689790269138950003314927666991817767511668314499196429313405326572677167689113311698167820225947056929698428486931933260620641589110745861349804402410718485559206085087905733752236559988332898632167113625053470167724644268948409493215835636451280522187147399967768473592451743686720310954885870214532382222149664843577665587564207076223927814803993873748573372419708992253906246633607017975610148552942113731640936119763453336974502693335758076736798138499524140379010536507860102039565575989109355292197174608581226549811030813640709624264740623237395140937857253422819080968432911378263784644059372093210639469203140011776582394112859422302960437425296236421912919316569015506638389462639420413290896573403158265253801075584331621694904440676757846519966281702111293219154393009469188172268716595539253838808265119309470340233066796672963457283886035855359529858041562225704445116944143761971424817614871136906733282729758802884033012797359091643021622010191696073079146594189672045942593938856656153762317364799456852074878833947061561247983965876237265024236135823041464733074736298594325980352810664282789109389253008631645550267121496737566086596143342457682233784442947583124708200839424651818927666877470939892819430647937436724167469685055211027585894503039433011404369806932266484299523201983364320375560289009829042626791697164606666749754417947964477043315183581647369799456759036141156952446643714824936333928199125132821737841889456976378459954660630418145213610609024231522178808492491429839054106416455445672452905415179987235649311412452876437269350213140746061994377201936685775977455699090444644651984570914435916525833440542093096484018466700351838823970944971037196048435225503405230728519202892803365099109004465863717328587312565246095791222459148404803393325869804670866200694336857995108523123184327648796467429359161082943141266625186321441867415453153642941705818725214953497751801024527711680506391801396981091504968839603376585795880655731546710315323196723039752709262481416688499033281543174110918754675022001287059271754514603248934634819666262741594454095003771204760005546574095513307784974067951695323499924843027159055539817583748292001887989485653745347270896235309465554590491044042820043437025553006225269265632131661088870315539466846588947771062138942312495674638870000477623782140870248584435781110648422353949113283359627182391338400629302474848019106327378486071590253221700422256681714242869586136543028165014607807484040494524691546537929584034909109093767389845646154750954690899182619862944271156690057832836644366769176529794958833685754143405579324275948321171881144950835878879589597432061000826028381622698095454039851388008197661645107685155754899342174062981076368016992018559194361048681095157068660924228161495213133500431326804041775430618490160479762899427496597194684164570747401073819955606540915427415025878575456295154298966857519531426796830842077319023079154970440311147405122907615788144980532577008109230436370885804090135434761860941723709424917274464207408599159429983744485785974632978688797629199337200158000738154172872399591074460078156757364873501427054320735623704949398090182082430209433806444665140561490486220825400584988777311855901679881138097281957920994108351853492847334201427263067915263200351081192733951518893877765513454240372545943570474296702979435700958760902550980667357484927305258285081268717897596804021002232981522139463060315996310431623195145684810112858535931612180680701857119207697485237123446686418135601945923162602759352307561633974262714707870477311253096887461550063545103504640337251506095223549056303348104063742261367803701310704134509638224688371640036148640985233143865639217610123373531576743714384556335942761716571066438110678641031923658777053473871262530372674399951480780419959043510217146608487858188821191497505266547294317289137518790918447908695887529015054697005911198025169550883156668086366226096027714174428831975979070992296204839093288003177180091561819463696492673406877427236460444276099819305778648262617946816163461874607003110824952575541491106904225653295814816576348044665082130204471483986797825304171841238246361147198858171823261643005246545423363649145143208939311846937446486026046139806098626667375756360867725793331106176145304605625661710255049578299994360241651616469626137160416503627886281662759801964809165957320842965170560342006293108893710044569309392113399653088354338813605092174056344190023600248179517961464408537225519141590811548580056721245500923605837273950822576820896694606163057796343773783201374838098336022708432415344877878945172303274868785109751083190119698143462850423105765785920102024375231020420588985258186347896537990254834211946379546785144760926560760238203454274982948611559215410172137228684831263836676798814487636625583229616416859117584940459605479001007106920760726174909952973572540798481171377027504618314258987820555256085618181140483324949946700497420973562517511721689822147362680752289547350912870039729696678225553124404007872640134453945916678938908142157979031441316102226903663975774041910710729148547425881424414082956776252710916592285692815347245566450655516014707142650631035847463568564655878737721877514321529140992835480670447626737207059174918004417854878188655070284755509601140047392777769702454240519834594566945711788350074428091053279721167017536243936414570070128387900561937639182867015315517616590772483851830172423773464562850341282846134196195537669086797281264885760094947408503779850544358002726570198005494867560574822383118736026440184726095242496275017699840760016352510043231553951270284428430435820235992038894092829602717032379097358182332735725704029096154498988763034691536744856004566440899058942558415660502150867911949945762211568765266407504477558176369635077095620107905227087710701369294068843076923951597848616476787111459725300087316782941823608721900929330343255508405619711771909845676300769705106884282020551392905972338821625051528990149002863057017916227715565341827594588890165454525705947487727416923655403332633884740544075534290360709910330428503889959007528974730182015986917530014448756289531893621793064554288162640650173504047347252500639804317979905576716156254111304269617101162560195492200565479149227700849696065317451736361363168519791336019389629829736158765173607064644448155088270318683450971761559956077027720785273785989015976736206948891048684267090018872697344485955117568416735491580379609072746761441637075392202144932702209719773066436574763613392395928172207983009126732495496870222621669853369385939487598364066807859126875051778288639330744214668914297041129048387383879350479005041211834889212803717866642696326414048677920861654038359481894136288143454914863451412751391300993166524701693158515740173293657441612379669735216168104837561661768058807944173907378322300190126140724756484958460826675905560844902997161221567483368465997885503214794217000209914699957383647924171562872885096929694139844192317055316288231388827865926823168172606953539307642054227146449494259002815822232596621593111905449017314730438524731888629746041365782638568962700699514337162444275821296923051213735634585160579087117767622555666871460650192470884937978546988994317150790179090127392498254603408277560814076983998809493338232337857435461709402674740794458916877291358132094291281332171543566718903814271002560825968150519704300188754938912332513075606042196808652425878675980804894120026237404301708309862275433849326235007231614646051295105796354398816140025659422075568846410395944082919955238404381643119687155620058929267171394768245187546657564149719534898986146199200178991069672624224277173246126387032827955712637985454306905242501518050386373229357026713151158576060806400453820696271633625778937732859265579163133693709820320512248229974638106361347748692873246862178409221715726712565557877650124540657684420378253131567342653831997571014700047871542467697181396962973949097143204414009586342605867062634473107039551711177881548062556065001156100198861769422155947066512913878767611221856588835652969910555396055295612044400496333049937079085049418781272758938468885190347591930939610997547212519785483983348178623906192796615728403668564361536705635002393832333573588833650254154809531505055560175842183603121681671814522831891448648428312750165821334001194749600032567675241653329909702958467613264992160784483291699394430690203212308406595051380891388927056902853994074953844295763773358264973384535819696917315576653076366069660319803855518642686798977526303450980098356322908321843747145935512903413496474156082965891902485922024183074020034508993951414096787642459452679308051371393090733358905418596448805653874011123058011001725518759595433460998107395677494526972416333675584394405592024915602918048011606063898427905298382507685974275935933940038076449264388369052488057191702541638474785231637476710842351078226293922038797020429587592476244161567619108925907167475338171875138071877764638162450814518233201057936638674959771452982413028808086597490416896431394817272987771817482598052463301663140788570237515211682367226523014688065101037585307709146296006850186981439567519797084685267575204332380021393372116727497020011524294511216776434159486423230414322995943848837123627139276847879823070487313078326377406447458725166010912297334590129908884400984338633334480459626091093529661869736804815875529564682439114449988980901515741210978468580953264978552786361097865485001160786551175334835747776453565239511606593061521419683326988473989992252228054117058456409316552053854140750108758293585016711202508248235767853202815156629301388565067731313703688294397827823987808970199102561611392669185872125141089852406259062873876704306018786871103355672119513732614401022631454964861115905189870553415467312231505638676369541301897602165998020204877874997152805397309378095849947737944507900997838626051388758827461375656225922585090260085174027178313650928653276709081423817532261162916072710385694555937787196464639985933150539401273741481760931229073936529421543862808708860572551297740325443329138339091665797363544004890483571686249786524769722989451764990033195670880740979473792913700329307105272818310939440469287436713118763489094583406517894736591939108363519428467656499667956235845075000906619607319182034296404691259970225479388379636059279597231142726319750219794200722618513938452762456809421377044577018140164972960474054866258232837500184834143485354896738241904291942688873681178729286347282875715823134975692706640382667564895457568579717691012785656149548750380187834097827382370106713045591328051762773847683279079755461951260000951017261006430888991850752085619240907340588116249867959318004728650307658515764067562840767900119699214338099390233043691214284978323768193867773227829144455588349277946552570555966762690629355519590782229620177216076521256689442676944986402754059613988449787655349814385136549231384315234897851936759313840312177612894285498644548847906630754694277604911968962936377374410996656791486838328698691852754803518775337942357683259125793717083965294223350146685313323632479641518364237994800559941674807678158223270133386877781886364875207183959961141426836487514811750511547845636755588493532084825610640288568877652258987281020185994285128052212825333688715776281241269035503842196425388335625002012629170569117754823396674784220376978342771565650778276050009245540149618635786106185945124293605609087311444885266555702562054185161657454428468225149330585069439810817297380249748731838778418809604770373491487354908204457812538785879820229826786990337479481485625861220309900863980471570338699240448660588690012415779068933388667808966531201244778640083936152261341016460996849196921141989448786681314151464639824004177604383727483154297377794044203414269688995082462256143657938354403395848726518881892696307833604259167747081709289362521097760080637794068684728784297423349013312554513975200340269548976347411404467659338459128174758390705947061793575533366270365928238225730757353491891291674713567405864610699046604948881372700315089763193696646210773644852115834660768378106846332167714909250985753840623498664156497307408284019087634169781704058715796041616638995124906679376878926890903359286735786369533146169576228300338806427138395941703551426868585727794884272430129887949145580296791394055613824655920716915792278407865535317805758583648727213960900617583266323100624701087793289177139097165042747885362301386287221101272937905917830690481731131708123462648229196695066130178912510937632103856023263308985046744641439951888992148719531345058318471911895969945755406927557513921321624471160544926559204614327694179930871581890235041434880198617186247958213235495953277677592713389777212711537606908946749646423421600436195383142332037233091879110066157841695589466044983400250139299179306650178629087640188890464138306398093082413307723682125432261706514570164981365864637912321750392109276127514341286958831642413427163532447002997860150045422588974660726502324902037834206033793884218242683594225322514862162987463144836211249653067470634114366231879022668473352549524047876677561828050664062962668805766181392794493428290656265910421968421756220493593739647196221040067644756650398293543838110124067086543754422053557138198293468713101544736007252526572803780446266753287725621334206519454362872549432224124607737373040862559881745263094224993162675661019880388252893313559523165653481907234894783713944496430859871652946383626401927156234599216043783271299416028262471774343094464270956389870665360467463716975973528789450788652922717363128491033055586106271275889731095866845697402663367429935777297267403095060138273159358530568399299942749322529725011528785743007376736270716087628582595111871722075060009335464903575534365492053307911513984050059896842363864572984653447164676394826168160725361274647106827587488562190368378773304314882766676146714961671633907305371786427710507850723706921034668437730119288899440523763475166736548139476869057054383763011799166121175912305664500501432392904060105418000621209231428319651819615713242952861995309888408878594936894977734672476351033348299084914013310477805085643823713104126911176847254172268831409341651145390741745076082456248365588712993870547835749280216977857242919207136190199359245741578132819326524950647132735190733004777146582176029782454945754630155326002455173192975527443408329875287141778728634077838100516791889387344562487246397970395914228639856002444022413606228742671512080405707220140091430183021780577543197081365473784125935931413559305926090499303950975781471750789057939993294379717049526910589708133985978306098038169851401506473394550646549706024999869966410512461104556140143250869780626734031928961004090990580038653167316259787540748719416075732961627902971401736666630435961986627806245990675875072066129610083730107237366966276632099833368454623803752885218542473817670526089031869370235479186590860918049237371537399735027115148944675339766496517023191412597139981166239048671954446444149525482649735298833850581296577551745865305998246073360923873554627280081988057695714806337940080343056853234021347186043391810660779695054430124893140843866293615610539563851165022178714517195687241420116953009086934413053812834896328711058015161279983664126712198389970457174391738663398475100683784652230288005350968638472018712248425755020922976164082560818905670662089006610962426240464385110632547388627596931089325017035580393455957760539878714589318028819551308854560674885460533268763260000939959360900745255809727277397395608898947885775552715778822673418745575802112283906484202398748251416575411962992227877349905548706565140663642532947907669053955136216670856092679857558608321522379790265814882773043037898404421383011880242544791076434317184772853736858565582308151499759061234094097362832108187561133410628146561894201363414829051438774998449854582182312573664747388452878479101358938721644706468199464947025183026891340985314315461121683002453606659982024156819201533384840580079455557441409504709310141262220788764820132582734342406842421142695279310641133649253521269708254796667833339393801604009405898218366665424626299099929855064560605083416355246087235353125683888002573267920003095482840015185673001396228755641805729651198870290094548367095943289249029405213714635375258357850870175869722032079142254915000786562492843606575895740840242574797868499793714073074490750871234514422689960084446254383114067013670678334334426374898379484152910202312618988876775148757446473988970720166758758389943498369217517325737964251721531765818263869884912662366726400332537334810651363154031455869680729266236244299052461067222593483626208621710242141978323098078691499492230837242789799126971632495894225983842412894402171118723472772112741004550751901914473862194434476241961264369251675676114950127158310311726156928479900092059031507692131800306647320012206973208844677762060669215846219796089524875734057991614566340172963406633535614737531256389374019811801083948243732213385490811655330424254946522721403106879029424877622671696235555836395194926913351240491185871208190647980261462162745763127806377576395207102547750847769290825190115784324817334152867747911329573957282799434335975725977969457558953405437882405186985647984992489970377805844090017294141182822446281731017297939876606130949072522352637210306285093465390039106910739271424852849943613011827555447720025532176168493076731937713573342798793935843860225286557529661363515637910413386986627517932904353664430964643096603641616373651084619634802338875148214134168208799831737404301523852209868536147251742388235105138191138089319421895025415102969458735328540350324825114104719150587313959228069043304073953693793591806856115212857305521636282115567847929681625499440367721228585008910682360146042462709792286945402929538263719259993406451871458431435719532568372261284201939238905567855295541786040212739073224922401521102490279855261990654735965505844530835935056897288606993596554915955560492478277350455011962899813854124931483268072942767809164496463596200075531011770112679761356007287210330435882136254922211483803816813715771948311355827167557393859983825915862174402104839749919911856083991376861413810706695634029948911123952501614354312583999221112378894149078397900918244739688558689427601535892551122995640360621743097334182248455387153031904535496759461689533892159576267577324652816241166817562890665910355085923854988976311252002036510171049780226279710256043448912421020169427280554954106830178131217592693638790599168382084998200756571580176543920852340732598356756523300081844839354752913967705591968875737492059801213695184093321280034493265903290779746785492029445967974344198010882404267886850874417839995977099537124181318178080184459288657753770211188363975460101549077217623308136960287299813698421418113816598315764443729178936082501868003456688785264699051892586913919072295257159402850442117819161495880247579026034579281797718942173650533838699677565629969711249163256280776928788318837887995113142079613905401739016945131335541434985444602262981807725948305167995205274781745047611261238613299826345793908769618853456901036921602811647856809290194361944547265213192708931472821158961768587408419524209401460613153915271169118448244001388201784393826766761308401252169036141871093375495618665561767639714236648897128021142375739882579096009911214297315364763491554030113258854613353850951182709401007054106661935437970771812067362025287580571546680387760566892633182691782944152928205646488935429938584164173556761141865298413403932814298730865463236678030214574689540202991534756266952943317082588072507648420067536609199206537555204894993275986964129885478554923078161389707372014759071371937091162080887642929003766449021597449104957476913266610896203356848421305828835235162704834871029887354516820788761994792691398114268903336919253197206400357411492248278002494524388755959607224348708820384814454224087027997444663368258674885216442556379852331072686136127693917425249154268194620653814971917497095913918447917630544045503855035911691303741088091421682356749206379005645246021125751076430986839972836370311359066081535522146802036530561798060531138485727271854871697469487326396932308092422156622489021764071552546515781655932241231289290209209199470110136479425437561339574203755408474939398865431424843353000256068941762154369105178787316015104689214151708990922460585100193402737189684704179488603048074943463349649093348955184396249708162283295792443283611490582703052458718533764449516111237894164112354934123612770281602429078793309823728496946792928119736604240662602284110957907997989233145459859420382193293146176157092899850425475878276151724156497547447857466097453952077619776037716902252687596015073689386141297293558913996912062995474196059673718795732033541027024375335535423775196365719008648557651198103896365279550137996201303108368351466316655385174431991073259969499765228197348546198646344414977581005733302111523059069290178284692776256216316254926779475638562660659065924335147781166495999986896205282424914797747775764842889741159632815327392042344540873226299584165997933875353482813513307351358725124272418586736624478125230213780747211295289947279314181910237604708980598307375934387473158880808764262595330989187326476561333982790046999650870104615804483899059336188540780980895928296885822678188056173125428559603243705444284879876762974921474339774365905347950130956418443236228250867220422495705226483919897865173469676890840641528102558457393926556321626394077141762710262352015704414684392167432632498177335477747868241327055008721125421963829394151788778634854540737070505310775914990430507836184369567790022737241312485178254221225592245871144342301706205345493507108894423347783159653596080218169090037699921836134744466715416666446287170959234226660105421737693398208352444647381278766938468780447928219264279621368239076918298933940286652186893255071406337727399969873435164345514066069290978234864411251457691840012792287213973069388995792440025370272868148289280509379135347434453486034500443141648728474902491437694500658137134375056803237532627137659830655516025329818327295762649459501550376672829381084687426737501618517128850141885901363667257116795583736588561212810107415272554650734543601194970467344557587229200919604794540058070041549601374905079927226883563204507156722606798913237220994306938568746814434549405779757438224292986078887083739502601625918405512124695554929805561953208169437207389745345197826927798330729679804119064622506208421063561356712753070807124569196738707129544346693256745502488319188445315729377730228053647268569321974909333539339153622740427219820200770548418998759142280754143515627343518922510962488490751802741055213839330649031656182452661922806767989093451499407091319881467494515749020856522310387162042429429206417339323323764317957642614795027347774250450759857395218479393639746340544548079213476365695072017956109037309022426406149228592203427640304537180923099458552356098511470087585962143294903698636524050624596320909089110618254781226706954342613142086445235282673751557976504599937699760903104675760017751340812005570811298106142273792881885624623744168709819154241150479566681048030240289147881830764153563522389451369845006275147786366792828724117373923183407034976757428392335453844064803768360257741724781282227851044973575539975067828648195213773296147916284347569833192766197063761300864640969456978080636710145981800267135994862071860279338258416587130461165721291882880296734868716140907866955284636642802868410095613245533488680631106099304104730698711824879754735874156177181788506916127695307987731532949187880859405441892542586728746660575908234165186907989185636513004000382518035176156327900792892736814643121711975091166347386578066741990084378158794790128898649265406764910181395469567630144884407005206176051592891452001792232634911525986910922691710941146733232351135067721087090186507615458428427786141766920791367800102676707008934438112208139167364977781965205236656761983621848053860992849497861485315019329202232675516539546199417222826880064174646700667701141569313992000914846064454593561187317380709334465112971068179615188436092541024622388823411654382387636541278400674577282758560470183608438862954673388078786044319915992664623480741113683589042334237403016225276851152533535683356398938582274914866537969561475315815532921660371327913690702006754190938990174024179032470542226371301455081220127243395589125895124371760523656304985480223414544666923469416236525660303866114809183474352958033400933876059204859334410319731117315523581699558637116533328744875746987711995651013210553990727651229499566500465826753382576175423416569191645785518521326083256308481357545050091102135051128459912947005683427618245340560713919870875988116168449974473994808601928816713569233808292086249369739411098740417754656668658249518798683274429004383852360450379993343758227847599337896598123026456025502994835033791748064040808730323188624141025235578524440278004267656287204211834974914285726580714060499861878732300912546581408850679330683900334440941740760320097864838891859668433807314871720694350273700132990972862403968865193737290088464460078922445878146407258691124153792199108510712703564982815398789558859733914116387798056707544376388343818126897537392281308749748288432912079327262075843764875438500033599752324571946012482025873689292457981501309327779541919270577388902113356911981569535333296351261906517556495076900145390134168907264662621862766425995862153244937119760004002775775860105128509907227572313286655723777568021379153582998028772018832191063281775684302418357554984325991097115594846264427486376573962386376137844453413710917549571303973714369477632039811573681058305013227568250173317494812216829931542670513082070355524255309975801460157387254365067348194238153771366032256126448434188151898552489040329007625200209607976913691828039322406716680754707041376481119130068240167817996271627789201192204602643569154965880302278809276938546415997113883960638815212221483999571167153437216244596738184407312541414980994940495460692698266498024810380342137798388914167339624604657141514248518093211311926464876347294461000506271593175195635242888254270446240650857079817535989735726735403483104323031346800469522537779029383103216884628942618596436663048430456872664404259047170188261276086632030090932899901866330511778171265499746850117718693842115127755559532177491792001426653688709842281471177898374584893057905921056938831438079761967408246384875622568862229041046631268325783234266713160960279217351367591040640356980245042345246240194411033648447887269632327544057045362563725168626263056653815118677246073592485031051677112855728146016516450106959550003796179287151335480277025868499651891157035992240100851114565483621119635590759028879652162147981823281283343390544984423693724262808355810827676902801912089153324747009865279248763864164844135224626449371378863174598263109539362281815692684753000939518800314884835913320015568678214276746893856115496695553812561788061086168483504372627986989357555079356537868188489701823926851135646144961261994221953763946513875049657021522664473810729214751604701961853998897259532865002774014161302474159573120998369884880728046251426071735894108666280049320201683339166105968861846582815753386156137618268916652209258223167738511984884689207629063509547952889463435588953036097542756040734026838402808595651458540089141904981974654874677305477299596806947198563641746477398545283520141039830969129993378203128010418670370079989083053950413363117070587329150370409002147975178901856850448296107183342483831778350845719685323921736714151636865349570350643108435466526061612620448818339743068862960536185302886200192430207540507328637800210962789583159297382494325278460354914732928599089098059343209713692487480875831559352903899562535802250965307482019840766703336947770651169450378218521259892837625298365653880216416929693105112586736855753598107098760611130846124901070049763718932441426917445918103835592527715939986274957756729956619978323939227868199706472111199915088224291760480270518925829773206001928545502529137544173921470958994459177100596709159226529023300783818166831708348787516406174026616136237069971798557232717891555138844421558882799099244442391375367432759524304601457425243737384055372834510623091859332904391104941937093261188845684478092317276406366745848259497134521998465157228297074103847590323892749762935467468765755451099320625017497441651631354209806191856234712103273155166195258997235372884814259231654549206812641686533405980452685316895261007650687299664541162855177882624066396066487550530646286567291999371842213364746671597424867065792118399070032237948005153433554301685064622551338659637847638149283464876519737767880126119706244745986280921369691447303339326847930278792471099150488533268301961695931251830310460867474300175652417742864309243488294977118725086551622475046956458491870124757949917875814854793861480307696404480909282720443535210586410530401457048684273401218693399878918935238593986080986540723280102879796017147761322752337937484730138347823665044729389748344528450234265407279857748163226913155359037743747709629853116301788880726164965360906530146297655912408924617435537951691643163026116160018052457558357511141030883621196037200156042764260091450205319569493439631946490325442136972182648761399577127555422603409952830837968776520463825577682942030021545447728930129531088331550814427091862324079621638153973676676358685445617638365514474841149583700081412427142778801625633806548922466808150795034092340817774543711917188649762344196971157640482475124855750399797091597193447592837655061390235572343721963017602147707581783034134901281732067920425245788094135949890837216003695120050018465844361293987655009478985850254181220831787334461636545651040980519533128683219402676125842156761041756341436669677562833108338854444875429698756558529554946738356601259171233517442148369925766279953130786125921229645329138374345565205764337462706620447234724668798886583819723008830311621594849682530491344958549294336699768352177936434864011177687707471660285719127255248426148695348672238422147947923630539275882162979196012040608129912738982775403108277253353619415003315250454516245624300016599186266363931266344641499989153518878007569545137004868298163082654867655153844623885867018898936487808431325088779045323671162483793846474776389447582568420858096931264541183555331459093713117276640584709344547693698468888023319754369875468980046295451435689120403247900612745931893737329971307086157693895314237318968192163255173382196159839020271530305600158917847584325454449735441637491197973234315817298483483239896910599207929065730903037649080535527038639690435438476282193881975886917927398502461722049412508875890852328832799339580866405725336809335427434592315893457846069081337237634985186839795811569069682400836882619771553072006453602146632137964259051411378259226841278853208779986610203668434373195322855166238309917723492525562243729522404599869954496949207723560715078493601911362239670324104340582312541878718715344804419672994092086239856571902809616895635556585139929086957031158121158995580020189340901569369616284047616652606712570762415989810029585547569923256652509640413673634442524452783741912076770937134822679276715623127627775337175485839940914940010683732598495732653806241897799342810862555978018847428527382200915715337523167705441277434385917901672146569741871081941149422902384406553447359518260733578080381691916440820359690284779710533454766769209674233709567702293268453458733997450069537829261855218125226690212546448032040435742003343833322531623711633419382716295573727533117330773837130093396213078845649920368522298672642417003274449964700893591519487061603382102537935641803842125776845537478516058803211699790865895958829955439911315115821073528450153466876481935937083549314044115633538086405482191847400278166808283724921694397074823929850731215884054687245531878500385546940196810962951233848230736100997970239989470973825325570803055223920317900344134577423353043200754738064353888095374445258898360696401854743516592681796889710661174518582478843422463897200129564127874338955225083249157515991780825294448770454120443981369293726304141596498596955183704568408057728524530517290454256343673934102693530317285492628451430383637677717457375978978298269356099170439079945874961487561212847935237155772888141809930200397907137999334291744282940734680337655531768097915077324290449392302033174785726955172369817644921799210422571135383247015031713239276171606016061722449100531078441346156727872586515061427493374653225046074676742418939046119248182833566243881820282740552339974316677083788695589499340717980097774713456436251852126387239007995769837436984055442764648220151983915445659455202551387452583114882890881095027023393738949599112012040441012682721105413038989600628883388564349379861445111608629872875098983849035754294528661327002894139390484182594791411695505594019018362652707935248292289519546953228564853556633493858298327324699713775499216856006558027536039159414774969289310276286169092838602379370754275234682043498373581395724579052879094949108329516086313359438624343410568688565386627577799098941559129020563176423194570077345967995194809842855725100646552126636726815408317940860458269198953732545140050134093698930562548030351536627121635499436484885209270376591587492899987927972748194025231226258427251089169994662808827274739767406212003263580189377109478097486577195347879388975154435139631830169473911498023738255486479290971914063780503283095856560614320177283861264386845809891972501723357213375313737195375293632067467688539687309894709376289938147312564569285938149798094503520084630479715439432064551671923494642405336998923910941569875319097493892564625282084819825639862301753595319473535648470331852350294480781624649025233649814302070999779965116548443686093465142521304528135087637503867769634004529940297591072288603593988725971981392418108050476074300333794533004604377202346911853792579701438863349566404759994555246784855083019905982767600528178771390373230766856307225364470723044317484114510197382052725579005630787755215397407428013811017548163895989811763904373924564567065048086445724248219395232004162443789726501776695609695228692727937750995609130241123183005551726431134559313246363668872545941735035980737325297825383005880683619945967991248447662624418870952543118979561787851702114387561236584089247456870532837081858083794088206154075951335300051446740948179323505399011156536912249490764743015816416492093255828331738641678494277383434988844450687763785230356374496610891237262997188973554443596676704164505771064018948231817102858630899996042145115348900601564811626245568477458645628000227430931566653753186238493237260367789299580651400815076427190843484475704464680116377762172639783666432663487999026066063762138769170947535335100985901482235306385468165932344101523411096731678666487005195352872275942737972583594802808534359965507828546991479192487835069017018275495482918388103251365251252971395275196985478989099873331138168187796902953432969066725284457602980450124863577275515471600413573348897065272860660926031450790921455101841849981498831548696819669515161208430238421011354549817133877277290027658559066247963096067490066695785323282021384411022174080622970232354598165070249575567957154758333798303644255881812094060666679126920130460036838288873003387565895083543997968672254637246872132401614208332041029124678603183837074893924777878653682777772887038267044254772704938535404489936036179962646835586147247497082765469054430904430583867172677477070998586246368760543814878892383649442642967266173706715043904937843175887116821108521315444696336403279496658441047782801456238655532163840292869609164748103835034040922493611173966842654780326711880723917750129305962042896702866675544813633562532875665392818672761707773795333327831863282440577932016335279078542478750638254119975971634983093311403196859940724133658401531238857843258493401379563391721553080696419445882586271816721745616085132534639350841262370755188385843228439398636244049322013397620235253970310319088163358038129995890278760827445282632919838956080021884335743089972522983003433760651741319782522553637099234354916418252630535817159339299290073819173440511758905361846145243894385754182559806941788769905555735978986314705289933566865654404162759028648375080201416886421993911577101759246717364625956758667473894427023588084887259345254571986368655194139434825352614600470371927452894353267413822805228975951089515026863791313155504245444399503931565257369468624091039740547417431256674578719785056506279381092525240358160845226219786968261030647976079136795428392699620421139527668855463698920537305406289717372427501741118612673934577264399710389997691084010304567181719387701619068519016195808668349051352411401420956712455687754830601888419917355115166576356553896567174719034554732385298088677526086628351241515638734854345803963722665680151246180716446326710459559152501305542468722906534508915411327571029741252059836828045865700838946245318041079755478965858551406030224261489331611705991018012503964408474293985506579975151488771064962235325423424607178442469541441040368032567904917120597703287122426503868555121778351568771595074068101382684544593811532843540378521400718959753916869599096231058919577269112784700056464764829359606337715132544807264387430467579155795796509038618998627640838132791410098390228010605555991867296927307640123857696368644505764392724843738961180148972636296321599738381991479536593036435848178086940538528959451410629861424980374886882128531835518395676700592490779553379879668872757371542238543320366446944751443746040623669547106940393804335971496205929204433044545855327965790854073995042386453662390616780852490479403462209877775479030280033818955717492422288284634988459519869900825026479401181393314217196584824617290764607136255464568926309904684250637429834904215036991594744404987811506503523053561548970671322248192911960369400973623696324185194714545472208408623796968607414154811551434910072253365254286057335989955602022137335144124203613080758160824111043796774442436264263628038506131492783127059856263428911229639769923316639436687356327653243535863968055726671643737910850072306721251693069535916323275363026642597836062099048529522717954038380114555545098895903401271624394719694758477307391841469235744495658089723053554333670300915843544839209479372399198714263722157100320720030334843525219783763463235473051204133695907006148782751695098790916567693563230703718218105584968358592445544053423251764384568631727135617967018885310094433477516837605972096529597633050654191594443364958866783719582349587038665633571896297858096396392286209592842191881252379365050143554836218488070274019092108461056615989642358483286952137863294740595955839935766163416077272306338761586198124906711168749435365030098837527575533097545278172705380226504388602831881464992545035862029317655625158006237622103282491386099323235370087621838460653513045137232687541566439667162379930965504207379317418251715297222678550032018886583875583964830733151927569904102788480329043230841830497524976169954355569508410007628548543545236083987164453254646071573168864845302612215279009779945056416842321888561710171854672360271466471799936396221284499291749109114282280731504206689556134721244353929384701947981618840766354753029350814566466281035537021688199901356351904327242894102246046848929942098736627563197488925785248334655255240323405868074798039405028058908544062801696063303795252507587541746275924057082424354985961986020122174419861781309715340780677026939916460785288338784712974405596195787130444876106682259130591004085488846909691315290256722312558863814969807059574038367359250048411239985933886233888218759254414439743002354182043006577696894521900615818161921371282138203317431162933355633801023060971520710022900423704830010790614396292447882791708481902736915092985036764360398218783015780442384314328903115442067108151843996610220080798288673500457340288394728089828589336304441230456373852626866195141961412103661930856783369662539148259532931342198145535197008468841929678614978832316873252868199547469865677471052894255587196818639247661031104453500053698738433387530848974691671802542921776819978797949493662470567156022818354102073140509048269477430952842763327423726903615860723176010670132513640153786285045725389740979514873469080084946663194963989392622447277875933489022882969684133006480806929010195060515363625442632984157471559923808489710948780007554484902358465412259995302271424572137980395564468942248219659708505961675291365529715240543121807154966043317782232187452256801885639272884630960600496099564522545054251164980241561138053209535265137493872315423218754427307788026926165754978602820895121798621775150549242836436635662852044901701187519724065191753570760877966367137733381522760770911904519977879302879845446906466938556209634433621089672763344723088804798051432926627242811008907039311290452248547104191265314812779703120249927031509553665704975700386463593026838299980617568261988614394872008254489444469892836815625544338194587784523934464903699018222701078890664838291011743426116435682517363072645460295955148072179280198640030767527051875345717258026465246930233833017407090291918645087771361319675684470016051895627636097100614305179212103401555184046005030399021685986827513863819339564236884319833880192768619813993853118898910589360457992104159596479176816683489105835573598382315126820147457974374110775205129851955646223848721819755542272180104394531165460439631962595962711033225931574932304702380722170416921818539628019814572281091109734116072891817169980124012325458791478824754679549908051309697042351907750138331682980188272378771920422019577652268002569463674271437736565026179958592364642173645062501346559122144164807802143276991485177063921759031898518703137359786759664843927280082349964597195893813828524983867659080910181893369134427084424557533513012018322686599402855212781000889036431732710448599682690286792952580263154878788368210870296516395696583012724481604208548158579888623737020703769682021099890697358722010724771785048797332139744011991056014387737197873888258868061100662367179359960257046891306320028894712004860566937241923482060977244275777035363859085379822758011397027814036128431663817683810544306034455009332326877812513879995128647442976641849688049402778979592349279810733677159762840032325625096220997988119473222388789869301218509140677997750941017941661625260647826748813214620074140019552039845429737327902737743956459374398861203197387413725299266157144620933347230096217244826489126585991291903569184328293041247213845468982026029961915786469649639015175043092724025052714832015884850740915661053252774449848234920563817188380719921879212251522876489552417956130331653964347092186717956140666498308515002225429002335283271629032818421054246631150848008423016880442430087523353439124465353958517240380165394270095629422029289700122365474583380971811503011119522552084433534163189854067772658128297535442769435087133995651362923805254034151702706949479937917535046618194195126083309736769433899839583932107373280151112809648228076309440345660030423933560119201714983498508836532232721103521769733383781578851429095912684766484202740876545066398058901377783726306021971440805660287166407587916690472705236163588521013448196039743907787043811123252677798534844948433167186614521505386720057944856713408773096020791006657884478593307963443177594470615080327531939549217625479527237531573033486834117610822652846147073177932586089893333525413922213757775828806075364890677926125813396698056308404660550381630986787736250438690499190964536544780561218201135621970461729669619784797113021551176442253388345492075496811899944453798099174640064491738566277615222058401026443151550314536426101859112770845053864920560974395045865546756970266870384560234796460347759973720711792770269150039514860079454613001768629854463057916686089809317936145011109930988938483681191238116333309344724784705813925837009725857315151714214731856773948677543948098796753596816855981434909900930102426251666146924933121731073549348554603642157696144042725953622359262627116357612277302435451475213280544448530720014800070823318653346319389006061247232794700789707242376124022629208544822665222247696533252922765643244460106379174242955462645496074648655059284253188388153254963584823510171353454919948958211810399572246900678024851958225657439874503967560327599888969900973117122280678907548630047847772788248095925838153083410940655196518556605548009149127817149070402252235832376333138002140011718387762804854950694729434618027212116822430905423749485322459318690844059879975052512754714841650047549783205677990244920991401873424093236135775718395297331130302946713985082530574282816567417524284971069680587391807350148229031036116212786287074120087742420154715495299342657116046328580738353242722680785261965488521496988580876019618132085830963684489461502868697075686455293642614819775508829738155867916412380497752506793057903827231122201874942814427264913865829918581888523956883735917449009380902549496645046740194486248504426225389947357676536092207864278786040578084437864077373953672220300284831700821916458824513438904631818265116732611013594871146704593108695104414719644902165682211312958663879289761958145861934035867330223254498469425255010948634381819589547806797990722504845947931141291205592519867397945960216417928487634545367864117924249192176102937706558775180672317177889465905676517969350147662662427298854332678852078169150027027007684797501318647128328380645757970777984895079701661276904831644531320553329513944756926135431849692487056700728501558508991130607498904654082019260198480542387875876714193749718175956552310588284691878565454748003635660870209327273356154152377701792473618923000028988876572227428718818216306188648596391716587907311378023635350215908314853063164543073467584189638758765704082302278957287012427057719991231740302233465888472535193412756179196569208835990197433438555829684804191404150526971389676234838166317758059706807651596312323656795822795316917879102198236389278542176834662820198134095614711192893138253410217862046120438561421837160229592650321925400402193537740311770114851639747416949878232305527587725567029021706730572971305573548837846035863311133885425459524555950756360264773539786761278000671444298568190936227246984500715376881819770355054662324897118050079805079115711959874537045921841522140957338566197923150188935005245854280844343007705206035303801175448202403720103089479067738770976225875190615612054546879494369475808775702033715671777566725055104492663945651633962647508581127835177578003383391751997801539020007303367700803597534421635423112774492581379425189241593015407808622608724757401998383891209168453374982740783633282143567346719318336314438489324115010758597066008975864397960681776786369494321960469626485844783923723819600239142146897519896568060879214958834984673927224564517061615381123532967857823669516699826856478600649598050799942188534840246479001700383215044850585065140883836277990381367489913814610862744427098130843795653947676497418672712976239252359945927109911749923272562531521414862482611976350220343068395010248607741575824846016194382740926973267940197160680536920773252610558176314522264284041571361404291968965999032790453043483477130852694788547474308118452067366039964429573718376224831235219562224235147632006170443515718500299811295944712908949670715628803673869453875169495048255131056821259049376514327408429201997016164419543733864213066976952762521681248695955452513906052326310382585738194611544719103289685799885271836976507032094305554899641077151024743195992445796409530496877094793889037312765377559018437400027848188398176403370387794278691803155785371995943532129725522941400761921454088127737302263072037210272351899844903766446337300597955511067671588548612396110713387081840788529968622074718484397756350182961896691568572364890456634346992493880206918149088294581401591737239560550957790787348927432720653802669602183729566030041571474958979056934607721982606543871819014491843857177263303659179931943227466141671882429130710494047427444742315203305325916644632432777799315912537932990644788153658263466326940617741110491224022362862108413974737313891484749304601938188627607142266735016111092805668767665917682708543355634238715497282430232040078224624459290325615940532824821517773240367000998995119477656943563528493474250490926824576185003304801547832909200681164468136574156191647438593119252003376521307432595069372285523957740771722925891243965674100354800805419074495710771938581701838083554584902846789489256675123018874521447946771688334694413720288092331065044962410407586773504822667983897657656100266566140068902603124337427254763337438507175879498002437255851056664120582601883367267375799069505910135861858517455028246558468687875762181405777468130682693040332662832996291186906417773181665808887198772530753636396586958122081590789558559639092399553238319877370184959242893036758388472645846184972380293160437527143610226753915241316767208604661719074454827376372369364957840991964814131739093131914462341769991152300445441457198891646729560872195753315609936984459687416404046551975304648396487688952604940731359978375261157837979095442286239282678421056954595155324246954341298468955844593690035309792904503568075676870953120566313203475944533552021105299305260008717629670856980349946609614334107551308702083115633056112424990331294459155143268322640697827781239839097203634988656470022020938196814545967841190165502866906875526311466393447460935179565262468096727130748075856677650046736308970039417976202282922700681575917777313134278943534918636017965075527120672907290472488431037907070031061543289743450406060114566049181068177276242118226014507226419597926046451001210372299554993210072971041591053360206722651480201651658071327778965990737427402842846384249961570687979013186918724270280481208958453535772148080475236104600198381026207005739545663780876228355451445178671161379690746372704830157846553485822989397978951656283824859629986460322778390155735277126123818964726011673832102027161165669426906592654870396185893631476467221665855155251858423515935720313889060180700246149049484465574873014683185781217788165266555678464641348316120638239111429034954374949597504956704380078174603455596827360556707193484777519424583827638700082244312885178138502817845919315882158781126280047838515006742204252220400557929058740325392963514145739238929567680063055090219551624680314519368603997549249570403735133223342112459355142073905252883575389675350084894864964301569400579635734684152346057138887285524410885025103810650893297376624627531316802228887961155271503240668193826798703389589640475280150454221238311593369077659976876422536538051747820499873078748241491233072412002749064749361081265497891823414851783013244826590236989533069843427596609080315027980738441398878126045265923459606118092915498932728504465581603879392860938504400533513818766380141722112131287314693818509967904693948014205003582184083309677786909758579932552142739645922508324842905752839550396103286892271360396181037679199504212974080754532234723919973188850244847423746844990251740495929048251503682679502037276591504877014540117806258124914181390250913711164328969338117181778373086182357305962315050876516213700488079277169581720410585638605551662503089485230720602958371128719063837527626360867061044427002873582257478756134818663801249515339585478490083024798619791341230038740549866653474468702469662484121145204150091259230422281051693232438949887763252337987602318046050498120949527614954945624617798038701305270620208968294622034353087611376885514488398879817106047917580485120692939774568361480024986815947314145695990706409840959429599081336788570595981314501089605393757080742934662582700168117237819131596879414866125668846153399269933613193293246869363749551284973581949392964228885058683145011014083192941529528991812096271360001157014706774374146592436673224537476029232513161670820300767450577174680378249890868424283473928266197464521371729689593169818704897240100984034190633027396866785343141920570889654353862246718988937077118841078973470392568874296190296012106675137922671757231355635338104359433357297283745853402823379889430424529717135603076908175505610676648284158276074987006331202383430537431809598202943795428321924377547641045723886817579761661282139806012029888862992841733355802500642739790703830949412007675449071327886135443689139266914257230762798755806276752328127503501124564017794857567221049318208345581575471937072000490943453453328123354688424023981725063023285352431725421632875230386704063238692706873933699165335700055832547285750257354794958621303315701689133824161399371203827363000515872172458641420344324198438992224850220308803790417308694080066427087719672401258038180170655694631589902062778051819002020627149447171026928420135519566554922382533008686062287844034201592805475900758222924231051177086381063075765237662950794425154540594218902524613599556165100689466591096675032382417972499893117483083795010440541688981765433764210062295901637524138596785377763986121505356036616498361547834532002783034124288224292683584011924881926901493470063961357230574513146587109858036236733974388268943890050438650083750514054376591420385601175226222342354989763518144211687120814740717310431861989297235909279029042266581205047440073468012654225743516702481105238152614414219831883968608057468251159104640629812342190883216803211960756387106137262000321254882373774307905120413675636964589846857773615709443197619738587437355766402587834525487717468296989518744380605183302699292493163889282408166401727043187515315661900739505978684002714922439010167049272533492022427230053568694599555623803019053739250534180384031693755316476202391878907844803501076669279809683743547477650411299058195328192746656334140376800878956082238484864881464683698571152226976779323844275706314569547532761924690231657969570308099375316020351522491912098311579140844122092997149710824559622857435864501977890874494370626880374985419121144889468030149868025129442024564698603197420437715389790143631687536615683814097368002888746501433276476916321345164506944710251651944460748090596935021663507457433655399737398794487396169904866449119972188691994320652908450906260355380301033122466449437161517194909893110047584452086402146633531692070204874579799215606743178072302350499114899014728732551647056519384608957978828814446931569262665064874166605045197977350496553831562133531542105890604646280956501889757415082359537678483812662466962405047034045954954076237518525925283360930490093322496535694886907437890227094766865773136089265757963853447649622138611154692728797668722309649569683488612330935398585233333645156154928621035935496031655295354175375508049220711923975408200033572134410923586084744122965659755365905092914029027127498460361464273151866032441883787138263812580965943334605341188278273712792150520586570807846673564528894092005897889494404386651560526902449356119685478281574087022555756957750485855678161793528011820493996455869259048979030009829235601361945915864149859905690409809865851871635858235811557746440877444104422893417885300983094239364327951910744158128628058630977135041416255333325302262771687949000807220537862563349558024543270349158412142864551438655241724343565471650505377118832766446290071872578864638103132444368974812069063966945200518599782715761205658812232972862981938014529208783261164412212230452459555873617511526598763406966284871336484016009638368957333412352725832287844064600188477476035918440198502223746666294147480688466748720273514351538895499112034059937165418476006305841424466991652894453530476000104440645319363935043066130000144709449839476907549102749570709677979238802142079575425886117357318146513289787241944596798320198774624386974449844142100894770933295134007079187208920225365172745813058200084101424578450049784057648787488130069806026554548581968524611139914857402864224922302002430055317595939895099653578615522098836283040905383378773793973719692436866340136406082142115976514971654643994086906150195766625899386684076488066289546575806400060616439337933655084147484806276388672457913667228662269909065739560679866760660640416704793708577993664383244204362920393577016031624337863793900118022313059739234150118698534175197273916758099979866719056158164722457876858602943693374111343051563256485217485576012264640619164054982253266088599063023706297264609850079790720651489691173901398870667531924657002768230488613331144701646065310480585636267142359652640007417501492192547438481289343508293331614607168365656310162029846865557665905464111176870441985156602454665669295344457739306084221929032261565485695874495161380699782803641124685747874031502937856473299266990706407398370468735097204469688507316484377304432988135909563707992695911771511214774744167595945019214594182686677929577314730914366038985331250338843321351738788754803711191963781961784881946799025075950508399153436805001098171975848154385641328139081743157616717119998249136954247511797525762849391380061773563115136795515935336876536968020340191504319479219322674913723112802341055350583947587570799787393275274250240169433532430159727961621162412476030366197783600945433744522942443034594406310938357704218259336812066328449158130977597527163802367100347423595299502828542876704804171420562755417323769735607009173426911910890677031975025127886076601989413959917135890794237890212642421198859137908720686343452220193287581567825933940266113225075098086288216276029983634350770038680705110810684749767999035871791267029823664097410486717979242418223262094571818641543014028923402931466740875951498406458107479653659511484764617761685195364229412912269075769577083006517384619282594386220061835335005397693559044148917886960649271635320667634628774474817614679391645112663092129970936034620371701306308542328603858219647721924345838427636337518584508789113614602380684210258460735846296664753520721738545720785595340405236111756037692251434823796909039660473046328319409582314132572348088411028720151620132191494758033447879473014512097919503653595524475335403708591035489168697344168972614341969826264268613912130833768388091101669591569801214146625023873761944098563654538507249925983108034885033699210558347261392708346650206881442034389932735572497423888462051742871814216093437291123086277962225695839550686571639493136554158337759837831875952996762507932658040002503783969853940192082178259960176388121374093576246560947897430032562992506809940397508087868440670398207315776019450233178174309753655932492363448877120498321737039620447435375263827569860589325747863162841773801791877571713116517364045331350631975269587082068508794927697685032085702718751470554501736735175985128726825089943107456007912892882904986947266426710474025834898610909828541552856024950670503461381302959280088253292010748409170847636775077725919213347508956887029745478542897823515363441283618217749295560858686376969553715645507051075437235112428823236982347811888985362726402545724876170448105177528156944869571414220856339432051034548471463573851601503498250789272640546829158234945286388805956101600460448093428879697163072612115060064816603004271871182616675829686875269613868422286459592607236500437148909151605797917832651858706928853626482785232846255640711925762587429307682500803164315618886840733002677406303338425264969406539841059835565052160477336425792230947285593792093437267815709634176575159198885105127270942709300368821055657484612057822679379963643003324778427093110366150061462707950338293016953638853630164883528432278052009795403711836795900886707108485479687169383373558524749523841100453178250814430117331161408323882193708117933218173419994135805276279131846400755487445876142968725444140369569398444886250856268663787304755730835112653532035253961304492056251348481022570002600879188036991011087615782685108408679476143268055406266803150739816361524806097385488828078508176419975338541881067675978754184644091816043499369631173212194587351716674384291825396983022549496368961239830354662613627283399496341611027837612598766799771676323370798224897776791422412622075915576125927309275920001889396222051315578829751837030961012280701518930620901451736047757447880334198688255886394803470021707108682689856420725443523971598011367926384599722252416108396940273106066139162320182208643816318817236618867118938283425256606807968154216212361173454178379199838714045756550361236565033727899216957562443974037742576636129615688940796125176099204952355955353517871865827298357753923964418152279323259793828630199206385733080017971546996671076491120017607178677559322611908810932741367533947070055998499410546744957817070697495719211158958089508160579113727262763032722875673184151756404839035982574080246230262723171992693786815271162029713803298117793049893431001650888652705153514158069281522571060039191246659764617696107936073830402719425268798653164578025086998952606646262317660843997036838113247971926340060896279168491167508472766210341835356818627679901608230899791686754232819871287964226243883758019312381032714228428692278673132587726378505807153240824017540743774623735940871255655414681760463240432192838010154704194692443637939719936334297701683963877148210183213322635970094667523290212591547492649671102416953224377281592302287986443528738996542852380738072391106424985125734653376553606062151575551735234207723910408233539160342689159102751784480382126592656492752494635397857990936299503709130297959310870253631839911700638864462633798486078007362504850799401111490932794607151044510923300602380703192704146016162516610343373493706848613073639256870363872237052439495571006489424057334248287797600135302837337070404176171206104306609280634767935501912575150535613366908437569353466558284511664216993079273788259075186252369899176886854535185613831415499940760492582869855127028296401098778684977740963659554195317782371283025482899369102601599523194667007168668919163140069328386801624052204643808324435089569443920779102796989495107086789080861971611086063546310174707904822674692831353080480636301007500067720083699725744918938680310489672781734688064121648985385477884041483748644885792837297462730529679052534655879852268159993660487214728102202082057213195734957597300889691021671982260369971184677003574124117328167560232158674199345913106480287411673147726203268710419506459656655017555374362642707646783845655260091863180585931399070366922155308921552285488158144572066463150284074333185080563143632072277744751196443878272562916076730876550574483242010390884124984710833727022429324972460531717262376533885211231143676207927354087903337614609204084516343111590290884803769442852668825224442815877404201916367286512858712946748179737051017684094301378472083664604042368933810217831847411678630178291246376866011551494006874641615114544024022692103535450233079568326032888281953130772777481656100181528554044276314702676263677459793063214069808868926759113265086103307292264537746666861526193068516895510057013742565230043459046533683187748429645810412897524677798307395461266777001793800293941130306819326071102525586480512327263569513856395716944489937481949240830291764747476681517612752733983066964132191903294435282910203774296038744146629852802469925054318337466918570450985681047065371407850545197224265860213440053448929615662563375437827273639896619234377820261083018621419348938436417635563981610739804193285272415443149294120537165805577077821874512252389355982069741324595258697944402105343200104309550195504948907357086474869621096150315498434641713404248780295261633859687692182841816697449323637686788426938928790759826486278131809555639041462863786691238943944628977883947940771622607953863215189395981655650125676251944983326728260489227201242937808996030167012559151377184402965328543187552159620731664333145763052717302965274635595705144596817818140970360196131232237865204912942310880251244727505682246903996058738874956389130576260893093472548175627377406246482856413496316766581576532861405309599132698123198472681748217503188717303110961701264650065302434328241665414030647809343187048638736337255401349809553818058898416724285968440090024611256442158220671781885065013608282213879588564687720390206781601371940571707929630743039636803027163489066560627540405599206147773092511786596989205810029870886918777090336903725536459977483040711195594166204337788006991740943652255153409761080761353380632138182407370528427101508187927282849623313942206190213923885193581136923204172119473617685189975994678699133910742447725467751253421004304932877128921337418883865541881403705524807746271974444907562897906686691759950829882051671499090465256106904331585686503029245557653967156017741583040265379131205872954136289256831624312378954519936499583930768417763224711499904174884183768452307926957720704892095195612360974756386186806989118125787978104355931314580041707015523169919713757517356719517823022285831831346665916224292381323010897932045204696481248890232117542533033952525274405173707103227356673356765291105589714582057009813812348824711850161353714136066919167659199052801298183700176617633716448355052978408676042343876337256983878475458013374043060542820747213048094207050239611657274562234779207961931867688469368718898368756170250560964619973987434101297950179360841399373261271235413340526633446377312135932431177976197648672023312584978542338965733279322206836315420750615988675537888266554103138714692122061177813284543023699126912976037961207160814458608011551739274232381264144161314499439883597814784622377470946323963286135445874291357184173648836032769400409848497858754404264719647368066155890105773906489421637306765766957900111878446110430930844407666520011290003629954361376079974280680350235867972451844389259501889998151084151296220577378082973947813710804828294911243726720742685934810485886455413897734037936481333899436480720715328816421027824929662401566388674112347592926557893421780862362357712313497531346535680652589913626085734112635447495948783973125845063366015682175907003377728259254304543049063069885551890816067483751774776806127446476947836505958591931260558277169544667675040843465877160493419695256782381405885617333968700954325196174311814761760128521583059793864633486378809611109394047717408158428076609387139159062308770183940574691902093779483287788036240400679885959767261146646609415967360122582256066702946796478487001951585566553367288608333214753528933979286272571754670566222730634091631735222553444502156424237249010793880970856519187224450177952816972806351745111279600457972817946495192909130229110716252480387406291058622461289589899938277023477403526561345414705314930776519070726273831782225026991624355934499172672450661114661461599334116883902426370980048483421076637542109409542857382988465531020486670583857641668881569222630156305512227935113434844622193755838190866473244666522229489945469922303972867017876036131868135011038633529191245671609498253727920734000962437532228265085044681205666986335400495391921724740980894094555855865458986336561273648548606471501244345732577927961668160892166950010121840523710898384153979766979789725376727283345767786872151400454028256551332673360342278354195719299366465599780103482722076473061897735508361088081735979168036871055193534186708704815766301692937895382026681239927826038908643776685892601577038029679260424266615718149305698374521145500006324013057127190098166729134793508092887833523374844774213483563840413999111350319008977823901216127175439640489045012248316528303596246732548888921707942703649695142067281996245970932208688885229165564932352602715239832162001677120628157249106797930343224215289516958297217234742587826363226000737845127915853760261155575980594713768475536407875255109813327862389196740888863923044659098249855237636838173736941821308137984550130063789869752206569676439701698950630606262258542080405643842923966300092975458433674981769000657367237198271794463383168892817226709264026880198108248136556959710808703089640454314005523409974499149100399268586091406867657433301651668125793783423101242758541934778050864689292618074823751240864382013886724414247218337066083228762733568187071933490958330652345891055961234343877333456538088463604561136429046706341971294926195197829070322612287332934502502006216392138194222039505493805273657939531213294926544801142019148433481410605623452319201039232373241449911438184572023673585052675958970127431299228319333498852756618445220693665995346245707938949456331506841615221987914937181776184634534254226405501453343819878544500705677489703093343169102391042335503813643080989194984961195474287177096772635970021844534680228383710274929162380956510347287840097992268210393973461416190379179400683385659895320943675458264331795619873349176368280798518033722830374452551523166851686738106434363171166552669547349261149217021114236221197542620010422211097136070914184738219754241670807467196550394689337834311636939515398487467697413176043262229121702046618494346097103800922961148703893595138930926475534111582129995414104427790062162574859541763408923675649746439360482999634142587556380503711739068772043142202414788181094939705641022255176486440920048570354784111301777728670119022601290514342469246597531845891539556504761878379863977201217362646825730545641661489761941661139108245262840556498409739585690652180143603120859755250968356475218595936368049470387448530518190080967995594030758252763620026681125499100623050376677255863313359173400637346257606981062495444425854063441807636262500269609155806485414011433382517053313599254887125558993675867160099654568751080694261519751774496210785378098464074201390125511954353997000418376364558184256457156470217391333013416985624829385289179299244597836255838774231496992181158890851391167072418410476735415809832897376176820883066545611952624269326022634585297759561414814808968540480819109089354080774704335053341443185780104318781570186103858683067956327080119419656443021188772471385990377237845973443742007874251871640904489911569222911804804895337489130824830792343137965005102828174302167904178172710206269931108243775281276147462196833078855949867878395753142994294679141445813236979327919675415590450976021184722606921567620702834816779058270219345810167118554597972840466877559408453653714395381418654286343082489795462494136899346050405323558484546578141244459871687320193373904549757226140166129709626964938305931208999818042827656182409207692926547558197018075690253882828637502216662912115048724051047305432503205863734225177131501214801243904246462926040353062063810096784454088357476726409818133898094202570852586047390099887200278782353148508651873233149917823285862904230638935835924704984453173822203608307013247944202581502977554446291460667546759330869437225740489450100023376132418257315629484665111641333439893140557163915463403927448303320597608080555788773460848047562735520820410568562484738845866818609194911574726905873590415552267196843403836516050834661677958898351033402148900467088456831228033460774002564925860235799387086604797166923389600548472912900605567285904250898692604154719942642390229440816948766937180448619063295222958081719889535151022591306921487820727422859826681848042244637895920511145998803479822763641619775362275420819872768645251205099677396722650869205916508729416679966084899980869441918799041541193292630695816313425309588904787521402698584658229641720224495420500017835132192102284172150646650079594999640876877111908779143546957808868975112893846196397443645743142318057837538964480343868078833104040066475046330002997555595378753673119971638395909939258677007406639414799078475955701531095421636743717810182428116006121449487162146439508538984781929355154852909458870162539424679740652904930261156173383402592127358017905790390406266781093573444704056915731767313301573278830184916797338033882631144818040937785964145454550426954707769603196280166532399051275286378805834130121087584662080797758063525566512137896394657806404277880774606695310660027956436441866539245029482120309850761783609004335148642492295326924070302042635396788593478384251168850594392694824779696184705783199436050885637439099661885730826902750309394057244394432182029992459272749960976289276407629138196140741078195142016680062511764397148354152026796137070831848525480232644854717478644940320050625231524810649370047031488745648661825549889402835956146687231048359768968926281916027762639773816401480424786813977944928475327224334477823689533003597691768935295713011303174710150606449989004267474186720657939431381255758611159474504294312994568109961070496344270433417225163708014422499397465141915191078211568731273776769741583041007759218413798201808195082696194903403080979743166905931350646984446096988643591640712252520900657200078304588001415535132326852896215847228444258211627910955071140113677556752662091322987352037110021537204400296872061276505800356367439296104553124803200522891683365403681762518803726174897705458799243962959684903098607076289091803248461388289708499539787695954794932588410924788166078752909534492527244418762209255842009895230289882820909381886152147321700241884680546185058592362045584882180904371185854797333826833750562793572381825816808623370123883210186944478753912738139959190010408334132752178251564638973285328023833342378179064522142484147382186348465562332766374645680507541732684108590206782447778773402428758840722059451310194817552975341052112903947089899229812353610375434775133920922133913074067947441884309613482154723283494838475616397698392801730757125946778268058739116137988527714123061555226538673578941582688532959461210534036481305551977339500143005088701025410309950854588300142717868517278456622623984525580995290422771894109559909370689318074680863272363336601582210968377156067094973487066142172286065619670082234938668175815088430800548635067859769617662167764772019890508942826576071208529367634222159728433971973272456742330112316620331387434818591282351728620318561632786272986890313115788891915564073988316456875323493632539273399983071500650282687790466245932664429923901059994070686644808634887990065815173183047085273080908452384231847864259559873691253048661632982830068845543403426252072704234241442592061841286283538890625212215987770561076269845910514676870149748182032585618504917891459703854714806477027241272225957673301417153560300837031023945142053342124292237565569686161976499974568299507817102901124625244856331910286090635345685128488987859256001132781265515576314146115518568207824482099633246440612339477893224381419098579341839096068885800849981333041432651004947617194024613308998169547980777260073031822915746869700124973177108317520613801338879003689510267332067116339124017964343289222807942710082623737319494574210206665528044182380059656302861129553866254628214973585856728578480001154859703087441392534379641234247564531929669178302427320361536593850383918906610374653171634678667993399216808899374967253160360080485452108610063664927689529513845342976572254295444479719074142662088676733080458388418976940050479824020654877550104907847918760445100175216967901936301316255233006187339209984294548203119508678162292902120738507964437631225556738860815059499557421879460389128128733396136530941448487851425054127934377334453738794048386221800143103474398680368916192957609009524917187256960246925366432788075954755088452830232526262237484433087031154686961123947287497752623631372943613728975631816886648577774368203399420170377721635499860768498369930077191423534755182531390782094892265826423555720488423603288885012152353372070507898668781364758011165878541887601604114987764851782570846816966477377805580818593349203256813015760729859884619411355935015137905296218102335241407977861643576824025043643672671259630171041944097323398372128159821423746377891707629554862629368602866337620725133319219098750778220115217498270109418453841751937771102420657459451383655647030762529951875857943894520087923983108017900005002862176063268747817382485958301459798936630158839243052005869295666795558844917860499496438512125321953905456301740419718179898914742484702899013541013154660403387005971676999510701953362192942114477472962650334130862732831257538033392615987685820162376744729397990032854014896790344199499956046234335832575754164565172868280604988195343046846783072309810931751502886838911851770453179277319873373574636400512372845628106895714183418317327058563247361923612147605055860511228668662156682675171345962669265347149546130557202596743786458944359531666908767275781998549921446235028356500914548777125244448774931045985943162983309055729058281192458641479701340163780502691720729798254138170790687355797435578117996844187920391245711282941476483530752614402543864307622440392664028387437743291356322391374672297418179604905237665420818282540909354420336853992039004106073034249455792337668708500549854064478778447531247823742606413675557723009300105404042267278037892559620055878392835366594328353269486452384791374834635132360006199502560717579255460962142282147710738059241854548690838824775462932888184829176138288444841502313899682474832953287215391409902899516152246763151498535923881898582996070655425537102696484337272951391359953669570375612849055945694290923996978777548308364491630684891423965718047032398845465109743578610469497254306921466784743409461244352788066395806094313581748602202567196248145811882764731530837719105133962685759653247998264596805429653469052746484172392747042205108675095389739705485027858289464518991875299683369905867103482101909716133889000068108745736259485002273411764516790572046457963148512611058763559399426917313275531688512807354037198495833143980339072667197288842442438888713868300283773625057513598183431375990874097367923970323733155917994183625244201198800079173823726878459062832186470616023630793607157595258197464779630230689801818385993927557828245824186185004263519021386450521568001390979729285566511929493596381722242880159389036789179967356522396632320312978728746887110322843633818780734318822069127246906083348101267732741900736279381132403541936588407920932480660372561466885197219173667069942864492950454183216161644256617770796774757294678754904602161521946521662356147470079820899769046691373347450760474425556598594760480934233486847985224384410575263641159007307685010145337757859229303032954618011140705766765551786514376689294441325116027514748594967781664018508693555485522436039852932154138759746516187633011725384332251411321787537272025132063840665166844117055737801098418777447886349465664926313008283860592148786900797352112391244485407356315494080897025485684136723686787373649931715517190285070272961069128303518564232756510717320184839036785503375171172685409300944058085054750839666188906185644193425510061380714014285383903252258423885059247944977371232076823033660024104904482643762280132467694614320513603530199234761774379024675250299041577023441382600855698253373674271208413540789866012532456760916280832461818189590441459184231893479793569887087361174760888852465112226398146021009196996926984831533776235531207741087826378069265079434845832071382685813744729276747503007713405171571906344006380918426860059448023191211204585724623077151810383827271009324148014945387705778837401425157791082984391969420115375695660680833034072550741233629426659097761814518913609492586129501180612435809760826732751429256989969221134775364773770693968346433509780856617721245318776365275860386883617078405524368394716390962422672299272356247061692535291359557465908713125557443371026561800832983571833341580027532793907414263446794954451324477944206072594313345830177639098985719630239284666805378890490957638489845018033325192439163425191214612726772442861470691080230639891621605451920686003539660041165787989595347780011680127599225276295305373452935196913921546469575727557919017001000435579744458353375840736242976849143010564669281384336475103204237438842719564618688511322398479184036924358793199793347857497594080174324086098098179747637852531798980135943200836784177654274322032224146128373488021879561433137578444337626367815716157503633970888045658141984538162017290372213246704888816027259646806138273984493939779202007055670948395842117692793048975942888827080125053323463631307050368159511768598961318176718516137164037383894539886564793370582820900425395131565941515142196099129814662655133139508507578437253799925519568484625252597903657798539291983604561963985401171787684528316789869675268506277280220836487170784140044911983523844758915037002623663345477239776641903810869508908613412886124308451722187422310095773924102053871309309642141977584349938877998784106420043303708636157235567528551084748062416479200490430783161435614633092634596335748506211693593493823936892879414778215050760737582445199856420844472899982237280797906855623243164635131574678614980527281363530931511048553920550729330659310058851580264234401280123628499489206883094206085079562796096521171676581738633046453485235878133486029522590076159745516740630995378828212012477168162351200060411884604062280903741725757784096095216644718600977676202452270945643956205948387584811176001159718606302097968728473863178769069164556685140988389297701300341910731233792363032769282583241652283482638482857778324240851502830014901427240954027994449697437245494182031802605052588481889415471584278674231014827485760568321232591554271937310180036056264964797479891091836393871980943404419137211498517301086492053346386772800461781434383064647533412670721565950066591692210202446869970278947286824343746001898359428904623601191578709600230106214414605936480836327284613714658823336450977134028185536163445855333874913439640254392783314121871674417287303858966444729137577180556039353848955435014209283236448546684974755629136856644267326926182123599849422697422617375591230244724321364361622616242384028485158318238629970690603942741409732009679031883621724078354721923151980440351502881466919987176096556858525835218673281664840107249513138084197473741545873924177246376469259327775193350197973032610813169546726636771825765608294558016771754760170199561660011049624774309555374523243791841208692111504423610693896705236484932179450661158173504170590949675614795963049023962892503647871238580922784922794093181064193228043891658847615792382236303239495159284517794958580240627399328544044534128059501088855869489882088831809580329959097143621182878576224359614052090592830849690874711835340740337880642798873553554253873369066807515983061140602210596264828742865195693617187794388970512977325297600910022582536296113758345122207351500856853374084288673685469171019153087680893212212434596223508591205490160185306799680963455790500852427390235514983822573253515331766806675166615424120699476123661700368542322761952248071986289199356523746767776536843279832919824820138265105025562557950710467283818332995057033064883531720689577099319119111536730292464859794276552811702099812368971448567894482130278517292580532436681681960042660136520209171919863941370314956028864698911851495461176999390015613782455355749136243363314265196723183429564104361308782226991820571855574483296623919234923618407666132343601495753127773013962654924184746274697786069008816464740205131472744611511461979485759213626006876626226647293071749225549660747615579066361871044877558140919768186512896839141510714107237999577505557070096024544280380008491167352397810798821710886281179861651572173342192132803016889936684335516523191351508959816606289244724159750489686729346441816598721196618801588658956421537326329407914756545502250975010464786847579173056562304011857403951071610851580683969652699903901512619717252655278206628658488560578516446085428017923302447115931457074939686287205267591284021390851795183361766386443224452682441877263979751274047165283422063246530581881513369763748089804994249250332840926782756666131820985673434034878436569341496520442213233598773247845838053114277103985166916834661305181351793542623456576476672279324034724071034440334787756621791521094603191067765543026525061434704319003041857188379952540171852695304884471955038712259191712303378525668722924769905695660195525322526702793042470721095128935849530183921950550337514451920050038434990643884456098083994599877619011403474654702639319199028194868958349122924952596416461815124120156883653254667142021833693660323302474569715133777265397840662009231029961722659984659895858267305956550917156590954370641457803358364207078138123457301291856687792861109456904872566825112548807440555844275792548876219954024095175809542897862874338974944361124603372803303874636461684370099016086439152612101412593913499191768882467450860670355204055947941749641291046785789693707493887529303561750594209515703092353099346603140369614552491679431629786861004668963610235228730553532902451014524041834759551986603642422316817076090474975477634724610094275676147898063070199486383981244124459967283003111567774992166383494496529084735786085581666589800553593185382081438411022964225623708730591206145119204136161906387722156386205040765005513427841432359811070203264201921240473818895335702901100365626637421746700906695179575896455649257924213251234092111526613419311716210292153272405188915477999353213941548818302513158845949843878622129064351548112061290287414196333984667957105299327879038452089374895664952632994011889257690432136978050268959886869783101235205661496705448613658874004654948712486381626895382830958739768274171420337590998638135177669867401507330682883435549362152248912523886238272411165709969360329827963000712274975408997376812176424607786103392167936911960999880547526617139336654396942648963287791518959667433412523066806788438104841161180256285175331632083558807651386657624104715260083161678818599504088040705810158088073998305774436265233666663489723469239857262583466649613703544791609836197611392039899213335640124006243235417406935961475051578910517286369342452851046669840646525875875955474781640036837406418820453997641593649275062624023376914097828032154021876813047171995657140412921437979632825948751755975794276838701650864757070701145355016824107573962617549246824027757776363037471230206476280407005104569824862380497927525961018633932890853780984432781674313451331720690116508640302994454125412493145063298899086482806171057571131039076951665346330048819692721773035568742683807911958834566324611595415679277661406313884489275401184743205448318486826050298722625085954692945991046670811831645616700034278822229157050339239743599851418409232388459672301576261317456997845830186502478781772926247991866042046888144394780789427197188060923064224611159500250917818569822204394422811275246016114685460817199783750542219901414536256465653263574215495546395709763587917868348924327106778802284525004375577290898627374336080606475840960993314367793599490112563077302874727267546224538810852698227191665893298079751198940566490863129029555159859763479659338279747603877948533400281150128936180090318911496051114924530561651023621369886598266331166391093533909029888355425965928528519000462588889733375534139068839233984770505597147231955211078647300055662313893922870512573168664253340793184220090254853707592430620341066742889234728674666667964883463792327221905506532377924246035722989772138317049473369177018616246897292841651914259746420510729492573442014385374490078578359416521545097843670629769081351051129321212913313477451764028651420749580037936633050119302246663908394846717514601646727204064327761374265293465916865675081876644367367137691441515488740784710261522629035803400461162226213638958100525003402562020618618004239330819723602067455930691240606622424724245721803725860676266013265458465255246313254292861481526660829441471413173633794289774484399942570246040284629661494382004632662774430816363132686996825424319582501258839116674211683262930345920693625189011583811611188382900877553978347172694442591997423913854334139685998558824746019592542037267115772322698243784154680191706359953156310671305848879162396985009394172325386732492541512447456009494099154844074926150099615529984262760997454395121845162410813490652736319995279947231003599601978604577872631195837911444368406068389575792175353612163078972353593052138981258589862033607908356080564375060656599229852971656680706963275529596505727760997775582677047037209738861110317019556028675429576230862957906972269084522997391949276986258636083490866008309062035893756542850273414742794293032705536264932921121633344375434186207225892898105074231129028902974079794075491599216695781960054223962866411513218101238327185441675409339568516850539980632045849034015061400237101835816691761163060055881404525234303166056315647821395710758446280532257533058134101649157185138190474490545969579648543146848379676142028327298838714768649148959008612417021161145842212218402816678885409267013295223046327197017533180772550853669734425607799803885931229706051169367002143279551585485332458735757210041367695834411179286690956857526880277966976374743417034762375218757890417258833210452780851660196060585023205393929446060038404712595867846323531303634126602065139067193216373729378429089907225716781716584079248777246767984624230922198556673325093498320075871213197757186166996941543973178504083056892785632131522783800784670883997317168755713882798309625140867908730052231784408019212042590931953719621572577062642101579164074704308661099118703359631837051983826498504187639943626603896771834016439629896702797948974876572218604258218120580299316979255752204243511575712882466415958401745413479285003508048794492611918527608702788329631795175374680519419059113648776656498480248909335164184321943958354062164057488349838419039484925771523568357035603905780721170524531144103172136084643458305107049778737630900817268786075504429147439888344433638741029241824160476410352217681895233589530532478088030016137638457435351000850825997073699339013273849861581628059909769922023644907707963616195671898548989252862795118051708264152988324931523633240475409246287442056030908842872598959869083502898275484567808621153513318496605676271755693694879470206181179931185063331294326311991913860736625750516560819803096152670368641117227735997846424464321152627947627013615566158195817377121772040989875406021028839837327783009267988895752532027574775877115489797862006011359121059536618108798594086035478750106832347690674239389600488164845357740466870390263583946010369076040133106152160478044285343229160904627120304768922784276873953761397070594560672334733530975071529759640413572019647923063951769078771146061801711473300511592928844831469001726036293793031976584626727343902827316214482045217868276760066812325140150098954535595356757305644424347335210789791249678070983342132158905138482298982938947599939817263639450382399485722673253547603464436857167271804519399157803461429458051114431048213233934538183005588428212142438465389587277336663197836645346400111733202370457703728358413208175642453042904957135616751485364651105581091912874330114416372023654408927951246915471855579997551897586450710073814003346711949938675539535894972676272155681513619551323952734190573827858750559861536537479033123792798588864686913094841919942548323657052381633886095425199954870640905441522326525950426996778427549962557136005912483634583829502988991333107576308564136980645901876044275111863137651384597534623815289330923858305648600756309458755690525222787538959295893387709316908828855511093101745193962506509529186245243820396904985619131558279660063790339893948649283832764511798559392797500495493884552613258653095312225688679952282112211730682509975467025275418891508816500337093215101028174810375678261059557628033362360516439656495791148115969913653635686162581593678198312622251046610452041990264206256766483364987858872222765065572697546361071688925579834238261398052386641086105688494016257330327986674616257023387315597308078140056830181115289993185433218684728523522557678019127893622633660801424970152914001894029420625334336271930551443245575352737505022081715316417005449163638124421723030569752081661740121610515702915923681899973323404784121217022391092066306607648621012130552958855497643800488600389916477877863397732839497016925772496339031613102519916048109846453144386467760398628138923631695247175380014497559711703808900503382434266800831976748349684415195972463102742389904197084471868503981208089412163486718650259301313966634853901625563353539793670187721166054965602407470388476030318536092926491645141769928656008945647972390971663769549020165256602562148277923119692588814864246532070562786314631431680561485975073845269730094616456537193522845331374199905215236876293970266023513115065842573934082685565626683898951190649468970320795568456494491472476336190831348357899549627556198244052606793922836458414702544441485114395944272632692502479963048471041550411205373067843702797292255478063968892154061043433345238842419558987832735921239539536744070840975699911377770817355035936981618280111743730617262534316085213708539613684297300840968023178158375819409895637716598156043944557458662135702311760133477766425133694667144761850829067134778002388284267742232780304485426276163827572092681087116055503950555730003127024982482676831629368909783930989722691235072317501485223127986215398251908924086390305730171071690737424680812562866267129324373498469830921202906486123793017173243805541017171106112377177415693850498093188768004259393504062138210758371328171388854101561520073658397158585941297947405678404700466118954858735691877145893832374474701908644498120721687132421122801214198009840359428075263524297586611099095241626397033903698923987062725561905258065343354003325082848148040853340178714346238750849182683976246253738782394662638968091142768626366852229806739376057162482064082903338145201366972413398514560548138769776460755587508293925282123048084879641571113412341709165736410724282624708737453332349690308858611387463295719071217338124138637841623067958260591410752815031202889270138838842785797415063893749953281902200149334637938639635462687445019136073764836555132433600979281552676994826588346574823875238019730660762118997276832824343779777225683229087074171941671646209395875625689241514621731831091797275115597298565060666563752962626714391255769300493488668289855712659692366129743693786167167062172559164493914267764068995627526199772845127753505307042908297919957431500640151817622311124320888233858678048287484956497779445923047475763015627491252058441838232777353976978043161760245143008432150261998017463300702133483088913876679140510904718011541990244536463956389778678441082982534479109388034491641607894408329109649121226382711494298920306271210432903040556553624329599887397456866020605685981609944102501991476284978427797019714644732193366790040736674370960407404445510579832213178031843259164431853171238169126742834715413194816143927357433364852961032140130594482564041831799795999724150416469853576857456822669925336940435424289499223303373263548708478683240169635337023912423343047870491543286350044560874310456840862949093445834457101088127485232752793134867046827119424296074613041380562619571585180930817652669570143261938582102298511288046427049326061335833745411596454558168857703243987848389392452608552478942771397641533697161626852716491626687538419756198674245128115295025104695115056735324597462142712865090520243041985160418306910025954402600785308506640240634120477453616547699633110473380115049767932788050776771819350180462029660787680577598795489794974343350457538710639764415139038462414079391014614578874169755617436130870367211563274695925037609190608577344063560612770010797731609471352343586583715229327219463643500283620183769345627332136281356248020081900565329189553333039404891925703809634505251821534606530534348179555974755223956389480449892597994147371102978351107050419644343981330223036418399592727100361178864688863564385511969314838512673388761372598544946247848132829208816156133814430609328592857842149090313729078943229238957294379087653380553709275827402423198588829259882482876078370635123203560805563352133295909316251999902490896938915413684182401856173802579167574852119961410967605243614805588044973187314070617531891041167118664137136489172267099569562968850841306356209817174846022953865705115782106436111878904210628966160235585478778255889462166203065474352444602246720236656232999655411754947157490676888354380246257328677267882153699625315467036168680650166782359006063273362490519338535278193634318206509744334890161429646021160587880603962353264796212180829867953531670869372022220464626115508566772301915087022008290564807044118320776314381511078685270505982694691360177983839337363820597373725656680487736068453096149356600679540149956848134706088695176538230756562164836781854982463549891451387247190089616625836062245570780764764788496923538058102819064382309434026940893195216899290769701556626922280506180353801206545966961170493843029651705313386248805733615710570374886682299603541666355499569496064006921209081933952238796953444797404036081032821533462433857584777057000445194631863141917559211980807456336642483427697782566744212704059775413058528953196478756217211908095376982988185535560904868367233876215408988650382103218692595353243821606339355425293111596826596252174660251224508852493090239580696762142017510800157019561944741325500644224692189186022954112717349722402186214486177878771013537263761572082121352528413470133237341922159579867719678081247333408017310188039438604193424985156150786894180020992724846445815798507803438493850660885319941008814930230562882310570492295617373722548585574810610094548090070994207691758557194846435056308938875062642555313532579912752756195934892333049990093648730133756922160091252836135918388980734928144527606162480555540433739355846332888687118184162363256309940711757540701573099164414955079751748074158146776909675596063726798785401321037460489983363844941097487792203191037037571256015971586120792805499393107974388025817681265806606374874085214266681948652705044967833213022245820258241110682436503481718713777132027658232010365218183752914071245485571886293576689037769477240199600530025700389777690331900328634754243367506336079215176113887568450059748735697695620870669578154180331817557979006292512090390844858662507226402468441451838468057213269923172565499710343346542838128294945840966662757719463859246729705231644539187792379825158919846350876681724348580872116657603818521391430617298633621873574121278291291280498666170809032865020705833284115823783715442026422563544231669474773646791022454484204220996678203613611139183958589883046929513815428335667204589006589768041509394468356361697483226712352603989256075371460148363327919872302402945877156641381022312515208714913332473424106694492278297280178190284131124962243616763597723748151248735166654143443836185322861424529400303613463033198139129124496890777379202171000802058492197207632190477377169999371659408156320083334113835751931069620677092833568685838111923508826293152980963789517129240487799860140286496557297454092971973647879509406471357269572132861990453451134911529834067142775058547886292526901183536051805514124323283454694626177375786051525031526093499833882378879405480149163699942390414322660285203660596950102224256405015373392554110232322324137614048623837507845258286977067963355255403032372268753837758663082122290070743289353170247180540975663942709468200766724055809359256658942660235010471727807081970792727174127002698317631136078315868259796237388079796973114039677619088016716856303466079343959715247035554225491201530210673006731396292310845432623321752142621498089695629212895497742750059801446960901426594227380503278426480407684536006647774972252219719744645488833951761507826960669279371485178522674956755338253906779035286057032129632386069133091819457498052158082305598354363373205721822023754442508187626810864655071344124926764680882085001204048895748207293003334647450008844174728689040984885362669327962430668238969570218998313581271672131679636907630382999638124196112571275185764534910795481777840653423041562296429284826020288997596506720625042491227421034766797340719325418846035488565971218257364866860198432513843030502630602766292572065336643098211508502055608785123795760302655116029385895921845816575602346418389296895709566394419345836446135068778561493574999338270781832943662721930656351459843694082846544711854790153767547628678779576085690477791555480304885184307632964224003911287187206721640543533139192823393264354224444000065625141771969644800582815278775927279642005469818043614686378157179042729537075541679986368113863150184043812622184496783790120897295626247824905827658887926393401679219024604464299320708437956183762373108158310810352308174248298375218768600710303690125026321423332306633203379439469866242275020138501386382641400141207440039271636651382165691570762755318658374481106180264321823072603060750336477989148351764099277998345433649991077367103533703906688518011801683581884109179805147036236928556679934875139961014630552512405240027207060789620425710772007245615677259718182539278517847894607996708778438708331693866124982395075760729685753417540643402073631509238139376414911800386592048301767964627035566476120728254202144364186045797711076767367033632425219366337244978510406106290913922956743851711509533967981019599445087729102472261629443384093337751462256469969669119306271758556038745884777472255116655032903096406971772259986295842727633679096376360083539372067224564083751607560001279427924764114043888249483205064661629526856482848297828592049454316046575897254812534182167546790455536365603839496343226649937210769062386591533926218729802338064131577178727412271641752990987869660808263074310587736755575317298036994077456373924237663425808907607452539739439346247671118614969858722895526078812128741028166943471209890251904540209847228192015300544754434152175912581425604780901367624569340577989295247468485083014647079108479455668493215530217003543363238043946615966675948173610853450944824166754969618770789141460967117283355407806759625185522989062070833010333161443472574856423234650793045645014989614292326833054884331455013335796694256555525360680535943980643759873190775851952761234764367067028857771640043309797587720580490650885841983611408042781199009313931450280726029631423952065544087069132064854999416829605298806895379250624958861389001603197125914917111567253863020627465540042553706046672753949924894916289098655068326614023531443142020869775743958513324506664727969357789497620464931926083511704703135122381060216496474415833707550679929597984987161951295596660050030858807849733295615242025267238426711695101747579190231080762509319321752503636053443696377404952239145651177202337124767175325947956453857922681376884106551463230679834020848852857486434346964524302789700258456320112475288685336488209275965671514396296651743938743237479469810422244562711630780024850860705636573632913867093773452280845554311971553954877849900792396815334193222985488921054921227630929524300719338632220235297380122088364290608321403939544599407027880264484747328950654510364705518067877752191606209398603236178850224334509937208093426796630926172745487927708194302363063104619569158189566374857285049074976990634413415006992394196371672143515911017051115306500826883396321974283747057634019293677425085376744850040470659684883545749867742866232938193522946301970313978345193678304103869924455607553210333376520139669225567757919935704583642674248365068963090489611573941406532576470689678995881840778651402760410030659419602910926472910840531714393380404806813849563094074457667802863870572519223974849389359926058110415062685807015313858148511758113557973461914283731588253678638534902312085200319156469976865256209899152390751409025111055092163962713402287177748518183851006414281997757354912070067420814710262334368438427536852689353380765017777773944174398158712553178101102116931985840222749038427599123058748441365033618778661194225791241053827923558947251157148291198085062957301302960831315741292201800124097491745396423517176911587086667815200102115257111417462459960232649703873032071398602992216140695351975542972073458153699023859946274597734761672671490550022067930476469244136727716171149886451562953830695023503252442046469499189712003147181341732364259867040795739871764923444194810019467596294817513203926274736528578030203019395017303600686345018493545740021555932653669590550052815359815610561934863505307645370706405563801684296709533725394663595432193201432131701902643650646973865917412059462597533878423140738462884518578171300733262656760063003629817606251100429745975697772275260727976556413097535901777327506420419028719018192391556887894904374623062603656704224639381272034671738262758509002843654814343120418055166556920855086225701504035542811967140098719580614339165859791487379518303934008464022192235232697507586612669960302016843440375785241896137511953716028490232597688640087226856385280675381193136716727388673515358421053113913645986405004625776837185365174562097304981960499517739323233711093583638586718119959268215474382779863653667458944226598658932095714154881428923680380832645472300145743618472608997504619908660830672263907449803690097205263082961643524555499922074130197781919686935570587944803836957381148511421319433873315515410333498674160885398396434493578311397135172959430972935960282824781466690308453892477822590778870820230185846792475539058662843185361172492200120668252912756052378466142989632428841104950313412034179403748479971929469717622276087120131363452637476706563388694239958977284305843632948044878608020247323149688674762552016532002223663391179360863079757720643497943374254158252290086774273444454818936310767697338817083646126388331882944124192685302888392746639613334132814150041025793253315163201651987642334338255490673435551390935559099779621071461479154885222446107934915900630962247725676645295084491208511610080477882568345418233117385130010571123958834660830925589692368123296700427143144256465707735909890493369258423202305656915560547677974880588175439643834199049413964984033858513601913355593968442850210278950257034017391693154582823985809204909294349511264984713321765140267087421569636553536990463414702187913292031916463893530814150273032779790986314705509387447328117139206194021681818515027388804414186943938630493703613009074890105790257910919272106003146566363729605607923397056517257714990064516979839331489619497430394712194749186968453466230747744069908696547799435632056268565811978926143328146370241297766547766625643016518437510869944480160648832837137466528163877429726955983644346606047901837130647853864790751744466044746782786404291425871915323186875472080476092776260772744040194623763452173351972463307691776823416928497887727787057532742865467338349877847115120754509777951920475220867069959546860175377012362429991803780913259879460126324390821170456886882955379967023369393412675372674818858811611884976179633116893984398043900407182584991561129937494786677555267468693845959523536033348868529831603590529962826242256265045812908213944605960831577347093574865180568101941005633661493091254765361919137827621475946772767474047052782758185038836073321194064137122099556574056235241529972802307581300200335327790531035251165718052698063730283468460862885454736692478100347435428554995774951518606517112802990306774143421573362624287304794064569918826001136240688590010157736132840742339959928109032916196023048810316091241771777709384401451796287714870422694612867406817678426946334669847736654416539088834777484933894904139788049304215860178083452108314147471522091479365234361173840349817630281337579703491288797409927567198322287156982571811738854398533597663042987344446802237058277329102966685941302440620118949538822441643191759258771640462053640727982106539755819590767046974062329844880830633503649852983900104943938553735460073867569885571548534476278506630703678357611624515467543244892689730919518340023328332013534163074979542288934875006630905303876776694533494575627652784261093582144740721932945973610430771664641286201887653077442785040462815496318014573825781202613804838963517284988794663846031702505129351657930138131460367654945823168202954169677498218295492766506870646715812351204190963981541763029436975252520400864606041932630701957346154083731980366019956160676295827596521735080912302132884503318381391519562844148007957839862817187475835734881879447487147721577339362106861624887497479003347811597450784501990566429734031462864297305295806471493784769881123840361715899216598197792512741765435994663001658537108879361590760396298743623764258021734749946407883465637706165626601105825767628944671477320274178829545269828599775411457271570787583854452147677181982396488940058695066356841365855887685372004710375398778471839338659629954761120494697591105484682581934836551827303274718258454611587037541645246946488985957775781301994398194012629167831181952587038761196136408960185710387178419863553638087570669243830523164416515753583710566628508961369823589685342260869691092291776505271825750103270689094538986393855623603700062959485030337702643856797617885150585708895296382236634281079698551380052352262852429221005656397635022780240216245123949448296429249989234866778584095046064083265744423380337773840151275290820381875488199754353353173717445424526868584925535301774232306538610077073345278097024364611493999480327570917641502058900671160566883891261551839458158647285065018984814609349458275495595700247249538848554706536573945271355469772457849541564788321748192844701253800715618843752951719258055779838894063252771131105087356377477739769082354781134038415027104119347306139081388649635353062704088103326736154129148249141442273426245912097680229296827945718727156653435323648383126731785896042342057345274948736962541932173492684557044289576424480153872045232164648143064995900109287659074095930925362334491986349401206832197701349387959415259598971889277826742946472782359390886649931265365933931253728956361468482627100188719566389200041279199649249691483885083824518128310224736348390217296063908145541499437591252532664130564859145532048389944754817148732365010814377591225896555577331907398444894309338025853609164794508701835240834417963964762824843343605761016038943804252792221610126278034460886283280383214108051352451094761083343765691269303781034800351468711593117567798638097562318514267678418765154146202779083882916110736698251427255119099909727025295151736023214735839524804235880858448881928072615281406383686957776431329733974063264389975364034917501911649463971586166651952790172319706294614395904952124469308079241445320330090461160127410514545786501144859187024769045565094232825978062152575315408887936906272089239199991758925558694559492565303579409933003026226881538848128085319486990278317260643703288958246545826051354718180572983507052074910054630150248658307792204478680039294576654516364479207445889189359617567960675884276385450425632382008505606846737413487876999554524043781936117143885805445248466012923820074046861089024330627349109171739453064443423340754801292876536079005612892263168305593259873978028148946130411811591318094074760828485328463506160077618658090402410071979110857529386801072382211370451599061147593001536178123389934690622743070135295312914677989405962894169302123061142425679962602861544200120037880268294674461622150137215124800459850892755017776944063542127343669834127866640523044834244644516176855991554215647605448560587936465493539285249797628477049263105226936721182894213742117816844282521064421085611306438400068551201531810679936085954491270696589751071991222735768040263572315817576107425163120143995647418853827006183109494415026526642250788220379633007611932977364927549936104897035173728476896217068042442428917487773511466588766974664561257776893003498395769729884770251959257298570388337842644461116516079404012156806454131449382963865643367644551897701774047486969940924243286409564415336445920559310607491263528116934984485836521061870480393190046097615135890251915743478018328911664415253608475694641936662742861097397754173685298523784784969439079843776915048847618587754948922219910411594513117296127711675411286002875182663167523907997849584224571341101457598154330925365569418919404177222737975317132256945119253437129509612525739329432287069994251946698173602641967841741904480338550787428873408754646083486525130779887973118865381895087799456830581551320528152103420058473955312074508984579402891589612251380322652652630444489563114103566839189953514142281725629784108016851301172957465090716438950542089166917826151258196800099130934483689742310596672129980426685194266136363023008255321846464149549818723629162527001420109974720384877052228917164152266329282503581701117231465944810756153978100255451519913763365340018140547937870511622752252918188857281556230090502553283377397851714247302788222917596230458392856765483518313705016665917908386788580617795668956808932883869506339705320544738722408267406742577401982221976471948976488288545859799337742043863729639980984066358967005640529088856759801719922721735470228850360616378524235301689505768537171663378385984844451455201544821875667029931805706075761284544404132476647416440627283726406262829340371392358872777568096116464761085016628815092464726739650352016672339014894868570132821264096766563907316561382286603493464998462400260296180482348608256316170664653911166967022654115761088201418187013193159744916921534142603346043223911103711232281776792070698795066295603395446406522886020192403648844785261668762761615741752407368558967477763110083706087879645280281900677083952198045419210033169283354219069696263326961479078839336094072727228625748909797837358664740186007385939498324959434986363102804676609222847667769085421708370072317849318615728033301629877964039387408031065010532439530882162120142465309999372156952558551651703288709575444752839454082004267580851117664149742692844217234021711588246264239146594989628446842105298403611815246161148993033613179010658390393826838244002684839623168270266629127460686703251775854151239028656668732085861224659077895386191086795847914176929824861190041053606335426706733638542102526127478778669881713428644062011556830897122704829024238605952447045507203237331462444256346950699082419520312954238800311678394803812460777288935991801938373985100725909379083760246398282358731748342455161464469871355059986497739644146493889190160215379693792109061046647586885872209710570964663823310656585004114309608181450435492336977393973197727074255385398738987875754197976768573379768020571711175369329465491055407492450139642580764998218859656525109917725837479957124867146397789842607248084501719598882272477873512674696528663895361757575171331023577247630842099127090288974215222987906092824804207025931809066972664602371910717565467685234037315210702110369615729991181155522280029970049809774777408508154852166711337166466054999507195336948854027414218729183668657233335693277893646780572933463778258307409370165207819909988736611158944472814629646459258624720546531390309531936278326475364924321625276747966881689146207224855059216684416376859775489632264354109565921017347054268393915865533884050174533230138665355595837750478942131076544463981009866706952904700463928774412672174765468967552347983231448651726915683613419236289750005676583135632828187407781577867191160121248165443525269906117302639965697683200952042801192508479367892970306807055436163615272320015356012854157524819205850523573190001837075109933704810502313339951313358255422279316677148414498109139523081028507168146514499450170488813590693893694982434286945280326972436493297850243186793902085600953111220869827865589943982973814313756294797547247938464045253607259372363387979798193834549432487368661199020654177663878941238743969970909464003363911773766769388455596897059490094822604332972777462512731089963329607569200641996582440812373155042381272718814454507517448801105915942554648873758256038795222100141932887252475677806769071661251347690312621259144973369937010219318844628821580774928884527904235380428698028384493245937842307599638030880081458135517284719480591241152875971666005660860639502534319736438524266198444498545999700678705256634105097464676136916703731989976846967209235487184627527424288975031315407843944372217436853612245091701045350938557113163325935596852542508361503274823135212172133975061895452449744822861435614610731684156469789490095142842281406975877385773529415413047929467959399538374024041453929186482413565450725226820599025764144778742295221703056539909091001372065642538701774564898975850790527090225495931580700196380881210107251655441461362286165380208086620903283042260120035950247108871696614382319503104747002677357629732416720417021183737915973964553352272171557490844561053332899581286393590585266247297306748411641292724860625122338290185753558616314907138252389033375420776521420204497333541484756043190857810109390808900627351391408159563111505178859047507498564910568656060285230591854488136159491886283911361926441955215963416714401893037926385384573044155473492655153378980010262939646095831726154502369964839738694095529191334749075606419151764092649486672436386572845453796736749061477816062511257433189239974095244242328434513492171478290016785173806022437393168313370241547931678213870628127504521710234968614253769000933528637944532253160683302734219157792762574152466299660195474725061885799891821946557530589195966874151254707072828285731525894708165833610932744891701267175877872122932712146682858769175672680960915223469084913233938849953557097571610126743534153089669163250247250337151254820323078661234224913154796363298945644123702194837290571325791512363197385311397501200245594868883428417836075878866618413929929950574616819355998070361584600374911892731044332575165347829799896239179854494311870116561200650338356090103384532799987183183322746711576632865384771828743097461490781370856342854035737751077758987460968297168529839765183338583747074939603007539126303853622723404561717959524860976623833707387952978404830837520554234773118000118797375886712960471735498757585795922008056878203767635786087410278523877581350204837461011406738396648227539009922515706248010682290464748378210018925085806742236602545131913816511858407370798400414744141978975973782693416268441984703349486087134386018204941243592936192762843119820135228620601477086702462280148890414501852715414106553371396213264378164703815964040464205298284557498922993640188385690441673178256749238663119550137308224914962368961334212573388358717795223223935800966749964196317168571629575268972793667930619045319657460322691209594684380802537400379263716894556224752372470185659122311218380665728669279937807676418721724762608997752189826557780691084851672016040621082652788441493005988453817508459396904404430062983870937063670955009312185019672777433328148661519183219179750480723465968787143430755624982856656396944243931056910281800309873561765614489627677838139346180839722843712360814152139655742406936558830000544772575310897558848061914203123862796685159201351824055641923005532361355881942154890421667494616799868543046712454561705909189090316060827271383153719280875986318861729224850652140137223016764883657567553059577590184251913658877472531370429868322100764688338775386028361266532381597067463588854345051304184243424045341499753152297814115745648224599288598239514402235655507060228103693387001224893850569254669220556788303555893004099953711071347692475812751503211917759189585116197163487223655691679501063629077694650590830994567477572710421256531624427355042954643924141147376218914902150272272783361935176719303339475277375195074779844985397932870888268998065131064107628337526410501353424898431692170580523378138007157087355625639152138794119344679855634632898332263990915251112012114582397909637141890122165917384990647536187691236946949893777919342219595872736497625631249938552776103510216281827310984095552854640399301473042163793510593979318967092915272917396942900822616357727352943295978576958734439532640747921083837849166793569439866943619105426050036074457158270728113492254068489227521755890720346987720819083890323094609329436647898019731945782355471899119956050442156828872460577266534111050688522399531786361681429463433885866372315174776149499269818121060878969913271345351144805877118731205179942812275738189451819647414845563248217600780968110608755753725635096159648720405583157500549968363889216443424821299323986827342316499477352062988139779128780294261434060411893494644097573212898355421945958070566023895977133018778827997145204909552131893978955066869349012785035191463195728716483242385015440288073091981974304611710717412368847479926928258256858532858470292930417974661361980917619255699046215749441206629227279989049086904227621099289849947795388261745553453570861319377421102405874293960172350964742384161146693420037097872632496535968815508555029489895998900279296300442091655751771057304144041292611117956766023031736907353013229166345145836717342925722176836541605450195078296197061590905870572153343817003892696590284178281899288158581819748730425582382447325165702636542136786939469982202552993376560390297118927489674228662219962316617898737458288861645401638370235894551529347504270381726303420456970650461662572023568218806484048034840482208296330067059495136827011800724802702713326542856037419403268231162176697238996112965784411135265624804115412474393254267705785188853797464405794699763845239307487479256665276969525451956389876965139849095962944550044895430856817115580003120870003307795901722595898329885112477115028091190201067640242246393251331715824533509689265581821213231305295717397016763443185851229700228515446956648709822662630914566766680005920877121761992578768902634121583441187867873032860341078890484765441573172998893104849592835433206161106002714496248261752272446692560814704555500091669264392657676652557366972569244584809037426540750417829057025926008325590562118184634713589795523269185773911833413744342398119161450196605562910009462193891869551760303650027485671795950280582530729360782904037503835832702222055753800329179052680873967331033507473279670029061963912662436702972931918433813359320417200126986107020683918572299279174225415977825637281503215481061026992780311818438919560070526777491325364606706468450774935227853259974596664601754427149759205747090215003377057361263937227266245465956262247293374301119310609430320798965266796636870103123669796369720905368057807377489614247636398869867680406000098031682534625956658600974817356332789642719603248338483125021154371552716181563020443539433476214730960531457683703907890470627887582624759062052161370835045232542484988394520373881715037156320323475832818776932629068385517168181811901027456737167361451658678580671710762988298902708834279849829581032157632440642012700293766073147037840815028193484553967598365520580690561616577327238002170689631341300133561608628897738176143647793300722317023096209750069632085157609282040007949174416645891797962390774964394360431653193210537930214488133121005196717816794498803360313458522317024609723711867309900094841832791151977406939598781443437838853701878524502087414874355352391588256113197318295852081507699496980060965942332204133040866508391112370494579324291148804738185613186399576118381101840028086638198673957492515644219715005801453001213731075851189426249197753035173623912867799059381562068188682679948025507600062219589239795921499288823019025644624065035106795459882258265851303542272410284846038090539430454820279674986542796625901143887000541048816881024381034877875090597604866866301937259765467770619499576743244589483120388802647337290831615921625442278411347058290700482352663701659569894738527007618700986207147170375478698265176770242585839989100528875329000268871232166828574682474669682917193474770631228032721191701915043526908218898763100523198266305126957608883512328856747774587029006885145600713001710864647649876027309784089466825893212268970840988206814510197053069968256572046393949502997593510445094756961430303253425875013242726084000484520507294646276461807292596970200275193652977482872874810975175380181515291553723294473607698576947118928629223963522374912180497767361651868720999820920436492526318737144522133158105960964618856543788992486228542428911122127346252200518170157411596738963297908965292658287824573546682681518298769291435006915925152632392790139733214705852872237438455958850211169631732154689145953743183124175791880002967170481805113041020878566499044258456174287489748518128350957860623451944490726613149953161059743070053416122568177320567962838859762368753485249018828043038743169948305687509845815893713318212876607670895180375567594860042030847460320274901697719843089796113125273936411636871259279633152419701798158602716241148961605327216354608585424030423845290197018827986597840905418850810611498296746435266181857808658484739791361498802329295693400188613342584322846349170419187939363096195521688447184359326102544291831827944250273454676518232438897410850843354280736068959612095711435530317622456183012380057175231808096968158474752517935774005785447472997498891616725080287299080213680428644752532267757664696347369526990443359825115819971755177814214603261939604333628539412094358326645841339363720874464928828055929344175198427922545274285464514048476315744411277744880247698483014246716371207236182530753709571207791043183978848533090770374013106040533759051238960306591638272462703939851450828237271163104019664094890386087311869507367270549036800934376081911694002365969365509571539354354477190013461405835359412401190241905923190540667093009413930022147090088974651994750205212225426845204017793222250446976385512778694016412823151507265104235247514048700859745989274898887853798247921039226522728551514281161878441242592996304466282205673255904342570308418532705061544568660145662834641559051050893826039543401447079655640405991798987286084010396503417647525829092068063848342821074478024493750252044841444809728654588207617585083822784034577764628241463257894841388120882292847086102118886867122770027666920867938890578802577985705731267342684916424242201773050575827578966382196829692107719526153261916280841514125426098759123740617891172173137176376188449056678871029039146741516296284703862627274343138886800587580337962708246938205379149755211426546920485684806311756528230345393451536268775919892970679059984558966949468245158453186621504394354722781750533107481790491769107707026206633797088698309683395146920709354290528754776247887687014549345884218674902383820895477341259382506042211030411546905335249551385239083852035616645670011127274272655650123643789621489316775079974152369419134341551619409778039750659585944664482428470332947132317147574944100873337129651715837957231289156074346421678068163867342905943393325810925313105689921243566980138320356411999004969403083735050892762839699318675590411891763193374613926462511215330683923019113567518256018061726640507049528007586506167141410938360411482909040149847987289458987154338037415777848380249605653341065742698274820653267069887296208746030596431252006061050971926117236217943799084146829454112512505148105006307966288668099050351517513927662377672010589768538821601027377367309737956272706604257811267319325516341832890095719896129600646540968751284853804035550688821928426597050162367581384726940875103049009198680849138319339992145617332469963123923388938872516519142683279356543180426245734306782758633082299163480166440773569945187309998087806179062889094204364555912109047259755207871917384266225018839911527008580083151669562574254001777536427858603330256095774310929623034509470634988837913275262910155575237174706784048801971980263461549264330193599014997320869284326849798266580742965555458612294028303133553105377525356355762070937282066424425131021720745497396530132285186057727830716026655011648869352231655207178310681740871756368830082767631555526376139212077959586388090428016772196530513988482940670470854084466869494115893636308713689388274568524171264939598348639401877104796409817094931083100505763071982471991175549892188820711859624898537739893222860275148917814884374673804855816743575040956516278787543849167842079704449261037859611871280072944621033317138353647680991423140869026252608233974875851224031961426456875731346871276197499444001397163220084153120718367769129181142520479306467926141724962029073057913876745512907125463743194295908427024341937237270232428784941660277868449440242040831185377725464150363298659534272320151904746029634850965021174419202556892808973641541029781199855553836312456893166687358386711577480115000765994660512383521412716088584338837977578102321181709811273731845710883131468220103653774403788773445722429302945524672074324708352793949676564322158752203724549217507283353342474321750948574649051198703179502087665028351723947788338683617527781117509990483700924470400912347010672980428454997105143292783786113052336590118778777928201830418356499306773358627673140272215867743022613787374801109128889280271757375104667501279880570126259482634844151731100669758938082082250268858927838389030014248084818104904919437718062452185488493168210108552395903427915601586477570138427360525434256497104532650307982787865917526871273990620188629343126706807434664908518047952995057116184189530368669347129869897535892542195983590926014061273775927634523414990997280497041560866489809910328053665407445031361180629747125934530871326283714436581127987212917107736796204087659703461841348591669729231181806762404237548530223039881178640461224405531799016901707544543736064264069784101416881464063332976351364492489234902912653255823801782376279380973733060400252370032464199749697559443805379825499569914292746551146645893979803673507493551797683331450862760785769607656690730158127488443131345441861903198878919111236537071857424975782465679969454567756248568367914730699511711035398687290971338109219238942532971533259421551300635570278234612474410227083063084142138533943920185889202340134636490855673609139759876175768520879883747659441911288060496301668347389540072844987894175426250579540195147519791091021208556175479343994948891329096048687155027206261811878465599511133133296670782585557226755946119670526316713158415750641835033691590634589147525210382182072535689738652779939782365665979407012929252431217308654578808166209201027629597362152417938576508694081766465795839186640256848799214379844552901249558794361361721434995074337153189184343668900492508356759047001444074272109935092126511694381842356394354723661829888440067115156924691731338250859562327010967322379155566784994504827340128489518354824651385568907873416975868820310630924131723718592262649269734291315869264239250205986109822549259348337676703124611031244778648218498843267716223405453264863693004900285557479160128562708812672079223902512265855195753716633274749927958556720170865395753722988778331789380779328405784680299799104564499773756568110511667617199961979635906738138564214714282384145806526472841554903702792293034401882843732317884392394050101595295845024510667699208872122212495872022246988120557999407582457434662693307429195723474538408231440730376529223007406042151948095126851525687672911173794995457916102579438362612629844138118184207544589547359616402261117860628306924652942976133479875809576670852690015559934997031689018496684968502054368470359652658847161088452042304552560080885120953002932500298517736452252775122395621595307084745735375648674778551034706205749641538751011366691220727078744577692317847627764924211705664808098694819738666740127111588840119955705361958932299838230013712670041995725262624497040323483440964804590802718080581943468684821717452141131158267846908536990360175216417915595964119760990538181497349016567896836357820694925892140047465431085831227141029629016987090612314526781839142153934047276384348954232922715674854179524883920035361844690994468785385291159793124803746956165760381707974491080511459093936105025365736939352957062246273605437473281893494541517865774132517959615206996758944126348638496379540954164792816210880026238663765865983474072722530732589380034343417945860729208365341200003743199345690058748035811949920187091618366373151636292924326658206799190468960872911436224091445992757736925600882335128326252486535930311893077835817451274253850373185167405248789132845556530160772620121328251576037377425372282665173956886692432342057764108500307427334507042378148161835491082649245919121417444002875716831929354107159503854949243458982475045050327775807631046413879764940537421597471642274927550571584301321864545486172620697749678844593343682860724269350902298947818776815615635804357431045802081256929777227119997188659640069350218951443873009979151274298133768086313083659289757845096155347492128907305773397462047545313005156449762973504427216026951225462945862000602932519131077955364914747375138135134499044568593573197351342279325398671639263018139163935861148193152349627142750225112478424842573375956909192930325977250557878090294467423705930686427205083296705468501963898385811762479351921163748422586753647142682550125108419616669327363634919721516379111747519622411308346455367513684111501831549613730599618972862084524524872395734020480097656193786132836252521208936249963777434650456071741675447150689371514539083414322394948605841223791643827282955236658209490649894592259115261889951841624423189455802322524903257237836324172468486201641938934039456825389367750898411539463121496957821940652355070409122758931959774350716704967218382688722921244622365410845575837662968041802612228599426840207194217839925801529753606314388645219479005885535962726022720075167776072830227275975109915913109160645170691157936244964626664977367175106609580311948006184364367373715633696309864824024084191018871825629000258947473553076346902832118671297236259364096341679071774858889627316550816606635988819394725079453210397565150735976616815862096997234771574463281997052361322933042233271425159890198829123706448409274775444145041331115667826065205656338546033188696325303956345746904433598532468135712026353120809543139651230849384073422848157734390612621499876503729464386662241074947735663922845259648219349046074316855560527461161458043393776600125241424158744285731049309392658188593859383516507452411027479601104176233672590380568442701795299380424957757234764895341630327765588714178321847572861410226388179603435903670191412714874886329904563693905688056304707439107279756318330197466660405343078999810722065343439262983333548043776885986090753307149786301468157030824562763090680302439290792339691380498336672943902736817495010817052933766702281280401029440927418688472398562323930654579463773660654121444808877260498854160682905597099065492755883054490306335925888991442879768698217182878169381467394782564595685233109144324854310422719937168030332568427937841332552981042609773335447365061405598814292525105548549758490559663451437583968097114282721196039321945603853612732557893282380103658550194840858067297815915970771910238180587915405674777026632285373807189834094786391782566500256261428186440775611702932679948043711872216933618527504344319147159385667799541068209052780517499466312652969132702575815708259607472668967388650657217803392618005927622950809420366528108469781010864136866671972655594529451627662423566444028032986442425924806128270723938845228950959564351022050071055846964112543128141696023896754202746761706423752563392858601136721436493416538608061097985584227145150327073742269984644169594862090336774226072779360231179222999056781366425177734677917252693107532185140060503915747017523262465720763609169285018726761599052138636113779925313265699079379950138014427973959132738100008664239595483037521744907624973522861214348523383822044304826346692096781007675841342877870468108466485530502470344935724674551692127129614894269956205376817528538032291575757017737640507653412355286579426292512787890378146113623610772688308142793467253583836771406811536741982246907465721732521858997864658570437921965989476524114190750805413139600803616983753762264440402100108763070446951635506015945235056999941841788287524518323585094464063884244431631852778778378575931056457364556690687444810066562119707391528984588267605333233613566947485023438763123953023753795316690391739389263943313933343680429307710520193274466231673106510538670699521456881584674891943028622849628266457630031738832608837964784469542288077356408570025079001126910739400604628040090420789756139117663597087924530024639780414016218525610094559830466184607226557385781817017498363751069967441145480847699344988879745111397914046169186289699460620170827319470363549391895837989976114835562116906903020545293674582950808573855671293492966688297002527890679981205222606189759824704191308354496537675869804260464291724675370341110197003993515661044891595872551849683735047840138659022597459634151667353588188864984460114861333277549660916278894900869495841858452818468587578092780574823957459754225280106062041749636260847597221028426054586070371060722405995510741154309868572130044731281226732559416761168025286111729895590532823188978940982931581458861849040441721279253035922352278059404658876371688379623654482323644486413847378158777307461020622532712853993538914791339216767903428343407909992791834286777731765828707506507406133261029802147130245873618562950945545504599294367991678533649138184452562778877943874001210626127028306119091817369892119033915340360553972669873176060150566101082851959943752918028004668886024097268239661621839942587455121910339995950162866323542362914013358964196536541938478604249290748853158974601852911525438305473245698911023012640374749485212061611728392848422582738841405499833394778984644095386747087968367056203923463893342095649835720783523114739962269486669521681980077546470167867104663472920874206050606608488848921850222460149695781210878595507332256090936789238988155258734087361413219640306240038155518521803348619420741147948227306056415130705253035651681057355767560329642974465472663801233264184062178709232642195479482614857796815066085493196059993855626426521910040993772760019963716508049760790509810345117061666438441281709541425755858833161125621501907422572121671406122460125108019403162657926059363828355366242432755488919544364015477403497216798478593820573303781462873564801560708216209190979412691115482949134568768119599582825822330982795316220814354429561115192117471909117908265909105187671006248311326656624955174724456917159239833094787586526846721186676346430534150500781415558957415247903139519905010394193944749591383899461567254692479073557573233443326324253789672357380837682663031595122447414398861970879867058405030878347793791927755562498530553413834512289385696208345289859091361697971149744197513259195789707165013969909564194814021241172237346727601796533455265042531146699305359899410866578391878316566683699241382710590990873631325618711832134355766986415618071749460443986832331795275257854334576864087565569073356788234664003082038647903327118801486357578987795834872606927742880487722013424512532355650049330761794136135584662062799708611158003480304228681670669885162773843002697958875774929168802838448803847911051463069513469681873750941435031632060431823159352258657724339152368111120571344333069819418683232711274461039336857390072724260894576055782813475902201789339190722574718722675305459503650370119640793466257421233377139967168200986289506317050885253051757803539901451998378896393389222939093204029941844568168884685897741421870518214504997300928015012421156071369196448957440367473937886820532452056265969930655856123006286763521935737580044959646993774042521219608682829628467830620768697830880501754031857050253967646103381690981792447523994980162511705484827988318962199911310337849497996872637934780060309094466285759351735283927523191944765728731978269397968310529149218856551416680516348642354564804185824120181307936019266635729059988936416559393138260455996648663711663804964679476382086567426421031574815356475197024734168754645579713483633314529638919759389053008686212807424562502702472904427355267688810527260404121942072372524310142390859270567436916743423187324317323670128125919786192484654137606311536680638617044652786876213120785418274670595596052438637190710656410488908692345090185002260105335017008493157533003687071402223150931268488275318683792258246042580049552068246360079704804066232436100376230488415731258902173904467602358424129596789451192989375289553924977244169574321255129776200155875864984507228899180494632461205110587061644897546666891249626393885541812771620183048683925897957754600450642295067740501182122532629300324845316611720973503498986923127002886678340515478575027369062009490274187560173989788727577159603581316606328434351154346890945216764884704827480521815709930112385785621233253300136428352067996952546677125365224260111977071273427608650493861710774682716818871170478979849635313162264257803647139794395148133505511404945990390451345429763036353982615001701130657451387612894163097806807745481406205556187443404221728531868164491010888460704370335106270903576744662251705634741098297055684400862398106505741130784639103770299538315781454194519408478264988196716070314968816800115522484994559211765234692548665939428168116169221724282430288691536570898435100931739694600479526355268628467081694353619442926338992420897778110581698410653044414723524497424701538685651467547140867863689090468803217871444558757545554540407701519126924861840821771172027792914430377998775720595736171940969324343818301271322224170923247154601990523497805856964905822874416735309975875320869455044337724950047878742028683557587823917664703222919912908044035645437941479473880260502630128076204746735696565811004797466966464247777521797851564391003078856903822186490065684210081793606056162038074989311664618319922852886904059134017953560434163426014483236436152474663724072754395698069131348105004746711563829108314205293177999326285559805101105422191115493330728042299847064537109107493117815318929919279075112281288648684409383447167870703733260456573251849270298025127994362299999701323124734975636066610735568897446437591397687622802353021766340562838219043961802596918714221481753680209001636336101861048740032072039480313431169827700163361566989684489474915407884415185787800826546499584596701137135248674651291816903651305512927248060464491401271706467659508672866043429868639777643342256866042357460458401702492034501933315135614191242806239249130238850704406736776363815007864437161255578494221383445208678105465476751198219617114013009313540119660915007019836254539412434012983870703608973549313473341063988310814462158010137559354461192664662853188125759231649326933429846467741486337232135502391601544130835156685318779638514547474531523951494637981988678876086967988348541436645065893515160350066314925422507387693864894137498827968054054048553400143345815914593671067104824983423452001921933474490209481315633621099854001497841243134153324765738600865636166759049725356831770511546209774698714615321233110385508025617437067717749750557958916709756515737702446244108803422489297583286016458669707098658870862799449306462809512184382945160014468059868774656787102829455615140202038753840751811312547925929802799950674799578812586083266901161852118838837530994224123805726829240532784094962507087368613227899889668625867733818247176149030151270243412570469050764858855457134242574537388776084504705350374521556645102773508842647879258003819252837757901124215831725458807343513225990877553331217168151726682920229422267252905853182959851912172110174683696287778887026077400044934257336161779144425806659938622241522979017124500974150437205238363465115517555413016451789842910155903727883593182506549552213610553203101285150781877212301873452027711256624944915455702650284999340578619833753841429586139261827803488826629222102572613243640606020541734918826148932364731622436015017139587779258661346546480671538259016482491851594583929575656152035515987275403665385340922110438689308511651309797380275011261509164590776555787354327869418643702317931901456648905731645375698605281471933549874415861775032257889241375793451505667191726866799553601029263386412273205354809645847501905808774877654921359262674632106420329167111266831237286199626126855228377274289556891828564898896953579300361043139977930309778034161988056901220646308080039036988601397120441086326480815737510806869570447324525115319860799219691631661505311038717461429402422868933627646260890592642270746878831707987994062081616256752824780785508549849149910841943833804112934248093121997863016115592379309501018744973427329311102879845539322192405846700626831787320098035767209486130006428858649360864529499332760034494266839062582745772662155124424114887192923325891578497509262433096747327782303931775990770221473185208223111611461226993134791969525097264024881644905313580170598159287658332670644812431518207596356094143767158149347822748716329965273837110427930937939760838501268665226735609628027185757923152941682022485057714903010743755802565401482036172831224684928976475362417641139128748783706279432214113217767182815767281231279512614089083564741761525324967877282941709131046165105554348814508451762708056248782979379737171623989242883942393321581370246339642269219168622701401733221344739783852760916953853962123599086053131084968726739457934688241961504730437079052147997767821506388916324482623073604328829442185287073529886469351608586554373454749474075945295432996790608501385057592005088071440471817439684662601294428437145510083897416916459809460725109338471495921772114558423751607338472548762282238543310276578148578954820891599568469620277848409705105627386185993304865736762450804101214852633255570136371857753080752073562401258011865361991660277984163734546991517084356958439927404080009408466341236022239762535180082609861405525817401224654796599945883327974445116051109976988979562619659284469726217486691611446900671016409123607599355814216144944313938883738172027273625804876313623274734597529582366286432031758284131863643915384983582487238158041573608257315165937944387973610178282772300636851282437557755866360332535449292356555400167957642881882947417315358642038874781123418573104846933370579835413235839893388787825056729562593988754909192943437806278279930472250048833719022201066584042836513066947389934396931330012296106390523020898924169083358354337914525059024366662771145476763681263162245791110043457706698524239137781666684540096621770247922576047948505558066027750485582485234755933963792839398215014187249766559842604742923932005937145901573214427455288704556540488358363238957657945570301109953845384572073651837524790156314587332134102991522350892262751743777907492064560155348753512900624609431084253393035882966685349371804593888350100818969327530949095004042490426504807761057798021323200015470417098288807107916573636244467375504125762215464655832681285975512781739413585394848790967396620702194865645174740835959540453932225695374314083806091127260607081368161157498766900005470372054195158583177825187154172034760362919416753362323121515308459390515005457586679188861986217483858475217707132518365160679136712479934200464799185318169125153825374228526885646098561633010584060662649863024163802299567415355773680448034276862571558134104111371341658939414023993871906616659467641523429250296944410093321199317699423113546617235714726136229838535985283194625648380985010566973092044055315943716193037550871288021664731106545170993874683247351885782986138400600610210816014747274650157857844630989870818880139211442731364207379171930383659469144317572279882346270113255214684617182083189851100679875925076771433348037530140206942292733507055896947644954463308034147924240488607889684743017708605441645613787137423985604085738137630750547018784101949053011361553885311068127202088714164078769406766662025322808612647570005132219004495576533368122627491803476408602017733088083402999248449354009787259519085256276771712913353931897150419541950921400882077649602706294641603443017966832185475874720635489485976685504737518461992954703295963130264297009619195092458276983190698522066700432505049847056127841579195081305608325898572371275238318063439043624346510709412004339494969165161127921764766774649345380067104594147491886555502034518208616898069100548035435482955012386684714013492674035902360019655635558482313545823857097821240449165315354700581876904680850859814857493578783455310836260414124258935995089422813659757892884856272117794151758597460486315832837786657211424897352930018119341957408478489814430096142743670055046581964501182425905699521462916826016908661116531760388073637385102590162052244822100318561042072267817251685449690460506439940991956057292136444817296777776118218471482615052791347573438303971816305376519514575165375245553207943424919286155656972833227925953904348832139414034379422125752932050896350286332345459492833934434187671665172461983360823174187750327592256687107339680038886818743986618903075680659704111859246874341961377138211754747875125662742227450399966997762873332142050687807398491009946323712252317511845505501533381410596210802247899638599945003756908255117272033169237754211884642448642831001948263274316547812978476334001650786507683477362207469700962633424105167947733262990991710561696710461424280099381523668756957949555460311089100042394279201531390167525502706896592751355981930862749977576888396843004047515098524993148078017110417895013202281983585635242097308441135251502079033182375422165529966737712590483421584244541087563684818754417775628618692952777263539767143996330975267916220563666569065259943598242211309790873680426416392614802981822237166285921769413430801983546967009097604253013794480009190905114881772073855368973814836837426898730480474407829836620326493982996289351488762105456882673177365382892948864800712697535250209003668676965445552316702529928216849189158240723651149932245540273641292131408772428930053823734708790889312323677306541906036266072665527413242973531267614055287756625018321800574008369837048878508222679664239279477238248722795330566337545840837225381784199768736187889982951258696551171752800595042588887467420291168128825994941270687767650650854726820848007246551017673942339974682551982068648963547781362538581006499825242877885675643249997381493297761521964795364075029690508461102228171061716582885444917849136388192128419511080783256287091001958351456446678925404227214287432603820345383514376447451036478513961172051065525225134598180250207325502176673491541710709081096393133689053493115518026744058347648284953036479117310695088975289238950535944104186551961169817346202203792936986841803083306057751700578561313825927997685193915894084029281955331749038749728209809711789798560258247965767691047651265526525049683528824497858004310739249369700789509025156267295068758568897670347928174299268162528173601901868686013397429607394352699432370967104824488408354219367517541425466057525053437750916193359160272117588402239364646584069719123143552955899675241812334656454278788991194773707843136130373356363425512004282436185690924645922849648216870726721975553592603781820195756925500566320452816346174991590847105394573813545758002595079803640170785688920417171515603963012407410894728375509696859353302098833276308418847643091708409516286116975256131327703161706979461201774570526202977320565150557803079780930897014368023332201505109669528587773160987154194178150940303283105773068349622211957413544174393825675811296734632040266000626914042092161667012633817910271967592930251743565543902635772314764071254432868349011642168623591098927480477600067491003207714734177430218353280158609915624846543901408763424480701101010462034338166598856792194333107715963629693934942198992682208938751680354657377549718194920732271160446191038633708234439080845687492807607079853978401693585671615079030335050975326573684085047712997092419135221337730457331332583054261822206847902879397546267711358903476003464396325341434802502390176253450398166598249160190299034071037221355712699213768683829522329202955173121299737632513941447481238580409953134368233508044931033585442176553327932301927339597125842163544151304283097638708677041758894994808953538790470576194191594640264922172724961800845265217428869365440670748560855625334253175015699415658852155122676954902516009707262280658414636156953100738825633383411762598755345071322532600673135282223607602681523341748353573465117494887903898950127163076262730891518786568855269605490298085501524502875676327370494948867586454228679388609853780710136344954691230582849272254670714403655375919067238182735953176250793737867574090593734377224067245987627782024413319610226331637189895096638541990695314678746306981709066165849995518419505386658388472198584534482191998094717441436264950542669604656179189577299942113692807088786921378664345411572937460655247872609285374166173153349804924187841552324408806070807709281148706918135108363976123013261275826375412881269127298434895434946088425091617832701154638201783689928459441769439012767607365931604306423486876296200206223502144954963732528697436820327328796644269832655210702406408932692683914562184488557279448810681485650429341200381242087858142407299243995968962287083234990709118628339989773430838801206239763756646163615223107454000904932547850662850661430721120662990571498301206232882498396643501122532429707067071356470109112950567179903942413354030322991895842930365139269677457662783364491286724070433154588987528516426661838857300954986355513012426064170242269443439768675443222824520220238254543632805282522347136394858560630007809613693028381210095869211341691695364255356270256742333685390424710446601166722288562095633973818053198285429343203466913501024644750323202774846910422567312340141001861211751569858900698949822146795980292539079400265175930937381275414998976804237908475026884188162475041969756167319688894218862511291729237817966038491451460401130717884277092566121593874837914593839935819439781586771474138506949015382392986120575309753989398204351377571167528939653373939924281428321330941266345375743420410953365244843607335447203742039247014041062570487369673567308627272666881993012310055091812208884712061897559858089363482596730473414282050694873392218736083191235583904667409220823092988091859034349342636347075299108507976069704111786617611802358078702475846226694717872685782234212624503181526828681487606078643452082664639675224886268562357869074278440338116287517887318432597339849526272711643103223251046581253468443831810787826014614402126686191690046332059487950227497964307870340098804602981538302591939922205379325148848470337131598725520089215434825496109452234943481615731194291620005410029793373874034904447361947063674525806935237338597895987918682615011454279457981152157360113301580039799147294757850773136383787797715559664727488265690308201223690400677323081604394092624821151691773105088612003549227134098714314182107930897166617293151259756559139133744917906187869962658806385751452494386360025286008519462468386467372024347021452815885572265070910962102475002633827648141663697668951620795060247868208943192816753737215128134003865053682905636781613805559507820551739260161307962993992435646039626370787628440989761358407174756233386053352943515972068471450702869735353914768224299250840484291620354974634791211180313636733980017111074886948643540738556101717967433970386620739820028572985292000149673449111746824831659776401803813358752602500106499346938321940121262363500263315313040760638477857382540040820439735689545680934165881741316246017526716797298317229949301168328232134914635533887568883175795186743140733695180664831861736937765985258102191339945116340099511513294519799792598487117416226751903478613239955561880086907459430411159377642855358868191101794292951339597405068457417131832314679868022973206271718749941624123861992313626742416730308411064155113528144297112360631149540417563672204034153041001907975014018284126201901649608274741180641409263123521247530287358094130630922149112511681019630449361946005992271195904253453816568194325916825396191287349078794154785156289924907522493237998671450900996998497709050871125746801592923607178919780142173291919808268829288628337394532368807930116428572684833401317058418690997126101666006743707412132426489583775580363042914081644292886814426343433817318100684933062476392170697220161535911292833256146536737464745422933016882783261831981014985590520299898737547183559640681073657068025651415220667769131975300232073258240835468170377086812864253411808367003806576473521131044811984780179097550520138604160728326029439196950893090682642509173723222382201353854220000713704570226468597370321272780094956651460804305977554306957238588174838663883237661689045397781394997604504476984041021703097091003504387108604274282904083144104402800659425610869643853268441351390473387609085971063047529164080827081176487128328860482458025457030146014662722181566909428417475670666201936067062954601211894927106107504618747326681433741150709711467094974440258466769188942840274374139719492793828856994234608916925131615572567743634486873732467610781497185792308644578635821206653047402290345095221335388870915634075018037075903163662201863149544928101646898499649571117742554845437135021168333771021580635528874719270024872312990554620794086195834970116898119882906133074303920389947490614080743578727984971646906880071549716303724212152212998769376292101243714243864963327497689800286587203361484339417315415788849796164679124099840720499778262195709461915727853413856880660014754188181651643169076435806206905877365858999335210883530843620063878889139218862584408133493055023369684478144746522369055670211325847624270507160538544233206860160424010201828648848651682382896065861194166910379347362729335438489213257218861690833043576093802958460704501750041145103214149656417472771394802517842083285423549497964194869420830075528150673016210731633021917326913560319537831576165262511703574037380099145571143492346956728163903505000013590253373616988795765180676171219929997084167283209007056585816111674937761055879960998792610964555374027977893906713266876408872939156615641177382266962861226792556962300223009381635719153467005228578954767523609338268119534321325894268530882819675334456309302376538967106414009156424118638689057657740614425597865187883183283430292516117901136374789441387737296182509718401724003855814521258183722747205186200111406308269340095489712078644628168468065318232827204351731385987784173882310393033924221144928665130017930375914783492709257104050839758167373800162578351839825835830806073547775421513746914710908338421182171635008953355706515444884321466951412255370204598624489587810564272281096030774755181087405704699368246271204141281447301690710182393033717746028619677885746414290822768268422592849286054592946776643450377423616214088113420102666591315212332349335206404768744232865030093299796385241649329684269042036829965182681536554046995223100390204516874514587216435870248875742671566010832624238546802906381402173186443873822931835416574718453859596570233978742925414257198272845325065631960751542519406949255901290370088332475844149956468183749737317728397947974296465835683127125844270892672830245250186526579593531347863164506115437490221558664271324525930741813424389815578948360675903978848572642427553303634321541066676910388146569828527809413295422642857446413742665883886053664199334187658651370937402388007402409827440373639979197789294478890113775388729181029531467398583864420511180838875825118828212740151822574330876506249267992190956342485722407657025592002090870316107288331511684957729692424751615837129050473417782200152264996441148329249136693508940686300574560826310164938840624071263789858543337017974453514466078790165483948116518594224952125041627005698835701794075349663939594419674029949453453517194510145230333223602009632374401875228214626233640876446423543160967358585230125006303562788274850264135159121196517400102922218232705011245484075109047905736647102379515074153449283527261977434713228028451948237539777166177952376693863627509264386928129470606376791172325287734433837785907983692536826769390363161294205634346184159135017941181848740745233779440343028642879947162335424835647613200317134161540106572866679367954240465483663001661118965925691381250566144513968265750827271917604371198526718000239739179099437386150221005854090177737275112369153029131730726143197686873992880357873609129821823126332132619789904491972859580995424868501941456838198688863226871996616961638883409808669374544250494824279699268201986363868068811022733969074090314742985703800595965856427863765240799941492677559977446684192755962208142604440418509270902950235508136087709806676306646909475961331753733405746842216703313724100974369704009941654421242063275621768154036250274555350468956539983003674792545244302391509442466154167277975814858981015262450658742370455439219338246613075450484640840876433375845451245100221117389395644180365890866307539753523980111180209169998262359921354670334727890221030966120705261885756251377926869429182107636373089888719157688502815284480211859684227639632082805242678736181116048081583915610631241774707335403245618293598677180692568191512996709783134097374075858327703163398126711447234324536817839554460735437734663977178680993462491851686326422048186860068960161384921540615780154620637293211817027424940450946600214979024045155332696590713566104102592741653266522258738340963805229815204197491448458776514838118829202135682776224892816490289109978686019837990040205149768973189446656469347599300460191407838377270176346331113243326094287994034733900235066025846976980746534789346356573509956607848731359044995770724169295038769379810594883653951071148170887357428684760807051183029996838829557931590075281307712103191124756581753183262254544250633937458965873142437614554154821417463637493899285844389512496256743214513348739495072866733790710131864826286632681240025766482959706036997257014600176465064657895478234885126023415778881836504821520839002740230839416664240014301392393822811596655947316130752565874727978585083303414121746194744979308645570767153398669549378281343354735482636892437319312902832366088440030665086384396781895253041652979732008286658190659947035798431338352343519379528755060459949146296922028025905300162961619975207087035013377561894644081550237674910290919875290281409957848710887520075738920277577853583259098591988562249542653844667917818825737901971963862294115726402189986756464120044261971899227687700824337637673010360183254094889527661726159765836347882255539949359335241907418539185963881601227973737367137272717241284788197668223111129703529121534586743601654840779320776009006270995238669329831389898541065711370800791469266642436317388966906323006805413226148978639836880033963423934948626926933221915514051152788393003129236013293894044945538390174932339765981877251076835328447971317969776574454706174692149847240221072820251095915474942360187802772940714924431355423490448473482879520013868560506036260259396267052468817900953158363610686997088231920936443883907117436983850657787692099253939639556640403516037019557816688081590383808944557400620760924752146209878445796775578089072029026571462960556476602190050809847616783905405112355663979988871319326788645305081681966467973209594115125804417945161913362375607036330493146445832153006618714497815895332843983251780270914922406097238568925846322107889666211818431197031552481526149926525766952393017736471989654483636683040329181206950401069868931926796738399478799324883886749756566447807267262014573045327723221997332140434346213195665304188422570168064814570308350353909018923860051647775987736185359704812298613839571294279205962801466268472185821985055129163064439576949159250348043055689923456745012922040517752607599542226304476105174909223072883533496859054439458584537816408551064109317534296483403897805972509306656668255782525308298824858666446355571834068023036246713889741264663405871430829570803590309126663462861305388891591548406311394297663181875231032093533163149059802224473605787389889256616791492303558787129707243324397613103673285925422849805660242153203711922172350744218196563932487266899748240565278995623092062356291775939967260002746553221819413785893617587093069661493048831577001984195144331358734898559353626518733442016988059168189877627695815849841285532028306063848018271792458536438661771587786368291448401943616159151293549224185105319028410765349309903835647263520745078696569947714997843278886139256713613686812174078947358282437232689851488626749197315982788206127462721696424000998765351993370841619001593287943556813217937494890556530221976274136843508160415940864532786481939425315364736590886813345137858547583750864720630910685797021973440277359374554163791390826260313813070368438589191759978042148434903426483315427826811702614453353594974374196666360815633795878438237604024645551573894812128263301028001883724306977203506324714935927129236288597349007508850597715698052366585031553324305047937040494007188646073812817900117193948467719176292043047672101394098642795500706092045057396944993012417763078770411018611965119267340765220859038665718851144044307464204242821244393465586275216694651047766516255706499352491892788522000075235582885731495748161855763613281188551127937360998659799667900271096669386512722873795137395738960018147749805178763773929653788035232733043682624430137861513362999663749418527269933541286288277161715716030061305797901479855345517069855718437037959090973513617266109080976390458934019939448176701707858928528032581998870344603335774193975983901426140569027979378552569959140307226723306259619484567655179174978468028403931207447753910522259507003687708410446074328098600061871099378951622039201714969383007334267458213622847367416711728573016923285647264570615898430822992372032072328856392627209610112172019005201104199432676721642151131707031992355837870419948970614025208413297197544170923614103693922871483124858787022343259774858903303572501018788671645613079698562704463020942086951166345996114938379724622896962201826557740990812334363737729045779373795532463328225486449457170625718611733160292505424860618207302794027125551827828939531825034130295399098565215571011130497024116050809012512802292433718435758730361334700530865788089600448170752820433252871040765437421249451349276363874138041306825314823842052244389972181998448036181412914039140760038462446483165604465450867973079860080488705837483522194633817864907953444033707204325984212078111749733960441382653918760376423978497796446219258813036885299914621975859317559526161915488623850209057233713392650419670154702066346134161347090320775243502195715854914753952362646298925999779826484653951335317096692630321288584133460440083791730115030636692491248863683785821453687585245956470250019714770567574227408037215682060456281120249828935702261548756793719159498834360398677627014432584450164478037888751684593972437329169785120990791528973341015712098807174958219256211171717317365128322342501821689234255162111878844961042146725321933467657614607493137573141409343646874798486076904554669935998521723334925744737919278212773160270377670077328544544122925101330895469549843839963400381581494454002606485946912840066709079203642226832630494737883498901122487870389968254798779118611881394527480474808726160813888226309649394777860187420770665143282513137715749716234424546426493461758744602703173638436574251981100450550432753425319661824773220302061514213022382644336201367471629815084808656901050462889333892363397542330397696048317520869699952052811192017176386697072982144412853240863402338850311000715303764540929051914794468548674696888436036944937735180971628511943091689612220299055912230678934712774693955284871034396927171141624472347284475220798634813542239793628191017999555629325681966249716667657509179819775656641199226177060933377976320377820159072257708433985376526807692014615211779077391581340588060370809804468370932381015558524831815342506987302795307372624984726911253477103509398484979675065708387344211475263109233979790188932203665099448050852201369728564372917921832853172865382520125416261955106530391822271679104631372654951138174936722921979922236816514273471473770021987934752847752645169238461483973608786765038654391970097644958090714631666289113841881015747717468231506430707211281618360238905053276460818909387436884556712766501292108731793731992316458910901000899635430170937758882097310249506012842634793241387945981578189203948911692930495159257902186248526459391187477592097985477752843752021730608167955709027516428040764176524426881199443901806949443198399796138195153483879131124848462159174600142934544463889653385748970332168359053257752357348113281048663700022701859980996807075259453410230989879534462736672367128874974896664765427279897432607696065295075174016220712815654488868495453419081307968825797542947084528122155994967811253169897071852168608198228757151028131499111949449270479518812323252299237075648008682061266308461169148898630513086134101603641179568229330050222262928469175440827180800137819061593063073939995061652105941337674370194467065657422153853283221676535865899586751218152535872210076247381933799937966382372143405364173720655396129035064033823694180691753009801918934728109252689337849955021357558740561100678911395364957382336606475732195623344621386807531732427523273607731202740491003344821425627693981517843125553797007740477640058375088175671719349611181237954158318114252798162699707435136989251205543226130801717095184409930248149470295752111026769783230453019574736062815831112273445315006838149585660163360476526976151390690382249683270216066661160291354979547566334937271743580119943582352556272376927453066549357545651119095343091646956853257917411561014710893325980843566561962876746016096476021212506810023705738806639167792595929804745852518293896695665379006036183578063357936158077568044766452899958579008588763733818471540652747353916303491396304690999357766977472934400028810298714321249931131053681508083080111311878800820424253585895456683126427128283347769763832794579186569212452354341030433540871318018214887890173372051136586818113781472622800943348186049746490528358782033480395253727283749969069341175569009599600525213486135965564443944538191965280187029590395731852232490378605862278663319456050542020056517760578642984755288414127950120551177951550545711874435619035514393293639154597765924896995296060681106312259998790565423517126888423442887719834059817069071936646892452001586437053968972021881127423455391031228964353308982366925349854617941204113456804000052489664241644337365135658247556513956895335109025423894390177550210655228842721177850625405624127847733004467686129886943287327861416834610831734342471161069360701005101313405894657469639452072560476624627476230802873670762183917338547592837472731523565894712043758682077154837434639308456666329591824951128443723238147741782691517919417408914923869647785719554597804003157817628325535304397708684471547003551531964268741748834588446606904635680657720375496975858249056909190177031874415795576966866816215371903461152030680182032671416330959905785611886892677697342022900957186916451177329363306005926857111806527499225780518332450900626533260980746208593434566064393965554048443919437829080507030455758138346740486511257978974767496637212538354339437012910382544342403990991437103119931225882616996288425641865248187551981328141403920727428376228458641169649979051295997605048112506269453584607685971599203843503277788475111783151290509047993351988172539217677172671876873457638212659402475318913833737584686125538458668883864168642486854877817854284671287026517217331809815662554445108113570058527928369441988956121977883914372741174745630371788763382564241142824648690024976789141509395514393872246774764277523706964469440164221416612572810786481637137398033297639538311924180681355653692982249774461897214706172348179539099841542260863831496331469831521780032921733990449152160557781679823109538399862986055724495041553997050154643134614373766872823360194439757079385389862906989890981844287654370977308036442122202487488025022380722213756604448009767092313306176429360638065981229196108292237021927636992414936867287773141208821267213876250977692712718389879166684672390017994561409659037633824622535533940094169152237094910713725113633874658410522990443126409638208575236748019932104657830879089272935220162088623499785081725607621704117368268024621607489404692606488517331411313051750701321084246561838254547498498965276213353999937806041654812412748026612386241037868857970548368541141887917050892934841200140236171190241133663619297072893470925551344686730352468917390924249944168493393595234176933709977865799162784402776555310549825832768796395072819537666102530925226968178140930617096079624276933085319685111502943991324418670731555458160542347781400687342092782151614613725925043692391309524160336015801047784702335638258080051163180027174227827916506910908417404016069897879961908565053533998992878513849414136378176611197437820412249126874432961467815110049627550633450645884559472196413226366752596432647960155076197718723882694727590419505459609813917300423996497088170680215330274589054596917409062344407370454601821509922157538664078267638943666780304974074555446325632936439234847818494067672234734304727753992042158167401269171597270761537286239973215081513540238769907138291145794366052908426189590026782180321473118108481045763990615720330087617735432526802822794946373361048449498916673185479951083371050388555297197350955803111050362594062471123985716335778942069623374419696507529238156067158786306292047251889532197173738675863681281633760436366672968013267718257414014463533808562236962426706346484216079784807922509433045315060111867087477445672835017447974097168046353437579408057399208271080241018998176989912579124466727921893583938478740902692355004534821846071345812924472010603575285666595306331017016010808314038059802661680051018571689284455834096598936704705713695699201525050399225892331422346531762732126158572552545802793097089149033415599970923497997414169932715901780065246232745602770403498648530636077426141960660029437711414585878021463060822390672262757771291543681362315349147206063366280347096390165828662418197769419593200769387406008082956677762323126784388994569791617536516373543967298767248953508556105168868264142530138628046564400517765447097779833494758820044597484596308212000625274002326984302818814306105992071484898273758680886530289332576395341415928856763769096651361730045431041757332780998297956498132540730358547498295468583081823544281416097254531096824062340985808252076742031160055384723949833879703919701571762208463447652349559008879926809792505895343079779668809054345130565117553169332905499853884342616821495900183726987242644938965129919540569367338400749444842261888770480100670095697330064325003209376526911734363591621482052909026371226812179385303275240874606188898973851209497455679651891585470300648076278362735387628584332449062198519228239551755832185782827566722609390894798203835267874144354937123700614470013067250273959566047393283120134628339500794673415918137810728216715571211772362313856106598616135773266092904465780169648061536343200490290028459570933007957870873539071820810086918261393898968057304678369693473283338985663398354496066061569758870062423387820097886875421524897467743845705276775608153646765339537254752158303562319582739242528060728473409970361165904767555636526367711030827893993216712678389724946086283255926673323899195614468558903552762058340214614305239814335262904521398250973793531891359012089819363187966650555674086715068616883471320946662209312726833258244114363706481495159008416519739294498509821518742620486308745581940939219235556555436721145670488336637565001405670195120746197396655834985051443121459015716581716905799759579453742209770594473316510396516852427061280087965564943925860134254279005297167935938823141427046016050606760883486082366698740374893567286268440072450835084867396960964086468504760494922584354196735283394635506472985354453981678530995297919973729212579270917036837197534217176215634671352766427320340847633935938926508745280969228966150226625630194161470558774698139861712558690438456648159592415527411353886434097327170964204824411324226874467478900645719701264316008305119967004975849294266784831701495671728544831910018965917092479794455076538224190816951699296946951592434079324080632111377097816466362702063531038386703369053644069248970461473369517234383062953585941818745293294459775157762165493287974548446875131406034452491817870521733694699888268712195904245059539650286327749471662029390663398668250514259019266792062374091632191261537117980196214395273752280130901637291518911189460800481577728858396504433943452910950706347475630400168662573544426418103053500747394361697777867550126676223812677366936368738000819183139452725906344956573496042483919020609025714000567195164098265137002559509763561388816521714163893824162085126720882256823210263976037567032401475082412544115471879845233655636199724024901532875433853403887944419752920956756436996781760839185347348993054565397616184166391306751167448843399285815488789629298545906785154637679590678638420727764831536494835007609634689125971506927416672776161620541427411192096625679973733995483919031527976357605563858149778498382066243771020666637612390765747532017860099971067483420056292138992305443154447597906170641647241813518807555031210770077580609736118641831224215453221005560322984371880932336193521726840292041533280075433542253149652463675304046035004228101674351587845188457929460091713548490984813090993875558867018034635147786353014326344855469451222223585237409720610741540823850804303528492964647518169077137103958563154666721834563394041905003145522063783297587874665341478795227667818133703415134772160802112975973676760185513594219098984375701563488894012558626601003994315310604700746312051580473532055991425777861475153028467835346205707790513769775283176882319660340057448376965810447017049536673676212224236704471247341517357833933279029032197567620808034073912215388970840498432388450379018290336738446209435580520270542392444759903373894946007220485236039353109704472820912345280907637546539034511328717578661682930540026261232040257762840575707066204916753799533178283434139466838410623765052504404688909145365495325653580815749098454877017324058995779885114072476462376437758649157572503434626895695360701072027034247685933161149556110815432690009828391372568082089339964174647058528976846255632169635323545213859581185820010882016223497500090062698110651362248500657427348679784829176733168217199398373138363503602091175602245343855308575944402016982246275518433995398115096113992117508959198133554476780405644615936546069455333567298050440511088933813681413818313726371932172674706185229606915704259988914686738300917291759535126094821250199599086084134315168519962098187333178595329155662308811673554586003803579970399360127503112187888325361703092997855547456380122594827851811963482182047387038758456064506479468753184271312482461807757842016025380803814681767900625070925817770229695352374860241167226875915797394958585959690741971664033570714227499515702619526893709860907329940217145329913935263122845556125949322044470794620263247273290887820226767108583291510833452612388043774115739165212775386022523216073989833919998858999031430275152351775328486642470378020921777492826137262332009223692161774624039912521004371226663083872103168888357418717979333747538963964368177862828401582749066914820614076962596673721387430822096128235973877172545375368465274258926465376303909543697771186976421293917852734501116499125964878029086526239689658481786951382251038092285213438165939709262794365944436634959983227806284007590944936494250481852017287475248633982030304256465950732462401754623567526304169711507920738871019045896632699727607853705621468154868799974302188792723387535331620040543741722391749138739836512229720462835923734611269524278138815366171089564261461033861754310834338957848381768910696281308912828641652964261917125933674276156317021718709243561706853545861142444478092994830172309149221482410273891318203035548464256324992103875793936346136944771058534559949341682287452993578415215032844230993646083810234446173024738015984739641962108767088454764864262961448907167550180824318994047208275083654189111086095762132989507312124453204853829557443671236427328760900447718564044305949991324467202933519448844940892382869169478704667259766211034657971819751123965814934363189131758613963403279853734773351361888080270103335258521070825002338801056336678552294023775012967310121205071422767590265558513283868308971115765941943683129265657750159038232790732851134144606096118507390566523492872308183935177450859354685859819304052799056897936848579088151612172521442202379176242866604539386363715220547465109445244427837157728079501477496432120519809241156248765649921946571445236658206062058512414698298313572663980736801405890554823499714713811786374689017650272084775795130747001205077193274822647981801846791904681094623126272011763172481934889066202168563445673278141117465122554686044284029300954942273466638920233284362507432312365091253562366862970335172013957510273062991366083784483396750968037742181724014507074015631844690489423630481147213810302310533119920632364762231499862284228251005794577019999944006112470944158563501456624470418835711069785895016826355970590029345949740412542310359791000364913689857719995172420336341326284200327876902208798467575363845871561548639632088534393276005232138971310763048641385129735945364477995686791174871676354842375015572824431391304997970050104038522448420750399169881562524978628797721267283369487547647561062686139149355198196868980359090624297995934516065269011205714495138403016146746445413004636075086196826042652917931219860323283480567157509861595491357945346555900552103032533935738012045632851254801091734682987359720987367363732733486518608570940841663811806535640719379983555071677430082762512762757836328493920619923909733092088643002176449234906435260837285020105032346670561863015949689767001743185540098438138214068709754280591887278477323838079725416007922031400760636901884011927866642269632724452820558446088297710499996482187030966708166209700066404712540097330404213456857953633464908607873832796825311204097018143587160261282032188842647203701253967932513599673292616546666380175179634908351515205457597089408147315292364708873671965807665770026971756281896902283278077035616913076203563460786941533448621265370382831940065570780686376443149914358002260059102799434333191038533880973481408514884775495083669441544747110479704295717767365851767877701743937372298208836778785431993389096358460737820420447304578994893129137773111339046355912493635395460000796811197266642800089706468595579612761954965217116102300646729828151677303523131146323967050663424454795809777011993429723541057202744264122626559722773012496079756509562097574801067157002186707980681519148384373356989426394792901187641099526334727579410696349921137153473854754055838126455821491656511968104043919634594181849749520442881121667796177101464063720793398318463643722562748103723363408820314908994893220647644200236906957654273428074589420588053552221202126445157439728754994051225149434249059855525203597675808465265085720069226229373230346257383620982718463020409369374406312324502662503955298178826394843872013656229366219413870138631094855008446577155921623731481058051462247703617880599477893171590821809312901940518387073349957194218116642077200774329697109666601188284211005683150334114298107963873216923305763923600064762010444364015836111835763735471845169736455235567368063404305388131658355335980706350602279339642600009542678956250647623405641059335258841781949004877009548475799828560898289588622791197996008021301095788119505301900256361121788360327510109670610588921142026549592589412936676980182923770280352990660839174852901714686614289347985315687829590046687223289479899378001739275793120956847158007995139280921451686547581736910889064230964907871534867460716985072869414498020160925809180762524313591941398533426948812048715231860915618305680456875175507184507514838045409581474070606470653260331329278924405311821749747891330063590187921255844660050206898188215970837187603340870273296811012147698630996384036321564408082491788183467015379295012804107321076171458457200358425854485779506009185660830138425544733510092380316811023894703946312859242128126325508751605142265931633682196159146791417017131236368143389693531780869652519386858042386267228242828306183958352622302088009660136517127351896762991491910090643455686371627271971634553878213853577784529899151698896826410508631982770829044743849464093172221501574644374721372130997821252766724227113191965760818890737087844417977560339049121255718407702115245973007481440735739972115146178296246756617685185666576906053865215996567641204663214821138015805908265074486625052917387596613935216616125157411734020753222322974714121469323372717598797904256709248965066258452651842791326149616402485280414085816488216762457608278369184291511172449942626319944769605164951466132568635849769123889700000415343414878067140691836497665210663213890550429277148243108206057388173647933197209434219606645680988999164549882438445814129007076978274262045151402264436550150359225877252737063829485659810342353749519537531951831298651417315786800302907739027927392738522432611410507930675042393966136980089852562646517378264973411565436187043956550647343703302563384942775561236989457230327869315162553862338309432368417928386880216574443547203290655147379306658456820294602739755081812093968529230632603592436600798277151720456408056472388443111886272586575755148005330670747366741334810030478792033123924596489551196726181015201454056613571568501382481602719957997476963284381694411690521625312954926154065065581118827013531247485141870004688694625655232989843117767781989663850089556619690107870601158900141598046393274125497995066809537836050660256940601851854288386294728483060563319347129426342694446633022227649362305594169713866671431741999009262692297609771240952709990177502469465559234334889837404629331118769942069728834648681429378823111309605856025807627971775595767763711256424139074707287688424918584826418107561022409180521145629341389506831557139926383580855242866950829830638289492452307522153334986322604873044869342215561844948046906493729701183156689815289356426820915055627196421555904869601660956527873225090201180632840501617542005304371194279778783516895549003434988281390457730222154564311960559711512872966240959227892712582372312752322159919760685044216491522782735488390016250174964121581146541390519058667295426798170698051381638624578473273119555674732837903915019239354857252062529883264231777862360445478203840233073000563213013452925773675611716978067459778346167390848718958175995146368404873957874081760900092394060765212607747454310037034303604113152290937319055777840037466632606028197513720810482090449213603011265059730515573066295850799108098608590414665481459630274477467061775475050078444837735777188470707054246538998960585778139357624574955939758817616719511162872237028784320732640499997972323766519769890363639225593417479654738624022662880473819195390487220241660541387504518885890998390085815474373722609256072897410013880835968859787287171012973850062438127829474276032824803188203334296978658721136374567259604275455900318237666430577358191157272854000830841685417135329768378504685700191020699118838089030052335047450047385796949764841472317663776604438654666120476670817805998756659034444281606782255728472242931972367338751352005716375724903269564002579107806196744973901155291148413453157906625883377366280012939799264185451514158122945056374616144829860252965150900359396590924066556229820477180768972951086522321512426364812110064839233460451135349845089684130928224924820517719773985772037606575201923752026409494836233605678123616654919223677788578070479513013612648982603270453938677960437112756966450698167845478859825301041878342712067007963675537435973667157778860895004473200759101402876129726610331137866485149155622121274763733062446187802318373353336940119494776850206198474402259520628577413517904214814367208876251080853691780652775200837207463828111215890426430843986453291584647112787157861144092643204383311023383735618531707172426400246965444408234864795726123299434396605896758565157053399129278694771716363284044479234554962923670512301098642454788372636503303829974961604405524785791746579327614675748826648838612134780361963233791217044598377088107186876452426935102048905552476687848827278733352239906345037179966012347176705483946559303746220386022177862571024573532027892498262679809419729966143137077250759315751771054791372856527893288490562739065046977496583373930596543689049439030428919870387377106717024178398809586236173787169017132091000213355502368985706402205865368602477369513407396477853577526774198369629409277860308988625948872403981441371677493524613624481119715576635086590869493388729134297047953328669449109675051613149213919077430861955480317762419955767985279282478001810210930537081789268123503848780131104660633170589087475516241793351814750231490841031059831788981223730055033207035950327458928195334931970339647739790023505367426197789566570722890206062220913480034248309538808246126976035468508074834099333229194537517738421856896602204841426374506967260255329593560630213041818858743382067921583665706228682367732047514668206214443418576481479466750738764791903910069158873187078616060568059348107336335414574668969479190933032417386027649034933873699610309331198425253032392971867810909099937637820776748109208151466948427705039248056434894575642172515049812429904622508780768274922410925713113761560909724119848128264814953519895060196032343298261067816763976302255921712597385563994430817147592002436933152632368853107386566598541380540148715275267302322184971454212512888103837949139035955530820632110393272167841003626029089964559975099195818485770580279250496098180940268522457812819158210014330264548615805166287449504263434500221518976619022391106831050469747446790110890138336194489659402449127183179094793982481420957519770655107963830388027914714478536561666695063537959149906180492479405917408281216819427132125115214965992459927327204796871435040248332693553693758992135596950344220166288814320853590205553174505624487549643217076104731820793984652485431636895320055149953518544829184796130945211415169086012148583053035075534496648148384997421460247260444665061465448490223910260931665467852838203379347463640990481968047813568005655940615872190922536964203703174435311974263129559813539568071086705553610001795383079302995332491293513801434150465796976403920761335275354362120709636110526187030318663418396446612243227421695283258716267194428266427141336941755358238042068066421764689920308997028830887186062689717348006340863380990150883607243878155715977289130946788098296570723348357840014600790433125859369013133747798395077325471241000461546093562898460289189776078723069637012514223289650892937698162493165710425317941984893851509333867395358767031812975573995168916700973395078053558307513772421334710055015855887018568971747593109191652988895659754002215247013845598106710648369897509814862550062628678073014102225303822737659834566980513099009320748334288845152979546785074844408808765051403838505063209305314372253141834436170062623913616823560540068482895527517320936606608440257317267530350645674333357312251612467083319568809065899870393451871610048394686137382232573304942488007588896171459685716554497020321143565418889489948066455973003955316567638718290182080385005715589719512471713717891531733979775086411353455698791732360930639900828897402145152407982401219711042269797723666446446737648720601094273508967310783022940309433955127257515013855458544748865149024258032481238045286147334640704266763502416495129324066655863557964172519822767282958174908188938516684383687166533437596979411296406397292941348050338817452294435738005757472490519283360178053465731041379035424316043923952608892908724924820705083932887835727324916241287300277179787785175117404697391218707232166717191126398109853857288149516078838936257811264748768869782774346040185807412290630589829437327119920975920274470577753190997963000258974588554078273497389065999679362730119393272414720307433507958377924540664530851217075043825327971917706011239773946643995420526911316404916876893720532793190905355046473580305691569674823850516266044003973130821038395384923795785591054232963175687386764308738678676810432685426795451989953960712205451803120209138269556985242551133604444710084092314350384869922426154718020675526981798081666246462030117575580859420559009451249587709645464956666209282989671171548902775494839066431862653047280819834098153571964064142281677319448781349208595055592786526606605434808633874817448882126379971356649370291592411814936079459861199868792030730825004428940738199897283428437129187759010096878106842924075784950279142543879642087670405370268315355457755263032137315374128233788461214599054666661393534261433580080427960698687149319726985253591964153739198482085672450113637119408847807140816506939379141826925704946359865400124366681568532293983394475832101414001192123712545023899566755871165723717478389046350441939842616873742573993256216802579849712658591091328228525683327311666707487327428143036440114226316960153627847850913014065044763428220185788856175540317881968068699771648615683188411674614701791432320546278252720647726603297272708029489032185150846619412180481345280968479547615708858361922424433186269592352252106000326248953075104096704925536224626773386640868011026866671187804078864858926106013357199587833168509817457825047811236074230664835867074650876877159482388988783084472304653964453439228460587328083586938390546902056043659874750634446101982520554552954091375752128811505820027657193195814570195512484880377357925621970199180442407407903813129099632978546562590704931579286543418630685034277717409090019827111353153003163183471984030161583571260554259333631127608179903047907693469193975504962636152387639187860179536163512788170148657203447492038275471306620354041671465748501756759808473789184982836704526030866202200736007255019826170486255107874722197356424488546615604997424751816384199296759911299152342195229132115614112149936969620242520439083245820432860147218961406636782359810934329829258877471981743408882577493820248791499176659634224746686845026305600040247586272004396156109277351322831970528874279619055179223362513863997649550843603255202295122886349695254167322509559248344841444255969340146194863294216734613025278043099662858632016072917488029619355256408695780211652672872734431196746550590227620353046972800193865737188132515226642013345695831512512171475755473501336024750587303845699198016298555299533638772027029770299045314160480391379940747784157681777927593488809422809739148799358493248685328973320362896830888508792241032060950580381124487401357193524586332560674230283026236397450063096601573968658941779472688362207273515773070694126758482097087103595415726111660672916616873804821939174895155722932413106674907932634361711869118860593783287679803365118426284993678735910086393588884239441965661068106652584811205740795163740905575134614609056382930533833076045239371190786163590751120371781011690529331188439060473918944186040495153270971194611555198385827239747563126297509751280171538273162428933333808894703777949034944059605508011094559716960192640238783553177862358419342478323333643099683468274233920044955370896010577768876663431321373030130466124855990294923894907809241667501844774314823620402814278968963382982411990030284427463470018817243433217422485277708487044739348655387156521558123375655200261977060879649043200806440150590276902583074175738082074315628934356161106557918310240932430176740990839923416920927550660658930139360471731051320959073146738354888427351503765532493862963415296870297051667450845070504085117312175383036634670972009559797749552515454489358830750831922773747143045613775045813522602870613668707555562708023420676483961687440643072830927115784562362936569414259602812612178364215444773130693776223182045751643123998893606828683843906407422938570804526479681098441969998724415363986684590216232513565164899887277367321813725265962403327885103544297712121225722421191184411876862772505687574251943828482433642985887018855151714883466562324778145625193156098354049841531282373503332592363116972560642465369663592140684829975346999679105958318640517836961908148234133889989589317086036808632040902433774419399897689618988147922142282169265833533992739584497172009147827006998165285186086118273887855341315047736041983401827021919793958984719417927667934054320499735325295633545486035372263980065624801791947346526996556347173302631697777889994962698524402354970574835158278002476580892402271460577509396406542832700188329491520783632824517570122292680690631777968690181680014143695016975797226788682243929765089015711002196034850162885251161916288256400553228827473627445468575788765502229024333610620609807329155719284547116440312948604623369333223365147572412369033262983397775092311169005167633141307805402594969780337588136054620575311188790611087084451061958011850721012978588928589399485589623605542794717115918378062903507724589021851475383814470645218908355780515010400775351609481531154920786804908892142908096641716899176109638251263052816766453282345172962899962722530429035236165262551245096657422600471755088291450244980977430532589284787326190856102818677525290664732661537258903601821921056329832182708163084749141206911645830769469841310071307012427175318356315118959224568767690509455805839309725374975837209847007629154582221298758637590788690568147689229800146790084680737380891625033746738129110237342098510017123970878047617456279958292853169326131190844880974445256035070572076459958128306649804241529831610398290861918278890643737053175087750743602864617920027474531762233585075944605477126824055496122166660387860293096276224903700646152390818073302898377892086273849114905842501358123240645710781539811192187109548675289353729001626710469432347633090327323188102701568527695965039744114887732162377946776683204018899280497290462439004100610990839546817680238324930591713302432735281940224534156793822754853338196025295558245596806737861476440165727652633230567613698180423971749942700828418811645660754350528748271484345537550411719288778272190482398682724602216286116932110066326199862844987217279608055273831226593792283436269909933661231799172106897963348059506026988596203459576894167577261135106163971850725815352851721903813733502398047111807331993506047941464066634658178872827920400122587256833297614262221919337597794178588291047345194026753575485979535983897906678540977203159405159341893058870454426931471057618467403438690877917438944056690153235164921354864065582194764325867921296352081658558028122204531424918523460145257057965261921821856290090058739921401990313134913692372974907113732201949961105664652812375352065221655413697759626373200061350125361603993190968546454863449844264406689222130253091403719116240414204256984020144037067852877580051818917785528639552113817096115035224364337102149704354175854404123921664077921373284037594928739758770782424663177979385034002324598211103078128816175269532000618338630606565068730061836921558032290034221727639923823001228296425200442263423403573874153645982501151948790189067516160686893779521685326894922909878526507676006727604063338843505453286766508136860645194465267459569920203855303516401033648774808372886627879399255702757398076153193852184305208675259477496228892618078033787342899012156115398121765786128594534871049167869148314065952417872163402910629038670445196919662263059527270521771477933589901736582882386351669260145651870657713255304986982407199461738316287941474587549050472648157492920020204889890627991808124430328977771994133667045166802010144572129846462990449738004697296960518180806778171966698080827167644742436216640088344784185714325595710206391133809436013405611929172147436038057979706415186271924664057084641306920236900805969372395978676190147913158896508995826493025095694328160377297232643434035416630225239322477546512009680234456290743442493409511762926724423580341652204758015705074482768631603425878156211566247552863577480795176520365921959743674773125426501471460733236528321315222925877765804810287311666326030347720876580129794035725126215723237664712551021408037031657681897882920677770121692955911467424899426544513924261647505445651638695140058151183272017391892502329466319146722123896426029558059473268517524474492548252535190401556218593033460369028351052692832455723345722033983388532864310927971399871093011858729141412949702784278186490474181321458099895287174395785558458655176593090903231894035469236713230154941990721701375568545007724605916284060701350332426606649126487498885793260948184860109973961664855954431981778506121289019823259194504708456830117433101492882538536407047859256186369751062708166651337606680754138119092216158101930688927491461007253118956106714376729950078766693204360046099844939323500240611298011313484798549122955621863452895530312887882722770576111564527789833249620800302514441462947346150210393776781113635606301579466040742542551815997685664438060049686655406161642769484781886118016528726006669421920900509090981638150189674018724724495482969301604846292345944245673064633819806966578798253142651659872620416360866011978602176330806634577991897946677867790145276388697357445607768162760021604518356090347042871983198849251349625345265425793599254639106512372036340241629858142161214006202655972988108390953704740820492256879464234191190634187082316766066521355391301035870150040806440492397819438224650488739759747470672886593591840134761108782158866619992237809379799283639309488955473452271516767366936125624671192685252709993979503884489698239378198325556189861463447121031039381231481361818954601639504592622191678525711140512015729597864346902225050665969696160796942139345890885785288042255454820089704548747037710504486686650935658027682926106016966457177189317225964530671192924972884590176777539228614884500756992961151933251466313122765882352647287941942073287418322176005138106831140469534754637229764861164260426650351250556565134857601907504261845364768424229921742130824077606500144650513167275201807005344068315570300194635766866906256896684665437804508648517722442428137742817605484385602977852820488075491246904621464473150968419922081117154562089701432327187900285871575253987430551025747518138189105311458585235757957549045017084661596791372252433880267310431480044556184816425029376446674644363483906696097251241770321161140530435332264055397735637345429982781933196770886618912933109660456901379968858436269582875637002573680459719908021302625839633029603529366723307730452247102893704321524804847566762770511264332365512971892587824854581131318996101366861605424873890808678731658615520742034856873732546962835699168068909506110250746472677840921708061178685750688414365768452567165167383353439597927645357421329032013079652572048472114304938951940030732412771489593760091024279657316986879454996553147232874742840269222238565504876430783821719039163942653493870936915999778759154517150346789976532383443349766458617691258179345342854016944087125641373398690433012954593914616070889233476627391934089584624267348733341671347535911541015352896158260559320711314500310159376078820571514849010874653293832432467397349441707168139235285024473393870056996275594592543392186553985030222862002888381815890493616746483299039831965880695878163338928641910567692882259201131225060277353402987577045290100442401990459024705482557926113956347734032771831262285413802056224186001838515766181262607860789882541405596130095864230220808024156871657052392866047485455963152028596124831096627104904223558858233062251997676020998202638651306338831312646197499093198653052754302586360994039491636106548953930788934343231149050597857398406266392397784141202649488173231391734392957370229598020170554123894131674693121383065037233992578561007220793180660795175281175520243093466702461189813577210841443094330876042069032715995225219427005858629198007366345124664983146023273686232214794155327334583208013860165417750623458241789187911338813067989327721364845128719529191400359957829529213523374451715812455997000928369884586902248408028963836387099817676258609860319570471925067410125449833620650709939811117644690972151835022903372332328466521635419195637808302539102516698948387244084144580543213153512677349230941889041917226626475294804302452485869368647934028074645041054277813941787084067511553885289862221524980459570626158486140118327537892201510797304798341176395357984084036368779083635455874192002824526655105615957316211557218069242474911853635276731430561501822359682642677088656426518122521149299981016224655740056960369212222836256761893037213873273375427448321224041165564616409257873558835036817106301806880262692021183291795714230097535514122651313552385312748958726024770105124897802122471289157072907350936127007456466059786756903437136878229900723854801464429747454740585106253982732796615874376670697498186861307697168930781389235777036515531971857681801736074314823468413032328049087021389379425830662799090261315718721549180578175195675255667390684667948606852988842198650143681110567757420505188739682733253336568881789649500063413084004289898163981615489052881485412513193267934920366877669852620464822748336302977995275614854103759781947419363175472317365033737714908279535958733822948969311164700734808619047495714527898279895749839377801219924429820986496285640987317316068178156530734207542316625264691055846001141791042857364345789462542477867288172098515646820340340811442040446212540476110296356858315412202668856911458936961330997818868641331716747126534746609803004213504890512288566991051605662041433095616402257591829124209934646237830686043045820377587316937264369870980568320333379331890522937440705693125894848358337848058438548626930779176404588481843853467769831043565277457548111588135330323802722048649636335645410971206265728510297747173797958933598198306613611829466583733582827885267242256885316611914337979547558125017190747748627438331806939011626838236877515268199210870750413517734004930893062167039446167988007098927537168172132801564359824521971195068316529472824010964264242701286832490703108918681040466467955608544787730479482162050862995674209960931578269795719465840330670265764847952790053034733029018895249396639972927341282606830148005119926916847028463997363674644735444009559063223939010329193076134157940641495065880487353625318601633512250069241661026546489004102581526177489671199044628509634211429654620427365186135630794186878729971743087701656324271497601255457595849223483172628973286469528682974280249500734388792603711138332240485099265868527947695133192255582430921682272695467889062098950863736903091450309728608288182162509626936358446183770964223619570521295794609342762596784538672556889991111745834397996404212782289788101457765056508311191030150952059867112035289349172484718694541046824223212243944400607851631257726268231656075068960493933097363742751307373447278646409085766947704651751627642989750879285429425077024093584138907446779422633077514218616534382652687810265358879407945856376510927495164451618318242301597768082704786229578337102541810520183816869114570218226972227764516935566737312535806845331993707113476290015985436856736781566671237494753037065496733341534654859541879270740171970800018133297964447827419045115753158636410550612170306599198016337405087893280334770907785557705182060599951560711628694484916862896172875173034927957010018460443429936997273311015961281054684959434119023888555915057393604580395516226615404405336863894254324826793880494854217402118138217868070710832038241778578041021538887575974887815088105499783030054543909205532639419995010121704555274841237364730870885685504733549896694128701234124775653627044489223371538656864480548775304603373302289345665852782335305085343655163658316801860679816072870721545312665484587545652594623906235223608259210965387217678403436610815417955040066685858873171188089496159691032132493582414234737184511493777862855236450618915995383688210941981355770770858092509017376846722386112227912915334486156555286082841497383757802888232004912302728066431517529590641431279370182253545399565856294068839436339827370626134991434631231897957927759702042526691268451581916038322418544652552198221817813477712918741610140908569855494686715059162180048738087706799646713776621135355637488988150796257325897530578555068316755740894946894465812241755548781179581096953931366597682181122111397080977969560118615607104273550382961054037287712625475517554488614910605993281055377046577547805666352776044347962146051453655390079179958967751760670564037514188844305483582896419442057475806276953015143129819372622698655725472549560603436059856690474756156874670289810408295008214708313253085459441621048418105898980418332632714058178667019700524614730980426180412051817083143316092744944032416824597161399200384387525872307318930675681764220735041683719205109680371180053228674801350302914629123546161902723420015525782750832039400822760371112579590297639105611719833497605229866871561529737515278625643837100968293783116558300555166224190771426779275625441819170118816539393633129761680371288120428435541010703134815389543435489777745054939523565337781852447694114295742027180882249999536265437965068430044703122975197030623591320308813626479159804636936209171917242976248362424849072210162533986773710930966949242871169376537745949154812433724537903821287901164951856891660477460385338842852360075694310594010921435708940750143471705459747781973136566667388844989113281487511223002848844881655510289676451295406241513527828597860313164749050763861441596910651065923453953602944977437023671246768228423176208902695651704168965569852974280943527542438830603545275012026978130407058012066420196742445622419320404573498165689738298753146129551471182830872585383878631321346595490724957494606973414686525456413180589011164749335422024665921995757216445138915437552121318514456706237903945483116280255826675403298991755570783811484600177875112774066304384651283637671488568210384734692529284890959300932480244862704335635666230118089916097020168599721723996403921222804427926765272427632591995710304154267360754384964377946241868485578748298351293595533114525283643875748869189663078762952878803516145186437573135614875774452472199517227526844226682282387426716818750536055620331016470836569667623497859849251398259897671094531589505522740902883980873359777698805706613127707292463894819437045860631745384507560273217452826625849401075710901954402727463116198867075372162232796828240510808073438600755656801991448162302739251726815274249474914858742992529177879821131534953487266196480917927324627680578325018297035665545177814780326771515861447607687154339382578874005062075532363071597234478741328010942298088485228922995818430990457895359692356500355827072614065175002118931183021094979836439900545816297327690985248910170220431591145202111338828546292126423291664814271837928066243391445740299298150072602215685247692091225383948461088589762865897051905843601323328036423011055739826459377860959488329611877872008857634574301343009972228363035198041982751269886782679228127582831150646114340807708033748682025898042720936663343403377376553210135764488048294459943883328595350646346171504686460856653046237078460417212058260411613323124722471220024120667950552442579326287778719660424866744070464271798557693834032320584209470970524740876309140024161912391104439679374058618201751211145025498743421192448784307303000543858363658556209418081439407934632128462661656845288131028093772715777190551997137193409452212378577417813699659635656165478616613459364340673442440093792161318476662569411709119638048322135861560180623521661998671830677685728381167905248359488135227218509573306910217600162009519643504062410625236932492043754758926145096751828643552397513291462650069615038237106838051276023157344592250548847387258868030799922068173004117973255360978346238717854205322738313191430825004385313953077981471606648497475659116445048570492504742345028690013909878659990377859670225746029441767112796135338754892877339668676795646248665739195377825748976666553976958008930878841713773889732056163294035318177747444356054394726605916767629082087346144132723799175095272754124092131202921553398746614496388656092438496688045937831784883462892990884800844304341800323060830576653656823902305240173245091282520717965696998952497338408895643465172865853059458707578704120248645559317743321297128604737004434824074720458896489744721486311604438357550417710924176361058123147199775563767063402112642650426371038684995048960935541852792187131784049837604891902489474522511235915110037077821993816397138625365687136490193779677530476766395224741938009734974299129302545220553087508447552804568879561466807482325255701146179600919993205382835384732966845976010094637074717311758564278632874563446235422746507824344457995683334339256454750195595256923327895751075477831503710767737554387241248070672288167018375511589824428613376310835790436045300502584655867917584106701486816369786717178811291711982686049440297927947038908545602854256553902277518177640221627100842414656582733519657823152287163534305265646401832712209449583116359106558085413065001350408878301671243004401172146055030297465968356985636794724825556698047857239088452345012949850293851931803137596932123389780378898032992724801380510503697207597823529755431726371799376607508543770696431813347774452700495577456245457762377758680815397849159301579186009680552030360319506600964422577573965290836338425930356113506129620047168093655751124886010525622604019925968180907131191318639911241270560908398082105231150333725793315914450831131359383816620768479023509079327334963414457733522555087211283386607512723541877537095377857884490979139980272984373164021547790166744784812805403148303621839039777287548945994339974781522104985555626855768574410497767712089509998690094093344052247907798140328798238449656763023951184310587847479292523172996170100619394357339113665447928884697324985312901458292818221888535316991211989041966458814441701678326514181500838987430870715566976486899283339661699940988741432392518614186920777789801536691391257914007893798638599691498863702158505454780918956904161333931052995766054554426681154344371970170689835758562462357070165664136283135523404065887726687471981755024836648907952795973869657914140642049230147720628295120440598895498757474209266837708249811366772321885513538135342096107438643011506970777278249520121194536705234114803449369488935943062132073355658674413550986272306515818017670419245451692304306909312676074015516420798090737210789373151366370858539513227895150124428554419489840414315196929027480573724304501618851781042862010457758680238854351087572037116644334848707033525310094281866856661999749044040288076375076448591080996372962683902977144998907917818491544997646752459356907236226231687542227431268338804321955923828537003668432999403066701904896057321671268991297307486502667361422690274510041495865235963282035380553971154844489646549541559717500193692054995427639610099828425179714308779382402616423186832777425780720896611960281052151121431369791594095352849791973136438842423673188288672591598181881990878799012854580201211242002450313513248597220324022439263113225980343664929002896323333579867525658333303831175673155518284019569870539175111912271898717518461213084168689299797528608788619564050103815271933706477783303101658106849550960116295969156814581973900644459126716929319323991656126596583136796380620860097035539666329923243551035468625541721833658913615145864424346428774337946800966078091452702672405962141539462262909109411050022760723980934844062905602353640253684279101284525474431576315725180233340580784031336801642578789934256623687201707926224859599276088628205907245295617676102847569000450386757478274150647183799288679431116676391871469340778127885616412844179106266175197194169122551396639721800762070945658451221457629395484129066258138004405002816240484154744450594935160319004659960990121471263209705171769379789599437711380115064225843982183906003680623443727521275102296000128639793214824822772455150866357909828922096907742792568159984443670167092029655875170162216345917188266746612868832103085633685387692040806166108399655724467707958554660019507316275094991038919518252752535083676600672963697394370470142956263083781046816519249528893178660212029532025714827436816694575917458383393914211217271273471409900631043209170855875977771641156513260958894852091500574317608239710990158335593908801503712169100653966048170578847055122622157728101995955329901263608992884730908759245882107147848918689470719588156992698600039448776724171697904988190917605896197750982378411649681115576970180611748270124586766628293422248211030605328818401640748718819185858579699231905577790175259889655631450845508788392567466571834201819121720905764480094631969772094797261703617846189550539892949845170110075993367017972087584366761943717617559594221975179978070007807070693752224081768356507810996756079572808347392110561516189539973324900545722302721293584012673192620456021245207854637949274650785633840633240102078820349152220205506302430109552330808156830381451483353149954095818679065072149146578456969073465911601592770292505359414819410501169696659557460111726934108361552086112390991655704983736206196330976543280871417403002299154038329955196382562859155036096261466889077231785391738214319589936448504867592585444062865743756118921105247646152456146455085650675136845041003553705017148528050138556201801896085538190253726896033408600392925486441327883006606839856861396289782843166346372027437033622411129370125998412600637903313632817967529273238060773437436505149586667937289324824284003237214775990932711480491488783352536474632956759063756934027973791329769658473550714473517738232400783448731725196258640563068113154642354041882598519325983759920447369822396916704887100338617340073376376072900416766360683015861983365417087315315754659948255098098083785154977647056284348154037654151606042622843167621094733304342912610826210512694363519064200892122290507950314882978924377383093264327410906224596324666318149510348986236448328450396906054134127252285477301749675161768897266448876947349698940402491058740722883009921501522045045347863531261832483315175875353534551120343495425050425009818626448540820094393338743003168159396001827653974487118733809752327250274167092021349675812518997726120838156217917983265867792447586985257691037276419519081850659416661702252351348239754641033031229022314641267938872089828286190764104086793156581520762611112192880851482455020372452580374752372648125920818221378770523734998135419770151238441851814324766855749517228129193762894381058118710596866207475887915282869263708454959272447831829913744581598322258911757588535306497008795093509604818538328820484675452374826734129238745303102402307418933351869620288021607773011766204794082276541877902976536553509625831609946141057462947404802250250090583303665914869309922169750319623006239290858712600013549328492366055503176060836447535234994845777930560047634714659891409563154475951109360577352299100644442794039103839384028696853945455628956277136941298280818956603508908559207521103721122473675597527209765589070738031771579829996475111836428031469263459758753808039315540290233960332104855396608537807672297151783552347896107432227217105927759190224248556936733188747376382592784787869634293849390384261205683586030576046658731985069249381692530924890545175509768389982886019471890983735026493503668629550607160463558981202501729380253663301631928118106990775788760692026373197638687774504679437881604628661501799780003938942481658720477595914825112052326735298251181389978102054393622715498101901631527170955225450282770569786005034391601261924262775560012045728177326875813495903848017526548533731600854171811965093574566614269906735327724821748787104288252941256194165454208501449278518149957433531183201105650888020238660308341817128481766724521112636661520413826710016214269445637953373706337954145291204634516119411192524912355736213745330488820073367335831464833337604518547808093264425383194546648709258810711490975616038277887390584537986801972206747331296079821624824739600522451429701424303102487334315522327520365994104559652604954633002126076771944767444415879437597714574041891935062898022574253821815772705817039679097439665655112447353453724653444264999915480901650008166635756963837044514727873569633211880640360163337342505015824135551066833467532465415610710300976031746122852629263236429275830003558252570728174838478123129600917437327958911737695272907273203810587727851520033412585276576332792634963365115538818265252822822820959035819346168731533549355389325155122201615370394145347280847949809886077980340593581850308234280221213712476022975558906816419158205949274437505933825632601256240025204564044937225322411656954339211697390083422377330900065715689003414301932768077987114192043475710127526310373329600257468507928936634337212797212026159214266766376029451235821711854306513978699561348934995553533623676510077354128193994914046347834411948916640178362390148671131352718091748302053555490376302631233805782761653213264946119979826628572588491139093442735521632006500217362334702981582877950051066443172316052030243068710364013160540444026635012960099809776253310376602778936714439701744506284723151412453054587681063901544804408910352745752902264731795049345743567209021128856761227450332873062730068462480228984154831626123938043039491417219959753414808390691499331484874483573773996320980768775533743938375474616671108161655664605007845871021993124546094817969913821311811660459285082530174689303111638209850273193553364860025645582009558054109673125861262573688564012631998099770080411273964023663725017683432945413635415528140225363012881395904545306311762850152491676816164448769644774045583198404332560716047226114891726520421976530410377742385690603138282992591996883317115885467241062724594955228846086561423236140411344124635314701611944822607697138123150712147991700180553242939543698511863479597836523282787999759569690562110153410141253311377988250886518164397188393595681240971831074632564906654334154576881408522539872290516344949213097801761527952782450219877157786621215034526757983975783319262365133579930332404222125519116061194752815089738748045260285957202024847907550815419541465519869531245476038314441449670660058382561418643868758013295141176831437218171749409871488855393781602294211066281618817576466937039415161087431200532836089910485797677670127892168011038421412385820384932040976078926078104756750706464773445791751447579595338016733686200407623903966347769964757868287795059920977630563958446055749793359505194692018007756025735437312149226412365959660909599038582653184013799240829018051996270639381432695709008413431184420595894390159680747960844573978139632183420937078415685585445540335252168599881398148510645576735195698222590565265069067096348808051702890580403553384809659150371037496015209324577380437708806431667735662639693782082248297905510092361831557343339812345224400104624886299934754080535400377818100033055303689841719927802858447924045229368047879413079845833787413138790539439257115518457758737959760666379051625436743649303313020158334547414815189682235074712418312641208732932891269012157833339157752646883533227658651280363146168528285411644366507279399828291470940926459276683843120416591705506004126509769467494056096800405427569716746264370783246253298675988048588741590364761165946894207116057268823390281222528347174871237929959045208818657042235931575571149807448771189892047686425744042727862720138752201008273624605103896710461527680320757487026661539273947688245370394504424656722626009372471477109707783353639071719738148248140744488689217004123432835554315498478213499508546259927833361241788670273475186381103811568268329972782992582202156502644838669313591422536866613574584547495410616332765018848620807312560977360875876756090614503019340210440143570037738156746457039472635588372908457791075295028906520536170158017660682767169476816493969226591955271044105301383657115033842888294138530566302255721755621783259686376162111062592241615898010207472527995758314083712347390492924783447600143204192615000394835983669789032763382275790144996661075855280796621503728134100977450449340796850605302749653433435973141949454591375686354276889909731532027369211417018344242828772631707985717707514975330812658309885488094932333050870310326415377046271037148748746013082522360428905989514987523584518191294603789651745583118658171043389164500608797389407095232576172265029546646375872555568217724915610398281611217751388681494509622418926154156106190248157167901870896916914595680365983195601519138027245238336414315664082574755360476204299569934710274987407473109585957141068095797030534119341450142480629893594943636111291067186121500258958749330261903998904919665696161735643990065065213320568616558088631648093809642549189395645589282886749564818683357290471774680216872810057339679631189525910995696865423042567573868023458495345927743331031180829797402293131652857839906390655881705549736929247477143664491166700578992331206791499533052221845102208199636007605330249804455155425954571802772550713648541768801246584727632274975572070827696702040381073229435085274999549008486288289006579451264972172574599601767970935293049042761356966605692393887674843083677403535022917082806792898303500036851353782498277821500705092574998271815375592726228762473776561182674993637755592470865156450687473626962567946991180633410283600982738586244052912331402969593980223924115745963856910833288723970938843642754208221579212379061297180175248719934247488279325154440108499411470319381795137615173285824888747571056064003937360738131302782365285415334063806654980671597241932403950896608671047299904439950217393088244200381474647177989559438463146064899733106110818898612823154386044374727702868580276000284654729416383400713209901587691495547793572187578238142212950463122544392779723120735439989257951822246426720190945941896982863963506206247553198424832125404804259922124121660731381665926396936473569432553099986426407097773860096369991789464856321316919152804642903260014195420986949626730992900775483016519145028441283092028350910257762558709744659511941496327124625855801437843614044453061796707287195302384399122273263205369233793257808045728285024445821742220916290577924472973147129519200776413710713660687542328576075003296665901991549708942008458407580414090922776181199601218586613094162955591779013324162365213736937582259689296582733208506390679248529615972816179279659622954113495534388226291925165544216458645747152480861112012673482941592846082186929585288462706877969317273099765090636874876720547502523896666814327172461585211023902500070850469168686073307660771706437542740770724845981156520738652696284168704009815225290900376189883062039010585186695039064786472449884530227740773626918148236791829510182798654908439329460562033367592669358673821453654681286922325164628057986732517936043367231333054711935116656316526469219054343041161370075575548928429715847011774481728890277690474142590673445492293074162121999557476388289433087163265343212098853092808161891950518348828059108397220082019595979790281364192858052564001937042761690511628797085328727329750128488878421630013840249976102211071073787646288570093768250514366692186554185775697936711449084163992773069941504780580161830877819416455555244630456252768592346477775103837588393291969094427186618074513832769172365151893046980697913382858441233913407641086924672383608998183847678131189019333673627116748648762512907737080536908112518733968288452631351936394143696663001083759524501936987377722857122482399341182737108881361540262350510230012125679542388690747816584911294443972505084702545271129458397447974125898391808860708742600839135148122973001182498348804960373226797139675816668599059296480088715281980888213597904414595376585452711088489500229123377418819545008044784733360808731124932803636178013363915709377728393210471801052349590586852588439816656471814628252673742513942445619908311004476514839823239677202617151703878064685932960989245092354236287806146672888941378215977635580721009589257945156131618436788994875768677401140620466694611790396677972600660735374363423488670698200374822711430142764057040501151705875444950235897140077332036219318233178635823163692670761911998735408536642436690339452158618777544479476562980030937831509877164450091715971952024129245998810860509663785147961608151600209518976738314882758867022207842936332331954079944779887824893758497537374360298567904891878255150182096627734875839776855526519102096254377920103448668193364009385438214216217695904688589486520996258043463017922560753013862107261700610867416345909804647738214085288974786369017027522381563594206697184626516244135893079494041839172758970216398137609887375806674760190320998334171021215979733649006008720904890594226873384963359755844736934229242243641062327792935866399287065462163881106222471209069183749459355140238760861258145665164610212632011833628493005174599687349714012690404029276210851847446591186055374432133938054880132435410671620223302941557188434008251435303723659846083488931334629440791801545186129847756551999859765682456787863561553075525357030641394364383053388107900733781302416977581120951983481577917040613898087622540493571068941493596133148808867390338335724693152772113565143009902193949256776430315191003252716348505305188384327635696255897136240611611345156166776016953546250817120418042277762498306690469342497425556692418572249903344890436438384024731837112425646466763249668976861890459678674628746736631651173751661378549774798168300602343469871361858998328173681831408602238608628994927194022768448146331682997486728646174080332734360209268805808765603629152826620545341437090438429140670194499031904700327796875931639630741938797744581910120817084006542742212886844241318363330523199461649083590052268838195409931746626059522984784569282341432901394384574076314368584729192787319949234585925524276586989885450119295006628806383513012621492103570005209855616376105901295904696255968988672414514627750292301484417569404738714246482063089216411925043207245597456355496007551039255252300410583538449626274430940150867805144120374929000956553021652003153109933943558522002197764171418746955960966062104178655007219462299820660987851018469081769686883235197481907930618501004747987335650149833722038595877284642884030276231665779586510121231356335819545250653030430991540601602805459916007933720863682934500726065043236418279781397143515116776591895484740713577011914433886210011706370267969604806764298647748804392897182411412245563875786325845046862323968313275753188220590114090316687880214296046788727385346633571234644225233473284178108441751388869025305456532330455383134119914667790993209871363086707610704309145000551631441228131857664111888881907858648048090150462819397812833425522159363675059896257565023013629820464856114253765788499350219079930802554483209806892747980700409095723483905050343537670801490070928264202991792714522741751485733466572430059667703493828137293180771977539169050091866459185073196738849883745010836991325462288715977798546816861946446206770623056543658259958862133208759309404333632408100008159105099945074690819257654928583944327844699482884610618708379967986971581157585482412794566660400053666500874492022717169584928026543189145150054192812819412828741445664272588753598941962538691776096668275740174939365341348674638239812399006595635107880800342691418739166231730847275249453884898973485093878983145220543150315224136610894567158450168957423637369617799401060234287251238218929754799493223372423899415022765090737818407254909568593514458817593551328028064896153686226568196117606584178508551797583019612867111310767415638918458943230979059294759622686008022482220868284571486911258964178879556657237545577485898279005572722604707849964751142770981909372944781499766401950234423655943132544290094499410635566221733549871225438502368224500577046108227025536891643444440057376382824523039637681019867587988690424072150126903068441199570383973555545249306420040037673938632710939379423430879267721662358178106776673765992775527705163005578101644513497558214883526148172817214477094550163949515764385400619798626498849687387972663141204333734369218332367614847083971982489053117317496829812381528257370453335794071811603681842486480895404213831760800978315055033670188385418106642115095675896906678218004967005236597276036350900899199960127916894793316267163499783622741842154078409136713489075491633915291176625047588898604041018546962515399938900164681742146934124069218288103565240039855082552141628271829804480448235633014585048909502002173789376805015398020346115344197183623473816057966864543612502651545496568697381035060673039418201579309403128381115327667991068253118885223228641096040925861923895621886035424566187092282103157245444613980904554505626181130617400008728474544945578124967032348498575272108778302543328770149291802200071942578758977495438956977635397505875850768511024905193693374241345272965306785968516047176300111953465538013368224650306117874848723603997330352048389836651955142219496458910730610877527149834380887613249030707654088992507221630900282742525809804436177568438947272874814405587599860567266695617713140099567399829635130037496840668708512203461827739951278753160298971580491138317127695513632127024130564043888251691495391602170438822336568983560116517352498898060073083521210920673766318476110250225138164617210292291481989774509344503185538613299577407618915255515946904239948320669109587221924939853405308776127819894559530411079452057514265499385627541472898345619908988185779826872004804491450487236675133822509290424043014324752344982593133440750241991087212413752840602970061857235878424109609852616635048218480634094815173613986597317059777371327756886369561041472551993033733402332083839337045650039130336158863495175677627784205172283320716272859934254218255415949378831121817670141892960772441042549559959071862410568454488988923803552477507233446514256388697736507527042396713183619197460058757766184963805605530289859153491561811234850254028655484402714077893770490419286812654787675637034729628152538119292624904592713884752391773488488672764949209404257047149452762416351040945904840763511593097408597687194011713544408776351560785636554514337200486474370874869937060104017675837357708401135661654488336061269043165102007545349460529839982236082395074131047978793003506931949833881524563714411065922377512298225478384399461759992179407413499334975178583792678583426257813003143736456147685676771928224774344466772208082695619671597403067766945077085304171545451254531856484594388558537294807821285539499450967476689934839330324114590379660046702498603968675409105981075193940853822665977744214863502842663638146893713175616121662634096078236742490665871373101752084650235192102424609129967545091753607549530649665713198952406283708394120427093153009649567182058538802111313334536330880390400325414901848869820304973922518078557766447371146024381758505444565650296921885700243899411757011280391339613529976991684463108958998414435390476380300722352946047969123763960390955640377919791223837930578446542854837208839640064148537061819006860503564938421233969307258504766100075679214253776153513746198539533669010462547507154943065266739053770121797950692377398336704982976535241845579940457642550300568226897414998204785342743146245173248133363026635315447385765283536345494586262951118265961716929155539813568548941604126463498649945791883837137285202113415469472956443168036255923713603734443718850942259964499585186851895180413407055519800941083471401151954457661514663502174575164592141635146823628109005500684393892654267197544230282649211488627567651557752158579468052277827981593106451499577738652933363588120280384277725132741564079747053936269956094750705764860892902661488356819700212758798659434891797275679949059745465624050982342311027411111801881848274893927418180510715243789689564674150383855633631717899613627203680196944079300424940447127267867254942578024244592444896978892187678438620588932925904829447701782645087821383476130320517885229223770157369067579163404522390834642268987644397277461016449991572950896617695720699120400208091171801413694587405439577782071046286349346920205559505194587209354575071762359519513796937703668532001928789916124848777481469298277080313012657669842245794037556237667740903491669953222435981144773190082074867772802315068750463579048926901183371481246451647178264047910048840495920903818568399479138823224510768117471499707877882652103341466329503925561222440373894569581950151970703703459590744636126646522064983382684893436762564747220386533799082490284190563354833623866144932326280255751028742235304552234088048071461835469207363848220621749242056710306110749012479033521971066660929368489332368806081594778860026623012736803936202679751767828552600881617822130818613476002867904203458853708637774274725751565590782970084378947131411296587505983551852641384997757622058306694458878724792738936236996878696801066688590306350798211492978981036726271086303387863568129594898731512114656647361672113531210973118094002956163529478080100966663678553845180195647037151594890674598621777135815924196940255021417528426605305866370791522011324670763216294996163371589847756990479126520013326602295188081542114633414965466758096890450181875479693846129889485066056980482867619771287010247779080039280303522449198005647464089915722429673932264908932805794256686145610377180377237156737406658391248759671027290851297625917688468948296521298332833996312309076760119749684508863971955073071406371439950283099866881790024524068415203475624060616442283038136735157170753594377031817392625909408707011342014491818341091023735252295370961563978893540779539866604074456734376009322652384819073507632175361568970059985994873035141802521655989085250413113102617479204353476464297699245729266905880227728505732813261878815653923658388776187920377901275221866067418533829690088285590614741159374522310162014208504980955384951400311476671078488719797349155334487170304463078342032977213298840372389566009294920925040519802761478156851824794165729370639998348871515305120799123018778080167534905942101299547713664334041768354994199767563821837678914614937097299715967421488819632795717254731940321569230726584146637213113729274585806738414961965656875800198613043278008095292088442109212312921133234706463706067913168658796608087731167141818500487488855947208471797246140217614485360249876450534438708572328624090549146189856447134975404059682289146824603389254103076586135322196620181786445672035988118163076982394922272226831984867090146685829839935401967729397862757682976909880639203726140274370043378438539113204856902139425834607292379556959877576358533034842885884596372893128480561090568579362841911524465653365221361101958280348684601939493280905575009166110916252994483642845886401274734594417066796016233194584974485102851312016765874782041106655275265242207114356887548985002857215796396140809511307440955323487131819119125401353777555496325643298314543300103574164753886890392034600280762840852030038838848433354092093244426284711445316216488223516898835808689118899092842620559036508712141428903491283747903097677009702570300261819067588210385505642606518835336191248446869678226316717420765633737176771068085727796053176287437339320935874775477694123111794817618732707210429896081968812239670436189434046904871660987904440004488191781677324918496655358740602463362281052728285275852788757423708596695964916249993075347808750588319758731760910377867347864616003719519285307520748898372246823424572763797606945915249945144586773024701643498382521562123836560173566040664664559258474272818578172089368803716746954295822824342609204504196978695445659579395343810997552042186900720128552198365844499049873991695621808149680047587312323464948908441572860666373086834013722658756495410113859280122490870263926869395533805877049944566016932936026671767770504147576904517075411981500912316632396466879292968418657391351240736374561588947595232953903526844503343392560816813618179892625072372265291846453641602592711719809558995473114138715989047110679816683667717180091068786540803121401797844812996665165848164203998945283870641422210689409083460199574192969687522855014850048326181631278259024789884073856575216070759764027840608079290819233297531527002543601869731003786807310463033462133734404811390528171831936617030187185734361788750095862702223175773986993590908620877875624190182606855680809751769814723507123661115914292371936865578992855589546672130177306941789379903488447750603663332299249793520067757127729419265783524549496548342258912714210732132163356296356467267682520544669495045656326207479865690827537980071080970304725207639554581347075439037007188710558708417958369796955736731562360687054331351134112150000839817367584584699532929647710557048340800884503679001946256229960128646774735284044720384360945232119134372469255182715901371039499314404886301638867710614182086448720845193841329811276293757412806621226432164191400219680403456062484452034602535697082401927079975765696935379113960050072748396196319877958198692576393515869094647447457944514419666814273227685948749151222530935529315013286684297599553822595904879355283824400577808813843633711371861281923602410506524694889092874893843424019555277250115912509073713686302042843275287954315925553215546890640831369270282034158105698005784474533896215671304189556099860096880651015170455523169241443116128054911381482701086290969292148455531608758005064734996017226488961345081038250772631718901982313174675607031713816418840329881014766316555655873233928625917446416867356456817931305923168669362226550932641366061558268182501119264136989040593973171207280651507372886741258957526195662373347378630045478533479914289905115017777704125291468711117626285740794218773889388818823661301986737050852382178749566409945232537280243743486605017930867184354696725080829412134189943245540520853230743863526430655765870678896399917905286786551575330557248831123042818583768665739753002465350849209371009037237666069097066153506850663162412301749338745895844990548825545815282945573214958787137159529805224838098999063975438412481007906777590794477178375774948422364436782583141594791661605877076717291954162176395419798046598270237750354626560127214082400341872224992010427203421183554674283716292443490324734206830442822614231947722110501322559683272239182806806529701935308487162334161218044250650920381939918839710246459282012017168347308152389023510783611730563187266428740763734193513686383130594191450586262684059042129270323069969476282933769516088869700598767288841719564571834858453078519312255026732748919168858913685826821667964409797656894214865302600117847738935423370680109951526351195541033987742927465955510693094993810619561108457173188235586900563106135532132944455163548844268923956819803940124376291719465610971828796542288682209404600985045129742733415110509026974891478627789852122252185133417894198295173688929021555486842876003843793200593277535067209089284752773810244114958732785443536477271096185738620618899874136119093446486729514786493029920321596365181944627778923880842334834039765237408320630758483039628479002587167464041432272394683620073443183033308014721171238918506162376853575498633016967143698356163720213966408224747520793357930928989226622401942239561326133438245214661119181943723301825896804821508942007152907596404547629512558162995898569680266702820023976478533051007950970537638154908772466191125870962376982324180450355345333220116917130660519075314772229142549644095434788442366055095932460560578553952231906986653470692720695579977266712687418703570012521019081271960547927314246940525625083196267566220395143267366250323269221431398820043874913746608082903573957576284801006186987484007938402931722877478396351085724774095235125515787668255808113413922646750771785529895169727521100627407277485982798931664017868523237874860058302711171490197256937569412007868241985244778644586286098973986531571590764586402158307657555923257526245452961160988842696724038887042899582588533551101165584776818895297831267004030754297737282628862452248460646986440831634229587474331842397133206456639656860163138650407262169518610331992924275157023132007005954971829977854792133983669239023091552659947579249814697464000629743445334226610411383919623810520713196646139305847595664533757743766345307544868383854251241014451138968663620117265146062305806450401914041826282290301058541316598045149438230740501330546148217497144681497381179273975588581896538099727652659232607597737583413549402627827361777150628829004003521880800218410666147946971871698432304794388902614652194420002962559580791504911904873575603767004563876873122444897787606074732056472834631762994352859117826359063708068101168923568575029860519880063946241334422059754372487834736138916198960472685441136407766105297228446142139679436849224177255316763466345770631576670147627328677723287922086081467512074705164466691432160462515047896805775022900497730282280650529144624249872771999738826004506636179086521099206947802459294046664318415142109942163662697690991006355574385518498776674073120657179360003052610883455483264115389387795321158835545379605252983819632778325466776458645361882556966914251692806034782439856335947156955326736562196368107213737532867982165627927799967538083884505666061602558670445105375121035310952199843193393428108622906339680473718685893025399867078248055540042483685354839142886953992372293262899357783782016918086869956670130195756647123728256893046619839493255979422034263145640964738711656259536913213359835373995174248133428342906278405883254997397002388380434629773195434575061314825817191038238254748073906250860299487148146286278981669011446702698486163355178662940167217719154206990497855895657347945678334196609579165266714070077045542803264382658356492665865827663746303377648200741473936695810751941978535957229230758777266576196007972042929916708712573270396721057067689169924019172777449062939651317246298277106665708464129931090415845424561579753387199786630128043011060943339759133900095100391012455313821946510059882810641603940568113069645601463533260685618645158948345906996059246086905434911426526159787033636414555205083315978103173171028307713920883853422687821144208658980814824236304119258685701873200573852875525464617802300269396991338321220494065471228118981199771138704653061608172008116122317278964774897114558209826788879281123766307605231409510023891816970173058838435859297098973285341903780187270728481004038117439450209733924703535982170826989296690117063905373566022632122036433685359322334166012981421197264750568594720407214212672691323788092908854751671106771810999390049401659568309209679196766842586104393759411449298060282816518905064850212722898810972387552526989414890963315021749244583251424712145824240343008609784420187123707779691343272646996937802510604957773563896406823182141200858863708477029844564752323730945855345299845480530912105480944339739130526165959610496823082866017116919710015939048060002456973378803495145764151035939288176274392640526554142566727597968370916993186392315753659454055234921340692035196801838346022203437119813300059153676291782984806871141569699480319350956971267283492688536455693913127693226291700465719460440768781646086868789557030418652599971476245104069432390097021028338041171266434721690564873133723511978247836344642564916381605659136872621463968224249367167254225813070853527547477925159988944295924402739334280218919107107515359144527983890281004652144279998530216867427973975229058885364141726841997257613017971980191523784418764043352019961252437464135329159968602146159841538077352061247045522677541581574965761161865539121931439257842882750055963510934523601888194488496292190233252338361567217669174750382375101180701636535840450222589108721594416971464151860639294337640741779287481759453018654721552858557749496984940770761453686901998894869970134199851127161010140287934416957322259538439549924280946928707959061398954800255410019957273380969366929703161533034114758545581528440331245550157751425431857818216767837390183848550419558721065451716587686968391911698267643438259742652522901139403304929955392339801591971458319793591251336102275900716808836270667738033072935517529212401970792383435973784819297258971292512240466448907284918789306946305595907607918788425824837005087946972032895759037437612500025322919239124336905016875999796800039709086038932708254255499949988052134821109623153567947197038623328067355242118970805095623716621041994715062200239657106052945417152819323154199736060838201742512485096601128130856588117174366962235752856630199151936446713261203595897936271637262127780964676676416789246835606573601880046688518513221141333707856756023518791582638959156231941024938136324582205459108270450312558593152884708743124480401294641838549450926692864570452198934260188972542284651627377687944454866769066671146708830030048067053551459484102474789944591001205388826665056025416491954454367076057707554454531336568282509875969374729601945758705116282449640716410814041068495171019657158228110943861634016105177096628080852061648667592096353400440826939107750368755071342019695433586545017575449092539386889171376643311728540988725085556971628324613325325384483799403811087681581772053862478800656701465429688961195396398463839510692820539501332316884684179422517433459646510453732889131880223457892319705939338370548416166070803230994250637964081179834862121408519159210074509904802841775183249026688425223936153614271807895872916528837283158675542893379734971362021331525970306928547274015041123068549016397524801819441285553475814429041555527159732399355846247382421985830880809167246895367119540549539682707610265594100466375740046810519170330036551901352575693672498309610477984332946891965080838767077937890673366675935187338405464784273332062148670036268559383385771856913271883148827161758711198971407201466788967463804883252234513426814930110366893906919074340351539751457357255531275040889426699218494799243984997910120977217231631770982861692140499507983483799691160582494291162338150640029852497423314047828770541196862767043961670513866744465691591604338121645058370186387602317639401055944922155740744417161411778731390031682247381404949413925519235283353710977429916893732429822824387037092051580884101590647032230049727506175759849748925960958473099204570689921237700112988439860159680185931316771651797291942255970589793610282192011858917181916250717973278052029793388406162100245928135066502828553158559560775846013997663924471997340788915588612079253757766625351344207043415665718073587472491301760460467428607047289220018943183601893805033398855005072971262990431443463804082919699508366936716120157980497164871765721515385830705003203518987739893485735235458845680663616682516168565893550520741733657454761307000102257964616967503654090468308497291647196610877046079225764706387941606268185138077015886061180356708716661660635554380647331991863778093139197581889670949904289819624799006441775994618535834119507854666059549653141267527120652793884442207082199130052277515594283525829670352788596422133323705598296884823385346385197754992110850107635121047653102043433932820317011149653496008336441317274676543825204140593205357230680060776941695697938035062616681307532398795640210735952070938159000760030476296894869151257504263236405513846797835031297811166421664153455139065693323456271039671008955249357566239401484725286245256103276733407414342820114927788916165859204307022966304353060901820054392367863428273025309806875625434167666884771393943849853602895352004749682877761832442487397944248360005337697010410413768856875443814351509315196749012990489458908119173125496104057507883014466100263514148749555863929366376186245224087834770516476617347708083414381181005733712863518995149369208292417236221829149942150966148920276714349238284148452954776447000321822317649225039354778515354970740500088509650282441289922332870122946177451411362325625776997188183725884212051231396712713876949296421973625991024439624883165869488438231360363202951580997385714021032489908983859682352919593736070527939458809221078668906974642351511587084696047547349429523789798261708533370767325504210614669526699703220956649484023346136359456340316673632846188221801244412147955200559351235615061822730285820654694696422010642245558310992464937715518369185893408763321127473717893456076524503405735584879929357925928334322172457427242680530339843078062605100595782983898030226210307186312966644808580209163456218079050575712677281923424498089274685195478833614152424406219314113467172001408487591094944539527903876510270225047233643109446959897614279413995725783299003098572101883722936195911049095188321870501167145004857954424799320326927333844112059970673175185121827410560479842722057752827355446655050540039150100840193232100007318971599768874018118942376765862537367950180249970944447248880261935913911601874594773988210341279965306763110355186629381270240966904229911835985892088435666525286364394033598161436009265356983688411856814464617963217386456581408445288061182114765694616889011665721995245459793811918026333890173952592112167627436648511022111986312270869142170400814655861951363422768618834105568434182732679032892031403245021441071335316826704391995970809848776535661408224462699682895223526203358186962932416061696664659355643371321290283175102123735546073102365992963713215378330843964713128542138868810895454896781409064997436347289695558813719565749280337927519989148881659365235143659329973421528796440302334167701956388021901973704483925027562836064849642846170735745089116707319030177307607923921598544346649852481254564241223152397503414539944150665292779426897273332095078207838653496970541274618508439038923293778823526594951400684661384380514562143868877652065655275857026360198006055406359974947654826858591395850249784535010575118986039474903838020926964811223635420156568545035805977040899744741918534792009099137503712550101193804288862526900304209566641376235171657128529128673067683805847348530329970105388071673521977201516655894617901998468018964090360292946484263687993767652750806800662016848418529226506118121611313398764691537202668734824800563142870936506405958140434304593391207153758600558431864657683929569601904162582710351429962209715989609527796820690388151726275184645827704554596133203085160094552204705412803467446392241329093730525618969294116831815242614129512886989022818851819132607351217484070592441074545199974964812325473219515496872428083140320205309425676582412099479744352204494672345558572493922706316320209762849836730743705189705563526355512259639737818968178255441150226250498822879151249493813908782785210126676088947425613253838059222167921735591399342016690226124540785766293106436239795674137755915151153091260602499026607972175305482889941156124279714273137094377872360342037958830011760737581729415625045278024374390143227432708932696821872179984821332418507292291103364645891810759945344451986586266398621614307485007533309835022943490674349615743405927486204345129620972161176923336664904113220188629345448908665944639576487873279492230036143405311935462933418835738713091546500059731910896295881216281677975430536636022931234642142271651619682223320517596369978468347931070987830166187861690327807518145925376720710349776106060036858367044667308532441877250981539069751911421589587619905719298912337520753855675288865418255285859399410004891900760353808697100587754960284782753916201540343394346433794855587519742552964390382915128497495666256930298618321891646977707305360135159004414504431741976681883551925835927956778924541075078984885707280290894099469379071760631081163596823184660374064036614440354727498409254246116781226259590469050124058209506782035716413768296199423248287484550704957285638110723522217094647793758156755551010406673979243766004289650918045508431903292137552484102039589749359779032780052509997531375736424760854608991398360926156725437063807029018921564747713898181265964150779145671061389496201715561414746749040693782280220517862225995473268534382260444454772191172671276631200452990998885122590345361687587000481406472579539120601317630656439653456846356184304318391448533275209862453513167449963050443804412239397804895771599746620975087477249943351251919032667087657191986158481009045132085333041038929865687091004199815839564983447871349734043462340795835652343623384268352632142007320871084179615719214067721120196149073745450456116621666682911763989140013891781664803758585546253075348639664886196385325595870480434866065917155698844043585943222789706141121156502889486414087210419456639256696790197937651063333566897286107445813345561081448660480296301549295771587256229788433054777747958017710515117145314335844017257432206612180606337538675897768534142166453279258824388321300064401900054428463242364950523170435091641747149142686553550256333757098769779690617827991395405312603290008045285723674366531996387113564595288334373548233133381394583364807402434877815754348134974917366452632186695369165749259535527375603921126553711681801442325735365094663853835258461958968621482044841001194386811991845414090374525013912393616530715045901196308324751553123100079551072149072496782083528698139722233814985978124179674186907558881056498834075943565281135483987853892819939566648015534921288105738519489942662684099588459879070672673281390566507674128137000816081248250132235513897251415873127995149216676306060028026787924904868145003143244605153711020999119484977680735942961794693070977933943909152249074626419134513867652850689065129690038770024103119049703657535453161949610340439310245775498865795891325097238940024761881815961928929045620181509290645199486414726827325245404536284026376909373492345352731964718423894240102136196076909927463102531228192947322295132033880120775277316999682691708563300972882358415973057740876176847814254387341982698330210398096782646362990315554184084336067942456692634713263141815770727934131802629561808313557297611325549745803534632997182756465603365315326219038200003697363914941792846231151756240162855060443769985770487623627575609800728590653849279480966904427020943523921846936696448243421487912717346002525911832960607666595137560769294874798109186068576736154110263308673643509369828110875884291604444366355438632043733123296685672389397769504693582909864580798185939476347278200672579069493883491460062605196535118965681443464668221798084723285637314613663170441717773967483505128205222595464121767031797653991239141879556340048329742451048012954286459639796360102916629403103473309254881192295779724774144537180787191978347673088939593688616809614769400242835380334083549604924654787050711435961808756784890290729927929784559991191531991469948992343379243846918084642602088278391239331365340933997953056326739062656439675706241203953195263917896960132495141276120777362188348732143291147532134372746544609155041714834102269099146141593241920308109386863440260316314637157547800644218767125688067486910151880043558056348467557171144610441722098167253571909912222707966755298555415225386525142640491282914252777263122324431603172327671843505136508755474802272312013121446576285998936575202173264229095916922334755691867405982362875858372425105189983467574538778774526884353671356506838397388395963044292071529196373139232360880721060084116497258451589112332542496674876196274174358239457859718335303446992699754706791248856583255109104861748843204006334436496418240304622858758736028151435436975993155732498054478908538773323184923355127304078976522534798338721778755524166743732416932047545059713784232823280793877051945708060006674318559232919245796356883747123999724679751440102697658992879325674753275865151671105967659320399460215800574827327591614299772204019385538653487568682860186900772502839331472933397751546556841419158528377752903397201189781045920954633815409415475722849325457028150240526943452532755497438920635714334666412769304414111897212835301923265039909703160586329694803788925445392968778778155663568056289894973627613564947487361332207878872975784822182728209521459890333351760398657435824603721466090955814660807035042023869757246476628880144737707626339329461708310091459768635118800188772398381509719293167286662814851866318705432095808333609811428355343182128402390660994524359083593987703791414468655081632960181560327380822330153334571568735011400998662733974403646308093596731369758417767364791945015786086500269907570822831098585179974152820271667258830357239959659916656971945185088355611013178776888153352341270956102885659146064589668560269626174468167748720472693112477253333280486524085343829056125286894480679048327764837437101237363821405386346801009064205497303998062877356659784261002917297026990654625852656714482017338677065979211169078492400021022261374046355428121635998732586635958691975934073243110314852050751978652385122689893584232001238588182945484186537082422059392077222889995553834206687103661605040835263994823397011259739185182775322449755746938148278790240411467832654799020044282471319834228323126649944870617273134224745492170802936344682355330839563706253932915557756323554482356975671134382139756960063699807215561337691066698963296250106026913426546101731017826053820224349330675544293574976594360064045509208990105725951832408447758552010931078729516514718095352995650984561975385316948745694559585448500615956183953106070624292168248271312036620542844133288127917052149686157298063840256460659733454173848879849031005053797121696823445791059185342764368330499841386278116366341584400677784268011615084190182284413407108312071340923103529471090051975476909105447299032250069445604153096256769197141293956114416613389593462444800404996582399890205881980791791400723047902566548547973930410642490717296266580814522081778798985174310107191999834517630680313744991936750142316752639765376227631640919877081937497013470793767178209002986748725331717479700049214094514075223096091805196057714797944931629911450946907497940627744495517949966584915909573997580849239244751126979835795584918318848708608802356648775113689550645516043816441516848040729391534645319004456963374255851382742777736201609692223923495867205031944802120439883686013447838071299983505783774722647874920464609805243263117677091686719717009488009492242076078523240708016253853359513764762628039111792463892387327284152964654138607233802284678990391510291878029936737681190832595053606567768568906463887965074981667056386197989909232867916435222027839082283650465176318134352632299055864952510563625143440080531853498697437042211101518470712493903027684865891470637400661133628326105093586439585584196254298276223927047498155545831250301806826918761106214388048948943055955607238550181183030354057411015444889394436106219493854600676623133340737136550038793144579087745110956695185757478156919113275227807868990996943924550941847089768780021621535265325502231454703526518253355682726873938619296512492154774175258543929943456193860248079682778485558043474194390154316104408342203532497574960567111737634153785851842374424890089260846237457791782385444129169384337446366494479046110284334391360421341346678843880352512830217322341577268284390476125012284299830013851846626520924437044808859018685538600781549945615556322751280112580165088954765697766917054615102806770419772870448758835767817681758840240975669341890491406554482994208846530701701127018694875402284035952144755504163989760784567393335058583972610957031922362950238299291844721633102988485005051335657237900452310655936697253283089694216593453023902709310853706044194891149215958156589174009868413280691386329135973554968513077665613801992650984061648286136211848197428725176849606340212457819085552003353665002521204061690398215771927650963559297326859339102111952564081979808446421480252919993773814471875368831222800254470473376615771558624662717930567995855901028928332564514203000590987824043384670655177837506237566285974630645913694057103832405483630531708425008851358504446015134929406785232781781173123422428335002967321756661105263559397813716407327213580546640170416243267549251076999643940107503809287311693993311755946850247439347485098396110680523867695778374949279227729154818914168315103679930228905162979159966492711600807423192967003267410807687172248837551417556748188035104447527723681316425515259104562629061794289349017910096164439389057673439687605475477409922157445806014949662390011097598337848219097317567482435824322797457052960463748828814474494237369260854658388903026828311447517030173323170209395346568977869585855999676945061559231101318398224420393184853418267809472024946612715408541407989459508733233481283147155645651149479482788794750056538312224302074559192752326144297887714112200995658747135670391238315491001317963453599255186632401163925244263399922963083679058844227690420265885757009847810189684155260677963709371629166465330429305102514906443193358305926183455036309926814741328266635845054702292074938978525926459109033478836326110472058117191926804056053360809937287294412751983733219790560562429213404384422016788931926340152660709727424528581734738254130995807716823689149881320163414800049421744193670930745734190198150303205361284636692423728618046921370462906577104717099794401791061111255813677259533682758023912115993630169068531975141323884272870050936194900801017400798285741254514262384431272116752237044900187843970891321177818708467099702901011543520005898319157737639702535730973116649739583181963750814750236182780274804015345947249115315402112362710496647549274815084458995641483742944837632024512177595770287664532715460029269862723440990435470106112334624579064228503521859462475844474162004306582610620021989947046587842815717543471970951898929341188556127376249459945677044735154890102933276246747427606235795613265431813869534951701905845798430495468262766124990180795867551826305879660927795183428263015755863849675322156572553201649047441231295002118870677487201556036802638323399687336655149759784054704347671393100330210364578508630865932228576555573345033149686887990653369832067831952012483567406707639006990386803680924849068748944985799477459233544224363570910376749739892646095830361281422162654256054610758465936541343259569705211001302477457961916454384781648435670479737115439157441333221660011559835901280155710764129871961542308049963301467245429227550429741314583802891995744423276356463840286366454615053041731162188703471908475527025914012543398152392704730613612911085861439576008422299392967396140774256559127428795993278509442882069099397288500254664759775059065692074372756688569283082460203499921665851443976452011854923579063773228717343753136495625310943800371257633718412533622163363875938143703424233151228334863771488657697955242637224853489787220489736292311739743158505990210909960863756375124644746163757155975674009205586261495657098007179887720929130750675840301894914679799976236781189367186758966519173567640702930781328700138025629173915866698492727750506300127149740299539972809421366727920612255691815700438558321659204404207251941682912491485626270613681409099309506360654073292852953022896169287518792077114993048843372483453608685605415549030038643357641710226580440885801617887954373710411914285215502914226849523343559263508884792305287486980591518017154331001979427293774319418335627554851125758153406594107127632718663109664551809865304063765489528623566984555993119354786369622947951123250581304746531419537660388476507298788355889279315406308577084196457900279184617241474001338704566834444111324254953445457925204265356345723613371238721453064998999894699439881068619616091475168480458817369936939780463828624850626859328786284041342434403891691523593899093063273707022548119209578986122066727850581027522170277774486667845653180986752559847125759351874260698541922366828084045122283659493568704399436805691834199005151839788158538732627083622317500630616514249736534161819681387110728296194464133751218649778744860167508225441193043779957692249150410418706281506262097604293924714361068343380742386031367599579473419952029850925322936885780537837852135638904567044396538327961988416154316699567372943261941516350684975213314345165986362738464582037532940448296619354092727221415408195322104821934100404571438036917327110206100478648019554728537152456673142796759448298267734409996024362510140644056697712168547669674529728745991391137244522829003160888925147796618622011744446320751562877467372074636802452338107413707076485095255010570746493876933877733142236565027446262251139759748387302689033619789053295446774773433793668676634802279914415142915518014449680266864911199125570827570436454145501316439815176133416375852082724520104927974985238311722009071548958535511342671360103093962699039922569763774192734927323596857723717741625901176525584152349633262179638095513337057249574921298627700259728200234163609012026972673073384911112151736141682397381200927816564182430913813457160380710069756254192033062481147278155320726081605681171742712404032274304197830206582674250574507930533921225800952714655000847350569003701098199466027297590687415028406241373447112214780748253492977194280758045130762324931907059659467304410212574017222769251346588517548510851889012544573943607130305998545624891177291468688032048881532237283421270628112970517363493806849929632695883846235734897801949869399156617042857039553221551345985145948482012318288865661535109471441687113907456281110395750954304953272391530137109659927263883302738752755752352464991637933605648360965498209487037295372228436867075815756725755059924145274209387550205254545587740346200933550232380752243958203023333326414642854451738513564169884036088787106558039784711370705851852705477213398022460662993276819968058331633765823925393968678543208901927216077647587909017687719852153666730884847053055500833413603847333612783303886888180177109309119212879060370150280622066321369679291901961136297142188132439399791244603312512498045764506597770913468035895124493876717047571414005456365373543513508891476881202171183124018228835490775278221989034442670862396403724560233014742854615488443854734930669695315849997661022642511607010504627840578327786160029345113990034264805706312237504107977205490366135596561784854189195166709729889485093865444830821820562808058119032356762564870844721769483704447129770843385823164644529103737524675689662510559819749591029749183065728529708715218598422703386728932997632141997202736736849044700006547057425915834697696683130295736244952396729675321151966712367823106323102630829277968137193304502467553050253767753040486100691470150047102701296129894593525768814440936707356369074385529497203899334705619791410548538547210661587781908135580539143734353641920198611910376216818280816625321308981736049407554151916123371558592691880354610551876832260581571656352262395295315725468037293696759612943586958050486642905877466033869367689819165176604752059623609310047765415199585976012696859733930325541320227495743037717554154503011698021888650824383155640352720965855055185584267898175014149576638414670136764920730491858167933699693741443561141089813864480672648725983290047118196224361379051322107693358504725855767908614587760299610588234386154944223371193449050839606293055349946624419880955387740579995866773700771744388112404446116905534530339064757765574740118737329349824099148401664557035912149595505466933819423690925520714293993275864378160543659753587588093601379488847365450138632412971831064136097447367101779256153856336820398626884020539237099698625077264286229751082744811203290519692098938535947103099963622617602627658592637179107536706173201645835465017395568986395694179541376918228073242908987701755172093228015669972832899689742351907809724250194960343544067885418712527543593060643433823845481391239847302593598007613415864365001492913812814274293213437339095382472431530786409742248662402318509184080885842708797400800465117668963873113078510217610064735943894562749968397515250298829056683379468387241360300763165304050734667777154103660935236174922666792244762864035307385656010171808980593064067190921053575269412033842284665548509311471523888388691843139083381024491092610280294122737496874087852488215091617641170748129157450966827087253710934662180996345257003268035801815532252760272436907151193597565497321757088532974245111260827263290251457673458060680315852964967361202100015581031376202465757415362983709318777807365660177064678006392323267286160409399622192527475077433981107966096718107435758783294832033758429498473023584376770193704535588570165271386948523823196589547811251556377396202769117699087096137240367926163845712727865556065296281056910214860547420154624040656666407990737366769857603502041331749803731973758427078207054170007165947559178571538200038252855106430914745074461004463309058780226817114367948011337419922984600027637287611321126335276287119451843494807592858696289544023231815739041720542002724467789066964078739725645959477718982649093860350225770684502493716258097172755061024661610892835851421779109918208702936057929958443967731677303625832165685004186257515458318914089838600499650079124097034313819580569640992633603271203896916135194388653530126285315125952862999630729438240379215636154885667577518798256950871748353920015206682743822096971982824275166150218271779708676406161806344735171605726931312011220055345267915632092617269028942169872852425518678546142289551338188247991188950627027965798594226944661451011935796265006548483160543458803727561313116857148419905112122935266912971791027405977545130835613633543097233000586877340283654128746585484724338492332794258391544785095400474594989145535292895244332761303893946700603996694290741580693338893377576480058904046875604167172271493825555778608363327427379480790485716055634759047442611272368769982636438853718902001189090639234290991136703913574452543103874118273338088073765095163652716539920107545832488688720459710133982203175247506300986098040331660545101929345297881981514550505467384142086783999492393384528773003566620050232622836301796271278364800930873690112948002388080269737802530462324373768365840973424049883771739235094541472375935188176874531474932868830112597423088066106152795778426434368805670791768111704875450862022213925722621804870648508558740589647960701337153303060089866142337395422734455624345950977085758730101812484904314779977572535438245115439918216629336854795722600787835358269905097646042305083225101576450089305850573256587916385827699269010363584337896823000004666636115408929877631975978218609903713654551759204559859251416629206732841496029703270553229562908334997872747916245052330755484097793448938577678710505172661923260000227934476232576830478993877555857911835195417203936259826342442791330364378927955487776610602582362348125383937417589023560115754315633693629511622341564917749286617358238759428577437733424354628819766315309915305071249664548825576850835393882394217303591905190046810794608407110844928314727753780819811260865455712973136882555236278756359066594298325850782391201760852250982921790170041760638410834203024045529044345578855259055203261044742403112058603120681399387530772804983229795756893267162096461096591089849261096763436097764366839705733208917999212656518782370720709145893902002134838623209176721028424676698481707080080334996957274001802300348154094583741048292455020311760255524963799885158032479299136968037524915384017313113896398439215756441746966235832040274474901067033538741319909868235160541261160203135734108279090140312789622748901441562363835094246157286623419010850479472652971994040446393339311640548757665059959642084846477609373767308783045714890715967651265688518143447713502111100162451254921353743583203432364883594953945998240952300045048575583825256599898668530059080321463216710867124530568001645521217715840122626662249013804243548044112534446812339667901729479437056920947205775559647224586254741931030860095845200412868303894339101719580195096040951075122549380367386048290717294482968275345420903908978882954408310009142077240201701425850150534570607802922427139099906830330356815124839174940410103766732038146321619881241740673949889060162194626749779038991618600694377167381717335704469982328025412428847223070522316547869498665723622817365650209661948889937347281045077388908557816128356138759743821970163284720549973405015770000982163679306182969239163199260445429179925787455974735186656935591787986354220533241845973806519248834289127986323378480558443187394970224579232625768238691619795346603813228849273410705866250791950804498645563680554038641636431000012653252926051017207904028794509250165295497102782895902974412907837370892073695254152540240692941640910193793120980395099971941511872086375760736707510323394117546922171033877832622778081329833093033604111288552001072911357154180941593256575669021957919949989442880493815665916986961004229653071162027599926669177803498653571844422097337023229033544598047754574386885944519204437190569389938256154033240634314755870759520573300231415523895890144227513726888958142230017852108305172143217167670772699288477650422822751274793202196758087728187926932059839522891667888718237319509831675538743249548444825139586452814721758806175158297908221450137555357922340296601332842285855727900709067792876941297631111312778896122036116654004910321172066485884426263978685540914646795606706409441226297184854172121462989374511750707177992670556207171225955241872510588328637383136729442635463792346370138940173469424715199005387391746254744676189411347996559365652006995564613114226364574542879523999070877331347448919183145439614478648105042569628710503750025010119071001735254995473376159877351171222728742218528497369187362468149688766779054770677613966954442624787710561825152899136530333029164569039176780071683390731456400228559810790123604784221252279374314320902045684815572828782436169253235645206669419223409165556323128183538666691306091297089148124216424748534469550514815076509978605259987297633195700648899547197375369624914888057800329268664164638354008235460270364297581299717692674254810555071131209398685212838155898693856464471891500706193192612246938810225871171274285061765932967472479797231295273774546692737779003732792289763253944332124181903423483770876405727659977425096672829240558030593628214522331745751227529216962357136377917800215008679521850708432762616778050915654910385596879924001134651636468806066752467347598247074942242025159755833943388759506284477747972583076016060192390231417866367275759348708005032043889775077050248057883560737566262547945227751184598942944220003582963455618366179556157987087185303167815214563642798082561746377614669134809999290168078976661522403249691341867637016495181495986499983370127721990595830237085368006104948830234586549369841307294434604235255871429339464338209430941269177591702124638770713448306735661659708570376853043406376129388959425647277862011253857095729362628569785728785878823445597708617771328801997367864982509575097539126094223233534974861877643698775914265046884986310362884741074018628099601310781073486326111465801092642591613320010481488036978260936725424196660645327088793144508040104596193373154703008192522356967086129409857211630001990094919057078546572055737861140192755062871392813203798609913972545626076137114867786420518345522574787553784284479949542682540354187230609034553250169360001388209379669109918086013953273827092118815052018351363728862119840872338368772543349304725474685073452090997444168875563131564292174471604263845856380934045074394592692685926403911991030052602541062297702687933024617383876627651259695463311694329351631296436673289952455914302152497448595656159801356701305209669862714071901894196204049889626992643423641411848345346473018648750967302035556174824207309456284156513648764497926365463158720837680483226805466925831740310498706115128261697322959529762082676323626515532931498357088173365946323169797385040229969044001824741566558557840355211213410570213932573212042997383007500216156297245836820213708195310417971297979058843794442099995825321565741388572492604168715704203537098712652353730518316896703079422282450513500786089903723788812366226258607267515167475741421020274042362651265240875991131038827776652949008273554176028011769800023451313352651362578763081908748097705366275104413168218521406915643031719601533509136701606063678715487557593805383175716865570501946781996827278094219943419105683982816374245158952007861699004485991782483887616003389323473466104833267330688842569253296316948231223852003412834329698475332345712830508981546617463826439980660133044449028173811842054132770688855605206040566805788295868775977161867797315445720713145143732710540565092105450500241492066955121872913877233349563909385984783442573668118847098695693417017502543798369780012320203347680818606159988169688807816706281174212800762798698942273552095572779017850713776336805411408143489972937377249478135393700522082116808925005050202716072359591827683917658353646337291003221535933885539600872057648758070392231937836796337920416648609730726636466397604797699861881629932657388425158567626782012548928737555062173460729718851542909038455471396124649481850788528551314141252914860698451361282233711252161087004537190206948252170853442991020574878402918530261437150942812818131353882587710495522505266952217195706399398744262213675564245367794338020134341033242389286277668590935253861804242171786604176958475574878766503793521189864703137838385441282481101347513446393047257286975729728522963276931040642319007560975611611766647845347467605742208516728178098511929658382020401158595287882387347964623453605842202248382405720313893363097393587856490309616722786175650724949509640550631058831640730551820853991822949470881737682011165174321833182793841714325402889627049067022379963127609982424858382475845306451132344235471970746979190956792608742083741944002463431017933459912499779906801898751669569406615661615214153644950818063443288637326545098235293556759705642067249896478210153423098698656767265763346450405819878540660681594931780265368483286338379609799578486383997963470430815943151851266478897202972544038207747047089914219649042928147623150134748695991968864717751640624163510138314209684736109250322538628628434907948358124167149173652547135987245298078200029879247882969285041049046955222379717082205021440068721589987050655540679812131503847202838211142505731601246185336960269252434914694346551346171312826658809198945257867885912060614447954964635248083719825731585762453365473872267172293353023217604669059430414067036255875139210358965723747013977444248862364628909008687063124461011851276961015129100950768964989416904950789045345754263432662161858980075453967496746862625289836160730381168412149615491345992729338967796980792483033981140082490830863198423013097796559754992965022319667428500490996427714463646855335733516053213581612438221827058752798456754221563378872952341423895118462080891387206270476828328984845650629533176664219835141732652107366563365862045574818964055870387034555348658436769078194397212486046478834902553269696452458803436012661356188348224678425116174382866862807352012309710604140680760821436292327955925187508100829772137589923476447987139445662648129314002727629346957695372519003966980591973234692150948356983450193293191997814776614658463379540165349020366822720292695149520073047099726335859934331239347785874854258832965893229746532651669083078839872043238675992802028362830676412102617204093515823504661364915729496863467954063918407199566279462216493419363901817722884860371470807478353602423663610467322486070932612445553162947679553698749139434983063160128672353578235182871287232518659344503881427053324065173791609878039033386493579713656182389630562523418979021636880406117416836574350414297573576999251694035323201333392181428083231808513368260994190763134207213879963988139457880737948502599314649634397736176109200644451847940256222151609990935024388296687468282691121085901461509198051935051707521072084361901001500722233600045728535550198874056273070803585777882792323378329589323276278529377645316051085236421625741703593535295763637006514336756406736280900290981272342168378739115685881376528379468149191371124034866455281914086291474724363912967489172143359768239921760102460677223626712269388603056899092476719101201012794213527372379061922461088890095009277750412637372588261173271403799096462937537214618879278435199033916899087746759779479849899288798535289807390952114067996676435799626006191263168173210631896735553343303623006869883520013359810175944605596447958455453374254469673844693192567487159665283908942668038462332632108465611288624193495706366187881582382958530753945589979679370091274331350329972735279492090282847855546083256075247796215364069088941469613182205876677783249755722066326204950475328094611463601709441894445139592153440688488419454355844643128638039081211487838437631198715821320796923275752407417465625218761243698923649593306431005862395109273781266551414647260978995712670647494012047361628882099549741524934477009397652403245884079823377534338382267063104128565085785198700160404490015563427959700384284253173832511004679791451626810547244877096470249975463239520368921792993883830697768208718065428198557803252647059792844993251141642075148903995502528922152579287960727523133530240106513699704527965546850434063464940508621610594839000145063559408809982833244738195242208419212559593406983349835393982646621915768772591655812572497505805822048168685583272701169730742325240272319755412570526918671328243855471724773740531333288931153242291173914100185018898843241388371293575828589342720068925619706900773748722865679575926997423229113909899342424502305973512054528157164578313739945284261849934134527358243759936534259082832954204883328177828673513609484785675718992892098098865950766512386623878062731115575454210144401190475749791434420810512976760717114636120380997302443465412193425625985820061245752773930058018688071759907179062786602616564536300167033316702644025689195225641938530001863459155025614995611527443535470990709000542797063611274347475831450570207064409280180096518240969953422042972910595116044880585640363555928494683329001997773386695259255344124157781396250165403295783162826140105769811197374122936600823486366343230619586270346429267562438269406309673583776071919231967839985303756222169200321531956104946999280401524842781379948066781634940322241966863880431926555896428664788870869847355375230771825859686883896709396180643245447955517536753007438767254527974401224669979690723545830884238115812738875903025832462702503250684928934365879824463088818506904064362660408071627567950541563724982838688088898712650445006215818699078040247041357691436443379348004705275251894395178619951124183002451100791047243180171529115494827913568776635380268445782910544209338265269017272864792195655704688450869111704375080472231142776879991002320659314801391687938659672093443998750953488964436957856521935052953607376861574236996427158798428457417260204366530858977672025546728002293248029871091893495662178811034591023753108914070991203241069800469282328055062170116546021779805554504169839553071151059805810745688578415094547681249093748868230251833872843425164075298180914520407306968613506250412875486780205122925187868044632840465061203626937836128966443435918983938944028610461963369711688071403693472707178869629925612867843600948544935941057934273208645486425694482369414255557657431059060168261945689739569571679753844257048281000004018150037192768853499762879696845553748485854742127649194323544435073387364818956524487547626209552671582785984447879650532096132091809407037670869147124542512724716492286982009364430083850045311470425033254913931462995352114050010650181848771341144791394363034270850288842833283703791892475664216091644911227992786239301582911210420651717234709136551510521754849225160163152608364172573903134393447894254637143004352036607389636509705333683114929888298560104810876899628688715519536610679106610166432248392222824627322100642492791171210818582408320239169658700467784894990582164522858649175871977666096195044425423130369971071607471057096410020292597862686428828636370183381885751095315232490377945271617539262001889571890527910368661205410920677091368463141735632324038622503703598250669187309451960823916357251422857727421236487029435627376444708119239897646148710899514151147329056977860276721605515584157614176310317446708973321405032072462998077106674088098187371333102838746374053213845200585569913456703732416742634194591188825776343638594182890960348987352968881462320514533899655162080330648131413850102462712969707807150007427167886885908360226119272440545971655637027936009064393078964689668297652601619640582609341103974035377465310124500219195290679537078283599871404607582009513965452743507918631714064761702178188202328506150630824729453741295481030364881689936469529252558583574534472412298703396244034335004508016447693235866620210281771074195914460908367823196906957096498232492816469270838548792529640039961581095697665445843894058909443068156010908691269169546552861737111284083179081047202159451040564041164216954487858541375196523503614983915775728390004596054875712905819744008668002540755898309891067978153155322779415639617770908664635032793043476211066153439251353890336175948158728267402039928027599457359204568604502662296705711898815450802304679932688891498346918604372982735007607677183173402631815134081067501931124964872876006967163962893077370681714619488759965159670434344080196580919556494603949636164433595147910189719115610981048513451879352890113335897753294852309473579241584930915616594714179932857451510720777291387408385395761501915325886437611447243770819635194065620069690265331689867464698710996687601652923470096680024325588377393852987412115205895936920806286356070030978899957655968892012305117451346646213784171955163269720164961404512098239471784125308966033567256763347040823250989307761801359942213034479506431505607669871212034093635259630073807429016024593366521874773001513674107613577191840421544361775132298289341086642052780372621724397783945923115093169782124641354736774720051808420443896819166524030724891321166297481071913413369232349616675035361354327816446776078879411967548776611151671889287954651767860205820618794333332762097925761019585513061112547427069029255339986395708502478632789641041977220924383319287778666927161989118949872336185953290259040674640353959172585354702546189850581462746258407916468267874265911972473634175995919616310334768329812951556693732693171749678906205340928418686699561383663482781043149419748088002945888589324007941274687750968955275258199828134119368006332165280680646017549182185320278538491454681929931948162996308705888552080648151601125001430460414928961089108317971012135792789261652436175043736300093198198880328097866386127160969409433626675687384217969208314384090970180695335018807904101236139455781688888745249272660718579771052725078175271429327834145943339994159226982168025610651096527587661542557417402872988427936008427271386441807254420437361522358237113189603700022279060394100666327869411076232761722441715669254710340082555076442875867762527429601288751015301662897228267161310856970187716124387450292057997056108012266282316607840179409377932089608056558240687716622069912121206509083139528245630372530458368214914469004225781142800815286763645101035801014197598247118064204201416610652292864232045133963221314388692304274931880732709221213183388090008035125371747877326835486343302889245526529670296690513278463376519713131415917158203498109642923943356869169649758978274522996181475063851446025416199835773234514704017325158641806547152248314672328424978080267621440277702846762222689417273678272576991964061827228983498667764811814446328196655422425853848554874880582203605273402036990845056653964190993261757474177435724490883336215135997705221416842843489427275619109492580817264188047507760958182943641582077403163853895598898389285027251122748512803403906042597837449599012989095596355558036067496424578585462913307527411125688582462698491530791035060065620237560143740036533346214974722688620577781181328789854590068788265953404275313462895321396721535092054292009547530197289961539907103429881108071382900443611505683159325679936413637208545771297591144088615711948882842857820271557926420705107192572826367284450309019695853717574040070739482589032076692864375634096168597514100889945536502711480602664951407024145599908094457834204689675922458029872634445246901722194149413299707867002809420331376339763423796612282525969799749706499924329571203007519772000450351501440739224406446464477960389135227489718585497535301638925759626743405988006604224022143450159280626395099163906295478011057585532409833622447509170772486391574918671824671667901869189950081355952836221513868266772419565808352399980859364563643997524526757011029604663199093343219082652959187305546516002760695659926833490538780208830275766283717670989788876487378463479998117010691930892863034589217013888221619596301350520563551811049343423987712546828932082384321757448775659851244955931915058696489434478952241971057414492848497378446243952519568892828423964044893036253172026173827623224949764487008304575471284847851574693503905756861418784792206921893320466206405346155375521742783431932492994832529732529563831335334715968533084647782277727632443282994874910768216015215852975738500863203581027225997347078341582861968619332353707050521507581685141263968512700252755070129421281463935577743772043212591207291273979286729464421477964690205731555389189622899866424822600071444605446313204106486602702569341235318008683993361923781010788964841004007980537915923975359098943764528979097857127874141939423334019258623884134861780802499313420524546296099054595532790599435453938170810104492717349104033120555686618959299486321230058002569269107460807156339903805518555379412938532135873567043455181027899355407430356660276641242357324203702088015654721410049059378383557700390224273183306472799187467988481564254809235440894620585280305571777161344133030824044443522003038564991635566336849323540323461070146971336004669210789867662671762516018049213745606612660879206686253076426126127622576119599493444056100641569071789356445564630864297783699271918466365495728935754475349436135520221617523155269783861396065072258422032067831968266074321274510558839852648350166444249449564920465113797594354269746136755139557952494377873226414526569763993908768887660585971205671821654563320404176235942083504240740595074668424101460506402705723998981488177819712244504079890334480821040958968306975183729129065028708212423296195106190434157641206144646793094405360273089560883961448796959538829434718781367475203317836843593673809471367179008943621847441275976800512818911520661382549107789136270403706776181931130760401170842799578693286071113506225219276072011571510530563298142548201477238890594522946456299336015519204485068846925174834959275676122780244430337331873714409530188347198640775740814125000153247781755454013679277541414276752116375135640304351038206104913594408470698326966552185744255065152455710638461841575115962904186878501880651128355502832385204874916223944520667528481948076588753660508374492247833077950465934489233813394175584753456817035946674726793775080150401091299369329387396056295679809978215889389002273370876753144319601944567867907514782254878549466596027261265022574233604249953229138113865921899084510337415221685069499332654570105158810648789212310983630738902754752227894882025539035039554057327843128260569258620430165581892076036904244068684882556099468722304790992485071174375094559886701945200599638310604914436968490511950918295536216072700187109762547543144499907930387725117432334366054574426119677344949529011488674469209322892999580721717328253614075541365624153540265638701346803278754306808990675278873797773757437936912440534715413594124298723819753621932190524776071876465825743449208205676857867937860855575609175413024921103324254093956826847060826499276314691644713900418253344789706827085420905381551400406687976122537264404400188295180947523868169172021389294237071025423527050680832048859475563101050172730286255879127781169810511113862181621500915000498882491496083448531304606162189030462108612078040060938720429236431395457764313077999171995758501464378875742335642967595278193962072752737693182159607619735274793823999414430412139849953239387103811570706805140864119857574176209145058755977850543699802542886779536939502409434670967250961618372134186273554753068201352348799685079831707746507373418528030632915723762958117507167262882108263492262324529635351986808885711182705047170593649848111553651334575776945227860305674407691344537860998201567920489508597089784357251570347903930416898106587978134563541872915232347248999653837433332943143689668103980805753188081180480090570925684001628976058829731180592626248910034919692170518701458068629856616169364128452642427525618291022180393095243842038413865453802973661721282060372897392777467218316318532996341710680959599569413366998302637340674636863777998734371622975748029525919165724875172578282662477623364321575337457789832640749160749690263775119242259995900733948326964523184878060205934148973862061836169929822370306552632320619804978778898145577836000022775756540728631834650152078940417905113902298203358719449983352579466646617887121357454499146230643564071014515623977207837243163680379214351878195794559037564951844489259419367473332221224474867178784899024044158143731557699445150233716366396681385437892290785844052935369812385083415479543239261421688318565869785136763521363793770265559564731139083734264434338612716510607851740874488153601882240686553802691842381116215942301958140079614770284763619724960056220570303680898157229519112454743372762724263623687205168996470645799322091641279568608566614065874561778150592987889345492504080282009384614794167332219295514495707571424350482989856778416253852827851558510828922506152029994539403257843544990580851758808600256945363174467135320470721981085902359124930804331553464951829399780582125387501288439280106619730520536136524506214360448554411119776938617901162582445260220820065270361063613112142936934456662838270832777716987354342452082916674245123996636135136684323357780572318099900724538237437238897515528556822891742013866122573968843502499625813717769577778787941822153962472906840132603647578341902014361212121270220677876498110317820805528801319535812572199624336000042956157955715996492064731093187745169042543119647988333467064674261239916615339541835765963568790595233943031486294770960237725627525658628146634632824129095509078840063554203012809110389865748486831889454509765277636464538939686034722588213486554723881748209150412434799149718158770492621786665649667101607282300526407128260099999624944240294302108557975424646370215765401270479879858879126082586649745737034203982713450654365143134934356549068027079884869301406602501581625639410351800514737566654393392631795684951423840585354939484037454034846273120772030675314757504185195636353254553563743501338392281650458570462760079590134573246703464790376919683776145698034274679479199792448822219826232995649516540378909822502737531486142683084844852418835183974795785519861395998822754487825077589514810726889994827520433849012218567795317068012525859324920450368363273022131624287374884770053992437582304641501052388005093301458150025389210810892931898055920253340892017361847726034776598505015511833952210653454163876129631625930360372262276339746474142671877023196611687936727929464317649075113570162854036184964915812673640535334281202817835063237527526485008734160097775608207893677636974055767128813052919630783836661689438555457012502203609552482305362341751540298610088156928607514546041933778828092005252393838153893855922334321958586352991641769065978481670266132810239255417315901495645423442636476473423383594687381108847088062322682436613148507529657730975259817630322462818787279225391477061909726992668615095467375311908896699787292232415455899544206259520188070288044440133373632888537650436893441657771203594384055025497452594135631160004376698946429870548215302196138587246320636321010006441979813201677185447971620793448778104369122448557514443982608078849382039317505484628831670478762164888202293138413259392397490158586564757072122641153075586330562165966479482573525597521698404822161321130567737081462933549814701504225207139770473040145965936680973911319806314301583435672111097520597051294840165856996042893206713223515679863028824303971944431099179124724773803151963629315237967251145173430978149057673990785983303886346340206682357742791505993502861884113027152658124960947015236747475527431834886985852032779139155340455056091498734594862098720086197675297091286328900213633124850503955578926601733816916519052441440113576055793268675165536040794473655818789826918053674942050418207403745120445289623880876614661777052657572953519668951544471731567917378589211202185793023935672151073623642297951549803626447748672426540937122749918401514056886671980564938115617179901745926493460174038474566132930920795172486124429502477036940027755759458029469791737269347846858594628449105390051272576822724758270913413577088476092066219213555857059441277480932419375760755626021211555282749205353911610674532944856627525673876608678128176320581783011934142830539884912407173254762244034464559085669937411520263351084472212691833582474984063466454603659574821216006159369111898546879400611619482488543889873490312067256175675781083622125892882021918682526360985647377553808155042502593412036949273496815422182415335640189253757971499392158205559880016259480802332248355928636213237508104629278083447446027310537931735786359624936760750458531451434239871928380920399860283689633193581924622420258197676225228033683241972806952749529047478169140092584742181920661714971611266548714557789787434324726539044266113430831455289368886510398664453293131025511824768178650301496623799582112556778948073725229765747932275587196616924144530163035153027521731931899127066956257374963762031005135922107559935881868979496436872963990156413026931841361268351343592426168196239109934535489738127454695012352947802357280395810294158347247813604282891507852652501601468338136554286342119744590730630540665381220375779490887259451918768681398893005768876750003115834872286555425271662445051512425816737874182128586847831522269712982128051180837344319984865194070073695395113182573006408626933599909251934969347838724609053367661598657438196267055567635840770377238119164735387561238983488346939835402362021669230225949381530975492934843489522355347533798305119416803032554802177256213666406266910971429037889616136191219836268517191621346341203596772517914561250485526353837081266291120527616713900255234653076404681617889438440188887370103348503031444320514130219995074435716685153696191871886714708791204936665605514281547841405326343184432518368379043600302357533610997107452530963614997781061313186644043621826655167366866094544425235314342829363811297342019110186062243010856138606238963466201471475761314240590530888205350376002236822241015789761591899559125220831748953236876400655648765498638874815411940576909784970609704810155191978968018652885147995381684638802035796679157000458343403333196747721065319034102306328815278334712009763966378122871669901064886687922081746714829439209440742160802487925169252307010841430607940316119427976525264572985891519774257769112961677389354231921178027885595351097754002137921469446814374440299963609691209067260894712278104187648243434822562804236820843371039558237202420432534029647102923864868904376267505612881905297473706171365215395733201402044532485134967505408493155373586099289817417203945550495070393183951535707655057633042516355079485462700358176203344969190310300624233400366909155170208982976075918223624720311128592131080112404448240225351954781222474347609195564308458604743306440992688893520219465828820786716612138128343584271432364947245690335230170033778534707068445495415230056305049951053703815716273733277064517399085825439429430697311729430847540564456779570804326443914960296231821528822833214776490909607384358444660456178303308833235526423794041149426222500070557697351297526194206133180835640439010743956652343295463766041914967422486952227159886272536215194697722564561814886944387119238153891307931732552628427712706101010599298813233579129865923915339836090978588457970643529547823772443550830242721975328261411929943403271873347037131570903366044268876295803839516000846625425549992148886413185069456426678864836126889174583202968329755934035896555285083817772581961890327601349646101553033676878661990968321918273171559280520726545086429000915875680618462842555254925383330025300022521877400074032807138008161604156886897481423522335982105040475538420377280469076768512657764612606348323015970757965973112286953242623760027143762792100426916105314051429335405573143609229288760050284880710978536032206537169183683773210900925130238676700947656249398039627620512906674658827459273725186980731231324461267935990746598869639820764744477245867911303099178262654209607504258488959819663005924558789483478883787519729931881249643696017623751722635825806641384969960172961748545869426192140030115492707441539885479032174668542042398291404093589318490234705536201908880503079267899647291217160925478417150892435896127634289731917645254115750046117599701667120206613011095499300086051014938910420312741449503033257271220993786481709906709747467898866068923733168168817603360019974483924584422027353717881916134720966013694162755636918937299721268979421576362686449306138387505656105071459054408830948089828388598236725977442751382224248798937025489118170459537455527811487749695630079485194495473541412258802553061328134192624362980487664210633082324397656656046265355623889434900122082993194226956751685621491286535048051773640666983178443469140422809175548163138412826302278739543945850803580127933935040772450296094449581063389655936314973595122474444347707853356097321232140012707168374629798546772710184915309161533747660108634136358528303521004884588618317952729289226771964714747914691008661683054735542039221437160104228531668479809527488955760908998660961715905665966909585432392038471756119299335973487568061013281408050566190880290900242541692244715494830541658507698197309044597747016123201981717600134823378412394714849229040207350123381080201303678511370254986091607614595383194691974940070269870727510279371964985806891597011228957782967399776047208439722252062004587318319497218788956339846744798678242702542408924800749334922700778359039018804359646932281329857406655251028176125610934494891408957910565528337502032470886596687352628718385878384442810391512251435109336154388359250095612252707892270321581583155540443305200908706288724142836296281840290978412193135368322217640580470823851215091541700309903227972528713711024780611122622115908819826090474152410019304281391280045857201223629749068650651309080586862523241049103341868910332701947914974553821531178614598049740799119134195083195900333862807499913799618422465809804553481972439262507541582654808811802647914203978137085223890270531434007536746840274267473718031374124808777057455086925677835788942485558655794503615932375513820969437309024775586199574515271206356093977137290920458086030838308215469403144140494878782980042876881511662003559953165671940003080153333805928247874362538834383425717786155638849111417715014992028954193879634345360371878411094724385107407118279809129569528301519806669622818000067790506414301529490138454471592817614713793566997093891332238503742372895362092096044420197333648573486292181100691761658254500054522784376478937082013545900194786956689413415576273180728770064529834166946086705090045623947152463589798765359362114745123471289510884032251014415689219014256835845857794000064394649884806857887676604447113159885471671484009289319073329502444771250677947509537568039636355109966969211927302082108805660691447315962695411025516549982335252550335069225348168341685762498195036317322259594820437211717365818073995236852057622598446934364842767755464573177591192627153671612893791025117289584557150741808998586980641485725881922506886557737086921515087603642206507713065265657752571242678304345390450972339568909070943560165269747742164748600897624981445631065370749768915348001279295599053433555399757901237047710712174190738978770914223636931947763119147937711847834758925906412952282843392883544868317931104756892136184148361067822369729197261692351621697951942178896039135873094881419382233549276792610875383894767704607513324585831015089501636485794047262761139373683531051915697309871321691853237315768322115855927862760998827698387675344291784953029101452750153802174195708834040015449429539530302545064744733960602671349019023899112744321222366725886432769115096568752722146506611426124291777249899216621006939852403739222351737166052653903265679705107072472700494068148480293404409149461993266544538085841602947275471582830339951918638616082399293871483607821381461629739958749351661012473865928140148673354722031200685367658123089217942099164213459028861144806959032395149136301240113944253488943189064633901372962696450173831785380959219713104190458892955192257637992559071050421623506147205834675245211844399952623489694826692497058093911878000483098655792132366609740091083350031339040978459989990549001301477610538609847046721415971857780743417380350443643652464590260503345222002545794886899206148987790730504595905069973992623884519608031851439281772059595480752001660814383089704526311862152833655502516192773987122434241003056811415719416480469189933959766606920727447548400332296974181101768939513296476305783522051166636760650643477333144036177863755644144245432746289962889329699997350566772236747745517708489381343594681397208605404345512890655142565963373151313462357318254193980520719816405511813233616084728692480766349408296822500719893997378874348843250222888877508044544488961640998328343804180889933433143174550556570688169675466845022075671406561450968915099120885026482414969580126677472653515426933021677678265730439764486424784201700997653865732236220519019019448348309652674052224873256823966067255086677799814409623208055089922953386508272933382179653175438253250886623785791467428010568585908579475426149697980309131080469829632394525814715212667888530886695671456437282379304757382049817549518011014247089735456305497774751467071026481905735422160221197878594254201804320219972419595854977230656495213282889159666770419211494469037486837043079520649124792290332532053617298443617835411574035755162700326942067993557018278728637010650321622238002473093335168606035568098172699719545891140500157913593109975870246261139920253812594463514465116635712503386916368738400127435104470629395698057574546269720109141900179300371245159350567087848207738907283997986308011000765362360741408011527665985586912550385293670653309001369080323606270689229689249855877693976931750041029676709742771664123304385263801590240817341157186341599000867123062260023403775424870670031674497147948372628643030569233256906849706865837776812559531397221457464562096447236561004767619107242234312880322852413220516349542823719164813699652875870232846272101154454728796758361945732592872231209969990033694801079276842730391974517987947495398675957154934563843470164766045899189815844818115070002396437429815789170616413312420761324059899477374028609285185563980330878777327895012160138373018135533774303515951678431809712398599448111549953527988705551014843145869111584784449834012422497941214307812451454734592682421110552407437607292187089374148324583242869872961184025019396254753549361847422117888949857165018285870719837214223286820094585616403088629173594586041676539320433986274368845896598910250407483196344488893632896373945811740297654818700184652570308385877887221933959009884575972951199494831972974283332525561035102502875866794130688717697846960540257568178013718270497766703233727234274926817757541456435301148658061163610418797463606616793969330715372737117042525096715177382298328216348360319244073645799468637129274297967605501366599307377036256697293833618630406470691643249055672622521528719265652839856843309778755220624140321711195909012610113897579279744990425682876694507088199312907310436752876938471163940413236692608322765913079523090888913410510326165333285009600183599982363674875403008726731713315836665351960226952302710356527785924821882127115992398105260242339721587968899718433239681721996958392178549841033080758784408039277479850332652698904039548802461555191730209513827884358856931050199627984133504745986914505049361315922351328253722568587481722564593314291431640223486971406515146649222917074209402930013974596550627035310266659594422836047157703424717221701677122772886371802033634019275425211896551112974616097149467729731177196239969068660126083422856044804497533040228798925927729282026174811230625512840761209231443521717980830207270512465814939744894898407884498314940879527899028881644894001307560371442423496953020276863814301746235564120250196246597673713760214148993495153274178180611108836714429696751543194316776573838139594498257145346454489244004257120752171362617053372863429945000326795143200428287270278764840699904776284816792884345994232583425281754779184868260068005494370925888577982736528958375873777963726862178725247215349172642348134370508068608581509560314994224592581003635247461405277743254999869728726134509096264257748702352451956554204605792716415900121417014110244275293680231607454859429381192008309433122056940043037568093357151620361743202776221360333467616720028863876954758194655795911227820779409525807195640626465884933661956281709169523694740648550990820562439863200767995975342526084257168205052442476597849961958501756345992968195474239115017816498933016787766660864991698516492954495124513608439150159087783325922034211367898293162765185871403815820420100852079543934428028143110487336814244250839360365298546824058662635321981677979098697974821542641386924039677013588861279668313354623926401908560139355795745079297978229027785848791294374666745314425397784667524495678558440202377407495564166061630085627207128212575082564378624341194070375686543931485540445815372268412874873068206219427880508141504153477165505884248817003950586356381863266377021134321784364490923498940558395314385259193593151012651145178825983251882983262418195400640194983291536722169350979850217207539183480114961078434513970420049654933421922924205335086025315697878576721278104468803863207372719128318939628534853472130174295534609396685078679682368613840906637923616904477048903676909615267386189217063904945239933608828856340319709493975742788642794990307377408843670813453150020251450848471968555172678195869399999967405131398835295944530646824357210979488083631036519093333949994333181113489008903711178799833478801741011472679629450855990106116927512230124100152931927704557978873512305810026215937390054074294360428126802196678985559185207880250793510873825031468355153834468702553637895834995065361639152107343093375236173870107122713146034936356104971315597679205499716333764575483106784178512147546557142958562452415567022006411982705273023493981966881232168956374878798395483229753467350790786173833477246761886594132098952264782269528158383755559960703527519462674074953690735742632461084137646824027562650480378777249196965947402993448941631084988509925827707179550147628452927920751470693879484964711187188411291453765097169744100794940037126957372958845276734068580202626712800506594416516210515062039742701169933655583297905712767542667107845270351759017490399711036219058032135029832332607756795740656075785496665513891147503806413329688000998154235227062902074694218540956557127665301756418739871102603808608946565487204336253276242541255591224812777538398627274725613390037898123006800925744606407643394874581006020513277412135967051711862264252286691522797228296975749531442159804446336371556486998399418049203304425674528226462363836518133146054946884332021720834730787721184256735658063661180420113194065497434601445413560200086775211577450822252762681275277278793268966087829489228875985956771223717102283768019324046185359054821824321807459937713634969002351078854857962506726142373123496464300679383052050049944862222997977118096364471647498653180496692126466578486977634816380781747559914955557738268841276296486961044827697464738568552674735587492095210022684138158176405650398055401851178550946845286275520638223455336591551943110469519687009505557037855171037432794596468636338279378380499989366999340412387665611892575853686316494648824595246363722575987946384478247213164154045912146192498243884809844186212486009469755096448205339443814949427446534556469319976716004458336102162509882415812026650067133273186955559191647779017856320304899358692671342063860583912665378937980207855187450068562738807711685579136605426384557242260949334267398658326605796209964668498364675942331201268787445963147640971166424119029587436484798491559183117627551190428055427319319740656384697243953574314748214315358686722835234952511932762826608190648659356733137200585477318264863864544934475216422250799631001048225153076370615104536292454588080475436790528805586089848132607259903997963425723914271494315703644980119585322618776239959877532812465080359814525263873962365752420503490284805217440970512827605114125114248207262318761105997047440921781931197281420899197769691972039741911355481723429471431966814827345942422623854628765794493617177161811404391630730166862953709237230752298877193088225219830396320629755436527512389259386323324770197917081430271297962364452431201074964783618132857178880598705170340200969037004967055933973841649601092495814790287842035185726486215640320729751272984694777253672042815456928516022157469042928793501503844308910852309458848493567773023186053299993918541256614377742106551097579283853194197561425509165980800364373288292024121685629536075976836144545416226757940055909362600925563393866039873589539395795288820182637055579431799297580031913966707414544469406956151892417853443002924973058359741560253739080842314574792123002393703876003719117301204694147661435785719792357536968308749404128254230463122661611453673223914134886985247928814981454298816313039374623614803904910944836860255265227150545747172609834312925668267210701205596702311548825595008808445230878012776056048806311041858757489070916406167705992342649006979329523831892328835569236743070575254838486270631757727518697102985908655179519905395607737970881277742701869400890526911618439282427536615343856139869214366351139153018605155231919183309916840862997585491215817691889630620438617087368087499662224015993180808497789274346624322251599238877081542428204987748210126650903252583404491907414519108705392310612272782964962290300015638359723507839194280981388522236514289961800098448595722310152790358920005594160846872443566194576582979720596682636498835341037803955796566856996348407558056823766482225634239147305844885611217498046820358808273496553317848600235351477020008463940371451942799483978371405219566833895810204747373112618168938337216936041680515279077166737047842394583717178091888912687663236526975449169987399366378142200184745209153944853630137633497291279314866072450529434339244235924874727110772168344614623314554927071726375425776689508821607829292372097747674203042814056259522172348869932853806813586979103118993992967772888593485405676966243764242860966058134923648901956638426032637592561998140865449734842285953810768993067271709541085772114579391121761422841065315824006709106093767793064240649374168739057123330081033760735656983298472022745500896225265650415744442540125213792568882107213854124978706395220001901930613522751604288421024020329193994390928914802749351561181609167608045589460577210269830708846944178200982337365020001912860907765036902762246120698329087776070341678026663998166848435864427455830215656572795987960422116217293428519641892833794071534809737876538829315727619925103677621240182292057426336853827771489990485869828801066394575651579765312844757737454298636827619905223136470356919119805699802786055867245822308014140918054963334698524654472410151662720597979321057357585765184035136059325702797339789416982221347615796472747061179223831760060284282315545231394540143954530832693209408626716257901794087890953926036217348447082407889176197363367916585957114598814852480996413208613247751324270098896654171127294354050267561208198021175073769606209065127171429291993999202699443766138537167580822487537466307755788533388998201701114878375319414371204989256397516077581912142224056500888829469576457970104425531068294417757345888854607470081655726293366766425550150538488512085395714833744300753182707698982279338261045095337093849853967782671180755298047003180293555902986782835616289778852389984412981154360978483246779313617870737405344799387941422343777797460991108749167140580580041011558537722656915893524118303485312302452011015673519282289178132642620133182842300343067749696570012144446992818313014004063645516134397159630053289987435595922554383489811606065434801904580436354742016207872015693182902876478855452055253909458145569948569068639445682736861112000644299434216400766306512297615695236435189315657926944442408847190089317740519330990357000787221309888171273187145689330757604693427110883339112244065794954519052273836750328800699335559088632222054963266646637040939394231570966564338193710909838829336663691395673667966592620491828240997689273366786776583728612714090801628217808862635948513591364861323932255416383414585474175807988085496946539398979136687208807470890437719250995857787520862941714223423928792191206057842129740728459996864926115418294597314590500343246920306933125820960175661370837792934356880455335610461581753538010596769222162599082570076570619552948225658948111484771763147515678498208330929513083988182571957894192459095685827380214393206032278660858475996591139107305729529211316230062711221841864426858273098614611267622165406531053602863432267742095041823130755166523457951692540950932762920334607976315620000858890306674562656843097461570717428044908020517229884786787053138343052931120680346718137937779592726331528238016178049037481332039663222877578062305355577194985992131237492722453441203510172666684648063960038126674672308217466607490666676611579203741597004528502293954605611754567882596805830104502237895622594294997011364223423262958821448894977302095249798901750176758267423456324141491895241153568174396457051732625979424214054919578639420070843624768093787251715628517773270586564387572272824530896617921603051526778154783525465393732925418284674529470541659505457497523234485468855837140276242263430677940867800189616139412875971471512491107355335075528409224533926773173483486736255204540536083588957050662008192239477793346160087243223770436047934940102936762590652896559370053570654810793056039042161023095057951749029430402268381865095023017370366139693771256032036462209866772965863906142378413077512017773655314426400478729969185368903600072680791821623778178922144209058708309222908338168210699719187716031061377763467447235930695846941954981818435330662420824246783256219479540348837135429688976858380456621489764039488568697392421271023431984997055512623817998319733471031023227117916795911461585089201611939246217498527480426305133055912878312038973542314430723400047321898653339373770024921649822613889882545933563524693555503910246955443215457647093975172668775007703647767054307760966635029715200247907276090580856848272597568966824266574196037047458707551530224162761354835317659125968557930443827328772950939960751144132361897244087224462263443906790313887278739608501454896099996454330495071009551913227622897766073231575552415402259781296451505906792612220384116240709689659249539454813146510587224366790790885592250335081675894807490706697571183956103256346187435061896168195558508665509766575951989429868887537036316227305202777668848479736707017416650522265204368157408473393538277881762020935519161522219415257736834605172406776656892301325127211532616718310776831992827978627682403398975279087829234529354350735986631931639647714284308372914211077058178911494443136579726763761348930897517752647559658456303587191819364177466303241536931328290754644265658745804699175740712450387444489311306171824882955058971437481333544276391966780717620590737179116702010400111962307527141930822197513949264236583095996274631286722407841605091590910546900066232090126513663247752079021123717502037848703514254176648476063162627760734987288039356486534858658072629750482467608313888612176552473012342462669941204872866920135261527295997230463135749650750941988109183818576876803231527227998465190702968784841202086534662006573123469249512757341964063098484952362074455979223564050037766504601179792839851391506710192384432662232551765916303419320187343529592452305221590067812756895130669044271878272150936578816963521722282468106814833360977212772281583644472277694032950036448101881082581867893932758124495907528080333368294748597206217323441363987080432123099723326127288940463257516542116466390917113283770837543592285970265599683495879880537416194041317530814687860150167967381381897318290796766583349178991138207011771631603856148504929225764105432928734885557062418128211843774690028614114074200397938619567970654988771984794340929446228993067012650255629691661298524940897401516520575771469012414713632281944916535729378061504583954830007065398941888345879127244485495975668331260750434978538266006095754994176337411252305309547539653737859748167034818630665548625169591087579900267688216290226962386968295147139115199458945535106473173117401507428443507561453744972243027553986236803543085356382655431851659290960133119214363773448606264268550557012935799042779125934701891198248022193427420299643948371395646011994027691508712606186466381507557546039436494204400117774147575655556536127032268484114512376077819526397575834147834599813606947681665914200855635275279111791557786540377252323624746244870897514967408397591670544585592481375425218878548154829804019968214003570208022862448679489982313012335344543815322221270478438805048003156677491350572533802846836095596578466466731025931017450543510137343397330301862234602253432490331892118737780912687859552376549548003480895342787965190620464433050836605268090947116346132404526226174082786746904552040514065382173490580214399986028133525142150625151609599328257073312034894047388093402531968501831128521384626851597429689001519874950780558411359166023997905845037719218260733376041010128126260060579380848118384485716626651494127185225287301569670773478513744726511898232475528347456150782376834831447792673133677759849720636151580167591716004368385275661353510156712623847427315366213081929242678893074643308740649884604181558541377309280033966555081092826286976562284335466735636491228042907846145284680096093135717111658167747909305413586148492786610240633250024354065779986681586255126937608727133587336047678609600296321060422015304144460475531996563926265487186346447208018423246190404881111867111195272645839080379417139186648719144139306076907998142722521517675538264991749414443709495349159894174451680447767865027389511982737283994966691661144683346049096873922320334039759597038388586108207627516851823796359201860685217845451088228856478307237723949637109490606785911439105135836364256700944260830123872192729830444973398688580658164118355827505254747552085636527370887350345938957716874399024939789840811347272848545325095697710744502513525688627424920381660814557257742837040858206744065090599693787437074263949250861070874703401397490793019626610384842599214477981747711363366563909400921051932481468617306377362268584802141000358174324199031893672122076509216976746803399238564145951631675911318519800260555800605992315953759845730041113709710018893326307009017004790439066429485009748692635022978651647530946006356113694061665094389623204656308224314484913614052399795254174335667841267927076653775201696565924277280763520980183917943203828435097072999863262255108474761765340207904783097581320815031794307584001067312491127379054989400587444450601889999466739396550867377772756065644746850012764391036324229789983981996858593442327958617706631791206461300604471004330776978677877092199631954909617169102855347425626557019558782905496987626183939418444803599442484115268962201497305370447685921250000768593123506330858338278371942442074747134829964185436478595698928379110533799158585908725608385648154616336875123742556674250554941013510028053101993748922691944167515565721612730114974300543828436378867281946526973039505252576343481830792748273703520797877775670337505333280431615400937106433773776665946629677228336812469791790964146595523126993766211879750251246156480508768416468264125785652832931417658502971950015186404288406712953908267830612655072244761152119981017160826041512988024545084212153913373424139581778221537417059967082685409820661486541702264823060351004485082070429296748073019427328989738952874313321973573997763198328308684718791561778941693155147115238984662794691482187075647763762979171102136526616691064066514815233396035268502922024474448917528784501457513567811712136629882096889806161437528621366520948988590515581356487173558510498094972547742194476906129412214484545845042730235486843138317925361587432052115748517074381474810296903962740129996634569773012135956720168479759045165580697977885316089355949631431995761884227646709964234293518516209585352102353917237836386124612464653234311149076160054154705498976189194526659856111894652730458743189574902036733816658234532710088893327982838155751691115264664726087190884988759828605907928287038004187916382158218750190186916704753052104147408459635609658064483483223785064319844881114657274042802398708836474120073279602613900494607964386492812053734108080340408773884033018750684024071273947554215195975355754874816714847714376609447230734798929798243859469194708588486073706121950621559296932458677089489155633162497431206208519169961153515068729858637761959752919680355643538945294748405519420710011157957458742333641365267031892210237691908611685317841061167004347100316563255952420435208811225746633212964242790821850711741502230637079529157697095721951452708347199688020843317578513450350783177328928981748965525036191826621196996281199271119843094311643724178424886504795674603620374618052571594750611460771072646390887486916032626479706736809771593253213613766933663110706008598969761540734348607900220671461454393591065357352600839709595752758715195677864844096516946715366187395707629731730653278835825388731545571324485833181883119438938764347057539022219090850317273437092049241344072906851808004157595376134017872619998709760395068945614030658679932407298516930979069220175698905312905439763332883404868345194817337114801478986418760395802083473157403636828628557392697130821242267134474891140683310061115938907872852572426083634466796701186917132317873891748498733334474445074611161864876985979728081353623544060750487148097744951588737952316920791995900152437905521873251747522099642174917816112654661926982059016735263872270109928536065438589603210794389442413770153303585812899479719139651145756538234912744016723770395190060806621361280827408968641232655746413824390467738355403708944860233858714945833501197146172231905833311445182157716507606170111079814235195532030931717081275489189341583698261068793559852258911710046328912148193706032134862529875451368002918986120065387679608037631723730906103394556528563978100833090297170797616306898479454003353724592664418423797642075503825286004995769601089700032201327913005012976331811038747781564726553455949900626464065635523240420255146932225960050512449245587465048115347487087870316400324607665866557525699623770176863346121635522252871125433854493836956865573825548281126448197010790233947966146800502140456721428944876643315224827088517638570498201561515008123577941572748761240327213405433889161869799763355492781764381286325064257170314397439199847978314692772782394038432119216349120971438288665754071148975664805162723771754421895394927108091838540403565831939602685354505142446965375575468347313749223967474833200072726696215371106782341257134373366936037391009272407149530341437654526041251117436920290182062752282518287932172356382062753539851710596458582318352236584688880815011762980895216582611293010455358993429807990346175732751516078808123528454098835668317633623746971091664693951717721762056705508926267005814693322634225472779945693251290737379612686100880027530821777518360108468467318969173967246710641542469211686199990626803682118490041355130847972718151949322592472362299389385586987242320525852575922304052411169114733529063549757251500588505081219742588179779526898431865823126336923358291222300293182858407776741795072315474090829168248607195888351380831467973156509082041368784652598447015183029740285170377504706030864047534561040087561032378403083531506374880248170339962660445218525063782211073387394154312468501220482041831847281937202113226478473373994571832473458046597748146651866699827977226564651717903109125896406726933676583056692275864446821335534554490476668744027439874180031821024024916288187506273179781946905631715375470198281310662753706853121999273269462211411485778037788318411638179129037259102629289628909344312881676581189266753021028751255128201426444949655325853861559560840191930356857915488556287478986057174806290030710568114375822039814717184623936215925708595741861585972418073028558957588687112250437888650389063244791272985660319738982537372233363580307954306633992157022797950170953940875616882804580941414631689763302778598023083905973827794778992165902338964485669480250881084663876442483234055604766202367750337696662206802020689902522425796552612542844744017373051123025501596387767167492809850909009199295284736231241213558960134863769525567530205450310103415707627950012400802529851108153392814137458424561747267526735473464740326723916861951519929486604123718578334189235359097494618412773298761744864858175898622877763990057518166165210328641992862447930067385389254548971261617734678579699627192963739935669636082370790714144567670514698200804644448833110872735421348010006230037677249892403771956444606221775346196688046094255785316037708528785439274210841263009563984151402337565333358042575451465647405972093882631179462114416946119364098746833698521413504831288519856911229790720157031569877156522552866918422228985246145548094718298071726410305799014849647393797547554923502474015184300187460515806482170796120950561839825100000533598789388641651233029641891509442419584675357002312146253633759343914491077353189381134937490603546618959134394417782662644370868250204800575186148531041239563465992979038277579994114445753035789534748666484410007562004939983096135636589152141326160303676001292341222435327898501090679460077909114997654305777522931034635033625787153387998861441662214337038140963363777435663740364925515861704391664201114038696177453751877606986036674339972045744548456568970936444766824884744504275614866453018125057773059202442412423726077195137501856719302087802883224749672233189812815811167422964408478460514969107227389594765884575621226604613830176651793683710108334102200794753728803832528919654843398742207873491424740872402673340407388061327760484794120656559615626104686432135309266790997595044398171975398640084930462295677689684195621809126507490233502958370224143840585320493391078120772283277042277957992304327809599629124991420886317481083415988283425645848238877727437021016049628643831812172742796138642586899067438281491465751044751082942088545627356139455553793993182140902784191860158827448984716282629416839388075570432857509788598575981560640008803926274596131029007319962519992173448528718715472457302327954613619430864158394226224366822777034230731406499872204862079837480520199798448523275025188396722946499908331523002741291870208541257444777858448485971344409505616621873313565999143062510711187396318143694875392625681375128201993077745183021276544936307065823513892911705722364704545620815812710301934621743206951469255663612095094010001720352019703713970283224672481853638867479897586809852722699315999529732106891238882826059247670953177961209330282686634561152077896660999075354102249769651078538161234510168112205319652207894726442395927832043937800242688910544152860860863816221774664480821241941491853244262398855149664264340070030847403084897637498603552849868619676257886493029160328029798257138609271828489267751426037979007968178193393939498394663677374193805983605694245901898092510550856855298506137060123334654479260809628645415113258275822372876800250327659005606307761977036326844098286031596304752914660511589878533068428532632984151991830601273260162735548838500492771391872300058929380150955340940094441283578682490923842310114342100092498333447429495376622601544043678249501549865068636079650021493432892985673389569688684100456582636858739349105162094772797413367441201720792725326465205207672455446899870078815084820094507179943809032167484161707251010217555211431524776157831401132410174247767228491729872439536884560159299748317206004367424808615563289061257862134054819339049841553409992037542636087078339945673844429462865265248775553179197010406518250661103266679281436289495021601454974539666474444144986823730444767559772284868185534510038379023418730835357471552214222445315663584828795568373475916203805806771414085303608928406527405402796237865869108230950552038202704211648422913298103210355229703681335240826152859822198770153153266360494897756185721689536140240104648396848097624548079759015100663775836508862103855597436611540990760167339950015819999526763940461972300242303166303050337459363013120067681227488984457476304048214513094191571898600409965179430565856503554960072477777069865331265488802826321257184411571187986782435493405114559569775985379453500631324799650912017642977412909548933118716204297687800248169093350646388129617989583738071971860704269339149796659441960186190942386214505783463809150851379100693635413949386043353689150968168135720299275717261416344185835246365556763024965424039035604097407391100422345937222931591685886449368568787351145459730227234957203058695401145999418117687713235718897442420978602073805455274431699313384279069883891787024936056055896985352100077778897880239632014767779965423848911981548323804551869976669918410690518271866483574766401132097121499969110791009210140603245522063662056286785066614603158521667708433181878857634567397276066980274340550345408454368950968619988909928700622542007003474795516061611952345913196333663801497577110190078965778493278989888247888717893608721530614696923165166721982371999435514001551006745445295094049656604388253309542913550557617912817903551616339218073366924147317183733981267387046575001591052145175971677272761319539702692657732205890660794589708276594309399438500988826678298213086103107368292510709464338501690799898253815403670945008659430108451905196796836822608494240538449869162757550208586141125710031277509106029929151549228575090067192093830456054242442089323429779450040619331092355533722930617291734219465503407145133814193146323865317233773960248235047111077292663986982404655232087955428392191842036913778181724599345446417154815033924990345103412747653875527403439041117556646010533128649103389873986891206540058676258260635329954568933945015920306176802004525419519503866776703430057782732586659565556592763833077643371646908065950370633598275878621846050246878800224435561261333464053846678540613646085641093454246027874656076741204449963073176171373236725725379187858490999009044388835330856195597239744023763264349872209705674670177749902801302555765918065630591140181862501421864472489203593826179482515634855818262814880205555345938971885113325059514288684814758101765822813317710705114266586265590968036941643848537874621455444111283801603451687614391628598954893087792307273315009868275698561553768229173101361325709564460138951297904205925709062065659534829645305101361434859856658979178807538808542049193095895565916955632265525448361097306425203651158080958798622928381079656492109636418173057451000699745977595314189908430059766371799932460512275449174449371647155870494378048265755941068751993165489186060456633978035646073156310015489234426550058698621259822563500116617016008780642762532230203953930292996155889341951714295074917126076583966950578014522807090486502132736923829003404404963143870027992863209794844991633704598366618200803984017523412410734171405157183383643529621180541680709366731676294594755681401164297816267369042231703020941020145403204259298924148160763713062908945848028346589701284075704742068705220785099575781683895852454911960418703207215921339562715109848217567170093450464704328377026937441644652895971035126394117370421818156477036343741028336813253626896520485651526971532388700833803835304164709104894966308579031278595064424558280146016169281494641146402687420396827229662604487787294983724350930257138309992405204280112164103738870551835274639294318579286794198969842792011893718279423019531453411025120099792634479015849687135605763354376592756290201202035823980168103482599097965792519445332866260367114016357934241321769673300274552164898646867817942497350248685408984435343313697341416516264962447418177260029826613382097512948178275521893630323806635219287600052018705840167867139221049314945414804396565582204376040260583297301548989457013133213647670779950860128997070840931914810170085167742759746397713964651522823524804082515498283487887915061275188387704015908404931059199916436366449927419886130022952925937599812270774398192028933331176374495363847274261042451928548506770432396372496608961451055624514060681475282847255127564865248164408084549844458624177273408851493123231128455034334463799959131278640212982361939129730871463004917444149044309544770814943195183344438197381856690091890348729631742981579247479060883296120829531839000190195260690051864380082179204272667043584857662336276102843907833987378002946126204100596801353333981993218054593975667290856674220199176340620039475433185129872369342286935156835095623730509177459466884772370747022287876888778515376213994180859948656408396432645862705472444585231158217755423259178749649841150216722253114661939096967793609929779314671191680887343047406063441361123363968849766204186460342477225760992650534679717131135710874842919749451919847842892829777121287522295477783184814168048966787659164921490698196605802954938908972211741738868654041537940715334559241091201085446542717460555124995562232556944430946416890119893234768965149246129434692525815148163833696102187358991600174123825283910042480447730289808800708779651771482179266126573607688095025896856077338109239444552853402596918231362573574926857461693888455623921301777403104311895638687860314115876885913482554260468526811435790735691690076449741367877397682302529678018992116686189874684747776464836567306684017725045022210064475536098845775995534375261201434068719754580715166813834470344757618496535756947586887963312987575485280068132586752830819102265512116478100906579170237746942570507693903697302888337850070876233278899777229872123397515171101737875057908944541454221234050088864450461647694053266758850518572554229460652360303319372867997823488930435859448641834223207865709540218090933737702515738879002856091067340457346097423877609047346685797330624095128718489264059533143161963238408177379431153930116638057798620775828471153166112909839275460141384418776872647395921179383423237009738396620953514874618811231459859693399015680254260496221884880297825148803082710799343134733225024944248934816768372106085576036646918382258648052016981435720247311491973537775541099445831573676135746616664692103321572409381446644076437774425923458059253137722212781525706216096089368933907081960067397506034956689293834262091559141890759653618120796182517749847721754940088719754357849303902132265765915288893133307484755672009275004168604621803693156553578035113093228802014572769367533969768743745321390081501511214703582993230676220801897231906625143487773454132540616699221224693101120577978732695307678827651325986732169454264336512174033017678854208189873471728380414343317010481277114155952972976155155794776782876991071515123765124183612430358797741543394315362946905016212835137929408626135506188050149156396810866262496702177881598901974227541298629818191238671341313593909722842803008175764999963301220066007378510932582531701683503238360158311988385329487585813256383152347890306470172368910232879959366558402657365300657670110603043563984145186655283635843939602216208928588082034573477145167736808193726862587288454687978161153230691600226740257013646741066844582702420183733786202118789936297741341154600114196141839797435281587525529731286999130676644873810010462298261234066332441092945445578788669232957734529108309652295025837167663050852996113045638445264753724300814737524072020934867684214170785985976951156932315885131182404565198107201441295299035793822689589268216222552472233681911427956414126542801165606887315615655495050429139168914926111156610211372739205871363932114679713479562337497740443908992246989598202855995600259535593365281038178948301709798088568022617214527005778905813907910408558334300773512399871315177601964418028671930144726607826388174467476207446515813366908835005288708391602159425089613564032095302921144551384997220345396892824095951325809207812908580778824255302228213103211045514516591066796894136813828603331298696046208073640777873894075077449096576709271902081368431588897330352108302554523290397898059820158182419298257254283179600336319132239499222574314664701526174387663822369729837729230454391493616401068166439329622298093800329347511604160730577984435549084206871305601771452622050845779330432460628934674253334874548519851037286439942335223207633746826921972202426228167492532919871850219665745633632739979728970186630213904332038706085307871271483869672313823242348156587510184535162971365831060302884044331876435421131687275024841281590408288583533441307285323954407194372834622495926778934579647613773519465759626540083485568691705182552447243714261892804811999946035898662961060290857084505026025593622976436444998333180208661090754750094083783443877517972791065808956376851006610040775243490435688050808591464238162027246648983998223446353318143851260754146860181142852128879258142476014426623379025017476844821423591583075316799655391523891594728503605554205064448700147672976562555797252946803127564345890952662661540911703797667828971195054230360460598491290968035717781540303067921626277170119675129805090645919295365323672077017984345985982030922406754529774487402595947884434089208425577546112946287766592441641509990418126731492248367362385871918436900276423851082038354104378857566374670805737892242973474610580565065866583057984780087608426068341039642227924096621715257795686391802493272835837886178985155289517862442409274220986820272763432954948046087947741851173260590354051482317295000273982390904443286237509493641460281117727999811653787305820342706227154080907637064252917952120790487423301567830309449144015977592394441331710568707232052871379980417794111409953418212898874503085739023810806025968452721508125236484040437588081440493909905224566603696395781336631722340022523803492028533589762919094599138429594309114896458947891313762813264980487540675319680436392125155676198958508779940402708934116068915284332561114770745811894346693929851937739166804627189634969377692234911425513451709688549925851719858935078026324453433371443118575519130890107279290224232274568795124544310433101578209036610528636938219528627263920177759894687409792879972276560455600605833144990782218674834975170247638395076365401064338570950530753140789048770112247812782314500046416117214882074733009903479459387797710718495489419457776265884698985663015343610671979568377598352673964293618609532091555866910874303617709855857405153966534852863943995922685076069357346856947480401001760553530725990526759228815440578588330227261206613108971780185241245797938113032017919300442561791979423780183836965138157930482616571774597695602918713168688591825529294450819542086030237280065416057599141599096435981068496439697730816119021159486346074896211673568423485667400883529200345912445627081131816612810776106458998264970009280185486661931779318330952827524998764210229250399594777109809359843461859102254890408888943677443717886558990227484170204090759929180537240586091567410545128705415937090232200057895168969246561772998573816429897275724971020558044123343153906247120285879390740183768214795581303664936294313788568545801819758165680454378743585723133624075458046743367151440769636874040727916922696022431851887146247913411616224440648774820311927442471443204191189163269947445753830102640990371409922899845845448992273729107939159635055350659060449063817421393052999349364339266130468825046789009711419397433659201316829372453294772465757367943272627329167512470954939428615022539494535985429298559405898718376316880773856413929187515553285809225678967089815586028016859277619795878519342641592948712777935495577973978474299093908759783315960783229950041304427417005666847603315465597961982421366881772544306373243578801788655347593831396277462535079141581903824747134836991865886932425413737212897581055428035243784855909598500860279591318032244604614250875009298501896148804674488978504261457677360621827047002239154883896563453216616957220024765658281465511460161159532607806934777339686631943595485981431044517383264567063220759148761880974362495490656935582219246324996487856715767724097596880297425967563129154630736822767410556220345968430786454305733906295201991728723557600458147297278587865650498902263693949261725643158001617851022772284295916004825390845527887871761636722342847251051040555965933376234138809587624298408329964825107408127425744383255139310931782328259229484093996080772570077162091944860467647514827171363419985326703444641077750230551372358215124028626712619070267693079890861224735897293484775350188937002564865957279482353872337569356684252761066890495640024391280115689300046426517046296388059012521454133445922375682545075971576852013914563539355197637565938464482715440702914079322655621385753798030477347572220821624612548422080366272574413942286394771183149568644774100374308341431285699927899048354544374376766211625644368740146227520415004762760847930075577727766323570634386335650670918783217713091324064147303466180607241971292621946226392849881810823898558543791114244844498784418328395053832802223884984709120349316001897881229667016112378481618421471134540464752593350524816506179331753269224469935000168072565855370195532750219009202895842180250184412265705203943147644205516127705769367192136419860796157202689378156010066946678009661261543798149873462280713944824890911841416223875276753534423710282242354117013326652374767383934502661143147317911467444782451496483056414770929882077423421238183822095035951653502713776700146624768439070683702847130713479403009313085049728756415820552671228030629094934536949393512075880618532062804555783006971525576472445218507236814631628564778889369525949960290574016639728071643687000372800784841464307333034136865368723925045548141253355614752224882350650497317710678705626387948952553861994452368537077956120610812596442498552157996445067245760326543734337841920805455351283285019197798163479547210078072939699526177610118712781562289328517631287842947656041940514395698728769521158056172384325773505991428916977010363789247088115051939365226729929970276430074017824019925659264942670818824658788361259718891586099046363924913524975523161226225337833592473950237391649494781550078938991742507810196555878625309049467610338704883482198694955304970565367310019669101906223522952148171649477118817560971006510939287833184071903339329526838459720022566543159161849047949439489147351110270234488415786215764036860110415025618676917892258553075978902320005136220482308059189809796498423652855455743788032455192537218445743523380962884737495238662928837251812026099245677885560833395672883621257020129814791245009887436116544621136728077729952277077401766433131832042853287899901347233307847857509350468936460612662821427245913610536185649671688466725275562436874004813720033481792028217062173206472632255598847043338408386839963549741681775189871896168853386328862250775330232282768052669513048932756077434052383189160083000328280673224805624328686353380241281500723337363068691259291601885977063839144996627659446987321234526705997394493771855463555207524431087179831868231224870412940498309646528718304372870818510608955279161933600116514599284358998280958709358001431855259134009601952483114229791011443378476670528593823971625908971982974758624031904196267389707824535168377413403954747258271027344944911490441792798488283295429042794508992152543577617589323128088976213373464051475141135120311942868950686176459770341427300355019065391323788407001526497947084813377147255613771846895372965757462038467907122090085076478532222820101893040358687302253836299085333298265526810823301993989640493662468573833041622875925533696128434330250087478070217469853515667303258109650847101417936389667205004042375899723274422165010919663206080093527539666543428646760076806486283618634378171383708407715863535840418164729248148816677744257647404490830151741716787909853323755115739240146461489687521479790467774905948605732509284406447382594479301009650174363235577930875856749668929758474551814708446443304964321502307104651524317127697790367641687634801202843483402999323808952534621846895454846287370433490126200682864805226646866130595967960498174472956226230587145868246667391067567055994180971285620841358476635735443502736163899872877769274226101031701022786050664946717457294327451521992486401293722188947475829512662159212106546633080364519835035740712664235624876889546377113651314895889606986685614354706681344058763897116147044193825306630034738341584943389842870006153121390062021157508628852235863806862041284627078889189464785708424883735095609263717202296101659790232787972747466013835496462296265444211675865391160937911505729314412641702914992575674235941875764630996409153228267541979716018802021906379965734304636297888560254148107242927100010745589698567904753387439947399473409330777506126154961000718887780578093626464504539809436415660721575656287202417846183085233580573114844482378715371888724418948237331641320275273649958737255008481367427579640307898455063873702772169245075707103780984332520118358850385141363059285263847249432058934077656727560851156933706594243383927521463245028883108065249661449419862686401043662575180909459819885819600398818202310533153990399665820451948602167400435735070684045854011174555987275391722680129934795842000160059416336797023023586389708101212606541529091793624146714017000142242569609536888533770434640226028646405023655867264586567072970739255348434957202627130393669378417995423273449928282227627235255037839315193909579837095370162853781374774197925153432431402698064263935007786507684079647055475992988292877595720474501025889293123576984417489743241595242483181755847357455051736184662033531089164524707223406936293442397656971399590649994077118964125156481482090971390885570109073462839943305681235282766400052074838619625027863234751481589387610762037435112806991191110259540707403713137021417875539905669854696753303819696055397514559576653830964783583850789310722249305327796713468434924268135570001474899361551242989872440128790119980168275621692087728632488614618043201737231861089672487177511944422147613371666773546708933888064999946232821195788365716694719210527785189898882267776052149406210534881222208827359142865408493038456445016724834031065778127099992644513942626378155908676368398181207738189678305268900501777410931160282934845918528831988274497060145792190667644410361818817966501580885888545352092741191968372572521141695221654042660367837657458698429396157173487848611432108836800380211831152204669703805367723528415503254479845865266508357306765417369661360863080510573880506015258294682984715558147602168412976352629858849138399684147465734625857571642610714612909805141550738438983323051480965308594080614373441718664894981882316930947852120938815134566130747978950025588327837786329320816660397032577549138191704506315105452269063430490592743185285487320567413915107956814775679827025050302439507794506445430899913009454105659147386486564817543460817822284937286304029583708243974447381378010218734230423594033249187842368068061504078889202545268953026278468208507046406042776391055499665792578827606285305520637511181831715906240441225255193562504351962394867886478716912369860756030308252948017618342510511135773764566925611613417814469295245407215288583388468704115811947727162575543677506175293590081386763210080168059992852558021481881943037355414219988966699060827685789015684088390474536191681172245603491170531874610704107177480199361542443841083920057779478912210049051338078126263727906660195857466796041876189032567003728428157917742768249953876465084112727247578627189877373506729928855561176500602994122014927077382290604529031159107373758303540053573803806571836073963928492653486331525621033767496418159802606292926965776234967945400715299212558181028818413030623421141684791243341253025060908757789878652542907605778675246094952482577085030675032774764759172720682012310045988734485591557982499951334717064823573579718117930555148898087824796710663198748656029943055006212112654675487963598254175204736362019466054114134743216801742053433275268265988680375138227534734365819011661463254375545020773694967461449370209283778001081529901780486077137572164453274104118753514538927626312865949209010301210872823727230116114386536425948216398381203337559864862061161201960522183151528626740936553562413095820791761127941812394090257388470033350545745750861090347068718715363317374941722926390070229526827254086027266392520390877571849764928782565082194167013408832358961880474960590838692110300538968003282680888199208145250796061308964689748330440463919801543460596118347082954057588021587091737588352901559208244254610412681451237099736880622732478371526816805624192098309196537585321195161867274282851432045539451045052707174295205829960443868070160270375550192076667788771731052525306771588760071482946069189483953045016426250175375029937121183860571026620667896197761121789403112683143858043441193726268924244857927980357316860702672636080965506558262198090368816972245900100855613309321597825071881143563892464116024100730843012436217086958169841304047250302542539983615112491747723520417092402739923742213606494675864876392959239951822829201362116411454407070607990504675332629175145749536138611402100438439434692488069723861487947201392408250826099219265446644259300421606176337098158274125288098269445192629310333396433848652398858725670261550959685897151947346031059047497591893182759863711188262011748530117604721282518698001022896833122820861573764070112073853460931957264509135824581695838672349552348078679930099188921352132288954544715137981961015660412021383078505836284583133223786432628179261201755485332478044523843911913322441606398509734108392416542088428168712895639870039086273071591749725767268548885893958943621267567560790105315065044505126854501185319342727570663446742835948736516648927843288048094500976009746971411099416961148067439274481498418250338835245807294311782160409991043277926042677351166266765018174056354581976084532166044489537049913089675008584521069054165008289234023001123401629057123687130893735819332153997017140119093128343709116847240274995484266461796869777390068998262945923766365928169427581133691115965176673163273152391320347467257544786339127298297394902513348633527215952295570050742104170670600733165159609723733806990160340571879898681952042296158512561679444022803985559605542691058652704256756044129498608527881579356932927296548426934196428873928486694831245483455372214201964098582752244206617937948656628943330191471652931139498846478743393904539493272878543245536460330920982754051817837324864950891773941678138767299841074639856557343378724239538673879794928975479363714263269608735337168960173306065908844789294465054596726569904112262014343949358379750354594045484720588075066680703694768316470709023138258671646195181840852468788842572351997983727771873704776756998113631766308799046550400145772395484307270472825647490267184887062082020633349249850949674076460650304352477381815829610785578152931051184487367927825823056460983218727766610826750009475735106012068727463472997755670775102989131937611669753455365272018379609863241967157745350516766799418094858965442678126627454629561087052674654187066611170172832735102978808583483748420549859684761288873417109697846599085879574067839116930940698411755507889127668513583074426376193042943108550799694416714996788792138431626933249409411444830830366326127817842696989642218318870867357859452689929808106035065832647490765850462387590926649536944599698183850616644753032375106211095182123243410018704898468636493870699680726144950468145230809335970859770446074301325872667696500641392660905754578649964491181661405365916560915222314185558429168727478341258070214378893291169687702593764544411243131592415521664748674047160686186633286743261707686803752727774760053686473613644437518104389656677550344979799987953034024446237847046879427381868900925984227231040981399585006532895537432488417586002371750674319136429458952139015472213037239776396413461373232742676770562387065594442281969104288956104563857022230730442158283111967287261161803088981915548214316975241648756888619245826285167198795182429508018154250127802167578902306913119132079924310800147498175868611848967401928857954496864773080981872624936225291432362735667355758619469236526573002675488566104273168438283974701327754563979787572119996331789803674125534037473215488509924540366890856960622211368412841865983812072012426835539232540217402223278002329298498146527428547067896202374996107135841656443019367238438560627843146777158257292168177317358295210710263524083072695226282675881110490778550255363237036762107925816106427141434756486031987884931659363424779392447499316482723004726478583483518297326432411968944210036818683577046652775918289501658253237359456996190090080676889018099460901957398306400928912745257461761885097062634236506274434053846474839159855372797958288503592773054296538799867150852952467808479752237791109850144460905204525741356141921221758211195267231839239906840313283708783157287518638655603446280900295685103811947998750202805382931784177185142703321337262715631812264956937720913492945381857617660278844936659490188584393584335383796344591734033953207736740575507778806506464887455786981770339873122345034982138321950836177260997780203120972004129647503896715404409082574995533631285295823466972518666132814157763752916453292647883043084064454407586153203756687408095730751945131837196689029785999175447393932329858268902550996563310831613013917553272107696357605389470193611514044562762023196726183775291046332658033219201967062073834400631346159280876047548362741709860114639812761337351089851287174706766200115306261016284552904113864667293165846933978251232027581685278783133086376916035271528554137651020064613157870818789921424795670546992858345664128882570151437397238738843748287738681883926982596508745030359916473516313683510197099291319718266402722874962285564339340424932137761831899740170747737323527791515281696076975374635153606667482647048461136158233873808590789872844440305942631008461106674885783606839720356130279436495965000919773893209681382318122045209635962826877369760080135243393808467532691765641383607480232016742823749181472070550411890599063120499997852786469875783520067065012568389760141685796529784347828274689026828911465859547114869196191558656825148870673173360114464994261447722735977189641661595485397908328071726519805495883625083678473657577561378962505654619091007737369982972341441179466061225288161601196751479915555458984691225239821616968167553827253805052760194954854586596540894353156556281528551723747031223114886372993942264661275105229572846932591597868004161919669563415122141803963192820639989758055533739484794362457855551502910821278442084332675447931694652273443731284113318265088601696476261768268562906763366217853358804672122816601545709061191401224570947918999355841000307246450088939036200385073225149612420638870460487150324563128723621688072358664083436477473805367448043732777932929936959044475786866152951609555358169944337517105832964446617266551216557343780606836178378227333397732163194662468904896619651997386523222855478103822224961666906243844411759994711102181932576995472360468672528706186315957475093306025589182632471555388215179368541613119647025159618912977952244578308013386725047136921316019784507662567930413122825389510901626838608703858668091581177955540393805948974983719387038933007674588270561166103156195463098821471692365905338282477207536622962766823648995357622898145265281121508054459694601620570029456524544067921924923624816578253320287364505778067067269471298143373796497866071497228710754847978079534182456334644487634650892674834399542767217070592092972269709993015766881880051461231369196089475269183048868070083674022803603552049261910172249659195950525279063936633514853346821510186006382438715714970578995954595238819567969386689524666937702470628180190517039368156254143238888809623944088447120659191816585708006051807854431947830163185370486267032729455255991098789409128581009923736812240353161816321369797133385647212309894736015741620310946137005931229023939861915354167251194589946207182911420096246497104553881479002040398926598546238283702798854000349771704223221514756379916420801581652477318312330994267002587554854322195171711802782277447795007380553890949339428783508198793657368531300438386229656160406914181529967226183358047536049472677593623170039335817124543037785397717872771268316851838122826275360243887476596634091246393039915305379501341714792766951345122782470802200753928352207425550766338958352930383834961813432145173962623764557676238654206239567856122667837649228659829045954887636975271936414227264331213130624097831153808894693335856370706845230519812883822708534655479584303901203582621830104303457201358436458965957953995773093646473846784594350431025978040320932496061448924206529829373059845806997501127486676187201997323308187492846797598215256802145674759784262509570713338396520811978140949919763278168974543694122685852264131784430789359356752459196179482888909798017484053062459466547530223649318418168491839529917925105560059975487672556141352103892960457716173858368757002589445814561467057097378032812761777803999800940227563475142869424680830994894558066424423601361414633768058167107221105331149130344316312700441219814989627335569127891363201828733986769734265870764189601588268824778060801923326785851803554536421971972874490313456022645175104458680248866483621713253034162294467758380637914600932046207836705667452605586952418490935880374711423755683663353859105799274493767287508766471192529427971769122410473017027200773373946037535017536871528174876042968109052732708749917635222415491016720408931037213459604502304651654725196395241148361317952846173437611336227047066267810990522082421551508999594206885836000065236785295144848477542553917238769490177324852790896897203130440305683861695114604464467469071645445464118682560660072581835690173913848979055263201926136111512752268048144463079540849538330267534946431398892206273729125604149049494374950143971838669803525312400862487856694167809174452145943925159200074777203280277640446990372973869795879979907592933578196718961563709510378073973905841678060487042171601291228142957301501636414325299659950846658247025403175795665418270757890195646058791031151819925929216389788144571542760796095241283107947728230345720481876722040603032489963994485745814487550481313313710417940031517283551956667257334502607129363979605385597657723085267868665492210053660980868740136041339000376344322448777307987790368116519232078271371040269397122224975922186765673741620450138547149796244766012530995801158478713397886317014694725490960605795587478770307774912937888108601038011772672049483661152500375774692185615174368094314602407552745283255091132455609090808559300497185325023113819946570150346887730286952715369926025393821217032679146628461420783205107749671259264450489202225140838059186864514463030732773010046898511600359464069437777919157762305312335685547641659835870306510891043718192684473368027248719852320208238131837649749929684572447575818905083744435377637583574721491162428636483438005855497263279009867901348004646535110119193358993092009630402049515877305897690274548376549148547580547776438018119474842560996532467787741343002305673804712058449419243991834854838661467097203699345573958934896627744358436912764900994366016071814439820792456959618890019782703776325635254807821440616190166100447440255230292723424667081612378825795813721835716574752349035738375942598074028815966629920626609722259442893273152050588908958393369241809663529323349903176556641199724573925056141373756072245541023912934671992908831096469624559943031533644276055596000450089508410618189175033574095082715484142842836398705750448515908893558105932494022800744628749203724866147151023456989831779773337924065628498085473349004561944253641449810904446168979300727754202272167777828185536289599334462404958303260937074160968803248876731754736432680731983688217534395608756360320260340038004342092731624794063970298379419482151327848785077569017816515211852418336465687822265641019864959520756230604653518405974389760231671755850772285021980495123314096923406151271137512613935985994037518319350527973130694038282983585354875075565754997406542047677910872388009128376232713891816450014864932030111903253600031553544596643347387864391835615126870045675749646435064844372765177149804803584095071233789589527973587133107913055979590659551905970116545264531772350350888441517758826440838263506988081849219162629249423122743015235090710078899995286792220031173843198819906253111860158717036132768552064569248708375930054426907106608119621646972581306392718946884600450573417712363312677267235623446938348249557901544806722992483589182712928497813805683400043468496765267563887356803084683395917861428857234747639320877172354941109551714315332826904644099112636944911091166404514591578819691583905142020084631211732675423152822570148819162948729602939234026387494753227501824645318592929969713584877265931257247281244214787336608565636492837725290355765587508570333073289589415081602075718491299849967505626359446436676184026945984071706072775484763988132460965788294548398992309516705263893950141299482808562660766825325767144229961785458594167689466334996053454572907615822086550382798654252132223574523311584203354188354134757086042269131820436342668590096893913513241605185228554600876938101234760160433689877333987697745884882937897730454011067695596134288700913745143526712404364928857461554424799838989752956056530183700466804974839714278123805350738322682391583401609432657723142474463982572415296316741399316576661523534791583205922661268300502321151682638448491794624087349130010984836932247370514113711347084153229910450734318723489677703410383975863609917935843060702796411221957647114617155181656833461822004700259910105572558615133843487834433679549299560035753733796251358831432072943154193613909208816999434563948076740187206177140235164605231502331312071312854247268061082079123711848935776453370994086159431581216857104058412558375053933676119965978021977633870476573028933543334234729145961154024800647754184744033423949097645918665550805235498828567334186269806733987229153300090850276136299064466760018794732492474158712365863656566477863229367048650520896704756094252216813508049118471618903510545848237984974482935489779834120065361284326623649326543342163920032031880703964023785742162154723085257574328060075924016005248986603553807038105558665482667084833638558801696938043754717659017661491951129914234841137007429552060369863907397992283044418502525816292208481600757040387010919752439037288695934786150773177090224421411434307374979070602134660568574391890572789048076287087606620541552960533249617878475701438076625252641101495977777707872452188038865052072689355010215803238058412815055664497990572050237885089861237591810410218634259548461366487785672890164952629581412980256883185166022644119464682576887299657519087288164426013494195274290199972830332061008501195765520848196930897307883215126204308429193666972060069494220925963254771258707475115721107195033872386999418043431815490527397377145545364708356677680866639256557122099401858783827414820959795460727135506453987028564891753286284893152330039414009567349911200216890563729689172465851482779786569711675861190389242683145100245196652799349018733654644806259313007315668672824289053451946798983983850507281156841557206654689639643042240304806497989700750863653310050089575390498358942412487636975474919211654315081120910457766366596653574058103678674325670782249306305343374519118811784957534524749438393280066751812525307193576171749025103965885992785197568623576218012561383790115703190308916786688836514229272816579091006451716902093487797472980981033137197861206154406248496579173987196284810731681568987768278899662302143886712490570376260816403889524132562463901965433303382929311778547099845784242295858740553545364430271290524039821344734174226243146994121092676074243275608219370376494211945035001892767710775820513000607897328977104693013580061455987466831136810603197796170140940390743640331765608672489003955136694430824806054545897808146268695038660810388535761544621742439675814391148846643877063948102894167617410103893637302834829531886449074937146601971136221497254099544210645661935869797023604838063897259754982758278266598858597180099288964424238042894047886639239703270599180669325198933969723269108540514524821482000615310235933594371758089666398447554457814691255169924499647532198620219168342387462085350202281935691977923186706794566159053629825695092286073923919553746269203152828196353117497287723289916762079913198987552369958152550822855832753611393850521017879498980010782180341846634684768163649235830169974694782761329426514489264645748172541034239600870848599114287828204213232154108488837246410947771147515827437852350353310287618202531475775812522485079383231809636133871903429955593951909528342167017728592334127022041639230149198902931124669576655170991791912264765282684934618680383923793379457403759448058721722315670840767025886473344055475335563919224766348437733285392576504370607368984480121239595542586726535131805575525723331662350475333778233915595623299067767023692782032319339360620286443316530341159050240343261473926883285841743636930168964347513944931971851262741166344025767609987097383705935659972380102387002972923642372093487918615696714819381275425325252306939449856480263028957028724992234139481571629232667249104089720384825572943967124334867537567420461847946319389607454877464397572978230395166443486693341854953104881240410404090353807314657636369971210018063791845783638943964236525443302104722116872565518962099652649443716279535214728651689057077964379545568816678074343793607628245070866680866733798730897424253299793683251350551389715300819825774260948978929063308723882180703067053350528136858559476565848755070804475885080583141165622050252522566965173535571838505407506013098016211643975815453078029232164746610079522571614295985157228447522311925001539337922063033775325254739431187829869920630128328845492514445881904848767894201252180013799892400583398011428465131859490821105845278306430534403445507872064782857717078026675485299007989325062719157163557571477804515847368955795389833344083594428993601305874377507745276494208255183895216305147383445242875065259134995115664580759557568828339588578778673966360916639249825990208675310297998352773615162026077257874581224250918166838910063650804782863089720868659955875122515232991323391266296991848581224376914269483843641370356463260942219752657056024538174025718917656398960264463981642619620845777069493733419079155501798835648651180252326990156978213629699023635877454110346381325433256246756325650330216197292710141486479257406095194321616002335728494448370970611401461700558264446220969595751572940275748828830019438450545085990597273987059108736534108719750958518311269961090398278712568691164600109678348529075136174038556704363829876862938908626009743468688540733649084910106659347094818381936659664142820034237679239965733295430367437524058237670250276997670163017114727339293005546388643379441380649058523594659383601264284175391631895240887581204348929377971263807691225299675080807179421195843250392032056310016415723703671747768582980611922986641988447563580078659069868251469571342770482029717544085495614726307477406126133525371474216357269357544774434016355985007510039876071726149825870222602167513812706161835213839523490153203903318694375940090508940839116298881972374928203026411055978389794619005498345635967028067953014455239888358891529659701432974698214909328992969884937105910156361822979023934190037850252753748059513902701523593131999909631250617599114793942491990110064303474961086411850419834228190325291308006154484163109372555729183197741737481967801665252834330497245029848908282463767792369359254546846671473214229884462857279307708408207877427578657364914685879176117516568415120657233250018152830647434847316781641175773625760645895031664842691116475511863404291393583532795475572444858603907496995962038807280051946142449779915396315605826918010382441176146748939010164919837674188911387640183676139600509561230558338742039605399932979537679247175453997600614247425984103370905014374862129362153339774556053631224548891583103174655000091654436203012709773730425707278342101526159433922831396995544756067489171121282840465881462339254645727269829659972938214550404488622619440801997289307374496038438226977648900804897413111883705836162177779543691281083240647345238447475972808283002900689770572461760759734645164428354648350152074537923139871882600833466343370182227950480854040377628229262714098198807502236956025176742198684604748840170563791770443424234571392331649451158989873225635685434334374467990231279820080624931889094585614415477607432381060689895616977122227450248302441687073760608575539524891252264517837376684571806636039175927219225168097880923759983554240984895318227745745452519143001279340078939884083598025898793041047374248027558660182769924713203791302721803016374639019136299540155167196345167020139587313273238908490567427484033859519477311070326226018873960134725899254821280925327086297917787278787366555706076995125779970427638922691652973160472007514998322124240293014709201567792855432804418101945568452482644425534785344505524129790402329305009871109467459212113726759784319753939537894765089496990227535170320255047091740373441586603476981016425632181671577605901422864069299875203746671541099186500468140552199415465771057893425326232081721155178410059930896916475176448822525060646428930242971889975286103935333278157053569969385608385836739860093788320323500352021610179310357969711908338637560875796691485670732856105993634592118589702148858665773717091393900696265095140030280289353312013719548673241807545182047551369808410327391262772569905963203272669692617018869301605895255570388052077794128882553455746366920314414174576404182861405104930636894528232512688257095675267221818396019222029765150991255210329639003167846554435785656604199737185015266803559498370984308932812648680471194581892804525190191861970873367397633067847917437801978827343113489832889361449951463862852326018459611196156717950981373407335696064942230236490017853559088381034015647982659615072749174835988622172082140093097468452262706861039310783764108210541833911912946498975792313807460542678502683887645938493697385965930753308549726353154706206988626487108937219190451475003524582555159812079385196470591502153226058160445251218698628505548660312403803027474119930288345682608907409769993249301735499543319040218278825275427453793462110385392458017988250570327062382176954914076795050616488248770720076286947497499300211332091838394090623752945687489658508768305940225246618962094260794209194179404822488674306444975338973966160082383520569504416548462937530523974053925260834962689563361945340240116727255830924033623980791315254145365013087372277114281500980637682023161927425921975815312189356430577923722008360710882281342301061981249043458823938171749528809436939042268574868508731834285978928004560242446343147741130473523586842861846999210756469155200012933456339864028826886180317885627668092062557140459314455265469996268920183068302998137870743583659188245588701856257414283941740660503782353356876196458421401001850895865762137354022688063049594208793272418117238357554380587434866977993167233483975997231795047528331217878481471655847361644001314494005864020399098879005165042776018713757301855829011931024429609007002709356451945825170397929412741918104346856511947079957630138818917409582452033842775656787996377007094700886718042049508958914924890527845805233253470074710211370726012141072387167414689774686714737387557617751162253983731525102582127349231327166369636589234725088839760367753775191630443848746600762249726974321187740574454281409734493757620752175456778786424407719017292265988614828198762013277402785283646464712948075022273894658545916012389494819835790696596853686687642769669715667493364259036489449431573524902980914278788381032355481978808921309911714580024378482258172594943200032640262752103877195635315438868457949104696798355339663410146095375519034616373765090167686564900396556311283296083775552433945198335346299932338450636239963888384285819312662246217456675437302299500446187256922320049611155909911941068405457076638377620456740444278515860106854139851327755250881732172313440297628823161159884003977781375861835305396602072051424552719060673258545416747400481227406853220520675838349303623361439026674711895386608902586137538886498007045445452887111221589304447606748438659041952438073038455940980540774979601912556363708130158814499666248342796033621210316743000515764676724177790384970821930528658310431709789370754149174931762791702684187457193324689314754042711546931586180163397533545550471335940099983097316220880265141386229828655473539537372646262337400281053591804626128806279138028241591018767514082504527151628992451060949511188114932301679563186046010716586844245020298541349132162103731076132888616147576130580043160905168722523337103079578806966801447400353022684397477621048005668169235066164628204920514856945379219489603511005558077181762003348723130047089144831844743912650754312993540515509744201581440541749721241523717208009394438159651835554676506487074995125828064356329072531119356372882149561936697534666786692968920340788219491262857245147812384569198253962207645481688363949653986106865517710759079192662840259990162896949667832737178975357771535047452060316582224871252268627242612635232169438694562308042573717853537622006825848625229624821124818048893672845644351068250138045848031650924224390521590224520811574389338605067070075956196185807423992117276696566868937442830522912566693283385074885662670169058065014764192061746960871305210183728829224334568058531370729947994442918058425843887234104250799724912075332980160113888728736340139475375106683999357550907432072885562760567808101744281459909436667954852444478905263885408575133578909982244133837518548539917958324627667835941735041914646035392591899513167898967119070628285122128066004801941006424475810304854160688142275013277167032541305446778051090023927913834915274642448818879792964360290994053291101136691751857569783121074010575863131643031874727194208897307993405669194819654016476268927956813036269218930747333338798801247339280911700602961385426853120585977938991851804688025281272556950738548631321154653831801611960686275408239578280564307629103816649533975081000179377210471688683976290354201387900674942022656431300657781821518854596098405412596525262488662172800622506853552464857184014385691679729813034238147677777085927844525191844599110704408883895199012251160537473799756502119528436125607658443489646799164104981873350283272619944799712030397650759292747597593769059523813457418968593164964024617522282905644743557353906530622666785591170923288778736856574748377619769479432071670239693753380195081082648122651342803878545881245125398860575739626447358241547064880629489074930295715186282756148890871970315244096107542841362994151704665393327852742530061865715833429337409410995469403030031851079623207203288129928892063917706261447606101225812442880026277145435004433161738910490549359411068136294724833560009385997749112517370743274517507485859073501016868067087166560380430437270195173739619347410408589133914259647175000569061162013499716514917470450269932678329672252398109845702778143763467217241932730264082062089280062303103412830446939854032378727356208722111764845152235704698560385732446365717879451479551447805690725691217223960624311960216833838739799321577738214191268054881986945738095702427803172431001196753472359857005747967389125060307998279029379375059342025915189303826409942481172747160205887716408119306094766094652211046719631564433685737454391856882086688835516720518073891050409905333177280725231749130922613963006196168567232390807933538387215758191150063838516986940800835566113930707387823018889161210275814000734495813787817384339553832222795065946201829820032384772069092542641612456116281566337530897092756297595875910708503338391407337685728987037854819226335707393838098149564899660406784147085469717942532300200699046046388919325327981352237964830579137134315263521100932268906687570645480951175219370487767499338986210164340741239913878891650948269066183047369792997060414555185169964980016927344485588113261051090454081819760539448689473372528071593677549161032523725939376681161770615913956416193199938534568170998411820091940980055918199267978060249328809150267004904793043052509312824091198647358279346724223550628401787261515800393553797705433079048459270705845589285616611409130020639787449837950447563535918643275939802410590319926068035531299703223988112891090689300422046761375893153610491129344361068424250241151053570389392447476733244390656762089412408500438321674479622917968623566761031439492071279105647488764377329204921715384084344417891092217350449519281475683300225429840088452192263082244829421321967414489745964417037522547302058480104775003239239020114784531511206529278971508748542084040532861608032608054671443710690233089604282136856140740159965795822427946832654826009495680987747365717095971326617033363992106422395498246629584819595892983892578918604953152395901437579717346311467210461906939302880245461374664265741128597701665873258413050510760633650618358378764005001407226307211821225892708477215145085896385346122772648283542505015577221691100162662621585678728913859101584688915767628226232372290712570539174554132209856673285694167677300108100847992053334479188934893878035025171599249814434013807274582914003984689907140383744018010620004204200984037762867760166386738446811417233911650414834346460039931201733662000461085161976414946344660178716588655112431411027241212625457841923883949755377678682382916528816502959231535291313428698440117524280156243004241189773155795716138867919182733152949116617075556649827377693591321187765122136962415710661357733931346886403564887700137690502115430004058064287801733966934563917231113692850021232333201995143923953025529732518585403839366227488895725991405721743467821404936817739313627546581911354077726077579690437558591102334696092908771178690637079309838956054223003083245604933031006619151477565498841159463734566450850926787033443568367593778120782086081121447628232439519148991502375831462986999082485265141434231952581555120402980448659688329154628529459943317163614421848450116994388341780671794277987168003075581119959175430106972930091671963014238676920610738041556797197949564605978790192450369035997764745556189001145361620957385183701600971133169041802396983066585123334317189512199644605148702719328702216155674812121814881475335041157121618448767919965810848558796712515038864866246697752691107937698246824230784881576714079458171686888538069068925594820352700816694797759773369854283910280002186805558979295216505164630523981550582178585685006113410599969021682518034604952549932679753766928048326598114787460171468265166214069795864250644655319484607611679585536029421434263269063293815815021599208433230734611044639609192082705177208670726407848773331769997196726826110439049355544373624976485261369607748678529176616103316658619532174386851247404376892303801746667686379468810520409356744360459222866663854509577152051765615669973114061017496264591372793707231055210629196698855390985793998539386059589178421233666389121705792593635406410189018214502541401796184852621734054943299767265020944554108154961045257002719163130828796573542812425000228006906861547514738818542070542570247335798971193416020480707610576186391683543993355697318033186735481244150297915597721310933804617482597110508624953029971932675523865432688480192289944847567255861431080020397813589674331599607882088276251608759070774293042920449288838725057022131293648435906901402971551646507333659507647304209104586757269825556520467620504199856364563485723163869405566401067728604083766416183094756605309538270169295165214784452118145338524995257056492245016608013158061958882090223556738658048250605262599883365942220262094278906456435591870189023751745995478734596422201080986603857285154601863763278637451695716152686241219855094945721740320362967396013439073083998940798236940139805991106104831738669440615879763373069808918135626935352207484651844605319470714978889820346531748267710671655395926939907142379428193696048197241424167445188285233286379763156494394494363716037546731875476867711382736933378113338510013192882787674694825466799249274128700149696673417922450140248846047715156056276498065778706773120610440330124867885697221148515892535188713319638789013709936592369098402066865434748299890026854547014483831177057680692033716489596263552333690630505906480182414654336502843149521592425727142499340778927195289147290113000789425525721537455539933194639343425565396443734178030451044523743423306936920070521140444197347610558171637304541902707990770277229827476458251411240682258479934582904516308851184232052140060397877245007085135249691562454219636947960748945158502911388599069889078796445186977481885661274919436452472003953753401451869748874877283761890711302972450702514379073644068641431830243239583094711388959014262840287702441011649486387567288019126335778161155695205474581365165756762238170425360609774205601284389454717799505753018308237760462751433586611835551251548340042647384065765222154119108806975064622322683253887750168316666710884695123250333579657084366136501592180910297519717497903976237379922484836378437066111458590839120084339552985945609319240211978254228123230909900367004315666095168184191978732438269528708361367549444971104881808514373711303370522352154707459913051276425557172349442939215716574000186362214421628892878836174403069672835739683731629525653163323364396245937581032343391915545343656829045721474889025797853506273031686976587278927768384928011384772777268350306795662265842220885688770034983156276926679018304226810361705897710038570070225828986974226957167285220643633346985871106604388290270089530846288346904666022539777842603455959177301636742628592920392696875266218196386762498329703549366556319334368374798289490876321299257064564266978677972424327020596502385395885180695311258362685642858430867906858888421161904062699806180779239466624233207860804525424780173112762869064481095667089080332984388044511779173047605301103970082614024108650574081142310449307786365419925876028197762555131983979965433570193441957268711491151785514883883644241243674894521380103512947382722484264439741433562736588466238487585838037256186646376556316560160872338721086188848856248712647619347656732118527437506143376980043555509137239932317530054398832624371771589963639819084265107745013437072624772302931372834412366641159768468424980657175326533501309741378333913642476397477822003386070989595501454819523647152003504652483096169104938776146876925405174580226950988032511560355564856765044159463319295569137227281391649509821592462135507427510571218877943446597780455280493984165959739508831342643822269716735524609906752472387935768145925756635736686406637571127981716007123451866970348866774529438471043274047402834011792919379260572357664043208310727547945621505099401235131844805268497495550135375271112871608818860034961621770188443357647545839680227943703925971633603699898978102464764789564494117701834227363181569231639305596441218148002189871632983729521575975451785454431572865336820470695257966603960554246602933894214722653705637396749516076604636845555983519593130674096955049567142744564080702751362597937056121918624827696773653782942279900016649179317537393125259921277133010863140721921088552164055250894191485980562850074538397122291280052434904763533472773237006657298788254578690175565053957629931713900572132418872260843141602985353708963066750852323572781647462457010378350904943446933469872492323318888612439093238250604491323883022880373191205982601800194083293411286724949565547114515165938586011138149589471367502538149018473077390930446512282167931874710601812648698606889934969637022670606812133053764707314428596009198372824921713085920066042460374017506435494287314966485395144878950006292476888495301860557415358960673932692037713115287601335644055997306364982441693518149371797981592225273472221244824664999570098081993663309474752616435534588782918846811640439605956315921821386694091499789894515603367894382602342367482072883039269634192249419151639038940777907781321518944337057359799222032154971964220737376844420177971047798871257345940826196868664727590883450056165493684316663701567530661335202077311116711536719281710552506430151495345016486146389775070118237803902714847776882334657473167708476509238889025280352772769446963157168518080246582839392694378595311408626108394090986247672971257623790154459350531016781680809154779221102518033102380968793817693742880668462106954644745853702083407397517199986221670344605637181834563000164745895096269572798105349998792599652109058758555511306431918941235815054443245158145157712543274300662993364877676670338142707131601142011778478372752886482401859099782446664471632173327258834778506454091565990414927202186794689280726469941944003398135211328333719418339147841283178750130475106577256979436933894038693129351710540879032669815199944321309889831514452935395589963498471855382311136475979446510564632962730097386294601321887537881744404341208116379466831782971229521176199890667023932934013877518089563101733208874382987683914473538906772952631342596166910937854973741022901185470920204707457835688677977378497758519050450659058161716688318093853400999916837385476702661602111068549129866579461456873524075745376902543395561255290887217758959008269446100660241720953391765876171257082319680269737985631652534790220033421734038262785524542653636710807741334333513372510387767804391860866539451491037392109880122594128889968502188412307012517988878515272559961614790962991050074217807055785761809916415818581035813195033153229863329040933596320737222186800085833250723363828823855875767429903548432074581779019339401866242008191270374561139253489643726432373874322736870376508483977473941162787741318087468638688095097576321188775289542832752269404353896312667742578612083895503650364098243499409440841804636554189113245414406035065734621945037572777953895841284623694255511187546168918986969631452860992302615701306567134522128340694126345913275223433632683642822924754101786808370154837146967681906736905074344000437287637615383499407821637660649969596979394830870681648146238326235306554134317608400345907885791513208137925001886660788355724223498712750368181678800677301061342625110849873853345343295394748257560580578418612526458072664394810893618184688154494654940692742546745514533968630067362574683424043935186198158895995851049186314729499936272521409907822784367725466925699830124154840082157445534685027087319700634899285582965221912770466617197412114697787369759754471485639116405318047159478824767143151154964830263392496121284011388092545078194108387614526195802507219951094932204352616947281904628850626951450051691621726545284644009078093164950466569838735089236944738811800187468169760173654922984450720357889504242676442679116464374899374914252053777334903003762224312071357090538301695702141650967103884570331909493278166950520162082302682471055084271528052383609295515723319360332164719007044891685239810663158288449541520322583118341330677864059409474014283572293407496597909218159372872721427747674887451955221424774746909566566915039683668105508530330813758078362639196109268788508520372384180067160269078800554370288264349426864455990217721852169153929446129053020998979386054843270765044493699232855650261971576327759286772083822981924172013207915530073323417642769444989209022642887116410025554984030065332256735044840321681903958726023463380658770069976060518442595811000859254212487628851831883850684068143497194001472569749445664775987684162129559008047518237966842572341515244213896761526188730231549797295419109322747850339005897150127839712594692583613884542518613158837446577832933020995414923810148223369111708264000568530044629070366292689216510459450280764568804571319190644362566019699571821213799160620784136199534206306963919070009274475134233187580629838767309989833972841723278478385317116841680534927879629591613780555735850005272453723246764915797975385122498185163054571677965642269279472412436623488283345346102194447475248752943781328781255750350591057907552557176665121232357481316866007321794249037486619660400238100394710138930927518979606998370964119661612878914399817227868572817328947738824542080083170793263571896682647882343494277509123437583901528167459127614575549313839432623734195091751162036651999620252950794921309223260738459680192137334093394437872226751080795833524881651635966202723929706980114249345960224531893588855090855846724554335785156653681252348769724051800385272826844337368520623177757531660524516929774201854224051608952916878728967308916867326255981582108472966152715071575730643319861278541423958401946965311323396697364207494417561012511071743792236615999186215613336562938095989191675264030065962649718211213502387640248650761311035678188058898790516169463542375861330223600867827431646767027078294205227185865836209335532845805146439078034992889537015617552959407914179287594824907206974988154570990994313206686217214838152531466943257835580915015134598230252904412680706750056111441320016788887673871113002161536799133922806837556187183133787608433660458603329721707507455000607341803489450074494422376617692693664268907643524736932602781127974712572983392033442589685201588539488850967409696231682820345167776756191004259102821701594168937953394922253744105211528113741743726600381318667118460584778418429111614241332256817702869472458829330718686645343275685173250480794060441523252618795467805619550000656360145687283821699551614962716819385443950995381237581887636457505394360335594708543662850195684048932660888975441372691623303157851274551146268403451218303641689610485666779319873061719851821327683537322271176693295444070908454672414623380434160108976584781510288586832908650999718807926135926402829600747407997799113139692228947958184453417999943584307545878894641530244074285160324181790249936079379584606246331966424189742823692954264527745553801821396194393681665393019843549341234256541055543428891900680434370284011017076202013061530736829862574260145071655728301817629466266090479539592800950311245272373116167094175957100910736577680347881050255784961622202290992405030876414915278074121397128855064066869612932866328524633300041383951603994974471810062435590736266990084502462672054731358005107727754907228880603671518869145736974839946054033276513515418386482868047324434835221438080206661974856864931719285324068757784868838023249181111147087373560227263433291146100438831869435149463972052685222234885759005608491994844312028549031756816364132476514771824626756365752703910965054858750917942231177853339818952101810335182398090389532658302277507049255548119271315890576731451397916715416311036787536797684254962229226918143736628100146657748066845408536829409854766860445146008025947248154380624412632404645363666746594788556607573012806728950021841820932078949946114389950118544225903835830826425052078585096632068425290072194999255131989198195692806078299862189570715573174700373513032354566195760003268366343064015104233952161391046115964285316778393420863839680359479493432456956189868801758542925058765469898387314976484695206395063560874745246123965602676099463563535031346400289133411553187998970471727967269803558201762806044480443374292521138589050370048994131109109038489799367141702169178946816419699203156614420447178278357749525633876997844702376841732846403651509289538448222362806183748133660226992235056331564267064938712688090014640514215563375988197467953281642483991560526635681835904367350009411254875694578112057642830054449996473459115381540543495045954796483143643816922637275869251586852377078727706926127855950141125255791862869315380624698851486505807467754333947235155925167865521014897966900819896306831772307920807626486465929427616718109833649374218032161364934860869710244024701191362204155355789207720821799737273995313617355527575231675109549083485110773680121095028076691185101680923901311106206599244479704192580192534676438425620323617776602538251574869160369047181030260769203585432961556261761118648299503164755616194696820494913435775420066377785655766339487509584020558799617331368802930935991063721537421713648928569803118664492092150907016082344906908776877190047790998613288495930698468632753992386893079890010016784262719890069499613492449134866954649845978953119157882605347352486483590485237829903293153736698988124161904937291334839524621990819550703522558140767169733267501631215252082423893820701561988543554520488531348260987876813703347973985258381484777252559148502700605327958898362241331897968706890857804768439047745691944136403395028016990766914328634886804286833825687171058423485651219967101401292759950571990114695889258034819026949854900667110195032248090243167229877074652744610008754835499925975962632328342792146193221870654724548672552681411627823679528615063517334616858356606791645529728261220823669828160287552739750359045662971895762041734410396499739371017361431182817185514548981506211231836486595526221551024971536790683796905540926923336710883311761704621216293888275588194078185353937739735881872681192713725682299387818374804605764224696952965823838488000238798795379389602468691765575054843353893395779626340097097243557122174194856990172286719242741520394601980163575548683395018864914361112013412025612461357519291002913556252329291925129766757362177941373686750618238533148783313696152209236574371896100408909859576494983164423914348443687571490660725803440993903361071946260164543169857144692807549234145142074479991665229215868493094906360271923174556486195558822268027756942573961065535313670214512652732770156086755496067591001378987407146749485122348870253782567534500836344586755622195473061663325476228742944931676146738248965056028670228121307408607458136532107356699420814197581446977371730678931889100124376615200566728900193858112365845952755852569586408360587401872469019362553696275499372086474477918138333378552212776596304430648979457995893565662665998735602476596829949660706598025307460739751238676808660080316918895608931290896805848499483255743151450687933274940144133073437036265419220115025469175950878115528487398702398336541139540901038457150458336653763954698137012462191577989323615590319553831345819431850805841551267638606177597608479409804946399141413853866269043131606497510944845538910337123393361196837785879635600772401975759595539399587884260350450119520611034525216260893697812043362174366545968575834315667418052729466421110399107209815901412954531548922087509145327109635696283482320848797151765896727754837016652453700075345262511051992557391989231809052109993287567320295222646384468147521530566036441414215663320835406402787280547723010862842981258443145965330938353892818582469282112380929950729349066799298788116541988469752317502079009337851776654630198021543371937374309201823046203134452282261730167201536844035136657280030178308168877405482470846052689343684059126416020952245208616571614172010100995802146815048320559070400894154189197736494535082596247275787317063081897997697643399568493729591660088177973247077301421443405621298899344364044614132015099899815087696130173559680399565931746828748318476554113140692815950753771581132560685758363357151389692650932813478845387422503618118663261324348932617343255590202304972671069736810459083062066763225681503935001908221111505362874491758565990488065173125051519243325340596465876079683649277992186966938989296967302747643018179572066879602840977831860024579010350340618970240193607695123327412145575524731326173384543947182385805838732510984113724308702102984971500202180147298003184392222006751310562229027512550288488353431261270177715442276502663456132372337573598791834741620886074434775832392019213667421136723103712239614910865255528474690784530678120401225317321682164477479748556599962764372974814862007910870301438093308836493784633250577418269362754766764045923298956882119060742124733304552457877417376814321472077365792363469085590378531179926907319800143151639513595331297804410382874827463660592978447970369581795430245984338947317485812060034676788856154575684221156911061131920783208927324820595005084707551672302542783343644122320739721423266717357639218356479848394307987498675119422151226756197905485042845543121379852942735351883956981631469003538507404166632084523538323888581675601598254350185819979668602339224868463122813185148706004208464021407135057023203349951018404519375197448636649295178066207425963219862550825909518634992305661514297158481022665131218261025476074973215084861344814213754455371370421284602870776303628263172066174816581638996157218990311549167225622266597438654237783729386318982935407353317303198154548015227382592016144246854781623274007911139039503115014411111022891129502957696459168391554547303119067262759420277893772292731427370905026547312880768239248564600122954674084535131164113484477611838534448086175311102283162115907215611403674966134812165456484897934077311271008687038021806744785127777220799383313552566351818886713217858026406923249682093691860958219624725191199018965571117724690153192271368578208436187285941150638021110079120317825403635463862685508705233512371248422728408899723270794692801038993173600018501552698441738101286226788762474247503779611050966435055410463188822445666632290253458033568157725908103663990951548711210479761258592145531392628169295649436292557649029160747455898013328577370905795728775131030072701652238580355356002884768325293768758282004803169124750174511201290765173185699985260479590762528316469520769713703856900591866958943503142464967375653377110627071549990170268184032809825499327435063911854678965051714832888914054254299054455485538937254320685212009807184343439882006912842975051526510126052681253532458847593487439989946556302122874715511693807023961354253872487572876552893411940971953275253506453676864645089808857841892424893081613548824895064936682601505547555101534776772987944171511147738017994920973322008383043293800557061117367162486882989776569412257393384716948889525877901748383982336813957130378566357191402381816812225125383602350247893243782907011900650992035181469692257281301575481075061558377665146607955966874845940451875740579310439532360530432807398130705895052150650401209195748009520844964264347014040494497881390870815478792498743628259996021440215454509711692247058363485666842384938444806370149463855226614765313378884448675478185647073958441500365401399403616106937760781430026357450532545332774399971138404107468029602072550458515467366556553354960209823870414595529878849848674317173660057765838163799009963202431889168880931067225988091309736284169736996221227762033658923091769496497199873849633880023770901492095581820898919891078295314178745628705216754381222586751577400879416330112638371568800916237547879229757981338334262097610718252714278158614390312197295546442406191020034728747733036984395303250079816942374898304890158600015499095339493212200100184508251449031148815944869782719911418722595514264498821080589443189793720603225316562980874664293939841690902674505794679555593822294564342865220928470592779598118525352698427807602491707936519496396901771941246761560869114130441079107845971845903355825614433110938222106890962164110864928871526665417759313003392151039749920602405357684032341783564259638895020504673153854173556450862877525250805974266629617318327097146215546658300324179762477351537058633650402859190943453231045658305126485752759108287636147700950541720054212983644952800727591933038626010593491882555145640610403901611633200477440297455151568170725504387360214882587293185737549069553455806611195704144188944527687050906403424344763887953468196226224796525393704972716818995637494211082454945254619945957944393203797696682330918294689887895992756625787211705979432346766780774041035479587668396360519175828207911211872475621563975616606301063348928997380349841489338070371315270070373404172243508654453903326721066456629962577691683168448667011878698204101616121437047898785506639199763356420942595261461393951898375526141066894571899790215136211069589691438525797654420300228675451298394702125588903413123532684650359832665688027479599020940176222352788935717372530654145056240012682853310726874140472212814602888772659210813313143689040372001873652008069908888108334794254913304680781070923906737931277283259724636047247366948117469794223727487073892213262616632024591415767512442448665234936642404597423046329873630097630490197986569778234893335009583077471727862090123631679644802918909244452151655453436767379497106543402363406605925269235624876620946823421324630369696826619282926471239782813901424153554403151818580665219483091358885194762020374668804533202596124511977072735081981359418045204028486279856050853358631635522020762964696778664576539201599999416035675149179022578235602385565973912476921265833919678461576228714121277059987373354411815233443425606426738094832724074203769862244962578991881490350926908099913675911822762824714404072800256220756425575662910555119017826782562954622238228834482034885232713581944304165490012565069775260314193215627329850869023122509056490931833476122967546797861853629752495204042015973704984325025192166129183617947919029106779303514726255183857440260022713893527571471464480070742770213019895776299054594154607810789956041409747359457539402320115521004591912643150085731567150245118611873339916873900564177200685544412167354985445991120853325302255858091062323306400413557185498993053743468134462206743996441434094619159678531425045875094767691654013350614830009974423720602860932784725096737338325996720246874527957233118114518684312426553118378123201906908774551087572398564557059601226352376820065446650941460666382969014410719708410806992268529520711171503631961615084976535624606167923783977363261940406459580502158521234080088949966921963525608010859350045829976870519116025775417667670302996529231896956013496112724111096137373932850821914424077721832832883993850206744714250446002284866619762763755647793633368852134133519480403321933896064565758527243131131502228574875405102429004505001930773576754351853768057780445386703976162400437630641465052276392567409658188943522795785739226367930858136324100639064032128294919185069170555200503818222703296032569895312543211712564959535856830366508193527131113202261178264225954743718126396467897609832090172292143797513976499766211840271982189441948982526868513667299037230323798620602528145276699561764825384000499323921300357618799206255734952023509419312264697101676135426140380614186721433654627704783434913312632539121859447242408483531187543741777195217705301961914757712899981191379066494998112132939000658433507135193615991781479184589909878903207035621486727487318984937986030957871450713979829437579266045292987704632088233488299321520672311353242329050624133178082969056394695725262193608227163922711212326634906836741214302994459530829854924451317371901382485775782229145149550162974688534380018314693734353246080784885430289134065693659786850766358606419589790035049165029209237678587915439040318013443382489353170494088371636756550656199747295622115506270354923293366408445282710259805218089209889892054178563910691259716949285292585773515165352742413618331443302156927669923848422430583246076689442208761026899457974489340939709057329668540907953283812955325202916058913034108873675620923019119430586236114945307874444702442188868938714448785609832355722154764538286965185669195417409816481727432573447036282543265817554287601893826312383686742576466627978122849532966746790779792052895964009424253994910089163203377690675694179491191214379939417390375642407363280580309501929806848434123112867885329499934496639709418974782190047129921856659019383935747285205560081606626907165221114101621699206032470760877727979163321478878529989721610827099784031213281734020591757099794218962411739812426659720127436732823398247644199949118946482882890427784206658235997889991428915615269650581960225341066315708820535358429089867285611974733359893398123818786451765723896646088570505667236787937618930667715682701376271354360881057345612182829567719976825512540828804001463574777432379975176843099199086058679016644279609433897174382004694641003144897957265623904509383407681874455778938796264709832017769188928835995967969178241827940543326782861108572334324388714425094255209775635877088127099676362413372070485537580688383127375416842307972001162737743297261483792847401004053600732330757305658417426480248955023270511108050373047933572487347236758481594909749848065567835095330999582132761280087530085806668163445628161380749186606920552233645195338675848512828181259901054603894432913531817388508734046755226853760361897310311854808535294178976627505070033762125075970829227918552421113596405184802810013935648178672495986893089382456776392698309469280290579127992535076433000438160965163838834113368370567389493785134008243401737884453242929689462058990525776822440269050713816097850360900065165843197075888553962305365129044330208984708303862235487879205287300108409330615292543841966085127849178017320684362612393911392143960048677993737642980215292945768813218049954907716908746567522332993300454400503986252045347628556381885761875272046323217950754856598866839039255573030190228740490918486342332195192991139295658811089849578457039205001703754418611515323571970626098024203193106054628756180432330130028461258509032317795083220794421649184738929359016486373411177219352823378502762859371451128886134158302258474332721852275173110459536513646699435903223471479872842765413183588452679300561370582350472459415351693681354070078867097002707324251743201008146941554463770882860065354890786663953873036164879787215472013857803771978363472372563772962019421585253706433008664096478814166946563618452200289066482499989616475857946665357705659690966125800161241361822725563094770067672518799788939745970310506562399343045582060567562317633252749485900147113238025648379145545606713342144910949333381113724782138087103143816539989231816655386822200650121846786752008748477299213056607841528189920648512436721405513047567403699629442758224521052076499235671313501202493150570685459006553072644754611925102411205165190100838035930780221435293442577348355258449295036731896519150999230074182123009821637847794207413711783016601697520807193360171633305595932664017316174383166439082352370219759729618203441576838668643390408193782210559048016541806618895550736207656203090628956845367573134372670840444494624364526542792776683292933572610504084935451224901249305696233116285351960034966118265171975946441810243133872917623344127618199553988494584127991497329790079721985883669544918737834370975083525964809264504608918909492194726306651291435551299203223118362952607117512378731827996267902047152023913929310040833039468547303839032802300067742106203117718209847908570702180128193564268663253858065232803300898443475455835865997116862743750176115078999424597404727407338826409840718560449322978337798002289359851939079927409867996728912180180046806603902945249390236701572539572607055787410675864516822301858720254792040948170304058083820591456864943281277770403005150895958263157571518463976691912341020960568517980537148668728393883578994916561744738046267457328526586557370849246091099852038265210647465725836569138482413311826934321794660345865711204025881142226287829106822802105679190460779443791092429963532834927813385108120532292183046196593137967777009587182828674249973360608789195289755752947717053608345648390125414145217376366316372401673088652633715005390695749559574327577393891460704885318722696474601626574313875467151861589763335850796778591445752441032862527439165886930057369766786880150581071678649666668650700997222875013462578640546503352563804006151753706236412390130977649197286650023040666121923759610007824789843843491584040271318741124515506528486513179208470894837808655872539675589126065460445537898342438657506404809410501474841624164823322311050773680633109290420723275866895736379446173760301972566440780704045900183260821940076044348088206299546552927435041323993749202462732474942795747101640239432963567741542457257579359600741728747665135541047059364942510087680376101179131757588476474594103074216975584066018389720882462873045637028260857769915875825062353035771966913230403842304399832810379802403843708015167538357348358315146710945336203986416263226791274269452196382693038822202552348742746181277950686821685499193136941501632761198108134031899110934101903223865596257021256348210386452319923383155358275194369641321247073361562372970890939789350631705689613636880131881287582559225768379421411289221241603530236023970461358032160409613093908510646398466952484147179027343366211145342450244466152136287943954453327672961964286186271001239268360356981523272052050876986034849658931608326196757326624661311663166407571431576039077798522222632020783851868060362708236547355799954548667677812894306765376966943436078916006200566623692120983358132939614389577298125719438169608458715558356470914584740763291042785371771945739142393373840468216867700379432780198039131677943607176773428442724774053634436946424339642758741092833743871541434805451596832132387894648872485611697167795034703583533298299110040478403966211718228707712089002284976736021471660216997400421397685359768350683597581029297669798572338798465233590610936415466443453481522511746769737435170091726431721998114845300341528543979904305877608398187612232778392589679427615974213412259174494046172366797159047170367244450836595207384283067870328148748385660538215189798656793126460816338608150717594929691882748795024535397767129845872981145867037820047258957523910369894522900840628539444602685747866194880595919340543964555582981630582056006836837814460459178550320122883132776022372083117545854892728586004227012810357693308965996386612010335776226232683437916447407401378620626953475003940358587308093543128011453639206230357075504298801190547883264701346511051489159321585756814451703309547854016170396679777909032777581297503146500018269859611460340795553165868899862619094307317635379259879784127268255021837932211655839433879903803347481232265800747350623873609835216943603854908172706547917476576465953315025157473164079633573108555438915246631560863271271191597468188258910493279470288253774349981071525375141994407748576347736596290893140745488987497749402624562798620900433187479096109462668260440277209423300610765446934374210746839444938925688227035914542660500146829545259604723091063281011347372526617729850794520496410916181777909338402923931065321624468039388053261761115051058514857442743131309104424113853244812398321721777695788893612881269334802496870746378125895742057736749164711733383468838397535402508648092755591339133074233346870453467570321912691958791148561834405430336553079427881444298918168215771926631472213128404642377132419882820075551301575067986445429900419536295302665330354698601228898597218921770849204505396433331464240030923017169639150043905445396619737104480727882552026895578956666305454811176509101341484991990322835011304935610638043899856247185946399618874698597597740599061821274485395234835291492637085745584325872707896141386649803743858432088786870411231593000595153735898552311623048285359206773462767021552563164961723889757240874676674733605756590162990533128570049900696413021111860359873912375768922506908840904617596540481938386432751699264454597881910385684615958106741199485800642118060556861750563369468573695816180089807854726502373074134781106017188096532146697027279821602594349960804532108693490928772631478027935179424949784524263594543819656453538691187794441932350268876972175904843798504342883642041153198320417941534411324885471076509662969073791697460049937900400921527420758499758763233075475612538849187183939686381075684884420839857675614992761565370287936631952170427381606235950137271716870874743177582878894060990113175518667322055054564254233054459464615550409557417273862698705602098796937909087243190238147167008583744225002302169203632587536656761222243713634294274066603396913022228251047403315775285389272716260628807045534657005241263740733574639556099096029175031523938552129318766340766225139554989478168075531496557109148975248099237218391475059617685601667555541132235118547210303329420099063665746167588913568451166140146936052325694387034433354345984041772714463553345970867634383577284822794476304913980401998644400918566891269559857991939372333661024245788159299015673390214408230613107844064627578254994179000423755379215531110830668953637211482461119777598753523396258338124166213442125708820153599865790215923613135763189945910292027710301492972793141004026932538972536684987340459009064263750599609404953936255675230975313788928582692798444133759464991930411730481544207940133709825667987998190945050998034030987358143438159055976397903643205583125328512747934290187077449480683471672256254279096677436849590119416867778946579088630187906908994620789978739488884171796170605106379972295615244759508517981910976564796801675114938252307033291077825604221916014904459833814110933119540542459724662694537327960145726947919860769975662840692517521123574210788886386150444118149473995138119833869676141338299594911356541305185335036035118065478109777717392293847209828773448456752306015054927071288632094649035577318525510483606587770433197000983420712248841793542457793005696617424307793972676246584563984385523375651514445036175581513697427507302341336395443863511781126803023418637921968514960491011815225224447825299538592524200397998411200129604281869260128032089044354623999065308446663073261260434329018429530863117911697951883979127399320252595881366386679747702835847957176406198557660221229587186756609814367304612509782988647900643172737529026002544427510792770838712843212291727716963132417421350544388752895393882559030894871597867753163606586549772446933380129703795311433073632657189809336797936871644569534141254291417760419452673568195263426602183176227352993293414903549955032850169024384641045079901940425166858742036969927690832665347905496186434792047366374952855328814787609927037328233876228784754096285674330039231439642449449298149974863843739462754600778841487082915100119894000397075078937887104002820341611026066713281859726027244146862057841279940584624934339964287161868154329352857752029128620848962268027211911317685395451408340524862348476653168177581173510211059132375022060833974277248995957275596541070070739081968402582992363844254680309326889343099336443987600450338139685087499364967627844208515371726194831218737842328805666283293222394303550249631233265383798798454095036135931271879807573306107381050932065036275569689168141936327344037839848216973716989524901829679573139672987854359361871800020391829846280478418534833561581425880002145886598767244097011109013614794997694946643733782575059212326180563257733966273069852991340729467418029534738999738607703322095460961244734009095634467880468673431231664900704598028611963974084404085314701751785934747229544658044125928956885529616930994082407504875970350797144231643641830193470308275263118292450255895323586241210985402943543020785508687521176903711004498697641604675986753631278378994302971681861460921867622005921777300382348610222784863326791191543523532604264640198344307055554450879511449498412079756131670470605182518910024686499142702582365690565053880308201842364089570903869704525077336494694464661509179237997628350010295642218545458654810889077707778554078267783302151535561835547745197708812524374218963936741001598588734929262566813246385151071539668580584159027070561728593180355477437065981291055952395007403848717399128608879098800216992929550783498214981244795015606956573909095153274539718206373401131470291376443264969949841140804436812197360504737947837718080073153399025654034548490844313874120818315300145339538298604912086058268221601672801574981840716728320553120958405752407836242499153981865039958418369869562171244444339817662198431298291772705917885451588455978704875313572211286744837924070744570108050638045085293146331058691635870477016932290072129870734862010884823632849384434736252642885531721578462230254367980312130795927015155092765713631238212037061033298712029560420592807496598449072284008684639383513692876142995666214586201756527217294593214810647648824585492250731833411487060885150536069635455910375731259821968322717618690719000536518675856043392157925370836336901705253148700828701450854144288152772543222765121287472724264250234224953133771844347934759357869745038007404801634666156295137600478351284538415485711901723144214179361097030743405932481833036453836453569350822149603601337394348731162239976092785776283942152720305860215161016370463695508097278499261981792847396208772036708123201980699614714884367419969712516122294562815158330378620394658393714507177150044863559953787822723597392027744991779246595500634983723383781210009627449284268721532438707372511448216920887498042240956044644179318567531611443015279554979467699293219840489029447642891206428961335259740653148471415874770877988095934730217587355648485953202804565312207162161221621990143252068164715330892414995414765915515283621424392627962468170690418822405035335364464981783548706332941774323188168805843746854566369083795544708568705589186926981368125993532371789497641895917067430779315884750927727346508629078066835860562790028606446745997426084259963165543875503496181736140263709043199057656405121192783208251737686411369065033810120962326273834932260829311302418241893730005273088077760829406175684978362008764202084936754451251850951251479335334152497686083226318769720086605242629171290437097470172790112640549571456703665837602344342855401198174340112292191743907096380543774877227351486541062232878421206853627634409430905540248238515696217278108258695433826690016644116369449568187995297837376759741505538166389276797126983713669100322328700868025974844541337789043295577915288642696763149395704794190046299058274459481281284143060162468592073862055563220108928637650731727224386623012198400314505894976201955314813162101573203661592746753765381507193961348847314891513858470930238017708637550605041941369771341162674838512958696606497504781917478826748546778592263935724362818076946676583140763008709852262787765577717541745182678522323581745511041835498133488453921174634118012015335833986211853324379616146599621233713805130915824702028856483821942849004100266042386607612881590343478051598189101490829403297348301292983254450613962606705956472920422788211525132542126571706365405423127330984666904944955392392041399423601294241550167460835316142235322035798208180243156944012026288577177658665044442121008256579974573474672692342144786466149873338777657022997817726344838901592905395588692952548995341802432135911512221463804922682642821428567454400457866175320503315713526112108428035254497581572808379546656253262964161638557263944443072155974675523199621048312073444427936281485821249890238390428906327635517856176441925384894206414236253294553401815554903278143115770076801742904142325790769035282640837628666344605791108816837038347478201144651573824232501733884166601654418301295356131182048533519473020498741161003713177363926392661642451146752940528154461976709306141015942413785655314417597837782876023361102269225697577212852087456319716587810323826424485797162906972089085451137245099093468803828879112429792749912631250448131959122338462256774704780499040802434997301124639796584597213603217781256692886939167108448390743515489244090257133795051582990448714385864057949268053892495210457728803330505495943764615021338782631879480304829716317468293035880363751044296253747467116661188684502118978484693227572667955338553375828540094517681895048071728499539819160103702873237955074086358774148790275220725662507602149247703461529272906377670557891758897680769254392671635279814442816221605854114093458522428767237937536085727764062346477366001647513175219515594133493163132343644887146036053736904979015522969091980234951980054088779250309005065838685066887810672283315866043771535728386957541011208129303730200106807502483787164938236060346134328800498713612801525299814928752117284293873897052140147632422253874414089600227232942067215865297973258043061054953081958565472695003345159677425170060205568736160016626914893904315607867068673509588102895831763630679590840006749684935558612516842237785180878858619068154412927479871558050039191611956963626082488407190608337639577283094268862643274966253297236340205820975004539600574488083022677932786190141116283734703753923234611696301078105037929177942102674573677426719098085477406391540380509887020906065840401128189232663805333841552936696598985574826403883773681889150624453975329759231062222423418766426461609000219952822880195415051497511067133157423302527769168365906198139155014751927402231496578356214913985567133204261632373431787682550347628527312955546625235983173424061092011877764359434209125863114388508185714264014245152536248112392479764751718132929636684610349189107097947584424116977762704180846877329621583224307483822420612739985144323853810048658162943467653541835855221341531786218289380124790749392081069891643988614770420980442804386459156849404388104302723582194166300615911673491223583331684500373154657792106050609080088885112937694456948140317897967749939362494922190287769326516902871047826491503019834690669220439538986143181357361697569110907687065169184111678990661552517116466855766821976066244054670511737033303216572946348192243772856825017915794337839098540824710250683815627267921227629777492202142220426485228833139675568247830048250551194652987826125198334816165398810183565606825990863716672403040861938179520599074708059249692789334130377347581482222222037126263551731655841350145946890039905115222586133891897683697024970787499727987212357878986328639703813313972018992244789874041391147250560151444926674693112073590457413514061762507204243162455832308095706962634860465752199340695608980747357107366106111783002424854926928694635895231742010240251968220501321427992716994394646262697503599583958510733354326726812082588903784637283717945848993626273480592534475055407330972941079375634605325788327606223984502035062858527346646776494495483381093261891503393913754585686535588162893930216040405422723245241691313144734127299055422118441526703370547587516405955414616157666827284674418050729173110973105466876221688661659250456204439928069793678137337687256117102836006645767642112987285229858760205754332627512992669301501098781135844910712481151860602246164970317667832579063698799276165190431351223995784244943827647123263763287153549609974456341589139082301274763321638003676388231463935643729629697401708901188097583496929923639635195375979339057196551678235856935059053977003055632417175713021679497696968045721735368500657579054767695677012601544873387164533618382038066896041422411120210913985229900133478751261784242206643459999186187898202624190596425275812001103825558190004671893756024632159643964402475586114166008756266271131024933221815880914264307739269068689770344889589512406703428280960674521970896536423240019504966391791336514383850856242992185264024486081328980602168362874350901058061678874346703241443847113813009635822201058269961314790564211171159232856493870013447078592299267433318190857623464464110777867308782325842297225104760490239487117116681584529774363394517199501466035163694636152818118890508041353474348953894397915869653191944445698473323231363923890363231414025912579990023865526323663316805359555222231346828542042726706811429882156034261621451099170482188159079570633628975275279363006072815737913711278537999451193358385247110338105242689039251860421765338222019998319139246026112592280312762875619283009631789999396346255217176413464181760181175036021064301293271853442207219869293854636190410007408278801504178911405975498069555291879731393461137205778828416989095052871788571882025786055838645201246440718507669401785278950432006291797120834697897708328972359960434273650459489839390401926576654433267620903135708812501970450503557968870825706816273616800583249254391290291634715787430065385152900531727257555005406856298009915523802360817427586104999938104083796395958308999611546628665790632303436875364733533929361284661760478290433628227677024677631466966467860291454023528491538065489696214283490993409535516097139108539567885786209496959620786390883849375718541726251664649670128291891229177403769132443755541987879635492577631560806798163559043636278949903088075941335528773771449080666801969848915000037237485026007573629629963583042077666636028086616253480257023387764889351730581214741014732640726199005123859839383081726399371381856113409578755695951430705332271079347701464291223767031768243480336239424977168879579206539099384480540916354235099500787965207827336225383120874496155825745558388644807868251882218057307201081559981461925309285009274188676913795356995934833204030931347702792908776053170192330913151033570987389031574126827908668090405584009306702998083220033671127646794817483761542573294845521670166628578355712062908113893264435773109027418328338767612748770736779433098859338686314218316292454855618788552302318881222136241446256163276316724720666548813846469495425454693989823709165248604197176404119759578680377506946364069999438653226444306301265701364721612164411403489071692788749025319920581252477980006980935830838864788633582150596601834136095643365852368234857439684251090091206600833521506273996349501176730180287995722650162426451577273269236872240302179438169502933911641022192398856407419745801650764140639143301224475954636518436179479003857511040274378501960270030892752518965115844556673787815639952112634961673719582994932550884308847601097861105409445927015510121813381906995992995192474240995149985082387275676784365811524965603685970669957285920921568931704806237428904719838804822349363770997527119496567171979165857906582867919045918430771364494398546953402724288707847266742540364939669953736776921893821116696851998986362354448202955124295872387227339313326041491923656897524982716137930170762225059377030222947426073620896789711214351452310595050011185276337441736408332053844570962043737744133604979777398635962585661171587462273210700668771939255050937865003518382426309947270521957160808114069071065312809832092246726306488585745091063343265532136798404712911342114660226993828814799123191379976557230336186056147623623910312152113017640020983379540470617555040530938573247473317941222042455002852476361930918295604098193981080365521199262641650314874149186084456475979740182969680752445610376934377387861791886180077096192358961709491360718096221037947778747156478452301687847583903372358881761866047468517388703700827765042595275840735939614330953198383926614571486041185764056879611607992890724252927493089713855694435520700652990128702604954553586661135344826317356246321546973374751172124434688681370113778762588666011977483378609007356584120481585128909465309857024693809670090406450253001987890979516463389652898840996857188001479426960422246318447306995178252674343619713407381408504399976008580463428946191814741956329652633826370284800732125709548537527435826103459461322274578457017520715889354068707872545416438111213946438515677409516189627718908417215434610129108486515782310961978768257999681986796332001714657935139765808978352574475136489270522918821012502393083793315393192284764515505124658645732744327840249020054984187817234478956124229957260640604339832932233597563928812372919113185557986981841089299053025973540885295126494909056200820113657720941669949615657686105802812373120559584836445176718250675143890245747437917757599942181989994184806621861781082882255593989636305092613626440305140491509090044669022053886515154089962517710947975898226608294378421225251195001584951043998962178581256773279592917689878622098337321116082283290932460072744916849942504961337482756305340170787840858725638647543693495550354056350298110156639265992588119871233758904668423490909585701888120859113363276141330757918450601411255334296746602208251670627599303311620397015886977196711294228893971771751040571965877440212176331654769428810909330500500206674169948620797925185314632906000137026361207324058714515533113735983004304425958251675272418170772865923042739170439994286630040272608847330024437234603396429831034692106769900814562743514304206962279576788646995689828931868011724925956326799575562974924143224902980392036822209380963153624727371142329838558734848061066829803615976317050879742264814402273985160857462879113411432709170840899104934584998061630732404509135305615505270042622081691713356088303218989142792514693314742871908402228108351384243284253625508405798756189700137307391127620013421814857134037666653599838499379455456996383896492856013075755102511275778590420965753778423285294699796400759020458707839560276122821792848558437346332089682646017378094363709628967218332707032075079199356088900086671023828714163359515719896390591133272020947880035497906805396428714946843520352360232342943714253368782628282933893174696199816297143634750601392086793555696857290117696546755877659851960756571638067753608257169411203571711651089546293115361222807334040422359258089476546023608959631854016389988261405877580193424263626930807987664055387934110423766688547018767985366206671156183519464681140037008317765095308872403347925370673048057025992557261872704625460108368231202317987209108849363215330001552050410345321850574261717426812360652193730875432821932384253457130072712879438205915530220541215215045274442983908781564822837277932912440835075770526224424742628517737985436634257073468144032648846647407131762271939212565254386721753842068446461414027434855773274178399659466495228093036925746106312904786809955048803576387279486853293998319183335458059385549115613003661190686521566589407347355468808244339157277882578806799360513236599676580255994641688653199747519866535319285427257849813816523365082745423013492199798019417774447394627542840280104269886467742417804955177603230905127445774655181359542913946435776528873785584688648374530901408920032652679335347533499136637062086097939223332912826701887300900675004434312511723145967074527327777444179854409596786599270102953114532137055058813894048970068035718278159866555731410699009958339016821490543770670328258335028326754311689105549580888355803504446294016712174517209307832346213834546187944854693486800933041519562509108742738003328542492000207339754246672564322826471943049908684712955425303285539343209259288219293967871144260692977304043828185836310645071880978877637482535347956149410304905449846499889819604677040799746336713079971910247947234537779165915888322761690228936411235504626084249778970677936428553286744283877934661453405886771920039778241117183622302053566697088278673234063556586256442623538670889755263579850647367102612076343140880327419494738826258101460973781147011519463579820415702472640190366307439178334729309079030398128021540717721422852758481859354090781526057263093761865335085637201157218358845702127574181317351265950874943015791317935759157718800385357301347644840809987442646706205226824964218391134721942929438130783981289802575248044237504937661868885974274610377216029176125732685926095090032530721480130850116653341776674664155561647309275822365436746611797337292812981787292687170779416599644986602120836820663163980410659634292272546577583590947477339036509645039601140768272508639542544035263358254225898392975496546211996580662526455716053068078358372042539997804015932608700477111977422319902595198441982791563189339841468805402560794767310462937125422659068254453464339555089286443117501274144274022282468719823418976246583824021841478660071504566514443822250575325015591564997194418691431800029881287300904592339159526248120733009686104579099088940760547419039184325552431223854823627338928597411266065391355892540782153865691218893841986964633620919893190998845785929538192667143783772808919177869060501170494600526359544481527345888850840857080541479960282255944938948028507660770753074788144493336826320453984122813478724127448551012575587112134853216078498350696110935731496950274724762051669874389928868282815238235844486266112362846587775106735181313156019329294434792226009255862275088369403891344396230665343649797115320594353365367658594845910025640510618560264989713725738336468540737895911334793943455583161998675902881716312435248065120662849064212074457627606500191091600386097265745739277652558664534496803414503777126929449528213822295110536439904236281694143869360012590582792435622497337009336516051498823169541669598890499134354349555023655477842660532072061747409733662093694838677342232551259763803103823185994781405086363950976747560935301185702779681851686821666435126175768900166203821202337170997478640305914085316017310638788093021747324737158829114895222604121845654920329684546326826380825884282020347954419000945139025627926220211303749580859992260048529688697426317857592692769185529169120182594214601712603386393394383143612534266099925964242451612368238842601243843416830961965844377624506612488467393853240525303129428554433586442971563112612665954807127148193288107578120033486259835731971183428727326920650217233812865102231732803376380453024577437228096296402146264446715660064842296296335133837991430363763678490747757298763988406459602663033310155482331785376790612648856503920781098232922398555645557665261177289180199264725062774345594332742398100554841428890683545737620108028363026263753543221147880016605819563957993898838253376828258707790225430551922126823377851599718764699995934778684693287242925808931035505191197179861268433498372448455602055176107006634349503494313248108100491114555244919698975727193335999880113061490903546974915149184243859983771269025075549948439092784763751314601869908139259452128039001732185854626089276746933266095173074720348732263029930602834646995117695666867451441759990041689693377370279669542709247490400034247742050701518643716488085806203133969496355419123561714278419282111770120478792551056775975148202927724509787701000084310866159848258499124072406828753999980777885003898667806501889925958532535578950854062127803416346616688808177159674940902742134741167564819053710310252486149308955943525165711038490657106868550547506338247562933374932667966156021728677921370190904043186975613757858486944978348180160596391160607820543709611240262815501391828113899224503815990609225404715040220767306660207112283508322194351052664882730016674643563628501441561992871275566767834908742448078600477038291900533674563682392600665508655736276056710365340468249524507049624592511882628989324762163762675883402218454433021053129398068747868110496541029683920586041961423873050329706267597838955685988006298510868687542192014341456582903965447095868607593471581064010799126774025116073347726676203707661832014636961865445600125505033428564917415826710963170036285362557906983674463937470970458775067049637838031835094421583610106111510314178584588911321075630338982936903870639229621326130295068299313517676144191007896650382992791878188285000953186148903245435907094044006121172952785509349995943892872997502008634519028015646103559703140674936769918543243538714743108438199624833154325339318663948256742259823061237143148540551932614371138560019109767555414867749575548591079637677499901472888328537407450828713356897153696785481214730462193055279762284794152789415172725419891559784691506330943080222750871404459145614561212437378005415305310104192898065611106343536817781067632029378525442388684893011979698893913329395612057624321119915734784393572769245325295711911148867640710404046589586831414162527310039920850487288854455849302268284700691937333168043542552836065265841819456072675372430862202450717746113063424575777290044020807406771099703531729953876444714406966986690289223257406050396885091798949059014218565712339670050845343170008811600882889717975201703982798188818872563614368651823264268095612669342899139970878941907904751003134750110535612517865128276738156713252967251149401050559015634552317545831070490093208944227911699861531474916762256695228070286136948698353780605833640504257504536309160366637448872726458063221102075342295547691769190908702500915008540756233349270767212280482286857234819791230624649550869116001138279251739558276212782139946441560606495063250679580211476732152490894918066905444586846489218257299546214703582211239678149320175870428468206002563660446208031782571881484091514617855049645071056172313634345865663276080751320192591108723805364989161409585621355949708483710852455639814550433820559469243745351049751747961863051955170212302992826286013674669440979861425224074860507617205188310818020144186912036241192792984647063607577292368083646337700317623256668129297066862185297688764283384060045217219341443027259224324090762283868237180761286160603106919525152149483725751789222359812245817278400734567394907204882130700870340524417507836038219198058462204570866251954158891045724866351708396020215944160606778215522955577131252897184733950872460908589312421059230027404925479537851446762096341187454675446056102466059533984550038267293313096762660881643454495063008478398755213801839880939194865889906483401294081262165039148214083769502538440466207198943810853730784426450743644176635252043705500482655837643322423345436478095082163717338119200776372878986156145015681185803933731145558451946017573765805250906230641904949021035357012066050340978656231784836670523978629019078692467243941394287895114874902451288161699238392849008248549585127515804513859656443706118080501713003724914684748575088320357862606419394448128894349927793364126293495075005921286125921710633455381956098685658247829289041468110749685407747709453732777456854975913018858968614553461941512204047006005487778409634847779087481425588735827048027272500914495394571826032376397622664315040402959398597496836925885778290133284262807780294131186880358544456023219571201975044310077004294890362008150773905277588743438038431963497263190601471597284953440875009118835276496305115884523658162719191721743397052293339219820454991958774832096427186968655396868838568846938902230276462082601541955255249369692532238940381260652596679841393656718987231195306584007663098608939261007589800672736703483701587959550069989482073982672878368887818872798979459465259640081119924094778536154187934386504843326827626924723794041844557939545976807679674211808486034973047123415424100437220883549274532504388532105743301076303639670772532060870618286531442258707637025792101659672622649155248066585664196038089957033143575496561219842906926456778841644730929395680716482123869508392639716508274680465521930948699808546132588577237627622065041851205480342453075552501838755841748239922254291739588473868890627433250609459273390580987424555183498759091826938739225754182459959782895161391317325604313050653216493220727775587297562565086638018702933032072454337740146550715599182098332611757999269131263835051132747670729834659483871291576916777828802230031405974005163251702020916115498344113272889729775711072925385617172004468802421687407675454853992993816595608862617665058999393672785474597349707756763073476019439053825397200266484920373786350333185827145556082521112848178962960333347807414324047391268451173748203725038332982455408932087041652778816991033891714158267002641520693624711231649670006977848905223842738280896135240334860118996302633522202598202157493941056475636750440196547582766156994708989949623330233700611780479684960682599076002508790150951077412184864324902280973791247674844463333131249320015088919675916249709542933184208640043302354268258103193566043577078292252119684316668806588802977694380162184434101010336036075956226406837115366324176620249895317054129711951735895756854175514500867643748418723184526906979346148824761104634255646909546385312035319827867632832827223155018374326339174667696632576175982161537084000002947926223971031779151223399869243936388719292165675148915997798157781354487115447567035726991942375592179662885248656791653771313653422265660523503675515060078596015988857086063380757102654836704891888134449014993493370236146022008324075987136320461549148352528497962598317462399507973062583061043046579560887170897872936228522743485585800280841760504558780696099567009586531781531134100217155531052295914716826116704706042732836825701561733022254490409574073769164098306477848876543109072311856863954672016840594957300629137470083402961551339639420365475214133859009459907006764640364571109384486882698919411776569780492896665484741896071733505891707674454055866389421022741959000216726726364511840319530540007235735572675152080060087380194129763714627815216113534337972068378170929292370336998485007566329093602464349552064861123102279500935964417023092414467395263113252753318004279906990165820110730370584838913351567692344611644905713253709208072566218098077516833759869870272626745182577587684851718021120257059007015638474036892224329155505082473025393493988855534429198736490569941675796905813193989528199009167555039121860309810396350760566515959596456743260780365552000783361145734666633146672056827647473577294893100782979055488931986832142567665531261130989269357289133199227099595876922539074690813074659659146552470172915059652363191939308631319631007554169577883496738951477833466934783360280957111555128783993821525247040984380468029450257822999428456523151754184693925256612782702168782219882465619773094610249798421488524310628055219693933975149721538276161179996374292399423789132505630657518387829344295856817917873956158462854086741257421929700934617977069880596528965774117363022451419954897531405926218801917403965219161034216185063046164423875797440906865312588623455392092223328960264894998976943377530555082936312645210800965385297173590970202404682632857491401787135007284041837301756372790589902530739423931624923747378878572682701759913044611404864499510436361275862816971876038962120134232432096461351155799751117707471327511489097470169370422322888009459676874183996411825134752004102465055699380197143170911965903131003026696507150430027361845509828306439165544661325190360340105157890592377753311168174488839512873986624351693468353598073533038002152674917330465544819747782831908465774935628287906894635980558527680495761370315580126191173786317514786417513427358264787701757296458239911383474684440482684389493840218057626876046466276401557553316560954128954514032359922052536178209526123386395048347167233792561369161712443454800393581762154273407467897847632695607987608805736239435955955045704486516935362083197697815566953034160206408578975933877549423891492860372274897260842964701836094823317168616761372929379104864770901326448887994528411209823868581713720364383140276660657918405394517396993088637330072133531938001477745568593409842732469267771720182116055451710664332918457892449321505706601229936180736907869519707291494374489864504138197564322123630860638640193441472828129354050838683217861601942139830942992450101885521039144512375937220880329085277393534774093701733555167568843702871220865473396545980364816331944603464358197603386441257548650116705977203776576783341773705438197335895147364563629073169000273360920569518166446057522705048357890142143029839240431657059720317804676702335294186945964416586954116752871706319387309429710567460126671723515268875481781287393051084633450047091367695844131281364214979237680056588180035072255343295594489471729376512416730839157897669470320459234616375622614225097878053186840505570441304222534031795067961054736785097300042438432870612039428802234688072710458957087962946351088952231781097900384577723209016721158201224565081923205169190931812575239579555015727595661935972749793002352740752175762568550682331519078168286043958003086561697761153040627668051426025295319585486192715337345595035773149930213627417906771474019899563805373975201261347707058181520877904972717609841956117458244033159727652993963378347284403197195830096063080415437208793228334179818199065739584538028946279971536778195970221495622812387494037051476835516135847868917782301815488336505813883281460427696464318078552556281787313381908144501103593830093235777407476151328209107861626733482044630692118466972302021656972926164195997491749078054557477665870537987294534815879042915714950896285470716122999397086597943323878782643386813234070920314413000339791613597568819050803707424006793860673590714095948430842186351495756587819383725892731874698611992094771822142150518967018574634543567077172002536798514883966004268080301426259244291790262094922339593923893118835870063369076172812621126005646899617458785487488513555506403266302598992908317800122863205548782963376565171781833453169959751981722633052462090514866529378546757681811045976067757041980140612065481354146762218856177563567577256997897239959833695541619105906297845775453396807621341666039059512123839818771556584117700072585989716413861808217947229880174654045620362977694798466486193846660138334614437255055056254087627626943451965692987839981853512114070435438510276607272121190303018173676838592479371659209518961898714798067416782527439607446786653414527068445118049074925845173734784051243389801319055644475167969371914697517579202598342330867458895675228412662001696105295992057611685122208183057114397766767557677973281708752699107430528877918028078757352796737965143166265038457587086609145466694523244149152777563405585956526956303729611093333330854920783735294642133939080007822521927931341777533213339414817205604137973611183671335745805668800591104005613432539701833890824768708454200796622335568033289459354501329998022712648909933258722032740095625639273652470231618367719056154749568605040737919845623076281730090779839640968758578670673379468748480308686936080360245227974698432572990350734645738292552408452850588929742720648887971602458428912749401364425782158732415033702866164001154127309412376101843375461449715712373172324837117810670489420581926884291302638778375979188360423767752722476701661327408202110201103862587175638679481814079689199032422747356929133329917189811442511202973537496924176445555198555684373354354958339857398419943182729671189063380415246653907026897866207986251624882286090831176010079537719286235773375735182935262018916186460588567048418529783327717104953933224551000964847136069415851093716124546638077961083619205957407724895590912734193565948420856241623733480622780543690813161802488941184006025407347540531535768678541768341781475697613050270775130449548083989891879789932336008389251723922475655696206033837661810573185215752442522387600479055918431802421761613291295652247945527403921631996645464569267565468413916906292209481356159019491069297832206465974002030184383507091401573075757016436550773708439558722363304916085621383243470087986834719749892543446820194385188122321614419803193450449770819029834109675436167484395509250323892270489712736908562711102255475279090556700108012657378748265916721120677830628205638665901615341123352925322714591569166303549925010678181843249479078020612059374328405832297865064935071919546975653573227723912233598163481435550024984932520844992360951289197855244372051483659122486628583941562979353174899529361103652460008273904761903742696432893157865754235774905949348220577436238941379755157669682165402721774785988410856967840169576034260846157162506132813803174561801225272098790287783675545349902319758372920451615142973809545573880238958794111094739724673454541572873392812793847854027004514327376307542791291841235097984590673332513835619524818156376711531319406385232742967442333333087384244748706074452624934324225854496071393560125353299730239116551297615336560024828168154819855865414751491792326926577791509228867430767886770891000881751050492526465182329451149257994099552484038893551108151286438929924638655972135467210339160107164782960995299980998749039216787652257246443486028816492026146618586212311403620681066153787680639051884813652747664049821139188316983971489292378488034669553338251355269153841788331144596766651673732200542086484740095777441406290219988728759428498387942017381660296336039046253433379507865855932726092430356783210412866719822412142465633426477696987855674002788571075214566917134451622133571618519816177592060252767616759621796705662917098454019909082748983304340254444931461670331655596889843912706933751074609214441625763644809409978838071132090086369414524450805459670919814993088055448841774518362619598495033106367601004328422201874460571158122594346928942698934483879039468843494502335006008542853448584964770971891038557810740077781642644302351440735070671502095396543378997892717479014897886333434952571149416119442589821738730391042313851092682605784650013171439959020330696836710598280331792916715171358353266624280938902781423776158572064097908554698239705855707382563026164388361086049678929532917023522883228584069794692986961322102713214193220299565534208902266929585238266541261245292808434505385125544340139073903337432311433110258886226844282177245035757748755732921847613813659618695746043166936225850213846155360602615011116291943767867975119768561132496438521211247216563199977735060740083657668159605590116847970371576412517219536561474355086330714298795071634552155452514463927847930023168059977259746014168769801907017577234390383292058582869882408502236804883262323476720008847305190109604930045988797703873426285419981991077180982418905381170372397727068653134608374842894100085851097985839923707316114008420498430659867119119531759019846531990558169818177370206295720357951895135159620357609109532849032034829859750421343405624743851361591471246603073316816709042446670297587929937599401723258641721882869261576777702675711335124463900362605008342655338128468554946710476763103993735139221644461714916001518343056217570293338788017594837230781571757343202393431311292231586340130986902397438637058628625604377935516368563760282122173755790379823471977505406097558206893375155291446930343582978623163318394151047011785495061459092514686908592812431991654691182779335170551179961756432406022034396957298285370829241741791405326283991411802849346556272640683496103723764868331803214066123524544360304054120704259327121509411102873009503740576256505874216946741090720865927418109427693897771964284588461519969626891897593079959757805457240538930400304127109650225580709632662330971797580101741244880808795573474896701407009920914406224973269845355473516939130121302388410641144809340931489086071680629727222299275550000442284522432655281964496313118554634738451953061673204188646767553944021421280226393371882851753811914720404852043882779685367228216362550063260113802610513971860363512458067707339639562038537866664132763658788754781894332772035618773965566682951929425973788240514274186578162951017404641335059811677895075442932977529500551236229998221853511449999105782420145292018739503993629393886660357455125463880109755425947102126740850550746203133446762214038437542528345774794308732571674485796913741128302736328923230164308045529467667203252845717613450988972714234090325712555661076451800708501796729873126068788352969629034444568459616117628372695082662200559619483613016598762713203123841697113077960041658758242507241777143504025178749948613081608507123032131632724167707796481375185753139239115152769520576160683326697529553906671071901036027196409410814026584086231019405568322240824494246914070654401195771781978450907041965197231393638713449654598121380230685738389803004397909050665827165379152392945598497081346337162747523029070549834136569796228020311488751117999681900779478833305480881767220280883866266773164516968191935825689252386643414886490882198853622257833181350356627375329261404951347760209081411636480695532022342039238590658423993662947519288583395978058200312656445697272626070502430559516475904808300665458252685775210212872590648006626174071283604564966154747100660355897117110831911383917978936152544545929172352187044836628879318035439021570745643703699313685111226130016720018755774020919803244477914593362264029826892148967011321967145453884404358332372736874885695121635606371216517452800273738157369917149368434263136118568316585432981249555595731734575034908413350687684683735685802449395317053598515084895868372944822494243688161451325564849560154307865710006675091354945061329285245319229774873726024677095284690614700908572173741964304817835721535557423498291732625497768789988754228166232933520488608237787452749597507648725046593776364081876007032071376997909942388864004033993671459332373328037197093657416461526690677569238575656181578894419428737207727941662691221515166299195702691855762063178333764076926583330602532191569485127819379794094188227054168137868826464574707967360519038725012465955200643973867439162795252028191639450889068709514953698794874778044264455755512331261034790989935141525088634404914794072688629510650461768886805069425528775435655478339772694695650882102086762185240556368406397992145865328599897361395279035836785104354757648229597080543951063127936170186566318571264773830973776503115856098716389106319245235590993187389993150301413171850041303726223620656712031363073454105308432104885835527375860674335882279845572049959781329988726837349099820807448051877342249990689459580564554715103235705276497062433822981210146855279103950550044488537344294911349238893268113944088815218187320606894318891007444802346780090363122414403083891274993862424540375572320751778565568217077392095157242882950261105710208351129779818314440322252053489864787071241822206555626626766378288892035413861107313713875607087483968613620079229633654449144712360670889240155084491154913150798754640953392477360976788112400696726962201443072029307093428155657058816072117881114051668832406101285989486165134973020161186778700934532523308990600746705371806697429933087613094188228124733675714951557817684526452523773766520338741011803809778741937541093311778824764278311743013595296263193978295779054672256176495630136356653759719899042244069993004931846741194139924288377060018689737580082720106975865755653180185995284982418294851246943331449959028096652096193348153180830189219385573385824398656849230247716765329797611455743335777688544549297595123118119391566969236468785669132941161976820223219990103879970714030527583411154917697615608687349428972838382709273981621355526777468577040761841426174845762338985922739401032581468023273153883857026539224749461952918050733500683544844608809607433273954687368780054112554828993059555050435340954606303242678926187516584577355053809569420114645728657896764514488938722690549862577395358249185317974320729001898454644585288422451991770213695825418805320305546734240827533444146788778264869314281486023643958291305456475503858768222451577109934331814811821468974700053718211381037941747076813616242563668644089424881708744411263825239019151909914653722724383280065102131051115365180616351751584394839264964434079935630255866186667847820625541952802586048935884308565451751678534039793287566619579039031555067343057658561908553053449161533449442808541858048539796553012567877388186395737016556861442967492628732416025230895826952732160527459880066234533261214793992040259342987204416284629802086715604016618064608112413611200653174497331629813037350470334880336901275731617329073242887733498176361599418465774609402063133818339729195386729622937022317282029435985356883040110902013908158221385809627378211675115482052803314801960769968936168709796651191300763675433563035721727416203717197972123507846915042087041325957764486088745808291138097870274772324923154771616653451421470868983520718741000458337157401840065002454175165012778648320240076472556583922585829934027992978050651034420244956785340373162040539182349853120025706411433378930160429369473277081543536127862338673409491944564583584005255145376919882740737438205765467650166920725624670661005930683611049531544654410350729398419249781020981135210138462595264461563032929813130107327867474563620136704522394846542072664944799009185853912592986867073002478328190464780594121153518446117493105355438208564950126781448879513753138323707353626690287130443569075572369702370889766343279080851248140137003874919275284189692458147311772472672074325558739120766295873682361687906549403042826120862636819623445985375012286610097974925960057646208655221716685142142204215505636192660594127259977678645720491763745381460593569156092272344978417335257944941944057700250682897132760057209306694798858222463676812167946294573277105002664627872900180337301031351629917864874607486936893121611503976754357753994170764822159676780118266869240383608568276470651078845547497487438669276787611643181670634552083510867707869469698105250531775396852290790341458169246873089731610744203261340171925336804391652089021535131574019060439008898338737895776114570771169081765993916183802971889444915123851880819249960554575118876248739668207021325408730214696657265316039741401559052476855060571638351906888935095075344126561526897979671286408452697488127890177747268568379835367860159455542074974995339746898513788124719736593499015354577607862063998270217989875260940496941017698656630775492020006414694606360364442083211078442721845117287273106548249810219648512219811532215193434842904257830991688345374484689847600588944722787692595171458879780261801311893909780974429136862389729120129462896476071560162294006046235228239333944029144207966439418477700020344164746687081865191013630365655294971312082368303872946045017308092163054465532329858563798048248158899375616605371321562704493492497697881140925866417012749376175706381386797600045812864241739626222756783037957296602693244940360826732948864153061224456365835103193124098713228813937832346062856588963908656016849193507583112770145533193823057511985804753311689395562052012189102680263479314770114329570917737635299618564268264019300385522107452138366565339818431174478509341770312068922220084591213875621822420361275136538442369668831311914371024554841956398216258173621939327616504528194776318287257397056879787816285625379405741000924871239949958925680656261072932259329379517695021868653423760888286403500641412203685108061424933561722266169899479419752572376402135177815344859194871134842496841864438892803841817936093940427488279256428126923396193139388673077037222327101283267227725276567693108174021791926679362403510298449988585386998138184157610248788942293160751688216092290404130960071324065771596230936698304661100109995929493535576837556666986185085145859863322740531575369735735320917173426598660310376325816665807098295584846388718920381493818607553892628600239585924998576632450635725148572893835006210360494146992482576797206859044105532700588264974138654865394740448549794628609104390730193866887467569879640937776921503083403609325178252247441027398005112733236531863469029640425758595614198478320389021938052668848626666178653678363655079381666677262064676453105022399282629517877401952427051395418317733949429032999549128132813698851384250131776864173099498529930063465833072029346416401919190126708607994308799833371358804638152706333396810601489613352869080298150517117152213411565811019097777309272910736784969141618126755759925486325873662806916648496113478408883466851571822320880999091367182368583525687679082885514812995613902917426186274378438155632820887204672782359872600317866618675867152333102778910656418298769852508040243981902394905510063523577865239053470110555792581560132724253327628157978484423842897206822388645526826308172185899542939193959031764318064829261939481324663397710843154053552997667125536591547089121234156292133524267061900591526857996122086855764392581737715710891507731075174407746551931285835095269942793334589437169098925711819596245892053433412137683392234803188227767883600435192374953195941368110296395386599601728533268332488316582155023497795927107609166150317166893875056490949163343360251549039751376467142325613821605959048680565150931630069866183387713395619972157772423002942469964641243165332450125603341929795948771793494766964506025462018484837188684588707037178806576039188464569491445106573026917893768151588631492903245648393793100073219970063099026400610483669734211094639376279294608973760724696011120042937628492305309404763328653229004844708958669322226407107836643437881818687195639391693138678479560882651082496471646935643761615422101761870538697806856677545018162332842457350726381683436265907233518118833534907131559063146853359670984706889634410759947055764303362596184341195225638355591178786839985453771216998759703951493701374252683184784137426383990321087331263054640456000801348334452264578910633108153910550377294046650359980187686932219048950209120569501533908177622417449478302224527360246972761095111595819115126106130111629184885038469414584868539634365526653830083126558085910627646927692352017591578592797162959707155695395295304867897000696154635855953243394233215745152910788314873819714966165818650947407019565608818938397627469282939992371634526813861062370021864124810622319537387823310205329075010084559867435994748091591692216657147522321292649830879797027991524171069490666102597749413274874766753719062347164175589039799943036029740462296105973175310108756126346229607137311116453050641553336440853709543318854832908673255534326766636463272055752915423489833601227836210009254901538162395099555108542320921784531605014233128747153387496153470864797513000260200742773183970681716179020373522118219397758118044687246378705359379414352246377723295127304510479463261649844685512294089149558445794817240602336628023234914922232089095506077610163599039137304477634653707796866547473935850106788662240745165313791667892508755540090851586755449167610236602937211923161153369228692010633076578587556070075437602069347005841693171992519774358922691336255466351789719836753142134439229946297001916080040437332080234766223209748103546201730649921888279498730197370037086076627432154702819977530056569675998568810898186393744396894439680170391209105884521342354129728088960305486177311157394574424820482482095049028903963362652287947697425063497613906260009616108743651078916468991788161802240873346351665148143598740398206190344990699061149416552177551212460918869135243464935762652436984486043344495685835733851380024499814625961835042815293834994632288207748480883570744627036643356374188171372666668748342501842876138508119164392267711167547213675114726755920383315462900673568344508073826667155661179479201103416662159064403720630824144692997160671070013508099552148205726955372085402733210883480286460437370609788838703621959535182036236820185586467974068627445205484583094805817796626236171389868656000710623243913581392408723871047666957274438578279511428466068541970015107816427327582074108739163319992636544147883876976110778736290961846088179869118892779331234087975400484186371331592263396210951559178517227147593484097503396182396191669620325760284172057327656865886611006191308340491132599930377815518755406520102541500872825303119028546220361414776364203961903440280526027915744651318891270203645093844718034819465439841317222301130057156728271463876856909779322433114357666565047064796740432913974328067638074403012410480254093839664210349765124435980104451827679713902349956744731840093189277245162976083399843526733274860863956862368487885237369671788128684011228058169852090253185334348981412863163996578186923530124959533528913477323569268696621875201914674538902105660072197958585706273198856859800899353180113168354542577091255922689555637203105142069729959624840215580101736353026298725069291090193497614270855123820490406784289275420786915717313062153843673093350735984726047687397117498210808663257387524152261389730482404860751303540139947245565304201114009534150336175292102008612408481649603513503282047398366774881412468707764891574238887766748926749980280829257025333254480196351611221927672003334372707136881383803762372567489278058858306215693873118759362473588864031675338309626082081909304716722617962758965557574958612142169055761115385509892022274034525248093326185704923397146271719764028327357724299277374916715843249741693448351057458373738367271344487921790584214224599951715222351134127383616567409535493298330330496946237767792746935628526913298924337438597020733930925659513356708667553491475594103221697117110497149376615465042269209462415901387192919988599734611706518676047955214656940535331366920340021600131885310838031456019873965245405960273859406032420395750962734708856564423947877596842787181827607728929634002093517770746170874864620944477152041364096298413190175522504649209661215184028989451317247979454908218465536777646248281987064201539826466792631563407035653936401870814507308362431792259407002886944550284186056343133327116328701482948206218102034845332967954149266519743935506333166883863007755673111942392268149493512250884368776458330149528077623639672210226361986914436569242065757615344588039588996682432915330937758405576124310853365079422466006673035164640528490757605940123500383948938103000791328810727559294358270726909783052696900303270060814424912826020240446555163663914288014643642589157670310371296350377103577195841995666771808762743840396489105637206903274917811525303950858721396815881854867161509294484050735670493082918587421727402296233147419828222722991260838332845094283497342629403732126067488479112163478675275973564243587400790357690086905586811534235906648858539800788650616387816280061754968366465540591871456454489499443835863579616115914869798188670703952578458506514761493634366120065572416062177669478294051571307763692874769265033397328605315994559788196404413715335074815512151962254369169880783621128463049333514476588364209842804230850856269821277504489648245752897316600352281499912233154885259893596452406533524653760106829024947198193534347393669132477144265225271183165750867397940392548022936619092283110701740746851374092724938055591812015126409216020353645506869846121878669713490168378756693831591247834141645672717263422647106228062546614928721990789381634619898558823768224789983587961883418223795828383556311424335252095541509106661724473950061300387866925974461036950046731710684511703800710143645851440022298776864919586194152908075043769233300184011093864021300762616533240129641265261523330825957519434161079801163886859496691049821943601124710424214688992121884218838683180989442234187276736414687074138388863596324970879612123379491426148840666131352923779087345350732900377562720766183825605800396807595560872288038431606886185981161252759151771379022718239549788597536646810567534780060175700827376645780506953966987650821492031760245950137856922006743547405409977185954193796048466425491693191357072764261397582079623807571047676831024887306195363955506011757443259824102588796807938738881419030862197153296835373787431128865963707610479320070891599206209239594821262620708740171624930642955427895889696462027338897170568565401941267705771792645212716201601926120046846058502640686834974603387441410802596575971891799951605357811005513156194617566416317847644120796854406549955186911533631588373687456716919399614297217140175840657212790937411027647966643787645007055441015277788484227152561207706186331841354136414868821873681458324149692190492249024949055778280417626693463449265923809181892696572464779915408238387533732498456800535991473326056096508390195876899135746825631130254057095223415658480160456462086049130363930235914955379648086692879058055507904991324092009160273573268783757297212529695769950463327481291751716656221855559370111322470734307098709266399363805792319931854142994761664253045840550863589731480517444580463745313244534647579000306365811726330512648600454321916877044885603666482419073099589954102052866465587131842441199024377633305793052286028772804201276838943259598029624733712080227608493451749237216074448410430753654764209125281030098551632241472093519173140875258544610158687075080488506945530151214451423143019444247513852301237806684549692988781253174677834856713777298785825056833532810163542190268361352014530720911158823900762042353149375468300206155492737711449518936618267349082653091296258150928134673823066200286485437112911995660777014645031379444430380484498030168856466807096730253481485388620477631447867963815020069961719474935784687618268474337493187753300627652718123121649853611149536169649930440375204006488207486748394071373718027390796849433638564675442968808966974694700656324449846932449497904022159357815013605043936711573842618204139632442398909508263633247820997881539304051810276618734924707987087269225462225203728849102160607839253583592424479002360083201898418549125255997223979218159859432391228602905163295046477143784822858666735651044656866919791648739073466112576439548993077323888976154129958235306333994013980283776510980474485027411780703249464518958949939243565448577867938286411384952271904674242188724062225383596123109287039944544145514999953245086431586102985636082960730666457090243879336077439270354093311312341776669844070894633783559329506522025981746631718339041126476664428739353883093189955258667567732575088306824026410176596374284248266465978211252167532768645630552767668060249314278762402831561854967732654242031017088391123694922298849133707087808287129888774508578880590469283939640840468360632413828364361480175882349094238475143305177570059985621909183036606559825360539669529498761973262128559916372750800949362780578177861563752199209195412629421994692839148803311437641446921952311678418552879663424741650475913309062262634414547518543270125242472002128078785841555492727449512543914119154757395220823018560423189288065491593644253450532428684910921295656763804393412681707112815254863420777066931903851229025349255783182271675018825616231687583328706863213788602887763216223458396706680453621948244221189076280092802619038747460533053214599722970821623020796380426661330147083370433107542935139687525942250920715875180355554317017743383959567746245567812737440372198321283678526327129005136266925242396383941659337548869768690012331557023099989633302889139591106888980922862352951456404147876073157554484677117484386071596727395244297129410608965341944102694589583794273039435786221894761351351768742254509894785696734635683431255420998385611731761236278874969686709086578367702696276191532394001024306750157602687817555166770815242097615712215682858943474874059291568974558119661307184643709055959512557930707554089310498418448190659858321766560919365107297281992988756731033314392478716890024220698909212693843182056712663045412814995971473632341557191777565578660955329180297330815734785200284598419232929679251871736274825789328278869290532102476934304321201852209637468277609958243671857459378452436825035997987396920232355575005329531104425209689779215294510660430945819740509941400465036368123471169129935797899819812590141018965719942380671719715449536374075939771907342964492537079871271916511851320284732139486789391402856106617170230048274746843021828366913530826763862804344714773795564361009781636334762512935903435780434051470272498583326984862310845829826402977211312371411491321005919051842277860273859646977459890027423119186501144917820562627374781621386539587999402354724862255335729923378660980240673371476776179625428919385275301373196127365057256491476883795716022414195147028093201039690893232247178923783283386340235573592048555050923176249210222061929858036753645830951259147816021519139059938885949143299676727001893575235270122588979582555624310899265291739223009371825145297614853420884217378856864408921948864527669159867607361955762792230005590881572775069142579974405509191179894326309619163298269039133459000479213767256490493908605196886213997352737295767183258185827973232279594873221313935650876208514884406211183275169771286218554569436953230337781135363550241227000248618007563587478229549582900924068842002484937234698209584208148044487667647255435715400585662115200330913035932122826643572285870436817937195845466319728435904139246656449692773717438439045756627686142959524055808187014457416108669793204809518118393496346438985289155215895944138014037721813059658548057409524558473425682121181927854131185184231452806285249910138616032477549173615931276144224891938161836463896336347250729259442843956401890071639976148416703465824007633233851189053173167767637445177482475702324594828324502883187876994404344222286812185718054585398401010476648933802136477023748997447311381745610573048559644249955318221550665553881989206867388852532080905842915844183009176281472163112103686933322754864175192124067393404151666626625925614891739811840671098393192456069566560094936216739547266776442673902758750195720276028436759427322613940798450729899727525416484665570180830128161854230201413303830924353295043335655800009913401193724692242852759509314464663303284109328452679010024863501137353002851193983112587689546455920897313985334426985175093642438308905854221293252681087684770533236757542843386295649550440246700320541801616171137208368998724085038773667314929743351699010738267578410051591376931784083224937363395229007556415246451721956006408587463242099681061138205041551956725826327206331231311222241980341693129356213787991292041259356498055975033578007249649883500946721638079915133283356940048424920165520496368059625221801589009193691131373975518076301475183148464295571958515801915132277051919849365549025125374314166211425464843684243877010590880564294610265845112818025189309767613882863298235568022769700726702331613662423687844804681717938555543395378321915667382836490938330606317598653044390895838184913838473271189984013207925508876473879531106441566356000243776235740017194288475293295108964840663187193213100280888272396565422357470382156273543220546674989410456096232797105580622179710370387250434202894166319400489193428345607763949750694026412301875587021381230355020895512971654300342155014100136718427015748420381285374477630269403394966925204731900808373151435248172111564688834198918944519523730169657602539434795774393721469000213498943903575251429877828667270695729451973524371487779386853947756372921480179867582590997677321068058467733827990539344531070389746150382418071322089932657698064024987512454099137302701836926425556223665972118422549216096257546419996924384653341582320803347141582429371039458222125552806125823428019208624318807727769433464383266898453267743574130728405524006176939903055244037488168217253351527213329222081657057628516630137211838427130192126413805994647447900746586992721963668455105056188345861975441846725721453030496883919438965414876143042104634427090815436357838526067134979716626115220358407475831536404789912745361505703276286934138066882638648681653662062296600934248548179949501814084516194852234022187734536830620631744413331809621028828356590191173943286207609767861761260301099839162166663871073856652670735352020657201054495163141589488077489343105684216543287531294415120246818505479016072253815856005669759316302156598208133090073194643144262533050218754394556206210370691211797716295979284650987621168534907628361160682996852314410541122617053975846706099943973260985775930091096940062165228411411899036782295613128175384392255294727998559243812428561130972049653618343318176102230012376510715611978359129571972452875090836532525047332101406450993030512053056579354684670445638523224127332363145101778055652612936404171744261889737256723301591642331656358210439630523068088285288493941776049369489746231256576345217992896065412553102853124148916584422081258793749341676465006501653119708664282964237733227742094440863702713330389728929966410199765689127310953725263893270998217970065636741792292733138424754007424893936375107053608491913633044275507607342322487127557757925592543420666556764149080296897037802017926962183190776147179106641078986194436161394913710339098278021724395724239526034138805427385398075023552845538277856157279788163062120270851740946300766245589395744351168420403216886946483818131908769415785942801857642411815274639269263278973911152974975354999497517448636617032782035084438639731362743658049297455527450290657914290594696417887796136469179261344325603227396854272743726323503385261754470889821197176022425412302605987984989793312742692752284026486024114129324307764950065680306030851209741024353761305358971165442343009114204564427414371683926751010356193351904114505076164793743244541614486523554661377343121555064220395975872831141080366572592983852709508704102607577436146179235382275962963562549015590670171498991780590367822302055084992995785379534264525058553336215531814007228545336520125249509643184479892717322421440356935582054224942043795315082809725620256339323760445810522292789227718665920546940959508017014447559126432166285583958294864111371716493538106572413692012336969712711562163946703148369713411538189102212236674732011018501943593219122560084693871607144000810987076502843393754529662152770703463649419844045395665919498773103847738014826420521762884935676356187364441861183884401894253184376938281782389598415252109204009460440187106248984433799763604244454662029424359698669200336525252038835003604693174942353016844591734236449987331265501961037552172757104926242235433754366314048823903041406345589375172574157200485333393323991299461485404111956428261963917935839165096001014593349811153196661772117562987926260897669506417949596443697152306397681610124437766493762990836905465769175490006032424463044714463090620556891030554003971695829421783816826228897351728476677920622345310938580193189947094283385555209709009749291181132178901956919531061966979287488745496333325228400612719103067540770738117036309516895696248822629519390340103184424694810011295437937262228563313871893668596557631500244295838492889374566539231615660853212718415958038967199313857224078015000542820515241543428766045719413785430264994122995823696419094888501570797460000246391322229070487573435539469622656629658814824736930324016820363053459738341841526547385951208125693343812281436640909315489596294203497099608284897164258050369060507194441083897168601390073790014509020242580279874295766601099067269800056111278977418492883695892260331263167945753912338274449655189396668291900637624393353417911829301767335308207774727997154500846666499051887368762381055623645035099341403140948382114161190467174083781379155514317175892855654332741975771087942368925771290430565774879605739570798596249277345619969598379662926497014798362437094535898569024955930492946102281406758491493616059070924100842515732479467195633277562099036754446789661321025461065222869303658133002038579205846553078591308563956025312530353154308864890440592305256428442589886361235376977098761950601808281907019394339524600616745686059607018415830102802592075843545776877775733784916622194629415643346099912336955754207838002671238918660156622126012332907709641260895743049024516864927420481391721019151156694939669409760810547146760141925378521699008900760114746509001841043730988231730082481745009624481538230356432292588993382171272355242404655662064629906176179960762456734199697439820293094927233965738222613324356278349455564935283522933465282444620310352803743579355282453192868768419049419625085007009622771318279746963216660073342416547051711478681804431352816941421940210243028629073495418630285726609943373185271070824472798296255604413991048778421146749395992601125695723970878063669618394376665037390308747649389539495391002490160286111449216360577297140443222146963889633331864740830040912709405861201947078400131977969142586341226514050228427909330773423726642300764604571474534314163106968381860482916805000351248320414596483413100377879606021353905560620879937962979803815059963595287142102824235353566220745013702273851420425866924846894358780830877591001478362770477868203151545554360056080255860886163675981877409160792134663158990468051859125623525246501309620689341927719842484108545328660934485242335846296060611591434589604184846292615269752294820624836200300854397107050127766610165261721152435124645261757820572078062863405861394972066524495658462843574529133760799684893823603047704626085399213867661130256842503120932619945835719763028738377662386827198527627107864739982218690294534213674879331606847393927453299067427386771643583435908818636793877586083280075884245801754424581785877804779797246719997186929456394771994773717985685127878649537345866899368384280702985545673676367503018130199070684601573220963414680795970886281467478380563885010256274675976582077768944562405066066275709514608741188124117280865306255750052526193546242836302635385574450486870178314092099573076553044302914727968877678475077024877547811539146023561852812008957955092899923354870400346943183179687831696856092215395416752126033466413343330002513965654124436385648503343427276517741295080543125607886510370444596182037572383061450882320815421103372094653256963949974885933941828112270129562625718045767782278839818433572011329704207010497853124968052279160724097991299516878787163370385606657436843421698520891180615458099681439622999451205537332651546894670031855582948147910934530290505542551817961996492389746342348292906259416107840056680445592340149627506430060598940646407833100584492356885202206317983638502437958471760810470369238785300388862212247878733194554636849535492425959745451070224311668369823656409488489575013987364559159420491423695117962355141972748030268396561665540045942654584641512317302972770454438807096095062301711751373210195977603404936343958257136571989116636206276713262751475885361603472127554505673780806253888279281886384850977603081423056316609451380750129650718762677015721826280418173160829250959417821925202799354129781251952021920624519518796605191098392734047456008956777978347086163583154502740089219224355531304502712824092637936324622091532385533176934869502156861655827699646690691752807961223242614975416209726227071019945870631478049211945665400669892370277223593036049711709697713127185644269857221610304904649535558602769216315036760132573493896968764204468643779510616163225084357701680759755935386621124400458580757204652990958628035760690954178468011363963666020222681642750563498760324331184320816134562161694854772390857510226108870396302735333827755828708785340125156962210883952902621068955350103222090706505205460560496995496040707506594237900018312384750626856052941274813162855220207922294097572912473635866346915046181758657983654256520711355858265827491216362518536593834381142726617656152936450144595475666854325786064466446609061938345705946376695771198858591228242693238232847078914525617777999685609127288210409520652246414515124823215770722332723137283442313131413167881535512995059416829468317244732598411434339570502197667866579237488199425308123497787810653499785569373075301073045056669365712568259227683634240865460546035009902598398771595795472319046302654601076197620020512467898115647932539931806427151541642739909593000972329868791052017969187284228626372803125379222213328708005960779559934258888098231518240013266375993265868769635677271913734824106932672580869385973906702191915317736904618558939435573284605552655036502301175149991433141736511390394219586336179549139793562771700130494122702879114615610483253228873707664947791431701008858436840473260313360325394949685633277901489400519913083495393078866923196685872341884049632467964469654366258684893884134917488400007808196613011161857969041497725686049902225690971987865139822869564808073405565716542815801069906013117388644314385548109235938431997972681505544823985465701926893553903793998154287770900125782853049103050371528683228425843276612984009065358014326375690805110592309205817058469983586841890417042196925470608368219204648413905605966545810246246397690960766006837203719972531759148865479677393486735096134918386208644691784845070105712319623735758631063937396625315305757326006272512879102118569848970872159550167868979472736833347413233818814869719514169108733388671763491224854452334228671669352526617544885834939442538848325749470081911663882525306591881765463160426988575467753055993267996735173650668154221978183587141177550437764354412651564014747613347282315678586136514191339930600066089102536779372379438873527515935718567142602133904274091210558826377919530426105374013299788895135262948425413352143398382832108440392584654526879227313440617615803282931369810074193107125796148591601447554204891226724375374717017733507426841883272519489107458018157868760300561336273256772631736829977805165074478131512491608506559010938243286570466207618952037054232833988827621596168286210711295435269684199456387028012546920125109776262282667517170892858016106404593592858963499963389349785585703548229315738351845498902595272459709380296049909313302837404168614482435506926681539140855262529569369809793941916224225509276917904516706491741719221197575881725674507031124692792490299431042264435790547161496912251808100347361123265102639229479282460678924718371261227813140737754110789623537643665528719049216797353138246840123666943481190217785607105253734712762438959994205046527609376199216378447682748814612847422968911541565692230658644316693370620747872163049026015817741904117709719967365388258890864539562185737494965445828280650230400033538084834030684280129865774980394663319035569903436926444307591908380513514110120190257396170673173493943561395783867575284775136405488009577115010579111961017165844454969602907355208472358376922193524029719881910534862690679564634971562686178223936860946435211816440798369741955052672707916123083068308102660202484206623956299263370004856793382553202120594084860244515185664477213941619876795330231491606749711617848914236709915275776587978823001683484510003344203021996535840237929124249036824152363180102406557697983306688705503102541620459173066798904642225399621185928308947661260120946791581347802042735013960273646774547471643922117875620404367813720129545980020899836232461159822828671391277553378050577528528388033224707523231400699233887807761985996758270737041045306064186645880448563532244588476450875886825654935286876889983588474318982199220537753972578835451801890876340658144798992555441559432023481242403068635594145684041187194250652892753335754037657308927226995580977308782011259542836397025585010869498989205287658830244569544353785144618551620812961778845245978917563284104112334490370739101960735554645884413822837797059975497593629213290206243916870792767734977116879573307620890033201418569381717086081024629090408253283094603375157708386170773090099341057499895826351634231840237484713432113105185475745430131341130371627115059447691603736853530421685236579926619264453377877565742881765414286041019969705396087020295863255260642023678788247387433551191605540101636580461835971845651735915164852659215445914592440197694551158618775285616847815453035078852469065846592542628094795369038340007319943120826752435517568575626195214824104664691771556855383527502110871055235781649935959786704873854865696027328166883297731358991669784587923544138183408986823072599323339119575019758295374264946819179358201907668543617425057370675133377259162683000314371151235939683600871235667970726063311628123475715375018087033544462125413208828756088110176734006265771992272206296025005437736647421207613575057842943242495790551188198336439392000749586153496248064581487692808253461473427946598986734830061511740410636762096376055267155703942693130880723402722934422496124047582932181350426445473645446157644239264098220582189152111734384257440425119550908597369665691452062551864013357241440081045014607107052969202838287566864882336494050451509491042632983414932916147136528906641325173893175703489784933303233893942782228052446556210999320673269577660729562585191823012752817448606616445304787210907859316059830373221320846354903737528155359233249684558375824325912109930564039868995428705234073813623911954307780393992761892920611352998836258945591364307155144230803929025738026849066386278584897615892774831826287656477955644503024394554211794255218326725677185809784619777185677765663326344755104197647233054529242649949130050149557958324864243158771329720233963798603474510975325094981840640136046242432806238462682355114038529922917412598640181714970322468646056391692215227981570653604799926564733360165165467512201071187381804529825181369397403700075928775174350821239598587925444755338719571346806665590057553327379979901964182205005952931729973560917786615281248766699830313953407291647641638665716551554179511826048246117855729268066466339981069985073455826015243296044395275863032300893011030941395012500290322726505735450896155258776110099280196681082077188438828434531537495937344011429380789576909864206118241212176108644898355097444851204447659390626046985968805204477259306893285504695045001964003370759732460503521473791070274745891547803405688872625843720134070189287133203413349640382733946410623538816013117843248566875111998205099051249840645725247338101487985476538560022114533886726724296923858364090541903727437135427398577772898655181618855888688378728537144999363451536892841267043327684211882072737811690072085688026684187945000118893173119840534687086503589582771576401487454035870585498094648596911989875919746195115664745598394956817332254560423296070026585064869061619599065148600631925397001391840154448104938434169297696130319814496683142409538472903552267210180345053015677811939440420486272326552305567713136052087135487559034545132675909329596904815454580728787137170490343404660467032911622390929075190171496291118137351355095919107786043150293164921268447843209549500319368566412605219887670480217902920447093971084259626045269788489468911321227763909862487314823681940983730778906846833736932369325891357118950614338077267821237914744135982973575311523542051112004164146851915033105579661529708352604957851518356270623136294768201894935385437807167928987202712111571165646315915193036315471053110217282736863563061831474405120405868167483102226478179440065330423536658138362436509845557613848594790827497661605540823529856717163421739913126265016146837792397678692652559945747149188798144704524429960807129801289574432998577031367236826938117252378337724606731519244076584228438532222973965312685622365209322413557776937943727364643028552296982161233725573058411373705759690436781165244388631932291061406624733339265322396123220646966202265223369368782064744972309107641489333048163252648591418892047656926000891995999493526268838418477912949400374314323844742756796673377954035289858051883036761558438645482238530964824598698553238482397055105638740866696783747760698312528997970907396371376940536968995418408066122443159198018453111643471007894308491321928219250329105831390469705725718266767707860159511214519453570881728909909153145435286407059769226499924877166873340960248576444181900704407295456117302504333237671993054985203171601803288924080023825953660484884766745470247487504878481158280878327565280819999805726413087687076529691986638420836741016238985481373648145008037180394429857095786742538834113184268522088829971380421831901564960775356356743448802574425847877291967614086222597200394294467929096562776692725250413567165915751766097856135324835474475381329697810774730119279888092015269228341084581124009940454048109289862833241258870949966283384380380940972957675197610617403738838441348049287450214252713902874695203782857809120160840823309336137366450270994180496258337580608948183050337426133312549515280831665897673828128510199416688722270489868975098552232893433198907143517736783742335212593638200673662370004785877943726952046112953526647801814027858644318077842531482571483383601881540846747211932078093944681502694073350031465906609452969259787488899100212705200144047882931414217983350552766380255449725734656671159631118787356063727939623691862841144150849210475396198025261488407351471615006087595789405775531253562612363800656860480893412254100849722946529491446110271400283462738602144613169499398600470757714788175562876715937072923296846198048251041998714336777673584253310111541299178927708633199982634647058152633182200733834075529689339288974564496347860137051856999119423244874755773107855805501514334596915987817531384642517107242340532890041134851476219811401982341365908337528738843534663133178781842626773680793185413981677534269522473996634625718787677542462294405516112074166863843866482226069092233119456646452364612582230031413097898620919967124947242413504552828900450006525962914951571586195970883455662698943039807771774576646121201309629920157550544563019041817757095739048218439988727759980408194585037076563870296977327217676242154689380277154816271937835237924508063379397521175374443755408232093939732821399845403387645382314948183808499158073637707100833294449414634199849493763329750689441057333602123893302351790629147946463691646726534790338190540429513217320372254192970750190781437064691265887962018720583463764338697758437107810526620609241138510717693819211172055458841263221691351933579451137091119208682138087949512896757434025465197062790454581780789453693622896243279033145397813186945931416015069119815399813024301713394135846091446024883826863021549776238320178887016074173437324067697243762050974930584700893146874098272845450972549539928700036693854371425582713000534081587554038890682030621783799469011820447777305736331918087028676411708752121905738716133265826362897040911571333026651421086143213886580999035284572826508710336567104273293133652755427962066915144094036721018227864808633168368193041969469908025510246008575110584005608828824859759707206998203340307890934027477242563636508695700690933674821196165400208640839698533090204642395657478081631803181246169118064981570713245144923796308405423082425537668803237151865321581042466511392201295892228975948054895629264516975952288844129586262377862425106165541506825800435258328597756081647760677462190079900566132508250466770405029487436737969829032234518724285951758496543691385635252459341985628489520347783947098575007793787615547294862667601776555849978181482305323542781362755186102463756658274509705093898680136762273326040859205899177952249196911253434805221572075976720304244676293114728451795913743995883949210035067316585946522016366731979058308887367308204520498134083547608721077966125838818518100902025686545194584211253043228895206066373083331079078517625333204430544595321689612352004242159486455709836442162900951514693998871423044021827807575841147741730817043023489429405216093578230499549396163243153545778587419658646927337802849744497554121465800380016045128392333752352668317467451148031751772801587225211605175073762948386748862686283075559976387462528375438927306763044213710924563890089978868719429544932563638016431739440026190029876453319181286688745775749639984054863669803855857437254344471610911972618847622897007353566515266825735269313334226399886225706528948607365673615243741146659143896908162627426796655351023183035222755033357283491609455589112100803244454870200135449854007113696469590522500692043639262595265902431553350679016602951704398997887368662836667348005926131332955765184918659419124575218829925110255422475083525684517501374777277946143671713520380917864446972242588379010456103967584581244654473585510227680461254684758094631526294420058253485433164754061391906179242702226183956645315371785603122363778477131041661208179623322224486909235779124744075130848841765241717712927520381148679047495502094748378513117522636000293490604598236284056971630513566309261863210765040586422404767135169129436931282322943492811503049949196940647240648909032819214885227542587159078934736581569141371751578613221769889750391856475965171461473019716658648297732361760067652853574823395345734088974167244245883545417948337067319353207717585262913240888514404184927938075352333797699732079452896388420096290121843214243616347139726050765441310931358993567542079607143437796363091116005713764112442450410212998310197959313118022798422488891766439538109233242620611103101259412203751078704038245304401942034134798705485789891572385544677062238574446274659374355021768612634441871090969148920708593627920134857472768555208893529991912945557194912334179854376122677994393812686158586129177579020286471567083228386642318760209914249241676802174427744275725910134602739624322374496015986207138755534254517898248992536449453513613954705204003452821324753427168407829551189718130366842624269690855411079841013869131753590431914950981508848038700100459949782781698872249988633944326141912748914859833502919933206056213074399470145441899797949934880396293581504825097461797707582773993667583798784496476107523004387959599365808562637122168108378934703900146422028648913977532944321368635124464511463210133368172811316873216287997095018412459979637022679010550181954915416823187492308130984429877976921257424839749698314478323639999028515242818519807411053442643442431111958526844948177712608148199248766334616941313636118768589206397786894472226186049460322744721538677342528004158577465274070406322895681310739994592042935761402440212189383974880006708977108675467702754187144431882539889682273325780817430451044036931735928996872697929842854484681642910407856013114543745496450140933020778632941183433278255334722107728584410526944211997426148288122221414199745724675753630735802007197384942141231007208820444384792968868226318692001280709806612366076174739238829708695978114859832542133172594040782997722882351986265626475385993671304828842245734469489852809033722339152861432958679719970181226714893574840715848063859420005462209646021525755691160064477254349654733785731819973029859563179860761732324524565043376114418528432091824913056003185826967251706780954158520219803114021647917102679559991236003753824298605912484161388625222801010917704872475083054717302588723148335057198612048384939485377587754903094041142933868984927060197774085763809838500201407303020084858504341240343630486042553741234229427709793383000490618244649771027469440147054815787253886605449786581460275439513203406759642313908932235657620382312184197786573089654240854734287749218009058314360272466945885260239584377961569405031636251535875952051130753120374688152946770142741181725990264834989983173076697068712737616815547958034072711800981591561604242372546506141902317380620250045569166690376989905005695682723702765179861113448944591380854902964309245772869445722473026533022900446984297440887963445726870056262374982816163948205351143385121569461292652900929670017352422383279267014254027455683703896740072762843530636384358259185719057333222727205373467038188163242357788811577666085702981993530495617918473282479299521427329687538745529322168181998783587657012395430966008809748364083181175595415173223426298391639463642737201320232534811197203806401575845230519584639848090598787654426000055034988405564390965363539926365844202921761058176336148996313967402392926750751769780837903024043238874320358124724646424855235073548442196419633191952994630223734028657549921397492558765612662351557763347993472857415699171437147370008211173199841082923348236906712892455838833426769946559219228586383221576545470698769742802098498155451080309093165642375039779632958503808252837666767329075752833681354384305736519999961486597020481507257773614382197956737125825818470420789636001172915745984509834963755534981575077375218389165181381064939741882062255953002424577974244089056839366162097528515371002141359967659492306396212480282135328009101050646674152203919077626402819665523473040286014438323901869189374555158534843203146025872126184824074316447846597448848077434827300511858915508107490132672241705610546198574533013546446056346310823374874618868716496962107912367760496328931059137639967873833838235376065810185757338237382208203984350203321969613968520925086422861077750352640018288043518456589792356965809202516321189217673901062267312622850031845524679063276434884629767623302927931090405868138846866403317706587057901003026520752038666512627870863957935085475887612309511977199008393894736760601059730802796556716997252968259387586491470903922876665554839350646696362677413643112467415924032279735049078972734869050793793184841097751619560802996413802854711637430303467980529370595783230309183301487739520207413880025459991499733693628449898466528121948110308012660417045248954756773766756301271833844117554235988172542124270041220670442004281746973013615309125673958665338555285473714822984116102075131703744501106579385360964478539916831033656094920538762756867299509075626422690202849010830103007104711916512973420710898634309474489332884230156751526089271426262347718860801951225984071491278401119421699159512539117354842442403337706062738891087535131536367372650267145861361040476280500491875292586794769220958632855017452141821063463660083384437563376831088760630365595686334448075988789781774608650684464157660438243745988347781616086931413137978652705597781566375259180177437151836649149932253966585375495602268311438246210619988842614219336532347262581224059899844364963809890859245480740318354013252616310195168588808602581017967748175115671589644231524699437215817443310724370863548828939643949598404209561789844667669383780893498170750507388027388171624741555695828333873828899855148168258703568771830818139394909109586530298851058303290073368429300243442277197110050262185784920052101749988855076132458875583490458281111315133149329269019549399283084007881915161158335691367182507229672649745076522661608646106140741220673626732732923660627914015392114681924942618327178920738864055878124258153953884063433286719758955951376225987783904804533566406133457713228175955324843545288768086901155064941071646894726060157265357810106754156260117408937320698446619112269949341673081551584817803707182535460372677782867135801030352834068907384682878063814852608323072608427549992865002981584335583795750299165180250729683361446787972851957224892887334421125234682348561909556032173346937669499627396653454427812247734546104516520290230038739141576492245382548319946596835317424559710667664564096824243145092312612261288913483524894111247839328917512445360234774829633579312246873170794873124175317653599412634201522567839845225227083914074783576342906675051533626430763355218586833221982444168743986696492011243607915667704931768111519758006234288124690703222970156075658843101521621377406063420276160159215919919649706975975968508237194961978001430585244735152796222586898236738552378856645506966768883710355472074093018336534315443122128034329409670888051780252353978034054942790875702509917434080620414677932917589873825898915577089542185994403388539796939184207531175196862615568334764460598254735388715649236646185255269793912232233845936004788736360825958334769019865685790018666755987583773681220394755678295866030122011868276484443885465601174186110681317181394857358921476690897417898000163284997747680866640695296437889868179932110538376444547422787396421841314551198907382499362535811230477323828721951864557226443049449234379165380410320134681000918444646565143658305067775637873971083673450072379113610104201788613866322340763545869156792599473878369891919041288149249414985656526862627930671192523554947845513418021962920759858826985464404152536830638354651340098726979253207306718080251290893526245310299808810701711695758560499610095192925464818563018112168830951248113840371865412317027513775926377627266220093995465098398141702003618851644715201921960855552136414833433470022724183295435797617455566994074817765577255933734437120657774561069815639799768115934303683503150108783749831361029011335578053253739768118706831945908456713241396884754241336079628989634401525385703356576527235652912299327698777512412990409983598753048283763250488563707008910802861842855085621005397280050768487857681338585199057708719457044785460411017191575605315118740849702030395408890280014648802141777190355687195232805389344754189988352358036907406360078756688863514894868068778542597551833368365484430372614227249576627486832767290717523350620656303988720212048530805665814139909715554134310429907225558759830888943331935335707911305263382542420045538524908701927807626607733115805595735137758899928124197357772611309729916258446830801264394728290349298672510436226191812407653383585577942605685526702545366071104044051206609503045553498854671143753411141245621642972726961781832979507528336043584951190197950189946258448891455147841731555203120079258785908438092781818109504913570773698791953853673470672503942921119087240152909943299092076555506266570523558399956907716306301764088045619682568825593313000730804407324912681718779249984880811223641871331360141119794875290625316996034588093162501060551782687729264771603632243891440945486068865524529780020200103057012306051633088868377385011681618124397002262738633639959008846694601836767222846726784668872998483484525218825861664943262111205342331440036929651074614324009461405132358934811814844095726974198021042515977605703118711629985597456979319572424497841727172198794925454963043830078674531035634026792073644340037044606226776952203110251185480910803351827381229244108639722158905164883109371663303479555736174002089242829470381954816639403063376012836392394397504939952604360062100613362968985310452346870633368292943782156640420095719515078539320102081138744391255286499639917140927810125311469025720838766588527993943230400387879320933469549060571163839030440024802603749179517767354185996128382833298303092535251686678270740118877742856050092182924852518291997300977226619085652008536176330070920699874780357403788042733488218183804940595214446772695612276566820958974689513066897059613035516492630021568675457982196316297859983731588627997882781553639557510892475862602988847560762389198848363039114750161011025695025703611612652910012724038914364476809306472894641067987197550468530232720773113832483439968510835100267382998901364105178555924531362955311239343143868781641033023312841707515970484882532763950567447935750317492111409864608875066682712771096922610430095476971540983828252839598033696029644180527477651128626707176531194021023925798276170741344628498103394276068883722144367208375397093685502917911701987657323285295291344222541880676076086577829547678797532591496339290347716427775313538308350875897068341477188215082967590243411238447729594717307404414662397526424480199987576589604571615604026297435064024811095536574699173141851931174057379305208127384358902570287588242858355356015433401992322947236831826273298969256568925109321862760765255482950218580941170025838327329116600565819908392321774864462626276264588327605419307463425773741316840755654345341796173809409867357920071836262003637447530669160354111936889690946900552625996992821001110337757341685906481218686572581714394285536546987517458056556025293484520838426886175942572410834213271129740565460910862179589577712968847402032224504856546782636529407693303198448669496537217596284796798478315498733068402400342001550265027811033731773592769594141771579768824684598032773958791188997377729408627491001045298022725447095710584552551297315289080230845519593090851270086319483218721799927452237241577839133705383207553406983950613258882566196570063834022990171675319108701941200274351862178838401681813397998834037463426310832227623564645868360187490290273611809836668502894662756165224812489572104218657860071432378448158303911812325981461287502906294739062064194646788750337913074410587566575393875390216254793543421694785257237140237287479701166587380076916044615697805708968538142026739011425071384984108981954066364676352595440420275759144706780747997197482521836605817246121305899869624434478934654238738519865621913721048360700577981867809966932609852998507379757560627489753170674545783635036510136564728340561609870894205228807004643175106336214555225902005450064304710903723526227470799870430182826117150000988884213433642651525240957364682280815801436999082638899207944454941312345494288167702423805010366986502568915636548295628815716046191911940570929236509255730646885873565823066592225025008619993135180907371016386533384374899687104485008021795911792797779547218059127929049453379278597905330979123056326069476284382595042000940011656119098219775378162064871006737281155091433913069472179212699803880005981679771567823093751134144024465038133233470659116140591879555469641781037986318123407509070269557393402221607280246012916738395284096097699982872296376025916648897532675348375008554415773878901192175873308287243560799227250409380230252454753087751857333265922501027078115848334320172238521267533068725247680088284599682065494538916153472687433417945365959651227851163422148667905751557880279685599362470199182184458951338760053743746472293648826871743057241537251436992658769573243494853382199080823428987145823510989566477320157269959021884126920483552834776149397418798842748527421867680730192623316371318029075830961462156611369574896723516001550679709579088095478265346806242717978164115908780036342267923351400287057608261338746011996470242670872216565087178003760605777977458505740205661910593102616740014983980889553542061858414970229526327922933476145679785061124078687306402927741100191121013756402164920818264032345824474514705055840992732906952152138437501400188153885312799571824173078744711710454080428913383259492123899145538962836828792881423583759004771973143114234022336139096465900215067477051184800216472743534884892653429549589910405247283730619764036448507331533945857656098798833054754547676268277299917437526250338894139632618170065614780137232857224897862124319452374789193056043415628713637045841712158936421325322011884042494305136271141898681431614580829699231548750327752448507101527457196558302124723972260178680052518332486416377116160244564925844153513347288868183525618989650810526833989040237120461302792576041535699066927009261424464171685620217889687866883921725238489514193679895992534592891658834022343497541673391300105205267072778125707447300730382442280522827739038735777277869575578384967161855034650083640675182628301278352503016923027450864776725261186267572560294746253630168396336556194370774069142690849975735169543392062328318999700639951866083688503824845052593060290895498368170620080060197759761368646306146118078846098559525805330538984125749646043655067464822052639001887421019134442616859723368476930224409670767642982291212315807041367899534420898896258949381240424657126377272648024538900203468614607732554214105938027598485921918186432401001588006168193551134734737035277886878814454815044826094339196779287640435640223521756083247564997665086299670997370942433236035942504860366936494843228244114974124847314625626111534850590945530865794479574923718982381438978865827768593733371020493538946406418068737951881557330977721233594886663351266314509592067598412750448608988063401336657112092599563209438099194317732738429309546583211673650073208312618991310853627352838188593033607918392651694934103286527562239581692869608545223372307216924476135643616585361905253481687873957888571903542493968795897237654596495862808334557053832130634135663376655264321873669068958099830720289606715733721347321517611158888550868667265017514076087581185612455302436567243459042262852715991998077824018096839585055562144776820835150952465858376802957718324735890973450476086994058556964669155414512891861721486023116760440300315972785130313815092041351851754204687683029931795919060070544086661311435748715196203410915291303195364238468581030704146130527612110050198292067582216565020470402449283334248082335342671846964656706693805659719360517465754116463559208293550838047977391231901505369185713349282994594690279846165771310804002168377475802136981398823630638792733011814612152829318076064326392102467113275122613211939743933072850515870151218760827488236029146293351045600917632821060166105476121867469911444399357679985722005970601989941368530993354225679021677101147035135291095895334402819495413856023294749990290156301391075208409481726484831555641911152221967172876167873487864836895521969636206805175915537433268332741606934704180934028255723364277197778083619294675128987978785339357290998345225421275026993035736713820072552154263063617231961713971743220416041100299283364240439065733569659778100788956586770066608757101279130494628935731446741781025961479609163714231319525674828662933174806586806913371191289194088977505298477949721037909730070164870817117579792110394335390972554133790581050849134368745195407451895208336083225295505567245314599676728283584953484236007454813456483665945149264303114481325713073576809672721505032517636445507591240304660933825393236886414924643352876956890685312798515230943385068801755671869256223311862604030780776727598001618302417463731907478044459188959589757380262552158780526716149091517444926713749805620560373448745206179099112373840747466017969417925345552618683640362775486337005780276992471052315338447296087467343881466496974854841281120353182596629542625808724465139982072786893212194284752922452150797017717856551972463233119591133672592635829914011556138468842575113719273720832700490801766484484733494379213714358161882280097433181002320582206749133310375333660366595791215794997583393592024880895847973480154343137397254138128365790781929237527230114236956131000668387530172589129034825927523309087877286555858708773957605212225291318048083810033244258917045337812321098593063332433791782603495553991652768819454945208193490918204710654439980235879136800205413837716053924540257599242521093559876479631624307182792521425186766113187369930382980163918173502888407597535712891852032009076837697719137061261216891397533545021130124156433532165669961878999875392093062401199405300205714317966722715378044733892489164614122935199609096230439687601427391277322607786400898657181912144930727015977130246599647176310158182132417314410562845058687313094819194695789866473026821683897094375405472846555606783568040171771892898266289363600320209915832041992411580133344632339411702375524184741853478850533243466444288688303404263515138232050503825779476390580056008176713436932082717131433251514164819173937805827282767432782770115281084960545375290267181754306673363401192205313315625662416784958793256705764152920221002743059794043041589269977556381162374957970817773330643284406818104615411899681167464665526624617703169589709286477374765884507396966317004306848466958524993398500391044322013573652962607390145090603834573432241635540048639758099669435280562357815736663762610948883874429498221617674058723607913660622864253997633974568593643091036827745797145777987416916344587374150620566141624914176834651196933733612711694249853310986051594795047944699512226532056991575853855642335088807153208642344328394966087604828878560542178576768968121549968701771853820995930701309988472428201206359387346511990511882870918789776779898743145538249894084871714788759133213536024122561193126357627057288318163463559583379907448400515908415016508459504254641574159855769038380380618914373872781050921711485908441672595789365534709374038020254351332243158610605238498851428498136877415934550409146833801374393002790845617631580303601434500298660563612366606423843568946883221151919696561703113144491378842982455601618732447338748271572511990009696635582988870464192703679861406415888876398690953335519142752200810679524019032356822925768071440215241416063718057845829845419240593352705290949220661635763101410272812561210233242049036618810043947342872261371177519194734942212991496474409781701660335301169655110307527369771287278166179294890427055771848851953402714365742287194037326369551927604297030059857939817843856269225056892935500665522605132209382343066667157568426650720564016757446733901800731613886937161222897941073321885011132340060151559903304017729167404378222004210414650553263467197505813595321234888265495289582133086399809996374354044209244649040896822545380927700757656755003014670887357575872855459873043093600505128989771814145554440189701836408218105105548649255304754783644822796753588680652451538130904150273938150622655323339678038616518476076035766414936847998508727088954348710861311361653612589150142220448597608499883554470684321408408427474711783978846260651395351463450374155639871056947677291609998502740808493286582233275727939873256484990450702706226958595568537111401739941864437426766712705343717032120893145968471294824323198612483252978281663462625175769136408288594549188984030753151801105885000879377128747236924429463234478356817428285600119605778877445167058477363445417281432299752611382133578077830937523724050413854115841433085219722493384717567582611029345304510667384628916679209793395941114692492208911997856174644022489845891326935246998200831680205001879734659006374317618159888559824586343096351586820850096830477725002483389944772997062604521256797508558973806341770564114462916764150716011955241086563711065171123091996361646079833939730186501938432544730448804171340588217447912510082383784183599160626781960952279543756234858728012649693732666269059690524001693000695360921167862300756447539039602231118349647364999149402224653782719819653975453405749359502344441918006684863810703222146844663052156411786945482133532180629709396309303080095323582545330680518683785881215988688403557758852621228582940348946874643730863382287389594512932945209696678571079016223060165800680010417747132291432347031343527783029108007235659177555425925750470447280764196889444657319461432473795442795059957347464456682086225003922694181153549051049641755844172787344389923351202284393343545687897688986881147222553742833107932223723089536149184091978531146421538682078244914194689997847983095368597893495446292450901193596529955275180452779695309419834833549142876345256165462729220002318002971338576919276234946016904255378055226247119044398965938070503868521800601201246380933902861477867580063358905021190219810668095288182052211755443375578949481937633477315738483881366699784808995174888824369397585582747697870936090466120264474148022378992771098365587775975943762773597369572726473022209318202152927766380660631091015383377433940739640417235565279322154509676225208965284169024042095651091494636568629723871594286336428990980451023959045147173403428692652375802467916752817554922255122993932782370455861102269204472027234533410075732011685946479651184549971282979990564678151556482986985193758373336814236619069874485086270889808009088182427951088946906551192335524754590172604936338560688112104090085469181274612737381190083862671575004524738372074486271676072357058909596808262747509985499578134199852835605026742623921685697202027376867317668008861631187279602207763474681606443685742764739547044587700000604813907968872298482636022849624246306987190728120259455664307526821354327271501303936438819307258519548959292559005629124351856207174937946710101795579684143944547594507527566347022759151407647375367239730335341455076024721262404720906304673048770554236962377311996984287747523222127561988340317999716147443504551708522362973195744154507206481340093290128424324840502631177640867584013815299593050785277793850272836778730358536543487519774422754296099417193294519936803536145814665263548006085659324154302664842598280539347979883462896886907146618403411750746017623563117643976522038151958620694675275150462221875298238058679907534473843067201759874362985079319981498542071205906030051498358210150434611435826976320361838927761947206258023481567724269708804839256000831556405454613984983602867522304725622347543667444148187063015411598359282289300970484428795431754347093498507461079901215066924218793724027733389878135453774697421161376564440635824087483417077920086341019395144135500502970335890474911860325701934385376954198607355231884399899938058822411247847039898616894701184063651783615925945064628741731864442867964857106008728403410830788824932825429674037578135084185559810490318374312627898109002631313731773278856289032782859937857121916250182541202148307788347627709724597817729585694172560852818013320649199352403941441194254823878347518814579678839244104720327896134707770871144244982626535627013493830391445326386291417996032373880815620267248592593518110085261974897629718339306764307132375352120013104726237097224252570110639147508844378444678102829059990436750285722281452777968461593846912065847568773394779059741904522425323620662373955024833304425003158537925806083016826285905754379628623633896046375442306351860326329582824458112937204951006566571111152732903291928019688289788825439120786565433769166699733236469741491638673269708808045934182268943730539658787581987035823277661495941715432667193955898241400951856962560124665351748986479912442691775662020643047333479737902658824043920702148435671881557166351524384058295967619139295354930642659452609794523096311690669420527324505390448934156141128513001482564367284968988715604643588477192203282044702010813928451146332862903474358766002982876189481987109250572054993388099221546470042701063308326218657802699241703634672880956890088356689188735054934433967391989774787185739827078557761028577168470935261474184979557488852666546464392506896711434709511532843423136897694677301190863515402990167966296333894512384683744042884107071675184800821964474874463218325081106015083261302085504275964130073019755515514329910985030458960889000085602986113249934856860820525906783027187509296948599733415214111339832158208636576812672995158985433778001814509494561609006862717915090084062102325993044821903506730084782529934067650354080076273698882115678671543131470405419336936360657708587488888501252334123688872168690704150959113998678016122073947414985266446586166837613229628942356133761430820447274443989883582880043988219321048640001111463329014474735545378111043407051220965117948343417150212399660182539992585842021031622912198312783386293599289385889243786722933784423908995653086996942566469850649994173243509937089205097917028623037340045506316795464923428984354387280987898371646002621325443587882645479540003136511706614026277831336279626181523939328353207681108057484627679569964914980405105883097106594200894785214617338390228245875533704213983500331482466267308272084377099987138350522189813828914765531668618640771750363091420758572673676737075582595565123803427960753978841995360688368924292068652157349164470238903772595187278446196861950765875392586089340835376178434706484807066995211361625508350919865432499355197866902741346272250395161695937257663682142469103020788980733064117212587748030995124587364460737553139321510772326239455202700396256185383801316866617464134985943248927943588863489533547073461745846726940121402683546878683464480477009255198542804573903416761045491739456040135805487397558409747216125061687405754422168615766677420705683418071514902682986126702500656630412134920842157911682450937818209004855371364244856367669711707862212237229958628144969910327469275090336940167454937765470368260292859651430646762531960741257553337835925521997917948991365833481988227618804146562595816578315640188613324727873330784194816256268848750814190610809255200622136659332897828747645331707167535210412139557276530228700149498059141598823510480832783601274560703700169879952086828302346851821664206494376730764312009160757262418548813617327740303052660192482358778586127915527060721188235394049064286124838527384228968432537823663884867102204279985156551792081042666266683491296284148436919854149787779638887785375693653773683445470680737478768260252937716120352909582133626100948900061080020165783831305139608290176583668144526711739241959531489457539327047530243571991225464332836946930800180097944630919572116789228055537520869795201204176182257878181689176484493425454664482111092108473692885620589719457717598459140701972419648670197394205551711532132823124262970558990237060130180901160326088246880186009471401022696928544212776445496197226414838588441646774478589109068940368564783646738171439511867063551155579531480851717733135481937570211397716636633790976593485877432480728845088129402882119407246607872074944306348830875847941121919299687322370858367643007645198508707328206072819447582063043774611780255652476324584251098362904129998512489213325476377143811124650189411910756268541509885386468397395081857007772171793594030469148071086753339932909216896111425713668136182855583043719545249503393408678787018373746609958202778386954993600214641497444589989806263703307599150147025636839492365015268510540430981235240043443890980726129506042177499719172238793953528551353537044744528511245096805242714931798004756575903277339078901915494937397008752889204053968991569653824457222866679536755866433331515485860795682141615236711937992026570750721613679227431441206158061863609291054504721036293532154225793754167676492753059200107518671470077045863171907867680664733176046266930888777207338007566950764629768022717064822083654083399348302765100903648417542552451360925432621620368669318017700576221136118508982965234792165317707993397194587139665529264626178444607960852673111047230917410527870057468735054414530216904298082221869014688043742244334913321635694593625241786579465031997838102846202656886738799150340876120747588226543344542245081282572147252210856500228644499985836911526578253453399439583373524706989981050983578580766330972276401369619066774660676708194629547408542998630556018479535800130003697479723963681279721526698742888972630809447620544412937594758336251442043120905518167732976047509847677309745505379688978049158354230358837668740510698497428495234092001361990450215144514777709854398988418504012413423001541147201883607809196616041095546416481519029960020595893581844408591798180519355687587261114551681272757354142524440749655239032679587217571700263114383101155655522826020156038713260956706036042113586451183142306822342825788950637011977912788080989668636534707992624862280578314002651725627717920143191035337794410120178388318342685943075428022695897881985667575687730622617130448044764964725782087201288794280515177985719416852513803312205888207394235584418005921579730762632796709838317898952096307492952903084013835368326142892739461698402188919260708712193783383487222220454886961244577135226821061302132333064076910613796538347461825754465721710099302092473279065349538907883090046029151995345186498553858077412698976443414563310911541501465481357423503499547944412448203543648729768166738211849041525296857088523066974240817168614945529905377521665102698637754168482503032483391995206795249252177024985390419907694287806963037740734424707863450983782196241246644976704421390157610581900938512323085698127292531507216517799673698714312986305546001958895135174736164031063612043377654236935618988869527685586925849162906036530187600554004476375317117965321156947835691807984519687447204756120894477430760271643211564701128488543619867595902562159612808633475969513171995079628019725718161394768555817893336803899647588314071167685081113808672585478204416272415260294664480322835732655907108319448835522673242449824987448433446088229819474646258791223956414039622034037481607815957184230379241556064018006950838710598609553668598291088101308591136420135827868251716688010621195305509138392736868235446685501811069485574323239344522232656346849850618921808077670968639502357518523699238254931478214740267882676185800639188458021863098064212718334903796218060915292177969795277657434408314504473673427549542967969357995804105087200720151838982835005790227780816004770011164794056981155962304577752299194871163409796816199476919393650159692799890560234939321047683915669612933353160596347339415209983790879299456256181142724874739616550461437431716066564744109293943509228645854897916813745166263245583587657103214267630398061828768709630081664776018425426023041519478785754421385938892517132645355359009403944155322506712445819576783101864583080617541847998517205187419437290933175293940050594239262266411072214077758740355362032881301953161868421311249944349457250419433144024097347617650185097177259079444294768918413786227570801695978202009039116406375880535982885147984665575330747475626908043384574432822839208475853061414112997194824697569876457299590425716915618285052076695107379197391157548203991662363550204252931663458149702701388819439395556800408104134290823134642795952930762347394108089025231812752770729532380732690404374043351322147268375689938241712354074947278221213335519197737761700171203761091154428856006625195995631144475114862965547858008949584155760491979707209599835358689397169703274595942818153870927954144399274363683240138223009244851682306627223153453183325304522592296292862822948500823177468732560374386909324799165232064342795588471135532938105269650382782986659760224203451840297073156185365320020973005807478045906137804531895645988486265772763454646527827980440968641473739083967735609052190021019282253071278694910398362758898974250895137978108277951125065938503724158438705872565396375885899885093375813169666958788907205791114966435630341145188832462474876603083114321009273546385648523886167917075906672042441547399717627897688194234486158084018939057380684843041062109817312754924696062826506633308197185036296380948074734012672518309736973915838256743443326650289592145623022785236830565667546223174669957387889612988086778472052972354351417797540240330806499699791851294323580794376579706679942082788291014928052213792845175141235589555446789590321166272359273274178198864570847475439393577261462509237353588351879062646789728024027151598335593727018032283007000536924736016028603226816333596515416229188241981561956977451717206288560540053301239199826462737402618242511146458253407594497346555892148411339374121986180480858137034914590182603444203493855285106727391226433464276801139623973476232515244763626083607622986917613000154669712377289439907866999196506020731680157075286520875152191938896481559605202228466403339465334122525596941153969556431675361363931588240366903656139302621184085368984637986719711601733003589337670676580043333393509684101293275179799674307478212146178984045667596129427732054683095147685316374217686165725187505572669429371291853316254903769709431637381956868379877064156951041557780943206879695469953257857673349951793867932045461284986404551295484203584128932825531583533795397195550267542872667764685941115722127380124474713755183396408987638865889324579071360035704704924493915497695736509839989753742722106488023893770196742439301620161977285675330105565833247974456308638243059241428044552781564547615513375907969274335871562229056261086535964023911194856844115401225379623487180428956490416680145052957955977137954843313578364967678505836443303771166441303732929859549728315207843531527501562779623118041893359195452059195568799207152551882711607511737836720885559357889308514199771747717761746289372222835317405035224242273622710871500374815877868210699661971017806193334638904976293842272084803083598231113617952156706654985046649380480851954124292588124908495917718034961973630250237442139044900110361184111616153873546661781491864226152562841901907226882115052767540478481703733486388227929732459712442385126895709858216544983909049824966524825914586137734158631206250281786442838369679058739415945306011901048692463029830267200738010025847902944407032200150811898005583848576381732602829483876576812984605568714203523753764648792553993039882851704197266699500426300775845129298407949574400944979052824756423191513135515447460374714608512603563653007213288515640530548235164086201894105374809933715530038025194086516379634037819055156017304203312123121799219646326511105939623207579306285063737519176971842476483297710448259681390917680444123932511380497787647815189458091958241900309515371398606728685797734677003194464891929781332941951657746550041953491784905390820394044291031528320442732552418250716536901916569847762569349770176866242300879140568840232044390448211709785967994440073318129593304297613412145692326589609859873837080812304906610776116427526155417632462096156033039932594165306303641532894871651404876017334583880422049972520012200966600629407831547041243468462888298604046986443017102840812370896818757832342756123502443911106765946783579546698491718915055090239282820608195318107341585874421583458548622098059204502616848166722392858362097419489263134523326905911866076270526764125521819900127361411195274922674314013475326047336430702274412600935562439215100623313883998082868958656442665118940990822067332070580488760077826185127062036980215669712794875520413824471570774979325061797657244323296874622177276487585743553560614085427578812750264707517277758433388655981465079071741871218389051585300994951356921077952378904282101518807765039180057335566027643649697820449703167697231477519071546747624698355318649620169082019835356707548704226195943279952608489843886262505586922493519541917440482698538251904421109936587559398075461434464434191596372971046755152096625379395757629651248323522774792210335821078096188469116732762096963637094034804768117282552550837542809295415114103561036305994207032470117811540727101542631496362386557745760333707223717470209108398727938975171704376718865167701189626650922784234682900944503435087359778673313237278532591417646440695553186186732842260611555758891948531295641778616844014205397481453176679516345086095204613069084206239673647614075859787034331976825218469778535423531739758078550192870050479800653119479195483049833622357204282148633812965099653555022336182687499510443415859191884567359015666920342587833634671603882316951728987555413530752440420522181976839978963763130611939183580468250685025281479146245473989880528788768290419720907258898079301660856700345812733079114624016190305174594350808536485230440892016967462276405451508119441434095084961402327059483641209207859098762945922241490206428916295374147215076143516662708394279520860832940777294191492177515013131528663755646796276334292563110328680191335283273968011770637811475740011471787916656223008912076855327588671968969596829630857382874573300032313547962661072252913465014602199079974226697966977953147373003841780663888913508943619630720403871669018761752506583534072074867649962043018337322122330939390893969893258943587802027707851342267361462393642187839124379342280650178256406832170189065336815763569820347817961059767483682203163693015281906268236947340329394531606658775392669044690074593998577082377000798933917907456012246068722653435616148581996117069654038482610124279898679313733024806373070292302647795818219661307909823895423416135141115703842851707146150496646763299534232816815042203847628380987171370228734455863102295572623962022533517048624715694928985542726178855721972709625680248748438597082734063871323797362305100158851754713287579566537698055735043291239603280747336682658511543448975557178443414955565590189547978674425846931479663690844340091601836461871270957754544239507235295046801878253823924103519651241021374574665315554520445748520956079539502614748087511333226200600570484538591624566191311882580640902747991412624586977795050967692389608192340634145606527624628146067822811715867614963987929551734424879951762366622956243306671460785254710311063323115810650414533675821543528724006561775677321647686886306686139250604078564024855940260773778640639009888193372879160261684108173062148290191518560639707143591337056117682958593883665280433835534490679700547129777502735887618270501692509171468911673317999719840748089763340111927168338424216221055518943436813954859251905360926122719806526596720600385555984748822382388815894170111791583841143538967235449236250995866132291841030592876415863062092350827368232675256924177377155060962241181980761790101739804998844379011624574532632113264763278185866697500457278102577391676192897508031742202372315088431582527866394460378309698321397286437295172437130415747913808533642135353378367318770775463186454782929148524195500427000464505355906468265693796704972425031214399207075581309156156477644637984446519948333333015698348441522115149003093504770974379222684488773988447468582011616959974644501746492283032693686685778483230899219007988654737991460006270857444607994173361723020935337997354708929195071371461404311986724826830627056439029338539541193730947171109768870201262008337725533551009377701059183028463048849173992508113642879898642930461065575185554646553401879462506890217134473606268191047779219641189340323013599069993969054605483142857227606427983473574283399250741852116965920268187331404064393763459755301296635220220426586291614585089970727025990155543638182365720876174189218326590543093035348341836471356163201779604661544230710703545474477821679739203624768396972833057310513794098681953684044497747686979070427764859158893700983286720622454584513120086556167765080852768779047997189246800618482448249778488175814063662821549305974982751087999770537278147743758916587446297619177851093186090332510648608128785764084473031840039357222974497256987175932313216022458524459101779047379450036162421149993746916884557736446501239980132181358079251239017737748828558455100090012694591263978473935344423750198917258391318471196227902251018833467007537841363713672965537323111885805394109222801207673708741411209931651478259669356881410976246313121726375839875716518904102820390282629976729624500824077601445126927601181659859792144889790095041404630879570876258023323026949036642190148069242259943897671062580050550104949086854469018587855005655024258531808709502784400450029444432499067670620282666490951337773192883886072857184318946335072793705724401855480956717312419066115632662138411450883339656095789781067743572340582387947287474107539916462112857603401293226240569034854232003808564675900903955430888896919443717666900180933159816788664777273690154017122545749230316649952121020385405708905952692032760627502782703378741315118480287241884647612526960622674994808759087056137382765994982628182173197331573392644096994809280025779538180882130903135465709822069086351090055646107569673447864943021047126473169730230390151245472874387454218777004121123883787054787034845049727326366611894479319952256492617180347733793493112360464959136486664371080296711135348995583131331333472362100269540539995907226773303083171680641089243680881676506986303914120831165762920137533918327446835944628974689941167650147475129984278785409738845050304480024554604074710799937337655543557654764759829676057265139326387008008005110773916646219322227459715534017868546396000931366593689317912123905089494993675858940476716454195092474845546252670455655985245371948674595223764388468415116084968393645133830021983171126883599746777384551191717424006853529575833646325613435418647640200564640923702283458750944513522228531622251123669882254951384026571291074777300691022199595946362633945407435893191771347592938454724032601064579258645024738946921580022308142535733709446062077949842233904979764102803642184673471003380867040601125191998131202689492681251911000816652592490238947906301686841678907326902664403682360879030334255333217853625757309750994910151367462358425825688168560188989578588583029771047898955180885573353000245085219391466429332537139446986162174096058276777630003585699396498898224699668015308634635067706746637195151722706326815361417021288506584257392343338639245192673819703735574924063692578456873044350173727138114427096074491627356564331723081916319021947231336143388955460295187079468686945915068570901924649133838902447736106453269988771585615615107468573098955661048483187151071064995930317437392855230081073572073464144392802015123420841837080498334649775140453887392447851420683639749302457250429776729134166349775470095578697720108726491261456453939164527003236886362173252812020451489908916661011097041239456011039090727123975505851406156265259671457966322059895046135504466207055206060040223599711504676775593887605133805423090071765147658363444296747928847592500571466264772310624203766791002303423285485829417636976311676972065402174759712541441058024657463281358820229280377600753282319050625101714727998609970552285385343345701689988784742873509177532230009064289205189738269047386515654093980602693718107686526344775458450503400734450177666897042801456567388860278843466977037410893841837727888480230655843126362217291002491197793769584535077253457231581246860026618189660229265084524790202083502304401874113524895698396946782485550975659526780816482357065415668700542774700804588536404265669826864958502611743563720454282260762026984563900671197786568907922041115560351827605083275246900805963566692633202447227416082957335222097871747954569938877342883664845226505740725478565528533781217887914853534906283412248856568554471433116262164738943030555586233979334093209211806486786851886594402524729126650500361684300000515724058153740616273202141823408050062255979891272587882767868607160082387153732426435008396349197503226518019828025271364129690073286974681192459746283101127108629326273216907904706392136839391290740083554688371904418585863756638086092253805339408062955571667268413345635505522040612337099141409452753487892416184839156514990700505635585007781867275592681191937008066537235834490988012592060606464814869204400894739979366961323165751366881449803651303184498660987035301599979365812463011579671011687839450820372828551143203141057116137679263054699343133470597854360267688851959863221814558483190344180316816268955933412288123983102739370469525834321604831830764403724428041112170222054113760167970394285384518630956297716799685190166235428132854139678343759012627570099300135092680764058839035601386595111432260737734875642602624427122749801000180864137017753881203938702257668325107530071599175180504649345291715474886045321731097701516331356205717691251641560211171022491383527753081302554039347566367668491318552694284086909224724895948096970306524772729993192002880570938000848417564821012897000145049009416726798947346397719670012219220830658470771676743509885049503940064421191531119632392308049598272444040680991380840143560924471909585930657278156416774358993642542116994789755975620400950169852410058606683754570689404352232699770717900444144001158925946848383533371410501667571006348803727699193665853788294456900181704297656568618553139236013459576104113620907466609558421885375115855335398496237809902147583670122842377533210843969366469121621558077564695455918693479255023940672469924786892969402647881731495359649996770946141504971348476119158357359573651094584768864595451338491911698720462864320695013115485732849161603034457722192061305391914013870447064363298709285533161270326934485168874561723843631310449215470394897028906420174246857901300711265129769384080388713925191290758593820448206784959801311057548352355893440991798019669585540725108722358512821364873872837988959191600163581531464452048191521334276494054158887525472211611446028310597444700213899033216967675371093227537183543126571978807649115286853983304088278543516434527627666168651023676692745146778394488046265642887646348059516994704044866146054933255072882429817505008730201455715095521180638844295318435594224745749366050886793130735225128632412174384332815026932707146195360772162686274829257443866361656690286310240477083337422586756141828066198914971484084757122757819894914650032976898698523373836746162766147020976690542102548600962206306497281131838348530967488301852240139098390585073466502194806895035506381294399590981408138461465325610831324707496531921792222443002586101788362410682989370105258313432181118485776296829505363441562460512788135080836081887923272116232856380475183050785875658773442274139806364943248826791163650631021099581740613757618716031539529709590609276823241763875526591871788628965536555774923810495057161780563786682522039284150771250872618548793684660543082811769918301037624080138472580528925486912344622167810957280599165508472973285663525253002624732183010781414634241447777345010564653419559705836947796387191918244770401484537113176045006022629725244559162593489753194190475180687275420505849778932052605538356006184258389666942526516965740917455150614689402759922544677354752638991420237370493415799694526116690000903811186156323478222413880640026910989179372584381942636925063577885104317075642321942857407341767748887974334763499940024505889860691229708269943626250177903975341724270699091528188787186374963799958618985575515725622359463983148582674788987428870100110985156155646292722047719777061890924821239374270890380828259808264956363558973563431919692701888010144666583751635720531100895175539449790007637427398472178737566262065851833673082992704744204632169070133170550953846456646394576947497801375533157699243082232246293212985204465233160122209896740141950315744872593310477799568885533773792690985389781314381571467110675271401117958524269739092997547405624445609409910419086488462325710315211453255081026108087426362384083922145958348867706941462291497202381690254644486875041542095442419630203891855696555385610520339686899540755888762653151421595873443226310815069709097855475433561096600385098976847932824231310584330135324677592412777060299543699106399887294947945619936780209810804348640588730563115021830035068917605974691414883119673057578384295215022820483949433228756171153318023489491303028265323135104071884090046202662595935267855948971178409924600122058766464832986175993026734324638356634426219239815934780509555463468964141535393980407043801682605596282156635858955992268636813071764021282343590008703960672857347006327886350388607747808304133815854816724650078445555453054413317936023968304240127968910031007601460055240961845793387281089078179337243005811679825348904877055273040393585085204872065313563589801643457722647991457888588346946140759395499508695102258826937071643958381455759682602654545811919990349466490912247907678840744983915313114691529274136395855711299674747262830799973670196950436230287970760497580439567203775051284329122244982956366642110242402395459730857737769448720801784093733651656181667804261091312299170560105503478035383351137387662035617932560646295031539799634187882117310233933875329456176268185788044824753260840936573023952174911700321833564921482059151350462246709913991035604211279767690773092738515920165384290038034998234539965607330772350481382082556378051377344197795263380089963355763303156493000127586756147171055454915018559879478607396214634158108655385286254270584080380542660533948138283293367707129171491790594808114630902135867526209347559827096972821172886233953427630138402309604889225924411873977445680733196101519710081612002280156623278224387945395694157796859882958385886048749413635846357980681323665599407569942883239561421246920142386802057181641231659601929941558623424864935615001877615099043576774023786184993669272220882155574564094045160982460287794173773997319971184708058783689762081719730233956850757851462023221300789897971095548055896554019477542749509900507743344849890010205559879765228212866693496354170002883278984788560784336852898756516983076379732700537636335923482792514608580701976364995106620291596939894668180580104621342800964619172939975523527210075093645259407514830868500442338209248677538009533647027998029343005908393444404997375437073769011698731436452641950018919892040270532030439795708733787753999794772109611767010733512208797845987155091980048118494989036776950473582865380603219392507569497121564131899878029538759622053518828535709528990156758562745547242641512743894285581247178321181204043662931609630630207104584558523591812180022606441216274197339455042959999762204315034489258504470681242577370749216835305027214412062143091239434602537600574595540685187580323573712970270004913117892040928651645784503506011092310395550268830392128064719348491767557346883288901402698666461698103506493802067899237275544582176426048141672122590902279647178698361798558631280756285323709391528254108789301380336091260954957309420496802689887588441672754427662259129515990149333872069578341018854497601601998832752694109899949260880653467285323116750311878673534722991894888673019579837846640877311510684756457197574204559606668114049432896094278943993537795219217315278644301605661048495348026615049021819396248199566347156123430511058497456667811577340278236886666235983164023472821614734304368357672476267372734939979351112837845108530966230219756969440275935294284354580139925593597159858088363990952319447633174515909532771266202439462891290494500880198605675700889712641117804980531074876582030527705158899261692057943187643698561472308889818743763572836024986931633223611895636268873438844970777872593299235394618885988905040137619176626291383632038804108860096623081938680499091069301507970082119256990556573076716641463573160661131110890379400783791028947153219991046210437211625492146549068860732856429315422479475733302883818057017132145013409666373848630499128569872890857469554827966120355197749900751215328813867460833154785369126773116444310256014229644618833473025439829720627461905189293764026247240482156086249320854446026905518132569049488822283115715069365005402762072337597004797428471597123213416096926475807866802002008955163927196151278108284947522425897484044693846150907484983153802258104867465313717993418038095352043740688525772673033735938619685724080931509460210029892531461250575995184917548343856260322360785649830095683399222049632466985327981436654724688512371406832997677097749664066891922911177139338975306965092563603748111607104012448026474225406182814422582540468952400453469917212622279304535595516937510894891037617544684856437079713645978970105663145740737910897580036351281546981686081625512333461884128104203658754772947213909708917437906549519160784087048603598166059283493174707746224042023398178971925727163046245802137560782027297392473405271281594779297149499426568125167162368606887729316402037599495326412032552490363368831902327665431183965744393925050260372714874441283427036773402878548191608649538276574866304788870643132607812804213655713347848652750269863635731244194773188973397333207620079375470558432885679088128954550741097578783886716600307203029592078068149875010237271006827099921270520841815381339377596123793842201478177833633592807281936793311089934902770331372159616859925137514718866144500313580515806690836983907818541499837780163418952734460042714424866718170104346834011377223154124172959903551542843430272588956510619126162031567265895621590034973461395830409505466044798903510233215015234850051933166831143553592079081434093992109272730572824043040754627567957167601374258990413818737474115257954072349399788477047880418222715430637405780689033833551815926416420616491533724269345855079827378287629990290374254167479280272554751854808289921374890318320499468357789955776161160901207599136673473182532272462212301308716727245742132821752524450930799311966289783801944116963760071401216400368322186861123065966259349209707039415303776935863757623198467442843491363511012798664628923163036494216648736409957053443443306823979582020323209915861734699199020635285047354746457497711857335962454609111914874221481474826884843732053325954088456591534549958348866988777093274458174402887092565393496866688188289073691789571448014372708315898627159474352290081382800932669332112208874340636166882317284767792617679165388316116201814858270123632142001579320529698255931093973583755847339197220823475260264481133062678553262052328859963477787289848382815607043891325341024209288876456204192052195853520967584689192111241415151103987992971212268438765358467988733884854914218602257329709359087607902346858964321030758377854168925041835514191099096881599964029651806040013385582284363171965243178152149054025556382953632387264203137952522967395428541545554728466234814431872561742560086983041258284020672689918420830395289352130861608137254155487359374839254682974767254425850052531865338880822687040552781933472391391244437030253085066478981272022178190709446729217689439891911023761545788313720621908768325213777623182464215082275368019840977937795501993707074600879209429846130000919416368931547534425279859367181930772176605389639628199457404841981432029929867022849762709116762972951559102101022515534458674458453555678626299116142364825834347537193305552077016187450382312034100019917809226420066681315063541766390916854501039305722754986692841457563009228340710679662989992881332077617218584210090978216576400701231141331612910567257391506441785649753638744055628802738347599029099649274216189131099682004812506437272546002517387586472263600582797158177647034435952842199406108732591938375132425913185839916594233574639690895852394301303323385031095844138969800233325167332942979221542310557117762135877357266088157084818841488749848345130272387696598703848242662344185684302794612484129531771922266137196115190293476990598442847750193856758168048354341127152683372277132285453821196105670394018055313107862915063554829232140874623266683670677817122162691551868192178121663823665220786093840422554154048757395386934216780558668671419887116008293066489652568677425186414373175891502078836496746687771728000519883950369976133855105407601801446528325257311966725814692327039582677577229322225558158502180527985388098507934169145882241618808589822821140454523178398389655843221179338385591187896332684431581232251025175789514428776879131620022603321414137413071769114024661974301078283516675559605304283199519370484596892001835740495658789794863650687595844246746343293943018318928836966341065789665205113078882287539358732681045681902557363037724955473410350731369449524790167088467351570717031159051299668784309150836149522171173181865253758350379303433409611467202086129611023290747978116676505461418739552761774370053185699444010849498636582280943661875490169805899482548424768265425998956750850640519624328761255089102957228892070325923947650039351336625098159712815620331656086932526816682943330871561439054836679552053374220436816911225155533823169321198158694510237227385518300655046147557523984806469884779989269069269713536473521806531515232411702479831924896417341026092814759003527431023927041894591571286156186391690800228946253898007606716130727373542333491045641861372066391754624354152217909036367374826953948490511309354288820115758465473785822937540173462712178507085836753153421462880487060081700079492133515602339189314379795158116790141986432464193838958016745307102270145226428455645520468861123816966034930056370518368491239333061273313368247568521920879588439173072025222286370801557083145360774369396419957578794556893047569033112280744358101985825834082491087415066477096885708605356668704330109539601133038452438792205185200280845424857872688619868781729836122190606666484659925717312159582023818161374084893873959005202200104485928897082516875052590262890160765607926617543069864517374452757166775643102566092127971789481578790492469794077319576793985224887214406100859649539724447813839161146775876748047157138075593793354200530539429426991818444616985739737839325955164166923509848540397448166225467344707377017444853540818844812838671497222842889388045278036304434897996804162508212577497906184127897251629071868738596483081672456778199641283617336096349963450709428207064145024682808643742811929637227204913325366368376248403298149512461550883403420845994691120127095116347411709110129372187982406346768231089044239972782494406896414857729997854905165462504003850049606869141983782151758593631929403413392164841658241223331476045290662688763808463017476913254610743404312234653379034281501369119398739574325782811524996787956351429204393020755261450027321426947921428082303208083462929624507464264793936373935877062790416356026732103566466637327284900148325745904289957309347924726766804556373197228975315710311700013057092000051302638513927644192367734830508039180423778264936047313462323826515236274166009644236752933191831418165701808990106972301372541476497032824194465712302940547692867437388960331817430963090057853676513153274469439343180667767444381388951235944491257436447887633748898521148810596898745953211122617531138766279775025844082728173535018820212872960735915805911990662404716602417765399907539169819549684718201738404258808586938189739398185529955939550131495365337850638739331235239323609149025402805334546993249740399029966020949219931874166024937585515920080226810932263250157439031184529957046851192463917485472148549694733123117928801527274211917986683106619500361846355286313650927639058698981044123805406851553627756031583328709894803980440174775569325245378292108882665862218267380920384549227890848166830114345433432308459323897480545763688406698008569416988191052403118740072475746845637916472045359310492211165177456419630257655232881266880706334065961630666853658053060492257832118271641422640093460292652950593859652486263377762528469061219943319504102446661558794494792028173909585138776913174538410083990811170388854293176577766465079088608163009544471266208254043677881792942111755313872382147064268761973705573867491725202267215741631859636740742438142345134676477907390238538579864514878273791038073451795071253898533655083986531383371872733478722109229305233136928673490609289350190132517601588834461510442048200715980562607950881972457548528099037576093064846646125123766198453535866748439919644314133189156904784855227130793091936670929178736467758778144743362285458423820361567240512143114024262446292248825913348732925690457068230456956023625548796515680071167758247562904801546453333771627996377783326761773943069089378824511937895667875363667834823823895317669158836413222621781274558893168240609183075934810913888732079799491960157210113802145786222090613071001699096716220560462237455826658061945282095724269285585830307181914366461828072571317005366796424548260552875547445373522234663700951748723861329807724006055394774235539185562857239282135395555994157800065597906007448759281836010456816320648591290314488035125789161400798151562856070884453417671692952157078356033727129785449506459493031239560144565583977257132395913109726401668056809918214995960983576212747896341268597656093666454387125775829834892477962586615346178582865416510970137238110671718785505495196783532660521565563741540791670053498939688992824076610853261700691623929700364331945142278143474095259800601560283897579985637257642283988563535502460922847810747839303105888755648554158189237311527490494519279488825604916675545908864595738802012850395432239038399298909439063628676176774937010527650181874928857662023616845004935992272854640736698488013138040698013699103709925597131430333545797088790799147750695566689836212618652701818253430497626205245508919672754469117622207246269068408756117845799368885249464932738456208733784871299828358092694200198400553590082548087004099155167742620751756763519437484146368595861730487070702343294764383667684536143825597323821829296488955769019742823061433611663897503577245619256896258792985284385130251401407127399325634266110623701748942538817016655287318257742126059131523231188740051944631989785791198442632516453739405556168763737446381375309300336636106536766354506789525053446690408140898245836308148030928741292853625642639483593397941688725926818265260960955858665828984010939546174165140682486487286994728254645871548621493754856136506870220509915752718338619114178110097931595335605530165340803688700110969909694346113329614742109023085202430950085325053388147679396936542047012081873852990742285611677451957472700926822386662046674405697035681876191758850511925211971995812161000273954506855256070012361718628478397014084595694935688654367041826743104786064195847836998840163537546149576824710873535151939500373112704918003145631840798892173972360710242692806489428000327661239194442933805362380695155943352507493457599112122968914131864968005382152448932586465535099981768838862761206233073586693593056157084413290477013026794633052300159706852701834183224013240741143416591550258723908688493030043162827029979074198565204384018478486147650786888370015647461839666180691205352862880132458106643080321585387306009744335187956919103805663328523329795247889555858946752814140774462336857806579488373430452532527231567585184336412071745964531755351829577141096960009857355339778772704761780139501614219660148754460304026194650796828588580859522327565833477663066968637286276569683393944261775888278463261985487493528112335565635356977912281099388611609980027059977285888615299277200186921511570944678232657793769382937843842691570653193741217286042341235086154382831315776259661170211604386969225113571216405871115577017307241097983628230391898257513613839887302035912005865112693825132821631439824359679453046978454312430185676279004792647734503358645738273868006333351458199251283474220701111411718568484854358437511714198239577976471284977693018621787351723911445920075954920374847043692361190546526287159174687926581956824221625097469336424686685032372023748041132159740074703798348282162179104376757003045434829039577084399650484788532913398088036221445479722523138714084378640137069906964305130386006998104987333018830988818306964666048832368839184047002304211407094521752045966455604988033661726319209314156522448905658923271920953176665143149856438687368554782283691893836615723160551495824279922534926091835097663862032270753154851321194744144891923883045301028040019597841210782538835578778510828743477652526570040763568092520995084486490752270663274542853118003602588434223942383767800891124967902998360777741109339076109058233103939701610801320036298582508506805018697597749443123107292827025365383237730364195525948729796214109939798777609385108491378539506403753679533674054987961613881778272479744310056126225689236368998302299674975826072917783737467117303627782436751002064035091808694567830193937050330927457183095391646974944490117072835206482588538721029548636937881482772328167608102573353147590872233554292170504260961156518555023719225456829920942582822220179890307718149156595754493639124518020257180999699118478544912157387405647107576205923683609874538840676361625603363266930713567548802706244750826808413672571192860246093717492510345959716726459920869496096791162843519037723633934201757888437998496724433770622855623745029048360966362531640669922054344836929585722743042169489960932184916272681761179533454309660897758420282063817838748456128725466999901556734712065473140743867785263784681208404789460525852634072010287977618243901004789031979013419808676293123197067083295049985998894414696290928261273054973956043980442278757113820860253100704894738589181113057921084291087449839101720740898758273775898696397910420281028915031697233878857380346960080536697679153913836497422943355816086745830708153361429572034866415699188469198561886138362434458272360582377259286367589078616857519167563048457181292635889833452182278382282822601980595216616029309283361749871853069020877943310981327924503539484722411224255137414367147483890379007095526061292621099507868945104521466549899381663702770088894610879397075515313042370038685218809844353920013983146496101367268132085187452972481570066109066650089296141840178478274066347848821400807995312601609127858743239396999276668768761498858273889284792521463352789075367899860683267588845976114094128023065172762432502728532765520596676446355307966292542750702474385492140128326372567785727234825158715496593166344787621654347435910921903008492249537531507299324137725737382540601883933777654181011093868100544010693062774568062273522778989479956784857005378000645561470505805292665265636842002557426588749910789088849525440763696825589366740853556568829117723576307285332552821568574829643821704319519533874968525600387911684897095880626497681972387139225584886265284328582142390609732185787651621966911785335709644630048656358717302191198626391364751308637208324399800312299939410964802356956106252282134513397740162293881771957092400407603078020011516693408854298741799603103269882874913026738527059664081193334415589770912741258584783415210010197454539725610238142395749377461918619507564778230330166305095418024176270299706512247555582916326103984420202334723066193480604251239247956031135213966388093987940260373124473320789958135696659015669888554358319963518193628552725753969433281852871588436181180936850120711357597656549812090531000690119077650942586716340025379736405361696562570271975658921363288280406937162705292044622516888450331128077894195628026973389370272462642080373205115800152447170393564371525146185859429926378197187561493386972520607249702749256134605690137582151541698754585094413204636615041817779960668108433037694008937518666923055468347498077677401505338662623044324035079222532679358362897036878112795580663268460618859714499029741609665389521274226923660188647044494071124140300101613053016651294636947988465628473497139952970149304537959301595057586923614350830310975594059372060734572810336058471307308750196626978797516586829729349090687253610995334827272653915456304013933514783675278567839719543027263391860586462799475641732410603155595374286306079925440691483959438407226895952420776031713484840694421638815143796165058370536578359864044503564454250144570744812945934890487537683122094118420758578193512153851738817761487731723719512941219923195396175153893457168374417232578777673524414787952326650772778527662720804379113724397247743417764645011717334051338697216562437922104017529812905583197328718034780516075332900943427807218311935354069868215675500943296266711638640129292253219597848071770070528850641130207782007171450140966571640510189164199291170657241904641981133664665506627317426228793509269644400213036783763625312181429566002836462164722625812540704356536753960862759967528304711984378767792339488943951587308501656999930192368022427311023667129097098792787041548206672609392813060614947727695258708145011469786746406217468575453140533133693555063128911433357630584554938872284738134873429345746295750586589290041353247703296354531164821013983601906637725581154816614208382337991565061236090972675208409505271284772926796455629756015243499282686228240312746560549506611718134310153049949450505336243709564796314761525772203612791437226870022705161356378104565298066696187571242047759272167369200487682633199016557387950495908672955034435340813621273179212309638631060615077229932448199843571813079278979318517993073329645274431297826278257944060156148561950873945132690617423481995857149090505863199724243221919426594498290003740757776981682565178965992435197496530461404840346733904997111273406216822580725775624313322463527954873414844977802707897089384048355016564333486971006824492211910213217293695548796997433068008416575734213926686815571326356602108576685782362884738278568191257142456604857828222530459928966946269947901416813914709343375193608059604605598538790212652455444077303745207365948880764279648714013773968360934797913170864225061767601067997618649393000700323545683996048796700335032508821482944529853691615562342747561482937738188599617466726788261888204667806222681335926767521565968764314935773851213952310913330566999675036164917905353827353758140260261847057189049113242583206646680187367882591400958766078539044522791243486975348818788743493226869334406098240514901538004655343078004953232798912270277724222068913250029852226134958962121953238627638980264290692702417878205663127826663614461731810551331429079853402135874704504290749420447540905359590276657206549699014506083938815228061116101852458217545976261160809065460084898543017147984449717579497917203968485074414641152708303530190396967442447700130755217111597349076380914984448200688931154306211027482991130674869024758442726775996527855692846239714677026007636866054937896709268737634146387471354938719632028798330875450815282837768946588874070083440951887091630241575575571105326456242732051875311932095673883907691613943424296427754713886764351568305950175435712602038538007898493435458830626236650320550820185837017398506306815486665024250227149123248852590951313986414315593181926848980493531567311559702172464634702088362561824584557058706631567130319478453159844357078451696066909854713668658785012425986183711318953249499407687838653318268331636065671488800222343966748103370064070945613342562841097520192686865985427550840690634271215873676284237102168041551771315830340695598634963520438775414627942398952856302159219310409980741680581634344098865235288801560132001975111525473762809821140795257902297189641989228685023353324648493338962201031316729668753447032692456491453991171896789760106185671756577613884128221696036962224142209121841896449830473569272553566400386563202437895909591787177117345920549212604312818911728106297577126779494053026837258131756026005587559843709525736184883932608526397909522578857272244834921797879762973851306480004720914456803562461886806844372664508876500244371894881069140225122747121987475737759897939483077729300795917976717288279874887263804164445161178572439028725552410146383826627379404148026514679905995142785228459438927906394505193921411662211226985273539658578510539089689917228733404876342172023760551154964588782748003034572375817950939409152267234178553512673658161520583506443980792412997365070263095843814478339293624470219507164189035914456221936839025143075391180891301800503119403636563774918444164923624617862280774139507184737710055577163031232149771073949497126209156529248615388176432741855786543462932457586709098010941776050923680321199568258047315007968112708652891565697391180421449077948740223054482549929034674725448789418232484134130312227878641527255206643801346212373080975845760743322978619393376292944213242563381885122622140577015897362961072556701078318512212085325682718239407469759605416236243313764081269779649514351165846461259883503072586272128731241657306096341007172478706002341962503571801908727019178893102381565434839287575331973048630385784911147746137513986644301774423571875512949969096894135645485071029842086494251627611484240330738826490309709242726655224522811503835041544350620121508624306173362102618539776402876648830471101429109827372972767089274815495351754235164010191064424331920911189024392187569732805127298302890894581415662339559690073688261194079204137733646949023651633743553986234058154923285206933283878698153519530125397072809851820817955894964137873839818487038616015201714910785714559765325307457964837692157040484791178512392235633455892652919787780193454993451967829436452850321911464335028762633476396094391945158438973961500151817500314606498290120614358291313208675328186146072630209048514542699289450131365233202496577932871204459103877997354211292902374983002097734486519761256002196708370516359787335621625027267373622351358370236616201166303786836362713129228695799169283226476887946536225448973408156918984335394430806620266794702193955794592430863476053886360744866341791693910941082123679781222290361783067844630594807968694745352957050099054633061090355673191400865129235910508100644260612204413223637592033146223585481345463458717084806294894483945606645793629400170318941179811211214610858541344305506606217971448059228855650197008846707684615442968955640147030053601566417391540459761206644594780288105372818202367140323728316201123323932246908685567683219920536468542118505833186037896626723929325735570851070471502428435875044833110486060731234930425683820918765950575569758463399833746712160553535009234061194415723939618982402323265094428090238064280790008593680830360375504099733071171037160735965990260867587580157457711085686408531015280163177560957098155463970691651881586863108998009531636217094073700614650728717364785093277956812803518582028556459929650509062461274616751220319730841246349216969954658806420757949767399073679891150492788492926907103677067635658764658896299112109757767660523276864751754828314340860051073258593180507118708361476793417646266515721487237524111014027779887968748368457246885759241866127705905949336015208884628938621648812798683281857047382228750531142035792001630624331481985773141354433732237706783306993880363893915080674205565152997771781024423749500621311275226089058788617044591865701624653600895326954060039111881446066021945209122680466083772229863956404232867530110494401309200431684716646805617758406825149472752270580812373329917227054590988311602333015419822728707306772187757053537916096148502355864951551850326879331435536592772684463425129714077188468983255407729949423592010585958822921248052594573758763527884386970206291536530945113895976741792766700861145067611970082158454960208594304617278756122083544672965260186795273691207791473324866655609512866902294833615838622329851207237263905781782945129179788820611965520013309343320298307283178855878634552748941774173732307960440550285713850075501587884358788930164797779511840464737322326707483416105037874897339695496394531931632456971327417929709717160048408848017312271623624617874106782243010947966072944662073263762611989452284120050895829562907318419401891698355540341882355122511365983926930791074869944491592466932672461763680037141451341799040529241114579709844152612377120335233995476449139687789504346900300838688334498260899126286544911212833447120357589693329946300490522081884265735258302453849940916258811130674845800738833694655432767578963416706362796458915545707874069289662231891843099150032495306929016052841861886554689333741796115922657191828344018443943352645105537233507008868013966662542191178782195095286634150461207264422341070601564477203128524598687600664391035982720554231476807893112140215869957933793687421020931894297914414528897661204012307772732910860384000487770908045039269883929000494324492196701523214264997154401531181111546946206249632537518442674412866348498190052375200515798534363014176479357078427844444990384187441224903445834907972216774448253635620459078338921508436924194999194821230655463327869666607585735829886822744882770622695713279189640159291629653400412070478147174544800702611113800804337669903717191506714636270721566142325118776163609333886231110730029343721287837901677963302151149632817501597141016597838342094935870727190473609416341496942397978171153761638362564117600993403649232530057974003340737671185405478373135088064177360269952520380258847848569623788674202455028839241567250006986411136977388391223640894448251864363993268552469143454845717132210845393639346621762698441941080279449123505452653639849171919035864947780369820454973733072390316615322381730380103927692233854450713196911034759187218357086553127589887838035745431594942094904434318215644360441677095130846801704335300632595678229833722170566900498377856981138251608756679631163956537135419033051694566335217628503989534278904614991755684969580173137415827194991135195023313966647012726788468525023080316547990281453666883896518848813428613697186486749088468832142117255891650363001911935156207572798674268137333560260788404005486423131592842459713613450255465190219646262943137141582085377064718990055047594740718042898725255450530256537012677385483913624997099429507679985562043023326468579559299954623583206810369108177570054835919330455973953617914107730290955962593787892136882301410167841719643049802943556537103541682569227826207015413581149329787222923609680618558347043993777607920182943963875883765065911238320256193367661964324598462121339002596533725953584171555478948159651602040324639980337947015617795284954309624534008129065694078817521410529909470185385724350533656529517565904777267965157087710609617150126535148375180096622428082854986535137256520774021035228582047890554637215842399093686607824457793914239204927596628428658898802096645020972510229844146118253329650168222413782403709842563900043749703996274345018564438496754546772287268954452317752533338037672682956734535206322064601112546924389930020531683629997949442257531732734321104818564663982396547582649788261469695708650874805375257120638820000537065362884449821025531039219877429575369020018455142578266366194127961190789522807423887363611256885085710605004137078047192729551751424408075323019303355199740693949977684744340312364980011605701780244916213088668037655432891953902778020198117009050057765237781566598901812056202946955108144999357304307374404773026428285072793273832253617609700964537873259807628150978820814637724487237513708172397007487432588315519272107135752103115484542386042886937696960690898047857216924405071434337532140403853538202779328501850365037599536041342686646206485545555409762991302351176369614085476570649088360643693502144508144027223472468024729034275226798129272525360667586404712629380354469019498550340105604425290222818288135682556085314533295535029577634178868889438965884157176837302587950144676536160405678865785629601514173295831433868854674152301100607347147805489762331779018868617503865796731639910870432616365738594657251048328009699393979073338865385801443154453584021236022856152939226189577186251530867092285433657839216881612693742811927398821514603804139096063649095766963687842729675250983392219323909169293756148757753591374432201898455899709963828651823128498214895293676393399456926318371722142508995589609532342334068360862375519349260349690785833430435328605964691885928250871121123526487487435997479734306665805906334384208234053426830508478253791563895760780868647679063423633582447956613516518793987458511697987546167314141461139420846277005989905075249737452898365646863983517583621388300497882223340556372782887577610690569555819003671004755640026586582027781586055778845541714059900567300725981295145838103080710764130801094867068592002824391532905267091190828042249087463133209628969908502367935307851178626502226128995469415787151813616646771176679905786543093534610462587576397623800646410254784142008301006228082575166747572225482810899941260984910905031297453326992248055005583262336238461450365663027801105631897441790459445067620036904403478884750907100740743585249211503685424990668337073191472752532476890717280201516591635405798733740370177961821225600574759066612537828617981532289124826846781181906805785839302193283432906279946898482082519320834238122260036330013360352239113985193700487955414440093997224838185777138296015256065502330105467122881985961342498776182259529209478917167244074467393303080712701717096897059743192773216695441096810474558690751908923428660527955971869730479742288074383371752447969171479627097485527074954561625370257024987735421593706706517759952393436234369650925674542064148025558568892593975634511077065899961595075483932425029876556174563019260688977185584615582137059258987515863185389129607003649067421697887190644808012307072484790113668157315455851219503746859076107078673872217929007888287221145756921873634600291501286933555994606581000714598291407073982439366573613276756936440190976659284812313632351211089022509057567630621997407549145704394558945313466536414738364694680706185314444615122722757506509875164305573407490511659703187496827697797529706480608534072516117972139839796351407348094705167739672236306800575584406592009472093190616914646075690952879617012224042166737350142119929768918808974574440804786092397248764458960595573859582417311849723113968313265554997102837285904250173322127293003694618688526822554690947043769766321845592177058944124889471896071029107853501795586942596096410559908673776649091484231300465635166066131441509369636685533389461194889037436332311391101821026458470202869538864038269418552103314566317732877836876230123033190504634371960671474608198663931258665181727737939144063798940951180021162199868498386911777231002944188931330106417947807278067386338534888288265337392003389657440260167548777628686818096019871314927057062259422669399423458476989750740633273130403498928325282108530572755219506189051674087778216770585039068151293513195693871723575939895063769782777869187916176537150752450268935925909504877955400493746439346229620054164409823386408631556839366230438479972910576113654287454064369402288172980454586497284983622941652744011378546385336049329881357858213618798417106410271727433393011643769905837016769587682264965796173155155576442492248719149656710584873694906101750854494262222202044647776046102638497223321912960733111480786709547486541290972536583473606244763865123777574645855758342460838080483088049198668401331052063489409856415987130406123763658458941183479191088529874682123073369194703657526577853549609059926907488859005258351894190071298087307923583433479066098254025084036454422528658104172847799840464785201165190003358152975095245983873145408571510000260727399132425429959317129070016337727172236040726625879760127509015812562001100741447834110526501461378776401458585093380719558445538626444194202154217493299799281467287061292199271112253125090062034630094919728590437789109625197809001624145665282265024604076212721431499793321098226109679352428109469207637345992831661226260668262024240207817936950801741759724275260559164141212054390412979846231437532667640924591220510758083787713950397368656043315866059114529736855849100972448573417854490511469707908690829466492925415396601172987416994458166152791496836537789893532102015946216716162291445395474756232320940127122087594860921795030543630317403854086206549281501443578039056487741514807821407928432210622987656389958240839636536426856145090843624981743548054648610034359063924661644506072222059196285938373771562732527302260127160019645477939124995108148870772551009564620048407072305124780645366327105861263123981496852702698878059888388389189811997014443923491439261294298426095354900423958990385537494057575048360077461178150022249524816161832355005468118641919712343161865241013859893501223129243142086822394974155613872104081429146296357338751151541346098677107757064498016823512750995074100222915809991624421955244428464350602072863043138611614440213999713167131147790728756118664552369441202123079013513226188597859716760254486754794146108686919917996594764814913656914438196084185413117461085458905551897369356388762533164110091807456057628529520734030676575667442599451998153875330452665175284477051579962326144171621294522727517556110892000255803778006163082098235200793847325473029874601640192700484336318703421153086568069458658323273379201322517544140775144502830499351651784932102746476172483887716062291323895351484868181097412805982815531246933140766716872145668951967370906810517072359449441278841504317354035545539696529749694730726599387544147945460919052409437039440286808861615316267343520064934412495703157537158244786953102014512121923134597423503254732382766086335436404253018427381611540234317411371516623759141882615103424753591099488756451556553249200843913725642777464803275906598892188790425067630651188141989788117141957611024961809002756860851043753959450822530798225388715780682271551447744332527651766630115907180239534573184716201038495693313068459293859814076416329571861739638633760095723661841333807590173549264821405353499235656380278105842212800351288415651926729323543609417418473280499770160829787129330692172254147430142877338453062770673540242861963055422373317802309284890343298331620696932138405093000912618715892460794381463507257391080674145555408571552961615142954485056942523382536587226928811794686265532499720186770441272400137352179388318975768153121095049176325830229283321988469086075840420843577224640462441890449903941349550763129367188156800349605453859115183590243121504643431915835076531135263573985082087301954336452736187940243433713139689516988326782501614608158271596825766234170497566999470037174068186562474632696467800645080218720679863374867382083436264617469128824116694535097931647391503638753837139139586812597843574326627961955835222650603323515355741981042537002583124272262904209407087521806687422531083740087456438471324549237609947171951515861127600804549284971411731224063939078427949448060462766397963258207908947119466581421000325022722305454119585843357870226828365435946699007127656818009533321466653616637334509810856761848015757455490851746214364353167819356597531844355020207477591299021019291948148382438452263135498217547221922341938386827690831743028246138699519724107547061202184470694060945187696876805196002230800994096898394861151670108427193057453182410326043594289433598879234962050995859968719490824797939279854858771095809503864742762364479235686401711016198979511548591965362938988094501617132438432631230877476436322496820355278513180108731164645132975235559162326755816040854188510433623127371980255057822776108714415676354775147741013896949952765105695122083225237455655112356500872617551205876094559720409523992755232686222349134145569120084913564161943101903111173514689098927475886489298632663164034802569821472640792516521659974548162033699745083591143323816914786674367688340050350466243770330733981015159068888249654450538047569833672656657844787329306044932369607323583354265303954062220855069886693422286435004475258229100440743937504775500682368296192194261776939370201387920029878756833675514422462975303985992307551235784509656859440122758117286269640174947962354158083014542338124842290520753458864203989920441880270029819461833119324407553063901474225078009539656275762353274822078295779091617046648122799429360059776444425385394701907565332303780954584112813584877748751192662139026794946040530762600710804581309780558999754824373835119525187383574866112478941095593664624067603105218741124683449505846324201448402643372519685219564871832471059838801797958549285890741735372659135702209544890711871450046298689518592789706492320579062974127151480409358646521775092847785783899071528096153105382142949488563001279810479180355245054493284979953479729057235602930600332549224458116683195113198186820242007645640727710688594056467569791216333519441470382550264271484283542513867383020436216398877604082276536268748629399352707080579457361169497614789176854351457056002755445498525790917611019879577516577655783628081321122760976287036732184438015150512865654903953286343119533246185993666630506328143197258391265121020907618406047231296864489119957099160976462179131963211686976161949393405561919283239909280131552641882352208606685566497018608196673228918390524375033248714954612707627582756829828658457281735548629784635884967962989399778551938512107141829525649788992136557887745070031675633253525726985988408153253376733538982777140480839585447152835325449657780160275000890231528665661866499548590476445860402176642057398196512334097410887578547030932502225106534576430065693330170849403942499042944370153655005604138979133667507962569101093886746903357379457305332139447136874964341367292736735367065887651062435780457888196019888233632636215303077254801086332208029233355210578162654794348369335352272994798187269810509763444181957320595670202792685404306154957032278417751141672437995321717163037665335775396373376076140748670002089713742858867372002359861736884730384131530371771185222300058229247512845392910757263356757644769461905509997531022214789403082052147689235840833668036294159024934118396009469763252502357604594725867859805110965834779915938715190081329906749279996578461122248713684490792100048141796292529088727107148072818488535945570342002854811855877275909050907139712711334748888906596149050002604159226686267533939642197268711894281103477788020184077152938659623571616599760735212319423332579645664104421429302546956277667117816143081036593799371103860265634252285503185679489918442985134037934756025201962082549778104019565535014224189130297843883410711965652348064762260608198128003840078857686246537204625787860269186738228987360500727194725519657336126104749797932230769780080974836658717871548083488289395850876270377664741080473241274075860699812893515227471886968934808553065005065246540257605854492637126670021367493983876854058920796292553617925293997125727368719919880968241982376640668923184475668343934059299058268717505002587695618516733823606455174454135544794424865686696387350801387883408811793734736328329057526604569070202494933531137120022226470720544449707108432418110929242992428826513659713377968353192082015395588594124258437129301431963425364100459499404653628470038438939372427454919453850713122290628561332517589426587771161409305124147179097985799097608288606346501301613090044692019445704759981896765129380833670471234513627831037222302273045595294985005871222469255420059973721713230467245664644361338334593201141283546724580931894615458916033020497790506350844359576448708263272179994232770603851787526453942938479542806476366684758401696268290743651573683169739489839037975634275074760840803472032879228344751581602466187842478204126344615729034557679668502134142422959897915637685907629720768677329909990796592679734215813665850204491451466579423312401527889114561787681013049114470916282862760560961313122885748789739627777818991743624418903839261305832568993758318793217911619824798283876639788579428164257582437277421806964617267319619256789745145428058133113143325686694722279533083777547039443690968367270790033616848643888681721457730100549615761818554341384608859811795844066536634136806694434304002221960098162027266939841173421919187326588963000726250357214405565386029632115993521409641041490552581673157527441201693664778428592317982046798515189210857825555285574828051944622874974818674353197809684186342264638749574365244142930959958339992141227295927364911725800846183471928864577125822116847132131092727449806819593756686572803227814894052133501162122706165137522788346808316734932762128158918965502492260130456060719842009290847161205536903811745750940656567550989884467343253616173377867635523528747341566230934335816912187049089828893393260696083245440207616768355790483721750078122101458349577247108142612397356217731350392602516652792102988928896438808218373810653058343754552871216821199800870872458617677654222906699353967435244507614661507914959130360230555666205382724680554795991427936232620410676327773573705571734240718790299130352318485092631325403717005933678048168265140767247292335586540094132754434125709413099146177380695399686627893157474856191321458985261859804140896171951427953657017408651694491034825608508493166220625855331270724420147062597423872061697722257489437922595530099173969938818027215149891234698503761196208430787067072688684660787546936671627204712678869714984858905247547233093932309007385171150203482080883387552347317995898470900511973111578416288221421172409076342878134058740299846328904229113772347523871699741448651561129402139443275957421713334613567888350694371418955694316651181662880860070132147069939142022621754723407500041069124324101612174721232651159427120268838389976901932440057741020791249102801670450721281803917730718220763892195120138541439533702349859355661962682757141573949121747706457513532065917121981559432049050719729834236173515002552977554128251820906607486021180938852655343665962616292221671733660822922186417970473959590113947974791271956578927125883284525993798787941864483006322982394687543036822536813005144247071373050932787445659086106432381319883028526308901498962301584994085547917687296585452407822548350488339629049155230985790628424358163974697545497046187364538838320959984618920569913560923727589666660439304332017780918145556716080604112078886060437367098029799175747302811498503924127188646217308240403304169759118711249954814892659508715411753967650574174106937265287711280749755240721076285591873464195100445979419604915987643077241202046087464586616739421394238120270336056707356751409296452535361531602001655550829955896562249740415206034435769370117523985948717275481675831111361287120536574351954425554811413051486606657799636426097904640315731502956535991176026807859213410040365430798539019548470872289008965984817295112136296490916823922085101364967753993147209799808263603798660866526601810298660126789721881133188818656272031763064324783940872756634936913811954373702760804993132494741494251779121863304759475778644990482523685968776490600551687926934415179904041788096211287049353651081741375067618628534575199898334474935082799401716102180766782804003509994748969947050359946591327229740862674434425463019123127601143214751476309945814433857183378271052502574524235978172102211761278767500528206477413168249863463286823628375960374183423679966035065792023342741519935110403537582419705466725142267897756132518905368637849947119842385352792790225310048217201876737483005383577198476352519797177579110140813665664289335592826433724837414001913866582225220131719783496862875374202628233138868952748941356669925005713390314575089415369697605436815193173585773811251547277309919730551898883173370572867393706832635166977857381349140666655496004823515109341188932433484827324030361216012536441012692656381470877640780594374036514283876894774309112204593776525080790329253123458171051095822063469474626889746759852597832420397343942767237308573322988076047394698582709556211792031829164601471148051350962310534960905346175388323168085353508463749049951038563404904858076662738485848537372436979579921746483866132760218699102344901003309818321504928595698104484574978321422693443205237367511124353883333222865301712191760232132197762713164054409713987776319653299969448791456451248373063803521264901492055174252307821234770274217539263728937412534752415443161151397197069232555272794450766972060399013278316187854853402841268390304401677227847130327316296035206564653345924560197263795507867644051246368051965838506258631130690140908682848090163802229802951200852219583240768512380939749295073044381443187520426561348473354520477125830559637006656440945677017938964865474117125325322491495908003446325542767995498601646232443740744998773595246599909563573639589233511405546679527416771019879691439540080603010683134825833808601878516920945060254552782592024301000907350603679975732476852648275654673171850932561518438945969960464972296179158756542599704261949182054673616819534722870654321669299128584999561661869860239628873768739149024125283845359115954080774694364532163282081970643853186403210695782639470561178480330344800483894234825660355215404229611609439864679770510056361561204275292400276311557264368670373953866164770462988751070696151182027546162452962897981332974758817127380845269442862673425396606742950551754582629192127632963690611386719678327668239129078649662896833232040076983492907185519614781306510792503541399367441120903782774604649667986363704070700129818639250156738987664931588466063701124235050522320558651701888699128160049569289777950142959433537376101318432319163580333212464733758242324741868617832568174169505212122349196712127743721621492093057370302181520409657073659749220804452942606863395326166103726778468067743864154561030260589077140896500771004468380095001051582041133147619932824012352066837179810399838777608294014191020176645560213347654728503240640591505485256491918696989723542414623055866496600576267000745633615427395816053928633332969408227901975866231389022326169881234705779813541821732412535859999865319036918080221972008551305554091374644913571247804631821003651973574877222951566066433117074165608914578539286156643214187254684645690315287418189371353256170914897588890195593239952819074791564516017818675952871600957567499480734165586090105150573954500253550388343334449521461101454055393252723985075971711954384004523010798513995494491692497278194837264119859451869367608825540342330821318992932319180907622575409961474763393558216935243900723912785876919677572998978370786655290043114909032361508269542283677805026022647695514495777516630128845564706435059996609428849731486984799939326518129757407324214214784510405320044867771245102021339021102738717477626267046184618664527870245984574501733020461665238885274779884506916083785574628609896534773668257150320695501152515475977632833707662968039093377926688900731685763961382902676621342704772028666143436792464147484119601054485111156386357276064348357456126574635089829554611245629299869491127161407821102103447307560252430620525820224401184335115491212462248711123917951598052846053821705613493886023506053724150529064817203218537956296899061822859456399182054614887263618460696209351824677272221764391609895866257662464075409566322912813657983344098868261254009399305103540476931085436465247477244517764472711600716511872046757546259038005777791169110218636873256097368154800034085401836723041872211472534049249600117698150480187510510227328900987360928083315648546285113406669277156530692368945332758075558134569534637374031206287509475160753738664431494152138752288454849632840712999504342325788816116412763286516317387822051665928442916777053845121608688169422151955508643595093040036169407178418621511309269249800427252839180206407528066613642968429508030861582747533592947610080763004401799418395237735424757410477746107341013330352273101632560698053333488696793445853225365748534959925105551489394932229219504622796639994474595703492356026099440942965137601439671472805066447543241237281714311273345296849363259020819674039706205454483072332214326334553328775637959103567411079235590623097676631543074657259027961140362963576898608986511556915470360760109092976315259135359086760079232997432513204538186055508727962731522903093600464287669832787096473761942384325328265899914993306772484697813018614879453836724566460083331457063095075749021331950005906525328891407920316452910269801454442767880225146923254799490334100556830377864711576627697717666078815367910684046864407678792558717891321270376163728133499437278154844268455390936664392578866513742594926850812684091393466897478033133353397956758403929894316426257578459995095531940101505294830440642108153458579737780484172500145969510127294313471005254143850605763077341938534134121545016105582181761617637598200730984161502623943137501192053831920022196145629683752463020209724000554829392716938221420415815256064968224505718456123782597063883595082188892480656615482333676197023620418436722153207495806947058627710195489636356555360662530836682831853802912679452068217836717144349602138806107473477743262546112479492070279703310656329337428079623709245687699512523115365976468751813344697950226860053401124278949256703373631880981486624690934630175535234074721602131228261008471339187568877179671425787146940343773622480833546683921825610938484322618591835105429485910665679763388032828347349517317152232027086213146247792748441336655521728554771166563907651662794062173486492903323559278069599246131830018257262624583660442661325900085209080875775193783675575098270398887492905472820105000990019002535918085178212133632418466738927257420313666404939074289336478702700756665934181631222026732055349306268753378375029579021342899819315447735514385107732523205891044574297651963898321083738485193429657937429660051134441823563431703889096171378359603439282147391290738086663825856751982928185002078156552070086262152161737676826663354338353706410490481799468068668344605718682457938111867326902825872606022798465714195930306364776796301437709343214231442400945823855791895397356899316418211342505253527680326614716400180539761121766922332985531853203681513586956382644511144600406087065707715495417427511811642716446218060749011676450857867034139105270213973308017050327526047029505472675036093839331939087388362362695890930763941038920943208424790791640551129140448651448976086241141764740771780177837602995158046062541161130120109840380927515656466020549451925888703520961350889322545272771209632405255232526925250068268591132698252208066110839079670121491946260354660738861647441623824775429428814326200398700166984390966536272271768202392907021617390924228279846219716927727529694327090986297538995249455540376474559677063094292513738457567263458431224193433695711944476414889921912322685056489049835094219243541741007435102602271240556312186755697373338791409410314903866877985562291451910482519355629894242156839249308923657687999980718403045359048474393182920203793441880942595180382682461296744176152668921494459925024021707362512937279281020092484199310003610031148351447857901716806765562583917880698793603557531856843300249822233036580539020779592360197230907081555288269334908511165395968690217677349748589263481712029860404982214736247656212401846817653992230126314736851357244069335035755143519551701789055762000189347624018979097041903227142550837610322828028108394973269780518775996019254162483076065889700258994756440615471806619212441120243052736982039697869643493938088523226390214844101999936259889770044386622945448577453910779044503777355262902010894957812677185307434091367912060780883740741191636426459130139994325884626973218798065903372804158010701737024026871229291660377209829872386215651588975037956011764601084356836845654759091493399057436304801024030634009176450629899340707195842921825077380780064979533881429038542865371869727827804597977390777652565217444193965750557642533468485142200358065785324958909521174773546865091896535039745229027613373902154813674880131634933942942159986892367198238502259091385028762668267048613445598917376875131164245094644177919920603839047720173632708250818024824353166447343209892751262238272799391439938644456230509253215253103520627207701612196975786224408127553008320838958232104740330645080045769698843372034045998283569306018366557179498379185513194252866073750103880492881013722669382187824267502630292530310640714859393598805014684432804448699799995132829536981835951182945192082635147994001958540100142708936512130746639888956903711682162335920519408048778379198156442879957383848568367270057024151849580397178886647131935492353762362437558853948972920221035486155282629668593372745441825966781567923496891111168381310007910413561680352338558853009561470639504560318854628173212277280226383712335556443856536771274741002438569248387064322432820517542367439768531773595959508703194839120134716291055723423266309840201893530254858834115327762195592647634479436661508372095693608709311889796003296749814403933628754114998378715186217826519009494945079726226284573300002479364747912585681152487620109453307633837045466874175626541336631962247955371967648580366619664373873445284917645268461257599999313291188016623084626190285851951482357127918503483797158050815816232738400918917382255940694868001646383999350313616912745832591941282966856105366373444074175931909902156029378371104528702607110150381722916206043460339515974828245280721057165106591737044408163678743012201636706771946169240636473548392408404451055689426500057270990937852374749258305910094142235543631465706138381856610313001757473508239165150647437065123159453094684407500139168609403326835313244706750533987563228296702884301081259001734888471509205224816102688493335580355312454547695027608426658394006739719247811157832171143556526916622226653045258953476813492084488437315937359972657993615684968879211128252406303618435625164054584295651886493182638064471765498997569874451881141471432678453759503772202576987499619100495943103884423411925050291915614719278395376213939184969029017544455156700076239817042880235796504855057416138803794576152812667606463456838377724295099313335961189023641711240849369095701813014590345637293971425216055270411962081553002210903020159230990154732028743203143211383191157842622103601994948397154978064421951261417050416042841445497312055731297299985184196874406073556406044725877457246259256682267242286227545889387778565880159913870835872201864136534566811786991428297027745304526821945281701424905749715674834284638201290670374022636200200422943736124635641227144017284018528872661504754258970807698951379954045004500281975527884470985096119137658981023766952087322591300140279335354651981592547360252801217095729703331267974050818048156085286485118359343458226163920974328578402002208797040889823819382955492138701564498666483717200466399352287907235592995449225453894755519526081090168921431201573414363701485933230537282747478798657257225011015851494703999081286968344456913092242468525145905440902358807381547897718022614945391957775534186644647348288136205470738593257116007460019899802678588968821578031311604564348329384995738668332121865047414987502219197693366220491648926457035185289992255685953831118682434045526331730685312457171345221197736264533986429315442452188356481434735019169653793622721918490199265171841257259024022431210717168826584481259223975350123746414116771800153517785520976799732841450626758808558202848204809334682858212543100328233241069165042581749939364573020609394590272287231543959178260075271646838403989048332793216817486961843385110713326806664094212193287814216676864196996732119240243134403439740270667514869290810509526387245053048503607033702518249335992175367417462223297550252989205198472969606286522673159185624866960710411936552910804777190827204214866173955796280458553515377488185032372622746459517118844795392114202185240372311131522040119459843830873130929397225062867584570627505222701430305380325509314962399571845985318155219898446033524424764195636659154847889559405737310799334195968214012466888801938862034717847987587660460693804196648107221624047016336993502993219470339769801187994024738844200822178736672549012696786900339207648739472765466065730450016529457440697071902480652222070066427675164045180152932711774767800126557691802048016210440339216507517001466826183575333557354109848238485135651153509565878505125853028251758715186732769837661548207015930978366454352346692257673294960243954957914490118592945887766846111094947589971638452251595955227629661246583090040558350655831761831409332915417829489635402692282533310538028705262464661047277594953930766984950375974526715768551806807604083357644481476551293207297791656685789300738626723781515575854499057526921096601770324547387601408996454628551022275491124425135075229693399046581327383286165844996473157898042845937695267615172496559535392599130499084374483487705763442039553958333976513249432604244146314283894203950450048871118560978391136389413884917597759681488478328902498227369844717426734401774170396329053339942168720047060927497584010184854123192583665849179248888216699754633362504389293754188602478300887324524236901612235048021219527767479491838651816044569730983189094045600964934548187032344381181667677204864576222894080411156497090493968462920519367075554331249458117215932411194355291591330257861296379927788683577971381507382010087149248962916418795892864592402237965931497857390771444963391628278839532355083783117227883722137088819646729326350144659031402836655993266512551397224602750949505896730845709427618993533083337892135866999627131259656054086368593868194835812297935788495471656341574310536515128058951626229399187739560244697342078786831899788861956620232606303496937281087773992027268232842873403320528149875240850258686484654297543423015920740555376346851793916844215756898130036708371421975119222150033333638511327531874596898404282549382330622499441203843086577650811374999643074817391727494885578842881239533871102672971561533640571677785564134199404770262037303005921192846972954726937148722786828562638464640931972124789884319793157424299777065219738574876826883353205859504110153178921453054543729333055559656671985393927212214862878456970613995491454370259277731593146208475608275329720075529597733987403668485186414175198486697827415373482816034874401109502322614385448734151215488943195296463261256638782429546776963696750170227455006459925321579626651786464282481194864741983893745805348966631048899680311897376278522358816164779748755342409214919700736160039679362685685069471259999308869253823630865194902822822995910916530360504719186633703473192711699972383477532763318889300551804424998008913385097646653468159046018531082576666064559986300150986678649511141849765958652078156459819226373923580459346325849735825443528268398857568403117055449179308315071196545561778081963819244804535328073273543864133374563041149491411841230034028847325633694934258063907113289113024763346510523124554817422261526884748570040993459134164310554755692487961417193295218397068588619573117693583717690639698065923875843366959886947981810178480573214847698730082792927603039668624683867898358855816267038301754326845570165730738395355119672331208467619173951978543957779189729990996209755531970681045427948280875336751108767399180049691013968167531636354302155026251028752817557040562683481825963908790312290693403919496265349920376802113227347406330230222276049961928158603484702891332526070159236006809605558021629737053523876058276125432277562751489183788162437131060654661958279646119967419184740802578259805093349303198565663354770995074496171674733569782613193532088865478596825518278599774873888075791694889026878806279352685704827240391603269749775024328591483226201731103253986970170626239465721971042374502075315208026671854916662101106499046568945467546901047777807100143622418944561764004754845132368308071247955809757294934848105140299606063166560341949132912392095043192681712095249347054531895304553571106983869878582390023782795989531139897608013960681954573168151257958963091669707546888701710217436247873043598457036610382586943395401658407350092085200449730634824672784426607590860315654852755040250799211714212060439561770578500197677793617202825667730509442512696240302650368465724658591813116743481113514012980014746126595577006437559089848619140771329058797867987410387376066608575446302469809237704225495128686850410032061136446427603371287001049681716523835465680842468371314369096631604318299152572813400323977009234185655505629402167174561442433617163049996631852739551951090425167168437727989185702926701860608268637446372623876942359428388696005584728210958364272133557356313785684244353507589612419963345987345763947065414834410228328190684650171961577110910462960323222288655862590032840200674478135038785210935873803895461400371750137674225524102674598145265948310615232634742675528693405206455170780786555654798294030032147815488016183342267282772301083195745346761902237087200914914625020623074470167090171965619055150460573754535119360234607759160295280804504420506291844422344153880000207813789252245477272510628151215186716057456134720894111286126691205601312819149215582936534042948869020918612509165843370025305430212513984787166953472850098089738716883691160025279801180605158828030220907891459149334676913354861016726429949857998090222908312239449010043710602350323687478087322568416464716012156471691602919868330933227778837297363862366753253520775287607879491393301147878982599002401159955398511098390553648314324567729932464968032373825382240197990461578769445187548999131208492364769439634152349644268635119394004472301510268371542134221718862384902267391929028011717464880399871489119802739136592745962834811513251106562908312772504113973091584104592780586499228143126853545881621269302362057431012871579885625078549327789877713537568013546186870413003624658039453394807422825006334249293679680386635880430550213378765152316072351688390899997473163563406997553377725428558718494929176621895423141450741961988462380055839611678011388988276524015594597527216401670572032192428501044835375826677073328995377465675139786756891789698263806672300218376942342609093870129897449974849944972450685732793285122949265886080658926191362624665582486050397252260745150139556748598821177819164636826186355613095251168309556104002877389194573058912943732700088027510786447835422626362850258234923691847978197522952132589766033963588267903282846930007831089670942342488837955371420474572763992503442181540315920699150411373253834544228725493472113363098098486322261020235301276507478228941725689762911011685639443901769546825343184114235009309501121233419013995873297341692357989064366525101676796769676310519254300764028451602993690893520456779404221681458232046445697916927125273814228413768183940451491926012436611610397125321611768511432022362326328601882128446666401388532110673116714382449857811725287648292678566881283738923463644898523684551231028639295930280226960595162252309267223743893036763174648951736137676627310320084410127730340491251869946245736562911188563742438851515510277419033387112652909345726581525918569392160970174094746119400070754204858272171486024160931775075687950685032853003871090195371356186597531442489901935753800524260190601223197665811972791351498266851499283752044205743101884386302111657704084399735509129689658897045777060495868508128769291683578686077111272170817767568150703778758945041860734983624472350883697765606468745568518369129333999376332867862722333470258017665335207898189151540765868263792646582589261745275356485968404199317191125733263956523242176894617394850186045180594754056691076368328906737473793394042779136636860161835660507545125087920064787384642318699882977012752192235211738753789657424040052873993835357475268643009436612167519271419522593929688746419409889617513555255672624997502705903202043496042056640317176958698868876348178075401106935599634793699313980976150773919575231822265546221637874995645968662648279789902525457925940395030165208479135951726106712687470752604314293798001044245148002120215974049986565221865825786342264487743920487235216420273649791819691030643197453221344100396549334429013045708523995473881173658057984200959821909226012980165051937864752678626114065942316225467235531043507208800135684630900202585247887616239444181329973394369793097049411483018686326761653205236631184619035242402229516312796369860358053536382526836348433750426727910882408105907833034147711000101540046030977130239585713070630026742594161782103750140530511565387597130986505051448038120030344816221410597322199826387756827078795222227823489134257025550714062671167943945410309395846240815066214957582173697363703865147999698119290723697647964204625936539229858879889519961625783874298646888614305417667232944410035483010394825800460977912443995537598932224325020288227449472776449475204765809740720196235922130277531843157215005482364759395615016232925930799654924131309128707603363048174722944832737124341995486738114953264683553033371354791331229686809444023167192778743088528815371355072529981205127952989096947036785692153306877031176743131184159812129502015438368822054550044790510256833254983890757195533592671284794128509074056069599909079529937635355717224389194740538371512871246183062309199989641849592170558283463591378095726830504231385474679894468862052443608496171065233790879651071979135814669497786146273286849504128977603317114223325974898266102920553454100644148765712570575847109665628767769336603493185263405930717133536609038706020900420820678928804481742586437804436766446576028652129835337003934276282493384591985347809348594825388543179234401258252445808272649213115150133738301757042971854901121264918707810883253630720084822309247455250243201025424765579536542353578013960635825890372857686337750004136299578187545912101227880973603188026407750755125683813150382515397067849272776504345672489267795547252871149514120907643964235727406283179456903571988470822364712124020865328075026984419637827012832838237164045401540183245362800203483642256782040608776783970744969906069225351643608267348840651847866875255929298372009511349606950251879531477056760526227622599658662481440365036406236116448209697234954915346804205160942255525878075659113744280483724852778699038068024265166567467593693094951100331671884155531063029274033769415427147616237790786483990067364175596584239017343127367317373786389091878116938995088619812604513292166170088306784622901904460593798489178567022228660996781003332335347916784604640256072709529827004655955273098888151401081041901707553969357603993600676655451351715902179753888368045224057024100540673739411846940171630192593897655582073232085552114764979171979033869718572190689657527488015982385651456646893551182885020388449637949851499741917713402877359645709092310276787864041174722336106266461012583344408199981305074588562947716473926802236535881733711938679386903464471151217034128855337828231869000501975800615882839854414167094650038594490615599194438145239070845493728638480770561360502120188552193360011637189809512705021310791605087716119609538214085894293444757513455570668900231776733468659528140273594234209950488762114376117649057318344519774847511027758999134321171517875461608020267162594075762739646751148057350622568612527949500290591338294632935717937896036270689083553449153361523110994924465834648083615327175025528997288394158560224156705201620832021143364555896943258504636627440277927262736536840766849833994803848389858885365728401646250694256196284517085442273575072970329808814214373556899202616475489670837167599521756445841266876794588576334660962976763810290783348375250138891694595889389255894821917636798510898335538185823802327483038791744095034598596980864323103557848451078516924405604503814777446802758705818938443613727814388076247907510424888926687671406422176972358531636998973717537044650966503503885501111284157868768085285814355917335091663307318816888666553235392389747693501863234976312507886115518584175051315328423207080689969542800686236854564268503456582039193999736559401968028124559511580579493826851186903898397728924235488678198875997074478800179339650546203080302952110909027976280856940896853843519899417975171415762814458540290331756435799433355799383360864363308832344476150216251979640074507690570106022891308955708420158961826824830630979725731715385943571117932744884031790222416481300118408747603168119628430023981463511203062351250355159688002332387851810564596239779285703342950491135123763482691817775905927932354112105480831459433725433960967274025155533945316612043105408882028547012562313080390065511059371079186072749732768027197668504366999687368791851445737126942248258379531034438264580889375041535042799832696304545251980191513789973541053275073784013998871044870902318769533683466148495967150613893953264785217001278727615311730084755830166980015467122800147742879244939046680220066786331411376083946266328724599446253050115147469361863719076155882203785009965569353296071240323932349798435946266432362510497494986095298243326897946268557489404534765740062050583220087048524949688359355984874299325140675310038686883079633713948662157344398750594580427471493561487924438244550742460650463722417824093263586548958039857389527939925013597997090998718873574247131879672153949285651791919292502696085580921369069030984239040232745779263794162218096492179691809018766841647689826720085336301991569940883037424214034163608047979400448078571933096094426363902258712794100009931850252314824138410250919744775836892614176792364333370523728044830086941351088180999245831535853235058913134480978817592245219373439912541759392300214928766492284705525983303468810407476274919171347320980400472476037578596983695492393347626186126391922567024745871363275087714127685072223629176907003577505528699629626826169424829011506698102371412656215647404153674221945025273517357190088666749235585354113610113499495636855400261020795738307029672519112733440060831458760841670895907238837447206769758214773765210236982766686884501950306015837815369608916008786280955650050327670907505609742147613647935221898585015338442147108794273753372199813113602029696654173911222487864929677917242661893100303795290449682657978020602112973709001242347267266863366449891198689916549357071645201227204677775321105825209404452866255406242032950359220727102756257978766990814519117189504324879184610846177856984894694081967640205235339689597470837478770113488974998079341740413511845568096060444634431858762889965096322264495697606624906769442045496929791356236477029305290091023752342063484802414300156339950000696839787735423752551820101283672260162609708769205102079761114375329720136764212807729794991696138760504867943236586340673515998584093165995111274073180504548996575485366577039660759022296171697246109564450075752620527941989621032157087497363733933598841357273464349836894256219006821234944088609836946685649156013247219265736002426410478178125635991942829301994999806527949091944377454846344758788092848220120675250890823196302409519934130941677705354337438373629648472563557396094112290721208380233503080944365063551684788651226130537458589800182041944575370851518265885057167603185517518793186118326213630501078475314518124689801859227070924812615098591413422831471577283824993648494548664728921953546261924317293089947038297741653926958960129130549268132969410190392685988011496482342376954920725207364486334271242076675795434879887018908472877316170070416360653128673358847339254657261233971114365136611803508347305583683872852407917811598941220707447663543432426696811609798934663947648450099896773020633996063817290242085215943458446381156108157448241483250533731713809516453237614530221824930969885912889239830366615157855952088657511207759498878441099874471364567701888037521044876174151494492259132708314155571530713813022789764379112170206802311052255739325648545719294566340758058743162121475159408524756951681254904217663949786147658396884436058751774793773974626580767505635386123943428054536239438716987334965459945353271449679710407938470075154778522285468142101110485601818117486013258445165602438417836885785620181322205957167632697215891420540926578755547920774318521888795131439564096457220964869210593169360561124199488197071676647222496533834072772488950552131647401496766087232769041855026094531307175770315814745131852305614655860691959387365611076616740572982758187085719432255928145782846175789822174399689888040713576120545480911406313901949097766319631142349088400174162779344559660498986065800387622362925517384178221635289328809522128491737070594169047033948339160597862546229927673710413811668199358218469948903905852118624360460156566512559071721423316037764539114356873871120925232451358209859539792372823559143226649715662366787690934273795341541277133281877403013316977041131871012907275654247915660595536961763969837323835139632355864503140386890599005158702358139998811734789288388086452395752176421897140657654832796652542386682364353327386799243513716097996363625296508587603942707584103015882245725811063186626169651095170578570471237476280346662893603392277550297624017748763165369044835329486841554174172542035074286525852203768380414237636084632566003838312939774009807186673986615906242050547327329630678838329323725437349069152862176695383105272673740878222532029350585729115332260922348455093908981606512726265133820950803145680422861144404095510439666049286382089794917474834226097824953637949109240710294104128387154629048552976912310022178365523340046637947197647430676578968113562237564342919891045383894363460904718442985855976307613115289670506203555722443440695511086227410919337603164499635204571051415690855551354354595244281624299097128109862809689839537785917874745463968808056074607991820822261328291304757974500093208393270405134723930592314870880267135571658293665553796565839913164563463240897250978291563309081897502310618941681392433160737895886210940047350346877131397369664744971172659493932762976536350024255375084904635872670888148625349776164129407378745424588522278539217898140574517583589202177120750393564659996640075479093034708754364033823893996156148296518121300949487481482027331116907547513336396707932364065083856147501608492321634691800097343113503904012152707312635300271503166035289227230482305290288295794355916176488224341889673205775991573282040824740596312669197403490993971840845842245999047635604009971149610622129436110561044547198797755753493334001336753931402067130693835888386063851167294992482826717112839060874410694509491698074231340710053609002571279974319529573000381303275845690175602265991233670380401960972751830734212999853608050381249135292182088445289148963285963203600122112804447259346674356975016482021927949172539120859955606702359830744668538697978897797505677647987817129301498164385729831700327561921075076780525462505667663662976984113272841870267029450079196379695160245730068265466152440205180945786022126518641283698314537465014496683331155359298655371562813569926458452322875761912315195551674372051901524157928068791336082256634624312565757796749334203671204836669640640416596439525591401014409727364876016400046199215477424394992329828303774298894779126299119083523038162289940530238763975585342428472055606589117262337892002255821157284332187462265717924018312172433985645359300148047257594923158485749633941723786250805398173719865929411219076416649897706184833903807695765765030733106676252766344440099916536445998454691032743263863724509496347435399338591625887740479500934638300442828637622207098345915691421846811946105527237220573114235368435462199897999748275637291763355284688861974354170271630197288516271266890202325211835701984729698176676557302107919305150147777248006155301746801434575274162482762453722467953089623858132639924884703806089631452214070518241272846021326803622412947188460337790432196471139333886317537148910771064496477193771939316822436268073445571829427358510935562024109186881769972655228884057266817841478517779378086404185739739646636990372946647016064090324146512343786866877594526291701882257883557549401937626116996830368182534272653368855695740713039934657565709042201192227829410196018529380510437448236770766686388337926409696416931917120634533327608154926251670929564322477244657612028592442554566667131336078736805159113264830949120788751082982704140964052416690735058685761065230323891143116106341449000497483649131996450480191531977736853965436472325378622265350798661719822435903945505740046062649456335885964776978587791439210017445346605372063363965712611573762197451647847962426911535533640409383795517942429576935479196261324957856789652714343924057992045304939186074962913085191587954634394504766936056061802438194058184727178293648565542626367008197245910681148464620016022188324439661080001258207577101809210717695747653111010846881280818709721272561575730589406468408747520366811111535047450617821253293132955861161224746047119975481173613836554953102981037911598399147918442208974685238428436598425572313449555844192022864997994198629495444380831652619420209885215342851931005457248362477587651066221863067010521542691346049969863488518881882127485061657624893976345893922864770931478614705979710871384143167389532293097620504895967224522507136679476152444392618017670817911239781548819260809173427325423720611310880624994746560939524676138872774559285134603365133802573461526059387202149228233594694932175650039855697874469718992659622726889142604865152042771061801316242834278851253012990702905032633023164848958613877230768609564856529504170108024270766814975319039737213255708053912255551995699237314782057583751425033787416227097235162557026534620761082407300890011593722662725458462639513894547121504159483451664300547727811636470947151079958683694864331301980131444727784779915927358233608061879385058543644094086009761989673746412959760207921944857872001181920850497650642169888937106073576350235327727342219876016994441197201363628931327587832187453659374020537737807381293056428704261852444345290462097267431399703667042436824628312586863183788695635013232148454489049651228415256008622706095450302023631663345016885132279491574899470385668751439043128765076628007865054036954791470894316977856981784731750646860971388473675967680915718178996022716047551515915858866213739550288091273812727590742718218221967808799282296090409057455817379328681826609017467380164262687685773808926762684213973608121854288825089385775691351382222159764091731429894016596394630636088233199773288277760988232505237726278698415818346655417537864073310221915619285181556218708020519834099442928574903414829042808374019888757854242396175788464492155510120326200505876074783896992492565588353133815665799274539530426287789575611683744662881497247577966510396991598013387439770354871442894951107830391718315721685202992956918920670502287205126867776899778941144582105411274526349800315216781596567834817901119062278923728573254112115770607302958912500326911561372346208155977479950632961156551594112560947053140749670794999406126355937757653780200002983716087942570110418433990547518983170671918048223212081884872376595560665402781763486894156573347999528369955992389295197897248936017599889671686805383155725786867250278658976228364112790568053106492749002678628936716240399280374235748315751894307323765313766905080383390814490753084595598966425004130317461655889854447979471389531377337025185916968053151170894701428384299129954110548982090385253158422358579228930440873532730408272795082367709845735972131363810962899286525556053447828244296992502963493483439116720990782480595842499670830702795481117343845225676633592680271350662063490070934626389469279065551300177348637690928195832584882863592836115018347727143260881916670973220582856504794968742459698991428165038914976932174416891986169638075138957202010749516594762097076748348228511744704747587574729010056153508981108293031068579137932690000526756322403955304536129924777275429891257431856742687834905242879731542283820810184775472107536591150925234036343415916106488987678724212603224281566300893859601370594406588823157539882517576274460467939802622725602244752443712560780288774397793558434821118420667926317386373720553155323181043738396606793977361049283154805185504559012903503528053092413746407653097102160152519142285222157372985119036715269451011354639084150339478300777708083337229585561571848884802908301117604150448321300893980971234330685724526615140696765958740156994188148849870182852367061021370681236417883387547186777244657276537056961556837381364405600669342691555052112729354490953903504587128484903776069740855328984064192170793583041960893424400229800186465721750067385176830479914557029934528928980949255889171680302561647673028388077367900897777380485053499545390589339014511719695324800374297267446390302914509867685999254306233763765390043521863615476479084330025560056783131326732003418519984668733595812840552236039728386148470033504324068425722064183409755161029865680857897219127275956393635986431722477720400297630188678418057362541969368330232568901824156222107877311253117545491445070062421123126070027671796775723115470905656004719867716091365264733804891206542923073325555648545979721049152881368481058601009894994507815669756113627697647057705181156929019082812347845595553970965464729793998950532871167896007515985502096053368413364826911885540533869441184097819576605649056241903903828877763701879450638066681761528784758512882116360584894005183236442641819776302820566975771386513275981209359468073371464757732271680483167448122689618189058582201435226369183048132703826820825055807993469613445400368611111633077441125412660379291225873782552820830182279415828413499993698442616114730905801146681708330245566074840851667009020426218106440823843671863276181032751723138042577220376512519836424433789370149170253178860417818489769673818972312681611598405390783236516530664383834721732784411186396310437319830235912016899954369716867758107596540061707287286716586269057867506646025357353893013570018330101474893814303101379395190249388076092471014436497083100934672194430030431669673088925039115780384287947943004736796899027626129681832010474231279364787693921405689662057652918207013973851533722204127722183165615033173935499705106283528080030983276583410997160016488013486757379044662686933743542713898714550156581690820813400693892444089024538856434038738150931238375810951615305900301204122560243081575340313282290913737611837927158315540359554657598013779509467325613011672099216724424522581413280401917556878730756162548477962646311204725343389832033581610371678076312205538954961477447575541481954485637059418510308112416824910887425975921952026527964040474314331220916593464536095215742579061036418391867817830022803616543343718507502887010411104228803778049024828297253487963622799283812417808202780654622126583701416936446186310966789359579152324074917917272560283889635948906327104065556785211735724356366037714125107174151797152877736637916241392801110617780616998833132995644699601231506224172894767495849664039851845588302496103215763533359064305878419891775169230517685006455468708614729039550784781117665482938919394198860117323028550428571662222069581124511328697072651625129328630435202074205431738577470804378557777911978666834737218742337151403869821394191222106982915326076555824259283329885468222647648472570035041402334888753796237838338388494476399083583401871178559686258966561880832801575939585326238806116766520089265047595911279344681285475206227180872197319175282892789676203589157534910555205221519807172369087761242960183094956850225014684655458295190876469783505105608776841220517454562162917971248996245015412630219691653666215215814561380891960333075647767320744224305414207638114733176756415317324401779670622537380493702023028430842718950561162142922342016791527796745262196364823354971538658382637963078481216809043054689610430142450761393915975959858519480611482736013477324383578876335618505290749818123051245703233092840627231104356825087126917266455779257997658254550544036413334893650043549802455467811211286766891049970780371262943618736849624180443913600355289257724491129307917111295954176322417335166392892932912696618310949007589444087305882488111500671020944267473783236611807679077110780314792930160900481828826415026058245075560682148881414760444730886467980165859984256768558739557400664006825571594186484012355347125851316258005751982461601804907384360615047249921570339015732659557115720940736125470819015180041212163776912801954152360606050665034610761661411428291232123835674186177283187232914417149468292782473926422585598666260243629250949771264697765336501546496802189171386991109625897695414463833812115588911734611247925308607531444197221725140079111760491389921162718246037093866635873609402123121416980135147803950023986534876275660805951899694834338821520926753659037619009289560196941659071857183854251602139630315345679123818754598382100970757508215379671862555712513106970176842380627835930219154542474543077906416469405979035136518508853757480621143626454687209030750283922909928546937027011854015781423006116406335304455329267965029586779605954888757486572717698831713696807840568636864300135933635068472211509763878509837722072789854441218023589418394761458224795650003976823233092400452524355773643723258159836995237859077509280506261778645165035154924718820684458869874720906502820182357610735874499549752768807338705047695611084155089002497574061916109410948320889057716290964980631177978071821919363006927588116024966968297177959085232725904508761612228566839272351042448847365347151366598125946552439465365977429222642710519547398992358985823278957396052381834368193665786377138130842418802763789464102084952430303831123486778752921478097665158845421703790209862837876957187365576019825535253301894705734216814106755412436710089997647073243578780362625755342960057535268298071044192620793903778517883059399915595263338353934048140890036228757092045346547953520081631266579223670701540177522642044213016745822565652749118917782619831674289674617138436836632227113773449112745772887668908981595442761770831144460083796785094319743716842398125198822280482837301465962108446426981982903653232938654323512598496474661074738664985139081410395971472977428393581144451640911501215928063641120223086475058078301903311131085105005449337978569352518837639190800320946101624196148602641605180448137519128349915525723076622695320587987570155207151133088893209426482461486430672042067707464796101361656145178362649948924098191200914555597908104593904268680254200206664822286564033401300830860132334315175346309221308746786005033193056420328100634481169299137285168236694767484762085819867310412034051901910697513912425446575912131794470644915625852686367476619535766866487885667667759547443201851709374664590782778162890842937555248027854856718511613767291434301680747417050266707203454333787368392619280100673469230421669316154210589505830498889513836563835724781718949873743626991197286111739711140156982217495411476916255677534467571958376854578047588365255148806993891337376622068720888790594649608696271044554966434047721600911478702200776854640856566951730093276615360231217505047610588649803783273270406401375436688123189184745189421429153735426748308212486666113746703377769944312048922628918528935051815551106463372885381012078475662864200947577001774225333345792761778653140762459056983453599839460356188570645281093691901321141988059445729798628164350639649106147246066572365574417190500737125740428857391400197105089979284666027925583194493345138835555563067800594180970174706903924394923976105350889117670649222415490377819919108020250149142015343294146714564018379102301266713520451269035547985262853418554590123280095564219738814513569200947295154416160752576286155572500076430588056781133526487790923732619635965704087950258709032645142793503957485476715754347905046443826807845694247351080584571799842773486080596574211702945850550301817588211406734092403520284717609090759402474009396767722313646082863045119666299363317359011843909551581940445661968274588834818214572075068159168469035067342874057760417324070869917797942038544133811890507471248206382097125403421314914670786727785685786994167625463850445929500655951503084617313317320116426446816761491676000197653847325542967294040595585719582400193462471444581552919753023213903484714579782679766876790569187425885163905329010184329091368820318138543882507733108454411338381377146747927575891575251362812074920546060967970532097730094268472077325735582245542660950158191140922821526935535172336550197416290850112086596844734704017426202864939586623716409448984622192984934336905482643107985601903128065845343292140352168831177734304841109431349737309014780807211665534824104719500341308024268610172757075830136535300454741843450032705376899642955821680071372607463988486281847950535687660717916902607454084613663104061027674290780884346795144491389585462302150273302320944757006711140438688006043661228062296026342874831502327416383273466168846917987226333806000657059791433709801204467166097954897248560362133196515143190832803210888184297261946621198086363788100663162885199907855053766053976621375194285456172356379321729539094433064566690322130595275831754880706449843675882206267142050233986967889679315263977645175055648425157769877810910232321201786259304734415019251806687702617171175540485811253863683308306306259185729014213173777228331832712307433421996131659681414707514220039542565800229539567873113063071559187781649499721338504557311545064877093430095805059181454739236997135261260996623828921954456476083833645913069943506439645620220516385649804499857905373477769389527886199249411783159242723752860348191525880432330818948331611347174216306379684018332296363398679076309469618376262446234967588211367058481427090339788999805941218630118624655630533558927645228818859841726348457135814525094152611107486228513717214103263566339812962219319770859535000167681896429166447481195302996842030754825766601949563767191912234763167606486992594506783231369776388709880550042790288036263523372484832687882462528039229993839596876613874400035091598720048758627493694032897405736682237525800138299682679984703208071227467484969633362195273329893754791900324186337601753943189857387850667930385760611450979391040509657398850811596435389848746880940393746645132172836845393808247140291489813742593856047721888461393752485093538266298850711190151733409190939134323180744992674841819315902781511718669690572209956111073521568748680151905218010673468576092068099393267348120345828367426102550852311646396542096858830899993472240259681100937695733845596581706000508479559719202916979899859616918697569441479620994770847926424542221872677056839575612699843512199905371598788620782944512666843149429024841159993316908573367845029812010451200078149918910846242483329161391732100112261117682638022841148678580784442241912484046279883485935812434609207891048459700634970539849615365537028619584507098839313390360243983109096029887117123750645457460947765315329720716196812937281683547247378605038863569325079872174822053574829262623896752549946822206940830006194192495740510775440361002030225398304483927580911555572029523932290285031606696644403654922059086323473028470490763790272646224651265992323849401808399827176848667951292279307895379139670659622060901915561026902155147407432501342820895076079760229907742380828150414523702156237962990560374470149800192166189053084990128850491478200880152462173787725686538243418375012827969123833922955920658693156372899063170413757796154077274278947794755193545779184542912533132687852247920141475605664956473473590862989654467996136620449798857545015565289303697519491560085594270237630273560560430341327676270377448800656732960542273639789364128384854530185631187002334784801132838245505792490707611205282868455132432676344085984045720046674376300820270882152033681020614173032359427214221913699368864645538822886819478086924016721389629618040529999706028974945580550806973618615030738368531116405681410059556052015945011161881854691057658564486328231598042427141201722653833089664160409260554534431557636543803322628334652211523933728384151917403524569482551680136058102374173840328667914218929975052139067000956632267641590722880632896215943383333968845471440553959843182323309718430498654596074196279107104768782689445463387056988858295734950439012193965928357590146664795113043397002554781091527865429426812673037986598817360765768707645942746791647799112264031046545306235647243305577265781177897958758605274111928019661163133245769449755897532687610585709113726488088984720418049547395238669198158875780251851002729955142813753602087865654967236145723460976573298706512712130838536244197625243003079373675218135224175498332376230944097383551694675244384912740967376534134664465803054336716637829106056496486707691400486661282110283747957066734092627073392210985395594719464791218717391183159372279799311817589206191345331891315658827386369839169878863009133845764249997863229245292115685912278989335520312675422268038722693961120142616755716746245991855238973121164708873373624410224393719925991426628975991067600842707312029570465400045297519788513432625355433742166377630407065168860876255708926327159767452806075733377226836312461823746422051319652448466987317200420588688199794193932936158163116158915182333485670212734033348991402761169792548291196385971465825166874170457741477792728282018136031731632636393562466181949446967569608436311762715805935050194506834620445359179662218571466530504124042159554592997437176615886441307774884817107305917320640077772963569870248620947057750150131813472111756193391107674352157481281039929129848575619944452878563414702784008515219558578657008333292994702521379433484968586785818396391971000299230348134448090878241941351419107954060786165388047547883830824528037945655003831238142994907272499260550589196688667916048384760087148859983276610643132106511284789594504389586551819197562293902212441590189340675525903411184224888116717883611336591486074112006397639331580193493702863620371313927671271413479159178141497492617354329497883952704251514765893352439068359233500396737123216387154998985838426841776836130977245422785649965914650464068065792973911128617288717874686020347011669706035588576006184903795570267780591334439372346471584906832659355159305325824356370664794046785788674898405019240069352542700204734910668339099072234767272834076409086797985176009930466360591706755744285364749721361417105314407849726116913502019144784351547275120890376724819654447313321045794420156416005965078714852552523371822705868202686080176243325196999131340838369508514962880937639463217774000713635546980900391767278284998843720168474714687445727691655204155837436063637591548645891076734176603760202481535439023790948073816683509296599056418002336519562358706763465173359117003640443078041963526652436382375245076283547302289865834359390161878226624736942937718036781420688334140165156184215519710040709125143370345726917380470855595258065112903337419397358900685325471948725802095838812496209741300464207488663612775648800367090314648422690258197429315798809364158354130396909258521118338817603432259609507412044877975805441791947098492480982175571646190379065364904440520557416933167906827467450878678179833496593796929047155451096287033945180851085452380667851061099380746425919810957836967299237398873254096877340272587479704060984790747675524667807682480825301522351924082755488301439713914929804704122926916097603269407770840981868740154785981629752961541912088104803351705480878112232760526258115607489302556599974684337745581505763984578513822212491099007124437342007113623787802454700630763319636053206150111883326381311407886996383161250538849753957577984680544407934864704863492249515935316406547262583566490812889116167022704132335377466357412445516388373321925706985353973406390124727699362484971553899655006129607874945430884216015372211701096655101298838756139089671012115805061340910344578833881200117063874428293131412571079477420054730134822558601814313799155458782106398310448067927260012572059346008385377560212478571331407407682399209181883068124935540866186493077991161090322724969075099586942339633374750805435835588914950665581314801516869172409261466569050801132205639196709205023309867476546934157719036963883479835806085287856718264423909201443221065503369598469838265511328248375688600194985538176224786751881538668081908388818836143649085275479624028269871620400792642314806830999299072136104795839893996143601155084789584540242597832708949317676022705714460815877599302323760873715475632015923700622040649194264110394582893389250848047683010543323657803841324022543602659930781760195451977073674512701558199233183234341186350957423224713368053075618951208148553220793316475889980141832496467027240045391965231436268630492788680753399814945438885198530843567525967876263888752021116213452440726604042911667104573479963924087759384437536244444173107792862744584265109092653381202567328249500251706305031474649012145384891625175639307938656575643248154253626022592769167327747541686768730791131857834246517769081160252161471265693754599463529377479929486155981359471567295436885520912637363402398001443119187633432054169248303028332398908298339703565378527295466653752251204402098915099220323798661964194415508174615327769760406549686086769075963923307141973398200942115052584624495141172882381864302707834924619400020256577171436864082396433314934270841357370804590178072845286657940386586214527296384986633881886605480328512714476149251618916627357382747708064275515261271735623611167502419508021128822166593399021451444052488787565242210579772183406772496945543954501099063724079061768385022353444289978600829206041978648861393223188289620299097120607643997044595199878403828707652378541265267561894676058921847987665841738074343063252470897950291713944376887217570233782607791975840257291084679985611230722025177817242440064299501493629336441468862085698547021606987220707440036126057708682219092187985204481958201837724345692544260754375245636621145411305752761415871966556151653436177213765966338539669245694538553954124629391390589693054566123893347474918157655672804434013187602327889323931932795046249094934792786571787091361545508259364355268608696917272945515197313595769720430821700330504055842438174119603123341101086416631851832730645632080422672632474028936720891426524879863715344130877170421096696025439009974908850447190015987144355908841573148311903318201774152705891109403088307219319391583082280058512695168019248456880307170553689963067700042714361339943036177158114738130234570498183678873239064808384151184549268193957525449388739886124729179859098166320815918366844259492618162347790821291026181367082803305151236831187966904875391734577052200155725452454434130133339817290069915693551116911371521840451086763186527777522247128513242039161092596367920270295554037580873305340454209625854055952946940385696954805762463819131494694406440061587906014748461562999169766818411989568707108707059582852864533817274094397724895204121146781335775977240782916264814432377274967296153072818885699505247983519477308258613485613039538602295141701257458487321608061623103890357852457482183352401874080968767176982399388781669738779461522082337379227902696041893439474010865765183620752755436633343682224722369976981323634378685150263360645056197003642107519904371913704470775108598543989305903895090695590678851071676172914961994118790387784717590592343549879925833897661466516692668821932288211571262688523844479315952586269589935625133261842151406607524487046106565722158092426277129065485149829256367920237591691485456248087727606310380082650840055800053025807654747241547420439324772935532528679318444041755122601344133205130120248199531392856796617269822750567217590417318790991864335141537365093233165006939198069726581309000732915411605846565323237735585641219045137152316224146143812023028924114473632697942215312173169141339079546151386059343950997166798964365731092647042712987537431541605845847914840818187367436109680258385956396337858119776031777129183473657696382945998795939537953647208631968608265157936229331891430528236921954822892724142716698985159094792111974854368930822221005371380380968054572939520082253176181657680332065717355612372337850704390098577035663573361818202333705940064845915142461326294576937520867353478765841929402590193845877284280464018112183905977776551377424801291457863481872594160458645338967036833161221892281407265735184165462816905454483597475116445814547688122631585665305317138494347923784456606102565726473395035790268007704806974779294840896990397019283524662061699668531562472144650454767255547928566368240962309237200762784859366882289454210692499936087080988587276737393218706885762015280167170613318260384553262614157031160677665941109710452774154502728577457183845904994456578624388573215215398880072564846506458865854015447309379933009182850079673190913758246644458870254878957145404634760816653587376150642690021181496405476022250906473151332562180518601913754326337263761693716261481394484602178796510625534759317429852511518052585997061204994016071814939101714590312959471156953225720485594351205831556020978430582344055542377614039997672060157424094553303082847923273896555875652210856220198672967888373806420443454083816962738191285187034459252051964188145093321145826726922367739081256849643064492754216368854306883650925709087461170237948140151967579561343260333167942027010515425713248813517705347426183162022621060599761193049059292893231468562374294420957627570355895626690787333256018216013079483991060769019922971256741476069714551262441071876474613945427009050129074142656236141186077984144369750742254476334703635166100618230299158801699669149100658630904291340962557592911467485439447532304209444493202033895624448720213946726937905229609139210222714965458839683437793654507466022301439449695071558017307707206642551276702399260533347537854335691920269579647947852092240452245338045700148495268508882419887640684125714748443587677371098575289965759408215490687964314350585110525567879258452034481417827877404972983762746983084333599398577583453601641653114605631399654833151037525543759074717970995556768019664555014996818667077112860227007988670959694485123827392524917955784212075519953358260736242423298467263850871799850319317742011365101271542131451660171472062386853533291041289077361037927848459900254342523054618568727523214174879348034094450923002361348952651195943682559149451570944844434233298162503224400153238158452610797957095507514103025563992371281649598208717287668229678346471849011436907308469027270702046548916375906959065321332604810567486334977141743142287642642173188638767183345684076431649639468495209458108903317308071189091855660623264735160161033091121682526630451583143895549579699366806193049080009712751406533287022507529425584697309979336340913832695375388297824635170734918542844841950143379174079015829475911148395886070643155481895788578486845891606282467071793936587107988625670294247917304279124493650599006381617723838634539009082002895486809144144510564311339020381058985413255662303094053217072930507460608153554526195580713011935790766518237994464068746477173524354476762941233312192080137173465320286034808097520025599442440260788825433141925155753545211143238342418310715068278206580177304724124256958040550321615429817567463598659484805556034303184376463692420349970527265075785460297833654207893443431456352174733360971407265548208590718753737963199959752264045675355898888759275492975030400759658209121531219360771228910961779023075132308670247628059799482175636385555738666402056517483137051417261554819028748764578046163224388029247701869566082278881461646817937211096439449813330250864498358717386179708075029801638823687612143542123333348331033579132975605304334657708610567634508841787632257268885292559747332819643201585690104315845363302471786216439751075486259836343799099026538775551826992578995339672356676069446896889171684848710514318409561604047833158188920380127362327819057616797920973331311668287399322399809237469957665962694086574785053078169267964383855890714483376329475105831600306769377650885117089851373841548379139290165163134029837318173515114281313325863847143229039589124828490559329702282471209815873074206298450449731733025220215164952432909814006816710931384140617254127164368946716449223833021871970155124294061185105153375106947540045812247218712275188694119315563051246691073667146423358479399958570171062775367638602152076460039977760779734177608892356221233904671592079440741289784264613182594937069526506329695136188538121588036823197651864043472524185706645866541672345177017117507102266346771534176826857938179852757036972699939915866242100108221955153493801659242717853561517114644984402912149837487923492688687061303281331932329185611606317663028895013778285740731265661254854878415575464355437688999910287755909448303425244840082715107770303792068054994939820888240607515980414200228174046945104631040325763930006943417850758231786379132218274984414536323009823312557213352954445128355954052420064860686103207563588995536367693472182557535305364274634049420286181546464611899258565662266507576923554798666669319828711640413645693476111682623584931084006989741087044670596377088128516411895690308652460954221048242963323397536917484707864655910007839241838808080080003601263520648063545147287909760779207732704040199983037632323709748498581970266795399319179368392536451961948654210734787551762361217415333075135139985576360455994916290740258014234684602499086227645640080237594170122353931959297652496343757500206872669296791351293257403655213630341099919002747969042335330531890857460703011421066224921049272853851382713402257554582378563716377049464892127669600679888797465430287953704306240000039543995346988792301032108802263408350445101971477598981865985011495514105019105111842099063670477297410462238777318070681274453778813306871479498948432168546477329278940667132503661962690428028963822859301772876846435243831045545431503629749022333772944876820761203368019843859734480147947679764123772317641353377685259125958570919004708150842919124245286701210738614142267841411087229760329935302457491630707529858826478517170584024448328117929932043678695869138673983335411781749002908205825506059559020253535956008546841547086023130761522285009981527364781125678088705579276562789330242240645903432926396029276279392818660588791841896206663029547464759416268901561712279982486313055120966520656631567949936567097197488269303078544305574663648697108495155756471721788332266059611792807898141465229139726537113440146819313738068207713428831796183182683539751460405314201706901044379105902902216511047160278012199535453870319246464110188757365810254834502070446463966559871300427677057614098401156718591843971193150962204303927238520395104356446798609157989387101215595499409914269088820591487862582587620797797118964184379815659630322785131619253382833323108643389126867102906114169956609725926005112032764992547746211027328885191841988765314450647294233963505212201936130127902751776436808429492340435290664726829602375966674598100137958084839498590638310097290282176101711225068641518574029376122943757379558027521269301729838188969673245253696325510371395877296911915816786290589548307889441396976352124545487388245788275015610488585614882434973496134318433767232049892447040712899503180082791949069032310593809715577518386104789805147109883000023266675567034234889300701472548778448776803569122095566383371390762851164083957191827573474732844308716230273983927299936158427704612879522232151714918697997097742050244727801659367180910909206830524686511909843341044432461132421498590776257872277320364833232370706690987848010401560492411649254665846102547418191716284682469983222435023498221482733059127837707750691669712885020914325771297039322878397153674750257095221137537260168469332504630368981339868891273329993938290309203289764922782440523105440444871761135142761388575922988921511312337913496929093482789733726408919127600384093622659209754413363902764086489193573080361422057866931231089815967044894161731663165299389114527739338376091042131671206716475439896645318158768257179183392934181236089861306513466105587881550646551566965839150708605785406710029525061161962682673548850018778103936673098081866682059312577074486392202294801728984305111948126306266990433932159240084787176086151377273948405304708501159647843385514154716968053772799875819949355984251817027169400545386898250330073133073277653484625546442636772972336482501356156027691862711889786411650639766808369877872367801637219901190568399198353948157283222903102218656009327578315009977814364133247783952485361423888525970896360370593725875661878732463169905925989857597318179973833852305407300177729528516332692744709365147599528114311880666543404389635735591207528204906744810662570248526638860408584187751248012235040784737479268888101799098280779829736764890733028956643195794449131661526581662877433145001493096514396321997355517224573260241807972670931160488315701424634244735154690992718897735889802959792998070817792617245655936015441461556745039116103421351558307003505637138914610290705893267183078938445499290892202314122594573793625411740570133416978946490218355786115995383777104957539103814461729788958059237458138027575713729357381401454780021380970271459542720133245683030912941565034426120770802057105495351673402370097319552360847934271034397518481488182665288555263970288105048706929202767936217298963158155865608066590215821427207313466960432062314702703658942022011927344975352283797656431546225553381253133829309419964311196283251377800262565993711043124327416005103081882207034224319688977903945667827509615316732675621948199912688869818607870558504396133035921344564599206799195512389875119440902586035641837812793871681787697235698052225635265516537267100363146860293320899210276679592599857002924063401607255517771692053477048860714692853382518956565127583511547258554094062008937095728755526663940827274841221139839624833264103737116445772318418389803822175374861647505658884593281295016310850420989131096496929598107356263493533973678595032499840563654359236268470282401641416217451118521659463857782889430512361078297591749598457046484199801550598313926980018632693325984282783376514366416835243850322029354921206688852866444677851719889767680752880493851253604394417848454063807515411218231602954137480356958159542688224748012773173898859877112821798884126368110698241333411669743661416252171696034068162557643621459709459987768881773853610792095382727938728752771305564905392108378244359078653355529154091097203312759433025577159816115651584472910271533037721384592649217348617154269438985952924231702734348508395180184639837991904930863160491304112633872759604140319405626078205103294133588113046445633821371120073778572892333920617614900774162120218518043472624435879436930565204523871593627755943100424506669446897678287290539923313068372083164839620825093279757168762866456513566041544120855025214186447495434533840631621215793940406039024736871046791796283266385777840138145412702376928915698119996043000902084207675209953652297963206892999372872384201748937361371648294746432793221660497147779763891801773247666338357502227662370581838553720721552425813053596202876296701894051140356763211376709523147376093248360371935516650427015402345998940853795486813000425761612467060842283338204766441143688186265673229576456653805807411457340524358386687091471777603738148997533513291444938123511355935324377604045201730064819751486321539360962038008974185826854726514934694216873819682844964922031480375268204630605348382268189960901150396782205268903396423201444287636235655711004618775697120973666918266878150544853006919349906294917065914673411420462494899506959451884139933426487070719145483929389807384767113445658006231348172116978746096928482465138997529457060917940420950295555615902166880974530544442088623917553623322830976281555974299142040231216174235221482610223457732369107029281956063071551843299480181712096358669628623834806301251190773976486184826311491688663347521258552878864289729926023481030241245703344385842435056640950123460392408167970735708852528201089344704610601137292038201633568161426926552316439670100872864725647720647920800122634138029560526401790640881192842474918287824406553346788356699121447105180662568406060934002226486108203284161228551291638297856343333363972763751343032131146523572942016745577267311747634826208607591479949977380989793491507708574753040963246314463769976051338357960724827851824444341914903718886758327299309112655290967540637914364255218450744940042071844472148323818819708726016685041182176853274757324657566528009838507637685985946664977220432782308365085993295791369632126539569346327361488690863484225687279690600695171350022882255490928036504236834867105454851536881335507610180576524401947734039366489205258717799637977674514752880415381787167539556533444237334339365688811643572220407722972498742859894719364725096737006539211253662350339436364052257746414183513345150941907219703375374026046787950393092029400458496256282436060152745964577596556549507294594281949473173628920104595404128753605418217894962704131978777248769341104289418499977413995117772812664133233712738217778586009652067565442645351412290233444518374258841138487347018038013829203937482528570906926131327302833651187518824659563287869834314369134702200929207081734376790009418499079714440421714113977459714852612355985201479959451956501048420968909676445215764914749282490116469194023105159097681986681753170152472924556532463844450290448930834589013283691775670302797701015608242814665205457303106133567949744590202110802409374270567765624224864001841482005262294789056936442128033480698162933693431471396746920458124101210645959261850927526677670003118962700251044776332538116353277489030006186586103415016642077845021590578562579482169515854357511180346602689793678737980768170667211807849389618682818866749881439325899985370886326401583747845142795242653848978575687196151905626409281806510369921120731532243230356485181353353730552148887781487144210552772924889447328600408447912140278424855940254367283077584165918190323788060154441942338504550359877003858379161877693796948031238294697600322520490576178197242426951263663535227613746811284119626475601979595101671393577911882016928736172102590407630017694930594917411664734404631921998099423839969253116669365476460370044467879308113002023112763686252687273958545533821031762842318015048943455051425658110158605519783556546766569298986839730656012342502892553282161790726515597519424552130565107599611198450878783424966025351347460372352568627269521744845777278274739418778804453042824679268150714906833563435280785013379521388916313665728812143166294280559821830850651498365522229297478723703578184779964815948733887578820909774946262687049643448527013858490737571941686182203825849297602573904721924525369111365864927279172333089711744885691274998577693566926099764228906514712486476338412260061911903416151048133629909759277426678996464282562851382682851392598572200865115831280776707467444044964300427409379851335957251466967884013617425194311861765112828966058114804423998461028906186478306238210698603952871726937747579643424305731567750886235720031400089058504358488872014634228872953415520668791682098056263944951161868096436400533494177690509403814584593749214402102841086561386680482758202365885365253464914374950471214840721595316989939219723730988637597533980444200311209591088430508000258974992613450767738883347950280588697536626948722551483565114002653125647098629621858131730046615210525081949879000862465843671876827840929162959434346204570659195003604968009887019636444596894174819355030944255809566921650927090791732556838033184137810116986038556281765622505016030997863420981343196577451011176945146237217361805255036960607721559268939084053781380051261972523839544423537654344332522857267648547494041243652554455489149846401122795712948358509799590077563815359645711275595056792684495301269752584642811667556845003360151535005717130548406936765652354058061288584942280896586387491719895446030221883918481501314321594087270218901101619463238150691371298406545773822347411361507874729374800757731772521908396755296641750403787320846583247493727778270406448585159725608062637309343001707862330235047238017415906394926408507082433490598031348449039921077819413944854306009176391223513596295285434489768373613536335717933383554907378574582929750761201344903095240637727295348490549231714432246183564356252947435721935314272558190198258406372533452173239262132055451545108189366370084465784786453824041362184853158771230051669893004134821987668066164613826330859727875164330657964951280433924883234980753386690989508011556629276995021354995409909386193392099996664884553400951734959241666827616709643171670700581994906304048834892535374642179858557516119737919666528367959762863830562989989827024679592971012737232009200419242590762781118947680879705084441854710011360050960835467935852866059810065013855097592590219201378157627162268707468465661038674512425334003447130535279468098608644239750254345167502196007616798120475725540758626426728254418971362678987992669254616792712679044537714023995584614498620215632876758200968282245892837369686777595141636559348230860480168097832500002810307635129515481595431463379554814574587152531595962406600293429865088268296210301258626672242819215914181725017831642823130660626220129366013570834491232515314861160863709888602713444629654187491252978278812318901372053040267777440904884754349743833397693395278499481329504446879957317226720025327662467384941877539815656502902832941093040410276901754390529840229779211840928647008564587282124642058183701950749727737582689552626945349157036233765120208708632592494170199736114422779226988475633824913403822822516058358656069456950115608974056823248166173457746798788923128190709626177611234965956712092772171747215816148102144250139626383350107445425494079785163698091597257260158049473156828740872435400597155988705725842044702950605429608708893106858590977903714937790298483621719353103322553455220978732164974636943922617851976970209285200152944839679110688049472780824586784959955603654636462809659629242125310900679503526691524830728841559064006148874033641061816928084064309668727700071957639185406514034033649850430720228720662175637291761623302308945384674011034877961563390069531498283620809900790195576397685230020748213838808873740992360685822775215317715629710106679974031029351973788828313349035243727036491849739422141969103186897815093766581403201376882606001305804471020647421374651060631023943202324734374835778933300609193661018100223069735804961448271938208222972758840638688442561753604147378410717089915637222246254616198674392561062825244128736210929262381467834397261936606297548268853724188969928397513601592801736666333845745070954362081341298606566638409308091231488161002079730577263147520763062295401316655194845094477064407762762260690416564001086900235387205708595977369328617667307026187482543624469510242777233370937737885300404313839613133284651068975224745598785602829702675548172367636361908076460072670612457089684395810268741221028984606544031747820381804022805815731164841104992997294178136927062940277139906268141800643640599743124759450380153303545912384674963269106356547585258336303994590058818876609280133965277855458821660808326740843620812445972011804896975690037166675637373429854244315986344256863599412724076122249749574982573851398275664605359111113075115657768585372381539015368440558080715350486411146707074952293589725710241440445363896705918067856524619911497707780365885433864574819958125847712320448860761337095247029726214988188642251185794385363183653068314143627322520132922882122598653762021075696711404347276494102854635098338850948699523735325267147095347262653800214096600391213573811863142391453679901685713128688310795676915201485682027365696888227255977822962940112183274577737235641997042142121667874420896810929186341744194866665480529777740621188148743332139159462689793779537515094673217409619156650165616446519218709736270268218906279478592709323177404561604762254976285541250243514101638991778416843006897232134917733564129736204996810929645208851309260857257492209770417067993069022371468816617958760931437716076460427396443217932390784441666484284274814266655955775471618848250807774518494405686253466751173273736161428727610566115322940992504369159440513862704737500317015872251124171164664500672538995403167199737594556292698090488534271526762796847868564104264431646872449463702859414975966409236861529246706437366087745192106994800069830955283973601144280710490437130912348855571983443038328683490141288786141362248384408638361440619446395700702017848624557047590666976639601025928513961278080018694788131588534055146475058387892168717117971352538829947327442328918273632297716162997690287437594129447443874972835166935615962247567870702985136769543049478044793736293596254671747755404094353349516887675437727463202233528955785451025283863649879614650043455504453478382405727611526456757294009825362444504318641881220066090604489262371590545631275755935653323693944618321839961533255238737338063789107049489075620221680517166677664896602263063263006112612743744010608512326682191704801932647019694402143408703564512994105088517168757050317431171107045551290235852164235919331736223104555543925239315274717033592883067428411271789518349965807545437894322162519784613882989878049399365036649078609134795136100298214141531848285378203547265644384829568889736719445346306226334412896953350631267408696820800714861600724475327865413869882818872697848651081043979783157362300776193002943418372595603300913492089180400228582848219185273065283449313473523401148989617878459870349609526381650032608544757660108500060959037919288381857323550446396722714765373175300557784255387467005807071619814125746869833067671930698909268283835636390695824871715473988030839693167686416674952210232922446678836985792875001680896629089609203594163635730331499753867392557916751529914855765720926980084351283838598144419857734009786705989945960634737286509896460855654599386525279337905154445073538662018043859342306911566872040239592387989962904172540329648262547516876156589865076974649510239877627352317339280160771303217924046702034120993865897550072669988264895121117643183517407831271181990596879672151744684178427656370846910538290173969527807113058621011930833313707224313246196931111989166491225483797357490597703337321650766602935691196784672137003166808863507626411106200954526614398320393713098724070823232328328735668813978017471604821625455829213967230090325200434488872447064705375573984242479269435059451615759680693367606195922984101044687740224347355078520284314168452443009441452395641623353716771022246948749807793602603413634005616479090547676244898014334359731092064603409158470664810921851660085402489677964025476243633032105776099888937211899328724017380466537920427508244847046960528706663776356675731838326495930542553232187703825622746936652085993860026392248508633224124677933679852983402188282121022434494217947912903881505100748793550279046338027800014327440703969909412641470138471039067323484839575422952067984766999265686826320472124866411924836248075388064317184163527820961967058069362008265159887104347976228832530596582494727169123232896298341827654255499654154949719840537461017530122029763027906203256180143714247450042297887844412093814280527600956331537998277042748229222189074048446244757320249059468062426054751732458962256090998352867666045337484247293880074694151564879373438632248349179020345975341983620522707465910465322694319988444382640070924040382449695173778688448106682230829140109155423846286861787628849648815960714147868718503026361860880197021521395851062529072080360543787201412246893990879038791469875094449691492799442904206228137498960902546552967449140038604515815966540883481015482320070741913801410913718801199019228424172615297440109834781981209591033531517201035583748997086347415905190241948703809956023518209986619072439904597849203047492572466794887192062366790871186165290277588031146999551935568131173850735961633507618068025083453707964245283875769197859818604906154891541252653790079297981675348314267108108806279664704561177879402045938075745623505489510695504267544743644148374108144919379134784650449450342126290406803424516817405933066354853622225277789844229053542059057934066642478543317592812477576870869026389718969264442037491631286997044563410809772096101280886531026721538368723345103173906403148160845304974149234998927007209318197358298382200760955041317817314533955711848149655367736457920169470067437928504335792810416341151432200289249378702392785387435099037091242016616559611877961242734607183089087043026053803064192687337394394954222194166069234687466670917842648702800951647186935700943197925676561487093671985085799790651447180551672814822629572279482349628732505725725087673620011846387545097105334398916230994873355297598299718268197896708888728362201514379805600680807114588336158308623931437406373970076625582341667436225666068091368314393042748621162337813044458730763783978017920794869979871128391575526499459870186123806499597798898127257247438844801568648895334845048012212707690897876341565067240485779015908853525412959254633714406747887901005708446339007823951840837695819905894464185596476574548690358890085695287455233952177597726007455633923880529212949520815082690624367322856795163669661607875625484409457160425070676386465409568459785306317297830750441307895962198926621213138550226918302794844394926777121188338788619371075043429225690826556342092386452669540057153819671356881385440347964311143002869406720649972144917713086860088329110975359150116123002354339557875149256398958114543582522312990192346124380749176903768224692509331783810465152901578386729936949031010972570983986363705554373969980904284090578829486827314599407573203653588147731772975039037081663163009463601301184911861961567802188611451030544927472347349243049122991709610422025525109559956236367031864233973415562482487682840557133195620236449318526412801036447868651696502323278802578562808915124063413110282823796535662618514314750885589909953223891143588076213618964993283692936047461926259616058524960324917387098273049124000044410745773097746488622734003507570274044438947987472394619354396310775053407998069611315448884742098023207003431151240829447561832088478357424525671007628818424154362598336393570965225179440928129531878953122536840519535790171280297608878016983507824922979888446332447882357441030517061212198470501527596597032175066505048525514821980872942484656414078800403026356757605386904139763690419234426454784642215469037330640697648938112628693069580121347740416783929593661912471846856056320987661827801011102381023202234847591188489249539374888931329276174152758825704464612996080166293480583225809327104053760293850581267525264708990876377106306120634987938637424257402402296483414710353702545993046986898027489398252719536769968530986632025273386915049824335845373698897463335131918013396821155442865030125554528266780721941285235547055179269664466178332655875203167811346194068054945133662732008576670140463684771510456914012695079981404013611418102382278276441112522931965349596417867710623510866993774539472889074778441149053149668304603673016782641873356286380575982009428618158101308393355736923205172481775673772133218983724614057976848361752905538474572837607826412954012453302007827733045744265424820875078812552088436979548717051727226036411569499126325214926465524408373293681339347184011816820530405520449317605867894065644047782848375956470151722087758041408833423430046341793436072657932302593861191993300264743021231030511812193093577670282647947966855497249811933780628289391365160669740320099720786278806892019311175484078138046180434108617821860813875322462363729633816448156517735608316896353908546870510969836094415965538920756727251692844480874969003660537839743654738823250130556988040563164412860752425241829326072183715132911996750435083094867861403740198604283645503725788641988186388431545136201411078416798880021976673271459916838620106022883939625747352652168040201106883214015246252005022231340094103615093153366783401892612623986760953905453202737472978427740142625917064474048222326335106961832971421133162115339189556888524988926638814404680482716735089610254288853351670426325418811539070013349351572221178636275183921352247429371755094604571755102128819611191041417107242649835626031118450729355825416450217574302352892337326796191871762192557623033703228506569014638356665147244658677910171138454918611869006017988291921943105833437230414773334303252483956386369866773958370750780731800534081590741598827011063179893497968144497446975172350851811853670091266454558989036844402844717091630579169896638715607477285529788388809877263647817452702513206005233379011067442557121852276664052488001035353288247135695099245039635098682642102211959562225918279627327431461945704141895239465201591478534295265694102539159404990342692457117614592503317053445547509462743466990044271127023887964733578861243394233028760710055103044542714290585990459176086374123296423189710984745019252690672894721960358646450178724687995906519384561074397636352044531493487960044721032465607826802898033681666899833882137805622765731624638629429409588148421047133951907827645800916422526143314341544867499580277978494972161524051817620523785302921009428748864692941617471143210244518922055084831845663508941380692007659926779295258062109108503922808595278525045169463456551790133187535537640744352861553886991081369597592268088014751949632429124244932981706941421884086864364356463910719399406871550887329909993766696509625680685602673442381645050582283597742401328312243845366120343107424866341806822124338771631860252529090371063870179381707019363181310395821042536684841844432069767902619387361478759420080882310412085396866264683076903468358077284146834830716266134342337653699842307477764925376994863730642564376499339895482140912020614279605825064822915735163656697058438691566947435031184425424956795340503164383768527025083888190541831634278593816302672743676672606556601045061921959245678879664373546139811107596996045538683166107031135357333186574327855029428815064753609619593388704794671201434278632232629245857744340223778171501713818855767104360116454693660783585844754687155802930649260264292543300520103058075844580068648453111010353662683948261180526558495696096743523941688475993393342243002367798985194604831857568910983955656611566151090606979231082082808624989819096099005991400352083934158129855959278930574035840829761937307831639803922116848648784234815073913547881217871149076053474799812981137722381131632585691029011349180399207196312810863429308152291326985297402451994244708857138194396380595443942786607521265944990891961541014720623575571324105907666696271722409416870771960450018312537645838716784715494343614490808826121293105864763316025396526475645643617789997800571168705005483042886682251402674707380053366899761678155385311108975881200659920362081764210992798271002014601110233118338668517924298896529855595613128139547403491998094108073955992385680736874403210200207745727889140170381849042947192218801134801531459356265689355236355215281647137925128033338591710785746556042311985652593999687818248834774961626044325678779726399855033976189615692189466095931200247047398215649834788162654830832694208928121582916303381721785543186868668692403344481116691962487305596847224867096266682001486693498532373228881488340075001141859596527041797317358611683447519791351604253514334486642522592141156251007140200936503428418894740122612295193805710660276394127132332962738829921443826709644835745865907160165127729984562110469905297189111731661083546765957095787820382048328277353591452595000300207905835903940586374849854252684931573642572795308244634556719300897653412518416476447875254916088932171985292467165081579965614484910786789364065593642634461153642624108326988207797128448919359478068892122278828714517971460392650497043682951322172219396425418783180109569060384609652736901864304861232963780475914682469402519249417182935328942448655236646037471882662338437764846886672895103348274393727149414318378297439245451184917585969424749860981007745714922196690974931936861878027357963384591114816367879481847408089603762394643376716044598309074089428206413334716505197775199254890621933294008669877270787589417291229551528658873104158977140318812262289219887640407510690863335614879740725951202765262474707105717615806745730947794338539265372848694259808117894203402603908078054655828249616167396649401839377299773037390160833114539910620257784273846674619674722301160950938495089623299869892735977437889645873011664619696270982690227201451594711083874602558785445212344566368809989685151323236259218310702898255449286208943202423404975962703146373951902358020425974071911674807911215371805399069273023484559865953152065157950498022046641855315184453574670757389400279119912756421465586159177023788113671779078798953988165745153151599596700165496851284743686943732779929737442019920586167343009446589877738690860175103137538777984422850662373124991216093684909889528241024290833539617777474423294685101089161780905086584039325512427558621396193423407363053089530477585949597715151604205806897908898837521244402184994638735141013761722870269194286830642783016942989941680580249662955561962215101330462626590067422642846252174965205799862505118986661319115415250346293336386596243751297082904397794635099959613437358467192248003418724060359641508672915176508012331108230034728300088791377869476186169161660208876992845906491779264947837706592373690136603740270691503863411764733185820815192853924267244956038688255993493579320197831729913392945943711142295914102399199670426519126272755499585695303233570670637250794508309642152421894707143930525388149143880954570815135758327642477328157933426495065328843918168186921709823382009061482880019058815763341383958963202480019382331316303022000706862800458358768399052610094039915602897074922562200051138912890065595158469150703451132960265568243542963632401677234923016452567280193847586156302458907357172252211679094139894466862682244014988609369313495508675367521654570275638124012571579570956340629550637448111281019465055906429207380958144529686760984193970466387446924814760206183183584332150941646895329707421525798068698669165783495073841697566771182999597607154987873568733495048699208810528570022192100037566537189266113070202900961401963586393200515716022459209183169422420528413711318070484276336695671628208213843272310202792955729586598613311929685115273310710933457620069400572381529756311463181327027932456628334089184016502478051178384249445909244403406374592711226873073007191394240137048291839812258261698440439170126788613436234624317879902773147417502202957953322554234824331192781897467811714947850400161757548543322551066912405206353744969670133577752701217792684754057601096740746345280216576003014917946020145363243128217688446405946606280292581344641130960226987960942820210392142506299939333084839575436528757745032496248257861371587478794125034018355746506071714466615703831585625311951603505362110376302812658387835838534166391732565427114130823278755888581360285478646430807695775645219601182374860083995597348458398593261111724621093861738660167594341843661505627433736254924152978357103268195372970734327316741264297006685682093088375439489740790194896711277022807906181996368361282023101462520071831246097019453026495605426131941089911584245847780939310643084166755411981483452643114938090552621583963150432900178949846457556717548938950378771348156625623133646585640875323925504889721723957996286869188502803925099481083627945074622911604258407273385460903352503868031858329144534152926098038677507128210052924825817003047159003113322667404537132436818197660384498430833754079300634004426526512399229730208173056941515760569711080396191919760407195300473405749485765518126721436450169518876824508567555225241771269056270190991838923397209765306806893942358080293666820367094490669783988153634207893409160400444277133158634641374353930186131514718497563477323882094865279544137406555620766527619304071572326397269342820859481311175400623124060363169230767781158437371571298507172214704741381136639662410662449465755102791344175556420778850635928889310907605807053016045868107254246107270851375246965165566512467835929790529178360682043759246865174062839905602724251492583136513444169852336431557139666482300369305148584108603520483480319917247972137380702886703948396196479953358763151949955341302330202940738329110737808299951013638823491469234449798121093355179675640301431387905302739142185350419904336697344472261921776428988357350962324700134260979675469753233885072838564677228443664177875225823753804238165597529688534887054313518911286789753725932898853890579751270242860145155125176630876878835988235483575069555732300615811795242521384116895134583433349892731172692758240696431559327263080414638323556976898772545854962397955290519983149231661173930518244574374929490404768663982257276209434922385280774894747978934320980662266351797640872798174799040137825752546473339940722069275813551775850030739669344918880414422625135077212097384167558826314612717097623757895962346660118229004014257073562478051429612675834929837101501516966214004907058543965412262481064444641487087225673827886931506365700528543480126418924100212784108480328466708670894799687208950927125219688575738428735988955122857055330838827198953847781293022596951275270554251864193222638925718429235689271711676528307888431517485024438031482152294776096115130561843413847727967778083924595583340534547887738508661747583778990193977300204074621974978353904616000767581387968999948512867681360653188720210302244233764931544396406314626398376427600805171614945319115630565976796841938007076848428165687080200913690183960966866444167765792136815080911143761318257876029481094354246460211142802320270217988687396629489989077751601741503683333219346698429655611048442405551586444456933305137262033429841236333937479435455695773344959549539447820054274876520181639707680015389027656253587748370498257481726956647274996920279806928859747844141285261442097336123307449732293874786309025331656761341126698856310548945183199077007059549447660477494567198946817741615894369914352534705321475411199804827412235892374972093055074246548575715413071486832840896861245587675528817944502957115134873978901106210255520278338920082844858405450041309056141799433218961317693362666560259563332132242446195541588659045406888262216110312146692611534196690477317228478320348952130991482451776299693489472246281599807698761416824752180740692446549395034424734395348512085985320821615441983522228310310468836947484065274763215123165354392907795349150390293780958017139825820488091131873002899763614943330651710157153633223125538039578436096911474363324600582614274279649116100061519550127006411020779642712908807596860125386158345111444504650635627566615534546501811469571028990992526315071502223005693139394120383565289009386340785177855312567335975535328238904138901334895873427498298580573118345786280550494433450426580645962626391901824886395810326179458224233808492421359565811828499010999684065964815085824134520424282793220103871101387974662715362628628212597444307242189434979257937991862240118651725706133550429986134969474558160901036126360952633339536022584146286448676149338254717068404937170920589371266723465955191593794269965693736788541962538903759258632645790239901987128702638388929070197343180740179152528005967787985941661591890195436401479480505310255324725516755968469249497389096891393379990896828258284935136595481466210680325173302132115855032535526895813954896633095419990231499349824869699938905612761712722211569666421399872837037724826001458107433125948892270580324256624949876691203029291627008667521045558511098940088042436358626368570206558215406694685567722828810043971220211271726186776418532896439841572651627026866252016754215189385545000090650631504963262157222668879987653325580775737360231113211773798515846585529761684564618459010776536979161445918949202574051948404884787393513698957411135776740629167318019333520136823111908702252338549016380141493521591104387682699372325084190222567231971984657586819173125608535974936280893280256257424343542049187652140780546147225284343257611637824852273822131383472460710026555959100659464545992880367264526593077815905740709852337865675391728237963611529479088876680905826801201861299087021505755617863096526057741523890303095876630334217197456711083184321694993638821634731387878642902927428308706215818496423457027473376540164015931676404899834801054049291146909427699593229516194179917884545455258321648141230430890531661051290117331634742713473938076632601997396559443092429307976888388065481859025940537037807630705581740579262736619745435052355008662505246792247177648408088353234893160939253731861060156553306459404557765193246294382179943569359627170791599566401401362150878015060489896945639652353461975143365709744823303156374023706546444882349122510275206535696487098728637066065904947490902843194711881575260249523220305898544963476485113451948478858491808186018592325589453780009579398318812992854211949717942968044353700797037140200947088933934477869218691336456531880448273226341239684953777441902358341648691629512345754985113825513282804172895307138558140279309375343016674835948455349481588959297724609579880207563249237487679480962159454833965658199564990455388898264979695550794226946847050372255050271980776337725350754028496483297199358031596317317977001191754534496910842781585695326215232548540961917957400521838483143257277045751828965986191809192360025525329703886571572190333825538736337361652682470726719545619658544456218012254083782882794270648595699003770238219922586338667747898862210096120853784939127418429733996228333536315525110688320400662328605943250099724606799528310382505839290623722766724431599577612870740483418255813287229959314571587569805686307922717839861566304696525698583703484114712433985917280942491535538286224379775732294621453153199723038359448861724011657298635815695584548694272341779928651251409823839637437534140786751639118205714982289148138037894763676760738352827095123139906633781708599596730623831240884240394251943260821880577918135944120251224339852612758562900097955069267702066336808030049056984194595672431696610623597734253549728074260191500096732233038685968065426530280914675746135825128248696294870114966357013535707971380363694108955546007945970400201553501647145966958967478925885801188296549516294199000968671366165174885829932007028322650670598762638380910160633700595244086031600780545366721227594775314038365168443465375741814625954751688710669327090738672471549222344981150293837457770098377391687123103817642750956019610082586471487570332224949358663610132746569765935054990683375375021310579128986171226097655812979500799603982127360048416193026943916946279884911866244340963359514138772752247062987351404000073342780771243924277904827253885072488377363454339290031820303328131448121847948658138109295500705294994605636743086359901082451895106213579479857571372830118620340380723276628171035253030618408664535743577603655602377394009567786841868957666649809488012532558633570555011374286799171624412369115333579335427218328717076012488994223992871866495265862163213453404233531426484433879688748532386116526501270413245377573116432711262357315171880038759678539928385825600377762688961644017153934555058355586293756760571082220064214431775322172547048291576836839223560338456792436245051631247794357940416647997488984202441512531493324615374884261110596335459020424043075876625929732763228766447584875354005557182042702291249142866081441868199197277176055560344917983907999194334412928754844634505244149228049473178520401859435172016972684784975924362536312021466547979638252219262114665466472785500915078964996406299742764886377004084829959689766930980895944195295388265396225535203184877334747231216188992224892464088047406167062116481822244282964165505976736952526141678593263484660120690545679483833479967422044060200282142614159063331699206671756199937307287968126909206543956868338850883038744179993455291678663291653763199421405385895563453562211957434383998021005533846503415828614453572936005262107456522667175036807778532297222457280424450130395066991534340080916204793156292103111380717114039965577456588195775534071817041174052102709696945702673716981578289630169844285535329039291711856517705324940927276515532832355270549951766890889721837294743466120380468155661550764720249148369456882790830045280775261683830718672913134913296726058090005497453720500212483618533319082144838061035445060422841796773414317144107120304013377040924537479537708030477430101087025473680443128943817080089883644725480703386961173929798946298566333390563171032475671865740552889885068085090426984549927876544350554890388836832836499337517254353936250114436919650383791256271192276181775233496690949146638605729301205984972801448812245308022655105960612826007309167633284115086514642218428250219074009396794155826605012717182452852470663112636131118103045658115622176708401192794013977632858139736300910205277426223191453599998378306900983098292805345434480654962432505965028978951176500667347884504507800746262000815213687001274843809563401008699838861879911908227210298213102788987993457972814595830870724425748081626801659284188467423099135496724558796351645913834892618610090937312533950415879439301160913704630414957823710965861650896518186522715036944641493428995546737586277702160795254992271382386704298133794985486949955527213857663706045942003271105689018063305507301010388491506225064240556249591849679502849486541584272404169327400957337429672443129685708155056120213101330994473037737667020775646838791691622301711760372509724103481142790954096983439562512563280087010907855956137185268547666635204010311267194064521594908481620611721731042804816229764799971024579660828971544199926855206792504982015335305646883461309006379977387933988366693012651646049694792623985261278981270878870239656942422428578614854074344208490217891688835844919852505092036183425042373725296364541224983333572682064816264305840203758363177454850056948098685906568076601313479610248803596484474749851519147115978063067799884187626040681418089833436458775064180357459346093201048453641575206627632873537358724489378911490726243333385430155335641562270648632481668772533993311854931136389593283280630810974415868725566367722595924889923439187772326897276620231026949655139853612941092545746815680196582192668985156227362441560695402320101769405149597283416020753173732275780876747741090612594673273148556616852301767149937673464093677101311891497047334929643202978513118655905441610751958311763527552425528885728828683221068142023142756177070234777932462968183670811282767234678125412802474620806276749582023141674914016982099179991248791090792073629886082655799955567492964046969228086468153631014676944943852238442308399623498851859392550388072944357832708418619505152323858431789793634998110501096713381621631714189257572004147391618190088596980009553942218768552259492487461195521203783234017796212204547108696748693495166109614076643208850485124160510389934036655432308325565106516030687789399330643180642760946943738481296954896421221849765440914624599587018426952152383024570946894380440825624639887821962562070061867513420026941058685292284238572921111134815835820644456777867459525120566486913664906240974092022288359768618582528780198458957947500077142280283291794673802608111934009282943568782586087805739136316369341334758297542247613987616174883064076918981033251648430500787876164617538526125613325418256068777262520325614258900334234456743013511637492415449753011160600636164061061910024978609612341831268493272089013632871555427288750357530100713013428193218929924929090876096074295471037727402720490450307113184434849423521086325919191847555321639661146867119107906534275811602314085010945797073837973209015401625081875167939800598163333891324692580765136507768943146010129293633596013749615225454096801926585707404480560565007911591870807929162080537312966546731471646670162506032060977184235417324712819547812470081524480717827707342848517396902734083348643724689931853738023209522489980767463983814159069064716104704102975929467574412552816786764280292584366800579541499090377593625850613585625434780460509589616699658267331629839554989126289154866209934077050486747015703662872101495329335269660534378104804363240066583396760057601420042758828336084754672452196157445934868536241534395025693135996722721913561037999055453834481227924806925997014664359508247728462898134777938636747886884740294859642279177562677259166675016866548480215031698798623719816190261991391217845737817864304416128941318422024424942062425289228874702785876307316711442401692873788549571988672179033605679288612776438026377263159015706008267490416499288958556202203998341849058645613358233387832037418647570582665982106179862183531420481249076485032937103898758530152751476758841693802840291618453632197886677629664768549397429308398619205039160096679670218009413744383742993500648563177473443368015975319280408709002424448235031519333496451501124526359996618447612710729938936063132881183097673500435163669301813574668516320222136366139471407223147438604230164588135974974499615690127619617463083156052645202646856926330249503624274615562693662938017483822070237516751973171180964123856315849649798328959099756552226540401591087708201996193037333080674354458162380593791006553978669623858205050032058313749204132388733455978921021387054004268463860135243627142917219257780939024953410188113865292192213346624626811050638559840757739185115531831033894799475242329929883666415447011193738360383522323334608390186460589953937868612760541345658939655074743453967523852222460350988856551726174217022533166787403087713091121223265255171144166838082427380440929588680819751611689666568332158131109629471987023040009072745763893101169214002999992924800327194037231829376047512395066078576467033512913143678375616021744323619293322612507928098249290246103389283185672202429284384299673154390334113374245097655561963612982514105333253697360990753305276939675521187869525804077721112391010259347024316572634551945379285622891702843758110605383870312479381820104792525260476115158949048426577023230338887743629795097340871719748800090153593689483310208071429750396551218320757682748105155112015902225649844677195331717460591035692225383670809044567538254062049512915041548892412107372322061927540902276342240721972174695750812023329036855738177069052545914789724351176799780163475915643110654464297534827592195217134838032993507302475396266623027841890557327356194517072118452914580276373443661122244810691925908125698693061103794974065381059596474744425646895069789686757371725019472862073645619049426146017788841941416031496720629623746529897821738764821312098675875241269059748476510275043136292517752970667275957927716317899503712602863343314514235647366511393998058833517656897969230506422882587896191611905386200993589991746932929112917938334868592979223964015921785244679090397626795500001794946857983283265631927911120423826358136338175881299276785771635179868055533754359068925063310549342863275661774791275053855953208969351594328801958915384293754473294290886633809364058476157810004392839429785657640215276730786223218077795677703424994685178597081596564217187007401674269962314965426766004256319799532875742394131817344117337023231995940166285040674444571921789958890968252331638620879167165079342539171127079123670151713702099592911126990085857367053113294992818299140726385387780096430374982398157604939667357198250821704860333147113162347588380830368392791219326961776802893885364223360338955472255558797968130627259355716581689892386746474000939710716800255397310792410010407133233664970419931621795297863945571390822254601956880674866454122622051614605883936219947777503975310603342547020839379050390610720882177039390849691757011164068112365875949990327782871297510106760392945086614156631401792417363546586159395166088826672634713109256056314983602460277483055802770557886784573247090162071937174142683164552863522982153655285260507664871816664059465023111581188882871782288314253362126433488634595787310832357599766869908498478876539122641559072794757554351089373120354841547081122079827311528893910212387594394688609607095371518368929863474308048246765529426017612417467914720121192016053562708153039576273071664143163563183328770412735720451953565132304288572906642609205819379495445618826707035074946034405834190946800069115027439130329521675667148059315349312468250403789812361739097272954313293800649790330123807868762132879401694045614806385136983901740113147821257746859902376960981250679952353157137524659697584203676163769521668581763892108576968763566053366726155086487714197160115089552859144437691661294839416661317746949649561006969989595477783514665148500223951418903046237447884238411359510764841899833697708345510777989307305561054790708541334436490603031355951452554234807830465708750676893290989079810746580865886179719330413395142107431624322817861381145255167672439528545895717403598423462849566146991175622100664503288195723970555197007499459447057532246801420416365812670449506517883883063426896292461601458381456099509871112631496657131068510279585154354053760829446396508529359463330749112484991412326041144446805905940857978964806712598600870832288425547810231555649714804799162451772326281181868635145087019990416526577023855822352602594439920802532077281248175871571065541316072866681515466352161789396788721231588555222084515710661253769429730052753439418337492080468751557160820012103842583193943780175608875819567752288850764777186706656770152124113942114759973161188524273338707652140142520403565204014930531754828192002341401807214879995958665757394283277192597272530390831509683293081463616948793712212458655051178596001090302442702012952069913563873417260791678163073137838427842077607803193831086022925600458388908285396701434922050647696426096515048599497268605559020191208114599427083869439842539414210984041866957226293137624384538809122896636875569817063079512359632106301569781200001323103397712435080616096432226466255406641148903940492114590651323200295165379903245206084079107808614132969339486278061360589835017084666504530765784070964057637574707924361537846794195417879434784400768809884954028423677828255572458502670331157545697966965975574781927465712043068397656759956367066136880927720093021805214313362479859286814278989619070523254832706622610752554192563750756746868940303957044032621405376190807692749299076965966418518959529317056148282459529316610977643062293160272275474686478180412157621016870705672608488087379371601912453002963433080128969036789695749872474673478172818962970424448944907781130530318324498988882209991445204557031856310689289826503075508878501292769548888664288220206222478835328058447133390374815096729116312162994128819006206501392616260338029430086485900016596923715088666532776356457134299199176319508747092294198550634797247840011042726087637857241125217924882682226098840821722562969502959083304575703113643236402251381102837353646542204015846522689592661460396494545998039811978234118829768368796085834431235095150213574733011245778818462968217019754643330823828694293027197826154188571088429892064538320275226626621353630963952029008313287388013674996303726477626788726721001371012190039419142573588232249477519823658484444189644798949516742712015787504937200323672210009058027660027648252285721358382053633163935937288523089586329106907702105672063418058778267594923917841872219361098367912846519706874013262028829622401441298272684242393001683637621302514387785764055612793999625050452231039454157166662734411495387099867547757212949018912396747156595986718440296040063314179752264046256928231767870347545379591482257200374127263625882371330376039034454569515974306129375230613960170729931469731966550594814391300745878212616646864236324057662140135580738340562638851437219508960698369381969288923306408721855874782778253117299690839875103356213593967520748772447452313919401914948660180195147446649405994591006383204513259986547658975321480636015550958365425871742496352598563211604697784884157411567205852280272607369972283828578512462478876115219783224311624741671873322494328409258455801733745488315774305060868844058837708461320992252092858405115393795037686680795376129831845244933139902364225055169164349940289451100867296956637779338117950923256609056097540538070047871983709859144879707725115222530110033176270319630187957858764685718071938630756700979604535003603906395030847544300299820467938788917938404612595795171818248888602737932273335929268707807288812353665398430985045840362665734762055817889667791986379201998743787301379948794375657504725114553219516431731817678936376068195109613350485661159409018900583345635315353477369226879509008229368925015444208601111171679575141169383622631559690773611226336268471406680747197992102046268070111275577648515896477979196282217459105560176694097264907967651395276428145684413863151867701007261736278782421932206570324649751092993922175207924128413514140100794058991558690267082355090733735600412905705224744521829304352430376066459350844452935626833447195199831699151145421672852792024577734468124666496073105313256336550070077359626677510779482295300763538475122168415551177391795779275073113848259909641296020455574073476169755712597136626381144925443737312852445747143178933859508968027129257150918496629985093820410380667432445232124068556685973130386387751149012517580636961312888698326650380793952300954401649108708211910580204722035424360003067124673029154665975898655429486620668191601920496115948088200203097736840804554521095628029683471632415533903770711508571792039808709259178303370124815507321718481973537253854826032838728470140699165552122960119367898959177852890487316014592278758241517635545549298255213525775462265412768037371126536497352963187635022673077339984666489075554739634134021565361180920019404117705988409152574992336455804116044046498559302115265293773758575513810560943823932482054857471349318743500912717745326060080935784274433266455382080912317622344926130855224739777188828875054343033654665914993441134477409631131249416435452252458735352507462839915432276179620204189992787352909349079992086422136255135976825654363551727821591668723024645058914967941206976726640665487588374601294736389632253657427926846220557881621330264993751480618290608929119643359759341730951627538900549700745021154127225127923180020069691900127963351106385196761785969909896449463967109925690563020952112985985397880104922570782223327144450380679534905703200693238743004899861615856851521595390379480091907556255093356275024358635727359593253052972162094764423831300507421452308263807676223596805265655401792284880472812554429441751537211129586660655059854333332915017096500162202831024203807936863335880042781467342600890744392614927904264819619441159970776129115504201915086882224430694495468091766648860981537380614234831706457109551049030294944477414203996930298913830761579042687846580752625960658504811707692636798732028817380320853851619258313695863184799726756720842537797241149149437721312276797165578749922021263267199356338821254882198261835483616238762552866427727779677819338821192100827786428368997756981616952632916814529304672969707966106565799939298390670346562830057061404026254894669270241366775738921636592640128829212600039872322119947142474023311395438579642113407340683539782742492256442180585480293911850789546682408554173208280050754742179692286651034839224265777282123069947035025116979635190905861621267965939267131727780458358777756383852459561336351010256012511738832010839943799015097161466038411074212645978270062548402887672793114118617517020613882207986148622240432507868103660384757989715801911793231469900705106504681132336206452562854740387012705628520888110205234677880125846463398402030195514724074451391773252457504034042519385369293118348732846197364316779894886835109428539803336048910495764864140612757970905735928315910197196489509844594499347954951208248422947705531764099132488692376370776426449496568533282651268187027553781110180338108166511995256684219847368550479056074465525395751403125908917405534454711393730269934734904027191120716973480790622759964093889535653121008244231574039074377894404098761375854278847204323568451520320514846813766721107734855941616934208118379718661509634716035859916555787663303697349250839896492763840927996332838995882459527424995182217939658307776926239639864449588986183642306489264134980278857894169943612665967884343040878598367646208075996227922842382112648479626388359212844693530283148548715807006443623998069355470492217196082227270498075407240396803324053709698235662532816794918810118259168664776375929803329019473778116555833150828506873023311978463254080242740548777605506602688151904248897911905486778692399971125328464505350761959751203736126388198798010172728393802830621507126989203491968475077752674227673210060409974023299855726911808117068408424110936035914268681931043816804497980883604064477573915027725628234840217605911370057642968259825213131691173573531540349909998968489084129866204300717477535302332015352269419004505995677703809876421427473427625419495499501295966360011169025017892436097463988559731146662184222997743613286321055265352843789376759169833482179112636943547910289359359449861556872133677370646915201994079022123590277192536473185998748201858514718825397362296559847252270173652846239479448515857278857720531897126013092941086565954493382939787901118102487790595493886712148946253386226458280002406377607028779346462679811932815010740564758455565561959815614820412177979783093471655767228794554255244293017121761249511359264990643216617503847003245817393922054057963573023896052115523714249768391579688901746409916506590739804155000723916748851860369879122205832887591873183526491297890109990613090174430017412788692369144678030752662984965618383578303869742756645083010886801633926497845144799360019766941399733212127459447000729250291758828280744272677782294406359276985595366785726156645982762723249278779660531592720343039029274114078276332478165161377343658809349851366878046006802644407536380550529437799414113156068395445972743550867925873065770296072486310880233531548972684236437613852950669198022411256513132279976005825914253895999165061435894779006154872097292405925649686338513711028443048970181237030903120752336217362579771875941162402339104412844364565022361668714178195521240657948736887275960804405180619179893662585673534600668976367256836422231123920761689508433532925910829401514281425624365100762937810472289340630957443057342480136235298192467746821616503517452305794634474090898985453793501318131969069107639936888645367631784238305106264447242238230156630673519413163108564551061190099945685094740722810274755220262671298015740679362169638822704101005044553237119510694481044236622559420144727540751470987676440510734152564248233006216114351930004017696945541368936837674105601662665072838905023654057165377370506739504418718957851873752218720762364433415306501524141053015593647557796498827723250871792384979459192230695963513434239508119528349797911541280212999959037603540733324918676613080829141149393617782887661110288771926810389513386180777502889923952559653483840074524721376123210038684277615197606336307097060245822462198179290889803062385137758995903458540197387002220657740134485931305855335927099226283365930967879588791054305994558558751040916856541127946642118318668630370719747455924958773059128875229096485956298605843924026000365422880142492446269916697899945893623258217186441863883402050762073252544174363117392670736730413593909025948524819660157412093148022408871225753013456251844413359842573430799435950588700054984174903542184695604246285060518599420664058943886522346883584853968787290384587705947973865348628872759144770418380376373227573737907895713463838670404262383830504968041402736898292114625094266197658009827951249903732202016611274490908563808929649625544943771696172303362124067314146281923127232761180167508010484202478463560979848614355834371047572266875743672902299244793150680870139249183593207331549016655153005236149372893151696551784874994964454667634325727304678321050106948516744506703551903415649013948404476252628532869179777745570137571320845705604644029536305923301269369979557833134706400830712708580302050172410889747027449351454951235850499568112759776022836086576720197275539168152314565715731130296653137014878280503660772551161142096636936257238357327782961473627688110093999238349148564954910395380848329201781787030220312336544945901077831377513540130676513795470905911608284132877443536436061424804823678988064837905606637982517005569801042136382501170114531231136715132557316381026500603014227466981934742888930976450096591239690414014122663992433934705328838795649924492782242953192143218597235618757792594776651606880946955743944195942911347901051321581894633743017462527759673239108348534701184278700683004201764584306267770910976613860719127669918387785525811961515296181934840959444459772807661700783416990020826204983955515895614450900113270835629558518436090581914873415658922691171545456796472624038307310778169266876985264935584832625753188139775379452358816254703976882941199662538072916613445757044875043036860867090638475288770079121192344868149763879787314664739653232623283052139392355378625265770680261549614444958015879232775708896036945199377889963472107954144869010281218898187382471382232876686895307604368290139866704284417668226827951274611427452153756434113072294124073703936373726116965829681202498337555920602672034447201478216277097006714677789516870655373644666722921281145133912157776194163765334148118040577839891434813923034629530167934993965810869069469638325907800950062746464932951226796577916884460884824658837181866248537627262395274547929195927476656250912032341177493863430636691887015067778462910679912379807597047420545905841516830638910849701783632021699473072319001494526223519623218295004494900829391329933435911730494762722806654159283548061547655322966242521030273940203399458391955859297458629147919789877199131465398551605894718016504979823344561498149340350067885018093224188223327222317378661345812496562768888916187538538223481967725892647787972152776646486376368496340836139153894052589611625775623166766562599780286010393068574905593429543861075141025462402958413058289416107009936754636506477101611987559439172588133121215097856537630809343135883867166745261091289368440223942267125545670438521818502963531079888617523405544536763668108673681028622840846260708620843189545820488619365204219246926758411132484058440864299692342560819121392931314040972530754090387926496385977840480981872412929914773530137407156665143116197266887039100710784461177755589428470735214240265936218870948479438516313345052484580573430195833967068980536269350277466426173506684584007598424716102821730404159994697433950945181361838648684682749406108788185443024841315718540456070557746127387088610904786724866227833952051941179915021217245935957390459727166230214359626403417320339173124737287523087807981167078668683572963164885776440099197829377028754372909399391761353756309483208291809204607447585515316012786465003434040334691709865114227325689595450151788281026530915787838183185865307316619825162968834323954089693395136237003146450438832654959254772131185444846926991352891510297777307210313703059046414291326472464449174932775416307111842286413398901680617211937784395333030347206139627540497991648544333102289641835636949736242133591930239966063266010980567740919318587911893953085431583175404112319639962301434467508500369547594615827038551539942289535236709949313354981482633137242174481090385360348386871840511499419820113603708128334498629754437536954704761642635278279086546172071307890692025564356943642223944026530926739623525531637415732138123709242857088575351046412053512597957720456359053987635904977436799842804007207312988490767354525368374059459184661128031610783597566378129364816151596880117186315636583133519518513568037465124072032278418892292875150736670415034778754711829701024921584240369637934408742586696506721535928276739649896125914012781410794465006947431914498489554180791593234245192217889849430838858952224494876062541631341625974346801572201086229256251026289350787572165157632530428136156417968994824108634146308648754161341371000728059409965229798006693684923516559232715067015459924183764639413145093125423574418021750790065289642323167714093392702287932787087855689181152427608278280837858110945246073905724719277917568962603224904977029708329050760167230853424693066511139710983621598622100885470380220900202743679190946799118711557575290001096444686087738324683248547730596925124430838601478101434673934629492209732811386982124911938193301673204643951563392666254740725845381539145145083094841104378752932519015480948910204553569094901683426639481071154942328832907004303943665130189580292521411046196827956810406835765728357517009201120496865732133805060322070918971192099521270979429550890010098779246730012354878432819696769063074859866214546516087048219890412590965555764314711687268355497267291296401191752081121536963527000999960175399354555573162221516470161333345067996154245787603363050558925241406386424081694836970552382515923563907120669733734780422707916719196444402758893342625304069143708111467666252473481060981196499427349914061104777719363695673391686246010959266980043602963197697719589522351147411555947763250043405403176948139798797069770544284672290698468266591369195937371265985455623009774274269228838409538056567418287603512142187881741627491828857218457434802050870347313138956307311191862694607527398591311722688196209720852652567327516671949378269693459794829934026627334538265533797056875198129624026929884167888668178622892150938723806790807642870163842024397524226932620748252298945852704292972270318404895085242761752031770174644331593066146296287083194307756678863069930405418658960996927384574108853105485657871955337569074142499434664741746254757486494605892391622319104770675762388369248353856408560050818081372860288424261635978240448583611333851598448638393927578204424147120317512526155006977894721463573966073744009239761087690795552563560517652479847095916089470471502305528888823005567515514141873278397738703369970971536057442949643112256282714535829210374373004242416884531354054035306558452215325152748384692504706646417199512035645877369078402810936187063200857578408530908499739196018242647537946159661005394858750254044698391478467767988259570611797789846702860274481938933831784894715781975919318506049021561412010026133129241359852340610653271003903387682497729420571336506991665149686155461290561364030087321307824432616694868835405325048628158619915092178018394555651603980752368977984534919221415451423766569678564365301023353428273256031247729927236414002654494866226180910326377523813500676121581932164330177753358998922778196740034249632395132419920119977308663238422550638284578009009139825483975988756530123645915866258032335577948882253139018303928262478921639442822323539229358966675802537892598941571335103800228981915147120077917916645602453277495567182572273216045433434992495110306022315646940028683709423477878548712078949318966974301410365988399522654263028174846433290201270645503613632629480540320800609146752435347527258357763463789436076897949536915406959677361201131844114863936239727628541693669492552454838374523063873292634955614003467595746915239208749766469291711462937470196431880059115773081926989409464345536403993738240680057637383258669361218503716816119329441395419320707981136191248356179488252445498251505991841220139049796270931649967333682129050842655678982021447743780300661133539773144034331413274237648749413966481059181574341019637408942085103442763792356197531633683887367755715726454288807853865725040110270882977471564944632344979316585523798948016390908514150595661446469825827227839165381270300463884206872970909008632972750905490353134642847162979600878991769779044069725079570196132892686026394726948459898645236976072155648879240083917498007000417284039819369276680277152494710266843759106494310005749792259904256630948787906574342317898625372123117246872056472121641713237732536428177488015361449561499900860271196872926680901377728914517804973168902543522478907550783034334093624408510093490059942573782231035133542429984186492558211346054674175387829660130187561073924770193341806925934793439786292177324563874179176661165658034496630785618924048226089400990081226622690806461408924613163719121451480607111907416172068596468084349339137601634644212625721597552152749567951987494255574431943246158994301757684634352757268795310362498996458301542371727608559759538091055942731527858293494735407992457129318958549274752524941724526089137510741854491413917562356751820243805754287427049336164077039764535259406854594677795912875546371227401869656885593566400825786719176277987933622788832046559307890472984307790805921896901388375285986402757950173453345518751591884907196419003961756559564989056435710515315560197836047790599923681516531264695055522054258851296349200989383742607941406504955261241062604534101831152867561845275887285027964704610797908341294746023149400376263630724057014123746726828453128951583428387378994271756915225328971718994470316740802414918140717262305203236851651309791183735280120493613527802251025389816302970344501410334870989215873530504576365447891859056359965763885471387207551033315560748439463571015879256785992786806602534389484036123473270627151264890895028434998837235481941303157082800356954274197371797402744682221837266253381162256084809914590689700944838371128167770935353705097882853865222538773120713317413009663874733644303401758313405830871992938181646852187217670338713928901428157024468841568266176157487006722277597595631816302579574640702267805330251889226557058409737636404390891102063661442322368031580782760373520909844917368523456697392798410915136467018959571249838170960938343754009993597982776096903400939395195426038736561586386506480042265661975358448410082045979187544067987745024635565270742216274846906196116678712290235779327663581932703378274576667479423502225911194135974782188621682775514586016291332523305136949553425032356181464231896198155246312629067971829481362867738565236220632686468162688938637664509582495015466318085109983069545545144946642828194722149213859183272103704709176804037358358568808240360817136779551802481781818814994094955644876406726209634219539119876336655559537759306334157517832267644546280890297506069463221945124510947550454775695741623378620267213524466794254825110946632435030443881733625408692403792269704503362729988500913594584316108059500423701434582718470865234086591819392162492710316890599628819462987468739484612531614868753803966283706103077320834033707724232777664172217894345032179432919660982476818155225721559769217646337305938354390460626498833850609800817197745276661807358291012397508407841180732010366839445986136474619525938371687021540965676904915073591139937741555471727933442324878704955461806632648750605773238570906017147009769968502080253495930511445411493276387615179570871733925876182409310794454212567423907091119189590376187366626233698010858810164554875631360030354325883315161042482440038244342779389735188986123558881403797421164431560157631239936527762915335577388518095004093039407073150810949371945099551142697759280696980406571169125166817382940942993826094669958112335568262613779113426594001958953346816652986250754571414032652023413898211882067203931526814509483139893328684183148864150411868432027990769475667079598504282843701239866982242395028440919382043725298261518044909974168965487450321655748259239311493650229559379211780428607765035841220659213383095621298186601691335029250167973446239172001188566137262856796510314998112419065125536983648798463254682487638700970420410422051548785348781747198244604672301898091801749863467585076349589889621524603556608973311089938843531818934818417129658125859941262372618792869063125331636139315090052547000953974916051806550568272940710514079639269190029989202393848470340200841639707599821815040658002733624949568092256142616975587473287859219969051658913847906697092650716473909660734503958574891208282397599838619898282832965812835943580653482003814750981762026677530994586960928153625578296287853543849065454750327104741943366432787437007429364938888752089863582766829735608869291073829727913073846771396562248935993219965906235684125588604561236535295645136676092251374023545248619307456194562117303761326715242926583905130540134592065902762985656946201101108461817816924007218901524206029309838911613622620522623807732175879907356755465629062468475965504654622565723607531722308369278555031589739179154955041711990931836338500310467318239558611277810246887563098829306539765682582218252022081868529998074294768524323186047487053253345645809421587742326302669828482586029912866401065761690933319580324150254384307011890389034815398650276732149853207523030105544596892075417059455598621550827050664417651217082387314664947364952924313455329607858306182480579183632891632453435071652927736060557681679251906246348262179619228081761996689869071173221627356080011197749685020282901118663255072450545634210582115145037887023523328037332629004413432645347517518140126945642386030785755282570639717350418046707278151557180900304631618144473588788581320932511032354297808836901120205197616617579863952254937134259967917947408831384299269158692824940996027454673002610142112354955104836560293490541532763213387227645659680893157632691181831523192073515028785373576877011614098223132144214486786117138753954579536821421676791073583364357567370330276626105224237739006726788387167022256772192656656052833330170066835936641814580415832186517534318810609015098511196103660919578088436886396775094595729513442109022374764460659068743972791022108165087747601030778257636453439757580172969557746309100145011687940277042530966122273563946724338041407013320969789205281278999930964141860998065480092744209882486452270278010496487202812196674264723103745910902754692597856660913271522195766465564154760110084129694538237609834995493467469665498477486778067282419714513724738046330244856211130762619543119361759187951865390107187058687323335304142824392505454608828308554601868524030827326273966749418095982067964269706231530181200245336046535162618073481323818974200918827469345795283020676656522459669963431316873123655044989530489601024591025448777708510050117610586627487225519536521490207160277939198576261367433561373727314562522883555761884183319455202578082339656634465089898134059134082975756049052030722982271206759327909797039351563176564690247810061147471169538065139043638726260852925543478915658043026405418733252387310593627253108196226812387670451157486776442604381311585287430626627302042240487059369322202925057682012770144374686563597819143269669762372323682901983238875874883115181467558382763521902790916136178868508317497914056751233951883553930342676968549825959933513285382159822162261276648119058614819055914920545539681434432675019956141164688730686641304794887894628749998109840476483682804408433536315642109628160384415179833677349327372311142811496848683976003105862487343979532637616128635208755055172687967765360715010512813739179495062313035071886837085816510699979313597005047412246992633636306505401192127978020536701496669049428916931220183916315822639816932223973104744959437662924528686503926312058272498434851026073616381902648769574140268556409493425614960205698607691112619668673121272545385021877150205941512468266388341958348686451226129300867923089412940133140972957524219244487967636739573280098112653768470148568686103363660958987147608668740491575780602749290744953947654722862799365216789790067900064373436440265009867631800104355593922221771998450143511281691493471890749522912106645596355224776966845942291940322376464451530922942223390555722705402386066631221201018251305167526275572833085238331727897893172933512598413866388640917668345901773522793260225721452921010962919531645927059918772314758136874749661529246206107317255443096242294612192798572464884087160754730354533244059647527780377244881781703205989816232283800869758485572024582943608572703283584156220796546991567212357939730764477953882944058364898273204282051824916523501203953086521853720749895255240196545725760329782775081894563008156483212426324514103713832158094161848658087145606754209912138397152715586213975486226010066214879999197584589756910592478265146584448317129848952374805918440291360012620677567113153867514352808501140110338133306855453753556992184118025958194080692096846073722451902497143210004384812494108963850743766568472981340371075750910977495807877820280235600017232197574615267795958059246056497079309404094571255896608257831619964924993071970858328272836144846589297965563122380371935114291396139910936057964539506564978243607948890495323646315972581518586467851329615776566361024915518114332228428983192738402278465755168454672832370627529422032254747261183877892535800418790056270987000956381762035044592795088789056944282255366341441205639894438410109865628823440825186526000924235810835614341535223088386754898225920989820002789645352799718241275482974581146475965332607671591745536941464160129900046523423757883014648194942732629128252109296818113074987958919803593115778143283315742145339174562931423384466830816211770026682704809837336283760103531029619686046356379009344309211692640759103112033452992603510103465323221359795733127248257711856352434814878364365008295043709290320207630355273008409276814754917079443019853349668617122729417537376844465234818890076948280626910502997312972167384508035842264847171334173064607929343199072142151596371580167519521350883983471456248287494148150815877829891883616377375275617136694019696447842896152146648872570276556278125092517059935247793762232207598961360909036410167541606678670138644631153945211973040066221270770601587851017339618039999943478439052514478590535317061748322803180905915448431353169959966992576059966429306361811683993401540221040284874412101750580199652304692010519320804269490519157813969948759034579794572186559069628602122537162378867346207180360375771680790931157374340616363081449288679925631670820148567982386961067501213322346263796050026031465375226098733303427666586831483242153014680338554176739962162022799446290957773807065289251070867672421664129273707776611460224218510812535251704930905198856959116342646057690795766529894131153048171253977474211249205572389513956817339658383391778981840856688473460656777472013474082622229665568125807005356527525821361956882485049817416846146687129587250617447624678590812354581948755112312340616183746517754162299019660331969504476072835179269519943939844346128491789280483463975907605732330817408530178845886943323285640370170605679990420519692808588151910861201190146018787463333105401385042568545851262293235541801383312391607977166454590767533121172332707378549354651378641289734378264745652914547536898069870780239155556789442759400454614342375998640899103130497172669350936146757329521828072711813882109684135038386146310333715375062609396634021172791397837143551196885254950644431837441198528332242612963498619398042951329549939806449919570937733435966185970960673500449006583070406285656740892166545226496966090652541880089153310752218692436510483301976911569904202080556667636987448598084680426845394398272214837360774356756706097156410361752748723925668944707829870523621363630863869143455641079808691024065531048790796439783144472040595208626386029515211433192508114079249049692352309096322271871066061848449039513958462548305481064859977273295586916061818975003126856775656807394361361239709330551492555083280960494914389961954668655212825450896490190826614358232047600046752494051327375554903748094152985263712523345673106724932544113146048317960425261944544383662701628726267098055271908534066659140939726657247859883267068409490856868361080875035984615117757212846306183315058368180518357620814896509611004167960657297561202990610068607327263779119588806097413932434207889128768496658422075078474320356384385548552853259121006267103195185047084904296637614692564957483229072573560148231504674398877591796007034444942273943394814304559811855281833041900520114284470991870759420849749354550762458348175298338921539168137915240436525199566560302139667645026564766176601147618799483114798449036838206022893837037233652280119392401564244746345024573109426258216656741902080123131527479152029005436029009152270887175607904025074457232145064832157115562496532695367793672620559673849931431679776341858179890923645442575695017320798258667325617741329484796334976925520896316895898574172838809348068932642892101759708343278139157970028195505536490984004144994089642454719489113092529282616714898424646575947775660791087855571980094373000533282867392835798496683352871666164297303829559921301712642471667841132269795851496900050596931560038188554017319189276312064548602088291798230846634512646121449463487992268224986263438195363130382287682369896568707134228308796536588340997987663405867458011772471343777956726663196807123846135660565802750579709354124043218767937228129150710316839950394458079476075302251602837330615589530709913102633758126127690661115806701707162042917521011993367584082851066594764961892776381283262545201123337188052686329302796281054388780914350562396430371865820510006375287358392378765438919249575051910035307141969179600153585779806240739802103591757476638075239106603978613892611121628516499374238018546036728730324488468045066745896617282763832553898259755953000805261570932516288025966320401918099967917392665873473877977306438176675715211519693016596846219678064749790574314090288466582538934660174509992192804521116810801180843729111760609721985056935060743236324218017694117287500812374679829546001869761384154195249618758238418018804336084996380726184420339463547485072488315932664727330585424903325846834394701453640923580758807869505345074375461551718203422376808528268544394980565817501306144986487439601593253019999873238969724866381365782729075524376343428307039309810254544287202486718831556453012842455327404046874256725952595182786801486104671641456856667641645519179310202524148454705016090962128322619602169700751409761546814035163824227227132379381449755824503554671670573561349134093325788887787629917909224977757517282395082692274545931145906026330722750489403025995547088060662710208125024233078412982403378459978643266080487154536072127826153770039940784252710165593418865367434604914406494207624905445923605813868227736210689204715098049728245507695327502772571741252961775672843504220497574685096009290172548134264111254829395358785434833754131085099004646583851098842611217599287809973012113448567483135676611321630050498106264238378207148487486407084032244872979203212005319253721305323608648015395405020252972025470183809232038598101448458750641556260727243535204744057843170887577222225750863232024723393670022156818135185686153485842464605109648679445950737054301630384928994692374534564401108167865705958825182490574059975017024035626311058503557812758058363078493568387145309396977580190013346621195126692961933297262937480026763631669858936230995566829931725357412913496616470966731366953964113741716749020852386134835884380266303103153020520225119963029584964868445383200337792907658996931794940569361311399763371344799145484811742310089267894331793651821458203110133930179945232136351822153927113779842617224393231512653665344783461258752600737775802891738587780560647398221489302082846567308363811369269964274311620870298941800881928455679440582386792299235848329914922519181838958541744940444644344811279645475790899434267523205119053617690866774670442405218415419336132019000698783132058001538373880045302690745695910758957507643149472699522492538216010761365310701043161836964947062217515331324634911939210395703012081649349112663314977942559098836927415108510895231211604145517997122313002145788347811842295579252952324501542320821681409456213571328479605409416838346179430568728445032334627094472711959014294507250204256476050421838833817565991634113594983269518508361504139924325007469484947554763525163328801471777582104526318134241463274973206254762782663290767893850442646034990812935925249896527767145538082866232197171855600290181301784961742201627911863021320731487074159572575242042456256279089161504096431897261776881768541680128333491400300074359471809268633790164773276397299742325603399496744166448011103988802868705253638302593248025715207978582823147117335964458572571076396316893339566320696642284614635836544772433826584372904331034271078608686723262067661537331415471818100483384300999807724824411668385111502435555747090571715729300883901245855055046137421046093248105808409464239241604125667754172026567001839795650236362365806375702046837038383363816029586138015018695692064959364222610637135750430266276351253364525484974154440760818999574699881221024714029403502556937146897076983387651316671977737166557362672434467242765783830241243081019129106540320256216587211631378201791016293129824991901195942398325706761035908645378344149767204696565157530877898460505260600595305342811780855831617970510986370525290030445521549118772978090064867123786288356412673824776431227921386021317476714676214294666925516215697407224304187803080277622095241345244089183939214059579602800017316445529158147798271504477979370766316412348800047524185647932894644761834693657618167976118547980146377744367862043806228387341648945472083181037682965000429643487395003128621335313847781273883405408889213934234821428281415569130561672635005409810652915220515006240531583778026856750893002269308341189909764695648628550436611721339870897423450855749034132005184942123366647826108419748702296705797927715666615687099750996636504325276512329780959940336165062749718122993581433441235918403466233472466291086146867023772381879890710389086094713731769438534417193500338725135270434050744008431632079782367903350582222520604517519221397421437788921781868922403552353178539763786623116321213109842558779112444395872212023977899042639214534664950054465690411733337377757560706252606539647455080121595404309531726492407811051621975644049891588688533105914810520961201885016751752390623304098658271375596977482053913536035866084276171677961444029322181554581738841930109548154032440981503548596253490274152946954546335745843151716370528600897253332157549140697848852153811294141016775765034171109933147613625994498953728754306536275314950979105253737021260306990374373065290581790455967443955856899294463657646247788489079356701639471521471704472813658200578574747503400313866128910190561729514980878079153669379083092709858391512024977778110895438672342460326305202594279871432937979978440573791347484686503172931101488397159322797266210685006699937161914063890182035879564171429795139899351465406342594996705445849131596423151372165683890743218721878735686093803956010795469556910812296179000634639437811349689886307863058739563163747941488355152277201410269358917036654326747402415067675794594630798488098739507729383907088826515738723228776991835341904538923187012954720303503475112410663211023489445065068163990296226214393385802651799015518586792482191196363022649760240716526468322309714259117431777857239270769511959482195212586712773237887265355317875440223112530792747841922057822058841623582654004510055051617400962536514132506723498013455958331004561204295547452526609011278653018482814608643868881149025515858716962335334877747771977843591464643075411672539542110207601917768893061856595955071880390246912265834252988415685433342811890262955394380720115112174353062506637365722880494407794522075094744605120564257404634089765558095505197232383526886280797881124311557097117379065085853502288889362121487676267982464235546154020276646043279744201397020103891885737461700295678562726160735008006176955200468679574269772424288173798394618462066490828675919954481586743163825661545865603900235030944748269118891073808403734573831432296290215252026910848972517177771524002675851431141945350149264479057682108219998347531833348604055312650902361413312460423776427946573082281510400431260713288147600305237536300874281209546357426149590983365210254604509559404386376599690919317522780631439900280905056178608414147548367419426406388132378021080360183022814668662296723337116698451147595894201728165973642948951593513025420579510758021686141973398533582439917846560955804401662346158291933227733965090794443717638937555416150987683968194756490312746533345636356953455960337584421397963567605119305175051264341785399192426286655203370616167953896390843624941887200328535293071436148856039897567730086982913302650685024049541784480469228570519968730960071252895212958763027194685631140182661818735947539277430362121407752832737548165181202668699995793630826637670254927701887718405663363819686596969524320966967178070401815699408008057806607451687445979159404001785485456881684866044623769238214627687231285128257037696347723227235395524860978936785307963947369547003834406213495807684029774188829470379940584237673320872037141954717572331086843875505699988387541595000673012225472297777371697809280504240437980615469918747395904597167343265513846987274397198923699823510690558973386292310353892928610524189275300371408355933223743777745049457421443110847028409825078330203612116542266406977676329680916531342484201305051202352998437034939301189857200211814629157108541877792561164084035175282732756756653436946019491799292770689299485629815303769068780417791312296328086542057662834417018128138427890613565668241938378751892690945831669803924624843282143644812636135418239747942336031051249570779270518027559276550709192419673724420856986258160967122911291988957368074161879637288450756309553201027449931362237520937846904212937746549154490333187577583395627198808788688905778458187450824541470758562241942666768276107219197431678620651716819292031861452323879415497487900134945284478776316521770451757847595619234519735406338766537684513873806616831772930829619760037292283989740396031504546810802006116534551563160359567976207089277117569376653215391665853416474768521667917051752556049692062505866709599954974974761565019701841578758853571896331228236501955108302697627939124727217947374926796313781624435308731781441051567955567952598015773954326515447374891926880322456154653111894654359196805448919548582577980234762300231519651161797930875743968323767257995685945280399015831836939652295813967883745554115376095832981957624486053522639712877474364694620907516773588116982975605793417571106997410791439888561088166734318281933282108925115601024791289965169477699643429515144096631925947979397319917320792908568723791205099603382794795070621341555965899785445115408575726503773552506861634265732462475408191248720887445767087457069350370068752818589752012751579065205917753152830259468649393457879022309616787983920519412191023383635688592084541350139417556321743112747773712647686161572252211094389781190927802228289245622327926825227370819076941515228631357986149158028802847339223728212178329632889560207325371449454016337300421184163832426015534713897411154782020192230472610819960848154635688188265365813832806202899084103589414077144277988188412705198662246159990412977274951233691104768278386537083710456693196754332104422798490313906022147712161900762375046458459570210651338765797644722230390457783169940107137045850357545047883125608713392646392987637141489182749901034031839825186920836538400687948867474816807793544452730385495212820977241554461737584143731762762735473718175565844865053215318537141335897729067147608240537154890710149650596539521506197715680721095150816379966971721410996109636061549723444503095763437153794659334387034580812192356612909556709890187025050519611132269410363313337197084176619149980999695886784090135668545568951857911678164786068573124922790306816555622362729833572628463790114492498357996280296238670572329504577405330846768407902597215629501080170664077906239635161906687392710331323372768754033181198991917623375753310117740216125090819859659888687253824368005487304113851846556557062476524595220060970328010317201703129693558171585675016415888458507274217445015646164549566621280606346119540770173274036026658814765480563843033347770397495343650530531491833603003050740266155482152160780224043130658450062979995690896399839113206433022284404744562439268485006409480933403603339268242737138057103195073377445819139342975107066694644813769650640689736683588527224358134694963108520498164523396328934209313991652754100917246569178651314226122602824831615605198107439071217849264132704497270228811273482738947609982186828162217436726126184521429219647193630928356534654598374051503492227765115373105526381445152297659985498889895889625322498221131230910799809682179515860190633578930817396573445563964683542775511519577298011728252555722623415986886410235111451417595205312398754633330307682979522750020534200127027579527704169491528457334830383160122284175101484721641241659323241900199306639948122542190799117935094886505672871159733894185460754100571710168060084611976429708438607231526465380592257468353272264181982033480148265050573772846430828854525563860697993573537821918538968631648524843047597160889896086687105285803377965228356308177482599019276344002062762587587636582465802812042281270954279449331437113315584653562072399605644073088903026878423283614473618134601891315162486655383076513547618260082269589087988654104413851821800419741581581018056708695665945249245629371410953437052778080032074264914743633526753577476063715501468222988351880737314811367764229168583557985488973415750214791388295531772177845749351477920106351308352868458312360107533313480119115700442409189532675468817378879005529450506829009194507685573480301521379218621569541899122704823959709258493185998971972392520568649282457051987640435531736662966617863173644803280177525710551547604625190993563991924533660062092607544652070594513551948474568009510884781765949632631578352253866137882941157246500288319736094947233377651731402556629095857344117835777088863059251063839177205703403247971113344204355101636205862162081156356999092130392541945408260272049747149092405766413773925455612663356890297518293032330967100153826958457052015408050453637194869900431641768641977853248186284593423793652097628572682405891352072095278207225903741628171188778100913948524627577450849677167086775583233388960753311102718510021887975459358615540337917614576569253997841919467611010653405210268264097561187183876768917399239442706813196793858869028655700747018864329846008214404818751521676604098087295855508730130397488863591136764343709410968433420828275292325488934842475810190452721313233207007537154803419589023629349709018321270361829701862761820695357294352556443951251721579143848247560358305244732866954384570110548320173292318115931690606798180633416113438386521991608865319579751292807764893922565757602683065135216649824048162790898226620232695525160198175060494655733901916060486815816834519581693328488985522475582676659000415184197786377781035867470814135221495054625958012115476364529827195463203476671196689112074768968540187495306139735047243785986266966659842796423550581858275227070804119371537234105366487009252826829644143580142352989174588995700254547874063868495575076317544843171724915671414048417581557955852109186600409640921193380087765847185027720723355486894795325532526837943678102606573339579340444605806484860837254086064856627386761999795633031354391207705814697896191205353570439051769852929780382988035271963787658580356346934672146076019092301367658391274161663862460630341123522003424750000124763574892355914265693146673820424468565348766738029384569114043320290902442742568494524138715589939308878582179653817761453981174063452371650951788641379365867009344820475762325265278627984983514683756940599718724007792873712316410079902841670718249284325020199867660283902527516374434614136734507305030050964898396899027304859037628794597019600378052995875140000376274818655132857087410124625585588244697416200792001489054983199278429326765419625897535751669807571658556605015093676251286263735843098046916058525860127041765749973785512942813837276137673487079398612187569757288414581181649979630397098137140654031356327992989489619655993588712055141337959861029356835702885848167444283642162418179913566203265394144813401024125552411869164445512546941400370902104504057878845120625923249375248089828835078736476151559895271746938835436351234237335033250072621768245133063043426104884196406899092125761560465228757335361722855547588261740940635609753827382148044354792041366605886030868872839715452636545113508416017047109318637754150543127024715167940282674302089135133357841985006696455517499963200904891260347315565205111113294616420638194985185160041366687207876177241736865125306295174246364530412089314613961795327146991284145943471514310612826840460937990715089108562649598038600983188383040330812260243950028781977771541551090143828312152123057678075599454002919892911886748240306361685555086919024920120395750993009889991441029988059885578288516045665529248356850315798281812628702139153654629997962225132471361406851163501052815091947956664053249510316505229149193962267057402267297494570658773830275722766330044357284721236548069491479198232697963823395271024467962805606151026191853500552337181383253330226459868490354786612470341123087156592455711162670268616215820189353163259677715082397609831143860079855245610831502045156646253532718277425697983786664767051471026740273558271996734564450687193197728962352881916328729710845364157361926652495223573775831929047845863035120571572490171296968817430820992167589553477235083987663823937057026967152717160595605266479281703338922906767134522007176968392403763764355832987537548042510077477635360582232995681164864457075415149525459886392311394674234053748156124521184537182357282040463706255021261164392073920340932479091486395996694648360442502393821209513063711054268272589230358344055415177722371141373589275680497072194488320287644599559494482494287008138655539618845688638583257484682740429371249851155995381168550629176755135632677280588745033008592681577143267149654293450078377078287206201132051089280440578009700032301483172601870805629063490032470727329192255359757866479514630174049064992829640453022854173345773069938170298961649736273505106258524174807625374774611369386368995031434020596554255544872942253944961142202491060315470513412382420617874090497527271617907546816034619125577438718683226942383770208934180202840547500607878503158371658946133050734649892004935441069375193596694405769311634805134501239439003087890666181120847064852264989682361667711171122679544512746018627692597067547282649301710268633571848994991426006047686723966712962834644846863484145502490041535050859046087477732644972906892306666869015610062961241766361738121641468661391367479019430128077001358648913175817415323477215539190082624309351842272227096729257957240250971053521187084208378153896788717673342729702546151821268877162294674043388410801595693453793846828837234976462725871977809073982729280790785061371349807021087994079881916596776103884602774493087063558984179845013988488787776229264722759582827576647522478023207707096821449033079020425603329735038067162530721199697320915597804655127286007444201929473380072015152871764986207291322120024278214459602196928651798469087255878628617810807628582276343280402737709672152355621278982025379468868390340245775958807363182100559300729460436471462549458636408422436145119036845538544609176141957901013276730078464302636632353701924000692362471292377755717530717719681597095533921551059756933013477316333521394510742860964566553084603707880171254972247376682053981163954500205238384821470487018318369315722327146371259233829208474494838683369511072261115557213607319324950363632130362431445399439583802837184120638171119698865132426289425257903085132027035849779266594391742328668473397918581152088235407440810409851030120311665847348425666559248687298315312484783346585486797177003827381164799447923287797866968717409194241913048149194357477241984951699537362309012460368526090031696421734385357905435992180652255665722195815959720575622252374454075925842868187699694205160416196593325556415442979789922808674938281911482171349904585401728665932499523462304340927098416103506907437575995244650977504972021783104792334389377557836350442759347239261072744129103864998908409960788857210938217203004186174917695694654812397353128240521901129387649830436361092300752228070165645230835885211111354580459404545075694205108492525893129132694606958606055325985574270125149251446093958375750724190167526481611640995882272739361381850290670620107796664070242244405774753341461964411831102926187005923676316567652763690341643784625622766466302246471639145758688639708456135584071926862528300933906678144921692025894385397621246875782936173480349558186411729846507953677829141484094977077360106677249388310192285482197422026276396990354273752339149116077470725368482003469683421138131621729935345810202516707148969170492680842433315146224612851904887158378190962481189829788951452288243615469162691255511946438184512653311691665682050192684861229396049301914982483759835294412147939120662158343246952104497329210087981462240275495044161404181702584100294324082598079789858942759734956548953084040069974029816955418336086790778653812127089333190462112974211815699737523929206187234958639803545126930615813359393519975359736790810245308483579990370162622540237213066239581791206294106625322729596373869439388460688036438159362045930223408504947934309983714948875817658433169604046276490493895821438665422212590742797733107345081948983070887186899861933932807728737436493615465239402163409827378757320266247547946554483973883241941367878105218838052456159648206357131486485682708688059201231618508314944754542525306431057275021781785205923076492306609970241893859905522959238099679962137010465587516269064237795612785338171921761131240395814032050416847674069505559642834234017481656249608393032966996375815227773067009729699530034576232600745619583029504937449595626276052449502238036156768219530497045091637067871729163300216917896304594232300981259748352026474968375915345930721041082861235155455709223714696483152026458803109256814054583244996040546274082965036197154893489159036253833624629058529326855300370409569820204669559013288843127460383812610311739914099395948528260430297624296048793172739742733430062371532662835251328399625740612128500451740457262704167691120232445542778376281542150571288805067909007489843799859614290940750942203163332656862792544686929934100880889146901460348507548222256164432592782338626658091921041056937236469277522181403333569138663275382861174088419242875684829066907908030979641122154404246024361891109195611770488328861488781265321109608759620621426857499918968451710818397367529022331601788421282085393133762573394233503973370300255310284489362390381928763071324907505728894934615385456138484795020317947288870762079512096042363343492118632861633627966906212923676538064791363701630244852879633785736855286204663338055265478476154778542956102611329000777285859900535188891720170230388413708204646403089341724671240341557971324675677943166378327195982477612323562635460036925398879005886472328642570710029243637859251414714303932227435559779795332117241134650430969981648061434388235630447173378145845663788982340103672592567147918716832840086026809477688800896962592016349943262432925840496132353467090326273387233061577335442992984867497452274316640599359487896812652340741438235117087183875640856669811847774974710741609207020743513895736500275073714165018231782499394951815359726641856127250071084803531619554940238403414930985482756315872016711751023867555794667675192062071184174076250977586430124070486501398706638187313225862818100334503249662979090195043826088088736883094868966142916832144227465711834127163503551521964892050169934512607051627258642604598015258877817544515781438647728014523393445796708509943174791499646092432515040915157645557022583111417200207772082861364832119980612340299389647820130931142361315799548022977836282253643782681847326411273762804532562884389364241717363826197760402315183855020862091416037424831221146942917055604512108665717090297896620150522398293326681716371552487847747084941226927446596392536731104329234087297560355701420357523111406702769607104653395917953144766596197964008967584491675387255882082036604434691348878388557623625550767236307725462137858958782474331106885176231485162255662085606308953346032320991272626177616295923304735969045829180458476350757538255498112297918732896906607764426129909898625863107875420184083838761641137578520443664239679515386540047306191545484431661064347016394434883093517787836245326420579090346874961496983037148376165608944021503467319900041053634420447738552142268342991873947887167105422530604826805441550010961225897815675953874105726349998783285051414533529433891027681630479780137692785717394784673382032521754933725399496505261716292656334699706424132979157301565641970517108378879429219207802571163280297070358345976680116893383256188559261997585151171636438828177647809962130827032761109358485210386661870933698866800523354004918258948202299208417214188656011075973295295642757044447357269293434045258654277408362838316156486442646036331471182927852142054082539191052239873996950857137473274490465755534355341966190575976941447906507733935343772329162256008310958273439880955390567798843103046272160643679187504993129937746724237698728811425922898827779195505290466996037648159879886654677087058164236295686091511820827783940740622161762914751793832593988976495117774009732620975017658073582281345456657205071102036742364613541015959878373177986397656160512307441299026163410722703377045582674891726354200048639251216084851531711986005422108633587116146479329892117307661886177387458248345007386772548867066975653399091621714267921052653233075248310053433648564502959503620020097434810682317958877419276308017115116852015781634210003146952927162717458233486591387678043555491950807120186462874317949784342003786894504465155852808889282194192875047208015484487185046283168968780123012042551534573591233052201893153589858407963416148789314188751779995000383304582341783729568228742793604578170481108871842161539001495855229561655237520446129198366667714182834152402489538476870006825961063638779364041615312167902091855213918967411270433374483567961742686692203737772420148652189239636540507874831742173029516003156437236683332473746488278261914015039529647377219111462290258375686594536979037727901729647820332841383348596664860581583202803125035245290661345240838436036618680816614337398080917661472558093892677888496142992529101391332197840121270177293747315794967402058798600492737889221791403249489265563100691203263939552373506437070501185377402259433148295113422940650110370048922182317038095481689280400607404887608300202357120867161196933396001148211840368130794696690038585899742190765523407969054227134752904574298686204835683192483897002594483020720049415686718658310340119114534662397382009635168054474636851739020646830873193597810774274456831464701240851883469195240192126114033517336884576601823950317785575812515881565423860044685208581585306965266424072395814325435364928278231532602342662300937786642139113550834237918969222145173294530851375197598565427251269361714489487766599526935965307535388454017132026832811601336532904774555320521020904029316711697193979556347133754875574102831336872126448472544130268738380668538780584596682012363564361655007249687068946640650118784558983205286564304568453887472368727127872154423794304327184916044889057910764103817343306667554996802346085958012086648921312628446895184032425355059654438988918580504455073165581619630762540854284549100003846519410720250123837285540509710788701886383251278134190687642212418585524915881729347384281079259260916494040802298328479019311423602507487552330219840189789794500442370310209589769720453988334142744328284353679072741962472206073795906008721449915735383533562540789966023846511755735102008597679397484042445139823649193700765501336192250249110363563106727570487864881751084653225408613303847589040085528037548265883671032934629130300845593753425532981403846308983906458887758967085120522805559286552884002564844276026102599228197130211171080934013611241459927287617353570306354847290956731322124801642884821980894401549890120160541514448545665064505306981393073854431432137708445391192948636169363220386928758213334073697456450641234690504493871133900868161028908007846865584056921382224685482914639194408952581860649171788753708538099731794321132131214306847215538342438218555265655646858379859370107143962737660031391574068790999513706155171624508064534095119456288619321222211699212703439371235788396242202945756956476018806344773466317998425278817155758139393062884453545593205792344551558921349912453696948508128308980421993716800465359306407060736507237449104325633121538690691780584316962483227039885845749413955260310928513337722152177311293641736759645934682666172744016130214196767732355568251669725135279883024317557189765389344220556289359768649150390129508828105093431249408668182842168478161764613562304327241195674326465232371382240181539480225602043446490319847444226976854925832127923554739797096108068021467812603672933471877539290852367039380835020215505755144533588909507595943383254992621393465096027070878634302922039733193598494847511723247184660442309727515664060042823573029754627391963876403345124293683364846126916396048827983700457871698150044073886071889067191518914939090044195455315392915676479202326133015396620763201299995798486926153832242177829322959202726988464001395287576509539394017785474122813052298781067899849621008438035516959616392953667145258216017978083317624978703627052311810499025246279431929467167125675302195032929877508320238658867953923673775684841189722001360085523916902420847814738151527646673434394436394428932807958510128877942447060519748335812664227688036420113309068455174938642295025714983338560405886970541468222689189324361678654015039861034237980194794961052459032723423511131828129733297728907899779405931841864271803400609860987050343525993411847438168917984855876655979893733759793288874676577056373506741269716655077024294954028898460408577924206465098649878709385063155972822771948435837810656176077307816811763925798329245175132523086606876494313258279839897015035240072538947698604108423867659121598156905197731469586749137987700978551360372429360698266883394128656757572712988061480995718293257337156661697880125702741718367369340179941647559458372083976848210646600331447206630307576263169101461588133434916701177081970306701388331733588090613233151966559060706469459926971716011719814544303074745529746052099391276330426796405151046810898334428556695879025297581575550186792397834460054392612756118255224205552835777955505041126491394870928461947076930502381889448926923526258668153937166776894563445420752878228319024452657275525282937811259166609705431743193583825988429824143360830483984400872839338946741677241307832455080421276358143276610955165912712323402305738381496694055664226273173532033686742167178576092254343279009204660362904007478149526063877461523299417914361501854940022192074587060927034611135549638177466366931360026689058269597367665549265439686916448652451430993202816644671978066727670116629714646904501847114923391028643624082931932327765642070193496593113823589290676877605375817687321540674332986509723125965589029624761412115780428546133612935606261708056568687044843555050641613757460301869613803352871642100255840968040015094783539956471081544413712326746885753247354285940058936102033206426559866636958272624585626930338284190176378294685335934107859235659419281786599734936696511126853799337446558974988197172428832164977072219572349438733262754228947824921879335207873628884802859036573513850268190459329931443436816306848648959122997594223180874769496251056116238453963255608044744637028102632423647351582219021624493503497079724278367802133211298826937434626021548950677651490637545245550616640592669633987534942797554914855343510404463931270458354166074904710381247551002571040262833323542551856048080698352131395069290815204998892981931365963235599557817827702996509368308682313841714029914211975889324742640040621232041545491274464990183028130671277176453707579617113216326993089164919370784231395960089376247700656650760569473785568658892769728752244426251124221370522421094023688781920369091889663644371635137407415005127374294112518771939843487806549229293113733384725158082278371997225778013606721010564479908988722650523656287889222041784808136498283766521998079066984226981968033047830777740216015096349798620855167596399367131690473778378328439261514725708020604383401591866505712507349493287894857544164028610507860711916846122752790649680686864698781409345948456426110365811290104027978217539099149827358770140987294652443429353584604451140302649899701855574148262271434611479603989520128322911949988472615924630148979804996508653017451092782886092819678543352728742977333028687983783500564072212152461342747862990031470050471458052214574612516926847168168163273076587053793795049532534141500051759681608687306396006564869545771998502965073548882086851838463372212542100801629402631280206879464805675585467473735607393886694226628742413858175927165171671971241597298055959464441399937136411924992910761780351761101925766398960967234614231275865023889633180047196489368744169483155609476978436572965200686894997182464245736110894236454815313002659530234860756589872076311264640051793006021898740465221477025225692234857178531306543022553205213758989782878988386994117911070659335364093770778546645538330890402745019275973200613097696877779939868187173802121586947027788568698865065131451497107997833746813560307199604357665922212953726127228894418814658886460957531452410054036736110905973282300047854098470954132828839696823491042101150930034234618306608569948120548994886256709385299792854914560490451583557272519817016085316602391906036467193549654663679265608178404810320269816772150971393364609702358660960513207351477877364333066392766564058956566611593039343194837548598794517012552468124086426589855637786492450076028220547083959286948678825858543568830236155387228802114255249263021901743661049443488030220291691365318013361791395429386937082388503331278413932319391338119460999769559797948401710201709840361014861615474187030055776094795208127064416560666448083925883050037970896157326577774346894406383177481550919864242311015851669735343139737766391571001283043259524724259589185557491565415792936516424242216124407388733761179004057496424291284935004485469803264112849128510230787133359704187564622200010916974182995466033772502480867349496031909830378330697644185422233321749180543358272388182057891164295877626074152430216088569699175369633697837895172368325747574473754093116252638731795623358464357755182955370895824532304504743560145720754942917096085790706673478851510773176291715497626240657328086316997324420209448787245090598494761984114481150903758814812473605772127307163823189880749675015128767332215753187888146868996434687178037838861213576994610462051097783034537241081348022663338613645171126094546259571610026758521090471292150285813594010932992633756799431871848253446853140073983242110505335631037890453848299131727974415760207079078729680979319996692916042174161595005192594307276832652096334256054989801124797286656056612426414138277798875656478117281241263377470287539803940882999074293508003779541868828572642955244034121280936830403404784318251656752728021858574419738198286546121879561583772982693497183827108645724784102949807109473010455916330954586914542508232478240401627824372605780791015369078497125067253363002950659218263020502772290582948380147206354601401793300873639439169029955706219339251934148685894309490511387518404862616754777637269716310410091574666560371105978711324859583802418251301022640202495454365679245699706468209715644409272808313345102093717611609272426183585963517062201001185056300605467949854045053042504893386084527096065132103668471677737041935635375208520285401535076320287727285625070045573303477199347856985566652424255046584776490961731902346865695327978733356026988363933631781816499390390835086634556575950805680344307437153628848277481498731126401850978798910953984583564240851090840448695070776935431848712486365634879294211469912507354468471376740992927314191716573817702369898638047480877144081715983428594339460246489761216505156488903501807930030728139639451934555492840872818145748764744907985163578125958039426759119607164665778543300815998090192097684675423489100558096676961328851230466217956522226675962264632326318297610043602097293072549393054612479791865378260147325002100705874097989748261450761839058846970820866750052406093821488899636641651289359000822777468577292292547562195620161689797776601121117411988296167212445643978233959594679311770819013687160859483874068970062702710486459374192141999858378109585013217171706146090747243479149595574486320036007360938819679882113432860825705031706487687427785818689483069133995931190126948283655113961006610480881022343867061293633794690824158510717263497412763829648317218118863486715112856557423209790842773775769223550021593131007345647076680777734224514993121101699725604502532456750289810308781252452840753042566964863168775711444775570063997893696425105819888899783229076369983363428705519571858289059006093076345356337390180996432366754723497044545335309327049633076496647603885246894955889315632100347014527835493081278678562645991791892561039641683740851491811980701609473565270440372810893323378957466664057836280764679508340665410576617378247860944292304264587236743311218627275174066243845874235042777841242825788745312200841628696871156416558407619788996087315501367007716078378487637846093015971464493232495693718349052946980197966300444779545184442172918058593659438928883256120539041628970870748278225250966599396971012645178309245117472245479163466313238034726949501994108799892844288887013099170427877989555480978594862718625024486289430589498094270563473468040284624957665953282347435601075408767607206418052283660057480742440627083597546748019286939756891889659455150884577585372129320339021454326468409943019470820862114731012953097442150025479187315135742052904926142795772399854774487320566593305871905147329275106380686540893543131069099879894313672052217616297203243356941082298165885683066258961753146340643272598539976812160170623142533558486766900404784801626630998139111973057540255115260537751910155954947808378489859158014793271807817133538490329155301274362911062655749907273456858484045563040356000359010101468104511854840843700981909662697544761141684475957703096213452049606683541038992869096382059631171520126168665895171236032681981495478961300668626908771019788427994502803996969671991597514527513684650284140309808216792494199085157730842109812299418194685286684502316022025223555801267090593793231186196012700742624326479660225801367753510300937703369291370247813757232729127176611410515573766849382094125204348956367194010434236816606623003382362692740754294299051820179281727708168594705267393031265816752383133291279597496173055096510327069968267864537704419686571787826456137205420266244663356338162489487413861238403885483134966416948311120213874580017401730366292364143110414576979831228182798065596305423857308376943307423077509137908441643145254059149040903182384706832835997402563465918630027276786482233629708727296224053232699356086979307936639698517215103257929368341925568789892679685142934148073396514213537613597252486109878234704661778755609266816042478190293242036768881683803759954080101225593178644251921407353537206854076046780594266139146977305738178057933872417326295991321844196225206651280206772880362356656942924199077237609644598857914388840427860301580162800124490711615079427527666866359315873528198376909001889311093413763839105631717215634100773657339059710867485078562233825044331965869447651115429020652638792052950032266589815337239021119016151402266380602756068914222801252240726154535039902673422657412253043506742876180555526420255146291126966901359928397965890246247099958103762445807211283504865003839862037237246612281717666047399861884740097663256693398289476220193865597703157321400523062672213601984687027078632438951691816443763967044503742399456488307826971715030269560478573471229780268459401117649599976873085907259089333821633269836287201435070599365343001389064195163646610934162145415771046229537189253117461435272415435757327966939369552480293620626634638408739957965916556560548060311050296734727364728335347646027323048485757778517207084587546470478375063653352282955279945004000250654128174257488031909159612447295837674507177270295953009263605119913986947971109599399522219623440766011448052583512769908535980216549813682339098153778070641748152378145670064234387973277533967667121339388994130523733405238804053353445400344662858944779772916560398280778536337041155414380428081069132674997663306371596006823720525354125404312085773513257229405551556445778821785614478049073911932224027731050993810726532873574416173666902903592890434593475995164046731787782014236989630570132850187067211981878986979246253603211030957854443265269223798881784270798136591926483530252582290330625964891909191337563947091252740925170357736307054636893107340268980778856392566394860688003549613340966638543417338542770998366287840339722468014152013208440887106424229340546190088646403256556101140702334572396680026027905317672301149753536382342131557910590831732507342374237136900280790656322879281346431942287575176954252592423613249979841272751455650077217103428253979104245958930092612623855738337459244893545903663110353616555232284664300817577170437412785231410305799422150742630261602245824528259005805228845456914516041897566712911344176291993347661163551074063733702413296350344614793330868560450293731442179845076368531405234168116871488479700789123199237782689039709272736037548693261456386610805066093317065992058539410981830932504928958303153336894703298951289846341864624306354091303466958511393044387814443658307937856021672670063528565634436248158104834345686320500579889440046073843470146308716408050256058120247618612640423345633532571907084492618184521509204746324533647346717518611506818559692984736653326900407220560973869137442697508605957251929731200153791849514379713987291329350358910208127731942983588227018807850453160379940024278163235607259920884935367788419970836276560311536301957899535837848518772536825590518288714460774630117824697282173613190838700486489169049415553445064106810778171758165869945483355960762481418675223209978544373533355914081432111287527677500973495454739716016752943668567008393410366940430809186839745157267705775809784594114302117592190846714982053066340861157008957569104243670449763411614556429543750612669777570243206110128532378080731250563668901607366698170667600702030312589818057910457188939924381071328036087319117284325057985125613974721866071647454518637704674276639189213254777812919761085568225440960163107021209859755019361388071723039195866742410788995177104594354166520366636250018411927130290455618695151957772063511880127987402574220521681533968356944684550729947533142161118737281824149682240578119719161308451447898058417194208350091863442730568406023508408474463012668450569333745006156305318954351611177627743695032632042683583007538419871244795232438290735261346799226749181834343620320390138760860347823214045757039396160550305825972839415065326116708334785848291901000791240001662913127294678862152927487134749001330106246329434199705832890243376209290334776755120217746935940517637364086385153607571909681286903158393904582178187881307352925362309013118955741821198183888539989999643449652828540884819594826217928886066064616363975143808701017569264689626540735494438516109639612822292788129728923284947284266609838649446156361764948337293950229949577586166089137410872075961847236107579754839439820443591743338203220081176762555029150551795540294976690599140484304750896973048417191877568093965454616390836865855259294436494682873605143332852073421308932770669874932851579832356366842445479170841713376332813383198210710785672709547206356233248920274007631876344008527331878656308401719755008680507753230197377049185264894009779572531828902927122671891709756917718993342016021666629915699830877562692213760228600501164341257533883606092504750831896226701289078647222212079486703120957757682909734241613319345753411249146138318342841798098322674111282503246468742787333071962604782552377307944861363503717556540288703397866589379364647163348879144597355061810358899366152160104165507842771096366340156724640952337014073396183453946153652627822397170523059258462438085864935928322569309918510991976293902118067342048582346158244494463677791070965398754874526289266102130750340667508544870123760636855789293643874637587912868682641871405695235037641835903239948417366997344608506715024409735630889389139635615269704578629028011333624968055111668107952556985830624261856233670386917732762352976143151065457762397320045287790728285764224414178613943592156327869844930418990285052031766914896609273968723359312061712349119467716448119921931728283854066230184285235772603260610097375460651002563076048210368536059311078404560812247268365748094798851995866327108209368764431768267262964079591663813268801295155242617738794526092381100086316036038966133241945052442583309459929315999085009988962898368760355817425079616278128321620274819928304548625358250141490148939343025178538566452555340068323629922088385183189485642638940139189304006805851630690125618140945314096615712824134500704217919325618113841345174751668280130218090646931761960531423255622162378576195455087429650697607168443878818566262514367380382812542985717649034821240504936120364065385215398868834448796850248929056568387868687719318764207032788806708208786506307081547872079546976234978145888964460496571482730342688523079464336553917987836398289640356029452889787149351164457040945733890941933122506994044744705218178819916197230878051578853094266610951497401602583012759395098294602413731090436627027679374038105527042091572989466876136548996154693007254326301817061204956863530177680899502901616311178529874088741082158341058175278680145157881767496884374156285900873237791280614982995930699540845148435861879177018880280943354615910692332773042942572695783071378735570710746566918631519849754322884041921068092024880534658252996020175509880186834575875287765649170303435452371202928301586037496078851333593456042668567481842571908366008524610194630156142409095405049526564548518323424836213138339718750128816732774599546148882793257215984701848350488248948979557863072050945927541108663856075189606255967385037114769051344185502447404248035832136228610426341348764599289324053961437642666838913459145543006302511171258137452250579260912317421920998358842413506029015171592174617639801917654663054028575477265455494583912331077649995235607814448109177009802000127993858945283514874418054697273203300116807793537265483107530673681457528356406831339371587931065469931626225204776119567856329481645886255338066126642314746133332779988657377051120293730763987623437877723295215045782916770209852741629815534600901341084477532040418980701300719173367686848201150838916297968940201215957418737764098499289825090795981689604127976921160255931219293153336008972442131116272123508715122612271537663577679654155085784570379971076846947888587066367603919846584184167765135720383832660607233195469723469488462802465614762323636180285966421783826886353163731060098526957986264618506422412624302741234465235466103775157777428157662679492871414371062254861864119863370652404657249080848447169188348798435599398881235100652909789920953025317302799884633855144286937977724607782874444387356474169630637874816313636890542708002945393608387794320079344851796932189092888053212101609822208075492181505864076769160570280598182014979599624491030610810751949307176275920778111846455870931144684055331954095839958504519413207147761319671540311704750029007010202606745765139887092711839372669625940572295054363390162954072522978973622391579147941045377196975547164675574844474974318611221901075464477169815763025616628816674881176922663146383185642473643573854993362649915432347647034084905999495851330741017050576976005071874353964214417219155880437078553518149673286574907374199769362691912393167068313868415594081161832552697094541300587859227587555221947282797260232046995988459777919285862823889433870388084063522856832823140248427695267207510674028209825436763939542929101512739001684057449928670579529073403819024336495367138042165989543005103189875771906647803739226028439478900563477147610673151918494133031347494727748042561256720746953791194430844203457078480601610868706647347008890167757950590068070879617084846626974295008557160064033496448338793796100474974171271667469453355306027645551293056448780243562038525964556492097707213820782169273764662286394367406222337565912749848796617595041932386178555990469947237547091882367518925865750818479318213801509034958417086365607325628153033396493597596645752769736880086402229646695192948516625840833782943255045952900383291800292294460900571524321341307354832537729857284335950507879673339227274727656808566744506190329591407603030111922240100387841946001847242451297921337221413595199525458209306673353505858996955982426639955986638946682545448187238160853180132919140757631638886227488456610398746647402898723841069545324838625058889230627328248771144866137867680686967180717042582702484758635552932993811873594705819668984232826896507053675765611471829642615601873334721418729781192373011696839893554523325691146133917795750469778364709671990722801399545629235065027515042118227421112401427798397685595404782283980057756839391212061440250647159615070006635279831774833461413850044269231258032696416922382543806107656987111492320956556919287531792289791229489872481807780343607209563760420101350310286163500331131843022079016688891079358053209676959478930151928733608535249243871260588878324703671364888047367494054728062666094858320771958962949968391773054434445809954318976145736239193608542730404493904630286028629959563074578291455590980767644124986923871357766722543959702171529451699227374442160017783758547313648957463877633711851230603298266016760773480236248063308565228894288272854351628010429524577769759370427589314554614941223859333454917389609656756107324349197317929931826192561976770298518798392338157208989021755655575903768129947857614576522696946376967827137501584938387694718040285890040977989702326162496299316539902580885308358826670237871904954890032221242034102614339982531279949163813418623142568453315997508028907520973999273017467826222153581381115890289824671955052402879875789781564582864002966221926243375804077757495272961498263282086699824307761902800733444166973258614196627299504164664834668709099356849443436764513498921910989980981166444006466313848122093770224232850363266293670504797313581742605619172364004027314648253179446373585643729876678248852799387009379164551635515473953733141395566870196036956327482277861349141228181108731581341054541076591259983846547021992528475416789444836799030998565693114217530797436917492882137002340595131822972415788055273919604833676815752376896404974705882091043157838736586433765548689067734774928266798787254850128685597255240094173331374034672135569298951684095656910556791037390036458255786239871596167548462821400806462847648385440099503426763257851013958349097995707411328652798045439811483798467541000672405752790321497726221566266762449067156068776218663486639596782287438207968474810266811702653919133507339298116969107990608366632031271844295474063959627513610774009919555093806176703265638368371525002688254767050836947674991572973951540312300011189692540989865771856228960012784035262659227250039258555285899318003851317187143020475442901427907870682497591238815392712585095630870735022666448695975666058147509139831457614899140450901930259564122949381206914553408019465734517576820333658851755147358797046823767730531552057837803272681686646023765047337266812870334584225209301603647099937129508130384533896458798786076115941351287463119633106576442361476137766074557867048838414163526805117208933913947102284480240095237834850185144948513801678437347072740296062621162264171306942209497063372729496344984954126292081335071232791797193944506619715295901135938075561154204204751793263258085462151413174217576287696878342570042113303514015997579472387548118128987926825414202851033490817218525408168645455632868073439289715626962665293084566544947140503742684820251583683448875795300188593699365005169121619618917319083535619789429647191248538553928243992077213535961470517192666479067533104328478206335716052912290208122989917128741184653745849161696410499350103617346736356714917633532061238379849712146242212376137662647162241708802162548605311050514718629496410933188564128268710247187531104328471603746497695121810796925911393667989165086114371555780615149940440176030499016599605848236911958266215011769636009717272317440750274721500241875210975045110830430210326932994171055808288030934568124152038434221420908083126932998942168029379471158877646997448430686821162239233979845055027761231480362284085602439629003612464801282971063648369296774268625800975365051954295937457541286121441462182049511300674802683450245806640352282045143184360621329167423172848885353231819278165046056349383427757755891914552177812788072474653608707818581295390225948958013708365870203579334602579841411237523880932951764967165111075365841908182032527628084724724002224685608103046694282181238304395966200842671132949086369745653342799034425482980692132742146548588130428160986186928788180194401867838330886391227101836634322049567177538212952037745425859679336552689707803975232898103155678591918179121536947656800581719594671269586724208079632294388685946388294011906541250884492150210752782429933996035665622847826062952589485221209206778176344207565045241944046001335561599181112882016337152443507086304405480992261649910906751501959744569693953375952467157694375695277466902572659970081632988580634610016226681626146212685402670915613383845078329584700428513730596943499822951060321239982435579086895701595653207546931939983247247968824751181446538351427787487001186154578970797977740065669582293237572890282040328701650148922056265589433018264221366544022425603756901524715960180722719722964250130666444594835387968041843456177762070913345702426361078057570814574340972864990804664417088992571596939203849089016405488823697786182722817002860939878146406146915134754797983751055542502940266612051496147042544228331788873574923185715174450998616320151091975087436093616574019224911334418470532202650743183514851989068567164728553705368969773683469483731993871384411903211860531665897494876215431400651464939364042598901569336776382576243977002947957162460029603614759653267103624851952455079621044444828147660413351595942761080672881276196739907063095876888972975578584101946565986028234202223154905030879752830416295814023388969159707921159783029385990333621024445741495648648395854735925563620921994239886588044923854831441611907258705389366815053725138081760147736773910498211649462619602758074563445442206105329386582204556108498741827079865593774289609458905157052653139611216373798905058092900430085090941610277959170965104962453435645722935725643159263283561358141683164241374825766359071541123204596252675814598454088690842591233500393843504899944111672153065901821951549861356854281478450668212810995484967970156784129087881032506331012635036846347369877969350779442672965096711369235691118012218434358549162747507394356291811863145911649664982830583384343123550230312037510433482654774759496779751267350598923487978372602286093940346906571118077752014840350372774387376322429422122744689068579106670379998192115257880136255093868249037563923704013220740843070020647754200011886599868446985800144898334880985701515475132728154730620057314790311021934289739157075346677442833143294427656086011184731659683029253057116983962113916734204047655377841092493280617182937156298406919076670464977753709791975574342091326210982574499064484159965721319033345984685652778097792926822513450615827004703874921081040466312365600472597906141401794778509194475610479343020628979654552887848174817889955563121233048133331019750481490582025342240237894752963665632333917805537188349044813922626401178791356210269610605355580310568081333542557176436090995471808993420094141028120763828362119448724585337485461038799445619228428282937833996799441590135875131631256506276475748407266932891634067869274779859333246639738350905446633441553554888845233620483831933456272750276932586899496515362907165844683137776546441062120871550948915487054062383910022238818783240271268347247802647538698527872804387037907359488040725078039160409911237368247303633135381499546235721270347546329117151809032071127089855625413426655246747099179721564161727434323863606011944209773719805547026343123944585417564698834596941938229940690097498971881180424845660876924090277198741495120928886979299054440561661369438952943881078390664956281889053463647469161154256045815622329821195568223007132957053964631687648571532141453559658099834099017345325038503648761284643043315447990161540626854429822678373879898945915907436991121655345501600606847467895197296893078628102564587278604057609696110835770705754708990586823508300361248774115658835670948087162689720314208655547950288203081204311777064571978852764595384977509881167106438155984245405552026913654358867738267624678403721334415547245122704469930869707842247952463742898223972250262148487230111632729469889675235376138732890929454958391215590314428781598016846354688631460808975784972195770797654820403058616985789821746825767288159982492203782570146494331514251062845642732096773436613533858836004446280103670891917424504285811274884560061651226818972691731577120200587728556270326318765484280049052404148327105670140138221203887290188617190432907548294151390649429851645391324723873236015551729071199973711678726123235698186668294995802994362212252385022860004367279421719155272717021542686899904251136108008196092218529751718649532751629408372399917716098127220114264272063340281053628695730339578104499286103904743995365662974013458321652925168457833403560217761248242368423985729254446829047053432064612074717224676303866766802576592205466900297062049561333220196423257871178076584402402769779902062301809353172876303739666650175100769933608537205315450304521556538682505423558119616583273720062956820607954535965564262160289521928981017433818904758215305494342845051518257655869600673214566879586926381198464325226869050145302680798119519778325646434432867582208397432278697391918969958112126574392214986972894493178808438377796524329742142313448502735876671944671716813138471913718310958456990729986005575605157127863358400597453878455268944812632494286161294025746741395982716585276186084278630253663954191781044144370986106064599886357962644304613956001278414151341906971432598588377426028693542295304451276323079783307839802653604588063043088440970923841384135386868971467359888083734425048510810105065846808196805486436883057272495592855886843067478653031147246771869794302038556818209837313345013694541218962435260466453760611951163590417915595324766149488007724610756833244182054167353286620077960298272230551729602337698599083672796163567429624898076490163424955901666856206924260379350669715694180215091042112366487349394635271591228166639119038073223839173732430617662355568846346740122834053195498419700909208061399965271918905228437614182411310303681426992835750491759670741588009937522267037088542135924305492007760024186643877770293519421217377952336767397986923904194165424476294762451360492538339828616754414490963708475891787450608677554494944132030681095618921501324759264576241407467727691974188926302206830114293515572052700395127841888234170713652484388852888627032446008927683182805073298921144963629708657446921748155490653192673522884174865539643866020727972654281176646927369065179148297283831853261480687159959401728479457680936251187947037562165021835702404282340580870723497699892367662351666574257168134255746395958781393233117552925045140982241758170068944320380263422698146477808864717898859312791402227178191656418202424290010974456767641434190572188239890392963977628630829257085638934361078126955809671691848711294712896846081007919820382485762334760761935200291091106149349230932430644292316413804602241241944422223909444071160574117790778685662599089226196036439551971338454782977703247035164292634533249854408554375856388935364415633622976756468456477185270328350521651449400132914480970975971875225195922855943023681554838697711353455760799144662937079901923924528449909894238578768174962505749655182092553142311186645940009622699144047417747266278991282030761518170078044130122653784478309587761584271141572120008656855408534607121904568266154248636363161065840707612141935692293329785417889080552370814996350943878510342087070091984369976225507937763156480634067206955511524251363346544973959674131831731571714740828662319299085930461360702090659394796333055804715361376966871389736833184846274754846907153438690299542132592356160190595016697563308576770319324969634030582418437437490203353383819711856626532768168948391520174919286850189672008557153329341623380509371839249767637143079684176325418941411158645692153717430076670182391560748694992624019720047147791069958478391087738443928379428157044144381755145094521289943756518265530086966752064921063525946811970771936487672233998163619314416607299975394901371235235635605604302852879467372021824068100516063475131150569939796387112527739625815020181993768364122774134434629361532485843175367866307534843211726110835058603910594944842904959274167009602438608987394541738592190051586687257396385718013658356856190605173815169228551262787396139851176345936950551644174862377667948716152170974834301394282016345063325099272563541045587668343040269323787234733783321972014815922999959718357219380339602883142787337236339011264922729386766822740467480450792632136457072819190973535390006649710441700854699712556388953821132571484810337095351846552356496809405633461399536895199255139475811729378230678226923355583271489375733167571973033658934710491735583661270500302339562337487282642998968448009358817118636662294590934240616829913248272383641706932295903536856851322498608352360157958684816151291346023307235854144863341025481033781661278429909759989232055361808565522774287294673004392281865228430778242399030844669362140738438675370514505536598698866066553211181953957862107145466701504001146293617980413996668341422775022979339071594362769698920682716948714102165166627735304026591033146210006561955190107873507207893105836925776663819076163908644394791731878521809836041463416781587348247844231875975358935081870262536160591910602085240542637038983593631613449497723404542690674259753792131545329382280317839041014001927910193206301845920067765896687422355560692863419654848366249971587249494568737021943573990420244946002911154088969651815219180623604997711943152052517867748716305694079948669764490940929773646078604783289314477751162101748574468826224208450639352859188651358962025204290113577636504053082952246504566814621304145719225321661384337353712484091817280668323291588381545144206645662421042958780482480978348165330115897669258429607994310877219306815696094726698535216413913902725178384496667919538770289925330288567772647018632709743953599384183829936489890344098111030140850320403105737112206469207681075733733350030330787318223672182612009166629923158803602883337999939701435560027956882935745837118260469768568428715562404398230989932125419246757541653674041524142986623127748185669035477369876037983811179012863920568066361370162108707421870954668621507255708583333999250194366158088047875979805977509682763488937460241156665250218381961944343749263776329347209639904762513766987917369466804417997146756826416345572768620962770770148775629434105541109232916450120579618562696491288052815485659377027000927555756595918581433945983441444030232793829530817850514211102132322693804909392050177106052480997838732028668087149589257450622094406748851019431646056435106903684264328800789102482706139795617769805524239224496340908560649859945286748962047658421525154253236707382369135441421089984130127974830826527556411933916078780981658856482768744045052476796148794591103587166611606286356351982252743964353837724649653614911468251532228741355457474976079029618778928153226911894359717243884878667533076913508221890996809722452285219144416460673904100263320353917249090499693447792047766572827419017087702173072011541278554766889576743965089077513570051785839352503247598742198025593543280349309539423659496511121873172455813502834507042884330802405251977155074682528010578912986131710627920089530258432638523998176841850871928351040743023194401682150310564977189107568397846482531597805598253347454737135843135841032861183483572757914173154400683713161759359759140731768351896856492717061620343187703419201877349145865418782156665119421380022656925913302542667922961020221308490616975625681487879237251331175058572431444176945966615221415282871696653967084219694449911767421561167272593084498730604997624326455308341608111838621960197243223602133112643870422654874218880191397276113905220398176146890432144813866420181957089118177232575936883133395340214962435594990467197601237909527796970804429492928696755382897067667935375137357496871000641413753930456881366147604163778349356547917301515471268071053815461016569659925144972453491114335087308379699546828090743216170536731238483574236400263211309386770924507696504355752684341165675105063694807641322090270413676817632211073240626989294276019625432198994829707725243023278898843278422116954314820301569890757359971740102337763169249921741522036332742981275583646647101848132364290183287062785226621938264896157102314840554202676021419232652776236755823248428227391665725718811336010602003416442369551168064954153861387532261816343975585395550854901350453524215121614988575636551176145082097027813927618509783886663724746525229611330275215982061058378596538393616685224373704583263475041814517544634194176539185447559477546761442700448668831346981482332073408063270493479225439329252517897299974341948301058858550443509262104671013146446039503894054552112179651189936047853570208156530161814581759610531043889978321255957787061775743187232359478273723694045924575153311612641155322535213022741129506801897669767421804156419604382207497206192830760899164447602540109196805843383740512417433396815189665117998887688924685249557042328891918176137000879685309164674976154830918951088263933055261733258330714171196170676139246404990219277385659009215168287711617263300944957049545637541127819679989799750758779831946869389656282050623144172157560628782969251273503479284287088205851816537209471345265317593024519361716321622361987382657894179958707718935035905361124505713014325972123350227218541832083030792388182181297914526152992954378188208904678844359217722126016908453847909991561339542416101148024744862854671289907966054431390918685771654513655759187538137449225442811783154461985201496656692458383961899866649363153306786488445317326561474488988778625292130526212961537612982946865962296637547947471141513576614436863619862820006461794988214196177303535155600915412754493374321187789005989547624488120505976883219962876479889370211443972682307588434657430348403873060982213505815569295581213831151364219679215702606199769659455325049815620579213468089638057255894380714852687045996717218229014423192809336967023016966066576956996740288757256978492020590467082299703538583682556537422728116815856080039198868481086363010259113440461584005717577073683843358829842135063671052270000088238715533270858017711869890445353461963002614714801320947001463742454800846740512997476617160739777102226519912443901700888925230904898722780964177595933577781644429852093289724330688488619665499706233995927500041647319191525591129241523566894293538698390308787534304128970238486178740289330603725627574942817434762715366892968686284938291043125357586741336617333479583999864572405871808225367217063954185867017309767259659723051065306174917517955004985725541461830171395639041810391204201320131981179509731339553449060564806194856690450918400194798466236877532610869819398625806573018242557856048059618749040153140848206264203793640760495541389861223342867474260324650986443087068746362108989992257474850171480542373945512795409326920975924047029408133972919836669509801596328995801546499800526368189064120140701733072980398525757919073512995480459586323730929706176042667134513667556564533262924720683005614694769918660188158455282375384672901888707312739165988274620662932233387911567529454568643404229116050481970640221710458155225964876463929572042801111986218660623885778635632878862983340154628858151360643106619825312596483834539248323340158180096791042756975498589024625760926346591759553709019435738331090436406554054344280285643921914037273363309762534909993937469348924730348110693169649752120659667271026448319187924867906238040160498899671648536673676314830900872774718875521332869527103013057058221095906912638939394481970702859504646626865315548792476858084547837212890466161376455514886608761229932362833950760441947743056367286991186373365612676899372803244288542885780077465170176495958800994437064230683639533373520569937110477006164167017505291108226475799330713330828478885462553362515243845624396152539889339311328099841090975525932976760890090030497913286220557791073681741239669500233321834176302429608452837514831123847667032220822682682868778721457313505129701172116510853465302640663502165928506295797255215026202011081087954287096206352234437696115043291172402580960885227699343243727671339794488162169481108110777737918904824779401549257315607298687879830963917574700948521004336677779845114849881908570646430413714605824803216666378999702927768277313092480548983612607685942192282164724724312442927169894799075026409154271593044517919500160669145613018925103586341741585734378600944985796869874393919661368995289426697756173368908694908243937220998923339492096531927487084712154504294023262065809427566027978090946832278360266268622001454556921169454588789469290809693940428974421448422861107322807039413373306607666458450738886504618585107928485811865592900368422493427620881223219961042629051018391296416872196843702656358514159146786354311763616514988272217108883148554550590059225219505884552069933560874782043217448573610915932151992675120685323930696196219212741524799799856198189433989605154446686196486566319364878984170730160581509969361839368940046243952773405020230609526005791742251230498506832584241661744264413057799760487928492645269512886785545482710650140252207295029214338393464269908223379549580689053337518165644236394575949980808021274353328640807184143256910181231284660172689624749034593934597791778073273073472596370050232540534184268262431326407730477159498476848603755146794170685308319235735434993749197854396692140629221356411771767682390058323017183867124620848848343357944028552986677978511321366295002662728176819071696355977373133522373542026658943714457992874332930668672893593931108786976708971376480985699506502826553424784802121637798236911747870075743857073815967443446054306556660751716428786416931946545813494835710686878382104574191031218825742599144395615863116910471320533670411121035129666265643416232723380209728362883735884144105758513749521337972350206766857922309967243302754213862562773228779603319883988523952396552478031746115719055184001372487023863470807469467565636216052343390647345608895333428680211863495641332809760471956372597132915422805078149061803028681470284327126710577268820769764274211491354592223233598816248255863136255776061298475155810257712929106267987889153603809696064681994320833851253702668369689168705493034245540764873731288490099854509665907211978094963326552659789371139550924621529178188247648267253627496317802217575536119884410226808491567056338761916723795472631477188721478145258475291092686607198977359341616700891756648951670346077272701278560275989291915938602499955338233197815412953537549507629321277109446330997024576627064540475616239969075651105627494375171119677144652292770589889487006160778004630796447346975375816113372204941206318545301886199216897423038630265917717729546001222406717489055569689213385045526504130262417594671327538745236746402552522607372205634567802928322248669968635509675194140981128437745166916110302809596325242849356846452696003258248347199758228038907463136511890508459801190242966441535420803032674215980044639433032746256255832682334027878488216138607791072627802587207397132796854892236174729241237782827589213665690792002675139423029352130020679680473899838846014205325243846998166390640942294277245285582169470325492314086510329725519850107056372119371687943005059266749999041871915268924979956616072659463878648727124610509815189486911589770215394053683124274595225433677516247065012355508508420244807602582872023863492525407603924280476608995145845201521818216581324181385818056728400315445606244571700161194522506750712769164534844890583464828696714267610746656964810466272441952383143833872913060157458539530980704119376459531926081283033812070416409368457668672794604519844397335978269084906950357320960073468648442327990692804750844579151147013365829838996854909549569746465025219198693445454782564440241962519206647388102005467636669492327441383193222210491168949108673929551927847347111788755457798197337289692108423602736618770341199456349357347754727878640163333415401428496405010006795519830350299464163612823554080475378009316141631554049181576875248730673093673389348025427212719369006920512140495337352569868030841182540254962025756351508820716027767101813983898962287080366780046167283488093144871734246036446256438438746933635769092082794791553443951143252424887361695746346901580537885616864150993903643711827396038726855724671656770649627864051115320771991490373032844369949668289576316203095439614951608804526025176794017503249052397694049397032072781501864070229244371961649778092368518342854719937110816379446757737672217261526866569753178894093741945400821809501094930971937114293368799590257048248564781766046990966176042892536317299730942313310833434804068948878334179920067843395741942089302854106349592917660368893066519953562782333275179569163019981704206781407707364138823341874251578382746443919971218902960183183566155066344508316649868627846004512599686107079471113213808602096329936947795372930170313065992432335291239832610473130846558309290534219641717251169522308986787742973016339851106009375223386318261594785842088125967138135906456370627228029397021531528233522360608638472373882545476765636242501465354482292218416205139510928936403441075163645659877003661038876274247700608814851701684218494373676667541005633247679149078192161157212799635377475459127798389478844997140523392912763210298259470381437104914982049977123717033479213813168003474862111605676884237143863201195806429364301309978309612102382529407014007302121943503355685659274211599205163798649172884919092901580522995408374518195800740637566068897669319507309245994153047587725426177038776780062899305841130922282376838707027157735237173914051764521437957223688755118273094601094786071950585928829332877960225381881243406139660433613465118953408441309662021300179182385769827661424708746383713589159132686148163531338787097831497856644374672012248260688130627634359457054571933439544521514899412101986558076965796838897216163820882849030951305049475970964187595859462095706591054639001954572110303866812070785386548517701262661611981173792474966891209473366516644922084726407529708223743903494378947416833077964577957084639925771120153237663293913216212828019589085875529834731984459425265771930519512133987493041198292900494940173628385176633643027008488987857238434956245809496581145420590604367533886961865607750122244248927263678488294501617629457177627280396641563277847449052891691583570224379457398254473513051697600556395483788907034091845025928084252194571780461448091474924024803499793958394422454531504386218887602671122407275084711831934061876846698916051366316668881237312287889159891193593958759281827388674931577319582992623041659188158970381790521729301085927083300754511132553163539292630873141124006722689471813422707704756536562085856750934949604650921496404803868460834752941145472856182736928613331568295593291914973708998610760897617897365120391147327739836697381873572457122105145514269816018522025448027165866925864770411546342486242522909858964819206215355099392278409779442028421300167161663380325835834486288556446771161906110036625204430561194601276253243113614111016035391206519385639198381932982031283846817257869857605391690532590852259906143824391711194336213234463192917692652622329526707016714347078349570651787742147647248156015576356635508335226454024316476522668264730896079636790922965948745337673788534040011964852211865274090187305479406102764615886704610555624357134236864943703726310668378510059357138524315164137255644854581892596653733558634842844471271732458064993813758268851984550299686958862234890362606935661268006585827356846037295901722437808645085381781163521789436278555052580601973330228472834687501617267418310950871584689424157328104546109655761130273081115128863553028362329581150437742829943857875655131862707810169450966060743074619787165088774137732571654402685040464299261692068068389437754409715920784200234672529581348181469108211072916012778889429514476126821550297243457118354047525568400771043935678649970277639079962923829275860773098966975020614257243208907890835702765239706187979163833734982138621734770279736029855856580492496272720767514892129469590903968512983254874870318461644359520681072440446138882097742241937217176806094604104956823359303112946154058010237042029627674797302568282154293872962758614710099913539728261576380641817424752444259356577803288581977694838059859153741053029387526038463806972532691268440410113258313655766070715278314390275770108135499087031158405296224875201709017248070544291477454266839636285450827993701130209515763506628174053992879956688007999141131910771548039058784313934256004103140936151147920847264368593056625225312042044367580974337137408099676360309896410912675220385840730893640570377161593684863487534127559855506324745017956849140481467961625459440950872320235227621475557898972696617044602282529766003913924065036448018011386338817496401398731209634249306899291930256777628127583625374240814991488022989388857976495330856650911171638358933883047094613552280111900427688466621252187517821455079633000871013607246487763738718113134373897923652069468775884998020117018332387000801390761224869167877678684436808306233951863550100969746545633170271870977961664351010388242376420443043818128834644544974349051547165281193765750612994528573794890361449992845892266136622453988034575193619639498362812565564533540475565516792098764400273212205351583337157087505569454106347375745709800049161465146556524251838604415115099299097059237988934446062747860163513780177918761111361474500282441423206355068907424808121303919335148472307773068983322287065674736254933067004024094126878880370625874080439189377785334297802398391836275104690273079544231480109530810275826195259250483352288794103403214272081830823711527215456172822187600485943947572652738751863417415907967908582964418309834214480710773434072978082213704784707701522706444150897512370133957550260638057590986399860639484725875927169030348860543719831457692473684470076845972476604487960687273222998714478128511355838453196341930256048175616300518130039608804051457258517059649694118369777021657496274068591997929280307772392958019289706856406030614564496700526133332081666360368412078818392218349297803781191300321346087418739731501210946882571611702927373364625144498450941850948444844270330857818878833644401694236948780596272711322771530433020033829180314368206324902792101329501201150441908723365785335036614887885842411528571218990290474623173367779186192912087606441238234225423139182388037229909910194067605467790289064687396189694558100069654231033683378103885426839639584289347325841939468444284936478782308162923441900098098196380671037443837089859906642243782430554009332574003356194701780813089127611002591587413715004208467420533655325993436978915270354251162929940701518413682356522646162319499893878475263527110949676982921710013837686676073604443441727339969943533157450048648095804436620220601590534614496590268489028055799662097223607987690070774310605902185864526817713541722844771497834162893704724216013458951353023638610026820072412240164153419739225903668400679074694288031676419015827399237729537508548536865141890411298376879222468294663694364157995169528264438418262723955657977948072967878322546876497750161378375098147771728449764775017156484131330155622896464328356203846907314587873810584379273528843531388754296421135909028792521000073147763079228373860602014899031176656285912780693191459498598338480909201223106802392849871687343076228397664885328307085386650209994618898823493178076827079387989999335655397532749372891821625305479044651289779817476891359263811462046722025152993484045627403777207552216088303239255656248523940625651006571654224606392004241072858597084833411873993397412410783361003645552476236144750011371493968580592408986987254158254764550361363035940345526104393388043313137487886305844288405318603176521716745777923733741784372609191580374819897255573513900418264808020778262331481662672534995453712618428539303926544784816703411031720256595076389509383387193317206419487111557067652515244455308037938570791281535626097258185316158470216853801915784660291842813908995532540707352987509597663179311312818757579020499170604474081807693534401733809140541474391129571983056953751201936057555089144013888396391260464607245195019186294890108760629300683350590422368511580291581604281236485091528291228233309587532109709242428588637990175793768318388455521104328509221004524398376193912356255031111549790548831183790571308831276429031398699765794583090872893579459975332886974828768480595079306710392234510247126745565739852770616318137567086635172484721981225226166540214264021323702257865510463825317977568394547239431189677059862395089358003059983089143250092781141695539803091028922187798129246514967823556279526637364187166313584784889060883559666554287627070977182217446031210542549245481251567104707807170264139457393140751629332257205882303754569627774416855139208766969535944271987088089500455538486358000897099278655397177860861497343437147914257669865659803513481713422494347617045343655145877113642254306783371761541336153589840521620302708131724184595737359700321774216467756648128132426503460854772160592389344413615929895952402004450541305778727749502300404801885305572528571611918067175452361895838783864098921711014426803876359908324731071690177313723585612911357656881528763975981846899023647903856685127843448365246390823152409431343043755735599736234742941914372297041753085598889610287242431054855456160254052618355060812365370589322266907100876151162059111783474807210168517098882650173093475277373774843211784087270144344197541162726235052400085346623918418331847877407646460930636938909613326040290292949595206348902607663913446116268567010590697532363803003900328000088340289108538558348693573882888299516821817386470730188513066849566084818822490771227531655482675597788364878631754380674596846447104696645156262546710593809270574220545263815886599471783416793954452265458691367983481286657786760474555750462448550740157409514906303214534040630248593204625076265642367593022145656837142681776985232898569600543637880482711646236587039677802772595355208321610360207833882511406695843090853597104982353855181379892681578092570091110728732055820466533138303789952473186079864640856873373175087342068994070680546497523856434353224416506491679538517815110734301591263561721354730627878736591706797771954525621594829130837830897190808820019842237823184425637946006416421436948658088141794993243264406492010144510722589486075375887194180972187903097166270145680279258369146477265594353308436293771333596293033901598626011572650931437734257027574894921247922826210270150423263028351945237331166432209280385003816303095608093684387646885969695504350077904865923058244474943607550991893909271015115103665306991768540855318515838904708500007928384591286875983838272711141894473119825749597243779439102549006066308337380555429484441006073504862062431828257857817886034403008171904484192622639353550921439962147211681832325822766547950015856616343829387188080205565864053999774402362558147858959157096005027263909902229491304972298158583307961213362606066953730949676508943621987672259421802778792839111593682087892105900877483253303540440910815555467310242016781531273253626571606345797347153866337257618689236047954290136431755381412877980976046722067929797591732866431452144842393295140751315755501501331663366200053737786487944126290519275886876009357673237960084673625914718505889171504900930840324119536664641058435145062146311788074807100072450865720327821678883885856637612108643668276919201743015319519297437783556075300512230504318419069447354452678078336545660297098937785398859308447205298783690416700186915688507461691230411485719622370632572882620680873072960962469655082651917471006683930787949913292613094077995834076174427396784331652893494668120745856431569835462163784204891204006575975742369446235526768597945305110701424696038162465558552284719706352083454541139497656991862717616797108481997728572641853517550217153544616978392494838091947874525407196915886982729037944705731775185324925655172828486854540687150231144412853465061519480813723804583851357977986281690158861181472393539600570450883596359595629151229500963401906483078496134841112572898719864918173946728998518381589631719074273792250257843270084619514542784309916658265174769895250757806841628436137571159767979989640087691717854175815840889326528373386899461617707382574939955243469947238621315396587280098420202845504970632915135839705435690390282707806852962390459930251258256146843835620632944268499607916883140837181646727933145623742756172022515152356013315968947708387627708765250643523536886553728131380660627961057738216811345141337742164384658483711620717380231063507029401545190001465144586640662574157307155172260237006752900602906797229909713398095277411191423436801586245302923367706579916448801940610474801840755327806488597431448534962790160974855702319835384934178003550109683125968698358682087137086334952056571447026050786589251277441757959837504098055189570318283274591445978005643192119068818001666364084340211908460444085639109673216635033788127274414320528381468719727274495165546272803736629241294227560306120228919563183308084366957879880270980263055626966850252458042099262251014909580405859191212295249194288988735699819328104572975705980368648894683168694429617959539074509990700168189998661849017265769635464111583467281881364941535079487348621655681370974241406829964624100630469579228820739100696116291485068312891233090136377109902466315441811864048755237290577074958319714869988018996440370792581346003232903455967090769670178611691642594025500174057632224137364398587716243029016681696017794193350983395651879079914011285056420684126412650103576224760627390062239652296325033650930906770344390830665670687843219186900945206499226777090272573434046909952088360884524731864179104613098911164088228996180014808312910976735257602923245685846725908813630831771326628914463861552350583477435571731158520865185157319947462686330020597852227796412548624804952616523267281619334190979473089716058227139312586885234618242154610809724166941025720023659116909716693024284348670495195775712405529879636731989629678017888751495516970500369469959335512595476323747850270280585314536611189298629888091705104795949684775735067411469837632032368069010210327472231945086146258391682618015621093060397395932148728791481813480025783296926497754538508712121693784210954814065838188774985482629078091065258371752741371296205539256754263209315486844956526991166313901222158320725957513312909360782532183718814187622639105640101254039223426698316930718490992874272029544764050974163617467839051300808963352512222179867338956854159412151511582562102566996737461070121370981780419157058381516949154446964748415677805841133893561553832600432605357951130039466298744036894555372047085470183290950590728490489809915388200262939618181934084290900736140484721005859838865501800053175427834354699304382566918439375776042899751566176281545913112434346263616945601181833151065770344604946739299026570694834005226692846535110669279094798894623647915669172503059614121039485915220012644677065121065149496294035695273398090489158417236434947923305489161500999046706608369320604646730668039931620351867809076992390911275397550168448362340459474280702718796901644827721740374294180089895017690816125002927328990273324909064567715389784966896601462081394384070130389194461040871803719859488961566761156666456267087351087766806616661018192357407922893271117136433910012304950547351002686973829178381998784637485955353882967675170675963756210609320188786746871903535905036242362221058769215861937587067048674932730493935339095724945119680139382290749091252710967218049440389127985702710631857396604010381028177996577993143048722536235652173858104797290071387180734516054822177872222908439062748560111840572358938977360556080840292946253010683998264916257071900491918925294160188779830560755018913741793484402605729289500992295136801370147527628302891653813479367854355394168528227672088641410895163837290176630138355413059112694082722833420440129885954586750823315735987905451471746842962644613573040555135039919941270805422069874716603745890223129746432961453707805453675306879835731950701781510316556122527901676415300248874508022153802251140197607106593342172974385314933205921215227257743522182828811752611536735920122234028317201128639983895738463951674544720348472792698417190226815856130497538702591903434361856880419992565694845219235506242701457806692530207284351612189075167823802529839401036200589530476040876894210462457614257793994116132915377571570533667014405387601529903450306308240793318017869417040296615650840210265611190921488001644948775230033113246138179019560787097044266175398371438273138231648009570556693632057861276313595874501633410067767727956681081170631065550226017376295251038731820780342643097522601864640793163325950248171555067546186388856104253782776114499933492835767720490519591380017041586746311873044241443347121581434333234306769585645408737684700160840525776053657185276318561502404547873335178983353966130339934335371434927185557772820895634361382802907777878115047670081621893291914693757340748779029349591198840545595745672031576728399670163589250022730313198974415524310948648185446206252121402019899306972311472578530144738265632085066993994699072652319567129958927509397256446332246674380783738302157446583981955931970980684700589482290301068195878328844235933360243238663105024571175731595727622205021579187988474123766977047670380887895881285715373242293522962082403219468196351864354181671990468377078385417926452536387499204607066982259770507800398365729850517486088975700243511122742807113062080672306088543168461150459361625599437945993241343963466637137792517123074760219680614989247090094548398633225942226535663819762307271747050406190966019002896535670126377871699483279813292368602440602844315471044846491161293298845198829228076120610956016637812560167650086659574756273637581020404083806576852109592438412293770553295772071229490399543876164320331079284058480908088274982586844969029951111813431021658072016513368638406998070385644652113658299013485671239469058637230376648147649129471669407325552018001383772997467204234456363134997770543506968345015191809034637192138412024652686520584880215256958141055432206671110463664747173682664322014810534281217677263925427379925044695301231850432937256469166117794598548323064298834669836464583888377733838313271522905289596083568232062737503448628500241486865430306662530079239412938256161200035371989777932254401380098029088830944036975722668242998744259884907054116665736230720576119891969477905481027709260142081058629918760087846498507182264489382005945118292035232319619442261474303580318653372074825607654736712100035329594193680237682422696706052063243594164026005294804699368189886132465276126113447845762567082844990953126523731000425493936814798096621898689791395242254367729212381719945540397155907698168723235938578429410333866286078275997623769406745539131166734895261981642902595891308738184333066987970431031269898882406863626181187843319850266595981448919627593748610653258074570617823996140329767733613031398111892640071788502577060148656549161487166093818460476632780456552463397196929037315087857276779463688630964210248228535101032302671157313328607750264739049895238162087445766786791111600556461728181570473228315574973918422926615613203297318887664824364112155077079321561966837147400171064402814140370187289913613559643256524358124447798010157109820753077006448330983328204798120010877559583740913408397105869286019531899725616300754634120206373625881288053835075523055512395202338079687639518133502135044323815946296159122578141602428903385492407030123113660722401339281823750008317596659317720719966005783394200030327238099650219557052865324514481395390064710373920352762215565417556083871977044459374477449747705396964068909221646782476065321351706471774672880675221304219421254775164729580754683135602801170962290701622804093574338772540628288884546066064305642032800320579013750136904657667050291252810579602752027878444391378643147337594214473612734069608875380311792168203095895078919888596719206847025305944345635975876747023230954246254331604889856259584796773668617576663700829938106611776355993738730631152433338067261179446716598677584928936110863824488888273211131303482826721019681216403375952071295030121975880856690950513890948380566961431852783322724995539908107798605697218183614905870143230177202300143272225058855856838471455464781059239284763225363335808579261949270868040206461854194377133442631435708822753601061987062317199702969396644697359644133888282781621398089730857104731373846897094519405424319588875707577660452753566468935483818760484451930158268644612193656330638883975995247180726399156410657833490809194540812760615563257312959904653007958832794003754429504414980369517865778502007796234809997254979231718796206015907868691646377070998286297130582097670187240508693767147079303473571309241403172296060150261072667050572403554706331871178968858854515415804962544745092724453466843115252850680688634703665498877383245533259754858591060066440856082843352490204646934634624251963503608746642238180176045115482418782018460397513317644469868898363244572881499207943945207726831260579164406607132887438261849276846014770399898992938995513610138227898599106230303926240751464464580123163147731018708610617965006363954581649734290804455810366116369089500967993406241836229942313928498973548284050499875862791678532290229463121899479819268613061630486300131641218849408128209845913943709099147870836339687486673799381519959935214617648210033948079539767620452261544838127495424810967281305651623491366159736990512608082864143064837744313739405302088811706400447422679090988379793261540920461267302045473017503510897566669348739822319648994803060401661981797243223925147290936722200100706418662297286464328992598321564993678400028185380354974312671470775364999909446072569781082049153333670480550769672510126470891971831663692575908757467931571576725102998544094988966160377441482261265999665362503336752824677828608516971107947571027791950805137038151164162986377601615026536172157888249105674396368945138960998438308175610976861059444943903855908591389598622862831804634747633975728670444256815974786116224044721761628959374405128735533876808737209712976202587762077797175948183497501918838650134691351213391291947680908890367867063895548036155866313549212572759988613642751513798307734198993687759583236878782039335757389176252979400399667441119850866064572429649953053442940411298390571233760000901446089031740688252428231759938099812129322899417062729358927613772957876065504338162629879809131612268471284556351256105931237223554585923008840559108941894678821519057326810470993003765016452516359867116585075173464666278724327313946202967603186154101743395284663189281138157480296802439077420488502247688424895749125002273443304183348781938750390014916343263169715200607343093841749780002246752967682045621352622424320125107971833272342853127851821960647564947782215227458098661673572622120832397718144671681931453711430658554904528972705602666759761033495126351231074767631191921993827840075716422963912542752876193110113151957468575584917825938450069682526193147662332161255734305555095076250907719828515944273687617146801411807472021564684236755495755932446772968973093914713254261569833490900636256920023763926954442447671049627418694315669211249604718117474121303784753470065926078467637796642983475654696592670234538564087595142876114601476117553383288673538712353109033708996227189952341303942017468680061544441692409869171256872737833174431107646258398723989141215098021527902478709384492158526464647977177809514581054541764035400010922659688469909908445673885417671786115271080085914185738725032584837588653294366711984405925705054335185265973079602887430619663340440039633734346338208393053511562337135496171115183214562415474502681214714286922038197826629600670982981477449120273096577525336337000102481060201312949379540248367125982449211798878170241604846678120579375620324251496448248491807878817967129978313721430729614352463810241134857174002514779413935984313617181119591052320755284651913881672730126029742965850691144878687078134190153980334591887751944234041461441615102280612948896944411793716071362260636666199838985574817332031089679842170585219616885713315107076853854829620070781022550146846571669634829917887935178866751692530309930994184723903820631504239633919465578022484342936253236526641906914557046110946290408544137517027434539611137799504200905189726777696820551801437274641548628050280457620653498484300371377193977761942216112384446585839796034678224483170498614442915622959543079692147335285737944552453528379062518731455615089519490197164162551744535320190741643640358526266479009509756477292678639785301758955652777621210140641865917397025722908364670017867891608509860659988445645243888114306943336732126027491321012348574117275328295980224383966833811461042708602420597048343185918410987007128471201987514859301170880591215117647075429053627688223213286188693627221069903282149834111840059271808058580055900051226454483529346231853385274912757190768898198959844045365340197219616272494563078499080569382467460436312759801541955972409991579687635597895254093923369040871049759022258028839815899829385126264063969451964306339139493752093478090085128330710100944842215245515048990469826895644000406639584849055037635048257426997779104273457076737200772686520673212651057089025494513332257077997007449801934524009672591579295376471007308785827056870278783676498367661582443379110250824738839091520229240512275642895114269590618838284902992540183011320264917398315255908563684465670083621936917199819448067894470485579160927829802729517092662126948006150726616573286902802253700188829810449092950249449041485889992655386915085174074333662648886495173289098189169683728413467164021773695394045272249953804804637468935099539862122907437057414909410838247713519314541121130286590356431211523128717582586598461514290013782034096260104250879338307349715240640202239602090935875319587290386677418110110775408560952325865188043308660924758910992128809736023894733101587575550084532912631370817170087471815824268643124955505153640683639131349228352998506172023918566598737746973583271737934136417195718918971172205079330490994715322174305185336218394152706305929698209972671574868030468494173468435625512750170271019845961819860418367006272253969121815403784473623673270676460098618075703753940364290571176478992058126657172524656703213050741985932690362346435335324112405249011475768556119813300974290824958052376419716295194683636226062852047048981145468495951023231517334726424896835712295478085609249965552246282467096840417898477908053654780530911551743153242278400324174278647096505739703567965816256466822320389877712231299480659344986248227375668086583426390445367591020221371711172238067233769888623572354503050533386674292848726223113707909274832154881115654780832731777412935566738179302305559581620139364510069811746484963113649124761380519901602685018094371711130976314457977402624016472214612913935034320649404676879987363919749407274689057979792800501322305679326891481206365468843647071654815637830320694959655115265547070057190485551601672025899142127992715529546556239885049277919688276649353648348734457295554486512525462728511817911445192787779230607382051073154294941444944201494230281808695806374813585656201107165143345621971341333396204585746197336102841301379193898427595187388805934097822395792325278034633481584790125614879052775597093785561735981076642395822219478351150351801445929825955544062290308053568237343446702759291061213648898501554163343416166416207328543473436311272546237111045122157627213796137160540152750688525828348242605072772241114836868194055334439056679659608962446277819447929558332969293589249853165215575027397682075010812411901263602818043284628967284242898345135748275649989387522932076415015038713038515030995585299041307128434367089025943236826269283272870197837798015906520598110006785080282614789294224817293199175907277122275640350594656905069134408220650438116758630285941100204914087850480229968053434735337450491924459292825333013468270739472018421114396266022934772340843648204414925242929000726528240786591027756786596404675426162672959781070155704116063280626383535368184630592801626635590306753842779207730854906732551747231272964420843330605972376141502266879397341728073329099617010774739458512528947263165930934823094006369679180474106081761322630099937030237238416584581464283699023311162485756839267376115142511293896943318871897624545989675468499927101065958117459090195511870513957456196407137585271892316891017522270890081918224647585270026449172272441102170479604903387959259606895022771749276819767469726647582188526181049550722088164733547528271434542414159246885828513361143051677988722742999739686017613888446548071132076712754673941774844695849180145325144183803681566083915553286468140575249936474412080973086556575003809242580791236861338276995563027536507356437405937241539648074058780529389320023179742470875210253217277968864834322595876203574823938883990279967771770062646694298322974876031780936158393465879067171778265670979448296353395246020050494939880597918160968775612896867911467187829537028247561469033038779937473734065324810331714114855522686203950389158428354870679171624724764383962608934308943699214830552286257083916423692588313227648733089194275166241601442731232488915430882059090128492248889367072771322372440623513752562390002341897003592803976823589548150524538306237430424444022162050784814084368886970313301316277753272934693294436096535733516244078533671727390555775968057828745950469121913461494264060097390836308673580504757186203791283063110731374020858706561443790983230873733099023604880835897963845261466894961973519935677030161487007484809431506667121415066097592163416859073799761709698893791472126025664232937175905988430893301196725232630661910560455992009806482834473505300421490304599140785073623393751959701525786255667569883430124519684341174444171430453334281351572355340178801494698031964083847251077724581692500530276453828958241700021204667377519169140671208063358602954033528737260959517709698795779979085592357836395195485957060964684108699641711253268388015913979543504375453334934477676534947563683409425252327142534538280874185940783074889458339794606951068421433932304629006008772262369019219684818089559761078900838510367418058121107431364666708120915452285386800832905719408901779694976459643836190259314658803018527979584150438800394351144796155199893489173848570342249191868131425907128969549353175252591959562363129846056493751871169105323329157024265196646142526351848954306889999342434142425997628480510764611044636995829787464488756928585449770954754694293908008789837203107280157765230046474755781377188662115821364183706074374780701308019236773472878490054609982563527460543675320301400338022069227410505243683464126466980664722423077690051974693889693964103259125877517051965464850427075113356067955584201408703787186544265724339581112087542185457004368529942170910358149617120397070486545088045594029711413090605421640318957923687992129581854795626467498737420314789446271330476475787113824792457775857302459249583339175472422958309859264386028598371268998529879398496837990401814332493566179814542274022210196048024587007597757995909492249547073362613184759996168567308109338668193054984210658958996018903417657898687194331296729920622186917617707156002468515592190042363764790109242290856829424711932122907484040059505252564587867537906307510449744304555741728799175396891888411339273020461876644843641157253581614405949456411962602871075192649468615238500514227971699891195389783712102983513389785075419913165823507954820806425161412907510083538362977428598365719462081348249601071687827432499642839709991005653205282187940862555750794666957914625870500873769871716579512867250982709969894954665807991621680950985101181462179437848107271407042219302174957801111950466599976649019089209769547293068425045833453299742392725830126639057235525407635855752293204854867034657701657814201169749506776549381624431054279299050624848935375840445611006696996294317999035758356927395390827184751918133556890381193649632063678449173872188385884547321431136323819805593026950852028016369997541593509716448783407556338578720346924357906248283817594115112388724434953646359139856151505487401248145813479024777656727500394047928368054027467761613550903003995860718941472342313870639803463974405266366644072049107201582968551606412821353550646481113941129967330012479731084883334997531182808206595169950133339283837416961062392220009913080837149829582399275419080195857456559323818149795915206778104881352242179001059586159780972220731204886250001703782295983940330261408301179467333955601403625916581413245392466166271332734802546067411040115530481398576396265886240764450489527699506535376782735735597935396192766106184827378510254468170195416321844694440956407506779188610047111494159504592694525167525899125764602196916482244501922643852049693877873952315532884479423597331886172491617397239190076589909226452828855245398761486573550234074239938203873052084589975488929896238260621565934542603254290526536043201165818263311906142997681026417851598265806189975182224003307088234199371260161716578729944091178584479777472994136213168561567529229421007624032695253521443728450310128027066049241251573415467648895679795930324206317074211425825990135660172165845368682505076645245881303766124774632664389974693846775855754968619498878495614310664579468627524686085663832400525816965073277104945976826852892564427502858437822077952147719411616557992650880874132666282698758501473236054973197049271204398704601551823162222581501330602114111944824380243972716353492341120316460406963984254452179437116502514242921941101931889807921323309051652779630624632814075455146184946950306303823245191332274002271195472238550942791904739572634566318357366740323609510424990241174619406020081499724245698326874605337138554337106956802948640560034901057229468628672889605345161573059677609150132313758750357105018196300470941578409677961256906376986540495355570354437734136710574679225387199383876263461201289952942175036702028329376053704191120506760590996131950875738160103449854426019950699891097028480576474829024892321713526458734517303249092294298642594980598947701296407839211166711472416258080111048341307635297556154333968560830965938194697392875789532426208804477241455092620038209519986204148301293182862614954837985370423947349959269670647936516364334394985506777917496161008791327608564983192775010366929152207129797319904074726642680594075520360014536574333780981628820653456609163266534784559911987320339168641911806354901551455453052316185219192816667968060465807788360637274863097998366397514874663352049911934574881464893514241317528012492856701105007159089923963678960773775025279363062946332828527354254697227014609973287328794938675183653756977898739139427549130925416824276188648978456662149988774506521006581969357502563953356578538486746307771306846050151569719906030236766216289227266376989465410378438477549803219883274315237579242053621063639017947054190100926128612277103962874602152617628007399270397053162101941102797681090286877340498222477754728762682700626686592310520875330698771643958531069639344813124428860392749106376744738298735135027738176589080526716311744577359880568173900883547076946581891323156122820671866109856684340058958032638541685974764017945698650721558904439983159766918629734439210927093679140247910536923373334976091373742708939472874985072598920027273386067358025710837708908114607716772007220631072984216672691924889974730956851879573277324962590410541468052845997355519679828957166096947460941583081760342451398813831177630030119741078754669229730512318721309639653879535796025828893753340834039209442433792192474563100511319636124254615087229681517086562543846936929744032318603080916240138335716249835257051601956562347327284552746620529300592393919295457331269423925525784093446977310741503316646439122126657317620189708161941626522030213722234181957171919545856420349417385601749797286636254990167819446418599466687048263750718370524090415051165342856830214654708683006028687072060103208703979126675693943284697309577096731815463284263079862158427617152242625951081826483854978484236861638916320888401365946969714934339497657386529353770732429265740094020962072691709050156464631489374166483402201612893828922808213067526055814800409501127247830330129155932091034808888611128695924331759064319177965356578937255708417468445300665721928914875714094547562548249514554215567162026946936412820431937310789133412643844596212927969401812476595784728332319274524319647234489940287401513969122265891582832280973815085172707524631201506077571930921142251195072015589731878799162346443897632326117426412403801680176871165824739902207859590370804495546608301902818534603611291671924268034092266534956499675611504346789304401622377964448382832547092061045918584799853709810599124603399692456152869553090273040209337347537405524983248681953601745332411223814637354712605691935639284745787367645817029106228229312093815077962322485977417614464988917090747251675539665289695529096579804300036828165266886043595569336926357563008459461780753517977834440264883850148011013116560153169196514888394010927029560018878727154377570481030834949454303436275981658417422263458802825813086473400219405931690767327131902684044772725852626167451657013799494391989750150075156770740327473715162351802662826923873610836796736580523041680811281155445570909267783621856744787090721382277404774804830562422158704939589943553393668069594135506302993011067897774900135797335331125737903444702614440987781738216330983826537365617726791517761198751715810389026505864534723476410689872285482740311959525605700764091741348537504240648881669448611749341184401912180547017627364638333177541741333552286756184875348394874002945937312433973985015886464873050388295538022364942750220224224866033177548138050565324692804117036853306725627085249890145985214702153621165489210486644000085443629478626547590664888646028069964021362736194673059331438870724030320266312662558010443694170633049895086880029722036611841679782627114410615537686902248790497087605399184778491940898219194471732722066048525647932827869966982427734425406002038703687016039206658384421204059544702042165895222499421938852323231785835710845772066264816729966723875657351867725102653821234406630268910909605288348447864247491000877573547264775124109912001522565316072763633184887776077482337374421703889382471796409509003338698355995482287032070156291966916736386694921799255749706991644571397073482880722682353710049556547658460700281903323547537235128689556921220456955383939188977733155763794597598839211338474654309388851924017944947599053730106534764745887338182730987975010018567624602843880651650754277605864487782786196273647226339343700856308201594549612560457964296002098685191275727363447529025426963555123047337673215901335364510660305706420400923386745334330629965192798504455284119020112539744134711406196102011823153164737037037859949615809094714377096426893224069953685703272525737688230844850519654223455825285593653545044235775499707945216838858961171871885700454947308175608593663135248112382779332463061110040069989919951418333060639391476448477143061639320082397874735512401866993120653847955445670450815082267425383971514548288861078126199194020011681312124684544678712612776246907429503383170276168852110470368948442057993905068683972727162967109551127670360798221415714013921887543049947982241140292815444266474502060360424822779989139831914566220216853730820338317684172102426576972093657771578831437117133542851682499116523921066315762042835857787880656395222675344722393280184317365438428373417117899170673683217402069161565147622368929722575590715018841962940228138449740143848743767678860879107294157804265694071521278176673207022621017159439100330257208925667313258564521928723691555250726287066129157957183168657642109242063400020143945870317868364116960589716512757502490269260281658791140002217313999462201115794523223203281776878438233192244372507663724132861848234063759259762993701285558073933290068496813792518139151733929932614850990663331340163345513393185385248149981597416925484164713886262137931574502723033461301427056561709399925480089550937333567029197107953963213605286841352673655784464829543596363690934254291398952693551349597372210404651555645508253586563835057723968904894850623901749301686711590034853931538818978396190168817781953528499777370623834465740254955163965727761575912610304492558965527579837545664059703023257940586867928720428052731777603756705396635181317501288767498923773987886705754785568453674303208823112908654333197486234427532847740671950432024139147262453796818314121628362933392882489196592284972135062565967111721998642982644034720299865800450277998544536436309089791275498341235425141872013339659209280590271755970205739331898203047804213324012633015416305230328589506878840656003290615940030975066685391284503340792482452244387940909814930475265776494758947084050948541214108191486757695103671135484547120170866420457031991331798840718784401249786743592543096970848429774772067975814755655471598896683393784605446244107395354599146745564129963389145274687937365695217926931312206734876609919989883602374199996715581283018172199085120908533222400767285231856812489146327904412300444612793330686242828820463424232030193038802105691704610439370299083997574012726905458914357654312803415345340894563750286110582103632197468266772624897272960501086315329447502783735774767947345721211511748052536873771069730125921828387144763083824255081189794302386802068269105174318950820767423912261727906006759872756963493623460340127445157180789807817762939608472201299574100522253658382370575905453290249788242225051168222771361845193200366739338926767011609393220195553885394490112585201111763363569139346063114515350837403063204353982562071608233231970528661386999628318489219313853774427885608347783102869241192059819457899657819441535643891580264866884205015214888956139875626123029341706270407969147350505566804518665666238485770158432411983876697032359562890322245937997019761918882732133324167013972600223079894852052667285955447813749922171842755183706292815357006028828289004374788401192142184905998296168504134679865926608320815822847282449197549945352757711825502331189755498556494311896903742519577224353959242913902003505099474007862056298405612667883814298571418437470150864525596808962495591474794896877904439195297730810734794069042298651661018297953331799180294570112348717283554349172954154794891571767440890654658285483626616304829352625250615944236673126320654630106515896110556060137115879661378429632184478654482642363224441352473758589074874298802571069447309026471747235475144708764739373340853998697978990237307860912961050818103302181000969152808625750552672911380380619350173285794536039521515338036942144817030928079295227664669947463712258637661630402234138529833507502315000147859499918219025316569165915732195282729257444400081051953905280799168196628711435406670923245404310083947394194064311472083329608207813825426884301811105024861771951638210801021629313061951725938873850317757175406348849573911170272927457364263775794474130449242341202974201402855394259976304943401831252329799397358389330838927563112672945448339371288906343626414988195432221798031676806357733354710378331180528051921326222043461449793782795561336752391256412347391602770577004051503420209659358441308996805607146050121579974613806258829258109720736936108456040227901294269076501827389923826418360662207906278983208992347155411940316905440600979954069807949529804652682288396346191603646405699731303089387042741887650231216128135442336839700378175906050816099358259524597214816654181401055938058947670286442295417906339909589273615334881852532442733497681438149518426356318143012293835580998329905743287234521917362009674260627123334269235441699819338499314535240153908979514138846185624123443418417604380217525845796733871487746184251310867955263137613318877272712231849871203269372562313789840896534648981316920215608993111668721937967168111027607050667931733629757787556370439588331923404785626726824267631733897006564994811582074494999171328561631870981943814848804457495851048491626372618683678417162115813435664170550423057709030305429293682723048082707013892356112528103757370945200326059167448372816742894543296981105788613827405023497860364603599440717724744671614488491380431928952224748329156129326538220448793778638842588547395070176652508155987537825915357560702135594280286402431481391894444471608031814242758932253448927345607372601656020620156639963277294327336750009109723189188472789491725080927383921908788902984568471343261324140620392116602781185489351649181266693059942631988294565678118761022916176195368109045177295908231951495204022780440638148894929113809926750848020687491078560303298536913290022656711530814402176765277126490757520197970913006617215216233649713291355400855355022509311847823331172365440509233887728811560477042874133372661155322961593175470215885658392299766364242816098579990506287685214668377723445811250192364937187817220432247209314885145781225553161839017422606878350927854999212620571332674571567767052832180346437970401592969463845978115014961459724887228641222356928989723726025957840407172682760416171783699479878826564297031648905905773963559764015900449056610704875583541373988377146027125500871660128035991842192061347451142775028517499825819231086618838690139316971893670575001851382033876265369038641125561412608238449873417442637542330901172144824924624975774376808778927756620651953194240867674982715948374267286155216719057785291258002282640298597991692010082027573084468610737695343428771961629168669605035768956285920927099311551856445698097192337064624505918493799100038392586934974153370447381774657989207238186128814190906203322448830093779546890764420321433872721173605673422272682338905398759800979245415560179555511275669454750219924387049895669538156231333244702914516796967674443640948548707536268742906025244821292178082561813174020544124323706261620058880757149612551240147100671975247755752015325678945460020362073173925214544997466321360075250890337241186276831512885194283496789948553059431067703045895953071303376816937448268913349738492295143176052873217452160007106196474749266800823488042681940137124637638551120147814986898099672392256120693528308043747815716788789126848120955683381186680325009172954725066464748002661455951729421351081578573016377417461803126197220454561224468146483029302142019431756574263100158338986670916076377917234616350895150509111070692810648582326094800828684780118015667569762423926526207520266448991948386024981023853340054260605995933287321930965550629953868177840776449433184653629111370692910244944982352834917932514817638856213982569114514156398736743519610175888398570828520323096966523404721342810478492679600656925157662414100675828717937371737862967135836784626605008871422303086638150787853590878850520728472473214046058201701820937552922078604395125711905323225233705480568486716487227463404277570045598579395844115015349659370456719484046752263833670679096595185824892702769953949687501904965210389567848500757522305337824561956058799206068661003002517686594615726847211605479243715586110534366359516239150661777409936865704009341557163812322652252841728471700240329090536673947445367666333654793821059445023956359967312602731935618705207073205935103040457391578274427253632581558607519587206754250972540425637279577241131930411734254044865215279743581560570186702492084883720723038636851445891416127717427436678684811895693902496565010547228800390095024267821656966399366221109522949140133218843203818503205271537280148811177646452294412550548882929708275030293932170123883500870317267679244992517635243609377969662238350895472914676265262355866679311929788007118482223862838235096475102902562805912932409940575264938050387001939474250145590780614306886991367213941656311263048963354370257556043556914876401390473101354259400904036316210713226103992752396712360569265605954941823431021102737721500780411089012400013260263439716710983078647857371199142975414532320189850351251216399680140304876303648422928963252394861431280420801962282596840866640060553198514859867214483073814207786951801927727295322935215606123867616307292925666723207802457525049748418538825513050554789333668980674130958191144232537532752871964388016242431387833724341812103437353848374568976023349866020365902576362675990067216054386134777010866227555307338920211870227521022690621703502964024569258673909958063846974474421753928073027615769897898628576251075024159187332490770014329226465270866412371206853637954524722851777222374808841406708928356899940529734238817741761537772560918174933077581834926778636102658203559957241160349661565204239206179298614534241822523736901406182252814056274421895168813810609492621143369500642159630970002788216699645611856413830039573549073574104672460373523568961440176598941208076753918541055169202159985701504551508182066958043978371421673623529172888750088597588983777193301183533950128906758260943279007845723298302819903421443362578853128502350471839745838747376291517446927601540162669651920652407759968924090815002614977711493804020381642082012892973942699804029007629054396651889212503629474011619611569235400635732224979350579817304871139597123837746099387459456982535216430945519477248401899398845659609954202684513129646253971723407166592231319435114188254348795066216895342493635310752019387728862061580543728097186996043264489408568273363357902192240329228510537441733289551568194358243373989608994641308074257369370128269123416344373834836531233396322062374384331363311525068488977450477839012160378388420445901582464188417386667434025742278463379697874185665084011179651944026492352988164291993054673659742871746591467117275959328216911669234919330315952653703697415722151167480203224049595475048453111620254567735946103123746548298450199674921506173732169170415064745983674761687166059748734880750012475133007459073190810094496743800261602917015491146639585864699152852275493263675586350842057741327157982119106499931223188506555809297183225846587449913975975795582443828662299622827971241839134480516554058055228232683617565642956714304214369231682837661382113767567019698933425403929772480377156692729232007248321172850429590685725351148624060868096108444039917021131221764188084598624906523346566673183400573730974295453022470827873599787532408970371137735048443491806781276638844105792969658213708532252998508432893435901777571429034800945404737178194816175898194294175676618275021407962045661539263422195397518455460544891495767459266909357156792154152451065635823834869956157060173174321670720644144628071345554932827643825057697607674658742013090503528890970513734215967441154472863435347982913734213511445147607115334270372803923820531602136385264738604670861183887553944514553636624442309529462428656442565924091326958102322596697563471768524395116519787654433577382746169695461819835368685295246752143169983706427976123894341148573607805020437501334908693115083872697725994269205640823309084241363386211083254180553197501084308067912450038628150422371204272945743276787864383806659876444880540043331833943685909377975998494554766252147459513774289198921708072609343154295828367956587020707324977448893509368471159364917004609299556748570593780463528316052463684415027007362349141976128443852934835815897455669327853776482982052528688191876643191937057314092133086830959160883153298760568987021805630480644373624838197170571108622797062957427718724942320865909990255488907845621492877628036540476861722768346156382058430882840069980359911244031138341526175003184042868465768709082187676264909710776383480135473413651183944126296804165099222543399388393307105177448651620967385342218296867586883648842162331957845447321884025988261623665134537955388560082863076139225051209804907746724681323533288702081315760997219198812169819451055302816900785418688090156305679479038731853312088241810902507276593130970699867759426878523708118900604914272858011562488731561511539065197040813864170521144697701781774648634385286879910175421945902051369333202380124410864054117831645655180591354958870558891007298385569115650929938925528703066969020280399725311738948324364239337544681425649309688592993190149430546543585749122437571144961029674821406043869441842211197158939214267802353166763857385076914918524571216241189769780059939941803492050581091565306485102854353694381569963529826091093664580241481404284167098354834558069698133910767860815591771839368924118209208798539454184312617854482519114126732327337672997965234810931891603711046423189204777762503098688402368882574767600030997296576788398466986307077843650976731180752364677554443216340800562234564187281869841280732020624935603833982483552977207179429375798022738245404675864956941343712704273690716643222735580015557877578823723998146939850368923911785513974784194580334684470724707146639929151937803178067698232738245765066113447616717473926697667205076303920483911043451538890980229405387486755789068489715483401284984914660799690530626693991492310386259242734191959438545083938323153580784876504612347043648508276871276868892403627522313944814270718922311695173057351111140612274140698222493828542542926091559881037496045500247002630482037985874789447835993406386938146172610857664578198463294615454353666378949576402645970612287047402952870811217212691294862001813025664785505866037412357697436839650068441514723012576158467392076600946683115945036275638665006500682334753895992988671823514399477631900050548092412442924004519891717531782525094923894476841055515396389745488895396056977433117280133847047152669838047938826636813461385839720221884827298218343790155670238024915477484968567590411442716440629069963982787097691634907661994022080220587694836989846906692089983584685039147420523129849555798320119434037491811860991751542127385843358618752076700297165062470459267050269779037632420760552152748917773706459503641629776375800240316358928654323010646736670552518220132488982099575812045783495204468322707594485327242735352771612291052430539458303129001225763679456002320995943626063056380288250158191368145558371785289142449607077555033027859511175085745982585194835304184997868684997346096474955425101905122166673674687529810952864906474678827109562983847025341973190429521557227852485622457837579703526633670778707110738671815090445621184462523343403046899358107244843784818846322036021809962785136811038758381297395517440380036473327016745289435864801607397928632307216487329820057969588477542819895964900697623951625016019792640455545496951033376181362426490541372862454961094730471480100088079713844299829831427883954906390049406805850443820656711810566432836747686607335664159832039979649009226224642731480476768890648367461120671635625569554142845716818481585066469559480301030858177962394431979291239229962368406183312076809498469355290271071792585595450769936616921213864143811208447989155168973879354983908472120607932506298054325649618548921053244410548561234458497767827121930569736784315522900381828485363540146883006845014912078398519024630029911116731737221904533908118723861105643584233987362470145394694435459640724989018233519642279892357989900274491195677790490210306298514955695734543217722577767481637285717513081742661902380807064694909460466444848340914144623446438673844420849636034241107718681675115394125681011169573788286526997836328782339526270656089457292099211752836517121789100019765864582186867320537489307769858907225653503049213042603355131682525134794815739629986050794794281184035908108869389991249745054405827295670544741695392231230089711274174183129268022898212936314896255258462141113382780468572361814409289476443322026847975423202453489389085864683426460289402937276813139547862184822492379225167289876076697708119245550169279531976922201475556073249122867951905309995203353807148412041146607113921215035818395152521031104565869605250804525528395798498740420724044188265537335358814166995703707173726267741872489908156361306220390336750087857379207986352507937609240753244069078578769255926880101559082709963515292843826142494365540132402219827357838080257852376015424794525682535246095265824125939141010387908600180277776908294743623198896137223662791099221142558122612889532797330107013268426356206964327233007580007694543343241782058400328280178248093149043248477250840615086975497916031138218769732565177438386279491383508893732029566260825310660463359726691817034015925801663535215580195106939660884580814067705260999991111687678162754035271419018179176560614503189559535129848992898420810868818063367839894898756894021732394410885670670964762887917656409847483521541422064228801810110669808252091072180478726037181701482597721001662072923161460213124450287391384036602172413838274940328467245723122039967159515477810021122203636723279016452971609511949065535995547771474241391705137073493445418135871318516547948167799978939346276918287108223883543122198971236395899786125681304350289426019935727854855299422281202020263135919140831743170891911149776411227009147910697744100917176161099392293088787890815578368725279705577514515297920238746882980042202743061717461186193860136094526674462208981520777338116788442005244644432307198806276069613989517486822955687952085374982372810616580107991753662354338701349894469966148899385071692727900153678833989379332894808803882999442694678172293623100431812325856113105081993705447836308445260395036387860091571544174560236834660350204721670937457612918323768724768923599969525497426057013250336053763539798339004738194455034794978781039689484245620800382114634529370259621885410938521955120919516918592962669411151812701676537882342767480679586362841981702101519554144181294241210113614380718719469566257641741624693031172537012997241015104670091351569274573742841740845475038379867973596534735538300998037001410576038112165831976607522613276089050265910634847154312329691338043901850030375241743094047880503982740710189479344757529192677572764916853070139866975493005927319542415094057462191402386560731204717805506304795591685568761646180433283275185095738854593566752297139949190976004879258655955375747711787977453584114206763674986302664365741289949869394143127063403845864807818536597756937535024268152779221570234972890493396674501922857857135534372921056474818243433554565369626401014206410702618178369719629235447768558800404921082432372660795790200721913341177926605828377457050803832235920434957202170841398518268803692503602067066995844672143461994221029664918921557113886103021934188583875103417788133689980611396244476961557423200224018548839205446018325030503190543750915347868586877079484991035535873337226993787800979545500918218730835146096666245127873210217705592581866775774075978282016479581158008236558425930843330323352276901212415117978548414295912438169454871107504108889680068444109046355120441545656768961409350591341170116035132252688645713504130548098887040324892130738877472259234375068352753574429138848590081857759024000681401751293199258941659456508988707935125192322387936394271117089079775704972435474821325065778584661119100636461826993447333343506058256667024467412215755250041619772352313783220164667991716379305626341474842192079431406960280967010439716978838996687589095978482086536807395570822956781505330346040959815281317772671583805905603359955320154532890971732477692148311178979611952336945203225359472343540648597356045981702539808297585528624129828350387279600030274556324367148113174717442680144169693891611872833097164705009705142472154718231423686291728154272229299641941673130406579977303506246656133087378009757750536365094334891726892522499862647109423260540357372682299102785669239784266333142536877275206379619526716204334890727366659198366258932834328908420544368921949589693225687410364771083644692230085560909958569200919666874365713034474235382242636414178816011345885343305234515698172061626844756448359507067697461200532135396886378958482290736629143993170311064982938930282422973483764212646657634738756611046513450744893266580287762344268168318154846198717939443089524160302341677973737944187529809960820682079446311339705059003495600389287599110518285923936256986646468044648847755295225188119698841418729575048259134632180607299028876110992310598250004857348552974445143092432215887284778468174907920350878062736330273950681455429939358025282970058278872735582928634248520453603767955922823099409847562361689148342874877480278508016638925271766968943421591581461076744803736180150767722013775754878577844281349104650965769769246487093605655137783438854548063962335153879822241379942320745743973304724982748240580899620868991748263668597193748127361932836354890451689020456462595539138677406507114194330070983575228860627782423158834963740998433866207811058497921526121551489920888624847181298134967838447628640654097664493192595420052657267419627154412304312795778987462984603615014934563411165548308477814284532158366681651056544839151714408746869691170426598152012446021276891986604731454254415995322092336045256613289742097062429391677902524052328411366393290420712258282723980547934921810348740226592364044821527745110231892261387799670793984148719103353854703124648570528486093535722204621657675160933798513607293838576339036484422282500854740061697119713253265914697116341780365239261671841708843309633219909732709657345586131188755056035866418744586353199843036489776031584306183886135776796225063736849222371975721889184570961105277348650297126549111221492859676416565401553856461971186514973066567433294924282360706039706286808678456504944623977073598537104062161222165684668582217922410613114709267845177325658940169850814864308296012879915071065203871574858822485824072088193129609905611916147222073515672505438165465538498220457962988488126538776083832903225682936385351671783267238539726337633747529490895104342609642390786930271089551500247097148018987182196043840392138165441650124375645521739001099748049693002138015457977975196067962448382782669024459000444234942822864499286217781613513321690648222324074918023746165925612015527670544071584702904274711717253042912714441492551429349789957604292735573299776913247327306217774659136404802972781131904395668438870337355182536386260307306530274045190319656709812445410034869529153097508172738539689072923620032144840681575714462444593380140733625601715345394376106455773913545046594414461657142767267344522586913958248661430883586586056511171905309890001116507089416231851265174680853294856634457346090338083023363361927534671869416366370984791032089816409274760303683801108088497465890287127144002150015372744999001051266181960922259284375861202980769548968595854329611580013256033534261213517716563826202391118764328931650171329155827788390937124249979752958669304743622855860119565964240077168780326501080102112370840430783030870105564640917264137508657765061936645356385950298477535088516078316554920514728120953953010356054381111065854381146671889180749695228074123718271645420408976846016205743535029285059526430276309510836688364394080907233785384192516135139261721650129070387133292272143180339636064329556132132208559891935584162233561630774726959181846785331159840246970843286981133834851765306940297270411987308168350364095556303848693989674159845504119530667535750833683073927584911925517998888870310187952067410432680017188648565556546291218347103718616145429543156988743612093179481837888184694833163663893236603422234852365855560189636227486474486770024531487182503156117909143587969413906136289980569083926244759654234146732864204264336163068531120618667650376794622383650270280386430749159147531331090921840660014682703264541914427171514357365981246223881733416389406290988507153690239120222580085258236479844863979152698952223585628143235928130786069851916439748057189447570058907985011007351264448446685912655146543634292413742739496669935632024508648482501626670915134708900477855074066623520374871677554585039335641588557204760445568317775214633351289525248881788609025411804809695691946467957120441066337940236526273295083996325962333365963441296054019924253992904837263820889482525098779992719777221537546571260605317779854431671528469165550618515413156011054783860499810223877456203746478991853960623199793446824368245200527648112432700723126064767008144264520924316227338966325809799464957305736011166518069268131452534620367880117926213950618608703372515899594085720929985069873837471851412397097174086636036612160741090931396026582938982555098794840819510092544858923980038023672897373335211378201372497058681193524812707109621945966462120886193810716085646557194039060893488937242136874114810864641895147092657050885087839722418777230547237666927253708116393091172913112477115003959372289679453278878564913471996916281267159827503207096530817883115842912842995964257344882567435156481900000927655804215770270980669080303542902448549542904726147957062341760260402919764009598271094656959303144343269392260751843699253119300684814617828514726668654307165185948867058414010691616822498998351366818958828683911413589715688751160684654448106660492517850003358457279864471286831177816393129266520894896048952304902506770523626803837243827046723591419135106103886687212210880313250693769397417168138844689044356665886346791202245847369754525823916403737746612383898084765257777346728755699572032309374584964299302828741738221752575280507885875531598630418292163500591363673705729005744823088000399664860249672225106196906394917105503598473682340731668290580743786209026733155747974255536732573412274035557708609278933211281872004842302364853381759809014388487150838024929346627028532781084510943244464279768965857331527303607665264977965423417091064366763619765284824069978369843201430010343573946766355793654363499866917007856916016967508423491248262885109886517557933981240803425238332475959124365672876345987968668909776795216718505737001628934789644872982376294448041744725139091665005885600289878780604488074593277897076725571849847437618357535572619089515452570687207419293950885582968221594279037749158432632573656659161770979562531423890608981949040692299104231096934230228742767900870590194828515062539990020892198974429329764008016100369343737363733117815042016408625746980243963755668321202037379305709509453073198941991033950314476480548708086230527529774969045990793378645291906791345115574149783818932025559040043227153444315126806240996187457677701915780510033794519515254910076654278081510652170670727720619660399014649761596248322293062946382304527834428660161599710166910315677614696982239645558467725353807939434165884142629739059901541141523109181384496666952086634115594728534800732110220057736270400092380414587323803724795568863458892234099218332339951151896354261016574343386837422244582684226297762937253439748109569594395426265040886905154417393959262077827014371584229960162918235210927800450945493115312632685242979033902633451573095676417748845604363921534243409073733249910292385004326788863943168588199946134122632091901520245562626388898927180986076235548309601232891629746570629200639058409324720628829989168750715544788706167942084103177279828438703708586871531736708529735316561704616091868951704842773257942740799871450126193135249812619576076825162970310697358707025279021454681346695648827414556048731808113195459829711584331083244517169261193056295013097839058240801914105073678327747801035521170639429479506898098431646662120616640656198514463591567300920057933217071854492496677639833387955867091130737391636882688773174345031678601013312051639274146628330194750633158918473352065659021861379494995354496647131748928487178997852257124963269568132994993985805945968188222104627624362350145751866656936063920283018971404982036766054483973924779818911662270176265143157805699792788818892493939644562153500689524536038123807291735746003259610602672380727802245509948782860543633796611984428958908135316583554736756449871061441107222992388009406508831976777348447607478853252262544678417577081085448288380735630704805434991827631927729087772875498272639391431111650910861588485941281377113746862352730088867890284724053867688550785916387987458809311066761632851771183907001173165173530145029033475917551885320859153083146238144473480528928105771696922119558675294409673965759912962334730998105644214330378485391084109216217073591153531673508778454619324587073399992513936286505222191623761646689539273383166914386351466401741558068330711808671358122691450886731869000825547675614220364581652098999410388251996887088067745596480264689859197408894183479743603725473311839409912741141074142267483978676616170323969050545668010233685318374863349393930634149989481443238487550770274614946019795988893780887616857581875669636302019810003113890437711765200945725586671662205505249526514592067451369765150383780936949952176883957287701977382296730165864194109845892328924512683338378682370651459701051761244273029575392184728887387208992889492738832167934630845306870916056303475421897483690021604293629241772217317778022780386926148104891642860843635990715020111894026126489151648090272262728711665802079766663735658960510916575231089651252935629552688623541818282100205334415213937630890624131834347791191475338246270795661818797389306058708256921058762750675048918938726683303436159213781233145135717702303752605356232428346737334209490034254558611815060806013956375149368934390503064925324006412447797368759784310800438386623320106791041585597381598707131458545271629407102140881846970714974427049848079970025249394736295014687356945237941561326193021256411276923320687020812648140169037459773891267898952640780043756530494008211873177652676133208645878307400239860228602209827091765876459325700238283760769907894366856226646728340819833770890398901065230600518721382940082485127209730592835955186430034984989071573832939486984468517864238498223942842331751810361378493086106109991102028758142785435055315948847809602764591325465194991980076950534763384261118023263149705497536961009632269626965416946752406945118294480951140316760695447691483588613937177239483508855515057387344263871952033223930212533509356319805449526712510886971082995360859338001276874433459290399310713646150913117710735076368485812034487663977295928982043818625787833209336779382501213935244346597822901852285906513176459187848556746760062151763865203257293800185234970311018908530382586236849415569090863399239188020931852065371317707633452439809113812602532081361689029827307685037877638586776201345912802988780443690186316281732615549755202880687291214273448679664387227755564953820826809444289691187736078727964236601993967579657980686619276948262081140848990693962025545162510552837230178424227745696850444414371912960110084798940162968908641903040750624796471061406803416748829560332756628109456784567958929731247322983330584373149124339712014381681192274279634960390035979645563678576835208014455052987508998476354736680795292267234980198974690218059967279986544274922494501649982421601055368258318555197758236037803471321205260173853475101223138856767787872801934487307244943822025924565018619217962139725839223326272921898156905768306685458233299611630537848005690079593419327156986538264991907345633674535673910420905946877511308889567362489500882312763598611178015391180233396216485335253377734458357289033515905554070252638354470678051974969370925070273535294751198416971963830915580336360447542714370155274290783242148122789980785689616260113182517096933543456435998599413842697565530248958338539095103485734419191291781142222813477588645829502342749738047852150243087195303637697515213657076966260423870321247393829729724181276387712746577940956434113999403062714577672424287760328360162302106908100411264652329647160274747986625266917976201744171845668869841746691597076644234239079388204986421965415691755889076936326016641733188308871229387114118907607285631016112666648946491798693148254036600406810627446568570402367000493638609342404254140279758455204013100113527891163727971670135768695012214544376481130099297782365602693040982377618558898032360357855529041835960358465251397932575967287772515575417964689844819975889357827109583250520304730034350569980079732632624399166004348742809211987091937230706710304264049072421041438838702552138954722723744744408136673997574823935697862632935877835120843257928916455116169934563195045373538629398696146774363923507634674709841102841731935059230013030797193265322133197516941287509716167119134207249804051751240655014026387453921106667564197832815635444928732096031561026652171846307363463243482989770445788615324172557444056234993909462198690249590109854644707462545000122980299745441573040823083745258725590080806560286124738124386681867003763997074248529622605592465350650240684176252083944164909919295533823587249287705477481368366589018650231429643465154270866681571488902500023959218728050379211255262558862670576981125258922062490719751944859285138927741008966074060572326065363011916476360739899657207074364951282952512029262082207751780621285664232004029809226355026301854983962023173241972340464579445527935684907231218677644013835983206724899218728785653383918414784257446131725152805786448042149331786971916774861298192062804589622854365910925302174628800347665749788468849095225948444341963675841532758504137154678034765603382954910551655751543874310623486646152761120247646733606124950892654550995800100885152081079192655948231430362671164330282479626437205888043012162607408215672765480582215104287828883736258631597523690509078466832828873991919436244905441932846757135409695756973102159183678324069967216979612511915416661932598301765872818468985681348598749408781011836910250756540213348655855976043184208197733314065006444483484453264590567165175632849951018801821991103692945505174496835366893785615699017804600590030107688285936490724824941744275140410829036374673583815703369932062342535579873623605021042540420105423403704107158387189058251865676535485664315579354452792482707790768775179118724258181631214943398308456982082950379907254886038090336326317157672689429682903130372623927203289003992540561278613899875321895693423680669158273961187914388686466522598040354318477191714671550526597117985465472357714607729258428220038272693514104063041419106368948206437798071372704274950360726724686219218149613706623542527183282869462036071737999566809762438804472449335814316212001996509257916056242530760697608488751910376187101988650913101164275038545347746986969941406871890750265729701585816563079618634691050091889352063465548253637532904321329018247739074665898711337517693739931885841258543745100566005079582086803613904166781840084664111468012026659201090787347947210841678029549150348397836750512175857921577372320484122394934455126807804198541890482923864650195090066476673643738826144278075386924531674238910077059051954420952638765992002416626148062380739234140000664275464550135552712842927574403780178807847840401079284725012019421718104901824558860002120496155627458542404352308012295209435696116775242191616028985856919689005239699677925871799936026734820165637497709922468229067589792181951775104389233717217181619411536725244355570961503775646937218946474335639633036250741501777454593596794181786779769825858561291722369714050474255071277991977755780742434846347438631431373299510767173373380854964272463048473409636999604211933265832909511624239704354254979854443083339553329752800732751848141604033481157963584603328017898330316256561929409279709274518889854749689933895668623686143158535451218685110139858215191723721541418430555314752411368031566894295171804322490574956805687787011037437033252988681158915761238655174037516135411124971289992914871032476044238252656627662497086514404607203440689253763172779561229916428199212791314614718625687469421611738892051268585186630648354967743492450997702240231186626878868031090070735928904284486843986604648221520418663928116463577712153915812920652372290316574744730362294104296232752728248199324857211983539745573847199931792870235297641769995554554122517526739497416766545782802268796604953942985389298073180929104473392858729532420605558640416721725761860831849170351677276024713058954302839028415498414207840909072987347795444586814110075550684920952712826170530930415474791937957565116251057101256749077519310639369509077706033927754431712717920959912689636060394959385690729929363112240861090001735236341046064793962058473085325802701928622375490956187052792464455114220730210944486613895318644720908095080509963143452852167473437061072091737449261179799080447841916479702003349085648526325073358620968178467272812025098963931122662843086547994907633090289259531585980929387136545693132617395157308129953763370575504159149862620207369720847474437170158908189824051150495245029975529500429953170336679360605468529835839003312452204400527144522596864439659416809343414712685423422678146117662956289002537725527873370574539945085297202894807552702780378457054888804635223137138683383432938577850598852315570247848830854251312407581063059789753255817221146226025550362678297937925004868786645958393076973888740637899715394343697529223264338906579146750476346785350471793947999205666115964886109793684137439983687045712192229969114252606302242289157052469083737149103982364521910576557070821924464085082520756239350308444596960226154433132973544990011836570811648134877232311027112440782701424246937442854552227483187388869221158633583564200641669415998424972136221778097469991744991266221657016360779514098215804487030648792124179424713934651958952795626170063525584029899478683783382249207379946543916154270103972981118241504397497205913275753632075932580042575740104529095093753430381604452377192364760950186135537304517872056712542968047114723101369918558996469125252942826728495103461792089940414874700794218552589628581751248003062984839493915407315542170939283481394816175729244570833164101334305277805862392347204705074699631323178587610027475318829935547550206355038973589154105887033602563404860045891995600066938860257288408234413351437687841905220793982625623924764458183626328820857788101419149108196106310282417383767308425795328865574571236109008393039062197392971688623282543583753347046136464484160455033513204768684700160836590897114151340608835843803120561255234545274307446195476965657720831426586036509436744701410587825110651177837668087182226427577524138121365884168027546733199296922632995500268047988320825452940841455712606130730663927343018311017887508333202094516531495311617767454115247225087061104652166909684716472489553378532548344852674488666503760282076536935280075701227630337025328775531304899324147517963200191727377262195600407982856242538821040304935601988824807582488573452544690607959300828640265230372819329544126390414161534713954761035687113301863162017210968136564227943536232899892366990075960471046287634779810875318355614877333307322367930048561332731642067969786524812351906943259411976774514650131792838365505905295050234334042006572644788655226682485120424221644097350829778369920462522755904012965950083257903388602166459356703031020735483984743875963374076999864519317564244061801687346087622087237551288495128218171353262201123896271014981407564625266296102674972859794073064997993612355134575122492194305816628545421026598594169941857988294428836606276606973503123794722191414335227940045319675199599649620595598434280866915098656974808635383253651044363121791870508586217837638704089417259735570073430490016841773102972401772931720178495616444198365489651745042649214569476000786671493462954731729668448161611887091195820120286074926101560529276031445806487193638997776547408017267913069736126805242476583120579869467365589448020850629846994800323115947741707866132302715377533996670079073659865526432556301460061016656317983151895617223369982825734936086974824010381377516367325937526663767344066422705833380703202367601450726899366026086187950105462306017300156230563097067197733712847545781073722214720630152455716083053174922256948302083970591458932545839723113368715237412614012507719844915389581174918488011319934668920822275085283499930448286422917983653940481738305407764168540856434630552513931663697786746862682095490080523061582172405913899941672043623972064029433619712459186674752392800339672013836609843339405204595330064012850735619641075786716641769418264239691169728362564616408028152562937881908521337696014538957372490263179211830900099986018876007026568389734816075942887117320987519347607989706170694089275201892721469420464627196824767564898285971623610044058912517723618012546282482632778379711788526681519511495280426506175200416482079513161563264204511481401086572362017132050147202842054450847856768858874448382947073331963119518107230000903032924252361467601412331523053412641744682568859700931078707788037015813740227641609432284425549910968573417639126076209277990834626830902692608264965770182675261668959450114469235995537619136557650452518154056754718011952222610155547601335270328675817055046081195989885104607853123356103877055760751739283297190680545167199472039825415787429770532297523383701478377620516807068725689236437658155773216723106042124245292297116250170528336773518643872251772288720784568234395422977580559124893815108406976355350982755609210288857556872633972514708808354887619757008261434894788065178320149686258734661550141676435268633209515643095790075754703959124651886974074269229165564839913723790206129160290105128054847372295758135624360662274731718196669581314627089169515741264685719916896670023512436477009749952333430189626466300501309538980236736870559537130053740636290624531725690553019407477113723655469599733674768732855731643978133857248020106522179491296200847839899485328965155717731549935122321632952209884888436700057372959090462569195330321057060487703763981592453687096603038704831070059928254897514687510674062255794532051200143719366181188836638388842770410505058985231835892318517169088928139150697164664903998579346198630417792251358621475282175447776442008677028089832827252864787091618470735422479762748641905151160711045907706323755142708750195629679260034582512777600823883569227515572702631930091023742394411998350924652998808206708455751300009691969614409141421209871558591273107905236104369904620124651189210511901229523467965888692757333661487806752556144326781380272922371691605778281220203497852159282420623966759112350145189907122971459145850244711337409272188232189571284282049167687380481579819967925278158954860354804904438555220852654932148116344685371889447732325118801138920412821078292619117308118747954739547167991433656698507710213812745829357429670551902734726229389341420211923685404150673460254672224071399010462835614734291631486242144226903660763446295469972993663075711108019105430383106567788857382152580758157514715739643315991477479854231226342411112720146156135905709694395773109249899705772562929564657516052870026460609931189488559010094467224582470759296647655247964205661595743409521885017580313857243992112941073362911535873914035092164826093586381614508842515805708824190678864158613606419803644509966180207115269283337102987673020444270685126876058122697551746653420569472042422574585416958233567683779720827233783606210440350454687714022504162063591500306178777968776496281862718207878636388252443640683618049124385047198143899278542169284344004905193127337412851002661933097524370315427952932800247050092963227468684232512481489946085735923928335562789678660844921711999497046683993242966907166566445971099993256877760861421520630679103579547619282498497231106646190058451619978945552347440557083695761372408350773646449610744517580853272997183772882566665009941978575540484130182266136065667038157239146594122253743323094854337053179903266444468681300486383191138489181857709409107235101917524289209886884496803173689755221614284403352071118290574734729687268707727178927760605583347734342951651207595751394323119537449464709864906090897511428401744644087052436236667327891972709082529115570796754931197239117431375805674305732401659253950611104743588520179150568747761681938901334222421820723422482693053556969141607049583743895971032527486933506599744971826950685575465836009569555362853859211504233129369133381150315404465468362739965978221174825704761068383686712314880481936772667364392216153266590965881804253796623239377033000261711006543505297380138251661091454578276335972108980077210889931691033850731498236587795984988961785874449783922728832050247116087781445818713930480926986192266718326220308916296093237398412812740475889851188813654956165392646486859420671022010038864703240914328949781254084219180889398315348021636054344003007761339311177326798449146797654970703430240029597036984150934507670790558926990637436206444610417271376430157302004145933908297396096549937183229312624180173651037591759314767088385679684430491340495792848534905348516744504818404641287867638828743738532266476288350868044166483872723230193290775125589396257310549191973956359433019276524144843831090129822313284858052228657887010729339668846050806015687564409906542234383745541030310773873839200363833313977205111278082279587466081856630375204835268314881379817320647146813957429591134883578299228493661753875577831681121514025273193104992831402936546661730652064601241190423340236152571502120191882022886107312804660907694303099845212853437586049184235442041692998726005427943926935626071739987579308842877854915418477654782792469999909292281967923379056000662779251486486083877543555942862297266948028208470083660609679714599248265615169727868476156863613981987991688754330073605374888938570048234404954696346178814244840019706949914074559792911291389212578800758992263524214500162900179419809214509913776514028104432307508081608273967041767989030788332790755023585747085393395381177483405418416564395763043817317852055705879909140290773979479311335680319301023662087537168897647386894338467034194436796740142103956562565300718446406063067512060433274097031638735296109945350995205033973149967354881042205378079913544297666616384450847148127468687883029459566502532530265384313352304457960253890550926786564033115662364067212061281732971832203413638015492227536376178148672435959587310255550125954526868686774407716512754184910455133801553102164332698841837492315596795269774842342007687463601826999209788952506195841165660837632939167432576656879377992970527000602825664997977372957217264207221896852680217479899205376047737236536522962973060020606330847152169747580947877831825114751189582327143836997482585438687910215715253581966841465918021068568911135750764759757371760778859182116736129511299842841535180301167914900552868931009561685698724369660028196214976204356106666380329083064621567216722823284082671460312084888616364064368193430515000861195890730885706457237659030818070531389333605727171036903400249241380967871351346313183962549818290199167293202810909583432140650647370471198121354280303454563413477732687421785955739163968751129302666037111070095052067932127026007684562177650101047503990038123198425853827653116516096152720206260253830349216716044046012273844544521677133607185556446548752256446387945976138124061798399423674840203613824551382119949443401908950929557242162804429480750244833213229022787971405491800182604297759525714590130700980229871015657735830019215428053672548953799906765568231590899675520091311431612103000660199470949910310420898443762697540666875632083175540354129918391006295830490764547077608377147742238817237347636808601436039962268121464002443335244953165500024906530047280326303282870365490377691063989285064495210792649722001965521316705527609052801604666868164290980881217013161384060779074626560103414551795589268381047729945642308036701688970372219096265441163106290558746301183939377876707580109278604808522795256754961943178390326973282767811838483071457728454600406368563827822520850129028207702207421235421331563627949648087363321273802932063945904219374243252801665379460296219295873234655763183522537296599787868576348322450684858164722013234888837126809251220973585312602666917656873185126956426491378872852270826877781126807796831687429920177706167922010108820037516546004991265288212169633352017334269599418758185912912465180253673464588447170033692439360796488988845557254162330192138214336283984410944889442597366901638109614606239386458152815255810018725530106379781327723484063690699996271881874265975658202756990633399245041693002693817192050162401598030733315302193891779563014628613795874571088756351076936243778870124648787240169067766967626310740249658971775373841767476569733044588617533084317522186050502630304736046385959151933360803900760733481902557064983712668854274562501631780894484841883107760179025612937631971184959166537075049872344798816294496476087058187550283854071150118598175805863931582048040223136350583466425306420457382730641443135771335026342166067084156978062852695988061876389241365334973590640647123981383541700510394251752789532313862214038638187365891232732294569186698906223104065994598369955142715237244311098978906047364207623405004914142174645371389884435577556900096049661122662319237160689533268717772018905499685449986026535389730406778673584320062720601654261593800450782126433569665662284967577116869349421028398676612630900256579255658308981872941996434222518812196259630682368148528794401938365956566413613837568261392504744122878476266885084396828259001496055614820018076081194321505438585183536343457036682326995767935547008715325086042686467813262115025000568178582428013469550579695582113408279324743997892656503843437759497069469273716361765427288101692247623094579973704029080453570702854936236697064880822024468596328296476431617465875808171993608454041027188739850400568511695049671695850051187664071003674518940591484400690978528102499709980310502758685627446796644571364132662829158846456067574631595193423167578880468086271000634269250346868294780245214606660110179116650345071252343366284005793268783695874719315665887693615835090918320332512458610635422143064744107743646763927519985875036871073740642099847569484008937573752488368191334336391092992971305603227969002270460048420573590071549571550720212569781923335853618459657962175306315657789496505134786828765108354069669655134926308210790585571869921410611567616797343133215269085935102025132417426743649262589187364897589284799175019606759568858110800323263457910189231770469317425191302259534673504684444274789496922882701927309266900090267680598305216897321820120458055873085487391728421745884621706122308696901866169253796675168732327065180080704061164294698062291146161093234517361940603417855602824651100621538596291097174359501633711607015937789147460858500197629208394349468951021200640913707314709998258415252588668067849463681813288390342861660112685867501081164161865846755823230565056589471135843238479706340136701489765284698519285400429701883747319587799547665494679605606685257180233189549095499642346533818670800016461591263890918905497513257445080310139631268506183511193602429388370938360156783124739274147990627729194508185729017363541311613909960106038625579819113662881717936096306425523651409526949643132215513884946679482032084022858260188575792367284169458803835426004054004182326091055867022171292395506080218957670818749371873419376694067409109132945407316569726687013091588938857015037589156898591728509055180199289367082130939248601612065923309799648461340212705390468833421604285921758147350587315670008487321322122991012185624103778272383297442249839102007752487524036325247503725655179089255107112509204940263886518080767656782344787945268838578622218979201357751596317364838654063632526798968985435661999770524816044578456512801947689327114260619369913982216828977017549452177886740046778780618966375612443529096763874490262496716568951967509707075450491525138249898354623954707894405865263549630631336008129994593867656181749424857755470628206428203249814244523632892404349918891718354210007257330246234419784436734493220015430172148548638129082211344218497447847259560502747860456863243097242361084724293349455355327466262160650162182641155798916625822728870437771227564307338572895097592212843201448946876353322202715173219889122899271282510583661822460426064637085202454878334740365561467170612159924232066854481660148428832739575278000995590372382666049443119820926433749570625002693325917045422703575302899594182249113918790614374392090149268159451034421531188812590684885184367309745736548680056234486396046962959350776989533833827941741215068831538765569090269997378835323252482510912886671745914742949771120456398676934543956498459803319155464560586205744128194184053854334912078348612610943661939159531747816318625036002595720311750032784224699934196108209861714848655761230622408568861495383670980098144847603618512112624565194293815368608728262559237799001633238751752554747673610384103552679442482369099433873532454054164755586239855182103361263518041315432692124538306990728874028365413671104992009925199679117720441033612937781236199583222622525941532170517848497271320049934745346775086877840673002476416243903441898991264829550514371148523338872564115396906622424675026564278869399525897249408493042267491721501625202730829957785495821952081992096225372383007867342421464532735200740245172265649284684305485357498110902515839492769596903093680911485600305003934715283071614305328886912133467697053049353830961063920237407902304008067118299225490216478633893755856230454249697960039817511924935138186753571709101413243389275618790326020160192906514270236289880037653579427752073415819169762962100455048847470855558590570519940937913245565615452924063500587429715967872072539866723836736560817738066340928426841895594008630418740981041001435105999693805145662106507478648037579242841831717194146063849224210184536734306638405720683083875698464811865121063693733099331594687936595348762406455394516696474792866350700392814603957758418078839019767701043886527618664457974278841806451996444637015154182780316187020140376772572569000165226208614853355436452519864651233600918100173515482474478860743740643111038924727868047730414916478935491958130407023371758982211698508076070418124589722190798274998988729266012211767183042964878534553521919413884034869856569051160846243992700771886452068955760258046178753045220822100086284561291601653141821979656648187833990166746722421032595508284295922374572509355908652735410882705883508964690130456507936643069048913816671968548384219866181219240517184073113220121961552320231663668109263978771760049297397867707976041384209233076513144038716377616209265285552010293190047542577693234350703337372795302368483779082073521395221182372999804629177547301582930534194596629859432857802301198131029112463114113499009833044294206890219466504727425174601010705177158205852930193503934966351935080258107969908478487418406199479079676424618681362624208340440842671594595072224787567658870651695478818472772784699457391023332878929034180906374452908263657642906107236524026904576109730303620443926416696704558920708376486728266054963368871989450050082321232634070725711392238052669672874891578669465997424419160030084747476347176751026074469606430345500501022919922866500815622001103210258924315528534564440903813589053938645619131451690042919937125160104334331431265843587036473719664258818116790563261079081920512909647063839496213895144237149478965073355095119081482944887829205837962523778293380464353042415069522153414033679168308706120925291298239454098111237434650848352499242793869395203733996032578528087651459111454260475038904497814771177499248387551063555231979697466037973972145701062986776159417841909169132545508765746448333643632651394343564522094231579202996338493498743525243701714405370021064599484069683568734025811073748218744625180612426197406698590345714667101113275858017945555781902451699435548223386758701755607892595321762146558498872440946735865592180341773369456803041903964985733471224096135850022363535153770998577340564297080463486040841676482657659970525343089671000081101044528773982613693515220620244978086284622191309870501818346700139782833811031422048139460824352907578169691632243797477025870258536098772604861859513708474933422473963418267725798465955355052027509035807713903221402801158257782502485777487139819751475891356307547607843010512072121795580350326820122193703830514261329658364409225737972901098851729700332855577723986453226804606869290275480071211612177484375766918606091587791118050414710551678265936226186792203625770541473810268132776596328360120543643827106902742331657027111365019748434966631742846243097048869889987517124753334031754460337257579655809463493708968415039435399152092051687069376337974162643924008045216547204771138361009348707726213902163219068259916157516961251714409192731841580009779312677646428685648021681230393773739404259619727938067367625107081209083358559927547403468224382643182357915293682185611350158990823416440698898843769147952442435900097168799581228273329457661711364837468993674489566883835780548308705908099062002236361762861783535045615461224210043634255175831675274177216246415520741380884164947281448790294310276404613102481332587057153896676622377149367384283516912223691958970573132788687379119254058853624462383507535399193746211125619634889186467108391443396065181795239609089546168816569586254189287801705368618397700670998819683305769855942340214237785852243274967038176366029520452618877149303432771848450291145343356658352635005797115697909931600614616148530252470359788078590463427660178567994133825748754316749485261870225691622385710687887585226030823998269773499404835364854360594229383633568701152922306586369269261083736664991880489234123280533825112914597025730331739987457596317141130819796969267590847658704834677956993508697286465477533928860219543498557953961179213677261507281444850300256112611082456192224467063576572855916095791413013877443933123732287805355310648197243573616902959444144853780623374570066718817808933103517223166766796701959479840407632146894656324526468848061634645135577133452509319646100425736246769903139327949838467885348824864895851259636054420731459294445414356985713049703462345095598530938808286021944473597062542989528999970816552450494177773642448370722074603630864189092382455742462158363963197216736541230071264330380233587508429107183990663312131795312830222006150124362850351360715204112895842267123680149012585659261160049385451305683340992187944540190869624644418492698745692200152320912516532010629583288033491254303042287649802407232851678677064094539185126356082277071647830459646324045265500420734423850227920068015288992120394437454933517807895529615327938700520540632350040228790564879485284351525508840909382162081912977281260908245217910088044544654600136463663354808475143336778126284274276579302301205544172973679142009107719141351642776515382661677323285296599284487496502915949223064591496266978575341441753173108958578026313844135137556554603996810910827384189931465623420620720003585860959432998900769525320790260965279682986512585292624130846606169414773867786295205877241810562421751616235016311900617538701148619186099137657949909122091509607083200260849394456462113225727511818873246987962203458684879201578484230449539588825900759135719316873104031218804446143137352389687560603530853224206999395411403202225048344863901965991385285544605354755782508916509685168795810563082239331902738343974774757795696651476654964482023249440987187645971341429627372765699054312842927480664704886579989788191639632855204039257550401266286104807550878214320073914305480223034988934022727623922000150990713559724831858844162276388208510148100878385181387486491050834199600743493344951612322582559739522192409280415687726076635763435017590619037141016088066900393195041355090583256259018150313454756417541416438611710197972444110141957183333142259138779913345227044629426460405799367014324544580994817965400007495159806363220078752959901207156129769261923030517811351927738572268189689032189528252576470256820800790091876586935742278328913402485049045948430759474879800822677811595448960240513529663452240037727609226032443488587854412609406839523945791700662562712982523330405041321714794567593798540784095502929717694562294838701302322668306825281591953022074434434720533426116701021826186123840834394518850663587853613184549433508496540568192617875339662057650311303199669684357571483411002269179624816530106451107721565754292017655471070237394747010603594547682935634861964227835114910954686007356249380034021527096447356416204958060816441689709590971639431131548300175658439274830559016527482912156557073664920997408659244900383707978044390679307404617037102392877485282466241612391568628822165157631914784747169018271452959971978063275019297032957121612938915262389318583925166836812547630514399151950421993284540206122905986364355349545573499731401341875805670889048405622062967535156577608023758168727913164192084257813819845126833852859742886847045500689338780743254172437183687151660331497025109892497480535189713861624663160443654094656264653710820017675420483842984502346529114449521036263976836461752012575325504301985238038790233636469777373514387146058456789369916979044224174434385014600973128097010544563774706619717516711583355360457628181923275811542795980900204062356972512416565665498843614850727806677373840226549041294252753238850211682503891423563371579730949578386798546008789428000491333321661370246361122153473105953497418998197831666546319115711531668073554835295189750039914534547060587939375553013693340769528206634385438369302694563718087201628373878360062217530794850587978478655349236703310637308565765410268973108867953253801763001201939336505326642127157083438826914808685650851253173250851106844176162033645607493689286377966996778728920364980079789243358484256721881950111390927367852627495993048048486681700098051288788940006305692492264110866064054889825490477484470174444606961587024670562233049216771451291707718375753991659599821178249132926573302572932026238763551865123812715468505479441460660398534875699636174418830352960116844608156652878978161078612772273576688581511043434679841801149151560415300766989605630212715067312632875869642562782140632813713208996676123325685291588888059479608536631059447091483718197921588914848551368270655220705627142042724271498571702216502459459543727474764850181241453688135204406268672486120423045495039603527514148921851668299932944809014817983113861455572526001492749569289952915567532750230164804581255347859233379093575114932362494733738855627741012235889761849967428873393398966490863274942603557821138242585628840961055661676055134917238511864157737489394697222408228672834828603579694417272562630765358019689861319545436967745822888498880705765177926150355101197357610620559733433119529789321425788922354213675856184094476140844054132432689518434026208885402262892019281506757053072685763282128600252792121909618893508465908714688726618304174363026358894966187265750645157884114170291036486685386153089108862897826472565773467090283691353241696398926411001505929172739486989863633779991305084591205275842635082327255714501959541761277730555438487974189405353105424473699099970650058337647988503562855894846412954036426772672712014278152793974065568889774426757583800312515641531122776275128287384314463170895813375419668613846872937185039003662079573083509746834267626154284625340782630176245845442163833073074882126542059358061659402299044937847466017546470604138761178856247890437378126391519970640849678562138455983099012433332805265351535230759380311100217711615576212669158465804301389023976848718725888514281179788767364949224074380098087707226348092363143025683379058475515698091975960097783324726444769264469216131243878728020171753915479949109607786679200449407075824708352971169767406229091402948922479205051593633920569878915464088370864369699124482743778980868836707545456462005502139617997012549943672443748590953035466081160530926144559918899264606688676006409196139341171196649244181328456572167479028466976269168671762680529138064010843443438242987613861002148635544479515172903078354937960159197520261100788274710280261697236329142183763504248693826543850636220644109248866592613346685563761381553593591635286878950798007470011715347574174551425121184767492948142513350665704108650822328739052924147928362068954731059314842107223253368826047386617814448579929133784315528731620755912214739907678441425982715652389180030579707897306699365781094843534458752364417425834645994736550402666358636848365919663571055413520206977531608741779853452437635710172745898372525644937158727080254685143963525467603618149284508950115738095348014633566621336784019878709582092908029610207294601753957226704237751563775750155403497608255224483438698176804748147301065028120094785228790552043544647500553310387002151296427279350915555597895763003456485315667961592351773645082522547726268800839945986977402000991922526732409899746882181812875852057885457251892875150028214233185058523763862526410579853073566630717168151273493193240090724831699875931358352377846438689046173630582297101403641352279317007395540978311222220629220476711648661870523655135989951704028007819310259521332716100897714776046615652006876889938024705729989429136538867780516469041454344102271109412873295222234538613963010728041083654544596545915206263845643095951081490814103815647040070431136040223807506862558169274484007775648405178740537116719056144778484244114222528208543332253235399778428432225756765988273227580288643074914970131112291018584377723970072227505340905860175588993772822357459483280866396594162476706664078029046195916027702187730573917184834254287498640290502770495956545323858058874503627588311863677449717958751811198470347993402988589939725695907733866404564599837170883540983149828506893097379350963774411426305062558599676768001570219721386905819068314581746418954940590816557782710665398972138359689016829715768671564136325183713730629971830234605499721986595851359433753409575090708023211371845400968363633813231587485297316277868172342123116689816780060992122277886815635392472877170687735122909922573546945930192770613551075486822002121879362369089710083033147259113918680805369965620230242061126267206908948595652501876108097289866819722880655973855194782991519721573358639465592070974040173010518113929235570332177204672139709818192338150662629700556765115122045786032751635278936865257350202701705822557650075530830341185749364106669319818821782137683341477005548304683569775158128209936755248938793073466021548503681876141779151149873989859365032584263548633170971409774978242439560556348148241596847441881136930537039720296899736512071944352050376112561790885086981956462257195657644175321859451058541217229798633041890415905232808677660246136090500645725158033904275789525166163317550647258238897006294218371166522135150349479104973745065557444785583052198450875313658824258779304251743470293837877631971474116511350848912871010851656822541136456690939761450178067417225058146900753148666638418074466772057763348569920756041900467238906233026163697508244023240679895092865641604466932953322467352422492252760902082029967886422074525886215590553101231395863057458833856740316495139760310318922359940716489403672720584104405154310040742259004368415857780687109807252665089893475298516694818448283739380031729039143352923472255705545195463522963421183106835163831975972481722124621634280047441828246018416580749970702750239131843409659650201575117019927377427496695455607058185259738888215753001611785827150272386739951024877360380813423015594110090871142972085441197385503159663763738605783322567661614559970333511622184323493854387760430288407341743463309054338433782073776869793629126523133409124708412162699790024048947796408103134545724506793695465514502617513496937277551343459918477313010665851156328615094465868162440523468368894024179345767132218246556848997207865129025814170985101953007694540951400729874670320254556037775006108662934640535654454002744053847320747036109578608508000547120832637495882892608074220694191670132098697247984618097632902301396716440750362054395650602554463959017253356736652355891600107639222709432249322976040591723206427136306727051641002848434245261457662890684649375272221669192002349034487943303978257977910088012922722815141769997334849309128932878126278647555039381271182565458633972708203399575205980751832734405913890072398175104144928106418203696794794958752009385428364652873081155225661453867158897154476723660420045566497386781611206412943741435933299027754121440806060742358979626561094179012967677395470009158261158956694315332247104310130700936795798204185562770874483312372684108742490367086149645047789400901755277508155157799207375079298238390803179635819951630356398357830938667366233483747634540948557324165864325654039871413780335691014987198422341644641874307884732642257126878391769341949359502289568354820703587564814711945933408079211110265814940720246314214798193266334257410360149255408132728401259974265861368788955988835198744496537808441032237163400810937064908301756521554725108916702814045501891949563004596066872621880852472448880984880071834958964931050993528398373649424008447638458477391920838559396621985261144000131377263195960347563323597358430196219952163448902888413266000300420071772113962470713762527505966426383707865952340690041838321404755953710588371927199191699699267773940380998935659252838871886097632475421796900990450382436202875165510797271357770120783740700502660408942426530449444575957015649942253938358913683575149660882715861868407888528798767922179067930498192449506869722883255990461587929373151336387741895463438920478066994109078448899984460552959893330334495605347422861649186934340651337687689380260843328997184559430629125709809662732287575384965324213019372699414293860930148305645160402757431865684101412342185634009108124118422883204087431639452117148983635215216536317344220225640276116970665009299206567254353180313965752469317849729227132066751333672508680583216546914552344537312628523189280444377017392831068056606265503556251613751774897289219508795365226843578295221003901819711986127299326347096519951380131498036618281850607050427825583415406733127932103827807887735388588126487227329073565234190669750208444101996178477860040889277760464335886250365957828722402170709002830959008074683097862110323695168925402873001466020883436482781252910748589569857876636675506516922645447136594003766615693495880380001391404595993369231542443039963854747610511671267795554349660158548698056026055011338829835716427690679160411243176752740290839995353434015326551031085564179944339194188622298987415623682629433789579177805901192025332843166958947512240174695894222638023913149055789236952770976814773394189206476997143227945540495839277025475392435069109410115067324950876774454103452164720887884040874160636434773788127851030553428047361711832872340975015696031322005042893677393627222896377751579328828207757548963821811732114027105037008721204509110925377691166594722578416477709139095787545502164893957218428867249397545602455137496503145712713682418372937836876095624020232258548511993411244377063669858859316573508103343394956620745086498551563245701182589536288685406185573346676453194440604031911621010138942561484236523819043927940181827949258971788986840037437605233134651855872995710303099333777292898261102293779857769205002516586404490325986286380829787257562285670299537210950410007716118379683022153462079903960462067115356772051684349765395307113629277264693465073155619548495496120666495521361855569469924934600550989805774618325607101492059076534567126871327392455776750321440766666227294609959557418083850251836964210078996494102957965578357628664467575471760602578929096672607738910107744809299217628386524908292792176303311867296390418676808262044824385887097047141987143783523572388421164482423378109566325292728059203506093807072115030123146961295019118948680057309814743646103809588532568236292978752442411433105324852533335534028154901429115858483383132715362626117879756673057822946330955338894304889587786986697632476768071070624486013635247754865793183102790406229636806792447492526034678644458473566777900188156280565365556004131650426269013442406323096413830181379955838208229669727258762119329254761921411614720237138774847954185893072953305831400257043459246290430701817101343682356104505364420250021708003835029933207415891772980291298495076969780857175671141475191653572564333666719720575614056895528368273671760179127655651476102512382854358658752388023464614129793751783737505324485152692083537080717293792312376726101972749229169850567157530164153741940864986500231571998795600025599653660153225074409744265939085023690018323947138969491779401087595240731387482828989699259947787143863808504071323404132810125737505104550389754657574037021582018164183158422098756143332065306428330964138504187928713155190028339817618086552607881771259355874513753551279302339126926114954901667280983527767325490789741716960592172682628624729767099950725604054529890500983552607357335273568958324901326073044715414653587985068565476758014027094028413729238117287845902726463121844964082042871903469582916594416066289080615546236123192001531914284613603106737947876537109280486959166145944593031330468888601398953818754319280185747835566758388120436820300252201375071147358763778155557916548132726658437332264608542233106019957573210386433791965684815618220257767519728961629332129157908456944710026050641591159555582319391306455739517767876908862683364603677113048294285686726570777054186793606003009150023884715626860138801948692287147801123806875450632398091927658899903372631287407612842530219121258646860464201194052999117862626225960777143894101130585691494083619276847732331677085425129328913215074401815923886723669780584621079373144600472869718074677850522199290982047267899342508913643048342256066105205247087666482282210422934784355262753518493130981380617553802151996242036121331790810159097987752156882121810213044965831572977186947926730331970952604227393744020360495036440035873939765069899393826357874731146005818054261694037135165535604018747112696290258078141939837311436544228797243372221029643987416085915022749924848392322569989566055777357935426220683105337862881391070302734308949580478247046735216515195932541027812950633397706119744672909840301136371945488542299685040655326196723466943411410255142989486962885286907520283243589760019242944598425550055914872209292362025646974840399094621848362112157679240705186362688780918410837389452132784364491164051175463561558428031341760046701620976946668349879768686713832554687140011569151289093111145936195994604261543140636197867564275343391179092633073784601696028914819671945408560153099732439501024480146136837342464808603001636349356353118257120238436394326054586404158673006754899702191841886386996693283908686555726586890358356460224202667225759107223679746594490653827960612789484307260683744852245139030513712077402274057477658361200757779325361807330521225076928265067127447359577090480512441726627352836494898220087156831754838720808234396897609138834776828114825151823019066709404765523121438247026422415618139001372161102448863388396063193643147853582549529526098204843020000249569889301910049030530138693348964674205311761998003849433047941915373736605073296228922360064813348788021780544230770420471522053683148022049906087592649212826261726433006548945468264987214446566457633512642338775479151233140485994085570411515364543463156098724020721565571009661195966305220309133870857393425520619631656042267101579980965874781827348648171541593344340195168099464914159650364089712279066237233234798410737034141018211226952228901017878312311386601898551268341676808453356528004071477583781801039124773277040693438033961279660147636688724891060572774862639708306177395455018076208156114847527192983730611520095927867949411965633166662860959636135142608897203293094730196126990191018308353651962469026653520958226222899810544484518727467412372305658312895362232121758992100906304911490349321186821435629759270621174569051978918183098736232060682209069094010034585611273067884214808963121450491065045608556108347904932849274862825125537094620925278074331243448296507119992752537730609761526023293124640950336425759316751911392625257366639434160806143991015485389981861527330311349706730845245600658682087914234399062608929776740357626626458904107575186543332451125910071327432185150499916756558827851570981373856973091195134010608274016800001358862758659254556966866238477524569273148651363347531231323665004233741846031684479077029592445888156233686010810666239019932409319285171959900259945286267493249990012299004768553301822295519500645921697335860860576038295647196541535627332188886457395259131520733346029181734043763858188807872825455243973910522585416147517187949668691846731675583155955354661880232605603986912431540360810024749370014503405885890449670360840050718785594372181098047972719555177519121760469455899087185867932906756749541597748395866347690985322113990672048057576179910363194589727611276578630247406121855284741317502969880938158292681700695455722654911768601099674759176427529569052294170821473158145356172377881719616634942840300588389927457543921694931409059874445655885257347965650885198297789730225990650216054285484229523273242771594715518125760957641204185189089219883808446777198442731028304124942745260654231658895952949432141650433848645202963347396038029157506598020224451938268915097853031045777003186525523340152953281922650575227387512287877774580734040274019240950590105889461024964935440692149553931167990307299825649325919850513514439565700448696658636829621089936978329347442001074842722004440519700093371312003610744910531939109712655062153035675003103999570383671087260962787405596457170616932330090620293250478789305139647241904690422640761010097055162179070772242599474169691225810521794235906433947697659864696454955511261672056435970175157759444403730302138763246827418557139319037652899618868012779622773471846423068881492197383392549503646970165541656757726072873174844304251970463297330942690773383690745920450437482944237402354017599268307149890794135073844425297191258797638575377864692769329611850182398616112361155784692906998525289674230039024240940956506866608826889835867549262677194117988686319502648465106044434092945629238871916630421905393997288285393410289148976010880828561471946599854430968952485051469241079062888962497667873336399754966175610950114191220870141543711472368226424830811327999389633468059343842123518565200148379320152557582667914369622174185348000463195275405677781489385329916019062011247697084454401154757358377909011827370494451904629860856482305913335343816688778176709264178260652273800546208655525765651368838386176661997775640433032273704509501732116834053358818351979285573436394098776980764988014792644061852422488932829053081365307676972007892792622829901614141618709785419266803240342164326382219003113359431077642897984860475555350677748790265344964687431062086799195681182075438057471443019091723270397765416644858447292799582385545323053979444781188391759230600755662064320112159797238071910348727676511284102696967541670027174460382971345283588752282527267002233206887609344712224374176327796347017386574373027003425385074872878184599335842278452535814305171693124412348425756325270300642021120428526957975116945792600276689800699203401507726257336400254230796300285862594957972645365963289230668099019112099577411635977366455842188414826609158818536592092108769343269931364496354295630081784619089298308113030332897543736796169601847632987290378887902521648702940147533259380416292259764880693450483803677961504231349584655926890271591601355961593293420878741895824621690355037399772958647285571638432709432569138906285043871948957017476256729275027975453047441503822399622278784651678037828308664415616051187975392815418921299534617322420047793096649701269783015763017972040001519885239693932755453471020322279820243747082278890270596092294274631610478760021840919243537642992789752262286741012564043880155599150528471541556260894790643473639814233610870616001188169395765080355520016671782458399641397951607739216257038538827620415713466704259915168966253923790915893402941885244959465261180477103792804214343226922438622469409132738000378794202532688035117987958190556722587801339411744277569058507528160259000319315094155033294190066797461979472421074013559468203222706430150843376306728168246549556392525699041831495664651432709606172926952853443197691643457328691193607552004960574369809517016033596013997672749334377478982935588041163601674967402244890563598976813842364423025022863782883875786568197758594634254835534736182558689893127618861515881675615073407153511644496680372661624126841603124178106711538620375999085809949521015689416554392674107101987054399724151349605317729297957763568245667602363338191421357856728914268751523774160226742564688186086947285930546274787784825020113586333223505570490963790685519665515750474119612277785045989582545544966625446910016063047513964529675057172371469177760918234715511774697194443477922250800386959327711116835741300963277377705241362209310333220842517201919668454931174666621899513438354785738208957366821208063113321510759564003797905205604293393255122698924013815409712514794257495564676465577401551709914798931311150530529288949568883014770037059730034276294047724188424884441846473843166508027603482424250154176787446117051328155045096058464193864778043332058420119021211573616495399042284894617277030315761417710067843867302601425020633639402395780588847109521097678368973784812466060031413038051056855769869777592836128145482097305364322999683033843533098219351821487724103741443030679877658384183494205944285019553838339962999004522879658977989892439022872214998563184484068695606418425345411757263533112293316749527684430607214779386097974959929115769984005854838336341239036052983307337643940143157769808869296372464228749796571845124303183774552738007054525866452467983060532078441533697191058649946191672333920357671720647218387962777843412333299746319361951625551199217876384414252814064256977491142852443357370041117065641544625514767264718147197734457983250835857097666350792273943682419790245592169403604379318516235852485701572442977470092814326414577359563959780753158716927062015626566824245277084329749876660488434053027914999479311179746481005666019251294586205040148482580823732576683241948584869975687195546630095584855144126066604042125850491163282246114840913336370829580013347962357163600044021575601769061778868583255049287319924398024953532569096925532728950445650937019672236743305966924698301617884777486121298768773626495562908167516341382632549704292503596122218120369044300439803970416361197166467434037294493344336954999333364199384931895413585646667555785071883191807221085917845950214046676890286960351337591930014039352679724800476561195796652910540875407874119694331463599697699038525090277425323097929602587365687781595375473740868087628875766141819129287261400565536799198105419472526529111626335905009400452385501531074783693444292661333736162528598249766505400025894812988077978497434477288869120142239133989453468749706614415187576072152773949345248951801683411716650222480555876036170717636913854891182164727146795861153990132670783399439676393128582719670742107444309165021007836254422817216574479537909794426029517740959138660568869528767517371422948173861575429649263459269144917922620037267401041555513899565296924658333701909606549328361338812735632897415084697176408468084982979906354207765158314665652657877024876805435723422270746093389956635966955792009613317420241764375166994073644915202976494840241636466332468785717959778106186908251662590186809365753606574535255611745589898768806534470276143232742103085372385883881792211041954017539548683781989278413025082219543711680096881224053480775817885288586731966102639556897886795446601295463919989256939689566274972636835989882211673096617888356345862870733580038137809426640888818098854050178873976243983321533297963970111593821920446759751229795387963899939349794019450490328969172063207555367744460912942989828600022126321557174116352081769954365981486978610523794210377267864397922571397882185086641359879727865152567525624730712257188220361563073299369495368859814020892912997421743096909390027353764524913223477780517696957429646261135373016187972550746544452273136662299026316145180859640343789462639010760415273021916637526971956019631582295905603501568509187118059397038129433111193561228130200860447877042885706809253752633849330970597432125894588580581941775818828220500368870961808302059615226237404187323771917505497282982532175882470324380004880036995482411926643815858228240075071892330817632792700815157144759750132724342360220988745790948180972589775564090035666713301275518011123631940433525875388211054619318161858336373925188774204551580369642991088373241073775767352289640970368938035644238729119957136615927486039577019159643170420491110936042262057613973926941413484155474568981126132285750245973524186171605273105001304796284576407181007151515381432755728144927968012420293840044952086954012680212637172251493226353370780188641432403067279013425184560013638864821437705022056917031870110456378183694264378840415080135618299951419116222253553485011169943755830782686652637355289067862024495597870371687931984829539077106900508637760383133993774977688065710040081224176406333358765203329154860453760042175085996418226249338074598333361731793410250901563912082572312817457193713328553517852339411707791279174161391306356188294116698375074365765132442328617394719795364288053414817659935027423029348479980168260888326916854231145221722589037908952175372542700607589210904278609352541061029176719867114522420765722737189022012627009203469989902150501978449800313158191205755570121107733563375728270395661945514148055412033168812416985584295139594893015055963091895186550389677334426711352614456230510091112355550723988414969454826730669363693651309419992268917899802412353589395878551939310617810819449866462810406653581562717053087333302367838322170994642655628877389345547338336259857652458278475328826422549775271448101524718844143291678429079967359874962401304370918253593816341402506618846888033246482455534395226934799935540791455555219794219505933728587259202833290052394146752467380551385754351028906027752633847172971816785274003683057873317935041747952598629260124232736995839745234765791541358023140805708979129598541232468954660297190955031016896325176442384761201570815566927032561683078450537001138888350116807131346627642195123184893975336889042568731453476603430990149066495991877830592905419685076388561892712856574184383026535520402349769010943160573516581405476006688584099276092096804141304296382007235991209695841615722429834610525792246125591687136574878459220125015896349016336843890681749820145599491243589159237543933819693740287151107442487657010418079933329776722976161968676003960288814299910301129762996950342470419276940164986958328273769054908588514259174460461171357426173857153752283348520146830581558796167491370365593433671988211042634362126347974121247481767489367181351943804892032059614005218010274205476100675917608270123761100087343063405407855943418990670456704618490178530210674117589723831970097364676992051219798054782692025245196614189763581201978035637326689264399259005191579831202015890768880116956709888296356872022602496714960979564360313798269970067167163444921967732258584231359063925471737299995101085219037794932939709753759987530520937735712540448099233783143453824910934450751475572538421217641490546642722468563587902906763595897832707185501507150251252729346786300337922579724299297463396419670909732945643378678183307938511386792319546475323538870197114820358429116683605991021296487097261910205324333411966922293452220706151786528532383484300248438390280663179639281447472668186424626686289778449044124023730288776167540305010148325680329472136092519553307403419335624078267904871586083801257015196825197934686269073648926192550164112077101358595962138647581783108960606096064633455230803401590939569614392158020438329758796502160208784433164538040273961496434672690857171126985012482142253459159484130502938471532354611313432851639077471389186430470540385588786618427787975032144499336039256576916328300908739020092550675702313143758448288263054464374963109182760418383093812144652075131835188130535582140377811275550944104427950578950212837662649925254008997241857931513376914699036344395685566946840214296870316244351047420613034761130219760533771722820953130585945411988112247519869896867944222540053559727262245563656687502848652599088041315717432777723601416152394283034602398268165183117575604000678765267556950713096557065683046431173031860027260775864806903411939692357198688243540753521974459624594367165537251515655663021565316505559667861905009403373438757509129287466011031235051574062438886562122640307389200165216520725444330021256150992821706400574982117861883090766902120359528721834134219515162843266932270863683152525814921558017833763255549065824704407050919838783374185154827271029140393116221152068119846705206439532514831175180249313898928046175730702828074595328521628441299895492173479132375026610606072477743423755329132926162306084984073507505428095568691563397847484707709451308676706054904328724492440462107459917373023146377966078621084779790590642295163302930524770893092086999982417033714751374120478632597853871003583011321501492133626357543201011232544570732676857699142836665318339374834089705057662781577030880133962809182329711285186999724736724233619616817965721581914833219773089059925001758713391950455941721626722959739718640010754984438014176105279936944468171040216662170772651306355552401927796827032092420361110341804349262789679141826738616798037674722613926806836365299897869891712942465638008235475209842608137975293550189375926014977963250879504010341346960033748643739592450071201282273723444967332702054315246432336248967375765009366519188825558881823844439787189348470461342589683532352222966335221371546886440805315078081023116497765879241242047782217108825653548857289859820948168637417690681936714514391468438757955769602155091250401593168822456806390343128011364178042385211241635929059236372456351560740328444920162059885874826468048014591998595811367643847359021111270617422505260634103683943918375645255734394899005469832910045644746386680517123269365844935674231953307896728068680106037781181427033601267622670163431583278697469836601780894276219151364672463794764327803851692836210077026775244290826929782857472177675332499195849494039400923740855317992402633111283227070643968352418107161487073220969644676574792110914724810493881923765590133801992716937533227015795431812288945714619243782874447323825488355767386409055095014516417851116718625329034288313460541474736808186676404389594999447190270127103100862109713449383000399387947103672296917153019840528735491295517483694885045539759270397327563223630540748421770740108509941263243883009845407526063482176463878552645293452952208556604900780233197047949671839995569047642436956620002159501505352390724217952592343893591191270420372104732762458014406013581851696577278913286246783716445123502812861515620760675965796480879571749536587645265781313674226394312665980899032060184271919429117685150822788212905452243681149468823408430932318967873468618702720434561209065639947796283571569363449281958839238582033483447160246172276158594781129455404837416772355400209854324990992718400496459874408524875152673653196026183672145632075626060074664370541022035314750502849123977553695433972857682744571259758798707417930985741931424552902546800833300090204470647140491543697102876768390997026725257698476190545297915979775301379807848503169895840568857426954339876486063961439262195477465228207294442559717270033072918819541816050100149518517206470723442312623680338744934996523438919260517232595083954216282918105807540047348666468807557819632733404882680954925398042275191851855176223352955632393635567472227033102100692142664562289320047559359113342652497944425139486578878228234667413615528270483752885104435526253393692460665459664903253798740260439903079166785699766210763492452916080943800074816965969657390230151679317892925777682372581368185834911802794764300207974108866531968012069376893267933418036407723648794653701287043172971526816321653735061672457059912477795674127665004675232376258376520030812827592160440923584269597529894259089846793418343061996944475298148987249646034899054649788550419599650414672543304810340930630072637859757440080305601584686829255351226668807999773271551393193181520043755881514298493095509329475235189033459251347889755863395963240844549251383260471727551706748130958162876884779236370125686165715822975579755822503590568538887105797987884252000889313119343807827873177905555335874225398433565702223411313145475723421964095858604820227289139280946323303946822626371465862936770911989732930833862766339616764200343063528690848450525972194667502564102684727832975207088636417449909910608302347318341579424941475328386799045519411932024286471025091472751473763229272163584180148397799620758411523141441381366677798827115856389082737873997743087431934407749091945955396297368851075462841953199650728526180253227618670634090332919439812297342338040330331814741857973832867562424662317109279251452461098427592573813714948886226614311040792746454545142471941267023721583731017454259196971800264503299150726807166154165188384611615875556587762650674321348100332674706774233500809486018570644420502498945284288956611343213684083464373350872663881682559281092030737899994708844484334341406523262198833101479034985840429273963139661913064949433990809851927567695956089178413668206213897049490685525510822591227493628579401318211194814128907402917391980110747386108766175132523876852909674071700473465111587922856913442064025730733980367413777995297362049480642203799065766325304974750862322203237187103020279673495446874981825691177135569883346963325008279775708254150473042508689976585661267383376497481368909468055190547355988829092153806790094752382160230365205400024105976361794513814862524500315423618849673211535858704680160403657242287732908350689070852134825997768949203283145779808510132544239804121689037531123396044448579714247246845235830076153960697320683104237666072905537652573365075506328990462749396167726063072277827617317453864589055860658655351695321483664677842787587478902997676715464599148648175376078736000457579637068949701107587320293424974482607630661538366309662738383853291760839116261019738755738423399286797240431101203573111799785500138223581592497240656572936831758887286608197268977568660892651095472225730395713495339410030804066441358809993575445443851316989937455724141272494737960876156203777164848764756308636778814436721691187703847535374027832259108299802909461479015995737402955224801046834124610894559437224397815387813629508379638547276505174334908648086899482538029228746525766544278924888793758272705066447016698515857223438833474642852197941917797432381200102077966648573637885347076596836152614480939551435996188112524160812514516317388290354020517137877378655445785358977361626269687801345590749922560239392691122986980076864332370398888896469791006395863122095899510930261974451597200642357037140251968506036793322539716774029691754536571402620520518731631724579787489517672341929276233689978715518600718661253365169243776577169761756834898613232003881095662826312277556742961949348218528180850813845594710430964605650768715820979743843545920772051660767685100875017958645206620767628889350724563062042132321735339675668383855937280911881033593220770448862426682805383467666238276108121800228668149690988195154430899829997949408828894029992730990281789500543692693373548295572061422064240717160563954472507358422542233558126558916022231621407582325510271619505776892244600096308382228144981571157044575386730397415864765673609589162612625876758803915857523898727537076932832784255968988977674139251089963925433743914901545980918510339628263523739768085269250450827097377357421511139567796969923401879049908255763183424848205270896065549764515623840340299165435743092372214095297961385212514953393428948100870600873351046456913429363162011350242777756023535000515195314709608665341808920664731978819160682218013885053022374402015249833357342778769345387832585230357949559294206889467132606138812859744026310450649999625144209487113072965175567377171658689516633361263821911030597686527761067904170259513458814454223718134725162416387966419598002951844384714823091972343674079576091811619907007127865484030082320315820023207544883119269305079936564190371789488673803781046734857599059795780473057951797672792171506980985424509704613625422424061546460142116913490267824258434096399057143514535799268344414819683499376478244517149154301985844586843656754062670686902569876956114259290159620909595231036913247071393128166635293919884235243085208996431848902161966771105556117659234073016341236165005260255768965948528584709731629239840677800967248818880096633428340581750369752153757246433388622009353287021401462148476422916536135646982890531205551718945744078565550126637051858697546262251295767075126183495124676477912142311344411983925367852395013196088984521412228667809790194623051773764413580009332288727354375332290626314712153846384838509686908059096202127960365057350275342196714027740506938328345214003528086486446004265920543134197582790428906476318469990296526190934487697382724533148210216993787168159715733203157119267546117219009889919847600999267953275853382140574524007751961757002288820476543439948672588386942454482472813088113219467801280756883790036985801674882071893487992972381955644068290760432961334744661354620519179683558679893664274029895145365796287892409027676519017954192334386809716451111437956947920682207860437283244541263278621508146207879766237816938161962814168671546830719736873494742002769792488598059789861984262692229967323915498861155138476985176064810057516545856774302687081405410589977554826921956538960612226805015549167881777216246173562999943826138774057070168551113466844660875661149814389610261674920094467233767582103297502545276871089036786742789589929659215401353414656637621161897120095673224073312457760921931516598939176225026524730432654417009754818942329782866070970162195155848055563921672691260959444762356566565416029669109445533043757808783893305725274088350111454079036963111810647293351788362209333473972240645775231823394198876775245234835720579971180888247240040546364732076122697411098726330871523209048750603793760486675991077875044340825153475770622125368827876655794605022438574180348300055921029371099638821565027740668940582723231698028027090633397443889290367633463337568663610647458750825091084693046994657604199590589420382059380634998819402161280777233865368777444537846303273898573909987372457185066622862638993788270596969500438233320223849078744800876978112712861142747269234837355062097278639013576400532179375843087109266990122349856570125068373540522014096538364985118334073893030654294571888706967755752719877111810189011354585372440717964664256365639845731170174458205246055818941778492566228575246566038973160300204012771994076425906508088287108663815340507395309209555223644833848100856786165169463894072502429771174708156699243459603556441343482766494274638619754880072528147438062102273629806402794911736268617572490093335032805333601212554480562977588387451174274801920174518680709825659124975617452317263061746769621583687300330155667808353132965103388799093244856784319741100808568187223253033350463907442304963728531227897587332257586922974839636519128823454820424529522318736244646091829738484424690131557409041694731547035950780505457556528570491717809701388375716132850004846266302951752793188148794539895630374139608189985618115240310083538592439402213414277804358388756974790831473703869853592173292126381414422539422541696229966128543164382382111779007085569273440533988606077772587965920162442810599703971422165346100971694662461620933870150638112789312464336634095289267095273586495125477645533544902301511302416583237358638081415694311309560419060555920660612770200875994999589801692261972928979792040840481313579116045948869832060611773974043715609577397794804022335965438508261679517923598335277138562237229332259115662352163907020604704932063719036720770403293371243156202724539201745511507009607277656766786485614682353447073770143319902823060526837238785925204575272978764611778893985286024696909942151447540923851424666646659731496472656216448304425747301438491599600972151075235839962853137948802780019174728971921999105090876020093267663459817342181758856448312790538838649273481327308626535705285433057576240497511396108849784834958519922284820019039902441411703074444769684757594228721197025426421632694499188080115479609608894083346977499108517263887514060067119513267597285155832751007968968788100343226590519464604081464541811274891788710224512163334520133571400262462362286306384990301723537256559708232687597377494362224980514557337726330590838889785731677094679525404874576101441118177011806397869288423287535296239482334740163239360397265107960430774113647947828943083600722048558015798272882896775963044102178666738600352592335901860652841753510568846712523407341312927964987084023457846657653763507890725698464624608294351423681174405971094412361849441488606032642059029231369973164813617895944215201165594322025213520388612907502208866004968049730312289578688430477082111368381694976700517032788980744253833169739399416643178029256283371518780018059584697431478004512772199986994724322328507658556941554734223863834263970382957188440857789141586015366933215722096537284937486787799552655536292231309582467451627033988887198054009551774852031249948887324857123269374947259975473824664193976684434230925848983594292892167957438098101282501059703069261200544707288742008926278656049036432032209607091203642691707314978841786271931484930230413215301462499756539389815373203357031045715849525324897216980670984893783995812955593676532699665705273221113524314179704737587537999499910499532732180576807379968419409234455040542030640491158777018587411161104560940385584757963081584719270945233574072999893242154773412734945505914062877446362516472992916251047726535429609009385658840706680792692342366871006264715669834387500841330985468245883848718011573537321002452856985291289539290241686795638528804709202952134963361955481347611540975022789956737058581284291511982610650138509657938475230556829537155708750591991096162215525205542756445594427403295258306687612976617766269596761378065814863747156372657825774163017192206416059936122717485293919389278485806514170680001208489401165127564273866464869134214354553601723201163176702333432202551520049072997825444442566892262739481242835994870209789610335648227240937600597095873033054438465240781788225617110500567869057811220911460984008306365999583544518589965299199013003614240611974298478650509913563515139522332313648922543862232431669026245922569526189472329911343116108650922334401085178725643771029108989372758428354576726751169601381189674893675807221892702311315244209526058334998557421705478369674215321377852109110273757284767485809498879301637139546848278834123565729789019399550846465291539641756804999743000061750151817576941939018320466530704178750744322803692444783894870636089100280722448583331635561753147776959208508089671619228989167176167677638134297606792818814461350464170620547989483115466357476634454529109107372109256746312791473414766971161950176707568386035532025366899659331787795177004520902309295829059486293956029516507878113291774287437316733827806062136056211013137511979381142974571553711860307371339023867182382696504138654056018959073997088031507898389233687667104197633154942303782510589476394036012517215672875976074248542103280836272046918935508368692462055158478692251247882510627813625003880180294425346209143625666377476479169799334231288119619234632028691990690485360419288435108654125721393763347209847424569996734597944413219431812708305686419591852726395413130167743850446831637870806252366855814581014393100637520911161905727291500416158924979084091517591620614679474756494792172820411419605592576155072261694560256620669189585656959582196478457507055223658932790853275316466365510477169331866563012766979508240506989894564507466962958325746391785496215914008543445535769302264107184039832773333217255714891799180664731536024921296204014519604973782187633499094335889813005977124252863661879144131054753201547424929543630916804657599042720670986334039813587137490270364408747457147287014370730651013927843311768647407003133531995116260009747742635654314861838426374511162367732001542405803583044504221650589577806944916646532919353575770078340713464184281284949425862412144834524768443989437600862093108343461437752570605878046708273905358794782601162175967187983678510008537072835228217722762446714999540852294654300045629769826607880844343571616047141427650156243650477687635093778972755118581612281112788277928691958467844194155017542842906876491630751002777487543403937309455726609696335245618347605056889040870044080264271372859265880473942062071784116583663139801965833847140331004571598713858588910476244196522038739099343248098960367324380891240562359838974140460315469602587246647215271341125471146827948177794238426101777645763095036270789451983206108833471845788172283599392012588387981216387960301339783192680671715570039550978836489758091944630883102540615570377588224677616879381337377662123895198028734362624465308615624163128497055771448895087693788401803083273732704506387710169530229970070775900426564189143042545483417723662728301511820916272871099324473827510540841942616946995405720416274031296593196825955256177247639594685639091914657462944004431821849966544522379163458458820717808481609298255542792299319822829920577003791424915697192040573215640185259638376122235437482440579758568968850094582844790178915526319938155418349726448144991016853585324569313842858314029354415275474138321072002777183814768593693915117277282467331479215158620231994172819889334950846701570471246756756324847781921652503692423624862710283434256454311470487035323312817245258095169806024396501335215764373330689058476004499917347778566497623585240421545857166141825687525584729142511983277206707709891205043718745426955981462024544497735755588458286559468082130327715892561513181225069775242227826927899472868749926465434617129931366884292068763968595941236621370051797682760709021555878112308472860333114780559251616765408205810164400725549301550999020016210508927290656309004101554929965568331422148157602727231964597286229631919756192151896811059080351953653358368395628426257385367927090673775789876787117132698270094897226059399616177323090445924796040531064823877506636861104972807080548611368285906144213370973600106251898370942600861450883649141789194196091778876314742665245822691734195602648855796475618900473850138560456583691682443680498095200878707113807305317526838541757380813624075964666603253818542538506684665122283314108881588313894487169514037742297107491504387833600044859236066075697606056854262753690761763205683327489040493326161592395481195203136110160294932046101830314503330360828751627816885151879063685460539245616760767684866743491543613866669082384995552641498455254728481270800267089571016245968051101024266880313916188919155336500503229841240434276940592659979336144521286942376938902735906495487467072492327325279227435400969685930423990776613686669583814585403960655518643523791433602593870732676506545123501535048538516300843754001215679659553482696484643223325877224716984805349655365574558690074433226780059422453532549599037487836172470840133189858364075256191481249063904659751804656735553253463026675509232774250047771750321645971376298684654914238159738243491063679706176265588418408491879144380205319221717531919535919758976122479833389217290105579262076718913403365860385599926945635097616109970654384201477110570796854089008399997222753721034068555344450883205312985953226160193183820714400233006789643362852600429382864915881504539315806235260853247756885162710700883518061644812613341983766605139622928485018941721169823872551966632482725676727316911937100784758486883062137257222556392012193409675709384429509577129424425027174554059361128121759379218138677171356120859785223194094459510420570727527250329412295483945142404738141504765354757212846599279899771611321659187347555905144223261455443890653138680106090365592537849779990890191812915687866093253813899108494382910181336994996299029548329450452721936376522320929675211225005639448048030978872024295262345186441622285399712196429279029049591233872734605625621429091719344276816966329915042057126864940168929737218436383617162832903366692480726463555960932409862307414868265825745365957824375317301363539655713527212503832077494907789805193466192666630728331813676726252002011497536939528593039314131743815512332481327552192262940553215841572831070525322302683381657374774744716611118540848629509537605564392866718144609270818183287104430289952998275328807604840480907003362974632803115156906420184435242623462895683031069685761151187680836451083047868433438342805852756373851932875464452119656764095361459096786622844015716644328399890172162959308556016013653889004891896730082109356870636539593736206210855541662968077300984192432166587842413915245017800014088553625067682604617441786562852846646491731391707519544841493060472539253339500408543619659332562535399421312799779534959297522029006289886373705787388455754377890317367436165288692708616906835719444652604803494826049141066231876762308022121890868490335559934030925672050025074673067887226196107980762166469105686513404019062540367653591401901739380664890537849107658034246471908407160185772981022883549101062634969511329115439149452340477796225914799869805315355756884689879152190247078246243234196597400209516840752204522458669732590293066168167322810302667809422865144539543672583934770318365079424740614523153979283230028841806689142422025645755480710826409720460986183279248943062433050496966264050863014510459594759970435862609538598285251246771401907055962226981571625615991138921684593527367475051048362859961995250654634695039751342515375582814768224902299206603833882378906369542309473923901708909537934186673265404061286121276487997412065195843180901672480984491681545341533241270501873566028044242697348672017803041835490859359876361779285914008664853271508924409614196833329409169385586249164234965751459491009378569514772070449431471548096054521548757094410239018773452463728677282229558444408717849555269491352066846743787235858320745998152229078848672698271450190034834856857414326269818254952403480361326904226480571983977449833974674312017736195427621708153756631772887895252178162672764092213080769623155896743994366675093503020057288682813553799598728310933174122056710583258995976277414378592757344046750866047997616169178016286886307627724242563557826349026839504104574519830284118014142290277735258117190127028690045024536739961796982790480951300876967608158324103856686553350330364057364225492265682879663579169320662788945728508995829852787709418439731864718619351409761716165993491611539126616213826966480465078351782002764735563386532403863006890940828751125201006256851600226811983243881488358643748238659374342880235594637985678455966453338163032405973479823737417683233191253773581519803983559445886098042139733943646450028402425543731131489807910685707288486822081252556340129386585262800154948119696116154371400609863141507371225389324619753103269420589517802333718879683408462844482663269466200484259001560030798947973533077456138905500573386410715721506688155266375280338766814862238226138987485497293782129067398278683962557260546146186634951714032750755170292554812430984289802185076988444544263011886342762442365984044559027540684946730354797541486177157366655750931597458250941328651948135605576623424654716667656108944498434764422777561462611275718366891387563545072552141212096790202824098899705580995168558266078947485290491362635390681901200751506988580375939802891140472488772789712773514947225522028953754270700547455668541543557934298077381673583583138624564469709168501235129908137281749726386446403855079304658476894749695251326233904179435689540188396228625845825168301135427044876502360800427985664888796607284919580225791656723782266110069290965962341867158852821360251424468210716118113008658933537054003810583414875277324650145378843736488427045790730245486270107714246208735313128445650439076282349530756467897091097315090285491520687540792697251017430809463633383269726238096382554025848503670285493965134867540576144450614875264398069311246546883120275517262295298334911358953028397689589217663354596438142380992996779796318283927918266765386056975879694685357993048485416066228809367023935739460421413223435283155969147864024835623549069917253968827716541150082687964375627635474159087902804390444462715137126292999494298191101924893838242378238451940124030591036654781556887767313783788975157601133653389491738103523157174623622900982061481008405830861380776539885705949665488068892228906850121563627953556989674982596113489515947962297475092022804592609626934258046242361983312552042748644226329009262736359740797550997380975515843042229022928449619823811452689878125198715853839614768226172246325856307138411516780768390600688292902127391437443379527386972631800095235539438688719858280843264262325411700588862829617250006755882454320897167555745522100795397905874874991840400217767674749019297512622729008590762972391548976837349844284794030546389507546763987632603828515715609664775210169948522206922009749701034319512683983724119838434640140309734004916321757650976795994578972598651494941542682593197090952797123729553264633384332237473089021610543151334581679007779060014592819581671085750478893139245065657292527247280733550198512888222582529633164605819916085418328026360096069674661678046285623792274542445513290116874818807001389743147121532194537561248795077971331344613808893533941662992818055513341718048858744794454048410017848672848979670303286137843106130863804506577239452155601657702109179726890802444977954733977515365381594871154861282261975044999158335928954669388939829351702749521361539905873833351054313503096217865353551447064952324670084008160899551315819966587553576006109237233610541113339535481990259098573727504373584735522065693268204124365294970979916676730272847409366343566892277444247654527622005080377262052069869405209517928416422964747895897424504369998209374161888533239344181190372954182223749652704027377407810062877082389539278669348126760500079739288060813584601863529637903331691736753249635139699403515720165534197209115829005759119332712574026969898531274689002520040594462725536210272999695623158182844550395039903895437915753495237556366560162882336080413836333347907476745498564196400317238233294739087561823860144527273844258734459208469921068536144538645534797009107426620943692545045657301970268937830441682308451238646656714674223564356726341725502013666454923854497543574220526448966459259304311891323267472750144788006675697610135258963388589383378709554219268461591643385867603575966400022588216927705769459241775481785490953758490347397503345297687588472563345951371025404129219949494136670885238664680550989405493656323242549641972127847875696712353767637618161124292136793579978894643559092700928147639049769925252998786911562871303469619024866305746390365054282059204817187882470761700454069232186873879843929365169103709717264798988471638515771161351517494247914112218252282074514183032160480679812311080933181406397302940723029358236025869565993970118887010951996212662191138300166408784868720752012699252848326325439565699024926630778087659338182129758218057425228081768612642022643200094048901570885626017921243540705212090352823727333408704326840435223958035355475814345359942639038626054853260904953341239988283663810417974613158630883906669139410261574658096621593262297749390400491553797611449310654988507103681603440366997747722261627374475608197301175880322705175281429938824537034339325785995190085454118939357110449421240303441627536170679196292312878022926744624971226368627304672341220973371913437105621377507961547985170270173127690497958039733918877853382140300181319771112540629306624478920111149126867394916128107855887524406605345135955670414353710627596211379215722430353465609687914965635494375106835450135647363303981660482599575928069749066532477814065445902777801533385988802080654046482729472673310850348468709368292658630914412204424801892108319987910812061271352145732255254419951718049214070618520195679779153334315434595711719151892543990913656973403591330709869360232452049541719207649293860150068696182083085446740965507205924882688057369567021276869676083841818686861465632600790741792502563759903779572026167923320211612293894734899083467669175670719471503200880593280449356998431096051263640937111756788599839904427672403117197875014049060465271694865436359281989092262633522297077244618880274097174259922416453441438978585817163723939433703421960384864055407214585075787353895736235522101540185908183028231484380226294912230873616532651589111431986174928530819247419855092464546183152198324947067598240462893097341059387169451155932391616463760642064517060146376037235123640116869783873903929600411176435860291819554174329975564757431172322413621829291319761434118026093410010184733294014809126143953135356252979513576508808108110429332884459613078403019945737252424910208893938601244456181359306368561152083722830832382683796331838588818336993003367470127493184047034085883579753086062472101486071899705855631805595387356003874579831031754502604369297448414587407470725656108289065250824461457004789443145822531305893082092657490663162940210423994785242132783357330790503891323448056009613865004879201660569891041846990099854137289991710829741201002061226052682674806333800554590596564482245422102795676601288156162865731317342611857202748450789705822326226811311781936159108289463188834640014144208356912933207139728481995004982935412620939902114168442482209203381580820135244412567977195700932286151143674275994242776740516759463545838002009593532084260104436738023864936301888257985610795298035175592119336960162551515906899097363640290049272675818265861011531624879804903678783097960615821624027900491791769505552821673806790685765266260137754582638910029320472809220279495936334731478598038720110918906889226048267766150216047793706355637728536086910229045317782758868202687914466915232588253932107696437204560495485919817540111654208103715778626825051582544719503166087735692990745310542662226514616802250198953517630641664380335767072260846972804684473325564100406302776903497528687697918002400711311705585015640009802396605536880528361426219534840753624838466764460083840808205761221357075761760653756128109158147793996098764851983296136447987695081879844626759934021282352165974547652987111951361549577880725841981326695343398613861773914992275547252545256874461000911602494329701604830840759460579128552790577300649264094500549451892446643415053265816878832822331871606578268755005218554817960717091997398777130496718181893362995214457866021913886108364309642496508942549798144512670410732880800563918453871174041072742221186669066889892585912746071585255541448541031540789243076084311577781767581196304172864782844987098846076810236814544420815212611238392433465244571512090208483089010026069873441347886867853759087344857410280018508008487454580718661027149874969028685001787066400134559347230740862927214229689644334993544149291123342674470026553902119028609136367169255416898623316335173541634762924900519494066389093561134817091676126240502188966713919842555679985378309258802879527083911941560997215081677701384203724514176024480412361347302782290892377461316829702596330097970176614696327533279421500592596016467346928784613838976985323290662049207245248010283069062598367211925032116352729025930444679366199978106419289790676451373157161608246232643136915265079275060639336120314642751430908270489528541820748826159717104701788890685329081397618243801799617960268159338924307590789099177123503402176134929999331490760988656776353115659509567218502658790489155413010786619738865351640560468226603949215393165394509454207625331857723144653327769367052322425884777659246840124715873240373294680430887675920881698202763272273282155598927372062672676410201828806022999200356749839592533851226309379898646318496385637634419567330207635217416004232795100565320152668218356828062289151852286048029133753504753345941033922584317197305431545355859621486225562808064212232554387540563146361039085279912596656857404546113715738173395869953829784352952986709215953381873028950253509251381577526541363815654028206611994216158763957950828217010890319100384799660942749538506587845798232849914004726942133116918608851379055425823750819041296273856019987395390905435247109742219708085082435543046952682932356383836130040062702341220721872256036720774492984916445682532243493987002459933828150551190732572973387467933727773158208669255624076810805807684205756961083306788218286303726907271009353812980680827451196103726359723587839094840876045537664397764112298712898285865939116614714890183628673087666707984628114502371228673801619505165346365853768200158054131654301792119409320910446057718336350985154307076127156982998646451092945010558351212400402017583280890159576651097242431522097086755778442135793948173950452917246529683808898733508909666958611701105835582256892907744606586984091825602745075233782983206920670094695910809445834719535496138033689917659750853286927809617694034950636977710223425201661362099857691684359494821436547091439010182378933101001516537310634923285715333815412466906041189946934428833111406611518134502213711102498818661240591263860456372660959870833373421515303100764485454796658154842902150337687972937942998676479952027483711388793523789054570338774764654058731213997150034807208333210056202063175333012421161302544725169634665437301961218465939640163904467930246156653647285668554045790153770884558079233292664227396244315927948973146454878300028700790318315356548541378344317682297652685656317803785025912127852901018512764579204054038457457653018805533104863729630421145588064649056093274187433550841398606778312269838983773347049412693409921216950507866981374790393226868308945628965344728922632614256402376528874316831281791636205852273270957197996304320108017044651388464029113473898417146616011111191374088453275816167664970678637112315105815034780304696360660498063093798821767601531255868827593082132192474785215403664707430675196918818101319528908664461047140786848606111162433041937417219917660900315126140365034249902443821076968260653192056475152998296835586441296035220794818626479065875285199494395531130412334446577610558045744858358046544239500392953439565882149481184116200927829729930486710010286502653474302795965970992612551081968145677898671047432951566366101234013731440448554563142310210827915643679326963463862882414744326684743708931386204421140072111473500448024572281655252584228472998577448392848686763733918965228589343544258634897247189984988407057511378001316147889588634084984257798744281974711021518303326949830744672242431758547939525613739395156820828614379758480267208296717380118607973901339119120900022533130895392772357896753282265817063521294775581668633491864046138474195329394621696246136845425676992688065758152621204918298786709510671506029150867532168572320106395574226528646012687973001547997156610607009238048006928893704135246289905967686385037214191161426440774326481344292510138416601560866123068309739500663514229238006699067758470682298089683417560932517965375261208807648253848655314847839206437193294262237874832322650081089552854138923095380600556403580302959312230877239578803760008648884087434268576229063605394062425204080237261594251268386938664120860761456558460878938164778903087835391365102363568325234795979929687026371005196518801550972841267787109987886743050700300019980464066269206282876524215773756698445390043249952888621637579604294572287428236780677151406071509503017110877743031258999714551310201125519807637270492163684301739728436169945727423294364442234282682993028191298213130405951901880282879547661654636384255602353040555689427925799465083320237061164520888215169904513191720806490645889385397830456935295610792881026817503003040495137054453071780877747900213157177119914867817013206710729471107975886086395590546553747474942989291969675104878827753215091701465859067707724670766643674066882420598152694627105204336969946410446807011060484943041908742635118512622750870496009615022411034067377035839723795474987055274214147661049435805465741203943555986785180696765264138430905081489616535660992512876148256195619489340743544880051013323179582436040094932184098291635759410338858120374840138118139366093709026014749772922837852756907866153440240357021524052946645156260418413680516275198036352641049383040087108620011404222263508827804905562615516766635468132879605734568202624795543088662467508926517324232026547966443325312737843354974376446792956080689116773967941658674506771162653000441740954446964812036603483952334487379794703161926784431395285501494376368497018821061981645785526310164106800070253852238140653891051731434283338147006724777394542667426620833887788441709725083028594487088683133635232345436993083912252942314388324223123630244927675756794020015514971194065368597225755570334953001568152670062220093627583099995971970423609186537091524941603390735853322545201862391352614290850286635458472797776180737963413308443708686929372142530697504067041456701870360288935623446063143114408186551775603361248444550930410659762851865050317688649575365554977374522353277928004339896215484860504920417406091969730687433898999518074657015590586860204521235944809322652624206996208461835913571339543344474655383749802872104985072273596071395398033988286036170591430314794187859675205690907631706518383722679894835958526996664973931780265796514413946515253593270597213286935542855785352180827063842008376895308049491008333013333908357164522480346396237597597257000147804716659050623483066778771796469398273391735589398513620316555845125092382869204177338734878429851069606205191386085908476060883268897050906964904051241617886307716778298808473699053114537048458109797228354015320202466828891322332034487134659033471691053416015153543458859816539614161503740264411045331984905989140636478525563321507702831205159557144774646537295088655760881961768918667352535099531780177512380268380750018021258088784440200519262954335648824135725158896465647772442657832437097330276357822110678632664502699659188051978809383244992396839051188239093709963608077674989601265631827703275429140000900427349436007732591516854532169204007877470494442260905178441185620347553215140497308840061516206741889052855221497281041186176152747864325687826988052039623348096189127068431654262550275753479905651028053373576667185367353242349528488942466774073374969440960483907548351446833414450629313685171662240672619455648956307430226874129092425126040067031981819686424310989065196532027514998004326585889378502915433919112183913605022414885285170857889918016378457661391246993846659977793025469289705462557766232287893526689765140422979302732265401550424904455560879816561867777493866795953548928594972244921607797582791796073630122471121829761561580065250396021258139019251020800518659904314157048442410520432150847910452379747250531070802507404566782399277468394218964312227528342466007424359995840490385275318309347532407750970834402925345459650470561543912483697253563367548380057180810988214537905567496580503545389497434894024340010141910935647992517498126691775314946710729763912855959861257595622100610101587401111835080478141221211524282657305965588313873110552969137194073160910066396104217703439385168154374482106400051525649504656570355605936670551419065644282342331787573913998001146005693900609070745732003156586594797080172538499409337575837075567784900914374646862587487265516606232072941922830264309379756316828032503592905619967341677067434547279146978444336323915807446558520846064973512229846612585497466447305486185193468738440479064484264071483996817284332288382144493215582386696604855146407310906432238834923796160477248137571054089246384194336122593489130215845110195814160134909288677905396434597324775244251642931241621740566852425117509458127087416654749139333559905083309253258251342492710859028276299901951970506077852346338882628317691348648365692348248041529277633184789470636255602921426960923000325111675681906023511620006667566871791892763230666764765419486956692324851679437718018038226815503338572703534375760270609169970922595211296666973159468938987729022393792718969503521853679198694451999885662570882172678634131637592707867960160891077832317652208520783097590806317408827119111247320380910614199505051232818874909971165428999694164332275077761364217756069372724172055808026505186948999604253747428273997841721423668990177881907073179809021462022120584081459091862740864247929367378345276305617854239167890162361392746734320011669309655955221120453238301341869124027628561704551467082794663314611800245207437746351380256692357096094793447107196608742362780315997757389141479504119038239590725930788204273553287869942190605982935519721995205257456330539243577763291798147669329791314084170147569652786873970033062210274233318845276807015006883172586383339725286400114894768286662744288161928626267510657146462587682150744271459741264104361417310160804035057531259863814283476943427814039359082675031586792924376178923355643614935950785800294757280506245043964851250690306666200856277863840593202539434681151066564216253186405103233793830448438774524858863404856396811669188479156449750763157710554764247159386949361532941135958638778986712695011261440191761358258172215180431430677460929908882466715339541591074620024935536421070314765826001753943141873628280986755291141002594775649914442838364298359580032861610278377792100037899813767055564225670242933177720356273845299932874864919529935021690537958245274839788892440823327878289306383514587581975105532095768429289806495851865326721984568830709964390973387379691583288177785193755460783906185975128670911770615765243865333815866913481277813141125803078632798776589431167009755632714065172863812665714657152057078145807518331675860630616779910342933999245776096561827279437897269986611054751346214474552522037931766021019259275653556391635697917983365676868842694783262179175064368493375509939973467647201654875376851211077650687910922276447162663142751588900739114952964188621883970442705589057287617723508472440927785468322534725970856167999655625489589876661877272718626895835927600933461578196429484576401038503973850770731683383465004796839766849626343996631217081227480798074455466909345981932252375915357492932228644103235343741649919997804125606705208389508862820933727377042505731089307872468756579308334467897027448984082319432255351637797894276386632449264989691781344384939891140451143112056285706734206972436997474498729020999356366183786430509183001748626403836101387405141757551322721607835007265258444809463261386438287701326977504186936270486147031972350896755372463893651788423371903830607110864419085540026299665769995936026213928113143231899840691649789439806648659234086292517347046369962128995858726946302163169913634645704808837470263458700672853935424739442378840420262885369406706978569937264900050192653812277220082738892626379117707557648115895559103437205037536706270691988796543425914308093593682175825016775547366736638933512194970149001069843675255041366462089658298472080977612114088860733607410597275551389380840079480311948911823132376512880622223345498483841196161458633565563431860775875920750567751166905329305227443547540502318086637832941595529342239650651759973766845828066494085245571482094472456532384722497626796280514611750563646506390107334230155285859430648025736074674203172891823158789816007265694989917977009538196041763376566498202288080353730929362379799950225305709805713097013182274040499372627485648280890843308187029275371499260870511897452366726220310804536032887294302475769907567811855686302997959880757174092368183479740171895606004190089393995790274155138220729607303607411616167819214622254786339166283634455783394986959903987028165248118255427765840507192448895240751406107150785054161361215849399572487814994202317324114541108864962683665473974566040415515813039364988958292751432750178577978666812265276804088645330250715471787167577888986540722168965781398021100387926846325107116063565981943486512296134345363526299219523129318005749575762791896852173493874406278526340290506150824363418789391166060521432751363287302822069849662697412695829166523425444318096861990251317353870224951588968260458732069714262980226145335812683723759874832034854822044799589412999905017761130298238748269977468494038074833434291952050064793083771715862173752114751881413706862167677889935626443630000087846819814959830920647548753417802014952066972625333593797379772513734255554339183325651561328100709235499639651747997837060111479509701675835124894946099641204242992928451774086752310514357883462850839291860480911322246409493185874841697685751281670326155359367148549409039049249610545598418435918148585049160843480275334153213995482316147363050045522697366134300492871194197849476878379076237457391023720936429853591432809665203960348475569755984900710975181719622202149877588251354185778816522093838514543701055272381914425824247349151564874392452874613443377530876648497497998907759016139892382016863948625152331662309149286732194374991914831594387606749429486493047391996003330510981652139803172679092031309526339390337335837331541528051633605305232481671901682245073768262804046226314529954742940531772435621513974484328626902372906704727997347929431573226803118162671713803832990312011621807750074854186670931862108764039396775567381001748072019319616712582842140914709964611793209578126276957036790781798479442463716895491052819839621371830770780523672901846022967409431037729389480691336097314218292050993915037023668870456752120987777816065606810958193411433817042882436428939576790731381642174642408116754600654197644080627662007195727882002966866720632991098318449189084047740812303431521167817539614734493991927696184093525494980089009812984112807123641602964878788849616720556488649828079784458397655095614731764211492622442545554870824846725597475516274435024614350927088889105313825781330369192319718924290456079072793650063447022813758180221387732029464108789144960880899265568050545671903950723016311650160788324062472450073540722626655603425347490689815215238107671091317237594959934038569814751726299668533822841094366972053033976413838128935338706626487413066388369830705717512217834124994448374004265988123594755084051803356829321438989633658672489299973186684883199196957514240990688559720646035298054295056901275794850047948655209598768242351381869600334252695642728462682771262360398811609398741360147232607775844934099952900665856996841362317029100943083657164983790081374155616771951526024819815902023526431425109739914366114779783627642453585166719200115471702828441408418355779323578986684992173353214170017744187703992018676056165953267444953517329958956871025136953513175659034564646343955881361191140399384999948700487153322827024689043252769311717645071243224540593103066676396309723426580176690804765053587135934927471213664751857207671225609175844492940500038167042333938741066205820857144159657018150750922600512910716962200818689593344490464690926146374647793161211906809483200142592493478207890392662991423568564683056983693276152344888613386136338266491058417856969189417545983881936656136693045581404350831477939800536859328614710336038314255818080259055200932868285638273257760173980507446444699631765249075096164700822548219816591538188425969882821597567798307284782230553400301200287938773610681561208448127337637601397468130020697766802932002071598001885655906182033484554885429856790958950186557900193678671164648328853693596733572521184428545977416670996441413880078579529088290979838370248394933473320960978347046806002039558531499905139547018552038246341101063511691111958172855076926093983842756069825862813106961567385454310694484089282479313396700858087840614735957279089923687755572718324813301845561494627875309208724025489759061497311849394807826047597365037410109315405695462556866500276887228683312374349974602574113137583122551016987683908828286373825012816855363201662372148806357806919189368483487611022298499059850874194605713042927618501334496075903685272236400147349966194104786233842668624818770915113817223776606061933496638304227846264754540885954593808901870917120442364750376901804463345173763185208580319155552456785829491516711677476804294207128699590279303833560804660633177577981247874034089009708078242312329492107125838251170533985984951547494118886820420380669177472903242192716301793580558174425054138139895956229967185321996983152118839066545516599479766003164153594239923185821355191941894192503938759369993619106979611510186743205644524537953640930211932536907124916223938165343401540452406549076252997187462531238649105092993404297912336866040068398272663733225954790039504018435330829350814852052087962739074415470947544812556235676675874373264290433115473535202984064605494361130032787106043898598085041561321276917561081959585935594740058992688493339615448474633923197311957546972264149921715568456279004766671648241905113761079641498846103849864139585583015068244537512819817330728100179595776896698235144879192630287697552733230287322013310030915738105055561720703762776379604585713947573095553981012412541840055007821912331454331311698473874671675425360307019376329291287677641157716450692350068690153506616856750785609387806465397643997864346340075808141412616956866982972836100795557025067623433351340325815936328841045543015530669248952081890801651962971198740394137821573402736927997104057534298091401209979309190411009795981782650361054952012798133159083439792892987915252995076742356247287438572514900492405339896986416121384841398917748531965908784727976025097989967701571701577350729186403091237540974901521137927546118110706190753585250773326243843242911506004900175967645708146454728161258363720867770235754705370452541825478995448406795082723857213543121520559558707477161618831970265241856457644103009415412737911990582608296475028611487377276909767030926126326586724645829497356326808374287033794305365028682993598170784658946670536237500932225823004855368826310636975779102587053432764059897860676368234553618687239637474010176456792129137788695858383982456314841572032481067203799557107221355983483707043866627005459349256927485044009334886323044244547801800817421198611999480756389426806733791746803793349561261602622690141256488462142040053248207994520191012533257673751704612604316198265727142635246577489599316891396661540699031099807551141844766538924479063358752763980385946253637092000947526384363067994869705606402725769239923308047889838057468220926448360264596734890289757280775047345076970980865210989461300043516285409562596883868557897386449097107386128575259270485632007262905805903661363318920874519085164572779547153051230154413983618148172300432452170746016302701906943220245803011269280876822187394361601062661232121017611667571426953401959001530611082934384207372789369410693327281118419544395479181460968925727573133098141451864637521753496657496362648044496017107215951542901647816576775102009603177057240108472542240483197646124673441437951986969696449374323942394238337892377249412051320107585632635956478161386235617952641891956626786992027431600349406916772569436812284609284976568694764569979532506172822259615800502454871442662776511020592588738128717679464789924627928347397610720253663926788020200848527092090028024725510993656547502072790366970308258336818104184707411881224373738318279432226542557231060352960191071638951837156514025818225919857785959345910394491932639724220272733340270344081045281059445378852551208913726442877996867171284839459340018845930184368064231904339079083743688237006020032633281147349702499564911233011330996692916412006945037367384883976356106134786803960361017207318202189495153070588823256692686707032032928266241204877906656211407970497050815141010196079530447129206021148611029935847136097742303831863592707761045572198903808142484585083986466463407285467300847817431873665316328814615008865310712710165797533268547475514874532243011043481041254618195697179027303378822847259742428870237010284875848857849767085958768005064767455533756580518052870150935909978051666214069564456096837909415335130400649326770892203931891088616599133793912886743626701805759521238624460882758407995558481963878400341554390120578697734161986866969952529280110108871786266355404308747223216564926649843457988241948260946496062581613242302655085974384037631883554086513579709895900042101172235763305702723192982032537320827634910290373180514726772440223927715795657635857324772568849170493857988684576179575874662741872979800944722332913145690790348217159735087251592590795990046635188004678619003816892858642476444243704162279538479409635135569826689327270409749874945435521143772678577897322545513524934914611678480953098230842860297897770079183490220408285220859163470428267123738062601707340494821309576919637426708804846115135504259063731048770354759016929118829641786142250697268549637117797362999527086720568731570919170222603487403804111816307287729678773946809780264771175226589402545251222103327944615588620151206797295875692888463111963156367394041471081651801736316360716976101435538259484422073580692747565769874716023829336937183900136876063335264409335691840732185892232842557347502190022399713997170994865628218442018778439762586383632525076803356423581520212567222706268136899491707300351846627215196425085355304903538018864410292608761614401983621524337463454437688456238018470742554229695578301997805270937550939209018872305356599750432575527172988370203404324731204933003402108673230729758892800210785331988704010969364678047093166804753315248417388930445825160676419871160985974090554505583515869726159002308930899292513204078082089599628538645306560456787499943274220470675467857519977659400611755092444976086718776780823481217402211590268329604494129662852263898320567654374809592455470182239142357614494046406553289667584194413552821999089260679317856826962665805903708471443641592192156887453156933469361158521870410394373562073594135581887600019650440789380387937162154533440185550509803007906488546614243004779067641740270070280929757734055458347731902657291400902478496415632530521894662167332586760366039254842780937837610258458555496837993200714244871860871960097266821720560469452270953941269582041610949626516173189869530136667770380524403126887190516787153445313170339524148802088549128034093554749155073493435950214074540533693835902522105956943415444465642392102894797492343374536948031176082000689586040288014013216842922897421603775797980450582987006623255976412391720739204385480431468182308724278447998427892515569162632614160730715931738068845592835585344180114794531276871478874269827544057443415515459908955353497425642038855810318442290572906408104390676153829019743790345843745899242876958517607934659247571495275789227408399022202325965322500808223128470966597927469209807105879715995175464807565593528793535065457841561883952781356817513401558824372363572992174818597381505166093922045616578098506825419977149778783742476783297890128586934038218680254456474376616111637722155236000914689866510593635174818603767409188691563463832665829054492044444741985341548317944952279155218011603281062452844761231712768217292960683743460131171104721436259619164248684781949588842724195227734002240667328309368166191749808249554946699377359115044370131721883806119414721074916494952258907757058780403535889493869335165450467246417862908586694040305370316996027904660872327985099098198657080181947842419219320088773910096440898224286752382693042207830611953664593463320936563342706894139170471199234123738950866607542732053920100731722709054932029694046936725011985353674628309266041093835341325836608559036450173073365607671574339100699021200497008453123271310174888221262337810939479843121366023777561961522314166765339559331707171585536095901796089635377799827441532051111835300928109984027691104397875930740821339128643597945239924855751863312636507217379325167484494071889626451186376935625580422189462562346818702811009617616858775925940011021914951999839607043934048678075763079893070024749651290811804636503658494449922816554152976527940653406479240810723522948932476604432881833622390470695608541606921155144547535783026378156209868754029811555567411025376275020085206437181359731288684940680891270149696556807867255644706041626721569617851375332163111147830228660021116081029071192893760387361955217951803558028330635634407269392245098843639443055612193879630145902256373668143612953269042105525896636506394884773455939922626371707551849042890118313148073229551491728659351737770771265704414593585664125462064803644044332278775094668963367681109106494710123636486711259950807164285198276930420400670771046928878208762599513552651762484143266544054585043225496236314282287156356820388561509035828541094575559200464654884269293168773415578993365572477300086755707275892645357801917892261308545357242129803448053313068285651926520307949583003349287215934824759895500963155780483042934867039145834148836051621144694223245044247328265249266216150765488148597064925032038853683885979126845417010316682838589455892894173475799744622088205737660693082842436733018527767908037048241244170109247866587354533054126692085348422987476599661694087161208396257444645374365715030871905530595778070647065942083942867715380021638036396005219015357041708123662560242760784490249279480712751629870910518675468679546462729651143166557032654888551956489648920528849429905151505266188138971561180944072941260145766729497218261220835466491306368702440251880108919347517493880271419527272220848351868877115279053733172596101736357594579901187884299202612649774598767184829308712151484476650623256150928990902566409861586424445681793106247217921496493775921159008153248171157666131582512981216603751395552444230677530310734068153010990455424435831977716058557084979081663617963524764153427422655070086199553758424667214621605378870740192446586286943003872194383673721434943493401395146197504850480548424351829526043550007401438151635951776468728727464549797221800000049876325207745027198148637023807324181308859698883009249471932057139899148934099017219960311005195824106135156761317894751036753497376774390667755187817210599755225814645984028858996629787756242599094953939408741206799653870130225498629211701241736378029660421273681861548181854782912653857261298594404619297879114544538337513936266454874906843995574378308064974889023649783333249167730262049545720611638545776723962290063345254463847475168039155384907186941613863291485802614768888585962086592021714862505357742652065532938355392101579396594200146457347739626402154018369918617510380172364090413247884137034947370495033928024426369567677594761224958388506078857207635966155044935768102554424497068706156816579012384605099085045370231099687189394181891110758183285418584521741459299927329499837955083175596519382437558895297468228894476286920697478365157494944630158226586928904809887382110869202212824795934191068148232977221439708392023286722988611721345846215356275459558634587587733234089927595199428091320104122691488381384247898943399116150562919667952603077669580849114437076760302018399982043595301172150341801493326936344950490008212079345216932224056458801089441223965524690639057732824913228155115600939255033589080611121891308369841355933096464959469901703491898081179997060400303041591424787129243743976832162563393758408779891284711075794171890110920552346000162578288262549559816848137444591215404181786248191003707649152002509125660831364298165767616447025497594213780956234543767039899097426246472412445870925507708969095328533924706297583146711828332375034041616319918655261086762846627337252913297381299156561790608257532368849790784040288588664632313596242001396401388466386257289738846977353966340405760212654448243910823889808591896544466067254256155243301987924966511935610403728127059750490023558965312511776742446995235848840322079088773851154841897130729677939873382929586657322624485383239323006896074569367452791320027468081259302450531893507031239891120543176964218463365766450759655374218095414305210966142101419811162331030995296359073120781818379072328613930974588310420615571328088584644924837250623941822786279574784032328850018284178953392026815118755622395734815420034007818759257388144232916782442183271111108592628705868819145743540706283899286388604587629876803100065163108259072216589147915721948082457245376557515391014224783994452342347307897569737010700652067004037887840287888717462156306821014280391125229087265007144798874452553017354296074285320401411415607899409733418477403108775818063742982531197822696623011370669858071178568122264565954572169824775384396467200495521279385661305109752210238237714018292985831667267937022059799627970677722189319337790485898968540225017252535875287435178430429769668092375140142165539031097114384371159664536194083251395019529665504756524769139181110971026185238708854374662951547758255444165163371284048480150447493193268015921358950554956207802674324898457791579175490975939158492267284490761132266848028696092498775694965668603123092318077413070710498354995927079343304174866606940152484030884749756521983602536801784477984962047157672961951221900859948057381165335000557405942271585919331580386172990851692431367389714929079301184194122630941991651188240805757506054577293326645332064250880174441972384121332770247359372610891465179289125898931707595239680319325501453579196187224813035007708605676558536318439769127893615815347483774284350763371216918140383401489518160819472997537037426938963759227800377762857449037609906577149577747609408187594401936316380230996687006489581835629187476737337250833702470245737258118880518523270085282760763323990585879252409297792996936221108321413068414174869660895865289259598968551945708033772113402787055371182721766771994669308073487921357749065903751873336315549180114429967307271197511046835095001278615919691510555737649077134982191563504638596495904114795077351475611671076028069396399023401859427190394800189246561614146074985052603463458844546205556454067597080116455651414522503078097430151628156552427828579014064815918096383307452367003897155353963039390074558574496174305052388161908734344125486656708591493719816121702667719030459214134326917551711552213361339042255128690456787102715415846355620125451824717138873160502284584357910223619759470012748398729678084383805068344237807008146320750673032916636869043130029840311515278093172005530197506534878512230748564266845136000159388828693103144769588479106279808740523951802603232279777365918872420170427391081667589767725272262388791487233579020652496665790384996596755506749864639270405239466790593696723247005945239006212176104218034832104620508003128881784483406516651700155027338019574297576354695868260984020046214061340333632238598679162851930201954941437732744710491815912438276232425177767946446263477934554102300198964286276584785191958730907936361057019289418997447534828035748274961806966284141734862894332447129176158601884047338401126051944470435891415731267164488025334985831615685803103164753628249754744210576049687005825877149378810969543208313139261282322398690672332135073209091935443318626124760014696704050347755485053104906869071070307596569047376337184907599133654274341629556944759425298716636472995037029912616952651514087454643555333590731389903061475548696277718806266133359820399929001612171505247456895612250269554342137151276286096237224845251042832384374154353591867271653395393833603523301022785197756466805572889081452222589802260421523925099356606801319354461023272929001943403398213334196597325802081411515148144882116701300152892449810984331668005080782112403864706777547249464186933287899587214742488521788240982977991570272045854499815081308659493648857858940207458551321309572537729477933900293277320437451685616335736616171852950746947070743636298646977153926738704822347855397416981698403056582226396176649591459049904570151365176158522876479785026116389801181281740736383572904546760715062440060891631728860858205727636301884198386103443193899829382102449134240173052733151422994139702738919737372398824906906082702977041620027789730575553505159153889992142381925497062834330778429955797658080535396942213190123307575634363641786529602712375506326504690539928589044160865916019517342364974670504742886210573690504706343053102113874132687175506146443767620919719297207378407036829262354594162208732277082811269150764936829537555933567001188758028625183599327365553794803253946978792557192273446694204381016256395175049001382511823863407959172119677392017686137695712385710178572424345365394226475419729978749081648154142388134045001343714466269727831057583740082697982428825114828699042897114841920715760884163747986798090058656118521827668385101811931205031430711709401019959518828229127667528080470597974869620934914990526804403590221346579149560102498902097446400794991732838800040144097675715767278512215673117482410804696743226220065405255882873209469012584687956345626161412664103173267521422214568862902354066310970632667204138291927825186969415268426416971007356724321906106163837510103109751370698062698512193085461709742964897855827346178416652931749466184792479419515140843456342414435252685918843820239896588922982593229895438336764596009126436959340098625446462964233436194304383220119816313862384753496707054989904569863339652367457857218567182420040439821578220939257485510492556936055431552412951527921436859056188175502807158350501042370672434001845198063596607446644629201840662174240066673962457827642579909860652194093541189898694080198363031007519144157751718946190912257029321413708839307260100227409623018553533050234702224133412017688188204242681179786411085718350996454640030547324097637103406023931192863292562278571905268876904375465974369499265688542515889167768422878999959696467119813846863747306924913198393107737269491001969662397120710837277850836590528836593822569733542313878760690409874919869201346978794396749971691769595778157490471507443215494333801717066725147665975221349195178602473525014953696495183332944702894291066975663492783644227495040492995345526851622002459857378000038527914489160659878790258548464207635183331039434229464012639634418989972684348990907130482777563016940825829469540165089590680639784359714318757641267258402950307044599395876433798345142324443753077214775845950382511463605235361059389381032097989566054681913690377656259209358671535036099849872567682462251581566824067190724461724403227594736930065193928874686548154432328996654597645488372623986454757958752354404202527068791908681229034316747207557104226655782985985373193476321585880749733032353646066554969860217633088142036969075298246401173061262014373142402664348501391867890188460813545275304221820648763855146964983589358758555749436212927394907745426763109643402735971258367594338462030281227586258775262416343800864761477251253695573113924053520944465668676590175933857821997440188762665580580481523942691478778620414911108494248687520737036213397322053108583246680549194149928787237876170688446515368547505672996447399964295175134803248493140356358291630682984080309513383018603090275524801382331368362428470892998592291407183901348266336974657563132105688314727942112704260295189996872449010975907956803307617625505208886376048734001092098727291508679959276644435301284948428814597276951749625675870424890679284967890150318980409574029093322215335855926274018480760365682987139551237014196692017641062152602816795852337854820865973738523881478696823325397631018891120831630418305466270375599694167238066431522476155218168888698556450563365434317500094240271025107762521389683428544705257917366711669911138889268845323918165870901105446994058716837219218998834737327810641802837163915531588900404042376203855359838765427541783519384502643882638074820642079780353962634216140833816683191211240186975264640713023040710953376657868449235873070681115795201062159311794360671669058387625444622502729101943481674775539331547488383638529268258637207627226133016804975092980683826099916431091207093870101936796415643869060868024640775063655810575594617883807994784659378019524048648170350906863045024246205367186732543495866801573711127947305169156917344947624919044961188592642574844864556807862493861641308999879396926664446601569146547264622021652628015951533922329813801494012968723253546806724499825691524133192590541816720255613156439026067547672689309877772231481238429520127122841725014495490203131768898610647801041989366897431464910308226599150472533987084261395916694589486032533751265222185725091545593050413897583506682056541630449788841099650088996401241458422433012805466371614486535689039515979551709433752579221972148578116344808458329480179666887438548325778741286246804766857458559121610624511685795319955124704730234069290140125862066767832027063157268536147052669890798289458152670777184163203696459089571117108502118518287947441555602149474539717538043924715029081707285443543190727782560351984989052846491444628372326117955414850157611702901224410918749447375450894548546800730338693842658451737339248363712631117195232801906339409378558761578445989602050123060182951553165467600011709444566089481727838255610503304349897468023257810567004640340148125840484443961735450940678671050627147507859669325945542130504148217055377714084187931807353829884306532125243527846670499012527613752434122254343449163777465520492177635055151651148445983826190912901642473001818366657651498420648667473608642266703147290683875484151468222369435299719063092711824518503456194112746326929262775806428516450789266373021469790875884758957459230705660814780439849619747673227422576976739912530056269301775419413126610471634672060276490835240593518757363288696313228078966901924418637628995827221734564210059703752383658885885063587363377489278994750466919185504306744009081024260639720206170822128722598105688322498182426370931600022710924771503699478819212654989898982151309725758448634107883398071639700139089768321638917127340910505303217180066348714849628656853128983931490620969171371903146650778058930572526549015419291448989858617033997542119338571352968551821068638335626442531228664910218519776155638708474706504763218424214449099989909653232960946399606698820423031963937763501019885722651186315012113207093815638170079850896520597547021155629857793269093736449269781114504413535906285442164875436713416333359332559134252607360463881188880346061402717869556607775264438155502586220169057702210657001165414447957671444668867833501478340160110102677641397008695054765691847562159692963736277674907086461022063480673847668473816527195097455342884652714142977268248586171254983178690499675282306932556615676956498721325299889292012700837133571006268541356903228577666659838396540634381203115981659559841458388788595521483259695635023801130732382714111664020066628508908956994529204274231737437011301385693741303670004062376586496681073692203508380209785456217730767953231137183045540737855111764615741872513034097979869126364179672324823059089918149504414648671273014967570606573360907915959838076591414153467140052956446340899210118019519928054523513540818948658207941668370051867765867595735226172779478260187220705747354045423349245077535172790295735747913775054449272847147961796334200288492943264273055217313113011973784132811741447187825227216703768064662620778722300878271776273667796484059046198487685608683713950447306835876438623387663124909784145496085850906135715115675799446589238440654301447501966383010342546744582728728258367502963537830025616643885573550732384306228981664069097331111864013997922379386206578561282868029510000236134983393317772600822371640420629711834235879167644297250894055338841643013984447393609094383241952633101557439772762036389925818082656588758885205014250884207859366910068156256757132899521335713051774146683919483124366749037311718654906834042761729805932112663362518243966317300500488061578007846085224639104851189603922628001817632915935430458865585317784867033079342358499656121932228080875236063833186873321027542344972558136730406610460684485883912980492727232754206825394154047558796436984288960807395723659072575991818376167033516294729331864312455116969751510594930338438160860634759077741211049870907032789965221186388660372484440960204884431032069686046691418310510158192739758435526820456999478140643094789879356291177899028427865693006282545083661687168946340282226747011489602278038857410427088362883901925642197065681694384649729861174425216051588190234768414972992746589580828643503655953373074215453289368860134389806407800136756927218610376451428636273391719119353848688834971803681930595262728337863995525224416280043837132772936719097201669994502324946713331863264601299675549829671810953213858464039940034550597794750310572141765868156070031856399681941247604747423989528105802983109297196644874211252555836278349432175793314418283201173559947664507350702580176140260628915228167269363183238585897925003736808825699964818585015609173590278344416847793322390888160324702405842173764003173067294531329862178898025261585023550998052475962001544212884751076454905226741068055616769388366397936111338328639501823293650031300309347819759026099131567148517026089205252026589435708673146627930293126789727488616734205707917677678606531753922452902821723658107409216817209982982022187529554830864728385981383352976621840320034953329395700163948435272389961499575069553697468580822640995954906315046181853183402722254684760490062242878059426025139716323603668379882057156586379388080920160396119275217105139011753592651496473904539943664032149822393027017173825616277092876772934338415473692384301260448654487903607746628737495240856023653534092098757292743252717281202512049587648597478801051766628969655709053384288220943992703737693029124186860223918748024997496554372031348905014102564554356692988993357795202095687122095913915977571360271429165035991074945079872268187138785628855698833772904266934088163862795716027874792150883892729056368985055803310680106894204740848840538880082495742815655752971645641639360738988254864945241586833413511347563411008511426007841644796767536907370730827384930122678689411892381786944039345363195309742151503902114928863075906794196236936709409755151099820166411060262139871769397907780950217072132229901879589204505324220157806260820415813397155846599280916503632201390536666954915634594009788565171067608547015959874252546695884605996872062173432932950242001636855750945058010293026596709084370564619706319688959851495756238771522894889542336189151976504802354824452365433020802585668336909377714918211923168780030181751678312141794145607885987629998715983431895557161012274202266491824070796848380713706243862158128667108694824477121866605957861176591649082383457610962360336554377851825800981917937047504264111229987287507122675388707915271168528884644398006531596524006279045971133589673114133002407000531712134122962467083659712025237270596139845410089133787726917150194831222127208717489605650871814027399353302212358074209951462765557762808873872664131716263013679857549982324909450159331461576962700214583455338958985113656107041649627629642657857797033560867019879661093415678537945316010602523776659966396842335373769116165039322610476666245805046142534742398913402214779238833563954247845429625042995547672562916642590834837907247317690781484726840707966642772594062725102716256625033784767497227713412681815839902033773720854141860184514018931637083430094462882239022532229420708870066802716608226757038040152909540207554927064580933441795440783816175759382805914026538432583446341956881188066470496063043510430634672678474796747897783126530175950776155212773169984962697745822238070085920851075809023379702018536070500815563615024745049290958692060165508974104963224232374427695026936207928092517920272658326321158626816936495928605491229547041606032055864109394984748166588526384403982359759359087047694241629178706153656052969758281221606449521270837067384587762439242130487341513026566718752001478855306456539244366106954978685133865988129418600777118134423236385175056458340531256281452420060093871455009405832970963087136971476050872589988110453555294249541399289935413482286944448189696997461618443350860937619689321228855179805581150647462889274462486377854590905882031335320388958368864716863132094301008129299612392877176426507538902857055234379385522260329742564988547366697006243827089479970446563191522092979026953605200190345273925827700190830240541590763264641597548532825366555473548702531822907776341752568649673292118399457222193733333391554683288118903792306948607218538607584535383895942271948106069425575077610098604554915047919853902534703442441994417124912371796719024195870005947209248128111921193542843514920286099420762351849037304305060296143571260753763940778571741633353569564884120050175100566569116157596874717557158335390319910116309873297079489347894012928407440575574891914816043916128467654825958433825691817147206445697028485236083540977440998439956764121103646388436532622936007247471394680053723720733965644346885950462527985943189541226827775176433387252141923853285813728679170633959113248860013576547779860150589480467632692894917632778992730177900907770905276929118128377115348886269309272789295590266252341585335026459876566250712718064220785136080680043067058137581065743423778251869201454193403141239558705728047771004563665509475349982475103159887304932455055644190282679510689148271917868587243958892457367054098007114362856176787331652423929486152015508011372138621178516480071195357288078387870541623838050461331547239487795912726912356969633974753212161871082925332833734369681560952352700581117050454584845635276986704164604344550813460431542058065502427328875950762966361727561682109712785169842132415742825342108229098631918758490590453662009719408734385802225310030688150524832106566368401612544627760337376910247453858385021890241026713622182723959240218674466623319924282939883579902816325445149277692051987816951723970292802672846819340785896617040190853207623660563573878243059145486026993885973420972211545747510505570895832982381052183596104695838921252113444086473977480004155762388213477657088044112543456583842635427599411853322555592640224961081238165168787177955607573020168605273006197988170545935535661950448352960294903589046401630305942347046676075771726660192777942628994269498605071668785462513513514340788423921776860610784402786442205827134667289463693990402248577000368011215020888655483111337553370768787949663222824647314378611137345101231569007404932992179653984813102491164239708881573461145164391207278676517896795790540583567208831361499595495070305205180761044345375283872084117545446041137951169596925782435963901321867437774931520687925496075185463811477368710270641883499183127574051400285159805438283271195189658700948876090599682362174837160411225984779291524597827616726770201967774800382704152051208858737467009324075301959156038443291069274867268575148679035287886445722585099666277760302035987442053963835319552077483069495884727279469348615068606117311782233101944373505121369457467905227301585463891668031710182198606689225795257287219065901680756070749060132646691123146835014174539938614849247223896149346035982411335421657938452076625836703258088240321050472251684911917473490547036632427333015643671896480950219554456064958793893907408483407631173600047924159149998768760822409651142554141946731344926676868236605607506266077756226723577538002836596547136628886158438254472841438502091310793068224621723498242859228450799236529065183694087735538711272158976145199540149487683067575124828747131306517378104502512946756791686118273746426688395481496774935958711725664584448129176121508509662371557687778711365875798082924170569515230225404085803242466271993529741647142490741684642328515969228902548750215841959617594630046256063344275099099112436424617416621405964326750350916729951977465458482108146662756140485049050409379108351291263824646561271850249463886851088187513419880861481147744596529709842838606577389369631197521508040013327470109471759541342024994958140494449270336038931557781623336296024347546008277230237404267292565207760419044190756127366748140540822270599424958118044907947664931841255580589708199138708447984402175613490817769914555061488273853997381140597761062855343312443831481208974970606021134993454197661500470879611241475477544048087522542617202179655089247358225419934945410208312578471278069173025313846915885354746036846525103995983769699373934536358687762123546742148707255907108499415139650080424903169524095079512648793855081821204381464065329275554581451566661172360268521454265171009116776267597822757202423138254585588558273629216958792989187490431220517509035452327420226446863915154850138059448105582524915459156661640823354243765819084096314145128238554094012881558730762358095893403364127204146422112271647112779025582458078869231239799888067957698056640758363607914413720726257431933552308450900822449206036307692941783165750645520634223121638049976239060165733884499421547089986769471840633074189750286194332837375794545134541747540887222892185926454168906767438853274673835294506651048846612127676701913509641312659101186340784570504530051790469838696885531747567295204399485837923196014349605323021715885354201602908858426756870907343645581367614174726333201862631033856650784291687162807854419188653124672508970164174993585028818103000165941519983017603666322870114559443998658451948611089356731637238325367507848510543807432371352384620233133073030382962097488937125566653882666059708808782399176160271535361771704960852018405711090686321929819880079619074548031764800732010728767016319204437822068341601410856896930351774056203395736564311799447454195556298942367708493105905941501375146873812862326879948393950349413892253527699911663631518243800408879285022733898937811210554583834174989616583630863579217791447676827413436367812260925806499636546895705380194084245823732013107244439511429980105848541277219855541529200104960744070054835625276613791584644407051014796955351859593015841019138172982087552567648301299189105785053837669336754877067699315454025085383446882078284848412627121555048425173911414200856328176646784489804466145038275499876107705664341201101840740575941220168262924433403044778807332777275050810684483675971668588393697982966410255389155691982423139459508039781323067783293309092180304133964167279719704780475481742618554265557847754313942526742027020087814612111401224776729212104475462850796656546569863058067583632168437090150974825975873094906156315872222411092161273487460800625629030789240811926507779719960216528990950061337257852650062923155931054844857297783448052394400541412458918396469057445119733513334693892755461335433270925492585428815487885767771900547860099600902206904277038741182198518503424064054162318821802427968219861562229481980409757382489730599473618422954330091848797324547321171950554400474187528257643207237683719894083709968737086753326848627086083507539527071466057434698532505246325794517844581535637747347863470096361730412275571139696258240343293140205890598989658052899553470414323446284329504119739973264309334039718527915878137913367967744685752746550704582029217998440816345450849019341056598879862555397610669166567791308397012075446998398949836543626842969577882264725056494501625961122865797595978197060217919077631029328241052988710478110604582251327118853074719373497560971894668545392884090023682121861964966546255900643765484751084119913942470058457998289400950277360432588780620988592892971997597195249337911067963309847429985460704907224393641581120387839586141614130473471319755681226702683537108606634985457005562179240955230585559973188873395195034519911064882220085433956984852359748342523770570593000507856300546526000851941394693260812045371141966412796094332639723095807362590367519059451928958232773218211159348530902236767449244362792326491932268327843321008986871885918169372473913453710624801642649720779726476632222871421355140000175743558249972183813718749670564478032075468377432626839349013634683530923694612507773922503394012865602872020508256318162249453228831500128522039675139922849691009949251510609988690556216484843666677948109460365687360748559404333963136605958725713092852533934910584448418455543842497326712336044687875628812076397411279103958501238769630378805712499507263569640542019731579035230531467055776797484154429023362498192775377596760675384327850451157756952815611303959916214766764133193357439361527920189818170935722078938606937768949357120580951590246290495835281658544364392012863603065002191869134678131938301012735445598343431501721346701457567478253443920266506016986561838946913439449958798050906846934098035825531749163020139254929416228823666425022183739132230534992048851676360628718366850648824703148395526833846459397777786353972224293140771442031470596593618609863071697436429813613324444817518886634756227919500638375364859237669145919115791613446299332839098596253163819637947727416148014455910531843458077380715072805981735976309787689868079861599005917228246392977216193274111905649442940133464439587008084572190187064396250818341025133304287450116144043894966240316205614485661510708273013283668604725977501731940908818465764332682979142392859948763955213835767038143965491079804344673753568329640654018828638009200772863614795903130622011586106286084290391029462098423932460338274875116668126911509190581260693049784616012929876853010189939067158043994468189160197925084584101089050467307331247842643151313785855523789353951855711209915117364680625927982220356911839406621616641470672172308973173522863161781674860971627228207717029936637791488572620739028774789842187878339637426304705736459280200422541274111294832873388631266361078085198340856070764622953434787881824854875327766841502028172089807200180380780362447875175502723479281899786784861897632289958142501906257386191241793486915160465655639771024460515128873876037571969248055889780973097971135384032361888676672829480837274454318220470888777133037737376763795716240674009855605193034192599936160649551121871123698886818718498725689100372318526284824223407295456199165546023980562636544813147323325405161666563609073229980103314617363652160408417761312528603163428768353065512130859109196692738942734886838808760655886486963762168160548219366000533157307786156145344999997211931279094397848033349746268427854172463815427246893945996350275423516802818001735863259870787330723873256498360733514638293379012085677310934979319670631529825183703051111886658498606516855297545205144079999048473814394758262452280966303882487521200256368035666024271295142935647713234837963200951651620479389059551773096127678878188837436788162040951627612213128762992179036645377761695337720351317297864972482614083827079479303141586380856826370687369315518944412671964959559377055671101407266214311592289295132431502036553467531213078169969224772594034417998027495199683068771236108864082954057151739984576486671183529323297910798211493562470933044519499325501738618702268570517551710392936373653846389591584524041064997671358069532065322581315415860409880145679988801238506387976433377452894086015483109287176089521333260001679952393484392006328319684105344065667943147770676909588239240010137531274711588591109832872288118416611916200358619483964088986897751150700126758735183363780369324723505637552370046139591993707503332505359992875099693660545597862741928342943630704780703348245987832806658118209290553413633718094811468648769727897436765278948043790645387468154479610738511203572839366973839993575595260836892003280536061580939870159424257263651097881180120933489827333109971662091594796080015884040124308472033112930322133970246469575867409653172210782065843979090060079169189855261789255690942236175963278915636953038229548635376877117707598704324969849126390007737652867396255561609418612754293662019209737104275394424493182918783636457190986953150870068754764729306308113724172365400079349764041696744437625977870072821205399996702306940232274035466150944078891548230348960255608045012922176651951380014067189110177497079286272818974762245914497923527522943208510391694561984263586753252502448636564722789212876007660520583385377810890470664359827753896971766042643785854525994348317489146571249849905904939449169162891080877680250665630995001358999450730461009534706755311384985780421108953069182003691914089306769994610459479826748848398575169788503221364043847442320179945748044406648513028249737766439250056775238886451119494260558340784348632848879143481999694012167009483085298611443510387805564424400312409922030649512314559403322752965328051333012950521172223629470201560921781858001665761078164811312635257055759931602540050826138456640775739399652919114358957101468120860516063832721324745518052847358450635701374748401063709993702546067825393519465852689600837649534824574466948746447331414600550945892866307524538868442081893417829045475045511626915096800382782213247368495285806732456883380967243878873109625148711951012421788489543577499349837803446973399247233180726494169271577510475875255327576630710039901040417494198078460251354290113555187342698625250501775898894570212284609590823989049176776411480219796939095131939996850972247609509237393014676397740671016054455077249575381508525265923270428546922840852410327757675569247771460688905631992634239493461125505522106035104398169300925745716639390388043562970262468091861870268473001559778966851284633530379481160479966558337891672150866533141539851010326218810886996619646823554014508667646366184334587629522699657420134377315757116981562181716743532848481226108726743892340090352476882709295830421338530874644659983136962670094306181497625655784128869833309203889849708385490769071396635461918690518957570605609215139617525363940030486200428498404284647644111539532830562615817194678609751505652010483222315176595452815718503350476436435716661826989200317042518188380508210199600262748160783273911244788521942563085319413752446538830485271907743895458299600030868793579831433288801354479767167351544802194135997173766162774470372214583023611334777914119414989756632068845955908532537158693549407415764661406841407301276219946946164035314931530939297011982999648514461360141218535000347640380159414710152328188009024981594041690091808329954449290730046101741354315680687980009515354527137657703600860674083034546218410445955792624242290817793023528902521377880206863202088631836443866788600245504938179750990295968211573253013561316297989320745900094214454943789598050975463584166272699525910174598683663545229961874642680736144008458774928831728541987941405462741235810965020543711838374045334684959249175037319128006572814142162437189550006468942635049315637711335561487515157390302889698628847218859994857475857164644527773458807274095564125156339377331991037455573556006270892799932426186375054759345042242113981550425436464641015274831936169275303739179104437049273060002153500004908123811695197458021259970796079037582241634387085012874699122273483216862419808940991542159763303260480934618851707324216644935840712369918552908005689933084479533546367099214008367967891235446297098026499943257307251571392567304006602041277384808345547452112795210740680331124678994830402287430282503462977624112468944161948697491333963663003014276681908843255056410612640325666126465298830156746664081227349055238937360381951627473428900556741678939437669534003003677592914985005785602298182487217186155198096419171245065725240209492331487307412840465502587340040699284943566971306417331927526573629815026066309941692572650174873413112671178332444354600529013221789280643004953051480895945298756545963691328437908712669803244302327823467451080989116742342068060641665874768637106852675924981949400937824095884151576241647722466333749242890765245605166954888862529628885589178801314730139598132362496414059909303341206058888363851319092350964370758346174610546348623364831622770365292347556261940098075140568670023788197917392197100255472461978428938145683056312907474842601465921610043317675667990046465638345337381907871603792834354766654882211763381205518010794775099156334184964678226182162742789245018617059430798417872489905527520776286718974987991418653405965426143333376592388664044755322558240158128171241080450420898958697307722802075785695418931596947252355699493757507311646106212081992143998964345611055698530487930705880875322010101760863794634312299032577499787296272763442544145054922631491809736519816481583710612731779859966400373265658033952926057577282510195166951692788988143803272128476998519729018565332459052011637708612480033027107788721674498202357264441545702173295792034548338751264494256704549335012979774830760905415677105588492974007672463393098177881060421549531828510588911133001179312575194062313885441522605172390953357307271854241114898790235773912225782314675010583289810638828764814714208735211374578467082099799078380359696411318613817474686010868093353603653196087106602255137545228909503298244601271722753591999047621258268613647767300700134027892399436099446518957868026419497102152519507601274960683139358367894600828647369588486276765043059819198877139635299669120726125474194503714113126590490784482504265632570909325842027277825380041519914020256353133388296697858278979172160743760738744539094546254888339107493474573925999655023492254092054727095464258780374825501872474675967910540535692528563245992848829867901489545524843595481911741426221065352126405187194044434717496288094975631068113311400232637949923209317364937899026452461555445856199646409429900198815467983655291470734391015395091062521455503369062220274513451893547794770889985263233303017036716637444668525334572302456024231671835728522160014600740984521824046058756559836701668744642875075987472095130844193831933690181457964379125399076271111706013338463147019755467690228380861209585237634570796801353635898113069299828300577568566578564352185553298825967119916540986558807079842206786903097858628935856864288384849132615780877914065255178709148848849047621917593820732479259142968134384113278300666395583260443690700864806934098038213534565010933776654453351563417259871045342951089057570239989315480005722725528433153666465166586598260985815051009750594624990505932194024815829977507268374688339471201636691884990434139945093799140943146126877779728468883605117375102755043744157022325638553717683681811678605985619393616624618142020112413566896628763385973430919180437857440771611563466181734112426241335040185999751655446754326551184942899536384515764963564575281238499870942426816681909706631761529629427552852793349395194050711438789230448811557488387114006258907557461939792293405899789741681748323059675665950364317289685937692390740465678433860309398507089255421820108693830024803465417332529117635980876852161085752496730515377076867884168188224474564692986677112924384568955583978310757743553147377412635021253899114702091390230040730998508620136497703755119750020044119720961637171375016951102091326176526854361548966099470631285194623568942914557009022577900745249980101648233487208875745475225498796330191904143156133351671196882191823328244650878763958087683017063192947555437759632761272682590183837776072058750323799940047661861457840246857537654441527583944951774262888156425801584321561069610391233276518823094269707704096576522638289582159475234024075393236008082301369466519245893473682217974508296429303931621083783933985145153149213530430762312561258288469674527192501055464391096637892861213908480092668240341404007467633497645164458851312355194641147650784845739247326041101432805629431160520493269211080347121745018649942517496201584663822377601643292882876330651745042067295143481810739883551469496579270187032125605514787054736135933464508009747303456976568012678474842301940937784385945012718971194964726368322183683964020665381751465047823935191809585647106625619959960127151029021664737804225337798762410662961455689298720487961476290627606906806301727666929965566212437311937794425545306364129578038697586413961760073923725723639085946890606512737809400266925555238103674187998297986180004006069769469963851076081731074201244671944587744559331352925369426695311180489350876502732582355674943148791442949777451005044796875714814624409167496030933317597531412589557809624014799811938679150710091406769576676272187126653618014113978335053682543746603698134999329452570126367257535531179039680609952964169337856541772934765386126335285207537071484146009175149407021375066592395115331619329667816520620267606762680522970972716734548887124046791687943954382770676916207791340832475067872929596770014051332838308539993854763341203767420761209397357328617254505000777732481463887922675280370996300647392807249439976904998147590325408177690455011288958053851765638632880714216523113185054563798444310456679789730253822292476781712807069834969227554556200096527647886328623032195716644504989047255955406754949803818433191029272702055686038982210190019175484003786654694267013128585214574069760463044407482045418145404924048174613711114084608666195421812373936812108488498772249240743630985949824668697179098108462203516244553916207515253107990824154429203203546803686178572628363144081542717006741182272329126928260056733964766911310197568678918705445014184519018733938404969960288176600780608948815474087727730487432731476580763663038455663666373275407211630458582314852185831288689788628906569704517873182753811239674676675635486658924844796533233404644612020542523715300481915014498325711186295613423539534622361519751139638703463515202606462665975753058394449102066199728905560353253110892307509821376191394288490078804579907379947465912808783970439939833450691027349964069401556560226242641055398669557010315215122455057846435255559558518539232641506677732048835015688192409081469309457568037892336651797720357855936974246071253463597111261366199565982002770867825407401184863225533921915435155187961276849866531998420003663230205066877727403619291887309314032147390037623551834800341892589726603620247256433224315305852667303984320873160711019267550533545713745512243843641272784292015552292729978793189653790918634834505611884271260224024357490236974960359531565040241032621308052789320508132698593503445871731035150806138116861714280498247814449363965539921150642011455220997448094579650377275201636861483139484108466605777423754025158284458752463639560048515476051371110322293407865459063849105235644700948773252582832517208793412663564262546513713492628152693029867761094267227257957122845314548124644315865722189849322824566016912238936141681926710815673822757309355160243961392918059970832196501637769213875422885702801329770664491587609262706029298761974842258227023945126054002041841221374640852886024036624857861128057142286049231926209079063505336842968025065716223423880645138017387535521560728829014060702538473627144011252691753237693865134268471299045013192590965862220716493513071288293402786247921577562149940771803480125700995610541109758681935237975667333818754908007652111194202668448179590518409037346079586969822014809182363090144987026651889676845137026554077144933374871140916159362166588843298477937587240540360693088872934442521441558626281269163923446319954329346814975065935417643854148665130250337184503447963208087958629971395056915928558580762074143617428519241968998894388731021925371858621268600734432019552618201208624715293689368739070021285031764115408498204587411922723569748095277790194813970498689728851670143707848092829161249420291679045152582032665708300553182980036273509957398010491276201924871624494347401215925136187837635369471058975329296409085450548984921275708018154167401709623982123718852495824823083936818207971680500894731432484926164442362255522848116420413457162588572821358333549869266919056988251600071806336818553161373065883810737178932780882035096569156858384443741864323711483948572467629783109652141159463384267084186527442163376253822125866157165422150989639016175993878504471380811278007135011551006866962681780225498126954327337705180208147554595541543488785041988999553757480026442711743939444802184493662094410690465278536790968715073754462749573302671359575021713461129413474248516770637494710365127905300077737936977764126988904682740119901602029337240494270315893707402541029479203231272914679041046550474694671197289590682058627162965028689826632627692893547319911869481834792024907993434929334470742673517954612851762862462210629760209411073631166449387381661887336395122152282831067228516653570510759767454290750955818444046203855493339289691780278610351066902439404059505797195402348636591530421258399677909094254522272021451903785020645417320431722956827466637814246384366780068368481285307816764839266312416426882702305898220944047690777153420031592814866368494526339917983371311444448584628327027571615939734987204465573883583056006293138779899940494030863678754352952763429561846459155226049081898197165951779155726625147511698037979537490273943822850044497407647871566782443100670178265031798354690757865199128282155685601637059320479065182074409282202639473649304458857470234009522171366476736971479213577758528858092140272657177850621406566770108342616870610954616173921609759220962577833170778907720038218470890971031094146783515881983237668146725198603688265488346854948942438647302944849363133112363032511533992848183369242939203653026654721646231705813380438349704770457075675615363223983378032202251375974361082316930153371600881413009915377102908371389883636090629389319025222466744598046608972107381372442714741148200118939256076650112240309624103703477556597854503509125786107239326923866911684686941906395763625445752047119926806983586707679382296346756891004949479772647852375953640525295143360718952696426046461902667622203765443356491697081875512807348656227696463717242691107650556148934981245248442876711433786767761579458983342030769587343474574693981904737385958588996494262701629149220264677742808696899816220581555065458392503296857213522735733136696532740711363288078952604016670498602228405908003233177888368461951083943567090964533800737134506170100070429406107305438593220452843073234559879584074861952291189381357311856898128950938738553218322480289616148057745185668750187349392416113506780681961093163647377507737658192618516584823189320271886090028193886097343301317240166380173620785482820579491548134813078684197116067309510512874155049679052196490615915077754737973072841896940365365359908990983390920542593200307022441446429366008723894472266896337148275140688275422186697832069331898475274235342174572923330139368878390323258803204604406009255015982073271993738051215369765656670056453719004528848362883583857536145200865333666871862664420164486173430473988625625690150868771893102126306520979290441875637702409901613794647151914556481032789333083136745343821495851835284904090885944953549962758626931757855324277580341765795671231901672703861371371623939847115404211033349808977609219825720555433788598951348216113341032073971185672393522303443524909412014258485430211541769672130218467986569345071420552935815701328758983689135733120522377292201126194785803988319695484338303641943941979907945333554986580436329112373928026577976153829200537488849500371822016780522089442738445115664370664638813073526458608523420438463590410286845474256489357085476760823948153087819972343224155430153324956886064106468937960218717875488890916766473011799831656418994246374982860854120417317618801845811183023223676648256832669358140022063696504602486203354684662604713633003373390453029496837374732047434881384882693491467135476924985559150877322083118689926800011172257580687455241988247858024036372631192282589074489800658153992857351609308276592109197501801380258575746828884035063937142334510230440933648281981115194800142966407762855153587361333106972719615254433427683043394417715991677806104778810989646680437172809713758787885671408325582023852324853000055747746554603749880306897340787219672834858567188521638812471583296614257351680007924329845090120179558995417542399735631184378501060108771988611107859657635342943635095077502343638981156976976684606402629905308995463047553445480619355994732468044601930696622112331418723790317290388609964157080504281532274037941866903992764124040328265536544057721574468184845662686586930210917095551238251980966529942510816218407745854414616201682422852500224495902161510856500160140658095844230808058258700964423087310527332321673427076504251912672379057804744166190401640677032874477427407842449055274490001367235088966899934926099415440541515050325441363180015826729615517328064317992922936977643702121935188051150925183105121142038088085686172128882417275310657862253535418060548373396681223901965221476873592520396983859974383740168348671421482551302768726066309856554808025193722590903421773066782411332462095924163763269746232315218520465007829066100077026004335069432352640687532485597883308282566578393014417463727576066288313758470506343586902223741266494809841977583606230344134151012614187900750457732511218538619143894304569067836753490941934232777597813711275772079347653635594508469273668445356746169795185357394800692810142885140421347926062875393600763137706999256688289696433157448097248714710825795301158492244984301317418740739438538114162305990188869902519162031804812252062104663458970364579753313180637022044197008345855727719897532577229313418209847818149011483506383194545271964071840160856145945283581553212059349830738616316410663198931846120739674133360115846294807086240511937784144670191494264056933220519576867806775429477346587773521383612398912768160124734096760783310827626906561864546420828667560501005874297761283544918918459730155841716519114858264126099412921722859666630350507791367366806620768161110028114923176242911234221408556896084870387613515026125362140430889868085792531629512436264476914440723744300146495800640026694652557046679370730698003752669841566819983697625279137194219238350942952544211247448250407308109484723216904747736793032888267757807905711386286219196850820652103465366761765851840261170442644965281824758940560242150372193811520051514473969728062048588749904646290231815117177341848106710153423770885326795671231394132682811855233575347787478577569203849495068770031547487146102986078021344690457447630423688512631025740544602546205528202177325382426843606384205238239246505418520430747791747571818882177058535779215925510358987464240141966398474669178567788422375001207725809272609067146363519317429725487708875674482839832002911796078557935656433469626587794779723271216191491713432093988472656634350793432102282408146496227250225964415156545040727672318879124447054449791979176494203180077051417731821529029634846907290730063744805965645504801411081192597573652697489905989661327030449599284687596851528774033314144733429668064979286125597529521716886928627301725231935043965486411159463459717042915282420205626391211829386575411084056780540197814025285516667237335375147667709578072234226530061195999726149848579364243792617489933632105894075244630466942989594815479033652396358454766590620319885456918996943247162866413868857855527743175408701349613654402792857687247909802531312784508378134316534197531140741435777305075936970523575049118984154150070275149144658534373536384625655821557545931143612614694665464008171907450755439033259308217523137149343060090449135954351356265250221308667172004021036506132187574661053901362734043004295216403802215944061976275776677155641786421390088562817926102527163807837425848431086125243400638088239907563220200798263008689231196902824765974726135361957382211787855227797666936823328471383949616163983639685040520098498875803992798791229909465027478459680670424117557310947126710646112472340797501147570302202643402656496524754493660109366853926864004592349306260939281099948829998955378670862336482121122492103537390403799826620778085001446497813669847889997301200132889690268729923065297457516520800610492477148953350573543677878404112023235733479122653852888552212265762685349413372501467343810576338744778284749917373489869086471795736225510109222907669531534694041198413615000095863232654853318942306619914820021229525104023930344545215450273559385747179407863282058513349147083216911389499825432644415799744871266172521183501630527640691804675676987711879306981590794551531104325661851133725421692364919987527753236824906482494915599575314598541280962641843903047506503813777726179248208809640150356171108548417602245693646705086258903795782605062202667862781665914371576742253001995735841975462157761728065508865207548407636762506126912604425536156218923159389070772229931833472982706729308772303760892578922359478495951392503237080386681373953568525574094795012958334703411819655239092626465440278080190459281971207542766318076940618774292814124530003399539538447323165362157378242689457277830398265291302219079255232198929201178358996609751757057167475205643422490251754556523747863430216724740645753926711606805168257535873018796294016228861864238739426896184604981915742332892802756153600644250748269481847834300236761920171170186767746918491119785846594081111981041003366540738234958610197779141622237301535295520122910723999960634023691713284557478000933381372235832307743596684102144785630338516608005550760013915818920397820766772275943385100366982077314549265871654984801534328347314748564025625433286392609341881327632699614461348011059224364081517753197149202242304884259657133126593661790769359003162737083414736619324095242922588617967142138812697761665720119032984528211266372842889618430315801162286462420408040195123472504752352147926818135936819457385081316268379196058163608164226552895081036574583879131205170919890091684901974767004551662196580629818499545859012068292948132930346476093113729359402263947099808964756800396629578882164677501297661206307776349342493908076657261673988100999567638226701272191082465157058805266680712769945107994864382141377086868275864201752327138394791815958008687866844294661746315317907578633130261866891677454522619858677031941559699784131753075859410200418356004953863390002519780259923126643455642397241015110104345805455761543868746790444091243652616837216913785874960141889143819997740721045595993138070582530943841647947104211874743053730687375757615010562527372047397918785453103625885723137833689524879010530288013605008169774436512977319717472902106155626769513968473517163368362868546517183225170628243399326644593399618936749669243899441166767545791158056746651096782483521350693832850711495695461740210797894710817896145592245391164526893418169542212555338536184905820759447450398001374796686201030425341100141659186264218393644090371912861140177469746998795125418154352367502323022894063820095387924980234044816382737623743646922357482196296594036086991553194893834824266897471853024869710808895002431042237430388785367977168215047050863537395523345164805964818387386347171456076365358752252742571419684101507741257858280116474555321535781657107239306223046198177633481653424604644190003751573715469555297531705831317768190501879488453817753310866144037036892413560458639807873958227364424211611660875094115193678084495602056455152016160692616745379364920832777480298821761650491471673456463372036096819966091779351732910368401846384098513275241630717940401093675332460701203016286352101286865856339432118149110441503360540446366711396234090967954544458196726830398372029812151303597158013553400151508301689964382956468184254865437577621394579558673865262511401711437486351736190857930626888876395801508723823669519258121333232215148360536998231085850945698874087115397814223064251825127071811827324042270159457093594874184927873851149220146431394935739603569226881129194336128430660998990889267205098603872751757158229703569856162226008926995784811636993051486874770991835616114895438951249846891534082510702227190085369692692784546244933623445834078370178297089849568598677024088272868226778739197756912664714894348067461697826000544782845131701377397397004317878398082187511087048405029967238309548572063200222067468219373242559639414505157235910239407211774331802018081110744903159359906564797220122567813246896261246597689516567703106636681534099889430703099819773150447944584369516778485408335596613191125408973884552376456526552631175534303996572145597807915866190620995661785060289741317938929812231710587810607744783718835788343650529688396667961783012910259673789979100014118515088095312474760244780554127802120765656318019556850409140115887262444753517965372519655945662902633664805925336728070865270733935023512754758720462997246397259536202423177783181121244318111452539354356009008108210597410063234865568243563547771633842804825421216258833054251309090912099057891663915571982481062005649908091881038670896610809405056328516563277874262611855471979673040033902315282382890212400961693933363019528583434833015477716936215025565264046069439584637892021720309468202598567841310073103874883620441091493388140008832320864883232113252294404140564755679413514824502408452890097481042325331923958402480512900651477458340439686147007410013509159547562426522040103976278745970853544148990477550006851760527354002743444869449697040785173098202121794594321106605202377173918641472739985358479289943343498527739567088542048420360252711392778711641893033950053710313239226327727292159031692268256861279879521104181676929058693338451243572218237236508894760085460629040185352373070669524530978375437351184842677479921630709978985150751619018004456915311025259222904589346925122379468516091548008950824426095055514492950283880811916994885302531909476804822959681178329900479969121004969775796788076656215065582415939081801980680450605605304061174066756820617569817855556343932169710031559252300999604042406952562509984430314529555298056677598290516927207942994719693306536601666834297732090701153705405358320573294742692288736334543351901746839607191141079066436490284846522947736533326961893232633916691312549556130466347460947079272878463437759000563067816611283638982777930773487605909638607531422006674249228087492247113499194515510558448618922217272472006085938677045537967553897430503107402756456371144918155744257800758700649960709270305749309660231658259708592728149224034501587786958706031024848058074644729742485952259190024028370944177311191680670747969815099910377071419401498065756177276859081507585662900777851089209424562944076619407788395985527597936022171195631465338270031770426199976237878869957724665068580155265737764480072866242655825789741070027195690365340408354809372904272858182262063311046059811141388030194124634954869008082134896667949945449760822479071478899198567602030492037914729567652105525330736021396560966930418681472805666856145512233406341485406695122294841720758310986592971595852320226831986880916862272953680870464201000253495724923312182442827780375481485527093225532667792670874931086315648362527558421590820783353972018443047117088796893899667055270567688137900936982252496706801046689856744025422199656734360574366439754927627991352334994925385363529037070014002217636897952864910784629710267627159753264522384988215499581705650869088656617640147153492310375816173524400949998237425517289487092615572680948227367347368948803445053830018596089738619286158028633011084040880001886718651253229447453845128289418128457326356616312031044251391314680005120025221373812154904148790162802968007466359629486528577346000267727443625638641746933819950427777080669658839582658109937789090914376322298794999069868448483288552466253403769195368899908999941843041913493068529898760402407049694154336693485159915359143612116403916239760680983911127281662498428299656648533036277831138774364562614351939234712785730130099156787997527180324856623431012259537523256069264467947172064978383801267393877209237022574412996186348178401945855983482431829839061788224378131553314745241698805902045567844870921099064940030617813120153412287255507291750840522139022057851061683582359661106739430975045529258174946063021300556688104086850428599949108015303037219769885920222819916132322740237757592805340041082708248475365179525491947018712980438864252604281339121838709249689085921543735965987938368828191364467342671772019603429322934170223112728048182676567045015495852791495980604613953275896360725777914432115309708701659800795707295226599403998242375037638331076186064080569794921915294922696767481769852764317614111084031858728538098041056191078574492009802621717130764758629753216661246916131499648163393544305367498087451128986806344748444749003315983652993335740067280891438175754495530225078335596220578556661104220207421610717559775153852680445714731168727825908864960947023032828232727861239850654000143513193786803350023980323315913081112021477670062719949930792895690647426796829620041194786787500576568910576371071737774688405836016367741115578368978166328888072495192965004698475398933193912619125077467387375223514338201679360535534863943035646572724080442820235818386719270371761771572749408534261639925567185340757735348540788283370085351351144966316503570409338979765630216446247867224230021440379330696246644782655319184755022211577012809281004564783525192527746493054704643330632361930138289839848512547432572167863116189311589525861473603401380855283354432417326368303920510872800928527463812537481154220463292145067934131976823875080881084035983802500927801549365308183546488688376767917930141887572327674469145040921005613945439006920702639687497965816945155983086983098173574644822725922667298677762504791704678627677568142822197230187361256179413054454052007802628478419838645253036642595548899411240426327182568461333153932109210621111356857735393795048156081166241644970210334237081792202282193144197013542455257949465381532485913958431462059954225130919183970452958889203246116644481020385815364592388623473250214730670828536959053982981583923482625833474906462592424808775839099117766398636023903931278994606498824455599344671712212619409510639050219075464492076117402554995870410853331033595134524113103674840458217725656565418996674169009802390396875284149380477372379132991200615576007099732247374864564703725998133173151017121203389350326351106605460648818918297171981204799175670376999102021163648164301876933201806038575014982107290354674296950700498333893757570306534865775044199434933357549358320630036923545367348194689086255976067488160201308117689401240556014877406133347625810715692030314035675369328940182786934344755826300319629276866158667569727215054185727352041282526090939817195037464400139838484210150732947590094302891194118933024225121073454833398067143422288718494627877287603913964432584576666254733691836174042145358548292935604358890656877459109086294203175885204804821118420553007133293799356041902747857463386461498430175773937642070945267478260337823295760432084124653304650184053213631706799523926564026669341423191126846802644962399502922678792719921803662825290859992188168202709723771981613635353112563580157729181977822776826907273646896166520272733367991299634794101861084185961181085740900085852418443639087141094267935608807962737220385041247453293842817376693109607721699171013948533531635912724012736105734601137252071605783114163797038573297784432679335230858341038327488303247379371656134498631002695599891943095288324169369495837354197995475415564349016422866573496579578106586111605849758521193935183137591929662281073617600298218676163494106120150909293668113984473486210990023797435123176129922522624824769967480858539608630113476751419888839466501071196054382061625238907623984647419962768842714439924088894699425564553096733303755661601133240088185908869500698761817549616798519818208092300166495374784693441175273618254376569769286844318173881875683421312317217897835590023348149630825196124076010331956326836980394170944651846516731441257539055160613129729164076601976834284581856248597674298906373974611224923625584368996508366604753795425721411477174614129483405325597669325639070113274515978422354846114438484322104906547340866744509440379667939920659327519319479413097871444456092417354076052466126105042422442166974167163984970517904521893194582074135421446790938810599192801711615419185855024156090594579644864932400135092386586175044039428365383943955620956278384349972324275155024478031180108877846734795300385298255462442419910423328103245571973216398908476561226837244955027893998175557946617911453881648946651067955464769012966309207400827014330323957426523169768774881997615322368842801610949909470392660733579949340564871495004752689873794463380043440984970476597065540422253141785815147902704324317554350867013685394498403690623927887446814432677822484274372494328619311269145254219617234552322042919281079235879690641498542101101139469859505649873663038464653454756389736452789481134068547034581871318925945293545073414752113394865590714853899494934410982521277558763595177774987870081889302267395136967985487167908369837961384924962577410026811292649904694019545737419392786118651867245598724065456736706522897328056938699068724573652382266519296261165238751164229373069015622308344300067428004349189282735185225305442963010336105272897282574146068749154894103366858187070772064862123445520123769736000369762889746154464742191405886603044726008722611766762397559939394256366264814048327771377173046062135266855958695211110744841438609852572339138734893668701592480654944359996986660093706151574303390945995243897302071908004732153535811558043425699385818880972896922474991831060244439307281567869628273824116704392605441874572832584956066985925278179754878177196531686052634264369714509859816165056758112818068950502906920839639503642786796673053554423598495011899707839049285000836436388510686327458451199085110533477478905105798492953345136345485323202963608075882759434139762914271525617766950356892370218768920311821081015330589804903884502559093672934008642178165268660867867406379044183180360942468022757112477045721381735242739788851895617546654749321079493822165424928969546154837551837434083702876170433296378581620385721432969839643131971299013525890326178633531382407036128243004940963098724115395142513777225150952060198309065296125079575017958749480983612333731748563094069632841754330957090342873369765290878515839596058057042945048301247721793561396109224292068043371125248118956588141116420205652361632576406621625249111705953830742674364763499107944600739335443627722325821827902369053815002988724490730225781981173404849217443138361896509863925681248652970445692276799618821521947246558309543728867214535067436811205645806174068762330148376548662882222834579924903249387294472230546065977476829112047390061995352498587531669683140619897471320873061602975785500470166426195949579453077304521792518845645430976126163824518380377979673775861173194597648146135016254821817105806187226650672335370821941954186857739765810020527368607224439938936715556136067239041482572664496033936574515697358959614791608676108457445564273388513290556438220450236448427851661531900730928211938623771185864472585152384732062494251988158751816849536993216376867806208470822541940538087557849088559590713505961573965168871113475734326244176098411849168874963604317841211098865611057283612052324395583253361377197011279731834088469808252796117226428424023506361448636546870533854060623800462605227820860724490416673888734782473705847391551700945750790934321302628456100839333150077023511525596841107533361438291895417908180302235790925057133193493476043596616105644435732379311274799318960276694982547899974668807492555222334007110125235907498178344516521995801924549699621794210333393666924024223968423734473744641097353373960852802187606635663921251003498974500215908285019815607402796656268085491157506429686496888804547575889228691435176020326294265902873971070955912043438646789288123621843640206606880759582858184872208191366216459849040145409098742312408111325940313747853363077289037733305206160757627985105797508331479941193477459271474330253483129108279523192469195773155078188415092490540371778367715370736516679785799711127878110416303710867008667959215271803221896095425403913880542053050795754239948197430446673591649986245694643727880259369554063849280838038641956727470105472748301742567496823740598671905389335528199702812720136473168629116148344995844539480043563770425631063026700968783486034154638425265555522552394255587578593333113340955789577530941231463205528170879802702284836063928368757838883674532907226399016791593330163884909458204099729646898556065345333512775949886685286711851426189709086495934020426753684445339658557073382266543545520306924732077623920554264577846103867820228087112007839958686022655321950195658394130249981185291675237579220350181898843362427070563816246063737598062132088478678161864294816225598603261515127207750032829860537392592685139614489225933247626150998474528335502121362801675812506419676687552101165221005597844340387776966031786713588334018568984783926821260655440907854918152804680903260620616335987399554946032722309231429013207999841774918743750365225926471085735450880469814653341426435956887628572951665673738837727930674170988176813378821530169212953608271247711319324443003293733404101398619574421400834452210326116630469324282303772801503178963553599881491620677520337139626415126934461811156861716300722178217954874285804095703904418569284778592735236868008583702103635833856992687425693648255645376722144128327568799376239420729164273232206280520993907171600107847375454254221106668590507525591521753825398004169426020989225973945788717215781511971049716363566486539365972236491546094211743629604491348563456825332911918425214408895500779624074771158659568503977845767874490271921897573507469035781137245493251675785460540387909285276720518248414687851511536557152944310642270807471750271222564360309681973912354778188103848916194765697887047923810785449758589845624670234341487412786201167214398866678139675144223009212796251188333315093468517892223505688550266798493550011343609265968169460722369962615408637021094217219184352074701822294674415331793901127933797978948245207570515588673452809623714742251066676030213589066665850021691287356997521594336056209626802771679142487595685067261172508843802314884423795365466888315430320778929891024736369794118994505859415622677545622379130972382625407744703637988841016128008637747936417007207736983060921122767108570319675858965568989729639203130786796159023960337874968088962122628841159221041985461038033689721727946852655832701147120963838591015485748124307795134645019899113485275040768482392730020929757742860030493364709908756981723591065017940961924546012844545216073029038075693906437111889420538086123258975012873994779865880026603730386659380275126595352789269671426464185900284664917679148748179245404280680170018885108688152318850234809655841314098707611933173996274693732846914561806596660717705570967307486744804149530811985188002756593919811440375702571916369321843973473127720134611264655596641861475561305190069630903875587055321013977737491069172315209142390045505088579441531219628054585872604791655201793949461563473486533765509012152765008618428435434995043984184030203403101189619047032611142818941095338516361680697894480228752663858783448340756162768002354536520080970181118064763281625598217645260644580475233682804561288790861783671643776590881919609056634044246763784982346030959532934323423025269384695669138696011704529479685981614980221901890118655328711604738600759006738386182190814801184018255312219681421228585797943072072072691875736878940941132689897318626177939425272831204318283295371345774037202018930756511079330154042378285695658075459269367611726404586765174963729285405829638457489739542212213114690697582469867709623695718726501641253385505794035009547692899587916704584649357188027697669083063335412062617779410425099026559482932991916569040517505347393695999896126923025994205539639067015973469413408171264321521933968200973360774712965690866501395655850110231447634399454115506958657461381789098978188050483479667421054409139678947639370592555883628873853970878917383778315625648415484647938138792522859759298083322115542728120155463281500470265928677002489642332460242544719933867640341253941130646527681617137564306061804033083992511157017900005636659354703292503294253821317230877001464010669895377295758660878561500545152723058811322760593257356918587237411098758380606931069138613442433001331115363697599619348537708920411832551525977964423793184735612098573469151582065567994567370945810941357605679963779785028849451761772356580092941422388541828534226312811674351814855189364375970698726357334499317865505764395482142432613925447207647910020270377403686272103942823448869963902768538413059953482926673510961817654302657844070496955085094705512930608796532994238072357693753579916809979426555540538371536359621275387935883690636346354061920259721163431969839109194610432377784019786158311902774074281333241561344948579832420692314040934674714283949864019965675141804477223776473468638270897918953798502257502542285504386393543429654336260495188451662060382447534695149826231011928768922724912735704188444660939052622183338573841622193749389791769842207819863479662200866504900604633548721825878651603681936156458285382675171162977041177219491645541453137673440499668121844631929732769570858092268871729559621200879748265710408724526328305697699968421351260026480376613787176079977897975918179914199790125927545801392029885693056371119363870481151414687759782295436329844083915231183529425498881466510449589669201546066999809091257710240391859233759170938655459911843993406235694807672847347537027976722840155953131727426410488537778132201033479383361313296788701579703449807755555064406393868938187078669628924479160636994189750767231918687017089443652068527315737750637579726370876724431564823221615001796748544873265013571903750273544956087665461029694548922000009249759715804367826179479633599307871808897205673503831955442081609677835012110591308511066645201699526030736321145738484677308645038293211025308947843517325855963905986668592661789349844262240119787574194290484513530095935138567781248207292526542662800377217799252778726299728382256071595916416312748648367467704384506871014005154670687893692570733001189625519907279089545298589563503150275702554063333079101851181061411956276690072610964977967442665691013172382651043377681157873208341363829796818520210108213449268574397138924643556290506460016799518049758176187258185332018125844333955585029211253479766448829743325732340402417098227689358086931329448846551406394178756371385959150585666637888739976906031530326021665556883758485553066294245914491373662209774383793916027133885815169360197812232604853557945841595804432138793303251297429245947127323297650221523305975258006759596396744230554004408097880325621478802872671952908138998631544200548515219594137413914181029751371780803427014234033872052908317659059086895517676376195764729302649924183469062583654077637517293771126028940970014234414683201721451806959431412071421887940864981818351764145873934275018568870031814472836856140011322439061831861363312873644352644754138911089305337443425406140085575500934978161460470739659365431217726972690279445257983968613784207531907910881429151612960550456996225194450722272615908251408142110302167955231612521142231648119004551824618551073646031012854015785786719253646514129856793753761348499193526812266540540554294108716199407640009812006674759064593823651466381904061544616595600931470164698551765863332066234822741208588044721235421121062643917985977064128356734644656068738847638453755178345034251313916517771737632643839341818820382879687513267637041018115651559631306060079842318870328031591245956833102287681562068089349710169992975430364823407647134628854876941437817018199179494397276614193510561328625381572297335612548352486510256239858172534836721579913867584438517585014311211709380105970755517743521020332462357421841868184687624574973220943248657900766187055640963337069458797522041811602759955483454714899166421849299923020941113951680606242621912204533054272688836511326267352569758966406274274583716723023574657211550277235034596885464098586253898794184438996026612777745344696919765816757570968286293409274918510766088266128288310296284092605110611591028368910825375676619049974592591658362477414147380943030724454541598671639571880910418712938321858326014218206785913708700337070338080742948287927474783239017053027269920636741664509176926001914277490514685076663439917823562094337241248195130092221560407473642254534101427752761645011310547387594767098908293061837673191356060684418587596462790802314636004563473023505471749730220899845612693529444975709706775180959544328275040647056843532652078918706549445028918758761767334145328219214945360103214792367534078688852888691495321574705291300011758063973000289660416688184268703327833555896924887839997929985082636438122197797929290488923694624155679167513710059510274135950805864727909861956661437968788267390880711093281771745583255494501459869883691194195711563792271239571673808146425885700263563675649297076980454649061847927097656348607897433237370867691071473936271132340945287670424332046811870704388992690251861598993616040624625231963664509201743757749220651376304143221777067272640133664773878009766218904400206878355325322178738396076363055985145542683449337864006192787106004666878566292366220998321202652495819915944660787622723510141331770746745651424292069166497854955373721841062006605133448163169384949043548340307593196649897802721503663891204428790796532873373581140689787402251421910640699700370675482339290175475855300939887184646971044893453089194194524370519387662787828701774255016507711489530503395577505995441694664494269612707179014095610448882397750832988358590632151257951454785739922402563469154050386470229571573269961575441775277899289609046695009366344320305831839304626064883741944101991567151117854747920712910392736597518688719581182190596270468608295519685014314793789349396494848230309175781147143643224925132388972944960888475446843373723197828220343000575541360265330568916125724549362993300318864231328626290495018477927433184495016826081421524218650875458327821449964462301066307480388690626639149553445905890248732930181081356378776903601470126542404038669975150615378535711056885452587437406088503879569674629081957049638362767968054470919268688060262125020019189604152686207034624906692210967087083599549664128962355095673034290438728542916257096466229771379884965886692788900744583832560987907107607559174051811501583279119198422576590705124157490117358007021814736061445679871134485235466574914020841977514309417587852285585734521389279030456874307054708580148308436430665097569433097319352544642534674110344202036660591209346013254623328991631498915826691378197203604536786601720321672456753183350805765695527015915037448844360392887233287510052595105945431975513606876891211109368860101556129744371375169914130658585309572502367197830381750106960011826458477894787885599836119663694257973818094128549063575728979792464001787814685580030841175273932834969889002909554883689932945909606189970588876384027396062006200366717640512765339125793314234312251760796453513963182386681330693706324984285609980831298996836873592649605291193606841049152583671412873415915115767173453703087449048449887831352341746760783150653991182037774136112360183627362938263208187674573978599339414773193823651872911360479650983067116513855925752796290521786477030142819988708853088141144244058896487201569626070596510469613960050037926489445788678121079680663681038194731747726808833648179705017242642208317435736637809146893390256527281114736929075544843203101388941132868409477628047732117724270497349595036826770665336297628338789726360516614780448100511844220324003497772969580823380436193225910874925380369547044831682810030873794111110039559736176386644546884716687382024668240954206062294348643867347261642946360584786509577732088032230606831954354311580682450282346855541815654324962737140077287006395894176327986869414892100903983057016136857960718322062004253709281708361398394173115120043960188181875670950769965100502555952863166013144193243970915193665171255129074167930092972174357978401469172476433603637045716026810086081375487410572244571258422392091477348901872046818858437816479617916605804534446569142823355393898172682621874261606360661108078691571332795370179513867250257410722093547694551220763765573464157674381374287455989747845214482918789914925609080975147916298533803841148021853328274374206213967930885100511815600392301982747752366759590032004586089041646418208034443724415507265596407755398539152410926877193795467357242121783923113282109833535123341877384278034229442678536661869980874684494220788905282903826146751132249234098060877806461424877134364853679168886252549868889789585466765801807992558654185077314356388338448919467550873038595605986781887268896794845629405741838060188441724428163349178988500092582876888644614732648824210877732660920344754241397209375262486320419472062275752105587522278191339545836141455553540852709628582171401536763600929335565012587337209192411369477440672389067065479702078470746792881167359169976808466241496693173006441906492576775688899565719005518660653757696497499047090607664676390552322269573779867936566593806594434615353513235707439371635316967193402464102741375260506137114520345966400259919375903588356224701382761024490299929154353920436583128630426967561885797451302217419909692719447136747313772461784789545012366482336010769558601935000684664587202990624709819965509800676587654151069034742450388112672420368211697490729756729107511399539910570058498641137632663475938873600419200659754087618465012303699734655637246224788731778713453985943864903336485670333474704238735191241070470275877807529178829081009380822430817683954056754911843035429131991419371670334473586052162888122278467297337644714859391373576885926946131058132753054627866373509451500266610940452929169292747747199414768947533430028754195997038996751218560208921898023031947962624031142959986212140365975886918868281575414180147045867042537786075385823073199563478564998832491694057634354474021142863835254968170811052704586120986750677051240060175018524636764438632334435968612861679163364292237891947717660580320594580118119489214304984957147267020958029183267152636845413085035875966805300054454999079850759241095385869875276948081733844524956343556681484554915755414775167283290677074808301365554067885437654448046811258575270498225461209785027078270042745313458270325287862830214042259225888634394406202681851811125394488252758218110310086123636990469001162025329441863293010354587199068228982586213839113139934953634823684147433758783821548274284705327064825375096814195428143996208431899374646180057756986363385356043545160933889674659489155561614372282592686649457515038375123892707399192170043441130335376287089381041138097200631613412848326200704334700579450161755397830820624818032077673998665414254127792595406291030718431414866227096201008145360953995138960240958616061522231689367741699777255471602415075778545904612904569213264789435784120710289326459249321131435631271859207835603463562782338834614635173189565024971854541878838349550838821407785688711727659586922092772617033148099161898843946210595112080038066303789532416734110994983278761713621865000023942040646195203765004279597136142527016799653757574740235654419326803180073514719844683647332674200677231424503509603424733787175870904378968012614319929892148099355084478482950541946248026422814047791169509847229798343480810053273654128260604559959866798960345553822898979655025012835613182733107794233816013683170815788620975005046172388967038345539100165834392413440580779082706679952474509627071007483200996373783633701890139625305928332132067000264790189552795595390926352109243246176050310302046660964339105688437166101128869194027876246594461019124320208748365231151195578482157769973675489643701118556272225718989503698137579593389881673299571864436758853031403928822932273576293245310948061455397744420375316945994710888318348891484790230210273772062988617908871313253161008552914036125345874493288131214911367837061096635783318014462767929774397815333504325702946055500277678291399043778614330803961484621878664354688156426638511933153691904186336669918904039937822955191897335979884425176178161050021107991402672694601289640935236156587541285728783874104496202516167852741277095261169184147912879139875778601446714228338889847170698316388106951050711404546730421553972975618115615732029840662690737375783358161061681445479511627034117670097741230734158142345604936348288075581042378962465527318812032191878276085982046274278993261444805284523777800502236434511480383056970202807966849674417754852282240557960954705165086906216868790159241588775375465722453444107321490414698632043681677579030320529580157042915629585548362849280523353222682903672228232975900275868745207542307177140811673184298469129359158384996184389755496711634015239642075834459255124169329351601775237585288141085021867195270780320838452364438074125818480331694854574130098987121641851632952926140904694376567576988134003021193264640203859451489366807114387761267461578695999808124217068745580277895102718257965679348256300625420501909756698622480576899094755722380825017764485112584661942518298729661209456163902093381576964828318373842199615385807239494424748956301271248139548679523672047269490162895860613895826049438787662799286902868933594613369119058145047020385871342913109476901321777431063188618795562139832949200452880701260866532840758706844470267332133667069432348120832774189770290223369698757900619146722227310087953734284379677727606861103676862899183319758212912262804497842825536038023538172310792802160252892959392101647520521111296119073006951618093361874628345680683784598456429466742962159647807234725544218567791722143194268977096228925664350341049654275466613266524384502358810399350940566862582928314465930531482867021133225994344134524021987883320874403854784676636558394343742693668287747540842161898563234832565847508660716489616099132219380792447841283608475979478584798037246645972224242230622559503795508370687451766506589405732918435132119311436444042891926825879265843300736519185821283221478793378787495644695890574668337519846773846286331308255563540708955723031922607206970352190169609320289419872973905245490036609969968845972216692939919024192809041815333470357887545877167069576032285777406780944169566523143999179497943505004162895720092954662816368734289487676419600621727979016903285474264258736569112122039930146392361299178116969120533037935806227245081534880098408020413806824854117934010253426845440840557632942951441742132612700626855491710207507322648979241398243312105028661677131597690720553214013796753058708532346826612340910855743733375044906205165054643774456344065539405031577609142921002849918400987536255478786531878850332617077098559120993838564189046291238251727485893949790568477286388152484658901941982750746477093868340678284015315798161993365358742944931478704211853138888925858860834243555198787939599083927755390414733680105858044892605126302000298310098096988685809155665190846627481035642082655866348547550849716409239055702905927040249815841468377611356102327901652486089998912357228426004630872319289368298317917756349544111006479585156730987833469327584256440626772910032190034467498370218180368910498239465171377473478391646630103726541203632821694877729611103084458978703001508713589440368407601158873140316848852702269147833360802043929921913485027154845574469291494339395092232713170146320580519002644046494740377286627741057284727437724980291326001935630756210413105172888012514433401879103904876487386111423859868497127243715087111078158097488396588891650091500562134728121506827976480623482648883312799305312084907004145077604785884391260400770563443855621745204912944615757713399217588794839861253443675886287669252799021504808550901207168673441306680777293978720512839514325593739438060650766463000000196783925100522322390987250468739165500499628503134246722529612481409042067686815059963261713678311930079968920791151137022190174810439785607798753140520171386364004997003565292120231923395755198951445271699146279744985248161449611059167656061345703200675411475302668524820677979935555672052796807769909908092392697285702400684183447244836780493165798960091021512440226690908322857322556720744312166665826691762708981738710008612142040376877358544111763297580142499152420119892970094532555227968082929053591690439986927190549805763203091520084286104383572897857559269915870852893473639589711086207775652716313773413361645771953308582647093727461310910814206736460545905608297126850837360579657672416697342070732765387629779462960885039374855062209460571455500936179884321722040299611463146763344050782936678326938756647076580971525949965372374627964069258637771278434082490361561952649004166247645983438904720991076456875863069556070074107644882467463077793476918222382307883755054595832684593624176472645413814107110229331261379478227306049455630287669130774158576080198902929711385123796858387862381409840520792431200170354921369859161584272045262755514828562608845485154136202570009139656846569900283171666288516994920004092359273746322235729419663388730006943414987694522819219960130211293021774740075347051444257241295613722145646486764835885312814770089119346010334428494061899710748163592936197912793943901569404709501223914608622708431295680112467665631170279189291078134471123482164766421146310374366527902720970438721121925742774429482640021681575350647948563337241386614059732515120038004136854758435760816368762767480436423138033374374522763292190903711999223796430708350804316485569081238847320770319432873092743288839481391795815553626706860185141588538580326329429012576327766603107749756066147231655810246768718073460532520875208968207213400615870437064134278833380037537803985896558838099541713239199765080526549768129229154581081423021472670413843512362627100263032737504250683612309375491884894580910654940256848564482304147039208767515596568354219805809945926978704072711106412764186937245835062602692608767008897541277678065963462790315298391348860237297324554931672549399935101783743696060493679954410994627927833765813661229998810867588847755201057928749345281151064145572137524612506415449646091140092458822353503875403529249048366457428110480910610299394849795065509251975204516787749462384753049130885981275675692633316507951268423045012667232417030384116914462686521987150790121265114958293762184414909278489019844616475299756584446610079774583225896942081021159978307558916031150741013710270134051353418329549353210809191183115728527229408078578307874454014097148853595264804752416155147930049755654897003808609179775989652047755382172955402411578948608783029630830042318187070752157619860156762681041577741600756069053744479455899160880350515519955509031262208050465490672225414445894654991004802831603532329675273204368888301061675226379377443527927956263452528548106484466447436853236315027917675093846290253028191040208853236985976792515612953253065569460445356714121004578517128068204893602681817294234348638434529882700643203957232679473565702658796213979984295025077993601774563468461225598193600512186093911795049649464982311001061369302094563859843757063547132555320347868069881336206802185852193051830331467990777625005389194770858386961470496559592746136633212438777045071475489103285342354333931703516380532020719319688715558117398647627663074034379473830391779847549306620536618346325600128924817819641753183898732099198472948039924992263111910880670921386759745740410472981941687278780152021527006405353549686110227072013893822687403019666576107240623843081590046301533505847387138598875424049674389743327704900470003762516832361931014438778570300229515972952518260338721721637068487155198177369522505430642028821095299150832610473907539154043346937787837528489739798905369550189513089387945471860806445773212222449876575298281019530759379307483479740404905472390413778954994372034320613726409122561868679913797704076187794375519488145167764654832843002810318857806622400305619759925504671217555268994827040752707240284493096812442454880390785125018774016848427737601908057411518165344128840038398098771533083138352232232211093831695409236128819054881774877472900019451861421954174647571275069218117393031989348410452959591316011205219240479331649985221444342963008737079985456549256343643541649677375338988239363769667885041139628978591439409222697717989436789012859520170644529490524004266905332786521166545170530021703831196813210810337655815565535592612874834831622668771746303579498896415229206414695022426086752267237816270903598771710975704049228415457663762960294531842740745361570595428220855221953159561962308130199410835409889204852879634742606829546503004911541591326486857489714827329297809646675102200639517435424721257144133361279225502145299702166881069331096186379544131003416119634718056828816780566408337011440780271779512612741024642025868596408064060203404325537852720624209931811003750225205422252398717060885280969815227811047514392425250177380867046275702068850189138409948088103356016544832172082778129229802191891973908171574390730569543152160622033950565662092706478509551303827555501406485392855622772436643193185442758857151206478714154133364431933676316817564206597496885941089835609114495900468613822534539396025693555444017541006192979932794540778834800186316399088570474372969638391103201401071503165602800662081853517099244863748824574736910948084689426360743373337018082187386824250702253229240162549663560883971060240066231550914077501459841470605938529803193910847529573922542541534391565529207380390905742855235330742150251968822263793550763866476732173549472402524902529041844858881566608586978959213278616801185721966981385256612954175963791444222625932283164103018252046066451691516298383726111604633053638807007732018791984053031392704244097808152105194640944894636527244602410939106906183518701795074911287557569606521591662445854736143299020688125304548121185869424302256734876208301026220823576112516081670561466392785588643498710574190471510023177415784689028071992540000651744894864985636169274594275263251449321337978652972445328643164480599169583694379717197609807451098425995679132906576977708751587915048588825473379553924176967475497549944792298767377411808685651936207409418803823668492953351051920027202933587094038041029012528094388058130596421948753870330511786388995953077156335798380072579335878436562109471072487398198796522622849026336641550161670345292292613752924995248269671466564436996528189499533808841085567147577659634832462073458417714092101604127211160044663079420602106339975092809712225160597819960961939271088993372314258422383764070642081916433816772963046773323866725997720993182797526749632315317129131972020748975781251221253509775149998276335974837046542818711022259681720794436804399802921589796388204876359794449105675127213368124199281046024834972326305555302571087691309050939036226425174682664457635679903570057965500084868113050198733206321383020293283154662760916663196766184600284366539375936015829470447474241537455002745888325086018688630065292808618681887194782382145547332471684003626344858773675044564261451632697059890177527629932966388539934827800606287033160658897114636769908235907386267134877328891361331653713565328054556233797880975320242879512038088649988690006599464118827334277230422813930096033547521864960491086237609140170933212800815484900396781259944096089097781328450737338782616783198558450796032422123111899678144303024213774636884239705583453796814832259233604299462078096863603803927662923799578472359998302497916216445167430227943511418034294076068422911569279940632516651889478084957091188343777709009012764971113124324360723916866542040459343400813065498501977798852986656409675429999003897140748305139530216405320505555363343069747612526552445937580751260561799830221330949070316177402799011536922850032438098330250177877355942494514340537413154654364870101685917838701565487278044828509727523422040289242692338416430966590162280131400172715291568268694231712044436160938920097760870277563009409648166918081729518702519032097272851975007687325062099113580240217543900733780160160046416736030118306250624432287880799332116798743320842052381178920230682877994611495983848602904912551729340971122501414354257354433723637386645127859971544491975023905073578932901526507171181737230610717638500389362824120656589834111282516404159949581598697643967417006735981011554642361111696623803508948339497409148151621706884135120279963840108694832951486417110239007710683860692863952414430161290020924164513470327611863300936773449992829022103769844343870489706574967393509667724820242103985252334729865313381241507192148602927871793243573776668979746033717849778941744595069558653353253607663113631409128267639791040339151417898788956675197111719784623663401406110598579271865610626797884710140769101317665451924865325510003020292753068432694056216378165514223523349798255433203069464981207501461098966920737553946140796784480325751370598165586306723367584545043134587762788459965903776983803121087727127334184643156631351966286317857714114556852678077071239677105100793880703413063610700500458451505463670074986611016634688432301350020717299527358937635094906180232876206756161209360039373659877175421046404040765699912280870050993883999538001631227351169332574163274544240246810914452627889557022677596954774345438322194361675155252768595194248511718255882755502440319829982440168225727727431911658439202922361855397749943953389488292434008331123696472134861763428801880544302435691162550039583760079517006370978124861828899547212811449643090206766113338642062753651906156724471685787681404725251519434305269074134839015369477793366506033075762245451461842636928219591208519476967367873266622724308253512145400980469682692789667371563641962665498322644200101235050868605148506536087819075803798766102785199332235611724042630311661157361058868146201781387935545176849156680043957483049368283281787778628353199431929213354042051320241823709977897179595297302005203038870057290175610870134095294646419917935568989358075454104302042961671143147125942946235945908662860388331877475619953366469573732516640738314167246993980760016736088290343533482649495156737814585080021445073484997939028016269963677351150973445632931274524337815389600959959724877832057961213385519514667644117685776190182071971756204119460885746317078804886844718288940520705350272548946192530838726430895448264574909429688293250018697275612487126928256713394278056140466211110367055877704468500238344243800632416625937061156440366467202813059756301680415209080980157373262280929723457517654887529415372635645759929325556947743666444469018130252621199264577361600432771861509715165347934702499557786237931455267740942410614830805634668718106842240936100033021163714537010876434048693833881751805675048697836860636670713352222254915884969481344709119685886200231951904831656256484922543083191264964161878018548585692860708496229291672218622163210356189123602092649710801764638951792214120994718677923701181940876571458704646404106010977709158978506951879740796551331964916004105986670435865564079190031520645997862297220146077164708513230254843360558492353614405714022241488282327059995049889957292190487127603133893411753529865523975962318559162249503911749165236625632472616288364778668097315855670486714947471848622770925513817522835858569070100234923776425377241926787925910598629513316747969520044785503852467531564608974188659790430624608985539731982795432859141345460946545687505265237127295616252101922650389139611069625731064161957171536510839559252256692955242456286225770103143169038042414895329670217680929685986500279570792270205567212380009860303383036276466269104754122329787450849272140852278037403996287100847236929194259720506020397720806786218830208852276716981599606685829186073130737361534310588396650776266462686053598471492319545625070140361112362449636665861093862974999253071482228598033505065757233847331149391146829331599484004221795101525406316665184613015184331481982967981242204810758514935073947776641916816037263108558133387687530738075414641183834244404104973299109774993742440514864472932187966305698686514104726938560044941640979845619244584285920950260304262142130882839320771644761437294005164494646335392912174235386778837235907579337822097537027418604214756011220848940585766668096848436020489260251431293955723575418604875743950349670708758427950647090350191565237562788632220010093011904074009111391926354126628770908865068514362261149037433146182986416662473026034602810188330851864737453706101088770502357092865912856106890920460766085353685033269825492848110389924803756340854437555988959663169606340138922483871408286436752801148140469027821001462141423487554062354634797994509993032130058175360021209857962642760751368366199083251586599755077872734148295110180046888505381419738134464396404456670771908360851871878921191568692864946958704742747178285525930406572084863299832095122583252492411821550714431000706095978915395768379341755384610559803866727487701420482010070468076197982149308113163314845977171222045610621478132035989157288518670524931838785504126801342174334745990213210960218564021033273576260788426261319088415479863130413577040861204083007302566906531388152375381395138634976649107936215582414742409912463504378634061873826597869509436843256902106651413880672843797171784592319912104793323822585769414022531888728200487372205207151607926456003326125101012996052697999385501825217010165888486187508971608465779881617100027761197327768720741367821951520931642934169273489607238039980707140678962325362148524200053214013530666337535619663163423592064708740386894721022976395884953524817254581037233560385434923000462748696158580195374858646329381784607549486462518205162948613194129286126399783874009671445752851207781940596808868373637682902641761248488529760571997406286405715041801798366269762458317790134376641097845432526759354059493632513557840167430744497754403518559035205860193269435764739053317929405382010126886205955819818366322657218046227021797426031490940389215023611398787399658928544310719861603695334786959797803827936522272868831290818930220410666902025445148234357128914536380013361332398720810190642876950475731966850775578732257830904389398017147918252843132025985388826871726699720498689171924316181331212656471954680518777724477098746719655019454830131919039943089152236654652660700422437950189548638447375692209513423475715000586325153737676410804753316002632064890530226141566679909521455771388285034572387205937889996215939163386462235959340040062610023657187288871091719548290428873970239195778936402336911468363667518422291368635922202044329072475737947932918659157585366315549207317745904514087338785153988956509725003510655329037599651225135111220417151096491075579876265116822463750102583445297169643975985592122840089423625431110679360890560654960431327261137892718564699604297803102761940093472625789096948301722747723554521138186127521062001958368078215415545461971668942457028342891492363898023311994300874756491913667211308219560564360321821277167697878601248352348807069299295257194536500841410973515461835412409325673541208932521301427258519393240630139618770829173277312414380436596035423340802022214048476864141618382077163689629597689209687561055080552997775616492184600827813703091609577288030814154777438423198273623937715460672915791061495452069283922750091566360801938024237885989947830228700435751942513129611265722884540262147807608747800665570259679451211051492207098811256342957949680517476995178349232562465537019032584731965595373129962329967715298135875169164483862160545138678635026531107052456467144509260471512409431780140030690464098213019811101392134009680577368872731058807624116485478211785554079667449920567189340016320596982459633512225721977305532181089301256706522123979619325674715988071735096633027865606088111913077384841836361423300511220173532483585729622374081134573135098450590937388742462374997303984666368411035186918520336865118023712584712044643859064128235920774059522796165978816748593496198549999347424782363655085188571116315751557920964236006600993801680277870143024657974394069540889722317970973025447275506361658038121441342881547215512701486380111361457948249553483002559206801917111683768828114015729960196318945538329750674087495333445213482602191461672267754174339140410168286373625170656609053322763195492919792603868150864106984717841926186535575115198824853694538241133332398050832665782747946314599644731436335614779470213780871320761513168068476607474115540773965327960200237827815253362350911042892413397943428664178132176108903324289154858832597726609212924308236473916793860841789666294010221444209317043505428883305140632352914737402980401418072112132882099987631888341210311452064321702755706510302075764688900497898131514345023111144925260034144612858960467004417568139178249979513776693067632152888940844603642154908904980857018900925192109844816518228883782965625045466930614096197102854649352092245902346806965068059377473551756822241352840824352308824158839627927486750074799900368510607827938197306271122935480566513020095357034031518170130340278310155423615452069109707319597038263385425383773381465264129356351443316163072459899504318031011096514880775326590332747001161133425539605070867905779406188736512700113210171156324468146346523650344575364406308311732983329599146346280610536555022071343093581191871129995038578866391488706971124574600142701975570804587852518130213902643440352507780230157754940115583179030417684438069805152068209838628134246883221700047132669639953276066864159820254015670837781470604752594621477573433651131147579801822954856385404794516405331359135015755277233001406010630677626754377776527590099781558514444886044912283255319543317419547100576079881508031409050291749958686823359534193359512389635964198341365886169727123060941565286272357969412296739206154943353412119137868634930627734593488923058475229231715121646604788659224827614463291136316676142843478853212861899404912995725086816017290779198663485958746191848362107774003239093984976025873740603107383435358785723100753619521326686988658482190733773448637735999980704826920316642506460209601524585338043646795195600365890844541208433204265834984775876519670354849608943340071396869282437932740771737842838195018784656673907355597798960405498160929948489675772274322056483074461981920719086052619369629501250371883614964364912997958732990447643205446726668508212225420826105368817579089617292603639948491884085973743635110533730618657605452492602692000335001716259167844172625278594267714744312575972055186643229500981341617227814365328664943304331884514433195140744837188505490551312157469352477092072825196619199482092124957640299560535207385808325962064651046943608240271922395885194602347447342691204131465819882484433238576396567147915616791120438228214440175608647223801791956680049148589024340970650200252392056841872798685896489557335090935423382934934294515179432248807594755799226685509779385656241900343464384013079554040023793913750851923419288205959416510667009182482750004941556993329932494333068900861495170897340232106207866068026201206153813883814398777115071652910335250781123289268907890314106956074790940491031086352779760976133501695623390504769599318661718415978534448361347187772916204119195581634706299081563267864054748080182730632867875746840331125579466414324681996128712013617077309820355642418044235054094160099605257772486542675283891369097185624824260109393088508585398702872991229279198269208182257992601043494965405659410674731450759812767554829638263220028853154173879612000046601331979307049133239568822312420583139556716007370982119333602539592178225811575551391456260336708985126735175111830604099812836592379063409446120283911567085648743109762618654442763835338352286172409466564572592471640591096890159485067874153038001567520549583989110013737902451368866649466048529033770096891288458671229532505365624049283784858250872632214284162970386894314723216756778711150424671738612177737658543957590797257701119080637626396334339365904755974954402722920842021830286448381892022229849569344109822260328480398703715487061626953828226260539380581436462947655214744671797209614723282861138592984111112290187256209641891983039034546878544587139719707815339030815431488532153272804928759990845930785757466435254493876434909824197575450889781149302675702066972184433455345848791765929043904678839468154957941736503816151792614452318226871664547667324299066269470638032742314439869009922403435245597429852131130496256377477219316412862887603658369142007748935144845354499544512856456476668647044948354624809214174753458763120703507723880880395759223979373523041228313603723308181457520181061145110289353393223961828320251864373309345570980294387521513865507369229409255975579574711171879293283230095967705835803739307038637357965011144916153639478855659642027381573582851192312954157720810027079512843336261633240216574389520203212214049692555116977029293677157682234731907503147703477763627414538509803096981236442277750158726889304904423967442258491881715987666840358897057464428939649295286226081357785623174858160553161975700996835983772746264369181329987648804077167113864355890987803238133822899049651051696471356009254496336359919377569922150946089500264882528440470235050018349851830749313510742027190526057065310486745108989262469139168319710238784444984231086913223553770521999202841670244614875021035975816337150146603117859623091241985714764834155123806283841019616622868992323509613636323802627624877486009435642191110356519805315165075491614279665945338544075442839628224622988276472298078648299833978081022940803144665836199634055177351379110610414344023035435234123901065947703210123720982570907758773129482804757752502656280086456654056529506496227026065547094529519524672466571776687309963709221652494952358876435400144893386665537025078280117936277200830915470213714281414865747256539085813308900978063931969807413156777757377484677765723285986457162020004786973042047181989580212648553275312050877207306306580683708835566921327294752778965938699853842922955292856611659791484182684673945646525425520765108980268620781661853662108705843155191138595068569587081526577564780465633142405291382185729518913662379610288094621220037902599375509706308150119855978297107945918512249968749188262893838419307507190678849549579856570139919065148009881299167861253657559546567986523346294034778951510160153797005961997140350041036968074007116939897090310933808685017962917240672832357053715412657836772732390112552227697426065292021406388065989702989687301902819950146403251275728612488255019780756199016392113999088349491274527260203334893035836843294400650963862794167662903514572260712735829997228920736950968289021150398856601009206935884549311560891852054368438978656835061406395750998047127786136040885831150557821594456485282378475129592914578701669966449590977985835883949252159258776265603294354541066411505210914740578650607572032056059676023891245770668039479379475389757910438131739867252938539819764427327938695615845844624083797045489329722738164468964106815381099798062483665445039833144524219878030579632562930046283670803574987005922345976536700072135780969887499577397691180754414739735355485482711105072812931433859541609102038667749596608670770203883495494598883956614408556945261695774110066124252962448206322239361772980001509291838738497685783807282571870720992536858444247083083801970696466639753650820606042239988967537366794162682922686147355550781189526906275092822824643229007700056838343311069107519369530185798809276994726586428002806974600746814869079833514709868597521698671839643060239012435210409529850883370133640143371360284116014265622201970091499360519073207615920069926955275023056010288566718664478614759365398168802157170797230635955569938966457088965912433955609164243369390515132327932751901996506809945175187734093948999197686355987202563756289042446281822131854991315369111432555231695731013008714579260161350014391595945175824132110522927058009401369384925531470891792288355710520422673135783579121536954464413417715506610259927155009845227093568057781307288091706672048269096496449899402077461291897640489800134737243417351427109419257868632622000713257726565496520288852099197332536798149529529526966394111375705025739607428050304358356439267464370750703129120338645080694437875490980443422784077925495579477728202445512771498160507325263344159312696088363066175649276899421819661129838735670880272199408203417604247903038858360782415254668225241714861782479130529413364769068096567911625635344957519246553528558537941919429494039335030414674036228059166058257492540726388473530770789050806901795391629191903754882800068564575024409672562375628771202546459323301038868343180220451823729483920298626412120829294494556962949112435162820275330447738112588095340580715948315449797682630361574001809131726929213873346519180873076010985569671135792112885207169536713687821973190680797725012717559186149073739282632227609885032534895471075569970650823519785376877685391195588014646480451193472929002977980908493386203032038398156308779053639907011463364811938380305173703611058138902159458495538104890874691183262896271275472580896673669629936868192295391225597929174870179050286622575470907429338265859443349340469387844789902712169220925121997249709666532301766609212300743615203692928353531390937176492989756856313008056373374246622560876057635237440741940317854942308022385493894396202883858584820083593232471148283297415143260971757336857668159700058775335500592653765535900237296995721277866095952863498836809663695828343023066090401104120295216893873581388934622827429881766216136292015281805967648645209306286960304379044434819553849148780668216107017164456311884746322687779933248267475309298759130832866708603935219133156340271872487074789318455572046637261553364079649792317594030604128177173700293918694808586294640899539608782332234912800310773981377819396570948087405233876789994385995369873163422799921870246272695910547889832715482540967897748966893734153487173442446779763831018370500756196178089638414687738214328162858100851105887926233377043018031116168743368394083261305781577419554069542099674331457271287563038235174229040567964267541106689388415376830371710433746477273288204467994986985405695475676948344865131327371633169041514253020884986763674256828226025111131591046527856414415759230513413469465211966335705517099007126833446890702071278601229497582796957512388471557430733385421096797550879561925547538419505157701039080076110330223896669346547575858294628153030905362589100633947097302459368873283043015309070076749140489586805952916463220068878286661546648972836028514317021812880502208381752533676626859019168383966010751608759377516249024459415827377913911377146396940942288333097921660789829860553542052464937090876060656667145554512678591254069781515705024937270063446797914694935096554243103494997339578040891858647086747365029974890332471116762878950613810752478638383621588716570884392669799807569824021610197179115561671658927545647048035422088775503496064019032943156350213832631160710057166472776657779992528521887085431416256484288172699380077087450287452985275484810087257488419869359699117508864618353921789744211581424983364743825279404674937477711163860814386515138664243179095165686410145494286704991550943550900400559690526007119195945127266165549506275674242476678552931019152347054205431132145138251981247151712630505978068726111309762722702948769416752884960542679255235606257311687693182520979556043957223793181194327491539028592769386438445094885826858372383696496561481280972121966788613186366929652441639098349638213414294190978345487106116304594251204810565530158000695324586624312666519222042858228147923005546721444492150206493771590676296560774492757857769977963633605623734149056181485842430045900804463500458195952447846863943009288054229111125970034507057501578956592963145986221462817448149633602109734510604140762241743592306152200774562813256262770384757510253454628218503708425241648797642906848843365249142573086504998032740205208984128721282835371511836130236710059966204893698814078939176157819312701999974898929981133613032912728897529705449250715462895976167861205620013242533289634247609219094065857267090617775881365087370465167024742558422933875330086481575087980737083855175166260810314370901472739617298836166896154826099145802277508443391893719282225835765276735288547552223861246799312567715916448221551323702105010333257580456479697737918763943164916496416648292683201715755561703508374791536571872782115220455278251238928868747666731724817530402583273914692478380282732393188870476680556180365027326649326307779737841706307081249675414223196722585350924287226894381562171155174967095194095100147808061264586158104164295740558154410576353742252828397287246057660516851132343449109496202903777475608710839252776621235021758067108036036046626133777098127042440286487681562849074394397741404549486544146931811553494626819406658217546919832823329433156454312768800193764394704452147858490743488628567625597374164216364241752534972308493622724567636586295442657430503048395824231216042745435260641458134576101605311692684464498140823405549116594301624920992962813557252257711873488919722483758701834914401119567301184128707914451312292967552076084212740550338600379286224993504856824242293756213353060727961593916278155062367437012282371363217596961335614214919627746063630001571326374739709926825384625958570198595232650901889518751798649229426872620520150645061810412108560454097610617130481696856138440779457132936917564211238012370978011590399152426150014910499642557254225470321954169081306597040067536492507715276641316336676950004267176429832113657839121575543322199486912983828522449912149271279199221915540038093670035670431974720248762309950436870519262902764315169088869505388604444412757623190893830977981516118296480324296046165261249634578007041296294011365349764401253767019792254511382427024812077090529871372028264353072344063668370134297485193902432666898141885825128468025888718293855322025515906356590122414620972394435105412965579076558355057878079346246241515769337438239524259017088593826385422271635963843953756460048780411310312925870679474148457499824408561770368266966304189404710801960767236204904661917157674493176915696030896860011227841827880959528356674024999645157315532705993214096434783356621265233581263952635112915468515757642072877054447155395321922915990770839370235096176812667741878474945787937776500944248691404473997009058146773579952124451627912359344943049918509856440797101829715566805088964715598178987864560990814764480523597698539613759269984318347340872905600261622202464523327103151289562856363508752171228966060300098491149067580543161662423152491206564474653309974661183102870143724976292079956066413411651682344951241062840835092276377347650464558923006920796475642262218728131519889744060640883805421294930864698865218650503616312783397019046681562180171382845081312095222179740793278935829830884300635567115925599029435302134477795147515645778573962037448328875626804296817329808180946666011640158908106098850441377673168005303327702575304165711004932316178584764969196649147793661296806111890822243242032271166053138186829094480262605507548085239061688564864728787713682645144662192674272675551051231301131359413536453897931256967274883498962776803691119377539369930870374034316181876107706642250304183563007506124017224830466196567015203141949699267179863756295601583327889620996503245376217699907508776771024367902005018105092433393974044100505909167768404882849355520732607242908412630495747951512988311120896284827872254999857642710171891527214657412834869287901090553343063607545283756952769443669051813676526418179039429926196399450675821645912725033498900262432794461782645620222652666518290107614856056821830832417430858267741560238738164369001236455430356978236747220459820477128225971457396258436891787623879639195106585489496917054403426056199859475433773813515964062380740118694657346106251524366147388865328026734061631234412257566312996488625842963739604266343670425912890220884147328199292540828471155202924648719850645229571296095732761665423252014492878468215640418704226512121506909790257495948008745560475888635949902854893143484810804670085964138156598324009133381976891456457022704961993110089374584945581137743148770464575510696485243595490604826470850498825087966246511021915573332427849676236760153766064076917094078063475491999750813756206449521538495225440571352886460656255822358439105209560698266747110684623119758386681012891254373751704841771118711486896779922502375764409528016716317972865677828496130608848924436915343146768538822370601953229994745153645448993908609466039688750283469885129963713480372708533285603874528396479732455176423028750012312305778952024157168100635876124386960208565873515193557701449014670754168137609608825545277248797318157248677491463929692981345187324346218035231434368666153343031087867895206155336313201816346525394189012603758443395995928783492611184544826438562926592487217052272957684846457928260028818952700969886601569617154521587226105903998772170218025249228311699605194266535546381574045206219029749184366493779832599364890801927876689142994110583411707163250984079698192629779278960335922134902968090308528013639168083065023408950557174076543683741765174031392673129013155207663927745529499712886249614897165877704330862083127578832042205425332810779470601154075747863705331105313009052325202707140084497465822279767878384344944019630125108992465494208614105693418386174034779836217781700901764290337410272133580871693182563812168124392644151271348335535373353100239922363186794345051702284542755168776197113703541629164634633492169527126710288244116750017549701672539090759478578623859031193250924699794651596010534708910335688319306954703349675994965802716967121228626850869450859575062210421924505370699086120211584356108223755783982805705367140789659375185677117737621161689985377656487592562791434249445598805878875634805060001401188778539647509566982680890660000500685497318989535594210039463997517832287684007339775736499066725250646103976431291094309669679374344070723858336695112975031597753764416198175629812370373805251961866021930365587827165511309992193793536572022175062777533826037000789566585880373101603693118005630441180185450967439727322411303499063278312779565870812156182970491110313107871736271112349784206105667522265254501177206305637862538344610862048183656574107973132091514936503329543706832224577160722104597185099125463019593665039174570878237466494169800124807783620857452588934580189708401858513316242168250180385103024247861995787681615406580765878178972369641445449237906579582658625696634093287096693043082557442545564063879702742323449014244501014031542530084162025371055661636726752389744953446534852556795049210023666696070792277583905778588008509124419070615161470917266469572477481273177891016257510867332800267736710442692064886343913536852837076971310409960811947698867568505367176574124196897768107535937747181708383449619392491249783347769302168204945796785905353954708475562160590987243587639350776491036367160078220840544395109322261777623148606377428813593084199669518769496898917766104366504229111793304033179813965012167128965568415999019837253349456153083067057351562049719141776431767479748991860899822936524148060257653404868079665123010266086807333674825746932365098475345485214090721444802686443109087538933894450426513685187484863865022683197614262664757139798560761144444392340876714111241137526071285801623857731666410127854866722913265840368542084911218418312059795470675426172097891445686161735267647315555952080478839461691364084578483297933746092562063884428798450600022001387381635626120798198053641185378122562382776829530504191239484209044398844076965662467997540311420165815239872588549122781132349149899767560281444395832658714975913948969296475493418188640093119341384394298840147958302800860237441433192362785615370251877443070582534255281200562293947738987795493023065002632763367334993601048513680376102876811542152673684870465379226118990790302387323071208958349500220423795730412153134539610509547699328652188107054270071763927148661073672939054353723060670306198423508920507219540818448981250240060575048701308877609564162889602092947272944376852346878024680139515679408957920212079059051711899905382740282302281817742556832193526173596356560520535222087489467269146449996255898215172179138426327310915090542849880887472475358737998418882349839371113372524279142302043914660329741360391646903502700815702454731752435100620210295312027565124574867011542172539122256568410896139383095003488500725008528749086625109250116972264057490294484575286669955715137119211662338084590215485828483313115184479933522056043429263103331874084776715955955282540072386819330456240784108309858730722470260519840110636069816723067805372514241189071429365699931979748987317957212313385218314211743545781269165058326724859692142572470413217067207800733373449832125103124125088618732121745850267293359322218142193565149826888767762277150463327021750262442940479994853880930374195198691304280800534448013192684841833982669682679976742906751252864237537707707079153305502784839382696589686747203260727367090803883346685085729210379851639270290118137639527220373058077683032750847529590425610500535504278064792737252845541728208897516409700312863358218699339334242671077918617281928617725103243688545481152027723052534428805351419539691112430235531890520765233165456440433653713193737980526637135315900593343362505533746237871608458019477531187202091030564786507869572459589590967493786260566413920523875910228759701623567488096349454399976455659772311747055262608760078365476670416884392618496435626794938491785233593508550366436500505145533322843739233850872569905211765578891819634945772623377770185370771121966086713955768539158705829231709989545763619590137132359118735623057429443913802447891615203919437958561124246403343992049103410710207298322886434186205908459901045478398619545364343974174225839771016284717689805339206131542162141942840766638281765798093227733027767401023565027247873351275423820864405769995243839123492068580170202728275391925485294485323704359140657399973247055562310208473932663450061368231224879785342537453944172855932298923964046424317931488569128467176625490871769896137113109145795052402557611459513952604722237030821439783594957826099200723538559434253910855197374991182185913660853247505817620917428640819187019822947160549784865846823064224446332978679628090650852240750463567958191650750082604136018269514857124621073868895706288121376329980265086971661786095545808993160360859624823257526964650011261826914835336554941458484929306439199740823887981072582308961321131424766284579063947955027323957730383469247871038821619335808752960715987853795882069857160340068035971312895187456060960166882826577842319822886149583370649853374723663131905823621923957520721055246153927303408333585870720593227607768171509055436933767738899980891005779351736625645298960650885004798340114863456129823900161161859227347128669539552077111122188311484867613200776133375508833008792262280285702795527705995840324232739108857824115077405114905138204379788906666008259681197722702556215544454319551785634020429988767894946103844067489806419064261272224718946914625883032944401999892455505180363466576337465378087463520660230389406757359225547295792141622732810411670249174146958768842527990698734430481891791796536119839665079182386856258117934635661502481030708982246621205987861667683111819213529926532997696029065754880921354382399122727059240568722001183484889942892045947875020485697394773623243773789857081298772578391976778112316581972990227361444140885579273186591046851863898899316155252003065178773540298701463397239102722938179905465896968897041790463950396878429521672067462965501160730557812579811342456887897517826623258061125183795521164419677610109151393189405074551854728291028166884660601676665165835846203794014713204647191788772467816009371490039894129370638885045188278219304044205988963536749368684784082728573894377378014572617539287123468999909778481593516090155594556092549538177639460467672468477128123548507084308749968633158371578512912028731576269563165924120433629279228783037411849765022972320032915172097958566515913601197337523133508445832523276725472272523958159249012675683318319395743979930392298340191831406033672504854684954376287584847928529152321246104130964101655633325763140826741916567442098018113310526499739520568368523791884064334479238033553705057609892336329920757557261040163995438771387232711184294934241450539284418055469553730295140720702720232537820018911785737314515247300406700615812606762179802725263020754919178302546982488121460088332217152550958310427759213543196890751269002035895814914808740474851313967422824584958485136418837446532903883818261391448524227892300447809904731283698439918773301458078547093947156407593109188932698208182859318518560985551331738939472319110264167299912748725009992853403593703399131683530215644625819539587276557686350187653701325600691501592517512954649973432945234138320122205064854464870017609094067893979067746353225059789765868260234879790767408082715934153880905625208050230525497561947820689872853910457765987733999687309441368701565205054669188831483039908493303087195122380311461920756010939613000775496175045792813468552646519161828517733229486216762501308674749492526544251021873077041842165845817169081572890673293377542149967546746850454152810969155840552142981622668121593577746788475974264296998269600118569824962954568117416937043274017769272204502226860983564311006305287870162181995457710669762747557556355505790128430125939099448061702332091734452021569641805537416197889355550163907085219219238469600200827325496532602427033206795764176595664213062417145591832895422220050542214343120462812506252351769143874781613850548205165979148021311335861563810181358193352467937716351539164985058957656381259329321395226654567372568847088793660108733253934945051314931169240293412617441473017683084202235966851223189327955582416315551611307365776706294758895007251015547660581994667191727925540511896486810070364771679867816202549082851709326449725467715175634017155323040811472634731193781892149200114129355791796174047380511419560815162873351034110126868402212422256643789718774695240508492851256848974190160992850299395957615209421631986830295617636763368603716547772565011855801146022355319549863583878592389127782242461409077180149714071097612224011925491936282746288909388070829531149815767972255494569368729837085166505806672821325261351741469766594215919662421787631450580937483110630266743066890204170500864033652622671390938840169428411237286912037011668718332679927871763691136790360377651511280583656550071255617007434119749939918085775292335569710931137971001168608819337417904602616997756151270497238058184890766727204659357969880422941734871225175219239377421143123917032483461816028039845175245722271779647710393612773398822624550374750385721525664182816368528912124895507629033670472977196099102765533080810656978956645392697609052569553944995425894200536069105401136685419723288082884104821659828837589403812689622750437936041868117769786022674827099123022091305329169617855121927426446218221049989526498696648170658552413781191905313166942566999918810617346056201291768544121881156117662719256599582230105372647830914248286837640702119874190273610902690788732944990471242537886530209593609003355376798768161288401667748672891775949264865436146904982189650979581243496035847458450541464996134727513477866739806282320492097292401877914837218582758099381553672480968623736453466877174535019361289656852898436377229138767319684935544721597096047012729873826237742934831755631728436355437276284183104475056959168772449702757997472419995539273233138710860242775597831920962490640461473365177893531945966958311125084671330596393267926999058262333706347530794976523223195057167790370454991097021763547927576229914909291938397771087290646554982997180016639171521599234565702484284568837073536877484302773522652957224690103328519826376504171288455073418250759173686151727854019822095411611875356946836517328591252833874241195281199896966022605489711537432587998268903623021886595136607921216951113288194152257265686458896176486881612473196701193060814229168286564786309191791757425055033024307834157904363776161885311998367007995774887902479618866036065887623915365176514340206979397030851952967656531827537013977546114948658311626597581025285927510558278269985391617481456505511257547028182475132787236331938359714651635575874882334276259799912839291770258849180960032829595575946367451427279757678717502031726339168681659065952109157681973255423445019942032583420025828241683537707477634842953448197121179694544119155507317473055105841682725247973387989813660638297247264558406279774839391665914998015418527662219771202306272548709099307619701423685288689741524028670625404375695699589132077714159240584480440152520655954708043118960840625813430874339195045094200765245905852197467929872665252546164480862395895702363735837507768698642891311181261843336104379577444225586964435627838370727305737885444756498291585874384096817563573303953190180612116979266655681986134308600958161751615158760197901157791517138933934663901528005576965188549532608032257307632639628982746174895500208413727259498332438003082834411486658142123200004602667597076938487802084720315904385288632362080576026525002500522898507343370175338608835270956839779687071873496901936197386915174758016989656584636315845477580297853561577411444601015045408373770990856824006540218227180793070179102113312869715776936629876212443312832834989299751292932693690210555248550978331584708986615605504697716257808555401435966968447870970611955337141008889245140117408725854648813492055324487096225233811362633360886483810997181476285945243750123994590035114949881359750705360291249325707810543569822950415765267600213139155007352455045919625537517751101495229407316123666280721817570118300959127692672846761447003141009397320944073459369382074201340744923248248755735193483526788279756710194411592416160033593281388149071776032768286923351332237538698388379667481851331269343706134131771445853355812923467006107459936875711655146485725799403485404879575950274823872583759050269308966202913207134626938697827512846943127132528517153935418491835558726905469973237846266396075847774342489523703099596308228048418472778575561578950273023266987700635388523741342337989785616705652573310879866612370072250061386113817193919151236152400566123246852949327892631598592720209061215762055952548763960539599298809976812348600494367072131653902501989914440358188816312397002683454511597071865864690902123208677950178754641043114170163432942438453450893257172769039814739658216899351764808843788552165366206559793373239897968843551477723412008766535515374850235705937516101797663728746346707906472987688036590946616822439286063535805652181673422318588432744150438355341755326139568614591977473572286054103809512350108726490177524063548348628806122347209155616024402277512479188368757885805510568971799854732883833200115521950909409782026418001394651937153992737934344755445352923083995913772786010684128342073360727983763195620678968051194867571339005081203594783944529665919049215073444063768130926918899730217457150018475271172595508895756053732769537295549076315119505877391861152668378008415800073056609904890900382228095612098505954637434077308937385238612491617667530854976895358524037233368252057998159905867491834117585358492066551906847791113285527825404760657882384800901307286747107090176857462027080119037116088824651510486982144052075258651380869467669295171289459503131013727559706491702013986115343788573999923092255882277750317689324796649463996651793485517310511086496814623943079872175745778171539260348326363036350928061339475684785638530192357223811973624153827312362899802390683438024184661942118554560558131689336858329898203800057354418739798972351560195979036250083360265746968346824054253094392448013268276674126637495247427158797195087896052485588134736522665120156080406206445943580193764185333674167308823066877064163884949666850765236658116928610120218887020749375040649961965578516685386567694640673940221269827002150169999654669909365449070158907521111693556682451622720564035833444641004273332499619861719676682977310568264006857679736280615812019190983510959894776709361676698595595601587367800933501110111205796370919841954698877082605064884107920948210667153030534224146303058890612011045922737561084607402164203882488436087737445865482326815430374066405566523870685460886477520142977244041679051105611324343869291214842221757029861860966826200984906707228736510026291947117647944368327968323682714846463798751501095340854460689769870535394441546200106629573050773699238556547519998516356299732507182780619741448546804517762337845276981943345064389869596174365809202091950765712143944904274088825698635028664849000080889682196416032795888617877562405633615990037447987856657271327879007313968415227745730283321321717960656602161135620913493601777276712997671154772119495863475568518081248181842350347151598879781136954430781087670528183664630042825802727965804391362713288439135139132542909834980815553597124831534816590935978346567189558028519849711904280213686011930043343464700971466507167154167788720047006962417381325424982022106363511140054910792397413620795042818391679837258245578046889273320797471546756233636051110515942447611775923830748706052003642482692273039040482180954218578247817265018919641014561338914186233295980408229672881252092514470207253299121542791902531375400732241187519920150947878103412136356324398377372859903549988705001048626908998523631363425598012933519783462467733909297569932434843015606570130732558609841828090249865241971585277101522578478400807036613049236860272281758380751254332964730797444698178048828674828690530603033148486298034776558353661463302324859356956848773767583935228449614456628518775217306718177278319269143326425006266073410820426806284381113153890629880359742218369187565235796603487193674830584630608386404529390651475892820546682224742142827797505265905016642032422741513849471121695265216899092205094421731856790619347036106150194880518045592868305902953840696174609723926597605679543281213164171684504600000228347005924850517035207962788881978367852480684255445359436622330044390402784959977575469034242603917712979305610244495820735999332098332594166594167396788342738422856033291411100448448180408314153586668781025544346683294187651429380435473392567642949935271967513619462103808222243915994818563416904931099973769015344386346696141720449351239506657793757088782498859325387468772673893217710968138129657978341905839687607730329334823776840051116280063278042719259824858637224922865205762756708126042979570647214001720119553794578067362138777670855617360599855595917649781988815058138053277562104703439849366476310436765813896494530771846662930207967480184714613619893007213858390319186640731772122720637690958955453140051545754171403948603216912896826807883941310270880159408082891081157142174585521089963939834198885324397474277460368318316049146322034501001371081252703801622947019747470244157708477908296578868088358129875540407110192493467386947852261172254192641768041811704228092000158515035164193722370657574689679672266705247481578674364261664079049808131161952262503486484775078523347821457754144484325962151549258508447103312126823276654637421620783489861196356578162170211162637471303170090674304054241913474115863255595845214402975027961060468334504905730558497025033508058081905703189139760953214809494170547807189857033994469313030739801842539373897801879992325857799730139314190440620638999752352342896135558092931925842737060761310967262685107471530466312971118352495775602059955265491459947851613615763818157106111795984044301579027088484825563833332449233167542446699684551697124455513285487928788908950368100882548694814769768901979059722834000114620932763760150616236799917164539210726842856080615839347755979757543613436375519276073648843270676263788948633392246318781011122995914761031551457044504380847198929501682026231725462314646343171529577733974827705353921294297046130238004184607322143709467438391921642168478555880411537196679356857329803725728506749023741802476978573893930063870223222721714594040658670431593578126367667686058494942325949910001585230563181717088823051491325116957098646748463321656867806035379667144784100239578243762742059322020459179949941977247898702000855168486628959893431138103696704931313734416153207460893108490127433749835449405156622596991299339452264374545583873066202728751708097731134825909779289375588486143633372876782045675523113228611642137961302813119211160325743090041798717326672065468970231933272694704729223201605790612121326567071391415943708432815868517504434118115713751475016222264311254030422647313723368451102614388769711398101300820225857368811435773394352681104369789372900670725989005963725285146208440272367676441907967102859050171146403746323995380539101046031187594075705533753888747904835884820193715534749006485343562095022888531521916131514916565960163452259178265449454068962491031327402332477804954660224859556185644020186336176306450335781974328528430808224644838537175075719926897688393409013076751533216378925078814592307289113805365757391618090082758199500966671329524392977402231135314627722993601693263330805748560056895162749089467560977526582311247004947964049926549821810502652013499803349667847663986150795985100211373732217586009539346362079024165697923668753992370992957798139692619535407489459024039377261758740724823948079349704054792745576985837075642389175051498785131755511889694631051919350818962278622024622460508251186600135164810975902218937683278943715531061776709029774488767439504006200386657105547253584155137973252626375757686765669985079335813617077724852629495694031750145433603824646467125844607281673409765134322876976818691422445333552000374508867825398965457271364320210015227386523987504672873750884544416882881036208823474009936156063648187580873994591048989728356926812156140739441607281690270587466819568374021150549395317452795723521505270098787158880595645779152429865953231189584917347239293250395149160540647183663679116559883515097987410833740991519812597371058596036245452807514129465543778196159058592595190966334199656569436986512060844468423635392513659167966401929437546698901239929097282658877476266686295538201800207548802970120131417910921716780775783774835611410378183544366761167897462723312650938328632545308981340349887443647127378087693305329986299396259799187358754723149966517104167406688224092309157955175310867251185994424087880921387302975924129584280859812967336267388999010187878473906720266797012517998756929031640813526943156690478480760855139078057225530949310452505918602764844345146937968357523236923476799876488694430156767740693100057736401433239578022057757638292276120493204669801368185852240994001740801406940055869181707243170995417376420624050682933961560076793333938960595377098629967196824453895736067843327325127150754702018486074113402067746670487530230580117745843386472549521325989727915086078845346561194637076367549846912363355789024844553881245452803604172775593915590609095773418250316770183218694847785030330962728263475392094287557008106570356094025725031751140829849101149607036661541640529331487655003172467165367495607041955735850997996408768643325480780867835127898711627786686343576148910139605984889999917508417873530734338969324172855416645270734273130488076954779495427151797909872313618679510298551590149326539908313493905965384690769709718044798062049645875330212560540044259022901326984375941128537900892178325605855649301558579991471668877370540440423028019468139534316321756863886749591221291938404716773945293020424212590315030493201693315299896727901523823675639340905368622182927015610967400044670366511222070707002173186999958339381894859392099171913540147105754379695437240689213172730496636392996774532139563821113371805037200091642373443389455215455192916728350042992697279701602267369621055234706092332009452634492829622112298372536497451621766046325048485974872928589052272945259471999662764027783961655412722546776310971265109481283215983582670358919929047557870729046921746751735411313926698693498472050419454822775825310743073028596131015710053558414111770323240231907214779810535338079360328397445741194389762586121946075583032974604342163353514132384766170444744325129804486580862177398011532428540007346918283761576623102442016144756283459171702546491609895528927710671850141484839623114078363434676908227266879549246094892220694173487767566140258460522024348940706295768171993405571101358963765742636803548062057381484916335560574531894312161157904606592941069663015441785244477748494304049533895215962772429789581465367657717500245482543923805618901921603867505094250889112792348005920965577832554398262884404533778084255958838753670716523203246473642297183627413771535773033477692435594861660909780445164071783517951740789662869499992358474314641560632430917578233020702996981320894255064396523123720542212026070864346351344421161998812042925268352867628115865332027371052709520834610987597050616765812392820727341042117484882212029114937794405279198910005549662639581095791725511994137747989087822728897793920995190546399393672695136817026708278267175970606643626192072487733433533685798769012752105119332025255405497296608259998578741982638484549299804389458827381315029379178452777210909365812571380774928657391927867199138117539647490417334697218843942099026130930311787327262277974028747581856873644395060324074751477184590656620554728808531606403099686612657769483594192771148392536239870740882838706495883560206903844171217594447470284284672489133971304806615728228701623894858885178582159545304071122346314233448049516183159857158872812900319247718387207268832194411073742206472607548401842674112918896123653759355840453228760256549154786126440992875217513449250377789050770092086332790011812777877296330115413521236823678889021707150099340659360213055770652483882373251286597534242078372517853014995665549639252026100857937995781669881117978622623309599769303719368876943829747775505835962576539897847669948843549733166011826193555313209263531135185174462558732150804301480214066656157077982430329225213020512150398823298182073405293211580548358684765912257953507305002609407544485100086424508217189197565110997065851298192362937341674650222291788820908705424627964324612131948419864563423405490306056134844333547349797897018884915823672209269075383255828223919087056239202870295305967456418248923758471775596514747908044198391959155259755972800876245514858421328198635317719224942019888831750021399290296236976689152717007271338079046882166898276488542071931486545710536310154258037042316646129544667934528361472012675479567740909251285589419446196139678787171766869150473234489752597625215238116168130472950566046706219997160950379364926902963564580465322339884240531086386042478663923924602284245523174420939738640366263856205628746915320575273713199374056927576823111078197375439265222832563506295297279287599987668463659268317102712746681852951962908140491461858383738595232566148771955329152687609616095227758557742673024033709834131320094521502009170572695830456243443733395564758236297961252172709242265800774235767428224171888234606261625514848622271250005434482715271546270224283227729235393796051861389221038632881040011989531471064920954512093360986817072285005101593310840415676809158168273975332578499307361449056142655512231210827901683834811274182696805884859843870236585322464399015597661553826048370213125564106166521709060512494501809007526167778156678387573722510094840692821386730859133425109487761605140114635959518738670566212340004369497556656711691216947913617381429484449042914218685256439028735759420044090744856550910317195715160798315553534388616305989062643483498312752848814831751385058656754292613850739529177315506041899170377485234202051319156809633561940285385717278448963881825378331987992344290848212709650500037387838191441633427301202205350016214291749965767368953005551472426443915799179635396657829185624684768520910783305316704167175786821527491305915186782767267720458056705058732146869914338199611416060933795616054955814503281988318129906467624614424752594679528931630555174065389290527149577297614135359658533827765875942062573934281359151347251528478481243375668363264103510285902334278418022491930674046913912151427464263723844004641520113208000162332342686414395514548072399981341640660691176486304569275819206827379931499285519488586901663704028954112662801824305390007482841091765600943994718357677664142215054207329177316156041530645723959255263855754234569464274193240124331201277266529966226398603560841979718431271679760857133256210008814362797507842695693477824015009426353573391908142445193237409665145753921119786787250882529220572414318565911785335121520763992148041567031943571647823764612725287040050260519881023458589958738238836716459003243267886422613301170340293864787504750175042531832709216983763910039018173030078811920250842653052744955061140125460840717564866865017358055638302418405682129254258417201102572892079362934303070350616187902571029560898611876636453385733104678907923941777014618248455704208892863048355673172284232250055657146781871810616862605233697341781811112032377130393378433872029610594387278583283278435789345042516467836970918004247081320189928035127773304282788442159854769533979111146343585295277720983378888210213738237137268819060708043885850578111423812464887653026534053895666943770366458209824880048365954435875258593992600474131393790473265922544865487744594184313967722629245992505581229888805194599575690834297177949968884377670463360766258246730910275754771931398978818633478966300936966778016700073353025572928019726521804715094705255528677234039065471967387190415846993254481123168646299212838990747223198531985711021949474408022254471617720549832538657275604263958041057355620586680624053591832119056416751374894988704382693070533941928584878360712297793823308897325709764302268956106062927028153281245403395027249414391010386052038678248445531411926970677642814930201365087335001725769473733112875258447877210635673557988886344245674175998059454664639136250979583308993320480345483630198235995464339921884002755730155239601661005990174522394356706872596974808122169417200058379832712556582359947119048964701820068867822466044418473019700286813422455255726050339060037767298757791554800317347876173045470026807767319592478551506552320767871984540962296598974594355744306688007203409977874796144511158866029029580066326381886169915725777096791009350741475378870545965463139592672709907830313209415536159087912715015620842031488953251150983072578258058633552136021417083229093458784860496880139779689826133097519782568679249519985274306888079936327199133581452514757867260665633018443959798392493356437836855241744247251282711343791737224800875734334347791585566454012945456447146078304646310240149165790860644053384445024493845825080735053025261956411517459067496728460139286520158107791628454635797574833515838749270543874202128965406211406854948792399006941467815790932759136868488162413937064210929523024986099484728148556865415600709985651932902406203778398068107129912700664530688388262173431010307805358505742933453716941007188675505938048983821191344832296186778689389072616386662418672278885590280656428408189843842128106751653840294101455826495146444683261831652162985702137076847474001030174884059390044352459273383436531141770948147277660609641247269981380958822437748207803677270027321157520849944990606343091863189189257303143461963851722932295907759729140246496105363889210367222435160556089545575851312773339047308504938764189835706656440453369946324906825148798278791782875767507376129994408482651997708692451243671711107861605525925888846023680209726580935682845479710502642565900582705344997464831829724514457013266358735264654235832205285853568713861752102235631535778776950549980824664599536829028267871892771142609229468011738482662235186147833840517643572307758315703841332787059669515989669981884945944728535972291104924159140249226474461104066900226806714778486743308637764331644178475677984725865063925265684865528868360667775501138608899056965499950687556305966071654126517765390716368206538298738782606452160670098106793530639975451799902627723484697770582943785873216141201230107358012694892678672784511211020302274270975930428068094825553931482805185579636930419367606360821464375294055641240076120768890302574406838318870854703436952210247135297595077863091726717410455541177953608243194409858105452494220096074809225755185565039657198720922804782559320100679751202215784283787465745250669192847595852247593411318099321956552021939380562183878299455844356801438325403504330574082879510398278753099468967008372057906564189875245373068369408451967688248238235023599377709176232302731267128850675801833714989588609610960764753779661192359054717412417284377333441415875387132264579873918475981593774830788982142001910742585985387040713701606432975894101962014542085841019986837471626195779230977774601129229255032254420776618883244319998853485597723071703998086621925513448597198198487433460719633798931052708253517776978512747264060979556411257562866087354746802039204514628910896863414394977753575250660503505120809637867237433884851052769662363989890099412800117588602664727502842357022050722505097916948514896491482896705254807784029648096496233607121668464968103490814813725256465995768750986449639145938047515212433165949470618279511547094367868442550990442666796722512488204698050832425299267627891910241026528400537001952082616280716016026391202199684801447233713360068662714005784648850911491137566717666824528606607461865002102181814568579562769540564278423433664033220766976052879212939935295991011270072301590676728811452127704511927927823763213641858506134305526518178954770989600823989771491567305566327125555462038723637286895837621360763237671976997203248987674699028965494739287506852053079685865154674021387245241311747055482081535342960410508496170369361379840118128545781036942864116429882815508258312313106395920764635072649673069295586025496458700490083587613287857835730424422962925842285807512029925997907820788026156255194321053943756735849670040595226479369522185148045634187115826124223800786551620868191688814855702619984203808777205908346327259628331161523436617587277702772854504972865954661803910195855854958472128022362211242393579168061292050651161027988945388162123928824342528358886841141996624332064399074666717858292437304449341568687814024000806397823595035725679410082311772461469521995186243820548799899455128937106311732576202520049767860375764797436060768700855504973074608311498403569887636092233214039956500228698061553661895557463821257521718365857422274840056637288933296232618679450418482804114571454513435513232667329346300452234712730913383045426721064418731943191871103815929276717109978902038522195753383887658896631441864639078055993441997478693560354041550779566468738068660130523599543971687467672632766536719815492588883960876471785789041568207046041649226135684454279593200484984256280609998505994776549378794857926763933149970107817485905516751178607343232396019190675754121306357499016912407713582638765827375744438391003061649448463214537900537504603065866769147139433645150012711738494123232003090407499300522470277409482062898750935230153985166894379495727629240786737667446863183292069291430127934868175134611174730134567323324501721065455685998999021055479531576278676866710098420965063112738129634220283072561186428880795571742905205722032270963654463601693423421632047204716323028367030429063022195662962035984922726034492292829412477143934224437485255054492965809272424467350608289207978010078405498234633686353404065882624233568718599219789380219167643499739864996954513861564744294848861623836320110213380767482848275129579568481889730078132570143101466828739484713376028453254860489990644714615263260808871893196432240123470619408194982311316187382931944694636686777319514766645566799208677473179245020594146090607620628274287029374933376285203592217388448480666563906571507200002398904508259258880207152937784648493908244320404322014713322463439439120725802486483435433974482721735211613557611499229470908006732494369320031324716444072173075396814728581936791985144239595984602275700080013090613613143828632206254802085630203910850047448529221896554611241417680931958513069238494630448627829658867841223679224868981354941907756204069594467453917013397262095837505184283302489487036697420846468616950959096801182522244824228061362484488286421897893662582358684196761785673949125374372621925750271890435097482523772536157452052510997511971785063472886103118476212702883447029184315496451941922556473629352730993183136993636432609910607757319555026551722203933888696871608805440902794789620820572733612723436131598789451806868414344038460300835652234636068061576702651426540354129173055158616082258960616500108368021381028278951689479092283274358260555589236335358590514061393132244613601718859896932553017524424819997348359041445727570388740528451758030541610647556571724495132047856680551858543316044150987374146233890681416299737280162978076458121955708696858424629614677419469070233984468648255669904987273610983524124796231536964726916536141940653276895556471070770432882898931592025668321009624106952015812472736132621726028934429824047708486339846502929911624770490544874891252294469185416713536010701298592127418003656871041228305077739183395356978962537745084456175109046931026019650127315397597335443789968683971409673627354624588695765136155223206201788269117340100771378484637356848962114526254741387174731474673423550889232991124643837204688526676707212863731144693315649640211326046540338643161108837488431303000411714891455581409029091504012326464091661698226231554423189963957037661264507554991406983919518920205205491987903876288136615983326039454988633477844107497382770395986358485028562695576691309132995529659593818399268224996184696698240826052692579580015670146626349365895767897330571571891899883856025875268673189433230401961424610510425932553520131675505871737056462403256153273749935374644072459298236063769986561384063304458772240254460567707982106107611518629566898600100498994127491461351485635275909568245055620921471023582252484294258059237410853571459454031139889599807933763712979679465284158518559584942058396334330240462883837124610998481170272438183459235773800537169814025425353924854502311995005432459522822294223187270627694457710626767636369254893678191571082727190789056183653087218709091625430076750228782208140938467778714140704922732188388891521624851375550702472686024652601265206650342152634002216490218535500867926438455513961286987783859314467224490307541366920423733818791251029601421611191303686862885830866945572210754445471050525812863266764527533759411240642005736902483042038223796848574493681270115473132606506091434259764501116980924526191908738035551129844288592515687453847988114045112206380216128982272533460806465100841425645053921487559535224738853729118463168659876178739306499464937359738716550756353130523111872511289852056915856506633235763265938695960040196809800132685501433947434594938857043551570381419376893458606705761977164441159036401506208273191905572725898534010097086748337469645689395439537503446405170708136528805716911824092476045383325611988607846475655732844799765384063781205780679376644782106983488824966348008265396166828225896552114833545028470230907537722602779915360553599273128296772450097999725900792219515458009979425955279208470129481928646619594410979275265948354319664938013883818204937582029505056036139161440046109074193277977150691420105990942697173944741822966111022177796452446087268188951846687076555725414487743741832841887821795291009950976550507655883700267157467822531255265937198172303493897223050597637700437831718559874225960934207345231000913013455661617558946647954104227285206033150059306247361610755269542338807908398168604516672702375714520428972599251714600892360165770142348611854636255398914273189136293257960331316478952566312875628514260148595213358973697175372484139895573005696766381496896044658982272732877613144641173782361551196077045053734909213109112453329277647986899384012369187825213732418031806996418694739564363460418856574960014511797375056103291256260011143123547290309326500839913456844450610365262477880656990130266995137179555641469668039791465220387568609803649438014377607709483961446786770206753667869859674332367860277433342605140444914314057049718105491840070117475239302479226410986326113637434766943067583078413070315292142341758547602535431311219593022096886585152278749101295286051617653664416401121528288565757058493574475261415275254897619537251460467692368176031381863746183287549683189360834409797207753384563632239368641916535291197052577912703341577668903489122255963100586302148958891637381116464731411544091914878436392392440907715230867292936703416239580983230471807517652580478214627832941036559936681639006412287736469187580847447867244525685923868033107077082427036784043723149681185807089651649244514625851198710115120751480269379468275921041845752770043825197119479363875663644470210721530294904478151520331595817902611582675230372302088353350412168105449661679632184794505491969898053870578926706691506752130145231041240190704551976655384069265016915413479790749906197508450969629585615697220090285675099422404350889706708124395362814638463514601061373006962496153092959159465200777378152112665540866544147129192287387201199420022545554627743164509068977210732095722058037888432219086536280957503345405218958877958588339532352722708332284084275212788651832420211312952189698223042212713080025402300078877851331233347931758602492579874635967866381132311606626328091950305486291868349096845819747213439352245067827484305086936005309877383151637854676716857890649521078819850919660466528169092070338708005288507765760551218995757337212793413284019133785091840046616241757872056756989790264670997366345022922002733053989797693500178031358474483513110021868388369767926743182951284641128316473986903416866448575363008149807709339097565538438355158612892496605814249632043716410871333981252220226958102859453878693960807932595824865265730547545692862248469811660158757313059547589737240782082147913707260807901580821194632049275233377961876002515090996187896210997521852524170656337313443839810942457401530540710780595335019396748807205231701503166639316389344834323666491686119304992080737784082397956657544690247707931302980136701175928850120224150856041926840792681045894132883781081473087679545274138204773881593590802559726390656798316156640877787775317434262943232812326350972966354530361413391911518965498418372228514333197859255752748060326120818011008511008430952678206027398089844602315257438480351581110455883768311008943540440291565732711035996787106182112166416485274309163781370551333782888862820989748207815754701113659595438302229991133800775707199245385362655011609025825139106043816276480757372073837344394213707129831083416135617004023615549594619418399855279981014089709849541093729544651963723694602150322984359227219086014482629575287576914043678040930760314854389819788070824159949894372607530682351424732275032073623761658302232837299045646489598414828011542321068351145024062187620579835172224652104395690659108913624510911089940575089394445381582025238231907702988366904253184949576893534798367481749184773616189732720580149737739552387615980174976342750456999239030095232506701595597650365044357098650149040725676503571744774377665629436086061775102562697211532187072952199954081102373931736444432667835240129611881556512870465372589071286597807082929184680383758124762794532220497457537132523050395235217616261887206357414735766656243030625196561665340230339487493423486086177414864053807940311599839792497562728444641933324239220826610343006956697142846641723181814559656165070978147369802559738536537440898700778569273893720197168863544847229459676121483533674845231633177018717920792565503895551927338858404222076294135308039964555387976760718338607147062602071566501572208977903244237624496261146052895868646737444814859640107936941618405328894959305802419437382382990565287205952761975190184738073308629081782472695882409595670425102822053944747960945758014091878902872338993594992395221406164930767973909700138213920471789098711090679636023173508022843651186110336199754717334993772215197533769364234326777273302062858854398857483415035594433922427650506347743667215394738535703809770584785003279010736389612504969488197878149036927752274766077747794724591059085428814070211107435298249430912190589702203557185040100391567759873107679887770483682926238659521520506594721105467353671094874629355429007476010629985410495499252162710944802216907226094296069997469554103925976119249046531592730312504489360249286642880836947270558197535245866557085292104320178110686526044196372902034702713647901979530553711442658228333975334334648513256194086406307915833241242883038130318944710474836665068944127350369887480901675841618327005486538770308044830444360395617432843316997799143004679934136572044402846673848051835641324926218097064158881724365201207904896023496481870942694802274673514955990766655606706237070657155087209157230248370901228676820503937590000318717037633555249065776102140988405285017548842203971595033481822214298653180088784939289023531094870134847818693711411318902443345832271428708572506397067891571512315299631674359892717270298699289427987621973942147774341830273858313509383526797654803632363904481489580165025206887814368653296732755858053319268636415573678670255777205913729425653482059984559658474547967228214851373564137178155413213745128311302848215133545905042780960096015585595320594610976884883012112475687153146918578256023728086403734904671028662348882618392264407895299771697296681920855007071866147802171932957708355453874631139252832539738038568017968769352719856158218003160398416085607498582772389919545746630781925881152015372247776574866806153894014155627448292167447786124671292088395978778024164081115733635610326735678533244707034802970482635481837803986435593524306364516909529481124344721537532107593985426262055049431648546507843375712588342843292157295143131612174376685622200264260590438606796495780739558297140370073617486284586212572790517219969832064001549054456386244350653563395027313128515295757804616544926066028251472294934711143493930508843510842810217860697121106796132726350575403138145901690772164542612107584402897064788616868092508703874218738878250141672493109111305997292567948473716868645498135235156061738303913156603770461294274236016563630904596711760653468073920871844277283950068863859555239193232277049758277398042223163078329233421627358188525462743640487987979149500487518236892300001142538614853555507226629710583640089248941575638788126308367611458474219346296753296939074556011594606793844062228872465970685949442546137654665213689014291637377620999665572134105018454063193171269977236053567640381394252765812364195631720107587158392231934713096649306246580233242270341757978747504712009877798229869650833580262715350903529696597053704444473943830224748738946906842173285469410663238901456295271104014613293726836773799990730565036512699062754369571965395099447011501603686262574604539867298424456516277277103365276121521808329779661290717503217341562189661294465113644314850669039618826203848034152943768911668506456489043168030860255050199962112851084239833756908566938164788990788465392186686663132909954905261681811993796638024071374378448899528983443753843216667783241434795253871562741699861566014149692779323305121870589321276624320595075767766369117599433239140449196225677491254282053838782647944131340942173193150934601460124607288891333970071750462911662876740878553172673567949559944938326434957486494967312012940799637777930943475501480711950732845914526071802305747850442766632264800742466682831344236833756953741440324500363909078214663655795293553422463648793690764264758168550355170035939486321625132507801679894165076558913217315437857020152857588371499898806814141640909653534545005008067156669575393698814716663991038188546543114493185095417446012312245742729879842145519344046863686410068691520841776306962939079831311047640910708849280853495348555741984720059639822928830096591223035595843040795962450199021849337550679515769900003532641020240486868024180988860121908949983556771794951203184454003493477382715569207466968986391696498306196052071956427137256434610978249277717401849621095749703472931887308334909432095074320079274367751594264965631650264599622642943825215353248494887369197430508483160014138341383324752547696228851671007388316384397916561824723865194230289573040944687573792686884956045744967426645044634342083581088138596797682005369550822070484890571113794163865869101307632761661181088146362319208799490383665021486640326878934586477011088917031805065300792837359164395340480945664458356601428742080216292027847047930685420009979021336980859978891849473741991020292828891933934676475965658866941027939642803872565980638946021150018630813477056514433422840909814271955954055531584751149620460255934084789440196966154508950101833135679512010423687585638953552475291817848109394656843269461168346616777266955640908234592930128083323124956505481380136380172861602577775136370149316385351721312249141726472587512119141512814266156443295610790486982292122199073040788090126544165224289128873175937496570371894543606666472109860597343780832374527497912846356355054542434945678816090926929239899311746382609830871356952327144825159706175593154393094139834167665125730015418204893278485158800569873523500481623906263876440138731568531734318902300561145927289246309156961978232395108989448580579194185980074453048291018471019410165883542075482452500260772449598338493713550385443421139428600939333218722607239701201699066350053878559879667285930160619373589272526385541431237249399324349151482938583313132460153549870845021605445864612036380780743769174273497673572890425098811805891933705584615303906184146233077470959378654749360117193403384933265615809177589564842691101407870380717706121396480635112830793291551400066808666185285261152949192167925091117645934730177548656129713256593337917508676684572342688781964212223066002602169735217201696121533414816398475738357956953058632560233792575791508769659106629501948280562851917776464460051348068447453958902460151772929368493393790958086974658957227725574279725427039232053037817827384137763092760734778712139928665219601199518932190251615837935441737228443261627235626490568664435518274375795340573340651602142957397557124731349031742899128698641696000384940839274573864541959346965457396871077168497217536440523435026016651993713388600744030936628762833575292662379809538584646327401875135645047465887651699215859817363102965080172737322108617651822891473444416883938675965310371908091400300610774770613163117822951739579331937023177483817219617793422018018333020284303881869589862945141203038267475802787584349842623141624031570298820179011356818466347466086677741196217606184576002957321856336139013363398699378038631127738567056923844204094088970588595556855033588035437544531675567633291729189092724344850751928193346603948684336317437736755297484932043267962352907487908136739609773945602840033961808245890969898249392266680714617306764167485890520717334178736222023800014320934781450941687039350231386983089398953132453047993862785277073502397679821844017151455505740844569235160869374663696833850384656462592909481422963950308187397829172754909257204365585817751946660184034105782315961198110074461418446006652817573676216830601351295878840799712554119295253389176539812495951092121680147658997716432653305621591527194458082262142805769935060452881776630684684414472109139487878658728769255991568296488635287970781483080681495461375296776604263008598884765228144638941850488076188164935275940152190268488160916809400660485697932244265073460914250590624964006876433986919824146217032088573781180255910629924798363976515686204463019434667250080915769913945358015691884873930759108944234146016936953054212992089442424458589235613676317107819999668189894653102796113880848391024646562969583477069877276613218741987803580228076862211093049158468018970546435666991076914453223814556136297238685162525399398052171416363139063425021914270341198503933542566736544909563397459807530038090315623921019409541334215267919045305144840385330049158315486721384895981320198765098405091625836340211499492225505214198405454448630073060847143906994207036574224435888018769002151479754790639151324935832493567144231949815816314191206073755890165116115875635401597467970000397643302793139047798538036219378419232072403277030667174446377694704195725592328928880896586852784128684169309875394283020637040263938629901732797335208975107588379538888606119041650105930910234851401692216049999069562261789637188003395811960662540227981465963218289282145036201230475192552943634468388462088409179877786762016819364042553080054111621701651103240058183724400924138131993161274890991474953044172113656102486075610124828836248867436665616578677835613035589907442866345951655682282820906346122165636301856174696279277585265556349717516479214211932202199886834635007446900831999270720358518779559517390784156329370752479338967268147665689949451375533379943225443491588252619787114120425219081624712368111771121940770801356369600658615641414713193221736078247738543107436959102414777010516006294710388758293073937645687340094077015612208872960923227791312863956218584965410791800946850916352742722516280380332693594612894917185810657304904285156148407388350231048619381993093654695434878870716287068972032182563628146233826156795640885593712727218306027296191857502484032827015622863581070362903588363631917915168988926689567272633603168719940930594774271031611237113421928281888078615347069156926393801234762126793586916343820427248132021992569678123306803473251891103955968206931908806245331213283810550816561365302884608143733916677859000844920562651730495141929880081261189898214200341582563839307521612426576457330935165624274615960901468484730130089654108734943754354555966551513189884535218208423618713633609900926405415205657742751013377661305846297779559356841831293095599328728345753374400535977230547671694015063411070738028566859159967647247471939318735340399636930507248961157129597562872763229544757248245651906836792508341915067244400062143471303794952364989952077459911444034318440499185775489776771735197735122607112077848721167897574661515453621883394852300575331449600181203956579438352747128093580716597519459911348602245672940357780192028017252004237075968285535944818523679197758422521360098176860015301682498306059392630078074372973814867092163554557470580180397078203551845396880863478385642960978700836855208279549237410001038927394195234851202343799323084979364060629624699116348606223721679645137477282078664365149965019315505101956070344830490923178240642452685226273213306991710642907777824599993699752177946200498668278069447866919860626769782120673114944377376358190983172271353741968276599863071121919597945747878468507876595851071287839351907132529805567510573233042051810015112712379892802476626298388216459316127468608847673580663687404453102425281044696290632438981680270491036201045780001532528713241381019738254978337572907119040474158839596082170451422398011650854402064091046992573824227226512837141242660192805322351220037533353528798508105387836453549880696029966301494257451589230064557318928340524302404614099967472313428152733889677031374511138521923012868771284508888326524082522818167040405973006744418803106595950749233422653583646895849150686903363232830533458492014867330459944871203939977560642178604930255280106584217132794497338021079876799860912378033320722730857239135113231336129831575671646370613740953392310809742479801064447418661227863891570879945965244452716652882586466060041169782404025530505929926625403277963899347333346104491062496316054002694619098177853937967454668117440886186806043449577187698455157403058285104005754855702658873868292415078855755644757189625174959885822826542563131207007147884048765872163723695688922926879297972623757270298338703191400743080075439964960842569152154210329498137507819499290732215440143426911466675342727887798494648720825611612784834590114464369939883953910324822517470078128254209804096417428835590543204544730080148303604738186012090965176784821424208405283476145364583129340674164061371232730831217709218395359077553969093821805738901429673838182956356931775708025616559436950521059583573855590542991067237238037602799691076018231117325897658948437160875597037518460180157779212317465971032980377999008260561765547700702485130426968097720964535409832958116714864438221672917288593217005211992668646647431688412217890129728820199433956231617650654701083881223404224525407426582876474275729060540311620020122323541810779912962530101036067699367004404060017960399097184366002261052762399093648859668754106872230276074852920958097754874657327473116736735544030258386234557759337949885222356863877338435926016703277224638933227556675873469467488025754809972169190794993931194244511450632364558781134365383890588062871515288829885831366166931131459529113721388212521487482972378887147462695539914795689646378927839081533263280868194088389721490477084598836804017013776742804894128353679310762542661856877956832059181557553377439714658231294601243294465406597159133820276774583071084890614230860733676956667308452924848753458255598156197009945084396132739799957798041332833632781137510574602013613425843149773806047369850883916850029032835765846397752092499408547776580448688034937097993702742262918832121731089580089589523451085066394824062098745543481899297974145984633104847529966672655663217948417250201355113906350174622948239290275109219302195821312036814619040922125433164423576934291382483874082006912082045571440780754222801382896662403383715958131900598472369840397504596580756180491348344085283611874215028455066281995939911487237541490733812442131226548813201111457064504902710978076258150960482198618344353577409765954042591629410742358395814782170455480578168364459551782151139202137205778147098748462838622723238005243138678507131820299898898316761202457134307338722299198973637849478230996343982049560962998363322798394155653557268010445781011381421749289648746577529191632674782936747250665957034861230692911248476885775422407895629712560222467071130950323450789152090349626776896029615789303035445302944279327063627372099968013951204843496567635020867752471902410235391463997358226610345920869452250522912104179384726915236372929978646450357537062003703611333482264733951150069601064128794251204966108749888568764707167676307126653913015735111711920652341686355074241533274225827531147811513707365106043201330956966080013312605217537102570401041215869348113939787581814744593580350151585249705170488218487667946209917757774927302661545830484482032023604048290934378959920685386215491998529649475435411585977691825951457716666879822661285961348063201661786929172101136935912232236173790353238708077053638341045943896750817268658591347403772755910673667054177151596673652985052987916567179225178910514266571360314559878318557395634212444099820022081006746120838334171607143110215935959275340403333726628030103755261399358639485634513085221419534939691571052083741483885024085362853988848263893967621397027685616964581616443287046081770828891669318559316381508426641114884624560720188580391338986755228899458082389487620498839628139077590192459949235503301608565301661636236489264533043771969139020279146884133531622772621271595659201937245212795730005455578458016080071289833777004001606867606872645146571558370128976014118088222852830862281343435294166022501873311400776557037689954938267610520455695302470701504714800916452344867676179766827582568149852149956093914829434560488056355846737802254760170265998300920791150886158460971131216983033530578151879602675047961402608897861371900970074557109098879350755517452956149016433022291531025216295194254063255059256390248800183315731804690935664731374307068845998006578473785173279535166694369912267700519073267870563419358007180609272846095499400501762284116089876718987657941027949808097465875729738048283503750105210403469114498827569968042350838244026066389173877800512372789092277322457674885926534677791963013378484788592358871562141449553286212251194900242398387900755647330489833579463447165119131689185464029021764891955613587012614512942988235599633994267634849579829617494307879508204397817331661374575002268808341246792323996194443985392102093822050494321703441274785305424558154100282239237433217126058982061081624690472094617502184324088453831936934464384079838990454353888718323977585502700565645730963809309950846142368924198559289187176144372275014846214051565311922462433003138259437919578772230690600046920311550422916180639338954571956626692593692991303660539755673978172091440986413459756225265557928368123283909959418470838406069560694085952304785191675165594361460867178786506926827606476038477934849923384199047227866162838956939268622019983039649652516767413550939394582491745977874128920381549186704756501262174041232671929158773059721690113878439351277819919816655108612518112975396286569420402913755701526835059938005012740071244487585579852678891225819758613899007193613028808584478092264438785141770650742649771232077445654612111554943589688048578114048606484044602820868929152353386719783800262419725993291293515372274728294115476138628144112063477404648957188979984560144682217511591032490590890980692257038979361230531948612461093444242207811298622784671374097154866155211983587110720995986178741187142391896466695085291557862325827418362528793978570320352916322179790148212059123186343588243359790190368149476426157191066213716390239912056749171188094507142361788517792537020004817761050992301545383765686260380083871980008941300951327604396305713373055821110722785702315231211881485755733801743886412380703390354435831010281245775152933827818960757189723947653131067878122756280749228955229128384406556164205991645404267698050417203329681663912053595612634422601345560779849396777155498546354729586089094138405623161681481090621703477007553009431909449689978103849132549813672233406261576206308428403026147410312581578454326653278518773692253069986300769742587001571160731874037802038772788672734143425263082951024206324910701184498356240564859056888341690341487708389864778881659404644359815610718839279418478445158960496488645654294257072065248557734435546610816901450260529101414916568872793205596385292969273602912447613140220366235341879799685048556338708574243640190325837922318565856053227300601377685880426043610525922509352053092573659339045531090665465321073793351281200375865374668461472545408234980308976746037741456347251552896457034813829420606409104458523267183377436249630904991934354524999086703153684332854565915086221643390425178991689224652558654145333309810633142728835800329988604092107506505849492184627727177533355420159096325914636335308852966106305521042358257166225428940908074432513639591177969761211457172906372632132744915441542588288555563419724109788771794347874704964410924410317620348657023588555829848003184652365277125350616369061445383525912399863769343213561238917293160911378703422151833726174422889557290572586380812046784033843187192513344994563213698399494123138989782495084284993763381823238457212064457770237107457633197310276468204559699147015597545704869472898760916412441421136228199944812821164840657156665558863214779828871293424496406306808796755608794137535858395777674735232182607181105957442525411204946235869658623028092792612972554368160066037610330559341064299753133629324180266721214925629230728865927184350207526148116487596495401004547289470406575337605978061665743120854139569850127051217341424082141729384963835540537324641570633655978987629683777720927073421277160897747136428404442496506898943320650012193938014976409595023106762630547478513700722175052701635200298141149033899024960156806143158160214818841529540610200277304612320597386313757070701194146755237589789205189985293766517794980856693404380517865166727457810448866146317295315587759547405944881229928248533665704091166438284085455785991952633132626225643493894543368464146118704965266976418020981151575024348617289429758397139243456236748106346919093936100008413221873581348411591387979257610866508810866835287433978048878894591508692200558021479336295508710328175847738701456564097004586973426340790497544579473378856487718245906176541626080850088180187468525368239648908152518574480398816209386373350250455168432221908566229466078757332386406075621576495061117622600535945750882093724630591539629511204193973855649378526195401687748046442953089119834745215910165575248758400016909574696457614444472580723096927657015692153526764020276047485666989790740912338302860250167089985930018114805958011069616937979198518188490319923470143396873697518567185150921161885867936050670998850737512558209378201330150656879968543839010808829532704880959229347920655249808362777638969587593077090171661943226870053172118917838961017581858571216524383126342575517486556875035083676901648893049287404268101052491203828139185380891172751577531889200813155053854434044975921989376684136202395116575734170827338937817847522105998921990861090221461954958256950130048231616520704802515703345573695299976407587136715075900135921334161269122336557483540680671210047273291556325607833629090591494362729912937147139346204489422498357310995424724646001330680065193161969932061455583120878389745959862847213086128599242952952711991371103807473151374615966651884985608354558170383688376046992436610404882033173895947412339953042860463739103807581379224782783676137171513843511575308468175845039729444060426669277817579579064405773210875103697291723820783645558804560888170879994161082793523020152763002379359921438776432128524088158248723907552609168105229214479012458350906380821475455042274163600816383956122306521992312729059918171448327662020920590161848075764374360976689200325135423080416658383599932628423465319577347335296547178137942737071024620090392175338691941331840355424089315130873717706414815059750601259305499654124206080230585561875218008542625656913940586690408146370294727247145637308003435246723082426711143373506134245752020709199479801128591608752756000064713466785107447203398951252915572971805497561629042928966366522326843791651587508206784893755555331566997247362027224129035239112736555948243301778263656025592176873984909273292818793107396826170652709409673297483038151579747418735326909890013182937563731676713797830519853216808438090909543888367362094983734720339897325229895839997378214108429100044236923019007975951421610239260428198164469230386784646566358438326258467374679605052006448556716656792339756573017684197624110269061858932840526395220480590335892385741614365063298490421552741080060084797609610837799200410094366227500925440670048103390519318110639275002601645445065361506232676123273293674450648897193570600134767290094041990605393401393886934085875897641196799211982204825225941508969999657797673098347937884241624268836022009938018498063395347353946783389883772123292357070392927915644961015216376793140484152183275144495149847113544251282267223927199158631779126963426654119700965760162005772050657370006551400133319713091544587013270869437812241180945260844331366443368083982400448413029041102221165877099650991011515775462279450156871069778865680071399722596688985108903660647577779972385561200819663941078067791759749561065079733170509470652914374355419561614890000884016696855859990775081058990378049286788883546848977411435508735351803315420940447370977800319265294387895516847069487792774874505016710627270266923880923340161389404115078243856200486096039109458775114956964764276137190857210549458876677845296368371377262882985399208900126617699730097917475164678803870889882139604836749749342451041957804425481569754882173464108807274636837757646718833035997505032624252185494957000134233223739174408121886275487033375581933347048862749613541542790220037624790156886549234470401536787846416032744231569600152382370429999213345616302112702773003902499765244458504688724805253527891088504673300385476650218065351170928080596538875241485439923511883392441325942077639641998752065078063445543663598326500051121013659057589751752532467249341989603237320348935404450592351987720073143204691338604722860775037875496455578593916310200627168568854622415009587414161203954556001750800111899856414034955514091015394576456342447441534860899434818325417725464364567305678396267067140252662446655888336245675752350729662647872970036474797626126496371846295165115975897647707413192989169886243867005306251842394258947286391150020674760391750276464951611121704154019447533997955551500957896864173958624379858097471558424891755984200700119799964587619000592032235185524320846305668915704963904642918983305720388323059292716243520434401176981550022672097930202503000723252360556121132355733547926008700443474474659329046432576428454008207319132675584141299147690565502943790346412255245674226749612555428206559894324986992301672141467091857987687600849268388702708379204977074192984439053871542663107521765805182352781474528283355553245794645680316144620470968063602340326388098987827538271886872205956681298128857961979655894726983396846813446221036387947707450636304182879865970630795953913865048072106355888718096087067056497618281935548204674558508203739425602611416284695131517872543124459825065826686723471783256636127305335978665574053153564734528578810129808027934971934978287368334930074716801240070623792152531498899214425122204446140920415368208219432279829733906733711284062859417934170690482177864299463171469093330223518830977271064796808182234001779135646964218966734372070974391897986797634234137900677248971999366291669568040933283945833443131772467756484138387379689229344962275292045215910166566732207195890604751470583155983212611242566547468822385158999251970055585612311542716665327876982484853132807687718038898110160270245418981378429013936074288150574384415829401675200274138108754134535739600560732040368082837481537193310715883595222597877944643066214608713082742092341390928621100987183693368517398076509678096130109708005827289409801737647507057698650263466560608296515666554766986923687980827339012474032181328552476566405525423671826225429483415121610014873364460410685532417540076169790922245345689197815982710300986498176775562222263604021613616709314843426728973269656414651356647570436798213776034992356457131429223128585044182883132205680366718505591479154124900301873522047949559851450016113906840468801319595554211265156862409970797401707173431741103476714382847651641872371607006441331890610827956589600334622612382845551195952042101178069717713075059488785887749003397003762970947614688413006088809822234584277146731530925249969396579418643203095997109285915619257948424267141764426203789379362077976532982761484213754062879863934394244880189692659920810956449857398171026662353713854746903864479371073192838979943931016862904422655998287642489447550381517149033072071730074002403195781825778199568109333425167691843605288011778944202680492592165184209432802108080353362034697310979318911373619382414952546124981729717306246254400731506179390668917731655345269075683673726222044815127478009472550324781206471481960892898075738168257866844470980039550822380859912476503803551820040981588814713559005070269812120299556134076515223029254400158189579129096221987428435482476211212362810866054684081257080622635819791019967633906311043609528007472389266941201688061008474457441469424744960780445866503862648475272069975664775367274253449353528270540338814923554443740855551241178055960741467773760137476447178883028835069785532400572831936941690836501067347477608422172745832292637144431274065859932812274667981345228041085005657630419847337351185283146905212882679975455329217034140153060482329518399853629962258950860967644259330879011870450055790342575402824872517769117767800516023818878952785236074547425826887355307141294240397461729896109519719059270655990543810443034058677042944251861063495461530262246548887670341974175944411142836029382442896867516933262335971404646471053667175112247672480435259231271942461755872950314598011483100948283634772892453727282343633176537839866038514050865451935758560554625520239118787189085668784517212372135670104399186928996990158593494221981347959694990705373338665209069733579021178518444188537068284913876074200151350207516106179131365921964412694868002836237794051956373404405388183740740966970672289428962192389619852334221638903309266792694742636929729530760169862272582289801775371487778044919520941226872806414344997230253566890816572377263979289125220611639663358680650868810583104590766402658430153607571771934232310201160814142225347858925848836446075782452101684960311715198414271245983948686954854799920949387210093846989434683318347474307504468867501946868574825473757326122136323064224960094481930207652052912966282653514703137497258012599492746917407303107535085691310192540538702344315692962597270135157366440070942810492808441547401797100875067105663070749586240813958596751660992994131925735150155294165089740173503668137511837202157306974913963412702442892953097669027433300612932804579003255779419422880195750345525626112109188737089976598065479778103461672506260166868409580074725644614298879244032749162051524043945057400727233900340320805508780735117329178161877147287770540333273023038031734541673492618713629379958965444021254288756789436185665130588631089256208632803917160474239848602209715347881989331587002099115829035550055589017622001404144552637151536810976843839962955801767399169397278347759865328265588974654233502751879537029119540725400692246975144315603939059983003317653767492370490352169318152005150454389685936783089799887298823556781794899481911715023614381200140015744184753467568342979872762541159655027437055556899103461710400230123698135694429280689053864678575613545004212347922284674307311081500274777679295269467524910121032060460440489617337546600255572434350204762756052322671579326899366490331035572258945735502612262119286743462816277685972206881809994165912254961081375248716185681398312401845345851075735496303794125198143522947177387622319225944799387050939477101474876790425906620605239959295898606679290669624224363572804440472039733463715331091193473219550176749580037377261333627261663741033327131342363560533359065980666477339573244088241567039040863277866315310399225369367059154805691516993272104160975617680426011057762990389397188170536561685227254304014385257081841387724591633454500999571350057359170026627273370655392752465355238079024638552195193148454430709646739272588181744107905994013718686304611589452068307242432841251932577694459757242209052533410258597139308563463050857871832680927596268303603627420712732863251448505269228615069022063359601253603230904805439733769929338086933706301181803812075518004594917173656130360234624790304307778745494840104487431225250060934395255948395263853694204466932992803826981635862861636499382014312676417651245194616346152670500889310417268352017024150802635379744007043020190116934163474440205954179500148354476294716617262400178311213218528127430184333785986216065511927237692136377487581735875221769875311746753986760117538911318019175427301180290182552481283166342286179294185265998923674087982199636154875416359029850458256713935810958413102874618874903217676306261836586735013426916250211960332988114263559603427565216903586412100862980546042478109926285977012638818672594222804785994629870649553102431300956661879405935186151631161908336049800456824511832124134879883087425349234510856763205016053767232085888776519647383832132945173436745812219718004809337380416899008620622313947727244358284896530468418104637233075223967293917289250651084298446426157880368330286601763927625023435094798878226819385817956873531279740889789689697181318455017169977863449910028752007396039923350430253453360201100690098432380792426023074626327425747840722607021435807376107281490045558525609829256122492514120785028114189276051313572721935668135620798225670247216357390826561191056544148522864419943898929686076979546529742211525347492872837293090460378081102683756021638678463323829695699759866408037728667331396324841866101503596316759329788332126569179913071824626435721919379033326854790036285068188121873657247345780858395949518467764126917342277939446168142440763240517801319509505699595773519869808369097792658839659634308614822354927959862396280003388263418058487391908397850236013764868709322513134455674315889896465644927282891455741818813897843601004038040860338436973342397661479537504392543714110322666951401257421934589963607851477581890902140476141456581370414999972685386130376052754232228536319800776350810154818944218133159602619859466325149383389020231354065515572573098158860929240218662046614522908098526910206061941432225281831234488490677212311912174005363612084609915809875125752011298510532763072124809506561028238838487915429513052361618725441121702653991882637897758313233782393551439835693217857310683386917676072288564068608847708333205449175914916027866840832511016924491570730266293248229130498910661550009933916751598986222033283191830809529519232548982514001966882130068434292909239014295264797487933717806319126586914074616788276194805228560772893183791943932740596667444792489438064238241593299130690664694354720153124848575962545565010080215125894324671172411991230925986876340704059061758544306785834183439990204764655986900414755780566075094195354220995207085645838845211476888418311709624867219418997891030029812191378830440053735536489279598335017274136226846222680115618314457529928208286073943777476945947304442628736398622369032610983328455051042868274897832842540396074710489993423157931700760961440931203740532807761108559158382230378787673014672241262349829450512260856897934223123167026337986395066831673739188054586247531359644060294131197433639832088911888584465842193480790123588831770849099300722028416612900016591218049210250162901468500336096303782580051065151461938777009810351095690541903811944912678379050519358675586833017418062454081122562289905303512294946286013959901390240499885999701359284556601838409075047528486471302714271960799096711174166520270920952328008449298375703013655892075299328022016284904085346726503203519750158537419717457861460328257491482884160574116431422117508343586146321892319613120257548721992029513084096347243458636227198928361839434803372051869598257901431099469913411069347974700777665299420520246524939549137780315403112301702154647459668533348305073434744947959686193176478828173321053276625710537008269198167844524164627681088334443794245194657215716726091838867774757593781561730582591700214417124327651600554796435244889301833078892026699549903170622701771692919890769253858489313579918061883905309388770203799359843283404678203892644560691248468562590199389487275922796100680667395257555762948572427738125641141170549457598933716244695229926480245780037356280116547645225526330907236797277450671943856100687738462870848798664767290478090541975032542016319509972491366697323494475189095957932900811052058135589694847832427128043739489631017564210235862273717522802194063260144938451132971965179054249630665354463906312274868947688789021677667368840451777906597700741984347755089882568674924661229934669622394574533989445789343246519183252264853805039292115148615924582445478120674593511650286607643129118124996265359551367779185331611960130647331332406495419006930641862651879323341302556567635281000313731920139998305842399498564746487138056034502909569892612827210142459630872020726062880953546515736243266408384607853551775699947429380768403827786272972123246252439245580461995945503872444017551164335529183617394345597928632509001882998528164047979378277341858257174554259915963764795806191550123762833858964822905710496639604670025510623269557610638657479375463623335206402531956251056881759623701046483718302625849120223979283076349773695622193682455683162230332920346274583191720013028961453667429513946681404628200962783409797917842924829217693594933339955772380255970555246370477983607542201550901974656727674591062008026230835894144108931939449575968821789949433332707614876998753824710651166223164739373092316109289268613469698103446329044666299795515860965120103736014591049646961279910630627373383445238693334687045934299183681591320126690874962514643276687023030640704656044150978348370625272139154221784659074013259930985400566038354047553907135022861176872391019690414073834510463295781298567624134608063921246001465595672637396147473304345785355612088763512445500598220888487475055737480233415048236581124739717179809650327913606159155011972371569243561539984726314423218458787524154046216837118942164244000854037081669354879952630944670753977928002922645612769606328279162987835501911656095122253050124085390483558275708965737236415874343276766622446140600775360262948188821309282304797860759271273645258354536055161222116242523618888273425158221561626506769560427396605341987573692734286394680386085535005237189120559717640990899289435372413437839363634502990977685701780368467252283542313791881063871376243050028413490911068050431060211570468081206032228638216277151589939715669768006539387716152291618441497907253285489701411108307638031410728517432680733362132996524331067774947235461537877495620436701366931831157341869956831402126817582089572232271106021141399501161621162521944469053523967358703367325464439148965850332708839146472445452965655046642385500709507765181218476969770196364034153474066446419020774947689898847283581425051121691762949042626335181915910920261578160416375956691241330333237641892005670954165612430613854640816190964961413131562414527107376192917707224961449207242782395757152517452753345629180850079401303763986185054489699986148814663756592627737101427237842123289439699594429365241560994013629165476734711649845830217395868491215571308593582494823669903776011345677854805047151799296291822517194931970127106094612910288697281791313742137615286233375979063100662583416123771444023794258846058267767790404514023544335454556023068748743270930953961869995095154019371095236217439723200230145984943269246798195697657428601913375594129583944193567693332837534854774401789226724802781690612957123667861867655119693234011664944489969016815826853875890449684046940860810462100336144122907104488542540515407273430464061245691849449410875834034333004854360955582891503425948226138705772238386557804356862421350506777384399584579989248499595644644127845319033874716064402836538924132146200524432860760014564694547208295618569734021350313015386396171908936263889245111001701524991710632088580436278188336797999877686061559831057616943618955462538384191087984486857896067024036558931100583945929527289591428416653883101690796439336178511259699410236482826215870059427598349726691291852743084322013164365060854422013967588917644132389888232625840396325684320395693239570831439243400356263384013832609440751093044689787321291153085479961078909707132241838078155311850888217428663869138186520442572822640381903593678173724329826715285585589215861073845906940474022008841001642030465980801608410671337999458715306518520082587684301037787037784231712240000616053837989107022428292111168878574247257096081918354150851694248489425978252020537650089734772929235739027532170715848684580313642851718850544654048090217050611301336940209205462443460947070633242109505148690048182496874231169232948084481952767672714117792803374505222807232698298972868571810487372234050532921631000849489301008371913950158129310301913361946073493608601017217934646553087860899212592100084822603536237427441077630722648201478564381565398986005733039234747842467360695340086369439888191673200513357184975549582336093613240314912214881445459619550423764735727304882142406945959528970994667654279617144734020437015747261836551947416679480849489064828797237094830602962451848039722053166640806923422935409370042484866338232461516929818056880626890217285942312703607497939762491736546274033816761996836121613292481591537676000310601562157267946059620214007777080791601121059498829267132164821745397518426261820438029904066181153339913711209677091035582795806840106100941865494185263041068823553164944920252871205989999660351598804291068102572593699138647835051951731375132970825400365024120745783082073631127454962671107020728780392902415639591171841665608737360326327109097326784439815057526787949187382092749692841590244063382145385160384639268073653187005584671684859190081044906742525556470819961777191116923313309762064204686729165747861793035124328409399313689485672508731529265974015313344881853998367172598666011556185838090258242958541011960357098139734076287360780171093130789348947889673257404540853303194619330053216975915338836418748646675815165817956645442905008764724420730258134242760871748841551360060086863612455030957519754431032519382896466026162973673794296038455045501854788006733730156364301525447486040633858870619237454261933570954675492709193000314595849515574042016823018976991566781301012117571687153560005069444344551433187990113477528013604749024412179192915796296296514124367065500323692370521770605859288745669508831324280929635859220868726688857628763100246298474779855697448207506245662510118831962098989530130532083593700401534605340282918378064825113120257008199445660902151085218558559241504567154430622149044461963843348631007693042146564837650267720903039281536471743644776637935540473059993151896946194230643815089333544468907828264373661545642740717321509066919145131329063404547374875807449631797316147992275931441750984104876220872520280815725327637635843684091509189740829107925673278416812195934899575498241923484684938955502294823602655829538093463277149587801232804205762422426266357595531076490324059734687969745397057210078459548216897581700581780024898982659383759655299802487610336707660746997358403352671487350204799032295074011830385243477537233675682353709110693872311681371609989276150986647682798231885321366372217218089166044055170520475555357140491235094888506953170286188968804308956394863658774024806438554036968260576632540582651085838215279983434062575488270928375310782812208880595939400532175710016596449152562455300444837923742110617981301801922492550302529202091300010305433257613125513198504808583055082060005689101862908457822362781264673005372531578789798771526616230329179476995860890073141866572829364951001118708870288529422307595012753226336719299049699953158054506103838303297290606252759279316387016576444502613660248081890451136506601544398157492199465612729932423397420014551387320954958411631047300440940408632909810698157053564042980463184458695725075967734786564001367713168434736380004911985774768883944596555170752859007622497043752502983157302896476330092208127166841141228584700270396683496853085434826188085771948366264332266931745028496707071286444923503930943180327094113354345836116642432257896717320284815205917265161720356912453305214000768608489468656020419766512782070116064672110309197155032076659950546037742896648097633337061817273290854777078711312860501096718012065553433358053532846078070241767803894283178465128377240882270727483360825156117275517570361861772241484951626539593258077295281007914563326921467871595721655081503675035637189356116451787573179915226537030466381089832674424817214955235224934611554647796316892176993902727768964018004150533709123084302847313599999783367190539059709730234432351340759290067000922716512404783603129564843576819639300740927140431857718073619915538187212219595102036159885008171892159129101556279976255230472267147648735364691866252312028042528740658102384050886083581776295064230881864748744344603049030577294269320803425770644157681986395238113875062318569870938075423761971455149776587172210045697150141074232462636557784656236584324034179328784940172814158166273975998459705940506882753090743300992180455768447499024581989036841015048173858210389901877644829960629989676497344940657843939000497922373123487825076794765695099101387933860096926013666890577475754110638678576830839668197456319102122749672274642238677865073241573655559009899446358408318860101718417544989555732894285067357442267244193645001785953304188345166230953143147832472221515845351949565855704575132809769968076223919046137345251589223934057847393837625925960496573537738160526824793600138020931783285721228545764682283178272677105136276299739213253660580652925509682547179458850540641249251795258547926187812528731480505425813442991493671288903451867526007526854307881684456571307026677699103290258372808298965299136783152089944662360396347331520804986719714550983545338851137662570917400791122301841427097753722281683352677468504942193987883954250411832564995607047366241579837213287111206535811098308187530640078360062694213403732684680571251978749283028764354381159618433122615229219315473148328937552328166333066849622607895752343949853018808839822044602240503291222423243871610276553552530197955007457728043514002252574385671738609815813320875634830022019404792470376189445896454606082074516777972065618527965371083270930066485911515925669478742454338497379286435607965394369361965514014479539993645921738867653458199654936244655540497637657427968193025696392476005294480000533007330791715889592968816427438297872187884751236986374365907057833620927714199821129052353927961646107875633657613601100025327262770667227164503748124702599666170658520936108000665615765779376623404115782450402755723171979242833320324945906455695153751519115307950756169130806022327305036050477871995689345559529964531975447747236201986777874138897665261452699936114448102913226501326141772327090772322360603638745299339039508590758064659319674646621870312508587736560443331660121320221749364400113651150390045342991438635486732510117772669451835081688593639880340022523840899890222506811091709222157501145810654312556235467030383322231492355232179849142804049309404339499158710842668985932825150151205072402177812914948973149133663535591921278194316960209888697773423451723768940808673628851912158258435386162525418290502777770350129689148620090780879778293838315450747137446044966549970955866294010342348428263841683367342172046805480008811428019756949482302329882115593920515228475980148936719747912590595702209557496259125848713830344184564894089688486121454862532829326038492759914386348498233959231228040038841391437258105672673024697159048464622707690514280047342767583820649156424093990645759632001175093951070645164587656002298228133204582088774341079852210593067140883179432252774845643506885682934154644875606588633232707173845479330230371807637987049567561623090121890836987033248003074524852946825065745124544681495735603412079390610437904120600320037146183014455493271265924053483203522164296408714061275565497517365979962182528248958417799817955663269803676941254018485106161635306418352982162693231594758559874087951505096980180266844947774044937887725935180493893725999967774899563070994287321419823996291381301572861276286945736464165936437919036901898376861283233742577493009019191846903846771544039483015282396196999720594279084475992614313397314331204845369084013254378643979558762741663704625361797746536397484148339024173407464954175701163681503989022540561709559325530612197786106673177748360441511284418192553163933556725776863052482992675526705005311995840694874134338875134600084356353141942071443402033471281940606278406258724489548986126834906697686722701279141634972500293329820835525929922315248826028798751555419795567716463247008265678410578618893550238100501083907615657368938938475071139767598670573964462992571272250586432060149802538039749562906462459775231838670947824058873031872957536143821676783280369425487185395969660938191039052949194025826937064572149457059340700321416520156673417945811993205905260672717038547253942197624601207360820520894185578993875320398922437567000942736949117147284399525311563417856687616899768541627159890534904509206779360795778059347100002611305515960521607442669366556808030034587945617001536907282072702245865885360792499565311793393980889576428687853414232740935023485480108294241832324547952650623994009314076673704515344296730660742183929280350213461565592915969096488506548501115910392351327209555096465603478050800613737289724813788029457524845304836319858656443330079514362745839547429992337924756174521187222052543605055033153957196932535372288180958136319642195399171802802826992858908281970459503274209216798837723713538898316414753483338422633704064428619485149665348677396882611170806548688043441710464434102534777169276101969894719482214979345665977865334958220495414066958709305814765674579303077286892537155852170564270829751883072721775746657307920896939218506736218713939277165553106436204979935317957694634213977422695417005615862108711863370677745707130546962918751501450062593922345516777892547428509708690085663254419336018567083042031617547468247932943125591093805439319230060223915815426651102712549559556339023912374781168820358415569923779453370996885982130901349160300183395428723552793654408932126438623421609675356403951554312194555701926481499146847923244030741207648659826535696445774505942819625595967354822711714490490358983194232646459962386061167260659937121987010116626084794590664678459082062903965799678324003082997716381657244159703560802049511676270001225980124862943371013138078422829349542175448956902551170222304181116118852837783693907169231478949330817244689131514280223060994266074186693186699576666447233809742035589857040948559120643123874572524366011419907215679120357759069750298978057192037448270078125870316877214707929827150397467153113522562272395934403741842296680511625262895563595546759349576045417573241564983955345461826615173514273666875763564711902301228395431785852351809481581853963179109883451316838492881182632128511102278945385666696813694399474451211600453441714378411288934333362524986988832155882658927627196470141100657659502497571567829170764756620819885188204848986061659383637820886684071482136925439059852952306098652655897546285134532993668813449244254304559530307345353061472266952955711648028553140402724304889167542142951301340449365617751360216576637808242820906207467693428289160425349371617497602968614250083841683353524689025614001289474232862815121130603807397075356806695541869023698765913112626349891642559943399148878531964154461896681228368475927566058257113272291130640423961736056181438085503320055163405338773661184605000631136774033531668756113784869012821682087788597032857027366010924671385269845903865963847837854285407813673393084168951578804422358002645930125779050482906374352768718963683944394207224562836091571865794842700004717057825001800808459916754996673360221311270210119202126625483152051073769205142808314824572545598941802858911870074079485475856506562652460080265242030555619279583326149332069793283770064977776687761757501866405744061943963763052910101345224670831910983414853429880569215956143428783023053322282322312501779659853230807112666492116119213882711574009065359981692539824934218769011580276471645577081239400397161315531188874114624917091016351702003493246752804535308748722934869918747712419986490242930566530709577200635917057864696088593210641196942582999059971473289381488920720232713777417098900265066766295539516567645491864819557592783605344967139467462171545919250643946922614597900191768549500363647602010703628562381101804275979686349488131658951852105960983249804793655841758136162684772832678661301876292274623152819656514421474766600313413384136298515138175384696129370752365448462626555677072576825991791225374069300013238605621701128851836639742663808558706515566104089775692675300551948111645749833700643559014187299722342707540827417543688858775365381511031372881186138663335452868257161722944550805020492536274246846631650783266664188372153202751596899422465240296876367973653274149613652456665731320259186024636977142965662947276266142838300088049298623637892687028970588867144199666081135657230198662947154904179290314791819565355174653388276033697741066322558597724525869004071743548732609985814940691143661605294898160522332065844396136420873728142846984781317931678484086280295451968516529478265106508482469631533298449972270094547787731932998554876567407470840861399649963830149108369342713846647864873666391726651098040553047386858693493486187407047884968174349548318193228286420895978333415641896696982312645435588532598161672039476574157544426579893503175553262456698841267623654016102167143873656618903753398228944073869444306271612129680336881863621792438267252939556060560495812282338333079949202033309399251727402314994096564800910887214260052876905339652350834798052359162026166850456954845908346846548374803438199522296231876821265041091960531876632800086984452110111048497622499927417870576419246471330541498636941996389444628909903368094658469245286606774301663274764047431561224988657396718426765781948420702804223823059062231334199963193494464110235134651626533265576884966161055729519324388676081028883068165054895442700560109742299660920872549095380765295637778876084439455146759903997066093915047090049888152485634392769911728974004761202302242498547299560368894245840012119438293363254978432453619908985954771878723417740548962523406772100946169935345359150295323147794120096396535952980513886059016260765424156530617521602359190681473022529453236130294846239985954475817694948021141821635478046326884125552110276693155286068198630324780447077338333210837678604559552118841300117401302850980418032481496278806077677490552954259251059488304791951935602828381058351926435370403758061946651383872990022397374079453703486897764267394614557504834354138577341958795641567168066819882188429594453802098068458845981948738844090471653092123364524591603294971954277979993584882019564228478860960977537770759054279770138292612973739449994957120580253493705111344497013981720321046748998250285094408076009491008529807623189194805072786860967167731413380151285556662618133529810379664807396211135863827774783697427973036528922158449866747821543098466947320978994567135677634827079550389508518024301520309993192394772130275597216265397787299051723056905793135580016568219899412906426338770623006916062851164286068189992023394367259337910665126958738591079229256965438781548918534947425689106641734517695548034720546211203218925365039290714092046643736668746661500083110909198803521207208720100744933133772672522068036418137095986136366269055507114787529904154597946995794634360319874179670676485653786128960398205895880815358580304447982193887385904355414522741830807399363358450785361372484232369861759642297354616796792860263253315425229650526170863077124534948115049958904517780574832938184818959123880448451536600127202808495355240015803926132838347715616387996306846417013350938208724594930058888031503905433480117808761551526794821700701904037268749478168121188950032972175899854541716391273918366504983390616354890072902353741233628072679923499186768017134364305552078510537799843628375013419167210576854498809444872118893049622463973901679683254884647337447371856931424435969699973671737022650679274109980716254558241038638834207047665561807392165281508366878631732467763804739211430180312646100967724113992783482216984390368205893807602602203360022840403187279061985999519176919464233378854409333402150276044561182979666134618100686507039613902323727904476393363310045278422035462202397933865401015489590332782493516943615479815634709562322865255011530570430632351462019991780911437678916268830912139785113178127048039103384159253666936116947425772981287793869190253786689844133105503494864691701554004420778189075310215521354761551841460547702356724695376244319945522236263336383025600456369559286278086666175671649430402090929360272521159795140418171256807760822467141898594698995160436995114828744314059291427285687888664536901511920034003141881343925260676578021442641792298316678164962641166542632300424881799103517343375504477652620562214141057604499664001168546089274742345638941340661430052230248503642794637368832903743028709169443563902885130511971034423690245769015173039827274851602361334860573902803044069604438122385849700376078690995355974286859459910436302955085457809538585755357786568653971647288324326577748596273037314633802667702053921215880154225100485876956654413481935529919098680194724127407480070605154376949295213543479842157620421845970038112966015030997959010879835278146020216640111152198387808652646919707500732844825209706318848693532660623159484915147555611650374829207932985763515231230748356843493494198595741406586847979017348247422350908671451867923243686814035485208182291062991976847937630746318934849428907116561659407939555400613664341379972109843801022033114342972394844158213265850631997502757491762078150595974620669052627816221869732079044091168592131329279308423961999136355411425919627834696694791236488802351281111150345197857589860205730224171325183998735228944521162134306044394827693291605535438033047754827428795378264685970778807204346528722535788644962753930795225250763481282169660543865540953278345203275999430124099627777031179213716228997019538212445744521444401574189084337971519065841483466169091653833004300108682841589236348910293492461082219753549140390689296774911356376371473252473531641960457362710166849833106142871388545004608442981224603449255664991111718421680773283175929572424314005688326913367125422594844238945135738851079606853082735574444699747412895293339505022050831472703080708973940027203817966975443589194772544559426884092272104441271077353934793898948650573158144295896057139305950245156287955994732561117856224358741678996334291445986888017172495951931685918261124030200449597127595804544891498442470239191505534953975627875276948552796807782015343697006579934846667532201779803721760336176104732969557224785085876267005345638391514418557639499304510964785586116837410737629918745028720813367737211933710073930136417532212009333371823134443717175115493295850166681796669924273176024692074099549794318369482046181302717365476088319769002571907415671248048267194414031813779239436446098979551022564779231902654172128986281306994311564005279695759253494249491288312428199748418184840348932684416579207364738836447948187565973334266497121002640884250755087812472974995719757854671730844346714706363821620579239051784425324669640025532524638526656260188679594243218129093487786985884241686123854481526495675371078172868220118725326819442765339390571236809055831397500902012571206713668234092159697891726772120547250217662600165170082156928698463519964273956741104169483596522034064161593321354897870297099991175876751416849956227968458457202627168064555411853322801782948909532492219083688928408660111826429933350694432241385276074147253306656577459106437830395426229010121504162133791792955523372046010818854377119645853562282904770782467681449376281774399950488837321394709107923258706620006742709586668536870098307909348962700522683247356547022339082100473729400371413409712644148305627055100507851070346759707651137540033558287366684412000310356906738698762099607372755239782560876911648348270628724402084110607617684430995855970095027698512605148668477072532709817645193260145047782067884462779381803330998333636779517271522207780330108323731551528101960415192256307692364630085091175721956942605637027207512256018951108418227798098376023416145584310962657541142936746023666260127677018508735324780184449951695673376141746953131706367925921884720895509789770781618546494112510263504222231475867709491071116604166878232230104895412749416750980560898345311692283847837291099012775198868965465867023562410792684533617520359107515405393966083236363045132575609817066911244018580279574944921608391550239138120052043890574429337232185507728878744444416013036813685420805151315537098903259779648535666102140116743359524765571655696068157718009192977185067768721245479370389749926269222631111777856988899442357568898148650582657726710830946167000642239157394648160273561093609527602297566004963306278943635648292804460280041628601760952272164816369113821703067319511810912181754392064826299428177508428458116885652460888104337310647960499015085835060464594787115995094916333641088986759956659549369678054363683442968891999003629843933169939094130672239404726930089917222201973986455097537015749205177275166440733632552635161952393722293413048679698615562244044412992010524568408505556236984516721464744178372884253089815854238004932693109081003871779322801727949308682798077501208473150731884651657162677042562488613658187758557482491122093779061655754975427783986048215818989381091014960621346221031600896257951627566412604425878044905539884581729780543405060655610106209303631443469318295343106687195450604111978771169343545638207482535982876374679035310430159759588047491952586838959403622623378904868670448408467740749566105249159919371243157714347166036641871469969519801589913797959469168502600250865042438666422540570205950747533549577460251744798163259114899725295871174651491911292904482845617811886572942942045921769864284869794916916748714707495051020964858783709094205541517389492303114079253417306340192598082468881952301792865833723562602818462370674522512511447900791291982505206422613027854269579725221392515748303627024188411195616641108620733686186145915435823539127119801090250629947281661177647566730140225216198638051905220675033072649442622006282945934743581909141147811125277855502751948479189797100140102858557175013962451545702155940492766530575808614540127454835951409011087524106230433608328552895469294489944538269284671464097339469708476283632724989055002388732995601584199563383583152240811783710848724433416227878468841364436312789553240796714425272307393835859947965546013819766890413072856528861326094885263821301323940737596358465061979891364808126889947632896988404959076254984520691118372063625835627229533842340579181447388002272535520420941413469022381992541891911317373682644564016559358324796670785163147545535583068298993896174658790315159491880421442912301482335233069844052753944304565047732231239593453003255796163253480723859965256763244196123401659079019029905767462768795400835192141061077686039682648640682882908941164303291189453813384179607680298237071000638220357099655480835517541551564933592693607286350190771599030350035863181151178559025850201634578829694036818041270974623499823252261964388127993701378246766826366970682939468081652949211154132631040177641332505933054387687960717010055878625790211770837996779026867953428471713971481976434356426926651416200510371372847194648601669037818621860554958162705269012898237795514545124574514443923977490704130959604465755257358570380286740078854821959892326275118416095011478816996650039325377273177605912999180988812163157989400340974773642445872513547037225629284784919431055266902199621954448948829301385344604985398849924855883401950735906440447520085829041066958026911317589643020942234523286373938857756841194711504682874221755410049133615737005078763296711345218934027961979342762564956290075807754999613479666942392595719127060344327150434218146594083380596354948406653233063601637563974497513244753767187418023265693089663318336659424240270396024211761643402774166701027466128302047312270543703905990591670640272857587582179709316916232532693330162989675236713975690240813641188597157293916634431183650957087095262527212529255517224288962801503293492361023335201644313033398680207451860713795527641822427243160862597689413337991111662043433135827139899518686165543399102991642241350135161336651934453012442678660811238201996394811008065828987793242498454830604717261028913349503176206036030339670156936011272871260592840883817970327820193994671824951417251000698834000852374643596913243727484327522495996609069770570544686736385955404653301037991427229872179469950239880727170713283311828355594510175065171347898781820353014930001221280546380100443818555566732674717722086389997862714960439119430446585591285849740534986080599105552386004226784983716829753505009827308983616917696599375829169522866383672294457287913989474617468411888211506087799082303662702636414716799760707369549324535697150081990134923513037863084004829780321640953886248950103884262980396353128283224516805514359618769527213346720147522631293482350167398031073969579517245678634868858813368147786587956129855708317106263692237878077710939438688371564668972412229932620969881647594681337068688435468196175949382716066613438414795756308055820808095416807974732710168725904204831422353845001823261717456248258893263858976238254945591251766061296570050256494736489628918732257774949669890176693409068872529078733665380160590195342326654004690514446653219197944846889105219162322155168354624106762587050686709539334057580389985489803262273414503338657541947696690501907476013418798885141249995845833721551775643942669184306807174682035744872995329429403739506196237387500012161682813660384660737427910896058420578588948971021700204617064873652246158899067568940622145308378865507860610932795769624166306079803630622617616196626938132714411868079374605466308323929416785214681689366744981163064710887282469377704126926700623128262931144297031244703683945630452872858912750315454589577927667413189373918908826176528195229234079742393709216023889223379470869356385611908634349530550930794162931649953126594715623308678255108710972647375857577525880448446553439022870838436669424226866602209512079978646858045948997500065182119646761442939556603685679166511543546775437785544775302547454548326152515407722462498029508687114412407816965573931106693696082943022542666149986336691323656412941849188620380662940658092221345780688044905734425674909587668167777495917284585842423410460003474742209106300580860692455282525114917492183525779576112187265526516903524858998455469758781532433905128499713563990970574568322244808798304470248109887693314122370849982756973285306304817716859497794867591791856794704506301199903408770042308421706940825112661231901232326505153342520763397793931182582831096041363356468989128615767932096821020951853511775275586183906515300384477151766874827914002697630162340658057638283834835851352892471803799054138175989297910245850015313509155654343043230309025794929659832579889102032864464989201738654659504731335082153982676323903398786593297439882135567639217167280334446980971997640231036215880671212288038971622637424881917977723150990212654622792653774596869552981857601690991477878156096152044104805928382774643889790241051987776663485386756528973690268676052116941622233670766181968414381255292591657358218828355705764915098134595783093346006230188807842863158254758457524918103081398757283300198267494911479647029470114217960083809619814926946257171269758542890541752689654419697695555169311297205788344332300459999738248758061408405059832389150518873562802416465946764039577533116227278952399582616634348617436112392540915086240884758176402628304421183417347502865126439073479031387949715950361322204834520586922042327023075324751389610970885935176800278471692905240790760321200573124583277814196444049944066593587416465250344183093844409222036970485465807127461759348796907526931327158920851023804952788877509377565902469460650359619403022614765781495726711645424716084093115860547212660116521572117770137091644774591036416879095906119050665663857971581707107181997402683000075556293942725548909583027904390858196203944722481796179781089156537006473043716250435679551309186482961209430987285917799338629442028304225604084992296066977615402344988460300508814466147673156397205172858727430766539636845568611223018681213607794731941158169747928847014120212083135977669891859493349940099251844912890807445100941193967046957107165076387587609864958950703324346254681742665174306938407138095533455278919887140297695532340591566611065101512907695154267601849690417743227465560306828287005177239955428386567189385440273878292823216090351440091093997328878953096739116276755897104851874969199040560224919919495198265369474175362252506980278254012621398611659064173178348110819494028489033848047420007494239121183755467484775868042672383991834445310336665833066751822510311064476659073104428846002807752187009161892844741168744393070630125680974881329362964457882729990656462358283407040754711331524294707661576198490372083130245479860976321514553083385587120392725163749012927450863036839806956605705639514409323880253555423751661571681609180356821962198123211623710543575113591736243288272217183306984537436354324574613393994688381217205464054244278586879066486314385566088461937191206986014282180996755241716032616317648836938492950131213418679432609136612454560552861669987653693888523627612720434894038798697532115143942470557947800316074405415378800978062302150197625049155067250307573300006492777590842335537014723764245284552957078662350584854912943180789784681439349757489244283939479730566429938631581378311468198271562347732164123016116960755062944619833504367452781034797080258240207100678522430153933679989085569567971116367459403368468199820997895084874737383336515345509377580197583929768627769084529989004760332293980171734163667270209260597095892685839930681245561615375790024782843536969480863929040373320131981906152841497489101330104646805446254350912507462051472298783795598237627305435091971274077950617384274764929837614314912858656729410991217797064650582632767800703597963255258161816722998771318069116596655854519422739286200068945993240270042448325642685615450053271346699120551488058369478353600179605852429800819168000816877126025203951716400329229344272073691220746979594589455443636915341608413385050934768225477107885239237349988994512017868046861360664525808213427846049239869274338863284716751698031176247144093507345466845783776901328481207638823116061193086738975783412426737247299282432739541174994003858371229755572234431606858923350204756493430314259533465448913508690339803602021844652857472814899682683157339714439379866534389639163229197784866318248799411108048911022618647376590146179636574101567891838203810166320229689979274393725746372167900633319833464465711973760129550373778251607290389006351596410496283047613043619042940247935192225652747443455058983725491427260208925082271345894425075930564670324467674858775633955900358260147354642919477002036448073744203992685163655738060402107001080394993227907662150282103169851586957903159055463052849196370579959665346476353808878676233935188289984799746304570048113703484939671197986712945814774811855308621324985043764109447809718070708471137919433946134445107156078728223418501011200728614060335841891188251703046062239626672008369654982723134024398105258171554737691677050446910945563518890492060394116746909826410544513120991866977230806175772454235998914314472381382573855770993873825675893381996076211640870370767503269427941103658330856947894285468301763842924569817025823724451967648278967357855090379178178567838248923943916902169715296144749438214085600199816961720925928809702744442302391227893266426221894715070678440171743459469581777096103285195566000332992295338802712741519167998885828224288999985887010586256516157288602699590878617106845505483880580711230923732880537844160098083329733307710627848049930155494005127146544987916832799260073386796745900968043818852364414516181558128207995452788436111420900356804513717250527801054078927731243915423840350187298902948462177446318302494072060762473984090902427003054395391398421436006415807279763702706968965225082920257443082110208283888200018219518487654305253787701996372520341307725621604334450990921024759906337540770456190188656971972447001046980201727255851333971718447376116245908367449148235810839064180040366422201877926197685725485606369721101300712294332296788013090549507589137171482347040574240290552015189942928598318354608580234294995618814413232724199107553739287210467311479367000437202441567221187119312668355459119732422108121753715271363819593678719121628525369908068261751189433445056752992056390418004214262569806562515999058061805558579444714506043469959575836627043150886043208441831079855868123997032933720560484926683204376707234103794120781695598404920023397464713472013373966662247990313291552339912916018814295933024759159808624836582404206373756444292707532642324404481285024374565876477992582082430013271825559953705307732986381420072102659565210805311686007900885175645813210813539215134916701720193159464063786609268605069123090172156670013383525119556223089663367810675594951143099451374843747277086546859521469631738045466003835832730000056709184499116047969517846673801492865504456822834430374623285502205412691798009472056051064788250728029021480110021229173675214699316494759275436115587503751426635663842868135823847672647191836117641496582088193781998915732589717688260727115095015760532159425386301187901241541107858610019539035104818256983912497466243607712428212122730548782293924427063792034626123241182393514962353858841188447622098073290106017965549985193744516701098511355216473409304400384851123470550844137647038473065459055810600884012362812458692180684561505080918766357309273573227181589479619653200205759572754347784199096987985581962069936753390205298750756055655932953379058319751051458130022856739696389310495441194967817354395268292384039511673633829744550313879564307556561669856077814266248792574486033911486493231467992454847489467148330518423432465671011796857029269003358617410499622062706183061897905857628394620576392256210273337535393688120527145044099545709722078696563092900363455771430062810246120097598526758151988391390526823410654952828895851136236511723180523570332246939036088368156984630970570460525600732457989237936831344154673775106736905379051365292653835572824595069891742250007146538110250583897757953415345746563709505394764220768652115732298547788158762611509904102966465612616079407299202275891911107090373276223452974358375677563908306593483172852804697015031372862193278028741894434959013120314637022484641812534660483093990820931193211862876364665279726918701383716010993751133615286248663170003098680102188490821004271640099243633841795012242374259626337088711536731373938834267277952898587381561679414080657568183593406132991479133802199171443473951483229166756804764023232552941212044206017983777974343757663582425920201700191826602208350887988730230065389258163585885932909506490232435662820817245769292970622582227416221134934969206680605630474898019736594493819055129013345863990311872482883185518260697810955384527524884785272519673595335928295666002995526007171820010566332583773540499317675241578267010553112933306442990344749711959017479645697494657196175302368604869660284873248476563711321222687122325564043077041025642387430145940342808943317429836976441920388086530658087122856251568317345630326650538630993528894525489617258991695253117554906881535421144582501686666545962340668032799568494064400965937643357725510957218813009897693337614853605823187705936838362853680431574216025766301810444619251688397825953957073100503486911888497796354984291048232667642965198565427301424537235264753840718840574873914006366324353475583267959949016580430929010023135881801069513246490741975858861944379306473195313376043012391787217014692473239833241194755998029934980620140176695549379177124258900732025432516858588369865165185554716150821790098881169522440493428936781078708823189869707612565060427681929571987747313941136825474114537438356045902122059278123925006650811782492885439073482686013897511474786894117244340709273378593010972478301875840930652549328829736297335769314739446414446049167321352915291653561993939458566380937893278574526408736818274562773578404129125688291419609764649308274672410843169593213188046154916381457181472156115792996392343089370740573324150536640195655068428211156413263849860617487030754506102343760892904640720464124380956235639848348815516494387794397119740079330863548107821288785717627562233512719497806642416139105170797363947452518324494281123508488196038549472459862824747060611953440411386187181680918152435908417271489637224792019885098411594924827728446931618623103182977269459245983000529345381158471155678162703476212892557335898015992979097766263094506770420297600811753524016482995959993020529473179160037567341703047402322810552725062773376361227483111430877436994953990277038547352871622305784380892424980200701421840006626093573920580905897227647939984460276894773550191750532186403777132809455617415461975506319317964565118438612114252327104664755144514635849126446444650534179709393454547745022563580327563669908478926268315505175612068245359712430780194378905227591160056361022577839390649998806156480501651588812337601722970165530441274425559708774096043834809286814355676678589687200282209073343480022631596159349319616622674070997979631203610823671327884989797368458536062180731134550047821888231634764177436909890615315585143172839258342221621504929918359725260453440914730265231809295714641339105940439257367321923055431220873186524705637470398013049441029114102822642582352670288323958584470998391863129011437186084191200722426889185289159192227439356625002976420033672728389352440728884141471039195325353840132300997407231049724947591466883426512898583236845087724592214315376541484216251397144951302473472081398427797430722504665530549372367179760671584271469978955335350672589071887842679756194456820180076800923259972797002969157440732713180933459259932531023794825212565466428171824778270468846344621993245988416117251960379486094390664309420818337082013672475698117575864289117097417840173916984004429746639337951240729220428550541272284526451447708876614041826139049452488110641888603713388226202009853315360977910646305294945090442563104779602897918738709213581816924357930271634701054291700501355724167289197737992259553455832609057401390414438489051928824628144382471771409703420597731851998548965314798315986889224024817020805993927788599956615878130979098481632436233113558372570075794774787390167117543191998960741341775681889180829265837466967791733880679201709797212491626162350345523626013642035776684823928748994762224023181822947078235094042882631251559324417215821156863546716438162770876496668628477705185595665215747881779761733326121661959513841890439694341956735373334405086504994719744717516609041868322687908264271759886041153017306685125395897296460695923353341118671613035900722089286820403673752880356752491105953405214793024571309866689710479524619683070700540718021669969881927850941285130548900000872403202876096946608566132938022498104977010819290111199175456803103627309547914107705246886803929483742156879274751687304505367181752276875007395279108822738415862805692669231992990953857781346500034406097838020743206695692329971090572223787330968809409053258499306498385991623963852971504357517772426101062316150552102330999966833673086118598743403137761040393618460756943471274592783276713566576459294031264526992319248049254816947525690170581315737251639042562466678835634214176628817485179668826376247436124001639011810617582427904335165086765295092565558789552914084683237891011102366062155700047780136693757504551683062073279383773246165264643947987795642715668258197816992580403015135536454296824668482596817528048927015830432762847750318989088848391472249762236082237567506904386385743453612875675947477027588158169235144078250704843725618057995014704373126599235352066188964964240031384605792099822526338601482192195750023142037657570970160401837225788144789101518890598255835033820665826398411296734352232335850991704088163236519508696723295295912510580863427224471232410228584905954185521494801305856415110667546362590953109813102101298811014173355852637120356101691953710316829447952327441426370487363226275436356574214427217170686285942740392318481264106986746963952243123711270150862203823969640870987678278711637501408229753927586388314749887644795470812456382635226890247565467746743455775632366437257904359304036573617748230673098231587627049139258920960335807140652388545351639146084850669012738306572747836148783403429020713166774100687857640039934400139158952769800543444400783685517586746278813748384863966065521117489571043092950195677567561459980810727580452459597580573140913844384519824014912952075495669490861300804508723907139753664275544669499482943130887830124786606132082234249922359834189789900952426244661738797674375734909644723002962668294749511095227289300317493163020648546421953587167442659399889894994366091474588527002331501328184159447632829399013677182139602324600743425657116100955853528448727143745993445361218457487616544308686149300170425000655923917346489385342308484030044919806203094132391257344159995817716004836200201031916949889892685902798977238138439801837499700035759486468730095127296351516600551621644737716531755186954878223257458058384181148022743019258587073767493967194533169310066558243747502389028370131456973994252122047647936987496787232277793449521747113853196984102892107126738761712695771641797868659193495912621875116546036909808801265547040764823423933464192629583133068879759003650102757542057149399516866296696584834537914052864931843607908818709305136218653076285344796708227518562008921599880035958870738661634499861335737132752858200005048142375064978678837415403236829208779191990211424559264776669583450899005227510020772037904515492423778387022165133720225019622723767986806662408694040106841987805156691029131987342645091679014384740636167582130364956123103659898730856277670952853977064037892525837477080903858087139105264684028564357031425859711162445218831448035020631303724660746422636236486537523549067808788651711303758320847181278209884893596418680594051122018664865752445703023313548763995952206549898419729474986508935783147368594843899268670900878369929167444332775670873469180296407051615795665111340031104249121053994984652569902482243240150531478424900462284801589239858777930777515206040755268252733425365042579420244059942640871599525184129273229180656619186041998374054415451725753484999300978784038981173126486055498547151575284164018403605178939519508449026648158162980888355532097454517736436665654386426093133550205006620557799915436687465815832005395511787027141661126533087288587313896367329958391798114689683561952190331363799210334962838153146763432400782353656801792760810411673420115098609896221475653874176258575149757182366982914779882614799541376537697629645664932589285363727326244639250872031948728750494183292123134495624961578560978362888736861398898665794146658928699975641552931635279840068388550445179430667854011728001024626399384458971238305721201750107900599582424448209601796604967919490946705894826512857419267469609056889653306591422866753908588378629683995398801620369317397087892665458396075034852221195585937702142390224394493792173855585646875690531234960521448283162400775740022068854431432725433257888479838948064181556602409265346884343389247454687628648959567987594805762370658674448746568021380833967868304114539182598498773816898798309255779609888787445559154243336963698995697145584301212509945721978209645292942241463715346097912448764814356798187678617757072636009716468279179784825895139399884326432117360833578401695861672962640337462497085258956151376917505011052694235128807458432809190337239321707477181275821528481905220656018726022034742659551600929291488200344871692495712169134242982238753965209701527933035869922086759059390679918277209480667735257085959022730308888048595867767917654443333941830036902052668802617231862479610664360320134498154029886364380149830578840119034961428982917644097348738053004522485230782777309946986145347153511576995359235676516077900925216813192200055896164798748067215963736192471420761632656382984049735491750136108747218283045274872522683513625535747220891579160748554665430721413312638018916891909888796230462430723249176026444278265017130386115485052840409292570348251710299313370606902595097115187161953762351200319443096944627062557543272156319870762930368451532386754411959863375049838400837931523723806090326682166787563374506863649203810276627919922846712824547476474253375901206353461765095619686981693057722846666271093075430589428188931408342519847504062220783128857173579165918533053030380146529003556771981107300770439758977066928777285502464509497529095683516730657257090513099193726271594213738361553075398573383606150703349957524502681474679923147719443315983000420952764475504488286413619154271252448197582155521939375637115929732731605697412632665333625189859716077472305974405993153319097911609928080509875053316425284352460818449065702752551199829153647013902555753889672361525598222449455164346138521142272496460731620655095291340215526375155102546834737516889183210613329825287353951697346937147184372552761163759717275083779859773398002789996617449498770353780642507080772756509428310187523674847141567539581461152912608562152701664599518859294936132663364680521481166692803573290602443161196988718248498537167434321073743545564267289295683152592408001397000888728665715455020646273186900199601523118401152076589604348596451658066615656860291017054468989560536070099379506404859184435165468520962488694610188769454303164577933939586199389619444520451874395939540534688555252572790365942706032241654310500690578745862945260094763086209168552837341995083546343750261729344053723672858331335197249817456765384298722283430257792791742543158167778036562478881325234529992930923615544182066084598929297829309880045500342485620630329213762969817034899594050095631646812892487231342397765666775853198788932672420709885448105335124155322208054551350656951473751149453511314853079738083659539244446435684142731014330203609139787673469984156177040292465921498261676844672048954467292248624569114868500322480091317217299737163636778426676160375983977216710508278876641654897082668885669718062253537829662819284509385364913423241319260630430143561447376111262686346423423067113054268006772673195682022614599776787920405118098824685776156938077361780979452873732528820457088860507907754322119806501310592029133561726453321873849492404873315432817899180025528970109189516388221894736426189978911627462162566770960490546947493333783014999636830904235306240149774486794575265696585205539192491642616413940966681160907292146153897643634349488606000353877363098592200624391816796220439533213347600621547821316502235239737575165110944732039899338818484921758003021616435369624015664406481744570435426299625131949563346215022723913412182373662391455997979122203840140145967575905686330888001814196453825090683468023648429574642875418108808492893703989399760675955455146054037021784418111524569867676910165884455733365191285889217761387561498109955122241999006530207381228665939717870243646003846380461708661518760253859304298780669242548775227865828790305950393277283592509931573923356344800067168467048686206063242166003066815383837751955249248956081829094529652144025384030428921004338536873676297772353344178267142766912076529487291158716519578165507146420863361729971355212807865806519438747921428036510059062202964765186481884440263061271682741524095068386035949435112461350080185232666316908143677621564387546395057490144847120318737877218799994360427077548762412460976257495344917241392552021903244766252552608850022459201219770424123226391736663929782224223030461782949136274013807466273724596019720594768725429380240620242584653028348262377190314082414628799145313058647866917034201452832042319028346777517617419569662745747266038674132953492138347244181722248900626525793913936648564930477984497023307654564547660810304913643354150354458858187839692194778061017380561675434552643800961228201637399717348851789605321629191287810965176832551925858319264671664892435837437125122349517200709774257234791227353179752528099974682032417658601451798932225550477300847111071460687153289407961206659677740121545543264583621565228289089557549832339197310743102917102786614692208905454654531460657735812041779784477138750606577399744327396598026474711739348797234385245763553182849131688177089254918998944184030461487016715878213777472760860874469478809088252067765639588548791263472284915532528411795023091945945734448024481477913679677937618363504142630496819480056159641372964338463681745592512889406689902749564175204140122695575079567441248783431029972941789284710008103314680989366025271476365116269949024345210214710160979009902172574211267484828911689098650515179429191011137909677320550650221114176378171315506780484952658127176549371359562971033082718609653399855848847214672546001891437063698016537152032644087939152468029349310521071535709566646110756011043847030660500122578127939499262532732423788895204639734135917302626346923441956313425896924493110481408197892090980027427758166076941162396780101198001401441607207167152971977129155732826099877964584958912837994213286603368324395197794143040651380240138363387957139328968473093244215834363416103407114203528392082448051644452978810230283565723186237236763638587969174825866609507743384057211774563766248569129925611048153172235255149798222766662838924242583388144388562632404763052356167617748596741782864515935156543768743666570539983859926533314976330490335009174183578070072308637062068917375539202419521672867322692951112997224713275507954109354138235444535319962664706419019126337393421975161476555852782470051078244252196969522660666763902326980750987217827408327802264391036525986072450622115718596000372756773286657847219580216212033386673604453400121982208050291404035241289763155685536213889166817984811561604137297031989975594519368842334433171464785955449848146525676286657851015539332763439047477158647241553930013228322987229493704131747147433909828736105489334167251781601639895697544677547720384123107676930178375852548241770500687833683022752704370281388525589793798552775393398556258684357518032019823278246396525860734389173703949502965121699948985450169254662266741486656973429021043554817875115043478721709613483231586232096120372076886306305922349955999123580372868487145440582047876210882199442863196590878967489426220326307800738080738326551868188380033520386695988609453502665485143362714807520781524137335378372549961356935803155565462071088160039481915643110112441912864576825388940395860507348334219919638575871564396803618848826300145319825245858887008507140143615502598949389351256557842106664372644696375546924417186688742093824037946976730582235109886760499334234574736432727347574187272391288703955376161613734695547280869317328198117128712925842840486202068412457737828995566618289672832485738218923786349864086558905532107700373965791134148423614264524057921578679340889181363042054834234397475797258786620054067895827356263054750129873220115507279077559120757215034012074705233085161393789815550305179744528675268381892911191999130754442595122555308579429269126266321692825288014172706330251353327593044616318109170304153046556863552356117675722032160934054181728769503017240364043374815183644778525200589955679939442064175947826345535650547474603904361167642690851237961414672744485292070886039960535032836916470040971357192249986503041564442131081228193097815531849321165797276832131729119927974172669497634376222917274795610221113557958512295586441162589130260575960890137801035540413648972740658669269122959564325576938791657684413300069170805645890416303522613378276732493781781734285084911760895837130147420077108523059038119781967660558521139121536956306966441794838607885013435195068047974742936945031587824046010334758855570045403052940877922375829961579236401137988987335361605443369057446995567873388125242499132410565972086397671014823295033701480996326499796241306718442132422516943140313945307030054792334044412969428316259681387670242981671373330675914022284507317655754162838823923749515690194555087184521687000129907852435300072069587319653188295358893730026543837366450321424751053806524786495051919957096207366515651773699172515322037000704094834622813328993052596674153519234990783968680142242333974689499690608139578455133881563127131660164854318342732679822666627618232691335842210613775598260504631568885732052963044179944783743166327954804055009236100150664571762865373169317720809384596356747611014302217371761910176507246420303906631691691530419942615308623827463644432168018488489575814690479011589931861262105071762961445697224184326355664388178736953089020892709836067228413223611813370538383750696926610734395451323316304285506594123463111068882221008113394230318890710517896470203055845673731800889733043667563502244096321144087261104562780511566010665933138545856808169391386817501751854115384751136381467344807075056489876904204902082103928202805063666639924188343303465626669281246690250218030847720344528010370960135589053864331267753165557584609096462725317114336579150635567638237361393807781183344054437571703674075897250536898047980605389544134138726835604485319029415849396352660425054680489621780752087837836993385603296412515003911554123870800303823322331428727051983393022400758232535295974588124384736347042091240905377215417245403767186148918374908548829259860118364833696547545290481750429747509194909881744581909410073399333235663109727946169220490574636749047451213894687054072178661382244627128260502740598267989544471807926736142215044512386651916820251986877924447742253508415616894928181217499445195877067718226552425167219153157466710194624699505160628478088435331191078709802769051598334161469820102381212775878835113013615020220029568008247112765345609837958485453172960098199133149137198309331053956135043380071324695809170580813035255015436025596547097440805288251937826393355273088546082954147693290151158894623168635327880379421590991730579473262006637810949204834960411891222570695372446439355251991546825536606757503991994934761173501327144051984879639286928007452442014754924860289175070612139146836835211760612214458187982587190955921676522229556895853689753702961141759986487808984861708634113316722977983772084896916606272746110582641803914426278257984318407309640447477951195504410609506560415531709454118107606790531308897316327084095509629141602598191909011610565573145224159023106139111833535830718147890092378264090639623861939415436295011609871163920953982004275408256603014582703033304539284716468146678789842799514939038094802862978722476180603316118808284323491840836207128746314840528412661559767293483935366240459091984902323272648950174785615977367819003056591971070692906230688591512963470628609900884366312070388072062045385900466151106472347156020321111199253263491221378341738295711295650859852695907233233899316892546086131112263791853792336823251253098374964863736228288698372197210649811426473676077726466529903527789509052793668721025602988796229583924363678777786601839641851261126284069185394045295409941467721357840262989893558073342405845832019147977030167390483032708323008042104346556540918137514039604659817967140131527950095248961848787175942360038324994780095846504459506913649598623809873705126732932973515840734488039386019361227475444566568821760478280238290056316559022902461315277091560981101783940108470401792822994672628530283521636162522083697518956363355475000060288326001049476843328356928270071894448918047260017066343711908820793331469643526939384547503557486744463341164386802911049644790538658850562842581894858617873475565429210585459142846365789052536525510240477621264892062335459697380651462437348123024369568349115703609180077571525947499450944145299825573745474656681863688245647045230850456040222971044296534344258946512194736217585059513939961982575757555056958280269696198602324678678706089441845186334946458289153202209067403462252319208880821849791681048784325320796667715768485508988057401994406532401556655597802211464679114205373329769987606139526250289140356003648746089373782005611022859427093109762979892504676681896972504561257841309225499574666127814557895185311663119672506263695817188408402538325951166995724669092681441031180774500539978806203774019902899598215438749114461929751821045609478010459862084639567668041116308889667707899078209392030330028188982225390957575234324571840847776651364973832559780943300599410269673563499723340243833602038693207725232192132223043356590005219905477982722165928784545586725802396286341459325110448200172036528625750558216485876057820707900346609201285159237141993364186588372229890978326333640674563148214235692008737396078551148772891428832437480478586642669106475941020515139311805187882639659811641362258856730234200120709312181583208174676565065230689643342756365940555758376275581215031572984731754396023810872632576652440422024139977561104902992225974986286318097383527052690217102536802754560897466872617951426968266674270315374858655013664868446031705274065954712676444147784179974577788175771665553018739655582725101180138402828326476085494951256333067442937086093147387145594767502639459416722154040000537015326492797547309133910222001242619969851347152876351245006586674211040847377118850673884083256380384219040360151431066113587222955839827558502250190616863195145604028752696213339514894395545944591856974367714853587024144012044180867533253637950646871524983577040067641947898791254838000663759249131950218297947315967896711406219726403089835372108446769546343955402306860708838626843427172022080027965167426763012305478548245161063944546340579109984188634135780774896213541004510523974161260661350550241536196395186229065504418232777373053422962701051810929320005390284269656173967638464768902328062877587281340984011497209732994491553620808138757345276385690959138972447399069754801591669216911141436030815658632534502905815788276167807655817309242190455330841106657223093501319943752148163056771190799189601215959675673216041584546601873849087333160161075418793688864411267975557998302425732247917670046684520101445637606093362571895932120429697028041768012105697827840019374107776568706072745204940455384900514089287438289595926553490763298126602070586352449124818951409189390490354023892832015410920643293598959081609358791319451147362297676779920224040353728521449874250437436283981543148193820323366318191133476701398608607516202419540998800299230167443181248342482255677583730796755531660208330357960523090335614935384791879126973351527168447728085791650745122846020821970072707276221525485298418288418218084734400573379299850572619764384009911028546182519826975033821297404766846160914947183416531114666218138192888291952468758118318549691599784222484307902190893990576847533010732842280666329300145708946945713188131404769572125012287576157734560626713876511593469194674854107320927714480991085835416314779308845859492955893391974575727691484420350085761383476186743843163743899780241352511343054333703788401964151800953975964286866701011992048771338782730788519060253821117390789530147465056858762877379239196813565157362213517710613710868532363193318203412293682356393741509382869405826270402777060590382682106803018977693257666353433423151750244922206663877268886449647276896714846174445698006046526076434122380503879483151893191787150705900158091554833754792656842614329822465740439363822571874236125964417343948905487421824153482861318275025595900137936076747524304731718071796285923600210634288727030813439477066681646872321098111393965503136785520162669635187332518133617443753751370347554695590037713857364236868733858013203503405906582472300816210749680631521887405301642098488823158469167326982987388745818625239386797000325959198550628171949243752868564072217030969513543928003549631180162814874785218680524854488784809781858546158382882569105697154658463404887312580392426154256895179495958111129426320930914808567301663536429790752459350362605030873971376656233383394779981530661936207834466775042563184229841186967516351285334741175467367176582051211412723507004859626375130741153629577508692427593868941525866500073046798435215859400514311695380215983194681002877318721265584129410484183184787212635179738328321674709269970205594886708718647100607844861561876779165356306835641033180003884388656215396633481612733776449643674275221242634420389130856466734543311903923078348325329559197227696241144493030894978913422714602497410017008206529299150282671892529165219510603394702331026877693589907255538817009021615722350709891045982501516474811374365017362411131759255332710351323636937107283893862131642484845514557604895970827434829880065767317971084740367288441521970465070939190777752787902761575000337545648974608134606655295613790237888504073215927392974795701181143092493819882319168110768072436836517886518654753478245091966340279280991678226942530358649085584783076019100095795787590039721732640565534990447542651797155823812127162172592482201297833765756911575097573989576981455051740197626747134835084337206132091628467123434879272197963828826461770009884923329021996058938455890178200859563555521452401342675557563797516807948968023874298996459452315819956395865984809679460593902790018807027072840975911339191270706738190136400615058076705119640059424607474440513611859975832380458656342672212119510898885132851430698415557795090938523616985373210467997910044987504570943092873662690569577277368195567624474110472655645230715704999997829892381169359725406199181947969694848317350863434005726186095521668852336818410145326091961474591743857576420628724114215416684567575772911620906345313081997817342919893886731781366482937879813077617207864805210452616540691758271668087400777930812947715577385979082849606757551359585550499184393955449318473306871778106819633301720858863171488593384077021426020918583153260287885268498804898983027074693948338230820335712278521293878025073970192489344826473195408916635820352866269826598330820224359853851230188203063025077725215158476121216638488239788006918476535748746503820428443647265275994953226971056306841344290836829634055955434831298123123070305669931957385254413385670756364286578654859732611031383653574477364935418957215966821132187712415426219092978921187891681164153274925287884375497388520116882299758044409101723208473542889752386005314597577201836823613182660422658630518822194005515175472196446511360492180982977356209699504520524380711197952712908688464504198413606357993849388458867059863355932557008390583419373358494020729324539155346693998605222522211861173705268533915635087327892678100264308620228759235720488153064088176482370539582276592740311407987271227737593652879692399596302021706321278973166452356365459176657468895913043791006284343185964952233120171840793158777524536829951174452210751353211516719075334142720026176890527299431606224081486946599958167695973234400301382864733587241767805233222576420710945785485275452979417670488813436915927004181902803113754134433338878197545384710365467475123634967475116247609107071255318740464428294845936001338623365397508338581706455070091221910235047184855435842983629046831754472424589503817615321899929622595295544620770682807551423876543447649339943716181366884637601003700165206509512866222412964359539605753347969894471546207316758816176414496153826172652655877903402722971430164040651201758479157347073653289897946058882282108630107312589886169912073237285427548918266634198971177091300683757782609178783942796822427161916329293571424693257360324519348991767296560152047315109050620804208225864605242157890344720928411483963453504444064999754720234686446954990072999774237025393167549677535069402604378938121288662170177161491635373513657271245941421043717926911358867088279110336450042990623440234349346578374879720259998021082560175112100493652009114011334149463473870213429040671720956245027744899914401648620350676430596527827435761006622463561115842481148825366221141746030227340260839840935845917646916788990778005681819088533380976208586963433012764626627974390547048476667954347804911554368516833582988248197504911885862008012797460926230656264812975115266956308098938378401184764907506227999720458271932047409901528303991914009803454003765470613986332356610254597890706504142798530635010255575741104092473749738558679006065632008135546792522790038958195335591726332525180068525110723541879603551767929424423422930240876875046220402822529318812452769779572226926237957007637434986928144154474446615982987065049571713362605240167991987545732338694862563581799063928273139547593133317610041347910210998289332860144312603136874318069963136863491996746341655885351089628048375192819214875049704489436761641250071288007353717451362660313919422795791827585917581552368204514659364958061309613335052770831312567059870722804001167081430731708080422852930204888965784023755383399571962222304990667350167132112227577450513799319482197060616096787483310598970948325201836949924085295443788649198022184063352681324342391681686792031074875176522200593762684870379042361717838283403663080812895236262499147925954053645734141335184639706191648982719907179351873302040621360094550721006472459289148925694925399725206320137163834828165603204311144502128406383107831236508381685471492765521863431678432404555616501685415345388024272179659431375579736197642779691521618787338916501190828434585735213012280216580866014368654117485342303568928320810783525632665162819036004593003691170754684278057608093921985097088791814828166455500292426988779476586245455717087710881822527106920134613318758522774437316754085138104030818091906706337642941198775413769584567184041949329799894366826661598283529670574987231814956859699078566027860418803609217993966636423498207149356920207172319262900926043518533462339419471875520157949722513001391200836709693227879137932540472911965348380761955244307522568872687933445809966832511207426182366399867266640106959863275611440902080758698103496857609329571110606868526980296864805840103603385307435696351006345412022479242272489844053046938159827913431829739125128544820397938085582730955935468867068118706743561472612072067542379101021917025106323547008918684672281966669480447602650277512620642960785104533552161041350607748157243259172686348552515579630238986573474572623003826809713369603189176733565748885502516667702644623947655613357060235453135279740087183671971716291610824072117922830278676337577155806474232277538726986547629526190098626537818369436032801203221159013128478895182312146009891541898652258590819494466464219750275655449153103310362493826469863163323372833825599781297599721780962992398383606253173385912071724783626666004414570698936044723402677211089240200203414784173067614811775851271764025006270832026753549406411151824312077270479342711175065233081344247790214667212997280259726751447580367016513983443848371969718922986388412198110710302668435454736401585412507962685354682704195080841417739945268310302835940256319768907000735058153983224636815907623644537631297278747521044398921664976098957344702260106183837707822234878410686051004232525593193979312368049827876206505505537217501583725817381938403084309404187204275828654335874778231158387235996044766738225138579905352949127916173404387237157895564055146291973656874187740008861682201693509911735317735773002253495867364458695338837008925831320675670105147922421054759791942460907197623663036905889946663197611559577836931169806004504311441045866943774146137541611199099129991508557625360003935096277280683617645495599796203364725839749447674151327014465996104390988947708966044712630962296796118831050571106641500788168662388723360858750581110818736789158465604486356034715404482186092107636859238188695564154451746900577089040261353811704875790823196206597106356624883636385807132373626089807417982740962137457241528551228090771387690156564261301485789137828083444492753600743166232342583836817287116328833243812208647734298247024567281963165194236473200945190178707109850709451236336511756687165964107205258474103302880408224227971557154968235551871480043570865222301999515812196383050555849522756142055761861354567378775631311061541528820731609125108624115937798926963834101771806583475308402521815436567153826658121386516313082240675602276450019867554996786894567205892053326164583349975262525319994091562359355204606132048447451677643396230972073415346781411701808066580769951543763966591944591851201715800666799033300765245971264323003082373872707644741716038351680943237250349508055549082251308866583580991957254402579536422730558242459542331783317103773751840700877801156440118251809907979447601107312662716914113883843838797258168620079787601719278091652284890131762692147758677629167117090361151300510911934527845355457596635495943878118127305596497943920608703102628960585683963073483970426146734070943465528334929538108294619004523099121974711961199093629095502485214896400681241994381058789982301909159913437433497576874290668030780231915137716686448739424154869225471953567657579470070261593706646002218284186015816487274096185447400125886928412896531870993290125503433881736587402192017031505019662819352574699181619223324976663585123307407631357390178046116237113044426380499441763576394258188985727007770208378290883572539693738208921205257878682736564974771552645897336192832460064326892505567082458103222151213722340811133155620084428466439441586597867199545218664751061926086473237063332674432977735182546330646888101829954632836958705775844920246077904758625421943636011521315969181901483801508991492145022018017347802329393913394308915334932576402081310009794056967192919060180286566981978248200171622175942969341979294045303460805235360031929540001280879671887712545769634389663894977334299766661042847283718908730723312576133311196153862074924637939746747953862207213056227255915073034146601848542246979672824773071843325863115296731047981669033825925511582162232743644479525558265181694959819328355356833205825641821491257246791822546725919655101989277579357981947928120589755987452076790340006017357828149861598256528117947817549129767680672383777745019262190651551388913491589084858367905135930358534316856187628497210659456519267731601224070525450529403318095957240998461792690773363104222496800291866047923092457719242995218961991663424163968977507832982279188129860802537978348973682346752225894771045666765103739636796733611653871370449101463386716041720760794104353267898927482975442045724365583912544678496328152443217911617754540695722702415340411810341911141964946856710060426282068826918512534274925819646535895659983874636754093993229298822619081639133041326046979385456722816660265940585958701399700304105366049380923872636663067210352744794890223988129366344087791191442926255780629451267416407271474554814383498515584328846701162148308628551598354511068228604879481958861324421448440997349080050338269035885957805009315034508982674856441473063258582343842141452799043137550418369894258948475673250236335909343693015680515559003050726372367518925401383783187941430134181178786169412976757697667996869886545865426893830077427266499650759405770485019285827307330598859176734666668405454127276430796651382051924834508307783182441102510592427659362023443508318510200420140332044909964757213020158630841017400357895232033403755832436818815469820484876398485001492442129148514025970424737965473380105466531107416153530811795654238594588793376041308625533145640411772457162240126453293443391756620810952317050643324319346287425982669649375224510789623680410615198877038053894419461921848067777269863055902351569905427489588831178609969232529658867749829623982980250480731216227308206316124625724666912565621029387560509541677781720021321751868726603430758418963059082256052205942323741051180166011955330879703044352004571833253712908286031792845435865999972470706759375435258274609134388698494322030615186234451798271328324546348630557015919957010646400279550351565726786149010167041172752331446957445858510243435974818421381540191496184680121221125918626452283038984880988569193601311795084524703834523721908756361338908434905497953248483329919482427065056951523118165260689620066556132213853566654268940798911381491413071278941300054955082046465031113989595432333204855449172784761545378425085603551681881398111900611197365327408688744089583586807941764326105998877655013655752627163409988181713131631422321377712134034657865484273188505993794844872197835103521517265052859898547758774037026714447184915031102116678635889170044236501863724390432828525682648047955482248495524681780816050055085877903197933892391173017965128266865995046942478271358815359682576016637907732978941964794714870765471521633912772542453962635185188802440764502247810196786995034340617237620595665849211921587976883983430418488873556159436923904117888774859331707966442667655993692428880173533432036600168147154015652295117804976714611250072291998181951414938130226583867126597209994668480039083212932114094811249415823246120311573344601521149363820802360566422638797896622099593446603481185558820812520026485098933787335014520596206061851932426387955120096799178574157021289895242757033622438276744278507550721518716267662812524666968277407622122354021488914125269831234133204281382075297594028893878267948860746402183661902836936972505810366828231930141986573178744957412784690695442696422806484392232924142077165765515107754496320271450370243278809425695885551019735636672045030222552692012879498910633313071642393735456115280213149830143381537627835817854270542394551613655495788698149002189954815256247522130323393616803793090661018678168194086673096218309132375289000648020193706372653676314729342454454239771266206982632183081175751831366558088969498980006152660447316703211939936450913219628585206987638657705743049674346506492871883200376913252281935883146356911302752472073058188078331875158591951329447452458558150858248467596616724924122919573537024604499860711427132369316828171406179155675269237547117246939160259986069592918269579397983948976953374351918440774588031692673992685999012277995430247615825013931960503923505716544951258422346064140403749753678566633544844033508776166587375313454937073424779759114322201832324105013343484672763690930446023369860380584875362141106468616218513606570831562062246739742797088761279577071226635045418408174454748639402116073638531679638080552725893419987039364311833833247633294367984435416175796509702509201030435438080063715338166006095279500216196679732231963472157545997139714565007251858784019760736170538327070041023404562510861579116958072014278790580497591571718702897055376007147671419903184095110408001833716532376451506307949539175816580894000440932502355956031263029939357609603847548899448863163606280894407166656620487316660114489192468790059949620802660787787274166135130044528156483327084406860898481416201587811854369860842547634124913710713727698231623661329018367230178515741955663657868281257418547976548470336532257714355762152229377767916569434916913395430456931933738947767960208393633352275338186145506869125391059301934614172911172539507493635230742074721252888691982675439682986025117553941277867800986537333532778145228990940511473597749302099056917006684463709503401428567579417251678724410502155182802158461799916621806166475162131588681432240240659698069707854504965213119682583009786643855853799319159513243214103401772279028337030246296056717641312537138062305140510340848090532120940798564031799146664128943755679438573753187493725887438169195598401130039531856684659497308002183905648630713525347943539458260061849433166035510663317646406792852880086330114883948276327823670685008040178954095376696890523122543911537420222336412549634108727468572513812130228702840433809475730316405753389868085790249554026612534657383247722916073684569596503832148149564110959810664335900798289809827839146594730636968833586759381110293946492997373254228242680932605706642652925325889615232027278634136090113966358698910969451241885450507843536532623131885635239745439643493163400770452470430355179671304538725908292276413869715220045760665785167912048360118841054687930730789929008417894614514335317714684110463734122184267859876811678482985358173557943507678605828530097873284021187569450000401237077144527807465168572438665368937489626486181759036832389188868703526731271077166981746709171948063970800936756361769587759133109684798190338171887110490501567295142454383416235904659393882089647617543211442253334242316830966064505772949610698317805693539082208134329074731853033345854836115235611186931401040393650515613471366429460196907559529564069916247916987937003248776698740982863649962516246023852153824135802070660533001119314290347068133764719183652105110975582127425343564271565822925919789622144477124886047148270159950456163667521978312613276849084051709149023787362188029284294666710555640987230426283194718874606936323259146542809922349782576357893856652706879239993508712409657365567570473371592281208501593286177762062330233255036714116437504279457914797805842053899743851394825957623482934040953950271353246889000598126716839320679002474322519318800401662343025455799066636952365008029809596586119019874304267772945224685233251348479375073724378459202154523868221944112336968413040666586809996114525687809729578814363233456148838880845700532829853614819047012451054794267492023569122468324362207336730876686035657366528606310440317963032459280101930952789883047963523180711274466618387087200020650798973021444074901829159805512209037145024668061257811549806888094000559664354776356367909251454306808457575992542349354922821687941823130598496311590774335073692200468294390485052851723113499407251904381243837071201139820950111123545364269593286893660554591419773152081318258478279966612194513293224770155132849964169170477597601867903636799373152344394239147201806251764780845026894515508832034033443366197162416352304442632321676376834774066213293424121613155618278246199692844963415343249015919223642383408633725142579283234693960389587377942246306757264467929740793725242888013633091729185073971016820142778510609601668269204303802605511793090340243255675217165558742468957504807974345631962159197554397004888626257520284419371681375048310630196379287681238156680610506723482194042360088060622088166492042720496025127221144600012121736928316538011581968497546266650107919307848023000464424327011725632979688113645473620638334717295015475022821177029728840984209343344480847060214133086692821469196173447744329126976323217490548243919691252253136829931957665916846415363248016230690674337408482294938225619883165083934947320284315701314294714421998582660449685991876988308535694558719367734865435933314501801118071939828023451063031763899348265039256424922111023658138093269356055157110828678163603253773436517648811103047459326495037591119092760315818547492448965086088315717460850601608006819448580619049553793645760185987427857460616042414712537793448062504072965419346200490915624839636064779848589619118608993566091080579045777452893321441434164173210129245777574616903656555658436282872109097807405418826932811885422303228613333783823655400354868797194082837050559148221108928309023722650235946944036269074576587777327731867174085902033234099826532564663912123671772385072832144885651784190485366714847694574319774586814218815917093949943419556818816423448819801954449731192652147889004366101443003627196861655788508220496803964083312125861055651465633720778377992999907252870820412395120153882879166138675120912530579374939965759945348321568721439427334765095544301202584105572316316041575578896065270442759102188429594695898648194844557881054268841244783408338074406263008406607051112256357611193354543789497200240784332754763330099667077072712702499792433798509211310841563996783634893098142384214276829869300404145635944701627042605500054138532127066634089108311657865440020672790714371291956366323744727735650161406321418246869682161375956920862382839543391046983880530880171279698461470671827539310784962960100685253411591569624553363577368582353498391991039230300884744080296442499303364277650555676256789371159252185489193867366795822118914109311281583685605756785787936937019880467094319627774801732987680635344088862587513173466813821859970229087545427708007471472313616450924656344081591687224215434551289968718786509806026510212471159465321308950210518244592059806525641671133011921939132542005871438749900554596424532457963360475562448510571129501927745491623155518828592177828423303677723352220645291157120959457479623440668149234178470264650733922517543391969982265916242489816572349268145490626927428679859679663541286715502820057809790703993728310595253272341321784640732886655144059949225502898073869185300392292968270758792601411315694546634169023956619097291401569548004634450089795209954963800653055446512152783134533664171178791847118024737808825359236228848845332801077152108484910664514634427845726721134722476662186238417047142035390361031122577884620458379553665940889079562042269114541410080156064085828626484534425368147319172120407080808572657959620137432061416755010253933971129982014172634226404810129935674139018838561735734448167620068099644253987236107576567107751663812392523753045984918907340368753065231133472628385164523079519548534129906025771457495409700089838257206074023919542952246786473329445471759114189841879948774509982776676106613979002404832713246475944621741858003240666976861741756699553449866593380298484100316284627691592850650426984329443961466131578238541549063474959701733692789176634680176590533014653787645131259519594506769164592952239946410422608291389022443020090044698786738195528197022893903010953639500352430776986091347100180620238369817490431159999605626700404183277507152179335030969149008115137858358674930182584386760947432590105889523459156607405258630149119722901836052240323579182948799934139119929364188070779762564877118579791785456310143320615994917476619872540925036711114338164122259929776337095681469601468921642457006055003018686299653075308408972682852588008119670720012177615728787444771417455832425362555096541271646486273665335915349088493780779851066768674942777797687879064213989286753701425893256284196750878796024902478399289990645651963734080242151171969359327062523166166410708949718933204330223191856703122787181970520328640359076971189353174365956597341929049141122465821401406399440065947937957448521232736019190516153962818940520323675930666747379898905956926564549996048626818588727804549723333343626392395305342020927408563331876966963477388455245768309533422747514181510003721522711447650321574874118049966120399603800244996184998195161670203296866626384047071929665544823681717801255314244167885710047607279940235634096388249796391142568161856619285137138087817510593265697674467883427755431626414754290456365989876975436340117872807460249049448576714527883788286674255109249107044138758655600252306911232855620601133180292333824232233451174216613394064190163765772486023354397785384277992541224626338369571278622396628413781915003707032991989809744801951323035082407566183933453674098267628624406968870718359619490888506649976483421716472161877863993129838558763371980805457067954790035340154773730623802278969396733611358436394475875587516990559929797158915277423868089773844139132758079306174156800604686937722619996198896377049728282549481998055290579341014494239526012451685813524089652620917132578259591916193499547375362034252444761347596049577596700922408809523258413958550420243853135787494061999911803531158085819299947947816694087914601101517831107323837956097526202195740157416797929635639247831598340419937567253285455610537981466553373875881759315720501131941322524220123528871894456580864354613526644415213384543148469105497771393609887083813324648231382206584485501670551530375316400987601969050283961764381300978818002399179646626189319684895130503521006350584656332164501237010587703498386096863710886681996797730092133875478089092236005064221657013917183296973031018457824339760834004579185693206631231142033118655828703234851943768731163911040094334996709586463022306807535465249863290052876297809145967453465982052564028012108281896667850311933437322673721199453599539273831905434665853228523858427494879175652378469849467448960568929031562820728252440357880180969897986963181601810113315387735962532119872465913685092682533782510294003889734863631597965214091676205244359502755874779153563517912711560991564517986329421512565264703517904102267999840002837897435927176910561273803130252069022577702867913402264224941962326351168583594248287191240223171332164094072472869863702009547855242859187923176214754090686482675246791734688325628279956704881180979272870210404429863971047817300509273613021611478405944139167142367277549167800167314655495189609917152514200626006700010909185955228523642012988851728568285747677037557745931618834283946012417756549246166786620511658763397271515560725630952320410891287742581280092593036103158281170629760008222759816091350384910568900850080909126943331772013006019180550240573804206570273531226701374490538079306002267543127470118985786109915808882604752414897484759818651026976288602017051433599163614815417919902972724957600343577471827950075315162830821558969007844107508771468377744227830004964859505680415628432822390800715523031369715887739977268340293919605751393851822637395313065488680340163005368134655961085368966001660390896875804948082894513116618128059081720996643329523686548571544367560723529660342116679248131649733660306318411928543133220572790132609482915388440411176514150365283968335597397935380205078811309142900655077860774814547920550282725560361906333425292702582324718349761512557350496251758265781303573186908919357206381946017834594289062610274831141595043858032396451789763043468706202197283179531052635044216919014806293163176212123709513301811338492923595277524291273837755426307071248875678134670457288605232288572713574614138835613059577963487576776741564491617701613401310368000375613151496256967473933439833674546964274529465211298330166067857324446861956641708377032801103021064990337573267914233311535851382488874401556791438615555094786080451839412253436168392864881638952120603292961129255809278174751561487885491003837324220112532526764418097297416879472888277930829202093961189199155164545629300738569056941544930461507586716827456854654334908288872440789596354005348119121984334060246566486287175629564559223993608160217362173298574380115751645788255005484737556772103631482272166375595934569304000969736325879162054320464042565940252078288116986670319731297223040279777611284739147442423294394672105350318977951922615326936175998470786220693139522853382586108718322398949187609178361732571913219198449943803734135213665216679913634011364942517309938568793021916036267184866511958484760039792964292009781058271400560567465754753628073989368063663993422878075564855688503996841836453014570510347066005259688332318030331750992853976735076215074791392849712990946992335087245029087608232359657442582948470949370986217431904865842602142409972269050688236694441109943990951377472498405662811034623852921760412754521142947218872403092457294983195504022582920846358282390649367181145843644998178070371460659978771966937092965981766599932452565471027730014735991606679485555138641954810819948931424676485333914315279788079845360774962445285581658363842082191106279273273604811910596176795476964790482964541135954496434204430650176386239653012576487382919129460366730230395557147198189907477673145232055469129708019893168521259213561510288798140919401731575451281673949838057976444193760569928542328438267712029023909935309419129818871455422314851911902522129702659957769248765309247877096632597051709800446508975882920919415491335546214921319593141095649658787340034182130950196889472095683905306663565064765950638016573694958206904958550429047087886673207735479741390667162830967537762901112702259934691423738531761506316414454296584341759819648831575000657161679210974991476978551359732750201692086600259678788483178710112596191994866714533582002857110110121241138576525815219910173564777708609005955813893844020544792709080209770588602236676828683413060394005235495466893339393692693300133935052101189110647425279830506936578196252829088256395583852317273200296655909350390266808299645387469279842867695755046651110033062345226854530279819248637471211182716532848232054303180755467128088020289037418342175595878169405427728581077334519277129723685443364441684712308080230564933872119442524848431466128996604974033655587301425031345351590400808629017068214011866283853154233836588640126620549948625967753604184612001461858363068734603983400141524279493662104815765921768694558940245893424860133513056040143953591567466502389093307503942661112972174572286354791683314427481030287836541419084471308903320567496239259830129917084278099102406878198791971550216423973262375521851526631363435790747810299168076802320230145793933922620051448899341485136614680925922562126746422711106153085094355750753727850692369560092142133818566877291685560837736973767594159698486625790291925366599863984548748229293837586406374028222080646011204487169800786785112486976396818832110092786570776403683911507782715458865753434120867528831804581028368774435065434887586477705267425009319207403420304929953783623129219798017102150350430983846014145803993824387860368635337815089405349803137696763458106393706006085623812172460719524727142993595877436452343952186542331629216326828335507535073099067240980054028114045747995712670145868518966315872791525800389334483690678343414270106048201681007994055377662219029402698239071071084781866531237373245181595045345943952118896960120779392857326414285918047757423481435759180144437870095856742857466382733814472077366733583215068199174142418302941070275804754171401932404804052018184623589145158295060135396755674774071360295494732360540920202999215722301890021982338418628335057105455237207091879085868318959743219918353988909865391008614920852925472477011172805577343897192220925942932649958728368554849610465132644737411547693998266748744407093106278430075322801035297187229688598275800644318046094423974389641734536493188781149487870333079051453996178371626224343809135027264693522526366218703740011060782431843387525749241756717428251936732922892929614416223441358104387809152448513022551827578272327259103272819888688625423772400351995438194643131408992147356955012267616082738032671451375137687013300165001822275690469258459541624572215289762231268189770890312397058777650273372313381641714001140044209549457807430505129790692507786141870558518957572348325024016264053432277777651760625492215838845192965105698785158982475404052303453116752392771968672835802841454024236947229014939304315749917432819908917034934926933845334217338935932527629310903234939046253168416218377395153571421596671947869438872920919247178302077166688575433540427530726231981910754161943963719192661182829318335977433729673368691338215353777398355775892256615959072144852686123355361153962576321857955674313731354413010436492892746801533180041728053196091019311287670502094845154121405791947711812336362487354408495103097170471914880777639195184964456993588889730931582210216492283142559521682385291933367803912239000149369734306524613678086300383879254661273071923971253172921874404998320599599578895188652095821676448043122225216024981235471965467696582515454511296011790879665757207006422143872687411522483515723833857930656158908704990538193196479598442727886065905943132674371987048739721434795747651880989142487666591958103271010829475105597145427266585130326394061380754269986462838575463214853416588816526936298239757322754824408214566030091789524745409984282093815961362466170192889878293376639341288868136532086150741869578646691066951145605506353743083677081313804962366997773404945744032245054257790799994104882955727598602514059974062057957974367320414799237984972669143724184503215917375381136279097863625358966111667857082276200275888455805110097430818743723272944893146328561553956900358977083898277617985106507394102713678528973212992128027374272855616649366133008019013618018808717843812433613727040485871653051013918036917996585614285120117420507248405406744976602010170565180040946237454655991593270581837718170586950810236662626718578375146709091683942846377144960911002106314212287993616037665656240847416461802788832587984730163427348374725215635770593299736269153630875083662553372937292052661677883157101232284605610826026904098693368405686927398791531240894173844029620207763895145070666468546261964368731049442723644422360581327526461102798034198561796073679595558590687114292783965684747875733991156430133711107501650868156488037097477877716600821813400298017793473361866267367985224044799953595106532155162804564938741001332317279724956309822395118020573728935645923598568219732985606574408184650393154917400432464118674269064772319218671915372280784513899295454895542436136012387473204633531356500524198522993549607779838297875446039503550759263896621992601279789394235631465608073527887767222232187001219701839808196998723977614788025271173137662622926304774946431835914249926873126773358042101195897803923667921255597470537568337135106314438937080288371898729730621683360124362174204779730455562184519463873616538015665024044848368311762008975739048133708608896467469364984734069569469746488474664618167287331394373093973745392720852307100787416798817366124374398000325009442376300198863494898361003204530519874735524748804996536059406315166279347180482810423792264788705284124892066525897102764259177336826207519623044966574174294056909361264434014868106018211721558197499511770974975395602531989264880042260620395091584261482266422398748089724940670840913179451939334684328850152718639797514582259284249616743425989767931735296968507868302748313236113348276486971149785119609052338860787384486081437815778856273579479322975488183973682495259311621319078173521766991030320497759809613789568685351656351484316540011512634800681293579359057060424501649180906649623093117083522939185687908909022880240516267654636753725146384497205684559963342913442162258749955947263285730797856720083018110545418788356349995240129955806464553782580413455690595980468527477492942922628046283536829027311712923140826940048085775245884234358087925371248128734218927393089780164611338695197036710941532799176040188408039959157982503827524379267629313630390550990731186000167687691744056301488266524274647422650290101224059371909289160236309615840311873791914992075506137000367925936714810974048030579791858994640156974895051303599107811790391293947429162773397789216334205561003814132816989478816315371772699952235161673256868108140525359415974113136326747386828519479247395127917159182284142227585621541574470889092262281923643970918018989826687185123846567637387930450847920815010719131105625494952442529285367864475810955358001383647721532434126304855866178706446549574667413748430506120981099476638239968571021640530623854468212248561354154619379303000816359728854548586685815708627357176247969523599013323253307483223889386643231346109605783354350753721219164142041532288842274239563833170010001588870145767995314197882327722679546252297745281794414982064406157181249357674740258785205584250817006651932798136982038856432303758583745998801209028528373905761392670522017420514912248733905212850521131669258535591618477043042890018771872348053783198055547957885895263072322689096880698405446096239819143680260350059643524516540690129599404494651053766832596992304765060084604676473818074672090737120899282245058999072536526143572506526796788302958598153286070793216421761403320170062579490197712540425188228649526393130711358123063759070666929635369858583227178791213615561031719630213438603973711284460433552871136645063499540054093272914985838106985610329394518267138741308835043081384907477364549984848597736190312594080481064443560379677131182502177314318938415302359994435232543890388408564324930496581322018115830030981177890988493148349581144364625852782737368720929614173159357113169022773615809228356518093682726582557416732713473891222465433074979710171387338619899448849901880967791148442510534166900258705693186528241229181916033052310752875609876855736212849576930184288145272155354538690802434470213242059744222473086325145038375091291566050941091989708179643860862441391112588350128012650792303724192011094424921731068883303565151420162821777160431304973582738803935863701424948515596561725754984261663932566268262085512499254568742910326490342266557681997584551974800264693681614221463951331060123289101296018701299275771282030574351491632558901697305715223880009861361717325441865222761949951462188820359723691905850351862061884921838680458583955663041033243006855401967332635786624295673085082288900214689335048212317345231959827999674943454818263975205015531482080793930361959032172989007059235842208723298082234743678577327164535980113252039832109002118637791267187476863374326850683111220871582082832830123461304616190712745820113828193990252730506576058131614339166185843197567644876204609411352678345145282216335146900495824867177083592320650474055891485296579058014188569608568093762919525426129198667339246055514821839164621883592971146591326167251797508027347114108845224223224142152687584408631313323737089224314015428268618986851053910651916868044956511366149957470275884904375721909393379563014789426732578014251792906694686757065286975004347905143338773556366730182393323854811293701554296619099613304278685226442438139057651852897282215961586750577567997395122380131061115301327007160614274865763505029379993603849922992094962811522504279264854666835863380837552096921736295883524024045861098375503563421129824019294921434660677484871767483150488373165029160202844231786512134561475314852849861158011555456610789601846686963125024555107448535615837575343073533962811743415985379085538737807982926069915325659780756782986393069315630620473129439710074833356134656760109013751720401870037123039861786554808736291296884721558596597751782829329780269843799416113054769989586708267882586864248074414301589692483238219940083925043928234008675935877227800544826896727282837571915718688243929000633833224407162032478377226722148514283839163371562782641894051042387449200930420831698551805830469789930315883911771942532111078042615614412379250441631261924217977281756317091230888149841759795055750473133612525303750636731501319709393045025949205203701986021946528919021788150845849378121752968454552678904909236777160604719866097818767491668415033633706102998069373845620592677337103918147593629498174008103455132414511476563236169060679580265081618627267790844170725031964665196755602646901592840666803447176326695990760895085612177526925269245223751492457641959945360155470527077202742457261845689347172492918419203118744878353716663748732722452361947159151143115632771826529819106798098402532019090612021241149169112053234368160456270576290342192120620084919142194025582689928999573414442148295643742884787509507078697450691473376116218875695690024508490135299446454968351418682271989346773308438363093034453395460383865922097310100748514078343729891742124875536038766045170130305336630954659223994130979200485217046080491984710261142590800514564316081521808228627933527741393923695336554164852969034991152242257717119210550587044030710702811925074705999111920242483413406505011543433117509183624555027737790190946445063608613210404867542186228830876161248147757557880728203766447538816098344243718701898920899406678028683126636073717010774314206167324253670102876799601171712594787985271112085517725482148174284697513994763166250934586738230322626563206276099094846536257082968564645677891244029955167343833002788853735493479748318753711390039924345784155194013368693007769570294246784319947395857596917166539514509756213480192199958257833546688153280665946181261708318372587642026472817876126966128353203471750544162393220330599107092693515625730411837114207085657941555288838697844833087148895568257596938916651651303125173504040844790169411299303583376842056543800612077494597867872968094433747012687597254488599874352227799435990262831899782490123057399876683023354503188553183547938086425282609492765955921789001254407748238483456463427324428696478663126366253746338831232011825615213435703148975030476882452822162376675350591320900482557619979104157102555756759272666500919967922855196507314704693692243297352384050007665905111652309356705746514096530044664854391354866551527462228295466261917734225494453800889368712966302576138110589164140350243318191411245196943148001420007879330356014281546150208068043332661903232833038045471940029376353754882467470060988878888516142149330749387225649522947550889846373686179012580303417507159741604718594015012932763171001187240483579442530663402654122704006014298645390473946699631884250372005675741797176615640255370340131726555999964807210788136100584898200405358586257139343894816958097065589606762681248414320982090696844060958803064860897741988082554922792468604273441731894616091101414477327633352557883101697988683744268825108903022080180850264209468348081928044504054827977866361547969079313014400315749056703850713280269053675025936960846380095918530693191571884883655684619813498290499686022382403072694755825798760457664948805939444483565048562513741697811263715869292708770366943312475956528390600020078490186896182580940642008078454988122996742306701618513770184784847411937912630733704567163414199584422635074470098023374630564572980383757507368072368503812743878005164954316395285952265563700110260679409038379809813480280262347974145350911431398365480041182822303250148655261778546040716599812897695965309667088130289994586770361791218264646900306408493436792210084386137126234982188472323966073950566554475155950673062872135072190763180012112936232981136919316157904812179531693144328773356329984664535311126165207442301571895090719943966586858043382114958667518510337172924360524671468813720683943953712745378118852542810912880405160149117926988022448940013720380364627932860517881180121871465350562670070538332077313086745069354132224734203729002850420871281393248320458719813036806046937946001758669370873342666687622123306917143678999853881261264493661379030170641172046559660779840215484381082281785988736187346773930428104075225324815395191814168871802345565846872359201808247090946690337386680767961041797236778747840595590380155232468964776450997208386218359307431524369213417717998968611048704687474797269344344067336897769948846327979317059167561630326748617303171602202921585762316202619605138331760010586275317374077364191792126097430179042698660505536402121519645252061389412714939893771827759710001400687859144615462135838920656961613672556854733843851868685827426968138836115083029301909916230015459848225042064683578977678852887703459882284898243160040259993796708830668645339831529169679862357182346344235270213768567610568712953811232236720461091224951946104016103873829550538622864112050341036764494968053518398316996054364163648236092199980722807586862367874439677209555213414739546066093329334021998630828610274574315705277647112446176177330509610152468960262209178433133062931811656270529300298076370177654338875651231306193516900928993307962490665111714287238132530690044012066455739002901712543894614060640939660168386615917013273166624292046031613078671054181996457544166258920422756995522450182477065063053451954753751810748931725790645931208598398236506478551640663233357645280096456834298316212080588461745170765750648195525954969305215587489794895348102282502805454724762844157042495725306934451931823267504075984540083247266496326217716662287886342632775978506415651590966282385730429106226597859458149928190012794187915035715899567765237232782529847665696322405240862638251887876892764942936988755625426436179713888384768747670890982097325094127963225829737928230447985681116202499406177553827979710046118761830417377979145659288512012942066599746799346901960368142087295946302928247228348412520272968356876748009158274121462426353985013118581446696198140118948551471256386756896442579146446571516996987893501721850097097052915064825723587294286400134344873953972775016456016379463895940745438774008707417918594918567724014851252243291260433233216027623149277158460349329252670536116938869252080360154077115551001086306154394419311607878823543805344631318775969662618944482184539182833272857780465431419382462490813840865397959651308899527136299798089285944550907549498614975534915359522649879257763059287815745006142850263796811190292644091631706550217213401928015708201335733042589575616927604556902841538098002641940339946195954028950534543816047277750564258661768520338793699968957984455888152960206445685598095128992661796593453112359677374781477053816514783797604823818483006766563905946605711394596702677939619832375942410587623883223933910460551297362574804635894554226296501398259884342127104437248005255496708448465539229250487708244277198060288902804739616963185957950437938746196942612276142407826457961419219470661709623346903449186191966433271409861575614920506868495135742536095342326346429720523863213277983156998272888461965840425256414923171007533697391922468270542795797807440572057770257936651303377424616749983756777528637007124509743493654745959996337763150699273678102474380944497546048141489633408492813184717958027096015708473700046949395801593300329884021995849392578639129707396104188815448767395838122060358698676646841839648863545545925659860384945248428307903207318698446950798806523083012084963542209646325533879136294613527084456753088317055957812830495200664049081159102152619146770660963399882969209802248192070323526013526785316860352871149099535376620925901569985920859406686751065104557296855710269624632581197409381813885560289595075011782806394206386982392422542655253161205494304594178873079286272560539470404396522196008490347145086725878828640654945963709195475897043122668943296138950121356705078247438120416299986873938158960631429721569661506456982654980104424963434723461908624766483503487678589323564306009943066322249116552104774877863892150038450264158841341951452215142451073968770917411293446634912279546913939392906103690467355722501672774593298425373587569391102282395583388751986729951893362409718554690704407662814251938496109130739069690265806843729966346312354074701995969566072470896472478342953411546479060999529106860430231109139930904392829403310707794279825781966942520752425494132248848992863477487542797154753417511962357161007002021537844638494635266112237243730611684098676901288405749567272361320793465315731375656971229472664814457289903711069210084735843074518815669818924699841065783490206530160841815159019116301489253992868951508122028584382605522514767249449112109497002597814755842466637862865805693298318593562202111921345317953572521631320970666232128933667501168846834402063515304503107386259011499104920211486906388934576649346857871215171761738464567120045630305326835165943347229506871614946379742493828910491865700427142844769543559349490290006202403084573237637962101299522150531175036870402798779273634713160786336937543978376332645410245712066859492531592151954849541335978832049148330113512765484460826676910186339251200791611502260922534955333754967215435617193378020985444592438957342757730332889052212043292075960758951627713911538128035317602333023571754945222775509447086697978458611380155403031915563286684953618676393668892323929630334180265407139917598704781749881295499146985273143688567956295293472987668513697332965673587396960515982994080665242059129879059047464602168028094972354950685063772489689989505949242236906679444817922857206626825601918641306082731023426303899940890047743628037651084644833421853109701770198163698192700696508113050616342612592397755366012436455850561659853306493002466618935215518037284334398985525763195372572714719297689839149101065310243423313648752109216597381768362601194807666951889859217890964404275179943196399624658564180595134340066870051427557554120372191206108922355098940089156843229994688678100488782517813864243948866890662277228518171898070357090481320338119836744743968523952539432024036285267159293197183077503944656526760772065901940536791616608583603551676863594934973267538247683979640218556207185157992323969384974095966969714602995636187595527928986858861605996974742277933399879108387128790637007784029788188829699137431831147810129698204823055175443858606329035328820812856257508212505521365868211763641542440230745073484367871975289591999109568103596406133620855784484583137685459976018040720438171332983671008953131406092789345120996289636176631632712616467398343629154883474443495298460874189309576160035388158108954230879154362272545464800276679552187720578909550289136100112485615756869493907769802378279429805185576004810960779788352402119873572168348266718867886347876807200255440241863050177123083642745394739571706998759018931564398652240684728852051986046240126893270117974002107923339189192566174610418621576442869058080198531988306201441429605081422764048412303242611993565281056817033915841345754183629691271619066962474887367414922454787354778743883544331513142331264406954207456674727916533234842163147314756383739167778120335941707780082486105586805232759226293402059862248910106984614615638408368400048607398147542897606531093072043297289830857724023599810673151531635625331058926123886131866429843794809962504832441057232656933017210294801685813972209427359466199522047407407133094519354236835348501014189991693710453904522181281113139677740023182652351716365615002268517410221884007250516408431200366738606946799220793168303783208831582386912295269037334990619704301226490731997551297736712844497015750518067367427285620761850908689413064924472128845034031623501384914988579676582007516274761230734593041023441582274513060630728725484625696254868137851481567567653142353195226380598423077863569646897665172531741845884793164926962141188888436341494806678966658049500387720594954370321225021761090088252876068811457812728423453238212884414063984740385207513853535298707930150933025488108138165436945229291029921389011412462675538606507164366402973891948532268657653535290626204170321648549115727791586148317039035081607214591687576941924636889914758725698342586649342258078486109320696098122284992803967136861321957519166484463436902186659022014494795332028675007114989276739434878564839071178479906070808984746662586216980415280822902351844919595382011593362563215972307663427765045025835172145323232030384480069347839577711492838562857412075092491844260900789315323751653006411025598866721858758101224790802152870280903816487881748813222014919181601170649171994991065393967079163344002292159225965255347071497219179469767885141357627161830900058761697612213133412926831764374967380619057285431795911737996046462426707182946805152162789540465271977880271063987911845471728630529732117865350846515838545404987461538858075048292150638254480585404060612593110699637980762577331193816707057682875237243758441778239965115097647386167284954838654296752802263480196772428377754100511523078853727634902960949817357878953751171855728872586534923521911433353273226765976919255455057491202787741005015659036284265861912279958939791423803430135525235083224568309416722995266537656750842927481660560326030789548410321289783940512240981472654462792957214698707937284959687639346017855565045343644813452817923764292963715754733479102910698963343191990431963448814934562029860677807741105031606284018922615248458685873453457893700187308853414159049478500685265995646946420051227530445439910846018991391013532832089846029135751243234846035234338794207696353945264921296104434237037730014198450332593956856985002273165249880885228271254395368085934722595865569633718714797059659478492471805223762521989875479130843509609440042139441077246706479035746349733059785031927919460603519065134025509002639292762082382412890906497398100303862850188231695010821489325671205595161484029484293700397267507066323520446047012341841467843568337402065874093834608017708818395824328286729777885181129130286647306087930068568971732480910073734731587055504919994624559550342774603090890775977134850137392383126172950579977965631153130937080104584307517047309529698457138680636598029356153707267869649727889257940467828294787373463237700614815834561385069572754740051246546958501915097082642579544523289226276766588320651748846243868434267209736506977593168258337571699345399333774075170462550841439469155103031243811408797282921612758483453181797154691107174309581237412886674655883772738994606124344731821953608351218451800419338613665199520782322520157670870630141367298096922904847734856981786522954846739292218793922213224350218020823697237056892290784846199739436469440251197150350757744631303160619000332908549327104829621471098388804194105225846634568351948162729966947242780108322570484165143326876451662413012467659518384013102156243776141293562876984218877371178253805026919155583342582001716621721935629154515134982808235504114606503517767473041829448251529783749945462349044399854221682858635115358917338450406443226693857923810077181425009927480143650766053797180313198274065912169300626232334866063875150997558413458576994599109293081753397920382235869420120734705711299648353231039096203521578686464633393740590576946909570807519501873189268296756328544803356819839125490641844005320010858967679625406929251654927708085357353192935538644268537976830444301752939827474338442844768057286042452856059411883286003373957463196772776170274985651938119865547243356447766942301520642367873679820906315131738542506029685649403216573722190208832417328742560964494064921385089619045712037975544278175149374969712355075353241717724187726540445377612362535855185011683820756395560625928923439279011605364097913064951664890598160714843930270465768806844555643453554022106663140517028477594277694767336759150980799076591260799265623537356878630716032048508030496996469259949999363217922003526606032923923342736824137515815439946191861100584201264734446345636722919946120315280977284192955832622205894550437449558744293191302955660172873814952797836546070767007547752374492210737026148460346104110782880331973953551536891909263970513498793218230223362470866318326200967142136055713606677783789324169404907450904230343540353669029807005752255616334318938484584081164960107440514411314683468928263144820311122808419087957697142313674676251272308524057808102610177415497732787827235508788756690111892334792778674792200332661217686352032055217300643383577929667866507314678114543926820337626552195732376671818417125491835393519686634357899670180393850793738712498891924571949213599303548984247372333114657293630856473440537889029821363617244201978100232918998552238908942813772577949937702195631145555292155685656949865879053363573725935912822905766988968417209086249888312628882695784165220842195385321993387878658643631300836296419792867248837911643383663294475749718774372573524490488097283303586640135559442206291708578162634693768712013296773676407550195761023149773402543864401485895792803802061116028548403741593057692016510666642173732789414551991078552920208688397838758084203146724003083614536738843202034552361848934947669647050051430004083617882035126154570675936840563388487030505563674861522489127187866914104288398402097396581904474887960733251953129671229498789084184622677051225870817786118866338985668896972631300948399318677916500773638526689073280428035586061579131131283687513981735170203349362899389233890684879947355860226975024554550585928752050074860187824133924655863282028220601776681072328224866111459425093983331132649362241242155166746423565865764247944435697733622206753657040015315990321289176735660891109588793749881426366832404177261928525003692531486417809806791112340235643049166873843480894306723498896277014669320204691499069973719222359662136153497576923903071293298668341535900838944356849989002916690752949399119574474583135311597470845860557400860791870698172810271602720778510072875177498216371065215888619893832497643824700931015210633578605385736430752279880785040850685194509415621792622693303236819356201955892967130557072427157166823298119063146538582546110290690049173490130934512094688219559851882834118017925128488973306689493330580319659002096922739104698510797729028400184814556957023324165356537270049188036079625238229151398700020164664442144478621944676576502340460991281848105281149997565291234612610585661942039895348933010565500191979621568072449705019785893232256837273795387194236565298162455204207115357671484882530271943489872507486753412118211353211051617034760690951995957977608298674262291508118888029004925421906454784116278552233488603155211767123499622020672453173062392272517141257082098270735623454241683222183593488806822176132938699542899660978180643065841040126347796314833110260128707527798138782633008975036054565576126870289439736466481908196548931478610489672542753156275282540980046406941767250892849885932815636603096584635728402932097184560919388803651622773157276018001769066227303800073443890790953450441349039337464410175205843489450262837587724489342812987143505515507265311197444019799687671091164628551824456067902513069322831737524497800429892454595693776003965684567785081801864527100392188129133189356033550241316484577584321781590888528783205697462086870775846289777834496339519498423234772390064835030466335647352293621093969217325557260866973398709591008093212189091262871981934059513899518946655971369909627640690351190268105912025581336703427147104091891408370729091851162529497757498579611593320970926147993664346387999023578656420085181486479253710321881228408592715714140609276806083104098585063403337324788618731437490778639475338639528447241268379468032308395694746838749346421176239638071934080024904545244350997690784479979744568545253125587322544590535252960337057086859132057383717123593507935290016054063223080458451081145044202512528605407881013674302824742023124875037453900453118398435503998824954191772456466701175878234825463430711018833702254859079582007382523530789629736360821289303258070697213617235040206999155819525630171699204591536235346719882532157623290779447960726959257048572185516461096974421440282205779484131552289710586237369198838927730879785265977326757016719150935237399440513081868296368644186929187423586124801555767060565028755673746773529515104039147474004501927316063756241696598496802094601376484914376091145263456997686185912546870920629829580132090283499490138669898387050063895838019756719617683378358113113456617834658432417326432329582138397217264656897036059003022981209100179215139141971492291849807078500270230455096286606819360975899228465293497850410553671791443565190264987250356780544580612696816355227818609519492482427880349467502837940901539968018779898491782615337114406166150757308487871153605890117105777310374973376107213565069857292271487211683313972992858248501951115582399388262282977944838833683930496338240463388795618778131697901343911496403866018470481704486208195954824822294325382485388976113622683014346009620294641526701509733675230299396257579600509272639170923270011918783047698426421530435097869150559854350062854814324342265076268832165548612459901682941428029905965657378507337155714449550676208281386901367430815704964887961402217583585657402216724281827803902775188507391001888324362577507343059773471420446746524644140961466002257713338675005335390994750206940046513294644627052651129049885716623194937488808436401169854940190542091420044587297377758071366306270696518709794425874128702817834191445734089265647802440742534307697200221431016794642635903389641607582616628099619420146987491670762606578937892930805828534426056866305118278636381984832315039043370940873165045660374127540237950968142354928134354386785922027786154597361636339717890917615637362269709785855258130717462077807002685149923916673749367578078125416210159305898462484521649621076545934626142003822485231384009746522001345288952893964361552101246408186761322570795366966233818345935041351689372105710881579132981218722722880407566454607972694128395267114233369743907922068345057998446088734683242789960624758166356519944357110006211229850812563586621705839363778791743732133141533898597335809294610192110945343323480668262996863784704709907599078082948990607832443790836580688526139990781094077976955350630655321589351791835057417025110535836933431553197643697044667369810158400842595432844479410434554235572392144431793778043255239333026176148774945315311148654825974760252159016871191217730199053776046677517786109549767645955315107518958087129235055886269551677347764303562230346482222223623705351247925175975860865837471790024910228060456455659855712941041040541570837701948185481020761672013019649304893535200336268777496499886011566604006960059992300343923110960632485623625033200240712256345368028187099323223284239975129744767259236207509193613913075135436802008602318556485282969902372411113306640819817635259376353886984781494708447385076096206958947693342158182992187217223236674568908279142548060340552235415437036074160395905398845277710934781518472076139864168317008821052022485186987300076621095274052944832598337206099707605470639499848178096692635164400475070965500008195963589448071999002687526414739280498683711982114035947892741405381085644229261939126444737236222026158588457064177778644244590631929855996147883186729262564932938138241043956828509909831263053738802830404359477075575100784506175676996053664509228306992125216584160539089806386658714156919924668897242042756585810589434632940404191012310633443875506863513044577798251697944885227688878306091779060786602179177467359907052146480160500616764231912660209603435855585254948698588909622530925454346945513582748070175965196696556610507497688884477242802067249060327111066672560321480402681425759068059042667980886857584246610022628188503565163835370675266549898075239720280034398469171901816214598959874452491507073191998822388871123834650983659737219761348109903898362727356599306938574004483583826684661606805572547650716370056592337254467657783429948115005816670327760886649213528813806413406887579311371684141593286179927619472992437552735046131264325295555677406780816263716648652699742471818366832972168668043487056803623178869322172438886343811018671148038889658876397490157316656024084530225035327904248772660055276053456004864068005174280254081603152990035761370944498340287115320420373924241481482936139077040057806523168671981526806767221644995369395756910155059588049518017200787907496722581867825894220675677828197887358509649194502058719627825616759675315901348814670966467945352698512474084812733270017362944586479490059306517089552084704029105564304734111822248682662678591917068328489113219352469095784708527759971360527317849872060887376531141321579104844779491372421404400703378797044452076138342993018403437546836954541564265610643615467529642804650866701766847040500918895399735094136470272062034815519414221697691193581723491601820284686041492097466425847672001773064446760305950318013227426758980204109420921664515756692180053974897137414030911621906853439875493278601025485408816715861388362309508027679217110320671056522787784513354176423863528575181305172688375357755065200347152223720467681363244746294220786634007462680665761465860712887756003439386749559451935064403824728521276425531981445413883714178709713521257470336050360045576862864889711150311338850918627346747436041176374114868127928617517835499332912321150125695872755873933244373633493683186783464525039781157812609688909177251063133082346716854100393488838634985277762504952244214817836192122227162517465572592153497904633786028450649797821347549492422973538684434963094815457466803309529008829414891130198911005610619257322376387874066262511282697821847018086213145590180694578810971033407330129077734813672385673622077930942136871812543003233617614287975655347393568392272375289685478244654177611758663626194234503523250683134823284999393606060319192445291142518005395121075895862260163670780412307209500213767897437411852524775571591946902538950693584722723686625597188947740694171026809141858369901379404404460917703859998107205606595048053479215107065416621678369347399574591023517527972643287797947399074064865931197518602746706301006797462927455797109815774919009339766357071144749972997411284691172307053630870421328587665500780750324000102568680896541027248226739665535507009473020343298344890377919492494958705651570786793911815612854891838179486896120162871148007952893663251179249001073962198987020220109132559635908659498660102053210658040603990178599068945740512886762343853112133053195686061571956626002500700506695977939291433295317166295730854084066461421806348771176917425864656396230227023746539359212005568535371404093131075225193361079044048554698930232083568055258156507878280510257218502144584088081303125538433805102168067602969915456753002782564249673787301830713199027611563991966169352377656886548525313226865091280775337774827110621874609696624952961549628115798271519914982192227700665105343665124131118009617551016653783972725673322977317343855127025180575413645858347549678313590369704445621053180391997758027247327105407293319330539463378068951536963713583424319092670392316749816304004844127048574637135601590563386458072130926581307701335694941587272017486989852098593013914222738622178482179402231988705307323774345105819933898965415058053370232724289986104655126856163634633552525219284738831525986070196036332492964667856255724533934062673917196151004445485828750516777311187814199366175601216197718544265132632274652081262998523526820188180307463851761466791306023191801620127440579819071172469951530724378794647549389167170966080970648676684058203831527524579424650495332986295513741889027437984684073787250729680007734813167344553412215547831460274792015987300823942383330521112936375112264053189165937526192373604035761974320200524999707347891797554771043210243731405276387264400317589572700969285013964797655514300352053450625349790864752494677749447419097380343763105176224570856732127502190672034416891134363460986212572109040410586492252926646352159289282654905392115553009584413280536973609603306010829838474129049473578769032090024740107829029798002340366986020750398727059388442166233078534256994320830172387519435280420381022268579410678162094089970640881631720828752610453271207152045227844284432231570478091302515044775419241801304255534695032942627229162246768726585181060182353870336325762953383130988893486899960896323096761070619934944657489617138652799988272057445561442233193313009477663018517936521705615223024000088252319867973258562371552384482905698196964049222666096375141935676318337402054454169960227360514141403593609661772431526147318008874298977340173345567321971391491404315361309244784906807131246801925211448555161055345207572706116432027273708433970408851925797915737231129981051751556500119682728226829925647648783453866714047496083876069512187855316950753356141885804095159303825542352286467529891983840450761622134113679797511048235678203452750170216664475115465657880534460662374649390102585486307562690913860218517102440424310666866731755397595556845137253147458609672274616788224275763010621296383161087564318119553610666822775043941564834237538720247475180476792258912145530605792128574715429845345655706238972536189102176462262384971833574093935160427487909887656942772957177568823730025780347723174018063648655842768451879033338755188834941158799486470724235842104194092907419399793541516270071527231505678737681736585576511398601226203289231247267774499092612430208151256369986369421188793362623347573318849755440859466262370994980869906354303981258383596533512082027977248968711598551171521402629139056205055756075269765988438536246319559443226510891321964972971119094329691526423863246731735325738931095273421803039141682655391805541509956370165289532673448072707046930879922173386081901522013936401652912068732032893331655038298033506960958519726519557917309169916872717452818379717066477720573007213731154572803102058059775210221036971469116264344069910511986069735132274446140207889643498421376825085984663456999354583165004464492868623984567265072643870885789502131272821093562782655724386463579517452384662916432793582006754456047999440728258845692267517905803592262477991869640415576028035141816672031555216227085933293931932871066667129429763623508663330240162888263337711671803321337814053452849663308983966066810186380242194370953400206996963804930153828203578963951485402549817117341251856470374082181877409617253371532331508375850953501498517413369425027107001063822677025566707598517079727739552860587548988094214270600609393921110519548474515871549607996481780322196569275763027977125730287153344494468851065104499781741407036984925098433331565242232682385273004178742494768502941022762845198351403925046755442036422085185080953677667730820510177101909873635043104841488391833034616513506722547999582781677594371526525855621101057807661329969574581422401542762531604623994796673435649421378730253215069466946929319385690909995860045129625042557653297632644484740401365810258276229621216480941509727872744840208383002384511598888272929055618167757633785062072274576369920371371085347335475459877226726334987647055898573558054734848992787804753647616685550794131995967015052800519505695031925019087736870273962287674208513061841151241911249128085327152784116254523367136171727425996460193437984456229275947886161970420374920844088427868315404072707690751171346142756233131472449067277627082271918287345564227381963531503974447828015227523881893059533866754679392414703357610049927299748274716690637399046842734046932695642953508106112974670580912883122895024387864503763676670111134232677350094484379421369887299755051948419606104331333993692930878311903539186562243753617323790760239825037173741808541929439940997921489295331228728476350867061319380388700261961556531996486555150558888122921981323108420568106764010383891436834784774806736913595453461725848122029239490788222435367291454897436985129652930260119302547384048643071664968329607141277007947431731470324031082521499324447578796782024706226358864323976234027586350301535320531097543554731947907681773313389962419122130856145073771308608086577947035469442701742804750203974435539671893828968258732150720012284922653497180615176266389456957768763860873085264564687979905989356587555880296269161897757058158932704345297955079192966213641572724996278808546467961557094960942969060612529696090882016970879846393213470493839523093231010436679963618914460472549445498112414429319694799121902565064253182471741693806652906553496352624419279910466021916327711999779103560025366152916348338506387877930543735223934641674344641278371246782316224223188424626190958770400746950142304981202121554603472152237964614948611769899345112153508972291235233493138567406270999401655556595818608642472512372394739829024016856918409409915268648457691755940311200023218807024583824688781928915968860122615677723205218261739447700567655472339560733451266665226151972356460062084133218510889599187390117922106374681357586195797834979780230224908062240270479164384177758737214732850782372154871884781852732732354736972573684757685314390202180277329735413406292562007567721485897494633132938994136927104058870614840035679951623474462712793773059909845686080061921235991263771418695434537799662782225672145276504916394384902010595173460064616954147489276207330206908843871287180692734730055575475072304257258793018810610055018041560788136258494770002532174935578518131507023294732804823669336541397497714624202888287735554446117495844594671444361160204644184743449037084963785033346098133919127589353595592799295647945251970165352541908761132034834045722659081311244136510435286120326759438436241611841481445605797318345378935728901084391484107501228422892712822932783639184416370325434162443091599057763675616807332355704139150928827747587742699390945218182815465950512849721540113666988813268811847954177901242012888769424432024695113345896434481977466274843815361190317587105542982426409857509901281937054796453762899404655381750654654091354172369457264251075364139112802671491848840543407956693879405504152169030972127652003583401473082967877812073322364370261556140909257123281321959334972080456657216727101547249670449342217464603221362464136235873338582455064386213654099537092116944585214575684129919894575473642929018085730989871626117553293139456745412210447280903630673013699997713198994632836232772144174305282117803111432016242186871139633344128468293570751676691998700220068506296289598281578761754397468244914176726466837623686523170923313971272797711283873356062652151881851186060095934796199151620778182048560251631703092731786536653369126835953617976311979283508547439212147048425483005321202644103164773782072922073172236890313841712208286911601088579062095761759769425628234201690330968971997805395763154531155520754087555959494575313196967323300903509665317484185141459637042379767329260079868663451691106609016111959361297496845951596759257678972873430080082705743096638984409600038369806109790462509900669032716084699140876962953395583291073412086863501702643707719706537034760542192694334161050535380875614023283616360263819146962788366649789189499774585328013781404545709671223194113307931618820523504653788535677503626431833758313078728083774327114037447711299966820030376997643811772868316335958604048998417268153137061755184764448044553543825230734835701946405143943370891067209057225738974923025959313687466121515564232297307706621516660942176099460109739739532266907929425399671285196291912013999098245808890629892248547684379439744053918482058493159381676202366047468207337042732216461918335143749206821731048396527122290028954537705868975968796299229799987808406428280426102867283493401399003874732122346672131995159338126520397240740283370037708172310178593540760667607942058079589170718628648958756291937162958536332795592650725610820386895298308399356918069144807921451375386007402773590107846113852084079504485033722345391888720602887712604900190695839392168498407148711633350169754307599387224971633299010558811454689802791056371548313575956557574637807459295114348964358731747291336411841697209724983409001537227435382149667588995830660786033231048367834290374422437713679990297096702664426659865072560835512579758668904287128382741517612370526863785879104599346879351896810477425365087259068847947035492650557094690409996373253268634088730438776784673203540750714854921894999088886221118461487442121349369816913357508684180719484445805140446468160167151283296820685738370896557348932385820653789639287654906379832013114566632952612237156877853864341700755070911269185442160041217585867139752046192106936440137320415306970817405625955285404285097572786560742905291846874197440551289053297116047100426031629133860830086358013779216401474302792751697762090327441561007383880229322551101391719082925231465147294371469438625667676150034400609151998697952009487740785772862106735288804454997359178400160693928496582992865196052008896060552370599890270564996496320496640686242118404579706467762268911994051351051363554413616498584592344405201577482543614659156747656764180092825952049513721903512563752041884739913414190403958990318822859296093930180875095690096370527961095142553459925027444624125017541490816915319078214976934481334493946905921319766117421152359520379636918224537437373329140959034201541720049630716935468648697618104923478840194525820203481723780044606127010759048801374469820483806046691118383328250793475479987070928484617652418780379994837176173616404527219927962135634771413365552497815826397559281132596715579375047953226346386010463288317416803343216067113421480228245182492081885878732822687456211634678445041081053540084401563575329750981928694747190427863211065493253132960322691422610642710164246916990945517779478509189826421596630888550678034969679261434622352156278808087111489303075513178857877961930136979652450156485216402410259227440914659872006203548932464502509655292404976914311662766103567666629389804139277389060138000345366978679883008998303145323954307973846367266208341798962230521706355047147032815029766399518960729260821330302479080138125738565750725822819159886705178104190084920809295234503724436248292268257496980507519358753962793012404064911767069786421108444491192059069536154201333589360823750708287356115520564015260697365290097683504513670751663374488330199678548322570853360158824669101247289473866083838934469536774658639479973918485998076170994308650286595553032457293068765154682851498847118683309369539176627774144821436871407593015516096027025235864030208152916293927637206646487445804546525154125513719601100736458383384695803028128603760198242716028965283918567183286872448137497309770864445373125747945843869632802338307711730875436854228547927325678774250605036503809144949730523177715200029068993616786020441803152003923515326569853527734248751931958951104225070942786001085739669858321009355874965727845448397091291981316719452033303837716532691276919385883362604211326435573185963487131388070156627016366905241486076725283206626071084813270444987342874935677307894010749574135268903882618742302072602551991582638519009625534489535926475134885455997304182863975808609384317683976908093596357597289377236055608149470469618119146602688649361073679359910413351436800544099004939644748123170970234987148712843130169605016995657389233482652865850989241010566179929761759073350228803764214335586743346534026272286966547026604630380584814669603413187398262810355724009491078259229651698531752618518903020397702305362403574877190898125881027112909957852332175238770599424982678838490734561962929605978222165558978756961509606554553380010211694941813207236101247611584200211133446830061601930873210115647005172012573071290978545873535395577262787625003280137514837702355629356109097055125850910817094149490052546667828409820573970522840145910491229728007888878660735768500656295817470411236251592157942919707211553037231808504659272498506832722546714225057373673535260409103880988934081810267158733913432702106417054790634954519860532323451149616626643865453490805006581999812057157987251730764157248063893402870781278143988402242288521960375055836887863290928478665204572004318100271825563822224931995682669077107436310478149761614056109133929224660857385001636445373994184486321127243930397492501748713158597421913583550711935625514280672889071621298719439939093758751080275928779892989520670488687041329907463565684611286732291782698490053395888818222815644646539014679358504755043404536992866835965050058235286840330791035991194724665284283338377235360475482413542317530514721222713708019110446868692920381496980281928814388999189765592265351533797899487392536157262822006878113054808829427993332384069830501581881643826288502854843154347215279082979043108900903785993895100707486745396819771097868920925719866245547497910631931127941892096135766609780984262084103731719849140971752853737361048735992165314479401844937814577061625012878437539552799909229042736445842534050843145692349854278518042672503449082662142751865734266949132964669700615528588984679023453273648617788381644325323839285789866891556484268358282960886628722687489448709531915334039381688359965602205233002592020237931657469818791185956110129190459897437414898406898600386452940242102508965180634557674716340695838955063921717566990974280322628578625540691463519043299715106336419648372732586070729983598351240497947720744667031581782083174977591337572670841029196487019911622860732641951304545122454026646765778626935571476237730050415645337034042718168398296110773839381470164862384841538182158526700825875338677073560861225636692358349222151375223835244256476506566414309231003220959291738891717997631925647855003413421445054324989517048816194957101959393208355570964103122146324492953321841285273481994539738485236729667099180321322697493792763493970884272534798316517446021308461178822710479622652871946626556329189992799323118798754664719379614102072225348156238017071852674140309768844728877143613155415358260742645738643358634879681292993872142601558642809684422639200971456420614041032136493840171093823284663016407227653288374990215161013162173008943811924460398489664511913764640051935319027620606297938020869272430888524697573344849980024531540438677603630270476729557696607071363516517030079257890632321273097892135319647904155672274225994507596975312995131187097948013424895085297345083428839888548981678595178598884832946994813336391900735247607343360530604716778117373610401676494367552711897655425322999661304127304852186439986220833242925005099650509572330149628839280231301464684953847454079245177259892884211015939684548330602666815553373869906033901506646191592351929730401953955288728354920767343922971813682454149890613291393097078197376804439254490122298040354268586285599092963329619905569782163423251865552214836115040402938424699422666085604838920298445083596232335125460965760017869165923320532182537294015838754885025142957269082239351222544554715620796272911675446316613904846661941994283531437066568516947066567117387357978713241110429391649495390421114969829658908541212899192194372420179068654206832742535058990529300737232663818315137489247123877763389636129278018561479338024801146412724125326305925042176737042059534918064297563080792193823789930322463590055850599029946177751329551777263409659090922089347996563860395467945129717286487340572290385580951235808784124145764762866929299066337391531433818321553310303521745341464323361060078147113437948332552423945186018498761091262318336763997644006708865605968750299019955270468875888937331301578630052263154057810325167177059949078020850332972571318251429868734607582455552316942322544325421459660356882900076072884314642480994224229664108780782847536427570560623038557742716275205710500094661578969602213614285888929302839068392572533160250794917289933077609616438222653161009723952039575076167184635596174499123893736953854481386385569414217701467753714113628727254977664377093936273018884202719591617891629192221168910555611703397114247318733286448697297475071531026459345470191455809638486679098364273005298476373067961403781388566900013864557541429064482574857904069913910437401318027536148140944108577119438191970628412648485618514634288538348950304133457244067078870562809045715705962827968644110996727524250693646241029244712671010372322966629591139966049219509696788658428002102048193238874234482933595778464855608217323944280078933332796887638438891061134991883272100994584002739502922646591560054465075401187620006385800676060573098493127802134305478409385379891517997501244080425147105486371799539940434075013548626294596889703583672721803662126520419714409889176056307338108213534640938991815572138897713080623163002862593010766352445148479707306097585768194744820129851384202276920963189049054896320060092586943385339115389895350354168919761293541766306351729938292387199104654865495307618681835945196867487193390593717785379773045306879126071721597242787663107207558620391760375397388648882479656348564074951269237237184435388707601781959648856679980077179344790873799277873124040210566572961592876789860589252204638447379381309927160704628002191725834293622608294903963091509415736535215272017074283236825607820401644623035976679926763097446395839548238793201711179547585176341651904682101615939173874867480777542898071589144809532391087897829689987879936140277698156889435294652560435870291018575042562685723921853994894340193860033498720280564651932222541069408655690435157664220608380641301718084367799368340494794508312827699684360056301082940764984767493810561628043399562636569324322898982557040004201368401237847977982023422735301364335373996770671573066124301067806120745718925262773826936820923041346252665141499838415688509292498405645802210776396319472014233591220928256019834004197726926734470720272672341639362309112409114153205840143160940445306351006648598607739644173539884810858088607174843189278584773273512567666450659520569939044153226651242685952680505182534900074911726691446742227089533316690784319245649952245857400772845412131284428725853181916391126432742345405615168660447170696382591301526369316973296911919484893287262410462088545833042560605778518800205782245470602395720267154473373788499987210824955543823476810323898308932667655475556178716782277151433096534199707749240826365249040295243691044608483587099918869834214872786462114369714774368694186362918885801061701166396734240883276993565709420233907923861776101931537086394135624735123195168137140798931487354819386210585973839222828814184338266912420295206323694202418403993245960363950576681023749985559720228115333731356234638190369219158327731142152984508944159083482072669771289210711974952101137460245924012202746558990747176335845137658484486822698410240359834303286526480296145242274879481659116860348118306349884714573256999535570355135830393359795250999389954087825099439997786406947384583951814629959030484559684625587559594827383082330224884149721802918276767524361350959109209364935714027632766726462164497848728555036454139394492977543904636514090979760888799428930481390269309260629746180291934661699385915342600669537472550543980174811118857066865810387938662389005576133808674326235075509851763332006239729144773374891606295309190438057989208466965052022334521278919399892949687283188799654906859910818481151306490227884231758029203845926123737617817664426908043300791781158037371465827174125157249419408207568184225916551972816802021574162217091410326446764609885003953307053385862803178765531136946541312360860889371992637897003453111335635380780840587066257186580230546451081998208560874925391465793697950660540629302514221975679931249451051120518600551738757218719795095981663022616534953709883205669264311790500211114858239107903553649925376256207002576223934423469631601730132596500735244967603981125425808910412245537402894057748540095788693847001685179449925899062496659461148136457558867470351538912473462466334460463321012049690871631036848436869405541748339588523897811546267646480021038025872657991736993233317065749625150263092069033971978119873921329195641027458439967643951593869878581619875965352495569923593912680252805630724331760095289429513647432708867338309514535780513830042061600547538202611087454461605713336244735058897095537403677191118434086595130437493255345343009728623266154064169641588001886275183104561196557799462638498496703074518539596981295882319856616912103733095997659310952886047773433285359652699613156529498455244475550031393121313233297559855481156910387409076713672324773644263078557938770278274832699348420873184744788272805708343192187401129034065045523184124500448237508292101656763461015427485534538671341957755071645059444500305057030760940201291343046553814653844606136064636954374690594054377728251779654845306804243443316253919571537492434321268908697854756237365769012342444784449377124564043134459676809154429212081154101408325882374772781603979496969029450266753210564426842538318695973846815118744242755289585878827023682434742971299150374909470240553308941946383652810423678982607552738666088379464196430074830438220263680707271660228480572359507424844471286467898104291616469181844001703593618732660748925870924691218543214956598578228756407259583309757579368050913540238656361391258609163485425946337466238787972409791258023858871022044086209367983426632763696848935011943983660279964376437413253348074346952905674754448010519388347573836699137615238608152717406305137833464702549390025077209031420482857028086082869786261183844603981696608084987045897552593749241522646950771493531560438756651992912389553217686356822976420967661239607920109101187453642096328442294786105525597386845556981381205255627221123989585708418092812883415320153366775555573232798510897231561675296310933652919925381116845253133594004526682557933412243999269033531806464941622150626084301921923605161394755463733599189601232938029575191599645154038046448259781354330319119601702573506472578196914170042863058973934964072761209381473753564141642554251016944176957528548353442908347343933855108931702052819788354610405745750691903216502235106638717873521593543270334749071467396331970849022387870256837199583232928510668706445134930763782373287020894023676729423515426383310166770635004364975607881313252407047829243824600149845358991937819113519582510591662109858564826111476705541593033866680701192937158560366897965499706792742604687767199575179665750803516088263920108429730526571115525069578855332176010636586760083898773380146427831820400436844969639111204483105434223002678255464931365341313271359978892946089283019778115843838278115550881339132237408883196773493202886451657661727205851463606291091210966055864048368741426226723892276188528393997752973879581453668335580794096730455754743969608595201550349155619710530150818962482801276931836651837205650064283988697272788046107160055750478548235699622796387012431344955863199928554325147904053712021478537547643509709027240023921093896389694372682385452314489170897636689577229885504335722249343304300543746127108206332967210536303281259810067575954349073407078806025144400289968707258580795644785496725429638523981566678379634099591971345239538329562214179938268521882614142588800223261965810543169145313794022320061405908034134297149167197759453625966083999469834676421854769838187329752947977508522797036906349921150958075139477432168807926876147274962296388572496993818187835400190661389546041342125008321231412418798926276629140754490637580704424553972913252367033349788938888144762384691050062986795826544374649347339542424499725231859583078756500217948492646845322220729316287667318249992931332627261913960972271238446634199975388438160197014119877581528976670827806093442901347741070743784432527674837550802639628683096276030044389269964671037228695201811189927065113993445960950979953677685551518508091346940049137849446963897626994932455528650493950386404945803213914419025324464694683564825569541165995566761304380229932055909633596117335540472192131083873709680153293630585491765933535986127074938367427863330953101798648992587771845375403451491340853323930160725939927735788456297203364365144113446206596159793757414513642479154611023350482409370776067186563884719628386521611383769784777760888639360697207484476639052256124790192906573285247273426051797284160793929580961903152703095425952829450353353526936414141876495332520999999360127666480418267887660024315727875398166938990473801802150238775007966916043465763069903505520825597188567167207220662288046348305989073525297341133598398404583024245272654300467070424533184988875073873560055991159209756227286751259247175735377820764620092609821162670751118111153892420488101810818795111428190260475358412441548134779450856584679740704685496878318559940694648602901418457179768560922342826516115572530813058153559242788564301928366979986379661188972225036242187144260879690247892564865667038772291832379576436615556414330615955549455267156916891897564853665649635615590095478447968067768945102174736312904016833339489113203104655385399168204078203315703299803291065012387212429898865781710627786973447115113123551698826416800221915764295518328631245960744529326841384143051577499129726789014128546511161966288122362865390474986828622448729652021211327319898772595772921334520746285128895662401671485590676685075447019579506076876851876059827759988598221383008780235109725941112581342969491298282320219084958503368391782925038827752045297089895435693059889224421114549764891436409578582707731717044122612203341632786226503510228335152039732269227307831752116477140298932008205897436051478073428914052204303067079244077527490931963350754092040252449965729945823073572451630099817658819291626537090517276929504233707565495145981473160003674358570174417555065802769875414192127222441420515484620859432752294073778728295413023709663659946871172105297414480517190853520016031138740037097273206707096553078810448036624757773484283139931289969165218916471091106134180146960218589113834049801180530498553989872692377296170102183815806281492160515410926505906842692045056307977701739368219747417008821762902906025283661946756362201009402553504669277170663689514629706833459635381821007337841657424817094030082327955420672632580549918362353321313830962807468942944752834085357445675389489499799435057637252546556431237441302539761667357307625448918293142238423467596324296339472074960180011715351493874879853710317475840020586320015976637996721720540427305636339452896485750604513380734384164121648522461813853098119925409502228725061602834189011919010260264426481061954806647654837473186375946489345920197205924743120231923963643693896019585321934483576320760546749951893959191977232031979107649168742896207346006287809062449501244369570535489481295649249628016444450503994589986414003780371886107665417208771104411788208319835235355190328314040048784918379306472525208832923149556199072330266670490970340383877077038583630305095153630228829126185289372331170684405574082221647094435553014012827276387268160382224697595984000224181202485051277842712611680349818065401448338750259488265690085156740348739742028047947456317097913481292761653576236634969023610791474959420622248691958624190963672612185601951775237512793757788715454296298944614362431088399248362185032884127113235858984674613624153985042011471777252437257241275245649589273420599192141143487980117207098342270649350208772763213546711310632642141654487819310700470884529862425282558467937813629353856524682094936041653061030168323539543843080362897906129291720899365606481098657984744805026346010027545027152733274866412745917046952192711129898266279220260247200033712819702111614049582791738660220272012975049412534550893886432737353377923190346147206965074076348579121741755531344770984438019096109248153089504989649376122817340284859557071693928988888264244390769169748178064547013107432656858980364982346247909361542281121426830138197708502025018752655278449223471545426177983093396421990917616077597662842521523956976347696944180497619575739425516960636380307294034464132928414295304681394977760596499197952122797078078893595616651691152442303643135017603916385136090904869933042533548099581888657881879128916642452291461876579695910943824683016043055691902727790629661684741332311820060388965581747908000220324545879261653564933713375403111016586255475376344614613403509077882352894131376594272418009332864797111955966140248879081169990842560760178138945570278101445256503590895641607768805642046909692783582545457303145599375968945514904698193738878536122037765368884244723164977885277247243213918127380544830549334869106776814397679950058477453558386526913588220036523895759258339019934699038283117905803847771167625324009542376320618529218743814620978636065547200836003025242580573506050343551037965179983722280728358676752039484170873769837884048858189815572078703024089686234793460213113344033823438545101016241194588685024046073506135828226801668007824534210978115240074845059229423158085851202034155978670488027218726722877479348435323143792690527428163197178809564610032506987417437257873963293077156039690493559494455551143819079810036346458900044866088631199063817851045067011232790459686154674294461907027696535778135013831435147273935919044946699344765117734323727486463637054576096461033947994531321272535640642634474295797245067153523646833008178464258695471695662447079438750990066865233801281718612783467006724069961023190722513649725656302864494921523016387451860349716543979292826372844667817894331483804591313558144503883850783546824595830118955854901614461932604583261730077830372544414362368502670971174579465911833392435628284207582598411755671979479911964639638782869159368934127905127342621573333292712518330035773161631194804041822332269030619667983004559935853070625778914821813220973271696062951242369418702616329283298999173632584279209540180384639826229522305660112849971886934750498132333723403966753169099161501633374569351791357766594171267976637784770112721060214019615294382639160377302883501471053499316141586054197407560448556398051740486002823197720602368531840064833989278057437877200516687305656138042602701310819176202103323547259012846092369001409187066028850821243637539118007763176028356344157020836795055903433172239000814071151387525509852293411204597240554690718030709287038447750445683228930454948442320010744660374191393639448630532882475873186218305453827093524829414794278243268249670420098608527894816305009940512963555291161285748327741682360955857126388106316256324385521581376878750434768157731708892795346601963379808027333810687198913608938336342986401854362531151431216492278938147674294480474859841759216211753648345735185547861972133694542020550322920737289949669147963015133438920884303506439575642489487488054657037320902087634656667071493424695781254834495623825521616055494617524569405742613871143946369192171106573575906784277102305517334401144618716164303472296033822445849034515833077987665618362189628793869010615131584526503460354211887101435213700052093005182207582686710417257644172615614526544468947543790002461628196044145098529498389121873877780238898006146752454612342458639335459951511576783212572399862146504477176588166536666224439772252013368983659413267418465090444023787097391220786057423558783067444209522778917453144740731195104755874457063237858773105178640446072112649855445259774184513219416289382822498291758962809130808320167881818026878600885096750037524487837131109109976931042553624264457563471246018596704629056272752637321663899890670679915474295076831347440431491301640510062654364455503852095808598636828674182984106221687782302600743264533984117139783349455095205177993171278287800857416651813132303264973866577606207597428868492915560804452544424943244408234340805825417074600436086310391668638906784838692598278629243570461437596179603689978736647333463826607159821127174921015340249003550250354913554543769920606681178583293224954628984092158338683053293081858288603018746433774351113759426485525100431567409870942572512567293401301229626184749613162854602844795576076092079060599366653602028894727853120556064812853325301476647457099855151775331661721133502928633593061340525054320743621473896850042654175771582773205208684054189997237629262108431378269405966660761071036166352917953198489379211799144014343334578722588586976402816986525517063775326997636915767308399984441513087014664603413749688958883300854376603945395689673559887495837951809046649737028806914636152386625299312530826654612297126165462439802265337606585706675902087716398628822830795153931468183477958520960574133720839292682380828678347709601347560988803914273868557848014377058570440544639255826255531234440790475307155973141745772109265021151500354885811028577575350643656868026711126822227129996644935880602229144911376812902746408805595496417559808016527226387964845712174649936018368414012899363684033751381573762691018529389920642264189878195528075263020488308207029381728953580225858121716290605514000483767728776743985712699134607968956804519631240043585723105984038750426828169415640784364448758770441386986435265026486092103144504679459205199110191958799353724896330452176790767226130924278483185304950926436345212911482485006844096627504543243244179356193767943508077782970128837073454892162725524640888194707970115738016192723842485411428396306081382585822215367125486838792230067149879685906205694672331628682202402200315261653615507128367086778914859755210162575476128701384910832303571029665504640117375960554987896346437679465695123133281560052841701941686087840082104692636327354950733424647702581368928304117225754370091591380846469676423533173129263616377733979716543559274399384060849949899489044053236921966958824957364012492336702725352024609792724968660407664976618342820954773672880353883138449600303141840128189264857433520267545951931836691596399073015714821821756539186123199352654753142107590895617347545881710335257874550660982731510129613940356967549482540067853076139173309138111059680623151559629276351711217189923167906660978392295485827922888539974494990770442650140058525875393151449795773324190822501056454262627857691959361414592872151782906066808156572341893976876617119250850221318825615199768943628498882178833175824790061531817909560785289539111006507661684157045922422863649181775130114211027024361493903124710215174182773289869381501165051749305638115994771750088376875833479920133532112021058965143072942745622781758974730524936742890993962430922203384629849219196694414424212695159660710993746413931812839355019151980932744120743627616713214387883463583238199576063458686804148034550466585422676799007282897115277968846361391317705577809467305903662440656442510248226066878495530196475557549957765214430705469362500538685537364025461424479790277474894270234162532978489396349541317243917980426038195450187116086960303049667705400997853536510002475743744211745110746081367453475707767685561340486146043590211311081288110200619138478208778840583209025128447622426885102807204973397898952620728432888948485267822506157036062110415920345863096002660196737548648921997036008801112153364311866747279853038540265469397341369472205923679034937806505359606781748663157115580317592518158470174339398507011183347561990890652406832129365820623234110370726739474276877820144042882826741956294542862748717528141146182496004726218276756314340247914810829141647790310929397892574758032749102527060534015524883541382883622782644798806267165163936458402635929060529285243980977617556041476663026624329343783832125584543180210703615372254434695290038940437782457552931279650114141558844297132794618644829642895276754430332360282136616041549668599734246113299711526268168478720521777581032554935476666870771147744242826242025319964669403325853844869039891673266863103175969737427081636282783155604744785167584948575829120251023125235409807133055107737163549565411067032301260152672141603835312507884713798338507832327285468985399938777567048742825044521923496566155467047027017945511799624792484902459194004910695826149092175484627657039095204282173856854721862495213229189640389430354069593745205250399611910319424195629724968395082427466753497501320560744081139328562028455770077667209869842811385322296239215312893757334007119521985947952419520902535831259319969545817595196333584322365380153519519255284766942816791098663886486714399971095844463001482086390890481487342536898909106597228996402761141038321896437868471007072654262665452568862250909937290405503797979904520231675012484041743516303267762109721788120732355393150381069675821187501233205758500735773903865689640056415440426182418809612517894949364352532068594448445800331256409678677771319397531399513931773492173308193189899112460478966071494281339248801406205805220718578745523728186419000220264326114749281363331852845092662146983518239740955258771311372213066769302578647171923713893790048559291341876003127653907722658977588562564808212321924135591159355809118293036968277688051099500343534097858462026032985457418963984685962144775029349216264148108369955092800654513817714013429558807427684879869754022339774349690090795439560174835043751474339208755582745490201938588345758617247654936478238369526003360056555243677928533388741647219598360680880110318480576905989311081410478960814500512733015115807771034189102587704975828710729148460919170997164358585981707067111110982890590793191778868163120716863468721809954894055563703998986396040727884358512944447104925270977395516314064497656613092958104981266674555743035293837937334623855277180875100788305490839761161214588850934125855363343425099473810587516894952855164052207172682747297199930516990464883390231970296229102701211875146617300877392655924820362579675747840759453705503392873978575292323306709967965494239534515826106696893101990664488528548517909794578097681257992388646970477942507214442345512864814566298323411043838080228727257429816401127169844520513101370427006600327030000584905305597055436499473993604415578170078898291776896351302693681468926702967753173798363652864395670422098479901455239149465018667085081299418957443067380299513459970921900625229001643451142614930314155082885209687940711597287478285408709888222856543266624787158728456368613304391649482361243529178374643607449309460846112113664120907407239311876855707169569809073331057821990424397682879206050604493802382090030253635286201007476791705378665294426442778476580452312909448924723690351421915114119680342215833264136093569557044462795679287633154044326185295264302325638870022788450918475793900767975262825829749015048914605249218628659280235691656089583948334422249459502021407653594367641763326770197936792600956042432493692453925473107678863292416128258699303739191658897293209576817547401194704419882252190907079786774883406185129605872037811309056407867181826883277178459465904698443328879940296753528239564922836689889139197123663125060114176697486993929600057384687936896627921642353500478229626888276315027819405968192078235460845507851935792201754343696665713962040178630100867424462375488334304847435366302255832610081069394660561487668048175202785306115709740093655227193454546013897043990007961935888537129664092913749038397818963004061984342640019292958605651216349384988633838412869698655892704817261095689929057923684961465865584080254203413637745408310496490051634005321040698104839345583063055216118782648129974923049812191929421041640025187164371425264012956937926566712105030417385967072613698255688678973210752916073001271788389637675064356592784707277048434439904182571991903799751539870828201104038530078437862604252330196238707665563678287596230926825418432768701515488246409318940862825366545840380884791044345970049227658688912380002660150758920844426541135287031647886742852700054864289165575119320267680503881056711429686638826410006237320668766055694131426053769950493001149860868005981919282407450255980303215192338731538326088892774737884582968417813029229603719454049895490023490671004208482464161453125121829167140287488688712431095543917842494186926075368549428276280986471947257274142970547914039951497123248675725951228829078531777826419313376209177520608330350932680649219803797812171278294747023324360718948050907565221107947903977367132030023171929101755812620989448874805901557276268250213119063931882209367871445152347857358288085345298211505719531647340986408188066247522365417565572199246146306741931395553779048098330047812792329071222586646080806991021434002213297665947979995164751421464037486969325390676482686380441226362212302753608028068572918265138449412692592523232968093036560207088700958309767593984630678357847759357145492753537401520893943173164240798007652270903260377037986702462627229785624353020738117164925356770667707669406583482785481928438047335569277163467206693461394522267805327786624148053098983206386502342043413360406397482221001777465909182739317014058647241861511317379974642885186935865416862406822330325258978244717128785196659275767028175680394907988251325350652405823415458810780129779133554882139702357158506847435091975093333649097008890534608019684877473472139076878432276252621054301268326900917450513533699225907217722794353459903920162732850437249525013111744585185912298897901030194314651833208476327665650687799696357793843745999287870318930572444817420544381588433354913973329564092476197993961246819370846912941154488156813189950096139242899990473915016604764814388810347609503169293999010620513480568207054065425331492433357122274548239466702595443457876745788844980323888923237695743283482960488441259546750713310925605467749625699160373897739234421072288014759407172243411524213965665303868577869960548141078767702754292767705075866552876295097042471242691282148631758875161330457956885063875825968972886615667585980923695545075794618783460020947206745650390671331264253888784182754404149323434761490455247998276015016862641334933004370010284330657772437443990850504054979641887062715187605705936710477730406727689280751632263014718085196766464440112066552796191073194561690014177337040583995926444970179093226221235608512278362093367184484733291582244675701128806091541541637408815849056184655721168331752853481122393893123956451253762867060156025991136564846576552919510121714744791691371275237957395315802910878911154720835425717952620928319124609235623626681152457809078859295629899731625923623118367383409678994944957618096253426318289054263574289554162352631558276084392238130520153107982496052549682857222060274952739995265191367447468138215281046632096350482296807551455229816247161081341643177424603597165452901723033150385310348239910037338493617427572318554762518430838517308950746092008493593983611787557921212331528023203399618968828065387052610637350101171234512531488856196623954309565611252726898847118417425071753882903895879817307417972255934764711617067681683285442212139919303756398817293830797915369736378291455517346517018112147736915392923645524863942552948450060350731720546404722009923295974795290782334850435922381933520003939560603371415538204041340405032234534126787715907278589749620186457620142778906154683427900060632265295447173581397613189958852796498044241671728028204819769331781294303680075515624314806913132489853313032356523068672007482445823798565441307530693444930686693846833177170421211745960434558026631673136784390117080998666578431349072783923217383451734966241151203415237603763288615398789200896340662656506055565503640232201200730986486067930885096362410405345184471791361166232734020998448461667009654557112420906063039957188969938457037060381951155423846582705678490684184214119845390526999618897574585368348426983716476570302672489450987406489012678456461833783030289264372730613561974894068622508775258768081634165190039000035015144950110420575144322321633702485349714635133054950826029757644848214542079499506845161741913660957043566044397772478296838452802346167344981784209191624700692048734978893698586390250840273755959512699692969691759311076945976412050920369334434062990576689084664510895665116838425859239854335451528373731546919474858470336143397355347159670075219780037923635848689731375829521782733757393375874312689156825060645245384845385866204021283706731633929551794979031907993813734396057879566296175722961757772840053936189722737384760552932818084783246820164721352549188300964350000759769326361480511221541090143023865269394615097251168616783843630031428413439988823697523718267684989415810236606329555994877790419174174042587251459336310786869716315948017198090305417849586904679797559402716423592283324201837885605193173657506329406733692633468435064744050187089541120316092660331791950946406499213674561956856431502225505470591757799569067799466529690320020322410173690321259545817976084708831239805869391695418530680106922986687343566035319117908144127589493031115558721500432873287374709883211881988896783419045049471288691062078818571804976163711966792865533913705290537609325094612884051688638601970612343628583120537575666052444098126212627771370388245672288283470578788459538706284399231739792066912973189646401817736179918107358109054165606065747467046847903880960909909403207315116159091192835338571152519347874449773420391719670143363577779574025121365924566733749555577906102459868612304578443614753594055362665043929208917305193276537370319141370145566343344517944157590555258999565279232408440316574354361578703351459094469043911505985549337106054900755374635450377952307847814031361145745284079333492564401766749713356746885529625535797017741687894986265437331715851198329320457301609130236501891608978217630488707345903579109330319244375431023604968463220516943098783633023512418251726227311553385614991357322409695079449388272965434149843130508162686615763029978450299375264084152659098488513823234919992906993512733560546072918456868165505895294276480687833970360666611459787158335574863824450890020304920917159577649308927602955654924344291383002020298007945298470276783286347745167385255750136462578519350642558615381669701532513057509948780964772748871196924123874932376696644010692205206412972624075599031364013364994178977078896539725329297360383635179487272956773966154895638947326532434314443217765393015891677414024921610164127187548359030632478539492456407344455322327984398993706828763947556999951374683429178184179014721141096672898367760029486601576910375909646289602046254292422230392321678153782190236152199941047640768231619153283217483347957116981324396728682736030842382746249201028742634874850744208153046558492799666645732649947381008765732795133960784228089571505709297170744540117742454874528562302585758264142089687643542536605876284273692359714211561309951737168965144714932308255545189035068701105298582841845001034302885927153044038276258624342998260564619831628368769047405687150693838204894912114295698106372134189891663771155382353660067465796228501953586236455047136498401059188490936788459758045354460300259807230050197788679641227439739181342335289470980997667318722875150838792177647219819159349585499293719196619459378374343255341947042253072721190715010244589770213695880241276535477540384043238389783942705300800686530791629251842557354042064282387797961902410578065760457841063977582741702154935104003623331638142658437409329817879243544388722311608668045947764667374136183699089488078882350476585908920087079415723738778725136818723934517525525413708763322690072111226884867791166587419479653725796941511326421090153214482934335904151891338414174991620760411842466487985989963028429602282164413728320890248451799992888950007096216408922361662186787926361262253095408711387466906696677851761323235633652935076647343233003290838388659847456153084821186458515168762492827586687522271660059073019809913587313549006940444709720356094174596645583664048344987853500009516481725157576340084110340417531873376370238668677540015874114473236972779135095433205632344928129734776453339488746880310135716505112752894309462348968563902751333340490689031304362744448300406422851642247898685838152671313519303878940585647293140464333027130482591872777989802915584062908554335167285754389299141330031827620768905736163428208461124878507996462181951019534062671221435203908753424021354655466438052893696908158231602039922074767756062756546251644220254094465609000580187899978424060343769698513262504607683163456026232768175754696892508087422846664624324072601700306055257525175426128716966237481514287201489370594601452412357973018250148560030329023357096550557231149120501100020703813392846479093287629909789304069478760220504354506372630739746753587949545750768489949561921493586706613537898330400995545528860466296584556161767876865347206695021071025450067358437912478824056624191674270702467540196540078017197717641730697076498649727468703628570494749032554938265364897239068173001155152131561933364015038872666859690659337987552470478430148686686221717233444016406255053866636373967247293137544668782062340072900709846181249687979305277965868448521612745082311294722806584658709231296966300254017992599366778771568668834597274419256184349053574007733203945770744237021083955153185905683562930681461671551143422543959266786903513572420725454974428452228492059008895903386536883731698670679717777637537936382780574988387353755813542771793525345897681027561773069253533163555549985297216152762101627179448822514442389451097304714055965159655477143878599465245364569022562193993817577403138742816914567307912311202705732415150788341080016287172874324702938854339357085929542609773801049698623255690716416184566166113939064887123625517333700091805176684527334094709832221864459258818972058348397033890041240890812195698550444371726818696928696891544923543862690826482828901210077906191798209080049391795062721690230091486318171348265360458729067955514579778571188211002309146680980505935502980877551228948873865303923969428002819208980326014269134207780998048933119628177332238035510792578916438885211637111525921037934774067193409470845861858904225248241145250437066468319136997156188764114668369405193787342544036123069644932528613484189985882064432645034857359304850029285593772186602376623537403590423193772964955334196097484923466818073543016580727178224788213630877461139519661299281490739545839862141262079129311757379207278770819243473204651492190066493262293239009391611929092287874401836618684306916819073751863104731657774381187803301136193122454559274373582440287238687745390832111032355521788342175794930215369126512175595749185456480984493067797849458485644769932842448321992855465614318572374427208455236976601613969827058808216681256718998561895813173454313275745917862275756676280256634145216778502808062239539294483766423838260465607047732127475620191026248890832629673155076386011603712343628527909561654200958045043379851421312365307796733828509396288239876837682933601861743351557199957496744596987708630191018891693654462075355328579624865610454404460692210930474535802080572878677103461563590517816457420381263639697277533042267187235738557684269810700001617166154896456802348711603687968987920141735569614088708945458479659011776085660016158554109454119749570578526770744307903036408768464226214785743834140439742250754695444297069922906030709141020896165507840013951661521266892550861067646904442930454544293766484806487556044950225520266254909917330071751777790806492454441948644414476313737054312591247544738002897093172757037815653223781227536298229194207335094950392736665151436508851269537740543254994083311711598669503243961471949959850459015249685092543191685170011905013657181051213315690209965572447869936550128186248268461328568026565165042786927500049184177485956031718269836756241018348965328671358293317820794939948809696796329123798152643169526652687800237874705734386871964982628349625176463036356380754479079738680477219886983687328591633330258276702541798641028397894523297295115740190527969318704375830555585862745276135922473863994447267845907321800216082691881138844620836112731587649907679347621516976696936513674085377284486216462795527082582161407080481575025264902980629103614086830510249965322542059337235138981755911063640006076220056958984079967502574613878726093336056061769352588023089921804996138160888809046135802181958147162500869882024328087315714725179005008582343725739597791544281521814735959641056110872905139358076321240227949683698885736894096871485954016211382503227624637449915807900300355998880212918837873976537296214484444543170573764351532071031294204875780680144680940773790423899320073449444701839942354441905624033741471337149527984915993178315265230628480394398266358893307404335858753542805525953395311875365624897215576738198309401101419577826268397164557127352133038037684887060978099639102081872628462249905642457594740429908528445833012120799068462976700099265074211704858936718315821732056602650656640028613323791539362284241336562333868031536507065108970932530074149285055993582982432158720971120272481227883160291832736104260793908643546976790190749867703767045535365489774425024965664371871074560287101604280098969371892959713675276267673380590628927497543576427613553000061888485307431219372975269391197150743735682681888122670772893529054111578855095162548824500218554671537293802784852059342158080468054184197411356538519142600002476076435146265319650078065544627266748141513714718700368983183429927074487860878091304091458216726639657585846049684828891620280152749925943671192551908494414180392717494468153726608185256760550723655857358393270810339315667428621977848941636063673904386095590594655214920175926868256768433064305050270296035829819374553903546377111380817445654610083959778858515734183839157129762777848993463513993329318258443381817930493983642306643178091146696791891470159266051185090799629719665108875814823690597556649337595294949611681636354518550052907726551128701442821113975076252277837571738778474344596332033949372874108635242191576089184777707625798024606085675594929077375922974039775936851097422660051741913416098840084041120641280718083746774414843064356393787834705485974347523454621582253013139964054341716301330898735744918153054081060414913242392385144238661317470908399740624795530807482364203595009948339233587326117229079449652321964208811774373176244520156601435457559784685082246626770551504402137299313850709523203397780662828559353470341159745861729367736210737462278224465969433226913033183759849353512502571521139948082154733892078904012694260477291344770933174980013607186668672993224347668075639377156094869187493335100927900389487762154966140767969425331334996375957940138788594475617587909062987107203604207423691471595994978897850117760863562106195780142578953062707529069372635299809012929507271137053061876758578074896217565553782304737059754689462530758823126490412246385030324697301468137394961803342699764085162785401799693664636667169944777452154525742446178445392133030775638550319422394569899830497979263154914318999587908758452308099416801485550798809350824488817187023291425793284436868861379914190832636463783516780161348159990287085108076556636853870150416957731308229783462532082986339589629090935908776704366834286643661511965699759271612996987392331587099638324319548485982145761015935910199830196126508805506913806231649929424887937825486314150513061768315616093849857850076478629612846236028352335643010118619284070272764637286312214423915739566807655758590701077206165028034622985678305298061700940291727353614524775790872248207031315785887452639668121698583753292022175366031773417704435655524397055491184735541527059374874973693641731409286859007895262991755590903270410531777075756782511880683766577775917030974477064702535094508372778714284391746485159153754325273480360078945374585899995783449556018832489826726518063661541419602091618461734436333048439356796456112320816592938669415970940229737186949233345929131697607828557526716732859372411093585897571554497582142437914106163227405405530385366136828042221919274436382608423400932870830446262728118358587986028529166748078323315498253824197988494420646044252736608540509767817689926716619327411282986721099257508031161714678574367849786542736294718664472665344504995553724359463756440247151438054085621161274192688657787152014155154162820643062050770589100346868425008050029202568233266876965603735054392481574913862127007735068368094164569253698091095852765986280421449362444010438488108610050885880617288085645528346158891965309756353267316764635171100609420293962234946468696786130531456688206458507144602655721716399375471088041029420254775500080905586645469396681221283358022106601420442555234296234166427347844979585585202510762507867595616947334697269598438423634969340711836090390198867821275753774945883279010034702102038737971045400806035879093957342116095755462475077311333377891501132190830564254128363912786311579605955213098963179982396551965982160162114308760757216543839501497479280332253797972541586706009480334032206509873352232975262285343486101490284904457297737589910927001600157502716992311157273599549109051500119095198845124486730436669682574716900618255165414262288131158940572544884449691372842010688971232099620438548897723455523746127928657534557581718127256734080054636457704473676506963735930689090283384136863485849287037599669394783125874426797041451826484347213219396089491453659928632864981013239585061692309117719455466407532052070315204622546884675901330683167786809980048498927926959571896111917313728934558608228642837488326006422150668715514093710225708124461098964751195647940211687626164257990914283403541129217187511187540815897902001525552103680829261878705089066896375066020103870714940815201171396883957335106503158141810169111542950557548749426470457420736761164668696134326566586237601106607491977347393684894370412020411476179989785702377193782711936041819308904767477880930262494937179983173952544070510695666156733635742777780036021507237852042328975714061522598579586130161152076180907504400140487307564224301257488961223575233944739011745201088699000954861092406956268155785311330322610204793845272873343419236736128716140159889902704571180623244427558088711596518859934574333304228797059243645593626849740030299376329563036721682920758008486310032485272906669610363683635375848813130789834167433945478418448404015994986335344533333231703992107019227931561892625882160929150033147852579346380424667512996446589497257023119246573507630444950293085442567866002556448750046919178694411506630429714663406087098530397469707585959692008558142549737863597065253497815131300331125218949077760214442309994414710761747543400781975030005360488421408607587054801119155158563588665852670741454991286366877449141573945397292842341960575227684381853811831032535309201212501866282363228240282543748271533393802334419839083777649778954902721957117935664186293862020312404888590945583188195376814868391972744998878964267610772555158933830163072061266436389084076913265088362467631136365084920384426416435233230670661474854368293058113562786012618680300307275396522721694401364352545259375515612892162469898380066986118028437171757498729561661910958945618946511515018731183340247948782465286946982072792110216822174819817418125813118246053650349312050934226725531660879933981165554847715405675644189827127272964052656287732339763121000240701704041183470829815348825458431465716289591542097710070797783215513464268652109722650104573412503790978930067857163732843996137541348281693093536220371918207369627257176780005335131942758412430329806991246227820495807958368013261662700137813633198511888289900222968735375810965658719439265812804089746512489477075828682204857922595568743518075648652043703106973038002331021857876838301573386963488602600079864083326859828566976277514925503726821046317418610371127501114187173778632278663788888863377327364315562331543526483072452817972223688777988001427559241964819206867765236463815345069999333697249877647823063619920074774223820248852429033636132085944131703994311235955289902328206680769676453836705566076883287511570118617118408113621052809410829447525075941569321305607730137964917238606367425901255618590658275265754861056921346448412200128956900490052660385868595966994611750867859123366773504281896863160009631286261928291405497792753336247138554669877296826585953505823849148812095282225250512241973252293747507014083718515254003070385424265303376010096613416865047597108576066400448595861743852490335983297614337621162823809472048992627909924672204627136499523325405455724671444974087027332342356028680838691654279770785726245264376254535042900227047420451909144357566570214452538191879128334718298144569079255424897099659528534539661027020560599358770085680743139531269217943489495125163029749830246090295786898628945590262794640701674678239498565893348429051829319066970959460483353746009789022484344555262365032567954265135599843362959184820466135356699443812653499940482885090995035268252164270420881895289104628223991645627709329594402949547896174324014139800656890437408705994927648067145833668714638956326303801691823056983406991960602484777805695079786365689083804652295417634222646854312567013391063522627236455771837347446601020725319380737503411677511116072816953493946592152287807976965116846290881722069817417892890450742614795575423741333308167195866993581559290856785781750113437619359586019085650427954001320714783659210400884209903477934290996411760715442489649306493245109400260143593326548120281314901055363436246695925472584777209196220714918752659932390437098466016367947914046067374455155512236645792020205979634165750550214977942732807098682067741344179024294537431733128489941239032608222912940800015059557885845307660869664838501874340537175043211053054263213143692329621898364290402064567741668765998511094346151932344425293557446081143862283282105019542781195878251987270381321025504497939416013722022970447102395027892921670491243284271354559251180024980108567135638877393118188931115107301158758568760006314278630491015495709534634677124175069095360191422750284877977986283085318306788202227801017823088283296032322296892257974741349786727432777633936105473672356628222643376945027862919602831654624991802385658016132570595081105980947678542014249725156691855196258592251901529911978706272595167948062730533297178635630748175497915591992590452450242095941931499829997916280982063668854270576157744746002391409370098109554534257065538169878000022076888772682332257731503467447474437196175528533974187291641509065153988244119341887855925455686421616050919804150020844772927397036435764867064239616422018025631161655504304660534592015027501954533027324330814858481132044818384438935379904534940935865933673813900432364708594689890641705830656970520014440718817194647053455125835110977664928497737888303942950333228501299227880339383933811299282584627566936581665140513348397972484356651991143522967053629777548964083225384467019154332291698573892773044022297110783260408002805380963597890794669396402895546490374578694338101095051079958486675335401071282074544619877148871868325083023809827960095609447693397656935180658735573258529695260821998089450859394553237367267231359082292748789934829059685233761671995828450152385505437208768001041431442477844575772208516239621416167972236528165330144218898841561338087467648846958699653490023527018704840268563186051472039037754291051717429403977970789050540976146066430003962505885661597172834118797150197251647676710433725937684440174916514766095773472700142715521464936744348200257789667618034980800228646923057430941558387324228670195420038080421667900706861746551748048974296737649905473055920702422075033220247349717155463489813860870480079605570190119448107898383470008682795324632353172876798198031157999056145340997419513518251389876899869281622261030028524205298398982203678470075235306104410608734645255090195884335625946942827480012590465822393256271691411507780069929817130299456174142159125246193266175232007115644902476914707038858691724583966981522664551304538802006990370981626439036551011447213289040963864898827078714562450674097151042808273933270972586818176866240837247622041383977629840872019290878022542435785750187256812376568454125897563731094078859303336748745155491474057100439622164818183688932176675016177027284779915421203411669825178702528601896748509303861321225030758748080455830177148394039813878075825221984947979744222718671634824837297131244541210557287803683145317656861644458675579770945488794188511918976521961015209458906874102244942401236197936210901944093455959993984806401525634640268212953771436375818251840828166345896454373982701762519730423284195302190625586248176087879404701111971182642706599308494550077320500096830492963579040715189217790414692267684379096656727492612054935100747826055970642950602555420824853334629872553727931298476747240458937059969782188845836684921534572841862047448217098327172541176660084598182347715597197991655888902597115617027323463807660192147433173003375638349857176849580939499670166618279386477401618212706419999272696824087417960499940830215594494867181691676124743420852665722167645166768318851441208347108580034799943420438892697908669939316761174803657846645317440103937634589903306468114133360333740275111253477482046065823194939717039950288802772453929891155286849686843592353051236125556520454470282444150006908355490309128426695216324577575153657225926283267256611532606630227364155995775891235828066818360837403690240916429829137011044105445096531541905140342259639015392844626912090239297049584769933868150443767091700604343276480279410675910240663310152706407062145660003282787909992746129655426785148713839067833180855757274804233427345850228855599610802079855455860421972288480842350601746559268693415197546296376686554928103911748915085034886016913535890757402553749772624804909111261525851902368019942330015194298479010987377391932689328582399645220781775652834910176334347907642429132034415367464410831023674517958281304470073044047356106911992798195462228173266523573900764522516594150817511107344722652983066229326255755551206703074518373764784825553793266022830546807614991255322706206425579498389225822050775344579852474512732786720245967661581403167694459741726277282904018730513885965108365010150360997870097350184497564259852468176722511265578884216846561654177800685296930374898606573415117918960354601644300030369421808384520180014617128321727300862432204994054398025911088865104393038459857109383804536188586088713054489131721493552867517620932362742078406751578117354505266949713020405746823465331531085059961266757611424746994793801609020830254369275499335323784723166239311113947076515262355063427001777449620480108986088917350363072084481220694104859736257314024424084133161315091901122065310785834441208435000980511237366693239605929589478580806576316243499911215980731024111847197238786503808548609234666083989639984672010902815175158198540941801369521659958364573412246025845281309325142612215622546213179354597452583383745425353432758593713563014221059113858708239588084224764934850347312445462697906175744050756805671904608091787017511419084472964155760095758631519021151704541993225869111017693700370545885431906311385708949217109291322983693781610393825178307003792066931645240780580067252384256935619567633323155694304218619691382582504113550379577077752574561030512342266944360304723205607613927044573093782141211829594712238262245916344282015754745809000048291121622181593219420990621591891660290114333181895156591912827842836327870826031449131041319226117017989408764466015834537806935025787226356093007780826519845922547222129660759546800893508422344564814743880052143893986870795932246404011730695014473163571778524055919572659560040237029553540571639606848809773488607370005889672559496562716618107943217158975990400002045285016722034631487070918082341951777052170886591771323030775096610906027356698188680876254932421812048485070277635124483211588540412245305265885249390730727180924295579168986359278120875194238141180680619945842526493680907330442057795294132217078235743540859294355485525974131553220995291775000763598813271248426694624898231993021050139982810229478869489186274247779601955889394716608715799249340977753246282535389904430179007138304799531407857393628137626530860094620768255075677747709544493585528774970447439712781134509263138428998566159218936040682237533791172222902981249082401553804825923610215660128188830335744068490870322025969127859913103305885274792627192191350656037554196794157163432058507989205007598024388346107541314385592889394090355545340857838217175411699512184791853118132246787838264444200929408230640797568489341097949703390007179218693002618855677037252179187009637245465383110173446167398183367636155458120257871983650281610586609060843528342131984969067660245285220214248249042766029482464231204780864169870884283225875486414478986259152772991061108862010797370066479357034976583385993121754111467134024496744093219497271245038699185528632804145559995668234113202446064578148478454920199842811993324160905194351658415616112039793669118660164024868623518950127264560042395222858709133963868597045771491267196459469571365320754967491776418516663202886053771932718834914525666806205952928845582124057529340068518356981954507153675076408185143584688594714319741831555906401409728541854240074196094732828145239208621953735662048439363498116078352422898769257528875854199992973726309792200677515540128487075770192554563449781490376847417366451618091599242775260655922083925736832644514729494041573672824242021712894940608612967662294462872338512091946651044924573587004001025618490201697019518614547816755235100641164573673621627420370763381906182103180405015751937601608179906263715287293233590346444322165983859447336698922354014916253447281094292184606095244406259320895811305887404929715909261363240737994770516343728810659609299869832900158225895629164828306675381744849818737830861899631575889212754504102324416372098534408109261469083772029915126795678557813452313304083043963203037428358225843124112960991020413112720145050025270559874302759092815867597846741228209877628740307626964154944014470542310883966342937491911610014109398395502714718919763685798842525690136921341223469497645985588611233853592431903486570963374613773185289630400266623399371272810471213166729305927913563244755706777075653040679606923897741418193873909021349053659046457878421829576159750454003676152747930343923535074086675603628904116601053798901635803163060235683696105309572948581487233870590634533152460361555480900140325916486902003210932215639101689282674105827251938561269576645544764202832283483164454815469782516306734517304744974490880335695068475161900049316876831024526977834053939417079244180668791284692856166988201586804227799706174820504061582803032630578159094638903000011187803565747769208481013874985353310324124660977557768920348443114663134569641717022347407511556941607523115727465216866325857990948736399595511528775134541053650485063412187454631671425860051132208938896330449786540307427638191965155469376769191350804159783841352681657329041372697314335509262002978985114866219450360238691318101460036910769198283550237326498721765599848399104550281665419577015077956322344712260175429500810520625828786735950185476144718006014184646543726231890717608902902341243049298847171302740150967903283508746727677057637144010429094239973841530878689530940573428060157355985105803984255032980125610603697875820146717054534294087122381527925240189100031598280976960416860491201808883676629695212067961415988901167247588618117852640218021786078387003644946496012031287531365956505960889490980407885398610948788563987689394709077051290569967399829921215740236299227684586563811551196268517789390388570857055702970274430281624828624402048212210538511457462948663495787928106042209793769106706617634118717236671696390974646285110603429347783558353430716860326746717084438062750168275439076232145684889248317871816535155870076705881482373509933252718701927042153533266505893434607182761339082085388815255501342871824296008554798916850791620530840051655410656751380623157488952413850935223471401363924995388275521164362317561154380409401711504839369868602227730985537727300297325356186980166146821303430802322531408611689764958250942430176252095892594465142130440098265677105501417977614198825882652300103643378116876390529372499159457739745850443718717880962602160551216302850188713975396568973011136145972944462677178276726241097158289606531679730189589689323252573745430660095322998309994108160037962734870879995717745537048807793442107055117550353108319050020885551267973310632212776461834993906417273943833314549407271629387022162315668572615866190340906061193826240636711563548293950304122484199258783583130860057461914144747418662940409455174345102794109787301266086318084050989671544291945187908496934485689743496026096070075646571517332742535747788421732331959389780571062334930401915707177375264770020986431189879811701548908866048995297211150643444953565004867278920568987011809157265122753678450841328937513569563457446147096503502000045732193995722389177655985488909321144289842405989805602709521678294475931108656155889548208173234395380297070001612249299484328734247770737714103969804757486891058080877661352541000516145890747700849077451103370176857967944451975965417155279506119159275883105590115414929513628451688470743201865503028708112395994995096915122790633677258480778673351861597303200515751306586283671263500520400047897696768980482277858556541616939320402719118362140869328063690622843996997856131714400393069317244771170270586484869582589202840433235531593860856320628650056676185779493223446016982939125287994303225398799620566690579941729923134803621926803210974887166531872610306829499315485658532738007628732552365877626612606883648009380343903680947383210866667347027828013827857102710168370191773827764973881357659202635715245066158491833126388913414627866292976682081444634910069304103801384198428064561578300388816124596520159800261925577018122700768083712912744166453117243938641940618788600427510546544221927803544257022122099939172383188665647942105140532891631926979853541570538213406684274958061268863781231980145127115385643839146905394204834542952428974451893301071706704951538594768296315080766761186079968946306110444374028580152401107747380178943112699011064837681248268454280581279092017853351555018282106964242010837490598221434244244040895137104819366360799223091268860858157194457166930229183513700232892489292644539196488799771283035573035088212649956833010933950350981476413400041194041964779703097160758879635016215997982403576619150129738919546779959554530022787691192831765537620394711315398892617079644236411851646899941951163465389017491698778398624219040390907525068276883402263506106357403724990799217348796648277673926852154141952785468669548346457882573006936676538218018807564902639876905373982570394466713377426228961057947973242456905665697617766564172218078807753558201729058902404026216684542003538133545815047897305714487462170527139031471715271138779844135560856880172355577888293380211044094668146137247364174895675221330150572207260152264824381765816118465667809350890623269250230285672331068490966599384910664698452696685000861262795536350671521730607082910500861395880811800970351400628015930413835552002817727258800495162134341672953080489408338721486880198478441680908302449196136992359772330038895947135026190145333866694396711959706971099566677659096497408805868960886270595160380294321088422308511882786441635761416026890511454966036847083016623162540986407392937594736965073491629181784198340489168448073172461510460832108258079665459665045492822660615119070756577283796310100560261527488914284028289593000219913790969135418558829711992780722087129362620923865202258377917132524689771382807328056401175630383306868503280707355853460814393705374542752547816108241090173089484571872921912328900086895482378024065431861000529618649940467187829624225725699106685973380514509762607303404926150812263791152147063042922558477582948896192937341664100053746221828005517338597748228275855226055750405376695945545221640565349342413398543825474029372774274954489315827870274021627121809045203032869155460019757631594403551283931137996852906025623522817877481985144510659840423332833395485304356775793342484060489866483658473930953101584143996802874428646006933100883524834887243420142153295625759402523438152652329486878666567519453404875156479759341720891788108379070614868232366827005580283360294518509297525059370992271361793938183556195275524289219428612045222834468887239259302504782224065240538621857133274823070517236238005885861989574238705260944942007358874070857456275350795814196819930254388355881671620361075164747836700975122714552332080366478098291556561944400895256783524083270543638224524177862212129680590029062268489890295057912828816872290150677709476170183185385187306542238915495248849790834543755009600028729052079842993893428872896490846248419594419212913463818314067465331011194345347580765403015723871085212031728183720265535719702508363517770366900057114976672851820494993553829162715672189960934454783632671796477223871005134500486470481785452858891008034099106941048631995071562990414725641644942887104708540752573100306497339989308825854898137578168364480566724568653939571303650978296274283727179363152131524078837885397824147613573281372258960054395142004277855371092010965393323018237409068267398250556296388702883711173860196460843521843557813070872751374841223815433624319664201025331659389921843031265650264552619952990873123902049677329449514315929053816685222637050072381794986199996928512335933202973166547132527865433389500622783506336765128405176342838785136760720092294162192638302745884271527704686739508138010045258790872750148173934084322125938859010529755557157941085946751321754803496103524512469036443998964333343056855030409729355337083947942048831645371842376113813940372436775155049979718886108765743371854426688970945912085388989627166147175125391101416912484815591279817875247661252186396806331577231198817146949561892139133208951901628125248464695685966532501693177167408029676338116474573924743750595447319942050365885998609942651877624365349467777961109842589338543060551112239024650978519773373268733190074805541509576155553607713049397193115966182412818247090349530082887429231554259019286443096443000573223837000577118353225379796312934382511173168975703772352461287453097534983467168386648869757284111237931684898050203533940227056366059400711671477574997852462970917190298316415596076455923077354119455823230507372466444475884064114085311271438542645824590196627241570713652405857041317638585378504399092318478454258301731127558063506814499661979737598084277550651925068447298250644667887050524256224787871937454238592041585160778945377924739938035689186585392425832729341338832578996519736591387111451864530121575002645403067177860730723383682550027500781921669619980779517650265381276097455807076517468442764692023273597134865051917524449209935164882081435732179857955639564898127165317135312705942152226928659200970252551314642920713340535171428878351554209033053359628456977225399411421543922494174832817851983266016372648072607027235394093559104208893164536652365091581309809245918103568500167993686935737654326610876950279796041449300122106781441043493372598911569889107443531363219638054545874774451269792984816046409643787500947605433600520760313422515262619211524310553145937684108790301915557726928276779283003623348016516683549049190723615071528877465845304322898809502641720045282267975082885771345933813569533225824119167522820749326326377352200266142565419764965381675227239018173928210313335598230681818235232699448076183111612385372083468995237470730365492848090849332372427480359363001240094128849830552855857389490294617815646227253715376052375101166196584859831353803460295816368131298325271710368520680747249012825748509795213164982725612419181356540656000457227443782351873834405177470933682716327383160987754052873842834745789345403994864223714636949052223567919356152263131819692097356295215216154273144335193157552694377325673829163765785871366896715198169793294786241701188506385617109080223627353389073741917513115983742387619803420641780515464205098769315007574755856405645432310828735084496117103616868657541124791570374530515688812139377149515962155092891347737808188062057315314286287296260872403933215328754035283798055217747010462785293275272142923526957647233520088137962474507376218233352907678674835138971779068114760973965737450072725553601469193712442374741104479067519365378809256578685241556650261652628748169758307066455479802129103357365068784292226896141857788085855411097569561182067573893695071257695146881715292909731890455401426975650326663246406568913898137615464369485802047339458863506312040723298468742616513182184538116646886382331681961839167193702116925767472243117597069236562580547456611777940024669838288452202502431395026010795425268636419029965085703719529825259955470710090869643907044654104875760434160706179017846641945113053945479852179536961550900923333008245434616084486079144986367162294234023475430869727909196677361878228607224909726958325608237513140820099257306157254856298364673543433461309108402362852319955095822002269509213244058911117983544033193789095145578126737071202627646788863840307209717814397847335741668694001431229587566372096134806721676385223741859488157281627278207992798130461304700573458555886552452646455929064727948972574809211065772906607579690738942047585420658688753557529921773230658234413560141937707268910726067187314373508553897955936535068296731727418840652128520783307254509011276776815259967113223460398145500347028688426400090721936621987084524332636638534565583064752104776631975615628491444101387822951641576151121120001839905601367083021757781569869507204587207017131229678808431255571732019316752795466652549286228155518304228380632946884317664606725164563553092164527221005489596439860848181579666942258644209213324869033456162419511509845980039177647387154394191283333939878263240790189869412930883413771998241804971390609326561745610736331703149293679873561534876275069927511225365852010531317740310310199026733225178313837016124897809790959419223991609889654471647921797953808311492502080655231658302055932156738307675889561460893825948899644868587094028030987379297185322098618533563303967016429881734521938303644092366829945848253311749169378564106491994733517802409362241724877705336315326048292224514854209914766635377086749367344416407605401239401631356464161681598452550531936655018883952649415120816806509987378930939569396082727065177921881489739576058901496664638474997801481925354450929968278255255167009884727993390068396365571528515732964623444144777865039131679352951166645102650244857780927065268499192340775621207732776816281053800277285963796541107626637102282468980124760713790646673796897644237094085961769539687980503787668608414626426200261692049355548286915015466130980124553411615278613670572422780082304974258961996164282101594825838362104998240673801705004574219973442992787954413750566339888309016501381413559770177170812417627069959856614789213313900311220944542402724201815623706086462051755569041245253079755095261760394508517181013688195723247494015255418293837334896768878833408526424133536621729887913851334776630388430326176480659232396142139831584664507609365784822219181453411764925663420678203056751099650195800051070262061345983781601078581972153373790238912137571443099436485769732056300489429929875797995087955556209751324390048220866008285993706457866957637487117950149379666618327281898417088866481588605916093968720137295036096042302518226769407268875545405912668871425945170146986787196103744880110993734826453004525675522511708588390511221721851691931471377405935914805471390781169549060347769874443087140738626939727790722602510271278849274268407415539741811949652796678706284815342177923749686907802048229936556526816193250251567857911666035258780310053716645863538463548592120236348142802026781978782402058917419933436964050916183305001471574019451366673540919666810603144294388348202097013811119940648891425225028417403687067360462218290868969916051425943210244922450738160174568461466445503073476169145045082956346598501474680463974324980672404897487095319410687513216070654547805730748382386847587801425071384250981937522041621528846658297613921356320064010527913348225365845750998863643176874278248653515721843115439738889531971396703985941813311139328457138546064738101284107167943954570757846615905580682791302675806938478998300932485342167586949974253275601246068628676650285102495636085393791104015631315999261654736099994126968062587466677123590263675237158564167507797023242240649662203434355991064637586785385684627128863442708217514573397571592355964602945094391159865650855776333666634944571337798011664462042987062892403699577586877004010119335729767644798369553682981080280286269404636739016826719662681381573730398649124353388812668603953349734511472281537107050595897829462052193146361141350096010698231071299536751689265846924768756686378256836329568148260147339236677038723550971269681247480283290459298769739504668766017397228781907303512499846503267289880858839511619409674628144111640123500241436361845812126696664140775430174835435269012982895728987227945937187167717433069339222895576264811265588961015044668148976678529916769947226937625722886774149330246648410464074545789509667851119716383733340631075599133833482478491009302744235811575902013262287462125891668862854561125702120390604206806190521416235891756130683134429150199035938461892746896299138703271922397763312545154154105968971022894530511013213721147748646078891261263861296982726010446559501286364880509019789606448186482319491623551089933184780891730127843576751125766770039876251191409954393815386118592491132547240220414287064047800804488850423841198615243626791063140866767372421383655936779785378463211101390822623791676992058460637353475353325656153345531044349618436223071346056360248638864568611300087255360573207662039496807272823111327617432743821972770228910488937944907413068401970119835160714437471000442274189042608461784012424173448557682184501167994003656797177178062666554334140818385783421881217467108802862639439306053199670909013508757656451704387816912043903760589849059856525567854581982009055965192585721236710150454757441907979290271463662874144839138025187923222590505570197389282547968221960598695472205444452870162652713892562924736095407622369323289080865017681353109418824919955231544239301166019186173245459268838597824627836677452655321418341496734911667184029178631205526233006911401217455717540817148574129822462585546806607315948022742174048656615208954470081895932258790061515613418579224539487037646708647803733558610967057339662335298957991608023563029151557447464631619913350521141590079790596779241824277595054803097598632270786214277559053091769671746983636345688625632130966875459457028458327950266900025679188313252594319508386966419685024865989432486577942039075631196592069437314400936895755588485131471186363439381138387352741516908866398596167739186254039506142491269281221159128833554355305698343443807916622047469957080858936279792751808191873342713241379801144912740408317711444111081173890719868844062430619068794458749115288559611318920531737919084953464056387973579707492063384517986713119750188193450016830385821701100215718774168069555719859813067448964859144188640114126535285939513803595054727453671559990037164829274338423581639341725422354046847046614878531164632755069201821948645260529812820857792865433837630558392492365480125309505954932973885703869335483806729387478591295368677203819137747986431720269334625041598744286595929676942369752490369317161801748841269490028156933035338611471696751243842113133559058548925108259107677800896221555363497549908586134601618426613318062747946144435590132421131817921447610250010552596818991618590971052117645423199966688253870063677826219347621125854417628173341867449356315709319453005020670995681567305186535390709403123519260430555418195317730242740395777294463589575568478368651947948505765147027638345932806460694237954296357995432196743263315848746423442692671132079053125001622628362249492469147615318425017174310321925014961296382793112600803197333099615834719287117457759914059258361545798196571641635830564386320721483638207982286235340987753633969979937994432477392433734467903368877632854250647952303164062276203351626671371795999177525083299101884819931305862993440416784285416126295202361875101790171332176521405072441597154760417794437277196620301842742856169475771600922438723897300874796103780032150444809884366959485830470204980379432406261654865915496991489570865107562178109035269658426854378540561254217871104152636630349203537951117093844532366831881574298485468040862361295929523732380504563818754062515462384505712612057932070298615994649049729466913632813319107174699608998480007714765780766275574281451718197638925216808525540264176762989294049032341595443965457571486644206101528106257646272938499932033650466306758916117968768670181540521317578697285882893908169793765620345565705146102253032556375495939752810820938246956847613825274932974739499481903927267208796898072769676748533537535887296148257427049496675049803598773304944756800734036525111779945297231624953095161381546151953635136442666079928855185313569561316094455302317066046190736064288635841410330634369154160026120875203046226902410455590514567690062882364185297737088841228017813836028465456992518346644529659470703990685523772187948040854021426481813935738601773456105314180103749089406721097980718900754537356025289692429868433107241137892905903591629157943550969103863843870796573212352146486276686618147846300271242315642735606999056594955935430185619256093495898180045227030987524343216368429740507891328491042835289445239548053767295852917274492511505538653144779738603683891267215123639508849789879300960669427991081599392900050211365430354560930831677924244012840426786692470285948642727120816042184737880748698665501491274935674883888091804963996640568806644706136526529793921584807659519672135698811025917499475786758528700490950669069878263661361913268367563882375247024513071153978345574870340877514682999807289841966159768790162237232633680485597318359230113956343349852959661657677611522587897374022156416048833701431947415613597686731646679084311502572734626960362801381379187061599295495830936668581175243630887992089443785244369273729342496326673311904425301381572158459448374474891258298649499239770601389695331350066294707316648218327661374337806180479522769180629445826038706489336288437058021864068982908514373471618585036012159777762764564362813759783890937384958983607703442768419091882371030524704508478958396935346991430342804140417106549255363908968416779022728363196424100123445959654787675881346759787285555160809338253527656229149099207433174923803668291765195955217790075464243559208038787092473067271139685125863437836171714485976379231208584577924215665867129612565737777495303338915885828500896595863753698280702000232044731898803452770050742125031227597410567652534116407241631295716913770861943359174382571488536135235603379625837874223723915228508684376455162652763269188411663836033010932528670224795864285679116961985438260377459991100778143123071527623806448526097121833909928906075556885489229160830596910231303233483011333194432213327987108542346667694200331340040137283588033399963989962215380109811908788737774461171906533656094316019291884778948234956821155469683380399776339064217478654455844380034852824181678843907245868908707836815242426595343749288750345741300946790588375150890827394525792930745973919663452467544955415397219875849870062259800889883604185323201643182476705266465282013020380000040048852459370857723076761479922143216928227240815727560082852978832234289227929698544072114923601569131810825658506556136216406301810759009758440108569005291592933083947295490119160719330803192928442718214072624518151806474479976406275206829764171106806141668553863620964461636507897182212481093878783646937011969431178308019680712633949815607713585825187451798160301749377309359003805293771236907301040893679226889518441485135116890312070922585883871793157877156102497118218637315247072983303082793391904252428639090653290261838821331702831411134474667698579533343249700388826809024985460318801856612684084722195749263636823732451160106857702236677660771269956456737432433060731303125331565332097513886473787773472544905775768957819727713184992722833382068211335583778423798047283921696864659509823028136861929339667224878625920152662813706651759624701042631373163174171235530643066410940064914989004033446488714679837428442669382643713437958850074396447013758957996369293543045153877536353125462233981295773808449915846901094857384183835154332482369153824210858696248952295054739384318257442915142007753777609158340075167115509452677331304283234093599855512210642787131406137528339935119423813550156011720801804142936046139649442757911385956037038345307140728814167441306116418940683494548473793686513953625082357029248046710678442826075641865666982425077516611444612684819285515661828744516803813690474901243540076957953718110339136506362455021061251061794020604526147179124048394984635341607897444836474722121404680483756325356745737750121408767720734263144519041357816412927284585948940513698735775000894539099919971487574611353242903549308697123271183834896145336302487121395655295570461244786441406272246474784928410697642697231081628543560043796614301161166546927914683325101849376633868959117264766486295514199377674097038276138455225381967132347536556134909944502678371514804914851693820175415487033969340884021242735760939628766162165233702271052047507251186702429075331387246510642367982719135261403558006241461993412341391580630852085234678754613536461614091369804709115979083153907261366584196842332468202347079315559865509637491377203480603388577676604388748418409226151867150268703854285591081999166868751166185530594164178835229415739817306685419921507045840412342136546785647477346460683128061787193795952216859222528848054754977034806139015499708302338693357496370907915195828612009021913619906038219224417590089595915599005574598203817565943944321450466566634436881925887295379410831814264450341464708561948973015310516448757610663218914527190751890890589242224474539986830333090806214007816188595878966170751312806567220276082800299558177718297416759596095948367800680259308389651738094016106465331000605937248405868035777253014598640294485214813849045942837274159069858563096412822362567988671450204037109081507159152857251621159244478494205833188366786254393519411225744983839319958773254952403871056294036751596612797594701596030237371029805812369084632013220088404723447876467268218573335391556249342253256690117505386868851070197445384973019562950499255134000280821552354584697989151915595292573982022999810586335995401476845412803809177676897136273886844237138385913988042999879768835458318075628174495720151405563849859700673503524741006846695856433792597961080026995835262617444430394069430483384401028860182128770487225114262748902511762823931910339794626833007135822001203996757236919028483759404737730618624048953817768861739590747883848639021597539512949999176560905999143508625400680404441838072031024428361624178411882525370591789430114992873746037206949287379188499445078738104362964715747678277631275454170932269374338448368566133856121956434173164144710283838188034901928115418284465032906731143100290438507598765013385023966367600109984489058061676453773106071883426143702544903489793859873213208345615831064431831361423041047454298369933775732390409835487046637059159695820352392586759892433156397821183189113465800869711658561678433295357418067374023434735397417309428797251498924722300239687466618591793371866217043806984744468194816481976569795183717323209794855715087494675521194678118160875323889168620962066101261271177752380773739406172864820133005376255584517671011842385894492435220598477997406478901808339307837370424304564987478299073843282607734408836988414502190930985173268687312514245215887989373909025506244120623919989861148981866524496688462736907503536058057038557690143574619826659500103600784942747631830709576001125849654210572016424886251951738021123265782110571313518469742698922576947939513508874624053586227597387936479862225031007713034994605816989961308513067511785889108001378409973462638929818594500265025364825762752827994259537473745036498871833912632524756192042221835578125003934927205968055232449098295841514800668774276741307967327699766925795774895602182533792165535718966214991095726879144421440541940795011756350583392227780443014604196163516902858491049488349935977976522910133375663559424128231498626186311240472933917064651378869470822283451490719361613139403356149147923675471260450616504888443992505591530032980576711709677600467876306546390350823901050264730278760112532006950566203352233657883447396027878769405922862329089526528820250590374749025898512868111940512260507587281899945092528767072307730017402676712389081105646014188270633370563222398911437058775675608402724163670825136329033159472063723773004360753237065979565770561832116128928849135179298251914644882971912458711720332074041050808334416825787508008468712232158665246925704332855484318418138420681380305997705540847576713671305559437861979427085079597489341402772270041253320974570119868752781630611618875683796309520581199616013448762374446913347947711597313431731616160285213193117047559135664048912426834717754614041771704319346128743406339277759046711093870650342601496497646122948362224024120643143063612988731699867650586139926527747297415227036971985358850466654555515190720606270369405972733456476026945261806794767918978782077884657069148947724817909728562881090216251051892972121081629634440852654063974708599708739705113527133584422039204533100651454155210406838136360242472360949095315654878033345452519442664165199567722711852601152972417249991574811522660939022836143865239475028896111032693752210237152398518722573673807950550837627348053801550318494400392741047492866318837752095920238149842033104858454857985853901868436373709253902604973093063804291783986279282651516946765919168279638859051225642930533618592656908537367017147633565432351350231598431594845452733947743810387616284363936162094132983289445188111358184717394347640539034488427952234806805748049014258624793435680908738784798924944433755223294257918925405291418562773121326531413261980804262997965164351374775901543754800226359222415936436655722157302174264550095233014149878160903441807334320022890326300353427502875579475924345898087203398924698513302596037237137467179562247342462440636234526074804170754374275381928280494837933586050950770928460317722261930558932420274828518538170804259727208894129863961815734158745101997998992205762693625500200266231736525310541311304133952185839743264655367671622601079673485396324284460150966591388990405094841404806462713392286410528547639646107259561291501236915856367492953080756853775601094511377132366995405572762687197101981581564978437290752187111115677377900778976698423841482491509964525182016049012265813999120130735623252662700272739456417212269913856001528687187393182639445991849316640371760304583679496102189470589156581426097564222902374384132415118706080951522216049756104846821570187705785698898766034445198218664814979197512369369716450648349068721549117072096547795091881551361784371482839484637446261506400763561084521073210836677398080617943606053123739847070357639541111752021997132630555764777690718397284524234657947865087489372150837476910456722585317085203805736696260585265060400780802011926694370140805890501342957400700371971147674509146356969044143602457661346115480900054512777309885276701701203376545720809006064886518125420587792983610635828090343727302131479224152953327675731777635361635916885725422430515901081937309716274823924205049260515818896950704378355859485706114728543855660469368434199567105040958922526200334233126487100340779008198914701597123828406641272141337601616976666470452159066619961366926931471289988155453126733266018260163073929224289114500359528389717239296159372064868424728743809836925574235611664907178575555099515568837157015328110494137425351098001426574580974389471459912305355601127499961148322537304984409756549310406302175394480945986424290109212081584265266102209126365732483817573127583874395461141952738420381974109750320622740948346595941807870808312601243985111671015748082368402047414697714529754280283404086195383149559098975073009233335219097897321763798852053186126357003795164280346024902500500133959109700648366131643126416700978537435320426304515225774881311228161162569378336691085086611853574494255368878634392950223323862419142919121617244712328776229103154892297303726448182336959077486130451414971440775703532611795805189411142903053656243988332298370686396795857989375935608820026768036697595877614379053740882751299610141968857485037927762807368263478179744972693576532644690130689267087884662147198945599376837515372149844301583141937970804384054315016660089192745643568540500850979849101972492405791642519990623195643681587590536371702841083590346508042293172616125516110005974526480860703321243751063843777752531916008427425591490991732288681900824648203535841639045969296764266625182855843953396967426182894532716319768650026391793975382470138326948431817912724228518974237232654316834990879827357318036735827804622299028114260786318157877379000135491419360828709221495614301875898602744666294585036644676066477014199030264756110101449244419250220453804295274161759351196581871647263327846869525159766157522999500836447717526158314742958164657732978296853975388082983526102736187477496126998951242387656418144470473595322364295400950405000879831841730129964545411967378495327863533532513920864439066553026923208089253008486358124683196393354095466882974241894112875652275802061988406188052516084356335549050255678541214346489835339412326461988764949897896707198825282874389582782496456666119693723969494888036114760591644920211083123044163119266386635063804412258132107457207893216477075336427968434250158815350206892023799043910407784767250075309727327882869995450453011884756363026289038854774239156037434468036113018816744185578727625481601552153284915125662604504463724084865804478389704819710537629222921007889105807799681653463901546624900752447923698243184776098460999061258764103254539392422723945841290287221934654620407370462968280451934764164281991514805904689438555609157960109405316477671524498221529814456756704889630495366752047386911320044212564579924617729947556076248058096622138716615054033251419457439041351497831041079153764583247794198569877241867498764951082830686168598091745610158040824093559485397344063562367574901551909846985129900146689888659770734110758943895775278931638622842249192638737894372393048413804234915563700054516238621057273450434338975585478412593887962904976204132928293745435566124310396886052414415828500315146205543943541015407575539468639849378638871532935567236219041707272125640954601977236579329599516792516368796785115856081448284103046922759716123036867526799249801488839456174856665075332456191280124680635651807793249898769712867094709890244652017893435948457652689809327472080662520343296329902076763059537775886623705765042534877867618947631077493379526598680733832061352034298772628189003837979975985317265838288828795190918472158535104594104453022106200769665288998290452089997064102651766130939346308766837156189225733145919015789373859638152934938667651787542435618844130118380425735497021860846914245977338078486388865337988905544916729925432952409719586848497931792270802887987557671197934795193216573608320434989535801745096286280139644451500493942804460118196931816697248247015157621075583910746981555477525412956362482247713221454375262270100040907821214818926412882884846409927879104412591143591123887326532389464897874941250772805141884245342161532360782939507506340953996256861256668596639894498314206047132076117914679519561089383118826138220289315582263659422226970838131829569286050149966844374267478467372235967582402321647854812269954321657591530121036522116914868125194018240353210219570447287698044278468461054147091626396111290216711671542302923692378419257001455468485009348247879695937847671984198054186275585563549490223388389113278654567255529253225539821066681979582775782858845426192001182700637315075927165578919720236753780881269079409229826581364717316233248776422152892359935045734128578168873840612121747800420714056022130161268503285994513714118312903306803594712682232164057639845128312164744013805271255469894915525835387760786504422445136413348341462717185610946642014626894761128257003793177860163348329571845577856480418133348266626361456894231558761476622283894805822448592014082726596661212899709606175649772869629882108651033467542179988085995958890101642197656751701418029631270729014865585705348133999002880554730632841327463235712925345583576527662395797502544804871610541883038680420179719096272661098375008627466355067264995889693796291699687936098134360012843862347059896731655848419279427554168767130367774791269933672952335125081687963248884271398785025716856713876171910358872452014434771326659445402963603803451588268730925571454569256382700703789165022402689380134408392605380239555216586966566286165209175530401104121513853403646363182786362628476621586850842028488119414535192545504309774040377947380254274961687691564508839413536282953638366929244269181713365300108628432875176820976864172686227136538194058278502752881516020030849830011832875248129234141642193775286215133114202023362089308755812784321964327373247913826464086334386402182347619501047634837954427878741805098371603556412775519953187848960036600271440384803596066793356955555888283805217618622763036265456908331997787631468526978819885555544494827955599100888838973605119881797879772216095820232308162567976855110899633207459661492391283645637378461462153241504870741299795006699914505208325395505121940278111664137569743126908989494815626628729936627054266613251587434554397360966608834250207264824810350193684601843626400336967427538819820375224671518792898609113902505538279249081259074881767413799583409367884646781043470404836573771162382862566473602073631001395005963528677823326594101944443468632514580143639098403287363251027796628971370997628022839098917111298616745289786461126638918663775492532274493925507353879891832294442838271569863873573712285944953752463466896312172844121978392376555070913377332646683672042867232810287929583997027940676761004184208925177950567607753081130385273139564939932330429117161082225351276937168363384378264437118720417564493960541035003657584520143895906251940600624189244110411784675033322808604175854671626068825279413250309653337028444609163207632942682494902048092378683397697484464620580876413945832787727235543954806826889107695517439045427661670202957804470784158947765014352312051409334837667126199408419539633146350112454127858701238952296113565647851000719173879343087880314880948001325590301301425966106583345008825488552573232369211919556308929054497707996658811438824087448849289344862564383224284824963737321030378464476235903085386772649998533145374933594749434404044106246757401132781697941393727442567387195443512861786592290175083896931932617860082604025504911648657920371606436165658566083402560051075109303374551770658831379796707201125166283229739917643965834625950583984292271860994801004216372840023101886137732732977514107693342609057227997986197954859598368583279695848132671688739105578579905996920627882214554829352317956577199597107948072216634481339543304280551808858088581335423037690464015964708094090074372874428271241833348113905498513451474697895234060526889558923752441489893337736116274255613440619553063100162717777233493399369105938984677243793162081459223293231027581044418773178114699276001603099195006846091227164916279415224617611984984926520413234523312345459899406449592861974098499833207117741657305980965149534096671943859193377376922001995562402204256618088229442300404376215543773822314222160455158611126344760442861338192270141867559882660770605760831891653421326202846028348286199959000688048409977290650010156781660149168823511890682889180089069774056254917570807590623667297659270391536649858046930426324237150130419329512367348515078052149628520901493999445547403998306779460923569286631512680301054663819606336680813527767589953753596705732571260329481937910106873477212574685732699904325696450782285549570158171576252673921297173493071535933931865701060212018980495881645552878631844756097274389259089562611140070431010191366127093003033982449771751230819530182241803933927475801629789129276444625582262101520640107695663117206954173952513434414400284358112824742912792243169690067778821891830059817605252142074650930777112804732969322962662644857044849402753087911915274152135299904580634735257518139936248699555767502875270120460024044046564664161179814036497456529289264466538824837797629180937431987227655465195337105595413157654812472304258296220650400998517244555151353118939996954658158987001671249519106260573629035359529926027217887296673607331767526408044160214004546190889619893326437347061873056882870281603237369081674281104007414964514673581253862045316943658615190831732084417238710207259355910538558092809662303993046396168138566267445439029350247086034640627702300766508639051468948925769144638239369898469533312325477919996692245492133727550368768570995837072183705714745625916546683054975349259694307329322060154642162082130897725710300232617558563889802384165477819252727366303456805762927102189038566352818094321862032564622336032915893437779926927827180709791577603161856508793625929036248394109413370574343564377923680117068553873251816146684913029608005959680672680975814170039495246544296967249716115199769474627389708005755489164741736959606254683824937940893796782148102952192731618523243234657065484288029472678265138735470578789823769481955969989373719087012145011375571332199428025717166251208748603073902249798681877934535537996302049187675195491338406943898169375338765347087310613467748387888466363549843307320805609314895761002957458460926436667196083302799424299219964615267428489828362904486350767317931260011195123423333036940108132495298046154792013903955227512681579368779692644818673849890606143768849675992338063803333324872801570420876214646656463999896239219437120460261753041884895858494407040906716035679548926067676768616006245901082718042731765974603134030204749146975904902208111866569719456456200119980492691061783531540514039951185971510908930860168522316958591186095181616519875780256234054636643347927603206656819445206165371288493708925205663935146937709605639103368713990586531446819939568050486822890682120924501155744468117531619038958162073013413787011736963524535122700128389356635051074398517505043196764413542665669634668413859799207243581738552046115354480394062299254305892246838811528618793094620673243826209233532795448659116012141153180846066254737350697870698979322967208711829172585425555098203135422208291652291054941572927780374811071875861868581594132337353817249249379815241797927780837942432748116219564726264450563011875046394290754063179068109930269262492822567162810873075244211593348912323654837940228462200789133861871457029056005391116731285860721931135635068146767622391443614913697434939747772991830891200888696004496123505574456930570761453342111704762634643643455042954842213338684211337803923691184248982529455028424037922417402874657542599706737793620866183968073456560709526946783089968604596751289570747546655950713713093565195307143466513985499565420019068245424325059083663422105419924743992886629447501896173767922859798777801506004229334350646690340438101098344856011998048418769087091074327704269850001104241295579962657533507167619747677812960032648587371185083336617983890259792167818902776986690236503678721387824417684706718382532647639077043599237759308810673684101974855719075282147480270930009972157351898326243776970796322905691025811583095425810202917395910230054301747966982300683887578978415833807866604587387765546908253294759919398069769905328607013405498572477153211511984481355860954979697935164899345693998505904030107089458686752006406784656330004609539043811405527392169376661977460391607793264701464051541005496038770190272481425184849784088425323088526755945154121130729566820687346158726011986912219863801609053126211838195398928883091463716552318166870600396383483658646283692926450674271240316571778709486299803341777182519355437700510623581783528597674015446736941641791693414905398359623915496020081551893875278324487977464606112596417906114109735961187431956385112087674844640071751345356687016634188708929073063574145981681411647138093888207631373922237135223692600519324046185109630401521201363133218185968826815976963957669358277187848852764402149968036073908489706070128583129198929956197215708143598809938741452578279092517498820496310751984227142249562166268245923040191692242975843903055909874281869940426181910034675300840643749582443730802507157199009325960122120437304569255295959565165570054150806426398718581287285870178080833326187435518005560276742353264106531705749430122587968870225647355660020840228611050865631411054458968864825342464667234895146843249765224372454988982537883931587493593236587507724655379853770654542505051777116262741247707810272763384508075887377281921871363858754530744322827315104925298225616548530229551138780854972988878864519013309351126254338106872029880556035979502157575155319421917194588765682816807691822072568857212162284733506441818174593476100438260608529055003482416056211394580424270097978150213017016737947836534433461372666547577657046995016880971824627010726071169628860979707456054471387076619558685832626414464589692337821905786783146097920424783157565871686281917926514519467527159650142670179568680455834474233776448793091216868305178318377166469536439954230897724992679586510531585439711064430525296545367414905179674709983121492681240479096736022481672952845213351957205237299606871187335372043250907476404178838750149145238389269860162315939787482146574679281935400218339048304196101146647049974517975682805189213733387289925114356027604875703091979132340741485958213712100666209482473035288627704862738734400180991981310250418598806082299030430220509044757467874304325753314498661445387591677633611058546993702594006818814076521214822080368140604797129519767332676746306078564016152066795444195351400823787666278675274410542143717044565721876806448562793564789487273908638522805917409168847501145148744756540649402498697601140285521399195538832806247894850370969810281294516028139575758806561734110697055029437030042437719530378535312361406472526146081572916665050355961529279486702225495956658955506880811398298269873843300238912052962756077252881199099063273418966863721476539942601381054170229888038034672679564555316959542300759006312879692548657914752577746974119982658814786340499633670918424892338286596598603622519598250099746115537325985368465853105097774547069991690985444251737294571961203744981799776177680962396120757457504838634832385837633574865714473875593110064319892450568436938054024747889100684387025237432446598411084610683707116863894693603020183469640943526973734409735390488331464394505745346939537914460863159582934460374917635381921854013889414423003940567559166674996836001078378678023864287866947132647860405937710631012463593296889348471729081763864920134968703354752740060018131953526390625924466310327742546607282780174732037970709855536483537656483661644002243587713892099845971895828603634259093520504007979741944711275599417609618223749855603911134293633304514159362710060221484791211259781610808667379898067340395419831155989371440421474231779893548285417766710745102728280197923757818701569585177845295334975397083428914126852436264855197273161692784961067370144764985933581219398162064866947897168221277698205341633860379058311872380248754679112779002261659169925362402860993963764308935376833280823757244344861015718659894069722051326366966160001484543270337863602360639492834969345080294744088073273998014629510863670448416782886160585174709529381840356042020627634487477892911217863140046652232837337852971698196061265026405401391626718516826990652016580582725723265899702398091307821845330782721327958088117447562435795363707590295416873840746244388519996310825586206329395741042238086180473885748996802713697299244303719018479745102788747071041050558057719820311077752594540880588430652932585020987907798796279991453189283199081697714834253085973666556496825313493822609843512924614276434422265109757978521934449410443714887915814151321345485759923747675720960618855690687889197108392431522876114940006217183607766579709787182941911026630833507333660726601085315529263989928765130604374695922246066924876452635022393132910453341716006836483688485820391002782358345609305304960579374631892542024762487550760651662378778622871599135902890449854193111469049196631309469991012353392782469452176963430062741357164588735256649504422477919566072301487054797336083947821846706793729713578970336229436509957299779101889127954872369050324944141471281309466636121462820623277939977656644451872192852184451716049540552770089195553421337361339837858387359429505052934595921174288564215807556749224206714833017407328585913428862611882547405099903544369731240903065788090438818048112944899029524030805484933761338525382314320917944596823203364089292004268725380978608436860620693859385467375767428109778029460327309688296873168926467879632802597974371461097038660777400813668978386212234735112044345152343158006552039377170967659116610679347864290551532674811051406929048770818831101161129608480339396238417456935530199626152526559488291027747377431884225318357028526624656551440386301065789965188666051035236123993646771363192738212296734585319555306723413774389469354779174304759138947029959700933956579004717081288563758462758299210141471827272342157666288543225074331954361249470551366662584186688157365552359309308717546175951722618780539740077617942862889255891924709620851031686530312405207391840402323308015526141385720658920584325607463378064893947566142804563811103320709516658856310227416625962280302963402242505101891154603035569054827787932565858780067972819040191866916276112712557411375889566917157864563319506714184515951441305173265787130911845637956430321692756259624232512571808958888893371228964902691742224763451411322296221731871129725384523827489512013759450969251852179570037954544998896051360473772794854215627323301447586250737233024038739844108342462679680592696819854550621617416521441171200488277180512022507124070154225696213037429369809175528447465778052410404402634354359122218707734280861735669772128748445877703749035359969474881092760001236375663515423731696669470834415929188813314536832433638974397063061531874830818114122253498504180351656820851376181538467640989363266683469264919686010644144428663413958642805563096260162117203694425362015144876784987672239262325301129652473620798157318690939775415765047688267618319453892841554964237137826774785199063845923313107202503707640366494118599476107582223154671079389567499888530154960718755411302167724729281780012199106410231562654929601522191227333781664617062131654969208654233568383265766967293165843671214584023855255145977451708009231522452154507142555823074328054235717316473245628588135372561944234745191862895086980802667442848836363316891267789453049470521898743274724580746674998654072900313076222725612946583711863164021803145868635363701500056676095991964237898890486823658040645679225966987852740205347607618196450843269084200045558260819157141275727753190843837642984384212996124335335692387596542843191266696543554973830706745825229616108273375674927063423256060313887079313481699593723132440581122364814228642726448582683583933212118299550696244925863235307792661529450985471180309929088278742866068387935084821906121853890264322471442793833688966429186679365294345588288138124630551826169575071021348824571648909634048524746763981127170718313065919584858821963095975860216570609898331588950153155833067506456627163398334717846720683124048684324178775628752348879853496528600556032287382354926696759216489819540462646184924807989794378591959126472616597680815557824008742889611135835245782975676796828954239035126175576469120603719997849145444919951754854185034342766846385768297479273224266926431152858208436224332432218513834858539941818327522456011800340041095994858950409667106889128213641957491686180784922494806173924359025748713943418217941687195875409407421040506461250406283061474530922794868239769013711797262421993765776427972887360157990094654818251979577328252000472791446581905388639924495779831420845833556743954705089207182711352654152484551115840244232882323149905368629864496635642784000512854607188807038428979433040454389390198208723759181953538349877684495374594385946353734656485856642439770746661014123566402823117508838467526166004838611317807313629968247317387781579399691042136861097254922150752588837231938956531225376028305093111919631644449268933186908655994141003989715775404419851496963343780739302219147597733716135735013981186645801553116525118579836786342570584932718753744854133906374224247062090164986485931869332893045630506326352338641777826236873529284051442482658527434935192343910861357312272619140042616215201626083807602397467263280426856683348447463553127660862069137085159812902846794351046081571236299658782618289540596652720904221726887898712779271504428650827430949970070588172915620996218165628028187919920865217811028235003044193066342001130068209707518122828932910372260386876094458098843365137319338625657507574964355335016937395867397340397951025727729841612946284605489617885961773800581009966087806536428002670888805530281669523377312215043928307277279392901653494898590369934074246013634683659772646477228152362266180330985742931207592265435583661206323224066429604363198596011531730907112354539587049866582302756478727759091978497514487607628305702690740228245295548851815745941778658278056429031637458324735150689456994891431019268812971152179091768117786668114068233814256386900478166686993132429409874111177953363551344972109172759446385581838797137011573673812033852524756906398805194451510955476897397741079849580993346508174900413019559753038740895564996248987752103071251996805563904540202245614293929180183285554309917425013026178961190088926828135127480322730175220860283091790333031203174013941967266048822958681787573248528007415404718793239478761483925910924668097011224692462751846715895824865085496582582703532698803806665111788888228045718332377678482637832112989542000017264607320489752235625084690586962312708360078415924189119317171227381850306317521875785725640657746489204814294964599021777577201123335859162515708741276285921936742292210227301182659037612975522318716343007112735610503374064197492280905811445199520062102982808388145746399064831329239935632780251083265237842464301901302624683773148080568243372855336282973852489962858829999327454637501328929982816549861989768153262029729784230731888056704022408715199494275243318109202240061456660048195097675124183841272240458861150804908480328599851979405451878642680406538132557571636087094718314015217283852527921788565164061367610458954302239567911034293475861031194434148588646471261623905856754816868367141450287412793385844226021948267127778230291288350067874664357469470899882943018749255942656825390976835996398931812930178744710658917080210520297203384348501459064925865244125774904917610542714751414593901641662144514761910497003191134597338376494717818976982733505644214822776633115272150046515201123980477637899839146284699412598712844572299232974124802265252581052401745140908194705138306007617633916869259344012899698837785389496613593456835621985767662253372885302321893630471598709452747038153816797799020129849586311844776900023542042335855878864041342191872198097191452343381461248899336095276597107803490735459135766564427470930553393776708097477018778011382309583821136578081468107202627424410886207464712407559332604205041468440372961541019295053021779587965966908502609775234788362836298152063873166082942337710860548652363562065652168173776054141695429137078393385252034075542615752209573382851484050259012538107408775109707656753972310344280749820367320212216247250683199413726649066977348742393607243301149361612713784816005293456977870735308179549123475016985746281137060403583464257325868946398047234150423126154739564917890394988414206488937212096141216572985546365087086818983421438033877863777834548286818646945333234425291641171976823994745877882461194750411582378168141923352962413862877822196541702718057308635826820417724569133603394432210458256749919205032838945304616329163048637087605693619338455737729656444146584671681662272080693583666199915596955302113362928414178150275517599106393572278413305544116136653564234392446923979587716819542610810262342874309906747823335494606423619867417388483649173952028858585338219103412064908372933312069429938437688163583890412907591118963152018725757674150933342701039434057432517503627889321186679466910275603758469676378211447551513249956947311150810484723396783638224043654364236727296955884371378123342583587621485445637014177816378411775812484120733488454220455764316628611145379468236103880447389577195066192210999438425268620908007388688801241055369282676114653863314384389784491965297167254858729782907577127622658113655207933342896741306994276109305316634510986076665978719155566083266603610886610338472198910023515371411691914518925256549866819175116271798693834263427357941238455118034850208403675766819745478427891168146651953758108569025700367956741425242668244547629456548267472743772762257800816409069394997165584096073077956661051277381074147377580359662290746765660649122314927492734142280997761876154863504213543175054967804477727290397157136878815982560840702025556006572792059220402703684697702840876645095912659312971309627793371758820441391869797972679300969300495296953506643508361729565030499407747451083473614236387099512520818216154338463925794352678289586799332579284042417614484779206716126811493317989633869806563578446477438451117317365187321704381583056304422836185799205208683430124333550328623189972122579450902344631692602320783211983969856896535321610888573238288109756807496728534652390738257679239535592107566815348045872370771715401335367384543916241541800667542724429604003572794016622065518638510713254338107472671300423346669288233299554634620470995593879697690246611592122842998121288055465020424294015335943509799703348840740348710118186221533566338600017926641982082009852939238822975426186119510258977274194493909841884722758884461287677235960951403436326461766658195607771663319476848190148312463858742082154856331117675249647275127009609349597832538192308567498982851970949285694295776988025302485999113349090383017857286316152015904666190634635263640620575333578041849900627520029831420578821421654331739974291303803992141762574203390866441923919108665111556258993125697957365406964136934745163934136696491385169877726933349449229231842397508582838096413564054752458486158988557836204786208661174439923212231083720371050107601166584014886766656809354411470868290845481417320295944924406020325138213375961760612465822223725569415450025359262548084994720297890596243758881690673730511401482232770765721230108460652970567642636377592429486498326846541267122154550708946553247590559375357618035868576080905789298118684828688626672569212503466790690820012002203061415965282027943762675929964745283884913519152258683657468936648065255917232627081861432062854192549952432988409771280663856421688310262086479502974713824502192259256489382310211739542039140906171030125154020176176553317209030686791620705808028076118329568090928440028444852029098866791643288671180444130148941978283097497700919582829944534314655137161569131312829866252122957617308802914753183797464379732937225171168548265548463471686652049016449537975401997699453537243986854162019795479852888537473759281097014219666987852938641193752810737265366790421474550438344657179188112748414283115489699870336119628440625130365841097521506003240147302216077508818617575084653816354242972003236334801331412247738529791055297095825514883827175286113583924661437490309754924596523544425212435763783539471914433195711169645156501312094886057771214949498511213614249617033371110686768332658410245029432918830186427524289543055759969223858916456393468858097989519995463279350878185272348604296895413428609690225404348781765399225435365247430486172305099920971933322796476584279979291709807156142847772907072820787247199407562116583985625824326502268904549457492373524139216712306998692621756441187313317134059535737458941553551109588321355206078452555307278515791477667719461529558003408427028372097186598511926253709080480377871619856922805227970999403401391181747778464528947679865309949327014801618681205559317713223949631558598974998390307945573819411344829149383898226635502994279170252791767865520901978638275973632726283102686914137514798971576461002300371410118558987214702261405120134158354454719860630337994584477381751110586184904493876804409502711360024784958866945774592566717842812082791138181373295401295141212342640418051956756233562853962401008900176646898332218171451093598723172812041820568713132367762450023311718832701979042574693666404247191948496816832704012490682255020188996940272273193178695461227070647531255172021425533540686057324454132915433588215380561747411853370114353218434541070890056949137221264853783065458401310302954582536620871193466978503548542635786707291509941389306925181800548643549736826861822296572146930302350428788850470517846899126650717926517611850993352317949645765281425814224027744738549747302200857185055105425730170616719498880145427632537246767252890254552401276253271039667322058847654691152768021486850816292067012782865764410238333701988281742086509791319770419922998138616013573742726839758722023597115869661704715451692224547750220657397756782152269627469689946300103721026735109489288797626856308431879134960868319490824939861802626908754461447726509347804029440798385475557294789881059473065494782136417831626748341746719156864498773532257433886786045208607176220532261448563019741161255982192963428781986881648779959599038465909674602882370821299558646840717826338973930426725951155179952871801179599191399138185990703362215120430010096359472445691878352641664220796805070746264381223852498165883869931857180022399439619880362907272173615110805029502186076737445209636839680929323534134683416837478989864807668597794596396021206265244559234358676601058380312190917226710113397017234183770196623284855399974709189709891529827707977626722060460567386164452087359649997990110205457277706791924276035021952879386596423300787396225026052562972424775644062863595596367709515461052166907060674671195083439166105165258387879610887616058200171138807979917399206509992180524671648387409474580850310390772170445471815733892772565679565557913485865592143558141897283556735518302346079257584318026415269834629869692499568157495338309649559905598074917341865345139201030142324775682886847295126437572058907485865449621190025394839290352226227402499074413130080851358969818993536705573109916841322006124836978364318937624880303861880629016880962309124148582338913517449462159575005863698838722063228383537691705559732496005708756952402828771446972126986699584053638266047923267782771800065392143825914132906273733098858360585159642447393104231525517434656895901676442251835086978255977666236029281227596240023869415257031646435621972634209072012563710255167608726253019749928380103388823633532852795911216396472972238336291481705592010635287905083729841016136942606384756201636035248501821895151498522794592989498558097991608068728835697917433814405671889754612208268846040912147484023278507851080077584900146988280072776359499571458957367629317822821561894936755978756823761314334400035502203765304683784475651686180121720944308390790705612683874864153476424494741668299334615426260154698400577826234263523344732278825956178793974771493102186602897736744769855394206448181993149035882054199930673838536866779447958004184674514604573903707683574752413825117738286180330705162159760202745625577312267866972529163785122489675014036548703189352373449379867081034336021484996025550026774259118681184371896714641293957266966726839396699472227130792407185999517601152736746711902501597266099147368666226954496611342075517665100639709159765700968279920069136122153935655627346173768635022954740541894067362288454375187442866483523258410347405232020360021046793048327924330421896868331777601276526847257159972084702181684847209702871970950321963506978856979958723002662251182298552760930194064191785608197521686873641416366995095848784371217130992531281661698366297720058208820643622023586001216098399382178351782954553789027988511402760679825153621400808761623103000931214191773488264077485126716999602782622919001193892397576040660073428046954161063233996614956173128728204189785886815809302608607389120725285046132606907680598493359303280980155810850130142687575387348047788845495055253111204022557506088882595766970901901793648381783734240879892360481003945422312299382275802438309419547485087565266021999845096350857880701710749331748688377186919365451907525990825232391451989142519992643396739650719946708342051446815046677238172755781792139829372355036224928461407417389545171501632210238686019776206073679602406218459582040989620471856233216506086580555343145517479103423360355234515525662368057267344461625329603739506688106796864561451294959977478481646206758228649663397331689694955171408553176756683248294176678758688059385922208385217678803918292699261031238818379859736996566278796222913436631193867533285904431482741295592814516028097476333601208545050774451523321738256353756928619128153631867878609818351701641716065572794312065638436595837028010684047831208444707224063977528888839038095248004767719129164740651725084044060195709174273383038423272415563309833029067389603940984851069840837624616951921886733478127734581510670656679643062041322820892910362534208938974889672377759434650361499790193742987876631078964744024862717257213372112908033399673293614417352304951074340849017921564984098360093640797301957823349175940222545707636477025844853091524929927040567565024992147611361399538931635763392373192469877523965120003234484361441941570633642050613371201070876901116143213001594892850381683326973029447861908378055982578289649793030772133032052971110540571345835342071099169446144847533320018956861806602116392759008062182703301765848750069352816416703840987635572550796135821275430340885944134275456018143558925518067902764758223900881976262296424121118204919544101077520267307809682125233045885759600321126487000777473755365275215189222316076469950024034144814170955170269774309225568017340823299763713399119910088785720234283597638774544140446312637737018537418898517875595517020109880620056546902979295647175476310076931459184979251374897750100415261570557667084002644038398348938208426107583314614358011282534695435824729254809343245885421746579848180249308182733872419116857288318223344467508021382156914810528311398853544906382713487234984700899995214341940829573184275305003714861819210560406421822546747275204343394069106493249309966744961278618512965438586960420303860711403683050290513248006020029007991783245912040899569776666927499590254581664173853468056474214932421924823752082816364891572562209830148183007817850165116147477578248525597741576025986451526233738886597396203492010318514455009930288285363850827220035929577247836470307410533858646164504299359404286583164552116169376579051028866380753499564258594505767725651851546087067452317031078015670123588804755603069842541669726356945777387824707135001188127097074491484993721323805760227919669368908276539037062292239230000609112656237420603385079245383267074857429604327879666957753089760051051620056154023864574353331710482624781206208521313780773225716757582540274170988276015649069016426282587705647224069614823611732310664939012600554824744896798633523743353657517743106114752209443389138075278895584022565801020399431505978090743790494022578324695292264806425080033822771213198815404169455300399863054712357657424565739369778369609659354300887956279974404753441673344984985790557643495624933736202844439153903715323477465337067946684163673491271825715591594315910940420629128267517278642836594990235404070333645465393192273810439483330487755160846759220963553664338805321941131855817870638960421087848472848691558177432194711585881333935931543999637690276502469385699877433538602172267618520733862091826625225307574218843873130717898710648535564976145166133403060202122700927456925141026309504933407562193319981068894616270522837607992547214703042071484748993326731905291393807217703951175692883893582563240670624430457105390762571171379111473462195165308165840190413164098328427609706815468301763948425167579100302901037727902300470594913263222107846291553041046237848305353635531993316416573759937495807273381477742624155809375785444249526081502672172473763509603852448838177728491554557094400399154067362926511479432134484377532780925709273473650867920746248835517262377751768453452408767921827805574763503253212268566417776884504985306648674760619107683591146482935829899643697592496143299053431558299157907504999977058556934926789696637673257590551899075581843722699637172108773556115112163435044935003835253899554265709838107971269365478055686201117535010726415501257068915470306047284119269138724960088308305506876723711969471010703082217138703232464360007506982554607661550585264467014860781153100145698906343821381555751490412134622747388538289720150293085213804669719611246207704774624612291654367834531393236388033821159981781769276516912864123746691230740347389574568262046078869505710107261558202034909276712128508276608198120622309829762600105974302981911917710751307219356818576323200048274531696589548339639288374129181522938573042970099285901775672940830973312401499626126486010044873644772055966038713441433190033558911689836314141335938953750475339093652358646171741979858474567497879639660517645882983054934823230196280420393675947916114565791349772202569254810380512234814524691981951764840245586732045531688525891973677940605112435123811568404909749846374399576526679292233983866601696945699570812105856500382880238407903289800396553278014447437765615030712156537025657504492028472818111338217517720238466673931509963236295677067470414885442338635357473442905303945783838109572771550860055495550567294073744988596796934427122836438961140669280787894237461386209070314881923437650168973241148504077268784578837873032082756648732982970523172467200512569842900995291999301576980405604500522047932727093535351240403816458409947642482835757013968542644173945320227798337621509956374207067436781706007949934829706226147939901940261050053113838531844320713508799808402176201193581461945931646557591441254718917056029600520136146985287382601390154016748539796194559511650842634408695915825934606231171546283570007131470570492320798117896564393213575537881289930085650261001458493380830174151269503413915760139766826173831661435934117283554155417890280137175280492773598010099742105412779832910200413783883235405084116025684063250478193935356007913193574748425836292921473255264337736769810174134767071205539926119147262573600055543609858342520165276081822666388588794121216720128166276847050375128575338751180740526683258416166162533888139685751418596707613557753227483113375940499621998475299944485318875153185046029397017555968906915186819601944135702507146795812957029380966412842584686869392390796965768083861321828146472137055813670318112443039873440397016538966397465913754377253431146189972416846199234775077521433344664323323714971328603551904407851396609022688196003939250708295096192977573619793402169238802886982782664540643479492959960619226556045495965649675757365196949450228879163373305409745942097745467008772199035346939760550306174822770752832391876315017242505403264160626866097857683787713864855645343278842122678218819749789894388274591190231694572548234113091749675530151358338427717925496380968077185200504000977323727899606574328304858353756504599632836273220366917077136650581735570601877621083614502861012726570567809661905062902965593826632080237269110592733471046302455735081481762896296182977520257232810489538176397971663151802358649104149488288216484434257291627682239733748820059539428961252855650556245354400393245499369850865669594814007633331778791235733310289968777191427443955895890969956026544365732209308850568692234981972877885385395455411949705438004502382747371033515182328947238554007970902878346550143551210930139462020127898247597195954687647883780858535441969904973989910344372227849932874697512938961967322414818579739279986957129905651587435111515139682802915030004009865160142966599694535095854142010660196745455857292953415175975790432234052367360373744289919702221119024255781295627599055477955776880770110071747015673943276280317324604963778692622231882428237711789520510127885085252439517994605870418301147365095935134327970966025498047087259842654648779164858867755365837714168534919559147023505643078930745255912488870382175447255296650959285537471498779409528579829685423951526599213698588227874851406142382407872493583862466186779781894943301293477539402637110128319327052245190055981721117527347212024880258636411561983293755484995457102600569817208175686585532589726934540365806567962253470674171457012540134281822318350266186028475937341160523391025287151383673377548356788555265455607979326931471136850353974225513399581348063657560026599399029431418011551996571167040520586435444799901632118180006411817680870418240348656345135565363870818095583549335103472887490371946426510125094432105901998504995713195539782488414478055143877900686411542278810968058488247734986778159834633626459470967809886802072264320969377410845189782658384995594396811791640891767404914678697769033509022984310665964855498934687597396059673830307562991181959693552369402676589093461599642537267505791198840300866004101486719876011294576586876420122669459303850350273344686355560607560442993249906333534601278240404973863227427136355915432489056881252189551005867062840185175471328662600878363613617692357474272112233051449081776054427112815569471378894312104117480735746052368420125243505838621946858575496935739010443675839529230442435711091439236644377568153127419454855592993815893490833437615204498136522859076244938244314977655278780549969428007079765664575354915759846046003395395140241626320309720378155179556809302398598896105832619218673168360138509562903729831446182003608003277105772894196785714450854930781786897048403309214271755200957051750511143801386758813187325141784312055058541517603925784996081102781667766617112853576238548270939530154302881609943702141493019531517047225528861742113948578937599680711733772494508216147029017769097806208164975434416733911018108705460573714639017368253386857521838492270926261343591972371510388716335117784123534573228388773844033274741822069765353387832916229437217015454680894579941851470920247865022592166392487454472094651484213238649019943215442089381883597424616435387589769171419614425785600349135585309578425341821963374123420230110134200856148080230956050799320535016114373252429382743060474599278949778115922157417320130482812878766054358565696134354695957146882753585849811806543684193686158321855463209478314526974517672994217639115897233631001295865692297589846924142314665617519582131188609739216564224478428436969774354478683964118829066558960964766112534968936210884646192675992791275705022149390362576357865913641136363542521717866961684894479815363812706915988063959570793896021678898231821039921603869435637351163375020311880544598343087648893956324756155505148222524854513534117744954732480537810938871228267540597375654385871493185551985845096176305040506173387614824376956820618230030774843518904760538086789578872049814353733782266967049802740983119935760142239418921539939275871565177401080858360481549561828253013313487458892918810614679376495557674742260448094403781746564721206513637323053476110651033993897402392621940489703868213725906048209849217523618447494646864756553646311530064368589037441469323048406820575337499290426321300738635552294715451855058610266711549465761935877956466322416580933617016104093444611798035790310255230803251629546219376526852724863026126476584581170217395211407071230052041154155873561023663415713329743614469780679835624217438416162203465363315555548754635053649673989903189780889956740619641226438509547655320296669926307166396817731742462357163441045493291091320862621712695198708465593851313472121164986435244161990472295883054675062525281845981648410580922381851012237331628903044813286577435776801230212886709394700539555957334667458977640397674189855456449202266387267510368115793683896195276510290651687891935463177763577269568419229982645577819418262105851692759530491046798039341594715545188953070714168086577916747164145031936753901705414724800521171900109618675244280167548763175632941004644529862593115878666089973400483682879076319694309947955880348024656976823443488370266519376180421716232925495208970625071020730551982780528630803112228467901081386905324807885951347119619015901066517279434153744801355828875851667987578245623341966061759763697203579204447345429256103501512038046753393911532413943062348732882484911113383642579652271664440075883055220805576267636390682215637578095182725054942322998013483363844910981430253236071936257673518831954760348151634159570035095988216518786995302738870250525872545668989112737089094054382542696594491942874403493320809178647725327197737350088315740702664009458425425792115749006021241812625485258326632434352308163582908839856220979735587416360521159381718136418140105865448622418771518093931464428656786816734880079844775382316891845263599989195795298427212956723334574585302898122149526367285128960836407886975383082768351168409254352516515420648168853562951811033402322948176387696042390336297797936090232893711925848332677925026544959566654986053770913871190466833740074429316068294205754300594102541038084116058963103783693305463389413082138029866819327526428075864782687512473489091145783378724510828908973723928147804685613640844891045822621596437102676888709541313229212794986432023564528979778243636207051785118172695753083241800287872603420888934940304039188924815952111841490523542147969877007657262308821714223048409545254148186104187252513591653489460423378441901545256156294691182188213297434771621279949682498410041576622559254985702059077877380884045069884878417417240252555596642292781397449783081047854614066474395579356789608344884183669593426334442792874917462665031624668875395206939903032545696827641790721243621791012728110711490730559994280828212043103091701877075243457968491149817977081053485340889789181664091975680245142905985968332003103517431684040178081922114663756891322949640689353204706568024897437115909410285276246789487081265011236222043982008213166422198554261935846362787216906821345191392654509429543466367867263381101564834226815912969840845699334277287511228559255315498413274862366715829178671847803407408963801146303981065986651517580681902550469841365538449289387972217642217100605970684536372931404252705862060807803327830630179498673227120814818269844720813226924069382207524809100905177526626692697336098410603250839419158691389509770216256344223564833947145078451274399731197509229923665921410546638285741718256245034131169979613804065951260649935059529055286365136279115691667994812164435971718618183626349279940686537309852225190259976863305454369973409835064122897387399097590013527625790275019341589278049370370129195680843796640362308137755569451512131631778168109098299877475734788355999409352952638268435328329708719821769212751294214839879672553685367354631689866806321538558119630035596916122606833466998212488154298273910186576387840618665718870921224931828007632484151233393562148913116855947138527182436134756571390817094597193250749124587737375186325123471122459407815085823615389634423901323679072368524633052610148450303448646639576921587316958231893446766426271808223629775314867828890628949482832993094322864228488898078268788096166423918466338743741097068886335387204621589936080910895648466868299000646823254126280045652292726069872610262685576883376634838415895596006009011371685112600029747284262872928431076532741460335137073888550182006727578589583508809090196172578648297036012774330009177468578614812718238438362822858285809366651660636860024291017920600035439078424816380575398544366439140245069161346752495396968601737444737052609076887867595118518586485198048290256606564101550234595736906288124028578792700646819372351914727603088495348090419326513934368845636542760077568287685523556249338157395183449099368688611006918036043981953818711899525145548419860609498685536025219530708166163410378282580535563229981531229007116666307668779699709889592277838573142915129605307911440981761975092560784460381012720684731665907426029356042234261251140473548968443882159953599408486652234978641883027406538485575416577100235098207078913984656590351137548023466821956718465162213548669222565603050327505150890972334293956041366421417756617549986676149199030062505830816887599195363174415917105930494592122296522228223839543830607966441386534002500250268216386861255104639435339794090288180948892941756221335890126814869483404278905603762941797656214368409762106330025442440532190530524029658813245903953580286864315775010936835915953826578239850090584956518417563889691542091872008819667036022540850474442172840466916582721407042865306175765427821937879728309793365757197545426435584497440506218886259735478421217279737081971501300635150286766613363157549015639718977551543128699397776099387601331890120132066474051571902658536306062871928041048950377980550925084829307433543810626502093921812977342918096072955755025093607995819889424518618668024295902457193530881743759380900571555772512309312973166495915934321420050708468624617976562534232345187927505114808235548041062734925261200194722206166548164338883565334131756351584612615362227420886583640915239401689841267899830418059011220559413573400926785269003361431779814909677726455323434833252234874324803651113562650084906285537352796005598566636287797788421171677764105762556038712536368380724948095450333884374727071818305664432696481743461915498877205357502429806506373683841038637040479340622742133886978442136814051304264547807988671414618284127118719642632503410872032752824535847039852768880746387733829306507437756178192710018336801265581486323191696713348111246955731536663193240719987170544801884622297723928214198401625116737968433791000770667049091230871925138389348271192601135922763558148377479483779095833325274150058596211121627585840314511957237281999772550373903445291024500641192829164589861334023886360269317344658734270667188318193984873946136588534139329321481877304333855242632536752679853396878326787659658713676978713028295523358471512919090165525385741070453365812782843810462131431026366602265935762766762909281936928008177414899892208491950330525873916756982992968784491520768890208887839537965568453984738368229327892749053129401027837807676444695285173682772889024167364113501484798318665930916424163997812109014372568963413202271043474362102143160314360397184285653111293567167820456018822775349283253195170457296954238402620929088186130952595624654913856900111779749565335352652904129120282005390868422790586365128402216451392394132069777914520605072070550810623824746347066801350995594381045620610269930286431663467115376914440535750522116041332892404376181229113077435726200055188864446451606341485521636848976871317947343110180754533898716986020689658650837921461518739784716822980985340344598047979119088000164942009877319131423467040014194725222837733286351104892219551508916897512772868541033268279437177118766623918444999342636794867315664265185755739920365284997960222318678187476798016677652401233946695148028192686858321098327092180996737833047226231211406125441296688130004799279279042094280260700525657644009269433009399491228275234593537338940628912591290215953340135905849550551888353525010166422958328627933075479542282837620950174855356041664702172904246912260113666954092381623989228837781810765413714081715780491037378860067025554542843396620306927488394811289886081546253676308067886500274521537627680831333276306549510175046557159202139941253213225710499360619598146655362514493057233947627459867779134534862024859833916238556319425255301990991459563920334311635258681109033896668056128263298602136645191329654591749053582948352368245213463078541642822023178231921196133783475007510362480735904450300271419573693105456818617846034903472587028942505100616044692700165988403340125508827136640026274932700857093517427598904810859041437593553442542671910485109682906352095343228568967215153654922313027432574194432703347932576226662549142399307865896449855088487945021348682306364713016734765426782945658236837324864279905485984108676699164576319150173678019145522478818367431367711675973001927667457188882726891595045079272373357217093343417681930702098845642356054877096919264146239387242227085702926544253687819167878166854608040195640327112654634817310083519597422717995698133182442955036779603596006362294131634040633395349273412941384047888875696304751410120743554530901342687338659591160479028371886058518431894468097312071093551413865579709812275551878339224152927491293283433520357090949363312869731613549518364008767730443430161312475996502094677743468246145592163470137989816564883963314104963846693270100080762083428187215529078093965792185620751700136505495931471253103378553108444398548452027711861035429659088424207273068694047885824253565359339660580640534651753840003818848412454195386574572037847444363770283630878177826551064116443066914972131631342070175287663803059701318574648604786118408676376337515810275888245480471148723888724088478852544681733285092261145002850034107219630697937535023261235429392604943256846882025731756480374203451991309117471280117380193420987274204408378542047238091702407407579746662748242612445969501836163398165024547831449339847870454813848942529600486240382847187073930565172677098035988065475582088573626486037566881396038480052511005378581856958008481606837825048751910559243257588918633997234928049719269079068508613061489016250265071918766516352611578305009279515882635726169580759246263271394710968709520693569123562437954194346647567501028779555611644606323802724236886004474900754648376179133745808994504046373573948150008179499331775903533294374773146554760613576332644198017250851906854584385703640061579898995190937199214599804863549641680480937672688627898773661274177864116863631059532939354716544412095935910778202782945811319561960380578068751633522779691388135325218783575421974924930820216084838854949998763832086039315633097275032486075465072280514643237303637403397218874200429918420084376673173505109585492282308913989618653358613091221257029862818620317611497918967266090561553598955573239893370515582812105501091955483736089235443870813593273374699928391068602694287555343539775588683689371934432483517251580122105530125160395264382309073257975832886039829654356030356329391547839322037946002473302693410832582779961820469070648714030499432917527817561786131453383608022558042557173871986938626587611862270244054439854746638136103068521884360204721797539811796826710081685723487716615616614880520011206315408841214856920564166516605678460597309208045608327683129036746204032199523517832713396849153910784222039924080295681618655717934644636217927055672527944501486654026168007557081146796242287895930985033493502921132876133503955128407794392553937663517138454015501655810746040777135692523899609022542716325649705347652837841748148702822363925247224766654509285745585283634164962480719998967340750654134589381715450602994109526776682310636078098144016231293306214230951581221039055650537901868019096653303364361254873233461400113901543948860944911200646642584587976354762111295447037501581514921495703027201378553520929719727569385828707962604468894099493160089537093040507695005550513649286174191742329611521215030622490356973869222956209882712224233531889309768976546687552410389121020905193630585360055194011174594482422117099236838865371340060248031840428756392116590600701872510281231006120550781019909965074328775456701626177576436122545070246702707316859726191104683719997199880726987599888369718312672337179592217403090394865323973248713111940743120466401887010452139047008534312149390889750080259299614933354162153663492722633791938281292228926654759271793638426268624355308258055425947105959405623991383108306582173433398655837893530533217390564101034338555286994134818038718441532339423870321531123170223228929024428953820119127435561761230565942205511400741074067155788566149205949887107373337394194728392804411492016182516737641874064213625750971609065408895470933266695225983421079270662030524865526849049433117877516558156134477365244481461116761805254662906597990240615443743247026690420029129009930615062287615994813922757422399449692666377217890893246882353897666093309551129076569546393460943308857783242214622121526013699287051339100366399782901228375508079415325939903438287280230366218677737861779662726740833485657826767532576337954166499145887339950393962261686235874629229981133864110580254109243036839832832952231777769786490580415313195553054512604426770879688273855460111345520278512969012293968865132253263050060509970945372530535763999652817935247311363740251738655939054765903280786386875105677125765643819186316069873325374325988883505836077260723926463611190577620127536305674850287890012044925692705480392596836381196023801909482773166792332347349893478195472653551595461462157636134950998512211007258409757116970234742874577201380699856476108154249490727124966535249560356715330647837610483863692526465070917445874555168237281335050708480755711508784030086778327123780498521749583538884049000178552275220282398448634637871440524272183889774598298530170158173493089330720694250271190305743647800709966659901487117367732069744331721503431749497405818197131995007039645499739747695676874151694223750762656355136917145464131050025562831914579258066115701675579154745616592852118485301723751439015681426672968518244570757581493542327304368920919389292881783474971742819555886373201177992653948196334303552347969079389990124564168660276609265068211834343345160649711057598703156662896254192789347698773821390301051816950045866416399023626746819892418878193243072279033788464100687400087639927134139998594402588943763443124258546746802007691117034599615066734147760837636672879237878241120222336234416691395729138449219207070741366683821320148241818673109640858147950246316362362485155465003432221133553480525710083757295222705509471508502862268501657298764430717307922914470080573509187068065176867267513653206511560023074041428964737419523810222697585871533186191968176839421554627587532742219034844488371262155094416740217937557832191194372283193821708237894922250413892634386729102732088395053968768159620001147058896126318456543184815210607465560212334502866989746344818244632473419387727681158489438160055993022572252800570584870390704580732942625705546248913571789865456081099343493595699640880293328458106360033733770748157162898121466182184645154474685349404816960527236215591945174374232780265875808546827581269727182542491181258822768316138240372118544496129751457870304626581532505323797563618258748350711427256997472597268906600231370719752794761980985224156374691990815701489954093914916012741511645182528058233513501206359550613761347629779170235629206940875086117719427862800646873066405665400476132071944860737617198740889143755134812344387149043464645174413236746348800838963150797491465180727435809086136899790066943544675945047559011350728326211160828333530685583765966199451460704837628182824905647542742530858388424505251530598891430638812778335748323959956396875706362830968395760623386953315299668704565937181227128034139124017157302120688423940088756874411819472740042586801403206460008992452967916453175058989034901134672322023543732555353216625063486978904479716901467374534021897343578489171620590717410575112158651436108896806534290189494381358210026074050877169716091132371156106138258736994859568111189051352251285689457434078382777795441380966575415978028357932957549611711117160873773995326568737093930159803715694434897792531570658830075685220277482268945825170574770763000338043470161029964860467464308539499541955904953146555181514392257430027844452429643336194340676771627828092589187747146508815261915257687196159772308232933968118010232289550240690071238044616804705811600959234107366143693553878709480089445699343307537925042832543480053217145072520196594357098338006354822953805468463560418444941090334159081290986408547761651968922236572948245576648146841390677787617623788485010135300257385405026895814868403111156913659923424752486873478576666959375657159334155506375926047202821615812996249694422705641797984274057465009140693326445560959331504796457051954647287083582807744561079274654041438418196211332559709951010473811145572600897831279999621547838126066948397075858451142246483508639858653205713249779177777101466987864087854018325891912793108902806026712500442856156041696416316956495724464376557737344329624930785659430497610548147694897594720280838982725952065804170515287246703059312138197377177660168000645016237810811151418788430214033685586167665644621554186115566448017908987600563504573872864951427799574913250828791772037819045022119131240663516784318043984903915727567776542875519040788651113284564578204733349007717287647381299430326132359021215128717982805341066850059567168730861319532160565709006310617612497860937154641372642675248151281813971248632287423271890350581965032754498433006027333358416291543675102437324575114080564428908872386359935818787004744836457561085714086595074331636209410133525360434514150985228988981342417110946512046117457883773622536419842519789445783529589350899353807696796003741780903173203287032225489511244959304732893489384252098685182997536602922622528404257336996731362305600582052908415301542998883309656739247726792775467795054980332676035366986903341234567798843303998437433790041502654610832072878836709146493036048344629467413650246584764136112231473314032659779705346751054751313087416044035815483278097686075532459877991018363140812312825476797472856321286373214368815972718064145560650647847143348750952386551233562441462354779842713331564707246316707362341149975489701152188087247594212958838908771952892154854992741210580630926096436937066396001269132560212960870255372696731093460802372576740633928844013769395199867641810205823590560021019219672851388472096264130126016761828581522978572648979750791995807969917931379444077927569298509601711390543399033421498004074475788980289466932429333026845733539396239197304554186866629870266332451358789824481057092427139285720424426320772364813767707702999060660952589662924519445299599370709925917427218056404488809596702215512447247069085053329771469384871254232587288825816353719100920720631652040559960912608456622220158829577864519274502865532775770178145433920253877400317074145883201399071998961503554457586155964764070333634288559760488675462747331492236802920990525118862162764470944933662516350442744591434599892696991680040920402930697898031004497351769155013241218728599817767571781932601371149027485423783106373398871854711079020247398879995024815011058634234511526875807491301133033571735998879617807348620181301809610214443566506735132960658917720143989003642692849321548219296232983595602238557261983845831779738002297515889207218145718407084472283673190349551484200786575473361113812187714627250609792687862794891828306149822253658118110243597691743283868673971246928497288292966745432181409677349556638286476453350665012267589975789139816901524920759211531052151909895434289499709504580078364032236806812402715422450104045232901999257247348520604424318527915648645016761294964146109902862741341079495947402391212393712261451938685980767611632274147960788571440630922565008371663215690005467996448600469690869770920399951312882672623606293310393541978576457231766574611471164823737303417092086901620917421035778766303625633000724193059571061664362069229990554340210647731610348360853986143366006177132633775934691117227851863034161588862083852663708044271702021860542298930173751585632176451663292252314665840229492269412910016573263984174743802499079537852806724493944510037836366221562721553219519529621996024028599031653556096635723227082633193750920575878143289022271208988921648066913598994360846217798649648023086959808326233773327148404061325317878900021134270368586314453638203093462080427094409714526763403936588037043107802474538321076230458391599668114741889933517628218923865944949635808749088049029381803322028266051876550040822833238060272303580589532787942083826142027663089825530428489477103459040341969069369730754123083735637089075671831637785079683479929816387703053323821211768652013079204225564211688342426659128187757673868997434859596085114027126688402317804988463858358643184469050280485252160211270863161084005126487699113111558695787760426466084387270708849412560051436851248752026357645875736695579074247575857089910476270052115756229748910320701990633615180005683871387918891212715314582282984766643593240286127675081272649816329054881600043451174053961842112946458867061789827122112093920950961598420357120853430504897713127349519177192481728540453295576237748398519839486796614876061011233055811037866168178627944380288950995917004820420796855307704318961144965148767769957025938815988064527288067403681916877840339931028574352147494364069948799020939746080278202306900875872324826853972670570331780913275071645677415605470412114561533204038397519259696919365224517248611089770308736960438729254176055331196601075175050902461134212693862226695544397336149846683081340785923329016907462429144745495032423067128190645696002689044636329629673860137571064745278050706988436261771696759097831072078294472265153639051097517018921250563333546769257883052167081817388875142117949793684325734087541636722126054443764750173152935864502961427304980065462711457478181848335363338252643775181948253865872175431397527191280869218828296784180974799822729004027358947884829597336392014928318144737189441756442749392810448943202721583465785969864949922007452580114945278594636203190518533981597751698889991994821005036375771730632784458176692412997827514525410348093314221281059169855908197847627067084393869341513528814291512224220011183675054932946007150772981104370583166449618452663607304187123642726078208636883250848046314275782901012993861728373639804770254492086455688131711887885463229894288722754488602242530113566292310675980490527586200717024792398294840327450766170854631666844134727963199830735922010492326232869363218474153857756802029133487438451100287092788723271916919927018709562023926148400089350993155205353241032140947427176706723833744512897293298177370690233324579862139963553952769387012124870871908156025624552577825359706835615402526120532934505248042533978519049411374020351628785836877989922263365443949336334250827848670621050736257651770037012466414687355157303642817861545848192659570728093616464638946015399272842392764216213163824144056187157675412190629245290474403067480957997845154830548433211422401512083034928100642096551122281934155512077335444442612526843354545008164874977310050085904842935773855777123805081482733871233702929301680904230115128749545730342138257255258816536686562355624944687369690967868963847034821785454861881041124035913733756314211290638250543807857734026226956635057028248384308105577214105643403121147899250827257580585408175282200416173674085287404031788163519682967424215452673551269596441248410464174949558678871271564629387538624499871513265273725535977914577781031813315838244293196984173143985235028671677888555978638042412730896817244677114819404356633343241746900565223982013456137340468053997089289358969304113682450629969461082502072320981632440235343710062554052609467119541668499290976645453620525035866166673330583808207988481165355963688909945395965586850772512816780310179687588386712502759469306595733076073909091845776907595086057502943888756560319478609747280000007875216301479576052953104056045321228571692707036962839669119799996520932093860743831928782409364971636172847895251608878751676061558652203332695073512114246031752955450064376900162002479924159642839833554749649887196908728806334204819895711421232002566888890327037505557949406256862845007246587248451265405103452216881830349775194853223589768729401952710812850035194729426323223754722206918241277345592680220066950642088328847002713852181378502034490869925321972197113762976415831400464511347368996474011695339951280204682383196967630582330209829434965858135706550050092189164949376693597067831785844114283389569837373997279928875853286584910536513358170095509785844280731391503536257620980985962178128651846041751363547178572287578764431546053704101086939004864929442113234204686048311274982640659691754816946415626741536276557016074943506712632030087712788489703462150963045525677447883754876863934952460459801770529012496182756757186005660494385127208785648520053332747213232164605333294263574772739681899621071670363608052153987302403014110453849764282430880580286911419304784760195362437924981045387488823719796156947208900625531910015273180653380513994841112933907734512772824214023484482309463824743799798579089496131458071944243335190465259245654619084260479818586278567397279089178388877461976279660308053840660401027742112021678392809057704610141963827257589618858119416186491511234311855527755522707004274488317479957874083819520704969073261305302749383474136506021007704192526352678342251224864032152973500207984060960001249991491873472594217444432021009693264554295786163931761568928233648703801773757495930382195614704157266264497664986170393799479905967934385352494921776800859129013270914777650710688121904741566350168879737444223382341678733059921538197913802792905887246178507155472861226811751650507594476487860983528304543978625498587000095974326216349811580849643927046720065152978150729829012712503883193126848093149393236028123130881197910931267008563048063752760537134959917484266201905676654925497342043570264638200017477383974004178204386720602222578599444131922561394522008764502053920700224684105617164493408446359619282299307449426667843884928971345013811903931863015714146689609834397478635078664265951143619856328297905525643044038802650394358272642301522763788589112740803101233364937599135272408332230414633508154611114435741868585173774760545507482472055991566498106220570791497153874062601616242063222737080084054075144886822719538352401787988132337644633680494941488237195640153837283136666227444482375687372871630275851963968050764265045855617596332199185957676999999698422028230106703952032135128067282544725745787116147581537246983297739215862366968933099127336012538088443870551474146887817408260457848882066050701444053780147155610370845114966053651502044807025648847336140167541593847500509247963431345241225005356208220816647077445582337480596556645680018439877256902556405976961077908999568142683756135018133033591228197690663074891350822800634650527832965893464754955716814071122437039422974183977325258313132497628312852621817159955378401639925322736030860489929867145549422294148081949950073218712876141785675730154866804332622541454009841015545244310416133977627339958344450516779815088618848206869786341147442066036868004381807858547548856560672344262452050280940676675677531325253974960092863515093246725440673444286822263394812030005710836211153533201565066679627914355118349620690587353530121743029158446285874659610982719758391339188809751403320225976324943188114452157434697147808856533097596074884591918019063673349418758934152383079102490574963200765966985457383898673758506554047918976380525330762498898490859213694700531347503683147619078498544843669825804780011285603724290143030251479446214901878090038798669240287971726204982578276494149734815968494280419065419046629979678046124353376500109628148220599445064277330685241274607548207568754417681203351435664161471636885033181897768270973525380634923727166916154924774681344056439986841945524013512502508482765844239046329031235588874600262885600126472013768744990599995631547403084646606176837399913265277082160987747911823206735606030354562358689423765736715929577287264860450194454456425496773017660630917156534692376868240852364529432901135813342332084591787265848863290601554728940273622853228363957006760657334291695893344418559684438362503419129115222301108873242300020916034269281600820322290572786650892105714080502121170281073819848456903036633115341154382386856748576408514060027505243662815141929653649770224984850617649745914904256022993662532318088682373346225395173015173029285827102244924248795892982683785003353023554512600800505580181512689832213941090094215824832696355212669446939134427731067779293881148643283325704756336513680831928634310653068235591521000668172276679359613866958488147759566371163748867963684686519158573484958075139705253299591560473136012929339803836198803896065479171099864123072668524271256325101858395160666157654753569448034430877302776361691613712928230699739047034486031764870847510471580163444414482063006269719074429160296318590554775893050067346880638002399798095318271326479022982048425909142702532849782186539508599551669430888233465701464399127391661460687239320621053352765950573432079774695929189255742881721526775613675652512857566496818576496210691661367757169691139220134774165087050143456783430252720446020427036273929879095111270084864495859822211592519102384763939770451814790676934141213865095771231270481935400534260954566299624559741548821924102471365622550478189750039499191064688230414768358623245519530169353008585625309735217979648796329923568566282957999487995281355326449113694493863147671982581772176052464675334744546531779420870502816853842315848647641875133475199506186523308834399646110910550995411634015440316605074791394071078023836982739171327911900882394726421080663355966273435779126581109523089637793208128565207084744562104237172463124918719997132640288369789714970885778929970939204832745373902242442194528705219217473704291089922109682426034762258406741439838073375854492045972546795669251597398126302350564334903178357647820573651905918054485456321264115211390881709139484853247312604051367793281223768297966434740721160498499308660977354695536491457775251097807773048594883245125006631995710752310052091067947417822101260656516200566112731050628874511253237217837966528030073135289177829512138382161791311185756664648126680424061608242352447951790717576826731107057263065057836871844035896584930775146077883698293605556520310481128874313821117914804566341845589933115612712460072053472778198010170605876205839136186945159322477754159874969994513101557739966871641884864529550873587395249498562395156910104883544221818059401367163085394826306867865389999182475073028683443804473150632651376916849584916238222299996043305558818675462995360541565320145871795052889924819047966170057873592070920253563680896765525703997937827232936235541171141502340484211500000415666098095476049348295394853712552728887646440264492225794247801703113000235567029075247237496534426374609632943520602732074472604378230995868058781459475405482141953213111858455277031630298545859624688155452033076701532855034113379071535241299282246140182477555252423213407784779013573188350137985867685318570809454226556619712455495942910934555624256171253813656346333346306302178974575628841441678807889810070264980087879720916168131442413646091881012612999952149002803893528645519389150128327022924684174083618514187365581224375131524222721484449805387346009609785916996202800972871042590622019422187207269301004502053768324286786443538171438774509261528075362670914009898782195690239082926545292723200437646613549641939182034088338026587947201994310431146587916790173451942992568197237727286382139566930343932623101668476409064790872857512595086402440195649120731746506041463824221685624224411966211199367999684741825354065751751079093917192474572410363858129926758887959627463033779145410172724924009786176415729735532929877947346238384928347248941116286498657561693597614406863672901078052534505186113637180098633119760855491280869049797032719656334275899418748063030916250040930456542944537341430476332013455064398009634639562576639763831047294847454448638672236702764275406739150712013285653274851770148550409611141353788905010752493323350281370187554693961666068937238949034300040234974879864950320283694908596199605003982978518078854728227496868214252794548698420772879720512528439095851488809160851223373549518167599473838351353349954013706776909433190723654653416907138439033878572610087977686895922151014067945916820618657665738294190080310743983428632552629733272165535485643257744966271008140369121983857835917421932812745449063717749396531324688015844869811231613608270415184378337282950636897983825926750650505274794103377809489273078608684095641247001029689395223184076382584394272604759554738657434415545422357251005621813397735263583551190895742187331269251911070580748332739212033061143281655186515872879209898808224788767488597287668093219837647739276632100140430318045278575265170396171892389887655031133138093304762469057758414735231914068203452487942985824585724007244511158985351758799463988370293266205062004688337335745910137058479317320854627266946551752942879675274828220559234138451070327152613112661757583934904984341311910944565261934121842525033803009919041238132089874660863473392133238740589628316950480540918258990800483233700609741126229149452560984752381806903864233433207617793244597295419985677504452066721204798498941566264101270850541974232886923725449553420082237984465796429730436121302484394332983854546591391121107862772547841008719483140259076093704055964084140538447184975289830871183659400953617743339183191667566913367476490006551040106215147478993706760627837935907750815429345741237535309319055864992988169586497152313735200140534582065089176118023577371644300442774186243623538352914676304981382279136157711515694298222215950541524874227487803177305650740067906396973062471387299171114842521623849931976684598833070904296032232576309694363170090165671128712074282061240279346656082294600791751906329249769312802976282166867540227088728263688273375281107561710708977075560829585496472578552887602313637205810680024816376707423016349273100455013245668602792269771546122872134070884275016288283453661956484295733437275917799367451267241247874560711130782182746095047913837578844878625957535584948296481540087699994877696939358149269708565181169922234922126037361825422524932601216797482047718986511867812526023159207664750733203846344086077277544508620735637515251855918795716247780080559707189257513122672885308440795858645817021504374057685819740864617587092927259112464185331124485603651134847154935512731878403858292986800294405931715644418460185934717419118622133177473072134482173707292851855120438780406824583229004899020394044118102049053000242151453852860140896370634745739855567480435853793308843149483181220613384455219886580942433247759986339620541135338053760916426568823997600731158287886583692643566671784210537951868155141660845372351632307348709768491794742151823922090619968803766396112021373070692462592046857346800874635559469605903632734594472877701931813792304984342599220456606188287563218133607768519476236822720959265087415609281124255499997675766463207469356782285781618515320298242649057877164959160473761817366920806568964436829966480898789899148559522651802721988002737147094136687501438676229481045998796611605329743622723497817661824950896500547263321132625061168137473323077434268661203653259566669499626623375025339329115021039365315985195451216790717228994943080277491513066947491910271889425531524945084154881356792319801328865287309923820136860649038169593505185800154433535411699226219451985646930038901049004338200731523456977934065222717194697574872777041830961850811570348618795851478174002603799216136037682818408481280456615919542231784586984330069067133009307633309218526800724044087521736746908520331363486887544787769292898109328333520570054832532914845564693201146215047783969941843758643728889105161824312934482849912048970012287425775168631387725913385007496931163046873657603964079317145104747879536997976282204346468651141630344649552888352327794292990447369446192284517387599495203424421827072843819629544508823031222440096974250392670405795909362306694179523869235114694740138937589230357374054828177852928849063509733151878290636652790682048826205110116498385104511253238921705076247794400544694182371511511646006611484841364722588661314819702968577785327838068320447587142879253569280677638089948422580129738828293844096448303133325231074098329200080971817538022381955133568513715114391800684974499510771299277381686701353168827495175798393612617010792635361543249018995029633530249661368731810810322051353963024030289585596914718561414432487691846959918427769119217360804917487752435134703136332989845279910575729429133576249021816160141296954151198283158122844620150226382335415335911874670562837677896600676261236993537066331761100175479705524749264857266600541853315001925882629866974729619936637947658392968277268187254713569271681927554697316886868926510899735814776181162092856183353243799276758998433853676016463174748701946342627613858048422828106297147693410309015071390635872354109444885936971261063386321076452359170896877816362850940443714422954067090090560568752567660963222296565761009245666334707288077348532074660668709595929371166710590189335760970800343950057853465666599770213157646805793519185672890037687760334535337758952113112098853332589844245499764410253816813920695655052514253387813244317927148763778357731356759711360558034203523286136775471092677205830116809850389598191584566293564071285685369444989280961279605440571111578873170379039084744441559481242917797274752860366944452937302227806765084679877349597375819634379695581632238750075720087519799317193128543813408498300248970174903879446476563913685822961108179269028580618496917376408171893234852778506695350293117738281674748801510893559810448772861287227137439758063245232273665695173603928808178714065709436076837636799914613695927461762482383089705686806862321290824883063404647884032426997573034740415138502831277784701984587170572269410176950241489187822311575397165740133781283354491158969736932160414117899819374805834456040346035769986557553200808043807598050524213133239842578451923677950591853243663370854142458806184812568047866016669669631551864242734607682679275434884082893853375381326661661000765876626718140670646479870270428385126276441435956301550684129434600008434565493813391445645101431073501903704630489704295681625946765661360011612339096006642673765410273680851074303991506407934129923328308797912976147854081999632371853918851121084771897693493635523180053744734239491825954136776733235570067466873785596436060715871562015159696377501514952726547971154647576730486870179282239993439711246837367681111491494414440493932611244725606699617484251792429575294505627556143841446912052628087722129987527221433350780887796760571053356444400960959609952552624145932406162500574200981715659019731191063283963378746824362495583094446501371541885054599195808121132660603321734242148772302995177886400557519494953048053018110479139458566282339209146623132023984299182338222752110793425499069612308500254653771777134071454535428425772318842076402868483747205195931427407638823338033371428282766613260381380722192517722508561600161053204079660266648277201080960358152672035767553715387599274631833161720755398782695671080474441025415464038129884137551056675853381778674212259963300082399063705357512712732839260107277048555928588349238675647431876263618955249411256537166276696178054021839799876805044244856724839278678390963169517199194733163252354051909887885976840992272520225512099390794083736301068751610727710853803197838095968967893350327065595239161356159339826194115473283831732018410303147454969455099647387701953671150246275898930311409037548217824646720596774020709876165680904972673317042488975980553157657453748905709758096671584955891990555865733581667213449868279557993430862423549519423388453252984802962702442343298782517386282150443608527757243561052841121730087766617585843097944959981539258197392429000471889554899317667000702907482399898673267193906528534974595736028653706305073287353620381216837862220352962157107659770327695344272319974149477756389382992247208694650752290175341498399322113681934997185038643573460835744340107483668185966390402829925659535157151989218943341355226060734321620301514353323756098906685134812120361346260180960041403952508223164621439587615963188347478876948809193864778522845501547891058865887406593396775632158688597100858249005121487740542487583213962909527456015274457851905036806694030818957348384351657461620111514654096511764271771615555806552491948330070341009110807922851017703370311425185707993243113748305211989833833629949119270230759827011233129654614996674511467200036551289777635002112144296101531857648127284691861676114149362300758321206863125818677885810275365217507620816067145274832633221507831213208574351554868657619195944639221083647184544393657123348645425573172628879829480632532975544416536214485280480114434275624773148641022691881441372022959301747917947468272369955186516717948875069769316558447500075705104892569353804369128992523568020741755026963465435979136044525786653639758378025118820176430504734574054505156053292456043802358072605064691257150200683429232331612600580965715682053133492960419549834612196040546053112008712709600857529867158920630451583224761898630079829506539586467966110892841235991068764557301607301839478413701470121078957739479321318969632775011950870577534078738600765782074364692153731694496217044493313962238384158347324336925945923876562529613361799509379895967152175172033891876237201671774047011787998503271602001825678357930293573188172658973571386027952270741098179141491446045659706693143341772711672626124596615947091393225627217882554929934535844961876369677319211946504231289830277577467858329566148602754510460698682891241405329202654816053540603418022695641552067966363923659989559620540133151181571768489618733529182215403559311282299287501828281062919354561850727777723098421723697581181334810849160714849044802374708351283050937959993002850837506998552924823300001458551173196947324777243158362573698378502850339546153451338009847759990178387810656598811212069348750227776744679522405893454381389774378628907153003238713623565267221054476392131757740447283931336139413744148335166805815474467674889320214870879076184681637060038643495803108146419366589284660335660850441512446196224321970254280186338732959291336327050914915210278449151192090599214986374244250502349081833725261681075297361935633820075290254412931616680111585200879317038610060842701111421480186253955348686628055809677476431749139760766001009824634498088938287394684401456523572038108687581093648676001339739498233855066552855123348436574921776017785235075604283232500800355760959911121904824031783647699721469249758826996060682550604845426879877303621887874919136268041178696197344800548721806844067678490871320345317149343556153868578084110729309511138927564358536662756689601047522609228381912487348662100409950107174642801063224655075775985185484903904030537941307358162063058030821867823883287857406612598861786242372563610714263227014678004420558712116726506953083047365976592871371372977698400426646659487885527844383280723081751070924486364166258706696254811267715731299690615938735770378866368472564317352549617639620734387953637608280193101785239307190062892092465278281586989722252659537036362383874623007216302815400256613392825886060393368262664809896610352569885837918257780565785637860034317834225016124899286848482900930954263960984181370923877171985465134054936840325454177842378985103915917084609976694990979643879351619826701108106210363590840399743187123818482265304128726224310316875937226783316272052430979093758846894854924713416352421328984348962493973306954128931974465783093758757526295963337918566679057438936909009764605652621919069871440491718052714982943451580092492496734304382162941838347207154378862869608700655306307600467214189448305285727130087181188575570581729965029557878717176456925789368357192395127338548387554556690407131685753458031175057450076165967755175685034373452207207920393472204452199543891076431738466132685456933910430610788891291144912718139964482107873890051925912258682379818590618033557486895829100021070959445006634258263133354307800130644987348949207684732245328775421396583362366142702557165021043735351457445032399785041640782259735250876340220978284929542706897262795023949855480317764720730553696357108705191747388513311969736856821848975148964173725785055581181513528210572925779010163808315097939334794952703894701865524539960334214687877286852933568744074427951912788043149900207214724830622943089997446871569153140182921801320149265108107516235301781867057275683548123045778234063519902500402696956494036901769732832399196796726311466189907318581523081437285458872634022152231091558508413698988055992380301038084823580432250423508374489537418232407179380114574724429638741678517069157439064664600551272061974140626006542107913644213179689043427827094553902982588846382812772581918399009919392820617337184418965770175016110395538693514843473544663947924615564908488629697423364768134300328460847856461133917070400165017253618227271277915850515174002008004663045861451712461088795095129350369843930432120746060534335292031796738131216455767730354412901327629870730959755967249177614865520479930600522065900613602925786591897043891289945820863353119722023843145773959819829760103366933654173265865853366488915341496079831763763898972226024297202599289883867487084105682144257959114861459826477157719559438559924454657088863874951566410336333830456423527683119020350448532924553037659065435036859405276964231344181802719367239517402074226494950979765840642198481933759222310604437300621164051782868531957414720922351720748116546022820904535281304045726663450005365699914105431791146892555940849975284431683955344041876579854137857580252648704047504700544934330384671643719263877892336187010044210329133906733166773799775157250481086468274506092065180970305712789617714278402693837514118116842610482256048398697980078761847875299250364233671282421268172941800570383770614014049467523563277554482964423522422029781782994713390085886183186820186081264096509755146945353957973987798986777636555944015339961322951394695369912059247630800334926391960623846489969293954807602014931744929231892700217696132778084641720769975127898812059592400911473939473052010702117658078146669368806854914156122043490639112818523977197696997674800447637187475137103730067735964559712863766020869560415591959389431186307332229068368161955261151372476006700830026816943534603033404798449129730507184662583108896619854633371974522254260338934195287754117795218357310422553102852809888008823313389163034972113387026957937852264773476258595506425790250230431397960144208802669719425812567273623959661297234260292971812797997349917017591529268884410893080631106980975498868933647422063133465272087654474408476661495264095202017092900369678279101888600708043247683114572180777957614601884881472722062444037320754591497852200545401970147591926129149590734153780329198767656541476261614515419861209573381019654107484957904977678618800385898987014975107732732679949786148847846532079367442251465916174416371495754898121795079483638597896843546676213537096489014493383655197149798126101499476201321365220430400280716774768470938436804814589662759856601047024804957972421864071505429039325921625701858264880213706582128029572783180316048616897184461079797983915866262187495732006428461406472393865608978505596285916376903920278771954729075204962867429598184862561298946829138463514167149162649755498246958063684381339431758123958088800338528727681331115524653046309264474742482232294816798809117483646435115839206335117641075412201416383946614739154588304893185129672147480485434890824619325180584726163858405339749807322789399942792706116436172433368042120448974817941325439252235707013098838632486216082195385266350638995742958889276977737158057678947119432619440680732918361246505674291192797036929258760168408300302054600482017402648788641236681645808101344368329575477906965689325554974064397273350032151199597060844547298132041001343957913654988697773466676739534487484517644660575612751383044496447442320172160847961863009013025204143089259295924402958765911139434732266328279805704018890798424697482898706477757248671062982350022516043699600220862589643439225392233136039490408162705061023579330781927690285814386343294471711362027240491906706812764785098629217824527065182691052187404043097167569652094492452607690798086933402938275362685613028894261534177928189194363351322480690979391135392877966644747453853525192019657395164081591506468734051650075879105507474356149112487942855528420009039344934562783687492614034920539858218074594871467009568903250632068040589429314879325587375954524868510443747137056213627885530645981138903163705846121430161649382054374010848585632727183747958123314721553490089043850439760686777438854818736848116409509723706935836076081422176830846017541811763011443138826477942431227335573767530213936441841035634590593868848259664454726813418088206980017505973689467576089042911197346577960745187250777971565078932246382724140933050512055470121369712884635201056672354557512643456503587594717497202030822121886407325225559116324396708892408870782672506060737832865771512178393925377223056544104032434039489329818393387718893841362953177737481500080846864239994958124148108303889632796615471863721936954791371109623863601312704723035276658014573263204963954827326371355269671804964909821241983817843909627294702284472614875880984654247306375749263963957399917365830471925434387351883194606931496129583221372833341030632059530760444173543576664602887752021021191604855302312640221824006515583071905124811663223746392638153620791520967207970858217865877526492902123965116334418350314957622747884521659939695721714041095666443618175761512050563948692632411188321924461442686677670009721773985812770840394995405986791735435529327938302353391181998709554759589948266950125474267003762193543170728829111897943046653860272168627738322095801224767851814975314470696844641155313536750443239193097789760001634509333024210145682733800053239182174572734952882175728490343464304989667819950890660441859431690315467369539837022388238969607598983832333385027216882637036062784310777698526118035697400464726400081872619600132597648576979163148441917991065058889760120809619781474678576980753823056530036168004195106923531870535752789266374606660010821165268797219883823377821711681237678430772687114754621138833721683696322016861588654822893307626699255885966816033354890369141539927677680179656452182469577497681641584477302461510724789793915119751543766702435140450637338564902069314067088129770329792070821009922139837568651741000120468972881124324412274148891929721083742609933428555356124787808677967345933042613530075772168453894662929600223944115948590545999839305830013126663435227738579794819552090205790189631874401502135814080540866772536221565710381025291845555981705056026492736206647867596719478779185180074357024969228687427091259765579622125741645408502001109751864272879263666190125794641601949650662210701483690545561518673433079735839775750042322218198492180607022829585758452676638740585017660888298953743566659903347758130901703259303548269973973256102756039836822364973264976350325414164000788704892616052705912539744607862608466941635119730016622271551462783372496504689123877400120692624109296113196786838262395800773520148128475500349403097255593743277215098072823862111601351915869313582737739579379305554428795342413242155710952194236242004101152463032869014993805736499143765533632387644037189512506976161204493986350769061013416453912450773222175771265703488385367623079309030231344878367898760019058313901230166648008269788610919207640442363781741841865402856955482975639951611033745253506862963501564579259091762880993603312770234541732013505186485756775864676397027091792876540325565850038135143683737782808177819677718077614717815362233081084409778713440928450108220725762160963020093748549550579156550132262792850486388830563202201200810985800993588702670082757626131135347004896017960321036115373989664513018492127428821846646013893911470221804265909120937596942068851285171217447621970994224985671893861162033045550463599530462166874474581972176030050614251556399134890092127992467348683369089068690830631291526346815757456671934173377487432677862151073045699435823539776693019204380587283814805854813468756397189024631092463954908282931272500497525353929020364216177780074313754217453425379701279457533258443807801205940754631999288981821797805417986550584788633227057515472388074747787329794618896396610801190801603067802778026069302819694038038507242034384844171746700801315237819780091362839956935894883717763010116184983604723264654327060736307430602386860373944413471510586962150358666077601009839118888663287597284480368624580885905925146877744204427545248384887562070965961833978646823513825713634742803333393276579222120131654252041685184690605369615091110916717555487873970651827548004593059034355349479408866353182462547186081158038577189916868378568382472997102218457058400185897288876772404422387766461460585261379804499772255479784876999067304891081070662522375683495122654989678678797882479239840364875442132633573228664807709252899167451571550825228015817201858033250569180511592778140012549500589881126041715819546412768667552094111010831432081962598908448715706226123934425130665776006327149642785325734606950154418469940338001288621837958070904781852830043409041173275598893800005719548748818306352726364040205792636697689677193163863837305771554584772362763090142613096051117814767898371267083352704479376062229409019791561332700557170807836566674792227297157608147147751137075861005816717732879576539348569380534808943071800984808650860766954763486712698679182462959554360540215079058722691628716953715665458905940918606036248322417597826360148369489489059319118503112650224145276350859441131026674703634773170989460983981255520452966727297262265535663073124198282017349306906940107276643639105812236958798958955744312481990444410587767626427577212199036355831674401708558977005141809019884631870892172870508263047839187665723648470660084715541741669907743408194774117719465280059436653566070247760262368052107167593475740738961253672258653924553974083533371102480747676914956075268235255903585220471363460045942201027698429888610779015186254301609862679091045634808201407334705126565803039227521416320030959823838617973213934794641143648273212730908962710886213586259864282685237963045937272734233617368251666084964638653465221839053729230027679124488828245219658028517360143340702229151129014669005614874367676241216907958388351688677503901680099671045161572910113702428708561477826406283755214319598404900907113001364786736541069453817882088937924477610840155472511116491265615575735624859516813876795308453856855164781266838462135132356086643015974304057045669105733099537174466179405494274955320440424783499272284788428730642707334278441778400555721065861752034082537170875740178827481328313122994668976249787309771409002023833722032668942692349932762663089377308100224199066435606869635364653229212312369153511970886395983531364972230949279668904802991091225228346161563576170641654282607498306232369484900540371287086683833185380535238620993133787260929822947527139469516514653584553113588655701008298026922167639103590989500805087552233018257607440447634669847657312259095543222773639755803360348900614247679431291848755653737042116367815897864272176884186953516113595125999358622831218775605790092509069845563050204646502360756634798156233227864522411471253739917860819055985466012511851531479998078736229960994409380713083568988531183478894139262496650168320202112537999914993510696472575415528424512403725456130352422475789707770637794670443923334612229841450929730520494313588592778165430883420246161050972970319921390811158180659535836859057420301760666260895180640116768141698493251313272871352914183774318370027503883817445586508482223338341322304842635956880832405050801190154361836073134760353482861975809902573759494650685962250245008914788044062446091148625480597626119544430920303200504129485870192987245217206814034800878116457108309185812655425792530750735906193151593655895093689384237572866462245662243469029908502278537811068878335908969261197654349501457028742307865238513609225694433123456334420621448847512992090577354667685390290143979551315198019799234296709385819445396974399240156815012824208953602243644919227719325016550501106506412712305035963492984196140350075149809590496817645895035065472745691522253006029431337223813288735745284122541548725590035455322629260370437638567376760899839493657981166095009840616378464076853355935107125102798899955623123810901394814611083322512662835812405174492614806563960947277572052767915074123966675202228128195778303764795965692647754282024953441479002714988204367251411248310290844739185192219562359703436383123209085246070495163426064368087625247819407049927832705746579448870872800855405514042178850524214941522721185703262006037675085132017949206399751344344049101329795881888600475470853498746032290936572912396390419225320986669159551227530284399462670411783712148073211118890870480143788672001406020386267520388818371229949155571774227709773489084770318403073238106720516639540345497518837500193685250799053248705196889127540121809900923063240725175256483103300459665074773906877381553062043817856686514275278039162355089816154906628785973115247036655651459888261674657514014024198828942273444935503600117877123889300832343182861932560112087584615515022716178749681834436837644582150239593672161880692984954331164258143279838562681909057646574574732502184831734262912591260814011249949020433735638996461027686879753150509569846329751606918365580009407967721443410872423945716271281567435902489388253650329606172334100302235403418791318105835131306839566242741947496726057626151260914870590601825770728052201066090410978370858863691488037127979673206277448847330821920660457477091826006096325766217750760713828649907529768073798005041181790670570111487511161048043553617506559275402983519742438134665854087398975442116468111929862588536016344472892904050187888440560838640133670754329000951650909305986763307825046668916942837909084149117746629138859912158507989687238889721369937156578378018423389507151115602118333100124026816103622422867096342922705415760293384815948456440661728875782674064333892960607031121685489280040124650938247154773922772535341753362529066602120837252138013002300244372789016221022988075999281380702302900545245523751515829127377159922395366578074076856378876227237342172239274387183464514975320250659978214742968729814037158389224516689638535623827627176514256488569519259328934113270625289188805391693966590973827534892919990985289096085076466426898001627661851606798027962911793898810268884158109848009858292415774166203461006990690612597412687807306288953262941629713482894661558323931660642602569963470576615737828532480084790589671120566889927416927440351137014848988148814995370441136174523854930993943284332331170159325219699324161065926773777185829491071176249364494583242855546761647924822246460410938291187913767549883063001653511589974862384988333688895171220703962270806968045749750487986140878437035083898028543484194375856808653080748723650288903199043561033011939951515180543551312017307476438472630334935244576639655168385579718097070716213564128248229602377198756359260673023931627273466776532026199456986575421865745803838028883225607780271767897396722675818662924036511654101526979862601830246423966429191387882858362396959055540484848727336006661641288848753455371848668439704689711141830007980290884363565759227238944700652159017656703633092300256290630691536525852120986723995174105818202797223397962814959807095695115308850988981977519692345172316698097685361427080491232942595836192237096885869864657174045559132077157708994106508381337176990970118378007388798539928964273851591328284395912870370109073223825582658633197050594257621530096608760544307595293089036432061492924186505884351320315652823997966414340365847093897174529134589066285103864504434448435299478968944579345361470972420258265373221506361992726963754838419335770472535774599182253517559700499083200321277448002069254899953987112326657318423702869457284901092736725681925281360498616131007786394545417143345488868193830822045670183877384294042004460557906610545153458806366108131977871726481932876619639775230562806754610949177429758191945378422718315304954745741103744990039240188151696152168850063502516844333278538203488062789872334395500443697760693575623604326681931191979710232953309543447934590864138233258022562399796157024966556964869992231418830364231806860237416780261864496900600392563339688160018690190862187644848715165879013008389875264665820315966052690130911268418836534813246384065959892146388305427366454456974412568100382359433412695955359364809073051164137890502560839967899699036120355095675470293837799470842598173664594361807861519771407631075254382768973538594266549162283634605740872343149773530191198640301310683809898030911919621826666612469985520229325330396616596155669411081391185811230334949538977322033245338350479965537556491995353130481443535121603474459845085569139769836455677482701350432255740197236519373431406701425541146008080405862669192809382122720006413908801329678203524355647399305154868321332157104584102517119766650941373512211399112105997598140462963971018464231626239712364303552388761770988603362193166671849803713134839713638049329185381819934029514400865526361054527320553496582699013385200664915736578333947026960131115129489858943792911110209490954941294297415501424202133256807100882948039407709866453110698361749773829575433556343148472407072653790244859285251982806758862442079298886219980962387207424456360432093866609081461566494706568933693520770179000332481056072338069530242062668204009881596439964078153740841629490104340447166607733432621784943128576492909154222898770930970176258660522952419966702502586062543243048214074919211463956966920612183325596073922962996801400094480812639440185231174114237039826422281807154855910296040736185699202345391493623077299735700841731609941477608421889857906858214181314524670264641871372675379782975731496078106954776864151516723258735085797242559883359514151451957694331442546350343630615474093911033302426250724222820907902359613970938268161286861836638378633240379157573823073417915260912779887079283755140774572294138446505850373924089954565263559078205672894215068437526346308236893702085120980853174780260719447213246667983128508535163740706240048006505100364538977457479161023237794021321462652244989495490433285159934541763297113823931852438047286036536132731570427352931333677545945186365518060659479262083216910793509205687399223099739377175253961989861614135314235643382393346214265140429238697348668903235986602611884985090501708376801891447931467872452724851999411179010407089328566884927784535938076146656583922968907514044891302613191070816821731261028244491080577040596399886955580190029854536315176248880480087769897026552681389220637952276820160109866983267583232634875453546317122187072730141589386936739475055794593166056987172558111969187968799463896984892785995353019893120984194733354920402469412720762357903874006665177130173414561657428402194596299979731946323802926112674241940013189101117726841919982545167669774557137923406170527401415711818054712059905340579654551977625712433881163483730899408951501070788141777250311121037663284137739320625312147900961662342788504018288825567246673446685499677663657836872495596257962404137094114535444847866294171844441491198328406206762883330532123716267181358416155030916098289321036058468812741586341508542972248177645882673199769016398796367814884975890562031714901937255325429377972665765981362935291337198770874061015232919584758359522259049377741823774719230187763358145268268759387700851450497843322921930821648338196779355882602441931026092733208585613927554848538195086076713307414104566125520041984132714761423943939082909900964001660628630403942041910831521121683574630355766874305581385703881813433922322417191907029193040329059535586694243801402706848498315258771061926969476253947479275448966167838120390819479984716710137902849897321703161857102149431167295318271258705203294043437642104260368655326170184889363095687652729690749414189011600381187080821603487980790816855962448021541279957670655254843257407776977219370542747472011424730122428517969947006177820906200731255005639063347512623430304699370516638303551854445892114367529069431756526253408872167068510800457064535583401226198856956309193204515803558243736081702625263774652223490446458013037758771053707243224559781140516296036723182467254347316377226453922862392022247022168863780899516116518160856140739794560952988794944723092901182067864802969665979319847280704101168317283522424080975512127743608204756479838601110825273299636053758691286764113382876885359516779452637024304994844716151268035629902104383283180311206246867069762182977027464208856708862639332725589063880129192721576816355358486805781480933307244584736446481837471064856694212405213702269695511768225712246696102228661630056193057326178523211028051461320584408802330270679356691348960880841212175908335463231950198073750910613590571931610507948080820366147169782928668472290381808948059745738601113283396998460888761437987260131719875664157420049479744244959634466984564185989264740110990890422230912886833530351241387587425865824463157789502391460715983727154047520120171351716458413749856644745601656875286349506994881169452739618024861690417253267523956248435548482837345319177863332904675442989722690527333836268666351376451051747171696443576410208571748207916172811654183472444069813436731044197741042758160096177634881633666867804680092286482981057500042161894001044643902691370745505079640472114671593592678347577684758822422100055178287418260966369026043732420869320362182154511569206315314818475449857082674479198510379592879950428380554847329059133067344451555308040018199066714936128212006268381076764724744430101056489286248747328777139301410698496539688351517658189363202611275141664871963464652334374035762851756817778580715412192539618017581698208081995848297780016497295338460901784427900818320987667378954139949920012360629356161886540266172373870145863774119086242486560985441717658697021828415991458145600970121327402581606731934278507274338111764735482035743904221059218090077593658255015709992561080738850901031179157158741754625515457088111613186555734961489586707787285953819297017685474485150760893886725687148687845935472603682254632989351658761437266531127510170751733128539555020404685344938313289540547496955884951174660594710951647472817444021736546166752232254544551646070722012316313168205764186573850596074837361884555772455710253867067207916920345605950363006824393477009236493614921633774365890754743705180664309530564670025664060152345573847679626325057760746426904110272552775936146764358436277970194462511456643654493173690519710167637761751797943073815614537916990763958953675483320796678713185302176110554837115066179332953343832040193583087788571554652599261566366068646070580727883556062810074776590217218888864044096576174210903274827312041079832972211181040351570008389355015350998364396401100615062891002459802921004141976212957888195872068393730915003426217145303781888352547500327109804885026922689303418349766010580639020654701316282116608348983834935187527441634524683344096065140880648934984779651908336016975930860291547213621127757204212016058977708180137016107471871677186683950504093730997888880648307358749966942301412341330290921758660431537847478016597148876958550606039094547102875365647447215596854326104426632127339385843339319971392049476045663946705490577887423426072011562602015096587286479827811556595223023253862102821587222429503310522821182414148337704615291219032506774421796793180849525646908760406086510583901824657792620538464677057312098513070026503227265491356236977987191527221226702981295324288130553248215233567539697429877164607198261436117391938965674326825364612569730228820267468377447656082955228350823852784845175047537688657589542665066866230792654996751106478648125462525435094013489100904655166531545040769769333759549034823988724593251455651750591988770696286863301985308966297217125980193026257363063428860327425227160620538537127880992423316841382151608978039614246248289135502347636391476474329503267783784006885981304893652649916736822725479034361569724207216777678878999933120356579091259200824127188245826070432114371705696985470920933760635097380732211839297692325227685534495697149475696313764773014858934162355481024767334275050990917445898534483425072383585467687347070584364606087102294969506101297442007907107141279617101618346164892861327816207483192011755210702966567080860159219621085271726829973334241138754170580982708332400265085780933854786108668271826514591325964279547252474069556907545894741202325007575125693378263302187883201570771327998802880210904815697735851214676414030702895322864134041636910574776233630243371342297315185022330621298061094678490071080978458468025075108345875952705767264121470591595566504684196181789085731262358933565936601257492494889387412159941726486052392160545089119698242526489502542586550101718459119193366231295870073081731045193365428198258619299378871524506801794491451904598622763960446670139624129621174402970701160839480988250747025790174387319655538847072513852782367264382258276111071539570777040244811879062951975305604013639905375495883823878673312155695367428148294682152701799893643876449465410346190779572974438076831311903847216092731250880614752492683718218730190967584548918549473495642787428971525008535601158528325714743818702153081648701643277398341852897025407597393437333189563581381013365683155514087731030463832378513447316417216340233491528186144257129520893660796868586709538620537287543626309569811677298738863255083012547435018714832418562207275812763207605612401857052319800149456493452156733719103284642629909224380747469668122895348487273207756423851509870453159521575887135498606146011823981543031610681899048472126204161445919078292409878287868113747742276467271365277359438549124539070936790261222874138019219074253784766580709523019026860008105644693366043009584451363229556963737119926622042538195312744735057647966889278472252591140915597632108544056304186238426423325466036094288681632896418271809262801726668136626023228955931053452633265338149486480042671983594663807285876491732032522743401857277446627711584592514667319181601048020450698033949690629169255620861052336012933297467293192463450023897694120526861247087864951374807068635015324061994213093481189343336323978417238495701188147424619005112700737501162938833587728444265071179160495650263722698619376112066924259700464657626375105308013989011337514368230801177507485996354155957743515967958047671780345746776993009320934629966686349639578381571530525305098972548394281912861438335631815989958594295177647961557501339996650602255773560737160992366932036054173494588413050911459471660670734591862422916522320716774920516999980776990756854890856370293453781866963080507310973432039755519020969980316979693862804730920080878838347552853479722524959919111596842822649675559139370679458599653764147752895777855218735069716080919109765482042814288838020849464704725493126984689904068148640181274379862777311529174426509931358419126982003242509461010832825896743961895711476126229534414463624100834412404838837702152925569632678724268449785377480708793598267334950360610677107495398283700201681068972678750725743566329654601497778314046910185349358573442240785620503741654245095468204810592713402778588127235907646423652899707423418063905242100113674006665491627396088371707650784641207815164965480042191773237485267827551608779175901143774734065180348501098090647084271546237685603672794146181696840154009252377461991304632881151892835685955276393114927052331196202408707372506896223881143196432911993121393644891258088254487821839508331735254443821833175067837344007849896636197725713399064897587737901807786039590310481216596666526926122487454646398636701818645983941068825378773383871317585623828688620032988441063823337055120809751841559809753966906655595289039761385648486263528859923566376445615353154633792655053931004703304030045851861133297137688871458735722652830962243242683352294018621212142577418918757877999304450676783986253463462523442547864231336564526932515188980154057040303717794972627928090676974650211859542313968226687059908114717625697432820112671819171053330948872831079595683653839704592691842766861493270378781563715614663031920263823321313707251270276227987822090548918849597751819316576339777446162384816119636840682837612191654890470942360950075907388072860114649882400201220052695390093039560205175390530710084607316482406168148873834301505499252280384824476500346398865387591571854142606112156895373607907203617395086676290947510540054821817941882527894029704221283531245269309907097215696591938311261465879265644482250828181795828471941389093466621218099949210445414930164534206934418630330188669673529305089396157835627730868549873887527213421101118572593084517578068963166927443910987188913954694136919150179707710613692634861913724280112204109476066331691380069553951532416689618523451406277351137697926445878948820092224178558411758684628417185984748351475910943648430156360026888574088268338104377019781674108632964845983274353898698907066653399626251699757439196225488556824431691335683341628864843355887995557123878537421908938967434225300782179446263765245051734009670427974932219996215047235836851163211326895014121940143919286585309187983662000559644423301690314411273790537538874019291614391561103737117241908985027853150948589781911881881324059512298102881674413540561514616801386443638485802376156452500796724292220599233715224820919361530240561814395921261204723463532628759228467055350975069775786726769224974690847110068940222203630393546932246099322552548271675931257835938624644562365471464767857923012856707707602937869589786584708917057464764695065913042886522584241577917907664875388085839063594165034795835360452676909125509920796319128509147035856655736640857838913685827633465303640717138699638068664045474806572475656811942566771720718086243448187343702767382915976932814615258971360413579568948330117202779994987029457334799960353598463040243592420681788862292339956268465984613121798732489775486306457075484705254073206769585311705878995397225995696089383671561772846553370368821398854605510469733259090012664165323986786190445933687587578881375066902309061618896851215940786345509599452150848036654754639061331792895064197400431859751916523557330309576477666975144333278273341612818624338871255871838265231239317238485857653928576816599347163872365083702421970612885292209392939774141749666126060016786256662957807494051478366880628724655663139876811764732897525962852787926380607974541281100871096992331539426487404122981034265624939690751882468180755906904294476972458744725992564961007248947776881368670406257034142455410830415497065908034721900433631509544189731708736032904673900740070272669374308615062027745569565602198905820633268469430831985353204656433287928981843914583829339506069134473200566923096861403604509869623160468580811398646112135304206670840072823589041614957845334268660993983363229520886455753473662660874630040598272288665571348313124132873373791440434173432245355198659877214358309325817593917225119763196596432872046416781179518701654803021033806549146901659620242154818605117067380639256136491967444641634107357235401407464733170851643174430975042142349444888414416434237929734940056112058134801416586182166188466343601749467217441019858248803491824605263393673719475914816336500241949577082478381381401085302813985794954195247516290524812869350333701743945349176260881570291253609245754508551344802402592589813273864203767430230983352426154231768177260949450658637238535183842409732949660777027513174850137908296039589698823678411553407060598407909525318675708459512632234431486115177254402139939834848541857374924903922473915035832461754973073657056519694445899056863518412235622565418854900490495227405270822923505293710317361923899789277164464106470051666805367346508770102685272710488043118825994842083156225849450503353769271965984813196463120255455296194808442306599643450110970087603379024199457315084938583398969384928159597960443402808796025831440136740081712306192135779525508524714976015855025796786293094186009246526769495553017961300178139259385580208426208703337614339281081404991585117374313946310686912636205477006232583978630163771269662826196543255779333266171572553288921938877747719824380224273937892145106038371264947493860627473571965958440779221671532574789487670603124910371752421227622547911119972060383096176463251114126424887146197377746148580700106000217413017465949155960216391446010813586601733649742321199799443279000611724682229427028700908654942152136578071198120028270433820177290332641441414194174297521388747870084040234778574488158272674544702072068490687699067926576112732113961081778420923162466665105300356168958277284737217517272339437491093781813909547896613943180428405294289821466211874432559894974170347824418686734230394551702433880437234204726485604387374060075317643713648696683091785910660895583479187015048261442194822103451975297299552494248570190690736944935800848487554617057714747200742123167594690942742661278775723385774848552877514023154732596742543469028435639180885978950339526737910027446347693311296467693282935009712032498637741364661698527904087448472593620731105548106289424804032466659672293329307042962840637658682966484423353435842345815408000679612270568101943279368410176857087817550468055458636557590375775567974457851856493850120047435792623021377558897853737836000584315659149744984487101580138752293753582636386743096290753242123444005162602677532319043060756433203739273119186359464154994664033461502952702090588266766349886980226304239524312821959527141153134501823987976441613604996147670416351105542567230463605236395691881544678777971069062418078319511665497407682241501826010111671074315792929486168431305584797304340865672994286200072015027984705002306680086640677311960609344042374369952456532390878339253348949316784463071172145235658765463598291812768988980132269688514030487802002742912892426296013002054282733144594600924163144233560766543471613501359806267459116524139538217438680855850179152382714390623758648021172050736326162602911274066012091761883166715923774768844192345421900158849467065714544785319799772421937526117294359083823782808751166861243955107220596401999039881939663717709572132641262685556990654641221160806425919524911762247708369950006540269694441644194421688963342199467370657566077463439806502260636304600177456677777763856466480360912957999674373374431284319428825725786269375869690678568773409078513022012186535913264933615904211809847273158813144316760146282016484273932856590231849259995953867444221815553597029761727194961321692271029411193028128673086784566453361347090115294930675762620070186042011616529866613077116136252723130598263511310780147254490040855290526006620458808092430670387471784100488934255690452133205985708957900735321320144971994881237693319906579996926914794451465786904433934329750679877374953364768711333134139880268973533871585593744325721321239632757847347451786629004473339309128757334076686533388903203306007825643865483682226027731850791561212976233021790406975196733875605541059872397249807836673477564234239085828031213159979898354746989432260312553227190004041912776603612164395077853707412557507708358108178422185087274311427643466874194482447863659867019213460416777059704257211303851983022921117916363516637117653654259396779920891320067397065553071258117011183523200134315882361748848421526578025411840082454936053358781224078532875315561824982163135562321959545561130326702835759937766240622636779728678047777804745708759637964589848249633881771197328380157716499262279138106203133715717372750891705035074470027220534216985044899708302099588063995746045179185079102951289988858935675438559048808343948076183146294588727380647815955365704739490254175418983519259345079694769032163811524623958075028502334309271374614143530143136188653420051600155203929571494152816404710069772356288597006634662855214353449085357185440928052958032701100955746825242023075555252584623480845110805377882677712426481500088856766462208895769950897604366540101626262415890773761660916075252330893917162825443247350283029354127725119392025362173952871087891694009160439156594745754172822298406240152945226858475990199623194794418422715658295146425407311945623247672598159070204419330753975360878669724933314408095793856816972386190961356489534605955498290794598581213825308600322957155257582826878833830211476258941053797297428063854603784512232443183768618937688584037910041715765359139655424032203450202235598226459521376895574810297589024050819929825371510400747192821497507243755702240939088345574937864687173854978218493709668176287903392472036399492710069812386823276783024059517860597805355538155250629030093136993887844839412045653382547979691112361220944670361431201596242565159069067395110818570757401908146330575253192252155467064081217547572140800243179150809574492663794295086837073438213360173304210047823248555762924913483114349822578386915841125656665675642298197272740449274445827125340639541031315069577621467449800505173711929257138050914357146304261095068180434798692115771264642338080905117266077705495199659764388717552879884286310049258453031387581535577327594043895579164564140397400277381388673422048603794664552948605445420012912553138933204611665283389955661275083802453876550968320141838804900601858426359720324302984491209290788431073423779204199255653939886297477386714591021280692825921209820145853718985829499553388286886893623571469823705183975962716214354544414224270855243008953039380347249168802405357676465193876101268394849274634274569808363139033329065450465608921335576769599933259297128767960938882477074473891803605927914957228087127519213333691094211550807678153277856055786333665393668130421619570688927150682218664643739459221023125307588084343429276825968942956695822585465047055640915091439156022382930365719617993804278740891395232993958126975255516966906708372754246940903030455150818236793589343305094173528936234246008636890213903911484894605512914653051767709714612836987903952232737559252103464826682705430594665930088004103675762907201703270504429283954817445616826471263045254900154012103078897790092551850058911262324692929197210980198530095682975293454868110891624293630882692819123428651857936752205489918896892029750224119539990351910823228038133603156442901149076025105786714775259705996430447613527547572567514448441951772259565162856837931101162415196702219613574703114687943165428438652772427903711175210130114022114049845191819240508713425968443861673552167381733116593747674583047972654731973131586429616538174561288024762771921623159587351792898817693148613275675448019786235797273073816317352504529829808598367250825520702667656579557198414153980128781317118137282001864618372912205965051065162883419916819009387880684372267451775812255948187765178983229601218979683045034860270241053253787560184913049241726178372033128815679034385551939367188999604021687471704980945163471870820884585201158197775290778887214160663329692686067735165087592380266241082461230625636220369951158610427336895058098262665971611206969822152411161972326716691869412084057203982496542613121253484146019110734405067661163706265152976354403191142965878344541995356407557648531688776569313419062280253944509872433709746458682084490846237471000402735303856851743762544439146664295768971994979600918112552388400703608230327344476646169982587961017425207053236839683321727112378424026910018403749743297821799808798443374371807952782063226500534258356167505202228668062984925818149417540733547133624906358070274536327840292366502164196108398571529712222090348601980835220677463477108374075172555291803673502759393079316784083914291156013274264163504986126284176976512855968775466221259724734680571952465795934554197154985749085857046643258512029145005462591270962186870264110694579035839869752245439832118327795452069212505665890980662675405164430390793404845249087312021677811233353032971544619377940387977975727426913661093373463666964864426209260471000579958088428552481081950320974950733946089321929657631662640635810552397498695386012590074218667144279589298601621286100906101217553694599829638758403702639091023510415268404109312893737106439896899948168145502363628701164536373189766934205027936190548228194976454026317965953928470950005813866377459356197054938015254681648766561808312826834483178370308371184000713650994294288125728423312207775467185933697373800955424047861224610139024406165771098787915838117513881471459276257531759798613110822101235809762207227083384340189350515975646118876788902640457381742377211692447498098620132808729417770426093635037526798970130857334267706174950208508034416176522936503416452580359289661876649218336498143387119725223629106719227824670253970883215440223619419405845644837871417541780658734113558460463685706889932681728395774480955209914619815812789406721325707748553104756701461061162601381625640941145651125717305745748365952272488479319190334058038464721022979051155738020595334171049707071054050415211834259170925710427105613773135967981459675923488449115200027597540215474128396304482897326176446588142202059816625985542966767694237087158786867203390818942224329256780481160167111766808878433736797397569755970865485096227582211025301595036395129648142391293313017542349650101389230899631207557355642531358534268238730126301867808216713935747638311860377999539892502000800639329608073982833035794072553792937845310883934154991787338040982538706293870722020504010725270870041962997837397400649570202303297405034088911017469723958594326340484896281612135124670628746139632850017682923174138570459831194526878463396191405089536870347637713631371933112936231267297839935282930206357502700329882488383532778890182080760015571743340795369578869854810310498634448891879507625525698771736885853979095695818124642187568542465297479132438270171537402862392571255626822277843848105410287649312280989749365787173154393541312233730134730921559239432183682426759159624549506108857643372815009528048084806214766824217060481406561766464839270438733581565147561851925338953111850732722488240316812227241438953903325835723336019385048386980382915051946356534293699467050373851990921761223303351912377876849380018999140692868338239412809644945245843020327925886428901023138937858256649494054157548972297425566124051278569196355285519108013832961177475119837106025965021162262770346673012194489700550712182627358058680408880379644942591873604473742929971808280399019291988531197534813742241330619701152202594635262653770375583669898781419727875922014317317801282021557290813693477922256385373193768800346181543946464587863955551417514996629796280442485337665005142456695886095118146942319189029718950863450763602303065851367824096336383551749234268497960344499313123435119437918560087428463070992058267646461983252414460658996657499464602753602273918657905038217236733051600108009281964742333426591591980226436961253375303892806665486372016742830117692991855459080832381639133039828043949445506226996086258572220394872671230551825501347137329468631164419987894729413571194538158393244419865801230538932309741374704106316708086888953666192987358631310089104948515057717428346370353400087980330478564841626289645230513304780668783711649554173549377147135536764514857659556298172778772758436959964211756297026544202908193257013501494230798414582158252698384669628914825479206889030816528020959856885915224956470259415968891748481213909818526502658768387778815604570723317995583877609415489365125703531226294162812583771985857984601612378468872644137472625268785403398621208632365387287677061919852163963286010354895903997838462831886802829831112301574802816649741139612487510023519765048494459742185661247764804554919957819403710726572846878117481679790113333760992241210359574390565887397167754653624849742058873421437987369628403704814064796850771990277647622472958263592673534767729513899900993146061744571293738791582554260418861336239760290532763715404055237379517755279422063707140434402175395228328623156890928424739142153103950514754467158066849809506988735660680636547225443892238001935324787894703819725438424699063362425706847914516760769136541777918888947697143904399605064135644358219428456296710832897821363768862939847772680446530774405346653712956576536095614800390967338730435485180529747579135265069160730026684386327104234534455681339171418671427674677773518189851047522889174155921420082011781140025509888547738425242298541510629863861502362566237055181245255854360859414011897087572424620120290520509470607871933236493341890547795723706097998589965153215507686657749693703608418173908134218159345266578487236124583410683230950535698122841672501073118121534044334652543380142081059768808713706741088244111342390047876251641371840837299014659062168258100320590203813519342270438991968980670885384832488735152323748442968667311401825085662387262820481359654807819275693276285207071421570112366256740747484464030162734590567270067231725746456721476682881695305543393747663146712977914317678411403148899157331790962603106480106186654406121650587174048128764913635085029382038333561098440527847379471114230367986198819965452707383584700058783907625180245759169058560646739269911309434101873825748717188129183220777765048884895642165877828273172443749358637479998033400898334868558643504379745017978942700022597960546850414518420000186320633784769404536850318892616008534263567185316962952817547833487335774016268783117605216002976551606793760639250336827079664583212934921145163885958726123211466529434049310527618454943639501970623956333877657144813690063292043176665617217281217991001852578289969475346628620930625997549466095609878665534463648569674883143735623932416560474204868419607060049096980753890132980098770649933812026753260284084435546918585321822245027569433763581229944787144695317540372909671457485369500599419320756568664490602101485863878607351703163195641419025267407350665484822570621979834751811901139186334366332347688807453876326029057655424995145276557671275129674687163187945960453674699231731695187707590573935503380148068555058140775997173949358430936746000824516127204311379442067148105978510258881881675819469976957277249138151600756982209174930093921674924960519802350683781480940241893393457323196559836930650470395948368289748344110713867486069779212807040723517481815505834561009203909858454779946237997843461172852552734748524963844812723884255013421289730030638803278605005977669358279595280298921113761538728781304300585519715491409413317501644011339676106188697769480199207825130968566886293925218402728920393808814855309666604876249405816884141638987914783539913392875889220478181788794569343184133481966664432894607176969184019392926760326590980279951065183861627351592783951625111544673151743567104009967336011920214571829422379917112015505510588865024676451072642521050773033349260739528508867500500399809485294403212934368955032902264034683977811790622614753190935206234376953513024172338052856188465574797261887589134347510573925962378309029439282265995973269967355817550669168908836393215129545937993119161045800335599801437755813389088334091995448042983376614691630231627461158030095346649071553278429681580775147986875517998223249534137291067778914958700913393595114522209979020341555667526127909692364845937137392750940544523863375507438328800903273733641822227100396610590791611998814991681240304604207203901710640042376129075943191970504090785227916966200492161658464431089891533935199136233880508187527615870824549188192061112306023237414174201106419617767676729976644731835126117950433311989414861650457976586263371962085733530577165863411325071074758409611273524179852083818033000624331577595889172608038106262696454160391261091601427816041350595655650064783639309715665040528989869116865467332813421104009981171709728893798121505138919474096033496725054177323290192801782216244761949121171177918218593222773877917550257121140279471244923416457289066019564014630472305538805236236933102657294082396604609457741455540089143986845117455125422236906491906445224061398117710474317137459065885679916108396100626128012195683562057501056334729478864139571031485312407628049179969329848673296552113962073737007334607588863667603627772553403842810458045975857849016527045756307355295669152283923774095326994398995347059885701729523404866082768343444966387072236815270227582306272057409505755024364323009144489554568962248762264278532508472296575396579755846020401670049470949509836782467294450720459612314109544492675962295775809119514836351133769272464761355142465117116684086096571233978050812844647655757876894607632550195630460008923456588590802902976137008139818352507024582944164416989913757936633697366741593341944267504513111125348299997565502328868659853520300323613660079115344218403255760667436557238097115913099433412939832726450468649501172330668956053307263188531420457366067996797776829735372592555879276909173147762933117105967853561660749137788814456172351017734755710470909736235220860704728556017803723414201530876533995213900152228951798321580411070626325131598468422744434182863216889352230240851459067773702543459679670466039318720144013311671797791542279038562031115739630775053205136564594497160556850057804461001254978967872110455531814164539247458184020254404547622862941977466225786268361891269744624568565574957959568786652731818718041050423585253855920183324933168864868277124217906543156615126775188438954668316937576896805188886247952023869175941029485825097092092543810849788466973455480052331051621805578215441810298880486691749569859924192538622330376168633113338593498265620607087418190261445580776087332524918837458625951536070904133592747426033567156805003319694052403738657499897189483295862931884398303794217237401178209917257207245763196821425265210398283268100656386287126805557612518838742562083117916786261374296416783488548898298422530079708441411870683963703440530767283990274036908532890959827356250114293166894126184469907029075865985896549384580230348409999242547761776608575798810405906827529656188450499515081046850550047660242064825720500499984562196365265047976669049388754576977296536228298867800218634020581815724739754121443767542053816512530922682063627029670466092939797983305536377077731830669712934573315651273198635652967852891418099383534553752201466972622166044990946425745373346707590301537265831814651253050290513118422619559609450495388698423222826736543786266888912243573741826298623911175268541886169537999596178992865199515224048487671629277533357629494630515038076754493560498355144541478240085822325720392056672790181925889540515696313787208783026668580360053227728557001912834445482094594014535493100460388882521910669236261951792941530170196180095777344533484537574734906726103301193613956091864454297225446686826853100462491494992968863288004565019600279242163488019340781591175503252301361320434348278750710471076621142630575486492006524740781559322973659285116939355339399610622450186039748344152488359363509725283896787474193491051863986102779604055130931415456648943022439561535576422869563278192056038306297813420008626892096910958532294429624439894318622604259462821075107483828821094451529810023471353173455334690127064528266571067405183000634848689811889459501229900009113180426573713904093559860911858346287098763534941742331660916573803060520179478055836270959016960328514665548571389378556196497003556779227728121746285859292508446576284486332646980781412055882023130275678117723334621094938886793524894483922408063808064395149299196594488940382039899702870604549998931032634692584387210623914364196650740982077944936286170031627506737284496739168720524507081166656076023199058659797370348505829387898943395510844248821839434375045751536281736792307407273049041734661638191573594118293025216375558068359442052510487186641099017168954238569322267592923973805642030565346374701788598329810761985990135830640582555255142162740442911524309112139878730156346057210250818818076158884237599108765609353014893909899979337417397633928859921377383100374898219505080854157649750840857231599284813626869309555643527348943592886399224628998598588019166749453213000504647427810514551303629697278106205930920512498146080164806542419685271046709642777814791016629676951314358922463942620388197411433353089047550938040071337022342567119985765098383614755364868712742953083911852969280960820042151598465945171877437148597770259799410357523595217543152972349281588716219332504588518665097160830110968109871455333175907138654624950780054537836169308349990954790742516699356878081292386993059118796372923667389892290872752885270156937327171264060565664168715479277239171564108544120488305815153395635587261415967707921792643360635542834927630661643084215705867865036349318534284494311124427635788630010745601192865067208646048640417146252741018350034751530539480700421294728095196847446068300417047163538544047949137275628964622697724566039617667174238533744709759730368189110532796264766092732174333217375212590225283590729326596976720065969822526630566315205661583235068492150487771485985562702852114110528435054350896503788369764216075309825978966154803161821112420607733623769801879394827908420465715277655713025260564080315583843044346853274263072241107165205604948141138145072819805397332098071837090276179792511749822164393044562198353010909115501805592957355741068060193506750111572279248471615051108754013834015077820760981525538692751984232211899577044154187159422386232322769241762262128092631305764696644500478007527126468422589184352267776274012635523205343893391081656616985810824038562363099253960433155209788122184283777929109383024404287566653242413639096293520569941584731054734003339021997756364995370004110564040592175212947254731904748740993919926982089857489649973022203417541741389050526477130584804190018663418562188228450893280857195614277228898018781556803125144342555259324998879034939226625500798696580563859247698836883160363219341864821990547723053569708420635361345663611549957377205792626613088990170493215913641959979674198280000561618416888393761570404942535337742076804856107622675253282009053646328846560518860777993536989495322838465668622038419450328846988222813612456754893058265760856636425766383505453928558521252550330935722021877175290608295584084806596511013908045585991142794990919790739766035464660054733053047813723202252405963255420780825863719382160613332249455214721453823871786811139719828048391077786945232847373564658379162423231600080041550016911033734616321684292194534056949865574516575022453100567735942589852234214326590232274078834304092596592866930467529305098770221726762155803169030113905153727466982978087247000661645010862184876593188710148522042215147734597573026737091741983630632817516184407818581115343213929563867727413843308855870822604985293512788306451021775392188546782186321850081577056478663507819129388800849345747954877725509840963984369225272137047019306943850857293618698348870602345935947877625932277902719917783142739095571935408582269480658802383013884955557422810893470549908652435371037365169138484406189580697974491284860178795369752082959107221728330239134624589783880190803908795064639220390633278465804231031880724103068284583894975256928252205560846549043075236990057732532053019247318599830494403858239748002435429866128806690890867894215760821117711812281508626228523020764199575979459454690466217134117386049590230293235522955493909891290560435021808516876593705131793706986982813126639026007599521468950950301931108560580785644993178701227734126166418064182670162649825494771111998577746042845052600050182626693562212896494172032412135296071073114831858237902635568974039057070002611011936393934295705300445261599057304123704046928904773917395151673632485922537064240532158672650918262996164423231707743376477306874975998611399110207497858891771467496085073759164352011668000385263738376780919490146871656825572390143704089139099577164701019832669252992367616553738599572515631892210813897013907137082250079099417285469735060891071401269983500147804239954897616840204653650978806741037157499685964608297057924989193182603524463447375754082808910835274010762312148821176417397694341587304738442199972413207700633681359682610798520401737634020022324206603805340417646905367632121549307669777100050519191836196123192231459046336475399453615524681474508357670596535879680638198197427589238714679700871102972669868724955469899368013181399844942492274538911711472806897935373352261960180646798079481667443441324465813980969667055893305982401550978304235906020921610764218614570009906477544525383147318483343575994699386969846670671849743295790351319721286513465484632533379737704894791659060567493498855833516485706297215975613243739668280470882873916709533372331256067491653327969819813170174190135535148569816471148647821768737074571389261514055914942931066798942161050739198069941093358314156383383667861767394208084555377296850404945320478796430629390369495210052742953893928316757404073817948909662737896438162068874803266579233846160253313370138684730708414188839039746159200125224969339467140111566483736008165744006781291532058569026875201202398933054321748849162345002057694118195220910085424476765774450730073946300516111901050667606447624160722299557315404377027047960103374434171881899551080450366865666214028255506683887212455832802703211495815019870292661231177156316804778899779824032637797066652243603807325505900003063377495515479254302987089706652969319292555951992954877146010386226353948906080258092688364517163735687394191336831161515344482266566987237830153230606805433911201354982448738408815809968521669023060666372217976426905645841313287819075755318602021921969927021564666429219076767348367368231184790536353050792756833649822603060811284029913220784847475458163096086259145181707053787963959622879366929210210701990935786780083997616120191297895018171496169375424109350436767563770094861472275091600432096953372757057771828997123838483961090340785999880850452501301877693216671563127604485895838555068072176760020443268389957867648816543545855013003075658509834396893428747556910248068085795256881723962229986659820638843660713464356771630916640927993004536664431694721350425711631791490945770936478008575823907515785186654716825256754801190077352397002525719746048367302110980919527552836284698245727659424566251401968750398496825164425178344810889430309781977844762311392623625388250564304464409796039331629147793270509851791912357595333557433898138743160365561453973006117806136870125191935530750049373990146872225094318726915948765023431732319600017204667478575938174402415498376063037705660369477491553003891212725442267359098222350141735811723640567491494455985743929870450465342171994574616817874154698676449839511337988222285630062553091317038499786946009630803098160434998999573565319908604241917347199031325501628552167220346815155293654417458050311688540669042708419557240479986621477829751834350909328564806772195524102823128026171831413108449025606933216067745922545058307590953188326285323399893782280839533262590283437072841991649367748019268305152423872499534673496309762945848555507610896757653505201466357435281032955503106958457885887310555449502501793887723842702784626958862937142630636167644380933965485740430722679227490366598684179511462863140974798969782232505093012558368515854299188309719099404588854358528974574221759955729273543170947026160061926826826980183701843180165873656008489631221562952154964353161751769666064557933013592241613760057069479134895465218526110338900400547234843789947565646436323059515791745247961315195841691443449454747825491190556034227835728481958313547265256635958809007950964735453427609454257395705154158723629324616392576958408044160047665283508496700986624353308201217799955622598937004852520534677564204878293510355937837388779046140738286099279759772680490423426921083637968925380651354363358042143351360425101630340472181125292856684634606539240022865575838599723918218016822719963365811335683603802128723392501366240743451710532858358099946798830703350521526862845732200245894391238946637840471687949528818653426883413445739947600059371369696461644854883223910486329941839956138179247413667177603972386904002405417419352164700380327730936073042809092516551382155357932382092329095405398603833146586373378261667571971752139118788787469571368351629518601043115903334929206922724068516457282617900854016318361312680827549220524720679403409793255877942928943799936373221961070595454685038119755631058831264365945621711924743620474278794166400759430767658474537381629466324130968398290082382079467721115772908615758035004901497940163892904343743107775305003004673907435183310522655792625840108895825611431658267231029387096639354776921697313798416418859214046115076190007417447198188105299487819544521275951370663206502457325405148632059859281191947306775162123236836182328782484322908395321447466460432401647735796682283454635254225252608413085398541860929301869251860962137772301679060312379577214106500856408228082925951271629688232858005167772366242128036861718828634735215545447120686109890972035480763182296249001405915976651354300882594934833247735727898544368513538307106572335039972292248790052376462514124749783138810405393027172366274289651719469315084349383090103210601485842032896687634083124398370856083723261739113197796959424575861756619129118843042596814973684743682488179569811695811696839973009416837083121919245074415589003713420274922775005394432956257463622070749862446894541353822670393425996227961032911176040202886765147527605785082967712448491438433751382779428324524704121645769931696656986129161502799546844960127176576724416579173381838125494076875578128309761676361227270415381443016266857814019032670557194322191880759841693829217072689041669476035728036535331756280104379298032097118895396697117040474460139551714490943610875079081333957925534023764531464619760341886431915782961963563881505864223420408000716395011377950604831917392672618641591578692373008101211579314631805596084932737046841007773261992712255942396309992678435017075857425520837268397433925489775558371791654621880554982618995561802320798840946171316733588716809056643220488913728602969182065550666228164555549398558086899339119021967503562724393975942188056517147369239175897385598693895552344506648534393092922214199653862211395645114965498583518277218175450235101455472688373968941241803978266951206916551770784315120215371984926365240948955929282351946953868697007494087481881022283999070837961215766285432887747275753365618942218043304727298185154200198369449148471627508953652975041796247362023776035852758320333016619941257054111884284445195385099684415705241625038866214163482118704435361873677014285831237218349331536148262953608662007146205619586867347678069124866453133054280960905267450304619242689380904023169323633127495027455361897166288351898878541391657965794380936656808583097395513247562687008764978798906621869039939632036607770171969512797908061489746471690705806678990471196993227502628965505480192787970156931449330658079407179243667490543279613261266730769495297739673261822349205004484810801876782378973021734645098775206640100773401067350825750881391992345982061611791418560174525483761383638438342020151371175749879036329263485875397800935728450103609234141546917394181603532036047872413473461649090538780714438591109177269784153088514507821140294156194995386693870968841310110181543208401400864751646915085716875126730373008082305275571604524823571692442745898835878907014243365784068377756969388195522817461239318814186194802250145135231318054785993694458901875920472762751846960929692155426099226044277231224836486200307234775234784037111883221088583804125889071258407091370089332550806260877661754680154352427517443865375679859548404677796317001283920697151708143315362372391781440270324096475133436109099618102562128736269513869409759693222164764749350183151229682604425269917963024924166925646812176157576925700845327413608803063578963742840212629209158258244133167724374320296930604495467373378563290165590880890163775032480053121970860406374522962029964908768657052508670247158860844506509189563899113349626360929680554574063543593612724971740835251187932355875044297111820558065614655853741604624914463320187740679976596841089113711529795539204733220543590264552319107716953937590069074089993781932805201153319260467924960014783482078442197515403879538918643066246618268340294013635805467906968346939676951724505236993006025144609410853365098575557425169961938789783204651314856616841383810798486833813465847310762562972642708785779962653704206075031952261753332347171651443076914099233285007565249971971996225410075688896358160957142966253536017453444712908206473991544066967048809256406914054154895918524904453913667830802428291678178553593159010576635488015969710936702670374712184620286532376413966895362472055391318789605864957817335618159735927997863407039946778992632106846737062623399550949076438405623609603970969860795268956825054287614404560956150187700996411794588207710274840865849583906691937699829824520660904570144555481866406892650990750190348825701887626786931663054795082348455008036122761754918591807013556528268224305120188059165714688653014116885241770538772377420273211617558600885885326396294678661021475034167604441089448764022944309230889467861525221525859509965849079607750190177490484682269081795445548688183209945416734918142239951488047986554253828527013614775639024687750602171304376233853570553030629804550830423175282720986926410212508636208205783973487062076157988585867996455932413804153426451008318697315883625917222294304516406627930042470170145557552784786846958001388327538198248153957608862824485202939001008556327073236243512708274606385009289655708569950744827880969264081509722943461986190293659499134660762358476687291610506438307643848928561086438494667010321343658544707446935330460171023322834293230145237318173709244472818241828885416267030332643419985699063470468409347129569398173885839345733165131458103521502806509433154567634214675186065805938201582529985271313359250623789787752874494263987147933370152712672189190534745450151112121565215903141866106430913046184495680716391695294711836119637180729437063948416737628492497342559821104473067280649863683567835862147802396090859593831580646328696398660694586302366895780608901518589386294991239052382315450428497977326283182867734994787023201856996537254535992468743617762293564604882902406711699221887216226369333034687842238975776020623276329464095895424750776909149728630742588412976265657290765895710936437575521118160301262302611918535038698540070789327348513391850954971069220435086531941179240456885388196438710428559145362878756043806134675568263591873536508991223100741490158962303676979954005760682666695506084136831083003156143592173639570758107273773922720664866739409270415141797805961958047296994820825073900708181313328050812204110917148674995368730976785262378388410905628900208818807879517198886632164842427954594514197639136887049182912448194754228618093031240426783056892050304722092732751341133016356480395515374644268122882038857660735692320913623640076293549008974998968976089169637497427219213663579761452131045383934869644067178741037875068850380676331574268213400469121892034688831822593336354686343560464866698402747468731215410628585244589223526083831317362017240078896566207617107975581810044431866955468201158808488494229619600297373305024782513869075668445127952398689137204342791964773304771155687840307475194198563022179592379865156194534538345242733122322024137622321684310819091356403937668334675031677196440984805798762965512922290114740556724714757594310705292327166381575320594465250382821276624521753198436963298004989547762879170912830132740907892637802639768963298052595476618831486577049896721529168209861806581814204045503006262408183920426214951780766124288717243532733244888231464527043113015863430657644743115412373198137975196427193334822772510082629748230311914346545572833160791046224796683310144466612649103144074136111461340936896114693870451280545324997685511792275868973885444108575226173956535899375787321000703903309749182647108740929037814174542248728696560925229751400762627422871827277214541138217817394547513332616073593294614313276155392396913815879617923438616863663056495921409849508234700336965938429721669185702895588592481547586696123766714921507012492373129126314108448309648265862118771149593408598299862757367408285338289585809262306769701388630771005190152312537749834247674274309521479764416468064923535646601789914602644858815884561227772600567804379502378490218434004252511296769654152273679302872666868224435409662347923021889529720746876218788368508552153139817609015756002917093617471851867454328693055790952351897795438948143457052206519527209684837332859259733146447052411365319610352529276183031328141330355981654365258115420522192929193114108402587712183214131746422570892680589620089941781080073496090485031065620724742089476150313801933005269737104684776694409330986484540357569228567795504458129039604167113520284995826049084960955827855281298824811464196334162179507686339232964672074252167897860231163800692670182842786570054970003982050779307214121373210945083139810187229118619818955226587767757228913866772351132912136399080388873606796190965100529192020235156634766571304657437792166087283633080873092840513661711850815920899685228385479203958556940925885937364689605990023850046268517623976452281115101910774956729149868097950259714288675934001075953044416350367151839945978993507260249150911653441677153325977097291050422197638412204033344513464973441975717791178239345225852604708420567830419757890498596749120902884013103261435030196054051844645081039230401124902421351612307670849573666063178661019371961497228472799221163251433225832697778375702086790136057677049351733499093971263567982570431196867380713150220210269852743766676361981445926493805455018395892133759918982423498016010457249553261066769938388303617861675012100975815843757254811078746452373688430822175518218858362495191866440200135753452717102036144050317483670949146497602931207931123142555871811899239173119326509087497852086064945904820862619444864282642297882183985249605437650840095663047926804370947073711677552190754018568019282421317467211409684948226508995790581111412526067582977667327741701235654045960093884688805545134400555244192179959879004813919643735169015147653526983648871926800768919172530982789677312258089944099517851007731444069532498170791814505148251625604459411944589028390933560264931806667754787157229207943938748730493584996615588717700425828548035309582538554573137158676224077843686066274295547143167163905470628275069115417104415023270734067930669356596731423471578223714934619329561359249382249210717432333170265886586560837348003561681142956379188113059610537491474050309424429752370925238108446025086465156095286986737486660787804061853191122763055813430976611877627264669539231556454286758669704411688928444488267138456164602354867276094687558459430064665253545407021192780189965781920075776407592119061196914163062040325253600862605416104160110519077307928035487302974264816298256607197355349562635087997801793283773465445134831234051045739092062002227658022978095707305454326092332152505589526324408706953220128919111311638543910482347245206253981639896139245350206482609538453423596599311153914996558605924915815179029640641013968804264288781660625456590605770141564721219356274807252792513801754357362176877650312852098372378274194018544739176330423885252673920379656472176776564784868819149791163783650168825682815616442119670283622045259102579754296464048476955454458136442090351371674542091846639248999642796645720516190626008990988514134046521190466396046773707827276273170472128811439025462861441998834069539517473471577025731573277352863000615064070616981446086979984582101350217637417688118998931765232758242853347896021637077641745446622599006798605847413112167109846127782457851661967181491025942592729639014558536353782520119330642366545226982030983902036414464786290544962028226421004742597335294823611060800816349647135505910894664245900587984839427664967422151549677704504747057673173873450067798737789325128414468023135964455377379404233813989842403635841440813160734721268949928556330307410488781529938442015159090649091351794631955293332117874465626713705754785715996793151365243197176615103235964926911208844790163321922796249415990221904012318937852099665907356992058603255492534812108472830018400074146833315031245756997132161019979264302713953450504481708164738396020241888293321759792743773621085103345254475635841569663018156541390250269237131819371683756122778383125715085970477850216413784290787669864492630540035544227654842516810289834641069797541368195913387951847602437483599470884877922833079571479984673999849665686446965597260450173059314246087436970582956497129096178099317675895228482509430036499340719799225485964427533324483734002224947366327437303149584662174733230564557002406420712870023742035125653856887436853910509741992154820975897027603221252507790224662440027005052639455959471076298600931778915221780075584950950515535302484845121137227009590418006094435243335916669759804250055909813324418708739827950953845305055340258870453880576209432038985690807769298129216198627798337589844541110735067003225828395925608032903289806981740063055376274001692666757335462007994400696786047748857385058022385497971347888915944672417111579948561675490926205223034630587106038936375352250031122408865387447677572007792343544029246857003008521211509462050831622083400188954860445023618652072493253176407249368612727397373535962221028231311318125628069510186334912606220873365209820774279663756622006350395406343900670420937632616841687564341233307187348173523293811254149949275811240084138702802623767165387183755048881045970744484332383320954695716402039786249965982276948844078826799523109906703352258651884579158741834773811283799571539365881728076203473364504806728056370641101587310692752053684318954932760704166409538649904641100602002711784902174271465040939140360212449070240824015821024935743256962783416184585053705763126033535522896522926746739523633769970927315549271346131102236543417307272156285598589382465177767069012985736743789193310479690638359157882090001954249007107190792914827132136936993495180769590108136842124969042035160705267700499471130450935074733746216141533538887817264655365809845389166544609092036653806427223114417603553824886608134225324851839775670603256603551330450139828463233534735550138269357180658247214582153991523406160893340759222353044687456796594418989436617883813353553833726703494722605884410723802773608760016470474895817069144303320644494728721492223033074980126128398823059336873537641086838446759130285135345810608441056485466257877098141136481934816942323961066571483507206366575690391006935478458538516998263423641440415347270597570387345872937788400628669412990879232810177192777442710784275565674271196267189891800082888803369137760537687833188561873256747544662303722955619268516743655637484316593605105373665507232773559588869149892408893077392142537939716981527441207846141976670294220021885916801313001699499628712145616580947313732395462027443292851841765021493438460791182843916178794787056807264368686521681890295329414457618699005940757413001902625692397153316072329161277611103328500652046126661265708866406182819669439538904241318718795201332789676256088857607061308514532589965625113046875935069634675681616459718937385645773144655543557626390568688386650168733061059383917403605641498827894214771137003183313673422715704093420833832968988952918751387181042692428952123674840854414220961818762686177116485857438351406328859675406271203869402944932854618119826794667175738135241945639122764547258325251341013463784568229515226682792102634360373140871453438110940922257347599360371820630751967035295323255825416762477458476442164006550807744762963350759582577862919887847171672170700730276171745614700454578597795627910514554522217406580327886898762778519738263466740030973863316113827426221773943582089978137443860705572472918417371147459939837463583133510726375308681842156065525730978804698881254647996933718573024053905137803852289336795011939099960002387255174264401133619113544165178982162057823955757136137763776870180739815028798560896673565614054511102061486149542061499855584323602795116207215731840092239043136285655959805243530352053154043063857960961826303084192532631771432414003790549061625024207446858881440257241538958709324355758194547405819318329952919735714696617429601505585893515877202079893467319178520549945104568901693140297753678470107356127860231761774947834191854251023802666224270659586896548199312072543865822904831503296851850267717537662942052079327487373214583037259613825561227893917085803224475773865935993157964247572050909858791967414491496163750059143787904082156862935827936396305066756810654596241146747272284900404318486365450942054517548014672798292479880892616105251177847408430249140051132240631309320978291745946249450669568379909485189558721920218674210366910056810772389737252439446058178522882525148081519668797664445439278527315937201504463872865189338413924553549876280236920098298902603369765879568774558093801232016641575286814956372354733194546732786442599753984430901572356714976796014154666790519617968684424738311394753187905940811777118354743988537165026462832325865221933756786863987749984759121416514168120793208524186592152527093123757851436591660740334434701939984624567113296695153268679309334608409038001886006677956469644684751760005625619501657871780029819261206550325525765292061829990361907855947507038080967946130080723791162361622012937326819669533369166045232735294819409832935181649457100417425412088314872987361860971589319750160305241663861126629318120746557899334142968097990678113980454551150074321579414175853114709533802951890869766739200117796175336773978931646969264627917799756192367650456793476181104353753176538500611639749968667315832720426385333692000330073597748599662108976189189775153961202116572470282118790871621378228718231878209804804675380412276336974872348469993263890417981159579453439139463531970088955169490451669588643500599329839621202377608976765788211832858926550563317617057978672861866412394637197008603772747025651846097249435941129323065180244536507134190316718767069511352723094165622525775403365439775022056484243212099136514180285007004553259417607818130644517490657010679947122822583750101613599947630706603689435054005904308596209398427605493685758643483983529377255149869844834806201336144143977895673340370492596244570426626641774719863614455917542681838794413897247741548360204983660550830471869423472333229270874300031556204299990336352176424125641606049973235134188280944170441411411067086322510871476713937723302666090441830539334837489052137328006700803345124490112186658526785627407581926520602580739357075320752245673788118137628755471551457943290224000523553182347534001882277905228416871280748276686241735791188724238480775654975618202285365965843320881756515874646999142443190539137632999118414555296270354883392027988640005907453504677227838699631884834510436029386149970059170854020706690188048810018202433434155100199985060523271055933418339734610534028285138695898030097741134466574571720731336573335758071268188929328279162557487741251267941089912382872142458038399498321926255846901976333860110916366003375193689402927352291321889867356478885723588474705202054163984160436264687139721070741697797169164591482106481754090724369419213234664973458083564281946170025269090821033533417016662651382856092715004436149591533337478992016855169971459108847656071603072495247974974552530811202985749700870387723792925197638477862829946230752479337316199341488319177323566525223511331053278478963594907134592544100430441974614313431015929785494533835425175342243173878632296110686620503728243777537554255229174882609006554594270773493954635505843242042659672207113491790828995742780530888648923263695946347876501555305029172141519362554341389775969835717637483633720118888291958831257510678344684488181555748155762961335542065348283092683784625123580884654300983597726623307286921610538603951262086052953881828644895424183669825762529934429562749088791780290241509728527604046424342782021555000447256224182072781169860483350226888346172033553867740436500249402905937894107709799802802406455299819811075886436086035377565606150788308287747093674639440221548004473009940542310380332040533413423261093616541031063294900965260329285512208798223467405022074086445777101009796443104744490237676816486706665449883081961787547569746521953232970723308244861327812981866682729739897595743833271187290643519616388786686498641284383342778657992212811986153198838475326504060937331156049767710631596506016658180503703904158043606279123431051431912581709460503935615328222558212885528703471282896234107296760066661188380329301698145397698642420670708485062107446609335636560195230713501645588005620369113215057202648149402661719450729050419118775269114390821791510270687066376429771899826467113132701877485380690852386361844561527931900848725311417680997363086670450464434804084858126053314311615664045483355365029899890792786567093527051911422591734449479047874482226907225669473933129057416417516647221496197939019202373153817639124817785925466976002411410233318464457483483168743652087443203325173216100584516374901799884167403802402822891700532411987411587569695648382523350960805785812309600360158032289081317142131323100984402424272814079956190211534513427087170235873276965870720874271945186046828137006699306301205014892337513836012301840596101137036379882830147556141591326371217212476736224744936567894074438613674490288163322852009819087958064485253261800513137698703266621009466933695761286402756103801402207977796821766564867311803976405754337621495446955848086636658819798241273495163846163264082992069512370756878633568035558557296312624366721546714757400090572089946428616155054797781153265746963164469812423666114774516561170039389622899899483729234884940942250747853095434136833896626617707584280886984977591172651320565213662933030300702471487838493949994425840034996500222516630587760707397393505684949414804580823376899868543449429793597118525680181724735606886612845010012915594718653012951949358540195378246460812433805166231919161082289704382550926143237841452987883316010536154727551038950037987143583993575926217704767278107958885465086560186073404164304120644859455729627124897964409318797860259262220868739083765452255550598084512752867873653697809171822267490568688852222324825679622036553066640714349863000788103451058285277438645284176461288960170486637470892494546986074475976171489499734109895345868609828745158472071499017840852666906051088412508019111410734589742220049125980265921042884005169008938093846751176818397401791176163695029580962088526080940422690218027145334685855742756066556305038775857326078689838380858795646530290385439997141717917498076314210013724717988305408404380250485937813673573472498738084085099634253730180136719302400247379984252718482149032170473666163434212756566702760476220935971395198126930535627686646218212145390848691536584120213475437808907657617864220991775841601281046526377736999959545422954370523892096813657513606186981901802104352224592337405859477830918281845728744253564141356163629140445996210990277030106136451339500205301799012216578187166662222340493454762920712775800093273933578790993258715139613050812292935556598994657448511594882725563413983072482447924445225657406727200617122047707621708038967194589020241214629840149172218010751027791552729403528680186704490780313725748607711780219589590935623624124224416689191240782739908542670755874296507801888362943827378818858770233018890391108194590754392413212962666771695611156741663129758304991044935197435543335240164387226425643342954011819136917805302724191845287762814042105069984818325670905881452921930730204157636567224613850435025657311957441819514914889771865756183888184135962153406181764696729253544862475188356031542516957218593437582464241462686805713850257957446074738711696671637310859826389549809612825833092473957691773550415523504756139154981434014956350261954335151230051628362255648850635283474748691100050123120424171514479067207940732411274376850309723070772396072542695640947201180866474027817467037106960109857926496016136984640126861900895230279161380694589922832542994745807538559447687797675188319460970319134555774945530521122708552245592317013762333659396915482267990523905667720464267336275542050757764433904353039236757618729148420479048418668014318712173741794963484288659426649213859872319551916650316915434885184024935532963763561907961017281980370280315312401193899915445917940659749211689358692880271658637239128009056638173025019452369260939035236675635703290169549137712024801860121679289534988679006570514521437515044401791828330065598628304478489725632811582382239845921280896662986961638081417785198697301472226862607720578520862107240477277547202165961929869939956647971641772952796047560199667164421075356802528309721591038917767364421757396066393523557455527873673351796796206429655758150718448213679969100281280372611497138180926571724257738035024931380010524318139678026461425086281047100389249752176726869532326177829283686025718852290313703656183855575064174245634315544915490972402091414920582607700890170442022066466254426796341732454112300125568651105884277914157257086755549435613801020950608978643955459898238190826049268870313490577730664255811419466635839118248961759247966433368265780648430131094477103324695860882832040126364171665990662575315782981487798543160746278022682943999581049705955409948034191838027375266552452536298317417841945152483267148866153529863972298738497642578852517860595021107303387324872317970527957400978373215388086077270114128818203532637038227637900183630287184007736460291762216254783257741375741491229678071689376880338808180668984594644091175219307003828757629771838645089250434782141928615312001782781648349656617197964446911564840957355126487261351408483475426581491103915775454316734388093493759458447482743243441506204377597065908197936540837787225506983327243418597422772432408633576822676907459311748780622173268496430367475898204891544536894285151432002547421418217439188103255121642346141470964231485577274829817110542604117040116827999456168653009188356976808112922158694525524816474510864367327351898933253891820308323703268481774154401803236974281419516337459153190462313135369049870668139640585991293817294606312428871000331763330390127199257735935447688927889012749093717215768000040534019430657446366764468966105752641789225193817976403456346639070381371115924629192825918697196916569696585514971353868120321299356925329179507528356228720888936001382598311710736317429621886051125649104159024101248840043774240567141438194680319032769086712046243873148777584660713084689801539876067169806091589825466742478685563240813332738544451388343748439503617467317491812187959513573138527620796598661686693280159603322085879533430667713607148491867760158053936357984652277103458217869571944511083395393734033414488670824220579782358311427671055998689944903722304788438304452928091874328200749747002299871181327658401802850979813451268906715680332753883957398296833258629740043318158550056276745245824411277439081274422449057764924038234157204733166070449627685037768781786462327963362236916616075862643025400994888223447460292289967596147509568618567323503946196535643023780636275225192759946941524865800584991139161134760801605924445260309854268017015305497727993743184976958132034907055148970236074877487781755999887283213433941211387497606234033584024880819492989347987940159843934582169686639405944752610008278998807916126757076748196752275597543767665559861408872731324964374616656857268347359512572134786918775503321069245190404451731610093409580496241270845050906295607776728815249416316576701760926116169160807573429752896328719237277670059312307949642184810793831300162805260959174600210962099343650138968972746375010502048687345962319173294346244006139355712550854148566872489358713540324458542482294998361973903989780209319785972141276555055944407399053530358660019477791177472427039463793609168045148841063462910351416809873645844639855001668972319106431111702423740863689473103601283356216480592712595875464922606482840523456242897632918962204137878430517534923613835978818714327438930286870442391927516812013342293961659768018124358048677150368433565569573913888112273598158441280819687430212742482106235928470150511594189355311011575483582497916171770484201225518836084218327706085988225248220115335012282809857727534714505412994941407660917690950729701574555852036328003482469301608705956959609229520168730903755609501876109450110909354988693696347149934150669759961148032047036306438837491433042961781840131640497499194616839061636258636923233496240389094620664011588568853930376011325778635806065221636960133981907920228218632645594243206891185622541110562417304533347395825026953222451595349694057454749169654910040782470344443596587288632288940157816410613677579572163685733414440019547641900982534470537089437536428283123689567995336655950483903953344433425089854865967419748469838732011205396719823919743695616580941923578715577141452925509066722913183516939626649526880565901060910185648476384988187656618696567383295886620304405112312556451771283366877838762724286138966594199740654409223691687197808055350989322503720738928526662181778214941699264564615055511361326555779107528639364077880515986263107534951926144218128423827599111419382876471337633078610708190796764422150788849574074529977911336645084863795584719804786761875953534697519345785770766704487629505094239902071220535474949212005367351882818570698706914168818389219706081459375529444974400488452300600823705357224753632699211680390465144884837542002430445171551393065641424652331369773612969303172037576095199549236728795093598466551061350791026195279923212719234527299862825490524182459988474158249807096537423111490066065087049637344362644539048598920521165474240154209460267214949086396938643086866518924974037791887727330467691209427057601568679067392894391288271289601718242223024762129567505706367845824872106676407190517098628156384013455525891314558018545669372709088667581024611410637960712064251435906727118379209705927862667964398424298241766697893579028458240070482447578724866643631137543443777222658087775288860271003033863643942618394441591764084622367613547936257211504444212542487776656424540983691886923625675317945331748622396913121751811425123865249305031395402683104511738570239184594217108687277472856507866566604822779262026319192421459978702509834448908314322058297231270513256835510301248066245570334928611280641418600938712913556375932326652489647818936782493409595382837407433810676900452102430037964802748631714505114446493712985874854206357377139932212610337443361776974735162306250401963475868774002794802781559699268765596063213997608960139493338876467501728831543847482857703504209138283533306666207251991391505839613912753025579120888156480440329650435026804094889854690517546741794515992935294445550730530424896137985755650470217694433823985016492537632299241251922895279491613413581335112268904830894860521177359437551919472478740644630767169459862571424096539485951139943747405672703551126074124423901537350303801732526507111395762609391535247894692066998382708376000193656102402187788049204643529411712330805412748381054854028889335741818189495166598341581583941367989436971759866816495796297183523480728607466984389635275664115481663595065080054970235376259943304459791510108949978829626253431606563745662456824410337389549893970898612931613819107980554549415565735914750244308891648685506029639779803458736882047975165555258248201761443701240323100615152431487968763164611630421782635705258926568849102326016185946690568305650365780194518297427994081859993396682447174584876903086198031478423098960903063301465112513133613129489362858712012286739082728455722837971575606162037543635221152104032578533554425142450493897888860524207308530895274506495199230797120972350287781310971481114065673869771808589608633891699013594573947724137735723707423514796994287470941906562245408922050328530348818818541528043402562562298114455722162339849752274697941937052762730993239577363961729631689953210471233060771580251782724002266106488441016516230098948225305875741052086568519957393616336963951459120552224900749837063346862020478431736533400373798309084003308201573332681514898743019088954881871934519532522813854277629546215230228903607982192694188611375257938708316492921663439658698991245871129665569154762752948433072213315923706519275417147798148502238364785205176139451993413213615922773650041383413058092581028239573028511702419016410717482695769725136793026840046039842694251163665241867802334625391872708401379515861768931360796725435025899104423472278345396180993189604120382618109713097857781732111534077373776886950484886212528729305059676823417475012933809258050333990102310738234826897933448313033700283863303176227202207136654570111916810947425177450798671977568811540425068283493588210538074764827848069036272491862037585723337950359743046433073981682176394621402411081900656074107431958269672207217251898915202984471010614997092474575712761478450602564173525278633145131727498204585638181367966977021597018962416524498930767655078558875028330278561196603593548039332398576402497337613302927887357181554965158277398756928450927593884170171137972283771364168974893223083741986189392359788708963350448286124942333674457621524208202283421864955201362323971767834810609245760100813627573305129593787829645406405094185411467192958631714573286583580470925337312445325486771311974130873220531411973295389134263627827855304216024212447411366660187309834990809053509471977281294872325876702086813607293676897621206617390500305392485857174407412199616278364667346519162006151665786518276134092320528946444792747146779894659035545403190569137307821911078006553231898268358678290134817014586900249428868746972008509173825000420221785503425473775518108873892621990794034850798914192149851688899282821659982588595455762004572184198028282073533886223353958895440896733365408251874417063388096352488579033180504378984446008459635699841749558346634011277596799032160151254213060338489177313490768815507278890440875168046121288506470919355872216424673722881541242163464421019797415741486372188247991174606631496529653163823567414199178497001049650353755075942452372805706746810995115177344894260740180287531141574996672419911338488694338175000309145565516696949209153743086101820917842165329304991486897589672431095922355292676724003493799533099462958578555647191520063865226613689909603170303915177566648188309637459234911515354145607328404058318544290707633254912042900446670673751910115687205063576730182264756436564928869803588142335132711393549621187118527202868492679115377957107322166979881508613769600455689232733768925680659426519176279175756063124512632583869728611626545110070402833619071330939851858132581266618599459975578284237644355993545543981357325187988688141924807003449342518229792318558164547078164693804197922874190232774219079806518160035404672611906060844014170189478492039289985004732727358307310139062923013666188292027541425165714275511691063857312927606634390832986286773311755495255388369381907052414549446369179301870795308993530141609077875423784091169812975698931846038073620214355208663620960001845974509444308819499483992808038126614787081498610638932018668419262566680421911848780247723157675636278944043858707245716492468390938528354108336313433454165487582440544357080178403005544925906081132848172588399706018058475307237790937299085815835005676796382742476693443445521758532860316373837889786806575341490030247817897849595042153037227043494496260805126869828719648106676408429615034483360402230891700190871198577077844918875447672507122933810191660943200969021085087539411175640702269747552774537415213525299088174975355076546182258023256440607939993274563210988426870112736019826107467493273550628619493952512288724062422373251173279694118538251932117553110217865689884586837274323248633293193987398703365311170722603830380353591519811607618302049539802557181473216193878754454812132587511043949885186253246721606320306083779640788316844910303440544009214612100926994967980229738587059836331126723484947161418241207246701872784069743252963394076584855259066186970386784492814063782989797384609512146970679143391204812221888406315717133536684872343391620042311675475563665847340168583021760366276690898565571413670038539313078311601875884482641322478930301913514832056429263089100014431327294799711897702225930375644295490328657688148385664413891695644481678097035234800544392525321791232457213972261083820621051394471629995989870831057216667242939181209935651877274315418454857254841438759119484005483987000989479891572366215861996934428759736740583683988192457086101898889314926633318545259404473491355057835850053431264080459285750122251247457215518404695041701217029661877758019992514901839131598748411539607552682727821183382613165781691752563736925824684508797254306692831937247628916478613560222146546573617900643038316034133982860139029390240401706736372158530967517495700137574400513748317785206115093785021037296146282418754337574693995340362097441974324174177591397676828701566892416050747326645143232999447471442962351987855091311129555514442863286843999706316974461681212294602814080098329692893893209096210860484440967435359922996148966865221400504807152671970550150269523398604304385170764736689049817983921587736090153533350042141063724425623224207673042814029629940909506331455717846032729187256105179298477002426926844129523234400720090529720111921179980556562858344613151299389859469016664530848534277692835180374747308056472183585597987832144023940299498184636204820444695348183991037427843563686749388363173513835881527509547782917249485350950547075402623871791938677945924023358834208321385572804528479114760356310247656996100392663364770757721067386066088278042095125887395860594444519433372756521628423854175594410133445780421584526471273657388523580973524333868439125800525797018288756311862101166727272230940800945580633191800327003466659569765240887154431461983248565681514108436709847929288623492658292013633548252739652609143197164724211721516939519426617547864362978786596717428273428835902230295309526257683823277731069409138159666362909251781613169193539585764981051539613934484261443069884244585520870424215241117181451598604022041989461981714427975202949084030950225715479624554604182680115570675337695062216991580250041158698807696607287616337161650972437681961943648851272597989089852317796540824821717654062108379454316541701792804939791311631635396553373322961102946335596373719199849367677218732496149333791627623328424477200715309027699501374246878458099558519637714823509839118467773045125290735670126162382134449735732888129705072310229458700747244253763669505890080223356348088953331420308059040478813537545924705445256915265131915752445948371595613371512301502173873666174021601918950804341302093993742219650871573181583631690019219407284846171193793303974470389418896195376460492927554853894273817332095991241556404223565623298306290961323125382647339262989832491587414033367023838412100222877744778442596765970528059484620491753034001415216625040145528227866560427754805670867179285051975804056137780512328915263499994733717841234327234978578509544709224016712147610568972552384324560344145869772619501097075988640378093250927889245648065212403135631620848654071176080713412290071085014278086105675175762435512549606936405133294530709830798179348433536314373278507961569248917583134226721695956480981998724394697053434288166301361887828103417860942427929326733832209215595920265437637081585697281229651184968655294824322182782941258501435097592753441251969694021391218203149228016629100853266318955120493149647589516304383355682889664325021414919549778886885198600450347895500257706576786506074433526276491331180785960035700104374854998417224348332978363458549417995752997255219830719408154152338193986717794983263963821004817591169518470309791424499414362788534803489072667330294209811949353468520475225621223902592150125114793783827130517151293097999684129555374796578646035186265278161429166117361366722139636222507715970138360785171206636296959472485972808382936261955849585004156219534131148936842791691058702119083419103429788451135520362217633445861097293302439295709082851896871113950361122538440534852276153223796996736744410964395089960292029281936046960113521360418693295173506371427926012911521697180610211453259595838622384451417694393088384549912469804277127551810527003016495674454210466926149264390501250954689303536302806374901997378669754263788074039570133926326620957430408692897222729205351593758641615270105261901571272025407189137964148233880680713589515412695521957489389782324352489990423829320442660158189511910564923315216579371585732577899963713763965981192845044111559648517328353986333187655079119320262039433093792293534791608961889512416806819822119614402153439591079266542019263971781204929309133833409863703518417198949492414658754455497926525972143255022554019417874320095283981846810925570629482485081392682186869703149133993054543727168381299850176339434186302021843576717854673585075830377923336456913458219406212133359286868575496745678144387958830938226585490966804589165348756486809448109214046457087366032240870839018864032267469732615838257569521562696063649647423805324098361390465388120409653432030384877401622568083023512726038751112267313427496258030145817866931704726645382369959548047877725370601720366569904343062634530674467495914975644611056505056194906143967694282467968456785436759856104467551730843074858727320338472565203484630333886920897680302918888145733735270593842356620767222362979265228062312757094095553772778425144196379658343615648570265168804834073119827132220431280207476250011022063200097071478239026775443079818893449507407132717767240413522024413850244938862796887560429710800343342785247132009153353801347198888766992655325171162729676255429996304726039116003761213739031171580500975598782964948555485313391846849444822994402217426416464533984705412037518889733546253562764055897348988061536778161807078462876501478132403494037320423562054652932601236980366992051292785911571533420608088404346161313804000524818136783326029239161612710170471603247328045379725627923938859851172087221758028984832936489986788449467399198347136987351474438536572257626961901052108419712112182799873162931268765874418865489929055562748550958914940528385169321980336377890183565227286713745937823271681259473074500670588705938372584677985752329823119780592901219373371148553343046983608691737347387676237077649493449989963199453647674919542801390846332281037523038674141200433338698739915688897373459084837201448889066732572535815505665609458226809522247705438145130532112219810737777562284000039249228497543072828587772051210142208743204508951088031533231325626114758100603236466231047225698411708553405407872210145597335563585033056332977447967558174026575825104302983540099920580417276290818982245942863563361979435005619978844092223228167743612876718725859482804944463509768363359396031516767262748115839546883991998578250089643128245742083642617207969169594105678138261920508643344335791175010964962704696895971348031688601448790214287407191718233441497359797570517260606142950339514601999244782574018461864847223167603458262152375556750644849566600557443210901553687140165859801019397678809701336702995041276629187169659009773233221733172776836228237469442672381269106058215468047511079545539295615250838414101083915657791068264783003130842200731015281379843717422503058796813937627607934338504322588813113849503243707833700435222796833832685315533717024495599727717483517826718802684028004612587441927930392727399980797935007662399074488906261098192989485899848520642883559422543340233598433655341748152590006321807069378996325576617481548033696709662112973597729985409008299742025065949509342315428723173551946609604034629480805049867461423915223332335825959135698898246305607162019540796739924638639724639005201536176428480624661707344009489682923296001006520280106435090291118867691150623608510370979123154680291200252620917486403399265237537272980902847473435100015922088758584493541499108790621613376259333047400262845539969490011613127715462547200733551680003649472210676861814040424086287063349172179874152799417714445525425769326532886990311176633220992061877015059789099068729883590164169591467102937520471384646425913463470002412789160402665651726136591402899857228662013178131217231683540202239438533095100940525296709422010444680841573785634966588475639555968194135534554729356458987040841876504948604072493265823018582743271484448485385965096592732338678937711614453783792792494228351173616811581959625111363398531892558071235789658035685111434182570063446013775883122323883739504348128153486405249897780710650322615535311183878109983991352126166756113058680092176022830452029355151735615221832965482774535385451985634223374475520992837200701794956384836621882765254932134090433584940818612276775050693051615276121710569182389084041417262017616972403302057185614068899059084450963753099976300499604516752602260200031795541617539524042646365845899991603636013452401147115778412236864509051698776876862609225644154731550764553927073230352987899713559799050289191633937329464337952031295959905661804888474839588822217189201719225951029734598873521490499949998416390100687896820936127605021013789866912402887826043442277733852293494499174667602897859746197704787007186192263320817736883064789478384109461681465537903997985445129757359560447483232924145955007737953053462214598141059447906996711287413943007684006870903842488593984684425636895942975522969092191475215918939936024429009006947845116397346611548606228590034441727877762490981257945187023572303759486398397666355680123243540126382984664376251886411583408399543888907995969086868116973600487233485512036262896491153359216497561604789463322739905112124902274379654326922904049997080568426240482379732588310926380561460753975104528342858727221609802794382800640483884432484599267541406724845551968158983862381194473204850872597807220055087099727379393464114937293646513802083369830496772907970404486111130593834572255934672105669650531081400103509490587036033165397163277508304809233525420742736178951495576860027805921142893605571283044849554540791528399762253535330901407947136322610980698219009521351535576124838916675755311834714598330192220302999934978347273592769904973834813910805146389717734802000236078387704750320187978377539629314329428828745833225099980721322990511793230001263573814864119303195240332188540687470037180693598896374452650946648007865203840004551687536842229195622041900585084261348331563715821435460152987483795413845198632066725776816893301561922304317149975448652712252521640689250628370341832941691511507239122276851558029728522326014250043220062790462176439511309966179558418310397572774559002526619774357998185791239895058801500008134273840279242796774872206235767779925244719799354215997261897080479509087120247970111901748589549460604289670503946830051503864537227534544406084526792506724703541778990580955391698601596854914442856857501054186814386514115445699837942294051661271521902043788318535701644952793014181071829168634892702830351909709029680021442048548392630205525332024409199929641157257038175353931766355375185852239846245030298141986998645758954405103322278037113555964399327506018255622703849106424145189230344797881438531006293965168737583930095772269116767592244074262578007913183451025743022545746271704193775654098229953752005710283350939875249012559342812885566058879998213914957676681657782321604039996565928639115089761091412006318365484204270865605556755116622460577861564540534975027391419454591952823064942190454332036168524749953316384645062692377254671458291983687807456162399103122460820196200159032903092280350147324745390432307920845655128379987966865775212283637535342691061846386935772286091991766394455053426742036943728167858259296153870719132984260967483406361739383854065555331482537150833243683450136692106755393336122424886045044482801657552670833486161376496027666538241886806229240723197662525706902928938932638594053450659614596017404972485711216830763269732126062496247331397504806486336728838629963682988834409077602851853557918870379782462323297924376154516480670888313157945302103823078916549196259697468720001535625512355209929482715440358505435149176249224110995641207798174766660659135141779982611205919662683434290481050832254751520905972992712987209689440912451298952609521170685928470922523939517459216660093149938708334210315503428316124468823213806558606509112990833973588828022558081624640589355026563227083262586563772921386349471149058616848059007208040551155976339235262187066286172032847798960647957824233350175027439857295256642287918389367735499720682701890975003168522730964799539963958531375448277201626247304418484508604579490371457997462930960835696935438806617680557680247709556831331469750663897858483662224477592691825443043706395510283812556081285584007517790405333696223631514267442764660181803336906793458448096248307855298589085230460952295524094027569846816436836644078503382956366380040778546563819087168328390445620420427465921683108754604757743668131408405015895135560583723507891614478898245244032436098588053623560730015383186418400614299279393550423054919876077989186155361665983085591785953897185846834174669714234278308107885305215495412098375385433047628708023300780515376705233617599733757255428982020502036890067132288613618032328589708545742562877925930101227663034775736451275022615741909507158112740844553105952011062661532277903164713636245439830120648707617383860677363071120133010018306599167688156288906887218343587444715555239827044966683862752476121907189330897846761022112928350132776088087002304365855722887153400927094524843793548597634228668872814905638958852019978524397887701228213144803485134325244147134578858820662519377435210826566384171254639687199726865534207375939509251806426642661461705864557320329483501694727379505809960120709089999948743503807945992078265914744981265128889121006978919405775400899460229426695644981635128368547245614991338362377714922788037254369010138076663684823391197792566693352891695457962805674368477525558221666355242896534657379595709283627969012463012145781631588556898941410155592311099203440735014497142865382308890001688274806563504141352688450225951860510497314349423773075409139988283782524465206865596998383642322984227606420036042794321851478721503837316720814074920974995207606914621683573654562363717087127216967195533068171174639685397587053902074102553147272663506413146705509474346853569414847030539762874104862282716430253360061981642683361161908820497241066776914753522037343353937715035472925439290087352202363216853305458540652377600461273662472866239372432291500484710786953561209423767593090170963521123981567080247983562842636466415240799139990275293257831047867187041684708185333743234285627368338093954205201331532178385484204641815806895006767412429786891155285893572666265117075304536522699572076928462231501105541918435053161229993827075875001657698944630572481589205225912010301479506107055817622462762818876916746686662150412971233583378443419052648413843855081753126725558115832564683460466180761175416132698614481890221020689046820021595417106060532235088705721183522328593393072203742004693161588046583791392645755469522623463490818022268503532987565862722143358613864686457742315384067076879268659847216996357337484180046969596066530376033304178628507798198996811656672093346390506703593182912760820179859529364065790434951072421625586230654678484613283584978876443477742138420759923495598582003681263901832536354136698367197708031440507738577374597515837786306342101800996472868156978047345624419272705551242282368323219166984928812113303892353113303628106479816321290662799118119555635258734576720656335023814849745896573169613923626446434507370548931664559725794181309094331417704082979862958477330372409569066468814299784528688574113401141187226433993125686760761474643072248660270811295027999306497063709117277969071949936967920303180833539970188820721222867866854555135323494806466528304968735581451681538169029370179848299264252345759400206702766949444634211375843050802208427374782403913865939485599702667275594734200317962881333862049109739474581728492560630806974359395672122788978081209348617213979974486516941591268530832711270519748984077947099473652935187648092892480652164031057678135569426949565251857072889230429939242796511971373765884050153724371229038386799236136929803668346416603946842503226598452809801846997946973562047505715776007037047226926999452098767845270953380824853039832172686459747899882208786527874516781589869009605593389217671282288504616578215855488993364536227111494533270685645250986011184437625004200096044099414634207741969014535732269706324625383315738710712207863460978800090143647946077275896238783451805531386227012762963388147000768109258110770942021437019197699831123546465363277545182138162510509773547538833664277162404391172809090759814202865639248352156838012542650513825127871378357938551035834544558563472846393349669531328325783036778967483916226686829398218590343080109167108924645396506567032637366753329065638123214008084323482761444121306089206664759355587566136653532402905446537482703368333811141834828864950572957085802881411745320818183046843312871279488050140761693341159705740784780727760290153989229596476257319554898535391354040402628406281922257703304285201946478974711969511894514733891723106246044796695448372970884451698387869231175757015595245305576483311222944704656211788096283788168633565076715480059611190932763596254532137804504995506974350732550454730768294087556047514674265558653391488785941240513374298115090479905042924463604486145754234076742214279103584246785792720726400152973031733413687766479304856501110421595888162922562084727981718190370512260540816741520038163343228120260428683240228467371958508354425013433436917198923155963125238415492214780726485528059947716503235282799150875704167827427941408211221877517290962464623429514834616083373786429634056666773789793044577958693378102013744745209594334409205621672804610381684297494370419070680176912240960333794122220814230352975120093515627954449241936182258898918386142007135178999045220888319146353252275598064221662868260808888775159522467043381584088625526765700224137051471533159773782243683875811161033747954941641432344080394211546059982965888271565657026282404291684129828471231486833818403239441443552380841311262260053499418976163383297455613229815496647580113464372946467883292636008186910304019029090027364517339499316578180054730281424615599434656477994857472284141248571407323308318985095914703237290720060704892799616440082487052424883601022764407677158061957570135657072712761532615415804264634113347186885406726155374898676799748238866213968211111212351794927342356671003362725512975963188942428205831689529493376485002252805727750554223805191213303489194528455901483711036155846400016271101398592004998346318426932939722604908495847246834364193810473290549394152642904663468042001484660584781226516157282024045831706700267176228026509092331915432172915325780605847759822251990523537648119327752440210989331348417338652767726855996250880054679732901893198622484849807735750195888812164096548139056592682131024346308132040627240529900940919189613350778253407466244717714138006989303878780894388550863698975533435140894040491044629227755167420785892250104480686846333487582841303624489655371399234062163984397010523683095742725515602100562332619366613730718100373869948578164015291041018329567621105573360957340254614739114262881302614669263548471900406045057141841878725138814706882445710278950127075769611166255330121146473734049733314861786598504089356943649140683775444115621753483918363304860046492689010170903788337913284596444783591693854802910814156802012333388140538507987092701526688950053285264044623521857022408716367826747748545209717459587485171383593130957978708258526382097653718935659675506293596313043308147301066786813102858404220869159818147491431981700770633368316634852786040237557139241458147180469796661955985931383451984891093716766258193369673510367984616999889882808577256436997107653695938594278189488163492941865503870243939150113391354674295581282898256900820223940930506357161169460183156922256521751405020024128488606193606778769887078623832855570603658876475719660125848890024431084194756002196382072391421856573643546802157590120492164401135402628414130285679991961446404715035918951501920324976981772303486706087613621771690107323849199468243937824568380478453834581676076849802380255206711466027809307594339176084906255599703588705867175570382506072278365753436736450935414782634436773595038650296516180974662517151363558984971986151593016961501363642822713488046690981160639462125744276576799048745900398708279454855960592358905338643699217624175047488061531132517986210942451811164818401400111320161331278183504038523454161184870054603891919897598330437311472377489905070564539829431637588153721243980904267485325814610040236810340988148219790154048271916897958299678007180974434878895700815268019546041392413926307422696467797219503233149986379432055318567110851636233553840174228881089327891743291918984128443355982043036847361863520845283716551690870533370172328733831262816484904482837673422441509348199387948302000019578662047842932820455654373434039986208259443666236335273523077653604493566605525922156355174410706797811391022780883967578759369970794380514176988463492373518131282490819407300909415491753453172650810640535503808985496367666469910716553321451171404342492981952932888926826525990400117995898656033608800899814994966300897022317106303788143820807301356022702870656212087663450540301158754689253625632295817976206679772793893419647415622002203938592919582195492599679042402165103147482461005443553779766623618063690486464014907080055007123704663014884977662537233053901425151993078227621327558312226455052925676456057958413570451963989250459976098161021406672993194920555206746144703708389589897446892236077918704424302796120919757072034275042479873097115085590712274834786441275988786816584005202166851001450737909131275460642416361744237157320531861735874221467974522215311627875405616410979343233007409947644958442333893431362171881264382132547490504876662936818284962701884701789060132917388480148902696559797353343666729097461108294180563462642140372451333146455922582620763048322945165859504933905067352824381085448720471177461361246496067083197622936647265631587098350612306696064225613250630780527106334268270143824020194696183577897274500233009035958831069088486364591488630924685267565761335474291750762089554760136904962666339452991471684749662061273799711892411981917298297960168045736912240651980164477105955037290661549163592361744270359907699654957495090364873100151546863173444488511279788081534138050248595644122830899920755396798082392260419722925349919120583482741657146172399782154104015481893270328496440820560525750386429792817102749887529362745349179085804196564720385924412592462263789294649121315424298442870766060532001531188634171081588138127364548002955005066916614620657801993578513044515323167684665837500181736348071544579829901805421113696957672106192534747544280988340942904359783123853455358029102555954956570614866878576650825602790805447771264037624708007870471518094106284032275869332831249429430600204138843783641247568357467775771530896748439941783111933191718791469825521913899482948653090594168736490942927670435602925621198811824917602972343841482908381189164855671030554390001050330380497734462051800920860397865170206998735996692381369383175823430419792768722708582912445013447861620466335146751542666721611617672766815776880827984516136466678962110273189973577781413769875074439134759926663932551746143702712232041379307877710787857053972236193281563521110393966456650420059513076115458509195557092452681037567853969218590919311280947136427274400126931811753650501687170619843950275498225540768216579045895406577881741406258839988770977422807981038769215001514480234700108653931516902354976589098576073495999262349245162100939408055925044958171789467543115252206274691863880842925421659208987396470757770336806215870652107416991368183145902807005714438008279948518642272543804814993573196861549124194902022579758925131868560888765531065498962906994124160618401681542851696283913567868218238278524890038856008087118312639552412447157501252464748674222554839843170091733924359714435866969004557819960428203473646780802005754756069658952215511264242255802280464324066366930404881834757911289247569140852567562837125464232102617065684696805322900185269647084838862119779683513174789129504171059286769169711668054729737753603818739268678691970052615893146845811141029020327924189698795147496308856900807865189789479590016608980481533998735138493023891083486533408715056169862050623707350518251475941869704575746289198976875019027730600964895998482288941086773839848773209055782111997479168786829910792834541966480273992114845689386230228855896196597706817965714278868030476008346842326033745036808955872317752091615069657091922157422583020748483993322930773016550706776128727905085515602105044820530976821972553324516788710337868650103021039428650073203238080706550752506239788161580542840202984173408551352332247729861020912977058952536672084240558081874881059416306094834618482834337368962207765863602135707316978026096661421811047017040268286310448180656923306759193975416343842471066593243677269239033820052337943696020034302417016362810539250225800088860488184334343389035381204619746285412152180423234834726988425700834044268519317572829862321943489874899332822932021309769387321093789765104245028886963550821502516042343695567323869787781469300190266944060505855691940986681498791857228542539121508233277654239929987177091505744297885754765577050954314830133099864650295106548873961579939444849570999578645491000663122722405826757598112941911910522179371462407545002082680096620487578901553938855374981580936659409084787455002710983024840598133143622219102751614810556481183629708897704899205897754873376447423658512480754776323820832317841451175141400099682333449942139192351761459543331231045010553278392338369262349983917522389124052652145016924848959780144850769665907282965862961500723533686375044057914954935420929426963841937808357236084897262299646842293397116603831906728781893177427688020685178430205608967180053712201643109521376945115573153233566317374822242810970611653027662077589205493231483444355658915843259196116913539695359475405312784063255002714093062995137465957523091018134351128670413543719090481443316008564902947997266693005478726847301443380794800082612683386575087634197777199383236723110592956720314632757864422092119222509143245281960353669817527372479196535966124342675291519335377821983533003296428742244752950381026007490367989665157517170188716899183248847750363200635432133686053399831146102461620128764938533098694478667186952126505323539592327323700736767403609276823088002792450864212463234724382381120752120853262133749918688170984958236987977444543058788125276266821197174206186035675512370635185706094688973779890083778990070531035700505220893815026125361745395374803223745296062096297027633907700386349466793231927029841342250329219350304881664196499780810840750733537858044525583784279204327375556080390251904135983698854489624311125973228917214856103696078687544909254638263081895156773423782372170174713622703315969223214678308994424533541930893028153730199944916605721863389873647690197785663059392054929309259557767683047139595710632618960800654279947943327727782823309294812632079594770077322615228452651992957973098493294729995096669341492177388914405956664741310086268426021320037536236903240120779221892733478514807295414121296297413396398427019076999320109080477199406955928421913108252141702136729067654149391603532843506367567755944418277499645552680497342209520170696554378129038255416370683409361265209904619551667184286853115448875976813448918555784840674529850350256472737648018263872340591840438914354755879696481193661324898795882180271221584880715728414704477309395793482427074089326277543411581211851684026638515951111668308827104028574306146169930792546531580909667343543224000899170055393908486709633359939023513917281581579294214075207144344091864031954445949024654342034026481174764839870144119196134187975488126884859814864884801838850760636123658423796052524802936947463661468719909654166222240902594973230788789110942957421950884455529244552649005124136928202316440180969845177490370365267706880330401852314816413067946272210569263914210611029407599374394835558165767404907791936933822475350014539110202059113021824046931637513660431367745944716062170443972927643847136730186192429421395704262897246356949912169798891460564183912424875626804541757211483967713264659153971922200532161130702104365043384802110829297165802736615994693830214608137454779302503256822406405603358660355647502387165278288332680053736606731863869715220997036813668205506451792522681955415811584091085379329837531819132449149156434129561598610442761556479396050384677694746291462537797667123514869839263360906595504115937644532295468976935313701443787563989988028061574687935077508436342152908997744847624584858172106085610655896395524268754100917852482686605303910709332794319152890789982580357355405775761976847889439121220482158873145553803022088644333062455436815969954644616830910824207842286497150882002180647013792242371755293612843835246203459737513428899327756145335449418442444340080201567050985339301490621108319012796340496248406336376505940915672556623531485104690916398547769360749882426855685361679567069003220853715804538536960387483767265331810391123603021494757820636093792141148888898987036806557316822042494372313050885513186091393875175736104192130572999178952401520508079778996167853461941921592899897899056236214358085179244668909818216037964286768476834173474161948873114801732099404986169957491067616490353439171906512035146917014487890375083686838312563557521968742680806222804384646427194404918702043531720962035226885450929011634959066673240866142951848640321225223005456148513948372342600351245366874793830170070329312808128989805947172242865433300575688987588953863255327022109433819420341365367095161501807435918922799036432949280758386958634021310484230886952372414703052407759075817494139530603082222981442672900133028092680402088117812729588900883195477453607252135030210231924544259949061286631663966501836203687765308253891225487513610983637823978275511216642047558490414274165915044291416318135935218885941421289753933140532273008063077353735477368706824600626080900796688154094403623065424710330986160350134402428407354920167140301908069877968522672735801738342332383038737913028876720738592556415308199187960197620868982570717249547269243243658906924827437255715632654016309776634822602073720575946763093755326461553168245264497348215964165658600731736777526190711487054736866027160517005795485058069721964651799962375554897267502080749061446466837712427589089036301734822636282785724000210732108717483882433023135810764306381228444921636061832205654650960008038072074006287595792446055835005957189044819022768405143498362212858085172571493944950893307757436210245839776116936226128647761520655529394757091129516209434173116766298724933119464995578049266850714305650535788122754519545314177120573787601087934219054565424353702187508346313593333212300115541056825442216429852173089783610267019372309564014918749637943972899960454626245238266653976752728671941105621636821332826249210558608552400213040756191562522457908389201888694142202148620355054528012685202206336684888851848690030861690521940131943135421920844185323084229901552476709595255799982708365654120031501469978323938277042662568465539386072172968298568699895361346709019827410506135209651902691534206325891739111373373558620106259350250863035602345936573641722051775419735726075705406479160552906832856411633574059042885334830158549423003960069699165916900859595266204102637228890682821514761072291165029624782126714816277261303028771672340921665754478110424075140796149843701531021156171558372945156284494715078279891249660875112212391630114854592891366066018665773185702407312873272359589763365663155596295226206114873518675812414404991996743118312830637468090910821077957719407073757499767604372280137899407911447972741245809080620657294830853265953712762824049866692588575930373758545941527850226880597273568760342677253994812789911319338220152604472895122700731336945253168300003921273569626055710807253893936911304664620840179906771187899112637878854753130160586419643578202970412327883809485514945225458100328275699232445815634857065398299706710334193052444974925904985014235881674778764680632391704663517202233564341970403037698417553254878462283045414505019485828700152266809861568677486631295030416233913525969573515687014869057938587129531256533848779300278306123521029631556243182494891931997042464242566571061826830085544243810731590291161470841480373567346654090911039040420185977571208864428127481216760414774810403272582551418045020972598990251212336136422409487334185689234480656487700976302141668943638260314408304537686151125106282985627344922508212125903543297630429542269447478785496113190413614622382830707407562104175129308163611649406738297702372862229552407279658804121580291308342128667629551114562294640332692950579162146592692898662593760060306986683478115253286574123745582660511885827332321737975154124244226651597428339512393204492754693187528337766976360501842573447429707503609298170203850706810321379842983374978457140687528877506355399518609203690499824113960364330706600173063991845261863024336524730871378756498375670392040622808208325566551953719880841337179899410478370860967860190870633736817382938594624655464594386503810050511154309503120518735664153448518031099881090939254211972595659837814057005661996974633728715482794558213745234133123077416047730416687952314127719693882398292751424796840260723621637477043724210877872714849740191099392068946641666952680736610459386685459848899600997413081027784334653464417910657445551622684268612659208229654675137717474518137875824890093367928178940313826576747512171314295410523771360527519891405472937647889399774282931150680769099935334924811930483224013350830408059255616831448668223759385494373894823989495031503966894992643967391423684020703035706977272610105142389938136167996309500109990581774094859670184550635330147135756791288139738260319289887511810439011955294861594858818652504968729380607071938585307200224512772217212441108599067092549701614577117333523054485070340013610259456643770499852854188648185144117700381426051118666942812373987933498602473294473216497869250497114900289853226267834394840239190394122112022675375115315356279626291263213039604538819829903382206815620011791515844510213954195352521346336421597842100237676301381773018718061555797613638431467507108386315876865172875371812993252842554633847604978289716815586697736482571954633091562690201032026025820940062795833052544826944010572974848331442105189860495172672364952288549380949286890759839677399397718971699248978956976562039656111586586218461009753514370537971962640285722521430976520633124456016583375539714928838733839667734306446801730948171145358572379568832273562779444771366443440807548638820413649865605531360120308949704405015879100842334787752630302000232068457864761629256921031154607832792405183178273276011027534281875163659001722191608807327263742589110266075187219878111851733822198486169518187867588643239013941993811116258317234696002587947040587608937086649061191322820623242749910295802394226356212273289618116910447027106324594545429145232175505280858426913838835245118194552078153469626407649688944064934307920379369495328245908716538510078659630995141347970984988712667965145665582391742996366904941312492470494489520115904215261126411558697679042046058266167432573212540909128433362922210060022045832027591282733336260534594031159296063842846860765349415985650097071585916609961673632376341367976691103696249345125361792827293669611305957159321953200700535258394981108006073988169488468341817581435357098601851942601038210260604587357349020574732492000635126031269629385205538850807244251191683749741013425718692712633354398328395561419930503497649094623464692548163915068866263687878405153322337851941222293638228696764130225030798669439948445951891791072856164497991924920970616631960014978694234761193730434734764884179081503076852981147733790370930417896671775435463104459612723504665800242614268542926573141734211262034474925915749218929580219850287016358291913792606735121989669927371547596572296988087009375569980114441310417471018943158392473726551476061910207460696775461612594507219477378874771383327535459757313016444122123941113612092124588445397799097334941432596711385712801183826205231445159346454233268118120324483170949695200728760548807962987438183258022485617796711050115047844295893683291431246325933372519508820600106265573636189649764494526872460773370651593411833164668948193062908733050317406730882742199651616508396576109253535901024390904773783758427241122749754507788823946650421239447219140660015777866997405342940580221782711146014760245030190745177739625911902871579200112473030298199240049541493109353143934521544703260981138697324475271360502671832922326220167480755341242307135675521442304602173860759309677063391293400622098773776843082894334367191415596733098701206792169689203714969493016745175692948524407327155431271156068782123367554251378497454552210996657634948083855503779020327431472222772377110133651548827084163762595700892807154806837825114953105447800123688600134916072654467770657065160829306230554968928095742880766420480587341068883066558775497754413970488960154295138406740691678325377191892525118793006496981395808046146739715887928373842728943419816463692026778147753546140374430125260645015492261361860671605360217205870137519782006085633324902868542664694252455969244714574646393210902873923864260924637033148515535345338946277160819939891338093862779247737814124141062050517720956376078780393400366161337399420726550601558844466366105828714150898761232984793971761591788701650919381270950064829337455884100186942163784808413416264467184225122281385709668347723297472168585118118810422207216353548960298425600547677417986678387532968192087774851050026655211263662376582026792067018001405694866275119859933337999275909660910680615384908516909316546582325369620007268531214106491587308575299892676381723285449188738850351921329869260184622529801429128962084560391498891992206742774597981670132198054639951821707855386725619907786374514679904998213824450980437834027213021609663766341026482507499686584251830771094265882730277232331316292070768029155804421155731545098502183866610649674537366025372984480098437816846124829736125897189995150063554092226155497467024002575441001754082482171317350995139735298506824040130169824998885361167380152642639029579434551891827366095936462563468818997020101700435363054799118361544047784827290061141679416434958815540392149939204591611007822142966075481524104393569876456230275218747650146060037846809237324649093487214469065362952702578745922805130717999768712383367610197193692124595672199875398105095308657006709592931976507151035510078161699610081281411158715359499913474107484679453662205809587958150835742182790998959816447941438010541467775520101447884173240154531620005619553573201058362014869849366310790431768670187725170646903772773186246629995277124131718614491128779179677105277454161262679968882840872717765498674119906828277038036467088164004603701833958010308177516078129366053190995556197740099661421421291181880984505152607107998261280833715338365241009737968859174550660468397718761698652883868805693116776508674256658069073178551993187466854224185632754957061071040079451693985567966618078294666754206381038952793767331343607865360046698258638256192431584767317188195473404505426629791794890608477837854674512212786105187636051052117194869895827084870170929230776409145977563644994604588909487730302377992409170655438616825314779079752211986333561560040583568658240037307388803876861638242611128355223146086015962950890605606927378777496264190158507087779697575350455228211554884646204371106394548677846972982074524130834818948795518414643739641270264610409351076799484607893069517802317520996191118052739459941293886241160657681585957165380234975360930683626572869547811677645093265286276603598023368688904237441526743082341809925958780143927007043423968689209965953596060992226358880310483407179708435542071521280672382059391173763675087539940669023153162612067807853228159313935989360626768030293113980257970027742678223520674224248474192905426940347939445110620641195325219549987130124163254530455794136537096818359500176241548963043915436374962945161065156020368751366122063132927999593650821040383510883025531085415381927226526507994732107953380260169583649891722040583162996564591251572816211655238302579320756829763592480321684839373637064195373204244079988208818384158858764203125081191084407915806171354393773411815006351687962992196082019393962310322320606552287484263670214944979215296983541895027555458386207491462192849230590304656875884714113215112513566924806458661991299139557192672742628780896577507102080936719612106500268945180288445630975152862649833837528089766138843936041622053823546345913327624158036852200294121011271144661292941720554104554033943402570923133375177580296428414402133965169645760311432818721147838999826012005183676075386652637191267536984621647955025339646785382704973804029487933549302218372209521986833247884800536386950142200106356581696292710376208196672909104217800534566136263066183833793451255541464325035476501404247138642690661304220460458195838951618313418715030938351496180747279484697628144221198073211606205902711185170974411923950363437812561330387538269849028423247001295817983111581952599317866298207530929896659110455781308657603832105466959880834946309186803068520908414463680463455588426683449057599101301791427192572837572566536965553610704624500210257345768214026454882472274858578118011586957967081274677217500696218522969171468366948568708370963305514331295913851015364276671012640574366133240000965078833139098225404110075055262933249767683729612919402377244447067634706969078717859982882366168344142743176277502092212717916031735130918927148174418264398935463545938611195066470403161096759683637976517075645711680550342883317523507326073206029010539574336068374543598988390596064101489612943774363175367199698142875634373954876648609976788083601795597738074138589902969700848293127530260266394127488598728942062776708938729192159227488837024224925848805678646610530111219986911679839094389548887688897768321380682178555064294604809444187850911828257007860067769560277482980570721170320031765638374527464480227862782814264354671478011007589851020738448067627744911952220946452473698503522163718254266987881503882808754759958299824806500198332757944895917626150364723351289932201502113692297256266012064291964710665770733586381569054569013440955617272701894591037672391207144989920551428326064388791934627864271554591254596684966906041260363620451459285244093362557203508596203632195260128457994447113844589260065509683829929428297012033115025011376606626985459366546810318154758199809787601395894038778298492979664102596837755603157104769205433541818779464729401805990006618670098719571001088053334864065890911192320943347816082876094813777083632745125804437640113985847772524924455101483716806031438009027942661668546414599668453413650941209718224781099470328103676885475313543970288747863773955887571596152084359251157485459190003724108733814343245619058576432759269111941875931328767803659619152897528966663964952297508767794627785185008281542086063291672127878576336606759741240693433216782425762154443379986451174828144193758297134908147649756081012438016579381368080751905910288696329046680521785445895950654992448246235945970925839652659025201262153703782977217465942132595299173851506199378494080021128149300415979531505331537892126224416869979622882406615617806107285373069510359095371760072236189398179168853032742674024041888781210791909366237093873964547728719270097646528576039370728439659022930614203968337444948310591528554113816228696950452696571170194569139471702675540496910829486920780765115451257958248275302397205356259754480919508263862081853196718637584230715437356942877628219608945152892354151222803884760777633793313564238442727306829542615819272273806913937250939160993474438564729143542243719606066281418000745189153438188302436818912859942526086675967468980053600658551873780588949633190498076086794512204693020212418870566338951916394904060875961551824692892930343032739300080041183644281108069833869461633936007367104684401786616183849326029911720955435128826735776117803471859921521109709195570654400180413538109950988274929729998192589062467142514857185546322893259242341268885245859338475231991574062921912275215805176627456999959676686488937951020455925351953519520703266604589782292712546053489401792734098434211929564142568513084684555139077814515059948458015341658800656825794236168772965491937604744643887705009976332133857811724845982459620492824829464554104888932025665680663815162144474103278580872584027551424451560056431997553540998132016935876467370080622322538343326138534431214361813326766608319784498311472199464145794682604671717076576014215028273985913025175866920769119221813418657049087484314004163475798884586843674250181247099697725498868887440298564026235917824933149500196701138868245234344742516972272935530392459612078244103769214609202694278808326004498879821679504325469685255101709943399254053779586066275062997214570375062733950211926468833899441312982345532442420597988078381498393895760415639170527500048769168831131515690920770155266774674442935187834859019382094511352289073871409431718330351827876287983494602706659947909072281466592711130796291156674961151641453229909054898043631106092090566216887750045724926868548318122924263621063219306279231081406577412790831269212488855292083171771395572118383026254358056955186114472778838553580836226404040574189571669019902985605034898054459733275538698859103677710656473425434304384373032919492795960853137893613536088445754448445238683447979186362232836589063285345036975694286157319515660434837939916086952825950973392472537843273970736471227309079997517040738886232241531613869270118246049407074813906301443985483869537305894056388111702485181297170656749901474099998862566633936404939813421768957603030966579036107115790216249243750972662273410445095090091821337805631778444648439833523733615623017302124380927507498420240712394770571007439316249708194140187218014702309031155897325659268027014932419724887573355600422317580088739409425015634795226126159158281019045797990643045534240263141154757785837280357803804059227973637629504475177069279942083432490360478711687672528814162604498396767497068018596980454489530369922947244923956466484229040977507506423663540347148139399624581060897191488244900470984661775070564500559221797369907818431326201119522813192800692163984387386524355600707462441227404209815922219540120593850855798202857281834930413821350074192446433449505865867970831476442751558888592834180356812401836872984564424812267020314323223977134448810036045267121756595784218846072139098805549003776318616205137913396736136447314784024525737457790669449837347085993482598388330353617390408355043726156577017894731641549829542894576133333630827583418136796057588315834825108772255467683874442929658607304283918340513744571674973478992371514524384127442649901700052486277071290419248466696523454479446169622472641153713232532123899507596441688740693186002533323876286260421280817177846024578920622695548888725811118980156218662382619384354455707197113140821508007154481213174727876565358354265422682333064454729493215756848247855281839412072054284270926529583180108612269964001527188567426159418458705324159978878258779438471070433340987583786182005892083644897488991346661886883321151350015128096227801656197741725729836826719138046087393496511989592517068417041140826006116997659072561111516252698118757680379829469599682162732438328068688713050807522086011038087291266436964939269247613575675101532462448225357324024082856477470666209488709131166118130144611544776156999978909573141995810611028346536276738217536589956741172785224296181370617187703956845350541005851128911676764214802402472209452530518417991356841160904524235640738549609392079225455773232809215514532823729355456474508566171317839695988003210380172087876072944340013486304078709990867926467824283128141862857361890920080848426915326712330878543549250039033283492104160965722337921165266762222988739060828826559106306464678040187802866802920971035578013191077271709467097639281259726965175064149903129560980530102086644883051679436309218831142672077039022555699187325728188440629317467422442210724737805234723883820903420472398169759475045686857774418799322657345937182765095600663862822134847210141082853917898297514549398049183739323539011464816324901176154752036808455725107084836498320722282203324782109951976571503157402652695280897515137032560969969952497970497086756922185732396912512991667127507624187236410294408769365803044012281972791719688564702862230604940745361927324569502771029830302741387760997242980200785678595165153024904000528376991412147529555134195986512483852514151638028724000246431538770779365221095860145722061543311688168080297876499530008172898088441190493408334287242397420547710916028256093833548186084316768792821846410816586077125754860088976133927594227387042057169811529085938863388042941420275403390344528619697559033901694812561548671751370968144430898268289029768329843524483567138954668865640466654701752298699410547372175846676569638190319639134992170345812073120076215705624801423250912030898614740009613145709138261082624221439850134920563436437512803364653913459021425678914563394022857382024820508189287614258526797274740513904612454531809775392793515146995134477245178440557893084555376561053363819151865635261822900729670150101957348700002291476194214633695307754248706222951545984037454915028443661061372595007964133262960324564265518327144676483238601708141640604842707017376910848555920317040418000526397126142631001177627224279628384999038309447561482316294783281792859144026059305497788964354458191550322076316797058643311132017106624458773886517547395923186511166729750850044290841474429197732562427939976548039538844233633241136414341531080177423466608093546124528404589392302818990848383962103474745781704372206719823169810759841380667860394422046553368466091053740220020213994689727776042639184095535830449563381345465127782967544087480957591295370362496604352427448780706823866324638961541499318838838772909345236427267961710505087582700942139878788102940986963017222813481793836413958630871881677020210381639803179382250738713006162776449081260460783541099414782956757790465298359950211246942180331435475954670331516474525723566146236371651962627375632325959401912869129170705100415468716049051075389396365274313034770899408909986907449281679718433579053855750922924353447179589009524539716935577536328402898599479489765970109858308030106357048405975268898723582908486418261365747734923105653022464096070782508239741998124503791534849278160373320153208523622754590205165726113850159974789426269120296967762155083835213544769745470615174981745266617005931646114898019079857446875925354909196574880942722751480639311932393597248115617547518146507650821245985389494812879122551329970860941859840543211585434425186407142819153577699111269050017968667275246354963779204708273136542563555078808960723077934461363792849310430913259886122855097965766089550196919666074731645000317689039893091134876448592797575237840011684457090594830228836653894478474245952941700188042764300130320006559374872133391947312943163590980251542737691649229862607878744575387378743783183276093277621130830874103890676899423618007481674410118752109352636812075960720595524484832693173188481332250714823066164998055462921393343994094072055986235443147466177374883669973306853316994256086215507963830312878825582637037624842504630196686420095962947359204407099469898965459175853720946911884647113456001159921890778536851664213936245029751302001850026804327403866416075729165399863625534586615974167833741738270317852567867737870641664571233382416301538673305890465736752066993347622471469834318821666286578980709585294134040372229495654385374844811053151093039439649493471608293877013637299530252726945417379189441089222601433633635824275021254363673258733598082492710119778862753723905474676779413125417718501127703670696532003916480321717515092617339621160950908892294519901340374927638328094775133174612771528975918036295466190800961100296737053870482968833986793365790829869756074865998114466461134961442403315219269783034662082853420929715604607378754823131580546183626439721227075679179077917810368953391136616078729277956693020403562474280374300507802703089708549611837745579372253126888488154263491954768340416854609063739393974697101902785535580147117028107748094304903310394018859041419108671165537877532978720548969797968636406624255094573333323285274433578204073557758755138866797892182180608555893783490251161897412824689578107407666010833099454127275758172701825358055059184602321778071258319725545375184474216043399489839427189009501144869145952461217778114451974634302134392156690642338597718879868052677571967883093818817082706058554292190860347774053314390450071533734941278571215791603198570105859825375368266145396811122580474279616031925293233012188603029145011605282071567520137125510033868120553502758664922516754508672332877030700129602630231408552434813380966300241896209862175234710415436520545355630372701981196174970006317276709055470448722785323391272825159357881949435396408773066212410037576623969986412063579687307973107318806292452293676759148870402231276108047584664039184591187430321138091795982214574704181810037304976045916052576546041514818992096432245763658087986893441426813591510408889235307552609278716993761492559589503794276727356437589256724462375771287977068378322652990309173964733849960035883826341038805947369582570750585130210421590032709102235792467166957261880985539013228697413040323985122458449144957847834314038086539499521614500754020094989353459885366536561847700461973031287372971341047051198523896129700273716806932168139872289457775632560812312954720136093373591637132383426798192249322549281712931323646261846702664863001293698419262671950886304159626856622415760059032350451120964018503747890867540898304332693947123972178840483544255263996237751191635137319523787931221816537752288975784312888416215400705200739490141840808676148283060218526093093710886183755678060555811991445795481846224498806323339319014562905063626157465139525752031620789074330635499268091774310365176140804413503133871104229749643884883332233127048390336495386332833592864047298225568159012058672139710879136606407916678075384746220124757533996039058605061413653019183239943243213035042854358378280567078930138996172282716318502139130098358923636246526395071696821289743473954692118929301346792004642112266715373320275570518791495923817507538123714951115691927965483144919941406412949182620272651915114388934769720155525790352555533587472449863678778674573219822928697201068021667810275312208019181137134963635130683878545662224287320471462860701299020820372344983775531733954342558041177913274400337148263123013650581259116053933946662371308528653768191964081309793335301953315382997999150160822154318214668081239743066900576475414905996637055229897043004499394886444242733014146302814302235562630539364533243589644162593014751539357251822058718773670993421092315893922366143978863794810610737987987877448071011351228361962397254406619199266889220267396098380532732843088257766718058330701622462895525394951147305861982155760558441763096699655414318081143092924561836460045771752502342835205332340842252427316999804755591869950612001932090703112164071694730532464493702787307873007205476627782984814436423957916098218157724980275385594195544988578687721905427651032608788965719524571657348458852022127134911644294955012938162376765167774623668969126399682341855299619404821769935663524724422657341619331899064121318087781832026336196611125065237135628637946939112699863499788723233891085487074695610924713898672606458971975717018882427383865034873858597715518389592208967132787875464302969497814624653936112215429094256266540478026395553970831301399604310785563289478971285947305760307691071412284478774438324870117026338744298605902874078024249241129235014977525695376560318183516849775552260493222791707816488617294010841290374967285959590300377405434002198341183788744379280126440822288551880098093729502400716464353469433263366512003429245640255468091240439841881091464967881328622038245295854605096368375865159095596321603356729672864248624589330546596619290407829169892071530503579043708184680698853955142399902313922959792023179798341938289921448425733236666083836354799298003977108459946413373787302010536226861896006924803138541492863298394956397813332262800013584521411775045635540746511944676095039370386926346327393344631754294814459529799515431121842517354704510278331902888096471998013795229791359232669968099098340081737389611589562426925741204774492764249196373544692110479696553164043426034741349256168838654763914345347181687752639765682185087209591600961690827512514807465189457656000679638520889577310405926634876626912849895272334466776473681582914457719811029309557198470762202686688145726381197782440584996876455209216330306761464274265427902769049333599488144131480956350929942966990622319646857389327593819984849897204346830702418065974457716411050895787477014576016754689409768680333154598552385694826004053734597285023074553075266185934105248386675183059582030558634819877276477775605384805833032071245755796590640848011812062804516328712273612741231807787037503994085845507846933687481287361297270587195793428186012936247023415259556526465878905592783907911235996524007730898355809352811851429345140144913284530376536512501547861084374597122913950513920841786353363962029712996595862335384774555247812950949878867521951030182675460527275274917764144126966705692533919634365084866277940950172297539405551985992029154135303125439167210144196370139812755104368459391011368425775612634405929405232484498840989864990442027217891564066147001461033057781236650016848978619217492447283911212197485100162877801506223890221392642658791621366399588414283654118650062115641557214844092120208773775779594762547917905274953630824283478483164871424109078875693659791584038051984643591976933623442750773215888273477011234657747302419747193924265891812914593735868904383064979850161268206577248617992394758274836935755608735861092586707970858158884388941805369072543823814001555796167462805917512131548705932002905241405245069969812404099596606383584360459118118219041599045050302594160207089105128148460486373206171555903598065887592935070048265596396655042338329866362014211760387614555338711381426212603272515927108417525107756265227358098662771364326363635247657310032004572569302302851280470475145648761583155200726288994374811384639893940898791872309134173377912929217573743645213444798879818459428614159673083868175391353699471062789574532922734458565486313379899833050396853911323472609064058108337006301318010447143637415961175135358101141955063618448710804204076184290641004284171652155451235058678449354892694978429089607118011066839356119625224883057388848058334829666443593378312162051257649020772057330800661207487277909182320393215935489228592032808312816080096770038193322309463318550588993391196231469889757322815682187908328381953856751256147766126962981744873180300292293275516163076098457008030069566585579713422079629116462625612839257828706723899911707968398109000434761438403683356819591442257826498018368796014262484899479781802510903292275474676963233682720741107762250752725139381739357978869744700119336956271050695489311681427002711824289525118545791270117559838063344800376988388319558979114397471859255866133350495374814758877497738689248262562508726898654960059935896508146265223940124403707424527354640957660195167528794972093602112077839807723222561826421036037815284165533991901987522075718816429527646526134560117540000849558843238918887769403268494963993373974847467357271083671669613505562021164174261288926520250742808199641264324453754390452596733088155186692351046791501432487335690257153938606401177073550193476293541910106750923098238049123168295866245406475295030850598647100253423608222761977424837174778716537660970007726371311614176409903998291210804204420349786420863937674186431812658530530802083575481410471754066136548672339378450900891305782250750389558491924939717742974668174182275799816505529047078946242154337174208683772903227226172274483847015346078762688424490867724736956734330864011641403419578473876362572522860874715957760422646421743430755741113411605993733009951125346960731132179696127226912140609389813039736588499846198634225453939414480087859441034329801165527365925705231502246043177158538575953398440699338184370320802682089749646186347597958343281997180299418898440015633454769240106128193895504601082239216773732181353499036930909502846721205332568986474757931065247212643963929433622583632768314933940261106651925410852423342423682198939945051446242984141462317958681063367357270336423412983069829904016991411590748433690893044780188374939918749944861525660045454535111477043547428010543941360550948245514213465689843978585254174813107156617687804726768048525691077439227882565114127992458879567621022963369332855108644851807614887632196422756385682654131798012525779715010521880888450822614511562013419461547295670213640886495319809748226417827848859357815455478214420119300063235529315886812029614043829909791968164712258208929173984766232101345736963366957448259192817005145890299865692947112400109513064831848569094925909062463738184580038192207589883894831982084849978537704397234974954595379680774245223985242401512867580214232267324556347048346986766783728392401350263938871029036097558706374756031409963764079579189086165341548349115953691232131761542548677069116132225686968588274988247929511112649121857553607483593603188362648967995607433316612663854444370510781840902210729953289313321922405292999510563030768917117060913360607919199871480306426585181966416892336407883790648485035192817317792684346402710589908788848701827120968570300108018849905481270507555402637185156492243046851406285502888245318427576187384349674483802806293987034595140147655728263947147689124581707665618270318246729178563661340528010796041848351366550780414735275012445284376246799434839096203517104298465242263059830020088025811191775206888335953121464883174257756892676231432034658055770455148690053451152445615753623377748689515279639454475901157544770974263203795528749392791264922460451609771602051120935235782450275648616149674626286031392800840752244094609309627271802683881676272602992500329212800004497797742215091523689869785598126819346624158541309133793159044474172152432089197154213254449734597838774314753414802278660648735012306802322871599349531729371523937356673741155134600728254062373721354205574645889730087397828747795647956391788200998192276421541689906447062402355581300974428658243790933928564806952494475052933326489223691354825726279040462279092720218168295778679128398411847887770139317039566929720520081991945821205126311040496580351667180402581443976465769117649303117602984127490971844722842386790149657989293937041424029357951728729663788758236665264111414871813241477824443284318874615027318764519628683736696131782134211996686710249181403203572012764590416006672745462554634555872285755174748009420283420503187696990495454278262202430862733425776571252923349169065355719825943956350876883558699724744082108552077725638396179118454543636351838607621078483573704528195016555996955198271716475572931754173730061283863174101212562640272775458076876471156134538550161006548123329178185149435617570688868675206167808557451355587818865192187551760294610567024996306529817015105969554674792614850917977975889413868797806531764656165862569452886953181572965976887678078897309310534646873297550361825243093794063665608893623461604876600445168761368509806829247639381328906694207539603916847033883599611148115910029346858379666238428769504540363029306278247172063202333964523374013536682271070910290875181994129512645229033996534244361186215746288632747588840222790425275539276641033669929324866761902644757943456515555845285625166849932997588496304137295213616256543264373777988376918691364688695215453355438736428117722568488438547720175964611398526086004211890676583245295060819213687033236395063539553826799831831222363580959861556160819948566591062377280178649270461709798405059945287144349755892947533907531617448837724084416422461860767063432900457248068737611733803237839504139209372375608814537007609017630824642005802646138291773196070424516527389313625551727412978511422149039656215117022035578055218890901489982265116136410467360857339418453777450672454013205543001480266120892188502422187298138038187206618759858861126341349174023481569356935347785922074785066205762667811953695898299482299943479033559178113209484586829129264012691277402877796920377856535486033729756186684411149812816704668659637593370706648793299914726221348597173508020720217852345712855931214772962658606397790983701721857255238603244836348658002998195700632981487361530536349573924018469585831717613151504628330638611229067230043924944439974674831098811258401517820717814771158802076369478775131324323331715066792779286398755772934864881879105390008045074852099334502301850348380957788079444871588308690013611469310395612753508219291286682929516706020701741090040992440715171043982212224322740116781272344806838303058357472720717218061296545739177593644288452731162972023701952861412364299341559220071203190920440215815419317081748684106615797709517178756601581124750323498698045463484019680293403061760674014718023781149013283288869761395239713892223475869884113517694696244157211381099262137826424600178484473914438207175870242552703541548213641563974730916368926733815470713424248574370409138422342775181892401730253694157157235811097186249385073511489778987176920381112618610949403054766858716557454353715454687373059353549480110030633992348938949269824324823873977387002681992173220880800377318789668656747680622081712123343764047207030525170329213178667028747129607134725490631975570382929624602475669538916477898201188805288789646442314406567004840625026203686746013232781485921475492081152320784513008194149689110351997731565499363920001943742220493848212286700602211864924929835739013966579790484910441938286619523555306979155851067811980446577826312374760476170993072119173989907560552532649189721659672450969123509992117249954288577454993861810591715247753600537241823759787454313237503882785301389975126912668685524964690223237716268019082009637154148173847346999401170735336186380305551722286293756569403720259659676337214750291598258203062775236112620907949238678236076563392853079346129002249675668681242401112334990169560975842883063684612335863814357975670734049094653027520421972463646784882387812933678414922498854717034444585224541491947202572746667305807645448501067215463135637072292884940046529826548267867149436788271404196317767844748136370546566579131464792195965985626976239336877975472574183078123437506953127397317486623791096473785644040599653484138253077379862092553707746134819132903827995153284970134291405200670809075141449196094979525925578854137397070587044625764257372588470699784373721335730486545017902447202364060421158432972308326114049230603970551194649314932865632394965092235394381074191910093959207354382915394592476233479970307368053080120172990647919438735509849441660147686046192304450109496960857105587381852163483416838524934052475948462648756135913751543523260392509028251565507128753789975024278674209865200707130960263954210052984100394560382831266228251885730181971614567596230180643216724178302519348615849723529876043757858593174715992713374683726497408633055506282457660381783280093478067008490271181389180002809908667936616136963745824664629292490058964671007978495349664993645598136035553160954251994670164242659669062044770599717200153223017925862585627212388709971107207357342856877251350370529093987957615503764785757555052680756831812510336730694009120845043350327349569701739282634006141192424840271237154474322301161179463904627260260441774159583241882463479191659691966285314718974535947257801249899651081159930717766947285533899646501519710569000794230187933926104053590862984881344952071582473610979440877305106141680686786398608337516089464996796570063204271111324841282214493579895121663939090002406156844414426006268019310230642763093900081104717452206455398030337442340360528576904842609301567871144791744441661023511594712847110350960950321495803824706685479817201247523959196456658638322854775249124446341500781270715648837855932186986970079971159566764029404850442629996993986316813983750547999384288064220626349944912286957026007735919398410998014636472400739026759686580625146772574850479826584642141126175717869035683072919231685402904904276191133137551374571801924753201661156770661312300495354405665349718139491423534821488374174882781450814843748902535890782883730066027334970380646277485479766453473944034001959520068004524518602688426843606207808681285786851790641704078163008402350250461746612591719058013109082035221360389407567479550582669009263367310696741249965671526514866250218991203257460432674417426521152872454043109483477338964923401244798073909121571838213919401839736734321801221079449334839287790844063391894273084919252612194233169707051074945108107078067571057927497294850627909590729213615939286255835071025859615397055032475007138711046895872543159316051328799875660104188688326182989967827279545647262476532203011787024598404129403251260516367914058618211107811875983786442686438831348362708746368835828845556600408098845988845556224057140378097343376428772278223242149001181872095699498932905359916221006113034852979466675846880756532533964973121826840064664988075279177185578726500931104863050861659301968626694943798358963584445059973430624109992115259799832322239429822916456669181842235869624834638195841386649571439015662354607116610631079773546625855323648549024392576315383757132490573069663345729475556200970829210225171150696357064918842381789017586618525067768901731015824792000083640773599208324722878926686539216780260742007776400257045606580036450804518060903660374597139712202770733740211407121585231866261132961399241256512319492256525844750079558659210274740941559575290788862871877815793474395646770283714480294989757548823138839559212696552927957051005678734970663647109480897612925406435122196254818660301116367314325713265676524787872267449039709030554604486267035994874226708520706417673752643497337291549796121221827307252769733393400577815906636590744171433906727794794093192139198572337243958260539260789653785291483334711233759379203439871887222821469498526839830938218925432793620660226350850469856899199242049703181309521381437049531369549432337159213779937204859922892031081790732058047006706224851354414847452282370874129594978030937944367032867101292822617209304254480158663145875954768543415392859366842591166168250914036311534423955125563414238200343202123479059748392826281078365564387440014329284251635259455419812642797207012365081068442025988220443461064971451245703803384508865140077885724945155318789916392265742682193632476215244595400857405502938250207386387632228294068941876377047914942309411281162113147733207204965515864856460602470157311502655766420359035098968206667665826453707912881518409038141944263013345799708051857725078700567326284439295142810294564215212601700309449870668175572432347080851130778383680914258392175260350569296329813846836379117243821846003116721819388625799942556616603479957042716331279925908815314419609469524827524226846846285655477751344401281886200934809249782101952018628166442974823222790302522878503738576528207537262217349607630181346214571518035470129261194556465647261266665193300935780150268991586211879170601185651878414377370285844531953412365944125995892283807201073911299881444440514354612636372381700782070070071615860230289623474591726668370604732651015638930007877766281334744007524794614862933146240260573129659038420648446944207734524587294534479323806656319106173887938825207757447611174447469698852618256753654377916140446464530544802574415119544834858187356147389761917512783076936780181439215776982621757138509191288221490862816161757032805622406689341464385605020987411330450522370090680117381899434028551851413435571087358436219872395168549977596450678592215435436170135546856223182733399467131447458934583773934257754327574951805401219485244083281826940056447189548001456998140236635197322532750689485727355723410876310084756039608199243426986512806451286093972989651979150672649302134969125619213719419878648429135941725331068513664350073547411895250150778176533881099561141920444323382953759705323497929081247471235197864133797753820970798005432682142704510000387197810021729322724983515394509434440571599782809412670156167437621712300389622772943205505669605884214056825144926716542692432157103915604401126477940310895951702379317582528071316011716068281882715330989851557434388393230848506732376049868487223353281504195832586917441944259467902049068176407530155871407736762316596399917802796513723478749952239906505728188117103165290403786139545440044545457493622961730409756842264079602764411595903599127632412059571109985843730227792570009948432951728611652012839994614890376338846621109633857705551336770781935749367843123463541213402516811955127540497567347929480802408792494376245952923179833798379112090445796280687899129929817374852385992352565474104282207459747857480679252030451875763878603623297085220316900279341325380610648847410394250881313700998078588673185809782814020748348446557212890741356891771464003232969177629378618340513575853040874294450974793689194095743311713585951938132045737709157683262318662270127267245877981786935923212321572894457117058927172569790682748593469045967618057976814046335626862412963716087649283685566226596786349181738361347277337005942620744362328037004176159517219580931890100761485588079324316165788650183039212368580408456154085423508171957471199823289718405650390009294294531356384172515965297838309855480877943416566295565187927650891641177961747625870296629482313625440073298287341690171157114647930190699127262052429074453075130737393994539866229959427957056228825307430555607983318828675068846234210650379439298376528045111777543393729202390092722291608320965395230253950628066687734321665177324556363630058224116096214421039341530095871846072783949425839238476836888274350029731504791069813017021652994865639945462724086677529680462075910207879703302908035736176370079584996048550007441288303017816247031735503107433947117287565369153683006742847807389005239414797171066261854453692819936330016305568859251837819945349304554555705687571971906332215101585782394816025081325416128631259306889865150351972584524204294288482571284017330173725654454129112651104776672170345292386942663213830558671004152264195301588741414513457458777547026654491431311328924219218631409112503313056886683064372884617322212225693155315649447037385620379711907179348186793876243208889112895732770984578054070926585170861890299590791565069456006453581911802000611182175005683893794274533149255310013262865820765539570293749828689413431337017520994505424112547756695750255093546293273871377843132965805736447684917172770451576160237346832937769164735317105803032017960128324164754120175962594755933779128632022794776403498655260580172044135239076573716057238508145598736725882462592425904366135711314767081434987688556155069432310817643152697386562394612407486165209408600170277394496123980784755828736527382504577254266952350714526851767411836822454888661424799610950499643365338541528078118246266029347898403751662199773111261351216033678390071453138541638453619755771130859963447990366173082307465051236759910479097691234600626966122474534490850656187853643982508480313384233684274690141416781428296881770387619921146431339795337866249812487116457213972819933843287231275978555809577649692472548267588168281034867191552837743730139035978894005666329514973304382626984320957008054963720907329166587491233347911745347486658701482602660411508338222121051344059597170855438280759543774913915461388116914612157581378067349431163454801092362648737707271505815602741762936170146578750744659427325224449149281840850495159430265497744401131583254366809456156780093448116624711856404303027920078178549865716430293593430140006743969430674656357238290143725570213800944515692776222042318816412609108703439762737953846861351135473280588812599805705508257961843712003203324222060960702328432540142928619094840058846672684258057874502289192397883731602109359526094109196361176137212533276187057910763597227537736155241843258618391612943718812748677612571101357482050058803925025158834832538293465780328714660887228866008728685513204112389347091586764964844890316814885019483648721922055607321393783746195415171496638731632062498298984533524146062540292131366391645683137563143024349174877678439977596732592562430055652900103844389255300219498921897419786019297764076070550422718451338586911633546165755621189612377013429607263592178323052139785864636019331172872266259170948098768063153504524358127442373875654014077431246798965481402754184197560743133117580767623862855585390280310369739386082680849759380545708355526615440588743730614854989082400350432863534834096957618238545417433243255397869631362505675626687684215220938305747169165918805355679924063417940636182203942150616903786400220206395541051806021234263705712472652510337276441126019410961147354415563275434174557500851896132573867124559556517676748719111532223166236117092654200058399571497583184831190104377775390275130131471228969221119207165085963028790886503379257928333990723424388451090889557702836606590495744775612092463224846808039557147568141499481513400810032097883766865108972490817665275887617707601008778967578530439241043753545958677897608980163054776638176419080112405296060237375053159938573403211521859968481652049737371586952156341467407924099545941361374268118243742842405087703292649770668925041708779242489361396768313825966782460315834023381531117496001860767676956785980233235595281090494071403309381548993900029857815514997843717799910442136359331640731645192581537044166402000689657167447910468077793960723205387542413306838530182873725009323291918063474247565497907365435479128856441605532939779599526410982545912038351521695068020755357790782415424050423802028370258404684165198232355840073237291151603141577038444931298149833512494311889336456738379825176539437607784107935401236660324572443153162878056815938270333384936216025907096679214703232268728134336074085011603728908207346244348520355822592185664412703118845535508302407904256398733386013168487766394043689948762650003132725201837205795561584294767789245458978626863490952260110403178470284231832780055201872848281321681928393769236069626382962883170796683730026965296539392464837595741745419112228354210855542135410453805059792937338345125630226699422387483589717790563271418242333783767939258287251513080822885187511504998645060027192902053639473261667584592479245790543549241542881574090449034645933078726844973320299300385743485373575679134996755404430327819430030524265191970707494647725696931701062298288013940857951105871522373583221293977771717922115082875063079196778007767321550067531102165901239109197771811547239559779064011620128976368827453741479949596902978578187817336258888921978618127113112579640512968721286694623311201767093605172188858937810989553523096183310834101459307411545545066455480891501932148608442846337314346857373601406834408462706135360253584348398892443741242063090859876354426040520922248163849711102337002211612404462868899499976382490665393447705043825789855093500636485945399452287061544483956959783091086039480221035617466969447912746041199864714373406804047874914011481363147217826769010818562165960736783756170947190511693534045204011983355103188073863916486748873959919136077200458169852943978402013409760064895150319891240857489214678979329088135526793560441325853897084509438991406676025025841303821708385060988737361457971674601835782739212496849000339720048190664527601844244306247399548522312242585469788607644089049775863706028499237606218361974956284213916242384907378681198741010335788778536435251924746273355167334880053073807828423344088806598160693157874223199769808270343443391608891579541052781851429671008756588556449726448427340937008616949932303835067038037027608067944537490351818179991268736851686457984943178180642265497881514469040846418304745191444592708053371398426979334616271768481130754114611775359837588083785204609135979125958546946267449754399998303503576023992638215617556830540433138834985817461032455495429185285228721036840485035746202520004766118189953248955464314886237167886661957334552946532941611772436424359129089875721866692208270407085267751502020480452757878248392375879922636977354072799120147531932346640926769507927011240669334111609800088577171913964430077972926372908130157255037910620783389231264998498445782040158436932543667639977514562955219005710580032714253229095448926698083340986206580678648711801437869827573856472623683036154751827515453643767094556637213476526264229690525512262957148003414780122330225590242546924992451770446318391758884624575280088282995919643495061477583521767190522231779825857558043155134482951092498364860964605811517009590687589075807618829202309663466676744758323298970117828227442020011206817637314487382034935698962620210647393035350572546025880417634343317588366541038003398541116671809561377805457892439795774080755328965328522504553792410563939802322413125142569719432525194787914458950295110289782428152887387328686001291179014085276576725146177588507112297391932557241771110409139379137437389650044736119099250929134989264710928969720953476553140933607564120548530743814520934222824406312648037510310243969689426482108536620035863486508401128052791607836383034021889321422680418497640061513769102686299007809665835199547599311155378652463863747762201231944448557842875835720193042523144084842550760408675166540593513081687627597177120631992432415664287437036748515321283158716307805963788551034739544686342049811244297955696294916738253862999931065855446344741823434703854842758384035740848049994492065604642243294680020776104010747563253115989480287134706672949828168670469979822281375478188580317973171341501892555823684108994078309696485852005278168509492257824196931418059640649931004520223662192384370841111495108303156209508115770798939957335911139342357427024768224426299408535436255109942540722706623329980310077157069317125777295305198412151470869288358449366634929497321503046033695633291792126284491777256242984179258800185927742255930981324307023612741126534949972766361789972922829373881926998059241788989246139714887921567241753481612949610131442494263356532581771512742978611612314240567754086643128310471769352403580439004429839844483154635052792424159725698555351988275648431150381027806724692779854687380545384314369755454000469625976209838275835906780789638048180565920283336675209466245213818007278851953347908886491905146847928057156634951771538648002907323113927066822991512746477865395758184586893524767205592489592586867696783863986507396139970104415114861900881598687449880314347291211446367861492337223715115761904433729064119476166768585962308982232246535482662273606780560047859679954006651717192989643222049838770995520113060158865623166563962663826755798983979065293366756986458226047687569165238942432374252577298004382674515766897596240408229470027152370055467348087627632680886974866115956002901345123993683248569399462851052871036841788995721221760874576779388123811440103739034323418539750768737696490222652841004411963851296043761225111152370744471106648977041085215112365316779302956238873375408943079157781403704967447388518725874486412005539353303647558818677426774992263079615972930871538282165297981023807817370256088081961305107421757070888170834227613514608972471597404942903764212834784410053083790250405095310025546296604165369342650921431049539564511281628207306842751633770855339411552586174498277683162194564944987595398221734737201094183497860093020281237702828909565966705885035728497751582561671186904652513986075775006203343316762606628943846011664185972598916506899984484538034334163337696530474442809957127407290260035792233692046577381448791878973421487952208490747547586302051346935464565950860509607684217639424213333069758356311188410737652122778914341005391258268782836450608082640537813950254651009845950358967009831059840055331553653784658244235668878014383027922243795275782891720208912113649843452786078659915386145682466765839864032278242129297127794355690190844076523841966524836151504670846454627936782799474108760614307052005878332760308614319799438535544706344038173392755943520361808019198146316231549782673566238809391767775535716570226177731392185479323142978800429963380279694140972319190484524605166244878381718032299790252581337752760242003624252011565643390574583370351294942554096591030809027012934651315028064314318141807035265568855309014664975948744382070713740957943473417292394039878761030395247281334950199373780545793093403399959973605875793986013202546376137258145488700548841423522899510586039421522738114146036134877896647578629181700881400889774880566897090260537927091203899071272837000561605694819725779808553285048481784106261025883698225884163071772230768298366204641277375383722081095198262580294447896151429815972929557312761249019999837747756303527991887942557109374255315646492227413857518805007198031593959358502534647603688312529652226458146399891188532794740740335012738645205769310698418008338265212102667959844181368368672077658130231189971389230238680103709889368468257307906891496177196665655143174101861739026500215013529759039227773610658921404436972867032288327360106583024301709575456204637227850207766534439581578897057306214197133153244749277266390551025765911982444947794288387458965511955343311615505868787588520830960765056034835871467582331520399180492044415068734455781340808343269399796161918703392044744064344816396815753687703191067809929748119135941048090196173087753390110200947667256194141252776580441788832407955211954291529622386086546874316916838052687404292790091074577533127308601581446977610987200749248326697087658641162387288154866088687233608719411604889774750355827888532003911734038512620558294591349924055335628675064483457318223716797425352107969661722710189845195389719284838803766587910540698145416588028373398532877937884147607084769615349077847194174154206801306485304408528777899030437155667612771235505511919189996013774655387506077934319426975594888942825658965043877442419913103413780674233151286014116985848549202102340288580475211296907900064186726336953219462488363829647193909778317764226282962486198607733245146523619705120756727491545629824401226341884885706759722945579308027302649883783712827988536768518972192879022607488150684657478433738819014419475709294302256212109700235898962651280778365780028935250768687580984011400355447435495705379969882685335686914550920715336127543719360796060630886494283278886508908344343992609010918113009965392563517138643934852453017483304791186399317848797123041881644817895155311266563907263890027006916529276327415671585074305004669392684430562787508163079825461671136024388370859735282564588460642317341105452864109180104890384447764976562226586185526489776861552494312374993167993441087869087367302843485447652903183035595617414731654005730400244225000339870480732320787795673401963077877943982993865146714170563832967251390013281806221514659978808569021488931559066014910235459309975663360779317497341093138368015776091891677485762264720271480387450542084486267805900583081407008259252138614573646099768174150255584031621243935742885249314082341096027804962615097045553760492332441309442609301868329937689148607117787843133608649298141208957162679632172156897849564191948481532202455335806607276986818615318437622727530193372183056003023878215588631584516084559467650751765772272507620777921411430901472557902760523674522135287070249786964835061449878258161637960085444502935851103925461834842666834791802149857414150342201428153363453525323288188946111742544946446981824394305168383421795493486949773201549036874135422812407798546415894591007850584328475437788375481377657202959402885873508632008893067136964190665770743743854932888107120543180006082959604112550433818424648244237731549046527626210728778703263505637460240628514957232747353956437886611728019135861484835309515272491711382452187527747667224924014608258556920801160205478623675874825716042934664122214995328200755673528791656720356857389772664987000494797790298887603613448248187453561947206932583327425843693440135884893426827454872533650506476365461635609806593172002004110775231711075291069281085799673719649969569005861298724500126385203939335063520768271730808525538137814874463601377585694445012602022744647138429143025702018074648965835163650835236747472364668738755777842848210637236730282979696844928562580269967050547824508470160857687080272870325682398148206182425038269037973992854745898724584509153295204696352609050573852960292961024157288586205732463047396278082085729348087417089536514945320211183365475091647253834922960829153832961590981972875900637391148974453591614194306850791180802261856754222102449026070600015323546046279984679349122620702730701499851580289225707828683681543947088465429831353254629325056564176464092696794102005332271614063303481184669241105121044004704752191848720579723297964089284532924550232008126919092318215952928223378058109610370799741709165015715587203180065691316466451390961634124792862624613411909274692832271321064591730672499045325500140491363615536316292279976984627018318147470567938447537897771988574927462360241515419620935383713711157967948634285430981831626681381495848771968131597506237351690481755234877843444389487859063421152691622742506995172340449797856542949498607913124781919317473017535738196347882356129353613307372267448239797525230956939355546788949043341647883133145581584577124210549672238915467429263077627139817817165679462447410418267161223490853047773148195215423708645729716072447141092407740718166239384641862396452331461626108190740189597717955437655648308732974285152987625027146551169823805953879044045916334144800139880893302026004697269751103710529588422456492860390337565156482101299392829622050870415102576232383330626990338319770233433430743632250078075660171460264158844720998026719588981913692476533628010855032696504420543314874635638889967756137120657360016271991422655272045540482351042595814742064508582575760249777332739994292235325331460822668301042107363003964620319641727691736863013319872475248512631367342971370874387456169482215139755360127403174653632720779097757337143949346378898295032248965010825681967260016939283438423773242267581427098695650110693267122045833386960076701747885186811506163018203547773777228441782774522443323466633300700374286817081832987261087230932303498307287687409760142593929712530437725785553570784952768899385241776666570644533804248012677613561893604583059084879538321399770753092023003964211992866121428663872712576857010814750466063484383963438128473161071511161377776535635842436211969741264128363512541432522000097543291835794832271801949686267345624374941688776939059727145173417447361157493855675457430569216492647844487764247490645968173311952786303918781423169882914042113558120650649588915848904672251410820241521328732443928866083895986635551797329861210613148728367249001569733223142439120755420366781430566855484010657172521210097170491513544548739840734193611284711743128274064775584610127052036310467393243349041719612454675090258000517387417310359687697222701729266533150142821698450737828188480057338530914320368904231456552480523939039355575514819644523561494675657239787515832144124216687865908706310645688707573059980658370469629614286950996400837755759233285379856740550451814100433814366526425626714291359876569452301823110639896394166725945264579557292213927912976298210080472362125852966407701172600691668271164464551238614816411601866138268609195671820073418953845690821833097315630316201747825405626251584591728545630141406078378136158911406379847496799997909532574337550681738000261948883637428880178446026127480630553220328760405463543289621655054299828284881600535953020568368232441848365570529715949158235385337593247622718108466841911349812042321818078337221602076461314744920080696977578559497886135530321833054401227654839638807674631873644035063415893917478630455015503980358140378681399754959536021225651475214889083322561612955948284885926550238370421047387494531065448286687520938786334775063142062717970534752371818888930977367223453088499878800611594649902220005565714842203558901421195295687056637148910878287477031784150484072214129059651360800722480671994261598691393714309607204640431763513963243082805938629086021117245837502885279881652913578256229284654196940312337895992181564593646180835403138684665470453634335162220782487349092517571555568622335871462099817054643804872880981751410744232701055761921573018919386619509261145318177156537589682518543819210979376627195184270215572166307641559355732105405416820418217705150295264981240467237815746526879152677770238295440276682299998062130831475203242711914611586465418316340215767975973691739087459602469893253707966596156756222760443146669911321637945613291938203403704546543819592651667098028918625752552296569848919215055797289429102272881808699343333266721719299062595360638241922023757242447972291347199544615820766949718736437202394333984890017951179032466760975226463554080070744741161433801284275454864241965738443591365009926707192509661774060481417634047534022983310826843229303189208396584414020583492330326827468695965009846381967478568114026620123091379451327936995012560143983121259183391584661867990310753475483945138269969396235919457243838872153091412313118081884562235809928755779171053314456925166563452126400351796369419506600159490649883313270454015447290322996205864300070159288951451963958921152378903150005056324877519742824069530795660038657927785583043841429859983318010115540756949913046806512082787637524601422903364272976875166279644540048141929483871235605037551208748640658042965030714783279560077814750053735582668897505215676732485865090417529957099592798080113411102810291040967823422006683089790686374067869207990277673978021183286957407458791146257764669270934642148727576976287887596023484817660475994851212842276867906693052511213455129417123615736110649585919375723349649693296272711646287524006755215813559316916604614101773521630830875670942900545350364267891551524205725562306989179748471369511761069379428141975096181028690961319121180948775418519752749438172267180114121767584737525719811934324635757545713032580755991834203684695952644106299027190894865860075698719265340780052119683510596009415761521197653436861921285226010914006270081077416290250373255615026421976636410183469982650641120881186448385324673498154478710948114164820301498180560413254400080599606230882463309764334723890781679842807268828857281704846509907979933215904387034181061351725841732242725064394260576647820803242453257852593873761205802088463532421841028005891379224623185386441006492138980935911703333721729014322939011169237854281160405893940482231510408534581778091976946469733876003505507962644666375250907813484850217996143770805954411369828545297852241745156750342526062603110885597298268233179499693775024415028976478367732378386856567145728114206864956011785990205404388596932605102084010327912791294383000117410241254330154569927482464219538331418552173359003671220848818706856079674413950784970019587859608632986503350174301753088692072060764013229036754886792007675950761938043801076668026029817138434170142690906583292110056353772689355748652994941925630297248540071377431875545488979069693700539516816654162440115169399468529470844951890730859701097597294552134027542615860333899836719061909595000640219670622018747700242735663423629508714357205968256187068818924034726926797575322636512047092626760447213714714470440277725400922431530992119744190541939602246064422602145007604752219493333493976935015423137622129057535689450079477182028474277336900621242738734925780916183345501705324640925402876636160967703360992152838060102889782263936704849592626389090356959621797622959028996859643651126003796086345944281148399421330469627872405208620123716522497644732071704594506122983087182707219217437609996856701015578010502517914535026917143802783417968983741078012263254195872843759134373143661516221628562011415275957847017976406330899276781431167461812955594904778724830215069280624448379891541618939145433917148081074252177247386973260072883592395515585163137200839066038771555387923035892347391940804701043971601137419380559960181290973583482857419642118657763393283053076171479333645425049605728735193357600681044201967241222597570230199675568070438841181499618548166622371896857651370376764532485962181270386891637633321972148312385807561915685045387040577558109762679667558429663262744950904735213252310778787453992260138262842701789613076592098466985946469860422935074743634749834957779697281707374787102851211422092232804410517284088166164754090138147864565073212587106679560349989363395012827083610290037507831505645988091547838693517993703828356915932459284507586938191770681678626170146316030605441768585514071432407113717607316473773422174433835802185706532551829444790200158254059933126451348864418831871232813371494259909835822515796130869427402692926671213408773763355158785380396085911288380535747702276196529659938457870744820248345557205403131818311488691287201964164315013881383053256491108943248045311370208859384713011385372714311043369134151684845603740827653539409460736064783295279649467856139165047823897943880097086357751397295351045222156736880072780462669792019438230870521236648106167211342671974867449362836088675293581122320012985529150672537582498544334562523312083741598986206992336150313550510132770870550701748793655263217149539370770338850176156684876279486401748791961232927982177333090577618867903068391455767135285338524542586487847274189749079800880097868506263272265119161431973346950055458210911493175869619465256669810589590413804257807291758066202831361992286286088244371296311310858277723908624614968180921909279729274826207705207547418871947479388370651201264481025909033434937013199137713548455249417319843411997400073005027827625565948427043802155692779668247132520160148430984895757428688731274256003546623960214149246118173072275631536802311472376445186967689609419348644796534894267954501873444129243821535339348535819625352752067429917321123914286307563705139318146873858427366984832076297063214700935935944968106193698759486976709405826701819579370445235557580026941392311650297475037110993595388157486212577711392458598245100774056537284160196890461814362932539101692777834641317537435578210964059398161635197680807811155984528552689366390480618716249901664396439568246575810084328802307037169141408853152951115595491561704897779635462560979763753928641870127115328573114534463205200138957043749213604117523578905972568371426765083610411311461276120260837271812569147332887081278039997563998919174413351013198211447280622164303714619098943055727044635644295201755954686897372447216347277127902561866090042903384155591246543403624156504512942002716691234420335836413769180445782995992346303782468616717797523406046322103556977348499487840399771345550916406419177182046733015009936613068755156335259234146589446349119078869143443932471500559023709799011030550878476966808206714107596324752074652397832923763785346847455911121122956839297353389989512942512260879796529776377641297688744486995779209023011965215524415590107257659858108630125605875405650717075348545505946627307965972056262159644515688582587521766508335680574955525894265081433048293649705603852757506726078845144085546112664722067842706840199932759663345484025715122860175495835478998541056450025643745292417262244928022488906069878124622140431857134893705105343382782713608785695766680887298050832644261724463163832896164387980505883825292258669137156049516235885738665553448582567345769466848058669726102737571781006606668923909378722856653566509874618711849837370219993160223510997378693766234542486614780030877314720137400383789874381455880476092400330086132122830331684996338026616371031790451030272996646659158230383101984965985499524413962988935557818901862677471646612777811599320926483597526279572682787054042934827551530635022556077282648029475240108140543304472423680222209546174081321186051055684299295653949517495866969624949133704130611874322810990772649776869746664998173666567843219330615473789727209805507890736861119155915848474877938135835572386678227104982701771891999209171376191172874579412050710233998326191840655604693232668330938255598585388236914218459298004934975530301624096926943900094946049599042609268556495732652717548113639088567424703762416258164451437484484774449194264850172776074497522916049274479239757333196069643963283055713257820232584179411833772051119437134476304427559247470060182017172664481179131163094994237012890597471192550082205317271559616669690077445458143288325428756186632423690012168236819740496595262900191546067586356593018123247534913788058957041772051085778365176434697403052952875381175974871336121942224435954621037602163485415452883812694329402272637545610576757331187550709742085375929554348287379456568613084406499418956518792418021049813338549397425535175556495038463915074358652153084981075622365122738056768230807453354772381156635560134056803573631977421125638238057502155894696469196671835296164709067475834912746811719031719441619303717400496530938999015653097810775389371008217060326388558408102371747792107972917831665756788280374743984270649802709505647161938675576991361214392359191981953386627180650602952419989160135545006583597051486020390012277883331319383196054075689286389005367331342679203903121472359562563448180974053358918022813753518510622579471153784350123321565135004395413539630613154280411418133172743043057692116628644138941616962552843438642668264702263995292967113999637353930186839713204788735798847279958950151185857517019545064158125596831941401611794895916260506468332029400204786637724582306270386709727285056568493516456727318050934081531664300400216730535380550152848220395148562043536603354082019860881494489227422508876035469946953174219132144825483743535195026937406050622820428234059534379845660890856812632659974808255027414501495974374258068471901818150339227186584889352575766898139444407014198501299138611759884725746947104968664646305134681819744835277658482591944300234448768801328533910008679446004372207979813524643612119386590829800699287332610948552278242246284875323789382814780643120258282676499071639297290337174930014686790323812358745947978955186806973974393548416461973328320110390593515727888674369902581421210607121328333284387955254950817826518018574640616621206683743870243633754475310375460298082097835338833785622771300464130448270286864140326455305634507449625560040240488986615306759570662496884691483445198366773757066861432330137474409141072694278147797829854274462810744985482925585081318181478177425737838733195169204793762672406319081278044807417154949759384998013420987535478247120060040498190727261331781954015833508390669669026943510388495878128573054756951224616513488683311006867124795982688461225769179895855392197929861057494955134131335274881442308036727784841160060895632916136518906040567968597982750243798872360625743223878793497321179081696843944403772774323921336990029916179702309089031276229798507328184094076876251613103850769238606179794223554805857433979425098241896677703465931447826431764624428594595870875712160257189717350725022253628069901700301987763752464199889485100102192617441860374662378490071045544166107652030392538761846128964875895030312557582004067117076261045772829713553098119161111406616196009650864665818227081163787230341472709982195345077666585841350582264101458329656539396994715499927516998344377212659319247427389495329009448136850427697168167635067890390062493525029447990661435200821792252548308533185964953849149066370006442732743570529067299236868280662761754437449602455290698722074209520075131440148946118919647941103315403961638246778331103395410474902987890663772246605367811071500253364654242359980421772418548832607592550575890311507634865587708301017896756395892998304289512365338342123319472736055639242478633024161445392974144566696715817900461197403091392642498025418196863893463604921243846017326158223867595885948207545896182806624572985930881412960620583797672452801288583311023178134123087802334430428289267415408118974139643883341467917689372531258638398176676286176871662335723286123772755691872513574894352652368392466306662513293580318699944692713370385171107962788253564403170002681328849057898855576250962840299306903202357086819569709626414285535456197473639515565331609424331925598329887373650968823529767445184601544006480808571891773439592274227837393576349348010921604261655564320313115724355479693612060820559242492556792082170869766925642863254100247713056171440582683424448589105920114699360383490874737228215793908519587447265442140740392822726948286358123543161166182621786681363393283056430236088445500882847017380786936197097681500210326406896499232105748517874143259451008357422049942486560758265925843679271617096135239548272759999652607736362015221224777364019206385196182292422224844386692463723442249841739573087222511700125903618666972448186986072926981642698247938186796872509512950187397761960336471347156622985673482732279859363984180979449372068513306140200836791562308325959630164914375563380094178686140295568808383319061358231423285708863074642527454630844031201321430682692193634877311380268843161866508907629644971353599934746305927476204603651633522259579351741785652300208687626060350372898238503699896013999198908477337821448176727468902353017677367939571358774226048786873761259443821569098896622868299559771318899982703209868463019435796797586210379763708764330009595109959009322203094071249360557996906376147124225355202530458971811080829415390176471852870270063002845109149416806447586417578389832436413352100474861699299660997714750699772895065212928005606337272381002509019092774098672392782558369047445499685252488103981405701327730949463542560105125564861450486401643623403750541296959194105070188966704641324572859949971568537780966059931630519590788895779816282249285193285480099653768229327314108597552223407842486876585844687203001890991879366439995970004830879035681423173259286838248350923222879546580428581127212806435000177811413165147078868389459227266053838134956350961343685919809924241425269445090754146006523788965838079387207825866065218276814535025336415941226690825650642905573524213369493989637581742081804582025321548134014400844951977927483785140832142931796480520991245399450651864850231965895379628871564607095027547381598963101219080089383568676123998577118035779191894195392762950384121776362923599521957229622626128777134872805948581610310526883884146241810786327672485258231639376721502292977054178890980874071759358384895352242424019920569554443782267531451530996534182158835542892842477684672011520976726914069407311469983047438834246732340391518844578032615380436037227385482757639730745407826587206149260830670994594370104442453547278590965884503941949630173100716036268721828593526808284781107178588125854228043974087804816794359950868543204369509310736205760526760806822722853407340137652687660782966254772934932145620003034790286679409764254556858361703388948508023132316628786288952537931118583683602832919952757877359986802667747580218215014298588829127965065222010879303914134988358948265418071266073027186738680087701076881053923749870565580347461630091535974522263358928088401828198711240501502074373193137410997639793317497086122803578314373839502187755673465163849970254889710227106132047158008961068454769262586347212317839081988175899027945457852710978876091508422095618979964346093079123029743625529574747197343224697368750958882781337030628621650110317295545449367204281085507723186698917829525911016476573027361006468087397124882648326257169974974873565017315199787943268289500325175236217388611807135875653232132988269694678142868852512550642336983673562932050113855980294288677176221356044607237769016012249572058630170377313158609712109250195046693353930502184414889832867488462103626566061842192969382342805268344791273700408962662727930458532474785114654893134687950947499907146490178784554358152015724685364946386458438124988510151954938470262192796656361983115264849927917399952573159656911065463393053278999258703695920570231376724124911888354293040438298566616113774984206924084699033569886011993022861522253094658766424868520198486570907196410858555566992362009795060990582986727504637650506393542792397688344610210063697530851007826049489533483392230065564885389175047606624970333415744692444129655876498938639836740719195403554801423651499931548683154380127452056989820441064955380047180213730569444279547898565798939390709977535031347814431583971751835800675718408967340249932738267197435431516302283114766542611001126251462827988759344493035253815516605571505251128901567190185841150341421530230847252468651860993206948501618643501099382660869223647948589593421341037453285450064122830769998693589900079070255762775698352128659046091462811547567656849172485893035374624172559125991557935668272325801307091824521936140314191790112729876233247191860978212943807948485169251345652733531118385834502389784963023378450884442008438805598600491468647184345682231655795609504050004025908542639740516952679372161077228297940768874846582222753368466929690626436388441665388499651835882107344006963480936623560474313893012587387782991865186527658550600499140286857989099580771534358225694255810410204804027881074834368330463362751817624100867768199073984278911657546630654453005186338059670939207203261544810864288432955720589840992627917232804606828934423857741685797954329007260141822972789746481064409329632647723579239641337499772647006226651212164295915693300471381041704127379987859774245347418635910295202884131339594149347937516827579369199347843064533534345276855243357487113884532546823913287717741515967409433333719957097576998669216259421033013554771891037227530785963938916652097695974717584195939823537908560357411947984862580730859025535622070244012918226451997426653943294278149234092773512047068819245834651672193893797307213984334570379813756729117145830505457838886245719679535344460766188487019846700759837531119660332480967522136260272225685369413327974840369809770014575310421295698339309025760990991715115065288876304336202422628561918234112529359192194642609598980401753956520659090922888097773719094262035707648538924586730755069472878392356810378245807636868591809117043622105314714080847645598141439187798301459307784889561119370352358948630145109728870520017574975891932557976454952924514311540510397887587602739169337243558426086918451515004035130755192968745016999746672263088209636622096539937524437222402283101651890270886840063080059051904307470792350084353031035767985514735800638963265591391862685184568457352202086649351613395986293609981910096153459238192735337539539487178033891379912928956264391292141884401422683036596764688123426407637902329020518547157355992108526742491007977198902037501382102835639419025780655336694580729609769150737417504488172270373385953840704382883296279100964490965420417044332554353779250376022610584295536618196905688601105759511509821352745520682003423609048165368040780177970821701054976955980701587001943528047076716951083903166503622587915824131734000512698042556092932606462730222060584581486110425099285354242586572860992096102637232686365624963401764520636282103983900988699399966955368932032757531856804167975597729820048115644125195566488709612271202062047594018338287453412465653619517343968971480693241125457066397647314113354751796186946153555967658484682294248147583004799439294668547298817879436931045562116509729965655892362632337969504821823920115026877002284801240465783318803416130181777009449604566960941585898907841818202359841714627802065319454654658668305930381824870311961814237866853791044089486732185909717244631415500883998943457230364367343526094426788068842970962724733650660051325130120651413870549526358918317943436968491038082325122061018576719434239709168087033066499703357046857931403520510586328517615895120858677333632182853550496009534288335559817435842940070216595182465211532396009484338436791231542049382125677821863115596483457144816938757519408544028335956795854594723298735766106986538533509791817540014141438342585205155886120446440282717215775653070688681009589478291525070884528832132443435932204612603285923819188755660635245874419433813557959195379334445782650366136049251841788512142043759213557276081976177712531071297607887671656869752686615961506737203133460702567982194560427080156896548477452121338391817872519848203096830103897533378548916716034284199205520645655531208384611447787653265010358370065603715738468182586085130660159778097084375235775716394893487815121263753577004885601262132617938813690293740048194971426887122058820723043839793666383515859026202925793334708919681355005302283972687295469888853353318273121501257512377720097822045237188451231728406903815157191585998437804506630915828927865803553879549428179592087079947989798737593200452472279767223204591109022556213416904550720959274806584458913663784594117303483431528592913492801029011360123274608525340764714489277777004531053542095367891895816537155359048850371868608335679223175219408934245948489310365633061819343063640332715333024841531538811668754482527516363906847495695393052616149123814682669767360307061489830988776787654705476209549302475877647252800858422314205944464927182200491419228912054488608579502275898307754069677844078344560549368559949114437693672891338366583871730044046640729885835849569418473026043846811137453161308382835156036803615165341431970466237922422017016516966253426338803541427491123323728836101420509130186834742206819481205776449155797082013362392197228401060337766588942599203193326481004336420125202812867138262121061068565772571529154608367994282604068820262189371881646299667009688485411914330582337133809890287812113698506310240712077389936139601865160090063440822455319367516057551559796407424186800636158486037720714583198871101840952002776580304134529967845960200492525389756446109056437233241945279300802621079506426741990523584339364809410955315051600133716805447207555179375675888880506376024869425391431527556344865283355954437505669194179794747251447421353086057899359174229361653595417545524385110870032479904725941541043929152306497476240144847193662209767972255585115292422184089913228609887517268878187346036135400824205773731514249196560370156274227462474143474890743775867217890664364438503324589684246160938635834567624801838693821403682095964357878491702031429961725868070185250528581933068815522830571024582562457672096312096913982912927834997373443330338833975022278282437900851317269838278283435293600694049940691373915658325132787273796818695082468542722175784440537035019964596529959622881924804301562487358758910952183488152286153126673032325756601879902673589434034230210180642310057738822877955452737365641899477660636336257799742694919360731279413734833918958017116767565008924525769176459529411297290645038372205262007698604580293437587590511241120499894312332688827644924636106064009355118548083657769499190495381616590619668868553200158970931167386416116811106306418593183277925671516092997286641042101398289987831468860968614684516993792096141102302783600289769887189396128329774348431737137271578180219417861717646156333779881889749795102937774964596321130306774934682655842915524851535761484433968995832135797585655049906739733083930562830334711282821190944748963808689320795656574978663425870458537099886333497860036955681061662741329753583732522808740765431729619164245201312616961365188476315903223406908285067749671167286069053730632021047045005383554560121162264832766123741119193163133628536877275462367687695576550669006147516113094733927972849119038309002409702066482617693620889997805611398328519989132249129521279846218718281176526250446262703828738783153496900482985596709727954531286114458649815921455423962949549621884296646293606351461115575838061352708247304013917094702527698475076978980961718465276392788855160484420640174701188956992836636251083270804813247093541263923529327032894478086616039373033554249474823211759918261541763953413675431528831540853240188629018307339976478182433069316651942157066379818202866202515071432976132415874358266345515256425995668958737149613190788385897187917414708657376709848504235758415146068454550886156841880959047085171242965749078261936927564921522560176030091233143244465075013404151598707344419979640601399581249560321643210556902166901421965306479363621528126128331096254045710717340653124705446970951375374023957705435629657618874308380099059807913601542529656745086515902997842993344993779064519944108635972062396876998058373200855091740543902289132706395734697395520889866937644500865052297282946455228865355855971126884722663507794496811666715784123350526205591872275257186887048219535483774281444579867788042486772902876380081000053597248098431808158049933089973790465747719934520202257720866751673610066552099712083682578456545846672167013778489570754070611995025478914916918864054648413009186450262471401581465599271151666028956955735178561530047954084195413614754458283460629490382613555670686480189252152921655732179105517104203085724127474536021159964699341236511349841490724811132806481576040511298889104414594333995161561861554312898928041593928659954829076790297567061130656652376064181446455861342047447067254104142287400628620793502953399712653354095184540450720497115874451197385035249996531729552603051967248609575074001723230065293573268193810500636871659063999350914234197433871272464477063219288010366482718597063910290362302289986352902850913774356393538279205417267134761866087240625073749797096608343322482415670878979344341239688186843520930149790794595818202336830180021768014348092856568662446705295940857873768080358195364529649502090874228768809268384729230867415351441666513106755558740615013298899721549785319117460447792309738934804555509999674003254175502105090648812003228809392682416891994671849101732314492803604256884908421256887719980064323565369035638119923078084458710987734809206981392103886220818205701149670968892701459873951999481318243346648103874065058543080964162316247129047288253605091187456457095302411924351188749596275931873234285214026538246163110001839329925454692780516540416936297083859638867758000806065013063586053011600350648223242606558598520474549303418947070447800167910087383823251637069317435351220419984960106950420697067694960690466861613092844085845272478486137634170110717074572918416362822731696340652988728141177875035563512828525443042348785651406717499420058982073685473427098851471958259031267330922446204238576354695703277951202336484339057429269068553577333850123904296208073086875791359971581114763320294967415443731411216621685112235350700125835899305133120069571026308395633340539827297690371153010794972401685218263022585669293684586810325353464112305986827617121479028240491437371254912779019086824921918254376710657695731725802481842685464360274106925764729600214898276311887180748920635206161156705890791292231754153692996097723711012109143610121531906822251380521778237325299643748271243641898498512520828403717081530977015184205350674904464330332396157115644505988003985745456567352389854059227543984260015280166337731167896076312843106870934018539946348795627795244323110506305134356561316080298365947806947370550684021526739126839309508536153184322356691903573851742839151487751790838072745549569661265878556795454909766255821956682895270202514861675870278964588932756703291337700926152340079296150344130180412272810454788396216518963476559055537158971211672318311694589040796396469895052367146655749960553896727523623119893099560306233489916373718724417249163406298641271943885343462196244592000656387044671237985615536292362961376153999942403539542605633021155079384291283836647787164508603340990874144532492383655088278635252188327285402476385032229310903635873458762435009529493086771278960505718996830494885909468558672256230200949430929102452003133451876622389355309289648068227617465525062117603639708123341609268078930995837498761570495644773882731381226744484359978626033456908485582376034134967887757537053117223661364653079081021738164067978880583419103893893634148946946940042000957739168537282228707567967740821052159371714262363728933433724826314215610299339517115531027919227199164185163935812166375549405796066592484823082273456270929871839274696213596378004123359611145672390519316784470691610886654879571784654764610233301698897795857461337679526901826515663605996951274158501425990861325539293747202119593871603292371989421674460080818458988114710863844593368217296967166920576864296594396968280091553857475272591243948110700802050542003533558742031307285830185418549339753926929338770468083769334972468976463504111153281632119369461299885267467154776515438565934765736322418843722672148797190429744498793589204740659364670450002407237641046380320661077957511749704180243296618641977440048964812487573277441813596321022775617204426145694363136931443166296720395528231186951585509087899224503413050554033125589219003093015681611388253233788045518604596974874669650752985898594344989083552797310271112467280900011446318179138260101581566433211054659209896038722525822747884438925064361754795436967058980197319449999091242926252077800233638806260316593239298044226826073653265692662536186618012987132389866943671706856301540108552479186411087662987679885337754752579729078091310344053849163195885152052014060670167145203199886318435356173518718198257710259383588507242287077500313272267526428298188604560076891276431086863178943332824537825120008105025919745452387831222421367720646981833645879706117779745529457080896921793294528513797312837730142252095271978846276269448819877391885129048282928608231402573041604964850280029034278426765948727586865473196452185447281335988653202372920672717363176040408496279039086306948066387860821660079811336491102303535032616171186442866826589880367900155516405554288107448348048814260006276986982971241046580502085299774941665612356160645045842979502055083582689179700888211676440191976328535546293643817203411236479615843343938214795683747088371606934706483717444202742252724883458365999184200098642121141667215142010308534613440128625552341848718362575265716960440931120771226771626886539531171682823629915849851267633505185567335866095316541447170164159189943243238508440505525617429300533551243417232545727350012135451607342317385328649056134330598867542659719517230135310282031511461830244426848208875478803565929847531831465478528184898019871945401987191923904144664967560758238423758284029609177863679959892253769168836015548243443145626996402421760195503206495240949981000729859499283488704471215830250465113387952954613095876865844890908293463709314026153463007631777718044800328234881137177572659827146413732590132583267916588780689928017899883805135075647530410563797418006677378736217575274554685125142432827980335672327380279395125939939625253457797458483532361249231546354673582749097505304500578501171700574251451745978764476319210939654008014577365829026616837663168509036475674144306919971247786155973757926922863376974581985034340410066283314587322519657864646715083097932368343614604316245916709288101781725375345325141546972666063508717400441221928824350926081036840608106853251844100333677426346615562672407922421989436524245516744974616564192952086316758863627809064674791715552585329762847055071795581289852389796864201632088333033624777282034345606936328324926409177015508692544239620576746154374076913544188102553484074191282650715739621942345808285199813502618835135569780519906080535709721177276650116452188044916775197296417322051392801393606975066960040688515272180417830070145198089716786224963484673894757522085590613508148330442556158301335974673398797808250985751966551626502773655029797378371008236086491092428625917603993145732833089313352070659314736173172393998286615780346717615132114494769920620838750232539417864994223084393182230026368586132481215409205794482166967954347697943819569773380927734361136951438186872827074914358999674250740053397106687346827946622756795929865014912186515790050094564380837790722742990754835997943037903741799702368224055021244747071699400117283689812481117389632639016927659203384917322894845970110207545024129434366500431437364556999706699922311828687901024370271192591160200349962153031798219324391913234664310694331502974615660084910493810033023517838985038394247058783593050760592257563493001064144127157093609707558216659454145069247693045860985507551101234409793902305244068975599544797192660973044858598923439741368507327156710777695292654165551393714205055953653991326367669346729535898760934359807515926145674884657138556353607105755239981544896455671124281301464249069912829413828091373944709991292870153892573937751670219563082584562837752377680399955003310873360077803358923492612719929126835160840315624304056951077085656307396823177493407819566282454488584027171522962323556128424429874745489115434451456285925491884219627694967231211888892571746851972837614816142991793901594492732975624170496835051171805796699497288570068685263275959391540731550532915935328594313618003778903233263116270685397461762419069881268923191485572380136191394393993884480380232036668788109065793699317408548446573024322735832812394902191910023258968425872792624142964099650195322919633847639721434269824266590392778185369106858290823037192363362761315699768093021745419160751589554715884600197389575261873552002402737576107973469609472614099342052113262073945372646190096556717401778085716552285562914524846904854370019713334369801930308764723176810443666035236483871492558282458865217871234175428117979419308663130318685353025127659354455344566394356883226754838494704677590922970963889033610041739164771501019391496614822706289314986406975870517005333494543072190526994156537248061533452132308700486946139162128591782751382996843869612675249994409139669124964463787041275048277902986589030430059517810371828582133280920718250162667216527349699348500223918616172113186192026511789689062423577656706856545919115884722765823106307276756992673295034476971895999606615223673215380486797112650014707258744776608494270097154158180530007890496539636254737543602713126120146699359936592414709349842707417854917509471671155270067844270652133967527628483839313001035547648486540327824883830908090083975928585137401307341064409495492411714586933241350751367560447492650424581820810385800987315795352803164783795590770008563293798727638503367128936093769807311295769523264464589342558987182300335650436764100530023597482239227578052751785304191059610699502139067543698260830671618101514921102120203595676534386345177832813457937889003643829432010929865651682606232520697054844467549375147798014961508106973578331363799606374545224022191453061830274610336525297445939967443877176162660714681762526755854155966295541062230230559024210860262306751503810409078016437027602713523089509214179574602415222271097511045988392481565053563403634100848869289830510178909410667258560745664787324482251866131454259358122322628265087013438403306646943695279228537066105640813460060693966868585859738860494610397816448273845993378425609330852647016298838159563653785039005547635273177045586147969281604116449148608599469438366424603923620767432323020977104850920621571040846015281523788884190829417699816322736753794498493126931975179592307200326089662612120398527102527760806811062153255565702935628441531757757350808922159647797241607951763549813151324498741114071126884477059972686743399866395541966644856212793777872987599105235494754919209582085100617448285516085869166360379901130249981189909327813428249476308127919823200746873325141045703648758775548663249534255750248604290364002573498241775393887029793076171302283300732523244454316899476562238881042562477264437371680808206813581156198289811316816431487643936195113920153899066447865498659767106437358659519142705497611786696636182817943718818291552977962140829334355789789844501608099711263049816801835927830010163802437859929029081570346228901666240956822465583187957835134150959575943274644451024208453555081630238009334137154246388561693484702230017471307932376857445457261787299446842729854715476353598605546756168874893531896992951035619272710511854562695921047273535117595860988839712195232058656752885688402193969827863888376328872059070893391329222855394140233446438343050796757867488431631105576713835392541380463817932329253980446804612272886913688097375559611739942556502740684187577175394033512840700766142683978003800861322554516734176278688599552739480898682458579903871082564849131676015103316066224617121692815044498716699570137037058015803553674097931959941211098006068188321631484286004691634705563370188581709340179037335799400840392374037378461659140915543512091294872295744462659621040016430100988141770123662595581985635317023449035596987153404126242743172395392832479785190199978393817268846785730567451063628765942216902108224814054885610081321566175246333014310030810379282678736843563663415205391428555352054635514346387286739104900159960352101944246196350249157380288288530236014883344996986049524669695374342922590720053685318712382875447823096078373736033245796071721790642801794374788879273465584936215697269667019709348399939362722279345969904992908841196581337581502180450021475173925827542100860108471567148186916191291318697015672809345826057240350206527157213210143049389356690071049172646644204424745249682864539516740097484764179462717181916609782352845736074742503430429592811520319820893958190178809161480981944491754491680077448930078994073364249844294648438088364158374126609068933731643378559408970654210101364770788227123506666131160251270784770030172573196031856243385255229330567270621581908045302463139321069905231391453230175426572692232240655898982316713440634511959696705357146955667314640100795573273817161551513793566219423890343733127199599893644327537494477227855356097319971388609140133797553054661696008402934457143582727031620720926400087613362249499434813868397555936785473061973196537178021416150274784457122320523015052458956120085389588983139872841801573508769771226021527833219158852250945884685378659253659912158383071808518442600101673652343828638656728598752387987449542380142962634354123222913535976024575413676962006131522908787764569333592782766956821091703042985105140727887010580516530658790820095297384112887589750996924252331180109120335848149593548402912661082868891633385239164109688487375385277444370854205303972244837214511656559929737970803143931787760982865791623117875426325453717226976661720122142395956032653141432544350971619967437561727825321584151664714254583468902309820949616855468835233458228169544691011892008422213914108455245390067882753990563941136187416650269366120462270835161806751936365781337076741509156188788143184930139940314508325486632430099790821661467205041642470950083569369349053192338262732435702095633752774694619057332005868457349108226953256512969466876795198197313972068720900399433356337365092578016143426125124944809333202835896666245029332081352405449986022768602897296014535597749320926120595887966279116079629707861330593813266123389772797858061597193382546963703416278579129020991413393394990165770727840256474858701687305038941446544775227825078800968995366123919600146300746862495232160648081895058189443193695306027220463926942430304026798999414273507088012399579154766542556871446228807314242929312503822750947795433953204976444134369961888297696575274949483719375940319023910675243391001026330821954738382494476714707113705854648250856433636058033050984240124638357887340268404594840161802461906455896565348013823093121398951373752658163413340176291425673760015519056028200344935229831861045358499124425796530031355870183882458325482582542235541022360391457844637167412457259419829953839277508206376151444880064998635047061285747374621162755952764672085643494462937649814995797262093242285331956227665735591897031244368583261232245351740837334461484511637053234085370899809709067259230037199245945659069584828138679706625769886258416432697490355722390769763832440964508122090312384157364114186644296407830499339662342646181905973754086982200107973941028162418527441034685170944687809202271863819623094428140518761489672942714979952903875976201253104432704681767567677156545641648685470504835719672420709937193732225481060867948619315408792910032780430815224166552172883199113034259432589679123258366842391665202524348383295735860537666987109347446097052632947593326812901225277178625500179620793447364445356776338992730999407628522080378512447239039480071244776926751226998428256366112691309146548112112567134421039229540038876017562701051591609740373112511499419536500158409479061965297179012342596200594709074798227256319181577311926632095052050983342532728489888739586185815077055870815661331751992306800322564394568691558241118300634559263056625181891558635353374731192584262218039272274499549118865181759005362177843525390303693070615990561600750242789684798872914111713281971161547513933666696918425888129635405232486821419710519304482635221777937153790259974168487682393069858420075379089300579845411342155743382749632010597937161014666496400150909188459609241657094924109438719166324986014560593528102914881265350530043696294029828367060031038739586810922967681849620462262423095883646158254460935135614205047158485417852000372865633517476877114347459070309570081550213532924581525998397646336304514540533305876035706303680850377016249126591459364720609858932327242187105139853720833310982480472638038064855095731030547860479457560814379626378977689913370209280078605421967834198644784749093829902984929691185755251509341652957023742080047195852826102425544666482681238002337472126871959947037945469976722431288023177308068621789171865117442162324407228402286561302168959162449504817787117527982680521992319358950666539468660977920438622307708179051984613165544118139539699391022000450310981133346844566043001692629676890349723680107479901961383301958417885603672436161554045010541790896684637567371694317853887123930524449771854148369522931754020240622382358740478913684036790059579470239636872778540912060826584236630171307596940259464712440986153843215651521820730301151991149148794939858335937204160895746516104281910645552582565103057222840245537566113462704935438476313228251926419163917568069660740646536348382506277051779169833956814142677492550588376157948383298010591243387300917579008768073234124175199930205258884687930486725243193976872284582912919746248617488985637484240487218160085911204176965856004942693470478046565393956551556651253050226486776640288588703076827223141611685042257599318125630813348155126375957106833342556190268124182746733104780457881973773548131641274630066904280612879249052521053336014419938397641940656495609961146291540172402998363474984566958569199192263063337573624725628194084520929293668430446529058898192919599077770980846194605034886176448680293757052609110284225112935251331636343769891735558757645778557093599464505931838509845183234994423193022522275662069317452845871123496425029488990459735360632973244412236211432906573212901152020477517919060908076993033962339631922030923204567119817301478228617228797888276018273965029316269123335646827171679415214426649245962792765022456073506892496677684582341448015075824849752843669923820808747347481145684627087338173551089636345233991759596829082779714291123887026617589526089876983873971303845714065376061879026278205758221954350136050863068798244905441799032771505542994706871703570846011015334317818448105056215456077087639168760564933061877499806681035081404567897371316612493755941593077306282624726917905727655204237625829808033625875959644850236203016698806447579235822535761655220098604509676300119728696498503229009814924324736201980990128254707042239658383330037694099990409298891383928707185701548438946108724457959266744273996508714095494431574350192601858632862010909234139823427353459419525246729906964043668056301961425079920609804691096679720677643288920714137614578067254782141594649602947573550230866438464385660077234206912235589349071667624229246736558516936646206732895025572296868922760292671454860677434085519251445132879813268877406764370166685588087929791539317767399609945879199192856019503107774353787846551895674915607124774684279784403916434687941077481508555252012095054861515133965669387789061904009152036921684052462706431307776355566702875359545212511041850222063182258088152331964263805362850117471891194692794111771786966604176432988956108472213892512930278267972044005608694764804115705735089930911353005957655832909457087164006303765866375841956619919143165862664730228757060811550422331254090678999103239077476928518711711418248071669428664016485481676318933653666069672130631750452124539123788589741720541254040862038550771105696321601436503214862928943918208216122828738692857022057578317907316334436517586476613883144261232024156177447353982340033630446970240269695375600583076706854701419167464179377206371509810055420068524004716330227654380483648557672855208012436741202017567233784282429258417096419846621033294338194676177469813112971901800138984610213574010002827940970769621888277073315585842977195694732728484001603079346416220266169851025813411158485584753197366928929081743812259150333036928941481347954009644732215513769875020861702439172905926909014578293078636086352422953220578836087110890085956003381202894792218875651807831203636617086474234658388239369203413461090638725323745687899243908429452812728510077617902181128436801517537317757276938907120229877095100545335996895104143236959093411935578952860971465569466462389345106511405448107229806547122434172543314854816392318542461930074362800055623964420636122488306590421244133296725030954107828135416404065270500675163564075740059563664040935309208165093758989372809369022837692510222329164341740064631840580542132279556461921132712661362679915496385661840166486267311654488767608473481366930563741531427368738147190651169389158714297828147289441605327769871178651194546639866109677035718978799349118630970049590865064123366884928542111742641514341236585617345433107965789801154236995502060064947721406741418315799443434951490272294382700536053019477345231142375721383612992168595260263156749156681316722382656271204632639720184020058727873326350145091035819625310675652714701162897033519522031769548685283869147443501667698792930468079827752971711439696593296359647108881004606962010690759271693223648433775836071720661390160348866011806848328574613467404612991255740058092892793934172090056568638060763728187163419991609511163492893554203582561111517821906878801890478476573743350461404432809903496407215646169868580337818574191493706912707044291150490102189994490840032693335963364481603334047752078554819616842524401080228800881203249961431886444166771271414574658752555532724657144428697875466099425578633466217750608714231076995923816297700602636724978268558902556242082866417343142579988452408176114270269514767816675996928689943389677644128389625509737186039451372752191076989246292932392966018684274125799328904277978603105043595761448397931289468983325735478709635982266628363873533195261112138592067932772098293028111603643846965987762281854917179094643731417338766877210286889774966957488649264305431959164864436830969318070398769761798575869173671456204509606410690039813279915588606171122817441191602735507414645078446450280954448441383124029104502930793867674207267635222386421416968145492436573357904129457702038620463338540759595345819075690041747619055734858583413318553193768207207926916197660485919929895462616018125152023755546090857445825949100260077469536501023058705492291442519396348742717941534377726118906202210477605154065455347407253392512863492972960160442945373904418117705618514288999837820383354328568367727855100402433270003764759144755755970064740569145091783784577991268215781915733375050925184438980848623379955170858954305687847550386459119040993937837264588445048102591991639049154076053783994353667662904253163626762096008688949425229838615984507242498514542622708069762496386472551925507207268117094542491604650146501571845566198808085874504806520915442252659194114244518828282168085454685656783360515201271426432456737526327784732125172176706251476192646794630951282174071988478969845203438913774458052605605163232529033861915321543329262989979475249608420156884461451769665845743131116206512935004295261650138643973314041897232219073071343260473051660867882864667063560511057017084244117445119196930285952234596929866102350130660416051694758737517689986287705913018919633914270261522381962797999264947739203836706045515640800662204501728950630422595458112227686163796676936786046674565854006047040054678414248061759384278024274167617370039015297734025330372317513715885431544662557722535759000967555019888484621059020007112880968210812409565665818199605631222477912523930118666719291861869855857457832213637727341646017156949238483724208464577378214574911453453299668203994409681069299976359301422207471525596309354148920094443434234984771171153117780779455453187144605846232790804182401329433361370724227692781783520942103579322171119292758284488782326131147482480530462666110115059341980740228111695376851532471400755985235286818792217844188690894626697444989372840818269504900375347806551954826857716890219266495325329422641517671065392097543441955851270165715973516527529850935468330997874399736836097196249584461682566866144749638446044982460710598117951468757194071291936166013407438084804098546093102644158118202004942257364001684629363697841030026066215008296977554715186435391521819686643448505553053721641445191105065060477727228611311947018013067812658098148456030184226644094648940691141017786569961146797226220232926343461851458694429896672060844241853909314779765571967900016891443429073600923158142016302022909703705464362554473536649288742522802285041792102352652494555218484684060068087463476720985773528514283986211358995799627352976224701554020773169999748615898486096296837817062502949333092573816486181202900720554398149544494252684947996645209705114133986538616047901429605354892266427375953377127771321104229970179300739262956377590685100777446430160521717529420931258762079338091554819933647062578758248996094154920320568291166273871547210730867443991375043550833292339616109037850137761086894284342639402658040383723597349058131728687233700989483493013732537684750640756367755314961507033317913452968515473094568361283318483795784661891104539320777759074975122385820602428292039434378002506004324753613979578184255212865486611955709007496133006588005351610414485167171316186569854926928845669918603156500952360162286982559324032798032881110165337666640001349964071911139727326728622820383095088756965185580786654447890040862154150664713403581773363053835016621471125145709669691435154640930513056366716032193848613709609605402445962798077833023272131272813383250840850359221606337503833994930227106736126352500425739093158914043727497527847654745618353299929326931308121262923572917710780327680903646670101428054948233575205140702234534317897289432829048707667245503694903054423413742261634928063974630577813198996682536031068031797901780496539339294045010601051660196584138821992963993582118669775293631392057248791306527694145525103419962426826076435365112499190716428426090582946568344429585143524930288446491056842709829284324388712703579247143941739060960140165695980077105040412754724910693615082143649634295670891301956460734652182463706048391856129764646599424782059804322441438394216551639751668439266262767152266191836786933973534920374136239879074416572212922926329447896653980117847101523507583001669787487190497980762691441602800688245081622703225590943518382170031890522641819455566435394455061355620112629613124175892278042123918821130149113031146908966698703997523545690842875338279570641256691059840645773418500817687041452134902629461003483739868170277762770926309684330012906242739523897076135316144178301056410753545977466882193896227557583280747874589367371073291082336863630892544946563324460479900579243940701760762515287191606995428053229879821713301062166682843378881899733715264440262819588818466933550058760356373630820250096754690564248984723380436864795237917181308125714058224724862670928721570456747781031421291961939102593761999538117511869310211719042746484849759246037551204873184924763591222350133282425014518686076716275349700298247891087486359945668586500194590113051353199278921717378163721508362768921729404240668976003689435508458609595612205117566795195572486729558717853900146986057809450984392247778330729376876955669130221323941391035064581583344506934048068454221248349308475339237215725325782851600244311444873522552701211249755670403536605726950987219577466628284780777549774447470866831523085049617429186608217667657440290053112368918118512017511879436124247696286695151232077125876810500539586977638995620024152106826455768720375061652478122916701639931859797296745512965383958676494321030290559313262714619772021195924674027056088009052184972079400957870726577869690406198677218716497788021256082114936289074972196444124840491157523483986238888248571126332688271167770441878012802154492005693933856093700560594509264304307623241132996730160647074374340540782536017396559646523356323785695804101139703132365653058441046966595534146523313808904674935157468946515759592710975592505817268978840427003423468792816767169178671209190579012844776990345825702879458920413207012431197601842892738745520886155976084949217513667103313554184248699107864162106001850182955857166463524588644326358136291220024094137704242505628520823524067379834283163886367152945224988364326288250578832742736801676527335125429205590021384411743413731296450930029818324553474720227810333031607270476081405469059235912325668383782879457405188787639840556044578582912029513209563286235653464730099986809439688421720322092352051814616269569714083379962241235160979771405883728282957997204983977805122764394640934682558045701697833442767096548602714626720090666165549157594134863478239253495030894205248380720086052203052762864637037917308688592852258468157303071462572525264103500068060475157859817913516782953801695257995967473837039172888417401719035934467613168525830347621904766584910031779990087546744169661533485308847667158207882471003897825275647243795715886268314565606890881709457479541620209010369292640247333686504161313462156525683996498106307403681322078448703267120642535450244032337739988091414100152420070546420848362847844345456147896783681646310718470477545034249812518735387960363514251733946099428694286523415248534219558490078278047803083138989198001410767196716936692469478043193987214785991469605782902735492697081575953796235917160447634579352431738124428709427989904649204216248115051726921857475315696008713203190155364670053348954128194037964637358043172653098443761829235525649237551764426982610363779043823992850100772518877707885748890281929250287158353946050318635991621539755307385342048329847467936666287953519473279887951204851778596566598381576810573286338817925342324927504365945843950467267036286657128473203322822149956616748502358946975468783480518911603118750576009926739306010115810480844695207612141454668423323855077251203838739303568166400141930520947139147774012568875294449745446317923217250500324841364548750523953434068310849173347508342087503419354585705450714219846297753304799347839428435060764258345625961226762841930058795996457414705429903104325490613363104944003095755458637297281526121577379896998334759354125959342584817885271783882311780632752945567604292726745704307179405876311724090339870795629367220619079061791099936615281335505265646862727154881554385352604708761283427259035880940554291777123288185806582573029030520649382073325727375133058227738311961496296020706923868994682400001635586803613749421652416258728664826437708656372298410276249672167573985742029242831404291149796947689636884193444292422950801593451414688618595647241146488083941332669758399584256364693117019390329170191294174188162758241694045187022101588536156199448059754012351590622657451684908289716021665546129363185025165221801078127474044835292263565093570127665720845759196021476312526197858349963011026951139366520911254392302819980737900816118010444792590351897292693741526166659544461563215820992577685509137708547568069527703432407547711457283721877194288658940785754859943013450108157942093061894572427434547654901516773477200658162346377770236236379440056083548137634074639554776436075490651413600717025633954584511518716535189626449139750747094172673512978397848221155309214831515073833781825299672974624262290854127944513010517703153046757271849331126074532802229789984640066151953580454840209974702403240600623093949610730592020262794508475905927695098110520563900014838540337730164774890049323113814531219106981332074656147732624464789137902968842448853897510334715007818535872657145004030799172826583928124565464026086357867667392837121344327319189160580129627095742099825403079325964188479970508377012991802657221365001557671684064124062426284331652563338128137265433205875648686013935335227592354484255705249096650914467085871380821617269698345815582573596066740847565078380094230256830423081104212872749996495808638831488667989091626494308967321504677527511913036478825028497280949333983804914946907626827988168458866442597673562019863307132927622217124526109680072217984239012695090979676922210324226914019591963204532273942488601215666363953295486327319303427344547416973028368087882451004134348908725836436688818976205745838063679347782409499076926203115894815486697083860136184380471622606561959376781540104936180925796225009245993511718054681734202463065855960112486761180900993601690983439120468086324572154439459168720605616672981390137583491699709643246078194121155408395274342618935991696238272203254394639792824034372704008111060107933643587133790329406030513135644932534290049819474132662918204508223071283751792359901222476029063831901531244546524038036816661339315735333054697827354733845175249424001384208551211132773331839396731001348210512086773062838819995251290256946436642058020706469664640736089951270768577278739194310580586668503855417601596799827192578985609785863780597348720986463464278271639283392666928665783145633038068813490498548061653430989652315992340866529427423085936753775858469166978409236498725881762180501422609465856807386117416589373647800059910047084519394089849685938962715054443278512225268411940860067865571167132705255080207255146848376759508678275156776768611409543173122222317821330754246528592980027501988026049659334322626370555241176751386660233765121268473498591992934555327896193244807403754917170972131163503724530614123618306282063040326635617692582185845773570936302745983222804623432799242282586220190917392504761862002364827545560169583340700268492647895296878225838270978005785312451908434778125019132467099738808131754739261045121726334292213669447425493880465344468611816107430310839651836241177004195683809078261608214960745733846108642655675623893122243380910391586861849123316643878443361247725824823180790835514705156835250623448190791964842983808381678657126439310573192245433145584433805393741056523784230952888516921913532385579717316918276250827944886945560393937889238360246265230506718961778909005457663451679951464962670976213426129591567926177264502882121754134661345730278952772912302424799399988395257902798512808166801348852101746236077168872078122188288794220483173923316032894936367737142129846369818183144059485085207761321250903708725288449676874299506748672336266150423425693995351937227011987768688200608826936055155354945319550876268853903870788198416739297527420015348456957423017009568996663769691632289439129462358765120997194764666769752117943373992623058606878363711594486888572129023528353023181479653787812610573329821846267641629592330195602454260926257615607161949208121299756236113157660466797106539481258930725618527641009348120744739667302232003885402744756773990853496971210427149352863149236388978619928053536691274606059621331874029328973204271055427238006132738395658900000069428539475708625786805251147081910401332187434495918590902037559453943751266207217238158240058220814445633932146536057570652760858632597834985933241487779054063709938531616260129023879053714738357251521894631836920743668354854987662140430269003804993203804563101888515162465609263061763609712500562378995851809501792607280087322248622794689757827473315493610512002915832977163629612040172289577045726655691906169814924449826353580261614150094854394723386431331488090977299755629289764251106245242957901269932130084243812424053019361265700742768578046233736097628923088878174442647861904486278874607051918273801355843181808426021147976372953867176190612280130768518075399355280420892264542187054737890349684006456362591988628952899948386404746163706692106814153376873161868557797951652670288873804600927227239177909918877098107966325724753022621815504263032085153309479408325658371999340102178918838405382135024391958041197330667637455395692815596723066116973777899495700330034602667823458612291342917353049007801601421878380122787250621465341526164795539416600783295083180856152037735266663178516053803912751348928894513933569145003357048697748770231230260304445583726494835544908690989007749220504131305539439620596849366045134365760493898331636389986950691780251396599488764489680375063146348553837816325754632442831669568949254316370548419403239354197669317811098903115934132221581989993121105113023610365786905195842110255817110604980896272116381287027194389883765594242396405519769649708260967240867790421646879992397115687009507259121720161361040426035659082541431179880067640735386583985970430989408500762064319312191295035741876828784870362236199973783021742913944287789891858372169535778320540634876435317658223673377708042807304010149745862167261850689034023909406003790159508925113288315355862462116740654761218817986635595982581522521616054247711402550419496255398778819409815857007758614903908328803366089623863067239716170760470883396857640118439996378583855971706387007290327628485030010010186932268655365518893976743268735337525736426869508345404538210912345671031497060828633484897659695695900244981012804791106039857851804128300360082732020407513877183366917439966165299914455425634083610046969013329312130274412175927803533755009784458398240218427114794737517579331598683807671305082600772728619329313081746235835043441778663401149678888513772681417760029364083956669743711652329452032873226045853545293075639419799137672482037079199466780507344000898860223511788841879848897686308332222319035083201489529028436777361722497681363809287054373155710915197821190820879007095355104482894341646054299861978314838239761304468077800615496346424664096871488084819278881705448865332930101125939294792952527586567777939856014274442371469971933628418191047570194814387917622725427835108044758634341769935205458802724605146107339390204442251989789429457278276286586809749706981138725267929988699892704698642346281111619301572303414898456697309678297180907840597258217289165170474950196442074141810617725315222685541962221882163111143115192778754995260762365802566230447378418500405297336191608613453804608396088557060825325674758696221140670668962308960223566299028355297355384855418624337033380703585081584631488287233505158054935521798355599081530181935255756308747723839156427720822376877802139740042742647083069237869555538607296813250108984692940897089969691161818984679113406945606868114788655065010869258329174377108540779838123449861927141016206533922042441394197178885908078392704609795686700218917278544312555718707868422302327351519137047033352145581543383640045474674196127818677701308696834865531426423919263126937704531638513872618792633398140066004244187014656884162804252157152180583083955800219070103740127568160578161071799000350367497601293491702949450224930906591133814515968882964957520064417410144125870830316477556171444350429964758703347232369116043455742637499507505890868133037219697486877516919305960174773300283992829235206891388357266782968487419404061845180981476521604333734763751919353504661001020530179723284936779757441819398626443851232844881665894208116179909809739961470055909183542804681716383994929120212331707137647190226803294960183976072769579235079274915345972855861723826590965938338848239075393718529353715383646872755704386211750390683936504671892214170015249951174954565173759818607047794367396763444116745789267535706451983865077573499208322005183835535858282827890295104058131496778991184804684948275847830218805562729915807233126978947696596774626570877531405175183793773980990823528532201718324121704388512983897125805960033944570264283005921563788801751063145175702993216211481161034054884870914175501937825183642885629305118505238217506646187682418069931015464112843880625484739557732962205429267486735854959780464882327180511289277298364146984456556623013030352325547642030473358878625636448576793252086078841246163931288158409247715067250817736531703771089700387436935705633925128763269034336814659082400501260085334449547621592491993902473691275751598132540803642754507965043275753571284177003892865219586562420719494561485004844400997803804654245500509779759852632324093679847898047110586551027881954645029620895098922749713685391460402162087449161000607265485641105204781820642786786522977994184205164476552246383119729589219757970324447401951775820162409611926218286779962804217590300973455007241234748539446629604202557626435051954271361205914850686428507677141759974462103395971362526477921053617049627791894971667513865111944193390964209339819694908381780204216491681724402488943121349473948464882670052452123337114037076082629014299259470662475107562992589848584360960494579921507807201188409558122475078831451239600885190069626480428550115841111115443274014349517854752605214300111000304805211159898999958406892334489628025691611383128362847041113167142673804674889998701946478589948224995334775683816708479557241146433657491854017464951668538619014471936028217160053421548902451606749133434898181754794810589119279233304479237157575015826897806653030885746146259967240785225137351527645045299331135728859523396253500780595939406087697058139332421958608765687015824238881268501630290097752703435531757892645105948738050826557928048778366779533403510199201984654778018215526347874407653391486745389900029238127644681370647766557906127192634277142394886282311839641364793210407585702633197783190246858779142747744062370903126009615755449595195203616612723643515863512088065722039774652730142089597645196203605277220031995661048108215248087654505670215221130925373293060786898718404323905449273455046481391151707876937696941338530259153704310052844979067037292227085096159909154536692241254195881414554992335903810224061134475959286038462362724445457726724718956119151282630276312033295515654414608667893608706628153625504367018679455313124930990725506060877003058876392045180291193031960058239241768804923809521938690222116097087629484999049904073993248332049792450087596805259114136563654871080848714458441145464465611312326063010808795923470961612564132361271089471788326645644258380025940625603428675367085295687769155264581660897396405560314149946416725416776715524615177514018129587809997170183902656669604554640932469620205634935686502044582353471479464724348475258707526913875626971853592529628643749472293178216867063400953580063856268717458211869549895385612359437440199785931374346053686896538668247100151755963263723323909289091114601576556014680950703206740597505102240877801789976078576382829468061767901882197089985029158784226608489654897090117571803863205997415927882713568823203696609133071914328409877340965875414424750425345253273458832868298431990641670656257393999797886275444509365674755921130201198565685335712670422992954213434121032152465551317084397986672137028894393449027282342348130772763992474903774287597493983508435937193277903167016116557692701052487729797273539425851233262253399812002884236392623753554853187220106641598944379130436227980432016609966689731169265851752741643444884199062968159249373047585987316874470228938303167558275947766160198692619328287857036528333882209937708536147104534876014692867745697385227680330144952147462529912208456129962198882694097091671454181868966924495900027626117321370174515420326495965130289847620629429017402786615316030707720015110675311114224425839840243705722148902012731928662401991144864567077187373107594575053467059033105534407522794944937918145621524252128431194339960202260016679283923773234847649591839495620221295139761829494332969990716606780670350181867477973904189031637581327347203563587608840537276626576414282516720077496724037396047586666054349964682859432466725431116867833865329648075343812863046952287820477158390985154745803215289968642513411753944765316481711376522430192152224777186867071534490399390476383586416142928815466117166739256469866720183238944330006823104279489396951829330426615525706205211520043752116279951418847603806362530142951899256976830652486790337978171940630722369623109597176808193080344110670373295675337181760407861641726379965977861524204647265476532682749614638825024895335756990185309052046410528335251066986704479011682254887355151167355794190748990092370765578362056877881909270721292786052502972889291991149941164681698994257329967903138281447732856878230708112118740600176849668446615145462939907810499900936717736570633630221059367701020733716889952548039141969124927305860335974346826003246083060962162931506223089207965387562396842222209425877063527039155425503923480626739497752642075015285816154945683327394487338117960441464663704630932457933053638466634592452409500455504225864704431591311530628993097412292585469356415859601075501231493991986138329528384583068830573549030721296496020502030745390353838756172477480592711383248143492872949327899232787974208231126801088828996860276360354148168890764898176124299657508540403799502817980570972979270766277722391869771647122238322665121874598639777088345660813836424540116262201274849244506172738951403099442653615199722333076348540300794114708879434901466010627161875068104860514484447102362751965749995437440297619225719439610977903462345800675011249839375513496694558294632987392224185987701728581622376408641193670145818662032677718358775311075362291001884334702383245027985163865025081661932328793482452905599964708994728541061574372659908845491579026079709982922368666506053736555080852920145377081514084031642702821266854516547480922877612627580944637782983377877589939712541700542415051146018896055997101543660796656394570221279589756722346532258283024804629353623865627468113666916748106216094908257989242201816616876194067150072825316558989477572580823838649935053334939258842179193227460295562439257492735563388786442440386996797753483499395756120758903968152075611411267493640904406891294320315932696009292441802138484939253890391400598211693947554485364438697947054452251651325142294885884297284409676961153622608306594597526629624341083887212210806347622857828025214358702168932566194344761376821774036989502751120386075261502261174340808172805044739232529407835811629683012611087386484858275213608564246789907727978948186152185369366261078813743528030826656397906280280948619626885223722555556040410601914814622066921967688395256519524233694340516492309793566313662126299217033291787547525057750271387913595367429069856367843515690575484391266041077902610622310630009077083694479745358394975528616657649029355991901849181380806536956986498858610100379379286791681459220012066760318529647784492737443368440462055157181803419705314421445349566902991978143702182560675644588592426622369789153365873529443206227786499595559372156369454671159924250287415017704697370163938639963286807913848471951825427161295349871968275126359625938497053172222514791679490357676843109534996272610640106744660158536882018638236325859167262143084451522131056298747461943576427556885357222563856654125359723108047457633887628315087688440401540136310277483702158488162796348241736361814183917606475090385468370223246940690375149487533422358278712086561036717948344909579728723171517020890926153378865317581199015171794618988211317940573861368676176711357519626565506234805887569543794716619040672977385768482973527063653407626363889029398084571813921909195711356232885457929839872997163973224886260769305897968137349689254863026617871058187314969832341851632025193654405087997749884310785609963653898413825298821992757326796219881138313427178477661687061827420549093858406572089379415508050482249545852691594533882712735567986674338716019963315506805963021887721599554376462913575334962979903823206467188899381776730846437431604174859360914478333837228130296020842298488123895154324732147423219714335559465823405252069202149161679795408259614445156534927586217439153532226166249844122235223235878183876977917410645016875355624846367655149315244499416872412729064539033292337999057851216922835611215315478635341683184117335632702090392854948229032042804335380812977910384087151303318916140807131728461546779146992014983887922594140262207523714225056586942475443216179023878577799331884933715550837518834064630632454018712504005033094296419989626073139513021219130149366644816285342630589847630604999356419499028095532113821588555005933021958302023686239234511620015737215062307595445683083828204447682208858910480323968709452780547420709715477501154961046767122531750154424123995838924527402966155016293157953299928764406976309931424014137607065542255075297143984038164657824555120009203927003823523324110991096492582491103827591344718557863094916707530706490344362107526976659842429160234553580310005278107389230582679770992412701531411998438859685877509563389161258356283027003387498205102879925675630693190115641245235689379099007264949662812321429939980895505742363524148786567945808957562042082824963147867564738768257637544153512056100217200514650040799477468937054293121795144312396842744049257515356798633715545950943830801000739503203374322071948023395718712378094231283918843006851692763454713733143864388631077432169578650020316781407094019674737203312741836153687434500303334856614260851715761997083746458701284126423690820553505734198060332868369345114029150370477154465695350092790560755474417580004945511275867795088672656056679009564525742565508367498382634785281380767886083034074218806158849834743446429147569077232659015553396109367216308779408926615219060727176002907089427619679991305567898832621253551013148123974240162800030094311036633311092451113445086096329375078409223307195595651525578234747905345478097781543933574259150053805111980382873913811701101121586706303582927496241532786449621751119569207516793853223860313330591588035696095269557085032969594437852043065903859680556048027928674582320275625479341026466890098739065906727666193606258469475181525661566801324098216457934735726213855350267050108759419854998856422131221968945667580199980454318358976575494238846787012605012505146984419260079817920442727447616051745619989175964137660224839996491035839099575159995519574660406093825272550618238988737125337304595742083994961534108486304125679533147219265654240705257230609739053478162153443883791485717021585641888238287673066939707661051881945514727032519984876362154336534884715436055059535250551622519713287169188139298455259661119771374814728677259370885264380024725402673981995661469238374323657186260341285416314791892158381170532306784621514117923008767651164899713746749366166404381583108631340475002462915288402627929552475724479310174286568573416454363311362790080590024205455264676047040543945473085738904691267905802206049007313304184463183948806745341565923781076701877219286635655238576681910551375324142617453316809995628414647752477499011390660481809297185199559503617028796584794954063621664053111969516091690855816457375048785742118898836436079057626559463804399156868878504917102685938860409381258683944582735767897182279017046509598782257299158450034068387732859234294160907981330932872015732591212367750090556946960894663541570268017465966674093261631992075198733438557617955965652666569353051218607541955225078102075443282368084899220693707087721563247824666457295531639663859929278549181739149934323889538662696720170477158756763533327410529782230037272328193795159289456553455037762434182455120206288532403160096248205320907623826741394498494313036169157972974434388537928424289052986825666478609070123026083516295552946896520228683810659447254123557079043937241966714469691569617808988781003969005173318141220940918667856211461688431510587237806398027320308835583171660993792806430630281822005997001048291530081158125742306609065607271818242815549007358651079364519877324444957726592818304297493997096291411083892530373435872344527689778091261166385649138189360267377091437194420431156541355812402660994552726284591763863494763234194811523109707234973576585047299024635012352902954833580178457933228641707190925551908578013525821225514178742709145323164873108049377975931564229046503874659324363230032685399878862262074772686905003699160805925030483004508527736057228643800363156201083114335927085834537715505094443685314182098199799667632946562935719776986747075441233562535068143475303081900357299692976438635813411581244543696333181656022644192176712989999184508694108366103006657539273185541151524761400484285154007923036868324519254027153159209626870133377319116231778798476054664016939462695885751475430667310128997403893170266065453867039318698851578461902792297788977415076222116667876994295570709969443752792066552674634949507861060449785173533472160049893215447123915071535352656356555136839908102951253399434172498956275804497021860171099732335821474551035642142136194791798950340282293192111423272044073798031767246373090430554643833895372472328536251189808365705727572329678550779791768254844758209215364842701151914874860082863592839822526497653799158004205578102208586373451349368587497286372975323516036473286757260550679861651813719514450839717129525624253286669265597407893261778580666162465328386228890441019537317507759096553232136797120302295507119128278353101457171232203051890762057798980394138285385785800538013571189425701227037042810755013235604242644165494121146691687182912376050893113129101174163843133295730604429518703874451818020417353841359468342457431529863788214861962041331056736733809844547169612760245755684027437386286874109503981706290006733002954024910237213388757547060243836470527535878737478825176888517287135366764235589858845464263141828457057736192145271030846293855278237081519613698869006604341142866545790777921340632353893220026477312801922331577573996139489886111592627783999187221554633521255861162084742223213183283964544507778778006948331592189693972012688166047109179325784983487746698523698959444431048334540847271397199593489633921149501652241042871287763302773456976935026030009651959652298282290430358653584032701386627417658167925982414369880916982739410742094617811179190997686534389364198412704204296813205279103654826448550886049209522711273974316130444430007009373073358119369972011344266099512502917960991239971114503899753513447527241626606093483381739666448595904276752393405391824318028250358724839699751216076348189862398311510651566695250395978609920584185977622931981969460629207354849468562966419960630931639004722790059408273740452316376448277619185350352612971130906144111374223815620743650351255329359226051623308943416122065599807406651670568742782387688205182855807110433330811881638105917010584992685301945722725549327127360947168326074528553995814231798761762420344021691406302212972768882895022836148090677320662270082267100883075852867612328870785029419357997382001674955568810562205333863933218104173360957314455615677047249400822409055062069742418266735119833000470748247473820734294033605927778140175248132544092046087041701250194960088937986568624361668757427576352901626902777214483479332819198253542216792891550905299783470788229949843347707046904261931590078420333140424350166302315711330779988244058919920117490151420397432899914375865426035903567344483932616126782765435601829841709681741794156293020664055174751152500356736314360738850998448137732202192048246394432994520695647331815208425661882615940447411471652164626249404094859587275223064173949170235967290553845117329588690550353239424046684955210886785453718479601483638172977668364924255119040354672039568938389959639228790401116901841978271663168295638612244552385451498604911536174075610254322816462073015327289430990514775092112785408086889726389070355451200894095277333742645562524143292545971039625012962770808461049488100832117132807564130375525728995987379038269893559979626086800016313570467689739927163559416276851212951810911490161167882832419712918468532504271032814126598940379347911443726238335595297737015417771694630832169194887505717282895328311812154101307274875133949545970989193427217031292152253868585128837862525958987964334625731565976672075883290403361866991034868149079240412865957188467224912964212338538074958863065751158125762730778387029550264278006542212183650531739716493903033701619887512184249214871465924857633741480095670198592295133035900688576281175524138076353444531072270285285541634330543087144686024406126082808729102486507960009934614305856515468658162673487395629126692280022707394918684977539462362445286617680455125949505967508856726909325734396683862480682718232939807663940856849259304988392811335150393700331286088988598059320939618084715232620299770112467560992077523306124999269743018680564624734373903057067585857532892861960784823754235740665272635783219514226279730310685247861761141088997770628724219587403058501276655400661877950024470630486323684856214940711151967272330716587739934707959443161377750208514857289618770243633726534224483026452474212298765572504350886452863941120233524042715092863094292929183762073605846158053236899353194448360413820928925406910792111385690993469933749599624216944880709676446370584434849143086390623972341238427631287330486076595067347192467792119711242392576718638849915677100767211395252111851970758560443612499033958504110218108213049339262037700445089621534809478192674905989537233016960576216732035528645109476378226754211728507830438266041338495978187179598523405436722054414199289475760900721835570108757449163636510846850780757067003437988160457419482701736890305472787663061493124244354662716828657256994710911883773921247518865685390901693785230151510595871245405058051313342602091503663491194677348296522660234031401233846552596331903146356963825946185743553623370702744698569660864594878508625702199427530519974596311410878142930089841624647660196766506715676732467619360225514635677570401441728688818539427065266335650794308566605109125220611529623133675761452073462708797981279211015783860779162253444179983749103529812361990001030733774650669330989476540519473062739026409328308706611835265671964667117008766364582162396038004321795894157024992147577310728994059490838395549972308782832690070038761124744163730337517388413002252190966830166594364892452620879143216261612733337211724930227799066474216180950589024938754567508499112774487917832173234094535350294480031523840728527783406836922049277403914457336048742874215002227978182259772076878929987111444549561642046414222703054333629431967409924390076158237810241378182242391557227680029355106138936447194129734147868671574295662841774955000077250340598750747842436012725826732597164852820133974321723205385763164436738150065936969007494152559659576005666754631440558307128292907521817379278438639335900038463491942360936900013564240771818159299752907334315927226861667020738150559048357258066836183128876432789626766240437676397027003195756427133175389317988962506315912630155982266191762907187283240792622087515813420192361102942809724636258627577540827661155454918800995955218777868364952550949956797492513717770441736544501453532952142663120962135681535154186402379458235465659472572045691278834164340870866119941652267462043334611787227454510421031339014110617230823935067456840595457312556828440216953986643535626342534148369295211728404927814428729761550381369283463928875183199367788758683444242877262362544319460324734973668861360733946575892167308935207629922986267440112890411508230478702437696138440242363861442567989332390619162942159774693695067813815213080638241872712923864503268866755519299967302685076809576221739249226711795929121818708258119634849240824657907355658980031450254260859066873409078736351567520273216255871468080315332113088653976662881865370016176515408366844552293093161418878011961867156833778541720645984281426267979046516861684472860891412558400323512842875292918643733577380145917801719944659110839701386735855567563946530566986786788183321484561000768264209944170146328221886476911220656463254064255178478014095308279551056596987207118934662141603309776982732357152607062677023991559199125022959608481410428886689037379895083052232946020447507084839074933057959695829292572554780784070025888576764857408857506930363680266925042607061225822446160400968207989353633574953634437811376009153111279978508049670644766041410884719476846864611675262536668844728187559737712648725453149177870753001892327837356927814743285697683035115020379200361533264730372860895056336353735501662735539744971412382619307708486428283957388920237904719720928713206610787250450035082545145628251918019193988654768270760368731851095410804536476314765907739205250590138424582321014089712575893443242937837331528729964873396393322925399826234736598791983637882062604361966662610060113646034604996613193339660434816679591006143966843086657664077866151255143579240499699529131011321705611957449015216191490487896969716562800618556178435136872371065172507875641251769205849702964652437995787947836148903397049390813743404267993565481632862912350976714230512792669153805113236220324262773002381076147323807090431227903173972993277526475031435518235133573867723403289941113948461139440804499534063939234372864917136728996846943001418151486961544799857626013568728645157157557532002840053734513787012832256549578560358004826990499423603344095448316694090390389058081178840271515697921344286528649755801169377851180189532794548132990818308173431005872176153775822166901200322635295127318800231664094754502051241882340325213939769632862423621822406885765984462962568537691252681608546706311697564975326560904608661953069891566941514099613391451727081784608930304071199203597565993564989305151851791733826280274531736179068230017973338512161893626758836846221811234112380683371074331693886828998294431349771369876642192282011487463474621049250778971375279363995380047876196292311121166612710884848459862732870307519398529590578523166765034730443415259133320117222458521436841696378543488267438705928329667079260008387657116761753915915403679497425860478925289850084942320540640838024653105566185778575758809592533509491679198765634794231546181091992130643140670431615257086041273686056289102965968426659041372143355195095034509888969551948666736675751666152394798358147343277295800143506365444414406986569712658549471110214142058078267356494721806456220533610176583595571858777892237751230925520766159031243313267600604485414932865209113900998935650228737826043946573860810705051495692274077524763473832667186913733270962883190435232003543442991051146980773565628411059174110099815554852703692067911106091450333048904855408457617142877579799812582957976517969376207458420793355566884782988901904678571161490840748631337018194812084437578169544117191123802416358259502231256780529334331267471651905011698658303032214175455715957164537551077216139594296151873791194988906756312931266385957078213380888201590107238180824103210244171753787272943328869618555817590711421087161344691263526518923967218271227980197287952172439749378340554992116960273288235727422467990575746992186049236070946978959712105178287973547300610470217085435062752273819933370712946632046408531004281198413279292008724311132817470890887982375337085541850028908176593101940526365268719093450506959026443726186238985089684997165231611579166946816440024771640342842312733376084031549894090465680849187899400026724631406978657843010538052726077569547628703874117348928014111216899973219379581010781744468961830351655111559410207364945684987471661069234254933708876262719046785111752946586356350671498257814302909832964233522382563816018100199332598155745182597283176942065663534820932866726263175378680962861479044887932784108961247260772700138673015813015834139852737350401074977692832505391959647107307346851814117012424541303722924894992723790375773876186660711385003434165713423906215841358731499651258153379892157418227759623049553680419320951383165734478225955509739046515362826224854205346043208686530970282714772216577484202014024965978848236680502332174840932153339830283632038440068725975830154830015210511223210305552464823002732376584641020843692617997590973978492243847980133889516602699599291001425957177674799890913995666220872514431852682942142721864144239648649875856240740305406162661282920676042000097300669892966680717236233595503858920785416799904475199152508733536800960317836433771893952483238962970356766597385924608459689736813007238285724933579853300763104576888344658164245969389572416438158856078506358338208306472706222513618098848449241983759443267528195639939934283031340537883609806568479174045498343906339915404987295887764138435892826559251981152139483833991002592981379435911732547897542849444556345166833248553928566675852044290775187367041727712572561553798031280951374649638585310676812046796443710241149885412791205324877558811727600256219023208398139797496573057000821239101910449699923111680650592857287195312836028330701167569221618005016424754110768682691597200864473894914128170059484716900185630222846493461429462169569271862752407089682441016458178962368395215650342623889822003137534621230814190413264540611311847259104351156871598604855907690586200128427579466049964985782671924676437119055060651213168599420572911916486033682119290069218121552793613708127608185445698429114729977651564481276972704144494695683751182563671080650143149946228097818103037318500642648747591290915739816706150807674545261796079556361342934868643687014816405993108506694156705215448075304916271617520136562018357676359579671437203916034362307595556879499372686156661881648253618681007179493726205657383557741021793145119646144331916793076703231842865530776766985742172957800093593006702692445788608591422859264036880240092535524315856214517698149846868104943781917046016351405705148811216914938608463181131386112306863996390283955028624338557083038030478211672120311452075767816786357147359140631933240649601559612523903151795133789691789880999127709696546180254381055597614835336460028373241703915550393124444517264893801826574017981986857384758143418978755370243289355380999793321280338690316761307822901940523920292884265498361728171895664655095165997636076641059066371616201706979391028314093110162752126000686847631728147500601205225882800195971564351570380332589970364560730328644523621638410754017973886558878034809877148964351206715802033614745471618678161388083746785219307806997490080000257438788332952637054546557247799284393135468907145588438627013597019344492307609677543506228293669009681847993099657556344742366306310902493665338254930578563084815480979329546559682948828339530201695353843692330593540758991767193859643014440070695258521073998095555535149079261100625440611775835292171667860578323393149145537549372633693222006176902269920821238476184422423130128140323046175632941351792627828150281164917463114394218677053514143190246970635302097943590266761223188215248618556464368050386598414446986370835303105514756417663290135991141812534514509475495624794195217311713515506883385865822636785181080672817126774118107482203229451933968083683993578187667811224013553748635256483071565571061555706691162351095457287777857063819065454509524632588998615926337110948000659548304847376193881230927558790407379436656909474300793421492382176632021230504976163485970001627770480446883372452215744711285189518017851493747227985804086519851177695893813642906727170453805404157436087159692638279117500092575225828660949734221312083379379201803735176569303963499825255328677808043351730223971917354431575536703737433262141942401741767868809848114035130027075443886836860222501855249018892102748119463996910650010576656019665036617780815311626294395415709557348875158037486220357939745825867981139655907560650075363419688172263895483458282546412432677542364351409341982756123817127411502943510489893475757812895750193186619525095205223904595563884779093001290951173203196170377169313862391526925549418070030471339249892649850897719138636273885653396776760215430164971514142331509131579138583198367362348251134839784812931533941565264102181882121103727316505652031107899931617765295023275685309118856510815595125712063142515455374031541072414477888852862574097182416320969507312817651200736372806282710399850135699197420264682856240262625520929476027606020499681558590409683411701914276844845531516683853246426186487948940890044966905098407421300745555230122942409213676909020040394462727704437651389308895891891817968003750787998598022864985949343023261920401862949987742130665901734363233886056248248308098036164002900241385088996072827559048909420974323022678836344159227711472662497226724172815791236468129518413047958640258933130074959209803400538340136887853255801811425865865653636501472302830922516094443727097664804495370968151813119702235833653696702056741079317228020833224110032655307933777065157330642925679480345839626965513532714882265103906355580432830746905097110012843766170201673719366953572881929237812415613559209893741710896530042797586088539435746074674799064467594346694660084738326899193084124221373004913598643017015667217419347174022072796581541985259880595916635119033846084663006182926007112618285818186922735883065841081825767450756848410325598173131882854961533692235363522957362369116366137313087244416275315868729040610299931563306638092880319518686411053209169162473262768261651934845666058200752994804059686187899809701830179806590024113632319735847123472369229375963484948629010322177064492186811613848294796684986095538121792863097574198732683013293328610437791402602897670424778469476141891865862244699591232346450751542759646689222504617103688596864697814063612260992321763876407666636304034958918919165121771338067150701692924472063968707305478209107105866479288013630025544511383280650549890040163255434192418721773943466536756591290057949857597298011578406542427013047030673179323232042214613396320318282729898606970976690864391040320229667469412175430545550329983476117801898939414091095105985492226989065334262856939017548273549951974065574854377373558415390231252023193342435585587723596520647795522434606156557658821355074685078596159161473947985033980022025557687749961604417696597647317728744866558801595164081606140301085832511717376463891419865740929804323328803720299679578041199010891880714833557169392355433476288959330222243402332694630368967042210554219124092021540549560591620679057678860199902329352530803169420225382394546836386885145681348072586722528282352410518226225279879856794905737127449517486761135679965271184738381910107173991987017871312896029224764838865042169494921867942911202508807048019330433754279630557588542561459829896513063555511831208855015397306969148080813906894231010508739273984904012927345658474663720709816652434279192267778650699424852196294882160567048523304004892056132568753870707721291888214324968132688174758739512038874268253959368154609741478625337869862863794050201286008545062499477183659213676398858619833899014403380841729140237442265492024141241676118664876115248145842232147139583079419941819921100920638002204670916338524808698552477326547008344890426140487890943770394522117667972117201055085427925431540636939329434310350030094365817309522074330941778659425466653491990508000851592984577349641029773511594725204607587451514559361514973274343043431931625361572242068019695334619389950694990186753578750817387540970145558845154474485527538715408860541620087911698305816775355182610516906844232554600231485527385810282480408148402882614370441951273034004751865002414600611319841873451762574855848390890006469960801678893306852130597181047547000033813224784809906240623490370420353644489431044151137082539283258410255997813034975506647131045123855393862481100732652605610233619864683106224853814720501518775725714166149363760894738909100170653072633090691244760707327702723990098459242543832297958065416658230028033434799428089598957876547150815452650755982962518905023476072770241286879293676938914709400462921951933420774490300910893057131117370928745242973929565015089324109775653506536680054909043626847079801947986253289491917990082981857438559647592254705505000421723401560583877550515481352978947002956228653215242388597379297235111769810411220520371504524183336550887991421568282500163349098081840432913033963361075470835166753339832603045339868918899324982476323789598885287726315439211693795359492843277162640310480574518001093066748219812832009452934903435913031990010304661483507211056215935832738418482692929278945963849305181998995805562168331740602839460227964251099427285233277846520852181365845489089913798077101498053141483793778838575967061381303636326350587132438249913281381598814918131012249904089913926863136639375726750728152821358203971186715478651365131138097192125705562214722600540961828175846216474082086745321471313383563152330194457281586492437559676383889882987078508735652985579106896132786006302877050749231468744489195485868057221152476160718420467355856416187445899319103478055303231641999398658383204744222389826363025151091027204833336755208879938615779008133615201062446761678805832823782372604545407658822025318758719702879536733603661940327897532630470963536979108256977195236217710089036542394475427650885935145707588461697114603573221781995967604242647619125012506455385173898844790728992866617009280088064708563090969901620932425872108407731546002797781311875809022472644997106593984245998959464714818499880429368948828968795658176360302230562433326492311035966186459394736853336230908702031314227654604815825622809335651122450375309537683553772388050457367354779094909640413119372831335390108783285654801156151446702221490493993777209752343550469209188711229628762717797975570055684202635468231011705638309609748089838416349122139841197251763283689329822043166150025648918236221207581212339528793232181234299262605120431883266142708773308794037274514243231206021572236163308196122969546160313655539510856870525157818776774353982642640756843308963211534645430298240795030497417782133759424622027282906201608657974922068224566125152942602406581531177553465858320943326691003796553180757876362675788273538595952574403548594211815602637201664874434051249325060628374523745427193767415490348119405049146035283510366956307723319380236105666222464889484953002585294424121555007389060488186790689592211480616703750612347454824022185259156399826815104348579622016733491017249315027727601196910172304950053889085447491032055136091776657360683088197915301367211073945388571833803086393803990913910817335026747852684012180582255424659190704513227009706391355939370314285913301363110760191885154666120754512169278975940397968504605056670140604680042864031873585018111008266655760351050401750198084226266041427236366596027801584264780960993191145642994556339966436142856090431467060474853611188192901094665454307597257433798142218513836101009559184340641720114505077808074228568720773446419099570450688388736697975792584944800197983629700551627853810538685744391046764699650824982880012289184812771752292729242951203540357033494059949660368714217036073420149506168154445469103357488850653936043802264410080276030561181500540205054706897209466224329032199004488852452768758441376675611340478028276399800595520872591396662664678033536922661659865456556615006662909193926516550542689257720360806890552045002767392546539520837898871526181768605216261235697751319030752559320881544125941696713594255442537768950530216822267459831974514750519695182988176856519927988404001236358299134852620838072675190801107769153722666251830843638789894269573010100279274180004446493051985975588466861225334469351080635471487200166253614050769278241891239066799642314367650653494570179930738931923188061065537745227098687937920518004156489163611143258090602634018246172703326646469184130726645024780118066040127063936570900932927777405313249186810855090769662044633914853526037670748369908292857220910843124106229792520778720067154051942035921606823625283275297173571097861181621581823303591358641623082901380121973186301900433820085643130041986222354416702884223656224116092250799593074112876388885162227078818870652760359106744664151894071207623098132922896133828687903194619365318465484990631189456986308498099956631807911264954082362614231112934390939604271181359190008516882459888861882367576635837793972624090289801686111269366813595318625412794879520593502087706627843981368143180128063672310920051775635222847660437682012441270004035870670993825144456702099806317590766184909881152177830461470971196244444907441840795498208610662660616063622313334550204534067274558465652203310794842256760182306407301231554382077280292424577914107281488898686799037187076377772977079409653402049635645989288481975628138382163567864902681827445918951192594635477599845143634712779246164237339787431990943515688958113802493299311706225039509061524280234643280191291758876329465453148560431297145737093504508993658157966330066543543300717972936216429508334698832464704438300360731289797908946005898465291734743965338600303512889640508347634612375353173439322171036962929950920492659791732581589826263631762405140362598794386321737156389706018871903494478107173311732163162922552146823798106251863453498247232722983843948097376200721052365283400521077756851457089439671464433113902521652188030416835571590020432955138068910713799601979894473733498959617465961031070068206278475148464227446291794102425506862063160671626643421470396833915752031766884111605876290309768464591989294082544800730211546201021531395925118108926085822502667943817344424635546965860064720623977658708918853139520707679223563033153215282268445271435838318295914782346377029269970706817728522291438831607067816099031209247678398001697387488492162180330080708893860807055614251974246217622718053278277526309622779973484038357747046779980592295514916055197327339258291460050681829449646255168592279006980821687360478775680452193958595779378094604671872529668226984093527596519495208389362999154233577762554224827231154356185044905316313789886563930142045809225713327163203255461401785636292473200372092479721396666188028006883855766278332578679601026713923531906283274666157441810351179740921898810999662452782748065119475062401232175355859245026731574896871532071438843742692641860417008854029492994481948496395731719290817848436699235252399684072436780236125127936030488360135072306390242901258150557673807357488548272961583406002573074904412352860918775143350148960047111718887569468373881773553911373732598015603396522058310443246335470799228721800166381173548485358096900178579296701299647252546662807304446689045979394180370971415098162006474502049773008391949056196081666497033966454612034018774283574133338233341134635111769691241756020434824512502895934975943781884283699354594509406489324648159852452132007449644362661851659122564593871726288307629543042615374345367870106630755261234173322122464518642111432481301837792742428750689683922145921306502288690464274977808001608071177216885825931740350192285650164587275313361911316283187308847646069397500694630516529918620145078706094692443312222054980947970460679722538252684242586398818505832494593809571721310675351670193841922999963804289287442129931566136608828977430870215077377741542343322258315836592946899949164905086255074405083466705639223358846363131231089336930418002367858884313707350066049549550580286280243803878833863670892505442444671945868600608867925342718159724550586814906994975796333940154498530422421764747939948584905980587416269204267841314349793986585313872735401793493638551437390572278066426185578055894948787831273231517114315061392577866382502922955755621845497800096827227402031401584751015827310089303274324202945503482901303420754995298933283595737015415060381184671421221683705349724214581716266558463254407293948567943081278676695626335503577509258376164949034612795922744866743373299369168451644701421720336723164922148807691916517389656883422221198032373784891624629563712171456782107114479305771191329171622082205659919983082281713511754688296467394568751711378748268678590016382858209789352223032851809987833968779976927832149534782178269943665670554934863805501743836969901701285182735825488718295256951374798876741912954626075223619619097876133045864366400482661775486588464514601859181161741261949756345876061309405398035548364046639404593996948513896323893135717850732242139414571790621309801869517500993780966316860257967532920558434609880464140028900091711520687729754693006192851210716449902466370578634609953551077796982087463668311666803663239297501819207861841139688501538441164711642644828708156344416018828720463127152801439474737631387688477223824113303711142600557458146585731375251144533717576413784222328946347290921185606424347465715686392603373407087604586601815850184381390799416314345444909073644244796610636612678292764210104622071856721091548117719836988143338150461608623147417529535064959484620263861830850921608645199473624458965108885987083409960308150438136137659124776498585408115348412154705542309266204737120282855485940413126602954185346911109738571696426953753906679143421643148792835974468975984393998848880842472311974546739949436394670399390093676031684365945885728060135157781364159105190964386359685060675286598061643754105748410663368513095476563100651967675155455027395689875895038041443611466729912092291227729891822816324965066008186070034180941318181900355054976738056862981541494578937062731526412440460984190637790750379093756090418293080873942894237583071944327284837000574686831358548183687036727059457679069415062861840174546395810766069508441249680904650513862039338615777977920313591263148767023530203504616914458450831956780168342990410114944418935603058422948374890928187415323857662278621238580346266181515771461973230934300205087468463697599012328246530853698238346914144709043008609436801782111668093595063596440983125728073610482536448279953967362068192431738131675446313853331639614690582317149169566317956647088709362814283250227069362313859274824418668424168827119751103724428933673927065708282155908698365958194289701990170095358191694087744866021525605248367400775154133606514483843991877125734935587502728476725046079384276959168151826733297337562089290655933991539868421275863010530439621579281224268550540011438164581769450204338526293845766321262016016054380110551712330066372914855417926323567340313836569640446170461093753375531680175288124756778025990523387661157571037861322982059001771678074081561364413087333133576854954509788768312805718382717727878942698074369473060229146302232904184381065770488385497483371273249296890301398200106071667314224377886107231380303922720217871566002962116347279454661444684490596547901832330534228765765573025474856687937637051974359707938932422546870135533397728972205680994750316919739357497387081367961479916239307202657786842416101074196643534076052969229124982138015547611036711043286546407592351907138584807821890387940982809989050769422402676278020672508046191790510596729222551659266581334905737025176171679133238778409083845106930566037474088676730824866362169423216846429539122012322873130415732131517919128309280373213656379539381091420780289638991780820776275266193194570982299436974218238018171981405887837553010927203777319020538284968766715938221140227225601927418094993459298433406711280090219890831231666760606769690486036828700466782370509237373867010358996830494231849250128596041239690208909552098366862065002984181527009644989502806299409083043712488784601013670379023843898664190820978684769593644095182893553342027404857787587549657389885552986360665465059515205688189384740030526541779625671596789381387474853984344538436281428807147817865080420108470658707757016167421181871428197301041461998521068780895806961571618481515323796394247849025969234659064492084287395380495674770842308755097045371594233057773170479036507950806895799435402349789684423793097436848479743541107329140161365862789623311261022720513874537687946315774703283237873980642479081966158932273262002293602481994843747907726122797374904172294166892047944637950173708389597614868070117996986382881424530619716200293524531078682945745685681658605808457270541611401759043429749464495961372617340149742765054709914320991285313534994071098680436649653210099582883843770549382804028978197368547121063848179194998159143948148470321086601050242271467554095681104189174586489711107983922554337342089488523723355446042865550574766201853358891431203049526672051155715532929805246852303392007615300472401052942474198363879239039148725956216243939579529827284018272486031143395305891167875532898519327588241265824470488688358226036823795870501497514324956125889806180768941403649342933042749969721810928770612842445180388620074873488558416195918817987773421390123533904574163315958554125383691088900856662217213759257118036549185204025402386607405171589784904201153621745265604405990598154435611233773690612724302316690880931865085050029331211106820740980494748023742066022031903918926553571891603750204484795226076349904938847914541972742848533495117267251538769325667373892798829955624950633014399235939377026667643445673650973803634028531127847273075608284192160342182162771353320416223505509712646115210576972266606895746092450955035295110551907826892379100025388329346175364386044027408654238320879045843179781944477614926010596768935531195661467735232751159790961429096663385903072844348330633422468016774001444003628202402796433010555152871231025487068841293490335515535643230462462318145828546891005345170790676696164111706220388052761408845187386993634186328108475411607787249274795748074661240100063745867299253124988842274801934116404461133482166747752747666220539925621661718538779791036566791228981433730303543727325225947867100231156790798762231956502845136613516418347178225789475183078891485057962142865034123236173372603472908308109681896307787846438884746711514939274292090803125278876707691736025243895521653417596937532808878964728421890112451696540789445510428651304373205925558922800852843107220468148865201421458738631446272739783912915859836545866219632356594128333215725517274885713224806666528900957698187086894193403031539130381963500896323699543002999773686477212060176944031896392677689248870646710905088869373179652081244763999266170517682171905054634609878248930497767275731613843256418708855465637540181668443309835316552420412782798531527567410725743565050204532286663166307192372083627352846073757499239118624128196146886581262234539136154956271926238992659866364576872204657907917145993743853619583109925687798212546983958925209988180278659514219993200411790100266245837043432231540087118097787596662401549228984051730951256720432862196632242754962992968930749092265657789570618158558417633378617488074080607493632338099208349821239378486969610821324152449715740978880166706528488618242974484760720689822141829725266969791496415529655222395154186903325507490555439368221432097920959538713294109558376776303153128765365845835290767684888912920364877810403208293528268203611450430039540037149314787032278557575605930762170116760800543290541167619591996599142467568500723692110413989016387611583544240202291991692564512242523064996168107046345608751408227975644457284377588969481174724759882923157798687251698050977017717410851871411140266809298936128286296835643944660451115917338207968000054467267981732886217247909376871564720758160615514238628659652477575486577871456640821525956432212678984360841312331034416515536473849187297114337900758618102884282395258414250780624651652553876337515148697141085220618387650855655945362254142827896195656839093720498401765468001898687928647634240376254590226737321085715380521400263847271193668405509752564325676320353272172992920979856884994873195830204292570709010755559429994008906124066288372415097605296934385398270998949822473363820303004426905130574907838943894161919081827878561579294902897206067645236027415676493518668412075049628926491924384559000070107198649152772274757800498072171107633354634300334237575128370913648484251390566536612874868170564904210250525913117708362722236549783899810265512033439996955132505708285426027954536391369790139534542845048172028943729422030182786307858070060169996690085989222578890470670260291962620186826908193355624848685669447678551771179722757935393290955233541688590575338991326407061345145456163066739359157467427626089524494548551332879647725813061663672234165769464143486980826250329971719224306943795010326258133055209320950508220093539875860841704685338966455934475560803671802406871831562664818874323262851166489341148040894394075617853555043362073328048678562756454071383499156775105787913573157782835871324326069811632967401873021884460632064234464449099438192764021812358708655775591195815000629408935359473276029759655309969955118683843947289097948321413404748095264547111279162461830705355426250923812584382368107701606470686677553123090538396133420118712962923861349930005050361233159606454253127279150565865326621170888124978074203619283784215698417375613087608329222731418271697031077772550611344789873793773482721434429344150816882179170182706763645116721242544141278635371994025348167587279120743225816480401349528691430092029981294938765879577968172490021665683668197558457367325151422432418310260549392440558904743264965055279238495113819769358204491050143406365865237473843529225659363679264427620620633031463229760387688638405717466617057979379532161809582778502049334089728260015940733013044712569029600893297572571333047329468083152233796813572413319287100241533436885310817735960645742103250077360747587821879348774014259242625494645565072530956044241940968126883692873243887941752523178242604847234420185881927386729361618638779368713066323885349505120648812863996231147693267306733147968299782292906194548529162017559688824886492503829671748076154063820265228910991411049340154256265338323390177177999188281589443183352999415414786740263349842788961845987049329631779058509158283570292721121206424626506444761909673910571128508034547173663182100277567713608278536932191412216068151289277441612220802519442789278124193181427492621761795798477993293120852425772008802645327113008766874102621621011375031253962078056567541814302884876046665589165344908459602223614300843213386064558711183491003609853409044869240159496765799172971243472786616610780504461288988061775829524299479868371062525714241733443057438323239794430152916359099888532461582809989631606683201772125929936292476557262859293763966121057143127443393007923341935868223689197903320790895311902373564928501061703502612365649061801826192790510180601066039729211363405255813146289448478223918841745106320018733323809851088177024438688738434566152570872594277786937528831618381797121754344851315963855581889807686001649924032901078879105615495018728140962224920425060976140552319215841431647149555224442730793644325242939742286985521311552909821922716199484623016186750699012415641865193737547753524171169947471990465391047239979611228509502511199773126417261911109659715675072675990876980800041672939954348922734213258056484941679092673320431129104365097465437626629763152569822038564484111480243690838769119322839483866943612588881355556263756536525623898846573118638670775212828395089341817087821647956304620553932627057549991814411736486292197346212720700234522592893392497519124433093883451651272889899028756905893671156860161363965565894058986591073232602097779065706356911485572207020075052304357747816871684872985009552138629635662727114744864391013632336742038916333467055517382884811405373702843811887202842968340446154224153327054066439739341618057791850983223772718265766588643459154722703124578831309916647548184628946399594098082009428991285062779259465357976788851400078334269408274444510951062463332257258251111085193438059239137384033827305651080892655617310605624742501343406591906839119487965758950799867709013233126632953222997880441979637124948398332643946983010458249564993876165815527486359458429341897643642458469779401593915904941591505323826064374665651946721108374810887909804944454596180304613909585237537971813016535815355628342711688147679195411780437692374905841813356100365235968631701117763960750009809914949373361225812460402789871313131379667812655214909288336252396289911077034391302236553085693027955170400697980745664313227435325163737533973913219333370184880096486684962933193297197857767959507632171996160501814256790144911608402169592881203302809162754318669323858433166935807539010036179349838668235139302886132026575186056130289191428723479699654674232331568283568188891665699207670461776998173008731531873070056460607180182417978277149053535009071702486179466193434935316338652352767410291728142241695388760934218750070293613686682479716666054040343557686365599019774684202284612756402284699887561995708402210659604530783751926086844880949666086620410776266673019070084619307110381272740809676832124283637648726856846214721819735305868922100993886611382610806579566853110869707322366269568081064368929864867474799281617102228775762415222671912529487830883241407817979401496614890919094629260449897927162291423116247179484229212682862951699134407172410390121477902984620976785595286031732453947922473027004951284649053794396135891247975551128451238804445577246473626696154390795713123665000108230344631074149229671964993330529195796460084631327030016850679813401056740540117993373042171147392316222609204707715973025257579130594988224397987567315974104983102936947054059078827103569633763422601496667559131667396543087829654718864799471002611661483763624566323355044010062399119554980068418217855144489675265138893298328463113477418457363363514573037301810051423132740761076272202777510703385770714135834955220869491153020688941090975844263238743347736085386524838759373850666708809200728934281318153424321768804617190989207754357044693793979412007615642275797158853548049510199879802110800018650405652413231944822393580638225756755438253537185788369863527097816476544559940455895866078501868365157704529336589766710882724524204860605994347258286268496138225302824747180319046549375826810159725735329155257883486836428221471812356261252904233941973335474830969258259617125754142640046978432074176895781251444725321656528359079062858966590872723586310428535993760329361071984367833982502017173928444181497912653190937653695005396638566299455837801970368300523776192670361495395243339615282059163339239660554045273067519763468098830368607819990291967341958797150684308037028259186511149703515369795947407923917075480028196305645321603975904126245814683172811776339426149635207949276118620423999448077212197018432664468739007448830325863603448309374880452424498721869965472332694607244695864432459263892265620233854550818382693071218518882695320688431583471656632075148099002791671755585948692667915640266180308160604953827073336035170393661616112751475883910949883631840922897253338767706672085708495543747966431865691748803524040839288915694339984214530043492095217328933915636159124853273857063245810928908152759212950986279316205673743978385843727995196806455063019391228193007388785030146757620899984418378862356293460796071682551482034944735475317811467597956960027486409554439575061628755816967541079067704735031395106604964904938136406888956964186923195863067005652670285622443308692513449445258048834667531576813260745911267662129851693654668428114654614692875176889923731369452173335750039963272574333099167994226042488230193622008559223905453912286640742889868147398720294492053181941508927394861733744219508440814735018770654925672405334887122504884870074051055496149224516872470598236908200115765202358198313788058857904736982295539399928746946275987165901832016958502551893865343962369149403732658012499040175631664463730386616963472810495886400518052980951065875198852457604823000301690863981752827383053464685699794549394932768335097855671501303800219703911786514099119665294345710429087907563008750156670532534301773182913626489426319607820787405860946506473280905803212345707688277034133931315650586838926209233921568282762012687631352559332794165955504625235757910078681600354722468777437107163612206633689957438946861938998650236211500317889306308126135384651680540885312566672413922064649836899687583278855211356455872311263991038291680824186158360073745256769607162178431555711042857081469631954415150352278745384184792851351672962534440864279016505601006616477681562557333263461454486337428034402500759576217902190826094515703224798308856836956433054350335944937777255891997209454523573807365164659628650702685366904448522276834029781715028060642277411205752148488874193801071330903119979416000752942920583910881970093584269561896215437949170673720349682144217924806526263373435879377417367721174505413158487585740312657272444047302923795276109400934461663743527951656122971143728390761364289689595835894084192565466657307436302142265962364932434110307758199862234798223523700191098215273157639514797065504194412894163726167277724120149280108506252451866700475347881378468500754394511999719744328911870711964684603160202395357026769964794190623842434648946562827147668949628366892765772278449184900461365367327257102448755937418908921190744569213565620287244296820787771218538015024994559185544241273259962588076719977445310642510098021238953850997523319789063398516029092661435471912868501765810257536052645724785532109218029984299031674211786635195923987423182450530850167739744454289532071760888269747284596015860375286704914344354547401889877139248848455943149761589139262337404291390410338407028053460510397672170728093098563394037090679429805802223531986056939888225737276706729074400855914077957835246157293461237701295624741229027170091836324301750969478462265075236687403825147262214140625325551574166174000799643153124169687549293422121248760032793850377034708699484932106112353577152415396264668770229104124525885164249851748930591739242990172845245420438141460278168004919433030588202943438675614669977980974735518209580937928108962683503158738081888040415258864242723013785942136098635678706016472691718076764386949922647851089521640175475714777455318923221533484678872241449833471788539672356257539760637482740859580838230887246244276566089768893703769265386322375413978078552707115329146999235675140551413113479338972037445589837584730199640918395781601994503274832573531423565666481462541593912563003850695612134977054491951884188743545347061529780135349524204870096717147491475510564146400714896678345838389484449397199726585376129472013514960732052859621886600281355424499793433030107863771089176486092173893976551860625641607595517459257550137308436187935415004604807284701443160866944682409461775383899441654666470108942346807183194990796229938105090551791534209925187341142837543516994211151600944194029805745782603529316607982936044667885470305668662177528798592952899843166045729259022619519649261429032052981557002486424723112366009353481683517223110483165201035476327407272808866696146307300805759897607409995164466036197578917589059478850748676862003626621319113054722720782615035449586889537202308447630915987256453871331666799895149989322281800905788487830896432657628859270073973444400854784444054285878587955937071885961575988874503809795031147862209604222694183787914123600172900802037548186913894279414232558541228112022521145218631421464859533196139783396100705230798491856577631976309879352000779649532163889752655024334884672847782916542377762098739568722554958185612658742985931213822971002795479080706004348568630712878701375964044245601608898367812014050438493573896799289407842669017717158935688089856884703487824307193405137052763026970460937356558576052935374592762619461714963326137971738916626820523740123369135294938483978059737157509782922851195838315002645400686713810530394261811876849247854380863135631234605618684871391721050931433062526727765250547846566367318516977123437670245299525485904915168143428783285160394967813282255237956741177842752840386360719368182276617176908360636515782265895403731371365397955972909652235725378383563097152346003305537890473749547194603832631645130224054382601827408915824465824726071761093877744925947046683358282203434054026167091024873856939674673447196491372692194444907425299085603571524792632151031491272681971016957722475402038821298334296303832112268240373444634466288492926324308478136474610489362162567429656943079344295780899425432546117282113536666188171892695924323510654347111075244118590825196397499681494186191221214341043937522862272419901053176081565685747546167000613524874200993472859363694508136516049576276950855027404186616662609475996161812378239696632412872293551520289641966765112868209907826374831639869854949576627633780018670997224207816054406025682762259982274408945095777410602754777681828984833824466710391821286505861320285020182001718565235523423435480207677628414393209736960416275645475320020280165758609314393720158477597194943947878355787536030920195927301131065779019946578729548522467013398092459595423626375801416623433292565426586304518893432222897692187877059030330495105267418436096322764309061137312945998522516671285985527782836306937822668891412531156516256019007021609899125184415532645721139476302663875286634632438065373207003186094302927769365963854840056785251114647138392443675544230605391815632993571069301082310015257949047154881036928259851572316686903684988631052224327518097144944052435905347757413727792239509310077504021688021899917519810241119990557022029907891093626140583683584488272318650310162719778136126869885884337705724158502262501581842726505637217739121597788722114228145301787843296804755501687192538377031920302169249686891964169540744844221207669630944127465650455504485407865349310220928273664793540816060062144342263064328494170152503987692899372368274098335662862229176136032484428908524246706166907199561469585284332462414774965942128860970550383658097757442102406977711423350160544274584041988489326296995890357438403588114731710418911387284096033054900430644859628488173264602979020571956995720198658902850936607017804829290415898593843427511583844598161989721147316261842858806669124455432875668700873441295087284480730921589557333545841477526100002460560998255665782704569135414135000411418934207174593963768925359966393174312778456897595105936297303771825371091357566095474401300009699632549400868542355615669176236330086678459866084824167318706403044654078529291454217859639346926620772368998794662182537700253925246638999467162618684181518999079054727762609552366494486224656784147817196341738476156205704470895326997229125669259056760006016201555575809974273937801183369999911582160098892035121913375944058650361804101359659744578037445118078162619270840347480489987425694694501574658853122267756463435067238993371814043468363950914425772625690737129394399905123863088198536964803118158110881538718634514349338405190318571924503821377127614880394067488998789843148529011558126988553176323694186069915953656405443232961220030642119741116669288439748743084510306125444640208681171914583295939794105604107124008375123396964793324936535504696519416708279770422147823919914266134307309111157555753946195956406605185152569350724518543605922565311373536188976009973844238175303620205862933901330673266907847668121177655156410662051280352614527856053065605192695464158082192481458565044768209204469287547385163521573671974927554651940410089065641877160756485995566813773991948487097030388933076204082321929540238832333715314012318805746600503276435716121844153955855933812480159172571061654089187650753201988675908982472753897795531103884538986077291060565523212650088667346249979485273296684694996184224821522924334596778587446221567062513783747331783554548512076904635509684427877754358542338777079866925920964905642568137820878082056937471288082730114419899059352886892250184293268575307817041445021454768677984290770262539684317917311978493158258476375723954457360210405600489807884754475241256454930339821772371706048985377583298718876643964604986858216304473094418203644154385582646281918766172734943877529692679481623259951370943609865448038810000836510131597033054533279773704481802823939597064252665061820486725919247726931269835624754241686463786589623787138699129930666985000986798523692783779122142990551145591131068130181767656474271001495090336147348347728626046230775634589883676383792927926107632795529130246355384717919592476106965626205337919864108589954054111952416415365196616639874434799998609818894816585234612116471608111953166152949647370843381549317792500348861492021257775780198373432282063350452596949242143736607831266704507913636967662542261916337733013093860722291846807898946284821613006870919815433428766053652623692095690908068463791142640941947030127480282234441412256349881713004814627663979210361974763380403279499446795031082237089203965965436489740046122092251991260736794677095574511914152928745092279949204294912617153176641810223834469351554722353900955084820856656391878817096598381397742323004478201217576150704828572917778825775656107102822264147204115882800597002477995783698677315635335011969269522882117519128229816471691573642313649712722673648408621124153752531735614880984907972192072512341321621894253690870481897124048359700021083769494942884674528101966147878723608993196286575877158230221788721893054563287921470378576950047482812800692380332133545192353555693157490639434949294768832912092571350473727475151352276427263180535423320751695908119437163967246891943279852692551605239967959373895114080704804696819520453555385247767253839406085299446710402084722662627613339206725387544939264667886437177184589546274782952215331114772304938499151998491192079807785302799274262278084446388205570538062255703902351331270474236195747530997521372280888592706277645373817833160187763061432827340371441777401736174404949471153669476603995114622231450711542785356033383945569411119930398653477238808517109201378683801187817969963547598788733513146086696486432592913778308213907404055756243644587723960673454415012600677500020794814795669808106685101119708232369539426721038673005395217685996776509725876185643573095764298253802623637118762608703370421038143646259263558141671604480254780435510196621406446082488932448373621805040020333262129111042137206096569313307088408954422869620514451117316755448671352701969909167460540769895987766227786786359399320877418029499150742845394714190484453588136082099229576562053728112483992053943521122419937871903447525992717132581713882912836635888219133531736972655863076240739911295902871668391516006023506236690907800418400018261160406154446150461002171283203947596574243447828224153355797920097548393671003307838813025194233235936185192861524224363313352332316661701992175487577294779642260624151614596868765385038061668240690584261349909426497115797131758387896313118845251125165437325300285708313804938426511054620703295323210406740247781745418646602368175059333606099505314751641512803254103263698584160613899732492963349366032550003592318352968017547440390219778004775697823024759414450169566944850559769080919672878049638913611722896067610981103238382884847501464431894207185040717071379822000652246985935532600581626167267880687251479904173435658193218464583322088599112880388052083451729525686680735269639340971495831749150525080824616280860790867408301800143759787138104720969334473387196959330934846497719085439964236007215261602554099798558844430670026788974016728790400822892323688211816126152858137586929247769031083510194056581967961725589268045583675789920769373773858264261833427670895103582373977755697350679730563172318469928389816464985289757579947884753406277715646283017580705864401134187833270050558650757612237506309820179424869485772882350737189920781511401446728099339360638337016087285476462953136041436304485124476597310790720257402410132648419737813767230852896907780096578049887820085455953330290094258302214673755735786565692875844496025071226718790446906749664572238029326841429509361371618518507460873247257348246744828176650707034117290606096004584444928859909288977106390900006221977352591966209546550129869316749638627158433092595691391595718684264307251013372508587782299244334819370609057389333174424548430592060430307187117344590770794295794335935669639587959389268028846780005713762940842584636306278904832527341304982128135276481450157742449014989469826581005799449168302718744072815437612900147824445545995434194096512148825990182461890215225953490406537537712263268193006453917851393203806863052753428792655123105171253356031620426284613336204765951056120905373531373293996975411096154765416645063357523553714840875523727728321691908779466074230642916516061762648110162925269820821643731043255264592845181376691190649496834503692602629222530426317569336136791762006038403584692988208829829036573420186601642807482980228461437410276235464860882227089076978269144848445206336359431859659103393134672269968167539275139347322202013809814334817165719944730974715954047297599712365399680607323474205874762816992877201041024564618522894214399953497361654132549777661097032237543663978530558483934137501435493461836680612390816172926833614662077501077303210189186179644555020204138019767942218230257966585904049085201002118884899695917044900681759038253275042173108183803167789286302089961861581702564738224206854320288249977828604028032653735587750443116860994299317234027569168552907611474831472096865637825799279224908596012375173986330200303071487472195114857794549701602308947649911623447928796228363951132970104407567789146448677738011588155678232094122533846317956496197117154629878835813485260165094887392248772970583912781375879053271693202012282331593601669425700401383273123779213458556618847226478725693365629629604945962450737316479701138022380683781087788396595605918686376554152060347211489353240398950982228151759631848519516121435636090008017207900610957651879869174472108810342980525891367586432603193028301820515476724672315467522382383464589904013791619913126535929634085239448878054198549997530784995232122890267925185644326145096756611381928646708285307304372865872647182573594034576376579536379689861386980974241792620263160677799578230862543563121487500504130689688266215984960616158215452550354501360033154670864220004789763328219675324954739935339031991688153019160606568302188047871610677394324102148553317754997260881994621888788604684807999095483107523498557166544854405260095686260916287640900439905199429575757399862190334824750061109420375649958045934263818541536434607558693178277556515397234203763065570604492155419166036029088918266899925542213473164189903652366633584767627927827757823297988180827642396691938305008767268064814546498713616947185560388422103611690016068634938288607630185120690595128825406462009307476486316762455698553676303579962683546495204906131389600681402716559731488217193479485776526270984784106791208857208910758462340649585516648220366793757739036527150938303589669271945502750320432203886880071203156341191769980846763339164125027119297219113694780844623510309851300394435977157314225579630839461446896327832652035270741739951253813001600567640042949153536183524683007042683192546191240356458325267757063930397818264348164061692788910364870776771404998586231192980706795595228853369755610059703611055805222925338227157553085467874381585744485926142867796656022208961002841824154145544072053155234351069106053910562426712276240496411990875010226894993230189811305243719271403825628101921260176266342312932764571709394282416883736286096229993404650235630959177155792034000810147442852618596936939694422743164054890218813650055593855641641277649280093153225236423582685099061778214556032957352605604606814792679649644819886975484875239240124555265255256358147115072701108299309943962660187142914387695112571521647490046031485111396173022135831661075282326486879382165516252159831731898208865704251205685931800111039990181827494011276776097760272267330264188717540360190835469351514486131750215250645419427724399946968855841997561052467487706115289154809946252312844926525358417097017421347448864462521500241359492679333211595980607979029415993270755790064313633480409367490659576998691434974542740992555976665654391651160114734682841735965183908241885308171697776500996329958873064296976356224896658437223939531203748223781618554135227151111975922910165063696448033427506690808168450556856591963755908257007412914981343595831373265776083766192320084454528385073213075659595107828470709995144245935886796337449777490764912418093729476511960009921501446522222790618053597848178918136852794658340170674227896673826946867908516459198763121249506399420121016564837742318868590408356443934743544728410515669822095656349153977062068583317747758650241150243816035293483301652886101839167690470178469661258317644404653374628001894576236172661739979442764756896139659527136131324696410778848665482371948695256589898336748145608743922507731303121754771436681419632307496282374376740322657782621909042055440722862239106098393040183333556310547825069449620843489047574444363648955272418801505679656571246592187650290062533919528517566446428713896536408004815711159346518904822819554947053547314200109114584800316987443056790120834210702639359713717324798040879086420108326866037134423023067282604970578132043294119403243347995719606106226366922145254137297309653966241121923874853327869357148136612707814439433869310228598550654346081789173628458769247481506303836424428697195600300049901284960543827347740135661146884247229429622005942637417891939771897719787860979457454296548396136072150326883772010727445432647307794051693995018477544043998903596428004607755782362084157749419166718460238938686969568166769636509941602352844185735921810155458236874835071719800819681153598500478460878671216628686473123070519066980294110853922159106457066980230019419063445441481295807893915567773851288744606572912941767828549152876526694321597111735136378757826454660954464988387420582186987120181624633286331767755217720285933748835657666857853305634724144104060978236670575643387651982423082627199768543694928907603241198862270979072384263431675198365623525177693069710301074254987531315738815541797361158941211633033591200933726254852636837498014671399572963476394369211518808073245519448080007115489905316631331456872262316106406078171892210860512526593785441588076852035560201014111353161442565959249308591521036156127681819975785110173536673912666671767363399608497067899102561154415991746149257058554149191700964377662278405575020800893522003072874085949018219550332795155195513760930714615230717884613184199354525339682128189232982590772487390237305699554813298900531939708943041118111765546374482345104403390465502009587769244260109831302741970435126654444145930121820965579973279976514913381673170237963757232667454072131834494488398865358953304506655214128821403771447752545082919623603357781955356142660295094961160808275828813197159191946653465800991068629083053108730791678581153071596697403542125756168788502768488612410348039560112212673384488866551353735602852948949372425727841739542923123987803593931915985436020907622257408677000586410043973309784090682074828929183908720215177045383316183663809441977650524337405342350211490723674447696119972615358179990744363970874485558609087288343124835882849054192224247735142329754723366015548477155759064478717361911116215062754874658342601691032797445222920026539673959330841013197767262136171394164050993491578893614511333839136895351540055032457228671609600536668880631145087677993126959621402263781914659526060711619651564465444341356983807578422330833570595870353915390682581222518665221167115240642989403757670357578788934569560071128500663919297830671668763992904169196973031549302725478143475598165704593471748467553811325422509554557230825318117494040588904579994939853294568288586662608829223900911049933396138038161689293518982718909351036769040569502449086860772585457640958886255893815178358615370795968672085483074858861310720205029229567609178634481692242607704016191664238459654612117756557494705207742426608946751569581453208594924737374894721929058609302895769427385586884698182638882576848501867073870239501888155425081451111541266406862459756053841204482065214619233052544216311346515761839401123901506311133171385262935583169504987408586264551763196215763095663383033416438988160521799010886789253220930533857609727398765231316219953089528351676896712439419827910376411446820982125204604406846316111462071382790570934494937310409767909821796430113914946013555969898092863615842785684392201879227868642324789600968396108083344296625745376364145110419159470376157340752186661364395485535432499520780606977616097325507685791021869400981743044299417968674100793138092822974246088233439185496478818086305159182796917675516949143126827098545185727988662974218139223979941021118099205920653230182746972673406032084151448914981289033919908181601776100950211298194665611312258039015685893302767729454404432384613269920619763178880621759770939055566512104670687229492433564814268281172719160013502704273658186339862929241653986121857545874378120388768444643349118822825405360748509879885814474817976180668611287375865393295594031719566921616576582665088366382768287037881633237364219691320617901683884177551833433111571683465644804327472964861241669594465383669512403849655344446609559816265868458414899781019360338410515017488651369270942707735005922117627822818488480613781095426904887832881902317779135617494384430531781958517647811120638824858499572615996861901487726946519966056525075918312973052114544430743803204298646333844301606251801028067515401744499947824531437076780157546216272486012728114038583705600624026862748313387030707856158535665677601076746964283831555886355057054205641571010438251709576957853613604740594613008685594967908529602570593256915427825072950472324456110062374761706296837410858208019432120450732287647873055796678622690091180925240686736534842413784998072512884973265211886708765667606703616791524580885589664266375612842020747145218804957215732253162449610369919730654449942877010311502262571581779696640223105005533525899535333676896207879926043671108484688703343020054735861964015991091851484334345896397084153621599375660983527743146748222896032416992239930118997119026298738109644755028631724764044210059454041537527130267117823903029101325125836122406017780239012909425288054566815058344878272779582424777076053285488032478536402378638305354221235721850808890869155575037187877779755792530015905870371987323741195205436830211793108322079628793226016379834637114141534495122713914410332282176468578576621819168556226236120992020199526317568151287044012313539442839905852706812598320583360914743176320676820971871407574374591476323842429751118708327351461563122830266223868193268109585432553184721151691760188259084036509846770508235395302258434536522506026192765263216464668343650863665146653035863617463572189945258624944808286519168984361701404164642550730139541518518229367855856454116177311233622869478588174737570795122313832326757184759871717569283793589860367891985483109154329500471046236928551396659552687917293345663290999609763504200798216203994752783789438117484725231186889439149612994041598420827428581904138814949983700105622277474304524723887535603135118948767905136313616604825762417163663783754451261050998310472187775708885313666862306848756473156989889927247880057590158872246027710168987154666610460378745570957413830488701275939563470253753469619872407872652175139320853017209821748158395173473377866870398378609011150584693599962453109396446072793773446114994962478506031437082756624467136924332597769676612283333026660829381183471942536204298572335405813123113461443639836299306364018779622854496243030594013985882211402297115290510365085042656942623023642209008701387307841447806015969384356378260473586264838763813246678844255130581867187550315375581629562925655866540603305226856677706629147802254003983872312337732924100998090645980826105319571910782644958310766790864535926947506874847701868761174118381100832521150355083105873203005208830863890594181579731725641745474726758324449722105738398010923087587790744747481108340501891638557891975918952177605884576125132248557891555329553281151640863235413513643599883657593598365199002563730700639542205665783487050955063791041964332492678750000972740197103477327225946386278334691858217013250822702444687063657812473248036561491855453578174115589852847512901921593768088697848780708636140371636767038297727382977520976048133849658973022866375879795606589851992104138966035088286506395053993564809692053362276539061419743383399153926687183929806084249235562552673936030531936263527166186992079866900638924904858173933853419468929431468371532893916124213391097545158897440415029488928263643203563022916649336186880042331920043379729297403382061715489710000728176749542741781898251859016674123585630574265202421371995770102531436590760234608430464427117433747771678448547400724672984825720839038946635692471318114199299033530864831126455308112226787918772274250963342700890626335530516570504355199802738786030155648987629948925407021400327601936286435525595698762111114485370964648776018577369422088271018218637602577279596060331587162715034339080461629268665535828760676915492141756163471567588848027871447029048376080956985912328126301526081784187898844402092143900955482575041009335789729518256880238660203558900257200692700884955968604651850304499537209588044869832302977562164195754366407599909594746717906744953410328134312642284194442285905263864019099323773878604821388419082263293646800172481075701524036524312920914887715037102581408616301122895800376746156223414776930207004500424428900235180811886296237730056686352055102097770669469895313735646540878560852484344735152080326795474884015386567189828276378687787061946090448906564812048514939925449756405072812469927468165791361817935134383044857162326456017273343911428300312571896118969421106346717442550304028528005509410714883141464987561968857933385569172603359825522453628252304369675361935812818732516362374965450777347600564114967419356952030020870746005862505419221992718368190773614057464524263214962304254629540344336566132864574973612121759794841876657774259784325646725689597738327690644979292587060538896991150943696935068133738691876985966014517985953754283731913299299998296372294728483419707390148785496503726225000246794905556573218529041760350854825636757427318821013463050650509785646147099975587134814597686205740028589721434173249463148317138332168980987407343166188227649417134361529451079824266399539688444160505440606659276152697742999761396767758536271792104958872485600807470353816240634815024914708200017486930685630041854985702511618763468735518491941773686907470867928073411809823535465365200387893022103990193934902745123059544887813552456382278437456890755607504763778730332168230701398639353673581733381061356734192281136126393516217666486076783180520475130458334409157714726145544065697646328453482209577578640250464416387224896566959183690439157762890105910941997078780479728312398428278311599656986106841441554001431102967864521989052664493197642183524657281389918479377262816899212258256418571546371214838587847005154254812049039570118633146966209505617236729064023871903244512198884712149592823405892898273519252076445024486488327519821535382309508841843636576320576726912378013140326252932884075873643428851734869515032918347583462962827167967532808541624389117348611975109846234907920373762716824085632898750493743431938723576372630158918287803108383126899560564172003231959988075087580659756541532442426039586720780399468278278553672416873139806803156999415397614155025094565555200331059853063224169601881008035189476597068022589231782765579891653925796676755280021449768993187436436570231066031619255727973344738322847550518407256587560596103796298398412584019328524991239005017285433060578506516920524413865236517439571050504049710222145095235194644177534655031351815470231133652634387020549791960862889521787639060944372127162057709262894444071459869434362068457988248766009665001698097971226854387954661453624580224252007399424439668580437884625791247456521528687171115385935498782918484642491630604119072529607202375124065793861783244257837946866174674021489434055131560878883536901162129836564515649730965757658817647540686986728432811694704602540750345421471822050957912535541622652914959403010090000958757070006021279719730108864731437989905026896760676407391865196551574129476509443194300977801740077541391286775026225510749591367479310522162377577904851386228547032260280842562640018135627124440920105720550353243628440855317833052705095175830610823373693893215218589047749469605063670025709590298115729269546514407407063631871736323625185320457804562924662167448440612657611563339527710773215258235952269358735334751489648294052423136447734391927301004449533671192191682274559982612351656799815072764104640085474581078972183174373342999073469895825771417899066040368204006922229055702989278463482242892851125100937371017521153323585974763633725430184278249549298352917033280343552202040521445690644095192318129630329376945714832672806675217967488114555680975303526541075878239606002603089579712029649636812330859568044777219498542713072250370787912311829256864674124794652615785416131369755658990608660407497436599823749364040469611736674919183941918859337082801453313751033725757282335178847834534015344425550829764316144913094009493409819175895828600632344565596521416564130372475756854387992187992362401575807080365210149789571470911779434710451394920546865016062182671878632225420616940303771091980384299428720051219615462222510204425338812300644666292495976831677004466190946809656541101633128816252790084739565097250655699777581804618086043112590195483662554840913166604814957494233190847578488956986208478346636140778364837555281386683311478079049825975775105744207462325136349503587239058784603776708233542639835131020411886287208879504715216541821920353314282974713153878530285532342990387284147679317253325209509649803570550709568039295284137903431898651620367743584424621441648991570209529702157473423934045326099092573297229257664955409459419358840104062983663516580109593906458382309312971131467145743653362285955398254762601235731299450831083332303868162164971354684245191622195558664357005279616329832912268594137004445452598908342719919507663723038529735355109993035761043425552937952338481609543341914625652699951531150569186297371376100714094901699130430706928475793178371782758967916251723526167339510380576361152304383791188956181786954514238065168712545210801154065481862911646677527242471111184119083454046398084009477042066483806099143535813333285656328034464207999515400519102106532208177700205165301728098009181468760298306410798517856446808692924364554891946640061362764415354149177466848058688381626410205757695405245679784953206294806973160519882778694428187868715346157508347004924868708165306818581058885451460568074960789887166455025786074800353911206607989999656915840266772126367571413199867045104336540260563326939749230787482460851887147946670215953515869398589776591821114372815321039471836556544997671681603613780659065442129839996496610585166289533322225598704311103405742543396046139333319592319511144042591217943830945766662978224059184882253979175225385416979827468213198695563060951431326570744434992095224398290400127887115756270889892326557541966720313590046132118407765811572878980645254646393309692299185917467512767823087712196603443428836977307313177884485301851485695572123199337815141190855782241815432260350788558599038051838047074622326486542929182571920577417823197142201814366181778496347369930114611330594172469227497243300654647900589531341356987775188431965241913668963551697738424404359531536987842919550611358309907291894226061434633521577994911491983585687886887607733453637881121628733412684599952453614295657912441529513106435405326241235159481532421488797996684838123351337343069578224259004190065007412088780271588938106569995828447179000056437369014030652669132400360781957178088281152984581198238907099263088773676928394530571520931520179445579445860115760336059364342148585335859680119191056432853285759172435066822808083155512877114822221584012344891985135371498162159641988099889588866226390970886799770132989256552857093867457281979701023844084385192565581794500774825445931101054607773539599086558924908314648732795519263864740120011918100728500448138489527133237467897049825255820133913164209637193459108028412484804278846173065269091948301728370031597006279540699771229807134333503237658552701873356619723682879893192246716730449052366212943288003788781299450453903936951754748358833284181701440938291689387107220398066286223038402267846504743796134488487779060852236946356320976898384774827007586971626264164411941740165405084594301155574515291277559473289867693460738247472146176390064550662922603616753399148277888998828636515438154447340461490175657554898753412789321458660386668482119264169765561586511728239818382006593662965915255534372012944528174328766713792204493586929052784331619498917471349541134673488452585010686797047862253385321293716344853818148447029092047108446364547478672345150752000903712816325385321261882198963313004061883958565508650614800065399439817460002468222115342883528535123154089659080022189478505283404080737269737271171325758399138495526197054629436306195461552224157350597824555493035849029592428183105443700363348181869342635327807874460516059456034363254667099613031224960559240666357709449010676645714559136150894273038086417702777747015494795719758608845268948283849141711751214771495317888430183210007797577923120549451754949256452809487053682645103635414079017013267372959774713471750985349582308215570625589712176836928133571641875966041687296804892887472417333213449457724565374755243037249961328913497021576242164654593010796813375777061303660220953301303096545937951067344891278730709964854404150741877452371779471347423704704315637469772293180221548385802072502699978881977977613528852544295897935141771882288573933083249948489052970868194806796704329382203705854714860776406822495456939318773085882030081705890445238205260085744129718768360146261992193298648724952225785670152577830292773303573856683207221628113331782816857825184755805283966125973288040904786800993893970747380441942378304693269434012751351008939087290981484005029336395413837769474392700515240515113102135006624579748877518537673754832232982207709841615372788523332848730564963843996586799786597893325377649945836071274406150107649304324554644337430295654735285513880713594341020414085164735420656258625700034877454908123779933577644677701260977855891571882149550130557186536924739135271510324599838207158210615851146338519095766952972874923580713573423714128655126168923075999551350927716966099413064499792027387416245826299133464959054272921943908277273383561182182528137048909906012014604754530479724034592806709976421770430084770275900148791963935732157461847649895333287927686243138404409105610158495141783440930343493764277579630921656579184064582999375829572212688559993235516812383688813175283457843965353631330128922557660783215373572118315131400356542982714321976845530249234836271175577714925645432694591831117994536685570403673170609825953712930843510116354196357657962137181135074665598525036929790197159607077413298499412585236257938677192003960503534213259197101542292021459750391528403274254436575390680441758205790233699415209739396818149334569397158113102697621642702737993827789869130797261846520609360287630511627830302506875894583313772009496122480064134659623974624100321124557166088622883516456242897653245329369907800798367025450810439429890404073489287671031397858641693136470724966563173997361334586474602872241214973751591719125396593290671526132283935411918120582254818090851077722585270141866981811652211325269647995564340084830508893962040219194522648043052234788076352055661674976342534258180526862129076894417211753843586292888288569266217873897955619972623207373901777950595686056658838202845958065178644015980160923401935904201507501898496730728980678815470880247649253428417878579550170781991515797773864613968441449652214386545857586376395776701109019039887318640148673684560698211020566669201794885481590244235107859435235282067944554896956022709539223856927555653735334338808970074116513111406513504925832628264764934431394538332723727753122861927335154749928754233243358849959322117453375398144584773256051902716289639955391895797103185467127652722557873077931268030701705758802539562869287064344677944870560437252820896262455643454861397293631755298571440393008090265197262371140689078110889726389301937546532222520410734294927132916316098091244471638930951551117213608648755499779553424402240307065378456938719475754823042587942168400602446797997328372974365864293271437615208236586097745173249791996148808977158905117349627185733448667998092782047560629198142548069539153180374650868143113701118742351229668942859047457582435504172222191667683274532533672328081800084060928448582556721807648487587016640157615309797364422490862369441445430683824938691388539958772029146811345490189096929610117616172561808401520826845734340191455997581785787335811864662004395427079567290082494906656077723548262164395421138027299174091860801525215839165078667631342581818999703953126701433314289244480094599580534652064979348324436489185236093755454657668184419465125963551723628092255149412359397207923393167811165247790654071326424438937073685993672628913269704130522877049214846882767199855466951574488901076852755780139558631562078478550159654353279915707873042960879532747412572951811938171394666454302318431718851472180918480894859688264180102092192826289193772002668857782004129188379696516904103251077260656110146725541823731636651374170424257233619769014062473629540329058008098522849143663872110300843705882561135963241175170426415187271423679369570381499846370958297077129560661763523428881044286262664562848947252527165778283959755671220008650412125189049264983484946900183240709441582429587945945694328589137853102052644289809311784461482500686575098458009351173341224543647814470725137592764872567569182839893408595722132343051822612007076174526181529481872385569085443201596441477005218400927816553487629380942184523129597025247247574395419858827550392795612768850552765261339012150338012586256244065552428491491738766562875479118033813045186295245108584242087857427030297725527806273061549000395866753446945993221024637771196923441814905080012562862766398913028552160754982335513091982630964795822977144886889028567630783496633323342849606436724692596515875548863259285651138437976945620122639396851098522635492833101328881364184629855035337857249141564171303772902707274331909415459178421906360397336615171285090181875573676655765004174105448273065699647060199154166677950401802655624670207860157769968121132105931267026888465769573408924172309698915103439568920850562036660117378919840253560060230137031357842176304957609593545238701988166079044930652693803689664734760187929652468492615666310416516110771348473152408608085925408089213969792162665587581299618345947192879406757065326060814760065232960668558250831855195738457928217921175991514079521334731234616214261961426198684739029717463367013511215326163064718992250827009403044829849796118269663197096234674069633574770901100695826011562369677937895102274757669063916466880157033325543359138866388223260367477102179503126659273005149258309179293867698119756520807654071208887786080763777965346533072475853471294369623075627590426064785514419562283358926548812879238657412739192607145016117957012006939670758322814830846238161970801140268088999046643510954007000224767083108835989087416886506840879453578848082184540784252682353217169854954564674300788404685250974299546977319943277956108956873888976120452379616301103502343055397201043813216309892324727712111292680271138245423144401165201312738840140290669286718981951174664239675428495985085797978624783546863523431283764593929011169877214122248837745016531638032902780962246687322209458185381187461921626715216359242062856265343817264850332254638238880441530157816260513010761999548259278142273936941544695495418472426271009486496778488933068940048198655332448530166793937433689145051024775366325592474938153730500808576414450094058332968520267126514797007197958586777332373948940069736979031805975927821696002785364212756061678490671897908278987203270966950733000922846832615736995308248267463530880079914081856549415704133596827626523651027618996770494338559002921252405094594356972015199377404603989832193419508581957195894740319998211395972466915896907329157850105534910460168400581087727228569955842444486498167361999494300659663490658015795756284998376998557201668789259461498515519561803498167247744630424750062788140742460811999743563680493129638949149859651579862890360034872312127346512793167116827172241431888449811502103458996782934477007580331232343321226593986292561174713477999535652062015980149243403977984356526079255176502812270006069567063237262568611838143970975039294813244659107409517043171641995721691108387326197914183465519276779685126804827694909860831598562109769974204775209717665290065667531125326679003919013740680351504560980228936232563537138257515091695205872581029358488375289070672288019417902498829488047911952007193977857901524700689929335430128023340585201623133152151648325913634779474559231496541693922965461418916270011941103878840317721480062932952435974110568418570350020867249932599490689303854925568658164008282496285184991476960158000041146726124243790283311091387994175803490814528001179701457626626392278505147015755928295655856851486057483500073726497765703312906914397865576710295526265878308101058435470778684320280242681346490547741033277632400236796691663754876790880919585411757276377010515062213417927283993020552342402143610160576130003824270641668988107871888091885995285995160030569150271868362008436110869456119693115914238072419641105322477289839959171939101162348365412142547353975856276942711240140081304220300088946376254360723633902706932990226479992777045338888918420450529598926742631997496007713111635869365551985071302498958690437054439085063981004461982757200042477368786544245293195006994296962699476500332455508324119077974101942535149389461715649203872028624718181246661978949760884168194324295617111900758769355817165190653201301298037331427951849660657394511225711948478454466331504785411939632865320917306825271855698313016927291446203153199038502332121997597488606685147214128824183291616337310049148279374320683847062844029656815433425014298061609864727199497537770046336574072842553396254204402948295718620044035365717093046406129796935561696427898421684051159926211030044017710504254132523632619216214889297288656116011737418177998923845424875909229821700503972766561107254528492669033514867486397344186122595087934303892165595949967119613482641876552730442555423409376431086895019744034343669674638623511392618835699190944329939858581093655380229365285643795158259504561716700978744165697712064874455674191365463976008655767351250922752154838070461121804570840514712465920211981100737603949454179760366016571383395329636419280561358565696063960517935440181090753893975954407805660926913045424235857118264452881951526179630142635355393736048762463376163625812157654420022176547215987878457616707396377392383608759057383711925598764594808187758095826248488115762105194948874030772034142700136949158286644839762028927751813759171608815959772954547890570309576107476646410903416681530659414477389910422682918377102046607021033349901084737015859827986533481082922261093411322557891983370275076301290731383536972451536102018568090830887523240172986262334887428893614162153911131902113143338202426232828598436229114443156434985993780153004984023505766252251808303203917053725910239097517960414107425264616828889728161359324528245166830459693573641683081993634106506180715138801407274859042511481300713616041093561200035133878097381002838159282065310547568751316481311067592645678255130263312262054143416288176097735720042305952346510105762783799676673168179691948479948469136521246115384233045597598743808502046495659116232140899132337360427162616257184819420418912474537007756179479013372910794658372773117277479573643441526282071618802194636831053335085300076653940905100473788531075666335206459084077054565070074421365730853622010969058685196371241972788492837315580682922342028997991923435738360341899479587479556240100928016525258670621566762422493417627043548966578841095450241162479839947971756148680929869682944917511981116554821051663340244078390870624968484092573181945244197850023047072780586402177563444420725530285521286196920912541768962773894192722546633729659155784508567473160852709208565398497810275423785154860076745294046424886277549866721997024530392827323190996918014699146032052118208061156260326012680464217916572569810873100959087919382924044092439167053884973298710346182749161837059655162314786463406141960474073807689495875336974193753658592154300367403382128956474888242018544971289521329104265226915022255262922221466099972684797332653199762314517326611688125780091689845563759529287306884902310486648047076023930783008188923887119276588096698242184007745019956592830614642621192592174064447210851893377638127355841891129719103451825744639696726842310769289399455251287834010866761909362551446350776286252707798318939085175840532765300957806891857827097382928943822948201864762264469996980384348454120519855448720098314203592494459883908942295138205965192277798499151150873585315950027682797637926387065454030754798643352987939689085881917793149119518203982495083461556129460214017862362429147917011721426825852092050891984736148241259443801258333909668479080014716134307072357771785412826838757866744889782940343908570765094489896829412056486721280460725246933754780561593162461760843328885647967179145796136799772992860905677610982604484654820205888432889221282650856425318279325768562671441368086165411225402565237245331700445806267477144793720668885301356059738795107419391377416465681695397029621559262676367039042205576959843913726867985059109716349089642837912243975515589174991319371230667515914858286713066661386460344644150355352609804023208391955672086680813097501095159772681635142603028289531318728413504715086783831313869622888935541884792301139586878117977294500974934098338800405705433639869591251696685950072210614796254781038790918070909656004264786887479196455086071498209603218774594039886778186157423295809856292144080385122575404198287974585725134836709043273081161598647155067476369488370808562453233116616209301763610469749599846232839613499069755564327421622771330240487565276340574853984048679452855650702186124820229770055332773624223399427561193361571454765874005612302107276199837559896784254555025526908973217911820254381948391488049981640523332893821448588112265430854427067539360123527263668474403907839768497762514991824975726338912762371684527263135778127648190426639587644556593762476405742300709735614283607452192150049578284490513440674898557115204024033604241516089717065501488126004963461171113901436158614015738532969387306109024210574573896357064618114900850466578542791447073786568853443357986841373588247915203650135781056653068022888371947071998480624006695075031513180195385961963161719670716474271409836692760971316509531418690046482162129068870526965666729654717636654625822219190479657684778133060715793294073901891586865278955091686303644486102941311797051985684195567125716471864651571978861473887710799456685839187017767442070847443638239161294542719616791165427141403499855237068166720429449542595357918424031269913891703676848414468682516503648790806540489691959742854976863953088973202895095692985750765315965752227493521121650716879348666576163325186396281417164601825253597291119961608002159016611880289236219340618697109868585816532578294112121788031082836929523683533448185573958013939885226307868229440778724635416265646216740394153147239261848877099456271944471585366192429835704528348447726539821583097230819594876947717603057746344398538472115163131771206216770221152591626599456999307516124482366055317415997592606698949371662908880613633616285423823834993883394114600175523051814592662948585020610926074968458296383298885466479700558711053289165450341326550011071732042843293596749914800425164969090552086257353680182673718182412703640999602537435387683762738444944014688672709949669600590528785894099519905454788948062850692593540926227093593565160809005426537026076515032963822499209144824613706437408565710048920127496129422160229412782562743358546352357953438818736682039243009820929382067684631789795565328064315242633452591561219618295702505643383530219509509478842895910331826847681646991568360642557516942106414821427948972927891868509049603717703816743314945127164971149697632812910708706048061976470566463535608908726960788009390500433747497801833329985271516460804614433144342574492746092700470907123128516458299830203434429747554885023730462387219430005033653057059787695865232098698876512721594881267475791867891952203150995885748854008605060432004123906804073062345557827447329688399813955094247008083168983530841515246924788051934936712975553000320549444059748804645072853145733951403611329996189596684307425810212859973603662371424899977739717060122991630856490998098390409922005761041888929109133695727488914565530702315868957862335030753531638660410617429821047657301946272835487508516051954993840270161284967809488545238576871233417429365197573064688663875128923099739496013313245598907405936745380003496745818692403286280880843536544869018932302083188945698859696240152080150159434827620947390341157365733821432621154268948075025338913592149302577511530213856092543280998079651942889626127313788355795250401559704567541627150311122327998912533883951802320292626563603485117046909701757001765999827398747321260452720805037191897416876964910605424875551273974124208042899950295123657591172279298410617109504269620549020326569906368213204459252733484120656137984498822456454777143438134393962608446444260507781927598377665038172367742721106916288206632227647450049247485183447143973886893061173842392165662256459738599764768492031742642920427885366183989111932626718113587519610751149156723012177807029000568553259984485212538896198899749357573455795099979206565836746044720634826920934121232049200174251687727449550057493480208366839447359875480835319693800389137174479587261501868389398390366457258171227556334135973054563432020557013062435287780869058416993518393051557733715646508413052901483186221894313522714973548356615650583406270417007976112920248566897042412263237547629112258674596846049960610496686078680052256370812450290272578962751206266074067736996100042399070745019547564656425970893055978816870346395581031367157260925957163384136499395765430213236507981055440776499703049680407343515973186270013612605288312286738082037139309879523044263632151542323786386679650068378297828498513209188751311807172636953034720728546033754101587300457170749162576953681260893336146438375898832149785660544365462458209312369518785200509111512180880888244981105432761265148965535719001901336523659784160005191896166153123922556805726143992118568708808511882342294315671283904343016277187822219935897550978736338400345741086582620879677845977045874168974409660627609126669305615060367373781057219334635458806342260697607621940500269744749017193700806278591256284591939626301527809447666835557736105165698228800662652159471725733000451394612793227545692777434154061071806574854639133645869298891054576238633747283995051091009163910461375355360302367578004847582020811216361398524296271963301874279642857943015529121345735579049425177132419423096225429438506591933217176652589023207165831719568101805406416637358905590519602997545654143470243047630610527143328692942451396460298097168128833846054819256282649591510871489315576593635472769429133309670611070009182774624351665772246498182163664225205244344277915691250017682514638675197025909316536419104558467840772331874528965861493620974883695522112744027503460377218941521117824424238186510308212098727289060460952209297854201695787283448023838773980118498457163359548949466049279671349518190775334009810568504594111604208231989408136789372271117391905928267656633148223805831683954985445273208904187183921254500284921732360822676748418437106579154542011425752869811329517315096884896099588778785705410000333071637551917389332714825688550267907798477804939174840347158992956611060665770994499253628192678896608814958783702438497280171508790902443787203087915134913374162201345377172842107577301431963257872415712089131051011192394421349727596801802840833996950419338741451630761032761696049757186722764887448398049027962214120281358930083388171647818764926402429552984106844411967905301664389790302196451633457776886056386040706228975330568447877380774052420585385147336216374263934179400674299626495531735149740253936363409470520545490746026847474446387262328544427158322184013181036999399147125945300280337931536824213469908749846130548601090098027460251730620538137785026575414791326062231264613502718869949726872787070694703310133856194439368200977345864958396703771470948047693627511519321007854673715173137990724104684897018624661676435732318293506405160080987937697296202695813392397036742176199383892320042471191201329827778700550872924544479008981294472118798567439572539922208304946886091739924992109294666241507428363658729159478038979618697532754418654576108521013134581673363517483092930593360464236758749500099742123741757348262775978413263519491390649775723732474908962007839753984617953902392657106086310327499465004479797283962191900144359047812021338069978280005695245745147309194565490129420231611573084686762723414963375577756355717883539719514445897152690942135874457554401689308186271914247144707758756828599704347002803576013029975877281384210317808378141871675072680407035271354118325916032387473700560981517896355571611772242423220092501228998092438097664311640221437634529544135630473330950998828129799484348234994038853272100961507261987655153098162774181381310023149282292350587434410990650236659356473356393103967148144476250661881313754422196633954788413854746156607686557011208105614463303027953160737350193625131050849494392699494595901121600195541165221309554450108725529676423886011859937689026945065082394043663267812701945256328864235221049230129917342355247184910611508112178914595210956906279766930845436946949171406605291478220339321116351998647198106708702030820078289302874570492576914046675847826427033029501689258096024707608689223999544067841914812033227475785409699299096304506510387504619687774104096785374498564664577642752297880504081456244357678168497635277309811449179120526074002117988263048087011456320017478953269335771524194687963779068607107263611129602569332137190193099100022536210324515414974107001108795371057581499132495547938956918824431604883423731236751796922629278606380465335640129377522008407414551995074397404670585451979320234303057115971608580124259738655370459729778036355501641759957823083410236251031015081199373802156932301780358553311607437558075644476685664694555498803167431701891511934493350450382112577672449790122965427341341284381974797008240401184526137179898419677955314133326686080160243485960354476886452689921387933887636278674962909480111468659020973998019091677376292931498682918889759066420869345121186218895325356599788648836235017147758037354996654888154694602204041774296391037971356614833283359586774603427539800649809881196019256639223705722134271307024355071335293883187781698438557998019279494350721276107472312498811785660009013024618244159722170820455713430320676840232968957292966232511180699887939287181098508140595151591223254565114539114646055451820465191803634346318843877539827882958741892791174082302770409261671061782935273223048172921025179497542243575205534310944966453859028903020259952223832069991828591025739127668285201869498756973934575344536236889733794542184542770552150508188298274319735021128354620715900881324380859178908452838542950498122928071266849593892751183949439096101636868145670055201147537617105251038469390830691267519041888819291212229238555782220301080450407386888371524896354203442631310624374299315452106872203958942793195663070949263863544238316772314838708738553930857797501583492426673341298805157671577100116635467711029150226973758571674030801282682639075324225884401972352893135811107082974041407488070557902359130353060843077497081838192202845823908822076149489477471870500586836890777107967283216727026061967666298655562900790075093084951934551227646530746326180668726956316727356356427435656542422070901880831919970045265673849174323603445526472324617139056208369860408455240083977287554259525612833297740400223062340164877198315224226868637729519277144715898167421345320600424218199047371485107900999107579096722418864619650535466782087703719104157112921650484310782379373053768576247391988517902681258549429803353649715688374676450869594939389939071782990899899434660950773926118446141045692157853572359995867490431552444534979422051992049932913677506803384852581003321049768539065495977109019058210947450398465627202337549974767612396289539277921805655805865222545106287203377795933913747667717467210893200106127812831066640592737665937757962022466847645578354110875712773973592849495643207073965808103497150291325198188641773976676268552498972413590227962417999829981385955988033260814729219537639814228334827188273218269194287126458375821884487312146503793046868765351188068766258422619088193327021382521400142514420265367757451815057214769992077514606098289951225141560101012457994493827646855527907139482900198373198916955706194732298499897148445620606034658250806679666297452389099665132560124068015951632530376361577544683869409637126450805869041721804330367044782165446793126515653087164754065223837750284479195620985396222271703351232109401865083251801310967703381572950036352030985061936695440065120011953812095442417376325752485086199544205949027100463882003247468480805470749332901836546483101594287846876979007407024427471497148858620143479452715446013709637910641688751484568492195582476060393602599063361795957856394689555348536593689682890600967792257062063728283802874623379127621215543874025507314703999736919532971860779989019857724640632252311039966726492196400068813353482003283294711751561463283777742827664290625427649999600392222120983981907921567181256568086717212463999006686531919075297500373026890489952864488667299664160424837242650724551130534577067647052060005286847949179423726201982229124903950448817342376520473872749729869220881002667270137833921140849746247877260758774918255724585409426673297508123499910338492024277926974304079825146525517199188940040030203018708655242338859330334995107235043707161308283783057547782619681641381557055287887060765851525305362186376673840728360927059751913600581334304951650618726576561322721860435137303131397331280795588698181567240221180295012168463464035282223887978148197718655178513410158500173782687572012697096668826407961274366172101193512084138611837399191333154308627999894401809944978610082633431232182445377536181956297363728834472094898405028230644313910482518709833464646360771071111758834867155961850022041563640495727936592977313786084040683554074899840723145880608326464659482632638072398173415551438385429102175945088083094186594698083161889905885166450291323983589057868441767526885820941831401680790853250269304464002666154645214782344061168028888310705075799919782292583943066347645183162249021142914943784055664087659370157924246514618027682633478899892979309322016525699689481211768410311791256379836394141859302577548716865702106321431542230347396009442878271984543087028921478027028746321021759586575415581497040848075707304520494832374538042474582155100236295339998568424308590269145000538142772265752353050886937001070688290762748894302785057514605658205517893309486787958240112541766999638838460348834556707053537478648474073904119365830625689559312322432273889524907353169748622765673080817281806665266906210021950498216644669698525976917783996073388360534116142645334896248272241276505384223138736392383262253752754503576324296733433987869521987640514522821559121917573681118522939272911803772797544593652350088086345350901724282375540675411320567975261509897370576455293906646999310271538215861323995225337581469950854419869714866398366777551578080687436366916512119812671193046388072106736777708256339532447254659657807100337485468266441465212169946210326140964966604575466519480159238673130277701805492201772485319255302959864326417386642152360890234311580240574477705734509974167539601340572295545615120950685027880492580834094526630999087003745960764770287741602112000761946678058575973863007582973912618390906463337396032947080053082187838838671970320338083462017680250338070086755652757099605219793130914618497974001904052467198667129742009822026885540233735481366984061796258756775725839828257395110287044151915035817072830601807962160160492363848717696012931751418539564067941074895256778201744931224254022099584963304501141250943742274288198651262090073323085315760587524049360376179512588283266638373532228706773774939883345954187277906865189028374038611031593576382927353215747386853720567144068464398118601723568625585875302363826163527928475196343100946557592536054261136178737268021191643537213465268811155417635897056302164918741305892389812000449102531295349018621434484285663497861336928633256296365900296837199559917363841848416290104478541347454902943288052754426147058636356336528959657420617646266239315232298623188522869401204066697892982803751130642810904406647020089456457526919502050843802568633143154951480553476988118554513403684756335935532884201426605889994166908208493025598984443035766535578307786423972573996099807932459918468759719991621494414359235840665729869151577783231992113120813844593172661840264204502280595209482171594032657592239646149771244422100904967427673385231484408072580159422190926951460014364073435892327807691306882042788728544983699182270899073541688941569989307788567516944037621761159172849394937917265079017494853197496057248235532828695791349105853661148895521181434423066316317046381569405920513247460782089529789852287534045608222464770234943107067137257030372487453606138428171516771109440416338121733894418264975681212422899403348782862475644121426291118768680034818664261305142074332599970765473408083030167025973915124895519525198446616302895785959830937306266154428664176513937651498069914078753254456167901472617715534179572536344612770701105087271955791558401126890457768186870574846954164841970947899288549326220739458888740822204105792442131358972827910532306467749079347692721149938281978558611669827611874131413884389769215558101384333169829182781239760505514624768852849102658336252127746515853319933728204861866832946796774578190217406966755661555355757287243442314829456761654133062586028747526830810961762076343681750299000309326441772610643953923901098565486973343216173524123583470236918530603276718951464261842646246238866753860646183787161570474507956233464344965815796736152301409165523001656845119524314533502330146742299531882026807777841303948752558493037250358653370717555536899871363269035594598703590625421550872298935317016265910603328783033655521102429022859222638295207665731358641997187007753709613768327111638711492704139016722749032065830526048759639079503806917175595236845165373958233393849643521555358871644793666773230079588718477819123231069877815255910780901053162990092380063817273188844413676794964711111251798788850766161898271210284412964330135112344081644077545523923486811031820976597433922152748865261433849912005343287598679473773230204578025749568606247603516324977894907281248213438322441460944687476209425549632554463375402789224720293472074962236128519279792755137688450819746357649615625104851435239616072614274045462921141787233402679504088342071187947539691723182709972925889978749656124955889743297178963393802886024831521353208183956820783982047361121024489321045008333143466942354157453180049665927465479390274166470538143473747725433518925505282190579500137327379800680350549453795255785531853667973351449545737499879496000988214666825206820997557815848485936519685031990086132219440314516472641066627195174076901685886263815683221691176539174534655400211981559233535504570510013741468648271312788696161069702609259853044266136867743076063120311022005925012396646202244723824524121041482081267723193006261791603295996232706607276384146874157481338579934506465157018727663147363824836069668233067706138297538727572623496480617846605302455165439608138958778635854247061583807388136441845202769294204422811774621087532130595920054419565169820980200386675745123780423635131783986692661812807421415281587835117394833178997257407412229080973271930747571896029328215090482714680062315999018121403054984919579626828143341390777805197765466779633605407409885329169014568698755183776430954464864962287604174222524167969022506060928058519410348071454954038011201645462800142174345941081447477063173922520447850097662741970088053997709212387903227039320522367461832276967686725633939296604692773939457880425160345651051785165614689162998408802140255952742316789900212920883580121046294182644897289063372887453526360060542845556735517646575902454453487176380045203276746115966573021234673046627505638992993177966957149929531489152318547535315318159682473638927156279154757351431388401130206464446408188218745307177101857466074613187500034538706804704830811809065925135822562199015525461517437254671181817621592040800957469411159304726638282436991461864687783247523800557914861140635564655913239739338715041762010007953928904421521634282255781273335504688488948324220560498649994429354843394843363062395621073396985673404651882162547727798342263199729663528815099114336579984291198051743012800668632929470901076641828512132089111012011077545873974206532891764193573976503113922534955250029304903319428676277578557289029006630587620409065444238419873195272546673743202185031673157925127076785726617173519794770983396455881487562059503405577190975802963827556852886047489408513802239661326313262893866480601799378172890298866471934205181057949665173546893497726876181797372932070340054505643884944833194020368697480585425206097434221431492636568842689405977298915314513700265189975918510147733865620755500192823696747604373168818296067103786909647955036784866715555197495239003582493010862222418937404762283486006750154373238391089194815909923506419916071896051112739225075818327416283827350363878288365190984236328490880842025660433725113532236679222701836897811090795970836734663443028002968045971792369358361756871064004773123517186580253045037515596570731893121556929067133559768957209807820974532764776774559039986515957896058225138424505146043994509626120504674091107808903282470957155679687246452336878037688174334333044938118378658514702826130357858773289328909320969919646094491978598654014912348444296511540292789096560645193591883173896955813169649262752468117272833623287436874644171147689557008778144354625431321899815655091533041230989244001846048553940501307938055945809057482348552184434848465239159307841427127931011722439160912034584211121299975067423609658549589077505279242243613040185703266275826706921969262158712159635017971398565717756513680599685975244882395297883240959641374046870902538227871977121480849100705458844553471221531311874156517716759001740932145697609336194764201394306595224765171130146099485253713776145937973767575811485255848192119249052732321802063257461785252741129599813085056854311612336674107931696150302227801906647231193382492904117071298567871836978303204898234863677521145325235175598943721420086132921708708730118345603707563219854619941627619423489677551325730193856664529509205385983873435436343669539644445045908970831776491268889371065488027080334287221438450012664320967570901998975688265369584231447570005957683843914875903577406387262835497527465463866718890178607727925364531284947208552321384075073654335914421467823623461757429078995326214533026157196314263504674068627264135730897512337876702646476315689579518191929231019249394682900070577674444393781679405314853828487928448941899710949646557505911187577261301617606476645652556788010001273237819040622268556259818132008876644866306435013328372251185954070346921981230128827382755115383351513196261165614497746979089937917782836871757719168206406888506030067715470579522623551081063148796037831140005028771387779527738770908808818190010404965652378678933365132090735333623401961523644894462982253974775191874306896759012058283150637135042730441309986847807745520857006344594404360613788286277470046976913388869215083680056758391403388341182117976240051889472939029807518053147813928620583616420941809872416422586842455555672185471418289131422395046155149296235557163501440541477458384487001032876685424640378860711258298032813951303031058365966154553990846364116272990505809446920134282872764089573233311738360047701761594803293671662568878098601144901605918559487692982795681625299212452462683167935264231446069527688509543845373985857971092268156161733636056241406672954004965486163360282034142080569206492677393620502269408967453299400676109976499313189575082325160328725896614664616877713624118689551713276162326195189623643220665341143335404774113750927300590088856259822083014731229825918058952676454044740456355761236697732630828172366298563098531110384644221918443922883001198489228293368297411140711961940021050525343186738400316683180564602744641928464581456602834053750985381662229828512032128759488599745915441656179402095825849611203390982999537213582760325629245616099462305624923191115038113304341836001805441354226536946786737357838718181868940594944953982617918383462824178444433137606254380144437109417617235016723628477660585748206040838055489765225116061601068420498660249126779965549902824488145260747378618740239757072579229125157812844618244639923883773915398745682000598451469292732775506454431681281767938789095611599473170393660113425788476990671960479584288390973445085042151207944634471351928927812176825963015007455161829884176541024794490674049941183387860350901747345442669689512500711406989509653626337491667784878563557140037568043145190483773701417543451758746681255001385519529201363593148740025950938530640797214945723128093391332274772657286559217186775811583464187740152783535567150031427619889972123918906165654487871678224571039468881628337680732183540002054486483051625586201737160334248679327173138821469670510604253067593621890723219254275543711871593521545780942690811771961601016233940539338955659751144302775022354413617568097770076310945302416424985330442265689705472814062919252479176600983696034118354410603552131922224317651849508072359816818303595905499231711718602889130137773395809573314476706144252016846516012688263505338969696695609609883566040803280074872403273337298025111216204079573811617712312685222362630970770788545243641531691596587632272656386987208028209849436042819124884974911816482452636051181660336867666985216613632478012889847987703528468547934186153445028389848164771787840881126337661863394336622748383573426877565344513566913403305970926682903713051128784472220857535160414730651842698221188776814346653317142579502922050905095716731083078679942734093250155891608757026114808294953063972355328559495271430470225933783345489351786649597463690617873497483039878497671799123363459700659107660556263644267857565480211443556143732046303893848943142442295826656804445989808907107908761691058535362089321632738319575446204860858133883928004386284532553611374949852574013764005163249477498635522176273556171456456494698171931811631202637668560993973883362430931730827149695332329777308825294878720742752336806696163473596477531059624394431044486194160222110577241797955334686093424775113381143448749735270620474583795027789578611803304310520464677497176533788755572271071983586763349599000335411924522741354226968704267881456022042106404904850882966887855822516728864641080992799258915956578622415963024538987391411245270793129123554879743945740784003676404146627874843301664323662390487379899616940714789257197618832089453001086246585487900851253135377376137304086292090443369019924280042016137635163635585786885166197298618674592699058784624364964836968810164463402944663308822407655604654877714129111594112564423495953092908124947213873404432306206850006047913988231784780497888652531371830312294568536176663966336694711009646419752747567695144313261504827193376169831259889847915257605874796121335474412869794650758003687948371278617743318918248146850948273993604285532204599774553950981206111556205036727313575540551264956426649963969075803551991915886640957719463853217161316357614529040967638787711706796292229312597221369213079723437125685305164851631867070181100127556448222080109283765958803110476161589548674146512870027452814155866153827249461298967511016538453570440901328391892732810626550706784523622960563830782406253410411700386458371927933758813003884795738278709828288001497822172656809084337041461372260974185689611420155535446819981801891284387197199432503630041015353228614491764593442591620918230719965859224002214888182349783738993107577902672481666111889861449338071480035358270839139774600290365370339618134378000284846072957372004334474787473337561900292859746317947881061833231073040988575539721524273655536581640489710274208900952557209201135732512320675250049855333068587099171801205984231470494724038202370854655346052844514693919672264693443747749620489187851161700091056619173994425560736612936864766984247434205591869152844858356013814729552342894510485465733578557727094606821579694065402695656690526332081932208473271819405842792780258514605228484372165482282809050130323830569072914464183545303505485838710592895312046342238624345017250813188088789228321847841014878897036673813971752461057942320595068293554759452008829323411816290537631406000434889372255952185254161102383722130532323102135435897068722634845062420772846733193616024001191854724399508389045370598521718914745115793581529024943070378826377816441415531267927394174189192526680444547676468188538582060677463446823757054783199483481310148854132700654985581901688168885692824905052466621187355652249040161325080615752269276988464906229944831549271626443833112419345560307942186661827255132401030390395024689698288834407503387161237119487661214574465899171136327851010678183310677181003783116724028499437055408882725984372579114678898771347701291836443551808311207015730223308575405218161698730535095370116179791971477767516491389216313312044406266519700781694079492693645221409698582497333387545489207050364729101441754297530289163782438694296152250519700696548728266943751807531511967309898948012177173989873288249036492509787731782539658718533551320677482883658999956591646587728099532346816941841111682290502757682914549708991704007006725265818846317977249530791698020887660651690243849511843670665652094822182104910407679133282222487800172053960580135163719395143401596506061283947154212565511578509261137875172636426132667933785704415159495474410877013016852049723293222043720960909514261846107636916886597882001960761639570831396927329789354146882682993030347703389790714292448796823736459836667979625171899233076565593535765917311786596425265408209741445447394209942716203337251333313764139419171654144956284180451185628300131110794809046293346644926669939050202623475255567219669528479658673185898568420460526747506276814283338393190621820921358919369003775020858147365613581210312274267684403996737651105059418747488244975634679761163672214245393147596568045489855459241759735886380308857649650930553648026675350808161989652163215928426789201179643968496045509481641778675571463547654114620483214532822811033167464569726856266243666964377861538793931624298958205155905676271783468886683903112259237800251605969045148308542933142446745490103492984517971401590449938509801649002303153719170057812041139012820481100377555730127222481343676697189192269063662313047316924020889804542700859956626034980997743368982805159434270674361942876032044658740517759685089218114896340350795435000317863353056257533723349238400951249447317014595742204371877311426005880011125580411595388518458354937147298592928292065313109301147066888038986042091723450585303363507652315306946178327895098917982012659437493746406502851428211580289039908559101085469611646274601195001511710265965155533248202752563015211967507481459947823570336299102850402846232654158932802504445515797771607061492446603703770106009961422402687722175801641349113626109331625683422715346293126715194986214965826319122241182625616997388539315827520758202368623755198350931162441497544475955481447353656461942849767978882197191877478150327779441826831805365792188984702337695423170828894603818563563697076931059618925169873868141577089729779867250893395860984239909381598830442979145929795346990716225880325420211055698534885143713767062721589705283326679651906148868542746263612930531169764130052342618322806082836084297554850372328115420636109083141239975837690473665639089665781583676626061589740510663671957582768880386414079025193857290012964357265360386094426184848645026635701803571302011538296712021959357904263169558962215460654284626246924656030582828683048337154108829709042353404255771122737482994087480545900426392520768272564237701428671548876742641098441518427089690183660325086939805811328475111136705717467425648930987341859111941014991071625261230773634255592473821699772316264478398352157410355885961569812271214435040335252712959166270468815855862676395241821513008335327809644176327295619935694819938395390792468266256843312596943728965614592298172485005910606022194007705446871807875536290357256949206435620001676555966797589515234422192881760899069175388290760955843942131415278516877531821350210093050443992896913058649425896614658685690296392311765628826624933931254099324968968054311300378061608081900894160424928266439363638019357136879462596042421542436691045420252789563306903522450046195868952330789791819997819760486826375059703692543663686863074502801434608895251897629818256582475874490908845998345921838068654789667513969128095537366035662684125829750649515864403999766986902694240480640747224533816399883956718420948095404351371163568881302575078358227320642385452406497945017260678668855675677991826768499423373004117348749227635874039993994962945997198637844963432225862448515498526769303518042147728567285247082610773247342450372604122462130690147793783118243147491824244850481943331148551014285747244041940100510192832009500648896855195079374465799908473009921714306305196149016756544274784493417659519290442375790476397616134389983423095783699556551472746898484595257508104852731492593628357373830886337034059172876105767829181109800532741783566178586318134026552200903040818870208852431403380810082423380911931668844929870802365713702080524114921019778919926605154362061749998590568943047568135897929166477095855338263573498140014471161880302173492550204011787205668143277802806334897304346161077983058180214817451525191215071092480763124943997672884198450251894473950468876597982432281149209030603160907093837623162966649556767558140872350485821166040161644554662425726588642266272231648168935318238776147498961746803941658944879899310851299833172220559948163786091871997761216593468102435643656269114579724954749523633724923108330440693815513405949700638545258813625747990430600192277528029325288599339432195670418229791700644665049159497820459536720794619727220938195720324084331128410060724492198522607009129142828793670815634422193871332244105320958683531138698076426991279381614384777953225071506644304189941278319509422314670466178699793080359916302082842684975059632556488353448891452817213235511270961793732909852543812769681097404396835652026541476541202647642434871172969170630176291464374634943483604312486257253247789255729678018895320419832672859004997022313120668752424400629715863331735381833514754345736682635193537113125615120139848998994250930171381692057946991458940479697341625230599196053702669670288627139238187133615583588680974187787018429012161270623764454718662454379684212353257946916432357802680990476628830598926407330935407940655776594819429990126192289597545237539292732728015109226427300579592098913414992870853779986817160891756498986360265968034718037870717220036409231106389478141496052776182092280239722702913438314018582331288002870300105711579746220532548237327367662867774267525303061592670452519056506001773817407103869973763501831462546137415542152909225595040454424458746104525586581545358815645160246388267255258739939838907940555567061700364303002957014625900525185212337611943445563838586705998310161150702793276993559756233531249770242889414627099418032289665509751031747116382696950322548224392596816458212193477587736391147347686508825104499837592683389973518297317217423516951964783546305630878575860378397295996141419137088208612359042414719054787864239704552770432844460701550229527113021990956737097650717963831006011092427849259535143371413874372441945510889108724293020616545921694191971432885199637756662994778391581363115306076894426306019732039368692354248097406222642447951519395416789475884667237071378475474796801195219453617584518502532148881675557567603172830494794335406814535444467876441032468170800417984855901079199129770917527007350135617469912115975729873440430781312885300696138860239021786772697734489995020452740075036547072582545605773690435272819994369130929709194190498667881995616890115243755237630133164110909947728445280668176125780712878832910032164256812504075158408182838152407416560328942888358313045884503657849248049582908180367782203285579856826195611728252311855101435641413262778598733739168946045463824637631587086263604278861488134578213555113606966246965816496082974114045962153637495070393016712095321757137279103887046710874516877476341427177650001104002609781183798472463463817903124091867921844979420318914477406146905316813121461060635250953167267092818462829748535161211221343414253115192742866233389838347890716883600049352652684894265641045953183262803514159878694495431527176794265207167637637826278437382270289536536038556022316053994592868742675746803828821039518764174541428577620483471460267540136324301888184913788090244466453125964488135825535978874269295030531995693646559021282285086045502979883003672084518195490260053686633384922775203587082879759252028421653950775108234309015205358970030202913211094441460646706665977989686997008984732479987672521099865202213735888602473529806335591989734810053896989473163607581411737124162097547188750607962510755590702098959276159318835260311560883866885578351155322533687116231187809846806461651881741319565834446256335196848666512774872569956055834914669639913952603788278550360091767875655521821467610036152333040735087354401610032812037409011368620152553087499484958916646255024083680077693412536169340654067629952597718031410759934788667060355803147995679350244142802153658835305322867956175378469906987083919009187354278926299508977956023509537333418210862840589742386315646812356807673048520363087874648593931059599178667923635347114471679683828246220519300098369539305729551131416767257258000166059471553009543705087759882680530039035325193922510836180305334618892364653244464228939760805359250331393480971091221898470638406861204294086817306542276074120828043839606895510146197930125147684682406119576356680004931543272118602994861007439863720642749399770982487167479397334867971038599453908786065548480994385379491012500462302180092944634405235028467425293650666319932513667310078252451058402457400000537847860895344744546641385277811225560784055540666628157697985118739957748968856874043226997880911644343906435368966576214243083055914620505236916681793705459191154251270153259003329461840074976517768334684840419231701032845635848246899077160690152666567740785765424823139477950295961867558758224076011579077172048046727638690496417414304094060562333316758288367659966073725331014996514997455008144836636853377918850258549094988736619335779615154011198351140365404132116753165283129365175265366895788355064544850476390322029111837708221244895221833720858636757913108064245447437817018860760313775035983867887087075392989834341919132713885708190428447270321776321438223344855160269362324650689422494531823613765540261728675199842562125419211381405213397053352951029004012750510771501246225860366787800388632651073504132341558408313957779696197459918748409260302375293461823038951844683115485164211729396735169467116515631961947293932561849370761114645413571397175766248640931714124248580436657171728003914386059673348767630547278456519526110715371425957254086810118954725951089119685302914253758985780793104278160974212127115432082674599646694139789052891216368994098433999781272741833446147632929018788574035114293485420780886035019466035399733173052699890126255243442608001592698148197314179514905544831258968725651542057189959137978202709039371353181309074061677792528547495444869289054240258056160085043629072707062306249683214358152922020679574986318811578639747685567620328289023896962678084523329799661817048261972730596195843202947492928731785489011970893942117008592826312053731699578421151966861404538158210309090835744295008545490340723448508972276743602041415563254487466988018539096093632092803137262635360218342092561543899166955259565258038888822703606565959652313167463617220754236197877423609902399256921321817706543157196957133595677680117782885632159909064834496536736033819637216263442170627453459261595954645099261095490441166023453790152777407402903271415991019024901736757899342114293591509457101969857035475514138933993454064646315018610431649283261976793800982177745250164185836403751161644594445361747788777753371602074270264985364053220921694979823532145427776764419897638632752042021060134182857081656819818824638964375096253590708007545835641639799849744297906210153597761578495403276873917677757705108456892925977208296988531841209795549674430272802250360682001678838783807898267942878301720541800640467939058167548110439201664351104327027552864563938034312973747236122202456314474162065903171996235129499440136608226864487431717183679444563736271201514177788607733253139783651988151588975850584130275776908526243074511992403246831610240614537579753079544582167021513303682940017675095246640443854127269340807609194949675305104452187265338333314634695500303204683679224475498681631519606335307289005568696674677342129653485082950141227634861161456545215754593235043828975855477690306686727806122665148942730413913459815776721486840247497593949869120628693948770465004437356626568259379558335366647167911693786125122699996059697000829006653179262480043079589935130404958428079730563055336401880680228847135023858702651371698808231163398861466273255879626801605548814527596887501978614134259318665064861185102010804289304641323375617676095797023244308052843488598015724427844119584672259848582163932073191254596175030104479932101338895137886670919448804896784697030128524268385679632214631045694160948025655329799357492581183485709054161892333209506071576354352191119088180306471176086959667762841218165872462234333412122285284350460931803220961465005322193892207947091862626938235800107179109480585910215576068684052813724939133085774237589408407445255648718685459841427498643742215803759571516881309769820932722378268852479600853276821667277518022624187820247989718963489398971075995393990784011423143837708498973402299952325746502927471483644396029215022869202129365771570110455248120176098458618282208496662387785499729732295969146586204346581887294928802902206516399489330214475510079487067500206024432953127851403116036346939517019170178558963702130203517002252103951977167724763338283752967407283881367705797796403197303613264035667800026822445365525508902120199158105628200869958291234699340015136114507578533625699760847801325085142721506068743186865707827636306213957914790778636024456500660717167206318206926036192615427224128336382640445276731370903566723205266827350094730068807133312938600946504157459221335147600142577551634786476243040584508331160808442718237473511517582708533232317356864893004261847680756403421509237172787353318291878674312852906266041239519758007691914188350859547296175584844721432853527744827800644135125418589279148181696040228945322628951663085173751427193120218078921985645368567294847859839585952614488493405399280275473953034756764877284056731043919999092055992460559850021494281056087304667373458546225339844878959508695064223751872102011067657595899763154740376874269946456106266189428159781566368464414288572869711920805139164711495218655069180200246707612863046503614390888160738271711762653573412823942248753596165200664193821857952765499098008115714297325061663191911917428925039725606535885420293650812346426614445145494407323513534659919143857651257680914101326178333038515595833390150390132040820707788270905046922719777398456667804575049760113581320634991014452560952934164204078844633496354412482249236776282489919459396975857920743687910212740791577636723790401147922550930166607103425804669958263628484844010760015958018273901735586231816595154824931835426635035099624824438099699218601805949897574220498997990654489397688848472097014941948851335286664724326006375450376919074818191229651626641712710133562816935186257937966266411621567870913397916124482238237757006916474131656494491272141526674797464083385293775751589601945072651598090891972194646540795251137736720721885112368528278815800233828003113560436733875114616773661859240691272759525191174588693207567046062924079525310060800122552063151709594225950720290521152228620540595921225035763164978727781731259056354735357066742590485769342733898664569548272830292834778002860009394057901062488940495528770833826352986046559362900536399542801514800423177015611383475674181853003926854090333080974180073777876516159198675152596659570627401413449638467087477022775942508444439370878757256582257307803989239949842161872221681854265604830064548183489671668024560444727250730002570069996047234861758388481318217850106467336084669697657570127084242763718409606463698997338693903493206414506416601966848828968283492211130495112639810432234426191408121850629300108435125070239812705015742456642513213802574302169829891336461081385548361853318096100690801392431139977635898917172266675167777265703063251796993199377132663888500034222781776884113542360100719762942354992231588562491122788062886543393104046495191653239692740497648725721036552483797256294483575560407842331040861189288995451944782224902835208917145880254160635564555580657595835832254237150334836032151659616187604775850670592733040452183664344155642825292513168704108852815180004055637071574490135231925965030371756782692017304809547928749277390388423924380998994334379065326426437404115739233504495459447019475931938678878392009961923886089495786246913484021671419627906864253569876357513116451107197450265427192795931342570484933590378102500878530382165048493210011887563297230605577413623737215723371727433304657105409245673731104086376798383357438711451841786152381936506971462794080014715389118750199507024992296588203377869976561400115954103956638652848769148323412839181975295219205679256545709061500300784117530694723692674652604681735339619574102699522338623758519320777321104308913850085984701642810606275505086574265162869739846362171171185469291644852903830842391830670147084844693744829213610309431780977483828524947311013280801790419686570550060319100241627762202707177222465620298935790051586786612532503110497689496864949776097935601396236583634970933889722865645178081122861772712241338524420913758245596151747491614644326046346865912052278293465135200425917498669430810629795587520209926432341292540880602544256340790147911285919518304459075816541863447793002467315485719553270938792162780970500812520334900578573883422066450093729415037302661419229493896536133592408596234044666923953660624261635135382062170441873916399113364594775791043320510263198297062766684406944008634629979239431738178961637956442455180750724752447366595876157915395274871142553902560772351421073232616742976134563067364241193800562346705593372085801103362090910231502482148954042336513554503683824662734534974355471484537145156199130241743238728021722583811563805019069689087505030081779604487405911045083538190116563985800642713869589347467073352491026588791312355386973084146378854564038455282271610250800316276981183915753903978971283046696215042458019197771083684701965973888370208268850783085013440352689648615578782299365751589903786586667502490928245447611573012133237253836797298198309651633335622373752203260649655347673441385084692734541259704501651710445742657108450284522188466162601166049417361064191301274615498855241393929845618350886997746277664983611739557796073786275828218858731224744180309438694390298008441914499069694570974712714400483025575610687982046632552729591718417334730388521718766459426401288851763033232205465721583077198691688902292804755447681802837447632153036216003338171778996213669739595456054499287927295645299074516358573205452314968940438252735108623668865073500246687277081823619205571716881156557569645941839151118055412091502538763179506875526085986226392569737698634617247768520227029716510762490237151930099622852959037620730280750518427121735980912725924919208080786444514128819221093370398095925384482066106884913632161182431476741665432496422758607053322807909072240218092242827085477095774517019666625084048337990642091340037399947618692741599053758210577719200418873043754199397050069465609085642406257258840021897785194805723040734949153532176930590581120941106290125085269789962793725395010707664218867706513539618560012005009343349276646869895763165456679629431658250326873744977299279737878126281679491513698369050832127546870998736967065544027195942083873829425408324465683454182385746065392457029178604623599210528669964716850515879761301512671498416775658755481740223684215356311247044079331226220926662949272806564666922166616665297343184976708130102122844005925637401282895123733954760474995630508108820270775548971728321885877049248309281212213187169414782823451421478432710869079478966741604605214989451414998156267383977731327000917402956928200351908191418860821637639095068606159506760769755564306397320593854642400879192086531870622798262270477250243363053841371098902592125806923136065037331336954160622839331503296283285449515661107049925038624241659807802875206998553602541670042166262656380972801947486903652099043660574558861042098858614032069040536300383811891620150833061475831779283222966732774020315092434825398597927022704203930434679962464790456045039499751276441140980414437462646151138067555486153668008448428384714769402153491600963204560598296792991876412632333204911711533462697772870315361165350737339053496677864041449546932664950435518071618050402070639086934766258860376277360216766395354118600860272293634882362445870141781651220527790765090926641662144509264337086505910186700963813670133596431295783046983926493367062555906744021501171181626464545467694363657879999496454219810293644658409879314921360761440521944547400164410286287489368119022152373499273248482163236291918196167903835836600069990288997359569358660117742862085666060545570354747965555859203621893175433596300122499643238220073617238040794601638609202560529191838488453839001414048842783160103428659558087838296389854596759767231909044106487384185598568974507350445047526724165145201809795691344602915384590645088928119292352198161874790094452431171635644787485338002283364628781750790327312382801567953900904093513056774675285213660671401829602263646420576181452306802017092841984565389239049526461111243295162092952262503224450248197370159763543691961514460245883246760232921184804440994009021884251830296307903802573405303632705127363880804505535106133914317328814522419182603336186637668311989263063358007598149886071390274490085882379389847228803982087155571532208431344472929358855572436571230928304716592804177886336667764196489111386980461664730649782147735897406937750094667397726990374884338931900694945189985258964670442534350586675311199517323666907080912646904956622303255093757207817431577342320375459981976600214183915315519676686936593157461585821194855362121955088350231350722609710863784037467693885859037942152410996447611004621820391073515292198566099210543648386610432391239669614579796294378382576922492818155856963922836491099730199960336669618124139295866532067741308464628402681493638442654210324401082072719992839292550990074695230489913510291553264957953204683689043414565006678197319883512886941986255669116384022340361923479691465023259452945326004997207304980346278924725343279336063507143546286543577996187935496163396831235313206217522418177802105102593026057114901065210786463446879332672912994492442357370763569882965649314515544893221884792798570188318294925988986507382816990027509634676885765829836795262487039188886772889937839375942716823529913224915567416201885153992544601753021435174253330193596894148679423233248719988750265563658865530104870414962650937288227960567701190942791651906473803760959488529984464863854437095502456885841330559242673120194938984486299907303644283421172852638375595784000147423276124495545264513341585718328177780825805513436743792926289529031434196421291272775072820429645263025609001417460576333723672421629678410808769099069638238810928472931558429500788092082314235202026105729162138931005986017239922285641683922116234840673324445030686138246685621014259409175936925249428900780070748096946998114435002372220071012008283353630299518298059802342375102448029790813793103934963454090903624709732533774947010423002819286029000540083218179618278694846459872426051916591780353599460745957527076414454376556744983513253816066350735088325022266526584212634566241110754592562947077186594007594687503749237746020230274472056752675177190430370378642636326689789420979913300660977651186000322880356347699498049913984975799505276390796957167939709660578841411814417337071813328362167463394578422994511143724236226428260620596559566487264591093840726110054243706935709844354947286081634332736591306241905952668482895184805702114504320544929046590552004549283255116513321785591292687174242118483158371236041508012062030994665974650755720949975077166207150650775040232623061227905002517910775941213831086180202819342781350092314297417400780763775331357061035247916015205813932016276383239491701918095253926403273398018077877504455863875420507719907688681077233709656309437679887143138289429495744275515728503175254456854294739339463289898856571627081671111014979090759347921070011612361143032726254394754798533109558863971673024789253401643459464863794023639330297914527127402246636150023044223754346920640822723858424227720760935291563384257557789617891868811148862679812769542670387191604781694368243972249317045852960220530054472482816822772552250628617586229287239547711299692366090499393209906221953472338989976207602734162752952741136770008261917520137907508268974321603517684068398007646160068977016303070753476459095007736938873633593254325076913830776831384244792759790024031864994792469781634757659621591857535334136740768371190710078781486124312517996545544963265740185850284774812411215648954759652621678727634139038622372305538383886200452691209134658913472735871531604084504783735474047840755374523453259069732062047116876362606934853860828114838844811212269510994577606617800386428797364989500842382392449153177931802893988872716374290596087225981960297348593561025896982165470186020595745505077457288027278909598382642559529634955875187432359545119900217020164189409837437957275187693275005710138314200789988525409591989630177637990104774674057646137213776412785311558436217007519574665222930604274649208121513746220676611462815757516955661251002788189145354196063195585162469021863637847996399344711200085613587356122292735256708681593628430257242704469855164728543926366973647804844935934554805986989441210377321557784482167598388638876494057147317488322450436910365844763004310140897844764970768695519419682767251276284938589550886613346033664839925940519036204707398540337727938524135110594523389638814636494529534047644621744035262023916130642315622040485656265993380538846582329182514617748908455269814466373341146230304174829115837135804347121819209507253195376345547536529513374568649927041153093489237304800600600287194178122753821832693072520072617824500478520184680624412235296874880251637341821423346738606806584520655017211850085581285306435643006370882575371941967796043654937435598752004929175227765290656146947902247711639832485017451478309238632410636185014394336939311222298889669323224704579224985039700452044673328540874190511081802672880634890673474329917656717699017717557712459417518693869129535985442768706520028109603392757093378499695929040495587402333135297600066903526601608301520876860692459105989996711838295886096371355603984992316930481281076808779656823547549271043400464641566412749478708164421568028745219999210308272151353919059072428965796162456218412937441005219665934078704519222669660088242262981390863191726992373718096794615427060779706778505512770048613553129269358151084774317419233246822694159703188038797288240255771483035537907242173751594129422503434185784976863679101855986235080393664154349547041681212435819467991981635973884637714448780474745960075109798997697664663077172037486550530318798950064427972884298301974728316917116736024214460881372366284610325679378529333872513034561334164476716845492915378905825353750033057698195169131572535849518395689099170600458484546179287230413447445293519983050175829655648123113042601574820446312907449256586575552543666599622701953021951077500414953694434077865133556499763256518969239720377214097515027523580314656518773217980539188672246561304579078974089970273710151284479356046986399514768615496614009895119073098958356575581219755638092387613733554826601346481372316589573131599224919527533491540752021479123452035561192649903936206516802627109525525902314879538042511183547115695320368650606039057275951552395490263471261740093912717952120010999282470695371153222643494200173152240058136160355717642083721529164548278337986061562640260142933161851668434887270799694631217401025715652627814399485928557862944767974586824574584386795583507832512676698576938335169838879708503783173017498598958399388646476046677572297936715737782597220473681228090866110196558559606890357367745498309443822450148289862963680914873219172866801464440672677508805266594347974186010448150657728605369692304218493046075472779159231125966863200186746218531017853708834076457287120242293498290575051462295679316924383069300462004974810884703467646459025155164935391175138887915736586258539173169850593414520313401664751725816391817269134515304468624619196767861053372041720640944941045634829799855339451770584264344043664692719992727158160368171332500844017826722019524465912877011296148621746806578481641427338429486926786948280306308587227419703572250156891537585301236414011425945252568000869807002595921986680660625284351915474070115939082112169550342021038615684717814458540235027529869980132033330411071433649149844762075609412544449332703289986568019412602827349127187442375051852506714317450580163847131316798583415028926949489930861201814271266790960027893909980475104466410444829614732066216453472618051182197432106385323262472523716904132256556908143524225457389470419196807726553274154208888827590947036311772288747608751834859272023415465705726530253256286202428223226550283172431574469370009556662804413616102384927405631581302360705894184527760697376142117629164093384544199734756004047166541730344546527624609538929014348537826522879246493400813800785668086657868553385410698182838678749372763580000968038372557113745584895540170112829037197540554508536206840724453140814667796264053228215983253510416929545974625109746429832757438872741098716604794856491644532646358272978677530277312050119583415654866005520978708463278539994500904777517863072197017491855225450190333461564056111895156152905508128757999971944082366615666726760980933308129062584317418809870601152302955066917823527035423489468442810918080125363589729856909332398898463096729857474716702474220728754078970088995136297595694115305698084732630545699751103564525501749937519207342233392850200360512384673284020533020262186451332706428801526495217787034139644720135235562895591404161930793376005027955624046283012851784362618125884960867437958917878263263250664966690849714073495269108429345432932696076333519814217762949285945520380355041573965648529304677323876042801215459801906350205063042757064547645537145683148189346450795161382007060409544093429345941462117621008640631984819127376279775286150663865140062914961640906424364078818261154672100309781643379211155061132533145706992877326575123051364121278712616156558367659977554776607346668811084382112253917555325441020191250411369493058153460107927044923645078508449609790127740506569503270594325306573824354442506264430828136172301584622437340934578863135458434520831975460462306147321252373057330964596815607320025363650788715594371505010073559743607273803819807028933595259076254311638227607109348629948245508389289247300739565502562357579490923736881561977372713238073903956444510219566144426329224786850428481211243393128060041881763760693242338109910905699677270595487051887899945462168239734556899691311180115357156356597193376445820682525324508524756347536657051898552559334148948896313120500581055840255697442481944692158000619341806134790426282367757824128426014033125821387721599881494794875975658519052845231348738713337638720912005122947741591297897685300643722919111654546988167195834936014889074257355682944041475940901856787486395132612427101497503674993497017429073547017927275624048221845212451334176836829182606064536959017862998681974472526340963257110707549356698114615598772462735179250256505980556006814589768559619798255558069571556895882457698638278020331050771251059527124193713883645519973931825226015533397724035141923019443631961529697927034611424191938913623839977343664151591883414518577964875727888972023166041978624630550168527423722745442146344279507302601866967381586799209594338966342785967959784262373026505200113654584915892148632202892733447680628422491150524426918415947133694102377885400214957060869903197453567855839656903845509795912134343652730514552552355168025113956371812227507880404475915771935438665581176499039392355453452577559711224049144491217955904343733411818457493010222365846281765400785216520794492499589053641483102749575667769541716440867216836477952209732584937408271370393874782949169878170807284854489706316670247872339286028645511608980775096181491643699254116485264358081644538741731639971440771894794485446143319103263869089356702261926975254966615954103916761256456932036611556446307494993601863390345233474495335579895295151029538756074676290144780831101735349470062937321534835227495363856307151138762138664733179727072258931716787648575605105290532574456773103418874470092181485543347626466277610397238775874208964201793498553491982141489186864174947153485291057581935138254462335882417234785071263903576480307924468351596245628421088833959196478686053484560600935842642694810338694217670960916845983030206129405717218494262478298662243286486347129214412054446639867968458363434428630154407031465760399023626873045177357293184791298113644120572123544014527840112678354643889619815411325456085447273098234499398454666120897797217515868451806526219870653458291886268410457722352544145190238730547972996131171125296294837429655378598141205059557096519126067562994873232024328906216143673344662927470929753018663949920897603713035122727842978736324585119713793775734421275126797504494258864471760555402141995236467689608150735394280987684350164810524853561992409861910774468917489788697811062184203044519465361838448738791216204607338940026910434178368027930306451375708445828545228877769483882000996648183079290173906574410143465462552889543419168680213600024790855407863318337811000912102434342407733823629093814994089889302554891819876554702928485356236679086745297778590809267388574349737291089041471149091038437084697472917678895757646273247415174589394341325824713050558891907676279268768150326495614504274019315047307219732832369233279016646242633834175909923243678081984582834352054510046179630658370763299178148774069803557938052253535031206197873654065901309959788453252173536313774097361936877540842745383860816267374672216240744939817613755772872977863495048795095361199930941027458443520805486452356184898997245011577514818706201844599279142172025083859516437118696804237968847641406727286321122911362624250973991667130366974024258693411056846307555556472823083429915296378840910699641505101581631436452607895668224314351554345225526217995858635989083045239710539230730904932892983282748046389032676710624050487126650036708856129840334436370018327413677393574272606179253571541217319183514487273941019809703924953434764553036465721732605023684893943301004934455330869498172337766760675230483490682374875326263684574056709719227730907648246147764430613141782732009895786770648107740676268038967114173354912379587905158718034449255249731048533047351294427178285144273959663544278224528525419487942745689846193786986097108331911559624703019917461441402785271067715234433933251963526234356039523379476730957850561553897741237960098364790583641004968051244266677488977477327809413244153060171620252071631764581087988392673359723973231478326277560210302871984079166652614461904099944326808599651573342318727622512507150256726779719968037418473765173350076647158821581905570285588820204120154601893957932400343202904786758478407896245212694357208816542360927287966908624703171389285126027987247397565004367944915692366903617817035743038045861262634317709776105476302765164502217484763283473744288899212023214705923657250388726637106666950692963740571052793828374398236175572643908456730080529854795503820000345835521174249947055498868568659430954918381795107229201362737373523055640979844572455899433763926924899936990852607245300179082347445718880808695701646375157669155488764603042433010284577846886171488413228229359892144947296801468874624562787944285680817570313693797178179418684564375066314635217990446105524239731729000837179187063675957504787262437075347425623815644866143729723075392903879596850099874847310636108547871549613073822551379956613461527996020307039513871735551513823779636555055769574210748187334605075798162569428697404243615381709283387105685041396241588310972736832747413705213020520744051122811879792851877868826667057354991516908604949734284162606959034069803555610399426669013168542808392480142800416731725495083479154108199818447467956384150415624147316942609202301712122286769122688734108588787697117466945069027274545925556014240280417887693928448496300815969365069221910202214297126957951129119583769046498645857262004718851399067937904323716012359698510098598314937131709392100327360396031217699160011097359884766121569923277986374479488772551590627161608125775282487873418906388180199237391712408897379216336662340588889105952757728985194127729890579257227704677539353811406232380652516064946698213927311966769988906577984806721322691312588929458806409772454063258017776881173864504335176994290639269082574856096204331609391312051984988151364553651971184621250766163102079489483375759723385945494992851122503599874012910294759008918000791487894277228221270189657353383598557639188353867140535623465717790706823454998477788138317757865245910219586700674178209784221439521848621025965609121398465903197134693382421329457558043728415753671908899588433821098493026546642322356596513251658812347014143104730867961469370555964743599249181110582346554098679804216275018190022989323175450610439153203957332357125614590804186808705390382405927061330908402397016567931280178544677249276534489605830970344153897030070285588386420662210530989520736644259538862558624933717093565166481474431076450846083342199478600201595147687541752284260616598722907776917116002435322265101900851544865165473881771261702174066431216735840238336264485323846902225827656115000033789945340846122905121587675734781793362842744880463151383376399450438886728455200068320902985292133060961446988483670165862941750037342222440767816674506918693635460644781731855635986830912951352055516219170629215669789046340557703888596142067937903843814040842238911625055587031586324785539456668864792738022791503217605627731007500965979896918196131098203424531223543316093575581961867722475949511091579500429030757764727390875421639288379484390666115751239109107334733826801970960199165431430357965971377829067147001634438808090457152417931497061217632696266994559913060388379766809088209541059409145525433309471721056563870048573063208437808425453696064003754831890996682315272483606728721453502374567143571465818412864016698145306098507437469199700809871744161935738690950792811470587267220016422233791622933786069229667171926803666788327981464549661766798007505534730702797303626739227563874535563243412556513336871130717248985348214027484039528397998950342458463681315131381399731060642922601529705844123679654295135286043916683491037805651853360420154471781595928286151005565570002523455776865548086529511492616425386670058998457532380775005964072711423302353837120243981666637567395409952920302997712062753676281498109547722168568170043622966691546361883165857338432215899103866241417310466179497956023505745647228673608757303646593414647411570026113835290652888211261672331078931902192168022755348196352430703348886817594457016139533632087747108980928876503529781129113647118329731717043895509356999433732600455201422125708354903788507528549465224588840332526139510763425772712559172660480675129008580159695710118816883039722014313891281539485038264980706183920287590190806919965990815428428249076190411086923377357458104476695310875308766429091045085500726178080264214901105783753468310040935093945983331767127727369568539470147553140320599662358775560810091809821798482846153571447084185266438656587502173649321014088018510962693302024821830814958569468050397990140126516196157798289586949533240078839564174651141541412988544782650868537780124390941547331316777163182633423205252805601809751497802302398066944851152652742595462238764364747669999982693149315299973291091306939978654136609770376652022676889289218842432377500716691362876610315985263678723335689588235582426951660088675615362530917847275984184335961599618143526767899454627510093857961424374588560545231114600707276529508399859111843829141238023665406967582554550718357841193602392640958578285549589678120191003652622106127650910032268437674179110812860232793714324693076099171046121323181842855065911592488087161745388413786607341812789367648428199315920465472127760543350219983308551864110878350231253081178639261374777898517190629261292958598802261086299679870925188354772333723642641428303252516308565259441479152987112378319982823987315861178175578873001470627083821451093443877644304275230485273084896712980828806986460476801457223960053847061281881507729969933439841297330799304659888030005542512134656247348185028061650393993344899096709935254726839216330437632381760093567253980504643047193423572810597775221786026990665736862808985186772988369257292038741891345015190135762022733983504345001365110622493757636299863687340921371218044171514828326602976162139130458559695105438601044370477244597339470341447677831228326588467404478705299225629388071522808560256488807179087842066244167909855890008670445061257742873838552342687305379652166486355237617103326573261873684952933931766716389402506914693655074570319744512754916253274388247229384561447220333687108147067589520872309534082559679705423437463593494232445021014781672921301151165429177810213529504417695851741666812608150842795770498554481604311694905202180677121412741730653850822372453451316050711680027853181828153978695718940707641470896577744389220319822824684973841542360185466589500922693567483438617928098080393600600982560320894850522553335136893778709232052642647290789894347868042018370173162528251569287922028312767145979096238129436044690645680643572383495308791441692239777766574965983933143960561027406038008894376930195952279127124360698543951636255968249366442558359684676772094997864006270716317905912625984914463483689737731848387837225369931712178501692284875792396990726766666925033808725759419964288613062140840583751135649877465993082399913946789766818105013364196626766241053136019366191202585095301611098932189385432637720972331947792491523291370326929585926339863685297728388497898972212931763437840744321248881523081178078782575862614076620738780854783619232315535039783123117612066187124766077748464987165507508315839228705924005835223245521531323095711639445880800269134910783059399523600142473484270893028366558310102093861840849196816588934931240548633527562071385128238851180471832680278321726398150803436301271510251610746525873403223178635187334946637273275903584009965386278588598060681613290421330711676263325036903029367110850809897007029379571559995961579446816984426492453143101502107563556568981238061093828467581302211123333659560719666330520039781299491359805597948798366219437052978668547895387064862499337597397556263706265677082887370069129315477777461630179047744568061082077613009287145804760932080633051766639187626307781370814633463697098417156965470659873393411278947489958159171316520670290044036491959184880240950882311922226749306759978961663378118237506646292930949224572810333340122073895400325249454788149684773996784120223687271591956235736726300154092570483232473741560809281269671200179031694355333104886918708238511263060672127510891293760234261048004801615101904600231645381168532914802477740942514531586281323291517251745222146389451912116031744659859192657400327003081049291299500898911519821488351886365296247098360090559851665723281350534725666661575967807526923558970126930495186716839917384518448243234112531355099954383325664548869352498759159261672924215775005611353892837388722233387775676738293180295728839089270959703019091556169737777823456903932967521413092475053639118903640172472411554485416972011552425889213460387429413549456368265631296059701570385101377821717100183083078305320839184253622203417553824210932553151898866468262231061825832347359432981082439644144949883756786814125369717878729328626806556312705985274924206129467219511323378677883753510988096995230941300106326779665829880706797429231918354311515838097482246778132561820206166581878535180852332268836947635102896170056836235266482953261657651271148451598645112184476071919890414552713114199450935276810198667029259584383618092834237608939287255280349420804167663724543368634287703758908448910012083067399736739622425686206555127880783071767498408701175436698838598410633781756189909522613904293671078559099869633949514107101872624129988863492480978799741082031006194683662440958359520034045790980818894566270682753933409282467659179888222927666889361158293308244018855688142554191716971343095690689341660695212614541287433472524593602634918709003440108819031381771833610759615382198242012826564924022659567529668396237453676848512569258678845333017707041737184798669457249397810589055943137091278365955591026668785720492497031934860326690091128902982332098794317266820048534473637276001856273226212112514622691370536879728618128032145746527688634120416762970855693354163342517096743034951321078687732556687617248663985632007539035278395997099895212733281145015169366180387321529492952586212346483792294413131778430248899620455989163880856485844512970144168873115045299987488770631454783588621825553144339894650108914695733930226278756234390112055023552159708555879515622815420148387114098100997650902919343451217099159286479684848276404343212956046298387196110486813952466566254805437920791433664638092385776971115558999472877782470533226239954932768274151443751591750780956338761558020870939109453996252408298003661882658567337194628730812590211146104246384434702744603695411726416101543234799245164119440571387112870023912095346566510276487589676001300411158263542046483867972599465410698863969525853760964362590746641998467544312504171483178058796390693811929904746519705729395511913528039312807299154179633348035079244880095344355342497932989988192253735088181035562416791251206954265375759766341552613254047125986488772170439800665537477327572841076885050195817227806650968990791190810631867848711145707742807220299405335658484066905383330386419317549467264372914655097439079577209391303416310891755474868359201691906119091989193923987299214373203599605812679815005364829534326703052599576261426932059150714377216899679511375691097849616359674112180951943278510919085071881342289501789278751178285376354163462249058438494027656106187770410451243660915637667636161132805972228979970412699084271571918616958182898214285098787479739055297720423608892445952964017165964508170458770865391995619722061263336287752202584767620208957485280534567849264590494103459389536536926647682717716454631296247309771778515483698640692936220500651411549891819577037126503770113611900240073023544681643376025401633096491912972628642265815290577756007401153543919349233558861182172177420799127427901710812980196854525042835550222506996815260745597828533445395105340212051028679295067960801144049054675430462018401851229772006668917733926418728310753173842846626300734391214134935879658587006589060261073807423017227687617629635082626219835942256949387143162971933150757483199227965955946747115959360620831242151612140955487923574461269352760804254191938231484154987271072721735403444290907255805950390782864765713569153834229257642938707918647827032563198273267891546183052403343419384780008646591612211947457279452625892995987937158058228512390105245475537997442905996196661439900003297986393197861434638781687505332960795136088989371096727491509876422260988398243314918121951668085432120558026502840402210361001331953168834610539834931949183224532644201590683732217271240357855948165839315151889686978971796678338210872406354854522834085427417369658721882938969184690464147497763691626874059019678072965853366899800231223526595341576260780795528562496705302072441184541814089464734512956899044188997871764880176112777620818183566455605604794684361226539205986728702523071335501797800113737185483566490802412891428940639853498619462381890329236444858237544925441266097951422404874915801228193888551577579976140144362878680906760414452754546053123941562161893022032732001469857413275099408547860602387571999878925194957191422201616471840423028134146395003589857944509173738255236188767053718811750763683020884704700381595745809091826504445734288061687412963582769649833914233021386067073140140779657137580294844120555697574334129255936730729670632737107048086505603886432408282972587987247573597322590038454441399402562785040738199466071122856052971774375152662853250066986375136985055557821890689922619148080124819618724856630580692813347144540128436504272210221208217753704349177949365235101213956569906472748827710874356072891309659246289512462307842697555306346538561801347818297866271604055610482279845034279445036445759440182209664453724152751183089333264366164748881173291865742269056586671657525023465331497236519921169183145696741220382887853784636570733532121213300111472814284408991714969265772906773255831893392968825982957324273396381118451103709595081592897726102438955970206761707697894214116058471531162867467842424776235923960481036967084457297716510117659926842591187340962578303969327824117637607734889909673136259409791224035034284896305453253654471973736353340607722138740416499992659095130789774560470532144014062959784994901843433314919509713576917335946586341086411160819182943176171884092378287377009337831964227934690132816887428351906606480881993530068920799529194017223198371093153240091771376943103596211956296320983151970276520069494968445961772322273658138346138401278547177438692265377353217786212944984790923888451441835528373347773742003757969484123791384039695838447555996697933715080809591450375596678203398306049816692619844045094774289607510223495477443080995150072988268976902642892037927516200855895674517883723948397454179344769598200573416962292835932070500213968905482327830610386188649285758067814920720541924174106017451313671903160930621867064703813374852748866119708629027947054674247317009768199202066993598771065381807451452700133156239903791607733403829084819106260353412495273918991963771290625999530359337630714915787248277267355931012041277319883231797698464422127072479903445470793477886147055977258007879204660812721867282816912794625175064180887113704788735852740563547627343619216080847366634222959746097704776065677726474307293749212726406560566015840787848807852946757263130709974542727522747903447125611916947134566162779793811224277468940570631794270280791344731591785724847058249105474728584861452028583941179987303626098143650826219061101629227095521393079669733472242499039278678128962479725256572362452073087401891724170928097119603993787682928576748727729474997700552950088378890604054689364621097044091772823776828539885133473109332534617605638360733905509872788678976711395643320283567952652677622801553946954162798143480241119184065764638933163733305422973553809645507894293291477405599053251633910814249169282793563688484412999982861747078786844675600343719562512855016084557554790351716892585267134002921237096913391570213158365769225998515831388463059205913814663924236121492397270773939964523712768585594164294312630582572413519402002438176859379204425795712556035064334458893437521928729739685111028281944252961834126979321166090404405741126084391079743682052542045569204746955974763747800377385727778541187531019478824605787774066965180806014334943298410937976886585866409098396860026072745995225051919398589911784350536891712995197626271740774699934514161375798267657430230642684365281389440581926159114322423480227512547230192769898904198780371581336374398567422865166774469807303733359414189314331294353103339260277999205141684479281223277413356540057230547645871638979538533567071288062708521216956577194024088517509523107570763747386470071719766888262226078667630827006449781129340592439930822445028948527999566245759585231523521584123423756522818391735043723468210065310200021387049367576683380852129655568439341364700135500785311224149636490644900471566235643179335133069591911067321698563365204461975196971739249274519686382678632991185968536653522712080369968016899505288734681921945308131806311286983884631540387123234517894108066846456658522555537775274961124302626452519069075325347972735923948093249779091832293468495855083074698128941686517081701882387998472588249341727501748375318723430149803082204776160828947503785849173792205070462159373596234700816872266971008219393300870805171229226786780870378745508881198668820814393484677037767489048218921258693622342376739174492077411847754692774385606491492119069751053208562849396450166791519847383517563264634177018790823139818273628193476946444883243965831554920299664700773431015313599553036212679664289763846923293665913961879615178643143574864212576912432560874071936878542934589646768978205926733830709846565073814081109506759165093892366814598209819762789391032199276366660140115212115530593355393634171080218798321257379086223006077420093962887222993569944664441312943079359603228735517191016198246367679662301483547067752125670132512354945168925617355705273614273711382424215152596192233892942186802548640027972314889732435257916176539004036915714562784011243360836607170224837562987142592938530036880641062376342647241318650808529791515233071955545486288180213295543989387832545246307292823703831447385655700677545347505657462400750548364657611292333568365393376032377946538616667244343607096040661665118369292337065930814326118267546841174779429721830612459699748868440049964953973592586064573350820068167492151346510456481636455273747258442699309870822032268511626775199747508906881704531838975717576968348736751880127061780118809329773695574053119939606052055971129967502351937777193737023251569864712202834189415523005175294216815151768144624882278006100388616736745322957010308838791455061172059378900336488695262974506864965796761430369275252108649560267682890504286087757676661740083314073014476130351143349287641225102454381464893262988337695196165622011143906315726436307582152786696291191757502697957926390198802586100297433598995320563934321326903157750760769006575495407952461243913498869944060319594291124872194330391456530284348699444192312371285652548197684795620139286057433210897625527495669437196371359200788854242428981224866927243019776872575142148438052510865524430532178468719500509864691130322384755077764155578770629249307456936644582214585329333193893919664793973266414461315026068303339216096191168941518638164295314023367107847691277229582902612017283500157929449718119555784038399815613022477227757529108411019127904517357743593079032963817490871045410723275217663734358164239536491379512993611002507003928918342907033804475526934723059599023355915008949334274602990152418559155705090114742971765193966935990897093641477574761476315570642338362708141235001062237670218143748347254618437164259293528690835317730474745520197474741521491418589418460254900823489993420705186625702129982968492912843899462868879015364662445599345780021553939470630692820050611232367087229510762447403334946024221476593722726000538461639528288793637643021972126822034694914053330325024144680036992927729734408789600463817245715559187118423310811063486638124806091715063733505869783313606394765598645516077602510707520585381966453441447822800425524733543826728960190427359226322210315552817615807199013054116001902683664962630871369180325924058475375916929520376544754613654620841143439200933060822427646206332143605629194986742224701103320495406720928566605025514795057711887771162622051565664732802329193407598077126514752153936940879479897786373472487112563133373181267303758636554390041561044572538039371870780730093828386864773979474798288271506795255815769952874988504784215207513858013072771706241409939532178432076814229828137330156499530869218189460244956051936887983852046676437635892884616163378566210929095613028517867135971609314584501554165473665746497173616165078924042130502587439458139678548271181947579368197925124702993363178505547173374837212029997334141191220844445911690341309654836370547871092781308718003299995858858097092541269319281928772196549335690614067982324902327771736141286088040319958385853686689027747589202258952668416924706394497931456779325664842230771738095122697392961845289663495734719962778853803301296561001822247197590251196850940647043101203879089257762728095015950001013659518130467795364562016764285893695431864902603047394672060831882787282040603299260869700378833494409356431833696419410297771708568942847384059425616819532294761960171951050266497188666601940786286901776997514434124581821714387220779494352115866160305842633310493313226567819575193804166444470654412299596186460382587677906278591924341570050651302107924170745705474937677824332966909654187736665519142922661129778573053405179579443146926423160785551277581529305606959728777405442714854848615506423469944502545771124281847996671752487335062429156212607603507882411995586407606229875555872016479643342929370904089298030160799187424494345696985626978848594836414352706206666067635222353235329973914497312897108858109292346298923217222375841868603512833621496076559989707951535469594061504044034282164580990826247298058976126585485060208614742439177865222278959197340973934368437161362066730216038006695682952746138229727238780212531511771330198980808009589665749453955980805048150396661345976444680633386612373424541801197329390871744126745949191249317552956351630470223601504261086991043879798897704561882378374593481606603421530033629669484491761009421737086565610078843197674893866342298478069648217029168408442856101756975121380701942334445895887650089655097526467790349935710922393707701680813577230138721687722656540012819020960377515153066136431603164062084361201183116500278911296590920397709559597801619021915141464535807216319981365429922411146126367999757638164233938179517092509693640488587088871239164001868400174957669330283443937383659086754049227492694233345900446371179382127652840443409427779002161296736702308601359170082530017377375042710705080361950669865866201824137781716950218436478663494387529690493516430229623220158128556437393727191123538861981100864112146679148845687029812832789377273034400610836372459243823377007159326439123415225884618138519457728276892589076335100854833568410191873147108192631311104279190219762773993930988330754045543034150556764216966890298173448495798959135894875039277486510062654966161832311761851838252837639111127424917654632429058992515412570071649439865568013596329207496709565529290030415896473711061815655182197924559831818328084731896396836371623967196153896824056709712965347283137655369614939061063151276360904369900044773536871628832906596185659598041597438781996814552758653022721961075836699590131039192423271888075283489540852245585602805294546742326831097409816369500595552249157115653340540043108207085994113323081557596788816455473299761244130572854343980948349923986281117732897834571305302527388590171811933993874592823798488643944539311205749875180465314070856435299205736596503997032736662370237544454116342456370877524165091986991907835782692801301482567484612885344668318223670584253954176851802475221328936179700430698033079083002437125919951556267870215000426896105548600547532728182128147116881115904843735206328033803026822473624110358148416949781982612493692961815728945030829012515497312509716111499986609394902242331460489844433908403438069039337791111517152210804929832762685317381294705859740876032670211558861819391353200931771926949203143344234063289029481862253231631413823184250877197929399767193702257036782552295864056265347010249507384325001019521588711734708111562722212020087962703314570651500157611915957528942508261840525879127125256277366837484274210565687482833262608751718484285403963401588122142457451597309934398479036904408750991397834632987118828525756426665449587546005033554148906096308480685627270095957255904316498266528664754905339346138567197679497710649981500365301933154735625509139150735503813330865208937932286370673849932697331049556882648000681185163985667860860372958761218599910583325289914899152763283294075059349439732568773801685843504368945495063898501164877509630324518549219131834484039179732501575397781450682379081853189230022786214369785770518665246881078932895317343481485147165106450215352717735760631354915280153218594343873411536430404866538911202742817372680240595983078051729926729984126677567344449590589944674177520254814358144950707795757682208243883261769083117626931028008737401031320177577916568440275449301749256701656548447017587767157831994131751281087254299327059538525626345127600067628838258181149026870028625725438824260398720252672520295846239052976134295324774430041096419121493975706282567596346041146400559233390521112687497013931091732114843690814701068126674069536729032741069137188246014312187606138093510078888293311320773650135719600310620806399936864158233016928836061330654076915522243165835743720581499980736265808734535025505096175484620633488170722149838842704007222528822377297993327617158705216040823418432319175741316085198649834286304238664623993535681890365404863056847944190660820793496547707047443867343316814354274912856055272803316753036041798019236220114511453476637138884515381835215572449693587932797968341753876496508218456116630747513743865825837811416794699071804288836860777979114985021940068324352329161376343180787981851573720540108745272045510215579075277083076584712976308941024323650312186005951767654587185488220142439881967679199018143144866966009016287978244083709347851933422687464485465139773867640721132201469592303756732161180479743233276282525721951431133027200820614470010213355907510761906753282676974680921265254976334076892856775442207179965796608532938472381309858793306727034817841061939145228982327941714695732097493477292389657767833808489796942820129032157881163320878061570146559008615046069966509162274297885491435172413061318827945805320061905616583155726211994872140545391886288323809642774613450966595317948883210009205938997092064236770299300146607761314075571871646705524354166214717375943140334902702559487688203100248762143302281383010146895146163069249017363394216404201139571201129423577513700299381261523524377046312911402161781293851935194056641232765257619697615704934836230487924627027000887173011348970682069835583392669319054049215051763666616385514544462758144392877123541447681043786649070648305312597678444752943052838058808436148621701295472474355761703685013302672624043107754483799057042792234168561104028369854740458736910369789733170694829131861944179402555124269148242261261613231031724077883383345296812601409509146207610167529633593613390009682888683353241414810755910676132831114459574439998528181882602608306272651412150350466162082684246691528547361924537799045747845187285848611485187136252525183561461724729747328615973731265888555464151858727410968989636192611312812227545971400801365910563517609544083959412616890923995475436974601203501934676377926112268287507960199753431844271576145580302903692304003090840854179660504938975140505769363250245816916149227953267193342043881330811839527936876343547173239017845558753232751719495504598594438767373105618307492896912888991846822221315645969102092157019030343995641178193551647608724903253412606100508555372227424481910203705796230218751751830531530924956287377425545937627619153260921983221330339010533237061985931016263274896151466071085422614583827597960643729437634042645724909615871862784471294744752745826733492087869042151230646125369646558501978302358517550413505747474237940822266534544773986447246397873168197351277053529688967018932204279353751858608150092586763766066867619787016517741992750362093955881682734929899768296258517563612049344445626759365410265275542741319151894169490855372473922409242203132630682249658340103615777820636741130969187733915192313723530664043967907961916482448053539250878916255909578925756619376367341151231775963735169680874838284268579238571368794887084215162199693859340185465166998439759755543249292839107333634803548046225298213617010700204777098375826227454543663865995090118079102981864864979418611337777518495645869545641757018511444993131060398502647385287581415201103169891687904443855661462104839299622421045520000470153418507403618016199091370524410833878592876942855540857506574413363357414884207986910197164372305773846919254059472231169981752862602732677264936870544291348244577484875650035156178629847576362083314587693960620453716196595326559504518241545970878693403493172317587114750018551938015660093955316120366939099908841983465289689385951807265272161108467751713108648647354451810553561463237495753559272403841283330285528928225238284768247980862838017225890242869158656811991804863849233854642727013397553035392750388697850993903920057865374792219168672622699053315072091536344208264105392235829532936056299948786271931429365176548637898545714249150675867432766040659137859533736239935316785030376788486500209661908777229463330298648069295250297838021547556177379689769301027485474479268962792930888686518161842790399556622790578898869148906633828438880460529400033440681282775755687311087094882089977150691027781919358492942682965719385666814464278928077017509721932402954611731877334509990594000409875857896833208654398345818660549253053282426980414937547886016011184361414093301250444899667527510441285088213143796150548388197183520381173535477415330175757031311559376760446569418556067079248981146547774503999249486298695708626726576389686692502816895139170594769431212080027529558301104150645400277179052190375295916826323563663251842589910215684393582472623936206680983575449156960021812797735377397143466070411946531884000270907922318078058840891491556407668725232050668798106888678140722744722707280995064077248503785315535853213547178539941055177248068028216085040481110198150397428016605051866388440512920824360125533454834863629462905225333068963748045524358431517000983968478197140576039471190204175901850446477583710970222981222932349834506693878538920894492566958765470247863330836942584974378196116065967880137319176505431881535849819370734688247829735288314010017417145528386206264077661575415276357358987139774354344108070067730670532868347320025181562973975052163087224596117751650172156833108592680088213812384722788597730426595492423657878987690720492680158927066146476488946905726846714544341403632190684158136983237483116111138461730995798987913270783953246989111789077878480403021917854141568103021053133035273159335006393475612251417320206124741098912483709219217925404708643976475158507549473273141868525062285394971718438486997358571042849573940855496951185120163060543502096471815563344429867705646245537785120085583341117475396022297766585006566636350989732290874544817530784743855838900164831800051764675314960790261329353136203372496973771377257070235720347687904979938104098472677791475247231804510399554954593010372267011031894413777257586829694937601396557610495778604340738488537713172870090821091171007306255275889430232871438378547704952226633305086956456312648218912978799433688444599742979123180148148568847093447481842869256559350075458351148538559565395839518181053003038891111383030962581923489200859739211964115736743698668981248054614334195362130437349488026115985910162644594276493470820224079758572574191747863751702416810760867386046953754172493945189106041655804869726562909472768024299539255495680809578214926816484904048988531519245409388387304966758414012012931610273247208904603129516581407358330440088639945086926640815843709202604143775101192814499860770314296236070051643766706416053379513256655496577374817799742267293731042574666604431897885597784407796299354318389975319933349967962626425528376603553448566157868543519139881598544199292936627616637088770510373446591845429638608682086501679706835690242286838132574708582025604874421444581479508780196872708997147200697270733316238743912175892719384372011566253939391298326104192719555586215980578609619075030664742945798844286371868254218337304736140350062703993678045516458502190067311011134637282146806173019706134827579804605868561586132541885842065435620933548875482044179565420697271169589679836291875012015083002589855983333213369612424548886508889916204791395442417616183607695349719830610202524114054610295644186731022167611154516352665660820722734752766035944100264245968065768279015071524112126923219005324772326374185711216418549476388105180676746997462358461762750293230876683823026881955685469752656364722172341470706857187002592095222552564245929971546476846172918176441166981678226892146867687603512569377187675880629278611773085653449091763097401581078024112318419591789432938739951908936434403882741877717403697529539383093545793715830927508197946782510504645484859222951970457024375069402197638841462503938754436598179359173987829779898930583486986048507372253415582184321030424283193295102478618323084017699578823248376349671706012563847314768503151056180871874681932429311304588660264658689374149750946172926178426015854167230938970230390623151615474159564079400226577569782795488029688582131520504064014116912096302682419817591236299420259744547650920865370068176610733399109428268698374230020306748350628254205508515759936044885725565787817763632153438483995654592301228053084320681718859990362848362816621285004585840736890152308002876209566916861114029458926928173729983786426394258283117307633981039524135809371166719207241528733099762573089437065171961499038509003083418454446282849724915942030319300207045174018269059808285414529223542599356788343415916171875701590225708062172058889489480990155158619957595362048465616343019139938306561838521749817560908455842076749567260723231629281156250665576534624244562059174126245927631329871602942178957901928733175628579809925951273671716365689298383308211148104309184836547362467576369355842287476257619060606778117674127615862147271716928332277984485524484140296385580197788189931172055739106214740428817416721843734925951416064099486199292255329821313980889421371317759799042096320068882694564372180845723927646345296733707011518703947073486035842525701447093945651599985239484591027783604101326640265108350957244792043962420264661470655512944504237018140019492491940791718451383080329060657408314948505955344938088758221690771649746284887498578595405305976117410461353673439306906208317883289146209111097229536085335272407860701878218833841552958064241270712923341609826539674164268114629173430255556383475636180592381562338343640342009197841337277552614229847161187702951955247342742129623650254384513296172710936284088944640769538168558905255658585910863729139952920690285542545380714970345984374296003508786616006636690451752539195326615885714344965980281818839278629589439704263888793061862498980075561899623303819091809531337135466465442432027057090856699723450857642190842285642586018798756835954309590398387485295104100340283781047925279865665308538043526315298361305606480844519833210717045776025335273632146827336153753288818545764387963519479157834105581587211086114737186976401993043966452293514833238368626603430883941932593807040254022571848943793754615950384776006896406333624761806555186920368148535053344972792441032167439094742879253770503418357543803069159330787270217318319591422558641227100382932750235281618227875849360547542457536023339765316336699317039120366818221094697977640251977476444091710727539026867618816059077874712298061514759218158470256684303784562540112158834143931298489495692177050090799658130488407606982828157787638558629113737508295711424139416140696873626365593251352110615132377807761745242349501198134223217510159056714776546967964665618676126274637735389616540835925807185333637950404747654808301663845195508612305026343863257071332909681019374535691949005395395744786530070801900672956873670498551617592089994621256239942697385064314717911059188150766837840710289203871965379637182023225526458059335284265789421532413992939805152638607786881287408813240544204857328955194836110148505106998744259640852685406911195869014973091090862488771890124243485868460586188148245225907733643330725450598132604200520140526160564488568902765870135414054706987809934192149330972003426256603382094379565456590365000680034327802695277270188499789844364276483075988062822565685916388948632811147442378688539527652395508847738967075561021138332143454108865789890649539564192411690264885823548159427249371022759927745009034330916867297167365170994019417614096744672264036641679426955096412430239436514857946713894081809364904516371770062275199457231011382886248761980168363905367895265358493417143840278818708224202319887648107065265452371757640068387561175200267018262688708554961332884814126209596831285510815448402563756670493435318349382671320358819988111386304701801759799141771707223248146441205774896341806384209272179456136922570377512800190463479580963663882218100831986320131800682306751807321407877908550479707681974736949872640390083947849260473329206674592296685484897339373139212612535773056561216140340725979664321539643563406805653347394988737196521208809775062657819427174348842673453919091739017798342102291205048628852252738679991724003418637376014449827700319762052192102893198752141331644189492027419107207802465244250168319811664468921095407584651579550257822341050024123337212908449750779426844275188565572391034990586178979330664225638975824348765603018188600740649590006718606647910520561490539503115162696937943555055935270349663951978303895480963335677012040423411951018869970565176694039500047549245291209752691807244151126191173828311089454483906947195002136505079621812891565727844472867717625384434726687503291319878078253852975891354649690908528014416656059250309508778546981018853709976554808723488382692636653212404392214648238522736319477624173585755353601639166034810049943594859592510362996763560237382416317926821017924488438300900979086360438550940982299678413285321653692040265415190372318097395543524597328693217970607584934383973046499591914820991791809757045655725347342072465088885360907608741139078016589955265518759859252200732046500106790529067857428504337255549922530096629910752755111809874328266034270082546781813988257933219997358247694833826692195293977368551362203797174826341178242023287155718897120023865111153042276468427177301124003737560429976905512630030631520470057198122002084236760197587805416499914339147810896721966110807128238431261606849480107243688726460180868815203885006592529486173405508898945914496488287797741968647188526889990523957912112738451624469987909450267630831507917672773265411871289350635297837186443056433374558554303216508775122080584698979249057645551146264456411629840501700628239689650356886640066098546679841497111479062498338291064305107743799998473696465582011024579903548039401257406426525227262966179807942802239555379215434030739330708102070457636370509494427186144329406216680485235077404570963925134924472936927022695484947567560903700686090173314869350285813067457664103961912236430461114535872935765453330950524246698604090612136736609327726689813546403897839493446002938935827323049924981128445136334189241685737038992723641767744879429069829292571418922862631876865028480947944067285565146290049141104654576994522102164435941790837619844604895355895005508141547047444430423320397830765196938701642709078029191886129066307751997776280897205193059029131425636529684485925625085743740413036075053200040097843860739870936439311472255282901186458117325757336948703138288566380550356098776892974880549108566378876697796034466961376195777303587394074019344723222126287104486234612444515178416187593209440745423807289580779997142653630402673409250356907485594918493192951937357933756471639096811720537942797347356584988659288173691046777130497927986130267289543400572887357900012748145998677793527311051650108348501674656351587862118144808205399855291209844033823107342309064947797078032124585481345643199033487752412600932292668249874542921154060957559965414952469051234847515867068954775663499473365589288413313575534480816495959867118112967613165933489475936465555572156875228909174230118093065496194957369935972886541423212965865260663500555733443656428286195940591584954679836829426935266451742262653765511021894448397385768893243764159017083667325372676672194710506461574133036092431042538093660361144348577149641744860022865301895251870812767285484901223882999080738404022411773074936945890666159886376996914089699353395392523502582584477231778886682293814409962842935215307761385376826613484911972187083169378029485622850390879443514312540199920710726466376439483067204461096586870459663655113130657051438623965544923034554970709761466230687683587926291772630079255625459994280112147482505905537076965018880336229118896224708052399061882419095681423665082422838906245097516600736385651913766841143068131886459809416841258705401310220653189861324063848128488208341599444859626130624958914869997068695025477794452334815352188547468563391255573655449818300542884309533912191003830145352408744645310662374280655071661182437662506403112480865531716113157440564316044040082456535563079993700112480143978737098220296053192325560063775692803581403659749202913713323325605263279150195493618576152654581441917864894670852381225899590671728540848464987577221415783308569476273520434029047751083278606807381050252582600223434277189208954051504295644543290155445662291649368651280422208440485346848673992414350290128582286210200217907705756888112979682276699437338901544018185332398345092329828678906946629613887306614010431487869737185148524239082392480348188141833218480003894672034629676265907343310253765654117301955476891894027670457834052205612018131586703535536003428545714038138971801709841281836968688324447235087982401895475528393965431339914296298816640508737315551318776475346521737403322600450851175886739563596122404962532997115310578702661855518597476481734816637010198659283141306270820454660487125973648206522241799894892117453192291557381633849799914405719553876102356484963304297463207757432733659392625501761571576442602797997198495802329052970532549532512976176040291499733167037014358436073006817053901334858008411720537996967693555323222402403286712427501539452370872839350826821448388780130824997924133302809222358171988713299582825786520860523834900202632937606943218319400512801216143609345757517516274772677024966352839370716120085600821838385785606259583763392163048554424096238499581881228253779218210476956232555486942833494111888107637852495681137141482004054951987914691565304179455291601737368522723239351524501382900570173733370352555233354632761848133724079433256325467774300150824348552668889072646734054850297045070644456191308081135614010233316409702539440625240938804494038022954974817557588857800286573457476776866733407922401121328472770894845097737672948496829258569563766534476882825265463450144008332043643351794376194071776098767910639742251264999200864699503657147463790108760765904357380081503810383483564218706008259304883326285394491208457438166620220317753340532751494080366628830676257746184988686868698515030479398539741416952604519355588345860520967113666708815663473065623892125537366892779737707962877992254258792801946273324324016080089911546323206402187817216392249613842597856504401819575146898299938256298962994693617046481510978417986702646358866061017906211670557751373475989981600273298608689762016198198706346291145944636786243639772258901992040571076279799786425563458427208909396558014017688592979457872668170145770542400334728027809206028459057460454271227843368206629720092489254782788583645916901781064534836205539145836656773327728300964244011586338363765703640157797908807538683859570263703762377171671494237215987491062152896737485950412842415947899330448395049563173641757909470941325777970970231257437356208701557407949512304175969024078357157010361844790600600824953812852724086985627413194554718382679347412194653816904862769915317940544923692007446777628960886265941005288008292021516759169535110578987328291181777475257198200022862900819979098232112605015140742347989466488156271436317181784309245647831812447537564746015919443092742939104052826190022719474720190289356259146356578330630429004862923183834060327524933195981668681835537935496513934207937052626950915448796825458871444915765934199752307478693501785554689277787942890223406175521624368356876581625486249314664758618600264569104098641624970203070522953930925602786748182450410075177683443839441589102596126560479696634542985584319850056084625762559752927863618343411776640597462486523703324095191832610002551903047545085782981541545706853244815727474984489511920740649500542014153989919934447331090426484843970749146520857624258420675775589050055896365616653635898699582079931876320978290218643187970246326984467328996351650497542937599583571758960213461012069221964720804864861392471436116175274500187194329856951810046875207742426424255449470390287884418585769753326780179067508754731764245207576826164964081476133973788893023668292711834166256929629380815691587275560133555330033420338770518294092484681951139897871596588854842703161193122331723896321356331877126261426494500867255843245480304528254101463988745483374072698813140282937883199880806747823318386194506450587935344679819378196077302202908806309069064447923143303488529660343211487348069625812336413241027042701762762559101790466413951965533318417451122523428697524679254844820046477845839257407183485650447007946286070418562437954840737648559912553396851991914422620624064728733393682944331854903531278907256963425137459264103482837966333937331200085946199434637973762668601781040648502731058424647068546558616355266135738925540177815436103189684097112213064558073602689917234062967663033635267032478911238296481829607622665931756578177935272566023012731860379486965724190756368252839396566085370901641270503899350158348880586428535164759442704700676765073448576056543551241968924574732264384335224114946567831825695171799861189737995806430079890782793737952852736887362772912788789503208630880228596275528645038309326950561280991307630392710146559577893117583929565598897555901468666971609169476782615332403506090143830730686587807106176327843688770036805264989759483930209903802526194990249209178082683105652954496265924216677401699516433286025546195032639048586028222458142342419248401604315830032006868943393795785915616193894857314744597920597207532972066002116845727406320021046860186963176342619484749235741090553085367322592373978418083699720139316260940252177307705095920351765010095624784579213611218143637483410717881480421169105177543598030937232334236733128508992573245115455491526031739543413257148689816819184743018786078997003626240152682538663969424409601775143314717985808892521039867049061925400347739412536644807858922967790691353249170055638602972566570401190806436797378375461828387577528281724825625714746936790405790723716876977671709196556524174355707485092147617783286133615798474554394194038088381727419129047505551740548981296217345903674810188424723661511751160065191994575509959589981787815961413966089369874947617880397242114251687894779345715637281078325122430557510846155305965743186257913854036347185102678239748585744869011756533543321487964979609762346396287659390569105460152101567811247993999057162417673739672253885271258847105233485882229750768364438891651030035516584825811695512473481970234606380919515262952504422369007149445540483952753857420580966711519855997292426480732273599358349854349287308324977462582814855322195108112625538337558380954604205471712218721855101113076119352102425264416326235972496741719463346725855359095453400236045957495641135983906629072583519168865479159211152470717133127705793264955291164430894693554113063120795781531433290328069210767285112288360929192428207738564694690556556886631595240096524454156031508084701449949886585120441636717140381931656791729250454116112720557522473916885976595075970508279924727055805690248080950730247723783454828935155553620624844510807182937606041524863640240943831162864080452788005374456542029468529913406451495766065169941990580187617777262300304755302781064263686423882611593883960663196027638941356154626574012903313796016998242267046358875203777902218191235390802069027843551918137850644418134076832909953786055228053187923617754642388494685450937838700424523749866115805043325442434365350599535819161729955209592465521629247604512703093571966558956182326736007440018058276869509341376254782795512720749261478165773021998636507437544668919254000286948797922345240504803555822419654802183097133449652069619405886307455333286387180352281597912523821821894027369646001819969516651726415759583131774139544280841488853714822117975671668388486823112011476261341100488169532545041358028501689937060048839536420676000096498834954930205809593901889771130125173398101951028523807206731360042126456097464567982635443336275651830165015833268713899672397717027473828392132616467983968859802413678551264732848746319052857087039116127945380706330295590348309712452909298187578870863890105346766649652041542204828063719236591928416241386654422681765744875982708397747483766154492238403087627194553408820212978787352220503942790562354864668990835456097277162022430905106596260937766130233285128584514237534001220621458312487955826529482685037794312250454936905607793248784832928129497790503585214855293838813477387492101494862356937311017150304037489374190606488895931599558200337339979900979856852986231914573049138114104053888658885089034902049412555094280280323278510971771968726817811451306357146548541873745855344510101014495609751140082082205076961289037427655373896516944289455440329306712998118287633550865353500024377374686728698158965491117189515142169059324236274013867465324877281882080093365749133636445336626965356613507776105674317085233491475526843611124505033500742174180817107583701513497353706528932896633759721753357298198561229831709502268850318971738084335642452224192816603879658567138713085875813421701900043846198918917521762769687042967732786830748747883958085591231961199180619526013179635502261531749822542631881126606053974803556755894701781765093495051866009713496260151938232783529812689352365866305658402246665231123101367102984606272078962234789459076189058950308258625474559896637930709053961039671546841989734742548666162269777389602802872512099638358882005902022276186056444653713985194429338046357738359690282082469472810382457733710040387582443600646410516496979601196215018579254328407681122427243904077423064392411529150028355990359188220757499563502527838761709340189532085165814914901255168651290946876953434760604931135850139229284148919605006144505760197001310559518612061257525465269010813799625759487348627297762489077316972770260782882545387797973497264964340632040745413434016089904426743534491991863649617328048760924193948071439984804401734614910989530511648936317297891463544055931885595190176024505879964476357866621705531710997691225756027439797184734128904277246818475978960409623650963815250250107830851727431284357045479848504482679443386968026394256656015965686806550935466978845768372135492866176313554779633286511462705139923592609750145126332410287194659606682256351836924928059638984378302926198033591810456876346721510375887827245052143544013878515598727494606539815305916240692214488266725533395195470010128179898845635336064808693059670288535943037546857407095367050525519839889626026338575824856570031436212934503352144238041716715119596170096768520349995195483367648948220868378236160764561628968604285925772240216746921642289149194303749968544870434051839974708856210229946190372284712091752719703820181919820004614821128374825734003974120541715919426955959517877708746676895389634869010105668241966895925887913806489350441253976727956033711644278092912529629676203351464150599139110651955206835180287860270865397472411447498012677514918218404316128378926385990443351191101772742288627976072143429512333525472258428280485952333533051137381421202606141261553244060032611110981095450897705824943112319069047589369992039454348554048434383227226936457839517106324032289887608091996556051895505199394239200298057966604248596813079237645799057981623086186169261275539805173344131282417814891711315689351102832204284926723408415182732592706434975435164572755098791202754386640196845570822630805496569461260108747575082492243882723927528284321616444900786954605349711781126957258259226551494863200745471934761235315221676004328105806296171166016078574441788822005798366810476510381830985429702931941232377428921368440328385168689294105499086578259764482987311183633933262411524658268416511676815477314642132549340301375159776583966503136414049088175264470360753835228358846849791145602986708168666004673392816167386405592954137934496510454087302460542683662366253020031688438598344785827465222381290163491031543591336777654135244954312951653763525983216798738000085278983583042886832770039299147077979173077982675592834699088315629785254236071790033175188041417898998700330503126812825375179444251236549168434586315303778202407549756289498933904770691730068403607604276150733567281421756634804247107483336102367728645632448120603815358929560330608465919042755651132917222405169614384019364891907940448171905214540183203838508192007549093758501817049515754031295997028204638221699500340532554687682991170532749258357249634868577141594333175747423238929403442432098227466917812232789395120287715905523997601340651829243630622823646472167458856775784517551958821613724177916440004631134160137629687895950572773357957150305241709138205475092134536193113278624890154145468414956936268058778804758414789464177951333648111044313206108177539371333080724999924721151755013062029384535719978370785547790564131048065462723541566911488883230227516417780431567045591091593734952619611621637418241295094364776699460889325941436289972708892467678921504725452208350367076647297708134269018305943169186254556004389623076173358659402325073472507845260459830530124864940350779164960113157769130908508624571185484817391260509812985619279329632695914951596400614996673290192020386559784394721911053665492418676814862441015221501885312098465330441404954216039016001655069562052859511095849413715241574072165683602753908364591259746375008453065345251444927810343672662207715533131268379480206580625487944259842792480435115200786198185431909916003297957209687286970822714506977318589324011341202628494159173353001087378532258086760777174672729374131660548366610151242062418762735480634917379824795631810691576762724207062112178143847447817919663367866260013270862679632897011894169279409916812924277118229947411536964551703272002783513970828212026900466542807591522941719441128077952403423840534070671479139752358379537745849215951968470631290826651507937621972350828640618795209899514170207860056880585774290501296273204081311339606145376454024317585438225591635389324800396890287065516490100044129471319141089711322251177092524881787264396464809775205526118526827578898305565243046266903654566117579964402144753408327722954710814608397502440059504659778572221711254020328267821391868625417472611618843987891454531783098708177763329296206833886100472110955163937346398113970632600405576085387515420352133375246686064547741673699356466012622592943957696129469201933424075835411888965041948444208067425926783288961044925950684896243074839334654050545878577218567891304302332402412406352603234994136099881118825325249333976973829991011853282067356279569460279389516632036970470408637406031211728799628212464586367542400914902434023340950527240526331448633447995900526865951426331030948250528369753807955875449586457055499498189897532107013942565344477327535742211212252421441415634953053709900378393085905763739298563935620473534476205966814104900286905146724990219301920910407234812067984389201298166781626867477142774589912085801947388889844125827410049232613959139387316245929092546586631944514881057384577738717036478314310859838547512415940611372763743030838710535816647547592092754071881516184337674942239312576997347987677022953613942100727225053496170776584571023172427654931151160608238824648777474424533598534014065421766976783764656959531105500024882418704969171804548046346511804634994096329750505490521991520846387549336501757729163287947688394049764565385478901906831826166987482061955407653809827081874527177299979876615262022051506478255141784835344059769280251791617904888258719192815284737708689621739197146195866344251250667013910769900548818184016596271264126485743628397300414910050176884735490440729080025399340691528043210354993744512230763118748311078274493582129948635044204500870902113521035967230860896947846682527942763315223023344988273536599191675459437612870424112887876883628301515133776299681046273639373036226552505221140629751009723445712804910299478922286312033804396553459188558323482601613261001331620524943122716450719013872089578891850843778210839388781893517552134292412503318981429819192627616687417424276861623183217610395950380840586276327951818406180805248902726576337745258860072079950362139285746204350583900878132524038184351417892208821724924470663518887633533066397866673616592482300217195302072521594617200763377023656987527536090204768981455910513515927121736497933879714090621597512315797636623928252572672116386797580861299715878323326682786869926532264652931449900797363592743577017798315744208431545905250127991309436391224016373128288787914304407262373807360562780133514727520605985671458625233904154856440341730954200477095221897990726405190591695322591796778862070845615445335015112833107301657529414711576320817474308043868694082612967865004472590220519664636366339110185000428465767148126479402742998210364613658523045721475400656526507972257130726174074608669830380481812215006177585343880125361035194830519887231821107248171754944844026423419507663229760897518581543764799975549248446805376510271861343171880861122209385954975097924863317714424221327429531402521316714792453898177664778518493440835692589926086570776493156694023559431615245573630422603916862810382986205437826678689088497687476277551606229295611631266629962969006118838542146791761226735194592360876791347454136259068638443928228293220462671396250457860540727406660551296283705979443399801396974585901493106463141635502512467221829792308670365813218408514921711254630818525476112561006868941435485799049830908348234580623833721569578772433000560403550113485683566402520393884322588237918892412182886678417892639734780813506002893176698605357386081427337655621575648668275794247982328811961321351177895017157055574356748015401772633758077257875906538624296321839174559614231709989599490924588500671541479930406657107496250962947629224451028657750153168475837667571759542302190322070383018715130459227051953565996262810557980434286847180479822181280328858455160210454927686041768204516239812771077147097215746271132470688726112718644122720182383670161406815918756449951867279791090981639579513047826326783272236800874133858132960075167870914441245454451114624247354020141748941904369057956348811162947737756052056326767092963780195073593088930365570018681037332431341401795482855041116972652151195612001289138793981229310235846635867335200408641287349704723965830712759862156412159472803030857989346234293046810589043459659532018291554231695146453243701198076565155310694113209905985837059971181427210844792090599801237046919922645235947468101418897426897522789162943372357118752468443029859759755270300387198372057292869412634802407848995625135924479112030764416274968798252217780100651708486416982269662432240962725841576751098972119077830420845938629045435240075637028626835011204028235562645261831794567181747589435127312728867038939479738543752515012212847918183586665654766682501556109707699663744986739453194146986131659128813205142673338767627193211858458606866790161515375383195787557600194976206500565786777134924636546572747477074825077508801924741783449911386106773161657544096494881643207809128073631159201097544653814700223176138644439547741718210634728146141706103366761443538298284802074437726833254037138092450503705898479199044071224298952048316353087842296541471505565916718007206928397094168151495678842137136941337221553622483472381232772633158667333829565874282308140769006708176412390481963666220831805576430543860121362888193513661292895032674156984394504141916634874142226846318391275161723580394267453033294256717571747279733443291566436758723488130303375923240671284439584470594510455177580928363973370926612162392096926112776607111776826658172921886532057535580485623784204200066317025222323583041219503052699465193122583874142408115390319179153891755586120131604846265679454715198677631544651202113804324570942978190198597010476696536174791195048548888092499766749328294402723930262537455829962824478873421116502531339481108783075923633994960271330950713784255910601960673709648791719450526209924298289318113540872162659103512903768702193635814475948093248636152590758446225670935894484829895654742826065615359332198987222625952982071188640059388570596394982631030682027965334601571986227815203947155932503203438156594049969491396602963550178902429730459672657938940560616070971448755476762469054044008082164847422040950535587878932633188237851192501318380847786354101344620393648397520151746528098389827788448863093108536312691255611956877231497364262968027532496797347694798235486734117819478621100762891144459779826897719908133596621186902006468645797819239348191774020565926468504582614611626500292157769773878121991658586261160562313303540244459432579111901517198017062714753592132677328506987860409586735579623360678856997343091282208838579695755330819812397567254262360796810805641585475446602087085202046619946632423702675542734901633840396161512826751735973103425720769219330158838581927051908112859991894351643965088074105967794176639490044115350324884925974619348462983015854731228608488980797182180771363481251162434090465525130305199207105809764335395935036507904997782361259526966447516064347598284235495674483461292281454113258496530203245117456065119931838554191038189147947909106118355977125215333103773527437648042214838777729755690441161432149479910224444119397885106842048746021710406756287902390349717154010252054635661148867583022345836671249178145458783287148160281320896753705040293932918464731024854864745593132215660840952053395325615378247444612748320151410837200807399209106223135483403701058669162739614437477167967026413632106119365803913163056313487863109446038412446142807564490976307892960634879717848250828933488343316426951893606688917308772106878502107215136908721592471416256877435071341341532794784770476661551067128342686957947438873759063023609657830248010973402022427644034351701052064694721529551356364953467917063632998868667293048801619435294081547029491979005404461918717458186075140503942719349118635108415408178968056857929741964977625141137085274008456925588273410265155334628524049592510662516105745419891756159022433810224425228260199745496452409187814961708064249756339485946708748507341102798924511363055322833105740727196851729971979885092507848961123289646896894945137813421523193897736033350285369846320401395115974963582956323552931591111866803582741411446596328453062847617283869177215207982504979759532434423332901804082286052432055844771654428047553770070122503864018522480922393215535340336123248085685893914442941260657181625581638938931753385530166573107641274684628502711392091489194614579658198212992600705183911059319180454632178872019253255403658823166710401203651196742679989226103107975733892178654704889076441423066094307284167566521261166021196193549121990195653117869744958138266097150765555639321194623145011671811336910197521548309539275941315783306378065096771323330023380713598266180118898928245063612242760079901926925727999048574632682088514059516826455557834508220069900138111268578378334976759706244711575008410572856922316583371231910966570003123040581485103713146179530365741849242165616598786493331912721878020684133487347857138999330057786555666246817234748941519795138329656844179505689632348455395449958748457019754316527194431796327729444940290199800569712873281485945407066605751738225372511412885347182655603681872323852876140802034368166741982411040246502262674787483797431019168277265446072999894124567914280770407875606895027257943276320607309579871470962011536276250072081112311791847425648106041176861550603667293667070881897454386772786453882372652802201335929002708535342219672553153604285781133851495925190080498967446110698513816590239872004940334710105389561660971946606616368479168257369053092194215047213718537280481434416572269469423668787620641702541215267900527460396202615149356618752463899606411846929435927942761638908973154543437434884998925363646080743016389676507877653197933344474169501718641635206816429585033763168478854750527473343362376836307919882733945855437324915573159047640008023207213053276964568209690783147953702622869221528165687883058242833378082121688134987268157163558764328818768746626477851849689044866949130038966799734810987048748907457937015503717363057073822471393127490544588670260806356115650730201308759644166483461335690864780852590516280816243361781944266856237816383716915765339585911863546691145551857950024993454517335796727434136483385823191959759773432702806617688184033489389752330097014619491637281039925765377057620949924240341317863289056359524514762456063956761518363510430964076816781108671602497274805857015295390913070106311047812959770880648843537710615989077474139662394104841362670791590867806324155774322853567765831160862604845992224558479653057072751646012023935570011348024935211954974321767604021061634980754495862786076142353016267977554168468063846762902009621739773460199443808186484664416104006659219553094674161169874351287163273728220086842698463730938888040733686652771917615704396264743548132019114907985092800695108698008725210018375775827297911817375283793670228126763264050515159343307735723055701409174256558785922258735923311646492629933610317197794029823921820030727702493020718279765528054491101508492012979396421442339107015077727047044906954517384303475388650293001994228214391615576686587606809393128446572974966444285260444953830865691755792795991577582643390616536788052635169144777413669408315229638791784139694276702725983877131533518093220132787158240010959897777192340630387003645948071296073234242321676420121447453777699547896379337848120054020911806844020853959589571854106051189523236864369290205020226501243527649512588078658218350402917296114975103248929952204137397093221055214138833115081063162721353827188166189916644673665350131182841718776410047599187268929629111943027048137406029146028204245450690200178737774650920497628244555025566929733063119763653282002230241909879204089514989578517773343914816087609416453449982423864397227180871357460900175052743342278923550046837957200200563673831832972771335268753514535485432496584815545539360792810737429432117169047189403991618990269199743811447153939629680346657821014330432467600609100501783270029766661274220331885393410995161194280803053419679528975025166286369860878949528975285373655271015976870949298046026304657290724637931996699490276532145511141396322628721017346479976054278703465954142614709930203434388987534658621784263334201833283319955976405252180825087184941927197745506995569138327495868604178481330057274925488948955184069416500031230525935808062077472853968821560162686890722142773404197434847288502219711360152821443994542303567920863307367890579123538171160219167501720277273001416030915632604014111672074675943178190852008009255558775211050693868057608442221756694491247958566541278477811258735463160646346336675795058174988550659931324867394904649861367980162877249221185350305495781148284498507522797799128728503701186525805761411668612544662305240252218122740471198782830093553966229887278710056702781803292135058570039885598978038533480581450793309466999985701150190183202433958555784165472262966108971204316469780296481317833264947979391417532211729708117621262424636122731940988933019313065070653890606775280324696155215046950206337805268560191911878583329287626118981116952882604169565124160264899603408064292481557192409423246619609135977055039539273961617833706066982357292522088745798933115417618317731449803191245416362970064957475672317913842456460492631367915760609601107425119240975610344291990293945277089276885401203597383156403357064295385670857962585097670295616310915057138264957218857203767130966879803449247966520437217659145820865398007156905654856456081103697614410142255570231718680252361669226779920487410709190249057192362936548504286127605613772757580974503771737816546441602736278718929111889418949265915244823561176158390219130419605180548518348606898605112366137499252729063944461533914456185990183352447598981686000394306398073066169279405386476549439860274539566342476753683988509730123615349722941643622857267653984305825639445884917682330582455804591265782207912848584537942112816048314351368715672834998309785947912975992544041271414887144700990601861582912705742554721171045854500231646764580332796019661981386704715043975712518273319231527134940963629027371531093491177114803447979982442035061823402950171307083017598847551840079809699054527012762687593183280522621154052848051832079008324670264953625684463597728899860708613423060250398568845191562831702576483328996327782381508171911973823197380595396636693105171510785517544379514832103025839300125432584750844925516953619862336520489908149133097564496076502956507677388280111949347928104217877410205846665422009150707887746980425261609916942651352551648758986258852120095286125855631388158848071263801835047074989793767629015862624378969746383910545481282822250489166482176903855252203000282434751840804288186895807657478908489674152868612216124121232061339075547914351429827391151576464863433882448714624642698631422683666536547292162315807182410779048892575972196124053256148561272931804258586522663976689842089286093466954412837482032486043645544790958448569129385750710779173753950679476762947316337894905989746208667899169117599633349538487097443936392176377220907698891072308155106182381096426493572080207102230590382465584420926368254276545925050687103158091164537407421304433666488704460112229379391038837632078253475524510221832154460580549923290757478898805186898684537951380915846153145582998139933411524592396475487891536763510911577061617598259467775475283427589442138630827482348516537469058591188888100677309859251570557291927458394899679750800402845396608296761362435444019740535255538908173228982135474529518837846744647307817027143455057830017303480157557844005028511856492961060900427853623822012023039015731762611573491519254939271434831635515994360533883996298317270699955577917699790330245717274909528795663301111330958091420565058690672017104591787358010639346831441211459662093857180430076906050303409012886646064642803374662256774994759679855147088232918923784058895462804378625523213298140398576264332457097041020412400595715054070030531077364837575417334562903718289281399481542197558129050813284981937141720140728101759148223589381609736553564285197936731828303106841898712195846953272583623768583153781805261811116311023810481403955175183394187584071582354335153038473952019445075027431008517918917920335739187870731613700279773899437240646894322624972225692331369609230404279951957840972195472252836437434397386058228114265507896393764150218060057669394212949216021581730709564467032923555905743285503379960864819999157884452108979714573093683922855921420523117921878558204781485215075552666585886765711384228904151150864241541593455768581010709903455169592925839907378442623419223242653946469970073058750826684180142676374354229604786991138875049780417377324277799418735710359416775590209431637993946936055853016624258738626651979991058488631780282928005232546217217698051492928329081290218679183943305684498113307041219444296975725657774654069683346117265650329865206026525240736572135763490643727958045004447554373842949962036610425493422910921312448896468033675691730881430790092931442152127776685953037326348648234235970849986925647691807595069121095728381048469050433168602382742130143488890372925010513077525676153708533274837894793048856168751393563146867589645763111608534887039111274426708965634519335974187168966307529157736258789206003949150729854326825446010463325731130136753095876461881182887493832511045068370929635409628930922033462249497111915024457104791253438020621935662135489868982774968778364743980778662428819256365468645673312210160559660935437842988681358141429747019106233819680243608761861757403066486718452274487727920685543471564014766686328971240644092125623369593619163335250861489685510205293647487148309481823396385048223871402485536082792061949069560462646393872646481091500020801969144538987552692694697860351154266378113169783777124492002876944340067444820263797698807960564469559176684715478779966367663653888803441139993413796473332235073267263084708997368721263431684744284643852695031334090082649491128226263305021408153279383605487832860810663232876840825233621565060566849809505908630695549215495647151072439747385527552205061270175513554252755204104312902751710340165065315806571751749525021459759521046831435809093671445710342718999111628612076436240990652976628828100581358838326937184337808149811832480442377432244578964486354390935206939496594778425770289118717096975690026529158924666283434508593572875772768937941193721850589147031524074512442686510919345883092135128774740104622991567199905880801877722063970573749789262282929849262160648318015911735603759178260258186519505986583130744257430827545756476277733768165242100423271221702672427280750783618414928762699911690181845626938371462824830785857948637244169945272415984216998440599070072110486768507282047440279861107880971811197683102722974018947506280297097404184083025243841226276892616291902171730622511903686768927578680767678931806469660816123246974096591685273903900335571525716457936247735145416852186457301404327274801988547668961023147042623205231414266671934118626359268007212889687686204990251182475415628535512310646755312378737318281487772607171079424888914298344437168543686671160228540260623258346177921500533576825514585687436859362237332451529830896305138294281880398996097097885109634461079895717350472331415563797409169756401654924285250434460931495327824773436162483654344548225324941721003446836719112395547546064101309437529626674673690937312225424377792050498320055788548074813118978185324627767398721792295963974472755360748605235461351809447090760371522295952111602628129589333911067926669188804220020551087582871108208162225718676263653915860183533415328089173578434480670349736919184214804488808236713040753757225679958267925780348498481053224188037579756534399016156217634456449143767769490393408521293031490530333889166145892252784913193576364974132632767466312630219197046806724464055228822950223083067119683777227078609253606868685254791459706483798596302703636200243746436751306957071103414177678178061569907822004503214085086386558590791365928264264211776225139351964259939695676723063292066383868198151211425007480259391045146422397381821994160360075046682713238965010164588992183393422633021388497225233572741583622519821596946015544645427882795996299468794900874751900206589209932584405438227223240763192906750594874331466298381359430510460292501587017208683649537033649250764674138338118828455132919567648342741098191531408834902801582330275919720438874518110156007183431800686333102762594044813849009162248136528345197529904899814254454025168610574235345225830995325624339607395506124682308806982676469651000849536669906296549401638688517932461130663230830826047459497075233911299998710849002985155601575302334473240427479513465632755782248795140467730840279466060427630604402232412006855065931331538051166574741745933309017465312006421655878732943637824270294671751166806112374947836137940327697963236805342741156665927911020594782895737313581713080214358188256522993277170940778450485237149582427163610047524185591940732984102046778560430908430477131897069013084888430188357691707921021220849280393309244582031502977351374085912999795671434174471516369315793893736072539025437194426755246973065311695958913380037653129814372613313039531021633405188629991983417019713151964675259546446750500936711093165085986933851724373617846086451076381163509324805336673083442413335635218912939304382825555252104747769997660441453368684643488766491593842109241565301759567192038357958429500963152888989156531994511968247439200104970815064759163468207560684528207478901816400854654402293136772441911097924214268088949193378227873436025555841260919217280846492021354499612559344362951188467377181465399682637939420450478619672091405360570033944560664593153121607509646708969033100536459728563028073788357016658903136767301830279686338839590250953838788140085476987786981884718444633999736967873922772223797343193397165784729017883703289315933423616250938766877067212600522298812639317807711637502966706326879902277699130641428187249483583392081723824836610486344728159771243625782339771160385487457676631787089016483479551009382605899851942542946011396687786987458889019856812885817476870033710057118559824412150779377295878258557841420096697493852354377888457344361568183359982157272569041937349719341855520707255343051159656270473109610536750948451493065521567875554166242737345092292754093514187428465108088625894679503052625977510938146550272364769910548036895755141324309111757699445569658163600628757905274909731936956071422662238072118412973321087205542741824987280686471936552158018933128863668308968588682631421832485941988872551372219107025382696759225610950116845119324579395074296641409219387914412587176285186041009519504707642937836720276786342591417496720504664001049180742998160385730916865042483948321550664251104588720056228141613139547849117904729045985863525152476093620271428576965374333316971512941421258448191235757228419200223470916369996911236918844979502054264891321030148193987824150806650112402115346155833016613401437189418379093190095060890107834638695356822474046012713760509883054362139950178297838685621447462358707403700685303360735518265151874049203969607513399010103571204053139524143558902124445266907598297343737110615612644383207178052971404745142467424706587718767003744162389766431145088468557808002095562029602178321257013573470822111994084725396388864936970969792982554540757116938944628973854383238237793125200305408538050027847755698659901622787005537981589284806508329118012143162281839254351850970007944242499321861360035310577258709930884340972512509033476572887317074812395239717763442622547861534632697954039992185349735201146760155357132723943609868827114802849388332950587435960177382793109694535754295615665726665893818579576731183342252297111276250081217454007492596772603834707862033306195839584323622522297851031371098378093372434419107721333747075671689013783641718567254412803063461088967347316324757417309648818724634344750828884017370694869194166833333354820700453199840559992587641042966851402937393529679723796825097571155675258429108081400610406457694968447851689388245018440874797781002382311285440404591792829122019265768135139964747404096573386709427580171482131649783946294227472410214023742031011236732987296675681278959703311767391069208826967953086601345515238746985152389474656259985774386479886887800375689625431311761435096601061728035069846349513000232318743035438319931134362319591253437315391410361861131181870182176097679142439943778834440253410656020187798473297505299324985962020968819323365667174514721497395458103050197766800867277977844195926255161244646343527042049718804481614700596438854371370597162148169470852444145731455772388443013415999627932224648457917205418158789829708526803707978039815465260016320512247727352762771746662943887379470107096108804466731343438735604366914941056061827738391817457022771726960537736481863578372101970819862935164524628006806224966953830358220644770666988683864702217165184597367532845504056127297574589458311161746376246345192968544880784501587453169742528031606902680299415338616925577633596191915215186907372140621394129263552123875836123873728716549979999387113489458963590109063348419429340699240126617972286311137475699836697900768194532994990967629908863199765050683006899503989058890654531950607734628267707344369121293461220403989047081889933812059417746976919133703458335429878906000508677072283132416702644835464166905284392044826293790136996792352541651018821789606612915976942808542748664422361614200100261385288129562317363079960315327253905061388714247061595522713001038100244745624342145360228217770578688084949175689768434733473824024838654484524820285937715557291784916192366049520815082652590247241825499401474826863592183927207516220775354038160487562107811300253714550862443817886611915557361977343205379266676982995327142761626559394569505741771569157087126144253885158385958265306695543470008901981102433193790812096607493055215763474209385499429004493434986179904956191449273021617849149377715879691353861312812481641520437633226440463954918319924234339137181587850320223658683416451540831613507125875998960910932072459762227863574042508304116652902385389174252013281843000085263178939727953787323044327442712736431366501189396624462448409435597445235214541479343569157384648400023536320890299104924268913871316009469605727452044631069145751102933404314567984945620632961614246126467603419384978637536298639097107958056277751745015249694205452014997339471003072434886521673920964176665946485801515853560633337841292771473568707479835510882256891953075502545206472506635916716257576438439137119008796721463935032591232601573240532978328666684349824756441029015013961468112700072163283594855117564728964903287252160302851571427982817005542971368134755286534889608307794634755984144514218392413619650698867381958088241620085859172522317490784026477739400255361316321122382045491096176983590013265028185384246914703529642051166445822683457886795392391325913794164123724403771809252259154597500790797611316890559447509799956415856168261758611722844016128578507112592053228323972512651615814256109898178062001805548325384958344983861979245722027906479185436944009337395447855099293269090604311509798357311287905333139668495299238218350797589307895848409326280691444676353746227337640632413904340252919731380152006004812357274514027922512190429802138514810505764714956807628352997599006774143257737228207271276001145980209694961027944340677027397098525664123111799479545590513243468348763745714727750848412354722228465053723654102059417808437081024805417963416720013485598753237102216319583301647734966832909624428043918931241828900088581469916708817322397720618179623800496701476654795969691724400221116785137448624693778545607445305179421627428628306678866841797206181575355276741936745233151082811927463402288140608645325629169640298522953213392606596854722733748186750217067798800470189311790371133410654044856909179868718542958266387964231878307549347177184364025865629286171947337244691213560154987764558369852162540586132461173802471588895524813102162152042479733747189774810105425358996154233748533183626030880881201569297553146770045171993614730545022104707544540057863153896818654718193026945248628162494192890938175237301960863671253961975192326942018310479104759632079943269659265687996482717249106134017130827107026034076980601455269530722767535656921609794271822577655647669633305584528182639247178625589096200240897037662125369863771039544230707131095868926544326495734589436180267624470969665412920140509038289744078530449318407496417735025237105015082304834131415996207407356664395698175409929720797903060970928450407820328651790781000452716719776796925835036630557004539452352209988225598713791156703645535092749878453376244598517681024241930492610328488306497774801168500046479128136011992650919773011863272023486623649588251509135519481661485237219374294990056177780398705507583760591462879885274192948325477148421960890384649358870455883363012774382625476744022043744463928205849752070916542221843520530461986861159546122795997014247829114080940042074165969920484657902819155513129002048721869736612345068917225510222187439150414959677933683555051242961939345782413230340922036215970441063824769956387182851691620312108946092355512878783767765994230034584256539919398646804937225238505729805826228478276918792290088353770080211908977631268256829360684140775536646448392627335475100090276491714249346270324044634308420295547739729781380903248403165340840673750560720688430745498939525384862689250395763838150138842082632767538820528097689792301675402458016045377019307038724812310602279625817174028935327753274411629606459723633340328200352821519071197293217073173060579602898008314915777084465193177502967299239650820962403550952948534985005466073139444857742564306469811583920441518163349603072611084821255059976939134416248578251636064782329776150599840092913869662153063710960873076324486308203439558438379425054628668097177854825215440747778199411198881447962048286940251649012473591145142420292170662402396908018060388368622458605264756188702071842446649948148703850205555695295597798106048528764111541112255779324807893595044052899888218588280338631137429935387656583712271764292090753691134829934970525682443865214420899050049139795283247353589139767270656468282259361352118128299117302902516810531671608183515811404971605139386317411584089182563834995301695573481897777437900885680908285624227808745765843722273016229286461509700365845018802234622472135094744163816839621488937067946184628972692338821321493717773222114675631155276022850989285792187619792643162779154345397235148332799904473426197713970431283408390458589170141292386805316762888969428400561083821243915226437191025486341164117668271599879301553470486694760580132928342462726649334487097906133757297102261973387092392710137220287835008365705583855446673614585782330895811728771049940137952191787872579901258294137109795010718175158931217482020863937379894968868081385369336977324391698560814693228093591813029135958529759599151431287874924053060559648157600560337677627865578406848737850435605909485120062963696246223793691878607494194739142228729707445226295397481085417098916664745642370282434480448097752649800193590527002763425008444489317344127861217493394368822675412684664109668278700181787954891459562770263634104967355185021652875160198568761925528146783997518827033958351608378263948619046048415139615875577122311130209915890145404759104359002372197255151466566356751864902044277856629697888137297765890210099894187208469350979652168101460579630633643469913384395254467123710148732634476936432571991969241676639519842996824716056623188775173375361591596625894698900686236507526323943043454436198297629766693682040388647433016994886323314126784097376124424547212207367871047504905137551162558522582931787931802582373669389890581576075612954984347539711562267390080833985297258529935165103949246690836166635591579442999562736767700014354856666977165758959628357494189548384586130844166830748431724162129328969174436563043657828523136087562335611961014698423364128781315066082010180244872849041662145394455737153978673527968521134276907950616461610941544088832371764955844894172061937742709562868387646156368654547179384340913250965289882274680460692188798849704441359231540924690784684182109920493492911230102303008198938180779180338529145560043214328007204034899030414588206867961305398159863124249584411091662015950283758035933485834109361174507412949976615408096736611196122997399638945634988597749036391968487357015455444606888532892033447567554218710257219920378437787801382278120129060703717858944690436093957927802830744699040422014032784607181981817071686037721636659799813925130542045622457236920468027253655356092637997030876904536497774002041317043535777755612084633030610946884026865717378718125462498738134349349947369845551670142965158414510186344429398089701925391225791058858041989648886271439008411933272479083161198380754456910612327720740049144256784673872499290221115821585550013933882735896177347382957651184349556388322164030133798770500961233267883704324994564908636081470987287215927834164251398342257633680779600716151278734366054460267218431016297319146346769224383267454320871988151998114257993906333020789709977325686976607188758281924744346642093018259224114039333960481821437041072285711278257448363946903995204936435763223373672377829036768967439068942742041930934976584444298995677410599382747600654523748138251470293297386347884070308210306685981409729952054837349938995485697538535789218222087818056411323266753071659784040801348483210299452987991342428124911275615712764508161667570559772886957907037213687249110592805008681950615062941128872684069376540988255488151513699260010054957006891908848649967497449877500907548738515749185447978961695449140381251467572407789159387176720530050135641591087130549439145578624106244829541775252816624419821626215753436346656294445292231606753706248697938389799852174085741880281127721340418382325675670665194604614587317862070017010544024163893187644095654803856177849101526744444740766318387452430653920413717849053014852035133084184663283420801709582760399493989886262156452711506691734866308135014844961141220824944109888908390606565686062927127857867168292584621309016754994518675548655164516977533680695586258564404722019786710971708101479388406975922546880867607075563329328758098077289518911963935412889846571708007853564642974675247686314278305779251104227048765841558937047056536180844756343825877770941662464436597748757488674848250989076380889037428916679971393218830600867327860567139245021895724547341407819865341512186689320144246650374596512147664884373889373287541233675027259196543390363821080328111049818981882498579374297893457401121958087614264488898369356343232589312245137931304004541774673778248507127347441032382602454813981093584484849700303287780620677443751070338438578641248401199884184101688139322035838188925096334251279332690446836491898537395738742308060299451714837134022397855341375015525422201243520680560221927923190779726749278951888417502323271715135815982238948683026017588601518473921416022653004912573151837253160176518259551174503591637631423185056156000758606834659967458050329456563486747337995237379314548346671520655027183157722635754409972252647243342485011301126363020363282103735671398980710869421617477684925542239424714385689870098782143463843232058463585814940119022752425708561734418697286101618728806986090080534620177855496032482487360009313260892357795687266637635187705804605125469258723977762166337218453135622651830504229579165522766314059525959440759779988745459217188682974289972993645344356170228062783906209760619663378704914034638384298841101273987907877743649121789023419239986387274431145706135320087678720646694249381924019421450615747837619296407496272258870082232187825206678450932019740668327805847742328885235903664931965078111371653858277427347027947990434139307012810404624135531115574027181166243224243119519707056340732826060126057947608132915346561543992851863281497520420984216980517024778324685800193118811900777216585972474682658043622781119544435941846861878485725625257611773313026977593200220278356299150651218841563900153112963611407818302318563563565616989904297187435121700337135463735634941734750487854737456417790226961485758341758713777343182018694809118086435186677231440070845533605639500465880373342170858560581818710301729400244830431345555412683976559525487087499170805704125286287053117640439801499705728301841349494046904704261285634106062770011046219061739751318015133870426751022529756894740065544155424149433102875227319250984535417604733406594068371332416751653314948539864012262605877574163199064686651158557535112042735914545846392497845070107400360918968580357795969097620362391862717802719474306706199332462610050198267916156057131566950435570120854716534588484794530630326702922534676269159670307530195061342552138271650535375148993810176441084857673666363589877947605788632808642490856571598082434328750211567838603211957428103521399710200641979733693902078124024972166149391675091463662448981928324882920138789252331128893906235232662400874483802693359814463277622784387573867521560354878171625114799129060424071507693501020763027844360952684213211708660564751433053806033487773094479708364413457795264193645795294361576760228961611049938199355018703529520460616072435161743813463681247241476612423361096713123532775620699017071387829932506053011603924403435253333593740015407430214790347768383159972768513704842196840313789188398149159088831112041148356362005085429600116312444126969381316950069600688480609149801973361594138131140321427819196292377611525729732308060216287621783732473675943417589103054604098367344648196994430482816184668412730807851925021901936857462271755080636647832521170198094764409383130317177485533143441405807616704813313586583240752072766427027194219848320829430887744118207641593819448142353770524150197313391590722303577080340991163407245193950072941459789416374198848832451133714715718303010686424998463592233076971199796702231038691877804555792458379407750038335608790910121205776784783131994679013836585086822640282985558192256019976571146550192656796466373283962520048191173199119909249456476689219361901052699977346666375430429622584565670151781687255283710774535556826935648543800582074436109525131491882932341841818343574644121307177564184757560066328532464279175943809257809381545809362194718160980719673831973145690305971574179002529694110401566356799671514601052074658258672111081518216516577760398605415427178930628930459858277138856933715124299339625109071834498418853429231992950566808774302226276893863651032341955480525068388659712036262447822230216720157819413593118101433040860984874128404851619487763139664781637952728641985594471504937134483576211646320642153410327605703875590714693433093963942649263083731593348598508563982069392714160438250994289590866941259865847527332659212559320688692727152411912369654073038854791993739156610427758709502975765015076606125654899066226059383477200721380577727460019927063168445119583505295521754059074383880163238800030406302755906674239866866473032494561306704914999112449948056825652394688368573448117299139852968193148559913207955149446133378645282609952800823066756886620661317063315945004819056373366197758495569580864752920968405211503937019004529749630758949357354330823095484983316503335535426490271779622052900836918993034583589811888432058362925993839684238563477501503965407480215625084687943064421536628440493687668189654832097548981262529130529796720759078531209462280575069604336916787256891205940076451972850066639509006106748047506618210165826823835954660328048281845782032735674865584806510202873193102586744689116514909305163944502375213191181254404970849123468095147988074036150596808845286247410353909217241711700738393649208598686399553574310394871649874134985131818513182502045598047757430189736170232721751416556923344561740069691235512638899538751197136046847907891950711485453717391423150712902810101543691661542317043738910207527955270268649876954573772695068057728333476247764500342999560639406355966126235239855943487882846638278191025737277414766077781014171013802306800214319033834648147669090808048483695460152913504400323629631205778220544962618360138103906520426295889409478002772968828060121531653271722916300802995387970379265009309003911206502011830934455115069026212071486926104440381088227797215057277930054338711865168272946172037997526662901508593939564271321400631622559008877581567302881494644804872264565621024000491047261672711908711959572973601693800290179910626399859281858261802338503541324850619428236063972533007929546744541603308045439726666607702673829568463061206025855064811183384579057851424286083758510926619847804960226286641996221261223998134389805288094348051584383873046256462457109560627270686337367799453299054696575365189199025842841618003256139881734059373530364648008012949918402490280093835195567636669100631979616003723419315859662780344120969581868317417015444165651776284122971491687311581053787870081486614196612015996256637536587726657212252790279166177672886940353019133688639548133548087306613718795039213760268059804727955287027240594432585270744836097369375714707078823570301512116079192932435196702530680774881582081105813359972027705181845974256060698399276570462379160336594272211481764450083065150525595151151832116724373867292662504401570864585228501231718954438944573505806274044596821650871340995972476729536570236448235225377844113988589377787143724970332190719537195080895485743822919424288769175232922143039127405426993092996054903697189881044214743428430652385932691256589401115783006243441683412349054661730509378300624987223879245883277960555327052551748025608388658812849976346221012986042845681608069382775366276716596108294316244719495558843827650733586644086387118868699364996676367719487643202070850943731019467013916611624593356778541052301750354361291670849812870928745016374313026286450911250168638749166055367788083274668592953952720960059114244186353132720648356648947205312599046023772502222972354208265128993973796137876836134520308360106392536676525872017647695243454180881272525593478779837318774765015672235019646580948587309056341300098712991232630096535618029664132605672677522462068997317088814607612239114007656136523335152209414865790769630784388549624964957329209591508750854283923362364868037533598644655598871684362579396654268227850970869902632531394094313522123164986851016669975202222875281247315760712686733057520609512770769925534037856385179234892124255554582138953804466907119550452356722191443995257782333694043262272230846145262506133661327834615116662353701015368200827632597009653171889656888870647385407514383719515191370335169671615429207470398064226131179562492044391841546594426463750461312622754919412576608595776483457011905330662915274956304664207805131780118559283835191931311225580679665713516194629592247889674416442025037536212440973489562018772741016992262659778875654812533510245318182041261411072670080283486170422981842382989650624841862413260851227033639114295219175022567744551195641521403339523416651036320572546063732268741080457380177091263741599050805403832565705664315505716786222793461809810919260184046685199608813943670376801759447222730059717063962708528465955740250487265005078122934209191407254371608787093081837783394195557010482044133534172563272907072241188636730597529989420820084417447662106900465113374380475835346018131899048169061362854828648803503982621204033317740265744963086250789801165943608831830894465813705856492787313907614053448367205479548230922852398981766118481539323510904848088004133756433582262997823513191648535847050720487253847402580297121475714788243822455734617493017473598241876492660969918527671645192147952419939979576286372785307389868833478462448605831814209011217893573433772670337232200933400990254521985004827071240182465014429400976395317242878485561914528871187018310496365442839592643342059584395757612364176437667593578529742824915534080601764152727632027781221680141619220239660340491767923522523921305520397012856586924344643931158920253700766871651360094393486105295930842509476135829571928454846360287036935661758572391586492730663596115186449174867312461634953439728607525437094111830499982569235389337751865508207255190028341020949133776830430259171291669938131203745192487456861322978132180809998130051429527964509270245166417071925936246124141970871474831241159349570656541956159652560044056326436528778481648421919883787238958696385856898102694021353512627932783382639875911879503965402426251773553933459048692856850750047728188725543943645525467953236529316211342550362777820138095200175452657501557417047754870340294866447845646785017035603857471896553327234037340714154053189566853690644770141244435144410083364524918571094487945274625740064405611290938248962953573617857613869017031980823721356419794376778709938935580600863211631092279428371591423889949203368861922823361078181538617626840209353235966362499357211800143599637262103432674406573088668488535622618328067400489933982571547254223001379011099531409334804583868289674145142698199824541128495712131988261309160062059041221137273236143524999323530825407269291551344270951985717214175921158794306200624883931373993784899355635174808921258307416693255549861502093920334222637367865035335137530593668594235133929643307887658751464712922584993431926249192525189101296281137837307744340849320280045365764260067616326563343257066395747952717335214731226875009499329505853875988609913307895320439772287164454402909867685567128405168052777997964114944533666001437365411819247445100700229026204444937655982961956736369897058108074508814257816186983472885326084551237521948383718465626151989473890658434923116854180041648331174187812707609175801947148980905162022666033653287136128837209343958018956102405723510679854841300549916833405733051793026814429250045337121167264796396298635193804754563279478536959647341963369514713002014593980383371754149226096733397741936555499135023585644242658333113052910492519757178597010182053060389811765477697048285479007479097003131894979035480529632013818791899115304578357567511242100918382888846983011195467243120344409726247320117877584129767058117380732708173217346955305103481530046715931782661767571926853312775101980794786002390313875883821116177540302002819325797287145745774600981258703320836540597472663960067414130147490462137355730235626899262381883893510866545506092776169198578996382258309645553746028823064373319242401616305997328913954734010079885173637349210867340331710372441068670755151022423717964937341640768831261594929294539864593857533741594644862908295828120136341903765872435099975281666997737254201202719633668953332729326665589994484615634073721397584084960311515934214963047471391614903224855845307208976255862102016515626262072684311640642006271346079880366118539443838638975996128621231098371179338247117802020741059291496322991784739898937483633481432719977697698579785319280787361230493035527767246876939119471578260914909143959814965042402483177493518296095789163317575761986077518091697446750983207084369902691309285476297988476636250066988732678156618883701366790684792968233770543758999678888212833195492251137182745096003063501165843877831605093868586795484098521445068112654033125332082352322871377182441371737350019967000321810641453354062484560241937215070196975427095213273654210100504320779085204457685568515416902881627926216502867532954056210949596086102244414064626336222394648215895735669040447723865530161766771851140896079516046961721038415734547056401384504258930678910451757583081733065071746219947942804239192295466057413796202603800302988934241406145148389462109848569225517138159671679935232601801435116226063204248963538066795933412996886533945259249621395554879902438937647780580132952861173387204840563595798465936975217048159152616837079837555760968729109572728902641711941923687152224956541148205871209826693003712884523979374986544231034790322759915718155457295401460242274483505452073521413888049473218391812099869077333149267115023393704548046253154096367682744390485451737899078107740953844370626561748710848908029949564984690700960425680032920650904011738557950998874175707849330207668344895752895164495751957061841394791864035301464184996611970534121768397111649957897014021686734233630789922273868399625207287002741375261735852002920592628062496671611071438933504747954211588249852877942707066904110902856623451803023078409180353871685210500854603686964041808367553084369564164912026758042434059628851882790916240108563794731094336317673971265418041878617916931333825926771728473150060388516242767254671155636810006762880061956776323312567287018221978401992219811423999852368838008104348228771459730146734124333024751569526957578661054210611768775032567156355650053596413072157094832946488835849909806811668659000651830388853814000196610197499475251229014646817813966873765720443155928572431495615566550435325555922483713208452243259493734549519910278796561519148721071725863095334882997965936690706093253991682127439453458917797661535360504265513753961016765442437768117049101131472100158946709563198980847316404166281540129520829734842496308088701325729061312519331637141651521357244279909499827107752427739119781728149266914977380656120307387728129853867513318946815854868796580902017098746626679983016682935625622561653571162441927265771931825941837912600864537890941627628638341525314454590753499656828069880777900305829868419478399928840871725115988245808756107324303063352688313875465505546880235049406660296421102052676766642697199308870481396220382602093290307613868412343717106801305482186947273204301686361672328878859121811852790109775389726073449383597816673637223410754896632510138032883447773133348351756470056171438989090450674650525029496360246190813691635115900446805446328648217505317431258473802384933383563927318520515021437672459048207715700242983072151148444468441959938482611889179362401826287048736373397397764866369144650372863724538371005626026726864080480753923731004634526871351756522297666949664999354408764086938161250952952821777625746465584743378908917968373375054066203071059028264411199988071082414517337570091362105059276041615641179391010450095993274421745688476312758784456187335245375617735496967184852557453037472990776300003468770248473913621386336908434077550627428636231973519084604071359060665828554797997949844747965498606905434354106578849272014842295694711274985621690824688659674832263754745648512376940083885277907504818476691649541087120707971002710147952396036757418375962029012963422108379431591159071758870177606246000402167092981320275415257727893601790952041076349279021386225840709567341109982207386003492105668548989221011353744110134293039065740833479862658041235962535496828135836555089936848361572397630205275701562208530096759487402775797367267559720335641377355163918975320940724581470337833278157634646729150045681724316369078354256917443286934640684544267600141032494679038005838064306182134705514331249157180151561120704077396636652969197456878367573423620844861613195471055270359948327304851623205292399394890435450648035024517868280737184403942937141419367826858294919966867913457823282550648997431271630708656328305759639508130622848167131090516812601870584171898233252234060496052822187644608500791162918516705364633284917660748579802036620123819563502372563667149497547407752622137504079508728589904831658381833920276966915700323246613039788588403217147999818636303032969918686464756441802618528783254963538302656796804247364713102984855804748340870716141249616230367029236500583073727095561278910848020854059521407884155920373739808121676437791796672535998973531379516148799237057280086219557310314283549973379242774080995933777031260658511204769031024096444463384472783560182662293498077665821142577011839154078852889783569968356246545364665425962906286105083898940577675365042455592412787755901008219389590921540193270744039847211269819882608352563489171138831137988210680694324753992874609103128495059959605842229954913280130587234054319258166824075156049049863918686639005961892922565809458589876752023286765654383320169360517138153180521597549871495492032910177487214532836733533343990496914098705380849269054017070527172661038332088025450539301817375073916928186605019673343819035307297314291466043914525893673021884031110650420656215442968033089737101070567545579393779394514663446503998932613272344374833333673623649864562335755171445544035229347603714927161769349522497919362255170949323849756531441110532668774778917578591801251179410423948844420280418664218471186569846384725819524314773579850315426788244117015838355876390707691695474307134833415305870577712089869241816268133611422618464238347964043320701295624240010711891345869599441353327404952112517872674106211691402439643299033026185416859364163625993134787420201822511437730891516217967959424960103295356726006101259603896996723035058409048826750452495175064049230804671224193060210564490104962834141942486950687248790281800844769465004270027537332355909688320483582716679501770466447979314317880394648677845145625515043698234645602251659825925409449152423626327190227799258375593928517566959901650380814050540871860416534603991367386816773292825906649678819245179284362440700880563394704319063444996356897123756820176642640136665372115571403189996489822276640089173471365566278005947466124056822133763442308145374240765204834641817741337603641726027212264828450042771858975964865306494528811188597428730566629173561537477552449802406224989239389122954967058283308899199591939988502994354482921358718167248482137733993851628921675870353659911636476717038957531423668102401239238188780507337102655479758060857548748565367868518339822183850157979690395490332889991824685719681642023475567194880676521842745479652142574809331636432483293559544836861733945485797693596837461703614005282721538395027157666201882303325909931398015684662492842827315783874210879769993309522353032883337498112667427973146401645715601057265671165486237323257237585291760352843604541061839724543030637164303428369177100657025378952311808426316811141778600441181175420348599532815412267041558234097339589632445460091599857368016131549922921861257024749869909147997443879579667545302603769901488657051820288466842527702448839094867872042234509538124375732535108603342087293844241005115200092403659501298717872431277540870611244728410384823754496764741582218593167182439784735977932115261195779450438552342969744077532331425670293578273295317609778044097156782631826974241829228822489135463156498890980715160242675374865016374557990957594225521757656712020470041584045790867794425883233514874474141906626173439432198299270575387718736099216345934518500978517972192043645390527065539649820501318980007745953426278554434714679506078972537978433672452183842304468964714584218887263993826321280907752668741568035562440181706347679928522582857109882219668137142266288321371295161670150882514362822384152312935260400449945446761631277599425783519921976913693727973714346487406696884994016030057674451977767203515698164668259048404818850797256646395189067371352829590689672824451551314982512272039147614167678795441816387406488379389434426930231753791892873464283128232897143203737074861329645476096786757464131093167272526562273403164424479234955542008435149984484995904461399073377483333947888997989013126882236833948116303385329765230150897304143407065947169202267746919935134826955756132047229826904570194465365714403846699049806080275259313255015407116391904175645630596102844807336057050852678039200397592361279090954512808966577532549030937963721609227876714685392179575665986618806420989662733700666046782929956895263477595524594546973757156823192432858781562003447175060644941910114971495167606419114828512222503525903933127708309268630441984847966753672183916311036300652720274200285022720263472985491174469476181584068817894487554383386893474905138298257161038678479794720998264565610164321131399427752584318973294923934759270215367065342489353648278603139452531750760852780908030970399003094903343101409917218953630899791887527240366901607285003065005445188989660089847730663456527276974217751529751562142050558707761807971721410262040995927082186421811490994389841882857679858313508406552251564431295948598977454500977864144042585830496057880221873061274941190606191940489373825002744775835347301026360834091251828948886748034974279348818428898126756537925783060938215364890348516473231341577322799472891277734176106208282317725974469946293101048061473697075469179727263977523662466182427044091676141072262333271779256870013468799872425425471732361442512979376756658595765761647525181635105516838301738879561548519679010059619912234086768649995179848149910464322976436608930902011287104611080299184638227245312887758122806753602196308564491656305698719006757942162207964989883098243239609278394551848005137853859969169985914324200875565870218061262856192253167658611045311996909680875008249608029654346877672652798950128597233365563348699468239985529220568916556684239157096524595688801680033635642007888819645369068351677376310159062011960169613138652207674566690433189303068586737196713730100435585606012667478658262977513883191155718853938195672576724255649410425025612944419115546987473127088547672469444296705651050248328239262480547814210210587192035039434425470955045933440437992998401015521491172406319250261051490015021039490954586650749155718016745546933862644550424329404933602339575193078014114596911367154951813758345601846752458563603843664861768299974973312776509062964411640719464048237946813452132637437121389170477731175393373903801928812407605918755118306304832368005948640162221495222340387005399411603290877746666648399488045595693457781249131815184918584335477108241848212046573629047883273503773152397887382016596116547157596724214927365559164598611184452812691722781553117960734091030320750775915440506097206541201350950280026400148506040068380608447767010856847564643256853288314769210063236516444359701879269972824692980150736776023960505461297880434183107821996638156323020843092112481820306313428241609237157986600234848295348167723838205278003833367323861350491854173130829942772725165086530189730609099776913870009445492122306331480776417776270312002464369045890188379716934581095010063601551443299006508863022194848021646972033974420966939512673506412936188703979198514781547436246392958984473568281173379734568021105947677614195447344969444580382441022913960281012577335949275809413437241029524579270582064964817105705969863612093971302370615280801458827378924188580006144482769350743873947599981439976081742508982437961683774502330026634976880072972104511295898837984294019790729666652777280841874433921675371992825651192523861334605500781229562955757924537629801122550161736556998242352343329903156303781872543531977118408932207908447707861403019990362589250760582266395966917685249817002310530779608668256867125757971617282922453161458425075978216324545467010726868606881206267682166765064815788113787505740778396671372961944831847124632228406376000664887436700612701253687149045435957974225133286778752662654752508214221520424100318850611141008221956460115855778843864485473159039618600010118037481941624102697449577508435760917867283552986773626073677842793874409976967534300167113491470902151266171689911823723418489586709037771028168966942303886688153992297440923775746895363627454142383960906460199468524695398689208242304727058148484136267149439661004077533985598618891619896489906777097439490789264155288833900514296838673236420304921662742768716710943775643069596038005696423206375889986860164578370285424119553556902820466866925755569655928106797058364812246686479610854678701334441686834750879657994030594808726459683440022676772806331939258623402305646852575491969381910043202527706075944380218032005162959389882890572807144908551368059038053573868613165544657040945283855614428470194212759802863761042304511175287412988525559704646420664647491471999477349881845670543435819179212440028940444438198834957912196413215932852181580247675235258053950664089896915918414096409932825773324809008034633632644830566884905623399012628331102926136037933886427291917025875172212742161396092177056965369332053516041080458218829040798794070823302784661820403959475648124104531667912542170123454604869493042046157445602982314844046068925324152575517548663582271417206050745514796480422810364328073506808347144123804721937142385480678149290146331172953903352091717911307408319574021506690984920286914912532668553959846305762711602828167852982240834543182867402929786185975270363422986165769129055279909424938606249386409954052912742986204929478352462857187446866875573457660482766732528478820834720800770959074344241146208654897610799651861475760302423508586576721808399468426664849489495747513432071541975384779788794955991446538361328353617203217995607005612052600600789320220368632740375278783627460897330486497723737788221085285780510215089051188733550092902286205125888278103739620130178887296120251353223878968570063936311700655937538705277251724597673937076528929080421044226882993593957895975164381681387274004574427478864707241788990782617690257793162222826970356684774916072577352897721945598041299813373568230688328146735732397942718454635389254119047812329137240406087025677419066634059146180954500943224595560829221013385142198703350862512841088694908347144124923142154601569460553626937305061978069418776609953815170193060298875942161679082643884013536916048366316542718713459225939292389641343972146985136552996779814498181665907207459192244832650644191855689257274415047225515497922881260815524879677090165136287096856478675100407154339026343031033644522206734629499381514900032737839748173792414829445991519695184182174809962022647108979624569144723868350886238354065855029317097482044487721563324812333751635855163153924957966603071164614522456343638809253963356237229017497876840475378339226261387519266001503734837379970958481175585216037750865945775953544491986581850649898186979117167918549080770391564559050849936772900385133362476596218258146797826475775674948907942589168992829736804506504152176119132773025360667260153681565847288367422518618446334320996647083444718636696656907528309765573045970193956006743061794909848658977435425164883331223398675118334222821482428970685942920723041937049854182522949762978151513871381254941091912110869858111041907499345000763374834642560563734718834519275082335527219863442049040199222451376156156151650460262821684278583206040582423045186851983200410655162694700044235615609118551016191918267625634236462306827634375484817501119613857404769315075912732563880355750105108198664205766731350873162568089973659771096655525811264842075607010817669700144375573622352441416536553595388715036061159341175395472447564700580853525253003615180054296810381383146936495043749376947938510600449383010444841796581643827384610430488298031572546849996164976121539291225753324285128726665126970771192414423424937263850891653391061363664495027964270336948685712473669200285881125170769083334180562546337956388744151394309201689918314180314960357883545859475050393144771032290499290878935974037583776265011448611095665586397120942405876039394031907386326899700879420807194653972029962852838784506337655179335737480951525847953965790091565123216450821764289943914639590929068536478175130611440918702288177506801684775019919515263613794464445967511570255384465551324994692246818509089901689064225734459216586021129210950286734386617102498329054929922165097716677762113231612893925535922041892596226602119001487531657669464540011964932269395849371517013699024149277057260633890329157181452715216192030373341365113470331325186188667457004611712906653060836698964536011631569427119272418314038385410438994275277750649234749872368885450318209007890572344556928540006086998034176016406912698461944642127350864854596946692613561485400020252613133967609965541752796032467437780627105349742859242019689962344273339124896533851798688306367096351450343737425284406389271549833278898451308154170161791499634042488596048577317463480667630757541808480320578612777605471606102519540186193554726471497491991447139991113545064675773297486920221291069581536884288951404894707438655966987341208633397913092731767669040310991239420986053156201377894402654605372756088196039303140501101476860512567940791924810268226446913462160365117685186167417629987795523163055788190241569220165416698368146216491473319855823029046688456193662867289651302490734354457618343573929619546307757385735819471782774461574061662261463382199553431379576724313634928566851808362065938895156318828757854762224035599653589074404740926552932300042744633720943136279170686350883907962215393783096361245121373286840049516692587982715217911511663958253262537591606336376585365253275901194102977670599183344477615598191544697516305513147038258819308975614386613320213476282493968257602185798926474950381483698307533035843852660656391319391660779736578291046409946900328152886910848673482285757742424795038830704532107620854288472439053466544559011893420513839154650614428902455596721369896782456048810095439552824131870027051248777605346278217356062577304360915594576610143642638559578379297678778014277163467059810293217937032084671539440091289508301769654421506970365957418980055836686547031628620171311744957870995010491054561351688126214908482363957166804227416136299301557278720592211928611577192069065290011478265727291290037436636864542785911459177017465633360582630722247814193833734154253342636803030274122251155451714629067649477611612520275682681448130341022586820138502639162458365794417096001674711313221081651170891064706447158269191221628850786761876356146628097021877989880723810837972594925627786435460763963456837442831300285181307543893609184886948762654508959046627306063321434298781592086314281728072826879721230618278220771422476422391360166273222637924550136933161687787577731816557430669354143554679039131344054047025204108878281181146855348866950249777588132728908948430045538306206012279920961583872179078519227417776800591914716669990007934422365249626562139064083232269714857670849910838924543521361099070290100883012775031544541667574055397906897925694737825535440624079092826235629173848274628766795959733885186882851721460750977577370902848081777798417748599721269838178141426953549688782533194191683082518553367704516105342557881570704213917376109768616694856151368925250296766980049303047063403127841521346962547606986778906447910332312991418335892841865287410271000162790738659251959850021852638830849253416062051565687355828576549618128298438044912264244734009026813302187747830104540163395471801864871126565886598518736495270591971788405547945598211738847497374192650742401700682053353744454509841541861385892249642726667847240577156099667136507557616692448259442433140822698350889766134464080841696242197455164475958458851471414529377908559481987838734188631906498157209709045728113387096463710358814401123484356360557244706771069608577079230588348268706481525741094088319762947136594906490676412764820052717831658743171619643699327546058516101176651479786932755924910491026722087201044380702916893388814838414341625811114392622461258610896803091065686346925935588026040094005127750474135029491818043658393270782012307156025958989189457141793358997497291325443199300195298866061112898253213571780557582443183916507916149226868305717946745173783126607712556869417816778534259117882140561444085544592534503661333221174890437175351455672134212966749158383112672283864817266973784429567173052473267572509035574072484844631844188572682896299085712978445777431876840401314916335760268240643507207151851246554832746145266810045911055339103884466668620749359994798559805520276111032074183161077425411905170395020862229562333371545931086073572890411472184273173181527763836563970471850012606272678928513682811677289877068096270070559522190409269909368793263069072691970780465526074857144962076531639560738452205278212276578119817283906676157753809026021896405451355896876729567709774133719937756865131059185914516766616383506625867045459540689568172908884579742853394745688773881479199344696528226594379999367203540369655706106244853695697774379322588749374471986234189149414541435867444683274680757868048055050965939099136176183902605203681851371185725066585471139613330728816445405045753747842380677360630777792540399548225157715231532450597300740278856157998386005106493661364139961362949964687556409093361052501467530829114472420544227178316004234595168421789525346186224267060054291239342082686979242724345632730000603947547485464025165340802517930438114167846021040248621966006749118294547423553974934352036803091443838253679438700032371084758512139522869965799566521259069092553758168260619052826406151959251812854380716426624118489967257791570718395413791620831282242860949779508722412668929942682034986191429300194673902044785620334381163219994415684978887619509711351391514152511029308738812617934016582467387643002584991407738732888748630304703288447469883388219453318786834389546301137419659806652572985487269299505780042952302255800993549510903689182553185466348966473605318923455684594355103712671051033220526329279020211363097583299358464903328190888752445463155598249532758799203208259527519975121488681740059700778907519505961880003659644417318091620462994865717512647853745813777743069918801009643515859314754826854079317537735846732867455146322630189414532705977373167190969194313392039132689902244688641594524146802266901952566978758338448795554946055776315105936468288983635539537942965899655490681538428684289425864159555729605889807616243225309972932280481207187603853914241963219486680460789036653058470905171853808472774935454112800544127904501104697008834367981593228713444193165294656966519934098472520811351807389907344052938650707394197772381373960508172186401139861525606051474416228877218183380773610227318283647097739631060464230100633574719668888938353060426772748648096368648576607757199953719913755384285966569622562776527926748215249537041719979166644435260461742557432151448514041716902467518570437133056723581092830603097933374955620599749483960044235462666957360679346762679915816764321906529282701281385433658657440181436758323713685660120234086856272427620903340228823951266641574352276992232470934410135885330953847298323462402410063125149976829028163386364492656879161061509986899442112070662792643042369799566971159608139436322110279776472869078197094639099851404446868167831176602118495688709342328959041581114888647729165009565254595633480017090858348064801690369803129737480279113332436162510853488745621927889150004006217525129890971987006379476013113677053592836772663846744218391635925906989950276842154906976263904921568991908010294851095541033207288281037707296560107354460046191033068149664795526974095646077904974959987023547981994919414172745004795948616250168139094257583770173131750824404754816968755551948979717122439033516899079631073621873932792557965550879763210776693156717878977991042886767342104066220004803204551771866301287720501336731429764552261854887863430626926023805249231537275037820099879676493230335980205821851322098649219728609894895242844338155731160377160049690216106940844234737952926803544668793090707345419948863149039757704381059482414839458856318039105245905858613468141446472819732796881924203345574096663634309613001338971530713952078024404550884395360499076416987349073290391329088720521597178944380149939178007684028072957831707993084811219231362733366368655389790394968298834446378301762100509408134068185864480678918620431150657647115416379069332231993425726161858436475385053388599720253305220525933547989844349849014855377747036977657527153159649602788549378536258795300130539659173636492255364008731175943257211728297205423278494750876720600924597931248022944407588776991968323984887308763616515116410317437302367565336790491640470175381520971955744000285077734727281581307433992494824275854262024322897473497417789981183997825418059846949756725133454588807112088636364619635450918450848737975427329261309244606160899511857783339115317160745197553537741446069676945746385158589629015599249702823533438649395282257914910121729225549100695080787418486665791042127991305559710565411453882868925112740296872835076820099460479852670318758417997541799664653558147569394923676320830512204954308795426487952922767407022004229537534842197635757211120518876700374374318523218816039497111542971252640479836832763005386859363950409474793237312048009789017063435164103743805248836194909958873278218836634364733138231988775968368266977468075922780495958917745080968775350006283849063957298415306630867622236340113785049037502711221561691281768042603186118460001289709893179289066801925697247280521596379944278902729404624712325131288081019392511075424205667775720960983926811964077463087966103946806324431404639312138559132360476868714877218104408936105566066455190078476635624567081512583406183630397217861255738803136183568309180430547882769244997587615126000391294512447096579767588679245853375817402329686151805106259431659617902415082416449024665649156248942289750202339449937897615480017685888256247649216608708694283723104697401463007914974683113224424525725946436102565676379096288641375409505400014367889505268726083082916026034946473236398624690859557825153306114102665969955638876195069592151018061914997780784844873110823902137561528607058280023015727129841842189593656410808936289002071267730019788237205681337895941256173087699565000015521081597926495849630293250952764718372056379125829806593104891172561241909462423994455695103025824069650761289182736006481433510380118115068922049638121562828691940364439016655810488040338603759204679714279811533783895828995350969293993580647834395109437578768263692543817543416391594962366296301541940678524159137691384256731950258674868508810152970382662330743723250916815648202485292399174153227698973455926764158606729802006955250751503092471382312318385367904754321565084257611206545652830384171720182456156269117776176551099273640064995815430850918755781644750061870825960339883040074387521075161015282591563926180223542721026460535277296716874718287710382627693686143645289203710549787644924992528960007611259859194607458672679761699614953513674809955777499134336407579332324540406184030769349439647221673554840199389161995933041879020658299853233460820273622693488346174230956070864670452935392015807278053424200128241466001956046079546372786945871122682732825925018266132480509551346649055659083042759371337002783566008658794832572880268130088988655445817058762474663937356677782845247244333999746033663081600193271923046394407756038505065250349282133529777378410093198948786581546446592916917780981964925930321181578553866754531624902399771132624869190218663238178770017164234863178283810156419858888226601329118399034916120885881975661682743965830106937800596521128999131807728035119440247339902218721775242508203531049654255976627010899956454905156054905395929734226282517109314749565944905029401387323178384972105844424621945898954921316286138203844149536497864363912487192682285361875229187289017323424159267251699359268415507910404934711802516329112644695733576658078197053026475642223215177976515996961994181944114193225964045592078428142086810303097561655179866975370436209969018579931854718853369681743315626512344753237863134384477458318973407269811903919101500322437520332596215587511495720799169982254905078175760148973602541620563223738534828908628004519251279699529760843523169601909296129564310684488703524562281208871931252458261615670607575340646515726441639193197656228085949166016531484933074234378203017558597292777831351123136064010769951033671539304887311672953464679807239217766192256000877421859529231666510659063353461380517493302252449189103009772901648454650693954127139129457918454205722445622469507453997354895115986349536171019358405574105935557072221366852749937638045541216791704913754667016343023999792185399888074928849140365843957578261024906632257485437745708901657413642515683008003594255844368904146246171068230263149297855900081973073653324878892032078985934587656466364371743865863065118674310502788316981351064056553126706356256549508699495754505205099423438901969675859235544788076367986023719553464477824033628245903990424788592802366058230597049688490096467168581471736219744345150085728437558354486987220172579855573690738965061875458698211341912820278423404863514421980284319280689434569557921783623003960283281965154753036552206809303884734838216499098716832285439043247767690717348904326109064139312940347867794694116673471775618507578051947313934372405324986500599105041039334347153876028127830594540714757894336418925672936315892539896305878293193314122819544772343989809511212982089899564730885680782700733934267685815803824375551818648747800415611575469115329104886876312106765298099945054357709145772566973988090846937425444247977561235026029532580126379999693402546614625052338148783164065347046623341150673618830488199789233087109551062076702989701681867342988766966713781565143204587154573867013527620952567676717207072389127218852756044074220890805789805491361645121257686251613744042053897048980562408002990737818942461028964879147948194225008718157975954440750352080334449633793635391215393840441092389092536373384716423323129569960120187723898420171526888169633923148984743324448032851038007574999771575124033694242613488622331696827729174617162866292095902911733018645683262597629200041852423211558206712996276666831307900868715084770141439995613610582403219412783508144186981828290783110655657378350709292274153321172570690981891591916441396104079245335040524422348391084143602543861540353003170581606969421965373372865184612538960723605596777537235436572242038118819999230904632361748830450004461688205605428362350479634487699911997346818156025558302295454639499147738783969232930942707362168420985223496435952367086182345880105069943537273079963921013618542454510581734739002005756228653683971493190632089756545365430811062068479655845298824628568413400041123895975987143362968066650380450871687170914040254881295492893138095986672119836379573698203896765997642617343449676708776411110645227012479952483219185027213666370573810476864114519858229526290985115246393063668485069412140455273078966866019717215602218954864103167116099760670922843077808926503691266057084454056854632413726592466754954753176815222231533126017316096858596888194160722535397733689020873713827488443426712126560658107909074449649423424026571600125136697505958451940871884556582569982166183825554508100446195303437065034587340110377927869553769453263279555014310685197565732734499857407220604512298193438891602848378306003380851519156216831635982427614303569741260810964897517909323838171007226032749945330921908151587659286227816132079911434647042715609407825963738760230153465841277299663601872509711311814950940784441927597702367828604442234924676997895446264391869401452104897104674722569830748930203655174637688967554692366604424556295116564268102851647855384850863641515414188161935336014028170227416711627939801554126140100057998009559919785940652412473984717219631693138414443320819532530276637661454689975194616278129377110676137653069753186759904299890224657330107557949431243589968134308157235771768152402237163514511662017967658146167405479772849084391143340152798568982004594466400447880584639790887348068755844424107041460337454232347017940370896671471244050863858083331525674038838269021924241535546566721534427610707258145853620312891247892729701767636442604140986618394677392768099128074824424826715389039724344392026727314303172745800418888237519850866886518763384598477427961294531113479186332677142510702140570410305038058470565414039471539083040928599926205861566015926100047662482386791746055994653917703406477559064058721259721424062881289746414131217833157081681120749843553663858409220767330000800719399570992998436991106440823166833384553818100500146538925216121685599271970506217140979169960922436912289591243874239650966629971752859738035732025288634875557072695741691737648896673725951375721604167249852477889133220100779386795635377729278470464953565798404097960159993259651632013792356065744519221932004893621135705681596514698368493834999974489111094664681947226670561993738679865242287965686557844693688814448640269787924669880212392256246763594247740670966983611129910918657693062943292387301696404551427256248582836548313615363718197501193261564902901019694922682636472224435959161208748890160604474814769321699442875821724203338006154289674673524623666033951502301746341960663804711934072755536994154957967784950544027174803560969403439591446839317944849741407093867318070698762123591277939796885498390324749870986784467848658546236023871038205934462082187841367347128014271188769822139370735271877236764181598470161825393664529931163260150344749239908952848439374798728293543039310034992116672453327743897131294477422640838158586123565004197001194247019791446732662380159956267310980010614492023501777692858937810438480979790784353836754113741767155101915061577300825756596526113019020159039665831748727074555668507762891560799048968179188266839191941912535483006804203992212146573443564504816770893498173289366451071056274296994183362225883441263041425381274288029484020828299432636571556492074719886448924700233047318530525761647518267907023502596828165575028913752213220242065501599510995348256489386077963330235579847376506409078252932030248634982489683581602999027696990526391113109622278650474375255588694241461384403528906111902658834265385578772973465000265504988742306058702785985274951903978895440626198999587588036716815064023313237981969616726888289728627565890331553152190988663177495106195723807341336709601798751190394746227378699581065678372778485875447285187607341540851494729880152787249931719362795579696006400136408843102477079162862266155966169499614062995154997162778561633828425520063468972604832068800004823110243546449641105013832442102783467222490058085136559174447258006590702732195625444747137224905457970141475287199263037597883248940571563113332739866851775201090975737055940283928388532813121586721367404030715601227634517332254749104269193087203773817155904982720871471517471044510172447528693056119808498523597705454601051871670907580118383902498258021913793487399945719650180579601046924958849215004790435601811120463138145612126771174812288631635674500809868956048567806600691980219904455594885130623897506135269790398306121599334080426971814391013910471794564933402509698686191785768612125076547981169634785407080363942653382002690268650719566837592952155343253480893845375885706781080630102741452318341476451064248585700010945310552990802480248628714773450357843939593379349417938713258904349655745495152222854309067550299765518169225908646105120061486664789759578190853716622283796977006700287197037853701964339876286904055227482330434247830577144904783272334694269823153038273475516665866836803575371298769455333458958908288168995148173663068778014174652282855802193715709073482824739328365628391748383909580035731000121302325906665666470347068250735086200915006223908603858084703562130532978684401136661881473756533150127202873045641555370539971506625574256528566710384700967507414747702057499475212619804748388758231743155676017078625521325908262887459084880726915162838333060243880155616358381594880855980639108264936621399582187462092219573081978264032634610690469721910053837790720972128470278479435319159175488560335407000812829986425120985344873142411447269630866485323068451157278492254829007824967739263007823246445615249073274797501081344848344348773400234271234372032932499533297484632815139045498943398741707845281686077971747126480548048614755684968798884955368351580427754697864279626244123667025233651579837476003667234581205097945506244062406006606158485025901800989377567000630013159698841847844593431164657894525907002101525681857692962895835655927980644317955068344525724315231966146418106342225504696029438060362643075406008834928993035172156524602679132752139756186343948027376592689680857256371278995614987833951488676071111714357364254757376289600200266403377577904918171285987941686465646244374254897994998930329663067892496630747074794178443096045079726666630746875142455140777700643007300176193251793029491336903019219075535126252024443355189789543822556790466968685778391724069182765822976150227808288353751998660181687908093654004356501749571905879356890465406251681900741629465826948814313408130623354599668056460392585163932875885410925820918317901643967479474467618957021851928234782266242400599900670321104464646745377711683435896221797785630508524972000595239418942549793803544833751712455521586910063378979086953119130890567197208573510075948063827592116629691064868106927707951768022511391111733938374833593301132300846172956985343221564430915072485262721602629279696984589344019430871192793436769152323098802065686825178709967016595671734467449501153004211047074052167253608995391195708931691415766601222482524839876449320714442111228965775677561225822985246330798834983740980710828046893725209827644980533128359333921595935987591600563218706427458420013943120958764151596812776712237958883693446943792286703600800912754690338246783474102995671688270232339888775220801900677066295726890355833690548646452542202741388882558685405477622442586455124758191068635021331195498143078274327442127133518763853301905683014521781158961424591379869611058946869337383024456332681143165272744006017152690019849993936838562844397848508570702004878033566777384137700959648353351651589916527487655982927503249440093904664975759795134618398588455480115817628602120424547183112760209866104389832010985159827804037848141251142270245665179592555862270872438443620978986181948561413681584007087374202837628376465405836132140693725235475027188107724467498155699721314104898312536966371829426537419021844199203466448369195708081741422434827370024444510230143291787374101088225980685966176540719074637292870430603444634554377368390721648657388782531511829454000553098639345893848627608966626346048930728760872880961341140745865964713797814749537542479136086518778513484311115669651898118823732614309921818047437429430620799388532582243346625559201052398260103139127070694156305093277368858159443882892275585514406961550795357239874312821155606787366752814006738548665665280438416353669111200297670480132681266623866704826006030172958628380358637425747192828099645741788167268379662852293437081241320046182148547735618073080310551302229571470745565933245269612964780962446568823384428493988156590440890405305164612094617572158690823364280113587267778989987177146225989312184423771644018903323238694136911207801660915082961686427101308172057803106744028974487741443186336650701078724232303319459298286939725466824854995323858993242071954593099286482154388022513198017216420233095573244433951704950197480243561123555582353543926810659740807329748974992702227561199354736318370755711857612345821673310105942172006073609828321211886149734883686356171079508257033935228023880907227963809741864096455707920817080832997585943952291747913588358984123169874036163820261667203458235893689899313960190568938656558937944677763760522285064247649220978875589001263156459833366948245071536927626140266507088894509566868068313395028418733428595303187737869504020734464093467457667303513151464702372680784196374909342923499893240609463555329196109412153141237785360301353488171927750723086582779365893588645370615912933608796992848469208926154449000744979071731875023223476216102833508574546286984248505775354742286360227303237997742099142639464884332744949056902665678203084323446519009073377467413289077050969901280947816202833112708837415223156093965872901808950436986381327050774972321354975194833751722942122315903893623687888553661407842963442827031107837606643343291378195939436901964666172661808545211322940540597108180678338568241989091821240103928588325310018903986979888018006244167638864573572393493674327198780590823157658565129461351942759956539286544165882123297888960108689659650906613013692568935196527639171313674553770683956666241403506078072535999980416859173799032747057245616506049720907731284060023445533048844692734636227453682919154126518780042699668190605650399785426185621931217840244298696806904222475746061099663775280801473100826636715493721607492562834464698585692459467796765424479200956065583142729723720220703377565644847760750380392919062478036115064659483528535493218348790721959816446850723738793570326015535702425562394932995594484647179813222991314109451586128492944488160338997536932274819844264659324914717504688878999872295691352632193447194633637161515096054156923036981033904824640625540744778655551419580288607698888603794411298346344196826376117992121419293366836024845641690796540656033019989781562969409991343511506118255862241500667606679573747892648723049744754131175825808911574640258895289732882087364490622764516116431461093987726309681874636893060621394865601660485667011594042522388601739684069807990462883589345679227944599012290201298686441898632559591697295289882184749369429909989737018055460096071839328445129946674228883549737317313805005326482132177649185704038823581560598893696754288242800602172713182791641623166211001003570398583955161391747686522866706214464059831133191051607412065556105111983624985007626205786695112602357867206844195002650014123324748097477583430708183926482982003968556801138356508534064373042732329246006991534091123976549260781384004405578523077828584348545173296649834068508920724064329081999102332417051897503080479995080778424313536074389036421012181872729206230111876888703877619992551212955647296658557725304147287201128281663102301338741444799941916090758173716743429930462617912117761818488541398961800403377569340170986043001626215982749980363572022723116181257862741700293542952432938394176032163264778222133394213281202876955538086706366796102260374441442160486051501813346832278246929753175623969191719695958153170514748781324311468450413405440241871593749406008865479130661100445804510390208010685810298260539368706777209532885416608296659121075179341814268473403941487888483055490102569619887596662149046960617324979865832287068047637703868752605151644076278136035774084351908228878882186789829686061376527343201339282975260762563754922018592943388540709394852540714415034527935979590825001968328658039777531601633211377918638908776995002072338288821615462519101453918236800921300681404317541606848540581979106627309569819862694189584369904196982868711256417218695596500149314389811784566074420768141681804562522701425899542181413947747140835861062630118698554538119466543857318575099294713868335315074628123241234549786636127714906609882826012109982505836883816266595828269458661655378935160786163876754911480257851350665734192050120664120116540095508819119657607615912078931633943834279689134454206439106430515114680450620805122517280292095327445863875022879045136374576150016808865494169061571754356585022923004682973750799866218734019035002455910271553202913791447475853461217105124862812727217144905801982151398725636134496103896409925645818541965279293046780257314793924547654585538607122065282802294943843672606597712543395199294838970914315709075043002484839818359060458558113723081254277120855800853837938764547096768652838591665727840881734955002861888229316713770226408261113109186155411480698119404167173765897713723468814038621415375762224993170723649783694859276488187958433242784657784943877221808932846747246254075596113848344217930885232498118723085480162941792255386096458928069906534606568835201223619692413907479044635359492645491824863316440849829367786358949235326790104789056061809630652625762385036433220019646863251991232533081706986002846319964949951649893166914105196159330715505847447899815372675618536769164876670178259204788757190880568176635293214549657609115153801344507648500643729370042730984094365193564379917704960762298945067054936495842835169673523566796774639822693553931785459556406681317630960128207884622955759535099212449361487272910336601639379209830862901351906026107729597688133047754306568057798229874706186705864739865064247785579108337378521735788542078193137872530936980010066593276209806950684962735496392873027052622195217182384153084356837333307010182939360091646866740184772871035907800242749611617802636978270209181286784240937972612005704330399652348991845741415999205243414804083491733183714549984165545293243347192801010951168297689480171816765812509706553926043779958976376151277772858755241065472216754414736325558557505123482299667981839889314566519749278531160839496573090647668741835070652133699039193507812931738964549738779749573856238000847348624707448192502360333741711000117123637283366406367399922276129206447639814951902279311461284617177202018042454981900799863181600526445106806385881610931385744803992331367277878534606771206116414956087204696276934689537945170034035588896955344689146342730035814628440097990595589565546267358444891484044779647338792571125614046809564572670198766866242633805183249247872167900967280913353789768921147745137100517227473969630172488658597513490824976831374153205582745466197271320889296629338783000792858301251829466914493404573884808734543033290409265480858137302803263730921915624760400155718302371770054639225006585779687799182327585735607065271690124125046939255436566616951216932933097738107586580881893242093490352191233588486689863336214522521276856262280154828584426064809118884001686843054785060449268357110216198966394552396149224665696068772398573100723346759968182227243493069905654609157069566177846912454277274480226532834433451725099465521037943809768708724306877915324166463435484224318553332485609490578112528142638547619517782006094481736597249283442895793887186832616252110632108596169197460213230721002388810251049325302107927449451620799003389335148074625653879394892902561611134082544303604258055032234013453061044142022775517765747357497120297752142905176707672429990655489687448616977792189930590004146173673962330496248500848590436552451388190684290941584129091771138298687096893976297772196055066917468077684826219738266355631415400187747930531615255121239557926744083787550769194883126005623178703082935713545073874807867109506855572585278784815951942440421610601563959064818310290924806694297329232523133866516232892900258165900381973118919378540659407339325592234220303657185551783586032554038708720238822038845691343643545600720520833783485965204873431242670094807515200130315606926317179948924056431738080998667979606826849674029723146365940927089090434511130957471383592513626442086329615228202509890875775961593214103276732495159733283773209048489417217072432649953789927862429232414998752506391947201890454105349040745759161821438681692893537438922521133833429644075607546148512243750095055681463433093180803178475860949560442563547810445083951560350864864668058630212958868603708445920137244169562180186554714098583229304685520996437293792819759177764447153632517426021098300154070109589182411635875634428170525510220441421148270659860738466441585328849123867521338042209152282735943799327236768547316745861897908893048403875451320680189176890000308130708462308974940935831176636098889559086966502189476497247951845499783949729459769542916802901091975623137272035015889207008994998912900999018751570789214384126309486836256072858303917863463496727465030216725497783075879742518317398064153688306915718254850631134502910104406461172552717571200127715467203041221743692736720932464119964990332449481090840368993697867384882985394250831086338914866320820422125019328814591140818115507910953718028190388994371564529479823231106918992063433960477634640870346423985760176720316317731758439660975478334978666428498421101890804208023061628962534915374735218635068670168287192873825889842209671944087617574176406038286986141858472313439791691222767359268061412933489361054162263666473876846858510508777920996276538493466444367941388925377628231399125074428148838203985257193802805488190764124942615052239944139582845890136864644860060737251602595616410418825299054412444868409018211569582806265194747227609867109913496238382595255731453271371586768895943253615007615008339665235458398768772530097528770421470615652720323579811189034818457630807632152615736636296617728754917815437581219426933646333968781481744656190761345214834943796429634285576048441801768390546986271559063808950305321458521532157426435399906584332511424693560936200393530903809320806711244860974928234710047183747847462793088517773553269352925765020907603511171329756598942065338948086555309130041987302850269154748353424498495550151433398855781725219486724448199352435909299596015619259305427819709097763706601217318212815654233661115908523918367269353806650104301577943639206692972649035441966935244886506052753328348757961355309443521769947348732096770188782274952384879477123482930102304466575103211898277406954739301019186277258849748827766306377867148609422501778281372970156632149886530529776329334557799242701449174780346944754453147009883165940354595718820669189245162520883012016178340343932117842520458699610173777465532657263433308204405426616146689619144845291346468176561690837314108506195670042123950463509668026336807352347713665725364521201087908175213153921927078196022326061630739524784194827417901684992310850056595009773031396198673622636328580487983862022794591631557357317629577675634648556139573010008662993778665623592137838449838173104827308658862123838652838490286981947937969029838431354388832351197686626063210153470303804733139374765463695903138333986045867449859059510199388913175635558865103775051744568199747534205509748204342528572919215817055064197607239478651721553882824936619159276580968575557453140379702288479392188275207508665928921716460747769710896677177696060684673217164437716346607610167337914565109938886225322240889717776434378599959683508783278222468785955482676484144133562761487226300938729924321410689645877832085972881916334498677544008433259958263097975097469586053093294579536944920482826491058028598676078359250086281474912294883734574084081241624769670039989716966186899308478455796782661318331767137730426262634342469474921319240269219114731141127165124543654894947148235343453919825531702667003619009877043179154838285703897011049833245657744958187043034026553878749000939209646784243010165722954925194760795917955402544213010314961433132747674188428268225811674204599873365198461255562551174004996728399016769899529659614926636166867031415410788683359081298067039377811597063767143936739782170473947459276687083060329587922276216587357308689688022839617445851766600802227975362100942043661895846326197652476359885586316277764165472335562627686343145802650160587106018016805167548659211137001081785434112295334773296711514492856949843203479031615127875218179974421509566435789725456587636842464997469414337076175923449716319034319232843265194832129227411112389884097727146418232491865986503192152281974025480032787992783477474546270158301999120079542308634170493326441826047411374750627112665730978438711764658221632195115543809679639981124918307438626758892477594560836950124735096891258074510620256547381962082382753616709364984942922583191619974981191615553648978554446230332469328290721170774960357633083515122190404893724237601391869364343566482626027159151432814766254980353454767636108934334606044340159187080737804038532015509713632433338626612119060122184328067620333141512801833295416824040702711300171076688512104289330562280822106771019564338609884226338992122739627532320745534956157005033428631568752898076276108800422710300104811340857347248980663929744263130825356069754220948223378393824302017632077922290010715558151382866509300964043463865934582374204911727509507430572238779061120131646330568754013566332013639379740086427308202355324477746753800077193094133795224597351466456585733138950662955904041207464819509580421815895618998026258491321134022056945576209099405872688791907699862241113041236571304841875983128069749620458620687140242979083381391778249693041083461940506593595060939476217010969796121590668707937826765643429359477341568611234275211537788300629925031924927215400842570193865450807843317143906110656007042938374260798819554606429381341993953473214594053827758721193184685851757287340608931778610678417837697468128974928522545270429917205053006448950986886315869619155556271601705599873020278836725128903508128871651133093257220434128178800692294980558721436336689287161991148997562885791777199749488675856174403226843173970976701315117521326325646903908017700364906802567183761663768832824016707358779242080044716207194410558745587258766566640057670151431245630208786756389677800175573747075373641562778356453445240868482357959505663407241027887013008673712333281872037587474703861987534941606621864776629599820345541564200508338743185658143026028056303926445367527822439980984924568786533952618694143928234307874152365301052257577457666291079204458798023969897151272309309753606216404406586414805372222232568696763209609436170434883205279692186163142337931574654855585378152601811015775818825071256514806114085470354856791247531310015154479874225069636240829728836340486928683238779599445067460149296631417298486560205953289380051720620470667074929945155530217875596376217453820807385848294775649742784612251327107002039267520883556295892992382222984440095460542826179025274679090118176770702899852457610435052207431604452506360125024453672686294258363354755311667559018276466528165216379381255148830908688694747248774479977368570480185897344301157783417561820923848368739761952459313850312966474562601655374384156375809327384266948580689052997034787559730442586864509341150268889225790082838541069780228345164952640046037849706169309737147580483478058506368343835023902220278619888795604802957057035919702093534111636716337845222326280422554480914140988524281416559153041559051185549800053478008852937721050182257633917138965368611971949836812824615395792038801970114404879705434850902677964846606211258117260166267781217399261522258957366700181443501114686333075604899280755606433709712141199846182982479814301344410500677783396172648670944024253488569392124326477373426283543580246529651945497490569257426965807160389020049371423666568635070743233065482917420124260817758656622973854438476059097742097807802046416773754247576168514646385346953015324496453498132066776007387529583855084293062285832005835586855218626384433674357900805584581930102159146752784785300533176054466656493253109621778355203715881951583422736937331137738589261008157276609299656615222724892850639883050695975073085599743429917072535902838812193298352321822162927864437191610204846549779595125677491802546441638422840340010401046903332195733240043522322193926523137186749942325041414665363714276001811223658932886027117676866669168414092681777662157508697074499950944534591140284917764051310870425958558524768899213145825650296344270345022344058521330095977973590611425071297402287089011799585751342271632872367096492427661111659814743768525623761971047916270961206699937069177130813669185437592970961930479461712969104733952978989014829724282713749454302435913740024528409330037814121710535539191239737950897033669340542301923883576788055949702213218138775038415019847509398720048066733783474766282846633071388128477446417731170748066644257942745467989428717461145612445458257576711213321290999139497404450879443757095110163641092793778337557582492030393251376111082392820527106726107159462607453553791014269195045376409632392770684549679014193599716922270819355503685746464308585924545397505821290925366016915464673936642626870068102901531512723660814673006313443606141525433152814194058020303366385533390420083641834002694578506495524651736400543545763964692006810527409896345764141426524687240060554393169294472556678582870628491567940647350611717255370289236704666820117470034853149423200129115302415697840755495445494172733022628680330820320944462124141499828063244866111274804653370449591485072708714264096107204689868899900815311266914772112210848887183757660850455094061203231431917800570278347246602787727575517521881648107812455617733546513559637199134171675673656519422331058151207807028129357087701927941596079518547521995305004626122923259575497283588281974952677045705510196513454798034688793268896986923898891374314521827046817632976167712675183497515562917108540138463698065087458529814821908322232755816307958127760475705279361355489225988645483438475083517199582543838547771460238657549778248517945396623762668396523152535409260995125940776590898092066828695865589987809554014234726954914612790825721765668428011721722471629300612007663309995570758239105674267623206447469244522190225357996888193030155413018886945479589339973723721094384691150007003896229221604345012480551899972086776494837955384861067008781326014655533172979599783534672190162920157335935813895393515011961920495691577101324522533367254813640856982904023117061944084611614366550279751560056720912273572996577185593630428672547569005869209187036333043679197908909392908129253870249510331098418080970500726222842137351217335776203908183728520352952070896013750670536285563043608640850019797525312105723910360906560504884508277568988651199530894499078247139124470148451721265258895154669982934608034777839751507804381314180254298930379691542783649841749837173643976527578346198570766533240364251606856007166806662464356109428827209634441321976187181407868163904382720353748082551019149834075950224256938069890046267667795851947142550283066329913314902581217481391830794249033629640780195715090825263922238283098200990042302750130472225318829793230730499122697015952017589769447399929603103402043540453326559834129434576153559272861338476790647020469436233089528705936309792525182856954921917510901906389412685132253853786674900510950945369092763968162584637986671996320340290607351117848822424484516728525014385974321553342467712081523973984094805409349319505875144877786266771529423117267811783100341864475228816716777066659724410786478719221887980825761115832300027793394170005465362562709623856739000496229320740660926864038724934899576360636112632377740115429419217680111022169527719251433238294105458635556980398883941097768953680196918959914570553983656899290537142824708166451775622323468555864641010741996502073990028567884215245228691236293805071661565539178135469989179371979523544777785473062545420910500456957607688750569624550355953898331840609064615717122321994276203335321165061500592511757331686102453444696457305273201627862230258898883702422536811555289799200947972828673809033344811863596452656299484275646759242693494372851870057602753056182016529490379703253437473001158629466019190832395276044212515377538796153071239447284090086489040323138644830867966171441493374935402292269713616314994035467151947604319425507192651990047852101351579649494217466647485211700012787145807661505716740359090071267223782490308516274902869134636849972263485547644900881646211769081568549666961699375857533987598105425930322676143900102916080916362604231930299646946042796920235054995149837988458412761631273480119055727065458285849121874499530810832371085542314730937586518086099467049771813576695953332321849597278724502974435757078256937332293069033587744301592307200262139073598736712793898444497389510796083024835651382217025895470657244328386943311371217277036370988264470218313578961840447207005436859018855442532486927410013666884547575912511093043528395005694487139780121221470238529906550086304966709920377495082855515834805126211734152804690392684746646825618502583600215269398785431173274638474382154463313181499898633799916921157293740000377659053968523644244320643300483524284714872183535773583209327308148476809419226514061498162590436469906799270151415687115005366118109317233843779685703053867144999261486197702078306176323740127151022685442532914903385652991554484992723832842353726883584546889582927849278444346036760973664563385281993896433641871721841639427434280361891462516207532022058910723775487483929800484509225624930704538775063833042905531187307404829249529977693201795783616094179669167005864694788363839152848505821252342838430058893590843877327917688974009139433788091081193391065651314362512294516524309091009990886022906525461166287342726890488148177632229605496965818257379579095614603979094835877457698237715430686917963836036601550949381146375466764213023603853597746903575709677636791305589602221921460856484017260501979898480968271143632760064044998032040664084468932750959031756746959708292070647721933978711333562101681674976300148619724325799548679190330808470773734719751792804609421143851941581768241037041141000545820081336009958377724577388502756565732173020623577157243062401108436960746343127778091663021129367424973685327885740741979529759010551214073983895660142794692862283312968773424453344830904223724426647346915172769587532805977024602230955822904879838618005487698286585379767433682854024426377628722240259529453392634146849669646272139333320066461156241547370211607010091454598401749425731451152694925544715251228557117546837344521663228422230604234720581236171796649656222729416157825537734775325675640557030397728330715228903480057331205727523979660834493324534840587352872525770100632391910403140610239614644746231204550066108782672089929868449382362167524466243731732000588162771160664510079389510271244973614420412246708377870339238315862894227607390040233306014656383812323863172418158024013870116636043388881450111865076121911473120908225770281757410751446238586906228130309543455214089961291302454082516130038493925819497259646034561357027148748254358382864079012522516475557325311545644749569005397984565192183708899768363678462764975047654331164769571283347044906613671894181960371974438456057417390998110278855846633969216198296240566349168042756202870211932157055021906462598036912840467837466334563575649387705714296807271214784737783235827897653955394685013588746112580459147938203449395363150840186864998098993366490394948936015082285408932858551106924825919909248843842385139256040332845156280603399422283920020929583134495415742006048707141729677657346695276906701425391302206718520229572467736424853508080652252667929211042671281586152210461004124923154301913104507149026700659189331340592254605322974548494852429300949549975360085437173767506599132549149974913706798066088184425185667587177212882335349441758401064505768399221454880510944930010993232294861391762584598284683597779530435833593217217503302569112271313125133198880775677087431802989035101526237732826099694986167512717598210983987331008374379284056425692830730105999773575392765263220080892270002325990987563344703864387470953491202434686205093647737651209741334659775417401040979629343361273386929695532940179250275891050335533421955553366315029989804908386960903481596136779966821550687190614471500203919156083219399293796374806118608430080423208226337873206596111264941510535065606238691091287914703882546214983230288131104331928577314260551874654109858424788295257960893356498399302872776037962793180376266727892503397976148026250405724171825460799135295120276498691457689609114249123214182870631687479473428296624191695353912784549759203403641826102747306016391601167614934414076305788067368923132016890579990367523705124190779522093829069510486259328034590403592841915386025244394427655650591665103463212898149723376634584598516043505219958148413236624285867225077481958000328340523787676191678851488566884244147964378661630647267663163048250487909788404971470887060108659910543758760761364284517586343002164457753269632937282792769048499492067825186003921526570696665618653502817241041612740029234914420970819660757441519530944738912014561577811673412444382432486835176402170479641478667896197141065729388062758145725801952788930499478947972778614797583174728370569081109947749922280086030607957387944104573349140031129482778190152970612723469859141496653139356839490247476780944916409670124029164793934200940602105504119580280845198357091932426787384362052266015408377249346234229058157619150569581627755680663445946989274776510378075698592122190417562832611903037935662298595648757412582587667506080813043698686180492220104433538665108205863016952778051951788035524109630016472206471453723969397796305061860779706736224045421500261814079479949220339458582120431384217985440406730706929308535014670626127561055726621562786276831904957006090116829020479497937848681628723970683053141138575512936456241270826931536950179941935013382969366954903673457011134936269826855336823482555546703309274693612681605359876344760865437177141806654813197126088169978457099657019487653572203746324515672444527080050013202464208878912212686553792917560817545311051068533873990461852208792887116760367318655672791826663364378821375905436952705475455084193947719704957527821584963732136628696321047575504398398832366333648700085952579095302075749536917187658283001080166019297120427922868480455386056968171608740483542534118689702665226929276381571574261473049430495953310717403791791203125629369118089003834158528152912842055871517495961736730119554069112771023184287679095945557701931172476436115315966749426633017763118006367965327212113233900383764590007164514065435070900773376308673064560199346865903198628958114237729617845604808015029955971182448593676396179569956236720430563068993672473705956141263655385204510913018562497240107395209059084512627528367954060557637151375412460294775319000485530376943159584025897906918375011078344735252141107014602910971685433790671062920718011286836633942791834958958023482529677748955517880291182957431073523645103609254407026722251255502996842804031075432740664547086470943091897233667166475094741145790207130672652521917000374214753016822242358463399867037686091980718373718092270831931620321538047400493727219632366305413390246791051924531845569750930960057821729222601434881816343348490826121144038459486948770968883597206384043191328753859757114844878584987282503616288269161841708458830802860594085948583038686228776709698713700807728966959824627702854963255269363987359800291950115683518106540014505161887475736151714013429539105430034313696620908490480951279711254937677825615067562388553649378112902590329675500471979861948157825004394285523431391293242013961055801483632158937967632277294171577263472365974873177983111783927746374339212277871772177623205883377417651243623967042223549226132473718276362268710206455653700728819040461666409113074209411556921740679900781207438100342253640222216244738535992507601611563608160519842099481604104709912615496474425978248794225157325146616643520975666973640379298964665539440717578845870014011889073450148092424990028702527753431332609453468261389210581570964313154963451846211479859359949357567908395973656343806003830960399172836618379750271333503867811352187203245438547979280481665641546832523478487162757293772123734315527896367971077479408525784905790923761417815484520219571653928939899346307005794738609017254586946688935991961996610258375315235011095174251500998609612370967930059320955264856822309239434169823774079190352160880955446351508261175770854462797361080836654821944814948993862264036222940193201256683630656034384910244501349085040032442010861677574411119809173989074384617413519162087350699050834075675382298535420533543107785091889120165413876054173460961651830756894502569913484010781003518167021411255846746043460914632948394808159409848996648136174363472080174867161710142027697778291141935202085591356092648302309826841937788682691042578405209771167732302863163143839127979744071989171351311787054470638917363112281544412718653045388869471189748692076819535015813769644631323119981165121619337263241581294383035859938148823670914709967063232312017777679761824947246945495993130790425095181245534920444230682864951738963868088288730355600754573723427330426104027625929363076621711341005576015476751093606776648683104820743923265374227848179273666477713975828303267079465597878360226525728152655285081927840952594211535847147417395430440226474342225268014434434259510959629607285390589127266408575082654540516009862746042160638907982634813610656477770088228472546623996624253223822203706653942557693747082243994908525929148759008031024947129758593319555045022564739473708679830311295992807732019213277423119439287790484684392878396898105188149990517379387945555438237245951347866020626025109742206447380279978690157739831005947449436966056056506413299442728350815447190378970831087779213243868334057071534799017541746709904563220297462509453196576693730815788681367364772304341705443832630834306817369115405149872209429508182817369432754653724108990670116037291399243044505514508863381446795018171978739922404431450039124499820181826737531270254618871844645607687488109170502727063214953195870695150460295140661759200295055358483735837458564461670838229868535091553052015926464644819860509195271051599651715345337860268248875011509129566609190172518689875633496847794268363532689344742565138757249957800972204078849610993078919300137760624268654787604348265600446105060943502547827386447647415132583880383652403825407413393651068933787401845749856880777948603162919394858261025549088512059417092338801711664664895000226752680090207883549282426834116844545254730035384647223003995864052715793422006727960628431236396725385446976478308630020665305193771531675242947955045566658822666087004207846422180875047977941116809793477380034922201116648022463428486061262839513822851129444480591837700116101786491201840310685248861137193146231140597041224542945154818981662368177604118244954321717796355020588908212580556477564877001316042057452385340889668162009925713366937097037639592023918435537542142958211340168265763117715638412502327147261848556006565061596595619511310947954318665698603754398002031939510659041100895162005578595889977683863964717695644261170025861973122049262244105982009784894365281723375861709290817688874808646250441311604606780852806732780171817273525473203727706959593144464428231843479953829374958572526387528805196931266237217406803609700055114951535597186097297341529696846486509449143243807444458562246102688850585637966186615813225802277252062958938341422298633204323988681621288361781493392638397911120952308678922401086281923885801083774774534225740432727246821211361823783472691765755180672283523545057055938385697164319623465039682419211609443814669406070443385205450937717301554915224529539778859242076379744564516084974611718137351490307194049724830977363914302579811544504002741465057484443457306304791615756117759865016832971582629846143449169421515725029740550316373952534052527387073105436868978302152431763896755169576145689644204765153022827037273670706233153930491977692709879043871039428669670079782469651471617669330985121200466727609063743707883198455400357554637212710169145612682390866345066296866534514695163917944792040112274233876752267025450305135933398986248926345724738408428893185103570079945194918700819375833733173573247688097049694405420794060943199629732396503651269624307242821093251744505977108514794808130065482894690618989121616625099502864422079052917737163092263037692072765830930474788087325159488037035989184157370410184655003346566187522923249203909056519776788519729010039207175276640189018873479313937603375357210651103257050026731829033546814947867474138854864172967077698089930697352712300545742646651499349438005464557519708435311911634247876522067755160353596638262608020153768095700657972452134311872613930554844859568570863702583972219853204287847269826206798707553913806629518923135302665337344063705292430860740325940325896753855103266739533433102348075821147377240770003442352197426145802267685280502802275968560824406502499244642748822967232935428103855267980991318850187281889932096459010517128404087133939942118744460953562306926788101578850373407695887966870322464508403378455477553084357544551677787852650159789786182768224591851927529499859962105334350576462213362347977527302061619532256532553565984369109885339752124082313085779653588037996996932320773826168179370403950207301341798643197056564427606200732077555262006816417219304144026988990551332886038711823705286947160590950070330173011433598930171241790266147724455719581264614783263106481489579913802612556013221623319982129147035381406140675293364891267717628831677946907776009953403389223938985070391658894509099918983849688380996652918950233837049896274819814626602059483369485094215576775708903107227505274563559922394296866979071348359125855619960917178343444032812750875690460340075359461578722418200279066739540568676411584217308757474200065146423650656287994611344366583676206902715693106404537356850682617951612005162297208672245022637804204146992492497920602346183016432464695029974281147972716784788881567381559273827220935866543455379652340931468462702238115003332621763054691783310860885299592888169916763731994270071841728181081032748868335080353050957759139866719050151284933500367790251386883634464179680252345255351406789935729323887737014135629017969701182779445087038829851964150119907915601882869642093061809001109804076870878737780859353597241190925185249437873845478779161881273381657169441185783131018204600705188047571851547242736473586067978270539568229955180887500248154410487504289579560318476355562739497170310604119982573946067106365696650943651407389325908865438764469756893122113278735361475423884154139003176538800054756268293251263052406059227102658936932585486123660470617067383433422939757210414767655557032683856863434869145205328476409771186729651075344841527893507733929699541875764826762433221694466511575332433182156703170443549116925500212098705380538046241267818886919717913222029858271148265123418844233847051356558515737426170462961315012836274717526693199797179134861515556450924036558646511113041901441968829984381281163931532764953357436018375262545818517387277541462818438764905080118536497072117499403024369148377840739518689998628951556056554888070680536629333329484088527532088894241059780212870742958128446269450957389203113797666520100117870735008183451641110602121346325756223800205575657715512014471577950072246884759079567359042907787317938681013345041422756771013149756171575478254790355846283196487363839135709963768084946192599307624953366795730549237884379817866583938088807183841993623762714750979785975372756285649763149079984225752681626129954003592892803754556630278167362468008719424375036256555058223274250600721479497229397999926671823964849222366736510727714585128702778778779123644605144934157134590733023411718480918386358085953978294205345014386576856243607406684101498485708474304023297578548388589649643105747397657896709731916049239487445980203337460323504332546265136269613811868984405989784481136973871349639751073930240894496466650479019100874488805415120447813120256408369666189506612331379300262351187059136562842411659343526048137028333972878459145830460560638612136223583596901844470171428526646176164942913196361653382386989605807853920948171241705388759881101321507608955741933031540859976372408303432675989193580375561440323267260217004692491876489416037150070279650858645376268811098557361012222582852321086849082249996295181838937902444703626023173894410424163182083959632952352398875803353427297382492290486016187758540259348137570636545798588870133603094466899134642930955365910681070767365327967928718653736739186861747132840027230583094285727016141926041573522363679033905667236449989268351204279435301888044261514042102316882067210927855293092587044418002751347421222304306772675685473161463066071998893291465325035289873750683471007820400205969614825310615369942234327205482468935376389751934727152753427700564730932007010300242148120785631433074515140897821622102853479631116365518366146828060836258407315679416547821609124113116422536400016435760408837617157783927860910689714441996687727267171196717683113465617189941466985570869647650616304418335552751656592150693255303647007479791657060940051063603387231988378068384377624218646230144533735443151415957157501616169907077332459521353557470783917761898610135684150726245878939043028023687444625399664634437532075721803394892066417168733684810925921676720144303127041399357339410576282429123725141101500945349561571204106877571986960316105351800935590077331986603542032870064222778555839455670723203845135785887369872157418616028257159747675966299234225333032025114516323065542231037771842438579964964838241156596024081780697743432068753899550567205638016443839517123090095837664293354378314455022836677174850874205478195335782791648060552554206272574034526181516455532292523711339035935517500263754647691354515775427217115135612531131205536694615235832527205318410757771980120662536772993230884261655271857091113612620749284165184581552012207874008466780873481264749588471259739789610767261558341360669712594213230429321672014132289079924571265852485651766173799020740151587069527749228427323104958066953814054792493141399395520351333981084002828418151909907123366739040166674490435368395667751884635151219853115730219301108684565664074214205829149584606554392952022972494436549891042804171977847845062397525197310334287092456795602005181145188707368044707511889739511544487535283199926707019756817771672121764060469858364827742793092066770368634198824902334941273589907358001980657494705166833640800272971720125834251515115223890354563603533731513283732753115636986865408636217903532314999908685561723260368860420587429488943047455642926942677417713579394014043116506510451521204622781316277682332635866858996006599804696165690939083185060973095574566490779724792948987789456768063804796362499676068415474018050247986493396837537468967799093325132071802110193651566178723383728228768108352452842193585641726453840609644497014299885356461336794629458534553110361415096117805357917679958132441594660220708327196136095747679208913968965082009313818527053153828434312182293355633467809160040337170100109323696905300395033795403304270398063624167647036609303854509969840187999333389111273132284701034829008558889979969882850057743708810852682089098352688274004975745730827095707697772819586879071802812933549085254022384099629180791941259130621071412506274325342586081067708196206140939276190821209857812154805585401842731908336698958976966239155490290691337572377362881603003392190361191180453820137699600959231803742449312548511542343003996164442948322333035409175452112122775121352532077347777410601951206990902998904361215583680030090753183732485490301554672099424280553548786235804993519473101887867742853598834389443911889179440730377436715121193998104518477522687143289691907802223305343024372066021680968748215482937086852284402799546640645310426706473426534563900926646224286717938950929404017747987977430836470699393759279123071313276068467610289663079535355801600997969794721362989255076655059691794159428595558178935528868158450950762717777494090330621908393417472678497912132451483766306945883355627897442763721403781720993235530870237233918493231041849030887214717863793565577150876622245525877437201868701963015983946721166719718863672342679041651133294539776181444119181149502347379978612901831561998834908008716340306921157771581690293550080895486695148040669278816858606158786024192330273230385461448854000556343241519959916412238122016610035922628538599356153358585710984096388442291768404360397919787954805892688991081430683213839362718801992345827105323005942873522039974958751451934914453847320937410962801656055219029188823723783983080596064196255615537283700993155789561923060915533977609101442595419606184418462225155988666048961912318643646133504703612745883811327269883709858034900852048636832336644029023217177433484885684486207852740903996479941602700873623779022294824368169697934418345397330049025201028369744355902174529505368634078786786055935878835073800337633957816961210392598042567434981450955799651125934819256972994722817451464024556207932789471785001892546173535032010810906185219275477425462975786482503509143643856510065243728941604106500366039357979923868805651374210699384542556838148676083822502548989779598602076232877956021000346917606143556139966472276788158936462592637600682257085098550766215556171594686965029535843222264441238416740321577244091781128705825137910214128369964033067184091948536614818137272596689185212964310212296499658217091689738897011341174782599945759105244818622333448247040918563665904546116573236349409684160632494063816784129150407343839729652083513611313811030891752443069631477924297647100208135812275440184544550614601785474872497301267961765716035700972464844652690741507906465901544255941601024524117723160823368490104149647193771117497894807997657627070084048095772526242639343539464783791807727244923782069562630719969209110380246945905819758842033492303785934944358144738135541783663073185815788901254919120602085078462545987993130708366370511798746794232855698914634257326709284237436947529952884165006704344646636982358951588830894451662796648520875755090440121321995713213427053973953696088636058096372151085869267309234150941233480451156038257309656594507802450670046473050512676289857308740182358416306302909777269661737898887079065973594360597150927793432740087465478757273892412103628399113901832332188605169294937823381952638043762592830941364672873126387797581903977231464370579118222113612905992494830786125251310540303600990283317226734905216688019667243580011981090613604259161423589705747409991979694512538932787813665279751128869757257428691888269137360285792018685780229960378819327791745097669287062816211377063890437089122833262025453268880330695284093755737104755970677308075396358110882626852995443662509215274885071178489111113351087508470953315945756235601547893615373779248632891938680541043517492977043496287216103577351469535683524037125926432611044621580221446693349433242579591606060351029898199322726656598015951372565081980747348842150732623440667446085226396869417111909465103919646564666597967306005222303843966584647993571503757728841468286592478904402161946946201930769513168277273467562081495271198932911204950567180197532680463018792493725803503776395126439609235829131864660832163593948077311023402539295319960714511838082819793551015052811989848646724368221113656285709681924929508359121740805923158825602112459541141402223243369342974624914966310195379340176611008474333128694234319592220267530806226356729562800095164363554109047710835693121988026466126715206883071355017934341061345195045010626871766028377104510780485423001681012463936298524288757454868222582118726444324864363605946715726353882653366019587028309384310596424033022317252367614453425757710797326967971516822851461270884407283323078635485721129829578391929216560320844075981251658572310466707094070822366493335471118809667199282361374262158044459470346519176270871814673527231301016513427180930670388308914205639762741422769813220237261638818180349126050072983829016433595213908015121027741091344682790560096981205913761988877559402643389011378883492674030730049782946961389896522504317580363735470800281943964794583535608615504060238013584220830828523273181961353320421998734443665027891042843577211256822938536884361003072875285366918408714353521738706259755298519660828528696511919318354773712080125495409884562993817383131958321967975814635942784751200020666609883070518529332987298630080988912964469590736058914932477477523680961952447899890531502055563219073801137854142095988519433578175541999585484874286456663501823138187467383727873028371303103128609034177994169018384290934419476618496618232947056248580181636537151064438160028180922672625745504367876523060145831807481529200003918202774230232562696473136696728327280329514350754805415425020900874947918371188778094243896795044455149988567057445223379358784096584325259348091719825275661042225362841556927695191586154252656805581492338119878791660861214153081531873507301969635348611578922717546778871938217581143597454074532263257524993335881203650795770281770304924281117454538026290108080097624903210991364764654732933991615392928879389104398540560829021295980496705438304186879322919172083124347770606216164553294030732100727910055060806260571024673124050211012267020222336337704451116455248975281036825032589642537925897505448608897274080926783064291826136090348769109675693086924208482326550632161374764732674608442816151179825804564511760752339517542736758812628862484170568875390553855689375899339381142658130517644025671280452968378953236562805084275970256989954060119037904668440871767261944354122754821582147166019004588449921254568819186065985596003341244495472844901556727251295787793514280317473347620575281555183170950746452929243984799007634971682095667189549967205696250746193827243087454736353394445692662032429183951902375986966900960398535483005392211106986989849910559028654094705584095726729999846964980957649497871988019774753735881386710751820356064059841424183813271287839847702417712005927425772425499993749222485875255815303012133479142697273363402615619787992180656957255435448930136599339051985422437974200897510363228182693679922278770918997767416782627399398969214516501949213549476124410993012833286612272121851435562062996008887518612257882514523454478506611234955140612062092291867292931599473103757406768484899923126769860006535045509554273208689725651539154162126601327906509997208273509067739979798233100331690969286118132631011600972371464024752746341288175349157781080568328044218716753212811067463800396249074639428056795895915458507222119622405112654068802145169077838237740807063660302340237569972671234949840615282619126166920790439463813625406182953542521752959204047621423746543287268574391706261411921114430133900748392084878270645101757975539501846021185625473320087825173277226565725440024362384322830663684208823698018273242957091293191729138417647613582621309541041156539444870150722056655035235780211216414976129679691395498897264192099837215176605097743897524937086309943722412518787375084410332934266508191892923293042022399946513171764401513868038727621756371866293691068090090137698070377112284046610309088269486786095514843870230972673899229639802957107637435262719103496793222135214783509120824952077222574706205316983698963368490082445741201937743345251401806258702841705889492804616141192546089652933425792053790734798449640976042597779299891447616333282652134130128597444474086011372546419865671727925443516037901043632134713336053975913410142947344011155529276636798349596009029596912659082748196181878337578103621703433630608692517139899618491336689361826138198442575001971745217438305731696473138998808274651029479783281445007931621937249247494749947567088929759781110223681529659713409370844510576287927495903224559606509457071092651972173106982197890293431106599434426524701093608379371365015576024191278214933848419456853405581680553168879914978873855042147952409974869570359531716336066110109732879818659208110268280905895610674874190561263114495796198234354050455932189471514865365625286605699010033169690535529805775528319613128785441733139367118546612904658806770750664921931408872512596889268147004801194952042763760720293899004846920564113272196386481170606033625439330896920828607754210372889981475462988215939482995288677595260432772203578231394191102461535189858022145908064723084930348304020133538907438748191567572140891234361939224847606429231522489351059768112871312297769112913699132269404411728912779682212033221241814790097034837965252316319715998301605723162487085725937351318857311348167126978860685120911211342184638549936026930627051425215685826109455136685664115075022897781434729612858229908765057313825066851244080957834682920275257838778809351090169049539472394692618171729296554269716613112105499145743450597565400462181149870216860421074401621034012826187224196318462048322741037553653997037271018475228097458748288385084450196186577450847437922337644403967834527897910554269843464177318740172706385089998683070302823088664397390953600529698754328428759243451623288105878589828840280460112826289376314411404299468917480680279646698689443883810403450675709919047991443457373485137602216430406279846060946433441377380213406941062141503755313573713540348750414738281400514702417101308191183987906639040039956574588034158298786277903641013187023428604597109641207119715064668999850611383801028290186625224063053179986397494647125125417207011987498075043080558650880816938334288764462116374163142365999791121771186208047460858050314869138312241025925668880569984608821578522178306276280626671484418955020913031005429374624650609946127744048596771809362054515429931062687793230075287712409262971270425103683896177083242162418201759358623975048115110748497965058823050344552610534248555913259297679050759303159978797562066447792367662438293996728187703685924540144066574977379061307946106173171680968126328908394112610466176225091045138456472273942333502431780161696591862607404886685830532801267208706119255153070499188644603595694023601875145265625770646286353095948706212667311583358168761279627141266269844892267237400872968556517307589496133624554041450556748081531342465171965311389249525136477669638682270760395175421084640623052752160788081538615151230218234020746306935161206543615667697403724360003262818176430488116687384814201470770552760027066360821749777755799414323263805466638099146450688765066594483554616180816825617682152262506330943671210537472957840908979256438083202812004671545218006967242320105082300957826885714025249762033302365936332915022303798600157923849024883283302845985860962192518202639822627152743739303291067071968618239474506755248057960156393012183387094846259689008859750165451066933435152087481568865320936751105372820178820309381881681297634482152371373609769719393525552653317950638078799303923607395561277633025155782997171918882525141090435490556682624622388790602707007429205191791165344782772978170181153515729589693653913407867941963185143993979581615604467083862544720173405822511295022728252134735685833086100235428340488686036975183560965599482140314002558335420054521614995960205988731218566646672738462255595838903726396404213611380717442430327976448810937874849722889675099259879973330612895649085186881701732406389695045473931965728164939026041717761349228387984555031968254814619531333233136319314283115744370027560990261740269438948223516972593060067794633726046378563246306264041787245057896728715099146713859353216531471410534677620315285528012276784984412108916625360849373246582208506297194354105005339085156277731576250513593971172684397893896106654846471158983219808900025284984667995429851837906148266857412494447438098313626765211293164059900445126303708456068746875115696882546580396307937013732559602611257237745981411225352044789568591233247939093594429142473633831360824498908205175739667263690559776188586729125859509093953182745555403132909428979259813194136179281498079887659060064794857446742691384983178000478182855923153506663141711050055507620070517518651969886140505536586607554449963969970278534749131016283272873238625506016567554349788064413040802982421421946549100899219112335066921936408787725611324839348380379284854723916909045864156795523226296900746906698026647051008832238208208357793215260818186475381137606363320266073957096349626808008730700512977288309977422513380755594978218096991051234067199241063221041229811164825081197660020447571013130410382999475153936625238835798506796921014449414757189230692919331773856742503932725734646244024327433011333538534655135821104122488664922037733344598503762301075348697811674001723892436545047600683114143064479104624093313210936699385904100638193201710362630631656399297047317737104073277478590709178398662389321314594129562634973287660892204951928398989657208588581776955276062740556826141577359754442193183526553992783184166239511045326833975751319647324795701254652005904269875008316981970180388053801320079435713539411072025562327441246885303234728329822349602293764664355827032707846893583026674781224359191938028799091921095986609291293059514481600868594948438765855210192430141249601091644713437488280426265790358866926089960041016225829764931219346709364262752007307773807172175434952269078264078347058500719792702937897103550162856482971966087104878205094729668101162751609852980450922387073309070072948970678025197531239259989273274831952524857471678940524687345319261701553348166656585078439229450270559372228021230153388390480704334755724041865329808956294755854193404946070051574216115520659819776140565995022411575975673559302421875087888716298461117188666855769695140499852639020286276235329622100041303908905241268360053059813350542752611016554700634207606464175031235594965208181291572886717930608101331660883772850831454820103853793359549888360429987094371419923276897793949672487316560289233484587315057264652710804761244268796694839127215602546073315883946269572843796237762458453751032526833800730046349375290706122298673370525580474137838897390408048246528982072303780719541548181330623142604141197582411270913560387185938227171244123861524265583658523006574850931615972946854050013982520961328228726647913562393016205234189181441454158034397976969264907434889578758806048841201734453827559735017427963732418588887863461724742472761392542073838752710769007007951491447203518771955180184260520170692847853973502658998572823729061045839750876419827386104335779094121522385248727704566451365491816638406526979185926295436149554794487455224296818921386959118781487043731506871813212401210065281822636257544959670703518194109557820691761240580327078698472684275340758665762751574599744967391886651941157857219689764711560754479550551162007859936468357077645706435483825483529438725217580239680677842662223985640345822671531726416096824968943809439635159958174221602782412219069178741572943530547072342767281169650534834807305329284656883349881052880234390220385366858126380573878220183344313842187884049488999838299126972718592311725301431303822064928957379631449675733845241001128797602831563288191772061288978629025655617433391860314653424953079933048811568173908883898199424270433039205141034518568787281807866659249769402455312006557623819156882170660396627643153018256020190147680555582974957980206850375928875334381971164193012477534561857646702299066148981635853377824005464065785055581060237108987798148249562672115819093934127688818178320782528590930455413596810893559387216398533979790862217766524906978899163670212778141561521541793223854353952305804203643893168258754984033223120034280947955584157378196944828370937324730840349842147182070738112243018583403514153477535844783956333286614920145782921822076619422308444064156988739669704764098360361763797814724394290913161152394686929463510461211902952865900938640883220859722509318967118893269883187660193437804411103858854242074433147353038497543274703053283430544840953647423875026149129372504043773219859757387821193660524291299522471914267275524977980520037455009297660632636842033982164605800928370741163966917420168539640813048747905564941322026454904141003344791846790365183069628148529452555001291061247713995070361868901357119746106543204270132261392485757636291142804934806075692883584563130942551575688240321671550881636442297150688999219756035245724802898557854162713382672509026564305623856051871182446688760604781837649845358987503136511542758501256748185463644542712952282486497950452527542385126202204056581881253996013685848595263755656341090083864216825951880455980653057095232690519044532097273773166490098021530639047499305588217296428269933640863585106048584228893683511396615507589251665184493421040095621076888235549969471395769385236556582660356955915672535802263206275284512252522522027130671873909280260139891452194063347588620189657236072302735120067780038674801618435090833600032061772778915078273278422202593854497272718857912416468821003788812090600140000297104602340886731985049982583873503469470285223749741417562286603892546295456278185559342359037987982432793226676932484254140111699658998308201655984228106138434049572158766404838465601530023798829921074333485380575336454481346606094251178260442335613887659612293518374966245996189735988629533772299991219948351034284820525884891667750185903420561409431669543779423574284506768669630509434611465197052745541066468306283197512758069392136721410230371616152469819561267262175180514640371594733970835373037284124176324293606011187417380357098024481900463002203480268292385322347399024565171208333125721568822637630107508367569064633838702200020907397869163996562016266320349039869878395726878170099230178720389630596067113901833657176816087286061428846798286918972009549977685122677026203626864232256583394325515618569248468131778732612082853262192077001159058899936178294450097463498578335576164035913877148939646743918709710838027757362247896170378682608284293449670208387351120424232701219580434897991278990187603939985393280279991335387560108380736260665824360904091398706799814088668075709403765328807548628178702300798345061463139866325005298256085821269828520182469118613298919943554639517434520619492082001179661553644728989653716251091362537770864443739475054185235443588806203305991745123773998371280860814193524892279158348964802359363317195091034393278708197984837878039159930480457669706712622079266701876327603217903946875624600575963067158501401425314876919038856119106501681767095250700319095686492979140858334634586716698483542798118289157690727147191356226939500126823967411466429343377993362927263492639379203258265562187297218736367152449502407407340387247764239574571307240426755503181689524018976261825260034239930477747146291041856678987777622277757876560402008145158966362421541583273776862879254211265147050977800723733886108054283885537485406288445790501903078721037676459165407485524340332285474924388230184391339627784902782853208950359608181327828628950631473724383368179672735054933419988337243397673582890549983764341496444987029784293333519926859675002880164196972846435387552413990128678949142436445870646658159910858300786882337291239252730088090692496715349264927291135359070669509705839659502573903125242557724667099955863679868601637909803471223231944131953257597718459837479591536918990906786590025256950905006979740005147339807019561882723910856299911106654420450154980453924532674650847299788530523077818313827508987280321768273411660538174278505070973760072285985866645609381444740082424546585142225453243182295806956167098123507229004802870313273328571949526811977026471852605541543063554681753273679056017210707871272251779320265744463834218205000015615889466213145293763979043829966401595231726113839657749290746846351710132224725411490839228585539067246855052023081641926767280034821214278919974078926693182356461714532853028971023739691336618600058991954671495038967090717348137442326341104461223372894210348569597181883913220334195540703645517638558366259022438330199039001695771684746366068931183236253236148647246889738378829282109513228054997761196512255957939399340019827807791493885798500678156251114878323992840769235150425099102607253668842564584916963171321502956890261765261237358437508222333647925081580834322588403657860204852306138678503096582865373388819841902351681599884886820387882387350340505815528747647421646510744545224297993796848289038672501845287053683364794856705804090448913921257327401866259238990382048134996924846868192675388781758632834940755209694734199170099290146499598499225513753842389893654853387200184708647410419882273444459688688367706163437611402939471924385668195841556761944110864672399427862937129694865411487660477589136718420725937601638058684338801722235228428698187791652858479026055958703607728321124028820088833833066508447296097365100504315394809844535592127000739741686360843965090859888584951784438526040232213431858727899459658950496053440452070560952018722228535338829243747272646741698119213580960876076063575422188252866431353291959810406926967144780917759729518271099603233352059466723514664829999274403379514598524529084099162918182811003668687736604322942113264232803297912108889023506952285949252258343416910010448634903820750619108086858333768734348947632199715077780752112004557552278065898399167023819121008914043117511827647233668919163153159181452991741520925887799925415711843263237105691483286504103451132473368637153894387079593693922863934842275252028819170734403130846551184817556588191828993756845280871321000381806430334481103742736170920503805586443428863227128804786580625361132658586482439278488252612922560670798499506628903172562338910372786049344386148198783126081189177692642587421504417419317563834583452259945003869290054367700975735212756162661481817756417407188025364763813745166513293990694861594598238630782461544221429863792642915809925196635483322190220179472234776356835620065402720785853835907495829017217828385814885079863975813750603403964650572039654424286482444389098495787155524502834043396318311425576822317076097925769544585460540926959363339477372398436006740123301448209034972917537843033590767069596625672363517728890753672986483364288090556004084070788582952157240682076416652678626854322800503332889698453138452513334326287192798338444854161297545573476503527435086799822817203342650318198842031408733337750696392563801955846602931347377366354249178576277725225121225230226893269341477871680178992685328040108540511015043148140828465635827602934692241589169816378484024083556143148079631625553762417184143817876244378996522606059031423644433581650187189829812482177927783454527834265812280195549413825018741783811937778143303339646047629663690480418381806577038219136960936132273247144931244430113571127307306620198431609405532044214658381871348023516955075127225409357907867759971096533951303745121695311420023389801932753487767793404559054541298018262248468607530503506130092261676321499102234243335196310359138104903409329762319197296651006206542693910207357008508092368512675709889354584351557129865755707488789899354201432963157665734077094354663599921898067601349287174941004816640499671578358279741448452672100775701582831024322416667827196048353710732225857126985584199073561595763666409989699240888301943830582643418227313934909243889133645931186058109944563124992898317598126821859225635524945724538454055944915621627848952527495060636046846354401091696470432600257657443542407777375431025065897815498712459382991342964398222533587887602864518501454386061466415197979519760942556411904884864254484595518249174596466090949302960628127747177063604211821115135859850346617578219023353979496424964523959684825641673763638077499593871846019797140101841920534119047233665841960822769252344472273781257111935170743708490641616209982986082924613578459475379788522987124772900591352099288324101782406143758743782941120364043252842725753660668233162710014918018186660004976479664900022714188777901051355758743977805035002517017417801103095668656633570257506934415309493443076954551430253621812481670298120313583942718133573276434759358788682050195665228223552204130508215060655940739697002567089529740466039938698062612259102117226221742321422648868901516397929069994050652453364653647860018840001495548372313099890017046951792991342133086431755519422619046592010534500861989052047887878867273212189358897385828181861097595237778517432715690287579304343471808551688034056904501489535256342048245280616657116714804521847733687527760158890476711822952528920943434330557413835836675443145391871330415492650043715100098795558193115594962861029221879175558117965761605188889362369705750110400129449239729203406170925393125932961640326800270815551179065563333497160028197392404105273347221746139762425475484477316505326374207629952731870544090250382061809364985742634321181628348270597503728113393609363830259170990013712939890241716457551074001020357627404718177365330489525211539730089271814380088788713970923036078292854772559472135777168159685364457990542995151200093872165679637120618995124016549979382417162638719361796222665624674111513445117483224937398310128217088960397683373606166430394879333049947155630018214126814574033952634291373392188469108692232093301591736747061245036064869612714230689254304921658645223429698654278470690059205354346033162672075198040696085817945929051760340046444647336674222245460949414235947739169911858354187105893154390657097037123369116255961354976244916584486177723887014477214801031267699784829616947573882241466481980936514035684165842987394925698152303703837602368147380396095031851205000611990012229238811136653663287628215373192418972469415674817174742626468629051059796177527894294517456460556964082594610578104349681818842128060540040924556544429368431387061452378767852365048108606735480148077903776144852569447473218435711693269279352952654762861942031832384438405318458148598794341696687741631617187618645155826485235363229074204230145352528853078535298430083441865199209673082774215499709948760336808141463021952364237271057966013847649345172438424214113851380217286547438138979161246391562475772481109382511987853736296466283781236016393048302998474875103303149929232154266041453854835225594617495416907194327036931986267049241509244139978909734558915114851695236722147886661505866843123741606046764421807716540982537215160297224433134348831123914120159359671265776678542220618922354911922109295971911712930407723434254300229685117804097532153198671761208001817708075023460941457423992058282216670964461065511132917055664336554598786232394929464558634165662162306594461551115665149382702946819919155515992515175467908131934241608185790339115616471745360840337096289137245451616713274368902929123578007304449344400724896057421399015835775836828671358124769416901976593098681428351912531856137006227713111688226401878133927783293501980128414332780759466247022583543445698456843977819637071471202809230737319668503410529318295236988995610157618653795674307622586449058306657302831829078623794122754575054358373601729976031695205905865493343065450470057363834534811347747507740146573087382380738713653384441828112279814789037008773915089351181175537976999999588841107301474092548715173219830745145179004396236755389498951614330854444337970397198302555768885993910833603846130615146347288879872929088682107665350829369730341559476156361053555479186664861648169420810094454270394648169138837239990540314301348589387769236762536084555988717113005955825114864468584022078853151825499513096155028660797714478317534132238319728955366848419919859792374400958494565489353727570436880111689778260237787799520043928803521131251015324049742445429414121192446957739396362069389233058090001224236120376707122172725022716345956486151913720187776150359270899960417316576866817481266102809739774451286328144693716897628179328864880952607578535201638578656686630106125304452468608526600203622121380604740425288230442920002004965980295150216827181449103931772027889882462704794819238940952512185257111522517936366033104766391790491062467165216746180797486194403705738993501106617247735220265751795028740258402531705087577179768795287652098894715596651143026827778498042469712798698694974044856827656604066478603543538649409596461980274419837926429202965181709162133918364839355174594121490456604840013065695644128641134695265614529829924005026699498234444681521637139359130743068487515448524195673675576640183824225074751465177266199597721348330678554646823626711668364888931275464742161609612322652550542573107288955121623475592619320413272444311824706076130880801802731538195993285044299410113927770813310414372964724023256350793026224403986696005007706463618938382440716026419189623117419712134270965465338180413102223585029523518321174862898803355187773699154553889674868710458267804822414178982612874221550329049620713963580233919889132577420571666123959947634401795065012687131513216921136264335082236334248048758955052149551505504782050841557255468303913719087991948467436492385713997451489035538402894859754329182302426370502586654978444122448543246148440420244489605416036872943464993867468293109355894970130487344241389482397529618400877653364038298276736966747996542318526609607616211361976953586642615896702581154196433468413906577781231913100509138013103030454912595267077863267969554319721945474326676182496207700195145518229650962404217493942618672243284409775515411155772924055494292068512715247649006245814272360374817145656128867967641045102499693669135888629389217186566516003568062146092112538909716062115723226788735867730002703456889398412201575630178642490385199777072384428173941517660685327850869211567374404311511474948383580869546913007020371480466245703944186439075148741826194811179140908204293758864890423927350039628838936209749810502300903895337944106563334881142318912197650624244508603265353475851697979572461747910753437549134246420295428104963636032886584637173170856888864530646463065019646733869960350329852871743717989777993363632530146826266071766725699104879668125158434090969032242740387879487199155774721839865078664912603229714652053965801639020965844596528405918583143224130449925078949640786619334994088790585804645742461661598291009945690753306240046121578102627473841148491921910283445626284676372175617804870175897186269601922960367125259637714190406409950758282446305982191154609543266132061651127468855602930044062042287759866337320002615257265934174414475677392486646305882892238629225241822480665903327166832408834971122286927095578977174049476824585477710987991140414000159597482989553841358063767441088659678561415159645372434774666235763139042346862328027685947515013888837480825373286173722206773077049832088414162291587045044095481704384809074783473739027163762582764161237211704833144130754125829503998196338096110605256919281979425973169771009968269452437709381025578199155023766085038777390918241319921297534604191402044579101794666392559213086664116368566653270353500461449825102101921997409195762297187651734217821733350159570915809875811394815492734455450718234185535701523849989813318958163984639791074650615993826993304570113915278007018374965138621434322803685091773727461512498708040259002552536511993242794743193972691305552204483750037969239100420454538634076186247013822257384029794420120356162157033917584831513268606993596087072864255391962580961795075481890949523264901536846461912814497882029877906483742255899944744673332234653964753987526905474410810841264054803238303901187955581574411002057953511830085568361828847867262031095387041752430384456371426258553017519654986353038424459281805394486946209604066906750426079190695748215580626359872298649623024301295297041451795727317352768437204530147661244350550511739630271582706601056430702006155026740590110992790023899257389058849159503823810649518201120494385309824193310721488595410465851696627292166937944234550445976369626957090227861419296474890456845483545603658034194815112983609440758229145546758612821830381071887493222345211544627631177264682453462828513035517703772566637989855422774058361069492790397055787062180159590868193767339114263070871773737170399158908936885638411897495153407903702533274903442364415419217062685408132707773244356105791782861360987025747607103622765245068634467801174262400584237631477266810291563915010105460588141260200181587294245189883664045475478326159663685899578016661200114481040153848501213794980890134853537993530522220397967741543433878236719947081597255341713163738567270443510414630436964978177197370614965845412878767167144452639930478402438003752899193738862379954253479157433993011124490497078052382059503761502072054943983638963178913667828076585395829279852978366070777938566108362992464803027510525790135046799221719581596335851100852659102686786260611698269255884651828330991634061344263194882283890938457476642439567930222813482674847636669161353963240047819080286956478882423348153471430691274503987548710541561480838760637383536369445965475994026008293675094291585060979591627163799106030644943973401436580050610488316005759440157956681078133719318800444984609188171639636853069139539675850705974132311885975345017200309480062477807897133065634310774147976430487861914007550003435154105683841925203717484070546642869510998862569778199120762117414510400702549070681595224650023758582433027240204144286283813519034238876853645952435879036964430377270879231096415362026403838575838028255442984458029531413023364951745547635960468702548532569938769373579839508069174723118694486261361575479933920036107332821093328578102317278251761521190244593742113569523017424236312417907628760249190545479787178241228281282206913917499837611816085063108464170397212654110428356821911453085973251327720923084552505193796953874885016511938946994964891124943388580307806621223604994430458538342986026732128392458588573165651951954913309429628300910321151839224467600446066207219146226144104308225881678012481093638400640638980166844894216229120594823340686767498673589559188093756429848039578528934941108268056318011483523278978056019089760545007732174181303127544452353624318044304588645349371280521216210320734956605013605064328871407264751576692641568827463478320632412142740338587277095675126135153516360698115035923605385125539352202847660308848370620471660348014635397170620380326224037111016663162406975396652395408669441365048446540992689016528580600720341071442970019012760417824954109988134429023855792581444646996724278954099498745653814573299373676380594171330430585951662553744485649497341969248852803052374906267900938226769076352073446020756300020110587043400095147228767398056395981424551218852120930032816599340876860338116932695984438655647622381940544680736835157081141024636647428589442613970948301324419036602845144987748211929283333878686648191598635133836260434987933347429885546459176055441342511196840354134142817238785991480330991194651881688574537157301814263213338475286413459700152716641034949576603490425172792344589823387728810214402650912300378702123119404178420081874545359303333125795203064732149940126739186931467103204630081273647018513257388423806990416404593019804377378237045757266730562131948777789310917664737228911577527706511725760808454096739280510194470763617173796096905282861409372465581653494292171986913547473983209694693973349296177134991025152006345507021287434488004487713556396413836741192624643812312490874677664831509779124433518544881495583019679324767974911189867341288938067782881228561032585663229803037925723074843116962809461702962425268323594800452054648665859448256660691420542333607045503271560948494254966087823735356878896906267388525988194985677996997641208195572248553500580662298644321152292669559238574866785412625936925662916643053706590548777187496823024106446590420255948734348376040998151574892215653952525262325209058240194007245835409617761858835754000046775312486282201205247820356836225009059295180753888395334640771164732916237103867173402470604011944974440472377200648738753379752060928869849066796184221469771683302622233661265768969450847757888763834686396727211360203442141952973344047486301779388633803538339733746486509074367101868408614661561074564335837357564215067078352700931941609681392905691280750944653938181733097514365166364852961489292588339523808724949544641663360239194277312070043654630653866314255588762037553227731671559939012631262865932449223134502896608218881803688658349342885652887669098800466131345234032873945290044414126987495879466381452410333348645114579525818583094965350851547820117055364045967559250376941816179928610567192530623110427591870724319677463652017379948782714876287519175902474894069261386140224482270031413703546439809096637413913690393299518306700179246605629906023949676506443242263742198047143240489197180414534366051372195237797872582595751646692476910231672749416486876914920961041206654635210459707096479952989312662515747369880797674297033472008036410012695849430271674783937006452595068171050935285316682847757720638043242794139067836675796829870925159908838894969357089452614640131528107231341273973687710538425062571414031316758954149924889942889630932716851096612863586430967680690732931004169511675039681217816305617624525503899314626852122717957720132716257554150083814131109086776713142036066500506273287889153315410408283069563265395849579532475333117496829991448141941922902662040472797403629718165540937783155985666945514526438988196152558972448198795736588833435465417542625424780945480493032471275244593641795552220334760252058837865009424378216543492250307359201265647141688650994758490641363281967614387504708700944329174864161810291659331923221505533424919205459952282601837752233315167596954219214057168017396154615438428278930296794488375127522720016954908139884632104665032815457387124792597315279732535799704257541510500128785997920290792364370963115500685018384397311400755970055224729638460589672703439906397397242041169598279234446063623891086165473092999823295626508685023833902888267290305581978529213406067735904543740744995645477654803624860128104006913249121013766356640752340270861246642300280079607472489405259184637312630904610509556533753851719871091599297294548019733639200723794809143202308490348080748720846390597898047488111445090688233227093921884290703397199262164928316985920700877647652374883584455548351546330172699832103806336333217484311073584932819067636313880121664975786118015835871062670351192492932525355805285040759837685827534304668511029988642996892520448280072380312923601898227401554793286450273737706114699014057664429270294738565257037645067842574473429661251145833306045174412184210346053125113066424722174222291054599434927585617245944594722432103432380171017099874886226861137462098013061461992349921192000298619038509715660107773291984887724149441170813543047753109704189683158619177533511891135769485493233748944305070461851050407022905747307682858821103053944754082161151382318779422252465425040962692098001703883446867784332242503233318274350288609717926971383949229536766969779646555292824467688994342941954246318333657292867374736782161300759915300386865337524295472285559917361483495266850766707204753070245839588154387920091026198599021996676367560039883875596854722853119247006895780948097740818325474150985207316354298315977966750737444222493827829395772011832556839378888309916558510535038310426559505182936774895734245712080524735332099477811525669640154230396821715538256676423364099574679412857071174711653061982577743515043764799915248682889103634161766009689924528628034305419647663033162080977056619709802239362338750146571333409435183939496582533949715406293525565668924347253384674115654026110483353384748403436225932263670058915002647012759869326586016922548528494622862938680407002042587915963060943249795139224294547858807402658916023776048783686047474835721724570572925001736605737452686142986422488641056701544925854224853596146666124960747247631728705814794836992581706553178689821371423487151151573831125826430397760791553465469883954912943720011854507618632528661119113435048492823265563903757440742659415527504430152138892375747246141034885907932548218030947230787997858800843126545647062624185445991884554144214545542220220697908757366919992385638550191496189989788838663699378287857324297980947800749460854195024322672585707787400107679111392474367782504183742159805577229799318498708626512867148632516009538345623280474746303908880817613108338523539438825851911146970466862743545716666018587412530458490263043149090166249188120485339618658797065325358949698086783865086203403900207339541870898723591311755030987586348005689780270247543609171281511153307663996083023989862316540088617276628889039839056200990711526484514689242703305638533236676160374855364370063222356427345130625175451683675506905244884402022811628619840431619829816335178819197707881346040839924358444598485301176582396480564713240610347591135413365598134831137448276407353800806053259541895312169672315444230125578026570492553667833417177947127443075044230382003793517975306394091869105881164180245897125417885647191374879793944774840322699442223477166618131025895665819741141724818908399524488057708098812899620787700010159612099401370662011925432096272781999548036942978940258147482903805416065705687704459833395694905884291260813015648130968835694424955003871720814960142770552444962128922997770939411309828257993580209648057252953181724438537433908883501976065236532902250054173862817746902307394573214975106444358453158420782940673690569922145452216426073180072984674182130164482082185665797625470921795819697684840447739201817982660558597563196891218855312756347846349867409451674625708707431395053312117761859426348710033748194332127399305663274909670045679416339995498316569437815524294316314936135851274924853229212990131959473895776329584025376332721508629623575625926474942076742844308774739409305246934559616743253497495495572765522267192650916467545355289888605275898678513628607609233413194457715029869139154283251965443898007458049145784781182961014293105323282604242553828468678084907055692811247239441085959764927950981572010773936781014902198824055232504367586522400811144983158818096902311141271480367521658417912149370359372528393967275109742255319529894559120428348780543374968805360020566674012953251052843462560577137628815344673649004444236938278388011140378917573050265396447360576604988244884375537088818453915447439647754897864788993202827359396948704041069666050915321697762607846367594161408943346354242473217995736255494491729803986493292813812345282564631320926280777975446526070387010990829454906696431741815954608739443334988980888967288142389233710869496631313328939540312515187310483342008278513648829130568959826837874031378249197237029177316135668429133974715758261496929005344196454807295619410465847058148998043212280259120409713245220687452615023967903515051063634377399773877418787040852274000233214799873330626984081558958469148906186590637121811285686089391203546953878627214581250360150252484087761505313541241631757072375373543280667711063322796361889302071324726072250733029294471709043681888288860848043838023907741211308914966311985630968566600900269697100249116585411648439763231497057428394961750639903270119619696792629406343531364330633112393368084980528669753759795397951950498832751008230216369966828046021422349887176861598631278377394669786389116547459197784263050703542183658590343731704596597990291576868883334234585350401667581230447005916574946586015605600794615971025747411425005649814863643230182096282776908348898862123540570629616296947540611293940520342919351771778619245963683864661677573101556885060789336538047758795436191643637242339351917219578492822700453155558667438643097782966495629015635840274072250492918595697004999982186403121912232738405985222167208184764999820419679104264371067332932436356491113130985280066436383744009267877267563461327677155566307475571824430569297738624205340934898873387760076114113325931068026416321580036045251116945105459361772284553993498998825630405530769236304359442382193418321657866251160516702343368186052196490845264131070945719768076448565757756327718782877070813320587699680241176020186864034450793972501729063147052064773971225370543895835542676961468128393326855837247836494818668520483876923613253091164375650298671234433126646805878111862656047550140239059563621608648249666690895692791887925232246923768271855575511709912161867778705275843087454039312421360200003361277915310394698805811683853658461390974116466250526886321034380205351860611406726348997061921173713487791831378145444497755091299189655003263043580767029326795967080150941076675260060678402531427935432622337522440092335564370760595437452017137221533283709884764619501019460497702502318638224501200287755391066758924843758542354898147091186027034801666578001184841892430015516098288206023904248199165336269476972221049973629275339762481935436199582728354285770235400972385724467384888647556802835798653853113518413064261342008200378365894928356746208147169435262468028031164721648302617378308197757477584232022922242686373783390649685723753690534603278101658142862147655337358187732827641163290877742699463099359525624145627957626674641345069916746039459365676643402367733819599549420977895521795568963588509098041963413669550829699567569193283471016718763150950838553895055941408368474008102696753832451695776170004535392064604276409452112785475964491858154470303334980119831835570099228761190044501169697211876247361002052105920310198037422918316002670224765260303102068665120649053453733023602767344568211431535885801343395777392372255888910053651212230134079026549264316278227289915390115868174398575475966598277130805978105108744769262669799529363182085951360684682053672258830683662141668352188821430774854837807337460565153221841927622274689981858103284092023285452257468016066507949268938871507236511297292920053086126354280532452720168973205175518799431251343888605233691442659561223567427667369097537657009793313990702586425693600031128603807719845132287997049180976013792908946280943380396593928076696181360476805537898399979629902445048675622726452169113318035894545072429295261750833508668698216584543185913299750308775942865189351037793678405217031497178764438474809118681483301070978854025935327536509015794420043193649998672800722426007761342981014285713430730195636369579698626257734189104873839818644765553910265330389915137915976827326059129879949684493820599344109496167779153975055888454889361514497724410811423071229534456331665601673589344899189120971680250467372763248593690309296790052933890040952270861167474482900412423735950049461269215336831905688574465674957479221017823285034166662609016634303505674496550947809332084273033454390684658396889195608046679535473657086220716659356669389963008643660580695869731045659871097453469909065493006759402247029182820249594782661383535239342725884944717504498356919145619926715608519991119644109683594905188030375023329381109706678839830550552775552654813272052314057433545501048132770623390550742794524484183360874744636579012300456233506491678929518185341648744056464466146632184433471251686642307672065484734761325676863067256979000225254709805278317891966628845449865613419089868978788081512525670831753713295589413068275794914213579221146981389209758110988247448337271494686451477212223268022289699653122834952252056127247022335778675771040677187991752304469515276956092892946974308575590978650273634788105465832346945402551041227171922175825325978964312241321464073788423783491182175099219872456483250946518091846877304770547372431214578817281668693496508646565672117260804977180855571034201896734501697043061660873425031411423152501330085349227011015441179086963876338384875217719994347709578859747426466719309148457402874140601437273632422193318506513800214943524499023602169702489239051304585062698663847841319188165402085866087138847945006092102788173846967665344492605944852435831883357574586207791921883421146559231620387938002652645207023842470246044748165994773939864271360430101549153527698695224710416547294217082870122904282166453247092752440867467402277675553989049671115951492062935423638126980743683466665488200652717198955344491848549527731350883006767699193978227965895704643534336094157955676925844996056862685735689752234715661191337783548629293075945140103369217642702887092531464760720427962658355844268255874903098264382853549096223110802731816792569171625043075047895603290456306549846251037543837739678267763446960587021109601150478350390780295218720871230125958647993224756790824569466365517574012204856322339529477752586271016902861046715639292434677958754254956900165479215452304707081593490212519471504602275945775846265043111679455399478707887506732761628527340973211172839987034653692982034465879477347596023441460198373985901121760546346368784091451825245037967941841651528216457688172760168085269429250308740510959756507709393119123119888794964575048677941258361574854241487031547942550286731257883749055604323718249003414778493856852171487963394948144454233050479874634538472440555579080929348152400541592315548325623317704356557016289977296439390811717763939385298335578740666779970791225665663771588482658799085709095485927153469480172710240968018020549132848531060111931184022263799243766937863337519368124170696243507117806032205877159806187125548997943926502499223397885572180442550651915798742942349201102900652678799215858690473750575477697563621724592209380122796441293804973760546971869521851136929410800546278346816275252323834152598738922529866958194822838121331294970430178007490434311822217275507122108417521255816563128918209590788113312474009758737717729754256591021585922387414441696191921618373007873132704313166095223561479973956081638903517160613839796701233260932631231327126853292432600535372717402928059915463684993553163421512483194267952383104047004027358831238193316291560921474092283831799487669520758117166634925024065866042940439307234270205398018187006556058914519740072355774103035270844232613235052151127701949689406460481586802093087156063763934365023173534631638064540936707102930857778399517853178433759936485749506849287912990164907831323182773430596360563807577284622228952304568804105036315062332912982472510608837225638857258694204397535871194460694112963640179225619666044086838508902216571828296635398871751565429787615763522676025109990406586237149707701974123796257630877955323698536944236320005854283839289940626261054878120244893740839484698481485614808909593540802368576299550445262095638538771391101294378178518557260727637627373393483095467020357486713688303796847569067403090906813065246535254297558744356546236488865927954261935327427540194917469826364674798191056920830181406122789474953074119184337469739716798645925532860890938754294591521495456825159988284026752420829977140241136840582374840886887495975102282524588328050171284751307304609002948063294667854438811805407862438129293265164383860908003683475599079344632920864700332372305198963593789639208581533014008795843240898621467274193047646894701088056549949268995375663413872840387846393269839534058975787119668931103917874731033099878188824419917251177326738618673046539679250437624592255476898505179157735259318241852594289987129053214333459417397450223001519587574491371054457257797663990621589658999002967828661916505382877946567609636189344458626958354902222829204203957259139040077892645868457441702644074523610965177772489283194351447321611257104691998107926124075263980352519116266038120098042747474969506006075544902581437793723433045719490493223265483553714879024432077481862320810803822469597244215457542917397734218145922581003759648155357380685723675800664491464588089406198804276623040991185607142036355965784758574061552487660341190929286073713356571302591472982664335751841209787172408178409889161613154901931942175270684435833348559450197501572239510550459545261579495073547049150459758504676839814077553037943920903268178962150367061878204886982534879680385808135703424893371287608734775110348985241465530245021662880323199977160796374705198190143996541581108716894565924652636127565627360238964926115508149383598752062269523793282818020311071513355619730964734485700229813754065741655890473063438832126432755930936799846173527331956774387797827745058619143390725152566705925379124258466655709315858677160198213537023767600883034430108588481328790516598446466679449747124488234870488579740558047618870120246084712888061502754439485009931795250494510563951892102033428269660834514530435487128689439995628637354787467925551548473933522589361866985181489999658093512114871283731337587634913349765141768054381285560726494623579861303344121338253265442434818987061821734783718834969933171923458354364205380226708886679499001763474655348956038575796505591233377010115286606134831688304524635459913142376714481539372599084749944888487603676273043084903902795309711015226900954361885798055374157895465177266805439910220139616185476756986916384611484683713975930427317335187158501092278366100243217219894286367947949971999597506649662507625064007457782041842774597737106552533767185367788015655389598387903884154076443015777905781051522458790418910029967776499485651530035692504036069766646132917657433556217304726589904392247962431529141818753786855352085640306876039594626837295376504770013531781404835259327701372159731919230507185214622224872524376769995871056444641252410861493397168180564507591958975403227916723249588578045637379653623210773817082695222518287464369374771096895149944742353404256060678307195610878840829772032841661387396084895478566766953160179673258019585419328509693622857414069464539953154796880392368017967362285922614749301077077919693030293672292529005190202587677836433637667083844350454614779664226010751076140020856417532769172143225759735578137293642730075950267913688551984906960233138742442865683997151086301813395447334349018918103213987294533378853113355211703497368657441582907782191514720850858322727097031843448838062402205731020932180764494940802930429133140280073624043472423643349239304903733305161407338457737271202698455199176035111178320036402099589113614831619708796252493110833105541558306538699391366396510633415259190477766137272649703168322155668594181008158705376991394182488371030531529853794747401850220202941764437155208823434061567702197179105902979256397820193980047673206418651964077400737521240651787005712752184084670295594754678704810396300908484341093544797941632143565375474536410117716000625918403275220198619789721491013119268585866721506839037652760774455141950319650865279395998850135359755590806413998649560159013103182438509365031536940335272197748320595895813001271574956417692364755011052485782306595350511101751829405799212830784753298061367119621409778135142203767441270588733742183062541399641865698600186593068424474439005471860486139718887824400478001114180658954656180434327908701336218320653905544167863416308220278601678021784697149276716574097450486141574253215060720106527984852588670564660190224811953122105325757261855158039156671948469372305592063043788617958905052665092126223742449136215434290702669227881903615609496036997260951823099256933918535666249169317038937063593586542675963897421144970036753311317602252485806026858170583602535496370817632154047577865100771228846571330266258696807149707975992041572260033655431897978557252584853292077191347586532721509374105716155476804887263311937266673440948713395288253322168147822365975692908779764227002345887725071110571274600000760767504256894058253554100179562221130562286565684887290211115848870833771101885851037371076491593739292523996797713402421736802620106463728556361079825692416825556227408693566381849786014642241572556424650538873825616116404323634078902891294257706722150313946277608935927163285071470275038926236308407380599917408278905848127300070184355417789249248972443302742648872946030215549307992981323640522017651837092237513306989352983159531953784161073654624816145681741168721030258277509062312852513315831231984176400070308514798613088135371270727409269637708203012663396969355835499953689886031590146728862933510978031586397308960714979885463193160664172936671715227506090849524496724246872344943774398690130060157288809829126933540346403932427984483956009942628153031405634131022588388313956024499642804371639019979914797745548113983298109234018347273585251849150675635806704664595847406804662069878822189527557036057680043871341291833902111686552347372116023986535624374428058564594815201149859525483500516553052920625303567458158027336783951305473355343029442343131802733414083167376660553281241885808997697890515075522178958898146557523617292305706747139715173143314161537375883504320694740471169059299311312926170934354205077453004047886098187303752188922790643763939930610326225674946711533588218037409149222814976165167033025056010276572534786378611270552142688924091687090325185883371533878086442486705804555207499805756084351633660543822921023505757805351729519839757075994279000773162426742878548900708911964977317279605862022870413651537748102835543104887003706586624411878576277298175478072636222897103264629570627806506527107061076302551553927413604735474123813079490044998646745662162378550885524792526858222996980704351870714586734299190259551799783629536173122559975652913944067344629576439643209792351653820760935189717018278097172634809190131038912900435634845130334602491411186516015548838428698053143482363490567029491711745661898643465430692184405110228831918989669678616380313611529383331598669926435872277578439571800601738968891688416929174821726851298850966547220029983797667850606196189161694430232382204582950151220017785871429384937211497475427666416625736304857344716177058844839948235802309398741567101020580803250992356013240531800940505697634921933953901763173186257699883551495611211804586782843324983004860697952316661757409453709483910841703617113487181346009059783810521427484894993012456329757642208843510037860813124618939180428775278550872798108175523152815250804037827776879872578942414877807091086789483610096034010847652051746639440347418744228909370562396798118102617120679483613148074359009982087987745583729166643699813124466343600506232370373927310766163820336516951472023979385407750219218532178338967954067137955991669977578292649500958010717530112682616792187410919247507696681925252303710105073402518401502539787134548831346679668802750340670326101829605083985871158136209219536975840329768749013947561301775165215739395886407336604961901527133413328639961098239421092712042820131158725367256490563891789963898429314776700021301549733345198336073147790299232357642539444645890348186296740792021934872491587425907386771492954113145601347148794826455653273179728578114362122888422614991616682863126643816771497676051787851739943965861951039596392797285985668387027755303709551434723517063752085629316612433176001795679064456537273791162358043196722033741586064394885441521361687361045392605693244548834692460619036959025251821554078900573313084637038791707367698839267835092573994548159250276083460828889740792059005898357297331216666234450730063651407618155380755609158314807496780384293955818074753440386308780835707867277656738567021026082073610993473992696496590073983275382674218785533883084218974697081309073630329175275026719818903945259993270160852568306624578949817011024800411048434587025791009420757815155788429470714680870228360236745876874731238179938516412750589929746692104464884428384135366242233959124472746561134119573072659755077109030848715878696924040383717475915199152472156970276703540124061500366319277330112962935732636984927710997598647457057148176808732486574514340339231061873000261020251697552501052165696959240324711600723297838873073362054390818022094020701544202839076903508145496838783292294098002027645432290027217428684764044243191449298068096343782337260739422554144372208025470989362949013624090329743976643566495223702650361753588041894969882328056765585411872373662195814727854572602242895713834810135757577119907264483896347515228359813285661214230497129288843603066282878242393062980878446414793296581267614007089639532599186276511560494104606251716694720161589054174653648185144022285188438813122860821029291096375459677068306083238444755109055563243602116442597136052200660137979770500301154256504208371627966296041297445649820041583433898989035698936053094057162314233706260583164356012800972303656137655689016596937953363683479573196911791654172558087870786239245246575180045867020924070241272804372559951089067924468893566948273905050804780943563491685339449253384266873948322104038196502035668757325524981390303704738698433824087567712867936039783513291979502180829265286569672223202335031154086615862642243987811981720293749975595174618610326354754804513894152566001701315945369999480233858342645307812193263523359546697873808962368291691551331587508299676552833771550282380955199576720518726767477390050635832851402957800614317510873267892650073514518036333324973977137859569684573787860621048437600780093459773298008979217767622034571200963490874771102691185863672565851018770386074035415888933162233285633257157231000783811861211459312865508814603596822696304677818637173979281594229522355415985503893180273532340026962570913878075583683691131558007432033509713651583024031873026776375673865090379225006312319551357446775975059958056251731352079764620477456279559901425378067693152132160855085201008679065436421295520442710556870577209185508419354580584499730310206489077313672546296194253445128200674252560783314789632337989978866925783388473832166360912933905774912549421048285838356746452064632527178239476300574889526422802124469660110734199354739621520804521699042211823140892571134532139603568294999496190836573141031399258120331078467336190098525195357326968211886514979464596741660367927023739207873660570982547030713545267853462870559412767457388409489046137858151478541749696265323071028867828186871377774625316429379954907186372264718516112038656723686689010239140360332137214044119435748632536207638561424823488329739300508862459963864744107002583876590582544102561897839992168297394138890394036643357829920415508792178824142784808005861487473584633592765075813347738293596165406431713123158532102932647526404526850050224929294743797611378857537737486069802655296621030664420682946561034093263283552449334290299634413005275182031951303306045008526344569220037510609646882086708917688267416960799374977725844255684137101879680222924429334209803407775901281563624790656212196942993606570583589012544155005560556909757485143963659162052668145591707809222390101678911697252667634753802032489601786056063821131271900170546401694908608242268353942778257539620760250696074452765743365842128800690130344267542187518203631975052371789524190622028700715300896630869518616648006713068167687903256472185168851449749075498646839276721817152202645616208912293169897883887557430035600887291579022303220952246518845459754431425917697227474180190398539586054074409131899634041425460686348443295072409526425259923449834455398490655046317165629542629230095694920381279177517927247563978363312013089175816215551557956251882621476237131069710921993407214094396685054347874729814530363050636941456779634046502805395320288672593409785673795532445945307841649573746237761424921293722929482015344814082029729935881148598814329014715204444678985521007630326557530684570602569249187294163123065026838522768457764085250773927028825919395573234812747902967193924202929911554345837433460499536811071078487129580033666490649796221774854650376038187872425088026017688552685801928750965524487045067881942910342840058006809100923900479968841434700583111649361014527645366955198772520738591014273760136964621505198574453175484410916455063708220509449461553131261175175748559179828164615038005732426679046255627256614703790950712241902351511973685098691989126657351789927856678809721303883676282584672324599321231718425506393779883979878399798267249219067824825906226095096275234730951674591255149392101101276967930129839353910247073265264605421732688191102455913672955255082208459384245812192822984677528882074856884201434997838809807004953989764285599486372040000286538640787452731704572363163847120296685092780217097315894685623334594450825124938802647086520732912276898210608445399752547750842159582669952322129271147153432900783357518893030848250437911209665270788548781609688500064372197942082377115975639003846126572681690122453208853293346315484768974537328172686117426764400909871826087805535672810978386365881140444724665569062233737634131220115881224054044257839095710042516370121790433744397431565728391222683708307499109415281087349827541101928785635850088931530419298269510316967614742110398957749388446225290066623137340499199377506982127589330993705565787445654839658936026936443394108241788959697310438954574060900120995097841974183499818501985131582727139560569787379236685931606387207536611107359796018160145103726312507558855588847508977413982583107379713443897446516286870724902907811829118858363612902499239085970225984008297996995630185460976425227498200895882921039919865730834383994904222330404527513474630661667082718407588602369481221959377794175854548771979459660213575982335964584705274019121065480985028276720264235724967112909930060463766895504316131262578991401309054864397673059914466840755073255398780394908300115445864682935046449221947003043938744095425916031898093268823560161060829253077934125361043657288635339885651228411494819979660969856381210410741029345848449478838769203965225051093111056211438626812769715357271365725488917624202551462066100337571262698235018171294172587049572598691558484539505263015119595103781101852405673270861064608563463970493313818393244457490896842620413137419963484611616695203168514988034008128113307096244028204493591777775091813726216732920809596111272306158883992489446817215143810806192659568834937986135516788950934528797544663652386300140682065318004945002292600342923763515245642846250359165686731210078923173353492339708082496826998514951314354672270136726813163817997259110312709436624991292843985291751051890256652793431998859069984992137063108000181161881061231710298596758639381059404043616569415101768128389935253858283789647043174508172024691345459022210225652963991764423648845350250818471451380729475810309753555710133267421690957221044589925278673834283578554093256381700973793574836166376944681765795487021622772779011930509551337067359106745123394652162797249502204284829369234037135054138949859963429061580008060450753138528195637090557020565259036553716466313277119967893184655170704844553711153958356116927033571265898136595476701517707372808385351893734632133276292421281125811081746953531261910645839588533402060737670442566960861525441173600735200605309646082204568331009117862557943984811012502189700483955238811099772995278524308791424947394407552262959691245543489733809134455210944908395094393050397870403797839696753199617788833836329464203532231329051303109104876304452145161374850121188155312084851565973431936027357840897187127130228892606429356885709572964516709792394886557402592119033424596401208893500268588592723843553596955649421222594102176126886071882353354174216965501900753697017336151888367976056626613568305395486233951116775039259441793697618711513429039292062675546139646662716962863723973770091488339932356668557868964863509395167000593079126823646712748478629751620637239114061422837538147360127801433553251902831214976112225536726493385487438081815160339107797984954145161170142032359152576230606898145512741593426079878766369557965324585411717947172458375854241036905622246605367756607485146867371385671396899762638023657024449614249974464009093991425978552603056267814777535851837231170619880720669975722150611109604271570113442126066765635841657527900274251739317325145800679334533884371579751584577063229662196019680800089543838285379607613077901835575777448291658427139412189707888727293412997766935166322413533278975196494818917961830051949777921703549144634041976832717938201331080967848960409268204051963446677545690472857162828490950221761442856499147775827161959833845697990677430557993296989130273227624329857417933223645207510183978214306455319247003091193708038737153915214263280698004242672787072991950357434529916578368472172057748106419542467316464910958059054224120972392653398486821796308819805749331043301866557727684957947528734247392251056178240008216776940745350813580797043293285375862106344055733412260315070914883861370754256424315999930404098537385514794157709960865479712987837051807870884257774445617992361062503844334301967694502745561704798872185325399771522078387414846058082311183744927474209483739168186212121106113840472904114907823302643697085342915393806044723177686696359987351079869502038143713828997979393660674158949902633980408783672874897143305530815366540134492184491464108733995631720474430418857924042105489465307308826371397655761049704550704302209086202097164416128571549429753972635185091288112501438833035663244968899226159212995483165117865369194845732516375552233289830086504320609016022100146646164681653780866387126031262078498526672083295255353089093461741942260471832474825663421606298740966108655404476628349795802304415547575819642693356876077643445627109230512919835987345965780059691778544371055918805503908559881059451326157949300784588011630224755208277747309157843205655457652143960788488402873314121154392628236229904038567400826425496965580108247293995391496422519053401898649274033069582219920223553608182016914377341106688140940256226397425971828201763397069870945473608990951269237672244593813762974027802923073928067174223321475516806521980021157161901831341581593077921438724280323689888908230704201179139865740286981065632223561677687800594911676265852493220963524896005846508003089113777063404183978089342025082199324838097134326929468167297150211930684927719074479724124382777507658922540320077556380999593422919529222235795069845867830795760629340187859577120109531797210708264595130858705917161736975440071458390319476855464925318873854828977881247921291159268697661844109860392897529842953288393457632025708601691601845205405899457367391476233113605071145923561676041395726143346414758038643328743853290014992992340584164120425501056393114610503175749355368600462901554167730005126424728408097996693191884345656624771352785725412740528503734220132728787164633063024913884210549838313380657252196375581486327583283862463416814612874488474171252728875670383815843432909724450263329662020227078649771780906145793606170258239917716269407869843691444989256520264606862830547403553077411756185242925598139972662225439088404820856452595486403463204667153479898870227996953886887572201438233036861159481693331706069887575881261896651558371184008427180420837580034880058466592503621682226669625176664830595676620893932242059345617305094344476315983868598576433538250206888472040151174296020430959113129248789877286542040738921676045475660947563191537851818735438699012682156604135300880675029186531824430778987511844513897667585491637707075594838211129471873259474653768306022641995119339950492237038992895510421332500978210650286001709756074126738013760786403918479716984071585396051142853479279873690845538157966657517473467472518363733201471364618362192974387036523863632120415607589001126534767982099648357155646265251095831372565876657335616412208035042965506023401032752874095586845019066090932405172601587362351282504462328287466876357912009380673850592640174039284907447497329142312505277311787446634399177301511747500035703034458840588323186703200560826444463964856307596927347066511077572418175308412191771616140471584432460666593519298784356985452055112823016379097061306100848307987828593005728361171035535455321367048600429574724650137050513881554219052933550908332957993964338736849651966108595977071883731653960287509975862179738668125440491092340403269299647063544258968651772548746935922466382608723938553575854094312831729434277551047700410575386648183573655779213006908049166172506951224789018412804825062450877136789529516662229571900880595379778375657423559374322833686041707194797982860089120356383638561633558228258955399925364804185492473102399832080277872528187515720071353087919875642120452991613626643155027825106672924494392331916463664595483427877573017038501242585116392464649345426750934611986747891058274742500340811874564818728308117626555239008605664223905544920623946341429871739938465967211965850453468435072079179034838155292861989808707813356969434062474085907263193808396580046678361748487744679768566006143315304261148440293177502057933117802318444030201237111774224673888782949599034965035167177481743775904443958249596844653049668280027998493750538362101581864431910478808927001036548036805859286560913531243149599904167792261530435716351181542175537283273062177635065166355636575324933156403358278242213341436251354088786430864987893210786024226824089918388451761025136409235438120211008502088929870394503973005058658753301085060604943504826897601009071881851858629717486518555988399297112128344175113914934568635499558610271147127463890306310220729298153072672291849378179433097541013105870042628376898549716386752142428422628374772227940698067667028448421626492683204572595127787465860488665895172210181998411093025369569170391745641588391890316493775447658233933698914274252811163962953085547710079010065480400872555307776927739250692159521236979681764743172299247472843287425527665835578614666308613362484682510344910109406243963838055632013891057434953081748693859237288887550928630223965591995097168510410876393805009797513792330848974565826593472407033462713883284203135855876071226256449752975118599668376264955692417492346458053399206229373240856172770873355469794375880937925015749944752232457886577403886775029742292167603380517808138750425865769459533542458773760258837155096505212806589672703995147859296560595760754191632853836249915068871720649912755803087686968304465852187855346459031200523380992411530401114068160379522544210650768295333060817741431970633761837860741746169896262472000406850382469361363676812595962604979629060709520446453587101662232777027381346322936337786139778061837579184098857024998881814854981912256667780395635772931000066590339544241395255846276167237737881151800975384247061672845408195703299426577430594248186601759045209692835278034741713918455011922769644008906860017249484524797612051030234873905880883901590927425569733286363620663733977547239977583005779473720894927164353822435478940240456443444345748248531476710607759642615211696556691408517076432700030899762276802696510988446516788717358434199779652774515299146247705843704140921174276642198964493522352615549648092287049651188739958696130942099741595864414753803201159889152835658492628581265059024927088399322885669013411377698827512734967044554646433952094675639657450868393236024184102807333602403051724840325018962018003572662719382892042033524162658949909333539306225985886789764880546064079516962554208831564377442899526861453087496949900920034185567092945823715570784371177507187035799978817225919407663824091132504499374108737618685787702137512846136127105470254068266015311104542825113627408011001489662390427063732069442362154853869360920452552281075418296692525608242518273673147131550772298591418913230834698810448840729552416434753998982536607095222309932579291484620129447540317875511819799531444558566863627751565992620429665961350731058696889519585681896928853324217961061695237208667114090055876819179960248503413381111528472733602780725638299304393345265131011355844028308353360231097105807668804574788059957676024603393428501503886024951585351013216997551131897574124838970567674126965711916547302359611747421241860950275866078811217513220136084757623475994424843284363511782302615819621989441946407771142526084915824583567283458562158648287046819075123386239138574817309213856414880264963712689054104316472588345854763776492497953903276676768308800431457126189836208815299727757766200981402581305056219193968162260115230290351001099316096911336611355852411025894767968950305408388857749734890214282855574477593538593260398987765197872079368616548395396627339904730401289653593328035334744658995199415624867632301608768015952309866896604586149993903135713773013167907875904354192933651705865638315846865177160211914404762166035064298187938029528188571042081699737890740731766339155646858911506671299002165087366646862270352870880961131712054451737884525197171513838506467188523410221261120126767404674885929118975854178146023457265003313727232055160955402876757993155618253042125754284830594179892975100531943372166922976495232124053709893178081678930728477824621034681425647642088297211719653163020409865923175498991149983310161997847068506892191153286901980822459867818102553357826466170761163919106571591824603020458743799057553050271097994099259227968028633410323865257461702548919797865472616006193957366620043094846495138902161829689930348702184099156307004497739107708575362221567862501044290890850306019057110198073552232632418317381068237444386191248842076313815340443070365157396849600295280363967787538250391807320124614871409419911583333677733818003418726982976807108754362197386591263615809153023691716219144449848560420539615008402177446674236040180031169600507233692078068320549492768102726637841228235540892031367469548775952872670926537285563938506845442145643619917526745105906158699712780618940318997413705100732605102434978610484210351440257337563401605180190950242093734620114351295223158448842378853473955359413792590192604370663412176206542065612963307462429292061236463585983132543960441580693497607204068178346430268291805708244763363769610795898002273754435620560960318411105133772883020230727176339783534416338770332427262512923188138105246478759916133933373008956791746142936119728304026491724082756209792884920822418178619592710519741275679679528021510981306215586128710778021903064390604211528439861831138749354027907361671069475165029386032070596942795311668908297667795778904724438709212706317072121203608952998172445236389938234547350981578043383052090134194641691189762951943991813011870263379086516214059118615605881792851299813725826463943141732941927538523830191425862692783674628088831650997726688520100410918557899102168750770254840288135316277804556105397323265844784110373023858100417287439118556696682227116014616617823508098545556125670911228509111339977474205493334388912744980844742433765606934110194736129779402283531707599180197953735122993832437366630673482584472582476987016403044304478036823358254381127080478762956071141372272309108720792844418589707898568603026054209469419727759860215212155836456797023251603426431503388763115572844019809331026674272038667798921925436599777178476804233373610449768930018780474342859466831948856240468982076422253113324440212322843489582656403309973069170611270462038764251636082843510798248946772172545211924523393985818516060244697465695894862970897510763622352327208392386484984540019166573862949518521011947174932488004051409431437008130389207957071857041430196295138818677496096484782499987726542833406884381312553597557850132592002897587176822750492142843215617784136627534453712979912215303787953410006051072766792676427651210285557128969072611222077892176811091196504568055864659244835947585158512512685444541578580907036973100847274735102235014879447347057045511257527750294442160623960614124050664181897649779105756308658207258091190916400577294923533793885628027795058297868286230384661033222208578769829938029419222526214704292878307803444693205910440124015286129191219874700755196229735058118953429917010447686571610428093810999430277456280871593180471016388537549659330857052589085704423504474268687133220055112065776813335582273504415360059719350408561564121010888194395531369079328905338972356961724574410514662882551151319944864437603714958448280204054644810631605846794822048310060654749418298903459892237615027793885570475376427383778172767131345146018142553424582506451119699484920024048631499847675040337371222806758167170955466456011803859799683801795515562322985414688674158967560854626688294375997360618841623466105799406588459200476299735747578103225191023656507332623165005417383968421784876680245365620465551727659055886844409219510994354548350179430545812859360914984997862316688700975042291314428448725167301629064310844806695476648996235434494221380668799875264294200045136593979527761814611312062571232458488169890901081678499230947255887927220393258024509655345462188776038484123028795075211067219913760044560147944558757626336106776592238492857991365741381795599135859376087183756198321872709806250755498638065128993037997970379058803413843733479670115984224922381146902602069576414686818080819783255017056559111517198360684244760575518102048495524985385517145182272650826205086694595056521342989029503215041980849338109642930791474798630546691202307778923328008087375870806662318203787429781039383501073505188521225420473599411122664667918121096517612019444014415869994319602708049030258987073332516550710657845940482940602178497092111461097054293188297557809740967609336606058448864281049002577949434710055781470222403590761521539418003632162863764065184039323001233376400044015120447293647358326444204819632208458629823718824804997458898797427711783211300354743701636041074187061787135617185643285326180840526574656042063964316416803707910300275295961009001003635209842100654904444976915624068609549478433105141843219474477468099151092792894488619444513078923009368630080343038256385169819634960467954817818493177524963615573621589206596006678867616235585181033605696553178766717342484402281139633619215001751087903988013643702539390844436194723661171167011453863437030037312036229388170154142093491129793137039960416517078444836466123990515854033412569768143619201274020339665243866600867503488076181866514962376696805416346601652911809639480555275704220783279343513283473620342311902047581203952994106686079827088683252712995958845723239277547094303406194514323885364051406141156164751083140272892636586443407333347083082386792632974352616683577015372381296339903185078080772698373790798333028977334031121342842756619763882926665482270579821580718918154022430479112702181006295696390316866482103983545223310660951674735352052275300106481902686687778769479802988359953421302876501569172326890617187399857047582971608116887590562652833056153300436455714375634235638208800290733824361169310456133600399624023554301630783861785595017198792026938247176766207522278162983648356998980272588895019585532629372008023220057446131847666303179259458007303625990240076264613723180620757063979123162380129956862408483047641944032509639631620744877022402743841373891702473339896819980389646139548028925477157520246073284505427250686937151606176304073454617843606323243504401006837043506028072307590619410872537095781816757434682556387427734531778690469129665067375247440446705083988796829176130296355699777783428921344726773461997074882558724433508218305847656945599001353279304481740916846797744314713706881597566142800393591501708809297836150206249068000040646136344967431768489694608186000451781164385262653057745101272109585897766801209339689565885735069596281136364681164960533654625803252477221267210571443363495433208271253434772925200960207963755893711948864006898167318454335792382836834437410792803356346097923339457222490669367576875174197209741451990070504335821202306725518744208704751136416948258000170187933022363847189939497820943616977191639813133034218848317241970594879355649268573267366271842614052877350797148510082258260536704919744851541768801848154190520037113617143502119939696650311610446112876222486400386119810402498485126239856505497485438380130599559816054489483400562616602648101341599388040647669752743762024794633962775030461127726826777381992780534222267770851038797940705302774147402538571780328217383511649182958398093385931270184780435061226320495983538127481380732816256222902473677786703933788742323535646876465607783168889109330720937759280342242404334250750358037685903638807479108546337785337853544612951293955563430444033198536369608115815267555938853014808513370327824710069821893251622538105164416260634408072532962377309599466683978344249127641908333519234770003714400303412006200712135633695856872705505470026924506143252162784013633929516542891398194003257179671150237708211924897867178275141528957800682805476761709371787650452039246658794012645782434365686194669354364903426897443859921829887110426442448800766215824500347473933298417140553604071061560368853154834300324974213070445623060015418085451128727219038083793567720314749586677448086442035976090656604856294678854859640900640561281310949594955235060127309892424978749838106630323892868802427707544562381218800240119067258042131041393981675342644217976832607575972077929770977305100737215895745463775728303962587313632459007051557522067593874990730527749457228562533250407926069909703870796481201458419983977483734854811017310859729329957747165940430652345620382797155770706057432715516629549428521479357295688261259459170519189819758656860443442187686320132150359014280997411271485857811980469721203242935443792010279552990009158789505492293963688552168353436717706111516997538387629098404668140918502601936394644998215325303134374646024118836580783611107178474871197405326523019505173023769509392202175788028528804997451699246516000401343221520010868568104383880249210411369931224888375234072715770518180503482877871228392915606036172265257583669249264305824202993669057071241751517461860990985841983376904233758410897943231542729643363134454185014136570784248011989658837126410952969592755314424377539900384596042925545858992198847238258236193953521036189788819265099694050423074707905165060481232754878300558762620026806845182222483723800748600047898358626480774996802698251028249651966489446482231861925876803829375034117526892584965315106316647289035877925248892830326979937327902415198137215936694248516406936301974219916860235317278895584083194897138356485488285841764613807661636062952848870037074368841801510169054188775544010158692578309569306127821540773636173340496166175608136759381048094639877188380325594130415946211153292392766521245168438946264705921643218137996606023373855557420058289365816387624999185719140354677246098364697297697806567448553830735920341788039584927434400200503003082457073481958514334531636257918888521562375428485730319496370024171169855998410954358350545718277958675841274916951603158085506235214003850732518164783583369817013722166705337657008675733240207453520429582409182634382259373991014839481032124074593445353537566071570800066321110748636027883554705847379948233371794971618959993430325457838605243748521660101658523626124541868203679549193558965550093308336296319459172978906378874033207241003862227894852183463054333918101671382106887974775053231475994264862823782388097684991120178428291350830316300754030792906415450881916387777584656923433901060405441033503100211252396083504154017228252135363392952970654090093763449127658013038908711236126699529178277343270615106140089604220512742938451518075722310370918775715063072927457425423829118798732860453071796487136481837032238468489421704545510189630409047407667585854971469553700615730634762918079169847055308362616122949864527706758830605833411808571474122680784313592277638734530899421916012440436807517248870983820273372943433272223058418582347945184182565840315896440399912904342187898160137509440242397615245626092139962301895522851720854966315954857128454449203097817620753796601973349533431619230048301438531932642471317580470551114929755913127305316586726153137047614759101086612310306546337047890390320035045952057009017790538613324480147297319360425053607932085763939022588519388599095455549485054443232256201122481847383615131615326768526007465174044331665815000040606845482289047002853717308076721703940728266734260079015935884366527971715454028943979169757822580552697831638070644065441504861504754289458663899922078891774196722315477840832346030557413639453952301949176421793593158737894340714929845468612653399408995569457102005759478251303850907259148285277981101972660055323817922551327819015151388642353236927091989229234787228502769201611485453515417601538204322691483736120366298395026926064296906271720779011179718468782682524045455628340763964842106804527255514198381523531350840504769811893827620034532191431649030281610635243936254010824092612113414625793717414354424627838815362885713671439775295682511972488422753804220612599713986970903070102574016464430055950920376818244955817758797943631246471728527810965668120305291411549871975388578169424260344417722635559624142895051825958667577517480693731576694236299575588030731950701409603390741326677743767138823419598211673138948252522988575188581024158962778582928668647574809824588565642104777715770950608968730861313552260774546984100497794764775321804648277842957417524002616352927996113256168668860752062607894968997751292867445847882537035443841733342660865048577068113266726064445388712446767151269999765979184804497404212156937281646254244239565586808693253252208133960371878576062030040539359761141262338030257977321559597676226381495903625891568730185113672024366486337625908582182266267735751209632513855687653612033662382648765795991304234068507550242346159129732641901753911795044018680466878025105385597293783033837235159345372853794308819670288064211149773678631364444931672661969262653380449317584204616087626292780143066175350141166099316573195972166234691904283656734315997750901721708372700397141505736677086367057014125414754017750746401590823373847212850008512236741008021120923109354544991515646116121445291420987894637288328398963376044865344275824278947208652417538825621437571701922654955423619552857576691956072920689771092541670718232952230038153238062381973333189121412112475612696713130308949533752049922506702511934941002194652388484775511276610600908022738592799884148103140542441993581071577763043928530470252029245107441491866654190866227491419785181976416155492558495805188790701684505585063463675445418804422403031282634983506887815661577428814795107751362027888193494832625538627586391281562871000556259134903456662559086795270069289441796778614616464610594332538950918132535605638494047680861088498905663710181420762314505314384418174470699002275831759748605124513270455819337472082328045020400429999852904518466287445404866117018932288927956643718058131823321411551726544018505006025190141882744250513751981771261587156936917676797535333665031010080010994987792186411299155457649860496189426728891634025427729563380232143125972327446628682639405574937505108176283532118208374703252754147801782723714825916579338821200299758414067100361691912166692916561395637660948385023961811724125900440025560485046344260784527192986560033416495784648232862572118675123279497155889833612215131558561405157153971606034493736225668375662574739247637938560323069359336083938896772400134710320042734845597019603313670358940644829501192738286358381084376056065914345334495501767238817347723067682235937641455468021427466188123478950545797095643429265111044918400722454506548290204312332480952566926033480851473208382638794072507794870381238168220394404535993262617321791436221228021431581826404178742888150734413906264752950838829586484314909194055217958224386158449285562802791403730442601019903762519780265896351241478368545122814110316065764176897439738832624940024601691222819159647669207882019016845748528898879413954718548436643039634722006450237699014348110286503588849948483425360247381729888517808540913214380085774875695776600077866215939571976318236808352984230437344972934631439193205784776543818101821466105546449946635440440537906032976628260896358445254049269934796082694487712634947374087518368834115121909418656474212064845736653486384499426096299339858904457160371275669178215785262363647513511986217126883067091688940483398819782715985619805107193691837034751313894534372644189525511298735623087970037547339764881094914260433045057875368022668209047199686843987703781664216141770506712474202118100485924155014980929130397106843458951177703400617503190654475685937180373822958095939971774513656176221176117826652168930926508476493502370573938936175895578059613764628313088906342656526668689354158819173060075729091203376751022370284541010850166015143935975036358771310400864485821237037265963044261456584404412310405952861897439016080304629458746537518049287353079832108643586673749375506686783183788094465374702946280184142509259632310599167062069081690503973747677626829350107052137184624817401620318861115144396895712386674709735922088261004245849631406537507918412360966195847921287869820587809599224375566233511754967369739931921755439165150499316811955205368956444833776450901774288913949518435118747319399839827298469796515252710722899430158631172498503773626593395501472589252257647016792693894731855651300916730252897908692354189334342912203261473705238732059885263148741515161349232574888716897015065991088756326920777146407051397911598273958595299028983779346009037559933543918539863067553527245950529602002679300262955810784655639455210803631587697089766356228735969279857040675301579466685948509734569172153752879490988309733568465576008399998077314943017304091187325984823336619890024181299797134597580216212626208853959695506296485471464743774833740554813738762671920687643951915604622652774440268208334832562210219671625169006258676394401363000901506516879546376127282161538384661586196139925721852643750276783882378643328525922930399132195464140345939726283054548442456668055729969165211720182653427437739555648201999334071984872106945359239112909968874853303490264231926612271809423953985692384737488252305569215747550534571675795040149008044696264470821019494304029827768646699896045460986822405760269363124536439819316902703071747224870980128451636749743564808046439451809053518924391950198716293014452849761892485274527553818181938575541985842926587784831358516664456791147375442463113857481160101085527513911002311859386017836551185347336240840621208307924446926545494273743106075134157680389272011873248329342356091419162186655932244654256544589860510029143773820258423541988329157958261079530846947367863457411045510003412994944191445554996215895186520202932387861422830280858077370287936188356005695372086356613542909966950597827398324723500738078781883107737023621694310007167219434263972358398529209904291670151435392119343288511843425478124596054257415360321686840099614103352440876564636819801664310346755769222933342582954108680470598120240809303586970576897844203745642942453306292785633285410661222743445786919272346930918209358321111150570988835127720463838879616856296145046286062143455046353917958048377222054888439490040765294548127292771798050593272427438835007658640870291918866334370704331155365705327242333985152617178345005946764880841396652739875914937837106141524594750796933432422665485846929875428633792483859723694618108426143321619212194336852342283659382340430663525903088664003001389850324263905882269012127937614885848155808950957482087190072637639026999947053242373179738030574850280769397497256092066229248794706464391144612246218980155788761104219130490306600961275968885594978496389835699635726541573837661067147595027241575931245620974433323535224021087968859873035885384290882730435806268617951638364015245439676570021198579416166496317600266928765970082094966522832200946629368153002975634058880212892352356182569027633378059157348385020353957169561048083280337886209890249602642819997027515642804483232118142639882332047106563080094562116833558147108365513516796170809476835472054852225928439561725986225669389350278089115966264230117995681182456926952237274243811030264881803411121131017838807615292083732700369302159108351477868848031535197817139107814338480616647698876079349353919921148288884077903714343786186927044919468399359210027226817314805257446957549540162189978600923088638147005592150739542637245130355816121117085526729278336894153496155291086784785156570242218993401863140603584611245329552928503412420859202111176182293633821927026340685819205932990864130567352343875143077829194659775360080363866017373099084617120554670366189535217990763631692760971039716056459910867342744389855413048567525453183672811294169135359426615997177799557305953582645435903639580122083009010887579969672703317370649982026161422494381427460168922871318981857155513335112628240787128898745618088260946659062051636819091126509419758815903143077385873703022231280704607558024865498429268982848709271430123680677976828179508680341526103731007868509543383668440815251957482311404482119393229580511311258240627889524626769546443773787014314109147494865329445061033987860353359828785138689287951589537708513277459361187113377589779719813258789412795245462108817879995918699329087555053004564613060266734123001976218509934067505214313461761806592095241401628591934119743610709823755496925375845783629996340556158524452980818019562882647523840286837328143355910160234489147855431327963679682326881486007570205277388223826386011473101841424212216074465102146436582172717118524739391361785667001474766027909061602576382132468830509135300323754978198101958461463612274766989194694361881312409446813637864578991251119014000172836798839522194977577954636121350162905951994015862803461684864654427400908521112138715005712051233869975123156212784665545139672052280756517496341182265229793428493816074670577613992617381541698569531620474208037062346106434917971428294235225247600559671541788164973354286662380335520184635888435043946271783068202748452799250409276079887706771100061112121215413652523853211174728300742930515965333985754469914214531750460912867915243673503948878065493859602066952276360828402079588572333966328487079934664593253617338896964352176747908617475648817788900981213897379232639578057420140088923930553479638478411853077420739295474942997029896998076181663464227636775519858791324103912408975265824949916036912552070711022364095458540971866715102926203437708778819259633619087728972200324768720151772124925998394677334178737093591847554954122594524705089763262998313734573242204853808945872794897591595555724408027547414794371338159454461490251402076045590736060858209628962161998271452134090929032963922097442197269951790174136199483283528213988455081622897450283631145987874581563006996212382829226459723698969148687275101737111368485182021294655999993456240241153900456758491399760851756249034467427623611441167370411719017455552363515588048400921907383243693875955236729386186487804051936151840756173006543000190571723920867010712136828538346858177141221362285954836796994563959397270094465154334383634776513619162835527898734721326028754862699436865889522357458112885494673889396411134709143405914734277951295596011415596427615445917259149765681706450162004688961518580430464097691478328529223277704416119467658753629971726799921073194255435043138741979966212372568946431930870291243183959424518676778570302207723546838078339740662831082160205684309570991729693355076703231559779481618928362094247550925077662721714600076544603131848467981818432054961516371789821757393756268525818126312359892721639272017560255824988372224294296537597408079282133477219086166389038139114636150378851028610998529101071708727616902681966826868831193792389588451093012707888228011658651570346548927117827276589242052528905956209332869004436672862777338124765568579636350235128007824040297651322446176707222318385657949011203793854946909048165205029432569978837143716863722101754102186666071549404242441395645003529764339720998012933945448760577493725134219874384452268629590410966148776408506825259341996714828902561766249411822163584584740107429630891497433378632640888756451335063866117098403837005664873631450867803968265447083337030255460334989918564305189463541474563864185274120105988319807976524840539482559501639152072028591016930968061632187757709417072463831741129201871353682631724984395912558119682066071051246850619692800281307335253651977260400172232672759657832843217601524454628069671069208381328819699865126171615043149632107851532699877870445943996049520749737934753649340524710017445526466063580026481942680199594811959913420305478761616132942022309261175750823137446873038049844151495706601991384013181660623961865518858583776629977609090840471613901372783828072068485756342562907463727955895849273377112886600812257986362551683421640326171786405632137709806581233911292741297507990218145753617399151154529583452684384757472482251059888549535459852501903294787749090814096586989841180921221967253021381143916857709616240024954671014076855680461763343268686163673323891256255326308609181375153478658454966078314679206686480738193168609301632836674697762022355647944734363235481704766275786247387653249362962535161595947484628629544266804755396138439871255818976784128586275922610606811723414675114084549254591236487791308635060020626046498509802014091788263320214534229432363877721809981312279560752228598355944519047470012364864374090052184405681502894660270518227090596294501323809541240354299692213401524214005379493181467310938495968550932837391015966294472289338360847201513629057225498710384452350956928729169645111013578181013777760358477385041918027579617757020894375680076260642056906326612391790528682944714110656192325492159731940170828095770128334442329974947670283978336367096683231937151517958966773808063266673949769081557172894921645133253604140526200092314168011928792894074497611451809334897815068398665397602366014333271503140408867143166123238340078564469506981850713315107072477208236191590424189578489964223785028527311265558798977541500028479649965779574022467771731668798284357237601259892994463178841909415262749200531309822962209942900700764609484856842784241931769461427486611901829049762737939511514210444902619176520265463273457608188010101933473925391232357039570340548694649589876031251740387207513762906196949567232971121909498175292303934349709790677370780697228515225772553270055108127137966299401955189571909623456403073278137237477933411694937732414931779789579914432338653290959402495792487468157862439817776380594904763827406141573537390421169059092893981469253967920095699824747139298104269939127120185790685972655853925528311984223223036351237312731169193074389680705949000426082916577209708269187238151193767585182774310957586234917551311250519105148580802268438002153928795607307692490198889164317909661606738897099005788181133043939613468809605017956634165252622369688746962959828223519463484215995286870582854450238125514272331941565758383840202415275197115338358998382758792234530451756817115341838860955827306221517742541414962951513704715426518697084700748876615067553779045863665253440575000760012438755863770865138467068815276884978609188806335245700788689828177784022785435737508826634712896227358068184869837940864592195073642380465689374044837715526166455463903799192908506053940444839164061487197119847550193759916774249096789758570961042698388351781960320336312092546555150255122075621490175721358429186183981893694178079563722743687435104637293932270925242115437842934138381332806953408187191986561954682864368249525627159367149569665217110688173970475590438257867120999984180832910550764949480848566280233500123594411975744708043719173552749596991685098476305346274729563414828143442614328950519286670098619701304257143480177245235584972500974407866297338478871729733694077274836741944324295240760616570884877777044204888224528266713521771466660492127224712107673304888478003161642582563360209881871486571098615256302716233382437820177486919808266675210006424330838191044684349634262063298934346942400514373736716991780261587776505504158586235156681568902046235696015726952034701376122185372548122391859619021025417163405421871173090388566790440159902289141135469649922860035536082518817101017666316925796091162956128703868909050683282263417737581943819977997475119557201931876423797242034660767567054255174242618146912918399032689786190901244448340223732345794412172894505712494827054031014789593033343070368157262374928676257404659758763131693091878874387949334517809989189605892152937716709637986865789813859666207902330510447578658255148815404259059827107308775025660303204893469474472948727999593805681334195305942788975793467073189789637641290769082863247482822455570620636152595316792096436989509837044617058168620940988241286043728743566267755347248413191620744978061211944612430430944802312817557416302867738342905104049318096257736954411877570880491777723689555174216992509065890444933790988321957454116765447601836651722086635834352694994725411010632550362651736033342953640150526542148586204405495054821121548522048051709746527201482621849426489093963556828786183652704606182655840301678642310458001774365987970895260232356090255109607871294812693554266202057283213469059208358237249795598985855870755541386479028816915428718734575576042315029552685199473117962767178129690186633898931238958548312168767386269376965052543140340503758795749151273587410610516434713249354360499895430546289836776815118418008175911914013400811713806037890115279639027901324113205097895062162930741164375581461409209397100370026774380383324338500937089907279905970464189075449801872587732400539718625625793621475894625266007951236942783066726832995062874386602718752050568149965386928362658709540490398850041299451066395697336588277615259258564407787179632226959545261996536378630993637725483084387867301682179922547692802099621315687252397754970766379486775293777764199438200876076557899799788598952735985465133693737903386992548195550442264803338304037227088992686220775168646940112842685223473797063231959314767657484632071814621292469144975528254347284770771933870458981106853715597951968954939408410945034386993408319310559329736821498473445649517858752119726569811065984960585179428468193662823641903209475927390394785897073903521575837148066253295716036248925985706875440184755144500343298838037757855983042032904262982433042133585715967575925366054472071299799088527635498708259496377686077943099303187838623128928922628337081138832251093524718003231956274207363721729204941258837314274274181237282708985493893676415910902561179133413879005479689095741036538656631779325264500506650326082944504054847944266276752525107099696421760530629013171500162136362681470301878164460512024757065788519129807277054113244642680613818462641051938666632265066245704015815526357767156721467648222689102834065607006586905493750015200711042944818053566642444973156784562840130067466158365555216189246535024492619467443873365560308534688972546852271566576311392479533450184106539091526269831745535235053589925577029410369981227167624196311308194668645621980050012840094870883806409890397917044430414490655266657145903153054760199698990982688369886816520661195412332703301951359750200778246689411198805438957552130931251824915636107770237850748362688969665255910723593288999800006373657649995157125073935569244508483601490422946608050772925251653584199648509400155004369158825592971667769871924941536023627250858842050959875185955876108490783640932448661054197714823986900302098340207758877053799348993645949296058022185966589245679274229155459588753993083927298707646295735385897559179248636115490382509456423542201491154852007176280807399450483087426557868517709467593583729286365289586253337228479997989357585285812348492833251458566291088944503665476185319060445246322674959682289046559216785430305332475264879021845616247242494589787976869216862487996236540404678509472521528855736489073350630240332600063826041568813026390321152293283376303225422631313208241368602782538302753688842444602487975824700130462544683479320867717080099484721244402175411561889136030735646472977265043441531863840799737581366342594548842333416662162216475824769383404649782503561711868313800898119221156617800627012102316415777484386653531626631447970010916467040806020561605623861916688450322773637945479694041862996154220432704130854080780148679357298543597781499345090645722242037698516129580708081217368800955460258103233213455945543541363196372392829758595188146742591597470318155059095168507966695307251075625164057184209110447362037212547606931018948398174651037713106799766449959579297579038224956721939103811347256443922440645304579800394168248179367023234620011331985462165677478319689724556298952044072666999139236796875671137283374962628714456971236441918523207223280420685061211994383573904937243083626029394950133615768414771792158990671130116614618752192566806069015542915577378498969887540149789664494826723316034710433499104355257577851745848309544572513817858746954820874424708935938811528993804719866908279638756034233703301168422335997686592288423166475873372139211929533338523382656888806258720725459655926469186442396485751905186653850535494257166510257871080181376465991085557124311005279684767339555374454825780520665710878450210255735263434760527117965619212356114349808911285582233938998883226402749893610187630336468023818383952419276657101124036616784384795172664515229671264038285156908416438888214571716480563962080431789408969966364999909221501032895047503312171680782119854093822946506549814816083685906376505142877692871850989974351770236874637411229316131609398091791909451273837898897840345057518054674051602239608167703045880426632559921343406958395215021858258671823071554870410097810033102812422572886712133989656690440154464266250581862781751448353690851261724875120415937926276817142306179885524300572659514073595244136131413738412626683766329342753434715651938523408281956687813748121157142641904970806768998850410270044587500225700701179374024854832902558647160470244054856431705159763058072266898403385815721602663449360309601382372190714197294008283951730138708024731545126049806986896929691217136729639363825379227026807313296711566643621195683059835572046609633749411207931975577870362527376074764836838230741606229291912761543936850970354204518380280362412632603985735587464748603273674300308980108488788136463398621581841451174905258465672097272892391219941309470156732565609569710578120109157177878608788548425289138368675903875445907450615814944376908494408136103381837051195893726544535837975058076508744048557296746441206686975488627399257155589633991428287565896151724024951779206444105628703635073178001948933865943326569524595664649733688639385030588603673536564393288413081832096667330011908508894652598353946397078953230882140912672939674005227331579530345614340671816684838260239819409070611244238887602382259502201369651184778693523003553106452154658265836989570402526296883214395390361220123391224754790573436516867963215304597500559032289036989302833577064434318455282847423967584784377658607392199062458444737877698360435489880885465516713184381963933730766116511331834144184322175067189144099277607183304649849201208577942997885725243550169571242171151045084494825453539816872253905001003775128285770911885491272948362202839231227426717563287523459350996637654710784830000285396634106323484070993153651061186904670587752252691538936514877419306705947891060561799213673780525979612633260636814127890293566050280970583239557694763315020373739241858577398993827753993548850001552659244736172734784838406101067323822211372727442654062090841877917167290503167331064353027217605937966196660577572497351031568020169062587080119432729632968940492462563369318958539275327716887753596314952837570247296910029866928675245875132943803156169661832458561066359983383541996618713207075698103604073594553711968462634908445257188071443745795691425450394841281806330436152232570969256138591113135849562336786761005540745380701133491327164897997874975311096304829802374825759298801807409554892268951426936634716039971071251452782023164278075424794685709619764814060798083535066731349675373744198822900468239758368973845407877829335493489611956826770332960781999124150677333341888830630609687515782063309073701079120156829705143193658704726005364862330123693015458868004542603722059977011524542329195443450060230697718916251621311982164808999871433887571892380663192497245184945847565066608549889851003120782076264085626299209167268981997844786735117219184236994423439054837277869991375662984584932218361395571095922565758495922967821377886758636893888638454476800401326589048212478531364045808358189614902970785870366055798518400489213543171749249709934260505651643643900248836051960441180915970572834745598660623812631118925154916592663588490050534489307773626990914607721541529813135642060643149997859018184494115415560349236389343297015942366892062966282913423370377006684854482227517480430329586773624333650847145756918797036489077277986469678260723333257815688520473253281819303848067544805702715332282725197379094200740788192747021838756037077860789472191760816601286951783122480725069511972948807915512283818316382744222908134620283977649200673439697685486699365224386811912531537424105508006622068246300762871879140707032213054746380938087894616516565920501750055819876390790693621967094957412595201268951693514472662666354493108337850326350238570170889677194008740647639690414866162979455796358715936526617213278931885733132575212905453129785420617547888424700487848348564980392122624101849279196899123494524195305984705477192225058039271045220359314221822455623141096750821517623831586942024501734779124220513959731963436637932163812167277496205091275435458770509305452596513988050677745153755988982471757575581318901690857127169362087292706384157177524893170200784163597783616171366585074310756324314330179091240991745432512530301619923840771216286950876649371511632756255655368423596736810650370459911834147058214259050047218725174785847270647055011033928141909907814264430640135686360906583311664931391573036059181133352485763807591489067735970139867825642512395685497999296787095621219648280440938672474535073890636512999970457802273507911085183924715918865469260535535462398037749304668541888642518071023052906396950296989955351098139848591599844688018871050192138566824451001677301319719687188097811385560224104889272289384302598559443261911269795462000877516792962648861324260692314429050304253076835644068781595088892135872407298837677055222948343463568646099330074088192615312300215476105778573211449991378631730666267422198822139865313144355496247211284964548086145720006678557265672833009715687475392575503373806947284126661980618308608040286692436207765701710537115652789849056110420436527565622660322013225003919127357054497898025182087375871571996776035784970221114931773374503477473104829621588496487713469319646317753293428574271501761535235059709625060500478155246825575393725101673964123478933212030273257653950597103680573823698893896466006756619102044956412548257996848751734443235520880282637692281397133611443934440043183264245048138500622433145906202807274448390855713075155216761553454232617728512498863215541247104198329074240798133195807923940260987364829588550811457301759526021838605637531203792260436985733139829504140129697778644384262815487022273745501849164926319587538655595011678173249630712915796873946787085339009931041172375013117834120813303372904048778081868072254778909308874590022107189055886730989847908254717476693855973473662223749483287752183212607095406059214278415382935409863850496321257906884455317974393596401395243731491676910838568908703734273794789070142523472230049457033748909540675474480361110564463478507152721736330051283570829848931710692815787155643222015142327229570024169987115425964247399761830612063562513313188018803744976416245648281208910509946072251987565486026513197991986720453693230451799396979731546719512038467699735009240600728384708451821682545627132893657072622060169307534617254567749316388314756373084207006957348712533090557745245333823061203462696927131750236532394222728899299812500986216400342867164885617774270387640377342014298469397878161050088127481483002018304436927135939279621636638232009553756821409313136439084825114410666534660400368884648541965627960050062569178522945035319871682182967093814193190681774046791220136331971109020131215221469256151541110254850809706463895484035913385583862047026771296599368668327485794118750981748557710607554599993019707897598061800922859664758573337346700984865188709398100384093868220424142242423122759327948425811879523986182513699325256778020008184482331675920949022751333507736892104598081669141911209448097939424970634470476553248313062641978717459059279262582481248173642711417527559006567655098733704333979582800770612576659189685344784966101596151364358879884296625474566189342583713486067816100776286770889241067951697944583525855043180066244732659159035796468736943752341275435067273860231660527552233504771431158036813771824059980530793630733541800858490775236349100892058398502632200259819154721488362935243520436510491223164691236244910359600801219560439037118668592778158093005267274026151517009954105902573222065778942053960189340870199209455559392031742394380711463315149632641869433160177598885010093519298881870041001725883429827079938277719879628701390220021910055106027847078672295245559340333467398116664577013267612088118269214753377739725326391961950112620694929696095363890944516592834956914624252878431705932835785114440714033360652419369822002059651687849321260181234641533409156762360296349224244566042646287444198572908101657610464996693491947267824174601995202641792337695241207029755114794024076479697609003972874322621156026302894270076425640059202414972413864467662767338125189778687016379608408575085714692364039515974965012409294136005311640601040803260418764306347347264602072112955158290992606467189309050283146577091471632937636681765884713513658411190089039360369703459796853314194464287809558148581212384151683084192744132848159658189093674041483992338745662618188855179233172859883774477617339617288259043585551072845300251433687685836477462190724397761968935845969362323596038777853532988575368805163135606392417912674641663872985725643515251613955654353763653750300317491304025349496229339428751756335630835311473847089721697545812686717673613537097600562605275733727459979099417305326963380318162070272080894880466806462964513686540640917845852743813945141331102078598971111809700676433848507292956436865187274745296511142233741607103974751841951552572264906155189440606674816708252662595586425207052605893054705020139641713830748280234265708241607136932698987687286018597086192184045450022718670982084949767613212316139101502580871491278388861078538309508562569256381691900811805196165810137435508862932657766229288802594513299332943417458470692483730563910722994674712162665120266959667875822075199509079199822303172682818783985639192115370891750206795255411281781011382990882095823496462522935513716717448998599202794636866692813039586054833492851186317661315739091778950996888010457242769236263109213183373396340013594069782212104532141669157706686400752969739746074942878824442299199541911752284008125065697756214465178627240804598386044012421576475674944180239618633815289777595068372219447988564328122951042220275243299636200371072702819570479226954197231812887696381980146231669791208089765383291987375158879429823466067569760723829265364834301160936656442731436135474556614324783394277547311323546973175501572430160975595635293628948903469524658074682896184590616186918714649605501517444739125866350093293296738879657200461501937935483038672617964247840421080418296017274455860695846276914725711476055201181015335613116170867612451217614486775634127577363471835793465390483072335364236797106659774384133798018729818964312634797381385088472043287837088680505827834550637247434421055891960834278758042083213494804790552806584467881894287910513749726595614163039354769180344377650773228798879036510151798356806966822053295559692643396344861418795578002492973092375216271365228794880774932936865025012197623347356455604589950944552651846411872320281840348267427597008950571047578803521209209309654388455227056631161220624615066469637846294226073079006813635307522963820918464172933498795163193917513905435105420774177568502860181893894629467238128104176693250133186572262657824563224889252197132648775523824514658891356634689491391263469152055271186071305733674596875440931715742652063227200750305875662911111566287107077826818582219734992585148332574762203956631067419683188318222643680513240211177835688912386183698795942078712162908894163070982660268156863606664007505413971988551289026368002261672971427168107435854535893826785641693966905197705699221724180722276185377745905542640257929067191760252710706521081404039815262037623813046673502559041698570171037143902459982012009186095274533308308427592847193852875319232511925321403661488139199080045657271923818793252092983511257718747443471799501464068674112194984819643778070447060041457185807261342536918052020036195346548145790414583054876711399003912782915515238112730874017542077292095793973074066049938247872783762716438804360315985032883278012537588096465920439256803449421583741466479772952180505583478702438530522431773306819078496859465672589332629525082499979543477174155278264420767197507427492752236971430407896138973736675787863694687588766285786411794053226660304031658531712881493582079904051319731291848813208275134362847765747216508797194190831020117062761521167992860545275926213539226984724413086135830531052245554917330599091786951801557672721550502807283858850893219784305792715558379298014329527958759705039795361326144206359995566184144700287334665003715964716396841774964877778663728070276300516402158462657427297560244690409616713970520432841813126350471637218966880874278553766764765762767923169178846001283485958044215348653730092198081331096686025095884220424688284169754798248296645213157810557321616628017375316092452112482908640585919200471667842045203366817551399853619648553271464490355095800651791984312986854964560996604292950053383673242626167020285332905252818553485610407033265963934048811098954084936428800144235342120991591000027700056115623481898311375474791369759909191063717586429516918170466737130819318444514628042566073678042067293640424655110523717078688891899473917989709485591706427987409325756035914073547187772794867989167896069541898222436269433546118823458734394398421234249242791213014838207468852826888980179383280470121711965042640391868101665352346572426812117166523788210988610698655900058986049362442395826941572119071358555275787186325918577638072297067142997077817255595252479946479279754008125636991303300132632749169481859020072953071178081721926147424357471356802229412286905895219830076364066686309620208570315380299993705696757843889022706159630928051201828273963481137402603230915487485924712090009677848712262028829814969687634723726853672550337345762531717793527861377459331534181925669198285073906109470529604051600453849472323811367289917549452262595138783317857084301467953292952487967621647458353922427102872507295597570997528275158227855651820839523621481261099211658088829263201091957134401593533385624351549335811134306957158995582374248547100567999984514859311959232574601577454213141756476201578313055898581088389155291233611736883253314914107497169573027330727061647964400410944874347139985036219446842758303417843099373470073020746920236087063083639710505924051344398233696205177061218377133366993515261598191179487837552825958479688021252866130852674850634912126398580134539962985074495047742999384777088140761526369410959342040243824064662107682915158066754561581442511158142541569414701912615699595775306501909751994082622903013787848699482135260262888375505479333200534310671371471044123895830416733036815104131674376388968303144078828958645855395586405646227433429124938190242589917187153655729025715406134200659589546924081539368407257424692086782081115296836563980965409401634715661998233645367262118383519654572551560744947468194203720065357137109239729779398963675587825062940269554869310672696138770324680354576857417472495033476178555651272179727224114609917827221110905274119379691217188142878491652078429937981124855558221972184630201845198969989002370702988175986488157206068804719279479121366784754513701921895211806409625409213303905968799331928660612916303381591890647735073983812512208686362698088909064067125028270675534645445526744015384344609484912287992381093390651165799012918227734388274865560948279126112678669131098011514390358598742922602284369764371944553627980336731782130971962757820547836834274832709114452335518594975832606341429958029917696282000575416283554603571970500753354419417359971115562255382675213700419843246233960857730897525847254060271428656252839160894077672690757899915159277467121301552489767561685963360718850905739490050113235862478587480363832800683657619269239890982418540082348143213235623407011893578515083496290361413937317663267080812522870660867750340827937566124392354773688410313016338350247508265874097845304624268724246090275307537933315960056813065596250445896163218621997283052289014823108636561061687714407463685416506776914772346717134334834945862296419190634450519355887372736398610785225259757482009389702106266831910024907419381758627286794239862057730435660947011369079353370008816877358297271291318826050073072846727949315390268790567126850051419949580913221540126344099286086326278615195038554415897383871751795225198136554296383369954539575038164404953779156697368369523653312166008945204349281124881812647235494453057289264635647185070165826540116359722969232623715745646987453058597501542121488365460801387600991066461657992839860566933976681193151063171922666044804236867310532031781957565466071707945933567675293681035190668998184168886510916416989281547497005052393388016312219897229794949863933848765310594345272771493454901313819308263377147757576290536565770239594026897913157808442084047967364885760361851025661957552764519941050320272345342222736142132250936416707814204371128767810747510318313633452437282021314582109262156824099849227238045819434569226474288207822221665670445558773498233158337359564717230348253645731620353650184708163303456379233358716514133689220666512392231592684278673154121305171910471787028159459922103173046427548333173995010513346803978867912653556918939053675111073696279833092924723718139138681025835679264616796884890172752013102066086423923518803317864747757324286354942488235903927226452522723182298827894676666853628365918476715447688869042607239454800211224243445155300237444100813113870913468953608997667678533620342016948825539181531241725980308038108952690920465794408923804579332341570421636356431282814743909518240921315453050865785979831378198259508440863661493893102153343565514017212997305667305766524322744076679419044813459525546627427507619758557359683068001170316402064497455819641639062698839915150326326241389537811331399503254650574941673202198453713751838632419165502367592049775361609153800344491705990543721022622288915633365075207804901214494442639889446533511573273285304527095030310709397964430180855391947488292381539239784595362801613585688493848745870921189611800013074417889317495098942735473419677755023900456411335077517873795927106065714664141659143515360072837764538696151723250603945332905616260361042943372509437527168982797398407108591460943005757751616751199346213604163169956273718872782970166886672871845031645409770842704035284202633974324028366662326441037748974319526987359652136133532877153541451876461983521102700152018827087243107643829996135883435756055977316512058222159219694455353872092832153709449007873580430175844518882589205394256981263504782647006091814850897917319947390318312720354156655991446072417548860538780704546585376735342969007269264606722063161135789720462372212663039708057163465854234571219757774218696397574544443263531155121355378534646598835316476319542312311526506987923483308798942746072687246054625057679792186401655749389326129378075356219878240712333082632799075662691452748077134136985047341493780486946707244251538750155442480217208043064782868016747443083052995996182480845453109469246442913201986242369122057852267543925986091890481426461572599294013740553747169502441669947949395411930121978843390067641131825366247479296169447263993305637458770496713324459820176702971954101541012162041112754238450386763737442266989272390266996545233664727470848572714411991555160663219225902587545208788105229252576542639220596244101279943354370717882970467771559277947911034933258680568504460738548872762942882638192354565231861079095924860237167882169745815678553162691995530382980542923242921149457901558735602707014257690841516783100902789624607537736921594705001277145073359866415482925856231265345160718306775239895713141863472407698543647030103060062466704228619717616944971991840295620815104146737893305202260115628371656853763917368838744850984895153616216029279947520347828770656089942523847417520639762800164314838136375827810681444956894227715756103390877656587445617190184853498307733786190591977877324554924418730155900498883443090699402954077023758537304659942266540101514423211689180158477045940345331364311344817828925282143694780857598128174239198025484788853418840267702618667082397624996032315860981815931579772228528678098434252903978060490644615443218030652745917761141016707493116435246007705238981924098355150084436428766149863943844859565234096813054840872205627523515725775111314019748488406673164535212995113089923861806804233999440269748203743168783932606429354400571749456392636735740286263908274804141759721095857788388119927415755488784460633855848480970941321722449365273220279515629264728000416208837494380423744003373090929274604229437168867152741057311385808463358502009440803801890365885122784396112645252478049990252690727947610488068384065524720892787528378048931194189031862684115251809061994822434811138134781381160989442499811132643819662115668351123291421563445700827827937926969111480483723397143741450534070449168784103439906711579656714303285507194506881576810128550862221403791027510404750979741900951695789122617919411279963254532730581426044291403247561153974655943745776397913157699597604027736969326482845129132905461426523980020424739615576816559588647228514609875935948531810463685225125317801383115991766480797509630375741174210300992840761499983147013191245439898592697974483708829592839411717113495716605423880983534926674053244535402112368798813068390755381814512486373849144129312618205566121397996423296631700958135580396916381555238027871856868056187039505523423189855569068778835353755171658920458152368039045152081626892676396965422657254065780712648031859005734841981364298792748351935036236571550912771829259486488199176420372917498946525938431510860551275077905092716005726013511748450364440346221016823419845966004153410685252569468329435237535800407499152382629367873732992862671536424877415170594584183876263949721861292999838507745657404224208387990395077689790466710843195143479806138531586580532482211734369747916722458034459047485974189590299063109112962901884520210494093172356061044516897033978601089568984184734623992884181272003496705804734794511624702082741330639659396143365165400121265159026613222716148880680896250723282698548001925393612083706411625036991373030239530683169587192973460746373224897102594091996000598912409210688628160557133664910458636083430315707891428619911651858949200211826471703487201812315460382458272629238989072257613793261571446029090635866766380934918491761391219673930355667279097616162978506211480760582678892315538353260402281748583423724731821827070214387692414899844368985758761194883544573686663678080667271835410746578007720793340884390486969210688781975126209614336464657213721875721290799325747493165825817120883520872252448784995673082146707548545833913884324512987775537092256932081531604154847338579571892550009565365193156825170266257537975704750943825088212666509658791118932431360926439181838387485235034169313304467623072261862058320108399193950398175365951489177303787442195165124525578921553548077300898114534922195927916407152484238899180190652587364720669360629168969102590838471499174402738812379816906886437110030794274620539070601713776048427851676594483714795511488769364202782564889358134674174017896317607095937380796360547141388864152515315245433999930983735470708609150391183115134457145015362846754197919421301521059427718887253814194987642301003666676793171042299052580899385586378886278169750842783682984753360092957237081456022194532094250899774007862219135306252354109762728928449814513495711013662245240275437480546720288445215156648079365151110226820045812248335066961546178871127570928863774945640252856438051278933897086917468744906400516779936793869012819884770599942624433291829813553153706617871814419072473169229190895399463153994129948273415229622039895147958706696305764271152280702841615710558195725577885387840426091680289160017385483322932848571668880645740566562377805468106829949601581805005029068599798186192174787121073228565053073406472243972649240455403137025592531980822116872651919047421563571926765092310066335878880863839130667806021112105210772174096224050668542075247785138273530677286304233649550737893521913985070065126868639933172528077196693740828903820969052956234239819737403800142425533596057733691683947464947080952288583318340710696318424747668498518474098860802431774484768941892239930930270414146307584478245846228920374192734391907376689180172769652842079944996538782313969870541010174283913033685729247707226848336687513360273187872828565985918393530163888817157964574762059842319098040041385148849056214295135627254015010682221623505502749652239711059405165836022669805687897337271435434741940673372861166889285639445199213261883555371672450435518225329800429355787178144256831212120783317943967253789786515190570243904732403111613250770004518306845282160461713623756368674811309330945757444531838772935424659122958708235910554015194720536850970799944009682039916887959744808392960661393693928962473480249644432564762595960364214419299530455729752868870064968637651647255630709978772281388545811033414412373791430249544313468311998503602632467711333639610434037401386495875815195778779463416246504874621482046274168663609008187746496013167315733364003515535988468555385207534950087553125737903741490380431909836453850591835528073317006374790234978066237742460588358451411267962133510627279519196399442037050387662615111418193285596700690230056746733678165465575998169778348333447671641425071570441515824958076789780848348565320053288902998666681539229981955631568261438571445830722573257728451972592311312102352263611745436009683030384241628968816676488624402036731826689991872211361725246052539165289566022125018385347262753173665290895856867516425158940967293793427110194490332812225830921804619426776831309275999858520367498713133203940561363225769317326633777701342669897610421036534083740473408861839791545286207072230120108631181496399757725736064837343680689929547263517222763607025851024297048337156278210704393510343645927536306047584680454062443266489182580993327030761850116803037757512102963006882429366490821915154678631764070194291784122528453777584691663437203300753155530856706627778533120503135693913722375355745745057666607623668506512137324210745010509027296160582128953015295352739043678684662201215902293925801633227076197218986758483424974238683300455062523589357651637089662679400826825942283012538735496967496983021979775133948416683733313876515975442844944126738610218416662538412747068393464867183493482764676415933065500047163013906860387960110765494221807262740323069011757970378161574686036171077014950768806609382615334236541332485105686269685442934127958832695961367700722832429152146649692742086104963458976185965658863988908942239411000972816117158050580995312479245676390602493719044199555308854931814729492006918583291281471909398920036860795340588296450484077081711133756011921081587703826539797660280201370814447595493009701106476393622086098659451880114542992735246344726983698507135088374146612222118937412258716590691793473232164953491360575349460288584982599882977451899657935913067401849071010256428099701808465031135014732595278870972270924559343267587015343398887953200158152421897783463349411716419965799496828162013981021244410143727245570849478826981120349196424916689160953087089228663874664227845540985344400954291296074179622930376775007775339598366952122054471753321814448809253307838217156636084901839480302148328292174509559211525044984023587029467689143833342168647184551570965933656898490534138758552781912933786698684786598594565317929126145658278700856877335477954707062083726709799224327590096981709316985381584692320803956547017779971447520248743184683255666806847671548617889812973819062300962707018170249558223073737590802741603264553666679087220293905367269239637208151926024286481870352998824084583485395966308674145107863854650061545164569915638054828549127832094724734912217149782819344365484892938696247665368491338816776820557486476248667645476735261413204692066467388969616819982492383579451382774288432128581614642119330674536262369297799694710194239606893084549650487170336620387249768991393176780099473995644506739173581800689691775832848709499381851912647937781582857112788372960707597053766547649085946538692223852120913796652820567686227128087113911783173061535554294253394159170154644834921454066128856290194253388236430757003778622087532562785408765435641423243264075371401689209865750716830782539238043486809512454569246156982656246881883906673898837251697382710490393112980562183376736721576934647117232450840812918308852905853030083902925839965902138855439754473517049017668410645162971883487060262785371400424566094778393998423424988493052848553310368317599903484350252030046883992477614442078832699150371266686329711787728583251505888412886773077240658267485916463871941102302849057917979973041261039019187168690576736766643204662327950595733299494986448745147461908064644862028571343563117700121526833090853746949091903249609964876419223234954974913791084614286451169404594876646330140805412675812042118498400861673507806542436845388222939323585640786390535137614211074039787790302645160788596292510391091018585258410276008776171080826246492348971572750819065307193797233103578125799851561374237489050493752280227310831985549549864608963807212845131305820566272951010094628743961203801843557757008219382118466586625875531089867712784456168311020214265008246633655959033202257471316254885668734044170654430042464001154011124183114086837460060061642566830638880703460544671596907739991501124708282152765517567994067709062183891393081627493625667569643443301580105074133167532250123525972720308228915141059850904867668613014888853716839872929030300757281869287241982469611414463540041487962753470835318775723441249521756283584730886606638882343998476909258594748447952002506645965362990569509943377871862908484792209786181438188024744236505591244517991740865714530618592012517270091300878517476101556340708372740684105853134026807421760092815071730742692917107004819669456455132603842487415758169700417055747890342516680543012073728786032352591330496310707381407154971447589625948115112860752666608992180387621861589819656820960812488136078371731761688109286000160958377083944208233241964341080874837056030526765778330524762280791504637993553688203160870316200423244552712089616317708485169386253293067583956674371181267501287705581977059623144543045155996767197771642904626119786411638129828294388576896493111459992114727867731585727515547127823397006299968641205674555309400954179589654582119844176510036039967076737278489448185290789330464165196686987815013317233215942472980100720315120805151949563820027295916703707503720264607492570728216544377349889826542358461217109406541119561747229341839564469059896311803279122739536448337322996521183705343976763533422425624348524069583990133428284822887436900259939257832101861838826113397747067536277886122799613262095176874597687269939980512448800217078139278431618332801701720115811924670475415737015276983230161762043833617399501509875603091489216105835579428860004945294464040650230872407431256497435482122873225413320957984600247681118706181831909791511977446070541360206905568110064252745214069586108394989680401921928700557190919164400200582400336997185321305124020305206400371689347878730655366981082684803791608137792374022254519019573902287802772847478668709540730682879561759740950916862425758889345987102426682887323354563728851052570588647831535546304608771295774892141825562206745346749756567106574129732970487795705447320618230471806815256157345141384960307713962372507641526938117096603786142213181740480712590569478900775316118849747464397638416222712858627090628819229818896042330706067881279060662200518571591196209811660538069413505200877407459865720767516969860523319841097951807443258572113264059419681662498726127059481315240843613019482503770969830754815023323251487464169567227906485409143902315452672639614063863886637285439481719521943064992171826284590273717419057478610911252320857436899414882048230994257057859771238046191960556675866817090713747069949707727487993614950759107507259364492975602048470215677347152737528896109381768726586369910773143541648062107606617335687667649272850579463089614590472786735794631238993706619682713103077492156677375876544854459692003339052556942183619952002326357141541673684557010345743080271202350131026558288944924317985778836692933407028639872489570697570598913677245411710863556387233726964378648547194157919884751904042955468960377392633378152978583598246368149325391227960289062340896689357483767429783318591543807868319126356867404789075119392393381380121704265842818013125788177683146924478679774262316059879355740143126684401717217682142347201244548933100773626738637419032146264125206817959368906404106476099840979558873407336476119011530343295085342651521885407745752541447137184518318677834237761182263750246069193075532250659969474689239332801469896062029023667137891240496954251199935684856430199662686149093897588955051591094228347227619406368935842471518643189901086387444956893280525532878615401856747542845551068787711654073167004615415273050573459478851488280428628833810316841252989072380885488136284331590325173605993636785446110731278604410544201320668166504754017805605335689380978958449104556150906019596587208068195717272237903248624892452344942129561434744488623334449671285322188297645897731663283651222018164568268745067854635487664396493711273242309667454329363663748850109247487673825647619160959203319936674774216140987170866838880659709444820670869599734139062983951651990545776170491677902459019969659740094651594907390217351748483601542048521751560326924251766762966757978162296613070838839460395380182970983611250888304569284734151532009612830212773834071746451335593786075269076779575122921235356925325908317012554926528721447961877378439403341340118850314187499922354193790416592356367090584317901313227593027028226598032717577693367539655030935313201700678781455656637067638027916457187046322438588761858385802501319716911935928361842006576362410560199503123060991590284193164784801706445155767828603619200168529492565509378865346725771975302710188267631509085230087558661479789207058759386857982926768229963255759363930496908433917453519355284098542215393022675403856225983048425464381722141934110045767171368796960554417646709646319113864846802967517228340036166299984380955711033768752090797766780309546194570108868744033869085620161316439072180322762903509620790039671346905286960142614884891351636745613217613177134270946239950975529047161374059388378915853871530123170953151906711449237310844162341050822818454156593579570243592966682723567725435623984373889976662748728487545480681401158117082281117445434511194009734526121631133631053077546854652305566283036343725307671250266242285900028783205479630767644127409550299931352067383229603025231716525382145193763969085964474296402324947977448988581502807080079387616437814038081385757669695809895982133108336167225548953701546607614366325840898404731971678582811455594815092923295204823096012987909678957322714604975483563316757242810351058782988716735193891450064910746437393461213527551818391824648595138165564343619265027475551888301504944717143055450841619856995214612189632804823071609868633329213728349807780296883422211101372637848344532438029337435041898618661161617896991877918614479070964852730968790909503214371468015954530037665182680943117750025721034681283455413937360494246918095802708588151917192314565475507174912349931881660590293425369853068861606643509009952590454837168683787484249283308080192775577875344228500709735164194039091319147137840947962243230653645418721508012289177029594878976376356601385013126246077584393714504928789931975672762551642408475365401260706067576318671957345959533032265086769904972749600741343630688336931786184137132752481515497919244048690055940994947125649743766724842928022312800810844442280115622145686683348795481991064984085922728782415142305090970883027684773889169401997848406959916295385878637238735796211057199278446087914071309760836849386708714024304643843851380419319428603018690186994146765278877843616749696678629354581677967270546278311478935925170615677705887192543226692402525272207013254792655905564110738985664997169086337004234296689328642048011673181303573642671628901627629915783096801303366899096579091226622174117731187474122663245416278171049436962224001999688247674782046361700445253631525082593172666690183076727538656494582765894004268231844714854386403258670757137102175543345409035304302599791807133528407761962611728650852611946785028645336784757372793001728776544376457752627180487250783762403711974453062369703368235045464176662766299768151208519618928002255265080648026076239810889618331451529603561553184179812978535011137329926695516912530077044005351335474688255093112922859538374484529150460207570125222475067197453040900839555418529963273340397381550230804703856840623009214730500787262375877013059131854910611305673447124454331265657044529053078225983621919520380966208572023985157279690129097308794631632241556204904224786915924250159214280124916135357161893098819429039115374945515296732731795886189906785865154671483487221091927070902888836731345676265849523051807016620337289139273118433495093530379849391329994739836908933099241476409852979244513450118001068827302272917172364812371979348697591290573497893790061709280028029692448146477766332343625898259031439501526581206904266135223795095112506088534122777895104757583323251599999128502207249866661528563537410262995232694911898868431976017807085461928616297312410205209473539273080101189891570494018365428477566241970959823549614630867832614009161017331095989919231200067948331596184787351868731710527499351975185492863075863657116900634802519888775897936939040417693929716990550654981281560152566319262795452578607127643176791383363292352092898489318160258678641178838319456355096027901034572888325558923645999079263767827779232812058573552005368249259976780196718496232708934329910186509631322558712068475333053251385578384048060415508502727746370582253756225310899399472597798285642921574764272628456259582769651828473409975801792387534638960041378975488242527646282023309291440265811950079404050324630748668022340846550507245383000580898536842316875527884093541942082854405722780412222470663991397812151466098162235071683053682305380712510744244853478729612577306608121118389292813800678148215406211459785014591569678875507125451339046845863320635836554271727650866678025073045038531583125170664494459178684905079082154479769049912022456325121730733027432058435907852831325469888207412480452841466025862434700646429062420432383215971919305346746530150417805242236601404889393893220279275109164442675616159144410296704886538426580718212015351523542785684592634866135898233541152499885070645263448749146637277887152692604779345424047569786264654170024909663727722578601482344497808402708924038949074143661079162012151069462392861979076023994331099736104990495499373417920836453078436858894824319683984920842989102541838777130027949525208114618363771921439636364609624632978644749577477242226859302386411457573357938742371890384900265571561242052399502004403243674347563586717086746294814222643733274001796961123368361121824220038723330539043206530840782376814372048092271601500913809598234787689849396159217730878126987210304348416216539410747909557814222119328274403487514472937322436334579904032199211262817917431519106935875145223827456295206906519238834580795033497705411045283005178169282146245650208600430494818700427094949549157044716034235911390417719526398699535172629242966668104537908920988567748867967423907966889460049384853973923952610539693521612708561645611476721463142836156168081168346879373222256546108834150800444048331564353256964885796615067212589812233664804516068210980973775812957083861152178925939547203347457775977630378941996224193507301811128429057008985338932928695438633517518559762028615352222139911280032113698884490415175959621831303472400862433680353022832872402492573308480696921668575800469592909555287243938286452921819880423330397236929937844387277405201590996988646255769715702635509693784196797165521293417080858375427517218027511334855835523130299798445017809517468824079004047998775295470921093760597618183042006269518352763169239542375878098519120365488155918966129171510793184666844427174832452043158116331093828138098808623679118497779126481479926201307506318583640887284461981372064724766284828039293991317947201847859018856620592758314516144072799077376920253857132196049427108431398368002212187983395911658951335839186039721062331925815347526540527023055124850824102350006719945039404443199428284947421835651929692896804844252910264066127908502056668024825474718038582511296091229378521762603333350566318454876232049569412130317192485903618605524892911809615194179073277191245651796259173677316283169798844427069444363747032116007555587479580804563450473488037189036767800161925766197898215194271716001501829576625886809959731104944490138984150107976389517513595137700779440778868501467631156751851491824174137469491122134345110320667349252028948705011378267704634644424326644983019853663987572475688221460515442902397236645741345877488676930681508152022202202431147639854900327150204873110749764223401336659677188927107180181385555529010872520617895601429134825410575929058502272147445105631623724747856277599786266355947983567426895131316309324498423800742039870895119062494099874799349402602296000575048427457034608366200232889874692538721355910792187127886818024046135790582563644258787085617330806828027883056958282912827032254094382058982951376642159551703573866351747370186357460004700408889138433986361566608680188318605076407624975403106535495251611771876366763080664932064065460141154767684426483413467073993482678175150177903904756752990824730862297799884061466743032126172122520082555454863801410624356163290674825710916624372485803473592831543465200858312195392669851124884816671516061670948081406323521809147185163865873785280339009926394227008262749788545081784749713757519821092552702442508326381589447333280996003336916253315370970182703759451094741628114908875028074141120909164285769381620332407952137789045290357588378588419893297344398891519298893267221472769030824673332159472849873028605674590726636582568553440140778312846644073569983370937052528257994426665775642065464713870382747314810285369669059402184176474503582322527640500986012120183980819820883561393689499715197667159409339422471992309141737764843141465797662953295041892428306141638202853809124335528780959038377858547243551760379998224014501717047053302205774705775433225887749858024679145123661098583958213963391292543374822675025360302157635284555205749448021124909140026936038126545277632586254295106084147163850763107576951675333887400149153521419579820825073427720936461699111166910016585280765750036419800404510460306786516650606362740497794462035787229359548209400329064078053995328222911321057531610917986002808651557746280446953822023082020235871401202449426803295369511305091142419753848157699256660419097312927528339842435044721108626219689812735815087682500560109605813614110122887961718006304192331927922887104937952150470008446657665945056432150302568998446216585359706412227310897922298655116355015594271237961241783471808467436759140760546263642123655130836764945867855218356902409801427623240538599811532925901797227108960683010639937164284438711926970805639618903645873947450004443752761985207828386676252427282929461387069677057506387965290866922540893835245866305606756353769290999027142068951676323763837899306271785634913475507136244133755762045542674710090482187350329987221341714985108053565184225788739048645062628153261064668798946447678164420998481590363189759694248749352168739377218559559432449380212553606392377133736619116924781667863107205339711709914411311985567407705210484195558881767228722464305494683412742133610295948272379241697994340524313261267090597018722134096423312322618989970039308139367382666715882038586581492403658858374577025948728273204608114388565034070158411582355366962171607677678263600531869588591303950051857754863033027138916136696804296341247419333712866183152034983476094193981411841605647880542423654179752951519208650535198085840537695208731012727571613391759656610922814480155803541466969451090735510275814930933212202335113074673231596258598257536185665142937415892723301713294444920653274969833313401358049455537464486674980012515448249509622541780183858571282383504490362071127545014656046775787770714108983818351493366554778726411868145380712675198972337941529903671424371804674138233508458731115257011427979947173986956679192095503896055171409855892439254506133720189562651782217689534094326291662444208085472645537843070439024999721475377360923311082216733884803907635271078778082077508784646235845454894299722301908879306876864033238122857137268703784327330499267477404093968966968205971385841009756399813035286928555540779583782078567247797457033959944351391440069879215962472459444509793159155491283488510272019529167412308544817738800226153281379009511011602727782426249955829147705610760798885137842751049811208239838993365802350166469812462547524947263768258075921201008315598123629025502758903393960754085892650023873117039061473816469426745372796266939810798882328842720880373246876020115010167614399521865292476546124700133775351225149151050595155513959197207970233076802908156593749193125191521034196886094070355184959435235997363788901633509202202328640748653630568795126422653883951014273708763771981412071542443399900281739508530284356332063396328028510108929608697217454969400692457691947571285792275176224267097987139701811966305786877906105941313138597135485569387767278291749899592155666767328512161778704135450380664459248356855767251018140277607960518046848501987238908736216572170055102791665234372711171844123538678743002215394820240876432511982921387007573593436677987534982383714204634085075560266358037893604145688855658691943462924597641294889124046877772568979833267822665053842275865214310891536336311635240617121417639559926341620197071594784342619093546271961370689761730702399238590396188686131354223961478933378659938494017285260024303854390197176784803859977027460984516219437412065017960008969523895282471479354722037415150320734756981856633139564668339611850911044718035510946990071844352618409964410366824909734706725624504660908780956635089361618608492299745695394078547176541490798885567789096716437739914334556904470621587474305575477553659325826732772948009692903409311732203674574679443806782750131166638539042277800385785846624872130659894445331206747328615010025225322663411846950725906681692539734960825901653335207207316311908495860193191506985782209922602379655521883812894833352594856172671275753139707872508698639063724768820591116305526908670659227132107128458886130759193478985908854289699624206859929516908149680765158815356165447130054534144657017063085069824599855483522372482512440657763098384855100549386660811287228192983828073956660900120901857489251080752614431408175849966495615555136278890385418112017724683032804342515384292056211342489880947486210783247476605972517067862738661286021613548911201047936309773099366742040814712771397352364476549878716454531030270052287382665359213770547950043104428724029684527968454040331850793894158595075455085705672570087538411489490683236821138855549117364324264406976512156737018044090730766742697378555182238689787840891336152940013843010273991941427403806252419281047253376995909862151107970641947918831134304391815545758024212828464607709494990516012551457148822535766256735192255580111070172841547769284790761743215781059706797926159415597114030290061019837204434924824568062333205512244970176160071569905831219523371509858855166135327104577364608003913639754895722856237305430183799997617583350089599209799574510980443283267763214339110343932925891556252406411470123601366055358522082588920211600636946318038317270135684184515570517439725860341066002391996644790436528945992395509186195900140018810216068451969099826824745528040946554401586364665981610382702448373565894214969159211429934355930529274563763274149455426642912050605829616604362829874786838363793653500211379944765731141394393446175716537358253142898171500093105442053387431428374521318254382446198082090690424480003577683104691883597844161611630519359210012294536277041689089804852678006843017578836509288056567870901005580344105113658699850095627023605865457020314915832451822537812987530432515942114947784428069964354762631620784133736390045814602369529021224292792858752531845749713546790286100592927466419946353002600436400523193089749904926077767270829375928771280664479340936740279349042107427111809438706838748528278409694493681739220681541555377460320588727167152183953542011081275337991908383734190672058598770891978658540600349879498888391334527661614498091820477983355864072152137430200406625480601806417096858001528566982141909220454871707241351144021824364654246830269688033920513239738299913288653332456640362349458471229293519051100067981626649427749057654942755755551904714907998098632352304055965636002161406225148875827935673916412452114699871524840884956800415793383273000941083731105350365910385029478158271521007664771382530769730634864555000801821760664740439801863520000795510396642873615549174221806883256984488902909546796253816772667597227639363181491542683537643746504358913451364840117107711763057555359446694658066375900233616098974007054489458264455110061099965441660289252401564151458447591219130809035332967030297895382961866165098752976495463929672099826016084098058574112133524672599776056097042141189476251777833877218024904695655795831547687906614721348685705142075629815750981034998555789488721736427196902770255235719885034007747568061601926399875916027471427474248022503643744209266434123853171863365896612849334294575348795730932920524032528088548592530086237603215624399654968511436845053952799043354605975356137478591465008020944598727259065991205464114351556495069083674628981126945504862412089907209651875295337873646322663840676978890799451076016719965242200607003913967403997286251910807240152811832421096519822557037368587633269935101130521117783881838762594166725440138751523676214610840072599909284996913202384551053894216749661511338298763547907777902083756041258448854180311552085327058111723256915520906930314465049494205087755772243577633719895653197041054146194877207068896110138760044056972520335321915084379448444380994269686233071414199875915907657208278935069344358995026541711975920156022923933666573308939498703639919188832513627055370210016860936566649255814491587270950583706255401596890761399563386728897923389662311763626954711158245265505436056440797116571071161195333873452967101396713064964253999362286380403137321609327609831696963014880625563850887906084773483015320969174643801002705575942232780821391369833447146963811810214008244513849693214343891184887320941248956562248068013932867008745934351646333265069895312132015360697274516417575050580423723261646495634603786631955430531810352437700615192308558623073318653525091604649893796854023228984535225132187203939488669416051527826073091910412334201130604004779645688491539137434488150881033816370650138484420244534821297253203104682316045188477002423508171526148602755733104897818189494435154534895223895841386575302466017121647109735098817932310506165577546687649602180230055887557713382975453423260354163501443212709559728474724098736707397419994878427470838527562135265820358952838035983370558239087819250179668157836351792491992814161752847329131613861329124614812061699203748743604200108652489559415152532716551362514318914571121109319865603888802349601809976093736921563001490769684245277103963209918331090726770207037909933989732999260423971556729551432744875860478782631684373328549893499205617395031707306282544329845116099690339378978767592529807906103722129404170112390470432537045813388333250563671722105480506947641079477790257776658343286399012178108619807315186872311450452086093883621341019797609869539543507478289363942318883780077030072522753994503058688305230010917540466523579668343222596134518846242124642390040575767599244963055947765868209187585666332552268698435720438802528205339766453509799299483245469503636532433238705913442231887125064787950358981061436787035613714809547764614023271681117542503285601302101635626697447380251114006891941594904776892218989761159222287819735550828514067791135826539320233235318137938666975400655124549236238526486225454809682959231095697736633550313528853653874594892263045340445143041974618076616409702352296532039093018600284659939181315798648941616000286017369877583394038996893963785717301890999470268660854604083229643931266826163552111155773627130055742355923346072657819673181769021389456540318249150972832278283186513384470060268989882236942057916762638323890047321661504277343879273442285853048336697836844087008083794014916734106368430671329636198240843361731800344418088414667937552114472027741507453922303976834959191019103956050130941426862811977549333517142806915897207648712347815756480218357457889933565695020225438463221448378590152231294642299309342999430376941128476003470329045949813800718831883914794750951550434121754189649386623339281393932779155795948658980182147512940511062395812389156997693953207080376366214659813301307194722032434941622247143226631679083498798622361297416434555816459898244771230500454819521882465563893018353959876503869979715649140963493259783646680000901208222928500871703069977533723206206191012492526386171303474828694474460222470058466585413856437867709468806811462313308774607815646892705960800675474137762382827602702812858458979551663259915941010184169031227359939877515938038386875937414300158179819110475106559203232368454740833519709834297267304744433800838751085176427549275860557385408493721167058020558665572731647613827819709887051418476258981589014433238696803535672344322704615512310976401136531787649341036373200399167992085480149669013035650606358724994803569079315750660433978815171555200584689838462102770060944544339106946382440295568680055589266603787568567538326172017457026783630964353977670092148954522088054910803337922276879668318326907114222193183284764513103355334771778112680735930024739747870882789697146093046202711942424315657899663535012880584797414280090807497505912796328489530470883039974625246095840745957015820243838203363355164512700941927547835555398628785115999463992493157363266927160454955905966901748408581420341214929090587173707275874411679669364022791816835364470425022737411740484164943347628706147178681222884602726175164038158840873880349443718042857516438715094520234037176812456987503520964781693713910408212250231053956784647706116949537184725542596356653691253435708271855063103614134015080490701514851121688475648083331358385246111955747994775624426339945947235645500552012059138560468522532241432678450450108210043042094162117589702331452408563873587703422180484496897603707792274826443774518484373334616910583414757387695367034962852975926965470296833775473843875093779320612379763818561807909048035487710512495523039983828923202239962415896212829774693628448418402280000425839978791242585670876599102414245166374175549683220844672598215072312115776663583169005708589092471027280347972000889583311650006293364080605419731138170959183446461529595746775335413017966968268527087603294407750605895056389474684636157697901593003369686266555057943698587179587989790731524310446766394956418708202405795075783830426582009736847161753812998644437677533439752580099025380946602504684631334228073436710004763495649321171545775704888018255835254000064303674300396582216394242020611241345898529509163811613365272825069226060195069917255310433258225610753992051647476647249691716215834707118842214737212219625941660759973314527389785320206959438665108391838813235471071063668176195291359466230211044115409402206308211828765333966271778116155196665574222996718694043681261011455743489474364520478664812777997991882401748185571728201186832810697524652519975315579614811778365618103582735001786798975420156785297627847564043784403764810716085077534412530007001363622426324443388658351466732493930687796058172401492037040408455290511997675878318536207041718374424095010319056767293594477720902398865381665121585922833591204950914065813615164281088665977057566504222741104933096804386148674109041936611601600657745103214301410577431707707644845570023089617563335825906713302724146653825740924470923979210265917698853323518655062033221375067653623874728283762639943217119697106267745910360722560551239332197261013568354112299989542318928745018825119617079070262233789167039210367638167525906490253754306638267676474822122446497736388062969762354642912675078177065029701500065359673931646794177121048998024137281943013202379322055060567332510319365354269006935292215611170633606934410303302343492985664277822980127231484413362155574300743945366643644213672942444245790871085879142310058143744020236018860534241000950986976714115367996966890178551652320186462070310212343161713366688774975791814048709388846813959172248705629387764073136739360731554403556904314765551642745835090926125858250102023047601844706180726858947027305558156386232492211698683163486259721708802649806102138796523734102133754228269877096593245145612843978813850210197423031461660134697403361237971548058654824793212756155958339776643591830347035625207787616610108452197329095593140003000426911565992725505592771085233211574462002553374768358960751469094310576743493767267023063136090652433479976276123419964165194509027760695507319893589109502680691438844060133283161513931349956207634907227583090380290482407741038976225891197758684869369018836488327660567624328805234790535911923562040178504974431688437949914962942961097625005879219967536595398406577374106791029602587585452802894366478070511013099385842704110887677952714156453074550293759666581390020198985966678476427773640778717073408753100568639213032619132911918506174992796412207947757171036948778025957590739503011985794532063064871087419663859015103882454006950520126331738059418590753832386357240704564892291513398784267470706574182552619980028193055943410458234857078133348425541767211567018751828483140036544787149053910263103784046336576946138137260607063381451602282892969149236439278489657248169582373233488223038782564299788738466079430127170696695822716979490243805831406761969426734392778812165828171717334152308432875664649901052351996344169830756722137001302637866715915629378385908438546853121038199490392221608347905357897707573013005799913422528261801561171653766083553348038807214285519061471531838811246479425287280921772392428578983447492747623556392554087047479736456430627701875837994789992646672941930699864970615489525414916139540973033125523016031501450579070579238551328200883357498341565855136887449815166145500369118598240639969796633261570431869622121883531938896751945443024821575501088305179191253811156763613276836555888771402598369701511614873378614748624595099659825578897696084620031575603935911353778494817227860345947192454073678743031923778609241714186668852751206532294897664425663625829746509139298473489518062918624574286627087240819086748933468724123821292233759784655508160913293520329033521775181876505655078124575004799511819578851959991858560018380036914976644728836812702143357146423071918426822414571323321337136758563442709718722505972840401524524927731428075712371438199466679370817969144582288985624437817088876968487442846710684557171965116923834420991023333995050771461924853443219091429285021349795415026921349714233589125617279166427661746153473539107089059902456442969080728998027636869030055822242012419131591108123229178607992984213291935819063961111267918606457571267335485593918437850941426531359364760183147952862891355257356322062120117322990969494786435171340742453863800086207685795756690659233853121579588458332179898514759854961534335294755579216315381937447631527284691004812534900257841788938094049327451509872242760181662304710469075847106076659291149918380833742819115953141346841579880194133929465842729565074771205304433399456407579199324894023426095886023526416572413674037135296814495716923018412448652512654803679112449466918629718146702121128343520766948357299704256485098423863518114290527171075303064288308200833388301260527753527130280723111256687885979617968642414479613446207359651874802346175069197578587662205942804888360192886451948573331122080344452765081795832826382755032333188197112158846761476328800177304411046494708283267880406777050005095697418292952226900677915829655309055412463805714465038997326462998292589095674513111622437793112997010999264475689197371442271489173528715303615078624998034966696309803633243093375396183357112481574937766231676242404933716080822289980817218774141762669293481626470011731594957451597862002715646426467252130658143332696198358387196273824222213521491826480921306635054238906972843563488031212892874974668646941996587566704325453993123206372756697244264735887609887379789723915147770788991336617059637719537109170091730505535321423193732710340209041553302851530229875612912636356282363904936533998493795487350917773567404588106339114277744640363069240896258873900712579225100719565053762647136547643575294165062830691399464764347036443840371443106642217760866334625837467670245004072511693749217677548562264919679370630811409975670050858733541708512969978268957170728137112326970229222426604861191980492379758186241802843246255382105584437867774389630019950571818322475970334874674077214831238890957025425790154688306211298728644237617499854626668629245402856695456795454115185999701974078099008568067293868356423517651499946641856205571238456981287708431310408968917773259803955413194176413446970227067164078481457517128897056543519553369767776247282289720657856796018010760050536509843515252490853086200108232240050579127449207219841651089194705530925489463937726307956395438446669171462812570999471416540138308310605482720365785634560081933143028241001932008931147481488096041280757057308491152602232154657274663945879253133717611774743834080901391635636835207061150935303546405612298693034422923447555105104224375376032071249991920318408304526542797916820443035737791118499879091398477266420253681751397039975972971057495698646098785310997147765582413447549046329318194265168840328083669640154877347233248954119676721035226777710203970625473210673533380187001085660062553701630444375788599017811457505716745376777745679207245730698217049109122825738765772998368643598612932995634038803214364179075097032880498240378984435320516858277365808458816814963133317446760215964590665634990101649523117884553682063414866999858741529675892156837153357705521401714428283885505552483859726342789659734527697026488455479384508094238460008056712770463713600528789762345307724837852142861081809076678844927269256215545688718879661026958311369318302442874964442507987998378105481946459501791279135102477829650261059738676798290492737260660187774755942599161456823863963406797680454891045713577487616625717988895365845016391043081206915217944501587441211029868489318666681823955507164158892011815638185966414029753122813904821300853903432796282931592287727938793723280411812597064792186671380322283479049299333520958467591853830331364458126536972279364975608900902889353459065093346597845066894680306439927884351425987202476698291167916762841617658775872720364982212364228241992873643431216461297693900214861055010060010310326254532893065319690900566157881828642002073056635457812117930278365175887208733197970829356436072349124541668931573816962098897482919607233649892970393581508236635634113300248196434069731147861956179526575165018166773428987596012402831733162558893599505266174890218862264944985205538987608015851272397062904918767346381556958096989966586527304463432173317341455989153345262556577009851592619724179008258228148690784449589099677001920733241515066665013784241287919272889175574426589343966335870922622906138944789874930781131537344670666642474812602385812387508852076865775678034374327110278746901748164977995593231679317150029953095041570800785119840076827514818817165393362544134202035940385959266159331141481789276545949290059486457216690336764813028054203243192940892152251824738170852667252655262175684945150236646921402832914483378779050818054380532363138069975665558075031568462590409011117745413003173521607854500446373176617882151544128330953539459239761882525709188326587925055964126960063459755987508842927980700993323328251042761125134846111138217457201223194352356204178521636698636027556614355825456145807163132305712714639454095842839583243491797121533061453254438412838556220154254853223909566836682083868786366008794126270812868121241707276533526968414662394966507086666799072922041254997201170951294257235853852078020031904739844608159312270879958564389228739237215324437196738298376536870802076819050959427631380510345023564568404073397828925545374275176039967728390470140393518521381902146501412837684765631731918510091943921942478724381449151788496398762497246197575339693734843507251561111265473813202416297545357085692046397190955554749327448663731196329890109325243587258383670146747093771491574692789159988420612495961430624527853227865707413414323933436835553181891357847047022890321681383900100164910110835032084076955365365946282893992180530668881486144328074358834932523030905717843359352382180105960639853075845838399233089776518155364724942236999551711916257929418930557000767567296321048676145862911342022204921331067431507857630707335390545852571681790203673149353494024006117065243080905421983237788015917521706653596872634316338907243182530442192393737455868786532496291272563943480343247767150066631237081979787838959774888038218678947041079844184421844881248714568708132762097628317122522172101461551208562321103816466316129810094793232756287225093002844354502423902991994790860723377217819663527362406455215363062047356595402766236462859131680917011053598185880762013783804572421396075737000894217795601386147979668446828369666096793232231396009897071383384129586571693874489574809508598268381429895490694823848116144833778810001120433683910986972046285332776873957146980234173045918694569084217389176726057636383159307710617712486786157687435954954584983045808151818159721176957974203695392538269844644333177553328553661804631479897544455420189817482797098436311771154155740303025534692946233046463293506310987286366836743280674777205428338654821984535822740701014746564271980236974377102295868613262498310552013082761847069157836276956680108381662865438080489658953021601695982471591908595074413734204591231911626980463625472826478237391757013138134290653674475484543878938378337077820178800986579927439894064543717478253913970665797675977919973998634047865344673432708019536937934725391861998234102093415894239554370019073610522540583035897544676594048276819514008521849933343909070216972016504518746784127405659988362426141648910840702290112226286093617861482978490375049141933870026703238749034169277138209290134651399192338335705566167844534127548272671732845996211858123711798578771920074223258340684088264030182448912259353660631373807492386548606995847718287658058573093446096857475166826857039471789082743161533904187610403187093602993501082646425610892120040759712453548717018536083706746304885267160863471183273877220096770913156949779355577092287425602701044467768150354339860758273639990614569222783961660300423503836439273340127970431797945173726722373497271584145791699031595580086642151119406506543165637919993219992561393204114645119603893734517344070896907906110641757813324597321013855482722687722509117564360616046437543099516109900431380755513394688812662024654480523189950635199593849427711812042505093462190715059842172736158525376706680623158185396227966281475170138744783532153885167559252389481284785158202392643801916699940828476163754908293140762964958674209674881437503336348079449237595981234005824824176941224593975556331934374381460539109863001172327807664445239852951218484407121575828097409454626435783216180518185641996179486102879276993023398251444763700632062198532077867697296601546041963691009687756979225517197614349586905705950713073066528316724886044229310929464626819778594586050374699262385999935251891274835894835372435109878488369587249416898831870356536737027476895202106187474669517441988834963809381480120797755757090728331003209116888306955318567652203705055564763552355398997270290600606532548926421949581948864991540890089255109218974914911012901995164080148524237528427297659555480891433817616286243712338349991182052688987060009561909303974436044630528973147971654975006313124171849258522083442029406615787773273532258340861856678306997148296604106204083468596001540188964739655195118441709144325172586311097125432996154766187307745950325712972987699211522698312953424928896853791412272523505540418649040730042609635935615729876667904538399280117036466882921358416265070528789267434834507781056722483613246203779051850296587454250053910539078148912673817157489048245417338034790219005674370939878102718830013867472976476924787733966510788105664561577474765882810076023595337319988286178786081912884102688353971878274258851025765804185225836255399533296749370327383427058799609618967842104442490489657797225378113812736174511491805713804775255896093786165830766878471611076496211061752713137718070075257514803303286938822217463904370004629457243695447749307062137956677611244230631881073711280850994757297700963923949337695177679147037361794812232231661193896232117040346576089552649622571323374424218595095293394271398228726618951085314640795866022699664431198978693997480785502887777662046477941267096116674790326600496900363895628133635401079860533341321836702865520198045147649000896863600439342190166777022949604075736367671129475759727298563760344871823017204075254056500127826153248746164061832724016800956793433255383959138676665948584751270076913758442880373386185457822105986260296625894343791707283560546599403406487754345488875749623531542937564160139561316420424905181978348693239598924535474863877202824546388783100222669379947046871354881781261126139956365240989765692053867075365840181239692998546496827045568973067199767778651116568054788781264837613903344905789076622404749543932196777060668443876476946243299099614454787705924049007536227738858975160507295237180371674898629722023090639508789872794105977514854652330026108011320376704518075936505336524529059283978352869052793033502434692791873273907204146260384621067269115795302272455531593224836595557005125666876377643596876392751841345706815125938778237701292631171799149854385002502813467861219837217585732089925485517772864253632090456363725393921473963591182024056320382662478022432547280689051340840764347647843309951375190298507452227957060056265097328108058926329692495864719423990559135781267840824149352245416129343864417498208642324858256152379465864953201680353636321584998423237928444704073215587136394704261060072784682312651659022868061180698414484614164468174230833055496172887170667081792987645075954027993682548596055021507244082418843863759687450465135962328376942832729811943347396247030285319549353030437276530351630178538681686781203168196191600102329709784447145080982828861925058790197827100543051579367585336309780771032615346112490291622478597845780391710957250406128809500294659476320523347857350558143675139200705629023920757327944090392909810623488622556660927915200778419959036082516285192500726668780215122002006204795766933649921386292217656740553593159094582488943888177172113083356716551350365732407755170671752490315071539659253182137891523700207974719304618711377114051182301730616436146273420420395013472816645752293736286555406365915466978230865292243076270664946116675485235533822135182794043193924242095987195331434291133939319268216109974021522513923894779299369769209587705460273710335743992431653204349262643739515696306088754124092226649837870382044115545439976422537114205016429311018887627279991134164078964786825917963873096288610077548807992292961824269689023128386549998285975323531587731274970166616218220828558259867329199400338189730407242863740480348266432170651539463238036373546211091960606071848279053113258458025747525891615645105436150043599742541214261074785247680465501173811004604084703643997600766874185938425680477017430386775414043810384667146624399379007760749882770598922668947583444068388074210662691104898939123896528988119782876199876348982916434522205336252734021857536160568273521849775284921433122524310914284752208537690380253364886860975033329613259960649366048456234058338624785487079359433178262081430163579937336519054094703257540188597507637880268608721743500198068301340514898002032435813482108126577664241240196382249849874632755158647130830095566124220809275942052689870863320985936534541757926270065489686749326845051304167318104292614964179350451684277586899164816806260213349565285961999216638436342121645802391850434291567611265708736399489834404555116545299736808186331403896874822028378178935131984522861212163988205396489007796470153349765986357773663974768992358694895353100280432578940733812758007155467583150962121412165385872400757273078270331028768807896727848903507914296124542410197127579983979966887610812735913879688500112069172626866467280554589800098742393008936457381704435797293065912552321209069779760879604341703240496827939483416544727971073656380812201137918039832451238232655694886678104914408718410858867294964453278390776497312720243928233385852064768069416250139876480525352194265343963940590061777803372757433650607570230968687423139734642884397621003854076506347684426236771886305249855720381857215665439328010581895900067992312711361306483645064775672668806844014325104427951529075640852889652001508276731918307768777509355836684425691906453941762195820620522047582987163007179614076556018552026669800893179324392714602618850970698820554788659891271852467971389330274175564724906163053634515412445057179923190457768222407695738670439633318978626507982527512703803565863937903732921739037180226103036818685544845862355075729380346672706981521933451356711457845795937181839677111305602617055926198773170902412574250268956604264668853032269989666530566931091290012201205362579503026043433578840796196960614177739944501005311351336219782862567281205239745916247007004742298394849657835201020325978248194882176731217962024512151236634235925758454794933669567529834454325467854901954927061061088342894043162871640438627886069524494799999301341137652275485440221940592517625256078670741251706903953747267031747648402015457261733410915631854792260597482963364827999229377489834600401181444291554563642697918525909286745778611755601294310507822984569934139163781968569697994701035167684675491403361542303518348218655449666794997113647697679539896521464023102821825291866657941760113524758835233343791436494054821776734390555462520038910893014303658368091710627965583778080169849707382154594486148331049386842434247930122875030569345742764048526902959029485880381272774890307869624361087233230282631932488420628649158279923966292023561800295368358239348895679135533925403292207585572198810998085231387190491367444188556614782898414523620204850117825265284846119799791342269668808531411361274953768142074877751975271150074595912768471262414047328768792194783545502816349188050859865860629722839644959308871907205798636030174044874762564727995362221404686072757021779655587646402719160479177149486637520383450704524533984844911084951421050560204281444497198596229823491335535798432023788729099805265430488681620205973064335222195554068582097849172145522043298320031240254023155428566054953689334871867969676254685118976444962218786931224122269522317621656450307744901673378805113012205965459060519886656133565024270738811486044140312391274898237092763899477480143174170181990200111175288311220574022529745063400807510101540816394977022594918574472485053250968279508261574008420311167312650507570226690042993522178190494190112543296997376843547607490573146571111079012056866860890209263813902051564030036814475681965124328346742931359293003242668043929448571110532268529617413741238215692280754278766006876347612950599708469926806832533452301772011321175007320385587645655817814354506196841570259262396796287003625279094072241040847632895814004911091499289278931070670675117933546472480188863291632058400014482092519054461233150338848398578976064108030346105680942338273813656815590457800778219703516509525875638748748455413812500832241836591498775652816478824050363812942299264070563289111169933479188230919302055210331320052709820605390968855193431421275675795864760403896906024119198224663719948846057836123430162729912124177266007668320637766106448025884406270953208803727617846320596872337121325153367149044322100150193543079154091012797470219440953008965698232516411316002323526747579229568701984212810486720803759661445813292266328459242537728487569180041931419284736376193318099195158066145769992415009076720036554622757908787767657914791923559519470248237597962886296250195610561004398466024766052476027200737952429050384696247649052712151800788864642487830356742043307631038859322446721070158007080979852459147071960724084290257105720519673067512253330543106650173358553442607320959077396941946773196613381023238091154732016946135853377628182253407451017378270730697208290888466889004412096594333558291601221616626989492734831441601069335376284651990710263196448034862978440102547197289057868470910635974197341109089631560500121129912140706001004534884887025453348055121441288659549809310725887739947461741912210709706443701673907810767868389735478410558308343971414957373979516415621346950202035359459186817676495182509047673655073259257925876102067341243769614330458174629105704284398620979989461809908104845430091898483988182189268028567853800696907405073820944426272204628262534821595889640899915216480323497689724752387898015238651549149748776626665120520830405650793457548601728762604609064113653213017842678794140551011244944646804507118105592784037368026478633389503651087390188240951492554299680786792867208967685307467746360800566746655747386048646284812128340807513550424730874267663340810189493804830818527792346351812704400401170712155588106390552246162960111608406097007058012593218930087226966817053466451271041251068055705500482922674485583923769921570492764680476648548798347448731201174485181653384590435690411079049450768467821241000348987332978982767052333792660710236185875422621024259312412197476588126954861452763535702528283302814802967700757664857298945632678723732717141483234083084223341853966739959278003137076990788537384817872347710245715754031227878562140568108493795109797308117518854848201139168064332489259543553220170234714700646285668489641488188325649512048264677552087167030565031790183697675685776694313304271343481140189003475845976953995914254295541342665149646679958157323168273152857116389093450456027134800687279407987554267783217855451275110858727562177799981269711168458494289091999367413900138327292532912433597810981508374296040421146113491275278390112106034060016062320163627893851141651709917194312606948484320805670096505104034853951101886097327665039945399922962725546917715007938893693662264635027563144136743677250710328216779186020410437126971699580939063481516089157765976696910112654968270011360840332328856601498799233304164492735055070000664247582751236981693969332106385592394293099072750396327978953964415111270359854366639204994098089995617191860610062188084445973660214764003702001344370988099516999510162313563405291341963635486195100160460792657103521494300427659911802313819412086866453081181770311972150827005377578251139979501709176464109892604079667426656504948417272265676122641448307241114851143264021140825189393472056554542879955467623050889793422201113377716133744232848548166283534800834894432476858937023529120034664068443671193637864114049030037481294313243165045141879447281701449106557196627097960957773378807626794547730470749751420761992281063973995649558477875854143570211249473548752434352280352707558957873577825529373147590536492786895351852809000380027438311686128779464009494305772445653607722838288789625156012101251709054638266635805138179850114133342621745238933706851423815854864712122224606835768977254526044233953850025979529467163170409245957645942972099530804206805665103761180311208055690001460177911662373050797758280098418652614701104792630867875587954926549355379221207088199373876278666039147518711994603020278792259754309631563321707339479298470432390466633408151144839218678153702315322084099775505207242982279891191775210616147323413782134444097376318785330827195297427518525912986836739562196086839537670193247809560557960033337906085665411985199405316393804389050843562136784051913316693563370596641343802023507041230609805990028441143418929233344500335127999073896105983596142250601675673527037196228688470417099883070460043061442348421398843873706395265076127927353185918344757213847633843697499649628299526911831513781421756287805769310140737990059374460420663479173846903010615890124382199493490813599005102470947255334508981431280286670572960172551547670306512012273396299540999222775174228635744678198240426271081916527437516328595008086387279963177289580085702343742452599828474398330979998991785693400527366360438614628758930277021354914317895918462151676529930175125353221246320572496241349574916029160847168698318646747150974905945295917295215852526569120918899526377198471873067535871490222380150368275346184298934037134446646689944994686946769939947053927033240937174956717259669624287191432977690320123704742999628186054202117012899710411252660119453979011116395352194059810026816283755996631240515267024427535507516513921179979368091165074713839651405477586394331994718890585143951536905099320939606410050615566236181724870051616345856000918123628975370395904394980328670452149351678122200258269896469185400525448186997350823297748609292551862195232155296349577455463192968842640482270290670560183989796173471514043876215101514398922835045245849245747775434388769319992877711032411595904330808821973339797172908520294739106687640174723932700026989524299766349437702119373142456861173525306813255836695932275065591275738649474909156682507972969693677398949363425508035596594097186930738298603427470733274648727993225432097236391813324281749605835710109680116965743478342416129148276910911590540976731834620939833813216502653615734667438765873238645686614133516997755719759111826813440693083467901785432428031755849143623026416748218337007711962451952519289949101735391487378734973109372764756536569341014551540192043639946546591868204680797831719303188040012908352742097184170122527031504134045312730197829856439646172020401504175562234524319648336291981406617798464526906505329180681314777531538877882701381018514070817628032320672812717264365078347998886127798673532669103353686078546115573998526665884929345715614514173556648871556672642234008166619777095530983929526814728452977969300715966920801439852975229878190239402758877601488717065908073860797245407833442940189686593958020940647321506485417337496226102477127694780243043972911626224575884659200404619164600011878733412813202760470151585077584798156996814465730115369409466474523564708410037399656301009110913137494554327555033134098459021685581557164809371847022224234477317734709243491522654974105011719997978793223830665061047235131549010714252048903524576773892822643401842715613300819222492312010256255172499047444680794314956602047715565381733084581200095186170586126102448942235742811191506268069444954980640826789473267978966093576607121325707851568689163430584363167424640305749763446484035705951172177742527798438121338901480607224688043476480299644017437162266566535968555776866691788194663498989801698596755192674044167126198099928401943066316874645449798166422207561517769989073229734541980615617193676928363834121830419330088671358984536271617191899333809634659582424379231304237920094819704817258365147756551637319136077437980319775104989631125978156040300095478439705296163645757268331456223638221147578157176146313751245859930056044978229197849538700867674658534113666442059636759676165127054256964458431629957061037083059500112000533725794820319142240189781539771954271485549715466295239287451208669553247594153276226510183302785813685300007746868907027868622395471557356646239131155483813969410769096176179151994091001993537864068540562440051025426533145828117597744417753444011707594557896448934750162233503109321614198242169665639743848663981520758622699967021069509203026726909935940882984550169481196479549186782528466821103949336484776192753470063884145076231184122448163058853991641212283025757814034209048517937217319185045820069322008428381493978907471396703657138472632356825934632303849104974913583057669883313613112077555734559971471298039567454936991902692361158342638744249670462599148054672218357173675275056336396348578411915028029919930691255873269197716154689486697221460848568754830242876415793660474031598893400869898314517245300833878675405488921536125325479763556684701003834914565296882253493487647447427966285620785845342302265149703850558605771390923562201034477914496039312957017427483375144148670581609452806561786972907000706594126986228251105348236324847851959279909312705521056562357187131536377996988362893542447929237156273722566213535807424556385002338310335654668419670635781317562790026929046322549973460519375225640644904296186606151370357342680330538290883125076503536104310810716085666753609185013721625612140949159417068577641459070381540703457398434093267262746458633660274682340430407317932079019118590825898055785380352447511734072599790249490630564307399631870330394000807015614923685363980269222462173685006109953963148298970288693102100622192092790139767150814139295065506204791476761628112052955433369851943259169481563118430376796055586812619249196820081346186999784526085520001130687189644135602608315577103779270658812468383282956377865742365007999896202269624132203786280103658100157388832822712914252149891208121597462529211179898033093035373828501505356100071736881181440168873006225739941681637884224697904982880400008903672420691760501086193690230679798072425630934046175602724791256558628806553055778991633045307390938263456033234274799293166612229718709648923662974598046071890809885998781226429721066100448464437793977463863334863403930164337498906500298311496689183792347412062494567769380085979446762263021215260666970756536469035474780589405276855590140544398127113082926656838997727641038217504268749461850944389933513097125178757379913302754315676556374012784944846043315905715938257954865512145795601824663460381509266164006426801715687020908854963943509577733809201044069418769945406647771938555960316217036469501369767210210441232306239318407618660902489851778924843189372070254505544652330906136398706927505383511107751458612617460490274456515622211817833234483407809274030931306536941170515878737062859549191224102209811094529017957502462229852666483126571766933087166709989003969298941404557697106629319529820677392051818633334799510655493730211827298924313377047883392071544653080346881024457159447991741333804543255940103050993839160479434608196611974415256457068009136595331590715580012893775647673530572562616924258499921686236624492412464654643738965838300341990421168788471868058495364245595581804991626544079411600370901598615955001229190397312165106003435135190890415363612940792877575164939679085762164501799915627962526428857847173672349916305027700807474627779347244613732308714503782655133282547100009337990624981082785490248825848299391511900676925086617022316663292741698050956682118349089069073248807826667126278227720514094699653009719251760138998491281418394964243866936199821373126479310770584926735854987163528573158415230717604641295460702649213776983411653679963049988560317780336107096446200216776595333036105278776409931915135978511149563647105872986638044956387821994737497087069857063381788427578014683484785221446419221100294523088571801864916025738048929255265418926375443995127310859590057146183016592047729790330817034460482383556720642067548028875314395072842484180433415557736465348351635827450956256036641985980454811626935086799533047948618459912107596873730814475398708145939095484797502819776304942455588321229385789714285480461015739388707061592237932711689338501719276857541400498946276623219136973531145605191401671554105291549033708854960070606760295970929366280793970082559418943895913360786315344364413509744346492913779026584160461647685998264620459941007701308661789315729317887132653500946527282965891458465823343918081809636371200933856975089828434386559461901499147345232470748165908373729372867598875856479341858321068311789533130102233167409356834303522916531753478466983567908770780337397492710164781147177875235351694967371428257431059831680911250896577381545811225511481936008188904997940621472819040169444766134795787892725223156232869766041512379855618091376771961765726539716530875436637727531893616663662657180576319794724196695531193152468226488691634741503392935663056767999253701271304070494382879117651314866284981853254635006881801122492746099194283117501816048437347139681717226826094552696029759658886952532799453853978954019153413573066761043685258614715381026291557029159377833611770407961512808325909414587515958926599823859507230573795048693145298320167207988218141656079038672747602427099448416873458264552159086685969370144370182370062637823673696970033417470913325808366059032355271431390321705957202889808405049425812426950223498785754024144832502583800313116501641298596416142280205152343552421745371373768955583021558103530493708576219409882306066021923003876344470091399472919729039876375180303697367623160986011821994939738875219046448813044649379688459672478430418519245148170940933897271810359803332676894394423011528892800724449035731130699581126950204382471651029626962953792695626620399374181374794723919805645617262228033189276092583138719680154383466058201515028383628706584859043530762088432482859887687471682182823593934277972298260411139736851590688330126020302104100838118328299728090303088206283528594554669325943448242731895889416471829186449032873011149772930842895843204619014964965104489825530636401287557915873933388396450634823536440264292425941297413023253828931847419302857625146121716881030943657589641300712275175195495417974537657093461582637195783339805837338838862750328147895639735675239592952416612590413411735817332492713191348728512442839806223539821845645213652028010041075890674235021659176864612742070330022343696427846489918571650185120320890543995308688106263443530436075482312763701093024372367646968236108371764991999260099738980142021484655478380486079004652733400555074169404449142991705413473451763702452223611765030751023250904424556978754288124669916620246480348184993480401751656393163585106259849022008675995239990775566772363531546550890264801219933105446133799948632847530066211680167098135831209784134983585002658710526030082735644425292823048888708895858119188683030883137610917519148542767941795654023401663710616373912409572680982644451996973029275918525148918256666098885718876755642766911260703594605552301792356085824031390481827266924159598915000565839113319153539799074664022577000766306342734291360853980075937604935187274249474831559995979005746429812792943035222171164917436840329102583918389208613750871883884881615044548326586902780966938148453924037068689421938569621046029588912812356351233600399486623915457504385548795195496509604219425592101037260043151410989984540958608068075756139058386798414109452766558400226557459084505127528372784961800803697693254956917605157002219002876458330320828020323052102416115705638662521992268833913755215341635969283641988198297367619135885778925122986609951980373267569946418456087360287115415815952839759384318340409955096780228001572701357493121233771622638002159827364777568844512173486092747847858481150551629443672036485357764934716335869902737029548519515669561378705022787777103804841216223423353786971364128384518506478235079694016477532087079088310832220394684587331735939058408656079409506525282356395455608450377040530735370858920079097976759902618614407457933655517030363563380877120022603280092685572827662060890828153156691848598674635939178225230317339012129236558021849641929747762487254308434301654939405317766770796535776564034643490307469390129619708217500929876586354060067035628318142324723525988984658612874963585011679804768400691311518934931424994875989886308714649501832938115141648907681804373787780498942013393585327360865400542963088909146227059650220885706863180871980238176314691789241950664093992145993693872575046096908441069683719862242397119170148613429662354170506411343561257295932094639982098123595428954094134769981452816394027879584918353316199949445303485567192308077557333197708895540066793097740102342990733831970513151354881010373459873185854893300716243356994075305509395425473144442557823968795950327865240225502604549253717743035843301704576262738441535649957021122229206176808442701193297322870389221636135762446194104504020852212969144802465994505673877545663088329305790084894124437453651433794520264451729907220400660493172380265498779567462295087825513556557940659155168163588877001506831436162181120010935510321342561189455794873446784743290283929135140786316087896997705109360018877135342739480466261034467794133993094048092636996682121366402042137239254754457322220930729029477094116246091729361653015961432273018044465894653962644885753555035964652951203069363206696697454145074416238395373290045665912817776757353726546049787865293462290800359231223183076570360322089280999129170309877185199670675353410544219951483816049028984361866066996646136195659474023621251895223369254082463800274447383128864588963584789350582828970502254395177975241446516115493886798688080886908674854959474666154979142810304677457058020340284619277247545847450486829072243596437523957738034914204278782759022935576772421574626811265974515971681938843331591046089257250334854142556084138002373828888299993755507114711046226987097327283433904996428997256820893401169192077437262656644358063424940674961184703837191932134438575931507972698723114348772197181122574788746251358346464597751506567372363960654108107944758271688338277001461722444015886415411536403428110389503156863291735907352284507626231293319321117900295202466021383493960991932816199247539897451033739220776069506484300169784251304474865194366858773714806882860491672798290344607498422612302511894309530363429125116555035263010820176813186574929353262115110818528301405611534330954958508714721623505352382984722308629839746492349233549695581287021421728538603499332675118376678471609213173353461583092381376781001024463408917730014596401384160454981441708236600021689059140177721475513690453737104196100640399729056179297401593238508001462305648287980510362019993204313541406075683906661895938860519801839227387633980571835970239307268665111352784325780887870712153097484035814720297407815777575993921851252652582013395097613660196555998528735802421486509309110746752732502307323887203502330465745718601100370372059249171771854309869921860464221482466735929763779759333010928322938081395739718290588525639235677919417704075868902071482502931348800267132129915794238851972435438853803841827777004376759102116064299245820654874416070643133211381527805139290671973531536854241863058986337944658076261894132015647268866990998564483602817453447501037575717459997146121307638568029602533483802586655262923482117873120679377613996689141678814475163637837814057609076495001156036311161233949643917563804346780864797239087744462358886759900191379642151782160548401598609410937943354436789067762696014452556102378462090097805844048126852740618345344705657922336486387765137591735963748146674894463634680480622001271237086231949724562646190762534391890582178459733022304738422201913600003494822072886868385383676919288913651286398196066157469623947124908321502932942525596144538618315785106322229012260497896470531572113324019847752654922269213146051357471345620212526290884424642644624444058926068997407252781344331618442660541746795037352753546709199919217544576445305895630130551119911649564820721486956608708808294692389317516316156190435436868630458885352810898551627009992173385831638522600144668372877349284170059996999453845043042357730255029995755849276059437026044520497130388919291789701023616216194919120925530845446741590685138676000922355279704060097025784516488630231815628845957459142692658787021030649650009416689643103453398648893297030778112475761779127113167530279354659282729223842185293400670158160811829729534932696809221896240464922878165423654772680716841777407665683985257461152541478730583900983042982280869515932982422203919438352867006441103466375810652515623261806566851874908953836436563568335107179585466801211797299147393374059601767757040337600835143352464622095400268388730637742661773677677718904767840418702863008360676986979795114670535735345347566275722353286908277940746619754821818339097936146742575256209371519475979241769400650515790983273327801021469719030909793160443531603514962732295082987448076643237542571036356103370387015012565879072767451466805292861465318308789499506573898301646473831747798159545231614234248151752891058104060144451350971006216185047380765813163126907751779578969153862439644663969717856505429872368205640561533918738869639169474126841015658187294611713196851903250290686970025345756875122509815034592992914165546096931528372383875944854122236221923473461013688014009810148228540579414057826247382789053559340250571982304460089048316397380320657463978765373795494113774842104974917999426787919598701572390831751879944147856049253636740870910561546846857568400221820005628976569028754333526173508341068492074780994722580939019954240348558779768564244482804048493964370965954046696229682319011171712052671827716378634688556053869911883511829718027633593838612198950058417629150475858245096735637976877143557347360838540976087388591561393774010228137544072572630309378523378038312616402585800928075609773453431782492265187385820848012978146088145424764130892309845281186091381342313814081536022382620684527858869637625257980817654617549732096961613372399374286183349140326352962910143607721208708675634601967915847464753857699166579375116023490902914626862994561677880550588355885947626303212552609162210070350745731969956863327245186265050832628630778522434656938321197982983894924481012466614870334132367109871630598801973679435649542340157194108022242670064172813395102245764742772120835757304929599537699974741197623874156770137732855872223969039612757856388403865916510792219441769121469635918213850251274489455429628411887731421172482556062840076665513873399102570746340601940596877970538171236733137468056097193500543045885027172010835282033686528374185383341350429154823833559769672288423128309580802409424916442188314618391126267244732653475637526782581026673277161176820363283038542248942184265183132824379360373199087082424884206664760527218607719839816287688912742782651749090217691317458938711027231155575093163870020719640436997231644580947211375809350767824963872345355204128676515891978802132268841916356101844026828475390731225190751241964183288002898215663818320008673432803852069250810069632346601316492232498377174982782724116441417507409737776325683334351582886345922897540996990887841597523247234157410225862150061652501584646077150297415526174863078411459334667655428067482546073667337275622545184595713051918592131482960255396537401873668824833979664393679979938911685808876143589918561459196102942312744432470710279132015211609193716355359815513541744820956089033774599488897174521166533298125216961603782548407844326147878480468936871139668506965129039672446072841747219010820396096561921173200221620510126595700938486601288443885382722882139957385043576095156792330839418337861129543103149738335034423061764488297192100447242708288798625522761195472364711437096944261767918831449089027051445095044602427306885479641805590340992885746037939110220155908255477116795738418769257130224933891601758633895930671299559973554178253029309294808822154387489647998296446197750624288127181239250103995676877874595034663642914238963465393082661892248675575418104181596513848972319362178988949663079471080359755955220018730403532128106892284707784055374291593890145144277568240005551753149529803272333979049682716859439383908968777887637966101572251598281582543027254366904509907680326742914631620451753618034586003493075866579124745184844063050835639288314332311987790629118302184333773837598384025515443376093488296842031412928003085670186983758052286135969305021409597118202395062311488850553117013381456252418308092684356043973958645695365273712590781393227136495666723122064990180280576905839580188242500762590770257222100172470538032261160544163220133215122935532410964920131968234975954124843175176691468244131435427995273766958949302116639053420261244454135857772554003694667106493660635848435272793130867874784925302014060101879545489444667268329081011928304942776906885130797580130693825796201142249179960884611672128772425333870135479575873126690865114919333160416663496392201730483824206095236127204929214033442982081711292183831871654336718831000602000555835827015084390480500012185293917247611684298916508048445936893417638045575421313054842482174274619689825690668137371951040063547775682401632733478759842781962101603840141861559943028916106364471127041726881126062427443686307935050532956928039976778933796016101322120343019141521782050496389243764574588745338551204329910688150238341826114150901645732772163109853668102622470545616779627885808907586176075916726026770992660819476505936121471733236510007378247847246905176249793042351973139905979903088624510774145790077657322514626348540815649306343292714998371049361626525773735234065439799251899545859335915735770583509967065238385470284393654608951046888558477925235907460817378133160370384200775361760363315474777178463929850397698973290759529705973727797984018875512235117473508669049086086821224935176068029423017726148117147245903802092408247001337635225114758339592861432015336513852920027899953217258687129173616536129141411938541747591531422003476712708378102319459556354675592978571433470857377343881590090029334635182805653881824399515804244572467879606722181019238003855034607729878661175551783034149517674904703440521811511015827832502192527362013310615608179353762123098940270101720451071090835523011971556959476224931829672070196611584302206511878292890118461129223867763948123675232984266344308553036517111319468789633430321587212850439483472403734117574617839929532197296593266807578152409021068948285881803110143679969398756905705644933522681812714519495486190883684414866431155004854577255267492258798697686052988851512797756204616394681760297560240327795224580786857688023286400228335550137425646200251077725244835264303287786335250000488968885863023361426588940869918179577769836010842232232987589078210085878759481688258687103057216589519514275169929787266654668500711480403272439529530798392253758501681395126041405707058618493252028580147103238499629264641463338082357174230163959604911418769956183041363056163476115047335420474498959742873773441900261622052241900148514280857054222928340521292945804241239889655763763931178584467273512421791282606212302443277776572336480650861334811853135211954008483846748787887616835266822865821086210598543808557591871781209804651802065612763125067949944627518473347364934834799216807044051353869164704040064738864775025915797529248677686840808897158095575319204914581133220082417218574406759693901547627246656078089146539989755224444197977263957011170595035445187326022735166209542026507882059029074239437791578410610448381208864939794851932467226149498760299013264918764785250994772587553693904254211552271676158024553663467979498683553463345656361674514473041812103741161203916059834945504930085542521204323419163456512524798497119832887535776991530620895484381958826856210241833798710698261189270458937830044146474986662099224936590460056891268711614295493467922994628687889552445485678715878856258191794001599587995012908095629681095303662629734806067336024452204083377634468748226039445028933492772524961692079527416110774535331093205242676443109474079107005459636680933042830277968899718502207751368388247049432883044981290980585256866848067911074152953102440053252979335145163841454839762483832173182775503266256891587310563360482844309137594225598716243065494655939512177457647846622610781195214990151768968731394296600518245504743687292052139507090349640081585984071365878540402665974222845502614984211319609245083276360724517974416845216123727892920319958590722459122824388923231941620587215039035183071192266639147480775348249953060531359339667372518124701837027484587593691184362107217232900315584512293762105943938719219312093159496955323820829812613518519380980191303492981002898085917115686839112471933735237074451512934827277139209579810491291579748676237699990687088678846480477376389625162173688488624743398059194017737310315632553695011205912960711272677667334554317493587885367768862652568249767651262928311041062950614285116673388721541213413456596568034251295968365136307304680367319677919639701309327088667235347095086675531084343097750348996235652521786729818963888583787495362737325220596809036330877704949383188055428001210259936485196530637263399491313148514171498814291079869682902497507379410065789085219510084352046641146819102674278044107894933562949419419449888673322165525938540473020444121227453486272371177490291655233164223940182844033300936874036644023297326835926784853783473672967991108507650417689500584727706808911126890964279655659244065380295878411828050809448711716105249828288546410066977682956667407615424987473223352694311016809941009018223840425076947564386043824944404547185659747527898462997977387526661536853743690394865282322466987617988978763514948521776849095496612462123126298756521596432504167290747716306644657634304363471671275244118220057276324409295187584605841524390670361158253185703475792896663455330137226396906571805421639820694821273959559272807247869865953543020895358177840937018024054712742497369054346032442832753174140061188794371284631666838413900715551856194658459940979488609938600929522967621725782483634169666923428017768362146748388329151418162396005278508424722313478519807148184755649459753025001939569820160793700780687728854531230562374809343666262650744681963445831667970774810224618334428746090353990005502788553424873222228576636772147192907883336213911750637880029416416172678442898064628283007889663044366314082818893185194280321396580401914925224315363547374674439723485558489414511487791647635264232814106534453531713782332418013730666700817773189931473005098107681795543069446696184609093750588811843718546838825766853932832052226644502141421695972906127341971381723373120182975094671496196391532012219322823152155141526735627843584852741066182977121530369068477575117309941087683997874507479223673880217747347669787843220293857104390638276497796767136408492856738052522964783590268721357102922669720703373845322946897659542026657836466648776221617498723533184964811906640718422097769476614488810152254288964586404149414504348329194343447610205488024323242052405968819020729658464844878090669775324993686244858636193274126341456034815754648800796308679565781235748307138035049324835158161416124622963987794267537913487638744836330367133108842132499153219012004621930777254979861494789373077906452548590606111153573539924420823345573951318396820767527765891959657920730305311614361223856855092798686204296132798711314378239353699573484890733233709673959311974655019270330420975395001549794204090009403207860852063784827007466174227530926930814967511743694931999964181615529761135296518026158947890346756515279022147447970216314481993287918468112936625006044587894801683641723001608432781888856007853503390173669046260268614146705591873741790743764397394724862662422008275410041255884097950555832261447171639875564934407572545230629512760441756425213215538718360047209232202235278215100188458240201650410464037218597997488085822536861423817874935199622061184710120571262916189997315282886479370075747953966364191983418705689138516015793074703105179161674178786650794728537708821268410922793607518201348026824701809389043053723097458692301972464919232375793725537251453634015510732361995916351343863364456631208927479695627622888335166333230035120668320229599403570048818240721350329349151361973900457160311358957430638699867424421843946295166374236516418747591875642235335253740137875564600801209318514810615078438388100280991653805149681912098469004105296589974441764652384205648524786521628986352247810132575286453133867834333664901382095608612831049108760632950121268185564041715204660790148262808364902768106598214491276665429882726356954633860661385005870954996540300979422279837354125099019879870932458996842316636247945947788829961038867383899636739352625940053942127050488745150037748816271978401796314431706034918667540574883984875137145749669203326410419380986959598627040442163105243356248052383102903235068157587196877320756450390156872693026096714559680159296218890378675821542955008448575974285077054382024721139784130450484881508847201864429733832339192161653997953036955935630859896728857687383819710546053059040106539436595994999535904259944337274615900521092776320148219582689774576984461172562457597157440192691993423312871586695758384711295032854686778316368957790500804277953058292167986591916052984589647082414497814689964614576177339955584202103010984709371158407302543729894135529172207057917137066519588638516011164550325490134071465597235876103456065663641222371658561532027045182930782082349755674625395775062060700780089865981627371396472805553144979928694600600553603664392668992319172293655658714073557336738392979095516768788465627491992620187254404773467780423675218990336444033536019228772402126106102714734499983986067764804982514340889581578542057404104995082726071202929909667325233975206380403879897218659726722768957055112853642710311866361690400413805570212014668341502599532254137074303711274974519436519976955666622413400912555176737731081476330704527178325624102246782508571216386683260498258619674575572866259275263604370631018493771855326390373044639827092500480793460101890763546681529380805244357409736777658237424075197715813346734969485589915752532460182983360598788095890885521398215607134740985339057547278543737760182354416462234181201239378267639451717071572208122983987095676138804329631392620425653778555773958248237512722284175801794446709520448346877559561083261700393401303397210442416458344103790267291353295338996274453505170875855788244610597609519606900671630786258733569646096952163547124350669656667963704211715266058182364546564765638304083566064469686779991259366914487693921821441260880527310838319886649332778711307591785612200095326529653111287198531022321554902163238893406971245949734418497004958552879487104057413373873567275870450332364688385326621116813298102878441687261022240384938078101160597509204997119872455582832331134021197271279814467275024661165869646907487410765500207769729580389222417051996205365989494676272523945299056075014256582825956360209682548251668422807497954116008158263940456530072346986194154790067403417199760176184452344307339687309074888620774671741780187830743039103639789611232502750164625614476950575325510376486016583554065908547496772429310145215216420790065006795383202147545142297880970031019692502737351804425936485818415317162114228047273658126807614716319056048855309473021155617288469430657282041766284893969099374619314798723036913927343004809459661407039540693349139017954194651743616096497497161170286678301712769395605355306622195426181813539201049427841456278882423384504762995637171619216807710914935201958673861575153604526423238553010001405257192819793929771971004296472950831547803451559976222320519200945906198116986655838435179991403359461171014083676382582856855151603768273074047012923139702098241689063835228181265058550108830808149028013991689302741205756899513148736985252024666104566048841877331082772534720414918530000718412446100810615024434552101684830159585541447974243442068867541358679509669651876484543688357002137991855062689701449229872963157248546782972058571285569562106891742789882617577566834397769391794333077099586160278661332800380349681038176014359935025342678954800961481431945789579941616020630843092530382677028733467182552477487329402420227556665644434056537119224362403209859751895469864280895689762673393117988589947821525042885819261213816155157890508430831077020099607018805557861004089443296650743394888868786531146513822102151354755101454284146041925675183020435157951824662598081086051059701100819669256430197791281801838272281262301005179674785221110729428705246028779382638992079278167633449086221147698355840153489759172088357590592658641659908486315039003118499885244007733431019363665369094874930864000519915200290345953529939286829895602449241571794640572270952822417740872087268078887210736013554177918005893257132060334490736058338611860305548555922983432333092832021426448699810981348094900092775915739337577153552687454169937113724425867758903231248846799439796305948610859467286281454878475612631616491026796168835422840996662618281691971278707288429005644943695458979231038527074800156294047226054757892099224799071788034797010281859813235532548141313424841757232006507376550939893693226691493640069719339898231908310950153090137210070248172821212634711878937023194363862865472427577016407370656868759255428365495868600158447916621038469071175831776294984902250576292253650615966355556073766877149426932406948072765228926675745961437686773788022682246195106221589070399210275744526460742875798411912250407887993379644308298901791123432323690142266940194492553400431178480124824365471930263515540274598830376453931714793763114565486199341124772956393024624079674183755747642193934342490430287111835690384364553169607755753710959280977914028381158399624067584215274523730368167719186772402909582097962593784290266155039670841134180684269598622156841728825110870726661188257922696710527720043723611138802550958649791548856103341308317391836687658624615710102384435424254931319895460374367933954007267590719113753224498970302138969724522560318166357260026556317098262888740617095436121222288970484030784998973998951619660180330097896761177942259945466896502278252899012084619405451668689970355221874848563093517183128391706953006385605716129609743765381254706663164128918323945590653771827677198071328399639770273462463757125158246560506266471439592139250649790670618942960028566274012162290270797222730648864795102694397235077565286816863818020975927574014261260381958301971541133031187081171664658847693163324289191673109389701037999156300529088063070030282240384278001713351850784685152623541498874347248700490009419117339290213650902822072830946744839728851893868074291877596653799688825738725258443347490982439065025742280164511941558820920920818403910056103723615363755330486262387814627024574211189992521870698298708628235431375033133209750872448149998494958267756837463616107335761731655362075175831434918957691148859281811682961239820896121368539802317804098626518423150051746002695063622984859553023498112247385049214278414055836460272776600287019223868627700337109588219099212581593637614331776671783175723340765658041388668414186247760491523918669717346190887409976445882558978470457358948053649107214531837798934457870679411160485669599001440341417908237532899601712014719029279575805325953333986839182124619743171418754950244554091916726615461350631214454975488802291652788732548109920600055892586945043957565294089177120527918796652810577322557669170635859940885010065882150815369414844096456636060033196375917221586180126049916598232188498201034878875734746567585511524976444853761742574079158585557959637114952298402500946486597762145467866825719706157627367086890038199796741243812653568965656807232397235347126220077127301515675086885610913413063894490818211047573199050427970347496681278660170025112267083693198724914687737579978702326615836477050136541693030978248489771478883406692912163721625520392043433864078591171948460616461489449726301937586441173685860314695295588056503409126039185067154994955399054355542488935329718139223084106206607380945804043245466125878974757423920453648932640050838730378005154580941813991476992763607558557120647891853126325337322361117702727592078492855892512802496022277071077033858415028110613718660851614746182293540752472638986141719005937485649909500327932948986466081721595421030180811754786539256996580097309236152269284478932235258461609575390165356591118992657931642864850892791555370666840941121770417288130042820606623370997720748119515377790750924228578947060745742831664936153003043018590754033573491132545469727600159809830180415933767971658769660520146878260051867671733226014625170442307446895755150243400091365864485930357797873412937589466590784893742927246272127846792362906389976395926656091858366598712304183068492364514064854299156716700874786010844118729068709347646256307392311523023936520085515376934383100305587601032413152068966496802493488440632877341726106982523643644429758469526488582424103345578548314936606203116365164175007751207260111496161141824387377967827469864462667052390403855043530049756187025464032051041081622511646527246299935677557236578662563964288207617355247317684794586179672855334081512485731240653020448056047884772149578476128962612821105096765879354455451338103202297016165772435472801175146053070014069039099079954763399357702802972432479046004925583334183357008805366834284505267450601566530237947199270662672191114633682070793027485954258327512389025844400149430558428367610678289923005460045138563550588714019084377701683515056440245577507152148214687386254762739360010713249615932671210528869952919050826323680044840862085071760462362396351235239927318473708566130794581647091258517679247070102467744841998718823092079499580456419580193230656489959956476685384297353740877673814851007989643727801867099609317768904289329550236040055432378270897500672070060391299859330709628315147878330041806914528373091995975320796477203931509405752339880151737591619110506025689687370143595524227818414137633456969596720967793636989112765408080609075620465374367675309527746026361532331637065532505464321815922342270772353651593208338237296432077420295271213793960143261357500718428517970386777013833946951050437680485959064634999960795973598460240493637052300333141614973822285818365956565629553346025169462711606002056784083605634205219238203226972347383292070769209899514570669366335466725728539596528303265295236603990603861018115658712910878893289537564901392939609985380089859579321422751429712374526324056567890387283728199408500019124652802750985534726447427532927712187882684684008920552152873555599729510066407214702638242708468530657124702366681004006728027829161047899653903761523338600876435755126110251212898470572059540682423397384828820890942010985020858405020688563629861452237841915002818667168595323098062930289763187281743386878251037177606119528305378360482768860971927329704140696813548169177207357810216057013557340457969883797726228400023250824440680233569444220419784809020993528289861694694950474762109559899444098489703323608614191560039175324737704514244444453400904237566927616765496422965182309361943115148962415079450756717645327739893612925252739223198194831123567000400726417776799823003987044902678342324637746748305999266585053960432024204715531437339968396493303767231506573530672736376741157430075023186639114629439000091526618245650800896329482959549270144350029679801597388486761893807714582158055065982947430711051677760583712864110830063343943366513746355518933658179660063789517206812873308189274463717502523825514327251535767089950050496236772272634322886463100980502850230647465894387272889497892775861685337528685623705740966369368833566438457966999910880392413628210955281642575508376470734797282134005916885437435062849639760016742069422749824014708228290903301668669990932363694445030519542237516172348587925787463855373244075865337550874606462221942123370096943638887051260486151383257044571590569091824240319454716790683974430324823398999047943804197634390126376177835269579807464593298206064514075439058887968163532479350655866200316100930631493314146281555482551060611293142548896724718741839901312162989342557487385618707490373824793048516710526870580939493953658577735591588988683631728897128771393475070635963646906945544558313570919992063840163516494406576125011158898295620127434602326944508073058176266628208652625020911395715621983663256732963289110988653967755847286775585860714506815475442761624554846210596953573163734201203658219561185869789653286101353214333525481654895309577991665188371522831099095185999024148983171002020727839174755962712114604388780282484461339669599860725715488986215245590714396854720475552862620992737162922123164886306857848809106962059840988233893741113826570124009404615028470342150873105075084071091866576258331892439285574631077761297446036140247565820510440505030283816574596214969259905175456950398753974226866489684207033200049007319631848423122946157654919278341630192971969065502543767260192414307987508948341448913576993256524199232032439982522706118192781682851458280373301088436463702544062292270230063295662574400831422253678286848227812403565180483497858250109223565562510277844794799012919602504174177761276947800309680117889038225362311357321664890331165672312390074977974679351063587392045506481210766697222452745781564522737010643990975543867148279799280340072290137713372504547649091338405053002135765274084481601390514910320792261038032472508493302037883129527682783815468709437814996384999586715473847165697856365819922375053307155486145717726989787721587351083501720131945772777319761745330680278755352553080800579946350609320389980703540080901452577156827078906926446317681156168737515539396700328173631028298908881845337290098412543981380291013412861407401291648537572893664419413104290082100670251539789831524410306841053494471737614968429117060065221756523651732248501005420199772653265811068823274350894029544460588722029021585545385953835701103354732375773697098379726689675746885150197684754113274702338540256288531759365125753189017046618541143924847666689073333940346757821296757268132429259744037945769942579376445719328625707819287770171035314347129075405432671989202683230603610609942218887021021716593017011546538795856694411443732960719976763009137390716395608809717171796949410507865908984239956723553013916477902396312379902419316912968011147116799973074223903537123995476793345395530114015010374911569286750863414320015989891124165133662395197888596358044081818707829228830494640458732848130593594004135238615096265627731564028979709283005305220728853572089881507846530403168629401666359172994558552314041277927826404231264209294089220459305729978462309015580753278314487726374550441997241231387010532626534267770796834769129380087852240062494936124189509566022066270370578747155416255762714527460174381671732299032500086780558706201295930195929414363383812520076130233372851556309629163404137820454209917791344682899086660975756347727432612167462884392462205216503084755787438782234969067987929035883366089088115696236206023144612491361731431304252930388015926351797493045244909317083429102554297638247252500521465609602895304481676978354870030954266171018258618214373468385440590561583136076424853171493259568869373388788158576316034145631080865535696083004650772390868872081535236604405725315412180504351233209378501094692579799448518416384471212160010138518544715540430997331788824420909700193860095957388893355857800269281174882243629330313810342161484569687861324178120254832945061859357564752989227457376888708708589547852674121054963925230379778152049474519330495967404748333660698473295941799001397387524186495582651989601249361088161470350619455012360177546582186312051615049233745053388458028238571387222943306182099704685211119375014497611670937678113224195904253286244330736475048605168843508511434275610544120308041577541539894211366076129088269939783583652695817796373120521998263824379240882526728930890499141047985602040495557084450430003526186072715188224837397223782279009035103110888828323977695142035212218397204065689051250686734969679949610308678801514867432116338595078158067092611417147555842407443548272291850403418362948217991026736561202654047543172470610626789668577993701757609876189224068272055762044447636092112315101262932516341421535088248385062153427905172980484980498034926499649094833535847685020634332208109022452340523207328102939074326897772063982916586081376374956911690655657939030405774283764407887567997468103807145343742609486784584356426844098920762799050456880144583337896766231712859145504043210880729739135095176693202457844841885543201895182771584615259709260975583759449174656352750357920264261877247271074717110999982884884242401392778383715001114104083544842572245686707055907820092871270767493567409006139411531097728850469643883308117763184613154220266958537575435299344785961277083244581940110588859364619940738473069885137386470054151769127294685653345281304715695051081244864512173263724761557793177088828425725787580885578752306227162927877448302546740003903650458395521295845075718440465733109537820306748482609726110549609122280723069953481607322265592405016841101497177122848405786466638660159736382541167319430433622232355756623594308385339112856193512739696547403791013815766416173705953734578076965464743073089924405104454958461899233637107680411818980598244938359203060003131245259876368617372193236282858213367818968507935937694135371180980453332914289222967100113558588136887137485251295922564506861918622310425071338708099590270290488370121557791898992049423624447676913116411402581770454694063954801978633101186290386402090230278470957984034048111940024376575309970852474139452218100698353233987870522122932312408389258786596599352496699395803819398073525792966115204402462729333194836456079765118360920699325854805437575720206753519840301285108860705140789407953714366314292633417600914522766376942055038171320478987566825456811445382888294046708139820893245264173306065269820852970720377104826518094153366682262139743911523507271233698204508368418999003855878440743145830698083332438408001919285100306255037023790515930040999688859495046991160075150303552954003665489302220023944737735313126869140697195362555336698365896531356443979407926231083983101844962368686726960603538763431295674748308916352655077991058096190803453928704410826209656478306184790860247503575375726277768457814787352140522784988835116588098073008789829399018329576097202035173023971156322470222820622083996452482859325123516810759720984770912805494268973569629962105524011158409713165459825124654979712866059710155546857163113233812754066533564233117828342238001001893243841129146437064043493383671791042025117578761959390193287144986602428513690260871018522403922758888287279773518369404014547920222252550204933630182780690325289555761232778020294591552486874563367622834130308779999615702470760181605709865840709606054821434565126841992217463405921323723696222553913110254693015909274526957738538161161264725808186041936084368542010713818485948325287036779925385277460436533209971367754451193896229763997776123462177853036243342867701448931480802343169198406114831656267794668765835452410926939204250887092982280271376697201671797388081736411028498586474551259215255797162731375405931433826441228919714328439512313722704122802248685651538310864692541454493359926518838726308896732590587906136578357768629589962881470017212939385707154853891145074249304396227036710530380850963988427741095348168959788330632652559981710215802478965581180951488793710966752756303886372613360418312714350935847790584437542473210668011599530882395514128413903484288940334975037360389537844876951803727785714715779285178489520383626832036013469354095096238080942923705276516510653170238089189136222055681553247619404388208716028162461373422536818569058244531982825443313730973957952077293946130997444825464687573168335052815872391917900256644028215012330848395473654390739658450566574592508798834296884138875269447273758393780118186612354443654882116795193692397373631762777452976549955788740847769271180633813341737859014907931167557875056496876376651865568818519025416490188342348444166513194160907880384822306130549855398824198106587714984221053643714998580404343372021885292229930161716680864119593795854067536704380570233891524701945242493931914958067817573123119550430683773181846591703721422205590510051821181221693755404654120536117443458675665976675375897735928949009853966817237908325701203424852626265907073705688060060413644264428338533231637763168002786311976559542573062772483309793759944819653616532484120520199136275135727757316400944433484316913232961162156273180410452745441015241784044732585499277637528871621419120205628564072471169702865465104663516385384346197752654192207071953111454173717293343898051572837660062996545113567323007398085612551553962047267328485102835968189624174861959658208587345377896152333712833339414525441537424927152494467818041167136945793884247694683788117148561184406040461778835037836662765308358840379993055991836433830848909188954786762479450027203121149867064455288963406307942072859565702053237884795888687195810538864678964757641378755469247816855373569262972284757592173510522416279949841525767457578731162810027164648642209457779752942439631834721101174787429238756427270426149159773600872821555611266940971916433410546374950705739876347568340825954304916741038735021728580300306964826745901215057385510119827200510432825519093160352116124217873673637764808467699178137882895261483821965075207958070693592641653891320210831805270866592202132214126998536164117996870264291115590692341414245264153101840553284675862670006564704770525846367846539757179021548782671352658110171833468036680250131538102318781510266197535899853888515420188921900685373384551291870609665126011493403082112352041239015275862773982120188394405737800310419450321121632243975345206191170634453675632388163465584384071111188734797635189244786714619857561092785919251264541408883916562959488844734991336372114795569134428325888617280302308204626009875121588783400846537009762207367137746894232934238865176028486267594389068170501505344873489426380957967401750709686647257814978448146188234269263422135881954395901074714398935469199653217059163224452202784826458248390637923966870394201257239393365551013299067409813008376531854974289146125149754603304013368251402211279114950288238362762156157219091060232429770799036917100599958391578460235208093023159803924670465533003478627502487923359075079104659527801994615798013011381707728954516448192042596340807172904278432502858906091290035707591776647975301206648966380125855878898407407221665563036685365694359617751414528338648477864504111943184392538378385628076219565226639011207119136371517458904257949958361095900198543756564472382139477669112087306457224369942125103299395478386725206276020797100892651663141859580160289149841177838884279050224589918561207923994806106432660879701099472295107320665148223863862729442182574124456160839238031523455238945583358353731863245609500114256653341681057077522057778071994899387007448293009031875208670010675168040827099135558760023707612443474208211056466092168415556032666937159788805477395430388391889678199757374261447346192634477366822544088491550887322033288100835227417673130873734552423475327166417156785242186543539490717644507653213115291391826524179517982243725175792228167893658742847873140559604808021999815348554209386120447103306677518069942121312438679364260968639741063819474835396104217780509165301940795058586211414322289974891233905105858666256267187707851612357971065879233005944047465137659154151866436281095552535075286410732286840126142848892294706703534463164590396763115310962460336872189783377798732007422407170680205618636230307320790933196918852435904569117549430902578423875663752154581846847648984865883818759753820830329942294943106269477707107366623499940231178840649357501670845268533509305940062958789111850413801152853611618510745055602668930285094486286051996339323228197776601682142541937215532606197311687798458831445636365241700347594234417733890369868789492288886879927949299112554996823025838921673786295158834600343908259246115739847790729857644009577659238662817416373078376232442210791893710443794879010071093646035913766586170450263211753457787742989681449222807606668331936547026791633879332920772223641138903891335802988771754484272109217082021959968883875207584216146681633054282065345601979108652502285178212567960802558398810861202883996935850057660642232724677519313417187080862201693565044199391650611362694583763575349983919181504612173323723650491826295603051207217368205987565495424022057610883095190642529429929861972517938326631278931650632793871543235773190642300778198655317327834162796549945045906614471128316653943694250091471702506303289274690711441680443853682681085619753332421279531047696802967280107981746675627193918286348358792684972980556791856283649798502952852694092072736424292503530443527595186384920313745355360490844761421832623968300912645574371237147037645531912273359391210404006191461110082641618558089737916384715997298847190814689635495294658407026788454310253836138733635592975774540675133097369949475133227601896779691438784007889226203606484763577923278275784938180821773843848434032915026274822955082864801410156322601371429770563163789836811730108021069300687792889765560809108880329144156805050374270252148614836455985644687232822197559416982812212000139377190908912258613421344278182104754853405763692430052494718808038382981291624970746008227494375628798946231962572408157795372357748809832744039383362129391541910743602948945906318801465487676984053183620687748527642352109660097898320601889210899608185946357217550431517384263139068623091093348098699401379443826432976429478989745888475087941023438985245351316114624263069281049748591357082605571888347773655386279701812856079226432932570613242009414524474968953538658796419652764206538949033152447438629004856754538043768473275978547946032878282894223451876859860397201898028717682968169853457590776345684886124714665206416241065035523605182544028983790320005390948428769525742764654089858229817520917922754282549529688371824613630286949259770884739939159551205032744232609923317021998330889226432180287912848160836246943060452649149878331558049673524853494859191487711223108349335468477451912402081135274661347354623283657771254181491190076972581538437793443221873878847789453140836735152314781294641773720032032032283855835131153249353696310922729535997480046332172397265615999125543409471208747208410697516126272286621212761992561120542432136620747256886542176258564089568852063495964521013484264519785304949769379148700830818705545280368563115413240095388471605387869872152288847338897488285892592400142093717214964382006921668648348894525395666921331797828321320072365239658055182945472867689632293213795755065209797157804298888647360870639210808934621516495900966084363915572638078919608164532609334265478958639914511824289293838466321425429765998970169298567837955519714620266760831972397094842774437331431422268732948475806323294820880212817784672587393983069836539929826565798884904923742296660559426337412937208081125046210922115551875115773007046233670941351586084643477810283076989644685302768548174100049172700004411602306249661384019231431186588609755104954560103321646668072059449643816935967554001041821609848172410963108761705992341350739411650182706864305828397165782386562887382109316737371797658703477169913121014488932025087127477223499402804016700741926446291439805616193223893201899977266947918500967150091562270594878807290368816783654464260492208916382224155208720271281670220757498884447715627548100431571345067477655007033667890566509554738313438035040710436523998143402338949725532470561920086041489951391842308936795450291805301999894674475231387645859125156113603570704126885293492762016249843888493196028767583264946006635073322003363108605794672429942325854215621302613266254615356574054357807420435114257080263094774081802877646918829425133957186974137861559802496119237515205670313945128393933022874567193545022564271196450391305476203266014929049875834634517671688533044027551495885154785575353291602730342584486282935167211707087860938956872926408659932003414965769433521382529308498626824257060343578690904242350621837071396014452804149619717639597642156163176515886508317960842217549382386033576410825177324707430651578134155714037566118201924141540616578265816015373819005735600644523407852967277259471796471097320590977003879312851011132139210014123036475849820366328240776333354495634428306729185490112691297806501088607241698403146179010633826614638479244840608254027458185103619622163576210596237379762189402071554456324499929920329227243323146015505950453206003021630656643482300771796663661900149139706377024439546389539951312301595569143989053345023046395962345990083456490331598126708956402674594702721707884622906876189862703296936281588827927008712479542745383149233686603987784607523664506323657310942242500402473631666688094907531216285423012415020314763718176636018002237041045612732141812997824393344919579883161085638097366695326490553139318261887413865369438555608833812891775663299341111174143998688556157114586289126151023658857946106768179257329467055647574271927707051237960966870709012155233388417638820161603617530158610406826097817183973141566470372457834837428972008322742541462801475433239913978637270073795451599185241875311268360708033702766387203277930688313665076991379769579229885449115633827155960110255348358568819041040759152979102825659039003191999633729661060314592619135098465563974958388452369300572069574372681116350907182320662503451031665697964596184434401687982207209877548522884213564664639386792229020305925099463983777766921663036409267823066083228522943353994541124544238741501650301564235516568666775195241307548377487830901434388671254652942638243091070619125826599866991347546072442970755427589832993090419606648048271438766595380897372768538873797109508761288246214336283780810186822209572774009234377800528379904408271399660505809604225895531967083725288212656688905093861641500913503393400050915184433803278022115105440845703541807999219439788165429289034036260448844099370333583538153560647575689506203971465169173133003122887483597018333917788869170884074387465306560943140157698993489876598931870249181699113266803369052567200964129718439155574540698009949060278619462666876013294385690686217209340581691062225938975793108433664330664759164363126844795722920843535816902542450167773239505470743379927182704648619931523929807330580613500819618205464679231431376152615525413191709272307106732210342248591922242268248386822322260751244193718753846536056262078358331966095555739013576489585649829135152286234601105041860941260935689121554257161744988012335523266864213686461674346781153246577919885857856006486626197381362320276056733839040469336181195297041594244993098377137881686825550817594191956790394825579516244093390390593218118207098107532017705055638356316047807311932209211015489150274709563376621736309026425537941280562974312837517150946004381978101436012396003798422667886523633572214160492670051518411320810339689748533309116694913972146778071453904852920251832196921601471830229032256300511578495713861319525210299611379853675855519635930128950664942704221921674365439888591867970165490656634993736768674533926118529546274517400322944659208002638716795792085418756785500826879232560812961644499434901658778484326109459146016918898285356049933349579722999683050889719833010379598047305106202335806848808639220130821309880118068030530736901098078692995905092714219841978230350556299733248152525443383730386598341254181534071689488293426080683077585825506711268414931273086904179587048035494934842261335463044610709705229298887509594104235503562593667179505996846516320141811306806473577044931132971196637232124272201120680223095516123477068447069417821809174335665067571243906739422434162748393352487020860263955157085186902257938081106163483374483621184787765780936559038504479034367492021340870296918170774343982791947181172616111872998205770471951334460240058942905330297853656489375918495006555365352383746144808088429211338605703027374772428005979011845383531341983383264497764427044954347244939376930620315548549867459071318972711628027561518913233078440381959666144979307347632764447379853513014550720962771238080220980305205272840852434728656201479173972884795504847612429432843678485992799648298183574869796422388695477211411471886477698510428717903006990486030866246068927771077020123406026332062924271376277446688986660604429655805532295498092573720272569543995130415407219956123496097464037064743024490222480090689185404490594492271531588352319018319663651865651975848330860655292568634118103297174387920036366734745744481272772686146723297601623207164388069646190739266800325655509594070385941155205920951864997871416234957727997086349791031293583227645390657489702752666665423061594146669138857019538608948568147924769464343012525977285540923755829807628077580522020311865570399430501376063389900929038530924103964624364306898207682835529992770255136229530274357535534901207163928902385815889977102342285028101090366307800251075714344700653003764453659816256221502350825054831399504168539098404255165746806646808978529351368596933286409294498741182628372423452967790595582752125665647986253163687155085081685519933535079107990615459601452767600275390186668837972945581409816401059878829683074237378675660044806136678336771662158077396913769020836330703673388030009987229986271079739863183568745726985693712246780527704537181621792106056952224722407192431933145072080186936512786622782036573383805087751052977339701833289107676319458941721825831019639877547763087529528050515502708672584836260320807822991318573852663624211459190301638275677313048794879871153448108598145759332113586838325365905615783813254482564001470054472166990639869117155112158212606670225030229085111736944704637557381961537032650085570673514175275941834759958729053411207210627721607531067626129093203052527207992598132039072059467033139943762060708249869500061869807430355461586413490875684791337918867282066747334352628758018894538935094293672976498919419782815118276957618738363504461302645684483403917336654220255635419660310579980893795864344958360294594744093484774483256915997424155256338135099135664843966154705117706398690871034666270628281334588475222694412047478217271488490666781191440391258372147595813623349662041389045067197691272323568229969979976436327316609863282623009983002546401130334232589282038755128402112135050625937894507807312879221758870764520932725795339859887292689786024630315855983400228507757541984570169005860871713738642796242375302368870207341092524288739563484824609893706283550541061050042444533041784123263450024080091547811864891871647237848251393833690990805682811770549078768190591348962801175900502229494867188139517844542319275401763062552284080115354928899144259718104450493109778819015584191432120537896806583527742879172441503747171154719481330614407002454891538687155406249034296857623026077280704503399053004460527247984359270895943001729942704458988264416746258585655981130193712011031926709964251406956026486806016531053345569146314587546413980960588153175188436088341860012763475655670492841513019351347701932778057910648840185602123008536728142500612532518969717621417892934933337778694567623820824146741927774197379090213035349880177145174457575759128051040441808430601759476074795824592349520309489517479986982870476522432116253829740302761251499839372002906742260428841666351087901396821361696870180072156166032962893577310182561695676598541796856118374463709807650424867087259085037035702611501343513294398864908029648818158243540691691213032973781176511710493650383937594451768440488501259168638883879623009952583141856678008695417299465558357897771611569007724436814865361956382817434360233560141856589700308324486278952087158918659909819286410452224302231960929109442520144396943470275374006284606789479232002345784792174983367074543516457186102842355476416275757524867344043243167595427367262376475857739667269930589655435567310883102212250057874852976899397048699132901671373740831352819979968390268959518266815433886505805294303969426135856209795125580601588870503213058934955219165833679380143638581100796533845565137596355920492852689116819331332033721636770026962487546387433048082282412735683638279548678793184557299224657639481525092135048765646640373362642923781929341039369002928719490696046454533951111874816743675839287484618442438993850826220022712200667627190100022339991448306083621064808552748106008573945324693070466487942487822192861351179146173876306561105489790630726850231433005937515776688388001892529975391610041656224763167365792621908277591250788927980859648235102175723621642243341540458948437317419445761520633984757232151056416289644685036886849094047680441252200868213710055737059888648414771530624789731525031588121807770523645089582062417912742266747423878997103677234118109024447187784029065423658756127059929090417283507077043763130639710027447047736453586368477519697138076164350318436655394318507300649708525368591103628455322045081292889755377356388182530004535936500551213789570918795575383921593106394244847396755523028918199709465913640098764581933965397413320448543864256924463560783405327916465809398066390994086793098259842726108248500996396526504568369313868323084168475473143648215062789522024161628338404412860177546705241491184863827005730598847464415314190626418047869459597434363627490532953435831303794325050093139119431857498689230044922807415093661711920582879510123760016705913384984553285450109093328345136393299531471224179423645479679844166248552847041190498351004979061849354291607973619682918087913689996476401913496775161224696823830305730941388972586248363305337983573043719439095067219185398745378016156114021785934766918225830945215672991399510262363514724166400183363666274185884450282126114758741383611050907337309483139396820744749380370146606505919641188696631646406134341536096251493742938002599349567930155457478110373740607795711801746543660037406893936274310769974105431394019382812297995413356299369734106590550892380059407879166659492837234362223004476512585408757308865569844800184065497483426078622441657921300051668558509799066524611409601601517076823527134195695451969555766148391349899480552998807138345323595564529677641181387790598827670738963583026138299150619577540230908515865050852099831549275506954213071226135462545201005640987205873335155768122452722604412888370845901995835168301972150765152867475012711608432256817693035265122291304263516989750996459181905571314709467268346966616232664553186062250690001217301547731436797173822599441016976579240064882872062865940628058739216520097044792904869552990985785334914786308909765955276327594719876676479822051865856431445052335807116362978042177328540546486130483158663983766671414231570242232028735358232544407271891245784017662479846072001823361288932400704585920262636619038044218635847586674225928080607054398120315244802844993916391570317149581975168006778405858268294454608685813007757436591383200345057508470483204340575866186404666160084058475705618419113879037172320203399728356944043033399947491359434532633112615155359727025870835755844473830248765478253357507336804374089647971378126013586541613735905572279568951917521590187212330639227968343650086215073236091986752239847568582286064404580430794532375550433405404994686182164436085251921314739057131396717161851360593279614757672056186518623715427727925187777523956497060219440352496860233341379950242999902392000417085769377913863946101830556245217502408296719590127584426137530588419760084413386864941396182234454582310761196591490132048115589831514275981402370423168277648332129591079232002051734193614886671734873203023935015092432513821603271145305155712748298657601908591905669303640170528107754645716561598191843970854414227256605628413194125124252225633751158973296108655107627540790546706004360597813658784679007293662569852678383655118597489226502461904732906496788659404019183767433326464720260688360965895258546647302108860751098067215747031961760026877163904719618302124338976063627944809193774527914004836015802133986788615659449054102425560988452575830499864845123993437775484643108059627523387500596814345236952859516210008778239061497032919250505135685954687942446879291561913423822226054914968469718647463681819394481924030006143622774191939076315375231565650276826609080951997267546031197638603071561121445620476716251648902170805372637387944182867969053525368130685837223622026345929653904150746385947530755470944280418093579897469175506934542472260481477682450721947438285677314332947427413017402488722009680341876118285812636156195663481470244611109660382234843108125746760943756351273027518379783209188428358126992784038226667852604881535773472848577540594821855473826211199797194319056882693842834594197468255218445490724359504928758198985447525905585416616121016772751540576662737598491961705842238537489110862986627793323730811747181021146161492986203172965186962143950627676419434818895179931339373297223300045227994144518616552643107471629749419865499111509360128217100709990047820355045350042186136058216378041950514738041418157958505649622032772602451124213422237742138041282251337693928436740650831762342510972172802854744700528560621690597157828728121745986361622753503167709467644617018585138569122297333800484216921444867416640395879799851162626628311030931614012952864604323516897288993777072933254335884154027768087471044362882769925320337167766343113966612009545820510082822788753992723586060902493651322916495533301574081323474789155389355675242534047663975542167996334933147917817036517377346221199028721624386930747073525278460470175179941711933243695379000152328077675729670181279414502212877633774160810553504624579057251461937351795479863164918243435992869815570719061597413888373367278565335630954842187470049656286297074464143459875535876867071033186687657025806500564284820725246594532571403544919413045869814276013874041060899305839789703071997361926609451177352341907997122179774848806739934863511452838380951459933246980602100540458766970379754524480035129185590376542553784385742925611175638543510465251680361328017214771269213594678083933635612140789059993185222182087813967337285248860925324583287054151717273117063650291963550387129854860094762040361302203363783016029233640924572610480338172909161082870631895198929050395136254868080415304599634049096593940830187345587940420101170517390177673411043446433352576793735590038535651473865842388365745086069022431374503257031042687851812541503814342161836167800461846615322257398022178359518297694152759289321536759047249182854524028299915323492659579209854280261831347149710460335217642953162006652454982928173553192357773811245751665781992110649933649117810689628908952871299427860219542125218897229529877249048557023158673951797813047911551856203722256311511629828182934036803809918290884006953807627718679366524735597845870311268682081029666024092379295004368618373353503485431937739853410787280348450343601773334052866908035637310214900160735210118905945532977441979088505990918147605539296033121567798862363451380033808982962970612956799414678451734819153643859934607401131407822228972201713477426146524966875525751473889314598226884429458217290265863862596931721869796481176844485884333752044097263995622184062248628089228108756819533391908805511996758073163114916288003796821947959673519126762146037984571312162366647819192471727313811181149426277313409157779882228667748114321850123763495879357121648465200608188497730094491228736444364587984644588266081673257642341370081029178413633825427039110854572732004903658462680950140855081511294470673512283918695673513639555005843816169823202292009849018554787990341416007398190769537785158389561623294893726746363703166507579849558810694942358573445523703167735651297929989516636094373279619896394669164859476231796321528370939966933106551533230451903920275018680493074249125054289553196988349255849011204438399958924292207509258748143000155158702934233212037799283437508852133040208075337978713654127660155987454471243529011229524110625273475397832055551550007378643336186197156677682285774120255737710243174898835442383146374673273071129181978806834234477293224737171404032656975171487723371274074663807857007871560637989534863685069950393772522215814366764214735786339684724086132129623349743599409169847525399424362109336415444700521726459439026713057580785032957890501854867144344483385140452045987923147130098219748743980906703295938481509191831894186708016819519080339249689354417775649874234902807496152279743454740210063716590295925274003582201329850054802609675930835030653996874085978062086231891687559062345224403898841383332655678690537980280765913906447249020324369997516559323603308581798253712365661958628815136260770993457163435356427338815475194621452322485197374410077428958664345728289779005269214744783161860176857354705884593989678217779267105811352884763942907497745267171710461660342574209447146859201612596727871086308157960287932649163927343607781392011079458801568793867533493840690676991063456753628588557209673571795443427652919572116703333147065955995575873157982956977691799043634794051345728384426336931444185435382076488563614552155409477676538778943355620699941989770525281102151909717276814821548190049026612844074480774283728169589154433873214489475640723020404822064530020303035062328807061547466229562362531364290424715553787570961203161535233236979512017266302535275503582110303373025011518669273140040883055659436330219466962896453836121287882712595299879455206883808140582924599590104637271257738838517858241753781951051334253824213521782903003550152923752283268228557983369266779325840248583510703004915005671572057753443370456849832351330680297836587552068817044949367945133975868081122910953195067381065602755875806846886437893896645577118094409065882998177570929741990491188938044987139980691020525136125226021779727536740755029613409742919418826431896328505825917094302594817495660118211479828113348999772816775256158948640574664118431281904162034273975809158077611990192561616088624806549376983773877738004929675076918978012715706726209856827662446040340297912484645915269029979448916590676893108283981702875476953292329576184188975310746858976663936631830056527210800056314953555166008028962931977350984052596095713875827177240092763846228392255448991020658069455477751974516544049692203291145517355919383747400654630866778157701689883626117625496292534695280173430236469329117712668347635659827033748737413390180767170103899611225140767123810342667259285080004116849193400914610425939395882398867166597438927177135829188540096384639869808282563439870912163420423248138902122811860456441238949210629409286290604932838405840987321891463609546284147545355241161022968958797863551365971036037235740635248033678467482407440262174196739375527586992455145625385101312555761512780411499169329046821737610109254704316680514910931250737416062178463169402472680534535248112425677691207898779593164266403520977597853147855106874646205362591355878444410795936190117582003937658411454693614017628537875054797307893810245540220711480373431889949277252713632931500051197390087783805869212422031878105464034555059612115731017614767811079178195131500378562945592659807748844725104014050384536195413023627033288747209317913013080667093833343021404922091792589197677683537060975092992089079311792212126027806099543368971307507828466834269293588751781339214273754910819841567295534891086245711635927352249870850234602113622626268373526230068695583935065827724653526402763366965022698538701047388145109754643074414610960800754687507448332798608103075867875640621491213132077545040194451967549504360351370846699807242873170255740207221637008721897680569611709132644065675925833827030445893498895700321500776505560928443793766171511028509560498157974054327158732860361032340107526382915118624926913015376913776121429593743754219183253238009249752635252819245948336553032603818750487889860174246468529380421727571026429951787198788413630436086589154881935621108074111433062719222302634814292087338762389578195134648748591693482121928913690072619729444978773285568053567982495921199819058915107733663051387146435534540070647519084851830332463356223516972728354062947390113796771259881128591490009307328045829800719603985046118290780408875242999889531294912264338360193189516935542130399623588849853650690610461926407735441713072829490823184249733512494085194407245801196400215211905300354610133256106067461449716535657683601232847168683989044203469780882168355836392197459626004928705661190847949459343849480899928187513249160870763668887895821144138393339827672353315142345997172952326742235911021969856582979884135482551102773818625346463577672417029097303332359258379245326420754489431475955222795227541561429379680713626829007828652735342046460220897002192161462301643784242090419595461569054163919678613133723443970378221062089354435297937994161781005233054691160111443848357566366216687563939827055372942164626260454738539405033677513588731508907697254565962618051702035240270932199212427098689010863986545733129655061850854106349493422082322777956284569093602730836424308593630351949852402189201701118788180649997115920302771252900243240770780680741102657521182000732522341872718560950071142402423937162258946979307145538163809593786474310820668375485751150437121581393791451970970638152530510928193735434749607247610861930660559412581693171852925764006575309323531345337557002454635075431411627735842908637988866923260789303560493953450487721645950079997280400295057456204781617074408761633488072536179528524771985927468227220523428237107660901773707700963339447056968329413744924202670272134748452472887928707402019608854033699103199882575275155229539413266085534905169870269171052929245607095999398831213306502777344438183571459598387959079861880691691725294290589590031275153160943680300675611847071239748653546704708637434361242256246778969778061442715235409057411820172593044750831802541565019542832739718813139609971357795024342942054749068693711446555164327431975455359170971205703402933055965428379224497556000335728815015831702188381823575546152131210884809100696599701020557724969567492135034147042775376249813953096351403098900200484403416962746833798730416012688308190058671715905005480141873714995115107551386080345073071928745229034081967422718692063496227711639617167943300208948394607454169736710541060493367039537286739969209049642099960867277629056065973421407059199581022139205293734838186076926612625601999320187901021075082552849473066716992107767266128753976910978288194153742306130899741222049894656685512191419297018521213018514710784524553440914477444666190670443486446908611779079116141563061845391688664693938657126217700758122675522519010641126236941050352759250600109807211114947362559895365204196392992522831289211571758897949013436478391733532393087338048074553411647250244618346782722952973765619457864917990945825621857687997772886060379560089056577181994717453695452527670586561198466111665832820138067833730705059749085600174389925916207359621402232576402082754278389379299916117664256853989478170555426567997107564632254378614049458538648413370537650053222048120306847225546085026688970786328152013129606702118980211246740316455946469294500477496175125889993528919733576347572939277755669559223425787444984463036452640565364683574342261227042278773544605356217035295118722923756714280367635671294311575888613016138929711346609492166014143172906641781397605107417895186223608021515624306905082815457258640585376898698639485607885950610569058706087380460085437007148710606769452089920939380978990454204959036640767959864044919789110286981185154664053289566532326514394485192352749236081759828582657904362842914282411182610072018741647711521626360072029702862343293990450841175822155394579737493834018858807051722724364177200519135196562427220897320845200363591933619729951602511592055020992539739932889093852325301324801257009619116452907052362953172258195863431798515704370281938431991959143087777694736909925693401012986854021018764274875320381496724484129738561636599456013618601159137007301500005360287620393601670319730005797135282111621287879934737876200418425497227380911060101788957347129342750990988349806244647270844092483198384170665208313817027309682537245485877931640263094809161152355338219618025004763084570503206515855953829770838809114076638916362801150995077710293106670157129577080864906964307605607527379127018236619081743193869265456025309648039933232225944977264449374801030557832134742633453147639215367907497583571705581216405674196031942836355605099519833645911687223726381747255447197640651021170294590741956188397156052659500398341091808572241197716487039853621953869811820032366382414979246166013911608182191939443508822044991269857824269002547163534896350494315116723060398810443031942855065698553554584356605178752625265602325311850382570071530657877275447436695486714957124957162693763651692890406262437633283805335786634039671981782590580351490636892526759621950196610151603095427479357498628085295615727481774955155356898513294954247789585345691749752445089085108887304523474942208134860087782995081221601531661055556515292528527214798256826313604816158029374020044556950961237579339768882958198882534830098436695119060104464281767736890195665319796861889763639869302821401762505938751105578923994774186816538241660834507453248657916445398670075322726901127446723653616189537976448548028791926955415956772413629687860852555751351030474956779941397742479695609860591696411125718535155632386902358081512650506302015304878083152776068982165834593720793569664611527473536001353928747430377254774718947488573568138460934923467828126466024099642763592242983148025693625155874718599325544074139631433186593153058745210028680639595417669642751260900684291423674689533632910983722986282788122993651590832769944096129252948800391003812295363949900298494887885407896174275434707485314321308744404727732351983335498159579556720903605107692323071877600501624291678454751945616876114797111155858118195188584360974162565482158970006680227873661773800138346454098803412689787396559730386550067957862894109268097868810972431129186437346260473856995608519607002801716837906497942203301226868648684542527974873882412969970498018294291449092520799837530180705575536895784614455545880849606103776469167697561326665545048772629987852859084763814218334473586495237770134335651260393459381963508418638227069330665097342739712879014720014043934567781613715453271178391078074099144245206019380798520531593004978296674684017903550341299349198907574184989952729626359323415206295901657426127993834006749235017463300160284868125611885131933782525478132898903644049864077270427400563409246424244825329269200126180456487087573615967883594717535008278664824013549607418416302345819761199081201115155048981112539208805993762271237892209625969721019043108289289153119919669964976810600196660695755449745053684279378620732515535968338794062124019338999386655552302511495561224787384048052264704455854029514403212552603828795668606730412324921468083402885002696276357346488601820869351604526534027960454087444168178683685767562501594132073922138180927963116511821027724566038252620252109003561584908703013404113034708070119533827460903674992578236913984850187111469761401058009341394303598649831818762264334046963016030948428108727068939546809475605862076816479215554133460402639808531694452622816532004004014397097232177807698602817749856768260850950793587744380222267300463041994310655407338859323334288655270515591124346842383238966584659894305555217210918056763895353808019698022258427000902267814041203061285732306859656821286502321754971708236842908435868995208596567918692446747170597104816340322943549610672377175785529882899815462518267625114726017137154234692278790976197992417117937720063194901647270494118909577513985108300095201096850920079240596422553246706977362537148842479806626389064919513166760224958075895312062872503658158736383873068932649801948959162879369790690770293490236028618763319736968048373402079285417557351606175640191476726163168290040240596026431760846895699117824887980313654459882700171766731585534899274551394957453534255716740470195133358423521740217333457777952632120055583588148038587753577311747604941355215391662535162418411361343875088013827167066397288029938790512978526245808516337927791546904948589746362772782526692980331694159255686008815156765792920066643027022021522196985110584071769602968301266467388017683314788760110136575055455775979147064266678047833535023147900429053320461806390912336592535760423988980285378273062267371203888412204318059110221936277998466404279054143157400203672793319362033400332872757025743252509823739832993037415100477023719874291131407042976659728283665283504112205750111477488872737535357158290319520117893797335673898890385943413151589341739466285769204837716252700829308407382824350972032560304644540831028411610845616766447697490126867200970887223465704755597727321281937348296778096494387547177224971145116525831905287367252924741582020189727458558084389990880687809707798032191807688995571752699480317598303099376261264643949317213273672115767133324659042267726172757055356675911159924133322500506544298559308840270085057451943102011740945209346570949594514927991412268525117721274137591810762084236218412741505937998688962506150090696661327411280377510458810689600581686830557984455628473645917130126034880180759729216181081514912495625106753148847693592988276156438186741322445771334068382585745093005398502884709449612738697462755514710488660137976630266763297253177758577336775254756903280272280923706668091197621047937201418082482892158786798514156709901899495096545922567004833121596705047027378430651706462640809025575630807668412137760062841934254350607322051765363731037065954345630146729336945082043907727175064224660618447449357031576480808169469037642590312716164752928024490613767898124550214235527622791035895696416506300676358260796416862426888259888089975170048101957993120860610704280519415642588248861706881022594238778521883747343517313444075305006484352172333965859068381288326292324236671897729821972184875418327603476505954549890738982870819514496700933855106053412267163010012537056307729701707825805806951553705415399070781094047135463773821252826120181806416079474386475961022362929146601726123326182572099964133784631737539652482423419404260502054221653858404408021325146877641409966508086310043057414024631038075566520475791694552265786516796515635566256018306118235044386882543985466961858531821664854294414852512836295761520970950059670490690198311616267684982017121486960165622387286028536383482889037602713064381328803698222924019303901011403260882824609020473140339901008051228620459104786210472316063465860596638204309220603139376999629208283352936460063422575806453943433145474722456238403808093561841302583465566068656195320212670493458152842525835322461008958283630802750244354522374018864053192179666620008763047893336871421786693590744620198266785556897680325539655783771694632587786995076208665888203589136206274657488685100994863971444105097968829550845963451080984805928228026547875435408780657017937866163682726435995157635396965028188931046943992203900896003063512452998804785480590697440954787044990397201440630683332235788550217817623445680824363691874568328901581523801728403730529993900859089708757234302236769990401088614958766297712711602554510260113619753126534482830251096492948999252746084902196531718867274605608933245161448234754106226013446205152548932720413394752563541628052546205065472465180754343335773409013791337565652190796552461204063966102756291524267169382510236814258346408283217435172833621397105721192665918115695072750672585161565566149039751316989354206357246509035919329027976909202585028587791406382177365517273493275946792078496442383524062628473699265497864659179944004555137124070970553845953879069613112373344343821767348964196420223007555440457832894728679807093176136151746120056450305823963703514488556495192658443267662010864644266474211159611113969849015722189770625633455360298911414645775528314681691801625724263744496333657274659516302633688124338911966903373743877213055571244006202794470381815685654146397795101650291848588408482091480762549238049323409633060261583969048159919543469172484752924057359210271180181467926754278557931725861912210052125792279092557039428631070338345193418327971144810164307580922029274772389324080974672443908669081766965619207203257873205539604935703583606010896440555057679288610108066956337670328866009490520307454171312455648321021012632556762266218447663211776627923099172409995954750798067653496675952461137854718740221077072567832954260444325736216307696111880015310626186499045175424439719033132053126616840308841808573017153077401145104811644320234192163133233722008789508589819584693289108014248691711409524007639528466283380206511018051520960978851824427350345600745835152196425544839231963484796138218173478026935641564031543173247198152097292700453700730387286163965071512852890833480515999843638810060623622620664694087569056944029691630424958809651544331816240384469393393878639140020951637432051151558985547414466439721521413898640064795864624393025018449270954200013752269184047483787367118425909148151494362422866269518022869023552348695584690104341108387047073429544854928390826504893916113680134010884477216485693528206346067591022755669310077168251693984915265049433599364864213545554542067951346363181355168630365308007826656273017064217989254427133144073780316666893603170401580998814475369810424801786429483920148444012680388077907345325037283349575047374551810069433167941429609417241066185235246820220746800359081824969670105627243503618598362598653397567455377934493500334513745059017730072199190380041906181740411690062019004718865242970615245769289600744681996380953879298554434174384939335854399941762809625099557692996706103931999719042513701512711106125188503568222328563400833724011964535475243113161949640230082407403348811887815819206138022215822927759916256477539749620407431583750376393909470149107913268037246970335254979182568161711478117123470966465682033278568416184978820352186204641912084476458018209898271681705568312102734569412563407291818997419290519459238184487719710473065779561795844291229734128295710094085263194780904283358730691895600952180417902270628016230516173783592313139120617219280075267431432310955364754193990787718512202984699911558176603197654493650889074310958565086781092275299123644955359046785705686860353534378765738115320392611296882163982309187362701206574602986502196958969991671049583355975982245242717258324689769446919108076540170246360209598347423705720609871533263103760065704660761306752257194930751185689805326820017520296042069628094906839847312865611865928876564389072406789393060786302565355070128905388425689779825661626963767837997818745890681944167905997597958261456584244512866821219278726410290345833282724191917488011248325835876846237499449979415873821172146524066557144868461333997046167787987455624523193361479446464351955081267606836812975306894800898111140808256542160529209172529735067155815022231278434079321104050299553240371236637218956904554342326932540427397965477632553453932849014733900767287863166726626041399118034940945842237289845908027777683000036888699387865030423332295130845132467053136420899303757869094601225941618804706177486324991245336940617996603610731426698548345857124575395105333115012531352325504622634904589784430550267280287090995572299377137980365152349227833272462128703100428737879817890889267555989465781501554883887796927595660842346664280443089032787531661469980679796277840559681240664491134124875187319559337987291717964916309072127748178330595537207051137475010499904569417945192338692628623749440779271888284118268302884030729440224315265006364603020365674286259271209593272113131327249141237717030080065825891875620635304462923946473291301407067595972073785061679468290628583875345048253415919632298995406929086320178598561626590849749683893244442970773196420424648073763265324194325657664821938943742033866778703830233036061281779503838016883236905198539027550445588737287618818787328257775780950520951371295404693695555452868592461228795841764101113649571176085158777421390708071845589344055159879999468103628280482652865549843495189088674079344912225385615409471082674400017417079466906819892051544535541258002546968427124106345113498591631739004845235758263710448127695216901038124401619622232304201809595165661246386569400305850146158558796410368903563542063531619709703914476235590862734861509770580456906263954618561928188128757987977579047079635288821358875355490739805667321284386849670041151442543224972307848544058159155750520534148516196537349217450207411165402954537864542618870653682680754703035006176996609845619809567952971422967964793910032828016020932831216768639179405507429077137648111147737849148394527005916030914910302500930314439594638870529506901062580340243546952883951687278460470464492143198889043809624212191201870620624292184486280321213973204154434960903260856406446420657243233908404446921061843756860599065140664141089325801026257558935671452602295780399020726777760964694829400213664028946916045290639045076818703905810851225764989966740199426211931118287116443023279692767377351496081763742278787458615624085443844280911320916808794916924479713082404278630626173752193812497428613098264564503433430018427028693906180542069398982921750646586785168069022827040090938450327948223621381128382374515405623262477764866972423601350158433950673593885443997311327725851354027291571044167573659938101915870117817327308685483929555611553678310601794928549991255670624013416799578717845057772508778472455688883990346500521347174368034549649722987706941475545571164034453657504165030744144140568436105843687570953358079284402458556613846966080051387523932891413587058214355833351699848972957066983936758261149698501123053267368993612583996087951962107257437789030824616511072868952930268907713117320541671486661590129200244929198584017136999656534094456616553072695413522251105538266550404691530383946549702314307127480604674559976914011770556367584314274486303687082824537259115019016730208846187016004487465737292948319942414438978934099145470695238974388883561412944412069126241717848911337544283340152267413874366050910685347486283449418916740697572420428234935224577264333674879651955371831222172969645648996313096745955944902890658476490322298430713903198457337270983936431759837556101286671087025470267003808423426411685952722817812197730304592041567510895066768966931466619410819521900516624673145763953189443730193252216132294832151671450276990331828477600000786520854783337235091404973085501647115003616503991232921461549398500596183168962215929940656363182086085419231661749038382490675741960182344237915870627424691506937168477923100625137276882863966887244132173196002038973808194468935226295614860044592623443249439876655343392883099675746133668273591842881645973053935596147859209508629026041800557040918469272739854097352962030126052584829928887841886871969478307175777413527951978901958967288115073388808373136294047465933412570100523950123799696711096967577183183328739576405501741602500398566936838534058845602447356725571822063029044701563549024980557689962600606916086748520439073436481755305718402981448331293040352971366651462638416961675482820027446080403422132220365450571881779022519175888607483720504525533430899620053055548408828813561219714259042771487408128142221005154725258562789778466347360528086004295539953705100806876784301104173347535192888945652427273860136033000452949042234414780240743169463004215668995626177940167783335781143160153409449481005365633485738176747720912606763720953060898484518672644694692996266512348056528934800120536228991842085111062898942257670793537654428934303747556001095533377303209042023980197523188744616222663770247569256170188664477190807522003678820792052339842271360255043105702037432195515709257470094498621732825192584746244568872711015866497040272283730770746922383503842718330248685552333482018417138882486463313353686585379456237208555468705449411696253946911549224148748316986284116891730994970135875817203734068374560589215900411022959551984376138718109089494884828728954664298719492119459773037528174231607155332821934567710961128181639377681794944118659402551052059339509440109739713601162882089672661481901694012094087645103772897447515698574287778139032157176136872840625217601101399987766294474777739503240854482521888219536574897356403978766441916182580285297433283029831344355223277995190193403918423028829574924042321173449119321505927043677244530514967285633985817113205425534745044852905401045662296449130261357999439021471061837687410808634651241520336571345659437926870389110604110409562725431519489622995219425926827661466285617476371585944166222069490313298453730571706233567084398395155416991886047153545174545961039717389989381869121796430080256655484729165658140457205973571236066881823366293882094055897509798334852629830934987754200768223583524240520430744601942989269770102192033541034124790536264062497084490749795281859193515183108292603904432261237373670539572690305314427824324519423353136290369557084134437080790812513865999881829330805757177162653494122416571575653504770674126190087207748382420722542745712304921794990092105117243240665181608221120384047530784848478669225954594070869105966799005494678720491938319980791820797937145682165060614252162531446892340863596530535089304513726192327250605455176365783054159686123741681819334452185827880608628448584133160427287323666389254591223225696658704160779080127901299760034914766347667878949314825919359914857124982824247462304475807019060303940164419846143770251266818188657414904067018669781033672291047283716349093778436156773137219826873617135889980698389667426356168200824994618964115952062601915370939336964104740296273531816395775645323288826197824163959979182578186028095047038608524056636907058259176003442938202334001196405493599930623052603144212599699271407088349052076799976052737959335373787408253999218990476315853265663771397533920201350493620617304019857871215575427739766480253617006830593155452728307863955762200217211434810444042009916521408261038109790810578509661125845915348848299129665484754408666451625875273370975334586987205374049394252406833396900749007970655980043132254567010267188023792978499596445536551546987726012639767509867600907070271795492066010283789638042718054812619205546448074597595411344375421027401498172465583428816855262627313405233103980965037128998563439166988097309888142908685892725932241573330863071264735924737539920334920222936297194419156655306485998604485001553753308660054990609586832208175395428435036704304548629715046604358242865278473505540582365272221468261139844852307528990837178913109525338273732188115332363565599803605001726877074334885481657042979432922800170515197307370609664407410021858486803560369048577184374413536908943844190207244043010647350048457735027002540707322196756894691588729605159791330956596043678733716743774467834469448333679839189903498316582524743648392442388152261644224006847602038261064263395091759958370481547726053158654768583285153200416265666449795661259474649293955357802918652918216918724269910699674446979958735114384241916848712157806429364445807354433965754140691210824439057808244835272971412050055850250049670302446543994951909771906527445069062573420081108988303736563709410008950584206951669416640758047199071158420955170285538566198597232423439127751628214256309601689637243094430909630277419229946522285399684740792138452131870845376854769423659119736604252986594991529467553647797529983283838962763120920092574158351213616171633671983045527377389441256654239905616182828349860415220969268157176641224990808874734357517451727453254576312094705310114544689447592826089449531937094317232522435514759740842114299104302185420579248456648306350403915798609988279348965472139404317224331812918470003963710234925002225601082078775166467876089741543141479056174697261711333158656543437976576995346503227035016177736595713672214265511488918902758232933366988181972434926767591046647019913096096301670495821357800270317474237708337949365793319915438271397567501909099246564872360895780786568788482447965947824020472459954132508331653372477425437686480408965420200602121093557020928879251928051581771706284515901820047999326928788650148931560930105395652590698969469117306580001830083928514072836063594286468725104063659789582371652863941986058838767073339729813665568892824960065531442098881820699935528975854984647090278137774028155222298795136579708181549820590551294989585902206003607940430386340862659003408563314173149868089321509710956836080381550261169289763937847663387743373709125176338474903041421063646215014357563952096161617447772332477577904800355309833913093264954642272748073924736156507122391681339608170790488480947573128997108597659907144488626079351609087275018375081832584051734666266966598740425336006131800306152988538105624346277195091300479836507561396700599241287204342243747920353055789750145743565366067286360965450443103911911562662765300271089788677860400171404295575573755215990270573495514236884028653819421168537805891239547943860007793732019104726523075513164714797041847236586402180884709138310652390920068548819640485901834079426661026066068114034115847683274210396641490045983568608872440454520030872794910970331186012230289532284846040808629923190718565695731562237522560626691190488906271568552181259585252756962004190775203654580290459636266306284423896886835621923534761171505576137358667021216956145460879144428115764244445433896072293281505047387315495942019262835149539853078418895090623350063255040599719856136255368579548556047092414384322755848181423823236837934120721654842584762040506460829973816793696934345454722439597044185830087515840191857598198245091203798646416494106657323937642736301725780343276481160997248063470947095189743412570642589958633197007385097652895845107679345490996611528392199040355825119504891168631520244572700398289473372849511572818524144931747267677156037748161692631011637792653279338631469939342019741136805268392986449839399326823139347567806611073225198653760026388566391918897422229234688317435169632199252358381877563909065792770112124186473619434228252489212265756110773065442352977026504334682505272713916308978115276115789800743139561348547166921483170528897359423971580064274607955136553001704953999789960135092879303061838590951043406504053272252005094237317395318503045445194692240845691042553669489215356362148001717941322650759694560097310841383805480013498372690357469676790787564127092080341653603455165582542375545517371001460271197031378977148909437408076129970483258751876966805820043944749774095632858208658886952025468198160641819315207016993404922142180776824046927783242612210603147275514381552753621672813906348195996765967921093021296250541347977101487869964002032598046869733130211512385045181422254407818726097013922680970303157150374996206958742342287366768846960517987360334826490866861552082345800616189902906827639928692267707491065456051663927999727788034394845453769614544836793899521250502740974846233985731469482525623457453698419617207600137726263461686457881543006555973105025963566670379960586827884611368984718576369818898145119837095007027005383545810834903217732831561014657581036329428642006666791212604760952191228154693144943651109339735765266827711134848387866938671563456968320182327935238374148311058843218930473031877128845582230693400141440329459760229991228315084046979939597457932183693213643874003712008161630899425676800080294365200227430592986424910922801699690564588648063180191331171535302804102956662050084169403009574138468270153012977076897115408699938293624594167997814610776202294798830678989438752565986992418017417311224664440138649795960182599553016829911257037420273495574241691916423925426860749354152887815267789273192110265076975752265212368735709579445799823367070735978065768461355427911710933103406376561167591579871841196398268221334029511635646442264298668315528187477321054570857167272990621881128517152236427234759078909183179620193159054328480361723452742081537134391838696457781317375359868062645017234103562442453169738400365067505350619122698584260630939801571098183105463775998429608368087237955492561198627806349088616036279112258319442750204985934446461978888780339329717100801030136655526665047252709198492579133714211330333191857888489707184909563773133615666578892347452847157565129436981166972670318881906167214096476594843517544064299338901019992361615041149712889752234941537019107415043880124653481006112825033109881720171766462265809752513386817166419976651120664298845536732761965251904326501738230666365697763329963820726258593117440999367962587589816226117427361965938349852899567142186373903629916373701086236921070139964511461817853779700085684916548978161604652518549414112406624379874889166364511240176044158330510287490829695799894571015236718920428672620921108937028892240209901405644639435834271560923152567742441135377690424603579312432748278712736568281206207309656558404747689096588926844655211740062743396026662798259025497390911208187683873786827626738017462671310916616605561724334135245283890956645025852197425618075220905028782487160231394549431453466107653903455766366642557120898078531180722986174584897382880203225201103504158534118657757826744508522002447031545020925072900830403273917455803771166060450416405708155657784647279107357129350171646426810100925778079095946449879060332953219519316006931407538691844386808073525697113474990199308804799162478223791329413495484874278428139236249550009326123110200063314707964483243753080910046339310234471596157459711616771749577591786591286883766333711025123491040981908374358482524723181853930115185328217478156069737306284245571278352581014578843848061494399025959478869633385839182683664070056586066845612357616235705549636733987762660778108049524482282391220910773718313684786378716570384085566026276388878963689647155682634196969204667659106673138539752887331052814377209387251649474724055169818458897250543446104974270447119713124922944019877089439336735884202613115146517030174347524591554763204086528374021208885599355483854488062674034011496191460026743543651381998845169322877155926378866834763531506907303501470917950532557829531949750475473260628610762253647334349269788502288423525255578985409909125906174205976960217873296902187135248515223171744247832622022065392256205852716956730296379567939676508773814155894469788266835582127590712122964703085600127359354417406154285341242883805306763475460955478152659965467482555368261079136072359596064363740557277725597278408414788733547440626358824347283336635492552698555476587896800881158475018943163448251900057703078134379229736911696114397222152784523756070841393845595511568846180191665228140690140845819042012423746673744007411860503063063282198441480094528170276773059120251680657907867480037128248348389420473393992882720436163521068307203640797604028545382794332394139597181908441595182773958221377783430432023977490904292443894494142525420115513957518114358300536998375734017177607804608189490014457517599104734676549060086918203771438652275994056613104779537456151053449247463714461364449896831666048982779305922848645968753607348233795421715919032591862419546569496606148315317699815001714757244793431882657640856177281590825578172304366169613129555224957837722192416887026186243340568693243234529436743909187676203074222181703619209911100437459159490301921661447151508980364774967116201400692015765974590970870378743685182042828576255593923844633993942968147865387722129201352270841043205782538567087668761766385012597546775972355848619745851392150489756625546425750822423519490096910765644474702576552105383710412930456398469767659031600504368408629638461398372285267623526175948998706059292735851394604823433676164282038627781565462089409270508020849579949944832395765380338961344444116337160532426221359663558685585574736316199890696186028540437586449343907762281908023835121608887781901205147635468291471731994426251557096662280994665809509317994822090700658516092204052254061565310764678473564616201468851587959574762585202462400013240670673596894784485970701606715862393465729900201790697122152219110540478222422859914990819397160962598374166028588166762211908266456980803945619485447601462869986349097285773679821550211205481036849235444317006338047645728819444061455515112019739893608091671211476915250063786662232048586428345020804894750390115127320478469644820194651924851994335752067049911286524053857208317426286325375607988043904692900194176179734276537678483479011117742838012113782804163161298651460852789707221105069572203206198657541501881638490014146896118117946393238999484425531694641643249846586551599778020686187333219601708941742921052934187889913509093585250299740893890033859771505017858684662404820648656855472542847497635756085625711112002520816204480790669611729744171606500013785665734590289635498797544305204283105787427012187315616901009059664097585852222495214500922029351064797810490731904300469650854713058424948340790904680323850446896261379915957920549894183722399896282957658450346957292819925374703098168849328173277103878647882453049134518336605037309520396218905989638731583387212978518111817891956895949476010059060196763449736531350301307836616555118818113864192486943291848060249998453134320876030922486476152230674747460020550718876774271022666338104944107181214517094278099269499082366959610565034818380259809973660137070428874939980085080926189141284319794258163303279281145571603797228986690783832547093546527263263960734490008859111617641642009129289447763420033425099769264303014318834241662089442462305668921549879613117486130033525688254130247797923806052103214825862868621061124358260568175715727581646345180534663541417290805631609173877155666095089863247611313295159597510250310579673941263258321526839143047254346321710077541802715991828074121330214179071746494762494914905168002687619732254839214379097570053819354976251427267276389847226424763461705370286696311270070930820040287064719541284697856356004063101421936206266081918344090981775444940840015492628334098051317164163402661126848088714731417518532366419711552250834719377050640009339134961317542900483012121339004709085977791205483835350408912236718166978665094469439843482907442551341209029791192416951779324597837456481927853754944530551255051363882024457518919542765476510085873868507081282875346419860106517310422453232812769778169459726098760681413930228245559218221593905105471696375153200603807804103150383568464159543731309931884075012632979794423623064100848190060111819561430271765684873227282848429561724810078127455706118521672659203843940254653760861763059923942607365380172872629897142184703323254385402046498944347019305354905187550053378028156701653246204707912437227925881232628772016912812203991555312668315459781858351531587442440732905220409225791968294902186505114436675321814116059564894161608182751451080602648538226035336538495095411466984545054110256981567753285311077933790346249128921509547740626067014624103301669779584402215730947988420176102335339685839982075302411007499668980230496971585967221044240294932814956589222466122636996314767157677751141071924656554248710582769648134027282883510418878627364984881963361763661256507357582808984409382525019788058637608085403952793467523622770151178339247246173891272665248198279305315067016665286880397502427143562870073042218319479440655437388808130111774499051710182207847428974394123585372098704585095718228924754924841888838333403510641127466919587687979298837814701578304114812487355830754971549334477468387095399755622608719561912119621734254640471369303299982418636680701441900834049515136468038904285515140244518294620669826592400700216744732230965852363346781011777571636774903766902398286591442596852952941546740525702054438588133047998375229617369621415604396535277388640932474537695919893367637714190615209615293627063693535490139427299887520179569079365150313603036792545857741503640920635703233432473874403081766646499065793284474199340927545741464143496535711146662070123544333324700020195767407053553494014959237308616005228954223145821198318512632971650500612435246787253573377128777642446175616774032326035887604459125146994814498513718955677833311520047923605014946784721759615736436869123306830821048288681389593072079018991573230147700198783879837524611857008772245826378419630222629211260875190657184282960834066044529211328804013807014073221597359843038913573765160492043213781796695307853089189004440838114303745830986197932828511605935965517469312507527911911341797873580941000882580965028946776648040469056781921707383535402422536915047474055512970424424324249361917710124938823565084307145057563901931168607160547545827245907376280517704020173819954352001185785914301753077904357890645524664740455529546489695455141449947332066583350958808915795664692338067793046565114977740453397960731285577591868463648518229330401302727547833917578799971933014561155680230927951107390425430116226824442511345233406143249502080501293871151044428400233724042527482342175792882523603024300735033320424144400152740920051879059542064047175666184223518200694141876932595717879569434637472630894118988644608635651673155580972065133864140418495968209989833970006433394899295541645817777855445522558201601643536743593608790087365420678008154328113989241580553137739837416749346789469547366451861568463733200130699225458627197794981792701472201990991239912337010871367884178595562222737943868824904558126319684822856454000235471375823358858930226392948188042365852023409271547087865164695782045125210158622707263321864538365077671756212668705633736883753357714492391649613108063319055157815171269471923871946989540874213849662603174907457341432563022008037565476371385077017807000833732802730743873982152256514041945413238480511158771051532569589336180635332305704326273382765517182799464677400976937746555162861696918977955253574318189688815331227530435680338767175798127221051777999504103586386597658158793654692487585660826080767589485264177490887195396689146846368213148312552604270391100252302169076901465175012024405831076834510101561374549878457638498494233906958509693908137903349182571617646351429761771743465172112969273556049288409430200964997670907229437347137347971011026381200102072534455709448798379426512567726228709100981633211469841388994672372731089908412794277510464087562711159363372727273884538274295877436574171006976577936517207995909214449666128958477831158924377744432706143870265952983167524248671150401669728757693619200043344651693118766795906872234423530464664611482626178042890862457230621335559367111176852736412284139788994596477461320280262921821949190877227013553196441031035866648075782897560396615064331811880846933170542918244153294770095240771483416989846601078429792440836656070135884138840020986215821845026208116220485976546043497439850209723147638546452905394981023929503223650724978471929667225495876694018097533451918440656127101856744334898369796220942302080392177173985534613110185049693780770834929211323256342305525773986428368224065953037386894570170952438042431726128922014560684574663194655092043392728346666094071160884035788097537434001318514854996688541049575587404622178620272451857905871545373773459415561619416402727024165983339907764403337698517495535796187131532060174528034811413295047271675223804257991965923042794236874484666390091431755727623638902863433164844183563991324383277533204165305353546399094668439882045525592872309786197173988367213003254026277929668219786952639805680519174759884201400135780274853721639576539427944921543557574011743836798077089741098681562248744773457543137234449940046557731682537730166068941787799673866090334702140488775543699700061337362274467055919297185122797583508632665785428497696561246893004756015053573255378584227169523869784618600733140962192743236392044351385350567829745825155795297843082498890301221236410704339752517237731427248506440827055927654676340463738434665067010778325605534862848390527743124020588387277078740414047674544173859860201289787625408821906538366909262895004631327183409437982048076973317876736160466132230389891007461036144718750147699237375875669638912539369212554224927498327229951924072086247118240297015050704776877446252150365740650773083214895441985230661397988114929258337974780972244205190841490495071741867671849490809733381550041640812253349893046311194465843212897041329934198246340814534693675759760290368552753789133338503802172122078793455275433452040016490745174618767443782936032635574931255860568145333304664920263280031391384007797770552840262463218961576286467399807678612604177963086064227780742070088952186827743594174755308726301292507102448731544356857148211927852239840958421011564572703366989498633405399626433203640704726999535522777319877914478682944536169525666895478172487208151703938160548754756805027193483693298160889797084665046784957712603853783397416296239800945869005800762786851356530321894151535821051855763368582405212025542309492334046154162761868937200353843580015353534243827380827336337464965880403198454540417359613238136247039526461521075300178948639572445339587245438514254716341255930986521648157969430134906857699362213070487015100442157915383777384524703366571844890207181777710749690737732285841255017402280619848410290645560292839825351013472044570086427422467538093883051370011017127346725239779008696289673993170108110710827681951299325365080023377726265071228618133102226296949634920935243665366425721474359297819385974818084669561839219526567716292152194895323709032203333941875527135780341221422270473966735011067263272514009896102397914345919520670527715774899288346567042851433071151992410374074120226880260330081276206748370958667662979338078424734539475584825842583945762928423513861237730867934666360575752437677271768756883203382015297201180160336640606426294654757586923095700116856067250716446413038163700066102425844131436971786734453060663363308615235530548251796231568887923380598704440630110466011031695113098089755235122632374262821608929197767613658637468563434498935369121852258931640155460724391264706993844494215621678620016268427124895806496248828086700625992602871750104511436729598208575753266391057489199141153165250515742617600153966468144967140706104879041207660576105347417747849151307423446553877958714061403575034071744242032684765289740131887174187662953829135780279035722004492817727378756233639025281776796754521254596221921314290974784196035282247440818760256227267238597784373503184674324882103015670218056995058322309120258991270212371969057094602373918102708555756164592363487996901162788739005008517814175636381750637116306729520782648382790961064523517732323047616885125151008999093702922044862401633281205855025515409218091515821576955616582630521972369387455361497632344457387758595500067522671214991490573672336307921006688330028847491131418310491742792587429833861819865389893045600613569285592581879198182753557988464917363980158787759316479202290140522231971160932075913205080370507796884860410031114149821908576738571098730350214902512696893461843741639718309950513630595771332416612361074217161799784954453293481266914297814332393234036691845171270262894564866139987159353153679910869541806860823219648834698843824301835316425969621210283951054854857816987976560227270136840088003307781655168947358697679905160015113676085618891386240786738034366657672374911886186632357450164914558860635290916927574118373264576046903426984832409066806191085812600605964180846684563854643612835041249004462971725271467773728020657440131362215512060205120512654631173685724730119869456955865807328127667013059280412649871809243653296519043432071907271203420671026773698861293073811398955331825643113285626153986592914211323980813605136544148876482114911315276162740509508656376186133711283948288926825725976525691353535624195889458672874802408516733152086934976549756758422796783829755103061073454425455531837701762659212415982420316248572661623042037323560927781398687673845845384705655227376367238908478419160368752957321512522421524995409757278444741662018421405129812836162946277289673500836540971108426697438234923876905238966453682470978382380091773369494861077289016598942872424192315555363536187642291889684335043769116984236774846170438418038110260780049369959244015679361855710193458956787673838866418270647776629752689319499972714437905208159695101981503188899382136854065640796725747632645366632272526044103720434809092673959651288129707592224822809592232369711361991971147447823427431659333350705857743481492429929160667268194625148786686492495688777330644106225955139248678734853042100323738866954658203341181836142250638447832189550870316649878176301778074473117816904383306665819506596119305918016087511908557118926351286443729578316219634911156377960385613582940080652697778253814529774762677141914819334266981895318909242132144441447715026958989496780946713072680931666955644181777606907769479516273006310853720164406985163677574353021003013545993271856843663115591060785430384617057368039326862201332425505066087107170503283027099062712888690443620562515144114201637734637841079375073592023747790487363444810769316754509139908062212309767265909050752200150213248624717709218351296130341311795431526645738300233429322336749005725528911380569738393273046321485834042302401232315956651317055017641016792219188314777118341800762629976690474335136048413740826793996895959762302603927513123876731194460571737335634251569052583038546344258759690174390533530847837817735932040137205779867537193504607086583899850728628162018895604228417801243541830623879869604904818489468834539701966626800015935958497942670034565874141293510021853124346622168348316995178463804333485536743778403658257599555513775690167820397962871518349133281710184133089395210452107592009402023094699139539082056799111283707545486300829856594483712323243507004418797843849861810302074608066497140130635958558021052808032045526586181512179652278812982730030021870318515333035471910546339968221946047229266579367716461478739135563075138595632444991928660433421532379616284610186658220096810546294739436066407936183331233407982010094129057682448098279264196593903780887675548179817913076833035768137139592589848171885986582785676853877356225208596509389631160742556991208304181167015084731366415966596102621616730444187420758815874478538476371509263740798961328869487592470781271997978963690957791922022257466055939710692854502410002310546504449411926337245031559238325941318187505489822960475212621072421757357246885805717619172384633394277874095635748033924274758606861682274271814799375333626857580151264516489606041600852334561249012040654678741760499568186867342719053057215922752284387150833865740986709691742089902603058200813841976184394671387340125911065365567706158311383007506681408659641673347109522869477861837213098551842826555620696399254153685621285277388363930411430128881112127311012008634793664863671401924303973198321868287551207289632146520126625379598405959092178281765117025018585855532341415155243481689184380913333748042854072178359148424459550333009239346455132960030567199281175750651913372451112251663642086632322326103284558776351470895903867186858386033318288653804485417332041292678599620500078323211666956475356953761507452175471509304605321464761494717551562467321880613620160407573427804054445603256332257035729708824918909782195526512363395726382422691691493609910728730274303487567119707583964281361116558915615449666037992295898229192631318399967942283361504399644346123739263882591739803539565740613102004953299648932789383762145926211043636773827673446153585595931362281872705316066725306821119283737814019456117739997009467297988895513338296515028377916057711681124861894654042445920958632957207435432436718556685961125191318994875778134177206371180575751281702282937906517865881375744238972458849789243502269286984851710385978405866267168197796823180338314720719268684550092261828134860809837520127327000162092794412422682768161742394121340020754376317363750574194414501666466155715422123818477161546760772764986841578136956428258637303379202654033237031294020770154521282469789926969729325010694117696952929087406775873641455887841138030039216322105252631513732863074004286535769358107608518670272838934481815664294080057634568364519427601249041788796582991692216145049279927967456981088834039495668617412584723490607646352649274625974392978023596542784407698311938729406990486447676619015692272430521316022882233119756129465440145876992080021080277734050957448969853578899034430759332725471389454224927725223920007983078231101856953762574104758513655784901755172276248067972136808873550018062435763105937129955933173722650683293366927111286401543473001280351428663005026429092931048568208639181856576082124357777712951069169722435033859849459531586378269277153134722493845236500480904030741069169332914537727048628197737124579328205239766235377098808137068918957648996814955163265885114803945642576131174443408649913783097144977863598332249964449625923731516476723284587561905251052047830821351507390329448357968962882459172202664671136881040072874737138530067719262909664489473499314798557887851911548327771072212163223656792972936063746596698846172332802618476734442079314299234714635610481849816456497263086873229103101500664379376447017461162090359029824656408800626345322822618747113932082362077856940894362115914573846454708842785600367486664304623328254238177250423433471412190981219748538379558093970343469030576855645047333381073616878624481536658533954171988144839995516346969407486996649930365536473707070072999155080812167568570385783794695578290581135728435789841341179096259934386232126154763865665753114944413632701652868321285151216094228252476200698431678949307680805521142537400606405427302879581832777871497581866745060043621910131242985638186789490812213665678871564219140028525342453157361569248809882167952117496447341096404876686609285230592599632467660546903730491904863612494368131676500812002634204737764698717248762290156309174835203396791227289674593692962286123185611635576924959913475352243793445950313609062000504963879403984648894264899844780469596690379059455274003531719879228446890085491834338539689162237440791689532526317007911224008972028364350878785426176712927738749302918995003890542870867660332333606234361398851832866128404642799856381813189676953600029433130724216803720374792043231505137294317726975693762291274789120373184516232221988644570478298568153890604373005673221104476414503274275162295043611131248205171644171983982167619128798276128840819026921386418885613539816827012942628744251994550124997198590107437012108746004714061424344478182766767002339644071519965387667506933346598370650567258597765067237621484864485397150488278901928219256523856582938204902341684811415491490997899506841634571645784206477545327047679517875140644719729257351214467309089394740984931437249208644373426776435498662669462277286950922029330023663357492038762081326825445954076314621460574842762908530308354156912697998585268199426581133311259799564046667593524458193239347330242198952665936101374277130607540543903834257348521430838374092370885663368574400298011364152151539287449301982303223714737151503118523016059844957077897098078578338364456906420634332132138754879723219308900408399037059046483874856798382001798259004404726105902016720673156436784451044238627768119439993365499968657274223250937448639116032788292352860092674913366853023047688850907909754006811137585158478103950050995628416162378180838639458850648291111022745079750634218199323892918759694053355275781853568547846219983474960530280625734229641765108757911394367730242556709097283158468991913408133340733752821209613222813446145972403734757491549335321347577525994419818643233362757141400777065211979080048529237922842019434432796115038249028706677162915363496550243308773527386680538682659739235435874548146592335601103177292218475738458965278914733570953220001556686799835019005530052163976369525281925994865638997059679534117748540677102128649405502866583007068456143034058988255966491066951343787352157098257582371270910678666277407509280156254329289946935890274938884737820355577735301192882165273304943220268125257239547293567427468368241701332296443798835189814410357046816636897375689432922760090494981564937890977378034565967024703877413156986466772691402367693636507425058508433673636762869755535973648886565419743230906740474230874141260096162157394510995842979441686601405981010381112606312020349699840036845331822575027278813503616663347133896359626103114854767645952342448496431635489134103636135402831896075413686963881654602624520497852828617795438521459095757649086430290942737740094803617442693368224895912167048923340562708170310423463380110317380755885612569617623654983224978532603483936127441932763367656930134898527255061693323681791256439851838864706404073968151965468707126998178854742997572910091513561723324766993945867093889524060124852027495849249015882061010170362938143917213548504248718005786475382170553354251971168803475521417049369688328545239703183714782618939983506512767008073439811960431605664376231491652574847593268574364104008111079596293474660299214214116093647941358944779632851938156491808137789455080453464128507908176916522897484698903982373932449117377227521134963480295407775559794790504920490178518927155600945245725991596926876334463755466321651315831281576174311261769895912893922500648604455600921887561388473819276040922803875133256450169795430630047820307672887221657691189730126121436853551689205948567727404291115042026934065885413168824623655276308055840644229189535411942008980885712266898137978987830887418136960786301831169126972419917422331667719595004177078292773363281208463042097484636039237912013617388923665418899449577973128657948491485221069752362115141584138301782758296661955039548264363304738669593054635784938789446290166361968184665231262484878602483735915648695516995465103483838073226341088731589879144552059550592783913309119529016638025563833541206119633958445161130296936048591261056633928449098745380539078495113061901461294012905781561287179294236953197328449198368965368591111967179050744321905012341088564962281716696280241708338055914766119968770521028786512335599045313604421209066665238632415165138757196247021454113684641501339240658418062196237288376338727733699584598632467883549108342206068935393543645750749889607030911789194189233957746436261712529866545533428236356958595894032528707815300333057109286241122812779575160125789256164514948099920320823826930842831833307942386521658625691019199820486414997101067288112365590130569370830979753671749830105052103002651068620309081720446179509381977583474670919527225410043048370286983510612185029081050647905317471167909138898306520494791618730514789569259017333726727255083850027158708045253525348129583832116641562004782794780806065547432127506416622208702190546263955922371850126367626039959544451681007268637861806015120868061709892510952439702992463865917799394290819647128641512512659868958289731544499417335941414993596145995086969424559060303102737305460463050696162703589112743891576941462717600896184087346844724163533743078123768823053166741366505170530128299399177188058641123743207648368697724713240190357292977525562315356122575371814962899754723069724691877144412526828938199703278867216906825918715702317029517410600656751980792089666357804398659197758024629448528139396660958422519928073763900275713848476056687475939823651838948737155176467660496833080479984979261355833170793831252024869898172005545906804060696973069102212751419226089827214126033848946931497182752722680310097656556041130532475502803877031602100487829884221061393072315922364277248673370308611316844546697881689809778846545376691684485524382083080921570367423745984372896388632293546579990985731571213440746555499634462794268924153714079725095156838077264154241719184108406691463937232649027504389813115164529225159156642318631324841706736061680115766115567215925972807431731695872795000270063618702382532165878291040925603271657830953843129309180197417199638146135613164146882822489749334335898531601181186547451593054742211749954770999502180185112130123740093006706986752611245598860503406214612524875145030893843487445428528668079926432536089567742530212911817058170967955402723310523726167201009094715497990548965233362519007361438114425450583962172591137523970258201584360227327517410198137788618228424886843437087839295307772310592515817512686695918776819711847976869432016007155262828995038574856434730012242999102128556734341898830420209510951718293985702098801364626668127099238590503529861091487877407795429506886021601717972765091125138831386783089946900359044489273341281065654231191604077871874361479609820298053569191746567254767994236791322308653758298901977657331972188734570803663501358834639886346827740463443502034148446441453334294198348272032581312989637644023446101315217877550093316714640629480591297153706092352174728384909501176554999663255135946969811220604416249038373456256887874858228272922270145503227841103932280215429626301131841071980056838103407257202908466431085952512337458656071792380507858774472867628926109545347409701751769090354214077946973032689514178298493260412365298709194201143054158787311456073290173466226146937765108097992737571738638235190373247342554872353051901482893842111056913541855617718200703346636050294049008682361292325186949561427735462879906392180510996030159370595634746361474605855299653836409080469104541174870861329878127970012843229894268123968722596875902678948579065643468729639134279887502043833922739315314723468385223461033791435816029351246684791766155813706281297807654180420062485110791851698140402499214037384190247287244206456247640438916426344533141723479674636286696549421929056049576663496783261984880690151210192415712417771827187770763601845589160421342941331424232537674728001391826647502267354813377175291336309878884431155923222298903912669768654315397840256146655854957730198964708902357613912137635991829122221925208847831715382787395531787148306530456133723580608907178724056385353407135037231937311774738287923616051745206879414398696411143256089476454177880702961742370801571855346831947288060192884408874728973914503073179592075066097043361536995648170744906537439348996004830444884568868208450286174639292773346544165710312107871135619141842632646020369321221124273694364366944257886948561076814457600530001822036280024122824188204152084573497267922660326932147649228759850862804895896756407202740166176892181246650306540602749504546341058558717140505364728102344765832564326035206765510831931406221255790779083880540829360576329893216711676999311988089768280534714774809748695043522305107764457489031239563188839000244558199163470697915306693223989279290610256207667827397647640541272194631665856724321835744683838789862039246746549289305692035219377566627997499636320884536628241332038813830850717552887248341483625678378283502727434060206344251653430525105005446008842483230050499573288322264165556756844571581678573318755898949569228410373781391988448694098716816811796371144484054775978309787809726628444077745260104040004903567218332929652206338788809485762323583651237197106344223031839112968591882372785342269543093246971418692154603123009503206891660985535705022539202627104351844169283778349457595647408572556825807721986196630803298482686084034662500507042348743900754857471674210826424784291673085735275769907512203755968414898492017856134387863189330014323042844431298872694148006363349376345378464858619001812480725657485301331925567702519182645217617674089058379142525363796929017266189884712773692306662556507717492184915607502040653659340199117726075639004854292168378726937803877394479880410122120341012422113131371774347986692718589427106649225234122536049231817659285932164418187189138669705978899010910179357309724748715953055590333674085051369154916225967510191811352046467775769104583665669311764007281986752304863396394302913130649155917650281192704243388938451119642430744994429972233356769896085039852306704941343290406463640492025367484038002429977094285679443233956741399093336835608984013941139770739303948303990619022270842082206641175441862282524487969037329803105768196976952495126041811084804288131486771386263434323000581716914177915784301193167096683228397805695386637897711350256826829642153092897804262850106870532031493944630723208419495073727582690829006919692600669829322431322692408216448673723969249705497037021508720494156414627744898468162185508556732579658703571825484750444540048755124333859383342661568161928245189427393783889394932314437563026296719097479508642221925233861012489259482427193488719290784720599068586766486179612678770259712368071783147347275759851809115110293975860694761363122426671082997101911667769788677789732422567368559709500300256535477430985690234956659977528990840561155146885050773245235616196484027863137656699861679137249693907279873876501490381426921498916294058454657513170944660873061937658101690160408281991348475736648118727390274766031417147535210632700070413768311070041093030965766405143520929070459087850734429776453996782380505124745572621078301507726768498049962716491558101505519878007095538791953849817430064324346840555303771495647352487025507748982905293920270041015978487536728903499953099038853638750347006059857231800011185105649203712326270632373356311247221747140801530515021237099088894607869030918174547808833073168283280122601508261420066366449582771342792794290738354318681456842746712596796292675248919652437541719570272678465084605180300388163785546516726156497561810864119981027146327845695404617923731107259862816496169506418023663509792967772199397977608186986063145885075774053817092495353926644164403884200659546993604280583529464136867250031371917252085943000817952236348192400357824206235247169882738673007413382679440158392972903485333070872022812565423968406149571027821978181761798086540068096755046558051244444005429208075823454361109146194132687188698461170756011135679932548201474793374600645237505355918377736571249738587936175222726945884940626585193261582331850356608070237583108896072014000237874618186024266536537990085281740304176016733526518544570320620340874951352045357124946645022713421107236102703164991706966974599390208051466494456329986857158578340111961015787812470042876969157115675477589480690892326087413747631166992638957822145660463020760918378347746685892982145832313907591248375459105579383419455952520803087696932487106319820593148080675261417379925056934372069650430180324159625936846295778614954900051349944169047398981393410240213214048395087135786678015469313823189461879216990875222566202973974280270721265394325445883490026710992199900875220843331220349212008482209889552065407158550745399731520183894343999071723958330345678838856174455518018257408601803079037141152469047347419596369949621129306981628294053707901519655128751178276971116193148172566838997028570921373415348895012378330302986407866552241707227701936766142826208828649045691627160202333458446787577887691311614947881161840445973261118227323615467581165286449387359667009371566921222450282631587026867553728783002260779672752895205479200530680062172162269621308599104906637588786667606599367186459805606674586620147806408844844075241597740087509300084839944620925258198832824175233962606934669244227838568388033446238902350124406951603320766090361878939280976528391861123229454435806365115319003958801580759699453780568276846301487270643615901550637892988667913008289571238153912895528382552369750877911188093398302481130198618377952666105483323091212056934804810330911363891843012340291285345386793252003147813860611627631688669440331679733530133093033400062848474960512447503210971081521296854795346731268857418529857973147965824949994562179637053243094061370448135250658894935994806352736244131284313958802561744024181097869329948224379269075528163403605872257182838993649472298145942340854517382161467828388027011631092800428632467768022552812954839379392963129806079014168236825837087626998951556596266490796491731812818356304781686403026519593818322362212576614786357313261406942069714228731378851677200244046386734688920825964627688353185744355834401551323911945522727232718419019528041327933666385754606570189202886761027338411331485567269804549592534497782515140967989452976405823552205599464440243103302460934410459852246093223077831049137222258334942760019909985071500204802268703100145044161011824129248362724363125844373103412265465143011710903534220138677797725054607046723037677758839304501500104438008609191926478694726704695631187775034464122133053178569249688451051317799332339947229928560956103506296219042449489815732978258697917586725499831143542828016340155911202877298827239762474251365463202090051916686834690618059562188229933867269851202901316345225729787518703339101581131985847972609980387024586411637865358437614106484187212526895842830169260426512085781715410917777351383343891047928658893630016291501567201968155039493996980805974989930520664524096247454245521381516240136727012884373821066650853490962647838403241505929051716958883167969569707487769725172168749923392145231780319640222866556285604629952901717633993175143043072217920866151647336070719678301980365366663564241070945363555972747707083455492809160537574460934092339384563785592036328636479351468830337378822525790253999330062016582134352936247448173812288245092825693216483729565552507211731812681583845580001661378153014069262812300939363895815197372671433886436673646801548369949559634557038698160881697128736138445708826391422651216044218074702429765827325166721036748834975582300441022699333925677859101414267506826499723178687380614685214973948114635647399715353647198423140501341467941234688026073533861855761026016517713617587975633076779469126887910703731995656849807203663295534353147110889995669329840477008603939410616297409048885451924581197821959657835927683787394564531032023262858270808188570261879641670872672502080041077579158667851528081356328432462419613410647755010176297165480595520869746216131735318761143046766599916477626093101140169190353213933344820172713589677529959050632900878464321855250232210416914662632399721368778778010707974067132330296458563188897462419273355458484575161217462337504813726480220011531753262222396238149436811519627629279221024516902407497296777752864371736139182842455105126829087066610022119098321021846245038969710686704326149883706054710590965644876865485504713132701807159554077352775861013696284953407508940980216150566959450503882602457827089831902998271330794146482186967613797849758392377937165202649059744430406212500322861116989047716747269087498369043334675101618158388296413408293795810483548547012866077495878249959581459244493974539191939843791809577333653122344882410562381880558859540428294628772399991791059423792164850385253502402411463641579069575922407787176684077099811748443369225930905414558049313111973502267388826216535846229271406988961910209352966941792872187725988581016407297233996656800228608330996629826624515085669491726210223182778550498724709253556041325289278379536079999714474596572369528567927980898184987297238552256098602337761896351699270481798600628903349958011669525402724259397785624402263943980417890509634723484945802098020621073765609818758814455829600018397596801030954400089684182608514686527203405202504960854358009345823466380544507797060775277278927376094455149271168300666593998577486140508177161852602616945812377237876372449028430492544890148440670736004148685638955417069657388922139179578720752262058548415992775463802048494288757565832568573398607219527903410079687645431500968058253667302070105777591300533610364849575585352221579796757971602016003567279744783353462456432878177282816144020751573776592916026421598493699944693790297386058329293422500075763125592898500768963102785613532754090288814906787967351191845433261103090448965313573978112781178989145833711828262641130789953346735473749836354452209393668059862420115003063905451311948684235364361700000360792813755156724536355573561076700971708818316105465999266089329171003899464111057752610399619428666186666448987398971355089751186148780185014315817290747419230901019486800444927640898697077458994926792186659977969559351339440983562312505678376180699829292230737152014253559015684622688835921860807602678090512078024738082433161624635198672532945630116325494147685873297514344943497756948465892626273387337638432986594619760150292772774436663333646364539441906704443231502724842436758101318168625530036560184540396046818566793843969620037888826925906928627812800754531555334891341535035926720476352071912499675312863467323649382107324429709001052307559741351220243556206129357942346829688702507458975569038839940386904083442048657704569654108273247875617028699547825053815757688304319519556029686737558237627211909241373184112188085997148035716472159869691591343393287184033923575273135530136958587957133589193366975532231069059261081857323468016891163822870520842308703275296252227101924099289200167119780960469516243027950525240612078859433373456613447908613244580324114985259576322788353598819380563092245803370749912246083324811069767030764670737997969400115168874069188067306490083708611878403000172000848752008405216088310559119277912571688950523111668377952696398448633609068265146381367791287025993529866984047982161644666460416373125212788665577613033066850693165099556624954617466515335833408005084035503246817779593928377205636955230915355634098996626645869263637989026667481327938300159949846653875608263498553768640747120254366127807028175308168003003295376412135153613559066208272006619971551884229695440752160229370359257031445205863135822838771207574168532351648410107084586233648230192673153443465285244851801249129733008597960992329753185680486156634102746100167424848066035082097923997047187434290378897989162876751676080144373275896855452420217388223466389785936128765903831896029277735262220738235681984784113509889806350716336449259912507933904635186588097413171992976407481220653242212993562988610513835611451021372512784184459961978204082874140447260307007448273204394801654308321877598626363776476771731771521473106224648371472610007816135047358966820906431817959018727114389779943519034650003832461570719134749945050392547713187586871210955315756386686273896059509446241551049188677166851549973851379983732929079737234431580625070193919484378940439853024733606478311710240194959090101259847173039528750592339329360641248317246287084225132700387989851957883607886206480195357981348366914269204208208166684579187236718554465480868761567399197993101022566168676636613787079648558371931943803071750868765840307557244547987516415462217514473597518273919969420621287235193451817798284766484028620043394712342759307014035331226442127357322955642470488980293981443730727643534516570361139621756521490071592121962438520659383451280406348056359755478398861491357847599469373205223494388929466558840099399859304003673031205715703785072570367850294326943267395367175374539832792736202966992763465155360514483545730499492888441387753197013109653932077859922033224479448556781615217386519796988049292792768948259061243883641797612296050497635651923893033393954844996972957807629641683048805339736445169598786792615097129315530234308338362800419932749604409639661786659740566920739430370864793558596023173913251072839584837605082789822427310855334751162147807322685269327819846702229566742371583424458669780199190966554884491699914114172944521598389248738123506222944359114431925622947136342029846872263813279931151818806385393877891168201569039473287231147190256765542628650019098493980925160172799783956755789720665189103004699717169167889105017146289208715369366331752789022997345874397556942702849543120195615064312056910164426920942902157673342803065990158078425721198101989401540432898998604816777969522289283136829378608708003790435790879381018788779589876393312269266208970959711958712328337492294498922224536236532259504814950382193819022959037340334024093516206559285079232239291926660855573057804872822255660653420095141351982322841875797300509774499558109816335640272733733347239270598216382099776830773662363931506627863818733513743805751515312206840400077749028296439931568039107275039943062126947449853987554622305037166854565549303787675804873610126420284387493876186896798232449532288671936024366988352151036458284046414340967700094729506440497496105003660891933016227872745356698952590338067013069646601016133606344355117374670147968139903291175368389455154492565460739915624675761159901144589001120691287682717211959626945498926654219522926890074537787388668477779195503268153091134215571507709092471107812492725273618409234215462183553570819715082958834821314030200377161306834771784225478745456940647596467904591224822817764889653125553639408658327454992391066772883584512630276877845858066688001512601945198388993549876537960934198325234584419638197285163630807429117348675980945291584202143416834039779237023594861395399402795107131232303106537162188058927370471295156616169749457539366006125763439822768093658559602259647691656925171448969916483495056358514171436833862008894211269649004035300604598918117327857765526474878334439557509053982850713820823107543134651712310905464618199747796762059791826665973089990702559926802827886139368585672067065588096909065167850877781703029925455662845072542960056507412548152153861521342391610868182475996861052423636723570084447238953911101212261785110702797373589273784497169791055686901571140714496181711891469843010911306358242551264008125478172456967395081360500875941897599782094890933693282847084493017244469169637824185445155378530600751426931381429598181671235805112005266947963544242441538962713190204368254976575449071010493482155115913275057860548695897175759957916436145862813251526702515475426689733595144633764607566044603901057869561503704704701418054420941341476093263140030815461915183737326852508213023837029019673780560121986549297025540979849844956446354343314818082165185469782888107921730008066704710552285742308746718239969314031299289278596495478985775662202628305882610467751305302871241958967945945726440146381048916991895731204354056206948929163147419220592889940492864040675395826718868885762022918747551308194979171496075678942434217431479570887303553965490938331164267572488629234861623219686574749340037044316867424252625948672838067798469176190086482512110897230195906112484245784398051582959815569600092562387165327661577145804238088827290688635818626663888823706361888284194393149574467652941024924645870587715601470360312783302770523808511743936087891844126640372057577496527571280962861672297459457071603784620006907795967164395605836076870720897514046700764588817297322382575784814482594052784946856197405141981842904944335182261836830619954260574603295205215081436553466405070304643640477331181530103804881927489958028883288560585118018114794349108479444495330684673591880757451601073013346592264000423060408160637346186625768340535058736979731217813923019796159034049780906130888110739697370820556757691903825217229704378076272686051425970804415370297894657509384814878636748309719694759736878615944318859877688879918764442550524938458717991014293463257358010712955240965241933632312729756487449360592112801567536788767023617066171424840690573892571640698529459621643072737725321987742465684232791677281111229038242092528380648177438832081377939696877138027855302471432104529787779052018235755023962144915650423357326533872466359045095606142661322956570421603523098105033450883647234966687183793775777168926525321061766661929587470424053325061608134324109877315650979554253610328507176258263349558445762218433759116624610438445184228846595294117547636399558821997057421851551292450778596873425329586676238601428744783530214669126716439516606757300625193446916414285338209094631836632825280982239266245568924891254844305463367885971908619152287382939078598058498058987629754872228940509357212313425039272853848901703444017271046214480676432611069013004846404291155388874909806274262813576335747431602682516560851907628711884631498477528337110804878203927766336900643597859059630775988121059212171679566512825175843628030100616848940707089531008259264533180274356710567482012233364448301399678465527279630757998714510682198925871750302358280492509131302729662940115291990574193254893660703888712970537906004689562174502471017134732254177708254846795039229221118487840023441418904063453107473657890615885762949651847054333682765001693634661105930387071180933367338269230192426412670903276833357816764488406075682250213344347245252173726470520936383769475546938555930116427206076605200718171029899853676213153555506298437342234276954760822874135278116232042124940734788302077639932238512622235123327784374490267925123215998648883344822913435344459367321329306125082660686574862905026259971285464832139577555704209817924151461193498817941646792835406737201108464755697117461969264989212323585900091583809065849785148490162929332136097768328846522258135484540002524179279802770497368318662684293013496666409190511049337621926522905035573652081866594824893639101485481934812410164839686147740411642882423695496871728333348209764288903331915437251684397814879442684756099129367900647639113752123472602155120715102966079487300387142967584807603174964968807409867280428960026454063032193090814525585898904318488765145532421262286511240216601045221639872734139759247048766812688524576254636304935027422142133049738060043131699257435765042352165521430358527777709012255311472837994329749540790986006680166103067226860713508614988581299922950601069811614900960815315384185926094150801847952589476510998248135612073696366810993896066254019414522520830591840821650652332559827849248300293148269693702901993169408372874716720141932584656362052002687899267543075431145460850168558441583921039840603730347006614263293964728305326364085653742785846476935812871417467229907593762639927639124417410685129776661920771055929380926103836454902954517229596261173925240560466940251238010190283843592035038915077037730987873839998304508323121204196281235204377283795140712729729007624711058514479685869435389624664527243870713446204373987732460429284599322125533419754564767911419385303305748857087385268140476297153752996799927937579471864439785724469366342295058283914773153515975209429583489750403659886688588073539731317210604688340618678126140402338443656585481293202771414867806319676420401480394298582388049865876321339765371419705836682486264413285166959531639419360278673610947879456236781582178102396228548813025300947836292475765339860677736686762847939087441856422314958615331296481583890982810662007928940715572780480137381704431691104336394310840682647623764648243495643541029066294362767107059918725379796491923752883280577296265801619267577166866514350996139515354315215988865457273265888258807107520524740263396934120740372823241437975506311664045082595107353829806133059369443564539465964389889922982237036085813352675549904861846429822115543469256655797006210438515437374464670061286949140555196459132739294624873469596102777898263065285393444722277896145370715869733198135773653828105436383980928499388679545458578993364021922763565702799591996241184082020368679907029797247108731768503120981161064624476472245437623493165135520926286410336376049836531143601452460946065482598895368696953047592906577278275150880697946605533225768505069969978283009708121113189148238097480827700941219813769361001558072047873767588016915913381349815378109449038991604447254524954284551905237881643052817409236892966093520416893519529514031908854757567534995580220218358793230309470110466343290058918337018654344446176502249055961695387670482370303629953098308544811008129265528476821085391057404374679567077204051133705620184911091486883632736340733691839876038823564532316044981884345736488769965067432657759429093388994947051507960999018049037090628416655233478111578360844342940775127698103218821018346399176726120398687889151005759852329097998165171558915916963453490634772425609618626439767242986560128703206051809135220352329414241046552159634675807478779246205902713366468071772194536004560187536129597936543968356079418748860146985990978116316701514001619742894267334573481769498304773927239732822832084861256572014964301922513551637772908666734266362147890462353598523465702502527948066851653698011750212636767259193494368573863445099972278857755585803845091662387120684690660558420821978198921741082365205301237310897230223125063511149408998231175688740619400416036764561541288797290749236375240695399954249654522124894434886068099749604510271194675238171908072082779635189933574907647632481671705547806160868752763544315559475798111702583622497417758929743873997531929972718905613056915976490015715336816799712911905921362467885450967286840287675841963485429365300273836871154846543384042706733023568048544319346050111988823222861810646464021953858701875485933308130586579579010828734242801994432585664142800457865485986689235135231606817261820747313629664934356691822366165071041651514790770147933679939390707504849884145319967833237447903932171745305521360892421062067955111472615186536095563144095625837200630035236356655221709261580183985017073016637868817236506526028699416512525663054180587844855187554386168494196691321025579652439007694996518051240996040403623885495376982123127387018970625837057689470323478454244753450426189866914886240174293643671136145564705148065131684165619963820264388978819247195585293024700115421488245034199585706924813751698800787318228733081051273464610598045418845882193278895185736531378810647828248457094202156889706008544495012933383701044584837567424124289291958701521474756840321884071626735120200064082815375620564328883217701465482809736510323188224433344819976811891793737243086597182556939256938004971271991708895795270335333867403434104832059230871015613840881347916657872143944657754903794154225160814303430001025226642666410453392410167151674447121297318386251639938916562666173135807239259346337621122457117968660011905022942100104350091745851373591526073174509569064092644113668761033921386713981990895514516940729460562972898360768998255328960216941911449699132107742199436399119998360402252270896009169112572262794869100672809206592625035363303254800251906170407863173464014651695704605881312314701652853034275685993255109083798870633681398783697884790926418170999379925855638182501380246189769102215880308332405437521727015574978823265406290746814291781711146186896015279494028184826962413986942952708372142709304364830551759822361728559555109582675364642194403171801394150640281529024250449346881965460856106969894504915071585273494337192946297336156829669928583243143331095525113524207233658720013254477928673092835558643425401117174291795149955183374718655986132091517110458025167605189894286473107085395052239470995556241423882523130255799815529682660958978970904061056406768568925461436301384506157763595375102272359319420406989941947166009309366115265987211274139946757742646288484537167834978771131483103296368182681631416551713686060993397991635365736602497126737856593700796787643324794194769310052584149079934632383154652680795635461201720949993720405213989696718447122463053601320482393160551228551449393634155775010087362629323121775056637716271633739925145044890891366705367214754698599788777008582688473880594402604752067349074813006292142863124154461263321004882800172000712445298522865948086832280560641502271069643672289991343986538224213833566850382612817105629349807082373982574908754331326550414198936580597881152501132626619776904503364359677480700391610846057284907835756982876182613234392352810675436866142222146513004630861926927861906535704413957007552152978497700721502510038054737806826009276862138461698503472972214251148854659273582832002579272894008491980119250105833953923389149795634918601167706041996861396322155968662528144337128798023201240734432327575205498106215883297515459722260646070111568172452170249992124430211926875861881988257774516031581088238111718730136417391056384510395401759498780816376831456383740514899468825842668483837383306254467543571983515064086129924965453987094538531101985658154039914603339261765476031200653796586657840946352967912265414667144932275356249893100890869745363927812311812733764217153666830676299926407190618609118255655301276017193532646893744513955289404570488147194869356674133721177697360417332494521169573095037369027067857215379921515278205112413407253567450818198696783284270861103347967004123525176614662953726278886421381400380197112623298098826240988123278438249110676815769412923228091689562200828755148287954687317321521056235934629844097645686696357136345363976376420169270497168845796155840300241763462330506952277587496982395330496308727488355582915834967866324472236469083515042926216736910054832523174350813055401863399334035521505005333102596057652237279398183171903769154395371407414414752122417560327933660958821557863836525174560667650492915021801570415574249157756289717777456170929768345866277815231501366153700533249006116287210330832181819577528698489231623501285161742184212952863914456763342858709256659354227300278647861116568388247121331587120392912299377360313614057101550702966563947488995469317788838426663535777914726019179722173741014067969549996784525561751534263442598701073926506429721840384931770789708856077555877154546256766606493030044127090491212693613749941437679044024854699394747159418064299305921720995766705634619355553070318848822985066015939076013158387865318887926315474931824914621031368477337115544748367244798427120159595036435696401626374519743236537457241341541266558081317842582057776169385644315571040846584267122372769087019798404042538611265760406074736581510365271773306005459672186953295703588405282326108816051044937937201717839974006401649193345925839070130352479453275277580331434305742954099859915258811440317949694125300841552549282735644891035741290738985142734026590217238718151746497776464314116914557039604707675857148765551897523793351293951751483595718649147827078709726008466030837364701339476427376032188044502794850437331251032751264454537217787280664231155367544928819073492788605225905754879069013666866318318685861276160334244304058127634197992388154664964824460736976764165883171324207009367520836813820973996939198799295432083588597787544194654862011800901975485445406111951477948319402464707468770172466161569766007604314842776311547904158718743117394983073166319025054220907079940914683612165417916162934792366918099572898144891225352625124858486108195354428108665657535938870262680167511565544567781589086718538000428414896640995972981564923551714862320033195962713270365938428361993990215454451233573383189069080665702132782234014985719728380770443771859412724283756222384318666669638205961579019766940159769057847814646408654652308147017776863864473793921531538380332879474397358574664540131720053999031290001696056226355729455181313567262540480707914158332292415957659965617633248264047563420692212037932673384776313283481451857994676530573834832886049693090210460038282523148240323223596446037527472006631379612849235141317279879601184198820485671447675824640253167151155133993373651103525637177417705372932243089754170167337847153242892185372269813754661604865590252580338615553378378384568878319629343102517999091458894301194908990865504826230496630778550282307617436692595660364372332759960686064493550804256770292776530279263878691630734557941492780188849336277958773649378189891069827194689307045484266584756897721628890720189505899962314410240995927805811525160330049629658166752353249363804039220178589747667929837051635007688463250243232211955204622187870142823909312506262302927848646334942702021720420513833470082492792954640525514910209650132107061761731925262230827172157220498350841940136216543439903486515938981995030153627280088650954544054296203015275036933583930846663373801325962345265109482981917938902483449894353570335708173215591928817645128324106364111289133095161472742758763712914079429470994670332225673992961353016804166399642829649974800492623475754623873510759144536203126670560651950458014650363023262432348739276294666135967654242343439384609424774818420633998729969184284496776519776547277573455284162514457393500788936286769554114853613162708789370524086554274349804232211969466023784960060063319573601832836559094552027217085696222494857670749585224273697732455654278550543619841767623315921138746923212326432263218673819259821011334542365206329821336955809324918048682087699937529080063064474797576420540672023122652701550680067024716030510408595245669161718261219540886271498904147702572604064040513489716603352502550546338918375022814103188200802174062323550001471521140990574930331367484912352944323247170928540179088339491207261993717999365653469656428463969534042030349745617561249438613825787506583571302411851529837088398006600426860915699867320942822424393439903585157583502805930517954035490299314976138099124347687871652975344119177743021655699496436163234754861756250661544837264078941024429206744668448108123747263923457783554998010976000020901563575806807744060898357101827990051756087256348552110346043107317875247565360369564931904102981560397614819176197536874379602544972765626486893906947128131518110929755812335939847347193271655887067678444606816001092191060881440261033077691595433624635872564879931969952823316760129023221428628677292562477972601783534369856973980444951627118811123447304230087906535843991477567541130127999341944286518602141444262634697555112920783434443237991105952933405467425472599944712122517260207323450244638517104422067622478956189056884598873464819406144942568101267816073663941509188285466450620781427280958310025088013736912676250829130023375315809944665396940473298636451793714569680698449336683124309543346412775719073058672226758657208610835833347134669509222497666425626597714246066385450903756563060812837655892080688079769672160025333911280555675043360700013420570658417683119767381389883281176805813693241773146536818533937046260853131492443872943162779807534651397646854590049915855120891226584193570408664296685544531330424910033836951552856996210554103983855156783005412147428560740255197165030030001169787231169681896042413893944347333419390124367752128995880396840472061924407321215972490912178901413564459413530514922875135521297390008996259253940732496913584395210112498303015382390347626267124879688794078345225038249586425755480802788587056302799791040278783926582489130544968894461276096700277970846091203835197163429891043808612354221937604723706626368614169380869211143199139946227908513196450191838927571010445476252726273390669544270442791087229471090116973863834851278061125047699467934592026780994940650274925339329082574375868100078859380188928988466985582226772115505145238987617748192735518016265671331412791198348798282534677793438403087639697118313275761801302553090025401626330372744219996304552022521883057934225858033736978783136147409232412251864800874558270071079412129939274575475860020896286600267048285029976037452281353924882556686800774772808178766789839371332628845852376160202418332540615142640332796190837181353528671446536996285069537233661843833106971140062961994533579153529682100540793730683816702381004967341211937354489938669241043126819004657233894241710670365353829294543737779887404282170539993316927339597147005951657202316442960689676532075188308970345338657987204476018749664627125741216793024489570517525367126968063811330599532849727686451416028554549352422775669657794278859529598367155057454783669708168103351772643981654657892756992474646957597254388787514851318080637041260866333039191378584758384038644630205994727702246332647547512356424548368039096407665175254904984288759249936966171283773667624881651621251536496308997765708123181239592376669810313103200519008782693559081438866101387227944207065686736112744720325992886586157384850557310057424244324129237958725636728549679538474662714556204381960522087204776441991359330497660896153954143511620986601938801385265597872000746236677660310615603313553215736823512837111070888878916335907345346511104120653705947718529280586817052357227708924158075914362875380809769411393155638192576901440592048259842253206539503038711101564779491509715599838267635061505813744371123696634488729540632251725391249496039742361302020891027110580890870598016872306223904197406702775065958466895863995117170636590344310073785087608974860939776160456738885098799759991874153281384947300554367497756616079028360701759619652988217737519854592720933187530789446132484303182651999955777235834034824492403997352137565852270226358519483527388542400954682662851329420887599043275431726527153962185251726266758935332604261338294651133791995356192859661023196469732226908572747539189877773912302484748488578041806324630170706501273414177287127853369778113532476823162669952548091119468914897729877105671174520505167852830651701268230699320651985510353895570975471989429062972294526765776169592370041558177128515786421560395194343238494876148454873393895413265097529690334107480674120594756533740643027234568155010247239350190371206072636962829418475074896495165516369326144599011847505684997294268407473733706961348344601864792981829274947738442751778867617848599855214094698159966991344477584732280563079026849234434506976688333116859350643326286136444614494733228665350531482713526341609084477670616861592360103569456998135823444868137090428117358606881381170889260335893942734298241158240299147950290198544538814542352392995905005311864777587556150008535326144170945140788426301841258082425919416512519231799169660118963496178915836539839015429205967299392222355441802435574037272316507742432736899937028809189325230277617896884156712860490186266577845997721310909168191805551018912840668833306019837829487348302228096127653928456577223742759547093668369336311878970721727086922643710391390604991772875056583199047858061982184314026175408781821074548581234356689432383259801886930305638125861634379468662188475039181129598561117509763919030673828647874968399902130979421130994895745603255954080249407846739521503665909090789290261665998203021572372348733904174006113485086473604108932562679970122911161513866695511349110511025123177919998432300223778279074480515404197650660601170606541963141888490020145454993216402893833931024140289384673455229662071993672817698317718508753360266856939806633945511046736483405102524626211853026566883286894578971666185745938603693004563440927188621446572278561334237281622439142101606509904011315720022730399189516954143719223849254995721911725711862251422255674640029375555613564998701022604236803044317476157138562254268569482706629061070172249301811016327169751685783104320645560620567371208798332080911948155310988926649573649694960215450640302575696374667910014180553638890440854268026630928958678646484533653655496517326490045428317844136981015047344351432933170146261022799717633847872119923805563019069976058203303878158789155197757125146043986000989059607706527243207465859556611394126932112257488484770662603646603714324164698025398378757239388647036272353410497144341336560536483979381311395438391624876779712580509393166002904046469928038610882768642757150573490513374602810396815283781582080666827913699033268684209170541734697156993850038179626411889491456069960713623613803759384910245523870694501240012340408462193241452051298789995510416188050902180436726993423599668434792896532343129173695737238861366265926796324920115369217685755467740667195477447850135474606293470687870079103505040813873046581999435848991682137865127182794773315784238029076360408181424434981460775924189581257840745864102819231762548824574214275705148555687111379459411564889642189367242491747352409455663144488729250992184012021904074900248032966445228252654363026884932346273084430357722860468698265518963979886021518656631826071328709915420732273010092630895534375622340741352724379430074496039431286291993081958508566611879887983918840451394110030473761267178766126148760219122009385058664460432763479696293353687767710382493179237991225923290595391733285571398666221790232842464233573083123830318690446586252284480263622984969741837939943921004744832272078473835589071119371203229309190971827154242971379836784987410756697123684505252703646384395310153877448448046877770896358760425295819266199383590233255722152376259567735994198459988817300940020091857649734081728805638731233723356906628372208207633706802944405568551722730019578529246814607555032097588937281521607617272941995279726746220906849575525654145911595660736029213710944059477514016757009277944603041111349580419366209190460288970731614801363364193715688254806421348512353048112784926271221536354775767359280672712307115094998930689101457718191046596384041600285170448019752295800072656518021089641945875642544607176879245454764919724939560250056639374248492332032113486170536093620251771269538094114221042120460930322830713951241539159358927013645288552200533488329246713875344056560779581191262735810580009497030232818489315459256618558609448333391818886760004500688907715679914318759473550246707143983157761493786702433783781614980840191224236158421453296537986424538848109724242024327374341178155069529891318607094414730733720457328743443659504211149299176143091782668896959524397826906708899738746814704362029138236150090569053835681901254395211790163237255764896047970231557883258705977240873520154522569439350084715286752761266305077055434021365000713864502699080608769137121835284260434510583522143232030717154384734027518394392383522628040296961777996954925687930391387062516729821732753268414643508535307932676929177468497611413627644905396721792783325803567077872962533100709013146111272304215149002694975754875340160118745255777763635498118476295479225024360066134211249269360146651509308818669031560223081703338718614969014205020218007159312863794390757999432415116170412073442872138158172982464534918720128078896797265583957239137514112409597636648962258688887964433350592024168254655126580205284004942345076403844552717494308323592509413893298876579773204871115430940110112837839691668832208192351479433608741691869235518890851904687032982004603273410446180885012075868609669745333421432597088823913667883353050192085706274335191002400480425417202124396022461676753000204629863906227792221394534949718831956010925153058627351327408841721068006183564832784421937907794801849105096869521869598105982587445273241600455059697232879070324794247673613926755869083976393302695035576835353390684306672667303176014926789499391007092246738847580478676133562288816608590718862607528263362300495674964745832864848816273682535772353681563566908786043181478598699688350534647085819187502339035145274759995932536185326619862580196946421157068322611175703708819751815750343863055754557789657635187407851375958349732511679657819307758818185590960614883366800377993531026466514288278120208067872950947522612386802564800963864924403042050198928629871025198015673884831985540773214709705878124780588359701829910502480625812066309075724048636529695135583384190226937110873208646446535920390114089068646978117484244130035876218964679982583898995138469942199649360223518898828885204922008748085327211137439892228704586350915944395210870777681093583729918913727673572638552377123806046545296650638113367009934460254463469627018290968625946204451961267405479593064595044041700697698932695617226919600042543269540668674874672775171064760577392467273824413366631035605064598592274152418018824079015359570036731915457546547580613861295255193245317335276736332283096833547172572599733513598571432117671686306696853009459876723096983190856011190506646475020854490045034971410058523507374480217451098739060294088477194768399927055861137287772722444356188541108099225078965844944790107576691578070898451592583615128563176711280101402672949692943304622805770047827114049094228946048663529136342837705658555805422345818450369996281873469738624690464762248407039011037362618828377234823586946845002758155136158295947344723476939549878104209978045295581286194868862047054329099932524831011608248094135222588791149443478211832049877230448683065407350196396688340838923320230257093193720452388525190583372724639496819335865919029530784504976598696314841139067984094789986807042268292301455703662123642749887615018444607876761972135208983761518223930540328925742218573829087359107365890714912869537722078192969934166696107499518864952526268197931695511051859869410157654220077521473180970421689164462842182033508087954988080946453705738142938340940671540185988323625544660857414785230533642419467823380549919060129344368308744741425800941904788083209706950743612230111859871306907293462143661999376818249239606430310698753206188936680220124680963793612926488905116630553568532265030225107672756395885336332971695029238624389123293348145944453160768942982183639243736565499958562443881167020277862775284750772827214158371413581011411480221841602864890478550647234259035451432374652767448162007970990366543159349078242291262307230587606221237152116857727052989402397148886497431160526773659640023234742107152179361709969367492662619175556698284696299691940272719501284476777170563272603580050166007175085514155871600175940450920688338368444091381218081727641995664007172972376983536012833326356017508726100958048281351109221272516027378763172624087513424092298300277038204899919023288310605997007837733218728562161004548822681640780420656615308282553320930934392650470900673081951877916361691122690209063586059284961599320297590190474039688152669980853213221404618035740080239105320353757002557343738107064529361261047619377730967413431221159977356604239727976260938409941201326625986766595773612919375349330709378650412321710134216035181339950501867951740518656795264747532361264844132659751723579821706688357889233047890529388456567663562523368060895458511930694545934265455378908430121945334296284572300205257971825137518164287459412819034041151844851194241138645998213690658519794099090812897539118236442982909600527913371251644029016412843979913747900681617431497418715130194858841020970982266741323112235338148740013817266420141895454433685554165125560523399267281212659224687735457026882183048310649088592045798434947352333362975861616414828630487201088767878527615915189654191189959636833486923783579347968497272544424755450159219591722339098471663028343958771976683981881748975259985076443777367616645157454922616170300091430373905294407197318249426291367462711331302454814694186372281424949297360217155668681724698346545416430147629896890040626898993635175825125322657463279578828394012052198521226980365795033468631017264094484136755956353810183802299342500224924098926599714820235927166143101078669701434948313739310922156426249421657351659619189129767098678083031087580009759711292666888683296281985987657328573695876338665379719364264702610552689408599641041951638123168121296291962910618482653462764753509973733816206026880219692342594387550876505260147794855042026602475017847541306389017006938092769975303928009401991898723541950404475083365799229339973361195699846151959576240039390131507016039822563851274613664595754294281053122838630558914519938660800703012970833841303022736827803769611177050695273179568821566001689053824355191635779345802193410988342594981232345827789893473628156781383803033468913681548595171016760220284744564748098880851037994361111289654918991187178167538606813936330973007002500020382778812089019658349195447969252912148339784527406682134826216767931817992518734275601132003813584423688211234180940653357151965337530453851839529986908768800738501394397316474746410608506101522908832942519260638813863606577277463679731285702332858396202151023583502747915265396244939974428915429285275541796089075381091250674936998104338971647342207754983383200738912779175151743189066773862723326923802467142025250343941321815147573087190280078471236886125760925478226104392733080786038325658499004672003211188381943525765376688761328570760535059803749537100993607929804364006001129527913265280876952733790486252171998413811421592859215797611910317768362927998101962947537528518269684797263764104216831990786740514244606445759508443816468506665657470033139558760736729775075792286031218516788585010991308293396415211551166388062601757721787881308715248296383135538037480961561724804206808607384285235013471089796837279388965933949801241861920426398991027992479936495387430805463501131477298376806801655541348199657313820529709205214513240658154348765236377521748424562672971653750400042678349694992877495409736731844939473207143375449428667307111424909614267899847026622338078845997848979927332621768729780241323893403533997161371177762405458166094831578697978951605045597098174561490519622917384882420711849172720948878018991959619124303222505227194933449810809963301067509952073467317423562143487531647724481775400629681724867889307440772095682779059048263487776597889099067189928528871844885277603253792431325859441366047774889430628334962735785541284957921439248680035115246143174968325123690105408967842469342727606848443558744549290131666482984641715161721020311902675769911194654617855928387549132015249669329917467360090270285065969301158628767909457351112255638331485594522218779382801097427193289139829369436216649658094516808562136182357834810706268878376892213559623067759312576799703155262679686137144813219850570680373942802239797833498565639631770824349992644027486569628830185074768663367558496679721122560538928984623121678087286564104770717278679494814836318404442483887376827651416540530119833460047599064446090193039919870841943507154240305971733102483341975335448466573832745760610410039943451860078449806733875377386541890889410363473511152077982777103599121422290187926111801730046403909028586271392274829341555494215314144318578071197343627588746833794266369661680466592445630938624477060217867186829255364886313105973932762796172677604422465607428826443171924880586077849247817369539847334191207312955102652106861934201016722524266493377558433988879708058940358442759675459276416485875505453231333055005996516353146871334262717216341830829522710864752124850673361472552841527742132211591840812953349489893987831557405568659876511707667695484618536295825580426243422015426994529472368657116022785069801048905161216490779105067188889316330757520447003956020809299765561044657582941444400798666808846364822993890826618840794027891722585170467483639297056065993612297750314717631744191749659073127265534701102197646365787771725574919984727673405258156414128976455788443775124067554897170308370474541124244041934628054378701355245571210876702823016328170078514181279754743161550107543329174513805186662310648509222640425174880361570106110549815157614853277112686902034016293502624409715611629422258758447942028739037390216424032833066151910189781210062928561353308563846176678433538065261077191033062169977594142684446129051156965447658879891884637986411925100915050954772628020673602890333536089984642478686928065008920136637112044690080625081569207613558648560430820629349194952297573265480884810448435497976698415314913241398072978544242774037484991757162716895651819030250375934146559990693131015191282410197213948360701988463435558449362089826809851363675123449103088039458385677838029315863027712687502732412104071463340548037269688449026743060474678024490701513058740070751162624680131193662796517761819216460745964239894302630440404636536044241617482243795512075505276335586360119198824743625183496415529736416599280101051285854713492328749448829783249671396590065436690216459442491209591834652265783412921954742136313554094555931363191416437592367960504816688320790100963112354898688722902504589249556986306210309285164233287128134096522126744916584436936448245998128414510491157664510196839332573827885413829370340725361182827617579429111209368074113104592745058115327911071795941490890862074212324582018730816091470220075655741038938226027023289573592727167215523006230464533750110606535255798475757213443893646591752136365945711353467199449648115553714881224812034000696532360998925069459325676195100341443206437016281691561495619603130714726155567937869384431763426457886133219247222369912613219803343702471042563020572175771494468562251655159777222164332408189372226762490766888261862990621691504288904064237939553201414051521181014607623196591401019015714641374885428487546654997837921620029652515302837114361019240693303938914428428133381869533455507539069430643403897776317212838216422609172075390763770445520494279345944256532484586921715705566384789672630469446003207768102433357517938722788808724979586621209769338414151231644682998675681692972019469815394983811848294820052849217298309325913933104977921905015847506029033192723097903018208612940867640408856959686337027635346315679394653260512280982231102205465160763248483416803230446921993268389970989779323968745536831871086906279841974571382372884335987636720086459344777090267348642541423705333829942279362020736871426121973934991690697494701230313153524641827423712119977995361468732137517439387334200219754193862891708590423383050200834148922396616866661988746834938620047316530252221412534485379100444899128401077853485747251002737043703280617938082711803166234003694538328101183907126522819213318698641255798045170044639279911024635724547975777501340047558856648598712605669037833611257905813499190797312505804127150359957475933272475770977515527035131183679824729045285526091816834319814837864730931343566926590452317988317410416657978826892438947369044711295960607501598397388390264439956392147518324133494339796727782392446320020724405802165288340164083578742284247835936844790299699921789333612937258714827143614521520953700122661042888556020269534308202743362946293743037840744239128993590181172044530477151964613054234316177761915519677916405042389435166969623423323310518566586447593443872264077195674399026727984831258551423431533167486340654910932521632060420203617372780688721460971287342561443544598349084697534990412736763414320933191859483063313931916576072183850235557622800748130393362193806174499596425805014889524766380954520298786823703473400986732870047053212372982181951216034955519570308361650782307165542945912345480264319687093569560664354485136948132307039839426776655274564571540041867591152794072149275158825962510242939052223230096746333759717267204244408845459037497719072156404725624545055175017882790768654154876554275122963901427960437525784778804149739259718454909170072134228983264526234063412621006539323735951565381594778941726082097160562853909288654530179689382890764925406640867320315766945165522584196155082598757116305073268489041900222765287045524810655458719581906415350091994986352230472823062293659694112986940774526236500168743673976624621573043920564308150873190081703147751071308801759042441581296790181607968304329379516636350944900722518985256060738353548871565572253733903398052705170360496047437657456936003742807048556294361526107178706113335220463872397666641778995842641300259930926615328304123839931072409889019623090461185164406389227866798886731900882405852647406823639663727446246293388508725120125793019409381726882244698977330894515348070766984319634456934373156969219950362967874653874313708798663328999351488883939004344174372307414952617459626919293005883766579100468170716657140053353185136663069276649703292344669139079600532023236458960742536720911599102922911822065546824780403768237596234886769449310298105042647974690488122918559729406036511699802965101930065793204110124471435290006167704868333422999540725394427549354263653360064916717732981358497531917415501662743023336479982505268385313312775745058545818289035216293105315189415394844110420840132165797385208129549868342624972988715220324076938568275925557367908772098555907712314326900484999829236907510827525938174932315815763952170913931971740817098570069138875031240392277851022240386543695965087063628662167768993877675603663417866615239089813346256476277778648443016762993147248957755188494797602987854273223132721906274898367175634877307337596393888504425013633795857184222856784643113738391184883093750939568240542764379257995283163167454843679901405544747096196933096233715299307287748972682016593644982214625407893281567623816782314059093055296418705601661752209060537513500645925364866250411775501180960708029580696818562470855563442549256569693857289593862421018854544729768835926708204955489426375087844004530793033966617676235522531008098442053885950070993904519345137037885681145744434826761950918379431280568183567130026133107327994015765027245933142402526552055136695048330265339315436134929352209356980891077412758862301894018996792976895012195144105952729540122535893982539764436265994326712355450475736852058521319748446762703000474845780337017384172822208670526284746217800707747065156912810278494677933294738487230616749074345041724735470379482693061763605756496850092803074488654544821185735009901101201148848442230924119743334237506428151251277448978587622647374170109263769399329507427140238964081748656730692844103838414903496501206335814402921634194400828444441457746443329224588020000568425452730391118332021867578106167704902907542411761344567383146406006079004099926552983516679601398182630602691139711644788115767541041356380022398584845478844705103199041832932098484279042752934661175572309501730736891203129490095236428493407523765342034158893174571267137305759941416673522645400853619244927119691326905095318230038742189679367829058580254573143048256376731479529093556513952655901634411682714104862235344976783973493370740332425171555413695103842442032259878814365279018777533455756247133004839696887070109851243163727396672469668708047347670068931408628038404345454369891874016048791287211252206328530066818529519016837403797974373981108256436265322975838282210450874803605616677709970109000486666793090081092238408261923482148123860430539704881934767645478516156159555276458596953782633826879828212730900524973882799853797810736542291028731556392032271128485727292147372619785924135543885960298388861272670270875918629186747969129532965350293688816243915776817922241202708360374740886418180534318108607238529080106440838896187434701044093904906859696523537932192179160376937783399445068703920754981223547160700013236281214951876212285069560654113839140398730111378529387497489018331600726338460190947495374347988999720312533559022239631317545948278091095026300697501679453141681138906209627189499603168201125359823610402137199767234798785215535241019089962594703569895319216223963541159044498418230340352933754920960760547758439579993420976269863050319797309931387874800708583004415007356441752501764370749063373263370626441353808397151333865852904368009672828909173818480160414397993161750934753444959500704095731714328323773646577613564289371805597244748036672166495331625043019750358785327084399036841376247339323203594431539395190182883590615751089573698874078902665124923156479203573185932875687012023559678301819832351003859420590782953944222751479008739844196153704847063562043160297101453009104857203432138963169576301061150339321364391381447372494798352248911213468810506212135159016411612664958380269522553798267638024860918254992433438925394396190745783008092607194851134749577499265382714681584575923675079291208443758829307350892268424675784678939717223477130397132550875594092947828267994210232266687212248050723919266287409003606129153884288469857879475891296735951688350809456172207577356170008503965223682133336239374812151221872054667602132977380863083804124948377170686516544380286492216129627502841742824055711358341801063910555394766706303672347179221997003910333242996948310858116580700204841276213412733005624423438063023651263675929079198065959646945323787588293278009064395841505933591575329363599523211220353158435428223951736680382543789922199267453607131984676218236249972703667841253852685430353291359706624529626812979613374874112397731777595680542656976943509370727837208388956572380515616903597209708079953194354433083720830746761439235362902564997089968567026968875189380129546715786672265746970219887550774469994016791510016258599992822638435562207535715031970838822519275056514181005173845306951450128287574149869107527156208560854422282011691382836306634910227220980650569924588414230419826297230463651476965897770715810854196973973872510440235356445457780815813418406872043467844809922831090683440701447746843762099217939267785977747434190175707835162832917486351870038344994506480879575773365634880893397703678575978451441369570228033026156677179323211359140094188810923104109976685195604828484729830873709425871180861515894577451458048264462134627858692850386218596409979991387596202248000170141019760995997733935474255358510982405914298266169077143264793562487372590272308268547263784209836541474915714784773713852687946740033407184052142206080869054969099019384680421507478635436232911289789822731525831770357581733974700603733758665043472008381161476305986494541627780969805775659478557122230743810230215543532575094909126729355636455993486492861191370621330744415982463284234201145583829186781840297930570522583408429573327109151475710891632214761395409993481443509447498199433745755944785931254914921765369042765156073883486537551797355957588522794483643053971847910645289391255114643304578819500149743086463687285163227632331912292616982135440223175156449941203578649910933546573528162491246334185596305749023662268358067938489413909929045523425265822329285713556344484020102114580546581228404742315219793103950859625030573600678886154982531604942694730878938814389073560257638119158861338960175895971899202546915388463837548235453296647538457249517145584895030612106507460082735804340630406405352409004911511034544696108772767879789004419601791152045331105119547596652751519527110998425585083993002341706587076319988658109207296964113347407970330654845290774759082098875410628116458773682839111048120368472510342660804244195931160880607460358356097088020439928670296943022057371473909597609663871932850037398619972688985894468886960518403811692812130201857067868070676524703749771380705864138284101001371350737120234048172101742991333847019976689681999825423378366988733343373554939274134088858127392511674066174379265377877325472599094262578399343255883522893109507322277711091363334020776887764640214463126208892453639466082238990838472129014878037313512028652548721107997604180030544046892312292940194840796585218449706897819004034434181432234964993111530507818142680259780865404354585732514996257740176512303779823596948606238736815021874601553239098601497047642298429305858090757966922723827267493958820372425089888836095905248003458023858398075506892634315965090088618087347226440391016180418754350372016252614990487757235226332289759386325800438682731227704556784185782927093326128984020654309127052978446083646090820879094043149827186581209215977942103689202970191480772595743943892403597728831210067284453596599526945436282097469248789471096278295450010132608590821739577479813034061518509518885672353948510772789297256906053099497179134282189070876148920899838322681517100231839256359214963786743380395100231190373062848767572499634805064032006650501661493231152278757415304741897475058464724804692705520014529090985764671402883680326035363443275259317576760291265308755500243719544528244284752391261673418836898495435891797230323216857793434834553302833411683718067604983936780882467755157973900181129247662196416922746514694656419069920430450856317833412187522481966383278168632573303789624039269744605898364624244518424061759015844604113324830348663562962474398404720614176695216923785742928060811944857754920907505439022905799271455573972588721767625669072025246809954794855821462290726450926837495527703640766301919377761375551970905234777048158898830466776787810412911718916512470586254241443084756368670540518471070490869590426536805535230144352792090498740478308347564871199569138200974548088083960070339608649717846109133492380486823039729584655112235222308610678653632937793553321470167730136780847766322009701068455043202884027287189348087208165385089478221383944296217737870286310478794900635791238597334633848935885811258610313313586281448332564618787613188855024885009818265018591541258938712418161703342192321823379147037651921528456145185971655444598353321847553948671030671038335795079136862226871165876468874043853803853038892326451580884083080904758673273438987684440736430816298566633827561407850677668224438094108231314041009900271145836504462385684291984807198570335490138841499833075576790699679091121035790692359178345821967689801710640639725771491511349730312864086632239796837111704845354370252474151387114488973928536992212446346565918587022610217486430975139160483456558915632899780023454413333754085461605276320339207967454302351619630851563550549849272356857409936496432695625497248552182068666344525524423072921693753246800420809920993835018565233714296259319953519480198312796520763695650396478813403920828683259167386309893793154389880702830699642998613827924089922562238930087124301145663716786618311147558837285193887846004345957359325269887544679441497226719273865899909651389577623774187867706759496922795061275806759066708136676442587751879524566639509463240262511126808688643523779517194503141479141624683143595222404487935921098894383693655305866921245634143472195657754158383590108711841007160410078176514022701898036227167076039973363687951130796369959651199995697567991769998318046407736361551790868987860545896274604914572381895340128660406357090168338237211630710980001873640252934750760766477866215854562125722037513336314513151583068812307664732341102701954622628877782637044914269093610219485580427201563831493213956924991640229308773187065719012229848736376276931525376250080635152377281760681330261386305640581446897607028573050769054018842883312772347957433941818378649906445271597637513157899978974702892307696200871554562164261682297297988519671830808384287320954596821633205964241358974645318867488896386763698291491903197185289051736459648412626158148520788970422317263368563986401732667937155531863347073979550202938402020187766110279058288217494163815763294368903775049689059944724810845081359561023931745427574721523105216961519190332864796949608204866839397719680808541881651676553390085026472507109463494792500338634990729242966086205414835156472699348102089419620158055048414064136179410984692948943714895426859855563097026719802051934804693709670886248664134005847162822538051222249047207602359777378217777305780985847441697652018331845006693502883449225102699098428521873557604049443572578195950020216489437940210186035142133588418611094789835786837483462059750091518395459855317380732286317456106723652793712106380954698207650262996730701701538373424499330940184458213148080478735984942190707183124794927772905849930310753020678744632716495226718306715159031758293489028935247462236129512573489233322537782803685271727864003146798238066324442686905614795052771640898117522249389377342415419571222255948042998298655295988466807411880540156654728360569044755283749683368353096289770922501778327289709127576440594922354554390834564989441590949851375701009201702943391593652069180735936592500681553373888063146227120905724668053019355116065345629601670072465416940911479064030855459172181178727469888485400592243345328964655493425259558119523854765617263806671218679196246073214598481693084474223273936989133998588905473535388305896082186854224866952044271237144355084635436721604423544772945303644550430220020902293877037423302471173986188655344412727727036590291920217318778870956564726344532006946657250049064275199399305766221168859058886160005289430935741190403678480063896915661850017975956235199703184245700879845193900510289918096149255977523404134368187266344098741768063118804474658953841555331281128034752058655460110750019834939770340605142551218974577799741501598257530029503287775223921935962359353161685545011358094275403876549141458863734970056137321770821208780064799326179230077164712954052657450641008533969729803738064799284975325125399241790729561536451322320918398881701522289049743859968135632805448455496221270257834784667548655842429350275457010875129509704170034476949446287077121284853317926143863741433380027042514254875821516531923916127122390109845315852975758199057460172455360118457998518962226118154614169252853247481160089660074746253014057670631036419172200585822164960933993219954121322258561885851097833718238660256612882215935381470870671092538684401787284888079058132743155896060443297828751560639294211553651481120579297865080240477549294206467478209679506411907310911195208159556301040781133738114023479442314822800192905214591630520511210184502213921131549858946788672168491387117267120164569447122173034491333073344622080960796511211975212700750151856969428477293595555190354595249216475161016768235850357726159163117673693638409151964114667141484174882092933791889807509668778309908258128309432089971142973056612743659151969645504514135763772325084496829096747297639187193382543275230001009178242230806580028188576951053563455413004250814454860807232756864497816571634934468114263506585299470909603251651325231086023304253744972940291852040120477004767825253298647155069900183334578772455439085722474460394077205802620227088029412377668499584013865285468981076127506184427424954829452513999562963874759236135199253891710541724149661290058898945247595518357505873553642808509685541761777064561133035993945106566259079991718115170350131909781718835505479226714461529907756034743333320087741289411856769239259341762367115034373478200323248706557462529432256617968837265484267800419737900341877138054909352538921548139484142625066377049680219677449201694758070508404460067728586752576242703400236604707056045838679683534177983091804732765762590805375608723834160263865710647150032723137354283581273961380390585746816665470857032504345912937973654879773433098230594286406618346841993098038184283793380884689387610162780149367988071340807126827329313960429555405031472959898923228404268313276535545087850017318794518044063362031811252227525767303360704849896714283778725644171219552917776956769751664356190173408938314933700111079575281445380738801250372679111800638461299637042441267046770563499241351319740892607187699513567032022549476977477058042091195382302466346008953156504445248394293746675360785780998704177089812553300949251239322377001076894363619579112575170082667058795141186415406167261178189431016851327661127389340398401448083854372995475577748004328459486246749490481386828814006365856106397071984507883019620143729108653540812185132906448341644153818394183849450153389388784195926406728414277042561042724830434880131967517112079721521267726818720879740254394906247465545814054329900435619435827018732434099209971798245866789214406791586851888446800920069357923236142014735006596456019123236718135116212592762475749379956929231071569906579398774610273770277092675749721844897103957772822113373159711516261632682709882794132661954074872233263369581086062984257299763142601947022062897295597040364887107218854193018088281243050867037214751356812242486315217681309505295935700813860426239374511610056875739964322003547927932255893757952968105269887321711653728217493597768275731552428130208387146195282371718944583320471794068289329188606661060555220685445265182936921635933570714428462529386549205734155034605910269321966234851112438353491327067616299476869842477291720682452189954899707880890260547859250707074404036992746374300056138034609326590799496755076341475031176541549838337973606903769221466803031858294418618761797563924928805661617854104066481627620247829846603927492775509498506888376134512694303899460366332216828348561504377715057149068958620825738038522679449297609589049619619862221117314628755360839083007007814881100265775599292292975605306828921511319533873829984489765365434238715967257102595648111608036279637193716541366547126996821391719901822643188095383791891549513537575749484990367353385913248293940683983451901160167201930599936166323443017935961597853593702606062193270367779970673939106063035300493524278581366026061835272420024991277809069296117454121517582488048353781061484069427156651376647502999515444693514216739768725036104524832319541754510521658960089988842583850641771440659251104880112804535129801394924721329662804980054796112856381763580944767055050108761106348641420402451271231431850941047717865743040281637400532126365598583703004825525481097660452803498004114551970532600859925141976596710555136262616640244664831240069095476211752323085781818249666468689434454786451586073006796832590491141103753731037697987622692790033107531734069386596575366915527180885047114551035406613814212736180359325397705156395741105245207868650492931360241355759075444365269152475114371220380347439717040654888392025366170643525326302514865744004885178168721078461435555647760676772546721387866369391659581852928328668662419643298714999216657543205520548416632719402118840370767300399785604947858633818495499219935603387693443004368836411780601766845614366198652160876687079872395036523323747100939136686086440000271226400056374441200158930682234443760569208050234553025837813735109348134235159796205621421202760445929345171134799084032294154662650253173569062755956427165734077732396741277983763794212750893393209228756277703916754500893700413700720082738493046630132659122878119204113362358814970505265299214506554504554157547458697399321251634433451049515630252720781748895991788040411998908993717095611587276905780234832740437987819247038186374993756874932713224961685867226636595391045788654594907616666090203751478107475489478603270756056483302160813224342650775149158749377668359412422810109202365552202011778780899948293651990342481440672709655611510988593157296475973209007382360764663971283647464396913786281239060431007748298193521972246700751813963466228951139407755873628333908772251025359886842351358893672892699687951715474667339627516365819048601545641838779397439576612176617305756695911792225991760616986738856468958378802028771984465783459837950267028189818593865405542259642338986349016966814512790920319993044662746272835634608534050579695252230326006548907890355177706474016748855763722194807809333150567472563899026361250645002202348857848259664752405840989844061499389800084166890165027406064603248334378883511379062867571059387733361817534546817631981780112013884490449093213063073636732154238257376412437169295826555218195137128797335997491343723752224569559256456140167122648855131535359640648527984081468736089943356469922428016294037726589358448839273741571198144045666196560508798247166407509591055010212442083930070784230221195942450972500940771664225011780904105284654007087589160402028481930160781372569620204498533749429712620781222298281045510270178375880370693176998908350602488054674071236933182170439348347983506529052442351746478971899964014762489939111551526075852985283119481849012106910325391341752776932758357350637880850495939005583572412144367859323593333959141176297538590572850902475295644100909153801975479233400299145856759587667063085658161064978615463243125529887495000263188566719831118569365950416493230864903841470695171345081375374198741815244385869938245883901156485436787044446485453397822562837001080721812643461503084220683345417255672608525111264614745358752214073983375713605391275611867342231434426694111819077069375800225749491149864768384865816783357454083960249227321196466822721044498598120652018271332517599635082135256970983005052522887441953701895239571755065538220680296548907372405091932480148374191276522670422331450791564476207955789733787906095531522254429896548869731356215024058805139115884274052753286090801836535365671105972130541468342272874940898464858810446432768706046667457275450729988025771043961070671051525366473949059365021918214680624144780544203694878855012593274892817613534326170530718188732072360968932365750752532723829732634503190992002425790962474016036230667018354395791757939942227829936185238989304697464559869405651569215343494769286189850263496949212727325297055507998450399817888640990029898772916661573613509280743950150027510540751014157608785684790871858872382312360189178043855924545094576868179394088453554773261753289253342621212511731133091266408739956345593321717258786723236763117594257264801331523472671993501249564427683413852733424491103832891235545336060590712779872699455086117729442330154867879227577435449627313626196951516684912175031803995475570448127378481651946738769272018256655961251383367506945834507561013482699882594999883862710001614139835882979200024561376176916663875018511170347774925385749134655639464525439790988337384607351532924626989395529446636606009226726069077163744775655350361281117465107445829999532407918896321608316472000830438747925488390240375130801285541571805619198077593038026678009827064836498529459757572671928078274043365474198218067912579003412538198086088655110409676977159568348183878643846930788656527839408070009776989969011420205387573840487219093010609498013745384963793511423707361073925855304188601919074548729751983204379152018956984913806712496430315625409276756245442093003621345135668881971344820230645890980998919689485685443381699126922529016709264271510365701877558659229470313389346418588098625630403752323803287609266156215365118371347621149341882281038246616954908098155050917372397561893334380397374913609782325632203862106336729980302932289468039366577357822826810218000181248190065193543774301587716714522252481195719202320956798412468318338331521818197421740725825870660507828930651527696207821940433142699169306690442985328956831713208827791120184152675136990648826196620351836940756832058757187503663077349966739113833911634247774513059031092965759527449058654657139880201285539157068572277022552031200712202663940361005788819487008009761506473553523629915086440733580030259001652482480246692593411042348068097074869051856890201613060095187528064509328193332450932562099426983368774172046914601996539009472510661307885539118093408020031428461411147788716081865184951311075782980149397971858814891635599706096378596560610915796779685074041403326810305834600190869009031054618720583237720093858163473653914438867771410134756053584465996889027434406540147482989155907635141139702817883132227883360458856875175518990278917012964898736864837659143583379920192006815326146662757602109926214850444019172439049679412873050596599721746845238237406070949303412761358744933428204366909213187063472990684831342207473600973665818631363693265188423987989885882262707466965930017840524265841165321434504962089378243023236203026074593721548799994313351348049234776114170007513552651978805163858171281204916567311728298201635515728138392778019358321445142903031047775204556626773916658544459098055684533084492055615704136812235827229176400752232419768022577827472210829730276803397246078194080408185144487025649507411179695664938501728597974837327515494222666581725705918182024095413363933962467209080773079658189215762350032664781274638935129039371505271601575258121896012696149887333012351076515954139683082436047395350463916785001347013571873390070415783220180581238568581562039337206343347403334811506843273214738366349845290832232883086291125640092956999102285114805815948014892778918504281805603988365231657264864599297008674755779153082874649581984653505728550509762425994351541172842359950884526046422840667765763343488259533481132259656752802187958810747525700578356849521313251196416262591025899970399083894928580080342438663084979408367059887488960074875589160520769856306305810972841201561194537973195558663116820109312575493240741469255892006638476268134198003514030794267772725034851129095670893666798535062866485045319128452074125263255390507745416662813298181735399158528680569126910494510818640174853409806562836431446729167022355622671611659432453611816354589112529666120694915284131900477280978201725209013501865173861492579584790833140829442346788818675906686479967043146712340742176384424127272254602216178084948367994866240540579389641146476168536644616059002058924659790704592807448446574272021183899843592070666826371954145001041833971503442410582515271966713871356584635087283420626835793658388143564972972744728103733675020658268612912589556114173955978476738185208132245490571294074590844259515036440009379924585661387623954504840667314279598543537863463670667325210704900459758582893741909084168973347930807264465054960908826078996364577974092395761337417663398985041672322599478522157192305644955812979790443678263213849264298203395617281347327890039131268487201955819580097480371426200543018555891955961437182332149544989681366978304637288937379552068055040890592001087449330987137525677154986460446209250507404499144904635286998297694266036428091163684511717988541386650628513190198461893084656465329116943509153069665008927826736768803470238943290133063053030647703262208374703457331694295647470115923421004653227500349336452986178429300437464442315649512709212625491688200778160410003305442511016951639906479996277272971593778579748648747030926572687405048725261922314477960357528221062372709704002097908018106906524200731597070942766162693644509292100385944593930830145730948626525807378301686357711233554900258556228256411271126129427134051476330714351233270563473548265711853478885795315711544259067742561581003319394452032042454544148056954412916118498979140092276154135542990534729436632186037537290764038718690440381407808340887348588213795602286979897572490836892927514184924006005659724349185734511814014464836497974280922600256255736913656648729803959092174872912208613178284754635526017434614018997395139088303600153438607904380450860237124191616194585385561077609107949208890357589319004757622128980896046865937749152385023196581363822524441486603042972114725832076537586906432008434061623565877865742719200276874102579677067739030631482050575579179417388717490245502420343326501673414887077970322720599685628472778720056497879660550242709330900325647534627684694453041718460362845975038009944632594323043875630649110987279230755216562484052014677739200832016241877567557169856550738591704272412186468903163532841059013865321960808228357577168435898290124027894849577668436454001052750821796676976675845797222292429761145852766283933351423766171691605379503106463901861716875490526277533979422514286575548313737626185253271238331843757817504335405931081872701007781625924447504526149808755283115193334290166791794169672231296829459792865224889146571429812030384024928843071546388700659608579895690034970023673380361667049015889042763002274080304380661045193511108308060114283447083004605522848253328903710452859445038275199309948983419804649965316281816325281663615541246220313180182543462916116966375216920262358914473444386711299593164006505605139686665212048026841592756309849812514612259845177607462421071810663716929282345146836148501429528879108368064037186897448450069368771638983348143780912906862390617206277858014037516459793175389811799490277213369879228254399900811059448543697338609635925954153064851732700417186268128883908657471176985544792834780851957402529747312915230087149836762618627626781983086874432268544679721081308723916231265063215834109518357465849949778130652978910066347795033958097417414952476542316715793545172012002405748975119472012448651329641477409747719521428959175976512236332569566416945873124258346509810000831653933393846406827473738796270691374417266705879250248971364897472252384794372408820221471472393988077575790067728191556427516015623132927718911448080359298902101460859286602248194235978296687941961582772246152285899403872013291977933228230970738630939484608568483252477236747837136248542565871546060201343201897445499778993636099756659721188145397889820849960739237605024819062660432345133810436582218523095048496850652621897230964157827947775805264524359040640826605932466429628905810740177402556311772425281578204478859188755756394519729882554068076197389331072107980189503243949752262162756221588091600527808111240422322448706434945936777080471120538570820667019774225179318812337981044794632183678977116376427974848406556919417226462722888889335928565384581952229681867610036703838337130962103284291218275028793130706148246707046648781950090927301677904782366450330889442336515103086717299635066798084364526088687554197364047475040020127199576936509855421785250892360007147933866518515507485969016181212993734073907695039130516165168692221721183104242349473704605296376361684139609479143050446094260280983508012302644241827322232545739754693100271205071808148406433442695702555175920830157623166577796004026325433609155333389000261739568448281390433120022224059759558137222298995808097226171189197309050348690106400750673561354146833882998833558419412415346729271477603651378646144069776526550890312054302850912622935856342684876841476122029348611221126065249254427047409488922975478941401364119197650730665875191730300077520959880718331913428001049701311650206901587137016957918049101888626434814169577423802421281681382389525073621208340583485088155669301168610094192391891538344380392765877618318574873541005608865280311048350283843824063499505157219017009698802755463212694079302499523632645025327570967027762812767600619840052876312895133413204200138068141678571203361437259793272195359318658150210397149758174317092471542773376068662218806715043687627386265557450945559144875101080881613344337993458889016909164843766782497965741592193598632202235428798442631178906892656544368080998051256706299085103788928829145760122420594461200467419813016209419235704700391092306173294135804827483665532186440152194188300621928651684555751240906166876180870100851987070426386597275784429741494975975892814775829118484724022571184714803882563640066005688444466096329490975048256873951906408390458740692503407573217807612130999795783729585875183893737835353491250530564991533427618752619252259055375025376404189360099217394124600782462304541660177725613040378268528829461939760856879278477006312779002368736550157206795631333084096391565853874663037096749736440236424539985825687444620956721136578516928551796782061032613400854584791101307323817201879452080286048951849943852419702556873360949728740365677150646586005775169528447002670823869652457620460470136296321209499714625552020026181765197912867101151002283753927337326456311858400391385311311551530011479867040091007293934434710876745718106088203038636240945981721987423594715926069939050608873460145982487713447533669500394224242567915432263881436070596898852756995124464856014370703122488466611450299055576572770734287001522556789131702672214332881419686800210148339460727247548103438165154723262867090493026601111673226921796777619572274451375122087461463670962062437024842747019331735050841051257007092970944905108099897357389887962802161735433238240709209534058266052040352822366482286141864950338726308313957392399998838133973243190711129101873388548268418774904409473412768881834519178362340892297225392624354338248144120140378038074299369701099005310964859860869936973817021956908375232021081076409118432181182911844866461893419281247730420278466235004073568577022469633027766173856153955664840945079754647690136216173503250005339671369733729351036491542514991673726631223392250206325130129775948486977835399374688113420704024882505274842251593681470549333602487914565150908555994961452607829963506655091805215408332231615210819732463671943468980507434449004553353320635138200136514838746034272645028594448217119063529017754562526547153593055898735025616184714801271775191243558582057806369735505138651727742831621752782442995524046759793918875547010488801683641097534431526937053324956093266477089509105415813606761459743671260925999510265027806378202700138049123257053763862133213385843236849041808170187372591868180471758086424736670350893309649325422773206400494034959242846480352912518700131302384223031586220840730810869891752600187303689379499150025713548428097974868972961727335323733854449101491715616231486108202682492893541043037203879236271391752372477051169923987992608739402575759244282386452519232993091187997056742502356434056714549082890727350176360151648524999557084311691906026634394964311871671338510694555095642672292040013504592727684220957476462497006910321544159482580503636992427353953558549043665470801380131499455330174219637787177954823020749052258067699971053493898575883891484840377379805785322225301441719605368298702235131101500769364602578561536217304909668295278369370933522351271960347777020335657343754928603764805202466437995857430352335039866020615445292729659041495769864576611760859971453560018067646034049124790790701439399151598891815779349851513942039403331932361364712281724255229241236310817528476519688053510411233781230802525204406840404544770207034205118681094265370102320962374348539091518981789640614665901411125434383564753260175071099682651472918157796121066377661317954158606883055614335570008289626694892423287861710224658855708070923557477572584308526556553250529966467601347957815894507024265379878557999590736369796451532864205754994940834688581713955554748176545326625669524089782903845920423585806364553719659548874542037988153407545375821942141353892150142945764558351152238824041189217868370559456874835939726656130724590304278413495006869850351204980534712692666614648651792024204966730620166627684300998773351331114318330273535730397112197714880009857870355692381954491610426000905203719927852472331071572976233161325341162297570606969607234858991411899166723548713024634903420414565654344431200185260388018646535377849000696099406809690968864046816801111484362902050947287230456200505587841208415542907157697530290325566127534479690126729724966764159638508348121450793557608495759230762103131994529961729796511335604716736847881081399739683941438969965927696179239582576063926173161783190937023604236300044446887814798376096318526215819810169981101024618686370174205158243897135208652061615139417077956016047388715482240095411299905851001072047671256083433254809540484916555160259172099527895959602864161429852264056866057242588079286535552469392895402708837600247027194627182872988936562432787933715833058279905726427981830612126568263810810243905187840506718178789510673504129121278958147489287210327763807187358219839841133848887760754585397585881589749956688270659169703083831909022637384937998223821861259249827150493968816395490709640791441228133672731824849339595372877784496312630632788761829046547167791157568510071945650397819947483337053076998710381548108481080593871563433486124893793347714734890727813312529620090742973592713724679131066694828711630821563704476316994809513299531885372260001246733360163542801681017606509499675481988581090874410864796807513187462801253850242649770627591897392351769175712169032189351252866605572257183801191033781001283993318355556413424926197374670550332442325868821549676946258626311275236480917609014951551674177078549198658944692433052036827963272077558966681884477539944117378336175561269770803796348207613265358459686871236753942633474337015984836782498699651631826774624776875197918401181566079110090865249614601474211309518401963693552437192990027994331369190201779992445524759750625961894798206318562387882219127001056218368172778504598270082513725907296121938739732253009901060633209306599054936828048053413535150221778384192845301335370524158855411225515948113553650993742387120999215773826485790400945745296748286432691350047544457757750006493445542863901632085827659857035677685352538291181926530289678223098991292104786179755311050259513672411853918086417518643174918801959193164396345371374734155624262367802956196190763131461503176710780319353476930784733187510207839742589819919650631541687871532457585387175683750652946003184881833892008240648486480131087358717440289116357136331713557394757440905221004686453294986693590803519115770128491835073981749478247658515104013978107478531428915742991109678200037993669357669706790952075525909574666050618606110783571942751346020371278113396686823778648934602083142965721760797036985333014067656167919021018179350082970095771323827324594139176897759011724987072717972867958266114396703221035259121510424181943831142303533570007413236724808915794754685571061108606799429774792064888171373138187318094255660648999472186812712443643168423788679789141695392314614455346155080885517857968247037641080631527373854085013161839024773797208500517716169608995228698946490760619704422549826502568237666112350022539823753001987319402524482427714006826136454670081887209567989988883688663132975508871052004880010141476735330311277944439763175475022062708709491427418931354910952933346005088973259617827562639373617945313451690030990938649401216403709841749558302968933965647629566076843705632922680067721996391082938564983854792207640600354665476874816910794914374189497709570711821616739226568791855076271404387986463084645669032029810281301124420686987827534890574245912774015718572261568696819058215293473276051429400037358680010957939127038538677197933793102067574454224782743836686555252329871800850120131830179740162414011211442474438244205110836551701780881157144270222295881922856450277323207962224634426742494458753300202982215521541740868858079430159721632687768967569483963468064109879775698607972358211064009928747629001970891390432123914866293688774507334384908962887913565846908153433475674814072429584995378651761354979283327267510027828537514147072513724436110118799854267773434198126549578903728944634037216011306967797810491183087668981048300257245139850927873027137154759905523756646788994488738054341191454186243573469272206532077314126960777182335212071008016076149929459926751718472346358060767711067926538551708080038755803842376914140607305885175626946361177666408986208374238434151804073428817751299177112561191761270506604377630526037382427786407416313899034275082111215457966588491011855743559180325917247295069136803998135057545375720032139318838268488595593153092022399405466155182415109759684203678997757997158007218877473058189048751588366925793872597934538592321830817096724770376109236594315635952642519076364771379559581331611265932444369316351797782435531442853689180254731565791628926960516680694949095860628741569134054039257370528156604530159676517453989114531620547145194866832255846900155443327924128412182758396536858888788454109939452443711771794002028180652010331005536713030432077991999353336611800132453242004348359609192517060895923408084236586833011517564236930490631824970192615640903133626496877209967657240426314050380639169066272931641838012827421121113944034909074030631549837510978105978659309848845641024596935209711860257438796821744034537693582979292140680957466116191408695178466777683807015642998053659875984100171339203691348089159189965363438311083072119734072556049253268914021264022169701954068472533641202059777568571913380298794288715841552335022825856654995245537599964084270027777038515062639488529065520989331614856803882356288819085177148673716151053182519166993999228630852789195816637793214409564794084485567741791498928543214436424250080912550516650783834051889021473238075367204818497767264794231666736528769283821911315843603978991149128938280459106329576140090340267043777529539890049800849496216738440759256858078331948720022738992865599401342432039155198623507882170837974368334395165390008943362540020187206846912002423150122400516744360104765808616609400236416606015864729417511756293849273624816956560007972602233526668230524933607074504792833095411219493189097016467356416408599257816068581369308383957143519344925479902490758141926762045280072616306424163954102199106823027041291368993167461658709683979307583814609431456652674514114200104046484366164025930890203513872410479073876055586222542782660698907427360987757291024120938124581781290088016546406006425655485298903424942510024793969937858780972343014825760880816004914078346621895019415090277822298544117303990065816726688071278253986458680831887688483928513169978317069002142819428538517740610913868495267320529545243845149433407093988763622296357543959761095469502054356761981222132290319168250750507270914365352462933658755377899116254436537490321479727185078014833371875153178807003687486199015931180017037147407455172172056897146540619594879280256170561557159081007739749407286958753150453627278280673269076636935825843757163323094023158109247023783993577949000790132832464939871932430694050497202134396109655860592345753270153316820842524025216630560598374459100940227084145511705873410631285967422579331890582681884070012388578256104908633522147696978128222944376333469120018564152269737701480917452184458535949005585206167012223446181498589607783446018432529501065085160518336654892520825329438004215235236565282713102741113392336167877599562754983711041161099473283692173941374742117254690575247338386269502838672968566154805629945216194157964794610208168726444939962302469142258252677493668404320513902267013881412663878124212767021499971861067415400252413963376750992885694391646259798625936531278417251102466282051962142801732616059816180711408685549062997687871789903388046348173341645718516580814605207865609772373282851273835789195902914795385558593707955274354592750669746617006745038954012556835404334650698865372498090127037643918029283367323511219295467270253824440066186513708103690164960019842221167428068497527537120027654374262624210719164241431300297981991086189695834930886478841539032328139656795549639268283974905632855794025887961383114687740329399406886930400245408152119203494825817102846593608131853504773864204623491370490573819702096956262029395646025199209076859743620368038786386957949050698680030458194624583279007161465817709742819598604158453670916416696913847479845199085563303833461596062643869558713939952712432334973180411285230826000119428262382111074110596232918480077988912001005943062644575143902568001364570524604374707788292838059971533365392337147090045511828027752869575137535166859039433576201299436721762731866986854033423987630535266793378071450215274221833650802462451487787397024847256796687489551140416393506360771874932035824016077494366165431143333793488656166541952604737982139672662404901816796522693199435252816801546428390219269346885447756031550359890777703227381443432014979161239630121001281883603490327821185932735077697966954076111888545612588105919127578933922829699131789844541990670266987144575585983431147899270858894983851954851101683730035292255065500479378684226857245555343634229579064592517576288932053462641968113064604318964991103025433981281714160296480387069937538671404374919189517380012676390162017885773962654416428617910815634811806955523277280886903113755663954971578842280478015131340038989389302249497669930974431778899572939464284439051685856612743861845225140165576471628067988053100655750248979359154533001062192125714286214022864835003298455164480910723404125123342260876582726402202598878681617996094818611375089376788070062697504578785923640010273027998827056390886263719986819980369435892117832155731377027186502013728349638937170566819285640025593241972151505962246822545575064930072833975115267293031884361802645996757162703888752751635888501160567085368097256588013052098245138037762552765981210575882668107485382832312240115902932563823832651224621218213492989089146779455837943608149472011375749454846088313783966754032814989390491031031384087718172869563314646499242441288231454496202906376476936014331132050590045056794339396845656255346790963783250950133415366523894199898502907142818163225001703458192759537516919031798377348299037573896221371726674544054367969718420588671427400124016878421099862202832430406858053529545232126768893539669439635491033085908079171444386531796662919174786258964798155791845755692013786989818529495986031904074603089409507709522540063451467641692630063099633226642114062149294209329184998236202849935708849923781317880006506254232434945116394560746459161145419739338070746323225631508328613530316424122371222515009042339170198002372120403498465341427734034966930396030649033664718863354149593379559940718670942517115399476429905774993078503794138853273598396535391317918526604414791993031161029131185238424408691123322928625586284707537420730844432191905406487880530530475999646208128249906927901836028813952686304280121747207228252631903957920491022044277800917644425084215524063916652334849006522416123889394352551188840960157489328875601762889757570663247123354946955344414476145782407863786254880313322808599758390452918337862411725210378338318240496764636957372979218480352833485509100819704677939520678873791574656136020868721899535274339842766497303189917183950569348244990701688811402129965295102734409957130751813726338552376192116032106771065950474893852680106676375323237167024097116888396628012176697768934390316268878091780812047416630288334176975960782068111140582184993262434918942122710673759608005191195253542538308568454071201854343872504786878371192108765366937551188682389614768555509150938859437683062023447277933265598693120247687194235501410411941518502151685838882403746296739529542818362759867981859965985022858130087778641399660876511429109768073543532870689864751286797816728889394647248936128619995970619454202710989965587535278241745806266740845205331536818130459906389839560509168934804371553396995756748859462064638172579931204659447244336261382346272728615558188573762722456159518376254857504368503570074257710902874971793462768611129189937697897667316850918446658293596111480585007526395120747609563750618983982079166203796017743624675175839204165696749154705394559789202429268614204910379781926073395938661833083052076421426505208780925186176737209496647977538786364816436920030630153753556220142764395996748909070566381101252217444107122912764553298820138519915146799661740347242569110303711239224311317339849960667646055634966437642092004458166466098678334184794092208615215557295338097277845777361706133438525717466168595476720817803541249140725391254395732342176354039108173115860445219070202508639748633286001454538565905577820112502901440780216771782709919919239126695532364811887636593415926295026322296869390330874227925847186186602290280900594160618289813037866170419706980817148694948828110145799516610701329758324753680263255937222316950500684733251946314413442900921437346747925428800384987803419846831747584455146654252999630608856686488039911224166115068301704986295578562966995034354795733713191281094173052723094085179792581469569735856471088255744468513628447220234325969912898205487292432062801629306302585349223964475217087729878542071345194893417643382851586129903981224231812535882587761742492698497667658662116062618038322605623797772846094649464988436240561160825675444651001489250736047773209662576205144816853885254983905745534040932298053473478004517759014490492191164513839018373487451272593682406679726586986291797805590324363997396259786258604348397304856092687747978317642663780630168628722398768743119897512379822992447847047412185381149164183407854448801376069908140767560086901073742170516404017916545701349700620527006029178872384103629430764474677369387474208650245879351971333649303944350180286475516621247826505378229646903732584802719064683336117838255636497785904207741544803773860172398887301703113598766175322405749382290129301588131542605341041884268133807965519951760763325909004118029738057888195644957040305899747065517370738800990366167612952363468034303554466255757357922559405428883002371691046828795496779748730814172962937077595733148101476760000032563773084495684265155159248993303894347567001433132034637823473676863051267062515535600298318730579492575164570606826013302693766407637887867313936771070156396526217205512305065335748453101895269005161264806960820616711784165683227062310119657007863430340024249360610744155504119265889751916414534332859466271544413675453931740522993266187009762663696492620639558767408934148383612029457254272172761404241862865389524677640947024800738320363519850450440374606657472266814641943991808515744891623756964529362980981760435042181391304239276345535762238664437633463816512169594423483800617942321638418833202576070718807154767927652546256112210985315048829982284810761493579617640043991893237062092616029121843685181060020938668625123043795224997511783900721724770843009642032033082520908918094485045223978275305873344720501707166958841565162686456202793240273395768116473242278633007938680802763133590254097082061093434852051773249377459125269188319476521366109964946319843696585998819667774831093583475282001350001917448800054755714292265958533387713316252303511717725777246859987535402575950556686536544399094957496922218292634564298472107307160010604593706558732887634496670810443752871062841125652372163963004274647040930829911422340263088076976414573133356853988084824992448184644542214992186187576404516459139301297079982864942407297575827375971006306762562890892096542414312509479230796063649181773230242288530658309321863543028943425362091996732923293861590051883794677821891730283583817277253336420532982660004595781473846119816422501721205118875222645602502595960479300000149863797101169495743826839533656591062164265932800322194741805671797616897811301624887912477098331869576631844451379189874011616392759508484806504507728670274085569498540348580479452400983669850678957707628019214042118497949830747276969765986440434400011857150474749352211485028339907372112612098502493812442580609291498155820127197829628283381692913804553088738977379615005195236177273409774441137959082934471080631943337859735731324290797503327646730550326826936713779680803112858691509033858017139750067259952782766701282256942401803094615558590633854674091209700433024015273749466922625182225804930615597598798944365937865210666511796739614281780272678085383974428974691291376371354952889580890769029870203169056419325052324502042917596215270452821632460692752210370918962564191138513602751456388291754804099498652304434264014212220818668010676532750626471020536000201580125850459977202828774735329587441957850945673962057351085906862977661309822593307583828240091412659053538409525705038752229776967114751094180540928478033468545518501587163282328971545123900958851593193147597208287763419750001659946619735020331739675046638978970224454963329218923079001152401965306928069403920065976509055285369126802322070920403421908677998126943503069216953953434126642901257889813541363109225023824760481736606653252267127742412030683168099086262417419839552614210411133361815843157982587772976789368379957721561790031057436866353177631144320943763003394012661715095186394661244198229738132632922883701303906404691515789805805766632594049922757386199013503985817969906648125062645505302288360711666445617099682451114872299234337863487956010289108840912238509892391660700163207393572970813531252785377797741982710347737474776143821957792414168003181227641169457929325533239046710022614497940223948517420261153098453502920478493446083958415929889422258648652645892626562084500202932232229539323355969886063106686919436517641945849604657548973265082535666370553277087670587644445982072240581306187458117956758804410234710597131605376319257473683884311821447715520389840524232118721316187249732707445276331360875704737457602014283462082144736607736898944184726061068693306866747749626010037277810969620355065300534466968955675031082141624220516235688727187843031780469708379987663065578074668773374175406344343235959926388876143687580797695793055958752093515036394393487846576287191073509219483195073251360281114252853245781716661045980093236793401865091262394171496440186375479543637039672027760908302377298959583892056970799839831432875197067487539163241883216329450975786134461364967943677679407209634836171582790477089601952225798573079400266617962232026233024628500579347265914915181727434986749555806629942839437470926048240147086360119882389315057197078929355202833312250615178105906375072625688802828447652549285150452175680375535738949840329781578245462042468414962780808615454530665835793850478019755936426717001837592289747018507466786598412070791658172398622159621570561243111214548108493796643813056606684257491483651928723394284029574819443721466122288050484124408747769065236421520295153376151710034422779977304122678889581581280405070590775432283620673076033140370789227635973004309065090203152750200513786681235888707062586835218812937149438480274573516793802756266300692223894269138022155995183644645959910081454186583947904544664174342825024878885817499221404455945017418983415687963436100507709944921035420702308807925200310321036239286433377210185275109812944845292828680406588364657454986856985284952599929946405248140475201365837247797367838931981067299133439414433348234786505929344745629722538359847813226925823944917403066127318048779134407994490402355798293931651240715590937491661797415141770566308907701450005726196960146681705703517899322177013577558221803102709701996615463671387429646531149841636699945394666475048470667276010215864276102693975975593330055833748574539858031612237909176546274719773524645659674021164380276025733325702393672868012537021509547063920889691156216090631659454111091813413330732882044116032880562834492961178851865835485897827051058608083439028983240753747352602109834453725183779023855833265913127416058105478627763812004981307210662407710039741607767388646103930898781549720205623530064593191032881297951539576944999617890134650872734504735054803851503882419816435071322161886909934043954413633969454933975641439579035097550256917940814001039128543204067455760522326159391762688080822841343333368679332329404948219688985123118254812341892007499774081009102176678705443189849689494820280362684459330097556013324304574571240652614659325246021974774828097869261536474764449163347702698419514889006193796459226291396928436915542337772771607108325151067947527848731889254701427841962396601191054408251101769372487379515156359795618997942043725978395721644231982591244022510382472131634022653543740023533957633778822766022927955638486172296617992828683645033151962473265132782667443904649094674227517086962759051498752612289191607273578520182056663308337786686947257864156140549040856164384341271980132193093179387643111214587282067782986150794488011273817394381468921473336043172648100055392188376912911376918540693059989546043464303666541004302673155987431251705775145145270509127212309557693901800127138298589947834521499293601558993435256531746274415049627249510612384447688841786782701445290376908769101197943650530315248208401719663290422082768830854561548451144653816932264390609741612460302620916002117777812825261268062027810047352176509872232676221277496268344315175974967674001356333936298808610438804019290927886103660643453143624255787554002418517769733512645554342399889008207839139893520574084733296880937041960824049071801881124832303029716696900379769814928454838333659359291013778954657067615416681126094267198897255399905160196994111026709177965166434089090590918599064756293978132434675222407999305025117427032962999302381558904216621505375222695222881224645441810634776967348573202587513040326978092541521727050425245780230028580113198654073930925780949485421658983208183070896952701242313300717998389392613243604545148413627634196443917677622220939000576702436236247021813732125227079300834903252448162130302501296244620261981598728858770640056142526934817641908384903499482710176637104831489024923995841034414064098735468910817168917997829125147799082230653842909692946588608978500418842887259680322614622057015082798401457216859611552343350103624507428543747586507086866229161639775851388351498219786203150811932216443843214494544446658339850877647052926512731285034133349681753171760405261644986290279971902311885227941859973166456530464300585836646714670567653943193261897624782003460345470998094438814264528585623668911313479030356704720744310161599895386863659105784559306646100721240660451614860088550892506179285206594009009273830450008624343216389073113941385079559877365093999646600428789622838188707246181268144100145768668715539794488361639465885907008413796492887991509976343818918036960523716508219943499049649550581286518096302857994059403490064511223999106977144529535534765737665985144004687699828802497860250612860691287036839930073402651184613585170835341483211183325934158162864930658560056464836512109270613604054445541911655083293276539347140286513077270698382355955093515231327217028246129714606643633093820211002434698154392284732770108757753044752860410112223228080023091105886230781865323302063814079116613845951266461550398927882100084448958101705405834045410563910053222246175357427182704202760302377262026964753892575304259784722160731899425047123321175563780316400988662323533254535918387832057301327386348441655858263943068873010684574510406918498696563428882955143297770019933396558862488530722181684295895867709087301885972607408388786842254612380170279198697227342400103327387728422903000882993132919663882325858263506857305630712944306101890749391805751953936053261539688538102221506317297341912500373679172915768785856321279041577664046275088799639556730814904031059827534618814578569435704191768023190872894609276041710197224503180288766303751437365148837996484167717536979910227824375295344864559132719402086287816212131838616199784196438691674069728957793857042172842070559380817268498101123081532946812737719766496864663569291882637161680063998008936163962654248484160501817028128609975051813500081159805427993047260003758955803607073092488133816754538170243286233461172742320038818882347159216433968097292617053090449065068784803708735061065691269562954608769714325979305024914438790099558863601557915109681650264388689619366066499497365722174948543608222396387862777983912308335268513098567777975972621053317091374278357023971284559405341382011178789616428147125285998377517365513465791132930155258929811963108876801893707009167557276085989040799168783300954501871875581745459710951910350426718483464116759245836169840549303732621475595558345602094906571672635373335300299932476558226563602526852109925803640298428544117274975898455465961728498539115217380962649514057716107542524536125595441929317764177756901223825823730237562667657279006989548685472012196624622189363153850852682664738198797448489966340890750825547107586322253974727878516603447058875275401823119261438648010489554806218686529948199052928321744876655439173557625867799537391508346299144583037017629162593430660833062565971685630421069207030989307939833912635937781057284645085954806002165547747341382434705441902688154543987103782257195191595131803633174463494201260801867660363998237128008036188326138948777711811507156150570126251413958642494063655767470465223369555236894248044823866342581170828105289254167681265527043318493837247122858009200188392591185061224916343611833608498548214744873635990845565326479006291618199031499180844508783965678642675610657985412636154181923746616347868304229085301253741066964122440461942515513880260130697075165928730806576511290103470856799368914603707818538386151580780579824462924300063132298002396972080190492023892768060405410312706002103084624972480698252227670816614606094467948683374812703574597882358924402552801739594180396413437383268439773937081303740569007671936675598392430766216016106091793916840384791643464770182671830462729489085755380287801473277005756986890728740516639520782728297375538031556837279469551917584730816974853933923647144835037525679595657599362757888480603318505303485403538831138039748583030693634385025660207018638413124576979371704338890953830229191468434223592148904667246478787671834965394904547996018072103513460188709370359892770950474759225937755925934759265436157776123458987293256881015282765366994015245802751883684690571001076378044908213833265191168936417435926459132910526318991191256342451448567315000811616785521631344033901898265118143185910252138802158848894451333664845545482048017428023726005662256733471143998397858270668168669956127443643939195442797721071933915467309861045715028583759677950962753200792959758620621142458554457037037343914648912532095412896831451843212861692359640928422719888436481657232119938019952120000441905730575297055450351408057517895773623584793985027367450922012913034435425216036104104073097273480478941021348239624715630296934888281490723317138627378166959525511312983238699355383928078074922931477427827272345131673361280122596024436527347338443035162044577808075156136182378027662860729039388809144571924977189758270829192036231420952732375913538347610021582650606366507204798408020692981439315382582153475056198890023524708355627669978606354103124883138051416742571493406411869492235412098247250918885275908971465841469177742981415119001609163073148729185141385779397870218170047085177351248994302885883069204618033143579525525007275652465377275746370508623314685280704728295126343012186649939527818580453130479161780716075502547804729195316329223883700861968390936264111456221317697526858729283262117635690050880390681016463019287225984836055898765647838860869174841688535958168644226108734742876923378945546965222635695657849734665092482281813278323832616186003019722611263933647484898569938292203578123366531042475417815243198528014487504595186703259050465568099337403062027894536967738157580157329715704163136356698922282008164432793276377636659230184790824306343217536449915288199347151410911216624104010298267101894292055354947098280087959937658718414535898620552713056003070479609091743971281473507755502438998546108563492744310505885383619405832393563672113094088257539388685739595166514725895242965462781592569658417436748579597095304075120213841939713520504285338535203888394506208429950838624491364157652562921633148537087094063417703395723049023745810721400274383795849531100942991645831158628723166915266416721059233557507907896396253869483712573808643527272291836932811272695962517028977467227122100284131567964997508081134588722802794739268932699682242130897425060991148230275759514553064795138931462323621525700295848598914184700954321207127154577436221598850424298295159797005032218641015256121401170673946199900580925822430491586707767401447431816936102364846631695724280574382085407736217844578411942906298230407616319682251109124662015744156792902576622061349163021070386314043921502404882886251802715539527566292140017113380503585694831369946840074237027539699816120548049909322441899216095652745358569206342918667593739155987682202976422150513021245216111221445664720297652899515060962681542006569098777862628752285859437435613249095339085959504495412137985069398699547207912443045477029807729164275796169568111153183962538629489620612561016561619173141634578475504322246117413782137461768879018102276340244430598243236298102717807383242630875001821556058675669895298774865449437744161854173413823076427146428811681678216850716599065370626119021133951417865237208248408513412103720897559530758415671280827785976263977189395277045168162403689085777254583633314264642480583798859333468669994087329663006832753229001931764507854487635652352220361634628376841841798568616705234189822388157336028358526652382075934615890048687176490345338926659031727252018842549476243760519288635329861166648973969839879314454343239918463476406260479565885077096004999586372128952925592551197247556809201111902117442867872388916406784197911789393355134389949249390019693263827236170617201876030591322334662327943544002580884062660123357714452215214997300744255129414475294449715470767020498124234939431719929353982978143295768730317098734903637750374605622550141095979424998705464459358086976881004684248450607788238523916921735599702681234729350747618851400979075306335149250341510786334999174479215686941729963188717362129790944783388859400822410963324621291266985232106943216400632576385221500915653071627470499621784062423844249488495194072071965471767969104830226271662399142187268671902920910953543930487908953349964853521354897328356473875371560716257230370518520684221681318360499287210875334136324487143773022319872812502355576702601906869826566200335182468932678387068284237033154758047730489368575017435205479456584582448223996960402273177154183927037995366619372915783759289004233404559400232101080441716231118375587859663792090572104630728907417069990732182848974147509123403828797758689651859435114898724238040638967041885554433852491371031832145774753131076433741740557047087670673497489936876677574863941290760016196802594675617023693999786671999743398812261491873596643527004375387868352648357653163113450746672502239557947102324004587228510019906360089355687924522124259451256039874548078379454506151342110235578948945867692494706305560649710105224515838444163589993855775531259565841660605480534819516878695682946664982946333919372603306577466689897379593356006724842764202409897612765678702019520725851940777017798682038674719613854101985135984678307160409603262389267560776810937213269034779883211888948201395183508678504699540510518271091184705950010722315338893278068478513294285445010814520507174106341793638782779085350199419150077655081683094619737000557701567317332516380292197434993449349350137048680440305696984898960761530628888044101221728933618092147228456031657701871196379222733518368094248657285724637360920434017919866361526527709842461020491326806153303173847703104203841643263182170375626418017140301468171123824358239240611080024531807689458564320471382116852134791540860665187420869864482302145245795240668100916793887179324595230934292353907861331824897619532405165920003129745060914449529872932188642162442782916703752172502096172428069093385498731198265273941800821396864876398039197481466474382341244481363209914131689046695947147955129571830762748540183043982928768432910649808268614381012985671325704079528172239045183465480388957476955060850208107036059274037465249860459954947607363513838546804833390980746929729883371969514429790553731206730480858772584276392288419702886081174555533645753557133041138773122846151859165447647294222510086736589508251791468599278721761833775381526743762988873750845918242281661164809088190565229269469182812657780446993700720830635272631164460426085421764928543926983175135257377918176436046067258347586700007781784520408361616611995347961525562960202033839150395410235652988261824411889416638089327487176280288835856053744422179759710208674511583801727886068382316453890215185392676285425320057905241411805027236086201326176367764654953769100006969337424482881252058065768530598943854709829062993593805967650738305129500752153793405605485347219642344500745657181469096217026133685831840477148427407486075301210556254117783908009404120135128036519186620372686787277545784968886938441319925202599054238378736063558667630097455851898990721889764527635582441551333203513370956694771612611187268482044520328186370617897883785601456615798932607786479418323520081167209131494053202065867101608560365852368010682226408626037388987168973275182644544529518088269815376412279165592250159378165276842640910879655008228138716070358124306812200512784990684022628501856293135312381214636309603278938899399385391031476520092353078737963863252506771999311218700802259587221661595421800740914625090557367434093298934258909260056760270326946516621493062280354828466220347831377397923634889894958511738316119713536658952510050067762677525006357994512628590633470210168435366149735686227662128851679257084602280757914831857209321837183643865387251194705039761830543060369731529816090534563829947313630030184232014939244618861247872702760584798392771155956028330269948386401869332745332189188893589687785264970105484953884659211493109882312096286221108838533672318948354435989031074352053966618934823859165365451198292273512841432649525824708482428561332023324548132192193222778863571331149702151504510371043741608756315012511968204829925700716533798989192938133314576070631509087058148885668677718851015319085843127511260198681982452327067093918349426396973707381292097501356309955324538321211044169335935466387601294998565248417940186248387635534290973228172562086819525515184669185748649112753624024705209615630974647348200318008715878613548844349970217585135872721958098446789852283646713201628660346221745737640380087206782283332947908214838049691199091943288271445749593921505857253868796715883118124502957297658989814513149963559370803350925574572987340031454440745948029772606323032443751007373391170372423111010883801077298193029089708273462410213673132023169872457090697485871278574001681467858615525828284337222443687022109115737023347871854927160969032889498629226839764041378303838421331715603515192265288913130080515191932322894046899091280656267009796719196807912013998953342735136906105476332062191690129437549044758591661915870179260744856761856222698939041464548731584745844376415497815460230771743392825925299474926652739531051136320899450918947363734227275080927329012785236894700382286626183586540753973746060429990530037371956327198266542651347834546901438479321067520419068577145277486007221398687199996596836356672127101275563742842318952756281676776451851824867860955435947870748248944421948635047737848248761597121065727845639869872374825942084453722383950006324429122316934651779251377478379566609563594237599884875600490275673811599365070508043790576164314820880352239053400011228845722015631056028908473675386413976925891851066901603197498582274746675006818072741043800942821287074446135880793228755465773792422892891217583442106389250901812220815297664780647999200386334001583662747236348232188226129621043668703840683706040276712988374183806196820762179668490943006428329538871132566864514894051425829759008035949579200195903331374456239281322282273362149045132656916934289272058087930322633059963759042772503261716729844610664048070969302342731616909190297780982339549187103505734462813095697119187671020248335881000820511623625006023733682268487520747102598061421295933240798533599888281667106350949344992541654610250135678015430776899153000025604829744188074272711630487856152293408957218677700932432061215740615325724572947012847720103138420735434873761555891435854053096542889173848821419630878062179152235295066979912844858573186833376390195387817101044385095982197993140326426677630628848085983391282461779515914278087439430780161673343080742263716046056047229216972261155831947410363759000651070082531794023340647803415066876476873037966299646002828546514003297843601566016982752877026433915450308922614355809804163840458065140622616936446708174939215540073466612421186128512405593123420987505140518540468547800556246035306828714965538853647238081274421665173255346499992002216553989435472278964412456972550381288322427719368001181312508046334969547520388159557425758774026893514592955075865293833251085208815821493394176786197027586819619863713501077850354306984055847497480156248279342217271684756878535038381846782153101871407904300038899990648035339826781573473668837299658417776971863660526524751441071794202079274357258325957750816213397916466380319484889207390722996729897821606473889803777581588031348300852602173680337972795428004800821032725469719352796278029266026172720897025621853730569607078670720360910194756223778737005717919907684401459090750412687953860988613820336544213531345560474904741328210281767113666683336029873486622025116549911880654953793087671683864920506096133684268190669198457082792457891588461078171532471444362310562718680985579006174179625715374710603778514370328832435575851384218485496561311138014006305095275451707395072166746525134113671512659212710416529041159738575203983181109736318844576846773579180619162269369649234490014127669666821561620678418642531709334241418007263744960184054998279995484486127451769062856353752791072321963706584845169845155880433098166880223451382439266798601606262186484101707215781387320521153624737342675075080901414351788828168265505990485973660885936377700936224241715702952153227385441896111216779184003604294543660511127952460855218222008824361823612464943521756601088533237541422415228477490736359712347597163109402829023588585687382028386917791347425709931071013702030083871138460113847629484422026188039305108625766080402194224470436060196099733585039153128638996334910201771445927799673109962020673398985473043164882462617233569336570031734682406707779738588451376780430387055289290989053042544705993697825110149707144593806196977234268164131972063293629410259617935889479802554222637057962192747659418413330848470294509436486845605888018056851435466445864728968321579253543257825456019790776388960432124193511063867097817263969304569982642871509114885487636787224293146941508023762516024941584720851784238981906559607343443200455422153511035324069635828315540765251390324623268466529880885815964495531550106515342637327714377431052031438734759175115952295095544750711247115085675422355460055815354663838001779216717385052860808417814784052700274263801121872250240137288836138282367535516339105976342535680400726370839932548191794588941444980015626949279595793874802575907969303886610437644487795994732959567236401839846397276181026990392421845410599422173426350043608432329001549550524278262671608712253687170467102945472908048629596743562859443220591047953522698392545299491620697027202799757550729658801231488723976083464674401805608439406162391385915034851897382217063510881241965752603494199781563466485015787597564250151948696417338589799808858862827715905370530633255591550216500450657634311994183555618838062825870076475137833217349373065157939001556361694053358538885008124807860346962096142396218089730095163374545947155136134878756166964795420106014232103982476058927450981231856332328668584277437896654959444126236810607263654681105831850462437077119740484598840523933733218201476226490099097246102697076836447563213267706309641815578391101874674199847644952190546361467319015038940440844246010507859423280152237217552007791740775445166884015186470177635442343629687590368796862480055913974922108101789821119639014241863998745774288426690755889995075687483764025044376788377815813266266863559334879504288197722961521453428974299890470700359820527174471136612881174838221377515923777214325280260604881704013170593767129828312258016092678283049421090635941543722403065720304923101211864313676347133892390127317526840521372177603567012323542654278097115826256035257763334885665871642674319008969716070699424749290200345312556881166332129961679537530518268828867540595600948439245610410237482805835772390436149444363236343350816106349372980999929716652259321604867050915147994255957463814873033855585984126477254486825743337413633950933733778036876592124008275096209809331683720422864924856233517119878008593976457898535322902743427886177075545740130349241600315341728491036330786413019086214575598728879713600310024735686234117571000649598896462038220801956870828057445722609681600833249268479984179420192761253626926849961517652243376655218814306796045952697045768651509171088682463550673581713444098166851249556024356064731520886778541332892258596693392238416648473843838229774048295879633148430070600016189922898896185284145295881170006580132055163446739163006466253036302085069278660207023109246753491948375264317324530205217172591419530869192542815680394437786756809206509331099645319799945583976921137062657301964557457153513457406095820053777595490760472741340293860755676774710582354618189631615158261234317939838024755988025789921868022630696945070344884602191899876064531425375600201445673002744114146479537942186653961751952087026539633533649512616182331184635893165664760463583395451317143745086025569258406635764929845152423989462881443290818586899340431029792702660641954121741924160797867093684472650879054100853085478373394701055484686835013856965983700176328495871285433267668973116196212270044473860745722063977459064799158164801414001666668396338686263830721638016746073771636283796470328915697642281443898698130415246118314656287818045494444077955554564386639455099095151507817202320530676434821771103704958783414801139303912935324937265066359250324561341204313114851165907095813759054439701430514971986901827631902984930495096345117466387653400160778674909371638096734612091920898866409789293258739652506026424241892355329453320013459746508790524970235368554895734540100010989425488927733046512802535159565355171661308093955666418179305348274636356075244533375568586727201461660787402452504048896762112331763917511127164182039395601843401703467201101533485572459251653575563851576504541243551785545711301080809816757662822072363078548790241983674239786777490787969435345685266831021605460481854460324462684962838447206271020500547145952381539868451247357270786327269902864641767670864518827499554116405728087246442615313106770167509433883869303347790661243138868712309091148996900973035775389085239893991230002960501007929784783431256024278671912544954930775526177763878147017688424532809807158207644413930846338102006231663658605072181493017613007197918702401909790037421396823404880490076029076071016115315325303495502280787236950752164433429369244623846850010290330999713454960988120818345204688852201583988203310085289600037812076097361932505272532868158211139153839135803891976581222858983264843369107063970618700595222964323524613130537579246713259876638948667771473492622644049678100361278189186412203727982608855282039995731000554427311422857426349849853160260298569500726256462075499474645193782987830698148567481314970856486184985310875438334264210928021910696998381570846248104928326944860372740084481097572883658602675730342820266873452073504600592407806476334152485148926669038256248532216029897280520191049450957255249461169415075404953568910565371341195719298031487685993126498805584385365989052767089476599792843619923479250606904905061595453598766041929675700222519892158753968701154658089289658242457167584794643739778844221085171443905155108142940728911931457821684095058324855062952102392995583796662063320036800330427697320016109403030920336159905835661756485145756153146815069506616755462500984856999876177653554568925391252813681268608073785898245635074385711066266461185093605712852649640867137839583682586649771925260893185936201074174939024202487756835375047076218771459798005177109465118991589369686823332293976457472953798195749581726181296111099844738377929920909602381259931738256310850527724856695618628165194400531194471227470924288185092184439858384285944581943322365857389482751083398815495433612317513039328291443144164160630308448334434864428000190735595958019767779796170835978254893471496090356917978061553870019567485244098469536288674884225610567875127267184286812680468375600309974005542980071422878735429846139901519983555959082318128657265051580186687659667349138524873183521842530930651240056807087920334684048049898656665273649496501430011804971971977209258203445189350993454672975838158182506041213457660224078583465704183552526375801884503276959199287730330816722946956574165477982763598511702559080671826679778603060982297726421225888460032749702860434339363749531721430133465488801620988529412304120703586761218085136380918391147253811650834763869159715674201233557314000393560134779015514867414173610136830363510610315619752573281120975846964323298552573101188333570984339429339211152040681015806192823371714901290977319963133721054337171244648514048783308771230687048378115871552054252668251556553932157019831927013112519166444671143254917178048821815047933554645198753046416554960986152219100963338531653175269082839023462067871066013463053768969895773221711497412192161582031238792960918448480704680815914525492770033830889477466031060796200231493557322798931600453954063931153917187738104234427614123476093508048691782527405930140295577397793727587143025178011120786477444355751666044226780123382191112544982738791584888497240884836284853674722096319257207281378573470894218419610071071203149333233388996615652064223387693018515752971596153596539879070550224400064198303652805106942680091089227682889654483494379389754905356327917107738962128653470115083583758691439361556904831036405639256478829159765442221728108960544956197740751755660275011639796682645749215784692424628747968062435125788442503748996804616404242340354732028671691748586645565430884409427176260687729024326917726796535966622853753171710598338823731777893870368746784570797109970054673545606921631652925963366538820510296731217675927712262253260407064658947277675392953220831377031805691854565956634868283651359328605651502725862858670033221118398059437181089478378688741570294974192866975033244068338451894759583422444705386971983985549810728626033298459982353755621002260510261206291507496472831475530488484116622706268146222389818884764691730434005390634850933723602274711574767041117071126332690247547915555511075925625187654565762011283902897592024344852262903792397159993454740000548882056596906329192263841429539445691734077814774426460014836186777266351276592461262913216485009835887114610762722989798454541999019790455892833551283707946065758986845208587225923487829797252594965379055491301516989075876331005210549492167460634033396337637909490333224770101912373309988985380650506033260715787710794033754714180979016003221220346523478228885952950026795450978548757704320086074778407501983514504421713802750973078324081125764989953915377101311330879364398204039037059531655148096405290579628143008067263315913141315217069011689268804236206714129208585490209990294235705849453696338757297090017352836214348674868472103096241820513468828283286689117789554548373784222337489626750780651686812503457594729645923277136811978370382938153984180310751970878676942010110366993830467741292224987011179528836408042523189707983523517166891833339436524252387054534444322189582936969032734135312454446047331853710528423659437068589168127959003721772649248264400732621597172603791110289448531895235191264229420877834601703578750709537917612116018154921733921297492765043662631611346929669954497011537678572908918407574672283298320224845935319384642448324808211393444207767833004900149268221069365572520268225954567494459271351451785481748011751796818542824899041501341054593768182385437816160260334484218979289231940535971296414001708969928145905770905176338636856668155891927141273252357334921271141568857438405306344177187978835207379580252021590165991414993251831254565484771834985627900207329388555294789798084966346118641491095372278752168260842584512244678218391015016777937884294541822280181362025452509030610118991384129451322667575273868730785602142312223933906523123217199622517141896358287389804333023984662827453244933496656254631703729862019305690203589047933312855882153829134158389284443248786360187618381635393730146854204699655884606051155821648813560354663672704850851147292084616490374104827975461838827847485269685358540006757025798928464397455286807276422235134127970085220338605735536487265949159681093263678879177068065061245968456513957787097501851791508270438700464404018519004691393876442093463017981813162411070049121663812955365727212268888076339871636716871908730206965666889585346926562515909093717842731473811274262932960959961243815947370629010213132487947679218228055139197758495060180182632746278415897944336589214892563180483620853438330030853921571164255280273273700374134093621392526402347536178215263087289230934479897550071957210792821226065606651285954706582521423606250001765592778255440599690917482641828133450763397840682646007898577744558423061056454893416568881502058263433170028569634370542534838713459756290515571435826150340542769339517573462944794867331009784495713492391283504414901589734421340687185495969381353088565614348613066665405361024902613960675621286182670905007793819409018970244165682381870819600793341053701721647838835436388658667926580608820635561945557437255575085424583772999374698104128425498616431341929416789903245762990174744790360134958086763182240587671766047334867253115111534594307527496967213248071606571360673728695939031182369765588889809957201874694570498505450958909949884549428320230487828571482947484944862226039393909532044768541876880217109703384758509885364680204448776610265038449828950981434168320813231701301887222197163668183738152859208973664984443355163135855463626847151313121799148468259696818139044937502277539272768731760268920123842921119607806069710809603175194848486825440494311451893622654166527657165816561064465757524275444240432141414486041318798318626576040364338077155659809080498348108618874730856787010710651499943534642325493180951978266474023260297900166426055627806833270717263710023688218875727822910451645801399047769169423392885025261769132339147164605761807470246304607846469450190416274365320827139548117637453307255435856420051054451830434938310836340057435330150106931165799993957316552030772715033503168658856617407212388504761509671853311591122402931044987170207216585383468071772580663530711326665036697428901199782953584693489742509876160167242463597631580961302665742681045000511869464845964900436261617090906065951791283280955980350979721453829274481819544724863370158569636940999954427116679925130116016757291229309974588404065539155747211468694880161388267978582286167651368706269191410953013546289268438522644459558973231518684677193608348568807652416379646982680697254010030937903302884309468175128360569431384949097631029239840232574140861438921938110722086245131997641382542005835684564887929738136973862127937174149765004393665328259735164919773534654250018516962568128413718806739271707515625093979383186616737839998563793726581444474284656376466161704091447786599661444162334281352608491891829707192083931757816337590972234966053128725858073643526608842773086722339480949780630660355458155921967992464071770950967827357247438819010623901396819728829261731456418622939689678859149250987565264329994126022055237495403798897405165576031803042920806949423893080250082111054905775334973666767944391259053092396756019760121775913211932694578367497479890460645554122509800259795813681055683832172109790229752585222380664899564186589586301890163079716775582654382570705330382692390278925448412242407545556617399034046398260194369497176931929094812588192067755263385845933637302601915656723701810846828426952881291857035879099707907594364174092849799605279592165820655201990286593881852972685969796772215603134493667721556944671841785150472670431648719477396486352311908964721117333539156730812644946806259090518544157432642325220652536805875106421253247797564571039697553156031665196671322109707693951126188250465985435402028857024048158095230582943080903217801782591106867059163850604890790724012031432603441327753355363005797301836654723308085587021176582936796609771098802072297803624043887813469808514935816582813258667727928082699951480308521457450928026973705473495255619430788943510230280121682830985290212309455395612928865143462892340295236296096434371197900991029056404397011421783059817697036203565435924426802525400694109884994168738462539729336712551043373563576653441544692854980660064716812090625566865571136408968954603751993741688525632573498797925370388359234545404138290994848774333239210302832068038139624999760498348191333726144486847714355925634979559744330974297368660146580100659980036255025664646332749089744700479421391500638286911599003227529608150991750289375713578678510247160790855785045184994041891797817900448949568952320704965973711417611989627438624415331192326123032336725660479896726198781052066230178114085903662285748065443440791748073051106573437248628195922898035657355768433590282148472100873129786217265876078027072064377324126327768976724972044888199640655079104035258413466521656953293789704517963289398650350953241319020191761374245664307977461337473215323339628054107749979130471533398039763594554253872287959630571220308266221462995752331214888807128975240160014062695463548602127723479525142898585636052143129358335162900562864868782673125530056235350977619661841273794947262187611226038355122588197163785480313541115537357564403175327749826692770649602652976795008649309209166096656502847679871935096766390150530831370551048179444474274954058289534505478635370270925226616647823173159785470607857272197778629712359035639882634230608974759278155824641357367477644317858723787453903510891582088457074373236571386984005526241351439180256219776961413081709010641748369467458608686644377340414534937963789283699563186420945060900216838412449484654272732744265077128571909009988431880170930199578348906557905159146966115010790172613116203146020732502415848963115166480293774283350286543176178884626648953703151471798891673513905082480678271921601896946136230153977004122516798934639117992893392808610628977016102888696157801778799847047468621335056113997951515908052334824695920875085387297540514896218116773340370438349221160036409945551451358480006632147436916819021680999068356865590925470680609885907067096856838820476985509323537020155364687321696728736095546419507431062877788100203711821441079830573304326620069635575695250080200492468467126428354779329699419535081350026206323953010380662896582756309902122903069472657180196587333012147516814180624970040126282206767838683394684416310800305418449844176724642204840665600109175763394721153427800486408931572068233731990455313860159145005438406323906397032301631504267461749065017493928419817593921667307386111555844873767174097561696902699587450921544538507002820498160785929134637988428260347059347622810093636380196622506017286735582700549459496591509724910413211973953951688151224573841630719288516393129265808647713151369730632476586161289051255944215488680116398218574018428685992705317401430976395173171573474957475353376775793714202805773054578803875572104823410073227575142555198638401274120691474634714696884920527940227358143191830502761293493231287199660821853406965955583198623272220692327486938722473425866811547225898232756003649295239029409952581677982700459872613575610450256657385139721441834392133782458333338277185978088066160894595165365040445894639389638411127941351255738802474248847176547584298521717866841133632474036556279823275854013110906241867926103887822328263913671454030853813771096039164564434586182340478840194876163053644413337438562354321004417187182656154255843661655545688525125258706996973959537307907442126036503830228369061688023549159376614671368669060401180248929067428081394853805001517197634574856181445745099604691374408565524925458004891917640690602036107430397240034951495740715405799242873500877702962198046402109660183251819621545744550965275814056052047338986368753981182128472267648723796411206281987368541185482572687771905689668795636837490244299126592118557394464446013900830403401198350046419253346853771067333413655237106663150415672707840635877419919140223233102677869751596980762005847464996417746011887370370480872973365600322822295760424668808798801224161451222483395415410024451143376002579898286073809783580232469571819187404808167035828461405663289765690368491804533455244479741963916519693063902417304472071434255309774536848782969394394103388020497538422123949584196711203673099821632308565851675267780563889615751511278851295295124035720379840808803170144312769443014039723879395399373319991569593106134497592514481465766780095023420630209675433958699243662319343901053907408284131466467530963052027585613017825233549099726411165728982653152859311687845253533841912016072872254147014190182248484580558091961681418342046473310647305893973297480748789833061512778369977506291825909714444707407033014288918461973969355870462210287890139618128513242135690061049490133094355136376493413004214842008821303122451620809461680175951108855329557431178299133751008561113901266805736256535629198890005039767436920179587627192851856601129805692711774568790365616610404466137403991268136736133290689222401025551018170482505897671950016064214261222934121696515526189829784623040631463848668992703508137666944977903277037952378157880912774937536623443014385592559469476614822684762271510115399869585373736395717824050630363828023097944621812780036317106174569576855981978992947567484534979307447774600922555700697867181309473364195820367042582213062641337602942141911205184139656100570782470055417511924628457344434112481822493606148510054975562407885670828151571590896910992513354702920344169047925046218957598562996718657874332555907143611471631122756127076992124146385970793956066484257180503496924425712999353109363076932729015395967720210438601577723536197637867083433786159656868763342291431146013848542002217337444170423818535618297249314074088276049494467722482334620667446328096678445963215720889956425659630156353653474184011212152131523749497367778904843552861236930985734744892596075128894258479443880448072898023281520357976541737607568190959949176666119113995486389874403572222299668132895452944592126036582489547838963904091194842443530821421789996006210722063887959906669832431666078460735898327778075341207869413407726018430387323615063300240944112560560485821179704350452765020604485458997521320685010786242295088951711874390452249222784616300943171806659127477161453289131978485890154781296330295226591754909709567018955488883714089945833767611673485122747462514965109535572844500551498782061400335423146908109386983017027632505917570039226246698747304548803031332882955114863007887744846207150016124541104659737646899623189973374445278193028483508114189312122436444623359282579884426058060555397502917619351132227304036323108919557140178073667961294066132859131982434356259981742476224631882109779844520921995421059056855896349781067554629799354699781215052347488650280658047133894815292114079643538942484517752120241287545652060578921655978856015391261435508912063386612765831226684830821256664038066435876125251852946394279781582404352746183171903057855753842343860429633822907723560969405474550254375072665415814380576430754408186331812134896122916071204362452558979932881477425803773202561179336205751705035481911812274153819847032027833710433298406981826800870165206508431149430126402859528817399719981389256575443823959402105406801835550775456983210726430421974223920040404451014092801108737287855830133469255046372652376455716073834246334206709210456670467718027816386304559541486599945491933609257835564157881768101831554777053367342872446630755673955537958165025578711242321080233932103336630443550919476517798313806916266857973467176563969259010142187208777781657953876575576620379651703746489734939043970701966542866331504493842899388114085808770678376831100164328645553711210867161040254955837655827894333799211604336639430850048165950455201463852317161115984189167773909233683542110073972751995533917800375725385005114139739409994761390101472068815192209929503592018417250998972172844936852003575252344509270776710381182362206235885176304158722569427484094719766913834465704738528456534035039985280005348048844613260514352917872053632261658891859882590780488629529656035014949597060993926493186922006992173658704783683032670263536370591981960413031463562344407382241395235497287641858111213252144833583798611548123026448290167637252059314664824553662703563710574775655860281077590875774294554629761052183585670835344269451002551840153429115039838652295486960766186261304758541912754329621843606070997267457730208615445531708494681842438035000583265643155886387850971448717803235805614311962253440204661208431128588840308803695274197800788051157064284024562951033725422140369154890991246792588218489421377195566971777375687116859819818631062609283491105004741207906035485630273995932423582627692254929630874465357301983791761146000357711884272097494885738601812749211471938376260757826346891577695538132436012974585412862596961898269779097717426386882097694158167903600729186051130157743191152182451435184323855501356658053550685560293148121534855176877983762836739811205241771046743002889212729039447749222475704448943646165920709689244170130332180028150979720945320108502413446671173832881925389524383248445033093630533258096125446414187084227588156609463853122689321207654729680872691018454437594089608630105080857495188031405953552120203876188639531588812721012050377617729409587756020731505403169651787747616627480586733945909273183036737327243057925999789504332428059581767728786638511699206066745915997828536367833144881243289036725588182171714095527415934798028613867942173392855832968370291733394589628247245971869899839152883547100497186663567532958106630833893981949858914353267010655108305591264068557470134577166283631565660444853428252101664205097388341351378698640699127549153648420702289837576409017111436000116830036283183854658739515522400540205047756520436042111385767823293982001370440191154435956326571635242891420924551836044653959244029828936949215708498791366332295465159002675661643424193475788022578679010624905917864519958917596429044030769865046613493318270395298210974726397070935986270286180287156760873442001721097760882314970591903529043782411347670308939840841059956111607692364898904258610648612781667904817571334075039851427051235380543024386745536412533935410570812585323116976997814560862342650170758439058740914708919536497164089512551077577929526074143971162126711348927422678223709615378885445096737159131930940261738256134476329338544173463257235941943416789600544538265325371956058950181154781998282610565206769755945555766417912901354951660431628289126330959073393299833410343300053280690616790139448093754373905022293720783857718758646780000206845780217513529169185626712404537274162079112036240729340166289866469122658903288884488709221760945832449820147898534605323087620948969134187445164549754697656505765051149810632015441114706991543757189486600887207012254391239092958725639869866147226324719483727249586000342025045706537102506083900450310105516609545381171158092929244126916992887731584749888154682359197259628973918346384390729158790411889417381886659525624156326348671662787338839922983784464414101891685337984999127063543612345254052055210655790410851666021386516847731173697971511644657263770816221045997494735713566892086459991364920832391136931634381241400509093352480565467342208100842353213914220801515848739974033547908716046616727341526554244911684634927874306620059541074020153192891405189185986141060637167300515532235851653599615707668452845507481848872544119150702519065805290859084669007208030645958116186957633160011279041498224122829373332675673923686857588417725262066394372215939371821670328420381804428275995279900966979292206715236679934800571575651654525651577599684667859243257648649093721870471571567234562245356662363186428641358172463748734534679660344155515184429499451720573747670856643719470769796285899069694041224697391039758487731201156485757074674229170637630383007668267552299991600887526077729701351853647051061779445098603207290344777524930369099183740627149754754526985082542081039653965758817520158179899887526992728967700580246338704223843918804386186799459706901019200294867138072676214398842322481276609460672870552228418151024651797802702174978777328568182860155829729957314142353399317964904196647410612275354983119578651973623994551485706829131830703220776472018177468877100814430663843120068680377828813753511248843499396457634141708299047277390631927515339547708756217248610390683705584906802991092825125728085879493219776193483066260634190941208700150085564746412717508602855721274212714304485102025668093044575237526373453236238510416154290912787435049962123889444677655049480622941624701631046188031498598962101668483790000734789789159754728696763320633281874181694480425635395291788991340425887773338009619943694417195825661548260532089701328640563174223899474493073542637895921670866570294095929933435024297588669107768427734222733953829009776425968019429869199328613654144251820550697555916138574096197103248413106689441118590285350323707650938537748910643875986047152910569708411038604302970608318638451886399237217693335813990592133690830559640722618530448534675256366853376896518817916148346222224890634760790064711980893277220774958924250846719229198903378422611254614395991729613070766892489929776515441096612063386332448636584963877548997902635925603231361613145383876786024020380335315435088797662623797532866569679734550586165754485138794060522579621416436727249560256806563734342274480123211891807535606294067654691309925228332834426402711722465153199662895591250596873795347804298784584738384520335526845017926391194052566794821793535548999049257079365604187758066446989313062227846454664732481612743425243533214736035601029332355848534625090761505588993729984200117076267048302628334323436827872502004734812781099958472254960262938187221570276145077469004064230044689415253208003728960408626298814171137763158294110847330786804999261517500810507323221885374302347157862715357804388978630637538330690808205594014892666758457007489100570848760583197652408311262011967630455545449101875948106672348890462252618888405072395430526141719949487573271047297202412135540959089235559382550012789714300679449961223728255585966141410812827788838927448572014307443155211163896968190116150744176322041925386483474819312634723521314784627720244886466399245370179154366403836561440518079868043048433909627886742623385315268527413934163753238419929389634689799712922877902048502735016142877859021429233788750321784227839460805848331885802209126815056408587362308528554109061304249841233529684293733870777062461833845419523905303502023866945466774445799579854278169969969773036368252928224470652484533291532430428564474045753799448678510293023110879967232145766532647637482029248070228502918150456596591544114504197475801701902166877255512662006661278926696125925743834992180965910586257246070232811215044186922332487346684537039561735990750800870562674702577993223404443001528318015407869727283237503872769721800347144852800670030223498648112395606167456547114127111092247584479337069850656785443644143890593690241748752055544141068739089469868397690684096946953760502296590336724922126108305908899566671465019584941460673776057471501156289354504276634916427923811861318583129991223091818186948127802581024133795667410492686098884026372285991763892587708138878678245097322673245275223190462531404990504711849742473803435047442557209613946229749616951288248989518211305960703233573577102161307490729905975180362152748649261197696776262733031020639996726437646362399769183021576913111136427694119394170514009284897167926659087698504461800816948541645605375320966374525402631341889992464585094264162498315052432759780184877778330668615420991681461919142456095479550782723937162671604782638286843625641327626242944122401770308652420188953212055174706571024067049711077935697104017518658587085588188397905866078259024384034009441883456455700836330718313821392052298178189572622547146833683647737769465679693375937601958311987869046366338601708894724020784581809595745176731489250952716077107635539080426190119274770366292108801464623006339845438888142569809407565716433220962419875578900144922413066053192522741011758317041017390426888132710886326015527428301323197203655341994926503709606254735414360621482329865470862284987333543356414156870385595169336226099852229726033703543343576561497489408403667600001188968479168118167821226879042022677966881445335811908951654952428057608419536968213551773371411361780846025292493486535339397179927200147338932883852510747022740899530084170657443698176169447571092784967857963423843976602260125030617594704183058034220948807007703634926080395408320247855688301217818562543105612581424442603542301597345900018561010876419525576847434820631374894571036293523610486237713308567520758212624107740360178957540828856182980342884990239731499538484497999145168948825747774553337546906452735417414697665685890317353619581809583870308402042594896731387020027615882534813419651453390615268484448341147100383161209798504113630420512192722132702459757036228025255382600136816815173584033787234895175943452895085685667229937541190111699257395721169974576039563320606095785657170579211127272417214177720791663783648227624463568742697204566469669997801836953598194983450926139002524407720894517614882502846008666483378134395589334880917680762216897108624490837648493871859577517710885739730192596222856909060445334663001623611118232729412706972615862867407726451320472043125532412265803893324115280422290850204369134592686805127351860835400447873384785182343965323746847838603933559423249598938869497589980101794435018602180999272759379681053980605493455866011993490070776510550179611383403688613373421344330574871598802733222486749741187109008912931485450895377929972563114916243657894786337462033008095218291699565239290071477391172388421571504083850308317329590211032773671599603338280984761306113899321598485942006134688173051709657268978588830305629430836180236711896595468699578536786369850806758659015625389607838339774316661634460579160874725230555595865437033688051759209804183445536083580501350499853828672171051636650720099751505168389737389411883142208663006097826321981937693905351110649698003266139366461496008374617937182520011237864300938513903604131856734972712378028460141179147477764061219555015095656939800723879147532629475835289814430964529358836437543861445919098891554432603249817586956162308209972240636956702649703545237309548497353109497935117605338371512722421568838751342478832009939041889065860377398278085823024738539149909700782286112734577482989512552915397476846300703930252060090288450651063227062957260193992430023364359764532458582576669325677757418108947078283555308843300529016813297799917595145746110970911528498509855638930466068105126928900524335879972257836533871685031635872085977467462494588222185652153029821768714716005620813334033707267432749535829007111885184799432922489981988811163551182357102906175116063587269713923331716952503678984477532643289450480660164351304389094330745868798417923295706952883919142037916519782513925475416545556163312633177883757554706140361672469621646584850763597040490472680577362997895153514056631812192825926810152663845795077634183453263142642767641334134048234969058966654521281347850099464392079606463949252723724550229138756443889063913236216396734311002720472643163251756057726495278335498493292301410976467933789961889157630447313532712163798430567614606829233250128135864112901317713069660816265863288640906648071405599431507351378910560208332154848982829361726233728399558008435779679975050177670853109831082260776383265242433981527903768144462117113632618014182325787685025996253589887881345722459231168888213109648655261265203051305592602919448499699237161389253747610005148683981215871474896157605462102543408183461709330030654285394526334042798605324062496110164899686976894647861160511939312448867117517732007774580173772546795228715226445318150126922198108110581656152871507432032766007281212124037282796661307292615119487175779757443752627371540795039475874108710954595847984951667767710591903983134917480038313211256406230242229063012130416546029499693877366725557594038146590502012100200315027018200880074556367633032845397544228335586259586167457219281456854953763002516309309867122919544168355450619863912270595755387526322398333956403365127624960523725963528311973533735366524855332069288332999906397763560112610183320090600411763569178461537574840845914405990305686317192449633438087150673849745456028007032532399105497813373308341178314815269140777278205303645149421482668117995145337820626970099509708658090940192213872541118082205610167165009511926986694549137593756310487851748043383124409846357457054393506458992750834133608555243450556466250739608699146894383323317244369967979774967968732154615715164958773310707208708158874300457264427774564289668773995488915978684000655691468252094405744650876844632388881740538117592314320735654584732960328619188649212183093691016497158164805865346318226645712976096936382696073977782447151689471934498222025611012535609384273288765325205421182045781055021848466704856024554272424256538380239168098986704093317454577787655792148061158444120550578017475724330980425552955136523053169476932378918847305748204599788174681002694838318152797050659754692067842075992385008803486757445646728164605969338789731677003627535938533128067609375895536826877711233540037495985048341210875761662547349428531969361727178382256108489088391780644879656321930129579495832362025993288763870376100972250312967167462868478842571366490330642688122952013571431262976702636767188809849389336155298231929161722462735321275145844962775908124083389976681823185443027219970890174583124790104120369363525145310650810684911294770305482691403743133605042058855061169834380046302514751953226816340223638472185482076196468320435128039572068929577001105805383711233122263481573160228685921790842547919537925278192293669726153906040840018934734795956090257766535310446259927004239335751178843081973924337317173294800576196208385358145678494202708323663967175806551447093025795395670616038511873422837416742550679981579409272789609820860290812670580067538426145655778403731669757851554936604676065373523511036395170510510066476832196391294686477359337557493749959150679999276161499949120828617191382767408739555341016336449467290722118873627649017805229665600360942174270065735802635238456552819386597507624596058848115203523053961673612297599653473471007875027369791786516500034770024905023686437131149329385583887976532277725946177095970870865927895663591633838853261986244102053307757907858684601752228300935640842919954914476168871967235808497150793188825480089370850998734789674964115397486014031566134483768063402625110006069140689699789347055101880913572684343460222279947746193999406531217121850737823052814517510582820889946134493263953472845899933455973302311310093822166953964478636096635437047145987668612140953480976215151813969499290169107187365158953038859032465817524143130574909544390840160760579391116465048956489583387165628205925823372642216570532684619536831149495279011667657284814766247714667474840212409330235798522823336281393283894705503172771608444406068863777595387969978882593630031191091630770002763003452350165080378451728860494905176670884949495873779411761656356799875811641605077149081063295940811525049927425720269900863771431298420600017105850881389002363116170538531352296692703958869568412700367723270839413558110450531194529334201821471056134905504797731545106908325394705042270841914257492509059747529438463731970724602109735704115686247607056180494148401777525068453868634862005398876542120785486042654957913411875203137865084785202532778151899713606461105752703268189198795300033784644684027254184140808679489237111152786723423627772129364283653693466266817284108917906646667126646654769097611096682226009797270036582132169159925861221008003964485859521619951386409402415652976380802957375884029903954779993034910936793719753457266400600736656970595994483140267654121297635454483609422496544105048565248011641588637351537159351493628295566609975295347502864242984364392870795007559174362791693442902766748746558734999185116996993158872918109026825690458528469326930533897106464361262356460742208933113384561626647867131269766684749586757688986490386452473178586962542266229357798771099154481276564303833803441198729257601546237598045639414888310954055405582195061843275004644414162673208473252713429908587098518560024090848644021136582608137900666195357663718772090102204268811440555266858436342236621963255116839611333120183646886495808501938223948265679923002073602483742108340201660936188127433969586356735083931807469376240089218772361145660529661169143669342405543071971858115829813774486319282999752417716491099514920104054464737922986092683624071439405807486455831514858653870077877572926959920672922418972721587485001150245469490484219154224293413773111602034545191212315993613243252569687966409752632893937756486217042161726413166166217602218161066717614880344146081389939883576145093559758884292526994708358375808178785896572639276285780516308502082567688291245567615614381197249161774594031180085360303374681374900467771991848787570651831612659932949440113910386411754198454677880666986479492639498847082879754311915047587828643796719929409995091215150040607703972512052370376002942721290362733890265281155443296171928338367491682701811333136820326542482734814785341224841424168891084349040547452843109258298381082676782556364142729922758266959383807446528805799963081740533778349701236384210028986149554715832533418075504114289121185707271647368486871419247807569309280528508104196171534064795210900577772593753849216507092007697494047032773137727154947282211627053735174401780537438586021418671157084076957041827378227284326489349786313200844137537055317680207905628529092053019965374245278729929221061622114847536927271400269519969283043494186929783885506735814680405290179739796744742104106424522730367258438897616604180372848505350161643202514492559909980202378436310378557316987866947503133132399658350185789553790109624656815099116410207830113464716719116265590491678475928961243194165775004320731560063366763570554633720816167642451079932147980582724594918826583341218123725700752319725771553545585267362758564926266157926127717494314341314257399459681739942940372230249435254199656092766357562856928824156607327604922487068173393839074726610952008659651165563317837584346634119597561478248165951920095408098942520166037085433399350730528663040418702836554074294360287080366463754775154089187013892131448965466916141971686940383310853258695841560307297151171678920300487691502259393163507979552678046881324909555080604984214792041747486959501187570759357780775803697664697224934626513272254344929181736972212237610478984541216154516682567167432726704646055300935641867052451907838406662498502156196377173141563926491410245273468468627821606875049049325846714931249208573143391327157957480530917191636604830129213145913551452042049457416965382510093028603440239665296670916283131208510818216166078486653970575552987123143928524233336918366347954947887151871082242434058749180380574731193736788008343603649069135717071627875507957977982637082710951082626435846148423834699480767439662709432231923346859569225854246755150803031482694102551661325387244330950148796573324950415885946781205924256065916690286935276866115891694914492725703360266673345974897413109565258195217340780586528595872449810131867088690020835965751675227497337552684913675280187607525146197863704607718556657725976610650106421708186561940203575703149016234023400718023607342555423025701677225910408512136853646250294636627856886345808484896966207566326270118780459985811365268730293367620542616819648776661874806378704627538753618374659903728817737091854236078298160564512036923971201281204129571413889777423024204943059780859803282491288560885761284776758773799077432247719816266174980235844096024282918244610840565375896336575197018646557571640978766733563995002646999045337256655896475290974817214998362811110389743159693537664502178056806598285731695302822344835514626310412055038210026745289598396362947723225911401440554783423194951590375149858087965646668931286251318193578232161825745068095151475441161774134391622976486800973016481777210076936398323251216280277368823651478055102262857602389009813592707859503541909287743955782867479379691758588383362683912530892825223096872972632781940512106462792396218205595980385658226216523462238952441068755299014586706763175476209717280111769275465776589695939250962763553870014255602416957380596570086107144669886531889997189775114550451745302315242800240408037928856495545205932594058321891751987212732724173911034002793632061902916927253361783545942034397168848710658467791974485175945374332705086926411679510283665494541843604664700838516997321054681848259398019565536918263803911745695500473163440124301273780886612089553679294476977408724342670501247761233575360548287413741634717032353297542021706141506272756205453661250037470808941499277470164391240202197036517532530637016763567674597126298504869756503635671526875812540568601301904319808382605537733902710669220457695342460788662570334533726548941910039019637851872772995431575497508248026230878392093490362407364731202037802753399146660321025364826935845872114976947837313634002506787210940857733439345897078053347817211265277652903274181989067866718613805386642419494482041520170210069945916050443370101925455108772788594550228991856710208693172685749675875768221823706407973012505117563631483899888241500381189004776029373501254207932694864765043733854431971172941868951007377395211630807838955370877186200824394172269018412210238909470111098940077474000003420647286402363237799015165259625050480825694380772784984672473474314530990297919393773899686933142669756784427119972091352893697388164923945767400692880176601154509511917368433274128739616603910225984341664361119560523087710702842416900305055060779944906772156722152224948654599799398331298304626613480279673467717567573206178805402965510238349028428745805897826961180506016219915566251929658581234342779112650243487653017215965575838775089940935566902230423785616527353588789176814062025844775704482689101338763214780974739783185025491561513469378118341396089570360288439604303903829706404343204467023862027567204996901812178948248131318634156097303949208019472216251626265868179319869529717629134325631072431704731572559951246512061825128676042718222841497989350139315018610944817480878229899116008943717797589260701128394842969941708209005851129041134653225794961235706950044536033863809971718572016424618190824175145419429315338491406065600638117987861847388725397370190037807490142764011992146482075818496060683445066037944020236150325258159189625513050019797558102799568963044864520203860569821230667975941805753828038370957436007043460928695736437184660122809460886012696771492625966303826593773143210954759755658048582263324501373371380586716510825090894701345392850979496074736492747963129062711302747614800393489318752440642495591445841602199606357345685029643313730377076057531568076915192831741807918416080284579895988097817304933858035194317617713929919804810753508683411621196387710887283577120566363434819425891826532497986916362691931368037347847007432481115149743143035845835386584800329535232227242472971403590430901729130820551532871251357033473051002277938865847800451399771918669318550453335923559740554886397805275046263712413490326528726771063230943842360208744710057516791853418025581392567844113794794439713913739840661241662493090917940323575967310912521932809577982828334138084373010579722498104472091594220250525241186658298500234919315527749397197824786596900401586769107803419698721605755532730730307530291080259219196258345201890428519852747544562259537941259809435922783896861205445078166035272004892222351439030802800196755220933325669220738394973886736302139036811398097555144615381158941175815339072975633685258403654985632282272311966609955440972292647121554772614589326523213271800958161468041968399126242455109252170905224599727528882092520300530264963155550379127454077817489995373447640835361195725053191469648625355953221737446052374493442383258620436034087190968465622004642352711413397127192874540401820777880310736126125822136404828661623902912245637723930533317325848022014762881205168666037471852062841555486025641768540523674802161225084670630976836462050499109834680173481348451503388927419948762638131457849865034216678266782584357470628310656411408036773529433506897897145176071724251765396491199471934149621993219134818626705526507638956367695647083027193570432676655262175372148310975534577383220110103335267376413784764130639163563100788873948955051642757195447432927396713961339867573059248894297704639872879753175450443075108738023986407453010761141291583017136277966996351686498160494565537637467512891631832300262752679071578464465028335742154844514858556874510632881392467502571312978426593040296750966066621663674518780237875414443961353436107694209668744100967705349213327031284875034866584027754293120946481880465702417288790687167427403269796515552336549874914743410656536689970740730666668534721741490243685962526424397877735964274499947697997907452532156522856652496980817952265150381064784059887264544478177806129557955549893702500185259434538131000812568499554468135325904088445473980711570411794331674438457384319028664612921336674449833934784462216219117069286341275487016586383242943155892665561992516461410144417465920591574897946447538083300603550631719909209319929942257540581255073042711111408375980169947979364767462274164926400987687015873677357808397852349742390227249016182584906660226426500905372197807220996464244207649887697158548907618741941525087671387561425103834429520917938007518081894596809975480495289872677093290141654770763444072271092886889057740771805022215158760868808203391156810082764970173348617701653208773660422621694354418162340264373872009332938503401590536189484992778925158205557690427446583457074674992903290946569078181695674947869232543013036540825384005541947051169761408446844810426125275866418639191123017808498031945715743106077545390468538590091427899787875835021882563331782618640083226193964359153873151898466298073774355126288051166427022345112632846105443578050436684450494645729715868266409555670822476741369173423526142757338981545006197525604088064368444477406767971620187695833501133419234980818615382064792402848580955176775994279593295690713098409555906670022688822145102159865260417674244284119648178330348579992572534952681901234040232108709127866290474898430190763091771713780391001382815902048259664654805319356598453679545247570663035875566052537420663835770238362915197675086540564347231848760765225231857605589375409962988052658462479127219616514086745369986925180832833714781725229507155882468823188183728169298941968221909030072585827358954812708031359118951404484920486197106183233918256892880609928240510571882798097411793613088164616558929623428477976925025794412832248579616240394082978172065212741674396069533307897063116275541553480644260955539066649011737677386822586976493454525567211490629720745702748618510668978679456844440764960769159882301170738339590448823437924048341384311303622866159660435752195286813851227172637220204837526354147521481432791561425932733546651150406083496888848654143600952103485469615172288162400456321365305206735237387745352143592671157561329110858612342898606593500617338274423767257388780841067005908233825014144922063504693093036630352110058429005015056913061208876462715991793484193124379584263234288045032414119457580266720648371202260954363216863963456050177216075496878323094893199315418700490891012249426130857194078595415310764735299773446987769626619114422572770770369114499271578794277109726667767422095913065759121104366780243644943074906543284943177082091488897282801042824671173863040641356892738065084732887793366352000263088718867738962607916759408397535747125303911170874953377352967427357842444347075823570873308706325090058146855117453176661445639157230944858009901007403264719486178015962358450606672963688342918010828838981687339606683554991590422315030229235650295452026518837345649584005829540826897970410245796628663052240416751093501848288616536627827938568024625226650063704811038107737209550917812274936636769407974229500246902787247569553965066110249448581472451412490414392610036986627851138213339158371220378294690479709219487866088847678348540334484665258246868987133978150414812203498875382774448307404531911071938813969484689656308473337503039777549860364492616973951710630987373920463541336674183777238341157278009132340888482080130349788372460554895102249849738817844898679349754467117019468879854556804534299567373454134830989635773444397303002060997596532906367163957191472621140327910774334806750104300777810755665991542986912970383983849184905994959604852951284895851317428322195215638442431258252834222382006693106671146667452174364440330280473204551314249146394515378364201245461640684026490095293211948468202973037345033706524527992975780072330781106222089424810132357369146171212416609864150263057801317202316893185738565082472025529861016581518736513766765113852087076922900944216506642130349911195378786997183925540534333125939579586663220640880218625096757291109470115645337005058859333845871089506778179434349434587359997045473071807493847776517110164197681211260373472628785427219850869712487304537883692719877093997242973721896783718926389771563753306535317098316677310291746950415111162487984762165551813353628754412165012132475323005373949200641176638154454172579544575882518171063601117452158509852334486435426863077519485595006111677789991190824849366372314602024117012951760666859146510233363731290353851741856617403303064817445607862576876283873161614579441181078735410381805881650176201690513389069693936261717468110859724254279512807538069098696417847175223770144078252301713033454465475120691072030011865926810319262306690920969393842626202107169511408130277620303320377679272862823965145734064554357126436448195375635738485895955038274310178737580363056813582501230702376011198154056286235928995613538796125680870324766697988233466182800058052177852730879807162461222777024362185972546797948093038998078532399511422954648739967550451563857520222918409513279154791420539583325153883832994318138435752889718163451676205246162222888421220341578384132061187943305133418408653256068315381611811657421759240625599012677249411582285503520145803683175486535899518518997503982784823183406148864377629543100067226194134912158121447431466921322709615390593019185713611199084334605789232548993008630389303564465368067339562048117997579157793980886227074051638599364656327584213179892370447219890671438679971794152973872903205418034698232188184690136203098347529530981703009272595236467442675984679682012606679119735090103561289611500342976778081274467610255494326391675540880975651393025488488337433083451612878592581443907699164903172165138090856212462945943468927237171772169454453376516497621397043676766849108441837958511423702201202983032435396625348529324751514555591310172506002695945245433322588504329248784666561373461146007307521372310568428822630539018349710577289922664905555193263853415661207481893331954574895221378541748188214195224266636979123121135665196512035138758492063621664497231175881135396655600132885863198361591585010842340264118873206144065058333408103215042697508090148561486147789039917884504270607711963539566518528475117473309207280847286173496145547379714918215270998267868406254655114331484137793977298614955007292725079141443425419681943473137918626455809061436080519799028788284542504172680678610211642906272032604770727888758009374937581104532085100762351973424542084004784438143396845197164194834413065404871929517527692351791335011200514102998546966175466980603479855843912982371978415682891148658624538341923557631193695275271450452125193207127215883925382775353385174482143224546430116748919990900786767747319836731584019318815608300141900225156507291790902989424242967923618713228302792074835420002961185357190207833556447284789389968124823867867908754198368604561026041687494131021994945280071715143882239572707608654944697414612991483656100058928834537020144227491724382674469740851184646692432343661516928897635944687915606339730080889102587579229873181775508172716271867920715450302686271732455859291331752092591696561565213277784452758919330936590134844669449672164261088450593311773032144701655845470908246880496252423905105916608155761491298542933348313389389283675117921093407381477792054326166868351401853650266946129370140899316691236687400979354058272865046106481390933279840970251673431927063141195560600254006870828122286958375614681237641601962213256328795146228745598574245573646704077608059517255793117530438796963465653903703231754572677343894040887122232724191988955507381129438464237397422641516122262289574710557331437369352857269057497037481917631591827232774373739378412765224277263782179027503671806714523231281252707408928821985197177535437871202774583394745321021477243425432480135590940231864841311746218587983512223959587445406223490688715496055274788451677148013525713422244949533963656617025519446736727549121046746933427979266672918015408513311305082585033622807396844912094415463129664810360747210245725105442568019638694840471216423655436410454751182591543273189407086487024716425871387558982089562779337620204171784622835103182686439484428127783422191127845321537123956839332456824089279416079137719177043986423919784297084080196315293556190468742311825531367926491230800092656951658715500620378267955324400320242182660159523633001246119965193734191897194309128963769772252272108421220494805913092866717459150347019318099681050669235992855833747496788738153012245277842517665460668547335430015228910466034248519469628258556273788548739450058458706384723789417901654504402341309393186165542777855116672792677115701357518297709056222769051477104634327557567906285858728017202477742005438813352528135555853867160405762752284155371908052517896259280721154374559339735920698625023415449039671883477624284027316983324161498654387906690486461644203227659734540488421155946214274965185138892122769163701157951362159587678102205052382835226664457443228524088533229808216859174108074355820507396690061457313817901336862337604379146072657295701169139941000129965335885451272329945157661261325149345345340875290650527796465685450086707301781331660089527742959501629271614216731956338538711579112473046273548979148468340229394001053315868339622648869942358908140478136169925580279053093228231844183725345562557043388001875940178867789991796599974882361331602101225976747399796009969600152098705679285364753960851462748814326772381759912239400076855882563934415609159066486554609577524444538193777123488592816936635866613888233586520397632256845587481144771134353979141868091928500274972324364229215345982789955187344837146127030809577981552405017448468774756267977112025784456287670177860512427474641952644391460215244584968486863187426562168258659731652865722146087293978248100700591505047744066323727570217205668849239930728065779475874931315292977481738993307935143418535633751615216017637723371565833119071053677332207194693913835652172333781655250034951166642107088024606338008696565826783228669368206101544158475678492423977762544450574021787674162378924392195734902092108383688166984099469125545058358234198949241791487444837020680982042113391378088911632859615396128517778297161801080902748357545921991922136962419356562462485177809767509515131265722558190993040860342314791606903121896257256760794781438606313371231114428251077910695952840863804057263923769026561443249762194521810040710749504222154957647361589517388399379456767062269739691362969125974381942192191051440131166090944660051712648677541985317413930578381587071448777870265939443871417255698671125356167928574471805621481490213585036431130806754111242049517435351970715633985969404897567635846553442484212429452108579341086271471010403222815769056226585414546968155207299715806760880817285843811205538980480410547256142914928080969513943937390321945155240763051978224481453395538623825406426257486671723033196653042553791725502365953669359059203281543346432287669093806527416656290983216348493107318444901705097698484856499583144225469753309548756991381183007756768832175844064529887751313185589181671212140670109609588527727709354815297803853172744876425873462969903433735934941220232191044824311777703462867499668391656996606041911513590205041762662943007685547704010135367089344436791719735037776098073824144364101708135117562761581074631895544646416007568329032153215709362464769811837751168823014392173946807947403987362684732654165164505174758665585480307349305893124871730255765005897971179490574075583397622900578941963882659053205493983343807235209323671438532357044428914159474004064244991093049239693501633034898458653564144388372340794403405351314642589315164689445000258980611924931809453297511748154249829912744863400505171846656292131125409002172416392097514399906422315322314464586340351496134256767722139318396266653869349727358578600761416925684888401724505973846677804530035149074214389675341296370827256279458570150944507923973443235600806606624844180042971307911887252146659563915205171248296306177652274692166698581165930613078178063939352326003230604085538556708878669451641160281785996879670198887705328470675362042025017035136259599522028766900842445717113920386502493564600398954381902826183505037369211695644379179380356368641617663603712724128193556351330624384266892700183179476102949907567065456801802248070135985750758716869332392728062626435371967304425541538836984870908823347413331017239485624636388719621729551732155112909064381940998884839434690515214486585848481923388746902733732492973851728607022011128462297567061855779660931781449673250473793776550165598118273093839395124567927710740226173470439473743405912027693200657210069784268321962602363030342187419229489917795611305371669419623995139867734043279331973692865546220661044886744635960946883789034147853004962467914138136457400794760844131662594011882656741097133937320971246844792490507288915577555219112323351410013270468754996441849108872836821502378364461172857844211098084788796607420115807890778569789384987164305257859346766194899834220643240323881013770772007931499537583805075919679740642219405808650046266547339404788288531068719427906188289522482547901155887404457012648174340488452180928042938695858037803236676963688894047104934768426780444322934183705914625752204990591508674445992789126647766969342120326231758395909468726358583897099752968571586946347112512130322500629939541619847002236301644541749410388103542313747929749149609809257425667067073231854903867167451968993575564837180128929010414340712032560333100506731029370585960198171007038898792485291147238058714227242152211057411733304560438065972693073044286958785351893772239078761561336278848462646793569227939380056001689734052407752240107431269735752368781108260051722909975738707947204779508073690863602826115946722645044173323174534453334064687417633334573887878934919043256492469457444593059336268312640175479652256106077062506783604668074377313964945060934270730619782439318482748271100020228936034740613136683884498312024631091619792309972251579645559006902450818371190910076218164841868507822589785654362226455730397159544988339084515589361928121900411145330481363277258411281737671213149664270503781107201899824370767628832637265215552505253894006658952796084405063665335527280361188191185664278548965977618535175853055357211289693160418286475467126138096272321873525280941764100963680873328644309881978766527484388274080603510438454034972625095283864302652967398283587590014946325441389256790984798704115574220589182686867005287227976803950548761615636024592065880457004035326247001855147323634739652687451758409519097163826408945504466275299220924264840850411169699362900133502546451821733105809592388372307583230671572401348873431376484307622107884542155100360444954654184087109461493057030901412582223351181556859272798246557764196597568552725366608366655821227256162481219687835803362902965928887113115817329962315462045644476754818131317429755118494328230981309520601200993152185845449051284424411885001705491031589815570001376248753387682344938127772716792468538369561283766015911021654683371045360945373939157829654810047188886772624130690559349364333585781207239693579114884987400310624172749903271935825697507657574183985142727041328419263438075393349804495727094694287229110434830042125332559217178805593512102177238414839683410924701655826466160118792831720552991363859754118772792157754519445140669164894500386953674590972034504932074730861866253250492039558781072843935163615897300280566295216153393028952315522250427341900916447497713568472349173772836852591640721539421355317490062484594478487937700452546061153642808510751131319696463112841321859807930042637109710164833837585571142097329693442236511308823944937440254977857227581242565491833999012199533433896584700313696146293525808685198718515087126726355482387768430826232695418752626357495187590717690459617640564563925274580534095767626388269925066213357340559657647081674809724985411803384601315430971796897055325308590631523660093089215792531433176593451010032238230176625813879635166179659058231106294090264911507742398846470551652824405786678022278888516993737752790976943514714491436470684601444752535361316407295536627748971077664986621597672834504692417787852616757438636622997921599784397660692528740986095560493395641721667296500724329691018215101906480967084244080391876460829343030860745008061999662937311487912539818880777146839563603382820431708744389421788228987378871589851858961354624973637491054153586452541363865054522748167548595307256325168840757930541172513786579569467232152795709429814082148164603566868903866952048229647756631671778279791127006365852546418520282235253354410504842057571980164318467181761040375743349665227245049662234880554490553085244408461023180082629263133945387875575222997801981025436339618129386419220829949450807540395380479129637197527780860351286170079978022730285646434914688227210765915443611073739086260814949915766535325921197621409805642329894035630422080131031359305770217969960240720146415280006452616864851959058971505488322709870225864925527421379713926279266971824683663273960839909109667185186223719161578765261439052819659338727540413165736084569845045132494528517585082728022776431188087262519889877798422809337305814449401517780378691296633665895722480046657155036559879198153703154121214475129016254478958014853952242665212788274945819913503184299904994298089153322412067161601186787525148994962210316068863430756642641359448963307807724431151546940715697854226113025105616928522875755179134496998486796396892310316496736210858484896855831837481141959631206090941205468329565985258576987513734880722204884405534538531592766013831810818598800308483659094271947419335537076098467673023517500613911601213593287384058056873582596987125112942642380340441150498421582231517866322087222353377184694890631175244149602764915537148562605177519064843134868435560897540507625813924815710283857659144871492685643093294157444269173955218763146181403884732179149663051881955066157191964620985515647390967179471865481701468835464116253448528008105932999547647916025400053492458958620961728141592193639582662224082221649546120948259097830445688701350424785102868743005869687280361275594582672637158380176406881272175204044849388715346743095073210636695173035593076502381718536136643821709474972267245412378023184262031710278835326841398002968225154491515147682140435259467603631711587784958110889405123994707227957955509243337001898123065688025005892443822246883855722892553512724233205062436030028075083333251136034609044686470986952660165261170369161236143695057833096724892551945151272339266737404835773361743224146172221537079461364293831807314195804424872325204556801937724096243654702142801864016358592564208676797673128431684485730349908794084236472904288292381647427840681230152141005298099200284319997552015413116128464265023157047294330234879599559265033630807943933357396701535220463064618594863279330004108896184238060562579182272131146224792228770889242562548772443711362180221659688021997668068283813697749246111276764216177067341908895974013993709646984980356056262717717398117632352823411211278054115833870108217296611196249351852382518202609782257867226306198806273213680668117623206185888372484327141547662357075537790926483591045570090784316187448702306198685671147617872468510452373304310684817835377496128951940110775935447508704512904731648826014661403936315884818887604899134128341615926807463276493723748513873212597648123866574180037863564151214561298155026326238024074186149556299157545492076765389629752088304062918495812223255066541557087441038299450173390541929436530217313668244913486645183457414399666307799664067241977107334145633098925812915773921524166715792191495063175258559653309190505645522688002896588936117934928835399184146719884668944683355384200102706145578106964813348498547512506616553596077218507348179836399452758049912671732051211468144815784862736666254917663794474042381217667613416613181995659290893696200489614265633791740331938518529615669231273151697342248010148640973255663981704138788430566753488581819229842325354487065444279952688974933199133224702770319423029656535621483385138875320085833396617164966280852865552663913965362571906346070238275742949881613168314179589364063590244699799504728515554557584153028827311103923011269622935094553145156435819117798863782489220112408875641904256483903456536809400477141564228810263881020232494020287187277278633895672356020221980367419425222564177566582327020549748382080521381213151623681970271793874753374973188321574324499669968923124659497169508862499578896370245883283614293792706705111772025559766682632556703814280595933396189515266183535267743941854341237338628260294851414226978608440188018156171075354711794713096356251868941704782271123782483100591023082344016241274655632089427854793365114462278624932840797732273865012795175417855099026617405691098844356294888664359395952555285234988431123479845201165415234268863562072436586237146322022492049387474478834415030344975213236152312812438948649450608761691741901789830321407575034546517731283925179904298400837303957184985065413463640288814829999567487168338892321331987751081651196663473604501578060252087323222344732260814560335141272946070255610728493210345748521857231813898527431122833238673005072046253275025446353925129917442490960356604723863753670884201936206175130568835380013417030618699101906463302964447321699269773794313959840873556518379190749796601705844054780727428575663881610816566252085310082179055880732749762170077002583408111675249279729301902233244998331698489392829301909997562678002297317770925578203040227603808097523201089883512793325949669486118353754864006497554033436828777773085497229091764724901850973922072099834210070199980155798352022935081080928642099981236792652185633905053564043625533823398064232603920602042534713517139500290048749124547533115586505805774257120863244835546908587809555521156363050909404637339592128223330845365652033118492377244328895452187604684951623601620848414338780470965508409653920456207792867610154100518895858775949732441753378027657129607091599075234346579617001879489769206542478224793092531847384764362465595795409697072017717832043550997401839575570975951465304373101150244798474785718990769231780574907901869670430354278848637662958135896693710084493811462427776064524287404512495349716650019329615195597702526478716828865547151631696856602436014642590980401670694971566898411030694453965679004859549827261701558240239557827770396214872815893499639646937436033233827013019512986568884124471663166801395892527383105333548512656048311961691269589976154435777243443407581303141789574546150262858611100593250482889441578857927960511746401629220279780234063683437007918225382427029631087340987677163768705049225748622126998172297606449073421517574326902871939227524571505846596722105779002700839490256243110551225460181570690682318867277377336629450360810272742907957798128464043579008029988337255809820077913663592045926443544908949826056473522306074564433654560789253419588688762904021075858820451675828523229597588786556170658813883478852583298892612404395569796201968194998919441957462898313238544288458767022327204072123337002558528905492764533349219437388637374486620719602641938705462985748526654344103983605365371819881538398040304979791690396918844738386336583856189556155560877494245046300486774012860296312322943882072947384358187112379977275567059097787503372915345889086995860809395668795082096943757753805577576796709218676805999856077819141030779105896609997050620117286008042799180325034038936663254575592048196761479239730047690035074612078106141936778209993339991809421005660476159652515501217103610096487939433667482802787713568789672779655116831400094863801992090510709517951720666477442269997687823310893199030013241903079160605975956223789611613434941756305312269558487442163337718188932233542979925635878234485004800352195167415146941456443232218992961232564774531755797160000353144460354212304768481018305451662402463306172457787142861516394437821600653229102098736669738250877073287161839678422896884110524499812911656438409050939580727478840987218752163642103365677948966032332401695230970848007944156114850910980921697209805054085855967718599081127974697656982968718144030620382083705729396672202310460821094246274615477804821912746194150094365899329762831341519576653008726253925710709713567822054869628498211703914827804415601025808825972593814398394133569899104531728193809439098648739766297318604644469660726580298746102751010748281238325849284725221080895013398993901949885497960759555963792179555452892279816079008067803558995632341071580157507321822184132378924434437005463074154953291707518645759008023858211495320482612937192911550467478689075767302506223811975954417992656308317702211406084134199969592601719526156519900257960026573910527976018740457858260481767944469670098724133503576045107362911536457407149568229075229921271542132384450029699817913745914895399902969621416186745014343329398901632848211829609152091276945701342918980119891966942387670275288907420219751971514162153703737943456788713919040543265892446029274670062817495121450453764690168717993986170291178056844277404084300425012617797949176268422723197843771730910950490526361950833286178855040757103035740498324543676377125254762356230557512017260206859886686700877481129267993473758815398250059341448226537631253552023569136931673079903525179590742113285095128974685910259774943885252998101675529648034510730118475566644427335321972348475825383453318924605884837070450291332863298476397113606907392445100822081021783990816856572329371254348345342733736745122977800362414067864839867564348546145196829642478281700238694209331315210041771129793635972073261897162964282761741833949835271252717445512234085244669080813760013644442710833694420013118005734640896407704999676661784783345146560427585828247810529939071483087658874292658297954796449917709957386736407965574573280326619165104122204986690251132570948066517830750409479273725035180087066383154715713358099538124077989981929062745676629615651397896644826378002168197354119519698299176418950109827491617647209602384135388362301443086472176674319693882545770152091082241670152422345287027629334330651759593001499498238244552305627085372156842331455946118481853699076893768067087448673256441208245946474446728758515597284413525414801121777003857319076345084771421404441646346496527311318071684304478787155246743545727034116616224503631294833603649962325472299771458326852149280009563744909982095125327951464550970105031182440833559722851149688417112874193321686427439742255492300392193643717992872895877620904331997438511353970629625885477202085469090902452631038311204173564633921325616015533658636122261442309493592642659806432182060928535446214663931154651296183773637757527558243374474914749235365464388569759851187395466740753940547567762762687114846944445762454027641522677445187091738067953561194558829565889524780482832634828743750946845499275380380131154328497695237502557218467679338945661412489618380228433629067344910054711754999005402485268175370208396084052764061825969556566142607019120015073699568869621397729853718379228380304634064152523063209964775204783160810117745214403694315340012486821176969381860115269096958772056048271154446539274498125625512944828578558152714134962314034372820570025435787101130312275925971134296803433063481652862671289496554125446539706912125320125196047145741607756369734198018332443749692894400486506585297119687279741168480703784129175238838343061558245830328314394610001064097104050955871925893731142964627501178308715439121861017872711666671001852096208594584094006041641440405833888757492872611379840376224342415665052897036902341565200108885127555351368859496788985433098240501202012591954842072955702504995669084544460223792483890312407979278659896003120390281986874621502279657117698136632983382619931643739389319861756979559422971021895344785672446587890929882234328102968751257247851503633237512884560662291961806367176046903450046457413465908082495349696838329387851547239545854123082089078809243582596005068924034439210844333188786595698114834520052118615994963828161761587766861259424079275516043273706957425767115097548917646765375254797236648469146604948143603550522167592975608321877113547954216989648062811331855834328259261873900687275988061783683023230112246702529540641225163763863336498698685883320460042912746217908166760755668553176151842458189457110791714460903041688771485799765038697660348446931967979607033709484160450947026912084317180029986539449951424140490823873003940342621555335128559251424949799179868667943690390124281226879086945528600865963531826041680523697895870716445061142981397496598253311053577915949317164687491415205359381863655894541366883656253468507712566268965203120951040114389512790876629448474198782680859690578800353871046895036969497448948558363678145261221617186675035502575867675821754376551048534257316360291550416113310176744538920892311155143236785984775427329893623523482143125191234193166051953919961256373816557503077553554247314597901301645692795990305046087531539860648111670169138468567962680711493533349539634980877252973418348847567381969659654753173946663637095945145917548570651310004456464623620279703676034643160810089860155702984838130326524852304581887164905709363049177327323834909002647771015686700888734991670635740518302844981586634825144798878653692125743047736499998256850863279471341856371518919859780199663479851332951658617187684349883846410791093519674205113266163326215756447461371166052886369028981605816944129901185006230508449132758447013588218793134986384509015467666236474204508107858849422604041582604558186926943129361492313533085709268394127897487839736649060805617590435250953597189155946603964076543130046477593157980624368053975049174639825713129548132300341771901019763899108921611305183665661701760034640850994778754793263206864314372095186798698352545846368662510947711592038806917547036025445344163188094776466281198128383479427785333691610026997859524395712070084559752261214036592583587522892328809820134702798725413806668625582014728686476670643977352279498092480708606232882761158604840392388103139195920399307106186381205922305247964632490455219192601398067532693623660900907283110737538932526467264892149194300070242110940197989660415798727507549704041498922649865017063138318976219372931376495729315174596784855789503950874199058709517364633360700541429421564723964512427559956849507939426022234730233846020581023216592395162454431704095052314883591865220087397770424346810181700168372773159683445631721894943077244464753711419638169260051289108472617897749062223008610717323187700838233174524777672230589017203325559747252281140339187496082755868523824818701989059598121093374018577045772746250204366969675724255396657529171633254803271173933501815465211401328224577033384838363451898032936411641145202521705631947865604792284370942328158008570565842441978415626838881895162367312192599983334223209426918227894131632236913077069760995582115020069212837190631698840093615020560420757359116987106132526046799838624713265283224522100376922877780676841816143883265461569318612874722106035043545214676891048661503709096026045298921198760749808757753754688039290374722078277552660093016351956487929081882143107764284574333672026111899147911781078827086365406487053129753339054081953850782872174519496672135147200428060170250847327008786982495956840335826612152707600970982887621569856499199343842451948722546099033201924723461759305471928568998144923830706566645923257349721457859343920429161483977467317406153790047455344473498322110432715651613675588896724924197153937077935182096127874224438829897769469901903748566127247154934524000369175412561737878271672470151592081814112319517465086816166857890830544765983598529830780087754350244249076584668435979850376881624161763764199394562935169310201594400471979763009614997273426094340909519673211775622386390706057127038420147323854161887543202544178682013211658895956432040109380767874722151343607901506445244441376657575013668743078604163135498909810313308707392702538472702070064997610753108641737793922149885182376936479861545991811879554937798671015840111667970582998291394901872477965593009480551118395964697621140937564776669801529982022326214365132351345318892030342488926968880879054159313174401250331425171967437358550264837564096779048738935892496928405879636980979144040519385212156166501100742846092733741819445366757681141304806386059227059963668281245327944987716164294283484008467442880205745662087176047470694936403807331341169604427753181938932630119730585253072766851843468677892616402106874307606978857253648326731527852994791104512553468091446985631192226455153650931597481947931743247600610031376126444596533887056868816457685388904794879438838593742481803706134539524408678197153026818890730579043440048161272269384982669062452192499766767711350037638294835638520156243305275089510459007351452664031281778644463897706411497344804599542835399786347112693835351067294843466645025652636657107857073981230720565669372423748515171154026163237476452652185502959304197167735263953580885825129069545016710558175674047857823580737301972299660273478921533370940190127728350668391396393565583100259433917133788453486235314724012747870148710769846587852480587633646184249494749354695944018157153203609831490478654113210869041287889699291907050434076271706675145276191368592480100095493536440229304909129523635800459684526362469831201920905724403792611745471277488973802731591619758880914322437076039172359887239262877770687134730174191840127706048521085874887945010404195793902698214226362434295932807409940924835245475199805613596574832417554993010827050289837397232933318986010984307889489378631277067527885035025255485213166579052634663980393933837748338958150303594003089652674106196589152314718853970065271819327468279903017984876879725436891031377720791676037118283272418195427092134729310666382013353198890061893773782637580550433242147486594577178322940596663842342315925870955628688876196305187208143615479576830595376398327042805101770218925716442826873487460314073342429035782681137827297841373234998517446435652159835986800703123710250881201774360721603285735901879933561142017107216897792490830608782253029038595242523133152576964615366425079162692075972369848453482755890778411164683632629042441812489589059187193067938167839679432611266492137456917311797944952356932455698588099093382022937692350179014099869220686718728455042282478310003166016533853291827915038613072169890406010986497268800686284518196822036309965605776069794774026920965723712507230727539154998574654756555954073260797176247338080136254769235269630966838580923688467960815600537599804129950817986104296015522982163222492406011482598336194456834321308683242505800981669083780739618131409998166433832235340050644832950201611006158832628134806140730575975959874720452022284352220241965219452966874145504927395118883236112235686982186744939248271631528436539269680952446338014833379322411768143568039206219917459899504758692310382381687406020861741729550817544163403164265956422949014996186365615440379619490934855280827264196370977411830246374266728242871138223804697506579780747016718121152407165733822319363736209474914576597408555380570792402555290988824862528038275152447880671122941768810908968417365894187691706977215835933187052244477846477558629295989360345247270143841872215781927586896992177384958757816360215978676953771497486903527789492952870406187188999927540277144651969745507126846567041362414617416735204114308189263667034100516445391851122537709884375431759847666442343847905437666386476874781842534713429597587216875191090204897969080579524518897840975596147889186769066536729941748021023598475960303375932972678953299157107837840817780575094377865401290260539666342943934567708497550739609986340077669339460595205131320720211504963762856916055593737194158005027277185257965932160941200460510942070110378839756910303093640822690303276348606980107049678410069326826441587902688836694009261171853464052398020258060143169092923078786876735352301663939652536665548803404926685833523674030319819504210272672576490471359640003976822473155785519885952811718460974107228731539140817579389362572713700175589128241292257635468818496900917054221168811234057950497243560549749912620798941403768477881482386626295084446056142965254621461743676011688762107055340435923346912888219907238207759596712362578129035175472577622989441575034333338575966781504814277893261601535091534357996067739084939501156074877066725054598032636581170776723545272518291958935302907709769176880943031524263341955511670090810724381401463051744660728367083419531415139100055166378912479077187409419303108680338746683130205209463050540990782707033202566448732771519489579275720028645118218485259890214282442365789566750339798948617270648388773401128414818286499033159763823243386340993936845709373792163595710858862470765839415330672891808701913124986866678675530829204924290650003973866566719574852376276097738530105061434497946611994015022967123247300159576591441402932135671231348562535814532974451850935225696633950657712708737459587223322092690367945416526301071503728075414347411065912787772495019678387171462241386392371593270725226504551292084666144816292173043820623952872112653002566029697859042025552297075440640432900867737053500990823251043981943104571038511343858021253004812740459056179581649120530205435496312093157155304424860284194144225806078086759714286260715746470906887546081175176238620942348147989694426004498848710849723951189183852333254109399069348190986846798761798750329433885159456375548274014617085600649065001631671094356990285504726469412181223975645083991089636249473709280221369261857031287794656243536036397515572752054963303008352553781133321758184438195235815322460009206142205145533513562801581973710376314269551375124679894391945651002871269561739559053037983279522728001388135759331337094542973422990032980243684122432737872809744843183470582215440169697669976381382668294309592515886614843051450601954094187694050029248963511669486909138861633084544728491216882554442753395766079229581536288741309360838034862152013472248609228401704828742535918405756835003503619111723241959757933120634695207055854634002776880690350547729081007517258090371805780488286868285430855691987115433221523538535329484449055573495364620589801492492194848642614805192068435217524242817985356977429226748068972732295640720521146989130288321903866648244761271135487955384421780009057666722364814713694419711599563985161294204168884534691336740027415991030855058989806801573473997460062904095634492237232912020563441865844141873404232063889649810628889330688399012669514673920043340746742413047846712556028050535830566411185816047107558041718035157344471165423878952130037676185945769359315383296052693200852313939608188381763542132062681943821887890306052752823773332827604238819066058091226039183868132304571607142592072059156458595214417902707884282823472387203193583784024330866312507886742049380760768631335626710971247620314244454221306319993146714354889372142668068646595302810420661061017595252611837676619122616570156147916074036519537747504746038619905549970311527319421723497436929797885434369998289738138136348929354806589422629773818499964795115839773555286548919056493274301939163926483706655456465920181777016306306820137188800431664427779020297763261031347864988167019647003904132677014608461106847726032180270948958795883790275620328976673837171342374956899668494993830194064313543281443879077901458153145886769978529776179786370077042818039385071930305544739908308347450638960879603471204688490959262623022048016104843348064066705743038435982534553791894523284957993050985782047628339015256683753952867697574828649330135759863656106051646118279034985452286327166560970219095459784650274960790152563838777271302274726776322276047500037379184259603423041164326117994199558181724580263704363085509818944513490399975762975057080009301090110281900086559777833913619894158530620765740871307513523164718772156535161494863003852945203800141801604785403450755370854754115650459221952704023726987573913909866259143230808040924497298266233506587826609106079606484341068779051395492622829436950736429359813905947580273690662397519006168519197696665533070522322639623580731452463100011625838530308239809166804213385426803320005885115531669539578618500145282459579976820760653519657550003364561790173217285371562030489754829501926865550870636602189222145111390582914550686918389324501040732027789880408305673180414309825267795227289621684909950007401879023283413539204541332046030421624788527956905463253950617858033425600528176013057787249251256031557075775433424926069432287133596728211334092714009096655921339496331053258922014126629212426562483216549897498776498242198927306645798445187067843309369769610645194244048714225111391897381876534413232119667931245025216155247002742104828441147494922703137127657701841063462450321680729891708493940279985052816270461866446770789000477612915475588702942036384359936779966389559694209784794293427406363568172118955573290517622340867854671379770464668442011488653090258067572792393927579988183660252550491538961500012503594922732534146654634805727523009775113136540123931593818578450631657863196813266666134753312941092950432564360461244078202455002623685357636111741740836658015361208601392831606900739884359190627368013466711673018453869171884554816390730852358525613870527578638988587005963876774737973924292496242156726943211901826268728118759829571990222490310470033497136581837996558219839302793384336070399696731610217838809327499678746358307638265242628437474908008409714053944580340410868340200438836039833547148474952370118557745265256504031071384546978931681053461327706257460765118877283574697986572799346194662611618827191471698558949129067681030252595169674302511313435700117939040094419467766282356560324998140923461760539390930666049734795046584633367578079796354378372998990885939168627368458055910545216480842193418154680033424343667185889858502177822506627410041961334343703429832428181785413367185224618007553705100567923058910487489257968355066752735972199481526673434002443097988351653760843438378955343866409772716662862244502672896730905149816462538914026771702956709378749618365428303290895917581954476700008825235741437998550041644312992983061874977707557149965044522727061721674892608684914789214426543874495977758596670390501400640588511906348425266798734091405370237383246996525143842775117080995723104857710254382753981250044599643848423082926274881622014916872000130173250310121818375578465370352876530148507072089322514231171473566103767907967894566589653943509186105984702285843166708367128942136259389926056967539230006543408778767961602861822281768853379935319632129925587032971157047872190209046545152145774645917909306467975791083245713647553777132596863380163610769282214356040388483691374162071210553038368159100150154081931887477019993050177424863312464821550715347153865660415841714391845300130690478850675133439056430419349917515255979519872706977989174709253539141166255817911128182560660832731226715710328812199438505961015792194695262277043659238590734338846107948286512968270150531567407627288968982267680492889313770066787031528981042527581686295784652956210635198453840977789759291137669900444456156352483798089078493004748435008306030513385477262551803187116754010746044130171054692005202307850781706699128749957744166508542184400467962092878075901788192318838460741361996432917699153135022765286160561584409310397971127137407630934849699850774330585286406218860810880765639453415573374956618283283176509924091726216482194406105380008976963102231037630207273222022305906260985301965858132708740067971859922134526798538024811934040929353577385713361275933702289329337906705108234116971206751177767102416821061431477075551687705666378161676134805402240495004178401991288376033296102065193545150467507956373248814132396103432586481690852673607974452212961965179219951852881269390692683393519738057686023031877051773671753624551012201121482561140717978060895276818848347796337316837699174833940037481552072459798361133170375495468067561857784303623995940944553597793042264482583848525845372293007092954247915927180773155149278881967321575457557165177727603347101031677960418577462160425860335818647116106437722797149730531831680908788163935909841541713881660858802415719600099688034008391505221908812947857573949391284583508570768791105311212484632865662936348416312741328897376982021146277196692787389784878293180872121076368219398711499187333753151724511730568321588305214794462245401788391356076926381831507722245864924670819604293856979585187885038936093809904945458052522270410509788404094632849491849593941211883512669717842060514615651915497941666374351304840577477256998612610169923867268271250863206725359410528807081839622720154884386464246090406574109909670313397727570485176677868716074299662579144839434123796435249083234823416545607274681769978816081504874498107568647206495434120845536988463506567384075984136972477302237623665835622930965271538424745935632381032028999364642138725109928491520644451071369189775222229914147698745935751061297761109981206612762594378114402380636518648730529039804779641027651358423267211042003431430431598539350469628507751413908438405839297274925165798609801989724020777620307013426520377768655401847188098993050644336244543317373113514107464883483312819964314653016000073326823525975215164569097361488615066096791555900185889043973954862329439842131526032371863047793643060701901615093099742523565684036518402694282077189051826910876551469095145157428627750996504619051286418349304521384682878451563057161081996552917710910658643381444030914315965530661897047950402299209320014722030296297051501409772135674274942340504205820347707948585699119884468188395616571335966610845319429420534737481420568660620511717623324114620886812861342447880824762290334291049933318449032028546880230568945296276074060656510469388101725340094191775492045824352340289980222681242531501691617533802105705244112783366503551587949458059629808561194791577754238628873954592493401047406952989131808971137905768625308309582647833124906613980881818675876167274163378807324177160675180130693446238985315972593642044944265172445341846331992340320939814470833756942087562934808998693552923707771046762751283303774914483556921772130257743187061491872405960973419951554210237477028258367665394614111237331761920970045683938637025660852673785743439349202412942656591642355029855646864726826612583349761759143298971454664084436128266202242765397952699355331255056134103686496000552802820536175026510237540130065027778901563648683185253791195776222494934124118956665505454757524673493069317963272121508628735831938545768232596212356239346366453067181271366360419497505208406622478085289855911772273481286180545830615399119881387620423298901304741165108479718720370139691551887462803299394809853464458392250842311164898917020795035720071713063501668999332518937262757463061141989008116238273267678359599283091423720537392271877186952645706297076219595586492058699572401235059171923257765234103780903394382388042422405427009307438839834763778993240169391584323741897996685182481445917237121629886678517682060629513763066534472140335679351308319229950749108000960127632096862359506865711963576945152202247806529122264857542624270585283604702450838321875808134717964032365648896705500224655156743455358154174002548509343130495584061345412214485220355937034666074052218442540311633502718797591356120181157324945146426235405577925798109208155913106530209406533138477884941393527598139788596685277093392797465139567075705398498810919884360069007050979511654566429357957018071971216513531409247683720252270681371204588995836101940542933262080854872475211673044409858036203906572740459555414614313341265666548786563597763897631617839769826220024156415724959216857372660440261220375676249778604241329878382986726443930659198227433821628330892283816849829153302853966378083417364130005290937410921367085219268882030023474800450576937443765514282191271857769407536240023530916010990465556453635023041502218150079256294568845805601313556515484905840063221661192882603819722633771831633714009259190257227529702033155584595436134900476722843226740490459180536394079861570602133599045586766799949187598242658557661554462380386722288404574108650771684996303643410425969522914748884109213942816718451450650194560448762908576370862499095682386250548942012224485073846643350286659594675327846940579807543295880277763984786333858430600047287246479730951210374077108332838036394023213392336389983002754332463499924225111376320242041978603709243134850100145424939070240859469590073710851333110025061424290685848004692231054793971947083166553978803266471037815279802387955964057114020637861615604336679761708834706256158151832997641053802940948609070407124019658740861957585890587548208692401295667691358215235391878289938170150001621339240812101018964493710881818123365356433276588294992870555681852490621660877400234562530765689178689386977553868486732715036795366105574043344222901352436363702516575268998835268889049987144784970148471253446439541461708847942984593598634409731537198391800386597263335418664351839543698297376292601162731962986190879992992467344171523366949607850112823535329020339901346002687760187569042375729462971224434678476361688455653824119540268324100327130510278510966045634629338760971464648396615728715526704534886065937339189657706877171766162171229228129344357914073436901474862503037273324485189979157040736433776593826166298049316832279826609665744392856952925406006420523997919670674129540134970697738261130163753241278500153537995111251338295396569473995627105530696842584970447073312538349410187414645621013981196011221080246151341020175672527985419028670743426599575155806430892157533546395115698935291293515001566836907916173668922278619487911823342001140309315544657312305307133019115112585965254512930206095478547965089828334452665650639367857294953502926768946993090868392672663577913630830368961880162035121803411390144195725777886710139188766382406962076274307901572992232432849888767022846142664094671474899961924515284271982650105588151895053364530181209332557100859912920886524868818924217135638822648060865158610642292085370969699199028477635257539845352368325354348679449360789896568973873905484478967509672546292702987209043654004151036364576685928831968362899095959193293668003681162534986785952324495379976249328301732790062100775423516910389502944302444130212685373848410952791320753718715137563315131198016308264385152309883658228772809160629298968881792011494856185143749897974595829739127920456015021600349667712489361150201389144278035283116360826149761570632666209606569161444684591200861086454193793473886823435191112042588200775501195845185075281347023705921375609357474093340759885446131670246193366520116787915385393822087627788904412471955424489041389721268679776227746563223792595850299624027226328045516995541849458893898102601628313935901513332484157062820768512920139849504304151745541546288745975802965938825430895727109138268216617312132010234464727662211508004567532247508745227395941802612188582808778405694825349283743745744566529932642209328133255256407715490240887518038127044463024811833273207378483978743335776573780168396137490885714146179660246844356359689290371808593354362045761978715019522113421064591512326379074649863279523455387130980686818949062611221213424052981996910318165390889781580803451532484561116103344249563628783287331434887261028559138713097496137037202761711192904506040543734565287901546188826251040331693947917615971864647241586304266369157817815303323396969017780616906524540095167296650962312370731424188552936680630212829679828537317951690405527844287144072405370720816201759782682684608454745892171310392308120725624392956812180409781254289807485307002441037906359265503879853071825407683728286533524975592212346604760356837767299189107525003065893777116387067006286898792820878657410612108359842627510764507835745606055197937961966392274738882728201174551519632817070683616168011521009569651647805996811997533686700515755147030915305228497263826714018063956325741894814875208681052634333836544866138848619097689983290992364940638059897296291162894776074366006069914980459859542018182624427065551512088842410988651207680090949316518278364864178411759826259377765709272955992775830374480352328676314910521316703642541746526989587702896850929528057202740802439111128369352643858734377026993645391626880690676557507554972327363996280124849201141469478611799931581178462123289393614709410902721155813443892882832658213066741708730747901872629251963670336135606801812279034229728898055517640477876171757791806298490776848756414426574272811438689830735496525950866952526615539342461886448777915865963092236198909228812692811190286406535600478570973048728790803790560432221855930968258291681228966203341244831955736511403553693225370240662666446263426451219311049326825733500659328556488563717882956656150392921919862552004812003245949726620368450744437952993663374964985725964903569234005776248596767114404427657957904874053530604649588779865465526113206098240955231658128807399254756023622276223859990822622231217028309520847003678711889420169734745650812723082577885072185450802158951269642018574423491125962210731866099182063270823887937213016709282437562100551270178485899642430351824537084700813890570225667658799479595019045503067642740345456761631834682572178387640147022176142522482009800425317669076994371136859542547822822152822362578540035281594336992112250932256836523066118010509703331374202643273699528240928126570503398764376856103268692939768084774638325677477680550051910561905890926139892112270773045342546850795652732837912731952243373947820382891422393668673022991331570251993509539825112344135890737988452302288111544675902539263405472462915160587094049193426521602316562788096025630339917618831088950484856193137323234355847426218124324680063578109153142733482324696206452389989659913081217070752920514769436832411894213762829883363403830279706109273086755273490149283821096615813322027713689272960003310973970973831654099698607302515152961256176417555718224064528335952380434920518473529458900876045983543622609817453835915938124218497269151462087267864971936445697821440608591512155974505596103289425254424935263383923198313609796374641215400959355521783982675450678669544638216381409934956012273974052356424880478203131753183179069940080540074272759944147478368249226003256330758794590517341911499436629181454271870030600344176520342545696109932089661238113578062084688492041308977953927814632396597761605004406096908760486165347907572259622635476141163731015613334187270620921576774836094675696389459877935042578834993279228709093692843229112815685534167194251175088604201661346846952883727040584821704130092406545180600571463742397319294499057585677626975224245494067458987357764823487273587167296856234539883108604015623512904895440813778674182022290188802756575501191425828268421938351828597134019542218000543959149692777562153495911155743714836612915881990080164898477977527558638146189052398950373373652885949739607477564573096919615310096143064842359588009533090989703433381067387358287758776012296358281167504342994592601944646684930946853286042066052749817836316976922190237701697764629011563223113432817189181322615595327752199864810604160299681783454354363679947505081274011489232474072800937243895713036105779508723017081331438356703371932463337317990276451318882602325113650322015218321752018923266909787566854671551111886913196405979388641946292881241588350113525716176447420861540928633170453665944983757780819416951581192328768155295066577488801220075828979436699498525318931542946016668526843060500139231253126917789532440799078941470113560989852956109545575667865586865764940374169270469741291591920604807543466953866798643127656514535147374874428193450518930298441660842457353028501447995550960114528568296929889157766426159872322422626619921280319012493446741182838026407800620596749127657162373891278692764973843979931163399351006911375965373922811948120750335808753574218781672704578298359692944811081795785033733691292288556971936826292874442440145728807066711849443812850065879188124156963630474925945265563951664815411150300898761341823427806915478983290552241534057664024618404567015002040935585433316680706552274071002343500231311710201639826261205135469773499343022420183310482114191625120468388300884588701212735688327291426198291022497873900867017087991735185429966086099698263754960425530877307072994028960064947384684399200571047738267832378006612267746239943899120076645944107008237681203066159452461738373490681157475015355745621524270970035038513547875616446529019233288656508397161662174383737616355934078653980519566515971842899969509601979739808230344919082125561408614733636066081342689473475653579506972971661724159159375314043741493583726338341546823646625151862223093679597131824493124515213117348100010969526573271539471617663488501209758846796257180960232047368906128532059254534949527668589686044352684855172145647739187693004665822902880698996665067102735272245294194745521908427611255849298590161856076874280452337304649045085447455558139704652494303181291037390978706635374726198773116115564103078222808653255429522708692790634784850502644747055665543162480915287169145991168123193116387913516748129006008420465657849531761979317279723528578748149585365436604777974027631253011027766461428894933103665250234721539264777705120226263701855546542461316918708561616850223645881113575265707472807172660208554802949552432557064608162812392619844331328547871284009413689435845463732621101762905708545583300461875618975023654058865047796143361557175779589895992974772996792448801618150076994176081424685051040349153351068484618858273732825271320238859798621208451591152022419398568758999583856302182092703480904878265322443725279853750243172211992705332732043067118007015465181088843887420430948202673441368353759937267945763956427492849457193275163088821935717616681750676925627758977964640363890199864790055053596235070666045605258879754132947432934197717755021791854116659278040157757522468645126018151045531194677741673642207119044480068253311233902002761584795367508216391332176350470982453748255962922231454885555906564469826306810746720901247701571879965450110935672872846148064954512386397694780236124708981286586615363209397969593916624924965718078127745647673878574344724328108600410442018875423718520458802064107176304074182478088677431253457998691285553468438785685975022883624380132087522114551759097416901827018006919955486241305902015194886512819498851094117347928614389179676442958834112926981164331563331246063767501872075018989217099751968834066599848683644860765310321675862526541127206025805387931427484317558471116952201392111529734573290242743757012678935899730568209172578764924425932430007459021737073951167617930296397462191632569862971104833615432349082912676762363658932434749861238814773259451571362630069927115580090471945766936347981528771584672899910579963049448523228130549093280579423031758210611966942094615658851475713299715761485975701490621492392456546065168863831448950117638312421443071839553070919516184995365073377268410960248395094179914582198028513657601734332710131643144715575073791368047739092775967903897768620999183942586707120103446396628186779492481692892123420982218980622253650656731939394869985725827304997572877654337190616018822433302994209609504984074655898631359211328387416858732826558425599323051952730102965664993453983188124866351164758714910113125791653213584018052739932259959922510392084986410822138136677439691302089680120759971971550563208481874326000340098868705052304503764850598382098641024355126341984998158964532617184840002261944392122992183381526293874501505973256040777134973232515774917646581300853072041241072342982243043526995368959257613024513609892262286129521819530402000347513951461426111840907202534066465044342581748544517249207953022630413126765971654496223996789629501230820315930599120653343661566120444217454088893509991874179489473601182172770110988697496831397659531320080203710304290346009357686138904669175324625837579681858486604477948502807847928399702596735992952430221937663502900542712459465260358853036621170808661590942816197136198606006334737660495230510875817767589223178161656640130030077766569420824449308347278574320452572164936663721444852994553025373184601771300482473511442460538725507958975867330736351179104338422016171267961043687552088011940369154218312532543118320355535376661965918741948010452447627565443440542015028631897503108030305395892697697563693444389682182095620430980536865757197141511599942939648020250568855183507537292083031847894669217427303157836275834304888701607264363295774252227292028858088831228296141598162292293432350419309564776042295061763151267482416419224251696885720292547307451663861411209536706685595438458310145825637642617665002665588038160701520563224971590288042116332161874801561383896156386557813940053644060002399547743979554378721702231451476580899013718652080867091473313772718550762362248826914049350741633247748195776448874374274594093815585238748532348976403270037255928734629295261836829314575317746780577242502001197630791699549802278963947522696816728383990935947962004363037909139101764895890062859965825157168603227906332635712473033380858736652556088523507145301988745846776984835031895256017475356031275968395214168270290131836429707069453746443244314825854232704437613024191923651156255677305848951467431449636913063511223441205315728854139874589194513067248939067495783609868681227781044185517109366206424614484205919786810122308947563483525979862084278318005962319508540242956887899393511580945408202887212936470749793456129247541740124017782985421692976220005982402033964076592817310451253662639877707570419091431735006082516278424421788790823179698568626972134437208136882463231361638975188586683662895925446873547548544400501533651562764314507218605242597307455468482063178824245194458395771922683804938464273184518142208510232961050384308500036009357313045078861042752942943890645541522101774390459860490761409510990568710120673885313575798606544623077104815203089569138732208451157547223123130466027763890056887397130250707327631245855866902287492847364322038379290695852297083216928446564250556055524930293722627131574775769223297751309885769834142291544125586693259935712393351280151223153269419391837720605314545074957398014322791333895206782070479148420594524035020968759330850450397525482786019170478846734899146243385190033354881867361934316546453457796514645758720452831275479795603478497121601746192726331610581068409921369632534318717224377767659467414174176116068015546891684875500594628632836131575935515846320494949474012080054550634326010697506414071948664369245024851708850178528271776189097372238903482331295147998580731629443471942094984008215353067340307720233445473985657846680755007292539550080283141890344195544418064585537313236979493033697174378648870205722121300512180180414372498544765153180980243679277302389678545392331591897403780525803020187681346406326600005977568523132289073652121109815473426648206286122017950218508527835294673289786526603778806395339358255521617385208737940029444158497826229269324371148378028894684299439882197123120294792949014867132722583581729939103960373739003876163485558897137325489223170063685056748820154919586154116233985460333487572412477154608604269463219742301608593816686123685961614626092099361981103572923347671164120926050173667012717669750338887395970678401025697818362646269184482154875039866995170193384026989561721090666327795766749618975014495647765578012379167922182178901818437495401821616434029063212168260765975297412151717586653387785196156374352904085116774398625133097250238184433797026559900047840832314989176940963639380033660204645329745945661246655551832354422577090033791143350763022960600928129602136244333973799903686416085840253630257003816020813457794201876167728524320914093891201315558125800625022327352084973875327627263935114046280457697189695322668625117016072028184465917653672860537071812258729965220403934031995238656249007881887720445389670248856349472935033765085384901328855184716598536560624689921571531901754925776217159440615840327447772337974518648165013470994408581762304940390888591653690805111816931766328915877589629146532313842325304180991765878530686667052430321097142160511733522017982196171819063768834092279193691841115705271441044023465783317637878565101048213928893225734600016584480558379918822700513990841580016988389425391693306251272480845417329885219586994907929865438102400367039495281295842840811843303978841123092971430131959139630758629254827818068679632328037422559388140468172342368964480767245423176976936414191282242782204302112153295416187666138641814697798554154488007594136226930619624622312258212749771480383637529670925812361972941643376910571306155717112866644888521193406027573431284923232257666693431476004833633261966034353917132606105055543611754532413947197603997576585163810551815959401625378784203196021223012466059372149627958978446510479359480375383974397789194483327466129920635668174324950605007475562249049167312434736766667935052964490427851888441786380201070506936638775783427895560917404122091787415310222836613137784818645113906057340396803300205569609817289406096846988876400815908423264607433776433242214533832967231464511177280293863592650017658163507128038834883043382315497944806857197501442078571165362574845143944907548504686764725903107145285357290442872927177328439349534576052783002745704870649045678594263164913429869316387100114220437223535638311046702705992546175870852254188291104467495525636682088438024242882145422969421453214937026327788592269635273533509285735953365150955650322010508690459530777561494144084621387495090217717858973365004877492906713283508486902920011398606685077049415334867884776203667799286548736142518512509811578877300528969298377352523410990366967731458745663203669336503046233559010427419317487910969110884450060960236647790417931916265717847286813599628233240213604067032649810156601723116980633843096838976170631186281790082361291510721867268303414373474006253972341910482706029732227923990936361481244308716657361239670242152019590225184622654179453747029452275441103771492429665755898487546949025948793037407919878472312808345901164552575446158480418473226922142828599351054586647404506734220144369093186881874116599182647335559759786913655569045359759760667155665759896064169129636607958138447214161274646950706643729924841681665759813230842227137841976734338662329714554002276505194288273168823511662855264596240354601179195937898154801415088466291518747073576489475404172757674395681273390872880005054312354458824772203853223769107672544503864677832733364070039994220819799608963119413030769065571470366197084174286057089015975329093463907869779587744317517932697298276578241275165674550777907659670867953182109311469703206182898791888360350627505046632282219920513573893787434679590820387442783331521744227718734346818207190271965008804313415223392257925468394649011363594184180921001255114647838013312885173716187382151571448701662246729927287914515561697068818534172845532233367543484179636768894135657277268843256802607614557435688857989863635829286813513704198015839038374410037064092075742012064773733053536697923505128446693917745984805585484310782663002085833098872206991277615281780306885575646391256350959273737468799241534045280442952727532319009804811223279475798042149702597476172360146602258439473096626698665828838547150358678355156569665164020502147201404729420003218950547563366334758129218370773037422452745905367444699008683770318322646954422157801920444998592434514463984346712457807620148498431234942019393200337436219447065769287319176721420571361895915333866083505965236485625221464753269177966597333678384102304238758407249069933990198671378578232326775486283630878566727964558479491107784795093670377718902957951933544827389218375229893419444855389507664514666383812565249677006898479762542096042345176002674719386087886519532625697816572828971897027601698509568716679749581525282401541684192129408665694955899278095511072610877501684435688655700991990009473773356446561934841096889436585978498319664611921345079052581078130082822675700319405220464192746277544908904228881116425222524003826272765824725147530262284780219713447916908205093960319613710772076389581463126351293590810520937306054517670098630796289797089527548570554420920927132019902852216736095858023892408967348634161208669522576722133027752313874169572366679926126147463154517200375752311586565722153759492965238187552974425326849030560442364462361254858975307336593302407072868247762661724549512759209967064156396254011753550012056491123768074947667884164808146362060711956109053226072856890258386455155316234768357674177491734404779033654755423164115021753184443580878745304143983898460657486080454795788304223485486594796360157818223771118582709009576729803111037058730542651046407570338310539332191156704506012954811306226323532783557203992876654224277553741775313800788177569030443510538584825092492701671746401660984130128677122698792505115241689885756696587221836847034373018349898555907728499957370704363758087444861286154249729883910165820387699793070535053145499146124399003536194240055530100377288046301537282533859735885573422041394137939861813777479308744869814069957009047293354656002577034382581655435151844447300391389253249092590475499740009357033606373242092807764962643796931433796156992386651851905662840388416309153020666400612100431949135298369498591757840879527144416977950677063126803417056892033915304411958754487167956811695809785724476506254137605585749998713403461575349474553184277395665583168963912510666790720848660029010992903658273876346295079521165361102819843242328724536914983415513020519213851683686946357555994996423538072422660458334819941436821554545395117693153491051588517049370992763177671427276227792519938974108661605305242834994759223745774415525578695321121877247450448022222709531647024500340803872682431623353415903935282756761622464367778993536031961268792032396557930540009065118397984110135534566257096117720973582914001487398596221234765530501076451273679844405008115946878351356013604254698648778650653448813951698544481390737757821043281410930242427642031783961281375546530642954453077467306736394781615695313957864610775761386903794215915472490606583258037636932143370270859034688078244937986925434253072444369129164168569986015029357135949910331342731390969455273095124174525256530606813729448286635098898210275157782615169236780875383845052109415400922742636763492745100497191353567764564646804656055233556906160503930536730742253276481759539648063056773181202431164192854210542699129845337557410541534540108584086335307230223638771488398940878290627206044012166073041880055615690906967987357462569157624045456405814002976355490279692759190469886667843796645697110864085164405842684909162185695854034915034443886162660721338681586475055374143788564683696566221091591184331749643351521113778406469480761210376064818493389217568606089747865749097802051236300492959459219872646282876366518806146915868634979908961714979379660773469151706790198071897797205078798206012860096183706085420460959529813356074338782702834873563053724198807323751199652839873012293762410124569120041738822605574177210308803057984765311854749388616643606416035847480102276056255988835358272634030669802840693444825273498958367067262675312811268022252937583279914953338603874292745778704570087419766958435438961431014552002919124233756471762799758229387932871101121026951473073694146115340778077385339674588324183121679345808194300382805942706819542025422991520958980662934197315306521130188093233336673883644976919550505260136029093307309566005763173182109462669137957558344533381448244064010714909047127557387355724134079085927915642123965453987224065270384087444591102201632796042445564926375125231739810568989859754828372778564006694829945365863940629188674085527443313191757093477324727639538956273048191136517615043408467262679026337470130783956322436751171279413105319188162777345195080305153075472572753848833456433198229616935495831581250428242426620960484347138212404805789444005005127572987950867165148711683778826576973502230416291833059566131075729864306972018064635361975688947315085076892703378640414146988787280519396344500617579730702680003120003401194609467001596727161063335580566874842772814933057987315562717385104886743412775116205308920680362747559225362776778062552142534177882904847570389678772092594784909210289754010063160154592193555888249632640053673419290329789532598029177712997366785200145120690301968736162590022020728350899137558493619611228051331786268832388945501667034479983812705617289240501807963015567596544258024315954070225772900489577713105661313640187037265010732149029868861917721145171462082282827433845200298742441404526748015592573227148210334956584875217609131197467158969685043304177690690478922911603122005150763956994692915570306931800869829526526251009698859921155690496814646101972025864824496523428388786871704635177840703111995545855319173766742776915975630917678615711935898730938106190800328256448015883276107428515220721938739530544548352281439349145514423690059821913249385271451234560001437474124634026442961786761589210097407235395964652260232241483142189837656341130360408770730593928497693294076785521096491567326297642680823539505167981857370081087092994853617969628761821866511461924636835618369498417003706297776833772216435032667608916606547637160519004881501354189903436007153649429553239496982460358671569914497380823012053843915701632462749010342202990571487457068476318837043201754933097291309738357105653755656181216721640264308128039842548969672997515897454507713855952106383732883823866946865039847442320417306327516504634975270115109056452281730451548408163995520698147447516932882114572310601653110080116745253563135819298458496640125175331495604187357739025873012194106177554431167204713941991267273899838116001315420148719870927625229978877721186299355948070846328340703668860298990694578019490399335274571288149094356814922356921761034202855243692892670273717041892035455802044191817738914856879233169715219122878419277473739128068604993320502621347900589894643145454779767270463703217540006060182696796113561926517488807105229091399618171340439025666135906219050531546082549126637786863992531420881274812508399725610771388258230955887181487079145679560890490771304750003365721405358464872854471729456032179056373710783875241745589056430959066336304454656497203375725224910343085277955601607719356627795349472502291813079619653380280780913683182170618048781370329804094693100697158735870459691155015369268132423481224843734933814691339785330110117856872327247232382911746153971510116839457082312666740558818661262839644392278933559918806872622126903799641339841721276283310009003573767563200489436145104939464266036311614650551408041208257452830657305123527328006946357805218778564554184525884932920790925100438577766421738193753203485055670144907894134739056325308070586527817488218843809677695620872580032725495821272356921561336525563822542864160590012301335762932790682515320248089860858962101605253732108404947573198346448776987837006120891795338469651067713305397602606824325647166189884557791057462107524248871288416731223665586629540818641654948042671991594597874740686916838753324839126427317416256225519866730648631774259691148951688680965280645615390172354952565798432837412670797299113689374509202568349009456910310900397611962465850571083861032102317683609918329624155475359401312382604609805527049954212700987847560436511717731103580352739876048722924154032950732734196908713552391281258284832645241370673538293798422572357746264172752886952510448744512681090426463587214949552488666448541600919045096015580511363531690177914210210682724174954043955774738747372683338833256989776603401968024047062818513057763306639214233427898119972211982717424590343791138833246260237461580606469966150543732597459808343691822512376201624418461795302948166839479136915378889072289264092969634833405817153079785999016686725906397581049297640338956974990732189543711493541517036144400081304937801726565016238180401528278012990849562362211844403756238520442825059968039934390964012885103650576036818334221336524312881022494729237515595644977997845564728791504079554980731756057489962259916954695074249680826913289341801825014584340165840196450963530077929113598612299665422114255740144854483143473004055483408108917224477989680193328775063394996168364690606745185204471309269456993264757584526805229950584738995397690623934430000958952691221094904401594085245560088326557652716709807321455880121318332607722445697644497781398775290066276317480779961700829872985530505670976035309911953654942705552889528284312454802196599365474571263121551606786086451562916270421221976621883219329034308191466610219640559987821082146841348358421726679429805154531762006129409857005973385747138013942628938412622743206513627557790656309650908132158913879975152462528595811373322758204829284581021399676683397438195954701299641815614661298792119955050930920432692090177315876756028960935907769174274374104070639387520992667223192173053177736207580332106129210351676061034794413760809003343164518597996340102491312879500251849588357643148249727908659942329513247073088715944012136098636920340779869600700646574956478610254845417741856279734866713367596162350514071922520791972056514689007470065620758652368142779107792889766089500353852470718009103362864854472720805726904375070986679489496665498989032676553731785039713604625897422893810107630548284937244742218387383033837937482275996973118704986190488327325294178918278848746025531121611653239355525764856560548219984653842978648448622508934148001053972210228333922425875854809469012761781099256808551709560522372296225312481104351511059593105110823070157870335767570281024642099426036862829376336669830151006096458950153660260588250666095536594426670020750824304867772827838370910798680028531395463260399975665936009425183820616793040069958425504821691622991063506862601120628680163167884906205010987372528181680248119898834685189351150472181574795617168082706872745255489981782986287083483204420071200626740265303753291560920888042316313285291740327615568005294715029424967066279706657645716478095409058189413907658578306973594313445151724832361319210798307668700534920846840518749874369746593999970210027019233378302655950672599097039111334796398451413759714012059413115596724734804931655593961255391048139740552319579782140174875549780784938275172459526723150765764928712103224534330609961132088836756169238631445891109988281784266334270853138382992278246439047490569641733806564932992921468218434453750526494537076338303334408037764958446055808736418892984547438052968523239067971634356031802295236738360768669973972778174873071987464074388617775984535558772277709385512403141466637917001787516412169634209198318111051791249572053703561303410292138621370181065567251749909264981029381451891528703202065761445340139086027170320780165679500919888081843620701972169474056606684054154457609374882145304961527880168855427638277256678911569349234107937656722243165577317808006337076423644285181524109057778058396994495340397987610695126008445431393399642807203995475975918105238685967453345814794072366147551281033953871896486901571663183913590836370761912524158611821350138523469474605954359960441593437250870713593545285577609161540618482207149596060944143032799310065956652984947567786031163696619199494204644480781046756793572835529139255094598276247901072783510199971043514255865634749768285997046144275370805330347787973920816528167440846152405754660150543362188624960565355473381931594821932362205295402076695735881510517747165608986370435235237671269196099628684875688011330385434936967287471585111510058360114105025509437472016612057741504664517471731192936890482113244590883493526999273310091208618039584893028484000094159957253399522862639152730126937582635180197097326462645526725127115220303893284272330437771212777612097034917374486215022795761054566302554391889647549983447441008384527074459056477987952749212246464789834264196708258760964352257439114804520577870781276895989128520596206938243147928991659499552239151856307480720627975011614093006002271208256428398683760124863353839489487252229909128542281353556368971952353621775827851434396652549949684917966562103833021401816175270337833208322800683977270189286920046561581448761679649719941189582771119731379175273730840756073102099082642330108702703982021671418471918252058156869532251430096598272354631626510184993952833047860664796801030107866910422909680387833571622730561746908852020634415329631155329125441410881244073084451240085981909507083436246102953501629701110644030034081339639417578783588475549935048524035290161027405848202860965829465348877990065464866323831510876422595169710060904845366187621901563191989800238543783823252881339137361209072683177186501419110485741051908551503877148430359067248697765467918087461011616379972924908750350085669116589455515538291648178215396574343737102053042234625102037338085704748598386836724242695814941620900070569904133625530771659152833943818109675098488613582634728659315556925706270748223379673169931119215312221609067222555127971879343173654512798182119780308430386226126805633985817712273492826009860108129815448339630431361828616466544798042608165583356946996232192859025849426681132098007514860420517175280563524136089171041422593716081304312416136665695204680335180122369002819789184905042461777316360684313502800956651463949884311926358841361010580253505200658046888216704429504733966630584532435996197317679623568159346635227941726138552047012739516792245136509966992885240185436909858726765400285657224870895472125814369257745562687146645451039365425850103314823688388864055824061379941859607763875799796193794446020878488969078842560769695656413351638434638298317833851057134455164102710605603753920701803857442931972610028413322984624289814328541216974662323568349594954825770237493722843068130545320073379165462885273717901506703716107362534941258686340687779380592726683552820760091040059351370990875737569966875353179571758223187318172149469308341707803926838783141283269261650378528316738839265606952504058198397217415616009081130334677115821364133642305616649961409117535690448935747455879564192784139210001244844657544329841473576676489082704082215981707316177647315614172485045415923032675070034571999247302913417877072472090160500715395263658799289750583478835492638368683561267112903589129228893507870156102055147964974280290335900232488073985745524200256518533859146448092468860642296643961441395722586695959827836605100719510808817026232369200994529828309637152199578466949043504674136219636782908742764718203190822702670461349312687450319347541192905474502209147432236975146579049332848803678510620614563193172958682853936449616247564361444744103549798137627595840248834371481081511995135981616335589326094747327716635537597452180084018289840782422977652864372418804832594330126701902019960540574649811691044174756750169697390756892436880462390396217293441301649794490870292895490028279330362053212966196347775965099433578974080551688888868530544681299807430888633056421171826090179515879223158219615954282822495102656622515137868039381546469469158281140830746688467241898754604127000319864761816190815546562205965665009551957265341904203328686922329239807682712409204164816962600394650617768357534465205908058837991479512993203916249640943033814277539926337179642853886736822408341149009543092653268248033445247246341583868689836123852794982596939828510749783112337895524377429690403988099267530950965774935809345587719290058962874063841921538442494701081377653653670159868153453971497338588531111041452150037310274160264530107014556896927285651420746274475223425142095735394429485765681443615156353395778872066580571168393221068363329760662510032086379873484666666330947164490250457083899886310422131900824927697830714627039869087930971522255662025834924488997256862861039044627593793602129199063921944314314695090283303423627640254652098676105578150707322505055494784183236539155291610901826486567538863537659355105251178034712565274938965994048431798238899186065871083054570949040013375684715672184951820009913351590527517378430554995364000124982039471524657328187620539403008572878637711734429337558514189588328025001002433678550652936122787442767615523049807174219477255901639767667374318839073815071247498750916771611105731853417996803926106799638266400420435191471885500960911321083602145436561686494182269442317195103686143313802389747674248939424160076390269537464707080627339483090185923392355127252530691104629781921251731378248012539408808683232750060894036062101885173865231328283144472185408637714591701872228348604728654231317157761115144102142242793877147081218435172464174848748517048332424135173337331524509184109184692853963375215077509554306243415686494085492538156734842165762601600453118769402009018326503463725806740110452945686006329032006799552363965457430398860820510854279248344689669224629078193328033148464741823360518367454165886449611609965039831560573495229196164383723209052537282065009232319968679052813083086132801835549175733531832551576072204157753102749869182615645767471373612039514627726662295193579059359295029030001817107095232535817987986085166709481481617470265875894377478499387455329815236743955818276884332118008300439120405984986433069388276271700657579247660310046642357328192641863707667285374606192842808904938473760306826619369055237740460744481233429557149663735210897782068715424501335126998646945591401070643212310129844480056403605921111195878923697286097614693639265072737943700351456194492283798573415773942952781238756223682632813787477806852851792679018888633399468844224774450090100449141319370187288107737084947999814797553422733473353363499766086355936377151964365479306185094439778960544657662999422245961788610020574932131734220744452275401858217758562886442117243060557168738634936133889441768447106977231715902054531658385924530906091773872598497136954642661292120132700517426876179086380641362118736405284745557857335132816264998025160400885859345860361280218311698697791082517180497488893419983396098553508136172539341877377330115323468760681664012565068027886312831027373480600858768017619378174542891881478690833838443520498567444411708090013822442340517823883491008682272829239526686582965163516993902406564241638032852170967979198265746096339077098917598709474942415441101104215571882995777134741529963665428867230840443080095810705701387071812923440001288490641050763663452776974203340393271084978750945850699163211632331723884674958278786374864182075199598911470980492538609363480210587993243183244709011312065678452753699945841054006445835492973351546513405022596001962479802269488968546375391795514276660144562970845827478259733519756456099105185227029200316003939274741690946729386767125710415870651499864257226814726441024902152709938113763362119824189967863435593664970442012644690806394968907426895368902689440557125782825256389690572452703345064663015956993784343949856043637847907364956707463202653030334148451848262186370568116576221882708229838820273202108741637658076300226714273347757266567510642283661361555087465866592662688808169056110958421240608581293862151330788397881705657374117250541726763368604078808357077452100557179570340120275806778276612987030148923260483111383084836200949452141721835341313327462725090843186117496740092177326645199352550750975820710572769934712055173663484400963027258968528030302426510649202390616193891978838493094808908571918647367025053808712277462051520503927347284905614735886919711858681090283591964690285978739093401761950913189914917079880749082305826605243003204760725393384030773017096019297659402081802405038667931694692720176335979463685034808553128377100108085221535236757739188044337820307302717958255360534816781575954405021944674204091055208301441772692448181410204207712113104223419502806622740218770876135171608778945945568549911824695192324177481742906578963274530076069173646624446226603160582305516998240485387460901837127749594127557697170240477246411666970379824801523546529986576119542279112455640692780898570604582670052194059468571246596277146739508335464372507485935364203215755137122612748562156011832129623971739994796623393017570935782169279270911395837796788601927575989460528766733078428908288372490203709014658240763707261107391698342806181208428289916822609900448191492702386584084805305975850402007036157602901573682468095104610864543867557166485029402338832617360790601029350526176593363768897521415551199528320273963268440582365306501791510568378631406316986311048852256784022683004726598018864533852620640869110666659776499257063215712143869596736472194808551496059985513179977268349128870871063541996798101566895308330091336446338548199946976510677525186266127456513024524103245707080479234983436493150627943460603513652935953058836540522613377792507556228674041478745733808196831554173420406380756713923205572293495959175733676975463930939956118884767286967014427732597044000824292166509133629855497366236785061272035938910020766639210028435883204278272442253168430370928040850845036396763074181673789295496203931817166683147457058391583440902403503544184658227681992307647901581578902740841908145796068583361113894262939228564714512587782849787390210459709343018815302526499152038244523901957985160881518023450937801481113767833801728382718420303870874499364545506489076096190018804246663395171147095625531880880641208363049775195516772881385748438017229600347989143858444486504823926596036387211857675202329948813317090705900461397459332879952697345780143735383629371870584797804219076818625215275585928612374628349422029112319325643486195649858235622811385500775923236811451340358027545969874368809550251529536354061872783130069583659638579394166426068879558965019429774470012348830829721915777799365233750159495153137882829863901677740813549226797421346413489490527945807367386046722503921100943696374616774789267091982828238778342269113564942484374758761073646182768686822394903474588838919081350288566075777444762706028973719021944078260273797230716711503207173055000375824681577962501575945491174900943450842066029577428160510085541413806935327613148046108813936766868924205496127536803824778835795782941242861339271910706887635187080288633535008785473911363857083233092726077631446382993910916557201553918681621938581046573564409335807712220114433669073531290580278422436618049532969082406771915047945883745145291983424426584293790497167299880736985035061947322103244010361444842990526428035060242997723962604277997147151079097346134473941429121607072991642958596693390814001997461247385202841407919450878060660813620588632211378415962433044670705824252223654610282081642474484327705930789616683253326249340490054590992016110843566431977551816378595312310155785271924062122206663881768591752463431342516808019884141422722744680133600026215309742492764127396450782205701209876982193816037552702269154834609531657366047532902267334886768535770316472506822576098707097248201481448632100479041972632297654903697706480400913391665348373119066724003930083909468706486824854716377003964287191174399857077721552262577574011416633745577777737444607108235563460353361438759124656411350650178938869593990473564737112285587233851916287739758961821845929573507938931068218219142886951725538083677739231901907954508077471832425212301747784133290466772362050772713459153729984845764051006738713367764864417259770775703490531383748385651114126020646052327094879452092311452265994063317053343622903159656030337618518294615342015703653372856980093241555026455133867123406230714370319412935558625789061676740102174318768891467200095426590984653240920492007108122180847468149191506144827897006279180940993205008127816813195640465880309579874734257524803234062810770995613146754164079939900188679173221777896503498216897103805231785002198308621372876459133294092770779114595579347025302968073807769802108637889804466270723792863713969382059672576025340699088606636922589257187263324090042758992992770107694077044999303830647785291076160737184003785177666794052029162872856170838288082689123512092617559137040324132881230242669515258644845265774756860557068219029936708310907710383411784496643625100982865653432014989759791108705714598327527242117850450176613102533502407980665923822846520630568605199368012671628296813645454883436367776515064721887520086552893201464661312810143074002424294411101171529023869987526569862436072506957037162919490302619188670139877910563686954214628294029228046745827175846473921538840481934884792865729403548817957134518113815434622968427439804382139826716130554329730286208284752058964634883600609914670269168627532048289483629748709144181276867165187330934486101106933710839762858721051677211552194878202984256311642426288934113304201578567027734163602168872301202006992233259152439777500183024820932700380601881615879912026471468012043840321808853118789669635602815055795140605859733187272607859411864423683834095350103120183939852342584452075456199394918774142584447033652316283041912634540377407735188366571248269308255478696012988019714476615366359371978615591273103047042364076918984997014333602748250941631498562954262148063324222282458853189091376345563984011289716155210558675842878548353863538649267512295096507423539569485892348829667532351945523984717436015138199557822186133314442740502306682248114089140137080903759616241861414298195649242415743910826752108503168933324723472624773012553596981309314733913457536076423387085884378761283826700218739183524082215806224837664133304309301583666417177689941109347656564173577184057595504715062657269721795644315425282465301261250723943946397368816895691297260676618016357240385982371936565835754707533939522283611346412566537614492708725579101013842442877179678462458477263370986063020112193201760616962642787231635694733389934768221363691030025538866503039067164558792991065735021120995433026500078704508423186300965061708656089636754145214449425166354952984182876785725438540046337178678735171175091539929698644576513946505974536514890468382669849663732070439053246406235587100927571836220922331484787439714952311192889587730686095786745310735630542752517098570529288305284584582394324346068834089988641631951457932693753417814343775972611205484361546122246254759326087511046281274773786183727543496033783079731509397557334239214167573389132263593491114870445940829306622851280095536448898313660608135867546896826038452913807600004196706233100650352911041915780129828015347119722304833582610029178244426279412743667069853162645398104619637369945377710550379745057753542337357662096721453198069584527565760224806550866887675613931483329716811323227265653210538028672070586447846236124425862443540533458711987689695610657177507252572393593908717343584889201778727862885220908016376126194377318819749592422304733069008978421014670397846785494081300610586212921216020905263334228211832402105903160834464600125484239482825306123754823228493351043600924528171527254083721640441211140191519770708687952012821320247381923955987695983676979790822764974824401395801476599221187039899978164448824138933370794008628365623263746374254033917159614490363685150290857769703995568619779998915735507561496653650914387916469319661395752501310585733411042469381539511851721941510581901200951804820333144731576933805266929888175802770751435318523362564530376901560728535025137727973388489548169106880082235396953441992728648679832166521589581529427917001638139892237743554747949610825150320097225321517533370077349201239082530274901166764677780894540592950065626009045811627371917189764611877118999538418271284545614729689533129531961499969460332234915027262727031088907150554728250876020125842146305163925540834560191608647145769982879321171074528884082412176657876039863459957323556876908434961182191164633687392923030896624521511133755354627808058697232275443356309083089885597692861732040229680604107499149867903557224140206637409922220362173120628408161713545998660312305504749751246098474387464851765489112794470741829291690972335906982997591370442179763602811184179743310924490457895409823019739592458727875271158438401627418929096729884158217430715842460967424222294022488290388865639334689893025400302726727892831050579388344729923084880812753861677137988449882601554365467685867508133138837896190843144103658289324395822234440123788526532634912231463598644393754495722349762141236106521202837687573549853177719958047470600254064074307111861304049391823880100750062184802621089498668487444006733265971579847397479203126444590840219436002969305039346987963419504518716959927157968224762493240587992934469926710261154965474634214226536447193748674887855219881214014146589717281202735912644369560950750025761169715130923876355842820831623285177594889439890850241802931170082750676678142655769743155042007542202091989375704774150839437341152339280846695050752074929945867568161090124021352824054366091434421163571827233943824394508133479157043444051894223881461851458078388761997077114872986303364539292270432440621618516616408928003807041839749481974504791098374994722689952199665666991653759230880881657648191819914110538128429163303563029812823605433393062866719655656139626551325534497858469733577074137990577747225210901481005845695970937688036251913654286446232942750598110914768130786829480071713623896960366789032651674124415075233760399429785114606226128330245209428591217992267706649995173378328912894193542309012641424847241364647566576744533366133514123779591978640530811645894021597290734053421740236123383852941264288268790527155692324404028652591147931380020489655901080068733899800065730409466140262216445975193727497147391016140881626612303157087485361012724660964324440901606958062444881613775429116229274125625912262966840495238810038304250843440571334932593311340911013786359451496101222922574733088944627329723585990890994886296706539853318714295492394729929467407256698521217331176331085867845044365813169852869867890348668610551576991231572457523762996939975979362827385100270231718786987397867938483199359477917864807724827735369740209701703357984673802862419973520633618598231443870684473029393841249919596667200150413989629638324149170567417607540558986894905503834285647650733817367170125505201660816575358227195995737699636814360615971502065679816730223471894068325251879299045790621984090753933226183641086202938542755998225422311471319726841532595487412680586353395685118916493699030822061890528003691325599812649108551387652172126593028448686870994180717055568208137087728563255374688218936979278525176029540380056078343016937934734940828917488080094622301448898953988502485878194838589847499684902382095749728349887150584319465056924411001739691246001879321351438759606214009592786016125321877341571841244148495225744816247850775597589944748260661098929563778520637060838354500148282194589031586431151047921905293891312825162097026407168879357842752870549481611424921627864446224749725917219288053411049014509808357899519243570680620817373279901432812888189329140666150198104028829791312289871253420777388534160958620773960446099597313597667102046649624564722698182888118031851908010486499718470574197664460391233423102159500105895233271620385913665309833060546190084904749563030455025352098212917540566819413446483161784130316222306470377731784181640931403838613462416811409765081550381459342885906970447257399629192380169865395746215361190980035132701205716357715395134927531531482130384724938678863669421396661069859189422265233805456597421145198828225902320846366041603690213964830692339270941374824834726289284417898269666449848567995032621053903502649602160182716625851213330705940351468702369440654606501165263203780416207548992993019251992946340021902658348213482453002333027862209863073632206128042374672993138739189028639228985859648698561432016278250290157884693891590587655956379557674383347163992489859250076335697660820349443119736206667671404618501879210831398145546100893801585643422644808837306283813194716895316089458253912686901481822140384505292618864994217422774750537293093238646762753677910135810029312837181723522531797793649707347093876785305257007698900663922068978751867814532949044927213838496006860967490621055870758205541395205498225388559616127820225627947717575748387394455894189438328318030350511311991949261143061964180313586656904126626990991865682909342588959922716853502242696087195839521390740336282972005856073444835019986811732155844332764934055908623045148570340549310568220539046819254368200273457545872444258281431256064148516991183296858889170300336240006260793877010496096065458566229282644574765997281410423104149457146133169051485425706715068728527454142265178881075800505429443853777769627792164584533728803955612660894543043986680294473982182579586738064829040615820054234946300875259689011337913625416973193077728537756932125423170215557613559812945707906435197139436923473687443637254395343337464287283452035754134525501544751686386723443227653303373512421606915482077337125021258626636646687042909255455249890250112112928218038317963670500985542872307132029763966561142834234153822478648918244413705253866235691323435691714875017744812626906003611004231746980759821865149862609892851118699012891433645838797345513331909779931766685316705022243004683029875823171584978367043766435823658698444851634466203094359693631785346485792305279757549872920208961804346735304771278799596184150449594303130508465388390812617129764812566892160687060386274522741598160126508520979695694570669995401733332276238007762682830821879143809925688701375585953074128675987176850226439558572537109339968960465682653533742730914573405518897909725397435618511272440327532466608706228530611717844799123432235965474160104934673217276436894453706547042852143526272036036110392582285816854757428347218503708528207547552962155144097311938405956942847298344253287516034890183784114114522257118812280529856477850947921785422910976336743868351489270053465874031694504644164761173318829091548334540770380300820840189378855406215909849906071123237593714783790254180677428537818252241649126942998749307512789098829535094316836172756887328746830237780896393112994604628532389983399208632921906434555245358614683345940302602918015468312128084110912872609936966926962129777555756494280976458579980011559232365226193951285319317779861437355061646767508759719759449819520190726882088440876050840184306333183357768769697617322100818451495794163029127088170375696009966534819811487567790733093460879306745983802776331240616876373872850615883108222827321072533219903464832434954770160641798198087536785528932702267111389782184486998500402598625801254523583580650876401825085790592569322510363348971922833929628732904589836808222255716116508268584666826841071759618837600655653476019851952024084897842152239718534026881114327799649177658604423146020982139631721297711101413670132292187781094800838509590746147324583063827082221194106814100964497597199453263537924161159025332447812803202014726146955250971425340172734957414190491924799802765830595729227363159292793561982422975066569672117241877771075981245262317614795347220627080459551869040326777652426479096527595921416309447880544797826006455449539771428177887168478415685808876393737453498644022615751554947005116754729708571624909587725630156571717746833616850487973723388424887516588192964059528387533968562298496363847785092927620931207645552143407321977251952310124493076978888546883610470039790578961988094143405794022558569613448826618399006136145358798835688293502911515904684167750708032258292663885937880354140597037503001000858838922164239807254153464765557735718312716450754739578244715063083134200582247416573855849430941862198256579690951616466626125264026772676201641660053912988808407383458574621625878696965252994001301682047939453403786197657616242032990580439383199305304023484446662754482261055997044591855045608269698378787197495078560332113183652775809755603244725014703178819246000465413258658584341242770723127880078445358413369910529724556287455875112975797422048814293234127921237222290644530808129083371068866483181608613576462877916051920771364151437381138296171993996945765167438190529729954898242668100182551109427168290433619879629561760763406051219484618698736836881545328543438767581208974455800844019396113425546704369718784256034886473618998446861631543108403536483238156273687851052944838545600819338096734824259196113715643833943366756261765575938029215442439940421734497143590402982964389492784602895957252909970892459750610994689793658464808346364642003383063472351551835597833270420825521695622957275189077844005449868507634131029053301050143623960455754189669123470117147370934245933595316324481827175641933922118530527498924402884036453657975038669203926317889236175611243875520114083375428685646781977532505308017392975616660271712024920950729366904167143157291294313326377449871470169331129759005490803170327520023433016484016786245635685005834544023253259614236270058814383580794758632369656542191168037858596602137185308022676668142281471785206467398715874460175249877219162891283965365876382905544811583063331452902859770619475067821748877375194098379650554780655824024576989499824219264259178165844982760281294094240004390903361808926240759184927694870296680336056370268936509845799152375803597007170008267547802036333705178539850819064515578216282756545908387471576777611463933538296877867824535252910017767489793702266855955931599091902411071877230330242940023275202162102531545129410168713052774371970838835585143991165032947381829361398798196729055591904986477591366873310406383777717124954026069027171459577243060939549348265067484883961371225070665368478663686728132609922357581192290636597442074254716809459884093140551983432063571719157147627209495850067039823205433771678619517795049065828464012391459318463769698711031649330382513813188380570028943258373377605334908719621915183947737103899420712183014296620785943184461284994987670766601296813147219136453714985107518896339274580160379226965792344159480776350799351031938911116966495632936400876950772994265942995891711208461973628975794121536315202008179799092904844443546100132234087024290403252136608537229168943754227532858376344375647574683404305905086093984075720327688130233313491093917660533019283269707570255292905785616764691199563134321625068443333571289876997640011828708469738161045074974476704709641462131917304638716628365679000651880310550453242924977129363689825711598754110990988156988471627775395772223665579520189416928998009214601176636294725725226698492724380775177996330204892673513490160088851764580934377685468240442102604427757371620103934083535662534761204167906290540715573423593483384431755568218284698612326927721599716872469265417324852268154341813886844489725733538559976159181039958691312754324508971676236174533242573818211054473902110941333040500951115192119125013945889436450771086981129360359758088370279388998778797522754327812610950135771511688634959834148919961101393562356852033985104879211075752837543631837313157823165740724077722089709132952516501667482903691943706305147281012663617760313069673833746443906113771157885181348399707678726626248468427574881823270106211019471636214476785276911051847234124977620519209902013995083959521952702854024598666281704346883985682596136608233135806936149175568719598956505077796727631658000011117582760938095598912873192525439828052588377242489024241549865104152757634497558704409283335820810359467930724331524798156504640290899883148973446079677337552344643529814481148920398789316863998392329365187324008498710967719054389721949653166412963431337854979917234580292395872968491816189795190906164893877655942048575555945611317693935125352594589042899698349804797376700104337189229497803677047067032680840142299732784626947812995494749001446481192820614611410027596718657951349721868960636991981783768007156188822268830873379388710985456579411268471736857653934247806624765696774230734523204176809418150748967063174440793093335058996267350438933574609171672233704082551283420337469328210020708420636356281058001744518621132863988831082559461761928014930994122491546191999574079150380185337665139320741604956101785519777069253875143069379893622081341485010657986060356697487053909661105826939382702921016871352714410891588327647258620271956616426379221632551984972803712007425968328748436006071575019504934437405538165947467667959790777194413533867897606463759799895563098728775852238187020389948816932145515950998326984233484484243462309125774556621313176543002126404835903311921530764173136907179193349974990277982838085885441621651843268131180414096636887313795421124775229094768065949522382662809273151566092093426561004888590565379248097171848147662962594784452531577576162280762657440375669137330155708894276090180083947927317412496160797152863675775084158766435387864950419408996693222664457585134828659102263752063062931211042941293119491504571738251847308800909098379765327582141582164876296528024301284528660043468651676683015763600660252650389179328674802637060427044644230151701684928511853479791421250171113877860420357321431986732546095768221300796771331740866801583596635684669764796316095529787835081417553167097186262339804734762943003739907683945549366315403728960478539190299621927793204334884930691300009424148982873879497394316735029279649651799286705281625594902096065125033066978287709773222477833372039058326856073806156715215083693353349545817032532620434155413947105405187406018901861852473322119816408809741233511119945680552089499138774068628429127314248539519561400109280840065255598372580136476110210105995730229679563057145491408784549453035753964823687484001059034012802858078144861522642492984074599209075597941617139995106206963728180499078622680689302404645324789132818801877904865733741322071984380319212395095093399599976734714813366623968881417894823498596680401769096135267407667009331246285335565267548055062786147185974059427953845420743849335203170034764379975208226997056520775871215865379015375244475661281502235410596156453749368353545474192061868892300566882984007078524382327812918365246790287387849196292370256487393654487286559983812327562940434135557475579708464592549276221392648273287196248317613989723557717963594056552401557552022684414415044581747795473468979317163815443251292133807688195060747112830480684847943801560695080065967592092828927766594829845152272308200649636604819098260807425234250380257362120706728447409230218990902339490353437757360057399958367384480474675788391576194923805124707469553588998745361175213617746399142401599774665715315932050971532766438849735920058041778620492037410842478946992861662941071717274180974991648793504914965060144653108298887571285390011573173660727520290508031252136225555446294701581594737445510742045948160875407184366384915621520540947769324381533424433992294241419403998302316554893003019211570439516940231371535052630262959255988180904811900019387634319214654238182409416331671615594577920533782249610602063678456225463388781001728327326002369160208330440356065843914441072369995018064217826305410814318326179589274195608483767082348108070355614258250369458529740770862464815039608630277079736345995473170710999450290409935960952233900865860266551241744154085717944190790509837857227266568630912552352921978034012504619434578467801972811992920650556426011522220607123115981205719234053890211219788637545877798225166611315753271206284425971898943278816608260090792927542213461570202940899342328848591623023879905145518385511545532200980670223852693093629023823794880396355718508350961635926957478722053391542421824470758260330806656471275602144200524663969302970997218410576222426858370469265748308623019885531808707939093734425414453703330699590303463117590135732346696961468488303547958788341964148409000001754333743365104917451450437242580957242470090290086924768707463921521991305711730549928349853082309739701991226073745079170710766040213675898591732343701132302298414485849762159866866940059362779003362601622487606955933983293725187280525841459352115994357124058127511259180241677499055311086406137679442280611302669030931356749301125713454302546180927914084950375366177181678668768487455794078839480864621993785825603393736730470602232738573941597757515979204354065136587644622795252321396786489299183926453230820540846478698761481318002853172383985239338909523454215676815268895731251838448018871794293936161763441898852318551421386642615767112669122563370526914553582008934730384584548029811783567164761437934631175852105834756278609784508165610191283886439450864823383371337993315699040394526646551036180342000981178000592075586655931559218029321378563584863508340485257632695874033729769650289454330086028112534837865267576404304641780761144316349251684238739257236079363475727854419463913795423852205793208955782031293629634826821755240628698114063991151217270275066691023786917468449069069887583673289770693662302785473058068075362680002523960889847457004852351031628597628122394053019537031293351396838704321702934233449131597415576801852331186894061520858139246752639834393535828062722760684581144100673935361657740331977878797904317224113166370263573412979739078950797910409238610618366224525233534289840909284449150734969638617226269967344798902159858980582119501342026263931105761737531330106642123916995221981786705225391799700295516163075703994395920766931351248989880024360380756832270422883814610197737889055753284071656068849810065900865713951689167725971923822055046314085530462828121164041722203698987775395227610333480104249778581145013496807013807663022574052032142482920469619978299092417892393827126770923452582503548939823397362699572233877806164006765119707145373108605407747051297966614488186922704009967753237044408857303881526695898773536211685531686321896650534143675196976093767290522141112003863938832406719597821388486151965087601314146777581457467212460016049100336002657206052457693206384027722030711970376336923117001517669638935462238083473936919046147915821633177670870871378129619732169908117425826930778590009311548440099867853278612374959860576471709658303160586542741213204762271075809468437274240004368022805335772346667333579372369476043469033094884405978783972249097170790968249626014057365884249114280076686921961403491113090304226588145478562785445122082624459534402474604343783792413956596467958380931686087075392502880305535063008862027150810938429503986009189896966886826702502486094985154322994197311223553232474054464080733481922049137667476477878885837819127577932210939722312470611451225897458666104059837199323484340115674751186620776774842709515379511069700234952690999650129855396272160701198701131450700820684899761272437756749151220615330815933861223938239563942747636710320407614036066561045408068976285189413660268877252535819380003528476188239316114076208890143695076084776035067946229720714692198620523621951697217587411163819566431494521787898958438618243146720058415468494561674769755943427029350487044585762147027916509826155234713205940937474495119763835269986882319591904358064915015138359488564122901534772253466584892984286769393195065317302716114721297674193356435005659448514998700522727102281327538066319990467582822642009339297990451607009610021251426382024350629336796706330204991828266256420495949817826533072206239608571467593085079862764464831337856526277405270223178711894784683032098285882314354527272382436138430341388103636698331844185563503217599874752759821089775773647652799945961342718518893944983533471696611675044599044128950744434497617177252579617418835570252059488095601264980842590824065580233045816686386690001750860919852854089728561957817184718537651223831568318556154304444107914257240789729485524618449465108872643439512174757257998552213018351655616557271373174796991011028120892239947610288603898374614581204745337249750643168797179509176210866154698461808143977998132701393945556756685302612864732464522873627114255732392602851647890918820510515443443031317462586259102322978475053306454639225672934909059759298564762778312413194850364701928505680062546994489495931024644801710745251516941479847547626919568368253594353919289292055414073324107593076767357889175266652546646748069550028259204398282281355660127576356084498525134445810092482555755527913501401061113689443888927319376240112313560727230862014388457179326824666251888503370427841729050186156214802144835117621081924974336144624280390551628464010355801564697553729412867506786952616439319023027902420377106263889115337656030769501527221456829962102143585259172974340866107387967940905026895959256097990032479430509004375121229749175581777681189364543056835329912287455544486936392611934713439957266110387698136897827737042258751849996841316222755301936162729008772097687428418889638301802327062025564182009521340900218126888972057400725260094969372477847475918199537129137313312450764375176834037864385789435222428826440078342173637333863869268612586878162855406108587415665049542362015696966608651385032970520725195592871524740801463128057968977586991682169355631587343816962909327788527580685183678029375479001411898095907257813509520060319741673227925736028245424028869006174741006556028168978498932042181442189318548110805501907120426617804120425580094387548075504250625254389228301467915778789650652223540307334075521760514706076445596466976386264883636855985868861591289718423910418478982869986412970119351338570167424046204085209353791919500963022090847782808047530724023841316418716069662464651216933276812847630048667511673539754239546534735924913220194187455975377638869796261286618995212381052358617616466881316289787338246169498794446455601598181804102071368002706421641347059484593665082367725158166247818549194681614408841662726625963010669911510540523378340345161393899458127885665381550595629533713790820412490378902519788929120374759340756359314622626824466153975041400862459659766693034645633259617228302766916444981714875095531374343423387800389298152151075538142709981397733657420503136945677241730827543457724611266943448658152514511193795805198877237075260661139586907304205398976510764562910287791708007342745077459323561144119914820502671388673814727202020398035831880373103732018618864304523390758356693158543333543216188572816740392960502837334623655144984684098349452133343240835513906898118504020977998318310424758030858030482957481154815390187015431732997870953348829889327742049381648534175405965997976593224003855740864678527880834887192869222911343329498233708997150272425817003023819774565095801500235059436131776059304071267396345403619621753026942220948716031266059035087312038778692101099544620328003855824683580762977081136269567829186458729634325903551884220713768600150837960154420315957817732424756479667874916606649828037094139316574382408306866725441894156730953408441285216519913162466331665186292426122309056651710931195687962808279311619344154681354636561777727998068712633432182460952799443820159224980487379855570863918284643624050829675132040046230363919539937750178454617864494831500758290014263297307779924294027606213115728549272365933294947015501820020483579110185284882892835139286588275188304567845437956044297752434105767013700272434192984646489606361200742667202730615443460852344679823940439438882459349123514020769631777299479216923715117116492036151392830986922454855844033363348736311419531140660832364749751362907260633296783664803639544907381482713966636371633639880384026278851850315986714294206831566116031525870712047072452106937546836136159393822598534192903251754107593644553731700728318561728658102476958532039284301219632035026996482204021498967497642477125054318741442460050827843824695680484312246443662210757755551012535256654885052240380956456440701640670744709332425409803417798251411450518302183961875829485761542432967783833923770140380768148029884303820702938333800659787960127612288707131595601086116149867273617250364382402817756982484257985802395489611203955199841946073693712133202664895194208665951127286145586204841940903660186962126331666324963315654497791164893830063828560649725999707015910732398393878027314645638912902606387160358826474628367872439994698608856031252121633615855181092359541160518747385720348944003143905531933044379311283134119314630264276653087032254861262901208670630013874643677003439937759792905645636978785117907399588753325131931477956269232367716654504522428318418728188216370898500180110002374874329245567252469450132273768216656213910430878838961324505359640212125627901988570627844867530914994120216784420707200568500324528419016045665491005259592138478662227821487799566414067516852233673118506259099810852422291309139223921387364631428435385141748663727726666992684789443626130271306728725770567723828462809319686240320428302225173075682062771027662082059001973916297913580653954557498480847853888526079343947337771555538122326373589107326793930276148134217156968564466413864826022256467261725463081726878336504305859627832497388489319167358142885449173025074519670854382765581406991012488488587140367121719502992391445504915093733136761158104905483324272367557593271641380939735204375278134156770664244201196417601211619688250606778593450507798096327327085847444495042526358323402640403106088628141184769931482538637004813692297706302740503770620794714753285911222362993515853492458348234240659271995936365551205990743283564168977933034595849496419163609647919166758176411614561774431288206205024107000528238206118915543867988604321477169957740094323283410570906065010221560556855679594490537013902541445792003694277168417405296329671488831214722234472634493616396365507434911251238686127975839701010642661918666254973194482056396074783069055806639550588247039008047495122183757590184286857956032808738853562904583659743445922773253883444962049067562618652833798824357878892170653709912982679144996614827538712957153736450115968470986818998055172299751123977852848645084248775687772479598216593421946395796229539256671788599199026634743801635976935427773138718465483553362296086497749095376658967402267398819644519499651441586808549156376960471907543975685725273993063506998447461274610500142454586830002436379719769706891770112454583405817063362583485676086658721291463589076377151357978971590922957963004032129179187155008220948766433517640186028483516772086012034309662071533025306616460082837151983459208522293982100079621647833344459673803845313815208926668726186383147215487644210081818202283385896821398719765979192573824311678614976323162584156632039108720658255101957619598590942211024781313252693592017427758689294193886083666879309266450641650893903427473805265220181610376776532881465526872970817549688812346299025340414033276638122213240435518033061477431537838201963023493761129719152768402451096840252048770918394039960244164660785878636059134737375638814483835361263511738118998743112595914829438311485478145904480117783257347269973864158889378986281482374185025406889013011668109953186095611548079508741042559710963271984366411348193745892714286280855345807145517414625550983918157767804128820465443061311535157695974874776872072969354670732303776411114965756236807327873529988970718714017347379019794981860927020025030264064383697879650580644608668285283161765519126234749061816411176334785641439588179509460863137431218315215291406353674457243913431691778270968077616549994129536461585261566570759666564211209445774100201689138846772375829962220116678379481849971642404564063442476540261712419576836372082784409442813755076026569156798186117077069211320456329203519434189761015075340240235215674366884876769214284095712371664243960815565083267760266304736522294012296707597347352375357178469308690145478061303094138048573047284302104030037123567659884705378132381008463687485131982703750541842574902431092772358118583870806928915166264266076519857849883497251579842275930175155396194958589569800993136954834388236730211652169303132166010383901289481922885415001020612768480044773762146679908832885974193358348585562403660819923341080340388076083296609502332808892350519265934448075761994842284409604193394175544791497409010943562026979450992031113377123343041646932591414272664342123767588655965582096728833301779012475175010308601970348471489791979458896818008481398686731513415563421402045409282565518068287637396673806051925091274754682535714395474109289997101345966305179864335644201106729847803869628255297882048072726366957023243540276090260989810526453109004900655590494036957791508602021549905307083048902482719753616571018886748165159674131977369884829734083218949770030150768166094894020719477209225973999260191242494063762512635363666516664732194802215918526383270797914352175069798780226047044212397519011090375948805007022224195748766031552633335736449752474188760487533593296643539495129917388456306031400252052115250701279388503321713011573201966023427820695014868321454405183217591523840774804827898490546179802819117765641161953174086629673973265951020197307911713477456692825134522360784421737368733876634495777901381051996925004391724956150731453776574218970972410750958871409483227847070972758020738368597647647840705863694623955288896858953656506727538814396052263394120112768947628169440178665591763264284644625567563704259161796515642095898097982418153967059000616763580126409079722169809201781801454072317466231564414301241915030230101473679850861995493150260019891860137958108313086717227799603716354921677965598500260294198979318331975931378022349803445048330223495177802574663940738493236063968096478588592685973773122729551446805322382028252842043981984008750211000649021599154781822918436276789255037244948925117289428955972086251579597472231350699795364331610291379707186600981948869351474263257541804101385818278149592136064353387193547979432291815262416928825957691549701684457887519488354834811220934921339722972149355711937072730335832682209796401729904278342359281193319128803489717715449338284551354102089140539044563773027410987820422774273890140534460482103347534058679778555817390712685176853245145666147077343904183298218364923028190183377934470962623097939413258005061581477084281377227049612416206365961359012623819163160177928296494201341901443934232726724714802414665076308742376768950790747561725611130952068225226527104192724472367852320030857797707038907144493886165363718940167546328617318013578027813470926222938248640694254774650845971471417517419425935416967979220795611377974097505821861733494152627779178358965681535144995057016711226739632236262286755236012318123251730798210974683795150069940313196055424030811464133842336173941596855510120903214153371771666343822361987479460801711700674525438018347933124084713699292524500950184083587773664439767420548906933259696784632490429207127749112387780732198797087821402094237831156286319865705219132723540410558937632088605182905038677311164233019323757593906890347383148484017855274740356330649719016198687480385786997733249719864328020807854506383636157680852147552304781248400342640562250745374988737088523891903008589585809602441470080344973461205217006614686080189929114467453362368757400271861184201693149765801054643502105802757136898008006724741311512012950529291177974066186243439037027646038624327517706196040464580538278261438636082637360441461747384439745433381432180009037896204186720695478626641211171617690010895026891541888327100706981097482786696832900518189036385241775120356952429658059597204940383204184997731284122186000973218839517664812382560784919475021574671064062571223229933396787145695383177410709400442222758162110996502577504885589622587925654011494768210663697466225100182757709511038659714284525589355128644926974198631963227669996299486956659497262303094034680727722242348700081550880189005156438272284612939495595201255501200067851086213382689371268732464779356913646658936913494969019764346386627088590267581186161009740634479208329956480535840157553037324100035331012184230609425049272170487316634777343104128522439237187841011412965427134458392613800019903079018996323466838084334883364836809277491185946480502923555875525557508531809208264545503402907969278204080907336759101526038996257963408484380674806802202803054622692428125942553095149210463199187454237970930154747759448340182240124172012866629501933570365777249841450021447429595841492720227211562613226136831201812805480973859595249097449248059671307349951845101512131426573555677094120500690279445377421081408511461886332074233482137148921202237038182697910900578517383864631802173086189225193987724494395721591482436884687579511172094839381590564139821235655357329867872968399967442718155479776024245821204144462048875861726605838887813606956331047400992449417721020858682695054675334439565837634351138384030323269935608840012172432776071982887223927501143736145649615635793919630330476936689321365411685122588597359953666307973723949113130064154630824993407228192269170515401603547507115195343233528297578505217293719952776397029398263163950165173141172873991415092905407830503881705888588149450068780016292263223933039161589238695091956649732798241535965793822116763409485209844315398222378319587890784772076777545586708560968089936803163733114687927970122661271944020663554600276599897127171558527509960870247377874100546981510248622537671143814269287923680072485323382808331764111146796589071249991126241094827731374606706395722202355454695270031339848596313991877355333474123832724367345051252048887054585932681293960764063357017061404504353773192690298722190063333798453299913268001979489401885701642018539485164578909905696954095564629187782073689799785914973483154324311419296202701953937094396117473341801350407391024569002385770550498159949940255815442535421290281079615824390409619233678882229874475402528528317689311290986021541748925279137177641850098470931621112740283872229164134211647478464805590159871212396630160468516246541773704528238671073607481425783706011967431471900809303499297418813688127831841483305940452607723820666072338367766686650788722608259767458276605852634443853832885548006417013275507006132864552620136518707984553385074324843025847990889342967106427736935469578476359133498530197891014715247125090323771394448878982388745824576867377311341375848999847811455305718031041565788589259365461760654791025317306019061096881662846686974494817561197110451191832654039330830302927195112197635553000882444055600382376895976557200041990530065083779584845590364997923757190153362856781648842140427866190607220665093406829249993219033140627315492330405644911789723435187101026592368462808627520602876788579985701475284393353229435611721566956125142365256083352851174376063611577164163925883575559582010034406608649463925512043954971579948824469401658392270082079002295939986355250262778914511193871162538401324970689646252888372759046197365864784566147352133552806587088249909534884280504071460526439571205125481413670271255328590120080819599835274389505115211388495144323679091098301984501681709383750670879673467497175030327361605779867916455691060857316046067948499492391429323746749225868570057021138951325083725138709080007280532657257455025199685844564869988221455894826841925087491749137126476456601340150346144953851432163696277085431480326673414224283251084848997422392846517359840032933448081322752448106954679870875195924195220620963504293810227061836236938210230075552103229054412840672077866533590093309176733506805544636621381446924105216547149087273537852647856563251312941433526635864225378616075862034117664376689035400844574252886213116456420882424564930092059854076708116873752084801662858610079099820652624117218235323765230662455552885421881163741788483947820089246527403948955299466096437995880595859620270513549540691686419939724859790662225870121030513730663654975041862275453772559167568346942765357905854714883790835975300669564003762409939325838663971414327953449564092589646110290333602556663976596439779139963541485922712658510119587659086369455518429436911935919178352221490960980624935324695885463154931962631848426411854744702436205699770720698396617745628334727088378543649757783989714670584980477061405748071907298868942105062695049379561541102819448876477917298942851492514672939508559763562614926838056760834130083745045507660787559213834509624758317538200672869322912194316275391010046222824354004359400523601403256361251477372464783263411195807702596353979314455616189374767425580382565932498273831404912694396768701673057784087717752421471001902517186405430761391898398869625514807050428793947995071533552804508696241001634722042977259578761685810266062121341481610689273902612054541004309639908181716241993930791127246337217388333543512943436848757138994263471884759299605356152442493241666984921777335378961565650702796187797122940493585609999030742883871256374048729241023408220486153723934787683536785354095846797348195148314661953774906147899822184219430971801367287515336148599078947334317075021249876269060704365152839776338556713546090410168543056700817702357895424059686521231099279569757684360519788292132644478788874045639985193996662133734278103286253870630098592445867823392765549370642649196224012554318413622117742502044332376370403586720026549758996000244697095416971699063720667125786315427977008533576585524097547056024549319150002978731122702874501431279080241962873354984010621157438504626529726979802478653260384691845002032931519287817437791898507243954221030100728359374481942320928575536496143644108661252184459578965748487782868318847655487124041414369115574136324238161176133504867743739085530233877779702522284316042995591777667531927864835035677688172195392792999931052872857993067980136653006020574408367963618617648651531713289585538925891392476061896318917944438771906441030165073683448004875800375335036515621612043805644221539326498353251295811529413791551892752343212044642118668466360219197230158815392502409175116776785960538222612254353252833651689373248498349516290594467506140799433716963912737791967890008516216711389684679247652673698014365534829372376473659468700560853132630031479747420775974920090256789072018820844412970007002324369703924725263906113064535116782678439327223648021641812835903315538126670680923943986157167453303831804007744799085938489154438020645238867685225384920663275156352397759191478513800425563213708317061184668708682756189944484566236432297308477769235342639679294163026123496703365004047955217526842635653488805005634949489517639856344334836166660396682581776177203930555774979155567376482315410186561934198622002339398640086696970457728804307600054023625293533160594519358238342167249249823092685706341360509102614337591960474045475052117146020072937537619255185529020834180222713025651457782534410990221099195579109620975949276758403294711613594489840821080140307287557529296557487812183102366745829774025099343123218262671342033922453378819488081116261148648107511127170192760481384776559229685998971128967808802762502367320975846696783952200252647836770143290314079768907096809751567510642499396759012011727860574223028357944705381532384809474543445320642600781418860422709552886602563735714774859444106887782912057963094395218154182168528231012296424070272905102488190513415819607334479161045750537309392518174804857300227459065429705706994673746343513833891805417614193653195593186143127600115719601952075934303356739030345999617618387501664901396579743130813955297996830764172579062556825161870167861375966003854418945810291876041343828236972859045607370847432017846564638218887823106661737072248089002024975590793999920775050352753677964913071481784056858328068702706800740345115026074747198878936715798382660837418785490598179692059270930360202045168035870989205180571123105457250665717961677590574723856620468637162813080463225895809366806752458385436542727291253080658869335355610901696597323122256755209725275558214718254878841588228732313683966665410400204318831968150294044068507962567573660907518761292745336906449231384851231063661898272324746930915844933926521411581135194104345554573963760807008388230226557021602449960463185872204292478077853436670936029904622932306622302546759137076017471895950321629941462912537607552682976183680553507963772706538576134895632329203008234788423127152674804152761501554479264364531027255367096326214847060044892125201589334454771649192854780445374854968402273395040204952067654996358833707696443713562419938131058270148739731749626013945271598612437984679264258790181839990169786026637599142611380285532269855666669420594953972927524551862893254758349094246485786260028918735853141757862133111833096374526098426134002103820491844727526812054447933053828350444330019550948624572258761369599106836823776061272072377966856642010301618056837699116572578566476170893855901539714121730528691143196570819318434432182585502072181815786206544250011388058885005683799502088653490644821285733969061290321137680531865167843102326644500140938000801449848350416322419927575381528969781674811207022939015130361822741306246152672214074897337283591975166700359291192572437797410673107138543383679922611471410365002392189318087475565394152130197974273342493306996901620697516932370927312728568698235605920671634947412573981095529196693043588772272272225601339291672204916646198128980579834042024006896059429316155903440158034856100270356774868084698886431263604507129068408338790131588517331803214052659302139358680679591386528631639546147003656603982010021686390061813486792967178483781228985029381720224073800967504011889805350584235683509957619583343335520632690353285727620995649195634148695486033358578657686059724529178907572150098388257349602878541056077858372811225994054302361854208749061682890191652346184705417824999469438379111381497165232985059064969817837878600520235543925383677090642063914094738970972714441758372418169057158764012865417624375566234413114860419059291052784483855079917881950466229113286554617737501222676892786752994674298221265080481538912254764250467144750543113807380538114761948046935443468646251551743794049999416387707362499163859127394938038059826607314574017065947665951666837087779163244784111536902282859513659116407165457306578695328773542222037830314363043010707240824936933465145269156656912911311455488941537169295785530297972249015541780775392729487703885784233454964993126098993984820816551270566719918185055593846923144571351932625065028427238266730551039491434405152569969065885480042699505498858139277808752452963209957301796274757132932871735631937737589842086774838817589891420164869910453606211587913179175448255967788676090962320039817543369820807746365612625613071590724493034484413079449969961556913023831641321921011800323621016012248461885850193806160535638588570776030578928111772835478205679502845797613833581054796091453813845140157407708029774153072981757674291335108154984505212463075231971513950107703133863119751426277805259143447096635494822191247701355542569884589673738548262726054757658664375871426330417882639147515053192026993094145934198063842262231374772387105615803762424418486185467504773242208210652135125761248387403773662601984013479045717265130829336763368154280347883286044665842593528370192382650767646936655594592095146996398932728440161763999959559393611006464752787675374819079005841249460607698866092877900664416611281435279611518816455978993225820729445835575531892493760182586257217905029484883702743760547705765783217291805743343157505655791304450973584498465261604987832273825441180195724049647191219741537379116573320530559268554905845180097614780174303531183782817548503053666531117747233498758032316232269265016877804492131128136014713479223152358663403552395839291115049286630718416068479792291645903216241238192789388281725455800655837464333721919438515108201154267361744595803490810976534808164384345417865053981310953684171945082656183679860670010899932741717576053296999094909693813650821458066214875744196045397522739961404075632164418953499471292525867547048331591460380577563128688307678276744296677319996140060303073081682157281117875642199380577580394708739506221933049462560169232655171249367920383387198148280025178874191278640131914036802399655254852245875055110991308058499400412704968908389368700474063681247302582249988280264660602119043120085158824678016447942162706173981564744108940051137182006947162827469159701442963790091586927907182682348308601934279963457268354211815250188765016686137187754078273216298945377470769329415048833640947000971625778329284688864715541587272009593035744516852126222911841651839648378053876710049269362511715538904571650636035827286008569647007293100253591327406759402647578226764559275812131891800210549238410303014072001395230859122192818847277118008765769063143532887432507225079108691845048070870548904550326489510100016744408435348343049704890219950025091263396554139071739731233272110929126332406970477159465982052652630494764928027004952783004275654193991616648392157079825003338777507106385014074578256801739477370408549061404047575981391396316803679966275998269343295475486231169285635037602239199223799458253884047743620158020304865363117379200222869126629301417603385340380415849784348645032380048959367489065097084062856657760020722893492960590882843546399208650952664689450874065046797898874336474755915934473897202129182814221905482659100932932235175023845249495799148112503638739906260187476763606297742273994953530283566304344124582148980852307975774833420903582930435363587376636095760339282409367753515590628572241044027024918338761584209252323680442579732675352756300674008036764478125240486911956187604891933314057973873467204395452228267283315977798044886092900974705566997168577509238774130476195277072258400941210110533044285507650600819478314464190572859160480157629667592536811021713229987301754074391961755685863333278264359227556312729235597496296909867578868601558837497199894838393903162773296678931633950472541746330949573953785956099551543181084351911412234609755926986541991302491714751102688261982177292541864286471185793443934662737724666029000702660661588326836061483683887073102413075970636291406307343492005262162424403285713089548929771066843656614432624994225537779266420274399685373333971413996302327742730362948134466039607931870338429403041563990015226299493254288528091609761113631308495160706637293503928770891832922084148278231965673940651304087147445910387825806100928649075007157435050562119214261919729945707560958764696371101545781011440755226338229245515170068554286843882581633771016664892458954547809823562553325172139144210009118648333681929118006947430328662896437806436610091657548489353844211841895971716042322370705983775503189208621449126731734692487609769998749708356703885181367000964141636026138219390594639684342428211887974855496497360029628232266938887016136992457569657717281888682558378509227190906021039407036113709581999310491898219266504071962856251157590965244414971649831491408035525078132652663515359101018155133621614931902566138223889909660188360544003544567442357909658498353904615150774940430592449520004193865167665569413220253101010981370698288479509278025407637629545649982130496223622625889131364490832938987532360823764346658125775436927311884376064373572876387308115704129874086423726321371792662173712448102539236501727277947271310363210552020134979153106112787360747129246624268611262791005396176769102245719173795293448292364844354103938058730869294557360126135194576654201524952200694962340744795601176994452147654606705328790912988198696588336700859975649796581387590582564567545952141386894525165813821435201125306784532507809896611844013807462229097411292745606288446346958009328544257928816198821692424929571759709023038146753037780817382153780124445537038218256998254461346142579563011571423258342565303609236419937958374657039068392626245480077835785696006385486587919338525062920856302413390243233766572169783147141467591792827138310503655076151889343865118622835285337192209220838364754892993414749494709945263518012912933085487166242392344013377852167379880344754552124349182958278140515971343968736203714308988954068227930956981717448481491437619819966754099646257289419986830393720415996868124556314610629484690837689418730540958849403198802480982555220985571001615766223636493158780480377198598353651924602253369498079399705392292488523024513281656065473509910036825583380983937974587465726758838600034648119218267218918810890544949228052278862969237955652435096597436834972697724724519375787084450635426759319264650902081510629357957745379395299753337328060321658633642777841091827401993454492552074897155831572784892223782164672846921155781841117112261774240318130051527153599966074163978919185907167399139530431999392274993605938699625275921048324439965840056879070228880211607433479288050767522900553765739885192379221596100382482110985301036351633300145378356616196552992409934481869741765096748590412105380001637602984633247631666686104038553508311364477224094479463139801318568813620468967893938562491302384754345458424087912673723453907587737033073139730458821700324545785182335951377437268875897480434323432877457500103602208836169245258137494802964206203928673157705157429448978713518261689800175740060700363489747202553623807764301654225133950081624636689764858553400091259513569380807505139935059123966349176727489574716710711420363432622016060744336182808658036365508162005363652800474494925582070891005355384156224377109529055280485410241420101515295691359093388069984070940639483429604788821217282598951726788686781146805431174935559661800754735399307899801070599250869813608311091072853813708667497276936726005463833825064825264154356972247868536820070826871569082242040046818512994347181333589992130211671141712368099002013220079003833320913447478430623671763042985530857475204031181117399283203986833992712067966941623377302283920735856610713180527215730069095557252404625235994330997226642337910374246817739100968317116712168263281736019465228265893218300475774934152933960857938277468405171654778764651530038408840567760154886572454542447891909174900244350366623351402868578182376037148438461492423791316979411606259099457185229568902947206069946130377059619188666668205213675153320150053239030834479680143322753823260104960582590956748706525215743953539251586690309925626031819888530462476367390387777768616710228718523168071790795864668831414940161090180094223025796718651969024324268514737050148995310861108061059224245717501895321000632834038708290305487259365955534864844279538983019078570440201353017196481419272247010777291525433717081445917835866454322034649495080386533052711098358236868876463881719707486175260964445655788299417037169603771530475313037980771176388239667901869960402763927984183217251319259086236117886084620017661583607455421356997853329416929614442270725168920934280742523231950241219288539898806299156322661064310285760989290261175860576001550001097519779153449823188525887271687192334317881904658315581204093418373392489150956669826279162690018499338341879177227216614876020611216779296240043984159749863548098937135873819721722270129007210996967672376309894466314521783569105349144899776364415001464928616092711144569632428647592700866555281631862300839375186415388811923432622122531361600367769738293385833297579436550284426290365868996678618461528283564164420404401720387410475767114566560062742532219879220747177393567189060534588304397139615925338628445691017007185866045882891178451092491019589748953563110430754758254681223445400128249637657690457222010194292016991311382002900258590361384324279548734738272624937566507316635312354223035751355753252367746842579134600572734173216866377397632518318975293197731682502306424667314769767114995066123716644775892800548488041162392239807342898638848615312512466657506155390538321388402341320871342205528056488354307770058051618399340473927070620105432750873880454401183162361533842176979282668174072574588505200517221366094112620378219183862798489348557878324906191716710503053022652049863213980360933665444448621607176455114248726346047493266805717372613676704840609893532012859878098403352397042764532942267305478157975887899123341955240669955530073706720225253851051849004232194413416404644589545386113792467678272105432746825517816248669880181384413193612937390244348927968361492327861794886306332708336126248089214226370923639951948492960568419752814303039192988050078349247554542307657282849167151502278778136791437486231601625990361370769702913409753232400241047065964945566403614268124583314987411106760642071708584299965911832907852326525887236088997316457436308570623362836483628272153180123201186572823097600474953295261701426008269335338839139360177323592253062460519489769935790467891294839498308780685582681520205632456334889752770503308321095051807087671898927878050804720272659212817391776866454105252073683692281006377436034389162292136211107851945420963973563533086787374349661195317940366795264336475631248256010531131145255754299998273436473612039422564460365824414730766485284751099469680747722046503685260010219889079829879171923229009436513289785333257217307147641456285642973497676377472579352186587566590082087604572030450673512483299800861650862033337342154509290194369367651235070914409703258311847831093484272774547314385122933945847303481349438673810524680777955991118033408306196231386245614656169675632750405098956522592426218758810867385923725549525351766917579812211134678424335558757867446205318928777467521873985868740763159583413263948494098984981477166968826550776170454256664360320908652483402870700037146333156428111627291174924879840381735444609056317782268292640306420081024573290555103148692433314461165175586421725752167283308358268388095429477914829778178720538777856043665192898778916163865996356180831131651331183248633842018766198475398295163435604990746300841879092027786322937303605612301862687979893357863597967142791743410081713718214731110324873992936862973349115713957218130496654698434996988499488726004582078623971036703070589293517591728675029364017169948637840786377420699199305714226218238801032838678972912616589437670656250029350258956364141359058671910369348637907274086483686113760653968860630294901779375697541701134284363184501293343511520707578111353103406361656967041690090095878076006363681470319992994711738042619879251617688404113404387365448043225695423276269773034878508033051650841416859559622963703009438551032962049045482376710031524079210840618598495342815822980956129503284764281532042760617611137021382830015391613665440584670618798402060165783543708235887194097776846973190399541242362250636492913980918868193011283752225568968140526446778347186275110638605189435233717525089676496514792014635009734120813954274304382128188494674179123919251405746335158775157905228771190574175892054684743684704182767500109467559491239781322676728881673198054955739543422841504374680685776976938983024304239531442320489227829408831544464891403731061144307828611636552851320608179453029029647247884820917850396473290298147657942943624035230757292204804755554603068614609575328058558797683479261309863477140317058785488404768564685014353737194332793390622516160453875055172973645584299236736596997246032596772148103986588644083934841765187819793903110816921382611724229239702581092182821960655559410867203294960603630040813388795345947300186840244981188853771101162350059320571472313742342359260096122494278181539705555187861073423390852354048946148462460888975116891345082127960268588549381990101585566395685454759833175581558818928792435480346557307519142011866121424386591182383166032258304122985032545480752203004301361044580665465664877477401605638842027831009334001966331288804573713248462233285272309185174925972492134786463106060232193100360201557505922584462280621719756035505235556652890680416820170732236937151696030337430608972044158690213781707987926998009386017874933749738990387074031343769072552897168784372470382706981543515597356009254009605324650664355812538647872911723646719900326528175308705008643690777718201993422116455232726975852863306618126071518972195935929474925405948343586493839418989439628291292726290568581003008716033277963617418048581048907674448812822344566455409043284665682208159362657891601561678884441270954465187068582181687995019543863205023791559441808645019809811064900716796594873202761577570250628173979515741872555458805156546420242225164107200924481123273669950398044079347502302053547497482268124595890815777565466209822252067550434721015366664995861769015421796334410074803419177708170294179599897480208827230596713633862725761238186389490985715717442002004154839916550267946790429007710123766708268170111287066080791131600266917897838165129455496658629759734578304029690528989044145984782417853539939294055204974420364461986535089008948633291551055612955226418232758606296478382720979567959779813851771901328143403077400923976692689593657994533166100597046916090615466186173801137662111542868164901004948637481387271733651606906590351429648589334278366613983680061659523320167581546584013989155942719846759157914094503749136991029064648083079634949096402151339307764128205911952022039128101530544332148812099645727895783929890446752540172747196947024818925664430386082975655882356402919535920409838362331678253095088698600863219795171677247485309923271307860341955972939652220955813165960310821596487275378434639021319597955166015091972152364464529704422578729595970475844014665495876038622032417574923185957702226499154023765224705525816835006850499479231957106331554006632058693704024754652937681582277557405381202971447501308484069090665574071363198065389989294345126396491596034302141125524002626836107578566970331237652068858829981213367347141007900738199693631982104159809314533056072329414745378399302104308051337099279495471445804846578585830386569627607332030462520671539101796570622716347842071055892777619439629743366286501195667690639398599501755335515977269199430528965089395159176752842955161186474073703413690217439116328123788075905823328342553244820518323111591301137881596089862615626119608290418997055570979713105899360071612674930057745218514764113715817975215318936005301529735022606463250784778094095621995465794557373858252759175637304148047034728059878388825349576224826674444515019752629271356532951929439419229226475449608042190893307059836301414064643950426028584001584701537444786616924941245873836133627232087154693512998900993367063288722370066174277962872076469621726923089168510937925539502496906500210343722404284343321369890910280974981649533221312838741626622568998754531717744043584402307125825617934216722836798315285761869967251650179671203330452277552514060530177338439024805160770543779845127409097926182052441134730764012216781487171152399134116681159965827843747515913199859792073705971597589982627568214743798622681429848960891244964179798047370010734805814294647131736193903489047807644104459503459128242323641437339524445329128440958823199641149001545664401047171031818223414925299276871170198096538486202881984665596052051952688519661617505817024347334135325493009119965826372015546095007419418189016874551900305923223031374929572807984834851925081432747753577717858296548752680332275262736686265221346669043392312722724901448661034397703963097595236133496214061842127780983663266380527396032573436997080670897372529962538329756508068206107108544385146321110393089327887517162529805731336653642239683630289405205739633385411815988415425853354092523561317692571494890123449036864567288770888735789427749443998152235475100768323564107795817740091817206306190178198802198093415603169400362848406789715304370691723414007545307636444692168744767681936395467901594606560944204766486807603539540337992642873851746633193450967980661531084120337235236255843400604238939531406860614822971484999428068955217660775824759137221951556423002185339795829161168267845400739337284129347812177073347792045652516804010333447569144151372093533116583727429747295312333278169362067247534847218939501508676693588149344080735510025521139736375152772626666500929875136735857573352999975781148715744835083399767234266025995690707305713936068393087614784801152978230712599272939929094344739497547930706135359809157497788194552413654674531836971860073308924584424602439283642965727150571969873990294579103875934454901543228516425900738733599195092390605490296596050519970762765650437027875428569262657183559950039384643776892318188272028982189122541738673947568395313148626375572831451362547204068836178109004976636612860371152362078824624572956369073840383637779306197183460328783187183196375754404295476314422500152380965742252287671950939062316648655884471565768590912443603763776810116710828849151654017024858958574573769265187205536421496988812695326323499307984041708940806450180086321000957274600027167767191375737487946423896013428386178980873337233905910859337958156784336632332265703509066428180450381624810678194682197131436259063339309421827018801381530335006716666366459966440293738524007510755556046498430537491511592213793853640971937715351475577178792020948748449355127948023279309594821053833900204527570406257971626577761893364739764875774820377233820948878236548406925252457728536239200832568026236068537495684968416382047044441067046115008608865880251187476008512699490041397119905528586964592777790976056304968160983429233899049177332620295057300402548341631204944577719390790598002588308960736428191965991813649464516088428697658291704189973261546983960880861713227732797904205358697083660480638171414540547016436287696200342534207282938934118858905436209439685173600725307011262761597412775993776922110711329045339451777101851598782950709381449022245656001743123499091194275805035307317567047949467677467632205965058839230970926772666706703155457017562113318633084922496377685976715103554603528494139572719486950836928273084467993022764434385707261499745711955759395280742214691256518885199199004300187366623896971770104001055941097179787962193598015122558599959060182033247087427441695835382102549613602952731747489601913197932293060489029662191057686429570796823998764743435437162883576879408001185738081526301333976159476916941166705627773784169335588549170244862169950728570591694418146234978700692474582370373090723833119714033096866674080284415656441218347640783835808839784422613160801591600895006207504715403407564413532083516739063436028315026867938659467277136901775555347136119079208659301825119318479095801826158181846296308100560901645134814331831818872331876068887590228154866882703141912415557417012069730243840895312007026222352450354124299455590612829004779342848248822210707611115166253767064816178081091389210270052153405485303211795920201067973299941043702814100320672785206954553428475387834342528475307881362567263942236848051160987041431745339180015300952441580011174104897515073994660602730183534196214754154873420022370339732553406200375187380837614994904764377696831851744046281269982487021316777114341104016396521725072742188827171904847723733094825067083821927347065017926567810941004382686842627065329206470201275757804884823311191540859547709310460592790493032244438128778102032914205621591285438972729350282653868542853755632997711104830197848515791942298234760669115083573217786996080469073270309847446509478169323168987621320869604333654532542150708497700362703501183814645804007595700126830443656308027258315278170675602788505645547623351693044521768210842520571872375118105227351929348727735834106288027212978074471527918813692678435174961673379938093400656444208322445117539465277394154452197302327874540311560834575424650598080685944681169891269888524020728138918414043607844662018388885424142835514907711455842415171319344424475311081391012938649770512390900615032790753114382696823983864967186758988509051980239478796786647210666415075804983136981421397962163773045559884773369773457678007128425961407657661735922111361328818274948945984673376314496908689034160362482823885171201293871135774751074564990260564515605188738504026095178008209763581736471985373175917379730583137123092019235463077077501436202639822252499364705930718607613456861816419732433522548597035864276595577416848137377900622363161243147375330622362024503097238033539355095106280513979155466344173131434155698396202555122416359039729299845470836500291167973001467639614147704684885944444101745355616751294040620153996857485284148871439494477374421176113723580301395761464080024712755422362965343854916623571264061652361030826483078250876147332873070257063871491447210763276845383840893069877605444028887498341049299715950902642395622556006960628218555002248768377990507011196003855126449340826860291248418805401664163895332117657040168034437639403982510465997756274858355194939112613651012357866052888120630501821616886400706511902909596364295939345315020579264748940132053965266136548927140573165057436413888851470534435918419393194380750199576235600985136412229754470161834834449293455140542935488617621146506901279659251887502364014864895234065351102329030428861591830626288020256991579782824253433496447188412010446038948428793285438436227747014964971332899662821426162211774333290670695893409129163164725460215871151475183139183244034167112862128472637793260757832332889225243829145185271917844775095160965612283676255998269211807615735299202157387542769323329181897769408513985048593430473083032614558390522808483007175715613578954027667583748818405532447431785646910027405669093506852537477451124526862491134738721219746151294771776589413378649754476162109123421671668971501214874024079161337873439051675296442375831422076315241275587519589393943676910030382850813149096031437068801605436067793969160741519889419537562460046551448032442125156378386599392205701445307310026172444758574965227461186927474940804041571206899127215395125628220418512237595394864314278102622221357271336416753500055090149457460343914428965806940090048820282169938832296244614948478226580184694637576506142531956559858762794801675106036840518812939923336589598053178669259181820605773475018266440096206244423275260836268657964827442827758832531231617951430113042253248239096992719810294884068017528308186989790299999855118720382008208719576760899420264041280536707304878890582386384706603060870615998238600913515278721858446797271194134590924090839179201937276964211126041968462551796814168541749834587285252193797289300522089802935263622860791333541145313915443967569244546700379660692383548565362903204806678648658720411208074178000870110797678679803892898691618621686881682845169733188192000380036643093215283133208756527941144722595409949102931486321039232428178992336758740727394332178130820814507220936773916479733892772520266922253160278960874515498703814284742922968450516713298973746399075182886311807472899696001659650581540892758351265921936926064223148314061425833286279652689079603825843997947509618290073305862522759581824923280057111434584469497370834635837369760271025866386601952924651034753922035196777723156755728913723127575712003765788098263150175783079176218897272096347754907286998553182657940759151319062273029158914228400547948704221097036111911327667367747841264177342074625805401080964180913348971486780976847475057405981528009033989358057848334801637302989063189257503885326819323422355666538404339157629567902872621629491606313886304869676108249433504834037429259954640319732956834277549716239275089627428298690176098168122987714263340677763622374189560386761841506222212788743996705947698406068291231597644113004927530326262492045330572335565662010408766583100441150904592565327999834672596831129024181133857569225770533337150802303689465900352361821017533283780675674521173717534417631409451655638508868328672284120182684927696292273091210787395711096140355821574493761162387122508446915363468508855803611472430910924310220284020541670058457572572904431847257223898162726346452696815071590747233693112513833498063365379119490747988484814151903380261897088373426948133056114995406334473273145035298402467084561654408578351012820214519830702182340723637038816154921036576482934795216971400907612387663696880218152557604090095080124172740980479401661872039319445953663582015685224032373052143416662281613131809537874195575642584085662155991340114796324788015220957266257182380919783026635549207817195507918876076954239068285416867353406336378529730083496135892741128448493235664061073233272975031280224594370379311646740888841515270432611189362715437852529251140149315722276421117393789109543881579406637414177831047725347334235436679808553019663877062206716606134878814786673019714355373721938851674652262721670074701574263102845188818776933225709435332346196858942513270987194162487842709082278586723959346691177983993196280218351474389073167024707842663455393927766132800015103733880756258432316957568929147166656006306702677170704929420290368653384473963391922321815087834537595581333153591968905505520070081678771487178847502913207534165357821985324983806487746503711588697396452707562691113125758100937069630132181913160241446934834284686140312184537950291106022172907062483326360172218733033101708681959127786766800695246436043775395936803293176509621008763609648552123498643656789060372823416944151141935476588325480853385256351849664628773930775810961199282907801843399377723003653084293248819771064458207372887889463243877586859702982969998826253980692798735149185863019596436914686830662549123889409966624184760383781143543875744273432997354886830549089728891597914036839476108250591203714715172056387015647097057945722382077909480314072103057588029615752062350966947489369342091354007283337353917696114807351469462245085522198601880104112867850994219054070491035153077872738843384018262567018377512884276793942814425423770278100361231168988384579959639549142489209316173305295651911951836798772100996772734231565796000522877481960117901270570000106011401632428243071884572535291392770859499606709553531635894721880737580395734957513536994571139944664273296575880884370840526094742246692052122850417586632749367721495603152831510233125191499801576601298250251844346173084696238973612907438794884250111135230316825123923609481066179485066929800918914051568077171937658292790554621378128460729943380872670855545033357166711024374898226816173800161483350431115695830634536107590635905587217339862549588050506545674352062683291376021138911782767579582285609677687469628556471369165693778648115805806344974393996787640745243160261892278460519775581251226931034876705516204893135723332294023215037763836306645773630875536855724129749466518583210101104005769287944083768799109978228830786181788643249338825704838915658073399814591379907175986393000889604761519434890787150871498703203087953269499780967861007976493410975416393837441982531404962831025088131353392369501338641739044596863306401176582753059487892469848728903774840264227198324692009221657079448254428469727379271319614768976408267286435918721225857940669575511237493917715218704813529171958611701811099654561506388054517803499810825192891507997222881772216999313663511236529861539351129313023109385292242578513285331950620521752843958806805222249233728653259250421081835487791361974331868682622684271950234848048824164877194788043740880129072543037293620805051798549697016929625735179484995745747551124867435867914110723617263274842003611252180305735198158289051690870095385731473588628601427883479491976577316659812076252503615895667528535747518510617125351984048726787895900505066166223095278815440506837665806449085202484465575409059653677020493973885233745378305098593351463862287523852096961551207031439301132507208392954909779994798436095944153018778621853961153510425152155058518283876073116510863169109440063041207861208822537139460232147380880462998266823075154286442376891310577517766880374127606239239258322044125084669120838618353151356564749314818865320008312522874997496406979729179679459815801722256923042200583725609569669980138722930131096273231780047141647537595419166035035101377365307746455439910907972722420862327285712351809743188058659091060053266133741408844441218028474596627649863692967513940304740291807960424929956369157333744935682321001101715697254028539410705750294063182239058158944545995323980622382002326142414755112849321905176668521265480849972578746592766655796491898296341418982970383912489615247419919746712250796697290885778437731803030815778416408307485342531166638174971818030450557930594841756795216210681460898854274362388674331299042442611850477749646335694503107268840001133337089655042163313401164262508361017853227914327193478659035383656415908489635330718147717188989151543808975365837409874580974945283443848905974429755580908016391560360653133754268010240654829566595255858768509737006194722458281982125001188738114819985120910466960332512524805331231300097026739389420009032235342174201184034067667990925255928814715163862682591510811090704101481619394706919524060441040725006012082801576648724785527480417089037464579330424685012456591519715342502739497454173609918890315528989607626010828932009523467034399164022364273674535659903273619259073992440328621034123873546073441540204536943585305694961480022110452044231271151828518711666331564406538596166210768003877471000191089250643724150450249416994083833058303198946024313087624854705701464006908088021769613054470974159874032979762067165948008991921187638483596770109177202364960485281740093315447035370375211613963345907117853737699427248615479226564344635068374989462620105419006154219275363939716993759086958688049049618999491631741261663523708598979008334316023922202897587801738924025313201732215587861676377015961242945936017032702744000610370323213707341260823055284429126645804756803592192139382177739598946421444588402959817198865955209081368680605691221054627749002271189820888157957610440185756518360012429317718339335791105613062786006360448304330863762485926219530097786822828240076468033555037477960808612183410667336192449820836198137611393260931087348339670261107128700912809073589618183786087710275374666772246010522340208051716071163617009484253477988711563719551813704340687215864246867099593845307325071694042538900314707792647944298729334245280674749152168518428911838605651151339378482939247477061409015207486031942205874351429634235427601740870182727841336713323518088636398950142894828541209056062334614254754104669322161075935888202792892211271461422731228841638437023232591746692534356546510132343305515002398344510156296595367229819455724063804603925230475291725753418315563945520863206406203792663250725776364908850053711196781948981880666928396134517866001671738482906856894736599317135146254297759688634739665479363116368577469217784422851607393553180230093118528478357162044954815651136764775381242224981063421593147444767496913151362986416622917822188707911170919294088207537988817841863080083040864337468429893560082684045332268825475815898673614633845832795221681857116550474075430043687094738072107260878725078965878129223208281524574157092716645310329695528865379413988305508541104640262321106169229914373591963139089360341956316458515117309324152113706396895455931221625220208067097969880328308738697770252355451408554033949234107293811556259192010300103942723839984465776869145685719265902275717009532995250729359353313999301963668301935849546704190889767853205111391490276597582322687627398375790506942840729069432697944129613847950398819914576722149783686676850694486237044384500812757752572019271951120618173627103017871011936477132173486407498893558264672164667684477762113586173399079987993985412672149540061819646974874844143247224648054793918096460484169554966975763783384063450062505867991452476932196872395051440532883345904801810084065996264585634168583426389865915007547916645244912180260415216253143938771975087211357509708789011338498837854304177391585722411716109597884918688912296530498706817217546113287320901556952143029163742036327728768442473744230378567557262261351742920023332455395607552272590799578534678200173399987822480397392572795233952397450385276379312719464279107964183383522449295345252819904761454208877806029872472595961303002996876618508911860499469613509507349070102077270592296966697921597435569353083549367757853410613939695220382081246316584494753209187820986472826621983948731524744724552653946143334542302413155128034217148594309758568281756379672663739925427829546379516265255737721714696217228562807399485588242568228043851779364233845271146823700444881767925790130271329629832905136445211977745034075708983728923574001920018213608377221047814231826414128256355207460966234966588045116632227262491502110614560730837561385667057022674168191527447675820303499472081387781512667855706101797227910810060290504179821168886672337097151329433127639149036629660767880018664881001745288857287072867984310197823756392023468590610697558645158805391608228353381930998667551463912778921896901932425348477231409155697616322711527984095825925488424445207577157221912628098346066386965707481068908575874213646410481796933572289798543751073241408658771785317675102403036027433057099587549695582438202921077748051890101899884837488558323421756041627621205938397978474788802425700895159505408282630906149166214760847906564819719847742369458018652421358291641869435159585007286038275380346981086884186195668596302658353835167770637124276018457364828513577492289412458781355231732083241612548241218348198542685441025964191043690913297794573515526420979526329200068897466916510668999719433140962444130456147264136733115658470925924501505180041066594716088458183530731429336914154787887280291757485234899561822685369986759131029974709628815884667878351349060601528259252415547170211274360518074481645129849014041382929664090050900455079706681088388054903293571339266556555619638744345036197547473075579320814908439414012318241906738212974377338140217975693785518694008379715071799476155531914774842541460153071841143284348862648167501477013445897230225613969368062541961041903843166359480219206886965815057465064271574035553515366368643548996106096372512530806938647697298854192144241379095810989390496741728287657601602541770537576855596867130371902048152548129985158580497447929104789765365746185624769302139415139138126681359882368227801885467320123417807876184726040819936987871944544607077688539399970477662509542233091954136197476221317869898213422239229482420811539615586933819413102108866495129442601401312583533739886439858382692347101300579464600681579121756680256567014435469744369460901560879925925408164497158636312307578324846782859250317878471924957034285149852711677289991904367770887718585968119183192558336946386653392540387862385336711654015604469779970299193253750561656092134880997840867493222697021206018568937242121143658041229153887794762444210098335373521618219283437166559545817865546782683688773754666550568416943395800660366436771891679003427884067246625206928679214348858230976819567323112527232073142102056227029658692952040660653297581734647483690271705632899170017741951711718975658748610871775256290575617668118212043774123702683665090421791755734362090766629928236150163049816508059722758768523023823379984629788208425526014005080710086605408127285391244336485582020847036309920784645751338479786093278825688514637435346555694349918911089462281186758515764676397156516063439948083009512289459038815403025443867415569910755440553611844240713843099486230609985671340402450290262460784950826726902765460751692050096878705019686305666041254577340002504860812725827905985446474319310514084050553506138259778289536640420008422379799274733695217219137915037550583734915408495870016159441127020511164164041105500498525238546268622232087245963685404129558180921368899781936642589467510350298083048801761275474034211564723833578436165055323750261761177537094954178160231301991316212500558698705780881236409363526696831791316171649653193232025109056608094984226615603602868373530674518147537340238923488859741489523205978859244609507042589255657595267422559256879034461750847959339962535209567716298243711207399852422412501066541685940395084540951130328489443183580956035636100406088147933191246952318912563284393924437540997630595775694772178617970803687201676741896309005503666087864402642589309959706159674909336475436909110771830134041355849612734318683950277759144777142687869021213139842336528256744564455746040099415271703913276720502208044540760022165442750502702170175746327440626326214463807495567830943124001108922972636549338740735338085508323668396855394544930464870413778586784063467648144818314641328731256101010780246462814270497730682055737801191769732157529209119795505736876492664546600391390094753326601065326143243425776611962255313787346830617354360509923377341758641219114420911498622616725712801263523040470803469105375672274880940586436513501024205694990242577636173577177733512724534033077447097855968247006711075177703382393191544428375380432837280442016299153515839922590563716224841070084173133835273679479358073254478211346981521901994306982402137258944865896416472392940817173176693471387978302746310481992063269433358678980182340750580278139219125811409588510901022955436002623231086972235908085362177347225958577884984212220768826601616220703180125669453889029110738271214991196267102177040816345555669513989164665000546157700207157429213911004462965429446913400083268073268841997141921255595812601786335014463552356391501546443502217173567628960708097743544971217314730719048549963009085457501243441085960236684575510596352700432631030939675683121717922938162138098400575476519464312126814969695003672763652523191933234903862489956610420402774708090255543991775423077727221264792524204905072482559176609608388270625605610816506330174751928637041638226994435065608100444254622420304000370204575159292006309759293512784773550103569394772749249785724118435685468656300750911158882906276588856350341022735964224406367240690717519209671805251575969515960728805547635259169877416881507337335885004254889034832689413575465728083886486977075292111434086126378629318839224176750396930423088262916431502779443505418149985221467288499726877355303587714214502717900270032252398316193489193005598967402490777401474603324892885951843725831050069398166546936909993232693456836845693422003179026927651178187915339843622974449985512662421226213065661215288224595196996144859430307010421940953605517173831381079533526699769071628270814843856295212758046793262708936369428828414698346296660207411419870470457523618787920746709646266526537903031604839701566636402416217023008938724812952602896644285070095919421853617066540111250301904973616830703375703850112278548310341329759283187970145325559361316228626800806380105310452643645521021000130088016749457424833208108392380542565956939147205678024178880471151547953642363039503456176456702411106244376685282747247699267190876533241304118211914613207900517395645013324518109401556213986542647006859987386781035516426417777876331042736918286015545653491920012809178213735731122074779546229070789947576212111585807440881257405008085281694160390850738763073880700749915828959432285827974637183253955391657890748126890143605697540345058259260042613599361027960119089410343663361363426401659095156343972732028252833443264756085436157134999764495253971159478995210395035023275136941774868349817093598911246449559030322298082703966903849679708360794519474007482167790862213452196889291088164549914306455745011809428079404762987991949097832114895164802394211754624622724921777386494250428012306244366811688833525783724566069384434806062688690597333652446811311500865565503542704123638820190219414820691525235639165579613649807189938759632809186460466258767941585265557526335334786715135043595397573175030420778208739606520775587469656300954501908238873738039387821912538744050638956273342059489906967497627655078116594070108276258905595185540329009281795013521907793042593869252325641438673663321417363419570114106398706595319791378026030204424470761869299860326581543153108914441776269988490038304975635590678813172083770806742737699743618230221949970738072298800203099053991205399634809231842272997675490860405676013912864605627200545504049668912109269862993340689456653843805341117754091766495963226332956067435127208536633928631457156227622262591976279450562718580916085047418353802728291009831542458847776608128137142148052488055218482325922158061194732305703913811228286660285651530211930754119159983194000788333842148047992744494740970800095027875757030491233486666425442813012385748228046989908039406737650256335368421449963297528036773212975893635095122636358820060398551158511513475996928991642573190504510329186997677736794598328104131580163431600153919657854567056690959173064925911022262308015798104965499222452244609243924041246649155191004964475889438337645308407677921909898075363442018198596456185917212020490143697305444334900730170277028002535599195316365819966711969856469521376101359956841484775605635610594885127737247677029552413501159493902786902123117543632729765910757530929771759076995516923484276586961422055002363427849823215434264732379965843264203276065419242107743116005298400778925000681122622634573945460162849699305020904283380631781129829058647663394060808802430737641509953186549225838576213062273587030468020399779722016785165050221305997645032853839414339257646331743247229047802930384731427781924595559598603718429336540345635949772539715242315827046391081791178483944063203950168683348754494737469026857624391952925585827289228092897848423537742367915790288209144627530529921729189952136101830393107659105105110228094859879868644024441236039117651097854002792089477020228999624199441343524420453642357940852460671911178651661305324947921694217252941969976181076146343093575170427594846635681170158177519120696648167981799968196009260452864605929906630393209469603388806068210628196778505000889803550608190301175505966183363794855543348897877039277017210454734216083550582901373937765447035126008434309760526469906384859199295066794469940344583163190404047651668800891441997760056154035570807590722445384703493089357251622420631625698107705269988580371133289861863448511418427906597883170770101585028512853248508575769869453348562981241923370075029856526664012069422454944519219903083086335402711893734401066444381497858733513861087564883374749490814267983084871776400388253300026363674798220650124762292356548078342708595688021657228668309321046000863423982842500719294807911066197856501390208066410246530161855525689636048194614042117166435174502968696832023185790168081184138718705783697535002303022406310287773393976343988103094867384404450407553550552309132802645341168503518834469696374306754781677112892138757307156114685187979234184609750215248534736762398493133152876924542405629786498997635215667233958995850899076080380937541666697868689355638951246052614615999527546167059356644963374425240026665289298115495200520306667832141143414534147206435316761119845746010463527019531127812785759780683834542114918896412886350703918329118367424304298901146456900506475320178311023357559618730062359390500753730219187376446401747496865025258331879471470964765120901180948518940576064191048720084248995989138561094425229565889744502573014749046607323016791994563839851712667315122893099154724979439153856931265682145199407697713115303659474528471585478817104105296437913154635785909110987332368375109556263035916602766865188017922666010349702236193571842302621824048819854573195038908040415770045883344791241599808862623486459845596967252612018253699933469371526842175158178435826254894161548899386736365661873393911847513078071424383398232358336421082500456341999461971439427697432016500654984589717840508163034791115330417455995473824634201718328347109670949873765935726434827900669899597955719729186872336728157873820207521496464840560279511253970348044035861645349067262941102178420914030427828062232738574295100134523445126148312251797255453768953213824060242049000566905305722337971709004677266453570225152762525759880748755503231537251498315769863486823626687249214205325849377471877407547925240774811999035468945265514342133443675852943947906614761926184771741740175822321114966266261714356065951772945669620152788518183015672479591202746378190122526766561266253941964027811901134718891821802352563662794737284680427503927525704878687034387838967667627545396066537689879167478676244998191611496172393264975541446540489945209889511115121287105377302097400646540254396767915848431840541128933543340178325993203225874416354617345009038095903620698078249483459919025182068890454286160503374993081180908405391638216242462469670976272348486868309167535364013918031090451781407039174152612176242057459065623226921084801957371463888853376920947997053886738591070664334976468667590782271515794653314007337854162048151122038512946674749672582410778408470277560173141992147080941888912423016655156928008494034157327039682447833457967606699688664739424796409066396407145618699313930434808429560746680647712221087301519191233855340235019803687995466898364606942492433394257814534970365672404360480762484258497248333467113107905936293221412452137671424727652989496033493665161830295426998933061919366728669991975745527900524838104250743868846659944916138375142259011471531959700133317819090075009430746148813241261008384598733969267463603756853509938229170638680048631217869058955543897030198701480077157455115422160490245773173185093100685369126005517409023217515709004338813222593702108697085725237963802662720132891298056422937074990135258865761724253343062135987654325660909369938355240457750132823344193157419238674068460997204620143231043197588100064710806752655058486198094758648117038389260262840863262387325690223793135799489093884374592293933715017447715099886934425136129835787117072563034471855104466019143692295664871936771472777986741845367633333214987169829348417250748998971947196349205271622711425112770326906850353786168019843893674019789142860542029041468778200524989281358107432078760226063635318345299170547284084033913043006706810333343274805890746689143932950693204197786519130312127965881892514087704267658339577002141930346456830359302012961428602624311072317682782803231037400014913125821760003214732542332200254926508364142292892073703526431826272619770533877627848112691555454141468673812707598819187443629797632752386098978024747673432420238356723551586213864104481830002822865738988698930099195203587396137876147395633858162000663796650298734269702858669031643137290295452593942844473744407300721683996583898887755838923384593471027291589678001982039596909414337687705248686592732646123370020686557750861957083122817195222354566348541264155447060720521291436058765998096441637244837124596446474083759128814117245500361030492271422142465501760468273655468023896392229749095739420236217903315054592836796315669308421128633031288180600350673665177908927368252312000369420231279657392042178026038790937612819327203673409347742147433943849836836290726004501991360324748447889568996081139641821085088766630093152190668729638276595282905814753402000349938633644077907925071120661667049519118660993651565234891461362240337485884452034300821034599796056471014913814732010039565057864534382575954437116914510728235701181876816743666044099209153110522054417255259675383266955455418007705142250462087009399981138456714255581798588375528645559755144506060436311587964376807232226945474373190486375986974010860822431978603378334049334621960623799034124349493463823127837598717386695470153612148300763009141548309366071998706304086399253076312723263452679162051355102199807522738136712457346768925990000917826890043951121477411801095744403548379132920244509097385934107627185017692658942580368772963468119245013753031525332418456794252930481657551028123788151851072926512872366848691263004225737547065849868445085548978505874365666232657373405458305012998833369812851096999526542070027449976973364025534064149342667569326223150995969248706934202774065404224265448132875170934351079313570671846296187004065321063355403024090269104857215911287672750048330880657855315557620595610516374003880342117693484905320321826087493361105548737842193975000174029508038734403118632764531838412722544952087857988850460099442925153795818629583159512934129617994975136396577786013272295823942332193115422355464901073751189156558346794770978710803245637033685273540797060588875577460089008717266686767110851329301551945847416450936283003131873550286690655137182058357717964216314398254309290015408084632578322918756741873122518786879859051412258933016405104378567320701506398471283770711673071844763751105834341776425278911693606665980040161851741484649895262935113299263116037307822391025179839303794499915536570902939817406370670202922637061046944073038100013011308946766451980029183655964862134017996468415250925456165313888714588164687208897211444107988139388198126957694588874292261856188896804261815443427516517539874150762846128463126012268378155823552396320531748408484226399516575488682366363362472218942777548646856999890175112174158730660990474815037982695809664324156190123602246870054995755404380191329872008073857099345933786026081957711355017743905022435861890776462166039663844285102329868667328545189074324780054989896720088755632267257035350839992850438486291374433481439827668191147704169527303455951319033110731360011415882756700930209828887669287034486594681176008845035553830112121174010658414146577955480969711224406522073011969583173746673733525670893141617039483708295569407342603360627599949243000702923841412037840585912231832437968030795219354461686138736919368696441255145740558990613891157350465589063230265344949003503913832440650162755576079497383339505692705998872322505470542613570223391427006746993376930372920064965677054449481752652846134796225564160224057826494881289160083474666485219279699313286254562017577739408143988197029265847954728344454843498747566358261466515589193432235682910937798913271498177592686054166677055016763420704540561660038914481301757944338860608969558971782178999485982040617254613975720313758256015908907263432150747448156542237105809478350252894292357404723524070764914288376800035618838002777626824689878810015507904758090527730362898607696589988230136322013689207506138685861117794841037059587469610040487157702145344709889095541594295885565064006504759643038808280330469692425072635678745014029624899863675233964981535565532899065516138332007883546912065775566396724606255651471863177348114953828586141726061641175877591357844890951423461440400382805600687876841658738829071121079169691305829800786533489889058257189193920223337183625618455322853392511929772543188762141009997947375853153875540446523880742220564572302335221587952108412649905823013377259681121343615358434977086065881623900807863928612956321883505211379724860478381210522615689734970624096457102232463847483073606735327543904658964817110370627382915332155591111481150626979307070895533618827830726479585128021307401858616189204258556819826466169502653673689848525842721249412563754041718831529219054737162569791110855877214773601758282121979212743712510395787514054191556106395806549830685027629987644202062164508043406163190727497932252739778850870056902475589821048575966885272402552147900344935599973619196832525082160508267245038799902990162957394311634365454586398887879067898075334572847268408478281944252504142244475719789111082255846742022460611132037949674506381979037413924643165685471128936485959261166877919899020285435116579285008874196484859685868262825842031435297479762601553695314072240608300568954993627976057901068475162090637154101411654101509434154853757247744538149696563661798534961592404866769078921805407127873245740816666034424156097221033169241074167092173411624091666337715919816895651492191520221976675915534750252614310472809126057957961141638389485437301517674405999063590747429543165829722666416590518802340469332412300058225232701449637299713783878989498390709517369495286941056383097486723841399015120286509917171767365244983513674130430470545660775385086873326874768206495069215195035379918393065748638421862260457881742559924504004818165887088375539824660719439136140107641156164366665352847254217660775119076548756952786659959681486362350526330833061129231264176769298528995581912117757500923030538753914865380912321759281125320417914376734733701599898818348379205411297034585187678744182367475035765629446306689685988434048262974145386695048986660604311122277787725941077936761341990537313819537747832629727814990169419427893559339234048790506308039999348077983607126866965557457310238296335388486520436310945666349996848506780974800894535946002470259722288887928507622788028970994468271025025708273975807516284203968502891160851338921545897011630360237053691085075261427172628752174735800343612754243152985905563029403838764342888567638014601606809879262648711110993197853817157999332529609313451840303913854352028267034672235955558534226109970866142481582012482007408635091255012691324282002413238469096991568645634383187206928725518924004590778561593495757051022922692155060304368171453879565257773934621696865897662212793180710405522951705424641868941227417391484092145172294215205788111238351828029231879768526068297723963639641904156873389044203773488710950575035646218142117253136245289093886740149674639092524765399513658258252445017013443292819034202651906132231916345291650271239111616018317388664933799996473820006579213164158352617861409131618075880718040642134369193758921438854572544577606481217608226527024267991117365320183395468516672410158207616544130513206767801498405679259900118222092828326077821317662129100123138725222983460272378973795038427155015003130456114493082106339953291621893275726721956022342348726168032340706935051098791114034955172050366299336992725114175453379564902154539482066201748470158347520322686499414556956506239783535587843324290581615616968992930425755441310068439521039715437688628667359245044586368857486577675777693984388489233807198214570931949721922290684036835119616203227795882551282088151034857470649153416879501250221018753729312357484001391412921394154270249447638618493844748409501515096166554533971256407138914157641782814892467273289138800252900850366991555930360414002975411755886756517174853093286722029119556992938712471938240195264667321219005031339086398980759317159822151692394477826856861036874860275924182856026549955920082997568730753997391087502009353534777494041234083936100629382077283202317013431838253678992054753013574451176537604923856893881831331570386917791657894551490356769868009841675616239071251610684888567658911652728441990243879451121408542460009695213986072320843826679055014732996621791818792912844075858968875984761339739265594190538740277445669228140951409816652406799448945676721518418705465771425925076592863885768053568558134646426764826606042373091480738179552675618314511169380231891681018825347785183630082835664696357139263755172494444749784628929229287500554859300992949933762159347513315425893246024780993526347796166839615864885256070019195886894163946059036860010959480519472242776487746675345548680501774268109285656945111859606142052448876243976455305003022999197650287511198994270738632508507828907940905382385841679734255416139465670324017152793404813500295097602596719325486713189161589733650431907688853531506880863796916113836105671996381409518621818557011536870673160801559518586615562012160868713376492557875483810058566374498468442172244481802057777458977203286823292790448936935322542512437648420058442033741789724564204905802808084895116438355259706188256083091641088327089587149761938992286799059460096989134559907836473656282684530469630291370142939446590997691836577927958002556020963387200889041364771535754203050527872987492234530220450088660973316694940207862670260569971145803614744778822950661525449356479959702106946645989158985222693152675602651352355161025242647654652709262477356880723055619011654495934539091076916887788875841571492293724804436598059800615764465477083714616661108649767063272540837201424027898070458021153263082739288273091769150720514139827751144148941615839148998639891323945425505561459912797070021955284565278714850264420447425822465074267078558424247350415618319629038367464304585793862399889351340443648051773696115564875872334008116657984315467815527441587200907755792848300779516572079754896113407392277966668121031492561637508650141161282754852811767097060169775316358310713399039927358152704107783683525916295028991986839757413164870242362463758141509485478332138651183822931503208669653160611812979920498693511861704497692663695646849136615941751316012960694558345910664715381375357416433170653319195475925551321863600317372072760859960682049392661419436512460966900689374807256294825312659599779818874693562683368686064686048461148832194823252048744209712895379453798908272008744090568633323440940704221185210247715662623657706713868793077058044075780332383478480086609033101633692753946404455966501527389569965656737862061625288581424485689268208845519909989482998668391403647294781078447328551872720588834440284095190124431077817032459719907649097307329507305815962889631881592353846518134115180255420250145155884119935821235984815448565403487557165122956010766618839803798894843596386207404584110836627980555066736573896713130878578535378193332630405699719072558864543152050661683310229336074281323513473140916266798555512028265329676074413992049570771503843658793080633254093113394233823517892280095622433124006035574474628932422157980932649949812093975304836510808489134926929092823421814384339095869102241683261108075451026523856086428232238095666781236110153611580547010211953534082138003570987202793631547046275320318184633451352561879764002701418111845098460558645902535467885990748655985679690505749144605791631997648139455371847212551829607556763605721948977501872762705009321104357683615206317441166260229063217579824399975899960612833750426420243319495582308602326912092923383276960521419430360053924149925144788051088086910795401183148321857972831461211920854671073326637506805825849760119614423751674798351905793381230684591846283598836534220835822587512443419254915094999531373265281341868402219694935098135421634080076896323107110510030362947157963858633821938589873732005753942181101759569800533838844692820393714223250405992163523393248865663966307737466445280325693052129236254918424473382790524129373566533375767468335627587581397916238702499902901715679762845901248772547847530480603873445313851585954251248271732316368615791561392702741564864908165221681069039571114476512064904403129551627568019737032191685810831202866309435227286398281057977975261671717368521092102408352243579292674518981205115448031472079163804202824942063399242039440825362113264955531157875148539722317584429850724668894158856914528086727934161127703307488016306422573439590367357352982237109325578885301804285629955759853545384221982658275844833089109146359773210791244431845621462709436204465888793325009394392402279233232192703986116625933180378595674491359605468708776968223479972519251306307286764147151654388102203535723217488323758974545306881446102097888037042812340074098743839810474321706685429596585635980058524065128396508039740910900225048082799025834057782100784423430648260815476269110116115729453187920167375785288709591524199787396415410308172387405424839656041898650462066431466838155756228684457335571434449454753106776809945206199397541568353912053989647508640287053045707273572494987800355224398908286322569332382706643922685572701583640368403514484664615666546015644731180647404328886186383815902686266591290472137533556810379824031878893751537674257835693962343048146622041071662973844230015490781865617222711037874067898058961101856168248167947682514855601657270267541374829927980894828428863916682970609087053804110670936939226501716927168221186448830797604004130026030868735488790120087600751047890599665935728812336592084475101721817490877721081924376313429252264713882020206510323787483347760893090260362920285676534085273666783032153410336714047735921303529437176322945894026711442292370326254309483462099114226786950430242675576708345022849582831710056354631672408574966980231273265464061339583496798628801728968249701331403790862180168961463507565111220032787428023909982778657619981940994612285802980188861832278746021449048924031169953079917861011119151158373751593306494487750956465298604611776869258282466882322068311115697968164652276385715482126373549879925527201992910489066466000784240480158337491214609518478384348079218177937597415534040070485537454985118953035576605212647065000864261547596232475509393369165402629586830737375367890215932178280188923850766714336697309249368584728170577421185726716647088217760293545874578082423434040713337715980252752363787293425658160927309683369259449516501493191408453162760876756335456106650128272996634644471503445432602148011482217556153683792005079606532386558510299662684509179087260936662532981487030183256033341426177933215619886648602716326087979174009945975979429801309258072731861722381993766028090602730580515538548586335356795530747765739499059694522975531101866724756386255125444284894126128398982523797744504388246958667487266713615986363917056551298084218436257178362498756252052552484982937444112982051818386332890073180913193239545091570740430719284923850036138354259484763509337808955821708684974246296399060459150343565177940248392618271420122002970518958609011766221153625984468456204019880341050735193162063647355125126997989727671637079624011848811087883164383978167655200734043643090713172906060632357865072763687979765320169871892827477020272076352753852942264316513069267605402499768493988498419870573953061089592825213284335841681001587867528942496413909864095806471788971942937542824530910894708379235990892819837297684049802104025175147532714663934178198381387401379103332630541915637859161768596499817733249579874445276933463530775718705064867737407793552936236472960641181398758729186405242446770903236397645173745841073885423387162160422729956110103141548735449902733454206627683281507365262219787339308763199652664641316695073857792760577984306133281622449386458192889039812167313766247003499332803934747104303516417690249949272615573606607791863512390060681149942644790543439766620207372474104947628945858580269637877661498922326045499354424666061955486220620342681859494586302362072138066657154877461337840041816441333966788265951303336970667938915810395517378227667581908440453981243432251248527560821963659674684512268424186628260460641375609620797680703730368749302130139253011808512792702882921850407555767953455799220454899021563512205625767917213940051148990457085456809978001028389140631721455019268054863037308025956921818523936810854618620489764774010407056926627316312458452431961236041368179730469663259131984667923771906159837219845541470694724969861116732354337951153816996152919812031787885223678693462423295448670574784398516000144514072861520181032281720514087974115446947788399748674252615519746871586676198101299705841778211501822743865965279531716588161558220612994527875510915300220493810281602315751995154096478336996109697337036217598392016271632841851055272276404391123627269251614471925884520854219875042243808380205560555230823250448432480730652687941963759351183266401077527372590372983576378926233467963433303041340204653422622868256429313151089239499750979447606393758486312546040222226067060360954205100995508160156268861150455726980258619439670348730130995148314840950386993615948129322431949919988194066854057732919502331984154634794739664337486210529642891283364141919338267464708889655345837169859320293295565669260374656624582161080616336731970759710212512234324024626469913951023188708849303376789910540643366838774606398634756770191294132569351972975532702257033663589414184395316490016440997331537608441724138800926768188185038958291004927140768194850278866271646544201548352580198711231232475790565941325127977336063593803241319885655661170554767962598359409398958868105339827795307715387665264158417532985549612538455407253071332010383132136594147145475237538110057854115841682217500989712431255491073095631146885343188483015505899301101036523256717130243942752139352042424882811275551113684042175341669880333195415224074355252574203933124329999681359868098608593710444158141035634367803750921896237417158690645309751106992716103282044344060731158031409589204087722432938672278523306129504254411438408049411979721376367121925167251705586835586472911050459036071405760613248184385061655727258256287631668726914494028696660899669853336202430756857558786671924460829902724090308364079817985803510990817440613123342288475544230908883534422565689942975917923723385825072007972197814166346275639071863875106929629373231915266660035235544547772820540291429176780540702608637484510611678296761159425300019038520134221309413688916538072005197780469645777044008546761377058112074192930444081214436264719031213304939632762480938285420848502754728782655681144663106851727579667426424491479838070469148655148992368959912603406855360655958985126987571071848296391320709753989359133006709767484918140251927210117839824619830999098461442405445090892736924959296924222983351125878097013614195151945326444701469866768590218729403406476174906094713352066394705954391637704012323026554565627362982882377045312891351450437666663628616930581512143213643771654715500927213958632841850208309268540061690745926658485549697238564699388230228247550163770284186778889587674099165724559616785893030065964928746456566313055304264106389711533299359348139228846804171473358691103724505794438514271569309737557096045002160950094800688741343819742512741320903987576804580906983683623095338837106971424223901458757734011538337654716845009162029331467229203792195991835470573019408796636574436215515878511160002513993333903819177815133287467681225286434716888559093604177432352626835288247902241345107161448510314286662695780724539895444002591391015895050863911562813265235097925733856458068443218600956577127328681340581666362922559855265465859721542653142509494917055401817294287859692637969394609006510541117581676851473502729343755154910198471828645223806856105799779319736678551630575103078220646112670230234722314803972746372210515461396472544030609881856053908402338300005496446027106090689410809843720464054582711972190494995855958560057126412706847746645610398008670778051704269259294415243359427401915593647364204476456286703642157474071452290593564355727727687987042306116681596064062851176440876919226675363411533106308517776198281943330591486532603030984943092489197885953089154417612239060560751855610601853744443268357526637755075892229291589714035919467421943207464857786506834165227716847112878969063989742911644321226647703996365200659591172938262117566056457716609245874657251380168639969033339915824051958401681303896485190866154692708068567584385378866388830240851458506718773025229762634237641986485757555935348576177377612659986000574582306110921586007957913994999625815045241572029892312356473029039192087703500236337274534845677015364516927584745715948792832920758897809004188048590675589195352702082508566489923009760274597535193737801829840159465903101430054997753046058388532546830102685095171480050683833238104897332914148046229651297240872504794765293552660129946640548450247424548216440177782580963642683352430171157055188157340556152976177838743441552755887205240101910328887006881219845873060356011205226293073201427484589531777909668592540704340216554505976796309036509121092538150452113218088674107141478765380313526048477567679817920814409540894690523958113607688162977715459562047441705057060107818916589137302327856557454673532052751310390829946050394429653531575008413462853147432769769878063189451568396819366504592808992635762114917638563108042561011343906349228236993131166163715975642540880168823419875701013663388282297435325789590414912121533135831686801855754083187817285868693769140812456593996441586421762307869955433627185588591518660335041751660498987081784052836430184656505053574031436419115852564040141837702301765638501320946094169936737637522020623222533064930484927538823422902282813838686906701460999706525435026307379996734981604825394856051847112361049919309341631353701849544375019134821390930570637137081338033141102750852612999362472396871592511646223662923263514318718466992456442219097803318800256060025200354374338870125525749913956813040246334347850322243830138726253036348827732735081898586792322510480152939843923856672299432715973777210615281046338209629596976488390333901491366797114924714933734251278508309520038857070175798490364371264812351697959925485547547124679069521428148711796579029189196896178807414074193097715684800870218267364299789231259911168363670859932853223910191872991141806800798928138558282862227705892499465383986478244276130608414322187697380768004114886462897704429038930766725411253891908706959949993687723850988740093473981428324714748017766237581168576980114474784183148472321979020305011633683738590648836141399070709148812872350960351297052892770703431780884997092317298942240785970693508397971435845689932299569463000956312108402693399375266848294518429698615255818818530811171507795216246947865590742358633559388171760702109923249592139925300609077882016106450239456728463157581447558071478477014886630645419982414056016122825835482477334232528114835929931803080766212892642963746261913063277346225427246612907886789369172166263077252121353806282628321614830208450939789037917339555872195209991779196265681908264882514149040866886837841471539860554268964274398999586711468079677072019974675212047623358484927290631078255106286981656345546283086238956353997478212908937875265197676649984655211834395354677634938600144309226168772743757020789712415197832698633108464766097084835602398032095222736535291685510116688782383952390839920423765291597194330118228552119567314691302376105285233755328215434381767229251362200061974346610231576024416859395194092225435667663215881430445981650724795968025102534835350128289984636271385288852099101900373715540201272129890526638066330404852760389529736777375711748206955986692526026728940164105596549233932096602048935050333567882846975289385238835956671810121904825155928983405542758804034050024927582011633081457802604264762695307067645052991149813228543212891918015673705287381954625795894705163815266722653468742896717466177770027153284400451548867644078634553261286665854692002786330799657649695089702446430364868991536503545452337162839665734503062011117352904639656791058908148295203199061674293474814004827283449762220349670834590390266239342101985494666722651527043800473879427548057697062661610537859196763547931272011996149354454508776312136947197801393961116091162113886850262336502495718574173608424246307070960368324346288746382415709244400696375645112282521709047254146423483652356019331337616137872617849483113565905315915964345734364210999978433995771295940308142630051830577431794604918318108886033026621766425159961594447115903365988190944547059779635277822789765907917840612793421480084510417408447304483244666694641228152021243191232795689964550537544909136220579434284769243171635954935483073024430054485344238080944447849147385398778519038831868720872801443398557186457620316737198995600741534107400845503202614245579669801485935947073391373756426407192254678708871323014475679297706044441697374604970606834358853898624653932358299524565941264829575550371880865229224166539918988906823010650338467061126320427979907500423347539342078091334254868410151281668163878835544102579721878687297412336363853851365085744717746665205095038165741510738928642690734674159933298435579521269014711373474176621795722380698306792599323784959537801412055939055416467613089626610703260284523627775857743250386846913344936037472922929789161543523664678483203986808200045375796340189067253152592322167701856440402145214723160179319666450723951908241432858559400299568958026422786679097786464171572382717945039128277838595177270917231643428104633846045971296208133457262401917934126318199073169869478088715370668391191760143780343635559081908462879974686602073466150267644194469724850864020531201474292395610902896533165087994954858516152200128380406098320060572120104331502924974335487166879942838571116407378629634493283397406582986406370118383584081486621644206185814588924792726045309137186402385058034870350232975749774368038535040298939826989345240655677614351248553423646055382107130354083108620257384838653792077939754469945278908006176016596652166680148546402393489008895522335562801724476859148263527536890178981538577737458846873802845252620626858526955010708066938594950125513398289458863819657999887689704513415293611445580141846345559190331240588682545482989517720510004759060642100472534809921187409395533471907671643639940710360866328658405600439701246592083629801494634013798230067402261074406913691477317016614418312302555733923390649744840744597345099060724403744323683067442876172146984636811652347940227436214096466224619428257030343858056453913463262899912364309234850639796022572094906371977812089084306177176272781491768986999411219523091499904469214907233473468228255083591754326569599256884543159937840805504263491274901555305328271222195967579682971757924735325722400926004927785464828625804563627750509920648643051764771855793652637269593320086935877521127887953431063324847757921380627491736797470305558999755453098131403182968988028288169101324723309857293213041913765924264661927260991166595326450216124419535104417934584181854253920931333714048077862203968686744476266636389789986998969211629731522669401163917353091193730824356307581069172406290618490429114330244581313149207413029067303786300095604155764216690739597172685352478732515245360430550445670698037221079606183702706273878361344631162234524830072570321339469824366340863138677237889611546088602889485304913547831324850811804177767815446347188708963478850518078849406931074910018182560779602524393738873937557183079203996444328617271356461470494874022830258929094500887155504664849319846311732540409343221727351211610369241961367675540159610737362194408388461181875885809827640389775458134930079989352470997419006787598250258232941460248099936991345430164345203821446908517670313221337584397329101799681762845977215812469038380747073815552642188088654778249936402208204509205078945004172187986083175562494057931445005797926096071338741678215632319386691208943927832199594437289675190857389145834035187777488358745172079512530388615270960290375678162787892057416487691520230936252416339331380177934668278997439694550904804521564266528074524173704116853332214403417714067614963971859867545220485386412613105626127113278539431926729024546409295762534743910996013042092984625299222152326990411266672928745802210890462875165796246652153828379722442943316743106073963546115733434973726942830068392852727404771740945985441208200733366730791492808908333058006202591583862474849356908032789763356287989682138578913478768704579380831683623146102228341928572378849869801317681919259680299445797983502102343788214376496828817174529675199519059535373843010866419944584716870274664741941442291486301771704248217980276937682254531817285245802841805496868983038583939472610130167890071180096183296142705898981160854198554396944334036483867175357270251797203713182090594560971755563856334437698346206105183714879776905477724602282507201661596355491314008342195399041794152494494468972341949699708185333504845331008872451229018466569589332646256625160491819001113785564879215087283486604706145125179086818725900173712284309077568807382189295170743325241400571299298314002479895191535110978739961100029253360598244785449472597107568994583914830571484072610165557996895655718458489396910927728179579430903928457571008459094226735765667060576959888852050826992968713536875833618850656136571778502953609012983110850404805528940971970569117172975656927650682327621345690389831847710184294023588071785538952420013933546484252077642164641737714777616807856803580519721914195781283067025570162826591849493632506502230086535336054194461458319046494646629145027721016557241455110115899834959250132438763481908083066834143898337642915308083721164839712971680954994538574315527904939918996553057525412058683348176890021284075986067704005711295051119430560333734625090463179152662124694668960952815444108219913265701493999059555995154748228400186725673372724670163107020180666478144791373881692953825155572608792313870157264727930706069848181275980283069213939503135397089731748394673396951189274875797595260483582533483623407423269670898806898024279113511106169266317131763108547001475682098611063451285175057678504519900863227600943980297720804948194816286985006677265910880076381366340749682072252279318930739119032786948627904556755818399081871758918392215535311510943009970143133296055613390177056585566711742226274610817627925204974138807307074543256623344180410108227463042844145304758935716993211077287393048169717658886073729610409087243677629256271587235110020420602130412897499008658348365199074814124312164424070421266418645557492655816744555350984942615706350522537649593614803732013350602796798403397401341190762789526812943671720974591699173298464996968195109777018949658211039667206211313719076022539081396638767706146214663478379366492635687461381708097276847622934904131358584968901815970263129657917736269704811932870732282992616029211467099730386417788122154551072835379763091389193091167839929407510583378904512911780001854145719237191511830356798064736046662875681642197398989260686920530092509040398008879570530310868361275575401930521792174216231714078516395707861075690990078510739205536288646574220236669447145292008712747297524774815012694260949429549447476508592871218652001121322476020243487050206138370663076139121537588516220244676300467165810506736379719744618219188500557356694841852429582564932396886325905832827373763283714544802256711185914523804854062885436132126192719909633725336725394608893994220880810034806540788353872052378419442653913323736573527120918540742095633620248352319418181135144944253257918794859315758241175940166955079357156001088657253152739605338272318654220226386446225834798603453572403226562502513365582765342911330228485251908811730102155542432170881072344358990619143861429586565506867788686957110603351876642169202141363403576582465857563527368571324215209555194998507092820469379051498047324917606852896858043983513491095519891943937883507851889935859764771522029828245890804026250724428720663749075328568293920581184008878240930518088960081854280829179143042204037997605207908434262911694021307702628440057967549529847698754720753363777041772203544561218719863424102245640430099476261323289982616351815486437824315144594339977508975936414461678896159371169689219520318036751088454359337833576274645735069384704319760782177916346593617025245046441528038018579837665971785060049395937055562933777914685643307664558270989254156288838716316868844077638026983176065173934659181624280313138029935098881647433952429400654483773282659217357717007483816596854397142833906428102623014491666217985403508864395384678458067458290647211773601423979237796524661212509968257628037076367000321211955794738434880240846779429300437071345090345726549545642097379610350115531376894310657506364463928225296700214887301208067335977316629709456868570297487158204658705513589450037869505976299732423818259368835728852884255027800757323907667651775400912885719981760696073763754332433270282298367276144444628300207944099712235212661112712829288984880137922313481529202161945091121539088868263242124093783710381293093057849870443712806686535307603126357937308914025310639974320154299128211781056872180867395536846149315618698627021110785639933812308636347956485340135645124278196899191191237805733403244329012968078221812459243740431079703720728739637929166477604721695552024155075979475605781522566548269150745059384291703185445367093104406058339227441609107655758119500675351289443158274696953735257645353624998329404061364237038037901157117990132792292011789554130010017037649557671709025967329013109657478408402734591611473130530884740995332668074049267796551015302447261595133661646781964463350207426668167614150809174762180485144051749112985343282264888422326161973028325170807973946389495300089624891821572329422554292057418477924701776557022571417865253717469326429695705144484880989192108251633298628700113613280745616384368436516794325987992025217786901785051657165786729613430261574389011582313800522126080360568810244920723876406576831158447014334175198023870927370270949095855861569852428490302428294158212022591367606745560271853474798759292369703853250604580424588055331507264938734434349720624036940184945999291571450029848404935582947880594011930069855083569894714908865855694736800322278966589162091513141109938516496659319930675577311504183421366865518788988979628736419607559400137529049157880179389608645313898555673202228132550271438152508295692467010296793721069882143171972006269805782669157716958418119258976087358506131894723120068996613075595889533525032604862110070976137926747853783434483278676760209145292762999320887539964122751673741295898158759707218357757765155348442407443835548161195264932632961804273648896042746575687812808800298960179569893730972832502548758349299658899165267177723433954141000137865963498435680485840987626718217406269571054933606827836106348713624936782086078404094159530864374552415728186493757216227713769772886784897166456083936032798030297501434332831081680278416269101148440018190558677453744091258450586781642735149123611092608659290105690868606247929668724340345866864151942286649061940485561181835864599090501896822263840340937002540026273397499429308966585359424967719619624394783617381249855094771938130760225608868089325447259355755168442223600212850122784298345259216442985677888160991343442684235316460961407011674155260618607893392311643309487923245312708044409555566191827487670273079733187434160248092752425183711959006503295198283022592782228303731403486447095832784277242562772535446434926261561419257000760382293747156892456122911303570659928706302236660387212419006978566126932218827322080025244050904788490482962561454071144788572120901253198285512796567430814181750605053777752531220241972348983039253793656627752756875449027515664034689530160454861386742295356856597170347010559508519621484942505619281871567772280563346538647449286235796277111417814085423190297385445285326328329902168006736057435279970654505435705070427274109877970617351101301049865876857492396495830402574853328235773440017493490855052166417502907218199867344049791882673022233085951746097878393005969060752220782679055821582089079675602273283966365372061785202023557403047762726866896988820627163907982011769629005315984743024245476140414722023385669725827093273975227545646842401719077868068135900424544700761801265077341242262933287492087706808469604458820261365173302379608335033143506923237271314037118816847380479870685628557003693386937954462882942173646265672144582491818104343844874783103927454226796582051816436437237812001647145742997791240107622901434464293155093438205340531587947154279028241803699605845524583359286554388708437826691135352836914217765057003626469714457435373986570929348013069420898386439467429785708510370960670484318384691396693364711305096029322356275205754663217077983281623667989191280169005449692496279285562333825379671832898945682235461401812261653341876592009743562968650066887301674375315169898085462381490928878980070712735592292295449536771594254699964555908028085658831975943085350120585331754675226556455110937472113509428315228837555672044459476696948310239873977224331584930088922175673780680230094119220588160820121495877482219735754623405858544148542175469211263678861223656078428945227092234115869684947680009205444501681650992430775808866267520472070176243338581261961690957947474946799293793734224466277731968375755618704467659308906155170855239555381145490146348717735995284049333292322140352448077505439904391123407746439227432074059724634344983684821807105544214080975725884428243535272722404404550725058380574512687091095589336618909772000397713872047523101266864845119225865161485202090598866774750402135426946937807888143836135142736103139546444980088250912404922225323084519568676732871345374299525934824016648676595910093388937754034641598561415584962947823167477242007682136482037394673642233302904413588383233855804435866334005473805773408785272727325044067172172195141768198394516462077256945086461165919515860535418934144753060547653035845236746442410882321484453375437617931289022900025232001386557389411376189480979266070021109097845812768764197864446575384951006570220544306085295001276317068794853719190366337143989913676198650354900405371397927480757184195977298411716212152037169334600206869123701917446265244856253406461298167915175398615471259741762444362544491735849837171658031158791299316839199102583684770430375307501568269127590740359357203125202453708282474979409191165491012673233486178797194671337119471511963502496359300184672927085805323348353030817511994500761503824439572728852429291385020501896452837749992101657103211642110004198136578392972717020640809080027546728307676467027939910207339146284481137945457035102067146406196707824006953909667284613260541638893319293638902028006478802460853157776197269074683837819633619594211814951158099738308348164241685564188580752192861533908523605235827974681917863495666207122385272235680603735265808166876238645703611274036707773222628711207397420592065518776250181948296944159289511118367409708557829815084323319563098987023264630134625854812032651634359112202518684521819830286273817999196463191012179538587578881302690267785432149470898276885718171668440542977986296873952599095154214359806980308479180536338173218488730084843461782124232454795116242352502496055254411813123677705717568260716877263114061956124883842954573707933530212824936364257924441926379870699123057193185943995291379493699066237517325710469392750240815584497542325080541288320484863546515901602572755318417995601311483113249000489106166840744410841719716391005715724063369341165816118096146595794831124739632768083781210105558732143323845546942090736956069100982036570089432242039857820748205296392186397134940388749029224930044810030310203400024408908457661437930322919182550823039940880439167229676140526752367669398449797603990734184823424143948984656692368983640245833985743698854495048309564692365975520716743517952709765761612801764778425686688935413191187526850379113133291735355302256486384259698684244202601722961756365154077258819501885230735898636852767461982625843042644974767601033115173939041737788497489214839917679804124260174791412599200528631546554431132754770583563851575543962303547686551700822418460637870083505345122786489685101025499968756183007851531725591643674605187871812685826446921361704501563521323628093609701190319476127518892360705740992426542421823815028583640341231653850371104038834873519647018408652666413721314312895793025142507942589188414315224224481238270486040141060098277149492950137144639810905165678320662090024788987480161129133372905754675567431398808305266602865643584325873993021469304593214737472934437323293087184288039015325603774579367740338141847953276808559451763820147854370525232485341529389086003034877363339667691423576381744273297658463771285397686502552037893266624212672599357539046260033394767063848901884624782535800704704598917028583946122950400457195780576650650609871280299565928614922860877964766141657259585301980563525177158086303172795979126602006302520925398779468919997083067695533988716760673613831863996189804880914352584742328686013057129244315969445516425668382739222102429863397448013768104481287715577023107207193909717033615603927402560351468896625337105201828201658477883980656783990228007919235332585635348913734741073470517525081422842092921277646090745155363907590805689898523476391844787963382248169400072291129794175590951666829501093214565048517051971967276354502216431786889530191658443027513238104034335359516068586901743748532820826650928211546898887795517939044607409138987617055095192641802131212510102512220333971122009285088947877132992521271212745548460975882632152857768462463332300960954429360758915567941401117203374116507552926403089545555845754011711354723884373705498037711123868071374805526494258023173333516810251121397100788944295442848701285448594553307592929094642474927758329989121314387579028342618028431477905889131802920017129705299241643129473874116269032171238763979183623432389540000257536722301838759205892702329143960543537184397758265073915306664464161341991087670332764209880378791186905854490137651317561073677400721532750787308885430895692328804743273558795803494476033772223202531413756618024575189583148597744911003939222600884035317737446967125629561576633498814328542937725672457796950628917557976075827502161034100057327742867950835959466697373139108867277752288749586578477881034864620715582959037879301994686003815376161333769419375238205146025617841659744792457229352317443528510592466076264378182090102161265978964647500279137847814806849483662850916807421128577524772082901653952674899564593740372976317170997084809313868905581025747078215885790829136503810833172693416053416540177814059018705348960138393663643039818593161082718046538506362416901158155695302245356402957679260780381861054064702510244103775312996086823430006771084611103331531511565222820348387492401923721601008422813677256594762254274271331209919635885111319729929628823382679248790037935187108520779182902951229421123697240793752460289764112532486604755243173925248384230286694846122911586019034853140606201388887791180338356879402281319526640092824824572042751504798400196945533442619219121741216764500969517707092508440109768344236946948758033887829596486884103257597844030713319346770655513899580787053878885689059239390346454074711274643233475166249226896818689379741087181285307592797592006994941989006619563819815433702430495478344299252920964651602664831764098509303624422688150620161707969655294973142756643527113651431647789778785053157917587021699822435364973591218151948914713237948543868676759667714874968121973281712297505910009139025891621102767408999114551766248245134199434489552731013259886967048469467111403107606480332058560909735981966146499863034924896570427759687944825081243261012959117612497415505241057017429791253697094690524936263241104614678437635499733973233588267193468435807120683537426876501104871714455240195005284959672439425579365520558072724936042983558973291608350004592491219254773457485374412286365684069129679395563807828370689782049333475911927670302196938766952570816381189532085373320981683036669245909848665428745717784372739094043579012158661321307623066186091445344042301786824303459704327686917851522991413058639856129585264413840725258616711658449310533498638723394877707317746738624054640279262147105022323819777100041795614379025321630537961814406745961942027063960623500311372933708165115413605650143539654503374054743180357890128831534180871927584159062050362167002842616018617268333089577574171042915636185550382333160091647408434157782016736515080883068886086982321087440168491631138767537260272635617868803330217034100566152696625689580211701154159298984447940771409725930655136860675193839136735627211918927381238270623689972793489019185270007343693722311867745891460835078525247041350678646962769770072922878341823746778185235450718299328451557133697624368931812584711463815048645550954820464762803155033458043733725471657311444137925237163653149659772447991393541898609025523227278249906527852608604219159606265620315188005916303659203185007718581876379698299428345611031306355896732668591233378755187080153132619736392772343979514142018559077102465325580023649561782082544620627334956992862006918461589695429101877426194156858904979861256167473598112744858520660182960746096263796383823658887595731601561932147766687430950116377070553830041825992236641437314177927822971181038055639728704494747599786712312413256170463812503437078442496646261042483348905165808888638021524583131084732509728885017002084546199708087481423535273461291861690329352240433481766868426556675073723608142503517510879435179801905681123816027061308548217584619678629394412052683519573917384192398561337233277843770393692894889800113445998862231258593017391878248318020637569902202535221684245527280821462718051877830629992675838250997665315664798896684083698996451042447969424936203641390958684272083350674816070016320160612937342610279410898235962352432825507122034444220253896877725830650177473909711278375224502304852189266665413594722205261758452544389872389648825644121384001691586094963233929621318171241448866348849218201412487000469820021100544805588985402898572824262368038823347541569261004917520735837019049883796210924341078345070305922936970281309736152887179510020550487705574413880836643529601192381259407488354519169210346657833405064108223784656366402985003069123782001919304570134871570226299567325373652198310545996082954952737605284386303747789776346225394092238886731072957490934513550728033439177236604906057422873779970578823466213350197393894850965499201480380831255018315961413896118598703098184408581681582934211226121244261940702097693501433103922676280378515555899481069306463243538247503670461832445083201632241764125739866552534515457916866126705674443610656938350048853067273923791923442455643352533739136914771694865814233088170960554045113732527870457173808149278938548584805272485957869210674810168673789890414166085885238392613535992205719212229175048130089612717294752617333017249786191212917128336738570513384037357019136912252954461938652438644583209308808564002114131523994546453263218747254210191476789749909347404458779352929549609339135107373397299017840919671299337692231094054338536615326692030961125725360723294790278576996318629968825769057907015033746708784481743818125767418783650881762910266038234973822097366900317364757114506921912222680040940375662794195696744916718507430942206816088022487118182443008678454461053016603137111804885618420601083028082120154157536249197702584714298254382577568196551556646101101314572863641526402707410848987322661658266201091728491811173511192685903442834499114994339091459368326725047367527895675194049769865807645694550709170598739348386965240330981815574005979818078426091228190493495246281419120075829577386248960395167812627024842895787143685463132080536628450880019937436192683916499495662052081994961887554493217817349238551676521166544298209106082018785539490655452937280108566504540272654256773111614603835257455045103017596054000652960085001574728163228178195861044377390573774192462274748648648113448042153405094587149231390800337326792046139566178036286249017731075332696945677778866144831853642872272957663817322212672300385847393086232947704290681007145188532258574188086112859173671847090747510003902381683277583214902030549519577143705759039022507549002797122842257781056908486736866457132204197549028560521737119757436208556161991934820490841090176333878809145031917496998869396118935187886031424476260229964337081052533586238766096064547852090030925664818543499596628712351173472322952072948230087523650104884297442258915954402790993981847250938880634012009217399732357504942872960108745691782136038689896690712376924436335124528777225549398288475567942582996469750155779627635947738130916089333742640525004491320181928705359389684968552741619589337784944435469621204932093213728450652016580252673257730338571942655187639977803192112184021905964433468858972565417942522535037068219663307606195260041305421200892278494725893803599925171777796578934790314373347566105074102096817959829369268471847723642267932892788545951434266805530803545820514533379358332659589551514254421036270771475429362738635326823807850895701699061527593865738016740176171323745340959658058729297468330777941927150970614432775035787975216049270941786778504285707905854599928246291429172678169548073405024814379787247523304665981496890999620080809306253802887722871534777026498408935850703087371976419867323242546802841278558635031571564859024124075362770573935900855729102602532366402893512331581604295735724110320029115131392211097277278859780282856710226025142692060327640726160464959173264453632656429648168203858388450701346521587825350022227793466338784944709688856519984747446072669135344936436065431741385571808534363357237185549653207224965045814105985317442297610562247530644680289620120090119974373916635107497616825934983500857991306540828745869770618593990254056056129116986632813275396547791944551288197879266152982897573273587303964756734659685944935332634905896359364988451446204879744168799023132226357460927758122467584831988658733449179506487934569991576358155326796813819850021101447781539127639477257033827976262171937000004985267363827856667068722610590220590798133521019424079602269643304516415682986411170868579296422159838587346502480579992273570789863499484458276888812208397194249468592958973257767298925980741378933148440788137701300157280457358718860955458026097293036663829104168808886563756602008022259656014686271920920912556006388112842349228508626071295110641121297722213789992408318203751732866918753441955486947118579191462067120184936844894560437462907246646288148221306619356181007132882688668515626754470934976017779554823713907787307433960456492660707112817415466065062475912206321677180986479707082337217098948519494624904636762391981609070849125445953903830052719850578954936142683922173557276397217185532269687459830254429995817929011371898739350440760828407832167279728169746215607314998782285022423445624102920560794781798517191918769832028121775086141283053174023910610551978415379004406788839756922783370772318863082014563441321138756245813557667691937965305705079119888213390455589817205541617655648886304921858205891930069161088913767528990353967093328856648567017892164128040813884581373088884626707224582416679746825424168944200141208472963371971196465159149792829853094745283921954176899814331588384714185158378754371763243429823803513930173228407816338654408607512862556474137335579145975143038532135044777384292399012458001697479768069715599924062880236109438652804970412490317985781756712250421523538430327297761386189870188340313173475214528473874034725176388391702109594889351373834052203651921335610339777369750976917207065663506212747496764846132796162208064455052638835845784193551248454877179611347599695458349421226721320982436150102667102216634714485870556172123324640594869390817123663398327543931237574229827453143559719354648343357657324985457756127957363694521078427924467137909829663410764202033111414202487022043966381570287481266830825969241038919396429074182075735132650793429173166940801098747696492808742373734424291174366097456327626890362738326688360355789769952573708099975508934162830206905876770927993934609939038557363356708225599652610867054058024093980282402542123352877379691809571315861048739340130974063790344513144902285609120794200325079831073930398126223469185941687842530775755720027592025240849690951527036973012417422863547288113014432309957048804320595563463523427974423044792949148501994581440208762662157720228647657336317949771421879935940521139660276187145932767941240924370213896116331062180714432410110532859488862542372310915846864122101099951369241346624546698498073216295172714168751321046234340319546956555204299659197437332997899104041791533020424494704103005302211171287092698469831360894952885086736329001580966888916040092576523654835771394617868291915134265965847596532905183395409402734151154405059266500786153306346758208792415799468421154088569540089822878573293192537971239448597570046223021193661541644411516296865259736393347767480726977805639750033709662090215564864251986509449459165608151639643699731391717341291677596347860411810816203090001791726145584003874119576849294777977647399721008594625524177266106966076682290008604687714101771815562140248905079314368554000728835525529783999869202810444700423663141197642723810880308102404923630388874982153231222262292604986568548366239642619457752354014836491233624571440645243810356086151779846410051173777186969625977922849625110422773452179693059384116063593264296714542099833950325653351274450270966121618336669881497419455075542159918930031942165246993149108487104914976392590021319621877696206526867985519028030286972711131029436164659535978395020628086901307833625159986364359263384690946574281142645590178103871760318928820847858899549441855652378717797655099918894412264504075791264808607826929214742207663801073885942814226887394486438272615705713901902107742663797367922657042767931786200989266552346511761145437035596565959985575901927822922055924501739090209002815068901070334073792252395103127794110624515554677354142522393373273658825862869116195090004146706649361389703917033106589709375300191425996294025717804585881234681742623558427660151060190262986418864778323814045703773797343461945281637449255881250052292864253896909602152818927106205991316400966208512409196590738009558345972467092418266589522711278581134920769946460773668913737400191298182099708213464173234773702589327439568969276616606466593736609953606667939589704568514900458508427736745965833101731687595094811395144588529413943678322331752329953109253231723498051880052021881332417243691097269071665821079928255261679799172874826279661176072957331639453440571055738322620920259859181373753772052973308588467948845308876127469163358972090644603774258249385327010792336477833401568418511716624684990300173158261696040551163064571380173023006280265732354157837234767895993314441357350656242817191709331186539884857068571253723914918776191740599141917818469608123145183187017773695314365492797102610557446061071312694463874578539628518019884801034956811573929533323302243596939734616304993599950686724220313852395070920878008371237631129104937602605351236587479248980093353373618079048946685779412069086705316867413850894018504797625242708074208368978597604654706671552467094280843653711171141336276530639723818858303204650465388293138452852659662186899687023703525292983488055901469043768599056520376987647453185857875220385547454597831763740222837545013916651826628103767162742849230396576089803816402658879349211400418628039770446252913590173311594522314344474204386307557641301535342301460938428010444400873648399638289923844131898450416471493556223336790040988225281914240636277256192291814484582135092021483824838341970056921186033846918009658395810157280503257788575547224541393682496657612280377273551585887356440407572159320348057994279442000827085118339416402142679841567302125937831540457530967436877962714684210534577521726707147895142564140206504776731023023449280926122232579169989816020943142859635763381394229213932141790106510971413329796677251529406984887375974305038388780635188846947289918931391658184549808901143425337190212226296351601066188870914331960783781277765302960441922617002350755026281045531563776405003483776090451702478027256358209403406373387868867383171249229262923461343802844133439455550423810879760317036801850731802480457102659741571034217370420486782426566301678090943483486093105028431751642101305425319513958354288962252610675724997451085386271420368764125434992424906484861021767559792982578124425892181950509862899528043663433154500834389845288692275463276522274663956501243757713519100967744091777763064538174301083144083143059866169810914378453765902387634243655374245522055580555572337844741246736139708162310985745730581455437221757874399069022230501610961264532495550763638163853691979965257747333679359972219190256785360235102577491282049755308810604001049476442579988901697293585555487767762670941051589092178987400849072192053572133894420941021131899821977030809558826019335706305040028113483832334475886593381302713682724548633139592209604566658181512832941808872162329579866516531462115939928628182343507371922728028372606445212591383720414083534816363643622008618540824255635292427913240382443825210005380818391444996795613838699168100558837551124427163366254536886119174770860024137162932420257564766575533780162597476835273407382089830940538684159861040179453987518913334160224566917593087964596849547615168511045849171578378687225864040695154015540343303029455544820839568929209698171006646554732672759066780788291889689506829451593666302432341798065979685427840834262373924682531579024544109672959976165535833841890988307177798141461628393393199584769209117074397575822034888729267844620388709850448400938247914705707822707178552215864821738193221515125544150433537695818163499581300391623760542244304578010130749050122386979287272980862545938459381985234373174260150256188074334879871083510220135746437942749210266618262068306153633957648875045586042828159065345598658893201081311228257390038101410341509561446959228748211911686940029612031957912311655150761933662337742882659531186029958365488602551006518798974327800518458247309456458745744109437288418480644662300951821802430210264046368813414818605726326405889307493585268069392609807574260553735702759883393432647324489888641783825633252724859895274936407987930071836973968873211130025012554023963685454681248239655126222196775948260800088529018804407494776686455497359525226568990591606747969712609180137744152824295318618049908790311315458586560543280873710333009002160256373531738449383361925466618101925304809149813336635627082928678623165693223102545519240147888472416203144512412025898860450921919241947594790531423293299635113221517025662058653572308108481018254608378261458420674967782235188521593654586679098518213492305597417537413962321612797597087528266568373753365433486775000734748701777452459205201836648827569081534605802873789512605545011206608408473681014932229045935096635723529160895104965351075673877808259988590224786572913561575547511706130317896581086234516818774483661399410742195950092297316559016394844750382666319850787939936199952561533131527282238997754799624633232140228642805949933725246511623062790738630004960704356394598026903136756876460978057532907092260721229103702827030634310600835694077924187542746013407301892554281007786140414412006481601363091105046019324079535484308169089061082367980323976093936399550248372593507706032113200574978293965303583976051395765612567413415226384627054731112310936032966471493212303676950560646205593983740629832882289712942146714538164463997239805929442918969905387264534192144255964843455387188042309625295951714167313469626782830718780158612228625530850869054990276059397191319453155263290101271822378268580745486995574251554775545467257075878724174518699284854363498633006276425598232142717520448488053571618719228455631508028567351735882494193497983480939058789449253686021424267209069926451202437441248944366947833931920782613038078949281805456614249732103023287458292012825793363997049224082514326122131430053957278325204465816520422846383019460879309812762597883419021774858996572731220481891139560296349629782213581719047149510238454100581540300160509496185630623859847834340182662635172448276440190700776269905413787020967228484893296117096527610414855864327582665826209585596556264440057485888704506383252930248557478929056878088155684884792837823388972574302069351443882652707066330152323801982524815949287557051182055941568308134206726936595156354085536349997813536701494169657000439567955518754350244324221349479074961496003917779752630262146705885326884347915206272221567780228633667648694715542687709793349358135910739328679377510137318321545724243119742926160456397404445612810666939226920796056092055456330369575001228164140068917105243953675986231319493539197660437659743496520333880589317855187178901171570982008467066978515300399631468347011537431045082349149684745509943857858302566495843426309824680666383098685111244085322246672004899068366368117323173533258598468767305359691487049785216003692656970458793760798450630102077713427592832169051910834562547323766520577733835427773603463911813224449666796260462179203246827071952080299233702063688630566584137305544442999619262583281335980771389353525490699637821661517865190368412032849791793928666199057658177525597829595329052802766116388620168065277617868085890112360957958298823478494362797519177902837200227236821048045371519965136659478587995482873522124596915631705296819790735502458547335113613507433950831293200573597337644827582109447160455121762941861189139789849439673415591846238428133320956660803219548061126917543795393284454296221727190615497356960396917544400518496076791246102066444940719765261782648842469190721409653551092530988959244893758834321058372639116418931882686614025436445017465958086140022448417470547986088856120196646758850533614315811571063973885435716302313520870558655825636404013700530345841332679773805138696308028826039476222774275994981217261990176505546400791539015918805020240155687475735590108268755597715047868582008051864372715811333119030337043035707163150052889753778708653162202955709381222254604119118183967101986851998584979613618212403496453094992509818970118018391609858772970970208827108928714038759053338317610624593876461019528743589350173340836542940133111680278109964545575211257323932516920452450514620795817690627221135412013615890865106245316841014099444711429581156579224981372668188117514824467693527229519655042911520908516690690448624817300337378455097493465005152083018573132210863878805884943305402957355872729703517434761341319385118104108667819520429526972611537272428819845822327145294719660049590472681799750588694047470980106267929429001600269337208178233670442608956054901320784533478954900254420802612347551591931680880566062663893384891489718241452088182277443793699550900459619359197341640774474909004536353171852433349575551049942337700941580445672367177270813254576582906654868272805384931963238563702000179671333830523973855179428027136988004406137272238651490267262270902058584460127116396299204764789694839032532777368133696360142873973758899522781405994254024486012418745948314881989767825194559185554102689832933232676248746098198067567046209401540982612302581669950088447358700847764124512947608198847657485505649713788792619595982206395788724661308858758089954846791382322230038490326817308468889221464430808601002262982112244715767321646867125283668488700634487802230948597161005878129078572975372138046241048406470398436371582322116237956956171708408669393830112166427704246502768310569260975047188048556093314522626977645949661434911692499105209489198226676188731738345010650776904816330391477275426518127153551803908567576912874283672968090417284794301646580476849037377768930346274841553368948166531323897585701546642221242378820337221232700811462907433200439361920693127962719624396246589947836216255885253219228591533453323246855314632361191219004617006121327151159693928801255618005482989764106257898251469235781736107345636118449633516601951154900009205760759401278570207776485157721607615132505485466112277697974831454610462868328135857046642194506956740491102499929545114222346018076969782550442968728780203640933227207657052159486283211574791105371817308922947902006598704793039099942865841712247361796142474193646755904929025350411882226021376608189223183691807624652853059133747880220672575359487664610074489779122374585843562958029307758913987916483262465796433686984025680612654691289010393505186214105300881676056250003585887987863589060234937487228152725573026989536478952444574733346736845355448303331218199273139432945939162294268784707965772336262122925579997005533491176271923891422855170670969523740304249783752561098120327626725864737354052385156892119519277390240333906377047987071714185858355202371889812417655818527512150622378361180989262332730578275092791816326631945319800148671029298803025413045905683450986445695212739588557935673852309315948735095589374086779642585087069079154708516719390679665382429595717993289679600810238327458968155915737010500873092102492684873809944411043082392299176849988442995991990804761660438861987669317768942070320836818396103453460282160174327690479528788700327801985529999463859304419502139491690265037325293613746723113382889543548026595519804001393930554280839267168925655311329773366661705791583976097827315325938753389417061318245789559277032240733112715870317430859016633444610765634704323940663331720219823854875181199589204160757575898931045156843698051648875687034266954895508371333320928958466304704971245648673127320084440542742572342699581702926397729460214284551529234529226077566408692937054565211038633117691374463038636688458714729894655326576259815479407902351956240240190749968648286371853617028914452069563798013390659599986504004952005303729118243021416119945404682310924139100900817138210085331908723433600716067832954205227495464186652596568020581635721428620704567195139716029198866549846538212654739525690415370890112175901956306764946463434067348737105757234947248221009030305788094612375784984271737703004472515130955039861986034549214341529256268671561971753011792027345462796109932848112297011218139116240520428861617201301205347530568919090045274138228122875943057365795088073280216949448917854535561080459764810766616188730527890572804632911127519387778524449092166657695835751841191234622309518253024923700349046121684266758630534734214672540336765924933115773335844265814876113913276450370354791416481819024635743370601579753862684548605673390792003307915077546691730226647588683404255100921161689030685188463397244124194288363719611093175448254576273539152512446281248893644337357619491171983042517710287035055055000094117969080715700599762354545261807148039179161092725202247621089608714270511540414802617488215064752387890936620724695288729221608267365042390564118223270156953882893634144798321108482256919701617192764657702509640835324611137769993539549338351257401155697381836034039419585846019132070792790932378198906494416513120445268991089147076975758801268151078556580019054169181114617158436607864217312521296018915909871337912731878484671162459471824631744501974389926681947746423820405656459619763248445481828481872542757492273227228726758018796256081855512853422121817345051736208367298313445825315142199366854521613356120386394087959141399015377104414044507091924484757201630790367107047102557669855808244217093895116851824452956766235580261478189667931558832297189678010577832121993452037415529005495991875498714051669108338977355978881472122892201862856507709521271194982776302334040382921048793616076400621193586514606884336286458184535968118623316854245287987406318724802704255855283859115389240894339800527232461009557511165859258342097304734196228143090482861104297704163189947564275849577646531645279340644410361129159693015489751289113290467569393704703026274242320916526911082963967182693142352771578730556322038550803169232511887503471188705244568113080773098556492268464342147294234141214267500371031384575232497479623312534493273956107979980908949975086106969658949182397039367522499262507469661504981044062716023899501498343203859462695234795377994504128908804233112282311294622598224375159433878368723434859674282211583343938172696557344367544797316747043660771387652941788811545796870583369348839221838510665173982125075542601262826111220801952465944401965430862302235072796632001117131329601856342982330785590630431588408121173716253572158282513125970214114164622045289331867391984306351194452481904396591904834480324678886200264153985343656461671949157998629376961725044271712955829713204849138235664092991270161794873111761450895467985654694306109672157808950481948237680826597580694993030098596721640936756733359064157073795621569438476769184137853307404999519050558806032753281984252089896762145664804813257415407179779127052917923217511622495546426234441133764133558918591497176349472484356030829001910273361402657203975637869257896428956534547195248518824839390607548969977354603018241724196595632119652546506687768567098243500169651816388405476309533534239192435617902513556344255471557537958752319132628985017588446222785796579765784242397480473735260519505698994656196210584910446616248477896242010468744989321267562077655436607276203239754458110921743035794758600704224377894799799903535732063012680262702982318167748098963097607727955165562545354450030855661259011073627826481066432704308192551978233279866357750204263805569905038217597693357270774299920348688089946813952350746570426551779373922629020711739399812854586704073109311058277155083245240581456327743674273127128878673031496867583179836615626930036217383241595701113680367799376150815863609767955488759862526699433190334317559781838365337409270402681735651092492398285718714137356063339019653032016250273990237494104619054126080278999784366039574014158584594468196529361709007865237613199362173923093804193438151565478405231870587274980873887851384736499757060732414804985858751659351838895736443691657501148174020866067039334883989309535887077290682788409409860537216909484473353309049352805802759335970528962964051715234158183843233929360371832943129972553499156670733143201638318131073315973852038919706212001114955136030593425094107033940967041691315279563702859368961175057822683564233338074830566443041578848152690586029572755200750127523555274052745430821550158184320984396141263675964785858810753552771772198233781605148119569234891091818828585742910809819961109575637946051752232649099202632758556840671818498309710508436211118192312277540459307505470180559016199158730238260121974817119385412787180138441994739170505246217996329264391268129465249638910240198690585672596809085637441623623324226276471461251072076903871456720453593503096105839569150437752641311561527011518786425809797065804646535066267894462790840837079215219868461333328810415124343795673782540836174227525751551615751854408757470259213219321692633039081789557316823294126083162021309464144392357383015657150386027821217990476042208141214583096039624108434221516242154519332607497374882785329934715082906817061573449148217377016417710324698343553239796738149999748821397086852356694321991546750424658127738407412696931647498066911541685564134826374216435709200035141817125701855270843809054646631653851542167533603532824612373030009369700919006502536133679231527138997993544183040159287913100339075052648904917838080159703539140041624703330881116377629183345213060871035947633038354199105607877567858636772542848114370163875137247216218972863635564576428691198807574411387532131102224788395974028622675900430324742164803697430610766036262388170506816966983699819909370781970954782497380746984675479312597505885536177717221176683968295073708248159373749501870972410957090346066817548280679256029534078850583032499719306170260092810076776901945935507748090629991599428181641175479872664978192744823534268627390240138715279243129360565981373862659899144465807003720014906855921485156827853812924693394183944255770710619478496680315694390702503023369158136541411712872094148302685412807291109325901144328979354937088275725720477590060066366225012371490257634569204033276341281065569650871489333010432978910767523849454901712909771383001712960073505445403144436283810406667786194540917471161872710590505445051319468239940262333440062672422414709054199569819254422765405432782052887474353737980203286461489521729665723468640568981565400909020004625227043052629561506216554446028554258160877321846623194106841749536380670288542420548723054790059990717732554760163638916521743147798551002903416054106841516670990705949629356799301108446439422828039238227716841239879206558633142654121045241350162639821606785816092286807465747464295981057985044940571093779450015322617491547879363648213726411688566259492201568632169212566207506136535389327737215679588574767007775615440247276890174010338883527223820892736850192750851048729130136479359644090140725150334849146984846749660712408136115408580276599457843217742166330169011206969123221733967255284409584357053585061816822978726780231480063045307763393944857573680156485882463237699932770515001299374550845172550194062857579545782823932617400581120967641714834795469773597207103614358319870577231557811752614631639201956544237243292212156794409817969029837324654883235330428935772953131857098438705535959219588391251593800484903992416240905502846945226349332314045032953133703679475806590935890854853526710688520302706072022940144814878278514636930467028149148811652609207223470438303100754720610576009920995196961211690598695805430928702793586011113075915099538827387281631549509158400519723746496252820502171810936949646924187856015446331637831597979174293653703011688540745047092478924778435484451474691285937842594457915141005887319072920474456632619443404214429133793021996532408652202659459976742999910196355881432879137448922730615120113778852090372258637733468462516821026477213487039294238256639835498057813730529946162844287767436727313149762669343953142999989659986367311046745117334250212471966913858376798431126342826043693418766667967429320376717593194666701704676466457923270801208446721418238769873437541141227847762604975160187533265173395700732359746047491107760720127904692682807347483866780758053958759277998112393054714712347539766546980507863169282261851372125600347546812311988337801273196036253462472875440693902473019265258466581447731609288607786243078370647752205981107409436792151325701272625102341409514258812970603393911390660781299110420574293734086314373117580678826366678281652092734060946258416654007718657184336329439343678618951035950283727541196456443954634028611799689098454291420046309276857005757087313623156348994225266364908169376899656444948638290467589778022854334270450976045625898000515112780035362125419208777503169969389646876010581769548902653517174701792663098825677591955384464837796160642195393136200552342354000153374348674688501308385350336888176273165780200663832798464634709532974745531623701694413973902478258150881727897118913870242366379623682457360355589197495533411699083134106360449432222191808808678982928184130634481393175400739726539914369547127504831316269364497474144479166215237054181373943851625462896423621698275252195776574167919413359634012156193416018555746861648877565897360712703095997594787380247525149139266005051510717103920013440719486022670250391715335517993241596122118703801735194521052634453493519868448246756369093703344561278101953905027945541479130154737874998365297867827808832874283475630913656759981474086728263030126183329911475669306917884190947889814557698593696492828693988731988762830030239488352446400519446240814840546427848167835960906828619847980544808199665016966870377912940583161563228278955389038216769762055080048214445191240802696203162157098630877522562160055375719433430133370256580535701974273664246929604651296665811461094479335710732991913332871919843236008068650982007727822054340644973042079167858742077926349017010969176207621079423996148478199234598645297903854434227135983884533593999210809664521775428608352460270975123046964251015872324449378499106886619966262424791423648482797152957380025096595524687123999968708399990327623128599110362866085945199046461871152385622252412918907693329340359148502665355103838252057378971461057688561814267977857159909344895890685530105522130477806863511119078694674423796065077516495095537234431609682027753189109313614645847907342235759799952508052924732299452810063544843683467132321942452790098324584541296765305549200623478493615735827602515409243156574214814105083098948511154785390216137757775904252866847540048925503760287802029404095513413735820468488483547786692755475635161330878089289827921596835388573369317439239726307034145094355437109264377765766221974682597095233211929801920463412666503452791978556711439036520408069928856670462966716306898145766020217360985467380292634167024397439778286008591698598818907440752968267632825901869821701515387018622713296645003948315102928090632959098780749045858249361845846722923876814166018897293175743974397463746432997561908369403077191134951815167608702189231942053841197701318569372982056494961202645941775749402955304049674010852516578157231587436987912631905798727556483719957041346212362808057105906470563577850163941908192748884862452859320576964269009278979805815971740779982178266559907367088321589222960129449082158776980258814185897645239534328019976981448259711633128822368060669096101058518691537438873362483898696507225336204811897259451851424791711400069426033235876175456814851520031339167685283106081869950305139803301412300367039053443690701451449505585694951515511324343689981647234584996736653288396979602278368046870155900803204048294490721825372997279179220684007232224742890369348011204271330610764399034408750427558397924342321767115402366977750277734932817116823453145356498977173169315016380327144572162235863037358848158055363332460864029483505561940489171992490715001583925088396994142686822049130834584636571836594770315210652670523415004814124274621766831939531667210167097085353745616921296537121263923012445363021628772819063217848160379133355128382230437776055527472411577397739727526423959776722207770530297313335202263566403996207311828688138672462147412988896604145677399665811491889173923730871895941552606267940645742377533620226457294906559969668408927211020318080065442520664158650051774236517917214201540626007884132072833312170622968339499974760428987498904519434944406785525304835089485995122327458548187225336343998111185553507963640831174819917308760018624237628747954115568843443815363406164493493472045183313397426443149782225536384598154284751681304968893542324823727635811471536365226155618047814933635790312156794939129092618962558556783419895069262382183244565191131016914815445404411225307396008158658019392271646797197217294240961079196413657199977048434112664858369232887467993568809024667097596013626871243377931283140990876721206719775858369111145068776199828063324492876706067678238589661837710950109294254578164347162131887607375357932555689754207951059324238856698385470330449033150536529818345750598029638459727442086720524014269895760432502220870008420096261199036379472257651542319444173087915187987932437040710914871844389286979592576622593459704651176234219492203612993887305677990261373346466262299729761207446037170123325745908572044214886515531650259273055329118624152978110822582020252327702345666094415819715304266627952936269268342545609443485606496596162090379229468241575294860216603312127497588473454755041128919660791351931040577429029712196783231887479168779192825312838391913233510110347635587784747107869454932216157760178676108414836750140853122712228536699709264199604295951879799150386527236467854377191783593187349410060949846923897567926290879879828885827428211435259476661987936210086349716976424630639163255986487008804659491077781880816775464408476388409274057755293241999345966669679036044898615202306185552827183828549427135934161933423918080785732779325023719897200665821875775884792832163404602547058803864373725156069107847683669567827655457056623303614140336341437707895590546647535639905478306451800932830801838182773885151726689659450450121805619886005492279056171892736843924859256997659223474068037477254658629820636514785537166835198039290153656130425941252280435542886196295951208068015251279373465635474725309526655035156108059239591010989730385893120808587184335729521960647420901929498075375339167202589251369569376113699433026587565438628476192245083749694482857613641804455156203667689414722765826309325449064920157228380195802934778612946340261599609515332213643594182348700534179930818192133063380539777849346436352184944981974442982003045452835893577231123694644360834715391590423902155895485614848132970883481038274944766605434739580822298085221960877932165882583800419151743117548190639918062824719542127277787942297719688832152017190814321421181542059545266926089803687969958564552711975416559812627522467279283806713224483045082723208340657836689096120440627197913459413162099475506681786861573827093458454066837973590655748625575715812638843317167286736561916048386601825389713803542882618615060115426674064763787267206453231598230115581425284659227685105182214963996304872682863626498564124510426830156892943190411136141481366893153761114110000364135895522608756685585410306177425238247128075205572292626304116131920819751403548251062597781358229715385401721659524384360425236463087618348938277042616896252164752047076879496643764168112260155881191231433403266709158101350188105066698697025943289968223230561644853091398144153084127869071484924113214133055508275559684596157935077020522438391083153121657134071437020107917207045827572936227361371785165775051605776772550005246732105127608123091267438460974984551260554107562731415051469682289392473743852391942374375169307813813569888689971596352669865679151824932001277643598512883109508155640025059734282285031654815464395897047797257900155960173150790737386814850285520293743237545249871016979140397457801317035030943148810670737129887651174627466824271229557230412876112041158903544044025364026053262508231778229927785753610399037985407875747512476746243155849346617555606437048780274251539930537443463167774998822052821995855739805926564640574721968563474914787956104742409110879598961338299784926651327326101198118690281864150809023606491456499841491576990342785283881304266369145440488100714669249467633854946224733668110350268223679957763238130148402709320057488920719002713842125301249862109231295237374572626785448582338886362392430494846402855699219332518776283767692972041620358988505895159822094639686236867816785768732073765349557704210692556329021210321688156017969188078824931949410558551388033236136904145974260448990223137539216226291271617416999990325770069739485039169031159411172903595706363869104759021416313209646244404665439848748872056704367560689315999518524180542146171101786096308975779140316499673749249157687065220631414814881647580416660751712843987729505743606034911077051285363522618163772895954096493104605866791147835423300551938822036730985001950808490982964500888249646184491457853286525703575978343945264304319913045894310755978081809146226466494955229687330080982825082730763792327155910639280932089405857548240092193154820625215217999727951782891710741416906437297457419822498873434909309278178750534782839433153049362437399908813201482219746422658928636152880602224121111144336849579201166128734233619926677397440672192814047057976025502732891054712503911462070187396660808021315499206540337763300642261077472159616862377811575079142146162129616887981733786562437852919393597923918853871674870407876497317315942573366722523590212211755828359979128228253654756367328482743407659714190387486119628495273980204693354727951861922020449741526655396307232836800467823400682520866229438271684524261695457634695739241051713177721904588043624504676996085112416880006689833345409147275815144246593274110681749186621608802437151037224840660728065939661847800656746933429392380991740189639796698272430871755534248631068468913660138207990225802557060477207148991779470032032750785780498104343872757752122213053729867107913746687359753120139725935886949456700084201005374853776260579245127333918726989063092064234109068688084405435079751494267713911419623554437969704508644015866913554694287490744075071259338722364888836353409388974270522662060865240546548788064206443924015812387735626006033995391706060712348539057395721611760686663145426580858103689502989893300950055246638257156035717801061587031615209649925514981744486433391992293692623986342537772241583282485201506003261598267965477888477726703256462122461869894926002001828221738810071646082270457967698030133207300940539608713766009283285742447566323013581192425421347199053761250196645376169357805578774418623353825777962510595384616220247107003021040669906869043006119925261491045552736161167521336905331151496340168645454654980134305105529359178154639313575200145200306930208967832873111016814395272139767672251593405447293121147769500212617222404198216441706553767290202973736026212852325407789473168674620829437059802006327537867919225181176955830269939282094048093224933813288734318853726049478596512186179561453064972517965570102655708204783334445897681308932323159441493179908365173665369591481578027616969897523434345738736037452230161216378008503352625944129681298594923896778350110284824108982485341047082824537839184673303150335914941548979224613388849589672447449665150077141436434759178242491357920626947054211159703636198119135196432902994357580537430893263347691865290876734026892121274545817582430574208478683291117378232392847495327540559160555923185064797295229884998245923634879197004154165452008996467172152771411412436082555895184142460499566086497219894348355443013542783773472827235867612980687533242411246728198388915405806154879663733348415345405154830267747763344804791711394114864660216536649362000942910140133263401595313518484942163637127875534187078651098652244280810767615112260191161891565279638985710605755713658782070652070799524782708201505240845396544789178209004723352071511780399739185322756274147829494142927235418597890770743285766676373470686701829195841266052905624371662955753016304037598596458981284147617084767269324381781290721259281138009731791205357484783266197049028531589688748977660754355070357430674342432526443277190039588277770479931150696723811968465532687711205377270109965916430081322405699188508318427309147839001562490243988148173711691760789670586538717265902269836132386848529297982738317311421155488955307150016886845259403547070339270049322458260078121942173294953212275614792027352095958283841428826553057195797921944089316108819829097755713475597275928594460827950296231975678870782748032974527561528179782674127882548926074847888637819951027246434784304280862362539140049926327792043287308571231886910348420302417049855315773367570665020691806732496829070029061918090872636297175592776458651709185863571988960003060127393847848523218566459968833640370412926504117280946907395452184615935665629141778253526209878713901740637023023351389197232363722147775515804567218118736992980834525662823647524461247789739344119059345550381894673878328055142076644703890964262698408211615699910033443233322077710263689510033632767881266562148618265415432932200442689870409187365819382370651372224634824060322011721581868828202535447819804493588372457306538723904488330638025671073694554854038440235501555906118628845063341853249789655664370306874135156952539803549336259026949600282518855677954000891662423014844155920454563830240491430506020479935792101338241905667554316207631186653484621188028078563876388426553790326132754799541752157277802397748892059003836444942745718149733680247836082213918830446302201748538147769974415019781983454632773724032430188494592835919709578896059528427203067820321197805686575353361518561553364823757667673940590948857375359710348993627713454073632601061103237552237875812984323715408315243786276074227428042790468707712056062516170722888519172507560663516315038943052295143505953041051593300654329198808820809026527884844709757808998950552336215890101321214228256314373529317217315855590156298919080094248821208707332203027259926210862212738438775551833544657774738311652829557084680046341549038322251084065320704647254525756558246743409605496710380371933035479302595544441099939918916041870517430415398499157568153133255493463735152028186112295228105260107854681342790565798643325187875803336974852660493522677466188002676401568837563140988849092313205754243792749438022605658792120949570732834016209943280484603407531347855774237382643336332636294186291711592653495368438165568743200304647201953784049984194353544020971585098279883487274108200580532258867798834309901637435576781703531766412611406417641877543289582837526463398509411264009288731964973982692274956816212151581054217087348370662189549763443429607114455843704522743187226735928079848966100830667181653107629562867819910816681679990041614103975414793158728640256578203891746675731002437327712591715395013818772987867903036599516184544216053678136901518980787614421211933683300397951942300416318782288691663654683900106991814034431984365336275141242409938091565877231979237896098732414101938273894296534149740155147260634569409961135227062500106263173763251960449374352027684025097112309792383256677626090353360546967456653613803047030368601830462075460794340078504117605127019549869576604133622687340273664787412476219518498507641681391454554478352883606777214247396010123300043186764862683748248514066219337178303479086181705789561732955436998012626412319022145453494035328833561157857740531792076639385839915289115867300267301922365355955647040770746769077126735032401998245436681288205845468924994703107069587362449736024967487355909015035912251308604783305656921089833278401794509155848129411738449841958135127210425100428190252759215595825180406523858545681008456851189696958254178175349484673532715795322629805116590886695793776358453855210216046554275427302085181631711536232827875584222623763494488574064358902409160750415485779062324708302204238413095873183690665713122513493359458786790380696175148010814073096608580099641773006216726631537810253191328340111154721787895944653484023138983443643755481383243360950662675360517766944397798644132543656038829358522532095219601914932481342703646104409537092047536842290969493194064900755890364150200860855429477864477839856163163882869140131473833557535141588117378287044844030147300618849954101444548203985700684353566961145492283340635541687092639554815601559298611960230712248486235297993508057050852359271954331604729828986052642498183812835357270008207375740668469500366344004919529324289965733857878606232392997150694529369815838065248874435520081742874649115769333499734243653385220535034242427491650147290594580700850764290495471663796460898797853462252207718970511715478667874532306917963644099435840419004739687420327113558972086500529946491225628796982024766336968077181953576890715357195337256344067877935286067526963657060687539289085733413183030421769726260990815327334175403239964340838262760806706653894584067529136490560909756761328504178497580503125022226709158980489878639064712055133881078615173007035514505219644740667259329635579480443998542654295105669691351974552413189680108938282692815205447347163127821456810726986621175807882037710145372124751054596040925810425962468861365443466549831191349811171045683965015918042512480951037055951791390109769848265644110695942466015274544338474794777914931499655122485700625114537216191173451582740308795186690249064339095334124403646231379000988135102815652009069270909019231971209863194528756881962180492518831561324259312480940172332296784709422472920772935585262758912659830495142036093511401601830357320154659568174224622133621058258361343760325222042028635415819853001261888318757043173309748972247363083762206472550337782209703533961212000154753146613746099961887503900642953698244297822789294558384405461379608799462234760714638306290108286406956427430709349450961778984897328137235340623390767389181113227067657322174857175643373112177473787233481599986855225338040965181310624573374057379791130656935144207284631813088589436489792881664939274989847237025919750111049434045557021058890549420576742358464918660515464774619347423200589309678680925346373940127993068374398829895956002035645153637070661805060158726170263339959426731770938921964653976580008869186624921373011539239732852787970174398299316832892205330206701590411859137616202080285636300846446092668338093206528372479812545457977911141507126666397820869617480294148681892160455926787998475890705341650380627387477128319711934878595675031698589910636546017480393483293912870128534652728986853543511868120824082599249672811036279494650773740009582920552641189000636565528499764748420967596239741019271275508420466858029531481221828901148580045836346805862193844953276677849601094909637437825148176459803510206054662494619524411129313735325627469407282393511958220478849008340419784646824546620533774155046972363800573747180392790055501910406959916850416205197970566576012948358312192213874829242439077366937700397818302277134851240569212605607058241540853734158743923202087825669119076383736974666548497027417349088179799932073643248554632078982875348040407558096603832213273341445114112087192958889505079098171874156435595657414540141830032459391519378355171610385124996752916882231906120908557800127609337475303488296083006994197688778745064646237533505080150822398962172767561530875860656524339625257777826206892753308407417947323289415100894704192447076089962418153607962967438832579346206735057513751721853038285553710005121380790723986276204027450656414375182454218950590480768906467594082043063201075153071397842183027798609961291060599060652972919172722216315194939982801518757868482169453955438162340235366854236535755578865622311856595594028684541351184016401575204410107223115435516075490511199781713884462429056960019700976091012441015173747455775485058124240227514966563702496562494767406747101960449110688233664949796652487881670570049487005566155380248561843961348492191120853322563164971983563081610941138122066832149433206385047322238870307989024894184003360261826958380158706552637109740001504278483909268400046468541435556325300249848863295312713646178667980016700522123179240582187951631998656139665009569822371845123457709421116941228258040527462898554372879576045663645270940463843156616198414191869181956567338128191343042778812749814663627601098401456714540068810926558489776298968555456932412831950452993697176387331286729900945263139768043491637524135210010814789460884696308635331801391714099680301786938256205123307045157475784681322500174777350265493355952283981392575050117308794316393730783050889693392299085006819680505208588680186179054438357381302360675659401935480974460970126451110653299263260804080716193990560730856000074819222481834051708243135702553787780766867798161526953439025417838211869626461844760540974427624457849849422094939654866560009114314115998011512118117120571172325704089856254598418375351373886494811610523532623193022295480560003056424677269015885808857569767475140640097285409853401060017207549507972949535652885818576529022139171495612211236656214537673897931674115009275806215383752107681227418206806207543989696935018935853623838147125380994147988099818792073250366026175332418019624172059175328971434743672950875828519630501072785276112600871003448764782374477822432426540742452642154868119390111928424486133855204125992851263398350646481161232340819630725546429918027529798557441205131936608988072521513196609432928259059930489192093821701646234450275926415023113168563391898410808178542760278702890077761290988880367062257547377741098729701870837642761200238218409551761130056772498230122129689016684832107548365971457446321889681075707379574330327928681414740999139775974636235188047028411229243302725285013234616817094596381781617749963326228065908478796741594578489935584105233471243047796491461768386966563601717968687170516608793185468377890573448989001286182084920218738940249571078262468354871616706445156836979958570610351876490698018721935926919967508371536659783266247988316034180181498513722986572363141152030999604817258055574692183957927493900922659148059780271200066241352459750054217190773461903300368194115499536603043150574574001520657721480906474489858284741097581999389483387871047698917154108705541633917819479161625175025920337009098273259928777993980043679603037122132226314883778044865029093405048113830252373119526979871514477503323969573521441215430902941762160067541207532591161156127756651825245160269488472413504122411535001992214625828315009937980062784453254032628130677045482641131688656867701128728141265549816285355465393663603374022882697739857593812869851816845193672730491281614738521447754967053710114548410886562909984747235397042185872476264505920946569043320999232267356690696118135622841775407129847734573431427897061633802456306758326878367463826578335615377864970889133087707886331425528984726428807150351712786737756669343808701372590352321895706767099700134941282621785623106182878927895845995159399604434034256847862693480792905796109406850189388633175647386322835935393165853718183128207853855825062878335569805115862095122852089028921992068414894465135657963066187712498161388705193512052830021812399924592800653342841943623747183453142045607269536576126311603962615208794942183214369834611294694970470185580384660462979747360789207418707628842036412075749012978782960526291312450368985564179530570128147079856818578017570684601650710410924945998192924343190254763543668222767749351219246170796775511365358105199196119542676560559846444446428685344641434413838474014976967167906533707909533392762610119565167321457117860969069201817156171348264406258543568877811562476887372720194242697164359445512418679794698500899137144805626757468361485716051580187676086595734081628235608597041649625651259989494658322754194650102361120522138198797880645570724369182769521864574107794216195981672867491487017860137167478418496697541000011574452662938132248792980994571103706007532026848015784770358424184814348626580176238460408889024263440740237419789458270208323901254176660284984109902483255918403741728128438882266357888804830624106413448831091787295198061705957488390432149820477525469020927960021523258212709252362068630005309736474356243666642834006729747339270618613932810896353047185291684424930910814636035138368719821841229937764387604920044599925484541352476852909534798877741908817834267011682187955000343168221973963261015077487890037619949151288447366664269807918690227328034082447845186214110524056955516628171326662713414397169112674379228643310694599422294917189906584716244991416849124443951931098709150682603914580477662017044684377068366042008681780142847179120225807923168721229496845466591201650160189485730398613845835861755267515519335871924695968159651207387957225768655055940790626799691089652432925897424728444440539895309416734392560140029509067638869649267494800530114739363314018865117175800237437289996953404807915596409628348806110567259686761526002102817867813996956167750881658356934692005304403164940822852361721236854009873418029754184787981610341561792372824982386743101930498796996384775398287429610486685848306887866917535382722814965860434975366358908883868143325693015032554340714711575000650324836383014668304426385210970529937359718464814852547006458449935404461955368975349460502933005861343995774650884372675841396727681037218927890684174623769057110364678617154853424398090943251184944636011637016794478964272922453870458899412324009358722413802082295947108776430650522880937577743681293046191818505460576032487462174359460449945466381504859548516571344011287071697694066415811480586975584333230019542055281961867577716485336912415383439863602042090291152932223415917769709388580058813388757936365343193618333208246386871102374375701430907431953909621492194568120989756748768602338796698153533629163801416956081362708734904899412804873748832634553714015079253667937926924214827473132044840468455161810585169102524553094190402254651321728688677710135791262758987766384739358450103459348416092231560349138193734870314763456488792187212221894078400908501642434676621864845430044053551666253815481972117399257030636142246450215663020306830732989193443820858384206418690880248863236906213043058870911492175052366301480099391182743978267866858588393826136116270285805946521242359351385416463996205994623940032571626415328694952420888134324136388556988544329310580602627426343597227504300830959186965402121061153134490965719640862226724113452906016402247738184856712224204956503639114142243072579121214118485863041789946068377646741513617141956976528550697458958685299316660959140491187943271567375086745651616903526211177264802284966839338328042715541494273373913478090971658535161450150968578764109512583987571147302370739017741127073941229635371399328244574314545716207754073934124077087660171089914811741881652774566755428561556695351797195545712646735845710061441686131641562023766753997830673171359442436102102966676744697387803752339476244868645636027579569448242874676632646031790495373036403612854858247123867916339859464839552198678282846266343290206971899183853560702792796042814179919993506103583064764874068393881063755484796208542866981544860149733307082220539651745500782704533145681130959690804535091836429651832908656090818655381226341456620113749038445095126632134345380936031239234422974197686904863829014821252144391840352562105825684630868205615316660960591080477237626721067866819614428876264013405216210575857766793949147787209096172272291277954477510235600182318514221336777378488419932461895459772216182156611587973034916886381824937568481740371724891791834506362845085732726479729051483928809448201606073457065834712758969075689720801034976518439915303693186791218127251007475827611964053162848870510279701027230888053343038137720728732014104679650679854639481881384922129425600778849863061747145632962302250981398213037907445693081397092686358559727173992687908488343864564507963826447108753180495386812157617522305773373796139907439397504453379928393855351349680992438890887837784689251092092667084072942012471909742108245341488324121679611269559516707248515624621751205406381635576967227110670446947285375678701625183152347093606176188564284768137235191821401008644785460358537153666328819207481163041862688839590913966633255168228729892796300101757695542229498241345249372482068554450773859932749997902573945877039475529068812162077102487090896664520416719549871930335545945080742421225667474380567068763062209915416588959724476212059643382844669993171708831500334844094796617585358947209382141118916403030063831909337000790048999802695993066024657010652168286871245946640714507357381381579155587650129763736188880051814286236993450694739610839166403293935170451114966881424365778305798498349603578587146646324625887143332880980308131154397296128982789125578194091922608026426339130754237160303006671803345232452996317930043492271585232472625729735610845968575746954375734662206490751590326733117263604916431008830411653998536521714446163544178506584774645168317232314756597757258373345608840181410058992558719835844375158037517409155407980378380276602662087342472661205030346131202893864639036712495407341397665081926086293147341713375649465641310189796809952605698866606395179780854657683332693897159498049264734642026901028938920572083413382244673138141175726181815249351058206497935167120970288973574701543536264805500205490624122143825959772774993518310666837952742989696803276157545697999058002743038079263086419384046513097416345943677010441908809427429179571650758300579422577079838833178027935405356477812329094142581111970059932989440560604737089859423442638975626921002562931148625093449816690571747053525769745745865586722400202346371834941834718689571639403560959438383433598690766690338362675479292057147599164396132009998289100061203007065830084833494754022386774069189291440103960615941922199607963278826268147042785059659687982187999497644122069762455475222830685302990589761260395578685566109419887460187377319555850321550572571755513553935104266713840302263726453419803703252758044314984361904453746719652654294353675596286618922672154667680579943064002116196462146610580793291880787837544798520254527654951461132161892062983813845828130341140272680635083502424277565322915728806448069195958987703296473166052776733249297121701124719614544116863928896539652862652160103019077450901208272922034858525974727755730214969119704105070838550195990358292008406883956817711255837085414139165019891672095929877939076767414278679547096812784774867283979741099492161814482354413087014776012044684892009218548427754171374714086267849914216533649479319588593889473703529797027522478209874831589823102141868801797372514720989501158114853315200670879706328292490511992047523186007126615913518413967711709819459521249080195856848094612981092367357441072192383362476728696888450555731331653181674726025204326742972323664662916822443111305938828128996473110531451305615223797888873371603904121105812531391930563207914072987254877170635535932570030821928427751663436734307576069649656732374637568380568276684432867138663138309315307673718585958057357225593876742564630077415985261624547174923619163065204550484398145626430694496299953921208367140381689238271628635777616001311205538920709090857261266951088187845273429869691699067633407027854123182293181474899407859319581712267790387776301590381888126402939825958312597975006886936429611369659966526327955225070850632758256609808829376265651463853072445731238229511804693324026566066019013859436909213701535278424265313332015369088470782977186308038056773647760845534499737486278628756470882433020516660546838750657107008932772843241183573077241618839573242689027136387127070892909121318243630872806110561765186141273717340504991538070869959696206968577133037954832472308517158081269102884343542951822805425092737726211153086825364795293295445243586881442584286281917716025366732496525805465338188725543920667440761977328743567914103949118007901012718517338836333483103749673445886255341362842002325084475268747336875239575364431710234201378753472112195386690963269439694520190858411854899843946587997756304497780375702552645067445533633344993560980481511788287699265887842287643660241523259212255144677894215311961701017272577541338971604113529742564385212172435677736503810377654547682681822872265864083433589961235958922553125221024627988550315211213852437735096957296349588026454499543494904161953950093349607686180885551718866015310446212181086085795535628644773131907319016215241660866531453969441824262338468450552629928242302702196807057477472609290397126469615020013086797891198212908565772200418887087027801314538152130789047689713755521871343252179134385673454559931063838553004809158947388723899483216047258004706463360651762674128302319448930490170982374181297242307282357257173697073802629962768204824457249378820349084253512625168343231694156095941679287833345947198693272606971361314706407180244816423065890149665297282633734982113965396479890660296274333314584063920560833949982086848323487397384096036361883367703626387640561305065071089821359126766510155340939452394423684139010448986756385615239695748205218967119758962332015528603192639462553421853144222454636656465790442280184556397749681877705062909073913327634975777623965218307241432547650381355986761387875799559645235781671438753037229706176631795765620523667311591142643042121124257395087596499909317225657675994629316237606528644091795722837147354367084305615233000928965371871100011851704846054344930107565760678903824880498981272522453779512009492461705793282159199087281951793328679765957012089974395484169762638550644445154434885572033281519293012961047131728847303656136366165480783404266757722171843280242000254232518932203126766734496518947558432216970221890881001702065613583573776294552950629613146104010088926367317192171317791051205345176866203299223869295046047638509903114602878811864625219097223279423165478993030516298318325754423593062944119008316989032372965912763022534030655955836104197823599579151260758888639925160191006787852777668914211127844068006573388928367444798975138607373410287337917267963111742629907839741619467859387276677441211329155522857179578895275068203572782170036583930922304260915480376259335434608993039061876556097340889861258438502019969083767518163612052055497711362716527789661438229722627808813908906445960941772031902958710451437298627668525447926074418911847903205038437515106341925563284496474402504132968519429855109215345533567674196499859001433146553069270890913653944298797550662159011003085020890617724659210282191596235704799204275732010513293256827075226936887805026665985733522936400502884811602415108734787668009882105502703070002084205893599219839680367237556366116978193724508289046788085278618965228479190085380475896802004683008266602071992885436190459801044495531513277856708729774531017294172817166494095004753474061876628831241161457292209769861292230139148724261004596226212483181757849581598848016960172934832660637997941794420078276020218896232740514476787594245670787441478905165484962445613362829694774434354808309232413577066375018066142267470194943237219700496750533630268736296441348093307835397648314173578231145709580351003404830190068960988600963995181772673974887096509122302481611759048767265410782902707319902688947657421494367024212766400754763566129105074118442693050480782039318056813863622366537424832123466831835622895003158651226254832335804379105360731657167063262795814310357078457166760329474676223710192202980507707715315370899829287650837814000263408202246243313430486344113686457341290390233362034231182534388485866318465654414119297049906733782478410052334392657678588709682505609542809941547964295136459715635423334698769406355058795158661415514944949185468775995798825441271151710337623338783793324579617475425138119408959764965432340609873126235562184094663258517442800732945868006671647384706929492267330266927589683757395378425446804846939397362950209284280357046679517386215295963400774448649562089267236593932396142817821568665341938266255458732432212592800074354153919188763158401800673100653905236748766313277472814655940172068271271215304299675961648111028893837075867677446319537519656191716314483239342941394604418176233915572179433400100750690884535641956339305741850219623891789120960104111554251792105275260707708125516694200191863301087455423833043944714142875427663377545535806941543985550601010111595197086701582336962589813623925640069509738300489401549346478693310735805620046414733538650790695020848586070900113026045155348290784801507246083522817305424545164534106484685683082481392896858055549214533928344794868716918770553557044936682813050233969236212906639916641716776417753639581725874222785774885209349678340951752627054479886613733501964308785052069438017086651234531740253768469796764646949034434120834750745264973880661476420149698103611586478679140175631126137463907161690618537646780605038033104024086809798219847567292308489779551669846682517350181336613839945762474864600800680332492377376169195713558360834184497586213021031896045747525423243990928573004697305906682069408912848669908108522557890944930817746141889506052762552855065202273623744576643691150621054387317748804442147767467386879430893926525040714751018347688329643822446708420083528818726449587012645449666334775669455524591640438092083732865117889604518034286029475663182762839575150764040242445179695155302260918402610513642364355803944991127960552574172295591926709407765939231957398317754449337495144116629236919461167921235714610117256337724879997859547166995361422466379750874457831982254959006394865494690231619160334542193311380093031955802108852301686605393713725547873201794657158604837150323664015854145823226556624655182872284814759640152831549839722719687107451324486559444356593801515756516120318112311743504244637749200708826080273993178506516195336946616624019521405610721188103969655157078809209358588482254755822037550423540189127371778620286821626145077895118826518718370587640195888922086512628287000469833849871660878853156983039023017432504697488297010570263346137787351833578449963451851817531682635961547827560251913328471782249836335287913586500613601170212219117479189999528652097706022601381173424551816620798773600597640837901223611644428961840392511380480695720909402213563719660647229723426347710192445569606128695764925227410887154651200069843097358222988571333140832352123975615523033327138407511396355848088488755462188903331845894210617926857832988815739794656901663539933045069712092099789630359052280704196337490499507546813461440541811447070171202630875172775639803921943150819206814684234363379935202516074961381012167316481147935804327685425816206664048662962464304727857141285445005038197957468304013858351162233644996684783695883593027398931250802897706068507450025121299679692699353560468895529192646836497983947587297042225521962060527577045164553913900686112327182822487601358028396951426660940981249068874768127523307541103149115983993071628961936124337607993837468990421676182857617499475763660041979540799624151728452171456105176998981776427444063584371687147990567598744019993273138501510593840671244935466700722602618926855958566578629308737470627540906790447070309951824337012169414370700609215482954763667487113690692721774247518491102671596005578298027470880499419022455657969163873054242794322174107283144144089133860104656122002419775010371571103566484599308147307272177220958395208778674503067777228781608061234412268280149851843770932349940243626390112610897305708947761134186381755245179617392960214829718334313169235093009525392912598146604226427103333130291996983612046599042586970509246778536305941857388133171174191440870561078833415053844107368524975057215246136794135337557372411058489610814016882721483124760961336596731283688579522776356384616316066806682460669846302170047561995705686960682367973726611330600690313301638519418017679313556333438456706991230389218138182653985664367532233225485420905980294717346169893833315472205045617835637365635413886354593664672552660584940333172375092668121913086661254135085958008400985725906336627922704934802867440631256315836922746773680926392338337683356334132721087982516199941028674176725518354062324462771729394514651051062779148614258699683275030372639026396752377081298222340141711875684881979166036547795796857077019147590265274304458289490649896647686217663574321923179801031445081432915962923300828894400902140348948070113181352277543864275965305034652321670261827320561211376583164511347730115160949296381354502569798525588191383113721936959913393197444406118026166625886253516073465607988795307367221927803501711067581209002300451084203378371127913507054070912784808559534492052142103712292705283153268638991668143292263711096666332448586495708702846405777619222322421486677411381685122102714076370232976410583260518893252606274553586955960051309046846560306554776626716284262381795597098490610259109249723039937164612816040450249434988910318943982385777420053459835707482405994989484558494600783772649984306397085116945980529424747076362139181162894923060439232374848398259052031983394888644531978930794503335863138241352924967360343414013353700517844794133791192924885219851948984328299151382519231316246370959546290800380152046198904609283110915368360076374644405622526364880356460236786134119095835469697641428927462165140098508724990035487588518055958745647456647511755848644490490999875136171505439010173639227458650254740765625334425822173984523175322338947934279639161629218944552694972792382375585068422475029041763135451760026473481633714047903761051122738718220972041584650775588581544609451702634362319102627228674646477891206824600045596879919811757082642236356715112627336463940153873659821901453111603514715076821475804205133464657862063709954953452336262901973585670477686010336144283716749814626097426401251449705255987157852658600968927115241015218748909392209148842024755400250661694414067195164276969622338059950620444923856784656317237626186568371468403231643987219606748078583210128873713407832790135094522332217682079969942938787164599951047699588983683187194149945180696857924754059009904064346331962606610239545494236835384037272756975973913054129979054982003619523611625713916234078786619305623311247702948060022249371213060197356598334473004296679493296706714445895345662406445013004588310267168276749962827956645940402116300270215714413486229209832196191171699718507947743667317173346425679024820532416177885336558911807375164747849400960699115399921607275042139018786243021496153825293870873828475903663594641484901551574557656191638070327325600314392286016220957261192415110538077011050161671835992554035383092318745177004588223888670093710546006804598449692530391291448815872299325960326128992979299553364672308405613134830319520031300100891233554494946764180675656139738882003005361810818992059643544379720052718559339047459286166760728171851035147481885733179378921116061383760808535585624159831909014314960478030935599630296860698296037543071915303480746657786384514143248341886117786053487648482213487077051340505865863570288406577249310318608680183660369847903746256102343238759878233520240770872806914685992525182763030320408988628267209477399938970729349960849132680665636723266196828618675778415143575636879648787497917956608973795871581087518620934724613608068294509351486989888554414778058342827199342355875054833960190356443792105855575094299738810070446199295116360167518129476765932518812027252865427934574066791500881634895736078081497434892068940029272933133199937110763357019983900069730039855961132327208504019958105082743431716578537463648390545490646165195678702854877255767031272056884155301459153113517214063930890239140713369048374733164990215503517288085149183853263565825567801124683900969118893253742016462963571386588405487160110440994597350342202925812241264914067047002619958070731622267306807846545147784085420717629930431144034791226526702512781663987986600524912888036713619685255727003908084160893015947157426316476570992953560145756677492647259612689576385545021098161434951888628838971321181437375070890018029714656182182324040995800820857124880828015699283505744552535028921394134430919600197236790094959618615853895208014865646652772311826849656440260095520978579141012779513533000954424388334434592581741131931050612443157012741012343497815171330619284985255388312925648765173232712216107802135286216765800582589186680510901487180292755050337352986370642714925650961353734300607738986108946218253892601102909010391650462514537048575754588399949223791382076224478342997519055743922170823705819551387971888231269433522134859805245411372283643237042657906503557738557211631540350435303021984681458139761265883017611152723125679762576187314182541016980020168744934598515010422670828939311883970004843192557711987208261128980871911015673826627314891215354864280241277857996629721221952405959471148695982722143651682500457922510880412060260042187387077776739620160055127635039286346713332921925601800939564971610276787585405703943365232865134278753635534470281085660013881505703227422357445191257339812928112424312293436167430042578686910246038989018761906660445519661899886200088422239699589665029957771016493298084482514786089904849450832395322152954494574456482731695086564758046248446150806693571215729640159051458436366425677808189304532733616516956276938541891034596065855771937167169668768716723449412321924348259238835079880162519662381114841339987725714313664271961717497062236692660865763372993323126526793518552685824998951077758967833460281734936994498226909062971663549895792725134303628470137418685304675849857179017422710605766632766380434256573202128851464458956483195647310114341591269009509639324907020747386579112508061064114305133120935414171054060407892988405354237678672610599888072737539930575473626050227098519850535773964421782837231307955723468277277915452802957343937689900504147050338630226713746769640615131654985077202581987187730672334826670703634267798567784128022997946420924852299786685071153008889422941985868406844426172397084122263223810104591981190399925691167329638888138106746253630994858906614642237197837077198607036715957998813997557513532018269585714726381102043549926332892691882339000944498970195484451530403701865431685642862807199624400378182711524794476987726568116079596294767264710418434895160096317154388957250478713076665883484633490657526347851592227344887555993960237703854844992938892166194241350588151442516187652707982943360667997722269348448001613771466803040912971860983782524366478459418177995994903789095993812348153698088858523091634505444936533589552041451080635331433410084856339559424628078457352260540958768103218684895997839600204633353046426911611420053011400126194277948191672217589251876370365551894117712410780704009457597243731813223560920475395967308645597696758684714561386723652066414394275573246290240569173265780851653288743947887197245092351684071835615197045671929005874963954332803891014348075081089401750577889067137799910959825591680200134338563891367461670709177856897740802370328688914682432369359826879506952131355378737646619969291713876679395048401780469396744498431741323778534632184220504710393229143904880697894505709520384464342357520092855793067796927109307931675833252643117797325272571123807692505765676437231980122847480346842715242811310254326386257080000611463009061524456678313811286864324249575270983045214953832147952015826436979973320617660910646641229660332877662162951853012814475206609238596356908994772234006262273274671417291358642363409269048357257527725367918291621420507657167361597539197249775002736601103409249622520470453661545318200824984444161354195306499893040794896583427939437873535265169309822950212532035404064577655952051712531327080565089853580291091454703807951165019644644256356759892452588202193280277827448483520111265771113073462621658100691416358235480375555856441538945239803590725795293236589500834960259927202429761291093579863441055242183707574675915924562639953639670752849766117851205787782718482891338579734431266399618883845129809009923567308825899982616073341461215279225078213620496879343361437199530445198929792479248598184670286067715516208052800074519120199915168415441450434772632883871811876317234503361320412511093541792718505460179954516284252335369243054985504742500635633899797044688090942170515426550106770985282232394500949362762597038444641408614667430456735987522906627027035010113484187689782639873223879909004711620822380788270958851482017786431109154433471473289027074543830178588389102175052976515919401414635871411365042059268737506796588077191429443419025736593586204611797869805721517180179852199374412919489230270055945789599089606020963730836350869461760224708297057019916564789918348343843781130527440608604811283392972219126498347932063600925918346241007203460042821152311496298467558207216100339008629470634877034808721771164538883730226848632358950139881779215367998372077322605727260314198574621100417692868223659087859906420928623156070991537401281357290784006156450912924097867340071815779847362529354247680654181994060677177070095536771784911861783354988463113963467680484739611440574261123872525785283689744558856121993504032692816674797437115428643723555632026769571599965394705847514963042720142128733390013699459881078684505491611079637399027021181477887545686473571110449935792520983344467265585845629886355816053927513770601131400055424672782596277520837785054271854588033165411567695890831546442417380208195078679457396920015326548748362063490948151880924271289903650903347186581079167966294198530400454187681856316895935746920562435735082308943240606511483445615215050479676723533272550107962039858664711875760054208943331374948526566944923503677620493278801393942938197544151889770323917024145221241571206389570494206630801297564114805825005020556993468326674640441567144924902269359899113261118242859082731834680288919686215105141273314334957503264837440638359400586477977833462430349513190530600271867319562711494904534266250762534950604502890303219076552155494289829199275996870820053787508893996368665243670999962263154846313169637162328424329342154363162348723885134368194788910081123389169139601884994601773679276551536007939303424766803193161489305260119875493566277092453756837443209952110938370743268473228005927929385239257328912093883562404863150241125674808902054448349881441242266704822964303348088147263848535402552685916055511865326152572210512323069853935501059222281082921851044387307552826511791772403827312025429574868381988847734373233280036826260473822647488466383637126431321007392523114957409727530473798236030404628167803408690801202718346079661050234345216687936732009326880153226449626923515041344830864605507576071071815969847593973001196423182727751014565700138279946871653746700703983045410223403283878056163657501684360970813342977460383011320949279022850331529621905089095608345984738765573700921479507128965087538399961124421925438926912956293782205877199846569316129455668052170391615584670576590548575236329699879051033369082265544988200963911745878226198418556527494697924468458557564901917719702228749002761410828667254851857816355193646711594392807080459026156554384739065087052815540729566248313109385779390047767939932326388502168660614938993892189156921989720109510647908281856772842675498976572711039589378046782017299135710463271755967386499699166733663686974340697101419866128591838442092437978475947611708392785895664024326644040892597863623158840488664067311810844797661031189138306362184221921141304032387453646931571599449015402311203433574459879352338265565923885971194037542809483705369400082890069041745990818999236657672836952957837597023704580896932529375751880172421385450336547350069424703206551785217189345513786224070588933278341577352751256658317144344893879297619728011138918284078408906964050504356635452417371113304268305418961720560380593915308360549869351325178531557566845275873092027216894924823623198249517139526923975647491463793209396464896773122011611178370571014431358624886680637086454436783603619396704115156556254967645065340276685396096665921140455520188138574420643308161066759244619944984546671870903017906804563924432455288228633120634573667111435325373193299254932067108419543736198196304950874144464131500667883555633078294395753028863640310541811855610221381356917087095373346159391743970968793964420001449604966320409278855322957433676980442374320192404949624071797812592487702807202489532354209827008693080801511942396106050503095473607724768632234122953209753273473256727198568163081225145718444769123338231347070644470275970889139193023029874519415070480859404010238762426483782571221658063099045658946458408476320836358887183341655117974615608119352727448877648280152521860831003169995808229568747931585713552650181610624098993229824862990009318573193082667542011279570411895263817751978077862640365755064109700574159233679874676643671541748005973476768860762319164603294856126630853167160953037504969442541603612419213200259084548166328249148037035416914756072657099583630278376214547642491405064285171669616073780777095770736057767512251441193659114067162895065545537612900033236173863347326217565360804150855958173287456636544345762245069068815468117472006751925418854060004618850121849560401619323751044555816302584767957931616678866677932966882444791678718932425831391502656452235331626253418408386084349338643608780857780172235612231948402468363765901845767895900206810571377739594457417058219391653799943388748937387858945585828837531193356495162545017215659849293542530558207566216382652097387806840994035528425942430257388458504728797122533807276597712395023906208224599799420512668525874219582598127923054474312519621729523876580491894540206139495628594844105122532942181051804188011638386793956608639427205736067370429077566024357629602754315205661564249867767924191873209067929948782415981915316508773606580565435974873556235594071809338590243353494235114492733554568423316858417107393881267661748486325390868176907371569744656595411958097209394668443693275367606794661475018431535857771094750447639514710743673903730080553387598746374918873282432043745859644394693154785722752817869783700682449110713081482023524588741161147418380106432917226349668126204618036338996197344566847920182637078358217704838873172229313192393549694503293246547638991638368191964016166439296566586079872033961601356563405476377152915284302641627125996683140250221809967554094627791833975315898109332690775051845190396861062981158927302940733439181109119320915563957172911365647660005639478798844190504191924154901178290215114963382277163962956047034459923958138813310354411143335824852087513928698981135638628076799504207511984424790722710653511326890465026868479872234978358811283995053913178182475614079892708896869591075852502934193107000857509426009359344519837908893749810198784969629880316118351820410434140694068816249132469306343212818485726859171729649498487011070309733755458262081611552918467019669762122266439087900399731293473738316233874489696815290435830360546332823858029724486991176977152575996597821796682892383447641640144342896559715946754616423867929700837084375682135606037686103063169336596765431185910782061465034985356800837725257728353707102455536875329629354589138455073949744813950460130348243951518257205576577739388496317581898780367264408856628472265956585918827651116774885340524962331163470126618827471145780550353646994310977703978724644359857138242131417777154382609493450829138267215577067665485132477432481987198167776890580840755824172005300097141220984756796665157885197197797094337676311543701958351678970159535815567990226587881750720455082639510289966192007401615697477905394555751511370633363025089600719136181327762312877372352450842284473183323980853686563827754048102186693800358581767026280633617347043061368271829124497719319369704274133260507895427844483749020374258634716057085391279867468439741590455246923763523583369360113021897926549806775672086014376236390529118566964266505673814701777480574334672048491053622490700488183082047120814948231732080338513417351753233190355939548215505327374824133315939832205672025550299273512053080851259526312393569729877091377794364267044455986374116109425729730681566485156842536760316199738646164948284650026675095191420867572640756797668294629561541237311195237626921558154676604219507011620259648026936152990749162101676553433509083712955036847572406883269714866325392759790792327712700831785197885666317186990438625859632909622824712393153405513274809056381005110747261919547082937835060565195026661501152977414958926264727902825673331373775141917879557130848754885802451270704032705748197470563158999171749621150450636771228237685862123313519762839488374149763378699294737866254459207054424464853403989820862130508569913891353904636187209853056174480788054631982032559645519693859554574487638477320630494603984433522070500725835877923197839549286285747735637806843840360941849312351356621061016928829398488623809621386358249947364231967717125790614043378060417684821835611117353773410845891869319507860993196302179015846941881836397586710160441103173901346536651819673169564213748798075202301913686555203001336678309003819356492037386972800280152633456306956335224165440396358074382012869021754060785661836515918342273487105207247464403430834461398824734729382602007929269538537619023840393957068989762214667857262996382836075465685696062827280972265159389983944208662470615885781761083917460282336484983985208911443064039783247963855866809908352996881688672919909739979050898906518705756697436167790724494160762111938780819417902757810525623810843962253914679486138266289852760248685608936610530978629820106831142642037928824910385156088971518244565690818214043459994620421952150212782540980706628945266131969372091755331174346648409800100983118212501543726560808658818785832882773955539926363926077588729877957420349172915796119991049217463859662580267930753751698965471457634628353860539879803422662280722277550609487185320172881571439884613532502051596764611361000021071926338202061510777087442264345728883039517708903531177723415151992387059632151149372925717884307103780857700460519861203862480905775509198801975955853083577335598144839478590214962474500386655993433137131614034231687497991129172755582595183666164492472641211798190286503032668153066556791256069864842556725733310509232099955492169762831749360352196167284134355241149368594137079523527214249537347858242754449710070518342700324038517159439961152137669079327724549861880597149396547258234474315792242749121749980873727686056174629113758538713428758107973840598373235780206322860673864290717023732362470654882731641962318800641242153954412912119205044674926946805102939763952696195646500762925348705679973652392425452144275500110288375641604676901071533883166678430915708479535604085936610433569404648340516154875390176594545857314219636612585447001466089410684991334917974026008594801682538207499114386241368024412562299157937660114948886836243093340264493739538853924348642210590326220944757832827490504659150092058322654172140319004854767542800128693944726539143876067340731537759512288814528084038449877792346679820470673723670244301302941632960273882650623614677586195634023185807297287001813959755164726462345145342106790732716705591655343990959064044380871302940149172603534472460255929376150840727616729270764558588131805530853679041043170117859506911721153726709936022753680121453704756331763126636063593616988493832342324418867984402714908438051839869500979739560590845967163930765702613241336485462066738859872587153499765867046705119526363180358685929244925808444117866662309338781865998909424840220799741934409985362088773782724579922633786603764827978582499435222652346521684011448029459883654223199188985781777648974252621719947779432291762112532172095695574357262088522939572809250234403116564534118474416674495825172401832196608313160442672794140834686491712665805305487555894247666433719741056113046967726559602166308130292898926345060235094302335899103716982337769717454662951974694358058216700117311115776123459279335191049237660247212981033279246176359295583169721620557218397096479146107324276531520495319383324252726812239877939161131102392418714632569849648969230868383960905842791418095442264973627472534347511520660556334512626439308175519941127906909654731248660472401211939625306749949213626600045115463111619098757854162863942700054874145036222669774740596261136231199423188921134536462461882101673454790250473592168793281480170076845536301248575820884821486429991698931510888037133586177438222112981313394051273052706315666876628314397975464444283400799805626445329338593743839689811258211330324660765659058051254281841840030023273473486394818814708168400412187344007348442081155632637167268726064989582166040646068664451254234260496156819720156209911193400700482453292119546964113790265504148995199575648368156097561490802084688305080755184783123881284045240218928936491326048053957703436302610291595558913280367533954522988350057806388191498186433970080079616232251774368873152388885391856039658769300989420489273311048305344214263426602014304532252366311565060619905213080808764248226907607065058150452037831460241531296885647324630628248794164233039814172745652162217764950725740650997689737697696302052532652781542204870779900990842545992173078415505765062103542791809658539473745947860298300165603155297619502874188585365164136455391913129404305882010401097594803689495657405779248833491968410159472778013072520091835326875414676634567789832422211103316601900098659288101546676652459800816461039198418843525039629899178080673185780567161294229743489985635472192239801692145379360588345403954766799282347007356923107497484757771765551185326983919143238745271962754693767728513659243005613625630392508169527201993432254256479573488200960920669899252936725341774722799587861652672917547187208906360461459383734704037796508857077041186367834637392156294804257856150069708250894336000984113835170933135270876090268884868742126705669838962895654521000432181646798852758415443395505190092686252980411028989081320412884325027814837272775528743577172130115492256367664994742892249054793810126812920259205762516459899434768631658824176798369332404133542190294062780451256596659094770926552872070836667033590502680414921353546990693105048411168723580390045900889001779402066051555277226152541131226855826272389057137900800587726883241619909175512095684703549255729222663955741152146476223852397627925898133659474096119423054064616054662749569223566470489862765848755430772852170149424583684803664318148986611088633140497159136885892224587565881510899636915920195460572057269247423083754877713509809665632904275126283785052823150728985216332042877449184132328923907436244433776371926538358878425089450803380371595140550526800133886546419013038208068813049721947718461657872115342435941435077629196887698758262116621475289071697439735998533194121784101030719757143387120745579855386241898156894144687981841173121240907360276848193531967218682653522216158415688327800004531754171939489650644431792837851319163461485670758019024555502607826019011323851070757409944232182898453186931094749028994995502355208943750712700088181336452108552692773485306647235810645165043436119350239511747235588892178370631208843181160395722215434249346336958916586371735825718642455341288929567001422385158911972457404425844503747590732533211693547640332081789443403888452575604807100135382777069322742037623343998046410219561520706530599702496952722643646027894319545176406872999732830972050883732930342898596879469055051544856898147938003744787581040556201597364390626511430484325436130281202342186374426249615443654290169875621531005453166297773907824472526981561467204122133125172072288947164144501494874015346711384640266049624612445002102121271692464856527787116708087896545849339006145891433803898385660749999276719704160665396657295666242809811131190048113855773822748778273214408264734685661137471669853775652720710229538200696763729370374446212026420046911776981554407866554805085824329663849458732061050831512221900617841189946964900977425475494876823732962101865427201651545894422198525112408000816639353689245475447046423370583355209845448820787437716779195984413153998731769778755719233711825341133632605929996672198369811105636138969656315655752320510206547340847342534786269253674718789269317694014805212399177180266150834275974199756570358391891378799083653195668795695653900162194757745174378832266854929796109084072224145361148842765229407014189202379888331087901148229201307105347981056719327628674485062691770368773250910494935638309657033328603166671503216350148814640853026653612513590494797136653356197688717149148549038800639086110231065000485772338973405150443658587119008562228905790284715479816741186311244285381286360558092762607472421577770067878710918517088813432956677267466375375081514392800495352607429759802548737862192828879971780555975015524211240393236653702626626320214927631066286518013759799485243592481383152696954624788173865668094365042360478670563474789038714825802485552070650742573798327708540183121153781793829325673441995729850519596907689241909657753667379157681029522998625469067641014323672652374054662830249518775238204058041945312397390022193211680723381140076833451306540855031917502943354479902325893877836656315134074116779874626978494486012998456271728517839071481949717818256432375016391395950825423380272316945536311662388209977295042031179041373554862369384085939590930628701995039630246717283636121908560562989680747050728815639568454952925131472898329960734201916647075870505499178626145098772008603223705237036823939306666548404358806340774773596543992309644684960195245004692865237084546179855941222441221247804716180031221600657530177875247420820324644601972689099351306069871811945264224557140044948496519168630494970927905755430179094682496942265554441278067558175964931092232166472593697493575765308488241357158751557630089560180613739584623444020412137585715953699371661483871026404488546411067763871973351853349614313376100586794845543468072135886174491935301155761176743572149289358085001342563970937256547370422918222322570559235576308230444353549636194828399792069332300857520274882301512452464265638764215928426353371424905893594736300060412358823345126624069756383276571162830849710705698387641053287600407552946659607624684378289908101446716520083912221742540490009483550529226968535628692627869778769824996259941007020461922383469185169105777058712005668406888614238635022028023169013060838183212318067105906882169216041726580206896777487438151867286250619473782536633654593773267390459770695386533971442692860409839094925014501053941017800093400883645198187722641013505110393976454899908626380694580514981068237910694277760739850137803041475698381705933955274202723132588939087983508239402744563751351047793351855403191904572674967328446814153657990420090196226105654213613853934774776400557929794164604905331940352559324918662689367693797905947209946018957179141011521995576263886913014162617771546568734336830186384770912337955629770499192049786757704354757464451799673418950648709948639899762002935147236283605089636282851789585008417750654043108748867676376914475878743580021497038766499365488266402645675958050424610656719479861790289660819388497562046112419867856312190744534313640943618035446883672341274148435468805417271036759374236639450824899453743055811418554013976139028974797597384551833408245010805751941313787370033469923330572883250186587288340088527831706307666553351012301395692318365045426972127907075462030902604946650730628737209175051422933721628685204895936508213106511310098887227927134059915739132601601396097878973447772299410159443251156411686230044181835433491281668256849657852236390269080525608609806263556733893357613662996270776830254207178942372181440574766151456801719953835457488397629274952748344478186366186472894717287897725793329022906437581950564791038771936885479482491210708020907729739326747975634421688529073092190227228635164210505824757320112716678392101477722030647551244387780589291964646076053481108289799514875879727430479813209788191713578387289711948983504695173602986464971553691340987703036031970447483228619123684794812946854803520929907167946787365825857030822223623282194617056990998962968678213785904887107881278828919398329599449092023167654031162792422535878720255184521116472849204515672487681002329896554145751939750004462858917830921357986799819633084983702630616846918028713534470587427710206845513661477050936122347002314144584699351035454737068852925336127229385437085662256382453728277328510841888954825822427821781967982568789203798811406574253531758281540307783588259589332879338903999536391876424286245796196188321430884159736772330949882520406215346633110726702669698332193957142406444031503169408052018719807328604272329022835984564663363808045041381821152452162729599394448745150144160707600584750205456009741148088986146633216576655172862431616350772452353152776154495944397226173309890178699217642068551560514558143925444908638317840711711791222355285417196684499207230385009140625005839400514758162119801887829350909107047173771685576476753488835720455808431321228789095507719726526008955290759858544484578897502625342933029487125482747406574306126112442957348431877444884546496643075240298005915786426279689871986157158441370608288467257353302639063952391199946072540257709016849048178101882276285142462560017514331385731279140712553313335682517004131240795734322939102118169354588159955889992875709577290170177088840969302116705824874373112437128318335101054208237109345067243796416261711955043699648356920886239190488586135509990946271115846866454322081865955567005586988244069059513126054597596694668559930828611502625838371775526582035960815178068380273886362873327730571607822117159485440912877530986070122194956831758918727732152433042016853786388466848621646271983633514760672995369501591002498496797774108478192790788262569696153735201765033076431913482133851784938936250060924245645156055560818369940674394767970628099159629660748435768327046399226899171473014244430164645636333539363052217195968398580588553974880720588938886427827108884889288806314150939517203155187631138526324355244166457524164263585824387976399737901236799824590854180828012670380062810889934904983743408732014611909466104252737221609760692126368086583011439457496428858870708114497208273242125243048948642953627735517249016048899652548478075005188517201831445315106610104258181054565254970996810064525938229510510940812854919554419709584835532901772645330679928618379107574390481163451152352294799199715348801874119173388584021511112309325804842679844118125397409533237523117904060228924232145508176784666071733226046240130937616099266882481027670226813005600958754689829910391833494897380703153342742185952996037942800008006232670604778834849731011900193976781657899190006269271493704884387482165948778812284957004100199989741932949628299615195934954420582321003529647244368019462509265826082415518050564134807420431676114121362526492771414816021793096673316175019789082234370397287287950465619526804649171158127244818785050033700540708228002605514911207098588768462636129538091083880952707178280414183222010570013325184620379516005365085926112832549312385824000729112083491530491578281469345770888075056487608182238697856017051180761125020628763164469638364622508308418516547698981451952165773774828823317625066314406373467774296100592632609394350360486818161678425281934770950273574558828545683014510888805268465286702981215402217712056194742613192262604077956963996772542989228372004571693358819006519962766385805993124964071538315929992661112749045392716034465999161510465993396491586643021742529029276911348881938415610393068141591336420750972910886576397070213862536250373350741900158566585869308139237145895031387009632985500778556603773396678524564319776181510539596261425869232703096946113392394962570518968224068996819489273887651111346195187787209846399350890817853343754063214353421080052313149747043803867046777239235835472645933306260059764406717153907547915636530697303343067794875086722865747365496308605236890947441229367689271430132721629853249458347217948219628067111321003113870693412681618274991800760031862829130666649104276418406983522006828926558221872638351049539847428289751522525117191288990844943819203932732745614369970469240220956530318042631283738366223402955328873229062121698352974381306007569815357688347135872105477600523199640263651982865027525112017274320914196936063403494458248911805310638348493287158614612451455703094133371564864580853287610670446431087957708077399689190020581734045790057918131788683592302801815693573783797589677475409557729455385491434349995801816289266751877053521706844666171154805722294758753215822599984812060208825615729552019307747282847490421113096737260831768958439316976985275167876786105317423087708403657081121090858135735657479801291107048992952454628338383107198774366080314655092917701084053973518755040983562773885259921276152788728010001440814622020601568293389841670410901296692277391428531509813503168835853216433769257406781857334781253038495608243325243969085282303508824684960738178513615032927160148904924127794027694291332348693730426203676994377147943741276002129541223791844185144444159800668115070816470392218331610703251696944345778351296684545559660387978607282334205170540183184948202829439542946760043939626866873660369434367841097035381533297381988343134038132837318386231882372852589848563431251047208321204002131097772319512202848450568146786938405625417518170719942410571988714485464986194151965120803906998238685476120979219704062583039388832823523596028765760140669327379253018197173508036422666357361367884045347775449473962617742148039286860349601977633854227023610831306812303399169201261415189034356500530524005862588999067371612328151328605784304099728586314394444578272627444214196250659062836396855091631340265930958004835031168975869381756796340527296382974268451637014268351889268667899378275189055457614439089584963297261068217369744020145990153354265882353198836899410196132593356411006718335255725284501362044672959637977038087988042308969484218114507795270038642983320652735475633968601946320712226384412548427456529630322971023795550028704834798897095505405300812207573214421437115601515132981529764460270228356374929986277963316912712849242385969507820063696689540223430175731453719837756500436229914036690405758673419538000077007556734577601039576938342223405647197945813592743692517333173979450749703030085794759802547531434807441557971442118958048896583337535061043983943018012408955916927932404240119225271018974010894199337426892765802718862460094179752254392075034696832595551364950992602651843166085269041454240313524053112168758520505060325902486704784279707771249690160352175555244537025927018470965583798746100408787509156924418189610269781169906943644066265356818205709296843022908007959311647886892110431326196501091126524854013249902706075894902626568007181119388068622425526751639711166370551672978678750865255899308681731467290395918408350545784931424158225356885280157851694588263795928181432979770523510721225608650653304731943224228589039000052823086169369757721785806108671634437438262437092634946689705081116343017337727644532146033092068150834340347285917114130630125313028965927184742508029740864477369409949592884077650622232020293148646548433799759894040294847893088723970651990147973011017959877631506582375199796154841444671693457236986567597900232835803631052905458596154213439719545578738244482240434150253169929626065196396443683919784261656186682129192145016764785650682778935393897798914955956991750040229042325790505143854440302245652949958120611267596838423694654919183744550460615818256733645583242407319247455809268284012868003769491161009139885833767888362510239363795613502803619537272292971434251562403877872094225934667229650285987814252863249603972341322496332210853013483648194367212242851801688716172643503623438492397096937938724677935513008300488758870507487010782446216416168622173569257047369334867283699176807683823814862659453275908905492677098703115900452059532503064558416832342211082813550872612643712946495097454471359189911354917347652986771579395433129536147542390272136734102989922011537822301909872995118370954557011927187939227697740285035268115263968594172411444397242667886685943901476100596768708284319544346454259000157710877752648503749572567508866404493267958253413149477210322739841081980095344535308965027731459067348255100308741301542005377460802741232340217515816396241000091827706895132155991940082069655436783766297505270154810314801302330703708651672090617189486972396478962949034366103813978665258636932588725867762202039511979819146200167405844654508524854485078661843841399995573131946290059297813722057670442664066055771101267342629200875242862743474894580550435849817010893833164302834148269029938094601094116853955739895057452362703560138599272277669199503177273893548475369202053961904739574138869476474255764239500242474296847788859328413588159773272938422916864890601726601679587953485413976102255713317799481273064427898777046687098431332310376931181466353463311820162160096643259312869394435391027748201139864950686101521998354326883953325390710493835440841768910567631701220899863899050960031759413961494018113814194966294492275686392175089092047056470109245805154326316101127795865855088930567150425853715094038035883378839408329703432677994426250341313162075229936290199229646861339062924395152972910292353371448882975997023323570432618225126720522768565733529985098474470477587407010377048721185335204637548318420039391642152526576895333653244920430413242924144890151459596091782773405055787731834668606684322192795325312994302635799447996803648177349793926443881733562897366066125378369510003764010416009007408799014646356145402010242291027139876226289868623837422617756289918711802652690764435723060605743027535354629281625228325484010576304028034364778764795012331469993989370055356258764476569810368980912640502370336472896341136861882550826035039073270370881903273525067130483290367069879655705425041514049889401253829609639699344663962074566795146728880433866848673077379348178657846770924900032979464504526553577459880999256179666430806542123878781015638909258573441010439639506403671997753634814244898033774062305011604120580154319721114887927864421449060264920878878795601892998543447572117964147275133246368349634046562825743579876811604018223131422430955644594333045040063729619527451332420741034437888048254370599954636062121411732055986212278863869338607069143242019185775167411533747778250507498835966672507953130678832442936610560209830958682514533240769201646104115093816378180566733385587577059628241462367841868229082036054043912179732252914918675039323472333138752922017640725593889269841162260630088009772219878773195701163548720751096353763398585977869215745255136318256717242051474199785648925855125890756165858926330436815128260352212527710071065759430619396847014067545082745713451439415262798238400973876906989076661987051542339862866199603564248775345878876418237572344389090445684632137172967967508964542035167327552855012314174367677412309427340328867360505865093002612559991462451244495237151816510037807576567246230830036814688287363711141210951415283351319978430235924935896502149150819772393900964301258483901437566622729691770427208933736140972546552507259463502453656583168200283601799729706885799138209769777871365090817373703442566024085741667134477353968113334218224545620620218713125835377336287196659620330448732197213924197878365698898636163618517191077542983250591540155833915173625157448317456837992451306617632644183780199258255418654991923864418244036264495957758340006601015996626124710818912409676167372810407447811436968962338194161938871031507957384724094453188066101764040795482729507128686451313230235093610260141995897528938092470991502954564204578052180772002176106725040804794924658116810394617000054190166237133015030699530133136551281007436335676206565019639609149758874630960826188812952642462627923926962815201685004665737507678211048408574859306435160139073553827717888680056238279101145444494935687719294453014166873519971472786779942618169569997120656261951455790916275316765296860314388937578781897767585681786108799923994059450678867697125818899788857118821831441279898457499345213359630758499210689972038479701521588624689527075013025569506797060167651283393284867034243656488318119305983899637089638048325200127575252242795572851797960084279796985716195162781092504307932278517005241445445118103009231510289911953053490010526040313101875956644717833253561143707745037329147274051316101632490086490706414078724799545043549240394728356803058855649247890558863146231952394241366649581788273080254613180987275275148952232629274577762997905628651504929801468155659380292208479335522299060271193104337172548694463832142435108163162712063576415541229574996294651215105356826347400739998393720099121415649941402819380536302121453680504400540629644226128428511421544620833596920731189148529568698954014803914999273579466749589529586340536998405337116988026574632097526176226791208520436266857570750869702939273902045462248458594581174203759003903306958579983033336874282015217344313482439395060648668507430351054031496236072167029610252207701052180370817416333986722733615194193042473190402286657205295182280412935625576802299067775915575998223597917322477278638766854107945166812708104845109833680189715641446210427641034605323859377373685121447781234508020300692869502218762029969594166814927672035537670759793701278742894151941307230188696931589111123245660298159610366207116012381637917914142089121811409367369567969684789069143771445440818913400935087542606413285158980497933486119342838595058007801678284412103675348387274883041384237964488386676136210247862379313524778693953590587856549143754827671415004840637717818443075505895388510445653500604874704533907735208577627716972482056930985196135170799825656484184077514682602833961969755073718871406811921851773487234198788583837782278142849103085802536296934062937229064703058846102454587175138405084453741649065966512148366170740338034396390122764355935696218408130616961354298233424734082170472936655752860124510232871308403539248251765674356848771935443561769584739181865262826318744185119576365051755767838236288197813519902937574346014384117718532494813173059799390180541708772298663428058070502317348165994143176480482149323466329287675288350478985735445803796642208601362976939346987358029079194119405428985344034965086618934348127094734659473891924477262438334906568580231907195748094457679809199567346217370081408437085468348992746620845931560720921972620744501023242295199626997332014743368367751365042455665600931744329810139132393736479115987170335102932296071417091932264901580035323634280263531113622397104942883239673164231072366418017369607080638833897071979550618543279756592276888663354520420924832337043240301599623398756925835174298903495573323629882980855706257675552560467370349996479505546331429623493673624200856207150077201017510938592355027096840733370589922997771415090728781082956406011143184479874329753991248815861758530456535513005307740253524898639835545804324785949605473099203640013274334048945291854294062470969092673635819701585395638534634728661477019797571506219581697325896304786255001695782057463306056363446374794543183097146299443095863187950978094206139876906374945138098248926385274081970493788565204125392719023865775760414892028365119156989980315070568207153135512083846384028572674317555239655773954660357861569957662546786339764792348732253560292245759389254359168766701807076470715725950868581779363889790685864072309044477466003159736254046393931760667738855830964227548426671952184900007997776429778714145356653731181316250981424963938926587199813810981150685303590735784460507438926605073570419168717847437501503541098469804231461848843863563952662994889633598242248921899854735995809018903235606298644990209378294656631408930823122610780953581750755140298153979289367135081197964759627881505833053858005626379900058013502915725561407379670922543682717741824697145300326352305282133585245753856344087313442782939194801282361384177147360415603045375590502565208929047939662252907081399506311571522649610117869194734974249965498627419415615211065464812567783658508012043680951618061186699325202811969294688372102900370115296740907113145883909856732071080995375184484295483368921049551090241435356434348112538798024745282758612215482988561154166978519518709737683588024915882362868203224898975694854433074901476371058409344567373596411879283406453432947207842882054331321790108368625691131559873116193711950730036394333583255146765098244960612215031884557412181643647560492443724146757758151630727219165819320709001327063160347987427177357163196555573881314834281362720890828784215721523151074853726897917247720188716664894637809245877313543676574928394324169147424060200910354316625952821301529728633162447650453561443412122146378781072126095197979290069407203897401055775588602942163520618970207982660844013263693849722313078188405379218119525118281549147481892961649585523053755091485232329494078385404406591475133857584927812791565460499386670127849895204749911655465822479365482148963628867232645089838791343686672714736045105959880319792174051273860314217822176946705001719496499408572831000586892363823796853335463495505045738902106883652394034940401252440436077775164988078484489615891674287332947275870764231208586174489600778900875588029048971110979714111696720181311496258193723874817210082999102166597660721334034914312861339752146026182249502007847920189663506407216514650194975199104799071227402682486850980161617994206806203858068020335551191693007602922477473444534014736860432818011379814408320279436409552620758617828941366806980443191931583588103894122692016220273153175327168205630907645816466995043078234973117140817688115811082309590625288682148345852534984429865145855227488366663567075327426194648133451220919691740991898691235495429544394578543042836350821215402144979020319627224766162413565956178676851084399905903968023947652376888767716316293024434139702554730368131509010304222115139488522486809919742073858137379064500951772268675903125565309834428878386579317008140644032836785433664997619782115301339042115517758961816148998818804067469271742717036303134713385157309128603589176359704593794684457002207177835555510970140547084499912395414129749968869093572731901552345696695367059797349552507810270850155341190275125848715561655465501795252981770535664421143265744638660958469124827950442019843645625504544078033632056848268796316903910429704379096933888437510662114109940552721829074645143957135486809175243848258338127535136614706085812475118873714815578938896840300053792139121003818593494057980729714854903846330807416743012717949968682907291586415102547523749410782014414854254341848626835091833312329672766224584366695660279902017338944281398937363116287523733082399633413349614374641005385954470505160835134903451598944480117629325493396368183493115480247575410762259536002030740815021784899936629334961183755782687926608937097639738619206225260209252407991045181219922072947584682015473781285001176806062266238575347900563895102230343768340210850323100035064653582031303579177946432403448255406824682522339765820027732840684424479705605016462770735336754527840854648993218054711797865570002759794798477583936567119787468143609721894535257546742827246085942410938765978134412218060668365371523505962591815305213466573974759730860220735383704874820141326342747386761789938846300009227724180859172710028958414645863624227584808006441283707003613539111850893285033418660188157690499399155567561105493342303982656233115388780729461860780404784589199705340075137604592219709758020801736326369175836953531753665008539562891903750480862442853727902391511753082955583977585794666729153713155016764223804899534100748168133823939120717845190635787945478738583235774193058901628083172337334856830185165848657535498701075145618201485795982709060014051862841339929476543563449483034646002267537415903716647308444801476497687067236355377598525403256328588890100502745700659572468751794042156390274254176063902400583879656073729442848575496293684712775422480961020217413165511578179089975462450549973310412223907026804500096964964443702449417933532582954306189923859049760195676814594011366968264814687905137411703227963099182447011618885459611225348269420096183553834612451454899928572385663211948940359502326577445577218936215049224038517556378622449644014025940062728573182497210583737752157425206968962399760769833895267522185812473934139312022234432616777750217631792373063173796362732584428040862298723676826121011453259029918334359602360127724446055709577736054603117471881669048285610960805481030198080594980248126777317583164769561302978083284541813920330346100406174936688174579066142806749191264501928887303954441349684585318435354886339335869780452682324683375732652114434273227547013056640682462102808716249056310983790993927596194891656830150610455301432962920201920494481993402944072996934914288909383333953459913529062348955943700738243125913296191481787230467285933455896808910471066246436293145538575346631833027528038774617689514880498051075530226330072959652852522651767751184062420036943868906975571126446356625988440049863405838467288806040159986479400558483524317624603232649219187556975326509313786515177459818316414424102379917414447334478450346523280182882365534770610870548977962029298449186913056176016667752446562680761338601866301180634696545561059312068520424666046683792062543991882876912013804352063933983534428252607010421827484226411698079438172307687428360737385668162709546181747038504412626863019680030678947239212356977792320627319756413791134352094370140400134873932466012154424609515700307775072541385831537144618002349464075223094082908696618394030479776767705943268522204984993854622747438020130543656993577327127742962494126327825753083943137674524836699886777924029329527209078748055219945551361347154923828069565376606784650729061131798996110181828336243465745297796245325634831266293094716206881995075005088184572665301512584073682077684934653167839469973688536533284307490430304574103126864717667482706563982005382650605392639867246047213339926147972242720964733034270512889227017519345698141761686155715221630513914233530549987758912992448211332949984888364326604748981349178801867546891998577199898244845988996415375171398402793631234045028084317696857476635233451389607842622256182030704744193879876616500658861668316113923504273059504380369198314793590538622850874053625402528303669536875391521209015407046719575745260174791033723062630805937028905665119859126637486815006146594998319272893298762675197364464878074887957583536760835884239073774984339646310878753204911755448784759117885179434336803719042711630771790897058945618179828299923599295893721475560221722730021469341123324503149514740935079140598403175439104820692973980549077018507965781820445354065000399187889872766718302858524853464918046088039406023673942961392484948612299563906599566741392371490339329709403726288324335473280415666260775368337216409223017936895052610643258521857687358023601468085348381138026784339463567219359657428673649370937380768451783464197573901117598196749297467284718636426036538192862174895115604418223673012138652978944223399270083658502016464875048019506478755016068347052738859031705415242001383536902958739032190055269364389283474611721148617247832715530309689921867777520125901119556569072781489702121163017734521172161071505232234534760865919677261804461979386642087526975987917896787976194060121530249739249802253840924086798958030785987022330602435692930277812324510575730554511451757952683870640215642282864620990700507866445174378208523504511637326470466884644795559627436136447258201238211430677236538239273823646182793981583449207607604488235829173510061888447400014113680274882307732439985660640973217477992903509013155571991987772346873649180840573120071068158991807934873789901635592723357911428461599771066276613991911945690507592186091412709206315127168542122198179039044250724892497637903431727432696051494200081400758111325395296786344814025671968490315931695541993160327464676817170067766541028091649770721924728342172821528430930463561645931398746534810191300106260355649655076158438302398744111963035262043213896071795579948903742677271018483299803978577081874962790007076168510036326733433069979285803227480482278054388238168457537430305109011559601871108261331595133232994087713632825896348575279298836554929810984185683693549331928096617774048101898743579951750506073954430422410126639228321709362221848896960211697153035679078436122105815416935519027647045125835015733873312774810116395308152535351632119752261328003649073205913208326224640662284058282247362387026188878479864826585151858228448670781972019737595431937386402570392897713693820164051094530698012874072854985644053487119405744654558828767925509536755558537935794634319085501095930130770483929658088266294405853201748611939799898133587157142370621267030315964579751068426098955679076039754061493074433571591283720903098915233159650723017878086321241107821573468437056790919283474859147895851068576014278372078438647956302706048680590552901051679026229630392060740525216393567896981120948032582312061550641704712035345881746296437287260289977457405920024693310299215790855347383452922272093185835468663964053366093831582772552030218402566743954257969579959651819438786333856240370146959283164712510168048555598020239577122774231896908161024636748039515935651276409794877964894372319777400443516630203605212366696620412218893485933097542300945794462317314945702447988238173133377107336954481188660767697034091227487330348935164125873192824512683404721613147468016060637347837668355121644882450819123024479788884720777855202331546893098185530885389816082033460612342430656751780211630812239786345457402427870833715161398202667180923365922726309803515483182059627955133184361511789977817368961259568629918285736458578994382397783397454807931769277749058789814899979737550503328618807258663777850514260660359074785768901261220774750099857217411400467069761807309655306303937589543237520492537769964260067011182743349396266326734886731443623987184649948430917315588270236305755280131907316057700174439541880132798735766711699460404222908922935092345634963011871618575957766765088093520929456705323017308304251440130848551929713895752312498631464475609264011340415805081418259341309053310614269648707596859333681963749084825081363470814857823171252593311170467616684994270762455714876018968006658844834203591849317803253944839303566130315548093278047619638265497553007187012227403634996348878552611325126623315445860893762371845057139388923938467779138838695143159882263442455943221872387114327693384687538301777098217845433553856098023395370677097399104419275103523568628006298730302430383960650947553227530836388888644485777207668956185549225991874706640847158770790711952615805416440635539893392272853017248105742522087192245096881757933189342271217998553445702276658835470229351221958459802286480657471757833989858198478411076657258168588862150431055381339645470669452054601384568008979760746220865978442903860049215978318845708546934833524160416083828681402401298475771253185918275709276275795926280062485820563705398331230823169810396663645959322715709506461047555692815219219433173233649202059284866260235292833093151871623969800757553282652978565663461122939871208544987495698452264717958757505120531678301892424685923255026206716095624497532437600718288469588386712109180972063405437254704231784625194910642390561327784110850790007691807030133049769887114426785627922851595388520283526806522495913518721794828991392482004525442832241363258273685158834288686171869500330966744554504672006208471411298436904067413844812663684519453730846703189584398043752185741792628496926023604557049000178680415761470527305306626373545638187225933179530453873369406483155502333237854205662942742092645985024406109780909641004163133051870641600745285774815017242077540530420798056965722672334994938214348994621639773068822959070787670893098681666231153305528225270586225936400612381924920571890246664380419888003241177295286259568515016966814237975781650175639937155972920993507392561304692557569308824239649252455410047749047114279882809532670024669241247957371666232027537467458653826332418918681281032154544561957451246771767821288021957375484386899222160112690519221106227726688430829192823581059936304526940564846204627506275572202543304972470724155930893065246145087040396489658218173420516863399015197131514194466124648217074296460517713938621504359805494419690811787269417131151412403898083749855534287382850883577698457087302322980178320703069427671178488671272334779858581223272836508857188482358578129138426002810838655249077890362455202848518856241662673598016003685145425712845424747880841608708503572948849569932773237245942146851862388248824420471441809158429350020762482194498134490528754833330356461659926521099611896564475091851526177187773771354507269544184662982428989292976738974386214087373361642107978531655534519454600993376231697082113514935342185144909587789561964217312013021561768618050976445466051995679797362138062208279516237673403350632522656043673023614118470861886875487189018712720914200033504864810345893924972093144162862178392961016083394696015523869093515643252404351197846924254230076391470801280539254749369093831619694548319930241520809886991943901790305823451473579752077738252838386982817435082851036586955824784327502925595218398103442476522416458585974475172584713307331112929905636545016549001452663951691237612138304315468949674765093936050863845060208737889347037444981844300102504946801792637743234821792826659909694467020271520547953925126428463105171288058231081252847296622430208671412020245179981062905123095059977013106259412681661543443967143818481497943434733580170806956339902241733508027198926981083381851407338947865230298661979433022302341990153904798903951033963530854833185569124846524403376039322718469074536861700446105759612173708902996260183797917808929686131875559320866369065219709486317716092405831013814925594152757239615370097467098470475373268544139617336386506513785421206437259566573563009528787259837428693201201907299453236363425456159600340478232804610025646916990185122217603461206799191689234275697357606049125310238243476919957383745199649849599216179736599317454964355572505601746461729938337565179585513975657599633976729263248800755901245627144812421008601074574517389998234849547324595908872180369765198804834002913794954134157204826321458725020849214403601257625101021714692549745780152498951909331035519917099526894421103387579931037695284455812409498135096954338861882801016903310664715771352759387547338102136787992491429928891335273272463114062114331889804207043835512556105201392596667500200758423155112005272896599479499932530428039786063691038570835589369810277937373156933310804529181443082133658822413171991511168536854990761087846892041130600307646207794513688900302218788828733402795156246484726685465811459847796404591229032293804663477114139732242969733309936724322101103394603851384406607408162551295743872778645555786200129251670624307693222239875142576742685875250026868696135015596108506724511252165144284728617393662692296039848252867440684560865659067037946875139492792449472411326580559390787449166674388031389008127115269824142981238048009950309290797635080447616215045469412572528631694867569402537260372884341517826265163855054733338310218185330462641637164746917910442783723990505884182554433924449770938564049218161372371331931562739691584703064529776682344641758546663535383879241405942754166183431247739991433151186753328971226723742889673344940053247811427759960425456180365771031688782155332275022351694106861393186078457306461001207432311022309926394655339579440386633606439191001357757928183796747899946441443061292157939554727804789988259933760365585875568878960551235343739762098199975696332979404786412664780274680254450458902614247461156344944292848237125195697300625207728972569453716920181601589114240919303279209860755765693595779723109164453866458165758680461746030202777571737641506841503495448651173425380263476752161868639701197741561539204614142080525925022088535997389549065836770692247478128398989331492038868259510588339064900968669559024642872060610886895026010828090303018160530119707763956444881161378448227119002445010126686042936050041806354749405719710260126029830077571789649855821335249914307110685331420596969753988650403724945111389007164788345589857911162714832983104589596282461770486056865496582539710362663399171600202921580949255956026493739005826917119597513082696084600996141186976637048033292979630883542769441706196414547974365854957569907617575833528170412669201469896514402179893168184214886437659480230506889511637300089875444818699139390939938665416752208298074190131163255207049593101023752061855332554845459612134557988631215743717397934827311983033562429292373873290513451153472521184285423779668310644918632033274078767919604641137648924638330545055926678080159016751585971315541681984746250290570241399627240358556681854365079989269967968255991642645319206069810763690470364899126594665794849368084159074394357321163315589937929337392358082525996841312866702928495224863695451498219174819218233733261346872861608295536158979453658409516085481163355842110057780309729602878368369026632554225555113983425542668093906103845821668175392181289486988669359024358668433526114464754039930762373538982927187723990497284253646363230603830963060859305703089064114413531935101834130733521357812847406825949814300903326658613089389642590234852903231916507116019471410625933745243576721566667191754633484689428273028232186402126048931006211558773457565017047933676469544323656990943626849051322892998618272407139678712381953727842106794843252666235704485616397070385180741967220759004140320324546636948910028929814248897333027905531914587932866121917032604805018109754965823458918864588216224788504399874971189659274118615678975518440111319266548533734948311032081932588652629996398039333839898239992562801129474329318152486443899098231618907531465818379717326255896218175501807988125669053026514815291785039561250294847977285787354943017414121139005717983727733815097125382415800808699545619686645783478134795306061390496448960425243665480396888544123360853020686216150458972068160556888991000442438089929194956772335285199970060670513075833051862577293217762607680794558310516251291354569341980742475252399496474599292705149729644518450564264338878092412953220686774939876500810808014438565939689044909201789491559647095530724432176524315256025996323492600719356092322209652258990182710733126019824629340270658556298250505242404803374588655434862934734691327977857595769061164528678036986635610432950397228028836309806160198101419364053744351180677869444900008325964354602852477458247303170347544806475655800782037716968240264175653560564110459828804467610656708421096796102530640398982839727538293385030809212736198400570043290314687584390856372194863026274848117656865229834956647395296942236797100576129322685139869539742401075479757530670617035287647268504403045838100375907445768304051983490811562517996405254130274063990871176437659463362386206257504572233636837760596941867623152898658153941160589388777152999419631556751379813958384919385981573726453704882059093459593521883121135317592636390952757551919237163934041892366664911276860255820538696390832094920908923398205178999425296403434761822478877842506220271919953384536512094199840487560783969724321926090525496911923806773998832050607434406713299853850806239530751159198582204113582982226910400294657685290795910112046653179101806339412826942193298415949368921131347915400177731056207261729287358260421782546877337982335459846771655659201322569601700632321100570106783454099586947736288995580457941229824829001967612630600573529946262553964944542864917041912111761021929711890301986729935139197856027279063222148433000999604417129169744035931238368746761891832360653485101188646160176002799209135029184094309349282498976191124219794459744172030502498312923483688570116584328637006730905296401132095130421070267032005671044623559165989011664012037966719908653058737669407939904194476390439879100585364694064223846631608046546482390934311079121609560404188152481229883883008214080164535823061498906777898795859354357314652818473618819257227071522973035576545934281673137143682726531013234431373223563832180504653800968581168435801417195987339345818198120970366291578057938361339611439052196621495498395773289849264214617352869848497750471650157905238055221991071315541976459872354686714351484622132748534152705472530186487335904661145595330751857511776584930725250646238321671272597620243892128611888506438108709009748291408871869696175358430567073196714591020258643699911350879646949882629008214121696608957852248806595324944285372530903353464815537777048598671839665714592743982197832544834844375218048930469795143675878149016045228239983980757150796578654350224274803446865995033940369671452405720627729423254190415891696962962409271422565878618155071534673066598813239915365238419640844650208472941912809969810582358495280058464518472444474556269001839867323897381529260475761919085046604550769323910398488791332007136606888861094265504307398651145402890574449009071311728254007365021050333117268856361289673429120040997260845701550191320828979643007176161322622391148444138849973676984860609290191675083104270481001846012742811534819550865714842643051488385439718079133982020666499108971392968349895980632754880146994587871923821550776771571231781326040048732337822888421979936211830440364104309718967914886574616734474455754295563565261067487495820106008798666054410297810826021638366176837282003264650515440962046069441502846013580907183612864928274632150961472586308142591990158021756067459734372010490647890916725831903530182848331785926200584710162437646192510962112189895308909898966685530252057564700529861352817467153202144669322764773671280726082874461445650123105063873532174448083465745112657959740998794830767422911001892061649665090547757224466884395871560683781662439094632445376091255107413191012843668492773309518528006414267240909694156184621654541966915212614562536842112339891465985586271197589113648439914090664577756486395953717943825072280425683923586670502004937662278536377405731508532873009548589613391328493350024545647191665938391244695718084340909075119080879417923722465284848698904864175436706031878032435477621262109543359655807122328654788966581827171322497417298270815200928157547937358396145317112228439486753074316532527145474590599121377440915140831238207246618552815095249635435772990728136393219835867192149395232646176860928565745568461058296350982744728342727979373996126390816022495376872492849625228220334659855818333846922735116190505185802841202083068931315167647165407885990353172966386126350084965692120586897281199232906067450941011119000470176874291284632859777865220275574077648784162271139852721795232679510126920258785951942005087005970978477958055757165260825486793708330983618928312439934660522180071900553777315370892309247352281772059612125545874506129601711301195912884945067467026398204201988121513044178994165442940566340912181087234147112298532786952205061133101826129223945827517266293122551528197161301417204814144124694352005612092948417361550212640571403691906337044821173154499459804034101654472760514799705795895911934699822163055453943849802653206276264931803738880146635977121548643565801275304870380877764867537468983576400468092651217223927023990142449205734857327348240704677505161402068091162860850615810786072614949854784162542151963067410798941082760634464086989140053724155562568417863449717540542531397438130907170930523248695753836527024582989331244419930883603313863976099738753284628405688588828598169356928707480091582218231986059289773427601796643642284734767287332368089620314942672454694772495502786263052114049350302539440356342870214043409868447995202707129435303442461486065766059711776562355417639678842378441181898604565784711272585690979705686158965043157141040681941543663923101316302568624819927957188442350310117323000907750831971120597212605997069054298459273937640936716521606551774771188732927737544380354451092557058315084408250369641246631807349706290421136368806680488334177271488653812574842571469726929784576863944804106015452903224318664218930541313077605854573139556840224160962106064142695795161893999465876925515370883853150776036704920098629205921233361167122974294197898074144485126770695829112937442454319084508437659752922776834885138564540119798603215966650820986205214061369588451199252995301678004167495772568174608991345906297907222408296197281296221926029085084060411991405648795433023069521878142365328721269513048858415508207008134292389606376349555075914407442621529059389202962456812901973661933173541673470503348642887984494700154076159623918269485208742861723737369155137809216522427896661126656840857392678517215803272184167575165750419648427941911586060113353090694302297338727324159235604597739659991108594383020931904404709345596539779155949598943227566767330451936217820175410816473386384925146849626582045864292582435787279076485737088535078649448937753814841038538829912620580254958388817652230798777334964067312624632484038135700593472071310685305682608931391662178673922422434354791082924644754348447587673720753920933176921071746298974260006618956343739671635944161421293360641924719769400425712286518808873405463521120514602129664162792769748258098594136058389331774531374158883103364916181386336911335573142955235568149835320443237386554445057383169329970097756210153358354981279502861689446476230782233966972989173834933921309780459925981859296170487060738351202404052115052287279833381800344104701893542673317562911314286623810336999734491398216017225912946206989338886675953358284669994689703912422158433736699195084451052940874299235553591682329236810464163117783633679135793342233594523938801326265009989228025636690552072812363196514607960046596049583161459264554276397296560559514715335264448557030037786827777229698949088614778651964889384718104626483956129060884059373852247139371997472771543435745944938304102519095054342974499707727838919686805109523206108161096280559041892777204244866697969816346637889017141955238208929380642424896847903674446951783794682616101811244638185508580147004079079246034640307532838980241678649290248382950078520373388017899616808887012921923096003496873943315091033686537531562041365063936873698141546975099226013499230538933501659951654266250847285213542303551899112964658476241569148129725717452457484523477084617681837823416044084795411613407466788071383034534008380611695002421048399487324033924036177588732404301362652270119749974030931262926177047085597121958684207549767111431627338814398848240910023686276307844311469698279135098692688786516272401393007401731305556140707074934410325860319263210119757875519448262304134899142907138353344698657041254909749540225363355443147776136860046420146873527104459689185065895864693655457157983903825482151857519056818204397109450000050511921776020741388602899223881474794154026223109352389075675831879911269800665114006026606184668192419484985141242464334220629252499816117184922986186455664797179185503969920499220695232802272913199530353257295646169938695067929633157809184257981525432194627378343471860032422958186937962827286417839683039953643299957987719446766747658129459445174882898079641151141854643174945697430494644833730446516110584239500205974977283322483500620403963689346105110854080267828972136936882295322697189249671030600322892783425535785664627174388546870059826839306484658141326948843445562285922985366724046355771612081132755470215772231645432477207442412499726822423547165035522582550001839939181735914119818535915837042129510247724806702710956357935218951463035579379805137800835652103593357960844253393976524829704260582595560744522823044636302194236060788176103068592584775423393460958344561531192041408773275869030949083486696674202548377683974145257845519070494496125604537861865451286789460486907193019074542451848005352023205975267786020143333440263101006722953875052056386817799091961232032713942087188242062353625111673375729227055264455854314612734565583891516298820642324401190590475426815936038723705347632483166079331764221773485349871982139149264034578009066978193662865728788568449385343446429475866913235134092486304559523687273644693797365806238159869819757794508065174478312476374057034333311833329957803605937016262522072971890275817011623821111730459878423266102146916572055486248888793365917819904799473125865485631348259979509001689338891750418514878008005449616487788489804113076054538447782380102651901104861016613573942537304445521962283696775327046921200228926245759684575779628903702109474273089781129401688733576799862728205110407635713401405525752480570891987635376461863127817680344173106285559214068329578075834599474062208729580121362807561602312607498391577083256118872012185990950233082110530630204809832019527184009258950561565272032463039095513759868273544667160322065682287017012243080105596502767126230278943032943241886999251347878446414173622304057643075343529084924721159092912704623391598653143064312451043150485935850149965288811988632943458507120027723845274539442970742229846458053548547580523608457106483488983622120582675643806714973875478864465082928465506514666804225128457292947548202942221101040181451997072906324907212381656235638344153601478882480582706767845527352851495148992540704295974135564901982988322455240399501647071486172826423212521529381660791934068746937109518578456496458001531240769034625224520785876208426656281499474339984046697377922380055852644846455667950603651357086318574773226937057225737851528733091197125231086368757829608926822908643023341952056744694924588733844381329106801056260410582772586308843375455900499946836508900385601223204729609897597229791365968608136434615603698950664031621737577221026170933358918615713845345691582775149272355957114144597415703169578603021767395946982348573407410377247586626158283506374185934370866616604425372631871012336701219575808170104869487034067313606259485156455141274202089279424982161365422153268571903654689714758567443941150799667399023816110415033107883324128588367333025688789439974510109794448853654233251592640799562214637617901195534503537285342094441343294389989402808929235889505186670604071787159812122933632216199120741648893758607374207381514768488832844877847518005000808548413550697912389036150652000375391125997992405182456815905464415522675927102038177758111703827747213691261613216476101119971656559220929787592479254327356793426980080729148737238893182323602381337885623627424548844395742817072054566528276035825761576630984809709934472147221462647804488369470832718183491785373015644273496063023519099526263091469129107866031396094995178836830362453272422010077355765837103171050912487576036560151692484732728635778518289716156996020205796617188584383753526521370978716965351789819399529189677558250413998099584115502542541862101545092303895277463523604306351499122619271019687552247893387224226466698901540242039940320301448020260024704899294182965599633322565742448301793106314281166127421665936723983128193375438456424282413115362957098124062088043884089539251050649166363710963886838429266117211747857478526083817360346551914409432184946403165817470087741042780332155026257458345750789378387427485613423893235788048619810756383600341330809129660659455179929700436747708741023329689410190043796338958484567723214207536697397949773643954680054165786459674775580933834124232322626407877614388022997665897128263862762434262186646992192031812586169796700348305539772867075512478458906012461369490903682642223535243610757683907066843989313271443321748919372836291662048922165049545730444864151431642174667032236552883669743669415665688320848832601407793442858193192380686972687983242664457001621957426734395136136610147379761020853961587531510647080136411868954674133612242450903725723733284077664099659746618602447742817208483626868803105805567913863887179436703731798346407787529540469499940481321318165285610852512052392895624718145608351401783487625202941074172671705023163107203952923829067719307013270703740376039531190211146905531218001298896519470915439879822831072566719860409706650528963589349068088949956214648629900379732793859462115726176594177397470085976609294360696686676958599156567073215395588311025579665990822821409495005964564408757014099329953738199696615685227867204664842121059719048770816354679104820580259426006303770466712037547079595600688852085428890368076370035263945772722961047443938715698731193190001848713386115534609715191105079932045877087855196508276587419240355703644219276627333591736860511050968811956343250147849300012020765805223342648283428983659596297917241665551963526116482768847557109619593248631134388125287259913113564457934538539055905059834807577391335340909759405093152871396960855858033330113393512757256300540494124263923889090164182779344176511561304207077397793209255844645913135371425890741024617711173984034887113418323742259374758849808435467528049880069637675448417247222764262919187794303605481466732814311063168254618470264165333818475835183826306197489899165095341875199696380313741606703490374710688752104637308215038087233185844770922046195313088004975221574481506451247514709316553631222463004630125882891936739650415533447426971277081764027859045713514343720491829895149428507867115171732085408262319442488563413410087157820338298703362659249014753334975699484677853396355676150608388317325730584327276397431060893790878621722073272758721123990495224549810086648222171436584941002615977131517420077194290709515967927756991883866451637305124243970149191930656369135819148655915810386004163472378939703469511310642699114190840690962233332960827191908755254679864634966722051564332266918081864296460927521064887599699317153643500779206143053649688883218483886212396801288031528778828158280046227860734953746834656009667603409362565851571104389204258178979338690248163955307525640590971957377466531107323573508226123719337602899616518368468205777246330720890503181327918890445361633064903245286375594505528507501494679623167226524612504881334635046622739985302078183516572626027317641564808071175610676862169862310680120370242979684837405841413427913540601887235162975578376541877951244780516781140185247218834205027553980212103729961412003841234499720990523978582533808095289913131745890064201930086378960732493115598506195337073663525374459066691038770602753225510862715389274043842673757120267208671484929410107597975464064108138934260106203108264521986552999851636044820348348294795082010053106794852341888503444503708114178159093098755464172750354941011745592732445119985971898904648753309570133526505620381826710252235504191979897591554485810681216593209985308332237046609048240821661893446204818701057404152603143441108862002413269024263802757340573167148781100258247757901566531771765050411658235603327418819279288353704855765717895935458175572973534559499212684667612847177893581879616760791397375483388686254223827670947799921240466002990245733809742503755905395350306461011077819704493062136519701102946324668270825422855029139227160760410918184995362383449776729875997524279607087120832447835235852372641693101303233176211507698789138843676291744260918986707627019748870115010904065773046181070031053811658747675046970874150368852699458421253105953511763689150380852728211011109945192604798586140818988519432740876307125853311163325929606570789892879574561501659735228525720527299287198006337185438913677090860959846600233312787271404716361528491547787277926152475913610179639972522859471902977906769255606132108570148852580102325874478744460181853620701856585103616864774522994926993152740846626596231003054713981559556054121728355945623862278758106308049934342598053918969655127998326685738532186606039267764266584283961738361008346438090970470826910632441156666556634032755211606939211193361941232811118204613267335088312669129338685397176993943733230868566215358526201892868970876976989758874566995080856963915931691947248525982475534987573945493191473725099433528385065011426265573859284051993534340144687340139616956990134384195219948128479603600621372929238577027314030705354318212141398623334231217009437178612342458737653830592850417960750089344377438581260224446331449792417784854890651104077487335710099231624970211831923465830783705046882814244322781103862958182781047546588877767180189564444208612985770947217285732360476638204958585141553927379812950654919417256144144271749886135033715586163454751659393878427987142327231211658148499756810723863893181867460875261865634612242606471980170764147626945010790100912336520204546592728215333724266673900143070389336193752954993013037312008206013196092662335154091443220963955282996482469263653638649320597670504300683462464417692415054189749165009826783527094795033017524680248467625667957839509681390432072076156159508926816181720165607728034846666468324484465627826478049209801200261298749745148482730042567921640209597991406740582430559958142996675828613070418488835709951107777449416212421648365149320439800469590407893195683824357183792078449201037494430949100522521089591450409119632167670756053216698611722033600696803529344468203979077111606165567665492697425133398620025974323543225012547993932170294905671728356641369534036516686296761004237286967586501495803407196650198610211854153795204825339670830741653269318424837846485993214438917771666725863854783977264704552995514573858553958022299673777072678791803949556858768745948940906362544849241996092913383090640529340907142506512031123891866187090319288351020560060474933045910117253505859261053028848546275313619502819936996025460606052707840713096956794448386988440591319776534895440121488904273181018917223320605092340797731837535815967769163422863818421136647538365466398559057261005061770773441118296566704648642094110707306705092255476330886403255803712099318799004457595813544762998475047572693769534053245079031770702787690814042839136931658483903212814595795367869456279662373026513114442487112942445511563449924326481744280635159357859895326246360161966380384254854599110544306755432684180898426053840176726272680439972631281007009350019592108391646731356732229357591417174904275544215754076591321437137913821219047951198485330543746911732020163154394272315704069018900166910107470402622671818056425464692025224009171067350989683336696738419899863317632531192627888031607111364364554881166378042618401225700406561330619694994224325776192087321537186156109831111073614946154836760815389542194962235804393931893845547475823047407192334846720735623665589388142388743177096831110955120610104776107321181578033946316726086525914948037686731536708362772749455293303389816475875027940635135489165306707431069154417763718687277865927402295562177252966240234865387688950463101372294182995843192757609943331281481431766907706300303752353426294711952269618179115336612650644252222965746253157502481191627754815499654906831105473478180579789402236247014788618201753662911540539222767489940960643147686452645151766323814047557907905891274603098158234548379530947002402474607061722296895613519427232078297787452023098385706351348162071066475825429042570171514595565102864147488166124779400093610701992695634778938022546834143503933499999734986088425742652450491424832097022577625560779100906934363228025728545123884929667276072863721078542029433711134653070766411677307143953802582260634356068911355901109426007574144638689561786962627154228761453130666694184858967273318203520264158803339207355772095158840275142425898715281377744350799626365976054454205014467017010797602941800163650845800764526265969088618884730716999682559828871723574060109193865502684807991733683394376699139547746344899931604443599381303511697329688099981986858095312481223525555745154022378976373811105310729158397630555103830465913733520845602019132239706055216064190566796110440904996629606161148728527979957444089642709449712600027913106667072945509343987319832197144559209759575989172593474654889446326277323635684981387103203650496354675369191238937365279177565991939162569561836372762728199221230431347902943807922037783923754567980188569995522070194188653724969334366396621908149549278294405789376084957706837413062632849226564985672853852326397263794469266275656111822483929042084804491149111368372769376526950279122276550921373875411161517649432683883425469397562877788071513180268370762373863785172203053090354448316638787971133789891529585654402873425168501204918553742872854897597489412708194349182731912814648513595738082411828862357604636483199121384648354231972288128970519375463646868651482337074601266698340639509957160480983554248807280512949945376702140555781497481632180824474344330951914086286990632927854990302292401589480364094223587918784788803565707308606455199797707711076203940179850536250081853150613703504478085949894865397848274378396467022967193533994522570495031799238447161456606945625810738906853356444172092411330143537593767014297986093105245813609674171076533520356264923733571064374002091337057250104378129576089440111806604877032401522436113119962859773531620959103782472048893815340905115579126530516904108429542889743110558754200434672841840549174561666137407225721319551802718501041903574949676147529353433983966696446103506243672425014091833372427547014355149965155772664964986372749115019889919463089748653977932575793846591964705896818948512903680694224844214863102378342224349592594519456994334123372345031741209827635787201197409389027817078673268450332652673484454271590906992079979109884137028423977224751672972354930953002365654407316654997076873125696395570457958130820284108328888544620683271422136189209324521900308327396646660345932626627981867631265371082855597365670407453339218304208938971599900458456598061027681315154295912861802625886404475917596407511390351440546363403560054955089532588729716683329762381149984232658767846348550912441760199098677720722213685622282742333210993456215928430257979317363650690597207704459562066813809431888299809977054677534666832244631458109119057989607627917277774481912113938194089202892065323119919501176367629719174222910678750910839249124065508596530328776652143360275408765976841242634090772339980180191748438975450857599716615088535554206532515227081737336134396489334156259977726420247375211347856016265951796326180601365407657860738003550811474186771876827613339941711431643933140317946725416707471416342128619963846119996328339439689693533978973782687580206553421985957181214245753779343785562457026331538085844901925296926180099400781610758199630942309611827567676063519128366081688176472774255193465608888489929756180470733893689510082186947646432372109572106328447876414291281979873368969104815033598042575616390576234718555563446193313082822491418978246681758685101604494416990220084839141887241059137418755929980362974415198798691626510415525124431257454875407484624011811686358102536143905698459026700647079708635192071244233249536097517833328012770149680467017461282868301040506010291151337397732353552801826156174125475165424796325892273953202136787646143367038532273647254758955442966315455077376102225846912138449255964982256227146106540975566364109361751713397833839504824232211458531944200655876230732201412451791163588327295863112183858254422055296764672141596755898887172731745719851193978249745107953680212178886658219662551335517258138960601389965296246773250267997179557269719395229395475667810349276004796915763559791786467613070724635319402957208699791458120458305165761110606947448593904580065190411576152756341306135153213938621205039580386348946324512876674259518080745412242344299648778989775751369573728678571594209564911827112459681818256965701216690481216643743259858504353540832171373527597210752140936283737370016192169205315025355364053419860559876981284619139166901141763346158820630692045479898304737803794969839543829066494749247524161251340089907656379491987178019928559413422956375629044639810887018021570674228319638338820148181269248920740525968875293003449669781718478591076136468992596140749004717258903707087815473497431078443128663039662804380477295667791961095196621350131211356132357606378766826214217076723017978024994434887531915990024017554248178316357957455052997328082421724053582898901111238356336203781053037321243553759711893623856752157786754203717055456236072297215608192237759884276463951354017098078483301913509969485690969932164334156269658847128156159059708280648041668209476312958072863008477716162727032430110167289678744162352927398915415537143291214556497982237569824746323035298517726896635158041222667842310442351838954448444255662642707063572328498377572724102207654957504636384568873127885943527317557021075163343474012613147316047011765884930827070032587766026458163140421237092383096300450171656033609002995208149089697985020022231395111140886857983843873519119630564891372905983668683941007374140788441337357581823386324514270193406938430776970175249578338961170448083216658751491735634786819911890826082718557797045461712832935769686823507082282273164471227953387231770953559535414618095940150016873606750345513784590979500326260019932690928754445926759063080949164316280127648016724319758310119688646410863761069701084142187448466223863784030759014471147280018695117211033612180024930772413131815887891044140468597056464056835053543219577768136860531854198667803748071123032370620056719738081560428711022579198834459913495904922757148206242082842453902043769058455907072952885519555012950889087524790298276888179151569293713063394667749599900794021104509980469798587425134468981570512509293923886894040399209681495312618685295041682262393241633901509946128415767470231553174143611790935408828994036019935417225584119076289812984180212752007724642722382968150453323556833095532502711183308454576833017243272590327171988725477829036152606397667478341145486419862371434134019648976670605729734880766150693559890549729593937513905503567600125994217072597541633471349176350926151468255221888502268029479578668588223042069804098524917190601619537317084153000127781742578547522409260502078550745303032099000344893288985653635950772056620876544684988113404590435541291057816644293751373460646013560640825830283301758412291147300015513081622019756770449855183158656240885385344818717497979888379929754837001831344905906154229718360244254359724130576089857783441176637568745727902942711091843541734376121595755762668576324672179189460008403633117904987503386005971689919701536885336110475493394734684161808025487628372789410523857784307015015251875324325004112965494530689775365469818823717627723631127886964377487791606654791978339049590716381141480102156073480983385981005036764926123964954073411134443343197110857016728764082259353414164156219401687630658479219741560171283093509531362146794510624922140062490690676683382757074296462700398900291214980169720937584775860061709372813650181908782347565745023777458778509544476935972439770109201663332886644661292139522889934719393489660474655055119749488787366042202568755075345391106409087991166004322794605559019108637216624920519410015420920683871442730467456781358180882065599317319329160233664702701338118161531621985243851815479780844406581121448814053061127915083376926425231509026095297631436628006058083230926401549723102177249194523280552890813250807114764201907563185035202768738872046663027972844121596303616560955832385919229033641401849599872746826458372766229829502971632147232833802224794186664756855023020401971428071892872827633490316583994921537716208044165949441616710124687740266396918624771694251279029085571114026715034461102293788917000835385179006619708336252276556721881486096885112658588752194206751136577140571535989026120648601313189540430866731057195991933182323486756748747983682195453544348306848975535431584549014540741165711531698302489897906002248671315261178769915719982171658238094400666970548503128820930119531574191187027681561725704170721647255285207069414729074742286945392822200491638487240139131876563625056329290768881793365876002650660857565054643409859698534517475722154906821310794101303398607675942896262177034369301953682655955155704701518237009183342153862035853457969967038922615180820998210673247117062680104957704566929047077456214462895513332816608638225959555780503795729247214185051740359398010946987640341374919707135146267030381709598150223664631248936377674616719182250513127923620329982980237452477510605735602916709054784579103728688806391272009497262088256859285657501620046083643123226794835542290325586371205631925005241630079455916214075896498006798285373990568802673367811296593780801074710561348460045002698138360642609106865905855469350451733169793759518479306655681137477563529084961300474961721378577481646699622802877787890467580090208196128357280082658179302167061851921043137253359632800710100018552168129548091035840274944868701082109317647378168036862084176472976222470243124800594413403587375614041381574556099647554548042971884877591868795129798559954798290118798649307011244986941843158039394531754705063012600306441272866742711679313441072690503800018311188993901030958789983225631287302147929534161503539313703243665428685354859785122290622872952559422849473168487511913041210669408784971521265393931578533826002131852267715171879101410557952347607681812026330034058867991845610513583957627432592382780193986941220604535465658369633443930687384206819410228601016215618668936043575128911664684834153601963024247202758967064176160387652476532120020104320559833047089673424578884540141216297299471649078012960360512953788973136751422122386460930014441806324992359228334847459217616866197488479855418802060152982145142115007937086070075132394024103144033705020722753600168836586469834802107902937437281447017292586481251764757919808961342175491937991734648096408070913129411858599860092772965941071238310475024622800479481632242243779735051567835608967023641781508344462201087858437138821983702480041726438998175772530259624476753610584885717501339633984464422471377082727402143296524058490097223460059483187746381199654921803975036479116612504839114244524959461142634611366540997863571225102651737668681139458371947385163401413196403581810602489141612035433019686936657702671072781490465338213810515101389235914002410718779374625022381457362580242821559338164354405140139127282552339097092916500214264299846340676526339621498578421204474242070548533429617241069314379215026915424955778351957377649324098324274771284174242156926203012325689889390311940069680038717754761326987918894120248627783216646072233911748600646273814520156220786443771085870434706847940424179328957714932592381409534657270470836007389596859297063949860524355093253202415645030649197006797329745815530432226471363376750843731527211404647094945781146088534844157692558906678856295306943947965872542616318581729887900495479675592431038236545580302505211025873583739391787597512718455184516985782159354285327300262576131034719495761280126938638714684704118762920146119096639114985658707934560270261789317574996109427932676429411212391130438353641914886941352737476991458798186633895057291563038146109466645054218322906402494541096563318201591660650030249475528522501519282026655673542449858459674940064232822470154819048955240443547439385592879400654784329459067194099866594787498695722653588557683386422785427829130918683734456144565355355046649350749586873412763363324493181969595461608838713740759477886342256954659166303897672875574328765500691865247987953785661002910613120034089148029891785162752612620824409144676759243762013078525451325612090594091739983245569718717540763844803220490795045669855296828245554940230638647724762012281967909828628645937228477035575468353377184681498455646731657832287232540466213702523452116431354406599129620811359009884697952159382326879394746813147418576451826234908522258158463920734004178756517343479669489649050535205146641161242626268260268567536937218762554770621152853689877175127970911333459107917798961478897059548893434698532290753423479618555103476470432617953532555514374148443701997632648574165735028559605166961830111215338384108851872442786742796783122310608717939616601231805276399437924303450727288724076726383549661493339181679076800023808070857958076410180561120255400333312450678139320129669464061718138246430277244254671340206881229278517687234194899895519940288451104840839890594855763730082762297447217080532974849719469808045939654958845740494478610192800567511151399434268947791424526426009725148510052487024226816998228557009002499894801607144881472148942652278720889603573091951918494642418707618624875940479801749188575090620078041081644687572703270517087553438563440173712793257589002946471776455735853468032672217794948916853839775504462998740911886816408637912033131308729016232364866746378153687159016096929138406778639573951212245010154302707513115557756382863574319359773786664832993534119140303575511270256858950853490347065530678944875075883592793081902201648384924199030558555948663363527515727950699393296811683571543071728610508933130469197591326184229227684014414953780838695386617547646983906091226985359197061422686562813918965686901068170334450211924898320235572416964352895267429192053558331059425406078010920422081198510059743313193887367196986556285401182467375521042703714682808499161672285776609378792832695409560734031645713421191295645752170109130544118773442907830367677417081741433011070577872259118159021982575638706158754156655179939334338811429687573179115433710075761010439785560004715443662118761970055556009169736887556788560526376982078247074238040672581220440993996796360352478851710239608825887409418039088722110119818035864415635348275620062344513366500506725929908542785956290230411349067424961660274925300017112755077356838953571720653128372622967819902987101544711646779587575651916461893526558776030326934516653529906065179745613696128008435626313148901646617053181313657874089540187826444731270577311033713579068201757124616539708848797811602093291673036062516050096672808082956014392040554819031018176942657342982692419816792220032584145806859820461620435089094885951691135537819544067832703100174324771893028117194267645778476558857605760440342839931935939339622673758674697518951780525283097252702118004788499055561073635938323229171935640643269101977597700460916408956275130205436397046469771553410772506503642289540451774677950295996328910129895607930382742725921046772854463481736522886042129953138458175441843852540233973229362814851119973426183441073967164752831292218044258395480333991470612674041250109936000096580429659382878342789591669998216737173226268111867285765134855645676021843557729390875375116657605486873911494051593641042597927548345701422249105960580440342127434749092473416466616977097782680703403777746409984514240724254708172945562861744991312819674332005115674620131173247869160376148549349365128095338759904612979599908877143516029884864556941743319037525550307603502107310545260453561564414822990869983471874552979362307377004070591320793879982863396185761243071020669473705027435111452992087295270594573659956876428812343776073613801425650926399283912304566117464978936232230413891942942237544067087208172705300975482309077496843689576660708499890643800139560833209589314533510821107234883156777172404674627437759190072425897545943540021497682768213331312646537579908820876503826423089373900207758901914210953478162018707850465753127808784257607686148672117345649137635267953708939664326900993594043849728980964015222132843080574603046445514700351920546871497725610131542146406364596538849188611345942209894973728585851262041667319062889024271535472924865023092624290411689382507508783928333517101871017401634367064898188955350615707938149077437077825624759433939692854381640218717157136431411751423814956735936396586649150570969574430831627562753127281956614025806188526791520837972029841496171326930892929178454514313600438607426564757818742710058893943435404036347217452129904922182967051424634620507983076963233533818195325641401532714561352294394166793373687049425280809466712857903351954909377140396745600104818857864390009015827033099147652827449235215707997781175604590861546348303965305950178312660742099389471127250954908199410345279042458933868063589961944727653588168641528759955385226339421711708859808772029224105871182213296451562828921753560009542071180083524416516639262071109613262655057313553808522723967540567566624158397580355504006398799221884991358637264647822421845972975451899646402426700970179073266319366105919115187151158462646686223900887757507806389026811911753169687235770211759844443202472107539738009167497776690760360508276427460201974574518696038044907692698622030906298300617955580560140134600256180613487948969845812270422189162871188943496434672805371501052208844053044000185102803573183825421040068437225057968659614164985399142572276669269485822057530600814867197930231531773402488379998963628162746243101080762991023462842523157318384833424817603860996090288061729636037974615399170159361965750218873574077255360188597720209107480066303664396228706125302159171647510783613070761694718446403352097456357003535926664468385821104133421852554192615684783355888130776433129066933292493763929369454671332805739754579329560425624435593071683498399230117537785798260971625741076050481845539161253710932111447712149153377550249522143972571106104926548478246336910346405755883465543039722813440400503779537187743558034044887814984820637649786287372186824240791318173050749027676580344138154483493199213987597368908379310767956114600886816664570758882916672033001154878819251253077756338082107304510913906200300840303616301180709862040936564093371968145848887105654781943169762647592674428233461307544407002499665527810262809875800507130075598437435625256096573568717092206824362150388521290534872107535553821341952132475978149372570832617832295375697382734030562407650171859394022600418894622187022087159864701950130138671447201388765937425831371150278052351026461649320476021738179403927581041189890911559737987733077816342399942964071242928991287599724955743797217264083041558371480122721991188260625243499367520909533022682426129263959010211084225391986288097545727114958166149893087519843266446227573805500928096898767154961350332378573124396017924465451195419265248423974441281834189817048432803422999241451059697257820298660603754722438508640452676127120892598507270009169114840831271344350455616472053602728922639001747351959468824199105269805311425610657819084796959180898067284982098564536398671976671176792576723171186457290689517331574374287050816779247095454606974174942820420592998326476095108118328545136870954495756012701426893196902669476665427626690623430144604284143876547876809362349395945618978657454956740672620264402385970974873110800120594954150579344937259946686310383314920377168053669103210560537397245450978387093018179403091609882326148349749847886036426489532813013159762328848953198920359881042425336045932741633917956623771894348678555758515660635973597423253328942714350511386070840620227692085805323857870781930425826004272895234575352342919919416661528817158532916737530638482240856877647276299156888837069564576891974801987206238875424241027402517780927394778938578478462346550606646652576096186938953039254147630306109654637209937369062298877234284747021708568595075366228177815731045564384920839692658379739192608503535595310397723720779166041669637166030868608397964344263200199961187768992030873848538763496305928786656153410666852399472429949129569109784475175679888271534638165327517875682545473302045234708530683476474004104486516471257985156488581111344373211161857445810903499183148298454719445542297007527403501086649606635275995427578875500636599697917555566796033706025434288361113280224929098537510195559820344403451253695728661942558931499310538670655267474217217936782289895993065978525564814006371231018056471497889809252155284797411223675952215090907079193689325529024005601166526969044876737055250240356453322111454462143275709949777670728845627778267280652601728597639749733791653252472754138677294409607427417717683173587159381859239814532224031617418483984993389308475195321348687890913998347499144952718190465194166635000787803826567252164932695411758794399122797064358004198235045668359694081293160746995639761589359558656648652216548402751958451357738194688055368899418583760948009825080269756394739894936035694794070787001561306027959651731890875284791427324231042972636280420097109732352350075349286949468394388845514617458448744342917572660286917891415506179229082461834070307811626472982632944685358933208212916282445894207793941245506563793570335763171121441971503895437083193567130145518125947349795839963480670787313506482503199116050987036467850146941909924091336866298287661342798624524494065832428612132979566703982512919172242673472030861223274594229966155914460867071812490688255963590344322746765493333908115705176690693459064350205982648934831406352852838184631043431475031405383164262143241941329525902417953090251335364388242089113197833428896103233447108407330641199747235019119191215665648904314047791780114179151952612568544052018287925361159428275126213213414591830586913125487167647761704205893592239700435860728766789747877809619814168831847468991989886009880090378824550377529450769355430944462818859014982404507203560426921591473518791222388290031052978390593901414792571388700186759809832063882800535667862602465348277171601976413189088405123536193198627208189826735921729607714400346633129009784663297724022414589862054849386124815856513092722032098515182331708143586424380951484755068417215089471649728413400788388385254050112335171030660344243166317931439986253886274741533538622778829273229478685481762932668241758163900501892109625788011166888232649891233577879970614313817761286642103896402063341042064137716206487149495761929339828788738026168482700417951409364945876076518308797999869248429072629262534418195445151405533276579361721782282955179314835015829625519812301689057762495123544469599433216513426645763295071491115822916093777029187724710033595932040410244408377367335126680472031916204704757373744626499994376598687460923808953015078516978065418644841148172011140968341173017360630232992020325076188848462125955142269243022814189069974178072521671985184895404076376529381709846580673033675367822188590342554818325263545568396260817272876584397035543091376852887487269676164443065777451989784966389306463664037407732178991546162798928691831568027017326140002961806012745438224409667053878856672387534233867923119336013507223614948169826355230888986969179259999985274417372106839920925697720597074595970193162226044430759904490308943743641015229288505945183076602930019831227934279921508078148439805980171144130411083673110253033908376822841296569148789481427195304835434368470928001339697297077716468857341931559707000777162301442448781955673889614293204015747745961451388559292155524048147759547542021872402763441695368459160537985147902431510597994518404114680450065139261908107775010441765781658378050672220054500855451834955733389652263269181594286072453083492962431795149211401806197152150650366105740537980026192979839968471220086014434516509998102267162626000156930831503473077838839896189615272929501422628590161751375957742609140343428380107545537622830998271474706044254603073330482431689516354686486610785972190630738930242863021968734988813116409590196841358014307371949279240521637131028496335951101482063147411532983573642976275841241924912685885064054159315193206395690197127173321645661454640390066599423780471025503918501510026274538810736678125464576849381325994637917356629680328548144490930327459462105710931184463873192277788238193567359994889236120791274493285137830282914380646926065007668745178708405129360791292945651671560810253199487813946422099606343830399812737319433351059207099821308290452703215999116074077658770338092652552375936839888602197031455041802899331561840022550508181931084405298058623642254191449138565387702024429698341507247760141327572774929714681721907476772207242587560923720676835419161835522058468695083810012855397044267364644415767157989718112777469990888878822438571824284946747190807595564706256437247908008374820174670698136070952061191511250603670082832016491469693816622790517585854217724486676693411476731120764779366392983508709293962264008380061657415779484255596450024758097211880461629026377011730886921299448067927390350019870848245317287333375228966850922526194954714565324500248082074222476812529866006837001294691920172933096517004131989039393844549898486006395796208506015956282444518206448986524910688363655133538620420029379257834671232932327044141305443725218537978775827629318010119478286749111690073761476348162776834351587025706920369371026278953242320427785346743785033514801480346454061378609091721828758211943800039679371600571228229653127763613027218808662489279961019960303330966780511265494831838288281580740047799889183637342333248861046850390057701295578514120285083750626929177756322723892086908390257255666895122356818975738153435441645073066224767620001345312805866686371909503351444016104093829238872266727497030744594606888213154415937802800867987780276393753873562342002081823075629155013665172313385131848498042752655375651107640530892097015755680467463483192501632007263281421174546542585747068074048107303938713215716961868807338805111104324147988374229568076186706783237736585780225042691490978615425675803796676990355504195647973771785599899251315678677435593916594391755838417498512311664591098114604148776235176675073333152380790166215955125750623685585460155265945876799780581355100815604278379689638123445703528914875792872332382396646047859923052269604629574100169306330455683144749421524318105712796483134839935565823840551048268003052745927336526836869086246300702255341055864668026883169738039026083378103721315435235666764682055128560741598102227309785602937448592357523680547996297009174808071434238537902856071122417531392317166315390172247513811294414115596471368151576693578528672397930641515461648750525239335752403345999315273491767189023192899139103351773877477946176498139216196038159847321234162213869941764271553329754959776990057952244071033519713029020407837869956015000028413529356071850525812770264247136809022035530469617263013760502162481066239455131852792453093243558585659340780544070712154036339043961160198272793989274368519162836382421845890754257787486008714752366043139453955914648614272291618635691411383201487468666215233271639779905522636144201633561623046625471454258143535501441498946368003105946700764864793868605630700996362308845680034415446838527136653905657738467599798867817773061308110009328680276755440048209107287604966784810072277697706837677292901476016038024911138731103738528750528610307580866750343363348277251886424041913174453775577189246700366534492445028221608216259524446551135129734316901814712383956752300811847218404819020725017333703633861748284950309214015178216615088813207062108558998405829793530085071258181362850786940147844803096356454173869850512033401888200427332680060092671553171234611776700171767763627120927055117278779070893255148003946472568708824232882407348257539492895615388668872440220119247925465742870086775574665804776758467207623064161110004700574950876802789261954830323811714186637443723378087846635767912056436449047500081718092788866908572702106878798791270159477505862695598377193412304835949661261975032521286279621528020069561740044799636869847103245489829563315260112902405954791381978003178567966278731948282749739747969411974858355050657346389446244759842320434152677534407613675064422133066543025157488111613063071807561223152156741365972504266051960373033487839689684555104640632196861515655843073256666253504059951841945173250302170583564696706581497855920222573888261758729022685367745499118143877318260505247722005351668641381858818013576481201942362618248384205864781349634702334255043315766260027435297940006993621413665542740285633049603040998093932946945056951713754057355289719818667202938646740344483020535129715469431271350159143344067020116338668147701179534304562633191220247927676936019505258351675294882035552039980009377704590085513949230474368793830193771626738303260131710406361398488930088090596317234127866947301528171717181070900592376415012329137970497037802222770912750839970524719522587421046452006631066088534105623446067953471671861701539578485946524131992567401256387276720773632337614589204709817017333130480372742763887085562858859228083774015034487573622105996023774959440777828643188450884212415281497151147640500574186951874840347840167965115019391169315508909937846305567192431103719753185407137262656319333136048313592728519742904656012433069109553942621429704606280062664855957827159597171988266785736085337954017196662155543179225902319111054955956858427726715982241679825629855539901771111268875825726668003672614568728365778946528587335962318007301347668956953824238364853874457356802901156537646269082013018978813364076893059597559554738010661334583971897918482236331788916303104112764156477435574987737959236841423096524823562707043678717137664728096232931469377044336175418675227083283013581086385987922668822968347429483111187340737666013269895314974989660397599256064090312617549759650839559757146250386619108281421598014452825823075640561838469841244474452193202155917736031269150650638643725042295475134338292014704272283947802729026722503032308149514247908770961959477346349630655136112401049607855538483319437887000087103677633291167691028816782746829083084152579104027952893621187538875551859352685074822466564343462764114689944321951046988517509135710846297353955089040539196151152698827538480650742774404227373515832044503308999374489345101875019437697947396631723563645256798575572885328015249926363504367045030849458874450390094630080861750946031537175747419734990037057635344539897153197976357382571945126822422796482575569693301657157143491891120922696411095148503042561443860353073262033569244263587622073782889663819192246256132555727551064672783038072894625834843480434532422786480588293162388121014568804362514143089626319824859973730850396456910514723505502910050782601282589764079932655634566705184225549690958204878445486290488202127597650796298426812263535186453757343254784196523911778048467051990717288648990555605352720828891816695052210058113490499286548247990449502908129160830527557365580556200894889619208106550904323430217951000972233567500325104849495919713948716079160917464227853115417528173828757994806156755531030107366840611359131334888425347651265617327330430006413025610564688102601997190826502398724549973175014951530688611338908503983609805102096080919782076314391736305033882940038042972186373092104410381460417209138195552866630724433939658067701684311310491162992271516955896252865316732436013618956014998005797078941187004730414881479887801695881048278046977303764943876114876883845689431613266932701329569864502438304192956963294646302976302664668705421870013584128839045699587151528381327246388137691872039604501225522088500839535989066728660269370659026944768714040580216503002383523299238022947740803674675608391189359380981977698623527482639516799345558410580424732962777371359261430579843094209000497749073396148480779683564396448009175743681668673821882319609621151411885576540707454886804307175158146763525180777036151218223035303709944208772748019438987432253987860610182226998770097828713243318055349647979213378758508736040847122241940948477460636933429593792498858520288141841840599681038914477763592470967849455774051139793600834741150013521150093627758916122820866303879964032996756092160659678121497802138745190379445615596843226007093702647757556194762432107653201099305445466392156720553484693669141042078961523688145596223916517043951962237753713337693167260534115057908412688810600494228283697997233031066528656328728655557518773749948122350796427092204835402506731142650640794281353809609749568383422901731179391069983033774865702058647877128643969763595545906970368158775886613323950221832543835191414307196427274970782899749558489000580072760970483606352838334090918060827453348894407947680750894582204873294697933736318495886157778016388041304544778916752961491145034968011845554100643991463043078460268591523208257199055923980988028229888341598262693614959899056202491248380188455802855073631117745247841039057575727790407944507445162164075530732944943313874921745071604030806966138414230359123226433962327937457453628290151753934998391164508321802355413969449797313796641445958002595168920966162888374987988463430174185040195830492848550166775083057749146278321683461881082795619902865297167990220920096006934377423578789983504388201204942945455244570270639118768737685588080597661218160225398628680846775808754051957679806092250995094681283507609731712784504299499033107733628898705764587270468183785181727774394149264377705150003726081136133692429991606005401928982950634094590883658218469850727104412845524630222536506521821585108285748174609540658445182633671035692206654597527728075878093781018662558362902351251727381725529437522773746974110348548664260245980928468865351649276399820099298418069767917931133355875903866597572818542562162224698669491021179322299035485355995615366298289697609020170661079492136757316009832146580035720335057507050915458011223813776633042941406083500181002711943473533136265131484572985445029697318322835417240219330900933299218993146338259032162303109376278922421790128385254903321676277255747051645884593685770902255382966452882149513071186121949782696579622885179767605209563594091703700425198745343218978022960804653184233900054680238878464612611204471553699282541485891941460789993236551917489569146289661838316367100663994487857356280855039841472160130385445941908022310763117803510448712551658669408594525205673423141478016157105997412769517313824987199258859943212658286711427452699317756597236201241453616207254093300715478488480366787516034476000689987201065086250395540802619789058373024324128585737295666158154512873495511382613701967233472780038767384308649602961861519219734619017949554719307597106978417278787025043911478940749326809850348157667069169114878891295551346733038242575618404900650676889048404901017205447523220263676974246944655704943155211836310647409275501065598798534642127516040527659162417732383416017830214760275903023448060751337336321852560162635223258067800901362486111247855355996738226500887520583217916727425563413527470003957675340513605017379898296747588874603109345782323879395591667674435019061629837974358124484018522301788678021540961912069009978822296408409471262444191095870935584034163443876173934831506030804923238820186459535811773736785960125971492877495779474862900103232206910333557116896820787635757409249405698088409494303769568299770667405716743591210810397658902523037655755604955269342873552509675900120101505636505660425318476765949136697201580346974954924769037062895415181355211028240133670923675581454031304269430244747448249538729295436394610922619244210187851266027845896321698065871569251662636845333527620436619483407099494125939030354640873814548191683249907062491225923222572080000312308952814268824317309769632194566706945434994491544026471892961686328971396033942673586344574935064949726233712094870029925853353557839559810057462456080976985746293846639395213274236452824068990110720094215231493551503246303996001237786090230518869199080505093479620577303415526049718097467357212707000051713951747390894463390156523568112932832189661817624787521231758347366760388362484676686336643786577991697437599457811259175785840312380450203615022119251730985023799145637721976217661770489578375923142923072718175470530890355759922460706949533354827581240886973396254047095647914954299494934009635462970476788902528661430876283908330085482607568432914493450022465866235461542787394127619620857593086932835193195694597880086697636930624709155816664940890248726488468895162005254780520840778524695942025236160923022737978298475168951836130802207160783163235587285300885740253169649840471845291291260296606225990874943035624079281767481139595510208966503136458640551267758240205523033229051418625997141109535115667664055966590790777314794925824286548632372067366582264581939246380390337627862864764085913138055796896071929908939937904745380558866280867360639354094014447211943657631650900073268925641974484218675344423810143978037647187702032735523401739988237374862001664552915472913762610713921720132722125067327525889990487806392365003233577369004424135900415819890894110772237461803645638805390062138073975186439472468426485978984901741070395067038434874935946485222489099265008157956629584361463084272272976832963673005588205384936715200217102023971811246376922878760248251560431445748712191579387537117713472134477808494503638275798704023326125941439694386797544458751542818304824573645278870340819858128375547414304031534176333661918318370061710670266791181523094640643791635551751664239332458561875682115221256522651306547685557327459146096247465249798706352169028749959078384339840134474634202693316017088057018583597327805906321930318072965246868222488216096307368272940863525291732037648149382160989891082090406923146056241596181290355081710754639290083533617590548774450449432530890949209986598832450915841743711637402131643523870061128820113153837680410350381723493172880623876003525311671678029137727101981041175329048854956740150008608328276277783049534638504256246319424992670650950366450805189762691311397313149096294730466341584294650701483056358348331164218864427255529310072228300069894211990856420037610681003828466485975656328525953820592162140965046795815654422378510614696295491499183644856974471452435576616148046913351452732934617856139136155832640987137752262753378734162271363652690717319986576306829671787141706631066492038184359966626907388938120075667409620812970333251720281603835003742103930218367706306261077879603922505035704331670766998271237526154431735904155569036718078836285436254011308629905326197905903955905565548952596526324546641572542197693328803937078775273984388363177148316079279998686569242293976343087718408768066011370440623186749924049799671227536454020809808671411316823307101446449187762321736155015118678745816658794374376590007672911188613421705608147642665479599215851575126422145913690798620722271063110057401437868747046959070263441055944730792454462736776996811065687795101851207124576432104398317152394112746211093074394510797621693535035573686335692067638643928697030749131385185853347812762052719889502752593864971445975027920401848855921083966211523280258671481731873934023155563179052556651901193602500930123679185974210262532626673969628376016186724993424204354982988983154027950973407171970652991029471094926280357411786630186477719605806989322968214229537546617865076209905804416164345309248308788149154221133034204965462184787053359034991277778886829796475332066005547346057723529599792136015647698413956863300279784026795046233143084849544670186799302589962707894148047543140374244972041729413954893244481563152278986590949686130278758885491947685575797720021796831973249221974350273069462215951626087624185518355956354386505289612636397912016608156061212234983196295633474302607901674241121795236668841792754234726478776493927373551641044859846804669170291609453186694462738222078910878096040352389324530659183200750021575620883716207655690193604011450135166955021228239506254595825881326176350222005926802723296330678263066543349708689736396091698809277985281345959981216286643291582095495358111171902279430639087332810220302407632300325198063624801893425463132471901172027397629017241285498207419124019297636310752642762496309534482190784376052476501005998818323570098978638665752855725640306490991463816205587686054039088809088971488347401852216801641251453255682571030555927973729423884425831219155169344231224315441144745484958480546009960888228544440938505252096178055278079852663574205488971546054774403729104641774440466531323936375771116213657487060082151370411247229166709269763810778415840414812691121045195837298163538435324348978442872495589924112657535502465354269416120550428769694051833199675229296870651294688769749002626265334884015088442971174499502706039630789504902650023746023310239789243802566810537213788702270660107699021393038437547692727452109252181065100856951582044940098583973790498181463403093442075650953521471759212658410119666511450441589476469123012062374337705875585251662195875331909917170091046767927202833579450470134184665159316074059108035996744560292248438358506578705771148745656136461252874804319208572827473374414183495912971848875587550289622764520169115290209533276315190096015344686093244929386827517053407196656888284378506294094677638905146419721013006768547437397025504160496845185350509759900747203231282739327993716769958280462270397441859719593541382515116572103017519533037792885182313997449588139307767151637780442240984983045551368475705046016546475037756294654020450687544610678111497038785690521040508865879022935273263722733136230622295942575687151011385351937442657948959497432363565032824390841276236932660885841415359031731257492182485798879527951070850997826208721235672352162265996493240180876707914751440930360328469703722706106357136269981593066920142085915983454156565758853622294905763979708227529357623015933002945259379346643768792865793095357182168413674634629170836522440123657377063787341722650534280450604100786979589449552434339012529533462857592434551084222627645630023313126972226189532246750004276957100407850143799832528019862117466526946008977860634059936756683415327040140056805326123712151509685749175097849672999731609248329570971691874958973291094483703987101542325325429741679659567416276256094812493954868027998037798408962253934853645580371320663040129124225255121659162895856309955773883014214412547172515854499882682785774235437193398826591570574483626127631223893368049500046893473884136599067779628078828229752157013731877222216341253638357893003103752019318784361421698675143421104293328155530980914517650066233437919679597355969210983454439119674381324390074870916639397035297449925487497775612040361037803676425893587843623394396212753474009703523997967737166765032273365596269327963294760791330289621655036989598315241842724178846932848015740309518913171637520325829386659358239050934807067131366631362552971102563882872298302339557831829082357668562718145617345859955084457772629618161243461995919930544001651979395820283058168956264095679546111939866707234041339694542299288625952356097791710753042528131934022462870304786344308946947566159679711107846364794851097665289935456364729400720959614002016178038007636626433759473545203445469962402156614390553305380481670175179302484460541826876849593296344375057622574723210817369394986873205791355604845307331736601301472312480771674287496827882115111643968420407020596577165545542643212703451749197207478211415214154860728470752146508465407553277419744366943853129327496915055354109421887614677763493182978835234382461521217554462980141224679535425188773056779599338286489767989777719455437989295746938197474819213482797480583367907092230988845497904442684787273459469894377481839851174396507219103286153177832532644528757968971774938959532321184750950640360911556857871275098165749000475717316280309545026474934431289507436126257502912205365405562838788933704968673558865132810366156174107606720001275589740046182594562151229775192596610051855243764137877200586445748102991774189361932358802579298789897630668665462315836673436890283689077128748778621294077512781551375967855379985577022934916315698145836706625257566179021551325654154096725236163111220967474039536715040857529340630763361686960458097018410577694318595292695587011517614038176715564459769985034474891440522739355665827492024602281590703400162561656069564373322640704370314994914378656251472831389070243702909474580105174903455176841190518852529110771244357238670695976478031029921728890711725812687511104808496716244315459187399497523662166078051183471418507105711993073053856629898218110053434581417333366628737461035425253617772478326172885750751915549559737596443054432789998594618820174610356137684303677042742793764588098152351511474930347122926951031503486944107334648384802186626931542185175368904448862475099303255082795361623080628940309114019738003255516458709166894346456053992439966354359068349037338970697903362310149751121631655821363574853046363991273660317736011030012437282561373719518225364903633779801839884648397571883424521015337703747057480550490425585936391804634734794646642245985796585643882088629163638916002984939409491808943657191597019302509459508094126260498628324152889470612014378339662619562965489232882913992035537397203753342226744212886196479864785848550835171175566004799732897600590821196071394555704945463229276047114794888519279322587304809132511013448498386790766785040034463941525632088844523026385258117030606954418580636149873055481773419206303293811070067933056696297669763483101548949578292652461948004175728371485563484237788995999374779782481598881839409257301502166997763284788224544308480977413285141358761562491438854290394254509652399953032574915725012039369378554413860633632747608878548759287413740385867436741414269979871157893302003544817817490215998086416981011756682781712104332560171113062950638866820557067288256480878855784485574399837077255821649427934094461477557456551840629938257136963732837770746632012167543911507878175022159956108734111578703587226451222091298699657086175228773837884752851748663215220880709638330211668577002028925982679163649602256868362269851898471864641411336380718896480073036091953519460707780915241870737727336166433323691683148598119603363018164245236083839706051485025659291546655891220352860114832969599828382220655867068613867086762473426549253703237334922014748786611895209925026788271737000397434965537796536305282104133976083310384735648879898628515412210542521639549592544380991003600637587829618042171974982741190674288200957433946793689937426737668009930746013931651556672807273292267838125214532876668476765653519891451424794324834199169516388412816710803005319864052557362254971288141450194104477513587972622355341972097518734262066890897773191148735815827572589380982448848420798713417694597025316610217350237515868211679039011269361868806551223907776344599594984716050222203965798825726935636282510500696536193170275142316165325753651415077473668090806269563968653431751891142346581661958902472251662374117927019636370804907267581950375328799677339891833091101502953827925529191394382157463858329421259228010781885137017558558295787721036894409972819785005712496166347489028414292315928096735745264684383180948226333076588120312738304511311527031895737282167825467556404896056127874738096769946933145500327029414977817939454352234812744795511498173866305543188686493356279814743105340425290251787587295161354972912874033527550405318708155603517088377008968426320957460400817229954288769382257099127242011202873478048322992451450558191380028835231315282486866077468370899738785865370234745238398071285325070842585319012505485192595247617126204400620447972603586723449466031943409222721029518760052059642179075983528908032058788065580959502413381526326190556438343914024810711858585406902108739639564695367309746958764193563238713149442346593595276663030211497145887036219237634872138123779646753718124611781534591473112428450079302734975768494741249041942916172163245547856971178620698596361472207260353574366765738904175434025775222105933330109071320693728132642271422293422368338824760452830106812504257841104769843083313450337337924889519149826099292723231660520680985021755254711648768714499730509198646297108991048536197186367013902528710688979499865247845638804129058355790805730375120681003469475380740322161962476269949055237572804010546269878455494270713860438530577936404106214327230988054537892617366565769676825017639931297983684323672363224541302386356902191961323279826269193796878672843142384414025232720706662406094660148934777903406029437151020604035230065063096356541628759340228682733616898197724059160748771047608978031344623805627523196344938858311067063491011933595551668576076041432098752681423660118010328214051982894761443337879358108438870343760474042587080374440251386667044086078048959702029998173617876359180061527493691141224240266750704199607554763553094228630110167252986886928061356058314152120467860354441445837098998069725770611688394308219421148917515142847894513667903810378424625796964868951871747804607318549432119781442022906407762623892915451294722159633200884751955516231101124305521610487598971334207766892390913953856088191649290293172645312772335748504290243710056107152626797663038999604193992556672999641905221316847095367821210097328516724497554361028139328188968854773031295199040277943586681005685225548989760781717464226510353054766659374982927243491352050303671828280115090655075314823102723996564456732639225860914440987545562972137478203678551585978427464544852630542791996247521837689281736802117624277162416194311965482371470868863012002284023762824547822420196623297222937475160582958954323918052428266116811360718384780816635565528527549586138294465785406445236129718830854656172398293246380881297564182128916702459421478691169283753582292653090872203520434361685915598011841221738277487868740083490124725371357864641069583067586169306126870489953602855558711762314079395652871395720675228437625727470347692116505452954507064607415029205124253511261189995557571995625008102564021796561788873780072009333350727906846609457311623021281297269373807223240693881201557820467523548710234350654255926479813808761591143528732489649276912594384136554453159694804049249250830396143636346172855533615095905136447993083626011979635985133577947259900947528264186708431496378335498010193957132712785235324062125222827789814881328865297351628194589761519443671703876058855748783284501678044977160637034574025889152852169530880941647706191888939030729642475841718688487758266485419803046458252888205089122870525178318502183571601411078942068911470078081409264082686624538586606363839608852895487068790403897494964689619065926783230418768392996153295698163565108787016660813057815171761277728880790122755568161116200995388788322540787332815738165310490682616599211888319701827551400155763297540263934244030784281551983823070355162835462098376692358377555313846669303607564983918650897951685935373346417977107999499263032573284387934506482996990299685885792750081278197620896660881402116289685691997969339929696871490929064900205362856427067109810402416432303032692284649910510193027684157604578209032341618670979259279410683379621628552136400981217260579666506277516073486541634825995592712910491966765144096712469238823345561269598420590025764455153653561716755008823299932387476478988873753936078069896807620772725760026220169288682832412827032946509273640056925475562759067376155765616104365719271534191414508481026595628446608542257069206533719540018264480782693265576703187089137174861915445299221207908869921674210908823116204868758925461960045252325558722148640621273672763176515853467288381087171378747123234292514560619871798485875263697580993324542227615219375910815262841479518074210212168756005155980798216572876089368204187897161869361961587195640502303212869094317813423228252208423818079730943205516624258099025800792865273050549560692910626144734463098028427994744843534721061863423357645683288952219098696929351208147168707302600163098407795023487379556153811489569355405535840424390845264879475810695038268140237221641978571345546530676829166745900838177243480380380653786617681365639016032167889610725964809535540574239176215218399802788834467317997617536261254710644579832293124191548329343385600605988213216006482429268625785812740033075900442906166497889241642893957190429982129868832497802784755474034110586725727668302530724803061472747613647051570847483323175006564497557289288560504381567799893033494758190613098091809227733622962472866455467651215573036337776607488533091949151458969939406275775009971063798215287904043995147338698012167493740810650246272046946894692347927030784654925831073405738129718198142755468570416024445154107288950718446550470469591349142658318739620513951947564944992344126360590112086019144262211933219169159163564234169922255919848188943423636777908995634729444252756038814661011183934055014535490766321060888419806442805107770306255863666443458057887831799754741325070050953782209854827541110482908686250518911857444909891460921657157096965519285859139632583847580180160492513348126310183140659139106490478263167458619195421685139872486512078506813382273474744492058477816955019964896728456332947950791014937633058070283212947873466067631218008886331373212849728896730966877823852922990587708809213530707766431486842104078839370008602851589112431115903224753330348101084692276128551263177093839527350092848397243584490920143249565238552319823785118954641982493379723943067583440598013179645408568390825505095780185517821272276045470158609918175984483779690463215051714204993815812973741051105351088289244348643999458683368041757667594089573993552447999855376141171227403728466726963993897595522893581656442031320653178254204136211515252538985114307497512276855682165357585934775703215986738026796470843928948887611312144413285678898819583201337907674915134520863339098398275759458436390985379032694433199902682464936425221966845237971810318099281941426446352635595888687072066317364218515780406720051586267895280929852303185144677030785254169712881822164652211033627590699365088175678366622529405443669133501799452580203855707175588554271377015929552266349862647347575099231227013299735368024416426819835633662471856603487615782878054627126990579827128295652961315058361432350538049339011648123966878909323599393373167505290333362928568750985157312793009728013475509966788827797233178827599378750318644159295236200973395909330913007166591007497825229482893591081931606570746636469613538803939959357808733434562905363716348873634133227887395437917556937992316944985309697805418721610954054971237507066900722242987697024753061289003878438738845632091371681915726934741336355040689592899652539139343306230547858132990686925055220791143002757990990693861786007094828518519594348616141341633281250176510905620605791551207345083075645894592892178314489742475325568933556877404765064907915943379832639613991080851522392075356855329836352808268079256823580325983964626430779251611328511602342293094483668877716697442375361159987610221575329676792404456706975535761302950085201658302178507694251951176815863961819845853872859770192774800868068806896828239570871154761535639578544271907811583977680597886565404793725132010770769157318458578363169010626899492411864352215361835895044833337388371513422183751097759487411275813945247944237942382443524001168445345559989525215659999031530118418265008001268723788107649208082547381705744177461593703695935810956608883600904703472503505272343921382032392932412811927286834845792387698433297880729489121471122837949647959240413960202434361991781816922021951004076150488277410245650665427361636635284402756884104496170623749502352934072407919462622656390947112079621507619011082636787821178293084332216216730295794983079937063229235205806598859432051675105191422681297334153332349223185440215032083797742184350735685557704496429208832889830412991994803692421827507056688781072561721563611185952690103352268363883111362744344980538378490801916445135061019267665518223506768298699244713484074640110632790837409506521705867623232754066950494265407250088799588381001011920996625632298642799591492347096275380593005810754036529933125960253782211457367465855869403474281312763707902963207143981072314002215358722411113850936354622132449321219468499457273684450179802681298351687162416623239151591818566612755367739097568061962794466156950406130043614109018512423699025192972933705384761581507469863655494646019972895400154323938037314321935109086210556086177223019228328533679006554103039497132500661281342780405853945608068162636668251319251227423281162632741821593707619179501427365127621993431348865807244639961885387424434610336647298629333916236765286137645875527400464636109895210122902523031165254296120367427102139012573709964494054950930483358513503867619593927718430057299229705494755901548048838781796067699070541276413233604630698007976554352189232857594806775875505180869003915052403914515732547937956066551977946666527377292941616824781470575944525591871337153387281614381688774286587678627999226744387897337038885643965769616592530753466710251591219329000844995490357190079594101265645688857782993850640775720196638959186391027381630595015370728006822831055659440501711234791244973725381430657026284014441577850526146949703396503794736667502900970617149936784201173381318167416035645611638629968814132772029717174983071819100604388305177733817738454977043044461854248020056015550521449896903453321784824007029429625197279885274616181087624424589140953011412175205512365203438337426470363994105937337457321665680390089329969562769930041910690186097903637495393348889663339661483043100007191501530541662947744549714874617110376144285918974288611757314380480056014998309008173274772488868341468448436368329492377883971530513732333767788646879765348697938006144764973222250652276645389074553700587576285910024585773773514256363376302053138385324336476690382987432309565512082263168824515127702945177138281898273540074365320665496282729973868269138891029252147142285773773871991371325281004278425417719547339941835173353273064623566191553571823453762645957513427531428356416120719819446576717722885899297945888844034132992939207402954973503460154371977678307596931927029955644356334013649104986592875938638504897492412405442543949373478874164071252621894270250502793629386696197132914878763214409108910872247941939877942772912116589913062043029172959035969486963510056452600973501689946305786181160058527458542715686231848633156891256877572636741610604850576614041290968981743107739794142921890127563504256298672554812283095350951757769460878782957945987875209105012675746094753764439084143850044949903307272058421983820478710004074878219228670456523542250813283770640314017402465877823944393837469206376335622022473061492390014274367847758506878794998811535730378852458932130502687377216181650637633255811087501011166569813095184516225803464956520962651857826318305795912375488258873490955119762285399049029949370641257726044897066369176180382501310168814094376221231706593663454682449646099365048167885077405789898899640600149641019164339984782251584803337294933140629435701447563218978945737593475120217250537081312334038661744980193862237089474529290512826170453420695433577183044810299911554323227474926298074675398381698991296321797495210210069892675868260726944286402624392733065733573513707711108928500225513779035056363496273995231057763875723741954149737709035740260199888026220914334719656398181410660727471857262507441400410461265908954678908208410412323490171628875675428952375463249104574840899973783220541260769424579866625744681651457617913143143622892142079505275532083486061090185278663489025186537037137952271445156551880874390889739739275400806833050836381198932757976437874434026982702307945551645440899535182524055964941083099876468862094479461423541780642271475461121982362479582265820765264190179651415020025994407096414892023881814688135400631063989599015199717042787245372630665152865286333006777197400204755604070336878590906258127000045321053261644026509544574947497091953942032941176173604663043514227534713532644263907275021571405732919642545137003108461395333484131007761191530634674897462392391339444244462756127254615586220780402716459536368239556290743191764862302746855558552215058319923708861119614559631041857460732460570090170305406333443901619583754292892427599263171938887630044025437395414419879052071296846719316306580492401217613832993179753748468469609010780016675550833321006539752124603401495933478922218412265828891040687694258041092982892057630759856980022175139875328903497859904349670547122431992699438553441262515135506683413204621266059739931296640593915795576063454773405772781987974846091794604649459326060764076018051711305860083248945206214516692983875446756143501154888762894598117862008786373733485920799544430554824524019922809245904545778896003111901928333740912174205990326932039205942377298155964526523863751745025983968452748392784740135357151347906240728165221996487158541318712573722436536514360557502997791338297266362974834909434192775594136630669173016619254584513870926776782825972699279252405489222322597332333876786743481145320895648925233331004131834690226201258973206269741570107859780919888408734668699165198339367396918045721718015814681529211227929088176037588629712957054630002894855235610084990852803803875947990883236530539495861791879687799706014978565595375991797461824747327810173541761166725099466886677095608929783098161743347149843655624468989612080257803836508209288510868822725541383422042212444612175911443979168160645626926119922020158285896167930280113016021095164570549253636144838096718676966386840940932440207476532940794802824459647102912736348773074659118635445914608054954760352020736057839136313097192728203004867547370645086481385007211246080105280480745544636183792787706337531628690558713994109917999985699514360335327445772891087307453549749231886400776231221455083700758695398283506263627606593918997410786932107759136313427834395081046095260964713463585285198851428525050816829244269826545896912649386940516321700717427749563091168576061586655700851411868345332969827080733319513921329790882661535014821630196360244608016425891466603132160713879022546344464409556023821128479865140336991648437461536772899735421827132878377893471448598948155787710815388501628428260175801970230816894843090292118179001813369017847750878923782959277119176467867296581458637700692857419612277604174885765959442613683928995592497461248522523863615149408013859918101703263979800662048698233216545289221618040703938296184884521809044930105233852866667242238574845921148941656949676953533138146109350395787228384136666402646644506523823399649265034004485672136035144623350914392414958632217984981499396785140088936312490807304377302854815412573885294594944804300894075403481858004023368678389242147002713820945840940802559271384020411423959028132270128981540615003572723507605838105988468158385259569396911165358808548946628388818991845330760398763598140452075967727664338896388863426377447629005931043299053109629459992714357862045013627680412486027007423809341598994193916503818313600380797984578125032426103330058716666017911344491535377695471285883758982722338699609745938406656648657661977418399181015501294398559015532094314732691392479071444303630637847942843386504378101949688665989438935569977124578062022954186958097222824525719403104670074079406870110323710847731862924514357752009376075675890929106851827334198497172141531260019444850037014543739159692372179526867444919638051388740781494705447701028867340646613251914905340792360202974592336503950052709818141696525680019499329248962547335995030471827829711775550349612238235985745925353134281842528056628562674686792322650106255577826684473093394986091542724825014381680816308036344419747464666138252961410178347064128892057821600544420324317203917358478366344309327786473794463936448746793869881720856477260874525807641223015107650091135224001412273200745009488840983627806816772068664690855098153400035953481609449603161155161492035591503224342318773281267956184097156002269104654170119797614045295847359223964000247606141325745073976940118896576527910722878773692596093546717719776335372558291218999375093575674361472525541696554984408709564318348581603666093923599190572149197918205189565679855989382036212896561677023212459318985325695069168445091002367493495086722206217633503557772751274889461531102837923349799731848381617832562525199848539079309429851485100713348334950681608610591016006867830743486061602073361860530705344899187659142387410117496556443953416528332341704612501974768009371414486074358392835290065940649359570649168795240299555523187991605982471380018742306691740123763198729660417549394551023035361772144321663693811170615519176367102652028143720173329354918518095936240234885253220949834049618787239856619318167055835132639250573113714494844383112144747198232991028104239301572556509569517149559315298595570488488935240441382117241119896480523722839721643756200136875460922414191428741275938436842347424887833596638253462470712097783323162022754293192776010224339249240281567648641166417256755164874701876515403030037765970100265910857227215855285648912902139780243013589086168937976275863427708511293853208824656102364202528613215457905128536579605279401069071969633797281160574689332467501141662366617350688205368042152294413152574880191750352333252149848428397275751738461144505322545002493502861382901110024881808193279711293159976286257304004203497906207221044716280687712201256287869993562214220213815141774133085577956892168351539309736298319776607171222062021492115823363872532036151226791144397401140708490681651122346433701675120990202110362216483173275711395205948727725853275694249868608293385354623080872653010609031242745544198320232735658149119585474849283775523413097470499797268830283499225941154487849272841255785960784161085926773847930485556754220891729705439581442915602008587694348002921092371111375470353239367256090639076868881696249589021794364802893462627963551614043331029338293940893920366980685184984394377432617539604795214805323787881992724709841324547718835528364054472007916758225407298306091589588950237416349737375479661261403327311713418999969716417298274889238005785111051982289187355601445830462516533780325110728622367737566444001021223256995962978446390479769632343781423108379587265489811495608399218219368288465313314601386492197210046014653980253227251543595377133638693967599387523491072873623525086451866595702760333050352824631608475692246998368027885417311530993686844218991420874553393265846019815934828781745363861133314851836928861291489878578205806776535552110456547034832940806589475529170202957825013090917164088885765321473421128204253075326534882705369910694227546228443036988531455712860804547191488030173389363820002695846757454379178723106780415318347750766894912332762553198833234161216112802050750055766254037918191054664370555673337177695321847761459862038997032174114377861283949083529153329796588724428210305448860499993619250469841341543492609954090945398098090123631651455958717982929171023177843342413412438037021946875115423494776537055299479676553852843243247627844387029713837288541511043305025471748862109076052704531609386687564180846759548003355854072697825631156628915078720141300334182835108513843210618979862645716831187679590467178614837781226376864724471565174315734162555732345497605645273666951208469570622997485614160747179743558557338485015592118342093564579950678642759762260586485537031057977503723358725375676886121537928605781216342540392930989358127465545719287165011078199887184220802679001925777349953127548880511312380036501087287198448406258798274347271379697589630142372305423234174109287404206149663135298277585090413212477639870567808900027665585914882804735315693811177729625821022082355669135695021658689019185866828195979917851104150795043500873778253056160936118798280165490474274371120302868999766691224342285887906264329992529400334318006522818240961795835204289358057477434771829290871021867654279897673395719374163426332902242025635072764322398080864420124176741745401803563200996842919149383340840693921772415093894311306315013763425851581565614834600650585399744052867980980607217007348074356414781865369269946191971786932588489064678220590655140500339658009645088051514901952547358143925566092836177991084675328024928626135046932299785045047454899985016896810338834648449388682304392390369615613587492100470611105002963092462714751387045535528086645575972094694033516799362849532237528605917458925775563088704495700724110010179595232620426963192641034847084541528657642183207485173932472760535953166756431882459627424637967396496553635686478859607821861344747507850870225927487170336629949226869409653354433025986499972560227290345126729370944414204953339605219623050458091941518488379717669584533100870211213399314933434360003773919929205565064111202747596637783590195647815246350196604119710100184206938266443920593164595879309674775076442690111581825798789468855779688234176326319744363296996955615235759433968090605379709491588547719073657038110210697955523749702390542922589330761779420328147383809469704556038873692318785082671391429586392390867173235316869429479311760167636414816104619997083773634278655431753525303012879522162673559623462839711333569303555700479192757039644369213308772572351349102958273552142764370470242812500090455613474563008843238872922638105164145167416008977006076300619446164613012407812700360631119769977527819890211105737798107095277564936665156496895778337295003803616438107592631035157124322657640255136499655245920664867272474658841201390543508466207443951415631770845828684674997571946767792125481709255062649801827203166991362279193185789672168768863784050880915772092558132811007873699476115738727450641363241771142717206447004701345597592461806700722446979771548584102054125912368074405162766141988891796198328129378403438988009087847949954030007416604874531777546503943844026488647880504638772524078807394711326680385968533069953492652354095351012169484278924665733739270753779166719366048768190810642301200664550667581049366240485923485556158550778692812965703167394414925302393268314847613325592288835161649812880526383072391954473474757261613399162603475919602570076220641736814848699096566899563262830132456144062363146712495394317691818904194240331710088837610862098992619814564718729443259240401761257237578266233952078916017829065036077120441624892603435703470702406061190574880181715935312662206712231309107611331786860726977491303419867137361995308129097288571782058734964525014107500422000794451347573606239804566413090888246045033710678671633020856538795345931731756525840798558455256383233758692624722344640204779885358524112010295758625305014745569321962708592474571801924568182226621212203872678083054879372435607795073206521388784011043760534888222490837755903707934347685370748211463347742999554956132090608369724426191140328664273623118439765096026537888362196035332374075094732992675875191996677168485548207703073926310604228148221342940200847562778193895118998236435830020654777435802106477943652112806824777289884580035283189042982915789228993531168401036487311350846988666221999422030807598425872011193984241573356364553406516233318746853334369620747003108196594185361193751981609715677287543209304869166479667628583062826461511267961511809014696503885807588007528415993696876529119600313596536401176345892922750208537348392875646630990172685761087464897795757783150964270093720005563039833031732036411129017864009821854800732964513719940156471958736110792869595085907208735354807330113905147866550454522969514760727536041282910943077368082319094455558934626353058337253518318536191758473639046043084667419665202867895601517774556474771366640131307716776463468705500744355356061980050728217773194167200504356522270025244509148890048559170615650118727823195276171596730089228678815140195081491109777244363553068768085107938170068265588872531271718627787777146103377613202143898858406150918740010633968879785365242419426620214453599949808913129874428099080822320170361321143029355398074530791413726904719912442605720839902039517040592519138255579772886308806454535627820334244871725881783978668794950884971342207853470563636807776651288203133657005735625121427688030083428767111426303255884454077157398180352482296066721149303333661916426048445524563760984671373271454710727248606741431249466242416676453244036647442289858488767186136015256354454129980588946094242932675242522442896834337212166681437021352774695245412687296066796235537814124987517563223197278893795710679619357632677623555113368611882653019051242644133332171846166759601127817426204390548103398593648103394705984303763020701770099699893770134058953140807780315479326901896667560381040549905525960305589646127185858582303155921325908164362091974342916934892543105993427927569934374106401195412020764018670801957219581038190943238891998200026518034152917365613291961432208501167495096837662638283971472353724336404531696397093005008284342745625669133022536697121817897668298280405622783103370869701244005405388933376610159517528075249391204331546297070387160726878139730351670333294019308532606522031383309140837746708463923201236245300474595295084096756589763743536026008433637221157273380228591753997320190922117533689521673558552827438798444051793752884074639415371803986362144645832530097637144140714531315101359234008214627640575576319415652870686609331362005548941078717962922906045516973020450395718880982575960389529310159745571408891159682806712125652320005635513704158934723150655569627812750972529440864297563148779276493290996514904940019928586808119291557980955053053229408502805613634425539554701823989931667010671029888378816438046891859802250582007512797956776983968388840812519038297036498009111775803799403763921948747708414532315667089226593429797705134648809561364963566191283033909288716048056573602494763505685053522748110313319377790005763490766862146128257414378616790058197155632621108133712873997445166827910188104892267874326905032418865763146198531207352349744162979952895130927624381989941487808766263409375493967335024894163068167802612931575295189520852112403851266705088548657734214218763562750968486769180417429477290320270207394014043650068280503250219443729878816233985674964824715222931406424721927077645505671334620387000290177569360188586266225575350777815829649561257450813448710019650828241886059457318197565708922323657090887737335283194643054825226136415892512335666180069258024168783173702728083674028946462775149989350627487320827348679578014359324846643335794124312008751727589358263276265329469035105959676479548146227610019694210742341204277702739893835015192213292761038506906078975095028374363294970975794924670492168882462969755338239888979695802765857263313241048344677566164651176477986345253398256142288185196709725746282074016542982547262193630886763951211704713191803060744459742973722749736095844858790466961687681278450543417241574441949650255982743159635195081769294101314911078591708836016612658644448256001233432244634494760828724170439386226132920470384097234346638436567861694086293820939036558334295306619960864266868185571027042272025965814769684266560289038894225811226896880712542110931300606235265321782145574723792798526097024101560812293331759735382477508834176996225198099864918900332440031488965389109127581099752294205802872503158942209343777457765238474338360011576819609129263674593454110796675662408135009267257827103489884774318539036934754908509211451715200313930487922870517476912863848261664902225931218874147708216147985232557680968592899312988902517628710732092763360965242546861176290138279869080176024813612719478954322398921307606858496415272708398428563942901935303607405255901053617260106458929796018419523675556742646164653629846994444985320505071671450838356491635950141891405883304638133426262877053684513907029189435437871817211427743945774840306670338213691700519739150711441729617116706400663300707795200265800662253197396018745400632284093313601155974974871079880410085029648141278313054308828058049363140147841818516479597136102711733749697256709086869841826841361870727446939139075760574666386412463471531342692714813309515113194145838469712849983655284243934201548477051992699286437727808688019869365947725656702842455699128547475936018138872865129396988482078956446885104509879912036278561148153222928943896457286740852106054342290917200942218906309629341913119606496592302512661447827475410762233836920383125861262499390343678646579435994953234380137577144030400512584504151120332687733319135685804671986325994055492929674561790214594004641947995058697197547977750055045165096767318553288922564817104824915656485662156826056243300630333456565775643015458172922925483382149123398620746625980782945632328999291364774020885479242882539938609142954710125632526530978180410485139549946129420225482579485390456682048600702617328330211692050760583129296604598849805059404814786501908247945999628860289035589750424075431194813770133077514986866998666065019459211825126612295062473384408665969520717257698613234902251260039116995822628072949053752958509782534024992983408541120168800856270100046307045703628038862785009490929635311796220436932630379698687454934878706926002617136256822500498551912063368137421691953015639339368860946058960032141372267192500391363965244010430538922198245487721069819265539923736212016020773407667915006194499092858343962484492727638474064089002877701064837352424236566235288153959441608651692705041321366110204494551790410067121118691142509835747656619904529166508914950103297725123241825982094810367401027763456457301487554450487861971774506962380844418882883388821481849274302476719792571287693699349061609921852242594915085297118127250134235503224280229909741186037704734200555884345875048126797691862161808642377499193597745981612956219376980164692088263996926728216257041361506180817176554507781771706827538705567276193320174504391455313969512274469011016054735915387473246557000044177562196078094384171238612322101080832848999865806321553561392373691075836333645470942471506490347749434875818689646647617836038367877868226254805734506407659888278265381125146940315927509829144365957794132403226783042586427766094471343229309825383511799035585007853411992486508719499374442642301810552145907040788962851313081605514911224573607464197357492811099773874657080516604158010969006985037392171742937154597411730137676047630465471156198990227892300394448392300820918469123940257621236122812881695618645819167717986854060392005715088676913632038628130374433043068511145139101614027341957663375402868690645025673241223134006923188720967635710830770885239918286624446016215615547978562312800572837874059685078646682935875153761328664495211765212281825351753035166956066891222333314504833000254149219232306566183786731578275530996392215315163541914809233893418798064130829556265200393368836824785145185806327744936295328468793697012586030354831674975380636132484664799892662752206618723758780545519992671890998485634394051089093695998679608358010342911297152338435967146044555055996059340683139913864865102142558521423201606760938135118243514101969350390727580321140700215033089394733788052954014304707900623967381120279427888178426461494486146424314688563063414263845927251812183188194861206962813706939510542336211608661581766417878157676447944510670083249848642293965302453800642039368908414333946744559938865332877886590536015393773358795490792441543206051380328645478579160519499314795426647979421748598098342454583866434282604989294932967968797389943042002605559820465157728343172393587580238665484506238757340009977055250954495923852243204775431291573556516631516763198094843176898249688573782287328580316918476833756550659050731200950005504946944704202651688352296433783820757524829875027396308026660120127029448339860502471712782997677433983233176351705563456072246164521105041241612990685858367921918989964745137964917834646320274833135351080028327054425177407428434181059908779532693346392234864463444590251797433482677323964198928191630384213119631333592815979281288391641430003783946470421577780254209877684792642811970135422853640798480627445987085089951326181158242814642153507341149946640495959215457646222294779722550580316215727261890792795762650494927097274946898328134031124516718882519892741811607592771075528724659522814748241031188501786568675720849866293239565381966175069623889104841969664070947919536173445215058461281367738838427686248978560364264144999088338803651886260196784214080074350478171498341957980497382236300632159415497231637118504280554488755978421080133368227647582826529189031572428439658305937150309254354288320523263156902661300437602172244379203670491389344341749103088106372838013828055861612260039932657648068078543483225218338233904912523430047623232546155024873757709022121029810829141420652314488963263245585266919450668911036539112907476208417617903105400345815363639246106729184801951558266603381177247152838266619820786695203389334607940109663215133568037484041296396534562229079612769486699143692746435151177844913729046954629546252223398613290976233164831681176268990661491442276181758149742428218797603077571911308823711117627894554821349579130539875574959817076249182906961649763337765352182581168986332426494929988729281354811926206807690709544173291352826405880217719715778711547242321598629776426814432890643549218627451704875348533459729948453132393922205969231076852670624661711224146841430904899331989460042944765035684936932400432406326066083953235149044283278207312602997177625736985296011604851781850066900469023784872915598465237292681888636660753684786667125655294237505188192357388716865695223238305249368920150844914851546758371592293801260568162091971142171398356700394594193834508194328779114000874231261988900519258432438367063394718601761831142582374568313927877298745576894071705516627224453746406372609687971778511949252001486850177855769313090982770749631788315846048464946687719355954822476520753015485209422268871832047636831329458041991484785957062768811565271658078761010043061036992211187111128544411037100633307081660830929768776605973519734403936534936686081011103065870918412625275952883181087640010697001226128620895630361822242434404067407463910807328869543401653261615554947128056234650585156703696470395592650533177919597024034238560076621854254297906311441659762368521153854858642166497265457824773290121353569102937955164974677589826581704705590457756634399111672248354933684735893874672528023123537228581156883751821459790127537698995527429360310341494223325983027464571795271107912163938171671111992228458290053227941682377946750018275878678012049262765992053260539097365001789580883258001574152995234948289706303748079303569591705814176246310931383466436112961069571405182816313140188171619011262445734958966874662075713109906289677931391991388640210509528074393708349660776833513110833911067843565975110476253743716314191887470375573678782539450515414857310906893575131972137760697215922546280500622605607401341955371973857144075394908136705736844073344040305368504440632009190180493125412034854174077000438712695404959644321319082958442379054688141991697150138465178650944461926717770023442927076630756093043487621384910303840026547164019807248164148184226535051905976787837289607975264594755809569824689362326346976041517335775477543915948286945381706571566577684670551964296491682898145892670757953572670971086061526777239865267124121803290594515859059848896508135024444227546697220970769705910690624512280699296706495869769410873385325232458821489107329614679417459446837368456004250109859125263315746109460333724395753902767037875607620010168868027185562070149029518379704036691066154832310016289435787551996968736435670263241904003226828299374459604638240946076512537013917232770832997180018804096135034732599470325419999435849027970494974870240183350361644159243921829495873590061717433247045186494936666976418973511599755767945856427496185190186834530458185494146879973093210438092929529480861035189111640320452082796099003366471025047760560120784724104014774141952660530249621067456561574459283727269454849746969865474193732076014036413229322177771775750968617140311959011162315742106025962892685595065820196896829831300636251766410187657927338540302369426716226485129471894824087008678070206996323959592067743201393939666812712242494168846558797533834523213311547851153975976760117244015730532571938871487851464571631752845066065465969312765714070496576398207810004510015247075492777587875822005472614358936535383490637507622498521209437662981636979762552261077672149392102181212548050958454302571147274416124564261825806090608983796929490331785923282836314428700843598911695066192659318242338556061105798944279140616657928506820965535115117511213846291977040569568172355666206809499007290923112694666248495107637916020386972480085066516596405314562979040926206724096440547645045250459370694176415986199152376255102810064357392170723237364690462199976352362079807397697895227506487648299701475403949070996062483164128950238469148004784976758800402354444226658690391671995167028800747360831543422868742221082520197263496916287168760224161288144836224021354045581697151429822820296088812612919518945753254275805520292609019034429197430321948635106923557986811049208002330061736839009462784051109226497745040690027755909578768821704315863944752821381756176278293413542139528232749725728886869131110171601546517048609447411825782479370034544443097340708638524843117293472725984180278944491600137693138472428936662813371219219950368989957366999627854689640777414186581360275939784049101792098442175383724708894480835574564470642987414587120380280942386593130234062135136100426048601070500463517962352642279821742043604353128169506154548587140705273541187454689799236617225341681638481759867275343180976764691769266095315925738707846841588794465907762288492043027720941794893907132806652127912105072987121946051777546470609509736055923300696829972855366788521900748939968241374967945907390177968947611707179099766950286030594761415100950937712042281618431418990074498772569866614369434040716952112317886241050537386221592148366584491534020945979777001776449755911145242762419247041409381712223643918053783331181941206348775689626878581681885834078988744635740867188216345044400988012729401101488615807982041806339616588571527137625548399768751238885712833501489515016031889147699913793319670792573484123161494403720529691090172350427345002258361500681931324987003140817236101358059911299015689060967752808853676999711297183185965954741969579204969380515807252579001562394557272003456053810176884618266817999266036288547755393236033114771174755732772524214249876697433456987181518631220262768727880468115873378828025460086567534896744398938778473798363341616678868409855622015919817812416895245851810190463611761130892751019080222466477239178048689030286059535080935325426423215564295282671494382184611216300757441673359737394071711906834745282031917440615456749330856798724138912346227771851641767370909158273357328352930462037569621078728814944883494142814603581057865620101619132232043958302079348305404476637310711645713921866151992516425844738261766334935569986445092459811833394986070529061268887663823725796472843706467289287167462420382374296633335500067188527137892734747388901337660530525711619576705416481667545028748754612601928841640647046163664658213688919036290872998779564826557026682051221896355204063515891604427490713482899691320927691521818529448453015545683408778914959438837792569589703008299098833152490933345585826430359394774505822870787768020615460737253091110863794767125878662772627414934910340858791234652677691432393997948714604216549307394206551742010721424832190428743978490167462640199910462226392153810570406821672976189517109950169882972524073463369207797044418663700224948866132461261901846471944058854532218547444284387992752535627710400857652992571100752936211307763251182498779061870571231330624530316598391137385995518812341478335293004621956755466186776510306062065263957127481134255793260091028701910216530539987947346455825287660759258422856804273849813774379442501799599554099512276318264537588759357493820678221239092309175833194505823563844031548204199060936171444910536448202102751021140271549757826274878453217634541696959860695034983441727976819880361805733356007701139151795111350476816116965354005730876205563518561719963380934234476671181657565116910741306698054013622893096816383011029805088907765438553608214730825804160995201931367040553959912759908443263941042842234336763541083956875329530308716116150998579579408667166619766982068036278422738746542181340376913622126045970863262040695272057952115147200406400636933113996509681757214550051679257849556584323215349394991177937952846873850893374542991983701998924073177049103005016927326712919318392949681448357637302613963311866174760225787005988705584650001790058098995501246433439015249389261571178143142739651755275615517194360813641084376841007274642907067515559461572143781577302382609945615698053053008307358986932818533533633944785796765696295266764274323908203386870362201422244124741235047662851941547225045974139851262520101837895896175428015832231189689636550604531874555859374623386336267162390561668240459762902427367260862505221570753505776317780419277796354530151097414604082577466468569854163761934470204419808023790645484350024489905530698392841718833463935634967482433428118214182436201495557566820869612984137107223076324309761943134677761579679224718642850544366755226028995103313969376301119638897421065926498485763765554314718694155799204590241110689695356680146280653632108978492116438567309285941307838328031114326725066762979005349472495253599216018493627652351500625548509066127788235961479409772790252043983688736524431453616330544637692486412104268460696603813178352060338624875959449631336211081186975174457001422357262011816925148832219244551343433877623754982789412133951226367124652858012353923232677493343366799796559665293011716771031376690247304220202363011648692686414913405260952193534137358567453785287480446902798095237485665781577077782862243445295999485658874311779853914257672862093428844279138362747682496079505158012842580247406948486037457708110858404357559560040861414411347246453698948356344613908706651852380267756369175252783700621152986042016926033211312054950289782298686266152427062745879297548178728833274951533197405235893918827811559645527144012619465420174261286675877290964314661286350560822078160170277517336375175654043754991537386370402126402151216539679260791419406296593759238179450750735470731466973145494552271200370827263913583830198127958905570474127721503320030851278780272257598455045309028061751665070331222044864081045602608588999614704469617479972496434349990476857206811872282841603556060875590874332773775148145873483198043322878856307236927776076991833373673463637771395923084156146634335935366627053654995932569163020515630992276265944075247461577444914971680365585391718324580172971137410495285480714077384759409835930762324562227718899151899516052077675091111793678646446026836999864944014464999354298126628809293020081807376452407377382214398522509351273544240167581512791523526584793930326876355175482228159292597605811467407460144588321691254643155065671138443180278622412104962335636405290050750122878029571672242457992679865311056024856380791776964148757020974393542773799111532694459749515680101897040089920754869280700696329449531177652886009122501901033267577862095483221511373083796260062247129300093321453442322618184371460785678965357733588254674973276235082422248164956486485120455395552512727787083654603233095141582520819491014516452945341978009412527490632693094386583499073352310550793326827674954084191267138757395199836625285218263594094259991613165917315600720786201851263380241162763752370904178358638524798361366127397250239867096665324981154270219588146203241372582338284603837527189450631107905024717116417858042489211529443287620125661935451091543949227070944946442456297729452644108910503680962486159455960315587640621960343347477108242827028996642258350555094583982330148854270748676056136265200696127015765920038223147863856086092648548598600203316399804436490954883768495833993887890584106928123272732384219335528391589007992629390215743599475566722252239998214207935661959312145390663264189082109908658671455798709768427687951826409945939887874441702140018029847822632552331393618070004706783747239130698641974150980936787509467499399997888675213013149170914972183211846732300041491423950553040523438888731564574824913558026168581184655826729376743873666112123373376879836068390705448930622575230388548868810805323771802444532982049322277813510635177351623869093048995139776526532549245709425491867255580353044063648121278475670912980687728256651085420428448742495396086381027448354326363711478763861554167480680849550696035949084470458077167443927451181934644732051863384155563554527008197981495032054975505158551422537639550197206747328157934469602227220009129671442471389357962250066225409467928268126439295029756489050559500763703023874209052399898022573151541721558237253500467704728475753209639023889712333250977606236314040422510271709871290674632368131786737445225969071596438575734231984102418811760916387674713001828361025864870248008147578453889392142209342665415384100586460989381061406434036464815825100046950666762287810188773347803340770327296937782316121370947830855973047233830026185755879953451455049554220629663314824049911159069224796386633935259760860402219751672389383475669731830767913976268259478076345607959878309048451799001985320191175806701260494914768181267108446421568487581970826072289879980437581716509884211625809155581197403707111152401912091304690155694411627102995445022907570700458578611831840578911072570121429188756092477910426611888430712558178533721615623761386183224408760746574547372340560369688378125708328270271968525177080297602112366291641086711437779834592155939532885709477803575262037187121539272096298080192612199921476136573865233605761525135814420476537681120405835583968934065386336897192254590503122217827119055051492824595478267126732849707097713625859585521017346896507945827271910689539148540896815978559217448079033419623125607178395381129409572942452889772056492369340014771176827293553895392378187355701015195938643666340788766599015542341916018064832722386078270009099769347779286565036041373082294872063355190585455166185822351476966913814639297504968461114136585602161326352806861025582791641675036085814836171287829877746158376160448974034145586892595250559160973226549919948414514675271750081109678675901395489338080052680151698381560049059252759309457000598024377759566060176764482725402374786478825014543662494662978948042684562388711802690872216934920980346586038836944403063278800730359771666681270889930820313338425965617989924059605615099776267935004592951622184475575635602887280689504808838937959870501129662979146379286757392394857527854331622855444311696358718048594217874028136218153892305344172590752793922269248145616484060909538698746541381381948781331189248264164005072173609881129098886734890685170088464822871505982103684207575021161782145448464130338208964298908687301569426069583303678777240501933723409117197338128239802602758616372788618343490426461837470058920050264005906608371611682989934956137350978005498569736126265277682229423842157826433205305819163943358049303979424308147888115110114976201815911800958764059956976645696997810666785189923022398230856835420848720070058044346041760514245987436253722330363519225716033479229630755887643850233676621726980352662137214427793112811600590485236693361264012448098052384168750410111994448523116691777921371324611787929835699032695527853287435861088485358233003173330964111426973822881090301321436769611196623288177764258189383806071733274569209647000981543809128555480494901325922705200245150336459480874848491687393957718059829272004403645864742063889554716582392719921932569552178952082395354716090765225169353199937761005865329843413680751483810339850799248925149597365196667444315608439773428037443968461612063892966084712080703926922591111563120891309261127173754161707257954211135848760407798773757974084226352517247750502145950628870151805252211272537739815558426058576770035903358085738198499251126390712863148532169238233558227647411933613091121844798056625689449401821102080278864636923397819081469776999490332997829739031461013500695414891791342797489610568568473211867132336644911998934748443084144321416522127699833005787500221507903009412449152503021423706644096493157560172491522846043977020073028854612356301021183568022023546386980110727279919399664418191149544657243226895403809834501803913143880681228872957235767777894860497498008757635572678326588203444776994243615997130886300618415001255694144195660909297047962746244707068458906644146604059243203380685065674688754029191108739394384872447254657145375588579213743637708832530830065085350802672383712485315866635149981944971408506179016619797340231547294536178521020643729830541179021683733578255421466771188382354058729043478410275384543804067744963968650658904299014075983103751724402854498620421856329811305522852182480039983612296704056203834495529925829727903323407395923253263509792729809229767181882010669232217034139331864727059602070208146300024132081298771178934082608281165503304012505247472911130766046457568819984734271900337201383660138922214861252877428605762520366631053518608860859788490367873081415615588629377739689072963985160914059114958793322542682856432823306626690841873574073061753394738166163669187296694144745777131534874683334597658078773602666811171581712992883100747212515020158570672638420681044640826897143388016827282374924474833719675136566277598431414210483243971382942603255017158216773905615298563634722771822956670143236053811139572928334025677201862369627766444831693529863130510772587533053080236185917354459822316335671759727588043882554750938668118975267614597194448399130795183894118823131273074955473158410344794371938238996818613605969553284860672233995979748086838847878394530783947729178938620338961055474483811846857944993641666207002345564966409239615414238376969863633486587018505481929170675770952107991695374101825322173010457504231621556734933541549484110963739407772281305452040696954403445744601992084473036983546059045034663253447575449584137966197688125167851001362228307204539441289663222105732770658821419334201575900900216748332318764490725036610960054629508429616041699716303313529507697579637200388061557205595203302445697710972892641321177417427522334226200535674329864941693998470295348378410186983792932546324816818916614801397256642292714175067679496482467047211476780613325187768674289595252740129406569177638076243210513641235113359140943675765204333214831601867243854268467488894137212287736765367460189589151439229055255968308983172284103417108362347642862005792009610224520311949846670463846261345084134164213894439778996089227295202367605129913490151344775791892590666496572622351786777151293482109629333202684869887872875650736896964762522630573371572665133470537155641724853473515628206845884240003982213038938955469791598620207111406327476344041875312187285469232431746192493272406368458028547604246959814892803930112855566788897284769880058740017232596747364604816402267818000390549163892030503454887210307842461916575026203910885863308526647180143901926266777862663995469148285686789192141647916810878825811475697714882639886804414173958800882528586437905414518593928059302227602362088289486332386640598649281411533622987832321240531303659352123040559356825665133112854499556178558400154519792036363992809730350761358585874000107050157499806312929842970601632138785019445424594103651317458024456262732139180596324570084719354579034706465927861008185335513926456879668132805605291706399015511933903933682653956912124067186841459458724517780604575279643152643467694185093084174222161001082760599382571832315800436014068653293005854394322608961228105393562134484830136108297680563132546119390165867187963791461178280514808306324384023748834358550497924720488586245926734714667981645337410195747267919426392340964519538441317201270245865034328979305511049587775744879791694438776057167843735927678112401423012763937833372870966620707246237169955616213168688863959784109493732079203924732404875856733025869226572885257486177569544619298204939141949332110448807973100299400254170615244652661579179170843478185589632626839015882020518523511239627143160133125273100749679735609443337394432693375224927515987167694332403378951391385417282278243428388922117943792238149785255637918847326002814663249178798343078230041316822398582832608706693409463653330400175520853729824941357374863512513235369555900002098102554309098032321149883401238430735609682263712653769928623740791930545433958339681631359381708214966188973214451389509777557386148602836272288999357081285488709103990373655853301135384466551277342148365135050103038698128649775758513628789729572467416040044686990791381777780949069005718621266859326534980987076312497159677593349523200024010951122034580444089824980801057734517505368933417045225365213174041935213871801483890347465745227335316960293635833549736764554785453661825586271667476505655836509333425077167255252615485825152356875188864521205296060067178575266913839305197508326224637723958549479043852645496803654630694690726796415833757107514467403547726860932705783200069956928512712503991060408240835040574766431779272224805753940339424354768200968617880672118956429224398534576397643921757333483382064862819731117890329979506593411828294427201137097302798363731724963957032603620487549919338955919942218521562714388335535072464909088334349795434955313739070155055297959941852295413522804815600094729275026538450246071383141430137857562709611894975357844201938550446031887168308457034815431624284897959880494456854288077619751710758689803433099911554397779995306386491686508152214492973332434809350909851831206241922547766329478186867568073843786336108455360738331283030280928153160570235282126927808848015467272899581923917034634380623928687826723439815682119642420929697041867412978424547171754800353534329557053217314408862804169256858713853143693496836570760967621992239626898978302115800094966910293395474841284892158733678342829306673363178008373620673905867331952494300886046428234742053359081132359840765317563791691186873498836929277817692590043567344029400957793555140323053478879600420214020222115691706420319621127191798595644085314323204269953664228355230192978014370527062047474732917393415445984508690613192149500932999650364611227834651754566378124341897647107832823022292197715868099284522264406721400237516283835513421660965210089128729797092718577832859237274421055138978728617999606389172559688954846229899853977058115957516798589036147550342193993907873980070493204725639147705947956780953152916031132593636298810927833717482165785589602589295682050772365594557927808055136693495253847924131301587019016936354556265792685269423061302802310928437234861046000106741608181201470614110501649622295346724862258021170241744725815006728091628163164683508097992943103141915173305847869221340122526161150242110844427018564796396145772029661819518996641251090274327298339657794951448631908861254835177264940756108790819258338990173278633270643539903035603469186112025520370213445868369741511507033784273757048842651724815822162356216964427701110739932180059800001946665579929516908313728293066626376918719683105956963752908517926624176994661239735596330114834588619973611695341848820561150898056383051910021996958305812301389373232440242241174767525169205218363415600502388173023627580564637457120861731915674331775808404762887450766095562881043568271835462727929208493034941040336446652155434309541722491219860936425413457698053401830982273175943275661721267447772792627782358477476456201400554928266497241515804589344025863509056676501286760228840958359353862218609930057390934794010103214543140049376974897831218176501280545039145360837348857194598444574807688181409078056821250960756147834552909697714431277416021485927701534177946789793330971987824046598668021774499649432359874169225260242750069335260168389900653788486571267328094593542557604137604570709666787010960620034462058879469960560260475006829550080892598491000167161154268560284286654007004708940971073926790665864233024258621640560911242364368017805807052396035098107650331635041031108719652325332975124711394673817255086364817275240644533024868733157110609771893896778081847240978933178840738986548313080369211562090271786823550594030150355000995589742798918266373161851205530155163549369842247402880331045391775443165298979945638612428551870766175107907225961283155415949595422798782909479249793443434856537831067232494846135688063346653024390465335337978638483510769013322056543602566816656105715688562753166350895034215221841256470852940988644548991811348380628248677727542601925564630329784034583802248372390049034143855508296642725976062974932115594314011453725942659258577493427974060966650210150729673259698564756084743066467205972661374525054237473118397234255862176031849168305364057231594282543132860884746751352553854679132038759549027964353596042617135564917251124097104906634634084908982174558566796013987667252688472568427946893119401555140326733703772981661359381753872734251765832962628570121185938381715997838862382529053584337244896402192861417162421930933612722156499464380856477420201660878836386148362413746821582964361596443331174314258781137193789248243087488104532056697139894054210047880436637686245847046724907942462576952718012127064272118972881561396599671939832780511521914788486833931051823860409740228835071092981428409634462625348324970208624491546631729894843452410636913782285656844468165936279959335444316867538187001481373978826442673613235538611112104181092525956892377798392867450228398096104407081015745001925971404978139502743686464714042745303372756549211052663606935155437993273299789359731416422677731281450769081834886647006651906954878219919344744667480087796228877344793602186428946481658502918108562239264714020709895325134592683716316511815097774909950902635745812921664356648281561010188762327191279613447122506876587681315236483306256505362752400817979841439879046596099915239382209471939445437955964426868372825841091392309700508194293470166840354410025408460990769101649983429035610744018238123759533620967512596770742293567950993114700076557138756578672942432981766195081037347392480616338776651596977094305145976736736097372871992631354522684211875731392896231487610128994517189049393515116915500421675650384930405815228188591347729656069762962816222418531858288278010052030995249915563526171533821697036446087724690800665444874872460213921626179989398340838356289101575919066336074631890351906642463269329608809014251270860438909968702779875144172103518406151529295192767296563321888566099700791964185528223108345985098612915807107520802590544823702125968192213182895492977755979769219085189185122093381894704328923384448232377350062874960443990727706846214994134904772545953146895498658973490080960153943310595269148552626392453531212830212301526044021428966070738763088664163013908134443941272836950071061690888344168011934764198755051554015081978067877739488720786479526471224516729266938589971052493183947880308448836418069381634699045916383909024683875076397928708499430202284104436950869663618302814096449390576219480483987865463184846020442234537652354937198992772355512725589617604058397222433595968354927133070961281863747812708456160834184326651892718673141602778360209191775829619054596635073293443617909156387751952552284718519728198727874953145157694898951179144591159049196952722409882191674487695933084733570608560462589496600752408570048742134794146899187879104378363746938063631777511797044072069458149145108483333809372445108772870652902446778187819390270727584241688027435559464137924608923818524751506972779546161379551841475099853202762801936075755401710025202459476301479079304525451402504098803489005058846900175382478000548623299682345669363530355027470172512314930036317615191150973064178021392830184351165274976600075083563626299938348264660398309354345571572909265239722508303331563824673751210248698889602696284719858408640057411347034711870546401177258131430547951242436308557819620960410392444350378823350229713952379088794267358695945779542712155129942958466653434558717007778615445880549432403873577868449880568221933677130214022005604277396231399952472380767198110404039396603997046479261492920270139454634612292540716249574270287581548888614455056099023283878734131687900185672521963568405275631694798411418003209548332424745778084783537661069327181560246415944697538282709934122651422514189094788545673994740392778600384909243487133511055217787074527923917210912058914742796336236627858291362077119889398787968808755978070422428581541351839650731753060003332165020301472083769975110298170442386153555137866798511569972180117401696194268844906996354755981628958978492283072265663840819606430832711675409865979247659822009599762006433813990342133089645541908021291019270448834144045792951995512937736761914646585589727565718515284032212976939289030332087104918568151929770719491412438736329335547075075498438345421449822264301331401557231353437309456359209674965027789278401236994735400379508149500578757249024510081377953628830085386473832309557635747611494165244153252019295253024481931826521660403021992485228015261184775031987950017079484398821453121859540757004012456308783278526740220767577932010009351706204438103631435145079657866312120777757423046536771164524101590929801128058633915574815224384952744250924564781766376152216846949296682840838422540198177445068848090178201266383253284789726397572882749791462390036771856211674823228571931764442751105718809733873131156610091428575183127680237758317918095787858199965674088079537524177020674287442571290785763947703357785768040010646223570368597603071953540159736914850961186813383844538576538839253123116611548234435397940252558876804492590482669311874528161472783623969966523386005585817669823435231306520804506859967162533605531361627836509015681090982027292780565494822667372471085020350671454934545202167053275250134781249535844211671364087581571092885940665709943881125106239839077541255664468199617560066194093220870064152828184037426097408666570671801488632972580656767621135661347492176439140883526046985190264887011224513736620480096516618572893949374419845226006018824298931473894585373429881784160437554882267250889358909833715652477343964777192633846218792577523332880611393042021899951023506400397829908907285169396326478356917693839750491792116709111758861707188535195698532314382833302220898073061829280008351267615865715563127978357265150576231727080411839350398200438188583315247759875925622385698716398408452949866662966686247575166296098929964621818539570062170520305383660231874414508403671919759529410305857575276846976339531209950712524806359321125171204753077003160380710654134930994455685189996883270242245423958909793227169424275047925289164350357482707875829082822230540930174472465339243276305505721623061498598948307204885465855610775604123658029615381314042376789281152576496248631573514090827719401004934691974451469019043527824683778923478138205271792698607088468110104015789136098694272908036849431749479521218736780209109166614109747012770086071474934049676522096911931031798573461913795541286949654355119312380284968658879783375507295570423690091141567402909689934711318429737831331241882717131089567623737315132529646750253953138144406655434306016845712955441782560478834616406588575834513119933823161693881480757186992902791912176086915690926711884137288661072447558296480723094842739450075859771750221494967440370124582818838823537688153860961928425638877758197730498534442714180757636293103732724182684288041739714000897363934221766946840641517061849903617156621156882113445840998694445734112171756938118830006279940901509804842648203848421812265282974229588979785590792578743344710602396291713184889070831146985209005103565589083801600446045079391621012383037161241716948369001203549464742735584555350205787270254382543058007126878324332153375640506843195314940341817768824874397435978482961360148322613172654308414979211230226029992306036327047539261523584940980334241223785356869169798784364921255960343767804460306502142199709477853756064120926316591596732958941221147499800997311718803650894063354256577527218093767541512531830175337841944052490115754595895011786494574178604129890620435384741740525523753538254935132692834632746326052567442093269575189992485437256523949998779287571238608617825487758806123079928355688800685310695382191036210643442273902596917464995945783681521724219619550749753008433885714370868285441110172404369543689647548996844051941801011134935978222301077995668565407397872259504931777217791195969353719196820881435515870930616077539447686047512223659873845856169166253476860841110348886174366452551101774494593552560717302587096899232225989406048940516270695362632056856041708592568655253524730040699159761709437194497266515819200634116611944922019435209689548240919602885982946089694897742052265359745925863219803126458421962598596517730794084535831507105799612606990306738683058637007368563001726535611828901071929716607181524307252909336035840030519641785074417900686347584957509926165085021311845484254475443862599279274487873854021713218124339736947090428349468590461899146928863784983363017625359741450534938180075669750233036359504701115769653172921894809689319809373909966851985420778042747183778140030134403849763542046808917000390236569115121786797876198266571740369685213038665501609042645122375650145257275589456595294565072081720755945948838630387207932097980648425023188873522288266905577590765935308454943058020398092754618016155578220932148624862205238989714203247771404323295039224248561854717618804332096621159487116882729994567225937999014992159753691017357252027164379122025055358526220494454861144015542445567501686061718005995007982633014309057228236739163033587244329574149435232937675216720005058128519263020838664751592469107945936677132073973539522630155450007626666449186423321806619729852522803018614367504208230688272520780133126160781599862004130788209952330495629552811262190565668970791294625775532199079400918916820797110100498592029297176302561594244040520836906903142615710732167378527922711028633600879262826381689725025700003348814991344995921268489692230076654572107991319130607832743640429311460296425829887318882668214406296681506297555475420370575971776244247121678785265478444684717425109192365308884126659020667394087225383505045655249455958130023624025598496352228788415694771238826684448111861308457667657613101069607571402897349858808411409726395836562393652159387591051624722525331978814308071166507116819990105775298222165829494108669162432952085804043357564860648742507838407878919698920587746823905511840543271617764278746744226707625791716795034239834015217264865942904323600050049282870995108082786367852427483927607703963172033605773455057040745486872639765287673635654607118103717170924877699556985137099035364594572396299149994087210040658592089918096142764850720819855520925138478867467706358257301328630160718059343550539608909963227918571501177230082025665915054553764832493825586117554614296276860686993215882874461635907114803947248249677363054788061861265864440001551160894079702431428039151118811887784583105128743180246487822883792860796048695741279586013698071068786558995558762231210602118483862871560436887433140079319785620603029225741248735969398967096975202948719833287387355341671690392798105480417823714806875513347373238717059253796625419058822397728334816284205674008164053800188128051659518017361316737570853905015070527946807781846473012361522702449496463459040901498246728047933245812959400043808941347949359787014278641338653989691129856628349879214310085386687745181595072521659188336609093500993622908881578965321062993469082755604683193537636848067738213365953636415082835054449397743819890919775658308292026057525135012346950651063122330691123727582379537860987772812145027632990642653183819266502233857292485862892156307661679245671885197106364483555728246635026590789959871246781819153851822783532644972277112577033432595050927719699387303684318812677473244843443856582935292093870510812951870770152423538279252788660813148059985913004677954860057242000702362229811613516907305786271664807641751634128058082415156856524437029420770715589839427133686053234066439129855318698215626487571051626032180555951386802778976894025633276155033319837067926620351512933728097123545179398428486769450255638446159843157520247042467370276767219781872244259934643062755560187164127547760681864100627968682978158401410652244789269397767673241328078261410621864142277220505081028811863623473870507015030361893575017061182970805730357358221499994725384301731574095461951228276043270759959791154881115854802447848853023552279259755942944708280442615740597413863654398699699899352991765517025991301846025488623807827526992803801980528721858424549287389376342441038555468592271719206955854049030836795469538388561027368613599758337954043511591258031417095022144332885517833138692253210992346954351981222130280175660541368687826322913415020950681283193010322748179792654555143439958516118486769652808164729978399476894220425017231531911715809278307090915929725702283776654924462301553675466970454991743083191332658628400607238501432908712079787530563213672422698231800705153196603175951283285808957943436133845067463060175936658262566038277482812944828881106566178241389002280054506265130325027233478095126347623903442364141039706650273791639653266794992630054964046646676489388473619388164565889257758957625645335515962762054857234801030898808357987767858753476808185566362130697396836970358756875570551458881413573264287654550614943974689734832424980987690827182722688414850619548357824415156357391096997960611382619835570142721357006516155548877548869288485648595963932689788603935960405230424088859675960197852158548876971621126986606216117613231571830400493366560535528014960382110580213872409088785688853072342819379819786402475768193925329478579406599647123290324375655042116072596942213135642865925529253322704932026808627836905085173912352551857326211887028227985706515625543797553111524528814987161695785462164744097527165272455668321314278685095157874400343868867061459973035690394159017929591810301417133665789482806427935085454713947022659856199866512840085415028090952015585332117373708341982792959525352885412867111930256619999610843970758342797391224575178083104626253171007274655652106827058412673303128737978736492352052380087346725854729557314168020604016925607612991139727441474107892862115608047349933872425380564342044256769693700997003554331253601354607446515789561907741779836265303533833926053675891685660257365420685973069407129432191562571632115432202231616169635667906678959658507258603485731183500500542417448759710403452654968485190616332301804150176358399827278314820152867487987998149588197192708139234885823996244434647216920748142447350593803176539227606845728158306464624902689365773233992395222426870033684752142209732589698257550966146564017033857789491431147808420911893471130095282339527335426776977375019778384919501002830672899126118553453064697055293519379104487019606931214263286319489169555513512132703954036158905987976730186850759104603427971248219169264803237037689979529573532207299690412506714010201083069661029743023496098823731329138921789680762501633310753415752600428092504720074699893955931282670096769782051337292152721756301704339789522963816919742291257455508059879779077773748512371176686799641051888001765263021980685723799116913155053820325528024137304991573714532376975509544464317459876500185317750093931178990580011422958707077845685339311370171360194547062303948991406977169779468305913696885999775055765876529360914947053514250464293955929010845899153333283420331053456078961921708466337173145709312709638990108794647177690658717099536532329233486975221905541195163736149067122360804535430216642033042449402118232136879335468051307497674033756614470198299573422742732138501341988792152329032189465396739002761234364963871855357838272087409044740962666654171692362287408958721452369180839290856706781566819329519479933513912577730690001188889298955354007727018189562583421802766410052282495537818639106256667367841104802963739206222631263788502872124495250248445342453141315981458280970325257915807309960882056940100424639797432297157177838485202174473020079118367567778386267704112668596173384341188582969009703882479962407815105987508337523962110760709664247118449573316033484001333184983262832529539969136179380436618184562949102336519216543775175551185287311904747859360630172909999877486342346741015546116259627613585328069212277006018828388774510621758369826140241053284795091343904043538544380349512790957795547330667508354982894615748357390644398938451727947875357526282265051754414426558589892350184202146307852070122497511636323301264196659819839065453247106496990958050220412670509263732682226620697452861678407842475339355559646926089029157091613586327819001071396458586710744682255748918666004105297647143476049315916141098264820481560791430400215507157058065043909621378988376913517015727361517153634413029180276908479319385573012528124024852385635681652144150862502822613659399239558884381482808849056759268374468611780104402243927154491260131002018435179205075633837885684027159375278385900839582100261860385847561671375305623237839096592848281551145451420096631059952112866549359984192565472629305749943277540741323624654989087996417504846727379820503805004165558680161293459004933343644762043761848148092021624547881754446719824120752016259929341331258494462518482943137433089599751223832710738944892136632365348403569986767827734785732863260895413973741353621564439512351300863154345977199227363778900401844183042077099713373415626543768350497527583921534266872460095759269564564763717671709889337584277666293391368051540189619247594291737019087318575594987513321629769335212726062948544910744551245508161036540292057187184103973945687253976662369228877437020877586181782538015557823643407318251438475964908130577892986494786449035007953557538661512197937449739229100202541638916751219497409599327741130503017431375685839701796447142127447268347722515821504117269659768286202852998591755114238471585438756265431164951279037573623023820764230829623809974374359614556181252461059613897585250015042033189537498670485460692335385726060985495498071570043513076241021355135823310329549158253551422885487714594096214368499339814593111179523739089843346848334665891134623418100688697735739939096418461473219322594701174695459347703183136395200299677390061467951027933783374767019080958865608513918470150316073372218285507649133091780511506742529949632781489163339518063533265933205335574344485418263041369284868092175783043982201756425177786315844439318368086364885918485995202953648933254684954416746215143367545503847426109293789752030375868784694930449287983294832825708547457663481904078934884205462651659024504498380401540084973694128973820182919728411770660663932778184830149942667462756560138168391249152963585713846727943535893624571961902234355527440787071456393862628864971566725547044545834146354835173677690767029194540106551367981130092129766947528373390588753200236819683052048325336826232357359331064542197869127161097113682621624710850586329511654993285673573813785272226567232300431861797072546271435138132829432023150891610519687883108435990300067243901767394446853971393077604267913196356069384225688115951350810111444189121869714466214451822690806185048367442781212073935361872628609957773644425933716366837615795317077887081994699559902019173092076475841611728640215445056168898848725320726007632698661378868898760153189255362079037828184177787220523950641591201972285358409348598997581917437992783200835425410128666270668083461486450864933227788551214461535916040743159343848883904442169652395138674297653927215110378006522046099027636758657385732504100826544255985061684264111731874678749381081946641559868782181921566053183238863385211028826830675369385182553839624150187925738138492160299904322787486889623689276709589053304622810454571396991796516659919059892098585847172089349593995541453558761556422869067136532555534611445632915889313076155332317031829870699299393639531197443421153864481457565626657707899835941468352120794479709288437927117261672494048482702046943330120067076852161133849707931813072186821453466624206370264884088804864695832876535478240134008152814235280206096404966116888161646836331358274078224941706523945227135905367312685763555960531681483316675096674369433800705059270629847095481733926828482309465905744634909364084264001244706900637523805320136905933091003134514475518162952628092991222191164743276108376930784176494785093231034828241502272936634897967512249596886866130785678427139534119678835305826867832854285431025193654391215156484407756039933797210041309803719744498257067425510812493052758870438007705881144671833642731547116725574443454912733097960528752668719478921044204471069972883130645871681949676814024523275577683802424209669352841654817757023232811477689358107093601297497447005355584987896217761529156211545098942606752350171796343737203514264105661973948942950950727885099085802725926012045256350989320255831357420021482310420446804387067877370071220500513864860276442831561230897243598965594442591196577059483717206415390574544465751298820540244095021272452213015212912955741512106518716004637313115962488746674568264299546025195299009566954648546908349170234238983509572885133599336049016231140905211321279106894456973565861166368545644709773630843712353486397072853554473160284852566899258834373597207468065907559749176673111929062698931969965858102451048336218462316128919682038529120652096353781429626784948717813080815156914004342291366768101611610826089362752095828598335058661751139627609538865555585598863070913190573625052841578086314889611490742043421735995691822561494349832867645432600040429027060206615442205583757009076623333920712636631245570598109242761401502874483501622897885496395708133173316098189301129911170280929863401858275290758639994998892784131693944985348474045245890137260163569241542828253128973614226690046267075399469818846300293017932148289247829925599686842912069421621733735794650923032867856111670297084144931812023229379570932751892345450024847590024264211495863085541915830614822091765417843786849483378489770799538199431048346017059123725802088365536000923906019736197690313907347150248088340864298880430739414340127479047033038533544289897741680402172947486517821313992846303969564328670771976853388376291317808784038717298729808891569982313724833458954611800780798546905289678254283367468803995262689188651127627121919526231724082210935821866799831632042112466325688915750574675464291890349922181187796660465052486130279937647378843773582493068043757858768132432733124639368547901284757452651512264186909422670316637377419922710030763304985142409730993151643497270343088046701571710606398597639043472920575972329367979541760479825308009358423310242668845805386818919711508043610679212286043626600845666109669432979013349110162557924050517253421270041527992889405812790931830449814309871296576606081678781232382812918316192848464145032304519460974178196247307891918773948235332491702831269993899440202931497672425321964345420540228929077702344096893129099350298318886074514362735143829998484095217337887609864594344677753744579489079324639474068182437583135803769235574338027996820865927861396323657898130209856081900972669256356879590650206501541278585264023402683011068545153844944334725603528254713987151669984006925589240976256903697776223699963992660725795803918560630154468409360698417319460941912861648210673456285787414249950172028123059667974127326535306246804729789189980253784232165995676218321617906634360277477087176840573885977605211620476750097291928195406897694845244386659272515810837710744888992073204376961490426811077145933639236484714151820547126833206922690305564723197060716622237637359275560627946497765696204981802536467448748737963736106027672796608938283261142456399322607888664315067510295561917904335852126428922476674051393862960725082843953243389033803041701652093972093868869324545836672231528496313583068998780471508530393848851880528696531241412196580475513244040788837946390524904387978644490283648233341361178128909793763580723278405145187016078346295726819287299649139604940240579781618833925677981515830352418762991558469738256917126580180522016428044027147240776417066806246448888539919961912791529487525869341962302778183476479511287031272795541786500107384446328502770910873719162139661700840614810226666354174243666364074522161680944470764274858616339240503112425839333193196283809773853662519520398294669947470240308445369478334952452070789917015883613902122408098050338950265852390530962430765276144981269526573298188323468185357248666198437196527241833927244164858261889992815000309035976690632446588861467414569200786260869479725627073976732290888981140668885855333951255617167073784106366027782466194348462286798933002372891945001219153015668442148841670214205558758000362427615936919258375880533700345431017005890251351807196863156890109605204037948058497899468978269263175292004119227284061042313576283929498373947795869731916629166528965775725495367140948085934302048196972581945911464841481668574710138867058621180681942303812925039509918364376421533563328908002804662454898649864495823900101540796685006718978737508475270810192081271065713307633087649321096926648513944676266031539717892363844838257297866564161490982992944945256299721948304408519735808300215763275398662651456615873617798899288169572116929697432729696405667054690167761757166816863966839127137533555962988449616576704391236438288812325060509754957784728006132342768522015695102865228114212754886444795344145361757350517650362491119615474111825896129990049732794363445275004884424210653143679452255638089424121752013648300040370334811149552107681426789787874007208301186502973773137777908599941785872109030032818680098476495167266628510602392726433352811140536880913756266439119664690130591753017848688373711947349288407437559880931460139127818661558852566501547377143612290549687517211079006194592487756017409023102960453541370158337526745698560960175721760693356128654261810112512239960564719518387358051619355784534137313156472846472869108463171081975299589311314701570870186507399599878243768959893539873593771320516865069638832207340331142380951508535595529190095726917206023793381093764272455411768283775720454499319176643001132610000371080794686531477813563846113121112079614254228794836310432872396723501330496933024215298813402601778799852327602194875351450594960770013017922577276035328325869768231174447507614548006627704476306679200794026380909489976685328500974472669717208452516063918955026495345570688703466478622485903022241233893123377783594206051297813498484490974773602098655798703033887112140012655862237045224073145298680265008295337505075228580871427999125721858339651403153136635155273410572127488826657055067468465682013674248489085169211103387516421021418235015886431466632447070000742052991633067272193494299777968472060511514971909959890392980339576283621360292211620474131461837850211607093279452868700174827154356806694883991891089593170750867644002891849060362614161004580205765676168125399071865103047492011595201821019877291611806988138585863494199577682946463534225267028437798935827733138395659243083905763061926427779210917581475442497466090250006479220502246290506115924804596978878497891196651335166717570088497001439085647178457920343130968291701852082653457936351888518463797822763107121027970183526035238827326555275720653929454798119837158325880635988575139426273103721191367329049798753344751500805585658593814055693759406397047312321478359981935195173172320914224234629112140072530770585115743595940798881889093449586054784868187878688964140170690687542990556170151966245908744068239223256388464198294056446972430308320984722628763109938929122639249592150969157036223521114544770111892383840347480773743195309700008838674875837847197354452840228938974180944932388431558842181650818773595622282180535671851341388130732098538352508313241131109552287062446690276800527575170126613827486735499321651983945478128207553152331569949236855579725240423367656464040048039518385950874588459283881782390588495124737028141158661719395570182477750911320507280601842887674347271161754254502470467772020008248232809379914083254363544598035949066848747707703343496056489288657392123291462508824354979623047755292705519429519996547224191269669615709358247697550628813898262267224972663965513940638964673352623542300282037293054939811804583554606453191639887920562337320670112288070278157306888150963645424939805807041915184217917285376455885518252095497814920179710292292097605816894534624173888023313776322735799684253845951687830992021510368925037193394261480313768500191914070781380236791720629778565287829322558036710975582781748812691957833108279513025705414200744662620180707714752046254295877457591430880303017652422038182602136491841948332049478748289405143963214935054709640010113634556255449262624601955951433664662429135840215446632190099779290470310033460573574990452824417159084387060156113736656807441228554227278214990667606482911178792407708782177692042467062399891730716377924349522394013544032423483202930437849091168051721679232401820320611960043877459562471459394958672727655886054014035522935846663992360523888521458776943357644906761189955228590054872364561917819102208499467641950834244355177320949180361528062640426724663255973199476181448329738810593654806117104993704624095460917011549905510117972291180588467964471017789867337042169431380642369211984655201206563120744327155682178422372064491890935151385598879491248876718233368142323532938237362348478525788180872937067054318951151599581723646799431089099040899187867438919767184468635266066583292471091158098006711632043035966961225877457805553043288153918007461838726303638475273432889171594472676648917822559713339487242781767836028037651249653403388813835800958015226356003388404959766104136549076099202332765042992474462791292140093378067255807996271940671200557634734644395371214051265727199900595965847748516527352723771271948066333098497392120158429391766859512316687154444482363234204750734505732930719531940039570352960151904182129552855000835391655024844832730125252259056829898521287815045291794130471906664081387697460215826655752478169010809407449882019519837742169183767630639270300593948644547542076973284465173653589583139825587967035563517372221069534116643401201770344151349666534832623999696571108487300227237059580621778996837929843229954963118963922731533828634261171650188025235738903442479565048242563081249926696136227562398673659447806784460044592733778663395783309990110112500373079237987239194507891577555539669791939240796333802678067774080310313905365838541306202461755224055627971994983403459020809297683091531021066871449366606016162088101007615917719110732049371574282265698817792850622976937546877351498273808518496778614827287129654773165425283918951783446331238487990589096423394638719930539562528503988125189845446858900877536540136862184240253230882375102319149508269615370173132692845837134525283435028944450817472690725847494124955965624674420494997825163685925332721396799738494440411902238019650349334690535077031465538647662729827876500734557366585741692561128685187000752962956905048400413391027705790862411769756814615412429100023315610217012526929571817971436337842655284414619773376414066174129680678800819181544778598321269943168908101019482969592643768515894364286160495197196851259535832400782920632213740201771057739311640871108601975378131121966394899589510535261133815681381789521412806122760258146713240014343463108606955529365414405447562410718244345583386427213782381808056508188083265423296112466860871012368096794520327179257848207428210926548683405042515054942527442771023629877562214739632614288968872030909105213535352387134783683023298842821688662738533627097087742249355489672889203529241089016123621286982409735429287184026317948324467858867249043160859875449977553618002555783019499270163946709127666056595130071353821058792074430067649060785043908638253127115776919803104175440014752489580335701588181706490054915208804829908538909554661101515655705476665529741591842450638498353041032593137620974218132797914008849402246310055075971959257897120865831940132401785280243389499171385362232054531155280570270389903824313488570636594298358766563680031417496146291189709720700725355367720939211503014814498865306879819096940908120497749024543068901940866615923093504213249220603125704395041217454034108717725026662681102726117476115867439862438743549737703900093398126497738669093353909741577819485240853905473758325183458128212532999631518564663013153029803276538186136042721716662320148554008757977143523870083951417499741773830348586899704794150046962967633711529596194931512149957590489950127766300230842079871714933815802926243017212674502835407950204395514528586037459026880733282948758541727215647176938230611573249626602512040044936590200597853981217189555634030494647635279570219366901148462098943035713400856419960651935133042475046433275797608492807105092734435471340910161044981215535537462694725487421722168514723364392373141103922638102159585735482007963798875634545060813014005761956423868103876049393618857301258362242636419068298952343907126719293372403347619911877135303098729489748499946521409728866385409423661818263075680311036640133509422891706560106947060715992960237012230245281741676260803330051668272961802277849275293016552068850834992375212497122571671059731620575507209531219677912150054319058800840024955481963505552668911512238878123280837612097454728253485491345422174075808466438421379010055538285608220587831659008508043334234827921960917736122458813727274128496407794770979700911391611679636758413865104682763478598126280811277712154899061648517426667825145709671299139040047723785773058304225242413093565077068418635755598772432749546540249507456656645692681523183511028950549751897237597581487147800680745472097914981596390933497688981583149318463558768540277836506308745571735135457230993441734733336057280835903887646018032565897779093096940359836783054252125545510667586801330659837521584046752383133764718720934704263149611608983938466807023181474537614550844411227921796987412444016674676655911547714236385381705284034506414796605325497359662523257754413822857541576664302502605353703267949229830561541949901992370290168954180026987959676733168617852450829160437607225496030944554672464482514255648845487714665171020823449085004525413233884220186801314692328203418620895056914360718947481538723036414167525741959583089536187823758995726281608665682859642809094551050487886290414750075827175844408351562692669537330218672404179000872577012432952959918959333158454631020349645533124259877163654109687555248201350382874161107803644159180855394871908425403030809779333736557065544071625133395640874570099719179267916986052960451134038868149466407468152076377823271493970090354676724955559946446507003990964019652488866684022693987613703006627378545867439302527895892847220198911842483587814328567131701617542796279967612580978875149692300516835755859201218474947925649313887682444286551006312108097020339778165599027263873366918905023366073079115804412352569031044633377655049862024840227582309745323058477306750172488801337837506058930595910668813458748893200277262300601153501301687165858392137643483189107830793709073052998973403984857972552088110898862688330763057768722371431854866765030330577145535668286269031413812767851979440959991340646822129487735502072004348675561577084475134267749532689786672706289213324433255589838490130746985800106983698798609197612984323094267190147474056040280513438671103790529332973451370005197608542438152781051588287494769441593658601397350698505045174283812935703340751022647367353606634517876723971428325321373079573504058520689148716593680759966141346041664363716086091956059112831916441408324762760632644491122643920070462334096019830866756525902079500663456151479886689079857986446097320246786415373281090268049111454037055296761954812395633724649485591974685115642656402166227369357136489854553155713204084291449870026370055674432600996784147825926582220810974621034587961086717299289069654850653731750537344669866221323409227326224122777403742040850170423810858053156815519131603814354511290011594798619524170765291764155187185455725714584414806909942468166171789639046123333858962868065424802277623438083530697144731639395393021214178368161466985462819427938281091397147985357029204632900198317606966246190612787037947394198104753581852421965457125752914937068279887003908987281817181119094078252291765952202590735619286954281244266866247244728230669271962391685364744633245412755883366789924798871917179718493644626945413515476637998392270837304258360262438482291556025292883070132024214785844494900400626231822424765970944847088654725695658415867800501254275071591675404777002634813714680029866194193873129877712026607480718640370535515940552001028493801446040409630620522653430163967973750843739240476669669310984391146542792607081071196829187876885683729348992333347073265213305775118106312988877840167512129545984268764540245214897798980415505073507949372733804139008507094212622337522936611718707597195776082537633289879825516565459122855096982568893058880713154747903058751271207903181056677336157074555968894395543128701633632160166126037947047559540335427713896545558399127405615369865755200119671314929339689148312492983675512031018697390444834567570663129116684103383964949232295716604673048305409776251876456126030119886721046051848967376217787834800384252133390860943947774524085285087805559706743508559273783986638127078195528464422840928807432621131605640076354058616244057459508215342191883538954285007115554164842662970709673237494547668241867325481138865438079026357681405526204716478216644081282044927792593971270142357523564162877113688176132663536241884069586635408848357354088185728219477650989742385559776670762988627591805512376469785067363625937470913786102764793149722238357686307449377893598710851798864599990294627595556718215168729441413370532537246380155931025215976017067189288533714037545555440614640026274556564204086955832344028595661764511818148009356663732048142079155193607343642205722339730384891608396991846808181171478679269120430577057363194526684638563645077955691722482355134582682474862429683898589492118282635730130635159689945045431540950512790808699236667666152882831369315309253151589243171845843325302005960116721113719837907859744068827478690356554025633378475254462060226901138695417501227375459146470403539428662715115210968243594609422978557791926205362614849420352040100906884503589905315599227539345141379179883119831598257445047157970171658025526198655057455477384518524056758210655817010971393544488725587740769303737019286007497548819448809745938341863538374150955135758096950752429070365723054683470798370183445446374186929993756050311005741899771815839734627756663437988036465842155863494774682632253259794854883194589783661076239189947251181435534556409082181052131948521578277971917503628461867558752814601721352601139809910770814300370882563126359994275143587150550406252868351735535420543446324639058499372027591021573298797971663758108354123659746736852602235530427768403364183574981924169775623246497954413450635370492208256287120316036951782858939695254265074334262675972713297085982665171305016303741121226742077571560629960667283393069403249244576297676621594023797353885191185616779357882596611807271753461999227965919028817309170517943422243697351423031622585071381043844037691770749920859247254295841537547815933764225466589289475140800355882985415391935705632638049194423404296554912829692067773631409989656363836899849676387944336691956170514656508692275840675556374411300856388095368632272407610256557744603704743531002232668725815823277734209231892835808487733806346229849461372534337849880271179112367923032618483374932582480508383261743262980390748706617902467473517293372934066597688193976971367610642398193847888133026207297157825222429830653575615595758096690316917669344056834155983662153267687541045202870030884072925123744631066213376511974148731337164841801459681643987982286473245406623281111032388012605983148372029824839195069414226170763394924152062410245083833151346260618203173361652099430707022620980691402892529534195286004529662179433011910502095669894535827551486000684252852861689632550346823306908809808450639403674787305683634574758822013040642166158544035152117260939291942438914972257445702792440857172277058448025980785556930504409254501835952415569758204270203792870498128499211587519879564047328753907110983611899508873612132262794965617372058498154976591528024000763569051913947938720445590487683947834139683793549660480364205482244412236328739927129787506004950414077375358266872234970929649327651868156865438315201581892664099685883300680723310332261483744520445261894258130116880149487976612838739303890359175502390767274006867855906765907716933959773608643973466562399362413310241551474323746755866532856627242150896024654899835225278345962076468061049069811017098605177573965743143460755671054402051152889808376362063538338122484548465239790011548386667437301781752129127811810142759018018498651270401548888427631572103272603921486307906246223358567485176574540742996734879550165437696010860074117382155752510983258637934735896154964558872153677226759720074106072606837807011566995605255463548095762883973248032973019917842003538000013728640489652696264087668420449721321648069538387349901371520607541459085935242813511775273209298996154519855906711995282714768304194923306436810945576830418596628881840026070595028242779872489829151915113468396452050146586298268426001692295565307177720153880146867778231142877740313405563466835332961631913140488261698454983353363373250268805189363933826628530564409738608582474212547604722960379955528892927492739003735716008522138121555268923659814134981194294615840274928353548938040311609808596583107630142301951039103398687000780235570733268838556222738206475884513708132333535190881861635633026193568023469102367726335658267096390738819173634431629788271261604052465878687082131535344540286027492118726164137823205026818773644875230848209717714331837213264448339033540564717384595470093523005773043412860524397147229077305702372510200712691663350078887857799364374976965738444221321340248875696697213451689369227784924862495623914420984578576031718928940743640213927699156256298261067271131482229444713654615379561884321244683041645078161846355932144782031574259631045767358363348496960664550010047537008679323761411953086698478359997677538641458306347522217388739111463895087406262944884178009412065536078237180325350374354059426387741840412903367281532751589934928948167268158299084318530818906028822470826648403808477147379606118260658720644205161431605411326693893653856119875126543819439746548712377888807719465112914687226004731266448995212120201962343063152828987406166101882396397343944116197423657512636551844135953444306903700177191785412067802513384039449006621370398507706810224689783332072865306049107464044160089226246233470102306477868719735399417197772318618105524222577715533160597275374325958638141775910341037799367474793725878092447586306865147299337271854100741202432907763667398263678501899540688529193113220094815488803197207290839897349360500104553689324057417984636642637975324079132115894242130718714613189850848499488956060301774921961214271375569777523392567988630692455755169309789525549038720619316685807531954327186993697924550851019759347062394810943396249554906967650425171090446695998911990550056114100634419839388727929294779492895967480920111728679384728711089640855023540308643725823904977432964572789436056304624414508237633624878177222142523417658350309981425901524168122157284894395675828529694604894023798052645466974889102736973429379542516766700544541812048341028983123646279633107920150332157211994072430905014420976758741206785779649883572364993395448961971512010549904714202902303648456520070113739099742159087745845836998706167978819871342690600825803424507575664911074964198319354049375558882897720729812784650241213119525424961045709938325951403228589816649816670989025592652910207072041024966225064746713021711150853329078532975783240245608340221908843495812734769045611514052159272456626340783082522901758942283600116275869552695501730237784037764963863189337197086273990126275837708210777884322284948287845763310565777026085702699518056653514454504645628375303671418424536279282974924681005992996746374826948497924025144504185877744507920323645102305432743931317509057293768014571774069817315832031445752026751724804665067091780017597195786290479667456088913489115299247847266440321204541641973229899424892454842215253853994106383273148043217506094701806692725640830778495190510254245679853855593209784965753418672638899657631091212266383240962088091358805005978682552068699175467732824213889854864826987743078548558024601163668050786768199215771098114494888519956710800350599828159809415798988418844528874171536545764856859138650126182347541582762609488073966898189455106273275459959467540343423302008393402549877387798483888692182570212672788370445098960160626805634537405718878066085809973359908932961380720474957406461894359212904279075818776987283155867348890794392397369772973173165721699611587743334117687469723585923650604102639562759866547661145288008682009161050645378855733354802682565952511839550830463427058462697959282746819049236436952276825182005183506406304772327433390379801585674934759778558629811617373792958584137717886297854002251692784194472278537293842317305263560808659457594042656107895362005418470039921629932596371325297699793982788017245984901089099454461646844240953990702418948141889836638877490520470338528227108429120242830060861646011806508245648585944750504827975166573405463939945449491582377213604447912758444859974932964461579504829231357258106461854936376747031198343006738449328981498972952029318831025201616041656033207103536371297063307531431230377760396908361285232928527378463942143382383312194520099041386216252336789791237161413923022940128011935405150615430821858192913880205907545851550677086640106457495411340187726925792108948365637240390023998572221040749253359183877185480113905432654339744037006984561904192712664005919075357258192041068471785923253989113881980410733964029144114888360177726197773645044564115931703519666962650238754391433270903506333243661592900248401269640056074778296257737646868326161507938748012580865164803364135124986690961712719241567568387343940216785413953984244923312057166061412679416809260469582303073873149421088486129104850685489905232575061524004087924884720947273730323918809305180476046307008181870482882754006845046545846602017941053619070320330284471479425869090922286098756118974969314603955154470766341709437570705873422803681918645651458558580869803425709816471081186888073506393380208387706095647762403342454738712852563517185170690706837931970291830427820741429327111784218074616865543533002287817576189925988810615272654799850285778637058542913611097566710153125169334421015171933974582536339115788067419357583932558276101276526586890700307566462113337522945390533163935360079728127635213035400519272155251147250480887077600693139612809977287311445145620253737344214326200943975284297904717267632764545284749612580760013828985053287661621835629637735883668838672624594031144354370424080237788230527822699711266910271344973865447927117604396808109398960257552235054794925243731238719064109815777898264160543109550193495446132237606973851626306759321428862166473086770967916163556929039754772052396769207969018282207652895965701532095229668790297739392708681200995159276711113650051320429406211014543607575642622502398565802039403397791019626592694740372478095383088669668192833471071254903528646141605691604375036219533750194586192598129981314503181411843507247258530738473896951432017741703409526127424332271832779569617805685469026265553511554252528545134842373594656130185924189517481742290413853889366740841152492060523291005647537604139060508444484897907625112081008753663329555431068530059490741695325209057759063891517394892824175152555521261526945692980812606624114068789405139508729778302764050895180759672968551406010299345585738793770802928499856772911145555894717994571178449530001884209187042494710657123579799786965186447931904759138580858043997230961405449646324881907633019239534973182557059586270068055205337301829295770293344279101536938778548997914299601258420898322509278492213737514399050989517751822932820629277590431267620230074375948953859682239624833937040257779874904831002992884591360350777304959882579484441513180690201586854002468384733392835844563415265727697936917717688164221259091387724644096199639872373110284185653687684623757411151894589605062281195552915836304094116824948798515351321578205161523912800187963536873447637254941050643926410897321027389944249470402567660200329653781073834027089807730076219048470221757488106379834587439007627307806674038701189795464851048594407563485130596680392078767697659573849409026283553243611315293109971305265958437590007135234432835742204256913232203006059955973497301733315848688250077702266733697741045882348877750895345032407746337781633680561116859816628678307130257467889457753994914892768939804997941663500003317406825503699643553791340421015713783650418997890304408816707091713455988271506262172855968873649645176574827700263031239916290133578692489358236508401623614359375205581778705808305801839281216324634167711610544498119584549728785184333973119764876528077372455453659618234962885451723162697926233669296135339639028401816696078955662603955350559468155841692853891814518315775161958347091384049255140276911236421158313203237505186360185827419670289170878448521110365638499951644643209707685608237059620564617273954365617994367117372578216795884242729983274890218751530666492686372579609668151786106308198854859550068044486045652939910554072449238978701244806409456985355158140467792973686916693838553140183549117428802731125357079106864434152245657827353234164564422629131242560301876308401532254294311039568219713455138764579924534955545463097344936933467767304540357735604806911145078918556832893099788242313612232983374138980726093620974410434349489590537519781278952247332362555863855484231193001009488525952322662546817832672803788903164891375371787820626061895993948477555750559304679515912736777082346639628463000535572695395366426182571726253968538787121162837136920402446356277536384894473994633402361976828241400371478413034532020560996135500415878049854316969716913534676972738898392819252009290227639411993487889186342645258929981346846041139332933189822309823156058032722415652766196817715237606252466211502533173970135774653676513897004857067013502002039361193123859404889078843229164919488510686303025206755703314744008446538020462484734804224330640137239232921540928711110234346797889292104770393690471850966590917213513543030055317581533957835065604520080803290893710594140586859291235572100532007608623633166904806403709184179934308563289573719824559148325871181163508641817629340829606499729744069585835416884575952430860535991112858999382203826241833793857514203692061485752685273982182325693749675438443607925089577898597630565687438911266249723334682148712224302968932695561498820218326120185396973843614192814824674709619203221348115582490467804494024238860443325525990797772893235514003086477823622130125102350456704711217074415369794535031163462458896495279148520749779508628513025579695408260073630018083166478565352731344529496761419130517167125251148360372528132737429663236264473421585838318970042923122342040217846163890123298406340077045671254989178234576616437911692800340914721827177705511352423434497985883169502508106963233282305274161485739172003822872682219540759136886500073841244570015530350449949090041802476844191106145685005525051358667449663949392646677900640351788140785566106290415760189841380973942718313402298512557454707990814366057049980413809402533040734897559059861966212294352085357672835161633419014596697026201053120210952266999900460916489130802639085263888984728583893908828319148930565616955276023470070481515763891080678703530515348306761057395803690240286668704079869442804171478045573568461094686699808997951723674122739942884500220538351921739925023171051303132436089603235838687569082152945513655876441420985997423343032146312911501927419311223108334796825680503839590734965086826766901665248031116376774040923366661795249013568466463073611310523385212521556763899384317424366917380886851828579776761860720071094742864919022816534278533415518070667920061437071805467804612096799230291924275275237598803148921351555543856035371683129257664487095006007010733007389989479999281225937993855322925148210950871094873945977747379007011088005981826351936865667922601772346792459869367072716695077814113762571767839585386762227781952172980218697465781869435774820556747901642943111432381640807607732419202302533950006701504662294271647553669049155128792000734415261304404167814348039836803165360001950162016413803741242139530118015176197057423439515029323083715392203833308140418371398797643591863024199099415103832864159218681926714935364072681019618848456010634014222903933260479598401871118009978335870085052395996145394806399878011618413178477509677152250062818052384585477939500312093397615450307362745798453133808672427683748081149205798897015303156694352516949311205981137435748320609381393626784152504891393119476933033101253801246659800804465450758027314147054226032659546651593170186573412787669925535596657938395505539581819888787984718666124770197516407444194955328075525738329438814291054192688426634328964751993930592677018526240319586162837327225802737800564889505454805669231925704576167747654290157826355472329041471564570292785844727557666386380804089608115860852185862090321401995513265251444474610394777817112110030420537025532013128805676025658347609689630510563158669737689925755213598808745412957354876500983097773090165007510292925508860972794137742678323458301788177571108944571582050163476544735441642001330422130830045665439732721893439935006593536464695842827519176965425271208208213329421058973987014943415483032851535923028262683919438329078546033136404261125444606077126944208264227066193757566937303005390085588257975877389870866475471927203818301724055200195052815424623397766844250899168659946420836357169075257490510872160248968091071431083989773113515338149757522098458095816806393923443020294871988833538870166432876812218699362314399153943178296327645675120641640806935686006235925699023435987886131038590550014913995966284330250374721430972187647356349707260811583887148915553305212658115553754761305754750458745071861905657240878451701764099695661446148196944598042724293448735065976596798664993772984361122320555342300767079083531365250732807125700184144619557716318152169038774200645762415148058157571256615842236072477956424405230126397652537162617640699244990642962509897370555663069185762501285542993918496892046284201818402014457131476333910595603739486492828303148983939249646988459887686325974906352058156540722140993349392860326031459605926851961581400849803972248222610814454702384586282024178165148625129628845680970738050413491710323891506737937931774291506301720571166931181989698500498210344038417686630023799362158818653495454671845143865677688660582364488362005087007169311890954921415570544528048009945705836973661032623529826133178042926540787211815933860853343768886033226076253439305756052283554144093725251709576702405282396207767925492696803107623383875850865955030353552115624722189362662045264761230642705733803226473731768004752949459678787310836576577535397209344315179556841545391359100655983912339367535238776999878609790831090767697063407057331373026561335619786982258712166839883541287818407608879271660682303778156778364605335749026494286412108476536090711446039279494389919501619612547278532091759629211235359395615525848262450423462928813274909179728541666453530101686600426903968419256420017627276761193347895665698932036250161674592203098041922881523648931588754987790465070051002405246385408492109088010291887074581193043459923203034728825815796585901206406848894284858452090195127438749878083912118556329260574856748108545716393048081954338530444077629026282971993986573921775747219352821896258562213303874691193250699986214251493639415671649150692572687662536883251561157554276602482091710177790342823260065429414009960517549341086383540634429446747779882460374676316963625156334054013909144028107079880053761273649608345271639324119531476255930966611501721688111981963658718829977176827051308208698747023872334249853623917148394109812464431009999247268677649057529978065883616381757211811893451520880447191742961851155479438673990151654704385145613800089819500543286463192136412258688484251341643252942455786108885847122371522620144671547601108701583358918024017815070167519210161431082714524512123025407433817670521264016733475252763276767659755551107969637271215322181828306280556763004972402656421929410911491458244340579215446415700885471861891660557341317657616965001775086782230090295342352479463146668794906257871179582998725057612070243667738860189195635005362879223582399396129415449943769131406089351610766898188958949231393364744615196889763448264130026657402918200815209510480573131641861875433462555360149196833468930249872765824991075129243637187329834421177897569583206627907156812820314407363428760318249851765961951332749977401232311707040583531080939448140861455366760378992734266069678468690752496763717882363288531941955461677238505122352651576229246905621435432761147766784443987936500869615558426660682396447525263763780953747612373754735497308545443899503531830565100191265476184509800544896734366118449364312501815860952021245372595902520463403894076295539668590738265575412651025968857933998831449806325914989752548303300732875970365874591784170860201153328850627015250731425309144027374162929726576534307996013319381013536290081696280525433140212049576372413882881387074293043569990011812711119013762750459925883999466177549942524023836403367376782383116777056264726257081833637645240136176171553320297293955247571086749169828630174679286490173864405347456087151967270718265948356023296657969275913157277830678992905612598454655933068946808600654519037858555055057611562586151343493041954354641989687015722517017273486206723170968816511818434754601524944783489610556483545645050087264876486211042571036380780453239474260714376305533562360322092955253222651662099073155474276232351460795829455315340258893191195617884192540492575389883691082906463724217468274859915097026134914641785357515695473028600800614160823729885093503290067349756315537110673291813775236759939227244948219338752361214745110582631989906740078337146493463976416349687313352481240134551210067191053417704706162787132439740845303344458880092635408504940605055352288445651671137357513898041476020901332551599832786113801071213264782490810317825471468657688702145253264378557486326264919649918033993844287273266061382417438826371560986056844273072060717918169545306278389672530628503385947300743728900795824024035466100499626155634401734248827636117239446808466532635668778327733889350075928349772302960579410706813374615358569922723919901026099420300084594385175327242619902278837028105771764119972039050840487060113972541186645479314112178629919654748700779293462009304769207053114024335718003696518363587647750870480705025700493731546281287308964786720914977821412401001621944744015971956986141322246210824385135970766870012433673470757806807689719519873843629763914370772624946609382069554490348762251060322238610586562346994723301278943310079239830805792867956073362282798328568633528358985204181438461900099171388686158693691469014672222885837434091291484070186419744075730096331305859450356764252984124148404060713574705753185430469294961888477967697601496324390902953686962211822537217405783995235369996088450130319207605895851379573747534288333300416819623815600393031674870350840677890981721157236669028967171792304049960238837162386237551607997565742980252380407885283290585683991031763717460106376648583060006322916455843312473747337992962106873425397515267168598452742863878652961207996336003662128542917949393983884387092642509631522777680570396765463441820039086517283477102405820886296585582638901936341438685344234629945470240117967135511873370819992140236557368564975477070022816768640593685111638004608081678794433139094641320676986057855142319468038142631336546573422046356336551672003778124924457723780107373544073639789183478375786883831180553811152395950169023967359063558090399261546986384230146113549672106637817504951505290500688098667088953141511683333818457906641103995577793360533317686506485800610549944939912994040562655420243313012519792141818809607760944713485665259612292235515489646671223253767081696113604260527877480057507584719071565614764941029381584381041809359147396438361903596221167401923401351110658221196057154198285814193100875470013266989095944165189098908955683553968838530214264862824571020300038623190578792472477398155986644200774070003801499469322426813510394614032770868597762495060566504001621919948174936114265922116369755679403654256413295097848472354475485624353741520962733101455909772653723665796949921695940807965726872266211774255631142606550521779597195727721106210285198833199668014301437440321256338004404324024428622619207519018642967116401894072918174420488777834887197697343612418026981830635472933279353643462493629210534003958861356803585720313162613881450457293810401901286824526387078505118048349308626836891026550237454369086123577122745616311520194128212652790261404646917731939345345229115397352572997064852857024129240864234303098792840444558062308720215581859570576989416555835270465279343373701182412373699754455591126225604459031786046520153066434614673917759843268150827090274333983729267362994925181167062006516539592066031934725226248849115169194935106114356114006648910901164079537770765080798376050333776374578612931630471659148303890921528446631289134184657989673824259435688239706612804831221472008829576982766395097425749629326648174982350658707281115507693072770172162761831426189488725362922729603613867126263096674328237036883142499495499936561798999716600841198233091973654008443120114462416805529783130422300621040581757235770730527573764498794687015066180916715367081806748134860753483458280474563386468964393123124943747523900111273667563443789058832948007940391352197490383797767966259129184893452079360509653793063762386529055002586545502949655817906071630897745730179645822072223602360620123613015074566438510697894407326161616529236455055003175834631608405461259439204315962643346907056220313679670960369361738748339821902705302679098767782735231519218012920120878971035118868705878557749506496952570679414353200998553893037759157801483682584911202532180617764723091131521602274277019924983235687431149613435904028337375398330188486170704364659910581044288002662465620088503233337330267279216868569990975068686089002074906517628576380772878211356969991863531720774275297804640318086160555816974725805660642057064869846317703775515638365331702584809011800941727213663257188766298520756009871620146298425193127300376545794262409879057103380149866622656040723297976105168001497684616920483242403153562678711467598168012002936432934344601657082069642163954757688935071591455031859422865611852509200325240442107711688868407068633204860020242838838980773333143413673598234645755650684385564551342406401360517857846327832195306141169423215140876270170965341785311893507017416884476076267380335376499247197336828255666930640580591912582178176599493889168925312202481451718561977364638328244171719886445426865913274987446091580901884792213910974299705616311629507498732594976535517111372982828202622487561873700127941258625918078099892984350711817793366162966769022295142402008503330373771243620151580047704170793178498117006274947856604008623267327786924421552443779406797076153624509982419625709011098467391386630182003805966260260791044228718597375466554043613872000911512497633191771303968149103882018166052152434498839013208453518309051948397715372997747329722483382697709750152439826288846906685343691415935659010040584699307526777918522520498627930788243829520210106341624035987427890070806897009466108021070819182333268173529126713952542157907815921201165991765958358734812955470336533188847285342309496545690254123088419397213271915938450621380770730608215057073072114043393961152903730031869919340768252565905535614792506348294964708142992819663013746963261194523117462122775986853681661242380855382212152442039075198178330037103245810112517938022683608804449643042391267679941084665629766785411773287510389732725723851820126840023199849211532270814291246075159566054052724280872455722766809875302859048589576402772882524238631849004602547658303920755769033596409742041528264976967209188982689722155739323424636087183593133012721566900947018413235953029776386022459544313418513311810105581123145042916692483453964308586847613626193402717426402793472289559116263362352339696373432226668448399258244324065404723117470230649063205019531166577207269616975059456911350722189733239265655747170728579295209990751360230248240323853449723529524645400803214674407258438514981119063820394026851140361162029004536586269308058734054906465545712918429712844382054047405387889974734056062517423923248049802020140324343257416986500700837245917896502874218721698633254310083810167982500024315796294787444987033113141513132419902684779979129484266789852566966728080002175463122857692917110195230495140893508049001599078056661941810663303386509599629268799990610870519473415287694918698861899138525107397569877139401340387885334943399037509449266620493565879063805475724740199783392662451014479888018920032379032422630830138269891408580541189250461802066612314035089085008529941513961514293020011940686617026600111922264802299280203553059795625078895549104355355837209233044403403080952471823779779902905477401869713493125994907315778551250132108242490588340581428741942831550962038726398212401538735144400341850983421278810387170394566672300946837597398567908423230053205324507857955518499517764682223777891085268592098431651721978201946529010437330448490736073554501815003213317847777456139788938630654376023013902743476048109108859425386972617661988193525363368017104859561911212953007380366768335799131783672140521152316662251453849386490695734166303184865923279142669026035256178242918171211479519797643826163538702543180972761670277659921781336127527242809635196970394479449274594140645641107077700983919196870546927914936764536152812068647067343003863024157038536743126039850980820214712316860099514794510793515550433076519049178268538516493756098702099886042313602728456941667933449955435503202138663936591661193866666440489500395178705470063608819091206654029746236807626491851392789359720776588078903383811896346237699411942255066026153776045688536603828496310368910157332430765622654417238141812657490033316916107610349499610600382636586024666869747401192482449305033858707037588095833667225191279722893328430647635737625384154531637033953688456001908890661051498123232388303813935599069815378374442864634040278560398016562201962151548637078223537923532558014632997024122671675472874195004480456549117572940621267444363856431432433641400543541587374276142610242404221658621607878963128268923264190482275433178997107887351917798774209488884395398662931158281414904014631867585065694129266081729053004270570785070996061371535693888524292558974667517797675567732258987102850859011772069492635017685932990828556793455389066716129926564618223080070965932398219004107514543237991738708231915161102449237025016625925129870610982345247560054268388648431900691700608106936789217913203063144580370257979808009845324144566579751455419569073147126588025250230587574867304922218657959467342439164137742542284997737961059960992798471411858086449384188402004149333405720571856433205591801651932420552251007606390778864650947724411620268265959843538679617170889362235350960790473809658779844291966531660037206070531944345154220938777368758904462989055091089965062968956260521812005946449514048478739729075598221550249201955004709688712583385201522749523611101173517243911053053969403613442195676932033682220221036697863630124347708960405260178740817106239217542564502733507715107137740155043911635224422417072486506318637193161267959368674426222158429475538593862731585050209841853164885991471481879568243268478098022030414467588520987567341383249097109495343055934846664792509302387819659224405058095845327620930958466951420804389494627062555163365183000019366841258852571772547635858784033421666213519487481529011114464814227515677479790168565406145747202546146669155636071216411733313604215422483345809122595084218651485993706105931676652245082441841333247601369620430061015831991905367881284982022488758984974546114697042281617452081562744271210797838598464546625164086120634440820250139585423795415215865099516582258653949570870327939656709220560930447230365334079659256456771536799212591960680614326434570984173234792014198564026430761622086711767866151488159802164184328927381792584405517700385204411883838079812690784914102959594347067069803812458233903084751194341041790294367668761297619793132969174311012887090471961909313034302673174369516438006069922759989494712731178042936481023381685316298484923150238128718301405986732391441872712413981565110110535222748016197142968396049453050722751210445986495418092065086779057773585882073550048432817026424555380357617416141617312886771162136162233762500898258862748312975989522767082658954849274780762859716352730602772467710163566064786959497411630062669156962288114570383328672572334764422042839263667935892086871568594785568495507504586174444029750786828412032255727439369648307031885359707442531566508115623211067963649429602786437105525637303355033263167415926941765464524306432441166371214690859844251603167752894182420872213777833420631405671886834954506275073643914815207965635075711703207505554520513426304712882344452070269949877529447725233737944761859622760861345176185826904405660013244740623154626993972476780963284968996360143422671155141563506539957790336931086093284190602624195150433059655502510256162532103109434914072423014054655183705061247373538064271215952602135209383035254154492415789676350869502011537311660951973074605472025865737915793313806154627406610943920941839799925223967076827145719533910913186529840259626143404175678188182967422380749516903090211509234511847344156937140581017294907780370556687159444626142258682379285340368409700202303469151125396729334628582857651460517432009529216170649090949229895365669343297700531104852127546067101845070018929337547995333182781343694945992380159182984430020649509019523877333356113522252178301020314284588430430486637233111034630068436046423685688139388342573606416217221584802900155969180960158534884603109897772840395904285686514535812321272074589202001951450069444490975742655620597284221835923369455581305337476292407126091110936618334281257034617469540588269392163244490743565720746376886330652427678638165427779098375769430829373100863222810109483045229112101614010942738337404259408639172905131961491649069174552314851455461705886394456926739213261545987234708906125524357580951377918566203489002787300774576271798895013050466583959596412557119770833499059952150504176281989160101820441985840826619486159467260138233563756904186409284285411453339230005915142382690418274924678480586489859038056428643382160215242118669579042092782404917579386489271895618862729259087591552914213526621506939582143406098424932495858815988877588141720205678752701773377868281993804623244758262255081360853280746289758849754653585738967962852899855910724160271855760007106086065533898944044853137603529801482949467028556873370801259735241723494482467487296105072673088488614114501572708810923442836238725601243797667317515069577191604130204249596913081709888731102586904594733646614391117497905522188678461546077198164193126539439177806192815569812838576427774980879136379886085959164481656018047308822525269071541196964584048845891279371894390926698525282222858095104842389476254767917358791035618778113374211029274418252082473794815921835506104828562538961897391494401534484635390829495483469836900151291304911993147230655914489720733608104869619642790859735828216251218665949100581283618884574333752327603514753130160133053428974558918125064869140960767907322592795656267922324166854384477412060620389110135913389844868417429474587747796913026215214862819876136117363576284477981829712230022810110591344095013826790768457234405211716356778493367464450268544684913237195806731834406363621926530672815431482168657173786524426625960133865138725047992892273357713138415470837898958882843010342578271035720234628506515009376464112742966601487299714877949345099351291141746101368571104354712588538199526306185299273190936005596824256196762429596320058058788649486668985636788564690516450258090413132966746166797028678114079119524751518791887115555220333895327305945656275446829300114730281016174615688481898264864417446492521358313977614751513458607622514158426443747099526889180138674413813350761055463940194478283166117683165163439703275390627469725967872677496664482607417920374198236744812322242316200123629498084702032699395483421351450002941593193960502425127580411997993622308000897726458717120000478683024923219584122831974487677271706814548092291386962170420024036794467896691712729306162933130977261824805877605889256008637279359219142771661509422897437043537139710355233819209434471626507518266789294833220902739317825114055722379773886990223446797077661110285353109191216157809203977254937681997703084042948544349667748265122141014721221741550383630519159068765570130975614039244593308861389219064873601336941777709544898563305093927796694744679596076751636832368411478059878590214958237056961828052922573142067350678257175321423351630104215533322632460390379637184143564803199587356872903359046220107646683322303811900405599201127913913879455355296576357333226287425567364171953070672701865508548942524407306131217874766800337464667631406952929723907066070927431457636445062085554231237191955784459946393969041729805406652436879134578394612796481818313910083580293635333175335507078973243691456100155932538295695746244514964816669811542876532204589935120631016005410984231406596225570868877542401876722352887184091410842686645259312321851123192423060333105813587942755082506802642518350927359499670054613170876458206819076634454718889669930838410624360080916829404933359940431979155538936413446362214309765639251504089216774998833584554879294369400001590094985107962116714986218261072540280976474263756262934238332372781709875621970465532420687944100463972266858076390133267064179490195793054200226950906034472246338837258939555964907249177007101332904438002229286423040044830141242427125035390488206956600330527036664165471099304097109651003768148556782372294515560482137250753151395634496812685649544838492592698505242712116377286142429601890400639550529249004723793680872696881427062735412195527274314350457351790953069288969186598861185572546737855304069289082222347210162130398522199715282352235860048791280247137025069360733876188222263243308117042817588143158888195962857197423698270621067601508509341215137035620808255872193910782188038747023844461066382337826351274450976910432962413031678162823365432358633517156883109600785151712339553025406984049831162150991499431818914536150792045021602267511176689601639421268231636581692710146423720541758058816627722650003784003189707010700441882378144445780456676230425612691046231502153035954075724493103394293780730522965567164550541746217341795648871750870775853870622698416535484244741471213926757531048751190691880224251701506831333055275015846881032939984091962176624327340576293051600540459873350718614821053361331138567304789578673958411861257336990363599406753786055332916840592384003068529073876402592627000816148969757224528418501200880785171646401869415063107859289564245238599609085665257293965871548351544453399170236935274212097427081045484626802004007835778975460677427285153458205236410091086860731616717083859440028996748413515908984420667369369119626900958755818465854623386906868152641937619919568153539750269273236612306965989664384026559669343187965334030691935168407023558311694167484226066910440254130709391796284337510881978845163977437927236009911708241034511795932743373030064848693904060069741716167534419430137143022098007691702744942174236978784260596340302898726297243270540572121625795503110142316933619673065832951915806299907262520087672095982616539210396402261512758340705598682505300159434624437616369477321195418087118438441608526767014004877435822642167757148298876952000140503141408596544051083105397672388142660276488761301172241145565719842276090740108909741115518012107892096957117390786335646606773518653071900982264554839868417913786293910197054696176730478292754099591743828158162979256902785735790598502301308717681311909222334519798258308027717600338667972665083203500577364107557956822865020359982170203414929687314304979436744795392721243607594588266693285293013481065175054841094293688722180558371852675292244602866729233262137502915686823904431479797980326939218650792388279590841085336099120604822041225196696208349145861493568765405490209188581640463246433755229858103402288060739256812117365614445837770149918204509421915849855150377808946359432186438217866997410178716904557739334204981898500125772268943646329754753822875190976093662593834636526413114419039390527213378694912235588657171182731533236710596831555038514879453576139054636870829883430168175034724228820222391308310060937068344042038292742219664656051353343621967309110236748351406390375614912857737518104849015535078014811026343735986596265915772567865464521315334352151899401935293129182734631880464049148749211294609364436159563293001843078852914249155468545829550627800300232963191859914593493899802887039865340487152033892359300783588103990295865842597661804072911801100956083310489731673811361834293841158326394763483056868473131359820871106341862431997420438211861061202489655492448216281128272375810673704888502815351202367692684213244527615843866369429114596331636255356588938991419482959650510553715266537902288378037066565759350591398801450212342778016841099304349921555924866799691241821097978077797128031040777168654274837193325394284496752723048271732032399180420203868283320091952161855221761474454461895587541067109332733184017470010374946044628706532754630587381794371151003592288963100135894677265310332610629017366209203847088827872887700523293329094068797895628147546969235010340989223205587308655264349802963978551328677920446257528031195477474151995398451623963166032223042925469829591003436492516207956358019282448440949893408568955410226916009152970176578154559724688926828068177171481876132676635980975783887748991705736779621787515639507284580243631440870757394638774269657057118105546786194542101157126732620635690537893521716141579089976623058326908763277864862792599666934515437146122162590175478942254785838827134484376815807724268418971170900516528226689319530264957004820877158599601475002064249137450563457570523478691207208161189893180461624445961033397239758477599057151691899603419045100299181687005093832903871339619668048603955470393672538062220478974714100418220641145973190453408341879050581566758507559942591941623414927778015866215169592800031566503405730416544690787872944777108526800746886895800739046272429275350292119658131200777213274660453385197050140346155345491648175305712794786136315160346897687383472594268602532825450076065988471417062418211488541995146982892360724394988870425136999704295958832577179688702824536154855174551423916503463918602380270315245254852749877657125982093867340852736169627605649922992092841675820884371330654289158275651870604351517529131459343013270473571210495150715659373323891331536219072581950642704364222641401616422514758099441651839277423841516659718834491379715314019468833317562164467809234939544765232624934257818483447625452198810683733567600598080205184573976334524122422004975095643719029914821329425377926708933628334922863167395045879381657844381156612723405391057441484982320425948553852140649185776352610949339063634418148804289613174083150674242786334596452924568912653744457863808384348943955233284495256870509813418104830075095767741065331482628892533986940969723701519268804206592196680407954688017756106454127536102707760068718682930445253452172114948457306271038801114832990747681886316929011432988792651442485828524234693039842301449950863094724273107687126430279972916243234205606607026681422612381770364202696062982930466036983788063957503212100717681832227711064784135772841319159224506547195612230190548867777745110621138163169333126716867299223935244225471133983197541593317595540151686229972355452799396423627869223792914930944666335851994887991816735520856144600782104265119480359270591387113110415471220100118184034800654854208820354908855206011773680114332656618492503386289973518846160143111923897388718532969000182015826771409641894295083513797165211995130215719260629778033967033088991193528736314939061687114810851257000971852671751040759034800773906256158852861758131563141741426385024939363415722522457272120347526805318245014975455350509131237115494864847346181258139615484079057395178815509706280012019734387907512127993228143976613879364034134435638684419564844751166817136556511397879291737269006755710705000587673615170557084526278338948515716899534901104013981746458824800917165942845396457456844978921194216718747915907074133902098498947171489711942717708634411542635108454099177640387504949121202802203696251503116895024188610216874462687149728539004577481862030365552261471282186002658544798236784604272943725564835339787059864221208057427412780216696867216338912263531019166160124627589100898764227903126907776445747126449067927209839869708327148875970702928218242902125899409232181815708634197570388199535322961962932448113007984551649207167303716886283242181223733861594824640042065175789663617367002753343674359931285890783445224133818246657914270704460419815428986389414141605496742788156229181287982163087826897454615384342330306092648772245846159884753773083184914996726942568359129892848341608683880074076936427600977838130782935015602946806541757331198719661217815287396548259448782959008784503373382083517189842147718757264086665151169872031878158261676409788689990174356287905698352458051251263120147958479654919844655284219144640304086280315212286491441535726346988963761010218168142350146683219110459153662679402503429506366008547402516352861352754052842933251302015350295340071443786571189981608900103432218902315228645956341053669287258522169307250802910548558981382857353533587224856367484053808995500722857514084683860553249095250139228481670812971174817985451136469755380845468331959762338127299383008644763461900547579770169820322493416366077981918415567539394931150415325581226665348678292602718881134571498811745207216954594251458446853187264392506793308887324125568415713837561439674625783654762003224982020897720399639254420729761896424315260881132770689957267892946739796070015042263581288095977048716131043110313284733866781470944454805270166015851746028210431208235218060041599573919254761502124041483505397209275308369334362565030902296621869763765587217841272034803208864221506151487495329638995863912947093419068845172094333828338116091399485123653869627380022090944761471649180977853949695166510831107466215829906620577546556682753620569277815963228880326581042311885713450314369095523504909135944592473136007163779193854736788462260561368848297376060410621386945300216341402049028649656817825898629348909810930185070295847365102181122624584794515633220172269189124272502309195604900195939708798332444757054336746131198610797495818148229811008441194864003096956049801922575377006751668368115401753264901365456159612755160377542175273963037723505592783051588108922993321652991585969139664010988766502882570088856415959088913218743886546554297422910987081119279624475823573168950162788892507589217079482042110638856509485424010260286924636672844467564454937396444769393421862119320854971109942348191251106996716789400095552643285973274979848855463565150170030951995986617121960801412404419218416535139906307404935549978754208724325514516006556370869575993582905703390657364777116272673870016829890194588630214645381056384144713781761502661271003649209379018050128688185377677852391693350215064478548654021585119239353822701091985651693921568626297820289942502476076829793777808230997324178599655146541049777986538731670823105820879239301089718523678456926615726346477793549002298454607658748926560441889967495070161160922008337121502276273197193745950407069355875159448831249003466652765973880900310056253363413408685904912603245099779886680044018883639769576471550539411627440834411614124963751982820691472281841406541649470793739588598715245011919027294817994571981578723973790222573550494366675238857054059748844776776019476827662603661753909113596970878166980903755983145781734049987619320506254520560724598386202112166306302328054485457192309722815878259389841117255885204789196906912053408502531947264838132125039367164484397889868473387559297421376190026275850812084822891191832849807548668513564113141349353765818486115647842339727427176066437503314775456050116775355881466748200148135473803067289569028012123672773948992186330840525336013178486245954179229688931977333637156497046411438185591059717700007374375564357461606060093552843160487220300489200307301169464287085718472122965201934463379310726421588722755204195463859559834288451238095448575654679576890969502992728179041113031107889251197355161173289866355056612749369407609808990651767337930066537956034762862542702345771091760113844068021634147583038362042327457844225680606193261670269432409809769599257958539233051050204973193610251224517207823712787674791905897040445997243829668484735152024488183242386783417000570580819793777896341206798946909509286086458487930359474125673738099761769290767944038611151699562114197365070519193188354634911069191447477207335380617537480718317905620648994687877886283959640673720733902482148139732014120323003416305256076674370649606810948102850810731404497654799859024560705679989923519218850275487698058617821887653165349164175303003349702895641612330329911852036000994918968144583648101743083339332160230362088882867864606190639999748715257257132418998426498830325331847814366163311279459062112639271295679542481554645474381163266807107175562573142326945961631689738347101468872445237133500945214742924155674598947181373704229434593817905600757237539220471874426424221265046560997545657576808742318605799624214020692116336645608301796048922401943731306072276793745711071667562860915238482345185482488035770827249959297340856861441936024263995683144639887855614457992641159650646305833369149166260498659583421079113688321695225088591800897186070457798008022583896796345739346864235511725074181549640318232709174754741371293609757669020601635446810938475230813206211214932208270113669700532068611864227474787548146240365593342757859316871015686204776805511913203017222071470827141667070107831055559000731519335674851199281136372667906002283649603441911823731500087405470965769745208951584967555757249891108398573654430026116489296256968375099420127296352444848346381321159975316642825226015527398200045735053400297169867346860715510802980522886150496827195426689623583930856609017541757925655538580089922473493925981215950562473777975559633775114666325011296304335516007977215243375458766010002797864055391715062442360495967840650181335379345059276442456777540418056436535038940493673635483740567790758900510062332777551365254872896089915262062270966625359612424303708659353244984380319293522052689195725630398693327301391769506429843613043776797859857520433301625743476565430771561155192794464930247970395873564280524815758508686581652248060515785187666892596114930018744161210940772213406649122117184271508265428131236453119743431890346297236772154181533712434477196383327262974122636132457998671303286637529557287740603789834128500936889977698716981018912580382951509457499450974068957137201205108176013946750243543876765714761927924454162619106311748586983866208187983538052507128224629808299608825090814126969810569368542248469771251227968082161453002651508023977252927084919034841737109329675119217489323985385889810341215998673053000087210537487702631251806331974942988061776536066927708711220718874848242171011019879347495173571600043147613052493479450106217455153971325465717801065752978668672418383548301362338256582508951935839872732049110318910662083064845641030610090298372113782365971161222850262907668388326992921788378911351685206714120375227008969589037602797356357905834053908532096432801274514540072526639791524515106685758736049897911577291557590357588084269579920597556497860901614919753952327056346699088809413925672719681930357471491399155664512831900488603992332062693082836273000144588639002023870910225705117627072533842947598532130742204598003605075934525597812650541558254567772979650127424579690128060379003169494809630425650822533218485123565700632685836639324012585946409253814486397982910777444204715268802471611021536483043072749528236276234374942179608118838262679703551696573477480690426232205427777942678299589150049057365146581393298950334398835370955933733594208482699165684851010969372874806206226425342241469581101735668683417816203810475661870815956747653563383674744698053886719524106302951729902339548661775703920274546790239185603159927334922370219502591343778965910171748280879845280454177324556886892869033279170713030336888926736882492341541840897789557058106421966612653215508779292308765771465657896410205171759646682155264794208904516644460341660803939152675953271002849681510751904650983399783477142623132130847959064282236188298527549018360875514268527315213263421678489386429408332507017692284028088822688056410087328389820325365730156841859041045093343150998354683568898672978959034456386134368547234213569697369602579976957868212309112022188810594325340402281706333599990741168952523467463481034808645317238107511311170752324589488247974904258325549798559073609862839037716670744763327658392061359073272312318666463818477064729493011762128188417872843013566781466105026266844774402768792089902546822113311141064344011482693508266417527099876518009973108721742394256760037137527573728566943625181483896301005633764664575802380205749455859887573927822341057433281373085839756474237870467598256855148912277852653558661157534025830185290585830413066822212938972666305989198379022519312774578767606130135784053234782351316105436667074529518780248213922228265726507706134253258863899197796439671795267666442766317042487840539709383119255400347724976030652535871442127746740060609913653313147349626173228994205351953317237505957911814829329005786021594760402077065173744352584964172585156370580984062369856308841552420800253750475185681236564891310700913940698955597580486033522703858582419889449656030312614386641532624220005098618655118078997879959642309503399231092076448789822387155064625390889832995397203829257427862364527420562464298909943263105448762872118240107910391742501485435001980261335563576443022261930005746513615572209606214537866923978668078956471140896685425700102489487401581682993595401502914856754591746680015230889806167681209101852315548004041662701711143552820673694346997166936236167589496189236927982439837520658781497280924096309587357495499293187015105833180823350494767945007358424824271650666057214749996045134414704825947873097125012171380163224225692268370583446887613849132499261905035661197013986095329852250076710381263906521469769844883614046552914086199577443954829668984067764741738509059938839050345316060916560908314613072338560742197262544001328568001822477444030976808478377588636516700656008097229099378278943756690889654710260155770355944580412101207565581289048744217490678619657486910118910698417907315981154868109735365084336311082990207219340260062387429124554161804146878876010122846201042331443149712348213172882627476100859465134515406845039458430151331712686514913749068205201353657946185309480421959469649073815412395719613133894787974082050360121637625583978517812589090674468124233520047651583785868829559136131987634626814053810385973541819113176788838379519371614420825032769337553184735740760849758574720292777129882725547935989398796737964219209713408134870919965631657156481836364206363267970909960308178856225479592488729810991875374609713269760309252522134421654716291133599119236379337808974810422380484891545916660732236789070488441975548763371054474545975593835614617403072285520747364682818289449846422950631750984861008711206344863312370581438361938289047466276020206255230884249693119534755645989679108335570292048084877107157744107489942027383828504151688146119153726916944829124112684160444088088183603507472978017470459945041464190811857636794195499839411274660143150293159053482982899399083392334870870643803744264163543364908262746297112163952549571263353710507547053723112136617557730932315666258757371964485022662079168337665248367009138294101413609722689198542340861255909165500499806023864568228287689915482657099299462086223106253202581084722892319294559792877155750159809846448419011538233911051639331671772451990522944240734871290641416598458631525492031472637423265254242220844073884879544929157186802600962384194716729446289541897566481926158635102362857188633589055365784019355268521146730821373121909619757104690468289327746593791750194832764739977479845369404314404863030697689297612249672015579859977716834518494634589271048565844858384894673705005595534689251657388513827617026655992094980005770735755880949968932050053636075363593099352819241395503908894486829990675636640823311773735122891180277792624949164592299333573954763398437079439977859381456774919204873530372305362509579947479737322627010171632406298359552187860752137266320173458982603002313564098221563818262634496834478641647966571838924635069240960719806350881535385182808047026446619775091740118099756626112627229814351930439852098246555787600751410302866592390034427827164105356788937065256754678445342617564172499044845335088043310099994578086183413477437703181337581364561402493182228273681488619656822743174199628540606518079486435106331655221836706638073917925357579030428226561681408874406480348972989586001355057961982638283082240764692993872080243741230572100237351535682325428518878775404377560385523588093664355046385378848029876429945948526042638762822329252779481475114291127270503504070927918241782772517548056876726784625054393735146882009999407384037995534029936736063639203965046012252790119194386677855027102194792543048687955164510053217982811918963564530928592048970599821776858149812983129134991242542758115109398209786360057602369154615135428269818141004136291864293178972129269246409784971277003515479312151077167144464439581047214887888494905949454651622155937117929465753471521393333402980007935566869199688241937571558368870678060576183204258149703665564075286798941593370351343145298335492285183792895736731607785223150098714971869330793773610280608576758548078421258304868799950587170100082932808453446511244589937000567070226199072496318034709955254094471881807719067394982484443401608940965444896248848124587522491904172248887053503339613717077826884756154119701336070726916226564787689784264421890793736317391823932506055278698879422639907237108959981946316446227658573111586573117055650927862430419021887816194756182029689055759875925652089804668624835788118230783573200854941264417567263910910992182522620549022756525204897866463109092733206598912062511553964727963253367478017524785861428441397580308130251885394230817966143004242696245837410222045580267551794322259291548853877007994142953790533990570781995696698851555260976966109116262011250854836814548413445045163366865970676063233382651965132782966133614622211546405747312904105475213820492539094607704016090463743214557163728370891326885361405243963600529156326588309848563376065848018949063337687987494206414997497478414616321005585209496306819789574651493627570699447617974276693879935098655542970654463485400019033503724488746344739572953524592457098965589456116662933189355606602567359498353808708487810385821475772025898612011964835514624989529403523997030179396373965061462881083284159024844160327391867678303586063083176074157907354436080983436930294216931496494189940789982640711435240027929231253659257487436468472458996974193002739663169418878023266960964173999627274824178958314653554512922491808163433172512167986914089147518095620864928218471853774296164876344259532014851046841808197215156756669816181800371739052889159665744642423696838893568007464890901859071537397372162260173725277692598677516846874972425070305862394388470015667729019397285078463628639627641423057933771486243866116659384718126491519210424537542150558369305622855289483537704601803258311537279977202927826153271316265299117084674711546706445234181903105820369556636794667944204317826120461333622055979339172880475017942257378442379076041502369870406259959418589318526330051413619201774180446984974996092303004288577298621356346105774642290950269376837260748692119437124011227631388287714047659962897599167298991271916633558133055020355660110120026134952254616150591126486775470451124679411098689705268398627328126809783027524612819948095760081772510807049265413290495887658217115208320554486288592631032122716304286807702806663753415373875347753417163350143874514276516027160763956114770525609866628855651683757695238591191739959557961977784725536116746713794419301426448295235625518061606609987458107072745178710629896764668509422314617602831496469170711220271757471916676278444911532348953321639053352029040251927278412914320719908999703122804290328024754266588840928846135593659634731484684903285267566899864287103882133577126913110394663719263285539876170907401205276347868027457109126375246640580143859726946290279528983570348206154688873930226424121476717854540029965526873647296362958476404334532199377251824375504961634040220179193439454646265764910093404622818046961455646145442039970278937590978022523138064405245692499741869928541826161410147561498576080353154720719932351558269384976902895446173512374788403557754606173777735482533501472185368438461458669152675061568416954751036149876965845004442136809893844240856027722398805023631325569577678728407613873307697991072073899451470183967488971343112040140499605384619313448111821502127445247368207615330980960538366815318056822937864258134370915072970782399511356243560640218509137639030457683546101525506536319411690479321654790767656464968285822142070124241434826479561133534947357816601477354479145448244575265085935592047127755748524086102885783461823390632224255284105740438042614982811054319412367143831738628014378401081303600670274663703224824510711268245645139941599642848951307083342163747632860227522777310143382662336350385816025971732922679810291367164044697249200624990147244185145187521721136386932955072552122949010872713826853313758208930416329969283586179781571202551785008629473729133517932308492857238086958672681808748910909509018687578751359244075714059972945606775855214723169957549930969515842233768146806248113934507049642766820442036026977120017136241772377107801803700843006594165868260970918759912992392029859445184381703755081322995149901559359984962549789299070828588836501607935026259192623221797259877719600600384614115208853858395629999220404099510929464848818891750800332452157570362589752746588754872973821230048699117954104754035490978386142693891040078417199948272571686735654831034875651261401855451049111138342925173766209794185092029350135436694743977948202233689548291051008249874144124886839070690995711392848654739066687284253283748572165505857960229787782437447950926748594665011882766597542187460617911242644046450358677712664775866630965316610525563815516480274003301829661953280608496314806648387821089405492293136902871954169009823188174948537316090131854379749223034302198286467636530942877099094112429578261004366841758674666374633551972416213363658413703595050099938617612544187889414295108253599380524905495805303525591040312013486195119453610340600842525327262221069974276243149061014354298145346018152325026478908132871355352392176858302961710323861527088090497206903909372669054319953336401486579431772338902836979126602426943066446500575389024025486549245835188238894614746214012620134875087544606167671296614908027646133956914364327226025455857175283514608549766883356274207663024080030373674681225889475785397828397183853279730982790804635367351212533812776672911865677644705356285903710118278408838950227093619282492114093194557414035203119509020187468745119699256313549543416763562234893016444378733206700909621953270328852278972156453540932511404726789100404055818922094545542545107905881507327024119611661066458735721237250957367693491189225425663390098190141531660196473546653799339928032015833822538997114869171334042066171859495742621417017174387654919926387826169147859841395588382265648219791415171150151580028551466497699608327879672164631027685043327157996141089195513061422270674248470440824414756365545554663068062957013414315470556354551895245779851025414956881982065789895436612984202790809701612940710577258713779952093264999274409748932429739350415506510709819127517883481033560789594443311395357347661184056144762937304383410325542148263329029872587663170271662400075206333620346922059644739104678657066692903925041243359307117892177387571141229765811293856453954566589233035997023084824277111200807727100526389058995710627505087574028506815953151077100269292052059490186374028743764783657641839404363539040975043590544608918084807340437376497175306174654705354142909254560148418338862865064507103820019376320298011565029960371715817265013415577687626553144596246211753962501072718462663447316149383701948835836236392476784432157510849619381884339928255059174621342550284959639496344986928178253951932023786169152162154447077516854301390221419794740553059151890050535894528208363630602072771967564734062307856287928003369158050220216543038637910848762613502002382095294675047846855005616431664175440676928441044421600882416326812302344734945634465461928281641935763867323788417800420918647223253648737087967501977387369393133101868195811412979894811016263298033495471941263715039614771490970864294048394563395470461539840546463446239604342621114687595760556560624616375870212965584864374316204336955952918502949271411711436450892614525581024284165887641383117265276120228799108461888795599603442183052659806843144707293789958941321985941658459883840587547890500421963599431196660539067208026148759625848665010092173702760836759109282732738443305601996138970888239441202957979804356741143462729086473326056235822712649482232681765246878830894198865671892112685706552052177533550996717575140955676637975916148649037434302364991198774362183883982501260844796031954862230787496021813904834123033534036718096614829204665567526050725123865457869869283188679742887718171823428908031904192883109302388107161483710073930808928604554720116407899235898498028273147270069919139673357847163207646429636662486645125542042684484360038059024839442125041147485398384271499099082072395514853317899882480070859868143127147254005754756862606696836516376052989228627508953863783853248917187102276698122800520474449158220412577251123648545668769854717235591196965903830053621439525915002551792111303441659353454555573091765718886084298809366130326642238568606136555145774553088717772833048841448553005706879846729522051237380701241383033447578367585973475734967117531602159824889659356976885569836951563441500987129169648786110575358248859591252400015893881250281240611990209763130939451252834158899780868026135036933576264724327974182397158371674942154862571893532328915981100312164197797494552322374490571902634891548698200232820652849042832613638727510968424141407610722992448428018722907718165042533645371919200420960233894104610079685307030412845989174396172283647779874167946538517320277238844316375523758424337664721628449397436321439771248858332357212217986316715741505344023534368029935179862703464358770162092527881936621619421434076253491549731894792114335121261146838419842879863961312878056446064581744976334015246162917081550409277917513544302867871364792657063269551986733914277890096168547328252648406943761369964685995357431169740986200293428490908912283824324995139964226380384877908179253002643315815961787428364276737827423137469269057651678737518948347288464059600309998268867019138352209596571440886877959851775856255588197510185878835089985812560744161531801697382621237467877676798172795410124024952735003956927636049778164456355097789057721627146077653801796874441647320944731181087163356991072519339188456513855640966586894150269943150405651640575522289440850350678152963023353316673019978580729881538699374483553517924054734926030367419224330126727612569518947413238243775146221912111667918829988545101573982319104380199554301891595952475698335421348999520377427258716643469469145659998571814187489303601119169651899767469846747201631315181219061053595177446782514920537774009499516987663439411284739007380070790934015308991699658065354999586321422679192382676602961375484524610763050782973478626330781557292827742750973785823724076385413696679875546044760152477454612237181835699785464887258553330780113648367154305304300013410789726508909046448885546337307746412561452678487282835679979210197097571376651837293913081651024253486686606880175053888863978966066572078793009413975015408039898100253150773200248554940612289730799397771339745540031843985819685698754372848166243945783025467461877976309855232495685943901837622179734599008912827091975082050250470858071917419353412255557834417054860870058812523835531645626435155152350337291733671686122905273250019603084668887920922554429705907891634958747757051281430018111178035556405654064417527379348854095436762479705137828479970327345327314425424976270008817238349865642206255379555017815504941953010389995588812167313736967265570960812936874203117899721251349248768402566835815797815527313846926041814439574511202241114494679405372654050974112548413055100494058322083191217959878585484038054363526538291635289346310303174388392836522514201056629482232500016039742493339258549306743597687134079987011522659507294392877274706729111048145545992116714106124206687601855394313649922903632775550697484182800117317709878088438853407126096264038000679836725452257501181851867190539679906618678503938242788950266925871044737359809953147813956299372995799794039554105614836300993835196433635735968218240558561239055851617383166566230143467993022158249863782186448428930963522406006129559257372862675049529707526053144198351364141692740654091087572155545593783243576680253010220865702751009444234575365158955163053219506038289732408596174036104176178725879724803110897682000299957298206044675327519058303933800328747647888300129480588011843865861401943132908830623579290751666682588005564960179441552843093387930416648499073505734023771627013720705635352136079453582674395440056575778242167381308399003853402208270131830492863369830291584544822395826378914447405398653793656431392727714808773039075906852489609388341767297083859959200276113072944868997686994788886201662828634975350269739818757626341352535899010150110513769819989446849318996984519150891219730779737091519384240709016898610493121503442873946505720654036764217346802428638131278049960204499999201329135275651642584673759263004145779302686009181901294351798394358093426900463999013003796675064686761119442289118745905862095487763299345588324929865690659183470069750541133966293031474855454844343857039819588729330425774829290754807168886372767491820571718078750220655079912136891088554534682618028210898395172458002060852491263889998138143545898419337741330720467489873272732729454592987816478243189358225578428789140408616926589920980531263959512250307544182078186611625351722010207561533287020223934136694245511606404767676750047117104367644618778886879558219577020162698191757966743273177198032284289713826946716449955274816079881852678889473320996281925575442180337341225240309264440124124784935283152005829981988790440842790487134318542781940061602228765253664479440662389967342678828317881740104745413353576456674021444888069223546461785038879573979419960574300104574203619972328462717112499921329133769595591012685614979776795375765389946686571793025292591154917956205413093642285014947542217708269277918855134944760701070351617324996770310297764668616514249007146319996770990850735210382117788191706754898630125548932157784443794603316570454345365299264615051610775432117422326334446110716976846890150997109073352909489362572111875564165487268240421410065601156420338259302657312118934212043944966649292223429410732321682312574062423130344171914014826907516319661719153873129546222233872593298231957235221509443211215882175077249066658635052874621146807688804899576330237956976158634547531118859966622516456152202519406983110618362669188870644322800101839884565751524375541799061621730610321805273262086928662215134132502052317652292380492240088084027216371038633289297560631299123041988285198459977241352877379947246913492603577147815580811282756038770809014169956336303712335364464840892105938656491635809300883208546213226943674241144764793485497218824255736801026905958704601750788583744091012820601294083627383979099183439855543912327940150032539121561896567899654197549854193753544434818377782965019545237740234539696121501657069726742652671382468628322234880660877424297543374036211323403429592530688294136540163979317077831149138156555861040758074819700739394353515811556527320363243688791242367185490508651195840530949968056785553666504399186173022040597004352295308365274007851001127304432240568216385461745501610168060746292733423596187264753522642902391750092895117091933061016091483822096386431871982467674499407703518645529540012668010766361699799359789748643558693783873806503965365367998380330596910649774046367917321154783140289382397719401952141450638080754786994700354049239992742484204817175950287089409402642888898389335988287929467350594023499169639428649092948103190147943620663799529440653245778340574284377316745712180227700257549084650279478082730815868618215234221583510716349877125193706473700965351082097912446338140859981879099586591906208709089096411438331629196315717068224334320491721938844500885546187518031035415293752418740730165864749448721734803787749176573005757460238196967227865657361497467146631357909248036425915374782291861325444598773712229932243597800562488367637052973386904408296708211318822646059800752606762039090890177293576188997445925705399179688255059894197440662172174127363123615811692941004585321105969643650712962594190384632115346661684836199059708928338850991323209613507353187592902401239355915212868995624025106798523579556514964527533625103759780589977205249843953886174815599041983142271965429326527966913887521088343743194137022817728446744429160501588456982314816917157805094821027877952373011131768656934706545152306700353873030917776442103042073583529404798497081045868991879480232572727501754024180573970869188979586613897859024483616474670697790054970628178365475768556301305705548230208492124777581097230381735442630582218898110640341880614387074844645055741072811025350093369777013232054000446629071482067410861560745082839717917988853060369988331314428329231395634197046829648481032962872394980857518198338167155997552023929404314294796283235211735645147940348537220382528203497608873339538959935762040832549316615969204400342709359859142858140296102783225522596031076005587598864917479670172451806917226615094140510083356214781190481544918444660409679837818486095412398395483616275376993504398003281323206859881406913768748805583449988448556694256775124536668485385935592514072725139330647279897456998115398034935586763962497442795537868777374484971570930603187169260643945305666747933944216513466114938959293954731597284547009594479288979388822407483576681487165926688411605830266538086839894453240318011569828659351322866492032291065566498311605082442922941505957322275906537534744259728272475123215269737729963674206126945381022806565847370155562155759986854745796471579599361478095376197537685913877644375733722687365703021309089145824615550907435596583570403593075337512443339951645160694061682866333270562689298937930616592497787885538798378856110698066045056143207115759159063236636959217004187153574762886771690655468742539310868599815413143727488947239514439462100026969632485070863920526797450273352503666515083146324340860729441984726950631781046960067958981332886670288247624309088958282703516990121383970132463370767676129843168420884446316600210753383336937169335500867045352215446516111641429415610206672613814516651318933431177281005249885549947901690525313102505240238399244875202689490885567921935950841792092890932947628132697223835511078726531488746700096084342561451434856336331872511496668503887797080920609414369946658597449430947836345123745650609329542645883308544676038386948360404507783263910136697956915188483267681875100449974304360520764205853759955057398377287911247981068844474195122695990715939803183998106042177702591114331343251572745323079588822393450524457746312006210914891707402862044762784566755816153236529067741745330868192598868690524296965769535810570775393183194441354150563487977026728297323485951458154002836084893485570387703467349463859980400283446179312383166146286124935886746552295677193967563575416368675466857774490391963910385321140719075643574391190256262518330969532058176696421960601756315269551465766167011716147061440456726032273367943522849494929874317241674313123149607244063253698253821745704867942027797847799872581769764638713416248288913557514989170038979107791667955626988591358860653765798270522172601502291641287292532195015927086768607475700509549814895152351375582640159485501212947432883252281494836561069069526709827094105557316592577109470058617815829940112778316717012257856673223362634452004506546369737690598426971484977503728179064129633032825578097888974323274964354807790671590983075678187540718881883804588818824301996969767619975974598750255056637730898122256752574395539831631489633821379678859265139283712856957319552336300323650405336843367241323067791711440243741972277875607203118441195071280668466753528102154242987839675627003085626409503729614419729552195515810222498029909626056559190504438757198984797051002361400952188553556931853724502059678876105918463350665763759946775773901168898228940226356002925713244963028762088751742260628491455630975574913852799144365484932495371266458861322240792415661725783739665746901946284905022558468882411130742609343197444023794245460398284290437383146748014132186596135739563656911079151696248044529463011303845223551538587853643998169931270877887603036372674900228433689791878278026826228910641250523686455806329415580951622284190339457435236524463870412223507942559598048963250203449511865554611376645763490326114875113400438233286060938386275090576215121084895875981232191708779107594475628391611354056783676092524181860727515793545735699178067325320229216694456327124630891036707017083704152817101063286352673801937768588264692416589419605144303171475123291721855057602691196467385683934300700382016070273008782956985104765964893227768013035889418701704915976472403056216777836038804622675495161959976754029218300827309978743862785302062223893741119334854750430410920086783836617004501693099063456241134852250546966749622495055456690733159443898498879184836073443076193919451224336098046058969547284156709425560657150862842063035466266980940799522837549164070799223710480026535362945758885560740787575922254828607296148122015892443567577474043492248235784666673170336128497763093049936761828867879995265870919359308341933730426892179687193547994842889702338289559455762244769401441448669545542840986928541362746809213130511728295608761760779953987074288137899656996175807745182257109261295449108236008758300767204589938457323872071728735304847398460370027845792069672463666026439144312079089972829843341374530664452056355242193659297996060307366107109842754766503931380843352800784101024283570373477975908589721059232422292857719489396384721793617893189607847810985767108938935843116362774920231988712396673440755803780465041467495029230412315660712297058980251870922138919614662944836659145867288025868264436151710499145464169419821071854517036175549931116045795315689562035321464394143992465422771725505110878627360945064202896722913972516507385539542833868728569617825666595302535837455337488160884907261592443489749005773032365417512717494373284616396975992183429042159792169372257132488594460195686388444482709094954735925047572723318166279757935900221226791206190140132798236949040391361977436931150554135025301802338032386022700142851103827550172891965260244410993385121248856371293523723896398877500412474137231860403939597430373333175155883519842040903978465652623902983548226595188242609947630762013399247116654864426152758185330414333056215985251988821950335176556244416242379439465852345478327208034118736734866451791428049450795276631312165538776609245964565503822002490390569532319102800690180071065258255442336114320779454612464000961854832412606211968896230652824031769504329475532744171230973340747351064874975081587230778172089526952459647862462975863758702203949595668427853178690424854979480139484391531240168671743598607349146482127704038408516382328568951065893776299964025633115458026831829812172769540357452192022289697682632422599470756297393698902512825455383228982843114426320973089303257685313738672998951020902470692084992264434824995930610571134622892959324752974274299923019456266664102746730240743251128181716847581946453679838065153477934120227247650417216921539670866931047320099784974744585753469420364521636528203822608232843549024827077146709711147263118525024477865585096287286092812724047026708859428526632808689808868351832460400454165880958285873837745213700293819189634141447988398467050201925108659000470565104487972347381865756606511133198251860862327030874323444475483009525805224298913169740555620383154253710808464586976376657925334542209209684394443419356489226725356395272988973365404815782913893043105961500963737414372214794850078785621859057162336957629770423796943208244134918012810185368968430945890868906570186143994808456426301100066963079938023623501565985482849833985970001801372232811790258676787694274020706735407032138318144558207646212901106600090068928665865858336211570798869831415662469188468997719299028955649466612611908925244578181558329370148513200232370005470401971763307880034606600126366401023920195963446941334334285185474343419554535841112617447168949277184783295668276582879619871472890308924788798867351788736545556131728844913508952878772698652309326017065654438004245119203185786669657093158521906699992070296732944461146802718828004453604891861001785214894304786717193233986916345827285840714277067976614758948769316060231845043666407880716479793747052361013995159143556491058182115189602089248659464940890814104587196054030990675156091463719858684551907223838335165805461215679667036357442828839058218698344222043511450297196734600649976204593330399320231402760585634611017027687150211229088337787346843852702412581146393727045368355453338809625316220838105286497107580566165934256065524870776380703262746931478488931640971051912324728961267061418738292816001779801107989073197818720482178838399418837018781733544423243628478360261518231936870937121717273683193431427964807074311334681777620508866089634671509970816208084485684801229221837477083986132013016450241219724029298703154669404301327301270971080243363578494165248872830650717540359376279218049323535726184594188507998912199025637889952260813611183749919439414872780227375828204633601386271873458052853092503078217805224709535310081716953870766393879642414535206075169537179662284657590234586425636181420802483841033654249305939500995906801610547360967821462697718177408284975584891849216056800522400400094762699792783413296579880077495457268001279127397161974379519546207181019411378083147485045522530353989082273511731075883282958926758120827612620801703753254571414247261153626316563959015798226119706030654384534438994081682419060187649932093295467801240259488943044846492482180778332772658351162512077355425389768128063018133351511590387870610566788247002457856370082422559471994924619720539522733791418934662624297150204856503175062715353140503624229210023504593718356191171844446615290301660318890865241226662449311941570555111757719214674289796849001213482355242987403873016936379702136374172533700721695756083771259186111869102796450190050637954943651158479748919666635117389299257410756377335285813410909367843316558723279822218204871891971574163163652705314116811715388392408381015158641023967519200845915215093069393107646242337554407308815783156146960951706395561718266321315252550551095490389232093772218095233768127953989937725433254173656427249704095844242410460949617449812019500873899714810693219513915241440285577558411275785783117597630984111177648531879337270460576213545166299914518059719548093708966680677234586121331529193359422940844805452749051602792574312073585604041079168413205049914782414561628408386903294079773944350026389711292399356660664480144844653473773691427938068363796032279181508513973078198363711024747995171828238311949894223381334522962642299621016659602670375588584589618642960985696512518726678349408852091889764979557338257096682482249142739709953047190451706873927218270449352519413513705048229163823422693990665404900273774395238331892677618477139997494997253946493278717520964372216155007324963708802608133812655814922474595850023153224330343355580346069372429587481600104147181331334328321825481635912117232386953071362021910365486080557549243506671790467321274140681484148461473824017121209358098603041027799459956474886315457703128965852235070982132130407503412603889066526748117592171147781403399037551120396858595612761164072800379968329107315516271349717118399394915695990202434825044134013621844112354409750286546314790229337043541799424116484314580567840336585675710688967854006927959273175668311536716873127053507727075135361515845289419235525590294468608683904603328194234325576407191499365851808244195403658000139702377519665346782197232051118834947668227654324805600318510638733622006417361904768083312936636824888505285249400397281754451795371620144128981080516726576943980947932518335565056942171969282896932238237308991982822315008319065156506535408471620230632109386053633494028585200986767721596532528891073367477175565257553916542770595669564933531309013148759044937533462823782819453207983270337827331574724438735614077034594658637692241072230690904025071562223662276816734069162373356753929809045768664335914631146596846874902424265445763609787298432116929121845161255811472667146888108876890889606480822725450116638231656439288292360574431028543746652079318220969583706990286883191442218715665666242548174659102490635367591717172135293731808063711136164681071990227503121194550998540508393610701621176713939917677687161850317828489402034574321301052449038048462925472537255156922580864225601152522043906534734246461444423964581881177735675931844165855129488335189989774204198174634680954449321586221595701194563332552303297976923202516838208227322490379425276875724046667397207489216411750248390094706005074419115509271933575151886185200869803393993281689344950529283160838703723306839812060907946615570595190469738113396343731885320989860602150049992135073551496394883190082813491579448882078133224090176719077617623474254514408136078541728714726563307878247003411182326236870006999558035061815686446520713788031797115142937452396794061016874200343888772166451480633534465832436196047892633570521120208429594477958481945689475505461986672297327265735433934785632060504871952739693117335197871934705386075285335053604856550753589330140124703688561713886225987352076024423518413334899225968863308164234175171610026550855651857597174637060599408965572121944076372567022943796469370268865931934580014760241464240317653267901090665646212921950346270440052477294628651078387787183715849063769209785925263681365343351796494354132908476955335366882759467043178356556240249554000178140370928280297043073072214582508029474243044056810079609923894990362161336996073402815969335470481333587645372701082423083757722836052732060332081683354468702832268831262848004415273491483413932261288751819091816890723343739179342051476996767748775232375943212200410764242981808522689637814348073201109881570434962420515360196523857855824563438686910538049471993840482477462385633331301846407198214280850717378904531853808799044091701006392409877951285995648763435628112233144264295420023503763149940899845656969693346229988220985683120096048319158281521506198823311551688245305859194609390916380482187691744166092225536424714444213558661347911231608063389227890634693279984153885289843017283882705062909273030576642338422278706053336698278778316990960824603920050748483341091864025800482287874231417095254963772719841936708930323840407430816027127762564843825747483867120008221686323015273172524828423242506552928392115279846670300059565558978746215602356819802498873769152093116606930053181979271041007850080634833618575905966461504171858385982723949076935646407094953438304035258611064215143196697123378167637442176763424480400261357653789028552970334642667434410638047180655967361133690958071661738157781532366649214939022989617390030870190914476407507069007336062436563084382880423939582910126933673753950157773446577922429781800754637935643311785311568058470814825324128171576281864545043860222682431459354013461220232026077740050242417272649004771113036950268260445625034005333376737117442900173736341756468383885049670053224034269815501486809399527040940784705252985264924304627591654366285289604660831547619224713370841779364968295551595551545461516809415316511886782204091744720113237559411240798321281717588728747245754172764722111192756191409090982846537115884924136593300768177902386922826397701002291684217136226734055994633505146192102841293191878287141529426269985765198829242030449885808179594480401873194978641632771288918555388490711451702657428108003337567962180259365228095929353703477372189538223135968724253149239164849168510446199531758651282515805805078731966553974203658918865453818856176622607648473040048702627618085298728987749549720473543389031332419801699678412427703698988473038514027256375598390433223243327110896356568968486033128398362568942955483759364493460955365571271962598921079742393445166695175346220582503795025246816584947465316345040609528738039817583730817832093949705239737051622345855833145122360505820402022465286513882152870818675525124464969037023605522159076822869224066642177223181291060615387579750269546940471502794986130907043592492010123880952094586166647029341184232694683404737451340344955933766740498739171720516773850908811953947326141064206242511125241329568906254863457282306604033509862556550953764263629513738812567608798915348890806396355835468517476176704260165591070190290936757715028455867565850117416440944687781122622689406022980500703414638202594600287683117007583859640040171550553270724957590107352527654090052473307343846739408458148615675722169141605524945403922390411281136072380278164172267646290948447281416156113117359660678460026087965122070772051639707004335077793503073741245698754641535079401384367105360800251943285508275427690957399785871347515422427817600091977800574654552985173340751179307580780476317812220568160720080367048794898656514399231621813030847464662112522115125504739456280540966630098269364651279912890468453330167835608588077999369154266512264240067874773476695169778146115415219149087685999827753294011439716604865164368224478452173286180621312168244132633261062936244664361064854743927030171807160812073909954689721913171013494767083882262943343711747613258554061315312927352636055612146998288885948230125413857524404948642508637742270808136481327787807686220634584233752374698235362406043785607352518488281546265830240897826297624065840881520486404972574078496374548431612036453953064819703442461968716551291185674897331448943116734938503147071040520154044736053194142653754006915185974336004869103537543408164512398282165841420295466818332133931297555110608585235148194559352848384359561160419442544352820218813849811008692816835712096196757294948734068239088112245220564864132515591216472240936986708512524166522842813047477938892220173607306946467606917237538401152952268366683463678718161094176451651592477533138954394505653839053144397159046454866592093759782207799105022852429421841336272260105706537076508666554104132195549033752401313284454429414389165402505942025176069762951633753507929344500064978884362861521153834889221753428452935530860528979112511326291338177666785004703805868312537857888715972852579956457516248615835220132013303472685168206765273725577518589115598412530364268314622820221490353819012719814077240421107690119317212866602799953988210319900394211160828999814938256044319127665647624053501674964201101005571637289745506830359241424828016599779335923341823824020602146726863345498722555018531740889781392030418095916080858713593808448670612721647252395836775703611973905783353344552690356487673064786852276032700977731011858844402527385257074096677210011062672836986623081011227616588835102207596027215075202445190995945273438898927352900304943698045011271415093498147428781996819954159397538065532473548545845443582910964155809851430351044621136531809294319825123885801875473248398543218048836846608782440530236575468845207413925012742698942469631976873849203326903990206027041139520255489575817736254602091660419388939240463473642127439386994591045349295408996392470527709048669567450561924102013226645072181920829953015308674448556323071285086669952138070831552291335195491129168814729426493958106589080975740649632681849814020525983774189764758381486852631578962279414636510278109440192591718082728335116979451376880661014216299729245642472816094062036926499593092186426747133311600011456412698147809737625506651405825478336080573467607760941717951380551944336724675903993301572893117155265652353793674396913747111657537686473763420398656033501900689519080097656873509074757920403911596703591404248944469323063783279009495946994191459445684721077931967032663244622836598282169061266736399876071015765704007720088722068829947168132035092109446128573455689684633419992798771800777729872461764483504193682782264222481338527578246142655956257273646387287885745098273839742456932076484580020261559912574691812843326686143964908129325990363062820421094109108352618990704211926983943571644761813242823996513338841467202398586634719816535871849545835329508052321790702735791167533282926491484857728499501739925255285854782612480540766435314127584829011875272031913139730813954766497961057290397513296109821321791526699905522928926108249247066514655036798081358273133794080247843278565391939588987569508856846045892923718121439577570542108323896993876449224273654521103865726481061378380798270440683869459858145378575890476224701352705614495186651066509479238866743126937045902816558813115863932675086400804644946862513545481856741144918310707042262394957545067791859846249464885537711645953340180142507588262856682745243829293703517110572045415287044416480951409524380902209057479993611223037728199207322234269307692021597671025691384089869965347023299487046594450926234224790223058797985171039604138153732050402750856842821437041968061012344139692750172176553805226537192251781927607344970861921764835083319053643951519555250722903853357485114285440440893860541462783600707980369375633571256439631010398609966371043324134657065651062086975066224099659979221223623104199841089939072329247382823529017336197654142513652296174231599375687676158262521271511593125157774362727491577815097173696645277368373575711131910159052367017512570671403992384523717842208088584247676897501167500593599846839581679526040421810073825991052343881313093606060630159500367885658604666556707017048859494137742528560760213890201353490961840727268961133411369066116178206491654366908500957999873486175111664666597150452798335393013273612336749192841958693943620526483320745866725890381680260606983490450683984562734900016407711913016430654233653619879372731083804744427875476936077475374507270003889407205774479329306407076350952835215925982387134775748087686847394259817712629764193044134161790722142194072746396954064502178036694157223482712283883451708558611995350364352042058442740081442251646775811136515996567044005971462261601931177656535773472682625089507248883375086992539435390530481416993327202459217622891688200128230962886478326242676816084163166443591078248613562355292940402536899664543595644648771339698936220710873641928630032257959519948708193189638010129270044846001795322899307153927815869440095006011183852250286430860943555525028831583764185471809085032654202338784117415958533951573670478123297600156260596857911293624341398077460997893770751772031508604624908376681352717939822171576382858538198200231869330257013923928675658449842697084858517051247988311396793160254374628174674091681535275961593773413905952126198608157184633467044280327082051087376538703762325566864625225805485916610189962595993281735954002941116316872345303178045336788408706341145495954262083118362978418497580500978231632042132928581454967404784928892343329122528011102139366133461151080979836396607320745802423046963137577257379363340393933855824882730840715152835874587294471431143270270809907694589505323862566327773755821470746211319502137937045388834663934934628302620793450285929479087436648856093138952103961059901545663530168522526285376045521111739975741041135717384917453995500634171093037225008913480382828664478294487051473887386594517618661511608605654141785386532556979474085879289378534598986687394001375960432658215715100131636775933527658905586457153203163612335677367637392640977226642044747068873116183546099072123680983246089450588361590622177882535419029791174553629210138175188530982817200404835207799680440023882122318895075795644603494562148034822168785658989180426519649366507384283303922935587964207504712309172885906088489613869575131945773746362933909395265191969152258309340236259540162141770116600497672575605216400999375170048835925250196415916057148605210450753109446209330957162286575169001027701110619082607347346314958829380653434699299541222531951827989474999087369801539358875784102831706792153519259014590755582541889494256528982750696470637198458689697648497191490090285035817997861057370142570489616700658547491556120077262640429451253577140875433983746566922966633841406479355304644861023239348305296178505394192740985324420050556544191407650215781163982872106374815243682280538563086706292561314193949426515672419435353379327198958653014971376314865481716174018429507071380764293833017617379749450699279359326541420573988597646101599602253201533983130435864975505289317965387643570828006781827619113270489830133092906268671692756549657181166942626362975571363830946692744544642646283190864732383778255289504372693789271647560361835150987941404385886867668778210627820694174313744558837981526950683401605255018851840024258269163388442761158488159913389694659680582164259073448929758204216574007760088209457425932568001362272174010176626507366905919655140455665703323778764275826744635114324907202617067494449671177462253831601289108863491851397030173793370451335901426797941598149194709882409375981342246943295086052105002952752525426013078181819008750993317201086680322225328973861921427156186616402347131054276142873558714455635822446775462469289646896739905010459269062298639237678451746060812095554098278780456992998694800244578126349942492528586688084909089353562032156231490065557146241683138914838071291944720878819959582003152872573567450760583297678044224234528392903542992378061956384095081102081220400722092076151346731895961054389166990627762602780756642379617128747656553105422066177478602465275795323880667379420083220038531211772819486740636548441288934097992069255835644546445777413436743957589147903129906611343238552320960226985903265214791143593512387094705598303115212535902935636264601796607036387205565578273113019961337593042626712837034421044511011559500177963281238763251534660578504983644976096719470872803567037692541276208567959147114229465659264851005096782029433431813076190093111378768784024195403428831206539986360932015090546421780805920863599904870437114148274991700691884807522587552367399494519331695437669577944820814849247826150899111575858603539230918053791780132924632893046607469824157271938102439362948331429831879980425548167516097594943723552740606149514389211101453361226320917152394756503408301921115586808148199677799093466687170774283458423818497020115892092848505164103456600036643525031097920848166804155475993914988191885692266626447385783774589979168743628030225347243607221301579218994207658139637070814539652113615478057119190861815949830949444879006916097589676367437537479826958144679814400716153648071796675978549376211027228345975270316370994688192282072115573263383750947494027335887593296618826888742277088101079451557635864387876770667942606421393746014524259569961774154316016455049885598139879271901636378098933646840317662941418220616207244659643568232188971723898418092267496158533163408980832509076783401000694675738609020317741483030173609124547168109012987487543735753119472351631825809037270950111978289316469550444757503113694730629441607431982436409546157062875935038196553626275698614433003409627783729827019341021336855597704724435120030623242311163958930333683568778200564306977622115663618545784411357877418057818914737827699266416381566758194547159018233414699315342772212773839099789962338906239808448905347107060639218481404469221853025200807840280202199332723110898818157670204596955376121651239261274871832417900116669220250102975250542752919260412521267427493288944694603448871692771709111066427062850478076888526060095155237020682616410229658024624761052637086188485284872412443436326789318663184407990267341647228258647651824419795260255662354810028133485022621949425812944019854334646083755904187204248255723451422825132597723843594832645813211733577474844339572039037757291000469982489960533576892775248231066416330937801064750687138284617781054239594957939757349836400518556362134548941275011218809967018685588669977380993849069923679844532024553459517059792551653928041234858491410391983099683468222728526716098599300741787732040041321576166041570283706827666434504303391162912355939214953008401001932314904542000503356245456514993050466843669732298163403226541018676143426310305241337118531744800893284917394716948733102025754054245207169472007860836386796557618232597038795897709464238042179502921097131397137633968576587124777938667923255003390871355806427366384775050128194307112228311631781724716080554954636929316665063239875466037636552443495016716332021269128737060703958534251160029903903890304112527826305348296476057244206789544198112020543396152128549203451932355647795792739416295457686619734674861437099249923118733958520070879993729192563366672147253724066412518357047848945703298499585264183920555847040190327815451234926953442827856542636214364826284591955682243195345512469936137824116471981616526286862525460032676758912714328971573131435419660596889542820808811546304190109956897829646456880428475241280852173557071227330822997677593870892878094993079180059357570619466297405235297071152777413800047470212192765294063834804294881565263128235960409124919015539815569289387140602054338494810974047121589092053204421198029774794363212110829877149343091176074328623663287388861195731971648250584853406046552726469811259372081503023550352161735757218347534051505442627955973673683514228752613514898911705924744718862006698172450579550132834752364561674885367740250135740002228056736731248594347737123486661572912365862022517908073506912745143885837213023173852956919744843142678273094969736168359618589457767923326477815761957708130099924509082130888315333991029688469114334470157154745590797891106187379698010466352841926790217890552548704884137396941964368880308931949007635076312592739964486855305917901046895569198969533366924497814654371568053098468347719642878026429502858252001934511391096135877869856759943708255650003274628716194967640845157193901319132101142157761887854556794663010176235777859224980772540765724051054162075466235213889665906222271128823716990581995868167046198058108964684258831242061429667023337359211745843096245468279924542692733478492341968465715517891366185936198970632089050821363212588807854716804974373332373780011458618390237122512257512267689097373846971515265167072967536413704106528178637184485660767433372072256914753586888276222620187055259537258052904781050120136587151817357571293066138520924129853748717104733374273905413249574658500585084556060420830827008073421906280267944479865320490590411180979374089840613907136731826039568324731454831427063030850655591418363571505904034688746971885051893676478353311223794541635838452149797776473832779175790902909452839667290125522369477050624084181301235314731308622323657089173195249979297199087823837802661122913837415775493986307756701318696807271755560408539015103919639999652675170142310463804578285286340734113304649051985066670063495346420538923426031185522884147738799360479359275734708667812703364894407475461807708418261519117448994564049484754336762518413107262394836812172630801817708701899073229012531321508185341170175219428672848822673769193319035968355735098144207535531354426306225129738754034448725486690143758544797384873126285183983204684509711707633717543097469358352204965553991714409695327109478554217643564209770649573157268036204002076403030469712309788955769821347188393829481970020251991205599356637750865848445939913351837773800956559479746620915609436491045580659561872935757022480035089555146694398616440793713003699949407878044092223114319455794320864550599440507823373409339942388564420233572897899513488182930534935341975399919356225475782167302346819673745210595691102109725671800828673001820399865491362445495573300319775496251771860200200385792011683561011652095892988380360865982470447820344786239557577917920553120830676173274868675242507070313309920989584654863959227774629932856250169757692995850311884209152977248656478008726431766709588548501905207486626173858420659084873447617445401923271461236287532213182521273472255887260032864174013088596575464351494715129453384042486748005474474951374100978665316268545373636160704937751948713241573960864782399732897497713371535216851798605610298300735808541377373684454629662057602277674569327640702466190604911348876875421635346429412569369771818950269153451026667350896041192582112133462901080794197647298852115868785371367700474417759082942595882952917523167951784775833963968765083036649341319116052909118466076343050692771189304860602197241845208264905577749686168825088250978874915001569352932956623266108822836366386243648768243380661757406657910089004033461690137448848517085353560726235310538450137644955975676516082073031609539387100324825617092729845321360962496744739432151187517804353100094529403836883274581686792024881237037936759893735353544159186697087466638766361632513973494164125916982335307302264666901136352217417991194939829321384903412556756524845214043594865357972142720642864588716113105920004957898493341798978940068842009683247047973465785929628627283009961377513415236140488497739718250602126564490692987199544742096743933340921557083002175060350100080635529524365306116428157374338434170302529054100844058137761249224347567800701894604141352699664342658227534667636891042658110165668522325942158215333485590951780692150427259552896240365509589450417948513034280483805577743692291785922520928637090723842444425447347697221694590449615149749102911308266365044416826578087717258486378516976864142599922218173416455085476659068936749510923516118630528233742019004434288332434954613230584459841037712488110194042380694728637360609338180400714364425139702822678653567849277055783527236930987878391347739428284080289452234703940416242914831700255256274022802779633244656541136798876362991659474899350009328576917421238557337597385851891488462363372814606250292960753961170458023227454875518580498567526823991538716592384597863855848904964112584844964802131018609840842562708867374210664404521421392314565489865367074055445201200508079398241740002285125008351065440983848781035919424395039540691621994943332670563958013991334773564635200203453731623776779881110269718022861911002615338852091783890593053231767027579315273344080398550703660964348757369181971815111465506245773500460976331445328674899426497320256856790627100412290693510486508721644945819834009634504615209005774507644080489732855166128057356720837654674278588271942820831690743570318357857380460330577044358905866447036900967734551452522147613919944723059342961105424652098979202165659917393480041473573643881921275836502132539628180637550864500091336753316716503884801774083578654148733436364344404471142817974597965524856320123644349723718677406111945700929504662648414585220389698451227464427176839790494166315700631561376167452888650939705805049769856113527872184750411814908553137040957662731282819854087232361281839843082844787813190565896444072643181621334325690976166458819363849477308904538623091451641809519576941948508446828056930664766439126595225752444016465397210030479209422856760443648312284970334011996258646201816234125770957563415172113208233222933864081399713906605156514011215414181858446790087032941755881446906995327277829513713093742753280507689335051471091086432507934229338778114654190652724691552837527895029089039553473997697604587477207868442550689579896471537279241420285042701395397284031626702601463185660793169686168836201111469683308286117077591893480977490031984094468596397728302991553936627009368143568425234599706288464374125839353719888653487151378702685117688087885357332851177194888667526868116213897542713367145347739646871758596414731443932484844095405861946465403262439888737996878883409776947398881041758336167860886904019485947349657836215035284575048114473935976526056938301669005857635019971443954985211080667239254102380664674734413283832701187346174065354218077917134920694073847466611796581112057882209885011025270601221326676466509683143095355864406688037143961725237290211664206648261115439276284742011622150111829808865443487568726777820293359141260909679651813127092920398909797136135067553310668147352715867204739954902914398817017695903452563270481565799420316991828897906263026978760308497539561096553781388024817743348000316362531599750384210815345023893342192113432671448030800987763879341743630893522069934744498807834029910663636742588156749450293734577438902744616977587285103738597966414470731107474028336797043704142787323103415949318294257325759634471100011256055497932103374006926229070240311004081408679047301268251023295333510960639513532912046427448986732633657155895114977839948648570722546027825709138213648634540644668933163703972781884821041103239386926545104785314869787446898269312794275223768023196176045688569297322202473290762995752287972705043037233455090163469578213523560709735728624317702668521196433801484346665969003785758903537099837800955101628970632435922774968542951855880904320936508653826330576268551229654921336468828871561342590009048912043089391993577054998374979027688094588944079024681035134173354342038945341556325217351780794347810845729145805895241206249108297948031596140964548368870366482525741476392776537953886354570275368596045491207013052629822108835850153369278170040583059283374539888937688816535714809037801160672428093937346253639475829493746281117585854167269372398968099577755810568900458244687553905881117766778682625727959569763390217388087846777115434445184209436658076671181789148406317524768109419089827827338192950064070281491182349032811911617542295069307677295248677830216521722634933387263145262481778742017202882589781145931007450195512882129578868448159719115511721703261072926581256094821048411398232878266495276494057704398267922444180906335782042572334225878249039648770758598284625798156226810785010296302332684752002170859750754363034351046710446055654194556954252697566773224990275423772006307122391461632473381108237674704495917074782174618725180865382598852349386424298307371190528482217621691873914698645937570946640377403553460325333496859151173855939563334172778542097909813783780398463248958824201201847157089621572482368614749575597978906791821976127733634935416396221823860103495980452563665678803048458256713652503160311851692315934904107257402757133007932084352641655219144942255482551900943579946388076774726976635200317699587533517938865296821114724580851583258724450269150515636929533195097872983146798245375158008054775636321460532519935105539272050416360362183958184724716984184157948272453010061579636786461667762729993053699971991440175250311888602719748249701368610367262184373609318380750702862931173693208453625631845058677253260764462388988433531829381771699073885768166569678700171204253443304012849592836684181915374292841302497011999517432609861712878234389396017473364582241764190754006987327616617180217801534580891694507892689651295620853312227239690939349374279704958893168204576317190407166210930075480849269546727555823139990002119330882956640829476902141570449470915715400679318054503684686350860717117149038681165993979505783242081654716564349367559245561836129508944604394871885587898634355977360627282325548821881392039174373857539346919622349783831074007247534756535419681912236165275492292996010971203851312482771480480409699561204487806484439032544602267752601811773383933924290283105747168686126155071622081092137898362831225993134740683185515773779471075114568773156948205622768980485785329846991697763388473869629072315327547922777178612224531039253395835852086685061669312096156498145704198873109698913587561469549554435939897214490782281119548301572043638387599919961925664014593506438445055954487566756428876301520018610520776633931847642731113189348851247703219015572967927558908705953562731804266140519763869575950888076228772339490004273883314367426127330233001734811493082914461189218356242868545858100744055744659003352465485435158461209335412027333565543147410651305116652943264338118353097757409588067786973807316267326062873566729047762886948472807846262838226972414430789951481046729285951014704048521960753336482426407316626189506990092232743856043921678749167984872485256639009826321946681524769415819534510021716872622780226607015016256863264762867932905675425563054553723849111335924887028048786011417663691756762853650058026732783183412098856038885324666045238948846348931805189736747612249988913676479468360611687833446170290374942507974643801336046658464755184772953788345873911111271874145131607087841763831823555399532372479442509278948396293948620565565944025403378875275852210227346105632091053050215058525735945476401247273792669013496843858416985555637302252011307252266983079393467662458532996549125981513295776003739603892116927189295951705610788710058959069798172511983387972496922543081297862296882113243310334456824984453333663887851175240822985570269838535685371084476934643845888885783001219830405471912756836089130475006147887219266734903715233753685418854220433679857102021399745706220516242459580514336546548313434346469446141553358820133466049311324332525004662049856786986786894523673826875203889163371876896704638166324437572780860795885215288954240384937749954416136831489586197375417966950461188042563334748795680209691438653098980747324242609961170890394557203937821940270173780119277384982264066594528270401571369187019672443545494026035413865346557718904957716126704754768364929525379861415017179212107791521221533794143542599391256672596923106153355183680914183569968605505596119362434531220449603991112648712749359733946965498104984193559913852974286661299468012251193032754947667306218935068363062493919444426702899730230286843191829809622333100374224293300808870830131589726411222886829642939720977989172488255850463252762527810440399553395960228429518216132668993115409875029447531538292201797735999235903711219435487083841576374900042328108490399888101287660361251575313819551696550503954071297933087027547562519695428720991773810275358169033082087673177970723282241210346587595568591136812047675546343433549660713035517883703298365970481031162729565721683210040822928832024660291655377001491922398931580886457683931546734145676217408063702628257911561594509439055928355768733457754742296557183678279599256898014222468417774382151223548546640059798360457805980719308047867971825432317003884178985135461115699694881536969284123435206550882648586056467303566892510463920444275019663118702278785345111792757306462857180128285891893012871650377048954377031456994075318566606255905758322034424184566608530215793596123581707037351496644446601225292149740983208719039964399174529659250650429235189669995711806252084935878687938459673446069203740425138259767204813216409629501762964933968728196769201851990337537461605083573476657136183261920135356945729715496169651258437782192270451751310057284642240848226400742942415335856179359460703359416552194425834223980341691563060200287123242854781679560681081216304055705247463823210473888662158877651006094200818982029196342024518738708366908247888534689327418654505084537684464819883308855227505423422293991176544257095196534066836765297971756658293959756901819575975297596367926846767923084091331124167597136360439483926854495566078520129311349925043439216848456749445456641711059765575230916335656339516773585492306199203766959795684388540313014341925077931120840125048060468798240153135030259987942613394929595457783885017648620568154621976970476938050551392544267239338224310715044308139839759787417910251323232243505381029646158336435888569953516781990754287151323298046113942822407417794510097132746252468262844180880940655176438306962944422453793740047812748001991448533072713063520324107792331329691113453555716148772512251121457779864253475947923320141441723702221650467083413302869692411556889778701448344300162970492911061007509200055814020306853195797503270307220965714611127280166330182577382163935825782930060305430829680647513226572011220183750081185990214938792398473899581792999951691304485672155704990584001057864321530711813816423635532632475466095995103900292478937812659532743883761633673216032992436770587547298765354807988780856109202769534033314632182165182052773734478181249734154886257405658976416224381139579612986241690971520175361757182002777801248586685181283446189947864547292462953563790425489711309666399914312432740500848562852691726441790097074401601670687610325785307028988966359377779228554105541745652851396971446035358682602758113514614769044001977072236698979549730398742577822602423479739792796272664286852500066540428766532060740997704607171136734912072855827666952079969213357765153727361141969127610309207456684243303874055818634921985099072751096939111776300650929594001060378834590199001636254151834880873637660618808041561591291120553108278557026298287031847197839188391173740942766900358461861284134240729140302597517852874626808285581592561282273049161546458937582602857311476416413549722138924317752088628909049840449503884019833763269824221669952556328790851784372904705794537186749706505415196234319200757901526703808622257053841823905955762001579090644250266189665181897453664868334810033387234615149488560150982525393753284511519795038971746178943055863601338283686003050196718091734238364554175501248313713559489834590540721908197673773890220172037697441082222368542890424601829352044619778136002900488933381935059676595959804910739377768809479422722895793579998205911703910984597714696865306907489492980948603605411496870197670068845657588495048033767054127450881207862099103302515691214123985821403256184989010802089266232300522241579222784622004863101879778307904421203819297702853981672881723626174114855721210315396576908664289741379778271769161839378932763579007246698984946743342500085985605406003921174206337431237386475310122401059899959382201240655247272029556236785244350155152385341060172861153030568594753359205327856023690412139951047351340594846776089355228373878812318972087659875916951658658893009477955914131970512014591572341310718138894506060426593742752252521115331934263254584268625227440946833251138334046036606119878710451291570942751540430679746271689385453714015445328282120517172235072878583659489349491346329732892162741071457261504797853867673861578457555302553398529039801833439283951372370950669616730554571132566536893609959146029501114097817653466659674904574483114605239655622424399746447166648198375734221211979973813191441503972101174297748563811072709090181422767457262098649459046643466520355831566993773603369937127127739088032114004813946598027392582545005315882844722941698345729023712542301335784626524782076738022698732498406290427103869228623248969376523031557391228316129088771164442179798510815282647281154865196632004776278308501371440812703112388471719921244369824866592975787356957954617656308963387476396720598461926509141928829479438294968130898871872523956944956795072869427405424686223710288788010414317095554384658804127742874430331940273722796955828731429646655588913276128149710338372497990676315050579425150770526568865537848431994113209684203024841250016539372564805622109058194569306204681211317473786960632110699490103686367294177487821774495520585105897485113068654297216737694121703297256647952060637070331416418219918491028578917066998315993645434269179612216616419679776462347719815132816161088212722821355966137991271623764996943596178952966361578876542042190192978628981621905833259121247499135246155820757738931861979180315628336925412725716265122484744503117149750312311510071012270127846118357120168631382538958327512780662519981774740675742383835576860089781407172980300879336274902133156400300092367470067249419172212288001067361156812837774424452865720976217978077717616413640399480471667675709089704661440661585072223654419142111712500839448267293412420993857321692227486413790142920999894223665663373285400472040340358857957372876116405403514275745579621554862338758417003519277607440117038937853338533841762981037504845453051139753705049390845647704407000236463062982371076735442304605006986301523525018230820553016088345305039433418043990164917108924945023086422977595921709908725503563818763508204216085486948519989311625755128312125379346013077043591631026102005280611588898621497828717713878835541250023598595338645969543922814901810371516505415104716086026900307707640710983067554841450681288309542756686595223411374609935490599696846168477217422925049512920200685236407689018647320698140003543579317194508148440751921951475357266871129252229088051159104578375541411156434429754917123106221172811098684649640561890891037139027837847978221282373336309915056414888671142616371577807068827802023627767834701568613021488302908881899730790998422070382884703697065092890620517660023432722841077577334491646173200849400414733732160104237624308550203584941720007318065280478459059367581415771129068015948637981365927998582899681146904286887668880218980850454073469262314364196388422403472879474656910439228515759910558599060069977300928338663723855066538631495026834974134377790713558154228068179512820116496542572129698656722769324568579504295421417876232849770853473500405798900683422070240902270802063713589913783856107462111217991227587652146197499888143772065113622342959548873883743993026832158068372290227009733871583693746696920945542782184704043485055162928626180017892672859266393879431301504803407122776239241723242784969776605877098977024193943572302815474116299479038994933579155293401763159849642998277351029659432644186307296269612700622216357192107337178982715485815015449273602113089204610844467447801488328593436117892303958458671682325821130944327980083412211140762188769112123840734320908905352192604582752565658770967125630303967373030115653818573303108704234961058216689514074431988700247439406678892637881366716102230495840455278203128594832070682554980636559166173833041238810744752580396789804611401966395338877886639940202064733399411507029239399002049097633251724055107929490024307608194429316096313944091752343369057838456612145932783634919655459987241867636736756308348084294790423472058280150085296818486461276577359294891498332641335848742059173334008622615369510173112655118739312752603619675212792653060734068057371884396877984975485705475565706466939710171238052315372895126258183321473074561161894413730795570291962791393423006983034011996896229003805310693148646557247119299626932522247366678278884387962645669780712168769580137595427455496329501035528154087080386059790029680533175711050232317054127491499633406977558496776089721227506335446460038937263797192056077573083163482222277040456821420248064758987807704792018065147277344169001399952689753014801112379182727346374438146576540924048614815985310257684820925428360288216204223859161728858500336010663669908205499019820401772100969778446738305906654192175533081208805554561328182024335601989079552362207552999654269740399496899321285448411411685754174948041519539228384724988405509793448190253712934217470749517936499596057851456082464348247976984498342920289518966447651598537982048116076292482543129417195833910969393370261681986637680225606615543075213059269732084957409162990036205188708085576738196538424181055487026681905107580693847683484664477135677280765592803657108187608132631525620649632578555417127465917961092485995389231627960188776187969491114697030718608980866952299586415296853763802545111148504389118733569225794321023700787993830069156408390590834792007706148037250143684084642889170185237020054994156832856177671048555985915796372196866727190837257842611110492017325905172833666795908561017759373619713729434583718157707012137365640036039618255923551890110895750109051805906625969027081706041314137254170505649041306639159803129129640573066220504683510262764799065318331474451042826752715780931239668160064041157067572221021580453003687142450303560768689616786781313559379416513302736331035614422588073411599768018011627042351885647119933581603323440871838170950808732562402479698701439987537215970433853125715075347556493316039094494497461617235112581980167354332858629766657451908278705337258634458838028099280367044110736439144934260063582287033251043989805360189033907817056093239670787634735160247647573676937302700759817797853438555238066276401903065515877301576716213378327070758518781133029115016008759355894369532999367007481381604441852764330870128113724252053001086436815865427131187359302977149488280079627402532823058072255215185852446598488816796091738002074596291420676072592674781511462292089354086651287902645382336971636090151724215264367925229251162356658955024619753873512889051702351547713137084348569033703169069544204311040067148981667554676083743934998422166857800850867978294373599453558729907261782949482766225354081300687350377247569092391422128943528255482490005464834799268791163027373792353730100605346155945103534278545899070810624057455766999813120865529098613228722129631036330362576213326141759470746716392081504864106924107689573471693524762741098696187883066535452232714131050827745145403213406823989945290171904575687966691152817077155193076969122708383224527825907802390659636201831959357533088788661613859931837540046911785539726496459692219847653265504965532533561043264552582286982074587844423532726613829604794902436125371666599428916655194441968388901175282098396913443247180844240647535634856387293365804117242253348689484133920585264555665237930072106856874305256707042411515676971877184885932041774247104956711612779268321680740375004191369270767882034738877392449812418851918563091996696104716275259413517373203870261804553485711590330691953323646859289576908883852765888674487766488881475509230347460245319751135401377050221772322034620952430857283099360361223475641147781532078376939802780920004150666244072262394406151337370845333828901359953511497801134997642392268098726237479146413600257599402751257775536583609926246527188152061793619298059952087993807692063209188939466194556255440335205126390355290725074457311305742521236844367753336500517430368671737042014465466156240869277725289947192480237409414436595275527635018170603915538387072765225393598584860874403397879539281350391007425120321555088230482163929073171614852612726277066457651630365596381773098738571461226558318148451178681879805492772239613982314119169749418570652994713954115940516505964118112230617923790552902498118148955237488012474380473848990127175773034624117749727686094882638896643938520339864132708349095801106515415632377420221689415338530844800440596603535140038639313461893077203722037330236909151588393879292747522751135682408021013659495116624223634083543549051011255037160466188282485710801622810785090489544264503808594413158951539394426394675664667003194463578980875646748643677260673422366130389634538061656065187567403370413837162624128331193518538782494630261473059571382484763683403363993836852315465681204183184263539668871149493347190704453986867475498369030756473404082725938061324719044263935573187390459639189506242170108247592560477325812458301364251006470153019918367263789229612431649175687644009075431821798372311704214486870870283326737619835334267205533811648472797967458080882269895065825168697921539326909046037519484036119395619975091846739304889818574296517203323612506688438002995871616356351898840324314542095667304661587421814442151957019026853268654290590121321584578286357009310913483491740936353721989761791049403410303045884963611092074509328320545897966593472621724896659135460197722009456084405388192463794573767526779458638612562981239710171082990022086732932798246264038458670495041406799217511576419374697459741698703031756677397833185077536210433416306025377614749931842900676989575390003572809053052187271819547994770021050466003837985674275660814183242880623850672199831280326592346687379101054730193588536258010153010730364990936216326213776015653868739047578718836777176870551221564506541218366244840643410596817419118500981846363126468326821355731652978367659107036884021293583270018319684941509894969753895522146867660258746912140814463306476879717884379610729041563887637683271871387877503825857917442831867218867791710571761450779508568725807743128622346736641084022109682543579832023124854577639910108061196927975442727783607526582221599495019964608455099991329788838904759644798880729349761303989273907404786186933217751151858205650750605760800572286997241860256226034554219124477840225360974505273243614998590380711308784420430407585482615996969865005380147833210583558057938266627654206892643281836241740440557943465807387852336805943299473583845470712032587297803910691060682995442522889644176958779558612461531470022844232648172429151842553920847888757619019242432858273662524382259110496319465180643059401266791083824519569158237021091117389584005730078411981103580885797634412074087832092766124874256593681359025696778849489617926942541874138424072617879419064729513364166914195242175815013307819133333743419980280682951689815784477641765292193571266562807167507794718964307997258676815864984970392513717446640236181850960543463899021198751888305764836430980360766015485414276728948852771952569506903503561506927167707595581578585605355877974957500371054839249122601910426858300448142748274370195119004787157026438899620750031570670724378088856859678712621347237570413437812549260017866106169024652160284795259633671553353003963929143581419425613484357651572116917877995265707881985903207915515441799633094952611899595324044698345464037273344750956320434619770095143663102942497588955290151673559730204721386660786356434648981413594160996876610862304859323067407003622937204505367642164851917968313677561436045132840331141301389922850556873513177138539296412102515859567076027347949120400911768169619356611552697076671245186406798340894319583560774245701637624428377921614344359679047800524228526155792681680729230572798472807133441559235526907574888054655684588536099211365708836536306725479285691823417878267531050447999326991259248250172987197651743675732581595428823153244465161158783622914049046142889659167040337509804553453613932604476690958448764206670577791071537589968431409195768479197363780601812701837538750634124757317084681645161264953393100198298670060164690936415584801837566146964459674386390773354476445642930022164175697322773707741820735783365606131260867341908017749504888644495852285842790549691233194245495453262608919688872032015678755674879780264080520912386158316524515630817962177567015612290950253530549496094517934265782924853367714037489289347344987363897030006297875616363637867911793551071571061552779467752313961891864845504088026089587591377740863533262669971921566364342121068839022528360454458527325517573403107021384553386077923978299328544688100102868865656453128571948652880396630159687829137161080917032904383405016833144493080663473736968215996588558961748824618491551221146840124851502070594538441047116224169332778806084873864849683457354467005608303333756854566934174688284985664969683426956109629473806973675877432248070499281543983821156588640368681111168709132303912818330981848498916302046078436840582953558076059851059592210863313689841818670162040528776287341443574951759299863436483894890770290018108379816605066756202358832693342047915920458391575191068011516867762239182323518397427239518150845588517086188209969141986399853082273087117134884210968079058869803334652270732616291477034993011067176028379308726850507914329420421630799755183901873610299640986404250987525664383704474844284053963962337053208037695440867180636761317614770201673671922801212845017897579859287030161679458148101870705464322401666772698995281534222606725572581646138151258248527995769556184476577160482788644349369785032293202788788365955553541780385120479860539604134989537507202788931862708085083010355313327036452571202656779937269954635802226114332911258288021826060307758487360709150616854709792590756108708501248658743536071210592116045158283487852669468500925421026308997036280874858322311767571026718092841341301219850477533185221829243088314018124423985265942368543370488232354538218790239712945265905058741465242973913115829570962265660998777094124148174770492232361366448721919582325659796554640651289001241619414095736468497913294591137941054024585634832911898904885807525275380211591344718218329157974844456694201895389893316547318553870030491066852243238502496845180193326311846975520668714123221761314600710593979582733064477069249375191675516688878097353541306326961666606939019794058749845031557720747359043215543412151320975429127133371722266980843628414905470623213290618048672818757623681413494736676714076042353451975658214114798681574137684691639027526429248077859180179497858114803940227144397725066639297045493681084261093901201452564533403568032162627319870428664287092337457949767129353103569871989388640214882739547167441195836129332978671572602943566343566332705813608172310427514388170924165079752427778334189801415317337544795246235786307536815404446514436644682048394497434730677376709702337129854484455113303534082964638113693792803953851898942570764014938816338261028231946340438418642626714151057428867174115656458959185238092946412017397140919620910155125616565287582959529510934042934742957896147218782297933213470343533237464252529011594604443516224502065749209644368378879044301616432183085020033790374683276980988249096341253018038189792195609265904857111269379617949435487924218450859417118143495296291026836663305398446414673256447101388477910951781539180333098586435997077999767972911340401437843497226855678402035885917504635731965229250152708980318155245547302100660632210757192666290661593562021957854605579544995111158040790920460004876734018351107139100530878419416807359833927992753177281461945316132043863883187096671937556097630323814082991124329236572634246557079850460586129748542887575983985497878741446002923302161074607748448138121920995788511826755548814168405061983031574164451059415418385796540372269957925889301340996473391773402570071066869327147372482400612534561154704266371232390282370909039270749960488474337387139268516009779612912458900912491097601051192549476081939605898146886474652928125387558085311079261998649180983147575825719654626817493155203137192677372083894561987621170961963446648115311361872555143777170066081042237537877610210242702852343503645940206717140790026238853015781914293434740791209087111469617732756537995330381480600381160878823172788922473312277700504981753183470851151546873680803251594666495542544022667723411131735052674663021343728387148676918138908826247543463994467709156684647197848920358740705472808834803768100188203469661003920812588573303549951146623456007809865979021506684876727616877099360531403882877743540953804043595618285210490949660948837047635412175975572979841474176545282220259784460944554655786269966924475285433835236325252380888805833358824229991040807884400986622910425143974057820588017751500155294210031170476053824943885690206167007060228901579706704287063912768730715760401016145297908496363568921334156893554295448519040234728017890674560783206550936919679685975578598175503277275959180443198352516030409313862212567208919706694277476641292239159495955877233682951235437114177496846408636387591553457012237975311077360657962358405858305705743957613687763475776795698964886170904959963211737505333250672264252626728817772940416552302118292794464710578232115771043523469751871219233924030177708820103456242811380284003318347413599144390826262461727822142981972736010014315492675567870151436716131884575479174097372676191864984105613195675750080300825687786408682941049010995594035354271116337208239410621970643277238063037048447217255164127276054146749731013660082773135351240834248527755925407306119769541181711972034999667151149933277306677961733992790300245882333635917156372857711652584567407918033556541768236022714091573654897027775346259693120775015591051801608202053804499041206348364663758744499661064641635747332306602464442403079787209983802605376567726879556441061393924410415731373080725722127214579560604556126646382014204277683023221779399998192236880150384965087908782741967609344333104975574354229673946185984599778376630517191175140356933845195634808735384117745439933654826780727076338723584190766918751483984824362881793229302647163907770622702320868228963090176853834010140229513674699007472450298198586761984741934205439867802754920922166379775955222274666724600678246997320497515666811230152797625952639954182805346998442556425468962897723355537609887777833057745124335786237458788220782229460259068291672966928178032916151530403567986716636621720302068470582599674072722370570414214499540453190732171393242696145996734990207943413999387211006058032295872129485958798021826327615313122449264606252055021509063495337604990164002464428501186016994465812166335957087380671769244917652295236357168818173715048202374798750074012447819734430533278301809544943904532071664313553239227595810313960805039728526530450288624502943981501836619366174876693091467154958115794850333850680852396728332129112928021867063636230973242267082096063510530399113121488409585961225898949975792820986196019637190284695906826351026132023662586200559555393753038554767150905630931866648714710695456022356485306709779388271116034973780580894655824357673531537427198135065883412121483758163063725027325695781504696238694983384888197198786643731542745763355835589458224292446026879380663042198330867311292191189729618484183887514789526829555265337336782896589163141521958270857103343893542540612831030001364502786803313411533002149253883226521444108677014384927945676759144779226334736454007346918399916709520487800019311722310442748430365234047108175522026841747752756062357569524475793060133670755506135340978893606081459028535987754052021642094218784836440305976942351645086592004610169189371596758356467866481143329553900476293434946267783658505644835362274994746639416996794438281171235777257507464203954846352911861937429862738997505237642528452198043254635490569638913807863572853899597345620767693926531032737872482052251788315223931906295363655873076215004673422850596051055271578281295930319209851042295590613342508981224529602285821570561029009094407579850774529557576656609184897149455614700769281111114430746116610796795281759856626181945690118733258512052979941964372693821973408062682627781804508185671813201716089523909827606873883968973373187570613274341997098172379407608192179448316995604975167274068922165072900150096069460810009908040786582463846251073279778555362760670102986113309001230873665545374437745230867879487324796283003666708470255566292306075401596585290794997494782164152129246302333367532283067800765043758069065279845971404179347916900828920790179450196783724212489866552347060966410628682343697780439303349303787145002865516824993291924626937972030081386261893668598209691193596795356770424308300145081768682569303821194945546934162604400138556901994477785289975467492032103030747921439648602544912866029973792755133136907657258254986271789339536034765881323721863127490163809548447435385939545697110363867780241541257715551199443906727746393130981400398296562796204027512480638900566109680351487487443462529976709518379067326723582171587356258058171220880576154547153567047399612897305455524893378518480754759478319882028232128145923200697879628784328092396149598294801043292275612751864052071994626346409783557297382211151595802466956782999382762828596841349619526459263932551969977138892764885054058110360243522757661765767380967128041161223735606323762681253778426021143157600985630634809904288449052912568564465264619686336616631372455603409608306932280699759104587524927207537468605308767950599807517919589092433108137318100555837906507735881321665329913408974454570817267635855551931272722263772305606746732905079152156553832678786408564839276877804261564832077733584233450011440561678025177301507953935116299885422746715279530082509605978291850584273018845637050593150909606596384849362390348703750859907316721319141298368246456051306315447660405705246214977341544792636626973675792682264314450989677789988304652419050779035203299504879966511510506061493077560434036971044744546203340217229187000019587684874442844521127264394400363881545422780424587135504095214115863142098366611037135261032633200880690816764845063116597200777550921260789184533778949376621895874792828134367495245151889591477590241264745729798181211365864589637916729774361899506375565069564222980613420507454311279513498806462541670588239908567911488885326601989908809006368902402917769228971435283768589229944471951004630524017727338962939909411801780055478876063021615075023573657396712820684786709186260002330550937410085257674669851499761619274799021030624908248498164093370572483291944206371583482103911234532480913855982686210808249491076275237889469007508301737166771938315313545840201955051382099681231684782609819624699355265691650834124536823057481989693737199447135862219347346746124250788161958556554861408204905981550347032575995798201183985242043907942141884762353898949517983892722326432062352825606946389358330247155312122066759823146124183938670360739444020802740498413239408150910983327300632556415669567148078597195589183546876326081662802231019768501944065939014446353577716357703819245035723959357750247692867397613680531520667807087185477550271119926371958265844704215504597356964683677741135776879544117215999602419629164062576789157169745907046559145213136341799821597713230381510592098887576024966976709310438256755489524355068842547149397002141508084269088722164134589894014341511262881175645831251223864667581376185664948589305937452244615048978576666416676954087922600352421653286846465425627082947518054844105532556862522787245469275646620070199580208681458329798367994536709273580556453172482458059617893725489515915883787482199084646226197038209035018513525306473586947723768777484277101638122949626091139695210930699185955582771629647445450672911058282491591679344660714490547620086503375318689425684367611172090806801705365965234319388114614816696095125817405636019997995800939580037617734582085220636435026410438254133986956136014427429842891629676764719236053955764732443217050406336955043727430115215851442876418925551504520367195199945169359109923647513288141450429294152979451718526313734210683682774653031764471974569551337487891462834838787531092056675041387272757220440452681309293518100879313224219754418305706616330288293174005452855743445863354032936813023318007987722600349800959368741244600446137418890462907409790973722523607528830192269458287839064036950798695598827922994618041173638415803792871272501641798909561403099881870683657164718250331117695406664902245226767423983934856697772568679609966491144958461696290938309482368699718569092018540697173831421852564758893783873924920714425501288681118501568512140900062898877068683477571878662650629213931102082295458147103449303901023311014527773606641457664885904578157051245509887955390382494920733993090494270278064834341803354069354836599297408383310692447563725249559493493463305724765669590683781400027521292539833884541889193996722939400966990948702312195302437290207705972315501499730481567018983567944239652578181831057989298816608158631382187381657349710811508615857473954429912516882734250223299283787375598393241681563964853241107389451618329463563941980521051776014152091905656676246388506777461079440867949461017200639856331607065754688492294035786355860338078257773502466122156254334543287118436566210184965083409578490404695614211463386606245140242689842363836605701066647421663507478803640320046845794706964553631845222982942777973387449838580525455201755443756991026013806900949678371871056741170302050999326884331027656369798613537709164800236429634692190551573187657981549984003454883225098601449375343882826765965443167259054996309142298392940045458572500899213133850050765063437884062795593715381181633861216926937050136667673202484230074991102528068509959035431468019781084511147314386231680554190223638018539016038177255239944772353822314840647391793372974905787911226668588802724222406830926014591982547399712129294095243752806308911890578433086418609840489580063150673403049586875378223676618773452924303257754807769024411230721240748150733635783706858874204035339484122490495582116527036270551613459472906854122103169907631409317013409770506510027589500065174007706751848985399106898421920146660775709748337184287295912970003870158999614990778722444449570340684640714060517494953244074165052003976231616755149086545969694193669364807505689834191489998220817901473550667653377282841908813911877108535519471733721269805818279321192021918427454653295117260307916094564808885690550846497726624996553911364389348437980154199336899771785668662529920791574027557581503397779012966126185897013697006514624498657440927220340429086242582466516354959754298905781411711930345907685046574912644778990355911626063055073787386411258142442737313252585197583964116546196119832391666864094741909718893716386386615296198544339929252281970845616124271102223505414186994932489619897080404366221866136497465450595709618542849382397219863611140673906321327215096843051326148544999393191905321230520131486886103983927295578033675041922550169789004411822064558732121219281322381202685212520166853606873746448299277666576349977633907524917499831756188401818430966013174341855807794634207880758556409308930923849801045023415713759115848007930610303294836965305678419334429443574790346007435536478150476838136811379089354354646640526452709905850352797611859077536311820334463907302830541474230298636600239738088775003721931081294523017099147719860092613168016123249557176832325033108389993691422904703607461015744792755209899265800842987899161406456971103687441946726424325852705527504990675032530132952067452378623223933839198758330996346268895131018523459854095919746406287675135983921120705434564990736958714882071313306520244875385354678284317784105154239707600990365049666605114061613012756585904101029489214643170112475395789650577652680196564692176279095294988833960992924240496683643954902568580102634709611500094615238108558538104447321467616972357978211523249796126689279274255317560904900882057340526256303605767529864701692502284011288741979660593058590023292437230539228007661213148881663441893436827598977165605708894312350077146914748123598786407636384763892559010674308890581994344061758050274469773650317857903303296513869913650319576990759406585957262726289144066477173482314745839326506655568115877983453456920595284131167166518988513117284518437087554812749194567670886725194538959033401142538789217889715016830373239470691954970977680162769529591017149482199089334197736131064998329746607510886174494360504584060544551645269326792465450138342749607556312172649276179818221913861581045084120594635294853516455921939100183265045883542512364109506692271393190418313124733711353020700156997119640709281902297947490771936236666010176995384092376546889855436484110181590843533640944875012289242775064650181434565442314415192241514753662753062708480037726549553185874467531626346718974307366832204621696037304991557034626829085278784563043145827851770864411613919121454366233001043323347788872598885168006176977980979168730938693486747042481907383014771785386252659071191519397668570817506073339458481042521527418856600262384518502407192722799649535163152069036060126603420762155134850844550270684261558034576080363440426793611520063633882534113447051527882348450810016115573604130279923628162918992762981402901171835076247064923052468399378396528282202095243556523155825899886891703645508667560959844738010114402886156801377762234088120232341609703947145800212565495356570660156229519900311224806315732074159594076609270270390735912645988574213381766404202116277910047730146750748876371909816345285406811729581753684557789568315721143470902839917918237458343441869172241652720999780551316769564615492109019138905720751448922746821398189966063064881123711529708560110947207453247866064170655545148349495175202039228112732284875242148626056367077628091870802947080253044266999767286138070335789633713382990953656807007851490129184354436823187063930212954705686856969851554745955472784970708045655359302983002019437396571572258849185116603429662951265109011918218164981344471305289224820924385545234955355790807517250388152272703935076158003359056164561355138099034335038710321271257637066989001273809324281505598888315574388375470954587646028527820518092784488346800067452375137704163567902835748005868281557560755098329684623046064190696779361045375227942702428568846304640912188382489480168929959501939068929216188467472653021457259035187555422144959851199438142777803812748288169670718884048319638653730400957551330721871252671811488295861989942386825566179781811797685890854777626653607796573297312033215176489436245332841477835134991066566735116571191723116875670063574589449151491338171047277488508401538274400462137476943676976104284389182547817492779662405275336643355070764582465733673336429935049514504760055767659962495938923394224297244338949876743001991684191145666126513271280784143255287091670525743673498251609148102538276345139905768851827137180592673891871477264438771666588526408002731165772311884185565496605974826663037410209686062105142410359275791827747812364261449391202605789026510127351242967909725087438788492290817822042815522938049090347918956880890900865620100753536307059627550771797584181136579806477077863707912432574312948571278582891283372670914559517586714916247005869076624478006556428567301372221077254862012923286732604228462328248920674529934472419343328319781677872124367087838468218947360049199798538116475587945788095839105344201196550166821130761978850816934097543449576621100482411607713068763164787665173407771932532891050256244475777294601143292670643160148826789118781429121234946231322017142240732064025835646283448488012323838533355965149424118212547770130105303826667084025524498145998993917193695798586370757701658391520598195953186900830257419349973570603870133902420638105647719596528784059194048598510109087149618230920512895461600522812365391466656700403444622233955653953595879581491761253339212364535863872861056708899292213555169715598695219721038591197115718101766196164215223646303762132022449321811340250753088204344377769670491764820434013744672514930539400239196763330985177747202766178098615663144498897702755719145526337810338841487188249165055757422238082556951412216277528570372002150762398773217579898460441853683640711803101283531739519495063775110466090057022342070401062331672035354320568610770361675191161978511627303605105259122804868921168650644441133392305070354912530754718126593019571589422926421139848792609387019389185055632833901514441557728864416940081233694344135077513999643654981431819803084874585631699203514543756983039264134311144025298660988312091745887924823538793180135480029463416780660162841820584652440105766782633257984988330481292355233719556688603881010563968110009252285660201180958407802669444623384542615721146115010768759766604326901708534857355649188235970062183658603903298811065500402208106029456042950312637586501486643506120229722210698145088788927470879574484698355466364305786946557173655659198637018547292083993325220777144932550205200724878844070818047596103230168310552802391525295938692228399794755429403069678140729551243782474208832037252083987414797590277000299506843948901906499605139918859277650619378900176204444315981449604110292097649254695565404809879363841051369280600802348571448039597831142919562883205981908179114781283339636246824632222352202967213763048668245273922840509376447969474565200211076926936357951863962539669682084456280849662130500643945470569396557766540441214167986822710541842580346359268665396997375177081658243381828356993373448295001800920178179422154422565134236619725319016915933859306485634472472291621831623359409540589465245079945862972190362424932997576063188263861483850877926637640542831638789166199139298760196688961505049299780080226081098205330309086590621838052576795046188184434604170586652812981331092353331699632261522984372987871092677639581047243423727967544786591566602569472051080920368228485917843752526300830899079206536630853976014135686363715743462629303534709597807689289465205495162288964701788621408432666197403435007066589645311357735730678789232747987870204733371114566349043798658675715064480040097195964252582496286312630303338575927526096509547064637073076255066465344728450433570929204967946791793035153073722365418326210909592451035964830797837550918300698715015841972923152783624777100949571413769178114849923781381815898924826124273261076503540382512060022126540711634211311731819186555943731461816326033709347785932410798921581026247439680015393016026640432617012381427182130072525451476065794162286165868583907942036424636479727822744287583659321070188355653875052424951115646884530270768526501021113076482708217696994360446263818196071302834697071771198920119246562754605393304584796160706831942491592855501823545435079784222795020761545463098764504445775847775292992928820667087455290455019044504059208403493558536510478644150098758930940733526094129028168125804553771286643446571898509905029938638757052980858439675399098702165286980991440559550520985591914877380937895918254554875966702431885644168694914573114777404119125636066604181266781975248442902049777565821842709632418849969458949938583288304752899785784093072905170004804294755420010697244367383457555622128734525210398329043368477715627248456452796596449725856546310514755320666401473461534825193604908314894982875972514326490967868449099308353660360617387348599310998875617747550809952470740222483714608937807073072700710133868393740549846804397083096703933985678825915423106694687798230799424057067719659230461033659038607647053046974493756624663632519634270203637533250864729193015472040630143965110170666131715535555292055084493287053220552805777606588445960140619003643431472647562820446442712586781542309544379669416459614456769068139425323711950810169037232028676213309833479433889687169193894388350673064699611255313744633597007529670746578969083083393094986917480945111123588811475782659526331864982576292699891864303880231308055487203961681265672918296101734899143245981816353518950207018477769381316767554852367212439241003770043380935222594202388098684802150853512578755370367523574834583979888716794382784993093237360793178036254163862412880125998800875523654526996400992270885933700797480253593042069286538153920499468345429113310159646872240395016290948440009133822163599921101569843229932407947582254566830777957093317405728447259420911721392509517016106948908079602269610867097044016142346500158359278113493993178129772941888905581305760089242115570527671275359633048842919341132005300142774033175181298740285227962418878410008927345857436752865984782742807408100073831151150224344374195810739576480372524655706246509574151402482051731499107600544628776480503845524605487043083875699692784770750588912939517399028620884598405523336295952653566205028905066415540635804633045732122064997338008808190288198566080508789477251889086076193583080214168277835776775754477405890522613151267125296004412150359630388235043183564955969692541268529262429891740427364752482628765545730194004719720967957913080044831721215485388452274936793767150411452764858860036709181234214927759550617920241758693464533325243115980800908269073905250048636892910903318024356023617886095345145810552229907291992615532896768134109566427063657826887776948335160574937236390221285754110103681889538996006529089625313386578297129124703346045187505994600946195532912694930232824702873199412436991432798705044531080887452118724570978675778584891669812007334778566070816959123049597092276341206815306555527451062150101944301584903278807832066626117597005362732291717393202131191448678365614412887395773621560540766991999011960720987471803545402435038175179925860570511560344660665987927708032486163664308013765316087956117677043898291194601656965122482424515116138756983706050538022013535906486963727321180330873414393611363401496657173990065011111378751500874767364263146637636051945733351524259333610740292953160747255651720519960659434111514865648081691248658864289389295727369812362812147453244353218752993196011822558403903981322233951278526711574706802794568786169710255866247096662772387508175128233917436723598826600103048317437171439481758419274569511894224416467297783831818750845819587005770314022112482798011222440706942058521872401956943328241002978390313808406466718956499296378818777657214639158551829612059063895355632294364342671798351552182940526849743431972825928924877480924856665185781620389833047045114243474056979452128131022913550675511181438442861353053691444789257656100369522599275860883491770971113533907818416187557798200774197211379489050654733448391953638818513052254650854561502814431353266552435162112304723920873543327774664338623997619026347757987342561900928202457568014433262347305077775221522536539189938430881697385584165678876014170288432164751483352698643669486944860726277899535671638509579691778095298717397907079437652184504792057215882282670384108432993975280704621418810915471774771433704895614824142310498278681539993208512533293193116626258564890623262178222160801190064963865847510525052510172090407927041861721131533111917556976900868007721514659855271883825412802549854233708830787808618977012415637147137385440233121900056679354584440772699978388041438284898532799714658588639844098307499235721795091591103669672852859127807395080969453605522606584981843079148604433341625863144952384654489108482268346269259640440268810593550825144926510221862711793006486409113573699625065809872052445586162614671061890954303191651714095578301914337948770095760335178855633927074521197137784958910257369636148003050938982736165459350944469836840720211958100437167226795325744793820586715031544596402987760263757986127929632994534370792231477270487288983030385547461792908709597270863814237993226251795942859571047806111799826412645304367520262438908990797379708187790856455798480802726539693276598361972444673128406611402379587170190945048052058636712692677341580724153831452015548120540928110232144618722798373826300450779681808963380517661422838090664857838446105122730087272910813669412859486509215362907843147547268302451390205741073947594437389330565287290846150443827710781228737534523896643258634878984034152924886461466540027340280828299078830180469452106230825958115809040744997105539997230880724592230242120138817661750539901052982941234359497951737041330970877710122237442702770877576317636367274707721892895579705843073645288678333950062696437345201268097831666690615349963259609819592222457456137438340274201930126790559697593696571672544981649032082518162744676493671705461272591240546568092797799178338267011478845915761002789441490801594242099973347342843132050081867894726551559896228226791654095676533847952809003943796977041959549992297667971565108239645128864340638857816807054754022893325147408872212391736102876840619478192779995739073783557821171218262382639650847727339619246116718141425120092552582365815752611450879420146707323966294312171652934000440804418743146457462864645507363298083919662841102017573087815134350028120677574052125741683306598495795415289269813030757308269725774544843484946283948593027471208574518359544497046332594793802103459038252468457554082958224786163115801271612837257917954574623936889760168649635604355202649790044305807110165973617613858498219859394104562122703197054590517573197789155910208360086058599847523230410274482958408033625989931451747110253227981991606036419128478219153619193909046825501745272024884196522855015474877400633245573998738375066341469644991181198748797919829072911583620627361642418035263154372582805282541006674549994090758011930984585377475333455434695997908884373830774111384961747027384265339785450968095084017562879449507533414478862707923214735714221811474180139054427561835463140437399166070999503250966250393838236261637347121794676128394899390738040721894477144071238191182200216836155680084649234068470316136477409352427294331326192403517731091798021020769266913899857926595047773768451261664616881496147413266424569910501867927974980590971265475705665410680865475868267391888865104240482770128123315685679705447813377031916488245901574069104509219765076338981601693298624214467633322697639451457137559145099643586790065307451080473219804184918616974496229193600180274642732370017875318342567244537727725751434924938343319749697209154219793032943888760361062347917770914122023981476541862449173824879230583072278706270572422853596123736958570899712255824753925904752495864261668926235262838359322587740547807797093867733597835148271427474323143438475540234660604563084782792020620617832022161471039738424864971686007316082857386264042974217634856258795479205924165187275178035922871752914512704586733644777800963662108087104669081708102310640619343054029907601890255539893630952820255779368349699021940460623677515867236355931727681782862419287544667559365628957900019202575217842842150822984541485692747877282432332020447488823352514211447995827762027361049019400915053467007628016150861368199490739397931101033101023833791215137341202379884434617324731544185828087768659559546562788665735974987686583208620024765754610193412311185057966759900513709634217011118145777696228876272162039666581351068215946735172689145218746004799563603372481512711127758653755308055857621581419327746915478664594722877432762762363718894449235521908388076058818375457390704504709776731466868221260970085781151149134731461705913678927295968249182969751981377089066616192783723425594134910356470242634730375942382831637834911917507224103462056322496434207061316013755312523716844778907025046443773361408174817770032877054462027149833703264953516862144557188880537223671145125485115534772464817325670840651717792653378095522198549334694324814071672064600020564228309030237325052540331582769388814071961159011800741893081805718900768711765195691084808676498864771818162726158582653473749044934952328842170579637657934205511877327098608484844931875213705059873963293020944148503857924892709022994599206726246082415824291744494965874021866157489692212172807082833097675562883299854464215566419982103015338578492392596598341661010174491654402875818333077697521481636051724797989321534988124637371932376376397588414938158125445010163914031056762015340986344191915504291745316452439680681402739112373098772871078017150971793161093761567844075650735347203771094567345261355148231457431398153324042029101702716023215196176840834603797831431344895614998428554501136819626410265084488002869203063414645299125266141394911761105390142466052442552683683431166429387424360275255787275819480481583436869355018223895589667941380540134409731269900518939446907931063385672161989909919440405657685668731460827516822782791641940241212003657328179370088546078342724074137615547670646553159151079260752023867496180629861262803295251557321817497133743723224712761908837691600184126957774667657411284414771965851657320587022546077371919592957371216464837952300259668544611112622065370144995468191216610453124998073520766034094924104895154012450728659976318168507993338319895258371444278391806960884354338491194640954722042203078737594895967777852530048958480520966897243084706012358092603395866053417030097599709318024207586742603872705981164034541977864658698876772526286021233732798893413075453781552000171327828708633240326512258393246819631014440664272637827959175049186022490173549468238839374928126972983529435538570080041974218721761745490978695880149341950982677447589516161302702063038022615111410829567134306103696538452726377128457596658173228712748660921116205622124026945861969276622185917444774429417935660428951059772629630422892188794724316423897024771049185220366151052628552795902805320894574808574693834728008944965820647558437758469821233430574998768897575786085574001958515482167483388036562264918257838091800299289028230933493539282487853664521913572866807019305204639043530715470027481898734221608782953444654688706088424373172188254582303801610049669342321305376772423908228066473620983414859932688658330840189936090667725224225125598498835149468207072339314745727886827993788314266263734975196953441471452483439929886982228474005845320945348224652580042605169175410718183687965369170821939043779397252931292248029650363918545956777244786611314491759573352368354620481419213258859104051309466369781753769974897584800367714675647831553186422243766927237288473714021865073154682470555084342725030106310636456133617743692297226235134037033152774761935638067992989199568904421804243846089120879914708634545550969929418474101743236085708883637138280213026590271746201857851403791566749527765271472760877746129192243289398032142827618044305479350507432146664517235795363059716244792905798259158781839339577213970671430273739413268531354541314581902731093761595460607507047665411277706334568444660892364907561504996461450689142294799609650430013158778425405842570525024307367575766764843405446232644272645373855787967104538179785990857223459014671509226520198679592101447643844428520718504066035015894524303421705569615268403443864068899000141644187807461644814201439906794238514448693969026997519642816714315497984464299460068845819198237982988752084155988354161670361232161658324025569026212107014662034976089923519216489910563567998368575776978574303154907502480326721481167618202481152389213652302189436872684494796203347911566674892218607272853171166560544472819012664217219183749404112683185694655170574681652496167234649835685298063441284674891247571739105487214176109448152232679149867818204063269351232955862338393007918548033715216626520365697142886918932997916703951827811075797473354370984053350744005482032098410308722811636653365071043638293979211403723727839964887650896284457139420995578185639874671340408075002508520478081022474159095806214611344114106522983779465897754770820566057347454668498773301044043903957727430443834639839576024833802154465644322468797060670784847373755825325560538724559588303933144515889836168779602467247154804174748280087156968860433827470990863067851173866045393873233630745898972166216372822998801293726776922493675493473220078283950576522122169836471698559247597158412668281932410344957493343805467159038651877345912163364963277423085291977602411123635028758086019766239779718527984786513785484610905918130143006965707655108465601426832474295297354539613880633017425939989861143091438860648233556864736359873064040373622065353098169481029285082484182579569237041126957762620779541163871956073861458079171937565142917199126382603536416210539856266012054974079491887197604622170944849250677290927799084609364259570737243602979059103601920316407065390072302342589501628049284254302423916488249311137733315386272570197286534097767372355101663879587989091487948142256932942165972928106122721694852155593255550203337275853451879853788761834548646330947285356270464532965722076052771908954461450936448599567504630519876496734594639487592427932354824538038777944094272345730797866683163031016449774960964575059343127323076989864685721397172331456824529875631056691475288684237162557680412579375797358314570531359793024688714227199067051973565564122320256047923917757620973027375309772601656335431442632464451773055168262636502487339809163248989816769643663628706213170317747216178526897894793578631373408626875055412437858322616628115577690652915324021715252391735562647532214108090465936846482230629151910257838427454982311021661353280312904301325106022541482945989493640152979494833916169321015343726152450570376382068946529249379502783085244416409182121421336843622574976861935670185103480954224007622385509078294278160638049905519037811165090798476767465138194093317364650977219446764061280797036927133670561315272684320688182019627536974240464653296473729821157496192025519690456601320584026996757748653490434190519188584754353760695150106628777622124452836631933799125965959213763401396043088528731370119000511063902671099414693175664940253493582581383887062614741139183897438503268961523014321745738600996509499312098743339659037046378995729193658071605926780951705801647199334847261416097984714970396738685509280950285056041588025684586009072051765880422594297289204085759132897606011259361289851259106030387226427017654117126949047782510126647971213178122092302642426980669750383192228782763040938325255106108974275937510259275259046267708957709660744531367888331745951744208175732137813482260866141923868695757657773909786905988314671460827595342078303022893568045481176925232983254414405014060298835661489365737455660849072572800178225124148609526238577323810457360401378875892378859401969756477496548892925325482687772700212664400554423292004058609256942175209076907798412257115905134898155497142338359438877564366292066976966838970553971786665615924342817704076147706095383648801349881645253229793352573425310024002024710442300158556620065382541611248462554886808946077492939529337258564811927322853470969474321463576246538870255950116211787700653900836190647710641715597916056635754996852092363056984744803943671667243852335427721590563931636833206268817357206450973684026171410089314740760632263557041187342342231100593868756780388935925399788192480807151982140224648612340011410339644959064897775278838913394323533618203262034374734004662267471390970438378843163640929522162665504029666032473463022303763221231528908214522397665132411630951559738261376148977083286530494693453946035522226976455739435514350414550094463679449755319965034746917641470996086321051964780949532398312557858897952766833965165284545866760975533213560352975376050628311108668451531856309735933351320044398695562001207721037168419511097908336788912053385706110052054724139254456386068103766457972557276439784114640796108366099789210948450844643769347544446987560331211784261616547518657654790147957721708214681544286952477261162043240508854599188224083759720977257624596227110585743202353370024091935101811885057896712388362005055118671202104937171059310785177021209490991992376588549582803944271636136136902285434031175575919046218206922451679804649212675915563848632566158554345219546310559320391625220680013695230867694539903547978057126924738144806653404316821416942751599953480946258575456146708638575527065738077800100490980629066503681050770095661570425974639699819187489343816848618040590555757366760760087882076037930357895460908568154027539873679618283184784858187621093185785100621063067267695264430011051767137907173112488251426240866758241317486189639742909922336958363679257927626971895833358198761305230943586340624924798238956017526050658178998540531051355313301930509462939446027313302207382988647824044290648843880115114703805240432099969011689395570159196977802305938859216950879353309114627322289071712349262966504640827875334045417430009732087180578661941718437646028617303853635375889977689084108799559017731208278903737003639599886525988743739332544895622038442105810350352240106074505733588362322006093649211677984231821099344506843234320489679934520343165318049291482435192284367804463185550729310444148980995518283613975016086513258159935619898817967588338043269337175910275788226578403860349815992154417611550724585751905795941583851499238186258033992691013689349327131710599654556649554929475255325383476175665185005119202576259598568562250241149023841047309708574650522393536114375361132446479147239969273494840046451788777499094000197527302498918060454435852704830783055076246680621468704569971441109822423781296625023273681611464275114285704075094089115088216203487274440276233306114917214924691788492160653013745623595893701414341764849168074875193169681909346447548906405736450901340799415145178753590427416889149494814134742404615010985417158561329554304934290110919218892044154114268265915451209126199934907778195010323918230230203164121157501309954188932247123278239281888737244238588850277840853922530629677690472980815435292954856845632600859802556688946248082169995642811953614080677652855179761037193210387594403046777616191387431793439239901088282611757728969533053234832498822140237485276458653135668490677097208562910797982127576805996003372635705444385443371707445285656822041550351585563894654988632457438347598496114330763171963325042039741153158736263865439978156724387308234254187268810894894594382262044155398248768539650664483446140849567985273970174062237805749467159894492418628960413765540088620598055521525309841380373146445825698277140308737934654224336890128336968202467637784167307830241869551886438939497614731347392877328068993388329801055126938289669829145178769496533052541249151268853997658756264287259868590631142332143089262639574614037642770712596858168239884408468117252410929507793263925918750281616645788056189971315478173143526189360160093115779312973207454084428091594559642034902597161814054944293840503983059975828995974813278648086949271354786289987008362451277252334321510783831145398961217196301202037542739818558701310986412642900646892249132967144024451606288614449603012050631129804282144761037423720215171006005025792915077777133426573246856080189867634320788813699445383729907343452840983949225659391855933454997213323158983846738573452639649848985491308848718928987449884225839272551901377323027908947786291130063800300199413448936876723062499720241904651603925656764025742271482381726619829511661307835946329001523271966956996976817312946639963984947861486437523331270292162883337144092623414104894641767093763152701991803463718621520887585550703420825096525134888872063392088374826124137808279417603707647329807268897346849743518335318534422092385089638331120489741238055868748046430977298581960891742482192999109915117879221319339284594865883194342227543550764825828214844426421997655314940878130702592289402429424451750871654157963247971447162070796994112487961979459156555202923997877368783100244977459624988036185157384350354502073416029376685683765703590846741370557716990022868563719805675834882448087457476780150950682849257996893624079693800068708703955793766178992762275030839187013428106564130149311192396096949469653314134370973844412978617506341394091931136925246725841858335896594754501401485835774703933266991855615772238959934276822539445262118899406018610708378206171375903080034362444375492131843493975303982592002680355218531661232126567806484507311659550018508909227541584224873313178048032902817488866155628656595038660949571056120722090704667677948829677736578652114088933178587043199706821166059853092758595724036510770163396128577166679137856778501954263479873716613782204037513349678797069958607770304727190569891096963441204579543204956959079646626008454377079787827375216957952147871504711444778901009928861446101560584828102597716741658417582618898003194705938633898500491713737944672013265860296967282127987975262566798677135007131844459760812175802776677224943713579378146353271242596158122057416245588460445935329992510232549163713462536047226242249351795973993746087508788403807213312355837813627667178378614287857321924083122544327249919219774521374727193222970827157379521658282486902259788390195635779152257170957264864232328235186340494361341114459508224992661438395143333583083465033585020246680179709393165263028539490610766902627608241317660573908674110081264356646907647331745308193606907249016877169128384166004877037998779645231102355937222223766211301424379305127011014946713118798102583824648065087820144086892213235034123546942048743337034929813888899025225618470630269073792571029138623163391945745247494768543127437408653201525838768840319015484740773696496005479502068935219499402586795459866824925367467952584971374090801135251529917711444392941285126672329910748325164377342510407648372713888424014900639671965106506641271271643480656481015183427260291990269853870011018709045534272682825738679176774903299850001765796424519129296337480020531330349633528284583822187958065066236548167922684413908053047588100897973032731341896620202884310169830660199481970290826726164073337990483989841772602529533276765098512526401429809572585700765620168878617202191490166613772028015304696294609874011593363887292590452197134274026990563134800506544992642363475257224026898784123125890191288416786028127829048340946787494812146135001467297358138723466788317593381365901120751161177233037564044662042677850606106970502527071508872910904170675870050785710442334745149755019616714335223616421206166843609432837921041111372749288407293054646019523414681273848993551855836351256488197474191177563183901006964133836351577177157507088644681020900975647129243793891553464899907915036591658410549158835127235669643218937424277803369530045627881525376021658890145876757869745260803326256381870720390789952766645281898105661042322453062513283908138738505898973417461970689172817390187713162758429401729709112806354735265036316801343771820243612213967417729901478878908646784060923296320919989570382985970449485707220274114894834605988877860571020561574894644885018431445753189919459664352633174157665069456806179746977191710848542996419271927112545039601656459231874006386488354264033363344603179967048372728537924332397876815056760676990205186047970628592209361599802520348286300861414848159751456521222137458627792631112611010584336468110899282452615107978255061742545533668966579912755891666451226191998385299129678906898016806608669383716356355983323048818427506070137407264861157302557822874936307091944877944465638377803023013922287596890334090801511631207205770141375600379068884742152072211583935745695684180775340421867727647269979950751927892526721650579695161513698884166423485427604856400213648842224618714937784967965022495675341877757564672318387028001803588563257340424832752174000735361439504920719262412585360672833953455278214526610277197252417041244886008879460727833909446050220025373614852914358762569738531236513551356521244599178406958987233954213878392487223983737322807945618581697659393880687358649527907816869405527449925961715083183569211088682698971096866932310927612673263272326083853981565679774796806343859238790532143747772492327889240640454071429939815152134374536067701374409955394560454673485931178133516446557394252779640474249667523691326565424729222869803233616147614671698073258484853979303268347159589588652392422820049616455651763020384076184219932376465485272654321897560187132994292074726546439039035807949594733952197183956101977580578637341902100532714626166761508873228802794073978984731465587179433346497950974066458264191107259247658397704941721119672429029014563251096738931561649142618712285937107906531488179024631003256899664221330796930143842883542954209288664804417415148459092190047397579366164551643161837244070192793363062512412678920094368171347734839291413364099265506309356004421755784913502738068213620691145109274479436353584964601815981035469538788436674468542548754674387361527122330860994032798188024747909319178605068006168501616586647477182870822559580135916461368221437199488915774503860245991615654913384332806250231990585942151087786537113350380291833550052367817927579365342601377285775410926156209709344851490611235901369079608051242400407836491064504469501909311582729952172295579270815150229295441982507283818741988669806227156617705323331988767375031257501906264918615895925387757958831680525895318058461592171698198480850104953107977813892449066400396860961482512196241458940593110859160773911248165717886564902200162799766366281964639261530231567881865214322087131547658371077004112449352895987720169383738261791778074001454864235502684567904249182215888491927365580440950919848805192379953420165977360736367248819827236541524949883800377511845688948013824532054982350124759923862339122397993016109120232673109299188806360196160491470788630172561997172491297565652696010157028239951190080960445743443932820708360407535471286177774400821227608594425703837750895998782872240823099981855750610032122792321738858566191842166018831347856136931502592599485003786043697088749415340385142578431921462601657997153545675120932827129761903159282995255812075297539059377170246195186895318031311527611651575390684039903458238232428373409063405719388176707237441445472106455551561870217590868231185479805940145067304035618599641691019384263691098210984035796741108848402403577592681416363984111588981967433877252901746288655965907076459430800516825521005978616398926995259284478716856797672349811207124328608554413372268843492658804598018246735837574410368538042046096069501669357315480932983935374779075993828797708673500569533919571895905474397295629910085736096410081292665282774877472369037793483794339793272970590036592162464494868859617184349825588667171642935346942428399247233884333390549077209724199805457975955284208233565407158331168868242605608753832339647090605507487552329878094347096954337488581365011557061299706445368502122481630031568372642138675550830171496445390543019060033041457486033426641043574437164374658390450981187716677506427100962278288353722502164247083936593058597924900754540639731665586393452466390959912276442093578239324536589716187326097524514879240603802713898579853928175237489323305215254162809491412640423185365350970302859519349985032221190400904604348839077636342802944074116523361657296773560091625079570950298895104821384653019542904333798540478948169707406780176794142020492730276448743110203021451160094706032453628813619018648602665986734373139794743940928926911783751893481063303754504829121963192933551972234471752351736914092389335103313063997952876710359838717200659504079111622336404295525872452788220629446155130069562598087831475130023654270287322084108707742107094830871404664718565823577538005652482613172230174336941461003744254893019789893836080237234953637632662397858241962170585337749030156683675430058671227308640701906452717694979363754014695258448561852102870607094279153784542202144599819969842977977770786252643541224313200228072125239972397124334742200134024044406431085881001669549469997670579372234263323512057648994206570329116649961397044624133013743886830407354296087613609111466036045569320605435003528470749249942245715568828484708713392718672123966999309725828557008199237368547173451418668963026421650942916028588166270741981693155935936955977876896729199793146682858788861321908960483080416223970330592634570105450084129815750966788751665256705101512907791118938533183063175266138364825669831186648271077850199836405801964059279607051439528976726861598169972006578145811115049679889088348341212764629013204434981644958230142643426973373535131686612081916128521795234281523754041399460677192929839304091698007318415794555710334810289689235710725540057472028241958335747791864089459522255685492038116965714827427123878371404635238108130197610244861294108445072661519773692346118071040408146473672580561826305820552386130603873314483776061349714357380150299820460333769586911792782774768905935511756125600056903173643737110383977712811539605461045139415892445999060192188932243619272941256159827112628147077709286789576853433287123722242211825483504148459160174885709110882074339499471666143859197485621740610651578612384827388102546917485611374726899493877029397613926012807922768721987550659687594335705565155599304462113856084467746176618399829789755922650778074480037687297682958231902583411655902774268916295676102543217106143090926473888460431308052254292203017571656992654044054473988549197398555798378032459986821525863186565052779039000498310873831124194458245329421642862105828403787304229944833055955192868770435762787130337052207560970856795856248453936538492698539320160028707274908932257997896591882950610896832126215832494167456134076707419255090301843850739971707926958872317120582031147729393591044814323921630042826519727852692430833820451965377926829487870801250299191715071484681792245164583760045932554283168306357730974586096906127800374717812767290788297069309304159566156153453213101362332988864424592923257951728809343250522023029682386955353663891301805507849780078747691739348789841840469893944218499869579411561437554009867399979743477338489880998450643148975310948926743991032572257983975637455362219866575688569591987968200744069657019193277630304282533647205814501623217988529402669735478069975434337808124324765883556764581539525573073886823683803259032984534949969358129543332849047694099328361771896030434962765528693423051181080395907107560449789074892495673312721968708024036522138080661388804057153533036031765356999640988112613874511207118530443752632994932146714987660178746105659300826004460504283292857581923944859730731882530294624729025258282202568335369525842767137702110755319417463013743604531103776490855601153477893923623391793727364973009487436069750841420619733540638229425378087928176687507241596847749550295735793532618786642154527897105768344172092050069458370671564696238493763263250592890086857719439212383434171185784619210164095288791656474563789480423671387383218847484424066550156447918068550763030857979355963796095368707395098131940508904918924868145114472427731752381043037775483137307862585717401318701594788113431661918900146689172412448668230477986456665780896181559003556086642007572869334479656207067857417732196924900981269163849396056604819315273755294444588691306634992933107826997418276016646316429163936078156571457088705141389397834214687429887321947394606219925207999960496221115023181145879538986431477412187654946558920738799198403987425618024391699609262648100099978016765711059414404926625724481186722635544024271956108138083936490402616873532988042741950974103730329274363362169856611777025606288082136643692939272586276185589598024728423755045318217688798201216852258479298659290073689259086928552861425326980553159986823399859254155985607209022036273801167387503914721186557003435556396039782556972029845526929462087283211357091030510783627572851165592970143535627546619938817698882763394540453969313535734288482722648130695690974379530761576565848055321226761566591399968221836807996221773206155298182257692000221433164746131910170577768258808150646065863995252791598479099421718535679532267037939948353845886975727041485546001194526245340595324267866112487825724445648012868682728452477215433985957550162569588207907001466058624155365660395850985177964384688447829302288578564632726522723824288880727063411727441974603165377954117294632379616816141459719095418107997087889999758590508041124053702898344747303326177404801465901532199664125849971185910634191516944550843261254072434434860692632478361364249635523978934159553512271745108239095718201739753847791477483122500833564156187103832748753062532645236276751378400777619393015391016057858093174746342773649162654368764797892250311262305968959358422065351104657524464698785401793067504833889041122347015525246496569041168893423971841894774674217832519842567166724462601120110449207416046422288715465794615495493521945060571494006903414164985562579174578129114319578456691606104229623172098127057201909026954877941472160432285868172835748518310310113853984405954277951253350815885685720255487882275946595225713660145097852902812224541811051949035187532978259340287929739809511523357826730299119949806613275540607278506429273626775427327958836478590475069731008612037022691729066672820396434103490561152434110663698150014550109132091265549122447135432725758372719445216758286736786001266715046263557585530943598572188002399892959937623204035173422928381178499233173330384904714928964327926204102532824295467511012634223560440197948762348733998262811469880156700772255362937952155809880175833628132052096002079970980684861312984948599043107089664313545450371578254622774825824286421809104843244527268791928860216386604334572646924957122320083761678359455835117763423639801744412372918961270344087240475704191025057114983235631183151417047061677751258292097544590726932433964446869020039417297181102192332788070959923228014949910899792087157112544990966340918358115600177695332078245853287597658034979399079416253956679555781198943352207868759352255514741424374387221636582719851697089713054013965982564379992802325571578190018417384940155450659935653283108975915039357714367797006762984069583040775799650731762275091850707030464062596908717121721024501725763590315287538943922881272014861363759809729627043142585818802334340147836169911471834475917653641247353695928925383403476680996748928147112387198395830174211412349369346281009183810030195293236317392305478026091239567621751710568505518476602624182628015881315464965733996694704394762958140128662780349637144119477390639246004043795818070554086806241092465191760887143979334876702481389642815873669501716905858561195779288472241537073626271849452892633089295743610279183346521942697606266079856969756692350674239594909729573503703951194352309762316075337865745968413623251289712807506853914636473210186413997456166903058801243407958332941748946452191132295688080066680131731066869374549075812508935321332292187902672888881103275343875360598762144641422884024835842909010516916079649749552107217511276750848856517870124212655264503697879720986794080261549442764274103899671206168996701729599335446589535650557770720680466738513628498387822224628478157653795371802040723918092013683800654202288923154138292517181936487963044049808821748559641082770462159553563404639310020781011005587598561353166409546665145782596545310194409875352367794762162182522966806712972695308388338327260037175810038233008247293031865918223263650209430011209828049287574626940811363730955384600895636770781871496946352572693475583166966251921880168933469342518392653845760749838762682858977118622890984914903303882347142015918578410796429495398890275361052833253324667592277403502735010062979210993495492526850382875516051987805055938594574239203918486378261603205122807991074484964689018154630900969344389860704007716311013838336462115344523925403218416747716519687169131617783222705644287171202696913294196281611403243875625805169034364395415643200504458043770789177808065453514185374076745999053758147572374070294724580221225566828581101456050506501022747715386455714578903452603940726464479829512472863331291041791811696027190147612160873692411432505974624572823952690873047989649671481893588616869093203255620015380798414746251218779020114188905473988350157220517112822519179803812282622082917501009621680131788010493848804808665565814148940366097409886543289198738561736400420111571396489641588651554482880066850884161520816570374680052777593692745568151692639152936019496342353046523161353580640785610101789854450330152186817819450239145365608913066899546389190124625887156152785824741524487321866164549855390305824204489417645068422304498662658957716181688110419917522972069920225136515178545927043245949256730346476606954066137539514021037616172060615113361058899373286720420218952703971102789211180648631172561484791994991227717226436096173744360348509159321598282699895575348414887990787138826313298538609357467462238071205737276272624261419321784967489307782412383902914928174589112144005980166291966681938306797536731354489134857763832991914131244768574139597480557506391139715239552917905190605949564461476787727682993133804464946340100098710706118190078879757302848264000432426361284816576990519092962885987586565909765594736965078061676412092456279646309504694987565656820847053935189693358471876386215280156146804793062947636542952316197513839852971468821909328566932840175390927982099791872675261853506237940456538954081753856240210087974896560301182112661442506915163890070736838682816264928488175987623836693238728196249508945339355420725504434834163347619049149899780879402415132333050900406316947983625378844956426459505294429761363416909097560835280947051157615185655798664770110096877591320872711998835175405532054509622702220000862422795891299308320780590263768854937830652149114524200166836146078776250864817312001319752136379165779564628214875477728038709474785783866536393269446255027421498134804356395483365694986828506537336065712784685830153389602492287173933719776858196298991334212096117748083167540931361656171072125636681988802013706250352850910615853801402092780232059136322726443664256722104208922177412755510517887117815023964478031061666462111631716207005750451965589966392364818719559222338982743628051716668460950304946393832344590634204282517753851228588483160923313027093034313055972310982685202682992464526539328218858552306307201912815385713355723441901079459517700641656965057053002576867705432601876316435116394280811461006998031189311230775380255196677863984534583726149810741107628604653256454792883762763162665849019860548571289075909406215877007959119916235157957252123532201197444757628593655451911624365091591656557647052400193621003778911543274300645552059386265005972959886214489879379125671764145550926048214443712300785796056236927032687965395310636282577293554860582408617057617452892179903209772789679182863820051050835485598647184080341638912477551088394136002996082019387277172230375711461068147392054938273222080159918223721951541995991201673021212974661130749822722445862373640094532267101747950451317673193533243287285355714429603410502556824743766512997549470522191674619848333646154489244054463541495017455875982576377335472707607826189587820016674988353356903258285980447652768298403074733929049796168775515986443616609715026372410276832991325428309561682350637665001127836906096286020131338271075089766598276110987234637121591279942035647260894939188787999016053482342681924118934465337363914195279243655534642495428037573337103582757826267219416250335471890151005799675018779888055661819885236206691560424436391481648323336752075058774607963025358898919938214861345614475615121274186122917824861902007626251390395486462785245531367623785045667833025663122291453087952549390444951845386603562908343832052450307787328023515636190311898646353608902378226819318028702616245112929348007611683405746066848682818004601423354789933126147984833317965908744864365119179413745575904902147532302128826450345516536217005655866913008444725412417967533637451032503731046153950310463965854592906378679432659593803861990647614338049174058967876676071201757554259571201124100078166493762388056987236327923695326265314534389806692228684909305160054345508347284984099831985087207201076567815595911119611388812638685902941323189606247552124573059791310494438623609348435698776727182237696471321094854667668210123191937243334793454386977155891749819143280181517988776788726145842935842771702159413826152708909541829562282250576920667935367652242819194065594851775913394671362754220267440554691285383528526830855964155181369411374334467102152674336195930143723562406162567979330281767352027673103515488544516545520829437056791806183797236340563374935293995134001486599730966130281248845793918080561708632342830488480745593623049732179153428798504900629323781681349534523540863125266183428917065943809351745492251517960432655071217281901799749212150461469429739195516060557358396913023075919615978665327779509287280465872844500841535937461323364762971639257782853896689931513173863539225756377696122324716765418310107506144677980495325559182456760703278180038155116402212440313179546106970012781740034173662391147750096121688517425844323741362528697824110836150063465593285172896134167018741659455704838136630371886998309955118515285519267080543340532789320183968129226176076884616319095084873890470672355036951447600207299485685129022661796060597405173633099988174609400431313016546158631580047848232174766282749367198554797899217142915640396207527087099586554196149262735999357981865520545677442099599907370453859383584955520858752052477702574304384383967415287250134104633947432106611958981131414226554654124860320908800626243973306964350931595639572867075854821934873687848250884548981302619914112411538586297873131877549852157411476180479340347719100679856752585834980935989412067762808711676792024921321975199871498061397442699340437823433502979859497827929448474084493094622196737172792671047658058548441220227748189009975758252610498725899068552431283924920728056586625797503375377111967220695442965293733973232163672065107224580407135875819479242860459830831479480258720202575145140463744142892422940370367203343626421284723157013054195574156714583082029591484880684389654265457195627587411935957169853948297683658403764306999369323205444941556209312154828071559405714194809846306576834387245213654462889400325229782012106925069870711798462348792403271639421692276779445546718922014191936226295951910844173130467828689749281539058967970460087660807893946353525510211279138667698706395763410111443841213754647695030176633607394842052129270556431132086494937815976396394166319206970426700618716227296467908007523298741989876330097726028343444943508000403068509192275926527232167288462628627177607075508055870288705938598647320671162164149255062231288580888244800239871284803864305456883623795271857574072991360437840624135085718289033479897341125742996149457536084736768038014285161679093666801279190827207069094101159638264411294614424618040234962187158429840576759132738143930126254571371388146757252475583259589659082835353210253155662386643711803286119489320462789409833168363481516657359080940810722639918806057627829562635789153377280852908773508090900171407563434212649054672358000697716501678263022623683673598006320831263452931153917301980713546455191351638582143916070976387882192633459226042203262100892962572087514090155712541632670760765889969462715981652209393543577931258025272508255559035232551621592944911191926723542533716704547743846375361437610721920748329124856544063094137402489285143113121195905774640046853208759470933021846649942693917081685775222544564830344879951279474039272203584533890109736418605294005246020279630544390080905391015521357456801496105601545364767412125517576121749504400643537904161219424778528350119286311157189138944833972430148477560753891789150436938841262391600773309435958125813496155989222127707235326217012000299905958103251893086431978155772672910254416704380045518598624021585054558121494322890196003015307001204988174573497521641231896314726595317869722014676052048664264987857635949719331193424044845029032282772563423111591601613114178518982095187255427538270040925711772498500325217082720096610143914578900081633133222685300612699430286688347068173494299036932605592423429848968243642504077331681520762588634719229344654719526339235833520829766332506432477688811915309474281103290488437599917324800325772516537875195071841897416616378014817797669250953142365823258845087187712862753669375380464479529901636279157780902883934555083647459144314736806969767559838187176041285048063995154043135514742309164991487761726679379152670862704570597031374217185464462457397394711002956511304715693906715329831450352696158879146750357847283359919191464593989319226887055341802536480725226365385864112177796409769023583692695601320487043048098128103912674354173737244825390813178606502293886990751171160790778633881351351502318519592954760800223190946385029362880079315238411498112242857541851103012806433015499351506682325279004744730364279932014073145321866787082061994984889717753899093130989315162452779986491108453873473879066980701393572819313358582979695139097181604139629067016525928117838486656911592755930523185440395572303818471383985471731639552574882110170821105601479491864265039894757327315202503923928041382118182492319345942156577873737106139234400703183632514777574062596719074397999738244174253471469462226591602376803675316932303526242872162205343756579575796396982334881362737295174986975064581333903363194144149354010371729106974166343770920862870693925962728119649713554728845559652942621066954458661385115987500039734381212823059326025394609905385852223848370096238830829432458065426763489690362569943389351874062487880742211377115161855669929886371782183789920813224861053887742754118477964983800781328969189421430447928659923745036601113187366129431096685689347478459253722362527864739148602197778684056147250031996147959973749691251069051051366292152588603463034322100099993930784542219185031704546134890756212041181025043438396796741553880920564958150567525673996033448735869384780892707222338685213054635152824649782875061694766314990002970918375483721225407201673633478993023894609968214256966337049581650930501676975260536423846094828175360795917699218191222353073065495649235498453326821681273804798574945274005817676765152999326350585280093672147001678898370765264594018684745176478103130102691505667849882507993045481430087660862727364599331791609146774683631559443214216357484812390502556256971655905073465276515506984868645150834776327938714612686234268183178148744003573023035087871562610707002023722259374999299358032872614700927314934666759271197439406632050171423316457586088549461289935774994721492698341600825046638525775170166422234071410562436866193354477523091987286623692727028572482099157028074067775495052662182149166032038793202298116405022572831040059692373037812269532514242273776593633226592152126183583065054824981589029175649032114269749112737007694654468215479720900773527652721973253524743974265198789009814657272753677840287959862103626364701155364869330550482307424848457538478646380960679628116675886631365269909553270084213340467743713855772493799944993198385680121440370167650917642094238711218914345015294721762664767248550128427558608020896626107308496804810042226034979090283873766633164649397493322401217801872697769108843938162305751174354756766824468670978297198071228019021482222025312055797775892208811677300747026233853202186308081425962860470253766120323497174809575261720982520327093817757106465847532469496744407951117357897252409649028949965056587905959718458579632043905439741807846728474660214418820174814223187756527936876344636962893458298172625753409835292066360861682580350411074049489891089920033038245954378375568222922084019025122833947631233034884847259012132053153283860224426978862646646715313175479009557349844217252363186701369370545010030484610727779093294308242157285011305885392617226532752779410485676336122352931110578407312739026151171185976905790359841626915503157896107721629846305291168734736858226878478833438939928078883379604784239324929169271932677750483164388341288445106191553077781451223216311103668423848780903649287741945978960145315271505906652285037171311190184838454689543795283779386606124368733538408956498512353934065009252091185978776275684660657137963089484483940661703559691671626827851417977274253315460820472544726415315818339320411688120926486274826530290802599529427023314935730577192706857404796029708877921306585889563299826101068427352668767833482208031387470222242670749398462585081157049110735554016513557399288078272490141043589915447475286889523433540626295162128909277269535705133364379036356459336078117949946690704840586899151336571593993939198337109600968119527786651167034664639619951674368249969150985093921321118853915481640313921331289529211021274780921132599456341287248460499664688698042312654438076563865182002003693807086199229389337674378281445641483326036742631808880688457225703786283579679355715313920379462255991672586597968929254828769516818637921718439282518727470545953862799319256880779544987352730035235655409667119041126161264478843104171787064849261952056971729695272719120030303878343455928835998512328978337739149325390269342812977512771592199643169481474823912073615794111616873053210738352174465126486334305860821430342455186666643252158925774481625334179696126360071465846643535692056294827594267114796303540770083362477696556624645012485688137064078638233455548436482220908975044978131166263996991764120044374483364779872836306604170583271453895078176507495428334202640192367370931486210761611000184603368198641696147545480721275777939491719593367535235615523305842913229014178576196534095444700045756435252435813417179955283803686706947839970083257085877602338295953216413922245174779614855774671142273765799312379648674544953611215032373640013828710044854626669026048350411804783503157228513264898614682138848499917263886733662383718400028230840331398393821302889260272139817639746240825420232062679774003348183150422055707761036819343908839185850723372509184437275647008280216409460627898380583428779057963502659220678129669078231970261761096685383783885654785034476723598404210375518691310684261170860419058781815462699900177510845908585385629620715941619735844656141251008968444781289492464718566982829872098491161767028717819295350590658134766484864575332066270133763053837161200814808017290745022858390510316164105263889984442897725366427036519348163476038821974422681578327344392665388848291810345671132220940080500351467954303647812472749698590630560297516390254692489533542667244403066833034519060670359551178518637153638006692496559241009899408311724400144682965469480603457009756975372569904165310169285213876928823559202238856122401374988430745135636943705566819013668531056494043934388173372241108355425062849988442219987947465347339074546458444341883454663851658617256205938918430013048057699290966247927352566007326224672684311137367677063319348200637078167514368876588000584613572028095522399751262633624311159234985949274251690941677203035277227984678032525447462677815163441974746532645927044004531271921334842243040763314797236648451257666360522394565850345534935916524973973794826821409352275348903322971293949428468676973149411592964580447840251919214937349476438658631817797190204453885720353902142446202218545617593224820427575054741235577459796477639141818119884704854357412063556219672304415261334999307218035722948361432226995797466901443367421043253559591711132289500555778355547749525911535548984352657884336249901637625055174690623661279982368964302551381796947096412301851562309474835458025257198024007547042449635784921044365133381966803701916343189701542981260559077250462006131590582424312922858297681571696540803899260842997055420615184469343112584106574794426890169783519879260928557398224386979674157872473475648584410568441735369277924237426985796057732667597594620545960140719359493520863447169666153215128368101436636084587153770700551036949292320584046462737475474182387324362731632987302724343934826813301265944877660816206597854184016035676203367585719059238221907077141136084589342581351939753761165570076027436486404810262387896916075905478259216145447139414719422958931558388318994686324298847671073194606295581668392540795902029759227672110112238831168006949121988269861322152217087258178573344907637898738563606714415628517196192252205878930126610501252291434136368294946576752607526409236865271880092030245232632611095633634846724899040180489654724905502056119072698965379291965826647010210730961279746960704098969189514364455543777470276954214167027379046154297814802189188049154087617244448024727157587763548619092008722368984628944129887227170073827735715603732694003879382634610816725650885491167181568988813934668064353700635843137377831433772386282549670073347515247513948634787077101484753365379323747722559915260505850124330647211811622822772358586267665010309762813381428149341934805037553453738834094236993623039921431051463896838821513689800730416454793332263664608489306623057597027788038199954478586130832434031430096054186400017131071089275147814965638698575699762590376142704734424672019214240333316886154420585792261678072972557033640172553957417288664613771145628216098183795743609064398413272948017382263726266576779561804673848173033233163528782894731298469541043480692032092824822887739251927813993515928890611767637524688976686704234838854567824168507314737702659047109574191635350776981685318407057841691729026340738291956408040496751071573243953918824145976268883497035330490531262798874537938497449216710267009978981472812004066957475176611546017186087209549181015840332641187431823767727738595106131270380414838012769696275497103465838333425546638036791866497268340253448346165374390335880157179350543907040342276648369774976366977813411269480201319753565747499027488869733209974828955783001816012244360709670806781692150666331756421870485752050063654935207845432046173935834009055195650036858781675223256735481283777276825487283963511037846259612189305894045923778002985829644313769651228534464574355461144286271229796877606513607319987233714732610780504278976848241891995585264382693053246253679430752793168282306963785338308679040670660438439718338760392589317076893365464183084433817292688821520038604935001948308695139983880341894561601663974163892640452045236441209717971594002496000503756713902626957166722645813885950336550680917604958792056543135500487778140745855800113129592193373910582269309764035097646575185214181501322078455977782657773823986696445931665915056951598115540521677948833888249358678006867994953372247205362406626366486054097790286354240262449389763928419177920770891040666282934541672081115066117434058902763391358390266941665825174443514388892212752747725967082110368945424861295370189473347714185731068671029658770026486854379410246996539877010119274152711264952115436251550646131030979803287385459175932557891147396955948257876987187421727710898286152957892092277833672838360247420928318343516215457221080575820306339900594280983726022218657066843527275540571938849845529122823208649492826119979362799450550927047579520594470045486429701701823638855443994292018123106783319208160713400892266028502364389955915332026573950712769738771715704953286324065675095426467674455855853039044393028546829863949409960369381509004222141819855656207334717076594336731321933950223931946942152460925707806244862115014866371786876967867522988760048556543420342679696253014654282776502068811875738391171453033837156330514490235355202590948077503775826323935629446147171219815939904663908926235211593796638271877045285324546989332220755788336851015280681316716928146031525843305936596040789294161959312316925128029622095529744835504426741103205847400577374055917732123810221498476317818277928795061384524394770585507799731327629496167133899029798688694523612120232141023638670592336434913049112407110522403207516106041869633154517926278311667200709282405106684376979596767553825568545247686354835695751766199788799385617340454119875962488323571301552692211169481456349872966164251020593659615699203140354517515289865066279682352523310943326853540642306938008266439444113814684614411595328973907220427880059693044290822171647405547732478182654826850409726215371875800838885298503637469240141949869956666624923223945054214117199413392663539128698088496026999656606758309739240408936954364634679633720905067650165987786527785421540959476633494784656647443587476555086372311418829361336994423802092114651998105172630981900489404309570585046103265189619599473636880878245846425708812926560375347025068064652584978335656325273324146305459933586701120914810516564839118363447617318960298095497594791919025633474588088093329872832489246706738948876537389502779405922200715339211406308485632173702732429460804336114975994015472157577675522903521523344830667592812888067590114437752551530999183648381036559213531838170042928514842041198070640751206127814536429967832474542494548915021148827875469644840325500296841566259078573624415582429741305880666343925453348500339629151665036908567880839960112506683242515455904805545943119206830960048578391367231934332767433998433534457964835755832069055621941661635754046787251577554582725366251602154754607606931547618419382065753031260399378765058880706955272824909978760855134310619271914804083837469763574735415337866084794830208396346070077137013131408239722759746709851531571769619100151075322248692301669647575740973671805333602729459809987897569540748604549661189587053653368073076389617589228991096479858984718169176497101674853052085075261587970340990597496169896061420175788111301093826435787582373003191542464783819217824490990681222017188456969739861396322756124348360183909686218786302567567809841812593794088138112142198338841682269276900043512176915443417478620834063192267669443859441231830908324050699378269191478602535530847253868387664181172985528298550053155767795491055142514508446247876538417763646456225584793960681966991946601477063702672325414668096929500458831603864096188501486078903855144566673884251010981419557294489737688188858293065594050503907781666500929916885124989110811770354814578374210419340162844393267977666282551354546581234914109293162690952758642512583351210657002806479500276105303734007587727623040639553471173071509634695495406592374922160349962105876899822594126621403692580921007315286738373313466226535687895329870872206478780820398264760306853547252381296469239615991114754138011144158067710667376269039278980411734166224896075209465277951126759979787824204575645345209182653789637546931927944929642089536873435191754872200263799452411793766007565738665324554908445245282311766769231026591355349984026815938737896512634277883279080418750580702415862703478399069328939172823589871724902395210711084461327524942150853510269638103780869664605116571468205414005564412211221981949543634697999855180584431554730974582647119884011223490648752841578592396081536083792109380173349300928796956100169156869264720108502852961738042765833580771949898638442543360900401524580930386636065212034316975501866114277610985037129165035949562404337025881534977569598309551736258545173212258528598566383719811668400968043742817034126719846885333202238438870680645763700045244239245750195982590454466297926370417302874165358269501577556460632976561190964920504319237101220458177069720094853181844309061189572238130248663186323297654415197316410546008259013962088626635242730513634363752502247496336411147924644173531564322343853733351058958990005941758501814882329499250594639208843533049322915139194244850211045531062420628267683871310710400064480722663473417374734273384551836876268724206999314648576783993020958070353082924108041603572152800475972794558683806012779216348927671175686294285007257443684217694972822572773363931963100483360140351106936367800712119194238564984767816255841226148116559749133168142262432750964458028157394558373931600923539767780957122189696682868597840277401848883707872412527925464654237660185444790272065097831582740684431030951725236628120068843523765218184323284873052364057793738811391561022597465005059266102178119260335544198128360256318626514502040489097074389189458086915201174588714756182847189602553067785777261712414033789817774550995230949148801646189697513672885527828754030239933020914077982320460404945419330221926063283115045838033508697889764302682727712859211520123705912350954520397003777196733410790391062706842679623503972130978463958545559611308593234795822327682998002317693639111933633706669901890119610978378156279921069596501571954046247459260737793305842973579510511135886486642852502124807592610010266878409664709667656387751995507830607881473070435097337312919340256141789676878084960907912362773929574410681088887507674278333540526129304211639190740105234711430279602855843567536683996279924294964049705650004793338384171960497336922571376295645057052867638455275095727279347493653266376284691751498596264957970284881482144357274579903882917986949227228639487471855555418935714993022599356114697717242817602069267871201712759991226064187125585828416036542341651959741560538362641933705454070140563853376595065749409466722086193132190626287425671900502632467774568278772281795970194979674757648893823713327523890454265959670657520287292907275904473721941247616643156488453992922126001776431288775980079545852390569109216049125937069299268624742331297965299227706974607543530104110389765889556844621572312531221906469852506416169201100285837723418674772594848624974728720270625065975287432187420805534487379187116642864524380877547226568657601325198113791561240157231109617563387783314346097348159265018202495571167653865326878390218621092198879157935283869088185689639238572983605357289560023380707299317309076978135943004763622730287835072631497884965597645737122511516772064530568026804012442970153798404521642620510022054865298491570628844029359623935238368912963978489173077018401810221727075657992201147633046123526611959829221329444948117090512543243592476321433081831098496278932601743787666792073036939789984254540994820730522900059120882579530620158653768535156662087181521633402078230698771084357180073655207244347455974087230485501454419069157367201519393546028377124310604691387221870176715702990728091085893773238473399947703080859552554613036853781335103175789678275034565628864432598887908558036641422192672328009734460633950002221956714818959105238807325398845905804469768696100579238955577528070898395792322011777081672605342830762224641022516674802028566491970138226640709785813118674863193681429589462900415572276933637993407377293462563826711778002133009431211207894010564894201368628486784054536914069308521762017803472524132015916881618815428532460289627906507438623271561215454318361814021266110561312247700424116259709148543174460276815185279292249515225365102429624392129754852334291532524952099442486644759489276861539828210589246904680391638817423215547523820174310446715744159431205682699955125964330072352450552966596058523300415849708455171079055059742259252683437451535175018772624954115369472395582986005892082950452257788353722799425373164366594628707819558542540723886801509232874996427524582134881093869828199422795825256601306411562561998659887270931391138990350035458287548519887299772803157114223751724134321311605075713775029911566360421411627023097065903931224009621781763145108038344047354903909068870897410600868685913107835400552393156975472945511870626303719447997112369086877620846107852626628117563221088073205541153387809488498232072099473956767644119429616694984233251342680229459579086594864749879676129312827722356075527530503069006360754850015763232257683443843998864954073309001487696730598142661907978873134440159053343211073749428578188179629290088056629381231131299528963459726561887582332886927980342059300963652247863360564176513859723686987984809631322419962271750406988389196350274646704191330181460465187674970119669168927937483290618474004683651675461912008405744193130387401511612664456554267019504200328696969215730044857624178641924012890865595666582383472413638875963791455028194082236621708908576422256140417999591050249806851535901667020467863360034720509429348885171805473482316901478452624737914320069976276820061293980977906391291097712369763713381476076242433543350077440248506630913623215785527619808517516046729516889132537081314411665126724468744589999605664877149161476280906691688462946866850639204484628483429717958996710764740631595418246835438262136248042469383441023817430058411321617648306454576947302888695977589549909770961077263529900414662462853676198362549643521438412756591096222802163124857370663913751868564815200816987053830354646753999385572624441947069661506895464933816792502535984490115542440763222222874501913783511124355486473173955589186337183128071917032461528367354202556254339349114020042185397861690042336555309634247763410908634890808062808150427872521289163574569572803399904969103329127904419152189518312317206552217716871192718176605738784191700163868757212206860912428371615143018029947652241072514026464383296012800239619395404014744650650829408732129082667040074629558208184481479514614324457552181640129569019764921713475711099249518945068530524829980220849230128359045063606923268858505129230629097569507676425258189203349147098205556180506392099936007550885445667403546198202426518120117301327568258551166805312268360635451314597461699773733673869405849168710990812804040107085244386932825030739552593640655954362498612537427755856421619688159345563736853194678795853783254623781840883851215589571232630489176379358600417120763617102067772280571407818619399852543328809830364076679345583854434012642922351678124553473939082517860251318129395952826390068198301508851552858664129799175494570273032975817246107707310462618339691127001984979706954143323440779472375842439929275372253280238882685246681264757593654077790044964872262768073179247720899698567900828142390287294734859930189313722347856961339200995297170553040976491794441979625224529094111351985931971254869584221851358651091122838258932869321896923918812896211502296316650686379675959060905435238050608892146672933734170645955487432270329865404876370737067262129424756440879088897943958402273603358242352716438274512506525938581115275251454149320400232740077933272987858194869116023329995471823147874773667097432320403426849245388781443846662404523171616635296789042336238373634851922591187441687604726813687196213720008143271659529266533054124637639933882853127720898500003375135729179592282192759703517008657132217437442013213458490313467700174299444986092283634232452978745494300317319282178262539611256957279451927340806767238047003825566028166577694490713332536720582229835303939483641921054030811801057191644710075805415490339948167331959992397475918405164876691959712339957559051846039371096210098543329227010870263612079522879383320223872090979149587286634754981932500344478921706828544036500800866315857153537122576163702374130040291535249268950468290216492005547261796378860783556999024544360202764866488814432610369683611630177572457879516283052106658999009717427417227111063573272981547428811861020232998237163477588115025299726191210750707822877531846615141141266184138571265097519627352875900629797014286014070845523981087547408718415066714011364598119872247582626631583403970835304188125455064360143611403739754060667779847535084508445516067754194941441079788614298773986411105665889616935378296218811223108662981398246763730981868841568165278386808697101690655007042923909501422414966033927738066028156229628017236827286132591120722099515284169351323912437265330395512813895363280453936279806356385105906302942108385045243587243034392515390544427267263615474801113420122861323200496252591385546233864720893117179392006514595759686186571785410019688206215321811711225808273104956177848086886598568744773094726053844243239241908542624281230967004714815004086049640643188120131171187211691949487725591008587083896250062730724434779662005796686321245344061984320706820794144333344376025349692601792691037677789355461408595105061424016965045623936908525747506711531962183566805266092638346520787152425267468683787020939172929534250715622346334532957985036214312544128477557991833918731494525879051544405703001209112114746589767488237630492018303471658628720472600195087540681233056086882583723674890552018010471639832580546648563239542135021908017465198513213521614562803690068415863433173070669440552477959391994288890393830458853826501500715752220545582130842928378280376633186830313403717287376896123524603734135085370428063201755753009929550813516979711989954765920035181542775802234393951633299185795648730423133540410886506154652536641247700437728916481134249545503227975609454765844839896218512291416717054693461074671962316434597048620088440062422126657905763478225867671905109474451150756905516519372794321005867907026453166691860081709388324015800136727771259499461522604705414633123314400935902685356446951776364753621113805115338590033809953047120050547637251660075250709946696593081140725192681614197163205564671012129268121646271530660095596373599532134409474645802062074416871566018395224396399720268169877718168241604907650225763376504782830290008259395321313923714366607229442452674258753866584950030231630776448324247986130926889600889798589586143679220266362418047035283630123216135434719622780901916868613261547082540151662312525654992245674160875134608177358964307641512299726075257072687023192201123637358110302643073389095405945780506133970903797758384961468066985320290369863025816101205889940647193409045708591960796437444049130591716129413798936790941064616873757952741352750625469120653215016485081649346983670211756199184115359387367378829908633936653073274303367784741519666647602186463087806201624554295424801221161316478552004526582649077047610934940600138568134689568954610300620490938606653982007200379744637039788381361521863640807351038986048947451273256766912592838047368145461523423866931421995956668845955136681545067174519328241266860079427948907129026029570122426139053929963690042832657265254644000814716508254786215017798434442413602140166970389772960106695470905914373043270864988533056736509164245382991256704432021231202401803507891731231044689525002853091673968371899224711812409344845257262701625378303540585817138639588564428821422100890577754321202641298437564995491739795438369099164182130686686749965554755952674018556509239464001978522530367954033249832939858168922982341684307317239266560760882327159966925806417485817350029068536836075069599003539882032830931435834993490780529707991995532373483371361241156386795524711389176578502517790698061431807514908559455956238308145307797591885721455951668753154789725108100001889325734034102751254210110016883628437357862148420809483860239004934289071231558284663682013560314533106086418745668635283575152174824116902869721478623665689385594911456642512404081856601197009469413577515726064312728303619348307139914832667226478470666818459613083572787436402189544315884179929421108378907998161717233808293780304178120873292686884428654709158384768634101686383416984277807632099177433478332586080058742227976673864636240344054139623221512262712056233854861542351731747176790587544614073718686626222933144338578964792409442982815613315004579650576265996230008777433047326999383358107799733513536536266227839732028758823018144374051967527905614894803068444159382901297846559879884412576197003566132224547044172397771580773868938498346939066174740791882567837146053116389428852758121882129074587942515002230411267516082277463518820608340358862098165605677878043693912719740101965894608134862019469757809677245231869264441351295826235367970400487690423428760909395462846518939842871554392584906996331702504463437245717741919602177609991162096912476030112078960813963610371475353529083801771457367208453642218567307130959583869206677910460530900903695395073704406399452905680059456144784647801400035765305911262629178842948433125230848554786795178190996531353355564813797684996718523508156649902850979684791187307124899985595923549267156218988270976550306092579940255008389182401985720335418266732280982899026404079744860406930829533549085127684748351012927735033278966545937297093121050500722552396026074326862886666792584926533753862668741680469582915244747501995153219455866211409470390002540490466905226101237581788242652388745232566299366114215222117395151661318684161208627792854492615513105210483031676927468985904688092273194284975907684299621990964392741004573668967719254634068686006940880364580781452481191852585374325110171021366871755509651990192556825661652986558065075893954452894748757047895037335978339767257656872750293750505635775545176953914071513403285664694571809329303199905529093535945137736705016711739491030361795699877505750528819855014715793234101313156066044070220683226055033881004975566256270269727033861733760598798720140839553495530811436847749816524540151935133509987259459871906527234867658269707205583790405348447921506767591246584040446829729434644369008588082348916121764614314320017457290368249779030755744750589737497542885169094573143495135922028068073994363313295230478508506378626121978628017773193406059239257476398245425212703854812658163838917301631663095624329634641879470218699014828193560661069733429533770122709508698477627387239637956334138531217532402721122146440177783544856098678138075412896944583188330794246859595506752625532592815430988366311172575780980985568195111692190721549520879833275523023011505438531695036736700810445027009571992300147629611521221845757209174343028392297602457895372974707996101644715024943050067982054903132497669682559622986015320164655815001568627767734782215330089328355580836110571529103423770048175636246353962153245720549253354588936653771493624077245205135980081047153810758502176933407263264512091986606934013444934637266639115715658295171825426671121579503013503963214501862007782047307339977720418497005482262701541318451512857912599197122020589993294305354015558433614125645570322606789998594574536506879328556642656313177285371700092403898505079351431045878040892248843844421065584763798843536394002938668306428248685203077803009425666266671087147721588025051770227028241237768341521905381940616518383816930909426838808162472534743620016596046540887182548951809324250850886473491224096031885325829010749153849124204465501872979322748695091797776364440645062021102641264011521807213637985899924077547284894504342407628184194312160332796043852937136980802971265611311326460974596797564044498526527554088886773752201143641650444625306445691399294828152096215204564148598565673186677442067023508926759404709296458834456646383587245342474696912833087835702583905392765689412703410857640447306276017334238469969042439012572635881588582282618886845271986500892276746585970704798732536061552788646741011069034843474155434852994125757353957708605809797296149308896708665466918600826600930293987869415226623627163986559278767161414289592164556978399388332978698351856798851218327349428040381546633350411046320445513644000231872189196421816378881577325192161491211164230325479627478997161554893445169103681991865331264924519172187276197076905877052128770954192535947949870847212258894273109974392636071173299315902262267058700679165394177934721149963299055727678388450237479465833003352659754444151981087897994483513738910100109722526845542335007164255417323302609507011708270426539186260962968938075403950282157041570679330181928839340736045071763183734843278462919942556514093164101799975882901249754162629835288989771596771671954555825500919612177077502916939954201289697315461640917523963836977065512292277914133652625113157926169638417030075183002057248989779333667598317127392279903122669539576233694292613103154690561327508741957771299604260943341924320756419280601539074556802850655293215361425303535205034217319857659909060324020853476951634113787063699438716981310796327310103033611152864330560893100535314180145881960236595694858819756825599349600282091105001273768543528636323485053036428556694895921282827651535368041616952399056477793618191966788308394563180148229806829033418668313141070186795635199240551123857972635161272559736840268102123473077242226264046388262341635791971926914123213565979108983098395796865377447338182329629339770207919033732623271514925909794379002878817314933460678286396973577171074650056230447523040214192200110505151268301271499026929590370026730977854538868813232448646195964438035007771998633614768466823992850525521998791825854071284081170968766729851245062706002713495846413169976338877367498577685870375659949021703708927361120992631337728929778942097193540397950217481021250750829165175963157181930084713313547524710385936216464061684787323618419145156808825353809016190893885175746072155888046038957697524839401097623021817694729612678980267470147136094802361646879565834994660850397955186213948842866033496276029771927016903030331381589643367648537439324284412178611605428549229893783544096191859500316643997200030555073103287994301838298974609788439517823395666191759995195424542303222943491575200045760473643588516060587205210532117935804643640844838783276197439348259696801661753496454910991736275818835014519694814449924324922042617589165392905330743590603588702944617712176404125714708597045144142086757078932555833743049269571116392733268791029881585657538028902406036851581348387393593939085135572417794853302974814946920350040639756329831965335620308082553845533792850519522244624905212584826348115677469921776088644956553839384910120454289032537262395662766518439920129113546291765722450456676943085855542458430558003816229089287439831095078760468513880470430826279603507775056334465110162573783820582895840110284949128259971341028395863503696311979833295634809154366989055300745593480315460828669637502537698407377978638841334540132706967702820493824905839430940133407086493333881341879725186868211876405561325431817654227111909007829396680880648327084694012264129642206923559518899107082227883355174352667244307581231029249714645219975169593755515252000789129406021302535632149899521498294512968941434532670887381454109670266660221024092342013399376290856028752010269282926559152148973676444219114787444183975104800024349962821464994290855995485388416183553586952407230307496329687401352495374311298463775326095078995906207676376679542941644989178028430411040248878965581392360736767272460242396634629498503905013464288319534925689060803064654783337367508696087339375418376786594859208376674175370540970096045961715897167083273019651214752221890419566988767531131141495264049317678321294576718701929749358256079611784208310506589183379861909166419701291261347139068364977471598824598426390722947848280470756945016828031113966010309383361941731394157947667551874055864443653038700259698256405346036762896897274541653141652372960388160171263898332890503584853639437724423168691890566191639722929561800000814410164585629333231752443090228293669723118991715319945175528933321668544598148856554651743288263836856628188862532636714235897155422287246362359863209708009270119683145453728094601482098660318962002227656710054851920483099168256883679959964271754505191384747291231694696900647713369183199424950533270854400270760506345656467704062859181649074513769547260030884752213442084547539121001363487133637598317797415409718626527497993996524045442221987254958454600381364304978204718021902395090453676228171163809982289659610271759958048964360323875995928986002678558442279742481259849478702338355047377319460172948733819740012842559629320615036373170017441503713019597093923025552480024328707395892327777310429598878558831134093137158916927806120048202931525935584317671866991614979965628917397359628782800255212462375144574629099457086467938073017874928281810558221191854358505787962723654490217958102701752222811542842458222991677494411508561627980024929832034207762496008300238046617298075011713783776001468151550680267476088651007470759529105571769657962943383278710979520980098298675771868658848799313968280585452897641117132021892250165021005730046554786782344807150272320969326650622878246419792098066952665989675977141461977413453697747903994757270197547262639101771262175721356214140868865388144288606467764020546395195186964651467092634472933561536563186227489979209949843494560926224275844500156129526147052653532263920075510087010280743405484741423649510362119169748613071904626117430773921872021426941531681504867374118941180671914732466360582375174576950629572920506838010572005907178508637524255159988976719474107307486545568755095701801900122635429091646714309140622333717383746310891632155325835270725069009461070044996973829714955034508323449653786695048574232965797816470572223316692901930011392593517493779995871490514034243790371568038033887714085002024575074170948838592606433499490966922367633888501077590551564226905467056593785551841606339032481078274938308966028947167627667899749240007266060467948058935433355212533450887640092957704631113183764223058409767817499655323507025407431390438018516136240876435220048098393367613498304628733084763563981426481110087210413458251156460165080302937953990069324922923249771110885329577763005717887723676854436177077722192657618602441356887156790057096145757074738553931192183119489185312100721218438930742098492223654188775131979227577201426336273836355113832374693100672912752453728518206364437311720652665495210822490083337790888161663548934233932422768842414059706122679511835733919093487616933212386238739739825547672794352668087274250805762264057101731694192064318452402007891915592127824432558847063977615824927636837786701820453004608643145383833307154080142857043081969483137303515676408622492164181570812395408577716135947479789303589130244059081929917303902237187501426476885887693263542613545701753412051454410231391848623436888001503796868786276266875514927938451380566098271234890114072825666054305762164526477662171896705312584316615758160462772811965120957044307828238599422669577357257172832249732351322468043868333570781565433418692577660742278306019859895777478406051652955947425130455254723158522227338649586087900047183520929503649238318224149085404384819459887809092625554061984601822090242436179337558915510056373566489274363400544692685612454915827376536793259912065076700657943205480044529984495888035766241454135908503918304339756403314175034636489784162794185600899379408062056888959143069455417169144674855820175728998221470999994058721295860950563302930387643037274158506388647370308534043102753619482519990204992460860681680399047847011535384380464604388843407787787045598495800752397592006922026507946612712382119556583546433772429465846494150439746082152043892268916858242752251491670344926005812109013500854522857369159537044903905769329685358561255744742408533165721319910775144147527978076415079432437710072118785116875487705782946579988672831294082104097111159249542344419102938523762111436855764874341571200337823585207893371304573060206585039898204833945693548420823649513765690882608077484386156844851739886197833860353833664891574715599180358528950372582803531417840892551104735311069437758223749956428327024016152059733884298705926162301419422971650428621091867324188040700021654894781793617716703359625758108063850814560774938042406323663165548267488102402804959384633109046677039667632037421133224942880400889638379034948461785443909652263720086060505623683739374632039668955188072005563301874904144858432097854139967310867276933870584958477304662773085521814987395893746999415930801221764637918187359370779365615247590549696416844463816599250717699819432041712867211839380307486243907746242864420459799796151861925398463527572169762360679216219191022105535140882490105651226416572957331149161425135445543415290672516947881081897816483912600011694336750201344732789027763360083985103935332809815759776302354564580035230077578733105942790710872729394177587606712116905356897890478205254657613139784958203074010186374925690096483906126752821350429860560844669754383788505010884328666878625746155359219388576607362676081008348760519563073738616879266149024060754842100641636838206694655687981702712371488302910510190611851264141090982598192260306170439741688571323956440804811256030651649875133856653685979451371578345616049542568506015249756736721536830349640067987056101074240796425933088264001946369775877039472189097841005314760200745373185744681421872563378634151023622017326409633841677830358587999127034489023888090100312228919714490047489215456909210160261698874855617277492089589845733528900848083400651275214198917303120556195420752889476616502649110029500801632077622692039334197620814706740004247402014325935497299161059497036056234681284147690767381002556989147276113122741808868039375002662229327117748995490089442109696023109003737900320726786920678767229613671553694153344403223082986339066550249228530868226568669585590707440072405984405217745701589367993205827156985243885703247511627949951905403218716060111006909730963257946540735787474001947502004765835537093721664465324336117819795231228385247601065913231089275110245655252664209954694522535743815561996099072965716949440559396475678882618619178694708302719077385847171871965835842247457238276271796509844680516692053197171842717485561712972756605545061367832068803492753466944535303383236946256012206688600899108357650523464394488379217692777634640729861410546323397950941223709733302854869845389454569684371790182442627555667588779693370989621549477158827989813199743602313049326758932642778792723555090069229228733078321656840650307123339815182158015579626456743645816159319008364761605070843213049063538012966181843908365054150184504523537463791853921115451751854679350290582673278299891917468421934762497005114234020953288569563015084439737239112622120652312501890285329794940519629431500856272208462022742923443410450885516683547946198554874749886640749665789951039844842892900805955955242722754719742780411989203171326034772112693194644114034360764016250272115005653656295856461264139263596323059259965141398887046327213691609777027964612659014703212685040638165488906774709512582137568283446077337700762014115425453347467866852542494989549502544637332067247171623155692945749294540430956721909785110343366975743816277956619682897941645065655430787179974691870243409285733497910837564049195740940729051234703608992591904681999491094295966002914489409069736238105206373159014458885862556682508549197946138116760435169483682812400675086429293021637430997769318255959988914712029238858452151012274936508659461869939522004734756367783668580231142516386536618593788144951655386026437828849590896569791743059520881359420138288056452109988319561670292412111343967699497289655205333809593942456276447148250188336291149095161808970216100711053933532800993382007526063014963095299277253373216174878178769027009265581704889515168451944127595476229582864127331035405786683684826882344736683933295915256738449739235540546056936464133921079357050436529084912036081372463589817617342309051411251448399164858895002431884057580131566880759065722655394651472058366824492298048737764852337609017545523768340856720166198756347033400467014351151251133867632415282592105140204083444615007897153765183661350106096398594799194236214148005726601674650654744511757055054835062545170219094661694339794834685814977193164896169233912485861249540789698400691846547435669275424776231581108465296545468819582043771186271077496631780524413022843523947088253200846238588317777239037708839282882958215256032237344742041141557612337817184398971663124173713767714032964443203458367722146268857547847940061184563816691185599798789467151624312698985312425965205623206676097227901763308745651037040623405790773725953515114866842656542435395508099414854649458656089030242537505851242162342103402535237656378324604093895566660083521704326218130631693795911056138472660067489274013094801763276508370353644413455124241790710405631773323571237099611233197667188013309702717079862377896626946774282853567135096513491505821590274192742802283163979096494598678189666565242506575297043316545402891274185523092538020520372942674787108485151699282278651588163354415028245011434148089930907678030468458192998679471090066869270221546357854052946971322150800047284976724819338932014093136445724495575353587066652363883609219465336501996589927577646537794913176392773938767454418765483644432645665071793063099400541453544416143760967221964110698406970145204110481707812538654423048762655157720495457405697287847284725661944865615305739470258288321830402869783792753770187545219369586377517936788580711786348731189699756591950231878332377638598258024400841335236365940104072494350964501783164830605553979605379097908647652954224945898087474339464175552981722767428293574796648823506027159926536786156086468735109132673333640108577146717933360867316167209040665770840930515101547762808651418410062932362940409725104079993401226404823732777827354763729792896878554017820569026458591491934621917314787745040961158056722833378247554817003006613039609337766721836357867058436042076017412694609671135934763991885329489324456419356439013096316908045331479648155479046147396275962432081882162641427554027658097925046822983096653164312884522029890213796844695708986685894038735995096357608006195867855941434622187240300355242455000308096601763046553011621126332969500257577233048142035991379681171500749860324770753146336865210861707398129438383361810139969179040302900769972967031947062352587719472544039719929786617340456587193252494432657483211062662081434694630043829813114651291244983117199649492282512951680271383915900904385654918384079261159272672464203825787523762017548455494687251679046440532749417817101344400259116040782309951821971001364423969439237496985715462248903790350355595093437380691145987762979750873775153242037817942880707525618349295805266074034384928348269487884890632030485625699617870435208443121317335471152341446154134574985725358024021319768118775784650753532858882136877697320768072769093884429391398291715307472281700953735762922749140985420193015453404753862448744621151213177393758639890212693293779849189054463846229168696699042811809032905873669477428072913294368568137843610745661277350099228880039733571926114051402132282800876143512036178104446928973126651857240837650876521056693558204696328813740025450596918703981392250850284985216098480568973443979325500984693167167834512030804114911362027974128522978710941475591043164348098661480514609069198584082094838522779525955306509819508251643581305625787114930731620137166615550840206783434786821807867184154138357487491366732320923265839871711679549813160354611319291332449877216587177362519436578041748306072150891971417434415227555379677498905392691514211893846377477308422494287884218291479133555561658976268172457785511326494269603205973735101647541736091166755011870726817535576362873275154380734442530257981514556846621492297973143645429718520280686241898296273962198760133653179933067147882246966287153538542857855028348878997316662069188331175221230004689124232177172623564573915300984519102525510427719254925567436943846489657777628514311092865333902073791293020104498957720342439972331998256797262879167441898168224900727166899467657416017555219096733987009134128152302929782151227385491707026535290977934227459823413242182774804384303956799170605304283329486096630821167667175281016625735108743755651969110580558447229409683713777029834137998515655112869848950037611633004355489501448327440306077039818183867997681858378978808208114620469516702768283776893926397222717735211534967271960269787042458743962065462008688817493299455577925192122727135621990720817731663293442483805783406937883605047432057958513337068895773161694431888034720159536776643674932421395385626301583943780661063764502206617369776472297490629023591959244139821756753595632975242237781492608818601856635702355044811040426669919149110033571309114244546548570730040980445851715864551763240692547764403200597246198707564484127119078163559145086221499195461840289674816571072572203614784922558543491408965458901936251332957231385514883755016916480056498338749501607050272733739665803735419938179272611255987548192716870191523900061500558665750521918705057288179013821979295889261722413553997504627582568866467240444533499902951525421587499415639126321727104231747111580680513042779774873282222148967922252647165694224284858865550447331631093186972283466790726358017921772262948177480122834672928434392119108286821004777114560507634811143892508658669711067754276033365173246555321752839734489752991195951938480758121237660238981307900995820986691436640924876887298910679474499757994637424474304990115210736986673828617818970464052148589436709045574148251358944084967402012262367812167267306416763527454940006424749343714146887234226464252768101283118138294791709085904530507348020307096512925106503305102956173331088131971743349585372643891101886859177591077058399759062238733914479968800137294902014924575889463181135807019705381967678675000677572985067360825648862907846693338142261693256969716093737375995524648961023550031336796817721519433019374612912574273739089693892454745614177533169246389941410452211722455790161666365450362081642724129946868036234716094883056927058857555108892543584748714586430182379941325988190240747851573718674738418770283228696729233558856705570284131447487000643722209557992379716110313052757029266400667752302337631538693508832748973610470828204635597629546600361872300493798671789243297490695948657908779763302937085683979168006301029348455488962127164102445372066828261627996652308205059248796033986561554448097290503771449513479885311849220059808377687141946269466739580963717651112157966950147132569542235707122450629330483212181497521388662756411121756716732730928565929079756130430453922648481173216809372252089888814880269254867537423703194035843061973595229771361400494742301021773238990954855520408307780031271410797811243280780926218294296011424123673466029404517333961153522530582359536525097114565957613366876208379698365324550386684722152092901151852889030758938238082302782954657583274050763258937913295052322312795109250014168037772009539463286683725594601608435549405053285959291277422837984216224110451953827555782525022641948948377803135139943026245351897832815784285281061043685885875668753094045147457412194165300252425079000063069595948348981449846192562320872973598227348978363755158417568783770945550474323280317749362882471114348145558796059075456569771926926346281010081858716517675108216803203727462499921193596084954462605979871768691447330240047867708752709389874463874302463896353887964296344516328660967174191831883231271239574126991198215135037592107605666245725148636551385721279124615597280948459061998210162542193688853945734999610369536084833388811103045104859088368726714418437223831246901814353182364257504742588929092326658691033961189316082533539186550234350141369589954459920208193813948128054461010565537858909905593281449574551107038701410665003371189702424196959781458658797824290265453970369622960086096807808952403941723923548586602993202565353442755330394030185404026806083829393350700604878291815477161603064435722304402268602964320446730586875138883568479854009190901140214802216912875846475419717816969133646939183823242922584294926653880797956869390216208671102372958373688932758892305868249184355149313829859154415791770297380284955699905620668772476773245630334621887871479098554069665192688451919573361321226457517097800413802209541620824977316860190102097254661059737570974535693377123575458181209891030242361029950962675759197053546729987985620128162801815964657225770308473746361158845284715443881455854937717451861737871428929217979162308229896935207537156296722967528797594067870594101986270456507858899175248958391451101643963893043545470890945134691837085270802549609525746820587614875699034521513973514286119014423126218278081202097374210231848654264004383738274594191656705374404872741657074246873087963677384753012322054546623389585097106359870652024880507649282858984935849628771480522063422958124137126266146589017690771968250299297269014461281886705684197046554655695577647671295244754983337111062085892281182792473807886539130099613543614113869021035703012300326667663469601494996223266483901249172550252933401830624336631628149704284345991995856980938313033075549651912111355463656658370320154955086167760210130811567285786368073291447895476679313902473157668645089934801515531622793913505511677101437215637213218169442308755795302092085024840672876014343831316662280876367252961491698285518526748972044820479268383357225323028941053898663246510060512116808993914775890693748879286270283985951555450051214030291885080045730904339774124299099581891320739915481670980372951080533971967417859550825426688635598941160326842229133717158761199197189470834599182131325589570919802753197367376577440617147721914427806200884416317213409749724920079581494122274101343213294741869356886917379026119408419807718005333525357757867852591731914193371613966925585348502152924381687321682273108234396994933079846952072066160763967992129149274350155043188690355857977809378297052196800414053048071715079205938137674277392138540976599145735503693096215964137044964524344505754664605900403486095219387387736941245677374130657253936099157489466031014014744498643331317960785742353017512427271719269117237526370476079438163959832169432824250875746045423491184210390156921819705888927806676883968878496966311179901468605303080389369872393371479891125121582464347268571999376208891225749494589341288627032290203962566309362630123308473869372239116403710562293321722827892796659071553398457311821209557010945701382832008077636935929230610200482107573585834912771569748660701442289090009069274000082722471548269019133243975290891657623097291753500601036228720085435529518706387002536460347308798338731558653982678992084623178941516523006425196626915432455864857918667901324886644747757219263318330006389646665648948362041669594004478788196168795518787277230911129168898753137353991007230826542460483135307261079974753352184331208986263000004015934551649279559643770098893085162239090253102129817508598783076438647349725290512389790026269981195792794553473950559579155146593560609360289940234555480781283885495612453291621564735997958934152461103890293301517636139021233028974842417160596226960513102291196908152525138676756904607427805938900283824999046955895247397899760327862293107323883630957623668777737716998024672908022138218860738622284802587553555505894132194530743311914738022846547084616881499070763946722961572058962873856028706543259724433656883038831219121083141777274163148031946229401258988132771428274977724275831182908843242350830214970672614988491546805124756439684431771561166068612005920525834083111587011050988146316742814101840345906918150500534339323874373591938091674971396745643604134798022077199890520022455749749126130827142502778276145057203844846156776595988746626254236540776224665254092548279660315694041230289721207760725736038387042108189484298340234160579740864902460138670683422833302598865013238965760486590498031034759863056257852821160063038254654750054445057040747815985864779003583530549021697735438734187027886451792438337367069073988399542277854039554754941085139601899822289263125242336609475264519606012345484965518146297197915193308217869594807093308957648711242924848781569776420724222228832266782091430107979390606443361804563338261276829566123552873058014676070605745361424922481129589121567884516094950686896049590847289245453437726265417846079978984888359792174977111484473275464860059928529816238296341918709889183949715614537791265227810850881996094005679623140774807230223711001048499683068952551844462202602152094790059033427404747446148295500844824469722814379904644062771850487892327666722648510198042911362763147525008121821507859651630311617269010625185955103571090300127022549764794356330045506091852326766736532375616385556680621427229655435684833693307332120141801519548217894656400161278781725005723896674946668236666639712707121819741191198563672178399267697853384368421533764100697224160110471162347372704416726732272544039386032281438468564811461972325277557418569232575995236557125680309777601138737756099199028790081773040095563583688865755771051792458068658843778896522765711594656708874953088360893465126754657107492686648388640919524385034326035306739148123398479434714064952514749514348738449203178369778777595522660852085960759358519517147133820705672892316609956307496392648368469720426064658302083499866274462245476123098550454028413325870308845900087911498074652143925891909309419603603960932130268547478885254864909962979558846721872128530343528825519803451917804256220697597858084852039182270558220987783271493442668520230382055455444346159494886120878547472181314467537174708431995589011829350661763623215123414427850305476849693714603056137303481671051670913053244593032633463771110010784522970238213700877155176284786210786035656417196665027174135513377456866526027153981305225907813234604260822591134785500735491414338236673431069174945315604990921014607226003940914662968881960211172454771436468999109954340504992221026727116817703627493326668785323930621382896877859663407324154386022602089670147959014260981229899148052873046500615355914044966896100890236989228916433249153576652030755620725998243292776190156378809665105528268342365619485409438161002471083695366786179668225598474759099012072433208644463842274324902100073658467096673341741889932471920659562469083180270518819104834510933724364632718105431508357454718234646069276936883244186630622006883536064428168958406633185501801271908744690246930727137226287335896011696079887170721048691410841660400351306533400246105825299094769651686764718994888419067655181066560184496752956927926972456664659888227421579400089058309387191615484304742497645832246081300142233554429532514346202408456666012998048418086925005535191239241575140665085550335069688407934404812765619327243051166211891536316329485921875522976105336316201075502767564910289070565276999331259563563015714633532220696984727045635926969557716444979986271276750363721893972355211158922859272072581742425614268997403892125836443394936124794492768146754263358873239634989877178899759611427092928521454019458519635257475621386470428101891765560368182562364777074436087162179861071689444701557197438683073365260464935896486671222672896482505635158262555997132946841037591298651960584632653458378741866482230340739510982073081524034681515388852542644400114677652949250741258842962078864183793823435096923675497827035076719285016288625826062162882114237391172569707689321550381953438605239853642444503506629034954227063814885246523184261763785522675176239397883382786239578986703465341332801050685825162092848237221440413171533419918585511393002697823217953959810559383022645849176476334584501029793432963440216481070733849979680500035986511726385770339852105618149550308420867240821580736883968538881528229130798725885376815736248784435596578539455082988768814199879960718747198520920389622728799212158486734453366387850431937197178338354859911138406877890239788993817967751727763020104614310300979831593999981034284758005208397454069602795828961945226974468957836853787172090167692392311803322024451801694892701762018544627008651939122957505553933628290253657453583017557566930751686889645590316137547240489721723106036179930393831900273740018229212966546026492901128894924192442909258858624296062866118161717913427289659768888831313987629128608060794923199013723864744368484946112350588516192963446670986689418192186027624949532704647438828287313668477880753600375656779102215549969676049831504952709667303299305320004241596853037052698485299422517563956149039450232685498044982685193207570079861328834176153194311071355013702739734792976842399901139409406692215339379366587736272372899047455120251271827412418248816656464875986443084728767187277254830213700216114510600681216091487724004437513132588665073018412788965528093281876209317093251864940319768332427019145119102062849062263028976004368788664840460076036675356293676652285841114428320708875825053778921701841134701696216391731381095359787627053389123468406782748523635898923009086609178984117739259742572369513502775695049589290429437252035167052761744036792419828481060359818294767579634963986065417953456710335611713514134117191573016643728393870256000270185902306706337633440446026392541306529079136577690150108298599929624107395181932423417554562219659478896937342727915609973095370867842806770638297023189616241077017275321085816938484348950855884649159211942633585868406388950349739100532802131045425019722795573907933100932101037357800960230671068812104087673231504963635103101430609173456565209327253358799617189570242003678186155939196438461210979670889854929864997690236770129703452725497303090565926935719286557563111259377900655147578481954545873582689763102809950602075973072704216416667304003346641693790229732007667191992709864606514358137753656457954892539950366411196975004041202148769784717401554690452463061881011441224275454369733127462612021428079090674183887987004470440896017137036423021583534446330529596706424046238891010111773785572492820402108624660365455976306873355965446779026801904076423311096988549039080660821135193452351871058900100799557692587384159612888732318929823456602591061785067811538819643864373996868895979464222200440329250272267424650768423449339422513966055364471584989086200404633974508404856203365567942577889552897237706368263955624927928610330271121319569220206510869933947931045507385882059617743285918769377677466749898239254970845967450879108415659730823687249591472774365390745282953128355230065811111251956635421548428358305793503407438745185523137630952121520710049729042411650227145360445964906265603834390379212199803266138356948013600743217986737984698106706022384330709543122045470063007519604340284086716408030033736223071477259744021438312944154736772547012886576394560798820119237854198787174888775985392463800212946279379509858007377931313894533180760280824396083485367229315562421530825786813268523143483078613021864018578202511562167414592413621723637485197384018585267340237552561247042234511511075272476833793832792174850251309034389336884840096140685870495196661542796571022041375800897075059034598735024324088564075344103514190419365983672400496219288811991230812913822298356045936383366110814990913506474184498661498394687882357880512879042613212907481929232242966953075825281513546950995976966546623807701692365190055383424032429533465410342859844826929118895883566182741934284087522507951282224811248659270452721810867210610397733036738587338120360948278781240853690526770622167608789828236927293731140978886789746742298452576177911225032272169275329093322796547606558850684405772721218062327014559089304763745906070899762669605408278461393788559091395938913559818011860145445830617913531696540415450744508955014934417041665251575483157781101693803878238253318497056218109475717118534853540403349539949068650134481482093012049522048197833306613022058362447811489756986425128090105526501781660195914421972071432915628107546567933726875909464441098422121025727132813481027331816523290444357302716439569403533149225280869861927602740173743512990504960797908150124756394977827875550814384399425475850672084970810909635490251825138214521734699048632439940166899886934956006205970837280405355726687721917677761774461280423624915798255607324487615065661928987819409294625807821784813394935758628416161042369430038132890494481972477018647565944133867497143361945764528937079331382938915428289876368852382579807814310724789652474975259337603130452720211825726558221574846921188816199784980146820559233428621800232512863936006598739947175481486771933322213637273094809579253190898137440536842798646743513331747992052490300167855829411553431439917727512749493018954586803303491635922414743738067373663380679106617611162745895793522600630454161982598474036266023390603357430180192646260244697872017746995621883301095252292800513942687420331673292744936541377040773499021352633586028812544661112257340198726308911541657948136419735549843645831528532314576211149647282021766067644909652772882757565708260757824162074819924355055267106636219531859481798774432267063249674404820744617634217977956379955813824069527557108362048952069721137695434982463648697743358507185558362225177691772048578439725927326322188749681389668790024886746353589393110329528171666931014204688209066947708263779555513584371202234612823561861246037606742780348078136783678057794264460616736029995115040912400157347240817599582257091215293973677979797962414549323915976470435154520345208390681823004055326531700164224082457491489363390096275843815506230344653436551067646929636791866315462088411387019062400421656230034560740310353509244510479699636029275135477059325397214178691227287203431055912925630835916946491031571528167167524550253092085575929434174378649269556807771296626363752494290336727625542084495735659625427571764253791677755943952765519733582513064799436737621223751470410057634523518851287555524796148215570388521298916277734762882035005746937153606474186707308551041694030182877673155406924464152993440231411861910754088980607184885324796695062379564296436782772616820813335105034301760053504279211212109610087971518338228452372704473950396484127046207941134300783404228901216943771095118097444542752630014528453399522819218572714439546241706989827454816913038374100296483171450398234305543197461280458561949368711050701435531725106586364074532055347215440208425595756235046326661131759440720984325456249563776205624704686450878950849414455712005188344818972933345151701162809945849074788263101601676567506573852608189092113386900386647745830341069339508504768860964743408584826630472184045124791610763806668679648873715383254370866352544167579808912450481310984597313754681652015662726682940632702195577869498967798450982544253854838716961588636341020471525496167429547254553516882709729918831526960240280005498329934426713582677699943697020130923516401975856774854344182497947843843258617161874777155623649496872612931352411683059013140622481403815311616483621645857631581776797146573828060817062832043847233847268678160369414915450280718936401765662306463129859490149777477636259342952221576220580609029185672285144683977917291921798244878709633996030645189405983599655995979521279533150641304678480955187008074647439701908761490813889190358870269153388689893653702110995792240342758648707832279536705649591492781791041058961432548280496214850160000574640570014948818578129521992542876692726617903217240127680749081207679755026249997821264076473001000053275560945530179615150566035545000333953910539987629259980514597573663924309347865192614972959967241419332541686906113603690698785770980950825587211422532012965250728538254368835948797851836619152273714649049340418643353812215534401044387791225361622300456886667291892817403323751609410378155033994682530462721862710601030494957514606305015422161645647918442424593842725874413870703270942541064535758144668884699879997934193835268412957534757569918613711257125307486856555355424615252770554192600994083487356258095046139843486251159251220361842111649354235903772638935861814061804579261012421000332598643256988354478470450624004501974125520903178206842608157303677529380490853902009195144210713167401499935597276402948442173327496172629209841372783689623826353755248938036934865937220110368333981707796756620709548186137771886071132524017631117213447108982148887817364962627701202365405454567138118603837219311620784355249808791632679322204550905219937233335509979066315543822649494732808291905977382878803452953612168874491368841454348226242914328995279546779437363778640241665937833236158265577815936458687290537377651264959296965394380922688489174878775010856959739698192467718322059708328068912557638506972230542808044856700560861006691566289477549970007666634688688152478461181332595058616622716787777024542632031636225979697751085533438093247733950165103036071571868860609075222366973489045960097428037917711714945005030573679844189553034238854534310596568407043937776625570804058380103842610255012576940581749263582280856741716114169721876664998676474291995117210537971544351205976171943378094971999564294864904365025523136066849697978766633123879907694951921085581180871904941274218003084633803549349163809055111635778665669737451272990370698930579022884888250256322661120850041965060285477684457728671084187676608574602466995760721461421013014838053734950498878067104780896841440888155598888218759975844573672101960041143342840663299563003631326436572772066547959343282731617224408485469142170986729832712760826026639112754571469752222203285247346753783363345780268348051681885159792245132368083866155684644027889805471910534188512339766801089848517105126776642382281669443011544363611372327401145144414104758498193712273599372383325589706939928774933474754714945968455565081905541112772429069740041657013148026933325134237273368463429652352885022312710783526472425394526057735728669567561578144379501759010539107677501828860635107204548318669642606674413685365406827197057218083825262586545768765115034174982409022163454525505117772551253678372879810855991212634106476168916652097833085462610266857005013967571214216562444963631374006100281008622751724177495815335575607620912429716549226605854772013822589048457120094480297148698788040637905776302112192127305640069714885222762598469252817710966419586739294411126698799245170677769664525673236547804001230856303023522349150167270099525518180247618149950642033647401641706162774599900125958210050031100027056698700790265117640758282245894000559216085599012310770956183917113601929978984756064662686584641431617962030246829364791505866768364766874713774455772753014308024900170234144494075597752337488020944573339535902616445523462251923865512830928376616149678216301122658843602157124277239472827050083887419276493183111078810219632562487258517440013440148523872359027113808419719337176446411012818695050036578638286514523082395576471108604411761909382457454025731469969614017176639034746198644093528992715450091423823952660977359736361769095513141228937739965999032106667141683470528142697668858462091049532716787493888307208213991802336414430034114776913611861046227088940185901282809535861552741266271159844863031095569503299198301505901845846714089427329324464450281524064726535433177880297697728354802184481869009758821328573792879219003660175535269591008278760633568614071864174390220010760855263617428634437384019104122696629196836607556813852507422410353985262217170634596188032123903509343042323600256383813178653251943012885603784281400966906733127323465851690687540772100362209978315223333211466050181792910056025381350322963600096311665330550932786694135953364242170241971984658364495963202009458718084397712464330714311725769917768898319920639455107627106006127452024255089184761367448581767860690795445628222356145668179696235170571070822221501734624182125514545427788790664758868792177350243665854500440062773312185691943865967288158228892204811015524149217413423325470604087116914012611123829117093439013222495284010307607772426963385471143834352375573058302874985461835988584763589320186560339146720393255452556579897046743510388870026722408322453596303309360991998035586750131936088204034746482986247116158536318910579967193303594745339288090404317377768350938942400938253644123434811931333866471806182596593739767308625004854967847014697976018851523490953943940377256355236119729963015203389839488355829547275084367408023506590570354133142001468938808554305034039904403545326902731320666128359995967196880148669130114591679838453939767469484376781321765973219475485309887764044150878947979928847679276292743546630593131413221376680047040039415246899686378414496684598718080788207721498053695983289823654589619465781139292592999339634309074536174693439221783698353840182598099096659378659041830584386502648630254493461762562733408613514661130575962362081360249565936985575983910623553504107009956262244124126485266467237987476797466250939804025150979795621459308730676001327103035877584608542733999908334715603712457218869124432536917392096331285173472372487915408539101982888296022578356848380935174297314692240736571396164413029732218299727567615971642608699059475018082984680788537746161241824390718689156594445141512552409481826570272602255740121785910327905807183978127125444748772230375539719096261469704955605167367270094375783511129060690482308747005876092269476634825943934353834652916020935765630166498978397118832204759418753693457892610152825174926236517029520444780716096731884178124110375791454254463575996423988850093760802129699630454681480837006611390526807073626533653654995199955715464790240352573062606770367801156571584783031167388193447125988751580185389994341759492323440329754579930611851578161241733146020893430438470288246203419078233823560980041864423376520329748949479370178212586836746776829096966368238135814373730421488196653301846948074528643093228259847757856827525144438807258923285163982957275554280667935626371242169047401124692192079651034172466287909316389100293394510590492735726212276669724833673288809018331700405527829732923769302466488560295919343385033592938992807777845295292347488099017823700145006482283657986886074408328761498694677028500567361511152023288252320693445523260106927897550382638598467238131371884319127498368118078091336882732224693092885397767400057557268339582804390229921154628415826057955079577051192163324426284276678280635363194921957363274267717153381944412794205185381129190193689584105319870607277600332693971374135328482067270559737071519666981249390232570263702032338292993442174291592804076583858401333508896063160233448687657304607962414955028079266094900653795529260975466500002900745519891349541568351718099754753960970004349161563796675035981549434576994180157025017858791528441341320712199871037317852482749197769651568820895189841482046478916414158897314646474829549217562460672157322796402694250044432014725044557865042737790736155556355615118646691700710264263023251843932017817122229723535134398181030903884206728680686095433594041954469326521670674939561011976064090590512075319808272257342663208835052309531384720788671251792196192711230479068479107385690359870366855623831400024590110228539625983665746227300000745324113248946737180742372342568367340901736336882402598236592581931629790449663995137773064859926901981691592097071497205106097550642880614808803011430016673340759053617903837039625041252608510726849084239975434018922500330832821626368865107376988853064997345679831138722109284570360837650364516850565800589317487936169851760033904204909582669275016907465733536239982584277944105488397473062161640088227553404486576634362210733092052664267537767869667586378361313217688780361500023645015950485232189411875171971159939460638082145189011669802293778015709480839346998139607675963564535289917098029092985147099626001196098726348583396224433208504419312674253947762180843602832861093201741609768449703151681695166200763085034169075718401603153549587791378429001143048130113979622654182656752255755664373383709517154795974360544261352715070535920304975972376850891845816812069185452905798392708737381965977672783169746512822202115188883536100622703811893397339666364614127239653519910714123286542669334078141158356699839914830304356438612580311959643516391063418630394145570885016768780578013540199689116971466798648112013990824959849424439166361996119660999629377809452511592598808625457500686809705822344264289203627035507855160929757181351423452727634795365055349417321795189764915821430099780392403930405275161180856914935469875941075310979844489274815797772576707200950664828191487921671136994654240936306479638937546737243290860706841588814339285207285024512210562219208966223896055028448809869383496800356991741818288171172501281446388553888616826680941290456666220922582643577330691255652744176735939625084801587494189560975793346646829251126086310406060142371359301983223488408877492380181822604716020583772510764057170157830448397772676780091479599933732482503550494761764697850221108585668142595311818520991468484732184013347976121858921052379401940689990592658858478420754972084990740742396543898852224130747976841158628727321857999504438803097517753321538209053466483636128325696104039343048605004043113686795448959424651526170168991935305239347082378148791453104472998812638939569470313098709819417838360786323694211534150781908271621453062745296526504630330901090058477905894222883647080955069327157931977258246779154996348128652930603683063965468885556797276606230660885186285563930245598591071074926743676119398056571044526575165489715165979816490236929359742056932162321264712566729802612371297329114320833507604098077606842187191364860098966559145335620203865886741769537947822670958906514958962801082304714135271410736180264583097224854869526927444347880105655404388533248967274260126587806425747656209841055556109824321962985059683228072484932961781275968851909222132970651962443647370551439857120763308566719224759448630753860735908420995333051688081158954524347329689837507743797780726030462720604013390291051916253476268031749660480045887163516840937799514103214913503548262369035833767015904537597459998993993140680712965691050713073777343665098447307513552431531495168187170275306397518370930352445649912699993698352499724537834587461572916097097299807876401175843384487435656827712734956432923460818659608802430372350917862548474393297172501972173144837649682431805275153690599229793486189106145407817155232398056142685002158682142164221366330291729377396653222288444393384661714051707712997560596383928890240172017059040905744228286588902741552117960305593765486266635638875820241556235615360692298621127621539979165477330781874577620048906624924854673197684717846270639357470973894632444552046482626327873357982546540698798377315411741948022030519961706084952737346827867868539843326382125208934354690338009504117262016124064314027636540636408939825701178508485046183990500452103364531654781678860372075068873567934929576366004472868237867240684069437238434505015732759457224370467379898354273685553426324794283466807747760280236502914285294294417226084175618609140520868358829716522246524046026707327101092924538581154680722608897802386453180542553092933843941771415526219323894368034256264018385124051988665011611248846346353326251695955015103545782128580078115844092750537813976014215245062909127764237075929558707276922713664147563732591035199646765844931861369119521142075139817170623147319359294710339033315680403039146851683044635035534170077123407257231106742798352270619807245145310581851046406392297446717990255280196265625910117423950557978744992648954249782165658596093001385150022503668209885026952363246921884816935145006264221745949999238082206698110054708834224519700503349516351670704811697626520829477935101431880759482959082628111678904644698862016471008860248161640002533738319497916724895640902576113161811846977605884747288063984691200480589245734701744543657853578266196691924042055521668550978650467151672503482171503414055403417900532893314754191806274138687265595299213179299416991680553033994733238582695205633597776504001440914903407439377235817828982536004362490930304144871283032630496085079533481119259226671214462072445218615002322275619083502981858599245961586995712380449666869238279923238091307418707384303150686298365380587665539411167042991034810165788151772066628535793837204921305606159677506526277762954717458902057811791192181424600187430480171177024420096914063374816844318415086212453304639281167961335865373119529191493233861287428260651313008905197139581575163786019596867222301770052788227988394129669672966452425061490461301627861701795226734118872434926979593615164963701257338836306341834954116457211296251699984873247878928503111495372071117680394944397213659914361148156042545627196852324422798947845523144866472595274139011134808547317990900847104256453298113991740946142532733264560315510135842951715150039577167569985210316638412593527242531287264233866225790301913664516685929809921239298993899592166909531654839205413454600351398376796917553456485638119065625614131996479405267887734026070548147067442076214895833388566001347109253422395359636936177410292374703427864510380149197600020973974289362224752522071496664681433249639409141828623325941861589265453892312556862617896432899097409414919851577032143068022109052240887093752795683182468124830847619080303220199862565172333071383063641132579561698808519419294339193806530726467841285323867306657180752083255409709839730732095406376592846717152941465399730091187992836063065231105376337655796997110969964504217126461836592763729929882062333812137593816485969961169460851284818732141545124264355833388012682125243728788346607533994761041575313998033224543018438357227437526191087200011873398535005492620037740838542806614871316469262771335461724320636940904806680600647306552549668632536760870877685645366619351523059860498625156545555834612773426814521620171267826892422009309796773125577646898385630575512548501632368380829353031039169879404790923293534722234694168651383546945976627855865526088770798729612892046438883543292107913349877820168546800903778787759205145108244594935865481885429811649192897168088594905252708444093893214443812799937415347097858745867868557455340356522139445520769849347831559803399138833581211707409147561941940123181629773764673288131697625416780282055326859166364718080428533573279899997863313801734743778695920047658810701568816274754279087065968875986041055934419781757468356135232242422205151701958577637199809512148613772410168292531392415296241685411001776753376512550893014746137679033815027381985533792245636488015496243859921038952397617487279072602881625563089078271165123084730507471860442269856538049285895213125938543563009396463665819195666113322451953892594381131913398069047354913235909440697498064714765653667809545152343743564167747025740890741647601562147352290244591134786059844097982687312510817420454046405004364947472043067367658972139654104787503862221805154783854439908873092846272733359898645722983580507646308487496433948195095090106324552470033875021206498160188548992467853753699077595929451599655482688719456814399820428699771633565205135283395265097912470156908439092513719867060174891993568677298149482769815985231222328539310519708548335006871097844120361951339619413322323874768315991437326072228008440502703830996218198468651139457804546468915964552029325416343924221040170421725666862559096939073841519219918370749798047290069077323344897604605098439989293408773492897786754509114982554681582378587111589711969666838471740622057310479834268008675048613823287830005026421056581947849092333558874775015338293027852757399525791401635008218087102107692392917127250390691074102594602798979219074953254402065082211420120799458985969243156720552338298422764823443341791019597593721420686100632276538237791459325977914522293054775117560542210228798133385234938689849019027328971636858651969204785441552731059164799809077070071128228776287047542057441993705474066490053770886438097101909507942116918342242184604031513664762262040248441087490839678944033238503485602752148364450594846821299735813060211994708513575404072537854844783291307188939254001658623532042662075223561108011019565895819979008745666730392825983751056299513728384689576077885229487592765241135119129099436196233231393339035855345505892300165942564497452680585424460618422848239552573619157302746883757484843563725748344216765130781118512984058686813392068787986953543751354401581518715761526946942978294228545169847982521260304381539977245814716562996288978812808752125955013095300493286223854285684239094297493834862768572538002095990915651066822383408502862158591612385062470237546871835721345963836246496113999431436962746399929344988662943010183574976471963684830289987912380198609988061472242980241233272631839052185440794316487131251280241032441393228761735158350679044394198297175753887589440330819231555228484309747059452673263004028915790949785849215431895033989884321427620860556238869171545857538538875681393720828423715190876012938385082526444258129733577363371815538414141137044100962181080668432205284742707083010249111553711031370101893450965918062015018333366291362157069880943226313248239658984962123155666564469634389693359479292174294588258738365397762181504665477622793822321853980313773816084380980523452008216437363560210486669305769721543108116675960543135655865223916339020454550357845691661607153821275780247903742464042879871587231694635396556996294862978614349719189566019548946530968194566395693507101681943936326450159042554099598519398887132701382057717120054770966807282683415351004566903923934808520099428192594413219144071394202218648611372109650995513911494939187878166007949735961351725185631537425866460994147780993763316617215627807606844030368790139975381565790309519246218892952550839148593748144790211908988375003252207332041441542924175968650008310683476914547415257610766887776478788431809724674418271261377535456742875439114966154512464841291906035388592782790194029088896104038114173367551524188902923299046767519567143592287150351394699762032794922847586427995275690118135643453605890957289724617924669674505293168237163977815168357458639986661285511758353585227323790132722914415691033080426237564129668385053000262909951751005373491176610673890090151684386648743698461911701366173671880534709485048179522784165695022650353616018064741505741765332299059135628019926321447326185590717272531593782202444611944707348447410030006708234332846631882398096545932098636795628553906974287388784145090981559789559468978631281137815103366446434468055803150417914479326288242432945278405904824348717839933572999465033167414964116199736145685507812240016034416362612384687473756052502457232792842769261860512226045918741214376960557567332000272693204211163324893260124545962975735174391730626782974172443879306751016918467966445645168029217271015170035369185346590628791174669588034462712417005025967873683787300416544016984194717316872265030859585842838564085385864082289672062354156091800889685073496114400064080091692141725497531650777971333735242271669546486420545088491674402049558470715157650671443305618536859876743096173900237483229682437367616448563329914529463945222775318661039494810533280083247039222393482530556556293122781855093515409860938560588171933953352329421532525995926879973990250104049510985327387060142856861685705281610574328949544547898844587868657584382576041774017785075686784934558673312424863755602353375125161688189214737193779444697689849650630211919263969094846752656883266804718177884677978849373437118714412318308461895282142268830131238243819713937967018344275338869534910631722291749914721159236245751805476191244378130485040533390173213127634836162079246233776576532742328254516325539734017291666023521265151674638294336497179157173699686366556206134074002568828692805532083455060746978619842990574692587163846108587836589000705273438548907319441929684473118087032887225337537815129229462968689739087468972944912415943131256086116411340728808009064002871244680140456263653982412578665054614765148748427156433900001146552501003698235055240036484669426859487354053724624548590488898770064165487888613993068072330591148667678175703637224838518881118764106677528459271185069743832077077883007309374230437899636117175932523983413397044191875033075507659504068607225426471935437478013942017191958695148973526926616608478920801657225930355238426833355180046638704453535798413259771615356428068250038194087513595420356256069722785192032639576664860617759405319131146585985765090799848595226602869460355024479509104660478171420103269135098673423857502260825254499632888377013290374794949687284574244124362163412205622842927480947421852440409483167180652060613997397020172654650188219171099973894487538592923390108691703290842018274086457509859745461545665196526141430359173758894381317007184514363051118397455966483769052479265477432940480776431832715027511765264925459187329681573247062436244510198139596108184147262074563602313354614719332128437491013643076384611008079658097842002922010403354815372820651627049781757184673374755339654987048569271979806799831552957790583049935532928048675028779491217281319049536507273319942593233650006333527244227505879516382744808514823788216140724180053792509120752113499059695535699794335202829389649473353526640431482222493566445039704766371865253101061906229476386901458247555839908504011043790527701642130330919056902947919815057008812326710909914399368623911413095010601947975114870024334413253935335432693285538300371417739282495925383721876758222564214292720048758870564575960070256233212469611653703812828478705961570029158147616237464460787473893725731470989923044292129688493738078273350738652243178894167748935493160815632126406552566835565009573657874744858712344886987217853057234664259712165177362895933369906683268703043054592461193103026647802416865793876556230830679112920199925641862312781998771124739818951291720829877922479181808296870568395799884454625249237587618171409883864597150482547919172443398437586314538142500011370399874443051741610128969113241405994799372300032625962299690157861251348117954922175026663112385874577455590527880825222734097662389793475212724196881349584133655949916142277027165903566379426756781588584518213559582864475570400856133680135556964446061683655556949252356197817304317455610240517976337162718223433396247652830502890233204667697810790344657952162376764558327630598786419910462042952020658893856779567384779154310121739873673175126092925731008542901075264563780924892312598443768254539876293354924827075741469707919571923653902351218258934015113152477988195615972979859163357414452540453244098147616319803830062459208752076959967534917835499683202438319366296776088636773734783691525866550845990532093016066950717320680631483446874259428370454667220171691675582783425262515719489908656050315179972242753657949905948602116351078413808497756289182833434411112657080487645972888800208139622824395219878368903040947020653908124688266834550126785053046650702303263458414686663764480636062950988515368433932901206268509546593321712950551159678155021708436086915791875519042489927028595097177836726225019251070168904905174641468157346437214886884697738594628221368008889831275640822535654761422746707544621595511868790876639136718688305168067724490103850050069550520696877633798974677170608520714888911718676406770197107296383196085802488917372570239319688251255765406467995346133315192763324599566254179619880731995669681861263953603879516145209664981824205903901249021992831069032903501962258883108298029131193993429678312520075146277434526777692554821485419528070229329903247691260650722021465524701376843570567427940244028812660149198757621007372993973701618864805149057562981946732553821493394760195292961786660493051891571955774001330120001795846323255268503937461757286808183638543551105602613832264178799456189321679966632788449807335561293254852577929221456974225418529893434062289316704450616259734080273269928135440571969926998078513929000077437538983451781857666461981029098727417201414408159797431190180226578798359489635084268607022643989239582363194735679209079867205433109946583019800198333693169721244955116461687763939566415942285111227362566542951055189307049466047768455972084421570441767745981676748730025686515943528714545415074819251716693574600612589008735021704714559594196326278067743845475951269791174968447075082094006343659809662697559670737113769936104833834752862048649831772288219265935444812169267576997525842951459013856445279102109217193599583148641196013181020773455899511361873926594779682167074195012482124990392290297442311590013163906933647309231086200571983291876067288279009108933450252717537614148845906491131502099434080406163051247183285827638812475250322101245822549338575294635898575103387145239758843772101821680049175256585206280267530668969020888871435034579969514025227103130121123299756689125425454736149495950827162162295863836612902545755720064564028215379980030474246922272070021092635184566555141708675911718937373728161363489278678347786351739604647075446317725551328386638043014574014945112553251945195084791981378085839427485849345282808091986797615813011650893396299478632808182269327810558808969166047632777698725363572377896234449916505354714109672637849483333335123549518819334097978256346553772464606422483502065666475290182588598807024555262728094505789122286032543887892618108271529231220540635629906317841046913153934791948922089809295956373914739278844208017415209685739093802596177064289768220868342047555262840070547735623400497198686960765649306609871926147744253988551302930041266987116773972109154001458208090680315992585866978328499234611461935892293473048393916141565815224180169817565033488853335541239908740377410805868191266336259311926812927551003306955895136192870146245347044248892465078370832239236200878264897455696111829291141192479248184800927123037380566504826690028059159386762108928286860294715276742081669901776521016587316991321498514341510009690660024311387569393947196570106627035390478764860444997173315028909286142053623357191016111402089082471942699655682297174066688341501027631092452450997202720127483101656676079465499974885006260600529508549378403373905363094120066886329463533117554686609828391668784527554760133514710281861949487587185889593741326982275526751774333719745063748244239352136565021102731493468508550530307888577732479244266560614123455693040596399711761851632981947173795509017118857416547619061821963955938675704461136685480474092844171514566661700007901158539632966302553324159351026290670009827396763911121505977024863124839007427531339250558179978782825906518659558520776079563395015545981728836712145088834122177825044912927667308805327451589633878564060551165438697301369043420239223899135413551446845379201569169991847405150226692268045282208288734253059831637101684924387507132854720138945408369059226015645933257530850346988035991299388990840350843430856939382261914791578031772276544061721454756772854851527993172002639820776895349290780026528900302187013796610583364163536155829881543335108732418731179294381840839559099617404133304109946589264039984988426628400485728829884402255474921964850937535773311807231697739552777165891387492918692842961018885082293196005597233203674276603243409363711987295513852467846818067678982803809184910649653064413860644809909110092641332522168572115230221649990099467633099743137035096064750757974821931450840234702914591569963677965222788029583726408327106498775893913128105989594442964250231320309962831810618953615664984505997560475279522720749535664215649894513692138915941862407816697600350777526636211749577688506445146346799258815335297240738225411146217163283376011142329391557814993411086086384450684054036858262039952869245081419354496353740402442979086152399644151452125610357351103364151798776173480842026699491191283901694104198518709823040467261135275903191134672701484862009231946984900974770338818779596952292420687987415229181157870547266923588262780740490705207233535224150195858169234831349741617048832323462933846421292718288839256083845835374301799610593785544110970242510207931382398303960051500168905948912992752137901957917369835299826164667928524805131217901683449838231893349925294817153212650884672168651537703892626999863932002277425224338457598667165681490414986261379220285975415594418914397060942257179897490409361469207263710635026177206000772419323547251294388240057867220260181659947095658381080873891609800429445104917725591627609173806546538197097325640701226414794502943915526520474227866300972152886187610469346467946454729277450680784729034266352973690056557128939933424826354711019844648660950854262343862347923415183583115879338952132294436680023891296519002353038132009607532534248455669313665390003941579398308939115518405812346173746126461668583146098768931530898559830731780644155085581012227479215298254540755000967730170470295895159320895831153065035597401127071418831172066851525819721302534791516548661919630404555627046905184662766539300582577217439905345901819378964685530426479846772095964438904667001913675994368475337352737524398583392109441319611751683320132583597280262964439721729524744348853503379799341346161206207544188806446845702700392855278340307204731745354976912375596256616202573355899776285903028490347559101361563382288984731716094974109400029153080478732288592310900043955414665353872098111302636944442600514194394808451775026101218825668218109491246984040685865449870617668186992732502249728875764309001383049575637485456338933839202724467139383375267390634636498353274243983283561899426156373552972878003167808914242922996231815282327255625317296384128992863261083419162971191821736310501411981110120698867335036212176970824341433586373981083516275291184874873916234565751760970566088726965551052055121857351232025238983889039364040467378954466155047658087440550051592532146569101055072469213244407731498200288318919433242893198855616901387077333504390298933515810820226614300621300023863018378973849913164185848555536571948016529330095625728792074605615120752801377461175103366191131650786117132617799095062875479232841847109481700736547894762001606657748693688307295843655613688621403053614464654420385955034562753986198795534103122016068957996225470678151018818691010942294042794915284835786827074368009458574222480685581060378202574259552678856873673139150007857062210216096555924275884069108098498802569852114922461378895367290159662953737810191067281574844179903641198346856820051248222151291063769578676552274073187165648491965017529643527550301719877424710293369679728107622377000712439697228170131899057354443873650296425689234914386947939308919835951500308631701745908222033886325041750701889993932940600514115043053070669270313629711352530941672961926430516929577040602407687153804985924655526525577272983827871754976851532656242882569156001120678526203557073475263004289517657867737870005295589255942586302466949883105684104778137571323743184735195000219957140698412475607997795452947120850793175673908324485218181597491711490566096060785739261328593258454168035275803412320609200761370723488988617812415521299175601379353034464809973411657410215220029397613699561265576931913250234269586971594652919282870326167343728891630850217584219726305641043342096357196284690900301751484226032947860374264238697018423693689198775794253451727837983898025061635547273849038177068950649985068041351191836636592362091243658315777422620078150538836894555561545126164990272649005974243819113435181148770889916952736104482830355032128549954867512146227905334167466727237332153128180887067002594546519367561749490754995259592574514258307710815165214086583315681664701162321451598928602287091195187678039802293623681836015451141954520450203509511513604610879054284935253955163720423822085668868551395558493111314346764547399180391429392491092937669189518021111367808773351790662579515539478597165286920366344988347390099859225431392845992707206067738859976622359352514382884417605212268702092455258683056895122112317184628446037102008215307879662790836404330237759022642188929829982828054149443708626981456075862893280501393317650847990287467934522570626370418334096632410323664746535474677147221051064124724308628257412733358241980098450530129409692052754661686622031959782121312119668845861156476385105712305670091058357406655767497540303949753207977347896813245409608092006156806963269325309526227926568431693128649387472533030688578231080653927151268667486796797070385273528909600865069525895459449970617739179038954292688083403176663950854216380082486957488302577604694043861078490154594628458217456890306129395784419194710917116459293107206300149402327941624502361727385018846300963258991924915487010311598057215055583198129937928631011794183032599845035261330103337780753743476153744301200795163527504788220245072072050429292669677453163778613513101126176514707560531505487874298080593649087293560311542970346486672958424591653284384144772287151848271773598741290288833092763705754832533754002319263844457901336233343391946531444002150587181576540915639974301957289001183525164163980997979833287250506683658777407128512598598421456916915712770012752468993838953383009267756423087462888216368035171412617960783072395740178728579753984000587318984205677210366055786460144057835484368362001448620709798270818602105957106522264395144211807549655688820229995561039687476408586331613349058861218610805512199214872495752518404421594504356037224679694388571885464949792886984885615340712465834205992071945599965828928795240722450584714708671653763666310704307573715384127000693561287034715543969091653617420721588266426499082108503345687365394967462376802375767117252739063094721936367684605959689165172700237116190560472519920146573959971364574167022849713279680264467094183196879593767135481230307725078007165303326365809523939778528495544094812925764289691795093306451614377860943726997170999650085057273439900119967082168261182921106199583505003354491268490170192192603343770565874606870545471887210952014474631827104183037265234803686689667860463617640910607944669526820298523703799555983205737661511704764729205382342387791038357833541247426824656818269204921048749781321587205274249222577318334917719548529704611180669601663806006486568847915190792842901051135985992888926958984958510689599832746239243886483340456409271037952442134500038059010471339939113318269113742963101184313213887232309857464244266370428538154076597322711638785230533937731375934532727770447314112178584606015015264906081072308390997170250452406728975681850384447774766884763612969069096969535505321091618761314360588637735448232958533562032182311847868410067881148409579365271317165636564600951952513270734738389580650629896494179163929062022822534912508717991193085030386550078313126075790033308417980419518791856226465015076799318882680987394458045260504922064310751932119901491489173310075577381067113706709341449606874872226892490750187459747314019689212747661322497012213141544853888983199197122586398414727078876538689815590024043277636067129880485929514223251788263059398156414653638087241857841928413727802239590361623527284901018047504698408123553321484864829924493254400938235976074581440504778615852379913522161205443618978151724814866572170227679945468852900307084241997785303904408855543978156053369194544688821369989577317329700801765866477583422364798254482681725849687628253006927852590797527169857718705363987854693085897785358908666832261516161554356104306101372309197198794522021873988361956976749886799651508861266715866424609732751123886575904628212639283538383916292121649392927104056626736074542186530784157216973219015366170752389920624405147940145936273909570597445664624590089327212391526840699949803139803871282689204400093298552330952679788342022309777381041299436206412800063626784282735214475225736784626880938116610417475802642781516726660124647266190875783302357662919101816875241829721255221779791711313471836191675541817631728918741211806433320977731702432758069667603047548424614818181101694725244116204953399920382030450382943229172672636486629080376895126056709268977965974361304343415704828348508930271930733198844745205356069692732129494426924207633796684223231393429579842414969527144621688064653715647442648381465788570857823730321486018232063037268944603947098686063235758729462849227574602433354016915153391729897592699488155739074175352064387451067971161961349115770049353630388521909310211188591526519493935183143999635055769566864282304447644696258666870422783427674609474971653676804487436636588770698853897842323298864866102704566499624788538816503282314739229693802221743712420746003051762455321907263648725384133554113871601967172593238013685587446234088638592409406411673572379429996838054684074582181227195995486466288432595810199298613069826260865650411420626219661228646951995999570593916725986980152627084348182473177559151868671639958063553965202175627394760114108012655504289655482452059514967244885393537214081593815334137569453048512682735940629711504834388567708758596947004959672700761433175889454805345199587373466049210954139695875803766479304910382088964806357007647465046876677023161196465839988077080970638440756902302911145365241241853174345445505694177280485306574334820992070365845617051341211589510083531545855876135698974944761854036670954425019193776056006820356857495802007386211673587345119122664335493192183782098218269043698121067449432363554044952174389312050832264911256167151136261125145202830646824161215730490423676663573291257405077035750632993037403308845482684488099887818087564787931399947580842498105374444280071649792959944172196128249834626659127294106250457605348516311810159543946828158938166293491255586658535642650139802428094221272125923172717082581448438098724424404311261489158200744028384895429758443567317962588651204779478045835539906739222728157679360914543981110752077862045818972973589097413005843201517449054207192731321884290767349279157862539926905164835191163918242383582204313121931774312539592979019519789272921668616872482155386060303632185556826013753239795007897571052366242036210308539053336896309345399469640531220373636922188374927866486763696324111406523614317191335116496413025950610979362641287820402796968538521962879913860521512315234300189678581679373022198695970905212830771298388277762642011645558434478315697519222580255033373686088018307244873946601014009229823289642015945991552379165703900590637225054670912698894533954319122312659478996032093742825666383161749040418953577288005827941760906879844023541814522820642117224195394630932147542777751421363379375489485557266427342269314544979620087095790506953295029869705121523517708225160452085971986017425768444947803592646643167414118374041598590486269154319692036188367285337915696587983717848642626637760258858255625762381257022038294741037493594814812056803607164603986795298057894406874692270164025541131587752150705187111511601363213978395683303682814803278207958115337412171355005768478663647689787639790350750243245312659098930608942999942612512388652471880872203994585187660070008826971449153697247215530166002398115579674587816504028181334568500189549096185288026681501809580877346078041267176574736380135698137216996619151139707230638259210577385949913175081246664686516053629542476520042013826045426509370584500378277891310793820195097917705857294746202410330071471336528039759392799281116479550499961348705024587487125409137200517917105848348612011576419609846844405492704280830532263423961394716185526548565589440908150459532830356933621589858146007587051583801217314169278135281483474291835696223666120103072561874251303465417239345841384621547317772258514438395870562117047021598351365034482238345185482485748836837086930056799921005585260039771740533967727260290798020579846218608286696161912188046813552151196067294318445418342854544072093713304364099237923354114127152310964959210790398138676049037493652145189983059990741349351707493339568606364611784186564999505316469273140958873985717441845173644443320388251831528774266961852703738952358984196487390961833204008149048870243340753058172540538221697837601387938494498478836501708920676483634482492872919442097064383100122959838132571230447404853485225645052731963545938811879189078304686073070471149788656566162130283301641253758038546889616887565347340247883279264524458646552213368533647049945171845492782635953122918048281076709836556374629784078294071466150445688902578309651641869456927971617685604562379985137730575648535480857647114478088372618133021436412176210746542939004418913915240715616020503192638028458524458240042360756510278933876834267851940153147685137065741565562843432429604947587320116633123906243306085052115078184711532511250976321829417118169801472610862412554056503807562399704184060896781623593070155043465590307304174964788533299916595262647413914566974067727565068217785044557705018237641389756289150159677148320451939670045216729284588315643743236441073073839681681039512280058450085537119525420702978424943063197616444196544760340296363360118336267132652098222953978882749342179293281006980218692606443211535862750684467117219323044052939689239359306783592301088411859164949267384379321537355039392224536024850773358305588552979773953213292272409243411227849018287599865398050904998711705697652550729652881189115084263008850353394675708066661705536512125354417787195400205786994560969822343107425216401740775378861218582819574543319259573983154447804028796443025416514152304542937304498818530310110012874066849764806123430976490389167282172276505724904731299196286047525282382074426482491813928220475110197763963233357746935632410143752139763708281730725486845360819625246886831183162493178783600323265048963296376627317616438344861535656569024177290234818959255541758744033972321686230415933537832877276642197649394252538195897716536880365952090864986968354503990989409671204558469675879046494942428596310080765310823488833531358982381006072878695246614715684441887246131474461031526584138702282146050620061874965296214045894878440586896513886511002948964319729116850932244182265952481207839933458938032269440262990780158231176160543196532082887145408694129133995024057350307830672938132172010116659299477143626076146928272721742978363304759275978050737764989447668586601584944476392154033301559833578231701336733780752632697321263536838321059526129397925560944113130726056611716757976151408136687799510749888451324105093535857604441680328836148295296752564658547437504400028011355228508684036283327609085272507974623696729353714267863324864821353994240495103431032274151471265487956297552898449423773044178210342723078118804633396132434101094814080886632425152335261893788453698108257047210012545730872654212831585293313504243393537912970505894162154969862691229253249063707734249006788460142127510818032522883006626691376342838852295023102969602932147050995704368897755807638463725929673451278587417846681862246376167694581519148050312789840187630358598540579566000280769404732990780459895511751021997118516126576949004109991796183051672746811935657511241257348438786821358913874210013817720653393860952672196490784557405217811016267768944370270952343382700350766230107912153422150316591774170757155836375943326399455754024199336129639109475217548258291952716943151413668795465027434509184597307851445002587062117662842811576598351959419931342488553976754272912039162687228927668926808798521960207416264102521047838058546978380000303473467180339120632731074483042571564934393801584112499140845916617155222732221153867708835361686764216942457879856464075406740695239021142074725083956197134830715429216480965791844799011374961315932997366577232351348033962863196722195034806716625755388260515217226679918718917095903441079626947558505915915122874705977680971073285219563214092749764554007164684111992436829691828750642752483020065693045530268995693171330448287991806055788271750618653217916778339111823560218159014735084641420325104511837794990798524178421726900478460369770323810949587867674123190417122606568816531905973871513324010197145167692357879918116710329769601366651359799544812091269075489118763199381036059773272760741217181097285998328091968843429503901180758556582150732014016462581508756808810098009205766503387069693197587253966458982378220773407373911708011534633366170569711963456245590708447940437400193991628819320257024265447241334580098469891674806118485681524708152500714897970272952160538840053247499390849374292657243442382111865636515365376262462916327649256453697895368801694852235781963623268150564598943407673347923361777698753942849818033973540286739988015977941813279198041834003488441071505845508383344628546193784184388103789692876193731033375236064243791458466672533697134704425936756713246319988837783079382269902099995105701617894462350196511760937404135466995860451544055463658786744485472060926987190776529722850462549048185386118321224084007500079045474834954841645069671986213292627793214359017927049246766117805997365536395663898671293510186359217749505323754538555825138361116375865510809596951473220272425590391224895159210706779709511974581128883441428251653974662825606034159230231594944056662137506716831247936546475890545484857014889758791420693985607342940695881312283509798292007672207563536864332269474109288980575226387301429145901842193431080658911765678534676744218813357992618770448142785780683969613050917538919911478310431945295691084658195222494927738911693472497306264342375626724105334406482080691768857103219259930128848720633639617126230672710477335914489201114818158231197585045045375392354618024020363692345682975696413659834038907105507892907226427176616076687138267493253118811950545445043146370585768254231595973635102624495680536939788672777893982038225768618657602540331857295450599484817230470888194421284479452245237024765584037842893285812029588990187137465041460732783711989722577462924148599840037251473194562153746573711872887861917194003890331653996977281023705496225098182846031713268795170860749682428837135922592806269244677906958736049957784913468195723713082448866476433985585824529401394860989506649299815446277888503924160506910184969496002754066765637693186687608213074370898833974732978730483906188984299076726763938554526823626642450153455759963718129642263128772003770792118049684131103291072425869238091136295602945727335241604534276588913668511706281545115497645931965539088860079523157166853673862652064575388239391184179395165354286301286965647810367066076534478480523541599252227847388476355511487428699222292343033397779301462255273090217499175669955120435186576332204697378495120975671573289935858065851649974643656910591384352036188331227742457916628481615292302350483164096869927760444125735329086302393819961109859883198408434084629941932803038842848280569259533363620931689582700900162065177194325553384463724633999657560417598950055110239038169522044843673357076158675278076352336960702252656302676047779854978723845030630440697585756933409208725544308397138457373157551994017792354319919557157143688210365616395471097731533398436903733776660088012357127483190736596532698514227747484458811251099982260767691724683247514351147020592976959911043026814137811788625130338960023392170272192193317916983858253156224670690905929475118880905878023900967030833278464857280147834246040911113830832505588043191904704796569136701984261062813393704539166673271518130041196909795247567549073265760654886353520542324215979822499244680615007384523849000494192990690082808858492362773525419844889473155637855031686700834137162155598945305827171010908490736571598868855400293365181510402857062728084996061095182728207164696609603180211962228719606383308654213311378396834290746321131573659745074301159285868824706191510329440987656492801977719986368796676867262318894978047986316068699345380014295774164543432312887515964495833513416088793928068418477128660845167216002385426507457748074895398358880487690599134429083711616722564900226845348734947611049865172818674303393306708846849849350542775592227749404444545891227001701447883259813510330789080588838564473754871270858065967581429617591931165725212129766437624035483487779652058529311519454792367548264889009467747083827162076363740329522443765481832947536086251095758334105514796163683620331794953381073896181077545528427481928525551443652370497158445571172959960957672919293515280359602146180539767890006978794364292543576175982638440809498989336199699322154174836325730310736516383839761707846127635653950304202703154370277489448342285797039171512801873194388612165252507711339162775651257087759039092494471180016277646150815244530892343543019423275155412978644328728107975308212724003174217457727808708864314892603099974514607695503507709096296993631973321203559167496679062133673557506213011881075657406695481006462442694140089824037158578448210730958700442860944774090158527449237230650750910028569724596409819871909315682256370541680406258823452119539190150026350369753242552744107642344765351662203351053566837568269368067036864812483941658158817750839155957345675491922083377090296438853132800090415210905452282807135756345303149951146384268456236810508096038192532802507203079161055979880701555372300651825486921853610894386247382969421511229747727888791658271818913290557275074495364726896892068557570614712732513329612180679920536635161367117420931034800274311067469686253913031525805064054129601524600451739898194518623720624873906941050643926986385655491667685988814562326442954331009243814677727987847620155025531329402247417787416337054260395036932287715563044287622943780583198425070441288110991132545850174841679013939829808872020341454607154593349636567925909046877747942275181699445747689163205675691951223662072742576303006535448899451959491844874091931613779053726500192820370109811383942959092532638227442052459919118816208052211379071327344915128124458190073280998592432896016515333880036026366436807176548495012582718191536812651203424989347106165258965007598006708679553874237451987888252606607033268793154928938225031369040040011873966519420122121740411733587764152922374173393738789504961559827968666122286321455892899766473484529110700705613814355232571207623608567361158606036559736461390244254742292190511546959400021249087275448610445766072666539207578870653705090484018166579450188404944840335126346503042906919813178111848228334431982059190724105544172904026818690081806783041224454156866267516692009610368995546566826878807139028994357519422860135931324735185494912171906046477538420836982768640392299805903539810841008232700399556184470793604845199963655763232560985178102208962116220121561309807696789595149120553325204554748617859738226064677984364208760497502400949199270765432096249522704536430553337007886785309184057066271473580432630570454179265893692041069582736970594199164257030627469932906857252905244423681352979137807928214699994109750536455825150256391555074137114267450946033353683326083500161461902980330807723965136749583139583199330079727621520190451098182364540559823679852269787149744452863674311841385691952928635132633932474350263951414138274864459075003651866062899777457869966891632372335844048388732530111116825574390218292189927986749022978158278240906090737092477987940030213831024494166787981354054100028620650844736494470585755533474519386737577210709669129889996129709060688704004079453117202333115486692259865201460211102007427213944402268348107307585757819454394564155755492448858615654420771626212033937850427689138112090154469983721311750705152518591904752187488870288091617837945851019101109046251065337356437779334502847936558361315889681004291901625506461466756958802358117884968548201479581276287279938752286961265631192304787354574916641630235025305696387262922719175236767922971624923693117470939758686255697329933592209811523587366292463723140744439939310248072297692243391215373520138475395282236760258734247495436899683529058502602682116717038851882599231209840395268386176918522003964550179453894843291241879158678481352370752173141903206249589162234290462110667120237323885353781716773912982077692301985904020128813216167799071503248648207074840191034505821699940452395492421059105455168165504217890405898140730716865920371954703428355938463279869197269831601626781676106384419064643045858441735489456083193242065831141115672729532160935863995380304182146124304781628191405323280479129890468732255899383534283782118544203983485645716670421135430267881326213376558292239581896898878739192055222936343310361268214356955718143618529102931056013606730935170166754316856890283180677453048447643833927783898485568929589478892510658506567821494284874951998212785107347378632919109532633223789990267675645758164561010270458611086119575174507741661930991086327727670545758507021971734434871167129149844319895810571778410187090020032172416529827770938414930458750572214225074689244924695232153004213818417444448625851289893770200015806908788088687008266956556181085939020168821923964687322828754932851776357116827020743853088253591979869059306651055344415420391913299017422435885147807739501985916343358928414831904440462520977136702135862015856123498984766289519749676799653376640342698346521381801367817355362836273988585202850266095738618215745966560142702861277209026372961074763259802724831644598522372606749539603506543903631549588655271418666064540007929751921805440134669921153156143748804002101652857318692035794307141692634142361356749463683734642964841495057198022278041082872441107969785817556931657301068590420822531247722929352988181139018024703025194474984877077701298582354346659674049811278406441302626313656915406044321311045635768408061605560260443793387932205895306084584627685257423742595992296260930093900302898113205470200422619480798760598955855736634686208945083465964686245746111346511419530982147431347067999630025621609986952060810661821009004699833934406721595882821025353861015968001181068306459664791564104871247644829297393095010775568689320582488533914782621618088173385237225288902122395708537957784351890753018387603371265980466485177721566700448735284916588919571201282480076964527500114666895155819623680713181597200462855968834480795304466963591117472748992448926274254998255795842272097767369171738186860616729690384601351203139128091185753596061894533725201277284129077805973227533024384573265203298248038419884747285120997253707022128701030837255877570501795644945522081001725409414560104093655461526348308364512433927429366678878503725772628496577877983531514616859860963410557223237276333594415353342773267813938279045528153676734776351599304009341550393279944350077376888522775829325215912941052095016612089046960642220265547076087548409220378730274301331820567679630794093823165171542481569144916917574455417156584207410597517610292250395997971585091206340355024563937231142361176063008872087072646835002227077963750567480929030489051151109164422774210700608214965939195590760137040799034022219008620000643782743996814982343026559928389067871217951396056985375561821873350161176506033575622224419621384212489919716156668012064443233376482118233793232702017342448864261114307657766616743409860603239817494084918933145746839080071931820795417588424727878296617726793192288396008956787354941949608991460813408232290698487709054920784277358239856864775745780712680733586346062541501859448547523587609803856742912412989827866854064383460638021637570265721566722992653498591660638848189252403336762632120227368190180453976961491479729954980074320604630495318983024807867501221450936375179525734350051173796607930655666419602406713823756596532426997728439348293622094805203382408351644445873429166744586003296313064519168488887604669675059941900617548011020280222499569497232833525721014104362466793295124799698188995157296654097074023256026598003552096431237526254183934734369526647403779987824243270113975063415661115632281177692530654515764471835633874586835243594108466564383763986743660852227900383030723334810002810377431424823396502701729055170497754045853601512115096890388310469899028847339966745746635386684317537570341771266651194284100999081895119422067229429262725037079955603614480928758709785501955282577426362667955281313048135106991519928077540031313967725470379948275482031559159167397996821333050021259065248801954315940783605927828742910811342790783602008277203376093787112676902808074666366205985208868548887100248741950724013167804007870952054351126104755640379325193300182667329149309466512300842180821014881850786614456044827887926071428331521026480429220518432188887849570706221032323238728359985942150147201489784810478563757496701173413892284667209208995419359754979023807679077458369258840307697645714551184267240005242362863387869533247118302697572942570768556866546019218603627685586994883435598812263259303052996670652413948199017112281739824576980218615721396580799909785621832196074964370917775527759756573098202120309382032731600005534003254039935453864127489181945885241241328900815717137651531850488731166943788323352962021808630269086249727702895920227253650342123849446568958899473714314035153683208171459725226883277831614151914792652566854349187066425717370898689740076591163595670944889158723362446457492377957319860267903207841438961066290922231445195740317927936107366124960575937337385152538820898118976474968417911922339301799914322015787468185175080550647724272157666946258629431533473414684625833102807574247830856558280205417369546353402749434263891722976914921476805732480466466594928380724929830989525109061231492234452698621944126458753208571634541971483367816537418721390591514281446272118655798594355105160856732040372700348613255353485309135705772369235774236476997719413880727730304220757728954762058634465138351898177620453980637128278899453812852323352247360063455420441368972527244842502213496866756651770876078903563849465090835287486395008250914811352049137641799438838706451105371285923471594426481958413145205558259324580043076451619780620295141062419235653363041491773892147609267856262215922247599733268531497018708607143381383319694629545838004062827657634570862044487442526894547264937354155716477486588144883882107507845897737961182288128791693598088717483953532624653017023621747402620116565217522450780541473836780128494532720131367261094392718087293343637619900648839035466912429397636163729084789541240625476947084078430561321499814001166716015043425327253971391267730327383120050004957066190853029571844290311478197250331235906025722495261180263913182017912289123486280401114179294252342978005635565754691642549327073341550721184907810472074883425899797760170540508598879227328786046095879748939419554715931042165611530509312136753597634141698567187227014484238052128637905315498328019358273649088417931967207696001291380214526439442953753140896857946466568909458561454127342168763460636830863467869571779144010649089324632886938744161710765858126008287845901330713275317743690817588059279316696952588174963128253234224941893748777861047938219292672840336928478545466566800479307299004005284728118169408996153564899985365065831425506546083675484754381425696952188474964832650017414418325344538451791927918635308843656443206515531990156740201332868813571250858786073892308494599119537575632029596848480071321506092076932209024027328651667878907094472748432263479636995609360831407237636124629001968380282269350881117079982057337253082437023797553496395652381598293330221838985588043047529961533540280871984946076215430238349709108686311451157571625831870182476674972110724080442841628358798524821861421671175274075704874249513377019528158729750534540064202961520510294784525509711502116605192770199608476191819360365468318711454434963123835276758404577055574254412569119001991567573744726583238953217285905710204409959082243528488893303203820580576128839475014829090325359571045039145937163488486667452767195789482698311565291946599886030768910767096922130067402688579025038722372205437035977146656912863259414612066932488888064539241392558900169152353482213281653735470991898344745033596263585288141536235395086086280512599580829852647485423776046291104157013907248111608890131928765960940634376678853533811709871484741582194066568130180260767078640030288537025582213028569302873683305838823676574077725721489985138022663738365504315189776570242404268676095446011208636531404253125165082441371256472924833963535494528142976852355905237468979042051231018892835738601703552100567411484862301165247326572537157220222480277391574351370518151578740638991730719863677437283307007309351033347272159149620889723235036275770758418543916353585006398326477962344221780708292470721517663413304768837574936120950844013024303098171447218377868233217747564627229199626825440089533362019435316277611608176343437509278886942094197883903738940113736323177885034002517283349056149124284894269402321029668056912835579908551033030257946086340128947818428436207554292323307259011583538967654311520558385096806118281532762622689512465270998225429730572450529403486002897255259737112289410991226597458591200247108513002470141549173248184326639453128205151315108315713542409499105835960784264816142186359087890627582930315135912431660858523239050023465936690813872936741105165133999540548888059994702774941211954807208920385747387842724339314888349168479250188269310381850420539623982016935353043441265851777927920388881877292261159581384697039803033794084088677222534330611450817431675744266051550733417779265939583569905585514976771470662274927647363404048702415753855906761785775281559453578649768640151698581046822345204766566723208754668585501017579531611694653560092905465041600985475548645936659541654886862234841246078387277239532234883038908018730769299310938699660988966327104821684060668710111212472928576645468306599672070856907798114030167701465631597218643736270302001939161393186227208098040498447527514862873622999471904398962860620418902398377538392779859210181436791369097127410206997002283590258871564996141911778669605910991948637190508993433668841955283214025443725678826445095128416925992209283684988693469590892473647702806455364826958680539969777785837210108785473514172575625444138198473782031849509980780936686271606083056439236489523019178777909320135781751901226851715563492668659690104929006581371048328862982597695819112639482570543414274866136925580057059770338334704325170955178541090058277133222812578016538866920721868308088667896128165801790445678854048228463895052135841518133636155511816435722528545366740876993285831959529372423224383131444487291918819829893594110410811721842623255400054951598001687983862362072321184016104620297961629024072485610031739934614345603364191632926386330081441315566559229347398487473524431130797274553141193076897136565559817877810332978128937585502046136128465969369714906961417673741257454689333729151630895405918921219219615671634161294204508601675247743547842241072922821820364511716784435292716478120624170467429394528058794604951847517704315829806489658924537006765835392646016800841443967876235006677521655046452507373767809059918034291083682088377589352016666074588371975616736057179963295636872991183441398529615501287671626412276981520125499029688624792826521892020544479676604681263154580567623567799203280283252525059955091919701071383093372847834782421397111607593780695306433009678027434111855565454838443252378592417967566955479411141683502191007962608932443434013131281945419480190087407490418997585331403833570857828957114257129513756319800151970789695732746002039793373462780764215862836728983340004488685714937865352351002075883218908640198588265145626159381709757254280942407936096579707390693986742199217231796064451709853031176121896935994499854170293521687648846365830766011068958655416465729081242564750401860638626990731543480121804044706765299664014429887893563458200083360671116073082722337866857436712987131549974372059237318017962987482652648421183338316952349046033899294494950403029058836817248145286469914432394695414311798612705652176620670011630806126759642133983527555576326515932797443594272049291760591824311708690233951803861006645096779628814774960243349001070398796005831320809226003169178930184285349532147093340001989060131051717250122302994416405097240693286239847986064481864848810011487225557364028067826956856925997684199650704790522542137183898239277733445958989183821661051613312089836842200924109726749316160562205050545227912434488226464281763561671271512218247998483881042183848552269802525978004016314749321211205203243565532200784329444831956412959047700625184362842783233282752441628532992231833491731296720022903469341038116398095437584929369747939093933255786875490692032322778704866629196412748625878623177447467282524817753825394792657525580080698708376505511583204583935247928503493936909183024660308502935932604409378822664977918631117633555269519957723381724147505674943201258421405856095475192851968521757780802126630045618452724832653894854610353861076114349655677126887762322132016069175587351505959299536537549746842455045857627146061754350909180221902890559449135610203149737644191313958062422209973472623119832994305436034294130105410945264771900978718152090645124288618256826963916283149764096709379513486645692355114850722894085219275765023052059419115694696199025919432982034949234007375931956633435786890400254281723343732937067049054595824521668238857195346884671574701606983475215093665884765036772706518626160184801378443571122459485818412821178735418816499389090086314323419271067658026306254168816472915257565723473854776807008361353811603192315205868817564351586979700851121838213523491397736802458464699222683395850379506097687089634241492833300172300981749076733342067057368418143980972646771015933103728033509834367724074609278636025752732846102667693696030843261369698469362692483945081554196801462825506265627707935631156886965173587646923709345033921876715062889248944896065780865038096164826578108860193436122466207902390750856990658154220395752435952485032661135487347589698654939888975929460214964166864362967744827878752917565485580224599648305873784502813203486070960010659482260980803003509476823586178977439308957181832648541235464274252121140991534196408913460818145250138926076804272965256025972231119307610493752506598805955930712018590523239623775699740731871340718698356469719601491494900249347325672535799536311823125887169157822223402402061497586586361302836270400553404871220307800253380347438124603873406250235278841661885318287149687541980624881428478832238084427653132494705923069913314637264157585598999497282691790519928064999863129276792951358236410471757255324570841432034811183590938353391170055405272831320842135386070986250735627973135114069763122472841022504424865372808416320829739799571368355547557599353021609964321771763250312995041684424075212668666807412794031454266934843016042280358310371325232498444695041853867800307061874237484495775799831689589573486276618807348602006138260163149211442433481184840891675826907347745801947456868895237327075259017123921726745271337454293888364591931953725528366791003192248301808090500627749520976394088642161063692809934990502655523867230797227345828440542752088339273385651074944507105202805802940032215093686507274803999836206765893487042972697841855659652189166708920656003313091593722986604728483748264972848694585806737508847085931741975113556059576926653383878590760300220387561155608405775729413060273045472364114405832050928241251618808481831673590547564901555200030015553949765583319940340333982821720153676296301321742719532871022397161711520613371719771195689768697972452537928949934424056436267538885549595771646498997365707634326522320440064449058487683175785765258946240418305558045030275012991621527909765904046242106677856944475739074483070580326885528706999472131887156716968545087079822833676346129541317038823627637335146458315469859723962554049455596573530739866402137277151886232236574777268442697653917233310297716833536575903536456439146547604676588122123648025313542430345222275596772531615709464353804087171464647620510757418465295502811296743107405212886918799098398643415665838111669637872773207725708376395782710570949451969025444407818187235067922059977445956037344902514860655254285178359685208621411126377052849989147293384220763294323373157491931815555816095145033802339674289832374001891854668065419908764920812244882325320169492787529948915767723255938115316130330999739915597234366157952902712433240810729011564421360137948333641369275411966487409668876187940363815793646584453854816041296957270565978362877390462948458714618472405910273953628225132356589894610026810243600415897696379472032882360368205544295809913974966918492742633755606935220583863305659271108227178162663567062544731968273722159522466076843154176458080787909875156536583601304020590637239632280424683262456961233932861081133345635335966046322157387621069306074453325325539382529435050264857793027154871658624234146372268694223109763314562997877705388370052998489159352937645645826039466341327072303087248656047906830578348751957136089962890306092966822650008107927651258705520214538329818852732190217352379684290178605763612632611239520238940196547741067780506614344666585046992400544327175262891209204605455824276347179805993135092035992334214953754659096830466591118241182906994074942242531481175325259656533495598299169085519272124967679060301266035797855231543894303949810670172201794231648936063112501703994908513881031743911043118423181104882016401867060394124392759407065010932580539896463389613127668571094392580471537922492233752943693889860931769095690107658868220779194910035854744889731703135808115240928531284007302831921805483417107845949563970034681185963915304418844850078756847095610084528222438906228396717887398556905777181499037908961024880440764732956109485570816689359582605058136234545910063309932349391313670467948571372768295001866117188508958503801364968058957590109511777427511114231513215612725800207822562541653781735369045066190796812347703058611500405697580915240736858273658334286963030035947577163446649414448052692766958438333723268116050911641270174290120629635581189365202545582426084799544569900723840090173721184899146456111807859594009052052851464105411988341882013256319344277599257108073887702125653213101742904118518798341791074761177273764266941815927891333005802690973969596409499693328181449146268032508331637012214845880958928273511116362534864750710450072344339514179659001360185011014245857250559335619700288950479856450351606259780405735632530008725198202420832468592323596985357299322485139396143186042568613212602517100909075166051362506047445588386108171776211547625721172267391554318495235912483332345437114579279865568353531424360374877861631220018804381654699210704484935468294765938657403771223361575445798902738228288817905135495190096968576715846869703418602643218345641873506264567081517195254848774232788571091603838425744275334083997195608751783216890661655878157011810586756098932660168281916428728241422905546279459186902264183023802064071853740861838956532458365251479717301291120718435306496714098786489656043971952773190045944066846639436233579743591789012927945107275675714402940085628597722982757057349756738175432866699052194821495340892534460603185619637882333922562903056614840732675273366963553581969041353068569610026157113235559278717082865999448122952020815856522375747846652009628270832433433118981200058689333154952049193092972057677252142359299350461533656497103476544534514244690774415959324321678379711336975677814469443132907782328538155948680504244533183033450596304076300426081572065892247920220758469919707721569410920779265959493798184433007075332418024992245903065887963951433166143401973049452252626301402670606539146072654763766280318722342240668826050645045146783563701124808373617623288557215437041853259841109278698128440321865914338578772277874973215156172364048436236190410095077131980855742438745623835834044246291433896343105353643157219741249924927933415439627402424048964021855400029406624054400614616931319266310304934869951444655208153146918511949653585569877717920098116578231097463195370153574928569264982121411509508288064003718985518307057783452058698460066498460152837395333098135417063630923002520074892330724790486731568220897519154255694960428685477573036992188117097045601705855712885425104243889080780467538107076726121507577785186740446792240713992221085761628274921464578093535104464557482912523992920672664419945502993443067475318297846361751205557789518046022495319130279686042991054421703460469850546343450170926233568343372481041631206315346977458641938098221762134851492468465891766004964491595802831921709616577312667047357639362376238645752237047555905667073326897453208555908350856862183600153862408713663750840335991709458828350071309213150156082821509048681027615604131443275523552313452514680589290864018887092374137007816625043621954592241699435845611989132361708806173027827615491723816429613181569111325735455353694022218910446485764188695127185614068159277811548893081115935313879345295934456864157669252052725004261588826895510691378661626811658164906452803712334613831195725968230664305114671511242046026496357153554953401793760572822376749578075232057119160726925235609227557774106472137353209695624733423179589156061139019870715011905109974088219609366314088060851045325809734830147810157620519708311770191090158288590049904158109233550025919449148423770255166987285367350439201434132522456396268304488648846295482679593098214236287236683571804803410594071123126429222911697272282073286892170751383747717150829060627847753430352075784961086151071347945153102958676823054025683193389053461495222954892645285689067563573859540913923248539298350400990803676688426963362271351296166758790083113708179309399815587819620149334199492004493535000518288566399601321820005052898037325226982244262765134024608104381979654775982250758715614068670107762314584113556267917040945515029919287291442543599014419424192671613507580674211775197786434983354748185493246743340707183520239325037633215071662406129433093523733872879755203207302969205339233508091639014694674129547807304310476972360333415054219801463296959168179685495844806704708908550619272037355276207138449195053630347569967224507927686916674095681010041933949524408805314270665307533514654767109817512491459531650196271819076938731829020617539682714333694444961722246024425052390624001740861725262547876806567794264957231961663327466236426988122044105122479600699453991586380072820583265393258004198365046298928208353113171899712741322657309495721524130663606268436744592842658274947270966524626738377637914944079882760210123662730355684344239901882864607593832826175011284177928663734313490489763171437647749473023115023242795030169707081092276595737836038957131767675644702540977213076469113349688638911732205256098888051546737779206562321583396054868299860765626461140853797018901826988821144677829645502331149285325103677821409421795855460553109977016522367976215261686732790920078625615924230715432680914550963432738811152586284455734855795059130107471150777310724081440449872922124762571380074558708146676124840411370731861405440631063994699055835175870832353799220371856099655904252808873462413553163521597225670070068496027055844255604637621343012138744977808018733191863094230221855222984854357483457133525243416423442490320038439412253267079758353372941046087913550702019588512332754061488454851565684162732125444378338006678117758229114473036205375234850855749588839642278321701752207359967212877347016451259960332989437250137678391322126287953921002355703000206874401016571515071400366848807013581851693256163560461691429843711462473753782408457574728152195121146109292862274126084647959204064721233039466275565257157449889315698912080703122715678023045492839467021023304792738227451322105213944767807234179499492358367626271292588614155259781417316607838362065528520777259173008093846201527632925498115448315846661383253581128622895191843010036928274597832749969224497524902702431451862824566635574328450312490298529328817999927765494786692735387417403689901494907739706710053314646616554057801838785989269859211589286714113151704632434777718609705762448480992184600371351867964867599309843303587489162350479312783526515176294907574553337714462880167633824246158320652103956666621213145866036813285315857892081574792784372372514708746653789771016147754850616416435977555917830740668917084319360824809248159181491889550953115166582785104466805234318536870100858056020450091598531266273494330985010262528397556810850784159263907772165527252968147334455290609007982880525539579424796399851533814700763891053660267106528533343762230291274849431780038671165463197860099412310379194657633255635315694911379563282184541537916021011239783241233984984549240423024929952580908314789340181503694758656626950785663389656215661908058866782624802558141083821726933214387844891215135299055314354770029151827851808221970771720019699660302142495095550475357482976321838338022366321031106469867546963044425784394295311941809026460020078163216505040412931462311283695266206690661706871708481319192486054694076811064923667529797703000690522511884553667286783065063056709079046075376566040923461176770348186016229157226770111624244611492957933614443229911481892690838988632259536698701112987157738690307940928675840005309661408290978442496522103642803709196324962639383177186723330194952080127270183034349863039501186158334183109669756597934666891808344549875816421158915600459888545608124542072112223826932978981670949063721766265477137253326239670109057699803361123339619642702001676021724647528902187154979763788227016356609873511151514352344915100390909194992485872466619720438429518233637106599585166703926132414828973225043676545587325823936600379839680922706170377762536157030360575316552548588930654645888314601139721057614891916382489345046110067093787545441682431971218984496777786136456591501429346493008978643275147462042983595894355893441289656703192561199261036961308488656756435245365292126015901868432540072648505753403886387756019055584943333676000245730740278646692023605942300011039824098413065771659867680264089619748360750052148432470099877218599705688376845727714714760008143153669749851356421405178371727565349965110126811254591266304829371885261499943936972309517132675740295589197864653979418264231483355788230739389613022389835249949409131249942612916970032655874754480738894970354502247159316192105973153421490925214106382746878853836465778890536037469454179058536997710751423234143215204459828084162499403502204337794559141182668551531855322592762042016800728664397539420357327992116440484899880894921716620963497218687447665094726962942902730993961349954372268649428804088759442212693827339403540428953096365865749084405856409794931943633835321059568430527587729086571355518159025362689435374869959162769774488160299016150146378598516418016084343930645348888550336693418185448293405696194503370819350211348555979762470019797569962140051548100020576467444706523108646797389333414590427567104563568215620253256877291853105859082222826188500230759557671117363120227822357001577549845656868892183166313404070801694504802701040073880980170975376563091675776352522637788743865262933863393295765583252090388274402472591694344935200221656947091997155446932149843448557335175782436462736745425210014560233333484912473759803061965961521816133786730504424192288562443344001562335980209667274879731576110792958532848729846159189853448199511433294105941153612215781778086021940579880461002938068620262813843737902302247470419140047250897595345568766270313227018587209624115309200640216520990365412382890473676749834085077455311036437756888071882098629466985589303658527873071031576282608304074423991203757777206766070287651877826408045956429504936332186566962674868297546833996286745270624219054450817383913814424163597330002227748180386621625858390393963265196145249428945845886336898359500974683289156986281177137203833760744984005624153086912308524537998457750254566888354620505130943173300265498129943551562499104918420143467110124600627236919722237019070086019751620597158679519436066001740228154870788844370231718090429757981071088316258420515890772074586487663364933302566428724475436711461210820120285994273051475963576073490212658254742391883160452045022484191368615148564007652904291598477953534873377007938394326784086779645311125024350480609811903313560557095150671722216155239684873803275579880256500384591988391854443850626511633376329087934668701925273558902645805479654010026165018191839178883777068377636970589170053888827582321692479553178518702735613770297240386334662031184605248322490510259513795914348493058802412231498079779682640845435506930210802600833411532416756143731758921514540054265665824680722861490961656175757980562975408732165046504607352863462308963386320760738599083882966734718054938205933719495160143650827657889508257443021756153417875022944979299065858330497642205787017616297115900172468467255912228043752217084610922182971301225286540817789147314515253681432040884968381362857221577904255362794625818070917315305217527315896262008312093043871738458175791924149366990837257682868287193063222108499432823320947518747694967163892421549114365718494095827497095354638773457306460695128133428425211914705474467104313035179599732232222804700383243383422880011148349948746023995311770594713586196905899694235374396938550657133861688368437104575500951956378601269216403891085608215963619283338680032586118173013546563672872874381047901948951146188041387693965009513224208204976177138339930125219723851886373424838753060526439902613839916818818745420042630985521383125763904441411899617690062058421739600000388136284853395516403267947136230033421963240425468359001670866094032335687517231653315968940421608853075447758421775078669840755206565087151199079310954299536340761498479770261107341195365869045630647191467816022640592336856228088636600529765145730816043657982800165135854696234779477176682954007036324017984067628197799003471164746704352076766593869945757017685368994321828455966078172864991668084941754113457550599665667475522046033397667590607953491619466659484688834055208394663087946907142278835506196652006439285148887018595025341168736812027863173410676504084041690317085193168564973532205174155500842267890551339900557085164793216723548867558632828756113931845795479088275192953242192536774627730461395252359378553415108095566794717972505763979910716900789829638411713095548300321036854944862741544573123387428640094821998408600687571719172469066641272387842588850084870250765696223309870349837269200490258140348733212109440279300091956233720733810103189107648054670854525808940828629599345227021486672143833857464257406106401683225438464944133184379572288015964358610005557579004077400302443140668593588598834131670702615552917867709552028691611787279500840385800883729665725077758007246027178275021108979070738674886192256067900162956860390971720059628947541238363739672587395363140195442679090184918196823917927271749692841498105051259929142050563703038656703700828093372258486380565390791049989679201572621671780962857880021689495625989812746048105173756401170124348776927923900163714812262855261630253198402787938217235357369297201483285454592479407795573167631379233789102400483732885040888168320338378039338194674747560310974646137098036013694747159526079498870609783833786117714031754215665299477081632710719263506494436171737396956707353632776842241724686483264346963659464539111650399344487343354065076397823298975403669249309041689990100329579076544568886263434333370256149484626498325310413050328907460503167625478325887969201600579421407081331334401421852099700146460078474060731784472751436971268319696641988802784434897995179827706461663884406126302288300430810643126705972428195984414262285643845840745853412037878255583348350629303150991865289607427013075540071118443711673992960145880447814710933993752634793092798461816822726220590325697366155040305004563945202007453520935005230288209787794652935254158648294047060345213163239005558951908789480399243198335166800924949864552248211874706980587052609516910525040090867580037329911198473015068737197737362262594361170239056845174739418528004202033903363327952654761198430718206909592321459437640289458592026352419201549593069454142941652209917189205104503617026538881458454203404356602088764436261600664157774511135676594381768576756445902225724746783774493897829520511756237825931931674086380050283811566755832087190851686856403457033228507490394390761210459522023136669822888591469517403312761422464188884392676596427927684520592476298140688321395596277518982171234376101910146410566191204551956599226340315189219040298598553367287601132786798995168798091668487803377737071942174083133213416053932397662108028202554047251943067415461198708839130136576004784495406239866233915892873555033613074284126857480877319973245015702696404725348520974613027129117595207328481764790806580262405680906868547156499694939117748969645196682341244818235383740201649421385217961076675763714470778769099128977827593933855560329813504127644434045423080498804817594097720745317642165525494214665513333239039609661105188242828617222668362451836156599133005599414406451463845056456326467756870716218431416867354030871656884635463483115230993245892485770945178273582462305390537880380882645763128461817470027257717830404036945070951314656390471934578323705028206413407878212263154595557210822574903621232409631889097009070901954001546318313701817705566438515151783393361967080591878806847696225806601787900317830636803119491207230675394115542288815692704209678097304373129137448768520933289874403756935430203861569642810719306040659092506547705817107292512562049116263806616134287979744758957021235570681076251876466136120303810488070032420547731395026448987044656720625861661795800121965520392416763480006758147196421426085091281725808957124453042037039548034425703254568919355886887622315862264751629317182740315480228228120893350858939216240109456491585562864806297515756970935625001442838916143672915440624088598314240154130304758934536383256108053351563260092921578529480364089203843970163050726019948486443772415451958611338844224182682733238653831691542335317454586348924821833877771427323002599328851556322265494789809980974933199039087951229645973640639128490195124378578535219179939351611380883075160991971973026157965987325453552682221079638804218415573959153202551564222822410430323345169856216085382311794560553678457381054889256941231730562633180495010195486480841786109063477592481138529436274094314099779628233463159512207928831794930512867148286483135912291356314425295293477130326522358497979659224346739897870865334796906685343862149940976236467077006388989263667270292711728403898876661265333120379444160398337897481777192390038182972676330805024776744339079116706250872469593646626716003358591410265654481291671438452130444377853646302345688592542143428725412152156121798101158605359477682381466604549352019076920263626612575411265205735220966806897323265925848466046619203582579022251580472267551639679020276382401870141668960868535059463508277191982074078430502857532022128965779417438720342945004077510673125392154874270194658026610711980799681956736195377667753650874249761448551230182583663689799203679950485733989343990199674552472214104978998771456932067332113697278293806879863621666526992546071950269030796648579753918846102866774401964876717304123693271711293169742856697398275355158724385818483710540985871755912592059994497441204080393194958861692593314122688014987350522251695148302094668669195922289259036195004373675759266657400681696843367532724274929320797090207143237275371976890667200961590180466843801084672495804030079444314315981576733154650353859289987179889250344518523656953847924248233327960633383663123061976418040470220835297692169137270832906641539579758604888883148009200067216256296608417916063216223460012179836425150832127814712249613199255325429818193534087928250604008719268169195408540094779444978602154277452122836305146044890415141794486363858569993281964105081939525721200323289682105051065711792627249327469358754154431483331949931108323717479278577757101922702309776717430749084080640682744864151018900645809018559408147459496427839203690809417922991780610774373739247544694860011856723075435117484675378552168741090053972530007057136092685981858993848365757132629913942954669047200997410995226953187042707823264967244898481926155646043283544455070513597806061877341829494833061264691806938135254240641641389641066192405979445399884378755300964606911802378407168632191190025509821730405498335166607930019670808876826978482602363562821768197013433001411944276726896912990236407189403451092935565978128490374797103299989416092816863812678819803584113533283340150303973170625783153307710153276316584192012558067488650380777065168624587286662657992370239597477629961560084601315823492476242991022162649774642383748841793470655092153542091275580995195579926821957353432363236995486285957391132627606471675859511342919994619026148973879081893560948900258349000351606459500312490071447101179149405658247079331257543367998082183753763217914966957683654440537914072467398021527579531931129562983058996104346913182746235958492997627639915051695534165682769011192303782472618948705034943076832275393439350053023277132330927207597370794929193762191855296120412862434668060192518918180655837140869417932326408491827193154283164519499129996967630698520585350654148385791012308158608789041822895502045869859052672942567094660743877032192324819725504499552090604875431382641944939337116223036579071113619425701455164705957531642191283676412186738548494014060019163599850993018831198390984044104566577131783352945637424997843775223093222565448339824879180650792328686552381627063324599526731292763096713411648747619641953156270011209548923625761080777888186955634845710823403200591291341571720728210797381669325182163338163559731936883235900132334919632723531811542303907032690840959201693161084831744997822132052159487903711454173060732265277769014866902302345742964318511415694143682914815187478242770625556740914102543001884555754142856321185723034457663129153116400983004482404803963501986415518168368942775073190112704383874344110084061443926476410093718638637397376211614607298646104529266341287900520567496831433538079845216746371851251735922873975733155621700099415401229146579727597388264698486485822706215059816012951732477329003318096912633303409806892078656266095989904056408414665736198810791006357792117057613495170098401301742230144627394964185963479403868909010720956572249174263422828429538725077328340600590186014952311661810404303026203067836042925204772862192809287248082181989008412005462568209592747071102032692858714770262540596020768287086171132013848014081524128486761975152549874059284099610811431426595002404589124635343379025260954800609016995507184742593110389818490450373727708875629839606879063777246097233371974511313407674636273418907450718446376483775810245802248228729947860303969117500690214647241420935484484558477580781960644008342600437586303311791899542380684555617361221846040176650744792924258815826163674048214492903875864835738393052043072669810416739004172122504724644255214964257508758803559023140724202457772458450356854782313982490267298014247997535907539913361603758649368591946285406496998034428523398255362546856617494304588270290995160444017802904680918186195068327814387100233858484095859091912205446237153298649438682970004578520144841584370388922063263410315789446778143111343051181855100218318027437040607028916500692711905924064981932107792588755042194180288243785082337722625689845616527484678412372105200370430648697062346579125802882706941827827328080243278159248095626150315087697212134148646245904853058246552488986127336653458520373310269757628994716749408722714347148292257811208816413719926653077470349092852693206076765258214365935476432087297608253377698609356553708285755974565885211667965160900275473649181799030219330078899015474687535944299549280561205141108308171529338520964698913224776128240659382866952100143370903345768489108404756169572426410660873835812775178014532794007294629119071515545787284535884373325199023693426894861251420557833361714308945986581641727381914077112219240063315475757641957656170282387520574386700269481467238020144293728051817263168316799214081629707320317291449854848196811748028742225645899883311863884918954626540499544780302936971515492297364757060031417397550498666037781917217296741201404132010583953166060169028330846863868384321492773235088735043395575765993661741191685701515008579622497724115085066539346794754815469584981540005166824527926519657229376848873117907230973668597142615313860647123719677024684002607844104561583823973357644203999603818762698485605830955395762124556292263098046646568696859529977828438097849775653865149400000926903191111629375344569423497421689877787377393325437688023023271012144549506971316673982677712969985231314572197217361584413820797955621744411410773166825767193147559188339073508947384052578311058344240568515828551997554715082118781567969262027073730479183196321929612730632978556100748256765273624380412353624666927900510267545170270006122250437291759351329818536382880170662496954403078834582253578872684566927975314913556563171040027559046506583595732191449923828527824818109178257882517800394298556494040127313318541274440343208974950272423647940771859525653329015011715243750426310651311875134388290231722939585911137682774929022460962217177670202493429620247788615801637789033125031139500263347613302660173602289863839337360641832513594875964508825887698813375734023344746928936391742549424770893090464090909065862096304163235284921267218722403370415778604900553433643565471129007645340972182183050408190216528421530927298280847814470195983159142213208406402361452421998179482016267262485655306524662459882804361717891231309566733516298114919472309546762702338792095432728731370352078479586061980653526507126859092013497162692023150370901535857214805907146058244336952664355278838831255624754186062655660338329371305883111786027398720316124023453395173125553906625143222292753743117085764735429665911192794028348666885576907191614348890980910896291342208946474984767655045471030924399032779831480802708833626023771364154384190828917964932343851452752802638795018357285016775854806652463852669744385286118744380183295041331151909150230803722003965644243637599006805925011717544625581135574922351890500787045763551730622636579072906239494667226243805754240266334505723426564954293757098430623146690010193362959516183288794158116099037275740968755619213243074750115216933731868045131460970709542609497877631337740222385662728741667139350951776965495686660227072566976490205922904095140043898975740242825671163514953832179254154321745518583962185712477827136347320633990733185006034229735715072821797665633726296809989116914028030878726865014959827858732858091624755792923147192069154480469266934153631762821908622584386136172224251106571751052582933245729251026599240830146577570980414170232232491855765186805100596536560054749459486632625695346824131836318570512882549326007531811907458327787790573930855595159323609221486419517618568289054948771873035425676924792366069552314591740750019872283925600611921166417435733420423655022826792540395507521763412900058951632239236449153320690668099493228045218432770565897675496481508518982356636661904504014513618199432221279508503999976585248174848734220306760024207460086039733999323810267830463141599606819322395095878573401840247547024341308459016174416558693438531777255855079755946775751190337703092704201179433510442057915941289793635851522412773691796086149044282754858490075053668444336200524707778906768082126129705378957689743028105950740791255030932064980805474727293703664347937650536862480960058210160803066902093535504763126363497324848208663012375557545507707149548248405705587631729293835533615641951686569332563907658542904462724685467227103764216986544369211653955693181421272992576255986182774560182560650824353325523782176279102517930044818912204476902582964809064426607416318177761867175402979375794946255391272662309151534992023008392199512629593892189900727901692073378206846900984888767560512998744344879137595586311847940161037770629381565842551134777289233421597490722534148514708462575767067076773266899580479427417341386823238902243164891227775025438068246787127412997473094697935833444431241078898591630330277778210968592436408913099159708596160383676076192160771623406148371996235587988487185010878379846933996418297671143407310443571002434168362810176554405211843615159428667196910484978260878931193796287387424624184631763748072802799545434510633035612187659238802491279078106497826442350113473228717267009868697816459177278725009070037805139922522515887798682885060418690096951177623555865829323222631808263360720042784976235077102331335322556546485331106196172263297321469104412114260924197798826749865790150945190192138100111029315207283385316498587025989363423897082883247900694375985901332942655084650265376654934534538456209451374389507099874409999645850631573888752021180113037722918065576308466716229437885056066281595246012169497396082738410563707953315163606736526637812521593223655725981533119840461979661874667272624314889415765466350170020094972996658730176137402718156568745116074704429879768697306280462885548618160497221530596005395953165158692641463607699461487836396323406424582177097875976215017120509252387509567014610024734461378093301494255425761147996803327607244920788106001042789194058350951455832032409920771783742249762508304727683529349992123871685966615215652985464428498555869223483980669424080260650981331116703897272235945557049482837841389745232445868480861441728075291588184046740740743338597105255732465354204633879191145058585251171862486513424932899527121187597990718046836071451473526763938602999990322028725479062150630407643208130723427660920403714974331849039981048649118006697730598469768185808164808588368571658250897222210399004321099067631432633378690349720265007928416299883518553068695909855445816883295025736242263050176432423661021205592099726864679435524273188631472962164018123242448740362480356757375417095482185007862864328423967391279175581317258383338643533389581880935222136337174661749450827312763745013117145622458491144505192270311343949622742802897791802137573210457075035023637315614505616255363462138865809837983951764146199915626254115088151145504762428965680968584719176805121846156450668367901459049642832174040815449234058563865171459758823056488696268987968862236766396526259294056821319265413317765187771948613288996372619502047638967760063070047596410733881054302561534551069769160020138413018880975124251938486725948589683427202958244892962334827843897081396119264656223960731622986389499398171704577664029715352483307700009240880849575426326651514509388048774438655015335813517376816075319390437509657284276612259799902082388235554092270729898407071610773069748212445284440326360323378040131657562884892736741417231145889593805641228575002148040869166599638434621033360316367296940683721049554154404958700432417723736700848604663686851243989605835932937177973491745637815872236626641098511337108563816839484078226199388417583692511646453273121573718732322060182446032230093205713842701535830485460942602414033030230924422676594432320368936844437841928951614397948699752756487028793797043039657794194340464332073497148306752236612093683813160601495553481183057444803890041318880627463553930775133358985094705221379167576164978742105443388982108845242481844710576041301681639175440485898306000892069569621856623601482289083860910781177635522728369784130562870485895561184828311956551123848171963887171450156618242276701327346972462217801478393006758981523100967177673748847736910379264653278018493061549806488601139730671481581965696130122004501009804015847215516456077980846740722533234947369974147607998201863381536425004863583837842109255103069430554244832696342762730024089270143936946508262803525763732221540910076146799970781619512241884538581285567683927100171170778918905129633924430882255484300098540474957503030392733800481294977999608092844313695400630431943918556670248383356612487789114505401675701173563197927377773431636444256253129933397739579349254614978187342835474999485876603616653663290559750690592565626125135902783841060919119777511143947673617652716459497667602261183211480493953874743828388601003489963753370630226313968981365661894511811544811263200162114074761831468316995299901356625862566714218952584440386438440132572877667968731835454150196071517346142949057715932072711472837720061251646196879335625023487955697497005177188217310666891721401392386868786269191308626159592096438033141429317344489308150554139548880430077744281532160863310237514270445343726989054173649750354238515478918301925909124290438622837517665929689040877380521244548098470996263343927334065171725795842207246884008298445961511107004797619346370303606183479445284975890357412400488379185868882720854483752493999359080928008928660296744948897436110776771018625149704245953847977553332436704277115927916778566966135591248412413068414026556552221374542079112902541675962085842402309583533144748374853625637312441996919567630663872800708018320749173910596384500922153949888154433533555258627069528745392116077443974438757443535930043160631335613947350402363172019926674134446595369036002561670743821964490370476338907410891278791506440117043543230825947493927255634074759470523547742997701645404287175054972508082458301610408472852633845519230199932427430659994556954899622124844032354921156058357082665117261476499973239406723608723562186254396771966480300982347285339584725623223501932663248586117777117689248652053738601609434714414135778977062183893602355906779220307958745752359991185311386695944870332856565543856992505142996477922202330878754760414212149010572088049665125284404203783072931460118734223056989995240952394428514105496809301704233583916220312250844660241793366988345167120434396541118088986150694481337081628556762655319278589465047820156442030799996941749687624770689524179304654427218339365257024808876501005962639892708551366305568755768819469285685461782688301690715974070547559312021543159138926061470188533254917575289558470884473083014466256777060801270204112820626698448330006990508658554227201464613241495875894071923634956720063925701239929304751713243519401321723856939510001659274575738116087192911059084654286311673562386542322727048676208869754918407930673513108489390733327561633688581468924685790608122249841146622789790699447552374621872530255964068589123017843209173397978032851310230942931962876947614477000696388119236978276227404354262405238661807895132702730684068987275138386402432696824754211072233604959296416506967978612597864936658272479501519830270614675465669178660783961079281658341875898382036161805415545673701555473927321963757708468133589162793521093350877804203771741355686960046253997399949908035378615514966400645383147430494145243839879753644619341877392995662981097124921177409964186497278768963054483300152705464026722858733737555794121626653222411277663789684618035060033232714449901248713029387785101979843417314190405782782558008968166460862923248292077409493403642301344096471886714374902720087854062613820203232147655736273809267300294539643999624112583383381684009089112540321159250392382811449321805916709671291518638300298036583779520109518082194692447237005185960694810828048576848729988107088020139873395333493976165839386869446201728918594177722475976599006438925742125798576318952207416342109514323235467068825362184955543737927915537637556061196214841609916948450986048365035281080841915747736117996685791033100498365709983362711928551038623807629386355911423740209915509065352183866950215450565294393589219351928123436832381695812316892921755283149066890476843435910491479601527210939202204897037525219990590054198817790854033990097636130214724573323356721653333028522750880772727026591014789908270099584829323452646343761085391291542577903251998835970352033331865842653117662801795094901441072070940150740858635501008713436960942984415363535960171622216009690140712712383101654439999099110827763300464230579912346171175387112896070716761880759114380955499928855242314772614273912220268911360670165968366121767521956873446589557541262535804961041409573868770939146354178669632737135652191944258970460823896783767327725444523218598482951711686365901534173197787351150557166877129374686747934083273060918989470499155860607013387160173220611338435198229039202560143241088687397430923784512752408883191582581518342246177561267284068456235274567464293557560374733956210929570242956912119952328268286237484033619439709639374309607206346464577953409009438395374619312352050148850874078085548347563347635045049856119826132849956193227396951422333639579146578620315028772848706337661285752554938153825596656147368685315626230973643421580902174020785712767513233820997966902833986690457171912821856737293715049949114606265957519182484584106198082543860484102421353120176104769497556975299154113481545004560244155642314202543442104872292746610420263347556616310349240580093808924829643668445323897098316494726041205971153118609516467005142333408861389155447727841490003072454411244288686928878241761278677086615876028177838373928914301746569907692885029958235103013533480285387616763039806943770400265127906165155837709655323012241730005003461261299016386141759718368987162006346792549638698174699648139012079274590179262074416961759348960997584232175641976803412324847746860890372715417409644593422440013672630642277013129725992308356280481243146632335289019036322939246406481311018087612139027228194285143152082433765659788424867581671871897945798816322083903464471313782793898011664067961963618107491026959211860546886592287494599536322651369663619645703972058497000032054988773081193908776856992777445037648934633145968922634183127152440205504374408960002108755280169490585113987451369772211210928175976234236460982767295664740499888611407588731879909866833297085667548929812247629759806397919774692341048636766800959558530646085632879898443603052768560372173897861190903630518812217604122222276016913877848724142261589838532905136365157279585493480714917480159427734873212922054388338087551649754326254090512749166382214971938233238394095711617211460837530982128703370890991596832372718312757747016162441128985990131613307180604784749962210842617209648735021324498998424653289862241727297177933354476133582944230523961345397718823537876830258971227630792556347720019554523208008907034479038959748103465730541672276595778215022845162726393082604288644588642282820257527701206191988181876078563828173451624904866260800445775731993038478458437257083899227175131196024905211854033855281141971115162323719145855698459023640342610218968509162604924848385984487976892582588068510566104203556067683118398880948485328351198872733637758632066404432767465860567207436210061951369148117319269114831021098637124447524738713592148768442049223042682744958227689027535622025705737480841130302901001395153700600541618580664575402103640894245344840434835440976500051647780669128008573334195005084363328792005511967269788189497996796309768819946740940071841151951835924837276016069448320526218149785900300721165937901848652529887372992319940772485470672856541889923387535545583467343193951430948333781719664107731297197411841524761395047389587115208080077100929836302099075545483944877753164009714633327843869160557125992897941979715131554043563583655153764090365703122725290722287336964110946419821028131212548889452912367127664813678158992128509137897001684524204096520335495239077951343758157285956376734526160119959447567933204939247852294142271837026976187295363005051198053020575623887653659686280670084746221393327433447647496970944268496089226598809097745369328521632152154269793011600096019261742261322578213808274999176811699005167000031757461856671992245562324835467403375617937069976883827229640831619951787831789075696929666225278247444551713534964631516406044266999532884592001000666245247504554950855721697318863345057616209666658419976657869293703020790513564933521111092296388305476871913719658525950250762638937609304744892994132884286903477633746053790884241078234720049876059600567518022438508489013303339806413751795904355006169407419676272858980158161001093239631332567045733232208346427359410146029869560920096889422706220412288505815456280119774447160023524075741424251354353804368231478147038053681950552092191624004691785025580127138814736239088657793508320104277146937043574613502047153724596460924574889053553218600821805632094157762886466716201181987291977992157979352579385780577036164736554787524986366369181473299614494435755666071154275272462699450733793763239900673609780650568092182720622787620902455281412261108959154082583547499917414811597153772572983277690948505154685101444939901995336828315581650146106397820478857083456142308296503577857409631688658686747073139232394249846342420641987575374753253371291681899825789431431551681036335151728033062386755776889464548788264166373049032285304753937643954361800860084822314973881785151742933283332968704760137325042291873307132813437130868422305349952151955032133460448332314386385448214270910986326445843220052357629006737629517965844537404302452472555602444567084983930966421874405946646895393785759397200443287588695366010101988431621518687444718375612757598772785767554358923016402711553425858055257942650109358089878659956410634908706733614809135448050632501945373144787205722872983303135581671146872333083924248646611109407288938296201150094133892330810000436412707972569062973394123652173154649554581805711471782537645857614239017060983210916620201470234355976975709127980914620085669139707399980298838106336881525187897991982544764491298003731783253886246680237633308838637530195303802698828374022972783042476064240811637664832186740415242296674768444004291415964906114885532642967427414695508420280500147920772571190758655167475542923759195645892000505554169268863460118312963866726035297216757183123569893076748597697666741789422020385297297037076155764196216098163159380799743157924747743707006480149484928706983264423351538383171960718291465301922657225101756823754709087626182476546607403139390107643661942996265913915638660685603721871208142502073763440352764143444821809970088102802774243946331321830231488654563309265281652781250488209270297517939318302614564055012157945408457328281577025308736861249453624516805912932095321012467034678498938453262446083843205072714262054638840302344763274425463380216650528801099737197298106143373912877090056181827497908092318455837560498350224420697683722021038974463381527613367844013697244591735360979285721198329306985220447790686407760286527294569809254548399718274380002906724624033218442704347071875638750613468910243521049146480191971016295201375672935561338301278552717357641857122752588850860092109647456941572117184156746774267026963899243890232527402176805648222295841139051897616331113933706699106111243572628450094580849326314850888082385589403502825318595394935756315925070555847089395631396561859809694673823614453209112767074165054889610087023612363079136369010433892876821741945786349715251811665279051761448093343470588112199932850660275868231392815455472303706102052854934293327543441617667005656667261987025561100421973981369584968084923899680882968802254063284577448642729461724508291209189212493695389646132547662035807314818729360177223964315117314486280023261856762645627887484094318836503620364670929804438848350350776429874060787986547448535440215040123906423719024145521473355081551636887448970946529439731232297942626648172018012198371141942610694967335767351147738541633725539079907698486085848860356281720442048876149215914484030651301732957668530582343449442228014958513140958132781578035434529334090714190686311421612525529576792518616619056121978662829348399084201796978300344659830465928860229934819149596356802579757005912735106315731510685491257492379593303558825758673187424867203042166566718175960827647899335586791247725465788004458599981094688133358647898408732247466745458349914288837339547803371499254647423480675433477819126145221272222210800211978420146028194378580295261993757479145326706243011910780535668268042774541691998139062373106939727911636169611972207820872946132206535716463133282171750823789210669387444367145459909557807146775917124899747222417601286159703100401835365246666333096542266223558999880500159818565925603853440634188927390681401816337133342450337310810538830127547945174076635992116747472509091323499795389462528528933423929214474705287391775813837181966367634186201728458935813233237718388973200932657255727464037580245177462086389860935493943088560088581173331378092678783347151918803422901721080964745155454419667083535989102163530688853393091842718569857542820522350965271760879441857689272234821162304159877289878286366833892884188763710698188059752134662359805005561141803685965047773939311239384998998595040068859700501288685932797005025967127506996098651373726530573353684653741590935393715250983679092482730687599825654744359343415205577423235623052147467802467706986748691003682147440268370483870882678501210144586360995697784355737380106063903258929268924625492278724938572907649160304444809168081756737294356219583825548857946283844017944182680329410341921160429558936146638236207392587958680841184420396242947062680567843057290304846001058616640936552508941890325431608996525496739556430619407619857023576752611125697489674448281321025068588045470477020134592971444390868564594488653496145701930253965942213010715818366361901981219271675414594740237501014248749012007499444053687132288964473204466014275288382223252824721424481304252643256735649294909244847798947787450092713455135057481805399238189215083637539068191265813166063408585993290617989274851689023251805833678408069474631456932091507174313847686879091303996816968444562985400229828007490612780540734492890307477822618007964589806354801266267594360628607599199497950802466669132818699551299505517311392290388639099998699936245284706064239349794588482174509531687832348026936688875369346965739039914399811717914628573134515116515777494958677218057735049336895133795957772764863552722991726289502649541979707553890826025477521407581464068727532972979611842916438460172049042676352116677053150744252256192048956421097597385428734375059345883177268758332373808840316311961071051395467387583796214319412469332708012933089345671148849293213437984773323001374226735309882828795512733670622839312921082359893903927185784976823470603674457897811873680812957747843229143667859168151988458150507702315414607117846654509421294159779379389705604345764200190214657808871300207948211970264185040299689987607655921352802672875550180807014343822402378774468984002173046363610721299462023353576891810129480151051859692935259653154896416285201882811540706766121708721897757442210311760201196872575050163511419550905395911959168065108292107652250301842772496257157620840318675963691418943344707054599317194692949863381590828464298709327090337405197479744022288735633804005956909362269984313947044425823840801589896183980607570242583213884333511545814992096800498475851795302188241907719520828319808364675629328528208730186752112266887384516465625729308945305718073043104358064280802992818469269698610686637236651790110619742484195773143588537246072451592325107399880979347000531495578456284557127293262953948063720471957650117055822925813903829944796067808876902773911114180254359031765125880043993701439486673846300615699850481475238591388208912568961298338940951259156807751419040026816313000994850446267925830147551941277942205543482580432395995063329203273826515962779010087079909953667307376132178061097539592236949185130493254079768286922152019620644569701155072367528018940807432715111351673795243257576245084120320824276225425037583619307075500269486543712425569340354072319987238995056432849901690073806804010621594249626303702847595965390559147330921382470603958248148502992757536421297750480343035346995582531738363975973276253698680641307628484957120230624331041440078258232016171511619833698290628476388619116388900283124000409237014445311590635544729867437801165829664474130686397806067643697383684104582437923207476643492955633556320925966323584525412026241027253501592650553250228792026078907753208993871049740775842872532444062516367948378978493509833707858298787323896364311722045865732983192475811149230713469625628254974761395194815639858337019863365052872536530138750509730690649960089105563609552306957086768304149951040919313075365876282593578197084520683981938285402418372025388284581248986647906571312434859127098361227033704228147154976470035595215710683921305245038420823467879129261661560325237365915135011790011878275625929420919690515628498913554818455782157940429937877257808599393869045965384095493592749367562561682680294298615126351264546329719922256543412055126691653555366680803342857259102786383296414495755407025183086666925595689982965161296942493835110759151096839058434551822146782980255300450356196639145153801484600101064438794044640921637928058164708380947295353483420566610854011529097371818071581468320549825943435127628466790499567415420206506028811125323986092229562434478932101542997373109953147122764419858536875475311369122488511737521722853606103394282651070721642861685577178512758694588706731501099917446950081539953548696900627375102540249628356960300732492402418723859610581648977355542634403582326762808198273160767789567733461319654895490712788915579469227850379733001655848465560051030468943903695960396525915687553398242764623971979161550867957551868557921417477558532837740995368768866487172674926560224805407975959739258745058363965656611132523311449032867344003525281066493482460629722029733492877746639305215451119374044153117056856823349360406167651541454413250190776054752670045011109421082548543913883020775039711653625602990397454290395650158131170711036693853484106437864432094167546471700893210162731504888495484344260933906722053806441865195221102300089121847369606263563878357160048208874260253332136566633314997008388347221081338882828427479992177288115294900859080225169986285888479850365524479718634531159719509967568158508881603523749950629980687797398459933073669461975024397491504719245868203721836948640784743412101552441064489036149155763150224279781765949967518727478536011148965403310056790897634339093721520274878296657707693467143079858633595480593212821242869366069943971129563630022004152257485179917306080392366818803494329220215814313102402386198084532055105211512455444613895915189783845853328396927403564076565780829934843302146193278441942026217310987920701000937816588639532386540867368769503833400583402013411600783031736125078126720884360620167352350814073040884645516562135691186800010315576955576035650824742821232680819732380540570412618097281517853855615734480025677861837938740826938303411127284614722059438105615035237629820605895089982482623642792769610710983211553373906013056818957792818930228757141016450401087746402772336345527803537797431002742897139579075054990101044798458301784186878867235026648726680697108861213641383095842694795774102615140441694677581462247155815628968542145205567706843033058364781292871019128581271416254892304694377735513424558867839862258853774268837119614678564376448679214408043272756316622867321927244790732401047717961568486567863114774103879203749278844800346769671590398503721679171919185958143280019615392673509574499888413716012359623494328330801330225014527960533811123806531458012693852972597066398905307703078315599293546461499190573266800501411869231901276198062412223198458556536173873326806177019129221153955640606319921973149049707351298649487234844603832463725059413286500809810174892626283598676491799355763942204596428528389665035193619833915430350429936307079779387505520904726684601171137657425303230603921514772808176972468273952179547942513874225587460845063428507682757178807146545294378085929874943639358727897634966155633141172246221832238227575203397130839231161659682958272723399982794005739951008503768114694752021947116025600099531202215930460909422659943643756039668864931972034033638844339799983286636200285124390598893999846219510948499414340568709404233198904711622146832881014680222064467017422499536699994245541884873400655560642342975630615176211024223977750940831625615501564394602397594312633010481791970732041426601860298442997089699288091960377529466510462175334992663468076338102332783192600123557803373237294587291333976125419543402288299310909440088163938398162093720378149346252631727511518312106748012944603739425832128419008452875474404335653685277129551492010297959026469948199125337539754571930204368890855024618816272149636278985689272862178212047796076753718112752006792167258791345803991485456922111749851730136215747921994294477711932026151544336086538347989553013616959417133915601683116959156065973746545040733980658001424871438890972363973312272590123470376035070284872494958042457136735041192938302487207348814729825859145821117249774094487056085615674538972337051598990567163803253146403381551678529725584139363403492215811781841713276153202205978024561204586206642401323192215071017782383688811126082324173800438728541206990825876890061146013903998620944117369832519220576946578986860226564667739131652714215197468844703892484724430814552933990510167774933390472928065127209179317991767694434041570888749958987931458981401562264127055315284368594567532563337589238205474545416817663396045238841440895960945369924586235002330117037801890216196272389157158174182529029365677944071566019190605195573938463616933217122999109352399802017349810446539227816921581841713658930189506425860499316178868439400025089278900394876551554700825622230478890108437347648399295894370441922332343771321700254057335431441173599308246628298831111708647024991703573838092844323558097074907741192178862291142602005095320608371292431062758671027493784949272287211436815839900110751897282907946310708237829755325659807910521420514941888922657644462556530196405003738659923055581559460670364629213301300214224913469322305106902969755226050138267866361386512568301456722727034508123790815440674318398557391084500424950294915848185314195489070144623642854263007103212040429830365333893096572873768400926050493187718434348757384753875408728276070567880302962841438998680893660970908989995136930383653532500040182016091658823402461509137861238871702201703601564212176860169028115375764839198793478005910040183989716604864489639939966263846341694709066881902728348224858278817483153399779429324619112573663623157731933564803355230779899763550311383543259855853760042398954651453748188904986291984145395796909317691200701281459626715587960777044704961597184826632267199634357794895811841455806342660286718892038229164889066349651596107039221871935166488593741898857783427926388620116574885041307964719456462068697774705238353794774476899291769562116363278302612136375009503681585460043724518702689533232995436814154778744559805517479175116066203443117979528421019891658697528915089129550871584787905255719543327408675915729782299435238334473118489816065098374913768735323776671195127015047061607157644734813350289294789895983577877069658250119438338711036197210839347418503788580300261089064308074629404557055189929162326280845199933483203295487564107747356423502963968852282039543778232461206521135306233441342915885330696393715315604001972979186642833396898736037648582781469394275097059197635351005991318825825543863838219834823582742928100675088464450228025988789688290796680189151622525163050180183707207923964403707811141326283774465495509576777279503478980218544901633439808808223218058817342081886178560738754079763707569498591298047864146182988821535185795177856422110750316869529071099734551117547748393995045699777347075091878282001692828541145247806568284887012009909525761132165149183857465580744308243172245758810452047119677202964729948037472789640835398910003976772917583872868509909222695060661069754599609815626169440994759005755653709839973804272297476860805103117758886597378107569406332455279813563988374555155709016415355228783890468534141000383763704882593196509355042017187048752433882835724689031230228183448755498490535105401154633108046770738765049970797439779195058947520284338696074643017699455140641097068658329787246242062732353878457722892610222241753573785707172572545915896405191959842812457960202533117097395278712541288855847413155358944584930550472005910245860528172629543536130139378722740275078282822005768386610658170860875322612236870742910538391757516041609027381234644411163147727235557521356871996026980661180764833842942598069851150722824949449525591849703437991820598076880428405295820921217114447810763807139160002062849128012213745744789868694806721076127409882122781748547214383431305994451063327772784787141153536882074826606515603133700296992589871552453502556704974394305151099161115765032261167019614750299709486290699450777892127961752931381048705523157701661309769746936598595646803964117946732023264390077503034805482547139758326518406976234896858517088781612133283236060457719255622605658355197882670145707353375845452430968693395226928114268825160985427231729433987429843256537548395464538817961543174200199329022653822852490971238510966956343887153344224305981329058769158851981879153538021218049430346431686693479740759622147230918625281450033039052374573056692526765880860206553123689105497587748312175158175677891710831021405199418733260824656695522128465265508450624559990685435508133453532933010258198833538711831383252267553575634152010192613877883135753791730141614942873988878843407939787059016076352365721497455997220957465864087714053063687323694111221603467650366460745171642867637294957561225366781686955660094619186569965569412934732084039632174137216948913163735058139655650167218162883898677083808678356292945875851213458295993880291029813037153300530401025709894977130676863822966530927934524682610536426805771414579661370180492957483194170178865965366236450154494341468970681885373641733368680475784943309211771562225618889589862017736758182258576827075335285786290515862359909582310024675055844315848566698214104758746937456408681217495423713098033123285835798339752992551575256024677619525926527172831512608325467474118842700825226931048747110776148212431613069732624719697159652738870271185232849016203081533502710504044308805370956605242522971277114304331677607179641489965916401240729107118232452601211714899214692672282664448715516335763892865363585707024325875904193549180712179287032825277601911079829397772181291254964273983944583988035739197819675278417985264427432513754311851811327101022333031389566023116862036708823448395814185276643633584838254975932918484169382474284454660808051352035010733854638992699934012894609804335827634432932151245904043749690965233098217062176283654607854340417475005353914669436524019471654237946275364613577421354244718883531451832053172516641308300046940180603911387076789997203368043052928961751917715316851648774695877786714794951896593687242547103552768830343882692941106861162916017483301224768829191675379612408635384575907918440335876792057718648664923641674338800585598442750119529244345208943743724513932852310038042373321039809013608219465016418431903583489156080496741110444610274077958110941783800863546238191408008765046997047432258227991396854324207801522849758778089394276975698313702464631433705727227117670474832392118130352552726870463068175157167567665889936983717427519912617548720146709527128338516659730212594849027581136194229474765671975655543208950580647536547320318343203584483828060632541712960274856452795340741445306623515273339745451197497161218927774046766310028039121768601128623921567536662919344897026446541624640834798996786848956499042280942688145761457258675159917370409390999937922159674467034984859363203527451491712070024963473414554178539488756406870342318051181446512603068045116310215220085281172813112481055393321682894078128850516067790634804533643637198305554782233593093208479640944970396373597015963362703960669007063338772002390253075660586360413432207334990526631719750798138185074982443947670820439559619748209704538005147490383445246537597758557150176518257218815393038851020940242337206692430551437577177543488298801772459460975379484161868146894539935685731304966071209626617103134834298707651178996735663681890898196515352837977244331746504378479160017858251799184410258692575636450100933996522051820573654021880531404998180860481371428967695979465847384824326957326057144780015572915686488421435711498419188780763426467143570762311963479139424657633224051374112500011792292987866675991888454093458548484258656881939057981596080559211888609634246717478707151586727367913196698630937040292433272788668478565335938638020504886633275192354948310848560037323427108861156232345739567715675608216622979883322058768011013447717822066248659681901690108026446943935752353795237970653801629225554537905082518738064742056159761582625378035078965121955453840655596760427528951163306588917641009441834271620877874737500838195570633185285461043950621136893924479579932908465905560104003993113533033990324160087454845756310390164163062553459323394948458813860783148536285510619642416693199369513274523773491298749853917601426019712737531926788964147290418032931518573375783275851703678377719875652073163271157086116638869226234308414122409113780334031489201571054367757001255890850328615236147126060246886273517089378836019583305468214975565426945715079829330619066817425618735795444770781778592764162120256860345723894195925717542084566332467275965874543137373372923306392239199281980132388573563444454439803475619862494993275019145632108988899633785144075434905682364549751052829068481591895259531336620207640230382180973700374623785319259074403497169911059144353136239728412362190737808129558684167454995251230171744482939839050062830278583146417669762717473415286102391087568906876967044547214896196156980877466990725447341172955910820967999794700704474222386988005049750615275483213920771560439564460156936650740840648321554183912644198519613179551838061641291306944941709869738011561938690907573578328771273227717404991612586699422081204698197259757070437723045502684236934090300102633689405140885958981706446220408484975263957518056470782349848144736062750880993456593322043442522299585610938488187240620921262673669113635423544602237944760498151032300075443890549860694727961494543222209711237888349570923908080693024521168593751957530729802844368331907843752481918753614896794597501750824099571442184025343592774300989633432611152485464855604625917786087445741778941019129103392101073731793530034111341843154752142367835583786454893505269221488198421558454067849049227415394623764419950997964763256556734576944712471440028929249167427329316335976757646874647696447316398196871308132769418692832851176727317349521249180717605747464030067791329376193455486079573206832650968471956774473721945744827071642919968833349150844752021209226305775797256137421677060061228730209161195716553979836774947868636048025609721635981249643533067382916781595820361692636250221496111928742523359306799565075871435428475288248062532024506138239330692436411349852663348998198013429204448334735326178267750504794634042748128547924220588429745784806643000826528448139753010964171003423814729890262824549937021391026982006566165354932277945505977742765807920788309227785291556354228617704256803753789138349752082751008532148604698087602101994715835882963421027912976588650758667863425446992299118306081901897043574631151905360531959419668529526177687232343314355064155174574374664821946780431522228945131869468090122165415378785225695900761427720384965074972515152921313464037029424425625205826944798277063742738873153239133600806706609463226384970350804667536910035212117607558789723305281568403619244953046574666241811953252186131432769429626299507800927310918015164044079736030910025898757679843172264577749987111224687513512647606718048045801832902499662017049266138356455413783910937672866214347553012525879200576420305031093836552975649845430735303245945246982766995932414271780970197589953986555636764006631452047152644278947600384957270133390334153944108533147523502600955901104896822291588986665286334211529719685433033946637410151713061995589374885347176126393043379100074382555098497965244050998667407449117753115881766629653808781513184257671011319657792325030581833070024533010742929928830125127281799331985265212409271961826647707113231958258008827697045617595616312961366517612648089508797309743119713522095487266676963993626796435908684872890043787907040841507917946808094015415626894895230076306121982122582389831954000455319415783396113557797500041699759704906555419531308432053944440934410855898323603578254594722365118572993225342483336073714024755400330628618219499964412024831936919707824453606273898259978502838732207452302276331555672756205463828138781636306963852087183632858910639736414995767774609731145654095534536397700496700104166828569723845160161150870889997591753738628533774234707670790202530688993031758881924257505222648666731442118893507401503948268722146462744686958446325086497136409054007056544228354352987200147907944244460950902552154829519090315603170472220531551201910258232607425900780930211216590510714250550887426212100114794864538316488076729491793594741316994749431457145089603778845080306515563251571441666951247554442717017568578575549776106013399472521805067218079335790099346227100952601077473710526413157574574299464105973091685740586147610042609415142349329472533525327291992885794578686908232328723006592320154369470498513998648132055915324528492481885093427065194694299181201108338801039723173148159461995810495339833981551647500917566065164125317337957287413508396947546183943478932000567461989932085127112930987308097806253912458782465195872329071748318140207619914478169804891604790569379869586022348946290881590861939296930983219435471335931291866089054547562877443998070301079196940476031797866206464249648315650069781835738300413493997514448444428322324310599652556329916781878954488481010726817869700675085051977489091801431133962287987596552975951477194093956925033370405806047411697410287809582331808560581583003407327141020042057672553209598697385069700577299856387180199478743104044548064430224376846088023364237265089859705634193710700904512739770460089228112916787374278552392764268288495038635902134771459067123652296826810165054679414313626659641103929255813393955595063463218134064369612194837746877561560632617769186358643407174616420987150538712210871110957518766183029283984351782795906315139541257163816035401373446233690419087207862073150574959775963024595337658147094726611096105339021340941584848212112988420740380721012115911911679237514530556951096965641181255046223925235323248505280841228799357941387231402450165097521391993978843982365231661534647009118396497357970848856646339730092763436376224371919805285482941584751181951866587654529869202504069912915124375683377845335354638353184236158637933199681454946269531387673733213785486675972236974481236765107631762951736230240383550670507191348619104276115046580114286839705402301755402487328760932352014914904379625225924586190936444467199762275338734557405171283271292829823174284508892649984170581058108399239289401535583418384972909454549161179124109404788002348113227896856400290427792151741347928513846985871500217568532979295976316057174877794390354334654885474871662147674337830339686748939189650076196534949100316021751389826092019945137090994477027266432057105892939625686293572817565157683637784077197321049070509711120003373338876530302021044724156244832419063603345903119093141829267981149311792650863318237390487555796945932357823945024954535111470995545234305178259658444212022484044154255657145589946803990150381686458210790078564238091549934458339418992011250571678777146761089075163902863374486372305413486737241696634849076550631024633981222103869209678567872737984411377256680727693386494459326178074617631203144392998693444865697916693952000048602697812999348567434173263364067329920789707292848005761070329605884211762654181694070018616345532270973597256692683148331133628530733184974297397735916151354608051842148629395692452070038490250528237825505351593309706169192698630503925319296715593907194229500380275838966852774995386883068291620266879189426070416565154449493047256553126009795462476375135069549129372149975959131768360288202279383920479228630972474873388135232895578721515881861633824135094333569073937041290656543126163370038521135557044058420194604334320671338173491714981763568527646668355241277479743839471518545731282492085945459594235874213713168541351733136392135587873883340337379225419901731543469471200430719078346782406682419080011235576403882953408880374088993368297131509396033449029525583032304121988876286605671746642115816324587092856888236533242291054787697714306175247155506409885688533193272566296872262456362143462936136320206874905264590824447468829653322069634621358332875518159962817530562430935448910216112076106979912365147101471760923266255106704725963412717609912559725156975375938727511810263825134517681022849420323659269569030224991637728558052144582971586943028484042455523566467889235260461196082529000784175207368932811700538744257457678482697168607774676218431982718682773889797386565447536058276213369499475488278377149204957652080202393629768587797460906597592901626696953244766524352608761555358073716635299202198381238481100451090867207387638316191319985046353478329748487360197010821342621480086727955633861504822754002104640140460801663536828756262797405713177411259035119413538655433842373376332166724995775456719808542117989553966912197948062001465224579044979234306857768147904931836204333065184740929631565082056288561125656409102228786745724530315501256421508040862215923334498796377226554794234405755699113389684926679799965442253460649243616246695055714769726011947561283116666692645112357644336428684316384316994721858519434245690981191652405763398528552041316758408715591175592691312603216978776372889372023785344801298443972133022397504040538423126642572956825279315022705494704753402150405000754184818132651455381640586688056273959899730558089982066966119626638103642201004156998746187370524526199875849758426039711883267110681429949097400096947754554947661339895806536295909487553179307605079973430274318160036941520789374890658589377731200160782325428963951298965559771563916199536840723007248558392125689462438572803162610710058014959903012699851229221830110516940607989676197818490888676777434862127902830318883482485899607946854969545179204989941975133583244676560985228752071432199323450444641197825366303981147573489561521886426675513045239535800100961792570149854320646300377922398355524044964761895939315525671972525547304267485229103540323090110233694978394409640456396245461474849379584675481144088703784064608270382457287960559739469050428684136455874589746778146525453991428800408057101203377020585773700463769424097310673371542436054918107439623798734875631034794721764983489554312189709089472551061715334487135831093076014955672148734645854928342692033400798235446113183838562242592327270130603106423932900901082383178734532330598702485985916031944925418142645433892388086502575058163755735187071336454678507684667180374944579639740938998734301542432054500205436734824078112629416542443206293214776795630936757503501525286805799531983394841430255083089322968704683806933632395504579331293779966585905522441022216376752002508512783162606526983049913774872298803933733799438565013252730768969727047311545980437034647802223918449805857718762021551860200184547081102068210978898224969192228684356556060647259575093488253741383197918322860288227222197647257477415001562825537636964168804577430203384835602708095810598750168815643264196623519471785734983589832621098627636624628556884259560292968606368402364585400434541815909927298818979574298622602822539604521782929915026703355986828062097273856115155075277214771878033530986121365900425421099814126465633581127564693350435987848331427557989120765980314535370262117706652099225655588798858876809597363028406769263608080069605846612487800395895705003399012747633576276929849525441495652688019720226285621076606466528104168002176140448906298917270428531039106892119817404823581842376438083557309182450211599810218960422289486495972363966727849945110055404402620313630423719065598547502685337189991779891665555320354800112345727260263255530126191405222451271187951995215066760162496203928476103036295615746885914810284405153571513102631212066543552088867581692854460004637488593580045691428343607707868625898212844391810002236252933752669025796761687327862334553260485221062036395103474286328399942995830909930731031231823026842532527424839638111239274122994870798438563219640908735999805837461970495424159207723303611623330910623010736148209755935290903091579760636453533251180726012442916913020194885311131317600341123896272724743571653822016387582075573132480179541109507568591921413667132922816961693630689277560869902131773255849916549766268099978141852601108850616556059817562113468098513173314698162431953624258943206357992614500088816137003255855775427728012122719960959746348057313488162789480240683654762307017972142600539759083315859163468581166400898214954628458143841626559546533753850212584801595361280724832574817630077383745069973130104206860897023152329297102863023304666972552335722714846271263337806945337622569885513993695697448936650932936937415668590121645939299142363702384825397113767260866045809900515362009468289161209039933906132273576208249347292131829472911541196648721160943970552178016605909738873919993366258168096986950855821639331756043295456889723570740404180560873646421518642963172107379441014291309456965994428655387760145046049459875767865155393243844492583967915326884464763715340847513045007843952789650800113470003446077674054476516287795508114016945497586087216072008845133068310561096616032387726232988137957818625193228846556889816636934336436101651434956367085461929258192322369386925544916205415121050190107674636376925774656793398498375562010007155581875088925060183790131973595532044918935571315551929817329636151977149755572049631443478877154789453797884493570962552923356434033346725933321715642349860674998448661285736764834405638242293298034659978596608770076731044085180182341381968333497876506817676999046774724193011280841306595634421020415919600047002853745105768284939277049196881294484067426066061327154021693079098184852004137153471087043897037067657366960271596589902774140573121056928739076390756686403402907421853425240717461975624823293329448489854509256118644750936298650440012890231866777036737888128879900474450672230619433581677023595541788679618265997542631551752155311546254300304579406317890052161139439362637612230766841344029699192302696106787099551913100923149532028801250168446026705498741717002689672045827681157265167144089762783135929760543717454449000734619477236057489177479589116252030820623363750855891957192365582955223437630767433686202973840608253775861701394148895242347193288441254531660437496728312953955018987870608989747905455225209800036507589123247392178433871691914388178250308713686550664379826496640898127186787034915600499890550902172932141718761818248972635300118241769341751418561489678362121164085617629331672306287045163243328681497903957027592321059940698780382430763621751662560028601777545165885270364523914505202756294441963969359440970398414076209395927710101254381516792657460229260212444856715937457118773245629131503907741845747127871261356428033642297618475272049878069875774204899420953766165652426907076757743756144235905456884554215897250306916340931880449877321619473344961204721413188786404921905991432188506286408286397804278172293593179169515805541514245611483295723260136254386841640135318850736768417294717563112101099646482875763820715311463998888644510675104928814121543301824282296495727813570211221948118811489720725390833320815426983643999800725384343529345549619572981391004925875817619785703362927510597328443837242622063389473509705100427035762012918239674381070669997150883904932973638083556154461061159121358849895300911306520811458951596714495532027101668039672522978290625613145041242723667928214151590004897304327561461593849091173437510395468019018614399222628345965093083592044259208214992619738165908884076496490528959695505238844227033679052874703763464118117834544820782554837428469077482361150309033213787977963605506605439610651039589027513782697546029163214043768500444321831100019118674861301315722353106076945224272095925540080334802115980077572824702655464570346678921078536842235185846046455333780165967159377495130144954700137716746897320442372994769597025171707369588854119694702000490684245123836520944407127976442178988638184900120282745461111354938881813438352738615085977234431470336815503709153612880300834770950208445866134004317275724304039059878460202980237078772557022105129902740673329617305050478971254157906651112728165619416662944755009644075507078858922278853829746653039687710352204775182198172199361224352755007787392313147618560998798643357468423191214159313988052915947000109250188676273538004940609129237410810011382419711279239402320842197370887123641811446621213856995904505377865225304216127435087625708941780414588937810442822840107375347896511328257697425536791872554017433018071620990790449238603722230451807895550433727312960063295999130013064134037799597210581762211542702648189514630743060364149573224492708577044311587716999061127372119509478266001025999966059994134580141111164166774732257222041348069580919367026280678110314727872861248107593255097518774552004037704873319255941843175070770503755180941430984189058816092283135921369726481593400039029489218653248781253036232898227631715994402819480810770479505353936945544264928081588346110771270241337638921402915380070194187128585927576408854328574686710765059542386002781132157237009965143108885775512153733362910615990780855063718961730695908709089717002748872819818836176256460161781716763317871608264949109546808988507502423171038849983307555569916945182460934683819126868068417661256585420446261580782123319467617593088170646223057524642907405254040937247421608952041369909207310478630810451781703591527326314073873143969324150364033661850051688116916498575670070892581857280550722226479342026206411459955755938090297135851255276299595936431578336442766692052579399380434504512933856496737011471859541830935476995840018864439791353126096424823683251014210664490462546591025911498353585792081203202265072140912844946961874100134978841391543858492293724122564455453674922995448305077497993785193533174794626417775011881597167035093490958571225864104768668060030587306907506025972772827067467291409052697412636718308069419786365522340720421952091571125680129520192246094668822390305482724664401471989901541410159028256182785333415569745133639746015817295656066501417597428341728405641749177838174081724384789906682560952812309163037407678893720453765766664161418764335584792742001445576655267192207213240799166927819527729402436012940512048402283375687015201455445693608217502475489619580881326630479532762432877549722408632674584684842003241407864936869130330821465037945426400964863362090592316972901521100599220372399775259825494100887504813298587627115338452600210115155798319827520105350919597739438599545179896830633443984650681265944252162074652040960902741545939263793346709107915798280671053325562776000324094792850474389347178331017364423259377717854044899461280358173085233054497545811533492743171330325437379753593078288659009853109151133391018185329319909693110431144956775286203329965659625037442626574922571255863269624872069354092243403693900846688377682161254384389010602229746123842006652483784992709843295120786146359273877194287625076762576854765469191841108836950180454360488079948525178586472064279587904750741888472210046562636328665596192458050071448177562597280052469175702613114485481028795544603793389250698523864043285366126944165754438078861659265898871738381426014678189365590444543714918688036716489694323231705039459680263505355678979897319097755345323147212541879167395172964058922813351699179570862774234398384863899192568313552055879499005484684947129771605914054112638144989404994272197002463802959338133795107854920336764606072174991468619691041554262716756644747499508573001879056474471989031370575343784766915704059047388141540118210066154803718425018315967796269568481092611872758089106534895160535231554400459895612226566753215168423584117329704131704411264357476924385854420325712851928626458273042298824697090833159418758939382418949612431647355097348746768877881825628300325945902132625899908010579455222217545251682069757042606577759045467121549473759626542129639389083026377553243300138457535202670735774506054276788011758021698619679876111779551073223871341344126434831917693116776680943829008158445067167961229461703028626724089485173231526721749956056513903187585779506714056243055933191777518099804461295504685809268754065578535652183824445670394089326821083200357133405480821690601815726876806575222896782844927895091187489503816964947664086271677120592702401148183679961202240424184414627074725290863469267807937509987396233487368870215248903359665842234387889192466650226279988331675204411022783560544278812278103808827298304976041033904688133263763758333399700566555105122838516592991762397273792536227118959894980053255653303886976162831258121291853011085285903497211499634041113783384028286827343259837093884287269044340452341224712724834496382034847124801637189703219691328573763089774687278638734470325943905888768457878419595027003466573270518708713355062933668139632758051873895326318380822225505039567276578528568637806715513112577412813194543913015996889333858846009475063002930894019916491194292016063475911481978934479021318359936289003905476163066025933877619709892970624353350054199289784409240422881128928827671782735893402193463603240867457535030803818016242143057230152360180135143096183630580086568602981022264837189677085847889390817843988239705468097905760914970112378009489121128532757469050176129455665457761429914298630092868154329963794036742224857383107792563904049799820504794282958533952762993695328304817165895184669711548125898026271805172998052842126344138250405376090923382720784847177590635293155320516871686028245191649021172304374830212543776386041169175660727994952846412759244638395656041018651079896189367569411417794048251011257159026200609014930396576942704925112223770250788437451722471374608191135465227384441740527675393466159938048390477039291166170223961008803515419212558016762801092681857670989099206429945443665177408591661361333651382465269774570669527939502681203350280692303580362691075832007656724184837092573681050577152483209358846873252915105963179486537587419721039256488746146871899964165197039329274418211583381998923978820233214331009363356797377074177788689349873360611584595537429198411832173167846920707033568306054114903766507792759414317996361719046140001571931604535618977589350216136955046632043544434687749896759652554898788502773032697396294930922302033213005238239851909976795330331227611232108128504554579168820779371098211738060257723658826317439902984732461739701441633556311966287299561170138977609659345610259128876434783440641270212460811602156993528293138388480320901664360982134673240524110091349100952883165451830980195652599655438149801783509915178732479655851927755960356011069393845653537514220372839573639064684809821193110938246436188186500814752524904599471817697001672192635173215983418027413294067684485024548967960612221772455936699056114019173722678809802052202920622937621346616847680323547061683376384542341831350040749312326989258507462872479742221892349344683488146868668617648224547437256313844765472856120463216091941966697430072078713738311013923144499138875269507377599472316809788024305786607028151290850074452982501589300747710573566947321752849246565041957630974263128879859736138340034051429072608579826939624677096438788682717136782363304808388250301729777259577392993234255648104073559447203118778481701498953809808594877738474739209160993157419730989484003743567098695729706462836557196566193431639670503722118222593264934614393791963581997913483528187335933967180129019063276911057314569382290085931550034183028690061412315527100218955182203476421459034581683224889642094414982240134523631583674358923717585754252270559897684886944751258161741500605634810674323110047228399782369103827223869551735867810555723580738338539308447695194034487029299844630409980103499747898262114075578327759478945497951315811100422669350470595996056358082532406213326531860223728204409769046967592830951913159392890188231951060573192385272820733482022740584729319377408374694737629012174915163209446911579345364218005698357939267929385754825457390962882928524213186541307659178342531531405112017130822051288023476049233392444883066815997526620970647441874758479096944872463193569836160253525960133740611057732534340928794415191866391028108396647221184716536162336212848981323456055372353427505276072762951482087573426825062827306201503619544254415889895766019203664369344614238012542718900760239692914352669868871856217904601126635329485865292836503312563509944971754834742407413738204034984033377454406330054889064926853356089765996583170396988809974979879868401551637229550522151072024032108916055072636371029036780043210115866365470271421024390643378164495133129577564514868392512301751098894830298022858762858759985549410959480038765198629863470682812192427441766822780354401266200236158233108440612743684902582832143385585073098824742295836242406191573684840617103333922768322596431352607624278643142441830170077576931320160441861416899160979230124338796606003004328182337036721714975428258509164830516727812411511802068369815782137837743658947452520525453451129070816011305767900749541095870055209686875091698135409459702363590976490160686236337360721449133103246407960371239270053436654202330872797733794490764777428855830879185363522062109363929195840753636607491873201972798030147757513552513231453789675272647210946162953951818877564657176047145819741234986571888028137334181530167764665841069131285487779772452794099271560594940170571370313359388524357718941274430614712897354234957356406490740109507814483382439217071174696060689936268772728508529956569216442529841487838563438406404441835314404125206257269100609787474309161894596050235107518037931810929892455249990227093474132348278969318836164686560565106764192566737568445256884922936496892908797517982042199994213940539868793661996518642155554643757432456946133130586248476144973379746476997122551907345549314839591203314454577863464339172403187253746461722353744257004365058855011365248121081957495326371341100776652386497894439933219020333242913602190762983386411554924260520023019178409649494395093375632104410831700330296094818368658503203343827561554167674251234840325418377651363902429772975281773313942671014715852995548638138783510849472035517888471498598071768570938347893998140937758873045315978779576844511782715493663452407262956610000147739882978923641116522663900898223749011343376056515647454078039343560025667954024027776848860583220034251130911448556396707330766725578443897723373238369435284432783008509469413313806141279968000140895849573049640831314555304356972824118390529084168204988754945446161666987687531538282314709134453413289640692728691299930049756951454365621764402835148184271424038730300785621135512508524763937433926219481417672805647206555748862868091239977095694806094987103389255113930886445554834749418065374909444773337525564272637828683572931686146374161994721465917850084211330945756688463182097548542062142378920465876965219700418244957774473385642930730699958185981781756012937512136325737308058174493039226475268750132548129168616496803127316178739779034408272505609606386996497514481860962146661058438620387902077662967064987793150271695185049619501427878714988907110805175683324231434827407663838581465974523416930138176594285008328848334683297856510954232857282308730510031825386696560124455536510589210482596216589814005164768397790290406098443125085605127337147097950648696267542813864824096261649406949383154856950289117284396978901015860327222082691733753063831172972270341127680345220355199504982246382861403888149891909935652896283923724449893347986875378828689072141494520531285674044947535689955574296966854051620079239985457281675908499631457316502939196190795286301281162875509531857294623902243609854900475453164008223837699116891705123399217154209753655563240003920741994566539514500197704830413695383124075364721556143690943044240627187120833679844061395978293717608324549472193619390675758379673274198562205326049784000688479523491751894724875400583879265941525431629122481975779792487359999254146258063602185306474341488228002260762079461973963081839537409439090784844273222604900840214577147895351385368550821374378766769799755438436420979733146920316975748657973917019887092340560153757832105983296255496149817939433210206618746921948445461375218706083181389381372554612493936726477580756079216699135037900216958256798940971942977802818668262284610981828950597439921759381793489788858919958852767579188429860467241584169604451493912163560258680660727233120522817537152337818236260368284740269248459811626476240337257640882867418764901502849099396447933490892417698089595715055796733785202415911608243811406260381170356531850650185533855042701368012414835402124719787739527809187260490094833215303108351294315371558981379278705427313636702743903940998155072643424257056162332067955641160081910317731718927106040981638518898367770695243373806134069298999242351982095273779060689101604086078241415409915423530654048617454512268790338242588926506676861062544501418091251992377547929596702876943374184843273545016688644526054484686331866696215393246400516707008941470136701764375778101838292926040968701716373089885820677942026063673704274861649706110305395353586259502160035957063730393649231584506151218993800587773524585785253818682258460468012604733613626354606295973056231045260294022857747232221000524787325042256766368485674174498144171328734054806294760682970712382724692016748100028487646730293705797629438521386116529247262944834419291873566187959671205627918910488191085511228221222495634443376071608340154912706322905329013774768425878457679942310856998695419755260166742257968242077763693966562689886563045289537249921482272048074700967135472381201751018983411949450501069984997745892893943236221376098472529858015058784304691333309384852670059250617602406730949394862436525189546935605631471570846497948736966959414281647575537918081719252375040419189386682685390394647816849245475029763164005376291039510921344377421499441164730337008209534760355196673900024992646251552807721746830102855916394434102540850002773810291583245993060053519976583590424619663509527148230573057633159772603563138702270153028510086290389160807036211846451930272700464640419807008097899831485586474784297033781531295797539074424066924227649127401967819386602899547503674873458081652537403181521286442171773365394995625801129215775925477034502136530429342973237127307437850802669164929794967016256069636201140949952696023707819118640832188930923721209157511690544493540309453084440542735513356603574939679206065412344529663424297353470038553744402253993222927636920731147414888296048459078877520368828561020681659118028204255283355576345760895228554587092237505785593716979322316087303340502407605134582804877827128744665136541051004586545969330069234114364734998756856882521889860551546739983583381630020246857812283467244383955000051263344402906455002928047411504183196654459081259790806385792231552094767563434782810654399290217722042643744940866953706649147216653195106422235246239837278060082986350301310177200946028496168163811784467645587423827500296466933158461072077776724747345224711068072882196917434764219723117844449050204768227434506928369511473157080559037235294341811548219619252289233504459414691222605927821213861507041284579255916565224795242412747936330613235174484476213574759943067339950884605288059906118245343939287765616276403828177943443692990847723489388480445878244789759456396565830430610198685339542801381369411306348764867647538621115199451793171420289781980767329614242260919041895087381138490959853613607509949659731064593018200503410822884033694575437800923610083344925227571515423654675552961350327493687863383063636619976017374895838774998523752115290519674832728231137735767594720399770655558513166049386356000512789322480069069136985533950248585062469352155769351413989902179138373859666761272081493407883890266807292897507678412596910230837511560774078852659642597210860966611259330359961356835599454009701097155876108554958805909574245378573642997652707479216925758279819938364924300582353804872829277519421747351869552849509465727992551375932473605989496936260763575036298597060929862767538643420409282225738100046609495276552036729809104295227941880079615771289047306761497180596996638354330067637374463962122407877110401350067790909774947769037261184657422022443165415573024855072371770375879377570504994477739537678134754407219842020293087540010483306448591587823388265570715265374647141282710890706187187370057014685836883447551387014507916678114344472180081074720552030065908458709150264298480589690228625956696406541191463540726342299491124809892096576305484062220244257017981926632412029238145731450952559100765463137403741984648612443276387718642288444922193147742240398282483520031641573905421058547728261112866560283516910094488514004857801072193656652276640874247107224596572477421368702961255142056202455243219028296449537467376611287780440958975255378066053202772608016336577980342709304054815948173130685183352832278462071425273698996183470417366382812478664135613277455697862323233489275098604830178413653876259618512236602035813364499605336299403722361013085190385192888567780784598696319824823807682810215061938760989762717519345874587133195649450491824977293290811979933134947307347038966753099820043662192511038284969477702151196893174893197047535124851173175897381252460326073470698336319433372100977082226653580094609820952311539107201270709123158721952211613662977168284964336919477154985770951488933161195263245711679045709113019722482555225788453618903515643815940679169499784182849098692623188619321687686502719881134397683925268825659240574615593538683257287036412306146598140867827267944396152729428159338130068273704813555552226796496600712518476056269031210964225406795164345228845972782069745144371569680755709345164319269784548132162792891645212333745430098775712259723444962811189051016191645595522679219152529294146162533596423408534157709019556488549152518205088418285970991570319549349649383982069902296326436327755302601690914339178465641543804761907609046985481638676221228307913465411970821878514098008848997112832645996649294817197465563766639277612230415700237594299864666004793868160282085602289238058646869719219688306693299390470192119745978152001934129261955988714071462676211495256147520910719669792793800817247768716430822791347832287561231296439995908563468196712010704201368169821636161346949717857196022893190754313693599834223201545935817218315855236993831775877421166957179849853405338305995508584584652635452766212530906508027881812450780515409540980173577094491995707248537441992878579219679437869578583906101805799935877364650086763835447939170134144256260707322464224222881447903901614283490869172904511241153484020933599480843716343149471606096853932362786931687714953050702208924858416584051553994187604553977331017987052293913655787526059856312865969478767084214358543304778996660443363308279191953808612974390591668547156324933753598731692732569980971740489943857244495015048783249904464959302886813221301943153695684129892995661214021581037123117745388227147629921749072021395780664740614709090336291584724154141333849868224952712236186197606455676790491246595975031293394959528893824357209881968719219374575506647300075408906697890702019728330951742706776061840041678301176627064867951635536682903591768384046389931633948164693571643750046798653053998657422870847081937881111296431087741177416177171070703294419513304287951690781113838529443695272883571729695969295321336483056388899890569759452362501801055726900734784996493266052011073063399936646165585695621280681405856060400495499864605564615140506387411535388001108056102448840045605068025559921575553662701218385900966394144893721441626917612023614720907102270829648732246479175039044686493287792445779617616720265766323814563888619970420120609409163265642253463719602389697792029056070903666832966029748996723420046988435469657656466834306119873116967100902356326407668945454459454432693545297953224187304953730061989729826070295854761281693733420339736319323210682395216162391508226385941268419967518023264503874997957205636600955745285947580202283650544942467050242587138629543846714867393978695971605238604763495298510470146106438099491386422052096707313392489714424942982012860748090891732943336385592617059703105922283738427547590183239527967253337946781357194762950064607121341225283858718451184870857384652276075989244143971050590239537379810019361983575013941886181673869519137442361215434841937814929885670320864236220598794106238775166557452933007227724989304357715420753835924088044643039867768685474351048545151034555385601646122816211171507384616309476207351694619927915885157892434629735785671299466833299177477514890883565873322026573635066889290074601970765121014269837615597011761764740999446165725998068256501745131647081811643763298959824373555732202609868370816883572978615113314617394852638550682486205712200891219738467636996136610396759474385281194348523110467575377408075868188013276005638186371363432201013629644250657167541757034612238773307908004810158473990949552817748572203088596758270247848188066489498444994446097458107473254883051849442122403882606476143811435058842792582144705009618129250058376435384970339299644994295669340284678371537793611141632925849035934845157176501096791924901319230423277723696617724446387066476345302656691863229706397416637991295321083385157887042067407118324536601735890244228179409309859268811173729517765946422605833746286073224449169023961204618458196238782701837661921883220070922137488942688348438213648994548034792885885248564475525282724976622649631693768792385678660724630886587197938204708795159064519695952116819516027926101787868194170164665577731441463867067512998084403514914036716645623201802146998919652705356620526829882423778839158088064006570443689720937579860426824134558738569729930980336407585567787328738024442125341166371458658895337177313914232448062810880536850739818771896840690116155219085647868288184349941012951551636269528562631817587470960419638788993505087615069307612260124437631117394546227253552304812805723838099944328157827866001828058457791274498087280321087756699506187586383050114807380123409675794338636191272840143957110028964193765925053329001224018237902534507377869525412450984127467418131545752740461453601303351078378112957845881865083447226851241200420217582811135562108580691300007997714225642927882912378033979619885269640272981596586103187547823847813206148783453661237428459745841309978572318243351674659882253661489914868299420867342642868975000052005246437780195762485479058352783827768816032279771664199228567972145529136176110256136516773882415920726004995169954740241710354047641800118128936850601741419364013451204860164546360860592607061453195101421363065606039701025123073797561540261905360234057235615070942137687280013078414840509650302121930983140761955108819304509370393706421293114603061438376046625520418517290115727958449284749268470914759661172798794294320972620600240211865108199500630240003710415401798023809920360648051109288683627513914307121771252389656700779343335092448099275804544479759600092532640790356137659260539406586979548959695197473347983459024518302055109723921266293188292065624213631904274971664757095545597574163319183713156516832630611574165643559992927251541547740552563044092530412090167434757762421169451629719057997063427450936797432440445464367356174804836294851047366484305428961479869868812618732241108939950152399203328369961756284498930435517051119909070018237055355430684574199819960084188677771245086436016851723993619554926451511299941883235676314029694120911291467869785293879873610243403181195831730440064995101960689613762697637162498647555022495117450150458821848792425161273801551570002339368654962038708693507983535377732652528127476981607721465858836923710679820091931011441994358419582234630811378313780028193655073756556636205849686250716374699622674246469610572895424976371750526118511070476044373244758604313633872484262961320577697029191968769999598846546832619197072496041209920401331741874431968706750217682775943921853593977113065759628587848175277817885182190728041687644659583653197522777540397697754568466553307500903332566218895840340296157837246261977877639654966853072124567149025048159189288328759134689565229670968702609315861758105300482510473846839768660486878696166250615209393195791651942208748624064781751101874188671565559596029143901179035942380611479292664646144115235833683963820040318904594876803787304740425178631503337239400700432788163067268722938575198808120738231648972212239388139275312320941170417184776262142964210109281165209849147962224349666301126766200658331093996774990322632057742611521197867681418352121851677977187448513596179567166243973825313942383688073615901111535982349301428706321662510293597544537756295222605656387481788913188030258767989827604975770525833954038402900395536530694951174179181010253403601751071227621769408342741614521740914622421996657527076663911742473882771173116452372883140442816662756595867297263058649114940683958581942949646516058223462093719104497927294085753087841810281020872761533327099890185192473840448361316307488369098946472684014295807817234032406181395798955681967593838979619521419245360759302530506773366322851635503169372089683142183780997458793792677384476827008761867714508971093982658420020948607737277814873422150315350970116475816976519576578988062760612752523909555490351360773502160348025187413364962628406439185084630947875609397703178815193652753921131163939329863404626135800530542946776087825015900530824930288321775751017538237946813823151268655328003665478567472631603194115051232260680052329352026932075865909520312675210439743251746450095578323861309854395910588329490979368459434042505107813953003880772656525469421253333511573119404527237345944073235869254789293694910807412758565981948239132513258048982955676782300222861391930910738703672139979539420647585614687410705115872172458755443878424542946550387278330086052225672037422755258291141980202159935630639423146704532311648195658684852227529054993229258879305286606636075304684834077214070275999948205824904550004854069444840555056928796329391867522563233131837153262958621043094565775391812187769702171889357953285051229276421079882907042085619106665216196079292364526614835385095035288066088850423094845857836411393914727533319029814625929712792641487940347496788356681339121741357877656459542718427955696607528615827631801468576343720489726486556713355866213789638375722185324450393497075855594854063361301084979881969369810257534752585365006789482581385496774210439161547061298859570346425698590987544048982667822654638885796864786994177360828293132981846968419720505769257937750881510305291651075951395713334947693320565825137211774881880149661296862715399074608019422069009503685786923954516939669538981855524611713125266676542042484869748406569234430067449951817941021921048655157968461969812069004756226853102459623341849951820423545376053668354875254928491265655038453157404728768857034070665414059522577157003570064390414912298320310288173621422081694962817857658869357958885628118186609861860464504791567060706608439385147720086829372040511739798444393575190127646712753958556699519718922627781294101034623155292278878438501158824817828049986460624800552064722560556934516065784107207848948125377238852380385627393102370564897418891132778174675470143175574859636014519706081859151598937905593731800270373641980239791996853036115276199337583358519692454438362129627521862447747040519852073932203835824575623574676694667442282604721205892338495171882655402513857004325747276613328420340586966136814386776723417137478862010319975325051046144384099469189524118407135287134353995998762747788958367499248405075700883889629107454520826225732013257652756866928951496912662668565267463273285344983190174312141410717244147681980103426831152207559365478710661009828430888286499386136167067061649266420642847612903681806378158652577250420949848298038584507535727776825833653515020410643870419558870084089169994878839579762611726092098983962431424192585688990963679362665499974514262175145721453470600671296750541082329089495050031327385668543323628044058130291371624455938797292931073921179525099154382158606504539352707388456013077408491608868274660425740521138158450142978611498911145021703294282743777553149875637418902639925052146086760133797707388594779325138989602367969098376587850811414136794638467479547719841064291518020639634914042004247609690251900982043765798917798287009764971197682667434758729551833751726031119545408403071172208018884396332728241294616389946892515772807207398009055092040077508479430032670241408360207138064606074735222238544095833792028110996302004386831939147680489763515025991002439798076607049522705231540370317534408735978140759020675324692865045694317318088420994683654343808584548693719137564602932036500702872244064993464556317810004196879816045045826632889918307970488022921927937041145153062170252877022219595786252946180551005093540509609453238324779294773767663073173421979671139230769276620129465823469266260001124220516374367883369417489889233851729901861742758463009692368754796203265320283289221558875475234504168789238397627672531882219287578855976728413882253956951925168657699264127561657247837736087246348015090899817889626412523161771022315966704405633207604839619683628325516578924861854562457505814165582685781274332988629511286122820369673811245622362184433404649716739290728523279364823400142833805207223187210759065514825440551609727251508535846855075908039697318264498840888894330331765294098976292320530628252182972182265676774591091032440500449637401888836909553495836065885145361892211481843786578597923323764285633665294380463767561503147244325198292713875706189070442869333024457575580919506855488906372609908966829122948530290830027668951528471335145475586247339743874404268407223605884806665656627925083145190147776223833232082168257606010792858719668466813440501648694417876215514023445208740694432255664801781827309081615415117183502847882969208494057097255555428686204098315714166215482493465797524983892140874674670167496286099090920755385801874441199190430398133677678259546078285148082781892789243773310830307137242921143695308736481999970846364091962755607836370573972839386535728904413709084460589327889399136454580688700079068812434699995067270906314585348216494746395994578787719229943995297982921531529342344808371149610072638468445653038628795467043928750293743906852243097764714054526848520953803174542859173840718393700618568152708446906450068477414709198595737027885078164541414640732967183103987637166012631859222851922086891395705806155205342557363617874659619958321559409602988326553391848782161906106361788457594592303851814255167428913730370889768009011435541901979269373256795612276322028408988036469231469358150237921365122899256784886693805541755441863125141910624710842089289047824799076590142568441150966584878871089383993278409809899404792920441395007828067633537298202625679716544298667934596056316250585016615598675857478491217339817566447803662604464704432158669164498488933686660713081065576039341894914550460602126987212494228689909905132965864225895443309836556748116068680723983669266065746809636696618446254599172743190760370285793135780509534296252674958499692924326013663733372849342249704207970569614056937997737187203658533579724073430013565963215989673377087476758869765841708504958420976655428214469066755760265404906345580694482747112450370769146073334791818707842457680050860500900353598075630580673162944756653229455789767690437574176412536883108118299617108152715485211237849798993352218034245831982235648120443940647508503190973340961764826835616827898462540876965432129705793756708050872989543983938579942582150982890826642611142362528616716490496432174629069992531392851719100891423924463511351123140094084272633874147874869276730704013359610581872569471208684913452030394384751773706749060472063845287297663236834791366076588264131726199067207977216319571684907144722228135969016357317579939065876683119372369913996346786047038026453247978807932590783618776085037995596157036313465767850994061723322682811698601327861089613095196796033106768731935804777071590914208985326180456066137277104641697460893090036133737269124533738106533932845377930725996397619009609837247345646590390618195235558806473652837127987263976614004122515551325461531036460532946443219160142499031093807539075475746249173262815106781047123911804192704305202836070750559962810330910758781632011875438687750651652540999067769756574235120162656516600050773418212796323688856273130803518676610173235728563771482263070085762504241850640530622445868106633683890413732160275394909629952834775572580955704018526460022004568427111803597599214269570583251938731980183625345208711403266890377030386902285227541100446398357476271254432969784847301775833156471289895741945751436227780263850023058850691544195874438922277941445596087355297787428736137980061630105566491662145773400049557066817658051732655016391057291923229005728552628186969423961533862777066629816451644781999140057841994646232323977596285714463704954374033251511860965963228257550756677190188877031935389394795735365324212114425444051424715122080269857951125583915349894979364098268151654663569087371017983302162753124957841319794862711037298517186719952608437816508693010137204047950269910047285405374635371030776342442440572506805669771334037299813737577086544047283083679785151224115288821298484107260081949136142546733324914710887222613605692506607406039027098353319430902388426296822501207359614462270474332357778755142890814646055043483352105559702279334958521413879040941163731611820598603367023040510312335883943205969361673597627777494279890449666224493718128917991302198951514988629267971666492551368994117714885266209953463207639076215265652237500969977673099589256234016057046556112917158544128989737034810595919743421034048886644556915117786039791529645307266642932089098991099578921382850526900432020914733490295178151835264922341311182369524087488053643928414190067730182500507074107532014460629703922076087366753563897655980079384327457611046520155723813483848086819846583152262228878237770051417527017604804828637500620959079726042559445191490021301435605173982557642053186254638590606714277134534373012827790519496364074973833535709340192414143462193002246179716696233781560403634494484283292346567131424271839200448434025899382393852196635443418022453055614271573163669869470868162691087143558149849689840823994978967085546326788080229842319785429929090239332618203641333377980536707789225356150123060582279603697855105790719325646025311820899547263288378317318202035948594304739976045838642716118201456190220777694099890783725247943223768991417497576917994137439457712179156587239342864468759550393042479502033501305614691642073529360109468935707911185551474640189862186139178978871441015690038836507751815583926513768271392168704258982098041927914593326248430440699504312502626633725023030190676503836329042589796773959968334992272247776425823346321848785709093256099617460110360456698547008671228603785592494870741695135799934784546573819114442579842784207986587198422263863398893162283731221726039133367873860387656342431148996666810349915052726956074189943283572600482516031437350726424074102799870577865513940813981963873291760620095900845085622122371869432697182538759957733608135546057756190272367336815446802289893366890948150139694460215282642064896763561861434851714139007392852637391821802546977051069893080671201174044327702755986353056309788528712717363414491139957062619193900766269174327594149725327960077613713764115163492437278968722332386136024916345091492742836440871136076538060597536400682836548718699865966715192850186430182438814308632076320938528271311770058536803262386973383824515706035495073861789076742100263038679688486429897737641823162861725363802912549262425587205993514792438928773141571500269961378701534321216839444997452465487339138696618795957960072095382301250092443777034122889570982358474885196253414074112072431319983530317214794617967303491020273608206485250740336040556147652715048016466019866606550061124096943355903749819350976413831868761100783179264039696012704945427780305066867230141351824231922978889155188291194144873751830883842814131096599727538631531090567565461923125955036875674875937953423999874117314797218943394183800763837751889953593904708616681932839979581740681871977166955929845644736995043236478767731896049271312697220309413619562478869415790176263025378898865048606927933294362836188800461269768864387947770353835887298048730788204723001445320895154111501725069465554967652984115477409564622009057163568994805212194801296932426058359286146278863479900174415565767399521502035298159042201497927443941639700462156790475874849920411881525278915642853531123345993607449513565753746093321894049951723830597720273772295447068469972719554019604165825785862461095556328749568767277996448456197137454956867568344167914845785208264367972211870484567141865450941364943380753987789355061408786010412772282062371655946169345178526760309536823335131834257004122675283422259042728255324020951388920764477856226972988994823192127481891739390661518772189598869071457420946149749338865979998798086313591516985170397060078740385136328262557178589063980914814792621541890405290003603567740990888909772297732576444242687878148930053123454142207719403432928935719240875951000925101870732603671726975614092216262397474331417218035456632397068811537726490953279279582562361071609647226461935948556876544217269771571757805469983122464394328583465158842638501375363325942277511381032784055245350429810516016706701603484727139303007953159214350110352976847760271577571580260012082232305487153968305567623272199728995610785981450767777615644776121192648025606776678540037636596391990741432397982436093667470318583206918580865761596199494715282155722312459169023504884997733331861069945018179796015212661587676882005892391069677946558580063757573053947263300287328140893326284432126970212267547040248376236084735057213394524620961357006931722896971188136069845934781509949464480057153405268654916701235903076733589412852055694104143247805062801228568468124147563891182607176896684973370445339559827497529862307001981995568181064459709258734042820606125374670360318858717681149040055177342049387182894800928608158736522804416088504994854588213973649924632001988989543064282748602154620195721830302344394513342071007040420141177629091198232118549502029553560407729607101083696903450111125718978122489446180449476091172244368711839481962372741515251763935365931355500100900185861111452536139960557048140448505443120630826591721853166318878184513890968412271208587695067718346176117282401837009543873106978046057518956166498774809187537544181554192561875379699300339629914845225925305504722511434453656097306922880085858491117049277554572070928456670981209905668902632665369464059331511414337155881000602729765099354648996151240510774469860901312722865589893390043115957432263293617271100036764332571424199681910473609273107031371088506556989195716953601253254539144975309113949901790437724639047482080527840553832779242807848768015973685610056166076945673630534032662109703727754567718975597088168803810734427093643748642361139481051172652202799082112366221300138851081032381237443376839462795025180413461773248572014444466382596284669154825760361390606195881247570846956073247543414325673902151812579685854888678253277854114328622155669397016055861085104848760540295595698351720327736674931822642237748260405131493380730252563072061758105641987797559332047262524261204220647142395698160343957172361670991226247894121685974749547521611975470252801612837709761108319638648076585511350656534580676690005888672809280415003736804212384467904635235834877147018548255906962705268300419672667137009110585324787565778515869869564758874111711049109115881630520861774684037417408393206654346100640286520842776297910194585941860342077615646693461912300739164491541435326678829217409602541500425143734188520340734039256120977773933094195089715009796880492339300411586451042499291741357856974202353176523885880162958929191625707723441849699270624645244051795427572658129335316724227655294805589700913365696514433402370695174306446039085964399060849505000806705292569862512288484166604993556424401495656815554024505211005627919604374729897860620435268299132209612246501415677967223796120541060809872365600860704893822674462651232378264735237741935885204674716842230303589133172729472933624879578201241033213460534950587441500691356418197961771049514955079322414321815059983670264080553902082893329907145851231122283139271607958862860119278280964371349073668773602607049316645855202289564300939783044066559559993499681455821343106981792868910935083600900657017260736490682268412282648978005280831331962522703981011459861016701472589005598658833131216069874995488716891085976183183150034043467485835155160030657864087986247568225887830602178602177874895607373279832059378305089311901336609005109413784046175914458503985830993322951420275256756232889138625478904094291120569785716160602358131919509411573726186287030589039553884821605949642644460890281691020419592109789990513960326758218635112232210287820329536067624400489377401510686521330252608825651890150815642773942970488782311463831667930635940739518508451713817059329538162526739168343830331933295217058893568671049335934561948894002623517419289671532574546332643314844670830578848075167272443785669072677576290982313635705427930838772217311694090796780625578756502537145128875764016625865496206496895273850067348088272754031174213801501754742770047554957032304688877486130426060659328540503791531160155433495842133672369455071905196804027224879729452530148841742956527956101660248065741645963059528451461132136967539946452486026822002832406834755025934236042643410361871764403890290497019857967074476936509213309415224012044943535336964424511404842813773004384193002284701469928956977836764345990049038814529377256863022951731948077004665042756910359621795004146369508832069154187084463410393043244225554367089737945663937122032720370856588203546468278948245515689052398188880565062708920944162089155010598484909626592522863108538848165750030698546098902585916604837006379257283774737913739177493703855280350183562809175250759506734917067206830860928216699826991795860960196536649054939469758066618423259373194829621110869187649986539062659045131300154768533171925608130796631767048375314398058596220123727437007888905665004337849426169880048678241861981919913690507702511214066169151854409882443553079723902402366196209427606922249936347937883610886016221311301891619682893605666990146415792775421503968087474667071876871543092013577188389337915888818915715756315381010042247001395940376427246799178445376777077931164153183053650970334893459833793141389271357181512810404544587991687469454651245668446450173377487487783136208607331031482294106026933041191906551443012177839200602343729997843301552197157555544310523477417473940289354375885843494285880193921673518636123131659582157064301224186768770147087569445807528362970851217670157397807885236502663800526093487068234700242305677591477936881333424575991119043668055357954516483398181855151069588319375716979278139044451321141475562576406881266075521495300379209414835007116471967081909134479572314356011547235881088023813109040360435084322956386058509145882457814575338978429194593686325002023987002626572812095250477706654663546125747749054532308728836244913040112378944915792203290019060186288052658724414339321335970559831483502100243185813352736455363911674802211232361915889523859548831750958046347172406402724536378252012053962149914675597747493484442143930080628151802686137800577070758248893601712954729359285340859832027707127237255084985513126353734257170929868960237317962113438136081391973689588519995599628463613371465263479534141522192546685431091410401416633469849098430388835815576694071579863101681872252138801879214861652283079681757475916181634378709375824979757742453448475259540817553033615164664660707932291278177269593488967038013970386580717497650911962033715298425298075400797120673830069321213230957902312506363599841049914760847827465336802855528308958213748053110854084405310143000057773208272013204905468851327424515652290409410525689958391283995527492987880002338142856608937495135579988979831113257447987680837698984977559246601137454387585699693473768813593391082619860710966237277481851095132881742677534106288379015788111125872608682379613750352056981577833424943442947781182830078694277894765198721524849349752025958700325713808116970264530258898792856000822032556575175316718330871425288113297134261924630111063982523356700597094030622504018798164550451314781964911299165468654661663914238224301152745890512851355667144036692141903536215295830353649552321043606399686652189224201949598994661325794827127566190361386014864471971490322892548886115313883825279881423464085690429643628234052997488197423117411248337576545750858054129478831045114643847602771270076557344459190118080188240529783732725449093092580040189266524505498481683777053300273988661296376493854619636907721924264840509602892649021280390536045001105556134956533135894623731529911373396531802962737900274096520486887981950280950847002292735542302903108673901517314412288697136765294496122283354179445628906177003972467560772926352246550649572987493912131862095049045925061509612860136137898769804849611460579477810372003701932493777977108882788811657459072163234800054678644103629125383979374986702912259619837113556373500863381179565059267868913320103042572741856007301565026688064149472135108814515199657000830465860516468190904680447034618074014718443093196210181602462867814323310905888549811462952522991072646565158540678373375708067597634765944501412875086856899096313153381377588889371269887950214079937950627403598923355307694042483280587543079022529532528037890122508152039242354394649478643060086838831093035376675994521666763533471397789868279153641259696340862857706019771969723039741144818468147529811685779660158884512409077890594932187551346586864108815193408709304278511401622750740713864997904278546886879871811491306600184243475439200435954436890274851226954732070396091106735940560751343845369565822099645271805564007468533608907538909961655098709245717332087000437672251592692081312719648876643747788737560543223909524902420880632114410946019193587931266097228218677959775680960693116337580880734708363170074550929405075125263712450527185779161021217012410620801006068017596145721085869161591605168313449891339603851198864138224697604479935858346271990519149715376634978833195222534599227977937273058084426208241812113092744980208095585604385658228029421924183476772485584752123819607167727961228152644289232711387061499817980196599150871582042272559950000911171651969241484171141190318852629130001701553551225135826507667457206567111131698660940906333730701490520454937515632146524762497463121324326634149279244702307599138622040858273703136865984747417987170450469609047059801657577474265104152985674496416338884133845498947983520171872847452969261181344135827093134037231815282758914072222465145292102869607006213550349655628830796375472531127603748686406543099717891577318894735286826722047398621779969976153849096495871393864108549227641571966830601896812208125237128082712411396621255274518799633622845121596834497249357959107182119763479919515358947212007540976190538487667077351288495666824816034736331802101151888203578678381817631792637735400258945862409341284302276036626318445982036182114881215200001248036945698718887831950735984048270861594222737809196963862409300033717974271697417249703554476798781352298341725534444210659883454389549504059610605572220331739761382366647311747604634873199660933698586766017440522015763579768676482999421058775667672853775794192350831538686456485418292249412521075113560384283532692137631079684743975317400120591473419026546051148622345079040196362788168878993622100852005741575717907931513123663359687415763369686392340124357474332622983932452017623443527152255896458006524327467667958843107137518674620708631219424331666540957625387022167324011496272697683086547343087794237457292699517721099814158674860367722150723125507800827776442355065998827962786041397216111904814272743273999083414097421956934996552905945589389302062594109944726091143305845338015311847393057149530899623146239445234753457592907678735350226638677719304001970489701662580560864297624635386019411363366064541425743644979466555498601380849414292044223380571539023796095777271296093502059960707909710113055293274437672863248083420243416710776519677898183422755352405414262355409199253861184439815355421733423202461290381618891141147114522491953871471758320802771042115018610488883930468933678692922655243531254092119688062498185918383522794933935506271447099651103455484693293097647928656742293229854940838003389264292145094144150964992267784952638192826369496256820764129590223089810810374708239747357965137788245262429573717896609449322091934456164148802211272482328521499201890323213159896317518727063177738956855299302485185671583891473999169785947721734015657899111465916132583408622519441982670485255264564958058539115207861675451887452082539124783414786102765591302849868043144560460130170143506788662194592891668707661524205211500911141290716088372244894445487917717533327969521362055890055933674413662404675916259745635808720186462286932083144856958010037147773175271418166712485120477312159239501753137398123828380136773518153845619728963757055065978726640979702804798869065391208523065830346066210813497252912406914399088608284814408017270144201537633647026524881724297850454831811674802177984466874116541698928162946473859306214895886838478398961358474964957419229900502600484475589569467919389640261762700703333471414356184022714969937794771092951638906876874438104552055455106257323901040967298002607635213218600628321122475364207968549372408587893744256074701774417903011132896032812656535436063966307961707719389045631605404615096809619956628534353246746577215638655530252519582238222329002057286258321656192867987590742333212943776822606494150577061118006559275354331017285168835223452256592873052947003363803328654483486542261665294488430427747254370038158857229314808092914371203884073087453169731360309309478619908771104075744916984606591113774184928903251452387136848042485747619809432936517802691071823720092359433235827049459258347304454383648593708092938597879947399923088503533624332837109188602819970806552993307020308235940452951911107530970612199058236163620049291754832068996602841688026126027423223913054976605929908658404368531575364465389965096246644085416163130093418843059339558636239452021381124441722498251896380698309123615882499631122538226760912488896474628331300548133088492858506521395301771512770605772612144891377466985935760166545470502006416903261994999176193935191190200611783451931639764279096294833169974006033498456856147186093005043702358169363716031835737639833736757131009070781155831472360354305949424165822640177712078640637589448479612576273466878338371260306337910848269723067927391895683233719918953456950586333634110333924264272802091059946860284606979908068110263345938655783417132146212993545955892189046648661621413390877536404446091082128418319943481671131746522033037196618893754889592785451431735214433366752837095247302291863321613329064126767784502699245872671941861480525237444961850012770748568273966481215220566057845539990779758313969727904119340939546501692942087615963968711850602982214639659927022869781437849531009233401228183991635069658626474998222776680621636044064330679543519635792078239695557520699306236892887532744560948083145074238785305802932818488438361017096252106682493945302578578050541009497392069097015268320405959847966022877291421341273552953010403897202206697118908504629522918826810694037996756866192332463846255601710166796235127660323171496772600117865244013665608411529266994591245394022556844532312270370092950913578052361895627857787635119409493538809991822550992966192061098442288276540416544709372535792977517893658267418613125973120192938194866551327361254680354130252530484451081294629851783014731049570946447847717110983948721592748878636999375623605369119361798947709274265349281720270956181857187218965385305095457513311380361827547414769641054988130794647311687513067751049583349031011671130124629930498582341562452908089635954050439158523460313059120737680850824293508932650263384243649408234191440762988142972077486583309428788166820049148054649289527704267614435786674778518914340213064417845386261340051614724091581683574879534148077287514994652720257166301723282444425080453573958231540706339872856274556807962869496546763720547459919101508935711773220596231438218782359986407601331415276303008857749585093491438605748888824111915462718643227753314282957596744918651300582806917339334379973697021072503009650629832237054454467770546014286745992490603782303547714797970837448276894644462024233483530293310664929023637758686233214781996769545616532668147400148604907130361246224048420444872200810946770283600312886031897782587505361573458578407349465672104791943974070098440529545648474444682389680951078785207700545763568742535227363356684631778490636949930425617778971406582543276986610682716894717676929418461111081603500018075615301962914781859294892899494909943441778173876887551859643933145100410456944620834164872434913992394473369103449862911207059692498723302855336473861146514712463023690229087142891196921578867724474001291539399325792861128015667422337424081329960679015734762667768038618817330873394968496025365590602375655418471292510979312448574522592861293955262832429094698501201820682589303365403453091287782097392481743010470192632356813061359008381492938954032088207621110076629629486085016073527909117817700732173536911759082444318950510944954654828000499601267731232722751732147399434042110696833049744952437148008258117294774358461316831168591493289505213549510227799910860834905496142503720712493070794116436048683830937505926569722505953048180415002123511742744528948205254158976224149018019078488496863532168432977113791359988023139763532935838130557405106051963961874328946526575940170718785891895503270343163419822863618919134863841249052342511550787481265890705728075155941960766819280392274557348150808845164522176468490928216150289177499124707978334360688552692688453811154192752176485061301650801325040918493744654666653106122303578425548939939068416080000501933806232600670773932162041668476111326754598140944045016316293497512232956321980038351896599206157944489195109713044352527292574596451799359337655696254336311745986864880001620943336656333681136525827669259256702421742395706015884526360621439705691453656953080060980058427093110947400790345738210852089632044143158084897108111636151615999509137144563904766082963735580887040222088948286985659928119505007342340434097866445264381881251099129208742659735119864794829679072949205853985757491345441194208823984645856764345244972997228137351386465618250381649867038982190579901577410598495116473068988127124966209326387824039242560556445808900052253292203420858248151133738153930112952809856246160875970267009103648869313321502956846156529247316396814632999256854774375285669682091624583973165978565317882449633845335046057817086320201214489602068784336270064484633429650751375734826449012455084523855656023415124978801717971820254473170133202388031481132755189493544128173653115138113041972300729727189423561919909991532739635615174127758489813265928038422185071996759378401385746487952139323134229935652122090625781269635510500233866625649799060776671163145619587183792874620868719197157738132717242278721885122181679625448016077793774309209406650075977076224374444449915902671826606720588310094645601659037324140665300038264981029770186898669523570528354990036861331513169198856582681017178643428612130120987399341901146591771149172503316127411079800690838048357794914780463675004063093709426728795013139468266328976291779116310349981491093070787608476327991251322225988347639353423550302457702527800377680149771236415933620627108348347699990568442332708747289122597360833739729420024985984346402357142333460141118842418134049851758352806879800060074225981653307702195225122563330393486811835186436167594770078217159646827484938778574156462428750816842253629347782266000603750667662848220367107336632365103615243753336002874668437283448503123014259704317675831214164571394243559985993524749224845258948451633433293647048485829501962302298733966883179024293014786377702163924592517388626278068138990244072159818994682174385280226862768005999452715611348552628793403350837938321016999082165529961187082696182510009167950829809363456541694671359699669197533942506119136313070376971849488988354181442174545624547951448212648593148341145604502172981014185567916729278953965424634356957297443473408417043912314019508741310522670508158573310994049294538243250733232860606314831301024466857520680688564541150797236019041270907802978637078394721492715914345842493639151646744308644826396103701674164534796046817296613359629732772660614368236715311387466968588159007070052516199321041406626510274322407564491630987414252690590309996821864292644772811052404681512096374903403458790565092013716151717442159978636642910336635104675221076580050047309116590040364947951746061350604766059062538370552101604435178314146253853135455688390382285926823727116240537881447820349347365467741410458584242664063397348131985396239418560056981473483695324164622690035201668388935436278559921548551737610510531513890243182314904177705728697426791926821334126180555555792576142898334360144771600184925658358209784514029219689619676197714158046609361499615397442956125119605420501149207550938956698995633879217250360036528486202437237864520956335692721347321332319810651755374062021618621088069047709749326507211968002339093873067524898205332573834728995693130531296720006012085795447546936833788390517515760624551547124038451306804066602922328472330755378595716365109529520888904739170362422538322790354093425432342119240213353912696632496819326920085069897743307025045005872763092661601184370151435524642147462375412559373857625160623114327010664546243163356650124125953524963715934722389764703946565347992511375193132539902841563144886073993054529337007412711442792493978216921068732502443300673319882262466849524811428252810298716153596828402799223866293669090254355650859891670228820849995250608114891224549480667097606783301617665500494248155231941797153754934646725111710429172847219824839525418264200671607349197059998739700482201938395230273093921131516599420510105660074199698451800156500990658327754608746064476867871844245378768628491216376311368359507266813030751944650682328843421386988645541429266612836294183648613719364128363776170226621329607974342800073413123166061530190122365433522305612857634047421711436842913813903394684550076677354374865451195255664685851163541745467796279204895338293715902565529956701925656096953175010905191377948507615493769215271375216839027781184256942227307455043810336997003275712686993999988433062222388543661831101806264745511957641296034925679169466915268551613413766804866775061462030001633740289692600464972143873734932460784136180341845702935573770528342420149671912949353372735416399030392881070944059569300919906861612126118301648239340542168004403898258857724977118427626763428292641826092692563573016897400866258744323268481834505345009776913733581550313635707720460075953074559548976540219049327114766083954465866004965227234128125200177833319845829271060606322888091199071294214835882227467662311718178126976118138362314297408743698949751995207375064197388853827759204154935175779393157453225206612901344614861800149041278276753922481466794137439173518142320880536044310239169993966669335072033107813829945818485233626380089624938981944038991719755151102545836064254635145215673596008643583725885563161664482132562454843920684077899755576456211820100352269195350513598864517798360894021719158744585922409506108669811094813880644686134836784098883183087244220606321219188002957054289007611605078489565930917600838242836136078788661320748336173644360314479248257748815190630358706917352901777277719315450047756825751217714276139941760694734760108182880379229603036759316865301124427354897297778302023964398307082008387685573401985520821731968239444858655088864219181202351844999752724038786015630840725841633231511740915682925299100980824027138357985578741559862889646537355290523947697848027416306679840181367974716883424198058290854974972784023195529202211328647896692816726874749584619624345232199497316853645244888857057869752030028276746368988338635813587365060956824509629837218873117608658579676772989237431995768622997970863237349528235809749929394695771267076467367753895148339650228888128823595571296608324960594270406621566457868479801708862449838312035841895223984513653625219049026245085300520969764800097061972167088806306041806392036620831083144926516298665955293032916322397169468624504398000435889338699380447079750187029293155090713663376094635389924920531397650012615213925137168245412754795357110053152516296579655572224363673844834334848391325473317960725001388702032075878237714198910612614455893916603943105322050868261508442199023364585695725378483843207010219779103479822145428671409916469310667398289513409200942220245363498352804293377662101601708105338021467395936031967210179216984489481376765759411475061178692613711751589352356160723589890503827179522683976885751177237076555127817966205052337418105642197701478856411102059663711503337158403874462625693693338590046005923838922584160487420083236470969487662129197012301630709626239960215128788014374243472231188592274085332826477397972934747181287437185206482808427779088741311360397868447047107943935248695818588799660067736234782718988953963426373724216052657324987608950966767153329492032360522875946026963990913361462884649151845749954164993744789708149378478152718389987000156442909002681276844164899068725372265930782310242678319018794225112968432758211241706823118266083905784191587472195514056755563762595332653422857306633174245048105681110919234106683582082265850063441490691344988215748836422287099870205397019753559563690674294138368893140979354187038349799747484259693594903569068087081864316953208000408791717104594392540275564009088874599986299117040488426635934712375380923759858970678589100514891142090978172554886339357400682218524021697476312247186685090681126243774997134132188297390070885579458833806027481575207262129902204176910673057158610793790613610370675162181907101628971963054873100466227087341822890043680661510421043857745680013367253418356453442565462181419073956973476987446986998139335092601473901524493749784189343152137111035924552515985505516427681763881524528781072242108611357528146266705178847711332346036117144023656938764345194980720881321347528328699979757307402556140915005564720322007930456929896201628731433828590609543187877174782639004535626689505266158072113687327927153076602189394300427297445659640239184486290191273034029891939064622564488852948520551450578309779996102375905917440477632250980531848837156811256507251881821181734576780691986755004540326148389097730904915670442218489014905921714960209777658385116483276698200028990973280937958747085638124589059125805245226135913422699769246908148297015251397877959366549902165101839062372016017881610028684257664936357334112075972470110322884045414324522582888110327429405664287947088523579428701817012980451395944928893855351269328366711000888657467391414738512427260017047473500597263736990443069362169224087283362812697760215602668192830863394760338357156672565093711880032571564323789310329367046701151511737924306998011803826513347749048894953709103423585360056027160589992920565746609928796402319918084313840579407743795550981573980709796795644271540979224969408190774637563325318537962805283830683460813688037664085790889559054442719977034990412893665547667523120421872640283148921751737398961395351840364026794378689682423948293208043631119992868542283952307499277211282822135209153279668138346868780137892247690243069925775351806711637443693590314809999496349330153939785133974262240446992380629148532404515897561482321746050607687966029636673455416137183027728281093741563531390114206428651332477321835316403900106047617821983298473703822045692218330377983166827900572717173357639963603715136691058841996811869134840908567335652462363340599550292357309521448092351728571481062365538268487574216366006849587219283440842018460436530920773152186411538240829712957126086813978528613971537196654670521529702261287953967790585577599415953176994924841344137048548763115229402987487118979488368871616563963939429775180789966461193226249110382490233920354410723123763052909920538550915429139581566748967348695728522762010458170728689787152782332497084562410061777182655789349867315535171419056703719241402250291920922385624750429103775489037565364423799403671178072308644133903125578604708889857597418183201410451452872396519303484653134653825323977116845113014740025719767588071366867683004618458727642526369017550845719401917081223970181763611347623598875295020429480912063359383091778580920590052293586502213553044349981801858133070153472226848501033533685844679937614814819209760694989044479760248585136416423259317569294777048633793966830133800755888575226381259268361733617530250049526931562459729119741165982413402537859801783514351224575422648227702465057570202366282746280095394140364435657601584585536379760702335225215402817452059224946398223300703258641453068276668014734804857833142551918151443262603941258616325758604602112043613677930815660980977997901661792404777251341281317796278385470036963463602101392113523336180938021810269118983838645948319151632738044706985182171013568507228875670163485800079694284189790984245839611240095254488451992602957845035125899883847548133346014169884099677064928063457971660727660020407794483268431992878678183046700787170358092400000151474329684538864537967067557377812119743540325161623355020105483479653341398124663948502360801472242603181361493591437543161820673368104932796936415674154971300067509101405967415904172262592366113268637777393738101870868509052423181934880738408336972522601428802643039878317921340351699559719076659217038540987503841135196197581900959264125315236501704916848191396181030347118974692721612829005960094711736126048584299348319331000585020979466708960597983464616731314754207548491571507137956817933026086713351999346220735825464746444768186142791316087493229273747947020341940379205702361298350834063314888342745140074743407024644563876351980682339182445157381935364007870095331004086026683809758552067696347421640741504464027986595006532617769463061428338263949405164783897682302558099598883576770563225994062267880541107983281345637073669992140034116003608572584972991934510781016140193508289040901738056675325493300872688900246322280327755738168809467320235149869450412342185328641287824841212425467156627682589806860858222735595676642550223795066659505774578362975082123567281870790235768747665225008662584076265969511212926759584454388568198084197859173186942806604595204835456400150612897343922574533877218108919234303520017714241619111047852267869435853010657867471811094950540531260906686424068387443673114653632830593677706139983027159605662043663395375537104139588632366214841618309565322233010184117506811464983368573192614099979969978839451355042401857010494848278239003380882865090029617228828202278813011014001564274718230679330343723456044810794627792228815539977746991596850704911242485447372246702141211385172403032546175930549217961135237308790909250846913739535693910636216071169770680615133258353054314786511766618666100102348922294972593536176769910861468115185173698340625649824652686794875162607267173469417722767644122896816712845651842763833807753551994614526331691708585169475438223838115572615283206195243981304558189717509347201991460299587755089943449456341761987643137214116906602118184901928226556683657756595218051391660845107808972660790081637160897603250260285085152692130509458230458266675822793330302240161204486649793181492394361797713144397210585145296069999495780664995046119428415652623806754543083935285068484265680289210414380006846563726228514332903035195648220504578875051350415114102680125589052550650245126552855053488906941432538492436210475420639862644648717523413361484965796322891066293404451365302572593001892320736367034291415087531292231835321854749986182809663079451341346595485361584340854691863202211828094548164326743436327761102925736422696775370389600967947143900594532110719920858747998482887018791340716184942927942792369506339455477557078853234515135034487065310389697989849804242848301753986816033809892590376349459069079263009141427174849155082895353997704663625268847779132967224443567445320722385311791939557720857167033403809480397347723147602401434394085066878960432273900164341792248319954627959537305594831552299757209921281499308989189018788053364638173032208502919837372587962305772344628635818094008129254476852438201664706365080130648866585843388439667815232031984682583188331126994308851424202376992046298756630549384191795843423515382400531898357671501025996242901367349468696163231708724406822572812751174392270297285941482128211153830164766631573733733285839243029358761279644746717677256590482408254642450133650595467254192153134526907474921910810063086922440894085923249149261175039150655093257766818867024470995739028272650447546156152731249053613839756021823309199695643709229283687019555354527895796867298602073401850143982899188056146547163849512897273101066697320688122248993084165228911031036784998284526836386762704513534219260424066773203685275180511229816382904682130483178821633041135659987228936398719026940679538074351305813027833703545954034229214195621772982995918890944725208957019433142871335780812486629423060666487225006567571666079295830429440593771816904198432604041410307620793527152101868695915630698527030219391661136245633365472469199715551177329822043265103005673887586369114357670883648559791931071084958320486837579872156323937223931477365955385993658791839662241277787272690849771261396688548255372818608316442860240588202645637582945009367180241911814137994467229438408063156869434488688394338187282185926994846979314247884150978095972544241174481778882508457323507997197861407161190516929739006564093991236025101943602262675862340358823068545519900211169940704484674290466502890830707314023549235687300619340007698181038787419677954146363344288054554363303137657727400182497606633586865199773447972146596873902951215808677485799972097717702540013618649405566793094459575177230280606344563668290402364232546296569254551655133571788534278920545417802038705021286801664906970690884086664608441606730951026225374004687242204822710691971680360537852337889340975746573546707627039636397854243773289433529568357878934553105295145903802366288546394998423098714597608827127451708638584094573220476964217214385587800222122681088637812063483250080845671465811079396668217954668909572928153722981783732054309448781776183013642835229199203898940019914403839801640667093424317042630665020565482010051197377121938249508621543732652112674542325402662931965500918483362945565415819778670137952716597405880373260000158306165174436608299110039598275506852635203668259104195037202614655632124855894273505904358023586205050726008873688250924143692626798724435945516510032483736792892667093625202581453480265158291535915472817380424326243515227686640190626810903672457037567349078118327370957886764516321174796939133879706958676026486166763019956945120083455135492040868053444171352149317159973641406343950012743863816648194327928589973755765903166980242786318044321095926651071323693420008619083041702128296021809912110201407776831301486197361003025454469202745589533706079535736265979020019105930839227894767560975855691447924936761703137486964401641184767204425204890801920592014418231791249642012631768418960841696155110031760442733387089475706781816249854806782688972499066296992500716819469201414687412123427200766280189112919463269204832822856617189258671847569776299273297449890903530073088802397776877754492299970079116268988201603388297964728175906508155529140019716428258597808031069655498208561036820520849853641523428748398805058981418551867178198300645479296134253480810835531850086058229744871143283181755375708020558036516817423029774040405365026978641381713420214751020576250677640734633381712900514426588627839625770233809517756895453758781709791435243627041328017152941670431070491445280015107551594651494460621566267482355285388768312655368579932951538871312393391783201252765499502912814679422461778150007885769546489446508583622930000219176192610374419539507599974746361412871459775790583780795972867850579704823477231367062587003024332352766312046365691093806109322017137124907028406427128706863775187856282271313185557036730361694678452489831932986031771619287868024836830848447747629659731925106748846083179438356020308738695042262723901396930690830264533733304299743288027066729297763400683651446098189383869466220188415037289808839826689128848062863307804883697994126190288387616494232482099969803161156887943431968192717035472420666587899338382166271863133594469098653630754703625371349301105338841015559551605879800287755127765850413827801682724624238174811437834388853677632596678075435452939487469174198642140582746463119928334174645124912881309108919758830145964273429941868363605044843638575411000967131581047420527873518292149638749746859891134688249091690633402559243298513094554063641992795764220154192755578994362900465326429292300482865588148276044876991140978673798982673471460474667544440207769309449415454646670923711381818881109492363724869844370823621057437247892750660706960870864782126931288943217660661052432215063855182791124261596231076357203635916852893507721662289474604179488992056736167815192318485614295906669059818406403053083284237129232221523539169135651085037061655132301706856761508422599242110118665662066414967886852843330534721388252093430591081186361290753916660466022267424326017276541975581288640837431778000134757442278829355573268767265838476981041526441653703178130550059934650454712432627251157823744683820182884803223954886851150910134473725545353114780222244243383617229414771079759635653036776418925922313299220720749791961864531119979205828135692321450248376388337331149187904420286662649758656864155737838709494777157894171072001373801974891280964342500209600180273340088667090467817340278112441703866832710169068971618536747878954238379142760741892868610254035471381813077467043316103455539222850423930065608732194240486925148033715351401852470351647116129327913577816182061828983720000803305787146702870446158395410217458971762689327455977943712829111908697706468511696919503493137516104576424825763687073217431776813029174999267027053618779125548452198506705462815531608419048363750380427200773331646271460235441067886433500039236848760839171781518297691846783592908097071535661539166528493540006891860939948487661368020504075735275586891108710905505309731362541263489784057326164922563862709188745047479252975523889634071729426464264122631450833572722631202354579609261484786576032428568646048820664917352416759089867549693454193223178303473364788438570192223860012814145347309643322611995237493185872781864584874086359219069349269243155028551001972771911603760679112758968095069119614450612233968690058619916474724342586788479002671619210866668059775970160760628014079869410240650332909765219040994251676342941603242775616038592944816015478586593368555811374141511896248977018400860952920981964243965194696183430240684911518993726260092095168296324236206606146086556472076904128656844360639692512515081118676875792326811122655765590777985442933264478128255911642820874744247077946453266610201594180096659117205369607849263389312857245489186630697790831171524592409628630938982679023585006444340154372708940616944303864635349170640075671028610620308766674879122482992467122741308106421027084602141925865912214103437030712855691872273896161186070531469370413304626623240489508583979577813456101662488102574002542749059582336824272275195759108998430512131962617802504440419894174652736747477636906166813195891715863742213582763882501186944710642702107592297722246738104226054707661222609655357159955048196508142227872424565171551644952461118562030717480979387258070051681133356625071055719524064786234943986737760154020400390977128284373631971406447756691398112097833737166534028914111559275345376528807382040404453534906378160937261048411060630984358043928523062236552843150225191600999004524801845580456316179168616294954711798404960211346765701008847737551543674545360763781400591723638035963329451382765106282478797167184816864625789410817360488134459088525508689421086490711579749568508975592605256704964342699368521910553405576474802678841235020386850279671519549868172290029032003075511469578030810274975824869433671325157413886668870967610279295209429441180504077653104451764640680655316471891395482137325158656548989864972766673267190190298509230010743272381668894639998247250741411597697710143228921403356281057212475160554199283143107587123350309284189134243431362732191986535118757970603363012194948994560338973791762272558670442287860146934592168625440582327594979886435575988245885387327000673118797052235831085452265239679255292860719562382227764574652328888702719567192550127519950364811168486349450115506908714872172837079943668163257916342819838173352596912823259324539779734305615707843707282232087345769302265483810238184154249984646690800212656956749819735193142221416622001583570003109312596907908921872374932278046613580131053460880072805229871805566158562875633815216952249787784540363182958765420444189847147680337789830259628940986322840706190074724788561538057826311433761628269322592347075487371022211251638350265368508884594116309477288639825460594784913723678531707949375459292822848872694188129762501093003995767437841507437503701959639045750151887439912027459094865317077993386379618222258741542177128871071913968964269827142532555489438945478960289508184027179081377688301404458017878351392844497594587794045180522124636488161811702912095901171808481985988903751623054337518608400809376982461021767770420202737757130484039882394332163534069249286289318089612381184998225235336528509392158583152357477068895409173192651080786520613117429918973412830275921874285800639397948309448384968994340267220956591775457170178121982870711060281189871852235059226296475003333197325555797803752673780664441167808204569662410130662514933216584876766344675246181237941903387864347356387643119701699662144586601566196007665478506111372426063726088303628278073912537763875426674328308987512085396043030480744321155833875354507996806421875975217570274092697828920449039034231801012681222276164475575235587595967848807171496790102916523974046587129873703484815336782672296352049692804916725317014092743239699236994179169663722892815511777824544869785644136453298273559013472477077046687439727671397914298182248791518306464567732296332956461131570718067132120337340644785531450554009776063045266690631185230058498599590240596366664628300108677836338814291972245332211690892157842776738162188664886376080407650650864554783067722733892096993511321525395375084425574600985297515318822310884984840633381988241394966803569744678459235738557032344039868820964661748283740621909419206266536608534209565821200002727633488040434470923006349065764593977441235643766448168824954215048516144916668442872489013009053308403948352702004170131536151817199838088666068913845851556856876124231246050477329989628624202945192924369861786069953880428726274020660985068679416673032917740141740978838688594441772792492561126743175492406654321954685032200077849779822037942457161828274225906005006474531220937912734218666793913997773079329106555746059229197242453271721133218472742361968800423964993360801408037805420708427093392419447240257435589626476567080779708617000005337456931052218030593828711206603355411892133461214943438686510469827548430234452702282954466999977816553134222338780181372941722816852649677514623228813293716358921616815835181365592807110108835591407574611004623111773452773685592453382051117994929041413132553431083275289399438474902218682095532635093615887732702580659928985113088233296822876667111731465454918888448689183776000391395289810003186751216506649896664375768724154836717122318682080089583251439033160706137043746780607441584992073827614740614329146121287046536037353563397958585698250389156165075531758228610851199265151826947132943147207351642314969205196020988417258255159005484603156536461097587008996018961241361189576796648584378516975245935651610852908186153860909645628375616962744931774750898667001953003172115508671219041935796045238451585295047388659161810977375166130734157484818480948942167149662665351685860143812130652978776073373117370332828217039339743193364089359253721998366074556809189049179305961941782780654269647413455838382614746321507602270804446181922105163556731739920950994702635539767822256884852485847575165228885156583036489656825655730365346636992098809410256666066401289047772979783530693265740040190774748086052162516756284742727744413027098605285789346042599362377697536228051693298704098709216711190298744953860188628877856923105506481542244326235769987916420153118582238092935180166208280083862630881314268663055471813077033387073988954478157822728885541591301116079436664277399118645539695168401207505587637622165734196335375245565226340144314535351234373417773546826392951123475880894031064326187486524047370967489502974536168156485620122511602269278697062033289763797939158621467070644653429306191782611243916597193295815737340494895388114097999563536579000474889725948052154476652742378164110694705875039503251604816410726356573853500368453024310489929233128318606177584692455727337964163081674229144442806317542776797855696427061990901600488611290322242696554743316460399302937908609620221939689173777178281902862808025873925962536243225448637332848629367970781451474672553304952305966373090780267352154075754840913109865878065370099401921779672531912145969468021624931129995739753897188896741907140805542557863679120417032211350501182308189600349288246766546044001501589424221344366094451744079884358604782413848708857230296995685186642146026978975352378678250331774518339719587917805184658129797801377387229352344668687705211492832109383968667337085127468775650117703747394986015744807245004913520216746027743008349927522407301540424446477817009409012918592463325053280916723631407534974567643102091673477042090027033509724609658279849031327689740832597799299553776944378295122895298794368296967399261214143611434272038850885884739942721255410332152708302429293945669402273573288018353369633370431514708943446909238937266586139695339907277964296856490880544934424203591211722523308103240107123688274570748915950557969599036314891888626349460435235399439282052881818354465109947928125305849114475572033186909778383115825753464550573086566507697373284405072973851998053193906411830405344969773596185671125498252531325305155840809436475861870727701154577005210373453461689988523213756276505450455020887978919569407870255656026574989738799473438360491071674122748956135259074071157352179925212048176723083226259287097404467051860626565012798078129136097233646200708827775677189278450956778059982706811575308148479715778611338334710526729359803826823796303869169307730461563132674560957014828185921600793406909255973797387957490666101380025327600870360568641977208074191038492332302634824621655074578837954234265903147553212671850590529095797118693501112120877336505588224244762215801184088288883945725989521494588892102676693452711138110729810705525736117189482514255553893140230667527489114566837499073086829352449965031399738945090101539639424706416646266565958746645625960909317938198238945820575879355925906017513753954812595978072552778134031382515470142112010793500114642084558539408283471647900304812054640939420790132842973287800184661676389520752424080407572693755318695982699651903122992890115660678573385234513449357903612650912256874174027211306200427747996096858503747663097655477005128670344000934160729558408771211158103850956518611485987813707249692166924654925614530533607005218631401701242884276770798636757370225879667492205078670752764883031143039896744415946631872046938814916854185765066060314225074284704042236553337058656167908140038614573789116622167522560183567897001388060282271026609089215939582100864924995986493520423526814522384366294454801720587245096008129770557424249983771479870863276817047467697575363130096028746546796616761416008706529625489344397789137837716695310735666418452066305723009869031589243892746793947280506938462550547956173142899137870008403146013388310856171911342553742052077529421720827784764880439927882540458311258165743542857729120747306974291474000104903456929946227760080788957729159641002186654884880036192871723299032849434326823721917700297414883795452921941671266174474194905992031944608852482813496799558816906358671131970375452568161793678022510429051375167904576833887500155367348491854470093344144371656276981041816641959346386021758136558041128250046660181163769480461182287477806965015280342134903027379705699088593154753470330883876788487184116520577174532968155808163772330649734091311216698374024118827430203566865764140087258713161551697755415552766333153504330286955058812311882656651251939976500937711911186884669861238352656766697663493839826965515837642106270613811466269123180850865712305844076081124242999937851931543270682614000113759307080091922591196308882780149291523757638963299510688116596099420436406783634579910757744016564468319587361237754128112645376868995831981035863672674381722300521437919695800139366987043146844977826772000744340747824600065409771058704081430384412402422256058405044118818350355885911049127188788063213790516112526489464463287837291284766325946106399223699101080931005771701856319150139974002401540329430678108995606288669776089253631902103352379789351173300582513062946497699922063207694963056969890695695136411107451817792388955750747766424331480256981615094912354886291266458562283172673701645859576660366807905431487576430065814842766644635305966968078934057043630105616029195461586767863327969038642628780819792209574657257902438075271836662489702626242852830356668864561588427000774532675675425606954278723488151875614721506254535322558144846891740704696014786400529202498608593293708390255367441793213940037809956232648526087442046312514430961821579970402853928919222963648846190532263037138764924066004885005007713523271590770211089951307206576698357026440688223145975943326000811844112728741231856136915410378206533928086486776646637929123442411100377685769448032389265842511796491032885931649825635980221023632486958370132399619989371943531958656819182353203880782720493526903900051919147515837914624307363834974750818108792308356113748736580568888639444346811978366093313202984132996116475357866683404805142036464079365989596929636291380996611016750020558242371834228965436438139403981948262788267884052176378693923266419350618709965475530821391518426504932169370290635430412156912244410571509055278725009666711842404970340902834904823288286569987276677160940510654620591074316411806184437550675298176885355711253879770406913706031971657733523108208771099057599744343619032078335223271987877443234919711157718111527667739720270254556290354334018332847157856679394393414860346027394841168747102588445506778210074671355039332682107965646250153708802003106992504834368538363283763522815121725205694449287210841861772291358609748480692609260163886339218284519356642489246749702442577003396768365632224458363408769174577523412996320685935960412092192247138102583319693274905597629694630492097227771997127922390722699108422845078670218875120196818776984577058026431705009307666953916677127600036715894188671850706155319692011912771733060609739652835734583945759230236509779892562540575992483179297393398953845141990583771350349516495693219665205655412667566057426769725901840321027561898182380189239672791199448126260930180369341685419721244948203912937189264718231856255086793439468668722821456129778403657779176169386905020720545513404264644899471434508076347356580406796812423910320321530338953774247623452322961590236294567801603970602530325479175831832197471022014925329121307760865811532627034626047323513066411308506498932661832580565429812157167877472581900024524833529533655891939246334822674290494925077892400590805733139559036433638750777470963849950915142935257216149127064031394403892385097683941556985259492130790173972948913096249527570305526656985814508371835529138320961234699550703415369879947837006140948673346103569220487938968850483617547729889370241098838603009941110509990424268004231451559920218516807081603203202113964111201076982427883144549906507632096135347439234046066485848632396383944026713925140508441162072504161018726376871826839777677559157904944816571898962231011678817522924556428918951184298916981930056900399003444314924760832362106133268077842936958022850066546720150325448997126648953073304766440879660824214152273559367874002857697500440399696754999556559213070794421279298126281659857084436895378877567530339459474257278556700449008612332424790238784617084613415987319276248957073911580412685700970248745623979908900504125871925827778722036523118066129383738319782104105412757844632270830848374972891948900807544574278301698269854629892312057093312499056101027265714636699064999436078340507111547428436308753826853771004415431478852179395720768450691781751500523792629423721789323782426380485346271699300736679218794085508949458996510784252202101569878563506008255850767570277729456685476750891278725519506039666994577165434162347756450423010534857046206039673839891155727006076106117390766746202441688048643890708314438741300480759453993717220560725380466434746900255875332855519138087167748564713390406739798667195224252918073734809151133968916667202458246717502031587585611387307396339067967605783577190543453079299667797688638871408532747428050804423051457344725489638631830149181499222991277892826147374563797838113841349794309816668930478446558180165467978397895976026215462928886951683881585186227514907968996527996371414891497622032443209926171809454563991650891729176256941349073450501815595031923211919749738787571337523196488793832484553174698436175824140800580369284672535341980404958572757713845521142232209237653953251076633093055874208375361860813582370359038207936821574602889119741010984166009502952152472311940060286659542790032617446614343424268641268066317620290708529705385534333646024956112383826021787194875589846552963970220011685420665046059646226604776098409615256752309174545137690304274715007218531566239154975296721062464342240255327476661298216563050131454790757222227226448181023405511073649003821802376198293584409437942928544962065031255737810596622327049070918473934835207597082524858919561857374264284537847240653478928166509454549776454118141391837449881316355589953597249086305746029042329505525341891087029459360053912478450853818883175553748008343305836420674115210935135371304285611705400185452767778042403967481394452929366413604762977496261580059113433614950834803834520578731193503224468699362680864901033882378300973261728558191601647357951488723180528330940435529254644965763958303108380114372552252619633726633604595372308696514758424372528750946057729269032823570659964515888971006937399969187185216913705621391776935296187079766458094246513830364159705165316935756274695613040438464947507145737577484841653143681496036441589559193059946070812754770707300148947514063432153607801389166677016733370810853330014735658334989377172907867577229250041467655387315528906326431374923167111971162036334801135650109779840849168403553639113679052974994755394006972345312126119016426890565349771310397324517184734856945633650857382354725583329987120973439406005510370239700717551990811009117644427284378046760947224585781472801701288310724451082679108661060426019313986857318951378357580626759106802390921817803639670002101557948734095315554111283661031773003552432337990949252001311758550407208341576248729276339740139377991172751915624819931977284461969234007431466826868489600156565376292657906624928878377444317392894551359244117987791394067100957482543876309710975357596985173060329908984450277299021343789140372706455671169431256132123500837761505368226464428741350547929696098661337853167984821269965407725381093463412684647249836450432250449759899090377827145664263522100787208687567243435690839013489929753972255297606297840542852860534738302328446297337732691877400283165513450044118345614393319125553318041695192379918025811883803921171924919008991579200558047823250418907645597809061365829582329669439215414459080557687245290501326358808902243625509061033378563301629326775718213743149090428830124577339396781888714889094232936091469137473802083669496860683911427989273616662511769997194125234990291328702203050477024624963420201552032080432084471648577193135364625321853549075063712270398532565108869143204251228763758911011553764173866429149079929705319934403049465898607497853437847743856899912448079166731869689150664962394943386815223269782492872806546086996878082451117675094044601053885498694272805068794895001097351423411312134735461506154577201020508008444996667592149077795155859702573226402068746381517320120746729642361711866669388126508914825407263801455468041376224632633543975139658421866662981769096055046113360242513574512022335236916956966134086622491810915238570881507963549326793902448145234884664003567366559929004604274970530933675132631769516015313930118175855607686155148485964578033353864828976078830605514588405355687250609491695429661010887189678846106305962829729205370422692410299705776668370507735343598181947273035592912365324062371592512769629601310387333496710315294910974118608419470940045786614424371072585421846868233449763090653084092039476701234386760760992435999411051179867778708771092433592669088653537755453325799424464038884491652541522789771371344266979913295823920938006710825079040304573337307539690848852108219018101426086574953066318493587320026368512317213081414896667278144774718227616501252946147597509577171662880316986490933807428044158594055870374436468021817887312174295481218685277047075468718453115986545776549758026388287748726319340156677651311309849156157866223526819343227192943521106372148153246718381821249357910452914174246181532201950721780269711517264881489378206188517904243239572587057819757188310933336555217027172397793855969889779427799262030838311812419781002915383255193218795041633179626815302788278612668720086662531791070947127376641707088516717451813998231774118216176470998152182840621461763924581332107556573735210661388513118310309772763459299085806452258158550681786601774369254083742277600283364896733336173888626971573634601935614615401067147756890907279410422731069686612038883859419078896615963929470027351888189684722721187579917160304986682979555323114255625634174021066842966729548119688699072439931640102429124351353819125555616695031468268104644406009705239836632245982138079155156575038098370871173529628554334883134200567463953431382589541756072323236649972265507417184071684397469859682048875435422821829574193372193066971872408344646581328693237703869604978988102718024484903502204223832127384458442980349585583783017058858019114304136047017304293541935672883614704423104496079138831714621604889618880692897347304628992567381062323011997489965973150177143430698853241550415093200555265488986297138623388073203131383258233416279385385651607876100776796672079225967217613406444200137251502294784286475031962960485220953874534362897313934970996682638883590689428008051031405155186257577071142606394701220767987735243630985705470907828758509785180852550517491792374502945694119384716890196761010812710787447077900559174391839010607308242445565641298020563918282415934305866403996882222951553534994331285071898939750145725726473681324087169669875305559840600228772589715144167326314277019272864552198855320640099180077745072956246027378583442405617223510457084674466548685098779950442604097747651200799554321430477966080656334667706293420314789423704028523152630347940861393641626000215199444836313999390979379325302946602952020870407269234862144216606123934008705274286998514032603957479047073371059489944048223133564025263132640670786234154821390370683928408996955328305920358190338786498368199605321579740034441243037037201598084988202028030208937161994166192270891353881029823851757885624718137693922530688146782270928397307602811608947768593482411450107028125480171769301782852302313836286220685216667568734423559150799087347646680939340967281908404886105580423339261598123423931437001501066996236351285500060249483922170191750462837977789402719173366908600937919352182982433688318584611691079603731478024504897554312016560767358859904404438061623304021776825550162883872406051955751610007826719629585647669773488766221913006671367023396755060262341966459771295787103139042623956449070499989563131287126488009329804363928131370120011605602642392525288206906688529473362290133858934549491551289600934196487519687549547838376001448025025081362439755029526206270507741820192853633824009045548213088107023407897139245754824653014513632117607369549903052283813387278718198495675432388958665964931826189177622286400087567313946285085899238315936777304579334420477362155718536710780651611990928869349908127374775542089818318132829437589313540408937950796662845761467622224667339307520862638769742784018197880098329656694631200952540836112375524619831505535185287042970733440334830777177104156792756745160241336745792543268957068090478649050164834351653343592102258757400322080194431901485856319905559406613407766200614646131719596075781456954285962572359468357154722433790379416318231927294299330189920723302827485708303840087089164540258870246077143824830404555830718097429297679009693425735030242649166831199809126425386141068201439777733514975324753048539522513936039043709723742090018121754041351712485329793495787367623422657262377445792422655144310849673696676287662144194869521697358274512777229319725177279946811879994439897162636440833259319500271080259718976004192175790752903683137716481827002142151490974902159965839308311219530257460805690679116087096656037408204513497865459121458374915963102272847972627880574699670473208764541740054845841947564995304812406453726086272542403160838843420086009528814657139133061833274278939529207085591563384364960744684220365030119151018866689030031933799225197271544062125922634952951276419758555208263944930240567069014788411246352351353754917322059146356599200267165458760574121669248029159669629140554756032281226118343579051960242972104156233265420787845723323519962895655228271894390687265420200605980263877469505060803126062435031790668398292415404046801756848496030533448491304905976448444608677377077814977539227293340202243070687511420050553495756161187938385485959584039979946154360824847910572817455103355276775677536411204880236641328300228298743557359073136843052534523077591099860463945308331678203864497308906172971210319577736270795454579545628078072468335005569807675751818629458879529531413726510344562579444538557097450698161472278867469703778565149635593895303778051252792178615984398782772933037829235083232497941193615224532741881498767908662272827530100987688021440158942203597906049280730157146085239390193668201694607686687835676349717442513270636955958254041677068477156159355731623378559647961787921866269208897763432748880790657261840073313039246506628182480709270906587690125659286458212304391903841424548219085874756170828617536680772924986582861149071261208125839868023397725804639827230296862999764950975817485138612651264999707744292579779954215103878112728202966982842153689369797333629517276531646696021915531574452266137436344710567586495184783792169227801253810741210488716356207223285921184508294389004225612049798596777984889820798919491790735261422620126242684754244511830771172947687064505682576385655202544749539259955791255394630442867687176044595762169473933374824766490465262785112509742656479580410509230468902072241517438361292975229533741872569008073831106742744956691190070822806793484164361776746548957647920719197551246277285135756496567336248465919083841351969326475910206626382539456011942659525413093473163352450548733209531460060194405816738335626186997841989546325088851660118604211293459850917323974885332734042150442831453413791322386710066352410012104746275874220029830708308565984625800745320665890425163759857105533944955867242792751135187520053025887715925660443849441639038833724623357713646126378947427716981098606168846344889142180522034856176366447053005771605679689673880177971290323088960423797584588362512863503554715604547338969765881622848965652140821313356561607329678200782698191143009914047486266986046269428878053720566521884144787482951724365161299503772130675632519347981604697206739773600594902304102458587666664697745041601226927830293875580840037877855365341199868501059094491542571431921706550820137462990338696137198464009354549788734673435926813596304473326585376710788763351424558125005084982696017718261554289036780568700223306692604291879688769968473936742249679604733750829403474292243932793288761828894685162062213913880352888885952360681617111871414544755712776938090794967432090350933247462430443006425412308497617527664182633261202184001756259704760793372905930132637901055373408313155363753013803557320267763525941269503644623193148094178227463691576934861099908082919906818926263558283701891544269259904998535208781677691005825934840190296994334218786591923244370496780320974595837436905745153234266097604081792058275119720688837432828499323415046501215642843587722552492548098672975706275974186064461436139756728860072364459297787715298041463438418586694375365331596018240169549841983088468967865106612477013372016220188346426917004824758527168673569571854056152558238773220081659500744765989501236530477272386482308311477711683480708985152612092072144923151512191487343086672076991085778507155565243007649987912616237349181976241423336921380400913933202822514345734645064250174735503423259749745978052247719941563406810632194455349404782011519060155300344554921000379454652433436255284004212959065605833908672169536048249488862947532861142638592486683900195810451212543209242086618676014752746127811054906039927720269969666615293242634676002008021821258121474845738210023072410211468305982865720373939869322059737659445981076686143983653495872919149795496477280881889821335978080369849681702112393264951161920281514856820490571035861135668885342588678978508782626883657616115624301271437782489525004779363530252201986597828951059305859899191203086200947104987519594293069446854634475572013738784505353248327623792297234981447956416456469533501988915529204445708422122668582441097748717345098395809048651521914506226211434079463643227797243587538404306353765928337281495604384730918463491453148050245889652074077709857120050509823395810148249430226854821473383968991089686462790067116038364129471444723198015437114270161391756861510054078677876014721792486876740001059425623627873125320625773381161955271110361759493856758836976401038497374824329723776174602464040942982620391941418144319802468865486456809450470217369066753951725527726192684110349056670605779426000364509810195686496235716781595650352416801258683813671606633732342631366762288590907047150215505377016430576871672197463485014422599098838589568096428615836794025962673118961916304861584544091319933177995795938466631162746248840313455237574443224639136506666143573888078221283312750355634709490015845985602135598273682712309047634073367421826995271218539282826908147252435261435861155228481344129864226760061054151531144539515265544670927497888976266658926408400199825325542745979621973038474679050359591723153653936839521950981867319377164592750936879053292618280369072938261029369287880377139170065462137535273357521376737899827651159787586577526373879829234078371175885818997210938526152348422940580744665757498119127957264331912945362512672832824759054225386120670025945553757438496081676995022996707557949547944236284607965195055565276767003878076847330239495202510787053526495859568582519856377366195960448133604806240107529522273206308074086446911949054434700131829940165039373763930165610418032950235010155922397314645394344044027060150415780463688683320449773699381522452932714808214974174247552380097119859688111757352323080734011140232395776703098380099751935855847635983297764766646793392173315386876357108755762110608468215714710842528205333814681862581091401788867854757033130633088085674283835622742856775470113587658935123999276146928580706355743790106969984771028360181108313011556642844687375736403560921840978275234198528938666768708126562071559332368985251066709767340910716935090425125974711313351801914510445189429978150023714907850031802033581659894075342944185074377853228305759948454574579602951163384006037328668830962207361553007532249240673293723397495385645146983985548113899306840066057586671610871790684247200157108274214374584519690054120652557463525652406022463397220870496549213538034749030951906388019749688478601153629380124878908272947217184171395651959204822072417342879332654141465531226700066356307218120753695971978069619146749265416603700376745812900289514128308096790157081107724510663064928149624219953965248244020167681911382232198592597407818883867726532539391453186968907539435625569158722985596243108758967154838650682093653279999636051566764416069702078424955981608060922284445203770214635001097298068233200398977605058052692731774125186425568471078753198238870433379005958992583437670237531699542395674764096492961433653270468278483862371990969199353269324121034757766261192783154679262285606090790632523077040701335189608117569511794683601193865148502366000243367470071435437626742647891479280388466984307423268045063847705966568401905045272054442479607198452720733436434336993722201173258170577670032289670951805934363477601875725318793172377181146982965574235782371033693136749814308822881322206422958909598163347370759445163334103441987119981801107257500561878882532896925208229884003729269290126100305232434727306879698697708739667246576833026999996161830826432193009732592707220148636469684349291184192848609287548952172671125621415829625248033477258181837854165014260779765298311081732034315262132912917776645703911632287507275536723601917462669817011636615532531725920047725387195916958812588938310807814460101131603115778008038721475187612560314676197889577606400979633209665061343701670861534356624544749930604369308601895377070425568747959883679543172573998926725356868063277476579847603993842270226929873971129098289919633065657149416718429369540113204616498534789614884703181972240053192341952487838372418339906855317317776172624924228633262448706743086595175771893592570249741944615568389815467284030350895772996212794860896633667032632908764558039800663729788483329652185011926199145831814013922459309288861131330398168119026091538672387669056426754123567557701651505453070577071493351898085447379033897307875671958173680837491278189533517517486691874520905831213179649904475817073595133381355890456541783008751303015260767981660761127970148490443889616622489181241229841115429802366894360296009625284726095602661592238116401694389212328211116524960630938757203646432792959502807896951934505198463955901584653503887773035543543564756781769355329431894307439511525939633872541616544041508974058326891754906393332204624412392926899520998440367771296026097902851467193754007284661512938931216072068871873082165050073503990051337260763959757006025387674156058921756306830243372019743672578683095471025465384538926364544034760575134414855365052816090160308969403808242346477566146889621852406289766219610193957316367859587170367690508726898657202843145586589211609084645241313669537083677330528390196807168103768424603499037885152939026462213861937562356192706261620801257778634462251498182511542376101526006365235909761762576156032381604741023354885204694552711308417804604061002446628140858701953288422045354066270194461650674238596957605956545479263674553578908329541766916618591521012708733138981887453717740413878342298919605995918841181360804434521449106578530129968079532441870344983396543450190889729625034810812904354778949005229066532414559258732008999613456679530140767436369177362435534600573767121668931129179814967655523022712068168415797902890550361367389968623748723711619339210269629615023868259298367316039228424718115784730315187625460179749005257877904383466877702184225606591709122389893554017116619235820435800371916055665539827854684194629206991427629030115514819848671081501406639604900275148744265598704983632666512760476867926595177453723558356693655546111154709754281955678389574344393450806934346457080963424360174104830028721098371674855865687788482081784587546041406193112765366526669870857084089884194854887646706557475158236955981531899702625358773475614954372888230393914564531802659131937998198600745871097545858480348512879277897137698666115827719358639977386117013940980756862510143517004898391277155993611289842031742613132288359286520875890882206804978252861004250770448953874149421588092102416711860085409299029358198826868711938308290855218960504565115830619360579683293518879396640676790710949720161531770607883175161773151608878404582692459687910445443059507328626082529580522653779300198049833660934629125952665590626194868545740769638096046623256587639252061432663826631082544382221016342807002800383784333949981866178192610291253257826240086345258040855217909074869247500923477169406298509001085923437029582523327755687383188192125519528265195217144061609456788739523238468029580962353934447630484880982776601184219177346966915929936278969571147014831150061988677820861057358438186236895999830261501917713862142008506875456765517014804928179135222274938581689765318814993875199851968082347050616994534518795015674077299679313331575288169702460883268331511304208770687907134257715741329394225873244491496544991979961535863195391747335205252919153203039877773277099892292152708179280159321960726292038980305535329376958385418175242651553789774805930335931401417617821531719497801100418768003185226735866579974918059101592819520820796560524118059738255926347611001778988236557379627251095641458110240944798054462576155585851276451995849464799215680030616933184898513032914384321160058122569857211197767941766982667390484403536782249962348986702887141029360125602484201441368679165341136866305193584015596974570289517924390915854148930043457019359007477480302001785774169461509996426565231837962950521168465442838063726054576652257753508204526700537122087881440224277498182539111141861626563566908478146816417976202107863624167778056883412550404729227314270947176148947682776002604146516932004599644328625870346162511854049861003562121257015888219802676794002902578243198474697526968252063807248051759252499459975401007036161089021694188245458788606119891765237019442577775968520066582481859606206708681042270004055738370720994562699996880607528938219327109156413222828408927823139787010187750121663140423399284401802239375615691379087796252355843731350164731150721917055707081070246058742011820491718324790187969027296516148882196088662597751668544080609332776999767744824748683346348466571295057499910388153093996584437740051073587033954090949412731398514992964114604277765695001887393010035762448289701198967970847750501168990489467067186227442136933254029581564630913229498268087953206205440276390014064667653301961459721203203577038444034768442808620053338624175484130102838250318090909674586722964747749244983846202777207418076230455441768961780262974433107948520155839669737348762601403021673687443783957345618096347533945486218863883561289305046683231013585399175350987659775594258631891787270941804701011328291280867742414363779607390232014034020284933159234034922786809664498125357844942068232928301213036933292157249536938360875980901095544292374658380822381453221768758238441757322425336709683880027008519110272415879007203891420538349118691032191049530739143158837388505243240835323198316399197978180359927558946362467424259395758684917604086222137151999162714237117315463755378984720682078566922366475738914760683277304939423126559641407818089620231236626305961841142539322787669398521402117129910610518584275475284370316951325798886898655674501480795773061186962178225720614406745346095513918070072388523168466922116991067073408832380737411200395804302581746279926287171232563601163207245684693940521035546405739991185282622218588334303539834319579525015888086638179909650867365294275633045100351200503596699260019854770195954576386837738316942324902655201650658328085995438863841341748126111178367680658959335678917087394325142042929018039948563583134659273246450947432259455988092242201894562982557461102557569508145251231074864603167661557068786750613772892769562449562197808309372208537434237127244843469650122748820143659073223518616269176609957364399661190956881347417775023066311270818012699384239467264257113107108950565307253049010742100152427424848035578033237062190935512159979246700378947302146686273059095655469965785476463272977547100397896859985248777686852631878987327245876865014977959632016606993542503574190475119884618162367291504316812024291476754224921195029106519475040497875540251200997725413333791344283357913553293395538707393338345908729570661722081639440720754807217361094877892761962943738589093195547223210052883289236438463746968264732164850260015852942363357716093105878857496254370607216817229077150640950267593301536645607054697132174412730123478727825918049896998115731587919521140402916836854009643998512587773558764699317795910832950703640635418202310187191596738657948263290399229352966550803988553451740584729482292326324412875360101503044135835255251346334466858167571205307370454318502681373924379095145821970607522744207551595446407790634163937075531573344435545181393988132298703932582917966062630550772624520443246665222608642574372419320040691541166122486119420406347324323913908508473477314907658632540959870488532607168690361994817744544122708752602886085452009605211856851999556397770151966385517943771212204580676239350141706997409046795301561421526161627346990358379801895420533981948522515361588867921380271067238320213458910093240426127866425432762416986608959646794104788239464030399934790772281086362284379189608530482864311835639915580592705671437851244277846446727074451850413441418411980778649308402999569937895191047634040255852214242702170181634119012406000871697821001073343483243528813075947494609386141231767980605776533580547969765977697071681274645240338160906816865009093078673190171888089718569230448430471947327415130711937551420774546043950529253932099498234246797265321817415652843376375645440875211698405150245594161940808320209310325100401845948692369707330584189161025296356042652050415831054032775612970432665687733877129004201513376423734932298599947111059561631634666924607471063732471327924123166343068542049465414839990310571150325653916547852717439918306770426380607753848227206457941469033699456933262099136971110101444793298525679637659853905523281843247419667572769657043806897411747149363561368244528510480135560882077953210457407399188269849494642464665504605894022932689172233994838317414330803829814414450581780805248498879649634553853616597376025916440942028012343924687686705349445082384719513194341614599308574873727854051883554766891412574369820867485666356313958563656921512643800416305727828551113886273952427941438088491468512435078056129508789330558409687410145688473031788522798837600597909735349576362271602315309460788118649202018632314853671484470824284918218267285988857158978908168797993733999074744388812736753347953469907109510737254485628828461027305653501019840201861064166423717970404325879253639101715336587308059442092927698526139671366589668250651982588288966656177790907297073620370378173409176772000079706700333871912865150029439073412657889882713214822358808532309302951047447589410758399656442280781322165280443267575979780589463678536378680051646432815284439370762826970094355069979600314684174589679208251988646709589483896058781430839878042106013606310311846142985822357601006846031968906613763436163278521193261112267955411150469129541293606556361022288694893932152680978416619975822258880216946478822802862837052257613574041582664080537058034404545155944870572740643297290604704977471109472678129925169549585878075563110666019538577522345939423484287237259428955749467751513092921781800067579652230883478337210836934227547324802107577962853593690020194878961442400701145711503675936746430265472919144228194523093525840338546710887604663380332529161524389647052094918597514984536910781168237319118143669056136769784309019343786998590315057538887114456333083341658409577663950634625574065527176605838600802292758120364401676477440889132469212347574805287568562470168359379414385591802872072541086613769755135332651514282219442677045750964955087093743737881549676410855372930496758818422576106747176289731510688019416134559718186532891722321639969541620783928928816054267334565404903408033232821353567936107430715297382461161926368707941534109197144973955950322885973015627229607416268878068313610295469886350569356094788524769782128094985363827051937591561262117586727442641747159540181669246541205795331945933485277541773356120323325986086411374108565800221970460240201891752974323446370626746289530433672817658343607531597980293047635566615487397436508440524898252938749914160960338948501507539565438428151817493803879756635871960123933300873512604833181708234067260751009170903370549081505465096238820398750954994094669345844597676326247565607975309735513151763577881311522786739499307964415471977489207811695086028841339402242373795898850235729345987451189275737331783025502276747409341780311041231922014015765836473850636098559574448376268724137065060912657940455255378432172665120347419546658024081433716037411633495508603928334696509799341334140579313461465598009468442062989813084094867927848090068804448138457361786277269284801187645853336126114397439997100790116516836435432188352320229609438571914530568728072760098658988042375149270738628595406363853219423820220698551112626425904472776136851859916155804671730028148182699093727297407622887197463952311420814717213579405004672820355951950184525978698624582375487441548779572410316517271870775863636087894609434940815084432090889943056699851382676801581248615078269919945375356076217688776442377865030289111238699226131666951710513718014542925165801169136261334618402138307275880891907116738480164640254016410413217554837770426366933956300665798590817723775395744445868733616120955883913280857894251867335465601303222340298788902970220041932587555356587456873471045051746596003598366805900219041891387119136498837434850285301390548238457022940847997575305059600288489361307303832564846127927689609916093498722387708266986878735110044843088488967690637420389768158972595908690937848881666459701773148678730460493462641791712659630729918842418046165170511699468251043286797682309209773005140250133051008562517140979872529902871730815068820669141351543271559712854908386274054046318631711728330982283291829398534706881647448063995418944078628608822930941427035826076124223177439022542192675960029502705921253702292049174376556093799562661399601493732137617357382349284072465891955592632825574644426248120048137374700595287206138572157468274174083396140900918311337255941491636060181818075038526605053385699513105980807780844055265042335599755745677454091245635035267875069741318677921447007505437098212542941655134780897498957794110524497532721986959004656509966687707946247781792785680735328521121424250009652164412900957784349644056223923839166794634660282465583380533618445150784480994521805102144872908095728020348952516713690378068806517783633346919926515509664871589750685193005670480792960135931408647543929504826219620516511400367650589373063219627927652011315880861637404006653472718677634185563230926684412945177218358571720668774576752877406293719726885819914113943495991715960903432761906281508911673697957144836266539361640369297828626078792115253074708395648213899503671342873465967812339644283779484538855254173665819900018591110502894991208338686171395287544965803302951597693262445521068216673346592165938478766797025794916838695095570446273748395039275411317503360827174336772722321551582933185042114809013361040404051204229842456068828383110942102601286329606130450882911524190163899790285533039871918911603167209296496111538681680621749481642215347379960372909087434398841270610990367411212941693668048102342720759882581128913378824191309468240333344230672251007773486089353999194564649136307656176432903819041629289087539857311764177090840176460971181477728944619456457876413688840343604278025299707517406210574519982422464462181735495480583687869624922042146400740827642975684564121283091565170083030438867141682992532918612551631734835005697170272713279339766488450516229625361621163181384156048074159976307358799458747049406661684031341669733096674508939453571217438463462048813514964043339432123124130804925390578710230581045616436698293820971000323189254378398676332497369025586174455385124013888460088396119984528290440316660992747317131910368708325643716278145806202236717536761856554381260063273348833882695357072620295382435199119469708941331625139182081091487008147629896899258575034426854179690942272805329796484289912318546544406753270806034976679823550824057639643088801690279617370105974635407268516418306153451225900592157701105518139609762359971274610929143733823109723695039205368379146941414581746192772887105214054680486817154967333235695590061877033616525583492365310439021143918503562912119179726241128311071065814530450086790731270249800781300291040320170138230855755270117007897340064886615270114945456135119746508269425009050761896047534288143298389817677010188109165568510462649910687775180052487516401491739730037477440496385646840562790023389003347431054345275403137467223705369247925009796613145053905480404540929284125499670624285048547246971785833584999835944642920053857630666857506855109247003572293169197380916406263936430819058341431832289362158055374798243043849908863121460224960884092588601740100486529889743972286730923408628519032945742995192981847178797340809019261807354969839212993720274089170516756617286145402923734661498260163340309857002712592338946193406834865784806645741608657430112863782102331699511131159838269601850935289975942197471222771372221237923995051343233186954903954651475197467094054584556032309674643371734228216881362124117842992861696686294797351645989090734359015870929727565467827661170241154790146846361268609309030937890297170676984838510113311847308551796007608270323491561636252507948085246975120423535426474905473447666300623810948590414152667313744161447645684898680591764999085998564691576355165945932657789651842891818375640076563656647099681551286917499076674960144366289129304206261902629484508151117610182967052570627401989900880064731646335009005127929685615236803441664001390752196749116603140677181112854898358768970719464210228680676509929567660370257777219127252283691712897337441789016184203419415520003436039784514593359050160982535174023947060901092920478979479645740058975307439506454313181801938056462312196311289782818437254590512724639692229484038582798283316128403184754945230056365617010778781241829325255977805351911503733234266515361544584309663004319465288386909858289409566020526241416942523706189970744505108508064196925275172941584160868223586315416411113553018609744082750737803479697266266950271360199915101835251583045242715094412619383767648293634359479739715631517279335484971280288271295340100498245579993315056910955621571218243033223418210842300236991082696256663803848129561844812001499037786350297463311745643530843702424256222122415401419220119841020349569265615307693342985563335028589594196391224988583367496260730650843825730793515076732769892530233215427783030879549776612859476921020417675227871753835927072674510427211791159696447588354458835395046529327100304568324033189683803017360209165737488147052540682430201330524555131030580425094613076434107103251135287303600834331525299761089880232089527259457340909219488087085243388386110689857816476847745440046846184371504214699673024732904663520254799903971026866545145561721655676119679312522174750353821217146031800147064813055048603187551655233289655308874029396294468344987906073063245363798269430651964851981187248253599522373813896219674366838066984773354265832450492639087652653102426525220266188720725013640300807360484393259014698268651657084984496859888810903674688340671038936943450311015899807166816576279992907089375001457986093216332601608384278540461376285647911983777645561528434701131171702746567083966020180175783607608370361519933738965960082943942097937344613806761391798028428829188503599907090779529688145665941950151545125212767073563027768130522351256347844615797673625171000464173967435078315805720474789587152240996214242712790523240474825877573710338001281265157423475815454011188774092731007653012544989972124572547254654334680212136862665267335709343966126889022043120130177373510277359985834787424444570685461051720718322259871156991265920547600308673239850623218306496838847758049486600480655199069624401546703045619187402857554955486305903860212994939275145454659083515909689994744752016615923328405882699019633973749804443547133765072101475808269842432635233921776270932059047992782089424349036740536895896055834172833398709013146101214842573433785487413398667581091828944883214901792506233452918696735215040664014650625623180582019135962946932802558116463337010869191172237829197254479056447038240042003812142770397443724077199851240012828925697576003529284483903847480530105189090939692085777320586705673936729942260777031840071505300181564405551185345896213934059199030803918172334206076399484808168388395009338020408418198403063299282943643641416366132662396952961075723565464748885764500897049384888361892800482315232823569327701591001949269150940993532466025941289481279414889988847477179010508058224038605679773399084972841779619257372868872551495139488836081781810193735323428260676557438440559322350304355704906864282937355157945098128566174531338679119993395714801040945928889883176251430989769862204816474255306770419685002430216005715751870627616103210932800238590230268647486284402852301481819093857381868436520244017857289612510394039823925151612461324244767211811363967765377781420633644498647804775131012234445919649969985622848300907564671692422212286199161490033058294800028061018689396617231632144135857042405433790907261890656576471102679440071395425220560309628345575276050104091774810042863166594682455034484190573263947364548734642496293341902929739489880150527979262834651255953784706344538166120782563656077325566910471579182309405279013870474077125245717844429792847800863641236579244260682006652195906561205078872874409070753812196306118728935954485138161996444290009758905767772549632815722722444258376925695496712037695296147315178064435111921203031880744828548095053263779752129671427369903652802193718080532745629050398578125499746304839215711193028570812909439071523561793891652889457894279550888725062126775408448948265978561287494830493930263992542763955189010416922071344493364232510408567086270392019201627474890230619903817261828261335296877156282617252496907992969298969618382225192228305550057466412741180366619780328973304482058946008464394798379490696811032155128831278745572328389705533953797561128753414233368712297826223428903703947160465730354401534900190102070808334785324256897346766588137597049628819513193849551443949825266769071655898999428543466383687538142317003318272668444350048226789974982759907321740414243391540040245887408757812111175691722917940701794573854039115296732599760395186061107928573711209199144506177291027689631259155010461669302287615212868060780423941043708376027347700894790117833905122442256247207785216957356000510542004075646514301493892766502735938194499668542385445988292176206060512799746013381087222228117596128263868202399796024396843285769010747620975144104639521556282784591558309592807015818369652968944893402804535400761756391558452655732228915506267729419078828246294896877491408749658892499570022950215702950577230114648481493999373111328648987104501391502359186863615002761441117699312639462846103116649667802983287654134434740957529586411722833684732376921377199594953051807843427925486441705605118764358638298321761298339986206803434852192794238067601416562929669892784744890551719263892588038728721790389560570358428659830668887786968902131978988307457904640192155485885289676887397487695895574871918417230494190103023602195467130783036479531171501682670275234939121197222693432914285699637035033119889643792233261512364936521425396992507023925628509101894861292878694828263181974650436909711168562799066965523635651494877674061828567984547860470129099475967511068478647085764216018932417068881577572068536705626192701025623667720390776032353932634065457406316733980960293566109515294077604940731943507288545074268768253896494569148206506157398875156841973228808697691848819008408594888599881783088585084769244744835169925025288420609153074404786149163099867252898887694980675173548877788700493783273688812030167433597384519334082016058266404191481313301379295641897271867694631866656846919033189202291857696428388898795541999138526609804806050276874481076900975826984125784279739046705946735087565127505757125160078930897409660171754600827889111963136138093275183232992772374261152192894126667207041309731768945438404217586871626809520272427808680300496919179089071575872033301805456048558002218627777425385647377180471612153389266676412715111129439404540841654450285960629662804781990288205410696608514271518205328109091758646584751004320137706071529346711975790090539438068313369807729093116869204275772509503741389802264105800475330552985464515299267874863138153481681143734322177667533980942040626126223229940966477169222321399124148028353280167620497968252036406162767420869062295323919077966092554523646439425120584266786535996479043896861639315233506507490884351776637032241635409414733798915718931009726513413220926506669856720109221943133602908617451554616257353833631979032053405934442031985978272951513674239808348386882586043625220534579749631945498422938827438080877212156749057125043811919646848955093968589852788864466126563212047509252065120871188932940971219252198206910200507065639698272910136184106267596826541071163019518609790584734141508033042867422082884801982537983997571136649471464058053530334451650624393492345618988241495691417191120625565249438707285613320535704803332223574095641512296618274073170412238946282639084965278362793041478778396052988969213202405130458954714932270300017681655822111851379439740145437971052804181766559396600833044368477188415616260840201797639366676762458551295008697730109348195541119946432078331316520730753724764263367923221345821274603222815139240029966482324094387809671364821192885204358103962209266579798670258216429368306420161014304210303053658985183151956741863625083629265074199923234975672829982536464024533150665613269284561700806591152123734411973787871417494208608159025842034239416881661588449406259128647419043771687167396712365071965450330584795979294067814114606549844224726256271091011866417599283670209284710175773867070498322497880193166491705879076874695514364594867524614707508843538555316490328808185319822537486053489540109856357055220945856688137672344197574007057305868641444068189079319367511973626033535326045502927799063875307891539898635750109266204209671296611517088354736855570298065470507701245054357571116780615009338327177163063292251044618501665599386940752317105142172312319493796304856936322867143656452147811549058121453779150685609730406210014451755235696097358135567860141981674220389512474217170460857340477370237775655806876733243006099093228137148257782388249601044035070265638488495853731004563239899739595123802625470114985425672700411868875742417216576832245100091651406212921627130869617856344892795981045630685114767354287055878706500961516690045324090113745880292788334899761623008914884739167252907593343570240344028274416171448789834195069014754418831101595085566806536680008223854651900436968261423609674946505680559292070631149264556051168985569212747956126267575886036378665538774928523626971082310293801268525828031572419164592062871015021228197791581470795431562776194967642606691612614955846970188460394629437015298600400477567091838299189590090486645527239326587189776168335646068062873613947240104643343698592000639061157107844183144426115652209164511725318866309783194018967074386151656551414737699710065285906069400827281035760984534241966151226714595087214343235976667974496681599595022993189542757194505563734005173540437107451209970718804942566220486409472144281942718937343487620427111651955985947254731430935696239035585189436995088305263117033943670576563774352340970780405916925808722168961087118478202532404659389979574663607781018169575387149805015409492901341674621463795914333964055156349340546930789315220274957107378972593863777283932158294273625757691275185357562629605691699767009721463699354122791091717993049724265678200703905025539496005500110310875994764961465656096573661020972120148621264450194719652235565202994974791935845869038565206962820361329763211865669848519836533309086867124522485180295976877151748418411061804987969081518380753232688753682062139614059299162713653867320581847655753028921421452975708298390555078916761386821297922784848770914567370609251833848229438334637792464224881902619268752460198486088261159067688855944221646233029248258215093422317147419914083942635612727325777130836453134512059795110991008975285049083254092639640567570067407947882717143184838215764553476104626560911161929242833437278532684520110252419011027873122276916234480164985246316192189260980230687965012289543323968467024762709714091570125046430685248238514848179309107938705706117727416572388581018632641128424183375877359175183457533629370653827218731840917917422099708051090733671015598537597922278742928311447834278205359598960962620623988625363552288907581902272062505539825087493023351354111691293488766473934485026303575693037515595531288758317329908130807723302745867556536684194957418067494838689344089235394546892521014406841956801050905456121098889708758749602327568121439036033383576968326219173544383813626015894835007568833413579358105608972205707670242561685465848852047617445214848322468139883145290390232821020157902341049300833230689812684424204590023280993765743227557203742048161035674337703236706953006606166510743550925580418134560609304420209635827664198700270075257375403011833007084011582183879183858442349791648105793933064038342282384000456661634269630913279861129402503017296850332197222513146689352639512835270548361903631537065579709333086347791294157739039949773702288754418727834448763134876886045318929639324614977855026051611053567191747475518737513782653381572785167249411416323363289598022807009591849500989769843908166890249955092215403941663670516762754565246470906270885122439071231348535378621603143235453483878170841742866690313002605635269256719174164449964305295101686236687622846280663153853268530260209219024214863095243800319702655138429353230441098418638702161144413800079520037247051112078329635912635764019823706109728448245198020502973356516939777497109294244191582335491539860600033665943887154144627568124629783647012506543382552981453339872789382332886817349517694324673814797843320547370321036484963526178217311306823460895051291675561623141693871083490026560809660059695402425139217845472952382291730962926809162611916803705239064299739530247208065579781061523987990426332161044497847296517643089837222381292469116693613977336224077389286725686179009329883514813089170770027413066569716847587227209674432537322823807336830814885917374529687872443555416826414100844863208650421306213145900892961331061502584104874683036146053112444022760704135923774249957401674398269541702832990364865099501678328189790392599049788767973694096460635746360037184265118916709256381620093044227689451295817550004055995140973513045184933823780967608343179038828051032725218035625556975692887048483792178771837429342124309517940640788482208969836538097164984874076445908370504087140281790817868985503241131868051164302699977877061626707575809409852265688804461894780488139517904085874322711464610698935851888969911073075046970084069611263181691619669830617373730311780109629643270755658194300278418989191253920093624095720471800228739369358293932970561492187908859197682751469086585843792131131468395467764226935591834908693930721466146079507604913237821505761760225751336629376279319310418207304270741325099979656299455982409279883613433539324881230640703284394221617825499149582284461113694516869309070187808777490383464331050213851370083499539614818052720982755465161060098502198033966549682865424051334532284795311450436534250955482023025336430619856015359806132307766905022242162180657281666891076915140310449956737063512735985477022979191869755874987460002492812289782575194886717230973961213693957816664927670946148823416983482979790890293161744508867349565915752746935407551601118517184305418271807080130312947435891394227240811697511838828230833758834138692378798474155644100924392575996758067593600065040591228506193503703255253228559807829243446138347756261646267229489823105417837294069292538848466406113055525066132983722398219211303851545369344134412385903319732346130775993168315240270436452217536698800103289403011456862670145271166124903051713520661056438001613535188434340165479452395432935104849968154568540407655437691903964327671357541387466370102945069548483409740403253180069440445113137128841494084608518746678717324181232940554087190029406013538865209740763799551408759905466269748441761579688920429325610863684758235680251372928316601998800902178651662894425812825561295908544236897312737687475546707191433210890321958520219763064571245976895336697762461654472551724926609021834302706614290083535375544731979847618742786841416715014146263138208816479111592989227162304511476915956947112306084111211051847175866613880222986414438676923982023859402873690079397420144813771139444785243236192199589699094231578868783630049784359043429840097000371833389563269020241549568333609386343207609372829600906424917963945307256377314457917718456230317753311102764366434815140598396659036325991081343837602790447073545414678574980343377720804678774637795757069435524006804388286875425521132188866205969341622459635352777266693140111277247217455943159831275754805709037201482305246736424195793762110367649707316639282351141124112257778236611399818794577167319950952448616575323390375112032351338297307821364713887402172562816713776295719940825246973040908073388659729265375286089604609871769383568550082147025018929234891673504220460720390188088370003778460146652109310774612651856675308368560643602978906796971183174020542339584499125491575254220761490531248101283744886091493901830386569040592745233881456481772690142449822757693713957142371507497947101690476000409762314436190038003495731136725706572437000934334621082671514765213653452930408894972236563845120431669679107279024458919309227162992330295840691148320386050682553347339380748781773717456362917461017366081219968530554380957027422532311136907847606287921872025704419137181522852874421115661053268489617382100161434726041289116500699697647384364597074916887660869526768390202614337419160912999442193776823548101760044773297800766383264551484634134359085061419934836049368846654568306475104360692709801911748119173060475069960755713877052822131097223411983516502472200274594899752739245587725106748870971804122686937383322611224235540059430777556535357000557542669286126247133220105970013758859306111284958299301781473983643194867058412244795168394659434631767868073707561957998936153907144728061044936553591100367669002072246364823856847847595814289775136401552368481045563452784327828305138636083454052191621025219276539344096469976843013429778113275044823614013408366057266593595224687482154154164130424062617002183757323704954468898662154012146762580221312645798745771030258423881639075313446879998823612730993093167502165611920838549237372734232826134016298831347849937315226368713153251551159392907894420198043224631478338513252790384754366151808609269015152862675380714237498801758791842398863353340428883130353937168771368324017693961571036070453479547445982553404983142967948950476681301425871330801589410642488056557361675359395406418228091402447372806774242148904627673903718695575962143841912489975488802413105060662688346098556664569360433129616341451768177307469548463329186386963963037320468365600246338408853507548532407171306383201573385172178192233446994830831570128077593726757646660312714364977434526606391836270526849326590856994974580901883086622136384999868611173060297576862395879896002227726489349680985854636129062986268690734987043407450341670128535520009848587573190673017144959740194165488717983499449442885393957630958063805968638673149415216394726162279020975259735224636738908622734886815110013872831495697300555809335281139841123342999849454841508472112873383197070286254505093442051112042461081253238171975105710846491903515925570761323560563540903397200074028137428853533739917643189155546995710439611617977087039833542138477332805218334322660466684644026937537727740714406550941245864007344702717939331541784582461488582822369752728699241892107877879581013237629509476927861590056048609879291253233327249598240926230183178619410547052204041807079668826700969674170356493133926427983443646239775915083990010988569978471894625088494776140567981582763552250514705008155469267171125558292878975283266459801021838833712137912101865931775674825675435911910170795112069016167119954962146568475380727529502198182686536193572016122767190053736630612800276727003895741847787839510672512042995861956729864789607051193777385850966624767521971960743863018453302999879443608994322113153593867864205061962969820951518982464935449520002847867504473283268303637852474594973650393859494339851978168884664234063634033009432852351311290027048836678239371102125679711115607313491115088472814552657327611299001623922528868884668240326250812874759733044062052599557718761813556943823721010770845991890734974957283917898228874714031099884187541189294873128248714111545311865124069729268469558957363230694747748580349521117750903751498425087722365158163904488106681469647752124666910937712404356645355436629417794635965339285126408261493331097941080078492953279932456221282803872786364744635692713540441839817384009576875138357012232580683871064063231237175175788957275755962069861379533137575502699730808735667977736298177743538348458312535920225165899351754929703823913002505842603531254497225195528516478789512045749468059663012588712504019186195089028145480066534544274745250581597015072574108846395995017902518583061997058941333157669262203784686443769003650066100754398673832945734525877693839294674929963148158434855866986836593920044311986022508472000894765283250484330647619416591734374617886493930262802460630418462356373580362406456543257380251587147233166705869143041173803823263364231871108047790782278465754552659035333817016561378859220904481077121827972817203692214586889380791465519042624598662194439446636593241338082645950154728046719879217657473738053708710867872572137659252725936616949373081833417621827062214990939413121895177171185700458804170399025483452512877861943971748457485671410849553241298162991623763294358939109241389736762240474081038880633516986411333939969006550832981994952706096512537812173714293839248480225327643512755699054369718761724518387152051993425963505419572859951131998295738150025489365160225269212476292820274189684220419926776954385497281232925227229484084399036947392986080999519746752986635881409069731922908042752617248213516030905962129054986248580306411675501759552227456239159648137708989112606673535603535704115164121934398294216039832300932283130546900273917064757337878200738421945549432482669379583947082837563935632233336597691483019111230670694378050376301652710614727740250717772522744334695816708377361221600800936321871863125443816861880105841328830839648115613271035040594536618577454508017089269469920311870690225180500675592793443296473180560968338614075962171685681990569001082207219616817875511250769756394741880280994244302714154030888653302586565229545044366336352104757565908480814083521500117711519117087094429428188626250040222787775608439488419157054826319277602261588176043072703303798617453571221085615013177417957450483686311667493048015977099706623419846876138449373773093397859742628373593178807633911513759104885480062180445587241397439004884703455126428956161705786636576776565858538630849969811012097439109694053483450683954393596586851085653471665489293843419319828372433391324274518220928515520614922674360049884948471025109374387013933887044968659578003246583291549962960911015649825390087308279896629866202010620300493099739469083802512293137033437199099022411982164322534343612482612687520201053797298067555209440049860008180326691106533631336478424259446973320064509596415000236029705376457923411827643990822337312579631723573119230073794070519510111038095029466871242288720709910423235306166908889471170892667821449314290090536718760203135156494653776582737480950615759870523013644218531187675730815227084478519427470768560840962075783003927532658542817861872662659644597500132063108035262557450153714409231669401322063092809091529940858177444543993863905727700785274432138006354200115835894078437248423043732142120095652861270406417522837685566002724955706275960251181140247265283969516582888062160915884319494296004705612564464961514405644228478708187964865014640104708021822232410542213382123056290742576036275546930044405529085131095649754095687556790776142504936514618829789990571120037230582539280543026178358988080003465228654319436622910008338680490931615251111875184592928329978038714348127412137448640339296543884437593336471870406335825113565370677205736100113062543888685376483406044552153519953295201943764011848562287935572455884980669330202332820766371149631746572899772896092858022703067996822181899828186799509602644329562518352914289765862030708859364151030211471396373477118269701006471625321476554481181345300907964819669128051501282774227424093159401277503803015572271484588682751469515719998294797935164861436926255945837115421440682488031011559106395907972381173595523749129772083950586891199824055790658909231367156671275037290996518935970265252468996899086874305350797638938800073193112490867139255477541916754639399468836311870213367114669040457797135663982573969643207827534649940689640734373454801452532679923705365231051611924064050295044180597123320870854896423658589223309493254270330885764781187742895653333206720933521485978376350955010671813652069337581507991600043504855639418961431097757467444229701419251269836249310699225885559112726222857874030061562260724465792023496362192333365920192897761918499044193906467783531998517603295441426448137980145130273116611048042195819010464612038942915182699329939268905262735077513382160976206115246782396881386045430094850476965326901026599874902662695736390997034693190751582972961732562414573452047724093819965986533473105658763790815222624833174441561531720555868083059485723078530462403528284192643675951466712913385773910905962948238246631722773551226508336725413042361279953970566664685908401723689571482774956527549675564587143436308633504526443729047989464263577793384739656142862851680317810139108340837025028350234679150220242478269204258090281755701206608567717251192844036531878976399920293444419530601646544343627225324736389738036108584954980410051444550059700107931479085339168541557416958776496625904213530038141279475752434314037451545288694460500747699078325669393676296913839563812110956872805236694250561661308433894162271676969427881430613999818642149607890571469295558417469677267598650665716200387983111386217576131536628115995773145561034116655078988927398193011721013020272914062361010068354624988831126623071914681369379484770590352193298575705324018304381698368079287267739388275069760393956775577681114816254842954649762873116559175859367253221489311151863222313246603417047935840595774209651808538879547305880567201570676470155715756251242618669221027800140453383023437106767789789765652795051370003449507617659659804141509699385358940807691097521667953714142750501451050157431226294176031638454187719015051876201768523180063820317120948652313698737150737351842559956347696380974192770294466212885614914324383048538170634974118821055174668009729700090288942059045172687750444703501628765339074515819495843940747857934161679146304357010551438139011723329523602179520458997460897365764948387089355036634353849728932497171351465563651524772938813308198170772968977998903224885119521663153097437565446188302359118035475308833015949084846339376917121605997463337239871652676211897647429688373192713706308295077517876164227687365231171994669737273655452977981237450897012608373042680824890734001537061409546795202722308976505218796635768609774923499337514741541336809959766185951801128694611708933660807734068032881058319464916750512153610410445685410838908014287638571464827516895877026583834847928177323160107519322601576134688356483752445189696488593835333408005863920944956169166326324506465143736540641530859568923765505582413988652577063040824460292769082326331014992490578056902207092980639040528549037621868197514159351624325374274463692068705124908232410302867284769443240704717750503720194485334546263946294936300537758134597870272681793556679215677907727772846524235253285025028383291873433173707068487245352831715713664736024507891000737004490107391316433657186639993639370406209796342092006924955826697777485734923442729193802356917379699723113348351724172726266961321776080943795679828278198212418580327841736963917237709949657229739942951691875288458689884030092497793053758885586431188857131327466078765737286129226944648739282946766763735787169561117655982653578982087824085060718311343319936361480338952257665624088402173462742885912927703395602741660452792440834126676289871103541557024562928263401105953856175040048442592127856642851203901947001177701912958828480794487122721908354630334528676995229561714886386878956072830770709225317169003362889938657383209594277068134441186590964989132281552652996908895338790755274026552244533847619977397278755915388356295668853378871546363684191172001601143125602647808259653290174110235346008674140691262757400184405435388535079295881209809519579369030100420833805717702106611959356154000712773231387585910851518995063082338290251949610396077893507793200666341627518882509964611319736549179774827062587725069698747501442716989108065061045333149877449966054112316304489441176667357816899415842995698784393518076448675031757076570537710911128238042751880102670850692969394732860944492964993002542334189090435906018734652778566264136690273012594235663044204421029288612774658915361868185313965253486367481064334295536517582624448099525622688611701262166581025991379434031913796056560196775245005098704470926996908922745691452465484256381912023412703444537203342131285098926299063271498174093901116223640362072591620238951243865723119466787538550464957235367409231371706299243832825676705726946069052083685333796590089786260673658177851869157432621796774882802082244066407417053842731794631289083304709949462556775225682871231629914110146381847562755032433338461283477411922632296776516072569700668507517189968869033955883391373178132830141727169950608489037546410198636490584375420283649907234023685451330209193321766504976681482189637371273404833095087912203159711175342247293717598804761062070740565346994219704420545560472086105073168015133199428700136766974797635035615346473270533848505868404426353907313480738125506799930964218867772341182458196744728354198318663930717801332565328402916111181051537277129436943875129397965842449426136488466002959651039925056907284041161302183646577795444207928827253410755362680082880505524990235504413029204732154914826103170721254647606969085367673997846601811464181490128674297704810259581323678375078824831139228403062396321399996010186948361711060022026524026146059145168197681640436057402291981551389363468178065813377557553482452531135796830726108919547256615562732046894048968325242370608147531066917051410969222126505415338366022852759455937236982623480090959035812019732518433393817048726176462553614426997285894111800389588611813279981752645314969682914349980196635518024080827376544873624875613276391908344970511588849681761179124581418134992026336493620359820957251400599188731605152609637034820664530228348816538754720042732775916071662832757710731419997465971738954756795307146477737346099720298745619891673010219585811775756364075265966367951811917592275533492542061525180021710868297227608330436938806898857159551701728058862283171399408939918059482168987270467782357813352645499533285685264654832860111636129051007835046266082904233551960229588216418301617799286388879651628840265930158166663216926665696328958782793834684716769977825499042560202984529771751636528510721716577186155680128430273007207439854148636469218860783146799481530280462413504774541059138989768240708528161235154164014163458496868350175317935752494754618291576027541947417158724900630122663815245022992720691198854187076728590003934204442121695171164908667814706260004215408809795924485049838763473337092169699022679426997306575014900966510857692318380478172676421847119428304821932300715688625596420835938331043349111700012947354671654301080843718420632940834476655803450151617482459690907246427521349779937546329702280773011482394362897763701608838377936787325412173062158966901863044092994118242898844637357915468737378161690166496801557999318908625750023053433250856467147925237632676965109183621923008044202763519457542506164824145593925272047201672893462275547560915343824721439977080819775978931925216572711505036664880288265912181215812780772340694045529806677692600002446835686168703543886880226641993644850510720054503745667583372667055679566790825741550223408689739693592509758198050628078406077642614540925078042218060052551699814237052073171118422061619045492556391688372056611655201570473801230105381001452353296455196583355334423873068178409471879037888482025550041353280133630101116573937204841274158526554337375921206863668695887324791204062248204160626578318639779058897143738605160510297178814536045333040233703362293262661564832138219133136708300920223953404742600871100264279970643854086656955419228144039925287027116876639375032110594580022875946034977088013769805930908512275849411647227652726562518903529966876971185967649297575454570982665208861719025823778676022598600107306903419908584873637188710867679535414664789777822886047682829942977318295425837278948245597165320420658428250308654985104377293759217281662658709621693835845667202717358160639609273495368148486991067187015645574534128898429818137615178452710119536563581879181495859205702045880563844169437161288271811988425894835991425268283223304422814612128922373746857516489713114800929448225299441049759347274682957904118761075559829312940737346268645946647881495128067385109903704800793117506674709369406084701274379788516831385622222443437691889281926297058245984698757434102177951158792831548086620609229165049802339305034125501587848331031364968197919309787250574904015940445239131074546246731575982746339507331620303505139776929157176487007188431586507590990131981422568775747934134248945132539791568219001398538828056002011547040975501211262591503035426053815913343275571625136507778733784823727739746468250067659683912356870545510450368716675219054736622225169020783302990508940942877366708341478992043883267255624056409796414003921084250155118433468521526387899950840355624575914465367445921540514912350799605160289951229469937723968117955818706265100756316799245341549034042691256518527282184886813089758002569154564796396546192789315279428288367053386715891699063893240022499815754965655127704464451050900177314694513842512864994371656251493062486346485886051333967590479373616781017573989055003129725196430952887896831152111056515077566784715521684139770832217086322785215859064160676463953554435634305730400230856720456515655983321461918076372374845330611975010658255193844580832248335744720176845226750370421321942121275431987128096360126018706330185892187607262892888774356008152492227154974188005069312782438869247944743299264047928973381701417306751225972833130041746608498836631871999893137549922667566087341326423297551458159384780469153235919484299474707253670516654280403110016694213567059953048355536779387861711420756186777813985850579423241063819421306536242103212616546346285791348017078487848115597518205923361498209272576001303823165876942381744792254703467624827796687161914669449924200312849229540355475970412588943288565268662016844894842962084625231061140725520844959506634982559922452203164087560712352743985671220127706284304835525301140200432130758842591629593373763569890188078795039703521218051562813180999992716169773602590200799323019279683540582386765207622761353747021589289350847389418094868827184869677101063536820591991825733886961577701535436590456788589317684125559281996012723481999922580449247547944809818096403311874382056041620281970916136891467253844076635491420456775278915910109740889745818417152262509468787098379613672055805681761169453190709931259010790958118012504973009665497293444863394130159932714658985269986271026549677134694112292333710874540581449106442614003916014526104949223146461906646797241310875772377818416011588175099061957785480551218052020297230272919584814523621065985579572156348401946328469047293224460211100856346778785237515000085785369327971828550091613709392448045102644084729085761701398960263139254449197539446300460085517593738769755745296023924485723105409338678655579047419774391787662192481162657108666479094901390209799269819462876898833228901862295847159697157960038893201101370143327508133832739691938975325554489621275522670951409151788699884439325055620157186005153694202417699314128810727118483016131516771465681182774699817467071720833549651674842568550582615565694210532525617073053141239762403460198715102182579186296984444217586511722609683840554789201788860173823527313687462577605400838026757063168764566693765980317441087496725560117883386698771630745674398013720173165198263062103721661735749007946985252641442316314021487076141355178478087021433487254731872618113979605237797442923102551712709026118599685682054681565201550164465069411460358833278022978750311424224279649949630020375304911467593424081002029358444564687225031752025373877465165257400739903063885145857693348340713811888122336417670343277274047307445283852549068507178244930124027855113416345222913421020790227040321581228968454264062257440593329924082207787460643128282933755199106158017155935868312192557944520751427572754163414525384023776269905887113020150776232930344351364469127061009091757273569517171568881799104423908151712880822954802473245575411792375195296038031471931656472015453830229770304079999096438165279665892409931408882483343055774318998969462617828659858284828480970706392127944247985357467193644808947704014448286305967594079448006467483955988934175677147142594320560173686614046294880028734554187625292287490395680269792764031797827892809999900975005248938410536935185626982511304058629731619463903707253805371352470229424128931290781125587398975829274219996871620971602010527804054553747952925871248591480882560810679571819582318597819629273377788749074238324072871563214558192100612691294129072747870254113326194562282493075996989458501362914138496358647686541941828556678989777191927746458082741812916834587841934155545770541057376975407680044418899335797661933973231919704659719838364213311655339861053561179360011729341835661285175799817646509458173671092807235818426694523404885448397447627220798034792538058701760304769577975910415732231873655586148017953555982583968737765052611425222491716765566944909097743984053631003034563147135838696176694792889315460878438688208842962439600144962952309371333617497738599917278509357252345346119331525209702252091626301749731236452015846898077042799921356099615804178911404148654315824416986106283049716778857166067102146905176239328088753375726573571890637325727341320951598772213579203105645743466573986167147000815032234788502769800117334436906009541551591244590301041108500274480278352773461276958013341623449227055548792184555939483414272443665569276196346185914999928770040239270340610354449248234187707715791757319684783887037969793872111551137249430141727055760202111109132940718876736524836863608608410004625813104754810328267106651322038755519467050783916387074322610670865071248759779144368509723238204561072908360752984124973969434595574378591243128294438413586134140761545667430582525757055378440854539605025973778946226533242914540655573415409492524387244045054650187428480137497211175568955800866867752750061670409219421010163981493619765334523982748397528254795023491238386683672037887673358422551242279537458163912228194770883950851963014071530946414248813646665019585577202140755761175077447461431889425209510422381345893800681507327156554572489912540338214894063453190540552543921250018849609884516780832758325652357703630932232484802347990594566360203574430109888381372489253052981670757138254172523246353350267075149610397135838199445452539013350098908659302928001334930431205928284530585991625276659582412028398915917779661542020278147597115951832267411304196033509063058818638238908892148365484134045195142519031765942482882114267902135854906035735893798700408822247428210013917633050575976545744580600649306142423745783644202422541831948575879904142880459273501342475830296676983167161689687853650521779609375933137268239141070485724357201204123419660866060895774167870365351172515978028869949349590645451859574008011112628170406680742005402867026100829407356834648722313853282819675626448534583403737134161681193044771472206612761393624432890994429212506131111748961572085830265857829336678781695467474315458152908993495324098046172517272890919353070913091182577553722517136698810914889011514521430155950368401603271245971873203304980479066718086465155192070185355172476074098923872526706718679474029720598288694404672206400677401086607530900689738579837299348674994793383208698409130183972961646620554281644162631231050112529130059243958904911257473926222772693012967774773031479519684085311767841901292828973651679477638903011433861145552436471429949593846679681426764894401219108586035741656247371425383143809466307087281674175757123009553472732838072100518427976490584777153671650640057291343048784320413027115996836333858011530937570664613801789287214165770984266987278713632855592465341611305796816694656789934416794508045173157140158297908244279110250529809201049898261614512477184031404088093762944221787947640972170933566988444596283529319704122002557233490266245970819864709274644547622460413298607512118899314846494103856753394775751939648876727631218532243144399022606118624328206447513477328930059820619218296201722311232357169382667420686382423853212279517317216204954449392806544173273630120385370350331571909206044804609126541987410656904968973698598127759190113360104488821846716553382789207400408834341212966699460522273877967354775117400929274297630731503419569344244254492781869626092345854597477567000620920399388295698632977014743133836743895266973348186416373655953233030165428223707070599133271814437337017320540022267215376669151538699328681341863015938266612869533107697173324276557470870019874740034919748727847697748746703977495217920530594975440453520392975196561484854887575258914815958455440413911355752335213879613881872634325359977248692540176754346062324929099438922752778772401005568633972225982632545570836702417520118533294342447342929853091807726199580028039337755935178095889056626027015398916132810245371736681480387665538642254274805306192814181784639099700871961519435678856354550480125588914452844917672249324702129016547794050163761937170404427154386356504645698548866022543750451489731788297188723136178343621506397010591614383239899352710908483900463894986965375282822415787714955021588882004639072170996640592895159409929095048826619230606939412578041868698326397365990616557031991336152271015756303085605397184043852426374847621668025825018935205246824795625371918758368019468363573847381406763033286837077755207378130963924674092462597354591189387415713785245963175922362352262876528521039750562838620754817620435309507234739035802008404613867036604065528614021598205119532721930833241737664987887472893353417933203859896644468038384624202481646672813378546049060723854946586472325080487120501740093897135286350517445011755945265890582767920759958870623673691177805388883233264948541083366820290030947850005795106100126097818488846021660647409403166526739724555090089267553031116255892557371150092049366965803492636972260526620569123036863917924158985929209647310379641272878145166533780473032839774522452714021276041600789966948538438057717787416154090402445043237319265740119290871321662887886405527780214222928519537915376338208506079183781086482310062599337174095404954386000933381197492062139224842714635439532873395888981211706640368621946474700085660980350867332806479553566060796349934607253075708497864308669471506185343249822638272302235390173909654936538427607409481628911243172325761272914788549714808135881441611776187964088042273772693261950974568641710668452384596738840159493802380418778128059674379605827997397748674980984926207630744756233360880559207523549317630644120172112482749142919644555795689398459733473088967840635445225516524601913412786713532690934448702724954697797580902171474703167294738952025905771789908111139922242354578415175042050158631863966181550345679155969829939324723944223274641309972082291771237363281020262482399891967804247887299320124750298899485897400185757274950604416363281656956279782659023349106526935557703843403791675028467580930331090417664487003978425506661086104738047609757143664446370652719874754546744982846163217775321088541586492416470821993982960120152623575954573264238568305150085795196846324654254645539407934349575509309307961707927627283108098519868031396064777991628471036120122595895958525663162666744162598073539416649408036751069481164426097524037572741349819288601046230405841082821622658093012234449055989687792354526679250551321815585278907823135645778229170501685473808915449889217920619096999793522758957464803162611434794800452561109141013856568824050201009479636920143025553672117384200532922776593827328676927650169301403374818129988108451357791716446750812574441449051846116016389056660730554893618560456214854942751018960111602902439206365679098299336167540679300526729443883525203408948121399579643723218045730514572300730082211479496299459283461667860070060279808960669686597039435672901663734506849788395179435798477431673046740122096858136168463862482658609592662353719850650263039228850090760559623280753856455449824489674030567239353621108777038457459912440843506106752416117724049232831923777315984474461158803004964586007583049439492797697832230302437535369390515305032784370186603511416996932228640602502914752219572637419490889016316732769350590098240888928648416785107370914384290476888134686002514620530720551730216396313351912042040883402659763449640938999518799318718781977383904337220310157561942204906431129212568451584452878996696240504446180133318720138578240899887831194856094662464891812665815353130737062845206086604768140303640748708541222090638595878360073688709506043971705757906292841802372527175766815638664272147953574272866462918709394014535505653355987774096987248082011041045672945314466070323418120809980705691799674290248826228562866255088519953124100673400375805886894739253545152305926614944417125049143713442615504689424619190740308466073866497547250628887343976834370863140851585942083289088214275028240791219866340220627190160821475543553890209152008228570120596424981241937472029051845641814622130774537607106772189016585383107286498352252355391151156197213505500960176418002690430052329922873532110010407641126423948305260047251704003533234893749676623454330568886814986930324704192156948076500279473717555774732092051623253377799270284737822403755322882895558201450885592648271926029309954853999442949102835161784928580810230135011569444482370207376470385672972281818153200955848850783945459100981025085677688784766476553457550734774906027225372667045910626605361681632954039719167141490018423484086621823795036343598058098662753548074035667806607214494589449542828829742649239389724704854717997113032681285257864148108400510276271344180909453010430396237988538024560766217557548142043303247282666035636938646601903275057005037938618342367027788249518168877481777361911611978329802715421954105746740882386464371676899432476963591507882385493380751646495070332083280074018876049629213538028037725376933102582454329624778250437926542258916041315135032114157236059390980589968106690808767204578257473345083244722734589576188438955716600407642142832762290394710892067915457494749407414142028858318324230747324111574314158693106340747827960828809540934336630573303167457624747818483123059119441648782802300262042068965314326064544559269987359486954088968276336930119398498985948950101922104966609394121662291544204638341571137144039346622929784064441871289986942639159254174804786669493040668964776152464845398222496562719529047754715450540307754625670747651799522425361138104402561863074690315793866101037298554347278613654340186723241273577579798289734004120023924373401947887753016385133477146380750978081183799885248981340121006044861106956819655745114354565676499768685378671025850064558061779848358918129696149338943244299644718669058236718419883359199847196049922872792046327976317737194447480610298592227157780783190820049388258175914915212102949262362038640017683738638974303348466485622994177258228752665231472794354482071728140190778175963062275768856871307389246652269788378615892129893101346163999771813983692317072517107611528787247593527531338557090976267628659655925575699744764999717538551090085845524160845424150118200590536460731034881452879567794501188493318106282072887723211747702656489545405686151720435043330025455030776311348568928849329646776050188068072523805711551039685306829783317384536946411734092718251387613025274995129686917330598656218647734539046129785810799295454692724132177050663851700545566472884334231041477392285766823612769160107944619950903206733325982652695166920673057830066198866780997139216573902266077577632587083196397294315655440259444420724475802984951013574852054886101653160408491689703432581989658276713458723518024769938665845456031043107073613586473027836938088072693984169042962662058756593378915706323803640961348636375000713059350228814081608821938177215091700385484410825276175868954042984775002166122692086782491082432895543608644909133988828865600496349418681058125974802105225494975250743843744787718444017440305734178905743014631188895285801066612177511554351520997007202802802350755250479464485357786749608305355114267310227291225215009405310807258127419919759104601720746655606409964514610503235787609694453811982288247336324785798041135454182481108459331073698573395525415008467364044281085587330425024538231632643918282533472663081705225103460495730781910759501390274818257737242737092439725946342364268419863023590775122955790679124545844140935558271303450187803679703267173489363422685749878784671703981699660441256536467178727467256725325247640495520423160203463326695917354261395241631684655931220013411657528886680502985086249061024044399164656140147017417202841720440729200931670741721879416006779908878447701268547978069016577608523207570006128563991679410477616746996321744288970348283109402508134333841528686048709194180513428839817026098493445705444794225581719006872340579409723398601369571489256320236936581897436815501058460611557482931175786701611947608062983708007469813705769846456947977451949910455741555604522314567465454857351327089148935008086038714557181419329616687491084366757905653267539474676021024224128245187981827868177955792861705514525178248731524096818356204524678439062745039947687893619522538173938721951006961355485539717943326116204862243773958309997191892246711981171748014181480825931421368996946168720039909610822883123230811473893491896051782455440953356136309208392303212369795141217774833565010298973911097889642080824462576689235845419361328657837503475240143064987399575061867047603900049467656130237324610006887481593331946937163922686654716385573325696353023846523407170999052454381247962730064037444298604272471649733826032909897092631282890526855279276498608643999034434121477574977656569330285458806628277773116789301453591432817166350383407294363254535682032839283456149126062289584648255508287437633319351046894473116724793150055936005493234472847480990185877950681492325948716555186153360662379418161724151814771376314942322954684135412935992870885024033795624362300601071318146149885039366977527442801841056701077132926382353660631307081277636724037447327214238738056880752212680969568622641667805115279625084959889432277198154148649513400105497742175713134062700950594265091496899769222833656847582216113950015508227961327174031493962237163191097759408368788571895680189124457816756584872632496669645763890797738487457830249674146266354654973969399612964981286381020344149680595060852201328173428821310180369590898907221924928894627028795758928116500559153573125477736711097208637418273363203652914473314969828713247160504646493412247390076845269015220822500506923966826411902823577032086517537436510000076293436789178277890102140395921143660324432436934178612065687561093951763144102726358952665850824631895240393198415716446674304425113027545012349822012802892500053962242000339618592486512552536106004442615893120777540491619380691650794714690818348444256881854163213857918170691664512140561469727233198960896821159844028876089259504647881092843050949517146129352747244607875010948338370964673524517799817575258461117992814412641850250046472211314078634722358807180143400308479374334288347869400738361570386240973257779470516935548740646323002018674172724551352359722213814701298324878711181504971416704443033237063666217880962628748129308370209690390254022050100989347562141526967727771902520558648135272275253644226305941197104779308621360120553939845456607024351891815390005299387223049842702390358801332019644319987353308570853112584735435180838189732680969198594009696657657956923044201394934802845140672503644915218756675324878201775802750970675187788224744139263153819097200585391898547325030803202187741836195403486636571207621375873631540960068266269308591201802294536071184471799301276978881673180964676798392638651017059467298982079575648644003589650800875524529511151850398544942062923811605765183035383117608656405636701378627297817262358005563874746462074552067657209773967636519976321489392640065233676786503745020966089489556462494666612183809104299592249559101939659709956070570540551693822853356654815887395666685240269544763514408048469309526037447864277680013632396053483366774838575997977157719447938616693297527665931432389785533945919734804461041125972172537790123254271982967022187292556215295785273982015702741234887677787367581766049367683639450258878626917394711465619034748777550117731161230874985363081471596656411703097312060149059027768311914355868414750392292192845264155153541040246991557299604006314253022754758919980527993531709062447080154428515889159769886306488033863134796842110555773639345578235965349975023099526258722977629640987153739795480637392855157262078350694450631283499198002980438701292872495714021639924080172120603963400126715592739476552281340109176685878202302789530626588581415461865420196684953440043306847234858315526062293728680030594306024073890886473572694539641103826188014553386485184673246244449128685232060231667879228602090537397346233407830423289194563083155133024442917915154455494004936483564422224646602017269374025306538032383030774603112445340212499598400768058022617412191157465405004999361938487869220826487032706338757930157417388546716229297870208250405495666991501187452044639334351453980771526271701228905070596967260527385402056627150790321183404019121630881024440617345056840152003722296492495499941897874254510508833703247665248899925039904242213174847571303905265673556211370532422324489527578657498227737726786067345420594747222516179808184869993746067187246508860998973180212649575316784153494407718495225845991436331831319533639698254975767391142382463240688439716229191014386770950143990466824022932441703488083085364363200183865532803628600972807453961020310137147227250988403963782425184909346102434988734540246669584374860485716589777865233064956333883451422472255728391688766773114457792510968072509060298446001162909419356432096987260637405205032954644675499193124107845021200994714773786822182660687532877342037786135366191291371691896543120422491847407343049617518368855726511484027971042741769202391015834181562668874642579698159224001598336859069445228913195066328004236432154805986073033111890534294198309880935389352188318951863448940419899760571353131684840265209122239672438927927631364629059887002948626647288488406618446883055725353972340317945538442706539696000754331875804408029437624229241592203101895417606556306695215056337554924445971516663128634288547869608638086305113290812451068332764864673063514945202187635553249163670296515728306984917786471244846315827468038281300902877680300026252157556987681963937507389330656015221197896773542233618670568427476982866619864364809948951680959058248791758608345596668893099981407107441080022341334248548784209165859377005401191926733448075151435571712884483915270550402533078662503047590978951340875361508184943897517466460198076007993287000181337466932172425371260972668066112518581497659348900390607151661863882169491777016689453715217852725177993206464487608644232234238646605494351245465098358677097816305935790787318293160317739907437514302448803972962205713696154374314090163487880478966089692052277725272468959590177665077690364218856610228079992181716246938694251933226031251164889481376868748116881810216692655069898956826851760597597509766136370199408900045898232884852355677590959987579077553879971703867565355903181623242255839195467346747043411015209339003763416378363661388182679116378605382538488704542039129928602097530906930630452881676248725541545912824730389518234984454579443148450045505678600315822231656361005797531795779923387070984437474586844776139376735857865396056777623442233397906430208548996496049883202894437553439092133596336982772687713643481844368824216028992607954716229587310853675216741352270278474207500156612106477154459900913401631618526247778034976686488048685272129924417652869509441338450423565951626937740570788933597135689509106233790101424963743120378886963830817749207386492044166132821695567149765549848950276732169663053425880184681587979652108815312021614184794233378926354305602782201773905410714872591933886020533611838013321486852360350238859002329500463822429136726748998595091945945010989117438634308535221069507602736501804912377620376151083630409255528947522478378647497470990150339458653638713857060096418030833944706473576958641578106194690053015127738099530966489700650458860684972635099414625199007607357464693078628593008796708474466971460598984915487847414586645974832488546242583568996262997418102196582160347381940773783947496846009626069933588707314901387503679019912865495450759132830924970009641217269808236938565960253819749981374927471008757730704137895812249726218047920480151655481613012059520227012043943979255205480364703303416489323996448241417872127233239749516921319066402123531331161002867680945621508731314459157849516601831461160988626103339597871641833970779376775060523747175029511094459200801158256560330879555550377814855122951433962113818931765178028969227482348213511588271002347866765352851704208779662893573501678753800067624712142886380962156915215573304129517626590759938051588248934171345923119428655341484177678615342584209539006283124471185849542448911667027842483089228968269926837020582049407838616253912564856247804321277177655610837059507780523732082458698790327209892008709317614700437794220826531659561932878884849874607985629444916786791454734846116511386208771079833452041192559548059380791534178822387373224346631957958476553439989860253797029351005602512094006635340462104926033160061291797745948775116638771941345280295666828798710903210231759902078202988909014203141440643215793003158567702922897311202447736260178050518621278367267027480938828016467451733005838689358367463313230761611371637117112196080382551840758355791267681908710914852862807420720493109798198654117545723356042798828892252854382249262776510106198905615060829233072216258804989431208702841637874234221234833074977747814529998070680796379356475859510637853373805992585169519135438430177804106767750994001164796483337498032897605400412962865296670230522273182255738921621942202375422906580070921508919565912186365183806264451198772378171347013407498605841788536610568189513450056704940042520580804154418757398102154540179031626459586821327467472385893254498680886354126795644520483273595262888463271221219377395038977025854764345451585231867261744060808573487593597215379252634629574409548962179611531191514329795833372506964181688421841397971084037823098696358815449935637025153272616763433433698118615323403765646902509064428328460545727294430301772198272215348054043323231401440690620969797101134067756968035011140262161247771591158275095536928924184826431234697043579160398258643517240700306369481305653277378213346503258367014080165054793592711127033156323279714834661869640232009503249873773280596254992512471108645859445662266177782842470495670454949148870961186809088625060632106781464864810658677646815596863386277672288888745798748581826630505303693761875121405902373807830618108156980750194201138567614597834103051781207569053100631594631946327647931187307753765912783094271248778161039880716867365071037342184721989043161707241904314070637795365325649159830227680816835541802269551321098149490366646770304196874700487930648739828876359790411320946331767469528173029973785961257371391550331239908945751968162114670413740010819074849132070044708272958511648717736265002892558686611309578495819366400904939454117977118145743280227250699757121625918129493841320415914937872734740243967447808824295898661876493110191306502094298280022015795429609840605297514015403021959677555595911052565518379738907151500933613762278627568238526639258938765383740798300397157213443566433365643154798854421884657004320919926851098680488920278651187787122357593655885847425711053127843779453490619498202551985106207372666307684289270377158781010350404135291872140212734465486757273586393627816273026083326965502226485649915142570053607178157412324718777655403998057230423641040457388083909317485591326850123188367993403949185860418148679454480279005096669044257424773132182605082105689584203460129975000563307757376647151990540727757207465504291970967474898260971337182264435857978922501443285289880420790380823144051811943992591569962266884751955888795730207212402040961262018526543229042007771563749737902278804116524004383943448288937941358110538578150036657478784844134959684680383980825107799725382243001918034513495659868601670681195906324548789399196332772341554575255413432581847132340419142158970993662921083370941754895049465161641754648631528863990207551841249743845933722997742670826804370591984939217680861155999032960880576912942524741792192029624230662006625792759581727785431763322763761484342280212623227280343427379719574121785099940428210495059117557085451156894009418998675840666759500672452911045753620341213156913088392525993784898230804842776188979997515534417077349309151212520866479000689535546019194341587808860890917929406799765546863122551095844719992354338459559797541436163729958388054986101649811822572078774093841520204294533488125270548692429705174682179090134560204928608512402978180520948536867341534828341741569416159653461668986473071734708504512709135985324199324009618205882377965850873727953664169928877455406035917911423788982126686996836221331541389105258666705572799065709079999705992448290086877710242447500059550126977950400582001080181971520645732668156850764797398893780677537598395103537784605499800066555973424403255880857470996376477201255740173399598209551951468669896896589104070471337900561523130339094434279215614301887080254975286688388600583602443894498999223416929910401109469149137622990688275258151049722879328833176655978461689000279724232605857911375993864283206829367033146667920301658340405949762886746923124063987975786563676116099842710579179441207043288816338313983760220443854237226726180100182790622612312245101175994376144422718327961440509996893123670872967870012286359255059989769757930806409536493237379597540867258321510977795883508836112685284610019215401884303384452570189639362758482981111485192567071189756778164881142150365804316326414729924008234098217692772505240628395652502034047162710501983134343150328709447835296130231789692420755520275270104544926462340784530900105535256972153341011475188613311639190424763145849886206828504457963119314559002223233076173753352240552929882684964610230650392485888728361392964878550121357525536583590171587375931671711197304705010683243105938353641439237234835820545355361799607991853403850228080127940210302197794953400143972533998628478350149547271331878499047257643566722222217383134216300482687081291212308293501602618313601597922325297335331097827993755029507608004443495407470869789394753745477593992621948621333088364286084930008871317607207491750609185256538714163251186019572913905428002994677136405067830240115653846778421978546368742775913454021825392072389228544128472479957955677531375823724604720229915438066104162865528492373747276100896993304213785991519445020170096643571745437225618702248856485480655623333359718621603174415783013842599994119120096775114872486537716030272555386475010373810795347148918995039130768350046661365728981625289005420181348098049278370207022578805376960913233452505983209732388755726525191645625002660828317429314186096517379805911292632785004966695482877237214645906803721544838248343435360565017200627192332672955323472654402898646906789954135309709408638826895933951291585784016834747215044387758970987098726030504985560473665393353563086219774823598870805079053984215623740212139398741815475046059189443601117726984854954819055084599890296331847985851488539811065199944882078301464731256483919834800184331463651966130784053705300995180926185361407073071158337528458451534868716071131853239157885706876452645863375714921353218925234909329073085538878952959481118744953548677892060987319065485881133997739958050176772361652024081062614682487303076586237849574742209225771475406092777596926057384213958962860282442070847002760827425237537015454729535383755758244226223066634931964451281089746481662251090526293129084118029139843799532924504044052237338620566437074653642990610950818612021508464221579486140563459248507200125928268205425185441521564198355950318269369637082855613553714707125997953284747792712217824892116552045516147087448382455194233425164154429883242307838710787708871090704987618229314817516493534814103433985354918646751071208368906557486366699318967701487944500734102790455864898750088950599342136936019759705843855851882337457300124412892129042315675979040451649160178713875376138088624443371208010389886761729077641743284142348606585761596448030134537263827470131813326261867139741358863209000571429734065311564937814632844246245381835321717050298466210119409179819270702731068096326912679296334756476240018375101542809698262074358789210390385496553608064425358315119799980205280946662602065297931639231887851245453686660594076441347096245731127773923154884610179219446981375236653568236327311022898571104406053865210627601318368361841869705456576744072145846409384230024828411015555028714887547270345137968106875211359352400215097806273401320258181121495336725537882107972796994498359832983170840551857835384684111885399195101998312631085188784939120381190511032764844963140955833720951510984954313539043030569050583647546085847062838977574142987460162111202352430086169344350671576815415471074073487262302413521239030834188166685830040209696710959165035794788818281704703196558600666369066672069852116062126970712986060272591350527974898020142279896105217973301552695351149284271264184820457506374199570841531695841930644708936720896385154664750321364467855615934564779158930691569408292261233341392231280707855051916020680338850642543029506595429680398701390842823391191330784331456001037884391180076414065405054591698814206376229314831589891623863599909048975944929512356117324785251221643289921843538116839750344129552005547203945602371766280939618093382106099794706418639979129183325604772269530349736713295283136010311452161442246725251483332283743548550867496628588116787732648204895160343937690203556558554266756814583000339527440869096974822051964961062239199600533492959457574908542907984639215349422725630945339721118913055932624337160997294687059311911766784004878231993344335218221113585270870332808083164504584651700216447300769670016943494947982484484218010513876850970438972739572057575392659063848221592084989968005613115664097233583333978105141436927692259806247300584721250441070065666857686390470525739731887533159151663566956741230169003490238082188942890457541354213994016887488264057463783387933875195960272909818579208499705511817858569097861038517439813687286587703798173615506015224775836742150505106346159521101103276132368741763188324037355516620444676618002728859879778495276631657404247534938596508806291234730199504773685556895429166991156543932248145813572010221392064574735737805571713382278197254543647779384184498090470486801959674664039362004981356353924002980939658972605276632646677925272241833272143762053365423099420018368116318038246653829691154864314481204872706182220544852031752899318106727705620950758936083365115897817869325984141016689112427648391224617480684643397901292396423384237508742305667199113494943990260819768725459423357825725625071740239466380758485330319300575863933586082371861950246583182918158233354429165939130401658873497350926974465707604780471345862271581470193002334745810493534508149659529730711488506498466388282143420987084082578370514406859811412553954480336638369431091227494295296560399795563870418895390795950555212801354658282674504993537438352643135589586734298085966504666652442944325330277632046259831987856809831112156092024543653890499838668528204779103009337888234126912728856070794708596718754620636180282031780122456511094836890377669533419086170998802421710241973014156997116766161236929956138752189085498142444676545302125731391634198225644374979066096099394681127230929274639978402578022511197956272745306387163040451566458575699406764214536845166172778933942682147968878937134526106828561919301666113657401019728989961928914920285710122542814921534505399591977676732691488984368894948085609581769007091073192355390679517682980516534306676197529102072412336602583721433995438239873469719324236864802702592266483493380758490083475895355970966210946485173429374958687047896254030966864834075915786843535034291526630370309588838679822362235165652229503429648442737457017924694373723803099925662614653835514365122558810889896342092996109649938276462980295829089343256001123557714359696516685901064181336518645784824103034952724562032306581762092532839755128384572687084293343728597480721138844436335576319105226649179190143846824116558897938728440622576989624384011449969716220308348726359591316203507697397221665520115425201970061799882738774482334776218798542404449366845368260203831175408052699883625067591991286115831027265523893880025198320208550177041586726577377833494767927227209628197043155697487066700911426061027679954958057337448415143420070948665538239318120294848354012263980963269674499025265248128843515939943227169060944287855562689836237253411587599724892894916640710152400984539161872423128094651272231835369371151508011712330867487581011627464025942711755626791487212885654257980028441272177326235139808280929033304903926412149603387898666330565460302778992076307315454099887110438057500256648348839171075092191787653476909487942537939004875628919625174017748280716461956379852898158712430688590371511436046096488150624183266049380198945235062857300234284801101381096974029850065628003621583654622874705449736129514023074561454203211021707562412019502657007899157651799082233742650907855422403423195167490476465033561407396615146789490644993702850938285643709746374576229645666814380590473831875995832240602679891443289301334088507534289132583507727907426752323882987495811285421357851519649778886786893078400206250550785633954954206283729881708457382208471782008786761231085640232308144867060901531588866406591204491338868022746926639810705813145045633062364336978398661851869664720053377792120705630011811080776146511810204357373002236714604175568372800049148043489334730937279351227804002118820451012629246853352359459523892199711093204048772959995428707632594524396611001977251705019957226501546548011253017603134682825219322075074021068161663735229458956521104092560027835985298906164350884919820044611274068545545292078438737762715389563079415759981784375297159708687662648262374828413921636049811049096383858365166741892949475735185795883079579924677135285427110258180579148580710170590608337608524154949775259199483601754630811309163844166658034707269669664591965977589729943855970459224801277976670381679719599900332733578030915220183554379645521940507945692512190159953032744178238812991683771544834619656350283968611487296349406917408382838167043309898930182000307794396929173293706475187632170199508893311434568989694835432110151718038385823078655281586412355309817781512482864390823817798623062171065824025266977795243045783264980313546050128522316962397967074074534821900967796282286599697545312673159219688428424099543877738548913811209063089594342629231474949620673687619646998702230832860160200023781145568591728757938277150178269612455180663409928526877447259479177960917595683171551127968149967667217380949207790536140770759855247035087874801375671574706639450178934846040155141043012262157389147662107185900907942495729212571527742429048821889298158940163882214825594751896099157519069821588224923056803422740189110427174453287300514344838176080706765860627664599770104702523741664051114714309270079722285601293986135638224822478181413135806532467915012648396442392490889880668499313573951605171107893921459812146924121251031207302822996672501055812911000238933749248778852890186525712562561123147250562264769896925658864829243495573811367409092625258401573893246752155417804291302055969838020619879796096325959657339646067687375529160356950935792520741784246319999698476779280527188255225457832460671154941305020382969945425826142926860888793994812171082069518719221550044153228398272420540643756154877910319336620901423631928614770927510711115720926773501801080539832189316847576045053792517546918561664142389897411799568135836804097585727021225533556220220185069001399072526693832117532856907510243860147513660001275140928623912992397207473539091887827762525636294890652592090972229348368349855165433207914678059311310183696272492782900587106118420384346342920837448790557472318686182823421339868048534769936549363116424276280837828551793184304231211438295469547828232051746787708326467391820297012987198592174256355604820848604939105362940317699408888854822066966666039836936793395995329560528283826772332305374191584785668327461313845953339790046647536261854617826795184816581918350014101585984019336016218997648793854613294415816407133820327219416368034164258028983676386518887467779552793317762389985297990250308137555169049596960055880341521982228322252945489235298009907493906336547105608652354922105658953794791221943359417820908650566521766560392940210806435570118495652751507845737754716527601504110845033239675598643037092550867121121240098336347585453336818467369884864443225551224449241212557343505198111753530882598669932862795308590065195512979701714105608549422782554877646297249922064733679938015564628230042818912802596071220038211240192739810517800953902985398801798990155571188807957061691787725140325016392990441485704265959912678230943880332058013859227647012770812098286343934391194874169024968238281714933248815124771952960330042924008396931478012232673252500066667014426198245560858842981038461560041866738142906102921119505364171352800619876070533203659469376700958138986777415993300559689286953379804571050050699369523574746528745439529761013542620831176746838076229631158282140272286430776844727101387069943420229868734568377976610074823253858795337741180273260548217657398676713471501971548788127855473930201117641778470169810154776945325408201418101649173796160024019718788406239256049672970110535266468148422469238654098467008387470284334547013077481782350942048599864111155739426611872887844677263310830632887435443855331278512705844539004655319021308268231926665397477522315370530576279950627489126435310714792576919777788150928911443643890862324403902221884650605783210015178792734768956138249956738171078487966275344684442015379107715125288389579266147372999134707593494013181909758817430356857773399138219662895081731541252796965742987404311087756165968092250670434973240503874363274163951193453399694577002912302493958697309685381737685268711809616950044146271995445701606580992573081527979129389197014513804970579177548800947684026597737172456365383766964956971052743905194345683496256458987148226484375704562699155626669061595064622846406876268258868896499768356670659975349173444783132165914113719566415837803426134349174809597900670188741966064500815558129762097828701451299959963320057456999814848599489036369681547970945125644623034743701248891405490367306019414864368146439496473179262816961602633598790713904263360814117075138122082577082547443187168718581691525878890287409061167408968994644960113424269217505607184796229055431557684542212074708756697429272104375910030733196499331203186077416291781671821105064800748188338151407573296376761610781886492099217366316967661874276197770912831354794823592551145421625463421909292611977628833824615934111315390919589879417219163282717267816670255721133190499087329534882781301112977255092630085898931370678490069971910925483066629727703769666620643140929744386029481110180895794006667014073144882959832501756381516974340705797871095695061498394059769221740470211938458188458511539899421631245136940744151878200112977336041563556395839849715785973084642538030296242493821052242722366532250504086269972174610162916255931558729681262730342193351264649265529545988739422785299862000918991307599466601246795575093753841808309976831855253838849949986123204772621634723368138901676912109142726969628254980970468917306898320719534024029348170222590527042044004098401912158293213555199897073371400505307445893317663496095673704148697781947485012446758560053632781938558307577975658169072726008891641931381611915352210723271163905081910981768804869393024647572436015544105504876996989447378801703000170388130754428119404017180905766861381540902883022444812521144157816882396263383458054337727992315678339981553337773396888759152839580166420655172458230222223881837121964433348005572646156868450100534306456983637784617630062265525258382442263008976144091224096604034392108999388722946859824619841086850921515765838514901427473267623282455745871818187899247338003197279503171994328025800249921025503013234310848755452210528225485664758230395492643688082777509375320101970557880612661449723682756184211301859370279327819216996714722077264991540633805903616841248037992881374058866342667619550852715898976184733431645557988719864045678820162829433779781342471444390252004559263644378878735348083093698878952909552383390942082959907902137822614171639441060822976140008884083968616781470030692252139567357378827273596906009190882838917993652925505517892175001799050591954754918175519821981423061839415538836788743861328402004242935049975158529855873146141250615310550983954827013648438749686016213478401277506387228095551595669915145135765197587606670775300276665038163925673180101921790707611916997736642182730016818636824308046339303380867851936659365124155145683232675206036566297409853839145203286487952590735877066648392930949160032799526303513064696819354684772642645932443294859089926483121097143265398225331654897749327390853604313189703907643903728382726245622301378491369366711343504743578182536359219524821921692948054343981872192675104349688140345642246544241827876840994915701184675241819784822939629060424594873657569614718782144092026598895595508012018241188513682784273405473882920719265578096758708878698169060965403080799435423884468786199639885060704548440977044877951748870490179502881960027093618852365757286705177505949386457195638175588605037010598558368668538291562504661054223123645835602370070675146882421186577099223965705644028237932673411645209115232834608586644087723143366609899542407898696705611572238172802873417588915214757176709397238967885096614751171214253335864317227152203761800535905340457666772481163407841471182618014904043930359654004682432134322146242277363863764771982347076532405257417721753840371431157377452283851594096044817003886741421477229251720604380511825002313749577541121914591382116720731628079280716008268803394707920399323972465438026839359264106155459786465781729384670057929763177696603238047174383611738709137938240184492141324062993582961583971218106461881550976169694493900159668133362588761980702148025694586289201931382962171259957158752164949985128847514226400897105662959838678811431551064096831082058741681186139984452533739755270837047658334036190204222508570806357493267007484699104192500636087451610187840441065845198330207050288905724154435122734705379671314245658548472143709760713028345039460081648383718266839155904865332053429126103077602650701004799504175608358213874912468192817053180733878251131012802100270207991306938709366568751127126556252756145647380076013197077263459988492111923202518652828034318935338930388765043232346798301381636529870830910676836832575429222278738415979785395969083458935154689451893101209377460037028270493071867068787325511711602650251074416473324249415573360591295507180138203453068464862560961915333724106506097869600333547591470500191917948966990592913892147783572127308973631378575926719525947645684338835105514605410145065925486160556062087294924833378498274804679400471922836509809841632335594799655544455970415974301446959009869226994155462299011120841453667931728096206560725888864157902483278967862365797090641351487096142993443913806781147945889136947772242557644326737038475559803336733161661031075062979435981543972349749667384352044375378827449042854431865568671323358557436036421445572564891484786273112392893040954691096636277042314728434038952661331045347982689179006821550664553470696211391354747164564807975718289100087468728871243310849206995034367211301575593154473377695791486158881567834163543433512279951563501009029196232894728510089237758557342881988939000958587603742863803356954169600919882676098415286728230853231890531274368543419808051170957254704172939785876045366801066977409464009893989155531386258519136380454648109435501240840635313099769376099303643229526272925234477289880430650956061939642056785774678613206172837364193540570650823048285373354673350127218853175045246295018387351771329106062382533202312820045610720684796582699429706287682031318863035303933634845950640759938063773722640004589524450427366285122680293716902396296339230548420771518812135064789074152338046627526682356579424830049177973016184959497673498746519121974028173455993525433283879137554954651526677133389485852685974563641873143004263974125568286138987950915801464007123679198122057711130924478532875540746196764164126702353132476400156657395961649353452736982102373117765000681734694045801620776615042149163472239403325226766865298059395771634494211509240512037812766852654630240711020906660156284985572898928939808839136831064472685956269791971017187489427267690201421533573445028893158163960552833726790456474325031949614782742021267944025346998018889759924220540470011884717813641280694510292546257857657446286017301827072465398244793855328328689447381533197512940802209110942298580577674638339184060447301414222658849406886925115959901166093758914969952650174184579861136780362602874600709760255903988594061856065949696505555174668552443522979792189147201577131614857539254345281051763353911345704009491689330537065247198412347613848864171574544560594055335290489568780888528730631356837438231242476966061916451484937189794155913489015683433537259310085111178628271317365321210617193657116586216134734946293999059128440467121747909563995596652523896836270812563083606354878955564947150444870785292373980911047789217000125701826016066748900470395928269518999612048711213904619838506046582858851374911613957050367874840477193781143518041594896043873031992592325915125553245167188654921243452279965828519253716733802196285004938726013010963124182345900457000176770358222909640226701712905916649568760636048064617479292275182325301257038798327380139999886908788515579942326553363708815365444854288357412511671125719169345260704545661881304035987144809176739065359207623450602669293589999157875727239371197710873057776668939720506518006323287946033385583100126965156762343545722507461684507107678473776896460408695955410430596934269622404203976533478431007696511761049674004238922364507758704562511374295340160604094619693223948213314035794961786264855086825985653913805135366525889040169268907238604022104103583465579954812771881922652250043946107927583698429709527764278795713751984201551047400917058075627412726165344323749653256417398667524377828725254772863461896992707491061407215297277060737430225375735008013433836137380394733836361098637872784697661265615794072648751803917841657976552723984515275370720479131581201983410053933252996769047097738422197111594383638488757056824134057619592244939764623346521323938542934999059724365144090239108890357821718624916303911069350450225942112842585208834016781521060248285975253811978972650672048487798460806407054679821501855207686731671825288554242059988834082808954325651961665778511851826338244587227074606580146147479991660984904227470489288774963875575445614171064920537370231192289416675791717245477897370805586427786480450108980966030458800049523850715624395469719802522889641166058575085217331412513914446323770233892002553676038250272739706059833043282161771605272413268461821111932318008365367881825114542206265657521290045452286475510351300031307554257391925573014281642677018831022210911108993558997212908268700127962374727073560949177994829371485782613460272022281536423406709843766031561483669191026861329009510433440982181423812347839445823695973891691674488446262596951493682036245019680961394223717986696913909364151646740805471657540391978371850233510259318909579680561948196872249719920372616308982901838322080587964281560504598716309908825068359196607403280149000937742107881576132285685059135265817113135924190060221312535062095964749594545181045566430604928898826139708476633264460022846190918743275872656732153536837870119227460240581121345481321938720295996865419236884043518767905913033967153183298516011040447495070332037035128865547428781739581412429530566562478362162673731917650877843107436958916027312223712412794954430551185511388503807417724000369413928993605639846473134220543319512257612495452099031413680652476383764408062655748482075669936628976687561482547645564399149515946834231839707217340312829956147524501847247680678922049650524471657386034723660515361072465569409287008929442761256571041701033227254035870404943722765610526626161778441719442707436867479561340690503442093875035926691306843617389852759042845935709044212273768629983180740549966085457023355139872369496948665614663415825220922126767068302105993807187736709852267702452192758893876201705262705418819548006514960634786297315522135547219033893326588640937963595892297847431852159877945980569050663927724762223073976663161274520348265220199240171855829084727792371554441528939263185761249441737473585752603226754127116497088934488499244656271631209553760989566272218866971745677254781438269227327981529377459124699298088836459903077960813159292914756742490137950401221059662282130995655327928438340291213677312520610056300447617362321311477685915634946347862603754250886889315839387473952219494301192792517699841567987593916951041779063583695318281661843455006506233827601187256505705000384113468392961922859234428802950397367963055695180657253373577973811504546909007160630182047584460338312994440881494378489080661515097928337918855296040547161661114805122886628630658715847356458915311825411528568086433194767181480096158212719706887284258937688785467574189045812583666723222245177398863616572159281798012120089327933743323633622692536625000619505118088318907881519097448954007830747107484033679247430857438861281247844554043951219262943201276562949702819109487683380525931457223658056961841826505797608130884442761364733767256354468212570654916695223538344187396270127756172283847392776803096408087908037932663951439379120458905116700273587378870299135944213518296646279175238922110171406252772446122881707446980495870009620949853307119100949664636778994463338876260084062140668205007576557165163593680545263724491969935639818330073843986061323561198746955868340108542334076485453678361227336110021971521605002000154525824013511749787015735897273169472528059256101605560367603140934234907266750217319016114901160508028319264306278107096371455891992540877011650986005902209329450927717189654358096806147457972828664770899957705223181815295665043937760462500791806819253747826493603352713613440587743520861287892254451592990439465347393016498445450579887435438829647226493309054041715176460217558847329385231063823641042437792094366984775879880713526353133246290636224359199830495819698259171038943305890473685555172301355259076547589893448441538595689373699257963048231325520331988175083439433038271878225187198441004661599362270481943371722043847575300096366844750075969340480153918538667577986409931553572321572629240502230357670459494386351199212825458185592010930823702435890052455335084504031585468362327887219883383464692234743065349552743921885222051075952142679767967719866223531925652865852830182470293490569245478271634611242342670821642802160015692085247659668800872122594810968748779660017414015840099962999030840492755079344507483949127694437170677484113434142446176284360880570695949497259299337986107847247773119196001400345410230380967878245115352244940288922011533060962073700229510276647011516562635870129769093437955523063976448173267677821988362498268963531428535681606726441437298843688193402286261114518617766952477388722210564811688968276269862063606392283321647418374909594722280318565434577292488398847678253703818741436471205817613651252481290962302212849975922981289186881734395930297946984044360426005831979733384087011982053221996707975662458289450948979964795231889018116282901777240936503355586909767485647884020955467202116232373095925530132178441922752287514411422311028689727896054206837213439219491564630334758588244026149164026649901286520306537687182824720351225117560449540149316237691639056116420015435211037336979086714700070185641657059424269308955550676993791087185415713655429745597217278236947519371717792942016328134774388143591453001891575912393116302125145972425342761742566051031267333863153131702710389685219973236670467196067141109862229164385077238765066119241038926913515249787331377042220454385834814062544795454413001124471802612661496379829615813141780261997732732218388566982978381740992388353924791427230750433106828882445703732379494944319516979057604552206041280719480160015229383469379236660984022936479469213834969645615294511819155522498402745433610998688169498070822158893147374507849857222181209806840274367291899367118558329735303090862811834965572926049297797553366761927910779518374680046877020884334371373409889140603475504524167918723038938644094905639311031458205650939570128183116317296635853617045717670829033380569124222948859036423029535841213150106700881862981615949816908270846484693114431124202956567653297873491863154680697489633306349890007213702556906052240504081587744332975726607213850227744115735314202370600072669863867481581631511562718298177350126915147588276311898937028545512958578553773728144760765526299915963918372355443465132161776323630041754723338922720932048661712839680918493634331788312355047400166385405671660622247293386240634150954698374354927794174076710977804155724289142079474449349274183336748241420687656625456410081564125679359529407452741078238648267174383330880942063077897404235301730719771096129401857895371310394555854432837498524497652730764843778079940192305956317091039404754355026433506103485695487667525735050237488253718912204288081579049577633930559990760609500602694247302302606244256165346850608242573163254218660220439400693479661581731002648519384097120736630537527065762720668755357200388225429115335303317028814161290737573344133254076391125971888290909037017426276722934665173110204846613522200440292347784691562348577719726041902149126901633799634058405707914017791120227190518199130964171659930252603898326516186452312286190547983952450695048939306112387560313718295958024614384881540219431076131839620820975179071556667786372256449068381088624414112500882288989987222813855170449715097307606309361632397057362232387990332326040841291865899063238592879774814007602464274827666475518762354850594925508170954923901548868064113299706025619192374004910718777508750972101499090868804329717452991112321861128273617474051249485083477596852793100756444826364660557237976031628436343086837938905349328804948889848396476036681722144513008880963286466213170740464035388483881577033864975977874903436889766194173863533715231384965060587662571793984314569854156242202116827888084191850737699732958673062909679580830347251666355274616133968792655403638879317274962140608167865827569555977308481887669359314490168206540677359028052486508298031953469481488154788058839234752606660870496370021000658503821128133045408214996723884727092090364551990666056204867657818342452797585384706191939027827265435402271311434027614165700648989790839387702961962635785107702771723041862608344518692213794167487020163342895263616520251611228173938657406932047460165340888997614023357362794352918877132483840953933596599093546676711645562060941151887845270621478259894141796353981594300101000773997670913007044081975110706348658839194948782473633448033634678773782956447770595865842036189975415808121925453674354833890988619975986808756835027605253792557028322996919736128889193451298338570630639485175640206051265081312257366259028210535517164437324019671962005450638882218813813166030705491034538383449187361814691016754180496818083841579991961776057990295446864142303591294465758256966166309038751432082694134320656930107028019415339419429991879879503903176636659928915720760195835368129158725556055763559565570358389218229323569444541047033655816482876127742442891366310378121370330139803927222233556894399640491402813326984687430304329044314049066524216811762123285168897981740379991570030189123684672166217983551977729482753315615676753035091098712858952219519436883808570160588009601100130590726668101878277986249088987323161804428285495933068735591168811410648001074792385083191795736142008870338054193619082436467518618501080404864963343817856758682367862628087718180763078981835486031872372606114694250767799014295462759495763818734789166845280492119032492441617070176010894527084593270001505406223445828956550209172747643581736729800659804662219942486429477220953542320148799338421118365322223356057773203721411634872247248402826220665073136133743320240532990314953838380424128895183034972660755095481134210741383372364090193422328508777235795970766918942452777178445069879001218368081272575010332790724339769976361578895188355554807580078537569574807589843206860861059930712725633091211511518295950582125056737160317632163871261120908211029385259019783739776734359547000353355332405732717559267167150966162425031830037637583735494848917222129164160195038021495434289793794993748109350686974674227449336822156105084822388486063386455374451528252598616073763677147322137165841694160590042887777494430283565315562436195612657315632634957110174323496493835451935033033225338007657393550729179333350936798331310938707015337935106902112177444626889122853861200916098011359963362052694533735247826183391206927787927326224116780560486133852674868601000203304360183398156638145208505630984675394203152667365055993731499292088762782230935701281644748190443662609927453506375674459042030390899181881865481650349861918400477904837997418383100195995964811818024444952798368301663264676421737820269483498209068479567016710065589397419736849827257429116374419498523177469260571238919834465725821005691773729554654688157927459252793084542953470353967537692015823606159641173363105790297738054489481913179239218878713926473870092589287228353555298222765179540813329318981821369387059922512494742035909553902377871230906320559907095110748487799187758914880229289811597312267364871834097100461244629879673661912997364124696407191646175124987871055709604855829941265418733428055792873959777283669411968252753468606537741514284370272932065361195365131540431392808486713413166192650527643113176416279617843392492303557924965000195563238122221496218066860577952777759342382356998843019767705640192258447480363871353747981934703250360607516795255317657888278959800961408529506028758175896330352834676674414017421410613076631005357621548948435981306163007297837299586961919822297879005867608305764252471917843975473024260411611169401616771949980082855977661507169829494269146648962343382757324672321623002117704570788638370410226451077942178130817252767644104989975548091874677955951892734294306472430192469744724845681699580006476147605277059904374002457753446516086115634766467909637578581568093737482168875806579290312478541047823888493852405879322180711174331105114052267814320168243728370824921315894273887080336724939104789757733214417252168857696672129256775422376689627413076402715421706030255683409557279328436552237282846465932382512413093742663869386944520462683145360112963637719988824726502572362976543657484861851714298278930698040432955802357819301544243863767285821709549638703805346282117102460389658631862162275510335714226031427295825977573428411526063641151855786885593931719461972947429684718645360743569864591149382030278365638111347852484237034983919603182437745520081328311791951985153722529115868178293951907413528180267843051465654044001995808189924393056835247290460855334764587176263146381620593676855679425583315510135109723020711960227290114823152273730437455910367427022101914567487519490193869416472955430803229842539218552959972743166625270738957177421381219143092362216805910298279824730789807173263213599618610180380888261773721583462393734561747279534802785823362530625477193415505190760584503891276339093915512181124655335793618699932159987253902212141596356867591915601137119288921424727733143010430984472399295246730594635321976163769092159574253648802179099987440738848815564054647260637696576173967288064409726310258468423190884317018758651153710113196237021508707891481423255739113353801874960042315173951045070803174258368352129046688396022588603846715720874797073377998699980298899515846735688194403160727015396199825982502089936780688602211707217646559044313254895694136823892478749294248003595028343866250876504266350590862830791739919023776463602702679725351589240736408975193408103049221744471449109502823917536953050803507517900441650850615888404914388021364614232972813564112857336405093934243230528387333393986464995994739529234993038894782722652318355513183578386581662693205070396391865545806909657846809259336156654565507660605806614913155421851050272316534446358778731955921738176090101601448401194785230245590076367657178173520984763101904181196644551345958980327845706184862483417849985081558581940147197505292984043880399054543616327074766762304467526636426484960112925730074011552176822648077722632346285559545374684679638066942157825954049970891753137843750255427292154162228610335808141548395146736051635426261402909829918132801397618880726968990956794275114516881532484412980647790229052126794669267178529866628031393145477545211059394719345839693425917396588579926657775588779651261419754343970348071053119465369335087096567045618334954806021719657537721237848222843781133799365436107103509260699224989500359426629527858883993938644200747870467544910635679779712920913243596047198784554483788609629313626148802177620250588272608994478658586556213238708590148738827322757200232494751492018672283148701812040862898328293187418789377187174604670997590760474848471433701986753293736945901077627363545814685505253596580762947858733425758404771052757112917185435880104365836220348067707197539213436149154101873462611344978116746792783437367025943489473827160494931518819103911311503732308287461374575145906610176177013458215219225600537980855484366935372182082457224221366511406062184559018010649816661472792968361843330692507903335737816295309570190519175909349160369423240879456336616182084878948969228106503886625643179460249651418859515357656749702743591732762784680836260287954043132648764547514168914086013467892263391165483452821651127953102638181384143375216696448165591211881319780264168713933097131118514003709075504817829140128883221717189292786314380113194629540807380011509660330543081567795859245988276470155889029785586474881018444145625263619138301104005854217953130758008403402492633643670574722874393829660936732067884086435769707343333043138149480285455363579845026943778396180142195055159317532027352524542403596032186242279449370910511193825398338235116432447348959679402621755777378412846747692833389689432740819816134230956297319889431978241567708005482135053837875694097566711054930599618162890765743768112093292478691823828506712941848888664399476584799868737269041128017748210390032467344018383668701784785452362039615554139759046695592569646996372263043697024346788942771018904904912965589958163820635797562554794941334556420221299216360498255688552008566894683229115281392042076763784268532979415714048599827161111575405306048732927170962200061900171012371916201932463293453203426923400318153826079398369449822496858641817809474260615333575176369218212126765578548138086725325343514493114880763330539704185030547798352902513267950139270718344672954554778836341697788823747060628351114078479046322941408578756159797476292005560081519899782284725205765275132078397447852902940081443117750408086242197320533244952281267273715643252843497509673243831712784399413252456378563719174319416529098801574988061385204420924560954935246972569089265023799590640517564522116890659126283096842520393409901260841027435898512158452788373660525631616119098195228376416310608623776812856328280950422088573047669405948712996460870115468084916167168551236184614902758216694394069139460175489163440234093766224862046934535614885320621477358193552468920805096450708277319830101327812768084710733361453270092661429531144981505685664893477680454966270722845109455368855712759383221831790273596344979827202048741076173870792932446124149370061549326747441365893701098262812383120394573126400431547999746895122020984726851328069461220730536125273215230085692598231057214477352980389143075662242348923231956011133608419963465467034392430335012194706999840286236754862958679181730330462637576958777905235444205259326024818431198749432456397069873048632602107023414660073840905110435674757625248672086763249551882816880132627329684305696970823720326087555103020498906384939484577835447513270982175387259711652998591339143901389069396748704070705008816552164472876439707949561075523459779668139779957503193635620929992910274446502646349964714946154721545116803451136558527779973292643946194836585859623153059031954189903800525702419582636923876250865113369228615962654359331119556989296226842359974760949971057325427460314658090641713156413034928978562845522778491923544325597742469510308542327911623057703933756887565511594076455333886399468419774599232475895832107560871803525849775787434805087321954776615824075465232222276500417891723517388262206904065481426071925304274934936401711975311820710649878175359450395259643600341671912806724141057973546741146537123689272511540833608081930341310932240775706378508766893839935391665776227851009965556818139973772842822944118604879304217482134304743508393899125796086818243515693624663619081222753160991681953758238996937950138261379342345575392975904980010546152377760064742484953432446705639077974090799896779684290842830511538895789781204601749972016121644285315357247579972604635462933292179716792907898917337774808649198326707369011975712263759282517409531641450054202416787185086497548625037801052570781366656050491333821082138121047685666321835399769458282543297674647923736189070777623257404869901401886150594755500610503559977204566404275969227183527187828934573270688630776578968830925423650754592496624891573773635517596789900281080399360437057620712012814017904250774794923509308109847257286480210093395181520722971531627533375554723460656493769691237904503836466690798733072842617671646502918455066776024564678299817119259994774786525306471340540941218202112273525731632175391031146148599942995073244020036298192862524727862055231459164079214749691006588971674008596798982539199128353504442453052160715279918875092256060637060494170335992024625103163087323090659935192548299594466304037361878545868968314345935649673262574923187719595646449716950510142120667872382061697595940353776581982148830276635389116703466395411378338894077454348674772575413090726963759216718016655759892943500688843894631999569288145408388943412809882802030126820730918107102437356236213146469113852732395130767569888576127665985564189274952324723674301215866645143336595872994372040698019076740874780985062200646532538856394727871794519326359942443727998012553266959322929176325195551853365248188412029148153886258922827099058216602242591324491510919033775786859925777980180164501159696967828938043698021200689616638690369748518050364726596242751624736855232403067584447795301897027576710638339966208161442513814964903802715252510358275469393603569809130074103182305245760483283663992283771058262661407483775259703479340589765727359528594086562391626941746246042745057785528825044548076215574719327059116665960142869221057079043751131796222646589093284116819460019312136386583769293824666664920320464477553964194741649011228011621527013974622797753570925620561782489480558190789374075931760792453820378713652801696446323760078547821534566809249739194510926187774677307269287969293072551579139738610268428379496927001391214753639333254623635189924972603647134392028057677211786151208705158968067532823002576590877463838990331971561670494940133335027804721653204119125116021749027483828703409410930980436475438471996992024966084410198565058250978273886003280358472682793470705618175282591879853658385166811044418866324878929962977594727275150810114802422238291685653097135517225066064810707029954939085902002050299813183864439061954115350625630969303138476397869213882957762392656373458739482875385897714292137134074519654385986957135706345071455737610881066632402909910791834084874514300599198675759673675212335471806392043478296721907073572494870113021011696262632731433510645171561409255797901193587882009663304301100442676769767378427459518510499522565260545635378990621100243401907211777735479850805320455891030479721007256680680803335140627487517987921736474168893067824398187960693111000323770498975978091127539095990177674468856663421667171343119739381175693015592231896025076079398226482838846065547722732949938822368043619124466598902886541647078274833486842187415619489767340495669722406393119584731598611087462162224510103169513956065959889894433391196784977745680436742495252141373951757026206130938747481347397213084736569887650316556151173747956511133438247790365581432544291206351935441508859973409057226758199697747764655785878805597732744926958105222136018496418297951086698724110152580672435161209842740822326371802963733833099207068430237112306729173202700457252694041631465278957466000967304877040335276280135911999942738231391375896625065384569878007036432504953406926834954097062781191203607380919402561796238632517717568443869816817880349860559572378858233393145136031980631704148517391768986912778664158608037136636957606549934007119456026249373856540495411889955727770994295300853213921241359984389903785248173367426894259026721012394779390712226348493409366865849469942837978389509217910746954278111259990803913916200325337972587748819876056264816385557949493489393934180530214005682749127154101858794205528226562192039855856751083743397658953600207023527459189502241927298884611573108692049913351814998800548936152859823294221232720080195130247995890414588274148363349638285434673071768813725478242650091357913491816009474859796091220465141509307278162618957200699014578853555053952676759989627980762002523604558682295904345201392291453773256923630975543526538424856721531502070241777157624125943447680876267727258950023830143881571465633232743683734438235954422791880303801409607211520850081601542280503864414171399446103682184808855016853682195678307097761808316661958760058775964121589147459581610499509612521558771011306066569116765935205166791571741667372414961140055831966572936745258690067266577544408025042569196572380759484007573388824629319399470570263875023202951105713080159840791823250794104273992607924090525862524811964942570224201131203967917948215193170573261487524508094296025010642073536243958919513970716897141148565503191338229480406427787277309043639933964275114852594047993468445526092196211111249462506759023662815939597447793520093097587392498407859839491071681448328302687275941038067354091895621127286206156919457870365485035703855093331206826037352026931859814537225425863345176268957749385823049139997161210386320898248194811676659325807585353262088341358338632505153869087201748233503508849138341020876275071719749035757846360747773837142050360439039417610106552878942478857918215582577244659406900744841111238882240874568518778081859082996700733604132281352754221904426321648434305078864969235827669648132290677991271032725832168090050239466684828562380777576806324751144989232122842466849103398527186935782935010993553152566146132546807292018274604759912811732124154433026307358025721615780428106566727000875449743580760968245950776231802296947232540124740257922297490180600068901931842556435355072507330542527659652337786430419677769310226753665776106411184007102296282730813732219501945756112716580137198626190747788542452004074668857910373675139477121891112201061312271076216937966210130650757824521916808759035090703927885035926310952826817182228791240008203234444689365396009821083849181696958337707313332942245045572876888078510971449979334981380135505261651032512135529202396707338908443562677641945953802396447444914667272971677444798848460770152620163986461894312735077903490825944501951737953477372195643406336387750157279806222044810842908513319548607584018761843907200500843213630421821370295644202343777699199912279455952239305450868866577621508301676472801964370976538615757705512798434849764652948179838617356372107949043812500777045925185758916286272828492577039942647481876710814883518422375649370877899511630944440128581332775770280278343524513424111719081110466605331798461614444104659339660031115486383724248674417788876008711459593998000075305635381517532619476049467544677136104194918022980134229938383874730656893035093204076891323028816823653545972759730128882983625376399000031561162443296255544259021712921150341150819083518654655473983691456358045124802822223508252546417587395973384740388668030271928192853892525009665294153755834594616105063904427257674768219220774509470246030108595216160314838992667078122698909154235131511737220740950890419442152402371648895152880536597552216044854197539264508877494655512040661497325761120316611440597556997503827860594342436016570407437185797588000161085170395518232641059267740989618743198526541266088448147015607224048185304950277129572300830561277056165862491221022308200832444432869153901039571207830390181465101973961123859713172978823170726099984560086965337253619980104583746371160396429537238718398827099065583153304508478685798359458964487379883440183318384822063616660095024850400234251741738937121297640123605551148558087167036684257965581923068129894077304737337688200690857384136247950510559839596806615968755945143593542093607748210977907818892749350492325705717993596762904963763787931608475336380833668544466864195169443680814461826482292386835441289744769231501079853425307987009109313582177622207793186919729898263094107976440721966892215232415011573784342273670657485889222608212004433015559803785179039660850243969068090718021103461462887256955534907429743973050972014977591286281574602716391118349976325889896614903965788970682071130824983182475670480068522039111904416373790311193862147166072310177348058167584258013364959308816245894681237880966345125677325935526012390729133246733818181358550167110208108802910412768232218335798129418743998079086064148849854313920979032115498211147311689189365481250388826371802988848172745121760269239292787409942014812664388794447544638533168670124071812867720325648684302953262076693482342812815080535769584867261607520203658446374771485106077692159988279991979256739480081503034949350750488923534682286788461807301822944903574639371485127225419005636668574466330024576094414617133311530769794747451629468288008336294235306234173895752581451860158789495182637006084260672387622576423686025368578466759864056096543566347159519198818745380768834339598038090427612979276692934036921618626799133674067666922875486069940961150644346574339066245682638730058530993228352985724784031070174614023859689591178949985221504392862384251398537576059305248942549892524748455169924111302662385040121739915654347853972602970759276177384888121141274255610001224200161714654271901951855980853419118003351642334454353564188053842922062831443958640313193398553935024349324814035909725449221013239789871655257354973286456575125653607281832973133185007490966995851673386649165678109497404433881962031781515387247455522585804611449753579125138123464887750599265542140207516149425371120400565513849839202128682834164257503203216508083326589330990973471115155474121878706825050762120883997002524777618698333505181450281397826454455258226672651477790183230005472088103104652401458188545261285132957357414055198041968502985990627839590700966884661279189825074960182030867009918593353930164639454836924042796011588968351061184433152339583692342444421541536316862967424422818911677135411951361972495433530747096464572120163328584173308740823645825448074740954749837092609190372802782752427938706281959756541425501084316666169541599209551015055413876002161009567937993683673702872056219540770460951382656201099753447869669684269733583594813658601674097804882173517524655857757932406712627738237168540064820151177685732858996933673442227123616534061232282911627453193148331429062213968456488090788596905187785161820592947845426157258452751362373196267739093557097417097109825014063356269501068217906970712334456086642070816712908829737768039005506380980490285899026385501778436551181215320651626533054979420366807231902320945031853660650063875367945786607705812148631927074786894437180692184458577358145608437094259794830152943585588861969488306796896906295080000211452111165821530145949448847997672831370551881678052553394573273221245700723569492416588220222591204346506002302752459111905838005221118907478762914347137193217495731110287414690914241778921266918203251559765328197453827294296416514201639521530722128529733600549411151058921543258628789201762245030343162375617220426318235322813660469274451432306743407619354430550071154738004049174542833512935359668046666575771030038617013551619186841160414515955497566418825954483656272667171101856266448267082271999086624012403193189286572580962442518935980832604830675733141786803082925973079671500463713301421901686431303046168378668491154536590656134909310150119522471491370336701617218601303704000327171055240547945284211606267612342529792803408326861260022156635007584788361036934949606399727443655896869748265338256283645946299674028305428461468801140322355652690758585548260277652810860304829110374300789905062045788144916218236835865338957560895451476403497744054378948947695519070592962776131948837876926696117828430222985751181281448136867570607843905264563918279685073872254708113354494584333644771921505424901574950841781380314123882473260040243979839538600486570865305588188181127776553708240426214232871875681646285274834413191269389578397095855954075650590668842851383461085055884560298916859272114421697006818431407233889713017104188439349136619723795228560166390645653883173021181550912966057560800084833749474122258626874939558596967482333499844171379099537586089649312524254270161097475085311473116783897849425371367068422564407053863507828458239823529131676072454996041479010170171054488811078488962456232796347362480590349087586185381313796797298750927023065259380221588534534043683864453542612389452699182875299845070107423880002247690307315431402098017722851261180851853634152345947147981549513153126273003520604783435107820891332698634090114303899828700796439689190690849064870487282922961402462944166588075543071409404872680019135670459860380472198364077498563181083692804415833342249894116597371811518607510970036539573414106379299922975920185276461570281754896665521511815373107600067232754727273753861313437258031361775236844140896607192954210786138579449822599307782200678571335922727319468800267884294692282893532474061876087577367238205210907086877967272609833659240922506660206966711634832617019304331759492861541079259215569819389186350456105579749551903902786293946784236899380379545081437354776408327801263422799323822925935169743201539304520595339539969509462528855774855557722667607982103334662659832163105240778482745707967343283274894225140791455105344265304415660115884411785885610067356043096349372159727603953399692839075115799669554578957835317980303907457395907715270029072969822912160957761082099486922626070208941004465088664105233391651549977141373869425410059488702831643825743338026611491250861787864651764563137976264930960238854712980132806831595845805894443412276094773680384223054029203520907525883876175039682835585119788279628448682655142275316384876059328857657224605336310568427226517328888287747651469048064177312077073596536365288113673972994833212083458946701317955908996389822419560861338000968705024182913945135040785379840102189231625944591643963334405511098690075618201177423929514611403728470067889184443076806465697780809052561960706192683974545024449391733511852601266070403834335458502673502677002319216110630664369556758992449346602471811275757040928655990588420154279440001312119919864321924604271762521731627431079933367139848264370886340397964281583387252815715420998712278498005172311689816643730475223782906973320535694171823500141220435040788108522385470622950052590238654009725148461443718860442621865918909838080345450989243303065610139037715032028625278792728679579921826712695420480640619699603487443412793250592498405647473891719371213546183774552554522201690901815013199923317814158481357545709391098301688231685697772479001117938463743778446460666376291780769478243296243884700384272898035365813728953889818422691593137488162473459581382044934369434657374002710173677076283923025668601760550760185563581095115398690540886927768396074014050611392138386149770035960850351401576344672947076227309498492355307363895490376896134591833325618689407409878877808508128161135029837651501701425416824848111478584084073578295646151756830381136776795829582204711628676308594814277501875652707194881523691486758479497554516022698921265211654999990444884373986904285164002579715339259585148997395858667070146004178205395992757712539168573161012532943355577112298680277857960285142629009712840020524017259475011220986853550404266555934192361151423427120223394007148329933468070209844063820240739712845152522748008079769660467357297965414948201111590239063624454305580641574091512797255165613968280736738045675655680540070875955545900277361056547489722068028256923119338179580542039411435389778118335099626837901410575891938303909606234974275291351417285562636969781081762095962977638021038175803940986159697557299308044940979884103299766529198511842841788895287678343475742174489981340420905264635591136436798453073750061962526476717286494631207835835079274921513531767574517918690152824951294859701988708315155655636366806997304993398903051807362948771926311069597050092133108480059142749862336939786336691786376834275939892225425670389932516992965374009150570608411663853572766961345172994039377230730986308144749061782271466120762168006040551311114237088526035867102717348716239533283884953757366338847093052632066573448170720553375802578032682245169695561017165972379777358837731182890134647642455658569445392419585201787195010103299132498052117141434971522799117945524974136225664832397424288808243821952362551287621131723414956431080639310678753074555204184829383710969550329200841597823885237852479662638209155680068482366078937949465454513476785037169685889798125670943886082258839260454230430209116288476929148363977080688416283205193137519917163736686809020226380031030552735032310076550810849342144309090914079978442464353576176167818677262687338298018155173302334803256031522424093781778762935659984240156393158226532961551030648316704130453185781661650561552652034100694776475457257205507283371345794286839651071616675292704459654225881626233025269124919406107193045073879510292431977456535753566303236502224807136712762834093801997301876022729357807135777733482282723259261108817500643082290683259212232689841896341827339294191123858519654813113854845028828097707014117744922266984595354816749258598674701124222576730227699978684516782864245217672749152231071157499984660006830323087243632070704262782441188228449703964443403985530739517448956462247458553820143863497455540110385544963906056597490732204195601731087177582826947609614018958024399425851480162800809836782227432142629852717166689983459649838430386867790962294217776216301560878705360626429952559794036470369076264408786079783415985469644513755955953383783492009163154230330534465713650100608014667643331206732352139012127099382608645175267528279567330234476593052207888887658889776267251948220155559309222510533473689669406760832379367603423684888395688622087579600803706381863841688616330915627144998925970975194511510325929217212469460529850622974569921532625518103588713261644891699586903139688774614233507098485915217416746710878993495226037471949947432167440186676323393712570640388801945040938910697406025141954000005027993699059949772421030589776205329970869324862538860207157972467220750342463100488542922268252720482178076438980012443931986761529883150253821110905492089871161152166266503332484196239916219041088329141445976465750720407046213524836544882406614819740958472630133696991151414898796094914013886324857520268102705112898200612080223337543255210953487069220579115699910304491460692975952612580470681726931623106764501277381317313399547718774808294838007826741247987869271100716216094834932216178877475078358910919463745339526634078339799785405157863361645469031291557050703284268698826100898467622443331031305766678148218746417905750560402112841158686393540961317624069635340508841359340917607967806477650652320715379964107565580985446866460261582814953089470310836280418250449862654682661997938298310509560538158991242007033530318535814019565734404343501777627996466519113482339232416651422871798773749511219408622896649105566171027776448621806970342189780073160353799877297871899153998813512180474735981942973566663968375600163142693787505250667925671979511765049569832058859259244484430578998635707790446201562018511211179811486388175771602241309080772030949832600734825680842886391457039632065788653694818637873156954818926569562465986081079215545500724600031746009858819083914540159555459346097158958247169284340512233412434105123532818178704190517266012949891411565295253783423566734552314593945125182131457249772472128207996662759755002021892682150971943669644621331900252175646404883798758400431899158772336721478055948759630565718336243482116112305256131454499966266692647147105772403105565583673631754944240533972622347963163939042565580826720805410960083257165196607164723533287902891102755990476375126177107414997035696380608245014525547407347920583298933789834483506891969803901937034306487895699512766505152756169525361332851068292766171479373621782879254085957994184454325124849162098082184922525472634475424705011703920095393463142267584377791765480419117909155436679964932130083351415592084157805321540048647030205448584978522307932984043089703897344419643014441872651298044841931594837504453038463443599044321543892217219258034689543298312658506410410097881714644472472431767431856413546584366218468195866073449304177762440309910939754840743987833323577382202249259909980328003372639060719965490437895220468452002744440642391718542229065714958150520776378798491956614332199320014549675058658670236481626259315405029250813629791723835435011163103253233632475959651994250007015863657768023962306089416982052497345642575781641201403798883495059446330034497540403026893498101541703158483023218008664522505733433281343857794851555557685676444179116425004831739801350664770880610945498813040012245040931954085420418750165127524689758118171988790878712251253351601972654940906926075563724135642121030288823290521778947731612070008946709140837491134402962560480897360639320884024240144494661750167252269395370487756962071670955207115179865036524368140411310691351514552952936649927594779467150209181630297211619527633257925565342191116637734620954441352489285179131259319120724651561078084683675600852869474553476203157395763774324030045914792001075390117198597260363411499657581354798231358572577022801333895987905948510085506871280589501427142847146523844636133263975134476457541090538846989893394876632045365833893094994446203154092095476617395048762498431116719144777172268850035086191021818794376002580150683850194707504874276210014087274147441192102716637637033617725142908709038269736307212308649782559791388620999430460003674736620273670729368284579349470526566284488059275964994864429884164862595509484541923959143155707586366876714075128771833258501286399538306008159800455523650592541868113949899661012779223919939652983881336957288468701601172014950068853547517478507975159973519449833780517664823685091340162834235349623790864697139856533606723307709543700284214350841415188735773228535145769801239203935046083529057533884343043334760237002365799787597375104125958457023926832511118116796958979768874019070660691176936814807222638177574689564648631762265181800769575203845378925040847468752157497160695516568623961047263820760071287268684774414907320591560183320986025339299973343078413678659480546237050734766128374865080486470569744073340945132250530018064684215753183362221980924510731950612717936810455888261994740250569473637321237614357387813629870275216641902604291638741961505695289533282317558275375301241154866795398493368952451916984619430769320655006070397825931938107911890765412185389317382294607502257161177559155462467982728215539348633163643401993281114116780165454256109373222533735502053900213503106806103115009091835255400446372212455461863589565792689171375447374269673552823611779775827918927994418567267189712681757537479319499357709136464349639880744671715369616944369255010745079204707848075585850560106814546260553119068893626733906577258347548662965511061435150982656347815338995697197005515557328502186551366761902468339762127568423023108957791747715604930898454775746033410274255655757943155821419872476073035711407260138229058023308732533625225411826090322633281609463986360605664675431490546416419721864634084023242425845196625468186146011305934766594019291683881440234370052745740921047476160643504874001249651243040351824505784395872766259008079256695629132885151408820675982324058451813148438617287539993029789354693052608507595297155860443947944029013769799821022204358792681383976052550353039112733498707119390438894689918177688746862741388267476970918409307678986365562625722134575898447429088112408012765168508837188752393242823686587956603562868200297039737341334013188032630174762174042846294087152123058765433739628566762512017366195449695680856941856170903001255936759629475832994203364633814398297946155673065075819288275621734521186205491079680344564558061597161268671776081568961532160647403333666341874468842877722128892125847108963343096811309433381382894959962211397251571332500470669653633399208873653694272585825489097868369768541559362797881800976861028565520538233847603841856453951361467713606146480409665835733632399350094042089887390479787423204393596027581878083435735874003021145320417462783213551284831546814071484580884098480192295524528482838786996506282244802882865664429062303826357699371255282230128381002658070502389762897809005808380245105241132782672649259739991072005438447362921215240363305971685986630829728049281304610847422245138006785784835554652445747521506944624860316002213682293694813181139844826691830773817368252289197561095574831321026410132777781143823312668422600201429016126478917218774128288440028420161121434395089328305401233504066448088812893163354383711969079030107175499958275156452582135084030884331234358851921149644666712218153587400708049191520080764140519819189016328875080120654046164889739880078113209898851703435214078492295442022224445615673812967598830312688707674675189689621539028041986144897845034464288456613588929600585775007727341872510939054770373502841907661937885380905840645611727438389959102617642569165986722229335386093092516366688849648146068268444002873705141789300756226038120956409403171637038201318984374000381793463608612566099308316398015117120069962880982463797982998331761387414399830797879449361560774437763327672328891805050377340968639883117002898007491901062933356713863518187000754404645201801965418451948423806988213683932853816071295180420924805877322223599433925304460292207957511221400064477797982858391277910893990281910423036384720951333226284996116126695561983659585614529164399712313143469592463115193566465014039893634734438241315130366436019065089087437557113051708541703557411911268561949518841206759214696569677827107071670983443421843535186310590825654117388997496082164158222637367779385745660439445889905851187667787509812046618902375737346729627182179486487441565896210205601330329691001791293069087149612553601010388978408412752918343821579919323466685598456393758745973400582767921029051007635725639168704587692938937371777800687435388405726342749830976217162569060290169144771860112666384835742954546551369487392568671731456728425014685141239995887727799790628986110659899828302366859641620943047714245089585260160501369547781940582457810099752142079093810384897585233151392099487661036570223370535523162154436399963727048141832546639185465059443829299032921740506885130974463817794261278989894077224039040393829044921938043019662494039673373024029663654933438344123883960855451950885010749069699971597760626483357065443840793736149420344413519154375615720185136573917314645590787600425604567119965688704098406182449023360747151312327913994553192763864801257682664065388654794133426975815415005585701472676916112180413649184191036610339811239911022318708200336464798323502421744406435114292354741049492969221222440651255207455368498558963847505657239703555759598125404409591988439801747318591218144304124130312354459797929332768801391193630728982333537209406033475420907181458367190485961244699076428299593625968847588271836654358517398769615193984926180574387620826935545299868661194808385660810828285509879074246617273932517708977366976318144030515574015587088441196036457361615797830382907053943087962794685058458456248902060296376314950236489387827488236737296693418432154834033121956762646051230412608778059651004268245431442465010129935272774766962478052234530760327825121230076857510323018733282302423166917886048361962137479497332586787330101788201905767677432458390858003376228874415070408597015635162537982281065501723225497723278798661171800275211907970414015408747262117232497261031494306563537775768095578771748652565926550698394362261280616453518637009050872441991673617559856005236252744493374202990719018291228645453782742498965024010335014299626529708559581698844237611427994839661100916108873222210779409005307336609978470508647460009037702923423942063886437675890829373656972863196702545075703987674251897087340515031881050000578437973372024003938097689878496045497473144906455895489354791984920427660529017698255974347963817214578515283787831019605754079506415391893615754840434563521257955513008948144092395016799151662628295056450948558987847958366892327158591032253118692623733854763058457421641104481854157183832237859960017888196234668359678995938352049164094613127371280568280915632707320735830557335757977536058069201777524532583621613050854999701371174827626655361055820581445257638444792384860375329033501352078504105232172051694138364843178941822298114475685123573270833074935090753132045404485641752031657692358412237189544117832765109758791124144798119752469766394612968442212833829287796180650251592813992085370506998655668325798185053207236841015273665620426521618083320830877500592731594351280209582425049929675481152295182653379530529653944199393079140558469089051398293408303596337859679865185218321408780130177167871949277831470956488884861137597678506736248738858509705367517965044002306416963188305925536974930283369323190566067815559322228229392860043410123953328750838799425824849267625153193507326083642690238707110741211486434775850760595123662126151547743497088769154349214420340961201680479752257755457898027034711591604852715080241468336339486765571142635946544332260346049564258889956517275680846596159156391811598827522281131683478397623676047660290215930618808002919014006039202495500697809894263873462713130159084503840541032243807025094498145847189852148490288762151316275139641922403980693441268400006313481717018360132591349595901471259915452706681001420947973125399728295249837406534999060780407494464750880998959777925634296929529071183127174681023185193540161895522361685210034970479253222669503529907163533485520136099442449501456844266365112481035205794113407427862257933815636695271777581964163654147029936180847744596295436244492165104288363062194696609388601998513318231809069692740368827062832810011676029505698640230873440439090835468322639504307874254329308834244358729794964504740482483329399918183925057987116690032757688433666284778766995013650942269515017545936126934008680545717887497439709981038190680181552992751264955294368351551692257903332739760626248820703378499752719310765071790879644738048316273271590359019353790926615541701636983647701400631180357395539719591375609852247291694119464918594701616437228858755659726346112741767316482638455785636162095797249471581505988933703491576774272490891327548841683328945340602320235278886362507050454778375525912890208535194023126699170199680231855592565831279792882091334754004640682894579188941195308735830541407903976373021510506910113437605894834820667776004697405450199583787601797276670703768622986890352904701472449423459049904831413532140562682321399028675430455243710772081576229040701043588214794571319165367239258869357893686385011501126887774191248335102187864000401336839039723387672953116441813801233313798822826308760553926436740957191246691065322068610552831206101939713824038268256438076075125217319201099227235652803954861226272864948429446577650101182998812302245556765227059427690633502910943715929756165654075480501130454785712424283446319345614282188238398509569416535256997333305430076902797426964303398892339089738979965337447379986988728599967634747160202196854751219439177110925357324464470167460402567713233026734264131592327958341896313358749407292108989517047209105522982724942966038265905735850513823002645757890763398953697492712173677896321447958178672232522138778368818505311802740092800875509713310687724381125423847829214729375573778565591095968459011802902001722420977352058347749059101958412770637389253884101689177984683839499193286656725677891797644884556221272641230937434030994620816923677717207253443840134715988676392464780715950259714363028297245129390494069760815551561215799503343555407696215601521559433621013519245383502769742475525495468222803574555311195042231682157543745211470712509274105256141191769832921948963826769152513282061722692585771717081334565903821299163580293270511423330211366065578571123260141151289964990570520479175446512166131071532127138001658814869448908228985135494670380900203853824044257422113006069167549845636414016069534528396399853919571653661942540431431082465236325428537254913686661685519464380689282825206127968151060550328195169423803707340569717040837130657483715543020335914530386863454289064856421461455956524599417415566924428057299951493193908651577533362978115481178169818297188927117445774009601325617039999133895231403876707024943717065415382560080206813425759720150483629589273649142743386118730540359833019946078353369500338596615479399087103440506186915062933534089108618633158312033782490723521514850906614727463050139209690150431167281220999504951070177308652474746769469257712634843508261319832947931082026185063300317567554425630804307849618352877228676139296362002165512408481764342107010502807365955316068968608158617130970799512793714733450196112237377623200300595093941642227432458225224855713302834131832701714418052740744325612575884398442749731640470135376943169198254904882960025489468593230871585202924164455835534154151454913086945978089486709467379946344490743859859401772299539231546675019756345938758628712167928223506301921713652396638762175700605838134957595027487814057717119849779953172447122359664657376572520593959476923478212950194308824910044784701304348784021695459405325452684151232430763686127382614656059622964780726129726701669357898331562881989699799187806348327267346535862937966591973065272197640799222543617829334957489998600099981413422396293089053174753298039335816665903640304152462524317274571106376014356503500750315087906465504240044996211526525814482709781873763111829896982518715294644765664499074143076022915182303864968295201929053488236808217508527178080354380817133938435154002175086594055730762111232518151393111894748555424993950630682703748153324090314157919888412079412262244710894576650351979697941177949815645576607976476681441657211656936154076332456368705233517324752403889543383603453833758124813615550693436806791733414947726280819349234633012062309029752125057579209744793918699495090816332285968867155240850524375815805429055034265258170219090218696360552829533654822968460451095656935609633556593638864103164380261012168458671942011399559802522653664939426140005044543357431346075966208559946613676284058331405250681455471777914151465259670055323553776396462627852991654160027010777661847331226106597270959577007370348567041633702860302045924616392876729934496100771337647052159275468270221373859192129682454503367284311598728375348906764054957223391987987881384085859920509545726433602530196925625044809317286233299246511923143143263239817503820467478753850128096058375144450790236644667636210348515310703484286315299691584346952845745548071203824433131727758976313202791433182268872634663765384059160189583953581249239429425954121738985102767843908899062778088479867981008196048306119599618557315414102119979888847251448834469469767305922848978966192700931247331774888043114288066645557881080347491662209047982226131760812878196350404776615994035951640797987950564874485321656683261599212984257224738512482751312495141411186185228785244165740748170668034417509251306007107742777025537803674811687688814640208458131365336981726249274934719108606857206970595341351618500670484991866344996227985019668040048290732699094834560331230903890955979392303927862593551558684289541761103209076235240434515046129392749146836688181081864516427325139353333233977119999286588882956573133274226250415047783873498679356347047749509913567068529740013824584977822587840509011839475416746119214242849832695578574598453599528906077904090173883203189757684038680225841190746137009269116997309039989287375214519278083643321694976139383184560584751345992663990497068338015599112238348291061713193561957417425263432515515613796712285386981869131590737681017225768854991724386292637827003416087417172360484112803052780067465114431221073029295280383041150731438129523797192960655920491366783367506125702194330367789335953765338124939809510917455118002842314340559506199336679087678993978770550350927974793709156104065727439107934707791457473438207608748223033506573000618543974494436408304464171888191878684573166609907084136243373569180130742640408175494924923615862182767363431439440966211333638500742570752268983392712414469492532663532272542369917484117467309326765851722899681052330279088488975491518894455398182631806633382713121000501767559453690500133979388847146436950017090116164801621959578478177627490384781341394177406664536025496484867241582957196821914345446150182053906094662312796866239945157628648477279558571031850854006952101168799778223348230879858735739298169648760754166322996925954083717820209390836812450034005194166845259202175683492615129961386774157979679914550100506965530641656509250195454916813677561497652499123435627524933561469640750704169120615751808553355067103040334125209338520911278676080155957067117395589615450462189031503965924743667647994169397127267004657970323916447727787071477745612597090159932104250667639233030808835300665122028271864254039426195141401554611747347147976826707335767403546274063953603173761471960751678248017166983869116635566029885241186226448894432659505927148733926265188248290225856914330321935063074513609571411092091767295154462359297851706894877626842095860085472950283883528791160027097078583962591153767405552381549545322212223374269427427178771842441346126746841847989284313849203134510772281380730273796732457147814460544289105194571536224066388553920684998820839914469780730761189786894203720008463737980029186338897602869836782300899544609758304323213440368804661916522618888137551828732603644950347376741300961087379772033926308690148640687230194512346375414425366958625238058930852949846648768895173882121178030012243525465416041061809721537712923511789196276941478850072802110588971495933268277232489732388596661755893236295663390094899248944337954494433509064534478389370588985827707198549782654479571836403356169232024372138846734525539635525895276779132001270555522831768899211480626537177226764796712275501846473457892021990719009514214148935615883047900531872725360161481834181065380717456330262134292783810447485914226992388002266561698408689809636928853848791218392101774692858629412628851718530393056542055034786350207069391947420697161340511047920340316779153527533409691605744940616730669794974645760796471627088638381499006384045833120788325659054492653677022708962603202253758746802773506068836971127021743787452725317497846200229753517046615846219043876042364596887547022094606913636165440699656850813310541574382901556749914005920698296590949361504649920369382640796584886983295810828178319650661259763804673109606285391304017974046627966055933482391532885716499872402465545462232423327276205727267775577716359400147344033874052691452680639283835471421581820920184341561955657112007564950136185475446810652542887216800425343842756325662427444665990996226789087106072288489521345896483512058943185746225389083656384875908842481427069514364357717684866148898649971697246115140127890849935873053241989957942786600380269077018398844418329671915403522468706680374136757068603057627236685634869753702757488988195195513118558145294574298906287630770690495573006232287489738194199121109147789455663672202997482644709584962794778752172416411168394883028911730119984413830655050839003740382326463545175362193875177896330153432365992571903659205424341519999488861213425112551266148786440800207699773281670480610854753359972423638311618350641267151659109837300131554763117219074059248254617116945428713011600750936629496201891741097550814341283190123076111080909894744173063137585229974660172441576436528357937045540422339470605347951758647881612488375525810863224189839469851407034669330853307126447503587050591250700122972948230851211177594123517415004574459512709980298119638088872146253111494800100915748703299118538161675799374187351790017513327994268915170193165996579084556859860174719877361259830721711225640561768636926987088428306331923602070791078646259650714816105917757677656089189637384509869135995663154095880822930888160356014856120417518265422582421837665821271159841759524770760719212041336899125800315723344081035044888711534917699493676480254205204940550522810697438260690294034471676119332902837491967360569783141811971203895624853489694256798825350776596284923689971476014517976768435402862961770637209091071955771179768139487870949125108606244490530426750593606660185193555390360464563469513162560236690197094125464954065662765143208790706442020035470923145944506822184240572848088632125586682777226856243955286435859797301279386622894865502781707498162964608959537193682410721228559277867096996435668666340836628862473180180570233403442395854558685436596588843402997116504755480404451763375760154328717375038634576123838483509382430205438353630243672195492813497106734374801437101849977984705801867008653075710538647063245820260318464524934699955940885482546796939858316226281607512353633534876089783878644965384429993882610315380116259259198599697552748370435636109361735366614760433354375682175708222452531048084458081390136101141067883844636115039273091201554051548396160898531503235124349247226838815658481305024715114080647035097130186155870047245761141355100896852903214860503783984237662923663004917233686911663231824529686018687795296833500933785024875421311307643826998661117208108238624348780442947737088973734208070819693880412269807794392462596243236340523564989192335453468837097928832219217865400272422307669134441730081668307464857742709149698783571129054498640752269083124995003789694081237295065338890059006637430897648367312062497979219266442693120735673626496882316872442459896262273771989555059111132877313016487093428421321401830143253045545214833335177075678581233412189020722815485733241297005562679657515554244348030665356876308779999187414833330249685310679520066017268254289302947430106766828107920082102033314791305373897015294691293716772398662134997252315566178616780329000574082235876409153090834501936553691500974631187482783314591591553767352780585073704612413563496182773973644140756722346780789472212126277508639348077057682504026811673527360977644561342299024657841665859207657266534403833447712480813879680908543502006272071472729070605548677357954971103544830840280925012353238274721140136346563551528523107866011817804157244253237507180217047213161476923562885772022665034646998605216205981075419309958109380281546872257871318705789341220511042134024077734928890140708629944157228182338342121551340050801802041644584098228250554281620951231109045024955355417457552025317403141080336667028105133792254169500009839588785203435790779391545476413573613064655769049422982317287929051027419453007186440254664005099065474859181533216627551959508686880175428016657021686361429998660972888371419311286607001296998240183480119545533558888534495091687583147529988122257589905510346682911024161650197537209295717573963585660447187510004642887855818760299111427913446033066335855327161151489292388200083402087645099253616034616297339553421047066353375007141345282621149369535099858955871781386187153620796581873787895331254963903016643140458459210368349994542019045203638682590766561343453893624376756646136918705907526482350298157397870750672443762413286134319873663628571895031219084423163158363341236485838819645067197898528273141174824307722194004242935372567305018421994105370770897709782501229082973746550671047826753850987579506689058429369708248708703172722862058057493088919175066643644068754937172416905810309749512717482986406334465247383315608248426238228841537887023589076983246801363790994033088142950880066967470844945025112684593413666271458457085570187949531173142637387709430332678188547764990475070409045437435716639747713595876565031783741693921752992761791795909732082271186813266171662005417625329101249782378774544435485785546957342457948388577808283099087168787686563566065049721107224338520835709058909858808420755141821210783928753357869820963692264391595295506588528203646000088389585009772099643186008400307679112044305865065849022383693489068303646452120444302229367646475977486759165246681597150826395906835443207302030553842497861633277940978086185167006908757830537572856547989387525042218765085493278809873503474492621284482384629742625135294711515628923783739281124376282211757539450383490036917993574517795767812703388036489664915301853481375800259932633532036408300512889559427392149980197803249915161529615926015527456156949056636241291576851034432176000518362944795123770182965894822612203491666136675333363673227271905998177575471396815993452497492545089809155585623700339101106933599849988194117886884743869292352672896893212838983185752006838791889627515402079887398909933824945689475888891799394558220829923147854571212623468041795314467271885031461612086076055215866375101633473624171266296364287959959294992739622105401431378346657025167183800558517406869270480309422571888783278333909221423518920422515775365779386365134567450853590017147665067019993010626386116796001147583422110191877363125220630964572357255848939342657188470785920120574758675687266004550770617429822791473330651075406773854948510730542512225103349247629067809790296203053132254896841176245163905081527112272117967901751534050973023086010182548344042351742063378455576115275703841691632853698336060491148225592596037223542084929763379819258007711681348665655302684210861712822984726218380238420416798208794549993083365752230419149917312060170408550399155490731821620953055077381519454352695349285114421935045813553354368444491909613911700777369789008053083842469922681569575311687166381786845026892160318020880565559305962037328351999127493887986502543590239762370987540318753651878209155206414928918016895751288405477333211246326287414469943646216982228933613645247824656579358621838700859514182682006666248499894968112400428572994266517632126662162582382570574294759983616645477287931115708917407047664921546907257619985491864498562840683539606407726979761647784437998608530797427755177232721398347240584726008907694752858486850668396195530387192984608525252997845305264139342660659746539893698729800856559150891132453589768881501369662131196044418187790414302930589192541914084713460646893436129971540904839487851619007322605482177924020025716583574006463129922200174082794933146317446579606874226667141422232707642902979444377192271854467904378086812050316823239479018992296116011352692625906449877453797590728800790545006743460765558698385665037408927228929165123690012854711128130806198938315383765949666715900186225472388269678916688931267101766420209194054111588771603718963210663093578105786997860713046538165204015674082575670682773371390040984649221971082551804386854168329590501456284326239000539856249931332277302942566236719415572112751551136193614432048275851546868678216405544010462722110316236250752653829521336011445284003770988309231886219763174926963227302568964911968142685701399613308451526834668012297035686617535784356377119646011523472819883843475507502274890696514850304721273551024807676627964986870787784122805404340609425020103759175893966786334524341556485265689137746152687698334224778972568042944020955074112580105773550032460059397498666451186315163390294283707125274456249851036390808960674718571843340354425482767762571474795919588137695625167051324487536228334181662738958627560265193010240089943850231512764555135377382309723256412235995130792991066826781664387301181805603141975318398956189354052946589729776228008825991760317377774422992619844266758804058430842931999111324172237347545252853742455306487770086358177170280354898398186145311882002045983696646035149171282944383507134970955101550104373239853341664696435521986789332653171419991537487819616100988546189119988882060736730911987375068469937630917245104805500165373104405343226611508833494769406396015981764240060018768844446376389356687742560531530277468463658604423514313266559571588245170193107141650738557009195121791147534430510588101930066991000888152062472914029837459608560895933047578361937174522425321130010963756087973261251674405887863288447199399091932898357587984548189209971115197986369600239703404235006490103649906113859108500069222698126085743818637547983472648671640048225453628862350291684772330955544268493745633873795235632403771976107668454928777771437402743353474500873380663946424192960715327040754178121649512843401514467009625645282164337602514473938658039210357338877083027188597035798014427956842775983291090166686683355847170821394227383695266614536449066275900879393841292124309071908826366628665596535951586776608831814253672819914552802977782451815442961777946142049187203485181466285692608760203046526661726219694116805318023453521698881531632259967294520488037547619918483129115101763073626504816410134835198215869818825744166673513092215789608655880243457929506812348755048872426482354359837444462101997643882371066250302301017502968642811728332324924359684528175472218395222649662087190064822313138889336338433229679527860634775621836326623324885857457283675971645764070612885737680432745886732894908022412308992735178812953686695540028722862444317503745294991311026181139077044001271176142149354992775572135218119467623759333428966187142197568161493050691389049370252497379926727920101965470479545577137436674402703680583668784894869858310121414734441034971973841299784863731049866507379726071013528805203921189208855783651836583207219201746529504394287951114961982264369742443694479161669467129607123115726667725014809726753826807939638003452230900219542038112690274261653229894351522890393903058563198151784122955232100264773284130886000948509692319604697173669439009299481432165691157266444736739623115053727987991673124721947520202327223137727539432543508153734379325969137528499132384841291427461635217982966280884950370598969695500815918484660113264195009755603380986627058837288268182288992479377959074200704630210570597914849210309471815540959640934435758226689962054077118740247651494563108527826483798461882509729947623498333453154436809086736705913151462869094712888894144447703178837218639672740443417507743334419482316925951447330218058054947396565776884702810502957983296951156505013764906448296724633282042920063261438983337458277670757652697407394399277614779396950443443368196845337451043291649653610576641838245193079712838798922369814133035747229341061352139331695886336402261734362338128857701159303366172116005113754222329378014491245608844090461710607353306907826179464462566174787222849068878379546064231770084280609372309402694439807540521516098545199510607095608572956636328350137722255681890554796610267758007237168253905207054353941948532027400230128506836361610249912475662476886190085297183957827892667834105171245016358491800455411145576362519894422846976685167596155017588410749634098549452274596496768968956235749913494800756810487537192498196642748172087965243355491490564938112965648842799182652921624201137199851900346765161553186766532217360831268451195643612220113771508717578619132199851706609820540980161974298254405615101117155223104058757147001826271188508729124341282060110876161476125812242176302702454014270071988791443517380655320960749522162879396024155142905731537889529355056070501851523621525075223886289172379334632034682711857808193344410718735398780953561450787134928867593589080159591332532872589209468520551789535688381121823811818979635734777367117274221503451238088735272303584356886765402966330375463371574626251685565659452249627010588862855137872392772141908975696619655059680225737846110817118352988206157566582004971450561740101239958232591272478414365419462007664293295416470631572720605019056724148690529800722701101327554366717581394369779694291727876841263306693824522766461532507710796056875532046014810338835944810511893695036157153945366894719888593579782525126401339377454345527762103948467493158575480443918621034751931059172567076480418188686242915058362877155082343337403075517485854489333521664226963380032559647636979757872994959352211233365387202232906298508606870278171956719608071023406161223520005843468258728727729273895950302683722359614681606165541309547976937264231767952292868540353803652556278330409927762476427446800020539488054508244241362623230417317363533347157342479119961114415428859227561977797505343301955524896987612411473850995431476848400166737227646978329680120683755867920248127320594937384242348729783602806481863012478921990768646525783853565255234688764817799464830674656468573016258415197145023281047685538928307998175443089610833270831842953674430933550153579367977230651519575745601923912031912766369103700226817455284768326166863046758422295545618122870052916369626884982415870708475786800728074033503675966780430936077143173861492303750191338108041704030176978713468309447474172549195077116380584159957482408534718734304730428475541418850570337166980025820532338186843881041190571678935269575972030805852628987367221053828513648087606034149091834952895701643460574859321673807972779167019627677149198494320958032296888752353836188764571474242651654339624383252793354017485198881698568101499188485098772040460643299676555025911708687354610509039181538328709244164943082837300360618810291462332991947062313010520659609218739142220446887176472916966091537752020319251959229770984701832752188660501634771441610989616220810331057561216693443723392142504373189697862871236100540117202123522977720731111997201839747230954936714719419674431469774887761339315480622572399643941885394421873650007992543311135909735976659863591516857541054304088864098419466021738194686607586150390640438966147535557847731420925968007634311440852886539252856043672002738331234177662031743580448781193065893355625655456286525416266323018827452310132249692223870665607452817331768664126284108262682270616440840398287301707329726748272242836899217379815223121455182324299748191046526503346372349652231039618456837763987471290847080647873178372293726728018403194417909663497772720308245767033027759103999274328361056023492686073537339255475963754714500443860102215545534226351544031763853988782382944990535654272982712317965947949981347658941808343683209028512995306042454760213752590614376110207446681169762757733194883774688659132670825459314150425905689269345019347432645270448816073189474682802827569915946252285220164905987786346555886652001552578256690169719210530030930450204015219174167686346823429906202918907338024380384144276746440592880895364316919741139444958876351443846781999498935172066118685495757841431960220069255276482010380076149929149473682282755268696870320211077658196379447075518906558003424495045635220066325231453367978760084699816601800439645569992638901063749485467050935882394542025379910574289979126341723296510509200660114784089865199365444467016117354357289797849276838433935738745830973061882501259510831376060131194633553574851565030802406330193176218102027146296612250316144718359255298505760740014540840832053368986022743441023766813257168075603007404356268272185522794446347098291849887265265659900558958784338030880750338645640164481348706424617578431095688986903808358402247197468764587441895990738766600464253767996177147901374783978682105367103427485693677527817043157126417093726745843314987604104652335980773556388228895614765328008526908444562463753895108812991356274099962856824917610229529930147386184301972685130983480282688455747559915937215799434422042144788456726687058252760864860613439862823760904919890031561813657860598241811739146991912766316330016183551226667495518079524109136542342873882383140059294540043688478644621658213926111829794131825933463416219745851297497090377260810359472924659215250645712552305763456347645194266097777871495022968061449325896807176857788192382198400334517101230774474011784356807576333657864279154525918291816160343049717364941999653986356209743172110489498595105995481434065498390395751241226556389266386783973834144981098815124976605812616710078534684714385694723763238994204612841577848218571223057912383502690170849008519859456509239397486902610696690714108860285359807892126423358564317652682299760328702921005027862847648882382347253049640466605039564425714456495158737821937110450694752298614596916342024423577335452129438112639008593981222130787702519522307357106327061080498207657568334761340933035965224518549330446697086274059087336620498347676417466132925898120809601084084741123139092569666007548659553979973645182175568642896458564531608132619598254719404517732973093694181063289629505993323814241716327056304699334172406807690343319010540309800216548699657955752429940622613671434737040754579564811600066810574387524102239443899101011110814895093717375022603401361104307062371714068748273072632094130412898314688455729514564823782299891786806476896643001892237631443739199314655196079301961784360789080609218324023942285652293403551249939777051904982790496718774069593389201752315796720730675745952815328287433124545175954395521020901237356003776992481309225341018067209919324281479262871365218509801769643248759600254881178457167676176055816264788912622671545039875134641523334779325557350027775990125292486429285853563262310955425319243810153533303114357694492100149197126342287703753578898030780964170423685383211414667273471609760915944888847596134867838487914033685075427194904474661002920099076674582452503711996197433092678118736492916247602118303198468950234191047682619359456621967153772527126864624548821967919982888517092285069772414190548083445150031517144949475519690844318199411350280212423443946986536902066762526260266744691978925554092021767864496268278696395890483979744879450314150859412833195615003637174004041711871640676994955743664413667854638730001539197606871465982044579738909043969500862092628379545829891402726758488791591292052745317946892286914648955122342896247628950153331310309211766453084336181442364161454155791411932895206538078399028923076926105485345707570219701796373825358329031537758924184329872202787084966064014552731317465838888163599714838481368810780956754291283535972879848463449416053922859934726708243145269505997410582642663570627637585448274572501471299687558886013007147162329457313114689537662581809041892610929680303033456014304461628266220416422124177272169423526375555353143397865033337184221472217666431318212108487207824145768586105775760500586886211276416130404517839379110154186995812992592296211910548138252863992356330687083491173715138666513488153066740526649780802097897278610998420633902374723368087498140908220845034777567172658441765540351205892712814970409664886817482662207122025182434192658108000335623503268391319216738649567324588669483018700334090449981347195817558765570134191928425359129122018405547338124844089505350973677618128109956311761697478002622204321939577887668731398441625643547639014121557130225126361361942982057559776386655555011208435909320242944338682719575181419140848391302913272018370632159195762666792835485469215027227192727359939685822148778074977445052511590550233199982712288527291416350863555996037085517159526299767386460316345527558197585199140173725524539875557127096132238519500565919223744959219846358309367307263730061476720843818803316308728677318843298532503092441989256145219654663938485103216137475403669042227437842330064115757562686996232512945196190393923603337742936711874359162114652255060288122163018411289968629845689969217689994177262804750194101972355690930161899354432132245269464582602222149223724866165470775628236920270039482308118478958916501586667623318935896801316365368776580088355111420142946394659839212082389386741206305972349071116822168917889558363106369405187997963155178003146018280603283998036303122980467644614982326407533972754442487513104252079122109681379340243376870372072911676848223308658157488465763117420911163665280085832783380572653457628380786830040655346406231870918332231703313807976907961635730803794140240196733582681636962967381454709470463219399731911413474639255899590830815636727076871819556595832585727761541643408294871441209410741205776650296884454491432057540618379214599311927956746290117529213678142796292175020051810557431035578992685011933302665595620174482710631812818176131976916090199204957484949715585275221686276777230565108217279423756682614796249647127632701760452875270470916722281864502051187747731912808181435405895150003752943783415339757157870046392411856069835402164791252083291438923082003430487918958097674301169278544044945589900873584870664321550265873454890106692979412997238250067265012726323435856010842357067398402611692324669469598101296611662967232396257554695311292622655769261578519566964769500930387685482941717201265399203971413728864422854985245592476710681935348428145561033459901734433405728523468243535295802124888640949034030917509879377984689481830789096009964880769048079719806905410636719687761042057979416711266616444983249979737710670996323750960571108332898158669289172164210478259465356662600179339728446412036586889760981261416043684794632022932436628698434509476378858212302385540672019970633180508562614659015467076982541305767065643798056485622778425615270783449042477346998756833386843595506152335317070426253027883047186337766171474323448916683052945355767253321752051420007613084212696933913270965366297837859504101212650782504849478100514604901758270729246954706712367876806144094615112343473272042416719942612620634198540597227148437085680876325744052550803364337127277991385000906865899618567074523584588933736248129295724779901953974532886985404227398339785211823441156051844642515249974795050899646895890428804547909781407760785832654600883345880696584065726230525984016563595847478670807100604957208463814175586265607566291090304628474162510134529200166969860113143223017465459112441364512718547330370854308816736693705945405608350713168211294878776543418733217852678259013046303897543608099813465391431549467888098627948915745653801742053285620134538591549686705269082113215102613423852692131619695601178239550553678881275038675700652341060046187832658504840862724905124573725360832347386456550507198540547808311592900692033696473207639621099046860726036656571490654259037869630686871348296168517201131326323642161130500110587739471623291127625879045236879822341554482030184679121130134686232595854552996789455364152520159287639666399988081486595972217400166558941421057485050786968335732236971519724440575792791154258524106305884372354576651078841108271277929974627045015026051969601266256377056350717196889650868108618626682550734897666473634664801592501159019581273235112642900213870554254575359333194466744415173713787442013295107309426361901991970051363979893612609544616871712151581425263505277045719689072385069731636007872377287101060875989703918528817141365998224695802833044124175166012657592083477120777672525663337567781735043423872816560710387639017064236194234517239928411301184706812055303965189588927133620181446870493230374758274183663086647601303354821255652128300835280420969283622199487306053476302176722556780692397087916968494567057576954040352542797906140576169554569369379619137671334993941786917679238967503317271793743363248981018058804736382323378778082664234904463434342256557319696144342081378370160328467999768869629858730318716146558194141529591369977477615872888386791355842012148381814970076412805998835867856661184622090408153947169632389689997154280248391022016140411891711275323721756124671774743236391644330312356066030272817194157495499925782336581330595653457852345805294767184401850073410180840357195331947438029397620536906025477735794033959572918030621669289994917344666083177631088057667213326308799206874492747250096327021684367359277326347964653324958313489284912919634819594871942026940998531095999040373647098193957510976535822656265852518468737888069099481562843675225616328177308554141596352916963067461294220201792696132355747398515222902560106884454672206366856132392472832149395600846752822500330349746152400739870620462458225358655529958642098321290423130422083924428993212235301178149102727278864955754716402738408229416326037331292204390333906751744822618431434178785561111360365157734670409324284825070840860851115565153097337752358136158810398282198212075542419434671018065615017381328384521742943042242044023425982780692676830601304804444933569236312495210543695954075558414782531853003122029093855273781050014063269649519935428179572924707267618743544806590344081811134412562722810543808237950298441412856667998713399868806407029827803926634174422276002389169116386856374795728089441102286788947720607027212636839462903772498222592024386583087004682467364069919894673534054396600795844421054955531615823817765909696234355034561446797356646743448817024918535837242215549563914995860071499824070534947399928801540224245032038194391745620545307982339712057398621460807469017224678424551040911988389316522934570851531582849086462970982428016350587695627895804550673721896518005273062137698975879456158589778452463086700095079505593792264137994876166803092046701284839496264049224164610198608041615425398455816877508914058663732461769065226810255506941088182351470301732526523361250789677783477855843852013361837674113847219692849452571774996018997503996485138588846912508506276930056343756436775541613418830257186692968234623279034132838197705456137989104209286747786720836004186815013163948843790815885290042342998291761070040989896177949942829886506322051724502364331961670784528751053777629658250963764589125539868502501657480417183522304715358901882593035697432245927668424033086740421003532609473592503030252585703482392881182258933559674977790935027709031989563561899914785727965912287240512896346402867338090136095504231172133846155136978959391641491395150615846810893543581578722420030522646328757066432943149851029757641234807187496284805766501893503083032245881003464081023819361828977244769756397662425992813697072690199676875607864432265773234085237908625349370290463580713716031782026894966265044051310227371761871280384052547842049674449815860450804442138140496882668553013544926064134700401276228158631199832419042338087520259410972792622498101030380568013142655873864516772484858556254876495212388906660282040771756682583726974277176805439005555836845249805646980428284833323079815592142143175512416507237349274601834000249894115259213871063183172322815492044756929188073468057050319815857411123913632171470427965685088236943853611333984896663784957813897222607174552810194067865923571954669452456266483287625104552645650397184014314838902883842531513012702544586012637685489445091744584463683612753512584728481847339849036109261956600807955878218398178816369191182912436931899434707338149283351656130070360333615432444618431001381404915511849709574048913458072544038395930551651962285992424519430326007960474728445763724638431473527042187978568942270186576872073439105023855819609927392263622596764009560723025912923551055697592637568647007073070451671808418327786733649985933639811105234689397404686662863231026368270041606715204706081274627469438552996150082577061704326914780400295246540907958566827025480262414019829556998305296365728442772515821103769201124464141827767206736827963078639300589464599586127946559845928718593155008600242474416353435132100582658792461295418959508146265612557485010026447536359766681673161449518171457692746475247295188016483374817859218435716384283190302881699209898971563704248231762445436033467334667464371445547766506514091740108535966800091390897456181547083374989650097146864721251320471893638777188881226412675273157960864716366030698236546642455225474587364658888013930724115994797401994735188937592940764614988640193555351062004536310622489917197856411154203843282271792829965340641757950214055597002044916156628785855184342962097987058763841954184569862897080290121466368254461405515075904191294041878447284262750856316350481431601409806699631391097566204173252477204547962438564416718793253154676684454352418506217421438086016705346373387261271693802784901782851147685136809341547682262611277290137103184717623665454600329209503075321296072740703146838130924565689113787100483987570871578456183869228254743040945415612229515479470072427262942419501439094850893744441605907774181219885325576713096869768082514882595316947801722130336197389710813959372746063892880385244763818345298538506217683246647000622031615261769399502995458378602962771741520089703684011863341386082432714199812202816737256404819217243841213015468059275446434270976672576278461063258608113587560658717524931210312017461203828659432841881042266848745107108493772939845837731814775073811526112349765487126156768464419674217879612656101743818824774177251673725087824599976759769944838381972002727037151828714987163470961177620807714765012356785341790653139101610117932976852670314678917119168562217971764017752427720032526649077971560181722267801528692945867723376769622351456839473977421127443408825348445815073938605750445220615203917159155546414509417109371105962929013826448252803762587894359232695660814217620322822731494626450997879754954760660722444873427208231792685524006173346838868475818803607762012505432687753707782094227317167697691174774485371213881323258930637725782469904701287327805272704384600894876784104302896263668750436986819071958216403881204643902481833540675658015606086456106724326107236977898079142237003531181615250501498445358262492575107284792225876616081499545721330395159643937499722446360176600053477868525070050987565319759218942465476672738110749143095318531642070897527920861734290592130777324834323637788858918930237584925280341685462058100367449652920263787103303126206665947513909714181861887155181088142549169260669744785970410217560365014734777428451159389663211923564571683229171195747380833610526577629673449078091062965007716500189870063006769649974739183421122447875303726222292886866122081181349289180371958129119285573730912953273307657111072111950788367744789792076540173838219121268335433294942301160418924877584834380439706497917838766676676411358410974244969605039223900408565449896001496666087558790578512513775930784534405826606670200444118661355565390299936522013496404557684590487223010927640226953079270928538913663531678753997974336554824545252648683337898646971883356135755868424489977923701802264591243211896300002415152406400244859134685031364925514247238222205727871120282417090806576727155644309523827009844358387778532957250339045808082675139689958937401389845827448936299652647322590843960449989345518496264497853250324166684089012495901648541137374745565995743462194285015301475903999740379372725556340905606891436101745162790620954899059517518012384078814412475014881247646854771371569416017800505900506334064136964512657087428901912609508646483151012324889753666244474122011299044423443456036137321970890270036551803870591820040478376115430593931574954982720060474808545992939602799873794212278297348801028906655708183419027766451089808087967318620961200177930614249845538444802124474646704786767029998873879668707699265762333400599779721834007333429342255558483723956439841359386009965501363542029181683311733119153528963783705383647083006816260070452670280674818836709515938051090035632259099276458617921334776231010934131205495562733619215847665755552462241995340303311334683461903075090367587766601413957242981322186601879731040165514730459944499985973403984897220157038357800250441552890189960286070759160727443690523002760138024386970584111284737182832906098467080568778750316562529299609240895769345165249631191322138655819746170881644987624498224633538548674859576758722806912240361403028056204478530906002855195621254458050882447749773863909904600818234160496467738085835229779072415205056065707920546621619506992087613450960177164023093062966526710176627171116843182362339684512194097199510736612553810985318984395865003731024467361214945927206896796976086784409163398964316113350558043642605593209016514193935035825926551720390150464670159854857833803541032127388636904113956629194525275271508649861105121747544275804338832008718673672115098485468398164245503844500141899312440814203098206324480210198075243553971493037610218950594980679663104757572188313226640759319553906129185601766508238155265815412442286896923439983957830150046864913031676644182344626893303602286351978244737341875866376665193385325745665312308489291178924163630829183982088711322370336741536700928502747926917512212802279128381805416286727991240725578887396204382352957504912447497201979838905736964990805254413531752598546713368745607001230190576170181368813687066004860842890338485469836849412876455829040981731889128103439728807282569439517515269056063054567602094063605404479881960406475614804634946846005708055770093754045783381198243767690226976295154608313301018981618569954513166148037119204683538377823074757169935959948132948298260332598987172070459154489641264103529330334858245968895449312995925588714155716220705764858192507844689558569113499147139364042801196071603614469694103015951732240516050992187154908573500791266113250453403208210214154943736179134767687151266516178438770033834750343618803719889735318666186473132839086800927205721137673849915803045479775347479439436766797463894163980606604942762779599793178621524908884531233015116043258854973191227931624627679332268400691644736423042158212781273749933139071249295009918395773578081429598474968868929287374339648821761738624935592940598077468042244716525914854138852366683397520718109150137729741672403881656900966676053531565623549873408453709630645104065519617373416074268679990169455170378570938910220029056009405597626783877943973799897193274236712865236594944986355801248221846179107250033973513087604042715789081032460492310476738539212899991224976786056296774060576479923984311151539331539473856936129395469803218523792252453934164509664208793335486974330976921962165691190995705887666386566255340609607928566712720010726273591142042952436420282314139911425113929387830136434112988407196613401384840153564051294225781424159188706932937426994877588960036436067090465419782447007550546969613167024957088074754633538615735858871150899172433736783774903060770564223235957683455604880712657152430814152709329293550556290343225952562643559395630835523832347037664333680539698456441933789696007266241051142325042912514245257539080162777233636722539118322429631137975504791714515512695164884596307100208929863592232877362371410836354513389690257656954729335941773562154878947568020146846628620515520293862182000887021759318645643631126424418666657073774784653968852017891934768036472305074735001428694230573791302775640343481665353399568291808574962625491696674051438458430638064756526625617938624749261373272233121818225359535763640583667293538417703172616344311292159029272474838429524515590937258854655788474461037293078581230347049043979851578734725178575957480819245890520851010882068869371037466129366810940595343943393429472376397382184039815409702641381239670407752061109193009122772556972785099709566116290833421017974730758478582312757009538656681348374294082604373929379015551409046371228132131194102805142593308267977251052028011382610809923179546094603440595542090302524266573974121433760604743055379047979762377342222518428521760470925336210435885384808205212299445189336925327110467573370426070785365957051334544812233178787963328695796116405370671029948966763199267410463248364559978532137432442990693882649703957818417072006747047928548595852330695444960927773395200397580894844914906080208959935477970487801841293929114793461044855564856603874956754985221736926033615567351195018334314706941652797630117844679338349540683807533102050638730863534483749362122647384969236075755828321652855872379474408452051087143162146015874415525380533731454727931168249081453384437037175359413029431625731643967875136874080514982630025704889448726126368665138926210076626193248305011895600207896459717471102310358388046691888953660053955185084376569609565034024764694193743997765034217732488383728529990657449705440092996072573366899785449941200069549952639699608799495451129852838021004744073131447461745536391490044828659738756716240093118260017910241080802055890519600493121701421808410554576800294697580832681673783621798097711522661593464990378637934205899747526062964371838333399759516669848634626788686073275104331555273695335803824554775479767845178011772126812360736713774345703409527456851077481538268956225388021841306003923615205845317335586459228430660521879816949231589999642465837777367017200714184131019358729620767634602114018652116400450984508499972994566433993581341516367520122850703172781043048136968468752143134443918496317687832105787083483013876465267874764263648865652102658344159050484540207866067822506753671864951548739357002130912312929416888789445510400257634923559502417466387803193157223921673498737227901177135907955152317396752419700288843881412540336184138724060114828160878549948661282250404115038511428196786084667934709749974660674344365132397202382127897516229687897652373949327247254083455566579546843848504264395625498021097342388881466641333097078662533916417540035931621723221375450805112646903533581754804096417806681639934062054927915692120977859258877349826710085992511634965652776249421328565862626796166440803664904364180858453159790369112398472441360913526997835651137955044889889441724374780462683301789028056493586052609575737681443401923285955442195558874699679627709434058130506715307128769075891715542623983325888323563711789512384832344150075819205365246837886943674952094125596061495640228483614628133011938557550146301872593533882202174243897288314756016890203937762217119065051051527253119551795322702093640622655927157087722128810329335883585226315367203474946403688907551038689241356241750495763960966151803953412224596676430064776963700018146840089227628508325333889110495368890383625123581026846565793340748925677733350019977068205478613593668165761662933844995922336410452750431112510606838171773370907330614555973392351912694154073145777995737768964111286999404698941551018657065560759330162098227331211940442923696672073213826662524941253082311523601847972989002965938204613513415754678643485983175306842868944266130249652283135525524565316111733068063881607201200387425120248670014460846644539131070655783726401799544432213604476101949574728258206948214380126565700559182763745210404474063321492881582434323611166587031093096307658539933727481583772315168076820295652378275273946496176966579175323264059391907813729055939261944283221980689416526279099541777846359955116194784324432475256558382554895677806949830304038878221508921177513557456818377522202145303264154425861828440333969459604726388011213818644915998730661069271206921245330604060417350252766492871504195431766648262881240125979877120254347357961459779601638023623242936657692623624503507662960355510436559657920178457866860608683719147819309194327616472028936297499878603120834125470675616829985786201279626232297022554930341213281203908605127072520195997581628725921811837171191288943787788333622224362977362069387110992684127335157714803924362836561354562903180408527198768753648238215235501324478020143683884778552853933708044598647703366828857945674205895879568284381929841248303323686060255120959663421200605388095537222941274845609663489876914714119183207779732479752891152222409397952762803488857504054989994842759448363542474053388029046823857245767904385103551043563956156018949297871514407579733068472018185877199625239602276958945474819157474323095439540118759573295642510790247314263274321705430159367327909398817250861315052036386657428075792364607398802527166115449837134684396131310067104446849730670012625045379563285320146982638202777656379924619342544087447602966328198126603062844758085706689615501456500111192173648082384608383967957424045022874524388490675341844574177796672758263357867966734537103599584819015811695697901530673249755478471055232879033158580974684887286472593714451687372130013781891483235971004297937691811828714075283425864365505882827043816905435006081066282802051780348157431494436117530347990379458904105752123501426979869837049858901035796956415220511311552987206849236626043606425697355922812983624148277768352487929885552865688802760163720338848477163925041777038036418811419516899594334932579817841427562641524045636947531464164143600086449227003725539045417304981020571423433195068295792646355360867773541107014156664282167347388812514837451847097680845808243541393231747383911834903382274498202523427977977924941858143535543463814151684564556155583125810678957602615757131162582088246141887408590601811828159585297429943722712602558494901594175812461045836972146561078384586370521654874118550011284991756505170237890039987160607346609626530035143108021701306851996471727445084165595527098796911418244867301972676250388543368558030563952369615272292732403453685881179395472592376537407808955162718262409009070754087546702539446388121619278670905409462382488355401993016299850461805663526472010532381978224165054372904762464516806221731343256294035079501169040799989745655785773202106993334986473759418895533500565259105927797921697700052225928087883411274574345128277036730872638246412785691473362908040322088977982054554926804979727793513218515258433336741136837953788643933324865767445362843663204057371354505120813096619666394852947054095229327986186517397431617286472600570925499005184311298578361818092582289325159896930691510872756626703317537417815438659047497364350681835117914488081631901295465551241946343964506959633703969075605155318567605938968905127810515555224012988729523454966871175446926763516648679372325593364169202671032236803201229809278032983150296923882659891953987065488517713482946153754647882454865436423332133654876254274721128933844647191108610367495537409297855594989100524271486717619309104468776765921724755399647133408040534622210981948300909313129586632286468571965873795696212457702894171684487094392590877489012261562659190458057272344500217967542627411198206012478903162941927739424831043443848027031879990873290259180326573178348314645634342191732336949814312935687098719937471185132307416326160225972345129655429399856658001678303351017724245473553003166721220700480449927550243305044097787478519137575667974816734374085340829186195764828127815339135108893999465517955646848236948445271564497280847852932139504666645311186462441718152420037519819219020767826443713321663156281663717378779103788932527308521356547734440185840686443459092495699326555445456213812180645871512944577875291737423230486308064954138378317999807497633332771409398145274657765087933857951090672654493643610673774311751225863794345137035468924365037759201927841270318502949068814167751672287242747732276739722684391848289884230084040991637160236781100512870848277486974480896620021014108376363322719898884874598969573430600061157424438142089128858440453273948767445019301923541227482238425788613877054285406181731626363981694901891712449441769854825620492343418489374699897293692764806125873213924117469524152341871201742719489182060501154608332709485105129104080590870141157930564802060494205352748178520484471163430755686633566694452740072083610684579547093470117663686779848835765331156501454909442349438586293879294335513518973002718710474208639726892345984814720592381319230573967804196377846682866880892770067051884814150556034881202453647688390764008705813520834565000994741216983517283487072337413903700925597592936267290791166215658463637875439442908010459688936217811019441945504842440538830464610348800989334658317643042288079450006452988114141719889691687483335248164646458420550275860422178365585885874660284932521053764163410563140553862317821641178256628342022264303865857537568776667951522039563083338852200792710863312006378765568692992988283784918954158550631444284247010470418039762413156432457088411654347315162345663611057277966748133846306179634154781833664555629226192159384552880260151784950083495580981020112550694309837990394597703980513390724901704994371739383810458381513275776645478457108082289275497176954901630917512337236855072385397398296974033553187929879653546160849323651504465011128114292187917587226035592339690140085467794333516531844720182697884700822163682502348511651313507848013359434085708789347896939460696035571758865863601386298655661683641313028264915261795479261916175326818152028382039982656695488611156386662668974394905165103142069928099002541338035078285236237818985065773546411633535520485631455682171353329349962517787134533942553673214963416199469691917674994671053878073636391093150318958125385700733816685578188291055206955147822157987327872840702619397147772023034830038735197610540428069802304910423727069975767814557221743347815276724438077946819667953432791378017747612214878730982879312629835527948891831948993021125225084994570161135750171832222404556812458699101242425291218407169521485047812061187340929452532044180256737586811332910972295424497300859405175454017286211636984321097809359481310448947743652038356074102605985488610429364572085724529899030880284787764310337008082961326671030804062289170894061153398202254298365920931599062773280317403419463355708662780244975394854114417229223819018808051336645521760923175030583034320830426485351769909663888576266132642424454051933656177775991925756021436291550907672113633393817321256430004591246097592125046792138039334506693875049646678066819122064436964474197365016730451749346545123846112878890078844701497348651365018992883098931670199513221890165963172424279055224641594571063605451075403626418749344144147337366817681101560595304191731402912830512532812811430497838877917186576950410330379833941459411503576046695134105781914219767924212386880907055567281668716550526849630199063371768595933126544362279879727425469876569232529949880555189602359976370851218360420743351780146764279613131522387659876414451737814284907531715113908344829504776845350702579787727615951278621012330118866630970709424004473988324484044592841158716111275920428789115457964424760870241611219160255965438185959517940868836223961983807984461331321050787594054861671429840055098132936433968868678255586596714566141770886059135082243942119323206027691438749130147693518239731893620554228774709420643674225422025957971154207254106240881777793182011727033226415393316065090599940336601603889299482640488743939407364221186996761476436085278430302465036044319855103906402187433282228182026805451150540403838078833945122406743655999142176111141024782916376694731799498919814946870309183759414811644015089639379142938363508921234983437268934395358270484165325675802095463940112164359657931725903701488451871191579638092976169524275064747902946622030194748128654382964924969456555747197251765069284370256343340531403903034808184955332835923464395510098084749735246295269261104823572194002415309124585982551542789147631033290720650950449504652142565969798370715862155601267763720786066586954475060687155794906625395712864383517784521934879165240652334821086951303413532169270469905888791579791924127037693767567705322068279938511938707442521956596718144394350347193796575398647100267332653571250179929599346976139059495757395128556933736297574699131492972099930514244695920349108025874212661402748461603626223181428811319837858825147724922851165424636098855059105815256377172256267656226735750615622343974229043411363763056278033142734443269088940846106116613322642083343173855598643938279723183401018104151339539038556941217524923480727528897132130498265859231740193686070939712169855688884490821849762694904982615834193175224869975288689026705144363122667733360796570154552499116895457668968425348259891471864266226803931538982821952590395754691908498754069179918874457261703477779783729916040519254851694297827761469302364257660158967185766739713339063087946855485961167732102654029706612018710967842452900201827853029697165053277615801176368370737798346216371123036487715300554683176999409775813834416923870555273958154192928959671876585364713847606824640110760645037381835665563901469727831487618965175168550063686667780504301836668341249092970185405954529288390675506773408806378330619551036182909544856058787529704572438445422013356005768055686307423930668267511558677247304796676732370829035871652355765366670279541275784329119939967363836480992180971254424734047069803600422230339148497246884723849848250543081019854039238204882217581459976086516556158841429553763238547762776230323945926997944285812636822030488217233470209646281369167938766747082036643524473959053941980847820405825914561478134676411115141526689212620376195635564540005893533693641203364225976161761744371605956390611328843944676432829516917573724834147761683591968299929765734565172833252794080663635613057754555221628432333439367492785954474827490543005089709087630808137576432810222867912478073165570426638492874998478790655112464115281264760108358537970186407153470823120910864792826840522354683828535172295207678825138090447286039248125093919734967403786937808615914166599388320105631846624648791339807093756445467770515653888375069790770653065804635368247683196578402833107226992373999994932891911239141791683998215838653108518910093302558649716003838805751172896966968526392971238486004593460681156722699142082845565045997820526535467238926856498791983683559256114981646888013772891198335362336629319019107129786001279063737246010767556612433626403692398007806069046932132172589265107570985839090495617971849189055981552673055432315872890610055554257661975540119534886933977799649958905214292128008931538579703372422857097797475492352045912761572465389233965574757232435225124438805293100597481601007000183186692572072829949790650105123468360624138596330825772582183010757364316004804739662038317694693725530741090772191519733586700687611369902795068645391441045847668199688301076156954925671990384474287826499933592135648212353314748851619769948648654719716751354022167683489898072292843039213862707985712288004246362048637540618850217157173188614104290568991760451479947467869317449493535320158149686665920531095326029803789120388521290968336504736796905536437267239742264063130315845779005819587842219627067848543867152985019806569612345677631731223590507746834862002439204422601983339689685733904298426190500327008986782635254423905209304856626603670499842431891033828189144633402819318481688047769725289230524589144625861038448446893519010479503830177365737545796942157199109100595986021173391831922491593289354489213547086949856111262249331793751890107626178161522169145608367649826658814703246377054796279452435109515738063310631900007265284253453142741174758157993133460150836362432003509738470706731014449897487706052486169254515238603634800103965013120433453573321433075569938278949359700215565882196555739339543321872668699976618936749444391466236048778602323795751608997814846629398087272988200995850742019858238785867048336272804818672626646831675063616587708322492075774686834592822803507510405713164458493999474937398275263217206571226573861294517330450247392705822793367654650713419541165386609583185028177931703375854216780174096629069975360698502510114957975509008087797354299136926424340296832133262493626630251335278263101841893058902088810407231295073097005950693734823029264042011651083295924944618073274561169721586503672883499379025080411204113193032862943727141351807018491732568757325588162574958133328962763031298912115262704875837003957741895266757712218691363720256321922958154548100631711889190549449179979065645211090281464008402271553861990498865459224538681547112836707684462370193351122818453285517332232262662919539518859013575095018988330758408190675802758802786332028338131574475317266803669416895334913414100248916800168510404021535706003835351468012332398549214038589198948788687505276558393611397282547836854485488337666089673591912425321125899460253375892546954427958758653742957575991105702414876717960190616601942148024361975127157771366501619277789378340176788331691010185080218497361007344698052453043679245969977933337760576868437619524251206240837000889764515124161253073419405681198339604860564828975232245710173667240876122064658629868014241771242040670387195657581291967961344437548801726992061427399932532539875286576855769725555570097997591277815906700627043429664331048573575080442550281070759203188291680574283033757189276362069191564726058386442864898283365205485358017275991786446879596158050532625612924271725336532776934437758994564433846077987214710459015525178891014450958755837065762532826228561836740634517223463968003429455715469026817969929413768845042114634610488884674356350178523462320741306812671728292694717465591690899024573388178627360448208598011776440907190089509516170452169146564286588550871592812754296735153066855997351715922221872960028173111454823283309556297736386142966239784276552552491609270170185925265520391769063045017582593855905640138525204388316530731604231660265584783728046058431905256753728297116199587029772376777021842496476410048672822682385125033593835571264520517791532770915733796072783235920188521018939076768492307709106592432645829841295587669302459865229797863183822871854761087823346567982811268568339008628722770739771480688304362563130622199616759737907113458992946964006994343917441402157960541669279639053749265790771149679850067299388459852087552701316784291982793581683699621537278345320778942416282277323144780720638178706639299248218735012339877390869337203899686275789128225377230210303614744363392951928816927472833040526543923494836302996699242971626730502438815040818787003059211208817938919728575913688529619317796325818216633087946381698316624809001111311372924324867310046307860912248883493867626509627462867527730981589733161725171725144426385467361331664554040886948662212521720469518588431393635283883818412382270620390327852567589089809092862414957811794779416243545161494619154910509811417903936656071498146988997481442269181703347179298270632595185051548168913007516740405024598130610511015601067249937082989498323796764150974891671894304288573468019945204915512716012916640288776461734593542995623980477520340847107132090680959210929013976564644531168983662149945836717943119106465358760520519851530118326953859129761670303896937828645948153884430753883488390304208578702602476616579716021613584688559023773137602907032369377078667113215664072427533663870043354547452264483142753896860930797175665884721897952974063331124447235861530678303620332564157002209957061549951494404070569700956141696514640905109405064637053004368995695516127032367302298175828477303848314000541315572281097722818027978698591732344792948521140202271144343226175177680641145340262807393128838983228411266523337268447443007598794131278064889849955317189972493355039229705084943060411243563690362410393186803894475527344472414445398207211835566028709199626557882446617474620943867061289083598261101674830544824365396899001069376629113230475357498054573606299569847848300565179845236775018058730707345548683730025853770319748675683419065981488029586608899652248707765955283636765765128946824695558639008143614279824708236983749119284838007414239551358111732057428898380679388736535117848931720941218650263523423092167371696638429298518924476582917841754317157496826888097048845443843538866765769383911711167829948210010496458341621094535044395581967716799882697146507212635477138494717436219236662714996139053408232916448252286608633716312162190174014231606417448132813599968811262455445797048166113018243995733433793730740670902870101302321183240311399782259030789398022355487226030837779881669276214189477692906389639101072042218905793886973383608127136831340625774307753142817514192623650642844897292090710640359715299742098885489260306489433504643643766135649745601414171606569719195868894125797310579950208469193539035273579588749720708662055883399757280743152477228290818401606786714594292917737990549464296101090629080603510255040971010740400480674965631685280422312390912303237932146860750724491600525704423794740951642155478319071685641505418709063929119723933777391409905835347128350121708513465800642391684541991935964479834931742861640623482616103856316205229065201832700562548853535863316246624923048785657413118518007267528914754783499688822279117538423266732284466843470881947598393251321810067286045302215149137493410755744768644403644084742910555981162446352545695180918543445697993453743104638388888845033371119979205588451891384579111876258228478740792496939449141118597739518057877454288120365483362744497823378852899761106687676268693319046039266628678885910695910278022172788879336414718026943751968617779647445297878735911021406098720097934329214432760024120839703228907305116861680777105056503031315349981983546631774976528205947503520410939866323741772948850161898005757786568467965144058629364836669894641463400144976709156279614565886354127202896783362669342613408939427227607293651182022465968921355912902309039098855865521893070447296102269916688907855132088985250621335589059081366822817499823381422050334164872379648030020378270399224134011628968307573722973753127743798614089431804640835033481706464822262576470520879892250912146199415551107727132172219959549250837006949332044974348250305020444489573814731207287160516097054748072820561591167317276132275463867357766362685979271137114520015101656804259395042657428346368342416462916048611876268486492345315059324507419742054874703573143925526976203290533907787519619681995380468810725425651927772238534968200322413302833920268727180194125516293123466139868489392278428846537797641721795432655516186517408975548145362658653802357716663772208384459040808262650691365429159266996904582254231472787343894937374772750651029710988514957983746488162412786607603312782469310355457109122515221834108512836293720846293377500534550467250823494025432575617840772814024559901669312273766070361084840318119722373594022445524968187502145132594756829024832096419854215139903983258325436110096537235960476181991163228921152161302681373838268551832256224707606651327654740706815559221121946181296076024534277587007624572653132265553244669167235881988428496728378346185564525296234815698416715980923435029333970987669175723125013860275608136393365742260900730053757355560683436737980149814459063419386161213584122005980051521734404810154223137882595925938856243710248215991825046091315300601755587789464034483114103234316981534921633965587077484735150858714916577478820271424584406877659780105733556567415402616331477433541470552241309095568613294996549024230461210404136741297231624187786064761127696817960825206874791877372610362836224276476106020327788325566416551210883388209244034045106775692185903665235675391763547513650536115843894817629153011655109872546758714183272254604018275733952231444312939483621934257611107670338482896717946249579299000913179116604390005067137324841865128002461911010803410865236118919499896631473177123703917246334352236305601647320840894880131168852489548466116746944144818628079305288811113877614850117755213296985516926983690196681186925247472855067410086584641830030938682439789156461288293147866801688275821240981342834781729316952503580551129444923835906393943470438724442428962953915079282746545704482853927301308111387742111460252852120181845268982017438117061976544302829462267170296473132633133184669778870002386907708282901537297165902003135468017281822034549952137121450501410392502974216209974245495317175358377363227501337197590169924620226724137281381633913530327040563085624347723603070478054148966801098796476589100815669111323279694287179958230165004606730683846343491721238403662886425320742721484696469237276220173376793415034721023253824177898825167377368404628517631983780466422690352736878955549702809304738704708036974745244919489215227733275633004979832812813415785030539661134771719055408997054367150357941345475819609403496476184636970309966457150442999513539945496353848645237177273330154781978390781831335727665816476829955384660101302812626946969528545012415050323579395066756173775203184218456818440988400699344611675463956765438099717747427139424320171502089603572439138389010498588225070581659950678430001323282027208269182408798773818235805239388869896699988591669437708981650862423494014459461081304254570328768358450201097266477975891220224302564438789560653578801665041892080057616737044694469044542695575380460356275405176991266992104160189454076075359845310228619744544554533794112082972013173295467562053624163494209480059976409324749428710551209651507336259749250624836086515511888718571285906014938940262070375762956819828499440298973608835139540421685565900669885635723179019203057310063484554718832057050577831870286730687672200089741068067106401263628277782727004941403140733934728172187651018740597145373665939366821841257898334707505041273272620424656709625208920489173769261451058322384580440361612002596074435194893459662237330342976576378292840369883406098961855231140798445625951760678600489487861290035296885181373040706941172336330141657018006999449021579455000122663501467612045207139709022380367092536534578590597040736634145961220676411627113510818014949134103038549444891153188927271524976115499516732106296564157609997570064422538734611475107936002687494465701194924213104825520291968368485745834741325264632042193472611921798107794021758727319333247404385546609110566052487974379829045129944805104012883117855982307719118701168893047594048528362612528188131655254519571441220829134107198390261987620519214108333995131320988182236664283599287511455895512268856667893286869854801597629156678618188779583490489417372348367209145179673469645489993643502904232276350500827345087211638957816014425750260442547687933983576348476092035465760135602550267133661133286447697509367128272104688618295572721524039009736885449890855639871333190101507599937437986956322728029306108607372990900257079885532358150557784323286570193592200851400100636372458981491680890846564893783229756330872102473406434249765793276231399845677202358362163982059082814337640187090882269470024536004266398321287191920597213146508732941862773726072232508490694292634566429722334859530151071068096938574977179668699471312454170560321087851520633811648253181999662809997789855550201159851745623826798874269547998121961138377535709354162556740920973613318386498340026960638057416248368567983776615266817451010656220283895565830501717196291220428587098195316614514310443900151349663948811361933262319270128639998241588492928392792028781625670758875142792709378707660781131350114829449725668835540753912289884520708797495013969846805987238849795008427436194698646112516536300400322822615573830293739031761692230393533307341220658607530816860193954859003861613986499092969418867416339515476807862893526777249121997408085675902255103488556068769727551984776218917942870560703525212096967609679465493106881726352820705858124604300937602863632527523287576318017836249666777835329294579049844713408875591916540235312773178048985666830067330148803037135562788496014690719838579340292728334074042752525502358510736896502349672289831304779039160814150486638606790652021935728721610393021037106913347682796092645485294381845251152227915871499367760115339330000187905227085568554445163116282033915041938723867698399817970876197383216989140881953217859399213973167511794173710794370047983405182699607591066565807757833723602887431479779486093473917179860836085612638805798451689717872000088888681638592614253049493148599123620828953224440577088333424778746513790861352629098410901500240497062543256653799226507738368584841605581141919204912989007939576918573729215744054756504325129835879399357585724878920259390347100813945309932479274029874782250833970928309209976625993818503340995541416665338930774757627056935005095352140542965460486537925270258177507667140703905255530316132207027112546920060613467684586539943722134251475768311273797556073458768464786330006584624145276036056499443795568037840198079076892242964758394262625410266579025391475152148014724923840973443212937295036645806396568765256986663844130475782655643541232310312722012226539216725612014492494579543281574092485077585619918221528869388836054109274700281919659198117280362378719576909343956092892013938099548122662966787531542898176427362667957730526542099169170713776439398058306945768101862584602964498590607872503763229559890772489107382502185959122707561765104320490770322706230743998349086433938539362787196676588825633564864212000269976244846010534548208749236698318564288010154334559119604791899257513572892660279617247380612056671775880330879324097505366905934350257793687617549061080865431487072556428289473802013281010715135925621664253251535040596946432579844483504933281622968793236263078167538891049245927854083522627484159230544197214020818543692558600695082117104478701299610629559619875186291878373285053186194157148873477767040430099403240877203403412550455470795112550169820073549246829014505199806154023089345696550924106952352093042236939814773628860507440487805861251061748962802336689373892830713625437051277674802831411471120975509720007149368282421490244861654275973015965719082177686617577279055908640142328252806067384332942600547184605008532027396121635418382684345155211273974120503912664859215422577186332768729805626823374187549320486917793877440407425205370951425780198173421868883484816798443739053487687715093676326962567951469534841557481918507321321078316779433560341705819923069489646297593721393744183421776558639533091757679618213497498795474745339700294316540588307286250774209343203038892856534013997528549248788395394076917076155244942928126457596047442091750028936476687205259530005334355416341825155046888975108657548476387231654793454574362264883826482888594076226000802133693932408492139623445826268719517284071725629385521904875934910146694317129763630046635803304238981276116673232537685515634472516665419376637168190682542841838149781416822911131394920135732988321060285257235574730828252450588705754538641168595784438798186925629292569272534034624602552681403938322911655009686712128431112233718758523799299385034777635983587236983739375054645055145405518218220066797557314320686416103096746616308733031517709360460440753060045116028930644039627553184387801062803725469026900275280016691648314986477533590345966642317198504036480497508620935226799002284753516371670590044250121314981122037411443152204600956700904567581480879388321048825121850449723159079806953115604453789191752588988905833003800143994832265186008741060200002353252460378713684718472256917198034126925050101985384247005539734004239236525840153594496751960823310584445089796873581299680348289046769789345534952624276843880313890002346564226706887024240189840680438661017566940771662804598674094567460975068863305642749419802703871612344050230835773332157123057236723703757382650961627904275398961271860103752592515479567973528268892536956541336171506497732949927319524915157599242682302703636233044943180642169060270383098732983624804984005358532392660488480631074853938137915521967188923211251952152389682143826954664342802980712913210840990725684501461674513721978950161202161287134196544845288983999866775446868414098540475120611722327264871767639923312405768889562038065043433259534469107279054648320287322394175088505257685391946070907887241697001475900153157987586232001737833993521044344385299590377311873189127923668229164736720409356535159340269873886960810440228273080495170567334161416253158799360644421919281029512386352842689103962229478692818521979906375662232010754934082101536018376701111011998047142025321233825432694960066409874299819436726495434921858008533410615398446050366419478214801141298624712229821174859585489696699540625037712659146262778504009273496555757065897298534238915132013419752388587103656408327257008335990640545068025126561293214958650941968269330581409215585363018089474536285833882123435040577005106851287645627959944717800041820479977721655130011063099471332974175262910798066869479163762452348178614441864892610280025494541784150969904834612590204645382729994934943429508229771264660328040485781813135991947876107631449424967297800188880570342936838058763721594974206581302648997138434136229324674863121794242143866002956490860018228811304207450172496344189178701029381715178001101914253369838153870756024507634097981229248603839567233813314652311213690416082283264981993107160583180301778794395110037789226890163603966411312548965077544398834562833265569807790414866721431104053305786280049266819158821002121167161791568090100517438746327930985078050688416684200415383514917433221773657441539196490391460500919376867113948629769243561756957327506216785300068687180637363312646089712120144324651836612398534549237754321843697827863055534188250784174758100655479243744181760287254377339556017811905083921800330975740632207272944815528515566790335227412818478280899782557995389978775786831442310349753457045006024793679797828603356291747428555709607294418136028722978623298036554601620564737998919346150745539514917667686924739511324153880091880290495616251058364215031632914657410192700933347111351908711554393697220552929084334493197132323782870378077002985376244472711250058903342931461538290261832400758226025495392386837229221660140297729523470289850701975194239595982215571389927479047140313694931465001566707366892232084287551412420998050301553677229966492732206243516128421503233158509250474274368909468258103137899521468962068186933011659695183542132310944559118332180845892036061376885810486750024337792483819692679077668082978383125325539599602753898320345633582716265132140143144611958035157139339486317861715261358200921945716702054044738583690618639818166248441979329707191520075444953522812495014748160257354115930203028721976961454460621372777488256151569675851388870036821524700953039174889174825056308474455701979222732166974535032507547858186273948736208201877307210250865171053311622119958758085555213270122798748392564996111380522643860610731466371051853166076085246888501298938660908060609885263021383215416367144485758035207064358165456612822858900641125530803704493773681297824519218960983717966988640894976701284964741538951027186056029883891632705103502020481684619061906959870057616181484596112645838304158550495001465569297334799864648693035868376432970364679779381045249585806397408110110773877928109630760174986931295301995173029024360960471264861878352088990874203484176195842768913557517073659303512105704866698283641291329785881086871030690447277171904980569784320517108239942602392080874336103452813835256746238858711025467681696166680216720028093546618641237897051476181667392527230304672662628598214847270164145947335062739389812904331947188688801562665084003708557630901546556127219209515276400499656298292954151509001184023668761112597654907165584083636332913609064778906839399451848531465880405359238880437964128812928519181746549881116774880334267875878396704610121016311701357142818356209202277838383150776370479471108720345584084190891371480405678127560862397829953360018915110208163860680988370156446607557528301444894454505000415132304154925779792551618422262986491289038752707650156846111349585318072556240350089536000311378753410847039925932790819539643630043115803489095401257638509873030023003365011251765399909274440099059358103643821178391249703168108084239805824303571609209391192621328439808763670577678479882375212186712785746283914273009903271071115476990612628633356165301849723035866734752821682458750279762059990503861795451556600975534881312072913915799006810485054002163259524799405641813002550309137522811034891854800450358889172317833322594013103244660929111978528776233810128848118681147581514192095320138633480463785526296105253682975356220415631221487691546202788228117538860721060945687499882424439966650092909163354288099863572100540352598622232652104112014272535619420810449879227319084977129980075002430744316869853132769990773342625922790235199901355287083278472173059763710352536356061645197768752351003585873582532576125760979447579748287872240435557249227694295010997975993067319766064978026868356793339534082070246794008288447309287161267574348096431387189081594136381335030787143105187380039248259225279451941306591801662844875674984927568154083806174154287462118144262851927848329396351260169836833526805346329334899080553800114467024082581449965110192329824711178648580527983450972388642244458973683418865747395989100570781064191620222068030885677293111651918955658707343519189232091453198362488814673273222305965348425606438003773552669083797934151392416297817355934801247744203894474460091406876304211653068450300441843745501011402751441368343556470969210973012251125942649294540136543509418837203975459749545655964169620510802444996915103119446567668393524476063551458827193561982173575676220029047980478215592323862744379693848553736971183172309650188630223306630549637792391753216019632031189867148395392907458936599408728344236897697068205783558316503710828452627408618240394266870632621598242917851666665866150659857329805355642210793509299673434269431031237598771237661205102320464028594516340490290823083791580777401688473352492411521851405449091412527254778792727596471772873214683463223480391752709930165216395785029967169092227647205176452825132217202371090687319157175654587160237587200383313551481985611171619118621910375622597081149789732012562004103356414410163955281799314097854681459413770949921265089034095321032546708238789782848539900003541473153531940559983512908002883684313143794357921596463321034549839477241349818184755841752519849382438548837505405831052694343353131033712234110197863488643886657069853876028998448088522060205167289992451352973630155384364747158587321838473192711518190928902957217897301088500113885263833075104925125661956988426769078579332628717329785652247667064604094496034963690380264346933513156862443003097337311886057882105883588280584400882339662663211988659613907877070410065810847997088313760161895348020769173332842529624828596892205120152099811798744414673411564428559758360181535385367668285046959840031919234486058522531237092558848974598320909816717445776891868685750762180169907643019899792700131306759983058134388904483697375480366354275091478696568601857756967406422898581570961837425860397871817125513854159286974181235066025589694855388011310923160245365311800693690727003853328715818309714322804744149065827331327809198007940137729208291991389469521031052383693938964559283204865725301770790181474415163866691634989849333205556083915450003149064558469150258812693272521368379306750519928234966908596601547571781484177483460303620956055504831448884383453287615109660132777239652149628845556837014914784424676458515179627043383309022024278461741656805497644410616668787992150718514050135899277030357275892831628072460079971171621322408395222856185065135926499716369402035483027418009002647825341178351050327098457228791859216098862166265110865176309782918952792373386064807870524765060109053435074169451332932961759621149659406711515263075054123754750757778506217670003533600857147284270808385322221504673677728910086077019389420678181549615233145168274221215641921167581260205631743751123662334807373781804599867952724003884583052233934533753790563355390112503312049286642551763161428851132811236015064944349304103920992649547532518217765362264598081096371020387525024512795496901833526586909953659069805179124347396311417022618442024584903855630201820733878516073651404275936741991134530424008590095993336067303534308039196509200036012865723386403930750870274329044858846216485959254360611079973788314456032399175062818726257178668013896807177028435259740510987916612313825256484438619733483024881722064132223491709065150350808733770513539197487170862653371446050674909110379185460257556821867070102282007494878679511164789890630625810623148631659558611793478749921184562540155494185268769764584993218855209536666873374115803465377460488792062866969171078297338709377697299156230203623208536810952638265736053833925205481869961982539891995523332468600855297217980877090775492040423776172569084110632559320777873792276839469521457062039400542102148684372392236560747024541401563202345400494959002755352742803132710177475946370559290480048998707503973005445938063884636364989106238950419939745208085666366187079017801294275624272554830271806326775563485056365193074266858244655717124822299207876882688488033109244985769723461075277212365138637606790217870823914574739119465731627325136220866970065469164956404675912425242038363400787223194567733708981029952700668225370875602487646513387906990992096580995764507403872788023996736245161554279207128053213569849502579367255695090238136580338421162835505877727668214915022854311071365765972731645864707249626908092787236103475524783960239746088711541401115517633365379198347882063163543922577850759660675606742436110396110472961379605001885237246838881677189084012149382312911178765214285306557707026964484436877506791852197660111354496609199142217607649600477822851525355813791019285145655033953689412036713170841593508208712318058764138795151970246823903137501206490720734323656576778448946525143845377273863338143987589203512671717427666729932728355663431180336429077531808427643618813273039240053481216343863161932567721904388630902194959509415417248951050165261708785402212445383751194345603442270272091603968766012700809414416969845094797660042517869790575203086223857647214033958826500898336379167149467911877179928529530448630902789653917833058413361722831640218396529816039115175054456519357778160912621215530290879986929532226129976801135717650934227420688357616768810884326954280066932425660880811995725782968448978440905634058735484500461781554090306461514743036735125797970691964252088310424705282787503657141381255520449388719171558895766831267399810054877924033560307106857726584821423649912598940220309180922026112995333190839900548782199319822659864770162790689756122967130958216841265415662084682584302906610724240243344378944789598787881243895451795568349019686998498841101993164858463938411053030779218372900062184996854113778224391148557704511130787778917233875647138774676063047181551001395615510627001465453500707646932154540089905688697340544100981587836275730507747426544216388147565245668828208227949394366166405959957607183769254911144989785726705911848432906100660937459481876900779743676452582638641876305462127386429192700082427855432570725589801476524422401298306212367410285457162166108517928093922038401152305929783639891523675871642415636793374527295038610895499953766749542429260059849164013947139943980630737345496275915592064771742835081721686406594018331168746122007538796113465222918478412659068499477444834683336683102382208701892839929838289451076117891413852834360314540361430535778663213652260800169274849926676100812018395271487197352373143194522779812535174265667601766804490833772670541972884903858649643743713074902123300136435605535505453965230284084295400925047620891088089398913155262013925775694514682475198093041444639928618227190759741852717178113174683396249420525952048831314184831265072622205754605232636010422739672811220523226464345982866696348369269262764047399295691927632552612604235068610736361597534521816403585937025627516716898259161792116209417697831141007695681907541909184668952329134718963268081278448906059801806805882491973093712874572559331120467769270721639221076677391168206384882039198285495532998239009339064628723078602268072963802572086110568878820526598045356346780800306353156663196020947354061160651612338215352543796411691205464883429856700163566030156219370050883281479239524283828428280856178662912548717983876426891181227442493205479214853473214556060756455365507080265053152710508649617115425386537955245556843574886799030465132232458677824600658300726002184211393957537583224240774349621173241834178998177678601821115575179890853185153897723045487422162499067547051621033532515992707427726812816446755907625359099582922959642505815864797914686935735886560876003600091447924858112924177041145948312418829592499740002822772114452720811331219283295907185961401168293778476888683614829631014958261656052668022185177700662896849482861045396120273999707276030385241565636064312205807866679255440409742369955497825965712380643902111163578277791910570639620620336202491770184003843196525802232357657939955894967071839349452740149461355690062257239202608158000976601430209987198782945365052232431941891170981909258867873111634023916576468865667978941029361284572778953191101835427917547340119968724709350241367001169195208447157758720099852238418704007711855187131729496453580410305473430635564903798547147648881639226753155092460746025012053605271647609308186823396330492203992985902563635022830182118198802010077215910730968379818571721765174861039015521338675007703692652828586466344168993431029347282305041100274769799228532339268734777921663138412234184440967688582168416212599219981175481360549101248989057810958549373768430918479923255474578958750511192920428248299781635930390195047446884314460178984548074158433952043399687207971205589819189436142058675192308245888570258082930560326455755481060832695179135898428376910110427456814029053608621283371498122043280795119663114657936540027606437192795824320695303294615540713410206964026894511352190680275751133238051212962496339905519263312596219552341196716419023342673471868836781318766471754117384356770743437229535240620848919715668003541749050697012176044753641757169607421372172763654563758169538364778614268920017165674376007411797227125239725390216993781435676985441351513833179501197623516672127897332257832292150567561223849279069314232280327358028764400385579389784977585600877185978077882259753059615694941579160140850155010446856715530286493080536651697017923509363789238246659411782665694022995985382495985496267853672648778070417869696710056508377679214298526306278330861406302542538599104379587163976602415240960586852623275529417928795381124045494844777262180044882451327062467227673516292752053457089064294108889066979721530284617790031264098620277173229490155379269316538224256855959339917044693436274613068721106533265053531595538783955318208052200247105975260092400585264178691762109651504221786763273218302488526743024068040418862635486315334054881552389737227934834578882185313065765936875036484505705876439188496216526725312268533893272987271694108558825957760396705049754222485445961197906727630029561625978885416811644801976765411660006709457819591986650130618215136280159091630945515841915623893264902973744864766756601336088338376038078332351441231486181766294955699241498257936987884586336531753091446789705902811490353503671217225626531920454085923277716415770205329800217738750842614934881262875467743362664374178701522799703471601106334834683028215185112662500122037717201768528382068131027042400611804667534410072779569604133642910127073959607058473847711787931695004480348234095269371140176174755310410016204544490598108747010867308321183289869107228922089033795190926296368506812348752588521643728909920928907112879021108713562923787785926485484997203229511900864087575203223877083537520612528015655972426821744137489943835680111357148239640816291020694253820548543873566519976930650788587354268667234327845578119859648624512918091302982226854287945353588588211399937050914195570138556273170419890443464552453664687741396900100699891418113282259984140277054208964737511008711876988962283229553988468484006542263289313943496400695745187358408085394006964952261044275817996288749482629092057086183458005706860354250049377280247373084371470338447000733585253529728646928989568627577936280416391991479907631954288932238962102508567307959791882798865823652067685541132822925835713981156489824173197348137374417054734986175752815407337575629353898307571950593494408583534339553256539140447908804839835266855058708641254415132700011400137632202265256253684067632292012375741901351279204926307000251551003409853656173921082243067208119332906835941971370202297154582934885798001562896619573140159268698998332857729245557684415912724848532332094984277485595212211514489116240965003807047656533235217399401434865214515583641255382131847939780605979879543486235291881823628687965249153200956863947811039721349180445092603620615979590606948824613554148069999384749503434478243110078465941613047411405486695169689128059632771271929369411636262014673187969638125397683670864522363590780569293382690709894132025530672904491601615101319756804922052546673318441285119957123301395314883036746038046526325976789999644100118142728828964964195368265946724897817982859794298797698057246888948702897805884817080789485987151254947522695816823593293123884595236320681934588981865048858665708254140963145644518805976770256945441204912378375463609137458731843658998437422453120652801940558444445441020039944024627380069627688173337323683442578962413587011902943618991762279171124616855558770944928516753640168446895712245794485371601074643962853022009423461777799607640932107947972652469041150513198174571801136926896758582648836828871985523550392210731878487417789370735584437807276831722624357161996720865534207942574046256358306040785371763184328807828847686867292046490987590388309126673804639387622235816705602602486132435439214557075540760733583084690754928762259783912370921119953055405435914374001034905108293681689748643223209359712814408611508289034352547303712593536386478073395244054865107072316947263973073132902408337190880567164604090792079355500060426831631098225008055891543503300912643818437383650199975674443470039158222381789483074961373855377767154220352245684201249358588108184289651817143594597002512783452459765041411074043308786759864367845218565752280034695227144311415797893266223846534897912464588657198739412901682823319581186160321850573158804578584910548678293884140765914622326192567591685070978163207329212170172345881995724171342794031921265734017339143881101396523986283352246146481462555929860862516462271165407589618084887157982861396099720815860354874460275382124336392514835015575422887407224599036352485710128522447045041944450699824937840884739161015726652526556132629136987404431733879938664893063376058284420929217151184589681191073383532356609453421536985032120195454512459488209420445540424578582620512518108249253396890466740271851290169359937912405351639350971277797179219376116090775006196899569952537005077644944589868263143098645317968007378530269763358214958807307892574934052703908561102778851430341580049111867986990480335840425077992229565000538567584493430285392076574790108648311372753331750540438728969368124473320125852240478218445946741797602810291668667751787363951965903651367658805835451589196087850478562893593298595726560548407070932671772687184302876526941904093404242326235490544829051710886011280998429506373566239855747686674118719693464502071435601192211652420930923569710412595984008678653860460061897863003236753515803563487159936285232695779646075079088029636238483773528222258725079304828482362672757280404706590324614741926173418759495744062474917354163762923780330761552932337517332377020380960220257621625816925482293614794048566152730248211018570529249726879853374724933593694554777057812803670416759829945813722466883384505268768579976155321308722659205276247046037606250635125920731960977789721352989527139664214393169312441285769702021287827168755822142456160776053436405685402213434341546772451094730095097954592858534419686471505868263714355937843743070262859788908794825725162667955109910358101566328673239301902232948977947362858755960348250693817019785754653810600189444013013625138846229356924787471332595111876338457842898663877725414819997124745345169456015570924912428268770716879808392843386864381932715954542597584020960870259235205957308347289037316223507285836179322989654254511946787129550333872843591143443636172274381991605500846065591700560904208364425375675103325295521633684865625556128966463308324518994576926742867195794157472505110534173733891235913684846681079274319088382432068940137051872283727882021714853444768685047212108379635356105129645711396781585061415329882252108283417687227814518930668388060342851897796583113203454033159779596207804646210095185093361653998136509711523014871238383497156991844305707550736691041945053521662493786284819055041319932295093548152567138203287504446537124976022489792913290424947054490774449228111148041189867060698616905003172718457125080395880137666661329793839330864658941215378472872455758262026030766193594599542030963806924002098564165438037298688563622097339954051110665300483444567508978659071074777980551478159643693853648242069931096693967211790645096216814091814951373281828897825402655135251306350208169283430433526199248343274845621249778933652862755592484510307769999845015171349860459900900359014482094251135514140342428120169336409408530476293886685284412016310621565752711789104032264467259441992171926119445145019799185536864100892070646712003524811718435369107873256144095188144043724566615792140206475597591777276231831540375177120160802387410161957890711845545706247120758446840186845938579129333936049217431003998824032608799477119361913209659319136836707088565780136819858079091804814164593940031971855425104179763579317629330319468682964634373952923287877369807029738997095941110008648042503787784585968653119708336874529436338783718002039423783908437202111873367956858360805826969552677818389601073234799706158983716813263129151684138048955571329648440722569811818580589139259690714141973803195279720151150285450978688863497716904276163422305455145796833620475786170793625495066008568493563574460462925784772860562376639806135417297677594088447650571229040948233272266665582996122237441341480540955983800025027248120743449139577450552975856891374668402742952270870083127735342984948824300058178824438142153331132067269411867488040576400436301616629498156837692482373051455507161242425598913021078992039327922120494378251016464166858535785601452068410840341059351071504575167469443158836076615780873005641557232519335129272777342248870934549060011770480184835207715371399482532218741288317067912849129334428432561111108508560548040185566555077861939569931846684701484974013294598491225641733669381514731488417233494485112079198398581653181386913667898292515404374450107576102810899300364832960251411300269319913236507191917510721710273399373792738593147987940664101568339949542033249298550038928365721148888499745761573660045098810379744986144448312346617100573502698979161432515224917826345788563947369388459249713823049530949924467561263872609224191776485547329437291090356842078355212828680604485749253737897211957799512818041491598490828759831716229125605103154570445731750589309126986028917461479017927507271108582454911703561590101572476775227005132011436406714350888201494020992404410347708423122634177015584198724503457947099310579454041140749309009312585052288031616022617915286221551311293668956383500785537630769403638757118005044690047139109199516030300480314953491261613979212054065424716213934982442043050120044239287693366501507067456296292126150304212396724753893053626701189492677690694457393858306905676911833299395763202795707384288893263220961443064127317027068552977186413169960172806898251974850119139435456981229177455198964773392125145864763449073291887626643751821399591464688167080125165537514020189068326650125159860053473132264229963127828781226379570636807647672124659110768941474855834271360216171852813812081080163876956846063935368798390380119390123055794346307828837632821217080478032705534361127197709466411830492273757993669190301956407229776474753984079959317108465274490307278558715744288903766534406745047264315905666592525091951672171323444198182754177543895448662730202674637248802599188899328498910016581071034207993919705389289556010766827392853146837664299888180167574127708178327455906358308428701178414482827487745861459470390557661922384382921528064526433967515695583661929329005603902055162426825817283662696309598786829860317438657279534015667656055816530922247845605310925976748672010650658406148776753073872442317577008182597810610553932012549750914900383245096919901740753755353863725147748642832590462868823084191275637221535867446620048859361064034294578274655287151868275015162355931112289765756288217675081659622220562282371750481794034560704310738386197265431066457016772788968329549428505348763203308558681009884801408429067622909760406214132917635831574056635276214880982182009444227976602304067186100325823640294464607175799984213276195469890447324397042212379417435736907140031151623182657311305690401430502480598887723088476579127499446074619357185093528941753835672527958513424297128627258170797608690133872574264046284486814758074591363302954752450494668125606029563792766500027585917413221501272856298456397724409104210202209754245964686934969112852027248865365154920805298515291886815303238244254636384713842231293333702604251062721133423269297350900626732550760774214114368483976856660395294736608595308596788392921594875533261944956844933883990348010243796293072128769597231500313962355941607926091573079434795887078895219743265962523579393456313520735608123035789939498661787009220661264173317707811046962812404201816441999153867054437224641685478970093560347685432692668253857326634048986823450351160966984114351051243410856663067953310472685831230623450705991603444762351585347939940683807730021824550811675520829439922805992618120480267495284737151013896601154980534303798410662106480374899369938402481093868135270649793646414556337836594746490919135584688894456569876758264155945101620277202223880956303942278059877261138713144824522626996272915593071211192570609205769144733383388493777136815528522966715481325621816172773213721389248661747322556774807963242230611080885475899549750466488130508369093989707701099293503036495424337024771427160571388928105706430713545085518728949207378059185093392886382052212567748901559422421922187481090942485041857119730095135058007012156312386333178182988296706272151865920533514338468164916506539028972448609555406410646750220609079364062203213743274388360588329353972169337859690527133334930388336235967188549207799670738208617534583295242436218422087895954526657405810973227080644977187328911290488700379335360714577179859793976879106439641691416589357983340590846873277210816966176100829117466892238329524311889896264022623449863721978153977284856973816576945264910870354753603626507907740504410312438843074445636897650095507436371179800299833657250087350910987363492587964571871360901788439701766712810837001144123186058000902302533109526300828549711229160577716405615882733182976838381887650687592041605060587564518100304024088894896631978857310668468398616554322034731705813389001231915766406700164848923709167112331279494434309282743379331209138027020539973311846788735215046795611029806967957626231964079573646526095211262450483633407847995275370451107818637455723777806591515603457779100147020672680166689754235759864214220144172049243212234184673651826685260087491938268715696021060945895026306163748647987134085885812037303258912844110488984700068804233061956691294165202936667419973495648594813060212307051911792379178193263478726109461594136600020615251132801018873312639213826043523697056217542386437974758715763636535082634118600708317570702058606738789930700265735388820323252281928240309861457642780129739667374538909668121353311256636184763889009877283914354775320333709274900615411740262990187601850135742496269840288921470783969721036563805852722453902152889787448749707085166010974703143587865905508360717171608497148815740334649898961646510978344309989600041961472787031290469232002563392850919247692198403357348882353545084835213441724181191791174627568401863299273467530657133819992340703678855922691850096909225115417991524845798087654882189528351654511066851813395012730032863388555945557431065107288655421350085875038908976952628670112361730017058808476568397698740372254875855516759411220528071979401153460969549814887913949711228881903668662123297649116242899520472225454236623529712043889130130620435035680463670759660479972847449910832838449377183679025514464053983619111906891026157327788328791400391191833059538371292413249208840343067536166187208524775260626287680810303639192116140202713774492205463950922272584635387745090134888425775953656053213956819868060381602824880742747187541931810920739578554701782596900015796163675018168335695092608540368133777735127834659139545923564267337401831168161175655729635632756610151156228702169916273775690390799099500984864964501531694974874250614680590235818148314505532151340689099619370797966219018361281089697847942344708471345487012468255585956330982472661819399731293877091914780459754719299356066677077095214060294651705012978692045671026030020340549914487522271875728237600649034669328908830659493237807864519532483186711104390758157720970619765841434579816681312605720542867114781601595497316594023160149706297556097622922832132114971451809533356483466733360223040997865369262991265981947463844915159585181694685399355053935135311575230949880435964006384440184052367214817848684884580662287403501313829113749297588023943776797000696691212890958025799317596886451733657504904173822676509583029214026203235782421735677616251733870268659084679080797058062233883974675934442478182927402113231614830424909143358327010063070484368749865094349508739321822799598176106203815377895615128326508421087249170578967647263040225210675121661193732453154281183864254260667352524334199703823883842274729626250177048546502678529322776426277975730620949630281775722487426825211215215364928839166134996875083257914392329780421197097341502145456802206197782035169126177233723562269199164133012749101678517223500769353546342760365674448395556204685593642830143494669895540777520415343865132835211004365363966393610995232568146743703800419476987028539314530855241139420529165239855967511379525885442895517961113378632679268264407060994982513576852588030784467974711563450672253335062920031802699995118613989717868856607822676729189772011621652357903063746973735474409325654214309897655993725895882962851372756958726205266348384483547614618931508625838582115369554348169947827724312314226506706474586573563763957175080914533975993560905351114246655356272206497609894001029790263949746820002258151796607766633234450128090045251807518236904749684814399002166913464078781482175273507084891066695741584180502390426638461218619555815480625013269579374980324798720227498471665778898247084662737047280536966674730934657651267920351846648963206280773478434159466789600026129310762472381425338517546833083273515082772230718768913763521931464272123367831417235662640059578792642984986917902256907825442236594299710756981408082012829265990449778597102312595138860753152835077234840699672709082532009273265906075979510285757768455324527396213849919925474719472967138501762108223568348252598615796977141181007532746078862481092900907813667448696918294241966586248810535510294391468717948233733039870473532778090855929329809070043277349910166618337784912732233359286488728419579488537324397406316768211955594842216029754444818845060934544414588612289960020024634263371020595071760639216195719043217225619596736898508380169349358241103739786952209202289990995930658658002736052892521786334247430201859555187159046102174714654468050076488801875527559275025118650747032053741509535756352893537451325022159021640173932319127711042784239391566621334098262527641807708671019751243436651931213269196887458111839054233482624773055209909485808370088702124840843859882177625518320981026156992192041415986930866099785624067357803235176530780756412991887948634471169855443443596546266346479450055746852290273809086557767479758219369319665952578544083081668561035560078146977150017768540121186604399611387043487093014139732972897144346831637986065228557208745164997425004826688685413908951648065680545036984153398904950293384270215928285989430234969946480911605799438364854274453017136972819457140647002959216756685599197164812077194960216680168075166142527737121702777259709964534199045018423922671376542870069820583672451283978693942738785918829594909653587483737187683181735244198323159946937179282511637568893677041163542823987426540468796676302898599352785367122465822137363763864860007266412179864889642762854267347132952109328931200013853300302213368254543159959025139837231165324442371420075362220130846376804047696486688012695848024526930200310897648670765556200075909940498538513089539884916309843723405840588780759847832561654937825847244054604804322630020579522266522492269450984592245461294474505125517768535997955712709641549786675687858932081678352802975960581592539827839606116732638087247992459664953633457490939152619292442875461222034124801679046029573074908831826063785771143645520009986698499334140500957072047506206450675924398273929464591265271208933976707172907156445501194442350462616632618371345500499580814102978122096713563253110056561549839130915418033710508129594045757476774451778556820690279016135791028495389438029626081039925981271881520991843794658658023341604505499175565135014140694820917875771320625653248729978143707687723026998247498504427647748456467346250682208498934895680493182604078597630905762628361704412307137765094085052732485609368693900400623330675315268474804380438843689898894751189443706292668993608160963660989794755231281213016219999561139505696101818211337781037615650175723276945115050555135706559885988499888679870652121066508093864886152264116388744870488360680420821737852141032220945946724661272276219400627031716235735065793291124587688079995725059689830564386769333266634016066051362434794299929073877488271022903557138034416276801276575505774075771811924659014062165381677742387883834231347261247475104217162809355541906206706624800642038585793481513748551954335745062862724425269406209520055999047535531411180016765939144220637758981737827309338785657682387001129524643988510911824061473224162628170394791465942056426775772730409927564061927449601922861422898378162536566413850317988342110583706236740724542039180772318689563619715870434515332098263508634853879336303521911232262889472589585855773097268337996463295617775578535922273960107317903586144176285503124756869007937159247432612684160778007954445045634949915085913586157248897354212831151898896526518410519246703111394881229574571559552032061081073833850666925593269280947431069978558785360974716668801264813034584154216624992685699222559823616753521798086889709037731222727785679517695407631762363521502908982184087906073671104855466572279357387936274673673824198289538697424422266458046351020243659458409877521308022771432663935196777539171514026196924188614594693854682099089782355135307159390655022643528736578116795145235376066662753423679565602799332827464501182827095175459132046682449235806714517224019503922735212685126486513227375472317486400508298326825330517918060280329461127313467015722775485728484865526763005673562824420812405014518294182617448748871862317630315662798098777758227322969294288933951777024265413373639817825477237281778393428286849569658282797101216687171866609241653970350223113071055385493209571526912246492145441659482781312091264931848580372445431450931088883838427518297434965167089058959801791499507619422710238185401711400250631302446721543090962394182479464176290378603353747037770852296984296623361436897108218092461861657420726641662230711959505093030533342041401722941751003275155995030284764676821414347157467241608198145953594521906766213771779190116490063525748520624562648983531058554288197621607585130250674418135890009036159520185598136162669097620983827741521625802475607592270009156189764044474492654855060473474868428854012644873702561183678064843618706595071525112665737768003932026807819978544030019533077576382349511085040910474948134845180878030263305263516331503915836288458359382746039871065167737968847683079837267564761115285498524253929631651099663353218366549427386838122804161642939574590486656030909458122593397790213081317000339900886809134607179762384421226222969698583417038747184994160439935132946095096642180784265235330614477872703520015999886455418054302206438050403948510649255991322011602034745544362573186701240796330676795736662261424286161467290749256256503099815816482435413154499402398305671206809601840386791158250192504305650940503990863699647516501172853003393882442454210022567657730696138283580126587442786467607004148004235901628709963484293000074411557492465263334461641173625115567734761648828402783367853054200091119625601041544660524991439260124690168345230793853717226430198089144393151403743034281472796369127670423462853598147612058802344362837807073895612505851896800908514054424717851633123420341246781881507841144245204315615639474803929156341569291183789811475400036075360411484282083139012053299111374164217013898076607832421906328176342382501861778929623180135958234211498310192496447454168842425484246814837417227217107112309524976449096218913573338339499223129680486265533761787425306101072697238744974481077191985866503481008485829208193961857027347976149029683503498638747491563316822835449309479990037813104704803583893816070032868489928239692837907992178159300439882459522992588553721664351659843975775001401793687745839013262161419906755815662304876226842323588846970107678370479680146077720359314573928317800286692750214983038060626191288684030999152830657274913030401015079869041487791507541068309508991074464648120652097844705673281843810373703159341226022207407204666476002574652017327493333626531248475577420179696935010061119356505876366961558672799279720838460580553995433569844798103424760185694347255300433362358087076577316961348467089317813447371531764208952772316570123749540262777513965352778173330838964836592078036536841787336313279223371333657196945639284302500656674472156708055173268014668406637838476697994317191172046641000351797540966904053647107182784106284061114666107038605375876148895884191188309712349227410314948066545788782934063052049255099531482776613132494054895805617482158147038345420771532377801068922458851771299143672001502381967939733497924350007942994316869374620040391132951779245593823199452000369307916054992629231610960645029796755929861085589140231123665933727031287082392685177209173678332038040434839235587901713892347613244874325294743274318243225747238777568904392534606183524391132945255271634185589642527214562830545049717750852362226097732607797713277832260740984198892735354136531789195022083885306362683643037692605579914226742547221432022142963666487094176899115763311731486157525961927704354015447259863158055111775343733782760616541936130919249956660200755357694713993427658161099580744231842723122921246088358495859200065689083585722038908300023466556965265068805970941057175359037775042998618675330444893585855436413904336451160000286953864402263858657901774764355350063031393832254549582763858267695644521457083206989187864975123730414655798711970160222085604864450482518345924461528553283770884082005655265234567378928057690165705378004963165626055060151477444826282764729077628971150676414817553913124648669293176441614258643991624055029554858020801328630332495462318922692223653195695669693593314038312624096510049037647924821530522539020158945715707891310581813322659807465376267859202405859230340743357352830380687683820251112896913007418543535659993383337855444134483177038361452771325355770527905767920132369731309968705912499549525355906386396165651876359059449028007247185598705232288614774686198829123625121789061325931969487720243948498368314396901592176135141688656749882078623631662721529621987648110305577820873137807562554521912207296358223855339488859890473504292394027639372420023890024203799559487162788329298079947287129401675653680555316921362058395955184055680986763885083405321117229075193144240337222340058274220103198813499488713963932750717123725019603957869936073584931921926123045916851383895473747712295591479064489691514357092520918246070744151449677979595104847087721969778727115045910390877971583750491267450917501305303590035635420158352438839437263276893102076218028270835749957281235485098899579748264597914302174095212633759442145254108592290880095286183301829193314271666828284373267032028097387138491213858737060422244886300631728758621593540767332963826229916280304191586699112002729772210998452542037058342529865264899199703336861010662903671504865817137200464620679359603607210264238703400494839811408402804234507869972071415216433646459771301927142760847144884476262551386388418461153779968794841939196647012143205286603826245201673340663721309938188336702104208198924687093512336708984081009147818781721247593368477029070858057550446305686240318209317214949836840699363565146135501671214474084409892137114972295918468178865605115303942824516066789223714360363334491699986191109351001329337677835979911490759000069667396392497984625092533388244431488727925463517041294614868687363205496994317677285867514534421631407963405474357092244374009718488739413189950373615571794218924908038457564226487821008434803164097709762522276027692888613008263822204240578439306260922751273837273883467394716912695449084030224288491999851066897761001873242888833549882006000675627921057437969295122464124266125731895492820671859563991234946369112853964886707257070519657403436468498567910973921388509102159572680037144805342916591029681583333403245478444890442351407318260057613194309884277404280277656208162955451304889045021567900231734192779772643642554321177999058663445927556736852875727895400522492498412435520553104633132963889453403376476545705275531936084006116310800492466723826951088470555991696043485985517152271330594962928064502858874845879686127480713288667961884210644689929660954261081553354057815232944135238742740301528885622319551767846548097579685752650431858903807084106673524785636389386956530792370493469160773272975390696276484951191253531937111697545702319908198968821328265096711624903524728657247870230560967755887903980533815490633744211919146198832124307100175807991125833183242690561120063372954129204245071637216726713747808458792657663016241596997610702706879539565698292942372932445013158502720142156269231016465889014130360318071906616213770167440225857101664507398721836697814028562308345988349106218888056411621372212134137496801180787999493366311371850456480133561305472544728382972213566844028081751266184981419604655004664049798592007678341382191939999815176151740064141809316778003804928436265633316844419121357157962870155808286045392900796917219239732932052803040071109169920648480159983675277919774717127840593322326320130811255872729521304978803105264008975861858655699362130839453361856711960046654818676694238830573330438004142411716589385640693265560157878365813848263269837870832205456949324883744755902968910071859762719937668666656995188246214923248628617989744165540965354717446706712550315154481922458052828283244058974265097586245113270392020380038508560581473987900476382365110354723637094214498351394213247932014174978757248465979157370011960773169076248947609853343634547999234985295356079264052687761446394372672805071804575454253932666976456046117520733167410421030198263069928330499709346691147264540332206088182683925628509359276650042167590734677053240864647695688363437674135378761672316809854440806716626913778375165772943338172736680351967547359672494614515769137713733073194337606300702974097198726287200735708534106265708631831711851109779550188475834601546379346303311796146886045854250950884293677749158948384824114966913340653548456993818638398213066554356876392351992482858001927317706743187317021173842242254103798537546590373847195021296589303917071235620462666284428192708187163777974437787549354026884546733122207042523039153976126682931675289616775993054254520726482428619064231958681600165491962645672985748266868684140001695341477971375787984696826333917612048670438305874053573682005702005233807555237879600547294557214628705543072328620968280055474829022607998355853829497371657743330360163345200305153063074234016981400320154976529596126074833148819187309664061611846674159738550160327821227852227658449148454264238681429434353517979320568672680899108614230928649878353929320890621668436247288090482071066188520818970746135685287029811352386033063083928516471006094746993267602964647868162568581475475093183342711977097292820341881161512109412005708591782592326621415243711834937380828073691074112434546531750704381798114664828772248589479702620310233177659910068967809922221957535492164605613861474911140967806726742646404489867882671069233093813429553678242553065302827127190959779830388445720594196395548187000642950128824010580524310432898585751363089663183718659868394410743018814617345917043667667061302510147912665515234047136904996361352727177669164100008810644698293520144638725415832707450651450047473770712292287442311745363811221966674864923063252247674388366933665320948966163681423780289506506720000699391646951347943415790401374458452585839805194355914892296597415967973263793197766961308788322995108856154823542482870556471743154540093189170031635515374568371857108602506780112082780223224918603132569114502640884361963702375232264677352182276776441547019607292253679892050468512776944092105526176471748623742888378347541853559056419256808539767513766627027235201014918954763415210960871837869461399929619666583299543208446631438409568820563912490515760927475648214700427803951848590892843968001366587449749560674109354205021581237254609608814760441243236259316076499617970025906195957632484512107258187662248296582125261230755570168623473129109267923168464274965923061861053046428388779248515838844107790283617087296750892427017015648797055074053135696004707744918632936139587268140960961324772890014683352499394771243706086011505539188274110177629972918887441674443560583508750864096445608055743130380948662924103569854264735685703696694241615708046582910858019306963166048579689603178890602083481527437625071188743964340941327687880246491608090005729528900928713034116035285506272020366380606111181489817940616470077159046695521439887540146749413508366239576441949874026795864974615449612058015748997201547033439045650644796479820317969606670083615417238780456734393897680756319933707470965472280368632598929399732134664277852483603167795148323278171677107228747879599002962393947397587210538241101491498391721397368354163294025331210486220850659566382731531666206250402473910721086333330235423143784193573773061903401007069192369538815064916703134851839437091832177047519445999390366795308615093609837003358383009205252154946559135858004659720366504340935109067477826142330219257585836035839749737252521155410442089151182182808138686752386059512464094934071033815783410995390606490810816809530863874149229906412169240830916091364408337945240090219044953254729228858898915721260460363303983509890074224087147804308418891528007170620445415875139813015218440370693264955877631756780863128728958356629230294264306228790833666347188535200615814243459773226351103386498951910257077546603457954671815777687024676704342050722595333647720845416134368722042559945667507176942141933130947368306803177143851641316047250947878608096919238900303526304679801248063157060814566900690283781956888490780269697526531318529298822651727102698685122664594796223305840675110402311909865206916831879819550930445956138068055038113388467541225732560186797793994727789789742814324909302931995537142703961239840212704150235109100134875412524332170102765201548789207178671368865245162972753565497408690533045500640291762436638587649497577371119072520459927059022125699861459298355540703170028575182628629348160624312017595808116673675862982530624747349148057130583102628997882879306684763169040617167545707714408569415513706296328738662523196258467873737934187693276169283902152734494542238899432614148651617443022054511142238537827145118180607054438778934260009487979240181208019727755742448707565670917290864022631587452085649060121534319007569376483691089386121902317767288079250127731611013232206255346130214794191725262756548216621223193419924028205841833040472413308510973882446471286299084644977861546726080016967931089336252732711937287833986364094611184171492942483217261425988073677139258743819360018739189560285488137090000486594467961940655868479944981914720980324445706663708698348065778345198251411248917215893561161156814954264608781412922991314511631090171253485536750601617414396738907567192418517565160992934014994913828465817121875494103724536063189634732364168172701646253128116917165526502112707588412024626053026133102990053959541468147314925158787296754710730678297939866012162927934000677414756177099589549473170012669119400048871595863350729404323034016230292783797100579589691080287320295383129940647495286206521330511234154054474089859203190644379836132354682095278527220089908842106435232669380823098472876144522674335738766634821396998461302038411931757376675055488233058444598719225394296312272039722249274110924934863671349171408725210765762770779199567542143294539860047715432689511746493967609024106827425852259048111696314890158697238325436335373083917028067305508618385182025926791426145063834182753190421650138388413427278333613675675540056973340848634079023244998498013614090398088092925019213378688628895535277914483596160686371173376340474968738989386387492946945329824835860814666932242837630141471060203125732622991969442154416750766990356870987446149941973330925543057200697897786358752873684431191920480488145242995836700873205182130392093663687348761852737598389613182357416110955688624214638571341344926711892585998999918194220849781605744432018078561795184301570582185965404982041571155794652605835879777699314792204763343946436814618406078494199269501468229018415454156517224406746634714303736058915937299564054443011234724989948585601187016160979928689926609491889627860943188252822492150994243230012103372028440892268899940472675765710276258375174085439229239646717023079093632456391220793601692792662950264903934129968109053449492797034003837717631103614446858033958799020588926192963900367301874583184255099015855794463084710749389985899200019887424367784830512068837621512199514089525518612901989010707015437643270029208108653100627374887592452994688637435166656506097428078941451837742334011718164765187933103445940954994238535921161096595101547026929808577160000231906440261019053033686135587309687289512481717798843768785489750267888022620507397947785753590160335480615929055412276519176855255164170455768630501944034060185089244288265087072946196863541066042283511284201924291631391487983528226094918585050842706124008234052588153161595031755693142504440808035589831946094895991247983630671406859804265918959621443664735040609629513187808371134896553383605598460258482006553781380076111961954063267755966956983411660772054611700660613176752631160290353856619261733445402693546019231793113919351143597724767055204424684285377311038333482448775922803714001559693632547127747445054271948174798967189286456987375336101553380906799578892048415108732137689074861214374391179763655123936168570166133032155473674834936814785493643087155525850246298463889421502333016912659753920770678833719259818331459780542563319162427732415185728525341905346613357557612548126391372896697612691049162447295097723121723609137784217643119493943980070273830930023239711304072784152704296423378816333681751591486657041875227788874015859224194276395138311488821959768837904909370363047771962073000553521779327398245415666534048172369756777128689263085506605539897234749761661806845592668736194723152294084943965663344997497428357722013768699950187991998142899203087664352679537477950313040162132365229286427942929018537770240709695355207675097740674757872254802151657415913937645965416681013642940927033337652525063815482803312391959283549089790189357480533325106895994127699640677807802623571218200909375033832398739115216607727571775358446399662467902717963215031221408184534703558281202349094241772020179530734267189676317247305216114612336271969723169107544482059350286150747221725561555399920307893959981220368885234759684101029811332270008384380738996198539119663057898172868019894485158422869525682477861035961826630847222583888415363264471067150947358089877591816967249993476392648590289471658084676143401607518798141264217960902798205581421827422244369222907934910433919967897320498209309044293438470431666774822356260806389013957612046485773922456467762005136735845968460433416786494423219100454017345571939379251863318795643800407409947489516483916831881428033541717370481284169756540128384190746898140506929063234273898435229100806335092629777981304515411069787784332605621340614085212194356706663998183153933721413756601955895283078042105796799314719083505669945663572521157705726857735115443417516682331782996387476606442938858252394725184448084304445996331462920865625174972160993611442989620881681505377916784698486407145373679179197550667005727259491640237495990404125300850762654673391943069335879830168366416083161967567811370943077458380844537700197643614401409326897783804649733547942045148222072957690659158816583082639909482516871041813621300904137113855956049532474301398592840914991248025408964398300529303051752071891495166215752952871123459969445279988884625019552148815852994179203191652289977119873362002927726343184608879904100809824907913226815071629697210982695511913371304100863270767842322901455734237769741865692396774187515359354987742993850305138606797878227716397440044098415614204223496575759475224583486520667437297235443051281223370625253313669421962949259891234752724497078334534252167285910998328496477763710383982108667191379979094255026467831938623770554812628015700292416785729616497066310375207509235475536721381588661879269103123000231767423115867676536145710212276478257352711802677961239050716189564619347733801579343815397289754873539612298771046116460044936641956809837995887304297629773551719269808384002947510659000438200753991547159224620951532888750429181650476710370587525734260449198654425973652203311466024459541845077045964838296104846661467815901505740292107556627655224135335607243516984468801767187426933692269349079474150709587878058893666870901605640259373599234770657848810594972895128055078111207034567139186585783081659898672013093785248456322731268403464615896446217605652291712775314299077376712797124661851545441603632073758518018110825519137429430396968408227154998829113252925297058706647628104593446026304053802412978557599989837057289901228424250369905508857794487480499923913915490086810860869071584565219812406560216120529076025050259235536518702389350659856919798229443183333626197071154715292342348108457175569187100486813467946429063642888888366436074559299610379615966297106960901672610811824074650072717829353090060909892533202656533321406934434416227686978746645156838891112558463826229577503259927620438584877736605164280197231704127219088871095791649990861698795238590415563952007873707587761327683060593616477874666607956626708744917907367930160799041384787174344791274803817651901496142854845328709975055447608758349528367883717649265134253806119151992113282684479862228768933002346135340432748965278860550304168141309812325746273886291719926028444764335850701646401764324278864187493214473214047130170081966807923501163369334148023413555700059904360777772128518385293436028096322738760880930405240335103726875613071195114013554636361913710194616429121727211015228741415635049515856672003754846717195154219654729382197148719450264727542797493226944651884082337036141735936410463107655901093959256240685840162238134072843266695776139482844799577781719391005302443581350820793978181954135989987478394519329946381833895743250755063710203643017802796574345966041710625446029376701140114911983473328681460326456123653875977757367803183280008797813858850398322963927312603520633302310270978308895279780275099582954280488524492947418705699483794785068788330935023819809168261932411818956074797399069992455914310847898590052052852348240825257153528534616243599901765539967142403997587084256283889234551691410969965458999471889883134948873718680147727403667384971330175988420812048248656122479849984733594902149730916722412750745205309404688628415120029797162300877607696821448298462881875799129543008936567368277938799089044749893858908063644760212055075148328900385874124637180120336251356695391566886234396185221401960792369363300619193164110021155677405002924854703437262234460022540786859996170957952765886363049160579634162374649864776143049732528748607433057133121490146333866024150717951761755421460159998020274943168346993823946748604138017437624116243244771102977109666877816744499589160134186463330281250145513854124874890070366028307622125866063192635152942674666931922999693190944807720296995164082784025568452291182176685963859660387456673684260026814998625664203434752346090620622029153500791354019318757689826622833713721070279788444647313346785954309092478102382178464951690161041823558844223363221702301085281512851115231806416257729414779602528595500148863111563270120524103509649189479378086285022389034621819057118627826117893377370646930019516788928634560561078480577162509207313477991289439250228849161840300622940544862061661419763353239314729582548164972296618615070208373511234156564967675629385177199063600437947050772634178133148756825724549916544658208473301302944780057247366831884665593216101793825693804178979159599460015231618365557643098118874816942406705440819108047238508266059932818552054710765094881395889228002944495735131914704380376220551725515733119035532811364063168016780873144756100752077906925664539057260049659053044577654917276827134813201710300357073589546402517081155411196170830678212636695023265469339645997896215113902173501065412826133343546754589418626154646307548822572157073199545295438104030300910811436503259662257375091955646154588226688709144046726857793937630825620792752754605350788977108627551725582427457027004657552726729440623670458349663061130512060315542034518291126391068692424664448503632441277834397276371940225142713850229159320916657354130239438046765061903841308762464377990625003417221798103977917199067550938586528325352560278782784376344205554963530532272349050993566872958286895827878927750470730228389168797351454145918463962549608836619555394274037318696186049675195979257420516850872572100963336687152784245627400515402340698152792257920520571031555073695975714941081592525662713011244556934384656981358307786104875346533738774631660532241222331340294553251511255895658265864928747422495462738356609131605951251348550091681903291230091239298013773073962989075939528820117197106977827754077710225221445971770584851819753765827073230602739988808632733575214994815354931014218909190518192477999929638872757737855694291765152968992628055808787079150379504386541140712713555566354208997658035357488792366415119029987528732075229106871738274493593274706772785517342741596479311639609488395588860400452347567338724275874505114051568423294032270128791315468192279994021722624638917975374661942567326564557429774434412932591931154057286030033608307442861418813977560891177071592430146329325610833385474110011981084340668293626185299339156037196856143071062071152468145352166073141863558504715604522202695766082547892080707858121494554568336852616057059535906088775249928163227642039029065379089408511020765849204201706992955840463582116255178876614864563568939035917340988369252864044264879811279204561796716138375901207064561282874511812310558246360360341195746120921405627584131408326108701418901912321797628422124303941566220882353830739962937260388846084067795294912926053753745188495700162814104620956749160801418518676620634554585296243179530103732558947908876089816982557497798677424151905739846555176027188026895527124012501217210064523294293156389533715466102100950767846991452747068365819754485286689772464296662369328678240777935884454319134146620881957288884988327611320544384106061715904667145707714582975995430914357589306934170472539152824893130585987015104849331468872863027064343720148959609609090857368733664497764075554697587580256610700839038623120068158820454227909594683323927634961500018795821369177882786274472919377448476720415379673097833918889721672495351066039485302285889701937055412146108187869433227612575180318087688963643581132016424470158185888631179790131145774948860655132056555843675494700072025514473280317202975666203605469954692997089867806439640041640374804913482331012737102969145411894703338059140256403993964604822367843274178747136556362162072747414930847271266675048371561591921207806941886315374242226563952472595529355505906898088422120978004247786431548759593658928314545404040474130086144999824939736473163769315403023868974347279828935228136804180729813671428098831979903346069320080317489501319411591541474717079613563302393668639714013613173913440952869827812550952926655960160448225554293594869213410556812568291409744300589778005730617777262887945219433553396166521479403125947085272342855757745276083667264267812979469624118561978425908039283599605633659233100662233767474174089344122340912965846653075731162299294842613961727187284554578104816552048718164681153649591266653550460884048125062418605217616859180701996022114107727823298180292475163880730218661756598757583247798415640549013550742416446334986327534740129335043289560371863823657315658817745086984910467431906229164403198271934857749043085761765350280505110005323167973841352772176807792521356063946143280218838055947884174590399821964699655571297197234918141274707518242817954563592894716667980621343888439093943167098547038311941483195276745335401716861518303403902420410157972114266618196819433880166674552696560806727395741532253920297008587792634085889558463155698601116229044324478439904347047075924079424154098788295723781691237079035195980498916365656959146092340706560437240176474910911381807675209542285828544330795282885769969386332841578134990607602235230538739529668143051947695455052981258501152587362671073534650323012352639308625382945483999846324216980165922128097627657976881477514050258905495681898403577530269518266994806331253809930942037914509955225581216373778944438379463823534060628406159099911602114736013616361958269018962826276192024617691185913079506498527957976457434618858925545755272882529828801833471659393861012364615710959544271310617278262438965815966177813855918109366224714989245258716825637319318720500796716487053621976324035967640814665312400619777828953756507784635377580906040289268818018839772309883700462743395447515216432977247228608853831141124686436666359800805356569431265162477537630662908583639623917874103367114883601372483195189947291089676946824231915276610534234403263014187216815969368027853747239635221509423596831049593452457294304866596572352599617522737284609312735538709905017008800894726843713234673966774889668360694916812458676098743303788729494431939201902803487900330471629434707799061521896044545642968461606010823452348759724149082933962293143758151763603595109623968895431465982447986253170511020591160317672256605250866147677745217537850020567914318832433533880616204164624117825555719210222731756540785954278266624096260859882665906301142273467206335110947298470554447275315363321427278489161427020580892171791362404450432735786850395510227782530545393513939471005831797944241904538470707950756594379193662089494245540362568265168622876457171801499476023104702558011115002326288955885370425604448597315264855053232239294133942822063507021505053714660928842087135139431279537534889793096051607227301781711129628083583217250233591968525380889656877102246951972014340230382677885486421989176786891431561692044045877597434011465436801544561221315105123595887490956065146635399561659826376251099779029041698301797458423513360395420344812503141077306726209899302031357709202181072196118089296776540243920552764081930731457625354682940320859631842678356032437018835383073504170516116794058691491433530235332407951230005215816107342766443497678395834073976603285980341405304581005225961168979077785757236358673871011021420476912973884486423037156023501051984807486803437719072546347797401103409693312286094135236305823379161348070222425053982332130873146566530459377517349965141524246922986523167816529951738815700096213463704266571793690590506592653345874043625958161903508185124563828811005417140661100298864972133176829526641206701586129110710526619189542105138650292895203100622817219296365316086407451458418718687218571990594247235456586470623846528388112471154582580335369084176134122533331115810136376483413287672507915654219398770655169891312523819250523758384788907824267955210593336654163912844962340329509095025474945939775407113413349057430099086123976518265732518672731065894054215566647639252220440892423975411506353886324859435302590535262777497310454303542336498512509797513443382260469920726785826736226774984630717627332807476373485961046259368575738593540319788357275865506770088694178569700326210507010066457616243334060665659707420512243079654827794037036759250356838887965847584405536180225018480087117149383671662400566327729994028324161349139762277942650457744966320820888883625063744345034536263737310007390193325232056794404896028726334536574685743902640249655544658674995175201639468207827385094812635451197066512073363870230888128258928878302730205618479032269492264606262982844853871724399878171155213579392030338492160783419463664071249998258412847491820029080332386558701997907960854226047290724008259781186194602036116237855068570729591752299442462164106412003608030147102553861243930374062803398592712991063350110120144068130511108470338151824915630737408769833940006753575604462621603877308616219986728630561601391075617453432346240779104396113516433348046832524581809506295343515707490189330388861545337381767012487119770075636948299924367435903583770869992757398807207511330124966161841755323793499317982015238715032557397199271334050654042152924911542877283010250967994879175530167539775438123666622574867666494817350365821737511797541926168779536324445031526424726146750196514267204558894689281353138946519790142950005127799396028353825796045159666336784061450530939235604785123924319635457435476494312969976250155165722797417358844203981288679874207659599492002439253744735760307242255041023458939410868272099269087751343587608767942979764102325434318225840770678138838150555388468790938927527225664230251018520334930915477933352839418051488459748740300597446165186561246141374873060250194487302764095266817961339865572650422682280048148076856859304833587531659432498194224167947674410491190670119267683764841342424411733565214866776241500803238788555987171684208644543457318937925323029230464489633658813562319392105383564443849861435033252284324979352677662583100196482344820157350916409587384912817857724046720036803790912756149537054485835893289214236730563178862177210307381572753618957337498476688711257183081753826648985543866710665186154603688584785565066299289271992375167947799928788072451131137535117440039323639982263679682547738026088487944910517146892181786055636044345286585770992483486113998003389504848994429468554616234609381374594519016092587332126177308007704806030411007610870571655180082377122995218832561029307375677262998629283695302593554081623057898302238554848404490058327545686859460369765552823664564154821719776482961651552351315793922945016585016874423386270824944400323074429064970428969465802776770966207522132218030674426126530474519313588685697065560610824313431781339754773068508193982053647448399831096556717980246095574520803645148323209653085791826506542985183301128339182663458266342125890185618534872026941250027469405694633213548843812464172542204928791322004307828463578375733106455452547123841384747178040951717257111060802284093304438120059914558021065915714697534213810094656894465503581096028686762509821171911796815974867136725624137643906693858795900635047656779786101842401149310950668217974408524342863764288656968535634722667973825840054618195707932451349302765713551877511868118119690763475766082503166068367664228467631000530390130426303312978108143359089216814160173907606078107637646036458221516604729548876781593411449646431266029077863910758042695938219313114566232308338118267922064273074655195317262818574148422878152062374742019149322272704341831100795676168433849450997382777459093115118549105933849454805174946807950780584069292868506069066607776719850461560270279433151956519699704830858154189274392536222346384418281001111600319725721507034765062755495111342492309546272193022193649403247086772779721719822484346962965566077918106233917184515426224800790968224376981288585017419120752317653914205333020289493710650701658356319620156212250298207064436928116141396186042596618556801628341277146152783813449317288314213955252860822520694860244126007714922566406296724452300332796118090314741788075838067390551656260520898404046758434442822749072352389083697773522662410008174298838606305940111240430390740085013083633763486969577278158271437925056667907509065246582284574433608559057474119277631650227079496749025740287431203967330162572724937477002307871708526861714370389970841123043227932286157936603103876913060901882181476609160287218290176285120932324790459513124319309713526284317431640537850460917329301049576819307148898294214654594455940457343868608041175445007142731277940214853937774280970556824143825644281613492577831998116048075176672561027541267330535788736115271095251985339150136105813669817085175988606722972117729535387101327316071276543850507725918264050146287590249081189343046774664145889760932180080000996540377065174382529485290877012341768170515005443237258152282624862173139630953449193153445926855283262321215006899779142118096466274163690870466882792885111082619601295729719517660457266074119183195964738081042696741902967279963499897150420018579633370854123922749025946579506109796024996835847172399151112772983412849467265536559435627978634392213287259747983507362921843519072460970567117189851715852152999908028558604909459199516786388260677915065036072674533936653671951021964793654870987203679662989270948765067585113933157852473006459052033853231039387459260964702062821519549148592435800958327921110594865052603928782173632104289518873760996058321596250682048463613162960775143629535688280729199578247492194536915140118887643907846772519320622725379280523999277793105981851588637782458326936294489461850622278510436106292962071519907190441034702972285941931323965975063058467925922088043212864176621768216226243772216793305724970007924200235553957872295320863718861958168206903808361886644947095841248399850332645294482515379982860438111939996986320590573977021440674816317618458970927976855669763177726985325143172776454177542515874083646074385677695549296253870652211129825040192134443514312356519725914068317018072907605024049321056753232638108899717179074371092971461008818057473889111344382965035375498918860397081714921655173820332202579687535569109142712348297443239279018062581161220241745237417925033367767652674718165442366394088792483243597347867124900538984851216200416253616067370104825025207043457356977404400010831886451743704013077675236025625166138108553004719479353237344022279629700670347845845857334464831135842573939723464311077442168681214717785070141085272861051529234023029298106644308260350605279591959226931892710874636078246320223525953388382831061354237419292486547818742185014994491609902586570300198994241186466134719672886576259008336410601122668132702724318736740963089769301354183000403578125388908345130869150341370463784899807705231683151729851643054177691495696646039851946421512505795291024826586960021917640669346296230579284397267071198804136201692869741643353846166963745707603731507233889533815775564813403809726176367056260241073722497547296195378072422323816408154069621560344851374842865866557250860422679410575499702678752361095928189534944032292290758195554524769106000894227441121812345114461919603702873070904415353090442471195476670778921731045200466536523575166625885065080703977114818351733081415402703741615733479779186845948997408728635134041202705510884314095003004041673316883485329034593906404703033192665117224300778740605405685503319163065111369193125344529047819196497745929805523899382018950888003921865826127453574412725842255807062599269612245026626139400075902740924962600229380755814380037900571341883547673210809551684377843585613619555584601406978802369281325986300837992926178954741591360657829909721986009330048552333361674847091193454824377205293550510578491817145890725903978477871848824375967372117960291399867335095939262668728181255251466088676382080890962704319793893570552573833314076602491701360855777568817465363985860263412477046212990374331856042176105451625449861273613521494871589431347297360421042064343395530662692656639460944857911779830885671867438511348237714501164883670850923190978554830021513334074963226399925647311052380871007208564050781928181882624252023059259126370488065170517286165688830524810972306414337633002145695053819287454964988935944042735123691654026020013822510260299875032643360912398432214852994472649882131445185343979590804442800416119244035149408872728860032820533616616708382288249182733015144487055903851293200890623151559180092364706363082022227019684568992789377475945652474506479100585053330662130649646335129024596710461749344507962616868651678934397398310645837592464612412386735401962067791399515625393435443093055674018803488608109795991702407887386386463725583869167638155421471029300821854033979257949018855870283599511664241463105654369256101181678251768846210555091952418662043801360370473004837273649544712443827674972005164069798740162619682477199810579178393575812684729052681061401759150395978384928386751659726886182977750205600269607034518338959711271169112949695322077343023173369466970745093372677603563648830362589225680504128796784549698629686788953184704167097124154335648318653107005627247262646487398327501203592342069392646445847881626146788457745311550218528063281789187853056870032041909768928059690628997304429851378007532909453480616855048830711177329297392002004359425829120053966012087310559902642360760342214630641536137961099420254460447956410995252719435416983972097572858039447474717949836382545947582173507585998621306318525774261730724400139129567829770531443118023488114347719054102777970142836992210920846017979993784273999109189076752160270765278175709754270656878261158466125124312886336806639967808895662982868547487218565787013481574175307984127638420226078510915806792884554349259983358924205789756565369771474508391063690578739600053992316991816765104662766152031768080245004613710346765426208030210916927459943577633811638450974673300276542679370700473162458546993064653039957674155859971660401696091515660563271239194463491896158561919831253130287836785456451129579679967718253676462526223335048908456409399123288125578117863593081748121402015615368290897608720270400569248451280051755572811961000641274466372207861851054262594652220406458467439899092709453238128709747349437004190126694315119037387150367226362573646508648771356593936365654428297417708548937298858470691830458974070625180239754373950217752009426059397327835011989031998133887158628793671464589768623719050302777008030827012802882870519587724841318108274664769720632080868595845388263161762775253230558593350913434261725020996696893707859243934897047155962119819197593210202924898900010389736318763810573637389730805241349472383226771274101605788061779071693171827940936637811835667293686104409020094951521316592371801437609180379949917563838680277601044813437657364314474355554637918512253301428313580551573095681653572242162886504294207082148631127610774795653069444154438563317767221377712865100452595245659174578140707204224883571337625546259829711015396775169518520578036476603182797907198298526366039228343024100004195290166829657235963404501432743905924771791356780029710983164873004541915094946585019389914636930443675887434313311931594502325706497721925271314542906841711077345995143633263412186964721610729127368369097084600298750070948802517774631760258430337625046500653184577934282788263490348803729378558852318850391144112936944411080173858717979814247303786058040357976528091492131569268965433616887706827679178466094310811057388322333439671500023987881838539018308525860302039220225898213163911503507981124569146411187503376435573611878458505532567360229869398342034908703124116733463265795197788782065867832881852941634608810383683760290903732321239168608788955738069544240032005285878214571624196550589523278265457839007122018168249790013695078711563462294152772132297002946025747722646480267500647563879867190398269083891112080354961830361897311366146494575700158852773065828164015546537868231180325766892426518277902668804773853316299298730232323164597971689459027581665197673434749812859393338122532316654667435275449471538144084271765506608040995997313779805488625859004360913994770383978322855738583897848945639463888680721879126652605518587087399069335456250659840329816363574848893288989066316005489695159807885875120384476722757230444398676396889696556627728561583891422027125676430159918117436736187908864217945916857733029649494527189127667379803868802574982228474360441414003418234474889020980577257451947508888996181633033403592829458217964648768943113263605901733395155408665725007798788431664232279720963413799990258506805362537843989366258904117092847941095282419999007641015987669005215061696740174379840436561665410591617462899131229377709038737451220505635513433767841034268286848603502071692889812927445836433155967033512792500270647296188470260036513953156505880745218885373008919335764910791805291355231865234689153232972087604325096808126019521699711886034992759462758423857783576864928499545147960293920406721801603829598684641496695327155192343789921653616532949752401141922904218953299184447704824493844782004489947009362930622539012493061886194068781964186173324890069048526598578484871976669711122840736183794644157247761076163598518763792537133297535821601522977473701856511689252464378606355237218785443196400738124148656780150320230041810977556373093247305177495920015199264389841427567151713515983864916311233277198914564803273321765171580779337002476806810921425654265813220023999975388356898474817068637814335477251957805651451553343141190946748125823804115270279808211471966943459312005556338114866159390321657156458409776131622189789397969207286211603247322857956688899876290398774328259109610734570875738700426843773444398335790154300170966757100613487915670053291580302230207265360437010627441320594474029107963314191415451676357607064627822463922918129022466734704429917476944751583701427724862006559497255462547648422286972549229407367574509639574997354462528882975769026555207182187686928373123492893426360571519860327941812181420601610979257376711383133058576095347953993442751468058984133389520204858447014764842732147063064399193552645067199656813028488919077011908163996439975899504739807281410443857526916752527387633300868579552168899109087666900628788570055009756915049112544437864085502230683022916894934275191026157985561749009556979386988614206515112013684864907744317496222301068919291283256482599058253536219155146141784982615000615711164605080624560084202106634157387514718430191724261269687113981286143514982336327110383355125546820681738191416050912616519612197355368521950376053901609220880753619412250634630405676141604275272173123181156091215856846445341774698075164255950254174117382864762866545991949699831046706395715679700659650624922934445425389427502156926737730975075331232696662829229044281094881648070277985062530192081888129943531872579393760924829972744959779606811286253540480472432004009593077033874674030693871162980766459733589028033514988972712098880364879252221723755051103080132892203257860064328530451831329450331682308734885409765979808946657187254972821681443758650456551863786822748044203441845734538434714395998332926013401096267799604594890761781517698796270958409978150897473431861091916646506570001819168972597815564442853096136520474149825272184332296139835880568810136099782255750450650947763653473794720224458771182189489582948994854622694706174941228799989441622778632220734970614380437100995454556761581656026677253902182683208736437173210695533617235530184348343154561364813372155774710143622634481788227916668495176219468443032030348180001254280518367166677390283823559709625393765660315149772195212947251152207187936303577668265920538799537915171405131212294780190651805514302079697898849720626316604244975162142017794814206846593018412169644388737352970260878421857252993982429753292543170986698687799189628160462012766996283115150661916836868031523394221035182577205368884315540992619195985770244517840998652967962714316358628312811609776678914009221235533863838683302689546128650358974738160756390436077153995376233381959533297329030143753879494052391058191827697545303625702854454725353441416253569327736794474370583865457209436134831729461947334645901956117545045413782567849535222136711801783773346511908523929323076301481205197599119345629816953657712086872638347744882034198017733294508967714028492171135142285066717574697381198870513455914523765361322521602652333648678219664555101728065921960751705814514705481141350105771862910839610951918682779956716943647879991518397763186651616000044246227589419192511203173304623448722147155345220883888533277414872407862645879162098479226366134066950989106599767088855345724876088347488845947890379213951386902350476321340699492390281950831999764859393059741716620041352334785349545424279045686649497710292132104611114587018229348315495106481363592334535333086642260623547656910206720163921390245021804360199179015332588859086482580826777585759707048499790466391043228461369240350133188736490486114124207355086637861008282918993221048424327544162174929546867375967062751077509492569547026513268459938633045914638290090695475556768815410734893284332658787526420770435446790049313410414994689154614939739753998716115693987313189126971257459038357985892499420074019352370728669010488703205883852869127952507818726061653971942496688963372697685419230971520266429468571854813007305932267922103301055659037157281497743260787550391026230223416659912411287813704203269533706259315167182956519649598153296142543951377600618191380039796743498951162447547855229878466102352055128534848245068848901621685346599890710615845594578609620242777329980300770301871688608218284225913690664158929483698158109199719534691984310198126770873936215878223363858248247237074412935430248398378156836582430179493082530908970289538847028513411131784403371282840500454031205683968854529770767092275381438992074848710923800750452849180732210923107492219798677248869188578094969040033461903697637555966054981770332691177109608970869613332990129066446607940314401517452447491700959290598437349265979306022765709567285279392852173177011938435504727482536743703171143912420842485503515330999933220551685161588024501982744134481071518047791015510178189003058241653087715164115292788404089246781535136499566930373493116990148961290559917861720469333886633069723525726378902514482236854449827038272511764903471722368519731862538389842097684472327628836462697981086624063881071307625996827795280282580285568445480724525801820908725911238826031651569971304535620283413384767354519623623810446930173153516736750713390936025537107290875981309670013425485333892544380071621792739042904321504131677612980968272263654834882096979422755201670401938132426642866300521957252035317306110813138714204490897302871681823028474059201974848630980408138419697344005540146011074287496070523852525642046069053341648341114442346909375078127768422439285115065151110686211425711521382258554980959810318122217889004526401453713442118635926920416414991069684000746130967529469499859927986344253902573146514312838099692674604252250490899749782911591842352909320325048470339603219650524008756110351113899871949612107816534497040935543905679325674743912339575969347189265085559999532474285253199678528848033852086462409366184052708545039575193699621956384859523824448631194283417158005702926669673917695371886813104189455075759022105349351839217598911431883513839318519658787714143371084446475499375930896054756320151829225312029511074305632120478828067795030427341887587464715145707174576631332369082965795479591534669952372309871468622379851761756520798973092927522802694314959904631327293746425494895775976989044400915229907482701721916951009114629424444421331068738019348534683751947386399748840578788863955999708346320028735384074311112073584124813622624559050137079212930849672659219296915988077838088528156642700408004903206692036787495630937398299043590394874669323108431879326240926480430827137774561053087666154709679151044505077981504846714036518788009209169219843517907655661281353075340872448839081169146385252727973379506167955080243306628856301643476304374394976412684888406183312670568400805819770482895452193415208360148308456549643689465737832726781843936675134464022558957086728779109381471578507874243283296725261483275339470802492780965341784660950829747967943312618101544108892756918213054352105720822146149498026132350425700161198405369081947284212462237179435619171531337198344517031169143488947911754574709800178561831532099830902085336520738960623244157718825004083956678840348960048581372717078045729889035967975977963913397720583074715196002683820029598318116201790959107590676878096030086462286460315899962431314543847060844188886971885650331356559458752102731834083675244416180474209533725896383044644187155951233214373297469056331518926519760190136496001087515338440502509146554214078521158053007331353078699237695056236929285412704868977777847868960527037328645651581740341648126474714071066967734872303543941499635422103427868548371153903904675392976706911511186896702516278242276858857872126960722142485647072178853003054579408714529967132255189753152964752914639398168324692940783041344094104710655662882312227760365844035918110929736196478791597366697174574001968246704165518433253646910487391237439225224750782935542652588768515350275128723415374575434969475541372038966300187423823507160728972975788866353795025959231346716266858190776323531252624603410206400818539408779533750541575889498155971039037072323457488540948915268251433358959639722118143751699651168962882145806272349712519495637331455325744015138438527069956288843516772550826524844294034205316242294120221268958530319153929129965725747296852777933542870422729049818581052856758843351210651148320559395447727283592265158326087382918712229869619590288614305991132923010157957097934761476993234351648650712505789903709025068560187803770421528947918553369792240847091174689374545338320217511412717288705839187846906178681498512528161467189270787264759415496814675178313666049757378249897377006851755998555922539727846585395595424050746448288930246742276510722851429349269469448170276147544097456838668903408458187984630097792099378055866421027389356293712692690746295311943191042122903307986271396444642746922964021311414857273123984473156788191884709465846962259519763966446163342766998171594466450529065541674575544929730920661496193057587479185737520430749081988833562046760984903393600069918827542807328193841351253822513875123653957338752602995594128339138015642215293359482781035633156581215792598889565310072099853207375927309161521317433898743685962391981939639981221622701753300209854298757088569722529864269893517332732749966508310914387269385686945739021337060511150041383759902240122823527585461656307727503760691530190659476331210560266293377002828551781503063666385693198209268603503412096905825787339467657004117084322608953156099421195598502210218985403245989826844085734479976501084938931522542899454006559420257546093182008654927625302687744292790342079801476395634172058058650325633918982438573069366699346117037866513125429346902810585830614785087158314382053884205183620509956954086047618923989107298850429495328322941838035018230966795607329849508162028028219930347314580443869152110150407591037954168216488200487404273359435187024391375370762439657548554549258374714620912696971996009560355490757224504830698650654307184420200020950152726410069894385675652115252724715972892535071732197478716709713213341675315311313445527937265406351381591215481461429910130480905563215184129938802436986189475674191083844528622158860185042467845593944002372468680052435181020508423625013346459350562989009576076630610503487630771687988102598089644003170621919418396878167753976330852930273141192179454763330998324375937300234186719630903447689754992474845488606158108102903140515485557951876482468647214520932815840229216857534888774236469989328762832260500478688034984464693085263688040636426862677246683312742086014239865795998581488312560001101180742815969681588036816330502590646944979595237399223960556154641624472488233804995642050975941283783770402151761709763463729914086677082268100793172270530199301343681407654926325166865964867975594365196167961044789353521520586879777643552886768151975166213940839062135319052198603694713201369308000506779634910333770828467064847922901166419157398390831273360461740476768063476771148120185221542400583493800460159214601397626442748707232269680761734978476345441518379768764858219170971919945420054949768266799389913576769444034108353350710709246651664809434909629260396492714173293402033506426404118166901617234714179214041387763383541189126872343119128524648578739092370697610195656008822684883298926609093125203690114262676483340102624259071497304412138115452113631348790897429540771088746908716993868449204901604726130330701570034784636151552616376095118118068587033126607798471972651523459769573704961935083159859462363555351965988340945018011731439516677826440515005630382503115901280522553665608215795106062099642926612761749235657291214699974888673602151634441624559999241158168864236520642093647047095680329107209827074133716117801244992997081978254846408408458807986755580163554564622349966085207979247029410033251271995985409673226405100906496612705099875009627791201625151197191224760383440754708682332189330185352565389577834522556914882280263775788142720150901856931905953829132777143712852369360807622069323745192856513355802071807988270854444158597908885064375631542642566195971500781276360921314780150466985829844289148347371299570610894061479749843896629048911775871762923534695231282783196322473425674094744379116241476809435704748841903454173288952096568650984841957619241318630857537884096458034701073377419505900142330833350541426865496996444216027595734621988288301324257818132895271268233861249329236190693262516813001747634957638311151696534403772067332976438088693119102527072505444150861160781739624640385875164924316767246405073253743835997502516582154839236436891741183479162331044055713662200361900992938863836985463470706237395403499838381789763603662195071524689125488628940164145032161369659638464753242488963125143874260114645070327911791333789268847487286862941319969684136852533188543571817635325144109334824160552782323108924822842850311383357275757096648387859891316936283077263261998317243744447011525872558065142048875249360273266686943546885022522945895053664628105254549457744038676296563511581360750063514478943160227299088046461669286815782261862332830748323755407104864942868607238934604896414217289929375688846223014426894465454180683347499628405243313431575146395787465131965888584694496900944299667778257604925390464909232207949721171850219910665581549875580781482348755467631355809849639251446900172129102720396872542520005622185317888903374400717733618786069508038209397871306890278965901089259019519660293398560512219206974912649874658112210102336214372525592348594910741475214876404836606825638155674151975300524271359520994696936193902055804250382070531960205768699003116808046408476443339157897971093290802511660729936973733721481736876343760609145993814386845407121706121440497301938393685914987005099914129413757217833915077748705506612642114347174580903118036948598017420105976774725395970220261709506303343809792988617256356426431282351622312795448242067455188239648167007882089737951443717295466336974266128412291020914187348100444998290226561305902664485993879982796882665544748751958452779624768535891673994392259430086524416457487917331650575395180546100528785297704768657671461519987321394264899248593016711482777461966152070358898551715895421992000640434604413373548252816464789545095343940186568182656632059101720600576735776876206575112517768940577530797182962244796447352194404031414575267907355858193479431808549817532353867542351692544423693245338439706286471071837601236936989488306089732565997285931295240749601862200672016052647221172298273587820800882881632378157764899425113853649138885708642867608727455228624741687757751584907113519239370978306779222122894819147335046449616722009898958339023968050695244578735546916093789225768453357258987156505743663140767257453846730846453768101484790196003765888181850737140396782054825303681394726505304465916272856931823247411181442237339429868571977455317942576086618594757244034517237534783764286433060879712254428909723652579521531826876136496576256522779754937018410519632458699451945853198756580389206805411807172902155886544943881682033786170829708691008931765425037467929683524364634372471654971486343650654504886700312270419568015281261023831464268854441053948974622318624966262369567259109888433052813230796284226749754529883908960790980235335744751246957984729031936215637952500454391927469453815970148276215002645106393625651577503008869985482923458935926568483069605785991475075107896175939267893519109254348126394523395442461509554736630441030187079290897835487588071494193972565112160297798529604076032815400935581335521176349559814786152951941786659962020753768549262023046854672709281467128923307293570351760743465147766639211584190828961580217480741021745572518171931357027935836351329075156879699228873295480651303457311954842244251055660265971599793271981088394243645004637154949359180631914024433428185499989656397155890100452404760979129303337218841425115890445070480319984029796326228137730073965281682716930065624452068442314388525147399448507000439839772933283753938172739523240179540095732295147180630787881609072973114080608489444618658921487560141500884359263985925330031399702680837555400379837203985022394894522675896701905985544982548314246740237729968861303990694961781500566739761078344116280723603839471180286792761273741016689727734542261840304871686991930134303059273176630305277595746255408817159404937188287447828663661368605158908686429602412737889735154652187482980083816702343469084476945597951868094554895776333761764418941519057645365990201581577488489531904049592245633746716576955516095621605965376439971805029656200512271054753221910512430752963215904645875034649397007444095817164075630571936442834307301307525219084184597865109700289376049963954996760438232576468060789378977029976279302784474832347144988981262964512300030365156184246528385516339739340634398627818837644388016200344347180215243659810127625379998297251663454049364432265820295160689786107039572525542571155094362424697494037477000198739456582699491259662994289233393625843032834200634565460669593705283920250937248980636830798869533522386789559189825988479011432587482985957467033133438925448704477941150206755061994579955079692020476785526492162852000910527501303139388531794099241501983397686356218992061550088199233309415899830628305512078644113052406918140209575757375919574997209797346180456550200688373384362850892714672899778780958795329423351045304257434498834736230610440002388350502900531784403536249143959965934158001589921249644716705642384318828868513940869670496142281157706016180331569554536559044619491085398393736618017050908278096139811067845495823158268254036829788562455574064815424057438246103738088027398931884546655630782717241569227602631440114188106621912831591099641277215697745765948258550673432273412422076447353934754620424399583451023869636426026352053947982753018277632968620535707233069408581646879144336846576396959482717072019022469453724081629463669163604874253810156659120879812699978137368257207848896485785668863664668487684224131102506510562534946022069446016843157349302893507991075698297138746655448926942342890888196399362571820973470541982216158618206158364752581181487083146086459019177093575633517688340066303165106543144941989823929192075966783726286146319610722545045903866014473723566999391363291494420809288403679857329057745256791559438899572317937055191050316642093337024489158705095415739096094759806812581136815772121978051657537248179822224487589127315093994834696591196688635938236194904598242760312880433900355589683022883662999153302700360116957459650727778662358780259150206866863671664207850290836106481636941863974832128811773502902366801758438497218081225830962907055184890900220001374449932376316612002418595947820495183250297910807388069649487994315769805357360704900332780113110805770111790561178707180370937502427279997748956210525407144989758834173699037379805315775867399649169346721044298913031165518983823159299994887244182507512756347865740704344955216807741285250248872294889205073276088367762169954907635537132489476901986999427358964671706471237228354119358108261127748535423157762501760149118699313154000814077662567367882516381745633262248495255239813507131895350676805500880731508915088366083945771110900274735008272611860825550532600625745035725337572673426559784246716020730819326911975227547738008834907644563423569490231534814332873926364396965387020481060755301827378451793013373190833206419161510514026049168333171924401392127544721897400791654041178256534927494358765574066486109382111680379644519207632010032257283322297555857901337958351233594689726670714506334528929334072584382513919733127981158222558373223479629208597880099820601363085572081640166381339727067003443780555696159262630874514563684066845662757601688211134038477264841616203568381280790696665330960392681468319254615875153773904572201855604751000231986005506272459044676255874610423771140820574441483394421436183181124406869188583166284017849107142597697359366370733135377119320137879738479610965080881470052630942053299224214991849632419034016347170077400798890180440623151804740962675515820487155648230585767120441327510019726203508502611856248218145065424345945497514145825141941971100713557462065110011970157657654509371910044215690107811156358761593482716139504265058928841541974519163286400593299491380167886560226529631266851018406312985724020049684207828172996645292449215873611821112986878660938703087399542174390800652615040708346638606420993283789516609718478941862809238693687154232880697500025793340260185553401068954426603394491324471810190694124947170450590487089056953923174741928528533021768050816186356576252979157755498776513269804082883041789945580890813992150936257670614302723382473067552547704586646506979496854115850160281475509175171535806069147614330096994721024078338521623415825769203032937716030975147199746573796201274919734058120992946836686213973495364823996740667313611614300466351606664868201535857828003629143642871765078214606893094438702606793676348001177463840713288634852200322053460172813345403037148368442553690646836734491430191890079771658548250337605885317758925126703518539941784787494960389568669975121111130650330094495780623647247452804878809638376468455129651168338642896383728260402396395512285127665698392672276531283226398878645143464238317470666979654441355313189341652610205044310562036359354855076586118511153099870178457020509757797254453637101182286529906071543078338317539827116727320973510451339662744596871831951076302942133883671238753658663843659148389837227873531716528182064225333098538055618191467271181529424201725123131450646518706732515693767576757401834186070800517278975333986753295193027440293259225809768186231037112536407644559621004119606670044461337504435701864705961340139448887384088716929127751832547573111013735089730054234176329178818339403327503333251588739697747249062284850051824528242024401744666510434067043138504118170804750637108963604081946886018114410261646311240093164086189007134946334282884540671453841787983660557159808834160645576209479997620749733948608457345559690838481704448622321077817153639953773750329799867750252467188956474865114726407514761328250226136058081822042445101403061870255345908813670537944322579589618927270123649163961154495374399587161002237438568104931662981464735350405317911233684535591162762743238218772382799155877853636751802770077626152083964397257504203583689270757694295445842624372866571939620990794758148915842428870820630263492900571708372730478296921494306851541295323515483070847850909797007394955722740265732607310487242999047966632678154897937526342169899899102293643752806829912656995716596833793855726573290023884730124864085482370361574718519275088550083470851082663635558170579830467085303150800418392512685162491498294261411154187293242877330382345311502934927801254452641163836058770984558375034236417143277213308459600036523487542261414469184858849384797366353824681816009319665930490352349264846308664595153219212071445700405058804477816255800093386064269784792000010313469102268021915814693172139872283207206057022190342107217038709818885842561244415249622346156974960956572768122699450430442941172268310725372732997253561825537378026754953259516041013903742162736292021091476272324431092832967796875647745744482930946562804065653871099246621613094231975158839417282578324013739210348151262340409287046543697275511098750632987526656202926062580944885534909073729340682576043841476916839270544636234646436001694554126799815743716912693427360195783403471584081863676869675400019018289867499126078504449223934199540960392332995241081748425922624330029669744317636036371176703014955896683351425414102985900439766451274588606525285367248942393943559951679906837335058212211561554221036551368615300984628434197552296114638611360815249699423332469926909309858253102912295763286013877649404016385838382096840094925050893789538921880292283928871882419341642054651780277427456239329351373023144718747150317310379088741904268986301161583986988418180766650020997713881468249820323603792771852869017809507590512899962593713495841400447494671939313793470531431933802002464646501981004004194986496235141292600859306296574777408345606845202332996085758395716000687354009524404871028151436790256105139471435894698593737433381999423642671389162482413729948665647572718721843194569882127743456671958222741963925194206956610390662814046284828188027510939214031402574254126788570590276922637508083901304399631807025691875909498259696939452364333288601958848793293901391895250941330637527690064839328375100236739113639660672242156074650116439404866956542558140529078031532260357128539923262207594439665249499603902684730348491980049676674649952315687083722241109857213075471645493717532732103932349195107220511790419235105342459937217586041153818963672395784607009085204877854359905661915198173715414293189654733375326708671054664993300308693685770271448729205174855352130105968911102046824186767379681345410869122569082614298783002712801546916905698843601308533662584736643992883533292535803635952510084751962236845383426963267786639037066253104265740265080616242466358795354941820482862833872600110376412093797558590677341525345663153828182335407559928634914939956504318643215290843013766072992587996182209328454975953936751750876129738053529247510110252759094904792247071331805556703504005735862814676394536433486963261046423180230844264850158664708870407293732240835615795594681923499843370268068940081477330399174267101597273148790057262149595238621592633074595909120620311112964361097974410242671460545777250783641735976141107884311895465158235774230848403769439238778016480665694244185848277782139372552747722317854145750186360462482834888674130423563357746649959896235681868104667000162373040230026425341661029829137400245219318204409953861773895745586981168018054564948165883470151527554420124078115718631973307166200495206461677360995732891058899454239456191086440446478402445153471704852203426090017071833285298494913433353349990674103517318707361678827616072742115715301380070959597410360535149373671502169779523453103853345052051021358654956016143484992466787802015328163595884827253199714681463154959702013097534398447609075801992144163776726576985450349235313725939983961997149616041895773878732564194442189199034787022577192273196232034897945242801212862068780218441466048702091853644463544242289545477717665847993956316529133823510896667173293738883220935127032575028369740757046178072458730420460211019550766003581828063304270260396197024078242758745409647471370074087028122125819565270734623791016954481378606881063230653045699106834650765479180543637658667768616554333079515072051744748765829217747958564232536947134698810433457459787104904188164902571963179605592503897506673001059875143910158601759692070809664194686465452377758942770884859196906584382208968403052750517414873072998290855994834211781977055427694931797067001143879160112322034924806580154252638985782732623985638549264002078086012439195816451355685535048043836822951720807299335316949529708307443705343830818227046175780978368705328270834729424803227508315034934261474963681558711658689981352075084988930920765333211018130318147561757503455092503369873947564345836649191853404642519372310581825534404931083407776262072982391226207784336109168179967636465984052422788633526868602556697374177923659184698467196714267144909532390861723773979897311067127026581632780388242816683715918395141328763469926693255416318207499346082620492122949315781844960443437033495118749824239621626668400511022918211647984313022736532380862382873956082573593436601179281424553628443575705872936377018828496605319614525745739138111587714978635278473292202343751420063786407224945718755526655059855345216229515361182792457947827876975774810332337739316806962138629665841642214153375778426173854281194536712744181630178599838646485367452481369553492880188967359359786688405423213349375977200916565116673744537519520806974080846513822074931086937105064925656847647649720490088058316833332205971175117959735141680616208677736840097624639110262504502543177306463507217188649191959164553858858377498455565517155102162663176418392191939362929300320460549546179965536680577890024584784910768471358297620094683930063226759432246204609258676890261678376953500943334603644210918743075232072788711098570908249415715373858067313183331518196121220258890074415557321336090379540995299689603313335078520477426991397710015880317106748748787490532946337483862590416655916034876468670262016486352822127491293183416461233066915270625794509579653137028038725712088461490270498970344684918763350688780149120093943535538229118921289071117302134394032217690552134680616190651729977836098431918591630436645745638204257044716375628208386779826697756060207594444351750294259470647055468423462564727884396338868343947161017962919665069061334366886683069202264469131870574612333268899343165472628571504174653049699734598989498608015465531118889464430904418575998129823496486678797452694454257680811191960664086197861030920122777348461230857558997804737214669113493611681110638650480141158269160214911786241629191031714349124868371225301435263785680375840493279369718017521073467366351014464747084517975521053694237306023522683078671438998549836460129321905758063516144367322370138272839878250890639826460113427127336479723756538383637069268465820761771018023330058262399613811554408423234859362604229211430153647223344247459007099092583170835655609133487565088816820372323285560876405588112834739418320801549410971488614697228606814635359842456880633655646409202434678033306041296698294223014442206574696876317496566046907059450522427462022336297895720644775763851194513930833061134610926157557015847837645331304418071131159379234209434746670594671341471952379211282225439636383559716896333134448705367499073039938441530524804346856613362192934717424896264037947370412536439206866334071333503226045525838596816690561251743804699493355774942467264771022686996915607433399759174128990954283051432289383035356238816110619843942917182906393586359884850283815286953572055640779796193042184537529382799755923849064439464125139598058908352654539838704478760006300059640607364583955934239425734859044524685619337931173090930915927193194898006286220366382904015997715756962110772015294116342486094842329692777003499448957105269317824901314087400013193770436307076237418976862059721895424802839334421107886652132073736508108689776253030632000571023312484224402554699060387544355140617141228300875766194598832166767242739629283131421836241335556429929792064305408263823164606627378371388173916270675416734983551692671157989433543488689680527137897692532519135539084671447565048934645878365139898291765774083005385239580113275872917270158964940261441327201477683396557049888714129076709790544757355071886752172858763668562907573844065466064670223079599934585011701557236851829612188396504912671652721199365499133092328739519522503014896486614672529212113019268157071106167335426030519143575729150916242416863666723248385763111725529892399410173196121117418463661149241613354568884084342924003294576031304186740479291306480040240368299634243091961459432036864953063794640792824086269677889570643596838268898772667292002755385008770765345003028793313260321407740959476135498692237303472575945295022658697356754443545255550860262866395576036763614374825057370227394113652972556063550738032816280487048543701308735509392042524305911822488499642346180855657883097065436561749726403579744856751633720178019633220949260573881439586537769801314475956351861733773365417250988514990855934484284640327717264447440999956990570281498294077754025587219073460041631257297686335343195949583937659897702874018881560384263089289337801762122148989327684166316868410479470035885114361603620912884166541908597347452821565496576400206024276643597519418373359435383477219871077301099010492113158091922774975312215952674388535696643210130098298873148597253926679997395936272972895423152459709933388512943946319149768426821585144308396812102784423875263255307937156495972837059114625118809068447232412766971408264055770539823262166629667060287998787916705641432710452286275641160014984445688537249917375042393907326531959555340639999424665233698095954385093130994606108969904010624868931436959297182177012217019593545351181981711535530744171708424826663557978733884480935986689334252284414849656635991734662907721548768587927296049181582999484821992830964704439184329594619498770961760930672503258138775911816905745237744200923400027140699398133800445860504803516820436003838905450768502244149373226203145934906191601760690828090056086402637056415867983694918357975607209697694240217785079993740655905125377488935389905014884613331226446596288978599887978554802903916905373406202041973201646905949881250901094937004452972857491819695192404921026553714904217244143199337839783470726451678632172120105382222007549846400513737537200820206623636983967831330619353496982434720458306624564344721069711705517650517997611961294137274644774843141930461326868548539479890830658581738812557633104268212593766728070239101031931348191629365030569836729407453353589212113085659469655951470306682602806483544997171728291969588503046847718811469570513425772921711763668690424262559023836578061098609779316866790954380084389791376081460411293641369225907595178435470970450129617025983447452735161030142780701850754790812188028000648398318286193973094540029170355162243048197332613109396994913546772037893946283330193214163512916843033636349118025832324384429529232714050505146905727530916034976343134079662031183911927139985308335205346338772776455712789932000609671900873950248009339805956657843632879205441233453576138256994144991077536028349711700724009010402810394411132682601137512351117554935581027136234412575702344249934414050070483263052304269400070905192419507130692825416472623214483848219013340656811405517894138204837278996293188323763394250660321685665162366549529658952939781145387543693775089052967029048347539202395992639819170094175145803012407175748464894575122309378613268192312781216796845432474914060037979662219332243412521877919446112268573241813629396186214901707064234716338145572666527481883976300552952756993526979514658997441996526422225414903433258962748204493761681456378755947098763709281355350745533969592397679727579599577017853629746030708193746604025311676888952489649739366903199149834034431871767809603436541507613957697084264401799746404579735825807236663200533440447764783555640806017276519177349679687796141464399178553057137750626885170386927269525697383966727687361560397168763330922956363901040671367808452216922774413514626047427550375127677648049369070404669141408636377872875704526749619523074718013508180070276721401126804335975771099594565316389052783636631842998207078002336856425097750735347518964984795858233874571433051598501345910252725925905517562895884012697208392821079729553022700383780446458514935026647100448115371599335418024371287512277709840746190925384847565192479663267123704800830217592092027034532940045848092972092728939187030254828594919448155599004959418010036530897577477524923594652757984549246565119730474799064310726872173579179953347834835238161679547158502536702044633194404997085757219269632082945699367981726858646185577104872487660491839863603168056107727066580024470412706135051738239204583151125361091794439237673208062831534957710281930543473441497142840747141737081947281167349683229267744745044461087524811927657147973601633222639500700850082786860692262167465235014376272115877709252541681642926426011090492562767937768899990614094143154317444483209961649939112314420852393992935922248185814552464358729382012350100811662236323480588791453415988281541790038664274761311416780931808682669449675378772666792903130573113824972058270309935446842919202981834037886032741779312385046227148984278443348550339926238093412528630612503813563228773065284419726013031094166042898570368849030869628981236174009376514179878508054031062764687585590461180041939176285204373180556996722277661203438136229545249562104254656722049642855379824293785980118683015773916105081162966965847126670296051373695671522103757976034407053904034856771098681500214570432042171579886535626775570760952019390456254156629343415114798158083878059375018134889941045099797070890535307385016204372725177145647690686849997634532249792368568683622047695704723548658236183369944812228034912605752644028904095475141906651990465373703823330800464333791279165894454902632680433931311731016492262601820937202613889372772425512763284199623134534701805158062960080030103825196330674027246858484633208483111133109358033766118708514539830724783850555886261159915851623015435415953000537783560333941415427786077509707782141206339941813418015010685600626533405735507318843505014586585131588216772481294566360668023081844251673668306090636844340051909532940676013483581653440095410175766653524904165769921464489954309561036678904460283676527067510313746906663109979903925839551067698435522193012643829545787504907041064318323158493153134749648801615365781467254573215094547325519900819687439549151848278467009203855588225724633118294302245762365500107316549757648653381182819386515748523557939321216584965707237859923382746826034532821057354810461995900045803774390710430033229951756035194773002297004584803188056360798642993737402451999289546573876325394208946831357125455838393650891425217117678489215858676682310988240614633318967892957893249496543028556562397079732501493874462944591242114376730290294665074010726432306783486985287733803410499152782587025263791125318578703392992536296913703526019153850444350941017930073654694438297450638354802994471504303571610984981573772392529570406693400904198533149301117047103942789021968312238135080885217525128184473615897059584294654131461884693634707744116916007285778244014941675109428290579896710457600553310865277733736003742407768483964154491565614691106485403750475156475227994620946094163287347324254445046320146775280093056292725709746775377651610483901337765080879518239659059484128089369291226104893794620107466715102309730512239487952494080140379740205868361547825831679454824051580479658769340330961324187397067977102622278778405300103055664745004662728085411925888192457346157151813171166915279488552593617669052133261332639540651194803133700948842194189362129518942023311688523533064620079337209373308860137633122607899572278437551753328739380373855146710887093837112413160357009853864595469256011469504439622806777739006451078115127415706402809418588747978227723158830527615238230376626086348076769419042401383692793526965582438176193780330600524719737741385524896450648840645201346702549340646560953079392274566193589095678986111267773105800326581734962727567168658577288727359324026980602472866787937062010976683861120844154456096696789833934434638887702084576249411358183289228005887478548796646686273483837277232168262960435297729098687577653096848468578873227006383268780743559085910290967285009034878849397280296234734869479758014779357414362129269457035786858106323247219006334758611748723899763362236958403341909618592770054172162854386990445119235276352683209741342815983294687213116843268098698502870541536501396102846343882934607789506466078359958272697929619450282217093857430177719849113116665068930945275992843197424827562641240587409981422092513211192423619260334762478540762577919749960984005068541289757685191554052063032145186294041444703325776135783896769492717468596769973452225300118508909259316068031506532040168111010245428533437103165515813898533080239739168047356706831601364469300654012998056282525460433380085749625134018065942143811620980193783915815809359395414724417366552002776345640390200194493544269861899380608440766223047349377568326109252014218879400949979802657140540509281897812441124673361616123498873271164300121901323297150232429002321407966749525484451328805192001379907777652476436688075650099906178126465226746175333277142511579014497751730360702237181807682335390203575226823030007135622458901685143675132538512410802929966604069276886365191280842991677603847196545717087297224124765256167747001710805175818720743798675025595372851790955101793729812851927163478152045761160453106431250053894105282740214576685045346736173213642435027766543856478064685243076802592997559151233615264402900709984857063520420350867824121340641902442032667663796178299943391676865183977362392829429606325560926834594209163898268912125369894841510131580921329499703456132926132627684726250064751383680537457918746171897264164491991947950769151498961404756033365093479627131942163485970755251913752331029617759262559338786314351749148191292154114339975164376371925562758130147525324883100632831372374570125454920683712644695646610454368759767194991356904013439164580396827101432419863949302411711528545484988233214602387038575877263337437039910040036825226728193012555835867159684346810960091063792130969469657168867978085954755077326469377984300748545850808835124946344542621679682830537425450643371429413018699065253527871720802628784738026503533218185917522276204391269460480671840625584606200074066828662125476996071965731507906709485548575997776360697621946688171435395215114290161275737128121412712164173626021136231543744256358912577834357297554608849500003671050413737768044075555532401484672900430652327512938514012927140179276917570057721788148163301337699699346589427695149585992626095921859058239023113781533725643732784797614053624655179419540698914548497641021584913983204943157042727524065795610452011169874770322054442911257769470388906101054069431237476743264091970755685326195026052071193990953519753505925565278626964989368176367202847811561185577482193150386010603703294874653071646670507402519510237558659220629865123258660735822626049964888494249433008133720441389350427666932517071377095487508227276140875965113740394098148844459336975008793223730756806143437375157398691851570805450906038713721055798869106037006307681339071154159553003925189295736388592132277510829653036236444743369145271012784042890207142501081402719147687233043947856966359367447225425356268597689318560777028914925427878020205474975596928414872409438677795734376254435157270936519451375178487524685534152896534177612052384357080491663266995167684810025122067221746274732890642282167001665536678946962050084861312939703148677445656917537093780410585941807007310860935328594752751359356171744447997729337987658351134097777760790646894188927585735350087338375897972769604522189067851963880737607077642472416194950526781200391107413403638064914398567147406968321188208964414497706650442983274684683675795377500378323316146444538721778044938527537823076533472506703415500199751772676985379751376669995576375840379019867505855983125397877648237473494104298044431523558835300907218250306794886679403717007190058437196707640875656002749523413967554130902783883694815296207823027935552492400478803200896858120405310819748990240475465608195274315994504876369343961124300456622810625195923914973072026183981130812889978302233282668613885146595101613246037124812147917356853897589606781690508373202560974274541703041782276350932823669295390037172212630741542809777455564071826765568625779347611758155568599258565320642294738633608709667019892514008456812679635544505875219920810010089401421894522124180015756342258215855469945480378739413390491626204302249393919302480457155730451508227811139951413231212274269089398258092856653069986123466188069772838763709004216187859414491875531155400290209104945569098141309005598330444668723730088206695372444648250628957539271777568643755046172077841630546748097577421836524342749573746178125965934781681306580390274077182522312838467994292513571928237820490709317473743745381028446091742510244786725243005959461628555460981169223751025086950731672828902704881270524634783834069500136186603847769447416956651804172541237064667430228356332429948382358891286406745808288297332910541475175175483370585814218302249335626111206863769721252426932526835106418572203143352293339042763230676471535802653356132122944831406554850078786854597468214207080818321632775887328040135165960135191267107688545432380723349324608128752752506364002022324730008257430790460127540955724714696105097304955438863016281329577369765706047564986566913293225126502758133489525853398398463758446365436347416101037916953754147830359015127400517237960508121545477230283534249818161091131922291131573719810560892722241531293580893503700419551361745221122506518288094642629354496076581519854163196442427692566189397812871916055716360587501610834687568019154385711350882553781326768507400502890321899075371771861132764095462600701909247857623601813259768408829232716378323990382944068033507257817953531016781150749689410128179303578412767258670136771804707388351825105847958358167252411289569478121389568995698986212490115895846171774521409190991285443974530901224841541171278516711748812524916052222033232170986365866061605870219378518528756010594381104175170865460041103538556930620989520493636358569667701297915762051912331220771674271033238778463925983639769900111803239263406348891274932931205973526646709616736511461024013684704564149818124087676709362333882228412375547214451571801604592939690008126983358675054098697939653953248988682665394435440386951772160338195603298036769124646504482142748554089052291623452921907151500097927988412400757882335928077925033841084153949751537241823150052414459992714182226630615649054085998057725518680875276391510038779437541003646053361681443617352225981946452129897425872257853300137212546982992636841358425423095546699406437723662846942082638730008215012200803627325823641959293264610911245244810510596985495551957152971521115064309862304764984531293110020203876406191413155452916210754913852771545084024615230426527454278106687485851628957772881203772936778724874375438931994368195935997655613044057925840130824956017760607695791161398448977189227381819141141899134230933872204621286048265153165388265630982991584432898139715536372924978070874714792833205826330257236452077561290489408528257092820149306563309247084992937453903084138684188811644581806743253107225496093565871353278456493813990936038219464153526519762570018531191239961756786830953234757557130888634655524043972159070768714507600277465903663683047821774160195464428211311503466926384907738981493430130101881311501719539664625643128301738091923185382362407534100540881820685173624145706216483263925536972082605995073764995061799997733832501191982200642013575129005966608771852413879738942089332425594447097938345107994444727994572953549906199488038169990972610097417709655134975067932081592089290413243598152470948983455185831060764602350798845225774453112910445141756987833114735110781062599921123459714127573149586879587820158342755760313584903848062366666222607509703606178565865470563311208664814669674172243568537925287468064281069096008565127866425048743898737291772262144539009390266043407186986594896862037793776685563674824375943246877778673194281694905449565087691578809865995068590247566575500062947828723010854125290415334183650507056136963804150096486095360992165970893374329621721980898693667682235511336076649102361279242244321675658602120763463972032402554276254305580026875305201269368928959263136186491221955052099013248215876911577148727558212086718808550699969961288989285140008453984273743683379170820788550888059338663488097300829662248699690617780151212753364066496086085369143975233431361993116848326996050916469803678619301713152735699645837932755969504246945411410390378074770260082870056211622377944510210921536313969086318080544005890107062854814276831843314084990515022342819789763526636854628733142075370325802351653671171358877030799845847869782334638818763246176566093320958697847612209921462773735881114739878620126202213540457304580895344155473173172786831254821818229757787654263590788156533953835354765614361821576015174705789346185833070702727010581258039503621130683055988093059950697664099589485491159027311348610657246947585865517275660866886843723509981105484980391944547767357340837951573763773677797679199731132847096837718914886231858268164429484647847970061756660702020943358208984615378715268594073640930718106216753572966117548151417290740294434463693080675641541289851614361624426168723802581556995377297445731777940533313590438292375108360443191163267337095625584452267009529752705290078833992315512708958916430378705383359855419990581815924690569016726550937182272390075168528138058723428228932527829002133945661748341431678665102505757835787894297168154269334718323612996408973058562052197904535114278213390013752474914523421734212385587909722975804043605834830757950028914210701850958753887239419316588170291918873005205909921565679775108961079728539445327738762969061268098999728649287154883454685470194772763034359728344276983992879242470711552897734662302810085402433657961122449353393689888148756812632640650890284730666163740948993661825393136983715081287891036873019049379301745438231716444410939913804313371438656087584588490637950367609296570855923112270548865729751408849042344150016780686042528549419181569024251988459654473617394505163613195329241125137823823436742633857420652505084580240889889354659948909666876852283797432374102884965297105554129375298487347943644725029823126693146352729154817565510554256068775826701726108561296919891776216198197501156613138085886746621971105058102602904375835910700515044602037217097101416007078072945023981559177970451185856539574445694149850811676946456286382181053956517510955189552408195077101873063375210292871956590375370066464696188317095252961971697735798488931395008745722468982776684867816516828661707018191920908385941763138277854536702651483096313849767944921705213687371006456348077936045664134396193989057114776646151890087892273314337790505047769278478642268846449688247582105371516502146997352406082444200692161502672446761400053387984952113905661665878567693712469130772106410706928930187929885742819167742052629444115423756676179462186946606332949253984013197935712180541082867734550092231599539828558413926089029504418946130428678826327581740915622759689518404296323788971697253486357961510375828970318667249035801166154358066983163045133329196664463512153627912135747268657588582968429843831455340798984711991651058998921651391357449771413636740282701733446481543198027009813384181850675643430665185684457754302641310036514538913868496974962951279125378003954029117374868010912542392434574925162542503038921038833852019490036980756851941208622032494393849392512902615782027777131277401910856157594167080793908920422001789287032204289107909710910323360880785578186004706194803699865290791610249581083373792516461919524261365115635913384326639393942845668266354620620037448653073676625384532752292127822888289375184257814150066562129290212251339608197245514000594355684961431090060749478121326012811591059575241956901557480267976177345929642323708279785968275545072122138148436440685173717498982193304398350259574974753561284157862412690741856838123419485151479405442449855150051234642868404593510204571592991547796516074432897266192248481860585523675978082396415745625597940469106792943553857284069912482913508092101834431443296816443658637023468154584323898191300746558146203246914768916265337142452494922801970774720166090709091086619467977517327856314253975015771505744062766815598959821350136968408466417123389484526631047819202913236576824544642613864738370651922040680026306931929635309720674733341748224281633770805111608491819433542251129399833136356122343716387792463423160513331974019623334604391111150856258012210798471293055226999874526517381712425446138692455668371103094356755936335884666995904776770103333547222270965301109303693068984084305414375720586273470095625355102460995728966071964561300903447847433029897175504565884523276031910563048196050893584452812001878174076658510258577689970605906668954935689921800930870387784461121783049034353954524130938115993698084557889338265572148507335294989179535581210836924354598612445318015545048422547135961884340507859692039347669628768680991766938052315308448610885492577071916096030076086681677152652591845012189323883069501461045997809240511401256006028939378544975648288487115147319105837862777561439403311183189827544733288893318242226738220086415302084307900862362515960898803943507407725515774131616201598650942214767081749829365094881024726220727652499228654643418457199549511153653515677416561788195346066505301789999115577409477356126114821850825078471465694824409312322092861338568934875519715139311310065175343488570735124296025251824131105848142583857314556766433481998526921132850300881539644189171984855688717629591604206519827577137109789127945257444289710176899732387962242765722732640444868865549706511838348441501654532245108439608067745797228080842154144195622178113757047011326930343636280676418736439900727195685256490332586145304028025537447311507372157894447038914851564423958605917202946009692609472884310423010473014841263367031861289006583559648934662035149167937922716332510792927771974206593468679376335674218155988804259617590608929968697313557372939296323319206319448307826437450912668082867231755102749068679589442534346279243365573190083278954292799744375987507313114844968494342598558751313579622957410557266326317601706787669720443187913862486412857674789562225829954692067459628324776948111705149934203841019915202533565639284607347027585084956090708710746641062447417979801819398767908549306817431640989193117436247917275061020145678039758790917234359417004460442853017687007148724664815553505024175770507653509030236807142119030974049005426248252039290295261831415087117651231085519933791939688970275731554162512962407005894707106084218780723305159655118425368523329510459618679054056152755020578136424073579930089279319031302479978445813115782976682408342628823666522008366078141528105775236564357212912084971468210345146743830352839987918326517277430055782873767180627860107102165334001996498164393769228354690119335756066995031167720965744209408444179529763932636857002251807474202311202210430249244654488085168004532593206834160682846310875467564047959243612991061998003056630106503933264170820546916839398975097276122953153644097409095138260014640576935727547362945677362892015953403208419222609528597178628873980997357347561188332308270228300233853596261423314025928937760679433178319484998488754026611846664678521634518502639678605048348914359225469459106855559107192551911412755389131219143858623898907068300047381203055508789498277775801116434698304763178605480584643665801667128693135301621179873768115911734844464889309255313912471821645321922814115423104594983508404783515164261791857347829955997025988893996816533238035977977427802084969125086120341135641955823811440323997172336770693817968656556649118921184431791093843804446056351515199726278679207631223491613689613679604729983101827431545882469006294230441970043461387582438422382368935145088682332563244424059393317013457817722513833590129103821185810267593541038901927246772838390554500541899205616022696672219415142267770908023869957764054643664620360321243049384575111765728658984052612498947109699527549223632311853345725910173895046664080717540799050856377038816352914631783469952508450210929101932377060778762721469341077784614184243002186770679055057439948091235861932612267260164378762149455266100187188691092682012557291276945608751862564715402782137355159280677825511970101951802088093518952430977559155530114036164851689667946499462399516958562403380914596721626141420252405242189748383110407472104317386146790905143459832230071563812675148825959831305264561012695698558944109097149408811288550794639250348826460809225265085068568549193273951622078238827365865224862992941648094691781286137120816927581173314046101378311836505155306967319721913917656874066684644801957932403516889698429568600927920093991523978096659520420918689743827633877502277152308205247511441385215646555437919865235534643730895303811603084712341723300327698676572395449586579859664269140153919493745489449816554478626489635893119046192312639531755879291195832889565859247658003289145187930374964594899234059019425551991495305203010517094889640017477654961900720535126506327991210177902835071869201636212648651022175600487062745333412403679980666175032697832738160458953409776884158538957443404334963462432928471433512487994954446028864969280951453953425382155146674310141548126386761765905243428617592467010360174493817813643563111916204501666252046877304033664347851878904282338051971013220469097416182438274230658973245147034782384053250495881050060506309263435295288479124308381052387825863128158777143448147058418136139073949523623753487764752249470548881511482059341752564367570965642603071372634263744919467003217402329074084168116698253259971999343916546453702460775319336819083681857986365869903809098603933911607159809551171419287857667765716452149065772231851431800560065608771060977275310678808102893754819691350736578308681666158836434300664831316817906439011957924974836315096476082392494568503879385921987355216164179576464066356014502844939124860198912142040642163252904786176182887749806618243572033602250252356346218398913343968337237605883048395421246482547300290335971938035778915870896320019151215328367836284947724435275506510024375672331505527464836271886010485792689626802356961738612073425636892439952831546886330571046927012919159259441262023563537061050722810994637677538370423513351588032168860819464737336835344465983803446804635478464657722867170679778613601850438570093662184224720669119157400783186455543747026873756378864927252997614276573517236224994787715372177615823402817780975767750862996825481921789025997738576249001837994086280482638513632104887735949603217793485160724642180254703007213302058048674811509765232596693555042382427899415218810891068781901286728558130489370693749227330038781526759627099794866245373428838398288569438419229205087843276134076764947554106757496993656254909153750030041211934945480319191210058947082598303304927578204745024109489994153126718616430387752654880025440565267798956474662173853499285189633708743631610264905747467336328095816941678176791755030033845967370770292151738334897717136145988177282386661551604545969134213540221391449708317412651682758805649364101459455118391723869504642126311475211989819478779346025122753674184335611060001599908285019830933614663068255111451491907640431194753310570207356179907188454988416126688695504175171459549049444804433937335450591889089461907526024904605583172283523948352340206555584160612705202274354147459207847969562165307608338407939355776741814477829895833155709346819054603405536439720558075367266249715173166447677672116363911342235147184397155786924713046212360078181362559509742999259734921561722158419956319953658009427012745431282439438317289352878838322262851767136150180049759436211642768772707540914330206363276793686529359849902954156343384107771488995613877532648851091373788694675183975341178770288274485236106795847564458085433643398996263639654750170892128539799285215860965425898833350832918731209642400007660011372340927780826935106979975062556079587555621833520852064915756588092977916293166451958569721723449653416076075588407285917305073716159180186540766729958384562436499645477063780392907762077384944484446012179596254830181845108765957436462095102517161672869442175168000312087887427801129733583046326974563226535022178879205591003043390563185229674893637828600333789954853888241369982535565201710605851226007896888381733628030937596324084680797778723365039951788614613368925204708403616488883059957368249328127703956990678848459476816003147365992731346851347942749957690652497484286693601120964179762064097941617647398729087612507035032797274689772199953095914083000398302064938529144245817042464706657736854942287840788467357026719645544593858892583824450517455693009935158007060979302697982597623446859178905553183430571107986113404793475758430348130524718439924988355594228211133246394565711208085983626276814282796740274122627053631727165280489470534087291912987801488974768041417237542317751415788465454663641758135758399882923178882326124586369234633709642795968863704471583120034300001617016598025916195068230172792823031436114251142936487816050947953207120431989940006616568457838904802244268411772484279821456734653537698262703039350336111332705542566189739415125355232203466276564689918467940194659858236396768947663484809705631732717016486556355485511261242465961891233917501799622388285697883155488442010916592080147647201808204886008975620588604993661168474724187004548867050690968359944711621075118513099907398580708129621411642621841121226817107236647186454521910148972907660109565766885512909524692213146507351035754674973769422143337661309131326316616669927809029897629453259690728207154034637612286110720756713693600867246540117534038250333355099346141046430448804074732626256260289833356580686368876420708417594076116800980255597576862820838193418061380804929988380964655712924033904351850005488363857534591699356598558049546016869536050773831867738731736998954350223391818731992272274789064905513366941034648747085383424119958232102502104843515049116402436674138623941815882562591571737932605779670297630346945251670995214360996055377617918608137670937553374099339657391993615625970012871274358040429119021792216169515675052605067567636730594968442323779920045565639194955901152986661128338634238555562078328405450266284125106153085388227179456528760565526827251691934120430522810428292891154711309393785139084223627585745345212455150065213960697457849836814098868955164037386740375301131218718544850727614409409697668923605267839047778603715354806861996457313039163455904412999273463156656337175557715967128597205920638213291277459719996331315620295093027887077947890913133725429480547963877387364659482325384533315795605400391514221427191313164173560577960141929654056082389945922728671807607333626257495023905959838339703993349029070106588791697216596274238185611917906858259369503894645013942275845269100162040565512207880782113695509478746249707903945880430200655225121614071343588883436891872558173216111819538116561336262220441045896128146889522267961135591917271293626974332355877178666504071838692854429211368071963249680530489006779879873082931105920789074807516250681069958597407395332156983070216046823084901137961193483191805957586008463822736605296068072721207506764192745866462659164224773179118497551246376465738312543733070941930950952935561292693672826752770032869623615556911556271524159944673639079662723956923347496346143647894717871200861941368267543807232612781650020779573881386329355586269080999681872046141370375122115041929817078270833987433056151453602101514163813119970506714668637826912111056086902555644740058471217363219412271748122460500390100695762876780636916954017687378448782618475000299451041255065724103814983225221258108773125347037047158916783115108906599153952323186293475447823964670063209009138280817158056934175528426470844345867185683275381291172012661480851373859504048450300127242945818049043532390551410613438719698568898214419126487411077893672998352990791180636305095182480120601556833371927537289122383730581791440995430268425128672715590992319460501884235970515536392766021021629860256149996705305665741194266743114659143630866831898791629270365265173582943224485524864489286877860385089425590412688840638787469791667273111795507996031297740986248493047775382455521775198745659557405077968529423936651871299720263805284038631332357842492838245670955671697466024118474140890745880012021964661497984433149432253995590421955514643391663772646634744345604496579370128509022135775328789529832574368311516766264665616788222461967291695056275517157985836368035129587894546645677377092950305475297655959844539194100020803545398488527461056447181987349931425114464710306504622787175470694245734876382229216350977500248964779372881556632741537670871987819347543907347835017340112485236087839666167996165156792488385022728572751603668402348796644705842516960059468671655506922108942660667815830603953954391769330861015218711426489853679481258685455969882239997405679162081438661268824873404739048340081823361994077679934355861306816247469020255855168952262621079288553649256634663119849609769151183085061101631078891153078961105178739244649803773398083707514095935159126051204518776506050741067719227729985413010938844091365356129412695615933709983575640419608167690950791144097475954396700653384513734638044427335871531686400657868018247329127296866699369235942920423045838032309959648708817833007622915781146644527512412566093470239693450655227488461588319280506655701232953148522300976119917360095183050238895083475778038303180497782444610726740036042362296277103374061010823778072255699808047742792475377335860076459212056951025733731690871284620404598182394840832481466195007436935185659670195918740677547865342978872175106646656276807633732165726818697329876344384598692944385165972708550475253241728882949130363044368453175803710208144346218531884298255451827582541626638904778404231464956988547651500924984254417738826902135071427097754453340926919610247866873485700491944113234939429712993755838582701076918047617367221788505082783152795729175633679739957738872628711324360013919084400156443768211919953484386320829983023335628105038598120578389880305293790676008507641630133275968159571852903689464775238857508519746047356765985304564953530695833927447321256906662155329839205666811390317771128562651012832266134972642665366218343427164128054164902822091140213921482393162577862096453400250323606167615838176320210143076738322367625738804616765110509391300358627454907107988899769764466570544787973363476393642667775095963235603974529418539388734983370242979182328874551554733108950813247286100962990569766125994282929683248465772861461520466149993781953723725588047097366421260104721572078678093678571977869070166662040091406105715579797481300453455757699423016084670243370094279358428859412307918817841487596190696100052306038032889529483011130835828707697776625256110668782296981176173479711796647191284905645317812383579699431969070652928402592830561092461330406704195257659064277728177918664138225807479912161715514485959809414336531993396086126531406682999727223718038906122008008340347406809621760272274924947998048910348768226653595951737411624996399872720693524002801192810723033981425097101663206997769293750907185952073240656703140966330233577599473365917710952534337832008692081071952424731031596107543370316910161915588641112543478738481256484308002800010233453905474290153127775415215605790972961858362354997096092620536486720625114291589135266521694898161632353433190428268618717966781902714399986933062169844702196925618640817095391222170191116440745990873407398346430185797752448165680779168128332790859324152830598136416314004492585619896982617131130586912538057372411431142008311131792407862441364910903375082084419905165383587151843331550916092588644467270419419194509009378232787059338483438326484858727214310717369271180340538524193394759240214090805700231584784465806591463700452863719996696737066825150815670047195982139756482492369740050952565093240017589807623580737748654264302054481784015301532381088999150058898271115728748423142614272010111271527968129600542949322010867269533919288082549667923615554955155622224256418332151016723553986208566320043646447130438123486829341675116472102146043412097238539436373362975355921054542753675323183539545243375790802115966807318394204284157315736970547911136567671808270049288179287714890441648755873798473765889081796437091207212943276745259985633710204881336999637022315609629707186969243293504999905286289510146310876564751923192503836911488027332756364785458145307922289436391955922820309157733603912946438373573437457732968678709089244085002903108327532566002855569642831466645916427540588250566209174080719689074209092746839643407668457500974132143139234502848695665870188956786612070078269259989304160789045031789649011524982750151258239552106131586751671490701328093076367733503391151685011765994035531729647347121369357576922106249906515476466069978897852962329786621315097135331816688102033028474702607091338240090872153005085827857300409519222079634693175479993018751457596124393725933339123916137137320860707091175459616053044444309660065194238694199479748351804316330314117510935392453772678736538838124268115861970259298686226356230266436912520608240785739483819713069621885373802414318244487784516134289976419631234662851130997566630069991787692315262397096385553255287017155737224689967256118398131078613147310999065999746134816361690648635968780517373176287495435478728706124323465261598074002120349829949694028996082345024752662249553568618987669221047894898621819767920153669054945964260012067986448500250053391649666710064409206173873503248371196072135201839888604562180449262163879620421523930259118685828452566109895485602506197409501269493584925941977491364962877438971808001246372782144861788936422260229051643985822943829128233922821779773852863598600990594336190593613546328412479465618339425680457852698459050444345672180416242915033915771932797800655449467835280134517747083938469236328359053076626629100175557201739771721471984707422386929364656247216377943360222714873729646644125765873575032534422747027861271209611303686918487139688769573695959104117353171927390527410114018432823902468970449092307921495886943715368465777783478600364540714769394754599838352520976490563266492380596271658759579345369282728673005141192481867286062854255909194058419285882393017030290108110717394455428018885569714217764010189614965751441715863897599381953218807990463993485916620504447858543190807064767847701580040673609309011829329280687649722551821166663515255130668978275494769987354707494957495423446940168964600964831859970908378298807531270524367392676184361083540949169872982455622660827345033764095298223822910084658197616779971574005877470396840082584124828817174084771999286512855425125803934290209265126795160531516664431362785814261253732654011330400659383277208765052163778478763773918321701818807801774641467191635707428897499927199457091957205430727519371597504463358901652747000540625198379957961465248061679973918416954922904945752249084581835477087223582262018311407364293081246656145399887161073095238916994677893137631963794622788864244634525767664227365546591103292704162114320425432886047178895932647676354039884456857118333653281991439505768686620297306008059363648232475939903114917192474147651930690581106221479396893235076008688673035662822367645477734570193642611337339362607921937749651376455318970341710812744735900780929090627355374122011793676255857314166584114504044678636486546070112353146513594507455310578578893496194177230554446889961446145491240663778115224064025180482493424293875445818435037767336829788145030782826259562184649944639619709921317501207327983951963418163316672534589437098938223056556093641613255697291191517343549263030961835213340726006423248920207677073253697783077649868004028316270682447392269263280780250278713829055512035916020838738775915688457258285995038629571046820398095095723961098871559276665893672256380613582983763044104611756912781763166764217424464611072958742973821924621556713958550941757371625185355690587892255808545902327422816922134297665250560509385801438205612083540358649364211633002902770021331450677696756123795406209122471745290711799581803949177530493711061865189759017139473679215226829890573531265185490644681816905247845983624401907542068262230616829720050831174027834630103490670877987459168698514188544025975206113295753575560228782836972253620384048004001958804032517737216263490655526094074489963016475995559440636653489344609813419552570786961732927698796698429039474147935693138854936481069784321117191855940843825773147442759834458487842042056922858022776128169726902826414770081176474693426892687454459175445005759126885948851885250630056947085743379696352217611659243362764803644148149226528969206317272126436388463386686216435031082513213251939584588280827322614648980080669866300569743583321327528088837189600019846063543889637744123088928405459669445872126505763879517819837776259573487302162531593946300816219080392391076793386980876444315159359192180603757789608040066111327307181459384108714682389315084600235234889095437811985064923398324298288988906248996160115736709093625984126778166429089087796201032756427476501922343372321292898216079013320318874024452212122447845597026888150693438220434810221189995247806585993865245105570927425685774007923600144922854701190889361851009185208705031127803120419333985725324000170278821123769356594294486238659927923542178560862332382454805561464401160778910566072439735619698097815703535892824220727105176249390632031771622567893706933429766059749494378452367586156285332323266527978077839025460970271650480493995825681021769073476941639631206184233399041269543683589057649117005578957313735797632673847477210692565964291773780734111110236769126644190574678917476278713978883153999667131548450137685123537706570325828590078628191974505335162977651425225869939348881517428565279412658003655839330357717473285883186677682498662404115889389448807757369187209687095893909943625227603500799464645287769446014952351657222705291840279053649896284181420814817957000974192221667070541158373793054281562362492895147523326245191525495576827316407452514774288522532436909122506773279828871116848360160412918388314434912749514450275524311279473954837574573122227384605468821780697790218180348655648489968960149601022069259003032120074332337615663171631873486106732104096321402867754085484492583765166364973637338908002596514177928951852581746115866213039989150907316118232561645712677638647894566517055372498235434145863091037421617364448281981732110788662599969669091106862754276494656391510990570885264784787188431485077557977906275977154076642150862431969876910152358885131362714274657053603106331854512867647226705170289246136730181732835565911917679414674233069878832400222678464776015302505887130591623292775522681042724596058938076859716902390800734470532507950402027454033192263834671357920618608475435815881377692584663248892995545701664981639932299450775884713045013829264028809702630463356147527863752808788800199938291925387412020663108117307241384812386381017228228245684874817599687857024461751551339469027106978372039716636509990897457080403085799595506617652479474731106280622809088411592583985657526546755283540923436170500394440583882871083568301107167750632334456897682795316579357824120634257225531358994341816047881504797173549417718496978014574249555315928807658223085247724812973189165361282671935967325908951771824014854333811624839507528353237823915636729814468448707027380417573675971541149457427425760627845467465661253193843405484907189687532216970513285047572826641136808978714153779795121978147677115174110219147059278798556772841283544654088595440501359001467638388243431872993983572161486443374283392167664625551185737051722623594145947310531250867414650530002928548091373182268604884806509215538181725283229676719450902403239282919079965061012671581301616749503029742959681565369567287531295641433555655159309119295177014745157158080610946816702758179271599629061847125551505276794955362034224817232594314678758054746554671072429820978166597889432602119385458941501124516806640890986846692958242413927207569084431761377718991982631534026054660714250799442152089959874421726947597730060949391611792643235150540997617674331369492009661465435581768553294426113594319930690722220046895707978878779505191881729208699024767561165632524549362123083545228655289415851341888003719742348288859929291387922950453751495863301740543220519259706976845038553151048241594279326256638567378551910253020761133913356716622725914491787386870381345714896638443058654354644170361323432235765208763064051699223803333989944993056988950360722491693664236113652363519208576695014442412255234402676323061183667062432276954872317335205153199271821954498001725559473050712050178171815918959626836240737716210103769446751241643220714170595778300266528338227574411826685860974674699394967557437174280464477592963971028754956505180309597175316796793898958425739945176470678263466297807533864284556341741097064586200206242588284776062255853491067585488883860223325863352493521745163273927056814554626220876101717786094035201538979753801571346186874471351379014069226977113735932178649550151591741630808887651686514994136976648938699326125395654677107185187519062341240720650641669432832967958304279761207566783625704831390482638699303857656771523843278134953299398711789932443546346160872971402523416368954807260939843315816024771642205534878868375926991316218685917460826412629798520086652613606928668485072386758140756323490546269067485060264956207594116336315356903663293515386946724715791275250721693257860186566355642828888505037849099221810847997475395234013290263335612195338055805624169642348458708396924834531845248933848754126885959470956963517350450274022182439622314589537170392367871033839066818867007103514696909810358601599050119311487376539543335363272558405605878733217028330013365687974011292984285537937021272316120324572150123811294948115112126926962349663486194347063418397562107452698043102917169443166300295820007153197139257997327995479933522540017399877113133281768018003018158330499894248056112744823666360546565708050700205760327518705845038923574831992097867497086570974217579728170403644998158977120544768254129726074500998291495574105644716614413759817100255657695605396174498288040079329075914055523639649832954827547718776576571952849021367857190294034566976476851345626095682058506607527835378601251169504537908894804251332209318565602937677367906958358879377539981113208637714490804255709736471596585136368170273469687840910927730993026167881944474744774781526402155265356071364530388096967267412985299234379569995637175115586474171573552045438916379896040217378135880317826970081561233119678769424517857268584597972439064116671839676598226619757568022529039710032060801554724487914840319519350372235876917451005677548573976345248283887944284715965352351339506681635918783521598109446752772462579132894695178593266667469681486895738651659515375761132597790637611319252512764487179221568660945893211581121892893269325899239898349520109983640119590507938613835433962705962697663975766061313023532521595733326267052948189428375391578824024345216576381058712318385529289516730454336658580333421858106774234754122870073708954371786446755740039032944773203365160788636951036790408298242605808357783981874235608822189791672806023904212411379571772011315829513609096692441170947330242813031551756726496996987992452210069758989098903528524989382102178510213188394551745247932843311018827945669044712233426660349824147903516378953264171187547284596650402311932154961865685724543678154140593750903589297678896435929459088751877815151871376588799998336267029517273663510323037024768000198032517824746862799108289853670597591327814798753630122040649666260039155189480192697426517847224476667690776801525580361619534098377594415061403002660006724904574012633700418357218738959857645874162770227303446524847197240626013690678203353608417282759968243621362211809025021228990667401110693695203815175895490203938940784804140444767339829304475615777158502617649204809543673882447190127795951649956624771508093997766656499041524286903209180088973414448738762507672936165861590602875382879515389385873899603998049872999919998428610971040716635995870330424548370293833881488976872435318618471138728093392418844888323244252600137659454099545703138606932638230426440154727335084947578207945247085357989739334656162107022819488096569072769392534038548642976117317792347060460393812136734987718017433128744659809333861767916189750224257383260658825298843681790185850384871337622208946281895467527082312663023711149596863354455744976125317989777325193005797041461147712173117492773254709034493112738945712036644304715206289048998058821755127960147693810607284989155431138503217423542493678170001655641455118449622198590432457497618414943310759322999780941140709145106361498514067720618232155730261341749321422638981647317392143041589876971575444341632204692096895482513130510786426004251850410601630525870476314795497193601240196288924699430407654820423354945724266407817015869374658411777779972696928695831059997177264566043441246416152600457311283402742924316221720176181439846173263369637910008995533479122110747894925852314750998122223395783990576265464474076419992436904843959975214628738372999748936957548492684550972151754965967043143317402693447252647214943635391789397202525862785392408260416193081598337013375145390672553549416358992324756948585599543976844750977224727791699521430494971061837191811808540045933152686455441625937699301975141957350625622648186400812335537069752572167826984847797758769009576920698022897007721836449332930267788908399607930489090133256851524304931935886124871434441580887582242743532933878255072566929023996883352065592526654165410132900620089713975793193532838187133311762205665793623436429414223260702348708601066733269333865935275810080785169924938886209469758944511953634403466420984442441966473013437335690560090804300058407954282107606536271432126258092879278927394083049818326339048937444758776517691600803542852595191754794127103525965971786101460558971854175337458847394748108265147185981943967157825352629706611286197430061039878961236891383085253787289470865687279485912664970797739437078148383077693969606312272680450496660594317782367862737417521511476825833868880908289114874738570740587954394724221757526254182654437041790265018343949580158847973278551956476634029125230833392348905379860597951977460213172517705618541728319769145380807635087054666852317613435890610602276724019790211379277451216444005737963347412487940468091785237969114214618143082121112015659717749940989425784586830184205314575587206411512612023158861339968473984718194939644106249934214048092984735397034860741848191364065398010353155432926114042796819061932680544113321804922991401269938407396831068413909414767010790793102273399277331657986241074693823509139131292414142342040788467327945128393670528490034775540338827341366749901505407523317002562651605261858253820522817549747461719288623572709538032198648040600941731592625924770159759630721162357310372305006444251945708889779573979221071492632878157306198140778082453094709377116032147208340857986464181975252546976580188831211148231588549730727134276148755587402760007122975003933610710182029687891557442549864504102057049648161110822761921612454844056442896437336412587566285805152545840225300072261087078244951393794709074448447053353263335027802008272611728552710667156757862310732323321771475773115244328536486585558569948192883723487179291299085585132006431338750321830162481611104524608528392034881014015527460082396737913280584273171761168672411309847770871174207696013748131838573828251936325568166751116006287856625860203132509094044095688997599921093733520073549246862695242858093204035812467868353777200545788745149653498466446772100895736008934328016201147516960835647886156614710994150709828042989885805824228727597059765665863433200256597877470871984963759786858803491808249165170560311693496623093194363807300105552597260652434000294696403982716157767775834258614897729507809625589731724628390997440540686480664808934874444258227310787623193501863325068639580513427552327181525374078948375276462088026115127412080563828874695229934390826020019247155429498469442814501566320973364249784273008581119168698701652519331832881796646495207364087296180975442754849103161154025535584573500898440872161489288230506414091841104460365528170616140227709513137006200501838691888374738322095835917325038685213003870984504716644111812534260707120565532258767306852421367657232596136415724511245405767106319612094466706289858898392778251753407520664918407387361508116685424724999064904810262961420096433823673071853927493855751205650149574033727543630246941924143704520223896380997323110930590892663647854141879840051620356374428048176676645480095381742724478591327507043298653566155208078121551779868587206435781153831871994979246797420552375052585026610738918099640513310885079737264343690144090874845378681119465781700422238592209895916801528167040867859262330792266114472464820067831180674047373202566941892127608251033531968119857557754774676996861472080466694017439593143537428114929336149042361785410129453064186170743493811979412578481590007161852960641716979889980284382054740953575740522248793239074080609643686498933293210973093749286344788274337432353984164377679223602202000235226912538893907950385393218123837904216775665540279284268618007848485781618320671685719691260207205963334867754116991852416598063438304198052407303915032957351817592232873962184293794360386515922023359447406055710325978250448490087186215928051719175560556919167640983495678403870510989779432860590619211193510778028678718731926073990024630037137006035568386843360086744385444661898564209823401617084816664606041716436755230545781308273581515986236059933730485806675952647600839970747226144224602502479634795044728745643846276883688551795583929844204888832438367215810195571923313388372701411524026555944881172852267290252134344482802675585976573733645922326098148418026969273607058850866914977740822631827591111715929676766641674873142569891866555532103113003786567675162228691635792401094673218584561152814877339827207930003430993677215871217094400855501059133095142223734092263347881505305132232854837998438713857000461303728179502522026823494414917076737616353537583006667210291224163591856924526366893682931740328612929100934196606587122273589922459098696318496307010725710968537101477351316000554453480264696479360742594305649631782812738607910747254570557480418781025606519332049143794925124808127471648602879402546222300289411087748096796385772984870533154217542194343706058916833921386630733208200171966336231481174780632057735766049849939077912152877867974215408073920059558106492216946701684932678142868099104534356744506676116434672130547028209002585621381271357907640203067812326153222991329076265170807339182221840562405078179381082430826268229051014648848492830411389755875933887925986970867976933352551807355604509298839623396078140174875992887699374034961201299843962530496998550197748745665105546221065186101516326440613277250878788300761030596736624123422801224654183826527450838321327183254933039061540574919947227818934857312133056219159703203917878488176738649326716326962658180587716421546276584131688857804778360758713068440339600202069322692271250702518516864597686641260854235413041370487472890585721207790347040897081961511853651647708425196306080985293293825060763461712473412764612265928482323800505351966527575345941352849391130984537357171319076051066325884634193421052506974359535424659446966457627447955689230879773943101193902773146256935668387684767008561720350038050863796367912180009475280413579926501382562988933423879118848809470348149966341544872861864904486564037056401682783915506792377616998008715968879809437997582840076755377917666454175673911156750616714765486432178236227753107071026130961202693022276272753341252982413081254163714901691812103608985106644967599317238659987450418718246760733907184945462098571123104890752046323217568449304024929864429585030945225658060315792858403239341773069694122037764204140881223216599016483236445021902299101548780172253840220018546370539133570835434715081859569862918180476099093687978505756804178976196878404024074154634726919722074376622651238616989404919749813372210906643456117406981266659417891054029142183189931802695000110730139164760514368099567512035133184418492690095156771982911706345013659150691407223630916707297832256277283397137592875209275720434452461300794122302251926448884611936133855291647482872927706304010915042754329407496919087675978582530083727261479602555167353727508914275914787072409369690927239499548802824377785012106486150505045369205361686712235267685894426788392067029847635601213801914722750194309390923396903713136917333919981925556233973289029300042259844254957046034285650536792160815595517230454152403779962648455367935783451960528745722353668195403969273092013985228947181496182461750908665320445250365048453132294304465216143182506711007599230554206122479405047536125273859570810333323339855687847955042829951105304677426621434118722477175259003291878888579211716318628167119677616590297919707083623667710536280523539545837149089543988501129724948528018505993289529968274540877184988820619779850326287715099184416493499268390312216554620319442551436844026006776724972022481491880887859697002081715744281951997820127327579719991257249802333426379086363279437493546152151090999070770935542377095083214464783939677707610046302125668466339585378780516507908733925836711238155088862837087748589332026740479239425876294481983909493820803217063843070013160492313936059620747926456178528827810738508313286539511396910679288993092188028236405032576609711977552315840242238387977134434727711285265244866003821111607881208248315399053809816902349330664740373588399961396424472137202847958219354610499044608745268773172877155574780310453825621564748129047619034957205196529092751698539492330014905877068374753931285187267186596638666353834031910481778729743617242726245316049444633462491256563980867787782359319270534495983522375354153512738230734986300292964085297032436606916837112764164489953830180019164955011229703414371918906131027049933046023061192853595037201930944002590887382937868538904686048237755646366886220020448742959064228219915222249754881389345774125355711166262326234200246757241672902679352437663582635334103003784024786916742550576918523748997742276871535031012381206873866293180070725466311926684350077191478167811091968797167674619013526929802929459570522933377528340472036016519553301833268851154957738373929299112754730591320415607233335276560725379596330640141276948882104267415636453687077240235584693630374765627628411341541882777165111784550863672405878058445928680568756242396148137770271698146782996810992138410742713022632331842359625890430686228391014614715714229116823570585155022134036897581146572160050016661943450916844645321768623674001127472250350368730766161545830247518165966870537953483293216272729088438309088178742883670279157341984031746573288382641492692688846208257622598319345341086164850558953478650368181594449697033788568480953655563521636340687456851828752057960980115573392017755857942330786341938979637670320344396386294603191703768814610630749418079435005261027972595025723506696753025029656281678760970361528499013176690180760301309767698092755183285962008212828033243807785283773205519515776619639429620993044973532286203039338109537035528264845602958544506961583901723295374018280631057868215013685744272106785715936810575024432958175829582282732821493422091321649514856636700441872404752097187663331562430383553104311289004048094891119326231498439387985090558972940539244644098389501535262925902870245836411540844741450330937148555900915751573801685868417054156671909701998637115097243047838385890591829738618346216281780603792972845536876808597707076869682550663351198009897708813693146316872432319044303501207528157040451086714286710198996496992612966700438520908872482386492201195625617152108921549760104393491249445630134483489294561672753151548155094587428255090950426889293361992153899104996428226375205797034090523661587824772462487076026317422640445224805562603971944641015391076330230439353107979421669129294142035812048026193345022752212600122987878961624793309818395682263339714931208898278908409913085409537273191256300812805487429182293976383826817968150814431325105239493175064733960916444584009275127484445785732879403648294107684767160599053541820415889566935196572146227112929886906334337355988980519492969831671844688190091017816718825325269476799394295193035691997659685362118155229962479734798551619300623084196498624392306116285788221304836424989827752126214372365831185861513711790091738688531813794811233105012026309618830096426473249524981554995808144860910738078300358912192406504306499078869382637870277714525736143898336901106532899994577107386512979465199588753449462097526537460554338849778505982493592548590675118991363469438663698221927992947801992336950758251705044698657426285902467755754880997605378020569156409310706122346902117594397173092603707522982729756811723838345724538800983290342444512656665328296594959151638844091554458844475211186553852789664208409637592085560122968998930458722816844405255867765947664094078206188780055937401872537829145270295725494435436474672123741540725343086665069365420417819789313729227258980566845580731944557548386956619159080465150112604025081221640108603314920795007170669176093794294670958516536899544106536275164982921381631747672863130242415708562987460253152641841472303884821135902458518182435083267891477837943763099113528306157540679772480678325619309939262643124967822331082029061940118768944939356948374480505607609437524981725324579935293644222749258222847458488093446945933169730190620717613993992688407325454902758411953226342496239129013786863229556996520422278738265737139300902763662796027959522129548963867262886217483154475890333816248146783031733108887742317075978917618607400308701823058948055834670800095985704313303008495123573494593483892900150916641649421308938790543137677848020969141303510041485907247435789768481719963853617109027993254528706340560613778078325711890526960801559576595561466651746086850768453445432069886086510565144472518041118871909018217524288549965000460284391146758062561698866027626229085006265567527172431585862447129820316943324271968627910701814720975983077123872047270419537166071303602637924661088745755095092193354436686575916168030510611401380250003789901516701306175424801174186170719440993793744948633873075609342129481170047687621465823024317214155849740179953064212498339602445367465286252200349999277999246748057939294829513644363828976865576613699223861746321257226339451501344733600197153299327611790548944866886652714010183994498369672192651203710095422189225857473663824337499870093800168340429901755870036870569196462983676778849084567808670094394258819247550798330062314848326888232449935341218053295905764676449273943562877202186979689641980376304829194498132503262606273647964430421460074010592599039981054100390665394925879738284699089076496173098508823048811411420913278069671496138807080222055010434620247269041338294854559078196314693755463321862329765554705299998391903502097891346024440486632570189515976536233141177272690300242525458695361400557099039571372556947395188383558747431618523131690272776670068164201291755452096453741325870788625010160310210344584593763074435793065236603053457142043389364055199780602361619546692975939578143585428231906552504456702118606817114458178358333186977207266098153424433162962012189331749549144850283387213125019683121472385930565621274488397714248152237587542934344975073282465203059558395429566940193235737802397877341249100867816875762075746143135340527584556129201670174712020033759660779115499548686198583331929007329133212840531777142986892607966357084212589064757295468651832687957376062261555115221572223364635423856210913309313769939079431483701439754775417172862092708269124464982809857969903982696241367700012579247734325239930635296115215983772933997961588325571674869241893200471088240486659015497265191440431809365088190579205018643669707465686361771700685017521237513989021779490544817932966828519644570344796669687366825980311074061545151316984784114573348319624064054065814389346146610004665478209153417821670164267559848916924602965521202228487287964704525958666979863024795892421429839994383683313975852069290454518384818256117577543783063751525722941743242921348490366164007619638083633679707210124169647805613948952570290249230103617132040729300470728166718902213486921979176763940855420035967318271083265223984744951547351868038253812615276259577134714520825574862704879726043566315492656473917390092312726667509148271493812560877046615219841332229975704053197216529767067735618724155226179482999564553278157767547940628911551020412898968578228884034677260844895335936359218686341168505505989624898958520862088364590012763996473407073726035195941904698701669779060703739056022843094007130443519012887955003007227077803990928126010625477421752381271710871477668208476009318848964030094895673817496344094917781731399273779200985600257563656280434963944307719213104491670129636958716512465405123502447039118414417984520875530147146496398343718479121835595062813197354459407886026871731180703786283450986530694907405380684466162057166471514524441780948311275840960410095175144680921270887154498457449348538692123293449664038904678071531503772943086076866065851665620038413779681587223907591162576394644163605435716940059979053967005694048831354868166139907243471086584565597072231592358637751523685075111265606434058099372660994823019435959323990888593341290215839667554701341154411962971377139452832619976294157950900996982246547722840407687672579034685764920974841763514814337158408463811696673821320995793674729214876743782664866298823323063614657283324853470438201305836082121363659335696850121772495661870090100310236810373598099875625897717243495368126372559416764634789205644207966176595148464876486099489399149614876301151880096367612765025193735192732007636016079963199034411817856829987070061251756942494209141452077506673806923440666009887902739081701554818298057404226343021387940786922675105273705731158532342291195783679871941751551044907963523650505730402650993977518219824914166734359850495666826545799700400603501602545224166436506886576487230170603501279903067063515209284945914701977912595530002326907683963057403293270890850298143111531611514645600648502062421562885934858882486824634890880224830145066440165124727413357496697897831309747117398748031845308095673638838897310671453673192439520617111319346573752563854287325195871238602951669682947937691734352602001441572821102684158001204312729384004054920908460741652921062479982525661770485357069453166868116452004265629914541933461477066687809056236739421648245959846809697733646152613250525923138563581342375422340934311177871021298488273087132838231801878761484823368220866896405449260570363634204382782034656041496646316995284782961304204156442974104431537407520725226968220096331853168575996679068037197138839345503353730481005113193370821268771295468782067613048554875270907021241811361819875518636007468367070618801092328296978477200600317079723332205434386990981650407087898770562718560198266834120262704489787755206257638636623594403905802123442472213618630224894705175483181009244973257156895146250129751788086974702394697467861745042095242475835161940141293212767779899512429250331421327596545930275522342206399372247885561028120914363445254227811005488557786613342235926706042465160720256159807942163157572761949341197703510143500218499014984845279931984481368981694370834917502229881364320137429198386196729297114576521232332878961151205025952102911837649090405477745066330236279125606975701694528112770555862744698385574244196396362155269940577812816550343081684413255812874488808681876265899399035599563180451286913395762793053549028819666244531234397290779858676676852994768883258316544011476850728679347630265896797736218578561377993239540621330738863575300124660776062335060868976699037060100140017118536521804710357813177078556047887029577471150503206117105306856781356678638417584948937527336522344567716451112561144055255572741322328257268785700791927715655838839679310765734025322793578665428324712324657853129374980984515520042398189364496757495063039367154699430434334993248749770869448952889775744245207809295174370017826663962485009724704358463136040320067764630171469365107505479433668734476050053780657429428569854338038708820874360236390625787921790966775966120938567275645734219373587641952368089578222235201831115214977984339800104698495290619969914410824709914394522282220688437907346125767058818802031586054482401926829244981141475928040988542596665930379411349504236087062036263443000731791245492492832159924197041273202081268792154346747837452329405860466578332412715225443227002938069773287799065856848252979367192169064333602522965422211858323497876820715810095102821677835487583056293132937862026024935488903547514648720916098953286191887469588439012675212413229856272420355464429333972407812504197934773905783673321376415357926161149838021325169767723625460181979967794588342990734642472549800824607750710394713283020225177817765753621687668881051699453694616665402663795523340523903165025956458724457472047730625662966549420957312204358730316108974742095079280445008866278701944169399408117039041524065508828844837613828044325203760230898127322068635385340663073952168404934629331061308852843323399954625949281017755652033683987663267618112182318526719021201496610808004806641660662372285306692201341889263166118418091086404584059097487387324381836451661983160135270400578414588594305768361869048865297048786530215743277848598627420334820030928307135191786915753636711157127540513188544540004238825576156889303122828684342793020635915060084984603338537436457027709163130112427647196192492874140765190877102437107178186090863194983454354866257447778923943350058396919225968570096272703961457352986022046957671593874835197833426200047384394635387809389058574578198368952900439644092157956152632153299932209580464475169648477981003903658916462076365505679361801516129650266404794875824390600576983378271409665642140752449745918803226491373429284931537234351968712104023977857150009615112390736922387579409776784374802909297564749297421479484271398242539822268462416167134836696807349830645923561957788655067829515941576507385680666796167848233567179620136069287777757475088511610247796919853967252271529730339328092523557260544255475537388162814159045528584799119711874264323438400296564203231916179639333005654601150104952361478284055951483713687206393609002976467634269219963970598559562840378956134747109477074882479759848808126081091525598465417342852922060380735776680401274546540224141234328990639256132066138630144596469633241914886102452557090384722823642590237173350336072079122007066464461472517757743368436781238327978071087765487039867143012230390043050672056456237745561107510991892729459492036290389906093863675823794325264323988041194271142874421548752584424661624978468374316240065504174020855591264157134102130572259481034575476734606143909679892432094416959040002433025560358182103111204886679382037949173539591329436960428358632155836350366953792834106428810934609996140836164035717425458281759045720988724055355687612238433594100760469418289712184276367407331575907812243688467543889894208790991361424075998112513739149310149972047020157860208133902349193578054874156168804936974541733840562073225781117695192625981424630163751583389238549115475676774289310072959486657881311343718108764899450872239336258344465938937405185981146983852540454588214571557999298689607393972117095840332321741145787507615931273006241635334403796153578902294733878118270872449529986407811121784342985025520089511879822893527318741519667450798212026699909322284846042741163670482998526969642371370680014227366743914951669608813313764252208533750480921836329590057446408966132485319676541146249301981362350149670754549599514814898353711402423231436747245352620502874606856831549058058053384273250858440572131199199479313062405175238860532886817162217113696935812175501794920894340361186604809377295497406706160415538827102989185841816355638120540416696767786678920651523744011295725216482884430313697793570924933606417509549626995676417352958526553669356800811871966372150628736277605291849491523763919289835654722359628676762052050348875083029909086227219125805422366382645855879472795012649062695261896495466031460486277253186745451623244567582558247597769295859693324742695833643579139815150826914309455994759314285215916711081990317234341901857202164995502563742387942686467290739866315562106516516090944781642823210080494604309426764051470834923884483552625529912418101230223462298515845935703959449077013218254014500822800027477660391280851397491474179088016646479254031497653488238189330234029471758539263764887437287984374086235761586702081160869308166499512363585753519862720774542785347461875201494209837743388019010972119759202687032805937057101191744909210019129891509528212790889449625259350543078216201569968118050248033768857554821098767918265006732645026304179856753211663472544857449631244765110491681433339593112150983938929412610856796809378937737829907412600504399939274370424526479104819927518527178061423142363536930629579328722623325238176743893341875659686629294090027906104823512091308137725200358808634563059986479487623835032438952329973743449778723125576157587458081782968835195024015899531179134556226997111070919392115461185910316283871870765871266632498053223294625079335333829317451794561691664940696883224509788451759018310193838747524984331710497518040018857806428161187981619650843978115890061548447379058722977609139939994264480875645020327860101513714578334816632631447932019074352893826795969326404804800411733069134201084600863184413871068032871613150392343210739882238447491427091347090609804266248316599993523418181506695577506139273232958288506319381888797006175711028405144521089140989664876300836685802459743078797748081560836416987054867657893589424713040452178436887349082678017017065075158917349570484212635872611502594502121178718913342207526856683914385160149273137286918835269434108754076560182641143279955604179054115018840765927665574951077971123724244526408161902463146509614431090316532974122485850911689071810951969227232857596595112553942287718425013293473889947098379862703614720459738822067373803410481834439396549700986391351467659557920486169165710504320485215893971271219890807127912415923079702485427958397485946357098473492268646450305657941904453579503439655667927051550446680587298120470328062516258643789223208630009687792109319564717955481593474481065886163657025797560238932644712851333700345893255054456983182915218661263173688808487355624136621393287702707199542581267408525612702487902682717634730973730232785975525457902081589690284877813980448705424622431185289272188003320179540421585090240911879894485662818492171562697918212158904276481163852584692570322732720023734857354339871264950087528607149483083949368115363123374937751867861247668321632644964629415632573273414269144780997910145706447732140525004219767830618851616283046158781699780167973917121407730572023713575307634407091867284111352144880861802684739387796995460736733736172246057076947728726265652135929825817635504610425993640232324390899897956374319589099418342707447010003272872492803133531794659508536653825562764817039697735731874307306968318924223910889547364987432227288465711757564726389872261453110047592544206310527671607685106343368599801319787050221197220856189514421190004993624671002527014565217883003623022533216750473082672577490502785094330421540223323558414203916306001600628239266068639934679933810439999391372152594437282842146379472628431524143774751217765601903830737347580860383313879860816817367270292167060110394923641540652497176209685207177452045147289847090785342378697806263714086421851719807389386220593369910491671781561960309151229444774021712303428489694515343515492174039196299569422888554143654528553207757594203911389831825163492980428941009280627124620155813073581338391081355273624325572272475237023890463861087932365884700097237243583469109222819761504840610305254173285828618599592570098302469873707003960556619192398756619286845599645849344230593687323973370719499640018365467598095221538733916445204304514443637049239016952714346269282833395769340417462540850222418536467889618431834036661315575075328747720662380398995614603182187928955640446380821284424163763839193401017817456947755244879656755251335681802540378965345176085573903498811480865485137003741405014132440224883926704294578968605263047988597476318303251343832625973202795578212199564947328532060006866284712835087114816003474415213794687786127016083334679346986173023133272065049993052172305710239861845010536155571154198006210522562827131502310347120294242653875181316006663887254071399713175457970758470479673372149037856137364351141787785423031900877580363537129688466766212664133793735439656241195457471518190720729592776678335244888202819435157379820900202571266646856125438183650410498402954502339733973985386989743199114809535522199066160726766147828409551269395850012235511498214510149393462343083075471112814952049421062265604033699590509969889177066656228326985560802559472972878569185322613418318069354121396013008562417451994026970735628976831494919783925338754195274274486217377944202319262453872041318456668180833140196332574695154559294957714712659899128731207221806304638654220421520870432127135272439517192159224302727896292815606885456568455490909671747085377464987672221887416090477499010420474185855286431283165678243179096847759755998811291889594624252404711979116197748028475625387197650821952582463796217803581670942164851000486434591924310388008158049344498309759203032180779426844725892208256050521410893420961143435169617569154055228841934105758241183879461020630491861188078911822936174669820870274838916974665867375989350266621873037680465933121599043435896642895578289317648765068122829196613834989750034599014038646627216469120870678210995309429263959616286935140310732992095769915779788991102633212398509501272875776801273351359012323301234901349745261082953084065352634496537918138300694095701118727276170739412672530493568338690039191992628762602511033291412366816093613883530192528287156549269753839694292047040022101809434048347703065946422533996443621217224023284684896415109829634986953571528577603029284816535175094616524138718746210966839277039891593323020268837195289658084500797863645704000656848000378520353033244829585297176868724843151623487761623122294704806083015927051835459525107266209402790220805343881916733764523590309301383954346213195406257803731369520639940750735479780448716886333791061191262741421436156853826350635628595854559533311803115918340907353324769190480759415913790239013339839473233360440269468832020725486414685804985889648730049766839455720276975630688294198802008250596423106810775519545416093232695760274831780249058390454937421728622620973663328620649889872046514757841161542500790992204605378728467534104949917507858545060283959591634461382774050423326303932268233335172583533459260140239405432349416769812246099103652165002088049040928850999605954687451601351980835746650655629561924099391203749840995012846684026707528537293697227724618531832181655209454749589225181059252628701322502658432788022902093010768359079244584861913650756057454684487343185918811156487860776899297797950700933865125631543520974074853566501563175732834970492902017348050980933379472006548207802183956850140150838728622377608461309507664502928491000904856490264869911873271456149133457777730729121295045529238806446648506874474577261773110128491293408344087744082497156954461498425221079004469799076974314567439520565563420796446241585516692665512428327199412121147280420784471912673780353975328804927141838662559239386735142277361762125982531091477598281117137786180414372372995654119024910440537332826925905926208554564743807421974326377441994515495989056616760646485379735514118281210054418072579926558723954597850073613120697936365778621762377136267401030647028137094521182705822467483079324983999395348294446057488846101552160514743859769124670103875043355930413326896776545247872247584896564382609696384245214199812203398736976033751622158582078598491042131352706620866309952261984991326134335406515696867259715178633212645622764115992433631905298895829329091041142308430807354974417950151140214086015691508315528006785327295175512704482553205492824913955544047432221936531625415473666890039023872279047481599810702429894111030146364907481267879589298663410124783528417925738648813223715498968699274559032923022521959621227787137039578735194750523999635304185330632649572833268118345162534993470055218254558642861045762707714697080967226690844034275877936300882563887806163273152769249711316391327419194379130207095232533840699679335732873541503889752283778448292176873535647877507373989853594524277740962381427896367477078718529448603658045241638299475412617514627279122010044294315190300092529444167052255888599078461013709806997368184138774070443266149545737682047401376715924747374158088542476305350432304644194390681701800343537366707216874897676441437926343959008834815306070711836859026058264241847518940479434884337425534032450865901668048358903952662012452897177152957744819559568901835866525167038906465247469085340204648632488978285177716417327448107779009773936840145144184741414197937882351155634397144234385249044400987492527802311019243265479909055813703813594274426997218812164900480284221079786950164240009430933719436317845840940425464777640681846125468830302948781174728431390703615462058601057187617685517145370489674111295565088684033520013664354833748450735164404575013752623045673616713812852257538745169381933594260353571229152629336810753732161058859628696321275809567942428126559327379040185611477137124219797921951615869372781882715717654063856785027559262883066768624208901941467132246309954291717399322938040491784738558170252782720419738700745938783497046875906778321341260988967603818725564235822038348955775744635069258981998891937030260126861229098529044575004754073105521829378258457689645857764656597546933985329865956166143065015011192653669811255776202882567762324998234054900831747008143510422087520900158096164007637130897649400613164067086033681689017343390964213852802319674841786057044525780961056305746356080873680266251288476923215187686468392168541470984869584130677697195452839383667317779124548331176026737114024740308955672377367202868095836715545761106321629259276417250474282231768618541648088660600197571653718409479256070821593970404594521446769707198587267283984525528141389363550840727640870596020105757117591418252899912755438754182537131193422772099254845152032461436300079534141485760839393203060689208767724118256847801211088182836728533722548302158144425349165815527203939623035945127447996996744909143959355946282987227993208353530602791331816377259601354900412884880791674661070663372893901941505239332557977641106454309941629969441088607916450268242199647541954030516403063703676061103651008605589999195793829385660842652070189947535820354922087476035265226418557329524300592457869345742281876825972295806807960814348436497347834835614653357689033627294331105269799169915269256733453903571619576139606340267472038448417607160833902302569955377916120962636505839329927151139876092036369090215684769980530133347483152547370071255335182892562655984283246773990035182275860985790268455296046093103068382988432394315457335043449861416191269477367821259001717997825728697380165704459418632263351097181458762778990864532483597479852571576243016785868450074606610286251574395091213564979646062981553730566594285076590646634985213145788901283758675432019448501773515273361881273988088146356121964600911355138479795062219673281594988100854456546715690038260158371196206159042378511653677339340187360722524070538396231473025073915025024365696700769117686253492684768969747199622194473060411694192340382004140940533946527055540907358722619230860518520100388248832039395427769821994710866600953996763454172921929458041100336143470844117136041329169290209175458866455854939929815614731759783512517000171513742000037563848507381715437217298227804556278696157722896823405909553411193021685217919201779083877378076577862385373944107579752821408349158098025961848449821934035977701382786274154371053364953326968542747851278744815115943197847283733160234029023707773544905192239030894773485522002043974587564496049587698997047235874374247436502955741320569182853463511102201728034263543867001518343492242037019069260050894342515361296255409949404767456230377058254185918176491158484277608384156236383547338629118880466431256512738473980067494388302465063801603211295320023997533001948673459069365164122402813485723329586036308640283342466994844078847611488020570960499585282805523073332828866609184849367916329829135025130004931774753050152089533478700677004376778151100011645319424822696028860730519978331496212513523748871315631248792441902738272754769043931793220394336534428207778887661051666388088911173582890922128975320395203831375679051791144252392369530705429623876776036582134570467699849077743815835689562237475897672696359030688019444367073104770365616732543573858844810857427112661232330683660982996392317785233358414671399392903522760630314122865959608423843078311222455916429848519163121656401221316160056321420438763353200490253684103216595959635448226955881513639326235047170931310667031533917863936393245623594380293800896441536360138650859933272095513626154778120298852414185097445078345480594867236617727308423656857223547318148658015139697751612050171969682532026684728500928981190810929080823311726122630285379810282725939925300179549617910735207048136935725819012571873268306153179276377189753202673695177454389184371143236301628236245139057067664754817348954473058454528363890580363554990863353080348220118165279083330000982630536766879933565876936204315880190602727387614777419809705898622310699248520280221346315471127950302786803696088743581610430333061361473059293564208348805589782429017602773206738336233643032833731432164067824672884573879552201424152898524168095257646835117502800506332860781724983939112415630790258748059256374110577056427991028581845348644579688844579645918688304892581960245462890669548964930902308074831506303392751226535221629982697265675728974123221021564323448048971158223584254938731164372519697150902530345160640956327076494316834534280180810104961654665946814970751321158551137795430439864641421155472616366055764367510758178358321784928336738193969175061891509853433247054943511096179535508921229668168923161713717900845794527189533777302077740663153773830913870810655523059667367885892860884490123402240612744022307640027255748853362762252410532776361738537185493420715956022571053533027291845878631824462089267944811135334910702473502155929189728637896037312596419409417136145801456052085901010184576779252890525549958661038116899793343512005292891909418666221056916926384376446160614023645789273630106537219775471965169191998756945170151395420904478372830244702948047124685711776209962396035960226181267908488330559854417892600001498262501616554825128954503335483372989288815526735319039078627919834965529850392117837245221121538299671034771797308644737856853211379862111425583681600947298807055657776270682105917182728824559288467185047684149513306557128015736757351387288487663248944301644218595566242421222107376058551129617572650591786625772654128846443186105280805940149854031491215093379173844762563166623500967132558368319526471403199658357592696622384684359001314758357502393681521606506654610426392646236615508113100306210520751657834595254555719647536289893632617045545863009175344319574548436231089654529688340130698871526428276988881457707714838563933475849384664402180478808497131141821113845647006402626757857494261332812186312550385243618161515354959616358426809160388708506645280891118890052215373421169788750454472973895690941253330195369715973737368896494045176007094595376915923271680311404532059449308580884725393022513887809171972769818613711175254192934997160902181791435161386936469464361814243407603505260202159798386932266937105634739553619320824483649444425920639742213120889479376161885941775690610151667812831929610448472544982505624247151471825301421553942640402275181970842943303105585065347755510606892612684654806072028171846471126821135480196044814034260101877053570680844666729844749923194911388880333047374600634881646862229862997403387875748331710326463828138992241414795418907753926057146795201449330099262841192552936106338519356804064778192714888237332284293638291856544897380303057650785945494290712221784024454893143250396948263578323019713022281796610840023850440499192680532750036119093388321752758934346850847002141642822836433808852370194506955029570913369103757665704385780440385534829821407530458958775003124497525242448975827700037099012449593386594457869828641165273611643538749277567332545741897102708349317641561494220386094204184788976891450680146407275127967880624630532314570131325400486220365387164828122682358617465021338031059114640720984330043588183352671810988406783736131885826419316576257333976369717091540785312021024099352155085312391905938917706178959858742178621555437983031042201695506605005178015613075470683320390027461822583536441703630654851357750957296393964866402959047973072070404475321897135209055069290980444571927419056149590129089935763375275970900228738164297511982990797139934053251066204554106008906901328154845507330601032881030593358304451551067630071929151566765065443662516253537706908728075078120402250826166289062198643084385169197828276748544769660990322022578499668516812859449070602193491561466746566767070399940257798628934577760864389231729423231681428744335457615009771440934969169328064215725168806410731969247290847101688370721693048883741075163101575881096035949626538619234622044252357729415746355674769060272611020412908345383050475041964548608340638588495676238995929133160942725640167079542219508717569813924652835481710686804777157349519358280271327288289718894585189509918304633759128623930695052880315396395183241286612055028854741280002117610360784342811079263701232220453885790118628829030843470465031969034387023034768716518839331506619687300457895932902362395507487163218931534843230953099000123158595259707312094960932592618782335231593475424340700913379510586331198261227168675881001434070029734245271480152454998556322977090388014981621737580711263426930479380131782190503641792867567250310427448287625242584612572382178677861675829027495866213693443485018616494149265974098960882679449748949133917174899225662330597400089889267588869639768333214030580204516920565368117533620822523710933104093432359829518213747392023172267830948604687782815497706267872708243813509458932217719989405309470429096996725272571618942178166149974393152155501132700812101705734595735741282940459500390210571046586131799022241081921438931945738100995233969565753278805812535368544773977119507467935456284849227919833340917128232343079860804255819050111808324388016433144725925171820436747817090918749788629401829176346628197878486776257590580764278749932120595015177565098623559694859637843449611722489740008156946090568614485708137645941204903972040424161867644946796012704123132349208601164284605046412421317543987117864345423971967777816502770527564599871612634878321191421668992210966831360121643676682060187848997624651693922638346449357313424075258864503628133064755818371709392803622998951671029092839193467409234994587998303379635983598575152817245886225289769963779096317664925071183798975384089088352859623545692284000519369491676128277145330957260039675938083646991262791565608048440415056079742147914134810380844054286130125181137345738481648367209115041464924422794501961824116060517757684069147094452809453174685669267119266347535502678412183371575988924815298647191321170790617043284390344664563273340711104029548627481868355362750352936440228694764405605290016499055604028849749182846502895625831678439004147785946432017534997151633393420841022299504465471753536367460616541255794505114537817730803264581471122082328365555998333360030154223332647799237271744591293501590466992555516574308987709993451991689889708134483303685841699448731556371098469857301485074732189418237749784359811694998760712796351671593180172439624575081441018513891468322721481070402719777119332236340104457105337543201334375135884064703253526582329870641693647705203919032164787130794467994583889527125361326239833357202644852167374232595898515864285950373638787292674188580489287323347456355378596124039852976788385684868116905978722175645683872773535221759862846869372572738373994458939993294720341805261491361438488162316604260382362868400273950971154481223447467909216073837658073001897414926058883988512331749418941662659621910898694340873744253515648218104254524521062519135248998612125808109122928679105141937886354600041390728953136195322188672856264507334250961450927623014908178767036054759276663763118794110107789925178274528475352283993465442473720953291315126708552845871983164226522286458683955404095662503807766603142322777226284238859962541562925796535367718560694639204458215829489703032841813358214723472849934788166184495933272479164412790584032798215175891790520734757216786826430557282249995523913726230520304769088537612705073259048677374609191699039124636942911755424053231362788175774495085959858549816085292862100742177981287811995628145773248558619406923187591852024007142090135187166547543934436496607468216622352135319083579480642728425942410427402355868428680917264463778215712637601241408621782933938718786622823159900651412839097816688525430696878650203740533967828663550021253404387544131765769233761496966624502569008895235522943683206177154051452583718018030403166417759233410713132836168644487705442186341414563466626854480190482843683911276314510805490940010536012516612740920937261784352280085521547943746277743114199030323531339327449712879827406281810768899911750909867723616045218234319151817001821955812123189305073734732616289909581600133070245482800884953966390216268170604364667375493173635131051825158136570093460698341069383662692353708998986583777763384996977336581186062381381503215921479448136343290872985694161671353756556811401137531555720060919514232509009040713914805905736861760898083162137457677450948808858084318404515724290296451940124878965995110191893028129876425011830509830049354647658639477659443192466664847694716091615382941698428479456183144111782033426940999118778194321806053282938541140797119922774482480618292996343089295934938234207380378134320661285418610090656355914803476338652892613272237997088205607001323529898030938938930063973637626768532638638128351614169180418984985714731559942583857660982347412191665743932459536390183090654811296975088336236569699665602123139377137446204881750929339802935066469893621482468547634307947645198399068480551486242896596665541489925410327874013624789081096742678650953018636107508058016317783652323764049937366379667573146415044179117798234598749449707771082312508222512194361957539745708095149860413320936901666716537573693091879057585966986112408105263545159384353590071611582815825652664317316811665653598767369252873310230980105870219100347111666224796076140954379657077487961101047603283802999760341477337477159315095707185762265859657710563648303277201861120949794977092683793308618401804195542544043310118881638746489125311705916277637436782614657596846210997861652121216052963927929274982471692008107374613825595317713781286467543972823973959411966793815374581109116181594346244245116345658046301502992919247342840690128944134783766394973613399846019843484321669664295541638287376582595824008493699722539790726217302560166822708104241635730439043738606552591328975647666887686729836965901361479176422598304544193078990401115604314293458527244071179963197368734504002812538918710969730925524445435040099350571574232975145558453185733045678271699848495624297011171613394926594115071381860034873456298558373137918136169433322027812229548145779348653482757896894541992154204149149974152217431277600627701684024644179606877971072455820520755617356499955263209336227292977768364247399739102227937513796097768154043448485960366425425904517860810276792041804347899967849410153144512808771607377888462673613756766137336578522546545429592254994111391961716117437823136521173986217196233527224118612626371024858057760528516588556358805130557538028045276308541485496186585955646811126259504984831880492162084999224003864711341642338700624588773514683041304031206945748618307390832361712658305270572543904915805954114843340498553100225045781393888535709373263134666555226993166444503098131071864338420529454683185826939247487791928064158787057937810640553423166104892709910009465793848959604953183092107937815398016747526818319318002950787273974331874037458328869794285810668007004103851455225469025387346288501665617743667293890034012896079156637385935677997608355970547080714503169592903741678933433705861988068758853365991856348486554220880331390967181999298898891292306590501204570322721174923749845472652364905263185881961609195299448521493468569906037059527334733705824208118106145851394023785849997189848832022264836617506462754202076019792384203182915029588312250868042234164300834874489762093578697758335548891331860923369926797388182929535665152834121782659519325729247472396224550193506065680950231509294368434679616324426948053708883118049324383209458632869589608646084349806663157679173182826828690171102132163100715301357332052405233180106741491921348334891491578191618552208965201502746026218147637470356372902393216843240366412481347718049439571127394832213943616220111019873275879610989980797827652566353605126906416549423214743458747409222638433672603005255549864232973922055626435303944480236761797679104536759887385960008824303557936268911823641165793748730424486050453202490808644956339754400089534474412895482831856720729641475538817090129943843035932602211215898749524866939380619364758721659468204426782431952651344881179566151570090221505919450541291145152457945895757256791909226493845778718519525996426537636687938380326835108935878286618273310089275210663493281970765864888885951190068557193071350350261272957860836504212219451721703571457665531765732052112867235804609880623912190688407398858919522198103712326154241542730289463859978646185733030496809004252990404477110095967831699899694280245232896094793622479220349233410453984032312200799178429149390639311000350257920610307712002134973315348101404281688558677011269171782450611071335363040324716364169395037514363936050139873940415219560623978635916382163198105072076950195655943517919324166596692821538777513731301658256217285145215924372129307722287066295804189053527091500266012413649890403369415092343315718652844604449901476100994895801495667655709557088653592912663958396979655383143089730768507618158843190205150464188589376870794040990261209650811626253184539012210029038745524557512514375132535452715427116541066361898337873363023262628928420957611144743748777066545855305847395411598447535315032143992176023963073379926599028369689364011021988440876518170046585379695526935161830154262554886314035734221795860602091009845469365425826185490872791033395057921925350696266308826558684670301256899450830689113305471469829107366257740383139952641310610581778102360888445450317825115882190297018048327616683244409045723253690858869583920527431944764682701386105481893381495344448175574001774243009076681256441770889799858773857385052117706629290365019652318960090907392158402946960889966775490554255952768967227898602668651187789947754918616556345610255622668286670619530868567482044204282109143643743188700114516954285534891998626636046676946723012312491892248811003044715576713084920854935801819917734819143882779588971311105995223928789872348990678202658579231496619336934937013657696094934037284677970279812493445767276477786905715579273181438357569577369968965987731836430545660216648559972961868046320731334192434999765404755819973542826312235493957255675970557526510640905987057354022832513375460000739948058514691429639208548795836235548792321951439438556732155754393785362165424388831378390101928013633560934834724779392358497484031675006888075135341857505104833422151571750123464141441588166873585452486675656497060373214536806083920078295049004971014120268167903777771503256451019304057631189050075524824201536393167427736229333707358744452569505612847367222717160732844567516189680435259082065604132306235010850722125048687453241974993545536771474235607340644668292425120356437649858758784008924227398447073399271950469080469907009313388481356767390916571869672050317825645406002711261730382357691119680730768498553030178355122257545564281028610027818959742866619518869031680519695815045765922806810621985484573430037782730986816778984398385297654734975085227690871308109467683231300903212864509409501971958553546710838676114683872661809464327724383029228446141599505952121921072897148604953949502506786102988030964021210659826533575815284328880346611376116291462354304293694718147791301291080637204663271877085658796355921988424258906998435710397871299417779175791387179272021980325625763356234474689141566642004457284731106368490217183876068382060038215827749714033161434058162020155982625728371552921531731982679944375923796549234094883387676412316806022508152159819397719406841943633389508553649355020430630248010370942666670988782198492276844643655229587746685898864580749550967151991251074252297685871167601426929529580840486986708706122847190646570826204571745803901522849406469330430157434653817156478538125295089974085778503998312367243396673764659751119312529153152382936568928876785320675385080195568310033935438022629127292859297173281325187457369230381042385429143255296995345551200659731586166014923427161487063203248729863176299170739474272223093160560476097104443304350096404488572068071726207311200183687586991781943925709426889108013409147391935025248704267834089393739419666220590841843186127964844332235406487177178495935893678965179595723086271228660036243422863917151199821458569109417748709633615246651693113757046593609175217398853969665758537915552154551096032892330070611140979652774493743412397849858430615857796566164401071877297922924433352046225479951138711588235853724915427387259649419964526432934138499824249998282627459442038400029810792420467756655832664950186986068021162055686345326745962251154650839518400694989339856926487488809073065963058065004043512382416729416300717727453491207074168966587218364977425658358810314265180849518109883232946055528549638994393069172382731565137401871022209955901359007314798566479261730306464070725656875066071607458408233387345929832795271029025480845479733010174375979744542578442406572152083372937839953716594728235560977306691953982524520374892865675280992812531255856969691522699761181014693719308352459457907875069462756251765500984232184385283992224272638348524675992492061188304257211579810909063188429570107530722771681831657217700725115280344810703347445746982959186005944618372675991883663937372775986669006619533323516257245360862312473794100087516839945493994222053728564101121277334201906605859757356217129270042291108218113179027648421016061524729200800280307713490034597342983209482003995014773902272621917641779011449877859883491414522878266228574085149094228306944671805341604242933501972197224023709864409238661759463818160157708858117801450220484515790667841281120160697183820079787016444732747428916041094608825617201530295963632251765779606035763351475106291504845044080795064529266178969793259025476103965004603378046587134232462254703560796558265896078585333779026130920395270747432938189379486415558129675474809577380150518998590965553891853444849373385338934978081219893260576296852615567462678729511575976808699901954913859348099106576191098079547742932069363951561000285305308370714463025017163339624115999951013252919144634052308794525295981889479580178210543599684222185758748460661965742108347587610525579799651690748444073305890729751925120432061992374959346205962601126509430520109674473071947249811825582896203458456403308510296234019063837779788311256691939696307410256948982165244610252777432308739443065499158705129636211484890557308651254384556007312713486587916683994974502947388468833299981596170873788232431041872293588766748286183277851444215113151006108042537290421901322722917369329056554490189139836760306250517992494332960306598999288248974926685278838394125586519357330102595133312623150944823331091351514558245602491841744690785853907329767407421046490662716156363181715371495002064148818574993598174979985513139405930341900493655528775489217406949125355828985837707100477477092073147846282492949191111219056109018369023268723816507814223126058905287053584786724971864043517396069179343084224924920932351675714904057774514733717851221680479201203056573593006935373584273668821146967674181785021439541277592580913732296649313523454996960975033842159714622386263393792678073062516519012822465368109789489283112563236146189609888329194897007006944808484303756179569592087899476521797372607289901042435586149031297760679849509406328686296208511409326400673266361684368614229446847660346703147806417963355048460492821043437738267574234391274470477456725017950270437665729078013354866975952811070399030122176356969029708047096030912318802614148467483365679831464256704283809438051225736764446123112005138436229083776212174112454135287121054699939104566110126714658345612154919775454064333005542725197419585836784810318535480501883543907888165371619529957284238678473698555701429974740019214552471759220619883139037568285830057201751073086219538353957480003577844845754809613255378365566338125453091504739466076138066197983525523275201637817476854318565370851425748630935831414855521008290958516066936291828666319137387522487645682126441479067862880405891167775674922758279921566063973629318726758912402021035146798433162160793723443157241295466609546589741037241576740687599501240535443766938179859080504088387150928240781348377041544456127735481907862356034620426303711430742440770607030832483566971975958994616071112032134564137495470307470745439794009378198683168808399703692247178634284478568349657232802682624957971280730993579498754195435015462219092683311245399994505619816577211482321579097563226421845556074547824928930223306213120027978708258528154987064994399463236722973702282965789100580742477391106067183871539074709819036376862927883832986322571935144688991154991866562895067506045257514662810495439761380611333669484010812216394372488651742070024009218454787999948503688887197208039611491425235720426318237168945101568189611621578832083923594961689699973136880755612094614503681029321189045361266047115009064124150815416056977033348127318720246402916978606112424296838265928023062208121819738542254935224307748614578436529274183086944149524923490223901354592160850888162204980447005675678954317927543427169425536924944318497281081899025396536343662279653419076967515351617822050079677354638466584053204384722419216729380500636124013752955369846558265964148466519767038017651685490767036313669041100211532117127468754669231721484423074487685349929683570665304103256894874730708108484656321126729051559506231732429155391675583551091621383902526893198538121344013162156762164377813539265800071416804079592124290400265233217301470194691251164415381190485652102999007479529015802090438084737425875179723019609208736716183775610240004379946142406609597398152082623691439528037176659598433111547034480842667469724744264832498769620619389904086209410183526999919843044429051846602949920300255794959315780225385148476301133755340597024218288759408093881415596205025692632401791808054345719964450655051166149201970325769070256562096113682535118986527065015860299990874844674231533337707822536808207356682944954164269469648624728143218560639118884636436346944556263144411432279751945833008752986182182295898088330413113388385110516484710976488544301730221583623251301101862367328703188852731725795987041093832516372718900005623821033762112934115688611378038494966515268238550051251390370405334609864782289116520644420450764367066190870981737839293175839168600326296041896458313751987348792340666761550100085319168679784665619259779045937016370557867625942184436258547688106321384761764742846492585846836085716646490776217941969478764489910469113578936884939748514876925257155894202636573331809821009914660145388183825888061620331084061421419716535610573454711008392329979277258557785141416261954176423290204103356977349585739751944582012599919727126942317598509686918744594454975106806452030880386721786378531900005041035902661827954143890147827826439360328862211419452091770996265141938980660938953378656623451046230206364791333991787297654909501741473248426025046475284469565926985611520570974791490075394651877992979467040768997838890271604685400885180923157471177694009059104178937120650853286806760267314210836109379906485604139845968869632553836490651431714302629453891374898354673434011733235986741495947455203607339953879803855362359677563598638956271092121988395506182044191556880406207860114243849288880816079781142749350033712190728473449579125882115738742177814948900347204079559040920769496591557780855828344908219526753233529226914386601062636698837225696624350589396141351807519585647770058060796217350766148319956871255678813567611425934572566610641456457610495321404111289424782783272981456372652390862742322125812172648657819955706579251429610005589082356856595646201509163790908035934649950332621658772346348087710427674787904051912673956560730177257024578363224421650141761214637081737917855247608296051906513879362920290876954350064471659895250780330388975537770280071317971399552764694104046943736843407795652505443414081737724095939774863791324750216801012376582556157705866566055049602426709704541125498184362333919864388234224392274447110271524242555359385087709149263416724909893493885989181297016250416896272677300024454662391621040571785668928916152448599289211469831390868808030174401380147232094115699520314612644421064055905101314508557396427539258575560501614736295804194868209444275011688537132120583615084843728241028733250799936420655848830729629061918457422631960316787272988413497133153516112453087418570018653885686065674643744379712167582202419822886968660597016794322492320026823428883007490466192963967893723544673329317140559312073825884937910400313262981680837673211148874477100410518826801553815225769438498217145988527221838269502950106516186533126486511359598992003988601468742635239746255322866162636648422647853274536778196639021263045076461936330008520594940148612305256639731723371155219771682710080138365325678452666774695465157485147073954825839344638112172509469542128340786232066007083392333651368598189588091011708372481824948153333837350180474021299421660661297246742222102744356064582417440431128074805918636674902851629786832133064389335921137694903049893821716025581244582135914645158444696903654180408047084080019465515916056598748579528114975540093650221200212658696784362661758953234206610031293406027035432239947748821003319691398066538022116151105930886795741670540039532705049949549083526092039236293209867929949142543534828026794982595959046752992134049269988310021728859941990674214892571874987816580965913954849077374484103313040232697255050323677415042634177764472497325863420654497218636795982597633671045828508375557012009908253821632771018633918204827902407636705568899428414209191767044544380612337405977605283548384236150880769874010105820129991003088713406706756371742826523637901038492206857858962012338174095456916755652017359900254340242993316262514249517809292927737750390576663461836398837293575436103173645978627930509265769043283431204079025971505738549411925082463434168505652053089627164616904243614268932919415095918070969499417985369203008095132375283013771209934606854191054911210545234923849386499295555519701564635965507104022215065690791996426335852292309890461404241685405101211794443149172799546693874124423054824929520695991704162012064250490249171899360888001219263725329120809121560664865685715841146251055284371783523173761157463244254356820609115904466950225540502041611956922107691751942610088498573969982619640748433048187271258304489253771778216116316321350906308355915380501404877349784470539124299968709778826253281945897444319170620720006825083999344714388961625583335088250554226753820764349593278849481660371827195622304249725772325850566071658367543623148410869871979899749783622805476535792629905266878403683604263156708555373431105183864423109941256227176765670364620802715113690073513007481904436135796186454020050017393574324200064733288325928286252753556992163996131117901604555855535194740543079139964629013690571006740797808690474361956053553205729309975588713975215348148802677865731825860124274714628133449687541588935334813439893547660397093599631048318595616418563658688174332336071444044329349902287113419829586211034027304076409569169196456271576067027169060797768122639665284817147878622595366408227787713445219695714456715915597567464981496240252047478682062052321802954781020454597907363398342358988291947541343218870723722752526932445427500909654550513200971607616439854139566022626047705249197199125172130881830609372586424043090436633560652391070202068326545539999037240689883453366746836650087396411808722379951967293203918587090328770346046196853573141402626815541939152745507618479886002723129556698044406851678435226214384838703650305014351382899991756847574812509120551041154724908816040833656670439758859644886163304879546225878808443802924340548120743051412286750125207646974558304227277280621966449934852937462778893352137700343827866402756792022383248283535938120389595922658283875687065236914572566578572262883943910596394967921824521891770509835445161616496891583247253836883841010191019942521994278156192347175274772293144390072965310506966721018887618352449117518353443607898146335143888466150399272257823009601340214622594161870631783234242035238744406267786569078322897626180240813110273320080652179530166409322871879038360697713880633793032840882893246338550276463004516307457037182527404029348544199748217076488088730634291519000135722337880910615532180305102018903469973033267078097614114072723778674239099702762161499215265639618466460953718761018633142665121827540155885854951844139850386277603172369506542003151474987279516233175121185856552679222298344316000773086488385227559494432305262706153796742544120206847091408696493804448841716707828002304753820169263567960116303085443593421585141860702483879391189504915817100115823677515868913085700529923335214934821658371991653273073986309998388456374255101777936027813280145553713716752730232658344811923792526243185930630998260840793950214601677205969286486858409676764438947284986636334108015256677572745989800746891023868056615380978133033155898517407038119954787847122806142561890825039748963417302876237357439422011217681165474176843303429676700809655113317364032407965610166988284574179717293424240351106559557418737170819329498206014436282910309043259174545067200165499423606287969975873486915459494684377384132796150511256658657543305329632776635155865715321010031435890271329358303282341333327367305414229359536065591243912690691259189441971309111653462048778863708447169293738442361428411836299538442634809830045423228819168006510970291449948827079838564094077517100218385250251490833347337430656301420390153175679576144912206551141369451589693770876688720629419049706249820570380885055520851744918700226720788311127304884191863955124573279828980071398076821506086445409394274588468768899509098998298275418985399691395230513262430972400268806086957339494798710216676376159672905829833138447486929908036279837606725574248468910972995739507606241589037856879132072319009771576943142900519985784112499943316442728183764128539233668317028639500660484384693027434666184504373252976981514490595514479698609319795672164896625075537719703764727073837495528806034833685100490840248247062447099981775372285180867893684406155843034133944297168886179084709962805919138371550231412911465352239464541670178369480234780840458114267112379433758765198602713753989381033980834383013736207610339205209149265574233844470130745593981224231088470540840414126405404974378778416717848867806569049079019017507472536189261524819459905657634821420626345497948839657238246038643631641887238881280294552135009315423547667196430941252921828232831462997534844084888859231745402455475006070358636462087757874109554427893899059468206099945841448305566883380751349734036855213308995611483434369184973321736396677937831502700477659722915103295500836280472912420113497744595048600757500225144276117871491021221657750773704886326100079264075758168286856469854584783088182916194951877908424960957106425436345623819420036753781858772316782262456578915485004473322604156530572415399674762290234005229643370812242826863632615308845385356373179023014576816716007705573038339315231245515964823787283301385473087882885969183675795583849201645955166643385197695433369416855396229028287939320875928837490965077099347550061498202919416688835347412801173126973433309766059920918903544895527543690024858843416231079997103035047223616456789629817706838079141681743278505462282511316911235355743091231525278926786627267755037172282325739779102693643910017473603655201157263281177649839577891534711329714096434799774428263080565245554788904280398658686841237681403505777833954994331912048121575781552689983759252464648873842601741385920570084569057427516762954941536472263033052062525829757533151405854669175677701990350069852761788272152948455306118598295545736460804687688872686835303810070993889906449765738719143280468221510899041179371794662816458458086712047136740554995327674406089612177739405035880692556684253675812665490834970878809879641807431825986090952405970021915808876358761323819046455306102747788925868380303610639059741871977782438825645169952649449535907356868839050891366012775905528008247555597565432767160487103862503859508508799039861493874948645044602722017128374841149912299067006850812514660266749696922304716484157885580993108826656032685590756212751179053560093729465981512990418411304956318291752730221106560824519148717562160420573964749826027849823514341961344181129664048460654165748148984501017079658451712301537235619021113255338057412886104850979420309770035200619459093194493358746671821899531822450954981575135781015905914050140668564118532098887524414147523913435966906300460825904967000688311254238054782533634666514756858509310007462061361031492777260856083519246918234074274059606952871173659347429517029554468396779419767185089830507358243766286504142303602909837113154502664094368157097152740347591579705767586035189024300388761897822422278780966394921590107996269723715510031718250358853144823657495461338380456062670306143449285637282402109961518774153165236526235381557994568645417010933698134923939167556962360322101042340716171732179216696682984689864275840731912116394596311829979265678534332192498708167817202977613340570812260679932550398332574028705168426069138769902737975301595999601146460201885548417849315499779406790603156542849115932280994134945139562710576959112453940716176520506348739295098169539180552963900101360680111952122523461066681103784638947807993145167043303598062816050327927137712661517265462100089218197087956416909016455440718383651101015836940890196715523796811193260546604286725926632983933089658388193698606416187041723554224666069471719652380562332878880065447715851998981596490346290962114795973462802974831730384922015370735870227887812566180460594264422862900054113947635749364278561907016747102104619971853546124911285664853674242692126733787494004229962535383670481826233826874500042022073041938694972266569933229348547830669677754771881863451356658049362433393307247762079551637292927306053290171429609545743039432127303615595010400337816109836246650689239303535900162609273393393475805805061589579183255826016195059104648484456987623640330447774279981140969338780056617691223141352010290942294953974995143585679231085422128264195159184121668169928704446827089521254914859774947407003572057311913133601694910428101103167603635699107056578273451933152581820599773336967452823447510924996079496075264500401505876220988686315736640183351897773485035850716134881466458134607324705838810420072803621871415353127774735895085563793905220587017827182581318855648507343981228914123357823246972841911228995410756699920158876720117144070176680488433499131495289786995591595237958100015946201001715774888524005295286158467138826571320405161244816266229199714361349053485014770686296804843475964456621180571025370300130972458403123774563757079266328158102698464317811343289201751132935892744862007225719768194901833960309600508486080927600684372714867108845619003939595874512131374659927503984038928396125308322440676927287930193616441940621685456237783771068358677351173263434845381716144451924358937730848249437920276923681118089572867121628682384176097889271855711570412828898403556249421754992398143206283096453376063474391085923801938600219556101917524343819506736698193638818615278421766242803376291195650544360071349327326005883652893712872080498258962823763738720285975712556952986298636409869313780246204919503362910051739059253666027346943839114850097567182073291662528601250197913123792147403432490634885658783946009084055173403550832526583496472737517128823944365870003122635647651229093477216188774927229519816348369320797806015112240477739540692371337138053876795102532398998629549673899173893297235042308993259075620119741886367070433942757697203069614867599931808115071038057803859240408923051629716063870358681140604678078199305754665662226440874985892463821561214663513940027012643601352858139434329235540631480659533482818820165970237849090849087408272412961900063289544181906787695113089133327276109435722697433354135352929784012864298254822217324607469476240134825548861856925875841811435343939653413163104998936327312636444110078064850953494626298289040981223034303937556233369031270803630927854523975834909047189697564810370283306337870555504007281761476346251429301344591381327527839759617308158470621669620182968641323203155068635557139820803065910647013502423323635707741392739989910804690403165226577843499616997365796568031660728707515053738763396255928301278003227143565371684854823542202191474914154181356202142278024444778745000923089515914921142070537156344936951795733677060712196871438057485214895867676218886028891304557903364204544550737166593223087939023562691310038030571775965639832538411953401559673963277881837875946347418708148666296764020946345272110228764463231506763918404436866298318424802455796930206585909841128214698977388945279472397271508996753695078205850582189511519347731020893076668753038673185842836780464477148466479044181100515588891652749908778911851045074670289030557406012971500166548836344482896946443265884982740216536400319317475363947015433721700067257591346954041992296128552345051103413524570507943829542357905140638451106653852531242972616666663660621880656420252415338704178461894293165300199730333536888886591802231033784998857732524786006300597526104855445042735400139886631115416897811890887552379874423935198725793609664480866920142698423584878054139484348791559034676771245738109888320905569305447917427815815031821564949446734511691076260682029045448818347351910254070086011168794882604648037518247111580999635041784409605063385264188001846643502222137105989663588848252002874437131115511646702231553766058794985636846236969398716443567103372834817632919571255141565439790391013772323011659272144274937158049110971204308942170520660829080302161542552386306800023782546467658974875825117399933596281951121339861781989082150444958070926191084474708449090816547025988824624009634466241307301126862256775283000670295334733739677930410648602480851517679557360265469634775011404177405813137708729808226951767272408785965872353490378801032600246180245953295024820657289562594451244023115661330281587902553636038453928221286368024672582162136828988357098414465932422730770053815362640886233514406616784074825322322637777177415332789848803121947494300839048567985170422688116319499941201635047586602122669736237309878271373795918364477758699455697900281740374750198743537124636018565193879188662330082850666549574363655040677583985553912176360610528477444155149462877752866080127230896273220979455572088998280443037457508528371038142100915796441463385238244869955638660168228364262504028350190998608073550462208768691444559768540771031371288078981265332171280940418345459177954955850258924972343518264678261928099425786867375205741731119153052117778596811786483407043667940909086190996488760347317583049288366659530323716977197464038164356536805257668236213433934490404708039682140496887773194986997285535618575491906063303246760715084617141061603148809291886474039730445823907190588177728672688026026099164447011301236896075118462862132650117813593098319254726827114825259407735261071901359759759586413056567486881377345869671359545956817520101063333036141759492392658315385010643555671653233837875622987843105769703874369936795409217006306057816941655679520030178782635588176867299049502003216887503550085780032761527748322091909494917731239954269209442381353411095757920064964538211140339953742942518831379169744584576220233485583791747810558200336537985741173965665245192640361416060839003191258236040581799895007511856908704498281490139314215128947046880529462752133269071148580623160643694892630690737910043456042530854056624619494626882039060660882030010272896943269263901318696543107062190781387811556821539753690713682779767161694140190779703259856497668247136368059346174696676714421174080379046500784073580366768658642522499276459759795570874152028835278400754710086213279478121458590816133898067653384152032329937514066068972386157556864457734216464919694552171716367539202700653127326210527258619292529840203066560449021689686573219069294283784772756222516172814706103106255094309061788102056166504061799815413020956532212954201134867373830335059905999703992056998892545460708747730342753966730452987938757125488490100353187404359798124368806080762450944951000137858053197492701984961257520092926794209173079346888083619181445681531613426764896092032305410101947170729441976363974928002374359190284189543054420855845604814926683362713170229425082895110904075272794360283641270754839338701777444616141752144174851773367624273811739500277731883373263106173432440257148488607420943224059168069592934661491265574455244710509251127069086225606357770616611153105750559179188263463062719932316596898398945458349443584272134791564662991146660581661971202199597931105368098927152878095641128021930670285915499270213478461313796829201689014886750003151666530612599281011918537419009868297409039999175408799953899413548609593764234928067428212140306330989606764231825063362773342379294202129826938433552960428161542665938516122214089415382105477295522281329458966191324758750571321808757461195367331907381407464366434017299030888649607778696310470060830005753807073875494641822585430234510528154241201001741389703825014390127459320828164836245607710620861188954731215668323022444342966028665901984423865877482284188433496664383957783642120877266709320773281957823442386527665304880614289425939936529371581426550432575137137863498509981694765317753253936747667887533028728950225126000031708015091094911894632243555986329260187484594707168855036395409866948067020494527401878158298195925288464612292569206312173632558391224696380813263172605125034997690372437367239850852480001261856518201618264008101444925183620868424623386363266631368523435085150803754539711200814806053298206357532090873273233781125486575811966664377389841660656219203597800953975724748094298348097180587213866255079523325681930690266430888974237740752913768287541529850517170168698469399519259621573501459000092624067477907404188068782413535958517701609113150362109672612441528858432941422337407762276693655722126353143033728847918676274561336313370982823949117172938602167512967315422960561752112761324794646189544806092793581328245177766086563097528241119287942405978612345213479641983952442895169970822918640801288179355223157375780038205029417082567041118642762829932154744080366369571296227005395959455049445506712732042050797998043858265190685931167907652513734321506028581450918195969518971037136814826925665494934980687062690286727008812729694841059506846427795535851991970323704840311307236366333453659573941058305816214229721612098878031330720180608247400988674107145639698681693993322231179088524987433498559907980611636012328644072019371350137134570559461752852694939733113887026752324587604193515756033369849536738163583532580244041232892068665139829108611958785733323934607336153741209967378342630541808739760448228162670282214355488242280374656525192133697656081988364712992404974475014329995861713798135219669993472370969956732914770295708184664838128249408397168655146073818608148179281977151474182291658221927743790384045082107015616770576766461030036376493432816427812152025059481549416821162685669522062115425404553509307734511412094586721266538144676059204016677763523294512441585277722396003041121367220011323773889017141435508669636031073475493585305657753982547765970313589933555049763535235576081793890949167423477928018575967321768541788919488006275162874114382027944037278120125911377934155988461426944935717129643437353128962444831510345616457537462680745807425575939422040794514072111443023141839800941434050926533561334369577978155974111386405710594150913360939690270704259421670187064589927563830355003086641413507118298086253626668482111799593485727134367552807647921358593548319083460898753226825869378670410868533332412329979134580625126518785953485467710129991520081793797521583434543565719279529461716436399300404430790388115506081180499629832045257200736213113080057392890363482018602720288465347415730569446938410507328319882922138145548110711687108667575059492806603055178862807444884009111256564113826932615432389822027762094583205556939012469533913091876055249360164111547218532794863726177899575861920615672978482032534859421056209310131335945260434495851305646838678783929394990840121293407255765994700360557534386343321111217984073512547186983032034731360486828267179978450911968986646073527216187152554177429993980647630161283174264654574882291217632239230876043604675510190444352765059297006098478968073736143879688107158599785455540034860611547430938294078856809982294220197128833069814500203716622190980161840006142239593203774801690896482200941112381560853825547443380071206849730753614887987461982560367599659241675831929732594234128126951766248772357302225403094026424473747425527803404426388254211453335763167732267641517298033700543125865177058954717333114908805788143549331809523009276122961416150608613943310184806652405865804367344791796846524133128722181924451712801509538898387412213525168962767517291119274633092515215553763195441823591435606936190763422368953516597229287878432716867658030242376802691941230190696387290653642781679499332842761335934530689784077851233176840632278981207454613267733607283614740139929752391988675686592722271553176258492927447844199368219084428576948646432645690245670178562055260296789777798513713872905257275342660015831307136910074123523597605454390985345907502848460259988110114628377309663420373147549427464212714953354568654294305010104723220475592713867366694154465391045211570150221583322908492937403831407036965478062854222458340922378161307167142571356905986464371114273312154500426796104899671067327725802995477146574900741299846694899440570737438644576845697398533973805482362383836500756412484851455493939761122107831797561453266651414732818487124104146447378118084208219040441338906342578999142758811652354713535772882333719742820703970033008448124790215634731724470782308151894792092107045262330647708931776805880920706273784776853311396203529226089370022154885460164170933514579245850196881303409355106287307770559290965186479605215754254459864022043014775197898200168140018290565413129326188882724563463266513081652419963188499826296042377964472959217648836209637689630200088223112922757174100271290762225945178757539877297096605285457175965564991249789689249657542209648436494786774331485378309799979010783855036699855176776178629280660365590491321375593815810637549501999636701192792638565959887665861732965340108345298476034544072693322082386396286420175490850391908394265090244605929592946709041873444729253242947721988230239889439106089681058101933320819152885414565080162482319839807024453678673157451427505209217714012276338626290165339499917168925399722215702864863265547838270172155080271705688913570753446999069174723630649681928477871112096428337281189840103503988863616666431522119555298643296213699587233408585448922419500013474682264790526922270405449451026359619341458273482363640745522623952720903132217358312077421653792991274196460711179920934988835316816762631408813744051261742759875409060719785487053449944205186218930576226825895422692956232170285778260186934266653662590549029183327599054298691975648960417988543909287659138900107580357055730714406310315470742547368516586362839163979110637267565961410330739896138673565733269395021447507755685091818984937160894138433359752558906995831158622042491438755168243369799571341312133338970331410288128755420121798059883589990194715087362371519120521219557543841649219661679735150260105809346400731180996333166293417242400543959977369832532667163899797487578596821037740916691841618502864671163417132377110466764403769414804575190494330639738081372227714904986209031615378030854271099601790518155190387561876860024336105468512039486238076670758945283974293611855811012732955124734526687569824860417138319557219342548678279103165622242040519523045938638127351790054178516456717553306714347953786055428122110359989694707340111698942676197121977655244290096544842672172839714871712928401540526981889033022245486689030572120264257814168701991812492167924321670450748852326062263320046832396692610776717017695002708713727820701687506280800438978898004142780982683596702486945231082456039441678930720058572878683904680909479249833535475060829785565934819744291264977617675708524915451040531606770009610131898706429509634094961087969762666462941591368251519933795464366233940353138546503423017524505898504730825161068463409360599368673591561799249210172051307262920982223474411530944052914466122427455575060842186623479590936648873507481551729049661387465368655518963586451292172377797274082231959604780471295069471227660412203668293499976839086518627948273351013332331288897876696106868553896023416693591469181721514262679802831919998477464008717827121278852947579354982514213534670283227093598511121898503740761318365172145217810082743592976588615691123713123710453988496509408711982292947031634214774743291995274043297471444720611284761309292054725755447841026650613835137582401308960162116720224410964022774489771255526684495257362009763210456778399703888360916069175663560400978938750991449599636413450375377417677616854423143137380123451368668890603869072608027701439321945098432877050552517132256666507110707371307246516872359576515438770966954398056787786072149968803965537366510935328716471067498885786755574054238578654762374632506286634571249651708458815760084722001432829123059601718021320973881269730010333305761721476739010174737768435934088510815401856453223253998268425342980384916749848290301022564821366579288303260909668531766475836898628982169977696187112901578826429875876798684590106409303213646295133735791813849695671264612937863822557301764416780225708807239983976366087205520965634074038674672514556322319842391486146638194378327260610160326793639978530495812431289416843946178718391735147745569780791309348968168440204879786358368040930204939092555710108541184173229215637937180064735029651427757836253956447334894978030468540946166803728864131723569913107811721392391264074682593652197636393798885076331394899701269521094718044555481644658301158189393468210626723517244882093668756804528617971970774058947457683313453886983499522891091808281679303157499251483424166980743061891772504420958014726072806138943617490511892687614289273003953034653728344990307082707679905576090494588516637384570461256885291793190179193422726586519137403012704027291676323499561728632931728125885142576647413388745557038557041040262357756491845875699861984490145791116174421358845222042432603629563299726698476638334774612780617052247133408303724448105406891018467724394986660588018961743682256492393814874855614616312404829123767131122068526749007252050201049968076870031454123928027304230985257485337623621255121520657723443558346082555879411781691600170613071896958974549236238999031237317136662677599418867498720181467982990800238970945361898453400174359465450077176346443288980070851702661863454682809922162503654703112412319669977022776325781722181238733983220996470728284673818129331636333399128099756535726457368894033101761598724436591629653931348577334875124219321834874558909474812990024864596414215614734723764584899773471114824578448896003111032266586779596925721840586962690203113847411025702052868277123012012011995565617147621587081008169065310945478787215630692038732972213819190133342358732374550868668115751986615921253563033394752408100494083675408158075008493364945138904034707672861927153797083052507402904750253367823542579132567195124224411578083563169410947188589782641619010206337578280738907035158063725861068735665213761073103636073743328576694668087986494057049431170403799313156899150826389458099488848759268839605266604572089142837339052582840315461686886484506108600190380502889579548569270937476366822440114654357425597218498888697417881929686850845373634656875674926311701142219446322059885136820683689680951829888974297272327774828565846233597257312960704108792915155147872276569971187183334329315054054100428390564250691602934613562761967172477932352241861522137166631430645144422232310539794932863814876368511464083650416463538095463415365968390191786190347777019003071799509331173606942723531776297744581483713234042145771609103729007562204829488611041988046203319173360281952420906255530371617020632498211285719448548691316669896756275989052903806077507983377102147216197744342129055447221992114816386722103352839936500936220612790890666596970594484060619239702545325918558043142707749080557896785243296842952091804483130128526199787969799310941218009446973413446834777947496377386040121493695041123930398009516099815548461768984017592906709242263468885764016528925462633034662887386171085108842961563444698480945270321604942157028349540799273673115429997629936878139468273373823239071143505312457795437895160147819107489392004311938248658179967058045835672395310740308299291379898168334321720938368671122902540179520211913246320528112796855606513224993140593039484764373985490743168277365696119162361994753679794057539949058702180195535956719367515886861611826782072979764848163505864767159815268051623265520559233361169757048960712296316435968135710545181458732444448423996493999642709417471214764471437054779060809387429465274893184220845466220882365338548036891122401169110540629482916601062893373947993452803161003819521112457427398172382623550621866682502834361966965791879008292746473539932717623954233273928796856886581803778942743648827960703540627761314874274751982558306030113945929037580926631734489719982987190257901046834919097713596009078628960449831479788386006718621215304340784857818873826099096238602921405819002127198391124931843284447233820673420946167794509804944145323774290218277431912664987146055072129978634605593091182772534860960800497509479620371348084978950260865407299897743126316075020079378305735287121216072460848943756882363398857131542618583863621001005985623355978430543692540663712978417044680805069876063683619559136973537728573528780205572068529423507958767656394596743373570378868070037932498125680882615081598665091275335282308404767854361581709478801183383278314376009943775679388257477614352848245739405888943858370050706855023224741646093065091817998612673892053276634101734888198549399802983915728488203316100650444021243986557970006235744758152195352078781206149706718831292114804372615173865716204080920954678214415858453919457820070699812133079789797339485741564644500106664570929033262181974245533501981722199964291618786521691141871534028500356686570096352260361584888288722969646574277308240838903387131357704610669011741031663130441647326212054174425253759057522502190700668801917852592532630542558574900657497988411354922273229872742561431281006539460561259364289275239310820571205417160792350994019633796414430254696282721345197829363613856352365988431846772732771198130459695907664550864984547921905277348397912474232846283831376736183049780077318565090751452373576440814066905649584665281601952551694142993662574151145014462205569114245555989443785652326540310863284457616185560916459105499554947670312686279554885918827436399805701835333105413993920874016591540021878460964502162478060003488676056776830861474112986669419001549895995966822299964337000178202132115570900892338092320197678137710718066186025865778844362514771805270651610649462237514580428337840490563352489205781555130872695562492402968977752527178278778040712061617577882177264834662837435043368297702206238346167914026542100535412318605029096926610392432641465895730512234206813954479107771071453364446514002414382902927720944589753654027043404069518607439395881561072821060589523811406399186009735504531069475660973833180032048609592210488112907993318762875196100445382151956346353180161408698025836451056483778760475381087229697612841160959507738293530924848961791788781368880585102310357221412169185910438230278627428328354077525349917694096145257861616877802560685581361771601625188520503020928362197501976334675658547413680768297082285428764386871361869771924050688595517811708488402325493840034470625298112972540140105555333321012834980609116214147721834053497092672844124105917965904969436009383365165672712964500629991446294224723172814275190063944082685756850470705158345613513664496291733963872788537280019142973211148282987213123422166063052261690724217661528492446455494113166182767579344426379311590472553183854624539089888444204048600639754041877969185667289154615617770450890077038017061311652391648340045903186361392337180287909950395145068730747408459475421224376650740254704936816974415174450723475690164998507092713604931954118807585167675505345935840404753334356537237471572845421497254192283624717370922139337815687050862949474638294178773449126368047166103458360315854444912826681221422576890012260944322588091259028092344094549919342195620517405068135986800624963024681523040331276553023050770307350201239057866101325015461801956838476674744395338628098353446539961897633614941612788213290589535642144091323738206517267170197403177512415229258999283581655814222932652854464089688477350499303635260819502363232012079663673932599076124455762368015184375728799015936064215726387443018788936601400003064005063054778811917212727342196379708356758026417160144218034828185647975644533718174320424810525935565679318710406483185638868836722408922253934526402111875326029715842802352425455489732378784200045715417100529557892945197436047373786187427871146353581852957273523728568252716990358934690304866093390484736297884813329785411179237113157115143279009209766312936792428017671974764360838091990004776864866309948754679459440478012019692131909297378619379521881933929077963240177599440352159844103974610937513108629663361791251673780861399806332708252539649842205126409311444379660254227959132413156589209325331197776229397881756552640651888553342554639735474478915221570535141377748855220998261557060383970302237605179335583766524327456745402609829814220982384423594723630501787082406842852333487762575872757207034182311054379068647895983156052544211989739187868660071259413597814350545063812498733562893347032905116071004754035254254428604544094302218028298269956263547201406657851572810376616541810312827932966587915382085178588547050329723717746582740551336510333349761743817803828978092135228560829679424689737185337570699678139362017076051840807883244350357349180448228622609803726878038014003716078499459050368452586214831045072087825736770702330440977062697052223719424826205442629729920450391748058194423562874831009189928579193960806615787737127624392227906911314040507615968146697429803737781131826657417210050160252845720199408489087651675594601159638777972821112942653558651065668476899000800882213877275051026805285059421468765350824577499563289855151969518716017358887487546198384399279542335686939454198683696879640719297311086722232915750843320816777926317460977929871683418683603641610245299096852454778007947764265805020561709139028838626113224997368691683199653152578080233776791700177299201090278668758880041851028039308357856795556919808600410989174928509677318286068892871630254450320462047066134157231285354568577508722711666196060982986907518627344322310309762992562643852316222698175383582037976649931544853033743661469648477540149430770765897855302332203305516452964352787383736495246099292627743915397509582010567395483033297869259896229849776027820909999412364901108079025425093852771547152198543046140827522984061603621797874118290873401566519313792192543004347055750184168371248547788831833834237375062927403919280186202780440297991531371895595000979655865588070494678703761685246143501929224052597126951166218371662206655652400038615057061884131733739046544873851689298886556365129600095329532218841514320789001359023348484832939245113262835201940665662293374896002847907751925328266117774627224618599321887515958493397565498961035242802230532847868315508938504534415353278812071076856233472286799523339998183030572807557358073353331487966036120777734522464352247411242359016921493189858279563832279732118999768731050375879584957270516891727270426348895561473806052464579842240176463333238396374592767026160186145478255230764798954409649204389037984339034541037136699534396404053992060180657593588603102185683341558619966588046799707529286607630703414324915371987710540086873180742005573995089388473694214669655816417042640236824191817486073395890387972376611602108149213380745489311537128841320425899628099782019366549840416926433143028126178444293880744154818473967298873178632092085819635632795058281308365289656467932905824472151698419474125751906542227099177360014536797878084772679662788777012622278838709684158244340219652108711074943157323632721552914119002675316767744557009532445646036975221944258701962411326169512387539001119422259353445593345998073429812417521840803060497985560037090915174487838101055535103100617116338996638029610785547713921685502346671952134722431007322610558888388535152957704264675330513493683798019048334399442066221877926772188387833857146247722854861893278677751205883040085703213169443193127160623873956624805435976494234833302994600422166197089401977881649286518806806085509720939661791780286401394255233065489942891966232055314715950467955618687857096641665987124881772158277998217265539441348247782663608591376499607269181268990864788846508220355877531523369205508387388708490563389677961132103218106742586268590004703481690197588019434740453894229859072419066060025600914605632427988004256810850551289235322872730284283733554324277065231955721689615338191036258516737163229670860505523772481714223033580653567671863742899078427943072612733237125082303097619745001161012305557234891236277435489030296288436856869292642247946512069032323795580523752331400441072315684353968335248357112222150607933385091037447476793895242103078173285660917334842141473448289467949482470783192760057826203377327060599432476527811916204210035432508522553850764358136201609730188679915059769030938038284639014633921948212622904025270572388487643859476686476433388952383329642059939258507289671922148015738730600029186410435843553949540831644506078978062624763917718019837016755897429601951913316293222591117146737746681271383407035578107261341010200392114674662394441270995355150810480861783393452163818690238189836908776827362532516884156593211026140131449830819433961444414924276266790620575748759245115548534290722153822509416895855473252552798589401806933600668746822640125482097521103185500287633002206039377560604359928050518432775491399565006119844294003110035743606398469256339045735189556246587191730894131710879797980444378359023385971383403292040435021872402691572525664452555070967031405639534816608457583152124069639191422549055404736166961950393794439286196039037275507077629666117074613720753200721368484775992191396536613157153302161508885695460876582244168968356959046725935478584080311211335057404599010843804162930975465067789785073196091121816523569708168204922702174029476488438740158477623742925861335015562869048952596574220813689636079437690989670032287009066806705501196459231184551335828341350802588817684833811525791751110976202066382652995887298347981426893234256815141017415852206053980923446005195296352511845035992926361055819551454956134636914706012611584634592885023134413036442940070748404928457213084233449191978823869488487984170202578834085556834275034038431016210609414555335355596216725121220823442748763948396786551584317436184998462007435346453235622361828702531292861716628220463157439392883154217552983253590863993400885158917167363239884593617452981866688198177661724914437930101738101637346260047412879589257397720501199113753630579181964163673119735817765127170351209474331229252821648879386212096562414431358362190016503467470417193224526972570460398100088595727440252694014552148100600597867026730907199040899518210900188884407536595960559114262326018839397241127396297900707031666033224765058583321130821960982990924309204822748168632937868877856309005355821614602404718560085005870481404757327655002353595804238285285076323065729257030924442552827571764348449055605294346944174689782251210882143907343830556439048754318981272600907136231020304948057224253868394667059008276836323028172536144503641998048888793007386485167145919376524163134433491095035605430779666473773999282747428721682457842612609954196002488344041580294828815057151410049643155081927522268171045614118245456842684099516633127213647192706040694122314924227474787369618739802952840190204010496571829399976000030142189785909481237409856503950709496622198834696280848388824972370124710943103908235239309025239669234786288288256209385270832801849445835403952399648078351189098932646271651822326026348832265282680758216337430578809643653492026385509177003275906344045518515417386344141680135982513689842482425481587475386060406167546566444691216528834957635247007117244565139712685431653017724946102553229362103048590558971102264591519867497247482825337207643923268443710326467982614978105715576678523275150278532022815081276131048170813952595691004968308767571275725097279994670244542645871881043708229962416603668185042713410110002983054358912593248672665134721306799861466198184231595033125574183311452228683526845247911178439602350444513195505567521176647717466993502837148461719222959560117611834692136265124415877458308598544408829802142351622782671893528416992837174050631169019766381777145684530300604699199673345294460549198008861380270650163622828597423020047352488643980454860137958719831988624648872625845576407245772011150777274432922487011363507653021362737339538062263968413560713438385326328829852508767035144973673175347635453661661312805637352771358372119626153472696506688732163704725405692408460499251106609138898587434898372262633051016881551516656602063170792107137519167795599219236335805910787702567878824814640745968137395169974569183531119114433643904771481014361207332223559485275206883778844148689451824149662976557651330217075968021724951601026146308288922555395268896828019047113285065086681566958944556530290970856022685075402195587206441129372650393113361610859669896233564502346893110942013943048242546068371501647646629407673075675665913411978647824845668197095745530730404070359438978140846832486833656526726466753249289516421887982152026447355675069922381231575258813152492173462981616616531106388667172367106863063455401324894346031768342260362638919459395731650156168559489997914638105849589779307177352550397194454096517374482773068539893581371541690863275618400339235697329080642935712147111167612999189245526564437767011554124696755708079510576363577091325759698678432740219651794687765577545185328270809518095868499834187300133991559886573013152282396358879063445929038515117149870445290906376722445934267092877099391861747457668227233230810424713496848702077367298241543367887641265403200354249449030718421367662255201865147778913270790939816200465728739374999765125288330972709357485905709394792494511866108771111129587233306352369861343973963888489088639907008340503375381189894963548074487045614083596112801607605969824966170061139864877755522001274055541426789578688942417518669398977327050854947771234943483734123969449703306614216744796644657694328232736975901908233385356179910788411739453038126286434876865268510928070107954369982417216106093029096828466912240926413771234204545304553107066555558547911765486696592532546524945687238861372040921856007956059524139192482644252087688342908156942590939950542768480362449846440001077443553215790398938203973027727435058523918613592293933743445170383969022103935837353642250364035387403252562048135018274120117900514139135937785664741047760685757112473061812993262572431469792447253305648422201373399816101601444124343852011537410526259013846356282085282874065440730348941783738697238624923734065405407701767625397866194449147186529958585799664217733189822642741648256433527941514011579760956900936731601299753394452534387270946715006807028208366388254001557456566334927304921970540024516571495713019971798729915274456448334299816870081701434642596907528527659794349853218225265656411487387943179099039552797532792790559157343960580988005783718220888674219571043310434264686815433825207290991519277007183236444606996970570993057471548507780549183641596397295883526636104000896469800876191397592714237336222731084776263008969874908499134015543228081497540813850558515641058478646074774398639795292493154961500256238783378376321919611676710115281336653036412231899162770266308244657756537243740266240274651233129909601369814757724351327277938981757714996963883703504985630470272344220031955550951273145986185219874096023042455533530468935881778994209349175337195658994261694274072529536962814713454887307646809050723715710806212218838776893434969059481272742266452869173403040487311816286429552248315986694788922338746280896070918054356514139803812338333950077607743498984405285647386270455802825559848484979993449175641530923001202285904510688881122296477488648448342451765224393055920006650304599835690585456653794513562966483385843054995397843953433096317199011983118673287090062212025800625539290846747320339657137216879148334548512869214513015008511303134699893220920636111277277380183058146443398869644550421042423168018108024057283110471850909792872377792300851145126136700806275167716770997949534586306659776077426285014274149769398819741649577213054099893247139340549965114072296044572029259120844986357325778785435640512073600511169035952646080783594250421653226782862826393670604451660516522619056645479637940893514367155161230901880793889733422272486973739896395056077632719325857666771653072237474582390178487781384781086382781193696670484303826365636527288051082101618583310163462915827857263158134559749493267589586161375972993487895349116475338631671951582827926875855279080258224636413894217347773346250922804905873638494987895163088170110767654781661602727209107755108493018121189435121780290508602425870098158880201859399744288371657350067193538539759554916268159074280582358956912168071452754298621821458114216338195640676601741047339699960825249247696239090728851356318782666193420414577337553001688174875824419263161941566473753643904097202921539290884969164832003215996016151169587005552279032262414415247706077086186683432916528560413926653522136308848767521900969973388478281709903691628780282361542674722061649610669581447691504215611598292917173374446460984312271687221008272787733672674305506967237617640112144453598537806960565679926284150780349552032994612975659474127149415779391034123167069617250894109577520785250385151574399814205621344839672676788592974352306650811532937033130733796361941305023019138843682300939067461439541021606752028867534379631524072722204749387075405500996376628411460464436384968861715266119779965955561657406890907314311604452405191194571836877998975425600386993668677891107236431888365743768624776452240614290435590005252686602806028558940052257744974638448220136171391488384774856383988162158357846180676316309779363097524566169448771015609997729848013250763805381815972058163835039063021493096700501008086435188059039937289474893711426131103953894311962949790554495626416224080863732312760726009401287190845497754899235487569197238980176909493448707092376899898398035321443257268801573960100962701031731964728524675412350572084227495595521850620365187563927498417527138730016339600307884465313309644705963238436362094601013749961146484682221823580146909556355833816509182086782186062568549998400756221433392147894758925462622050624819727660319871405693183107125812344836867422343764573191825189019728922772293306166228174605336664957415296233830267964234157774698420766055083021079091635572276230983443350158157011564014733742768948727238895555756069827832809071190699751927487291419949013796650883099187954971278366856470995982157254194569034942901039923599981882206177997117025914714098418027431207003857051195037878626721835674112889283534557531587506250828009240366466014096905887159512418221304468358545833322647073956471971088187752226726543615102576774356787324843097613285466724066585715142753030987302340408644253850333207477424962913561141426768147025866023390571990083175524234988297927874845217782019526182407505497744156123448406133957806708866073553511289707934184326717731777712924254394705976264680872552606898634837377780108387847390718098064780140110684103170643023557433451621065788393625827372186221353045488775121066752954002865814075260050825421865371360059580861131048180409695637231223967010623163196064870918177636469280366444157546186191802357368582242129443688670411995248666242049192567666193536565312886529862946983973709965219802247461664694133688646846829319231617430274979773975618203341457922481825134788268652014218035404774886679929655154791921924131721716192280219424611318072559603104585574356441216045334102202275325609495416528467878404493548887554168261556365593159914039157737232874950201035128339245463982640254320094049350018279547765582266314753945968503128920719780182595328512891979869058179316336200742203025982291004447345921032440134742499091277642084480150357123960723723289252619867707779095894864096725458755385484195224352080698221126062529005036735520845667429832201901596703983785315459722757654427363375680729652039920593770122824599684999002518770339775655372168786258567503893189935000519193392070236547356431264778182891242406875144718302895538052690820320449504591653048830943176050993631531300778084102369025223785384866734315043838851567531675728923852371389805014149443341949085430447655521692026631583583015045541898042792670172077353045821285987826460952629973684683507919919769405016627954408260443370217778732657940738055671425722837775382472352693120106003761494175149125624050824218248161034232807548881520543556699132720641496374398138615959184333214768205235467825889479676333246778081940046410301076920548653455740650061879611469959439471638319701357770963803184200341159418580810563776831330591183580906447314866140796939362799750460737007917110810668247559107821431565778968145020859024776596153442211707769971126280944929072152869850066889752355917430944575057559269946918538963400780142556452138623131141082249375370584978324361111880696516792196359510456700368411444981656452177134752766804347526113202322401790549459382909428092373056280164617075549247433932154059487578839645921398757474592935160130785161461128120622774709600547967795363221313793719415211958279559260466051826948159502574950965849706661090271801417619829349100763416711013809813921507079220732290122542216715559020050515361908342340317039629108860005669654691405449897488541146329659567082233221812050481409098521495891682057326684200515681213849522536722024531471756970242006507473383699538914350933077155039588795347856976710195440994387882072646772689574611046566317192108024022595641244310582932841144146882632703705731795442597841879415400547293544062573605012344344550865522847520774777195726324858244287818634257876116613931172170033479891202152383970667367201454133519508023317264927793957255288194117571810714618253406105532249661966596674976624705840732384286541295092424720414057288400195865040494757368544003247450812710611162497691362617929607103865626391440718505801820020051848933214233697863679197946800295679026255527549780764176677180114160667617548202038016517468850425394565118559873316368241896131431855593518047375176574756414501961800107035742822063568952392150231011541976941073550018518969354164246249443061945724656457823151755051130921374652496422132620889033734519602565635482501429592479224946621087712130194534797218125598592819942153020023897575851857872145018838072027574506118094333747948116870068096230693666743304840576489211230573287488657408078130079764456247942480568036707705374451138166085181873979926853165816547766709847044230553818920601381566977338124520862378641686461006358384768371871143827669556368802650422542347098701252117232484810577702696053570482584888183820570846363601831909519645364830355414900668640587789109477288451999752691253565405445040988134164995829540991570284469984294833304940161237956944649213817837830557550308616104350943471779792397782966779191859504133815202661567890504364514034861072734324630541245093339416206153283052235073307443465589636209746297949067116168804637314267740278047442469483307064676688934905069132054563340316461226010249512726297840356055466414467892222720512740413022430366887736184571283257759809183064341307824212393984116883871428860025391748187922898520413427256610889030773317870480794901555676781631270536185747126872440468430623330064124991063256352100173900419089718665622243741463579721874167927100280616898973607363534791829952001672258357394617497823994850254480538695164570822053683376994979305720419031518152926745008787341798899432003063437697453786944051642444274264626773468124992042885708865456204978043322621840256673965048086590966218419563829793030323799744201489261389008691184924796634199226338583242022909307349129958203209980015794808619665398945396631735606141290277208408000475238375380594694600371138466504448434266166153861872118042052533011488592604465376983137831158047605026893159743746980562532734223222147562301004703701665222385545415531952363170189151314831160769291973098162410730804033192366182196546547187918677585899821324568721967237387882773241418283199081423072884642401547346098745344271969402226317561888799317837427024306706142010622407235167136488630867630608059494108358082676264886339701315028480925974778999438555124861672782850200586731055388668865953873898683166542238820433894522430291637305399247301945825303889711764168094629557335053809059606707818275895022486967809128910345731065990447616959829511857823096806421342533015091949170505659989535170406392992742345044059552902607601349824350527741984112179450253924990885794023329983262531714264968029422386750046341812030747634253846612886706932224272320339360052404129577522502793928802413910264623628905311233883237336312076361523923783305509554487901405835958603214578433748262458959256188404172020829635679428036432655850316808948051746291789589531719511741639443546194671960087078845919841385319434281030733784297110035913575632892846473938278764365578101318191423325847547296388267138488129498109480544206990647146209199168154220488677965185596765388908827322808829625364074518190019340283862410456053298769161561352025347279613832700348204584705157054200860497152279213856018982904849273253737193427476329365530219154311500504509367844315408888367587963197082388384865027956631897726418100831105143322255462460447163501682212909993262152766434738428221399099322598506892866808222990531039516183747425444740031917664903830601608025618769977762121325186127371256081413247234294737770187310004373171589924884038075438889334540987292067080605357646094921084623593566998961013814253485998475146357954478271723565064421840434241025838461961905863765072525926236352468519979633183078283114092461663840997129649312268583040744077732927335355723668218145315824161105585929236073065288937945013858268006482725919912841546539017293070589506735655926769778802224814123105208277794723131958589450425462994908684438828400856887059965618764495870096325897785796861754530982153201751749391878229873423890182832196787411953840185980178776429398382372278682088360485716703704476026389162276565714746643456553013918171932905880645045478953778651696973518355748356591824026912403196788634483996246633369434179911951183906184853023712739164412806704747720156612994134627851805245840411121689772631644390106333355116854690868505487154793802211604102212580599806222135933172262112396114987623985527125544197927548833256701216378251860517750160494170797693821359692892980041711033252271238717843745852130157647478955273886227245759410420284074522632037652485211083199974734701097164891735065968630013532216197086932992379323506375459094043943192454212884881208905864562179373805800711061165146599870761022473225950477583959136338152036992993482729073142836150530076488684281842271148402847636408255322105467985093366727855937549146937000671793730957449433458589428506036042138282115889561597312540226427729985825618890109764208851988903899943885310716288997524304931041162504273692683560022340177198170731279269821000181228891050616636782386872546594253226626491694112591840437966747025784600995925023789264833500696197698789298447053104873049626589906607826374053938587055055416077240440974271441351504317533751542427910147494667018869840409076553534153710291199523142921233204555547238078633069129772421270675980395962200672781599026663149893529313890163595797778222510789773385681773105694914546789691664502280763940503727650354890108865447837949359103842331607829449919379665367529870772018343510328358183642316601736278541781212871594862712272359060556607351417588840545878177161727266818077807468038440851313222952872874662346649731290866338063511453970743800857969136606365707012504650293485635413607486824826752303702836247190888161289092893200733346351680236551609865745521697829903360864341762746381331148462238699262684198266340552918054331381689336555184604336742982859375736675266614433103588268516594545981650545324754261053415598523017410583296109482636548941618487619514184485893022834568681944677466292985389795091611553347132567934997798855480661228333505600773235070423514566492657787437506273627742073273702535718112426265092766193319373776350435116739580938405873471609475944298294514323847849264588992641105433389004156812268031052406896595352335505021934134476379461806717657907393988814892179576970654883903019249762501991354837687352479349467982532078884593330886836828353650327967958802392383910270367903712999127334806790245397467313172527325215123584560762835783077830527113694570460060477496808951759102308646610675884124586563131100951704290558130906581667344560008188286897463684969109409354728753562765159428635654630486988650690435246839550123472350394242281640614402223383412327801749333113000215205395400421232161473348763705038234931299236956890158593841386604042418843903144123369998576352524820864152555574925455426654962262492153048299098351728328606844817859644278093827410028472226695546172160067100051763832761700116959465084657049958200448837249718978652812523215576679024731787523548464174457982956077007332379993956680932347397245805418709199417575304075484459133758125972003973606746672569382137869973006116700489548782950417801491579169117315764239041896865316381552003772359528614967851082275530785066593257721878660167985610933816114282254406546327229977372853501552811833427339757262746242597658569727867264540287931204605334822658486069981143690886555811564235214865189368005174110802900332881128534484483747949912101301729601391153370884970611181996080864628697034872363798363963586875303818129385065740725351887863424500731093118179351203944619022916183202588170325358445581659497080030531265853271137829634635670811540409749889352503324225636497288705019926467860772814132902042789879685634363769922658059542438646616145364590301743215635665693000864002379463898087797958734545490790439632537959223735735894851654882560682109002752981228164131355247593440813507337559088893892760744647098656763216186167213051691936144092877889603429205368759879422558320678149164279097277156160133834609595165824625917397620215889848541087897666699507238151159936434299537915898278067639668808873143341953042068606100980638590646390512103176788903362629981112834318084786390304793716441825428514802217860047382882364655562470411102593784299476868212369880277480710676213745304699492767898823780260790791812644912674082299925938498007894085806259605366160267006442940299017955236848214358043006873877231376875865955589506700145456084012879289031096898865667604322646249092396842423202177629526702063117905309119065274098882115188855313107907146189857019587214074067928785381363151130952095324057750068747426560265815893502066984021363421576699853002386165387640785179292854846163636401916266192808099847928167939358495626357957926806823375484336272260557714805773664316288807442120691551453246507801532493149647433953639861215757348377595316722782674565119307112184165512055776256273358970485159949613395899443922696559966880765115827738038460583917840693829863598788132495201621438359335734319566263822866539225740201423919250514645137882983153505647361432720366295455240758598926023058862130727854597604263409345760387929896779311457922857546405876268921732836808155508992434206558110767015412900363318789071789942365629052079393252599796292672971882729883529301889932824838797766017502459110551857217489610533403220886791522574424003588089578181091149392388588297085124812550663958587986008309583300661624732351781867649073453101441374494448647801161160628682620424606448776921630605631438175678645279991669229656431371487582062647895286969437397637078114454734190259018293401728477524008517707147918759935634293074281461286152910869539679862195218147183583479512450866189523934159015525356366566260391347738785203230008401063408207185841946313029467702741589553170147998284155477493168606751192396718287722378514215208388581551386374614369063939942361763240112070705949455564466820346475538395324305667933505989537214079724580031285757869869419789188554466952836682529086476104331625609598345166562894137519115834909824014791905421195411693874788118841405199700455916123650733889960081358508516217774493197720100298501109338285786555497422018235794079474647409709484294459452311240329397280016630143582473166827608877602041666139851194331417665262181382503707058189745816542738168956798639459083426564278243498895019280101525149940261679794811726289626264721743487328593520603011808670186008372113764559119004194129098083320830977414917085350675886344229863489443669959659663443179675466801519654710367838563221549952846316030357763498454191757725812166188576461975188770221429342484174431032389211918715920324809684824416516313558858103334231065438136090145839113608358248166096430819964732161773424255988222746295908475709800545825006363878595424626261990858381607970283799909332965303098291199341152848304146891753807468695030689646547743538264288340665412851406207074113556454629316621438673582424639473080778188907496707117187737282602561291815787756101033165646889308886510277125375369117845746580285780070361428817781561540965771998661864028869104481733441987978124387110610342394412060374146108807242226843419476542065787925816874887774700354734328317171868776719715619800056030763398421998777191329279496520471217473376762583534093860176739373670424785672539241403783631725535509063681464810733948568237962892032642485875177984618526066209281548879700880108050562495824181440771124067123425060696606303093334008288373833704011609716623104721383288034727027337828474325734752533835598793250617618480642155413503857164009505288098011158603850195561540093173430842782914793088101212472525963606614202352682972721836540912566695096442634772114529632572868540564962495111779231182783665734247016315716478752921751339826572475825692927429178985866407590819732048711303093279401472574808442857261606107201086426092671993483810595778006771211188581020350851611131414480136918489514656976957902690844764390700231111135564355544063052405549895474518543045147034288260191307466350015213497244235091046682637926120205503146937349321203057557837773435178316446965595382362506178143635662807602078801274168405123953141531936953202978813410122081350742887339850451271871420646113646734570408834809598989496747143426064754989583788756267870144881987316750914599486802004254697893215870985600982393180476308285589869377540926537399437562011486922995795722987230927837576062510284092531157967210486552761521573193964087977165339581152200521264775842851447179406124248966092511647541203659122218849490245676121600240320672602414357241775620969258797447601662919790254336641130575887570390541241622090914688705018762830251430686055059706023534980125049856703818791921283166580857956342002524727129540525111945455564086544945811226478324196509216770087867385963876224538464759938729033193729023502801653651317127426606406612543039986394731628848441353637735857459727266110193008671409125695820142300201119163037406257413956144380027356840514277250500159583429364505405025894489461701708963458289027525293235333765735562076718575010995688421333839483928617249926009989190156553324321455369540168279165772809149166723513841798827385444084331375213807316372305037381249831525306412284327811751167768415010162288816487059660079516545168637685871842984627883385642772027119622993371844255561655989637827470349428584674651759145447146586003144649214927332821714968287140150529815234029795166734589330719526114180823000120365282858270029025211557377719242755124230106111612745691691479355181320079199373210489303742300048585075216246475958340762684000919510276905828724001463204492776893398976336586169333160438480768331526666369502739331553792987261869510041485452983171259477646371823665513647139049849246215179555014617056959597435535953871400466766376749149482476707603435648117529628769395662476631416848492244892702138312676321390677435970955307215473324552856039463760952302895387121017418273212838820814240534362680777640446655074742930095244225572513890260040809824464569396278120124054832886284462006307650269918037278551733618496204340659692849902954520309263130423015841211869374383735710680383563254946638800843255882891976214810002002453091716824226672662980261708411584006048698481409702565023001896664305344302664343520612365455601199978611572743505892511955107688098942232717020823715558690828308821061223648085440075180615651181960321317192191357575957849308091227013686660748952931493636529661585405891000731569393029308500467763388371306072355107806817759628200270256980936100345241662281097341468398667949072796789887710864041241756758369962568753399881598301182074692987573055125989146380878920058363447960012067833253909592686007789715108113116099958012741077181520893782590405193580923976061267133026145292472335256693516356032474562687165613356180503846552612237205576179503926267242673135466111788124595392361722968420421755413287710565485245402490796880942394382553864071237665068622727476208874054789181223014554468356092877785055396486404175824918910900354525858686171907876068980092373720886090155240019758028948867937100802525313478299962864362828465886599784203515685616402261646485017135660306070724557499430844164053542459653410412431702643673174362779121893197130934543316839744632623191380070582430442305465018606448190692924863626423558617050925155315247061850495926641708032044759675900475888054237516960328995750051020928730251243485392972432153931849069466583343448629081730384055844136001933283707285960431570666693233595106330766786375278467532452221272202974027005812005371571009193725370258638039991500534246717382427663758363852060863606887267389538426613319742788517081713689858026559819241749216536768897363574743646419395724509407344393277394978366025165533111551034944142406589752381111385068486046366620639134271512910700028584575157662330027942560677408890193129491958646970572804094033702236194871889114452575394877265154328949293878618313120515265222502628181321796519688241711968931412587685937211579572136607309355051569919798578364392515020703853173273078153202972749867436004230058590083369600035918227036530434991969887955441330750083223462775048905157528091480300440080600388584895462104185401414375005454507729290816279834517671522487970701166964242842491840624767783513209854514148862907806806812917360668303513253813093477742661502604979547100558751528666458593813798659808878295611853292398868922079932652587312322295354000639987379557457567792154301446218947678779842021437681571132763684868706836204717205302632717420697475392050979632550159861334241361646775141364479561531161474338354919865378342449745809000831629233101200671736353978769874303309310989113511821572483664864552238186659237127016690095493840610745935472986939003254517911525212529991411814118948768124209596024597002803664730787561951899246459989866815011147200002717999282493546862259501023996107758315193489296771438509512780543847950202088795758371586248977842065726774972910294517621129691600787932699686489650205965732728914281515568040968821309374889563024093879856755198415210275045199543008589580031461495963042663745932313404116134429944904429710755928624629884384711979506799447996277036486735237202304244356813563508910189283320850155876437734969384154185497082106666377985723047855841113454005896367313215464080621981656594958489028400909560086079101264253443724548380002565922596576920052123478831423682688067949356754392806229738322411591929525294539904002705496001239975953901118454222024800668981140242310207292877308183210206921376157775002447831475728471046735434109751440824810074761022995329372782767740981647216314448037970194526999192667128765084919372770971562744155238266008519985281673993550321926450758873035087515720429027368303626761781939153041705066248184346005102048880284924664977037504464604729996538263312955231613426135781467482879508438127036408097307071142900429182784308956773192130154333703193733950634271554380645749394485880167143911626208180520535139455219364915200855909096659540425319899121573974404662279928775930886410890426538502701889592724547095109647046977431747104857319423724823972858234584089902340376153535354545161008484437548423398020507844557977626614740989324984355279504391366285650219794567719399391182297786250614497085735046883373833845768900301821692328514313066530480157788303305610354212069265608913490044419051901552186088031320612343388099319131671006808154377556833330744150818937847660373721119051846047460887513949178183670220006005832322930246347115513369477829056295454253981105889626345547541812808510206613214553011400481585762916082992243304151781470092911889405369044768683795880611194482744872500925613392467114161090870102108441300441839066706240087295377004936045584559648972682785394148147393590813761641319018708655467675889286214148086447609720570550236519971336067297611099622478672521472887308775356110699736871890170342269867660593188928521278518827211132469005837797210515072426293463954621745286824738829075154712566701399615177477187456340660255004171318005057358725902717467411652496565317139443959874953129578991323125607891316082041785823344181529358793489089635091882641078419305442969134717010827654542331401135813267099177304902895723634874372045328801783636642438836976970740857643479854524449831988004428013511193173305776371793832953665674573423603101979803061447726951894491403824043397472714476311429854068350731283367252934012401004852506662429790868413952530238316525071880227611496743776550634901442605526554045207323701164631317704920703116483369235444125986687872374423484226003030944254939613168099375079468217202701140119411880335117813698097506152354760718552466108513640508896482646795636805488537393121267883875310244580172677536460040294015622880291884418321445398687323779124497391326810269081490976469291544536128310575026731002392464132955505957218793791676036707639281808084268707150245683758011330402181035344638337788032665909108623340838771441990698928769833848776745339216398301305923873490304545383452532291744108932596912352823818091627257701284445688829011502508437217539417727821153192387210336204414844628970758249268326204328977371197404401320743136988001461253016141810248687653178475282050651023296184424640351061556550245395227924758812212393215089227156463098950523485751366435841942558063306216185406458898616626771460767510109189111871307246362652033134185309531781931286654701674197056765574249748420998351078273247090425635483712042689984376031969437621779956619785300891581815373662014221231767219328058725702720602673550163715057036920266076152599753909165765330992109154114319541285708648435704238447562131607910769393015312414584286034946929686635129194311176130194472772167779014395079720074684553556955777936490069301740472391062938378471811428297179347367502575133228482648739352252241883412959079056980591346632990281467793892116477537132810430223420495577469073010915118655401805713817460634007077784010894338434461080613991597310080426374921027820700053599971774552540138808360667993733374824477107494596925018398262499653236498259144591496956387186701581531226018245599113522334419582545268094191252858847059585769070820957084900530958491826688459186669534324251403878861928553401129118781975815370722889380390168914938074923921958166447500946062763997290872632144837525603297905934975520355392229293805814422779260860941863457369849854045483884737274273857180501725294145049359727758171622997057504394596120517227665994743804648849336982113403940462996161965103286392156008418857665379629846628859187414082214667496441129399126894566769511830575353997078659694642144976325495334009221881753080864022958825952838639916977179156376819418400045713682315763604477834453049408631470704564171401760727564554089275363634237649226945148639095657824253582838728614155035257740485098572207813891157716774272782288715830008099690251666576454752994329956982833350280150688011498184107268210070808425269188024487253545640294697475262920215863479941388411283962242135061361945456094420983454890604837999677456791482122682030058794792856893518381358583170658984161044237015438015133058441087932357990788853830816572761882711867722532363539104976492883896207880050978132803580597767870815078551664707232153337910484396261034047631438637426448109512703663454540576756390153823042117555557640617491557598961557795788156058293807860839687403671444517066106648849038525249075573318187333430537066371739045764873399939272303166969625324424929983290689241497482400436827513755569953447505864639922816786380621331728084538767790635608730892272218011022864547176510441233304517646821991172641701432765743814469900672595359234343492108458735010676069500565975266731776451616629176254266935763556381918112257571013815385225775480405104692608746910046607838105277008926514645110158441452783312196438372802335501000024273401371003946136489388017728438399803481902997277565415301967512623258086574429849993941305674901321673472166252336565967305345507438702113537607645764078052333503031338590975380076033283119777115280333175702855015085263112158816943901823250004014805551190038874309881951810092230606253821613843673999939337165818008257283401703143595208521041171979760325045843627419480330056930759796800813264178287613943602110472679156383028289357727577793267930270432690754191548340806606376720553972664249087861423603113888168742029858793676203752440892224650700763125156124136979692845276101362144659737731202874764656746361229024866205450666314572924506136962788692274636110509027050298493216518252225317968046180977095255835497192767275478080952383175391878949892737137150248621158137813154492239705871066429004194975079795144541726059531940770338270501776148773481171876343761256384605329304846555842365075374781522381876239060265373323428476688835193251593915400731534269643318136299636232661634709179781952435589389607192697327004674736275591588306082979673902388571716891121708499640680885776891316188555527951735389596479620939386522299292205867343013020859441851833928573596059533473648959361065971977940325699381487039680083427309501038377230572813460272464586857186590732305059153322978648218344390843430578094317612281817475994855161568860461459078631991580073519358243753234678752404446448128463587534922072961176291794247179052449114139241279721852868770430841796233441984983455454834385412355370742984933388611964152252570910899035300481750265697600769304139033125513033427390835163358172924063895270160289778393515435750837938620159759579483490518345497118238974283432526835499717687899942340175221852232386265779608126181764804900456770878546225157426090417023891344254861996647785983157768650348069303079515940290288102651831042268528575706107466353231427746318113839365730201395690684162078515744736439333804134756104990542301467028880066623154731975397464758090312901648484176040003987810698536789611752516632964092033786162326821821778009053897092497924380270468456261182028253538517709111728348571595933813193544376595083738455522584365009980869653683140553965229840742853863944657265774898462009753742025004231296248545235593856991217054920129135014571181432142101781852260895153899465128862489120478300772076815290590897417443930014931103455630767804998429755892937646952489341849995546743058364092346919369922417917360926711345194908439148221837417669807723919797521199861057502605430557471072832998295337334948037461694638583450969792986217106991557733061435121778196247191965805262178258695991713297395558117410859333371355985327389456375121534158722723834759098167884494292068440068147182017515608028956627530702463464939325423779416081020101971480512316273874793129302613736472204503590126814415953340763733420309048550007595945241652927221476410481129171968553127021078271964069606421709472784294012787460293309255011410592824223376481046068326239097958118825351939546045646502939782397861853966792614140181790094546367365568846667355711673542168551169314102474921224025456120765773346427868410324074493409820791569500082438865960262966501998881189720758785681072723262704543160431909323962020910353836952668979356195962832284529514505620873094451503435345749703199799929285360820728430527580939434126405106163146709928045982367617760797754780619530508054187717807668571241987136325159621537661075077739056014321029234890734669730086133938239515596881456678829461910709674352224723262275928717520415898638539024718875214020111249605768004676657936648159968410757658450161276446891160467176643660990923475087668391632488278213714078092177782089927680672031729170534939243670844676120829291520996880693318185636889343000166461235340525308275623450270557310296529662214896487859495547223359505395088453936324596673511891795016281504420007835071871124008291174052010271879553232083685335561633944983871847811948230099659287130800865761049826227515587726875966917335176943506889837004150347882416517950222079865489981830172606972674348371612656213653981802778272796397809282565541695083453250509776852498531029814574010234829847927614862935181892740846874121858275799241457225878052658251978931080197315340948869566565052382601896211049609916824109621410580997906389311405717670657386245873031876826786353037676357404663844959050454884567094658750626680421724437620246902627194814409553966669947730423357384801454477410774676348924036241329493064268100475411408485818814702256879782598158683411600573030639389325435015682075388221245951023996754506039608218068835387964951828481366594773850466152238895336452791991625469730727069291334241797946502933782902125474806893714994926501786108447212020471188544649208163336256237275589867382078638176112775181577235705078182511334459216560048533643770644460520923964350243472245373713174109049556531655056291796779182081685932357215080960582107785674554124879923549103834364392035742917490439096966919100263909058094329538946532012071806326045921482363975857870531312522449766525383036138165743143239293640684454688626078278671389888006005389887926619790546794079081929462490023020091358303587663553014789766136280490499317610890132139118297951927082738109111394305803314081248586112271572445750654013783815738607964115674076681835231776585324167703761974915793931977587333119448140948806927651062630004427317699059321730755414577958569403158053271488015316943332797326038604132972789475088416297917019558906057873918764956302249130056128538110219896830230874826540561707417218562843989373619722467943628525941957136717266652992249626258701109077102592391236426509391775158378441987833961769066429275156003258183158220847811348582694325142366408035735356046229104768567798395363581457004410817760326292625985804082290874109235073614903051714820878661800672777843468164514319439680960194322945056575026542373609836392424325169598809148153468885670049629204226068242715947631526310172070655915053072508263036609768276145175999891085666945313759759002798341045976288504716259743336868964501412602325377304372367509271645540207281341632661906824142029498899611363182961498339983431542091268494067020756371761889027421334373985231084189538406560150246529336361363041977137306316175128608217497211426394922344371874927866535610350438999873279480244083138297884565536016095907711855899874219871461467436223475121911025108398871944827001301679083855772400115152158765627403950407862392214906550656604469221102396494763541030208172924366429680624266612172180778565770708870548647200098447883336774421565145368726196958323074478919278673871484704128068273421112372920943330264099630800885253903802507418574538475750258089230128552868075748592665419706583821901620330510383056805465805330353102212777739702860297248046245763252951243877546105955395097826462324676740545561177316375006211295360192648751899828828613068274156370401213653909636968614897524896143129280543866686046022707794219588591897786645177230468350251502874780772126497639623679302080185333017032802424601080641486265999472668122140038356059688978160909034400068334891647052114004123055832420898658891850325016793024030662017407483866737245016339993690708602839991127652348334643042029519069371848087155465394711516325378065717796464355453192404460998242340572521476947301272423403168535382600959927545278687351162693641707089476001909275556103473412270626479958780254296366133914856809617423964894863911010403337257358861357857042583973021027048149213040906508864358757689334323733029326114820719299906990835438441973186100696215432088371009096419227986203351323713371489981628882791873838423800787436023669535518906220250261788698630656105837276826961571586125461296559647706863584079138663674334472225169223763089769029734256197572201845617206790257021047743620394599168862038804622357507312145019757496241805252228862787090572648014696659675133995522878309755739741178624962507401805428403326802128598997568143472772867878248226219887587747120524397217554780304015085690856329713484282054521371958781771979168752584966089353044793450319294165654857022451841788336825207759884310744177211151646925910171835784656299744846901988931728239655207953122200426152013422765068835952385978076499583256938439064689407486972939403647642948538121824809734817364648603212769744487296598080137961049426006038575139177186974553270056753198555318735700640734540118487913654511314460363983297354568079837119082209529677408505995043843113756012983725043775270722152291326470484212702266582385021320493856256322259990337770720714325211548082918585290220604052284839074876526591504404036786183776476003689320193053614586701169133102713301382151691301391035949347011510587817455755486383774788819457132097791279374932976004556787023478574552311703046391170871375820558481071484237110356085666453515344031060943955851472275003073921635781262955154565987742698148389297562018149888524924378525418059615356096114275707490209478373348370971589599599484455301846390138339847805336106116832601922610474730595477155083995023245258788023174775674641843763858530936960373678175442034224503190153134369716740308065786362549171549775546630436937351869561106361806705385704656095221278896973923302368864968479686059851192556520399854730695540700813119461463821876716439914276680383121917610237351979668115289611472558270988842334665086894836809826107755690213317995257306017370776091921240547569692686963502190321730181167993226876835278581361825091947455363575292123800842543940838144794878619209349473457270540015377048826811328292996311258109160628675774704464505136496140998792495266243806006166031388695326993796942489082489461167527763152224269413272343322708460485726545199328794623906865496337472831767410171008236937098694618220342107188014681525435049734978024614770362428696853058906695195130235332090891923204666266975210972956489851027933588890562791832159602654264725576930247465526946718874551013190085535906728927082029376438800940266599667378093616638188102687610880890914972600915436230354166281279225743068703503746726831632625687525864637199287697692896410626650172610727363546669497212521750773048812823975286031414692533296014560503980856670826976234522261911662917885154498042407485349567595609097782731924473422795988668688299671242574422470309844709847264061341969543335772033314620601264652668037165573441253013781692324530428597636296776211069738778377907917450692954883714433771640813869710404364103255525548466078071005906760328009472835451387376026993254150206800742872710727504270754393274058529906811673251743911698560543134864656849291576055782302546389357878610334638073214666624902104478103096535283008546363314067406633146343361417285258062176865689792788745615379328295899292653678473392443759238902714833799916063133870778825720172686733972393001816963427364131735732543481931709929061957928723199802743126807494570086162627377674363784713640024239716061475446857051442763324228553926386715628955707739308208316833874206592544126529583919362278008012662498671158555610505237350988277660411056987683019011685845166100318335561707066900576824431151721111095004053869203955488747784682212405389498000776697090116634111105240426984392034383419240439241934059570156312788000623584658006617769830192387173666739918277905799876279505717642442755436173420600356313506568450568425604144715973518972869511757242674107745315216647622277414745840341389654520872661893594373712848871407849256033534376276608054199133403927496725447485630055761104903127159561799398049547639558125621973732990988583790770208008219446536370295602840059866102572642870883289311730606998926202889544557769196908584148226584252175325615250840848265341004996919871862908243640873774616509394672423726673166210012222638154654815258702632086645183418723667216124484613616607178854170666616440014784837106580104081871584100934083036920446191477008827738396183649199012185374763337605407311298830603044966874725954317419615787009659710990419135740801920209530126784804254002703820975475814049479004550820229014950971315496609072660092464779611266278769468133223836926446565053058694933243685715230181344648737784014683994022439653712709216890384380455977222346669700541418510119200188683820844811517198563232215225014870359365677631983998661336325623738944185486336358049616226953914232522158353238986361012541872220509012666238946420090823555627984140540184771656689467180849393170566248399920089028675266486410292692860425709909760954752604596878038095181048848624817233564192847990006314023389879261623061759399686767143117395838432890968079326542747180399188307639696704761051461550596705098075204382280768019646829478774446701986102420235420707286331753396418556715893114956114735983237152179364156930216615755660498461224227191080886094405023225769381709185488400703079377263397340103859018340749985508216531510531048390422939553590240158311326321861073500006585958653879209826052958869537697709364081938701476304064996486707807147969032911278279204631051458636329089923615466028137426259242809995160334223441441695262236736088273768119603606804802711540075514143560543912818463794630047159031959437130755946070690681672603697159735527510678192987178600382287838913845046420694669087465295657722024607929181772852146144987598664789845740465053945438368493749035783268488953753640099960855419757460184682347724267885014430252960584618621672157143987255695585202173538517881007362330149438004418801129129732427738138803313591415391257697619320673536412500974665437162660060366458329417473504547303879138319699254744748622880184074665879419085122672677933936581907416349103674966065422881687381114078565148927350600064012112146769414522649511074165036774056296403110409023573859731310522800027971437790061600355566657401538851811288849765430754301561579412500277871413897858575319598918391816017489720738780481412349056917468031191880707551213073059549704359939443705186327296016485881215193779982362583776329953175552613187442400955073075381301063479791895416203089618913409567988391252233232186519101987983320695657940787726647931837902181997081516178527745625247845256674557709705113541648369435945300238341715256534989445061725814610687983137439798001792355562699198888838053483140576144799375198776063675879152283079680198192733729822397418167358341857714371086721691129278528334032775860319381656648540784889427115708405800808242196703495844991983966552626043030277444495953168464209899135142355688570248197933784931101232960699072246570354456518283749141192462000964044061192741475355073468313127476923859153960518543087353536656539296423954196059305186386301617538721906132381805090731394651392202017232633269185423529941852676278375372102755895702224952211179979603216248618746047811701297036957458693765008625415416001621555400155895703279014561536937241696959574777683246801107563114251096848523640624718455238710267144631387848080192712180099369079775314689232969352900618828895345157900970280637410567121698776849462817070571112079035112016991601393388090685271670189394890561542581448858337047191302498473309166551222555245843926014903413314160553114154935437904476087313979216949252291330421337604390229313475848610144532993784195842321502832453450229540396879739076892742571497213556393664890737507852699153690870207963304493804304340826457108424513383316616223445785234378794426578636140553688188249130329571744804664142921601054693718527452080472961908157801102678233982807241704580697709116642328328718621693705500971110582711090668507512967794795184525666854826555673947113687545179542783634471358768600461732220373335761264884441816148908299185002404487556277947573633938763642209024960185288239257860479670154430660315537519452597348482513416363149201995354192942649769949394926299192432234254454903003267793048616768831382872976407149487046608607519369383210318556218061932440577222872934890785429722668433000539909971829467471298255258529340746149934823859762486277925281771297237060912797976434408940291350639757520371506314468165145856417692512989818473376290158693451698513126497104365033341761829610838452772483787247605983816339525121456195762821951802391944352735099876257757754938275914992707122007155955231184458182862263385224033700621759994774626705334989436971185348352692881605460476508213439599734574371930158530323299589206360022262556595403150475067043062764695692949262774548277154263624400449454231622969283021386880067575931535798200959537502345953087082806128898068841947996164843638770102305786199064978359702795742235758774381283814469676760547319775224500702438531213594601673422567860703347876318475776968589559687577532574954382118859184009845534526784470370280929251815921608529731739075015029057800378867266549820831973881371039572313604486886827266709807097939384409433307564323685766467927849067963630669744955838837309098226210532011846105696133979022767748737200510339895262164146402147193904577036953366741017798047939712854178757458561410842961259358121462798612404288797668212207425514844103239703030935522777993485087616277349014108968285593313238924786575958884406477803743011680355844984832395665729529741634063886116950296764911361373894470710062203954966921023018731377336368842605287526517373715025457334315171290606716987224693827734584914622884048582581977292070429263058462868833442607985491447599661892460045823730616650942912640000896660315125784914081316572227279476779476239339389461885277698764820282512156608957567389847478145524776539057991280681785133180341051563516429807412576982279954472589015954163189944325157675137307851085872386037693820040150992991475727652742764190329850859428268381090909244415129075973360258166030830754441594037664564120071864373621200033204410063903994558904190010313916008938563377588692007671204098020628622750031422105057376381764569498996383655610473330003491462509761852040880749143671144248663002049764336329487538333315132249970891145391005171401167737446725842275207717318760505991744149636094525415710918489149336088402777935677480759213384438662535319624807539865231619181830977209152901143735641355454737830908463960189835704450521595567494403584298054449692142461909079214400621257832589268500661798544190016011939090792335893920473255399037418863911990508661465721886834769682972515420581363487039213686389696425500939480729744732502819569791327050957830547758075148478074186764819015819131259227288016695510877411077790703273798947968395759876102884592560106141747166977416990363756349400686390664607065777546324254006633329850350315544454408923559214869660005133953175412656908917791592025910027824554554836521580910552704459956413424925328425314186519645966575595133718273128098891630901864392634094463248360833248762966903508792533523239815462884587126840526207601615961750382027924979553988413396701199075785442521705859270138432199422496528995753302926023531273103448830508650950975632279902895400772534679688949766484060147217710309758580453644396069470822912280097612193298532251176907377639294443583256186671066048736749491011909046251274442109422277359633420144308558325967412022693452226732046395621944863353305675037979154075708142476396199140107882285011916961319766674534168766843731575359136340542368890355759327957951832688516629959180314106223016134354611987137421017052082774197780851433978623865477983957294915262126267444990284118756197441384577384049765436157694073840252044055654089254682541940148249217584762770126492597298637663267764836865423820364564882967354081447088518591092949430234908826322762677869345762847103549533485631736052852266899098429888906524991771760380039305045664859396691386882731713871923695014694112100683983099803954740010357784358049833825703598472322036431475863056591881040847234695218469996095632104801741647973546303828388048101192759601319540691869155924489758523668459049768881498806460175879284470646819061223901784603406979615173983652434989681774569306066193380666693149557508165421654147218336038416044859579305215146491670321432502026542372667544398962368470046183577570546812169468506668375591657385933116256704318204804568940043709786929761661420230919870181842476575862218100896641745810296773992303281735845959326023578070369250589162190291563480329702092285697307688014454172522559496057950755985900463535578630619583715700589691834270490483589958382132693130494868096058859244834471074419448116523510232590501646220229848348590045077669272889539017257562152394749972260854649390815697709519231707576824124740760406563015149084461742131569907076450666120036978891098157441805452211672262595077862040934342463121260445273513714031614680976732574734365618025099462505102507566614801892056494541856024418821942816657067715595881708506457431070686726296509127021990480225246489965318747375413496385857132950634626629939187176678157969562736723967621223440268645220732884607901794780669062901785027740109071293795662105490325442615855544636820044845002036499307095750664739679694764573313803561085302048613108990843100011738093271212532980120819096854941707756606404873337075650300103946324776199559451131978964499767285836909886323076485742151417924263641186427403922562023757379526468666574040176107202077975937922682311078004075373720744306269534907001520101728010736419386777588978235832904732376606898790661406336652346752414176758567651094571766864810032668692653480545384066787041818128433417824454641777529605806451277667850229924721699687932228510682962037812302962475736463812577853863444923518049219314282225003066637020680887418617942677637238147424544772374369143820776733917180038562540308264881692996515205408229403352492136651546991657232123408957086512333380416556437381093542650228399464526763157524752055832895847913168757565892113708586671334172554899795020507439241349562126639241510856910941973154947560299032885666509535579419209837412648157737594433383171074013163062512801223101488935012818266257759416358383560937385602172875985144019336155503204915711892040176752326282227472345512636710468898018476981840379934904593486541919133022676779082097491971043137216026457958466161737502505737934084662725189578000771752897896632011905753311336972701819425932657243458732591464903063429770241991604691020721381194982062139682947643175252282429994962040304261702731323635255404585444876417322218143739535012261668600682405004984357261289346947350184670144907918079799899427604459158042081428946920924694306737334587462558145978695682789056703267089575400036704231237185238808838840812513298480068667645645517863660817714993722976895010003426632395427223870519728201143003894064085353215905672556776873324274638675167468451608316279711561209777134092737632590573702935288035968961959814608589033192051243345558411198241994175999272654883119255986855489413838140077952735223123060429928262556195237608110236196375770086148825670267924037213106772334865386617746861058385386669482592232658247728505107973223126600240779788008559685243136667923851787838345860029758439879818978811481839906837973415841309206026253137690532996304856360373518795512331690207607316080117896221874209377441989205931653298846694900611856073919814044918016142236132547160424012072708707745620349226850688536652050514129506792915045692319436221868726888758254412067668292493510582716286636648963957912528794984179238939708605704287335341891830739778033978827350738592464771553330257091255031696537337212066079140796404902122042852461392737491660215588593034138168385207519679794219574494221703135602896097408809964140499601249399675480669592249763384666431004938351846923711528559012762604490258555838722433104194660765029471976622135297810506115194936580009645429195387136284538143888398857880517113528405387001896607814780185228793501269731077017166933708099344068836463511013379050919081198501861679711915000040918022097247875779753000227720624617645682085666949183685822444654483891706914127865190990730555661898059503933561063807073018807652315185817885569711109463815506635781268230333862193343779129928104197993944494221198448116463692660426114652878177814453805258938804715674822440019181674822719470150623159998167151653647166542473453719638503353333723330047030287627312667140885628469890656539641504515215100789219121288573448813207090594796801780855512171552618056167197851175478847254320771449231244384001813410366104759770365917063988858937610626329671903307700256531286894675531625042055557775598473455140819348251384030727604892723328066119922780551151508031459307627211734059545234257789707896631884993598414402212485433115074101168523041459217196344156272916629368091212236439242830477208229153616003449266940381602446089037327877956143878496911999886223876108641349085968599259065226163047364364260594703648623024152539775868586568067504163958284348323818190131556399324210017383482245555526331463173711163452794921624396886406396103467262509590464693703810353290248081659521188016949192450768658136841336744888944096486385836289367885923705622992983264833724294335485360346842139017460189801081431726419895657830552242897002597625678303829001105832636698379762085934082339223377184037909246599274948674515236028632393369632280810847574730861205375415826658861932236386753805176905216053663433827894383100508174704226801097560572995363744787808769945613616644078594964691930600533811057521933305295512339142599196324849852738255633327695852045350373377002255660796021769518327459928832481633249855490948050200811490164817021308421917717831600946848894374953557629117224741067651939598144622462239282447463614562496605614077491017782328615314855625405319467600679619053400960910830726061181641340464578032829188915990896000834190456147076104878635547419101085980771885889956174770522953568362630422532006372504422100044093059675065220611378964825052067868117321294710570099172644178520513390532930200602838872711370709845559848365396149779688201888916989016421760532170926941134128890259673492214190003042489065243797755416683236750966445176764288294111462891968873414596657423193767625476952508932788860088308191245840684544373987158185933887221666987000988423381135356128728674666749831547720500481282920362562894821169152180330721645650268622817815180527161081421430560973895632823154702187873864919968822828020167823436164524505598245883812975994105182666221933535123585509880956805229586172864699723803215882482377181168350797011849560194973479723461261820306756527300068441218979844494075209658324575876310123703810689060848414830204900549893000687804889381237462145276406522274561125946434462971354302229331409352446512409409497525016378317939818871375188786315028375333753486110978469806243125335197774342710582573614795348649004244023918692032578905318320650533933822568578056475121751924309326698962179709526939057880056159608124203547637163531202107864771450564267453252756251058136882561700160840817196536588263091359897759274364308201054533405360016134898157946593749907514961843456858651832378569153008616938309148775756869988059023913639579482134148339116621161779478845127892008491955441508333949049172241392686022017062434154636881898135671214708801517859359351720762230464416577914900476598740728698172835117620688617687364719939405043045701793183329937633741199782202389214757172641200362178679155831632286292648562805666182161922881598074533735753144471110884603691979565758211760884769067118872258490465076198630409422275611084678606747022259009405566870870058257319490856456820492407877260851692651993248353620942785873830768600420274040374076303408559215395163538060770194089968221623381991217537513200843385453332954777362145525206496506426834020505224404181338633699801419522966263435960272451198250082811662298941902781384534888428222686890214322350978700634193194039193165446362786608490737653696456632479679768037872907991139887757445113006805806976050399229978417700902617667869949027910741868828430746653750916541404629696514679105832102741696363103481219175961413932044230513984744597710498330155286903954121125727339318979955207329356710151956851152084688468128954740239054406194024779880988419165998443773131750172940353298538999366611127079429363706123196649130907512556919000678079243170079561020217682470562455388068566093365972220818989945850502294750560270178534497180678363927429305468007295857669336746789960847984223137324738389203552142814830343429123375489041091674863642240316281994630996484605411798382023789711249800502428420808842535556570507038170125239026704661514053469157351722635628336377224317193685277438333886123919496073519721881085926017022346650067670301973463765883574906781386317523635021058734969752157594185156878862372860354060767360365500634307866406866828263271568652990373103453731929713309642115013915448858070078804647015671693930755868478607562445874084442073429187817810838653833125532084203786235883405932251257265690498277785633691056622174347378873451326109673717058964927837919863610321236559454326559575331054391034575245941594907599029121443105973854460619909163687138547106763766750212728524702467774206423656616535906789688962265400183419317869193180587494896150472213622202080935228957558999902301069386381208037943370764161339544881768993242291434756756561856362018588025226146698538380312339742885776827656980640721171578520062196672225270780332575253327628411268425171446787569882475627863797200720570898325548830037201314460045318213331039315826604112712659625534823614828682172519638374947707218336910241742566454307505923150847837683870207292421763731871267417393404723939329557869289851715131020854473868820379773101917767032579558969443394210728385080575981526529017727865999623515333609814410188509168190102975517532073073159995933892307435557239855772705064655403068312232404334225630983449777462217994838247554054679893031118736164538999669579435594860826150447868170121178273779069364959212610592126043721422951482764595636010806409520067022886871204765808759543810165063889206164119395804564953146730428529909653975660637982580565542668198389745843707531651758583195370608811006535225022041419134302176902344801357719925798527789994408029860508717504131810571332312030396763220286956997828277403842824338766908122893242669086349416390582649848501519657053459058945295735693404155076549034209861003215627603337190405219718806265095282287724234496978855360680405228401981866588461006736231287364491945795097528558573987921472123020811193804787674921677660618880967572000982699954914481989519070623937311930136464813724343260787715092639579867049656274110909823017583402918411888771358231634063826171032866658444160865591240409601502336688920879889816288531186763937601713346160511864987800324584153077309943539698501161391074095079453847378016286197838931506730795890422084607183104944914488126749816546118400994409797603799897218145178251726038860842511066463453193295267316027074900216835804215825432123199678184571661369466716136027061904302943042025803522876722287945657183385375008464624209176888009233440177466105818619843307386745418806859772311455033906729748168943670758914880874509236289909109422714924861667923017604181827925353577644700791101966307656479172966268980477573865554426384431597264696911286346728268171236690518130359984257032330159397508733816902627960225451710225810936704919977233962677766693429778223574259588628123767717763173295515096508325476092375108434684571187206701068950903724252226800343527620107890305725392306650793357576585730086106950061303340326741204295964254369135038868874328413665782757831862480663845328571874602961168257433974985136395867012096183282200046265018407323568712314938108167113870592301657413013717919130040337075800698310053521448219107954599037349691410275886961189018824354993949082503735638861607834021490641722405299846426427267780494726873230363723915920303368872615832688361742372177278881193118831344116367809675553423326610587211447843765424989641843199064931651032597978885569057012885710543480882107473265833182781461871781105836047605340627984329941981785378851410463232595584138172089334198147386568868269067460550956882317017861225785955877889316203477152664065393992444756742097832810569026502975876126489128826345430293837089133106850063962195784936261203399404137368757035147759113296297963659114743309018453665257526054954627928666031750110475468391479623905574467862964150925850729091105932057698406530429435631533206236060522616873170816486219645648515936136273904920962512331598823286417282197513994223986604410282395015046729725217827267999477484491117902109199831110402738069504384771347785661846368108616603936358067742728455452536912704232632126661282515053456554845380819779259781022775819853356323909010850543357784752791805765194287674564916523941679064221657658957457496182597264730751296964103452159232800215523113420283742563908837337529325528049095848540126291435258307143641154834977690253028266653970797962870634890085033416932988329249959212000945156801693424944885694308099486447567216440468182848840208434424846542113906383471070874602954891091073280918837023502208344313388486282187044399614344168209908235621796970004693471879159907456778642820774218881993542500308389352995357563520934069696391711955818030126143700548418303494693107361559861931861350643064690845035644678504643020117204327871111653422811845317716637512080232408000284504792520248954975288559519933601925292608096423628772572407055131144822496830128154301700199575513358118732016472416210099569390493238507404042621042643210013146063097294903936425657638061898902797804858916598982525151133751069448448270710756085124880107873125308891712490217583350221560765836441114582374271392780307947406429556644700145631638833057830218296292707985487495241516964416606408211026325135611233255915724355051376682372459100548809454719422456903744769737032001524387103386435953529217403835779753257439835606545553021440144939777190934140121938620077325461118667939312114117781534986741166574121995827876685709369589048860028659910299513145903451007281318156835168005698463507236624584922348252142897637321011250765299124760736987927292041507232936999652857683959964929805712210345992514900788755880393127973533962883180649209096756343866134048352923622496131705945234406541403088408068225597326551989309565375909679363627401931423923914300519880146527970570843377412027530164942161296390407648383993783716491687764804908556108802370029692536264622046091894639674759964323140292767622764286037527185094181285460243791376463903426592988685781785579104037555745072097630757752307526575259626766501427976421681997682837646562606861803522946126164824970504288128145047529288678702607262827250560902940298097556450895318232801185486513663799875818101736771029323549263766029279360623460626479305111320304786722116911873469368957960432094532983265476011031960681994659044291118586469404728682773946981270857070597875744638488736405929033788490514259782998596200007268277837705478359089230568129550210050287773199720693081368611016126333973265660253638923740493395526193060489275753310524022245058456214011600880777079690348279837098746862329286331092583448464890044941019108798498266415411486248641585357164830218252733633727097951128912343206777062218201732267027092595385984018517114953289708469755475543251450556843886159347087736128344183883230391067929923802336240664585716664738741054269534558972792638835196094604032688492419840978673036213283440630212220147809747135849132044768977225704812177451885940949365999036616906798125263509886202535453937693599774020056846640190537827640485239433548709473141666071353745015291394696662319831915851301813745630051838046515854861539697773129675973674409895137701877422695908000248499096564900566459686831164381324490346647075552451232585643110950578455707299945638834621680864165653421856275967158612608844377996505586756157962440343039603925737892597706504896912339119069745717399527361108713625180402831541858394292823114780250844613172530488468212913227559092937427811425933563980785348127616454475563968324106064585100890806366503564210280142452457929047112757044945598279706565308690608204408941787623171773831741889817777268890098411680283370932543764661132265280790331124340956286358967296984887837184520243183281909748204497985231983924756501294065291033835496311002463385553342953920139967293592180340746682686464796776256049254458564144954188215945252057644514550120975331731908528036409003372673626967085957268373176898242229698815421525005971370179102320772398061816039835955981233872501612206209879542968894687394432993937979823915145605308283531021322845250049366267169152784296763640294030617571668564915679520348409955422846579318559407641648410956103465059915110833195763964477994549077682267083107554895107001088688041999081542267254147922292637418912811902506463454780808983078297596369823092114176065757841218200881999434158007924499386582984374138356643668607046992791799757555834738594210687938159213485522346201752063565721289633398014674348125791928475485728411329479845203334818179602442367424415919804844948164650214958517642846306323597002558430355305318133016932903172759525898774711920573698035175027002706494876063500484275446503011451176873545646199697874023173193831047317975771759668637080645034279835812427239892297091379120071224633466250321947287188047619174529801571370483574954640706663944251157312190833488692798259214853385441712557668488959081248224864386537752702407430481023576703390141025511235954721661179267392190927760883860309470182360739458526613344862423234892910246662023385120023990252384661169334023119259617048206512290133939273375264019271024949590663009991541810987862572741945287100720823238804965114323342954953112291665373605083713781840525144237075578345934236762423492402392263286331072352702219036964601716280724299154356879486671125542800644491793388636179084958273165991589140229604754429407940424654546154705793901595760436083283418666204191428566158218237397821528792817340607461582040380380464081530311352398424912681458685415885451665407921528563551776239170251668767839428688592202241315792384399012284037575675653544900733846798200098977770669717376394789351492629169040604792014672677538410252976139895269954447433185162248975900459690206892695205550116799413570542061002461967927222021608560422415063623514818709244583019021583321624070900073392243473787348561756202118431542820526637863422789305085770423594658227182266800048436223521879417174315942262155462166814327658779761877785662836080298783730111424990352523375336761309734163295068606264097878945007933493965464774107596429978341909659798650610363356756619687477166065561280695841324971294215426086758044935188206573297745171748634010451789630077798780355493026115310645214122519901456004517972294338237929321080421726873209795965930420987975692923966538265370920666936972107659677751064388584673526830138456938703452764915236528285721854037917112842899537501885609308715072649800056783061960420363465851039873407862994208483029947459974755632948048566608603195707204673110009104267684600741406771580104572565866596786370417011726618436267482661210135060340188078346429347089108591857479243049983275393918216445563460893311671216202030440342019806139980092805504118330345607121767972375848653722408412553798071841427141143777284385048879570784783701020564612930685950796545355776939592249191494836642496056019848713666190848557351530749305414781251716017572607104927934654595645353047332367169166932140874936713649621458739209892215525774364333761377075070818534004075809686716419300150863942248668022914830345629014503389407906994898152922418568880124193466354069086419942147733921947970122188388140914201308612693527833315624772936773058547524395402615600983097475629748405053049417142420223317994755580856373454994838280010186973152039259217804868684148969083960680737755606631371173743296512407364235618650252625814293329706568160316756190443663824332483348529051182880238245074665271540030608407649814246851523641534324537510884204745645329659947742572193724991136263078048271804473048236017637466632133504656879396707616063829894730753537589227032068134249116958710080566823185758186768974627265319505740048858227348337831130304232690748684481178780552767958091309577522364815148699697478979828308488998619389861315067069752737847358911530724601992445434681884871215216632590797132527442213418332498522169731783579541564019541099579079342308723461087317301468284604609432912196856618756435090232440769218912585218835696748257175797715555193990209072141056185021610226759438797335892005833482204925527896903347231317485375047561680807408217481137559096262625577119991110438903947268256572251092580421703738999662182812312447836565514545650922340319190722173762469705430470633709740684522344611251293873700689075232193298944274727302328927709118941068065211244527806636943257185789511276883588736316257030836862120559993354517811690415050754844897610135186541760426782617370326281131076302908868727567986841260994485749773259681163903966798189553800887558733569922234852164895729513047672175128997101135693224143895670784071756319311515249826097140246102480838348433486835289697652164322833976077590654429235635369663649218009599453241573803273711069131294719929315268989718486904301489679072615442334446325008712721242079748291534335907927400893992911090262382917303700643394160090177185447408890287748512766707722597757740212276358121754754656012100299597535010829965395503940299435467154412497748581920487760073340201175335243622397776455165967442032334616074702570319481236080501033906130864403331323750409409561275996456586913863950295840388819040475923463548353320191727312370167359635629856561279590923984287384486725678995296157436339193640413770392301328709751976732455579746886405355838982339412996591346395798311992208752546235380592467765206868266889474931027391745655930687945788109089151990208371309294319059756916047440742198174076930906435430851829801746196799147252021359291057036688582595894216227651671225110392082414084893961993954999926162016875146669371004430221281883852786483184438049803441416734292628623344785735088819950148739074170347770544824108500625411594063045217639828457666565990740293365781721694655717128005966729395290254472244061387631389443191380505588880901338996949458367022130042958340531788772440942198220011829083705726501150415550087728008795281337635509958150671838105057119864328409687140821828665022976142966394746981344380272712848713239429575469999398914546586844663826422074183384114700707731225036802526358400610327735004838946049626235233471124415469095298482837245394441903821671898797197223606261209094068398967465593264346597502540839685953652560832681935344058165736182558023577484263885877135250141397756550377621588468023493214723915834837960325026554544366212339845532682772163329883413154182397780599970468678099959178400356342046665916371897397059573439310950932815656538365243708524370468463157130009985684633714080165608777850107275744629525594118803248768906088793093222802702045059082169502817935096480135515732357248443877414395396874440812679020832613320940024267504678821510980145143082128046941736619264935968895835407994662773297861036881018668168598333158810181664370194780524823069032262730825396257253277386461185379248478937884453179351823526020365678775636948816266192898954271289658414674890507200816756314015556341147363285239039493800426636980553924516579918903047606310127526068079649216526792029435247124449744015555506452765842587953551166989948181269043145771088431113433410678871653971039692341351481046444786877581984431234731507312564568446974146263720030054649544921803892845737614868117414813218016899401255683126825093822823282312894276722138086828396415923224849815861424782119082266390998719151399827699525541098787283486274811827116948441372014870176999218581148598836139768642794631713291457987377056095429900550056228064719025467509527259097142937654152610505328735256619091426991143141920662882112786928750559352552600808772451229798500532928091963926178085678847534111334021918833194735880208413498730770647652666691150977864031913530943415279849559014405345047356321577935774431427889049060126229641812127928370382751467637943771367452880818677183664841993559225936352786176512037961198594611727344153935105684085472202992164421190291782365701556031121149801803711668129097062519187636694527311557727922810892978532706316046932886200502168405947253368992111750831834116245466643172823455450342460855510335544207433199313773408493968689888304093538799278090275714640017153506752314378100609439158042012127406506591701261430637081941415921256764986955765167657917907787654831342063595324028876769838671046765890768268800707075540011091348983571511811159006518669976137613608392455693712411354676482217004943761181608606873067861852737721742892118864830778794730659531714532211221072205598212789725952124761322844234780902713328553432107848593699176154628764948822047340535388193628983318546091250974493197210899505829307131214996150444447270164838684414892682355693399911114150402142638545449017775373692885757049840783920707441331740476992652003601393519552729048326039478151017613936915298172532684354336157764030627452184086571991786925731364261204124240497929320824590634776449195783480465511740333171347988596337817547873467649277061474237100985695251699238083091201776857150938339830667168718231237397082619302863411851377304038372135329836912370802156650859060366171499093804453675088456079692800220427074498315515882744621023523278711982128411897433140913359616753773738471019021177758575120280386714117913951658987959344497995769605732192724642554337538208548093899866564771385866357597497367720293678726228520810088704879118281328954175931385295231838389465125749876567220195001610197601887947942590238960634794985838729717916709619126185927643956944925341536377055717204598567179310045784445241387037524658318568496911276822887301686008536523941382531106799988488898594898790809059970743876385395776065353778850529609461161357196279403563385786382537774144020137505765721144542513398832703682734788774482495987714086063138273650925588692090325356698954290805855593902074519317442777704039021571147631486280614554409446974483248858907192673114879738237806706840004049269327901515712929660576603626271544452291486358084024158705329375030409178936306283724953258835192873635210277309839806391650305322089066689795369970897711313901523358506853831495104137491662718618843092272457706637631600257899126776778725951894502815514714175627261687450409017552958835813625373260312409925133938372087216955304043687135509802573483469414647729580684352773547687238378155051175915628810644172156405320446379308338978074634059809609747506035647233081197104768432930458164296859352575466137160958352553711889648455035653095772698555445916088283521944269356190472838348484998679109587315799129827884798797579129493423383383218672871412785411351767779791424309762980884494006377260844428971056534304079243334118864923916206544411639729275261112467826278509350860999081228419815596936560057659020589330334225864545261667992218742041096443947907512906231912152605209166748298570362374167883794221247710231247043408359167320835849080040374510516987000060181521307091928112591746599638136177950773316183118480630223653681364922019380803838476192529191672688838848704712948751288891575936178808689332853781605499116383743703081950452900282315331641474650523278176698510506414810551818603221698086315281293694474357698203771134859163842143806403301318190138594565680034574806992288235193058176037094515494297530714110585164711000755137711406877378819304702961302245994353999463422486703248362423017560200100174345195270152000587687499735569983898378298506764464043148622880706416246946846937136611603251272654991816070256657060991260260738157643800849733219177130668338468469575660507146292130915596543338771396189633500673034619533167253358216768341210529885167294686287182421186731802046990611718477558863004091363135442446811881862686145237696306793108564466035813359645186585493265296672637158099026263195597704115322721402926978209723334826597233556925822416092713463585151773012474527205880063783945809790649793791039232738210322857692927965812927426281411780597450901446551316377458041728890806955173394484867230329195896865539457773836542727148422901899435315090033423139260296469449656461646833615370565478780486515848280451183574655222653549630775741213489812673330863379647749088754044755459186301580556490867063363800183462578587496596904711282485060498108166105296389445442768580159061814839941936655794758404154679322651073979096838243178359563978234346944116678506758496266586144953806140892878633890516517220621889437911186313610128934926023122398301843017742261143165830601252254225225480070703218543582591437112775132765291636762942718760025071951438090632871304971868081260661022010918669314155649129844041282416906175838184172276086042222379739423293936853675080086581505908349960714589452064825782852393563509256437535539050030079442748654497347608957358311902586442721094792763234592001132208804599058883536068927142893824366435616761677606523193935474652259596141894937749975268716274553158064942242013289020444736516356474828798744808271976364968651770145106171561455194245259490769972663481350802401298617206717680583640871880110988057442991935507642938313307146419528987395419120258156921213623883457769906609341009697005380342025418135460175295919208281533268295303340303364462517630254480204063681796217777156677828087055717018283412689469076041561063027766704504671751449973433549995723738721140694863128221785465044174612803985546107424263242987780981441717307195730740222371257241876952283767087951782919141559846706227766731981262543568754203268327279294428617297190032427125749549492916027920202096295962128507191698697636357373776180134360683379753020530181320462144168551621737974009003264786268347899216790601135980304624486471074011233110919732570069077841770954846082292815846814954938591473795253291244404186866502364786163392370925828640965686814639557172284498832724682445716044338324202504634873892784856987686525857875649698240169603207171553743476218830171287923109603910341114298438200238705237343420265694850142500060152518289659513119198805110728554272404031385863430069374103079332735975159517658778341477330346865464264371404190446547758572155855802859842624011147676245500516818956988251673390828368013295480995865162780115652335841443158717828761351045140081344411428182685247686018831779878461496647464943646197858866664470314462510921758733692694211809663763320898278420044689655301223396392539727708846636006275037482150966482683217421046021932265045204244409780053178739091678775877391209047404723279584776934291117490135478309054817788483311240136947119312522880977742186036270469353834274773663650585803808865628617317167786683690597767888873815851006824055193188235021516292760133700236786213946955669257694232690597953819738885547118858028910007661248962830673316657591921909233494218236648134490590948668114203890951891632291762858128084930659681635298981691312211421837511863807363715796732947333790138074801366425765754523898527204842083510330344108602198362790366670415769971255655727646775955244558386940000470943465516918399721440200872996002164550112853103822528073672946097835989605265836119937143511868072905506365807335681398256710082107055413855101036021884768250031402987788036188473174504569472730328329040709978277419714914942737816198436107705053501840108020935556672761889870897852800027769152870145500334987822555026434132176013377000946427001334962557139747353986688223265828052783256006952048246648560445078564724517350220288620945988983736308409164168152723563059457644907478492054559162947961100863146570574196339739096284896339453953847175239085297634453322318236657603208011972592469135165735371584681898554027501243576708445349928302198367589145383813791888153718513311717686878940389350836637363331826940332500846132798259319337118175655389808099497598808811982387879977818403962278613339276637377584462018891026226425743704004902420303951708333033197773224575723624870193028800245854851748993020730052444706927544586112609696739712768494306193946160109598805509749270878994353365192656902458043526503629760125721846685837986011775220606962973542901996116210677822295565242791497153013040115980915347548300704981013335707236813643455930798295390217408111942691918696197477263973145610814871054671830059263489236233871925466952779807095629996230007677095142630337417183596249669342897098533730038164853521207244328345264416335721559197340992807575208786520351103763758583458459620327741237473097232268464886776076305232164723037355504242374338777520254675293159872692097267129655897901227760311295320444729887359459303920302254435635395117719034508363208121173338186261136439461093772230089167561858030516322375170588738030131508679429687041717286785305146838148431789972655459163099171180825352473883132459421136038847826643559823577318662511977259246306011953043123027483595874380310882250182290217894491669380588078744385710972024938493157169603288292019664364682479362685095505321757744989236799467776255829062813761861439361707552836432571832850471380626751520708290854493146666906037424470816900661368464469488128695395087102942962819844988587542771301286711768923900460546741454641250995471072909912447868686508869430477147771864276357607041380612225339449729668959242411936958782588255304109618769560769158022943365190276472966703776821276764757054639745115490262297413481253401460412976399782025904804833722569139324755598647035324530150974585573621742942072760738768977111619571766350787922029207525537598733507901626155525242234267305399714611004627211592693691396815167017147689103638245175198593771945528557301909649467912594085134636319902285005701532822944563138210287179266617521693608124660080816316019022114909257274286446835465067868661463189857476212706163412795611321647159857545519426418472459458204644335749524360017248102021793521134813801668176324687570839133713563671452596860617599787437175218069941949486729169176713583457919718917006025347898022792117635704301690065441761329912994957544173742244143461193519768470001526239536942014857287219044255933189840245120260426270088245132704951942150824424264708230078072153315841777718838349826393198838024366214620950655109493615114427783302884565785548038412906247777069294874909694548699724057663591275513772658790922481621961205218324946882750331700022937759714033078683213181959646267355788010108342748556669658713336570512523131343008123199134389772842975518679694029520206436931923057395433944473320448000574073393517216170965045682564935648272406218510236807777741002939466568184607281174494801849807076324022762375585000048905517873725023716285640263970207485366624758296455551523490313097687061753025540552164412640394983963885461364950849636875282471879500789684263263760408703221455915193221677819755633161511546519665827026385731621628684649994435222166264849518363638719599299314619214785481524424744304103483668987340254490013539863450685189338923371117066597704492820291401951784124058726658666618228974612712915085259569369119738485256044444709577747298445059281570551082225816760945090434134384479268082150204998273595186772735766605215770359980274917061150067822132937843064890409980270949780487529631307778399759078187012274705693945243632987436680710873591301830940833600771272922649059430000066330807069140400593631534991566760379862582910701921363884132574535407396099890605282074873219933915617134019890322677131031273949684443333654602435421959774992434429395078793213714719142293808186495889144660218254333334092416931401016055802937778982695124433511707649384890883129712090466913395141998241897278426399963920215537476452235909158878532703518313497381286419837054087897971655347681006428474315097715337293772286497520970648072203794086470500663872149144612168906023485900754663478979197581365002233111763040227613393737745664425664338822736461071995434138821598381320105098843571086838266513821580140256907106490740143455126867735581715996310442618935938582123290452201665166024897286571850286989165427746049659055456873004381914164776253664575525347913142792824851811378343712957831181007148065310021420715894445092932375191546271309974090425694931586736691161689019452484017872233848023327206335773446802502451069574584826695050972981062350588996209630854817835992352595890994158809152303057608188920742817133544082419412701268634761211432948568314519902485256157430964125963987680893462103893274603720578302510013419181345827930808287910017312522435968558126932248963460071263011930301227562066436021339255434654423836612924046289701200353465900272870519317895752826382766788818129667414291059436770262467953713566161232218301027843646538724623764082116800277946761525392141883404131218871168524513780946005376117637544677636794219829165172838130868790823608550770123098749256814876534506935087146396574230195683762476463446697240667282539326838597434891379642895202122618825592364079354926854993476289340150527725152349816761937452947623710238777978892683541423519541373501837806541400943513406854857511418908628404519475178816633097498296428725012885025725257788886515863287971556756609931953222497453272337760172561574003640946589946994309331556170574607351655566785182759935694045824117646684829270596797858111038361036072946072426652176634205626755983559826896204195158285348485634168520924453996700656321713042622683376056126489445775542422292924591295124653870924806175782146481080548278943210326645743009981360022236210977184432562336394925103952772593045724536787262443988754981003392612002080780696615448042349141205995821782304896103128327686212282358653971609267915025811096310096196361583257611299579470638797010427109417449103542542248360006354615961453944309895690166991323130912728695795840880896980533000595902671497684486251331552003420827400024457735232538735321443349296092544433582932855817209809032728379585384348327821860714356981168817087036084093293916343947003881765340746499543225657856305054002232365039869066246013457223327197189238670729929338312441230845838678725231644410946797196188367373872171872145276328174138618480940977317623422387669595707344383763672987322183148231128725379959050357170011556838423765924899229389860441050955851329665458177896588527026402097427723285253305604042724924009422500960681003703284029842883067894186701424858707091940024449524390261440827372956554248611880211867818799491246620036872148372567110897249346039981451813863257078192971744610258146025459822640118313597672149908285030444985254618316630223064474406088640521137751201689030261354268433085154830136298783176524271497653388500954274865410183661056643525152122543347721357587546139388207907979324174557584206515815799846392338858815250092087561121927980794280015016371784968959709282791071904798727043797275695388445860441621218520213001252804119000703691690005951801980597656819253520467899887116100976976567240231717187500406202352763884961685682025697039180768750134094032538295665626670035627850300495933936817658677900710667792996060898074547206166364079259150034968471329708827527518692455887869046127502878530185567788553794287675338434500138245549759371603043578299540018702173385045400873677036618811950599535127434710258302833087429693160154351574233712963956155759320121965123273942587169697463506995193464666224419320196052443049328583576289221873733881705202325803106051059082860590714525443871592390819551532925492685672116473823525663125710910764627073549351730808741345796350720929265613438642254150537769487889470946310453172695571846706265101264022259502229569977302216149488752391637299147045847736556193135598594328688290956386556077376616220841330107870218854863387239389852610622538453627935564652088171736895708930083396178782736084527117713155474993317942456956241202787690083381878455671529691881482046728508730974838371532670262226728964978745441973749614761698480168084184631351451378357059451973653772343083896225384910350377549098817242947612216197230161562266143706606595767200908444850174658714758957143474163630386420478125159451993337045877170525362747351117804552114764168272286219008742459787034128537739235481917414449579784727785726984827055182262572499163280639774367470195750061316137327529668613301613883621065361486888283750967243063730332913724343615247914903648148007813678659922333828976236157326238142531648718684565037580135226146860771728884840031670318181888220731897658181224581617559078018910563491599106886788808764322361269707202470011271492774981831076056620097058616073736344179777336144719630642624176507907905143658726930152089419264805585778926157707932153472851296543924570825081505939573496529115850068275802674323734828159326110853374779624887337282979776911761237114743673156829755723103996348655236700252946396877310388138120833934409403353150483101716243410058119887133729839659549159582456262499521885611964269138188282358366952071416981322154814586350264808101342802720381345469590423834058245908028172727490628824930808072100382634896364462149315959612766007721333005014599236568779856474248706021234698298984106762392884221275916626738856044625671486740449982920586908709978385692503951134783462736584315273794750654291413767723159459766614848720123505362718389281283752422919623997569851221838861460998014121546137379736481382762763848178183715387616679684502155780583405572612747267512252739538072410712506867551536141919979304641456910073970512008978044344238296441665851252496932769867594195933775911356001535598322086779249966539456471433439767068503770088710249006299067049798249630485173663357354336827950958769923349445483290860615913415181635484672537669346611212350326298724704457018638421579850209452455798054325150287008480261540223563592386813010613798998034466836577337026976142748405639648288582125644648937082414704748286134263975546441383715219889110785640174350089627668619725842699528944093029516403302447162509187676262322553750704625494142968376625210734473394246319896806817335570204964899577440748074865319583743359327211217885243055947503725657258524197947810135114492238237446287897017569090373869483870616259818319256062999207524537399699498006605126806083904531247603320732367976390676068363637913796783767272989335797031859471517139805285142912087124607398233108303254730580958406911523980197346568177009841445749003581018001589586978494567905090310786128705395557311772039260503541546032792166227610314692880042191210165314923873592124875983811650765799361128934161449858325177899228138469124700061901667294452692900879002780118185261090331329133632750289933841155887367897155317280842804925003120582609834183915456766078156972802572036648375265572283660131742248036525571159438476539110367840083466852629830408258156150943848310802279350812897738167943200427787175698816527646371520677106656836762679543346128522505177870280439895945130292541159923378099712954131022208425363871306743888352169611531137079657187277536456673180212392932353683061769833678798795836774582224141615704535916289413135737787457954190519424242502978496793511168478566598551882728535326269724941300222811632057154475097294446874338430532629963734701857440069585195023498416132135890151692139410872367697456358051042635962584895537260948475110970062898510420719116925267494763007019711937150317546450117013301875690466447498814359314967821238249708557586360624246173390945819739109929183100004042544547900974789583637498229667012640656772665442674103408710681079704982379554968678123460355872731629358145343738867573010440310665681623472867275702391184833632794126744336887780166480237329480089585036065122173171599360909182892342230710748848746893230153101414454118400242668301932240765704042619788763719306005892592860818468263571284586710796302530989746216074812833955569372803718133051882304819418485256072209265759829256744547232099313581760095083084977501029785828915402751929806528378506586848639687656340817987315374854098488953692772169465373537564002413637501374646131642113867642794289663590385468849037689043201044477519946368542113827287713602014741472646989326912625374203841643100326258077937311121760370923104425461088325329890950258694403031235459690321774660688599128609146121544957990538981819844976738553019523375549602130006870499196955214291993984293633737832149976956483557113275602835901353006901214361241558979753562304159757560770619639345001804026258536369838614204203048788765541163772135667336400034041670356685691387341095227939297400868182973245503191374929017012346240693300096771087609408432573331745787679624601674385987564784588565030170966550927110878105707568656346144152207496579017960710693524240383023619375983551802695773741913832043203701947652553216745510673134725981595820506028819635851995214729386261035799371618983108205580914952338185340929200741756065518635633718182830217123080132082202426166399771731210901751558894908113629746832340308249504356763108011319958607084793783446502294318253775012470932537655903143551654321037166830098175555556105750085983483515157787310264215954767228550990545478884399727361111195362214384989626127265556586940302539286577021121139105826136535129790189369122761221221735996902236573377048577662501850543422821627664294134027185085704613630728823720999284142366357656940105339262147706326849970757017953966401690280066646006700903169591031274394931545191501299363202923536424361834784726917742062413574517156276620191019800006139895110267518828462689441523481493110457775126235166260660318199288386673058739259685819852385776090181284784613437564903656188899827277481003123804434392608724684688300077365136173774469896456342074668622356724115149719465934843074693702099680736445616748482625888049586754251797132039217996083994066622328861506148982517740245497122978707756821238665411339773261491894716682078689704896111315429213277558349064301997088885690340738162397413465758612521670866006546572225922864585798070003632287097230640836316523059512630707134901465308294287149942857870865210755340534350464068330500416099035018470086560849013506926565682718500744365289419303679952138379219492366786875863327214201378491362738055076568889739721082502122837528140646878666077193110132484899862741681632151411146318331720661986570312106438523508308963473541934706999528727619031312101243710283118991991431215565335327870620676805957634442399612723535177244721037859704873385297629462349344084225749158015074618687481154283293676619642235997066061673667729829044882118327823915830465694305314450017244661811588185573064180905314806549073135853855217058479074723710508282627408461050008820496598296633189235751720005256540747925711929942559945527842353436900601431195693049581144373806014876230323557644509212596551365301747885007235777810774728093479476959993307609477424821225774551739607908880810552729755168404748430143297848526142337396925723190992419353806533878540334478402961831864893929355296015058710260155620281671285676217197733264301443665182182450013918244783225218194461214977573736093373778109138330887234185190926616993106953487003098829843372980120769705172578621428752404476449097115693648810198631072802124739495532809561079911448351725631939994253214846028188776666001166183031679454005825354167358632868926705056822204494438761426937170747421475418670159628532790984944585368155139843882600581997341104473063396638669272137933067670263906650357531400424252203426582434974812028242829898955456301342114091534688556807841684359694012377173376042078467067844917771849194464871691831096492081492827747168606239643753239740846362991004588355536351748245319029273822196798780732905724093882028110513376998813000442563967806770360172356444211987582335540617956849193176691467268270593819874196830612458835330839339953530184899652242977960250019363325756916984689006622224173630094268248739271960564745198682122777525811414770044416675747580204485340265987611559570221075511110941476918767987202917630436571215319593199590524753658200884126639001969647194111937964635226459447517341415115537910044704900221937002059328771446039075262703960628886631198678405174448823785947573133403032820907976022965674234585336081105556553345046332131390057598075208601152592628320048668871970448713527858287415001635464894804789025873453327695518583116366597038831246375373385995873397438227267034673261697172294109390202921315953569483592592265679860360455598320678304345263983341908487348139013847568441899107295322776618157941671267683808340693685277920540947085419243426587158290016591638019953502988487063729845649526937769252341077530009299653954411134295927432913191822502387206687986522939277656401885641254944104907614138003151113966646176939947813742681181552775625003728673548599387060313352310502371524283761342665860534717806974401497256600487373575891815619932523150584218708263812963056904906329600344730745120276507911186281834047771387282031758477200190194073831004868311587600836347907852666400505940874125199700771841635966791042693049036578363138478509066814332645119760843688950209767474716044083433458874835249153631209689060887385519609620445276477011796680836837618933071015491220551541573498664420911522976604999681777862730139923046157565305509106285799894022385198570990330426501481959466071745199770685129592380971901258599228746758555252737906973775984390108443604739632943174741378108563338948075254128064778753326486075283913584074516639959217309431864395195982379470503871228363032229322761202051667558143353029405940186941983012614942915780095857944573289010379541198699651834660459804016079835567827022301596537037606272601031003357968314533779735579901895832591327334359000143332192644051256510601035718788508008121753675735059355027797990532874153440862968859669442190531407464427011234242604224111492397266238148540533882635855677454129852145245351646200335776797575145923713472362770845938888840200591365975465989085317325240175397886141621583580497670329264690755102133314483185754344131562884764077799680533901199771451498870573269490242909812836674496404334580465753492024721101800064805741193817685771361391780208309104338067584390309229516725212322073740266918872738890263827251137020142049261927780103316486585430908578964827634312269186609945884605933161281692355693662875793378785946777440560540941440667062113987497348229971979971336406546571590183076622426556741084405159151935129992866662657509462433668426651004517811407737770296334540388420648778714608606395881641934426507667979858119167132963645143689392775164550574380828894838152764932477932485108868468923436988917665365987507883899155401739120378998253640329248160548247034036283953189760807752043733601946079410488254197664325322322449983822448216271905829260583121389396556204481426396496497381594387461690446354297072847837780536417017253703998490626991408176448630999502638356686978469904203825346314763435054864136578637748716855192780272020788246851707950193507872036891142438417545591096472306201573802344998833127300476015622355147245288102321006870671252573019747865616540371986880729291111214552749023259820708471328663190144068808744053648549399472962255760304325308131698818096413402885429287006953428326028213719007393730569560103565283127591556198702190421894368909174676291519488774619683839308133400541834042564634612050113766673616198635139920071683562896090009887288318077689590317147785196379406594145319672226254974568175401543992885893722781109289280995636256523515989731986146002317688894589560967501997718056406125865691218345771730784519714521459648459617250119142242124244043791896903825206478871275872662478071264304379729355484447602461508017180358074660718926434007615965209701487250534461541712331947169073049445912075221647842397061552299243953020654150828181213443656796834429797223066920990825721161540807785115670007194559543825314567880715020639554384743041913992049857358069534806607026208196101473804178425871214695122276396870425585489720894324619810075381617326656010244500775980554922557905314170583794853341316854049890420997157176502125283922211107989847068535783221808679112576872737151596454164549825234666348316414863597380895995097399684929021399019147795118565697333147482868540394763993478813073067301077954934131264154984945481973773716627388436321978860831896473016150042877720104481575825624323517197809049409112984054125570904140109159648518233095399163811699368134611993130320939276669178001942140303344031316897349899294921075839918867019540497860776591362798782761000591431029827780784185111806105004110034638543185379265507414600136549386915507447844806162955786514010736528357557458722041715499284374279469663376581385756235249751984118003532638670475727035558006651404156519198371532097518491803312653269281931803694287259313256469750912171608030740437357085494059874949808509794615951322560544685688606202939846814381928964145298119893717237790484395649649096285040728324954360058317478848719769495322879755159925128157335629915560593466979581963229424158068966580727238585106799811594829538910131887431697232762374803570742950346275597880047148054896696482670949951772235223700186681536807255086529831731485300767965871401984499593830568590197245563794069184010042647808459209518258514272447436580819478710435647178292246677230719273032786471387283205154981258466428347307679596208015965652732819787355630115366035708218599095763237202765595542178847159744012679109038369191822014824292959791909941931549442112581318068861462385230551800660720087802634396418378286269542395824500381920393324991159826673075474507033550354810488157107341593030995828655074246184119531741730070461555872579603324144440709029706014578817404803162915402104592481024114785419000058668456762856978180754211117694576123179887091886082609848663070623782932318553246851844024205840241358956443133829048027647786947148883530210657280677461438935866747018926247529098313597926518703615284576919475731405059336958940233928057521164238559850663291464836766876923259285218125431221872805162844128321529904593351267921942176883277726329041243516075647529609098505259045215970543467263885660130783951162499571673602974205926250047167583085725137078403693525550148352237061787954673004182530214422265799706264757689892455084776045605124782461432093724499087161322387963937027880988583495998463621610597193766615991257561660445279270295455123340098346280698338478930426706727741787378809943025379589798322407198843355678231085453659608500683816586039008321657998686207077867415218541619184202545770454915571566063439564112513103644173019012454591752469136313667663523240992919599776889903602333391100221520073286181753177158977465240207521189639875133849468336560056760509679619239549232932654318537560898789019339715560617421155171775470513616755031493935044537465406660888150924609590329725785496954209746898217088917303000951702921527362187659704912769713351648362395321329334712666467036660220353905612363964750713381410301732454267117757539761673215409477416614168659249704718714431403506498829992321026251083419730039820463160586861953997120966332034308203835408677837993119555965043118898283135301160779982380714823339747347356063772751185636337699185817044800960071115411746789154959663899299620195281114958338584315022758042553911753239042723672014714985835337461984683916065299347964066925498071983594649495930425015391698909461471629587912526654061499026385651959477232083978118148341833283498655826306995518286669622869224316835491964649607753766286224443292796273577914081752486921636065892283295271992349334496878838710386680323295565618995777594181335524188334964396901095601467091367477448574790381875190784555255138827147642216306417565773004255313587186457657467861617451749988749267246339116720788656019397680856225809958035276302448100632487719733460177161298359708571349039458038744925183156944714131835701377865026277884166848756874486760738191214246307048048947357900063277693318854961373909376280026094759133003537998199840337630692026831193923669463987396454020589922777911621831786088237782783055654244625311446152693915601594264161175126449855436786249047124106088377074611960143245649209095026172104055534791848750012367240993061151906351520288155554908491669333260075296150485496596928328716256984632162684355645206404994778296100346946424764736420902609677864205191045168374230031078152230575906080366153967279060516202106118472474232666625098204772566712062539654296887068446921218071159025398902922522815456544695304060857030560374082234641800461778284832652121928982033031579206879571784437269044968778505986109977246454428039172261183838240039081014871652276292807444486878753896303633683350932315324095983507037186183724935060297833243663471048641205005762265901855297424868515911896432525445054129393505490011149181551705783151070993376750931507982502318445202250707171584198677454425868883182194487192954209602698037174653729896858294758712045863880887844688416163108021470290400170911551921640479618860335114026671375104169657424500741733259599840106742074225726652196195166015525186743884857406087801101002129377540783629346561581527847718324981642561699856873912377258395368259623142643186797723911444727251907816983921219459064203707516237062876516412502267743264673636565535524912841623077955558307132866156964259283302214667458135027099991677365300261625044288499924014053949605129473253474943196386508687576122234862925926192345476006918846033560971885059965982602215789102102658962054140381918384447324343712731212942313452376748483098526480545774228385839237450521286766594571015736148370543598083186071547208784720376775741814151552180700621453126818654701977461029959848469726606015255394214645330095981425414023006481677628859983977188793208908019543158787122591284270737124821707084953432583687034501749330460689308863051875780368525354352854511378083144867580262612658162385635351539342892279172488527790532666567661081203847296611989313964845102455365014731030894973897660785810421320412005233207032929684847243486157532597835866001191184949742964208376225598152067391874107515638889658290238812233673431364999310063927446674877829817899975841997027703144775187195064353893587184077115418807662733582293412386425728118460646934828021571353771740552299531415207921891989534327528564759219933903350620040998735584553864856242176276625162522593662031894870794614893955244661457405851552616309540235988885347097551148382203053607600233369695785000192496067912920222265919722056841862200190766400085566596274684291140567784008820724592723574828507981751797518251874266184822929922913492837836247292298134558589131650671399768238895500758008186564052948295391698226660427221374588712858669018283613919132905335733338014179839352277482753755398251235692412568308188101055411795306951437885972922849980410438212839269603117539542872931793202823347022395935817537042968000083719560931463952367043638352269149047979231279515025558167704528923633215535382159069231468764433849537449631765918150493888419465446727816906963414604398037658907049156184696207473430325166058878821679688032319889179748453374275774918553966712689397163851311050391813502622739651115434719166544854659402608899017564329549855438867964321884061924207269808536950152682337068054666435896962580282718846408797773209659636396967751308477384475048316390810241258709767518582826599728940614412542510954315011234619182625841838531698405128636506471505771889055411932290178263794169092976310684025998899476570424511035065211780703481634680716570906788238887609294448464633120537844352092658155356840934505120040908058641101293832171741657820308741391440744016178085696620679930479087977169844288729168755906567817388454885495008248320441193150416238516481586242192983879157505940914100246744704755674902387267633422143471758983880309515272095840370782267618039261132715579361123424655157597751166021204663060053501389789952783172040040931218281793636900020393443968238348335815451123218445539576748024722163573776791203769556533977519688240356424439913395811865185464542016408292135383699086265806110374503375240745561402547241868297640665469071512818009181886054974435342432957728439640633341807452532486609164032882813803638005298398399964637081189360156918047119225357896336586593680227255504195684970254407515224105495221941255236039661163891473177139139652285501089846785795840988651484971855587338268841683374633062828177300443465510170214757771711245110427827252407240547419969640867501406824906329214154051597174227702311823617780069967598696734677061355008034290958612656184465705547567464778430330378127237641406025600715977916914832095088064400359094165589124918352044243264197551047343490304221249367600347316642299842778371406005591748697521434070618240661378077919602850814588703564515998781353886887169820646539536080048928122855239207392754857068901537035732777056962284050046833359551684511168415165338449832142469255235876470425786687063747657915718103957998018138638101936454047496733978644392822138884125025543099775192809451821711402606769094211500750660739851262642576132773699627412480259574602534085282319727945781427310075025764627484030918779092994653964543563252206802873527927378767421479062020721188192563403899855725939070287201677378418619926680617941605198467002814925978634691687779776655662929656077603914436881300802340795098871811881345747229745505272036466031103132543589709747960430357190317210215177687199085326904358700771264207878775096953481312587058332303522231059954316069778209122370847728935984870302420073666874451220762068569600097313169553778592593575684793166145109055201998171973417168448579291901837933766858920614890074221836749364256603388879131893825083616497447926614637634068304493420463968227461350467955105430727521364143651990129250084507903881293955856882644815211521356095332193021116643215607647436263474899700274156175926049169433128313429552129977805786635504628542703541776811694805096130189381624423493418327223754176292075279229941627366068753160710500061130014222467999718038817249635845035986465586972754695956418795862681702968720734770816421948275384244047232397906280345012349502391700843037043976704794037613969133544170984032351110287421567420603288217813523282035317255929890810331581768444984489695660303992390132979432612136332236717926900193179311467715296746805557301976362665024192181645591125046324103544472874314907293473148282800925780808483465699813872877241436522063553334515362144066550628164670728726921748940746009893542323462623130479014809381887566122803073556980942064469751255055637634258838445175615990442704378877932299547575270505210912031238994075952466330361685734328593383034840257753598702398811749857464811557939404179995257669459559429740795403462887986432757055538991391268759425927404245532687083893483098155386659178506428445458659964445506845170992480140482136936147060797702972699855421107963151544427624304172625474177083942463811610053189923207446088248568298954628904295762075788644560470980030433949834053943114224519020124705688030475112424588717917591588862228959971686144971816599713238364081620292330541985678424284307662645386053831448794421408606779619121023299816112031204827604966264364141748131850044614268789402651360922196960176710082321300147073592007571746371362101260678898022647436215268545784045235981024650860373433950351276322517005697629007536070358619963747458995123541528353113967425367457695122248353900049439354080635740520768612099340561070597602205026883806716111976012156707762209316589562876184872622621477829045785622858263255980881858255719665870816960491858374173232867863697465648833759988388332657612309430996299324566778854594507267745862884479751763558071745497549117347289923018237635774714783749200412877870607150713471793830382708762263237851038351835059427592412850747697449110030767500228404724489505039761420511192612062508651536296961090390609447410515329269069496579182437262138922062306691463166126567102825165422576092385609865256030414422557201838481336397857575230085928486322340766969835236920358856129299964886735484971458555642347858258331508279961826294125153471316416284807861580927056672622978784627655338241119313041009816322749612217956042664248940407958940650133812005782990539513486219942004401655087922522627353092951012940491931978516714982202638593376839481256313028734887588348892063978916502101836516400849500302845657865591704101250513975850434617634815070081546920540626175600901218652438266633833004023882990347004815308095893137224392662978122135535343395308164220730158350504033870030531682765255722771017486228392034293855143461786236384079738101697350007036018844184921307830186522028142473483567331513712083139506145701104885951533417292095937344415462713410903989177796116515884065669808953217093192619744065139439818129276525591962588276446287934714015659810490110559954431572711069790113264438673317334128710516673364330357451464987468866200316649865830077414516162965646669635592604750182516656555112692506989649995501991111657542205155717639588589923155923840934457425723799015983335651804982062563457785404456411760439767319624388102450190002797417385011052911047154201633714862830993247169409267602037854778910314950584757460147025589998163289866541046258684400439035146227180067209957111451274946176368923272429972785058703918749028997101377446689949959809914027480591458171834551066839490898510142513498117993917767629102751831983691333290695555675971798272901665614443753444990087071579428085277755413643090833081891501743626864634181736283799209786694179828549512266198801032956295744385592294845744863836348859011973455267538626660611133533166715346129384637086130755395417613564964096210600545154550027833022969596535962500360293172676109924099986985069421856732659983470022754929956648075867881513381742138088064488785660078001760016234678262693681769307533719341162435923453367750552211488159375066414963165885787281481575472379250517497712227481402798261494941002852965739292704551155404666333269483624106961443539919598057985101334643843252855717278267232424741440844756708053251176038003199615426824443787200182555265589585262001185938801528310886326161422737104059331836302799978525021272927695974039601931475973132632374520778361991910007294051016186522359029532391763854552133935340574662838742331342316937919086398994178254409126072694899138398826923110758960731833308857991634479213225553146081431064705367898030020264354450304973431754724262989893491165317715424838965984778702279321810909802003564979130839351785590118767700851520772832498569168732567684729085647760760344003208561462092360133217060047598427425205549287234482827525288875001720483054508170928364975232467082447350649157227696490930570308300550592967539494865755839091019097082950843140545451493732869381811485329231525317055775862366360995521086326514458307496972093315534697050558864079743333149217287158151983067227313757085309431562332666720059088491848063432131736557826573107338349229448142748957110069521622115328848879339077031607406198237870080042230765118102091758564106578030186765144303739986918320451069495397035000829708677795324049357293805594200178642741196634418590141543056804198916154314022651614072365834503181676098069256140918623901358680772091545733161825031161718171486790916603742437019037914778883284873990596653802975048164286656077618792240468931137990072339292231629296291649004028396513896606236819267060742185924989066305537779232657508291509137775385049766245163007856114358193180941332640556999276760242368727006852828672135705021145635400222478251200981308951623273206620498650700052907090943224405288516918242195765393462497888653302228763607807729423498284167697932007797970913302184250444025300215671624752404177133811376713595076493065675059713487898540953858855281867254830441401181384439368610344876018443243481259565881652879137662416897313714132540494626861691845305414766198097869101447232964559689336143279927852233683226291784998510864837485613198288303102797910756205577702775255894580561303383455922858572107455581278454426747374310251171683125236597403037613897241830757590151235381307619694298934900056265911793503616061595716088869243611226574645696418536446703644472217837411920788530220291499248287035096805954763152221573502244289978612924460386938608979432159229879289106696737891565540405889089367353984891574066981060786505285330412528465418358363036733817077072194672376922539121040073853165312326408791670671735686117937483624676709567088333071031028100689389004968410987094571713626866415531939679393665661559274960301129683864939858234589002120070039042565413103712757338846513221095915741398333866746890198867973780622641754496844332759426283171620591982004382693272166833843579721434438007228143181956728971077291796070832006105581638059482277709459257260674772409494494513014218790297569655967391331496204495837772408808170544510774361272481759590893153942608393951051841738003009005532022672755771168602432587996969067342297540961589439303529563096606185063847150334005108866878958964988719656491737538210487558735530349397096671903159731723434205226113931048728478886427143615718215615897576725442691473050766156556864909972835044822112786966044097258451384774378927872011623830638304952221512808968614574827936560022644053342901568571407032748007866893992005710694932785471724445410064932631051607484014215455679544504726256950933366337817037007423990823222825721313668062327095187088556014165155543912679587699685227578030273501614487815181935657814151538351954107486373669674627285865730613997390994142522675847284255076198728144613215976060345230247690281015187529547761706931544399284453749380015707045325532866698873740698518566255443061148621658985489950306875664886162445397697848816454186992143064611044321408821227537307996279694624061765722242764195970146437358026003437658632411729750665531478095881901011914572758289732473538769259640558257727164000387878593853271054957541452377952080719001032630724280135522937031260302957166293670366265931297147775386991658621423449239156659768574915508336535015576999684783571641306216697371085797061749255595369502509985144148137005984809490405175944293282074491919709781878808768766930772699481133538589950819928371551771561321930485999569006317370953453467398615109378241270030768281679963698145249147916588596073024825737477034716288908778442888626238431292560650439035229901234327342017635243314521876937329527647106704019620141750184863221712226158314387208446598570439930688484990430781087171563407404405324040191616259552603369934847713033490459876766213498331058715019898430804007096338584622816648375701942108944510752414705418754724492130705190371993736097935344936586238792693634213371616303417997150605366718415264056367914745428750256821465477467569333398412324053056014659303586608122926673501121499369644587085345521208999071299991595690262349734899283725719737403274521210117098242933830013726651631064338516314116660467798586073150093456272362034513798672717864454550715450061422175439745937150428910746911331648211018628475447419056205387891889144853619856577810171146869358543601059309044415124047641566843707673029673550353051148548473654091774915204123141657843571580465218282521180575432743589231141532276827112025336088264560374784176344837546239565609578058544247768855196506547907841927427974748548048188899365394056606576074654046748471658849360463999058888836478696394193044898023802817597012486512056289658593035047212253932426590774061929963734496200286229225407483068053845848253624783590651130033984763283477636755184950666321615042274881826321568831481167115593241154852564023959534551075754332653159422664021458274496947471794335522059543654668569986586047664092966662878280163906601905133428916611783330600318941478204017036556942015259959339702570121037042686181828303860007254461774407991727010873112529826650533827541058991223260369500424703391325167227075312607325769286290872447647170434762342013868697490027043100218087895658071305900293632729757692642563990381501344676443389865405473549129987271080406038359651390064517057901614785232758205289453266297599303969804124930082186925519949507254322575221469326673884990065870222749663182699093368032366858881695219065072123625096531821426180687059537740810335798217536518441645586529720520440389206655107512057174272266454291016043883354996169003233757396865071778115566557409261386849976673840547128913148241407864882263088431911475206502063410471768037764341587872899171937618031056814613571626015182285207173706127757130560992268612722252502008636441909593438539998861584756884437013274509377770864044274895240559545204865525161090494199262861147103624608237364328319755601547979287825954213998016444668737674093289139084170428191394178462957074021582203779425608513545058465846641671040923025585932577598959660115376134325610339699394216065692047511180298829383194848789977021930639902144992474141915639630784640647539042012271855316820829222721961261902860440064386051883806820836884383006910248257709873012295455839535067863676837921769722407603706819477996108892457763837805367212798925677132573243125529968285138723806662932046810978786318413347583769601752406620607628568158640783517117046875239937137759668172970894063115899923129836787080103411555330589724106393952660061818112527772805312784711102425113003966540864801020572874534294359633297216020294039891207229668521843517986133448770201228271672445639526369668104067119843438080727080854775546773347017920994906376502077004749006440023324416260437328519512161069296475073394338930328965488176717144023012043134980901105491909737265454289606045124068348862098491201034446166845790330351885558939283490948294323938492236241172363614853348208265901790830577400669016745388975857776070488977872326394751563489058651336611143190308400501165731319917406909020470789348182745546878482763426959625313643937820833315902141734155893166179830758031767658760014999908251878258523673026168763572987974188942577741033704827990540617704497924006549189171530634319334046547183529518989196706555334065261243258176485504020596097793803623272697568320730712137826050518068073502018601385557595984014674120872319247351514118309954973327917533089153230180810013221768625016575645193686200354572787905324228667288373642445294400164449929372954960020860049628507198915021010078166309083991773048071252431397354973774874588755230730288944974503732786688093073215609364844799799524454325406324001783443669412574983941127187371553355230311311472266909520666220354314197201614486046120319649782290500896740835748078591976620971177284465989676368995007452196308603474360955164443919834088766684068442717174224499917128370661643926342619145395724428532668871490904436005823670614440627051489782708873115878322515166988028588782977230296971681631605727776055132787005700769565062170640177180914532046397488899327644928215009622176575737775160245585070913080708888812256216537427433076500081975838871861635044226309115229942678678714642921656081145093860394872355234625215774281911289886029416376938997686438290069159545290423875891423814212167936544575366401945359735317853979661645417339170566252705511140781679107399780012929495857615175684849692288220557196564094864639948531455715396939476920451389314892670737133187082707386760360244784705431175068546831228246976183857659370682515497810560415819376240275398209169812350358973425281995218239859360772375419867131395967897710999951554115718024754369939937521546389323801662277632899411398203879949445082224405687774556835372738825623626506936461697944292771258983930039841874562568528392927383476025406872233006885892944451623082870864212910691006950590366095366983160653171182133947166880919357692088758150393199006569381059468000630142944760671163589127896255801095501771457676809871306337651207456735317066748202436414319997611723161855149085286837891986560584170726067085595578215835614915473482633491484613144315783567387725570743736493987042685943130447768582971552766549972344951107645004216038876273202557702824639502536844480708908106622501228799724036369112694323418543361296973630652167792056120067550004983874077046723243755753786311068645145229014522897610823343461145241475000648215193843599293340578684273556237316746507690484693816383564687839887195959441478607717446083747199548758492047554139434299498030057194633286506778578284165311933234857938016286908571723419436582438535331999869928085377963121741396340980565326839523873905809167385802630611799210397956443865356992701883516482886153861351522551404764313243598116421853264092628736273244991900301746766820586005210853027867069460970521731556678473623228057540595587139672530543835711953534821970487249303301420174349525825665883734606278574356548066927128735939823512462260687039359693777821858173058714803220422913335503606544932308259379407421822544668738244096858111416408045294062014822386542094855553898582439474175511522586055356288328729097189893524023768154236712306914853073008181883019861835242900807391436096553987647760936520508013734648206573324501773514769781676669647636990322776270541502389561442161037916964980840106742677075351409135183672412063132965511992816461721907141889556346052843902572670721416126107800799936169604657522916673903192107742268848292976236097133270065351130729497523413483279035710694299357177270537647971062833053768913570753883510603852383536960450562988993605144317054505855953491809696223303688426152450738778485644482380564539488394756643316951764981070207406787073647937586045019163277348979807434643130518933175139164770710779032183223590622764379482843900147889771725322783405162349020905668164339773871022657998357715285248671362664886718790780721462908682417268707508941859401176775966601821668128021235707156022065867721846213972455794879831056745604451021164484801407056764725216822633782970596506283109788986930139854836182939777561238773994077112838557107868855897943798973569461612581963795666343381505138145732303809454997846579204498411270717498321460341918779245009261215082207736098520084796522422766269628672982914100914629281500960251097492886036620548757892261228281177937823627016793251368746480218067889967471345066806130493081538363477351651767795305284676788862254835706010759166329467672887437477718431753767015249257631182521372564789324530072448453940421242215324251600403426464861662136161237908825640845805446528920636845259473417665774316790365830299642587610239542998563284287405699404297122167780863332240892310109204306947775814934213868840099738126647238444105694438871667297984611665656169664319659998653989210507050787934842754141586038257939031700201752504888426593070865250887318481389369770764424359601015108109557317942748502444745429209702713513200318327131367908547657657876027385335958317017236706738480299248481346154553501363828567421022108081751257945686538483870404437859467778304192720418299881772870300781881210518779657603418863513542489824861761032330263663034723797155760298742328928130613789676123488952495277038040435606634339064886287509105911882641648516141055558355052736250103010939381712413306523946849673894967892775104075955586041717558180116995945922934960903023412575535106933640341887095546141833096723623829890177644475147961101591846456328195996053873475665873433962739043803470933911330539642628783067237488558765510803851245037643890666072183908932958192740873881907499048886156500601054395367177911494556169237536539520325675846453619288330716059689713210611682211001730111960848262354616909363143853428599376400608991052420425972718728303911892306635476229163886884472527975318502333660957833540718437727304800371713672421663232130552686062925437396012782794003239625145064308231973763844613807748369265335076979404175455260963546273272307069382006532635685262118604253673724767024581626889630522121753975762675976032893599000241890067030855111757457174602848388735375363413290028357639658700250601382582605564152616257048691551321172075104662499464537665543536937586045976105217207917180590189457702212606228947505176271242500363888343615098779973280225937665150454406205302988677891911525023948194899354901316678078744413037138816406085850658545396610935618209530427477142161045426611301002767100455094079068805678015307219770556649023728927422589253279638599885196653065424762594126051994018034064420179325526495162477289474551031555739216336838072566780380465956120150653303727367146832505638459131149083765889759872997749593410278831215959861152449471589631180012870006949482036826759822579512862435842622524272912662611290648176145901981246252958760732829642676414955049899044810277328213822601121237585134891017464446896889736069657511631515686355569908174948537208029319843378293109769847774777073594857165092951333514016569565769460945489348228414529237468219320427431708424115040753029164509260762798577031731769779158929141283282670308033218687243390755853696334164055554611307788515712529418686174415821951765412096667455379508638876395227529438826774765232429340912465376402010490678349694519936892092811082711681266032466538141404888357400799062065306294713729072889223115585128408657058583256309362564120291954356398763062647750518610206465864188925045272985969937000047772588331172813118423820841372038373711958028774328095328995935002922694092441903474195799956386078807794448470421272016999642803218096059198111970053008478781336812425610042011157401449541514933238549337448297096935388276865797465311851327409488154204952794290133234274171011616215877295399976672035012207924887039585720215270304155738196944848498629426653822514763078735353591776964171619051192925661899524416863617631576951840140973416890744420230193522299955323645436689080571561500520943018324494791775384717791964993104228092862426650519589037922571138900528526394968677543140260337793566355455933394323603538724062454799630036921030680928876059790232050775297683845716144260865794785160223735496791480930031604136506913818312622073584121766620454775862265126914316379076702899984607384980719212485888498886980674470800757642163930600128099389389955003312982001178617707020965899952928928749702534917346030433411558487610567709163927090081178974496631238095277673450013502362915312793053259185973264955313074467602563623914863188473602296365984538011049493901607813411982381492542746936646761824348789496174587508897481779000860925146499637761456878493462075698981679053230369958570415860335403534173380078154702501900999719776263159365478496245409537580758590852654652251935480851778827657157607753374534521270477269165598303616998431403878307938944072766284623862226928757307948403089871491064683611987139715286418233187623293354083788860919245059167388134886226401337973583764236374914457346361055047658214106557416984558976827659747094692137683046438899342715871132420511613054429923275948578535310588447146440471469224591171107242725159266736232378263698093208168434133948647450692495000313441227575947708216850309948305334227951548405040391881750338296292927126645956488752127211922704604082890402824912115237821268781062274566329978358335559363800276169904252019146233980976591121273809123479190876039572182543176328498368812983706428467340806722116489562640582330130679322558136703261495305948013944020687930312818566092313820465882132805400920624259362802292054538780794563548377955611484863964856417588270713690545126329987689040593547296989308868329706652457088350002166535623320192763052361722588557311477850711163432063278997408952638405596121507055739177383692046908299463620339552292103010703015505865583153497740682678949006004480520987765526803019493441876050284100261229384333433378456314815520804353009313041161920626518723524150112573035090223505596910469279635576279187029910781019503157173316545227500588726188940865344443406842448162082594351385493533806156230028937709389473549819797782924156494441143716438384470159587130558227395195401372976559887475683151411825436451849764721964166251387647098996452891133573461200175348753993557114079895494188069200632782892379674014705429236705349085995880750261941607061970466046162836700385231582523305597374144474570428822261637505859769833178022053268576617102720549979898004555172546690262086519961864460728483048344447234779032468022371526497181128266565481885524493371672320204742153225807204890187468495715749893907146857443394141323882477715086099532789315398534889573557535104335563683129402141944685240090344852330109097477689424336793506479233198853337066938217044713433402747553873437340063580535420397341837147897949357891070320710361779556036591618643294131057901216167294229009541617632164881390389395715108931010497627152513370566174939563871777109298317506563283607223819325539583570648202727597632100733616563170440251844355929360735470888241568964126442404742839780223373382015046824596870489218254940734149968865736589240528096358445713369402127600346735535582460596086399331017547382128202313630981886083241758221547167174695503540066379937509177063536564039074337622411497043214724606622173980468132670057631039716630490142406475377862851445062836398363102214025818526459853358673275048926085569080405141386160256246878872905688688813642536665186183978381075048465363572798642270245950738661528126332370890268289010284358111710800769861136101125504898859034609991341087432517748882601834394637235408167651499799225914853704590863122065425152465260414235267924848172316720720749740947285661480546264099071272306881799757962846703294113412560568844199685102452776133146904937696698396259088446784813423442745916830495370789970032019715377411940148878427567219585370717502706155197779803669614214945768783972880985912756157528684251927503490486797103716550559002482356664566173526487424541982873645673368339110370238508615306175598867038292511634143474643533672064425879643913645240771227512357341573106259944886428151572970247490724786936028810815121552102275531482377915339279241953968905377491674251008124389548827187315118055532176705414530065312430018072400929550345166537630019882529495444251286918275705845449544530172054619472948366418789632268643669540818184406990363048245921393210310527882936767857212249848623579640118682221803882910062838699581810597962905537435932872829763642819750008666849356705195697276476839452852649129218924766837371045605784139316742866839821490973621490295154954373035707378880964965760537037696885097129251015652498644180245520851665839276715523071780254020072954045739977664108604633154664781293168496015476024286153393100695670844693138335028289006741082998624220093418433912249397679571529493315777222180602576663185684960240898949990829170538176065774676594130312718655308415380851003746067728067682638062315564745800420625556777480263044772064926297295631383650392849895286111303525584538342777500212796394662848508618024807965173527614105387303588533392416794927367233968469314295637925472110951688109060245330644812103734768872961565083882520312347098208235108246275316894336995808650805442053843427440431142124229753129387197590449575359893515188534227511499950999722077611828265628515029359379043318347568340795629144543285008936052389133302229961253868674001509012645252120014152516291867245032192859676449606039522016755371513609547963285934212628973724595686465448542646935743780189287325069896860253075421231719444299963136652193948414516821868812367932278830843509118283719870554814614976584016857973346496065005798929716059627862207982646103492238381753979405230628907451354336548852580664074121129336440605835232583687192921149995723758418703982986246704741115713455936025174517599213896443771671645785729623765149589513706824163299185821421314287349461548527919978901559629587864977732040117398690785080208029713850303485449164853848583891859416693775206684991431900174395536462950102874866332508553324421124157953767829914323997056881617558894350437026484013480125545447911593303134011487118072529085055187766020856389547447496985108646844792457877626981098189222358859034448912110874694524768879418655372528721091850792661108645207968224845716227707944415379479711807942744215172363574607631216703789026434070918368805657705962693804952338131361458430291687410402080127297133347612589313880362024032026744015412700286651661792632351698273978223673699027973775783211141725466433076350811368021393851319596304967754490656370100387224854702011568559265397352286612637605608102305183025734934026592827419449964727467136009935780362162573134523963257072217916443088809762069360589543644276209151421939729961698822543462490366483399514265485124830617481766252531877148095861683665100514707746286613367820115037157700853155729676483063163422438037371942979683126248021944043155756280314811032340046908567923717057233136369006938398519423601774413787999936605996020432847282718964163583244318581730508396968056918708327099149371847093320280770877005751531022974627085790410161411534549509041903479739743896606331330916807427201156578626245107919476408048520357375562772806458873476127914558439741675438664287650568764648442667658140622497722739045437035722671158829711476540273206773495208708144401439852642772298125444266151639848214614911609076461244233549051210852561717817358483660105428007073753705734574507081455029985099727202896757289152585749750345372452326303073148978375906466711087776371103165856856466643871036709462374063683809116709642641758505753705583728686580350721307852639545108136776848076790337572326749116007975909063566528233532190253851437707183448596319518684427101779836931174227975386412155371724379524883663912778254705784360422112424818921348187446610174929079123654042112313142274872927106769911755338788988182189493099962657685297322722612294645869343361611598775471345984299068632512681044756051357524730462359442439694495796234319478169177551199997414195329552721528226423455309949912174935879401445595461046061780102553883097618544210180741095732821778582415216590094336572464984157200316366144753475818189697693998850113226249739183405719754351208764568396673712750567697989695851329994780049503040878386894234819169630789469893582721357560068689281815366622152514440622387936679443094313529101961906573501550081674939245541187933716368233375440183738092384119200919817939449502151193629995394609438964117559245605989420845429438810958328647206127525915652159341730823901731958298679534962565048545134206538095491529667476118772603561292411248719274115923475376595467684237013057063688264097790603462016021744427789066126752476367560255144336966811146864104064422958272926771123364533280700405533263717061490744553572701955458650073956575522010055528515057741055933704395397155690374731464076633299624142138261027941715260319848782303205571611743068231692781611498738702372307932984604261459875562144456191902900063348539587719560383821023918871105081396905295179606698031791955700538385556251567375053763846993669409838101166886502107687069317897411831387991678074487929299094059703222948941137230488833801720914621600677781881903614902959345104166266260124063365484115191066045378681516446316041343456296818010571056260093186134204704645278268708299036676165117607141605528558287478987084168432558076646272677349649887625236936033332884660425218237694387568688154380666284177299471265884823982899037574192080262027169364916770820912913475917975799494323806828741155308311555042691740150177068008035631941855017513763363077741735679357916763748744548130801271375641834496203242477088526208442035525348598935955675096719124932848942907907366360054581114764521779542783264799075348167299069972013579972515258959033144065973833291142772131887164211670796518529551675338888348173415697210644645976803342310911014894162858220368150145677739034326393321255807128874963341822929246543404148486587549329109335174074774603667521970712876964918863812343890295332249455499276952896162499417516802121298757235394528643723168843294299827861088816036883837390615657371271552604115872450778691305792334167268551869797736541177305812025789929840393871109295633445222219170971744351217287369716042773091839535229324522289764832656999153829654967407620739391495166867941349600416218845937152915126234966115277973459333705421178054664564201135896789936029356744695101304349155274498704790625493333395746038709306788625812048272348794591713752951833615843818825776333226373524252856828253941164073797407412986023534113623284694783385059402819168454158923208416576240141303320085664418148651374846037572134814388710177393510173717162581188678516715242469358089151841003412916417602238226018196173888448964034063754659055203762435399628576291259090475289902226860381654286081439131820537463882298171559981172933905013277425339069461742881959823287345285389296787130451933186504931711614581056269263084025914518603456036054650305334442102856971910337535972386126979849925430428152006122449660057909677333492205977145156308037889608886826522953190433666318650341059974674893327001545862691740961851479753599740268343289578408568080428120580953327825893589715030502236689735334761282341938660362860038658171682449876416073905475814438029264127318597090794487697731284364447176158736516546332318032178179905047088690418963370807093155865917101081962062754640596013379547272147302845587962555910099371624685785635531861030237866310948605653648922106655237425445852393666229928950266452195383021472461504278091668484623914587056183345586444337580832356883870270808385501996525674274817580207728718909644374924080574798027626562733065358090627078797038932765610535082668811516315165746983934193190306030701643458884516497411684933477814123692185850248176849130611952303284705392904794736113024964583693219146843347790273157482187569200542769326157907687763341157667462725932090202537161823012063514052976755835613515185461381530610364896566404152564949996643884534712309448669183861050495025888054888217302443215186967636874741166827143734581244495829721512252197709222692956765342364511732521662490155250274038299867962567426993374849866596449361021900770962606831352739114995675838243052572985826146597181201515062133439104314191789820567577524264312809270585149666532119419166724020921805242424351332825485586920590526434368405204456752017940007774874192995563665243889729445766178106521200202645680537104307069239475237539177291697592228917819403380795760326421704803769592595532290701046522315929807476726907185287119137450798349022651083712842934262414251650983851098072350074925590611734127564976136385190837488450935357776273725148692904989182164308968880077684581021244157902455555057658854750429229220797052575437478480058584013236581794882840257403745014065047237519027544700266762371474611853307230494532555857417090335609933547932278145215531276917835717263446313535632265503931493059948213738637294516447711988909887009276480911123516540108433537928846027789793820620675235116369752361596402160090070278817520664970457140045421551308327184433162754383089475208016984569960135908678206841383950283363321150195861376006921709760761589333591508666099867846341519213309911529639047597295964002727451357297328190305641692396717990275241438908419179299352597705303385729572158438427973087994640843030237593666176722311076629583885944847249625798764939227376130134862036541950171240827442592556636199746339775415717136371408550574952046245342997557612097604103659482407297137562550982437097984147888823328415275778851540953696923674245910979855154377698286499561792843246111248472765895218886003390365433298678278420134291850744503814928608035081475144618836006898928226919319735815676722636270743644036696210253126191966473690078712370213331638147211912148028972734745091593890571510845807880823965547265312331841406695900661665003250044149925736173364946423877233120858436881363338527453508253067994391222896978379495624511165369402485007815381669975624691402108349013815587993001058775232039279622801970042084915851317820021020159816030468071509869826247536137622595900056951040349211156566743199600226695839312537442336823314796737862059790890279825663651520866814949678375144928671132712786697705431977193247462796597618380182567598611242402049422083104320874087104960336396095334201846763222621728234878670022491013204479690165520880852287679952682520920225907324934348429771161079641099527542439780979318130991295144561311985006543059206818861495753779627406776202401754717941998465607763399130681906009874551490824035710846734493457821474883358801280534151692581436199922314792362085836126478743046671983226811367815242811048226417621096211370353271479189758780172270963276491012213642960281347887351516811994049685020973054285449966607162722348374699315425437029049592028793436667549011039519252016484607531736187313711550417463381184556772307441910147524014797468731981419750358466427286854727372593070638322887340321257746226559040170189001318372979655341764641306550328654063741528962286570192527848365008987614573307930766997551416264669970952434750455561096308696191972794929743892946395197823514615023160361280421358528441181665829395857001043945290161968462737636751297915733996466076300229440020451666894510426565818256822157944194717742495759682222259208344887081779870821153319629270118298097987456809158180393957909192577040800789228621402801891683574045529403102284364789760943156281094008766084737533097092663534343018370577973869342226599514868087966871678431975403581187385145483602111582823858945533586348204981842058101215081402634810468946772918189955099331359255840856539217806226505053601012496796429909447298999512103245920610841692637060554515125689673166496444645386674674076586619817718788143846709945547907588944511078149446493650521853198848114277314961078932191492047984772132147784688711593880153429481857891008451556436520329608682962673483907247085368307504746316869841198701261194052819224810044925718127825481152422183359392132628062161099736419404202339467436293059466042273528239654376224422674494526568590697962284308609847700573835222295129008460052304777624025657768042234372144956635597412530944056856834600808567127251445542434487777442166993327463241335690084084933120016923924027402856404817726726307995438817625411197646344576677128016838668962838144380218785864205343953822914709601089348042388972420771263480369986232076215645448533414843017836908311547787779661205401737719281125844220528097562006911561158132178320430543617844220055492980147667856631696938644292611684309513224164438150904229126881100844851920165569848281240322477003426552589005511233816307886827973119556101495502926916374196876077537587140216177801345739578407670057340011692513409577415517175363584064311317063348862508221578006694528847077165169135407133989795298016997150338984646818016561695705318427419569818340861901697524844729224134957930094867048884213709411162922407413414079482842709734767412837758068445801409514592742232172115147719057109704845432404807411756476178233458324548140191126059676503819225860639027089247334917188159946081970299099723727098084355305842861432183884223292275199353897921981835548723611718183366542193135403270149835959688458478269901434987086363013321745860515556381732499509678061734851022808827196013203762551174621430946624965240616837091618272823570695630297221016479978527633772447794807095724421513692953479167117744488610312113420860848093829108849963991048474632044625075219353386950621275966406307615876976176686527664140761663738041763650856163704372230655550981890083709807181827559940911099735048107702036013796371223745474645171247456305680418005591175179776908549701113312742801355615355971304885230457585699076882397170593600625469544308761062837835804602583645296924427777505017727946613360606927503903261658577944926472886435823714721804543933672540649075811648607657145123365248906492812494233612445513075433604802414129929058041100923192281242753368343411665260858453882388489186732743462039555654458569670283144483726767024908340499524503980720995659010856170863136271279999312075515778693862761055313735022190017258041867303301589490160174786116270033654619788812118131169703131726193702304079616395999962089195047277612653383639262371233135662921138357015646628279759000558199890415239253593579027933663975543883355599592940907864592312590603948127330543833640284210363993617305241390014703382999018818027698387334890244978130047784056828585926339073906962626856836489742085818429748866348932827402053668763353322023797295660603654352022055285187303835694851071155697165901249582256993895848383786328464787526426412679389736482822528793273386897832367257716410648974141049604223015784801825017032656187338958051291894100406811143855733965345416783970476476951320610527491230071989455276260606489087322375882963702288633058029101907589436550612906771405863677587075862816401567588904073997493076831710061163417198168391601826188393159683374161152939248478779808393875791571741125450730174607584129205312011778751098798333942913243608266039211621370226915058932353215768590292672755769758865811931158228779563318696463255140220812603213301777290165612163040085540034115941379354425283810613352444411715637724877591016582827291038272522617326256621440072548639205829770456847185657773330660779638688825182632182868064046165882176513446634193210967114857126560695351541290711951898200173046028548912274153174915741913945518152891167128992855658297042665351625151219621936578427552267369575640815649241338353438788634561828282060396693473599467892229501351646868654895901637105736661416740691403644707364880805896593985371052162146635069982957444212955180862230996362100218285218476272005252142714225848518031881035397066322450590304474768037906758653620182448756702404282643639764306892554041125848983512756772020472783760234312251600119317720234280159602295324650518050936044995122760341697392854949230790138559862067041659934489571575357509452969780457279723156369872938386005845340618427231614918071824273130661939100620321333208746614072960581480929489174128994819574154928193424421485476133919180562530747090962247529127428620199520525737829037253483927135880390051876291592497524129839803931134157109997626636594655495446550102742427752154126911306016008111995860000045349087365717405781086007007037665226420159954354953252789435721111567320027547456493955077397927688195120004305278854368724436507075069268732773774388905606870491261552711594950400078276648287558708622577569289805785150704653097574486472229569295105104583217914463205360227504352918954129187754807421603848951355638885291523355237470037248226531791514835163290764328740369193699301930949977667253229778898497427913690476501093892123341582790226125694149896943211451918032349031895551064649186884665026072298717493733153680423718724426063490913863137730512788359840149866304693936605548397320180639050868028394755017168558179657849054297938615742388970510604019398260119669504732626095450185965359690686930293269568232344980424214017835137728546501334702126871479133302640014020592126848153157091528195992403673383243863643959579450664135265457201577328100933821540855783324580323197577718483522068267554961472537413614923280274596060874286959376634500698429508486123791845569666047326118961449311239579630870669542175468671812819506764532522198397219691455900387941534318058318104536154588764891202714903106715478952369135512512844686825313358996232655965797978448292101506986829070944339679358231653481620777842092908861655133718709648712257036460128701344444802301021643294602436463861003479349393165578297210499796977326374849149079641055589347475920118166948035813340593847407370013250468111542828309283511077634314028851519155896796142293767803810593939560676584350996999956470621956679287035818423155965643263128038870734085638736276256371050527579010194427110865737027098565525519612607647818687257618303573369709478520026482140223062918742780419586246731417571169421832821670542783761801181543113893317086762411743428925170696662605699646347498335548002621768840721795720738254139268140700889030770411613936185374160354804147859036381726559499322694139506496431439385005097837750919700343841773168922998624034925653436031116644031691212468660988390631714858791362188369513407194922781620260993834875942719392739298091505258943106765611894552688954579125828840614860149997215745029416847642242480258072919918619378537902115776916807425804415013399421683416744344442276521642538106999481500821548229603614543006930000876983015388419780351905825125938559648408199369219227748929567985204286983693817587767754233781388033851318449820870685973871187026036123505219128991684834356213473876004718922372117909582213328530914497674410713335523675389254714120876160406377575722159123127323332351841471724752091570340050292328691995784149229060997704794886043625052137760344343384264449958673779598682634343276636165023295281793292945040324392128355050052869654218805697558192866346377596745036512175471720702418533170266021444622082724983175756423059255815081091189939824457057880430063023759188116026560464330008152531283548702126692703846404390505617686226467409092698371199008182107725217302923443046399038564908185598003590818838734533077493979802937728348063291432328333105962829676616352478661838238232992964065721817355781038362864629526706244144461243026822563197760762829166766588657541709195643835445137606888855628954120822716447285005736483081464612431964345258438685844237971341595752818475043648212242608629744386274214576442081785966938453509322355912451665726301022204230322506579389011180487897830339149254721052411141256139441410221922799843709371417740503792588763864108307805441446708141872777092699385507155040683877786680348744121724061376994330665657350183415001575345052439326552978600825962026455508123752813796183099148876551498106603481613137021412635676195540366909926463021523826010917586702354897747504298053704325083049872184567839760545731086233965090651795942284540826583120637448921502917346070621559221271621556595885998324201151895817354226961040611229643478918770260248205061530000141003605835154472380301249946131132024041575537383541343406318425556149308762262290962417912001719278427311221754366636105403870416573809909818883195064047958659704070702108075734321746688540589576478403624155754599199527454235504620525139254658883304311691150822323477831962830766490712739968384082286776979949966677678026363389828505248190658418589489867800766583981704943396999765085924128046772931304093458083009786586024348680044895098869923768877307989011186247080873180801139554777626352847927699773436763070715867631629846279562628997694301771656030458996461321847454431325929524477983071530687078149754231523944726714026767859377518981077420156168706926649696948623705594098351971694918117801736316624763729889098085294700351383711777409108270950510700172406474585049522073896144807481472398734275114879317948796197382655723575530451102973146825040550911970313382093007545060708477987988985873591657859021559361525979540246341024621603368918825729517284871409361430335398229569201229910843399958007486096235789057839710246378441506986532099527342694623765293244716061066476209996620308068305786893468077626878813669507753348270703884563734026422484252270878935432094103573647407802550625137796550347406681845024710099647955173554048061184129322975841942012181584268179719550565833708654349283076345530352127549812359633856754584052805864483474967924450066822995375142083436103646867322401231177649928361132410990310275580456319782084097937955425064245509635906664472592991802400869351510305783925801013099229822235173232603723036975204933871373712589411545063169425347066255729084778580234321158886644800623371884803864836138445412368750504951721742743543423438906012619077507161875564353790696264810718926341580404501080006880559558517822333290113584302730062216367467248478348845161481927359040166806417905850364570324499997730615387937694862585725280265245595301336951496043827391853290431220458958894322759412208001337918664224849771868484592019461790999538009006261521528028557952804090440934338935928762060282896118750669543818716534286247166919727401940896272641424422497205140846945911109353995552458732390890178202196933815554596585272976849899406861323402123813907649038948659896568705439547940184369295605611874931773284327149155064497085470899216778300714126598474743610134610601574435783955751158834914171791155926259778895903247854515836902143496532220121840353609175001068683982966427132523778256321463950714791152963134415634503298671745746670009336341595221535592499841114645018593918903443208463326116844385635114165741782899123420871523315739545230148304348399052161377372559627520236093773162142769978787344327885382039670476724655052124250133001083574967360537007850014080224121529362713925510844970801009996725575799290382319928465515778054557507728545945495378639878034188157066172992229722929976013294176971491025018300599477956690000111750960864491803120197202046882229324174483639275462749122066332333350941670295529327008352379717494138769733036463826555398000636402787409988224539797143602195466594393252131865574017680283696827417547411599569327481232291607246693903330561063441065276325975341439711477854731647991683872217919439250990252113937214208226476488553397223297227287970248115974138154582790815238487684097732588482597491476876779230903226852678863732237248020608015632736838089191647557431073119907344602194640140458162290509899105913125271838803701718133831614746859114536131876763894084053232115132638773754726819446741728191822967695133906822322625147878126568914391457481013819542591855464436278642240046651002465019976947375750902472100482411527878374394650896596785388181671741584220728656892416330178051029093018137070154814587471433002708012533618954680444156257316511308961220591491958404480911348233115720335333570148918235896473751326886314191922093433116151632735607900122197345092100307111961702536458449270647213871619433533326346918694137550621957650560331191191056016613209791487086516340207454178649139637264912279249290672965444316359546423830490101238108647305307405945002635807632041817208094395361624887967171355801758726362378487880874072532482394185505210737480759710435417402832366990812984594391112320106330396253239245098747767313440395397633624346586060483574023375455972387796546807919085643682088507294590216250166111618958738837345382980763006631487988005502403513184890494272322255279839344463010480567087324129350746481838099947467623262774696045375448998622709218141621606020392204586667520473850174173585638973938475896798897402967527146602690749596398591017780870585602671564887847350608613727434215953132440784630318374416295530704897801427484138201789351287470833745966879480044680269747143093083432495013022367805771497699310407194728893996083230747713589985613328950998688561041312701241420228664629645753174463485616143389625876824546798122428477701355850773078538360683983030516465164332064527902349829732548439596597740123888961112045271937607255339333824303267134783448427402404750549267198654658605986093208862690195801862967788438735062681504811596987768830863511200347470356925156425604800110954556149165284745138383781359352715534546719596250896871668304700430504919449320802155956744932760965595858827055912515979429230591563067653516615759332522912076060618221981312594800421018616968359016596520741840462305715613350901368197753408716862335271855065631758802647835720598697106641383769907259581312678000833858918634863898524021734079296471425962169624640605275714193955251837643054563475676185116678276593071853248982181472457125902576714617919381458833509997446267834186052870859381775749246071484458038252493785524505606827467726158258902634881250640100240762390627513775885266830312908576235556956327693761716250375920658546482656540863425317526128776900403010139015480416977436267732409794797586699790632903188689130576452253896812386960034220448770260109236006547498472452772534540467871126502152487456731331088236636730137391099820215714929052043598290925368498121875023676830096099605865634616372904071466557111418650595774750125531023155637178347861521807613406682301367020191972933708680031350096391628915376698970441074560292071766867655400043110641121420684416840594933994785606153002725689368613545071927019209807435394354255402071424741986728929334958642930745623648406599553507529023282612709554735632233967938741137194154775536287605644122607781945573577987066161641816347569420239645867742840131998075228356884504144952437618574967215267594891105707888406769791198502499032969037301248043752803193502323356757083554888139700937890265770928544506181493269679810428031305919867382169425095403290884781776286037192907401155352078882022570007639139292369924441460386430644990821028162751257941163739115083826259539769225094666886929663467388954413021350326453125143272621129551569961612678852047962533965646997407582058403306643939087930470185477175198218100748132011969305626199973844986838757838039835621211145597156412091477565249706987876435144257990972036955384331751172824834708667962553868249892441081724410386860632836752800865934970488042628022873016326384127301055746858715587616513409688895814927302066111580375801322968235758912871421532799850450338097712849005430174553961332068349396282368642051187833543229524470476971664083143483018326855195123543868081013769347181912647408831611179955358030173329378255882296776430839527851226800102190431248954935329172903648528278872060512713650279730935663076337935735419712392411181769418769700139412926235362151566523879955820331068964762347197383494190511569700664577929035390387434143838963420585327278773311388373204468620370859490694284640539797130945853469552955457786151524328035987469299041323330140708878551063884504959878411703448031796239980329668120755304780218170709933590282286443045317716198778932034272148096471162673781718716228108197938027877881222165990547646391854419580200639702184462023583007446939418897324457353564519725794427861900868514716601021975581471662154936830585473860858168615699578196291365932905884993799363616934563535168086361372362267761904361267110031063773419771661293642880007534693548244593018263387977009433143684626400436892111728540094031808978150003850641869882016199945860538343325487170193981047031459242111335872938601901536383100035455729108054619160918720636125064188174032885431805131442241519013873972472541906134451092323271865168027752828323863658839608534483047445922117279736284070112028084158601869363914283073230864473236124116223268461971417679144085547132991104426251755958135726267933965821815323038031575457588454082536477499156312971265415553226417802570880018882990691516740803159533971859175373081396784632014189562655496503041348841819971269092467015247864439926676631359217187941524086837176174835963607502536861168693843518294402963484534083989540755692288513473118405233216768563874690189345574029084702633114165197657125270515013148613894346025065390464436856740641526387833439007969188942000497160592392276659862082397284615388675359100608141287365844290657907437172546417468424550115121832996216867589550415393039545942878774969630274063911156444478838323461760879903757502102706218134033113262731572572930309658430286198411459920866898404227411587684216217475517649060045516640420618193745266961990225939665996299581364301587032143130189133053006427166703595046887501317373924762602202956018569994789951657956217724546867527796872324058631765796356786689773608545958494028859150003982706536864142248438231359585147337504727939164908261334107117523257650956527738053799736758783983194000126813103962249759372441855133973401412307032017356605757342818048820775737203236964712120777651104541965713368931782666052388451970375859527894862192132776950401660545148834919399555268664214356408643049398108714094690312886365026893053849357504742188670236833365066553591456163650821137844198531779628753265421558382994892485983627747552685008391772554524258481530173804961621948603116296470527050280162178905151519967110412391978276096115504402258824848238656531843628920882866926581317036927969253685783872515094885470491169306932884529003984208607543873174603726731211788230860136507455203940997276260350724857286515838155378314458926964037650230742884879241455131882283576085682635703392583574322166852140908786995693314663388914052185955363385889616308664814385470231404721077119791014647488024881990908072312229428746808268193573245977176522800947542559927326884285143455219076240640746926228613037883605139087133781317093124869481476712732760172784678583226534729215776241075933124146600715794717577716745369095235187081172798327125783716244867877411545643773410650565225947286732107731479357027466965713999969248876408972132232145211364474047554239316202889575989685817896898497641195443229407166723509269005168469377303744859744508521526117506029483606073509546002138179137146742841767876843807980239768732385130631670237398986355728326399834736162272356116371007532825857987815143161870005364954511822500110960477807096175820566343280548260202434208135003139027244717561480020883650466398511454140364024115045568300868119405840170831002206931856982277221949900944424523925173996688010977196092249607828509130691856861508194711034763473234561836078304682446294575972665563860177480050633812271116778453241295150489601122821113224663330273832609821728416570907540344852159353813837013682963521804443760559140704927944236311449501027040759453190347940780880444627943550688555857007043205603883562456771856900862126276504921221233859866050457591371065844515697339584555803452656360122060328823247761370760818001649470006577902373909049805307151250423018160397540642027718262082202950874464034660074165952785734808384162258492649418884301973704143415934031709012951333251934166434050049113094397501100320357180218932241849739123735829100290590266766960467270666088431580902047560888319581106238039644425700392217832801571292609342460491930535543170498480642847299342809519997458264422602667364870780840388797485860484889459484277943227891888474267866100271699652992614134325286388372285268697490442833196371328305628267079354909785498761713289108875421919612023749250603239748525655082882650390845365574106507133471601522211268406359237376957836829561972774425594447924704175906165144724604780394863194620296223365118201717111899520577067330891374890565318685018507709621246677513750945500045393187287147796012569402843377275931980259575710047249839878263174280231747566087892545753268858628503233688178574747232384742930895903807117732790084071090406709759806014545428317723084695839558013930148652793788471782939131176524109918022327263997061944822808480818733796538498641938029721877779809305489620230475604399989858941846830740804775546083360656058237922032463397983434327585103140282885546454572594560421762223314643774991036601602151357243005969799868378570748832768783440451236666133405148339020818910825771684964692198911641118600867644377052095840233830592377726173460921304197106763413257210629219191350139473318137507190410593104117315100135238542271026813541706954801556859490273367429537840129972487700579459594375630396074974868141815255175602130299884104652114993334633689515044706855247887273716470942538789559435905712944245399032123743205892813427768595149646231861318543077882243131011601412204723843820155757372894577566660633201306223519667475116042038488935050516274934579732784034731534736406088495223121689194001875098829351582660146881120513147409063450334425933421590929327323937253007149298859097256898022156642108424503152643807647317536507003841675885329164922801398250221219923336888374948736938712599309593623329481128705258434304828183030876529376239276014181920541212380539977440927717880951904111063670219785292036750059977221668146263797099003576296456995253290926970703428843124038790429248309940047878824817906269333983212830802207315291288347346577676541691798978727526581102926852979912988043384511609273033861950712423954409101873055145582146546369872151769471740758106157964663575847413150279691151988702054340037745642347417150104766028317304089716514148346276503463576972937836763291588346439372816531769026704897767541175794098172648848811340967273243801334953319664361029498293994617367893940736138614921056135431746373557274123744100098840193592784494995349088968020279584307246018223289878465706207326519943398699305624482796479594612418999127391706567025863130894713855340229714151712117575557861189727827938512166970582510812425022836217619972253152250539478102240631485242018560569885634000284506914943449495775974704821816539607802788660142529844458963812855835366187813930316791524501796656738245002656559717526266544049201274829637674501837395798429298938120315363547483893155122011738427536081014617831374473302657116967414312028254240331774375764827893614819842197798702820347538437801607265552115046311961704859262763063802311712088263519799816551063198100288192450208983370924170425961683847229628144319364100126919398460888489166556456935146087855374194604616042248611752563725081526589525032710754372572035537862032798954498278065276306872605083594469362949269389440333081308972676674099662961080609722422312975419076440476784737361268449113570360796174294405578227614613390611689190155335132336608677945515026842122070257667487139162802781075700739912422393971781942708049365708380072210818847368156589406627785103322097888024830739552335519554815735364827460671227511390672772455949916601113836477778985689112242918718707522852825029284258736881993258917889024411323910437735152612786273192267519689442250491515618087320073479388203665161713250423156452514527662667813287119575523391422947043945136479735412229803942072262462245062602374951671187897326295477844684876247164838535744165632411762304582029448845266121041894030261070547067241365001331656240264185552438625087575816846730964649232681681918827866385786002125664871031833338800355988342574730230781618060080342119444213225313787874354311549066300129047092116349029213722598303940490644195218852184137866827557752779253212022019402852944279436228324821499809326848590480736966790718378212293748932360446753665919681523137103131783165564328173858180462553042266965574873876574436716430249728620604028363208437413409355265165419238831804650469508359262130393415174504268675073856229079020048569337415350369967592585659731121850047698376034597066616422629766818674099212831837723895816750932476319078360008473672830216991315697890827768024295714371419432842202908545427905244705438464914216552521585497484490739110089050973549372015403279609449827916048243265283845798710699443438226547271138672053519914171126739256846002273042134139922153134201426039400533688723569073694893613539951584735796755762295967020962325290286066409384207774577461813154259570408689863365457486458378440247168200357884710534920077897110068097825214341696677085611158610565459797169710498650087529498289488551058821527585115084973663518330928493053404176409084537860715135698605383976070968423892418786110612938409734178507623065102842567355166156014250354746737296056092242043743593309397459672491409695440841593695553113076911868464473708764522576206322963908762122668931264762131628890253057595394821142016193802259985023567011037152726618629588106994752596164202105861347606830937256081653348798318481638976124190405902078262609083435456145797571444937832244488942452747661271539169717122984805915579328237542775390835302648263111460835457554492865639874346733337138103870216085051938945409092706242455611808848754872637858452698443168552628192077845269927052503316195261875863175612870979139959834478561299152270567151376920896115292113593128589334309182551415963333803781957537619196258893618978358348442707882568963654378215484568226060008280799748761913790091994579353840002815707862181544477701315123434979445094719271932543441170336305209477715335696007216185278012888842731996679331226647287587113431684791412754540825211014215696887341374403124743156379284594227026881903787120416042091205489200358901925417772773933908017035286526063549094346071249789020088310960328442592570220428525240835957711737771862890896655354171100105634852734038378415685999182995859285666686590952977500164993413327136732285173164867956337234134287595260064720691612551547323173694466566384937261605119105680438993098541382107586402073292078084284259368426037385090711704337705590621498157896469323077639290314537290449100688324163431105352271313203489463641607549267079849499711504647665490107476072275369342548148691373015682161485567721910124423024432078388078608000041223308658211723092021177153232844730046076204751216437728056185362853756934846120510850987319246336200826604221207443977153089667107884058665994173355617270720468900142431841978238156178866196266396885340627294539301709108977246996280451528466900827251114942528699124247519868470821056458715296739856040373631601499717716050778998121725899142179915529898036555582143632951806271023769629845451069379920134533483872377598929214201895523600201486672059264261343788818165419921684259945492272666140136121802087024417681863787538046119432359509518854393252421379745038929255516200575901467658801558584538816718089243187710336685173768408908529321626299583568390830052962486303691593532238528016735817187117980897663071282421277459562790657321451757198926353006586864035375349506574475464954609429529821180522553841138796323907707117501901229196624270906592488758303984409695602857347347361577690840858879696527389163159805085049708883980935640633683391211946886510412844105445091350435236718971717782979299855360965452635541486071342574120280766491083926109016635595939777442241443332305235110285481154000843757207371831787061615026443023872245033638892955474438272458119513057166399515037155227905678346029680743022886104130677916185841477218130543632358007884260522731481585825529937810993194352144309806134047822404899714289819644194899296609007088146002170220107453870704805632256713936080178328859277272048496800067239185523943452375069784155501006727630690860529794225478412661257833924576653677273353101358986718829866347103549179189471014761807876216150998304609145232584767898740863193797945578466432995283302133043862425196834107677055578366917312993335025624191287854143928217993729561495624330016430822476766023589151490223896340161600905661886945353724678076170517456223742924797287933647226358606125547641039199015734497644782759762218334349348365930477436610422925254282326380048082094012679689978181070766635245993354682468903818337945216550414170279515345232485603187602081378394254042387459489638856438786311131493597082791262380406888288506475865010032632796688953075992017196920928740773713162917616583541914218194846247717859698392981134386644156825554927924086592211736468656172090913162139919274664365380058696742653223176281296957719517492965952391691268769451675534965847372297398145491385386638488892714098396738976456193008674665596948771952588876491116896213873845316081442074306728963544429827661203817774763578027629393108594919431932184911265684813868519785692140875914597754335054560463139133700461949911686645335048552962138844177646369510190489827716533161619683566752020541712052569281264278900709953329137841314078743142120689994489126757945693487776455754458050331702820323612116222172703819797157091584521091486547706569295091563991164100362304977764196867569112304134998061502515679544371579672215045539539968542441658091728562443984720605987139926315028145979344205684864197027910510216123106360129894780819348352780097687623731876518025015464300351819936070834100617270865767250871615973589705042732049609640349694244412058855900066144302559718692753608706148365683310847655341665604547207299954200460374559933155924324888171279661830989437810429593799717729919165867269388439558597232489494824189355496962532216487654635022528412494110115287322180343431037312994667375031914007153452814138852730793555368594396550580607483160453684818228577459988439408915080433515293705974931490440907910873301164605185648278764946203689189748248608435676412715584309138439859757249220260432840015840837646171872144197442553459659007258425072979789240544148448295194693265520003574561831270090230629611971063123199128686518625859650254438472184915800830561675440420931006125649988205844311952146310957018050337143282673748724838532568244501336760446551088605476273839579680359282076214424305515543239208312718613537513018354185643380491010195313472832988801227847483872353741780928137225290715538398764534705550844846748088489891762219408591538746595435182085297300544412170468705039593791617584905130033721959787609976796373914589484630880224244352996448823485441576841192888957248827121295473829365921419021297534025986294880953188162376895992948209861778721591224541718345563695961305103367349939569886813421842067902085070119576607696140185747057396079057524911970886185987178196225404613739340659550385283244241084835759563304427005694082018890023196891100085491705471082443798963084928355860972477448154842250313085454409444564104941761582665308123698600599214791842150417248489335788824397812912084045802561067621783655102494909883875829820744311331558901021214284750990874366977597768186124950900066822626101913535500097906907240829502030568127847305502223953168783911885163369087972306185838220054356941419759163156600367617111858319820402055411090025796158606882491550251004160544992052322256835405674536896579707503255115063680039570242844126911954250638998070483592295209150393585653381531734041084316696736403507678097561931467573133498991227892607410405788990112483399093438319422365586942985613707600182054710669118576229661406879323772716815866986324939950109075613323750516953929568697929562410029467336345880167477869758740914675581091943746239366589568283535935671090448433577918915713879718919642661362242049975037916622855051310075508075418562841564527945192132328876195226386338830801301075862765279822759869087103175258647648687333152415847550863417556816662121169449103006902736370885852264239484173127455455831362850603216098230118392287526403904559355727464448126314211153315806427576361741301286515311653929722941335186965633691216742134472911594112116389301171427887871146578086305919302310995411192978959021117923447699747461073001614716408213780495598124694040738039274675194901313607757502168429814057427149556294228825094383364787004018491961956360562142206777902483572490598786798419012527533109033138946953868926286237973535126866728207078749879074197828564547818263921188891679131184686941626767102144693224456692337679343986907758257368533890522712574562544025936806649209306293359456028472963681825701702430643141554406666446137827499305883684395624787486206968284031829290079877344222099270266904950945974667040412027457024418649657446150875706066128031825010221079660292832608567130060998688195997503690371480927108552186120361380765166536299480369831233855499587527745963219584258803286879864590965452306868003168339840673993319179917649975592166646086538606911866964547244445261743669666539441932352798882128684220990961279788900984911952466402619878630230968911406907943944860469417769939002866263529116541976886318000993648238843398628262218503313884134462807719490490098029306624197710687428433960385915692991879530689404881579495537669212661753310384953088438470294480721774355130341032678904497164226934939379715890166493472414036941063996711674521406309888783562129369878893390647989571736714736447309719592449557144702983827464940518967502594291304345154358937338357276036844167294140107302156169928769792083229434486595488135657752465256945135827626072214060669146009313573639811472461498447607807801543919768828470771600770019322877551555571682311572051647508788248531170492527365174870343578960019643964129226286618456753693159625480691838026572104933089889739421198538557917152723239574680511336720020637247805555891763067971834125632671080246080125345102293951681655962322651789919212945830651690613386797078331740784286265663752107483530575311991703798083156543691784771025527711237249475867527758449743815492650015849101766780309847608340229433264930250138917095335174496181976915197924944325006136211259766351954432202634064483736381359002223148329506482029095495470151949736045975483142331591410753483045928880032742017343572311075392317650722083865694748198485449688819237821525958899570357064072320188225061229091337251210862203728810887903977361084796581426978537671209298171830882757410133923090384255834776578880568125943744031596409586703980366717984158474220572391312810127984131912448780413050719086235747931379253306441222282169596498086709947103161348474768503623670351192953181122830741908938686803745577721078905113785516888620057278750541423681583823954591182396644329418229067810866569845602397326596379671330240457326964481091097171387680616376863908721683722200837900491379613646643314707284950532613885947919645841585354871178337177289565104052244203785205987949821845668868259514305370840075234286872762127253692931254096818487259437598224443158642135067727860706328702319010509410470711740349575553947305825095940723275674372817529477267897463362073516396763054524278968246019825181416117392494245997559135831822504926992955738675037161606346371517469489519516932361099873594412712912555549683628172539120522028325144390154154469875807161984637129971500817366937868944286268030123545411240816657299351558721902943602609880881708210114426620234621961891865106208193782327628553322157715865017455920143044016239708583898550217439614384174294318083094672436902408354013415586841597939472194138092176118992074521914186369064411677412497386126564058273326629427045800430921450467871226201240895150624503301896575305257974162206260108382488028146473084630661659104909721456200436380335212109053327900941443000694331511245722231976075807041301929218392517730438086547214568698164576533272072691112483504352337107993796234159696750139474353288598198647732909639741041283878294272200046972199365517947809193014348530266694391902350836998583870501454298230790538426777195889498974780480428336132686642731680149583684195659107666122697378118812757129841441287813232159874350727620361837719269683428962463987834181970835729253853313183593489513315887533718615634402047408290384045202918574597489461856900866158452717209968687474948502203295796833064625537671886478477421197699260112191480356767210871391044748642951378444152897876300925467693638936714256053221484613807564115379306730321505458940306330618827519139947627772272362970580471423488190786286820000526520592765971038402681892928392355698306797391233834584028728794866395977016485174548296635583223379831045079581326462607255965784098363943194835322975193593474624543117950012679071444279715727467130038860040136587345239050358220618652979902270218688363308650153879757253905885911279836532526889887684296786852188195531808783608985497673474636114285364452849879637538482033780188523915671898678960919607103743782593791346614935883490947120054167658729466766339201683497428890997296763202964375976387325140435330901964321873972892259120332190020121495119813234832768414246177007819711076100959303483023897627684351302537400467542510588401969155840905250527294917386270987453269085447328127968421170652521970553662734537635963345846194854604209567724701930438295449789609571701696829052984607387183689536595751645285500085347013772685616886105476980506977809220416642027255893597386418022332928027483838651249423120348365151346705166755072394913796418658154770670601462843136001829206620856470783205990343939380193629179254291136343013909942669962533541346330212463673647605086723342806436886996605451325421499134404076962766094486713020657861432803348565904647783120166352638935557494594660677171893411304972331747487651949881617609289013880693709489604412108667040125851338264600781141877314709507824183179694747836846491968038200760914714665439105837671259501470081713126915256749245846482960239306508779432690063434209794331666125139020344510668494995185808432436486919968532950136545501760742098295051301299714770905102547547638867291743422626964970530471268318592851052488943029776111544999664592091945980512514974994674169336894072816658227501698525772505653399749609512315458008411629259038541883526711766419453561920778868961091440579919786694028365208455585231953701531092580347327281781943271239370548393342393577476210934330804597190983321541827011651076394607510746099173823911152657577592912771527826925237073019204780370151006467619193812816751497389363301342181488146987022269932929393735723819903285521382136049373973425928635791449076621810922660914475363177464447551907631763818288020813950614220351277654770688047207921803601000517647400019827647499856637819055926262153582526187580227252665219358501472757097747999812099895219490613983385644968921104925406586526748159875202409825671059035782737621433031324193596739962702634158146911590183511860189746326645712022119279310032697561773341779401292582712301978078013880579793604145598533415626066727000869325583726492111754939822095119111501935243631864300173920860455743467180128179849389026246516892641613081632911217770821204880292974440633636610158738586523128755650887152741743293319701115029899962232580773141854224400035887509870843515343881778096830111916442433478581370125163093027950311949597411976323206947335777154866247101567829438487026864226626419691423255891864298242835258396062815007523984357307225871588634634267705344675313938905980461337600406742743833404155767055460572515239969307678854116223929402278059446445093564994356764677991120859416501651058902223474419399262867509816424659004122325978137351965872998075303110179171080803699996034863681689239011650161443852320202760573467711087214702474175783095825695488100730678947366169439499063672848831387208638312736826945112598648435654767048948888141716136705450012689007926578536987248397160992886114763970394761153809685185949727259666112829348440780193758412347545702808238584732213715810799580571828350838856384144059145503919669446606547650153459168980339761799133002266991693572162098973379798432333172913445776500087880893440589495246887563547934729150737633928481154181200704420004654784707933064979960307138648152758906800886990320532654203778614570494800085748523385617824552983024469814550142368464535252970344716818231752792976971150080642638655109788095002501406110597812514213590198416801652323737367732844857220764487974982296161241723017311224693142167914467727139638290413029238923093679303083209991468152347431342562499663215651797695344060068494659259035963072276821190675261310637638488536806368685561090780135127189350580039938520450115294010616128217130595358025399335581738920388936919415422247595930175144166473186263911326791191704804639576184040037617995841294717555750161051471277204377710745615924770391571624408048989361020720481396767128089827151523802641266739489126556830143196378447697265065639235190976520742292457615961484958859479784380521956540303868292384758104215942837279273023669351432733111351240933778708793007347850431601008034890825947798105945608688304558354856050474020631236280298609532877175745880024194566033576557585417647466607687420339113804581801100476021396316979684462091861477712442371176411365049694163765005010428163432993106361191181348718680506915596189760133746283550181876155940790756157240768483649809490641981420713342229347196463058614918281254901871877189293168550270703380015816559872068325041372741349962712771557400089179693742603845921685569546307698961082797654069215777664964663151263227027206412234169135260864398890409056122504780805883408222698791434349317309159624051724459538925187611359490838248451114401633417607993432384369302185227507718519425994181928148940938596834044181470432542444892354923157869280031090726554274750127936543954021285064831940575515202490965579118665936832488775222238112647240196762779610308552192844087917927437064817717784902952922936779673749701893920132411363002503447032659493260737794224011058772808268119291478081692020849562807295409974416853358574143134875645252087488591271680354862968347798122483530705865577316983630782170432246657333262532173864888660362292358309458370348847302155557059961264969908628345811703208632740280287990996009835994329937321010586455550973688454969827758230832352111067831687832801305298653726396161754396151254645199939627185654701996232962313966183825049030303847770172464723928934231269490269013447916157960102371882261452341412071725345641439604344496131150436040336359564034162414568220246595763147569636805522927325767392906578377850754998844566850208195484144141224064997545803022928526509220537709249951796525816615083090864337216298373682443938783649442764785538439497780803278479347093886934026902848398655228909799438820636593334383814868072180208081661947515762195078404619621078137647571405840290249615578212870331537474142592726025254522055304007040011575799334281861020948965249122311728229346447250349989224463288973479466619066019473110690727404200735226261562382291159995408242181759124724817137698804426414277462581214090347953833683457538692909179489765779430399101839559869719007612209384286246374822167301470908955211739663786162128177515928959240991362360245536042788321346745536013323567127512590226593302544159478432992717453869214421309130329319790193103378763326889885567338176475489926453572714513636469991187891727938269521191021018048428276474726382230335320798855107169829060577121800440962590782287050330063695906779867011783157371276688789505772904264828892072897347632780523642871359673644681707657618028095878755188056200586107524568888416733731277045800265007220822426038445812568696822144647334946963388675262783975176405081852885147870422134881270710515602194886747116853071507612716381418858184353153652808114623946434217561870241550074572540172971760513687950098976729714340450481750886419585766855518989975671824107627689109787357663488710607856232964894485085907144643394145325417595999248111985679312295575828150653516650782383682922992638656075564621952678043346141643461962756155262390549203019153117319771468399399582324177336537444632838919901618463903131783060590541939182031992109094731722432028498843994553550708961155082817557309571635615185670142722186225673317616827325737215303171680146784146105024250834501356190645439747535847662471624991651626365208374243048201848832499892384045947438776714665551319878662138317841167257188590051172474036394518496383787372450051094758280889643294281100017368120944776461865407254692981885732869937445109810083564874750629648999492184541818894988382500679981973617858095663521182798163874507337739509291926701548224191179659975151048459852320822462387139399340070342869436624656740578622723018006556691581773536448140002727193995745753463237267318345903643117741612140280915488983515325815652611448684265009279410911641008827450351021885279056375100438516662497632653438903398273141904632914890222108973538091792016803586148773125971697254423790528177195598089592711539371702160959786523959558526777464732534617572409075091559547726673626180050625944319297162033108364237107467536505847894321304094136785035110300821665377280856695592800850938410061666696483652474606314416640743340334238576152460434986181086162059337184872243030189726860335568733472330425568642255094129098285353036207720959034162511692163064283982399795888634651815503654134475052297062742115530289333195366410398983392739961363054494814113633637728463093504208613061060574234286394077623534383541846516980699632574617294563578253991143760946523388501379330888376179563236624170953090268172885259336313978371548786593962516334535989556423189118449036540369998229369163888894155843022886817406619590239556340914291869063604396295417116734457112693135214657801810870784998208294388116635695771398762549187897112183281124089137080898467829206467770287772553517259668789593771183786271649268040330319948674625481023707314535184714308250931206332049150355830382350781342335780498939900581619836500954897731152604742956311139754285450555009673997478958491959869438298870232905093937397418824676954333017193904230085591168390440585657971910520661562882748146192218801922370951719484343994365541210776735964235540401817353602161713547810908971928862600747225736833159998342138937627674407681141602586913974516060693131789382554379162620429155240406141904912446476985520966646486602194749700642258418771808366137303955283779726725901058635273601012998884382273270975336487858235973533612204241037741371974851111752717223707525136227229088957474914936073253615978430476237531100948649976054172080700309877273899081019717240255986496849637931187439442017596292691617131087255865636295240966869330283531609343164189517849340151732947589220104228744309384999899789552995510815293829139484571456937797282392870637435646893173505731813681481378633461422181834144221830126354699592384013468663069324787200581183451947672844502925170238285838966479779751460829206039574904884280785361002234848869713329757115206952206371523895334159166694743022286781505036027908343058785339621863345498602853439047908879879868748632217876136207757637698031606507892477936892840910151197001430036535448184963886964572247972351043499224979399870726810473543334261743522805230779967774892182057240194631982636468230767921026467253905402447744543686505497154327063209358183732341384728567617040954895357613692755488207527015535879329469181337614521495766428688656476559622394268164322583774284949580566021093307724889440080872825494700312945286032568194673364230647078476843620726980563025612502100309014127439472229274631490488082090027914366779093747016147180605916959041996165012561675639593783776927726010965412992774733017401886705488873310220769597651478821475827844590009921938874220388063647679868692139277572694918391095415623869904612415768641188408140924762446240866252941665937096681076501249838304053363636443180969741128502991767453327894057649091693897920740376472512444947396799781050285095540689979294226748052401152562254033771359155335821871421538373085009516843592768457310500741995031604848525281761096882929405379271404549847377991945848380489741421702710458825337835105837206116033595833564676606291271655064536825854392023284082647875349628198027750807461607640224680182244545186890013608020333922336487970800089953819679219470764186854481514850630262810947033899207022019794559020801935415713149486486251757038485071040407954278269660690692503746442424346759780886190005406729341781009984025484719463054067413600059649534127432920420911470774864103327633155608973211250974101544207903682182243012502898051733931960245628827209280185121054350012594944454517967681360354789131665398376181466093403095360866004095802736304146380855139755377790456720597690216362994894576459019186637914925194425437060547296513334253320690873207061078374015158683857679284001062157378976654120595730379133973347170317529919252576766242409335428997747475314157509395725468067042974246669159611360241818694984966415092907543116914393503250637744205948857545884157850862245524250670198707199433004314586432809071392414035570396604517566520729250203878240802602305248702768223651316341660960557316574648058043851479144543046978327291763424624706788460503014343399637760291804235361561435049000872253516754870959428626007311644838716849465835824429051280100267522444009775546043498930889304165340378500330322514019270995232984951984115772300601536323272807956498656354563460551033835529746678381152474594369553627131742932862436518386526324365300022428484973905884739826085836473281560912109667394305418435668817594383842092833263943571763305865272700444180225664360941170498493513875166192825705221944708120244247848970992356477623776962797066656255986318284894539831684348318833796700821461693111721639180618516548002604601734207429783710248761702231535693457953068297351699116751996524769342968103736312863092398490927426130163196817041565290140721258069272360099718958776520387480441954050026385506958711302940162397868913560254381525057517892275362044128803129199547959195228006471867602568869388951171626699373966403337172387156078001353185164269777379385360949293458432849647144991237205735934443206859696653452736978991904978009732516792420382649017294455239918438844848712005761496701819128602530812901770476886114789620877185930369778900076253610699921113546359215401522623856517510623155634771249047689923870705967304250468145593796839731119008693655804716954666866233425613539105913229657393722868566884702755490291534441096589520192364226128285914979608552619886956854676817256276149856343987401544975825168022134788422946056313938269722126470660293313099728563093807971857279403112325334465871112856145741718548029286890209159456653945687603924678691782691254509154474143175786044397348514676377565617740035619701249778855946433574518966250473227527706356896071539373179979333892746101309305162483301585316069817355522269479230867580259444986623518590845475470136904908299703430810601351533219184489227483512604700765803968759614877547626805839824228445840559014656675849941533621301791230618141202979084492539118510788520430630893532722446099435632096655419777206054654087549981996360027065580371308348322157171457982357083184812955241056290510534991943790587179790967772470800745416171154738148206079721228061223438449214323409692300332329143312483159096801122883272612777914646894184739257314291239909099115884545361990133269495434540309134745111752909290062853224039547336563696993315227811803125512227052917975753014699630298621953932023850728637101630388018655496112162865745802932157988601667735177726259638134165894723594250635424213416969108611881561306255995845634769939017337098365654286503078567009691083854188455392275718182747671375547435903913434511081998765319040516905962947577643299357163350807496466023352609903124174571052226261925090552656157820392639558684710041050206496256684823721453742712011837841162683181704581270115578616359724828922588561613293425744462655651821219268230615346136185572744819810022174859113791825718401423531302243955405038229720554277443546730317034536645972476878577175462395713162059657436951361137567371385894035239978247928236249547237459887072626543474130549248401660376215189035720807000314446181593812892957740534434622731236355421769072244168506487329301714169800115746875574714066582861812760803137047304444796652114187248996606044582830868870971042131536761769096480537562492953382935923139493420874818835804405079140952913582188590805673684821443389272095523132329023422043163896004269904003034884463485308327952952868557089909832045371923033444594276127630385296814906347982295401716669795519979729382512082171874184563845236667410500886306330835510489852346733643079499367159253900297980762583917377787019728990481045229670782531110232084024255688772221618444998479785509154792366072560443406690127927702339976561006544840482788830723536250985471156254637683903155686782114182980558574806583479368561195088613647577928898794543139002027186489081473393865048063574654450090044864215365182142293612317560605851059914980085395914222073530580353476859337553789650871396191035642927530508832490047107795282223094001350860087791998143659434003933472370958012075575657792527457703829399282268654679730312678991062953943178889581964895878065878894377678489171677158133679207610296463081771506093718505069817745209174322989749856963256998968245391529807011905510527682980874704609251108952393406498526044904259077511758885925589373042914814561627013142749307578118103732786313343004728448941185554171667478420941921035755475251550018947510024603012910999311123450688403285884040434284990703426350236328349421276028854736639980143960125780908889741177644440319286440432542578638455769010366500883575796379386132957550280628270731476831295169093004712019506151871037467693570091937331977739954245692398516966929638207053683623038958365060573265903136559728546352132754437519688138110770139887938491595078676301669287245652173309857444323050467890852379212955057164391085575381547700147605987322169030251616104650550948009258801685885661382875417781826011899081620659719813810511505150407763426411885551779123273279315291078061289232607041569407409480107487709119372886311580233368569228399478926083027627144301483124523111051562243248029403229326404292874195761848693064871888327838639213175541431601966482800251623724082856495864985300690464915288840789832297424652915286853426716097752526349051959086075193365885202199308101215279450121904469036021926535845461738937685502887335586726395917949765047614073707732349439950122705697219430983087341571586250133711591415846670970577497536126750044303666296483640976900018420985491213332166519744485033536567940348102740277595909388004301152437587871850320403333343822702779886196340155687995865456880982217730509872942883682721047814746865188413207789456935954084803735592704104840395595819363387696749585936216045530404635646838581461794422785618930324664960747977418625363097268204888749267834118336002785233148325433949455258223070051742757579428601503398986892950160198470096656320789664392613624004593474768707621541500158371665629159665334470803741064540283527372363079761024309266846418073636177331047461540970364998302421067400305539510809087290909675215415489102919899136826360893692317097864752731164338213787703281576127262877355461682708066173396921497789166502514620179125434929109179650368313910868416179677075924375487896845965987954811009979302392119408000674698796452342147066167456959304571771729751422284147980842201198163846906867164713633296212115900462426695580248570898680985370069315902737642940036035727715609795737514865330682868820532467059931106172867286765953164438389711579975981715728272496709120921471283753519810881245307638276284621127953558570952956716849755150558583862572134383854192146538272741769143916921272091000128700438258021467979208792479932670770176604100400694885757555585636291138427497788694153726059200295548010849721545726825122615922671899341204724131240299610460551154429781705508845637757840999299625843126309654017078858664678222910537690547581882321821810036522007587939959373441600528143257903860006039578509378540278318730155376633574177044478022739635389688721170581183794088113004670114353134964506148551877562431411838318654493558023634079356425137929361683718856562394054713474715087450627912625188282328603480178763035816686761509356633390403029647891712981826664437608604772811621617441537488732628545409888548024132416133902991494418425951761871495239800427457601460519036834983901836843421630365495890150407837469636556175909480981299343467544206551984211991283586052665737787161518303163446140531986780379455405123533203666536129423202233224448563856840480042375767821319492091109215758843273191456083790591215262338442519652967830232757774144820277668580802112048544074552853041093416891537000141711906494112365297813559026805557943788274948906294134531893070848109253810072065486410362351034494275951423684004961054601570749066650975634300713670794504036743088774327937400574698137456772062329459233477379565105063607744580611396004884957225407471885213422773403866644182033514602788008332184572243928314212940331734560403058136401044409720803704311885715993121734633751889728082667063699063401397482643793513300377834468999795797022140272320803946288329909598508626994692624701833593862393140431859019648921637581315878213554747873771635656285717992221023568720851296761025789968388499804338660941165385316385062800625092086570674060855316175656669293838521447018130419360895520228129166865328010258053070083777033943365738437504663341808744693392320156273764090707077690768972932178187744327958379201887150192097607285226023972194885946100588697171763544027009594223918433647009674448116433723732966960904751647745578381133686125456251577759655254990575750554063942588558080438597774751281494435115874647687495683418615267736068091189841837066983315723364893768610119997388713594152783377274936001783814423327838059897565137315751301988946089496013174436858433875562729268417332166270044106089665533120107671171650278947186464680188323270889112398821031829446886619945964580648743940979007228304849914086795821377745136532988238979043975585714945299918479800892556013138286718434974326753710296076417848262270355949730852889079978470439534777745697452111260162057004308575775138057960053841223122565574995132813583287243985415636423836481578805645793896484075588771023728221413571447685384995707067247690948229794324172075149326061105495236748878171263981050847686914115127320235480932847253634920225789586168174305781035821882491784309813393405679327935445612739280838154361743461677570254432334513957189602038006364796488488823616503191262437412565229628437044386484175220648985540256143227860337907150076504642560894416702060860213099872649976801173141012046470997960476237601049888576001212499437820004780188988383527568402972577324297051501875871895962536337803710108626305547063034766092796734530275894652268335127371216976443256347883505964059886758299633128177342086875467031003045630200532942139514727624880078666117013999366333951919216339072059704074313949945833630955481800782701860341201002789350050716016388569401107197102194554984683957785139231357477271184909654449118612842674126086397270307388569436880796915538824491092013575789416036987104448851308088343917969999623264193131293663644981016309509186800137251741318843574705088234239548299208355268241609470805020901185979454560145506495526694740397738813101720109639972375627579505383461266473995820157724296446659879155953109428816378469599252665443606011964839477600444087150361153985748698110326189839312996609520577297413167253187754167667677503603255448276601720903319139008709208698070909433478620225320011228243137076962332209321418626326941500371166613658494741995660762040057379787542026539324441843353079327327908714288687364953721754054276906891298582255075140493418970477193434731019589950016425570121583640667425486181342878526781380656206494035443612128278831641763690710447752913206577529487525152850107337138521920865146782012429309132693793401938137652255758073288472288525877072602343863221082408995043709891603334085283601571376661001933555916141034171625998106446875300130252752860070757393981451839303426513648661004411633651394013940902137536469774696746438843642397233703565299500431909585318975162588579993443378382736175480068021160708569234322133891109627351818824506462679394146433168855289253996395206544940970330030410389971478424896264544882057388542761541481945202669599341832587552070020150155691993135409821724099273921560502562877963930444391221085191765316314204344542051762942996401211240881749461518160620148073222043184273554567673377590006095713039254193761084947688569619134825173778214318781285048925247561159197482576343855815476410146175024276029327552170402460218432449367713838831141011939470989734345147232959375915594605867181656315273421074242118011524084926503902218939395540494593876602896541181269146027788231456940770321668487765841736815888164645228856266714478395628172959848699067185316705575791351313436128453432124425722485526558052558932389670391866300782489860253653400081930602100358961892969728450941016629410765713302253642117171651894596420716159843020243681212605058511037253964542766289851874850676448352122481499195679445152383056938696058624911421029185988204794465214052355198189042077801665072143615575296023756660629387810851614417244636449559330309498186996907852343346723954704645929842835536645413216185958391064232524756333004048301659902872263129684483036997174356499736534530936172322859918677109073851026322470523320040776200926965297523299077085527926900409164085039834950000117380724960437801276669722207166719425171178246504174042947440523994418487461114371915067224555997156352368367611377578454221967107204150850089227601348391421464716136006078174805675741119289475949422065648221535082266979735956302712024799556858489493765945093671793200365939203734899673169863904452907895452102447002471308779535521170677887776602733505927249462410183687644486313557292184021515028260992404258011656789988273784795310832850095520306650154741348335131329127336827500122008499996543239618629591513887278308013756372350555622589216108957070655630151873801940079176598445880367446628105549943799900326528404268123326951839284774841739084784947922085540634076352598262335574132841261654463433181491963406780384856221089548252483343319396890541878924443416137430438107545694901313913157537105581272846990525016766203154292362183183901639045208123865399118123051045176851122860464592996241592315794957527426580474267536530004006942289171280176984992798459240838659816996086958126846136122078176660116976416832682765360928845723634399125234361630987619763236258493825964500072500490488013342623548414354643425287184220473073137551726542500357667105066451345838589687990714621079121149616294559357141931996821830992456898679600147849656282887312252825649177804907492789145110458255356893646043209102408534164704878871363551203873115688264161900964633570842561783960084215247990829438687212491150604387445851843173916552553147929613959760514412764644965197806071024488194521071243446642950772419975311625916861663262296783535048155106112762710137662362519364225968870555353390875664682524551446197656206224124389588500180795639417773397519189703787585303032954048556062525272147667268868948138772091999127315360109089365222030494297563854686210267478500530003974803691300185034958968075654020287454928093815265355287698766083528395307671741182536226665202564938571358408582820964886218812115062112351329588430063411627002901661177229106044475225844409082368984526573675122076663451714872813719363267069357916684666062091566979834609774212597872412778773664812959340446563716286437774626701554647998034468135633220983285193612929741202491929732255709919326133184462223239150436453943691788393310097127112286428769370974819381476005530903991699067364885876627878927428272553643173551230963048019819320615826374711435148112689206741878035411038317621771458807625061372750016063550775597635804511397156676845893169798645283873763377652107091084617076081838382935530034581407517618496213452457669024324616058092523573625944886600275062158926246327250727208752062934672985044612608285487384922695358997872724534093658562985622773628561072588220754038358750858534417950310954478546086017905540295199619033130338267211694338934093628817729061377418601983399785718735161407079142517434448140721718994032728791738149170605597180803669122447889517457243043989455660287053436297927416701493733225588578021066261447283491981744580095804968434521914046558008083832621230258780358411324930404741642177299911171002334954961835669977046521759035326960297559680893777069497223516216885814882499601706073781907874246287920743913452208032243404937414583250254622273494396095321332222991537637564505053395194955854583520758370493753339793758198428259075177875214179450440209680722630906587924281711692648913787096562120309447801626986546956732352572286688384202246262695434904368944360853640377949919144242411588504572543943807312264985458578265719167241950588022863443543754039075707147531506334731890496987229625087468059644400955760986789978481215071976607315740065628796030747725679988810098100948061501221546907852670712495600445965611229053164690262291468899319829048953262638800375369324761894132598397771953836111639092393903009888625526395725421000772175229098782469099928215311979203748130023554291151109813206784430951848766039242960794469455114705552784439487231646229926158810432027997586347933815279325878863221774507153257014918054735769463559854429000154157644769002639664981596762142090603359720616702751628023584674945475738599190175935460512180829419790868454358818030949366991615367851728698678882163803333436189320223128345440731126603978028920972998887949625582289381831320403106263788569157293535140422693063063160312115327806177099887350530436952841582022273295810394941137996020809359891303250447671866821866151694538573236015745325359191739060483530776639425568229703138634612822675969998110007516347761333979202020645558695641184702802909916689147071538221604467302227185222926499289835520961397380765183075435946282029259556238045035726004355097816585880466112655017751611860396955287163978698072010623427793292255166081768400831636653432097226749608523015263677322746412216060635684810875211602107797762055382447578632662246303848495011620765590161191292772998154062217277802333473054270707275113781967015480457125093587878656790814216831945519285859831455256652488974192618131323441990728249117999734034893337008837620137982100616345289049333062090952837131568466744241618735336015891514395507717830867012970550725383254910882032299944481963716724584736045141747370246789867544208857583359949274190916591350387871016212616052598584171522062567780471661889521540136244461383767103836731739708620083647685337907808524927377074953463789796338395559685405851883346724384385375115037338026206807853680485091377162840164748407747586209635052826049403080990243465321986855626828410810851173666867932532194885559194147433253376803405532605369159068714090893924512441912118142839816172979275180915406196933154783135741525963331665293688646370200380114121255173430980494745697612269765870719183369393378328976160797142476387656382728401721146462083176607910503985588487019912266447952978950053898018960479234344702083409463320373313297454465796693337186963702023901345667811751222732144888635886320394160870410150089391324668013401014081405555698967754315778359680429660939153184877023688075468351384813538814685067781779781999532486188058568528418162803103976535993673347752441178665514499576723702490603159929575215210567540010772356832421152275336783033701750725078726584455059506388121215037155654006080138085356359996628211585752603623936226455684066185736402270154337684486949384136838150709431539735805115936522647030564141791338998417022939385961898167974802799080836743473896383319503541472988735741972636170235268975521647551331582264270449222508134131734279703832106341231323721685944761264297533873463455527606671776194300269998456712969135054445845498427178567860837294161203538037836365598659747789923198498832508611857114470596851544688824092641896424953948756195248742281893752284543802739167158275646772899572814881300176923222424481208714698979995743912420858458365485783836249827314519819536380560349257853462242895094231809554695361749084837179894714556048044241135174206533396970106739588330979520983078925459971212753108980804485511743831785639372077287904404656463673367404664935680019014077986469839917395828460063926111742762877468166656610002152156478707748155775583907437593136071919369074458459579963699441829654088069488905865856842921013219035684384819435072788264186284250852952514889165178831915564772258389098481849138781055982905355090381111591449261390014730663085420228073107155213440174213131682601072565759732113292044971295448649344496408023618049691636695014277498874346439032035751088784365626044086472852764281590860422023532827203326640386959458206877608097862597759682745936780432089655045676420709001581084503511662941974173527384668357029235427739420395098345402457547295875097151314370092563272384224102466017551689929756920045338529750082701945773122136311040228494496157456324333885254705283871053697203392447345390011462810140005931803371076296572801341509599654206927357506824548610356800270141100751381539565012751825890583030769673216582094593297374664239745585796277239682225898615727589776387092928670216911737928277809995690992098374110170454045537467852191944115264016025491707743714566838044358319510869748424011785932038294566067109209471378907087709375541053618735732151847821558868826828732443185669760507358472269881589862257448216693926953273108919183784197696760853992544777501103520678627270940592167793341062578034970323100779524095726684878670859507424678266423437325432502893304473225006826049548436084391335241871675187377301419977459433806389033993398629801434189877553210054187768192818953880281755225399319763588893726111582571478877442346814798620016199928301518941804906500571631536452341130766156888099763410220897220742374051465120552504814796079461504508656594074932794969126031599018811540167540303341172427664111138867983949360693922964178195937380046528725766823708887945699097156520377717529779816104367357464440677059837394926446482000472884857290759021574719394874733448018544351647097071296131196005149573687675325221839308728288707094389191222723363083471778547410306136471932456546800167805052271236815867106439489460835354763498478499528728777620472670342264800126378857298182464741844666866384133491859170718671225887481149904037291474965386358970741936128603269320145656500809326000431144439476629056639748275814126709820798868595413030164225668684222377581249021582058679342747307356679327220632178814816334143105265378711610178134410656870544441498690318779439675875449035821609667917524394009334439471985866792872633125332598848796092716758157605708367523647634388184114959272091326058611448197871516859848248572014501554879663561874373758867747009334255138040736161377634833350670072194650003345036489491776483559208654826607473106856091941611811397483446220014061520557005164677813405019963778372053015068491917621850249748068769117949795960692610357858472672580131329191178763882773488103238211709444701781618164562948204678432995017003741639719409838307041579534457754892952394892519556204212590410228526815479756049810455104968985443668446970924938788288453925696141206252531005332464538620352109881167216221598207500080196498569002836386085851153576301284366955185025879330537901552501526388489189341123478449895526352310313132931153533047729376558563758652409279243107362301915014029329041026919050171988473554416148383953577017486582605221988992452493511524196950126122360074680764768369837543670634002887176038939274541349520461686725074075378841184237435121171315909182278117131922411439559174977320516715883207335525654352611003690129800824571635990241785116487029649018334990959129024610381495592634088299528184733805257920242378905985401753881219561926145924116397458613831127379075907277963786598367167343948651924411910483657827161588165974925032548920359491741034038214736713926280530086264468911132439918048484895651173584271504952616067254118691683577405464049958266206755128479136256871178475629915771945221221046896794420424218943482305689628865536558291660283530116207638637193611837921657120640410311724781388156928568683202275962083350352906360506826538828791518550174360315391544173567287403304025192761338754826612972038648354040773245338995712524097882390518205852954547942929625062526876616275060115116490843095325936601889868251397885855693725681673040235997744982800504627401236497719351312361453153051850471675625625690580595969029559222616508281588428322228754215667653584858992237767269106019185235103657530545697333182610526113623846611723536368359675690814576078277636392177321426733028534849747222348671508115524459483810152310767263020928392019562075008413730119047568369235791596757911007793691817389046310304262675370541263175615851078004397830080026739808332743981422176833679379939546038415866918987947431506677103092218688902701881968130527834615366512244204692208930913811394055215302136038989656860120970712636700263365198685801804661334433657995217567158682146162868263063710522958530638368141365317270338279881066635818905045421611737746846333846981013143873736946864108963666071336325996134773778622236626847430031149808544592060225979225017874326100864520170838249372053960812722791803973012410484304344628560528211357071809270502685028882451354139300273810924755590198787938961619450187586302496900860164483114950155051773191049082653413433977485802201582051721567987449686916343323706220314681647331265812996395151520345830843805343776544318147154739141147617300147368674808807883067802667849517852991243073513897754279546932971577750565237479518020267345831543665920798945026897276629903080599908324763605447405878151505725408549774675623767239071435299689081544239800791348355529197392894109908511255250398076800393580077532245924909627051427909426373606189446655388382039440436457387898278802095334892550687686607554243572395978100838150026991127046122063833448717441541542277693134452560144541611007320838353779170138200539812898545805457120760855458329354491140188380119396048564838765691902665593279339346412590644200532249937852493626419778320899885117702429600920351708866692795205393006226212928568167551481554419223277213790611460410585292619044572648759336748791388616922860496646229240172626925826925116077400261277708661077325126960695330841250527164471042737499565181754416938331822495366906474358706131649253655024210860372758036068974092957555559051976083649529739600098341424930542722106329192851246838760056985267503118815937091930323410591715966606889753960151763467893858755195296848237317618970403321904775235161270451147994128752251165185380041078759593287887664325473598091569801738711211727632375154710066934275891118877896879889459026416505320573288138470284222636815461256666436176728425896905897607186474211666817275767049013298670355219724637433592208932389237214196966401961661751308450727998375889093752115290314347958715260232857874015201684051138600803163495808224270963484431482403594533201547495577777414870257909000373449198997855122649308397466512433065454174414007658778159767656996057293365557695701434201641317494050708839419738956343114978824871624595418743828032071431282685125486226935393634459595563159660340802890471852623939873630168328933148613287746702121350804009018024483046736986905622710462027226992448669373394950703635247236216038595543558957463320731436496610358313001804620247265798614437189004992242177286411914827172397156098700350415871454521286786714141288919823075770031842398632539608127193475504772851051987408469726704792136044102425451327952439383444060186264614291812229658711901605118739810427233110862861908465031089497174649145610620521219514918232368117108395369892664586967190751344374824188094084092113130908043386974606695526353074972424838009774545691851908513999071875155591802504651306685064517450956838420432605519598348057005057570574143482726860929246206216119560283578444885423323591450745816508003640795173986367006905012221088615077571462802606415382223265708220957598415387009353548810589766789391508136749525313674474912548072254510485906562015292298415473795709630745460581976408814486286736846629718016330371724851764495194069681134660386705934177793501882417362339816663909362875416825457456701308548983577433169771746887023136325514954168330142824427912879548638479782797219433020347027039613658660102221310586463208124497542922089428193170157704536966393617364673046746771259831315859644533898447557059743429081900707455833139198001594809346545541095095200254912310905960926057022506408164515035800982945456989961331036496164481624489426754908593149759064811056930221904804522863030918851469419201898868216976823580933955838664941100540505596790386374005452280295350192056514384472410052668394144328089613997530643910946161507677458562843637855391683581944190089217406024468490431392812187834074874626111531546379313530226137326420689888717437234743743221015432464045987005005581024621056029051472247076336236214885162404856380483721711952379529674191234875150651210058372677189054636016948067848007485427694624825968242059187493939685424269606197484446356860182152024082893151238898868323531598734132755731022265354793376349308158674485859996236724275304402129696066888659465205662773193956634216064490242523460543426379610583756442124614691976904171960003191254509739199366821820131790037536022090399575246888593297493428003506044456749146726416538490818489132072730603246966830961772390806957382489864698115462885084503107331688642104052248885057643807453737251757030794527108703450638094763875823315889575985230778096486536293018536237707383599822427249161526779324206280910340578346894601997662866366066633834992561070132512720552317626524440013693681681478492374330349798207874566927200549392550862642453913636415076333368943323698636859746506252180639234594390756259086476035655409201411011956810667866685802040153446127503984090678162623046728717511839883058433405740581404961836557048503621869269474697049314426099131760324866089445931144046494943870576695606886723721338797949572593039755051122669416709759007258461702571946283971134449433955794923769865366563064977702701471636662353217025646689141231548451991167163469636488907364526048512564376973567228593762349172801288007186430622569697802298480648148700670840647164088325816700946704318187561543937469708303430728178196656626435820380747952950918517420966092510950030873004389935676897723487574053194750061735925909572082348820277480106691751688356541809019998044185287825931441038540930275495665885029640826049585164635310502173380881095988211825592061816340916229937323166970182073126493304163078694442559393329978016591337713432204973329438533588307026955990246145421615079031878295970980115887440653061342006934728652792691948997315940251746694613594371188962577636879517106964058902127494112870942723380965020872590343250420185926376355101248963090401459599433276756481068012290558984503785008717954814506990848297350259695709675835129938147952454307806801823405118728791130627031557558320711017239486568368566273869101123752481036130010849849401716315695551608701542892862626110584015206077702589010958721264097301918566185187173579453594775413247504647331782660353689588916285496542807547332364031249548444780987738552535259331457910924962648737108005494660350210926123467427022227160301573455174977642723363279087675741519270408388021393978194331856462156865049244836279351971499770862808150285292183161120132714258675406917315324100054588832790974539070991642263010727378629241403013072663671832611422798379862681345761772236626165676709138677908261676084024066503756710094973405449087445782390355012555300292361742663685712014779415478790014216013313948173892479792522223203278792696083512686089492938907994748735405082642694346405926754094467064393471369603897373945567293863023453096853849981601033550714746126952843616942418263426904991862315913747914892544834561165522152759954436842864264924071997368802142592941250276840885267700098575628685244864243694357302156784421217082586264324589529094531411359425884577485784298744523475620710954040992591907401721812667163711159830627521391163053534737991301572635519282966194324110026245794029490627039537327876789805013093325742524373421134973803125124823837178013085537708883679434640579895112134081714352323272641672176732124614957600450640077054292965040624958331402473502753698235810468202774056895109067228326747809300682404262368574116049124397566457573716008755622472154714502323475239042859627442214408325783725377510380522167546243950910109999607813995608113683390084015547047857796929032048950003216176969378938360702790193555387963490157526092434465849641937033128620118288793530085140865864263802332520354194086313123246642639733282079397364225474197919175097629657739799570099826082513066910557363520844207932148180209527385740206269813453722473467045133210786380459001792183719542166565981775235700692511103245570656820954134406242374769566597041700048160734087487467572776668270700633081045147750872741364596822421692340296170071778669573931986493335450870430312560067607235715462195206902009860870598968805550814157236939439160404070363242233879849700203213036502036280541469539121043796709857493485667460665282964917916467526359230231431209904841756819592899962411563065823905895710754145736282933669935165652054245660576193321268105806384389694868451318192041519573672516304373038601184215881675302627930917838780061149589019981093645747090624179385003858801039086941995684325099001957409598383874972539637730826739118046307855302496957801649440371307324658468298848675776367009642080368178149228375210436372315300788643179196000973398624823045609085940575299114433348704875661291173668291404300568485087331622426465548364978566750458775931538565653508618917110303420653568732291676786861988207083099731839680331473316963076399324278735158970654792316694711161377424515739004993121184020706197827062345782682275238357157335830825545001357165781597463779375203227159697538647048895038462533331110688476198399803282875413106952297010221438423563023022981717974883557083141452539474575277319137181406031059643900295043796903081430572356881266303139042028736081758361265152149628215879643818828255481454044753423320100230488022584296057457993574483801058822002737057514921668072830873747217998543394036165636540302651474546824577446452573091063927395764046704042237668221486435227300562035904230800360449339617689561712134760228402605926246821187752894348342431381061998496085697335873026221288795624832404121531092372575042256155921873526614290361017768500218393516080202074005921062855382142413248610481199594607595220305089551383192904391513736452703783155292938244141279534069308958662502061586447623289337392680846199174868188255506529120609608860719470457338166104646445479677137936397775795554921906963800773298497582218069580648529329196906453954503378265633258606416961114075187065502645353473915531330918171835932211047546123533053034420171529009712490447117917179330834683395854386503441309599968280232170367201662496627996941861744962918674872909871314242974430765956988506621261844516889904766032778408154587229317348471191733358067983052043121540180632605389016621889041762056573542020682650552238280028785805852981845418819834275592117817507750003564568392212778291709145932875475566936704670588223159345660159309607846185216686603503197291456263610793634300298377025423393175235496448637763862033169269199798296161694027784750576267530068673800511145715070080092050717618758287331425084720276041724639070633801320705278049924501178700460737768292391669274107300966658461634682910396267178536341347056694716939830425913426695800527527905890540986034909480110342418278446158280841389074727130472646170770711588449807123262284394117119950553219942480305619016072837383506486982868122269969517773952335173550878028607438048922260868570383248296852285584353966376568621695171163836394230720788590025053481758737423580855207468358201064442261234365743460874214146803712943491144085675478497339495141717319543903614190156316852586696559722777048909904105011312654926985489158187732871707429067508659591497009315514919872339073803978749032330644063118135632256932282705622934532731797378435732297979350700153919862310079558535221171677064567958242346599941492908814694032706364643023737998860432820185425434434166932682913495646679162937784167855310292896807317856533049479958300052320491242490901997254881624111771223473995215816995308149861401269484024199098063933269805305774513783085267555117273097493430422759206468477587302135683515146253318172902180863334111262524214199821857187320674901581231755304580329465503434606250261586611889328408807057989258145755136979410178476735737999765939704715351020926708462829855691246801424272716333688580946550609773337145493815671185836751960961919123433054705720169714656675842859809706783513982540180950662676398584588966877901202668056684409016187931609260651926339571102843196365903962640309848289108534763953218024120970626570549322576692275203753024354356699430989059480421968844122036147839470568390655541328630577433434638643055055815135424094937799629991238517901977851804360021132314748900303838271804096326986432629014740443619659187956808439016786986470427770149556888851220332788554436198010117143743625086235454497736085145570858285977817985455196040261967187054796736800180287186304615070501932777823766286485570510865540981939479854181282608882151777654700189636097463649144583739299104553878066555381279547960879861917568155184400634188518680789366614286211063373308223813587967694383007196483040839819372560881634832164355151976651534005532633309061040382523967824513085383681636838538901431622611061680660352257440864100246622442410114402302425643241579859706537289405883628568267444837532956137344499017687909333636316311055575259138361093785058523828548929791336223845143450969342425090260364133404631911229999063516411885228192681020629655372557816928226010152439581864619335726115438835343427633934791019681850390725575094787390746329364297906855830120042056218900518986411855098130801826844337950138920670201777540728272721495854519613052713650924693948356556254634355399904466721465073622456359724174207448167889293750831160130204949489017833125174808785368228358759102104763658724280731841866437187937178177541301553257228166851810841693036113416495023035926832091358975639462965509145918949879210844728661982273387602361473430927872074498066029836480588702182340715541106483139978846116618068987056429058385738349830771061473107711787027347118016546392261122368970603093352377613014236982702934878283156478392856927523781855553090455381685667353621889819660705683547453838009055226379983569441759195227271796363404254415088057648040970090941326292265519974218858001757132726710432765395512561477309737022933764482076985916411503734461976154386067049644489131767977713360144484798344186834555156310994841843353180011647325463722142162991094533694508647978489974986970685164951139917757783884237733339859899262755881661846794817375285624489738562136832575629146931649996806981131423552173442757933435072399670541054937980680640243785664993333861348951329220331092182063072022297022657053565378872785803485165602966874334081809521638187508265262842806308027664111829403014212211882314084216980631380319855685270802843788404267939632355695732034037699833089847152645583655606879618831545299138489846847448529109424353890777661023077726746150598784507840091881551215158543561611134448149082216829360075485689692130050328270745617638537228135972064684821590579859218690717185547355824307879627038794943626885303308558097285558073542082418285651998694993540543765364503804759963843758759364583541785473571309456847136144594642943842649228245566854979562897536812622345994751901448565169407992836378166276846295498950931547421940399128901951526302313965350864694978673225808044713454615793569685462708689270776291269154428108421905577296435117538121132405981829250148528827329576575194110304542837289070513994566521604114597345229935514037830226667072834921491527055696397072297394873334774945342447072672118193564683500051532196031644514319430616855618248308758556934859967857189996727871108298835195007779110733319847831239237800532245957508305519017658829709351291319315616762887935967015387039484461654619259054346896056027281150184841166095936041772345053165309883771316890641223412808541810600856207554620397622210165300132949487666533363900674584432797095069478875313210912304219870510944565788525863871963598621356593813704956220645802064767616652470651520064187353856694500133091244451892482747786144881109863762377167681227799507303086582991117622958786595824572661599409841446168143119611661162539007707209412655327660657659505225021147769794481568805812651797058103033266239757265873492760400897556023877091637188099478213876030554159821219830793755816688829746069612579709410734523753738316254091324475490633087852371618901880986311054242181484936455085398054749094817662970176480723222183015759406428058295513855901396741377861818851377279875826895682579071805348732996544874648800515945529965931361595370317458382849864754905148006057216630269489085422269043092433390846075341426564234487177691083841386433379985976297566456165867304970332553127972809777916745597816277081237423651109493486540180728732194930224265445644346811575418020538609595304660681338129490057116960743594733595353081482759202669100733067113922795731227037760302330852617751707099502034650683861350052030945216025277454681055634614028943776825118398628128323312349272974078761739119983525057796511355241548674818287718154262256949080761521213749356216441384186179143989209294931293440337428485914853779222611984003624568193000519902041201049677815194658512205380232706357084679441078953201785300080236329504267469127594305928380890762289033231928441821322259106377871103476548462872919794474174795684753841275893814928865898065752207827482683995530271766405690068799438919492334039502510919024449428900756236978289185914991705881895541781218478829712563696323874178876734132937838873606525073134413756730727946007967003867608500553694934711972446096890837081406719768003536023597183666011722216613102756908083222014030672857017466152623760609161561322804562777976393125770067221104876484638793373273686724220989490506610350648041991294797317802964663631044912005024344547632191697859469735733345718043495871104573356915949304510885262659835800722881708225458968798205512367726613446761071474579578853376197862302846231481818581465642257505657484060837715206706593240459072200924282052109403309938036118609848781470463103915505872064609651305442659191542156611581594759605712580973940485163624505750148646251727418928872371876765092383863269447919258276651069414709767921476200404056255793765943175025976647801654477122234972918442444775201784957043730213192307110368923889885109642319603642203934571613574431489344409251523133856443861264466138836528931560619549583864752146353496162853858712323188328861379805062872276764580797683963234837286830327554291326270977989497414884524480910010600695560406214955809681604952189969299314814596069396376579622182794557248085060505537224666167519303967726981338167815414793962312773592482027730791462561693948842627780880697586122895056806788062407214103559911866543466915767102603243416860834019756680690949458384241385641962479519624056552779661976026207781545705689651654956286292194281935379421589545191709986243667597733932503311161563865264677993014508156819596615415844050301422071691308086123966285808881046232821167414182123517963373789455266586424180890402994393205678518192096949937077177171237889833936718571331019170472020910112299396468215175367666102844143845251856011124704895659670495911271030648013160250053888031184185450899202341010486725655680898949642976998839810673532461019545438054609203777775409352285042189000304838958304875266548948356577267909876179988119660891135933860209586432722796115536549287145601272299587869642353620519759808820358325867945081904643258455022436456073338894117578162278163124268122895125195295814663809939865013168241779547416781257734694551069510321625187644490955609241723048105538442252875911904229496253504065078313729270963002929073439841206263202198407490428030523826875215969446598824118974876487806541611697613447770410694682722282896918325586952160636770643714697060747803238997354637395222279467140557773271400375984379469605689922992688688534748166146618773854880514937954143330958664760046618192617931360521136808205901064747358527460462982085944060096754336461071567650075459487750919685010233548008760459989661636234270880485701396048249569804711048535077884117675873398881139111343164002193434156958600996060248563257918976171413649245453663845952283156095800933194442439250063765348190014589018274995396401711096625327948502273910997609781228555622528032361028250404098416407971904622612712531588312067557031401634443041449533348307620690708961612351675913885420143651750691618052299688919206986269921273718161996887388145016636325952412073755225516517901953060974884495813846946324521689073367787039326919213530868591748779749570225678613167263879998185556412920585171499156477939149860561346533212527686242814938115779433327842933167988399713067357688167376828714512502713665277667552093131286495852485602664165175094887419050850154849385101601497102545361717159408091468611059795353928543569157828785980895525364701559536879954255890597102935357574317823664293200760215126998585382082245927773687697932934522886414028333028387722126891159251218180861879915183911312058036884853862684433616910326464496426787887513549540799488387747377316616679291721172029816440233392059896515603196604986093863281842802078819329222166005360872296175356924813758585180768397742128269185596912541741735023398304135822428836975162328819172743039491626612837637836758337039786800318010384317003219046369002177333584409659063324250100143418527277222045201651456575607851017535884674867849689492202653189777635900795590475528844932642271181972858787237023262062350893694530822932851237450668888323087654921872754602849807286357026695740682455863277812623337819171385703321457564242452124767621546700118476747241984473105167467289718261255676290555581206893970404073250020311371555969671731326798216390789590367842119872619893411092836334945377422928115792065490121144745028559427358360065629844550247716088897569474859729648385238138152020058816048923245692622405314041353585793840436817497327896455913653029958193065871498120574943660538132461845524165063866206743012355519931071906321372577765899115599357860053611853930624516446276758188590003635926546799764995553489743336679454618845623726835239073698627180840170454271888197344445360176378992615891007733029194725711162862960747379635210428885141892075954232273722825068089772872724569439788109513591899730191416555148805759498616640075770524166106808313452244144641245970345042656278973405967408640649234060606279427302726365977204947715044110114146235096049603727890428140752306486510166007675982510048076347264663592753372737450599954513991271803277848494118120955700696821080731414000901682117751339426116278937059443883138468379020765962797300675252839601178906126679635175093345580988257547762844380202355146092562870533546655685052398156053773098378868740260619132488772781577254771198184233988256890703225389595201739425523884700591371193257834083743845170665545247647534593047886436003909470002089337185874700470151727100775995527592179439541024840765218751626766473434336264709315523495002494447435242888686433808380925118175230806027498427462650814194979628739130093856582039699033930641185935518546486787650991382722896376912809781990233531884086299704853693843887035506707300377773405993968481061404377421577957103145952775120100024211704939138122405817230244825045703927715934000492699258752085934321901802441177976034317266374392469173395257023352197857527831560104430956233581757075277436968863401568275953573096320563010854055072397818930913319405676007108566951093079050424389419801519451233032389234674094065979519810737515884667017177226896023587319975900706287620467461697993641304816494957870854103278834670062703673101405113970876099103152154111907426512180078878991370932443184523773643207744036661476952475406906319806031612748381369706420434517449550597977589607573208028977490380162726928018559718785911402322326366654029098972520603522572170609442469181423007653562029269497806027695827598754295032175994809803761218504397226921474728642262391207796780363226844272618490100753306417141851857891406352096580208480578463210907685197618056586317350572563319941940362853690357517085458332672169098323141114992309540967026947485608588474991989504837269923378679697811319311981233049166851746273750783736753701091192799010279410184536830441156111003233459841992367302943132416992433253016354906082368684504993602567991683754990356139356718152002767270360363357550675473246912394660381945785269321302903862135181100855050032555917992272866026432667472415850095451102510263422144497744750230016056643678292971903059435703535708280439200043157365165877003637403808555148766945797047928480070723963214300864525997053180874686428987388161135837940533923187763783446960885593229187185256908914349086861557026779060746057771327293686458413768256927409566103523763320506199050066762467016773352927620588554099828075501431570757403117719638545696593730113770581958934097217741785708037082615942556803068722244440322086920681227204625473689864477581345813412877990858084368712091093792289380091559459812586056740227924607181350218790626743137444461197175834339326091972744354557338513685975601431348812655479352804056274243132041657622290840446698608053095409765694051590882321015164274091286240483724566154049211613577246386777227003533142606959810617076303172077047674826722982985359984994011779179325296517117162688361398627580542455749656738499636105916629672280343070503825959883927061883011546643755532038429012192862875271909297649865278424184095387175589086501894916270245440005567936743629053809324819344851567764235306317140961473542218764572914826828628080265462811869016687800533816534401777439475300478196780138812736910070232482037810446140015298510645582851266028952556127919295429312337486695552232728456587798558622716849762224627770325010320715807126601528512645444344050383870750445811219171898946109942391136053997303934694711558856648524461121238469183832579660566309537478314040365961707408845186938183861423183785739936451064181965608810790674050339650727028012941902112303681940693226878127629521034885326029073867776084575757141122383743924182221376000866344863150322751952737137327991187386775114214882571962853646769532707947433239819448718074063347029170662404709638128251567912941086329177502083319609692302128009432403395816169170851474841067417062281155856863880295603231039222287786655546621604433264773402957943102912034293704264304912816117033384086550470092136076440913447016786426569868353257612442343875248877514903989372507578925989859079975768949427255327383312873555449715128394334874574907755501616800153183545384892763722565477197756493653598034283866710236317198957664272223460271491939783547325499182740428346823844229172919824823450070595867491938294809580992232952131938298335280096634437829117719926338614624867992520096969652904965703481852786771770063695836407253678933832713018166070480577498315222014738700352215651611526341624459493619809375915489750520643529915012156720258150849540200901277855919870948127668444464645027486085203702698014596851727371191049744571220778770636497276275920598702449159234315703310422684860277040387879440350570478304141972747401608623886381305347544659383221893429396360446344945770461204719329939436280168283079589628652506420358999259814866919096127399211617435768408746995134042463264607143883767508844771481744396940842141667191020652482079233425723260406392770996109480281199569818847491170929635564366261945259055945698288441239902964146341472528344777874712425839076512831586243157563853283014578998874101278294479901281946252559485180659691736236451216306110860791588696450042526733110756961946319019547630724014351616752251147852058704268212244580881690215901424183959646781106107134357042851836889548138281779984312658412022862643454536924680517652659625766837241605991993542249920574094799419350777235911653523776606421156486640720674552146637604203042299686737967873119318184702838689103045976846311163347687230488167167353280557139387198979291387944353989367395773190068708053535471796818184510164584539134008102921527439078148192347556996170275338019504175069220165955987360108078083848285145559588989171375017423680110390031530488756942851711630137922256752422422355215666512946587931623922939312106025099163335070037295567489447798550323559470634311776407548869422233242074255633288312432897492667076110981996436061743708141030390390112486266656112314119021603219720547232155482877477288618681385622366780342805866750819310206729841906477451868618330198057497524654792650836986216749141500847868259493743370586279848146801603220409171217680403908813482343825505921999299433751525110548236325663153236604006906377046447531966032217777986009462357289577720932286457243065876282522708996818665159046076395999358593723895441673113901749534845102938845482962274932432274800900641963434250456155580414181463542918559540975417381066361620033772273378811634831579511931949658313509266965406657454027605617145918144221591051412617982594557622083864386119848266150001279005895251772385896279243549273568567603928472002792068056304702408850773588559207653384605214821275213742108284770252637927220478293852915939714894787209954036728640272646111358024650581584381642395572626682842599469377666466473134032533265319169375416525307049994366805562990436488071311160005255172813975622443410917937692741318879376596384939607323540357121803311887611418844111821217412331644527564869654615316368362647536360594137145661502606482458722344864303937225505868774318539800787466240208766762957020928232163700901499868234965066723016256659516043283249399242793027567342887786112218496489303032127825497959728497490930799860497910611066701782902713545628056450874723131987138042243820348882885925375548759198807791175676686605760692388515907487765258433802819552232512019286983343791594951606020737255994072089794804478991578066070404395563861052853963634227775735435052171705832254938297979991615539830833480834136227453316557435989801521020890969197281228340055898267669971247503253983429115258111615967752485709481012994699976727021865391320569764276104379963520333161799407211720639351571230788392212496590867472201403783140899785035236198345821925814441884036757737928258548621549795460249220640336260668601508560335307761220086352528407057183898069920594890529164415422374974713646323499792101679885987143357047588528979469935647270612196746357265232361777632580917539336588169432861400508308662282765938438806976304184528010067433694089741224111146237882279664591656028757836225846305418690417351545464534295458227428432480960432674677966360946209451380243592060165109177112312571898396869643266485762679694081985922858176377372999681220377332435294448825330541854330134927990790946961888928575324158994969020908456071352911249637423170144182424242830556198176718065320472815018199190836307823553100016501089776104490112552783000022590062540305114583259094341034547382481310254810973499724812237032127680473790844376298753859617194561051428694420343885613652098586836141199967775651725174391500223115187218214649911377915384105287240069687641421538463468043952257501924557806128531730209483700570816392443322330676065876029716779369087380642754677763012352360977615328879934683115300682924691984810012585537841920827920111155197217399385019264471044692315309263147981789640941826142281893169429288747664677345706865021321973621542079034184014971924762629950132954238403872016149016214402503361703320537658244954326051857933817416907817196205012231543938467767296549796722181310502412405993841427169737304214663205295571909958348593190635472134058809176470668523976001996937739522672692262895412409342294360753345582056251108897071310168816341194114773579961420804594477054953941091430210766789775493976214987104781532298662635625685462929545701099748055227645668102690125854255185591817502721594612073553475850058304476032705147083651631698385171167385119563143196298315169531180027441692196918415160383246669589209391008270826505555907638615957203196307915530913828302491922933192380663806271330245234624356719402136657990803795159328898666340333701981331520759396674418122162868177318707498896154835214698234604167573108512596054401639032781003323352989536811596460882775996313056861971440495906411383053245391076480445041721909353991355722279821459596520529487030963035816998702494377216406647933224038872652160096651912181412780435357099489151060644847564544309909681167749800224213289078990793460478193098612623003716949994712007563821650281830824629446113823759625366495652293701472303262346013199267469098321575493831533416358318546558438819691177830573988299506137963482057133967384774598698528291382871057693898245342307412624831236964561000862149610900816138902342789879818506116754468846350948491224397234760145568678869314426069007785347455364020767671646647088769328696888797388744293929766985584222324535451923504201220835350526472352520569429687578315296427323643275873415106187633214450534950822470844975785709410128169707569000239774612371276482003648485677841201549641808066113747827998336139479792411394093839644644906158615470388919767835429468868166281297200512500443439049092570882045897708445158871725918840819333608487722930509531889580526796507307027612687504475848622562026275771576383022056328357361874914352294879016751849438253473000015817006057670970732588183593168543318434299941607141143142332509050375550966129015211428298266474029167888347369329505993855106543443908059041055868378661956287985399379582112618935433097947714844223596559201470817959042035750983705934360093118399981249225090386264958851690492883441379934237493140104911120132328272860826582907689034452801480876999355981110209274431780934819369928260787806140981707767202128230596442905362785342930080025180161608658619897761737331289419982776216175793544813885326921473419597685621527917431465637020940268925294233533750757903928164594097466054722530535485884104138270835171211109660828849245449410316282577982917904091710396576215086829361912760170710789331532682714958913795308152504436586729229788917370390227805777873614047275704063825195045456553929061051759226728010799185763758433392013971396184733451277785921951302998477054685691513561271194408104676338616203651625037301752585293348497377123741785626195832792309101894501108791192238592069185261309443951846476732740499008441331329008159798587103307639954035636215811641548710933210942065389997128347207487730054606018649530681062255746402740604993008522295772593919836783471429551512079341197172235838663350293855343313870821896171018594785391164897649347874574230399419917256337160202685577665789203284208401404421969147612646882951612386088574462650856018771398227900965009991549110174123401643456471860490013927149692067219763202995936889534408501163283472027357964253027483679436288852371704649913482282159251773808170150529229306477377553502328330455142356085658785478748832942827580623714849863542731826938981886678809537148086159291219107794517995705074608885370496297079624708433925936267591933216880726859222298665418435666928453865353867503920580208560491109290827498362116620598780960165987182516068687855271021515143460565873108270176359259321343743967731837850352483371519856262770894875865038253128215346685056452464298989407981598815321116171200335575773045893346874399769953475899424979317775947187388772197611512868147434445510340343198001167682124536107211795736506761195777858221744695052475410669107885226082993146681370890492555605002190039320260334729974213456082942607878548254378927346675247093030602445224024089546529028988721834010041389786284417997397369664618468776055427955549520534572827317710611723852102803000016856522362370278739154309136003554961089479951771723017238215438406095126847439948606235710751831911701532579712591611797155274481462858759650543410750169793605147375069350482962298798993505493456009045665856942926776085487466944839943659183783363245060358274185809928379095493072669482970466741923156589217109704007575136700138805411437230723207975553613029308111422752608041807728962440837243728750574554876361988816854416112975217647644641247267345856171273128677136829008514546326409033584852326627860315687024613570309076403455894393166708295327939648221044133691710714568431532389390645266748321491887139012751995911496258912117969539712629836046096386548854510914950261814973350032070830148834647612141781086796868125828268401834623025435459031875012781776975912241625490995476833933410486267626100645848873970623651698790857582685119141923065686169351020428843847936094476116976205015660470719760788703373833716057971540502594195183934631843786110590368042861975557400489537570886446454603904142671673402774749266244617281954052878839805901847484976998207106658951464159901839286291830414432122371514527452651878505464363516263495735463384444357861616905617504552335396458835205639818737314617044330080656737008244813923031547198873995154321557411718634059545068495774115406869176780176356290360235515427835176250844627824558703232943662841281514681003517244554122402119070537530249635621740592102100846160173595466411835688954500946185618262321441577591011773915200762326720641325442232753190938744883145966882519784678130146908412589528582918110207593017359084189986101457037397750242629503931973392326630612445178429321265081176297335566560327946720017825983162663252228927194949541570398009239495198576828266906918544713315979183526094194652548563567312999665336430275437223643630679669461428512284031950608060609076355821537612295042531025868094952830434366149532324606427750094179846631817072394487678112429067897077484778845297674448780289459954187178200012447230254641860233534403336548751802055926877639095394539888964031602511178175628459966083242257737701364723867435954543208987005123235556626028772301642657738344119416573338334001571358964666205815095416185230111981000560061404084358059759018418035812925921153237085905172192435826351511736866479623827087772044152502231686761426949066158018174171965062166065466502401808779873414522956766737342278228915907132245804597321802778980486947572120005356562432950713631195476340510836101143793556213877839262039634945319873104576887991334073562483009130905101209094108540341384776118328960122250514150065438377401988368883409581807937991865350127799709029423107235274188897459665858387982135339100317169556118691931436032224470123246203141548731592965848381220248782370165568777214989819842751454936378728841909574053078733374906952194872168090966051879617774157247557139694227779853503146479307704587364524327883314508892193745367220959504453496438250658296936683939247559656284157203183241825073091487535508169063488253356988171285612280918928924407496377235774802869037145390372025015033461483860036423201358273659342706012089684674807458392429494241263410974988017436714033042724024838696584446735509330196507109925012663654674406708343378383820029603150273069728368966267213555360796613287456379202391156411611799909408567630024304779106869141167163229813625121433222431761580836158687119490830606707106816756729243154118534654511693010933960365766062350490261953712965015486115633260160920404604491839280078478103120439480533500480427058876877824226998185555977879076369679136778269491406034768955710551534249427877965718877110717806453024840206271914869041144177438595299001546960413258760336311889923518769260141551470374029190357828600062956745432824781649837113640139906635528894026582026520775995486623092731170651697620968597717178295788423249552058079221803587432495276011022459551544975805008235711510155923216298607708515518498540328348013745323266857222188135973508825454264961020881474793561451651710194884631622011707178546369924287555889130702128473026927444580628724925988110579892494168277264023228653365671738517911038533964106488595568038373003386674431737778981012808157880595363502554843027504239461619017785334738970143814112254428446871030302148759910818171304051330832097067936094509411174434521257179013291775568566099041596118679738888188351786654706200677555792906592324790577891848220482744872061686622226503967758743146038758057358659595860486287517748262292086277989845748640224137953387519794049644078373691799155254826257973832871835914914617916067096194393704955673529472805558475383428363832471643580368930156912440508984181705154030705547585257573721598880882499920430028948665422650965096569894651291700757464729620491884691857049116094788806066824302419647723774236517086241979119807195390901691041912688715723053909356505390745606288143713993138490513740276045904732793306207529471216245078109046686212318954411691663714282264198062431316034879888483072642035503145333927851768030468859934286909518951485938146220451825070937776851004032444834283028353505188944918863262609618352069707346313621428978001709262027605891831212073375315759547088163964993140065192221152967196207982927652036940539417911173438446496317037231183623499194074824352933145474912331659900565773017541524783913056379969072995276457939136368862816128646819405532813591379607042683185899306909126495516931774771974742579077262350367397158934919578715125742796391403839728444688074214950637225634033978291308826752171947085537193127240147693747966111791454818364037181646826311968872500137829990351395074778680964369047907215496774355210770047863078086730399450929641749442813096733004230185021543271561713751938408253276350137587017207074982257364348955750351791894008601900285357013476044159415813588866342655726975333874065624373958098333983127311235887503267685621633565996504040031231493206002141444446594396259953043127447521983321549909679179561371966326040108769451357555530538554682745884227673681293960046756524307566141826296034050152057104299629388180364126906507748446915785956133957900158512289417154823863537841588483064470368310209994373350551603709199388783644796847604253333571667139500887768444339558331188394776403097948332216908707420249616279236663272002925283386176744499170399508174131463007442475378795699775629891697625708938971490828946794283129177611654055899373392594143991223466115078277086855158860541493130036540288082768371441411449701275606759162404592872494219668339678661466203345055044515397793481047846222524629780615724007236040080084575055605499457362426483514856537348040894137699480387958788970840748818598988265559193089369715642226077292735472385054099636698672101344825398365147953628334831435067884298332344390081755478567211470098732318707479943756657353003260716557359067887309194258397692973292237283556737943878433716958937915431547132574090074342750002711374257747119453399297102936952943991189905866885716659441736558793702646171055414591050896613396948113483264066989171749331555076343557962484128752983216295421713618027089779581613704068312774575952932530597489674997734433507772198049990176456094170959351461227626271256335089225163541430532311969703851326432185082269091516037559389338031138189913713719811131280968741097845030893478818654924702539904879450348770813633522431716726050854120144153810264217763583113535462828463609237966475280390949242607657048046130252114674008318690250519535513849147642411152207607146644617238140544768042526695550941048347491533226633689661431750061150276534291046691555503222984458840026150427926911253234822504787932891040679541440638290720303668572982136645732043179320213395905020018502160568409614890624275877362135511094315663096962327786037091549107640373433808360047022917432206805417765087499125788198372554916810852575776854613356493393578058360055101924216419116266660080088684294317916865351077324564109655255487540651492283408722936240890090017957557182009071375516039885758690730732192085387692766564239689879277129116492320729797125680234785256143965362848742047615080255113951354902759631723392274238419859248093019051333768821161215468033118312083229571291893505210750607237794156384344041964030267933223396195579687398825550279113111735346225605423341098984321981996388751688077142827622203847189391063489650703248924090236659154892497778715115390869820531235338448864787520965955265116387853221781099561469135342027435190065908243314581386018209520853014053563111119291655029867733160562379018891563378097244464017577723913305624110829585774282581793485442822325294693420263323705918086708275483009513253166306744786319389788589273077759944532595621495536480734183215871368091799127333491612385352085009729979785102471661417288855956894749460680740082656526540508178766991401177192112660726543842121742208102630849747417715349096113963070768200101021008251581138970107350990695410148134517604588990744966084832537656144048335181921785104901917711460398699951839094219482208106421537062866893085158287259829601357536023687464302017188027110460682612777279287675847123972684625106807714909626858191382601656265315102343181623591011649966842241423115144011041480834918259237787093471895794347294236084591634570779755941842951825230463915166502381409010623559886212361444593853415020070803077285320045555339648539967526145854046602114494962533080386380771304207008356174104343871901477469045655074195365451052310563561732373650592004015267531639157409800768926811006445985740665222479472408181096493538844825574417639120448533273526223238596248268420625481941331147204024774707688042174918320267372708930571274948771616204672474826997264095259315124236533095560157998025073995722980883887924997707798064843577793893986109845461672998864087651859833114504803499281218500268423833035531335339407925543407126107746683781177878743996276088674025962584831236296457112089267774977370862107635766730173542472419831636255211979294039588417852404147438086109621897869802446137712238989113090494508118493768709187698537337877425374170984688252489607218550677052337895462541245935030840860240951330220108901789926467089285003881074831254465363658971531113605601853492729518665418905821873757714747494860490202241125265834609415854034085126900808248658236478695704126071724247536189238131612156790755077051711414500365555270872112125826740241644530637766582784654976212873195218736212005543776702234484795655658572985827342437971458610969526788602193000922128930317163661724288516831245371240972747160588786020583037100243212194881218995221903535886656057210310709806231421303376341490964555419168546246153577532466187425974493468203433794900307049594168570097156029527709694256390700166745404173120306634383275483472886763013643615034537900465578745192866685311459522548474708745319605161541971227161500869587955743260296283276904985161482781903862107959677465008074152699045982906266869698338576829732534968771479863094258735590414180167813148797100562398259387375371069543114773580182038799439288643246483023433278348631314133618571223153105980311230726897275216116855930186359922190484220039795078734830637503598406766300170899473942438501672000738748667515072949150234958346033198079507876227848925582332666149934963613096835306994855945182919328984137662198525324159237035661274782544222589132443993799665748547180912891966725805724313834168912072584884277957873039335284132459356675004714444720837845375270307429335317620685992153588901692803627932571330697808652499553415370234626426874660293215932006271263384631678620967739199118912013847592860200487507782547472166473437477642438418405837835192007745025006040221611410662450012480135336815806536743478534115763624400759611643294066114053382270779597028988614434067618008715150364420642130165830836426297559534365649099227911684123614996464534903903898697377008220174353392497594150105311223045153486603265293835133823725922613485831120795553279558500189854141247109556801633647262569268844961060536120792934078837140534726504637809727827132328166807279247932894954586632495281480456726666506677740119576221881080643705391829167630220832701274474267858598430553477671868750767868360402481231538740720035303995424479484274855891470305063521977561293939544146995279751431465151259429454048422705540971541066016133580797954356603296350524533892653613781265076638067846925015331261723827590379070724210377825213245963461793035839481120105672874696588577340315170564770560327174005521327985736079906809148391318913523774706384243620750846463736513349696007926277927946976165453508526662710223242167983247558219270722543937563049476602866769969900671932533503093600442832735074295709866082676704714010680209908509340422620482702915867283473789463583847077844686039243897486925893893654298684485813557509402236656432290674656516161830768649445025695396956144257057733924199431365920253895093024158405613030934516436151273382558065751499202542345047867739417721470810826721407085915627852750450768614054576578045460338161888336087555945607639572659712992708343937344766990234421545979875014074363065938844374328715649739038171359064324055682765577640710735999273435197933688140255490939468000307619477398837349302730859974586743271452147238841703945484993413555518419326989895009488559816643703877178441639851955516103878712956000240209310052346319747202125744482759035298370900878021805297584606847627695320187065526391144564177852224268447777827042144039043224716886233081513158026120323741161632263779474095922937926119589598280063179584407144117795665152880141792314398942069668339242794728728229712754152223686049646775374559724561189920059972603644585225743263796618575115040008066018832327665022952418517656388017105219198758374182492041410810333715952648812126949063790652370800403938437806222133675153150535498322446404280737480568118589105766893155410981303290308636606090639138884961876864777707482257467499430865147244061213128228062231084020309972856013744903263840082859265467460566578284318790897334400757368637367036280482648693391620097229927677676443426316369833807073677238497615248975458498258294587111359977980738035482280973437464511030972882086317016810703927727129749469339985219859620506250707582321097560545400586276820026069520399693677569771712571779943591350500408386595361977556018322731013495428494681250074877753050399162270985468540628720935447245090431753328227259332100163543039196362085658305961930154524819601072160366859642459656143079703520191524556342040341443817790258632661309188890755250621078145260547259720570169849329989180539355658097964945486807593993708695215732365638798799716623120694531970577945649861766363757478891099179133283636480070554631470386008628133251825623530632211865631284643522798651563587320919215204476896757392416003413848753589007952169218995829866774673281168792992727831971243787552375187538250093558533846597114382582280860429142576694565349946869875381887598295725414351895630783661328526573762142740266087592515590012912088441509321926277351692683281877998229604514167831560271251303931669116556993378018233722572482219431385762499417911208691304855394676049132915935640049789026446011408631875155637996233285368559920624173428157021212580472379021331069460348819206336163223363790442994561601281418760824920602559428316318489524311717335961547398660627079008365740081697553814371235559643344041999838033489530434633545320237638191533740915072557598459877828862623463696937868917307120239324358381299416781502562293785088420703565488273085352306415794042669498313050373622405558712555540619129205620141752877796209368632587540064880705623412351651926936638271097559366514947169258707847315332733572231628956362106674737956633840718389683289261950164279620994757915516238904979402627205629883199527131856646436052513647728928203484132003126011497630442700849634908667593815040663916644041166607467221496445915299408013370231087945194178061932570601134663521498922635904220557294038152304206551426432545566661688875651527154947959019423182003648559434137382102977791966403890889333167551084501822243118800890103534953778892174328428069482218023467956266294160761819815877915464020781183416860541038079477597473656092100021980854083830316948999372761103199870099795353811600060298006452379119390130321332621903600999835361942697012621443046384858985035566156699658841962556115225979754133143202324740533396427600006448903088527003591364131253646180402257387622656168416920197353174828487740759386263299811209803559335842495641131304345280403239712817636777384779037481649902310434510579052533990904055972979787649286881667956261725743356154745463093202959420415234752630047423826400802908127985074262729202610472129972342313910998330522732300329223084133464511786083569308876425016115070897416458918296786417020934458687215783228460966369768551524884294071415542286791752937232469742930202144128724378311075924424258528601335645592649079316875033370053309127123787296487815716752105027117454237236396459798494749117673235634677711467422770114653081548712930956525691244573799354457714116062183021397107468830709805717089126144782443013503904307469081979962473917718775185375463709197434166103222531385929384667510734344847267375437732343580321677093003232023492335053783222407891017477040078980988405967030343690241444333554527500168508743655344273141466019395933546237717662149884915046980853695947131684297813107112015393409993229077026003824482071479705147488435807273081227420537775456572236545780376753833644232112303283535291500930919516284722372940279874697451854382151440776427237759625376577403496676853968709910592694667177835893526609336551637176199534680084084097434509898186844051876901872623581070244376023147632674314579559393899270606537684015161101071801885032650692843998077797157762102807608773857678417440215642866303037170457372615970885355531218646722384928444646156753226308232041909999276730261590238818979138908621840024578130398268650660089947430031806143276929853321006668373148526135135702856649713476280431684628644778569131369777502739566904267577365819589865114256424128127371922536730420151706995297054031430103577097995995664666486888519441605561441642052440325709740165148273826501601972868744489877501930033174354631293333205425704530755122342204056845913679962778936152212804690010699767673412000020200744503082251838257786474314571977730232322096818088207959031440887505947235587990199044293098991837523124859395168873830205067579174282796760015467609073814606844461348817657057343350068512541102679073596517797265556283456708969926703182850345639228500422095212502610476472913675486593586888699567413269512692586001717871025692319172534497123840664997895849096148769799712849330799200700896237668027504216347646109315922731101372940992750298928502763723455343109616452955293433527318895473761020272812088742162530578404147588246532421715739403302946455786142139124245509763065052314221385444515590901091121908763627782045898563041137454764909276913070017243016750610643973324577684031929000181447379485892060648664419694837912358967989340520974926893613155286377174427177590593628072099215099669510541945743934311015246922879875519910767314899379498210344068105445268025789775425954819334924953853440335449342855272130701830528590396133445191464061238628180801540393504560793755863947998981726709541747278494708297515203475725947204412155370433958443084758420848935560483535515351974878019321570213737401389399075463800318860195177271501128824362596172012247561736105299806983022241001058529255183974208879941299630934980040212814800994676873038894243994757800735652461365068862338744109529292287353073372865147770278561063469163405630453457794718621178514379123938631282695688439602947936048616898015516211784318563606562699564620235780772926504174445123505302378977072638843507099834920308939301469653683901182042936392934665039958462003264108971099515852191572379741749414439245064004503004889447725910871171460617997718229216287384005404935295101089827060923770125367640330973327142816433447192054923206556981273964951788921066936415608102670037942430199323772590337061414812262017051359396680114771736642254010162288608892299832830628031293286898857682698384824766746287350803706934579676430024188661776179960434739544424047118429651270330831259630592184670847218418412214279932608564341850283366314123426249163500117471578517644986882732162053908481744979468210969143755370894553099920822602879780937385614786209869294769911999221796901099934928441896974925748395577668699938571511020201555409027762465059774362861955170267384874663548202571386193498163457184034391838665055938479898169078558006251849800755458465894346234575798186280196604613721942171829469101393017247503167731535228736846924754317206002333229233348986243976547460360752575803334379753364473333205654582802105120389087442826809965749567903591514334826537194110308877846695789139323951230350968895777941608032976367240831519180920756175142276020538191896257814753364605217719699914524466540313177058317950611722710533688017563562170087425231683655960682122241707419985045904602221044809417409995486564503549378069528688545310572998640004816604057826370254393434375097771704759007248533465870350057755167683456164749805508866505838047662643060902824171626628411692973294262928751110578916190266667878775507423751489522085597359265992126212690583100072019724937850819171498813384825261638124870855272885086704615118344333381798893867952332069098553100463894960004290439361093492899462408126703139986741891092361275938486240946595032777007013494438308797591994463786986858797038002600914116271417969860429835868675065717963844192279803977351549136396998934193998713508478554987023705263421898585261460509512110073548834382420226099459201776782953005520306171983199323193662625403942643663593138064700062367759789361692926765028183759327142054055886476798836746926892111384343750674538273437352794320317594297281742035883980370717755800340912591985815980852970237859401198850810605527432955890832418454249900366364016275445617594096134194717055372324110562233360554972570481792183313831694954674757259333065381911815743478052897604266723881371239967539064830708280037329486602040577894197938134313775638142492619887969875283874958692845431811001913796094849129652023836197759607736317891928172925211946032438916749715186169418930576061161887927663105920154279814090125988748979582211814084090809379637657840126485956542263128908154180247451378149255656517680134211064330734232138991665943480045792347368491357869668800819951403941417365203564943076525268248955701044730654328379689984361364236443691258970538078990985287297559189858362440474636874866118466951940236417585149521955313448551482023570456991529649953651639685829314755754871545767363260695313591370995731230798319959345370326709934325969241106431520735127116112966808569620565188908594140267694488188401017747360051532146735655858892339342909753075681483737106201050139799869481399879153948678439964726005264875799183263113610182099016533842593315657642996547878548944888984944162577003112932332495101720937744542400593941022239921207350131109424764616962217006969434900539012899839631233147043693600189754239768220237737698958802176728376359491232020478962456847821345674498071253251039218621860161491364840765943137455939717081133549147176987023601680556905047743164702141618637111845102192240250721465635456005573659758087544407656498856772151686308448058563536050204823059606477059528045803601733568462826126780034106584248116942551447588218698005528580936913027248051276384506967421715526644814575800650872356401465473639707163606897741421160147262519278338977863888720461336316944466709073932806811440570604437533758989498480454677051308108266156039283785244654990595878252400358087885432522887424919080034494318259445017926715706060374147074324848278631206754578623234783504203674513085219392971764225096300924608286489636829176142139430069381666150117227500712649865043995670904805304915945889626464549158502950848335099604357788312634262477318100402136674040761526658101381609189947475213811952042017381246677477313441159316321569253464701389800721872216046299056924921210110223968040019704766214655461493194867091751023313488957686703852241502670736220932085067712571235519800105206023610516489308625582485938684550194550021466080723308265360514780126205715146206795006667056537379050616475472584870623595037409996018351032456402606069951755214165642129756674436974772337416517447324627703783588872339394123588134788340950423749535796805121142511000912344734409831854671787425452037182587398069101485137899040650345585922286695492637933336414450317286962102429179208223855265110168539111657013972844788590075685807352235761643441403233377354726148563918611730973900768464856253021837765095345874893888920721886335589775816439202211558627480960686919596810675224235854079702079180270046720697305710855400916402613986970110850225999468203408277156604077126300873617943236878023304503135191021043882953922571753827107511438493923526876315566136554616361551455468191973832256701291420602991030209629567184966636640481477261640266538635187603581086410926065390148898403356791534853778886887553843526333311281651990112879871194564269209719524573107979569127934981171881076981787852294023303081152766554771554917324485849300992103397923151999778875482251501609069460005930945636705720893899858165020662545019875571720394684056153558132203602740606479669288091285893210497302165762078342742687286689083425823575958685881222010366404348493894394436197244237187892674819421050963860919954492320811509072884204267973417928013300026143605363163276111607273520940356419762124407347011178631658081495527936820061739642758510748715582946048402052177413261483093699474446635733071957254124864561871824484926606338559958196417001616163423569763534407343491642629999788128956705818423064351060329358631515259104525517667426987349715651653512583219505499543499839861833390916206661272670300040991709239641690375839377086350246809881414971225261183444875148792090678989546866068535384283329292560254006760536046588098013386545998496821506424182832569261222722669680768612871919173997988379773554182399172483989452600330411266520052540553528437097728401402380486973855754411974518740263041130858868442169270932832848006224324413284509664215181346489820620065143428105263636426125371598802621923304343476099646583455407314038800904307184636617500329935515611488022121127122428425878902391656137294667611295448714740563231641961894608591294925411967508743196687056037202894941849797062510779403803355026052443688191919277312136619326522292552324612213446445442850297791460932293097241591148450513930625299064546198422601242329913884169804217669251891651299187610897340077897146018589205478051412253026574803330526526847906926909002719024992988452394809284359193371651393565032974353768463819198848718385616647808470332896278182983703496854432908892853629905937283393042916224029471855332847877435124171027386340924629488942145588007115893828888141382697092622920058583274450353777405438652577966913156258864186116565789844937474843185308522405722740187942130778168631825216607644890054022723172325539802469799181786792527175170010153771879697958468164648136252680167639441002252635269219807481101154434357338704025006135830488949995484106044520697616302712486092798768007665443495844140726206364794485780324779468715571561252970128972894778004035300680445235626778080191300202037284689819695990952947485277785563702839074410205527917599629722995998852260846549086070944717759973033075334871400269494481766015685792691152201274426951580182104365010969827971202806883363416913890414128712122608055433077598749894555839360087786155284700660925532152499395043414907798452210693262973700261822504510855775120611243958238024124252407218120405437306969337193356530843762740087559063268371689526283420457965173308807909214364080931660305768231563864055010221935193997353295103189190291760571305707478732349381952477561425010536495981327609990103942299133366442243425722590146713982413374975346167165071999414058849288423565292672626105609041554868060921770863651326761912356106106931122059999878519433855715596696301693658691937131992049391598621591320222599135609270915735893497824920896872332507578861077707492252489955602024700037230828532500628485882670844754895677607855634078333361268896826537244441250234717394671656444268584180664146208078460792054911716837210728790584834376544853471291085061660935741959778113359768186349978676953519173606764783473280345043523928609294670054553764825677903094955665443768081824644593296718841778297275684337856665320392705004412498306727794595761641403107773767487988536458921397802251464883317310351916462277145643207492626051958142379958321531691192738566084065693279093640732710381468249666720443637499237998908857446086422762512931734217678648670318982617847067547154365872871963989133414303538102810238309553394900815360511630001500751929632083261058279268850143302839673999046963935974859469977719608339392204018903655195311250617177962903015591057636669082760207454816762892690628762410194824286476504259025055703612923265331589359698672855008142937355724411575968321597713826771625832827040097259139547755589481049057322623976149790151223408998127427146912695571016129856455179499681147180178075618723690605616910816683124110251578378813664343432901738699241699099709113462570708353089714393236973052755167339364793289430322100689232485042955065905656585659024296659015924506163394804042258623609832383959577940059838371200969747562211252488334694048656076167505542934745444673960963831679790363245241631794020739832430595294945431825018413236444319401537270968154421449597926620704981147798916193111212400216352441453633396827659467882525754126060413849475286326470378256286543703733231285424895999202559283635125294397715416774599163147229750750621103002304730151624044497637679989396732365968408309827539067006488592830735960368471780573440489787712054388045425815615096492755255259481505191631378335154778318393107053115851995559364299550129346632946155359339510862637736860261670583524122574615992903664493110810495704059426668574174079158821421908716867577049860025635160594623572856189526203998733633950751674760952030277625636934322051859207037524629989970122123265655255732476693113038331545412238993206980554379536996268259212416993793725514506342021379737610060120812375953011490231787727610449032284148829126968952527529079597265458944842909009368883589139436086776756178636097175273203175478777293647100618643104639618669460259673908610425538283842142166975705756909300090908914242040642885987160244514958201094220110569721987872997976367297341222869507915728799436835941747667074878690329993317787221219801825672750759723156675384599214043016669284037487275251803419400320648873259603168450377791323773438376570158985343950782544734136964735918005270933651074292783999888091782091681076464280428191472498527908643271831074311594476563223431905760288158344260511485837596994886239330111810626543149233363250576849920294869896498971607475422195845130644709959537531374276934667118912625641450162490630182081046649916936810966497268713327244185890627601775386161587019834869820689985779419244986161165478189751831755017924542689225938200618758061650886956410725220682562706560524104783936731607685985117379063609649370454320617492520728764860463451695952776171055073307134580970634603892903395390927063908246883211223992600753849029127486596149789744981612999818636754104370586030442358382786297300658458133645050413151635847909240138345301008884967826158486973265963410998234773912976229246838571478823737916530469448573431193339597334457197048743045796441562576917332084310550711843108998701700840211790385377075503565990199782943444269373867980116313109244210357826333291757739641408390647196842398677288316573964784543329302615248315375853716817071281674584912110100360401048036687846297252195165058247396185262216925238040765762896568595503105557626971006403019743149168524691888145525837774867193776765499956912503390917045084460450807413914399086938630948273479187901703611598281744775796832050489001465485961677847408464936355392957211919538258452644101586477111167936160623656639168101630825879720509945570192448885334773076851820304556233592861650219534584503253107529036968681197812333906460506056849884494078532467351576077755247235884822451763461713124083879353236137928812974466984058888465129140656664998480669941576527641302408790745536378101777431243984777531261745340139150896166975792299954131058971447574963748514136622253843274400704454265997076094416629670956951761453054692468711515522007716771100783287715061836845825921073180544025325924061348764521753143498710443262899392697600439090818839067242835623807380740141218020740177999060767983354343918313202724507212160081912278007066998323884883218109180158835778594499428990146528666017162723404833766980448381749286049001820436121980560360532292220653918026352698759235058323542168427850899306459257386616195655664084584593856170806423240438466209554032782716316208276017746177006479668520567935338192257695357936977095970286940514704936453703808276989711612775982867662644660808994413643150265934647838307394168517169071761464972079059390061499888935637784902683942643008953362076562468653964648105285264523440341765060053355653431947930107900365757710238871899915653647824202474899868768865106439444812306517681766605735369052046876815945001342862047952499836986115773879263789527573472136270528053771373610588064365068000517788549033674153691839732111548867999035420069596562142475276824295723206615126558244306907593525506696679889769148437356872336132043361015838965722480137341492961182475109650613009295187321944639284022994877016675412950139257062343697993125189803832363413424592763349584285003097059284900467424902138911584532612241949733984049102028875064409050864316031112425449025311548107602107471399371505734713471154746355501618120700647098706415220350851316449122560712889939992295549499655195566370279775268273585990683826314946787768151449520126450169363556617484529609847785505714745538406677008508431192433578521685288594898013808790333457493118493499261166161097816688185734361564914495113103843550605935402069615363489869810421324087184235131942244298032498698102745058582641495264976809832030736681596474298960745701363333732925366216023842260661500349300074766029294306263452988385186398532721826279107093094235384021121425140706944605002499927512556989599964135061413952429824060780964323563723439346484720979593271414148150063988241237061837245573136531359556606285841359932608392930214945954323020091721658163165769141182890352941411628447589690356633492736507876428130087804023935809330018599367374268708769211744370932750368691212228843982564710808100645192091986295610048570825550844590268388086368303594194679355805744322226569270835964621469544124539779138055929136172087871808030776885741026284274551358730182775787731898968094682762263919034922935775120486361487719334643154980565063754989034605498464702517684954853437267708248394975246481158346599528613765976573968605316971370135795981282319202566823837011852568806917310136237629534057389009546203265647837080865483869930825215952915673668151462241604230023093207751290801488848135019146584906177887180842355658395349266315736140988188597113416191633089793527514093462560925620330097690858735669562525465105992178882333312337605058173669210161931139493561297837286977109113900841085043062400552547696181513292465030450913950160442052319835596528290108203895975818933966776915027039472616514825646496654555842038747188685374900143348939054985638999013425283028679074568470920344523403233397130427389763839926158806453027478372026146120739828927975940896194359346334253293871067149743174299855188707300968961404362431690349175125964288164196186581551388869284406094946646719980492929636329983183123176968524177400094567427458759145611142033582847059186951775226000413974350888539760866314105051989228962191483088963089672421965041167516803247137169104370952468873537338659982340749088347311480752845383553012949374753078368498688185277722791477169712024802543329994471157187925246439223651390606636703543598827327856416770181180127658746442185234070684251567370776546958484415118824479249934479057505104936199874518845507396225832052510565850499241586283151023179247614126807384352830853792591162396281787866585678192094392350312320195402138622565516909813671161724023050168626168937690788477996599764643390165917459150413065737852342514087131784036003473240679881295229162750953823199054846210664706781768323367695035327817839727306832437292919021862009901883188558556246415453747716400087044664615960353333375013067357702789734353984649279522961806456502741227911468700802777490010872144246259252750909847346650714167987511994767178233785303405467055576701559153021223148598886707380515439813417768594687683720972273275905261815141903989621874189140060082612558246117713012539421847495279615706922712408722944070346955921751812701139178127374765050421615664980056445360901110780415665035512249476247280983126691639527421860642043101767164285362753150973899231091038146033966493117594914777684919545957424382190313844250620124266858954067342263979953812752146261679179909333970912970949228842298415553451446843701973634825018443054477650759318025108932339210175849255986438745498459573055592487550033796850023301692973611606761883304145715672275348466066985817829378594558933100019125002045135424385679791375967830150055831000400570030692982213665577428948831656808864734729606961840025421117180662891221974352365293898441195243442082338860254940897001758079949279572829136888494975127802816860094961621054836259500727029004180011529295065209722474420888222097162376304538576751770400442852279052681454983869762176733314912474959816615180077484334520952530099358051599119218590104227498289267466216673475537982666792403264551553643943289828143899876174407637308993515361292321298081838200359638944325263517479836880452889740683057774485434452567108254787861990846911635650469628936569415150632798823626707035300084041235304962697877681004530436719513740184726494602580241701612941407265411554099209481120133706624772932876763931659130253726798047381298956142046159658256368502046129252949332075879977280593297288415305492213106670220473185590215012630473217716530702860860864556437476773441765042713013132913537456768570184683878996884689445454033199268171307968097647832933890155004264485894474522969945523784626828559294031569543078989447820159314202844579567720207077562850734298804418845429039473749142106035365719046325956131467770380428114363567854102517214469272350595800896166644594257749284660386926072173111869482438721414120027105693848481449881531028160834791291986774227416168137525373920160284596370857794293895212607600920028372737761152461745841587129551872599957965253704670452045169569619741810044511567348415673372449254160617711403306192586515621536261907366425356607088185841191092278489788461551316673471059593802596728757800469159609667906203291130898868024474338098497765763255006788414738870525436642216124077560844157726221258715908460504384748963307215091235320388938801827228869439514070237874939561187350031464336717631200726796615648116025455492444478523095361663535966946176789683118662037438871089475302921662959248370860765643571451968878538570079670703227878270198652171118310763735402001161215516489121909997077842579485652358525746637340919776414079113601990317825835676812146009741373837624701139229482126146324144712235224003984364796108029319453384334176791673619105952395398244456584581997513432601300060324003111776077748334047868005440549282203065232455815469827960988451170343114653695879683115143587348245600251044623199471157564530937869652572149311768227030364667294368181612832201675344812079373363711916621188237023479558155181795346328921443326457149022606028324477090842979665708573281636394838315998742682640250820718100267913973959554402843591183970572179160268776288605146548724871822178694849834198705230620286469704937678398822570420217440447672100562958977653513100880724345155489809827462031307297696362793383018693435401540139364349624598941471842078428416707611007981555927843703252111567369230994696061388866107250569267832303525577122342116389131364215837379729362399407826818141695368080538027896757367948075383399865914586391746021020586091622292394786934454198369331348209763900645671498605595808575039617663998653278700189045626806494568023651971522250958018273112140193329365326836533871508741345328726097540998830331441080215094093987586368764176056981719092157470610345262434072114014971831260611327713829157378130437538941007829124722474572015173870012746856032921787536440475472656664402980869985411280095888305233761869300411822368981470326632788184850512313460425388139491269645729762855294156009616062060611118300390844512820995682733836303201374474017653347148949430550229435251283764902318322630586331182174767878040572453290195835046941109760316444602029502147506836350311271845254692773943089968017073447858687446169640801017350737835661369391707303053860439878238622558549470942021445877083851546210996972252205055750619854347561597856096543479558581801588187403358164257469372069660161992699065377217252528915582446822470935171625156370877142691532891900265004355993084611110587148142764490492544212316148906830112284531084815699386456103946990589418680081972107697123270192493203401836646162351205890404068778698175866176529784343603776224059332315985272345431247283696389709473192617452972454023568173399522036035677836798214878372924863538384181747631237391515421550480017642758976901587046204214068149654465520453185098578896511578429170599709619712471010143271683403644380484544326277551724538935770126318764545501803380376272770977774993127551981427348733593150246525605899455369966090363454805499016126992500125068648130791207203230187188538417570254466672121557010289578824305630622822558064017940047146868369207637999974651387146397009572372426531851468956658135357373062343286207669405843404290069640133847515864551467568874051841163233770158069873583938261316909599830042687746335709371826010719513583561655117630583119123923044986093020631175777178879912111435689759038295945422344623935715513088963179343808534314321500679606595144739783850858782169398507212208774943025852128674890590436590148234528048003708844460184213827627983538700597911954305675921522686942038667698711015857193876909449050733312273628201692015443015094452679349501381288895743998644326268440693490635769526952871379201768341710100002630113030321599400020726505990442913804345432975365813444863063833687335566567975996789346807982548465572602814342986863459297369134766909877268130892761545830568545679538699644203651068802007707809225708427764529702048791161505137502689891896372381874441347199238096522568626875354573751889907901913364892932363291916737351049955091109712857123865107320948538017925901479745459134532823052337475341750069855243117181721285550918718513570610052210221273847569282482444092542287422051753892583949283452443924260522170562710754699609344636367152927416717090873577009444618665850533360638136937610679224941470044458046660555817223249297140931330623600620127318535910421867785596213268854350976699666628723630922152014169112727799790021385231243360508348621351945663505549955319870532862447128134937311292576170781634796348540742610539162196558543717692700192484816793676376217435869436490953411977926875330815670462418762118945429861140264140828936462501886963459514493790401672119605353609744097899041641584192245662805484233890604042980656389734420970958149625807586736765068886919265296598056184986792609610946162410610275886111483631945802093863761155245182675362368793003632102340299840090789446397373215744427025351061827330089332472742770420356065649922129761447612606902731009802886109997691406168390664355382221856664780777281908794755796239055360628426633901864558201964252428413246427863513275529479168971528724055216618778504765081708851689274996963275284394729164164617624222742811149562895033314972371423447632107505457607913679107333572955523590885577792065677214927056194717023281545299358454431415857584702115847058474179825799452411957591847607289258619638744696557839621425807122019709237397382773861873307497030081676099903335927183333278894793845701608420408646066400318294391943191235486716548325239059283328334652294648508988669293484324477788667551754659929381327128058606371529668791231819507973251107601845340793983043926022273768427465501803180769529635719169076846455278505678048509971710458785495115335060802365236577470874502700457371288049432441592275979448584801908489132658262957041097918627953112455906665426920661588193492708765345133261798646884784909452636708935745003705283786114638540180030552111392520006531001981855093202236877379143470161439348159962771737096279423763885029220621223652261598039611482228258118678352105162055106523560614055033171425562887306057985026978887338376858134452503866453588387672719103838506502611713648420152518373182532114938057466145905199910109347840176556326143564698803190384965961288567120911702716980346822592078762205822907607877104261751956354366541285610675020501166066127280165132398997791015683743430929340806658437361357394359570959267155561001641131120939406143518860045153785199148292643697011382018206218386641898790839927299490094298807885105015377802304554448909335080369678415074879023628188420865679804849114509315719208100675205325354408187997356087122377449733226263710930211109153748398492740111555894107989248164918405938156975767698857706990634715600419799661273319512998866542899318909837014524937228019074592290979558155375384204442137846340603756594007901799651363462785207853839297699446202311525691041380668236207268145602476676902019284613277749983766474091907234868235495490519517688680417825979241694530691107691122781628655782664057522313503378542190818877006146778569648592780355359524902865739834688409617609660000356798079485640149573413001574358757096238521612796634717257750083774420481906557455130581370623828642636348233331333010532519445114201497733188271777928510612145504770415364005875243964426629827756996612944307539387988189251436488257235721546431194112140766378940469142022127446718300737279996193861491203843931937081920721266192640390382701081110453314835204489983348641375056655737514707129850062770346291585006435135835872315984463046562524929600431748981351342734751974685507743669828764007840706162598795362265194525387492711486274556148322317258263541919868316665151519433478119120295775247224319221024151121322896342872848624990435589839180729636219115024991355651076313283151523244596475238619138449973586801621984923030487106211986146828110638560440578816357692475526607083614453886654374009978348783489959301991143150063460712868698028481756559795104423057567665951300445654593206769714738184320041864073161429451594686362380293651450553377116581167202093616185835330603907069845799063510352210328688740772280662341375706386518695621689895160817375407150482220844682593803790330955094986369465251990711520219941795298041798708291578001139274558114137537828913821140388406781452622486226626074004714851658116709479776604941369275771144933160619770504708654596828145614536252924270069099449558131163536223503841569970100230427756057384028529738418599023805374391067905451039973225375665147631534685923878274328605161996716403241510408446251861477943941872989081727547248306576764620443697589907755704615853744367049810618447324497007839027442740979677952939597405241426784286955443993955289372087716962247922050662926304165650279346537808397838056496385672582439582203922661724116254927829340558860347522756788871980014541142429006752723244292164968254407252777255786490956609710859323222422119691395669366490496662395015899678787315487334928590097225494431154250279146734860110233472240451975873838556201565129802605629245082653233519666132257596077586773859051948400362416991545034796219664097936760753413642815064522940321570697103393841304421238974536658414668962745509196564728924393922973721645662666615119977162910393593872976360839600857913754668004322870902135632119506638103499962299624729188505386889616756558265981403067542405302330058788403720476319861156750066175283962009638584578776398914571420823130995148927738539140564288255136222866272002587358936919040756663408651353807244198419127771024993656454403673114579019666828312149124896222366262905129585738507800477059541438185066869840644288961842142594512192878259890786032896483834946279795029093026963950151225939774636176666366409396171474329590568716518790052073469192109109603842221060523192183632566117602851664088130887190974213549898281890969517639790463645405907848533756472020072281206856838331532465401412677872426954950064735586657527827135030251955161951475399064159777640062674589957623237815235558931450957049067727087204538126099848595211461657091020060464329781681718086030471414412302133621595326069628616920808153741384633847690169824992655728160924850801408580385835095624131650299267756340149222598461081118056557295104090946299038033489901548871556909368082651500799899301265127174436254415602899596726881108159457434805997643315682359796037346386722338360278151355014938627891198292521233001104115498083082436610819232420038720956652981828536234311415254460618586928319193472768444743377815922371242309077253638553925664935836359569121560780883947240944735654696701969939050192284016952125278991399851074258944609839727467194354207296781631148871433742519943729321134733614679284344939169490796150373962590106000552522364467650933837322839382347200561456837545659001761638661449113989023502055251945632551853976305627449076656883782377899009533798189800591994580594869700669793218390563326576734328607444817018792139918494806808858788930854625414751859331497193129137321482365988260725772570543257785186348636380629229139801422871056245909141443416359243191518243166606943876728237640302199110541691555381234041806218656371845483712387693438762582710951231953132147224710420498072590313666280466664690345773990231759853215540579671079094926436004969603014364834048137329073719394331342760802475126518377581160961508815817777382884098044119759395622526258369682303881990738390786803457950886063100303148226352540576007433441129229930821702067229595538310391077362881237508594952061984297540337114735406563489401914523990306857311240350515966941435032238524309434014335836666864162676103276598795496364295611497610456584994148856066038194572342427553880095685300982642667837733109759925433888819284801861441386486689015415839494274088410102795767881208729555866477527390389827026097068817926747189304867069038212129939451689185432038947949092300902450962354408626834736022388375902245218410575237139241385542956365411393545868129371060485468591139802036736470702471670687860022761604967035776325172766183032807445359652160717552180504852023387006869702188301042170854129297213006495192044735999317135416043173492817517226158078466603712392227437521723828733402933140445881259859239927176577375274838498864995567741495973014214107852787489470840952185755211419636282079630900845788442827613935972637466313205206196351638624633607588866402400505695826008814007765824290599015854112287841233352839515834572469826484851976824605822029542594491384257329017817495776371727061726322903723615827340046448618752402964860314211595415630396043414566997215379143182736452064796916409623714238102866730729173316488638413021728669348500457195133262034860228362890853712773161464530482953336225909540045236347190744401079860299483132142590737927431424390004274394660253373023350360999634650338221702279918859311646154734603352573124934108002118057189185698681166817629371458801946763667938309657050047094201124291050415830530408594934605230617162447265021837019076418103684921656856724165822057945741977686681158298328125370638719843635470198240474582088312097712650852362167433892645983456143925224219936589585376646881726673841736013413971666018057517482861549675205347499990023699288184915034960715670754219137271007026254617504522060316855346788157992657460633248124732916152660640497559845476751774325356461809802293855471444239131369001741422358044039749470311522966407861559758531239932441637878646035891216754108939636187041358217153756936164469038773793932542813984663194983674110139306398753270667918697264407988133372806986747386358497238124835080843004862500699639155887986964134190069945738880850928884989600274703676021415221937941857763082418196137263223268084966596667515089090703994431705106347588526811858451270859543800069396490110224122196748506632396802651771984069665142688304081121987452789191095884305350299890712576308161145638514844189474415947206417620661171377800912630763554172875298269836254876516575910839244171070792117175303367016462447801004854391988746459410481098021933230470525563108148914693955449288151290242209531149871237745668920289912611881512475377448600390883206747790424254119481193949240255193393676682409732054104398575671092662743225813268285349624664985043954005990497578148029590772332170690029524876153578851980575145523034777474050955929963025663367227830459385456621117044992204875312176778721825144468625174389730518773059246299453747716633154893478916486331347645331539235206204877320258019647045407095496471119935926620505503066847839955242778226683598545440151295847920437653436104308340312145852704083564653853319465940654198171151633453057219090543317513035788149722576196615803277110498207720158387488800617247366912518658000786394262467919982798181689972293736664979271249215473441245154546282696374952914476870228036978062086238418969043472818245846970153931768190654520897239596415054066762664857805544269072454736520737480023326523052895727309986019990463432211664623090447497341250093062550487742118593022663183401643377403678175210834804913459704007507906813433637080470527629062055281718337963992373759738096287536913717075541729885733146365011167862216206142128195055020395578560671470173294099171565739526520496652230689323348716800165654866294933639268859189508320124786127482751133628673969837708575015029656435290891610414751539802239219674769438851842767556804012662247614640154066698510862837404579172341560497329300047851402225967856022510797233601625500636937922586200372228322715695285710784112773138030147000973959592653565700121058705260890690691554419833316567800224049819031858523279392333842393283824798253804031047026722403160649303818366377540809286848677585313834536441855566807145844150214330230615699667253312417329948197953225531415300213249503481701790505582190006840801071561164155963003776509075939693169630492744425606013485597679998802320611773321850678351807276593081454579123854226250156652182278475173002183735957441455832060346909878284216633399303956013075896342866187069088154138480653886707593138808058072645368959736303287333094634951682247791095209364624757580547541653050040888337368594940103600875278758135824447407469269101140790062838181291539281102482519312884103397590854322171304986168707416182446321633921798115345642639710843415546507595776260600391228738324058352376690134833270838273471186893247576614761421282043559375244886463307654688880547149893873585124805690186999258735282586053218562874728351755766754052601468896985788560453341432978259419344156185640047230133593233401960511021552518573306529146315795443556300095190931164291164226712155651716636812773948971220300410408748488497228274120381449589813054179228904627887496525142773133550701862352846314756579977003485715384002040407770928999681421096764423289949896484357433816387375667390494203615417486826685330767052117496990675225109244697633849054247039254991651054225408989364819168869261946410259843412525148769042377976207548889582021449164107908042931475689357043936513723193647119348933859294220706417182952251585757543257281169261935170937479321356224043238419348447728277348529797840639838663871803088495081710182636266611285064794571659643926192145817155311215480206451307480016538877763778180203646603667428471766156091856713702366168816893658249178288405332290491658948539024777061984150336277281167178680426440145726412186328510194048643651788796228428859047952029259333774580114474828221329733947592284106257799898126782563357299419716695468392830592762763665038498444057899030104966995849186059992544523702061131686957483670191074948056039093622102806005200494137251109302428515897332067989300526145134229061042955357790417792246263031925212734200760885289673911253909264701910192012958063467040652977037233340328821809228450939888299847622100341189739281111245453637543602333324953283687076130155602907346599435290694886035278430422357146669550274135528605464075254640403412695674488717181629984698012900659397715419759850083076800027960119569476232903387121152131308792904210552401340880990825023311148405612168157600979603439562851676414552731618025506482844289770013532866152894692646874890708139412848458666675321430962672592917203138437769604220883213325036762888552884781413584223194456776823901263048846859829398078100555417468134948822903024196587981459105437492130248732320492391653282455070879051553095967790749798140589644012841041637650615895940928291307618013315804334662129735432348038549191446694301092122651389619333248799784634018958363998312612562049928175473627638679866011308386599378427026111545516881589778437966547790337569872419088342001940877525669168318396092279811705747671970440312879824814747560390052186191135458528837487148174084819052140663167915070385483192431123967736747613870534472613972101031060827518126603487868327016682494721838493029444945413416184470103744720053059127520733674215704221051545554207635784390245870853513697216717390966144825283939357568572646903159839664359961300614890822678188396185274845977863565058785685906760423971486015364424399603341436083480490417030847842880046365774228382169888497305456428786943518102215660858058325807279911292842851845850807665767748713355012197071398391769037866869510661599938009233645034433179260259485738282133856349086187600980074228604598278839497877932463434862358965698629360737294228607171308309345400048021172970364029526169886195589133071450334020401465397313278469063282882178176724643575280105893025203921776820778638168969218624280176859608090309426925147197264546200593311305787140758405171071488555977231121497805432435891488608542003583403915276937876650008512215036176825356062039246543106981207986956347922509345297487065520616314767029916595854541383374545600715292149415135584968846982746112751875020204024185487417313482518499257046481917160322857902152392662777239318498477865768888471890019094609956687287292686446192770401055193286400118808912609651858259553807102825321825275822342289269214872473870173677218728751065346505132455109211193609082208389915639545778344776573472931156875185100015495137306701645479031640448953140902587936572232757682868466606911890590578953242310686270466428064217918365882752767934473011951661093176735131420533284037056900987031285571538509790107472808419843487245485618328928769930976022535802187794272383838257395006559155533200775261504876226675774288390984072113357491632703246956034919264868833849008942546610171364890749511279102226992007531710502545328403852144255320583112771786717632698898496254851655399207254298689882439707742254887053034543431972604365014472827527007398890347297706010309024691291289749904748067864623963113703314380648211808190115089085420085827092286162149230363570495871705549673786960919329508174148202589614996448675652740245029393745985824570156984219041439169547136857897094907522014856424750345067907830556507054478280529558166296138005002141258801387057988736277876192804539626399666650689262350331150524672969262866898180524302230619450697851885971884255059338187609154613556674487007571968172149613185245286279567638550290263954752088463698313323544403437151880848909169832010911687155320589553499856763869033272571256391785667648936616002567393513672735800046791011642384615985111889385837301970407282385140497448182789640492660783388126168270261132264411500754405318446957275747296926557672577841165316229445385360291170953352159375701684768903537349853260587251214229446188895705801839602096235183733345997735078390139837977333215762937446477693950598512329708996084242309039979074899195812719969314536249692856981701317006885004013455037826181399655324641724921873438218195473390177218801123842761956523322925138376965430762944807988065545896237082655004760304962548924539488670765209360303549338036616588777196051245178767415668908151418906205236073816163628939821111595079098975681181821198465990900942155670151238683366439045184135049060478163489401931526651735686817242155504464301592894735110611709116573209665508154925856176213748506021292463785627240604025203857580620223020460531308757864670672410144733484054971436621158806698476897102769874503321416979806831231196248629285265326069178786389060957018865629490588918487549703437357199294032222773209328856086019799595844570436615349528170915924329919100512951953722170737829325182669318580888596021993628525856873878381589594877643162567104579656839866664798151057437634929138113543061288341703706677897468493314198606557469273240289276547042951186284249840088237037637276155541963426506008382011824083413187034957567476327259268513857646242947803695289214004810015408161006840412888697472119488534339837391539296061279784911331280681963502821560330445635715588763655921627983798296549553303428298362309263725537175048342581283906864909647487951805038332190293137237423141385635788171431492469477722682768993093882320136090601089626966440128276342810486899450286637539941074519914924976122824450888395860649071325736303518014717068187986347088407095025396915069280109818558096876499324750528791777641313967866895587983081939728785586604101661207334818677402093678260945531138287898071909424588976310407507741438930673297400363068462559094917428485632726274014174460011637406978674467086340159956508512178504277942717044415721133120827157027475003848740828974082461569549035741243436010558942572975660805643073423410640647390744044667707792033720185352148583402480703264120708811526775300247562162847514868561100856582840598281813910258965307369060461097765501914694473350919428761075579031872899151036830336242132673995344138594884407845164784962850065355943706237281431307877755200033422093362943483367095270300902827256894461258335098763521245468531980311096866162107212743201308607531961980183455698261698137309902750183259722286994371981685827776494859567717409243643387991119363389460368486403949182226154114378145282907279203116449452804539999590753405588483588034044480188301284594931213489501931855673042029483460915437446055675299812923512084856649914179433981005729764187152790409959764291087119391104500436388265144674279860494096136771886889411412906206097020817027827364322337208213266506239896271959220098209943595511051107411013086158469991490278196714679171760137467989232189147759496832882079296417657823781239443703144020829565078020325195737013505343558464785512362567344243960757725933133399340136352984499459252680006508853499551401443622003039335759771460856324599889193085661509890648669915213885275538763614180391480402553019348955100600589537785675172160777971942198825531077301271587203529291186032437924692046931464404021436621484652853903058606154483218576149886427513187706424261413488391550369294021348904539751934869193250330998554972297934594200781055725343771597702903256800658899078042639233879777065227873938072601988267104307404395995090599618756848238674739156014700739399552706898333770786415495116644558115996140483208381228241625424890479340379856004185741665754635438341633143411841318750944229828349451552959338269478949335638218539348772326076068670731823471340994676596416041650548509411744880048754137857733043908778239987609432881414786213327829591867517437070695176477646449125069729304708548468741765937401982404168714959157214001263147166125766133236759979733937724346772045763394379515786381822016284743903081982848757452176823065791065934196952606107733467242279237314027864467948218530166741719407615806783477558228817552559736835795137326635504722728412372146844404801734059032611176879710012789702846489116743944086072852906448553609756102579942407504620010829305419153158759464948698722601572923709386657008521609483433451768678354989708551769565596564989295598570579138078500512066412580179786218557972509130220580958136647029605906850167066889541946003166877945008356894490892233812913721743449590591695471515441698845608066699563859410434851345851037040493651803208408513084081778355290892060476112401989968204751360529880622981508642317463384675244549060454691185389758463799994747637251746123599032738903423075953183640378315059041354842500405628754973298391694419382751655517066082423316360308391424218051372989195487089583239267419456310023942807248755236777833223143890323249381312548658861470519495370610978363681988914162813314284825092820885378444786614550050806160063473102359357784124348928471951567758142726927439420806100616607445876513346397431833492152720991348090163779222589307931226556494034228238994562106472411052794245203426279318602371778928494848839800352796016873151081459996898873340302714699276188956914098432226399100051763048328196933597924985886109246834530510040457630930073227979682005040187119437509219189407847160352191017372685945397248115707204593694178260957493233451354757830101517637610710580620711314210528550697079723986926928229156635965151387126373581388047752067720123523188814795592009777155460371541936807848363964973208567119575149800140409196811554951119540252683224404432150676369557606248001447332574379765174943671048417155661361984676920393093330765870365016018688069676458655251646470383217216858116648304552127475302465675477055833331137436245913418038907908712283768314284307330907052532522460917421681110829728247767863545244495334720538463805197530511357962205803243146756420867683864781724684864090935686570753019065118662556835836661180295542139982631723142143718508058946112700863777739915631982707321251516522769616776381707073575240295746686798165653680748254092051879245900857376436135341165810584541866450607588078548794386953798380199936960602269115806199010088742339833989133645966482389063005717034338210567822602149861073907476894421311602392508191005595496936415116508375219142646475596576591655164094333595502132750697404212410329275456919365003279873313550163371073218496340717231128982293815912779332103089339414732853595587203750888836403092679452717666960586928481906747411154932721272259751299795460253698695322263296739557787789842934168633246508931164043326518796336697611894919601348181685474071568785625059416210493543883026904469487159676149128695329784370746480399182622517814880821467400339102982102443028968813384761527213251843533184844205918833747384655405155744286806628324750485977876231611710560270653165193740905797608218866425903944076213114056827290583307030628160805424498324134345943740284377966484356283597899264229596308178821877535683939189025630934095269447702573865761576571046263084414200249338335725671414481256610704070609558241269533406782629327618680937575579049903944847470930895943786635701103804287193241757058133707411379681881011602263376377063164217210805909384027918328397573463123188589833813402045091523135978216529286715329661071083141337835046861441737831359855539201568655121233109153803777883512269484631998163328882110135324067895759754585095591629927103162446820269856448893678707772653963978847573558730955583176384585615990812993701002486705594357099068158726973239546848910474597332423367567730913725763431907515472368142834405870140788925846833270707490292516040374839457671013451869313557299491703484332765543896915196700457970953568945388573224818011445481881427096275241527317304410178263447212340652343489795361538575345955269624726035782824408063006074229475709051994584517821649218771088041225730603260862405867616690898916847673350770615053459081299443678851760539640301112247913442857566479177485889957969209635140157993936502353249692816905354874721480489461877215740967803958579611746351025938390411328986196082836132937816988737508981413096670554948168021450770007144390180578767235319072046466399172583175641577475020900008973561687077739082829952625559614127197495637856489512604648898897000260068301424463672743217582214882437718826262857212452277014763534012605260512443686070504212908288110075231107514914343374493996271036232263371671497592185769100225578175738881024625508815316583571590666933265244689015011004683424542289236302355478513749087785161166485185534995584430034395754239467064766162023422978544986359301562202001040233763621180205396064802913088416232394499292439909875804395722018374788804824030174476835978957022869973615660066159502367650167949854078964027498218247153244000085452722512196547621643157667495631401896145374517665315847920733982396915626747296705099462152604517195606994313726227899456300253598382361054477355568985432618762031221890898725625497974295873890889192114727351866398110246405520667356346826297781717398352956634570541883153994644912537911455892201794718422885452305471287723755594668732096935477874198538116370075597378546257862657782952878750001096246067991591257870184777578363689833613888779643556258521100409122843019811694060761451172435511627213567693482671936319110545869388514109185923360973887911268077194873608028825380822967524751253180055010381296731766374726709650708311059849837766713136833877735907644361190173604795458467455333218003380753928345613656307467300557525474691250368301238790308763425251314412814158318846115951174353619891030436345487882749269862269711329328232991028323612600018571821749703832462306532350348261093826266121095488410991810306177852812735071256181214338111960486868633880690066982928507652980241327477092007987604720912907367445362848319922122934507124791788437155164365836164106309306831387656760248853589426111743345245611668151068735626372742947493071779372068877765307037456392421941879665220709346116411500022513795034112951596801052030800735904092848904657598935057699260899433333882911182169421751930338602300538445915843115774827270443462609595638899857755856038005007274700950420247222225269971769874442364069684272877525908992079333968022051985073996762111359247489109637491253080422226471941536930573695867018386126438048803448219477187035731889407404550179595457169695108180650952932774196991001172954499661555090452249000345662257455058059076310156728771662292410421047325007707545266904734499538948576474895737255621248476057747867459876902369541686982593609304199869244472217713611046210180638637632359030751129285578839791677595122046777785622858287283511205198650621468579232508066717582988525934022477755371134859375824038201471833960201577944466388738792812320462521392836224451639954194237142707162311880126066013160855568508327871320223921457545545682603435134416832265126619146816058653911939577324321758917035548312731469978722440850295192046431467191613837108872530107651626784551061674049377324596332722622725534878666905793003837817414417034544545371360738362974914773659341154208864488626574009146562024237564167924897056718271748179901249080726160694952977399111210312210662304929645686309870582174942214905443134160259482599757767108007466168370270980683777000481254162767172746995262900117052740110660521384274251994040965394870833953236893369425648946562327111527961871443438116477469809764623116447041825789835136479130910041268461643553958677273842975394350268270544808156359828891498125306402689599696242966955332468914721733386279765163833628273620358267599738089654800258244726058047097947302017567416663910539763453216183335246481334572884998154732274290517374619005818064433110645489607017081080328627702440647557448799612565603225934644566724705945524355900276083220516229312046853622445165957604710060907533967357273381005305111263896532901408806185390848761689358771322809003990715539259847345216470439329698122879162501668639563104019756024118297715875212565361319613477172378116903408525625405139783347504168422808287987043553297845836775492997610761771121847101843577032810621757084493186636322188322498685352515126750255013018982701438777820501951359300717951998857740793128824714263042796898469219930568109113341366608630358942634667261658376056740936944532985489155904478149412355738196212737742303161507461393598387364625032797132041874750600811757968871394976527146950640244029951547994292120344586948722633487374850873138592432355130237278570429701452290149870135524596069262358840675236829152257154875051676005310884004890069579107058198444304708544970782595422792614867333856849933335535358542423881069023609746199313251402298359896312013145857028782630072696224167316156611535959442830264580314422347005381364681081180250487395845434542464912174187737919064294051058684165917370868928181684789053810489819063925623422350386579623882764256682568153840995960339165159677997310653852322412824711926436920095142628853698597722428799133400241452749745221611311183756034739278243524533958088245340537979723083470130930421455704239414151451166050392206997066759673839264393424336686041572328548716504759024652573555019542480093167696922032137890595601487243710358010345215191494834398999427977006420480838468712240901922375445222610280855402262365286382942066880448686582364375410049304471523657555559121039958973455884050071741040926834910435239059812778317743713706891930064328963088174767684730527355051988172730408084719348013550614370201564703751844684146875661393007942469333749017778693670713226480601009899396046112596643562997886265082073761861781526478154371648178701606685034326925074265318273863113338819425027616764222542674774582747229759009809709137572542142758129966686182627860430971904477659440591566931707619356478936612629616154939172380566782758702772756067283402780484263244289193827486194856820810274905001426855644960691064472419027785040829529262029652978660028005390115504651824827960070013186662031967803006127609123054198539420688697924422547041231208732644394546800168231675163038708505396618282404240749726062062962372516125381120469977847288264341450301157875917650216344083750895605794833977855680546058670543259581862375813655816779167006526976496455895233299171223884480667986915913450747611172202688282154870353390551401369519536430178872568761580743071680375881165416137013770931050835476271017829066404422000512234743667708036727584904792302756615120726647095289949439520493354525901526063820872333496185323915140294502532637910023620939971501063114828331995494563764671869699590214179481555637474170574239729063508165088046062565630875435600388265272613164924772845735769279499791701516379195393475932662712402926152051873381666843004328387318592582490323983115796151607647385784925793468234713574086348835946078345842861582487404944114290395169758790350837260132157531520941741836366822608534223409897900988286982624120766717598850986221699060290067489319323577968209187882079144663501077629800126409469284603557303160440258164944759814598720793455500719588025552645354323387701225658723913440719900293205453697941465062162269412953024596989211187217114839924684914121965496298543741616215656703954396943694879535391207566614985737393404786372760563605554897893739510769315080639966422197332033236310002282702483391619166704523937963525728340055385077594984771425243421742477972824688730930995341362432890688150569712442337924527442080854513677765845154072778694988058041779664666766921004294553083056748434447025089423946924923835806575210415749171077335750731890605579411847865684747728645496622054451888177354883580523601252512105058353319644458303285289825328321193830159329636507636810059029170996828116178286715684225962831732186170409895715082497844470197488598319799794987307461099879595321329075213872081498071414478419732252708547166449371321736341065900476853430813471338077173253975505029249168238055931203850747674165146302229234441000312545836502928633897442798008323086529199760142121685903867389195483965095649274066440721740154845383689941104908945391246538339715896679541218945780120033093799267496984319584354922648131181792818318396977012002462794777551969427381209508099491159691090535093724119604417599195597248056424743649435734643002440157542429571590276705586343006519971939250121777909816138348248609087292114666482818905663004140071206361546326098249221481602152541001825293508092143378971022292077021495896131657839599700789364746554387626595860684185237052012327027304562395516016849731283015085534094132646653132680908972933415763024338182543974126466754775036266213804065134055143192331536406387393728395563006103394344742846515083039236936880781470926128340901826260763117482477515767435768991276132111824903490544567562166986643746354052166205992690681363126431696126202056509391724742318471342244012788315440817207183761686323270264402149411039844637908015362683407514029406009733417805068745435786432931828089473503110676462372753628389747074547555522160429664854062883355285721007168099577786967789705259941295624838516229897140440435552138927527873653742647061518899452968635195395667506985791967753651602804267726658897816761611404804877716764201698937701211889276707552354897990938166668832142122271196155035096472826227959592494124010968344177124116581402113303834964817325852073591157765181582621630507744254916493130856066511886593828110500976126891247267668271434378518724781589679056938021174341015523704337134839819954791853189182882428356539236851687881388903068378326162177037235889727694140324961946614645009394486429890996794876985108237322026995609952457019931215015477924729390833071709135628211461059424759689119996763682222393166126816816580549881782669458625739348701109599256105274590143995594909168062634538774444136911002060507553243735533507418019281480369933838151043727147401916405349009792381401070789849327873126673804203579243907906721593498990119940166968090318763374801338206583016508888963058839378389906549938200570077862538963126396266370933306178381700762031230484421904703560965445721860404193051336032656066297334935122528416654900541238528902165928367953502048094471603048138516085037658216197840654914544581033155328143114685215832743799496105888799667989142446884013086119243266098296011074264616465339089889112510217915751759198723967447783698075887487247076422239544376062190888285371606513382722325317584745206532464817939333738779190857050188668239922019110909879885089856448631318722318268219372099360455389856168413472735071849510223812031096824655437104263270723962794636032323987144307729627031849357133277274776687118603088465016522467467769727334779020295083561069396682870851777817336963525963476774121071662330412809941647459845349060122871053927473155066932996953983266762577331231887556526134599142531470344035415459150048466272902234020810861053581200406975385571465504283215783650596957161474878533972810487447080787471863234086398702829607021794549303960164760062612217835045509491946870290232512334895276592434442271776388844871242572472728635445746401128723076469531307812360423729474496614111829543299208290743380360299670164218254257187660049814020534851988121175419672271646650014244561403081407300685115539328795617728059610391122474565372821542875272316490192771757741166978933514280828500527238153617419587593165110052320328577258934689474480393376393321284627781120165608225294362946785014535327496235104137874355489738442643332651353272096677874166768187884642733686718045460166857448638948837360169084653834922194775548743768597078216438760579724394924422994090015922122970794668972051181888719215058951093885751182808950998397372444574007183653681451030462378897890175900214750686848982138531157867964662696213668309258830156258880330016674628247071592420635823204031556476226940055869417045446770714669950812157933385690975629997605833468187040633904376832984506030399036433201301156151396853095338071232231936491955414472222002433484038364926933734601400120893903876229840594829765963882638994744931870284166094528519918501885841352781605499638440962462657364089202333476845852293280031131564177870920699007496363940181957219272785655663679978943784299311138041805769634093216944934645992763226889930783909801323210465114236516448692117262978514108632617808527685974006265003074713756714437738158257649891849595812480026191599832843967162686806349238575332946930342974495982837070094733869289452888187698905812730149726480315278368998337343910751876724837976880415168553953021234829493087050637231486555912135255000054934467403953508684863942184272742973302286857965797384815197141778321118675496186015254365484405617115219747383463953621673901068033999315422117089093829173945535902308763059295161634569811801282706132834637087729074474410447668652554930710184320253296512800653919215363981010567979783448214065881978238807954579693885176638027011945296451620459185250859365193228667402795991720062833240268083173102925130425506444937682737192065877894523653869183459253043374212739265014547797227130943761759092028488617869463331364552278179617923151248425432842863243373941030306766204832823221638448562708200783157283280433846298063751886278797771638969695895034432207604287130001415228134958473088922718137407766648138284480203245003082885996620876903739702114227458781545514496301551196467172656460952773655798039281828385089377671034422544047971193290304710596439399756520511229620118755328671407949723064974711357979494807262583121860212817993084176787779138920582313779139717487429455497818495575541224161649371625700338566621523364909032215795360794596479766770974001225982948838155833056265807290859840361153930825463939573951581300752467852270875437035580279060788374682916106484129169989639101882104791409728432346389576662834584477889321969848122130045675164772626697122030934105937086924235822696623839057597879370139834588819260249000556092416129760774189602486699982587002792844415754005592862704720243393988730343950921675359246457845488680670920273057522769236044432851276886772450218127947980117596300052117267136747764048009088346288690165310068760360479868556089628218260557701876514807598466605522990713461497004807891767479399700537831956365849988044496264133782603866701344517717752353346653737209345036229042303248995919228596164777458219342883504754525409354389042360561947873681597018628981428531118637299257250284177196538275711052918369714525187474433209099412922670347806767720397022007615157538644600389212308053470703722994897325776830481419456580250446363982414256765620584435970859677412288976262360162802041299656858269786805250624056605979144924220587386919243078236104507735389074652998201385428581530977226248028687717301151881148364395617567623680460838520437532400345734284330812275289345698205252275484566920573444074065529899050223786340351311329319459881163269850860865316711213114614885743578739467402790691514562672118187429407519028388067510620442373784901359046436804296299928064616772532153214995479423721849359268507359059529236490770048886825151378505491790699827128202378483270215310729706096055603852840073710207477637405920760392864918419496799491102397520071889695335950626424089053204061055408446126541918556855006557705071529105340109918014149711501289856978850920439219782151757724695610613961399043770763078095424116992205738644064615968769668332772510165992489301096396663376863820879564662377110337424767496589418000482238499464249844530574085768937820540723489323546461745962215839197122259810824112313758964577586819540165855465172512146889322515770305672495431888492409700239177678402739904375909660473802137658688260181539147257685058216952640625141303969802342894268964382407965586398237571236669480897665729440777013258916116108888360622368157678435049312371362303009777469310082354750521210207073790096549273939991844695706664269685231831276688809066472692786076364458776119055988014641114010856729862257052648055867964152219597726548795473648868845240088231288843756154346526333256821168504113558461408322269278556956933123219689271044133773204439097559890670300443002643878912295537528768327761545007850355125653698322518900018852374467447185051737997573297987270433487569939308985493054811839477558619901149321934888107379777970570460383893635737764527650111903525454036452188422789933015906803530729801759641536580283269159888514738637597172941425907218562901436562043578075032837102338384788624972263602319281847570922194268380659627071214268069445744365275823127858781007757856748374395769997457179467920444964035558555209621971529988338827720254862897277504696378909654630318491545349575655618444242054881666150346312886541356590320481855731657844374735315681085049768256818728754005725022144664509357899697019127068992637170925405570085578244307858296632512886946182399727597229394195403285302861934121203600334618388037949668472147037421363805010256429097342374516636728115248022795540130385205954217945504629188799652622086309828144825712752310264902125427872760825471090849656155186523969403741577286592349369914713621188962287623285131582251856981167366610590137092353678584624406915839889549978545324637776231149565940606779571439947526683248962329571079608435126952801311468000511448966506836427891620258354924788761446268184136048599251185647334800752007017762037668404816235235017912956704527769767343658548477348399410465511571614139141090627661681061957417871772242816426577494687598620763528048528451859989272458902278242709479029962431239081722498889529259092527868060629749456600713946049736651384695845909564429542336452231615753493792741159277504352492442989260993628774460599252346206675728431658991178358956908672451189513066653478064065670819488367186685827807326427871462895189126914552362934632686305972579733870126787938760293674274837973737459680877122059940992668660310104437227942739094502852118670486892127474290619002636909109632271704076360453392987402946389705102474669104525150941310334015276984905108163504071034298314050393855187553545903904520755659437020563866444739934232926238165824308746063940548797109316542105625159840363974347263921481753434164398735952771207960605153678865903268105066553367858483238927307478498983277459272777048644073960023641454786188380176988902771215570939702476434898202000090497646933031821021363855277311161536243084486682290349348471182552109394823613393501882834794718720928280684798575792155569447407023015908360922414614985953348640226383711995767841538746600392493759971554848028417106413556048758148342285242881175550510087029646322179922159325485418163506886495871977398886757360173090354059404566812565527138169081979709599561849156662646618090825392057754373978105307552855948768549956841225718213482177066878012712716092083621842811461976207812989368252139572561691646453795909272758885319341603143070181186707988553750107339353860752326792199342655949156005176894492851199710283536351536161744367441269246020619330839991830082780683036190018122312442517203093526790141402555168676881824749664962819953557786583320266285671179761245197741951554601294676860919764248801061719807893365649005476411439764500953274957587620302662804930371111962218683761010246763412071444553368692553432718197631066419723498932779485230689346630554405418603870621278477532100004007990608926949197371908963115790622828277685725836694636165967744502968796505246726131236110109482877949097163767800467710260077589781400317383356307809643807186188942931942788377754604402224137829647771986469004573294206038104238835515530937792347593996528214046005264143162638910536928204283382702241723882167569440631783033187736301420313412946623566468275508183202191485859042996765050125647911689318902818606214664858278598387884790579122801933386992621188525821475317557893639445110337117185999703564055160879819125875802196525421636730652946794048435649550289458637611542106384567142604239649822703017382965738365455082045796855106804914604028518803452022305467805809045293389157397778306698294114345679958768711655772455717406745015972344549251993378531188420335060451056601856143508873472157326795881859266131235837114796920322034479258837668777613034766102317158796851487651379343491375023827199607746934658942101600118211811356394282386805961405203258277784527537827235012406187998216334303079936106662822475730631415656676173768910697046854463198462439869568537282814969185103732317720472294155166711743910154379045531729734783770528061480352036818448966267574708287802610408692253920974811368959771868038070720275816717089031444568352134337825185127387597125271499585208798189270008549536234118466049151272685303390588580050657394995424209716181585410234796062983681841401117578170315162741593984912474189729551973362057140032207286658743461929413565822356243451611485785094370471919827482018737027777645270136046100098783328805983947135043934354044632318302882819942684369659301569969745265334452563528663307013661176133836132488702673117358312991696199715287136208313297678105309759204110204175308293629316269604993546182904085415158223963723633042477717497941218353764558703698948875624915537771684810924148636393271294062439884818119124430058348854988438062448164607698171972240611399662430518396290356076560144325837683507626214248344363849935838096264638420061920154219696003419378777454954100295762839434328525448155083090275265414551601499516927109520491329641242957588433127438145985593236757928123535045702377771167239804712363327815786747526828536575533375726844013823999815847064551139707787449581400748207947059196309427246779353418019561910405076194292276956102450770112175722687562106043363283785298492100298358534449403344894639470429322621637809213443870699748128177611595825582850263486735737634864360461810311491619791200670915076626374594607312501708503004725999039553591024596473995010261113826076938034357116719419927242197937831323527694606231690899234786874854820785925625205046530227993757249946243514779215921999482148567738102641120175143772224025296595079585246936401189386691175253939049158047512931835077878228421902424129548711650525454615902110741423695913895319939002121061696856536512446699623394959872834800544141503013049904176365756538532550747885435996676375712406493771764923954711926727175891504156032496830661435156562417693843097629920990070130243214320419264104778427039621406673194255484922849638343296378510184687643067363229697246420306264798572300974302569011628822840338900420927665474868910122367101460703671825716401438485085616682279776107268107641799074243325897621018015644541978949480314968986147610277416269405517436844130670649436533530189473430438967180269326467723485145603338545318161463407499867906119098878768079202194277860593463080911174788713250863539230074850326026699199232249836774674938599969346370634740282581359687203774099808727514565987624836163948726100748669289124924213736372343472234271647098764938692968440991337723476922005550933250328975762607204874512131046017020647335299565797548079865535921246350765998818049244726797025698297644064870935223267261406673527860647941248981870431477336802850308814031883416498468076148272709542621974645545954146488322565539167117324203955448908679415719328394041892400585141332505604990781105620564151678853860915327016754983819720328354445173193291246711480403617848607592730761994325430659087638275477099113956820734730414558531353248291179831169563147769590105427086914287412832184865070756711576031143683142834280969503001134187221440762471492634970239826393452270499408507136460594367675882242325217217595627923971056847453089245250703096798505960860695197616593136526987300571675321089959879581272589380559994620429629523166334039463716315471509920588050361542002062366082565127746160673105790963852881617270194428855071711648025851787459653329583251234579318165867216317702424439997137809318124152364015558774491014741950796915688060894517057932373758452645502971880648436853748331294946856647673709000877753750680142585297500573261588450559376557340452311991080479542391811166853559735566212203933203919818330449998450218183622438646070679984486328147855542529591128034553721197672643292610803442742322740986478271757085526897262547514756627577185922499213769224249600669289413958615880404468244645554981343781990577299988634032299565343027847193739866992183508031694346513752217403393594257597924960410761213411608673977159724034752610718507658468116545375226710207978011210968232962694889562790325270064093301212024927435613551832827711357141191790315748732577680277031860485044557004772884140673287622020306759066352370885823962708834442486865949736501052421550800729769833133538389557871006591507006810991961490843945239016754681416330694487820030231795124637060407786417917072851310898810556495963408531541962070074361455187834286777292944142530775143098625106343374322892234540329417383710674852906286868995055931206499121231195711091172100819334252970077379798125001993857917614383025803441055712190295253168536926435398366051668176311015790217440396521650725028551591443137700668515454944517583665167387250887151296108867548483293650341161684916360665542979742773811205749998808574856002071518819186749504486255055769477451224649198714790769694099123126290377203285793076247629971613839555520751171432906628912496843524456927509156507863906962945407105196873493612685265730856129449729806827186174910411748478251950530873934735730203420009234744578166882292394773905709097301433317947959126459224234748555600336555151599570761090515564270945635629946254844938481356319844663848048909852254736978305916071931286910152666973409538093394706289949996540502321571122186057057690834360618393115502819163570099773872656627336452912368653617231661230915739591734628520103897063178459160548067194434120823578177016738276093783914160170268391511721132004144105221970272346989154403571971123265587533224554410026422587472662040652273558738718411297481361851459134646902426268929815612763644145406295667381182531101726403741952214389898580970380018775890080522641978079624247260974236725059603715010164251475103781221878548015233585497467566988493975131146671636260902707788086124074295431388405833084567414532954486416624084541580726860910454543199582101023606228113955456785392604098225495588839934581383707992516675028251109020466614993285704583940092044463801985408844256746502250254957129382141298619713863251479572345919381334388831044454443266688872408360111544864652038126806866933091717936936777363286645005557974151557446684208240680422496353192216272123322116437803150015373296122862856043791438242795442378295717426134387225515207762229119002328993780304347786749456677656097741094661129630640541510642195736754264110190765348651992792642789641801492971992473588639111394353572698817083033865453908260229795600715206184200789491429874683516095776434281565580662809232829355821104481986796668909152561351111465405115229853436014702451035845811655972176840549344371160410108672291589533584414976815121117722985856447935245346232743596613018887081842503313029399887854222227253510233392464558813880209575408739494982798665660924978915990045706393545675222170568898906016748502116071413439282289749104335198301463837612754940882559342127118728971181401557900581333023381130499257373020096253851806865959079455097566636768824092727468078292960123675942800557377155326914822139208094981610438206349476431731743040378294995309281548624186033037830788075067705747591412756922088122786576653246902122687960074727913982504160614945961259364639580405013313587622472027583862318895021984002202462466246752306141809678652456215060016923928551739037958705497540755608518036405806160894449702753340371619390536937539712563369267304648463448403882826788464966952995317109124788187717110179129486609716374621677221937886137079826406371380732368030944435470438411456712807513288895465573958787588082136842564977753714744379218679420351913687171841087741048294021875047596826028106358374427686095164634969117635472871479518752410718539498627812732158830580703360586709856507416405186698861615530023534916207801095009711327877432920398763731307550942019331914758359817861207857805702325466010258591046759839586135166531792975389076362500258916981542849721098735287465207057669951949677671369960631959742995209635511747944772553494254889574483009932240135498606757153941022457085375129072104860164976249390154950281033768015377519833066193190005817328452308839850266994534674336236007257569290059139771141571128494953387185800597549352629440604351269669682234770120550315815537962645429572125757915726943120485936570481875306286816168354767411806185614580612521856206933960667918139778359699399725682251933726206286293289682250848081449791172326482848256696688659794805754605732413138797648637947461057330983782454947461185574122054427927845282779042541059601795285843426450656843889674529864605351610994387123276609688763630082491637997756222400680994633367200258278351678201420545006694717265100704459423593054382434496858564655486051566055321870038363151863804862778893048554700908166545989597977743682706746975710698519394156546879674174345162095177979231380448548956612907733304683489929846644912722118426292560043636457766262241263008289971627904291356123499408704308312761401236383894647609678941993713688097980850802314921248670864589025783019905680707026926857449540501663679883235018675764442142883030327098054914623197571722161087199378705082824748599585165271988943606162297717056979632574797455295028573985885259464390809471749108598658714874239398249239990769429293557560179795824752139964618518081101398886330550191054119284708586704429975279651878342153853937204328376656774176837051904270636202880434771849442018404729255468309967361534410441639838958302107014928923277630140738789024840286278183310360273364750244832452843855621579188481985336363819245977209046513765262051505875024218744320628770439877139350446052535554533557005776198093918484832145486628706601691519559706702002352146898997870487038725244869245216516371818917746493853163096937068952871234695066341952055288889573452388191682667997414251541483556877994671247598749288993184803326776476572850560919318117517195665027738218348526909256034028126431729308841496996519419616165101602767949374860167469893436096773141048023017889830337416328135958225058921700623319847550415866855467572470057149454947762825816077307441914253007966031844432155771775809495295445404292756889871133552711438704486436581285392983302931506710657335805250717408784798869731568074858987006803692656199675762472303081815788604990415298185079057910674527387484888327626253708215924352745651069913826707906842581885801984347783051357375987652125603436294404636971329409343168780098898068715664791908538140142282085518960554996516990570173042136470373815577744018488113854855505657683222444201630822870947698293230442831186585058093955511501774732853861250539991770134545460967047043316218025455330353011815901481649150658101906928791713590949970071855670990637243090208444796346502851719086792522099704087702416185829192872173072250582726203899415976678383539430426165443745502620006275239454311306282610943367606359423947924967932105247620930469839243072509925752666775306044539977033923915346837040910845326031157321891577773137096067763572669413503228929317158798231781927308413665157880196462940640484065793658286332596777347888510592867770705077771928352382550439481650535431086636246310737194193968642554184445152649581514296724595345259751458588830859080344797708262558691346415981941452339750936081529211979970783664776693574846396794095717067070109280258354322898034170443917898146779501133055879321053607740644819516754148915219058016718022824836843400994655647197793429390968305189969104245182134863150222617760603180005301483146494435834587679611141535664819812712989314587573629958050242561636127474602987696908988978147604133750947865336269027448942466083002074106683314202485243226213468633389089236276335373257171848444562103505774512793850722774234178308068429146782190332022448152289007557129767081644595973300200867663581286297373982500958228840489152071521268676393575584584737438796451124558111341722980101951632647486842482659446627195451819752979658524028210312346571258524244568012179837099853449797375690198082251525945433124941596637899177242395486755723942985533864336666762031430833014201414562527112764569580300627128556128088729633354399570760859900823175344039681936191503273392178693090751591319751587976424357204371787823835604930845915614385951490657997909668187193871340425311699712237318101589765389195121042255695966194026912279168411996055725034895089359453291456460983311497730316949774030389088952079335922177780244333780475574237884111187114795112946675888260129218936977372747960131757094597882098422486768521271033997078632725630266670680903987862666665343877610967011222873187354030488759546736346147507016114151411338763619128072810297209061382811936143787201219722346180600625774831149314890477263092230196147700190219866343867158087626972020087766071295142322185032125031169155232382144864785957679731727355852513930829239023888654761542871995568768276989379336397755779214359520294665910554315205908781506060724699513901988302213733555484016607663828982180824626007400928957257131113869822589887704437170682741351323101947966040834734627634942184800043280490825513513875590548503730259261741878436579651728853159711595192178395108325572240583449865749474181645090404430117007957069051206112096460508670109946186905419283929323121375519115273770522645772688571929784530322472117061698089844812716758926785407189801983223709035247224373686559274065825190324740448397186587169189952710130237318931793866556789174403376681619941080606575406226024694641336153382122337287437269367075283188120674531225784293221233856531263202695638359562879096926812778101661193702548391286200195248542243602308602169687273506025473884305289348993780234133701575742586260783009605280787439347957167855123778449322205300979738494380616147418359531930558813517916925688528591045513594340373298564937811492812919271334556541967373192712809739941101119408168278447159372086579166014304476087650396525927017700882047992890915620325471419516434514658775472678888468517679313049987307006298175620012968025385637200109461140250732563882350672741150777167263753260648862769978616847395148544496076379947113635030868443662208988588946222618017577643747295392897228683678536765582748053961743199641952406483864831676025461151599927404403973699695471794073176733430829710877933101861215940464813096801581824441893391859256526673339004513412245182145327973608442906974628020474459808526500724484699513056474317933533474585567455620938984319136068268214722871449197571197183526366572776009526641243169957660764138188022341158828207730571872957467759597878249985878766573045707991033666375130568164790178854821588674306291173090822310025135598114814807379966429741884821327198495823983377560292444936750171526895429712156466192255086632401881759414454800917977473859470209142384216757955844396685819540585857788231771746298712615681400917880196866218289055590951738369160368611100899420543537305288767827217773720230879505035522582235954989084564181084662568244198450303581432923289661552208556637661363230744662491465851331546154412615749858443092959069836846846776638116240008979604194010925603401492928733826612240201291086130003449182760647957519498854233160138419216961737128972401075805350652955305294264720736790050220565813641889861297700201359292350889070722612361769870656938058384281722610674681790460776702450317045730871710492886796958285147129946771267909632118212104673355082531442142805718060482438645190291469173550917388634565006426488445358054973197804098869852292077547309848822432895865619385589396097993200392886019833714422747239443929001061105206408396802691332392487865886753023809635226795779776973698520556611880592658626135932762959640000513111767783281251009213653612916863011356267112469268817586263799613297639823884437091462916050716716594492928186804802529738004091923125722033606222334965459803351710872206559121211635637823159690686130798552868508993467273938275879629654277934713683950866475076764189219822255050544794971999997137527998276352844975216915801906255898906889370054191923714358501850334532464068391445709041765213694164899644929515353871442450073414397736581546923022111646947118368824760221976404513969802222376299826665178803185218173265365421795479676073855431748486930697388107529462995245043771257576343785153474688079749984721663201407453601401581283122900189396824347826873870636683325782894366241902989404311674163029204888310435585518510403361314609244524684918070813758601993470735172728052695352171371567718984466153802784510835634602072908433603398458227812655159136546996367343240435433036756834166525982660065661087816074733493175491067944350111137245075196130077892697006912420004142140928139957014599840911306803192621325381387342649629953103908018088744694703591035342668389870668035360103376990090848150942243863908175480103125191019565348121695644823503074322404212799428776390550860647692081820913503003281792604096725700195265560007151601589353254563621167215499651112427777330382454745771964974497989450888396215557893422672814534111077887243509330105898038075067237231753471432527406277169064417454499734671555885716436810970422864330814143901026672986795779937625885126713303677854146982644514367115099359303614515719763874272834306140211477137729507241255226468424824986981984448010039910799193500117633380583400695894848723156792584177108376332646695241100847413464304743963946873622478357377387948579864461105569103481932418359107223895555674203983494515059607165051219751934319339783283491514056306638275552774479025153870412998079095000428484876648734666152078069184828646283834048882097689227407510221540164314211306690810767789086505067117284105480084652905254822258731646247059920832021746256578407266890277046868650556235268809681704205602853095519360840569669555330942900300217621198950086986662237951990661407264464682955642208517741628462850059685165173479093749933837979013535616741392640059875477091491754807151645345684802245587203341525041496447070570262281829135620074349156449287311101066879567698196248910247004488677850018710774997812965896588854371710748983569618348696276024501775463412707650467231115811596820553748787225548192561043037394273617859178694233913514178877541909170844892849947274336379156026385272511902603419219922612493695955324544751701553596507859155192601845184880927352157180457899597083678517168804830227223445327864428410484379346313759293942404570773462159554225669523316533142500047700572735055570426747879788397852270749783231107945890879923177679821348036074725278569390869052914298250454386059020698084219698114307983081568848049051236899510992579983578826687018201324185188072732344778439989173373522179749178988108266856343532138220911993812523471091595370067815532601862967311417522960214551472625420947575283257873686500509615289924262769150331582052829916420733080985249447987637538976875548685143738637212658553400275030774892799756064554602773317627078362564639029055705060361722983194281741204615610791015111357134558684305987178542482893832975645695384233613427944300784033620707746255036882363158829791615956978521022733501164197719461944723973460794792712775500997390485844933157715852111532101745725549441668547988811947167675160896037627611253180707300353691798704049884995187173084111315255928331026868499961740213787481462548534364843147706861386712129410386729147273982764394789851937888713358005111279382659064490385419162509748226975574421692866183535448007016183162448541559631794789519535067840830143064167210925893714680388231101919001736111235492631911194336520487025771435969719932839617606293807055384458696130894754418573175634856921830194188114501763214028851234326251703101963512573158880026254144856215119210548693422347481716967305218100673661863596103748211794141870832414005418440647751022210423900616351026843542740712558138244176348656366511545837762663089547204630822888647085509477356064294257071819587349076262809361453118964466650319699536019949685483846790711144973019076189560272498742646003593483087982342802599808500415668230492889580041086331078960280054527472891360087824686107767862745830603647885185971666320024870588053172345400377961263199102499463443194920586783726148167781832089773789307631565443750046018813352132547490233207166663438145669450610025726683689734181980173258469018459280326555810280432412290438316352971883590744213876874854277880984463509268121772558455406433528027821597356866808646486791778774056968830486716185374531405038817714248058453829688122870804919929665404365383937660525107339002994169685117527129954171918922990225384515323723992278684712820236179344003140727429805506730214548445910599010632839213179872568395858267668460202686344399757752955268795856039237878896683881104497532507929712598434542423238929907852472600018807152589515788104389396647508118659729258183993843865555925044986289415428922554976240039064589248114758107483811091716305847951342355973461178172620978995997608629577118490854404951865339300447212124678088618957992376284776440578659612377942638626724667531785833365257706526254324261663216620415222244721036420134525810085066288338322321869304917034850512909703158126714994748360634733980809952641262188454925246274979955205957077536580293617217820870674574628949003710884860158119143960936414330807604551687972316383344474791734375118791512082907855817281723119506556863528177107886981561069701888491432894080149478259224590402373389599072868079206704095681203545084729135194086163067825476062339735170895184162723310091394002178487082320735321891111283070793198521832345686256228129869726011016892567061296770838552986545325563395299362146722838517462783968842472690066442775904224458490118214372977461569992329269259697226298276949415152964984379816996963950957028042752862503288599572781550825135659381244912578872849691711083193711452891267157209809625491071819022953527998208481645227691595954263461527190239513762330168000116400070946830409120617273890609848056550385303426788617637953231058963224158573597596806914283443137308602415460142300160793117034056557976464372676433420125479532458343092262675686795484604108903628287066118386229310825391136039354612524844888850946653121762488503725451079939171413671760385426588236322805740770239612465751991002916985501979760128968460903713748548561932061143500593334948875491146560474754542321141355429125909063960829840675002906378020056238484850306131867142021782596802438747365120706906238215562901779321985060793580228172510276593586857532660910742469350502842666640027131405589432869381043188786046576029729140665970531059215431236562449404187011190520961937205011194521200468278288527002604662059809597062739382241034307409369565543378339984243646538777894636482387186022324397779265845809699482957301691491307836462760145301841634073385108828941866215152984826684089131140796695964269888325751179646324243886202373163312310629178940562561187541729272320694926561265352625109382289988215975154521138938266530089764637464607782309701329180186701625260951706586864786873525913094727482630952067271152432223123852571832105710266722515613205162116971349649282155749837992677879145651118130984115620131212385733298779197992652194646501980235262219599374114176953933132660351726176186791494143771720567392297773559189389401328173585462981574407606458751428591105209076715738507474812639044009093810785387177079817123187271047863906816562956336567855925600021716124871187365500470562113284497640477837155272065699856065003782135846437296291711067831014912880951199620495871375893630062259618196838958359142871478679265443189902147660777210603984493083519432526659081970977834314324794551876063438936658118070962412978939589629308689452439388362062627559643922297549628271039300119781733447253129690131520278313464793553827122642862548008768530633384410487955007918010549815772447820812597554009429192099939440976889508403719610025965173168269598457899883442509829511360782344633277111168590177376451911454157072625803880104984059813120390261467242204162788871270405438425576039747970605991082929453154554087039393742063722854027560942148778530658329438403988736939176600887856196741198989983138385181901847216646674209452587528768852777356660756809635515604323643319138910475824364820571865155624801526819663738680901523642918965041704240847019676246191754645696885387641038709875694234077569582748150302900732284589806836199567839826888602143054268044189821911819804918666025622297757779888257113317054230846175316796538960830245678802180671384391570330434094843618092949906856645738302183686139837574115016574418958632412085288460893059866475577356304255400541560547548887486290458954784136382301197895791786436130105329497271264602656297293527157987267522975284547564089270148215134526713226165800203353416038468110760311992360321378081937594230359323158908595783168525292759235874958115953905122852860790765538292350803370295174140456317076205392472670552932151732219153636105755661207788340345824362398520036128308968014146085787570018966632919282247615437470635777403493437629365580294722511556348957596789706708379354486938855925785976410624413622548151227659684712243205027432697315070942454800894545525047521374738179834998190103570026603822479611490876606675566299750574051938170164160117919676943535689782981011809349889861116990028273935900868600687632166020743134241905617512930689467030317969705861065081194469314581835607968580419931778967211833238939742376127219305957185732184784231690820018240937978866531327129658252751973433410658485426437558996059796649657948055851337327590952934434803450084000930791248673447355762226043997051846397002223203199321469239744994700788484411463008725128230000415900299133073773562421073770973704139278716532731493139729548911826556081710969702428677681030550216154321163933494347415480759527883364659816706567541031617961848910687342737126967844231327369162035277425398270871170076837025548622350178669805580937996169387596576410794648421690116825060147488809550281603156073142203603012638372231762782499482061945461067784199485847441242157424464477562011390909792600916604337940718488887622149438163702131225232374449049613804224341729213672784000649201180299919630285651626877789096696772676930472737595428236977870548545741451869727492815824033615257041655173709291661641372559557587503648086923064369458628353588411890899600484465613938082399101391423226097476460708410180965239782272021428153529471050598689986781942372268597348686645684884677144623205697194201503423753569544331737511728635547212782792113666224943274029976816830016797334087933751485156260158415931629207150106617452123942807932402950489656892294628765799314851904825160808433260383441402528580909386527680325315500627047445529863730855221518354969217839628161972492633310973632740298336850841973145106320000891281265018004908323737074556979063107129395290087335706177145673418110670204136667436653687128578085418579083161798032825228697073023127472869097664638128737117110301639109999491605895570158524447982591432088173474051680947092882690853102525167717927043945920770744607014159930027343813143514671280370377189324766763219279016814400636144089496781866314198727867190883499127261084127541039776301703063541104054591800678175795643026065487447027103898362585135921149526727031682410883063764987256165174869558967255573871342327455140335767347718264803794661998925709178766995448004287283191253129142405774726654078041543576773105746513715401333250372532529499421409412816321450618121062003116124187815049504994804470050538329514904247608702000442278583133281835263517840391033827581233048511586581548409615854781569260848540612052463403938227424389714219500152924353638170950293182658557330507090056860245754518214299091622165611059280094256859673466636177573024219447906413637263563414632954684277277914974633258823441006034368020999007784953593735911699961389537344542921140393275294094173801787032412335830180993221160804940496686989325102721411200294805115370807664540444191035616302690408845008499244988647649427494443468749398559553108088869147941928600836965458401270093988633705452961446585893093782905201413140832684041535586088086468211073369221999615218434226781637563497353469988826706120189083577546270926269517242238022051848448839984127938721694457246412044860649191651226007632061252596083766728006984676054883687213487281697220323930053290269264011084063181209352494407666403790645983742495114237121209465357837288710560189309430215535850068271846160793562696724871864527373579752061434791988553742980334882564642495046535599789758976915107340636400098545760530300087830076697829620340977178222941840813574409946182405742347213679764146925550320853568289349287874787121969857170834814648675348222227291779396116553558285088913240334384841265738078332819152999696062276868437879937912037812704833878057862205786335365312732233298112416815464159914523172305029676270478355387114975286213122216171252143541732198567804262833154884317528805232394579880314148300927867429791572584800474350932471304577217199241006097007575407772089996936051043392127460007416259055620962971291385607710906251373947107798947966513779738725255338784972815595241344323151401208679167983847583113634049916017042664757688885358040133829334436288182260103336852899666478252971629398786783366530654338318324374975381419965210553091030285952514878307232664493978486425524178996115816039912014099224431485711238770425612511878448534396207084370909213342672006854991311693986647728833972608054026140661110753277494972097455056778568930087708040277799242596063209324292775730801545710730141995336338673014249440671694889554894470553158572359891413664389908441544681927108073565203377893522341889666221656940561419679479246512082521979183112032445491519412585593947538988961076804929975754211497630397729574455493890285382788845003475623505652819524255725017313362698011719790791032826769428806167759095957981110506540587075687878502266602256745848164896228429030511662127974842262212167487675083436093006497458334884930332711190454455911062565867515540814984237795637527121024263318711692303760399068827811426925932936859354615368937468534490073491602663717837975474501437696087700267421044999000130179305650368888849643736049055107997536066348114415419880886067209592110876879875415060805029519005213589847224093287299825843343507039296722258935906331589762150237604930213985040292784065620629399148732649506639929231442126306261588062272831974501006951372290158063794780975122557250300927411331304892662360420299145785209792832869163635056776410527374307299224907082791105079090715782873551491965325763149136378150849384498949637212424488095730416112319293477434612344074395465935551171681682834451175026166123045495540262335618176784961470485987223830398652846505585447022375644892892521556773339036368133755368040932346646206413430300722235981189024390520253886148395721247091152988877015787624868154411510564085562753253506081262285726447310880094478671306819285765049844312518399368579905167098420416444013190277723200796483591042227399189735480842943195164821080658632944050728107677417032972745929135592060635665471105813665886265726760598800984696014624310245030859034201946126525846673712694078859388667786525731470731897057941556943785859947679140644462056166537311987372107453792256782978097560335386474213268762142990206768605920538714941264473330273613172216670170013250459220620874933841870678577593956982024748188716999939345081969717373450598485372590139343517246163195952123326416162231519590798216237311736078673360231183702114789548705061001367357521452942964546033414802156232541238412858244710819244512790387463641043127421639214952550233728309772287454382205299013515740515440061510449623375692323281322414696677911773863460844980621131113340663857583018489735465305882251132510777791040095092220391407065751047074263960609337366415074538054377848161295449187403681239100898422861472386049679315543439568195166526574133742427201766462414739523206122811634681166915546633895165808920096209097728338859341553751478544420735772346640968929829512553425374627985747263695771600430164523944574073277839301617461232216226972918113771971406527365011104114368744401455828653206358827794060740054685778926896356598157909889416371342019204843652386010506632884868135653201459821667362460598428806599970494779962771913873365678186703603949261938948996557932309264000724054788153528167700947959958182493213522914099835728930329578978500341013206998864181466806236689476857021257370408229577277997021933806826783895236984169961209221353601148547407659052724920582799737918180376185269150510194133958516640706123065351376909938141320492863125583603792917929011353599141576289562687640130313945802604031219280984583634741137639797934383395030262803234602684115304020675925258614474675128118010961753364038602597294947066724089998905183504108767652679109733340346077299797278261985505757886570621201053582906660502120530959690750143791084229054296493554169172724626114486290950517653731333704748864409485245777134591851971830597320815106430920097742713740648995465698412993380167794384363593489196038390341576278413006137510344546318174981650174234998323467972549409160176082305665703441118195355284923285796449214990859407434196562778557729443556036517907890250614949635244469106489684988363508727337462199526832429654474896793767766494487160529066352736826750160101190577207318746113032598211614097549760851870143931418802322388496387941442037562752331241561433601173650206549585341699918258589678854349597437282167248995826976138637539885808694089561823797386915135711192414910655715591667557945688972474309752942015315543550293544031869876287632272985367398775125231289088063415150746153546444293791303325817301229807735792036847158175513520171660003260710099766767121782504027363059897129548411264646380248677836746187713156056270900377291890141411293342035598126274315648050594654653495341448302917357248951444153987629155076304689557140148559479194690771217891542967595354617270594410142456021723156927122740950521807090144709609158993545837405926182472380688327939161052272044385750722519272104108593166959368188847660510360712563556799833634852048953706970403295418949811869641422830604432188880803554067253334779020975965014367974637440114456164921408554438492929686940725469965325867721707047444656908840216930680293223635732064153577699206242010380124435032010271556717533835256949594994559762267332013839258192724373198408504429335788071696641284607000705456626310175465207435442328555353039219263809832754788724880621316494731994247229875848391689312479077642778686374829062468455303102441037408052408575867055804608002709091132225554170018611909096619825620241990037690585187000506764508720854099414478671163561306804730581151021865246980631563299436534620332166295254693510749919577675461204144944307600889623462314989880703188153275592471930104337828672001730849238890237484481527232681443403114466447973868279169121863171530586063229672900565798202917627868860421965208416855720123965113587140420722388175380917842020892026211085849033431956476138718157859982510711942983069476773842449722108729934478046545427172245607714383892443256271090854860611868675618822854156591112018539974071305366393464839721250088810473796611875864668657157854677674933410404512319880040614719990144927953426293161477435965173314755266849865350446186525791336095067912968812827602235980142315359806564440325697409165720269214420862281139687249647892403512514994276972193243836934353685184062046296161382981653044256289164888323954071990698894343177840904085740674828267779364037520794811516890075975698944238407129375163497304143366747368712916024284584218166577003664577734881738752623377666963312310621592860053286270084179870621378158303080219490505448688071318705695600482456246528005105919624786919137464063261778084585420593545286712940510980543131234087714095424992103971071041744665042137454961512078387354410038230727612687730000416301366488337751162608943066135355670860074507786864043997704851589527830748415979811316249115056779444511490723153741633094986745559235676035400524045380658431591886435735602217828242523624783860654992141888483432343787951580609106864574097704026395555974575679845364507138798086771606811772117516821488562814789595196302921484215594903344686103625070527964698838122226038959804808479295428639480913379862141751256564858758372626071765729252720921741969742064103965169212558754621525679547732301724391827465674433037470946211550212144790429844923964881774878795948395297100176411396874727066807375800793707831319213723865623513183901412208019795499959531911300166031456901640789862274365639116141144212601983120324848992715829729693337197066681266842828480704888296261632012796293858231917850704698612283148346707688939080378452423243223067024105336471410744307813146252185409034762318294310828015214880472039944608302770025758861981093795792828437867417515805809741384288551007109960691269975669580785697913507266394409360657274611805918238062494844992943330110515967163035043489263013346346332432791331981850904422055873898118040257351329667102356270047076595667924466699341309827403503855928795808837272771664503841633233163733936243993448934552764504716119178366682473255956516409015633620312173955898382099981416940491919818307427957337015795880250583610646613484289575118447879308861733356312724932049943202174814267463850983472505889313725136956974053210576216709740142011089038914736466694867254121117174626994350326412412406212485709733151531253660115222062990762642773071103632732862066926426367658527370415471478744053059153426385507576375042955059855133919314312903169298628913142572832216024990954974779035382626972730135478965762348779100692128334064199579685188018037006761575451092843001318440419875848820070265204988638411787352650779647490238844362838947736144564695233679797589783080100675928551096928798158061837820256109525739423572212284691737786956948358453650703626013387607027881165184705468469740362071169964103651866802893195402323675276927149947569419414087292643628580398682476686727244100531474212008850912032652089486056809533785786135539066199288505444394218727002455264687369194181973864345407972584415498624210205369084728409099070535984769244441084564397906662220472470204082942298167727073360322870591678796116077097035629493510436457435570471058828225415769131121648317771987206207395256370725584947273614187893288403207747975227083590868386439892110028328385450081784328024119812405042453022125659617457598254001301514947497285914321303754697078058745668908669501414668506575355909530738822455718267896591449750180107207152011427331133197608860218064581358818199693955979993009837337465511126297626849009137751721673833928751420339683211846947381858483382422550369578627971122216820964387791696484555521702773640831005116462903491142797725599869555396780095420478505551526357327580638914929522143544241108864817503231496162665995562269653657033432839426286402767804570946513705114434496949511436044031364300271119710891798076533265852098611707043215940324334911956304468934958352091845613875773272979392028995886163272433516411815126825638894443830171183542281432201626300122539061489060501523262926811327627771041204438541058501829138500205843603237632957893442813599927893622122284576064519959268806925032225564019011585165869639858378390035487404015239168446412213373755382020250542561973181324730931663437016737435250373218000712406138152115844359433138793476125431562085570958984956148689346789211769550853600876296180020080315923161588103549868240504487442720237286062989119650148827302858425723086355141862422378009546995601366602134978069716321758991416549521024665521298278413757977850001727552047920100488788264711053421315344528944464289061753551361607621987041752808411119548166604980970790828530416966380606564164053338889624694729517071714851759016239157644889082446813269652780719424982630699034100426207824230295157880564877837549291197940332660918713084491941148030907666758110959060494131906781505922863265808358199203384492252145370788784847598811099381784612616218327726910321504498729002287159301715401379510609137210536481486170796806602924867016787763574683165318389954529228087250209482791832032495746479290194831718524975864099561502355561580945498168919449547624979367433946479621836701703246487878903184706601833845819449388801006001900125578336996252495662761621748983485764294500290093705695122346592506735244570954363423734061796693907779141454395808996883683953672081522880397963555646590758340032117585897387101244367987176258834888945057718511402615186119055315924527534589461531446909907003680377125393552843102608366707155039008923436972369875829857439059577597582906748906180209370675346828904370904963559244564184613999202785221250519887296713792724743695259084579457444087495604574434070307621251871306924935084649571989134817423056468809581752351856540559596576882169435331356423283355825331618074014092610703850159910943460903165614748517431268253623420865207647525978012251285028418698872276637287143073495658201840271668324851100858933540051916149652080648389092830102071964785728387522081037984631354390820975831384407571502055081159330750967528885508083010173969304711275163049516289066983010675549008642531001035795412392181877948449029832216442542615061221866913956224863137105533106138546756214947017661221371986983850335350879812404739974010828228216543756002957183220861683747575420997239522488850007045106016100680949121992427671090265836726571062376094340106464864870857138512624815003074112987027342747291181444890250085527036286607627078198553280650237143751637917289618684332179295164445139959745796942648583255624652353601010126103774488058431914078460704781773784822111652202044463220479883440599603717004243943025314658222689559584464369978422000163398654786458219722670716314652336972323513167210091550779902733542415098802679520943054467150579377210466792061184693356561092690610581425370727706816123700109958728961058581025436204606376421660386423279971347683510156819108356791802189328845821493340928416236374860855295034064704863588065258550086006229310674716230726680831041857397366919822742118205296825423307369574904901281739817920057591769452736662991877336745200736387575537404858225462550133347848285347707048946853716839093838369462099377205344428524696894943131345844494554243466037277242072572705594993943407785025848495970072458400686675529289404885610476403428449393735762840864711999317121240206773284340830186405269178396399253307858942654324234799150346171811481979224026616412693552163271767630916937525546753835138498421868816755947953323939823982956331197137825132629657595160015054774495636475903807251906270939618022131802197235935801596118555240657772328149807596682346851175862482409524046163925875297366067903688570550865800406168440790409855138633072218316132142155350202368711899699732455959026519662897148885050402373316373363915527446421160813605817831486668431129822166735013643528705626151069616827571554967063303691334937933524030324288815919914418335992998390566854509914238581765148705495175068799717603279757536832426969337954746089513306961388671182802746647762355304601275170720999899922737297847880466212467964821403667533522203082590790432273422413481251681871345001701558043485231668125070795037228968632193690873272284886619356737262466963501062313787207139668463990907600545410518752972996723710775683054189632386280093725884543754326555304369265386665219292129176992828202790206921123386391869076457658090281453138714197950246977333188496651770194454513290637705436724472351865942198782145496456955738645497134209962705939329545155079089568983604119960210858095589944860995077691671774690065439527004172842412041292782714424225449316856057827012527003198424341562414516146987253355236894433430773607494651618517764753686553891394164454767293824768656448151115565171098101601487537725057028935824431217103280255310906958085131138596357981991098799513420559571536429845891566839836368104055010505015163819491382854392243915149623980525233905866338927717996760979725262081768184428937193437386297355488378802550092954568120683068561655219305206661989773997886584622406526050247442135778145288265630788572144983985553225989480138724076334624520780929751951254547457613791343121568229514721375754391624566701071403198165862870827069420208057683393893254802374904269824288266695323927126236806208409577343085735820725074976278779768098185571393569374752761648268052345688087270705396764547407461795418752792966423147418028422025113891061602272352244943824702730776402876439516845237545977142596665953321853125170024238806133477637371946771980318278423453871346164639517256825023828691229871718327622181577572538893483255979374156012707771719612299677819481550433849347187886486849404239075590468782092769247054795126111498194043021118493648400235683186248804824777951141868281170635801065051381130549810325015932420633457146189002440489103360317510301206631434453770295346434624604729640610867569534506127505555598979263268879169768324863533138385295256557392459504564686777552531576712716966876184144600564289188716484273815925532447848806664147369047397709158374590888785341587639378730024406972738433543879294362229423155944296780911933206037950166461082201206435272273947110047325675559574332782335974339690170949945983924062502816974569764873060349782748267207185558243689455198718846263812505130171182079693484020581485876071971273774923171154612903837629241704154464541658746786719023775527672833972864472456409226395919723607173627237813723596528909093858614427279468793076561543487558366700473809028194123226063568460029372347954418599806133852433621095364019816833311391826956472639109288167067741180409732672755302913000548576688307542860939057923232238082653203428385396969841997194814708504185709672745620241557552268969523970075438496534003766967956617859198997973835972597117015632680822552653334311305689748997162935455360829698958195677488230447141905660133847308115502205624651376720014157721349544213762382073595080863609307475002635075654171388163205757075573753009086766742018870768064587870371530793712829477067117873458029161979811257450563501226096254015498367996135609921929885737397168035704598185331654962981646088706351989938210839401128044896213184476550313828220559396793124249604346597912959079598623232136904612459950102746357550000767618349109372477815110962282109790643350102867179997121458391461529833335905232576684419612459691380099142997324912578465356019554742650179773222953263082213817774773812035901972483344547035559602239619697595969199058652074437372117114918547629725578598323821329758253671923045090056378760966246461762469507399790726422826095077676946483717838407134021613359693822019569537914433516945680145876524838400303495087897459663591960169126582443791122538545562433771750561343934429428114476531620415515946908634274125413536027957873217682170199759535703969179849165908834892864911900835604431985327169333378982759968588172671159384086115964852948912331618257375716870903660621366263915988533892857054943989611011823837577674043347562968187003619414084365550738236589257137094488702191766506438057342044379135365495213002078147847482184361715339756816883731505203199069906947396680791254751952058146204193988389716649957200517382373992777182789466822163282216822901437793546569635711953140933264474782378276838701686277371554701059804345391869012765977508740493117987003335389763503763214289984043318393609492685613551871078126061997195572917947184712792467376628451823193031447775585747486315355107989604524767782564567041367010198277009371956099721921059713503143871764029422375193874033046563477258496306756603193057131592113159035489349418222305767065948178162251155041082705548288301065363375844366705273454676687846760021946778755715707387447509248084724859861264890370260623831571692252787274396711121904841230271057275309140617301340109016249836297162875158527524896484983621957756743544703075288328745477610736810220232310675344099097406002717556400432527140025113333048071348635939078293332848030039481683925220150694817414135003810696590877907054094836594804911454712692284473497206599827473734611202346451173094834066474517348003583598150141362735779330428254601444793501473560787242983357363190239637305779119065053445612466499289231319577266426008989075325836473095497791650715296103241917791676868967985328669719383200958668483739102421334576159321563670067315472270168241066353152011907781216078296642666391567868128704165858946636355461891256345261599577663073767379652632761258725869337796499670669408115582820637361123267878991683544955086155084370572719314680373994598229502541295869672841165502514094363766650758603729793660803705187853091327442985180809906791968606348742963606675029962394833876288339523403416729351822308015747615625786431672607470136224762684306985447411869397749438291858848545573592928885569438823348687700932537158174530497116315403209245276621803658529108540188423935075504096223600745615130238029894482352554242065674761060068581283740303751229218435386705492268010357261804617394153328668347100986099013874878631674024092469789668717770372299263919634317959104641881089895272323049640257363293542629939538779951534816301774027009600780465748740787602391826140568502331639122009072370474938786847207031269174948194350146173276081463781111380212379063655169056270407509909261949783349628150254666065948017832717565403194051254577782425779289526254807778946459909157513598640827210224842050960921443560432917521459529456647866274894450671823104236136332468053407853152938296328467959119271125633176113962651488074491214783851658162515821433162025119990042419259049694274879474836066460801598094968619806051325999857043288439925984544755055107503515145589989591148047990328665508403563652588651945893098850766509746293717340035831011245017548227478862571623332872824531598649441997113811818549443045378566992041960398098164881646386812686875593068809033058024713887808331451330824827318585864037222352665976353169646267639930135611598924780408060213590251956113046344942574083205313682335476179538679314959450988103689566433470316490087830487641935885773526349745792100721255100864775601383935760260760707005660793589158970341469654373712623977897232266773274214446570188172234734732689859087644007970922109012718044532087104055824635429891107856414343621115869475925727508524361433952374332854887175928351167607177965333002295831101433269487397186800658779724009410527809101704388354574125894880664561779853796345521240511331869874019092034572536156258859558796032304347270741926313435132132996863200459919802910482233807503299180440676616505753889251983855777297475340651023994881403677537549389872935213332158825431946748722229394195484305038844360461221138999860606748018979711481666099923610845460592427811844098811781452317557034807596309506453365231286635223179096736716526917251086521933843371346609943375407201515307910958410490043041265173181727397625634496599495090081418696290077285986396301657364343732010379606081601777374629234300939245532703948835983805257887839703825790006979461510582385100740061018258160121244579287673577332083313666284993122824661076961217937638999768594901643234125786975534850602942951415101167714080878366828826326593431691083237283088776718577773239012070305717382494172463725937292218946339388615564250251079088665838766694047350031595470603077321990744491055702870989275503621143884083813211836769903601151605345232684570607293524648154537328471116190905782416523115100483760069514970909879665942930261324994538348731140066903563949906621559862682105002801071649172978415181230621661088797836715469960617997416107997875193347304690845938909521282797976344001612189949170104089167723803149526657145512585209607974031002595354558686154897665175194737221366930227861741409951821612319300771953026389640518758054813009832299962216185546278109824403539498039780669742507623960580549318980644324090096586013614519385943781105999770780744128170176403503338929726624111164654299613286771920029519466035008499308581828022196604783314536583356011145720251003343529174644484992019864597640414061755878422008450291042543518464603777043927935275139263239573852244869780384673164730688219524032951799412761367023313646909897220266005696149922461462780957896870064076335181648303338523597974489744052120596469104890288659144050829004470035322666123190380763278021281120392660386636175686578691011634706723680622051150625375408651503860739451746075869689960914417738637931101743477728783062909154061503359189155902490954752672644451367515301261282654577649249340424078080672354562735944850850206662321444293621701054703370596041747705538490059693012785961490903637783280475605186703046978916010959657779763853012406719069889908734739314623782544483893516477831119383544940369884742123977645206010311940452162205869314574176624827249548200437602995762833398470793832006273580403131624493311899533140090064233479441541508991457335077516125271047694636979818620422672253816139424110980240731855313193071494647404501076590607306178573471782254445395926553327433110266954357276166793472963225029793085333593859285299358804467193562785154614193789960978646241889911020628239488817452781217001944773703489128077110671222127924117435977900561729729647070460954567329815039221969375701492107107857046011253545668147393761178840940871991487028436616880491126158383313947918344008328118411942998879165486752657608695414570741339380852374583364850024293719971519613646962824156761231707663340265436460942040849383561253887422052595816746728327693974292507149639734255785465420519905582494558632888331974668324469444319662847624265022536989515535131322167392156564423567249693969563761229839993041272398548823464000880361502797840807887455556132500164993157780494418859257018097350180334826836853882734186189524420735822298225182888937468719807517272978420061721727953585621006233681857909747936630391303373258117669411207055630556878633988554199005628890532260599106131956133819926919022565397366348431000029235898846994451197283644055317492258036621721509640258339859829348101674044494500301458266098970463119097827462349780656326515264662629987247787335140747452710078159407676844413724582617123155604791340268393925838725474780265676599879464237847768348430471485373226234791376282735973819416675043046772825491224096723514570035838888714218138429690961047351063986224016929124137551737529152184724346026526031223271136467002332235894973312860319799598751787505347368296646573702866801524857033894173111966907865740435826686251729193262369662722729869612479423998101649939145543631074313471031289028065476703290003834850184218081335439815473685143276176096358618649138182271321999044662707405282433954865320562377904605849456341638053107153681289422886293166655619966946278277683712961581108992651844059723627933973188413559312103196038771887586826166760519196505986715437168325823772131571113691019714274427562819603821384449435077495904367932299548495640221811327212646810670781630059839262546541017944898007759055532672382153236271340731396832420688761956799985586230155542712677609436889490334024170094661633149283838947791669078960768982498551132646918465854665434775665341694269477184799872270392742996796846484208443310902723401423695168811031178851556936681443281995246381863926994042752478280949734293892946560902042509365928154387990739998222579463480298567080817938876026983736035353788102336387563534228468862350737838944641137202599863060767329042680685101654333394066568930575087324377165165208045454901537229003919675890234118938560415718705977951640758470803205922226331313365030156907574394524204252264982131937958945857066817654898629076904862476124363037041582730481757976797249038164557086741710490572780231479597204672406640880189880190560296878277113239195652610921635795972485227735724797642070714611848472823523659902681355012880407522619656962771537671148250540938854230091906857697839507993410972619755899462365193798551905542885017086534213092528533239792972712838626685338335546566193387354914731866495144744325572782098785342608905384090876781158337965434494444709284458333571019941208414838456432460032572224460338270089406401882769028442527753705706591323011516360439046481651631143667080108395576238596419804323222927525125350389824811854655349202053644667110266457576939325579711742856517239170160591753335103196984858232812505486446875439066078410025944701319157406300666949592385035781737832700248404619790819039419852276870941343794378366962055151572682971505976178154383389535596468709871902969508429316737886604015328209857423073911303814158612816905515388349944498020751942572355257888833346250244267509434311062485233657012981908810756924220846121145078344455560208339816146420965252948936258712128270547809979459719610502140148563582493356750123919361351021835665340911482914617418188256150520170288133779421771520087050150573713523046702772790190672820248722407646608673493944577995367652786996259428939961405227285552214137286484183737578079171960119913390190226133802203579351694168698865279651896175238887143277966732339263709408933946349976613060758592213217730451905012537314847104229680882424367545541067096674230498449655944561034343179144167051292304776566950173494145442258944266582663149880128034078407909317471036855327174672119617704447132824413549260416646557015373270718849145331969430171934672575229258512736371194078449844657650565911456960520197910438793572612173821335381742190587564757189247879176729953962479813098714606069387092035834105220127236537245700452318399609847134879616558205785607545137921216130890910674187274776581027084926549747322290230355804688448191854995955442611005222155534421804693054019053244514136083867086508225742898798121771572347214681466752805434516234401318440457058418343716061831655335192541922305194388197725876369883891374134123969986740279913565444338544794441372904290644783105227093842995379727393715245537556899339688657668439332257543849136195943442757336397282015435629496037104287176553115625237559745956520318075333082204854273245508140466005558268532373046891840921537897764238044604397695277783122175508568308014933027125250807712967638092100148143481768428630613759673179396388359525796062954329933346463390785743655402880566000765206066099772728371026632401578602117491033374542294760953568086399777253689002736059960481801835256842791713433091916721686741208707519824419439433313642842447145819522832045490071551338049803924939982572465013965278099008889840865268010992109618948777269637573975609674000726713319366704605858171223956336806343967388746329335582182236082219972965662424791088515962519131375028256819958039604542340671594746171889620571571399303244819164027242126464429639974423523276147805226906955589417871507778202588346483914919981302518649488188596252261713436839797226576824106313472735092024255786980889533039115040215462872210003499560655739936538002352930029850252650056327081929606138033714797487738660521150924929711524026122353427002382412609514626028668654231489289272350268069013976472550234045163729481171374424468814601426242142804354433519323072923964915292162884894058397056415240239980071005985048278980812964918862373195275077685701514662601408501454205838923991695816772512078032313693803350310238476089296435028650291277928693984901366881835663459684458546459621938745687601717598245862793374317590711166446337811690079959843074612633853335687597934124896134994843571585350203610038396640830352653195705736754663080353848872692064115440899632060481733816987054727503219640544292349576625830514102302795443961928109551861628539478705215316242283176356144548458485447753173358437621809182916182022535894821627226682759447442395234985160976874854244782168965788894256076103871753572833084710402417623263454856251163763445526450876364821924286850214689265354348527015682793931295535052269553916978135482596904230383343155518193886354783779369237538857752805278729296947812238107438900200569753494344182895016158268511315019825223013343261354498644508699652221997492848429804240995387269674162969017638350562404579103519548132824947735409968743241035184077690996655387094597783057166324958185403968641169616570542605174483379830236351893548247863062693601404063077944617240682974094371580630338477966247860550582669058943735493792331895393957968916772041371996196751818121667292806748222378140309360097928824959534401927365121696542298644662410983505321151467441350495887646282193471756110727123854593547826159677579454056908724434752846520696165080585489756112932408575751565746537605104282998515403115459277858082930320242594793496264502571096482288935590752128548809568638069373623712869404926634762075992704510662147175127718418787502566565020864143219502671270655095725421013431346326251295916140155198218799407237998690160354109320117192581819741706386293947960274573265014216393621490895187090132847159571341004125072564686940359830636207549471936750790069675391664031146866437930869560777961414625799635127957709591326756897582204129098702025296992522941750960644160273445558171747204187056619873588104479411997779375583619693973999592472155307724667594406757736735269195724463653191396896609113517842076090990023860215308640518791388599146088273738389604929327056204925657062151326718073119131358850596251692316910261017625562216405710735967355321336051024737081961094428882310183135419808892778106995332799851682131641058124109471906305079271450004724162089371379994559669826330506350780805561432181053754600175777278576482198577747561411073155019195505348177094711353457478886025255318998630381229309820446832122309295947096225573027384246484239942399979202526769364502911913752450679126363424530246726461535709182052305863467302560134288380691811932744349768661499743849273846499853522379371286470148152948829310610343167544786888382637264964288663646200156961396487150819737689332777207071620154150816694227682180248187637575322896010056572618775335144874483190480823254108118816944892481490294444288165336932548282009556725374639372049809631435038046160453042578809279111156523187995762834205845588957047543147731782601902274943845261801793250597358000394878870343300585969372030273024632633591945049092224674797744621925788248462949761855068133817224887190889275626061164117530430263906541036797097036330652681345202419738903452403545893809038783495747330415523655825311134901491880829142423019881765697407052679342974716155326702011508231902408055821861561824626522144065675269780534976763145729474562739409852588200122245322823370393429508942922717578091162257211946889583761828297360952845919099310511727032737611036865475578217872564884146553542709731250098840092839143565527497993062309464286978121155410654589990852305865231769022449421762268751882743066846310613923911591794834372597323895871013136291341432884888051416710468592899224103830251814384317256588443199777597838143734902472702086304304091593044077056726245841701136336307844467810618452894613012509914179392375129428781060763292271142973985159876729389625677674405249380034663964555240209830041160614276612832363531021018205608204331368658957711435995247207280850230724160911828921533256067341205073951075643385645174800352280433555836873931076531618148091870394928790684200445314810345612737400385761447884054781073418566764949937011195693091069601371773628034425659981372484227595339097982837859518495755759201809172875031814820463288314833551978066656673031535714196409349460898337664165178051633827009497028411028282930152704372796411447533855576729124872249222856160555249961422246620771895704781528731659977674960808961885032220283217022258412228964416175356299304196611753390102047276187238037145925762714866195150388416286646051481282961499467368003753033092058612489593474671882723096971142652578519213448999453434797822625668593664627835044706655345043515460785777333777933512277536546003120973846292721862111487104792500581546750491006044819532739509891390624909962814529196239099174716812745278376391433063841783602464058329166169499730395231895752522390577338875480272722142683641457280245978874776110628293004376729674719643416743841856654057711895664467237778855109668911269631844098426884453754914115314723540668125109038058442702920391499611625375146825869785677745061564737637036993812963550394030405826792849291925837168135985238890934401672332795740705837098066729485931637396014044877823079074375375677742479970322299558189380918489052978904075457133562825927764564671263455927534118747981594401141858839736177820977060984536372213460547715552546686937491781665439061169247669514760689184302903076416072855086778492353851831148449259279974307735413467848591729017901802230873998993405005324642200574359655800545913979292219146165545347989799796354118336835134223802429132772414638395178811478831842043128819981400157394687090403494695899220609353514014698491244995080851211488835089492258990801080160462626731791791101510586546375619182932953294798610170567639364883416183298680438713592699366876663185332746785503249923954069357724535142315044644662145251154612280813710479107217351136864004528577229052112120455033145477167101492899605053072395593690980533215509483545743462117767989098224797507319241233578254938828404533393194414950079997657040987378061014397979243105924442804412760243316158436966039005171930995191084238999675575912210114753185261014461212457241131830857281714099165228511351527302932755262056183578592367864586051455640288717588179617032037739990415807559258595469043931130074774618513664719805534202526607057228918724514892442897684608199266453952301610509743766771797802151298162862620396555160688981255907225003087872573577130036835600146316153250609409043449061532041705073124145795472405866246274852743009131501441879952849963688338469452272113945465516082372530973985213704543413708177258492452506078254499561711228498992170797656171084691178491243270096600187466865986152690600796946920480053144812063951210704441013135794900991275332323435952920197737733635068251938089050077651416762691631959582004117081731738149098747693576498551053258943379573651315436895170543095339169124992173149886285629724708856708544746876123265285082314732685234040113464253999841216079373408003178765408692238136728732882866906600653244984434463049621132924833133949198429244297696671204747662001717091149543185892256334743446408161030022011997586498615574860884248176558095591445714187061287390127561590271212606487600213640103964894417352041247867409587564972996102271123225887620006594279155809075843050157790377313344154375394205476913567238628789132177306703675435143557467598188911466545490695190415819590687732724152668718654024384815396997035854263963558813117113934901629803770991381214549564702808823178350059280399012285602147369165940948574959569600489102761422961243606773160472843995590381359601839962555009717796523238617711088293142832471016194445176976089265227448902179927416361967862150100958682658564394905921862285868836551688363886428849718637219765440428070211358863535647113185104729232580292235464109210329420631136537140721994932948076788104001977082502897984962761417219112541866626078163254804644225354167555516741278487008432011882042416103304953449069363074331562661858414698790922784879581892329319965817817440312623118889897306621302733878468559112928528653914807594921472646518298177111446241646031684737319338496395173157135764954798545122077895511159252716573600872123619802227353322613168581057062497351633906636889797182918306066083732496356786383902894706004011739964231003952175026741776693546434226190915964804685289371717112614567930871923335097336452052082721018788880129946381940044682837894199472061333290363834638560614171981231446232390473326013051600351264284890757045653117033143759657246539693083485649404846415978279450934477457126541899035617048900705981541418968520324125357497430522850244618018601020614443031379342386593691465983379768336738672943994879009348741400088903112137183799520824555219088665004302526116388680910149996756518602668138086760798893040900352255534777912036073494491342324520044465591968120952256460061528361304926472277050056599211332477112901417164261673746548490314009399613591573038561015048069584671520898496294682443546697927731502090937849910893004910406306469564248988574927487426793495569020076389865725048312837567614708979824100657358256287546943307695216926913620658815777098244113250661061365551755563449143448697569028748294563168498476688102098035717773740400164051210078077932633942623587856580673596966849724210770271225661384886047673553112901394770080671423320847841925121522684463518153762565155365983427332412754304511628772468362372081059898221666544963993654978926245968653085329810146584977362936263192094875469642826907690344847748176505250780119491066110449797295603251578948912715559208001607641773517141761267292934673822211522367077661322972326646261771351589788137273242515485313382596177694857645028224703198526592037503628487280776860498342733052138929888376116655532359880854115451815069663080720928936393613522428469420082195044026271595527528083733966352456879869731175447335536660741498572101586442398590331532260912027545190839230128551981016180591252199536686684768833417063115180075648578363343060841785330420649674321575784609474975171485308008964019280075241449576407950150369792192390599408071176908881473145838027291456399795872417070509926094192893969097995651441005510184455661664578882196694205783493682731386162541089408916085081734597027150414817260684258719089599041350291322584471871465014710483755855948320790309244945316343004574789128140308603007109167867997445464719951100726085726887563666134942793096089362912547658405288395095545948377374627407603318779838210983019386923536550054394245675226071201694644087265279617329059355174546200512437994886921579692471446005713438522259384906682756442661373324040097916409371010767121460054049968743721839320717137376231810495791056014266184892301751988101012474564246097538544355248833597910376896758368906127190525011035700678528169185336919228827708363498760503380316422823939771820524722688483589605560138627492551747643811256959026782060727042317521304127604574883233025036244046217573322693464922926231181801864007395130242132657891581691819192676974174986360138330169441871156286503086875367834529773971514541368058579762337369171507528049747898395381462613998663859164141647914262427758109153310125581358538939171787172954230086314822433400028389190889547220688861239384037878091285269122508335498861294129301842535925892048299760818292048022159482120792233117107653271220978955317494071100904023019402521518079292678393291689332501108163026875416382460442469274640832991276231705120369362000820186781995662608131658953971233959110192813093475822318470715950159485063217433978526446443780541899972884498157422852030637927780517102763752477313350507408312901898524681043487026535960455038681082237412561097404121581550562341937824335468034403305683602820766732361555620642316826291861504558026330111174919674831462020795254912039225499197031012667263604573411855074558472745293026979701673880367170401447698608603096361838527020433961680028741591246169619755925439584326947438055572594600961913622690440277226549305177968517965821139684945710403800566282647753102683659985428624090337652887525884093200120078607143906869391628266194517174181124626610473006062935813763763643330779817417059011061572043583388453328557009296707389431982484100207237666202456138778003971928210692150710844072271698876492064588313645929389244441745051737127150072192915110455088722587136924958609515510695729196307490547962465825936374039966519596307461710030248226955050815934435061706159779269308744430313996111105428529279121383850462214908784982865108309162468648547387396244287800155861079748955217472136924868741306890727819991329411948466099908980880335163519607284022593541111624901775940930812881876467844442323768373328522740428166661858479028692241156945865585571518956413103484377792807539578108341460804077299111056274247036621681728608430685178502990206322378619614456894713221929131651285968114936154540928292121141044732465020747392225078121248536965394240374313049577988627192781749773325432926249305424673484258903147415483530270693647972398655986695249638322085618884963657108229300804915424398955547160227533742086885844401221244692011892915892554748711522794163145406650158115097485322518693474510644992154766943906309459360846018470679997656116099936984238468720279684788161615842131744147735689779533128566026585077210645657466207835900292151706299152196975668373763900963239460210138075057346026135355268956902819657554527088778017971292742806508149946500991654459678240179186214120107398263764149934506613368618701342429605796114256071730993000913910273272208512056706836303843954600673552029839415953856819843585462182837911409667994814271796431379248734604682512048265103110786025415906574220187957690165420487068389555944638219232213569162680093320310824477565515087689244608113818533773274249784183828641528399499213868223112123020314697302706558269851295541797776764159697271271850232639745436620580356667570790167517105173115951923660511744683310914593548340853748478774484718785375208618574499810729792798565600951921951595368830572594225391513891184249088764582363860846367808059654101531545112123306011723849772194087817975432520376907538981396085089985728140075810983300074896860189633706378534019260964474096722469266567560860352905200779300532689879431322351836483537682104403550088094412269255291390662069824967728687133555484698630117579116587413818852750443000644822829879961166978524742870566336269153017602085393898156630842795224865539705476498777826528543863787742135799854681900117278271815401797141176321862832635530547828961730532933912926984770422017051544733486369799183366560526422157884267440347195655195262619190178072991347539426989158228209468903996966481777436275554444001445716482522531610716505924436629997461173071661497996037939875770639698041040607740142197793415341550571533597367368396463789876449205454735982425384115162835835730265885557596613645577094713207683526406330454219318534972403661436863804097653894259202331293598102124960906639126871487601539138260249723639383565449496521223817420039676202156417410546525920339636739043802105841445784075002833481159172440887576114445920256038528666519632942704344735285799228149464914010453954614369725893029963209848884061861349615238385482577772609314404493429395518449683025824681513193557707483837225436484680784093212672428864178796297946063421562275962210518855588907107376403169131453882820196065396642378687569834772673733318132142076748570208097337414027147250436444916057100951639281773866413940351090017594869716520464704899974360955736071720467637684646404463203933974273289057180828410449013632766305572543881234159200178953781015138515778263706463906465890858708887284077415989626068937114181396503293131438921017078736910593285294597293687117089791600202140400863261479357536227974233165666902480988535064471403035315239857988410655648404868021307130552582857857356924440793014816182865499788651792929790548561747498024614360729545482101665479261546864446926390775129657162970943050636711994929873258457095056511545831451235152017822689489469230431721103216391239026131885888449471660634430000310131049734279887318096209628292561215603002005791114688199071964676822209088458725057344012063171957299500761810841561904044803870343535050334458058460876408976952936551309896584949312464508137362030683977449091517715876220312045356656306284815628395420474696045319771382121294108255408665591649193975474020498388022308610349195603743128201058071560693103154118766189447030114371967203722593110779171373698405414018224319721762779904404473871303893891683462387471048354047107201416530343368495228104435378389602822168192900079200569033555971396785951401631108677398311739534462737635170928321571256502842049192776675060217161240836269943732003318533376056242687607360966780130622610998900133046954661943034793662453954356313925250681150342992563745214598564028971877220402754624598735607348612520816555003264131911879992236437325267312505277986038845129631550566367041330766098726691988877428920098925274532388535239619590730975268732238805054554489722355338208081232867121876437556411814068492156978944560802229554168037114229355898902948880832902575065790852297191791507582526876517021305044848235804601406734305916565099232270267764704086574058565206327187025500723094368516839241096991152702510352087856621212087603059142517976069950838258628194928633833678280016382583670627581987746187633493681813053936297477757766772023403077602806423246058770181308853706291414033695349561480514054970753101959039997197033986981965645653686164971564373979913647060568930876787659279472263287398576640197409068587986930146741375406823194879940424591252999743671182773352300497015713541875625138634564624175196037660041991962363101486173850396864124043609874122484016826622056693307091224834540627908019090757997591528775540305172695877400199771075235444900109148121307744292804749146883050546366409383368562412235014567184781770262154314683280751046149754520655787797371357014449366025347860153132704552503240373653746354205941163119089834953146116675216738826290680401862985766458078457662063094147298701970551076529737045829469004656595789031601417361136937646138908852145677151796913085289493464649295885508647508337902876458326437211030134315297384687146097132580943987914980472445065512172611662230612380763066630026921332642935168302196125378218169461926489874396041223627861730824888581825504194722472428459683921464421184317923795296546812115037239832458064716096773721703928002155464621344125603736308564189223616695401328873982854547399701067638613780783808057349177790971394140455897968793455031836907011929315045352431607475894653384364619609312861575952553116351399473264276008163902328077138610337459519765466177812160242625021891776116567246570759891645980775329531425874084309115789671985587223459462083097906109725984670015495059021987780712330937684280728199835932741725989652937576949763939184514803374990860969701289231426162598224990096385584029959314986476496312137180706218427463180383674514491943305519444059734062293118131990150146855299430344368433092632933061804743210426621091344132173035154405994278761482568880734942540614196625527808272586064724480853643605532839270345818791958131413372199147654569270232141196382151283249323697702617147434823906551942573530657993862289198387366173884328899831865272424778184665570242983315120626555165154964681291533044257377957658915815154228236038838444739173949431767667741934053689914181488853777573086634774125773283636048190013732801730970467273020124470927134184135153318359174874560937387097667704366417051785504866604368823120113529461973394661715520384334612473367485646617167486394722585917480507168354918633864184245965396511430541586719341028014227252410980499199580306888454098817953198423430772491797285242487796166085043352333707558575055006019820999344216827618979880842768202581297477950938518549859382201083154579098526238510614709479644387713866244378158882358374416679979331492870828365378074756399801131099026592709263084875259041065020579373525396417584232526358582168205286808637497351126060475002744354497513706651748718014511102164943402513370111932415162727495367816033741880516473912554741798271260350764649426822725345157954529957025697799794509342177848280617007348827944717621155414235089714694701214605753708112883171316687683140113015524062371739739334506386383359677895097833660054264410067671646635277566171406243670229583027307590847112488947898780970492525655317136827286071369037803239365940930954185134389573065193072472080341858828820588980928296931541280702172406153284795044484791829771105098721432677189264213103102029494120951454340215703324027325758173477096443077843646146429766047309424678317622605974833505947185690944909358341681304447392287449386090450626307588916831172375486681959611898292750256285825087863773739007560781057062347752783527575593242159588538016997313461757157337957975533977711751747297525897466513184617534051850360053028719085853603579462423596725440684529753353865531158975778582508949707904980207102642989535655939285011870168766648853012708526569666298488553968950811403638475669092777889593757844276975921516166776449547115229612058453959029849010083525004966612158754285349435372975273626552019836570195377060850903782320378319093314535303767175753284196837817743451530740575514859823020417657718496125100402273030480370141323930269538314891768484436064425031924251627111149448981909222670756413460091837193193409911250615179724047578958013565200858801017796330572223857498296112601004409620029883291139343977269241276628213647023808356391080997583757095130699108073798376384620971332475785454676654831587712199542534172986055517538292162197263011693696067827530677038117139189260441957296356065957860772487021000222946654218381493508000923237156690442183822127778707294097023189740775855316708067199520889084636012546555602941160815628935676048119630894013594868028805794908819566182065115474650665350147557247383861984738056531404813751451326453653246253890568325046919843360151573848125448801544507565354758371133889919826187330589779184312966505437174498707772638215116631565010623716183117218025494404709208744937241029043189337303325186497589776680152818157291526832819628114385928174368455038730017049308735408909511028643788343947937217137920381582804111996277217199641166440092881555957944933434925442640610519097651330655572624363013876253347842629044304786467054597032184189691266015125424129071183990128139881789949247189774298883758611398247873194624427983631739642986681096948161953717204258702817888370551729871107561355614097475054460675244742894125718576530496378512238625226875949432062632810882226977012692133911382082811277732513998977229361975333704139983393023890810913047013971305336319091210395973438748664031768782345775466546025583798877666680125319586332498238464710321402579623728516965597313411320573377318109953716127210744640606101734432585287301044129788974030779726587458547607564298474618260725480214443050932771432313221311960333921745391411408297548001819398702970836233612581644420387607112260462896200818881077747794289859679918208844371754868869013732293522205008735781014729040456326281935027288654665463416999946083900309168557079275692661277994885638356350375192913651509957954560181195625292941719934825023224819090833602235830060554767165708116206500378334484750480568729541382619159701362334531281251155947238063903025433896368871241933600554367856669572932891049504887146681662478113794942779900640238345569350004086900240994553533391135523876109880616174658499352671216915707554887414598095003798667099252163808097501799760034251257334346776486763723063896432415748901710930859311700522371302891300876465384260331467945080760556852604898994125634294229538194531926971867910820733792191188553286362997156883009009491135113793996138126159643989440881869411267475067641970229650834352278098589001100789263271547787005530861690722082216558435138142526407927712019394637269518499879815903509427816628217469335259949009567877706974467937946860194051745865116978812096778142122055270151203119781030002385428674035465113985270558736913609258758119126424925812555271717696080434828148830969313305514722695728981516904730429062740462252058490075784541872343340326418629995241145469790045399566948995751222536950459136896802051123915514411220658216816273439287925694037301634172568220944358970829688505041137390414514231059422855453745064936785947108526917691846144998874312673491799895902309875258933629991827928397660466200267523887479088385153134947299793437290257673519658010515166867801434804963695977965246454094225092010760282798660478282574190326222412261042330638529061003866892347953075346093280271266132262433639232378880893719799197492078746899460338088603754514321274025709793152693440304571976420912729004118164234941813639825597391216798946731065178340088345293871940377612133732532616756604865510517841120752355424200275378189594784137398450048803711847424591563185353957618987990613954329436381131837946088039147306453217830195298364618889844820895170303038914843856222142833893751644034906644779540370194418296762871452730118120199498770328429493535897808257770363556760709074672496535986632560597281535981703173997667914186566555444838460857056272380923612844179650315365321935516930081169616134189800869781110849901183972960873110494868039311230384990184090292626101932457788701128795960497881651341510929825521886198232175757242989504286768636746238331584166989166287919771025935912159012591172914697605912116426841202309707866916463044663107729386681269452458897054312741653253150192360116700598105751420932158325764067689466809732338684991913019911957928111310250489591958020690596019983055719198666041367183087095703739467343655931005556708951608950836284691902087880682667075290175499767733487103341426098778714026837269018474229906338292146629952659070964081061978593100682768129296388127239936227699547805704560133472395493393129676572799238578872707141971529182559042139751717582629411113546358903400711946565498017071811121408048197761777779846675887492880477067840915936378601839776903587906824181880115962062012693750462724807213742576928449890592265803276301244293762704240503978829709467268772952524180977387312208925388052323378861998277221024574811698262152143533176322240167850829747992743390038044465708660670183366085575945394700050654266655681787499888115983152889965283919577647561405300278414767041659256210534291733804161304635268815415703541239345599867631735957522194532836186975408465278248505446077525617408222855328776535157178376309639354936619841833391487227017116357705976320321216400360620286139065881278123641077772293721140376105453056152183444285208293328502800864206696198156047089098759232416606670421123423801421218328517399663618637323991530040826967656018222706821077710917924635722623937819018244237360100906704700305408044171682976458075131585628829741804344377525773383344776588830483933006091588670851569749463754982198893971642787281927411037477675913742082471507934026037296269437406682030378956724248344288900551848011476342416176357796495623028176274768118952359389912433253269309481325475200625468957794587941124202512680293549402665192124312964473881340580032626952600211530222322311066021022606733904145718141387866613326412593856459270659900181583353987129968123264489800587109386797019892858419919938894822680625703286095404866685333396271888202927126871268408742732997122478448965640957404608251574639477379904573825837647333286210962238183958486603119334318672993259577787480730062497247966888488809561659488744023224807617781664107355767829702158787942081604078779912219250175973571696916009296450319300305480788799196144021068215255816737858970657104795013066833264191405424883792098403804258261246334105901749646374322564623803732208245975254215492859450114045475637368702253106993755833617566412963735273681710525902783546652108203427571071574654016894188615292920675499059903547543615879780971703026205692374091785017324463136461406393417830308324813712560045791408507811741908440902412305181113404379116226706948100315650338936418687660779045883586574512285441123633389204639946935234435360960857570980086505905568287525849468568117887505092391200107805344771811357389566944976137739331629426195713226878664659625529239736851450954069255088884172374056850194965468710595009671890131510829503610029669160784893560910620387652895405788405850820273899004075168283289876361368585973950259796765945384498568779901431599712071685407776538187929317166132190873593619711556741738658080675242579103191634064298684922311617159832321086932924155077695079202097315438028819155707303953034046319251317850784459916257576199670564422644326602621826570023837103576618897189375087378286967338661814410812555913346036274801202818484698881063765155981025367963624212497322491019774471505605191821949399777468748530030301703928640236888497137288997967280503020444755691916127900832008515923385821464701127347154969986131182097859552200225914713589836105428465674204097485617728070552107261014222420353907108843180718064817664339521251614830434215281933511346680815614348174815507952428174441615821985771664218524860708952800882719093735564588622072229940544554286515002128282242982061898040734556042661975090506438373554064051474696003535843641241921802591620243679017997776035141915590949670955858236982860686488897670378339414576646410753464141543754456928000154072478941072878392639701905416985844569243763813770281864202816113406306097573760193169956950071369030622227907962231406802758364254860664242707899199930619660198692548053608099558127240884281406395590193460759963514015158964270055989336577234206804812398497166032440602677759719654161457832542999932706199670410695295523485774573374588054423844542338184503502247976107760789342233568459235021939517664735731051024715841642202730902446923482006284857030490175222026302392273187957867686428813285295913162607395417739379561015257633388701861153815675772565350366146698780099399813415008200866842021737243200843751804636241950372353881306943839444752330288160648022823494149880066721030585159079723935435206600879224497620113663145524608838957423112176817898436194923732036704985645693456741912391622260074909489554029628043357915904977139203349332920902118418246628422282978783184152297435734597719944701787073826141303693752591346177636774466216532925836152394751286257293100321173510456385172348566055611282528459969209303814027219395683794097086229119406839216579294192652376555076773573061503005075006258118119084729304477396703817889325461656076487171888553960838196437107860382479540921404969046887001839925481158746354290897817416520525544856947086304943267002131795419306372356293659523654281985561698511849074855603743011660807870030489787269746748098312507981493848912910531708604919769684113185121330667885784944894471231123532891144497327965256169683044024714590668504989758842432671237478325443319015051367629358721890241529392223083314618988762342468256546248275355105986393507098898938767117867310602559114175276870811618395363108913344435618103753829991476306364523196999281961312491416376712542111883220199328596136313317835793754199970699483121963631921167007842636884976034364216862463472164525761292360735196036804648313115429813124084638700914793875347833506075721425615327654004659637198511161373640777874911972542792565175558108721497272724917976554862582390050358689954831411881390826553112810389973104522364869994321184587765751788813187117912195404205231324213049970116439486181593975054910269245684491588649394030331318787147279543090193876075736549763023448016393345713665652769380981189396352328797801669443086435671967194918874448269895286188763157006557676356500621876982623649083151659357011887379510034785716158447453174670305259405642587293739098916479041248441444436974643721164176279692386325192309311670232161267146949896413988635961294876882213763595159242717587897782614025764107712745749588193042810590625186673648279118034397596202085468530040420218186737594140888895915377428527240469805165859597355469893815880557647483708205168234706685207831904321362302815662390815676124470000503323163574579300690059980420222392401154594544053226657083273610613439751345892285746064819355553011693471402130827087263603889952961297541769420802520978503317450713535177312749461389180112635583451766435477581148471367522835487658940571665218894071506238208603720665461441279353590620218476094095721541954221733246247890120608850654969727460336111778851933424389025802106994220261896862273683743890093264734690366855945841881480351774156098896993973255248513706810521384032152140487133844993975218926326900364587564561508520739620394815559032474449636018431759369034159188478826042134804946662388216963351915342696881617023393117425305409504627173975923501311798103716336754402587385879646472756013691000520437790355402928834567136908381513771794848029887716398177880009250688109707601172144121303705302224014505298025832592339895178491225825000140989988436336744807218161115202802567978899113082162235724089369704997331098913568222920709421084009670638129888137988818308430104095578196511965493443908912421172248527482170953882464642538849117943602442580599977669748119762556798942547010428577965938447066449177531615765148421823162547669957618635128298241356602332777740305383318003806053746170540990221699482167578554577235947470637667301758422564244397281268999409575407960310238577012218696375904099655528989213310204609882279699871051517919608688698879825775052234380865595081125981770126168175539875013821118539092346961121691854246187509294213967251363945263889652314329895042032415707500372226910789860611316991821082419300283529277184462033999622933749394407918068024151532917835757209713517935551055311957145359590083856123358026570458937560253160046826027156888394102062146332474199363527473715456110132694433672809479416625906962460960784080346209531546816558844545808309408728802264212829161788378858509949379102096464057753308803294073610839009452035477963583639698043165237963684927549340481656692759278701640811347924958097821836658636683476943374760237741801823765218112421405199322014976610859080083556205900008707785493938777633790971028335994906794334528961766469364267868990221586669466278392456650314484850683405712336465889626899841319475046798480603894845738444349032462513996344604811351758374095654309731311961037410476347816982196659741960108864036777119480129890304304944737788011819439668909014842141624450980051037956191892724152692887276310629518882366827518280240318111070134303141853428467179241234516984745656681150599926363610335733297805650805458831374716377740310364404308072579013151464612415283324396743303385270018561903002566981237081372347684541427802099348599398747165316446002115440064024966945183526463963037256089877643323713791032821992946014047000460053057345501646159600321805602265057693243718244538659386619901175519664250831635775354972979451212147138434424676307234854548768458308837295949242937920921423550166421510618375889342066713314526673370991910671313554633850208773465121372391363940553912930162526956750184633753829015644136740993375255881473304043928940928976383037052893694181522777362276789630617841726636185282361567245799773380507674001359163611599103883246416694202319480305365986212861115201966042548230455143821526625069326079911835092968905047814097361709078738577492538516739263107537893687138199715611269551103973222986022548467252253635304326598778453842055734133123722638407508861621490284449892750079546638032133890379202733465659545028446650520223919480044245090445322852918416024155836701031130627750212777241294323048251202796574291314827167112381716003468814096853433132410559674278642986270541336204690016642130703030511853217720402563384337327402732733485192623419833428373952659676014710414081330021467211595940282648100378250681651052010137041767844456840879125341354977046619383877038277247624237777002680290236874860179430755920223293106765916849671145200733586043185607895663102894351157011307366873053928239536129000892077389667306404834190522605026759207314981854410941506156045824379879523295533469822431682066948254851316167583107650045817430236972355149627676909903408767936676661008875871981969126437242367982658679454020692424462658404001328676534067238889627376048932664243502630783566957365085179951335264995698095048429699261079238886014388155245427301425217619425885005712564573005295557767762906077875489859515121714870336513980819858837056199075768934659549885626923585935449230804417695330321791237156042616870456659653962920794988964897038736130961900499433190474603447299821176600382015176994909974047535414739737689440043691320472324085117643842292537897389841921758295512130560375176355186047927965179626877765337875698629343281520481513554218723250969420923840610350771579051715917892212575440712573282554382593847632362049270079924873882737260523027115063306850657119605697361415207353087418164755368441360888792148230216415025875494173056373696627138254228405822795465037068055314558032145869860852869670950720835210159991651739059493089685809894480343347112128459092030377188821919059809561626237715591498158840813427922583024547968974436597506340247226570913821588354633747727541834403430359507684073207980167278282334015439813813338768983314734777810975192865388765724080824432002049211433118469797486369567947538820109489974894664689342173894765982277500341561242154292399515471275614577569317522146035350186666502794536211183372365095827199159181169621457137887365856092628298411385532721400763443524386938168253638551540557439004142965493632142938045775411994594401656278490628446337325264802133280957034242461206945153329432257569193200588845016428513578198066323449569017556505356226298209444030056013064059059028705151833007510700900386914850234372751846347354723741499371048377881975363582047503647224779090452991854946402897279761085723322224453980826100921142514101768604352328841371103498966512746110354999707119689441212401025861620113610771372104508430415039576055403837189506736705188758518807789435436349372809039354972601899302202926600191443101952828619034847856887154735078910550777571440366825765252825049556522504437524235859716812090518470636522573758414640611854462323501695456655409875986122671300113436448377499686599235683432710929886076138295208655430952111046040068529138404771016394224613917655629465704989549206053220028585576652250516196877879946881168196444233880488946020979000349016909753184718401235085893534284638094194695510865770554622768483709265794722241827968535190974402995012644776817531167137533557736507111007403194931435391697888656242952061648821176922749070490773556106783572501884968015612116667033938527522272998925363881130992551920907658192359661388044715608598688549341756015835658034457760229427996448426719919703512056837643282352152893168915959314646160683192358489459098843952563559483633986399899313672285180297428718912405794543519831939123163470095389876005191524677880300729662563023509570586831592503367748987678940602224492686041010003340949737190281072578267589881119761858187553064158755976741335991054594110713886865585592863734256468984138138481852827947461931784145382100346753899929934505128262494159333913977043932673407978631451909415624105828782246065987285261049143595507945992342500263125052430877070013819161633137585459584218189819791726387096306133128275592423318318246856733849699138522215280532871758438960577323137217693472541092880347416973707508023502717292818038426270627096981934256643728758377510442738731208781591021771077713293973639070992996240960454812328984077890778390633178964012843798065659353006433722668894495662086737680741594161974172986476466663794066521607526603827000645114216146315876873462486978841511338703483119133975203412492204994468927346934770535411724848822564155761455548973193153892466901625950958578816027149540365265258151799149538318611391030537040419446416816649801139910349383539843596408587656914859652691656400897513877087112463443290253904267355095258656414207337775771044006129652744340266654227607048537370248038903383132483297197210595967300838053518883050883819853923872335933333044100427206342538772636020001753664979784660335378198933813730881659373845498991299476301191778755036185462001683948233868244931826698372872213796546491810242292217424673132718670266822521023241802174222616067480366953803402071599657870154612437736315545703796115652858205979325858173900589527152367021023217134297467196844423516156290219574617931935312797859550384871890251681044344697927175130991913037518849754876294611576390092372456552300789941509087048798969250389867167447912805772204556265449501847866730865356453624970269988651659874549758850268073554480313502386306589650901171616193158451177438984501674560476182356068593701834222257744388672145555219527622250012799346656515917577757353556058632233741389404830688668607652877403162137827773550026109983696071685236647236327680495680298117586524035043125877922983650088856494312720270879397553627742945476529737630742452790691637951226661983496791157294455563064852697571848267360819394302272999501776908815250334816894812361368162441466443921389354812902645112867224172601063827780898331459893018800568971903918313811894060481245670014226024942584852297899617324842622895007450627593143236453860801836980935171712055612812095807561917710055831250273520286721985466293022933423622811574541972544898178728330825351715307776345487847383997082129420884321692437856653521629838331871291048287045612845071090175807216870024620470205769995990853583730848287022448996451526312535774838292722460059858503037366569158725460578940393458586990989041717618963927784312127600347044270106112759030056886280316933390837434646574870748163872544752215762189387972334092986931428191635443994929539608810160493332785874679917622399022152225537218791827964737966444712935688060260678130925503891063371382013387928999970340563563762725446583217376733541759252669926518780832060293963661501226821559079292137265064909410481140933639263408310905620436582295279929633573347869779683849928456092440813166019314512515277617283470374909337498367230434315703497302116489843573799894492737484002264688371649685535739742074678344986883396762337649459644144922357052788086477171303027252985194651366723974862614392662615673289231040401658321572692421816332256816068299423913011320839045113701924719744129324178517781668161119050199793290402927437055373022076853897602798071854390618151781352473611262243335994748231465327776782772612805822711683475066934919324580875408751095855427572942310649980191131202645523638733529810223585863010516912803224977584860649491929461110838846653938122681679828570159740183593897007001595752876866876255733739241838594057156155716956747727929377739513831348495839960885974165443266916896535251675797603518709641476233052406993347667755702546015739470868281090822511132891328134263471240310233913745806480723616917519360672094652960775929843338661692781677396070283650875149298262126219651325313012365888592174874219572844375884848650995739250170695640204958307439979805839062606044195000634767983642453102021779455235525807872331348342767295119707381995803095167987331994102266649915061427880430737130924268536355914085172551364681975833432781775614407885918951763792997602427255856296524273633073668466205209755932925854813124243835587949216060528993868684479981195107575352259216624592114699036213203755234950206370419400805441305064667627958439115168832882603543786673936047343046379093197870133594976789713788172644171273250398074716265224567556801276811247053022132937892503394384943038298109635937986043367506549960172846476113824365630460149315378621127210749810240459315046104292909974915928248195801881256120544785473214766213437676966899318116131461621358551425784615549900584299160456107645842890932210785759679402124860195006251761030630576368759155032317763550929156882432335931949581649615521266278908093873906881836998320575557842108078538698655388443821566455028631092150537417211747002873631221674320876461027866570325638135935196863899105314676804742142148948151575718683459801159896490482359808014934065504019706973757084511358257769563907006194098090022555519936289742223786843924321602011817674259453169589329628187289791746295594722690525030072664220237986922392601691271581812914999777441082240638735198098709743395477263702307937063408017555513663160703349893033925309376800536925507573968711801360384752503089516673508377945565423910861955326373339119343117744360652468611176531993993363200502616640247039775646616155955045503932919607210880914590766289494026909962157314307206526459975110694652552473795064791630949144285960792267171639004284639617767239503541485913565398377296439275152689982574030827309600131647745430931179034557335374264594975303104671448118051032613750282260559685374695927789717545261415003962344313785112929893955177744147312613053271957437070388175825711649623671509838212895364298498339210832763864739448027271546619997302015318650721421254055718692762911296044418378470500969734950399872481850164136166303987063335459032031687872268188584250393940134945657212129672456652658671767670884568756224034146554167454618858363752024002307150050288852579050172048145518312421857252719480512741477640909452898093719277855553424898741344352471536536258044935458491748572194189826839491159533807120974186934691338291041716872420681192393807245044013588493943708024681328434862626287032901819136993576303521742845120981084810152032989017843144866350046786689499137141836952374394031503348415287713709476206149717620226335987366836587580235120772913513626988573093907049777334691030541429362286445233399514476812871846038507756413269484904606784261734674752228393571528503241356455029447937141934935517500520982299947163351880664808751682471862166320383205499710047602023141975394490514816923899974717878304353816290197674291866412824333774861923371038395734172636205755391649365988650888878487408698808923251720896917611354743662805201113371276270106930579663408352036819072018442699928940206538685079136938660180782149152594346603517070979370080956142575115945755544188301389502571540967455112058153875338107699103722944822626557261736858406884792555305374396120460780955600842490857373760456880163351056335651666771919158242717448414773570937808216025885719082065206668342316496174503233382311844825059250977657012593861759709284130381662229928450399441818032914348409035570407218302872347787116462250394684922443474941158324378279575369562231333754641883506316928460485680723210564688909818160209984634034799448099144423451074544091651185583265998604698747847178317169793745751288161270329918878522201451490279737825416221745969459741748144906321873071848066956983982348018050710604494755219319214459376569326260536059513680499282227698590677029336167539311526131241066196751904536775508731765111920074884320569487655421918282083928602148213859075009567377830695009094248732212400152348413930264873152391851877770130496706767234060612799726108348244443653301426624200416037767715576294058195984142550206529362346611305849275494607025002485505763741937172739856062219441757450131796396328359919605863624211354187321907325295841409082089336143290671629592842520628467589457755976728305191267648790648409795235203617166075315484363635323930877149239782232954610387495729842848385757419489900351761153806641874494461087134095445523846093646594719376642940387004879747716762085370427452079146195921095451952107098423465690218152986168114395846511094823104603544168058866566486163383342545295940619998723133601710309288787612646181830351893019306406883122262063808994751053499117501869029723092114658226865583823448829985032969744178943045285914673410556331753184114547125628871915366384475611268620076383064175058963627038466477089242869159220255248922527375639450580086362313658688426080100197290249822396628347851713944604554703015347529671702556003922124104179287735023482459431382416834640069019586480953426340951845120232113377862483132743815335334634908753336392068920185757006398086335340699863027708214421080446564913102997697754104391768187811297082019489106324129572625335475114796564363470425387117768140869419809822274623528534194321738958879090185127465669740935427278548257118792928423582737781348540363752148281677717999058078334454887384642200045941691492729293680754854053511502260399482085683503784237895151725582178416495221345102874591633600738409744597030473803501429931689609019538850914967088551597428183746282497007392285367787895911768807571046036947678413394684344239713195283261018560871989184095369143698444675568211451136804933450426886108105027362311776815533355406632930283380450732822257607898016464436783687852828208333991478727937722164330253670604979584443113050886367528823151234980657421476438059464457228766014142063887084911662833685665265567761307485394022589292912897978186593843662408919590236503880477998083744858206045337296034623632986134902217698115976208452153397043289069901843668802095522503946256188199841548509381939374572809522391459803673760374163509339380015475612851937208917172252976004936179074944023335247649931420576816298536758713801341375361982109272087885681062136489336118226623806275022697132704962047218947593552645368461454277015562776177300423157670020881168657900613158718785135199310109821463594101310636799373882311811831828136453220464047186795126640580715527349951348118975249745847869981328522992156615930497365429084052273488612342896518562939224184063842581171895639910517173382095934144114988095627901909101781798079186910373792976430346291171214455349536792118646705526516812538197140575016740331931436492233297638638687155228075321580831277403728398148917231172012779491055835537498749325217428152099739612921539606938190968416573273399201966384656631411841048859796464509651757066251645650348811620745495349624752415055616403257127754035171496000390427759420224384588259524600408431222293709548961012076669734538161056772113164029972469819015814710203995250077032128064751316471729769153434857107172606069561248465894465738695852187118426198992153546366729036020136774222569798763358107880006086658617088554282910777235985782360650887092563450134778249219440947351032404094306651141335634812542173649374062355475565373926752890055597376183007742294225726620095465761485722630448293392173572732785308247692761187324440255431547819205829404352574117343621163750332007729923861664954984626486380055628329568421307129990764087069859063871634079897580746803476054761036577011544745302930885386348550968075883161750678700942206342820408479040927097132378586272085686057955548159231335754060224169303265358980393506785041856124852423827408147280432461471326434677158864143090406523551974679825664533300981056094861055436564003266777763945297750284783566562886405438929214149767595638555664025843816043879583032024014295131934969228229463239837557141275251105693556235618967599625661169358654365531581556122810459059401901190057109268904091590211283664827501223546383773884337136744836544044036965244347503058089795610538957793824758464270730921353809553905764031790250542324465833288412065313615387280375733484098312018104993643033638239530055630577516341487887099900617403936164332297617907692844086685602715862593954159625571498557792794950625263720716406034049309513218074698896830919954000927367857692089243491364320419414131374699583410566515401756846352354103893078402162453510712485535879420107761694618929190520135184974923008669155531725700335091373547119510702779624770353829255077313885231007822366007589972899009996736938188023450306455818160798715192258123058996366163640387078607367591290800877645914500311750198820725082074501245338606372256565798214341853458924853298925566926273480850787861971254549132499286093350376303992722271760297195781699705168524718049439468598196745642574249398737470784708716450895508650082220946723078910100751487124967067652065923696711919015894156375767950466797113133273002939795815980927240099343707476420325754463396002875122217419168929073217876343528923050788838063658014333116538014846577090203188802654823441533449380769406681858487529616795542145669867638834563702150836393323328108297493960015393542012590160803617621071897776614908828292312236862918714025379492711030597882467675987790262370390463735522097282013046780556624547072396051054104489765703072989061303884565303854115784533189949220598597896015466453781990778781617795418098899231375392227083313793183114608764889096981573281499000072248749776026854204808378458365951072796119992194343772799506564616923842652996897412748001561232810705847967352185066520224913336596034794921014704735740982736893173723025684181743895572160764847262911260870207337729281208542666730528153072131546307352994879611599480023810186240241696247214796853298333680005105024607362601629695862450338906910182432476901277261035527151262704160043829952312775893549744503657972251269958369422599101691225364758870294607514297157876181881919459071041588793596556312440316705062678818211791788707773305295397241544258257577956413250675359259368404890502140231506196721317790892382015264723188720666314514839412079837097323269210871003793698184399146979152397470069548806432228226066000492129669337633079774991824412229795691490231418762755571987538785443044545830128625860044011399119550791580537461358122472394416363810087639872855724344611836337173477661530298864202383572171692411897616443265170983028523196693082234997061085009873290555351726165808801654942059025102618663372113021820068611129240737080693929049675270008603368147245231960417392644991046989901721220851139441644217795545683485873860890590834615493679584738385649708685617346492569803974879452111743856038880096948946855188793128831410341450274432020905663029125347884408905819360152005365910721835601194838547465813167015713318629679885403157617461853148704771701425515383675363432060042120586688248865647909416163545556641242325645633196348677804399216278950367544117959011511368557836822598164841617872024519538042240961272824479633254221762170981070199463724797635213105292903521715448296872426844559615243203630548571207342406174438290372281515779683756214926999930048177928295916342148054566356446884721454729758152546182785171311710704644970855117375667440645072675344099865572159542938907740001109954197105415783845067223767938511436558434317146256039532526792426361544934753042471579775276515541178201434427239673203984093175184940261549727481310971126325519378279088617937584636927037752676782778012327544316647079435649222768752226338997339965482597243684941682246880020925049744193397130788349463413371433278554934074807235178676210410692323624925600996990358717633175894330130728341312365117536798670528139594706203247290989582933392138360269683574530140302597548896004550188302842603925011055927552137133278619829553768799599536894380967615013283218660479343735100803268958136734853834261223973405195621889206327501273814297566732339393170551343663697828111190173037385781543353761471574671772959942773672787312139835877946515860061769042236333551967192227168814479042515330890225932531249722440491461082486646442675529603000065189822648143280311249053277915898375167478599273278683530241625108775583903422901054177312263860680502360065660260139012852057949423250121196922542878424391524281783491316428287685552509229950134362910903015099616429812425911364979213936234308063942848028730811706269982334632656251392925940748483777582113252379233105141430168577542059249176506491634974300778737340581875099316985867746826345210651324013830601977639148492383265834633374877725970956504858303567893582779745991617383735936612382331343976194231569664027925657497057975808769066239188278389749591593564779100616534769632644777040912412586250545600838638974596013633321428981587543255684386418158305511513150511987280785361155334918074845247461640221952677185187017897076028150860042241217173040104711285817666572633822252761287931753326415840158953588501188294914461749357970022121120658454627538068689911208237816496423052482576223561268984677232780460735169242588462067424717682339898812259667114773403881423049033646490628089377665546742311017482027713342955587867755244225246347033121587473816194306735782945685981734241310649307186565787432562558544488314825524885896122136860715914843222316651904500828248760179492752049051411192427304291845857447488526572102637772778224055963394844611258281016321678080699520175727751026348774699958739449451769849180639842719817146485132134196758527320752334485507311050501207168146748365091995976164836293317178511660181640838366637751141860863445321761896712935996757552169159739918575083930578600780787629468067475581422627767415914029064459799911600560807777848780273564895557048723972697900745022363885697225879246530755320147400927890495956604871504103063057863116192096973298360722870498184697597689263105241367764407886988772605033272049806081193786096966683076130601501344283883386823730549456239477352851768648789824785992454310804395774937872431591006078291781200819716363043446031604608435953692002521346673263081318373795013685761660838937040482788446396498069558678210104314241517710074153826020522718805040434531259401029947643023514454550915318961883852464794265073657411032074878138767582023954249124793020644017043497110663570998640239263028402783844443782305394146149426812663102464195394423846563991121085457608062816870244306980407089395011970224106648885024628646261986975408240754255127247593390291216299363333920155715689449581622738672431234893020875209937495991709198453554541711291184495138927333670271947359575013504696303660766147590238154041187191257348613678875292710793372086461428805988656519888482329725670470541496362247766348429824949164256446311431943954471631911338003357685996495603773624295042160988877074350730162265418514123164031058497718178443189863280613321672572968323863323855461408820778874779571690265840814608540365741873231974033689672088048084079310032893549198888995046336452629252458389567681713814068120871513635533415419313346403095960571436479563909042804917444788709968807393461785392630029180929571590815205081439879936724164390440282801299886033435778236948356930304158904347488026471951354045598607848964046386995152577854865152133802973298431340687579404372466816755965013756729439743426132383029512480055364041169414328099805258301701543341521601728181877738175990509332173195630838630356105707899808796343561143770067653898925136503035804556436535868653959355366182901386690572181943279221450513011972107575776564782340490601556522665096390612497475689968705766449548982862769870944300012092230763896272296686712754001942449061320424330851654834267989727530435550423218387082629995531389974388083513652228469420115343666873848138173771024722737861789592813262926306874841673235302924168672088040175254329730071600648043614787260357982313553501013189547120072795599351317706596972158050089277883825832153512925209487407472049250497408841876955982638075663321920877689321282339429908878774296316254077574208264849257897619091871578479041979119864005653408116740433110263872129232843721390320738672099437269747423832203965098859178313614132973182460770983026717535247221749735816587274188235820008980749207577275223614997498824138500551240718671114706832849243299039943695998126465838684356611952193233193601332632047518361549064448206323907776946328492516565156260139037585938079990240442738162647370682652227544960115736711160046859532241737123244398636198054134981535996189940513685976270583115104344643623325207654637426268055191143563320817321152975579041304025783548471834392490666091132972276196088085084996881780653909531020217685186378959356325315619412385059804453411169763991717813273778204342881199010673910372992742208316179122942219754271000838099808930708535543463650518344418087772623021876956810165777228041671096195613696437233635459819284627529191611940292468788260704777709849356065356411327292926784758833799359796264968516618554505051202501357068503196664026576768059077968156696852144875631703207321279638469256136333311819193775900041164762491333221354336217046500281510619017268874806989619080599886861051174382341404799667355497983578652107871324027240709535812778090721548972547622527360798378524651607942140422796041106408632952244244717932433087935973088166911971581340011530924894774886395484667853573128001653006024418473085172431795552346775575810337781895986388779576029274893820911754669927159705760271317937676955361657165028614682626500621229676920279083519302262694506150502918756008603209221725410579814164230941710623266969721559670439981779634569426656808654855125940007664364439821909132907605843479763872619165754983756417267828515931606675886105277009536192039409217148929449596761409026695052083690285876634475145487773839670238789500734385760690410374271810819738361853086385801731389040679519995363594881379102455411752645481931972969232800708047237683403552472794603513277518734020527428801918675502626380821980000811379416540557864123634023223947277226621613857919045901125445729531841219182126856303881133893345648761636436160346887476053224269239159552917304674817680112783010842300336995083288934452472263829451721964164080145410586273074693206045634287542165649529520831737503181567549856862979637608979886779632637927432485425866828744173691666177114937983643978705657258075900023544748245773289976584322964004951562111282807493013092827671792555834849576855676885661608446145271793464799180349714206234540122371116983524041306626399970638874224078864702194360606696837381201012496978342423733392639886711650280676010875226510502083303646358203419481213294339567992427854608089506523495714231771527800443722885561244860696210256762902806813359553231746483402010626070223962981982037671076414513299569416371542154250660903896289005833809540467385344077903938959011100432259975651952612602447103893761603213271805407185783480542582518611112885011981467318425450675723756551976584130862061900811348635414256479315029173186482528779407073393133088042954919534545118161009760833056806894912965181526245581805713933794231605815051639705330565502551476848930179750333327387420918085403984761897666749514673227579177521450687416824155730545855373457223631853018446432083532198810870290450230556209666562424531124123455412917148862928948357391351832076183362150752458439934999781325644706810206659330501388134604175809683569216859431285265839805227498592469468409922420921035956117555199883502569961445450766352479386183302949205649887624006341416204457525149057537051096059560073722124472851878949640723158564299741409575700543625110811585387132155993307731789051200752814360036040148728644820033078605904132076308005875003919317498491513613056912933454584353344373989393738015313882992042402316377406808195663194558909912872141733450727392425174969962209706896687579383109391352826446364686674801553466809713569888938671819347867758344885696066295067869492176030154081752089771770054687516691958118791305078254531947236035805600016509911685030860462954634106269785799876009524002751935104037354792001085272999432857512255737904178011472475757002350298586619856172019458684119790973448429985771547737193347195594950907422711035388174202947908451111025693972151794889386627462242668970817696814879399126071697927000288008756726870852867880933378907778666547118461379460897500522132201865024956693709721872814062251129227588299726554882335429996392950425695189902831641799456114454377703921751438873654861799377565331208280125333142981125621521017747817039973266953149775706938308033400837353213096030522385015644312521489901055039365457458815473835290938335135407926585727451550906382306806358840366972877532968732897268210817556580721992541084928730189431449362770891419881110854800211531226058879020330778128893351110167121831416182520169523512410903501428702612948993940832538835384168151130926629019084021003585593279092685178591377114770703177444077445448874213383692295315611428530600620787474057325077044594582611151249223807508945415549875141053217824158206554649912769900332902199948509974370604827966074657926455539990732520738851980606925898481962807942619528299743588715616487533057839443527156293215650091032143930979430914045356205848694006157527298675129008732536389411937711138614345292684739854343141496023199908074186362866146641728398536843033263794613922401538601686346736783198758227366832902765402051754535255263696347509002907107143470812950266903915161930838258539894349643075637279567673121402058656952938955058539062830816506167316101234089484140486326403030001281219626641434013027561723423939655613096181777207439863500109550497617882212048935918019915304834577952814881570133713027069996084841392145937460678113923789123497562387324128984812696720993147022792619791551723363529561470537007797112753486195459613923818035118576661451639490959684585373886254722440169608761987133031136263478322784329358206095738549879491439721227177776306061411996606132889526238438187901287613268719109626298015966915362892813676688084215695540212986511509200314481044790948889264680854746588374797382610500405185622475855140330072505328341368509588682870924076954304819384129524164434659421993425358032657702404017655396610256036553753421411665724270637550306345042740513183228690594215426496593396257291799219060991647067605422904761929187558980433927274468615439095411686561720359863971866308261205388893323047877699307852448954994390187776771555272726377766349661301059646651327228285437748431394775952719845339914826150734352736633717082631004419862921519058574322320815347062116112903709875152095360869743118009893374700915810395793521148021094374542261620696257743059917740211192017156864002871510630852702620698448997083686071154960867062982022824659002039116739778572017805742697625606696577882420528596266741775323948117949308460940268945181264057817924064688985074892118290687207692995407289923575993158147819511460159025478479108716413040281742523621097773975630694255434424230045182522015774955340218650600693668479130031277357120616816091646446748861980247288081223266493345832275524508849914015501183865040968655704392155929867764633599460802573465966709299635961800393533398038146062039518384344731795939078515006187111183035009947463450513015803762531758799123256687299730954680758733212655585064042104421742221852534607374820253989192817342311210286255813865758386490371149043550569877832229332007775153555790737723611866671554150564338152508467550024756861944454410873882000512543388779084005407634453448945076500603507130717271425800100162005615481440184352482565091736139823335228610259483332124393319472126993109160992204243481799548058726867660417750130042269607571327749357321573560409206552920773010897335898373693006530427115087133966780564072384448195984082896426107253780849699376479036661036038773813068487208986442492496601932129733874313572933904023362439525028893512841493008515625251596035240845236740272430966347753851671507994961223371350521868187988456378011279830047325475409562201478628982620692820574164404285695341728327487104395514747617287418454255788161295595875828663166682589789034831580434723762792039743044697219469009286618072270104317704472972260346398644291777692785021255504871305779004338885380517358390605324334737691728352089933435561259084463992303711725346470391861137784568880919166072617464762446702459105303871484369927435315904034913921392578847236653459706033041139757883904884345724027208499494804944030465450690806012185312752753563557089476449041810741840746587381078203065193052332791787137069687961377838166285237393603778723724796160227891429634003229117511232153651902697447370303399135344889197877989708968734163426982116627456202412506956068373305176181124288919373435721923251599148526852933352643571034420985483567881290854026381022753134647914494958904942415558182027060354430216476503524017408827628679311449382583917134356284388454433169996350386095209038558259497070466672367628758097970087204465883919014169717392811851952131811377377023144283010639908632132152341629426770803242629725086730748694039220783847417732825752566588892456391950120320045407034250952831739446959279239368047500706165661980738017852338961659418928283725480405155249062433049920767284116743478756489822755469615234692897512573965573310531860237170316978745203636232852154377444983055646406296737654144704599172283396118679241815824059130751892268946897962456900817594610570480236535749100095169913020458780328636199479126724620488208970505072757743875217476206732906716280773205186912782322934744444629239582724268525766136457719658837776773988548787290555346755110836202851669510521296252291662687473321601157672740627947187709025347371400003017164407327161838675328836997477587787770732115702412360994767042532139033781402055779154770336300957303536696218059381425673920452600248243658379722376175806133740123293191729943696454785991745208526276293630697433201728276600370110916494670762969685932205468304157384536141639414269193188432472187779556291821002419036073734360383278836550420321608957534767685301607113006140063104565614663683135535141979658432000424351625421926316541237131758080608830739076453471717038986607554379293646267060157763302485360774325710921555299361500291288529918529693359762552001386253462217705839125828739228324335526003619705644570979010268290188448005724241902094188899966021072366321665816997899128475853883753380191003948297891145957281809717272858630277853290307231401338917713653733183406353419920562621920002464462092780031273171995635372550019074986694134947270011183162263130152776192761080775810710727372184413205816291451376175329390874095083025708699488634991244084243867454996856741329166054444632708756366149459266779045631413403641113600024174816856056262816363973103880265356987955969450687985815879754542094245043932905490044275164776839023342203803069113722111580434688380202841852878568895107217898990823807419979738800940930894977733931867807649924420399976072980155814906396474357271683529652949187505208121731445522026786516927861054403792906391024180910951004348767263753914519092096244591066768858003341273783466290183223642195348111661400777817512496819741936903413854981022088730084470722210395811229490058217126277468913036967810713883679102673385370372855871886486935255963271456107906903005898582782830908740529815191565033242416130425945653657951177723009746847577318763606376316222926893309117643562033693563941729431126050308038711792087122499711078712738038011525704996324734142952748317887590480838443350008046228068477473839690642788913960838070938478648115061556963112298088647800108971056824429841761300784434800263040342084906412914780259033667111023255350164673190179455266139641117877735485896611667869299085514203578376548603504434220267250136125997411365311300680658617862467540005571190895894870840023860453430579012255341418178157340247214578762629888686099286698983935956536867735224080964393868910203878084458247933522407117442967533180040539343823725016130860731422595972111209849918568702608855447379850035193226108347081960070690237603863908715453050274020017851895562904478269915665823435120328194765269988175118048645090195501783894799885480117225019185227588360712183159258786922690902147164183790814442410125582002898234379139413594341044055052718218218815380650119599439552411871679955960364219706730589029657855176224600604464396145400193377954104240774203558206181665797660480148466515970201450399137305550521560747615704104283426855597616481509947463588028814742808986479982211257271101195196958944877992220015213700964136234101533239340221217245410101761596280336426796243392203143213767447663542422787756343365945770127819753849340080682683868968922282956882736523395477069393729235286985016800077910004489693226441993446212611706880100395575887330274954178362653615324628896608245117728482388730001402895384308195710478077367459015331270453006998953229336262453622037461831059412317348949727496724867320037097368228044277900705166703975647360416416351232916043562949358086712347776257325679086501352759316738778945213385412517338586208782813863598731042241268561213351266206935391833791862421235494600020703739147808626333291291464609030842984065883289214821990808235869747699708040450709958971287423518519022653347790523619080454228906725229958212002244338267159844136420865148107334994886936687813592840217951198114557789874111507034264727840851578218286376422515642228998160230286043184822358741307549957168757891813597614577734146380847034730370514382377697725939861828206540483619082874292611288733731784817080657624695015593848568378576391479564142231679309983475724164964332158380952743689317387638831325838110671006355925792379090358267054820561950651762115022129907357802034300166794311856044756096212138422600644273810230628720985493060818701929098506937640170817242041008617554660260553025224539029266063241764478907485107310582752076126005784739347030924022710953426229499255473635603384612941476799381660893392111475674166616264377592500075122672158860647183966989950701334272178586782522042321939384968484323056255873275313205049746153121718385664696425746676365232127962416287295523429721021673934901082501761196893222061558263391914806649168573812901965118845900532516406768280843119829944835448119175865327383769362890422244283283903476788997973882189118653816634811811805520820580414001168557717012401268288495565368103974032356472854905753687145770361565796816789831762621718512975090700163797031691291696892124582747014628971811438258062921994261107131793646308620399495576227373187336546456149087411514469205370253479914914032903074091110459059675257163025048237246581433151921601567347125595448067103103379887195257889764481363192479424583411774476671562223718321027799521809522374666923800117949060269471973747325951284639469857998285347003601823769273263025550660342647626095966599688244688603143413065619529371257451106314639524335336788477650655108616204088940219383414374764510193060215211925077035426972005478028476478929677693627398989366471146012514043664541097361073060766797394000781221925545638662502955505944217262777792715355273139917286346272039548180836494396323613566419309392831880927471078149945991510429542419986897311195094830783208648477375722258862957434593994186225246680988155939079484778596217936419519912631587770439997173142036833139387632512812184409714897692137241440958218980723687684959082676354909191516658421814663741683322802262123022593239298762101749740272800446223254476572418277753321227816662234689451303855370769242135760850855176949970407929860860329096542978602865976421872268825916049397897660602868864357409144945258956928592147772813438711810234550982337603362873243639632103741948784009906839685411598441326929844416600538087490244491031784192229496725012942062225597128680659775332282780437111632461550137394883672158422980455424399270383624685978166675426573741434584240646270544139479741137420321827386939159587632292605988083783132747521085883730130533194849370539695458283078037950890811000684626100469523183553865973729738686159448132659983044882599998954701890055336596151412738968073891391343174859682047932689920782997100789262633325257316993745345234302844448572804983133675557012260857334177959746320106802982386585521213271070151762031125039181216258012273216611800713372592572848261157352597790941289953921254007390647152019103171114527002432848575946729648579660457069958454886799501776986804594209095171553973017884404462705732309015694517206672019461717142691339282803201422402121681728630831890242209730662144901332981510854269921798966711258367732017220907318189244091864352947134826774034379136260558797932890670921497428652991537762320015843119771755573084025151433139888308484111476050758830565440891064088989126015123998851240534689306684895098792996636476402630568511808918095652911409085167424294669070963339789592703347084898369927623120534581073940170584007613638694682322440952479270306209013774921327709601598825375409651650448658760369078498414691661841845414923062257539923554024733062204603901811681360615944161484124432064499460711886632638418734182915662684702672106673226542435164651872818477779684318923706838333524376638278081228929598709368137355682172392476930369987268169586625080409243422976857225036485570781847907951289055288406721246995865743950340537162737053443065223668820013131624628589525159879829318029354539881641432970831880778482745538734108097679461350092507651494225236940886904322033704397234498238852407799981915624519607498211866022922844207821535278218203524634317247046182637959779936952541511184482216625441286059022174875782373061059471582806016395764167403556991071711411633326753672150617721673543257970362758854608625374213035078671288732739232843193670674004125902447337821784416984966511643427850148359752903302294490297447212243110922723167016483366777796925802099623952913573734088527801435039016469290094669048818142009156623802851491189990712818873968962550595486756678675268299698986996940856603676342268589722526803456981636939047736591577436076605329999340022348190529938722711764950030328542838868943232149122259807760367967107131907713857411246961902392197982060094865095456147684834607392776368082103378056602926737621209194858890885702029233677579781795168648708909355627916524425662586190710925914283521418236023444147727526868708429278590412828638909632793226341620532139617803617745410837428528629428157243032537474637572201924175149987776064743351530363060361885569106847395745975628550072057945655699537196880140339224539370732102993931670475654035301996876649737098804798092641721700855947708547337735823474299085235382188301814074576555564479235976930356488643329456331090214114629284716481393740590343525955175107627293901202156055392946860266222835546967306616532876032993695754310398085881866612866526210060497071079326363514633973885176181042761255210283081263528972432534424731727683156999641381758590243154141505125365229516631972149380079451807930889626932251982369850686426646032817433637160776694900091960239348579302111371064091242598758626525247232948372437064240703083873464307243364366009937902228071517966885976741367848226789481393295789051173056146037441332870914028118851042676812457677284113849054531136250010760925974236301554770637219242561060292899211470291341911436546089026143764226016872944692280027366325545765545222846299014062540980924397037118742534875383452855652280769089849970220449804415877309814156478163058467060423646095615275738152995731057690098005597063543349077738516422752847722709138002628799305082596090705701684896463106778746207213805260923829815602831532148134696519953580236069330494706053329726244762497568953611004853241085316444472573656827510178780232609304609473166857094990123812034278450824476506556922288790379083222438556637838193777742298951447850688005870508578463680946878353551455954658213170978641945477273865299548967761930950310274787565913135189109522229226610105837033135010119456422359962764505817040205540087607540084248314524656229673013007780696953913635136498252440011379406723929027746760050225148473468849729340715243285925353161018484962703371184765401513844243665103414009974383709378419872914682198957313768433791878964759789939166259703421896861542138405311763538489544732102540317741338668951444497453997033673634545318682064484349916250952051305895877078036265102421272167228023513623248786444441433695496330476848242495898770151550849509249425599402773612078537148566630427046591539252470605199785466170639576201497147265159564461776333958747028201743391648393256719959937397929163489742611743848266316677947763146181069304298473715149685311791960712536036568140031127334996416859936722654600723302070540820463667357531634671639474255573387124902725651894505030472642685252118181373632500159225358349567319844844600743519990751753069940526872816897296658000219365814900650295759089332308467678829760837460661469347026487265393536907659548664265909538129309957021546481556910335060483477076142220734879235390734980303131071140808505893335028804018006023468714515135519968168610941216674593459371387000043089950796576677921705657459795509252277863325275082689481798528193282714044792537520361690303345590899845134397768983991668921763615302513759462416205296744258624275110360139562583075565238649657010779148196324654139904783890902751901934019241605206503085335870707948517785760328190086626459701310098407220144112193257059704195507894067774801964110995819660253003193008698034848935425841042348257969213367758014107306462550438912293407614055463413752595367108010226569410826186078374971313930102950451516562257210319732336447796003834338798513517622245584041181761668230099951879055584779845584290158563248815329460246743280337964034320427502038935871570519270467134545311801967461265751171721472084988506257949415810444936426249155214377346445111099662248249646178093630504884233638303282041307276773850367302291849854271274267322561846263130546764523968046873745678246334444887227797749764712902661394947812163776417076193056278767195551945018756211394582873372172730771572735927863028484904526896502135044668355647413132637248188745254416882050139177317520412646892339280420846106970112658610650573328123476805119584661207277204040605773114326099480917553628952646307228092262320824081251585982803062416666218435769519324226183199453929846222450502028213077929724388635485438121541938150226944187558403252008622173718918043974904253199965781856825722130190202921267819149931837864944239612677575324556250354284833887925105056384162740166803600542028887742561256386712616426173749775398440048019015455542372155449383405135455439071263348639787470278499508511883153598509891571080442181451615510072209296898940657210087007554125217917794054828819748918016470562351632343455894259981887957621098605118182474802533554415523433707454168895155082430096492507811230224859139599601973657686469827813174599967062770512814032772998320285713658848112058651164017226375697195365894820265428027155159686221780148692052534132784718367468435114045894742157122703068018834000980019254347922499711621793294772783076275180735079575211089680035463733320746936353312281757403853270698923545965272652767331443706807625764804412354748843302057135697486602608291088745180707719841434610003846334874910295346197490678087523465098956775488612663282088709572471794399156268878237590188274806820015918626651907802396172106316093644296264460518350108618142340705443353092729107981576890344746276839156970825749826832898212551959762872292950101358941144777833508413209912449756235230557904422609476959020435282963631290383190252535239746354587533092567025704734028840361323371053509538771642359062551138911677798284615041146524975917844996184551473371653510631574073743951127898620930820931345036980042641177123248764130605060957499270594044077853866302561170913484947566676899391465945315665847870857085383793091153139484257438050941412135331720478995285240221388624736811655228564142351988784831095629084329219190426803396872474664218895868642149244831871454433816528457967926153626723531251026355872334035673233795807142555763566544941545627265137059376027194330428540300199443037143238009929486687976546979115238371877683938531039470971102655626451487850505412818909853908864752891096659722373446374058205501708126836426074615880407180794758291116978428353965956289926609033566445237225226416765267077359573527639968639496688735022467073698520232941704019737064972814233912796190554546696474791008935336478417039796426423272997693541595598153853675805905524816192566151203588262716985101824359872104005035403186945546815671791214024040279860857610173853789736328778894340663840246164585070151193855104308886124706899256720956714480414539676078020515036611637037004601236871589402639175620266370065485231438295022996562446385283841505999597713964208730131296715210705810540902948006899705799702319833492773798761700643543422779713831032312366660117381273689073074809840429693895678579539442173907589338150530641060308148947620147838915749683774437813454948160540624678270855538635338654447508497657347351235568168584204677882041677289273296282384786564967329615117687175646105844261047123200089684382892008056382987809150576455983002020874155087270222871637917164419699102177506885466943107940044983256149534111799067845928270389065688960683542998595844336763051105736893963426914135561477974418797202785117787770631027556723497599269331868663433184110990260826051189393864376581292474017652294082692091798110390508391731366107464329729977241736288085117179461546025735545691469696289943383731799160158575456899912886689401656643250695465477962872638524845245736834736101428056591023098514927157874679139480832033843609997668264566820498735072768149678722901344944461859996787925948711648482745798129234444225000779279782571770919689011039763335919703220733889445972658273064401352087307731551470379814828473360151818444206168662872785604407034094152937216849807409470988664990610311566431700172982902728584127055691284902154570557637587324160552667112406105593169059475334852438900292824579822078707680772457732939429680304411375681429856335449032050153665191400540831396550839695579837703926855681463839124189130989981895621531693772876040203851423487156555142558040993248799679922913405291082926686434716837499134531536982061920701997273330931035486190757165400932359124059057500960684675581792197751258978244053004680464503731045886985614894016411960661367964588844772351321563647313658340152481985800275496563550914286553531464419619235028730527623233076125517577211847968664559156636359948962152146010699047884636621172791161611486726625515278006866992176824060480285044179793877102605496425391486505819279526255839864287089332756209070438298603841264433054741306771087015124947820024072847829745481286300252479462367577951087619080603182676554111145748526133919951451888424480480403362399373771695614903237920466479377117108972041792755826839439381181304988756879765942576654528455850191060921938587455470334021122000322382086561221981473537330142401802886821392527914437015399238038361144901959092139736308750089545410402281627233821826104016147473830090697043844594706381286804592951853735900107559014250839248687138992325565047292585477638517685745102145826951372654455777708017663044213380976650588312815032314093577811244181301863535603581299771645351159125540742310666291163649815214753653174626286137886148678661158142625705228622141110279092968329125358796397364698411355394108528096558534918361111518177429021779615399725582430130137135149835630174933167812135923986348316506680127529031618611969232963793494485315357107212099482477382444823421951913934379734877485934349493411504224998295479295526896441925600262655230920881974828634236488404724827239974417349455160289034732601498239509300815850170491130632935987119652082088030896010164292913218641763311897675768651957635304920232170926150934451771346272269290486359047390331135533825798065339089656016355158118541689456623310005826918446661599974940210413894182522844703965320104713032391165955183415341484584216494501878273332082037419665736959281661436775316426089134971348022443605379858436634038219783788852219111751906346915261785013596686749782504421919412955874040565721725377933212871727315411713117049342218271563366374139655853311645954609737430388355146811294366449960335572913029295555414738841982934527605784423486367863628116772090163929025076902320314424830039283116816395993322246712925673954969939242465951978810756718538864551754506881767016311151217888336835309955792385630368615252342751064294546067418476120807874674323003568633775317774674467903633152461150328640391492271026684614822146446114762107814321360175436026468790299188123176083888488328166609702300686836406874036790062776080833856566020166252976420502269379194084331666334177947854845264109573476738364428516527129505646459300877312516473720242971720805940412747481713713977300218928063916698188960683209703111158947585406387368924878692153748917684272015309444499431828561914340282951525342026748728844221432530365559521585078329351494322270792270443452602575447742221564361597897814161691329362240124830094684323172407458601358171339108208599010343814573717380256715753880685503038465955850847521905767346019738502569247714233805584603461183481210553987275508378640502507385085499837743176937052161482852662401305251689404341529086496805620064157669378590565331703781352323980116140138149230523963142532325456638766715633210520446532382993712445805839430062087902050384394162416419170064999242586928570061868614367581009729024892934567472505443889213258933002095946415631079657296319741034261399658218966580718337042768841175470126349180883467654302653768294856955174079643959703593894114617257880066990557439761798596501069567040291527850320326426258157972656720019537818980887741628892492176301466490865585638938991676522862527853197778866421275549539776171588027519324480945443222789523707655129908621326925484136441001344049784512068671895694452700669705327553062391328616989500601401016793496732102883885962232318451451133111254079654253123625193061916471231939561829515763549888128222804179436045349612732365448035147025714564605582517535173978274264953364872515677465707141890313295441445867573962775303548227420520570137915692131494268987721524422385149751225932310105726678368679123523836698303424860648053569688161806455734319038475595586087310136331232021521110225890747861284377505774528823937863717677549428307547615631839447616718052239606477679856424504880568786452994995819412348626314526697714402674052403000471727188923919930583110401574616186827014584388181978874326515096470582304564819198294668725367824426599918162302600880259518052068481820119352470851019420221190525669321907697699904151418080519649790654225085824015697189702124893122287797167302320257210312613078755806493807391314727063593607530310707563697818819957702458331686947169051973180070949086838275305304993399619912351506059811870702294037346145981758846558631509315985085566897630673085835924358945295334385315562409096584821058473359188128620080503779754246606888681825124147017670927739641709686683964716703493311503355583126840589949808909697893413687410723816493159274974821539758184761757119355135119635358862217133593441718507155691097967787023262301779601043256264965254890684834139886597399349386210958645333642472836401524186992111799260853835472898842547088540519298034974101098906462342759510582070157548188798733394924950442799134081275512824306543070068350754475937645319623781065350541505706191474790337441541824989374564492606978556679623534710617734601724965364233888632043782621645221058439059393261753705478361540318772219419550272433667380538619523739099722315753207657387921739703071922277547111074531719630731855161049623446367948508965052327334004002328956287959091444246279880035327547463763932112279130039083127022413821402986985245073098281873074327016250441893797557871408222696445608955341468226485937945831835632467842873962534323659677036838960531359066474436466151279971624276447956360757927173175643629038949611601370817702919267361936412773967671370825794192808729580290213837652396386396340244971157434359778174879741853023550232700252620971239002792060834511390056266797026327977133717198413910591950749585150893410850822574730000803191041005847195837950860557460663640430110499242774736941924533190970085776243790228412277476976665400281607257398789026634403379835861491760840447146853291287063900780869615180760536893731049913462825849935734891839568530142521866165669797616968598424199634535963727222693691176174191292740980859405145458323385245435769942073636272493281133098145939954580361085924627323716070022049059464560787502482410132893788710073396885696355868601190985776930897853602877668361325997522736554121497066310465023377157507399902381770976923686123846064987344795168654109422431822493888399240204167465760818727472502631932726045226789226729361203576770648172707114743693555307770907152055502998296522764121872475044946818954782728181118439888084434274695001093565066480879383879719780626330875655491819885707518168319524020326812829436153956164204783498855151487979658588062894859677595449510481789708710232207427394314464267639226557597919542490079846126081406087820592021103234381886947454965552987091657503657949276053372673234080093248863683642314777259086733467532316084838797700260339514192079849755493184508196866872711539970621312355989925162491566287582911238139580172022319002145773260102213371286933413651576460424768666526681350873556905248235117970974216155329656083046198518287800625333644080128596767433859640500693939253364586783244821231388877078583671061685220583123216968983851672999086887548919818313685109474745211458561795334265156807495564897919376048954173104866119664281912641297199738259180578144861059126255464322916189358901279714727320668793279772493225631310760084474996879713287054529290237187262376112972078229868485495139645008129895537291319054220625980115379639277966519059965315860974942580365704384666240074959204203301648783724104922840964227516860309131625313773633197705460560892798866210549102366200773573351778841047900889047056544767560786219066254145635644399490492388296386392045264361182898533130767080303079293702752226352948928989914658253304879443660420842556665213246514712000445249520282973531449199133414691745745915728915339806240484957996652270880390893763676773335629314368227900003194613552750312116358453511359266563988961806960100940566591277249282159202016739896373660556658780753390199843441294202020466520113738490540750822274313727649286475814233809771538354580450060647033383069374603673512826412169190083111538996027201036562036039234200530649041460588785797434957099911757883765215541348271116334070767884339919406999384131783397515289032450063975947003660158760567159792549251720105757808707110787086596461161788157240468945366107257477663116843970336989314921882321463710574141030934945489536914814884345235335118300706439819138554361167372212337530400035561436771622272133808521030503619475878184262109610494918864954807006020312556995180589278337504342535471964895993593523255119876556704243525902805145960721071609586986865394900384581002963069636028805242912229381173112589097601721271744832462280059269042769155118363095438998604858167391193357357019340851698355630777480684218548426878846866204121375905820887507368940750631624265268333409810805142925416403012728713526597753278953556403416124211795313268842413565876290262661684720612266271770387376732323713440101009845430592318253085914646086501609420318482122917112404113099097938589907123929810282528062685536939695066111614728678361232881849079961106163745830767008660766950740742260299236916739408976530660352771451198506320782472548693597049482174619178014273226153179776475162224379822252854987105842964276914250204935266053488035330918224907022141403304226172221630347283011376608536329353305693669423447887831433226185008794842594448674424240589708268571326623665563533381313923816096802821105476530840671364190361873035651634512643681724929036447086328652085991039100858889535822450023678849369499553415931758459780609106703514301769928804819787380441105499261454928364122440469806477746705711393836855240310789766926976426572229019214572089135890036127210831073455269678319784077578244970348005659051199112459284669968899552914343993307864589862261696761203342742032032266440445636138019899760739113419533264382885524015445825620773835693024791924655215411666366790795195234109955161571636492442673767336518622034264138945628429264278833758416914922707841384678439211895260755877734732517787911371487419777094533516589153001318002259958304552466978106553661622848290398852229330275271292786526818089140164081377773567458465175287735673393855930226628803623257967383897121860135243892227398325821152279104522880062324355404513814151894734488644215005838464415516261936186040593428564638880092977922649457238579937762394840206006930984091869518485766181146151833262680479578274821258781815457950826033642316425077773903318521887262681463629147158192379658766647770474148053935427856736846044285222256885844070601525679720448499170223483278128076953824126839915214434343560102387012340721375724275273934854580738933883487318087236184474019233782643652291453838546451734278847078333772230026250647612018294810877371105687619550455498422393128040443226733337293535247837117974469675611529349415247962387551963352944216720621469519463953346935873946037603343204637831098937073003049246455116325249314632198149577174792830115144192274718980118136844005606025192379786884207123132635968667161209115577775086805388848278217883259215681310362139023092995515410444485148639020523259366229329502152402430822935967579150366031487833335877936506907599029215781580747984536715764053515815271410810343864566868383060098411388942940288101752932832297309569230367848503036993293056274559814992998115996622350294827892001882391745130089089498289698172126651727934276601825414405660689832303092076407682727874842846572850457423614453708086083029599289815180646514128396052948896175928490700557187396525589800225876376141694915019791999808655101510335896813056391597356948170017947871874087366873367203892911476046035869418367201156116636802710506809741189422204348587420683033541455314671791873355497031559719395848848622855387003672801941350945678763408543529923505628382236282997170023445017613619939042973622387613009311682708276354977965003955258234728470262447387028626072769777276492753905544586885605709524401627694624671873811809269258655888104533458672001023741188757435536845680848280650483211833714128604856167316221967589170375720519781680703640583230583496816743468362123906656087637201727664038829462283569104822950639886949167382812815999883890388023882027253011332160752668993489391688204778471685835353380940439095579296611440480471851572391314528122880124491964541478638770346740386655134016390385463051361434088260848057325673760855097278544926388274187318115260670381498367468324327985531209975772187357470603888511404415603149095522058537926879226653908039925395392618507367209356833502418152001286705802860585095371914116822284004586618150504792954512348581286636804989471944818452787771735862819865782039475076978792140203061993390953639858973564979576861808384853204962574400412307202228658736212227500896802110943224515844464409820384478463077037076425363878962376515738489178306116978017973053249720860043223388084106288058917396868140392913996813853350147583860926842167237922702920871504136860235782023624770372093197610605771388859421436320219046058807313307332574395481029561819853351523074242312068632100326104634351365612108610007694221910454991864878629955675278733050703210084632188511504025955429610471898429933063966549086673478237735813641867616948806822902488318658083613529789693460297882769561050273977144135566727757025441527076698335513341583914250711897900520753716039005690362816888014624519838386521382503671835293952710040100413360339567647871522855586937725251858969566095384385935463097946231223291062079963795572446881642949391453524347838339763023873809707062826799141333130811730579771022684723246255918391858699986575448328736902499605519179453863523437487157071095122293882668545025696234728191548826563153609878806123655952720609369850092261566724899759238257371038771257285300402255237302115819683543337345756148380302678108513077854592660610306406969901192743920501292484583815990969530626236426094684612632526758049899676980876972634205998219939964435106498795304401346854408282395120926330740812594256111033677010951380845351996396892702078765496834076316029689292987899864593984677180139330669318577564467671241416331804615979332314873204027928715254147958645964606736918865970708448639816094690628386369798689430684733442071653587565915916143109557210687679321347683797343133079418239593362179133596221436769171573392396729253868149799475935461151661660554071486987923816590509256883364343488177322902047714116089345477431352453093015533176611494936960045809848685360980962516546776341040966800603787058996251635885623882486737352401205959815033954461425578604273027106364930123068271919835119961894517823687008645445802118462334437568816942286279187414123484402821178833638748708065395960196161953599376887537911218577252385361723626798588017319216275903377647302391434738389022397373064014567184648803608668571339697309658473856130600361709669953155995277948477081303848902439652168934833192922296697454939229102044606069329142568784529309615274215410856453921867975981511764063368962016011688593443105589925857916069109118706276010620795328104234064995618986407845156892851190976525055837795302734284123208204803332911909732502678599089137145801786395059703722850406531198869395607752000491246120052123817425294136860265906799063355052954901397421707105869575344299245372588997485182892516934136599812348376448806781734541866400178224882165754075594326646661725151538034871862432328849794390936454320217607222998074781443404437893032035807028928698654232458254529942039252379625229189325234028710325981605482212922097304424124681201224142172162878496598603315931162254551435449876636790438080199064431630935051242582062175091480950728835759760244121392721813247368049418226414616297221863852187659116085513291918574979852156415354384576372032261280631346151668764572257447482738427913050342624146390780685810786575515859697453834058543733665698179454387949595049112216602225826771539288338463496756823893408396751628608173204772924936721115351602178085100192010353732493609431879789010625575673392938669109817203237497645207936591263261840905980799558058782443528107433454718947525440375921011449323322475011364444085474485522912397372179344482437689281949659911338953536074662081001424823839910152332501263366929569218908502405852612464902887928663805696050761649603716856692884567759565175361768159380697970686836003745074630262245197913141313361354473972878722716068511408259394864280602746650294728709531164607692014152340493670012085494016529845650309596458409279447210363524506353503972375801736135409604919546834892306244234141950393357304683571836937935677796221629258345221316758032666059631920079173411295313378908547248505119310609684525055173403361310561290189399557967882454886603673431114430336787003456872274744529629338543092637931661955054072769005270785872819067249527918303690479788979659475231741262588446474033456266688667471946716463867264223920731602507137306620688968074411944651739334365331870454273588830317335311877416613222168864882387298933270725323088579929334471132681832999055212298598735418872719159978931240570863865286326185677356861697016632780167528960067893230322808071942777658179660859476761272372372569246275773319473637433067787149586532361656080925804333808451821724513609269182727817431783356864087015416487311030200271767687522888757089553970102434912841480293433517743104315942381068624799437089250866227879244760685311815268289190917287022113030232646887911636285800802151315451192660028330735198356661381557611329022932504751351021293325110276300657749169368254938837234958113574053037890282788948319578642359638958242773119283200752013835046750580544240842983768563974289125459380616243763593519834696261863227283152494723565194059498923025639059162183488279385456241131081195685527943477218787423808334086100259010714154262165015473665192353657797622954422773795138876184207411433562773682963347881391578598417693809810645477933756946242591746339173948477395176997567146758766836825667639585658011854120697168211320631844053226428823041004419713880584172718905248149376009064929417522768402097811157230853790030832473435454624409485325718460339896113961777493773151831689157614998616899793825114816967196970552932864616921526986969245868677754841984539348448006938456380002075108847039367820462126071381246784270792010469728796433860262922912977681151451435323232929634645024000108018480180257501210581377410184079000813995734541693630119082488400744678198420675607267422179001967121971409239246647139946398742482877472590327639030011571623052690129131163764638624715211826348641166584730902232161288289123238509779767217329746742269544473986117391215165010673331522697088152356112639597457888330883070935005429575302302854890525123975700236534970269108024621810402588196072198999812698516438265090353067952015040614369967297411888588852250155725184609876659488602042356679161915796683958025016508690800224928142061197692734071975171850332326594449473848801588878106049957070066510093938324353014407802166024996894625661308643286970279400354389095862350806911149506727506810409804149027757271965236205673294928424771085783875705795551305977136602811748809460220042164353288048522003807654719734267698922201090530623465501269090888405837858957773927506040241171881230019113957427428151955435839682196532992226795633750585526799449636059355234349965583127647194069699664374220972179488445256878615612619187294503820737574121074133124921325713552523629370643607524168862911617326309860549088491576396617932568205193285336894798424087480179136407002494131602704724325534084080566737569054616797886980638063083947158425096576292071115759840472328342544491905835611897432789066433482056865860926105780237515381160057508033306835876553849052078148855001615740752669796680702144730922298198427186089813351156051806186212644215192235550210647806992812484783346009171650384394838313360249226916228593156911906923682246949175914199528413478557316408804372045635650507867389475250641814463142517778968474484538292040557375302822841006070286706858959587120594548866084197050367926938191829612663088824589010082203713311096702708434591679362348744015320763157924926349538680881016982737497903023374002517092354968948535227505687505713551008176174307229420237346774478062051879322584210388680596784472172464753062976911413764219227690633789451529437110850657990955239287821509028025778315904653181353050319460224639199577745064335707751524823882755579185906814703627861336781586222061008532036258771771951255443992718346439289495343131233577215904651737179093298109679575698182474505621634278339538703681665960489855508299416982966474241226917079867902262354283061752168820463561625395169053922326057527552255670403717056518197798251692498699152998775259163386512232872950394092916359931884341946799280584834323069959865869447176476424563412077896694821955479684506585563762086001350111227923959635747747845335863407752218002448062338702915256297567524800376575592158709531316171910964852824565855717091784173198361235406649543276399846725062801180666793511894782618613445234323150602780351108949040327291685619402908465651993868310420502267851062559632489205290189700872859340024887593584845577252496242120568848626264167901286892667219776295195513800028567251566203216976987257293236975714931159008331438190519242256836653929899469053594698027551172421612799924920320039523371790691767969882299636126725078210420596574972879436892165558754142220724593269674962895651256168186769907278771553975981577512766644175330901240153458669283409811586125008399617741827302050582579353146670824039572320204198819637575124743358515920780678109003163261351034523001616924970214856087404001809335458765321696776059024474833384943338512977769468091731608434743919920525363357092180000309523029242639761542721231483946984882082722621192735470869470810818543494768570094094963472530731814510581474513637377513687083060521597391411230473567711358048907181948987465764504815003194189299452881963594961668701664485631101229125371695332806628095415808187970532260768460626915708536997001970627337386021739295627077345022348270837612469583103601822941774605062769491977082242008089416051853425443896030410557899845202441426173993193790276825686994063645005742353984731687549920387890212339184078628220878266844757063373198260317621904849864258183100793825647741915858552681885030921852253911174557303976439992950029592607036990906926950721287175275926692196998122557703580337287278047117874048620556884122721513934613082602063370278064651513330892400913352929848975625133201490441829360201716546512057545219022063626844264968039703162084183574586027293326356011493376126840405297236505605350983636313902108152788518681263016174069954102913451880956296256383990697835123859164099338047651240355561785962503587819358723010483413439106610990957743419342183970590947361749579850836311515320576202160119789796531423294324928977052998967759761664922675493819285721950674069834559197420904694437919656224173476604585129056162284672432781108937592518144670227128688889274241356438922857704279255003645547488023713259924001102753186176898879367125575456988263304084358643610409653259028110138915616275664313454226439649814649458515062432608493061996232983969951814897896783555184156436696907981082228679019141687775528003340450415755602139252815310320483928096874289763477059611189352440383167600718588357686600262012322853542730408965660696258314513831817718045556225345075947643472795142885259004502861117843665826318191580364649838840150454667599932099337923461877518776365874410050615150350100910399037042609819790862742611394909464251450410140681951526184967802947199618073112572700317409631224809919378124246209889988376915513134375703569717570574554281858889720528018255737883649758456754113460078185438354666547176809399084987911439362619866107598963276891848795260603396693448299551113149719014004604377632091154910028007584454301198302375140468397608691146992626948017602804977403336581758012843818892069917746582473558997690440636411342548826478812500908644935967865329291022504812717868037642626916478229199105870192365207669420332933097081727407947546336884381873003531598386137915276930615958845107446640784574118837654683561636561231923463670822932956350918465885275188634778535665192306591228214863334035564810664172947612197497436798559343094270702380151615882062501848522271350485453068436955060268184725192187092187064159433661027555676714317434123275260155167871788600110640117896923428997828028280270641968252827595671458531347241001266069865696178640057742113584753969577150211180168614949947383338099369080753179517904278455978310753861401142298724873260285723708966742470578140018688280636356483437246259176037858695660396628229784268201924688748346420493149116489359605627339544290114564010085999022491949914285568531441138540912650503674007888884135419529147839659519499055741730449423027546000879798797246427351373520010249142800953179890109078897774289420654909024098601156237827012245027434210114922004633033639786032554184968794671132676584250682612682783707631138750856641920109879155483277019470612824711973665111161404160206864052026841204082704191171248850921417570055546488964369897825351402158173783872109491604867490590077414100877050929587134832849708396776706729565130185949090030928005860473458917758160696731516624592238120884844580613395895390286061229237666634680862601411076243258391785325382053749866816904976327810872069207768299387393377659668615212092009774120335869036590887440024028042815707027783249940451032869261532707333206248409183993864430157634229394598012539776444752898156634794491301233219689317036450251938558558591267502437263734444383976787002067715714997480108300523612473981378086391729122888711876001203775487852927772055521934124129490230863909016645731844420792935607158058031527910270018206292947587144607418907185365561615371405684960133589247353762298953273928467078445029333466568128783081950542624906145763095563145367840792956769968439897405133730909546567152546164398708563936498315898993372959326189770676318489596384938102185292745089581209418700073352633711315448547692992007469934260823559107475804365778772846691367496922193823519873154756869275015343247774841148520166007598008921927532203848047359291575565080290041483115090377847427153586757469307525593125784951627697494364471876711185567439473013600972034223125496243466371855187597496721764679928620195931752561332346558674119330057334411097147511035809229044328564083362217279939491888030301757215147008874229391274267969908368436456499594675600338329409047517706096453165093100230395135954812715288802730929219284062084567905501965472836427634592997683650942728790576502703660829816430109410896033153940901114007458666141725103993043023147558885771873053876737583367690978817833160507568021063537390625822131309347766815025248862419525294418453524393139480691503755048679390575583539180691864518360001923793275903682848451043979126318161224764743729508917933400054895878392915172791377187695365429555310672649122378118860333013282266088528131885480801460567886138435674274264881701191721888300329494840177549297216647259390471783424781890667266278472426442082847417363267635436876089376278001118128824214607829366007717108515380590227341241384174738828078558575419152288145598335505457530779475599187961256489768635315491087574913818021019568729370951500005224751730853037705027829619772006218533605181176656940551714767268083251460776327243865671226887018622163413972450968940663371385591994530102141672372483760351665941148268670341729724939985307755013975824034796710922622595273428483243194652936671632474261162517214480139948390010837722883804094595402164931106351738438298267012094417100221443225977423341680965236861263691311185081992806007657653266166197192073408679718939316257702907514076822318196942778148399301056736389696080085918080848847177349654845791329074143024236306311155090002745195057747726603192921646290531087120364150279215021411936379870784447598407417693815763632213426111845337075916007647209826132880059665633126268597373470064579273856500361762049633625954689622681272395342770324381969197814185029555477377695295142194388727200448167739528196514866208679935947570803957193534848543955054999554304192874846128216269590004723554314320515918950815293455919851826132080064745975794665407528749662440872065408072075694371185237067930794542813848976208786377633856849235318968774776236057213096354241776387385082255811998274899403644830389080982416144430736994485546985225805245711327025875028571657032660001072073599723482149253215431616010443960081576741961231297043247001132480354841489802722161012805215526137392916385126933043490326795395937687817986102810864505880799954593784269755620385784661189400468586360039505551724385594131528403232529438287339462126475534080832337607813918626863547708591127650022293214540733319545309582039798639200253181445483806193022224279296072894957345296244140427621023897477618198570194028290574186008314311188769001457717244527141594351740548025332385529209413024573093750424210510342893484216464209737476256662579547533708636098501886451398664113056927688628648502868196836884347748613469954364958696856537456608121022612146244883058164942987610280176384013148116470671748152001805816036180309724934168917498660471265769089253315192411054485845152161725775636119626468233730104087358929453630419493968947971785765077812595693224349420352922008196025160427991045187878443710225188225984879821318189558783884008861396620209111242207876869311611154562080612093489885716868060123335089036403980702269532384623952747905410189140126211170479153943601954989108513677980914207134683057361569487550369818298581198560209082446773517947933726320423428504610481222399727072911310236641983033892018347850063433107637897871562624788559407912863368219163858097757860728168387700437863950248786973477263071607582152416323404572715135512810579395947680467830600833849393212852936420062516580505762175453614200808966319400955196946439814567046279471568822684089432137303840371207900469269267753005201682715681317259175211357626260877858982086712990815695903178557069451152499541258503888855458317400748277306272864756648440194115652654176273929354892262664520813823951904924435882768128010401756662542288737260089275627906020398739984368122964877488556329995236464131001757818069188439242596325336344034231230606425847592652971133792988219338532852887460690123382743737921628483317909167003594651745396593569489500318530196235279150399200517149188748452165871969451671227909523530289895662316154543837510122082521835781822271773167482568869593072351723778525376748725808065190366973973693523177245592992398349565104919436045158154896573482119836686427188723828263886563066025199553333626630566858102383526653710899139083904800684531568878417305499832965240334506852950622996124878685279194196189910012547256975570147035618681018718137374878752430857595014383028739144086999078946323240068651619617351745745392696310127320322819862613762297155697361507138758815918372232994215643475029302451134373146669090529396651793033374738825978662151833906089785919444820504103990557884522592321185279595107117174426808827826078167219261457975637975569476791508346847145953530714349223572237768884553806961481193543141786407086829865698888147111550365018064641568920990135693931617812076394536167944468750778785145703066528250651527987541980023866737801682354794624995843955232718802920552922881236261079549052032865482611461852372294528308832105859056921740906219241674812696171184223384511425483634353269108607845383250042201713415447092039469073843468839383724169239138321642827707302275705981687248356121677259336460821139288553142555749061718043284564156234868595766364961303479109815472466132608923152740148712650103612658954543524852750926208398933618944374819371003189430459893069270658395735387896537529113345532976597646867535714001246426588670727376023273159974125642854694457410429808137845795441167116201708316368264549278867590741970616135596693798399173842545881352065603583411893927263740311906884516616136620261733001783259270445057669094546671771541331988241795088068097879557903632972178917092470831526646572679196858878497315726128678652181937510957029077891666908662189409405764954663646191947681777543425946862022791428138225316781571678198341976239936623596635009008460220788146973585226092780272193622055023469891642954806617709289712027336434200915027356621969332539029751577569718215916520094666135092010022639977646338009361649418461995310970892506681785341221533395408229407338057144340600709004469491953732953031855124869587758098578817318657965275283868756001076085580077015566780684592628245719239178312610475132991415637094377014524554513987919781977617821348351959612863770745958872789669606780263228119765667414559269273246340201886195424911494856541972445540910443596997583306973156716146922755046877593044488792680261778664744427516182890556040598856744626176790909638312123190141440020753035454387425858867314603612053859740171206142687514285485981942415765238470934989395756904343341720798940100690854526843323362443260562077967059157003975683691066755766180059302682487635270818325805273456977492223043826568317695691521203036349121595987865954180434298603009669356603400305476917816614410004824127385453969348261974856343567163071507411236227671866643632168112756830003377981966223767780188466931269510378550237813341489163424751998853580000533863641566218337777867820447618788711802904344859941334751239359687674770741514641011179518799234689695853642588826026261614688198215121526562150210324714530189973080717242002219149889075817804688641934983710831013960536300094240843126872010428344114598509049389458450581120744449397671005858323587604630968662834904262284575853060669741943753367862487952242456086381492705468713599776618101259572582480964771390621807277609333299750740417926765471489610935919853646349366563860969950769743768638480513846623190008077741746963160745325012804680736593380913779783708734649817103583883787342487085762796963567032416278990828646906133067397987099343490197368770973856657812238102315749847891130345838235999267623327408711463599414957770190106133258310001991143877549727775278588281940105528101506807753181802557274284723863771312138528028418085643010140229351960393232733858075939026850825727930849617337415607266436925854502016363288968657985546845945147199457195602051140227875345058273242191881012091584825592269593853582896711751497041045791964815080666995877322198219620969070795584444389335018471539990962943776532049291391874725067238363741908660877956512044854742051464949523476210817974685845340697370007018339074607622217605891484071538261001220325889989212211035565799087376975197260595745367787887073383087258449178484329458844301865253786430252773699384081559930768764650735809064430650957984841175041563789098310722791183721089652504973864648408594804466525097334530245490164058484042576026685729641173802095408879158953229128439008322077474356866231503511720994271340658435932845598535997593147527952260745116117879291315892668270224411249307319593373383353421242369469722402014400610242593712349039696413063923528203458340192416233642158948047385367947658566880791076590730089683762696548200925404426107689946771884177840034234833103499451720908810240157998655312433943505637642704548387235965668039046527297884536666986495917608954433529232331982977727887199710153766662953701210735117958083487875061606539249347445454405804166240893186027986316097156944207737030432230700288230640092584042206059070080317300523291572931108411506355949804981094812147241591616072248902756584752409259280403524046057834697311949329418756060036526450993648868279269163863400587617015434183849348824032979945996982908073293661870719536368219982982976753704212963197105636137939571353409986152638340492855057064023790603828277367439565973292485231615030401360345487356307785068520607636150053669307647625365250528279745248081437167598233871497849092587671760668202964017677216645381672459419902633959736736661539163376696773387579900012544265604266480723364725084426675059481895810216588877159455945279700864735937876786917384243987347498507382087793299604333963894471046042663138236349637244102114595514047925243073060349833780658691727088776024127461316307614260148521231672872010414893823431967107881099179265643424308049442438225474363370551840277712179495359582862033610253441315355425685966987906344906476821693987090848421091967072843624204589224302446535045119039525251540119958321702966012954008471186686722619005138086367410474415641335765105481068462575669474438139821295207787687584202525484242289680940867940089542004170335862265805576086082059986356541970483593706262024747255096323899307595062466419748492402787639642504602071014556357212123464800193302222419084756987141347363538763485647178679111262016697895370662706757376764530672984961457531576640918173935855616791467785630341976992945921336567276070588500001281672211961237182999567603878145091096375441885994819993265412991509212889843258475469786625428911535282828532078240520016447592441791277354281538333747899093930798603952542917955996865427972870078379251603418910978716926340635939835364502332404491071659526526886089815189237652159702423154836881498866222624054676610127513973074748283153663532764013682157830684324418967728748618250004206080476604594479387313158304797126538475010275257152375221974763127211095970130062566478453192555108884701572386816733866662718720617930327497043037586302542104187818895013828011651523481582393579021617277492903471549725263036296448837760004499453882421522186618276162172453052875436743997905769851463581030280264800006582336058611197440355970839846153486006284641990667457212361472445653976887146628532636383004725011655250961680371120168573864607567987396404513382432555343816019689386618159828380706068419129768750409700594531348814409300731346784581004673845643800617437760091809893062347036569300984822476344237363513856259923045817007174119818384645353544156192155411157590793204187460548635034168482073394051095230287975505218184857743173788327140019399330233079526520692778375356538766468306124317520122071989827255118580411917911212786791792157229155951866701673717716360592508981271916983812696342879271762696440182838616201603921112923441903821460296095324676135292769919294266623888151919936616183986741478503054380841537643756688562383471576976009955340035264837379817972558839583922470528146019588980354258377555493572958841336333980399177506706911143623397986711662573998106912661480163101763962423767791008271335422791306229592573610127919199935567157094064856252801652544324941226074686930123813469935064000822812852457961788007586245931164679798798616573179949139624187147485995642544264916381973016675151517007946448952138806121369229388907887884404787883227920162186672095637885219071519364382026270657606591857725413846176182356448393601529670367408312033558919826861899068382525373218599124536922710095864871141736021244458867112909530292538241687501478318555356504551484241414890729258095719255730753479993498775661802361564683132830676724186579504764310305565424037467987945092497600071549766004163655199098467193115926722641632513759463342917971509595504395584610671253231035580944970977866564709127986141163086789737304381602116062543797018240636754160253081572187681229834698467102717539261403706098736141762853214819259611955225895440992370534392713099069276374113881742956704248830440978313135872317133896067247698727912361462457023320322106032078077785458220392326484429286854133947394792530558493382371384162820948707417599742352245206511024480426925134706027099644757748088923442031037382686759086786790825333507096833346443860882080377480195357920969300411633210492091847537301664328504276438332522575791857671602931612099838069166212327004100736758103396128753973228613164491228145452368623672381929353118477695794600232110281419632331778139835939661859237167726969389020241945744988214265684440861274019767495019686035450287073447028580064930621231891431301900984367962365365459467846115788166146414231511565430138114304129703712798121310809123083638194308802579429444891147562284630068861904099752814369370403627121421306879672873138426291781752989307552203753587615998070594738320766338625103695187560616567558036978133487931047173641835223691881976099753138478044454501703296828462501912049777246935626387098276192787771846291037239226754868074640540358601036426294434933098853858430867530124780117939420948750978253151595933774078167920017524424687501899544173076823237048714119626094155100310272533909962325173658433971941468087786158127150887698381962656656660543467311012563458238985309850768098035898932001038784311076575419122307332012344090918356458869522516878781485549136500823990957209929798822812939550402221701298830308844869312689548505133396554810876256415909489612472817929107517264899586464329182085870099503786048333497967020709695034225097766077293215218379869526251191138345517706409663806414802189054128017292958518174329002934722294258256134327749309067597217727630319030263538945345974555327136910783897973756279538637081049451756772937481595427667268209822137053297071655004381572397598336295444854378383577683163813106570823272015049788371947566089538044221860035367431120160230850407828231938300734728760202690867283913992068766118674083664703307698603319988447202349662115614475842296592008483596085314128809960318877621052491061318289420574574813625628004153954304375261154931638392752975292057913870836298666080639226454377030783535623274761155600029055665012571589395261546824093183100833916133867105434625376041968998754507257713438418837693570503244447363039883762308869892836848799233549137643091343262993932675827985210605712855166067985835099333531564957017343828094706802393534511485540706474840791516164709472531796434563041932346359195231251085154064612378801272170778049829251703324678791699075011650167835426245190463196537568953082182044387486810553901755683841831120862350522809412783625067583358301813807703343079016946109581077720761803451075164854961470940112932033224159323303904614280619926030503239063676313327238523228647154199641080233629307062293249601780592502291723847004251685549778302097233947809309642897782335376496751526692884306580040082183292009911896389222169198584964975685137196693856850529185835110232399061981720718444053012679377138114398965794694749925152687485789180312562428912046102554976020237081743875007199136758944911763699200268709170452609800097156250183055581620088644067972438664457706672183332649281951799131207291085029971379937070275723104674463432546838203345189819542145922634778031478880468387905865570048809464473413592718817313768305395503852632163101715768625687427386582827849455918766823444139976976968129280456323790245321751696292214078911170635880170923006048990454532056162081632812989791890137434550796587916303888193301060712793131076322545122779657894617532901571325109019568629872530903786177642241369202350710615900892354990156238831092176843929293313807502659648634393478593056955574913671125635918967582306048412666350084254707578569801545643906450802290841264529445807465519362246637337196943806141851685963021068830725555881516788870356206041344059651362641457472163101753703960011203072665185064154920207817807023379470838873950865658950892793653214281343865334660444729911949817940181921832246974987356052713427379321300274816567208555061054020845860810831297802917205151868101619294984577986112436418519154874920819137957569857015929769917825731477769107334436993873459252526750839691566718321272272809721034908780797933134726273191472491326467695492591327806188780588206321719912058025904576104564668152199132247814534148364312197320315351322068486201442989074580775819406952035674641402775932575347668141684632048252594903004288228081567297578505048191125006267304498908446165752445396563184491287579905344909794710358043984333704744620556254164023545977978017740202712125972083679492819636007938763281848331062119766223050340610507726816215242053967698167020139453149742443320966392563732236739065924787937823134689747032411290935521906608429038065985468210707718052664902009285026189433151328066676842493937464078857070295299088082433370994463946663278822455090596139777139821551828244768219439710473083320729195541148018593571416964909568391343674732090962141308618533764418850582527065703767942532295424876973137424503836242917397025095540651916265968849088843844432809683389332189707439503566852376054856136007824831873676780464792755201805276023738289733251104539028420989463097223826416356475103189578439663253884288241920650087808663921745034373623238619363043102230789049828656552276682404821942154106775729443880871305333511589594668578129600573272523880189997781220407630371313608545493594973961193862191887422978376945320700404325292443364337490488504084639353841678204808652876788599710879352203496858280453798777822168188513583972819041197949091087066805341331890941155367057692577585674005435649798621938853225584929264518093682218170326880980063768493261120886614951488183859857697896359439782938151104845858606745304511864273066755079359206442798025992386376406775751894227284294605958720255605533913638251418328433919122209429844712813710981216050346494131115960959039167944516051805558281833715940916993966763440148838261694972477891714911672449774407332890233106911960972515128306248233734846040310733499928699040422133183416192796368482506436627037582263838581914547606721944403830365692096407015451630352458289727559342820546415543168178003755282315281980163652907854270073465593223040916019651115930832270201911532647083195243225034844746306256215709203936505573217075437438620417842473892124407743887733811906727950395239899913320038257125892138596793262013304270480041629982975271423482865796431501720976084800561307479927976670427677099540466538286492122730563045603489947811373071295327017134154900807092836743484449536656599087957471331691395770166003272295712051619483520979183719289802097475523789404619850737437739694571931011178043539878984870118312922844951296782840080821729865683544128009769477969026289581224826858992778568531643676619306947436090243554671310576525253635536559249045455806110140475665179020301460637936585226031265964628186717029159725740903747320668770796079520372127911665361838800131346003588550387617213734154162853567472345651982860536564116750399651102511400693718973852743411103348457245848684942832643836797447941132739034844838912490209915971026568515088860340950485718988920568157516290895751757326767456808340481936947053148105833583324393024142748142937245812254398974830463782959624056450419865792882189074390645911170578210171018159895898371462801456804237698198250336462646137264889474761819198495204720894346984132515059735435884060780271235255267248595714071465200407695916736949529012506764814972898515590458552169955349968906255041163087863389747023603467331515631227979157852390746503471016491451669100491365134226545611012190339662596817569259647084490732592891746763177368752381833898643655996435421280060286663672858401636446511886171191658132435965265446133130114666222990991456450959797797417716761486471089159128297540173929577767727359904083455592998849773281848324070668272477971987295161844343558995161363601534560774108199306563722663646640368748200628139088615347330650296951279765834749585894296049731838594164640257572465357508084927838850070882013020261217693891908380649030334366174858361759930112355162077281393859540004012567032916863162975132652371008906950630622277129399605766087452678717843982897515388220064565591533170188618985651659257175451368775087189659517275738303016332040690257408070185034533247758670848665751227023496613908043850971285716800642009348654711778709606878038945602997419914243954722534063031491190870324289184782427657050646105253679576244610212775533912881142292828917181088598117378416312977402191281124878271824518703130100300526453157601607918769841944304635976072960933316548874083274038848948011203735113425096793119373718267727619180837473532476128602718868423134915822378886013569508924299575185390870329431862480059721079205931946249077399490878933258957546450766265750334868641162047709362681112825501904104593082824956792967867434830714641605052734096205577239576453694768238756804603930212755374129316240266648927668214170241811027686995825613594619537861476024599691873079695582981870445497441719773125250273680248359795073365099512949983623585135459927156918868001319119433986818886825265762104327983711456850640817925044704285853866636897043184099406445160563162844558674569491634414233788381664611023708442772471664340484312269354375987797224824733503399007050842360691037628732147644115660720258564797834144740319488473993811650285703881566618903617106284685431686412360846445715241905902738813151715464737910253371594094109073896029289937199373012468625806316004572202821629379782776611009909006944966450783976455411003896811462336205742240401021420969889243979167487032695402195595238170457608951912379506099285184144665114850120892670416811590894248036159296177510211594544151773170520914426307076219008576378274260678187769998614670926843793831044846516617404042158421462664110472730437734191465835389088761201765786687914843582508779197412556547651212902087699134743792040559044608498137081009600656839905471988280651661354354857330133903293786764391652358516832741550438857734489555891055829540340657291898048499079465309740913163299494657414301009154230552580398796995371863731680824141392593912025361832206759872616927348495044443295833289090694850074559839850249016396694208800904327598430582809608094146165374564136769892933187726348918596912425749976929069233213468826215426389106819373409952601892149377587249114792549190826479574558447032170305902536412714254240563046049020230062125916985600383801518922504670489691517243954953434140308298971675843943358462959402908976514500312751296550145211318552069066776728871106679742210512693856936354568277939631825445453913140210669189330070384956763913677384599289309409696757263716622579826369517748366474477792664910884409093747699868395823220224248663023389625947741034668985038069094253496983366620678963594141321213553986740897585364737001787806137978736946139850620747079946756526367148623668835892872040978209955390625598508712569686221789891551996984207017559666690040604596469599152323533256667257747349223792791376600530338535710965886268085873981676089176935621639061187605584780668237365108934974096012314510599844333712648177166354187658943379916207068074171921215249344394559445890083635418893244870249829746506802725446920619504068553018696909585651457366408987977333473558025312380978916664737406309829622144690967307765887536810754122162521142686134471657701949362953919994785094203549006341031247871990568488807419041086040079722563338621759051109553159807245055724219668031175371846686919112100500683288473660567532130698230359166832579695890850373982111980305073164994167190317322057895052767221552739281169443698398505351761498263204712698409299695200743994833010787948339179670145251826370605121630748696499992205921607443234620886738396704505263560570898548827574253539026339847579893447138843469823196722370900445436008493392714898568090062180965638386291985058133577428519896083552993495013484741749646308829101733987339007594899623375320788584780687934299903660644223808617351952788953824908279058657949261796848612226535629611153235851074565579905684119895541728544521557164808108534582365702978007069179909196140032697632716518861974312576485898095811964040329502117774439625743107232753333425427863500547117962640217757752327320085936624463494060254599555022659182282743113104108243501178192553489627699360853461256380633414188178450216365209860394138404653441588029740820271853122919896357827937883914366697779422443053203520880446757415759402606377825359769787178877470934897903542566046287070823429100234709866264585812123580285983110291208768966910087673833850316644662760158523896352151595411456029065590569042538600990914322987248783938906366340182621019702857160681423759851740512595578266550788855288519491388390901534046514057943565812805011104942952690084415500874817111327235547507575464041421740791560988455374630775342991764108773414973825755439748335039506520073640813806360436286408670278963004713104550983256250692978350826741082188656350659213937299480474237882280479223965988137281283196733927195425799286163212618484144030280354922390612974044802541300750780623562956211379553736841078531509812247005404412942303802551263242930656053058112342208786582768145117229373293557680615273458516545529800075532813633352377756288245270131645239161343231715904780898814704122525983364800947003132398642979977507455088661494310233770134655014209806905724101242974245513508008864771545606892972278693733061009173631157608997660635082482798081039281835685160125026936030253001202246000026757964925333768999198682715672346213487617036757487662435441213658456511031929922286397876427042874938061689223322952524923521355313512498456425924030596318142486621706284790810231953285685732778053451630703646734348366881167605913341752702953257580748298296973736244385289892454089862210839938942905270120159058880739695866277556640258801043870265434243847937132475133538262711925571885740237613101928390167319437553224849026059054597104167005629384145403003991110286306288240032533467090954385298926395475814850126795423352005792214784552572096613277545862188664894321224874833818420075111453569232737380658077956144076911644573581102092574224615807957286280384344583591476427691828662814262404833133277966490697880101141162737100594184147068883176311304525515748194638651719005934948009426136886615761700233813504206473699441835402051280276922340993293547465398920451981781624784462546906371147594215864115557207466223162522221507228970638600310156380260667679654311349585723546233211688802829392848425282552927469315033772992421780446346635685515868452992730174250490008697522682979845704790886437278976246505105659894196432494037009672333473584902996208576924691763391547756439049618406920818930466853639882318239511742235565221102917362277334862924468043295588502384522399891630782732299562473471036560952240497042265644193814421863083773893097757116022250894102741339775619400955911633121481768532677806965987529528062538893326791140557166044391457931455107441756619348989999619632068066993574884029190369335068649803892037488520429996423471722614329452605953157866662427408840271019880503592987019594551574522272075485609001053647995918574306789810849753168336290092253165328884167143113983911500810621346652429275213000570422480244798537720626745481876686727962849425919672349581819661005697672480421379823223883160080469428923561817343140335510211303700754497115392801927380115382180907704747823801069928148144293656708791106907693374671869656846432502087728360413550649085520389654487281944453434594047718242376398643345227950031229090562789518338021083943649015416683444489858509233902889346382366456170322325821475614954737419131034268713001429440289495712607429673823598245239267462201348280676883929167698895343197884727256182801681239179381131564157571897966497947430901632727769486247523391500040214036078113463164972582954212179440828170562258335742645918829794749154717789736157526936340933738628235822963273708223992661130045874795149646232709204168206073102502120782528393042461277319016905702009167690006393815727809929363547562352114882294893325342543198536590132888859440159097904894013684491078436503692018269497420577504818714018497785234612439884606210278042773143270332839942310770405963195317839899931338116969182441613463453682846976708738935906152306695131043441964588085249843063595548748360129092236754668880026602955301620756221543444316711504471313179195006785632806228577307971812223782564110388710781812867966792742745026204900355208598002120862113435006530016407068239641453495060422268736820697770096965833064699384514833924619664904690706458944579941576898339627018108902824798048047210907256881185239737168059445776712673526305238281071710632104691011250585634851692934412158667083087734007141621054427686356570960162891076565431079107038728023338828579161864639362375576890395961804395909201293627918244891352369537363080631947587651085101375941356067319386762480293174689568037405812281584570017724263483489607721639089936595533698795625376433080285583029241241238290016009561254557708312804456716961469479004335209104435592218014866501727897795467455595833520829049316991861663669581944021822446240403455475802936049798659013153187691893636430291571941010309108859131938050136215988858978084227313891600734872351730943610516777739872499973020328812054423785541429280865007602002325169990207754325936773053204788554177339377345011796213732206635787726078886254205678206775454934868499139208362594345236354605228420527446801013329428114864699080147393030237298370842914197117310980536456810837695416930856795427320734337052955907369594291262567908341279617161389367352147600784954495170171831433989595145897669329207087350442688217285291260658049696406276380094646948566604687488887360966558816728458347267502613390646916318518775543723648645819745290142311680692214479966822909385736065273643766905721600721886857171019789609030144000558377221337739376585546139693460718308142781686604848158066534314682116891151375148131266616568728419687290545779492151712602233470828669657797480058909013546955038166353897236217317732418042273156745151522751588338696773656237482867444147499972228845197097055285891853490160632101546180077124806355239665713000659462865679825878059792833761435203409638528450788951735867581362352240899191674864168865806135142082907154781298970026790064717397702933877504021609863171939936005155506608902793713782100081615701277197072849720610096539409220678161827296116551318448252181044725845968422631475750479254831148056979779984586997543217857157284483795694813775962379537345684017171479180696555966829915611300906879916000993197503057302292515417388248914569698506452325199724412263205080554113002024918405467389038589423556109449618764399402521936022429134987755001557087074119839491270305201509887612228451790798327119360149955588802919600947932598599726527465886370973034940878726659322661444544486293384215373002316249735872711581005795217522816782765548560647985049805480042286998648478097405835674936059109709316588035688514984141415349725818580440650389301747834973702029408359137755780003659186997590057833120368784509955237132501276694300064261471914682214933827878610726626348444649972458066582044579439098563932482426821408953925784150947750670302898253906426547749722530350050670598603159422270737763138985711722623590644160868965558710565704268597435715046213941404212539545033293343965078682669680208813985120501198820338728835874114863109861593768391599399666803002171089220495891267318999201302344954499266994999955189438043375736425480564850262523914030023406463489463541340380225236711090045559013157124593943547593361429466047819332827626727038408744393548337264861730405374607237661915751609777055039656296223645310779128531065449274175891703835197642591577977921905577533160129994619085646522446320402391471051092936242159086630081697039575817184352215154440628981119496511874431347304945833107020618068744243684759154472745168437669784418484770244335502082429590366449023368737645289627533023891788344970858291463806945687619421116409000174913113639580209787910828916282594089156209627942258567469571296571906832180126421469370268639385063423017372656766608624944093514083425439664177365865106371836710228772556195039364015776819980360415868724973613267051921791081480086409520079170513720720258089767129176377089716671600974235833487315433068726046772460072252987415790506632291782489198794742474079151323382285004225416733997861985298145953085373605414871566315349683548900594351303188127320917147732656866927048697589618853937633764918856441556439072071310756465040564126712470481339186753509133194844981854808068960548433928234890837802666516495540785816748965766417106079493810727660172878017900273091002960112968777311064872961748555941426497006328756929078122566892598222852667931025542330543399550988551777001769419023596353057752320228835537366813729202227828491921631852461050095863220724287664184695594056853520023725546736164741793679619420738159503212832899817796888766037082921883560819268216605828785016069234044893225936397092693662173210686781950877556676877777433710713100182827510095742508877226875827503620708771144962877933768056932905751274714490455008182464710870681125220413632630095489320105382886801041760907197387461155197680342709024763222674820485174413956319703350287054356983025490477767637679180330103082978765100493267992315772763188236270395569472232057674695252564082562290331696216538822977013233903448450171928232784289422874771382843124888311469689637693832836361472667507265272624561863679930386360810475352537158538442829416442970666833790027082582241536350285395909801451515194569730009708263167306945979268375752524976932291086552442266834024160358117314322194142188006509476110988880207842198453901926529785626425587290713795048421816008485597598118674772310809153245058454781067936881607169467996245728804918262078374332928683156227332652443406213177843080587461001358483938710615684267137252486840521074671701425068074624844389471734153095254560221992564466752392563982568027182680652997159248815054645248382383950094796095149523579160136584007976892575192723129505645136374431976628029231905846400924197720505461366121507136019117549346155838072145251772316003998755455641120898064413408622182087083755027794330593129792442705586150992925101182112804159670248300013365471587523210730284194090066302971553965303559996537253699129845155690058294126057560750335195402368066434258021678197584970884086229245600574175651331272705344123999774332920032194441402465783289807330987830601882634147788352748051074867218962465058419637285195639056507710324283621982889527618338582007734102182737035566369166011759093917056542093027657579265661744095087102072611802501332241203784228145066925465511747856041607374869070655060675868260413491579294605433894012417770148651228356093734202207315761944914997311977308971176550741797093451885913661826244123025821713755814669212850907783752918554947080771145134046137983868012082544822990200473045524644222902181031057404444511634362754794879528811893464087250787681497839485279931702411015211161742295543051697030003516478694127306695672815583708710429634963791802278818848746986788989827231525263223111863628912795924159535149279729354928979709750055688278380789630400494855315350953525637343421568837285857082849235450024560034419336130804649448900170683196021839743400451452776481585035089753407244165176326276790208607963575000676407286553724523969770492697910752727593041821476795908689795253032377556943743804153571303363605210173295834858664529935057590936291342636885432197837826995101282890411711918585044934059209212538066079084769911778602670240010948288466857477952809711516490983184973853231940909597775332088605010319193627976643754981681703335245536780191193075741673140078642444766841692912873964330974389763899615178745626277342330290266917706777033299965767434076026500952068988189864355142658269177330300367696356162822050031408982347860035237906750568918266560583559073487180265528533831424032725444350757430539452165724933017026872166987258714592690218069187991841963657946284522859008391445602060879161481544455652285577067307657760996306205821997507240029678412877549247025962826131542524960536858292529956052076778665291769712815366158779764219732701841502622946461264498048922224823769889034432856320189325274090925280838055563946099686785850915205399898056102186384330875072123427540824367705468192237453165488726994657542835179817886842706806060234439293531114805127619255174718449578254837384791020539232856298065739778132087335902376728722326063967378972363049719360630526252704013033051584209552807559303799151371911762382608200490662333388621176669505700530256643967535558489829350203182197764976417096135605030885383256646484617936996554096940272194204566144521454306199949383643854275939474064162409493556052336213918962741564963503846437573950263197463518406348476907663550454190019564143810973499923855482129296219981025678426820593895452234499191724397392805043920628787446192919964914164953687489245996622334919976312587639192846780122876552536391370996496299344209820764098821607598903311434905689333451670108663753200951224314849545920953993971039530554287056525258825466885138952582724249306847311724811121306196677219490898990325960868967310273649902502454854624318284791732762104055845325122725787639829402939397307687658055657813520755884602487995903766126389231357284361806420808260794075474993247667871471040436018924971530452675890366017934992161959940294824457267825526361245311768652929878473146784798443505069018215577192609244503079259841147979102588311350034582263031222538591437039093041919105097101338119550970167551323468953561541213161260128751429040174686887121329009547798187591623819777469852992621625966423614110125135662845517945984001798248287723867567981809102813712571344766616876401590418201478084356953676893705648713695597122265272391358343303653408957177213215370404056217513284588435480499065075396234814928571498309375666322375323233034158325921669127506002660567188751515938980542254938667777704604056654789207382309653621971840279360361787903204453920995023487068229519419844805614895883465727482136049731273682679129185318747168134945606907181742697586905014396882364261518629436742586610710987006061296003789264973539648249938092831417873189899231538273268808243000217195497623166285868398901068539948021104694880509302173919055186190206870309965492086606915548557314653917943619678950637386836150690825923962682399516134936559359693341236769266077208598514550814247138853270416866170317999741074643490634508598887052923796345789295311822467709552172840592877883251679506946819116073854095741473336410617536278121668060111740517443383046689121448730262544710940112954593226358569947218046053195992780895329703830962439177610620410956233063762372686503356981886240662873858992528275934377670791721204130946902530137225225762692985263882288672297728837722259901058623255138731039527873175385586065153886499489086828191336159431476813165187891885865185454837094512885733766585213169758036741814456153268958689569961279107792037743782739075917033017836689243236272041282440458844471948328685251115970564593050097217211157965353719356927105624053854532599065811946908937490009040399848370287648143905965525304852291219305772234530367540804693755633691791876794961497219458785307473616886060186310817869520842991172087395308021756453213629426622675188850123710001662381223787555055140255692482884456587217813838683890112718660241431467423270595723499782973929767300123515792586067668602128652272692489979255908329492649152723910053184946529978239501402983540387577349219196544813001213642116533094276776209387970437190303699525777843764091002812319318435279069619232490096167614439510209546626105636202696185047378805352110890087195308832195065393922730300958299588796912060018890342997879522107535124692379370298019474252386166617937217598951456322124803526147035250597284546746018419650747858876381717569278345927248181176338191369249560246662114215255984893528702445378230779363190529640197247207626863975559679498875536701801654411087246149352916701931509794865817248423795271778008093068562369735066455042531416327219307325893470379731362872092009796209099384281521369649847989787588413075240867722279189271954584163738084481301060817687010496541227693254607624717133626657160794905955463085963385246411643414605318654505039759208398589920550056439357657460418836985236939027160080126325834169393854186024857674393880913033554556388041023041625095905646898586031528187129399975359564187709243699638347739168300740286021640109077557356847731669559242503125772443312291367044520531847835323773471739985747022235173838366645447992003963908099684444642340244175381263325219227787793989887160945785918584646987275879732168388795049308633907909892920635020062028112824816241555241858625818158876863267708161691967530535844291050158275174411315894575661292129571463451947804692044776803244254444657174526467113454625915688840157838274010243549783859120038469044479906844374942736080961105942502860457423986324674261274511510982243633995225141367033763664023859733500747720628387436318000442353870520153295356487207912476800443990214389158862593189363164495084988942675585444498255369958922117503376856542387436557543991316386560293751446442774020971532267587748870543923445635239960131293403052447970235073021705391415169072254801503955459042829226953030086834331629864279595446433786882119621417648351257414172437810293653650476809042374194303783674817365771746031284781156517604129059550179485472351787248267294321548729391845118944777462056856997197060931778997030727910555377067709506103823744861961468398393600926844436147742839780244958893777679068416112543151689650471152150775809427416418218020353136125382763116124363138954092745672535739688351064072688458057136180627010282164850315179382429665202505661113228891560079206415272969515083441660562758404292283459711688586104459852695280776236880404924092302749444215289758617339946160052700917016084225420835415211470577679562314855317714728396336325578062995676871580905537222094191070984400709813173675287465858066637066484252215363443048019785333476599886146974724744958595689800639247251992558569392259261676955593347914246880133699054267906520820040871873765951897161617251806923413336412122814371399399762189740546540418872065624986892995675052809007898454060626088196203943653430353306305395942273763447686825113453988217595439046990853765885605180017892766162567894684989979874164485195338950981716630610106787459719000934417412340919344259251645985403168705564550015377970881025985955764791978604724257667280920208868390605015494155000882038855853005148856786706111176940951494646638691297606405200606470691412888919168404586052017620404524605645550215746802225365617957426248093129067969007261546347715073539959162511051160998821799427745038485876908646892427507695182864462795973726425155689148926866064448287840000664855214225378621720257706438980188842958612876687242619419842473288979244385020688694152923452992366843271896940466669651330362678746206569667746287662344456578927074828585131079961957941864017558156336988450684932086315521602804814767112786573835452445174321998262612025906143608814807944498373282470894488961076657414142106879461617990494074167144761641745505693294753337309334109119894300933724547046662526345572684812835765605543104334555554595663192519279881492379534894132443526704450909585383073841181243430008723848119311600460237262956509343192485833714485212650972013145908364547326357598149702973885168833288843315729027685770834719906580517987072561728465558341656568855914712811810445811503089808312524949048867111322038880083511240495838183782247998101895592664231320036229805081781974364664794320100443629091485742199048781759897959142556828456779433583351307287854628209231049844295542846586351352006288959685724118452656505781708786809992185033421975479190799918603054312125485272640455000248764901410000890267417936190795970561570298906509493629952565568662273360726093605614428137527567431197637244390748590407960492734131497692516873034974123993762544029815840531674512296410412646366229951988396582830470893317390447074199154415160137021340081608202220751911228813763335306662828162260449291475776162096480348557431698979722197590458552933458654908103475408572541659147616779574469072112398385931413646638731667131252210361444412577105766045507841216418962863680195108328157182735377878038567298261487264305316825172182828092792927341912722162282717340732874334647128522597482897699571438706397371369922176661785197786527788786693113740737401697314942760692557203387674006853931683490748428459027321645666655867100154501759759558266275084991564987299902894186956719798527562163857761813441730116203442249945290833989265815839177153367663773101596555384361819176136082826339986570601080473952615718933116633647974046531422423596921876630671789006088583559949258825863307433750043273108918285748725405273804711273421486345648176352551444751289611465773056817383779044479521497279637641507912565526634755125933075202615704606029873751821792910945763733736448620033953519942740900167902121092693623671411792781420044940250265895813769786314030215573106604723974538238074703507910340606189159705687870740844235997414621378993628094457685131616650464008770193597734961912302644101013120062421385225585518744795486334330319628015852022263070522672154254718627230021103931954046877582437889881309715726444240936533582020039703456846503739911203741423658040088695539096674503371100780134999459121650358784800481925841291595391705079998089763880414554439507317297972370017225297362634741105999630749354529464094891878327710242715190092900859176916739152448533205369737539899062712415298806713899612843512905523651626471145326790447749325415198746463755160801315618381567807988024403529049371628361955125899883186736510730346469753182311726796216376119121392159267125362316341196712335029903014561360352463629167062612160886937727684732222233276422724157096449223749100524313641081967193190701185314269113252049035313005838544590039671396453552576901771037731180927758730735028487655892825945565702652862594179911725522274195481370114350551544610900335579245455981134552962011134739968240380989096470497529670612227313874635673718382027359349629264256336337345735286414157714087404660565277138837695410898278330374540247481882174990047767184736988435299867038261679481336638418518165923072592056028913311876001883871465385884350678128331313761244866277222348358907263373122251778311891707972680666891956940585643152261134593947717216858507962682350625038061289908497146881915936296851683798218203099141916848780703551615378294307881621887864135351201879460064733114782856684669990495713886328339491019992435381794077900367818442952264920128128759781788814117797093357765024095317825420437035210252153076357325446016511178015017440326016756969862254695995234466386484995855481391612931161030017319375621137879055447216472207640348227413190496001694092155187002017571422619623730044313647801278965749502920699631261392717692657976476310584283919107327687407940804569554588792779801119212245289997392281749695972430162839307478240757102296575269764741085800783140402755406894398221611738293215941589434184631981530510236092744447910610782317264497728550845654443561839204333802216033895984898668523523355273096100920491494671599968778143764053459280914985206885635928864012831495784295571853602917500142970102198268927394585955826512557193900845828516841432952115633189265305242323378427471031238637028760585023814547838320894934244977638362667090975252417979942573420134348548981356852997012670305160289598639357988329628004982706724370603997436051717172395989734207989385589300598267136077103011650450161222286330053280021485427534165281569759411636448389684971986114896004699261514428028506526420778875283853269830409927872815593893189122960370945960830708533859320981934422351341025667780907970479686624117290924520341003977557505331681028898835250569808117499741482617910705531675451742603637696463610685989701307363421645588961717685945657346299823883000557469317263984150920449015281123697300877860113958592740984471609820137031596533991130626473260186617451784007675925114463766192506767928278200113271286806006699683022307611274285419506066454126104587738352101166603518081601609440244625196308828966003715432907981069319046170595515194835586835733741628056844434909277867738784834007890810196289941861411151300745995240396674535755333447038430788987105455745455338360506796036587969915072802839309159912044921686910089668377442282984851987908137152114482707656442969582522003216853134512875425557094150056123383283229938925561361893982119366309980280694924659754364687811213548888112739747710329364870520571736649939215277635717809436886598137363734906687930121668217237993728908538257906538464193894264416558656010974952185927980254879071978938461991902566785106110874859185136397278729105376671317247952175020376066754630637634670891304284190919559389334579072570430987617104709485919249731782415837002511289913713971489881550215791036910485563393968261572359043873270040669034525280573151191068172625623110931889228439489489026011194828119252969907078936834252415213705462085741443392781318084740230182523085515182111628226113526688652371903038535905240135791148614561391124364437962853898448136930628352560236015808332461074273838592930593668782087017310517838151656294239028004300613032305422499223039607316976035506307786942539229775734855473766674714247135819010752985035778877085630508468402418407566351288954311066557814475141395930900974223990849754326080545230466554445936382215885752438035526729721074739048813095388580441438626365842432683506788695702716634079712522033822485652884302755303513908195447555607633683328131812542474683993076357778628484312115637545549470652882610861555847771991247216795244532524419907064748230042640327013063405291982750098403337002129723967454730883181609243432559610827147808159664684116408275725352388011164295299263654336305383215222902679389432480635078502248444040226755994496873685529186525440144834858085998850800113145688344088733855611212446479782791051411061474035182775006108222292018642031329671350443798844460307767710128504935254789354767074080734343464133292149451270897574569312400613391628114670379681831134588974807182262053883680454623953350906493431429840973166257427767811746111145049486005226302000463794519440677998881140442847611931157402866499034180032719394310018431457250360816280174263797564018502385601978438255592425263887126458369843314074433875181335548090880084181358876183664314291609190759059244150318108447088776799563722204219689808857402195981184541531777717461041458084680087410567141135774277306065605186577879517861073203982377479000612645115149030689841595450985134857497021581745795006260147176253932356603961525750953374729365346345727345488225328552034389085009586711213436738286120038905088357663247076205343626781724526555978229541580190793276696117705212992656724970515986261735703832052086573679037472316224794459055030759933560850927770453170151509274563485155529048418244083764195853856458840364692825124065861556897504840101048474224550081249686082865777368657627001499367995846149136306880096047554750957325114829844821804000280834707426985582531489268464384878734334015440767700354767745992917587261467075692874000859193717922873666887159444868542086735169889662256423880092850095381602625636545630152392706172939246833660001916830756717788833682469409530917476449667151446597798249757690357187083484826270793440278907268002499881893230830912162989113570933191440135239976871115780780319703064021415407269116496822153199596524188394773518956026306722184076541679440079950643601058023077753709145724866698713754158837203098384241178446893389102319017716205207442383214385678538728328665751258188131896119594299944890542802315283348561830410117228668521985453429311100184584704836120516851324412150436299276128605546141375386470069853697331065300163118013300718977824597643331203321391066719571723768796190799490395871455256077168834325527339513886447605310583184772197909680330768704289507861546444985653053647943964313518434765160563318533951993880965621032221555318093167906177337862445026379244249914777691466847358504051695894457955826445273643023276092510003270700961525997720116198974231417562279775764746277540969960164129684519921762713067381134037581326567149450823711079377632163522214422286316350536696320884892498643100348644500913167316277140863009523977177039181245895080868369347287022786494511633164512354427491243040785815641708199444346396807406459044490701808499667036002759908295064325613331436774553123124708464645792606656841507494425621987482586532673083100823326692780829615121458636001607126840109368615202077239623250864922061454022041215338790649570163419866504266698588005737466198433858370705851165718261629555122784923967098686308289189793312012464605233754936310049527490296808674446712832561127025619174976924981475740214107290950308405247803457597383319721697502671769208353303397953541050927835284754967682954784584606443085831149114424035946061249567293936335893204204896312890425745749324206774249790313532823053987576194859600936726858781934612250794667973090869586839498114269402945896318704191250254757327765979364453446687449540152338788989641734541462800405452353970142694020813303600148818757986160389988418401773520150631953820334120555409688646379160461401581391266339680881505300912846395971946613028432874336692174070545069245714933469672240516876262322530431624297134676336818714698218170389708302021472983856188651891153692212647091214042003092739626475914311148590472753408007355486452749882157395594843217353576510139270963544276973128070220438358296766607418806258022225554118898181866476987263765415679445503234446278190655654971255319602959738086562680462443559728208536975868468131094925244515478779886513800069114073580722808253896385992312544561265968152096296910805034746965288797725289114260159418255839362486391732659030326079640974822809996157036268289828059774286502612876055787388260276881141240293689300626586485571009729746158732887997794718966415733418411052254941997812067573968712869573502058798961638343871462801689924139435219226479215104114169701354101614970272765888905584478255639745296628617972509933255551068155701562644604740992057761404398402351605332573762627215063627590215810497488128082032709843030088041693493009293268177433104323834413130160023380505882999467148646094025033039588713010692907696869864066825320898393676689850106205710439524440626674752293540387373012234995507459471738803265086362247640147914562779690829463888548820452270164778621824002737955353061618679671014550992166248661347332818528120720252796716783503750288389585843044146949869796121081213746373821953328276767610517950120359319547261579333582417492461267545306323841855312402296800160980514852548474570012641225722990246824402631013245107731340922671498693981115852654303416924503086220577612354974324536976051472385428562473866996422212005774879694780031927629183296468507471358303431886596026341009665090509867792083417558543485984918555276022502066840716470809221473736362986161270910034414751876244709353654148128789491542332601950822061066806722021894678602213016605325658789971500325643683241590048899982243570923181863340245928797156566434732210722730186683942887718712974776092455226598735483887716408075525464661275425748062127906979735832882479858935017992508181721101725363952802987154695659615011363392882063576128146991631587259435766959771468116306813817119177085358400882529323215610381613590996517684548322141840246946502448669521509552733360665469643892083725241884716233266921656501312539582904557892069432608691518848352523266479826534395624428104178142569528500324565672141863272134527050824451440353456842046713496593206665361423132430238397411577496621147077312398316616625445244727803195214036364537935084259482776781692822951728933965494089508573897685680965244072902824030625784858401824731741905766373884985129472478423233468734752281184143094890761379098279849747378867722655423305130145763646689307692157075652882706862388905351660590329622198194507580933719659360417648435052011347324568282389894629888031732139576339982620124407074353873050727848977119606621869702743255094014612104275140838063690242381901395340994566431222739695421091271319872879891995600459032360333519913756986107783696761281963291768943534866002816374370371701708143649602257351731052692499325506092249203528858890329300605901357907993950809402207887423292394262454659059706426888963498625834846488814778748758892310074940161040347944417328498160357087561341660264005911280335982801052771189020290068070537572776577549959970917858551576737913516137835863721838982909466943033790332105256039503309488594584359021507056244112426729730367007918953732362397643839707811545880072272225200202430652642421601734167561540577865831814299513144168683112926245769476222349792000535054126543810772390981689162553389995040097826530564480011570658933071299015782328124260849405225419849232232769781099321117768747322065053662859284539392204566860438464257947899540606119186523587928325876949364142052171433680226487109721499414368829566907457932331576199630419068777229760740835400828355230031690688048907931040027768804300824930411048818447576078372879952759149384302065678017279804416664408519230646120073149140091785543870484979575656247683136803485458041576233894805672616098987959606316393164742894977866247291679155580112821426976643411578730318618066271872321077947655589148689929342836236650221848496771888095305553517872624589409015550537103370367837438676319533556988372059163763444441513639744557344825132976651454450353406861862692479154539190225648859037297042549472035041653718204282917175516804949730484874160662355979309090012603940357933885642848995498656964557713197294458697901404432225192844581060358601706918664762385739822206407020153896244147858334753672972459388254966806631221761182377280945818588617210258576149002354600738392868798383997358638171157575209142645350786740572496486794686016516241927241932920234973129285686681273978334813903050888663836289854942749517594618385422952210008626612948911278859739629268118597393074780770555522299485737860895558391673424471728630027856218344771885364047482341355363516576756842916786894016971911913916789849267789576394198357126141988467630040788711399104052597983764892259814900066603697051995261957104633736022069208792923055044173526901103742358092181475201623554270585131795744435625946846363573177776297437610069292972277617110011458047708197713764900981143496415873628256327086259612326714389838929449680567443186353822177515864004439630638511662816573119479938577518636293498091138561725504293702091704925008508148373532749811781684194144331214909034736561348004454802607159342776340225466593210087582336598464029353253828018301741212857184407385378258629436276389324700922920740453701398248328917078546907773146490446651914874903644377855628833206025595758776165805285894158751120140670097556147298484684749557852884629320049163077421917310735646014212747756019205634594182211457117850505930937345154396207159508253696621090651184352058117474570818487133714016248608300974857516230444173155749962030388694657600915934725399812583117177184289714447618966553706544836692033091776001876893894872141348648604299916087840688742417962535713021690276695169558730404387341557145930502764064323048553823621998137578375559095347174485989153761044023169505406957147204531043725605243394996106921961690724214376623930326103171682878696606630445667946460378505365142663398186600408720515246276817190159981588059948249730553774269031833942312864389589347773939071128259544530638471145818470636935841708788672973073084262466569240563565636556316436171348458363580028034448550893880856684729134033167399883782296859076742104846392478491030218679583236164893351396192869709918400987693405450374015212450972276514475903227717433169038905790018463472054116666359696704919761509890608273105449112214445200200036227359306504357622907652459197289152651495890961785942780062741618578087484561636377024250914924666039518554549141192988629965985241755656590170454397859934565741526310838170698031498353245000208277686522258112918205997169448817840081731243032340785460466777022084745734464748325128244519835209327673037545471011105038004329500763727359410387690004390337057669797879638990628294549834447925408838938044399784535149510444379545663814656044997173404475453869798932087133174518924704342142055423288915682936335109470129565431959785941082097529097838147967014187060470295043023674899381264020089705496598502459374661523329669291146032348826592289774762888563931941841818692259820017742286367093788692743538895980304242254510179120504353480200963321785816028926318053353875243444068104691111853904174281570561471434132775265132964901487084200245215629164627628556065032976102986287516273739594717517999114556209850156596250002929947576538767546386561510486034005478862571271214086449316630530900227914127877230238472859522475722766210407774321143886727302598576853087637474178015435106745259102554026644435242792834391989493725801442031659671453638675351061656526772585175582723170078400603966898365876380818698481184351552861813795139414659064311333651921399177725785082311150863625243731907580902873062999799526608391823631456474816699357642457811183930596040045151409871074879451399152074366141775452259081437938399332683970749123167831987964621217290035430637547642181554753325123045610374023249753508210566593123041737453104677241370705011985842634913184340365414345871905002848342161345788625327490700751924875148966655947140348319469482685719280238802251775266712393267176450250624563453994821853972679950266531653530211394317307841273592781272288618536647148841203852259372875483044257217340753537803710368468715572116259591375619332028399070200395231771289413667034825650078924686223457085480241382457624002341585410608388100222205487563939008494734917641908644415138747730640146625819152346154861983489866441114927145866210571942150362407255399342026501684450467977159026296559610365048775992843152622460429228524210371332404190076866488380633604910133609712704258392855001542516721689271675117712189587829050549300477041567126219290184834619211943424001485583794014328816888293727032473016805218191549924366854762064868801089886240559284039815236034419208632740483139254328092138257824515089362332691017223898971589305088475543460258616176682408831530221834070362369149154467950011692637520090914962129067299398415094082964140668695347029094166024729899040253577805208035843981423493965305239285460385677971686247330975659840492409733887620015278517970407674838407661112827086309406383598915496280625145882059242759828470460060163304323450395409647624449740273029936650905080727746749880076195740459356595838466164163404350274788212038602871401211783726282096714049999123277460718152951599570091377165664417728745284873532471210763917951178908867051739498979070640284114583887448483815921717447713771431244978140412290045146493898138424594030596067201236015234874337906481054527095149701362337789189094213187097964143724790954834566040080855838060373549654459442106508596542583024757672040313504474637935112365070197581207104910670581753545930146140174810775344846885522915659290592408986786293280421340220690626460103490047114135261414720556374084109719300494052231369094632161982530583170873542137206771750821456913276860197592619096318230211550436423466174045930912089245227022112319937091639870674926042090834113025392870228503453604312964249225871080250619558964608712242561020132037803329448857193411588406777738420078585685386654408395598288898105435766825336988299977121183412308130842909385833749231904704126825625668693356903229541826277952457399334549862789179689905373085492221038690744876010616791548056314048027616716635696882399065203049049536821521436769909949050996420405069620502675895747977576767113501723870434834486397688716235378535247738359577742742535143209496547207495203898180907871885753505583530340160829076287383459041817138545307388748261943952309378922949301329952414986075605368905333069398856203575068221486523514456031190128666724155498880346390492485168911905289646230621653448828228383037120433343362684460248329334868367453941476495354746411266121350553400310773386140695470973216969681309724490059127300048012217521308968425808473435183666231816742779940042129850940552509756467870627470759523087228055633810965259553174170640287359724392408176556330819052976055539813606014116696727787478009412609323177806092662920657781466879248393924605036503988322793513363223928241702955994959994420947896192153919821683031263501230395747496971758003210907181107152343827760255521445358206710117527282865490119309648014553788803698537381736649696950365408346728701903446410299679753666808091908983317802783840894759109339161778471818856474894146259082856501552686952035872153590816860725554041564910542352448337908752491224462179722414383004789206460461177031753953566579675333294774684885080828645811471864670465675226616293864947156897702736252740354906168663179988273305650441183480946895601829757904728067408511370267389982031431586281597074222779983247606413911878773787244606506804437801483246923240533131930641731464259516644592594603393810618029902267107600067752843325230319931664976914425465519558640603574513196032858072662693142948335129839480074692178005396304164021357850221971486174999893524490183989174158887157691749450207930335282066845193439269435918562245603442108523502574297819839270673696878034423672502311732946589815785247144137072324429383713317377092518363346124672047334817397365376459308474750346123514274195608607177943769553804291971687134599320173766685583278241106142598074699580542598672548650073860343808524522151498521911805120749913187815482233093132420581314234050461968565352315600091067751495023244365225223438944151465509325467927731020013235142735689321898084170714100883196930215808233625902019082058314303887399290155938180118361589793358680740856986833544709855534449828525805814645419025861885575582353556275328870022382182561254032670999062754918222701859446015556792916259540005679976436373066837621059847853957468000601507861155559716325549207259212022502588520310463189034965521394575396505214958988814068404397817289237387472608995103197837465276105823597095171552873331799119716547127891723835163156712025019511110676934477311925221693859867460755329639337818900288643856364768604346636219314590173379683624935275141834892811812088426966518464641140664574201900232443898669569885100131846464805748061147112050383432866938402296413599818340564033452632739006453832638392268646726604272594622201340787547858132317001137002071008616218481305381628976499093126200957275035529866160104781521585295870649733360635723377454289168253157255892744819026324827521952383224006222826486839283844514880451466324638269871923003382424253669425337999108070532998784057429728910559336955030020996600585867364992011950192608637007266444793125917521782104028569716614127416450413600815335108152583849690029704119896990810749283698538690191119803654430967316623129565375419141910615989244394757012919341065971768208918435772179880217901079176469510171048125851435690351433958039955576792121255712790402576461227839522414406294816698692175080237912525705032944764603320933839207037539012190473933213679072487507313278270236480209814940191336547525819242664363908887876702724780746734108415701706304759551184814545614311045815518075187490576914388507612238978124531859352898101943265957593142276896301863354122524407584858522565807427813745724575715774177177050422293929373887408611341105893438799461522669324815605360945088397197205368982689435844794688173971031487309450053562749062820102212803972331064930680200976906431811582832470565925580596450227630182178487772463299305475477798466842470233598838247867293506569491603583256009868578793823097554057663523258678878225574275588200473157459916336346293105574940657613534715897379170589546259961167491437795133853511389778240351598997383117919975650700261032332922842048687791186325547113651113107434991537922432910266639594787508123691758204502291736511444619299260713942264667337125827376283032417386163027403096981186727661703258659629595594747436384154069881304841141327657807191161580683310601430580251851933059064094356306420679220293939967093309466407960511450703971944273464577535297832547096552110901222985887171797434365498735876851756569797943350273348898377764825927376860321622983265491085627245527562844027730085035721807680646560997878705913695526243546583140548498251574293057172680307433659300958495757935821328026615252039425768810337299362525723719965254534732140977207457783666205920960441702210041435158659119447588479222851451360594502200570142095536202727120837876106989416865547917533876036822196334172306746535920639897208625509157661731562947447476837559429023672703398208015977038690932310836006816979499116211511841716999251869381453078126789974709373549832088932034331145937818482796718360794074611003262638152787472102217876822567664753357872665451752456748541431743756974565257465155385894738363568281576608950458006617432728005699469138400943752129121700679238387009834594134133218926424600253612440209690529828979759455098664092426461684163727409106087076546409547992711954876283103209268203765933926539245751421773601966050020721974384609542865138750188936353940146568444630591440851354042702299891107149478367896655493462267265378280245192383896138396265549039443852840789494235982385050683294760308124195987521725105753664840222164109137596694405239632562456612813326232285164309560838868390169760865876335404214074174262940253058479136908663205293405379267306855417599528107508871615490574142037130397627342494422210292698873332904417763704634844751082144276807036810093925177309863694902216322722835290488263781499696704702819644470195090515363590989040559100942925629615392717639478043134591800045334732419640610736265424026985009640907727866432483117297863126495787190652911499268687889844855683366940164167604029053269590877899668548273567888322397546472098423122358763945080867647945108059818188430724433131460009730715714223216670000695131556634902902848137318173736715650610785480325396866680122727802562509810091672749259631988164613918142368745095031941708976443270416398290511569142176930441888972559119207602471620181482487574545525277510357510675672685681904683985527827780709049694635378330587012480725854846980543672952571726410083173526727111880256321704964437727261199867066244547186501725321731621426511796177975910715538013954261239956021452106442610079127340031330724017143163484339059600162566232085361703140710420748242952633860848263466947498917463962176743312831216638939480282491355517021487210854921804752036489117103638163095415928908551820897754058647186344726361840669726528375281514787075852601544267926761398463408768790200371628176449225177160036658633066756036799433576837846320395457220583230177123347601368019523297283473951297585852673744322943257995886815020699101848314228935852060684213062310733195951783574450678867870803576825371814286746592106091957583435290974456969895620064475137394932422053021026444933763813378934172234830062353471727009813202897346890746544152145496538973308235000975225686002410469145355704469677800402030135975862956519881091938271949886837934950817823641879720518279951776162898315888718197881156054210577442790240289627362334798622214495849312765092378834897594614258736108638816113779348568764157961259059384013520366924158117092248855283494009397551381772539934687877161780490254521011182065093545993418054721305471546093295619523727388006181642286151525316362552738047454984793830225130537132994771358231097926955938238486489205446416823125861223762808460821429179210722849213543995530310653158806537726321536723588154002545213806235717130170041941822130010681361187464004788002795053919013002501792243051309940717166576637600111493785368492732971793556420315737141753253807980742254750814293133442373396853876720703778717092315083779378867211754507898251338092745828112880658738523332828942694304703346253039046713907800309536385681497367836277776364871444330851590705255246990898825428419878872720913996800156766909006016822959629822510945968139344215135390267235262235165337776491976576413460153068255852147689158959313792283928146011910114704504615140756897475509764108210506112370080050246482291011550112850642403717884098601498496117581281301986573320739424549235586144776802290870297154331713987717181776595175413286772412292185846440346597544084633300757107195173120210097706438869084252124733744140831227344314304256945428051539617788517299776775667451686827444622867308244360938418897433060588686158095785504369270322882271010042078039518612921522237988406971770497169627852529094630513083844039056865374251599782741616619306971968090475616437633361085956281268424355957755710384161682387126523383079203191613129233439985749426936957976750659586196384799743164651573502537285275666680874542110139818819478822844412565054651963528456841084809005200834156676310077200591225567324434533824307419666423339164100383649822771309292546197060058791984927809893956989598269851441880667559130183752520384868415697074913632704882490184967884147699893884971769749302413728364484697011150395411595168195438133636549720432493513694241435963153381458976302751685214860131581175812800812590019267412733450699360386787596895377430793974611448228562066020940994354467280131149229693504153796025644270478165051017274022256563158007816793701988019195456595835655141599510853429593574535104589938943471301671928308238342553235515442105823713489071318731178460834885396211940337841136569612286010181553679014574474509481363072171035965461993270308150027330995084250240541291691338601995136933484070632953336656576429062052934570964991344534193449820356165545812902237184716696230047489361329008740542627078071765708229241353063594570942340637096585801351103805934518261352825658819564798420621366726095191995877707408225837678151382439343022203932837626201291587173079089500514462301543135487598811029426908336145811061562372831920890391736139154340310674581762045372284653307695019093421452317989104317655300676742114249164651675984220129075778987247842258079039486567123877441578200750860623003953241632973789179899223950864178498741703525975807167711987183861413469399357345415041098434073507135258335268995098425102630400778851389649918470658152329052639710025085284729000994815556291145790344182725868580292102208366525852819904177736053037718058890677784794584005332997498878423814882270326994135191454953320225484863843985550639432563046494058397883408615389061163224152583382112287786146581073398730667384450743203008252188277465660915676422026540135060028830274931092713222329173362343645285126378052855476896266556735977683260664993373848312220739305467848895111087869020576395677099812271049941327338635656358876128068323602479322422017703580545774623039377477457400124325801723033391525752637575620962455165205225158669796805694555783150465271120918767430212805627440783858210387186244880353055126837650958053533783927369799923913776550732836521033932508032303397578417994827833260189401931244992453617183320583358980079065493386174251166489084235366462893009805415461753490816722165405733533738791115448247428007489973176338773807188846969339185464406015680931585665232987951662405777248354557994608394048981701843907327139670420465502505922462288871160530474841493370986595563808117452874318077180063001124151910057453915603892442043740961650299681587697238826967634974720750640595717005883413719183744160125380190350554787591334406178761665524429150264784752879437586394398775570499417657658782888911993832969634748063505103113937865330125955700826983745338429276393129092516845598712747014647898535992032046214284963456140853927248305176958994643252025162027268843485860022736988982300013469615924276561064317036122944831447660656318684370802165814540223383773404279704753440690838989697826601365663827094016302291646524877188794411261082606235340147725364762142418134355593807194189596673881143983259428763652162430703841216440018022293305633184704561548281080454670882685176657763513448459130238880364805109648477635589115384442000974990652350790657823066684912077337880643787873942642014222170088581872563713728879373459796564085937527516885819255066190521456934868484024374474341369327549979257852413796095179188934792769800373059090993620687327921303875484552828385307227645237327788357983469772166510895880814557044690668052682840527649609965802950358450942462538020021384151436224334771619117703692259600002300263359417181177812747216629003486044671351022915089164205488536993015998004566542406162445481576725024829544764538863137445860085348589795049355358083345462345409569115897542656814745205340926898424422563161714642916617666213487244066842019627979401211122376900820898810312195028114446302503963601517180722854979764717741465389399240214750767373886932872808425707558535349117604110465348029300413972280737299769309461126778006629933727906504893114335289615981711887375641393744862666690501713575308980817850522600832278525070054039516382398472215725220875841935543892463211765135333859798503590762234255692717926273704150390898131289249149489148259493440809958993004546451486154297450624331922122197302280777013471952548466571114758880589768492139433870976945424247749267843026340478814901756360184684384757222213819217802541259469150167895028151114236707498138377688242538193169247102800604907711423792614902426496561541212171905332011295346026238844455462597533153278844271892714444375659738903495190427274579501263934744462434003523225284270590125217859396048074742490558281203183187008939256166277683848036815508098889234816679639119552304392610014257151453376458346632509041580516484957445938310346910107568818524101010362312936434813159242708449412750252013016341029705466802399844402302157493376385797380361343030796969849626744475518034502544412720022044912042944385082114949927556707849583748639864616100035839837671762398855679183716167148829201761099426176406519851942845926826857465021045749725415038263907340154834811033673075006295800283414788060156048641004504129248776105297171262920193641326191229174676909870608420919172870616969042708678229332489426658042600844470600431950569698411671543850214120689294112595368543575528072619451874515300554335620769488613969025703970225745137758936605613552876874719897446702312320085476953492721795555363411040996360219698347085682859362377964914959817415966226801606838265634696413525900602290987720898415647575837632969212318462681683669280080271162493607538572439946613978925922542329485550321883272552408339313897033088688252767463679580083531927979258366453759964053555365462351459019567392557075852014164912627015112452016345809478101027112029873134475267191210853371258092723668044616383531275673539729001148173712536557495963065418074690907924787333033631482360451712781667870317358795732686198573314489493585608883796151836982943414639757899436550322324157328368683469328515703890435369630813290852893862278542239042397506095468934290072111558313884403642888370100960026559188623784349203705264172514854256358466099707840657645470004502640297868282946989599187171423847510267616416297325415297292504482106122513897327537773798662452461092574847907719894212355851064425779264695098319147908414165214042661038228213980009275593092150047101676432108416719381120305983976606020845918646588004768110206936194856561011516199506239341438376618042565997492125719582890092182633556650507073016275929148869451991609616219440590432903224409332388718655419043149888773285954803780624327407510489888759072574895665092133171315299118629584387523328474388635971027611886973759010279489520539487671860330137275897109156174896504490836135297373407283317731000611234650397942207089552683043599407228133252744547140249299356809143151626235861113932699384037548426043388782667099793994938730243784515842902432479937354635094305456532589372048229714320144132295740236174104455425797905119966917794938841130395220110755465887664402044444155321231162908842770024817960163504209807686542161833792454808178029089705603907678969449888585284769656276239621933711390884582478975707021267164072663964283258965015354791169847961159190729966919942099511631584779252926255922578933198235524909568653251205049364216290523223863517590596627696449744746736701137251541615897164295388860019546238493717099933145456639539605697017313819206206716259909154969832148149500946913430537660916341961521280720062309286569182650796524942636270043558561973702109700796161387812231608023867838645782530676568498402462796522169866376031697812352776666855474545076748734974563194490883671884160941846846223291208321103500148947901876507668152616178784204865944112871339869635036349143486490569325136931261088901022209247865786724243991458678043347769437106753949718604669551588320634184021735170219309953515155888445692619775925779498137175198607383876826211830908844058092617947037989760456118184073283414424778787095338950882646778942725267196827909347031502998132239825842027987401835263175702528774955272573252402346362048651061250723635778610705840153953018417435897195282073536457564891283086940678945931808768373799312569922999376033913381832424822973118547627635020362136371390627211498835143306562513155372056380295389293496599984771199640025471612169158268438550582722081657430161505000801360615710558405188577106273637748439112887770536621093160444508234720440429281838660181558588132229702179655763444093292221158905652739798683539118172925304014630142659082362027172378065612502813595027683637739259317420716413731048100399256855907053246614666951320050721269873036440060282875447539975771853882699316282432037498828845451790876341786338690571687029155490553271697938639076815603917487777413705790186895194967266843525848134354764992361272130809180634303490335885269260643377411225346415095014519458065498441710047661544506939492939540455769555061886914425766957937168458244104245542216557084473731818620651172017506759467663047181935941023271981202172855298306682302635811391657196927285174015313479903635153149837391417655822667681326081904497273614698400245062055256852264599215891533314825330248807837046625993556143988678966608760109093278710073797695937354377430688957533389504912814135727994438278833861227636524493510273429417886681718077180887861813332031287106515096771941269266538031538229943723822241666541504691449433637454294682066535595391505683201990642028143439464215135447083175020324599950019958334790061288922484186507153960854407546875892139712379325999213991441405795783328343695240854029295880684527636751389914774923145159104643740534444023735832381269833074337413885364214298116936828060775904536956924211033551816093333142428768407907120428364131054411202413612509193372022819591579540373612574578925647130309366912241029263947693943052343052226697188448425190694536741227321275408890909962893286431098970240504097471290888002870117422514022375579911689649605071584278377828525512869278552304618932276160381821673842330665999042125521697929516665295742168773310208589598068455596294526881870471751699862561635590942791261911454226116570689291082940559326254865433284069557019398914979777887515705390213778147460730151223291443050025631671643878931347044456967427561981143565120384133327304851967524327236209293586364750655123764433997470725393649601094828768910370160027573074744079477350261508212866974365642340177894556200803912575086712206369466825952220140626632402008416672247389035261624706164043417557403244179177406038298702990387415794612700851679121864205780751320076903595138243447951169068887785501762514184099558554519306168169625388778607763132477545014158148900278068060213826101197790466091365049003467262473998685426042263020793269552911574528130424150930136250450951053300309827005686528244253558042434659764684113082371352301315925532986213336918215838473952956064153842569594496759149651688174218770085721642256301061165332120532714800500277622262406304175416833062527922971843391915625174458402086026086682565110722674417152811871044967834140606994599742194768020544560170350897540021649009350490189001459336007888988062572047425121171965596745904037212441332311217339611924277762189290308322770649597361510987127887535547355844401342884492249578961073665347753771907092597529290219662309330844489130896953125086001367876400724060671840663032541508402594707947797077520155077335602029326677619770777343900481364463161300404647607374234304236965665726431585674508424940174125337281266584751595478638143264535987832262134153620804837376587841331235103482357297929644878473211707687769653841326631331941912002627232475248358410580554205079406799492055996145362078205639477389787325351682370464983382572270204019178189990641368835605895634859849224029863858339160062774656015716233804998359054130252124731665668567789203286651419902530026582805052316396528012579226929702259671959394608209287456214379110766549317689679491772016970768898878705809836470624911234862216808955554381555996781528294556032088280739642864076833626903013326234848239660861207519141219493689708715488163540316264537333133929305864840956915911775962374590479430405219643050386896881389599280143263351435357945040422622583788675140933380632462694236322908658107899175085030044637547698945345092336540284789024602186114656399254584994555421804552148006355688387135259315210630743733887015976415577237175707787390041833794955868253295920731668378518721947878828550724248956346986748514999944920229909597445113729223189033683590735951971953408853438565858279321250471825072062468354472233628672978906586286633020508772782500824492926474256024679765629136315526445193472964950793612468386024072627892310007137308988611383519283149537533759875280984312289101349413193878805788849219297963733114576365579413342444946264402868547693604226993277821882012147027463518062077856086020877494373676424217585598342818478471799250460345498523623270002881574368058961169458984809266698966536147101447231835940002180827590563040817012523346265645082975563303294659224512771633731083020771476974426317909897942460370133051672609702175878740732792144366085933864540347651485634405418709309233135996516908027559972686289492629267696516481883049006547084597296018708286567417581816252924636387396301474072859258433619337501832061095913313197923039536694514920577242283308174895881514996113898486317890731729198037031328443209782670837732199894170434712066918530148638762924523486985536069876843819971997294806454881526613751637159025597904060135199324685699597752554970621525029800099664629353562413520783944700610926921835245379400684879900370773483841980127861007404144358378291028641968863351453442801854257866757897330338574389104686072218912434890754512300853138619064219349213732114776536599781324478845648729455207219297233943768760461536226947091200158320848200140698922505793805313625447889708751083849197122180627245354020321482429392076902272450162678978824070087699447906870284737364476210642455411324389663558623149130355289040614778978827188558983797272263727190009912967154399393471168863295743816217437501385158479997810942783607978777001625274144378348594418634553475285368117622075400024323458253437711659501518877497528257426609659615847219745554985569439776501411551285385207297451000818138105410303073643518650540581429643804914054083491216762482044312133036121420987100877930370658389264405784166518489062455456907395873288868156488079651425987142633554238580537449617925612417584024011020929400243579369205763132296807439611582786867157823393126190564819893569211878325128304055240665773253618304370172574683417499151229059867474077620803895105324354620362716229813566668677191672465514336912247073965926085461546601663332122151356114078796236417904125516017683433015426842889274579328847577665767258037193236269163314143719427205293019301720987412036523259904852667622993593587231009351747987485583475246707280311548305998758242211052998806627516342652846828654638758750870306975899288768576310059692980756065900419517961012055496356802253195653123530962083690337996200602517979176273192722075421787137772253953091626434126573382685261959781854495272189130573416945067548244665996709945872108166704173847237937678636684717355822321966481081410670516964532317288531050650145273258589530571901444072364625766944086223212824784647483760489462186632826141098054872067172355031797498458147286093721693087143750163754575251702010181634929844900200179627330253243833264160652483084180179653164158052173466728515699216788211735788084647741045228663882557509024704154845504486738329299812697603262327800704382579331573525218852073561814706883346248640393388705535463591563708287045524897518384890055112054997944140845751078969606806039215836926994345747577480956667849515745767297074606339918912865751763894602609365382294633264740904906578130656076251563391971445061405638991362789735184050545324669955421321883913976152685295273176505275029737167333255023509901802882175379069315471585857346248309960076144144104366908685742625890732719425617097730361603520845812169751870689808561809763142215149933869670185518621042048714893253496890446238571530585029286220273008269315729667442240635864611338323588152475444659932007032797714948978055574962034239880628588509754939500213206404127496858797590251300451777011981577855085401175138666851115714539598216456910874479918596194320729478210976623773390058030697543399631483969038494401240848991375090074264365021240946428832286838398379549817451538989727884546138600063895267322539629451353417116526684504841274828833193702192101630727722747939645885150691021238059427132592252439721884064478451449684041626497682769500143019441746634445920864461240509105458109916304516750435532907281569131960580413997238437142103270461701470391528405309875473627501107256962674929604134253774049572420958501389754644823093108896765297043342644491573564184154784010915152049302089479140324292687475275151556552803563867359341443327461953100726156907252972956663594166430118613340235059698342478024948030385927285345382614660914504357334705243086983072536300666713293458404899833612771636934119078832551484508943819292148662314796502506316962824383213212122480962615636674275078524123554255084798423772516405458211635464836119798049069887038149587297729990335895138680910034961725121962484009954674006229075066142023501390796762152872605916076176132756262596844958210031768875631657454162416279253436835610737463135969543031409711468430226343174457994374318629897892197788211085901837304588806717693102350624941124334357445599588780081857151970049724154499973135122015003757567793211178397772555945862092487611412278572007235211553055484455813960280352556111082638053639273870687921259201302326351713510778050228220794004624664291357073970891477001628719371938453736908916878747176812697004871737040289660769413314639006589368171457941704630482775657226164028571121805781522508425779812333881358657035540533502265115184390025081105614144745384762758172449483335380084209890699702352640017988426539755323918189244504766044103539675963138418786469006843539542410396590333879863332467939919756076013068902079490117252083634064356268884772762289380664503238925371119256957650533875031734195405431187537500163559440226512051391225776891706050041337214494319275597865048426136583806372519199322605904562943068829064319767589716363627334557185665218210420871294946979818701317373799026745869946618060547118397147231260644876740035038703990763266845088471063576090920347693387887532119245163143821478277312959987786332709064526511441842376261143693530371090096665382261918008558560435583759693189962221596646800305943502421059280085877744687641226561025947741322928709854013958999926425092000207325886560083585480065005688314565917192704078303996205767720727275155230735367054450393805909045854443606443551456047804911607280119389030956073054806472465222391763392051204475278004129105962968481581898524446356143761173793539954828362739938922155370954993231370446020769470637264716942872209284909648995600247437105838248243023197985253768999157068104478011899427289179883312062109400020455320273944163713755413157008704805084014163348059554977748310489651232741917097579011012020227764207790413261486148696590459795892261415288504930730568743015835532325636924455701499520258470249238069202965502823855303641903068080781909260629887111655090768018089733223719434222495653367761357033868798956686934999819844590589787241195602407877057340950390097596225823570073827302394004231857845752686602440850244469091011133312218005050510480979784596024650454623153990943829012902482491995008176424090407519146502391214444802065650812036319997705589349669000038288336525071926104804804821576719236583278715276745345581608480711906419339849705511862537032318617799146420768025223940431847410811454214507034597431789348361937057068350556885146034379741022642427642142613024666638835160631346516837435362310790718473774402477289696257885587216553998652430402087333010415891647860550441471324149800027745130304721425850370155985522718679088646552678585465057374999385407583814007905129348504955726844360306923333415064394196685650059729202350616719714947721841957055858640886138654852486911553169163418136377954659367132882950545817979475654079681157882322297954020658527595494473985105402375560138546338463066689785599310328940171443212877126558181869883825069012768177945416484664346893988573875701881149908745432883074181134095027743270895896470686766927094642607554457841022762143336790801026701103919014255433031877952969689205469757436242826115411652484627706293204904238579845580321811395904858851692673373734465929857527862803552055503232351178709535609307401296129981951170285037121517620603711266385831797309461965900203259347155565971370481155816393545083978925434494526554687435344513342314618545047669701937073645400403102991110201203096210973204273695882618032880754467504868556344722916885294382381658373543363462991496696652572510415028379936185626040911248979133338719549644729976723039239934208976018226737955818300267581471568427675028129072265760033680783791590670729701030463974687677971818709137185049002621286413554101574366361124431074913943261799564093685332183883419516488171922004361492395141194901868879170553092735038084706097207820477774492906803493949062247925584071238612554402584884132948013802053654759819849219259947639934268671804290870602094108139234579772955164626525019701791494261058473371744505056181741687142517717312065624491483946008796990899213967288587973549502674518425605724276001863580837348210301006936192994743083084565115164682256585010584164372249435395477517449098448821179926550631604204014574206607754913491767741445741737509406794467785419838772438200072749120677750758971071649615715246455718915833475917537361832743768682430071616504250935719324325790828404688736882127928986094030012872216045826863330733333141546820566808456098547706208610667902234445539968365503492005034340565823875194848122285530562283429392733925464435366297178766404667940268944244292844624084592433070455306640390501057580362966736145911981412811911302440671025409317301674606865784067741315216319363299466714183528059127924308412821684677603316153657873496998052315975052824090758239030824188087269777314290119154540495688840752156561360541898975887906477650470063827033046711899389745077377460320676073154887145828368699800531062937440042545554424983905227900551339868581204280790413468339695981037802589901518881752225644332462016011584135958330537588292924165068720390367328357343028027354588057620153652197847275140749071310950261483557078030992226501684485729288562192854432399313348212254786741809078186234991008199462861158941242495378618747143736120166118078261839535744036190225834013561062470565105842829841976972896341219169397864347471273019979777620728558357149729406032606487221211369184044618519160327121065532839716772370263160941391549007730293577469781929264676084095387637037135236062094761676654601268421637266743353779758451654895056328900206045739266075985613462336603816287264833296210819046195343973182682679710779926316510703807752351802148396534626375017296056789455837090396423731517506015651010629267897050285906490579600708859555199802526404906788517948212299974804699080316313932023782728088955786750162138875831745481877395868362730078002060013258246818687442876416325599688959366591456179394104407518956078762351400640136599701759526281099994167749808564688744797848761847352209891700935871188703529280719221255115498979976150288091531602235826755743766827497052863013928591597254713252704967874118416532928466339690002043634372409860467749036871632246460789186775265251609630247112301175249832466968148489240963445684506140650531311529937963362183871970415045628612107716236384460430133038586948393767656565750834904919047120502621314896927473574184088355578599631265819812236014071634089611081586739116767527526516220808786410044568688385478276043144584984899354591000436561121951178667683303333500457013501952659089893156295868131303003453618282148183618093026570890706104112306116564723598332769829115076333310070615552488003867858760850328138945044764002092670627667165201769482518472456369478560945190361089856161194742799027141537246421690735898909357775614945812872990959114068941188068144601627969915578274251565608518702527175895968789673392645080488894931838585905085801501218338187502608357711642305620855083967316047333269390490685248230354836345237715219345715421614207040113206795976623724383350979127235387018280073920385997376073507323266182072878035788336528757363236638776347796164473351633544102953131665091520912025653135762574355645693430148658910484565304434994488593788844049199682352062957947863646100065543209160931296164807712833309597688942500408995081048076601430000719343124274760792402313931458463749118602507301477205622956330595967630518081791991405332386649150241673031524414016019137254930351653216556105603701127649134440304730834047572206466257997281194104433649622474562571180504619585520093846427508562773111934214430879644146870481958382421135924372209713086216062782180899466405286724757014544429399114907671797931765103873704771228552304367650783613999775542633786477595274601844539833496023172295773021918127773515678925031680786050627210443190360538410895031833227730409943802497876479794863786286189337124308511066793001468944174001475804750617946312929573377751861863890500153413871297505321710944127452250765091484269707778065880566725159313391425837456555587123918609746072592362987960957062211596645099351802048379314743930067694517036787889015095651774379741770988370403208978265684133297480554068309970031662699499919837740004263596448601888170876215164397012990857596797275050588707892173383391732694328137875570817662335338478458903620361291761089458276573098649312430619327755365325810590746262564255676945402076278835571817227707621975394188655928696262951134026213384335322446888395922885872833864326262252316208828726229324078158918938831146614689998896390346445664094395374040432560978834756784727288019439989514516837608393150986775695730798191149832079156882630743709414456671942912145980767185297935876493607969366531339902415054834670874121831316941031018392439189728906246788506849906297847053267877875118726832060685421043711146907997014484052525397164299677843163289227257566315943062448120960175284939950806508419316083176779049712844849743061624315999497518061003640674894430774324530350301597861790911457646082768305647769273713509185711049139420746138093093455211537400468206722516749633596827513218468439309216918554729029991806042852481889489613005007886553610292354913298779679648338553778902083295045970436872142299766534227239152939093431152128361091766848788164046428368634356540484684751087028763171595235470730706694860876717147166045728121834806966644136632594064187100099370204221673500760748511881461629717597393596745760130788572960776973872610498963114056267787600571376242843808267514523683361937964171371393150925070403673886845338631118189139629355817537482308786517986727278977267837445452243213875519801435399477044940990009419949875030427413844432685357857217767143870883770854795841858721681175799044070799799703009076482824643335378096239418198703509949215831012196091360036534823993486437577323413977190369652391589131904272200302407611712786680131370378418860472271930686162560751679556329860082470061555180115757266559578594588688554318958916904105384493485148316307688260053082998429641136882111006804214370914315332840251194976350556938187164234772108559451068592039262512981921489232677618185748367796350432484071304151892183359627874307785293137556748568565026882077008306035148906697418541290720934451961254930199497346151579301404495258660079666482966963760762605085946476180063209853311761590505520585688902140326574902640140135573806601906113783770521114041277204733120505641461343191457090693192474003973400327020437182668087399495935581454869768042598515275222044207418109537626086776311679550131938167521730020484366400987728158742545999158922871098377592477148547772273486253578481292920572350740637533888227494563388012807693136128491083593283350065903736782692477714372320875798954433842432868353286742571274282906940533906822204210792348785083928945869898436930707224692384740099310945708352882106624563279107755962785814138385032177269791655827577325982762519848213358002658368858586020768344690328868498157855812638796574937322627938530649029276883679907733070597868655154125003920876565755351925034727214557326740559749345773713340157163828883193919130075288224252345405877256256506308037470572945909579264798140872662642906251264023955397758195868403268326164693028205774682840399362640448992151416450215694759396419205425278074861525954033434439294491148421997206277298294409603793529026029407942941172374730273724314353717332321550258780887413342415878724866499800595356580414837571472147954293390215064781687376891933240364333640222574106604832078603321888693978954350655770764463772414752274008508545683750492257492371603162825759676113719384676829608120368921166501519826652313472776811521868215472711527688042946203045139538053874993431136605102905680737925702217081479123156907222662294813573401608874307473327494140387698694380660327106159889184937356773059042933724201408960545142071633581579942485510417632761831644424512081511510809425519636055474109695680378805927037518051411818254505766109237603147116273820916408928565882546189718885576371670770109838146115105438416828451192545982281026259607595759481344037214358499464623797985448626370281911485206911298086719156815560095327671543360828707954931058475382544998220039052449102427118838469249470361051325043420080819300133752092757991921671431243429626196486175296625583383629186664466149037647761908193482198509670636872290332934520609122783417165273932165990116304829806006061876448131887295269614030541612371569946923197184896800239830211360511184395008601374155927136918659791275455284373449082849016206275984645801281146147978170965506272173795156771294112014600244839766430775779093076906435912804669957284698639660322273887233430606729252705069145027735669874394715617631539987220956436616203149259810102746301306662611281138759580039822895992385616850039551771880231702575799339252715009869603427577045684776693692974971835275828380115990546235008529719501711965888113231757304944138171944136415857755286639432997860189304647446053570527165707039203528047515715613200674540934610708916063717249924706699957177621307483938577485448894758357222003034105637797691293581638145889427439224228693920941346039016145700519250497962292974893659448973657277236625196627027170625368899484426499611314558474388212263720603030040861092781920170657807433003065847691942465315349236162923028097016484203274852871742218253755459406348914667565145081149506611830841992627132527255827370283028181579834554792356250461539095094738610890262669371793137706803631501572041766767749215991924253380028553594860525719907357738158054133972572344624936004673762574728973472660954896151325405088148504177728734428187131468511124598601824492780249331753136641179547648078812738496218499265765932549373827307660156087079749196519036057196888315122274711232406983854789917808252241831798067360455250829377321000880075974474696354637149452188409757554868931181296218901542698673290324054633126829246197552794681780085269317166118399784402079497098546963951899766171568411929929280581569470460985430917924270128175553434882161340109855588151495469945266063308214170322009800990244049623609252971954267197470754540698362421267219756828613417391119220663766967921073117667727187366412626641952255041536919131812978748966598701469357256246574644012121042016858800309019375727436960953593255322203271546208372663334322014913398162075908314076217444656436311727779873800070938019365430499212831447593142750101944748517570487347901362214027592959505511363440663802891418910169422960009552369728610092918399162805844407255495095039212054123151617413412519303184472773813316363717647181739259931430289591272749494249714948956037486260322102816493143193769542710118346921674694829530395960844316335042037815476811565550983535127649352877132955006115734363054237504369405940107323762539767672159840907732733868775217142757314320035459475818866504757559669780918925048179040703707993541897760400395486804943436641211857037865634848354377462150466531306117313405192042920768893824930696248571599357786924081049362729161087952700127393421258990747202082554065923443605457495986731886336252324227964665248826934925675530249579601104621131896705504147877748579308766522519066535855481846017960178479631768097033870474935788730058188103714338027212415100580835078221482346609762094913022031341978844564832507750733603958172866426292942655291148428674576570333101363495010070431926209342705507616798150352658796761909402094500504816474433154152549895790130180508139295182373754487838326470613430856027961221623487279359871878648174696324150700270310155497715740612616098298133210568904161104995384358983392145650396796303501172602633600797084923057187182699380024448663428207712420854310881362575516334357293018870083423676644700893808337024484380111532876735784635991197461744989859639594528370446040139476483283936969176749106878905870290517747686432582004618327737868996615208524844511140958966267003536062457133186466869380530562980486466800893810538992709848715413919741819698643246844284956918908062579438686752730641842268247129228145078925010700179546940095488688741098399994081751118075760819030084382582100037047008206885937831188821380279313778227073231238600758873304339006062048417144192598679265632602870796308114278584544690814104787868410567744953431780579244614378022965049409480763107008365623550919875733480165016299959995856554627912991323156748344907439356429815448539740068800466957102177576061651872809833824957066537673535973090538124404538447001100736147035512346389607900194221375802084372131094281093810497889410601896059221794262832858430894336377957727202538434336608406303374255140737051776198107230092299015343105992970353749401344408616569831167078916540832593754916627038688602251393698899590298088900830930901704271498643104654273565442553133450550266691775523144351846717050559429947705303757499193938427554221524366941120210290557466220371923472841773224265864121311074493067807873710181550823261430820832501025733822909873403407694117367712532441973237048122259129317441005544018431435124281939820557796958452547952867087569187778703965921851617215410424681334170905774747922609022297432267396785072772236689209773972265237998069517639984348617239368485331074998127243091512744733249371319746003844987500003817835311760963561952094629392607632897683490609833049836322759836234286329943380276911666747808647131379616174093966065961810465574725712392464843112840224827688679692513686455293001426200337321050392005944473253873570684207276540711298437516204048391158629276495959188709323742296847974449899934047009735975729700723833332226369037475589866600288319765104904232127918829107015288355476067267261067445840371739692957412362993444238560750875974472579785681064020586000834999241639382978427443530835280382423233013031803818013404436860608889560647919878004448254783910717555360266745633027899700827088342003563448377063767977404127477275953435688299690324646323125707630931838616968329467432541333624880587997953446493600081936206290788387572934278801639275097777976211472751658657636868706134073051838521541579205058470226649417665090833282460228929027150568779274110104363336842244787605276825336985249260411882525339389719533389266816906251135542851741373556006739306735891690908169574979770595837029405353533539089649232498595092038230074579017278259054035463351029997718366616035819366932223922395625386649117155267926516077255592101009691324135782837044380934435188670492122195151646630964335097809144185146005567409524833974655513179570006143956119761850458533902997741044498497523812218497311502118887718757518645642733735754786983507146543992020302701829466220230948579861176438498646213532672514478072923761568296639626672778318920889428611577915559470862553321142773263928890089495592732639709941451358929697012995737166052529390353122644804692316542440918184330895765507713396602718260035397175641987571385853058805708134442809943229033126017290485894666979631580455691755623167683976353621981022977732619185226827678349810619557312265707141374490738554734749381774183074835934009055923840395441374190306212652699138372820463642880279194941735388203549602188680132930729839991376535935960275379189100795998855360766907447814332150097511661561089746256904365283616530236728200947625397186555861948203831192326243621591981187642054774040635152053668534958118915086845884504513451584673944379481333398348992405904363652340752930319413364574624279326401169622529330478536285316487302773288038307843941531317545768734460983795638978660821933589332158250944896213464298213096981346619259316168068653445000443276583341127716225306138845833862796440592400506316609087731596026524208702920843125518562618428307658856956162990603887644817294016889295111018619810410653859762147574901649818666880274243179567085141371589997328661288337011185260964290094247380509860545448346702752128108524820868106152715973492632552296763736988382772466312782243826047484172889616961634209012636416342215778116898511318609714965502022640968645600627320569425422196787015450692565604134187641080447620093085772831421541996723887208990116285822783759295833568496901916591706925010071963825928520234765535952351730227164875703372057215342816143975284040622541473506706106773328435027906947853567500880520477293453878172474132761930710402979236038212560709950013001582696171897722603616655429575555300845637785840312150909821771667086775023408419203444953641488528181619854270234677465577545640916808962594702247176159198888087536842810825682260690727606362671716060107145457363131556515358191536253548249517244538929128276957272758554956471315579978849370621694158897101129269203647074272914855301066402405868807163452881572943758180122541483511030187037063846955746058901081430854489429684425173354349164925478587986440410384923780321550774775798907239829718491719184359206557085541627446737073526511105037009659684880621310306759000231674171698949391412374223531480942478379095203316139154294358686779547570575205871195547607643146128567751950076462198817389928334039831488494517690308916333298509022620043716397382586470108238503384532860415580106235019689133315620709521510592245178924621268810237958641167998160234906914697303479986952465602530936214932382609813334066781217965783930121639838218930331534775598693621700280268243264046632929604234063345743808328910618436201987952447801532890291792115698268495039005865520083506563791867874673320900916113363679179295218853876382476230698097196333380595086569036041008620252232723424552660083599385654345297616240957707595364240994571828838812082290096990515484331316507673753957165114035715921490621204984189893050381596460896609918748495241464562636485201425236065359883430490029998550534070725348808703756802419617477298340976811859913540720382312171946174573578687076805626749276619042423518457060245688895345173400338164641400999293554887683960069165957632900151320267768573086585031444018267732781777637892845669296457181163396679291543966385017001086521374371870603964894521202672563023787343121914229404862031222751799519149960000346527563654626832667483117970398787945412479168033781393707910072238759678700353778683664774168290907374324766288286459881068813540025979260891871604458742939425848321755245949033270101468503872682297340384626859977467858461599221264441986982108176664580964342641410036733820246627892127047539024933544013284702463481916979995794290245928815725677672359660359196237633362335181267969452552446954967797130847431595603489291372526763932724748955569901838261911672695549910541084955109680976542797280738965612789469432358951291277267341260972769730366810078199256199490267458461401372788613491972281841339110848793876073311945109830691322501520278900017062826286253517453120562849749656439490805066929280591045457249669197203393135275297114245645367908197532862242826274991994299201925086507083121979277932446456027174051179152044217319185981550151489233270294046910353350547494727551025535643923261999334818635606230307439424673888895080151281852070160831726816359773942867757411821448573490394671016580773709648063151964228640246734182061949243238049772720929444948426232006843569411242438940659851110709491940436895957661552246935728922088103776446274643330278344903133902040581086429162899903280285406583999843508049611156837999940948643107161065794793519717056781020623441200895744529148141950002682833685549879664752658992224564907995930722319687667024560337671305526884014660124010392663595736129271972363115610210019626316955922938481785090968916034303964282602290291678544924763501691351059109326920717461165120344027562234143175802353811076470368800274417083512124737499899069419193526083685223166852613185912468493209928392422327820685198334933145152743015647069415793772539420841526611061736864715531909368648789418556068180503427658577496476311450172092841432823292140342429860069088726226833371983734253953033801761451597468752734807848493661329495360875882981176581049437635498708920744122215367221330471846027984009249960737436310206953435565414554386174159324561707933263938944583353547396831186333008843757464928120430750840425742992966956474788408414307750837535129428040903298214944128790689339937588558641984010635230632786807026773685458318860904557224874156134754948929120365040214770782783807907377224049634791274316652977058653529636516938086039714840309379917476837687874547472206274093456025850062314799360183072701456762050436127390460032201714402503244358919165216607780631539075082287204150896956312424051941259939343371564949235767135622789911225468440059663928363421432337348040732256467075070176549421221647673027072460870643446290709715891308487737235712712450417242406236509717996265255241963961276466308811257532457031684188911161257581784671744350686007754947514059632160802411088356167098081799350521636565316719267828518818907921662815656245382707902655680982829372973265212444701238643554631713718047548719462922906365798706139394510755405503912032837452997504507090506794658715477020599486696876106230521036499999580243108432615893319610067977193021420159662235370623968332333645267282696526583590755667918415555659411714492613610655387549507021119546893229099295264287891322049270333937634305703375167832738282415981571697275426612248570742596488083392994448592731960150274576964173477418176536070156310864357581663016615600618258356255312729693030630046753626297126516460142868295639415620091420219244179509067056323937081387538798585762438819920777108424936562940077337379021387235348460347278098693686399523661106729795483494066953402626979446549925784685996504265335720010978912224519030846156083363835626007846051983004234720272338450640029568262896422196080806707384266030160057093787176024661101211355792308988327748533080391558466449993114835302489808239395942519640351407383419642138096919120789863519644381583889786848384344415633569561803106311864208494170540586341014318899325019991492738625221760603208555382685714588423876226895766855111917707947191123504742425851807947556773537740070720110662905815692567914764264343099154804978780789457157775864774935044528597341419566870931309245634490289520302312625072764168354268385693475054147456348031553890882736589393779086454208840468861333190643142884795945638145154715287870030368273966678587758924926700163579784340230370227508138095645655911171909676820898167992144009311641132712864762027126844977617414805040588038307892386270745657050602368001894155553648115133655898409208258273344792263801553365237602084472970454069389721127570306797308646353612964665397157116250125775157985368306771156303122082360234422615707291212478804844387286985080684385712812881572759822732398362825131710825515188016441492246502325777031664645834747459277896496747096743355344615722801984648463698347219746059542959824041270156019043059892937294484645265554403318017194581992903298612531365387673379996023155294532549270122797858627764920865721442772173101065776865668051206129822244242187657213118938737752214194259420243584990950383718108048042691341820225440296398529604998935472664326183366077179423218267590361407559360798417927265458691949346052431221715750544616957354231033400500914308496030294331507512895664652647421734816006549303176606449555532002443585296098536213266543492542862676341901280327008184950414183494251968705634202902512549625420950687960043054077973881487756387282971215142647282900220018906854692104505028091908430105913339195902218551997456671366529802152686532162958761240832097859249618342501968400955228634926038981648326262657336945817315786357178921833957685496920458688411542097390570002740818401697663069813060487718771944498172061861597153627927527367359676252469209212192361999741113394161692086077657255788706474629718377350204117948192257374155810190326815337106893781667857707467050226438394562246098660085021122579154280156979526962773985025695875040453831978065667131763530255916955204827652988055386664414172515899993248520694038546727473683122109249196915333493514358356674896341273892096523135656161708139969306893878821950673314281609529756411663834578524622150505455243621647662704889574169804160238350465070432734324929035008818638268384274477098873975736010321189014552439397391284361931354785549871547837734745513756693684505344326946501466774380833124420134675559055224179468882914857014902649483310977081841413950158430847096358045331777455028084731732349722904471270343688074186831707341922635870407638929695982073994671575966008504050497767860167162203203272612934173298378172607616219685938541060430407285190915011061966860909812218931772874723380783493823682585263727809648111696856465446577806322093460026564098132945367884761313261158624674414058851483018294461076089357229611296906065214561749745937948123703995711620780376050624654191650628584158739996793498487650645523851174887569121517630201192335006109986637402521442533548965895836398716707844414278150575642331341514081228967750662242704499843619909823676296958021257551438463759885169392367495338517268418473518903121032779856222847199055659208063915422285417549401829266893792164046145525353192544109834829462146612954568825815709951123139967439529534920212471116765901656726325276637995762946535185242843596023916523604473164807874796670374317221026909280474579247550235321929165270081851768469181180340014233093095764299429913041508910633429760646776156194957854462325485781965976801691488041633804533709724998236408185349143028259000806329050363532521512967279260050074366189741416073256249642047237084575006296359189384600420633753788018181726341948673342869463898134334897639221958392331829311682173795584956495456922038774360800401919284078676336514517837066208434265199795139770615447028714390971891832426504342274452569379585066201382768234386264067236234754437710332136154999810981584647113874196541538308652045193118012752928187680729352365489529734048579147981780870927591139348325273023112331277551299562296890612814723599369825665031472649933488966685996744610925477772623480782641060699217068603290402054207990686759027531450668863768701411700665189061835284746976147211639752356886358270498311346273618688757373182830881786554910652690246863562685095484726852253083813569904506713807398663010909558922615024302716481164012110264519608827029124725777905617899166792394165693389690979512243933311524144640814406226570828821605498536440539376115717279170621543399163280591643901127881252843584279671136861532300917289064078449755276617262760656529000293145193825305965271235964568473370508192960685826692309300451544412326997376200708476105208784195326254858487621708118002181995557130013988223542853015007468110204184475875409754683849354917017230800878666932294965696849767952885128366745795492248228072743111083247578335776903971786330443836923285684287321208867198226181987782106999211264156109769657832629660620325951198113857828736110637817601325730030095165699624996005820389626298638769718869063498589977362155739120841181425232320609439380957635049237217127683746277164988495499788710347439089224843656714754578209616317262664556870841846961909753285739631511852826200525606061598874064162872656204776211191401061377003136197799164090954690531099269942451795762072695779969931934985157781979982028692433640350664924467939527879009004986710186589991784219953237304882497566312810630722718390108138543357733305052297066071218205086908996395843272716767893851748842442351945648165326622666473676862451963160680176660406177226581201137388165597798146478842571951580262807991278953789155766483469951874843891497457417472355279595162538297096637645585567464484480037831058370206037772721887077462682434893626530182588666520268088244032740514834135046284269967356703423082726701857223480122701599737307814727447035927278710158836778835370187015169757056768488488002372348893181771757759095743621460644576775678172670871421887296613721826548582285188766891187584506811360059811305854805496240775981442910375862555949614496617409095998004038499284068958742178627828317523213088438937509342983101032637252195046583297136216356085133919651073311439479152020404381040265764018990200924652969990698118221013202587434217872433446970547220593653659566797507156776957109930606556330516877957454067185424386392658126222093727340852031114547565151563557611443956751303239635856341183102254584561494239616928113141787134724950013830437696086773651375512764932408118789340588081390735561491685345186892237379247780720244407542961296881351747527019172213405298634932909902958170846214407467699181853174930444668518588797219272345370570584038153078151719432604399220972005274374599547307713456413741644444748122847050734016165423477277505638718695359503203018835581512888766494134925207189105378689798166162738936593467449523192524900301201214973649483556366970212329992324017136162251051898576433508782736060660940409950222980461017210430113412020284033762504592162699609789234258537105804241835060977209497325136594510757404881592887592666788449000560866211596128183528746945115311125201173906378131049657341338613760174837109022697413853076736815445142588004928795257251602003822628618359701659583971644941146690566280352762931127503413123339018771586528374349951108337397692019807036340381886763097645392711844223933081250183353155186647682409353064548437653269614369839158236675331922172637791930853401337202419357089119009441431712082790478595776987675729502047236385107251703974113744692923866873065167492454894947680837374009320477005990324304484416113327298706792923116400102564243172319440813839074023162132314190146672395954602686273191318388328837733422186662011946995867327551826664577663294526039480070610089981819061527504350276349037322261214464600095890542781759032851363064242520265115551927797741999429313386382423085167623135869318283193754631498700530390746723326096062151553016257522401598494610849473697757235799942367744160814038211947668350803002319895564743158597315645227635809748583568678790066699760074383993551975051901938309667157701721573377197390008063015483143161733785835369203218755119051119889320159313106052401253664903645121546948924363105682574616817614509650513744241572363867312962943529531728248641825666750403200226012933538031667400404543365882040246581308327657425999401496480416372239593666575430300740196092783692846049824402898124718340754461936065247276865898982236589254206688736673574516900983360504780290461208245295575969884298936753413907360617744499322816555924102136189175730772835445573853360099631855422701462513783472719212313406390961678243528833015158875044825480694418761653279293818890818026337544403507404751913954740106971158940642123374438485949231336862467340418069997474800664403525815831536144483315990838123913488821894578319619053977568523725073459211393832385402591925090781872800221423392416926227758336676223324327755655926564896364626100643930059082933476936635443316010242164966898533831487897272493457617128505762978547333988874933047810802482917202085386931164989899493683869704440627086044174342232648412740041273739120438136734394188749247892411623725405287441924247071229580068239231951232965330295657222356194924497398522573339096179592185530804242921785601358229751209096390693437696664091625373785101820704542517822274334570238136980873219066655876147519093164082417234792429665507695407223535669381991090679711669142678646487832115592759752365474601609399782200851598871488833702455408967256724506470131283289736181766095274996584975924120578483394602139621438315712203758976870232199788686348827475464510326223588406770292033775990653605679967402212642510818865930669994814962699580692559900624543207810255658467689145755021874370374504478244839170078400820582851334832739735814463744081877477207856110018694985160665038583841834377221587595999229206970099016129525203231514551476525260908914074613892556228707304391346948582260489590215104080399065921272914554756856499491971126992473813975445502667581232105432983461258876466447317560313102757757385999185232857948993966512688426269089753144007421189916354987273678104045453419541096527951856931898475500205350286751438954394972518511366507620244949706371413858542734381376454132238673898101717919046085466652357309219551560037833304754710029326498835534201041051573447677222649683109053161080091437345256008579034123195186443814481762849784965723283797851821959372612952622778427571731772197367659328882365257807727658561162621829211914008520553784861757764312634364886325995310039009494521472808834276029957869632882761209528314170565600489642525215620216640291033049522895423356574267473116789469255502891582621937657019970066667741432228024180849790697502531881832248919034637500504834418787231590657391771938470804096365219145126703902248364117085887312900537568214688076959489517495988481294118343768883136005840567890575811745501288970741286782456618468343226491261348944224327448581342436672459025298656939034441349455105848927600737836365339102772558758210036318581590642905278992726404674524912797435697735390058352153549441863835970609941532282354679358891506611682864310344406931925739566907021452489533201087728764082502661512637189958821657538245828758430597548121066011454933725378493925475924300338237652506694886073196006253068535483736765724092774828560549848050126081047914343336216023247457896769621380553160098027428026449161444338234250902691627168994616075841645817925883626635656000215290283487338236499591234566409466375554434704906950533735589866796790532240537792363851221794590675915785829389471780130404362643346514819276738706750398195566493439322337118048708701102901207698577323243101562959598339261569100942989638679654039468301903941009272076105142677315754822877519546717772010149596301393357257734092263872968612221861613194743304054602519507747322331038380924595527494989894431464745100634572738979530791094116424195894417632835729752094956173294163892037490497426295687921537913546199209078102700187822039789949943486545762462866369695258904154314476523500029406521840602749602674023527561487541147945591355779690785366302339407943216433152998650070320532238309885564315827146323298236126720622741668133102119712763846634809849580527622773320385181133450761481059393607978726139297867763742875380933470266002165786723158943576290185283466557885109936526747906079450474301112040059529041508766777922547476447368168951999958727072395615933904496166800527525781910424955779498293030288923714517523450165910140135485574328552795859757465720251402226334217784400291190424099560510976139899257862080845788813293615487986969448743292385461198348991363120954362868889651494050998634672018270764685123763769213444488242717763635005533313179310206066798048887755057403580694079589535510091274536765666738764213601297112303881125022767924195527429653218172740399239427469551531908275318776999532438835276163714119719228614692897014427520781991492174836005392567583962867753114046153973814943852076884650677592054746594611651998259386100785247304988985988678918895546050207147977997520912265255844274402567471351220723636081675451130465826665184349007102017173771752207471459474237571179387911438678388027000384921250890735305776052192537285831606057191200602830431282731355691012600455054529934357733548586120963177704701609796984458092356402148496335997487911000476167523260876671196207767712554797932782899283608293748443768959130295196772236241286521124852740623799298191911123900923365853401812032444911547137372958514059205044049818940316511415713011378447320001340246566348388872966850216164620048349898123390498540141139124440734910719556958255841523714480119889454412987699414643626195655758410347065728349900938982213454130981619894406229479251750086475520503953146042754545392014611747006536654049559968833241243539379905157266307999107096683788697295483066766228703945586441367383131010689739606021093913778166932760057567049865213924550745954439083097261564403022182555111905186048382350948076233957169966654230091516257948281944443054686373542544311861049952517567954804347034929239196003133467398857097658531021050339769890475723661064619231162912517867030842518114617295949806001801482716416436198944473506489238441947660495781004867885320656321635064573474867261742605265383092086003694069542841137031482728413965336824603505155252892272239939263890857348657709438412193693193125127324888027697467330187892081983288386975956171407497183032914427955090097350957832355657297992360240676847053225533827381024076735140433315826161731524314097139491744619832002182299086217619189922858863645171205459591995390536229226511400198150485838822541376022907577299388174755763629575912148293882184901437138439521101417013391150390475818054129247549003932382597041156404753887384662356237354014435328698004193943243719571962318410545240632220920833832579343416429935987148241418615148775465397499042011417032803430151148363791638435795420052975335547831089377827813089666260833621870834218162070809397228603065650353002058800976210002189290392443006028823740460767505444216007726207780832799318265358811276565900233113699215959490625889039567694807307718360834634364356857377999049471817673944967904001622970124489537437333561009483741603515251922420381324962695172564814288522968884098470460927665986385030308116507018023931375812351745162356527976602341758473990747422732594343166238418918488943561206702307197982389672044790032727693580540649577519224889098438850019932681754247081469686221382238892143511880796701523531509390249578594246157695015130766286643335330647817927078545817761454484413302010776019323856471357895369951117364546034598370682151395316561978602060481000450619163931324895275334051641589599283009667667405882337473736869227035767694661014058839672889753320629522140614859983375695243308275376007458316062100692670340736092104620503209431685499434191026116224981954669992328237735698047282436982381917601395389978645809126583689894662714804259439189626225102188710618119396635305317103467159851142768939689144423579470152839639548309044701055879772346678504277594358907663146442954698981120590026566957190816643706749238383368662016751283337164480984620363832897923921595378057867813653868993783642464290803507341402160436959143876022334237814597356274803441384190785887491788453519190265229828549020267672355980024370872999509768552324584668142106993215125283230799811974870756742778264536531102551470412450774781622883861420460409072886625369703749375169573948210033739542441654784435325531152628857064607508942971595877425047136387620322557616180883515375353515566000301922752261026094946340771592291806618931787275753216596136288391025160113631419035224508036698047792234266690347592746554890674859601327591140212919821979685763118908096667147836038574850523843237307000525400562493934074229162328334941864166452863325796735457693288714557840330887887565070700025202846316869279740629943928039086187034715933231754532570177169184635789903271954406033530599457250141213634863166871402470376432635540307140351068398258662629926065398194765625857814224515776413014811836395029033416378270657207528920491725861989473152314859410766665042820268752721299441039165103472652190200965958283121124831443049017590309539953647345143348343032264471462743674714861497372410216932782703825241671195512335117643922459891392208642981986728735950615561206241924899437380713154992998379799153409592658833389997340142391312863447011878165309627646078550423252339618246479226718741087691965737553773589902530654970363006263062546342442693562259470445211596018295707478374103972689338394498221739887652760943731205805783454469192375384243179487958704386497577428076048889997105046197558710319768627942371229083729772652852046238522416180641577082966838208211724063734544243870774596378287751711953206080440617783292871200554190941843346779366951998042164997412430528072628053195802790320783810959934624406969508072822469625065808449138885378387262903523066044905105442409050218216851916328452811814775220556504503830847193606588447300428150054301984947946058483979157856137130497876779479636219966803175619667718324893943990510515149872154945282289583393205920304544956883195181454752309857760426133198630900902657672630153163044745734485038298940439512554848021426222783063272576467417026514209366256225305054208488228645333290812371898425104878468908729184720602581292250043813046182243627052828202258765866640610878396078115309097013639547013300946768434193700624477740488699366024613941214434633590110700098785258053903697922465513843634724450601571393536439528597311818764902182047436273318635609810778086699399727284475244169995876591982613717510635212607574409975820456788026419968120035724732581497821253126517145387736481536219801753611177892815826521250493116642994296315364614986350968196444606307223693832368516554814337078381770582273648176217534179134474485360916949547173022551584433686185153137046265211334521678941282901654265702972406003296587230390178188705150672489990026599192718490054456219538579247874815868522717697162171750347688657056100314127003560093655249896387286422847183294354805829165104684613829504496169716350531949485446474150992160196503933050917028374428461173729836434523088716939634792719758706952469164105726433820423022156329484443280067125339412337847594827636063079364684557932674210564645301487219481486145678825754321473969977613637241420493203358067042780885823634122016329054396776816976507828348964997088884663691052075133475606354302424376456667948863189545465005872811810981509946105536507234066185614395583721161792392420849932326963188328654606137567115391345390592167667387809236464056696265061710208030253431933560020985382676318152665541853179817616670040285987659093133787635915209829927619274427198971509132627597717031891508075577001229338922182863061891543268588409097949287386495706545308011717370069075381172781525108244539509789586917826889598284468343245691983614088661827456719420516378502881159453407726939334026920992546753146862353855964097116461380622484690387363002959227912773663526150088617704234868266369994505117605185839334900081025088531466975061262509002459511048424321357777768250535120801483986336751745046742663316569296505176139870560198984404052509565256176236513757188403824655547055980471657120600195099363671409982454678205764628339832037492338647306524202636225692351237860555713234919525935258935255322863857931676110222597665404265523426290907449984556151139638905575300101054804421852202074092155948306536455655584094665214295744437668627323048343231060097114781306018230431215515766041099494849469847908158178462794933990619057155015401770326454044130649165257125603315816348396060175788440335350515612263027416000495534818656823870334218125738893936020047099921579673512554062309865513602544016356727388615837668272680025777588990585339987258684181693797070685232517006382563681517359722705018848536871681310201855273820033716406130441780697926493638791199999022233939516354428785866368098660731069483439004636050622429036748854743471785958581452224801745690877513909890521477293561345318937266760631364767478798654754574076599509972593514721050590455515365494580018727941451956755481857893426257810951072144354120772840297476409637040754862848504590607381470377975534929991719754705667881816844332592716253882532572982507090779183305684771495450368771335661633120358453815655120151013928263610861550148134302109163044399056002149185762321347354622553741515909186867956787439578901054176500013366622432837751251373388912728498048908721358508355668948724235181699811509663905878755455560176911193209874724439670843754396590412738339295770181920580076212711865003276689885190753442279352260985802096789995446505488023635963858493149008476253768073120798643361487542989292181680133187840971107968079480050404355092478739861393263361126673957509693823606561711288477152585315946318951887260488486189279600537212609078616241570027392809478778954484042620752074571339990208179778289520723634779045730441102996452912488366717415024808497281350658200253781513215120182075963261452486240534979685076710863987126596870416542113350853608126028737436476096766509845616027263865858304351558515146663342983879358999764776591979678273671061301573215582746853836858271659770292147911110701850889744886324597452016456074211103122082892836456659961029496166742489006166620423904984528700616434351291925579263222106496267769403127568044638440601830140979438870005185785838678264043449157280757562278445894307468703174599911470841413071518774255584441615036980227883044858763673347324545403452850409535324056382668790576574263727698167094929004495056823557304327644180101465178599495980672437289224982555121674673347890888666445917640936617821082551118115785253214621819941597317948843472044443603896778243925608336015363660930928470900390560248782302454625913446055850022237558480912398489092611235463490377701095897962817467850764917466930110296294884217590029668297317654004294919153600688435980214251753712607142907723166871187917812397578818550076591973145269208804205581679982644626070445278796032904512975468580532541824235311172320197965198306830898896822223469700442304397821839995091350089678534620079570721696433199634212854308674541741827882438364046160236332133961455716527431336260921272291648120097182415516969951018405968929692339454607688826996867048234290940396489328399349036954230977069529609679230883125775139048084886407268714605742079227038020908917136666889537704654673211089273758990506692749028534756310590017105115047327035050961724836523124909642442403179419928901277353560387595041241894236421521874404174822074556591866203085343481730771997969419358500812223212417861908958057974890401396882338748001332544421651362811625290817900504844639847270821077872560373760162084997747584110999295967211624902274997532596793180666252253309730133797567880926843451419723915973529000649130258188786793341421420810213503166133659500038526846835937306335328443827641437657189939689150177127605530792091567377943449494994468629623561469972028601525781141195426559240106725736932545682141097432634909401401134967416149433063297715707200760426759971685751667431825655546808853086646956277511283260842133264207581307362284531716856688987479319473136423670887112939801335289900428643076248302497484001085946598206453199016959520046081315959218622128326733680736313707737151183262774178421860683177389173220400567635382881383157061345675269432818317251607933127381272040073259971242291298111539305243481984828342121196719211626621159643972884115164914348943492925631601071298212269694332661657210743898349103243975039165231644203481921348035194646852471523810578419405989596532900581538487882784798909376030692704448650964710721852787601489824102871115003225197747630632932096654551484235101985979154852516414184477977236997117802957393761821107732059930519296437493250847088445500828112374452141769769199726618654453832363873089258727636959366310071507306115452968147427054356571192918006488195237217581542939601845823905248935786238990673382030470197734052167626070621250698742871733279849516729934210199263737389110741868150390271040401858733360763013574405394807962514581865794263406501825845912456440530024087984571367638876758929120307528868649953808324267998470881939478782650467270428658682526480454484730415731536503160735604039124007076201205989739690724128392363039130989439915198465797114040854203511539260122909672540218319703508791180637927831964082518357690425324332371064885153715353590660724173258874361435518200579071965213504598231767638136170422905296284388530076605686534476414681992180480770608630127658642477721980914894999783491828695754921180452663849673665284966602096607847042698992004153856363097017332365617328504950763501711661934878485252863723316384645191357431845206431624499599558540085239145557754822661354961054066698092551542873178929515813384216099977151384971075184775191483469377657342595489077797088825184449766231660931650798610574516009194099811864225653250634185206437044904857361087536078087089995141668349954884012951180068960088964608037079408716307538012432428600497553547919010234869658606811193581634951201065333755728498770273208373703438220410692420457642506963905273663243553065307477657519289667587644342599717944135663556115564211027143664329715854789871840812259794020532450703411017206247818750586628179293881781293793513404956001789294133189182086392308059577144230107297144880304850301102121888645873300411437236489098114230210720413472193284340373347567919433699204711968522925819074069797183956215621680937961404973941789692412875846668440024414109444793384959128238244902436267714297235806767637682996402792278011224082584044077933858793784142580068040413210505634150396061473738495857735147670007618921811984940693088819702070071388227873831362899730403136727030580861634860629919338016211891065961107881641697443333377143631823517284434487389801212696610128534359457115937981592264009234416823090778823683231061052568673303001301931266029808499546407311458827107828527982445566980926180514985338406100284573556417091105893271276704557062325718826612633864562946319616333505002156100721076420680177846775885660968271260925961362232434590414362923623046040123044151880360750477182989231138815570430892556658042526251727038361586245735513863400308207136240114646996343672166182380929296116264719858785773052040829953276371994626722162052937046512784937629138023784573510876501921726398403657683979099515990171364599275979567001756598199589068891195296761341374671795092074957308774107977965409182321162841082214834030077496440233980585036031922975726833064313226790624693383584613088014542471758643875375545222632266446717177988343915399050792415902462955859735883568947429774241570016503842380512715608034873095164044335768488058290763376201871565503763672307645540860413362702450542792230520519633957975731762551207985748915599207710348211216071217765452862509951110519928028792946839168251848170913567044273288757394477274231326312893334307339177106810416688079900490738483764390975191084976631575538813238849885591602996009613237988632238705702689565117023643814094168422623195997326585971616941508951343875335044551332466107476606270410649292955917055794272076234848749054586533327239543830674905093100240227190917869716203927482820273819546258299940662886326037627371707534475116006296013580338457586530423290661944509793502010735720845594355252941856255932467051307603286618295057764944104372256484454599074869941988176616974173378213048841992076100683196657852053125740071704955308400255540774236116990131669838089402951669910955209665299861074560363653367164433675145456649965226058761603832308560867164938535414960981017272811621205758440167530657894930003369338106184729268747407903874655291251572026780030915919851481211507065442005786901682286207882310589423443167026618389118114735387290565511919830689806847189897138125126365929811569494897869481213757572746242694548639131590946210601624774486747181358827031631686025326195507424750925902658320914006296288429403387048247875522548253147833057286801467868261410024858179161868379922459455178941505819617115497575040825073252427648889525015672402042004022750168063304654630878482269452934834368566241664012250142699434867531700806064967491129018553826666575057013792351717827041028607453051782192290123270885958591252650022892866378808888623368031709086658425096037930872930842984692628747495596188672250930546018381557288511097516173871299560776675008709158824337349039465982158418596686675238217581635595388216538689589914254907158629556490297123963434973402060847202205381054849237598091762775906415549569459352318990994077706454110011647155178528921211379882078632204618384998472504599635667102844969478066671015031461393063623200051086697469085080009194146595840442667362277582196884145686165349234372848677671476988933501307367230450532891531274130472616937551855836403695334735969843483012086266357631688896612240671309811389863377369818790082712692190938520319027658634073905027407859181069958738990366327609255870778618758300548117085225085142348904722986801373048947775332707722225000156137355338849182027473092664525701516439621234078137206787852609785313681928569529991659779150652780488068486533914624722587690761199971979426053017394748390925627137423675902211947222412775630092614197922684863644068680793733027216434662282906375285777690878167226691281353013442879315564865538246446234029241964589257599007709515056359773823461368693193378193467476027898777785119038814973209880483144725882504583753761194639659795649046026424889937472313673773942132620985281053454034930098411067025462286259924592098193791759113808992145619160943334674447544076446285817173155182524049630392949441201470139976936755237941205026534903432593604338669598719808212203714901773987580422045213327458049744369089096229450354800462276871074908849479942443846876640456081678132816710517561908560099639775851744304853558479124223617809068593347839874892107564148200765501964531030818497644219743660758450618700490332641465482403178270187718278735744175503734989930791903197091099849253945401533512978956898862222265440527889399203058205933290384759807874590862572310324483455642113882899506952360923476446162554479592916664120570996822282754057879942807230937945397201790757824200776218107398800045025239388510991194567866291702440713672980335569534504792324675359690283970518577034245695500540203929351399841680951684164973876161559021035299877002444322008431777134822809756812672010041935821118905647889545237732725465584635147506690251909078383129237609228731533957331397530964216071518430698898636062899699083779384930006782646526636732807142009618945775165378971742191421223027358889309869226395847345453251102342428494695835628353982699211267570279351727566554508642688884903093544128809552389497542630795958105787144797322370274936135980184865955336562611673675499777832957570292711362910099801196173163816715984098529733686048444074964386777676097665264135148445193648525791132813198863765859240226311000199655375491285811372685121147903387618116597389611302431974231835251023743217916370591605439836750367055894291113167732865746424721497001165756104185694065856753572737237723934595481800729333290708212702851138180565760096587566744942231105939083182523798471008451582397535057676101451729915473213108753848080207898823869578977896306093037110840741038775859953920816027604985069188625174242250346367619169830773612862200568436794958049691467802769032553082122180884431071120088196138524703015169529900581900878630627235775199213758421706403670094667176692182563829231476517684970952170867331508281266050278695253887634685833088452049091207399751163185302864177407365891131450755713001173483201618187299870670880403370136538313596602557945103214817722823731727404176925245108791993864105145984574975084082139621271985911592259612581910054668062302677250327210610773815883670291708592564162758411774136862232674762789955059608336128714170807457430889442752604947639831719473993617900760482432571995014094429001637596590979529421969556873316314296148969578480775662992414643119489913458324503450583729185830298101026316306231751765090690212424039017252509625971378534446065001848675882611775416177639217599910547272850380516836214720146920806865706374985561100193217662953462343753664455330722651656346352110883289130892347457104804513135754128876469942722914862168564978744897037697520720861603164596180057847070116573352408920597815388318017606576198324754437338353876495238578421410378082885156566736287013773815719101068147668046640252897955990720610348844226924450530755791223497595839241884107418033902690170045026190030053321487701092039809033014233186902402172064132769922251628040464688744048823787796602570963486276496709138058129993552234814788491288134393178108349285221169361011668543452883516411180796914973336963305235380174540381360545138329919129642007889876933879309586435388886040191520233332963366790796252337711527576069846763991861969380344691629111012430403480831100752269082668008292089424024016259005814804048872687929344387591081086690810728503469213752293929990056375963223715848842005187033024560643038427007839252948504124186196769905633776114740144070083020976868875179340489493969464239062654233645652490532273032532021564367209401688139251550888857041728993673448991636771721516172159721326150140443456845170832722733470563929416939845512259940104354860143629649449012805854877472746952193557574010125420532287673419837164419674157895234362449680485277773157063565705109450918787963319389614604619860809407184839273369449655181502751475001638924066397061110490339936437409086858727612569715476369583928373495435013694287677032611597542329858469461605607510623069021527592078967208465952626792605980995419772079923115140429848920908711755956753489975301731879197136376614149167467620453273225125091175961271686183333655926385656712354586313048397575469495520138322946667199623582820138698677218274841449753769951289580052449264930219156813895050798422490019739706377753797888049935254303603502899070345451303006809865574519337051680087731666076531485580110322912971279832677814816233436501706811703523630885430482811280987487440153709862913814712903893231234825313942645146842713148649455736186386260728261486701605860881245096474086667359574826330915989892112442491018474363718593999426053544086624431229966792205359544808458116237459962378030923012733589319260052267258901958691613390730788072344423233767295976896314047297391162931008686981673709725680686328840202022891128943467869038489156179282754169354283171731876554953789631939696719819116160946018700238491932150508088752891790136134241354257318987046374903481127303183185452452141135928494323110459334322642331498892580348303028959362663428903071644917144689323762812995941888101046919199230255244358086036839224007724368371592373826141868015166657183489806261039397526949268491548085203352416932756997341547978416538773293924045929675377251912078340546567766537716505897927194822451072795142641943713486057377997882274272791335490672333885107661120793729822930496082836298227445210182987655929859574616060515099901488052283723809089180334067566255491847510667825090844944773013826860893975082930118541275987601905203725273628000053371150442350161516217580373473692700230628031552677006565042392078674173667974575575879961306348070755674745759082201105315166326669205896765816094672523380327531158699868385542502040505460173101347886071955613179494013150260540409488450270227096765850652025505432919098565995462023249595847455367261602221537438204395685518312279571006546309817707423649921391711912973951331447243977563254638462685335608936988081564727178896487476491606767350862831007957197892337565119135315845388030751363394896139099344592808799131340761795769373325063542857326016212554695726275507671457405535059302702286885405931678806317275090069397045360887782932406140468442575113142763535965139585811208349819017162006382747303051155086210861834250181843538993392750454011937662436037752454030856531848986251502901114865645631012193293914815771701284934143894423879619421368135501200053635329219446065352195903219871257507131679894104442174452868662226629226445942814005251346349142733445167531649826074214585687739850510657729707671048064812875331371459340158685620444417650871991339968179624405216977973872597133245366330189365450454434296841514099138973643017138695720269980349426456913532565575184823027992217432350471867501180898192053457549829928987751687337750364940791466100108402476924420566619609446335106699609192522385844084595161586313657660836951830684935928425331714977319861797591501316730850922688092007553047476978782476723957791000673453131874578947636336812412159255488899164785848397542843294573286287567435476348948518508938241859442141728799784229359525735469853149656406147056064252457613343453579427481809323420985773539078536530745033799724092243333902747837126681248441870716684094211415937935852434744304699218587014190708626128222163843122953289796263931987955146777543070641858155788642079635289670207738432784405060736697412796771468266746109121326451004726652040757168754034843503478945957037668095967325788810910971156558900963147585147652066974810560538146000773839032920602361053733419564367255028240564134055036531013842113166073175493909187598475892268187994975574724296236379853009429424630313687027576747321941427258920902412711261421292653241292617032841374397757422111624745527451536541085279397403776481935534838525789067596529387678418136600384332161224150071827974540550643115411190921292060641775292892479046058938503247830752736022117353285490062348427521231918490616155397765850150317660808745809061754673636774067372504864136709436650064937207774917158779549547864181186052077715673863529579088930987164506235840614875842723062086884336548518909383326277907367241225444529774012656327981087287213379936011569140520485575835326177070858785407405216899868957633544611010053951511259582676077212793316910637814488557559884572184089045890894914720805211968426296706785023241866818982693447997836170905090127214607255341207186908833618082669875308558406581381636519512597805862454252483406758244697771802901415303798814995700139664025824239582230257998588308281470969388388114680175213472753063293818664417359732872084498158254691089749778079707321648042146278824311165893443263086443115842032321074740869772374639591903458493605911165290592425161219018873100990622414681332207154462143670585021151768748649179125296435014636864127603047537841956351574731428698667121624350596366231590496740824710316442144696451992916459902261152662520486241314253557234393882624336727050748054002863942481428721120041457343016016973071516816127391461549263449892631108282741392043845545193207136181339967342733816083677553324026918990048443044489367447692389822710302575392766844630816173607448249992839441471731321339942685950477654459607456647133540638520155911635117774263202208345677099386761814317079232258528069194977774980707419494185527568277729829478761905179450119036601471172379799794624534166926125833806774087334993229667540544736861062459621275934702953866799258206436182810987905128184716089215946284466735104342984302402232856656643837837756628521043812493395076192294322139859916824442937929400871619837708070917718424232844279323325332351468501898008161051215459699467569748952547766993079819937374045528848162587282890467291785648149432440747115623218582217921763691540744627030616172457378359815424091638196347741941555452644654934528732328199363461415623925689833126484745060419816003341416042877904005528522352918461026384166264546475507886472795674346023934884634564248828905498078551037322149619181011856007443985373637755991526721102374105048287695824603427379281453709744367420661685087588352058462432550753818934386165878915205666118885916881213439730421737065067795958789044550221792810628585416320023232175450598935363009185946184541810782662894742487351132328132740237934036211396868119483084391241924594514113077053180764497931445746398696312821602266062081296190476320942338528744498797885536686754903432595295200620297299133380114979325577830018982284875743087885821190306883025832987520710129326358069571500211750839746712725178598758427665540774386442492998064599486873771894044040728244796243654885815671409746433113824212773595048177139680004091286604344511438244627156151276511818695939116990923026221728604161157184361129029404915413799778202184451867779850437597440488759131801232729485297772250939132636444273097236273323887534348924162190808945441190524083796036343625607935366332983969447362375221846522130516142801330591594531122665357148794180000788942118552789641578548825279722981406072318829222784605548176540651698193549905015295046512204837562417765942446514613453033130437290353522774650400596818824548248121966020983441167322587547301580509773116691023335683550167285316929763949614070476173004949810226021259821999321953132143654688896117926127474073644212540340852201774480433506869515503069808203007548829422626300408981627932937031230421843084433045185873582493952699002884574769749008531491676745351988901774847635956341287233711808774837977945297567670792167036391774809726533352952443896640364209993584198974303591233438676671553682535233550251924182825313200053444323746469020619520802251164438605698373653180560664429672008337588167222441755102142449363530778782595006919930549029179005291638774039689539206565347660078159693986309123695494528308281878862033964101717671724571009902381405028640891074567600934080908507961251991333480134628792626586556981585434913480050832298974152602836022714709395228672766170556313632795619622350777010822256507640069008793426701528396859229698350279977251768324839906112094553136004090439590090370134851284667189132472808030159801982836664196296698544591086075781127694871239800081458722489642761214001494766110741708570904196005019530744240993326096088356468441653503583945117728629162377054394616360252112970047502140889020361623975042476355157726773511060014595058429156479986262836080300943902016259931295353669310878238141615466269545012302478760615727258007351306704083701288102444266177574819831884543958838415988501128257003527171769629215251106343739276042859447708674247548506804792018200310764334973425713344959776760720420220456486657490297473076648787968614726124647526125816875979220245334004173570428125686026324223236347646805570562803915145802628649473169349878343303878069056124422141144037333682259638092226331496075720619889916595494116556245786771460302155019669985020937520798013772787156874130242609283761688652661089699624412222954745091980616629467627636176068467603114976202554624755532149503286686967600884242247615136239305923915764163139343860004024200066023014846297735901122735426371293795193840717641645333224394127418385171147361672522259370092931620676854381273024677511352865705959608639633177410579157398201965225535731749818286185209265252619286759962968271490928271236816824355244888666235798657404552384633548968264821369744398622789608825186530006417230385649100063923801255835862614281045154358846581898911225027094621267915532408565606246111813554113010986352348651542638623672296831251538322169212045677900911774169366475332273845808463747127237133726418060611921602087553916206092386896524989147233167726210263252712780225412726476238962578591747427992062091585026911571640897026771387464785454701651768533059074309085912271009121608801302998217897279219750947316286295877557441327257350416383425821696616048799682963360621936723525227943168535747592350791880484659372947663192159864481939400812273018103999466790923798575038915101458522807511372814574167239981766447412891420817348035753379287184252705204897961174284062658939326240594089380895018255790865840362282984530927286770983573103571882314978242877156781136665041847927482189564897164232213288416641388840142993690575748004486425233703632481718332602422026637779700473698744127205555106930150847869433505623583838652538517163828163555890442278636483907885967624309086665768760149047180048005886290956339485866438573218096322247819569104373428657061153158412034398095207523542944524666350866010993458156420160011510796223096484357621545171215441256124029178774683894483377944039735404043389998956218327895037251369997248579746405867342655108326813413305848233840266007201874307638709016526562482798302020092234393612355160233209283008211761722864488416709059263602828096630070032491689426805122766192627497973959194646351621846619377465687717154514355483269275586451656997970761571696892897957445578618905633405313715351625296551476844279452907246661374045533756986875421691096094325999681043007287725381194835207727255729061715897296583107901370766143936692026719544704013523001817961498949155319641707364837548821874532440233873613917207178096296728621286248897477870606434512150375357965300803603263469553832472819120133385634087019365298811020138858534831295016712657863782760062969817071518788987076386461267026661967080189666452395515582847211806724042766405365247471900241755852722511806580149852896173470000135882074996019168498765660952466363675465310716269729645543805940014547595758788728570875192127082937969985240094272307403650164295633872588850463685755176770102562400464837606389754128162862744204720525827697555431165173325723990987360880648506271309854852163534039182346698787620212922001488482322377494018487486397298583796685804949930221609140886457818770356661865123030248226579119563002220761674944225808704217356031195634765258139175642088650721695552992623669917733950387259414584247111366267700918579396652971135939953132293116422941895191553712084559713818966237834900981395040397653067819192908154599850846619026705437996448765146775622269723206636247217332041280686591451545948650726882467367719805873759515128503595974061787209142160187247388109095110902227481893766257209263357525901219417205726841427070168939375654093001736206388382905524864069463869882759324230983359475310203504393841534905806746266205997736183877180083136206156029372739350133624884965594405638656535768587175631304634467472863726637654567812912272434827205014539512875888287436189230136487584712321814801711925692116271838841167842663111226571613421948425384201412398047444136242697358543682931350000450574108758359818985722840626488816879639980438570739216193651364062839906642128192636015555000086437566969750267644094206906124203970219023790610733754674247071873250068166682356919669476176114904570305055572937383753959557557297973419788360860787735705059291241743372331489465950641722092940154538548711653269546599748524575410951039929777906124469142648831259978226155449674500383399080698744856534422686318591905827469011890753088406398044251847658687516114399925308431793231509041886436086773834964228215937627842571000347091022308790077968698083264341459792017475520400330893952938569205442379268605721731465119601771170986724979457504390593094965591489808802519111328006914811744787366365401798599899634208010954727753564013381833161810840895518190704689904479446781851017596929381329996834760477877137439586520095422609534001128392463178368566550886142006724396002892469065034525132944607871631272505475337187353302511640057364539113797730383159956068833786794437940587908721853824780022861837881991519355156052327380836421611201055224872232812484082543296904560123028458616311844040821205435291013359988910379664642336465842695885587221924349707036618147793049409534812661742063238835543992494128081424433346654388501790162057106746820259984796501468650838807971014262967372894926321448590137528694260181140948683140994378123353295228561298859627982540558654553079430375431378341473429324222401982183969404623253364826300095348705397585666745936457823714483074220254148796897211536240146393541531916969941902882155813937674202091377517463114448071080247455630021464923768528978821429025552269657877858751257500052043303806341003665804022873002121860436062189433049066268111573220954325344724726524508985082858584318335892234788032585920702100754683593235351501852148017268596452370809768781518237458254357065254261750498669728445170795565364033872890573528376932364289326789511909094852546124259790354630954965688391885332009903669594634310773169528541319837950235799643303762172377276124063079464300547964949279119616539450531521955529148611595893498589883231148797131939979136669077664310386821218950067748557627247610031380368760964087413971509052215667178083484553279897106171584792919781678283317632497023590408278951744284083809674929970458860148820117588179294495791346043692951547559505362507752985200109970976784237484786646515450770014621069996055063106183457889058411787212251223325691922325540696784390576208579026725954111843152420463784780922336327838842134236578268352809947521652183875762246316442724023756193216530593712963161694375123842441299315448893031743476018275611647111281029388393689216994074115054953725310620277215957032919106573935805616425006073807874421235065687757754877716139095208609502290648445613790770554025344020620147481194948379887547952465639925289926543517166313564749310248586429804481087039071290772493687123380296252694153079593493293922702536572886739005999240194417958137402574565266497085469983626112262930528597084558560287802025286437990400951481238268773134875125785948101210515458576133458826497002581387886348706505588235327904587757353985877515707675612773532095253235422553476831792623299591884905653180961348481009312851357692341869585154167869235632853709035156960549169991120898516280564909674273043548608685977824191263592836418021976617575488558991413801506495865014054773571698984378876964076565581723871020420432163005911379242378693564450205101442004551542201553644798618569138071723279088366380299062928717047296570177340610119770177205018670746206798850013845237623614384156426526303935497992877556010877676020932374314726271601049459899048180797396232031756165150901645642765728794246280982012800637407992937901174155665558838801494436021234452131647243898737807279484344822720996111959113067497302527258706737224289611274235190792018127160839108237959871167133916168175945206325430748787553273800815880804127195315297631061479786622758968970016607562695967491031591969051628925749428940605268229276071003308544156922868353719827311473352504758377431070298133356309085966795845883740253079243111821224232459828427607327449898472143981323307984390769932834600606516518775756482496496777688651109285295240841673600710453162590844833770942404252532052016110633791111660474402587513912128439327551591182679651858197642257783831352198890053596050650672985884591021894181188115633526542525767367263491039480357111951726639845154177832703646220464008859411682591226813515422325979482017029123619890428930057398578273075609084848407161429207830768654707280715668279224658789805362174647183599225808882783682159975856466168665928866038955600351770133861538542023914579095604604844034207875969682637493887961716471482449791264237461173323545749057427117886127586714537947593021241602309503847987408453952493726876772406324992567899483384356467497842650042902287337106342252621828524352094048186950244813068863097180496531062875529507589829408607346743972648544147924195834638812110882020310169891010165448467756221458787230240838797574518967723781716070209492053589139528230348431899984518075389731313388891730144428982375766910429197610895238319828791820825159709595324524310791187179506303389010355636482830958320095073247862213563947682631901388483461448337296159989928790302771137042132304390662147142819048538092909505326883599428781723725316385009861690911728219574205591107996282032766204311815803717927491493404873608200278440743461682570547537637723276259373534454262002953695389101961561717720246926168990054580467252111320390510396260620810390118141034928811041194297960059769304924400926044553944598626948233434415416696160107982180812355341147510040825439305121264379936762699727111006509428866867272590372834014117422199235811718750712181974178936590078142497370788228147777977206307613975854310588791526932747236866848347615171018210148699951774665627035941655444509635260812110335658521533289052616275703001515296773878782559604241670721326485510753001794917716438611683018712349777580042843196643731431065418709386925684388380028566734813730858868167238530784902883873064456652658000175138911225350371107585405842137811444695217907545520278861999864091030285419533140631585575882961239836171462127326531857621933458662475192729371116895265263592564837490893609545199676603588180525029157586579057436475918812919721277566652663595724886223504281041546716319433529316207931463219013515585465442390290026414479780109558004564455980435740451478497716348912797116151278323381196675658225464994890443659202311914673532553434639064473539164614317075263062741359920462373525126143314292295386132610962262899377864785030074171244689479167337003260578510207185139383229408269178489760881076161646736180198403512869843418803605105942287623923049933431880077505049148802252382251449664615139918575471784878113684854728750660771351684071731259525427404188212807056999148925557309556747284505915123052307754944623108118750971477891876419285038532524095580567271275295964841397154452112202547376241365713257083912265292808471434828538189076388674976863868216973403382555431532560736566847618522333780889276331017142300454614406774729262566217072870714287604552878750825707480068311346041333608310749641141246812644975706857506528152575098990515957008528565437632333538748708500267556357303200723237468840005003131377439834083429912266912502925388458949383313341530655812621443191580102125143647516678913249649263500441405570467503017011168782476285341225383534950754905820459228118267291097222542356866763241049128872034584671128263531030627531093413526978005579261736591267941164253599360643191618032684042925097313292700757772690492082080309300019145656242220950931848185171382969425825591827973689863394214019804851164965748113309490764878494879920402856200690622328782778731254421489209112808499510560298168536159084298226104958859406375650162973367585786376252783259048248868185393036797063793849134729500599315244182027290780181390973339144070074496471886459044466002273783124895441650708029124350209193861503765256384685339708729596331500893169805819116904567614020310682278670746514036572773368345159457678421381060355845058097553467656651040243411656561141234136918439155006344518482354392106938607110380017419041562113399181983482602749499694552695719925381569216753650406314749637480942716881125248659817164273671312627873823194120889514554636110036219591821482814431289411168855361608204789992479082398086530980465163834808910352429040711996938633389669398351556140851059361829278757139154825547689763858900940944278692291164126938098718661147382615842366772707835238157742261053017301128663780884837819156671272585222221708072003986484077699525110557696224574383775180759989043466616485708931302320910640746486828037721670183528312399251970400805983217532553901914450974071003971446280940070907602758636113689925642937412490234666737583908443144239958489514829675356636777307323116995116903747647921675158282034124241670612511966236836636260708005604063663762486272949142108222825205280614066954622854095824252616449587374501351262509419956925604437694412601746587938704805069081747973538684381989727381290704938002121006424253738717387790236571895156033920568185536679229918693648254357520034864635262832517475776078664378052547960704692945324925504723682031580750680749236757348136409709946039627665601320650099240705909706480402444000531273950272740587588633277531768413854017118522694640185656681115370718388243722875425908784434222362875706389657982248759701324694836277889657737072278096333607047312684942266627679543530019574698793867884398525081686619424159654236499614213063763943089594247376789664136345424484636625101032592582286284090664460747623142323409006949891964143093634853481471818951625022018568042021341748253267540953556512100777403994372465701895670921193148089110839983832397513934966580498512399118952945171632564322165747513057997521123796177547601664528286381789934413950826608556376113815684936107396548455867213309943769211703850834499067800225732069373341369786497358822645960200274012172851322993799814570925212991865976734336330858171876498339930453481268723299590883216261994452404485129723052196772940785060372335907674167825397731979805230004212665153474694937591774942456620128198766375512260680056901341146098477027404019226619644952627208877069753342242654669491423847001711482816918466704103146116611180502297426363861686246567747645809822582458382405536788509870331277866443802537161064919419638266554875987295131729593315427305292877599459009774132481435715736619659727981625145984441651208577586633664786674424554375057602791181785514882451055706839844106899050000009121430580084627983345875742737979130239253777633550802428849564391971961899168024086577632064181716190064387977589572683483202043433249641262561052139527068084949024301795680203703728287799157354313343093197734813139567414719936678703996328559660976588193930666926157051691504700892320328072438869472069837204756729529198412709135989818610946912899659310476373685803280495924670758280814748970199869041419858141018105962337844499928364483638995941961836238924265340251034639344266719741661567977543760972540543079165820149769136209745086128498797395475521340953448974305192639968665679489490988772943574951344369373964241073960818489126348943212744408053976157220730156212243965909691824491820728445418229382769787368317334343196429261336302562187327673334077999514690578318056908940971292660789797326706960726564948578449203680240343004183481530514049929798201985530945804837705850906525054240273983056610850964900530515757259108681574173025876549988729481336119822628057383117932943276220551540094136302716043472401026476072192457964900687621462940937042037990095274752438133382116263347908914363629666008061162571082569811130184803113605351413245014174462409434976066958657468242144663754051017661737119262731877508090909797728858429520620696385803453700554479916371095510106141705158293966366867741260735121441298811427756466299002165190546133140272757941521864823319540573732639827277270884386499802493538033083069381026664362678604807285518249449743997619112235360083285575447795159185152547148840909955684804336348633563209237576746122441462237394377439405762462243880914294559957475518700537873926149891692477466044932522111952330405587121983597637628863219094513808596082448089423198931565729613918047471561020151451777572063084041931755445184818391128364422762392290766611101872295981428516330858997596617721966169181978883711802535559926699836544843326667114228652038297436947700124973423351699007768660412304904345433584769171902566803261360578371147004047358967392999512304075199716134983819595986659144439804896594614198046496980229826587309549960831633765345964727302745500044003348947917374498988261470542130388050117615431322310477565120616253107018785561639589239910452596977320317543956812426134139108323700084149705204485501732239559623405597158847005841263233222713233482348106998923487410996507161960969050202458117286085810876284587025375333380639177568272446848244952914951627863340783999175177627175916881315623377004441564469891863842726212635978205854934917858265791542023651925875324785741507070034543379729692785075443822798024994494017746095923081097644357488766461283358447092440039479631974573746498553405452449302464572485742631507781419357185519018185880921565283616628598935129762560036822766871850932773384736129934387887981713290075914970989177500115325665469073402606152842593360879876847275165568961095831389563227774267996694863947552329055646007803245083858502760856496539288171722921499465642992931278954693348066605031771859377380280812217291068072858601959615465448404522511474315420767495447818808720452929731314943142382528402516732179360944928515130108747484292830672719098605327950218938286439145910604322305945762375907039500594586223294203052236125987219011368440555067149249577711613640399921841108974199343263567219137399600843897806162375705741640697340064090964686856310120521076222068774604424732134758689234788766632050401906078891773602446436958852455398021175640100959336151892205605672812526845804004494496248467790405774910999022018501877434949640728503846514251762125374985955565654498883970830079104798487065994520455652863416104198374846914608894621981147903972801320099522844802452158157883308021886616516325514144326584118708644488105060237803717688415749875808985207846652123006339372732210429703716813703422540669039847211981396761917847371746639309020348225915035953293338179601475083816550330597632834127345196501869689653053177412492636621893638635067033706585544939891577683015752281231678865981760089965948124156197834453206390613338291805074507243438760772536591775934014809169269978365093781033856775667902347830377456130352572835283595575467287622527431417743185612619072923595974488998588716170104292017386556962046088430747040608142179719311422285305502000722783529524359668702023405725358943674847330761479659184049043007385992488050305652304383140857254883354384563144821003686106991057258393656165612442949091527913730517240182930428015311042902646283243305283742095948817050363378187486489926464760067340236654843019238068360547326606841046384675989266739408754938210518623275827208005194369341122114850172365997013098158539626983235296023947546459626823604019197382280537086005495830831608467800907997422097552247211046889738244001927514726920757286023725156572284673951195948284904298668675149305400133810720887974646757733743054472946749728863226528293263437637776768695535448247014834555422795522149673185277685500338415012486102617928710401308458126098653001271805603623169030926734217346524044056365224111903704518925243784439726525955517596213391576189708347630162171110398978733339719691887212454794960642798955536464963140515383051800524999363705005975145687036029588558749517551114463420628461737879219817641496447048694881091975135234355722425653725333280413765227327236455922399372860369423018497503572254941725413672037881003623157688796728348771564723414199213372971935565719827747742657807501808378591300632585116549380881571692365200080555245631755553289007003821853380877878041596626287178424071024393221787658611271670180168394366448972194434751536501477437684682311671124844543765574883923412826860194924796376561546522339093630252805383800674135007487963978926455503575407142235165962970975076514329145800173809155618384707495654189031639703940706897852021516209429933498393579981089909226377050239004504055257623157560125639425810795745747335257974035861244764362301267209573829206202551668963277181810865124541323754655853113188441463092204787999254262806557483007771204252360719454967840865632046230110240960884546985036279154622268621634988129714298778067403053498646254884450872131247374723630004703608059889118887887859896030186979176207954015661302873327095511085401019252543231861757161191286996988881799766516313718708023588627467768234053154050489851444585837712958504376868315672181871402890028478761959887546785869776941966319448140756588423905734900174490720669116822295195024389482233245457623718970475468187653827708925233245616624505867304428162236580877236633718592601556072918186218995957592509690567241087858083228388327478785954855532082089113747876559930256421059645760403082101798405385467139393174501455467248786998838081901535317038471161627490644492881733429365366583914235531270677093868769872822912134090222047382499571512227650124625580706433233812201984039997938642574348115708437304455568738593045958765125081822550877188587564498840931987329880631967610819262486525479646256518829317614461749696720549573824854995849610342224685059441251316003501577005389445345968763646333420350053498120338403257626260732701534877829122428905685533049455945078906388255500081514547136924389266398103108667293064828997813744075447118913277877028688330647327704446782890349047295365258323588139775033319511990814363880182423069230637949198239454134258068156061706063388382604480764091426093884422960451889983494249663368999144452208789034360754116116609643035239645685828832980239969739504147383077409450262969794428403265344491881655871353930471036114391113413625341781683968916995834928054087552373230426044122726327684953668759530429797284308604950666160457130265636171674418039150557662741632970060542576370995801883556760901855598499785105144278547377309959948992310268378362814496573714356770428201682317305972452630661299133880282840583796190153147750335996884533104382632353649873361393308368265769037771134825417693326839769982063594827120090698680315657795935399963156900278393305534904666214116421005304846382579309623290196843038322051409464611859268899522003900272565546963245463752562667693771517333567717531156020075866586798656351567303221315728794680954774327818699576909548628107783740431950208924261978411272915894901603437792213684891640974319985495361290071959213748222561348501396228230492810356298613656602673032958324354446923037727034522591321665750656265309083738433024761757612580115744600567011297430393004181670307573299899595230201370976623671663187848883249409098193760005611949079126220429598929811841445414662139831550396230387285573187964440320217347916919477622847371868480594464794732351594388352309270601826389714045284666882505094186429248989499681574962898741801142594716225744135187975481226616873490451758193427447812386407314544432290602777132041492621833389049731089599473063447414260935119259956300144962242354044501133270004710017124578393756470941224086791751472866092384815409311771971446634534678052816842173499082974234978058812890276489580235882249068023754239766611615301992955775917546556394276152501941274104340420335275497307245373445713141431497160242230665737786896323581877144674862630240406759941039180707273234384150581090816524775243940637626119222842303514265063497495736892202024562074566309517216599634643851429450728076465612514892455702542779510044337319712466669819827588589804126925211311648335678199327973939109056744760944689730687011746702596677788050643970319346582302347239953979326578353226927181008935140970500960549005252883428441663182464582606138723932234710117213130247298943972987796264703174735396513278357377035381367061648298936501739403383812512049574072377352656587528543620553976130973485620784234473837985117021690727577828062356483385784768692810778530732965281581583906892897852500995636541932093577626274684010448317385654048740863228869548906185038523271868470384701729465652214754346212837982550802075731568656100385623077393046736614170186004257815458375083696443528985694911100768753445315131261916571016994788949422004052411606781127416841854613764884747513984682442359973395667320125223577211146794407033562089023282382774874846443881508346592937720681705597237780511767858039690766903167678309700139262831517534901534687941820493088500607429370523408913081833976251640535724559764724409922839353922673911471840096899853747572737010112404663356225417016042065205454248152689671618347776934256478931958491049057670439398308864186284480956477075937200417667079226267168300871889146437812219717033206270828098358955681596950149457131410736196294372593791703172654608672320813170570963177474700601367279189252500303611452468444380541983790995086827257537999330415795616271608724119594475132233838166654315223654763172484126032152261240125870864762969111716487126636000728384692463437265529757748343886939063153162221871677887311631135667046923437324714039137325983729329425945569214500202139013276173859369271893182256528818626951140015953687854010514572149583322422928062147869518773028873631462494173381950515079608309119964351660866452443080830526180405151059934844483295815968076404351372244003863754616473878357018451903640039901409543282666773074553365170572019770507607397609955667808854084088105007248698867063060854563476843656564821118287641729842748430337738908458298782988031364535651232422313020872728861858153519716782223100945051469546413098669848590329795542213181208596609245959638273493378600646110474460121800497230170469631002248596906192295480113666966377260136196306592903366752788679222401899575993051326050599640959658801894623900922900402348161763752295212782264339138948467753542561160815596078075165040934092179663254274064110805334956704589571012369105558961826584086047190157459900654479544732814948009924423728573866516394013231664987496838678924710860955424507181447690141338337723455039127621944495355515401355493403889167667432467466776044158656196251437732726979479466331111525521807584686844900459999782635083807498617256258531991486822803314891999907509878410819797228553976084645967460966410571951477541489555554891035830082570269865267352197829205355974349342210342917867709309285086929991134519900153357000585392987055852447866889158551680078901217738288022200099605905162903422594130400282838577220411147411483343336745761496167671482235349409711704370719370452067519359489001752957039176507318264247539110652273115719265992336553671739401144369090257027926485348993272278699600288002332918043940397643720011255410655012278757796809046290506848080412281962442213202111921986956772650709087263947241205439116817176663225701068833212145456313368937580738399340231813933965728257535112107600897918504995966990556863213724021602406419844513404023621870819532865231957841297379141169114298332396793032490161020022760476356454815286346872131018055352179343545803739770706157744536453518294084915151031902151991109747350270129528497454599364655495973355570333976592265400756760349919224105122967492434492030794125196650415783795930691117971296295164605151343125976927957282381020451514261957882507549319345064934310211068380854197528225572717815703085339529433788120699630317537203774453652873087761782875810531140270596889452319809553739819139997795030430689299762033570529156320591969501562402788259626882715979012334352097780199199111668899998002680832823345291412959108559150371339718345568782033011892257156074653407055548611822646529293595104383807383160101238847884199060463987947245887105861704234285673249563200400716929779642073028979017324595611985127534790905388480234448665912400533320640970081312508101654216708372182211720145368636509723907103935227236079575566908364781142539881729059444482162137686737297841069929761143850889279217416472486227997304022725803578306498205781919833123350080431314446023933085117893930363490783743470534843981788292398473303071391496853119631990617468084066259464980331892334424540655689746838266545647913680431918752971027574089405177005516861589421661486761505652130924823634058597497637521699457877016346956035035147985542564980055144940532311995520838209936923910430809572602774191616585019434109090589551835773908011616349377032143440785853040780606523754394086770648022658880766007723338527626338442290070299824032245959651727605309034633229711024143481063087271157250650925775696261009623288107434903915525821745982458369033726594744417563519014809997161261440321765999482142682419728430990583421979768448773124366539436348415597519539610929292863424333185518028591129097757885838175875337737499200790306299851703820403510989644728447438082143491447535540473498383726551057945158222405535289956459426325655519893672595849034426459404904952562040023104105359965400604721775094108139664296811096936578997814659016279393409715609104765244362209464624534547783919969827205291332441354247300595569971064189142465830918851857427564406547542880276705844235103387725490685010154357289066744561303579950229029648147242836915821435899527846123759822579721164697463735329950602844163891162030575390756406104261300467426759575368784397730045861296639354096628350372845050538375141652145634640399295351851732001884525493284753828721685818893985638856079339096709076999992829658706918697174816463820045307186274257895727852516088883126950893097818077961358382429066140141989693162443833142780686043219538865484988867797755872463741616104839652135129677208759890675001251984401576737721916173525577534063445226623453706960951927043611269220541570265900743347673844791201720062127098171207376776197876177586657830239929825653597847404856168931172658977610444074407188295803982552860041740717455660765755932418311710403291495349187945006106114478451850285839499863587307668008707220150828333828431127065038929351852354398008328246851915344575218745384498474888013044160442435534101896023969497912192425497679710266836202827016446050881063687661543049755029145143527774450716506694987344958171377982172181614695275637073888763962487842053702635895981112937272092857411595852013566884502506023383067048409312286610941932929137348768907227331457335308800176046825243913464824549497797668668814446645532292031341516440864008457207211444760672660313081876873253275400071133885036159555987550149151799113497312523890619416070985181338681084077070400504683124886347309807174924932292970631558797219943386515058181546495415553152051890763763993992460965623528463484596684902624512493303638192149366344872121432235779465824694374850899199175371350356463655597337923051096196463188732749598909888735743078686727795807898576792429935983002213938815473680052079069155857331139937824978845935262509880439577117908408950050467315349393809944550439093255994591279454309703969311471292242656501180131647879774260418080203042845006790900459428384046937953295688297411013457307550896881420915404511160789654691301165220035322613883598809509198735133202696596183342427554053993802567297260234078001559497224495043553033095201849456495621403666329127896203666904154384225117482774457295221238428732678443150375636006295719524456550386670356863365247620255201303689494775584001058990884674586737069706169797243255519139063107167542602992813150835374051409077064623703007720977518488776362088021089454090974820254600727684429305708699345528366465777306790432252129761582496883608726049495903900220658605317599927745008041201011124927796593506771554864937732719375693203927792263358509691705264295693150663909328212314780723352741055474557892179182790269146818953232315791403062006365055644339871292014010918320522545328692151896878918020691593393751858311335828951558866894245352140357835872088428496601644930715943777080398030169348364252627293368794747753838813313896343532822800220803916813126822565711536994471653981550387233248343470829360993798483922108959437578337304179302778516228072503413187966539605782475355913587281380740086296165662900463294683662573201137205027463447534597388953905594341689474678823996742388198761391836677936093806999668813744777771788850215446103753546036345070741351851642810661092127713424623219608230450881826421009698431986286382730081748605734698630440191499734827510059801147872898550232571717513055369212243630278999129980963025095951662272861142532358921347217252173765708688478190438086746219344637024224319950470599197898222042608252180490578928431662283544687741921077029795255275433153886759177823494394973946098043306824747659644341189565665917758482562244705840408300389468709616120683800945125474543329379350968304691980291929905852913503718189367318480462259014599680056079911024858094660059448921034703287519459398003079445741298654377877053098625307502911710136561809698325996015001357319490652897979226941080771632849038038375143437516156829566178545395687416601414677416186559715660121645028035179115525848494238753849594055999495488171712524100336228518301671959061016580419739653738058985150342276177697913225412934002960928460565489446902597020909879419386874694974892381398127157163469796268197570558341015069332909949311965979643959910977609520527764915528164458478197884634915154395359261480713722436394837407808877256097520911239496065655031114411545749896919119892989021191489856988927026852036488578352556399265679468598894169412533510338512617356650643727698147437768661165009649247354148022590723678799743025544029275386320255030760168104929295670716969685097968205197663952345366023245245068596039792659594964249746866330478948466871047287575401745739937708107578339368750779477100572850159617626447034600819623488022211244585374635283655567504524089493788318235821259805516591621679487300006536780314381496443634838388642834036388728850548143458968097533293443219850107915853293215952333701592912038622039882436658589821894974261411075602972722923947449792343883834787788424789079008299400043569073260251624308707610661934390674434037510627739509197845314134486147445369123097857912739742664189909045437159429883756073312937956182150426542605069944933773746313401158641056174689308102983903130503981048161162763539552555205069987541157265874448137847611820085284064992570164411263325791225687116393056590410745499664276365618260591593319647816157755265267617756764139847752027132206719806289631405171728701291725849657366428559172329942611855272141233956336577737449176151048067590834303797534549509226076399741944410759883867628284601804887765655868875204046709324034495561743863394231475751131320131536485500571609215934086375436696940575151905001778638299687600582190578274416327397104692603850157968030147097450411232722738246518337539040105330120234028248795289449168532288698391855560175396096906979034721134806643818969905233170184371433194371036566769574466850464785926799172439049084909970544915032083619748021202519012659433806473550161384898494443493079935679234351995777429575873608539564142920919335226155735999559371207329113727364987288632411210082608156161648575971247974774443181731695550973713880911934812833013997939156537817421205609427227391510602802987557867238617391484067193001077630852796777244349733849779214347888180895311894657940420770899223516801308625010116161903350279916772659310541871477697192856333171350044248603725693467753770578159683635784167429301468102077071463828275894226098565000915782338163046223555250537058841039332355971706207145547874834243781730055523862377580512237597109951140801312541162016525942030546297840069643218085370359342589600462244131464762579013039071184231211727755478576673787274617134618435302589429631423681684292925942575904202788175416722311837477588424870564320996877664702230764878476172748976798540405735720323664306943158760318092445541450383610334574257497412603762219062151369404210224494713402500549901782828693844279972334589066594644491891076629259561553099087832286279591980059117215226551906119223729979229890014570523684749024571379222249420691076321530363581191751566569740730693998437256084801730973990397084373856222641081586566256616180790588623055196981581627618792264095695272539672848655317354536271376916276149619018581177334122678958735402282185825606383542048211199368542473490950151448705635432503486162024163649144688130908220584025271728908257423063678610289114397660593708954342673707450969068247977726314163926871349969367080635842796530722535078969871957561873730928160017622269942731261951495595308079400597098920931843525054757496995515918584160234838456746948323144692652847816551465134006784676506669189316093587590354785784250563584595942716001284795336646315611081203345862585565534037577554887674524336690500718050272414824380438011744248581705132502229847509942732871908567796146962911738809438698416863591982729370263074201494166828086501036548855301593712923042501896634174980122833283967016499922868417344710320470608176928464020278103024879855493094404134529715045509651668851462089642530012017434677177704563662128228872765075341912010902528930385767783592458300509566209229007169782155707522227158347094749641004465453231381537763166450420913728773579233933240490331610790874611517768046911273471046474913885969959258009062661683464657123791058242938497361039235527952096016196453022264076028576648669650146181871237969329332362301228791809899306021542579615044731717350607389897815348433296421337787439011032283980882514847223158102459593922282157686827548315079131025286485431805449181531652058973553787267124356929144085807915358647134567444249162692470325299185110474983710783524867573124118330005070203434706103169720521877705143270965768186862673292830867235126270475561229442937330440065342024627854497515067560486945350003676151981896292207238409653420069120308098470471364377253372562610234609414463741867368484563730567852068282350063522903244286293561069317623016159754839108399901163808314368027882856362700238760277376303784791956625463745928567967910131887821456742081529840004521057757862063807759653150377973876563221450771320748974853300859150388578325029037329619294540371635284992665919054371675629345682613573058840883564426414090941887181342009391892100633268294865984836204000195248199611947576697531902016989453751657888597138195017272831256305761750136121689057107804127260668482766785897854706993731154170177091153862919191641455498205539525285227586837328821199567519607130892180066713469614617664200392207960787058450543071886284869536948672780100340612574187433251933096168611411534222957483706298045976196037137264673456341598858102223924111799272937966930302264929290395626689701069155497927876189060777140626476420176892927230429967950558282051927896394644685750878949491859679914938837843199497637315620685926746310641888130141328916525935713622435550668344941671289923845382410354931672938752071628027005464572693339312734124596349196309720710376062186979175627368773441070733348554044915426788825217231873182531836715185627318693661624536636984084573323195910215234757201409674801619068145827580630932854462125434567318322871335586695625087789121228816294543711805261497639121672317401323762588858480211753679919655232759214009758751340651563388238373387724529007494043222803340813698603467788520529719164695674243418113250200615991885079146881486986239149697797182522911167168398072226413536452788536167595044852498196199861326027299858344192010036886968799225424172408971593120943631176422746373968540693106638483809801845858139699205419414529475402889722665216383286610806619685066694362459797493761547622598304593643670393444923064334037936135586316482273056217418779422837586567212981809797692534783871763340853706382446217677372661410985625457118860689722436323709704423222499595669545642018126367644656298737636655687218730066688286790467438865957387075591842518946942475282205856171093265633575412898413079588196517618352745505877829875743848532806126717946825403702713013021947084316405131013053690909231729789412582124605239976898624065513541258559289491174167169753017742681297729826890051658121513600228993244501739002091119073243766975332384209691427086693128400019472556684631702724786675857243728562481204198994368096271230943648382025654150223762345727760593675924325396525561706603090460537575553295183802681073241453151528336066934615771070374192410886344379431421908626631378351602494636001360106565551234101072305189509801187486897684988421657958932619685560465282561402787435286058111962967697155004483581916502353418507261475988482931242732166790666231234746129694510205516889872270515986041170558491078958314599992545704570219022465906958062457192280772025119609177556531325070920017008868151564677928373218323480162973446800784068058265586484924743657429172803442154918975827578557300639041860828881840640549716303801715380033117906707053623834036321451187677702874715517608407805203737738236342401630799966167878057634219516408287884395182342180129520879122096951370039715452426519817784805216654959296934196697121622152962328470515075898108345022861397264212799719766029526282287373645735495714211680307533627106401894245473250341970055337228127749022407188637224346874525066230906374996090593261997565049535179111166907106463140766542263851183315590835481965811570350097970000526350270464654136879384043084849580826636713972859853137312536486545758293057439769509802223021129693070466231392694053324640173150699656823474314840140644397292894673361142467102473631751092717801176977943598230937119156550465929698365012898476446890933820049546141688550678136874834999439898898984569537331935612120388158546315229526498329196361722310218781135622078816399872687791247897336627323442395995022083070469494896566258449499988154901342125974580012006557811223732171322476217136922689417295519290558560629116685574969538213865525573077487925517822061541160396560959180788233106882384125452689447094820417552303015112111643842825170605251339258255592720667069915451734731361602953145109092109553125556838953222319380886524575001467634764226215007695691617823819003349053517687476694887635642457810978166428588905972487841888043902770911209476517422778865757012121529378921114446751246323507201028443881630365281053110024470446070150971822815714858432485881677555608121434176949771683288330397545634227054841607642915006105302873017410747089324892546138297523067439020163013341796452932469965383134531053003690232162839324878528494225844197946995839807785517401588096763780970924545413459964686856673666030431040172034827961472081201808889083675586586655059100091918668808184628985550684832702737332953850053099481447588462268761788165973468545475247213768837771366570678679956661416011871980637016704805049907689023111266560312005791772695014570365691142660496817408966464315133700053510421802300484270320788966250186069142751685235567200977456999368515382259573448415951901444910513530951777125249649013362906715684978447784138255942383383314777947955856623186088978738243721088249754365759077998418613961550600644691876207899531269704185555323822379210039546912370324950394925841456954259958339714993436610306632031991643697251985380474825151715290482378585959064252826580867083952279416985106881077710653794598707532889535841006319480136441800558133264590664712892640876106069740645936283075042494548252775465054349548166901035238648897471911509860897657325042815057632472956762358578462151717195794606089684157069551226217933779941562619845923018230848437104371934814510584980052754768087400240858922318868923930594765770218425702070710945174325535480773917722770674799588060922763042973983120094282714091300051921644398439288495483962781917551000209309379806797679924245531485033476640556181977364527563342664520075017525546175543463875750753068392623646229720346376084968007676419985109757393158245505437197795743085571288594543077142800924852845120109224553599239621569301380096067414192702214759895775260939248743507627016108453987340956682073425028120204239904453514097716797207963161829284325094688417809991529815784147530438711430690273808626016997537449014761979542741626106330973677110112180225939566171005887713697398583551653985253274219740551888087082012959348749750457867595423626898920913836897686550905818792333043597457239122647079274429251623885406355473065625712687971913924388846646546576144628443995748980071752847907651515605254887726923781059573064037338915001575365095275252992469832545125074645280079853881910317908847347500213744434804301420980772818946146974241056944176924552099316637113145506630967379821799958015852847562726710147541841591743247978368981871867361856237452265052898721510174464111882127836904415821101169609379388449813703611369454277450157071170680160344823199802835957947508777927412983814817063495951456190029426753704976805099638828508957861496124041660652193527638871736659353811029851291291791533312205353824673819816190038461446067922505427645059898331907653518116016452545215183745830655672321453736470542382805364090624174549048615111562105804444087413148071478212853942488627318196779557348502241143880162072967736014748445816691795939238117491214017789450355287582446794407967032927607646819567727989859489380620508362757153178344833809243880170431861319331048026893927591698476786496473620608780154273864439887405432396281282289588478183765546061475129154753060597455356713430278145834458813014342072626958063716825360733440772050709811706904595385497427770661492427354210808956889754152760852395769938259537661679519522205115575952998626709956726180413344401773525613588517636404540702610992892143614753771321414950226529212970885441520417440580638267737357862701195729412032585932267066802834155362538913603415726143634566365000805272529843265190800292855622156806025329254347347618986771105864370707876117453909517778168106144415962291914920385988010014742861905739063134185411108093959275955471361956037676545341115000942091461697379627011614498645548220651396046711207441419864403407993962834024834951815197477805416270831547237500270659901235780855791386629242762755342402094526214792873643210764132478805366985824329967300666382875704759054145272523382265476570659406569616378151782405268110961012108256449645828097724192368271762059332008790118357602654297055136220734406310510287926636031316420941103066069218853040694876035647795289879616167394285452380431819486022010609893943206360977805236546870467245019222398567393565703137751950533779285689197029604290560136953303306439320520406586842057262101029603705852252180307974778743101724676086517386587180180468223019861590902290783794992092419708531222622550279615673857165487465345466179102936947408110188184229044514532798034271093164850135561392308816380590850598246349133153066283427196612607036521646607138401960862514558370226894958328895397877552435133001474436829229876400056429379645917305003859924727313981406235840785388351753453697457134850640355266592401560848678015744543830107338261665146187174341997986477522497289350501240049893730401384084683183761001812558560733374908556209443296842655986789736207686253259920296285862194591866799994478724009819312444735697743560384336354091012457079235920255325694838127088538195029882745201062399130989198152846635304227378047584118627553669431743759029399488278311454359274601943934560361145656925189694305533942744493936552319779231554726665342495858331898665658954550000203820592170580867389194900128561380669320167123680562934439890943493504406421320438278852354709065165835835873866044695389562433106598566731542370668493883243429725677614413752296073886362144256117815754927841492664946451213259516372740222894997892954158997692937861860029371180526544644682826044845371766177717480044500976664543285339381712478560259669775641376590874966751547837350892495064898648075667133011990845769031954531744958299038095461911596214045943089256737043601059983433727500467319982463085361714466685595653264852665399197632471446630803202450131102111914982563128031826212552798724234244296921026967268983044501431883259584698213769412444719817114476857343552253353631000749753747318248706967351824972941882603349130980164810413285901919605775578369432501753180311565387862611266388690637398955979667301562289319278721316331968232912875278931362689786663628822905450750273420705460530995868744586423295864716193913968570074972585029570175107763199733386835076058532790959647518427466651559582673746553713993224370700575674339962156403013977357618631377628158364326170741966442724850595555571086283525479310164524650195045833067001073802083279171549353530251069301911620458451286099416252458336478185206647137622471646566740826689954788221205815528924104231146776402769467040279432322746421063961348769357223621621782042289385887229451027323869119817371396621528641691559089521034872013352092967928557865796729112221615510666294046727704919161086234611189871125555688412697838372686975269321323429179550360632932536763674002682037786960591222708417987279644555027684266501677905617461297928651056594105623035607258535022744220936900536832907866561639671606429250941542239770688812516759742870104995925556243562220132543616205640341861888432722459221693830518046323663486151814445551351454819072109324705974195569414311401697494680680504263848983755185916822830397870097543317290336784504191913977192080569482111252931127626821503691669088676087378926779532322184977190729278257359786826943263634544472781371316519239578665272591375813911492301536156509427911228743458045271593483453214427410319362212922479130128127323920793376698794962638999465669906054152809202273252625938077509865424056274942604703339315085765618851396187316814911217316558962467071889763625654309797119613753580355097477307549800141082205496689049536339180323000079257600556221119532306533644037673425616585808258382299073376814789224639567737752772616871451525153303859979219837592567680530879015544107733994751709896570999832324198218004023769909805841748085203719298290352872977584943003793074406117279860550896927572842250006007813130882349861839217759625573223396265503718952845241660842276727358587145578088393563822709229553420305653730682379797802012597732108719664778819159712754076358142451630716074949648616092457399999477059743245168640778038660161248239256403500685903063407148297952650001397795029153666461539355494618337621702387650154216165677879283821642465587802413869467492349963039926769205706745359108704570092513061279210843464625313355915335800290133492073653462658192728181243426976734386284549692191326856326305442660600912318363691032377949775685620882820675188670614420354169277135365946285820052658051531098216009152257461344196176907139876742860714035651983509500964365029326566222114972202288245642065939333555515303557940566134694935070767454348860106105022269090263582588519195170294793911105180772765144462925208284030470855135651075689163941693643042287921590152149000831691155599977519798644707674840034993333900729838875915490067658400073960385472226481506279398756454358284604702825096368865819420560432885511539344458119218799303432860059711857750385911611945146095064540778442638656170889685038509082499702694979978394027180654210688614326323875314221661528801873787809301109498615331655768169177720630328456384524021269550235879032065641523061202994107982056765016384382004413521870514564473165003883922014722076540628411878851267033578721411827611780105431243106096015029080936540998270392485190261640396913015814978919514834436779725142264480864808923094316956725421637968500026158063897810769130171182960271065454976796233259116220850786385485910223069957967147115958730935259586112450495727464531576987192491471132493526054500111923041569779200800246579268333364498485014131817839536926318857056058568015295384787774082472023365313537172986060102892703687496090752712971810920325612723058394464000619428388938733556871454873413518176376986344962608291482251441566000010921695316269445054789371901887589764367417113386012779445915308148818315297074549047221848654261072946060237881665264468515536040631432909990070046282577652591243425098016789812195034698555525593913750609802124511088069978882888794896900337925956709933364515094841516314782528610169386436781635343914476141377684213184481891748291446245560297002634439878890059047643903129993348994218916273770829526099747404062182712091322155659514905805685829824420596298357843783246490586061775075726133754850276587112397064619762842552325519522790154879126574241211437416318774951011918636803651936087301109424475529316792463541254263142447417538316788452272982913445889028615398779713668013202072142583403094112622493144009889289544001662291526594277998031284746744617268292803779124085737504421938849127908614410009985975584322912386982950830656784505137258982355992944290059612275726725234154854859179832975566637905851888059216528514342840466692859808194265328461817907198081156326695750208454769186438016998971641238970679551496837193570930005469962385826336749369930040509893115528806849687333463223924217882291451776363194309485706020759467855247925762618789158391995409717794426692815453048457227483216039347770810835991476222804703065811926896931414221810861456431098801617158733536694915642052060028738517583773469080125116185128391618937645454250091242070749673023915709326117975868428483374103310265882731733918936060427901547712503388045520546359574731111162847117784226688558370254530473485901705264794720847413720981465489415810740677527275974090000924631710947783299746381596267746538878798552742621443447286968415791234863692896584324925157327796229937204494242706457709789285047304992390305370909725885209634252943356051827660333229911398907289957588467120704153417548125037168480938041986942168291393365650213634341940215402625227431861045473853761685328792393167527063982330974218184311346812781835754965803289148575033637201241052327625468893078527131345544421449923189634602546643983602007914468275532014715092186621444712278951213028775991312597331373270143114918309926767269896268056402974937052481960841236908434429100365748551257268410466307453646705506539728386926464929085928821028285185545125901529240636194662360422330740839802104368386865482528072721140133553959346238054897049920651133747789615644496186126385237787391094811520560090058423253423637007228534382076940512984522506348171333890330136064729588163614166834305664785075209681396844834782179581500974647324766269547984901996824834510730345051704340299357257479256896625257224693722569108994315088544457919967031019000203698378473567657946474286156861252736130667728947194322986607591356985851141473872712304055761993256912428928838839713623351876778193210568111933033117101611374033072407592222240086687627187210488004536430901456020406883843264673530138324943941067250775572832924634206826863639357341344914494095528886585630612613684752165587926409377082620116629917167161291095603081827478023112845676041611993367426471298750788876965519287106086682197771655914223768772700977480021521534322723267966953290836206346414862093657978757133626897510770378546217963728638389370814083074538796447536020136496089899363335797121503649050104148585873258671282052323218427079051137126645124383109853656282989409059846869164218540279349834217751529034295033699380852794424962235818726834128480909668374340037975001401412412005072256165689671111513312654461735811600739249066304886666580416098432673502537414455081439593346561744541660353893595809215055194527605586317028559949652459865209559357780750307933433662469216339383811542672873647066030846346995017692943806647120454232452468569416588611233426526472918374307031250034877822724103635718385716333159480555794972458077708147276031532272721054049525120248299076891958457242257979002026193674150592025825645167705958955603869943076540356129332835263430475925635513071810853931306130898112993935472171088819008716233966254390584855079298862254006544167403274323738043238062508627430101064550316207193656700833584517248346019975089100415313994834698478913205939156346153627995140023560214448838963881593234691643084178067702681098205980709573287351661049438572782441129384313358975041437493133697164142862232473789450789724728337932628382452984316135087117652840216924266728068664740327893543052758287846956036785527731894519349080896992360371749258580982716253431485269527359487451848640792600322301614886413873426926750239513255438178896939683504661155389475424553458333523887434487901475758233051674239451172040950206059118593539223957058823501179831656311184592907633910696812898802646155285957266367399236044546263942392203827296017877043302803712713112731883025144980319739240757218263654030987624319084793103004528792908223395820460788370967334709582384433424981210012605442712065753124655007517128176859888530550023253425466985214494460896789845255045024922266629975692403820218055581256566324550338491870464954847130638558284591437321114873517264616231402272488111990878341629460157156116972449241771935597398315042058324792745351987975940391067248601400343968471228527892731938107868402055656116135497854554312983495144828544138033557772090003291973832208903832815039126875191840100842273951611681273490745676252195602194895345750931760589557807265310220185177210456867666323633351806350111257427209390708234493909869156781019306122194743609617198327325369869971783328274020739716789691282014954281740817944752331915451416348717200036753823765787847029061494525114802820636098429724895273144680601970694885501539214562496778045051669416267027997860157512932735309577666390712294863878653149324196894945350078013559111623660792113725572509770884364891868590818682356416261846943332299155007394346851038136688724748641975342197740014325033433870981953386226602556263117846677844549383500831367658093275967528463962554176125541829656811650140343956730402761974315640693194135760625717992123626952439244290685969899887106462748261940206327734996237721398966751557531927320899275512618635369315631404074666586936783779774418684107875518733699717002522426362381551145129976039577767383171579303115060458792155456071475701320692471843489287032720035324132948273202659209007103519494893431990231499631991123343084133802438839466969622004594234673080249499284453309156691410927587989904058535217155580649471039982367259791620569004124612575743355279569781581049651993412851441476458579375210907698669617578913926803023460863463077621144308875703963421474167036035815531190425331878188171997323430042375856483570213432180253358890447235997606582738016015921281745640326221525174064890480047811280464119222274800146469931348498385295476348804616618174978067229456763564992190591416386850024470898261088083398951617192963525232358888260025668303858127370739503013183023638080206988309882705161351193447110290752558595485008200084484135309505637050672560327943858606864693033540515914290606635298330643185534695964883493953146032708461574637883997160371959074050282079557200467188799942587472648435791032782407738402311978589515305127891901324323254050011712083345293045446198853131093288554805562993459060367017333790017341720234198104832631137489456833848564073851026440949362400207123223991550745956831924082769979203993533110203966861141327613788082097019227147269327082300165546509522703626281924288714033302796497414294311149509968582406158952647420427067799653764633311264213688703833263461741281272301939455792978693528118914639986120062190097169238866509493021254261697065030240668241750456803099955483917302542235669915707321381409080568283541220113946110633440902801983476355369199587917954144707706952733116603186553198223759143986604679047707332027763424939930771055181993408920912032325698676950211532138707845676177301107858219291926953209408647683614296512263162668946778474273046388426442902354262917170999817969852051378410040373521425112990576358526248259571808876273087251531957002688123494771058247452830890997281867119199387332911682118051218801352773521329522896512053414513855016769042156130589944598277685436707572933935003902168538832751442205246617312243337475176213972362136578427350903964624674516166531154410003956355394014085592134102400762392514135735813897763119973603656220771976911770109642345445987811295037406525891153077968488823142546326047589802256355596488628479674319573524358906258708712016212784176549982363114764096452260430505689446585626352145779407591101319750944500029954937103943631115653687514200552529752762975161616972324885489098604869810841231445266316122404912796990593938545720354433708912912539864662013162133017742781089087277770274690000094116276531462195559698826651448960292180913684255116834165454401882913665130515441335676065040954233100943384395394726522313960243373260121477434913338757792013714229973449532930861814484710088185123669622988377332314939242005404891218102431764714335069515192587053642529988676431947315709083881621904600373577549845679196686059025021695580178197839534451561433133279311197824120796040444950011471214987096520778703880440925972719876950431197596265390039066167465575918791750981865284686455780149171017446038439370689629951642249373606998333959437084767238251649658844761160718959737146882848273877579772499618095545857319472970735448207652189387231818526728937175770258164263433877823797555609985648559182303419532531065196055794957408188391459776016334305968464370464856285409434379281596143574999835704060298406740455955768061502211968049917011204155889980462283381379398084514900942647262966606805299030677244883626023746067255727764757320044834658494311842896295051596230316809993274276654941842689174598642907833475810850470308255991109971373097173996479368742700368693950083059612938890907011532283290457309383070890062740955080265716568446443527563565346505013717675066872619683654433296563630497439003451286310056260657819775928784489387254847731724686058809775636506922220151768055609493230147321331694045131812386466801376081499882382039331060686574627560167900441765655547003921158581032849664082304920487813046832646234418714058382058174272356163140266931366720860630446840344000041462700931856834658623239113018335525498414232897669730612495683365024121094405377469739369332814608285357071766306772448516568572165372948104715541859349719870007731859091271173687118422700714920950583550608417475530228084258031893078680570118268883703629362875958608464389420641171853401478320777664832099658610120789778053026068671713013810228800869701885056314609383727729075682856092894354179530047621844589492347636705582874411794076452438075255030118845113310332099310545871126028002001087028693375354362067233859818398461772478391464955456550044978709888061603557749200686066187785662688538948946613453665822025578360885989964550083106764350213883012329810613330007930241106524985210437975208752250249542207307080233863398743927125385609169400959064625149160898810980485069284663561167129773766984670187964232756936137320057498939778157758289869925711000635220326270160226534909657491789287715656352392566386509844050731059512308168432532167232499547982050504076928715563988472875002273054508634068796294846493205556287414652114165423005068264504178537182809104572129186901516386305244134305876421375973142428810989131471563352063465295330486853311543151068005883273293361568058712203391097268871245208336155924457908989810380924213743461303545795664065152685537043361173674008649900161054829171053817592258640071241387183140674447399178117538699727319035503266711298756757823430067161528223262996819579367203817303547163583187172447991828495051192613712631080131307367622739585237648904494459548550193812514015626425183143384858925708567840061886307602978800358612706045295752843300477644056070972618165340655172146219807516914559045841493073258990292783517662785305214894928089429411015521313833165958672056716502774426290806202845178510113203134507865211972139693843630033902431349014209504768822429821493109263933859773328383864574460148527966441397842610042601154725311722989761621299336750416706823875886306321625139681620327504727949162626373255066123848853140173655580995887591345078418939884349758047157213705648068351254270482282793314047580038287908501296981883490608374208978170842226605636557766730711744304256086458456767746645410644869732229411112393847193473761671273771795084355103634146716565705248757041442412078744992100026536208878048629323521841077034086805655648899218786997755282132987088467283079707307127166527840745081447035983116178531499162668936399538988862212927805503620962607576940585217859266899289481884318321101675756947067038725059654889259187855907102004678766466567869358637366861061039513052486008707852236597123570371939384933918788862043799086777632821884254847618077040219124001569204934747249887368024228312114542014726391240673756688292944214120309344035309617862253846326129756123220168008287349676764448693597561003111848581205035616559251294986281295227694724984484631514821119103959310411729943143057949887287413394423289727099878929233990578547447307443860428356056861267217156822262477815754214998098127660585795876661589204984771620878156203757266833243861096888178861571360546790536895603054512181693408086056613194061287861469860873164484637619470624241431758574218341003954275691981446270158136923909474019880362616471605568896914644651361597112427382241880807771569311671087514786780989207981878824872010026626675389683356053712073112331246326300922786499043007426498452142029237791021513422596769955873136382913768003092576414936998502821821097088178521937884508542624911143057909173018644740391909407462821297329680767761538917192386603685605706297685111148178872922000566715697139472386370088057439264419623288901063673460929318526403989337297658079164340712989255346255395055127639936760790512497560306683480932101604981919741917658178040394871066598134955462371577089376434597347377152828448347208049263649030572884647105409259389775144953360696273117060286720711453823635891928270867561878964664558400288526769385202241630885003207568101924859771297431020841821119858862238869670579068836241007609518841394298928775333675791616713270169737710616360787871415588465617945105746662799922537231020644827024011772125583493012443178950770687095393384960136203263018836829195753849386925491567708079712822347823283609052706157364194762663868992533398393455115375259415132166101286847954250261113382067400775785084759543839262015589665083483978711265343480413135213161819660503963874192902523786024758124992151068154799181593153683134469936892872843607651005973812439306385086920897983335710614111028097935852575770401052183129074680689486319096337820922165849404101020617223563524818930701659986082776040130322281973774493420173394336709780083702747443349080815980252294020121143526437119526959659133881163040228671520612738440503584929804239125359826712174847644084239798583810219188544820974714427556074344220290953950054310947659849428302276719494341515221636437674816652602731514755497726781257150276227950515678180706841799880664184239227049522802915239570921062346458770413722000804774508436260668844772451375069348405345525756577102974637963814587870189932672136591083167876472398901483480402956050120107409698491222858450822417281696467228034376278943641012085948346815267329785143978568491340708070633063232270793246269559306500238185804717319212307489692316400404272590773122291665847995807039743389787303924509151791030076912362192219043618932966260414359966730252600133965570884917647230948158658389604742391463908275990603361019371828120941306138505703419974388659223382121050079148357662653652190072651355523110138594918044554637570717827984765808375583294933392707990891054503258418162986067103396186999341436623993976103587171606362968389961332167257886441813641005294484966078828065773006144653651642105036834715990305976886595807966981117697294491295959828494591039537456771792659474765723278208336272672695129587454304263061095402186487774684916568958318448729174910058271583744495258581015525452133169357847465358662149882588236733560807130709000360200894722153735019114803920617492060140580888705431560059091980930396559706522828687024367540483152669540350524382984407194400385553759230226489424138601776285491438956290375476801725441246748803705922406972640256252176627613258160223237175871472364790152329669973551359986089183430565148504200380260578535642258000425245289966265816274254182700973174547001603719488493370150422903665957083705796706411272068680504062015454970881698476996460968266350317170244534280985425601932302899797784566647196314502204030150309117739708229397431829074775578256653562135943851773485032145360211400097961841280112705783601614473719955855984376536331693100242594334925701441904236157042423644759129026549082781719498327961891669083440795660696416492776791097160615698404190128745586844065151988907429709723353881557204666109768150626819512075599998513155622405137965978921018105266162728538678914412631938135128831893478568488538242586012766411652795348613029068969520044357121344127251962219071377385535612252759500060382360018735008436906496596228369209967408360699773207429334895119998752163061159266831093469722758480652062982997994472971126998251021659082636612351628572956098498359517311744654892420466601661450459728843114429114465603519681800849130482802211926997134035046368468833977648375631352447110973236994000652747204164646624858452229285065755908735993481457071429290555929441045233669205931011204205580134540031513885463274947468500030927296052484767950468948675642702582756699877071207058063401632969318325599195218259500038924885325634376930124950891709984630643904070017799370865120986482135737716076446294604352257986971805646706248760718466083610517385926175543938461589417119431387675541066834138442998901364027529919930093359897910589085207347943527338522196709411124962917587896078058813029171816481017482972077557181234064569824146312268921789203852764275345823539995194792163929454738636408125960634055122242298577820810226826423241802346148961946749789677779441187125017389956641237373780857772175409251429652903505160519971635420611913058211611762814277854966018021104430894479529484882537659923740849930970915884462970063210371431656424220079367222421997402588789155602453017111926102997204191550607090641125737516026472170957346186934602790676893316607905906413164337919443668631418396723993583991367738115149482811431446981597222471096202877514459242423943082298224076291645753449842857146062102119144433489407493360003230940944453878059218892559969461886317603781504224584782427660523773601054839594151696148997412574524194429887826607281867066801916604700024265647163452594598937087595770469688057919522002540147993252368967826854736002547134164708386659170364543483750773757034153437027398952205481443833194389866139811227929788767178506148215173088829709746659160924069301349201441092724663793103856406465761970048865627265179802117403031792023151252719939918143498140840155456378296265757828595341456511071776527696501704390923782282107833887045598273131476886963958668185140201291300845154156638306021229364042936966616813582326769022856787767193988221557741933251710975235555659927803217168901517958602075712242881680450369748401517015291369878174285301147585417023454769697532950594857421370214798085755193910059121124199838852056630379386715086338571728929446400316200485031696100323296079938382770089358235963353957415629676050660897823686545769290232538533500254596574111777447696912604092565933404471900085827041274615985960464111018012911987189673292038312815690576905248179569078285753322019684077833487208793992128075115628645208036983806441481778060079504893920131253228054800875461486096592414614543088963484278971769434704905176751087758213377086117963301129565157879589679209402892617433480277835784843453920576855855565722771765695198987160125239365312884976467013763574096609252964757304901202186913753237323806532633853773628093994260149539426551276386546925802009871195901707470872238970771778440195717962299477417186422121029793147375161493195215917764353017470144623402720832361051440422622833152134321570757112993033404160513382823337946618336488831313816127575496300707235285264381522844742265685571800989951680241203408152252190355601697066574537710272343736854796657690794228846659116571090526172658146443218313883732053974985340499403174874612622306676849049016013675290044716906356440367931720559093195967764956818665584714012762533916574120162601695624434901395445111905377893835730283458070526267583420404774217754916758304323749574752076531945084995683413001189721280326752799962783939978258615066935906564833651808836095873620601698683928982667741675616080555419091128332627033785699239152690632047809172569833681111113878389126432905313250192945998174987451346055719800333350715501604360637560227905579537280598115890383202583604475374910143559722588806972282549774391787536497330856659274039784936997048470542031633741017621439547989318049475459935095495673933928048613128883433704930966126819887908243773079382890583085944286979295240182352488417786344291259750713907435868953851807598753182277794568069960546356738102740335921090121604966901435527389762388996670755187380921295244539700628298550120807525111970324515327336928461129972810482086088480754294621359989350902422918360180282940952262628221058962087845368658170689091352647230765477429588851098662024505324918216292659545029412412572153288281843514368440950979362575328084795200446779355085824886386111195624114507831756705999371531858024162937703503871860987505162091731756367980696594146307869619866224334264681205567053547813257895409190349041889104580950543250564827382790738540295753569037663840731129803397519123091171203921843237884561501248815525465630337778976449040477431262433880924047686347660937331896763622286359839820216842118140074179741129181480393919468512786922654567504792520812433217881312695635097378223769547808881650530056160987191178730732577732568514943013172975454957689322698334020453319696389800885194070737757170350620024730841045037018537386133378085747055046983433720336689753553015957599908513170022037608741516187797549513418087545358417602476707092403610731661221483458493731955527083817849791102979017473252349939903789038854233118936946917680925981819869827754848280373229482857348217655099941788069295783257252502366178624791649887102677565303983661823230713121679423576038195754328770772702868478353535861089185778920261638106781880998487312669031834467354166257676278552682190251847342339587789415421776732665950918957362082240684390657683521706525648250479216922713391285559717686197890880763754662332585630649154686403602086070656908398703592915098443482224888838948552369568873560162176851700968291507570224786786753573631161405449303465498213780418234798305183635960496146832639523905017101099298620384079565256788009371394450043165467596636658380389957009751745762353273085756401030818169229809092356275961052730839332897226096581284571428317250674134324274594187938621747080785582741734264405694183614613740813410973600215391469592580504088940571662162138389337628560998665790051318402430961050032685401204749870033453624696196781615717431748729416534737108819052294818993908272607814459167956623828381852949312536459525180222630431403638453049110454770356169178623676097839622014385895021947005381936827306793056188354349239134296486046368423179517482612803477413957821488487402415249771053063315854151584753353529391638667914455927252466562607670308679018824007201904624374175780752086802534166885596599127047809395005210784339591435336781178430279548182879277782604606936840000620599254282071049146608624147410147044088995621305777338835330284294393417020518251869947990098338154437183281955978713671176931679513737243948936103542076334986058883374241077679048191391917743413683294233471555696074872721161700874554403823883347197559604522958310643727683960749283350991562502735315410009969420674761787421840990793544721616771645777110249250360203252808221388916083646852941631568327493525643595693106432712061914238149108387909167860723828550059091802194194699876323098449822333194634479684398673343206528202449484455542039366868436403349884101752352973547563835110626435335531427022826231399935741646755462095021650687734997639522287767228802924095394543845296925588023817091821900680113351096767307195671676493120782809399966105911986008199045588637978845792706232171066660378611298983654389313632298350634435061693290513106149365701959252213158544580597742410298774523728634543574674507531970985660149890508051936738080734776227807365522554406076474821935070871621716658028714141496463790283466438959017213625355703685631858250165597399837691210543673964574977147704012091583972582595648720890863331394403888844042940717378850903119256805732570916026255712363571792257291713899988555309867524368073887437854116916512075580483715948484123943414145661038279484920060332840968113425807058357577859243792927972092255184291387452892365545366762206061984837140274314803741893762319658496706009807715928023879667992728811943923018739944648564823198971952352937959352580932134005360331729565996447940029764792122834755577620120786444926802602458344834801948574391040895041565176513727940855950319224768696596141548974887864928875247325127609715682579916327860248737474347538728555318489621097019329127565664984667068395527536662754070199773465314494695244728003112095865690049796237893777186421580930204573678226673754565447153465210330509394911211192495337378713544205200843205865683597936456547596718064333844631163033928911001732848987541642218563787209374350090075442566735804112898618159600963084512782363044057045549340870658225267470916349280798712742922144044076621703277403396842299128293157762440645578197227748234923641747205455723023117999557058510749438552411087725326312554744649546857401755564577309460101211703729636826687295596614450566638297613794906757648873126826138424999873240903862455369854913066422645598216680237317970083369742164420593813148255800445847139998680341125083763053212024110502168737080514889943824372722547429010133808223394927475599701556712298876971368435737065112927168740224462105376262654010140499864864253992498238489457831919904853798784365484246795810086300903798517326129514670010073989067816709165803635221044218785255754911407966101265373530329000174333286853300861116882503539130620283013924979609545245185223598078484461481760267107390093497638738668180803211634454707648157700640161513785841348061430606821413462195175657082764743039187976933633452695681153909474094075778154544167758116712288279181184582482562476977979647250514177127112988530865566211707677901254739498807636954638032434917259123610771152831987790939721985050301737775522930346233344939919627648042715209491889609367906779595938712173744363878578406715072703393531160788474468397574919290279016067114667434836299933288822951455243942642563222831298136295249385133036434642389615123962353774358935236363252595063738679889348503125858999392589095311681912176606193222047911823053016511266209784942349951575581173840949418214960871035910107419547179750042393407681126852592036661500964930598864888974510266109028625133835937917782911488261371487172079195983775051809848184936079883641017267016546805045148349261850046436383434983383390172177110880062728862521976519446751272009364565405755901879073757769306421340634226998445607812776489888899199873500046277988173861077350820781218584269995900855967727854458707320080877998853849153193994717286997079046950527653164972666607075008800550894272599373373754259459846107742535874641610888241518180565208241224086573066909884787394693249784218722934399396780172155378310533118484231347317030239733428145023337000740732869580753291231899121323313469000272775549650307481205895584465982592043756971057960169543562044830468725682216806041396417025406879929267498496636786500278284817041145896729680109986080151563867747670914532189872597905016674627245027178248774366416911759549336081500100772265564365212823266824230584631190811246806454808593429905980692780739435581566106946225794088149594829381932488799582183255088113859910653231036051773099648608764727294490101949187934617564252202747866596946649241409436543551478195633943935744739954354479947768569628553733766813000060879152877593103832866574812364553434800553163458741910784894749378344604660927983174600232250093969495436363045203909847420149057944296123149050409978311494070186355607018948197218098688384015709104791065678596419954850661294961083127557611625059155421959624444362058538489492858595428788794446365977079035412779013249639054781448740933894011506172852710695345489828481832553984794372099913166631047143954998266937883466627751715604843056505753413740283163823004557081877899199560604367170831540107063322598107006783731719889885362821113259479450012448698292796541680652101766316227213038862757274960300515200606633527201078876933744014868380423535591600316158320902083083701537792965325282393059530309437016706637687264948256877166895544750651813087403255890350570974364409395371892337519096558793300097151484596878698837258039712010306390591219231136015055823204524364911494259083919614879374280383092368503948413028485773565806303541997694904272507836336139146492806243215848306851112828915218300282920925191154004538436398635686547387067171540026292701159451476035353867327609715768087620764686128564837125317792017641255060930682218293964604715728577742348796080881475055560196766770508644817599330730240876073458475037862459581766435745871748073655878348898824373121375777457717309170481501405540581000370542470965053332366206918926711219068659524905472515227834118578977397274454815659288506384732871704429705944084598455257269111192465726906206976487315033874659212567759384088261517605083086498073302005019434028751119670530954668930131404205073594745806106826008296752577600648521925369339869505002662196303942191157442618843865386618048826181786600982889145125345235845015479699276555851343320394500556857541638118957026631304186514967415242385221970404008481822179443668542050283688246157429953559979076442444142700027553163051908390622168318727459384230823049568984329921224320467505199930597017204555178160228583927371948436920090286068849192525868202366066636584329979011925366051815937103969968411921817567647442319011185501268009606930306734949703502247804940427434349410009107373242487598075003954675278437817737146997923187706552172668039266181978797676358934739630699447431445775140871218222205083125652098943498931981449103302607576271086333187234216157432088722937034099865506052749756566298520779787637567792740643310199277025485694158952434504581738567465798114086166961322248356294656215524424052269287783530598576265436418306292885462144785637710901328095221303968073418837473169810463961829344067627124322988449686359959108566678553869500109875676011629481961655479001835007743049260503610354633981192491269286263533308169035394622609349291943115300174150463290039685230578026207976431020814275417199388133304188736212851313094306118863373643875427645681328961748784949292737612860429810560059704648115624648613288156471827430989673955472411037067450597065235309664239978837837313518026859270455916161744639220909864980999635630481732525799113907072213289916769158582625483913538088493617461487239697317846609834897796203596425321752363197603696061472934680303829599445945016112467269496230115422240931111335338268743600974552671014212035623107334037835309963681858142844081311689322640945400658349322092594571570563704006942989010550645950483671892328169193552476471464437401267628773745222998250655719264066673711344696011439058748080881631753182943626220853221204526402994784104045448546180048338215832618842416059283180219602935629519970754291411248277345533901210599502412161580991565383307832599314094120639285637650771130778048624672144488426445048733258004874329079822237993162247417175444277872745667940934109543986109578661103666497874780241105027505211313731852295786875557163851902670123189918210070967097965469053668401704791370663808105257737580010591550499736024650677097449784782061565276383794959930990660975009445731402131606867200559827335001869254001609547186312940003734170990287148144164115134743573963384648259724918112317141219825026772157872033922111907518788002663616378852798339020877079119956813636481877439526273236775303440332691396900148061855686306267186654366385883624173307137571836310461260189610631832163200785422050340290275180971753662486384655112172497359624120854982672792895144652655281447582358333198219789655255473418325231876477850186635578622691729345989407575813343047074289155968048225032453698590085099205829102879843290244685491790505194282232181242266271788035392179918429585792655118025463988372144829165296457032516035633570284609392157780254705882144487376952862285786975775931445856635142838013742129273895402343995295571404861663563950852957791609997963892732278220189571557718267932448051685513635479754444789158375546313532801841650058744069044861173550202974324427027600360322101207672526050613768502094621928576435884383599782237233411272745268521314641421712223086260008282997318473312964724439525332192974069316842411553561377191642976443618881066003067432693189424814061111045498929212445966026994126567094667170648659422735342901323926596336850084527078409605187792387995253784985796397512348405898049028404979216455349700880411816099162701054305822397265296044953988722610852704524867559999134070080433381401880202264868531437455102028722579817004191195769020669784639588186306838331808143698099188155200885079708672579619055014766109757135687579803964601064411690965273252833477096831887632764857874087213831196303565748264509596670775004016844740794701366151840805092699167462435664132225854260249524804375074426156119727971509576913165836828151515339698190885942486180288388514944358943114899243375600100036637780078376522005439607477131058362811355557436574025174295558061419868355426102012550254673195049188890859519563000128135677146779930266453121959518829452448441554213594246023372338219715758377585036349194053035752782476790090941262750235503882858918402046124296294740332023835274923053212070108812599529598706202817640976750630450739777243698164104171738114521591641236500681230238427822618031627901337644461516319320743958378842950066451529726805243692394877290208341720405282492870945359914568985581495837404838727006016931204365716742163421043940698928891539276772923870311921653162722785748479561226505106113267409520080228773803660602739294419583377996706771792005025208936863891076296704629764639189461231421935649604873401146996365745927262098825856105363381694176234136300687336275437489343863996560787083541250431645399018996246703329954040936136078153803012675764360016012614248164017967895137297496554638165256652637999603606706626945247800174596506022758132393242774682103042966282945780773851127836164647567381137024856085526214973037832792390908665849986686249429031151962333161733532733248665446452478385852187433663226587313066790598946272980620888706006883409384166845656035144699761148245841676483429449883478879061904138125653654022696936592104347772731995317486341449692621040233290575070552742537630573219683218959081929124526418242569474356581053279973607493373151759961209646598357715331423372339233423257714926420371773933720723245615449109565470731068324903941344891659366004693173785331104136691314073409034696463457692413951324563984248250931944379520284400213393572696421799108217294638118534714576673523266214968541741686060089451248020442664141019488444926376649142287951547501965970258376402753493649636560251323024582983620786954180712688196235264704691203920797400351316934423627071778258139420469089778436999884606669896934169740357135733794966461324770794413862425485055032347206412124898873396092770910165800692636828297769276701038993831519696871704056214398456497428854407641951844508747769362793650058805541295754307498480339549664455659124186461418639008231992340987251344009537548280994989306238652099620051612510330484968373537580276656275171171048305518098996746584943365416436558754751723730753473557753075290351499702241246837456570043894331748591792123643290391125345148154364957582463919968596638223120438201416294220493579757674643080287074617437862667710324766300428238515738634707115932125255812919152349357035367753473249072218400158442050144477849599526615977841809973375827784628221988687378038594012584205619537857702443566427659964348646670267029441372764850116057871789798927358749731580913272482763701190456305568388506786381506689511574906739937436949491526568623239402725325477910078606441874107420831228305250543799613018909107742859163981905143563963112213746163124946315077059370660990225931463923451204209843974302298980994747946382367571572310728136229345566420725647668999358003273351181618631209410569472602320967742986141961244351074661407790893882771617980256819773359904466990871511675055720120959659624262796615564111661241759806008227959834067097607861370217138097318448568913775658335889427092762230658785234736864726051071998303392728448505747055021963603343874245311426660169009678600373588143900713781095656018592992491814216940231820264071009193757868854052027577012796301766877225472351616096628001273191514539183564573974329608750613905150474245082589994698992841894589832676881313268816195181538894480909140217154983904875111952272536887845980388125283055802532389848078495888223379684202115893792664905709563283071212999952133172339389177342104427114166245838397019432568764990890092323506207483041253346918399505722110779812461737112097310723715902066776913802241905236533676219400875080237025752926579022910962816107233177177714608531937763439380079944471696228251689533876884436905425353111608658282291904608617597892312487179543671466781955132423531438146094712143371580621035546545697112123261226970774961055048345059823106348204992425801939906099047614239981668564787709737646799380408522991027232232774043916611617661359910977257325041276345110629027248033373168796685988195730789094381018335025980180829799375829313575176564280411672277714318856974263227252317622269812831062885990968026785510617135835502830875901486724559530134594924772744690670651559306501871715722662680177870124832338118377886118799216182238829063876054739060340466840857762799147723285781571800982611085327069109648705414526367430739990922723524474727991113057374660517527124859521983694738559397151366573682296958793135512592347959929410931493377788380241291596528152507793349722599505907220828582274069934143576864774474248794799681275726732871851860790427433877960049734471474277021165803807683056998107300314194808708515198968854652174359828659213619106553169398841092890270226025355275889891212656613063272869298317391589674599223657783678060883994335708995159007075385593099428850797523446371230164989059722070217074013484932114627197650664849458848650126718296320833422149611620736228972207025359553033166886429259788418619959986113796092779822701793127953900443060975920577944683824202494304271313956788095607923012497829334091223514747490420499587841188945070010152263763469202090009199934969930861304478940302859014849311288152255286612961239672221849082773922130080715045458964133820921377118841362122217127866637195858992327875502425637909311488196405959966800077865236592408359842635405288310452308906339598152418411404111567181737776634351850010372435871535516041523186230156299672205779868189563416112735962977434606986189045801215321426801862135998247483346817326550817247790019013779127178170421030317893083015244196814503002723886294702061498478612713688413690613824668693188946438131374231545883930229398747818714842306350933802728386508045750833493552336473730792312444912438384138191298998454077899881083740205189543919714331360290926655913337555192429068074957296730776841077772687184307485062087032082268923270007503202931482055561483125178406081915324803003810354206185743813209133902378411530291572146173715721229010223390427414867054174610817749312535818371833432708191001070275710050154558245535947115909464812888865784339665688142295859608093345750324489642030172351395720885435751611809731497408291790802838961448195303442250339979734103067547180089957592976277729028515840631373541304270697653089868352091027355190161172892188398400250217966250447100707310800280809294152649296086387580375697097893495298512877229131515675616562086864763428072275191457413402065200166861061593560289930365115825959777551862150957995654279028062967914404067525322021515665468485841618272889794283892365776085737637844139049653182504434153736189142381466360280018043529464384543813574904450670389308391215258661816591980107408618404950648983324212470263409380192894598462448419349044499171734018963881759295820962565980712403155564544948312879254506154450677293154178747674431341085464726404256959755358040632485064617393958698832451537941965834919816838827265077348581481346797039822031143603876270273527864498067338037791858503537657630493653684909331274719571145861302303142586802398364909109429685278554654607446080224924690043871413291629464112337530594169213968827360908800010566494570983564349456820399477730752697979192632295019565050689602043238606998635813136588338764544798129514916495202104072208841430164182589681298524220908797230887249358057652118903031761139119073306143486069089849899896844867442303152370598312393015129659854602359846585967922280210543699211762773002905166333897368653224156015718387931713363357841296496113813525649855626310708549053594557557057841891907395420827047145700469926324144985588337219789724173888672248766542481016559316695972230992248391534714540259255587686727268544826150883773954913101195451252261692714515954793820305775622886299166063214536361056949963502682225695025661439734519047324680391746779904671863466094012812169333232907817077705940223022601034656168712509362162388399986927375213680862182060026615633101042660281256589978749340041193693447746167787595631925406480803789364355723996313299076922734860626915423549525989374884216136923526619665516055240730823865691474274317006556261976912181992957335152842162667818261958758383290037537309889676468071370666717520011421080834792228322580420391136996983185952012603661092441297971262211942507670547961304293589534780753782842224284420793824105261072495842015014187906800504393374370249038707623233092392720625963884003108268034450008771580168104499026893168554541328948894452163725188673146875978629355597800092672542469166816687081893727722517497127708693856963675319940111513332975735254884675898585598506992666497116008089911271055837473280260048480882602712974067294675684205392141992274978170373468062180776384404129184061951892153976520742304341263278533446169343045611458902341885900361451181706649055757257789710591141702729185082468674110810115323378714011434547747117620100846907378483352971715151898612320878965327137955500696744134161268934413384119772886004271373025069942957304019277499440187411468801060006963857795589110490042343511891112403117440442670614525711297219166824038596255519570637376640521185851410771083942235393814387837419327052903756048974693457619326766287785885229642905975107357877287470050523022298086074498590269148852188974370652929671139326870951522561519669717472342303488717588372579092064454042639857154055856914225271856376644155828352398113188841508140616254399482421137068204644711191093500889547871295521763007030478895253708021889863690085276713160648964948092435073230079876299274301707052743371821876605888547939055849131444083482296434500798013800337152936717978665618836398105244449421581496306617029680979782982918061117371671602727470579443434512843683538331143050830606085892991065811516132330488467354031630142136152090639434047730532593743682339814979603002365291120169282134761920330701396740843447604185218058997234541477535392322399156544029869653314676937145297019826062244043958606070982949437591658457291164412833059210092055875567160930945147611069784378050459836867861881581959606629119883203739955184719040253574722566264563171824547458187612284885998620349805613669738324993274837187691000822506087155924185418605810014470799379272581876482131631167192205598093457658040182271534873007817214832342094255823776389612848449374220563019396977538764370110913177505783079079743428786598919380931881127772861670089432383022318245888641636277970578794765870045913571348532434073020234662823378952877923377486019878196569989025027885162724807952391576922866245573229778943750560682063705053623689795899993872140473575750063831332904808007920267633509060584299298950465723205617196736866103075769075361997910369916359231931418040200453805845040504290790271888632917997199444086580089697048972294771068402271297813083016757416867598499176324311936176608573014868723350169419457815325158388021356160329548421433080416456618003831823417939413335138580981201649065720087049916092019925975527948940474885368688711323036856513502451982866721523811896665228460050633514767110813145180919850448642408192992072211867392092888570342060295749335456605588815968931691436474746940905659818318021953306603808199995703193377804932922383865805656156765539763943966369755210100017463317597258835126615476989597725792014288826454243149414170397162559398096330872871341825503215704415841314694091102453737188552223083999160535595864898909206728218021300532771764042290767502173828533573112418701113017334705900152691165014542970647131400791164365469522586134902480187900361897593079579567522116829776041529067043549350842149374914344556234607216133460174787510742131323660960144803279279532228659828006267561635636466139150572094356129604373015755330709019088790035688878901119080153290375827389789187386758541907211187241268102151201231290782631611204134270310135412440424302814456616732351442718694238807962353737151633786918100147777629047002053981712457688998490885056334820657709135855583666134301349661241002017212759406704162366878057263844683507834071627859517494604891344438746830308081024161077491188261951621073320545516751990487730110400927371562047005690232811457177272844952910055704394489224202222479335200232147052629036910769458429668767306266321235310080583890506871992715276562488972800056884368823520008889975764966201678933828395875814554769411120752643460174388995091484229384625765852930072906525285790537220193409082190969296658263189198180893335786024477678096786631812470495882676815517544721813705581229896695103561275722464087258395157484337581268776277254394294185603533246788040533721488553780374604005951636787319394829900696409746800695143639119289454630575729575785487882658087033775199925971795330509700886930345690828863007554665200028159932450289499336985119550649869302944453153180297168508154249622031974686711056999356182733017519397983492804756952050499376295049660566915372811436354842921940000282456636563995938395348712810120364606322264780257127646458871666425846338356009778341322116072776907623043290724939122585844706410815532604706661020748172329723607341350148034066177331438291733711312241879971831521020907516240268487842160421034231158048486674332271040270853801676465854646292465746283560969073280546721462260567919552505107268924266493595665005274104506383877011451963832658338399936345672001780205292742419107782293855570165352785135578829422592243565252801890400176392892640922018471959627851183969967140144804450566824883013970527809024136442037638750351328929454450980742078895773270874182431578677362277180498525774449167414219021906381140764454714968912321710778673510744453152526902852935110382758416485100875740793186953622256562752646125931937796350405698350625053061728208751409901893293738713200056699531024792888104063840576971110110916857695676218012566002238651367040537703510193801912906827776092155733003201152972671597254418944593084339057316822127328473282641560068889599881433502355108603355341049646275529792854958478352394512084188835308546173650306760540202426611626986113290581452744062831128977882915103801002639651553812740247553083983051294824289248041196468524968341002420435129045499162005302464493345830681486898878265488934273637035211122116898284493903730573956965312629938604921973335345314894300406123865654475376151793017371596351799842409320858510510655289792695038816516637972467362743984371068818764176575090245431460020179621427417734190325186029025314366614929680303393575390059596471270231991894450965411657631326086569137395149372126334641788723641893630381236980524853045485531903822510273789921456595474439040130317596182694813173320762116782692255430120247482292599036508188934190252051242745481478041488282155610918752680595235590874457512628546367263764756298084003476252154312049792477787433368819185192010404346781890744089081242633829678639941130503090331589135193762202939436095264233828430886280734650548118609987739169254487347923129651854280042328880438784354232522045337867274622838944509077952853041402383212589794239609536845981177247773679833900094790175033911834759509407469711836615464999402470813935919650554524402837915077771643269614436126804020620711982562121072732692006070490126819651279511146620542703960291847482326696442642451942827421541861536021743858035772000028589584629511442623572075158631861909550760213412977857532507019267324689333994186574046551898202379518620399895599218939465344279538003687465764326741354742682708589562757727811756713686519133097633802830746535562962859137268173282283188833451443483211242197527923595575060420112041811260416489474182648394352427021798960881073513988162958427893334293277957214478586203119231837428455287348251163797946718582534025228356884793087513254869134474113863888673178845320862571348967977093822180714718284275872439837339229364792546365396772193240355675157528844626374015721882244090515037338050853760639685754734232662715648567513343696849766771855143394651023139874774993824340349278055666948370714315833083856592500854451116881682313505551294965953991522332682094940119685307256709433064880107457130743531483021050564997382681515349064674794330352262828947445043776137468624789625462565150504645221245933305708165804087255096968916759474016669358402160402830928597882060326298764377757984371159818013700640765950025742111602840306865618166752552707162424947087841887971831079459120964031071188503587317715849146861827337520194683246382448186557865086162979239465529973017481441560274682590846696759314154484175041113545662550826062960399950732785522294694393742618088876344401211262798719620152532360148130491331065036055541893763014848141039500540322527843450541549440818918663867881031489140168511355916505201179716986029876845845780363078256318504658429014159512825198813678407419963072520694785505820964795691989445608276039420871278495583228200754456833652261906818884783106317300352968101703656842374841112998812596802906253904538158680351978183362864602463592421208108321598277494388866455647752496579345350342856688434371727893644543428106277938458505971800888599477906483968740322989002515889818706886773927640145297078571647443199086318868351974024193647462530150440348156448697391911204519200036175560228384407328520201493655451898220595944365309345662486837443240640773519220283372925450500894925576945164238502411534452926311667538806592452381422743991466990878579635638372427789017701828791635063479659793861183132798817774112095811759460181837281207120479944515805958790226035088494662313602124267245225468059131730787900378262744045536007967164322587699491234162525260468895508214200647035403694541868493725516002116506762285896717390781238459063958182641297861195251552377441278769339829315600587250329458478659287241261068753722414560389393043153119668541587818749313359049585358048473559551666337381046011140214499512800363739989608460596295365410928258094113611923184603129302641643253033901700609719756446347740641518509059390733725622591104370565820476616120601004093941926461860848855040137568896447714752634337473839848918369014744773269100635986348805357821069013165550597982880589072706122887141465388441625541296701800744853513791152375093239343393624264683158565541422719273340563881271492903937893677579351018173974849467552321517154754710820720879979241564388391497645263406534454529426924582324026454870964051632453032999177076499919081453669366088880042027094598215626869867289293126262001844315864302113247852457479961476804076064282768494923941896510292812779616933368816796108596387879947332202091459178821312058654959200224705258207067624108803259552757220213411956704817014109298129663376771145068809884762103394910569249089725267693801959523162822689538004503508361217184208628916482206377038555599104206532925118067166852683010839387891641137270119973252092292017415698977823778652666692780998634904102499541635974687410182711822227593370742045087984235860407900543512090229895150483214972113304833283132163961838429964210066525054919328036746962740606889777578217821377289635458462399325863697505565387410095534778539836095471560603973794062228273459791858199020818547031295424827394529699767718178394950261237399388977279806727509630348744999468860361509245064828233344867770381881035736422900131200548243630260181817743892045296304849071718595435186316113037182854564164148635052435555764619892068667698270700431517382353854585815931197123809293744245661736620812598726527946459668221980704497656836450681327654194422900462832302215950598628221967864630405598064421732767556646676593407547644554527584891829032650978345984336675778239880800577744898954995752426075098325879762502532164531689354226517179043110281658685198955953833329199150494085551454550067946106863569812863819033135333284574886017936104623017966400492518530829865843495399830792394920259897861959829270675168483420958948595425876593549413632145925651602344269627811608904702145530918483312760830643281339860720409914316470384114487667539659542627279772741252771575035295712255133713799310399415427954389028992157555494369644731034359600909714207366188981541399728917284340524670562290761637217187191074767845979595085186722814322894311220133454546006538737860273215530291152511769035649984700263404168373855175481116130425175844124020022927270714217182655842186310276557958048163376123401366558964147219672691038374897296872186559668774987460978776047576363988823252912154165427118777652136484753458391130827770770434409492347046783387950657160789023431966774345549981966473720919674739244728608375281143085278401764481194923541873751538763129001138755802411287479750318860434784463196462042922477831321062669634616161108798320977797196444335597179300856839623230184913927593215108568332651375734754520074976286343144145300991866500288776402217182047700296474748154377921078125903987687763847498233710172349412444670753441545579892610697835217590590576326633697305231789664074918678180677583296394508679971317543449192173554231248959628382462457446777035117896438745355515440089726845986679391999420389915669606253095653833472052675276416307284396710401760738339500182650632840065613410311715133180159967219004421751394293996151968182625240126294354096939511292608158766165008864265431387424739084151497796380335864406165012913133984487345791641225734703896744473329354052392162271895206481701048624320115818692257186664364425862645727421190090708882111901821767525436823436268460898501707681725145398885220989515012117290251588235501202105552491028882949501169218824453147131475275624166317986367504556083574809876535213094221464915144642138931496809275820287103029044884729394708981106877757396725245241663904908758805537353707703426553281859256841696369945800042207714423110459697152211219812512205372993489145330395401447388574188171504493909697381884216572593746093316694801377367669819002557460644827788875430742230053083689782793480207620042137040147766418042112240817784653798131626884155938873885350741618107655969553637850803079575736916687165866582739483437031402320275035217459028916490440354127391830984841759115539589156175186145754492019821883059979077215904711449775033263076863805870198435495013900724420387748385455038217169200626070634275745014232999078563921666832283716793275173470977814375317661293690754991316432806098805375749063157448587304338025970910105104989284226208232374185115409029044407741258002317566528109234055710971675730252410765787323353319733894623142978363999042310462576311517064630164126904051756563206114711830254360442635701749727158199913284099247877191618024477312284811467033271484403017218586188240321210341956367337832409499164823116726037588600193589156054034125815021352655600439215547821147059963166691315118007426140195847684488904525601383315231394920087239989532169505825647516792214566397149206772258819021826022067703490107747051101860505760515761970826996829388662931319005874926841414298351288508385325316872182531559228651101527802476202356649817009940958047568942410095852886780278648779300569463036657197127405615391702232426022622978395887923574099918326468733837165721061775468186809846086348931755178961348942976342896332927607517363157642558067341485092919443651606875187952920372420978227548710749747161722082992316772232719970689680133646718666744030054995598110541944424189755256892976280767764387846857962672615459184913093416887669779909952546310166372045888492744686114213042836571638787616862577385523112757536436054366998802990215461213430798636450686400848592227695153886432711244080448031853117723993572246142062221108840535347192976911131556177827044077507272740915231639408379265256311739109135964525099188772728764620999329603495986320053409355542617207950747577635766194048619986649198855574107981433894959919939671225162381768046229697329416816997583483911054719523242863958256314274527055187312404454291078058455120533391158250273456995208586031638318815816174280420171263509431863942577610840082482491473031896660704894834246021361552949258490878901836572154240301504428234800236444665208255932150117928113778747105891352600827196349992589727099438296825011566715256161246877578600728547035286523958214879771760723010071187057101073232146306928468849608639093563425175144056767992831345614537041079276860512893161611411397284372354672955416844292532688983472273630660514610551493896388660107931646264027225136370729360240062584092271738314102205822581066208159284339352814159233306177014829824555473651590495647522264361083412489896678471153991691969382935621211720572456591499350419684803946350922455714176478881095555233425321451481654840793287717032707629525346598510092089031561344803970633155461239720927722896564812936460309869264058094896058948883677335245272781326763144307871244502415562829389889076625501874382146618056912405661066585821498872690427696289979881706374519007044723661587331107659514980940703845521874126144366228800861188751480982369172579124517812715959993535353444273067584322119829400330328888847113636345067701848862329960900288678086756745126961373736647940409027875779215015488043449059853100930718059699672288549020499586757186017740723674635796688380876421979539382514995089653533538029388383843157953857826200747007970986183566435941274702810797479540360869256993275983586662914819352043717151576923992482940980687930592686053891751038219432616234796863560571680301116471395866491242552235429540046129260480476018215009123962303492198247285118762506885383648205315166260621237837516474903443143611745789205799611700389280492201573852738359391730553059817036346725287991099321609124561131319021232606044579143168757529670209157659416514712853570047480667977603102347862246412331479544118434967456835831564637969259272027769030857055526667103500535095487991019764675194970235909975342821759146632997859409158941600695082740444603517863099373589560405820051316992150049948574863739795892088964493627310565869838085511556693372564157673705842634481890765879267927095521043494981182100174503593153295413827853882874886486307610676548937444811633635839574668545025059353672847448612588762736933142606717772156228304199744679748476162615349134777379075217838326502934990986998113465737882086155057631166884466418892322850077646166446859135766910719003523205105235429153716749309686522988175146628030542918517247141084285330036333173171785704191760352151076033083699428009861192495973373796778394454131589511689311583938619713932392452398320578748169892683006932923841521734521224802021827731789394942891974480134418740148621847329047429758390821602029182460296563117448439167294201882724137113402221636223938851083584434331385696677384118265155305692176083925806240524774505698876789008743832726640870934553722100423754529763714973279953848797382529145249454496661903327546921886527427129544859603995641433139202938862852744541322425345221288566221416367100581116676547263769457565969710858335123497748386815594665932537693030825480967481097032628357702304107269950245918863122316511853875302815011789194285472969332871827015587642531817497180172193105589745253290049429523029809793304002811019040818093094442303314946978112117357431700025901114448516755040807477396852700035814773423095791120593474949806960826341946405835132285242257323738864092381474431616287547368865783149174601452561456552891228293007124896544447393629493452944684950416948750853137620359132250258766207060420932060354025897798137336078039551916492882807487391727715958177011642566895276480664650221790153274850100894885768791243250243746046117787095879801752560248002352379653532894375504832735468635937594049171779654315073628969420184555071327265957295645482237916880461557029892600129622202269745699789623976849893045474818640143420480936028653277684263569422380619357852332116351336687445927363820354940463210452600696461858702588399109170949269749265075814861829862173036750994745805092814716776903229925324025771955134475143655471110851890472888044140731104656932744372000477222251048928264876212809496150535240647244823181889013090912845506350459874431170102312175217078780039709481984575079716425467238469082742116556158158684391718363644315724526986346334378744381190339274527198557244361971134677193839058258580814883181009980320792062140654815923828821544479256494370927797375259805650659286501862848539822444032673286929417467265229188373252310860455284203827944486789962742516007474516849322022645203650970465185926014743031002873034906784186016505491940932610393921839618311547560615733595143337351531945163076893094171196401982137384838104269836453536664369770733555265066577795020530719445636742117974597738723017219487873092285167496328398560046226359787278903574564296729536138107049099441779920412506155112541050284978125323852160215581995640004949731541010552432485948216603981392122927313829623722213486117605192937422116919072561196920529378310605830237254563024444670421283932179809071939338680447654025672450490172023822297770153272243019155142416252722450319852618935757073672034086432883279047648037519695772221404858338323309802288759165261553976031777029471635588290589015947028788801712980365069456181382110444252096968471548617858152463652430245773180913294094996056465844541588447009800226708585410388389877261371604085247018335460799642706108341589349500586029116936407778400371770008457394488023736318944199284550889207067729858739305484551425456565867642673137453884972331325343217753715618740901059886377306468859962937861191824796153659170207422209363255909012790026953162240847140310494112768871795253460543120687868628644364470690320332931076269651727857155899668600016725142592314006378062000638241247851861726429554248402750176522584893666479570687287485380755415332002438014546020334079210642622339181816046958355251121123875946582333380270807545293864811726008341764595882258469492615665960381112711009886558712305281821827335589003501091036811305135987378797725360811087959863983964635291887110095903001734678485692784137604588709777547894038519296053246908887717327248781869620134358027364378490649408784241292574090976229046562982678955628483979664689297326477512424191160639358372718084210861590660886108643796543837400974739232889517313863263194047177608651131478800172978255719064439379383604101054043533368775398255558928497283425791074591304284087627355838279858676628366230044942852563341204200797171193396756658597680346526124868592331957056350293566629263884914024631766855338117224187447496796062689383546705358539278392077455094218578833344434956023309583413610216121863567208122262253137338311414065677513857838199181331886368108886438734746366755288800510702509779047091171395043926161686146616997992626816555757113980394495354095777241117019694466117080011050074949437829356129362752536714811395246726970295062834913921638816920180938269201380049544598382277963766387182421360020721640288049864146733754547341619544510628866041556813648414657745928900584410575930460186219052057765607357851293863066925202698067418973723756566642304255268993635356744604612428641903043378201660245708086577141221776269580891344649900890865643248969851280379913566369368644887852152544049569285523893101375269791474645286922904403842308109447867474226167772206525833093830972154705017287591560050529790257604256978861543961724754085154833731923358239270351856173319526866298978262205835215519089569811425962154884098039101875562352707651582044111391963779206346179089630534394836544261884067647195215903753202632282971541585202838856365061156260245196082333544901273194661288307105733785153835780375456074733334468798853227132379886931625312087858004049073668637044116905702839994202829755827325693639942375624978656894370725055726237425659286298795954044563901940300419199154134243067163613643821483803609561375923799862084154996631429934023705061713524179194956042633480297591178151488844268274685336294594750904908344414785202839412068111580066383185527560990118683749989640949324979005203196579803333986548696456245223343043374405426454013268550861347167621891690080642710393651636340033003557453451135557214394024099461400913352254345446417554537667167130944786450377718461621471229799445217483624501218989738967310000900427713930253566399775976160755242787084628074993478335448295980001796942960980196723718749297588863756113959581747224877814276031159900647379441531227755531102156794611962180527893446471840547941282765955827892446175967552218146731931785467215709232182806389228496841198828015493312015867306430764487067267939064131429593322377589803648792680627851294079898978152615519555666522899176794140369331432555970781069391155222205873338935859707861256588639335445198780293498980102029285855643063940883228579480719353523013754276962666596794520234566912374794930591549295493460330906892958367326007611553530383677255796528721974026020040581061973121776587110821170010342611161591701047830147949676667356574631755288328954945892472753062360108738702683600381833118393318075403800291440169964099881587407849060175193250276033216635308264552707333739060340211546179721549204949304714392590115417684277661891327366239483328258865857504083659826534353906134749122669712905122929629690585279526119395851576669490283281018919845715160065532516180034374299661774525169950785583487689023708561720778243434190789348840340715995479394913701104913214323497821598983433606294062998192960332817006897532076746995490971571336576508571835402105889407309735324442652905092417666515273208663622644566213321689493990613710369852314036314008600699034964142322797303642741197362423589873043099180717146444663905201785315791122699859990154698683143725831357253425804038723840158223670567258636213199913331252597629937524395753373713127993385895773351742826551752306732650987886082806874376443745770947277409859336021213781616430233062084505521753128892478400470637211266656386222957115803421993974581845746879151104434212973764010377413823270560479799954206548797607451514218803155644521617475029349590138665179233355594265851356347801628710611782125920175970863706808781207016905326008778990853142924740073254974459187809265958621367251543199257872925238729396896763022932248962078452164825157599905024554205589951370551468840381171844536161536559620959432926488711386896022834556608193721976447513291076050519166060151985073994863101390989508677216593285147770973895649060088324396563140743138687840707049083805470886661396464533916967627440550388354851997686388613015292959699977228223863471330320375933519424513390975997538529011965257644899456521110188610386435513432082793109037225906367141582417993130611465650769326823072176120975886811036259694428936509254726436999252328970019214956423065238909660257377569163601787524934097358236498763454859728395512539330942823644572115038019039496597589883897773847282013826727056653551774873487802708070624705380944065166811630787211594612029275022681759105937377615700609263629656638319768149426004949018105118673683269057557513063513634093870847086276067016381458658948540113810023658088815582003646997111957093017184953909345913136209347763274944951128761963245052250894802784793499811672483388601662194364461139649652449246544447809205125521127409643430491231057467700302084933906293324596090227475372418490326143922110405013839042159963505458277841361552374129368376595979115102123882940103735550810646605772426153947709779068855779095379804728600835288846253607261131978082138460861062466000210693369102844489234507034211524548704369776625840663073035957672297942672514870966161058917735470138695339725488045282618631267932219997244321898449116017567979165896406806483927266434232150296061574590735683747482423343781995809513436397784493248749322389262725569759840225173211762861597065385758392228460166222624891829402161350562957141787172131808712334400921270077349697441082123121541031719920757703711668095108355065592415755932936190029010905760498603498572623856903789254244236674527592453057569608870692896075785638731626089604200715689651102702373500929820398254511674429272409342219229555205172149476553440940821944796371748083511306001576681217141068901762143803790612399723718476165452366074391001564951982462098871349725460400212668398258795701097589094002641635519840773512761538244118068850006663754117050445944211102889723453052980333366814084291997832156822444991560501312428447509100359974421376121223141763084192117714701899984719861918467632584892689772961307836241544197069816346049512089173886083197882627596716608854140940528699983271987535868666311995549985986722750371559353412495622766560025203549556784908402958006801368840408373120956592036443953463719646153776551965400800858274283043353102035736249257520191582673849662603884024134207220564939234671115273476839727714800400687248538106632398177014000427280777083807369793512733010753042346146111782372793526124021561116195253445545814018302419699210654527982885534505020480571718609675763513886425864140827090245197235534445876944023617872717919463121466607226713951130041984479489387050344349000759997443914641989350197256742687550693961245074068113147133629244263067142821134189499263230447672555385666217621355374560509856558374329533334971805178945987365841285527168482337854195445583160248497098655048835351896289625989244067311350314121934637627071674773502870520996578339680854053128956894195112878374204437265928839891668266725533518191079125869316257005934056657670265471152137931857030896903395543638760070111761878015458832711654134305665369026716297326884502981003165886310993070071946689497636669230519652957195869631448343294128763881227729132296845392073320276931824201753407659600551972358550839117210777020686336229843904937110511433929771597194504911592107145156985118835536283810940088978615215896451803799413053159890892764065161229433115132491508623257216057476378648289437235737293286059679960837390621808414183805837805659683950809211380430471889401220471731431453935801533388370520065978965240863243263030223222158034072227367521155304512792998681588441823325643057121072767605399690899180933979668924846235042115944052074088657158275752934373689646865732982180995823859216800559302805024846242203466663475043950980258709117376837553877785145076503631320640461096950190636239105941982449005991072643709378761844946788804653642957534576658220947414067415424864044209549069052448738280958265305551692930811573727773649259531624464324719027812244578231595485775807825653360572483385859671641344192671885889225192964942994298555803684858114705937897842293272727415120681980822199560361317648331798896160145828983038688180653879575750683397624987185379020898555267132628442357122333339297546207574575628175685472623777029465681858933167509073710115382269987372710185278426936034637253171518377840744837420337587655665010489187308009919068539049314830397364880080081227072318866100504310491233386824704068011928513496096040785909307965640071870928194809750347229851340166521319416691241331372059465660719488021691051921448015003201045946254822438177373360701510476128788580260542207201349797023311158451281136673092283571601565156868670375863876767330090154965546639349622761367603645774178084984463490668588649532123321238646983692710828290112319008519821947552958604908394621603621715884000671863149378200878401281523336911705668510955473687802644648289825411075689451621525540011546584105970583955277293502931030100144645329757333806333541453475007107103626507699909844775130666626672549000455593765158441516366838244708446109993383659810865301298390753361615560507353388458375074878769006696273566628501613700822412654617498265111642820115903992391922093398067172120781340442009114136820327086873295155107260876299490435583529461000528972557363668571061133452183960018978936666240704442364840910696710755801544756775044951393240196019594022288834385835435071409748094172353920858752023768790609415659457408647773460667311643607672456129568539808843788611048787008580781103873009910851963284992147894824423924654108545197011557445468666215329194895852825341110781831653295966551869334021178167296452396550830203997697882176445398131144247461125265093935202198624883059116125585758636029820413342426261893048389359380199015959383040325465574893550227487246463185397562060497001510685410778610008186003288551474041816473844337297194107402081385738414695544601347141097362795741900667281848890981970858074444956341729731818712597815672117931571493217913938692648268329456995055025276584683366879422188328138419282876182361513684535490799182910692144815792660002813069851437489263082341103420350842402919921956563027666222842308732378717148437204544864347574505258239512338214654876411705868883484064416000195211058991580792713080109281932300937160152965744111878164384983782214224089799712286761243697881536146711628803358806319887016239546390105274212102255906735398681723619142405915231603280811206380065329380974789837647927581477306694521429586865052539970869697867920224835724844392114562391593098714085755653037513030111713729247319632443368437864629663244828461161690208823064751183063874845733826217535198286058366045399560194461329877357271620436185294336857879320903668367926436707787410258626653338129740366368908379430868616208368901384982850033198113519608999891003340752442536550611946155944996710468420162739806957133927451368782907563255929546713098365755153837102532229061999865821264589051181023293805331889689072005588239484956067375511568632962780228101738878262181179710177988160296654040539556376488195442552655912109001403967488819508059200995934789409440477128666393969854716470873710681056953003240506490222891654902690904430604064597666886158956142879639677215185634843231639158258880358627656951111376242302045151251981663116629177185563072681934462123359175705240546073451609568439105170928233118320264330197531564697781848564575829132183617539335825812448780657576025775231347058598159780786511002517795622069574341099108379925629994125524348485795099678569430866409505508665152014460427085831932994392576232462376022426794586088198235921078183993315730840642308779066769934897410691008827773458755256801182837546497376340453284799040528997056197101819606463527674806319944130843387686138366238730830664648463920041558991109578885897177163451404471913993697771600909613426116876482054814719748232717029327925201387162950292022882329795232373145190605236270880375472159068017411285185124496800969322473969218038406631528119922901949330752116906863888327719194179027914560993266347337845787287728431624410235828546382181218507554805056653935093131172237421271588117117916515562922850322700394017303655192787569431937495795677369157799934736766045913258038324092726450547244120654290789295713297932145266560250947893499958093321073958562850629251163798052250294856817043256775077010274678811520431279624436961457736992214306439221814069419025458557212796907042466149869439561557346780655022972510622223394619860452528194597331981520108045621670417863485331867197747095705516733355648910306647677963028418813207568258746042429206451492275748248931114243799840397789752671989002792646712583458043986527604728813377836147708673784166922451228134463229485559237031433961576110616280100513076456470869133370248706445820306873978505050947476890013748365558287383521753342982174915207190933373986541805108087384287897165893033090726499850174105110675364339777156445216401335472248989287022771146478306614534302772276596998671210484738656701883847222028128563827643413248705777666407082757789310515736116006496098444754697718977111209802991953265694982692172352378259147572215282211014096103702970043068213661856652048651399401119454241273441601369031190698397494430499504812633791756340110049856927434723804022699974744972350930620370694467091388666172806344358432956251312926113682434873425486719777186598657294533224558491067770507002267417902948824110634943536869094478563104314131704374418033478839628907223192655415820026499567464306110500285552821318006485641962425105966712374429153634700297820133608766416963976847263355679844356009651489860950221009635500073559867526041049746958603691912921192782387353910472521714550378735290448607987664088412096877803782207002026436996155734888944942227321501188360497210347613404760464864201396568274401082409674400348320560298970712877859731871176593454559041412479908961723247649446041925240877486542275818306144142867668289223772113311289838789640956508282342199197188508247605915611580597097287818252622884977904070100760936984541394505476093381353398414319189301881847232250349712102929654394245208369994886677481095741730893842422008181484880681470434431239557702191372891818414823106860620288023453862268848034608873513478502743456707868356515643262510270512664060743833954102635631630534843864963438021736947213080131644725385674703207588696716208138700605338308913670387980794730371931014034418477893763963963316684959367335684035449135779112677058958408078818895697330587523176346994078608514449001912157041212088369775398721964856812203579616734750854801163632872453930815383929231386383624776368594991413796327635202245849146806795633124950486133575661130637873403706319927191374046418937656385355252331064433580582054186488268070139778034327095421413228936601121223880412837158876548759010621494909691656157567869743874669897802989631532751638546111050913882657413336993776634236958403667285162569246390428653884925769820805589765352140309339927925529920912921933442287961353150594314456394434401799119743983146002985259782386964264529992196322578603890277065680105726259588122149895455786474994447385454539413043305737664731183986718468818616557133625335658556803068063286650809701306692730976547816156039123119185992675725939907667050727061626112344746621028634338887689847726742578852469598265125311427942559146557883945668268976729818100745931489858288515783689620968266696520666357024813424827402875519903613805618733144857774822932838322851143223651134261335143523612776246499062458167011408134947542938164684276359950774442930363992163876666979696993427913801482663782393103886648507340550754163287896119854226910735199751465833514444081492230185192475056311282549613327528159842600607012877665666861731949080198932932045387378329116201927897305616802107512640883557265298578768697084561030655023957421314992264990264342468942079628540298461181005782993646353764062993750536076601897106779037252003393343849981554560621398417666729224775257021530713375887197924551991048138690107609221352283515054318945799823634981596332846658267581013241951994984066327637519477973361404754665948396985329273583996805953594485384386456402047590226684683590403261217537901650772421752120841305870073936686379680336572338129259232098706201191901185814620400568279361820905147525068088523727711853506765137132594369714037684448230355466257368365326314104276598299482776677145716467284896800013466740237211383475748781305867808266612201528249080319706067347497619055674278503988758538622552616963490531216329709072451677642954772072234772969648087821988398012259343607636503542712903525526212249495752129426001893049814207354578628985380541078984974221938717919168003294591426828392980033737345149602691152677100300805445132703378339908106614108420794824317390405182518087016100071063134775931073775075782370378231493584301002514335640044367258723296505977592859568681682746840977511374302251814240179642985533188657339810746656126377620896687723263118812482649861199775315595263941020171719215489476726148304456710721354710000183689950754320320076447327564968532477850132570543857310828331852282530167747435594626842493135324873051472135363307976081131353434991592270412870648580032842130396565856860688043305410835937604470510459563848260767753067207360976667864327171788886699257875194535237811681922349591400344267256297163962480419310399758417388029504481857427170817378491169751548214822631045969136689616224624464120741799761496023854108908754940842489056538308181445682599738978866410513610769115398424807318263786166321062986733667956939581719147943306251669574386639401119118368943293318339412417009180019832483360394602429661167135075369097594479622566720900406040176382785258540125227580926928475174662369328064460659213409117972200900904491463027484221962209115992682506561138575037179483982886680863665248973064131088462596179689558680644561867822292372153518149128544133182209241132136142556420693197938278773488055931360111478883407604982405289404907331190801419963504890203861947845691247363320058969808249136406102093081080278585209934298792163744531585539831405035225886328899140623501179240669729427044976624560381174718699865789803130862719498484596889473658417778539306044480413753447004212553210252292864944585859127939844909551308180233445358605238170983242195419238320932219601898719089053437971842266615775483560836962336488341973654079689340676477969518406990229643239193104718803301162609040945586423139491523305035283319205648840796057784587801538485903616666642058625248678721517792426432547947587972092721969873646778071827777012144641284141091999979008791662271813652249539608833391874686187527656779005796666991628089262067822897359486759702277074605307682307797640638195589345013714724370568427386666406112994482871144594616984966462103625288773407523866344544367715382054614125600789266720134493601330396935711573929112954916177596662255915943571646781544221274422914621659674801092101114720240935937491938996378962185784076285367675452002792362055526542412238342054269012379237009714944014915602949704914709968915635335544019276737714162399083887144695531631390600406652264281437869151456039534724461849571809520867576863328398760898656423935772868897190148039177801785955427043225017836924879722211250712738215405399928594316883006332181661427631254263792048168543839141135748798241673291558262493968384459570059081447664934490866592914132402574653260380739148422046007078987877983352014222355009449437295328751268645624697822812553246841582528200385786447289862384877537010159803460646046779892255776751211255199226117433797608603433189751213942935265284822057669264810799319335507816161386338339580489823179071321105526300534920359269909199466635130389667155691612620651413473954286300677656730163788295918465920936995133292045174215458976144819040339938536423586251424478715646398654353497752156453809069920406572938034179420033278647633001746940875348347027631258581976275781412103883058503639574411176149778349499887785083348594147032780228903148851942586436517967184027642011312877993153236265555163051270081237527742114216293267404972123963215292091458051239696176679793593777656974060114279541930321932006662118038518857573375644687530430791846693431840619238039878833819786833479561410112515853323713335902679768831320621820442895905590374179856509593419513213961991837308223602855730060812803829003561001083726914910862321697574744636290393104187114652368313688698136760033488014258901949758718385084349805168869330034416768280505280789919923553336689804469412539847883262595230245576125493029149487425054692740050246556235162428246008579690144779073430494503081547581807729653432916419224667266877045866511297978369756363019210102246399048778867871387108684420647357968619068727666444787992588606654984816833314236000426090957671495370555799128906835614298505363019081999178608453177841692655122815270432716994706725463119492852342787134417534957339938183602059131832396842913093560179591097570936936600145281487843379576568063837799266746968621683315793754501541296227672336769550279652285303199883188665822733971924758516110115759387226426495602429674891723087954702059264984976551532156184791100145653771080638714262625456566778550552181178720818008303397174493279743397527868457479203503439108981504322485556179097776101252323395680070190017780160449565065711213095255719721276344182809611841643530750007306653565766210941960730056423763465980602982951425526431596007348557764505857267520343751817393569810247912553939263842122752255726214709050543650286172109326112005378275397026552643629342198924062834869221647506757001031909242311869949599782033507608624881223518734728872756701654428261884867411544743952288877579256680845095931604402248148569062875551131603825723295178661759610168679482723097519721260915243219339530641927294947640020582002947002911406925597528678251314583528822130510576758578425096811130450350509477244156331631645900913236096594956394069659310267770647284039876794238033160778678855233605090400052728143631270344192498950040121828095934906606708228555337781689634124340118285871402603694971831864531060283313742562717660784521712361619076254567189031732347041751838979069530328195122117431909156315593947442772373755811334992147349276287916056986954562978736648401165987338323536310726710404626200397011483968000159501671186201293082301649302805628637979237797033024582872618943529736180596478018789344827165907611531286082375085002571476955813154065174248208457733119414910442576498985244151144099602606392842387846565906617925984709335524460510691255241569351331637741679084502888773669836830768514851139969723018995145772258690102355779356627825172798267347760737316867812293210831085541619644483644923781022975897034299904045459422982902406658955922521305200496309246425779843978486106262624251951425949223132998165042838875997817182012118238812134745643476437805873789588247847731444554290478165712821099657238025400628703900839234143027301883368881275477327154454788934478052421801348854081287393188619904689949159189780483751659846183401270850368213349886723398347946122774402481914249864608603615917679038205090603491171673594286296860877593942405062301577783176444709734975411077853676946509266161650475249400980459177374849767653852816749243059670447370678732347272892819392611696765574704081833070817506168134814176196116463338767688533990121741053420140779322186342827957139827773844699085608723357789506154936661268513613875286243368076540100927994231143032298357122805169286484694918662310975993508445277749332905000853054637890448703699094431445609513398404595779713089577460683574747332874657871090913819973834542169580015052954878593307699282189186912790305053161459521584381072614844345732752390718967065398408993672532309323577088102056804898180575014923943949665911485204377364703949748856161374529906823585821975105599904872257474038048234530658563816622301114777702411216876589076644509966303231285731600438578829639935619515122063480642857735187970472979070601233218193540791472884153526171304649830303519560241553462286841376001136599316088642228109928881641057704421020082080678634568593726674351736057842626794358336611444529410947341821763851875151980297763885459340910957139066695565266542566593840595381434383007823740147950802678844745241627051182219372095934659106643317896292871078042373624471434270392901420541555341513577935143756928600925604351629188056384198690120647576463931757885553382678840142375875704501991279640022530990488822351132757806140820556027979637050070997973661966879207131405561813543430230115475844219398189428716680461322093302395189970378254364761668949968343043935328406955476059915243245711747082015439699889032124264703944172101216540076237562586367930292574706450658650016732069084723398424922181272205881432913806909660274328917383716557987733887111810739438459428858643902175104573206821272995525574702897863320650862270152040741633513448828719423864759306306280682698750611783348981336004984744689282786954101707443286330698819021450361893260286801617855959979599931942142912542672573336829738930738060743532244330607361338786617112398364290294525250481502160531828973987198081689474400863966582183097381628935473519727232447699972081236025943688070279429039512467914318635142481854250684309282473574918730325380226519277105925029158476354124796896534643309686875009532043153783219992689570050717835715511796794864330924137540521290467270187311510253410605665806081274385735511814226755556029479886261349846715311886722945038936933345336564964495248286183695191319893323056958625345013808052002424544358222306548870168512165530229858472949999420229709313785053138568499364671525311223887127703861510982318137758285367114972819582141068879774705621260734985988128990889599715957103363665423400060928932845801103474447045507201256650801936548140428487076831525899626737944046313981643399391231627181928958974189695470363044184470921873418073197136369926561667213561938367727235431958819773755503776741123773978680555098092717865502269134729547403780715069481770964106947986178271382878346736984391980797017149387074638550335060489389705864831047698453408537968652168329255482498084535549873378303710152503302776086990649166618296421208295903038654752428875753189084231678301080674144626112953702136003342663950186226346341996205016276694502290078841204169448901526133145032969911946718763924048056242366810258045656900346564383972156025304864023378969797145355044612291619089304650331933171435895385675414126156386815424363749739052544472320131627029732052369331787195291648926063686118562089629303385279874409715085941321863088122680937230588738957233646677786109820561264402291505430450166246214175249969969614591178661625714033401031264946350218576278230128554321224019120430355330427039569830038005725346959560126511762974254142641644659666793327565560718500372040322233323104785522060588851599817167695969984551293377731494330915875153548725843551794180999138152070055957116074732928894715246883727355875152451084250641874409256805627813112847011565042906883502139180126548439872252308887887202746592218439067138226873635351631206964628469739846608257994262537440347630696755335851025515727232477663794680099372980942706627850733699347711060895778745356995286259864922718456348645961974168579075758959305536914485007411161531051268993374173792341485675023080838405632785275300633499113075542461229200225133112849985655084591970121460284717168857735608100879865855584145003658308218102887876765998602163616975056156655862762833890053723399117526285284633363068974913502836807599262892324626943042456393986322108129776384606568807421035593985474602328153972002097251068832670337991019882186744372615350166135787385482681160454924669160861010922009003034782943164867782632293131639511086683464841944435164783461635704553022455068704455594934147012867786914579343388441070137820186607090979526927808734212573294320657536004346013124019806927544258471660318884727442676886797934197918623026357862639921497642814344208868579880945383331775119689391029835732560072661075884297680716052425544975476336163444058719886015725491011663838731384657432017435419043220543870914090739444465272246580538902702161398102662268278556791829433790560675233539791273565065658960038316427228542340033183640377452137142484940189156807448871469018088882353848154346185050565964461650101546554957002793829035896297428525466204693738294497395367045708914332321163039337248071080646200134714257214547682745407373790854771820816311200363567329037213290802016649612928920982227302301539029744222658423124000796184922258584714871415694731729410261314072356948989760638535709273146010672558736469151105462488174190085794779883583658419002019215443758605705170967139905398581152510671463275843751382740884636181255283449278812231986294529662972899428330999205993054308358303434232562123735906350817931707298065798232677372924920022513317174181993552610812871644463188945058483496070837934956096155988846231089416551154359029179744443763852958673279599516835614771932865905570214115984032264022339756029790751989263514758315232787304869270259198858221855277403125111217187161370535106356848530132125492754922746028018347134864652445244381535287532303370086603528795624354510511209149622577198128744632166493336259391846203952492577745245945140607121004477601751760918557948314830527210089642304303600156718484655823232118493633812462590566246906601136797752382834354970179858073068406458920553203597640788029821923721040184122524435751743900544491486706930986884981308402502098938253173780537715741676512027743894124862124637603765342163537651662710241805761318947974080049858618237756023345912226858817404335983917939848080647691846778836474729951510181248874348732876679852305557825592925405631395916386067991300598195437381416637570305237107338522452238395413996773002551170476962836524319428565439269275217088776945282201437309139848108811527431418631689936931363709298978623427159098149135131775677854812885395803571731225334388403997935927349690908967945001728526723972801326887261286113970915181644717631181221422449198622629214009907224938869663232102353134909533563294994546014053021324294281851300759764912617087994005939820590404570955745414149832338794606020842051058756987547555971362026983487929449142588823531948023107614094922903289195188126714144207599171131331084611675201499235679136229161750832313377726222845203678574842999308790496692980624646932927108300666432267821744038438478025245535100985508765165741170008312862654918741923274326505811417041912791058836263567036096178755818567891112826917729934787345451128894210425206823916762216781212715787065216605120387109808186276116383780572272983084203966520984199157471809706061527010526932305409276488627159388168757299416210886039541682623112157580611838680632981392395128612872822164571184143092671224705205933018961111223377082544832857500001261349995449197369781596113356278459640420275713256038324819578808460260217459025703440855107397578111485211013375590388082692951492967157344525012569717507604323692211230500543888773596507599904693106646850235202718262374539394864006148402315904596801923131494085405078089995429074464461582782736814290151236915227774991701692992986203424237743648934827994972648378706756559266831570946764181811196616506243393748954399835939369074670959283987703968339167598995865607376772336576483100745268360749149223116085740068004013252508953416520130827680997341036457663497438121296940274372970674573344897288056416089929095384672640333917934075881604673608839045725169241205793141479173580531652632554631061186878942982634958553145568849155301213928370018316881069197158867835078197759001765888503412268568557252343480730409880803478537693327247634600371741648925183732535026665286607512863077826479799405537114363670905503669805820257688500216229032906834566122232840441566117706445951905884553506508220438160949329504613577234554435184802515696531532018851609447016831559936475790922039334173637220114038193562749251272856500112049437672044986048817760391227262894333497004599048180381430996989734250018578707460975457030881286750006765476914581681973152384944159478377249066587972754902975158315285798062472448260306783078930207429127085499615617497377647252782031172073183853970155412998454360208212026818243075646417693628746802723816526446287648992870377897096612603909395051028674780496205949665139757468535832797546197811019328656347433961627375954607667758215102219758181777632236682228527768151011432645759849424185628940554526017512889290351573240335654036820102446097748157455341890201985354796492612332488178151614240003535398032367324217521883272305484526355381249854938552125296904652172648575177643207231958092606483683308406378341861697864322493132487989111988815955521849845458798946217719769416824472676837767806425251941705152104236311983609359179461445042508971880065025681768099869689970152682843375317393857644005973578443739493101281634002037461113781747318722613694249624017074433867239981102532604235313433740083542942062037024168421192075687465879140785112914269683136760204411738057067503299116865181933155382755267746915895819963848083930707776665755037247401697733843506925151953506640342705442169252163957870495483720921400607305367572453972638857675201868411557358145600192080619104160960295068528442236235079859054708088498725695643223667451358633054517819068116395165384819181577284430987504184012249459008120655457274562184630199316398408457264702695913379484485833341199167593206364634520526116257597613349588283539227472068972109775074107029632128526164863556195737010181613989299385832661388458571513321535196166003533334485315008318447895117755233551803915610893408607441960831733774173364511153791516608157390184185646783639950588092584339596876686055887570155461973539269499302088914774008838068491179176217417191020822877735419009761145509368600654728925999952177347049064646642741268907847654913576223622041213773757509522018293434632741871848084151293925938253909404854886529750379704854987751450034994451337243039643237331842104774285092313429415688497476232981509070457172422038457906311060800134201739421754623479852805272988262540495017156733114750397307642608857684665622208232888875961599922534996685832847687845593827092033245677074230665977775415092301222172484501150523860644443619133161359556512095010499926688396720826337096510326513042677445063600748660430165594941019791851817891171984780363062841322532674069286613239335440438813153516840410963022572681714394809640552984011588316961635014480658839372946211739914493424807011852180185426801631886088204997397261426623060391816922199634868413410105308078881460729776590427286292419118025300751926931120707346406472701000709099996144721677216672189905517908266800448905824304983498328707141828179322661651938954389273672605810050504571151120542520491208554899756728475020353927373022526255529479646594780115361144281397359087218312350417612368187811694787480386720872834021194843952654111984144404538204729141451029759687093750724814864494206954467897689472141432720887116427424404020966040979828815910150913817469889825950504136678645423999740349735256048041858267933681051027888760609228901650572535726633494430670199478722950594215945430380525628053549475208159815626322023468091114357530923706989153092230486330732878308003325063823384602567866954414331748401816667196894566129524533007158174430305475245780001199586217347008983693403761988425638997113870109057697874945480713138158191997493497588571710472203863431220226194389288981097826505024996846249908547268096390022766095453978370419181939136167608450123405091268619984063887083487106115879496976254571179610767729968845500613544333363578896610500007340388823576186906902475697554583657561411484462224337672060551143137824300091899515982848681343147307598893438012496041259226273216296534892793213400679656923540304334572455742038201411163149823033476928911945777451346275240747007270142747117744130575709614331055941660699733990145614803807954584565177387351975499138178174886700594205243642881677801016887554227612414060702770091686592431398230617905117770847989093683539796638264273658726641408284311142926389863502679429916404673340807000098939589800295086225463835669577819393481193691856486720846750715165181369853796988425350392245684143592939454163495848587802898091797804467193213756145285283732227821935176238868468664528542755069739163579855261424472764800091680131048376541649689181851622573638787802498342955731057380413173352744292595479094516385164286428702443830597353336340389471320276975535287054724724048494847583314659182178492553368486712948428523020950469725632092093363807185771238503524523103585283742963203419647198964892592155001881404998869519038269588173343019785605435826323915900371019971767344989676170777693225251564541225734036007232236793245557577043340767064862302249401919604326855494061695184429862874339241559617618932940570837415528609699958434757570416151122788451016267125560437567211621013473843129412463510792928165452554318605265757312815289772187273630915802487208051440039864207322743966117273838810497550783699306319713517810803665059622898497999322701220224919486690085492696924583879663087435983741731414482049704262594691783633557599337652706651933617026511226394257780560445422456842402286285971836550262294439356818357662435205088270182790852876215166514796828993888719758293831220154991051797549624584873854631516239281776558966583008366655433654768071726419294558291864933265527994255674714090016301618777370052571907102039054990651254931429932632990626497231789483178432028644361435893900361006056230249508793230361386042311038276143749482673051459588123654633834975154443424462520169944685249008313612616303470066372653610427922430315389790251784351315239358809797498389079089520740820517468165701206398299945156670370772928146668865060829031124759945911699064348452752546294922484154185196347337812041815238031108268375663157321840034836236332536192190272167354092548085292595549073204415377319898470058430791805736085165918632517795980874051267532272592546759527167038449273491567717119245930934394344987881675662403132848295925220250221828590043249161815870335663827213543682094893683655506618193349885865985883815122253634225847211983991711929907844214976187793185553395177372414239590526434685355835487277040003587086988446843329379552904475773712892152064701531480118599541675958880699011353906494466563768336523254734402433387437173167275573150465139992871585101550376467679727254721967856076247545538997068087832905247246597205149111625755934754351351243618076344977045144937626574828027835661303885299213719080134528354382009972582258822060336109896579261905972203118413817254863007171264535240675019353156887966874812859095193409930073829331126989672787445620415847111453662895458028764799438483316437323636418363657458058497001776247547485155035852638377853693865350891413351195990092093480512259358296639416686527538321206584181700680964684133751261507766309459833275836481537321578881135767473201728199053799735777470031087998801021862860374141842347195755829872959953012831916987824981127513028657781371151861853752793402257812425190414308966121175282134270573657483253679146493545240657004386232128332763917439171525997600597019989289816848786609446619594341744563612018961728942014730181680587550947064196516246995264850429540063252527533058899126834131182995907173413271885879863490191062180016238912951175744966183762815154356738638114908732442694787502534517431983229570214344284746411960175853256676008044124432587389166300630815802605041330612690471512525946311523135494027196759742657116544164842851750182289297163369657180134827893769694399876833567066665049487230093229519947484746356357204740785499368302149786306798105097079099642620968907000388359966467803327519301472054784003571089508517657793215994690942049008886422412938191746785270211294308206712616956828096384071757616999345769046837918485783350946903471695927663313971377859597716868195678553474685972360295394544333427222251405566499180282805263851079819270748023042042318247131069008586865961518603749782607983339114943745395762257937470480742649308954893171039770615140903127971671074570403571670574524755655795806229886042453955061753374389959138917615218184596594624913761642336022087428404367174605865084264265206991122163250696478538460278031705483792817723573768957989184660223579642516438201982079870136034639563454857945286590979431345021175786383469679707608582450050030047963670463318095681731077239321551131537926670837466649796355401548044674433718379922963311995503600712543530520680387681518238819706011518093754292921985292621900316137093690469934730140782665860141955798751432748748513355584902664703583247106905315252623942935544902838507996408239082816390236704036384915396492457989035019750573995493314573637180017315543490835870753855842445400051362485251078207308740128263927995014420488652155821306717941752768160742287950225990891935114132443955649461896151546157685037802883214701397155882418756014581415432752938417073306519471194792131289483315290983166517804454882949270474894468311468276491280167647095628098411004059635716599083845800407322493283886005698775341935878247175916011257005599670793054087982266513681004225981397527219877929147198887970866481047414822771455116508873427108953552480550840624191266095825490078112474741843376874621962731479158743090872659130768930168331308905328830228655192758285019320805928539259025416063161080187149212713664253721519675971216410368054271585006527787094478964445452338369132927536547311777536976604295529027267502231703782278877021841435622287152550607813965710752470759277652816312312149250102884950854365903534425977018299035138769027588352956498033557889103951891132504859347795454761923884950440711462376865109519792748175432589288548151959977878846121521187577845788208458254128156175962115102444737416518398492189919344947212880615434406614949417885391989209734380272982150660547448120912029835881762151042696376889689497007749246793946218175119829235964993256627262951957061402281764288414240439356525008333041302696448355141259433060239232403778765105156697921704024710913301741550360549927195987647309799992162265537445356616073948377360005459755089858481118894055091168923595124749450394865607494736718179227012758301426070963202624242840369379205403874403797974627031199668616737082221743853762102951003845542840541457385266390178051674439339967138777399702646047087683180457844907492603997449155648455066675569219733842678072823463806520753503411745304700504784692904926211180107124735901718612435587563552235214698685653148325589347868182265615079150597778837124392905634176904521234412680206982934935866477200324098193925997725094652926943742724112883799740009537574082814314702064665156296920094555147013029021819850415752617898789262057541634383710585310847968779605131873973086217950629868330019254847306153353617195153439218851193530755710294420507585227323646194806666307923198971064437577281510372355894217591845647923958080153150456294396583895343787702928534822772516813464780996976961412766774491873395345935730215473978483059321805704531425775160060807640579671798952715927312150510206828089025229722981415479327727735174803979421280650670001827328623873771047487369246052401987835686881243101935999351702173933398285813424448235047114847013307585989558718700750902159734965831989082827746190371068718818101500645363032288044225884848166362236649452890231692498303863460670215229247669245338671928783738817999709674858562202904977696884496316520131934282096141010809452935391181861505339776970436375140762210385361879247517378045631162685291404640732243616126273324256222818297306784273702337411826113388469871932311638192303574648698324606194275484165398481952122881536248143806626512257675469251120673791852709445521887006811983565967925136930689689461954659444467906321558323693046285708602495055096264067032221438426725037921384095898126148789808613314548960043555334346267510059807069641976846029249300163641049787299358766686754306162967781953176690101820295107750693297650947651587661461398706061776061929278766692562526072080541252866412176480042404650046290569989724486004999260465451485549426795782725354411603101044589000175640142263138334375350403292580053707953836415205719375947939296528888620217488909524343080292052758785243445140607883342896413041849426651024038375760649759821239192185026143547934937176289665053988505801146048545786521923841971229994851825025870778646271386039255388137034098352809773800798053105785753984859528251869872242033293862906403617302552856338966389214701678259650499272268227801355473127120333217817313034498025231185088573566124663723366227630624555966163307334225096032002486017925406139290710688328343216422080960634951056197885646693906780475209423253336064470200389186968985277147509341249833075443760487958216596053490415207178883289464670464392224395577966975720204588902042692093511353705967352864885251007515905548860670085641637479477922561045910333612694323732879728536964568633288922559233951376205659482285371360519638394334673673815284429582734334501375296096007353101989358496281288482798169626349680424815470913999575259847769996880100256566590312251720643623064090738737432557295857070187600195024069914752872777065451249280940325412950453113717784069087101710971480769551912190257086011015625364968436657116913297165104156758431514579069605889569125792643730685812643161017155636633241930922420456852017477159264577406534172464624523865332967401035505106360385372363796999523925882989015386822736156689738116390647542257091476037125277680767011432906422300126408493680038710727377074303212295363224676294628142242014423925135517092464758027233245364059693696490477704643803968912607866889215338005263017300607247018222863774910480972461186100913548778620093352035676889828531694021999837177020937813272532395641433322323680902306796511222486955984609565653151442298781675980869904611729602753678088520424034359880568119692814136264950854557706030583112823374406279326349274774821188995815662942901847545397379574457316826967642720010481435292701404794886766129657376634097733452197502722463803763576719874471715607542951223349616998035213388594702814775862794929084117043092409295460771867161867657718952925345295396545645582043941811929537233953146307859576316307873439261371798223350516036157880287670376860976305640329848527160366362798917147815202285233156516701880734299592973653047697720991972359887585956304897675685221040436366541309192863864465986909523811124409897656773696337698347365581804580215556500642229180618605715426730455209282305691512790633869613629119497433508596348430377312655181377056414792463967271832145269001464143500140994690289691847636425141255584350106067290307387751964741247622978139740196335337465146010527154132178538232588376206845992000301879288369951092988803541095948436715960162872045892409440321093187302787581627979964654310164916139040191238590001572294980102920557380049055387710043322285570753492820914573326480071471826285444607500768513432220986453440725379584089051814167730778514044066833546004395981174192648848137355112434960058675311647906524834662735384194179603871742168199050589440072358133059110529970934074883416837811479141122914288137197512438101269198497749051569212390342662625378027377047106257275881035628560801141922070401688011233732029474229457380777931764131927211646796902804640714690475473308674083371509466959806109329752461977992030482466204784294641737283589164819444468722272126457093353693624161605100320480365298550607178604144445432893970612730429020598066895822714126181696816227259506800446330886736589563008898967785058555578056225887848329586579649238880346763034799995685259139589057967251654434218758942008248025885258097393058895251486479125924757144165903029345692056597778040411167329244756137454916494739020827115210584284920262215205802236553952898293166634686653920372936558857228478630494534980097713698625456820887102405265348151049383438594854291419450462367531721786482487815394725754339643866464904936060899656350437703267764735941961646558058686031804500809418367133188931171329475184342539531578422106528439530606495473535623615259220296861529332980316940977934109420743031476036329609608560751665754224765107520103656229050247176421668694322643411397029548012653478885401898678213062218880802843131530524855264705353717127243213487021741778966852600202066857397990698439829879490399057878087536572499764190868362871692527243977911214713297465576662890646927429472423683968068855156080386418706321451032552756753670568090620224991703339182076616478979283103260942458569051813598062076844282483620345517305451793935791306689760290067548781227657781014811849078759974785173152004009288110559504720566077561807421455313277843352039332703121056266298441493309592217830675680758404373981847289928193790702483627639757338897816960305926469620614773175842163690931908998398214139613034836850876280436995866133910123542257622739281737812227476434802107290246656624154831174739785510815843709129558562790588151881148805785764883338800249238108379250253548123935387363738957090969017003554597502506020078060344826091539788784814231021663443060075492183149456333020885470416294447549740324085900285589083279802446448290264394230852113998655588446788351117421798685298662049951130729224059111707411438086025830471967839035645078050339602768701317388152925217129670661761060277081865550830230965245128966097880883960806268047469371324130399956647715764177120025546500167635468902647351426112614187471271077087563169458171408437830561203984688768865593496968627391068317148097811569266463979053699767454936186104979856534662216151566542453933890223624231402655458546167883657993758947925773212671345404511359772304576675978007107060162546180075470387006162950533244436642809195475859525441734799610659992825829838367517418195161186606394419551222557582922121701652866974197863553223898614175340175147331833404742469381122190001320240084566358451975749615602774929734236603187711515445213585363301163001257029414511551731758862418877385547155170568564449245679515929949567346949543162445708678487349894221083781677836900483141599483970675785096373797696303038249952628898259083579806734327870238727336745232551952540449702408423288873210294125385996973494430705573135264713776239868835910823268703864758352796556869713567215277865948117201406904449745342490073748460660413585883873642331261364614418247741287375885608919822225097396504772052714592246766820546148675112513638823644388655208411348240062175151773383281437551049913935549861825848892728288684234469993794477746352638229426673220434990844827524193692974203686830068621286766194889568175127950387647352473118924549411276502652325289110746277789682571535233799807260430836610816304506579647039874521437610118776260968410372177246285605666302689102654898074638913881690391983238320627650553982299259101417422168845932700439222991940981822898436574868979300510588816926380918954640776350730916713500669056009008475675816344705970137512715248394392228232231385680089331833770255382844271660581466086351992082358123565172785900292296561506925091412230802730732630134077263050132468058524733262477456913421212560600438444696590148634306443086865001659173268037366638513117624764850968688047679767099226061242384350299268257347648062249359604868690265866842488767529924414182433162738373559512125561227395345805537127297258493119972440091138983421188293482106503741429399497274422040916435245761729996767065959541675180570548027115981955912373664206160769940332522754023526789299543966413005906084091926995837241326416538469109686517269731125838393047548650129381655645551001879335497290547240818515588846203948217211042061670088625558305596543682012581158720551104102927557898501986438194319162880597397202545898730612868915697486813871191786244571690335364327936159960788248621005495064471143352066966951341162813769819944794018138629759281804562574257917832617655324407361808054616809417776418199917217096098467463852273410056113936300872474231620529020968718077740694547478760493911756486309883195451497370144310997858873229535168681004669270805105372788878619623069900203491367102490617348804681384335498855952338837152032118313542623050223305155308695213459901085527069956663434075768378608691501923208885447959822396952515472093948448987615490338910829958966547207180583788375643755813377662394702958803283567884530833878196392873281124697330543065621652481929886391365370873892370401608686955897138526279905302893280456951534007518176729901288116469705489834287311808651683571462144236984877812336257447311000912609582928365404356094254903408537793068135674236799524503825258246039153156783897587124304036604596582165358566096908851403485978349055709150043227736269823026491398330518391672697765779404621564206718448624738891399900763777309258877356234675037348938963486972285502568039799031788586401554872515112087764263772472962367362758919515838808339700938654118903610829721217704838711469013191474471022723400420582383496026947201384928040982759244879229999790700972770845242052343836659703003958093359161796517844258467170827423940555704225460847424509379846442883876777044100006460278241298509339653331566389086588000546736610024866835970093870382258938080330868324185110137420728011831512355466349322713963603676003142315997669109863773857512737065555868677351282807510325972720962212283617290106204196190807944229432573754826405803042768277866725827646643014347599343334041579962410400153065463806843794532124003518846248906725982926143564955912921877610798478426462687047839310695851173609142541366667124236557980711285908467257554672614998947664164402956401852728837563848218341374951038839206061843286577718450459425195726708193273311316216976792228411677355496026846673318545518690370738904086582016804481448298242166049611500419217522872232478355833054396788574757911044601408392725801069942294411258294996746762293387170245608400839876769766031522986996347073635702818841128629193648370451983958137092179962136243508275735299095923869606199307723479651181717500583587958964688298541283661750514065783591134477111529966384117747421092336127774468182280011965907052692145810056417760211719047539920277570178259206196818514162490425112035286000104017703500245884812638388819781971875789735882794368011590960798212008568001308062426062396455025997230546734444365603563583384323450320436529261802241618119637856931345731380126369200668656993944764953620128505347178326247182787109458100616848969394631558148896798161426996494008320128084979769096845274851034512934808117329451543418711386054686610436054407470866372997195375334315860699525626774638330926197276233988140807723217144506708008492181316250527992476849560915837027922282763863425055670790363294605707949396371332606781074035850861513476055582777998935352872223789959530185239458162545704489840909971833802224302360426717003399761650547623384365030529239685188770143979470843112281867199661009021239226268306188495890085654542855581953613827490589051619035358708369221562278091661653688248804498038631668522007425891319743670141259141051908128822001115827821452693711195742403613387260572014536123382698791731793121365026810717181392934324643878559601190675100264252690084539251125724058659040921501020849982244386066662354606066844132036433455090869153772662043769613797825599700199986831293893351913948938151393133221000045610649044151147252114026150136670285215797181483555311157959044958525744214645759204789623880071882520617608124731796561921606919903645961174727247749764708264012020332243273254575790733396175271487803748677873859833537481843720470516136034338962178176576940677716424113631546149393438698917324908742380078734983056527783799423159981621199504059063094023162134145485288837971590727243849282807363662541982421230686780964848492515029725026812970485878454651885692822740875532182207095794626171466264003020778556046197667502392823562793584350668945881347979091996111026560460278423839118877380031750083260870770991612343559445223837337286895531502610381567722891735952201006928529199202532882940315676492590673431030698826803962805712477404392745269836681332310707371312091422190834176311343718268671399321581888359517920743293110507176541729297826743365047559814232644625390500692208391341860355609335963948158372748081647422363277270668133169190412682556757365034744044458759143001010063092119350374912012307988259274929201152891136565234216878900367493909383486903400337398058885096874515950082996262603902896910746315527984753385619553398926409242537784070350174080259990378296432960712312193505650902245482499928264847133243729471885026543374080006092744629746656702584803991975805576419306715893394918442748366612291081037307598759315552354957675977469140259424709115938228963574567550845957461989485668922276154609720860741201289399789278569367370275858353738224973993614796872401127031317786802477390106378375878300568887188156925189113212064436560780413721034911249323593068380930818092690472765428352706793532436057967197334719830527637266400077601893113944219309417236220454865930966955802776692496443713378943699018773256051120328754559801219586977513491506940210894314156863784988219670396864956246217942138644681583114972271925395888155343639487604896702441712223072494477062891566661651430311572833931476396397803398246603254794644797422067623388216590893405024757561689562646820155837798572176678907427938913112581545898083070153190267721526828583321189105881291956516845505663197888833534216274927824669122982369197262035787672865233694163276176480635714906566500207485396683077702728792527735332277612847891587845178797501844712475681077917089810504101058230731527153173417053171606015541945804031078031113887444765176989174023689227582172276219899386772387965323643556772822626772014607395161891555477458917658299415441601666290794845578874855099275340615532735334191523813477026212855041320144801495378074651607692624475097507481029326608040953232877474295714753798194764822397417293966084136861668920073529874756807593536857488490739907483652409570343477770626599015345336256655222147032864156325422739951215472385207533825594138167507039085756029004285753116094932707937849668481878927014799852127179186714560500396977997075371826711397216014634119703211991599926440574860303910172781461097499234970408122878153439521126110409630229980196666003105926468938227060104939392113989440260292365755138308317733022736226193887271518282002164131240442379569779540191314315066254708319325120447259397456746331696570998537930721273764990809362467089319042470050919769290627726577401697111753402515045035398853739276501472794796231715863364728565735858306535002689218665772651852469609074136492940358098973359430503064100974056454843887521761164891702711929929143295442378078106871530895074914789754511746964106787240120868813809106878610362526216259049508405767418093379953796230377760272122542585541610680567653868068480523664672422146610089129080176445424922897670002319023873311320370662101162026333030334638421262755508185898927559244002065462446807719250133218943661237718702754767737026207209869468985543612208697625428765501939547979782904197633486042420540457359584641750252223977770742723889887962075338924277218111514329614346255112265178651705566382482055639039725378806828224276472490141782768275551530039302414455163523203683082937678830290334903108130427501021932037768099151435688234355246815617197951011661978868242621083160991210479073089408596579247749555310430422044057436068523244512231609768562640017558658711406873358021329185705265120516327067152563270736777075309643441186763276372337523196049689846209945410033646192257702004317474517795932018697077270329620543383802900175074782386646932283878861377210082800584847392674985032993741215346548752468484687257619839112555896347394001785449280244416426409605804365383058078319905684547015189915870839924950455426318445182398508976122881056374345037794366139901992101659434865987438678039880273779771657784806313375297883187713348176237794316665586229825093058631877144654959195983247924827246064555710045096932907821095856477214387557733048029240411335622913227017737338222947545348394587963818762401749833858725617427708149488884904731615232243926346841086292190018828374875672200910431528228173401333800437096581974862453411636879017532303600226882933973724704801721834218502381035772705767770001183024212778127652203178522420342452171904038973696830172759347069096060435559468278420940280110406031026105790917866683426638625480269445189386239658252256996365070799060065900059275708661475518442310359405098928983207474916327029531835327433323428785702093480747414601308188935277358726453463251462828832769337496308283945853986902515585230747136313097135402263454538334121863995524129454733454034569389289082114895682990070645674466586647777380049564616388532035888983955502771543422692580313418944562656876801148791105431085474106091407532023730910626844290067890328828235716796906023165534381269119004479199421618493764081074417709661196055477774887981744686911635868758584373878805841517832680042451184441119332142943006985964528102190586678777063888526221713407830018056944209533298574073639485445444557034222293513913023853538779861086307378715269981882185950775925955235150684903919913171981934528573612144029584026850389524845671742091532023202535301722370218782767212604683701097472118287520586685841456703151543155164482028991623707043105965646707620007906269025436621627392011396164067954629730239915503088308647404135890611201248270102590117050383544842401606118141776125047878778131117150667513653548953003763757505411361686047352426970495679983436077025147475878123927817580732423653803886067763263633421685704974345741235629110982892306397706350983268494143459621939213962828906113691523408476115799420677338005762313192160373238147184142345742100470073381075625133808297621727045514962334736333157424339203704881456854915036559816712525056751461545144706444341226050431650853278607630785783707604540032808086434844322487803040131070197658798079731000694495716772299869581208638727821488098796635657942408227794957758366895994319475922438579383199785873657911793960200136987534608259419613846886536545137837384010289341185237092628784877708285222080175862787836293715581082506384900993772440801740248524083881035609869750355691609826579653854518834845446143195748867891112291434280730639422926819333149911015828162780310920799793300568604107741433210541502782978061699358726142568658469304442221497917969833242640522617040035900929605224621635662481460573202293643888845958397825554413256277516685216379390398493222535083975828213180840869948313951954161089643000875670278773491367136846566418599937340789193861873974746629309410731045243413381215906574928300888219699142167493393781289659842032124400657630415544805437814300014554499730134152199903276258436889370381299026219473584618454058971663307268758512126481599602501592455529641057333394758050418142227337876152236365522249885325499547507193013988844997188893574417851087316716947298988368155190986373021383766070324519274881205669707873365678596382615004275042795626377052640440590877686810643169290268949082847028811287663636396100362129374658160171053701784665815844795653098302821310073390272088460725245392706103533075807340043426229273957597092268844386821050417120400271198507114829248658919518526031751492791268109429484483137825720259091351455025132300308488391367679452136783988877120216894917293828446333548527784479811504937808854448772040145739301065128761019770173266826649902043879878478495686877306620408812967892828379239702552713490112402849007314455149564799392157239937464018772007151137821347861300388311576165829651165585197305692680341045816637464423925151484065478192413813750073197481832859060346831089788604723014637131777955977215210510791510442468680545270091240170383944733693760968358906848095991041774675511364762610295288532066732095066682514291714956145383007469277545389379862067778434584404834983366456561110379620885848585709008069035940298736513095029080813039604165535426647848498442206355693436486165581399269096862988987153916551268969111379964855568266382787697105056914376792437977364025027988954536264151182956239096471298259715036322505190443210931808591262702327913861319786442752121486521767137170333454750332397735471791786559028577307209159206331009599603309596846723969639599034261503910085255876842767459246737067243728525727263897795818491114565739499191052238569169570690017072992405902226651401192632698742261917774597324823201481842873805005284214984911907426039187697505670266189748476910536919823801473715991281072799178713706900455367602137474267418244737238148752699403558532930301446002585555061423456712746666185214910656300626496245319607848992719575447074125588334182354232013631295799195391754256298648174020826617735495885037288166978895558752611956849011644425032741410842735757163237753157712084066408333526740146048573919598994021017873577619187006172077555373593162174335467554012080321712382886675898686981268818453437568603197717682884949147981075112887985329872034221896469878849404019867531417707408661373930880166434452047568546657732263276908458398439719134719186608719166768500356000891029039035938863703979995412233345151185558301706426909377868499123760588505182979864405133360171917858108544384374563904188177212885638779415646969191585643164365159870213714934827901600834187035790526937882282158379830880559808561884872614321656610050837722284656127085302886836693403106148997937698784042540147535949570995308748436375268629261676698977618234520567854548782483589044045529388210704019143175335030027824035574459953618363358690826124101976396505582590859464864700620320741605073709767915458828251784968978677818928979485147517476984853647699701820677933711209246016398614901316727363007222539300389200755323339466894679712035411545478794581672229506052001717901285179184812286066162582134087965623632192818193031587370011886792766381202697567110367526379476898978225421934724080160839624403893805911484719169184099341604040599814262213728961112639646018588495421688336542644522617068888844776726396082906058717053280249290810159185379987135030627040058350660226411956605625636964582449395496870148308747546556841423205894520926230069009211589022571244023662061493951427224239941214106402730206982951513515131736591394228205065086635496523690796992943256497388263488357407171661482274392103436721824262968377380857877953717903141415189846225138503954397197786798505701316365627492303885183330158002155843569774857428615599684292553053930048119748462979226589448016139932987096537841423061367117197065274612049279626686502798726867071785593291835947964271208142089543119906764598203128722581121857784395238492031229142273524400873196173842953312551643172385499891045975372163488774161732048484446477443479155653342417911992034512177950900871458302056239471324930279993402343608247845439593060491060417816368485180257218723853126306028149998878997361126998026638594400211111981406136521953826787790317897264075410853411559576067168900873851641922382415863727863844117103227991140167239216843782049760023948123416775814519784480264273926246619872299362244173261472508770545723766786067526998615650654274914007574452891073763325393520004504300490032600429500295650070573055322687385704837488379718846360559509757291933926360141072709402372927572090764967668323381704367907177504824446912740436729685110342994861682459844223560986877627651023916116235258105223951639530563911182421360963396068225295305373085955703448523140007117239219567442678001379422730915751437309523833428967425937786158415047316156748158138359716209848469220176047183250190489060153074243052402569056066359657117678962826530167380364788823872674692139186224308823782795908898093877194160084920119460278917422238133735348428189729848566360461911357991458585693260120998947428949195531989153160536621722864837769625953427309038018661458435643290045459356242526568225219399396585213234955459635067985299658586762358724253711241483962193105707983769054268325988122037452949707735980966370304297866442087051667304692402545952937922582631025312416348353393007520232889092160460777379665403868728087763466516644108704502610680327201045558152073500267817591065579014681068607222899617231085018176317272091960135120544143813506465514464556395423486628283376867949834310241205962369373350459156500889405257270848351631822655311048559971686755705904544221454101232018066382157618245898045376006546025578852098531152258572020016816473529935874562731488506554955460623728290257613184116057475389864433990416107426688088584958835315519812311382888720930060092648659261804745079280113947056433038441122544643130919489029482245718322956204745394296245777297839637830772089229833518258243677929711448471246735366592376546082570125315014157515610314103178058809865873039405333622882482972512170783926657152187400907392620127554066776160032217006503906438533726391981882077057399538001421708573018233157869586224111113039914581074009814913533463092710262731604504649545907984004189381571206015130706086227035584640938350634625572893414302651201003363496911858298525894933730747660683225355460926586870981459650212923709804255419032790394470622768461043877221870699541748779934319566249975468097989437072354702090073455327107290007318785381737487283658683507056926909675049035661985979787625232546686473110322349002535330729827999751408140431748071323291613490350977397516944494139771936598435793464755049733346487595228498937116161913463797036744033555351797026419055003194171957816107432869534437379667480302627285991747350750834113122683718890087624494836418744236855529911546750389390364977894756644780601249753660198947845759509164448082931910477147948569987693895108659098767564445098312632200862533406035571826913351845014495944744213252788148120060033365327536840277573964893684721458277642865813633861038306192881634111878186574453001484548981032810477350265695724075666294881079525846973301340409880263292328046887841709157329879450193842779185484689472454197482822058391567525691338384270010330017945004150686702174054371012004544619247597321075887690307837266141241173791714229217467991680532078097883104971601312334369953398718890207541095186781377298466653030059088465810522391996114217418903751754335371709724867575809262611508734485418993225358394927607585305602258117188487976578793765039223182959137512776168957580391526885738056219456859700936677400558575264560044780472448759970106294862679922345034545575118755691187327974525837781344662653657084702623694443885949743828287648527044745275821358958742938911487385026077399459316551158120749036740298740807509034799722854485199452499723776969982843953371595094551773157606851424969823917638937432685121879720896473005116311299602054355872251906253817560656410812746511154516788641926010918759361043650372770487829405953023914239147563818211283114735840631751722510840964389868329975715182935901233651972734921962916406393027129984731932262908636431465266955584061244696481249822522991586046676577361211607041602258318084364870156581120476741923614138136954280467993195083664188129756794864797710511835784049550197317295696461681081621882892985514181423269044010974334651789874667742577906457242141531928165557845718686830887402763398440097639893249521013662903332837471256385994495088781324802154383654816080352950310065152806224414460361893143734232911481790614528620850046630261392523457799429521078334033444484829888771771562894866191873364027794392099727276844142124594716576460684932062820573096908486675288329248337625198632835044032875121494369677283775180078356701692605258396171497640935226150870662879841003689378883654367212846912339424510174771081979338069983346970597631456201481785715747569275556561183146297210169331422250867191609873032439774008861084080741461869656776014622856174880641509403830905963392053410161787214989778802951629826876332897911832009051824372244824984089740949644879247801019894401459814406824944884678681503464039318064942847194172871715415629009629334609461256573170267174857878743372243686342425595950485666426387879494232112379799526730764136907500672622329839916569107549954578909181418956261400255575036707399603918597256480625349568711328605151410269487805816176463249177270744422184939980552888356573813325719783993853261370102414167882702062019825740548814303473536684515445687778791925283051779141418359145378814729627095305984004762355306828612389670635738121959525560993392007228064364650996837608529625376152192428524241753133898139132392536349809501275704575729212137122390263206245326740928159630061938063430070805835752745732916529086522888429376300302002704121569317422186675765930226794874082216121999389993674465409659965635600027860980086330467330222378554858171868286305021221626214647101621726529207606557026924865602019314939044089427132152846963799235675339252882475059782652998599965615220227851483501430613541568090905583990634851901355294299680847042215459535714701658776936592268613549560316506233131693989118381795052539760349936215961817725108187518746533621887803385370937592576209539496985343012511067830932498985330451065055202390856900742532484655994140358310791917151830426717530257591711570933634245907912552159495170511916876326506084608242064822843359805551388133367124962527168512703762792771964242584937861458741286142183341219425240707365591871125944501075383169764231244516310611606192287678370922917893085753901063433468528863375409560054102886454412657416471552981406907415222675495542210622419446882142505767111497576163378653933858327614219902596499943810665382533770471081603783901402043161867714030854721728706499389891206305422901245462786612155465817956550068886572011854750787187499545158499924386884167450961707202154776207779534793680678508745567810662779975289733549321794020253722464027972763520363484310769684373363574325926184481729716409489197393118904814135880345494186854321063452776193122900288934230535859056630442995273104190433080773473660094563047022471844121454775514368617521955101822184889909536014379710731160984751123610365596441654046262426425509169607407708922819607228222486389561212916381127182123637103594464008378040267405133643301156856264147428136573888901454464802894725124116563095650594273664911098445384585621170272578983244094390316584592820148526465908640556083892886933528420845861237038963354879340995043742222066942760302150999827039801388021542659012439879930452094517611634350626363005090926700037755028383334630651182272680082775384452514016232123116046139522720511125593430419481665635397853851804603141345722574753219998298255986443678739691876821857697833109314131319623827981783363864292795466535614040702601829889669339462543855468137890405929681499479545760417251352777136275473901315865889856843219350169239521418068455348595633188830771366387825513439470720610902598211839912966069668192371886230250433725660771985750073517373304541094569626047775840070598569043075060796099706907152029301595461625820147497772148577148836007933031869040427108265041154720928663749269038534759466510430267521151873660595941927221270148062326223864852939860310854312948219160345553011721246907145707105398311603913382624376155054213472844217132953994463241300965025501757766597374206578082930288144069407166267611773486859700379154877147562783002256636988200364517360288714896024555855733101062379908833054421753414988431900596404572609310362329629623100347974141194473617253000856617708355042811385867345533954240225594543553798269388781292747799740156281668228305123533818217720921146902510700969623231839683078108615110922558713261950468288681101381776983979540765804081755130804750569617911367646070834510860226584580055139533414324109782586679396299991737406810035500675731618667060072590334886992911386880155243502578993557906661870086346025624816940234349349693746282811249216639641215668289247689796729515624686144623763886506610817720527662735519589097714074399781597598934624130850178975602578267896387336967554242495075396720375332272277968309403320125876853234072060395321479461427153442714749843065613834748909849131503325453183156716088279639762653539789220861642665867100464698217100908986532268101648464171051921715802806338243798773302052789896069649680294118897798853266963142307296797726758120852671841483854642034314827310115957504399606443129373580745757945904441757943798681233229553770506247552473360333140075219308695399361255531325474701029835900584438468188249280014101686503151427003422182783029256044517764801280910623025056744194966845808499597226273952785539834697330685161643677255869630758168036789337430776042065187208175247774834707720668106804950603873502745750251149199492077292912599789780201446568415670020466071815718409687295530803183126772372762822916750763977208912560548087387401139300480581903820125536729294758370662766834685817703564196645415795251179690146759414954475310268805473256139521969284490687310596031184662431848792476126002077984118082496567878526489495178808029374544503302653771876063336910095388081297576833423515866592736893361008627339290929770110236133326369335207728774596288502682511016806656234052762839515000316968420266964947406809402385616074119994805056912800962069505836966978342075770859579353951310590785282766082439659604044600534306448628093180738206567283076842161515516396202284964497048164657108243026668132990180582479743692966218842193217147548684402697708229148713134546269813343099041072409076417393079499895735830051000768587475694053335514441524753717415104540259718481255456238089398086636866093939896938432661772840984825831471332551003909545914362865566261469301346350933149249846111841083685577316528995239870293888244526436676432377928014269162095472344847359044583793279669218094953824817416455901638345247407655414320804207636914438136956266892739137310160377920121655942251632175770968095048461561299349502353824238747909430857901510124483517051794963923431321700051118746965853688853911583401166139209832487286837480697340978478454357074580822725143833777996990006543869357185114388038144125356889259908682804224014527476040213869881742354310898204023679557663042432005166823758812297514066339245221228067406411800025579907806865769641982148974743440462197791863265396479868265303163601113392506415725231033852954237668834541432313042233402040128910697855628576127808996822450287988587535833972851427245008380559407995286391878441904202876805642185418410894762958671291174254341984506755741745701755839676605077830627883384574772277870652132536190102851583039470394576003129981080468307560703105716203722857150804804828056676172823155134941148392378608409829862874588257393015725711198301874792154312525695672588136465295137422531773478642236778978127452618319702864080047219439662287402775154769515697780034536305580796443161952769024201263764051189987730537484860569246441702712431241728679881686906889611480065554642568217769191613284655689275867060649334122842779002064034637562104910897498277587994012966745680474707885987978102653842214666435247273571942772121688664965890240926609881725415190865473840650078327899253845430761833235350400276373842170382052486589238042470331051035297546304703764410476476064692249192062256369914815648043675183058281842952010233010249029404408088187656539312986832116382265312812830652973613225167434708710093298867088346156959381064287490587683716640200530809609738276284409593336065676986118442174752447253278192136025193430026413695619396065363142379920406238400511526225033274403244736369365459566573351303034530097946565172648721902104739858636498482401057199419973972945210261995885873504533526300425425258475391351396330224249254891740033491765518974298052268273283947298878346670714611762332672284177133312529679891863718347120562340642608524515448424765964243974813147596367248414264149670137871613003995882161866007574666703630217082075602704819964848234011665544082264748869509911072358029853860394812217995648235692883918602288572448137059068413639680623145337446848401698716615537510726285739959574013924300110368697793543256265394690023739848544706081113776375505945111101984591781046253752575400355410596937650257510976147247159362480222227425613903141284496295618262648737698632451121079048824217391855188690382496905663494493437705791654151430469629482819906283807847841109139578454188190038095104547437535429643243287349061664874974854965899972328536819107640219085601883575451458351216258409721451006673365694990501914688080425143953502969407201721193930591663337886468607135665563835843765417666480188473784386746067061575900162584919144050773201831045259552111681908444657116794902332921110781762465636063572496537408446807563065829735717942125091673166917661296600751775188785525412491224307498409089485440160382019166687900914826523301158227233923315579946970916313912973002711751787902543276649220830964570033017081431301046926597025558506493559072229488147952610536164287661643227708227450663133716724438218579323622513595268230721911696628743214337921334189570719913890309519517470986829403692873557642426804130804441481685817824769179262704144611072474151810815351288852490627531643458001430843305458862233538582315295747122395037488307317290356843002462959317939929645059685017651561478793506987533526720664570636359069261694122226579781255469267922486123514456311327509104529201051159594669726017979309777489105368838913218225142905540174334487449891049460210480971628004573174436087877058920364156175486472794811631701138321973162009307176587298154522447553871957226765528835302052394592459615608702767356310523819776218268788866400439370024784073941054798925438526043373208522217798998970603552789626456190004129567362283269952573077719011506827670118658342800128522554954913035560062775896885850814907053928971577399182531835105265000965745333262791921111345312995820018047468280119256864627433966481649765351340292989081148663351323074610480812870040176255117753636608204366712227401098814433338338913850239710662225980249940613493284422234385093384604811448784500153200032171498009384629549669833297379646504359827269955919626332344179901253336461482024319668421278847838918011767609442422904440469707220891220875944593861571058722828892456942811443424760252710039419041670088415091917891055211609427471893353408895954777183104075918432230747971801542191736097913732897869701643779364255129950370046782477739969056761272211441981409191805149757460832526791506437762460350283530440925823258619169257833499571441746916470444622144759760378657023009871322416510103781558104042605395908332629475232510698285938592715074022256162877941709255330599489890849618738979948801934631717684153452070881461342617663945133403398355708135213402761283758462630729408402904309660628313441077953914446991385082749739512246703300864871230185597780204310217958084421780665135103935388327070395403972968393650608048401766479605118839066417708094375506453573175203816425355375366135543677306488734324609833489247859741808753977060671079286277563192740131254855382238103621955782559534316263414326182535420977974008978590995101765086938185722319066946909456265236112466438567769662333124191169106471347251870931307409348658246473480873453132955190133827803353945716239033572436942409302695341767922835315517998608389315155636799572065755567836653375452052664350187630623118580807396928453310155600094387756115780957971300363709699964282312867390850376724468551435312719269719300607281300536742774531203114832602345744678603589838525318660636548376533019891250909339888275294720782300380910887094166312259636850589705041746187578306916728100249781165832190333803548946387485397992648100030545500055285958470401416845139058085963273255981504192850268331207044924621115966684364978769487454393129766789968099959246228788131625411722802961283456384545141048323521377014841969051059853511707487380116867087705038572823764363319242743585079338835707850548413054919178189087554395796900779616936930340755900154924561897926742703106162770966805021717615380006817476243977448370642952414603863566150800011609496562902346562957657642135957059565516249251364850367442135606941417494269482344282295874680625351534833096121460133932222573295044982885833010596414286232476744710431728100639377230890420208344888647707861064823918637201225442133207122983217471777198695069857074573469154512745983254042269912573441662057154038376462008105320605268157649220250747166247262494790470262218316615495738363441397786116468349699943167089014015938622494105561268204638105942143306317231115471209756498864458123840536506616289429386806266667239649840909687199188306162707641972284961008481272342400975617063771447746524220760270599093069012586582640196419876779473544665579971526214804522180067649333404324879865924884126107666150413340831933936082100221231161481171521185798762104719805256006566974191475215153185712788733076973123902948272121764535656144683980609874604812364044101418793493224844480675751682729902730474797638935792832362403036222848579114280060481775446596499362072304614548827497488049883456784491728444357960075893353590321461555495303649857673391204770084921225221522602347740411840364053267355168111911342070761386141604202353359476649043544692769548706069031865009917858881809440176303035447324800022486439885468883998889353516355569008870480850188436116344324480964357793269159432324911283834032129501073748891703730095750686167137522291558889528256768581323092907275275833250758934383110797167122028696502877130748538116894652839460962900311009331175809688314134929026603350002947839680641591384196280543115055958077765218057351330268045009348719818277579756023222821680340971483882220677270365872659070493557882321888644271122302776415628139010218291610083748447471381953352322485926233183733334635043182916383482060636766512848271929307852682929510501745290833412477535612322952801838599577482178985146558593640353166951454082246822028356126886324041343499877426801706849719165058503734970122350537496792596373418265391834474025219372868034368079042096623291355157446577314755034818888586081221445448346488554624268142563794448430980569696293112288779892232045297545278928003173084940163905385646263789934255162577322666545098551764557804835271309820809735758439145529970971178091636153777311143087994381517053490264170248489915292825165184830258103770043556980925707282101738453293748187489941175342937211259171024008235821694505779207428500724888254465790262009937310576230866677637159337851975642193448782748316494081574822216839398428264507335569473903502299796474640427296760961641801670666757342424338733656243833449415197734585660610398760934724680539340468900425156906598987611136370601327119573167858184368823242972988898238671997516301068574847992451546040883148009297105784605517378613067436107143902549303555620703068768956896374285644404008209957507655143857324678040180643627726310261709716538455720370229633270401893816071448433639456353667993746343626734975753892665609624646717096768476334957770093016369848784250867259793345198875082789931950229957475769798743431715708351402192783209398659416892659237501791578844032808645771684602499786568563803948910661329081908966135663248702132976785671828621163956292485272008169635416533462440370976351198710986316861726037772270469475247185246622890655746697331996937944023747409342549047565298943127706941839550492835425691079270945185988226357768180676518694757870785867894391537827425933540785867195321464503560271931413437284622268291114621464692320272019440478256998312209352714022549664965919287446208579430563466851918266614205009758755689040331613255396547411212574560758857781987480930120782275359153828038704460006424398198343756016658074779571995576836972644085365585208441939293284831958798978157321072465743423538971123732117095405283302685417487668686924325934845801976818887322393560273165164162219176292500267107955088918843498743758537354979359181824260493121171031182185612809335473126514924906350040384727543511159433985926836865596979588500336338902868961768861297587640758136564274442203066807130705111624746023395749670341709655549308922846036926062931508762039159410234934453520755012792948955092396135839832673126225720195621783989886243197990120908220667289367874393111907219508892812953353435799857739757580183388205498171135263280303351101808363824777103877058851379843460638975521416557741084197029692858142276721410597281345322912102359828742248396370471986916888907432458525762220471535104773864188165680611032926061829947014786516332508828949032003038008727869207902299940110696235047163721584726557689383048783664623601167382848992904514294377032293472257275876967087558644667752277674940701536881061640628531959706957039442919113074227869112081697699830590100489554678092071217248193594975285757850390148297021959570887677946775624203569264718475311918881059794094419002087702472246391095103136560459893852353659340927367983291239021778110428671078982300478762432616165360450568048744351025356616176302675257445585193864352338274077796957481388657549615263841296194655565908804625709021135776270838356584663894976319273233279506811283743042138941273875224757489107010766441929685127545539924540620155024767934494521068342824750214610376509352096770992050695236320058288490972882636118741650393616668169537019216237831418255662269839778762584906566487299040422450848359201748457355604823485094832164125671998369357837776664661751061972711172046384723093197695419384375259735613348457266370926407027033041044444295578763097066931156496547935972380305957184639236537057399633600943640595911726401782576977261944438842224698050893045673829694543187053230136051177523719363206801076117788713598959634023590955675937951084405802251576543304442738766068091303471626567024067090659725309132415909729420295052919525048429984230735746140226870556557229687409993984563641700504050895351294160258063768373423368061242696459114278713331940981078469290083583708289796104364293856438787977338222232536394288909903428994760805193686005789878873660197499833769268613494509226000752295205808540805086028902335584302319480506406898790462192145849614056641418391261599231885027113394365201874544429912576278380291303097873711579281393677817148481743072787394672837324334235393796227984524341360256039653226037617095802743614304009148848907618180590831848560599646689738355681457191529404349797368523758911645088155022957156021162870290530603204533486097981013812296964350974759143635221474551360205984658321644125771908811874265838734762083132054141169270737327280804621516431488245853858900210409757305579407310922092026999575656142219350358212314740176246961988410310091206653750304336116885209010148127286418797710111541614159574226767920192636451576095678661647007591039436284657421199715470759300904663049498081024971840315047639793044800515576145946987500733706374623044220794472701744182570243720647586920643829987391098025231309375622513373622586648074244670626648962513433914226890804216852138056712800100504018341078405579686565223676218896516021386704483157645807561552271641609139548411077488715820271562978806732929281176497129057228285573103258555323260932924553660671783490756390384334384563098848133564539631588803436719682905887171622988561384624751583987112401757795867292893929496782481728764361598133255981872740489599917221437938293323429578672867806859650336641970281852006492484979849039313155550327521481112784243709681782746086701418321871468059180079760212521004600821003993471595451483211494925297504400926504151316601996101272165612230313302714042506834706193211482731982588204392391904840866815030419735454581908705886330586784740030126352508654115595259841303726514371843239797736741920565720934360331019747269176513560522907445067697409401644067756265265660618926984296695070835402313546847503902688632970674040664157018219180506317651937732814232208773319739338610000497547128930397816666996200232727409517463571564626046828748705886707848629205334102649979035046289933899635999701138738949911580521252014481745679060528075825464691311315642181953621627847065787554745950274572503061376141477883163664450655343389135720271070727322675029890066339447049870144198445173583409582515885198705810745377090814502060957546080054169818377879234406303006876841267797768360184769226669991110604947340761932821495652757706705041576641944353228888515886824584833598566692782208810392497103223800270432649126253317176158374777926895631422800552432715223437566797172008244533896653510846037253901330140056486381237375135466041438922408012406285106821231142426860732442155854468409590003311454087268125317929535546650650701920956214154452587368908731705679105484083655830760116818557225472232935058937688527447011728346495039472396902652910444871864586702688478765743921354227009262886079678297075974686174041418283380055190061039899297124434511742886215150731134381971512858116085207004483899091019579411611225844647961241770740979391633433877253845222873673025669352173951715167636571019860487998846428660998341706785565425575981699083869986203322108970597066020682912045199211342614025030320495704167891314433980740086709088221931243386742956451551174157388017016074805007858989144256722474933581173171064813776783147260692302421544820135335417898061161858361097192984304746131546856622258236426420834477057989638049446679054666130874182258425288846502441871256551469368239282188404053468841841303688681755403606192081934978292047089536723689374901468636616748612849948475313545296668185114873842562365490480985254297819500218416749011439932452584933086485589551441148777534151693521374541921702671994744582389363549682187453951558743792405155631483018877569884808787163382648468591444205790318868215118399411784358830142366352069951100064907921146917664422355310200185460295054200900207691170673918710371207872122195163063029428561165931852194169047636267905775312165802794983664615966784941556218730734019659184696782629377516418047828201904780779072939870865289562235327991416354076385029995169381159129672363198546680934719984683514972144915672189237940505391681549903657292929690403363237658291622809622221983757167562563052032899316693072454097730969555127910006964626021529664265567064339588344689271722359504048516705163045660085765941729368390533218625409232616939769175277945273249293506783429058326259208126980877578565410339906120812369886677355376958997176099090904187565330326645333832375098185185605076885999045531248871565909560448384889969243107932996801754531271469065558754139990867835707285707797415519193165517530936382558782856537300562100447191986109657714738700582402151983914908485718051300933061465419200016239917019733866440658997552117986633101028373130383808028517661604231330252845612322087364010500149119188579860112877562289051005854837293260104702482386054166214574014152271379253085879714516826661872251469958464868464532312396118113265305604675168858132713313519232926654740662038863208376907832821757308004307829941863086403134766622977723862668623843140761685627841089108915870421730591097639455565738038405172324874211560578800293831656028983052870200742780147289670266784140370771456071372483576390439835966662799889024550774355521035296730847841539818969510117874036456135697091556012065788276494090729653436320889710572176719196033066574141769131997851006958003612363318942484966308666712009932739376068917282337796924613576056870009484336197837183804615352316591807034072147796529321655367671056166480383327911455421954840550965659246276044089207000529822850951648488304623620767207962402365577023425165691063016354602867462426404655024065841146547593121976587322636419515420618912667862742842178291228078742520175959589589795599221701374601303099156883936853067560706303465570714548278559610911991466506636898212116675638815793808591971670091034534979053701267233611339629890430155824826211149075117803682629194209842428269982035614760408921421742940843910920761992753622697879856446981542137122872934318514176917956151902448377530582429874292322509306709288745455646076822436209864664517168409062164088876662094501788729238578248213531903775403287956594045607084675618645163727071468622755103930522633915573411898305690279703801911326433213616462927029484928768467570999007409211869444814739992310939098443549621992059698304711665037270172344667825821273020514785972006999788934890114528849989241434398815271008387535487933598594078156223739377297649075731106779890317764891917932032619840792935590249731759493337260917438886474976711789504189356046591386109676145710122248614714294687339746174754278675849232199536442430334443485125384887212877891347578182585135284084706426058732320920907952198221295708414125944510199262742704383210385751329837094133334131401469847356760652604766044604029719657336678392543277643190143868278690624428855195930792463813186328554720309244467233373175328158841374674601209338125786276709991841396901748748533729228041506434808473332222143843444777818950259610414309746755063248081986095622937177458516555669343963738124711986307696633172431581842800175341680580892289700570890768782796975990421181684515815237675174174226187614232357210042386820460035039446535392741584622610067036707227078243935981956889933948967552961689664705155536955024801186983490949122193635797735599137520883235259386502319814428883531601286247814896174532248413625979747890069882334540249477578588561848000213467350569044514858895243991891999080353877277702810748778442490767356386430282876811492856920590207006168334479008741253557813544990350843902228162385983743301227176552781318035077093225196231734922351760149923474069858261291232465679506575582920308956222825055159284505332391006534746497082961541293256326581268498135466688816161338758324603291314107494465568989350912222399029747437428107248204832086117329374215194498175731059293964321181785302460891265946220381419710626912550106907542965083285375839441606036804300480264946073987769583461328746743632235623098220384660330276578557164702043896823210939031539307635936677407385849945124425408346347754018856502482393867554212679200266398675247618126869188548246433524345008166223143472030270223195777598840271644079143663701901505090995130577678685757839808826782674129829707663548961497574893172358221198504796576293330160277427028264942018246372885816633643430090489755037100118783938146736611159869246084887031859203495249610363608985560105291378255444188746365607318354384953794706338881978722383253870212534772802400170125050485444178588457259382975137848142009600625072685358391120465014608053227967952969078492640433206508783223953944828876920550617764320247039099508727357335286715463521018319062747684973684184385049638882069815400071319665732821104755758884550938803897467956141896171136653032121066399369742442132727175088653892386830848815350786081388926284278690351480673926625502198338579867921006989430730682554282558971149065967737165023279305056088180780113695356961072999356407861039100304110590701219594225395982258363599862645231924343313450412060812577718584826932377573805166338687274210511734106981909586853572099008193256846508109180065065175249280786955159139626091008832695574656058582248067403460218228872368804355301528486687635481206305663053205269741007439613028029383365968133250916127738550516645926218648792554090206809854816859064683373770778899617843958982139651731923848582346574573716644687368964256371642990372542378208873265005698321692513000754923195013823750133261776001055692243580395515189295544146762416502484406864591915545959602875488899541905508084151327793770512453299712966655050984231898910355494104642081969516535142912432240069002561964581763908208036353854577727106667279651482164419169222649284316018374562687162688218833996592561037565593711075403183667189422836534082588530824271650906648814288710504073274319487470556921178857778613830144442904608871920783033707534327719206526386183744820087770677973730172642317284650247470036753057498745513446208900254613992439448070010363980024248755559936132021696072093735186640530219498757900632312743880904389881543843548430201462148933438445258917461933297435008776927340748129368443522960117090761831505553215682864529643350019633867997640164702133982654689319756588400406235338284756588305067298386727964698496004137867070104846252033929402577097878785477018426104677644875842922192895706677072109926945769767421253786188845970007182122042335272267865412647851253476796838368077295463357635042830084774196031108040852659109572977617408607919958692514319586375043807854960368573178045362726635400894091905972061382157994902550844593720197416875516445323869213159083615255461330650647506663306341085077113446553693430652202704041113954737271418221243971814866441150334971127447675430023303270280933883352080947426006037295689984844686682831575511982620032361281533805964697884750590845911828897812954319632336005592027139009322254696914238023605310517716052369964365688329691920975156854413943555895314015217032439987365916360991726219520038750746782251728477105566822715226469569620601649075223198491255855148717836186123899760936670016058576130599357362732714695686131375302085573739576577703997157385078849197296822622894544951323415884580540604058545403392540510263795856911745859752900474089100759443373514983433491909909625992091545195848923064600669215798164424571008078288401914812960563469983475812085999635410142466353770817953900799935215742978016883948999137352689138741275927237452292871011661732022502765646739922281387748293865189573204805360396204741129491937061498399404247730172007326344773904884055717603805711059256512585083963277505945248572843769588705859166380623997071161611290067346205579907911266594955875975924752881730585421125976013899696717816938555536067263602206683498752780757739345844469259243904051099446128949019918371459565261442618646938074796065037948840737693660012415675533485036087065148465828188015077686876272648988831932982837095189611755540496813909918981344002159792681778879489812293784964888907727028445356477708379590539773179253520873205425526442534151742579866594060866040195686222528687413662823326908298631757302031726449437773463654466081849011659144044646881692326870850037668645193670101297526696868063584475181452068324959021473199561375546799071432788534575848847775197439637850219679597755104229244557484260099133815823541885958837050055745488410322614911766348739530858478323794253465901967851664608202517457072185418211975178982761237249059422748608538973091083174360272665210613346217452852947393896949232737843622055561023702779137498110809080124537653908424699450473338258476833585258881981378681152954311857691252930887339799543665969218616061082418545055200846402909348108968637695328213506330142547869577764328653161877806104342796399459775903873166394418380171684588142283892092858759507577710590295497222499647381223895517019916099309383011451575307522815059737537313319626515638177123465792642097228153944053381865809068783571705736194268442468054975711930322787840180855468063666830956848105013720942397717401027239197095459091458126377774343320807493808017160794110866945534622510793636705621182062352427410257241588042079757498580522071961876152346495086817074809632007399236337914701553391400107765947361800388636357287160468397265384045528624716914329052864234526149451507833013482718088838206728683953564822404537935481300762927622995457879912051640457213826718512407723293439186779876490508000238693739046714258572790864200985356097151409707134193505271150761753462581572500609847403538334582081036436120511527914103705352715702679418345058661138787815668895792879754912688459066564620744603331066117580798261296734443809549715771988785948642930302052719091984766202857957836098663079664725164757799970998135747899603105469823267964216150168208646747783957569953328563788667686294401324851517832878671506613738606375500201396802795692758203441968945071942903324154139958127957811655707040469813343803857820256304292058229170127453659661086079230035021241504819596366402612192523681403937072193632760580928681177270370735859543683330864875542416288836239003734936219517720116659560400886331906628009572836667103866734211749529653583228849645224990708297292024358497498700767039659386160781067641300081007491006258801607180275756635471015306790020325999884709516775427229699230752060903781172663616970933875233208775983481457819318647795733391068631617524512685380787328490364088022853646918972737655594723248897946608415697614952875446028581856531457261639562078191444411097683443277578351159086548152644534060881433826335374946346951409490374065708816809631191314827797051137194222073428798235035346562721226545328379353298123656422536258578740344432707405858923329686956901003975331753711927784722815084133005611465576395540849142766668757915621179676595685923091919202520220903063938542618028477949184000777817456241151060217104409396747255055997389524150927413425741483315057995151984673041220820432804937638016892404168918589975123472426160386503131570743987554795321585016660088654914629005843420675382226575010211577578377616050173230031936093415961492445185736633922024136541149158972212753670916886629199493225952171616895921531181715114584794616180102014890053082482974938840712532319729837685574039547178350086844456388253070192385707957169815414035809629657796109214212344922737681189169111728393407453366624199308233197347116757026088093676113560999026860267065024192823097328648060490656768266374601686153480025114685169051981351541218262821694363217066237208751906048686292907034164288819924654839126011063959865501944069321587012768003423344510477459654390520958849290831899396648092830833552782159559102062021538135733167998272928837271429956460417717674983312650243308707005700213577464483939652792113773167976688457154786514511810306110336679931019476309520826686441866960280905452077315862574727319228120878387799610262557503827534654807172909870771922027648220344073165527221397546022724863190028539384958094229865503962829942927054459003887775802950679982015853802846612070486900773987817210297339445462797577110835936832173580398887616521906261690852350278752004553194872084732561398794126959473012393176276449185040128159645339987702213916510941486817567164668112346004935764899706660363876194956483010545519879487066843115479004092729458034745960727623257257762408440159682647547456741401049339807347686875923585580693427243943802182881688347179027227102901621918119996476385218411203148831002315103871601891739546043761048660343465547194837633873949051977390220384661995153903516231177274706530777186677969401774970680440899449765726954256234259973975529577979517554681755280458550976320797165678542537196742479355061188292580257810842812689805475559309171410473116598362975371422969667233332125078305254220746042740952449818438039795263122853865920308768213125927964391084417575145579977751161359450705427393274705627150192574915485621369644421549267120180869385084728477663888164400990948548745621934510533819401997417506536221125512177102900153532602869382811888999503996384204803643460406431064347702909544114519351021609542942849151774026341345192889925845477534203990417756788225813099990264796004639788624837045903208024196054933247675275178187596531242633536698323141779116998948806622522925775367425461423638439480889326245702803909420970468640524558540656225009636351677338335328173899081350040188817801307935399033869906968030919875547490553316505814796879148914626570755577840262786986443771453604266972338843728332915596231826960720701263550134665446705712913716627284656272766253606829244041502204447272222404579846664305433810837348961375281035741376498427969813211875512363570106439922247996981988273554661306092130655077389883564013218846296178990019578185467502692804172024215795889038889671587052135717246054938559662072679696243434512118807724326060221061034000097563552904338634543736346397797067216127493371803867792699287560799471136319712945474786771195787794373329140526537480936227386836222288058143803868497188431301415452743003281739473763402183304796315438848208955918251619722554089824178055059246381114246939906405135776940169806847602834015124185365368933289134674635622667431456824123058990889252876864428093111757767774205022625911845809615141269167707603532529618160094579380600519232447245094797528795409767016512872082685117660707097630962064363895771417218304360913092924815699289082567793337853609691126476693764443961055859533214371914047237255302129301884970083462206143707859682778441310933274125118602576948949844807331177137346581223003750335438997598073204926376837907574883549064517111907200587382558658664652360497378802926071336268916468775014234329416969862098972078198548180098816055332796168881161553571697130088199129485392289789892285794630837118120162222725474385076729207633018009975149593898178282241031879204444692541919453132382981453258863946039188557510267989246515474002974877315912821590409001689039805812821771364180198980889832265320347256797465701420527619200800298224367563119789662208837794954050025686556214311534073158494252509410854168609743530917187084700376241067312798052320771100490559671155735318469576355435693455051286505663377686011357262673591614922078640367800594814366083592611740632253251884572028325384150343656779006330822619296819376091702721865532280970297965394041157745968180159369494575091374895734682320626227418930598758142322252778566304417526977307814038920806972561194121021030633858311117304797894005322931744779795709421832834247473208663812987829374364666911231607160767065975068510633610880694509538480119427627125094885549066738335049560481849949798620827565299582775963547217984670981756577340558755177936085333722296234794491163404826658358632841115666633245743921418308936201805983177496670919650340321020615886922534823381519755937700083274585885754054028846995172900813684305794598958602612999614342903218213235325946617369184872625320438129881429927903700758557101640482015088730573284400282905612683532718041260675781173615479635656000162362077793226990243198497543355672463401003237275382195671479198659214135657240240130001438313102795475965018042943061836011273294066020302175674523581987327054391679851510230681523464809619168988520824558345253346306376867132710358050523192488890175680243826081855090454257405618839211184627054952909175464856567886825410687710888835050311476081460703039677449316145847369637581268932459006763777606155837008532816337883132867958437557518334646223580525113650332137408200003050674388523669982775324395924282762888593759111581061081449573373460953545842819342891039475680356472911819692987454469237212870544310700903274842752221285450606104171588226470629186408871182744316411186934129833695688713654811959433055641455615161773234351480036144630003180814658111024136315073486634562491107941524478516283714692392759094632499035732811657970353891578364970374350106865706748415297949265987589839755283227646291565175352644431670201834249658037516210610018794506166513122194843225416606557957983092106711173249985817967332960896091716851362458966333576936805956673692581141271709838742379470100333318592456961504016100832945184201603743158213158726294243423843366682844624649292254356355060166193757671634339915547815404373032176506159460623515503763571862863067513507342697917676106112586242263493102472251473963841993050590251955533684164705474430197038904035558018591251358403475732439248459570045544888768739079574505874014935035123246084217323960299868054274934338462415136914862218628049550680900603449857119874588325141589142291169334503859908688101830476855193428631896684565850244579565955960996020912646374943529150748363070092425644504542584334196285301196525620022689041446106925143900977212685746448650202159354583493910659956627321617069503901750057859068545363588230911750848101793901793027702877864117952875499096937557972947435148389166784730053600439186449724480358687016625157411689310116160500604450082417613192146521123040460409311164648894893788026318096722569330957823100795137146179518579803835676199251821499056847892147712904289909908788955571115475366182023412211474775857463875414757793141865838426316453863759784851561798612229977347953818099619472949813616677891807499157093955779375557500758732834548584178001362273701346268646915311394902304033588956780238459538857245601239746751223340046819283022790515064697952424898539378896437759403398766018937742948669752348091845713709797493123750861081830645298438174637871692980331420916587649151199477655866434519494817637684282862047065065467248070139864230441602616622340147356612851519908747475426752610399580009284287125665395702447913315412723046751473923509445172848566678846390619046450729055929480078671084332526083941008931914215776968720808976175680620014386719068735443698345987435291464160656866422758575932242621804983160454850161932975137928606683814353250829212400636240747980639826827442860636771249117958939144260740374672902633319996133925436153616268314190709986318518857023089512976539564186423832360166353848635783952942486087606331212641480564736769297927428256541415170756783102333687146702699299889084367122687237957348826265213536437354067993380253501170413618836767118846969207279810219473194645290181650359050991999177230162499642738444312830668494455643357733570539572132305128829550968764445259830348438507922761476972837960000876128125837866467352236670755045020151368900426250621926447686097771692133836736325839031258028549679014259640014548439889706602750023315737347835804039390073696960091534885274304821145211780603738236367726786998701140579162247083256769838630430440437258989909356828561546774969059882955958413618457464024672606365765331982948784512075331657861944053599896433681472001228130010200036325778230175211855069348057049982349716946032959217477486634796054514062766052964789296124073301898478111494454115519316548497635969563078220897576392551701648677548980120489621024360513285660864126351662709977333386249413560190077190874878657352989824734820753220384885764876007626025336009762043174400833404258557246415418189785835018390273055803287650920458752757190295397999660800244227322679139191973799250911907756393715970022268490221888693780318115412377705446994977499551013989199294678701933292920753522369897897836159082644084317190202056935916442902585897114010860782847349994321284368741259988381624142670790566702648806535456385533334034811132188008144679128859904945505290310855757012305091067368160860956117463046458591894976566127825488053717637805438902041229683249599773361532160644572650234410356383344892370383078657015236453382846679118912228431147392797831995607288929048428109882633695868215886541134876519119433889154903927755034792097140359478626993930015972772726805392114109330263815343620750028191759945574886708566335656239594978683400749841184815492594801868517074989559528906086363675246867229726734878253099945302263453690608066702294580121869432045355144404907239810496377054244687236295440937834465109405142245176247649630059008106920665973735851631730679114336886625021688278171553241591398294107480017606738088693279521269554005300212160007881028060717300686251851282696490807036395454151473576744040689279696506741488917567858171717261303555313473874500409663415113998376096591747940988555324176978414876785193653146867950131137964050666388360582508094610326019123198967615701991319233785297347882982983919089318301382798587784181409119356740722443749196204553806231425267956325790258447777616781286363784180864841445474878631195393035850603630802725024016000948795533366013741199918114343632151608525490805174454697897017615080203352211796173861092915725615231837761995935879388903857425404996216088156108364671839267535491249527507256072252284608762889929889324535080443796023121714544110883090208244179707880119733317045974994995559541750066976976608947209559726450318552036956781234844287786949380213065910396314693064045578186720067790979534857702374618994959693154493619421969191014292678435337295596025853652021865042517978240977990317740377333248170119590100946038310707684906533887141729205159420144073079661589994421987092301293484527524389766381334191711212172914600561714328840840003277834499909096377495327015471591323725122510465363318699335196642403840132258607424822150771403621236257495304089888055991545524775297582704489615206822633616354382600031624901155540257900575810893879837272798221148965695778405995484753127763158225316661196996256470888884448742586476780442919355924656908628798450502899710199797888272243263203900280045620023734324259656217551145113910635328850455925335971996526414405582440827607115444804198705421886101217372784544487900704712980681269949098861368108321681288948496215102490403813115162055134915049122918653161609578521889425460119014535862102104753784236744096315265365855839603187234333219253079122937368260253118403741400434959551188079501796642758943897311052604879904109244210765381617534583283375659672356732761480591786845197636504928731780707180428461250528765926463122781749466586964048065772657911379314293772962449564185820677795080070669692031046195060379378484402524166057485943488755129216003689859076142546490770418173279566505256647302112549897819624392667569021039988649574093883278245596012927862521633280297060104540075778529048526281532861519472275129683034973872496248690738707408804426623711381287595769435978755271224722431901544982489788183524294520806221767585114723859891701989523665844047652991268546771061432406545574639380107155545313066884996395845004572593033284897847515341623770818140394164809590319099820785300290850715399782540997812342014415531285248171376731972206302513254885188689713965497042086159831785594498533125967955881618716505682531920610906883089077498914650174996431043562764079004575105242545871835817179715253431009293878538354371421656069557213446775983112970055847604400973457595329015513429215560749296707263210621846516739730734484944441474117400782645540654206463895636693983478082847509598827544877189546451843379061193878659026160933708427059715008512067940237218662172682858753529365426975823091810651451800465563697215125505267243713199427027098838662970242195180101658065938206104173139720189871546110442454725794703856271087361298713747792424698823948480365655636644218928095689925011412533701388566015375558794066764281013903099581030355391032685767881963817470375004711713545338609964479556801427786939985163905723741581310702886577832637559373537137898977497911405753196368007306865194695600581268943269936616007463053530296263625315001606562041037743715023928939082187543877905443203161961866631412534637153871440229070872554639477118173562529531727095302993607004992041991863507302153882972270537184136558653133964853444355822421454139140444560219450684232676945796408482563195207197367010685036042094372128560374511572582755927277644506644934621701509718506198052899989834409834032956723428419773525205495675477874653233650617074699236835792881437279908947271771059296090192735097983241254762131880276146795519445721352696924179695822236253090989985169748611492772421046762484292696071297561925152448327815863373201987092086253651166684535829294218750980375601641284304682772679832463040833043896893907720554057934473662668920101370670953235639540472895562020273994498006433395132962631804275107229174742045020877530234597161384418689103137617718223744181972284517039150642286298580775038519821506831721377082722337206199476676259632559362290969970780409999695855374541525203998199587576029800950414071260981971728228735666694600671394616982317744687332410921677657801154821514274901196055660462606295903972578641155766111697631894886813494123588023371082047843278464836248574783674207050062342983224176172820558573520032990076662520818330423285746744853377627557786417188091464101954346549887490037537463020994399349446391769040110265024498096820090487196332510026935827966986664633280573207935881554449223347478898319491117696164959792615055052307714575979439927714085742464013946779644988263909520899628402034993555814704393746131486698568662695145434787423501096579536558645496404550470070467675611731859768753250408765202739772233897528722870514345955093093668657063873474166289687313655937713463118833525279804247160652298509881766741981485720471002761092442666797856903222965985995673553737509279962828187309897428347505788715887152659382522656095910881879541518645461926076743581265949727254266671619597660644681025909956141844595336888265547429164786868201136727201381163472585328832838345729664420555466838346590043609637429992073313515730521969589085925063351142721293965430184242407195187606458075668096854326759690814131035949644875182415579981087110100223432888199184714204339779360713360655244692915880556224561623064310129354378567991119174000130522519107947384974933757649178555484890242076876000226680548542653221850124885270881787854080957579445878585509411864057364123369865485620162709730398351743623779931476050234026664719477181907906845921233114454544621440692639577423753441779671304212066884458405372294742799189907859625713326499906317187443995681565708337031658321316065186467672798074713406855021238649700890651827968307777379490143602084879594842709097595022993137750193663140958063197230997817527694553369523597747348355010869202720138637447992203392292488902212717245937372726618863562930961552391017365904200731111933945315522350491029526575566320177512396087730030757983221327521292808275967992201122675196825455881883393889503046397046991194970228195057303088880639729752726446818834766641225737746151945443527179142605337401949528339219857666315894578551824206873143201858161080362385279226104169526383538872533661248347457033623587804250409682690892603119301712564554114061050190248977171296919061933262986062226382691560019907345227096060926549483895780245340496595425004643737763776378924533121229280933682081528738470264167350354629686448143614946545034257335041793032382870263457805752931578478580162130640326531016907227465195688294827713362662711390329464888319855262202410439216989637927148749502984480304045262819609028802683298417818696837521860730104095135424236902128245675577117896058805175603590288112023826665977749053513343312167089765464707693078155096771941985292079796819688152374350359388923956823607749630734468796815733093252125328886520552615064041786532712306414467378503179261961692614239831199211029871012901309206658173821082730834490115875415343486662262323925867199917610439148195528315553191710196752781876386198553412782372338786773784839928771857901742789740006453404847339493925256160510905665869038032974749238539617167899153652904272126418603841665310155777213801083829362294659042014101608022582771640064287310934286454578055392517521952690959966365384301761954361558826637110812481482869424467300889895909547578690684913894009539811977178927129753690808312459769222990148564842250153162882674474429001786005468999046993708862091826307426618096273319760235273392028683018905049419829348898399353560564381023384487728018764860600092544636443530506113395431774861933156503943529072746507992990974730673621619462292685953034005694450076036061026173719968381958408154986584354240652895352050876943115481825930990751416378515502045843185968682453539825816117362572726832710015882988138494009144943903176143887194785141183956894934020469876136899313834733026084290255021100946731515712599989004360936731143118742417923929162385170684633225659590914149758463173048419015258425447606468427929363453403017311127179995171331099346908813872267085051572809960689731491933147469245465016083859323515602186855077193341078655198839407561006736428328383591492045580900644196884700740005346594166467171735307511126222653120257095382464798367763803069397505443183381721169973019954734852070543732227585330852909625456748981044929148971617531974287970434338388605429275702859355954344988192046732371182325724308022291297445553410606818837671659106371838888285113458282207273016957912864562699792473752332888277755340880564009247632205219956463566697994195843311692105424679135005453324090498952117037433578580258390273250188279769562972129244048002369627748757851719802940187008186310210406991729877193165531654897194701553307118603039441851041084776231198631950843021452432176745025276620746283177444940451866555170828413501056549317377206154845102999602643978275003013883325117754717624512274204191467921524617115977319992550912722801779210529141800052385426356568959430586889658526819561966866495413676777602988059894497874325023575932086310253736785770766185319773681041182881006703992404916572250421815753671251508041534282413642527366281316661081648736997041886691331849963398183328676975084075656030758439445479812363528949837206058270158206246878323543334939369308044305030942542176360465485942913470709996284750490399515702977109651636676694600023873118729628313381809778833087091899127452036994923879861663436668044455471559962751013536298950716260635604901720486694876263206303207166140204704679731072470721451191248618335245039840336310147617879408837727197191972639108536980193328123228829445749724380934019461697264524130550940187489398579661006254204340734617070879697667643009439950762848065218767583764062827864695912346692890552764451112061078594460729218117119318104660506879634351941390072038680005423275675370888633517344770302917045071022401153200308805527797121002643671486963818375639251206329411279158786068038145863520478869795144301124577746606024387890130301970309704876401445019697461349748056342786867783509731346814244976009169460509341310547108878004564503456486266052113764417396363149754851497723210068049186294954042693742365707513986494812850407733683002999124611802589740150987873120858123976260025547537118034298240649171588337615776548007606845424354457479765986692150142792934056425714208163186422016294884003813004451088784278184778309964900036520659002948929829882204226471096277406245541139161246410514471774717012273481379181760912671329877157434087822069102460322394263272712351793529935056061114171187261872425303951219936238720273644540768462089030922422821461114583105044370351852346535408230872235681137537153268739907242670673924951680311125236546022223984060281627587617986348105783251364536604677246049499335234367640396071073815444245896084858116555609175144313735448761189351506354329326249411932711774666636822307645089131517275428164105567240920748934461395344187383902986280850390217893542295330770344300032997884361587291868394712591398824346483107206274090754246397902144735481413125532574625761789167937083372879346379353375121883222793899032999611978013785618108045421750386829841260806491839141438753224779286257419165773917449776310158507775157002589105500418625240336485881143802966175318935432314096532013977130224269499309032256231112976016691354800661389947288504985944445499492520456840070166113574231129026006692940576614132513194906692059000583312067441446974373548924214638665964984951534850127405821986092634020120429293882063386122101137384166415128271770820473816491847835576768915164297895288688603175095051567310261281931094629577671350431549714080066465386192156994710759121966894779931747096555033597587691818022461504062089151016536525359266779058949995261494942206677210964832514447121303956159339494330447130749674086871744159784366521367525979684529687787598191426270925703473966905697537117315900164662280132628874630464005086834632948334201909460417181453469701034660445827107003139709627313641230073927752293197544099801871610331086096159557763959785646339870096980655050512992465865714836178914149390269148819469237169354905616767066262214904000989669672620407348809144041192557335362455389223654197034498891032084795959792435164266029773150885533161163527889789699204613612765393832429513762721711425659102503868889980982557389339972663657094236096379495037854856120210230588665511003846552724381036504828647887327486320805163404528637524192882445069771163686998555995466068108318933303807373818958297634892968964869383525658161682362909046812588790594571841198782612175617614294338233386322361697624009557213272846374826924908394959411968392235044234811011652918032662691119034865680431694401070977091803814392915074201521034120550388673210975918761514036658707699699093474164509141612401075561842111216981970411382946307760446534333535951249686029549064750011243784106915895888230176606977918086808599165415151651989104644016663072899580684954500881654262646367652870959110717984434309867619552446986119762409352297482698789760570739152833731159422680187269572241681332370580877374083295769042654261151040835027974376969751244290284895158474420821986839238744218066162905889440027654090358510298668795183259500708748892693773162103179383206896562041066216483090879263423049888230642774174070120981790864230840402693766093735636209913904424372603628300717825138455638439994676270052565444002700646316626791997250506863126933579920377085014732154363228912432570781528280251443011052507513083984627478076785481948954866061714574785976918699128766272991663833042711405528627929682100529140108739099955499843067455891987056641750826194897781811047145803826638978474932727068580060617616401468619420806690967552282216905308446961260584154444586291540390108185824746717134591857731240720675451934422910497977536284039635976607641057929828962006098233494617231309959870369346636793343081214638700206902232030518767201965901586590825560920212282138527414331919578669899634286027169218300755080767292762926458929751780139335246683139951987291815384341978419632028265649969328661446948465320504031967346300053833871749861636784325672003241704103921151215306883941468764869361462584513000767590320439652182127011526480735548963528213050646684500396468415021536541000004145039829789546330541817124591010370750437925096767905882697172884455098199008119515057029338329049935920036892026270092721685430599363811396825062531761958666336662797538981713055149834743055873124125824694721350248659265856940921632881554028563721135274694703088009673782339151438949109056500733565733036474748733447450438943229785600803784603062535551048720639142699653839453066463508640036546388263015201226979426286827633070891907027256317637794079930076942269528413303917274754197852244654717406335463981404202510830349193647580329877771387453358305796126049586716980649628032940326727402623336360859232185001939715711826555810674131684717183403876292636951160551709347122500061826456452133624926763364851604510086813926965545614636486226794451877816316975429555124071713458213088785385660010504963850911905687655096330953511034014138299925604976313664159506172186441524313313802277036271351524613994926862086285696014334494213168958237447905236581040363481294321900502307915645573201690376214776016788516685694443376207645243775501776918898777699558427207621567263670781172926205439807343177419412181893819970786352803506042925086940018971010721753107002017953896081555736237426298214726481469382073388271887641885225488809559556253697473378216291422393698104040810473572498065746725451516012406286761682002500851118511180197911742446336031370469043332435444090826462199096990967544514993917744695366508687072638444043812567539723292186161050450533165344614300487230771785979715680976578737013337487376519893921699037478204539639484142907915630543595141698315911159769070529074748728115132835612303188045012936157180239644180441060683121890129468045089569324925574859118981699458288996053450130578562970327441554010464701885858436124625596111318152251660061122975998721793317895283123473126146086749296712993245614504186517692990906519930373686675902181101111156484889034128279421583321165630558348647184439801505472934041342849159474506304502513665526493281758291367758574177639060106170460346532887684045491099660994054972024142507159619482763351946444445142000002064423274611859566904621478714689863448547408245832792407586655771440802686489771114969120421875572882841396716611312580564538732085273797830334051162395782968775577244622234269613626504029124655369221681657617575856053674641560352334333050476424176972462902624497255066833623015507464467954676474387733429136864994645000298682612514111764894464298599032611868083273973689521370069908982514079489493412916466247666703769795636455301890952229979119732993086087729154488257990764738024558500133683821862494036686643427752779659124186673175402815897292415028424693899930071070146884984845394734890084705833407151435036239679518184716010168886540330104815489355618636110553352314649057956027428205557298080806746084357785236007228421068991914887096526606902886002121255977958676911364864437755848817052173694154659867167291610464008850004968347566556472547356703370382540753721432363162316718130097265730494929575144564995135432489933740278659004864783447061610228553032828267853680786813043008973609582413893633933783473597838334449860366407820073458360230912847699909945009177687102177182409209178530928013303418707312038353662241994159243283614483842048773051030184280106453480493607909705565035166082415679779282085865337106790501810704380288801924332276324310634767899716653196584817194960244058172075011336733063961763611935350314290878205973825270146082177590368878536878841184533921671977346928219130683410124055687682709361588504425616421978386231432731250575685494236013972849096710028133338383925864987931924072552155114536258647282630485427423452474206637562187288990135331151302449733840738951601495786600162813597682756182420617713224188224175628826795106968209157215692808652407232303386289730098774856099052514872938655569079754801427509674738071247540162119929450024294069071225039416242837876998974959539408304564306409691968165057992679465707013010498655435420955407725603441713399349657858937708662964938260130707451913702025836780015099501678776909496928864403023088856037921153856217464832340444357231594110819891000482127289859981947169569678798540830331900790651722596732401605857355275867567988825592066686365173537934339118557795379964830334085511679991276124621260274722485707258241765534307782676855292053628325566376029255515607977550524421390678403343686483747082287417127670018567810763586670311575371094200734618691393596456695380489308475882915299389972674839244360844078414540541715115271871982010332746607175356267479282880821499099195435253481942083757186659979953572012624527711929005490271394322252111420128622263867783387543912211100493207622263963333240939740756757603624556612488566053644940873719041265335414929034877651770933254483580115145435563239126595598561803160050386801820602993781182573405188449630315471418435371247971370614408269824342992881089887025735720877355068235890878298580857137201783695683617701051934750787739051053923336288262497792443600122145962959244555248436633686207847364431823262983164583797715610398757537127750956446765731116516335018081274070153694002795727071885228267888978041239878991610128535324867288178101659249970181264762233163020367300270347152400792541935594194744665024898794900661374144348000183158296036656706238733568242522771717020302874675475984250924261607450242103315635190314119796236989458989295106326640713238253024617957633145216448832461914374364715076213063193530748621475116867079756855208464914062210028146573116991936952375062021260717644960455120281059196766435859402822541879082629370352248677805488218515758005199931955018604274540251592380203042769484988783603951390482436600641860182459239675036639941846839715991700457657090387919488718848221662409922357676346130686558950553039544543189451485476658812032764473398606738883728327514496078478240993023072226378831539308427472321488565503295503363510940573743985609765206256820240344361177490534112563798039804009515819134811833777363450984638972599019741894592485334618827193098190935781960520263109735949059327358446728782470542427343266990205922925703658708231174543855851653000258832052073589802193336632244079909211487539467659509102131146225996451003899504801964241132749370796242862697897325424835663215030694300667685712455701028364076236839722858351455309136984418953414303010264820038281514552081736267458479330791925494701417814420869312134225898508665529293352840545760126895522610411419849956288700204236749528243500440547728882337808854639632624900589417828845719678631106806456388602569862343084474463657133484636560694722646148238396236503172293154969077206280084356802179191405895309115387398181247796771415810976276129291888853373974091161859286066017743367991433145509675288190244181915088244183732341688888037506286564968778076220957701640492574601507245488726579336799292709357204721967646344080166745384789643179265849818584302356819955605620175424888378669890480828274137471033815917794212582027513084292619551035919458493579275990403044885037943517290322988040743757136452231351235000933925721376448212305894830217586589315981779154857288011878400684390194661747804618477008237035554741220856751577244402244127887236182538989081829225659672851763855135111736900032174626835226048813646977327526994899502188063933498258688920195175792800655101675203502515506117784116301183389737438398222053386287358464459064577867731413984420797058219467021545103588413160157303056607105057347322229151564490508990741944021375237112382565652776702523748934178470126537142840263707912729354519057571636851584332662293907353833689951688128033292516583831641745011842909515297987249392481191931190377077994816424067271257030610760326012255671988995758628633480494928558450469684345333554031660922896590113028869163273828388418302362539311859716112093225900184540894902633849916026043111699545103533442244045054648745869494181884609074384582210406267578015552474431993900840088938512006255134454717993583795450024312776926099054338821949544999355088092609120715038983892767585195972831328634318589748714100482224830091897474868147356294642702135096175708480195816460493219436412430320499803110721001442304724670930071701741792271196433419357664246408368679109164529438022694315330175317676113856082340202601308738750021468119239212200074964959402080243562676289457025125926046705001980807172547649246179076484588498983494659289439045646713966376079117914558729193120668006112604207456727672060847439469519216568985223018409629943344996883513587878990194497238518287723020578513551472750591046140057380614699889915569008849078700438549045483590041507688641179487588699749779546457549205369841112457867982677760386482111758679655282483952642600570108085603657085952432077507569479983551545249861172936069132833477415031546839640675216411186930487341392030533194913677085474420533646417199256356679137336983721349930955983286745776350901838894813683353527753942436224663308249987750249954037842472789793923472380775432924514122465274716104202899688813841000326439056636919095702173253695270652620651628796102607897245356807724320010788638826996302854339827095301560595408418806053997239863007405073101268989337785950949430591948395668168835121898643064397536982548816991684712713136022844583307102765770079678328291718115753100492893013400567763412692058333049837306110778810902633569847767595558286259091007283197084451575557720827982637272448797438681749637756903943293115009064639913035005001118671002299586098711956801665432067034256602370420679040795320913660098858420257719966749294872647622523570781122369016967581127123153656629266715186047292845126935516187701329345350430127996503289892800767557886389091724011824181001403553846447468415935276576166486117148886919274854256407575343349894449276126480539484801953722233134740296096484756037471671881807375217105666210521612652872384952507813133240636181151723109942519371777406575130271712282574892074142791837497748812161160182103016427167542139242900909294530525417659869178181744222401570270818983509692084800237226925262072241315463804641307318960276259131547549365470906283383570140306163878227288288535040443482030016060056486588711438932058907460628586237763379714846799220859407964871952610838660165757937604209673831024168334983528037056858832766839845754120478166396869572805395653486223507272834289089651564533573656855955877926770395987179348612722418997322422620438655054056887081260830200177865035847162473876227859845377316171879903948199372009364943021111126512833045064096259506801126066762075244312893305499178056023753310190253950538597518000467128920755743294670217395756751978105860545619554848374571949257338486023167215594694930893754572149497415464590650844491453000216259989552040975587525878360329039055117668232728286604477954086566283891851049925160454921085608251169435901774908957744919379573088879040732872760326625480014041465130742773686671357890469261211866999347711840845536171177592728756079733223472699538571685593159400050430035115012386255244726157133385973051858492039563213337170849954676822011070231916626470686294836338626149287783921813949518017327554048574881209438654563580960177164138609104945224616767747095892402801845544746889656863831555002908305531675602033609606725139684071864340531007700889826898328575809536403061930737342753574111695485487656743146061816576587240262839892385159859272182934155950315158637603457285967351487637044876665620304288238105369127082474648256661686107963831688083266302329129124978554223598215805304467470494111564798277859313813487750365193969268885272482588552424926699609248313778543336327229301963018083384785615992974108115095162253424756630667505530332293021670722737719898032346810212212569950617995717011278328933135301663124928880530894776974796841331211304617466996925466999465638092910618728819145449043144963688405951639155038097866304664346829732055805706240695071101430242551446912469451106681240969296635644884703118056968233974213175993904537624974293012469048347563052291620313769242768804666364474781306721950937539441884993610143908795701752907280671559837383471144363344663200542060330362709708366315469199268083287134801757233385811519136571826105334464061523851615157836184920101257588435439561787288078259259960064286882409474333471447328826188280424276403437546503963539619974915601479338364693410231148630699605600640128226284635461022746428120773006743269125670297534717298780057567514134800008546193288593894848062429247954856258290766902104284130209331484012557904480623985702238786167254553636363569262830424572014536516955280602241275841002910967210072082136176197819206404115480708784768025584447202716231503504830125233142600819507855379803618818093351401561805972373049215540610133600325670600743317667217362869164038988698933948195800384781207980699812733976320245627003091947391729282448819773215439213540065430041762834258031405985968892738764452888977235396400194062752744013864238016797307770739277553176109311469494340084978222424240976163751726214043831427173491349976206714064804569601487600035770110414746373593570289711732301224389547231770063191223215871647148547297893488293196885148246002088379973513358405631072430589873888650739084594850260457954259904727206322449471157804205949037322392402676752677013247204142555101755403493101011470361098712409326489215763612310214100356373907098928821786214083190616235705993553122985871891668962025360487996946676772945527469353457704435629242906682191920325874887962415031142617287410143194457236942668811763441567794325465311954546268654583803626988104152901783254908449302863957028145090255872944028377215089841819641190560317344751552125354860934808651574738558062285590280608737383462191078151957015778679080600752057123389093934555417402050534298883362900456421976121729585334645330600686235782686896297506559835990182547158713456305557401022434629679656988291110836653825833662492722544658193591842799308854767719825589745517539259448103235888088273193587417205855217002665620842800447378138982731070597916975918774255117533604431348455170641536368537248256568702698901489673607253670945263711716028530323708188221273394933457830140945023930719564056640691532712139985794323556962035380120652580184194857724854961174571834577646872275375577994519237751047404874194204293387000174083793517868948713386452656613859850112461513103598936356202373727252635222186497145091968244636940412359425660722477550880845745388640964442327177082561678807138406946605423964614697263331300745160144279120687088245585949245695345560131475730520527552942616636173856928336020911574327873146126804105632707854664647462010598262146076158152571158021409055949252599406932442989997037620508508217319268021825494715991314902104476127750809288450112380581816681546333141450800174052293752370986938717994341812481718183436802521936911142438812824771301675471181257810681519937174290596506171766168761407799738059677725779844419686592455640490127440963775672684007324350840608277369786831318786899380725831723090265426327643880049790896003055817018444684059073787400001618680573466746946795810680044733412722935203629831751875269985034563302494157213981282796975985439264608198683292707373265216072203202369615010221066630679242901487545045924209909419857705493559506872183403369072436703400354337879884593405097094051241411760725039361568531739753143164528464658321717848417592146287798541247071959605961625059091804690687917060274903072101160266660136842674953180924738641429507789471267073207524430509989707011435809783437132698343210690464219930096381671698127789768854463101484800273149674077951605175350483882389033292370917759735313738921677604125840055048122194358692594553898999896247801684139692362456143092387096429618833274613841915725709200154134909519787626410193369222764409563077319252185002421238317619673221295344824777958094977200777713336048748498757409620069801566983116711340116253731868470555732756602018345310824523496586551388797664166250604218599370182757683806449828748216031084058964895149481101184265920485659172191672336975582963091870579877758508951572100825111676852835689987192058657919777034201822409102670712781322490475750376575301407365524841904358853570998956811169972243741439722298879589810482114675164346343873502880900367668007159250848909714960064703936870879246401579012355749910055360676811764742769216886068859461389422973806407619637146671662676376661167325134962312329954412645470098298767528619062557103395496867669174660568142950116694756141831266526726552696774024392645654050839094879634999238548371902255458433381646005132638435217711557256661338745887237290768557418251653301199704543439488665276584504413865082220405364281649826664808073713742530089802261642705430877597371001936521497565439461604790648934439266996932822059930289057081474394489205854123923860360053828977650219931244014739203288252010801330723632980215038684023563602989117937592410924671139224771120056334159785647169327704514768202972566546249556327056769613826182262033945727885584661274694851608140613987628168249452242807210421454368787246384686930369476732857602827358822123596926403611796407880059808270214793171282502607366683549304792834234398776918577716626432361601520322844766352707414517557535152229648978242556154672511998878951500346602809241329983854754568440729747384940560270374261448377999253862926638170945413141210705038677130613624663848494179583430521448659043346191835403408995118911387001276755358553518867515505893358902088469054324357564383484820854806425999291053064944712758982873177079136785011072208247986102296805272961658564910813778195760084902437422509145395976259268658290292170003222091212662697439623712938240080467450814769049866837162767511349645865111638695486215843173536552910175185752817410472590357371282545311391878982603087730286936320773384518750906537384198441075913107779246247515638069268311739636475839868462566430839085235308421082952681372894357066263088736168874718452421250168079317806160343429048843113307966021602975647403804824691224711279893241437706845122938473264065801787087742805273846692606616367855609077986114923196129051210904052976541777840944343743043989426238527173307539455084006517053423417110324959963839749256156068220404405755494903030045209177316571858462044221171358190288841346418069284705491978678568173857870424836672812403673287241792980773954835904828954369113309237045475295139302068148332801773443831638977101997353819065470843068936151805697061566849705415996262959114814213534676299110020424972921150979429471720884366513783833065685383989018752019079146039551368697272169438661019083126138181910435734258623389614451633479790098334700236337875146475080943481429355587725726844550171327451942134771325666801996724368543660449994269280357226149883482309109216815307649065854304775861902146015135453889547729197882813642560464340791110214425713673115246542812704803071662290203618640240709460152858280823875201395171531225726480262777994425866545965044244138643540814042395572393173366551212999553404040503548621528802549819383428283066073476043730741239299749427861531425224382534955569343065623815478475939806506586085584366683714112601355978380007471640698943814097514547778457977730306606041040982417179233328969187385137086640002551453227732686804950841613288210103451143185086912750403840844827702815070834977418263890354268783382362065420322812426688857572097449641577769243783324509985804878821599732075619918548346895125864279631264354922778278829091968054256079444232077609473151356596646966914775149972898815715556356792363898342956888698971377594150737142609096026881653313532523710690357548358599761094939764213818875295622938398005120299504242770804746151163372912403622799597295623021334396485029977342769627413167091311253243216946323588279366174453445810017806272487049959706099855338632888487567146999915441236403403565337080485563317269550860270265522449497733065717218292233400687056987977563104979490684247467240802131016110289809804151221164279366872183720009889710550604146859844088399982351233806809316218027871886571342520454088795769437173480524035894481306840329384554696179925848946769505820347093049132187801915077621913700595179717152012639110379596971525414709308005324134565295854946569315655769633964083572286550016261709108540739954214961196116858346108563854669453390497309471446114923756237768930050532388768689734758451173754279266703414403896297848034518637328803130091447964599036102988532051083026612386550347978778776557439823775061666443147585659833468514138752332967625309024562415488961749543408361632526391472797987501710169204905426295452235547275518958570420052369759571873525528701918011875201468624079737519604408403859903677896785789641536044301256850848820554753064461189735256802144491786765789922111286933750471867947891030703191512130924224178944798918399825079706475957012504753890692116412165723393024991962988486969297813708486715879617891998360428037369792289813296872555885365781707364145643664175810460314229721488486417717777568731966742431146409175230548505798354516585609728712940235976379399679821793009746181416920566565157039009017029608368402908402644331275912227923712838348437434262975955330185063384134507499383230843236334914409551824336146560950681465537113357889228600556221670782369162066934825928170861756892128053574096640336357059320462207639886623507150881028719272642719693207341822167377017457224279852862274877617734785731495280486942005052135626740562962120031550043015320123778217508006909549710631137650084604026880862322512747055220927312806527812247205658753873499533143129394259756538077922192669016124401794657183456985498414886044725605013129905732263542011198118551882354675239195895629612515026945463594109033154574964685011678443575816549771419510056190993795478573892256643954480955249720043547923135490177532985733289330150575483534858828898093332094077540395782109717018413756592811590423361977647658998236544961257166452230172602866188030954367743025207604170953307422939312097931043375647710214024156851171406638324001478464735228361351526042124962625992938221967833394212319443897451902044106237350517083842118374275050012120694748628387846171699491210451725494304645102352399711433816432590302520305891991279166538783829230890154348488283595039921184873847917558503004938035300473049062515524773007116343419497866837079702959316950681344738451902285468019250369187807153081026553104611509199897249540730574584265972704983882358759843079807014209580173579045180908059996186709883596040630140072135212425675881185274927063939188234087311618734948201652268678568118148080968377207886786108988358865444049638856819135950181607221147386671833024337446950515551952738306627251056875275100018227971600209014571065827476883687542427610378851251343770529862283440156306514161524739819332918578486898188297374620290375380150826701742893105858741300745151516300464464432355125135262501353011038917280872947994367768979656844285074823772960921383314540870259817464114796554852755984332035591764403841499332993203336980401462743563131396477762058835770308124631351425863647271954124532245429323447709751563228491101004657123894002691313921696800897040778971329495652175212579730867964058768565160173698315088261272954520578843136070263897139413181028671646034283994726347324915869183891133585013879496572858581396655937707771295657958920012869337680805130220705099911249096553471055515507821439528828764347914790369254277818645106629267871048718896794722491572448600398436191889545712265386677079086123542614220252149190641469664487963144822954368078809507726746999906982784214644518673418934725999406843962177443114386183731832715672525905417333488967962146288935267875409615527301113648927157873801361196412253048277494931312167362115744672621879006932922663593667496067943146861797275821855979113094422920950563364668388288016979457866139342356427123498376306759426660834036384008685136736064941261875883038586217707752784954096891843456074491902907286752857659942654403893022734174121250668654444475129916165373039870863063658663648431781781226200426174396814916285643196976067435425873174052212747108224550169172643031472168813739621295594919383970697626384667825739034029004332408851985765615525053593138356776311588447418829946995894800299567855351879134324533526422076179888176397584441945512394048679835429167327542496268005604055021937233601471012167026093093906101231838888773709128727958639278731260023459514398903881123819958480075225878095367361308753071694956030966462661599835768509106040059063528227350842463098011524968214760723301369324152590154194048114106337949504989998255059270835548257011725550781897666985426421230460222399794006508988319077620176812693727334341651383581858849117214984389095577418635182967719570004253273080740082269115711221872124385179392565451033718486088460059677401077965767235491844665145120838048300749333787091241142261465057245719754623947835360685565524441896400490380752298343937927557299453749842815919750967880579103778735879322146127230449752297384825655587227110677507264660168736474197312220816432737921565746516660018278344452260291597734973060518040065002889047812918417682592120488495526276201217278493219622442252961446018168631155896352698266242047719411302484524154352680943220028364613583772049136345158250652567417720457378441526362208743584515907760117654687189841320735391937486247362031493382116643249322750160187488818512352488624221125736707074247490631238367043385559017711337329943067656068263192043986986871735134602824967577877603684293359180150383109451276641503511263289300561724215410574026730810696247759954007661549667227899003062047447541919529203201888613919574299377392211321683948575892437890334154833049061316386855288813760126156204861666479392336346923706638390563568826989947269460797123791563892545941984207467239363967760791888901660617937015122928440648083685385457584168414129146143667565371065868331583820972509028863269126445521152126568018198700029382881815349323262158880345537321124425002510628006498080813975881661289051479130256809880372163928767913592067143062191712639187019661438536187196905563045975392008316318389552413434201545405617749253570798063301905514801685039997343218535518243581441077338905862379943697136578210426398282192748020357991790310852550398878333803742232111607454785645785431968866439325103395934962610891613112810371384051514876761488262479793409071664126928842814622115070515584214277371699404780859979433472621958178146956004530853403446931611423840306272207777245455368865783557277129080240213530957122947961785236607968240500773508873950849910383248042507996513149394081145361796137127096904829016060163062362247834447231267862994858397274832049123573547243571124117264786913223882549254814595951318069477052715856179984362865807426902811474022639552566743973116354057639166101792302764398112045690226250481178559263044826959797373557591904196163974352954699154647802875541086125524052511010071877793514844937414398386287818668944611931076668287303983089458408067697372587961882048541486120805744601039007291770800928962457883577525656927986539800712122527367105808887008530052765635909160840675429432741490919391594643865739721790563380723687837741082558458111457770459496768999835775804659320159227751379739576378490424050212841688439583055505658150834657983172920685447400949725839231768266544611596873992293999910371082948858256429564827740629129605958331972721431821239793602678703417112590363476323614573260412813622260809977174937846984256455575262877685019115249933234589349216196421839381677347693873611425751891320333706552257461945481632418878927356208190586369553109090336955636915789901234478795957308958269422283915089347856735142494998876779859959082117442810824981378591793641911870957813099552296853493015418491748235222774172406706122646930419303179126935895003346028583837862792035089693357957254629702855240523379797465087122892666511880985958201007962283287709068132841745342239375238760882928466467217902186853175973216258127324602894240394893595671707938844573761592361930022467540174321937570775271523992270593963906900689567563883488197704419710794890814362010364668683459202469434577524262617031701494407014446275317779260669484702256572862109434524896889112024987303265108557119837029587797274728893024349287374084655620933018541523127981207865138311856651850726918550993032977368691470615942460661335564984721638057074065228388113837461460802052790042882279591813697560487187395811939381324726173050634391450683232498811569926035073290262096095680701888587441471446760242069067158926466545117199968392190735202713151170099668732821143299503282549849714823492944661951708765691391946439913426680331637489624140184687815706384150903531871343626419888241920059075108589311443952409193148044144695505187518738695259778937476316232493183483698069781242905208078676056909611862041236100005249867468656681730937871464271183483247086211981749307106316997009488418776921913134856889528295752500225599123373304207254474782441981834856566630199369688316134434773062317904331826754970954270851036558165095040589755723417980238977529150057974830218379343772659988590997090220829107870263459914268885600948871895881470085510151883617008474065728777285038205201359751540922835512703027919145579206743078020105896477046512416008640834089990613364760464329766183508572628109089277133324153073980657397377957369259586774924728031662892508484643294437235164100754539782407914650660673125325532310722440913990378244573658093019549027834476290858384184739510233119247633051132081786054256867780759308221173236209563161374706292642943429569126552088305085894695294851796821204658310022881108002028907454913697779423772225608838455475306068497358009565666555989994407378475390911138017676976735362551829680783558364166658310788818355177911800126112822041742057787452669560199611372086147720547078225879540151828809768494649402975556189883695561366190139510853136658727973118880426579464950129116917564418148386167891869201897103364492886000504140494301673377110859045787248947811573266111251750542807684135884244259174371284458320766805051063429321312598378818845301757318712913435596765368091731174858398265648872052695206296959764186847930355622827761597205718287103694907349694554660868533612232244027421627846764654677194320013574597905791917208138025214204160798190935907433335991157603647773499333331957706486221980269364187758691944767698457555359820036068781858375454487706680143506767559263689542444380374034070453978691106019181703985559866889287547635606704422901244710135097877557877522970317545224479446836624586193091158648175727546871465361784729763773311462021578363939896503747815676133723962249484009551662782055717960429184572536446255651972135057199782648583582688243061300518467816822478291146020793285763607620649114776301457047388238244829161791262309465442017789766079964202021874204349154071176227258544552195461186855368805104844227704074616267906226469549270496902115770262130040243663494153403870121773411952533878324369360243565543670407299534757604907769514720490091584059320168879497022312538546207326115073262654700108128500676455786503287619677099952523702702668631590556045179515667164302926318026325825762536949152752918501783623396962970440617099092474231637885266900794174631861561703734659267015914648582909007191379966139877910645170159782678925589634402655801258113068301310128714390111062125903876942983482907248198458903002021400409029298907032113223929273917318416924782256024119297784988037357950924882079867009971106543938055030477037863681275660524720596918983697766324614222025164464887393031117327426552493446154319248813027196331726920712300356407145742535635621017739990278117656027237292528941000069503082766562923984612014071360026681441135871939693641610257923881019887624687915836699524913690902991210961413031933866280440583061618771048665644327790805965199564433294818569483760415556922974608134344396925237742270435060582483925954035713305302148076197538987975725899676777541025582949602167852420698228806360628729056828543541805222833470317525194666739419192224241279308693645066611872351829502300807750107784162923804398112476827827816826794279433881407151361330570790783807419628982809594065641685355539195459791158025586836471475552140115285750437666887388631094870549578662539433208421894145957172658057848777670634469305035019480487080205301152028996575088594202216391987010752186526203906159804157880690055271429670854298643866928022864635409166576558723906122193253151147072719633883189542634973459737367331724363437617354822606803180775727618906221447824914066705200893490729239235739147728898358865888756176845899224392578493035437158394868317616125398041626876701159682117360878235122806194752309618843773749110954224922136631231270953632383526238028915239949105581057293491502363866442435601110722183034448961505807060554422157114150385625750586671862093149862935901108918581523167191515238847776146966735080445920782502486515648850227933120268803747776356043041548975684771831630498742359545766692903990159145793646246083598731812255900061878125253977672952610139264969473678610656665548361839164155084029946337818253418188330721230787230224196620018948326758706610753487762900544388415811469858659415436702089144655703463818599462391754578340930896955552106770210786485494240213173682856933947787678681883889363365138439229647347267026250855394612081776747808158706552424381963868683441832780594629485333574235517005481649903706150284354834527077527966027930409215040374159451008219132002481746535227286972690551630077933085683934736190834411906832711217537904354402733140222737207775466716546401118791319776590000966219171123945185888493304512666530524996058792464666174791063274896092430648615867039251474512348863820056921209399621541709837634045078779125260950856397057882749231152034925432079653718268197839604464118967996428923667483516753173079717025070221430857491792863431846766197697503453580282834288216707063119691938420594803228017919333051130119196856411332540567866432569446855570973226309602827452223460161255130723799242589414576796202771895018983338782155275665016426238435943772989878606882292776229256959387915897944347017719091474048494928256943417405032360319619756720194283950828367466051689887735030311430020269607741323011172141151931244197458094436121398193416726672252887905879010138646958949950637603508175879122998641037013946154374267286805247746235931748251131262919297658391468651010179155903346854191292265890280104577012606839909486902374153304549263627212861593055343342256260714809462091394083864708534955402160879069511979079520251030228621427407159811729497981196825912616486889347548594961947669718336566788368428940710821383267153331619298174983010285390010842818043934225340513601908526848695835719868971383162170837273896798695807665056093355143866793875994399436057916336075554044138291080122363442265630030981058867939837040587441231920322082374605535937636216614430506188601679997472074068492319392957304838360244485134079246997880760263837054136038803411080785286252091019756217730935499452538601570548563037876270595730552496019274378930318862578936052001670481533399539434495062630738620740336303187932485529021088192822376610524975919557457053684331564231826431846393818926435036708661481992958031931591779295352192887990544522681000760763226512694602786229904273240171499848322936185170346125520005316626259757854713472310979870952785927579143552319893327705506964467327230899715404310720121411847633705278847108612930002968483694823840649846005103671564043606069323831203582567848476629117588261729776311114608540472124291903535820369356052688411178784581350941904343580761317229441000396151473909867651420351648095042817620140247024036425662729717842664151700237053183308034446604699042171748722322493619975917226935107214400605897389386582620071932979465805068536157528056970951346925216718112740297082068221763599304006667583526037259516434680787508026391288255443894547241021896017694894924840083018614584765219499823015427967645227391851987129331316207372787927705472437531305503557564001831965015120157348204536544272432432306061046654969172453097187433373498136672231690261925991984821521094117728044108835977806718836608242316719819381246226961328486971696057850459737964326175161755506022236820388211537256441077003748338985330177549792719910190945165434015364587440825466618296651846984438311511009511224296079805305057342816673471085858500370116307653404918201680901545943182171814366800209233306376545480977136189230290500654022079883825812141242968449315423989871202046473482624901664440183429383454128950846016990855220125678768415987494981977016107718689897752325160930121454720688366858282690395160685149310511181815952948153525441264794558470880419935788399704471060324069085706023680546334946508862996982288451559029265292457061018219577054107272047699444721734457206097521170570402678446025567086908003486557885934843071786574736662606285058646496657320164895054540906511348629200212580627884424514443539544256941442592672969638627179619031449949378897457489432956991822920379603011229851134665979186524369005630537843964584724218321774359543784910781225795222192440284570956095896327958367326008487569588941952318516221874736838638772622833074582099463939361069525705967222983860458377225570247441740678892443847480236278963995683694939439444673269335345344133100958197138878643621302115268785224804080665982358383495146742799381619126951913498690646090651925349902625516127270296579560640117794360940331177682587258928706468009502628175562585131744437516140630841024639200750920426778209973002869178768658086785115969596458358713131302124100567952149193042660129294419106128369368169253688632886012010708391111832492743255496472117664136290312144987943930668809927367197271742513139584001775352066870319418901114355698639484995164656372610361069619566791538285315276957282061171916209056757398830210912813991228515347602596408154070202974543145670164836198965143473661924666519246887175396639277077105484010703054964290902411957305929363188219411973376108702111989651744194943642261789143906395265364642511310326953633749146273682477700224758482129991428169979152289126630602609132200379575187012614579783152568948247096198703701923613868962304804637612061662147046973429864665350137119703022133555143681385187983671936153994046755834751537719240742067538208555091862433647035087312623089016499738476644329096524115017874851696316099544639680347199659349662586656091296127395873402573576409130200074108918832813946271969529240940387845557750891118435034862608111877038341908497490239680578245589162304655137320244682316649072771502997911978838271182480699420399611946307151620393138047819272541082504681379353316232650550684717331814894563908429667679907392902111485464560354247990567028263002799656516576007484552861215985580079615886822705143788142410865998830706493867359331415263689512026441799164598200373404862533863471357373705798368486622304172790488379884544314047475093237278338080784554677910709434707286387950053691194211989409273511559963674246728902745777856519350998885547928456886155889580092164853838638768194711740102706132441380355167433610812491455304814691598847095138661829829560703301231019367066024650385473614177603056246680215067579089554880484723297651269733712520599961598319820787391324701547763405333503633627014281193356875130890037483231516565682265362045805730008668242949370296743632998821132934684190877940239170811421189540226999036777268961140909668403406398417429289828165944635921855897163098776325197246242051690834125090303739141737402999583242826502908621868821210962019972907723035698057322246222027214651563244708643918755493618173314877011624750835863261588617668651909196453838377107006331593459098926182477473636772162354435325435630445334981001891595830678227128214969415332680776799850290321921990407586941623447125687603330289115898502296535648283728890627441527153902458452136603133343515617929400061608331676485085669732090138430151879498699850877652495703765708846410584638630085392240179345225236051363098720554710615526193496547081568367147154338424967528951391003270671132022988389321375258433734244195700406806279995590559814923172918947928897062036950298953943165729083165849948647220857794249025515634007148858868868470607175882850761145104246753648324895982028869352036263397307630742935316286451733714845320233864734052229825680504068641556067235628648898961093413865384448291429480173620793034285310928396903092367878789261772966058655499765363609858073772523550965817461348678297328357120543228136108049420528158189140639751863019568690522724009640600610717074360131207714005053318612156825042633980850034021101259844730125233117765335546882394681254691624145465754934315988894164755145794922009918965565145839709119699709259015609914678057948512280502625748207672426637788500391600470365328266152266991884323969491068459738795252234105155568372179423406603468846222381170971367935061776306613629589800167821068211480420778287833436275711005977856515617279784945900212395181926133002097966285203057630208424085341103990215912305156926880407127595289996203384239635763582660602739503792407391019467418003847554513531731379246178374189189838507255103036866141919796154654137576107935070562265466376070321107261877276193712820185942323372120466916434926918003731076001932990869692095299295730352009025160798622093121972296567520157931125628815038096298245217929519648984093728185900285628802496936500576345814800707768905162820615545664085437355334775725886966221754644429467402589358050759679114417285844537050484749601079541405295045445737876053422039341610455727276987987228740665329782836889096650223365243878410937370551374597395190648996309773664563126474035231411957060273197115739309722242769664623507252839825397677942036144149632839913565499552623876931010211880193766709766658858009422406409491548009707243324616554421118218181637738885345327262037333942573436907872386414703673416288025977165952359585432490856705127746150303828683741041295853651384305532740647634546342245836838820142754374052149474258318410656517009154986010828892214949394041558707138056080471771710177480826137528716241991583629188310118578969677941748633529946652259457960723549851587336122046442492365076089918000632288181927977300282353768839226647648634287429152306035462191112188828969022075305826318547425306120528644895068875755354261915155275629030687202998707535015479763109702236578890032700511613893640420731632462860734848848952939692498943775849600514424950948258622781306939445593701125682566772601711588806932413129487691203326221349052164238837561010563043381181395737038673896177820740566085058722607285600812179719996178061846621610948851266797317176379662120889045179914519048835700917696748874407720477595422546277471385545606648432658505223221376547676720809226446310574535055024212144534870367987019141100750306834722612014676398135252264567222133556875752439409660926990377050897511348851993886322693181566332673380672336877665146749345405591067631871273897893725361102855544527886228235725468963595922178019462419599907508707317051786591281533251927922632733555216294780331342655234446327914872914993771542427699317050545636199765286437819648262828474588180331088230078449506791566937695023049460283085046693284155097353361410062044756041878611485516966752798985573055848774068213900867340638947448645301841033169620826660681599004877716069136144321047362605354398662280515266475830620100751976355531317993867386130698916246859265537578490527641713536965591650417716462708529656712893795157277977606539423492088828723995250274843069389214982924513272238588065939147360922715564309487065005677329874812131889414000492720629952124448029566563037827962180385623537864359001772924868009200119207490372159667155731700902502138544572898163792913553499153148775215812000652837340946948858853309344595933535177072030384063129579386232302904930753027034603332431145366019126092371583016161786142205725874501025634679081344048994931291935529311806392514021744257504694051541359005907391392373346667402620899737734705422617184910635689309105254140069691749514895635488233079177933207061964049887299917776251422015705161224893009968227935142698312349252083732084299324077477914460599420188492272762167341022839794456940526837091505655297807910349422490054644115204038652533972548439769175315229266323662969177630635844890419431728455964415112705359523156346676992549385812084561474144258330683214502084509425160612452866791622095906609672878495360026043492327292510463490653986796422233157954438436751432270535870887247900338769543303429489348088133039745487259798981978511297577227969602132931595055431119296502439115952518020927514565954385430685887156618430057253067885807561772397756799306511808747472628828651268523984915677659195287082383643977817176249607043605953084920710311450898664070261679408227506637083711063299183220231585711806481557438166748848737263829180755649865974519531109518166170768315735686573928629863942505116296262254214851699936217290307742118422026955171818697411202984066613941128972790353957981902760910330405032654448884327971880412124656329571357953220507893819732495694975674897646914747716144853801632890583780292553666684735257459916573664091964844270634586104472630792856310291789030838017266533171405332632218062742191594607593466617687381942086229294009166446164258228336739628540821036668236755721157128218399089447064980146634530365651493037172455557067031098830696344145942694255889797011199399627426330162712500079888375731116797639954225105286346659877153646980782888940646520880373372861730646778286769989987372027964640923088360853099526861541060111440736713798277740572651145528231270222736734943364610991078579401185583495948145846692681973477620111393105739183569749457202386212229798950641808966874127763613005200317603651514987134926177017743071859655780097410691022531540030259372779811405819208585008409306691691124872376426638421654053674133407315833123798110931150307232232214557282708125021365604073813555195449275217424642289938454119640762619876729264643938231815053590134655387549098259310312825987208403203149991274343524694020378905217070152556308455173277771548106625957413544879854696803818171398444368847669923304942568082739342466824268561520807817707821433574562949787431572687423901410309686745649316110808172416888125673310999089330291484695177965470072305526587752425070103395382812115482102499281736097739178486626813661059722736896460596785308325427102293923261749500927535290559671233671298278063754626191989235025982498479842408540282074534975168125923759056646690434932961567567974550589720874242748771291615061354657928700924447072995280063696385298755076988996354826372598705849353496825908957720314501589111620398418174333471210518012231709753372366530313014549110637514225034281588337111752579317503366834700995721348356895408707978681607270539276611728802789046671787375720659625685377580865273151661179613559727751297536124325256575915559380941596220885221164634040513658098280738976862769956236473465310132194863276113605189637387344861357740183473588768032431634178438055830177251231205363375172517640003034650831545515863099958182335978296827260853045414920750941792864523588109581134894592556158547703816189405617513524932748552799484569590712136870490438209532167298068309992135130009139260066106898278123103952312657118462327831439178698128791559489088686050924781748138281915954017104426144699271633780089082245374445903730982905863695351090932561979300943157457945402796579078087217956557743924238718819633430237476260492225047937227042306478024750570174204244955049998476804459409863102551301992001270004340805793529542220098177660975676676849886536264391329243373423950976120426702968051744393200609193887279686982669017651719761695621897732694843320611026388897941492063016399897577837238386118968981701430104555478387495194099751419968696863582877436838043566774452379144240047335323531418514005168913663135937804375985247540161034548194442053574475803853750232466758949519763569208137801060339800273951867844417757179144898983046246836417233304174519609940684780002550341724299513935310263467465161801250171503806515288464995976868285861606162536985905641288554042169291508089376423690376154474532428501761028406668852744998737338424712911711782863289613727388627633450700173167709993326768736221564968379551750752924675198311196499767827525296592118291730207964198828329149217097657639649533413488495550991543699925230752441156806257026720431524346638455380186057358852233966535145869368781874865330266224926404177524952087390946048401356784943340436047541092370828389518680195248122636688496425745607506141404867026069077935007687415747675798721980472414430322359259767196522416334638836490969153639650367562563045426583072509203463960476880717028506551613340757668846367503421879942412983325202196713894709922515133132494666778378870155260346477962072919863183051101748074471388979889211623982618762353977476115935043199199569195049854428643154546064401447810437028433217771630940186312868939722418801308908669217740810291144296060941686254089552596755738217554042902785842360178135399331596374022172414121525350656307069709495318255180131330121288494111875301456209971712674415747690392422826965323401015642074019695105769691045727684398769069642967889267316172001155717704846985158041370561581959315294894138934653691890296744607616228637836175300628937016839834446493319168387836205405185986435872109737211353411254054105374246919622271307697333635481836042940104276427488232756458976073993464237615479655640859678671261298696937461980817727964844630164268158907725743932465570227506545628955551239293676647149885435897403462319822219441349917201584682541982484972665348826997674881061205093915877995020394984574748173488325727860426719636087157700441551731868780114359556267171671197015406255375103020709320982533162679416858801490163526940175141505501078606672495270632078578401381949354462405863004181290598707136285166711369163882677146008998732315087115357180296231361194598853059010675826979320991226645299911336985834147448956309448038228907749762082369632049248421390254685254869425400783915735209164987756734657176984403419025472721838312339355155346885558202650881600437821411467522814777568054865006712948377252251283971073153305314747463860793437693138689859877104483391757931749475236724206955183850787109265158673264466656866231417949449749728881683392543196907433620135161411740027542984849665029357806009874679570985694974374592456576258108403477349933660322771343622921561812477307255434267575384963500884596934410721054168242390790714708021504832145771433476329249580311520198004096722843665305419411866043428483859201747183874159599997131374412019162934325181864894815656362111874349477486230026215539386171805655226256861461730917657123089947769206440368219468364390568069441915857604214158546993775497496151004311894098486044914430527244052295981697903478771300756921260128393104726446915995799985986028311835908110577688642388938415692119271693159425806750384048746818226829163240000060676271173741628993932632853180917202014242189930812480209220132443130133800790411368911863144343884569862513025773578827222756186978057603754047744662450005448660784683997683922459801724588634272959687904911937912192054400533645654309514911134117600905966768837983494594397243315699646431824998907645417314213271328056981317429447934181569176948595811841120637278814634038599881073143587914308321277796423556039623630041890397297995600513729459369251936783226759956658223424421228000343907393812981358835978070063177583333417610447935721038099380852821453641278756838647459339584751545233688389740414908601317073936401868236963732597064935566904240010058265943652947664570056256846503981885348717104555540875346336562407140267689713671448612002270192345064612185934816233806840773208183870993615970240316552435180469207959817921062463243563495566684834264254177741835857166308878943188140050330740965523131581715428390452784653209114273948294501311362391680344241149685419886055310080864484008006197819731291208225707540866917155627807722997871301376905509684468396543967332197805707286019933637098654218240730532786717271049410718864752869928540025658224436863748637165670563899303085329885386164384534812287665911888283789960310048576053353158650056333372739880206215306101062234454904330147398222010685473829678923592923250160909005511220841344772558893206035637819338112667926479938224198071734152963496865272779951573088874111441068392102138804130517426175565430761969093510173380435539964853942411290618203280991331174899180704008911531992387479076981985115187560506514422677762360080712094680331547416098553188089724924432678545275888055442753604543233567809003510119010180141300313129428794771693022350236303576437209830622985528609566561556552556480828744725846341177574968561703390297968367906751391424205373937263069933054297357221069071952935428904062434789034797215806414158270891736803933456383891713502608698760721808500183860397795162254720113068600875697659156958985464900037935846546453495246250892441650833873205709545287637341932024098729558346352737973299058966370627393401040859507634890506848707575540463755067128529938493512677202833756220281210197803374381872915226534819360302242132545604353975692378813626148259926667921794819350347213284146612294944692619432935991770179354242413165179573999111730360411297909467697072735569936723393748825971018514318502912800686926925281342619113833873022473169523358764156399265184910272716840566055803711993192939618469640505257448701373515295688295348153107165467878551799299101927597529637946803839580134329901940201333220666014629965458184579766959081404298844691500864113346984907070167393936580949350443144766676859170233663930647263437043178091010891989270852608437188554051488096084340077061879847029917791870188091727817402444334712076223868981823019198072255670718226581475780423978300986833694509630002272486750845155279288726076169208675916674353110683756021148592492589738984233871294525093811215407972788294791271921568667855918815859597631897133731984449606549135615172330944979343322350557235312050358432874977617327343030680979496773279888536976990984599805739064583555102562274522889075125164505319417497896933110561202235064004523191332956077332615563839077974435463221351339770226942574250514368163201656883598583258787127316248459275479707526063880550189801530191368009306432459535116605708753192867087381276430891117084899972798148145183157524639852921447978275626448373287252100960568809515485582275686652238894236765657419014977934674566210739256439476559700631126374121292533294214658965680432605502778251472980971213043292903750739947020874276869328056788036839868916532243214512542296053307746507022224129959551716977553312546349272062066060448269642910650104815593026971977912725111599374060977521805366340499956649835307996271794999402039603030366092003344556636860663212322248349082463101969680152255278704050630556435332102786907219041880234295595194875212378117324938895510296418306673352215590518093368500579902905673400475584213317174527437233358461578728236592281035252179436506645611822829660642738819165212483545297910979347352836428815087042236230200706186644235301113335629733508041466780737001648645637834750416055192988385249312497306673826689153297134145002457968704498770149964177642384867661222100269318960541388896546866098617928545610362349370031634915603374708245870104288970875396717300248911018821663584661434820882784534093993624045618310347377848430323566343295696165613799972111473330659244999867616834536465179882551180544749663070153166309185956278621034577626149423542876375791375707301692944966120718424053593807631746607593971145306043315076652755679473656122665909805219099858232905001757178328006952668892822836192553783772340476243170129575904442856633190492428538063817177631542900256821569536077919085940082382202034087220552677105466651175834492814377035478003676445170167740355694673830948830032085108786901976820597107206306204692276180000988749178515157986397142564612829997390128256881905466100655363914133719331331332080930498538997401941386999243608047975414369257857162208130339420349981670146765318756572838043384328420921899564449371958900752038354241738514119159461979473057793975880074652120291148568180494178835039111134536971707223231775637275442155631957390167215115787582741848117129138279182913042724083137956905604815450705518602466956007420183846365700499127463256828588511675900577404212418853519860720239873583050310795418803163284903295715127419723446664533036449657255704501067317205443096086408523610497566101843792350307154111898900144621287214352923189476682392748292160319880831234256573674529854586273424871381857094405975323009663517095323841274837840801966579866454869179472747490035412442102834246034086798640411844852038750446640090853357101080245689400108347423658810954159971742011751741215127545981370928419903147231274734558956951165946162442561111828742747725742736431343810382921582996607412969761345804170140688412646296215053337719051375791581626371729479237922160327152749544419363935122543096602188002418009446449230954342331081949296824104301099015080199159575190402422467941552015701149226594267158070561512203241300576741245980107130649267514282875967310621866081005783226910971025413850262033158930300803499350485640506220599549544512159130817026225407483407288674236454642606101199824736269108719944735185026814372912610161943814675800112123186195310007135635224175071570128032502083740415431981014590244963672848394793404356708356250217737640100506075152312749510224157118583110484116177994200519171637263929862320899806329269574649786904737529415195476514293375174663070708673796694279473112063493193806267714245799589532334843198803430813675620082965962344321804852461523502926691026581133225690652163066171439846477938561313396771000896763049824468684445613245866982866472949270910881133148153111562604639367197599342796943650968025701644651701940684004294081480955034594542853676297064638176577160461033294742774180922504378589049656156244396331475072873677374138146165559534378758079660323030687843219471416683941141489862740157213547543097616480574597039069483802993134166182178973889941558954134663853253262017452857699604431400044003215258470245619410889031986623174458973090439256008585464255265270571018083101598455101336385146650982633110049475092418495421459975240069957166952220635342510700330087015551716580466358486811820506996742874852210606909384798007207561558117228785006603681659922135369829226560036852607583298650221646459828812364742052235376238316933084038796310348870454902839541383853056238682732371903855498195981160173282033244973353713870670657487257169806343065303573256081272318975375475719130986434820432152933750612246820457599315616623850261182644297562263428599503549757506497274430033531014466404757076471045695346113952512663750015977548812481990970907836742346224452291990122970599905145324109963585931495442579451431188176249187446720981677887774329124326058496101694885108102509126947529659248713524200745026174912864420277942107462822623672268292809728346480932385677643101236015155040805366367920816584321261644772871984897249801810921040894321968281588266089754786684291179900665514820898926437445280261461230076237902053485099186250312100449653945723999127368685096177977147156603249694284947435927033468127834052609849257971321782492732711995413788587017549160543689494269322648176645051504249070955314538044096981439482343881296849403104525839581765010246553428685434768889669990879616041128165564259490023983650290774380868797857379350446484978964340845522585044428905643753062106847580545889097263819261078957973068227234689083374066199844066392667007300665726345507770754644409979309587597355329579053735388235512340421157981429566145539333369031910641053241600845727985107962401398954992711813808122323395005093250895851240455729944841476196998132768805139510358889742814086402802453321286533480078623705324403721168795958625794313802310872336393622281630074075732341985802989277370497840683121167466422912759376236659021271064218786552249608733952834046080050195382874204556376914049608609065774240978083284090586569508616510908661546686973289917265911961959760831658016776297622579247079976876025356548264602911623166384003477659928707560867633178898247488422948915083555496954787967538227752394380354009770573590072090942592565262392647559805141754926387245825122626380108026382336184379233034388343010555656659127409510014850910348663523521246085203727937434673269639422792112569922714231508953259999041140217011974256670038729779432550358011184773004988230425727829859737852791708983354243464504700479634759911279796721079380806907348516486352180528667618949838238323033462335582384962955387236641344365661814080591759801338970767120540577057084581932288591169227463149199153077670739487733346858712645749783561002791277810726440550306849177512826588240074950537087675807977288172471101539416160107443046173466156705321225150715391195774729398188891620202903083209027483233782965213542811388772174979817759046194123992794983260815525711257164151204391243264270084060316116430263830274660295371214566574265791737781321719540876233540117295879755553936946666855847168821337618908375528383945378293319000649263920159614239108018620475630998063701567315338589877100525258279683493006490893852929470968040051649228262166526449732389290334710088573226634386675309371225269775323025205481623249218107359387208434951499525962103672842938518390281901380083712457399826527496491725737360915201789464016774737246222106042676063290076346104112900324797045854889690620761216025695238234185103071605657009655336489336423541689837011275613199365560074529155431336407242054562560965987994348995249245570683452993644050987905000361552534255929621696743230784621406836095537404327648030985786685551427808520898004641437419722173793239776510427462460343235233790819507226834723217766692467568733089855918661470503712639790261829623789317864818132916593192170070841939358473962643237151959485961950184148995954091506908668910577691370494127310750503356659287195362132857492891091879387169996967501641795510554780998340945725115241456325959445440247465090171310463482579319884859223332297564871728805671833993100191595843953789722694279743882471709315840485485752032095031185558818123159220628367548641265204835372586220832017374371393136610612998999552973942833360084360339576457402345973545909157237406708185003437838524021233015807530190426686799767041256878640822531526791662198727999334080829413208098772860861268082396499924055181633613670374695793987226239532952090516912311775147904032750779130645904003728087640514516660838241019216262958179204236513317093976292748117638113282820479418217394263487397491251837275931695087794728180469194711384245213393677839416397000755699288572077936872510730681395725801928699591550904578478279252664597790123771850205705843190281294442629381529788645938759346824279780583862915575234272341334350723350434329264138417988658789812901420023791240920622614999571195713845943415416865515893747288463993251295702648063094098107942905091153437089327310804046841894434192725715320375184710350802335071998669624684112290081766602312587131350398964660776052615986906025064299637182441715736574408218803516027330271386574308073821590512487613386880058209781260720020314488253863225410325372903744882588934473518895238003385283794089780909093523383246153932373020146356980149790869163114992016197760941849420502545392391838430493996789760799304704446657791645200759145187240727323204717442808635940208898929526196790587323361712716114676497248324528064821255986225672184009589262690922405027207669058206252492209443359272617722471985949641632618762466054642027807903526506726905737123000389697822675110305920717047187851320095343774963349375016230141279013692990653458680741195421176211827845589761818426145086908192977495216872224348582528159187470773663657569227927906938671782496466579348041629341097952552118006996552401581967148561536924435421408749171811770974475109348161002753577274447550466330076957067321121505480820024158562474255352343853302885290468778920119279329356771046249537194814816101112703063297721366998603647170767363746588427879893666675301840591903867288348435496530101371321642432923537798527245794362606031120858496986487069903250007724716895135696083716458767030728389733145376703781115536880111646368900000284765962036050063739757110480605721153128957645298375514529389085731593026223331434673199317950978511433468457572923369774199233077987093993025854126804784433121999289788023122038018464630596109766745748950004754709322303166616420125348429149001432486025913810563899884197965894583867015938831317389756214661523745127763892951060118300697584512497694597556433334379431630164593636786564427228977010756269987443857448244495164336559650893948698126899113591166681406356313305595377704976616562624401998660391946832482306468341348128386395120718474215924070348613564958949822791685207168145588706440039651560312456616817253708410512537594937918831764392905237142481917358582216940708736971637025199288825712377718026939479865399667800322965346101139577260991288923155222469738016564950272628209590336811096769324133165477098995772886242006998621612322605985412590198144032547663853495507807671202701707928168081479715430209496691241386444346319454568061134089740610419431380089683839179852895592747787727426945431582842070130700963435597144524945608586717036822964317415129121103252715863060483458889237961905141919051756244417027422829557635501672638873962711084373264479616354386211110446713302791641995952586370713956135842331452199582192170250991639405848481348525778182779670389199539202461720941132390925268579307133777676283088330245887086996744227768373363615279416559920881085260185389423434042526588398518862151144267845741381444832075270723879297041461797121792255513289244805686980825731938147027358685813469114258192726864622582729024349598695499131025501988030779305647445203329770483833793917343405107559165270746541818402432526046234308817255012881774179911418726105449889085759578799556644662844133244991204297136511689254117719626003395563766526108366486473965256206376768223936014046953353062883573289866822668953004737553675764423944068002074631425404853243513898227076238988957106951367807458649561557384781074060975531345875073639265194099155452001868813349484996273793006267947265960217377867339472480799285556015662878911763686294429148663493945899843393651019483703645002394146039887451770181420469660446371015372023762888964768099640749278380862473929258271407495409626530636300838361850320441608783322768650544843798803464534487470713152964088003934407084074462441558937754354488086868220695497437659975642653502904947642897310871209039636163182819587906795352749354910287580237560650189726388237748625120669679325471247803637770789025311453331541587613084907043205160306470587192114282154617860782519845087798377280467089978930407301086912765849337166048805052423715709567396014653706683700002137913024139801566387364344349539886352873659618619102294455119435129202110206175191375623594472718304758437772892019319530017468286402109512356319898115784388563545921713208545638180265360707351596546771665787480993549308817766995956112809681740386293499741281246761206186484465111369824082587504544249516394368643118554967347118373780730439771277589689048621305331390139431378076301123541064095002100454093641793971536756829862170444250873161893647979702217354519710214523681650559656763432112524806040093118030690116807500063000584343653222164214960755916403230584520812891508561879784761596444401316705313003820821009653637029754509060167463556378942846519594712552497694846737176918862488432537278741536809971600347634296598616952598566610130466046059226551144366698530569664677477706068875668702743939542352507470921376212961962589034316780535499586485332853736427891669209590291589571422361409259739560888742645503355156462528735854988019312020707660546560028904935375913669031094156574150153593272352508335688266329470254628045568780815195977973147565204324941424260632038624904038752082138652716589116869637022647902474805640906871024714245759280871298084089249809906760811596764570405166003821214523145887002341584952247283466397168828604801280034936066462222170943761896925582780700943619037494398945131124941574190848895984183964184910309084686414955774819775270676147067608527071022207246564934673432205337760087762946821106237083953929177502603962245869285925269484355030668886540665865654342513675835215272123861881760075575773320428435939758167406471830404567093751320457854452077976265526361148292335911639721986833489024832813397784553296468186270941019131760517184530637029909660075326674456255948444589396280304657115333883375789263267126078895637839130262956579245713416144186916750194164874625856890404530795361932030421811991536744362329381567037228972485391275036174397360400093338279967372562545263992823951785655113944829426329830027487449477612321454938894313630340659853787273132042459795839692885924113362503285371093370550527275727588228722871150001132540807789789031466347405009553640705901268005189517333619964659581336639153217392097075757999273996964750931175049823850275334569104054756464180361499673656495954382033489488348357396766949871638323272422524595704464621198620825723011473922237940197257491945460954913825984267156131218540048936867029133785617377779690337402731616398729582080565254808174794141923061626542346319365418950828873380431057851953993360887664941321847177180260414259753683620981245277889174970607694957227958861041955559533819943244643807696939107978649463297374842773131089298393669892820685864199579208999243836016122791568956293260785453669710788294871928667212054772477464006307671306435949196829578740940581618428118838851356719802179165322730096700063704225488620728005732778044555510674619090327974005845091564845764250414802250809746689167802081231810180113834215768121613125424788393014237881177732399629839362889509954734208754762781789101163520525243415275254574831729182958934078895144546647653957123638490843563215212649196387420282751833234489990356814725136337578265469326109455270295146565281185174523073640067546714201387123437668910214339488610638412493771675625587390605901151539422774388469668114473682425011755919001849320352411322096598899881468871765005439770943762216360751203805995332837210994918577602687764734038710502195227090835896619724785415786397817183772730143784487675258221464570959899562458986122296660527030440352045601003202781455777405252400994181310083766811522817056342979869699743019766452202666628421788156543628205513116953915782544151458600454654207117992907805295238794738270703956723353731069459681322820990487591123543981108822384644824872258317086101617142552012379262534189234916722902495528998797066995849852714811471106496326013057591861424761404689513540666597235274101661634089705473407163015312729636695429066720426251897268228953587338425411209128596328821408423840941976312486218287234257631418817187367813504804870210089860465313673744680704436936043713031037977948369149708344154064746177618556959857947968637546523761105929391330538984434628480847261057038071961133440667358317417852635326687254819520490807733376923127068699758240625387277033650615442515124515548063016139825588268917891891906412801840613275649853973131816372613432066322945712721807671157361200752767924318622348294701765175494716864139009246798533251293487276259758517640522267827179481064883603784204698324493193354154981765636221603630303722308840610417763194480188189809848462573246966657933242025895690969548914809471965479748178763328113901072186959899732472919486777170582185050882965608013063543017865923914282211183114854978568794380198143155955454042250203558443728776606148095017115188020080861208386474776188483415972367861645654928201155386715803048186325892147644513992035237510591500504454151464610059211351111389147914563416944097185146828716506480833787610708026388582878634420065609481475776884423930236664317866206727643664917126303573420641532397527150358290690083303987286755919650093216092421699075326293348152093213728905811619133741769183090627636740158484820636129735903815681247857571761379992126983914411057529976782906105064926701176608118795863269293205329217509884251089673242692247564447344654040805437113035431192710220127864605265684397124038042778120044830895818298863787779075007474753341198492489885142152400355706589911836436132691527823931821698468624199657915870935185077459621945064327731131543379430685143103993725076804628167162603382419583526214196535072984303962142760710408897607594760038226720239633813342975784202054126307766196525031602301661540599039015207744302374789783397668443005673169635706615068818211894640916318660464696945175801792165492449389328426538237234600055440830503935278079932906425709712234149664826427459500299337216083453887251190257786586174686059579509321341078368538971197703654029157540157335910380820734924747099429037147465946419318572737362982115866090174039180442473353158813458423003114995763152775805688241144410515500039231297010641760811993513083561498078334552101691768223061210059723611713392339569416711554681455376751634861689003051911835321979402158420266683899290401861801004926913523759805284188496749962615331915730377675646909616577138257778555935616245983497995613367636091573863603705830595926517375616270224469214185260246337780946228855512318537488698272071849119451362547917244609717670190020140464105880844952004111465511787856216500389290531229973613952626106245326602995599338056948259362767108849021907145550834885684459745204107861843861289867994423547608451734555823632228297465818617149831116633392603249484249814397844106923880925361079769344950717534357500174987116742658435291292628617658348486741382747511310995087477151510826894910289585393472019051860970713480945119438319167464301014706472065977575841923087215083400450275843293672301778998331901277776097755690670051452008820285807630034438918706264162963246509930864412004791912118304041627787103260653067580972992131886595095822326684285008612218804398033318382279116145492932031415856720952761732327515315661891935243153541908904830785069634582314416780826777823077426975945354977689882169885143094710205240918743338511783233370503410802900646470450322048349385296678350300305089572129142889703277613691076177254048224464578677918844934784721634760931290575156737907042348495180551872897670469169994621372217394587256226357099768859892693399382838698011794058136869698947631341922790850430220071921393922186054142913482629525039134735334059036211682436233834515736678252677231841903935239944821939584894593442500630633482672965446295585600427306254575937608066404186266607432080772716331107596068538271439650410588528628212652541837891708029531905705606568764839135899714666129541904837301791617673693744718731758598989377436542617205401797973196449692948503889748387497480939920450159103377315901490032178916810748351975157145112651215998490292311815708925577817075815978586836482348496737248538123877283296407000979283260944584804410470625732125688766671944900440818515251370388876265213662373677780550982235344360219397530492581322423011406686525586038614816929427704238036049347381552763050442429741874106813238354572202207854248423688264252785543658580671622679937900060924596220547056914141901692460770073051214008319566704502117132679135627144888213051140426133355400998144764305192389478129586262939559590302077299190090396357890702501748206620524882044150344624156554291460071568239300338984871375817918459006405178541425475467768794208695426387847339983397205366334749872141996101356291620597817710584420768024355797751023006533600087466413041056536694396211813828983439775190171453134053889460873606799330489422589551394590675802808376089710852141861954147986382561156659487168021670933495270440350038054246698065054078051911853286247190670003164334346449180410410564097446951233533086065860981619086035726269551072105438885989978195497466561541511883781154978398278723573815639314589878140116809034941741929894007988419814542821210580774369294624726982559908667151270584766852729484490309850518289761794497002118018249652572879825527733990334374038418259932180162517970363283706840734320083854126647361019228511675828118156299102384809186296796215088682885271867651285531457704785010509133561828172035305212228596300585168320123074989365034034338821106390075074590005684416106892859415244250699041710101473509100314132871248749126374924000109196723911035789330201979754333166926304892730564281394833216444301959487427308502564854815086082955270294662326063648733335510732538760438984938301908905843557504249765695326429622234110543308194623154779669660032212386491738651880199966499821670821773674000647052277464014193492342680372297697526807700974428314324979715036486915698542808569987471209680318820167488645894565003820894241109251713995764734269491342494976644081126062613076478509446565357321817025606169075783508713115657814599686032731575838525326859229842625018458398886469882113435382680746487211752646722365153539834541063129134986712704997654638376289942544457624881846658926985586928324123970571988054521312781380536256028682354213575116092423353339694336041372307948106885581630230498882966655224480047350873637222384061114391536956702763188885188905541118019004837381585325142783782303744916674740345677131005613789074415866109787698763118221977860306364764224335994889812451595439731142610791044383363947433369724842527880037594461879482165968061576373357206077115364664952923100386759706786763186364615324804992971958963745857088586122150847408286741355835918766520710498028139928113620143610724564119372556072376394581532040317792540301124469138133776367182204528987025295364726964240835904251265810072255168308716554729444648688192513805977666058889092868815129785966833314247938833145663873429579532477384567371381540926600876289994313851194924408665919336133289337083035512168038883316222184256942708878443286501515615593361132452813490314777827142533759228764501402556695156042992038637559921386477280790582118053710747822954155587767950075680134451940713726928701543726688374792054424647853728947467384190832362090228422742231814266606328912098485700822194047848041300073711819342996456640627638417861908566762027322404556693598138436710164368807409816586113436353655835626309998639762288659794810099462077630358504881265557295809897527505614345120697137498634403693134282851936236499642912570473727803222927570522566461116075563929266965465325614411206883778589124574023137062722517739565833332711186592836626387810308761395278226509676709563893609328619229169177275623915627368740552147169049816303412612932028131601465640653641907837540841948778846943734776020126556848067565732312276074929236903977847511672288844838875331358525729441013516722036921235211329559624032399105666760875890960562553033409606102143470255536430092857523091609937975896597257617567274047884453179960685601278347281543160851768086144086778682068354132784697467903583070479177361872336753715032453243910276920814664364992506173864118813299641002342854669910613422430397471744552730688930630798439981514186985950000551871534368927049365823900208588622660119887375051639466547294827445681877198563070796599040409953671634689297707540228931777094775478180165719470472759877131363506709429573594210803627358550887850651067041607914326871731493561769034756179414779391157805968636921114615834085752622242736146980614840645117987761021924402633873192897420228806307327376303219677478740910847230143324191097167475613379494797627904990650157788450625333358540768939246287755729189749621818917675168028043210315396640382733327148911982351859267695036272280758682262248280060199384325419459009577100555891593474607927721552002549488066183629400950426628919948109587242117738741904784948684449487105654431294924736366525637347972235402030542764698857649233856005499930424606880854623720592856336608790926758342087562832209216569928575180511957141463643237727220005239373141795716748250120229047925658430187901437743566166748656313473252084253032820583163016400313250820572247526742310438066325123880877120746239949252022976291078664366053409125398594099565992403461435508295879914555655839884966613841408989173661547654826650612603797454845548537316376910883384784060230304876087996409901802557880229597246947659971990622653908032324250776027446991691690304613471932850825171282308432071419386520252012029905155395886901486729299968183807536568817316450600550352783291829693055212078192265747106384318883383884590866831007391464103316786440546775093650711085304833570341146621645942118843468969726568246688710721608079878441730888655266670447815844160538081745733552200159702767882494020243210781573633746681039002314360588584726418585428646542339742555166541423331964400153487049161862587656507512149633843804377200801446587902906060682370367809849792476691056988138210702844490409748352832836962544014451206402236503119778315340893638136813280786073770566496085777950174939234191647167727946640343427036115965627454176129843961907077930345168998130228312973636206875726024316005663916748241320759293635158625437976012669863575674374262597832480484696143969846981975705454273213017795086694082567394349686273171104267225423263788164690204604884226777573829471156810184952447299868179177891447869963881757717541984236395246495672241568803066589861617489507766722533959897287056103748582871254542275229029615615159010345021777990757235649093085596585032055480804848239457886824188619767449126241937062052108011203613917668073861793173266187713805961908649610723806461161273830992258683748997032891814266495363496144745991150078224290347118886659826610160110677612056235728928700599865018397741051431460903052495890602432962481803501848889221750612508864958742122004164042311121952764209299730855488080059547786154504070257468528965091768496550699751628953469022808015049403534800030063286097406681091814425298483488327155207495530728613457190157443029621324893718040191680734328666878938665994349572567298548888667106061981608971379182331476231066563222441289347167647000553556638706811366433762761395067734069983249250182181945286766010620470541895086215272473071226208943478420087540853088642166565981460378906877544593579029166291241531073144707446368668079130371843801003825297162438210661697926754151954155693210472930877970166486843580956610544022171795887175663309505689051700368957434987320217924282215198014245538685502062245933306586389585987826955864441241099229660726371403534800937671959916476154924979159862086829472073987949762584995833035021790037144306963821610425733321883910605586377069187760465037449070876643807418249321670012459154530974621961638912968036805124096168519526149759270270881114842988174697474350569233597256802482511973940232493440614544689717704002734288854051169154204916387131061420441061891532131459657317572051137640661629412931778782376805000724565362695858596041823580829364158577289245218353284308929896632009167294889932733492158568156261201527439395901279018118322496807311821185810307455387994540504852663956587027058094586472733239551530272582963637717348054305036571683574723115975092600533344291955619479288428678335848514129095649651764174690857018906705696390364967842188591370498951434511214780215297287866837798293006769180256676975496477000541510202521716160186515618233364822155251064189808944423007569490750208573820526149603391610646234445112941750897172289194994043980630984650401632011144064254485031105691466144380721037497220562751924425791801148590959271913484655325388671302022896692888922858393529180558878655393588198863416922192688448703376092299377485547085893487914269828650643431432083554481916236203180849711008795389051713914252562497033637388196273900974218198954923967917231300350955117803295351256995432869943902751344417676547351770219305243066607876796727243537120619825188287433196026093877830854949575777553901727585344252732932495610486839843927000307945410460983771579903900164517998465519184357541076600776602055732153065201326784732600138493413535501208474238276652705977607239497764031267787420137620252215768242460078591057537716139105981649171858860082246502600929356282178585922231890453866096756724449476747793622859091104607022089852919107756885199135934979541792095413405207707772199915355256500498632123712009826598823763627093139481173826101344098199315740935812066210694850977842237279676062317340650195021533188523473122074946342363320522090090883737588736188428533284281202227504371513756947437473645045518359765458590238389993668309372765809237670042466368523534958868042530259085314527003596257868287419798647959118603441314672665507583467044806895003914232266968638246909749653460104101737455457837579199253206822061291162805972489474413808372706495113016295168747793872819904126293983407262606988488303196073367108361449476547470953209042719468302777719918720646737074916894833427806665840989446547217158455126633540523784098887083825955829394540260293216489023208038369306603227006860855312771099300505086705546615575352250824465310543389779481057307339124454399950943986635619571251423466868561917393982518119742600783668646316353912760712117280632103873774058840987828256977041441542457044059588367435112705145642084941645329272597078059644327545986075231221965708877106381388572717751190019461200145919275976450693349805779059793340486217786421343860006235990360890405404466023124766020392771768658598870727604468508805326574707566066819073758721087942345522257846150091732440751440522366918794099624033648732692414445659766223074143237937950996304122977197229616011428991991925251040010720870089639115219883199391720005817291179098075678960751090472002901399548343230345374001691644053420064955227053497713523430789174299649739855667598365242374173565146455916171982051901930495364933386902189605536920676261738124972538415414975741812675286503721157713850065321141136980581472909866645037397920499553241514855874590433014791397804389807071964395633884547356315917793836611640738091607980790254574964969573712959732066363861936214418981539616213880779464238282765425630069511393176789527175543527199767979015124998121347877251644679573651284865674876482944382331206974378083807410523256794417787256706057098844082415237822478979035472616087143226819764090069522293471482285493045791860242641322636336511563099785289226668122802632655595172948968941396170977326313477180660109866358234320141535011494569516914174341577668022029813810008195698349256725010094137603221804999855728996241254675060572578699801563447462313477763705924325248140409733642895546155893514381128968206236424489465679731810019096970033340220506140392912918507352069329242898576716509310181453972329614670637772835657841478490482662977531804337261487586226027123731857151450089195050291840953970493096925051655339573484406502903882540266272280846099619286048458038829911923743413009176158148227889478181764358255781834663336515075924281306873131146765017793273473343090463699446487673547049518739582538069287006810816184062299372338367746563779549304004036617220718877545374964217320117528455067073306924374678366003157456646048877766579417210988117977315809249681570578803424145300818013044405017776164524056243306444466174614712066312898634125830560080952480029078891658726299981370828403886659230166122767858992944729481462489483851922879173910772551866267773433253045526638298640260181012208243352463499451229368470940668795441663674542541732712890629251631655941027849955028451143510247771369763131455763421772453131416914908981885942578951290161985409066929590165895777720156119947785673497684516258324657326594713573343505613512079980191184318177814446999382640396246464943278812460338583188157917815346103915538508928145259829091372312469564371282401843343326312568351371161233533829506479878504498947714717808220199823674486848766330886256340218741780012516060691979153255749791135756492444972543319790461347317588930967383134092289977704200051476122991618440044912466002269975084458088479018789667985125029105997394765804604528870222832793443962994667955177267665987535443468578300957345579857772075518394412237659874086885351691164458831099505237939037920349719666758427859914945334275864881014940234137341734548838806117853170872181804356108422340575221882379293113526312831531849805547262865124930132467826871649156696056537679867044219299382434375597862200464033120650962747507530654984719892301594515432152992764809793728444412614562300130974840355843576645478421378528086496031624149612921446953554605419301056418504223441350464202308672644684460317952954002796099331387542155515061300339379836970199228023277127584396590627680712987637723875149353434498937226481139293904312333277747057893408807760299462534279029472094290368036223672626486765147891079134880122999573727273167363878989281173434057148495268447791493603862140077694256884048958374534341104549397306664111201560090157697856372125008848025926228398321452833171505421720841627876074740915187731315548004640754545544938664269653747496997020502180594690397549236638000420508468169347792953964782445816254881917587760902812440600684127934471095134698923619242377923948691080943755341223887626931726247860296924576968656358310830316840024446552185590925437310822625866848070114576831513464474082009080522664317564123416416186613133644768398548983840209166697421168134008261579421736738006887149457243156394737222731134737405232942988827490287710644412128977614969349783210702839933946115538753214742145739773332382666691464783758427719187372859390794639256354118667408302653938438755384039204030097291119186956483945092909923929386693222538948975232313485292130378372901083887348306700963420191999102880270092158890687219640560570162988006665392538334451839877584730527930887815394849577347062554567241894846898858496777129653283582680987197594360169622622271556305356941017271127602125508747177892253550509972990814462028043660974393769583562088417076318076101023712644234371909536058616118547392762390733480297660144403130787365860270801698972065658321265296413730601571492391672652005282084031677622784103647655264623774783575111138417356639429599792888829828024555463162248252586220521287055737735449762573294768139173768796512376102384290996623237453758445086679109243134668354516271165397786970533773856217650437914988162901339350125116906844054269023983716581582756417605896032980070168846778319937462645699187254303261554733128627557163749174113179649562863171865629161290960940620357749457873160386993649072573031468758378301061187453203932174021510471503925952664660229224707748465127856576075793432946221179424840203083425891311787223801369901818090403571574424662412887029948291799999099568433161924067701053453656416366556291583706049655364493955080432576985060368498181678048886276786349823398824993736417056554644086103845857883884670588959765883376334443965355110863657226473643006204068804754877467257181966737331314729030801376824879086045487672076945206114611069788103689167010120827346042459189326312998118371348378298756652431876886073617081378113799537139166156505723172375921400399279886641623486268986368122790280835944686432939692522908111574157004552272416620477261926418520901815015980880026005821802791654208132945723843095267891001158925255163313429991543963667269210804684780039107990905333460070482384489336897694259744747765743789806719397432955464714419848212050216478039967855317492476556983519198029905862485422340647897757463853279215474894109708146906102274238533685680910441006040498914663608133308276633887481362842881299071090889967811576713726307008470360558097291989967241717358204930831545020502292543568546573864255630133410748427865386894692282727329209494405491215284829620163302092745151920762473732538186782149799544113022412282752879918101758906557848721200966222466988167649006963095091883870688616242620731353642529635802184326782536764922532049957509122231561400793815770344294425312907721601984294772945218217686605278380905209767237429170016912139957508568413605994042282810406010168324985334564128725768732196265818169874380561494213442966914628077270160894460618562777582609060143083220309237792939135186763018405203208623754332261828980859816856929490662796415293504873606105747252433363301106811471660805921316427572537091493029425695427536687548435497465934319746462310454673406847283702273978090112978097386062799040335030720416896931768727641011428359768163518479421949382908789478021290244067155592614466555198130846189496227243095294665914493643716998553517434376109027878490753071383860014835132195763251244826985846548945480562435531644037968169778790069670870639106993196556483850515831690063770291697223115601829989423224441670654954532970775517417226175322635760808859254149167194761894690353757167061864592894397410710784912004013093145018487742907016217387388828780533036377127911574997900817841736806501783607383075067525056221386284638318157909821979637156892852096243444775080153784933433073050063228205532747426021409721837363204871293451244348878585917355349868037372718860995637798241588730836098575188031960021069647641307377602561213744406772655744163980282943498769374504774632335316271161723024588955009838596045350645640651370906188211015863899397920868579380100977588031260520264938378510013111988068303960922017269930173271035079490635555759449384494082135779267733050704360962544423399164723189175118076715511007728765398366920258586762092011800018659749748960302394599016769433571341010519174942458553292159636316547499335406551227565806696450517957750194974693078679087686535155334433967358013171642733441493908048417156579863049723062286461591674243248569870004708826184775644574393209440792110014600488206858985824947403024402171407476347161055332760523063789493288850068365087659731263262000792931704784737977281589462403546686878973121551889217994195991869763242771076082717214251538509094873531600350766632304803556336245765764847303359400987289559388287718066563619256631192605649237901014986862283475768017776946985505690466585480940084391010743467634874696225616565347372467117394821150401303594652353237172296664512874898576036764281256999585158107855979023013989656218266481521574197359153271078523730492168475206558068923295758492665039122273503553346459596103085744553928749595373486684557618369930023870714332797838810539965498635307693219453399607731544267706925203298336723128639752720356971995673040593845784965350418192538019657485321320637863577689947557008424289695886711179265256724890612098667461354109707664885305365243959912750333403837257661525710243691029676571657127755621790892456082079753087630912347744259621196568646909953737042941626540526902834737978170002410402463040433189994082868183565413554087370855251000039287439213563307820865911575056154238035311834680577943616050282914701638872149924554600737251031270637629381505922175745517685448795572349243829481372920849526347980819261016815232871625230715544791526079121848516773707383944114361446508624189910441579607397065685661816336244137937812197936265140740570643920837849076670454931210691544930228795326372477565468104518513240812271912919138534630936577300504534858616570252291782335565399445313391739365061083031733857645945779244061611782215307746060128803466609649710876198207945583389625651153041710558426959742535887256636087983716035054720101746551124679325171558999740511423010327524575527649273530787016344351590280508993552257680060262401153930039325243797058656952055664724110951450955802502531258288027353536118425492676984248067905519187544947146777488940107597510329069843477753288998331872529271005004455743108914286110233253430987405361902214376515436578852046843613604154575042747605706990282227081298597203994353484976689070165063032022338696968738515187018069032928701820243849091594889650039779538775644999014813361567509608235681518471851378152336355825130306217283134614331672248873086925315907502190327599125917720467478399867556984371143307465812425686758053517367211565321749196057590197701876771324037329009031388288761813908526415776873046539367089585077917733068604768363428507487108106699700816319491095154726087466707244385514907111619904201308551711546550059320672373372668386737886420281839799973225154523480650342248723925500417509398043453420246920217040894876956105143457928783436302756960517354904734611477777831645975651277010151527779756133037765826067098776324903833782858088500884765647047910015090298712639819615644672124245429162442127547941091181553094313763761166414795356316966774492686915569296521908619270623832353967311189545575481740690571042732876510602533996236123566974922678987503893325608208182974349150107083245297099577780648495365088392388333112718219347835585033817234577341561625272651115327017649406886704766204580261032048489323614830400629147889760230951086867128742111694044134806772040366549934249614088682222111793812109596491400186274454223520190338593592215451506765828521924303262735242573972345943778940402848512108056017542474617530936816352127400544320497475443243374271646376778524506758264753068230513280350728539644341411637459956825399174239573006573601074041074911278132160627590470671385790498762122054153336606362657441768630604067429568604664252957353894532286796313850911286131544847287662567134876506357210078832828608560776878047047200466956023144857373673016959512841925252701593612055960092149218954933277092618074142868804171271580983032248730999006072770500947094051358384107993579015103135490034635347565453639413752272563577034976484979820288547525197407697524042181481450012025070471274391796373858976513103462041053937701497852965081462872574375532663951802974644919895912104205141950020756237839888193402287062136321128883548415614833193203616174656204169639611117791762416872799441422630677166736168038885104807129025982111815070064492037561668495891006925488749553900547587662884806023192467902284053570573662324148290146438396792536460558464277406091259082797235909091947351410120503362686968189191903098248756735804603871948790368054072305036963773058803012891999639958674782236693266850602498504032726251343068695965867703681988926060418676056098924501016327162276268291880706629280530745320562930367952241864094663739589525993151193717480370313857033054773876696515175978404424000074405099318939028405368370502403822829795553529687954493425921728259042848444629660586050692625898973857339030189663200863409106094062210645437161306202735638620816796781941899872216707228993415260201602620542006382712980855632253124823011118400172795853346467024879748829325906827649999784996377953409742328938927427681904654878367724172217551943771944016149825643454755403051662196427438021332466155198458265962376059188400382065907348354291820647275542135952956704266662255666747451434412669024636791517244615123627998369922211155630574288888506771239241727874793622063593433163339018842548732221037409839647083626741083020365484699600052100819397359896212392333261995956366310462667114588638919271354341547721565687310358328152379957077770711911783417684391156403986002754464505936118479102654232684546753449855455085975304381471287480060542778648626529512400639249133471930313592299873560002529065872915867126992924247577982353735592048295542269300372709599205537057336993545763300182643408562416293377949295810212185931140300883044794065209533452648756498421334854530964527368247627174698103528797520180687905024988996046278541287677890556858384092493912169013429224317685707271611181423286942808467856603751072277000655088921433650302719232576259378979114632881037062022418629893262522163481059953461317813581900116752035539483752259441434549049505831606365310821722729333274930378706277510803383019408951282345424563155753271158892435283596410180328461772660065639536988960645364426007771135070199285553306388834265088945406903912004384144869471224942834629617857238878832293620154435702803302175497400837522071046709497891199423364680267913935841603084043564761468994235371617107826073804845842570301011864947206920106168553142928152762086598871868126800144531919152704759736915416264848795213950952650508411405005693341792689955111523263077605839194287402191029917797125371842998058101440334253241833563891380000333922240470225162814092239719675931655640362748186398611131037405645004847060152387733920856214061885251552117703501257707807524720671223551012317884807338254473168080001736891672173360674132150819440426813787985174115600814133241954216729027941315250118491051210550168607495668357913805549921309660514584132302869634982930763794446982121229792485042052288661629072389471097180705162611118809265541621058057429768319468848171370523549459242605560972719829703197181910097971066739964397070245376149989506749025631592062827711346420515444281448664089562880826077126316811244581018721925750892168511989020610162430625267348864171019329004167339853765134284372388311525804948596977917586486410752842838535242439535028245115455195424620227366409674524120736159337726432615637666817323912072961758936094153844448300731910072129978220604055287039435277754014867211958765749500560320425882733023730906366103431048326437330622542888697375983982587672439326417785211944372234667449033442221532504722051363585147147836374371215404197905778690467931840713999493719594220012177270338259101399127366697219626116428930170773878428543313315867631992886315362686221039768050424014137344165306537182354994472536369448102625189368987991704788423786009788467066207130198563744440380930727452344830123974937174822986229345400262317012964733076242623580741189287181468065302948318588844887340650403485343782416764111242590113412627029879003475467134940548778007245021710913903847961499952612100361810093902111958053624637330939182904195752677144838885341065382452781895469996723883588138593994198560174897896046590735408638540225945822372477028660711256081353736664019235903682653121343403357918766707699085867875225124903268078214957920038765510160476028351271052593417948201135388201865385181552692204120014053249179900886766864221637259155130987662797280505928556341602418460701621610298359587641732904441116491269146503491923205693466945617224696024242631918083938632980659568041861514293393892718057752581024895133109503564108842049133046302996568012420711178028421082127472039374996675542504784210406503070174066613339173548835806365088845965710951301003886055773232367018663289661681496084437880313585028125956231327422906441303558539812043763053256424705589804613786192326434953206409624330507777168999911190394213124365706295161360909383908749307176683795403595050883935086985753796419264763562142648791997179919532142016426102924543304877284385179873304924381340725088117621695118662646993109436138507581565789503668645283885344893798319270150939468806774637405363333796539486600838713294823131665051981664136045791800597006735585715078315553638845120543787185995573042824930362025757155417771071993198105316104940369422279678882811387017468283093554404245910639321502775633568654058963576891503233642602018654798558125067718629438321743636426618314418576015100507742934813269490810508506447064101286138194659884144501700978204531197172233735956817865557464471214902509963597565053988333049180959187005846962419272810368811288996413779987195443852081618366789809616657701328382175793754356893521565556829137309334975108788067481163919717782739227781073289013191488212651258291980252617256759298861722079310189425689578800631637012336067050657338602288825947804545063957968659943863864250870694282233096469927503403892952036736038678178562767343253712358054929810459590712873942296384109596919047035207462118579575151065752323717917941832436807116785621061336213385161677766656072020218790931511142931807882808910087151666381756103218889887202012070924465327582738302565785895807542948666117727067802566677880281977924294383946317117690989238452435000960229929499124907254483831819820520722476482936157713145685540205007569274421446257300749048616070772933183684991014666710912909000664967551879535239748603376702450443869158356821142432965061695070493813802237358349435357719713052225353148732780640263156255170398714059842015949922730813631833756373446345306135033776437533799192808592110971542424014011852441138429668953584169457560837485317821008099404072154448344143179409825076941131131365877025802104913179919795708827884643474900346785159917603968198995033672984025162428953905373957225798039220906680186190238807645937152980345137550777307381203262498158749030508920876880842103968547412370023556301768473135558044010399029305110251612520177677437273732398473193260476711904560907901328021760609795589687579424260029865746572232222623060310834371602979338890955120785419975082286146229443487042786853645459934417164559749951612187447945261663002147686964395211398177668902807884289082914166614506717912400463152557986833354311535297667480242939695358845896280695946072077099378363918713302020265620785234216193152532180832331637126873528097202835098891091017149551731245581262980725681987984487916481418017447166776555130681989595258198900408652780102004825916085060487521663434952416888871153459890513466725437091264138584118777786335933872385083587721432830320248632241745660150091478975228428566200930533362490981362816877962460942385357106684430314933912861251872886121534526142863436293439242861281023829636126734381981308215393098384582222246245573392106341535402462487781581647022635398150011257956686163194149919999710321707296646785306731611357783736919789125448975194306370362433787103551623172506891549717451438451987349102375854733312810651275544228556639369957862534879584440072175169983460838674918778479446211884458373934444590445115331867833759907675456005202306072241640485117084108363446448533671136229465889639014082149344061565176080323628113370618298201501085838201054526054087322003837004706592548275230819563872363871328780267738401512930046887431387529968070855212721708527317746747405892432500797472326214443239466605398151401846584420581355793978235616956904039116221513188155172606684153452377931587153472891053865696921271713920961388749617136076407931063943729808119715040940900396342042913155061541536893568326557361914887914224293214590493965871546744630341036502764047500259642605379206334087075708801867403618139912863275340999086034856716920896125983856085288118275118229097556272402828982390114944088247529241532683719212273602239786929569762469437896568383406247367016723846971121974419354945609702560687902103836047265503997004205417016404852541435306567120410837541854342291012743089411964816282638075174123792004960742879115145164576955810316685949324188842654419313364316585445968009666173298865037132756425189914187188558798216718018362462647064632477849016914750176261516853906633003369541066546176492030349707103622505190262075334343355643850978731455156787505056462501052732030308067548455238754225419585398240959257231250844675309715843907894185403290123105301348032773130110821905019026543470344654306874895193922228722683362662363733761262129805716337995359800614966756106845328304755780702241499823518350980451860458271154762191741499002805445830121261133593553003301631754139703502429292678327084764059620852953898175315875123080092676509345852877179598854522844542931908589972761917528011750360138232057480976458680579548344677228324875208362343353676900321318638997761745112710705712425317653005056585913798402315465178853718113801875606393015744866737291818378282686845681820346035490024659894534396586401204970023908115871463224439389251969538167815859459258939023253046480418060416829539922013711509595812224957270247842830356064029407065717275271336202001281270812905534499719244043753166494021059689794748012174113468754652124279521713096539508270744508613687259740234252120577438703654443619949724226824542690470611883851149524441912454354654668933987586665857519441227782091237112972651962349698696585477141141655533823521302988748819198253759007335712455333362751878814473596982755509597087742805516122475641935611890287362152848990535832270466172018942792758074339321511703273420208949381536017247190648333491035174367231980715441240191971029419893325295261282642429664430373750151947695808486798694442047657101440854215946426720257741681690258959148065296701417848554179260496102485172198426180244279962540804710697074520566073679413758841206767336754136782011259155063115527502558061684654908100093851997123524208501387200663332317349396857483672973126155685938322828073810179392680991752249440257160621190231944942302875052496484336842940347761768010074055260720679647406070319262827215344642646768947712579888546331818731909968287749151514107705502986240096028868877603325759496453474333147441190042504614530013340878365559265048862485267652529387144144091041144717565155512589456626391673637119392270350328079199939812414402452115692311656204552081413814512243308843479432891602076174630719987594238269014993762248578328709988445687318220950367951572132682993639542428876235276194048144456183363556446939101945827989275760522015799748678930816071672939737399686487420223749217909325879491547096961670338490080342239472361513556291721156367200461286773316167327783889677405184689367222342946365499226139740364419462364222233017389511487036711403826813934331166126005078212426040357671889286589863486478046494269871277258349397086849058676963555756310447480197183175388449977623900491582424198006702566390370799272198113336214639678343164492555375189417007111372922746903731041357810683991219398894359264021393619627004928930052012560695062833637629246607479071613284561060211005077962712372764595091799165702943979974212720347484831175689980066699055321683467444068064309251973247680157020015768610382075195568672929887167398188572879005810576209882441574243216565322641610068289147368509667501520657065006919772259058903523096146940434924749206063106091505328661688833486926244848268849012808039686654538875750446802843310542440080023201221518146998598419920014796659159525608648126917595734663237455132984054137884351993873850917613834270690495672054203029153041394093632720464813206974378873280647818004113987069965298422039888754953026412012133648456929566090963718051494104626514744710241891265461907550887513592669289425761059534887358347016871874243986388854044213816802224839804579963318039284602139187061109776488581339362209470866298649881147551495179331468955871459236582248104741374410077489118558165769948762901357550170323107509890891917720176177544121041679810711890249039064652813955234743587317322629034756021302555368899429770893559313795415520961636641647576442766903860508429856408535355669794409947144172082101626845113398353297853723713140075552110434889909331568089461340774640461638008628719467781742709532458495743773725398409941550802976804392505981102157440093178648072669045345815590594814421961229016634467156592427691524016087150481152973136500163677800179060195994407181115100148432004857008905722747026997999653371634192879703661549261871440980250653934718085440421213848088371026023033335661499802857805460113732703727285704531493403693007517668926462310343956524379093185060733648139059859278405610197415654277448836648727587276592229887398263167404666291870010940450823923437808461936964556230737083766099107498609788325052140040595800261466271712154576753718960728497689992831393878585898781784358971156697743682308067892270022650642937782753561646341994041393847780864803012398404007948812894922467344702961885999372672080577369758286717562729466535540622633252890376043574398719627950971570401345487167572027067811940095107935667833408024871546863716430518064009628513098022118110218871432336958289171596609613879993230878174418064919617743571775407640211170917631677068744618713810435814919845569000330992928983765964631528365104559337934446622929513338562358965103632192092963293440061154634872808915204298065310839645037172576066912902761411123217581989782889967945681268521060333717141033879292124717872407736062115918150519303295558205053974860504664404886521484741547569118247011020180066894969955982641032866797194632599548905197941158865886540241879590875004765794210136830982991023028349827689635239741037626160694107206570403031283506124180196095033663651504741374924766869716968408959118074880090132967564850504410094118611518351751667864498920369186667134620197174597445250716502666665385018688509958876073852359496349054259286149814302690282902056134281220425423483327284288319617975229910071409571863356170972034073783189009734980810401390406479630535207990117916400951403584876917711095010719947546608336998469841116539115398362088964499106015294244063960924430334609503401277690725614539041000047276571674114105331442454558587784850399012438554755509801020515242873258560464724432144805176783814378099354851701026011609868002962837567379059638806322480627124428410781717869532261223530334031023367596293838649490778550700577123732224967108114986509447864465396760753612855813750197566335469938637657997546865532782856825347547611641928378382903408416928142163453863533821509874506895087007040538018814109267239407745343993006169366118935441504242424001626603655157625900471725252061107504889594289655564695188440989511204988551041024174467515701014573088802485130220678269705548311227254537378748085614611646251168916727658940589025183839630002208035740701933903063316311101716732409624625159084400253341065736977816834254904147693027447574844604062914529996168337180092130498538461566422671109955755301789295533849837528610346073354134291410362946738390021941388017416773682209564482085408237418907233723811672582498533940123529666728661843867999060204269802938901051303304577779105813775252666186026667483719300199604817523233189272837391325319117117600319639551782467522688536200575859380039757463911996821767801232323074144877445102379782750880693589672682707963272051777382127320643104985523892041727688371445692890238924484703277433105292263771904309795895681808161373753273504294867993003074856024456174565548123296093893431468602671250193729066519975953160042183066589115499347744159913227550096213879621413528764901498232613650659727220715873704532981377346081622083903923754460891147422737364061380864986488428310882564296565028798174076148327145559896640383362525661469147289877909713126535062339263496260038954393928601009142105749146957145991360686413819071471381183532810313807398428648130014192061519104317959995535951894019894972244653093472010856840107327150641981541558351797253789661240795310965089051114143354356392595318936627114638602956959022981413355788898727215545083667728165112088267794706932303668145555766903246224740609597686124188796481863178631385898068536292160493297227960477796690470782300836139744921606140813774126106141040740032110408174114086445572058836440605300676129583647213652749543209113640599611695848435376128210737102424500366596002495960704883899585708397658118657060980961363737535226478771132505528369863998845241407376888060088098066766734833209706061090739859687332919449882801937187186537938755769759712063531381116467332699692620266417940280589299668227918706397543642499171992911543360573687592177247229762410088780098923934454311528925671310585280528895552506792340417709105353268416121088658101420300829160569050361763811599048120496476851782633968688482683649869842196484662084390733143169682362346035311046760702901813743228427859044630473154984976568332714383710105030524985790176408986870709966666157341164816021629086815536033976738681730101596433520854977826608997154028042293377444288256966786714695840172645447556029284330778332758394331447196709752517725263158265481898819592719369069877947193080337770388725922229472108521794316212021338910544923693446896250896460219251640879933124751994810453387696483630669206476979034804411934972347042168161196516613182229557541046808923593158179194691344962802413279669900683003903540092480544220833377849812893281137470981803741931573549702058679365743602830124354958426549412125600864783709581250897260631234768562874993942503914816302731424441003180904094731231181623083244371921718610161358150826470199587925456081577281542831046262267518285907523111028658927002272550647245025489219908963128805536883859483343535050425001772641424031877790955189489085004617066346341430093757795295266975285256399453281887468351839056473871529282854948732420527104020632468021826703353106529543322538284180094199333705934539314167873947234863361311442018823805655611557617295429221762523960555892607040813220199307749631726958322025707652778999068213280141232561703489300651163612429513744043888127574923041034011085097011958604599492184438985190297924764895764159447020650597378791974170424122869780246359390391669876305225200182607448239497677558723310148890433985339562866245883543378287647270454900972765208527146478237067336561834157074166547769335798957951249042284939408827172647818257599610132513596429544658681153670726753915352612602498374835481869160290208817014001570271533354863110680461942566088901778750508279891963926279754139270686383295603854246723035217178681977370153398560196038999113815294417566806625057596426010324952928865086649272740160027747648170499101952800293154601498105466223524392935268244829341116803638352603893147832551572322678575112679688889788085356954136744115419861912751089495095889279633907255107594501999106972160680595803566230733492944682393815109781437371375646898276185482147672299984061191095277150838881122694087814776417190562787202721012577077133641915398291937678374303446411692268809299702380540705022362132694702032932010779673866367826595832200541640181642340960774791927300405596829958570253030660879344032370227046398146897946281083280326857079188927399641845166355528291034957909833924910572271516015113886651886035203676331067476286979348595838530188193672156501814795556593048090057444081700486911215197853409826899830181751404293998246032377057484385692601948307380750930004967483272202179968540644203612419722607474867221450217395303257737933744468394647978184167585691671416642847126431033652538093425442066422052982623859343033315815044573838932483718963861922644825752803851481119019641762233080993058169493607195914592277894617828963563052213046579871281989009580819130704171233200403276873169246341308947907268374713753472524177873103288233705536589890842436586146069876815698549863815525871083374066793912014064749975590674863399123351092485120075296618719612615313442667314659026607355519279046463844030370941047224786345939973100866510243390558087948926054927132620526888628629208668430872063833949408747270061517823381995984861634899625385159142658307041239367224733762220614340700383146154162966613064277023335048092396004137196668184447120751619064956443956716680486904026787714895490705329854373519752022393868604217947278578280886024859126653412646225223911738119730455991713243455147241258375522689628596064971348022682158674143005291900730093518189618083078051208041824734256665170343733495929810463757644175062890027783021484985025670330154583605047207566173002829291284150479329428910539747789030835944854465036351499042347717457594215396636281135927839887971225585635559441925686705279058657771855661871727124005409858790013801209885189737564147577118303749399846199621631336822785069496915839270906236738757282489415947454611440886312642571084681521746719957182715675201910738840940362621029900009421291885924653714971263173010572661448335587637433417166747658806416752518658839672200992909640347325246025295152804654435638175709967483457106445811867559818229586967426919740835883326055730826047490483182162865990015334055915618292409896063004899997282668475375041940629819879683986656690653428990945121462202383102413055229020662555255556105354340519861676058215591246294051439365088851627317590827045448909401256920397643405661986022989383885148789241753198734376431788752339498069579833487678590624725273620246549004136817960750228207501484863661240571183451339847078025609125771734700417380792266315539693826205336036628243546859063714811588387250628765996206176326607135435363545258956637291624791285484803048229986551849906487327310935539951617988043503856575046241012396893683478989797794648979717483736993427408576199886189174650557927825584578095316889168577111126466443216176815554856764165442177971691965552520906640866122658200775445444189978023985177620984503788505967597846319987040365886491836701659353867229391436048434776957114878938817555511367403399467926863746777314983542531547734199778503584823358474559273040842775648379341079528041922255817121536238609984429762913883001807969911153515037570047918182278742562563024824352933022865177676411818142315708904839065794574522708921763666114072565886087175724985091838130107131437395438469625517175762599293918381878639797262257782465339754370258527792057093856728681065517417782881630026790951182142982453041180195517549097771416374123500797570980350373274612292150930563445568011309199713541089737820036703734847621995448988316289929106109736833280156551484991078696573457948328173034479010376669041320237026454122511871244354380090863874001160574149890057003080543644676422147817686632786964282312804344479466613790502009203447047501492418570678486721928117473362789413682393761075356587689998674883879441861190995177165152258286055759706672872209300607177993142770182479529368099879464209968551737403977316210971435561469476384660167866129184845134087469093754194509143643818257547196088295563567297612786668971109094111191514388893682989391949018488215413684880217609034835413229534926318915640527908210669740767036778310813209086683158714740023536758074960547115338987258533733662729066795383898282903718912791925610638567216709101197252416124198722083670202044625285779527576696360657512530045330095494659267451368396215569154838158975815953570731560894862737516606828981733346082189273152187367981368399429738856524705398130767411819227481724130377841505812793948574328316628026144671679450362484578985678681173022310931176988275240654829816110667986037349740940768456681332659963545439984295552960560632466144382061704118661653412521753416974078115050224228519783004538775048485988773625136046894663009276713266340562889698861717567162579798524705227950399429358602591095309368844028316469367091822410214684674096947942752837469957325681111290954541868323657269969550913285117654784277600751799831030896694549510551579900538181547407739062922423417615137269933398542039199247031125852633992537900645505430988795147100030990893371540683252229391995601419624629181469417738666594511052984216287221587981425081413682221990094532783562696009957731978769794370848026238378084423767123951670282102499211241614858990289357362464268393873677237739223661974860146478260119005936907192080962784141801846513805840100423200935764557138139702134194524017261039492867144971881209056047232024959430665934766824024012898001227248322127438507466789352671035034188054897821544668081863178500518302059472933584898631369978612185918972518200093973814858639039659705960637819871899949596733015793079746471687845219707903575688079524560493905436393466246054393871651723721956786633192138701618661101839928340245708066455177923371963215363922468273452442590442132057174988843375238944250213666874845924898090942163102511785233657944196884169402785622843848298945802215254848977853697217133916798668142864661149249796299318747233824886384288049670203278384240913489461296608972933046350531826318647943449166977548791639435405840971092124424291169453159926456398791910264899079326289644319387073061202033513408158723064066276988402504995031211677629976394861620094480044764498770440096146691680628090066657616181096368630650969618486629374384667752032647654850058390701056162658504886590584462214240249586889280163703683368052881241254183096249248100063103120422502474147150729919938237138804457694097342370381093355846631716928062873243503440463782095542194246207198956869078086284717950133104561915024344478135188149296124722733488149877962000890466284742535349686236582605862079691595632745078095647183563359401167201300804096342175297863714548232055987375231709895556268689555660679323097430572664770265225222658460752781928685947632401502760414380043698970922472906778016954320882059466445651265819320034187033217399032687332730285916796507742758405490626239432333697313539325838787162759649931979411931825482001518949677356807154235460680513666449086156081551758725033089219243119393902872356982689843493286946128664302504388002366230907620687949178409122033327380668080813656982393344021285393632794959379950543938024907937278835530687285652952855301540289607119655904786943820724332350817038700342043020811542048617208392342866917403753187631838124652108975182095637326630474959302529278633085050311631087263805371176402153267621857606618002757998278651623293463165603297899865870510092802612323146576585484036530033799952414664305704952368614557230079161221494233406130589076717793876440599692455985703307649343095738557610758964960327648201996989947487944301617853448285636198964214760833013120613294701146352177145338809160800322918708925348635294085252980157070731713559540135654886069959318871753798925214669562338182127720477361004113933985170971359156134306430625911256206355138507182983105568284800968834180225600966728835055066661498101365007394620314916011360763231522739570944896561804325080185821878546084619250695422315447125069039628726502008635602527300916283665701280081683598108248815478626217227698506932512748379553269242841994780873441304972329203133746866492468862938294677688592356212604151218826709227565119106694448962792583097120281788023435954463516027114804786620164721760858507042110957471332818883534248147977678007256509052454591762958800891274431966104040956437189563496002867307051438335857145471970247068265919775526765894839528511656884240536936418131568065127268109778604773872855019269647903085986227152996078335341227802924924851513849918985097383133202128769492164081161825050938035251068917394841207364754508311239923372823093868182477196058838083187875624990652802271118373828421912303073300631325888825087766314983634845000461249293526585303828788440788079226321300642684095800511447388627576142342817282075607348589234464361819601706603506089979928390879058352291587964827776477346628216823379201456117574571171963325433519902056716316723986660705759128650315821413397719448074100927856132029157198148940766567996694817690800949547955374778605669306615494923449725038233826524679792591335127462527291399181099754777689113596608642042566663752984895471528373584434999031795432610492153252107247740193360410752072799233283514099568483452538735036658677396824273423044270418651301149216533060398238751155999292918499706277019397973499033418097752229717630235849137138724039463890780713081791262706441476962349950175756150649429583189908332844941120568843196898504269805000982987227768949465828122435248439374621565584285225891466017880527820247158041598527148005986608952532706018146571583846882007446640206137476947056236920893409502145671621071989875872323838502597822706265194497194554384412915871766332669294210338880451618248402633112675731704633731905580816948241154759730399398765777956878285754879112015372259458206835773432578118603145298313474162011637236470391047743343443470427203484687560794358010920878485137172937391091122628681190456227416615058865514843797553688322569179646959513265261956715417070101587857272507673714754508490196027279791665016658350763585828763234796073332715101510988033246148545177846979539278399503898134978280324319001236908158183072924406166982375628036081780656895533567270786107708717162549519982313890477614004612338608832932183010632388957884845284340232150231747390196242971871663464724660946976943676214871685065019449228978336263887169668127079758634608161950326083912920837816484363006182888223886742025895977324438491729299417622986003222491201422468498791398115990407794842822277410578797038259746263918892056212555959104351633546498867836512582598286898619727639406238128676623736484352058775663746306856840384873804780871649165839508389919621639308740844275517321906935050817646992056270566874421278076675716454115262402152155154974010744254311165337934541580203783621762967201467566879301198185533504898949947570714734963656694584298896901947557322885159338163848117931485652449619516254805371813507080370988420198149368605119021322993302591696620363896609650520110961021032712631851748459156319137763117020911921266515780473082966762321132472144583502783807069596467045780096308660144391593820973674296406005621401510629369904813460985044568904091204257478846809914454263521859104185252955857100918754445344785919306921253688192871505087618039417126106640139337156840597545173875025044414107295576575409120673998987299673263318570121250580326672932617611497312796616274449169234935294134545449514468955416031243303919124220382133443576498484255831798972937241589238013902935465732984228929918618949341940027618678437950271565848584717377873259310671668917911853655509375905501153134982691927067756133192011885221711475880097001658718520202517457184733272166474205277530875245150011477239896804895239726238964728910127616082104257490921278746403772699887299673276648217344379532437823452394734237812508951563055068734500436396395672161405596565259797436037431253719496258596155003966180743399123410923819422050995692407164739782266247761338434750473451666913269523743790703556969305009294347241566302484607684630638148495483246570597330282999727790222494964133008445629100003789165019736611868034847043729243489222742783540296700527216723583949078534139768603524114940810980293787675913797980994168806841554751604604201609305336129819464845278346707263737662462098884511851389083933410411650148647821626099926511765421470699433674701342069127623704576036621849399154332694813858964820626576555348161004570712934087127056443059714427872782688374738722099486700403071166485658772704613780366200239585334947932926898003374426229874839091790071477269117538217146486522093873015999058529586778490990106469935935114199941359245045492207287306179173866238287790134689167361457253098298128802274256746566022424254876206151791392741148055643281159552860957673317786380353705245916843602349106891729549379585048821305375814253953280619149652177176118251037928553583195630213857972504964142286771662665097648631461642270493347805060063757570590325756998500601699821722869121763153797271814805815023063459472738533451344709399010573974928670111151770873532866889600126444405127546252556492698628342859805247534254175963200647676999875823878902103978532602195733594910777972320905495050374670765337092999503614989303704954029867474063634745568200246731979077031993821628463753942471077207550036885321314717221972142314584035885705819702811271947870691168055247308698825445667886698025507783385568039001057228458561136083228285431617414203862526929494534152834330117763588739908573410921359012166624981720260797628596423835779209375442649299110915744382116149321966576450306952835977531998150580195074796770750706445538586468575168402374840305211535657521530681303690539756707169369313201341389019819847653680889186077873159553286998410188600557727344311334272222806082445170479050426646206375225564642923213094554117385188692203630281528837594419182151482787019198832671399361687986019437436938572059863818561624473435378236407609236100567187882102825714673595381560941363866058226217189828385776437201127216079052903386754327807932996617838476577286573099673457621426538291014905200195420505022998222303230784722573766101460648946688035715018087571773728978795916257590876934573771389966340429625478656174615333606364621808408267279858039551688339456725417117338069375764640946218140671215565863875001298244253813384625331434443269062725393358106310487816343100671238790885449329241311372377297706112746426655067882641495765829347136231626133144940871564608533510876473294599896298749433484721767277849354064540750745926070576065929942403367488753852061210890754379637996540691058399489582596879370150644886300879753924416756454035765241360373424123046885064610173423733477897089203504082659734015148840700976472606326486747949907442985589901319024753810631909672404304003653079614372391543169242024797612180347740428931922908608244644396396353065540804124120657222643463135900159747540758849360891606017303477678899968460904812729290357563126757230087866090163474894958734675420232593387296402224678772909861650455759037151466549439477458436420939339746813143886406984161130092065925091149250710894889996493620266885386545408730921771999253355124370358720510236653751309078862347290019358713565146887811068489221655845188857554024112155646366792868990333592902712314459309478318848083089233173890213243641101745658746798161605260053004924940640590659662996080575420597979480675477083565534793656665581899644370604244289479385523825637630410246863843025006842277190369420555961057172909708351368566131664591959352997079196992333407813181609013318728058261679373409116744987010992567521880253096646071237120924315535194825052359262711553443388230965117039516485368651075453429379089879072465864218444486611313187140381359864812364046522876562753920995697914225062056618085693050409042582664104436302765501263108860625522914039848466202188741017165613236155736733931306391764225982014130270047886276402178360585147042500333922845045772594577707825826952173261095357492858675112179262870981506316020969029595877823318776344842526122982233650318623136972097478937132538637180360656683915547497190828036775617112877119883426285231010835799815043245327288804361899173037058737324751224088146209982398894897811106216143758270440524389057560397397718094563652654322647450894133693026690505738889004405242357286832672658807391906251944437124371039005672681109932673684674559786094319938074524789374758826776123767418755884786153369816342226731180062276646234280646510214778018966655073116477054546833882711739793976902863231731754344184414766989035452047458856574726250851740570446356121174496498219427370825840671831767149119582790814274522159809244424193174266750521240502415649362447719409089863125786843115006247400234257619386861668294347409557422765922398111331929604707461702557302886973059571063234809276633406548100514775723353164688985801715762534435321632921181447818321946963482650129815023629439254622168492059305922370876424215999673418017874810895711267330675700445968100699617206036896397847497511428874682659315654362906034158166284259415162107227147008315078572140694127694220705808993031176267538172960318435644544563834751273590250553046504663670966943563837489385388062829624937880797270424266792724320885404206021479304084321427827673329260088537392477788820126744226603120002829551060270797528740706332985095466591617877792335680103644283626529939752482416651940576979368935921749152102561692891079936018764799294334705493894536566440660261471774209414677667694931915260869787026433887537892959856936777948462210163745530516382546677515247910863410938446812954809636184366490909258437186572103384590408078058635665971672455373556507270664798169270244872406640267054695036374370804166297288912009307812704557551372059208603012653171920545391282885545273288451949773304114942844049030095249544195536741923344561005743271379122625205361368032187720564682219817712332988509081342559871596152807550284629783175713933594366521979711661637408178921816595939884486904574082683264143906407454857756203207686510224507578438885396875123016004339704904476178236482855042944189245211048253368948714723332833879092672842378525265688328359026263004835137624218946830204957510934186308117351909666832308479333090993647008563311951825592505009408587039569286957256723890691421954386267874570551466963972623736751575966967078296012494489934620691257645614359268539253090670140504714312197123407925444956718022756804760579891538186668154718069243907519404615146468873598865179451245144594908867272631443668069007609331769999317372760299733081697827541049206159440832190333539026102981043069925082535756146870748298714346514736167777139349286137438888967391640659340448726076289858715849539925571067380985954023869034015691972599442593645582375410868599109671010338205997550503393915127220984178061118535492314173503654698768999325401171346885092369936580719531608640947762564668681959941242013145237006391776185945306135306958719251007850203565505288676082108695234033436088819971547975613227986554592699682304886962976056019086483216134487903382486147756609612138105316883361376912412476542698805257836104006941248927898909394112882254362340021365930481522585586752967824146604680814380143586565094100408638919055859517883210234169885900387714453794844617095396582674680060532631097271893346522847029531201511710277879992105203950009030009992222799730409418210534791051410532295381376763450931011247902572029953579427096984274980417459434361738297699832084503046391804494256717861433069908143329868317462066298616957085984190517900883072101206448889733595616868112763505693875905089596464320038646637579097161326858562760101603948566618152786078514878049248332896073088367949267029851403393018443272444713865315531398820189912112561380059920169888424707874350251614725204128213289287630455987655916987858811784745202317600477796862220129236643346933662841185654603113924959934093508501331261270572673592983045488977832107659949135884546727938407475911752601881968199014369961524973021609491008863231884929297536367155235992189566091918184282675057108101044780386395896876766177271777318431641385658163702292200981333189774835124356932215747269139874409699430143644904335356451206055311240313825623299932312950004619772949676585784210332868470015883623628933346021909111967770223193394121960809800213307481826204571731725276114611660875074465830507287847001214737978117042812413840183116594103359467881775673572628214334530429234204228975719167626957012302543058437049663086214119064534116094060179538070033492217290835710988708415249564911605962965942359083808803494887839368327219715211756774927970524997603406450990410317640599522094465628975971379415381871809232735255937265312124828735293744594776303658106164198807292066574198522112295247742015093229417371884563991008892912372047427566543625223869714771215192445229996762607771185336433771651386291424121780524276320051300232979298058419962153239173298223093435937271438556881963440873078515077394284000018988152185800407936889276289488699322720423068000465935436318391921718610705700535589282593667778610371451504823677288390835576027739639501928553898955443859400508030614358129948938671257329225892599903000574661718551450257285724114439933390952145684051028531517214664195269043374091301901106369677570768842668200156351733426150039073657977217878725914028346887608627420724712079294285570027700082475159634946312881149869804120539586430790366955246741154843292977944310866364138820116792025903190917869969195862020083904939575043463647443965332722768995397264633578211340755100600602748193438869216893508767055748361826518043863404655489603900394612547804850568530730958690143608402799100598642407842027504703744198908563978281318772360300930410085511410867116606170911782946196981040390758256835945230953887872019254739015418527709734475095979596278063531042418279748850376703567564618551496101077117877799335336252030485593930146467356110833583589033302240414559082621798239748684886807895579929092002783662691715452966917074671109262502606432821784742600448237976101840801550738950962875825166934110225408168488136332260838544369227541741696647701817627801302734626272694427794278151155397369190386753324892523587347090339518915758501147708138284271377787440454867299311782803592457664937925804460474193720111843859801361066977277328470538382570673960819483221567183459657919499309705578324013657520766515518197080385615252921009223501496301086707470380696874390405556103008800477453615766117873200581925331540172773707825957415727880314585219249590517795275963487191707690895594909154784844064292664179545499521648917377355079862825036364297260603206180613239354511935695256534749567575748351498380195391824781642544796624587653064604704863274902144173367358886303038831222894535904412884651500280770446664900409052312835155486851424294753836322182024433343461969209469454969464324320942478186230373475925487108804204991630030352658333614234717164764152015432716657337946266357854686304553922070738607317276032004188077246885469793041222616737348911232293830851268923948977820241394407291019856138231291965973514265024342666574764785074843264906619236058448551475259873855700950622449565267259761843283883843587540746201319553525232210995605361562121131871772223435708424678982585637561107113578193367572357507712817010533611215111307926777777548517393736734109280954166174311408248156231912743027408414753945663554797086374505815253816383582333020685750553270068151521603192667732719305423176232832689926625912388183196888846308463609023792187186399335911535881371503773506141001087419630747361133957284423431727742801845246437735716634170756042068553480711801776861103436944079014549270332482109401534722582985159968975075236808261703792350852621440299824018285698375832663812979822366809346397118439876141671912743898360265406909594573015664952967365412937220457423213582497059796724435883711119089295085498024338860484278436002581446851148015434483551651701575528411170468326969522066722895478134722058005469185916091972266667942264085912923346538859751406255129345071110452681642875545739721911583398591938564305667633518971849451393086993777004027069935411183564820032256106004254923840599835216496383332802684133958226950662498504104532505996510244937649263198279527821513339820735497261613504473977012826726916758508559627068229892209677017643715243307626239858400034165213046852141135827131003528667497018708539307661959473530135618377169911699319125362677460577082209166605669683497857886482557087065455411187153396758579832066141499217151561025196125418702696740431945184160789761956693312290252641220571966742592873164397994704867049910128387827029647708935331237487188648888581705248239176068347259521045336802349469219491522866433239645270526029794857249476110096697219860428312715497012532415056061323066285040033310902248431567376375792245722215170975564818130254321565472574814409353961899884106594581014236916484882350568953612793400681549459299695326310991676787475437263042501982041226086011018508750059125847263663545463349082330535381204111530785800747423428342627080140353393519202650240445037025855191974732082512649523309177338454624320072319257222166805727238444586923267066659746137533553578130689485322830077532110849349492418890112654404128972432056387021464573863378525330803229994867746697870119456484664126065445429621000725876702104093843865497674112280196649152888995599071360053740693337184799362203986697929410414716940710684126432733621688397504333515924002013008129318180457133060077363401227241813247282198404353994815457501778290796766404900989556346617187058749579648808375673793848568070514607692084295251918848085643536982939846051973614861299616870030770008927082902252063077226833753666205946291985789965424675252048768910635107111094653188821609116882803354008014881710258652056100374983181748371380441417178160611432659652358682148164099903629779076876419247524368609059711477735852278559415388640886635504487203670388056551119582757843990361551126533304160215367910186755312248882457672717655087178603913779235203872199449008743882181558366392538306717559442380306369271589467784851590251704549687660493129637239271113960242594381051140564300498768387554797691353181261642596776107756962495323198337434900685506622915062041181309265388367379814945204120070100079707884781616878065401778096679506355338814611561383970994795392747487742570325114339288104084837711457521049056927312202144180610681120608417843825285449292980825159937962794069454814692219719594168882172676646918132962896460942332145113199701120219308560805400459565840637013573150887702608438182419115632312114738047027654412529613540532441630728821275113949054495473011720025335673605180830399226751262460987369374399405078216764547313549124943717457667879806485793085866779520447426164105270417254546631639037550622112507383493255120316359467130758752354263858146798525468808779976195423684586673547422555491588242316206121888566967199331457750998223804824548611122550400637546172531065597627474636930017633364540007928644250975976393860938684088014063840516279570671606018487705734531419806809002729313004639779216722973570055856852068379376604817041898644178439913883586949682029827698833758687298420327833324155035043044642477904344440457525787326081225035506311596703718097993320176970641797367271883000083926045561066871525621500919193820632745030191724255105934397876418049211376876868798550531218866506311274221083927289569826236395676826507625247455700918082894703231290311153087310709356252481203439491469004756605761173289822825280717269944147885919292359156677577914159322405353183024372133890369538702357214400117440283582402393548749122063867632265660475223907701638130353351572461957060207243315631787615459886055954913972227176070439629907926383057311801528212497319746922339797040176546807871928444439182167375922853822213194458776890281281319395508986267890305582282519668853341365751651725853789646044699086071824256482353469872542886194419874370048474684973563022558473769187741151379521631043948394627480697461321159564388906188624191090806878370831874111909203367107855143629164880880780400580464606445115232621784242487013538933153930141446307832619364921188723544753543011695666459156558029852621535128583724593580645529112580273133675853673588575703116241597788571657044779898678339877059408180794435974759595685159086154669177434189916801770995672282868709045832250338323439807694557333925632420700612785938500355235851103722664299192081993140975906569615685357609134961631743233106684028936894579903368977157313385584474413806289373845248962012543731292500920374875127273213296031112603222734075989213366592783454249499429869362544115188565267388580579509688910589825906517326839010383978588095164664374364831283993572279051351675430729342386479535152514352359814582491933217922030680483169872325901081105854405146250809718981551582131500016188975125398633165228771991850460162925492184366069736509488128598208286534993446682369514692778396833860582193958698946284646880907512202243687242186894040034850042567377746315567737448166364547410025241370618940675783512353364787332187321911269395730789818423200743167423782369455987822358286159647443463709766358062649565478388523208819120281728024500565542983436296745388900344097269284886126951621086265396619509088465493851553556235453241260296167934904914549569313238843836680507333838763370895842843839499638951810484374514408144272832255031271966652450795573442588808743294495435569468175887191756786424286531742847778127826207669456363492671223681587287842895869173712212736923837676226679090352890140722009636109131326910097462671794427470813804501723223867124740391084855683980518863611083425915960401983767988920881370005259292197988945318936726756975684521421958928469912746205648587704980003054747295237448426008332709666108977003295855027052958390055810643117999532779252171162453689607701542805592428973891280559180821364150745785506943045416487453512679422988858416091779727057729750852345013193634319770328491561613952710455467018662414790947067304523005504099948550083167820911039307560682797930703115057548046907926295953682990964314690625776794762421558304197668213458163525684594530954828490079299349158507018637903516779390932351484251765352969029260249525230939009442860131823961435457778343686104274001500755228796803086427464212380182461783370081790859178873605606987758767495139289598188577980932000256045495274376797348085147125679582876966703236687443916769323251820979372700482173564282760707487458364099748119181646550941108100399596561517466500310249802959713908909132419754510964164234883232934116203850591360569924960455032688501574422334105862340311385332964029538273302344685480477880304876385920219081356163634781834520718661434261036785141426716399582975956613291029573887559259638689364477236880077819530675017834727367589942717928240103612813600459016223508240383869066413719475608600371434753829567843099699959639910074570703708373215611389719743868550608443215164774198125236961090714311308929633811353762111825252369290260373419619077531473348204088149258081834221157092927468703255185282198736088045730383479785365192920809930083480132001180375979749461389548132990185847972171934851813813738396336399930352781731991724027989460103658735767164296221917132874031541915918794768020057557355225726890977672843443812819028004551792034191597670550252429156848651914838710475487876376556600843403350364537225163448697930688566092590299071743708686072276455405151068099341246039114176098051191655148239699243021542213584578317991780724445649169464183829079512636090233354151728666908141225530105051983431929024180683782320141072229104099864002638519515359184149663553324594610706031243538016126378271719511834128982454760538358397775593704019485051728142727848312445068177357035809174942752194554553795115045833782126540438244021424727562562441971873874919142758113368288166530055194499339609236313095934644407213103346847259067603595643630464193208560791637482207146958148931814665428708191311736273388969116003680509117159102062839242454648508106099321095966287623376654997766232734024104051574041796689821841505181503887903839827529848796580875028428132128015102607665187856359849700060158209212448941462444346383009618349568640666397807391466832685958820582817909008321823165194219251444007308914770193087111873367008387960392268720911823951968040468611753979901134904571319473793689147347913734632290525972491646616479808619527652078589111016407825080476668485163651816979420137720142722870703719885682242835139876178955328305072851078198161212027393970949589563519801906847308843115076608044397831548151520641088891862543173239601238161231305828923690665585831577631095943008044967433159433429659788511209371431365667178852676032339064092465326213377893822626857824996744144059519327740734750882497058715462410036677672125503750801163259345445767717099302887611190547698320909903386980856070338265440049155195124400023420062536841108821544571233625342526694854129278975466644571667173115752981421870725874832328958775426085425777283399154167864291091945782546141171470175388702452891525713893783529899377392355475858699001841098285154890547848513275639818717265488829470025026509619973522518834008773961865711304951567086885628609824989876080142347341454948241129225661051710273185653984988197065821374288025347964986428025185042587720134162591572190363727746119893552636291447581736782031654339638416134765638188089449908585525785114645519322416277515673687646536330166772222948721473419793336630832266335008279457326318454414961689590969693902086049390387306159522589752586677271215410173689700552812062856383070044960759421501310421920371477874726635171882612324092896024456058294826167503446284351802225543269698116467595180652345710313310810665573902482415024237359397723169367915875282201318976047910825852050291177670167261573243460697801020734080525024502412248545988462222204039889002235638078812305358140714635701342253215888025234053137675436705631329591392543677676240787263750606345662500289828693652645586411636681472901184169063837579845178012185337217248206149335814511622997231603552592289328472842789622095592547923650801957277844329535683817536042983207237137570884682610425800439583145390508845235658745508780108044804159936851879426308147497363295429926448588715473672250901830661471382683408997533813819698223629098851992040821445420870426079707118994734769074936145152815015529891081958250374345079471472499491882343901828166498671784402591895940836034253134479415231731630616963599394554484378805841745922598295186009793949379987349606660357290964309432219980150075660383116629212010972289185266476686945346303116743976117566756392854585240163715345653425485245322538066120455163088386159645068282423471308786133001513924205083992026663957082661448207827524515531981596626134745511175075671785972460911537406848871282568637712276327007344867626484687421125542591603128789002266910153955359108535631618012983160285330245600952955174844673481674862024904039975744398047486999456655171648497638392180501267707737901880662211851801422370539975798866432611160281143198479735934745782824589184286820325612045567796341319807927429104089113312268939083960048310725061859379087235072608574258213418785293813457716157308105426246819004356284126220625178821762836884560369896277734103113090726581688674428946672597542607704703484808237505423747380049189922151394434070745956682450612698858886092736943952041616835415280106583992481336903005496437257913674153831094894095766801050655950574927449635161213335446607570223165884288154351391696118573068757794598746764852134086582074285993261361314122578715564292471117461773797879394686704625076136919843108910939950023151957543364826066769066420747508965369945983803861696043049676493361420573137825789969010203070184715755882875815668073850080805960676693478304284280226333028339853296576421015059943583879628418600840498831228845634991976627653126041630401935926696778108135829234779922600222873257392775240524727630656844003651972840999242387323035928429204010403930072608371315684648997073959557139269267851146691134359126648609651532223527654173258074520401184740222030582740325111709290195133167117571361129401226381443507994389600117537944844347264082362587629948830503791937926248862605398218924355688220281121166217084398857284146887563801659911815215672414817900118306821043160171605110706385275830307136023811784226080557183021111114056866046311016891255143873544896765240374829106270707262247277237577358783202804921909871811119278522565439271389870788301521396724876741760325965872509576798635371110229165530450253155665148206890507662273407760414473411150138875361327745819965126973064114633881425180056454337580742121413772193919047775258805717802695899253614819611035931704250607671579159547450325138147189644323065078052389011998337788086111158799008214380320941411826897046116798318022018358746756114091691794005226856788075592860293165580233659467125160787770033971777123806237264887749516446455343299579719690451063403922847508431983510327826329271387571487405877072100716720340886205775020837942110043458841955010519444628933143621783404266035162987013472242352954332305689275436128103032235849479356316481355736724773300431010846436725382729936530602387858241089385514764741192164594535424932548485486410728613094278829526447566702323212535675996784845782198447995764725042675949645062464977238346726870381438139177863849102169305732481968259192510961902089571409749122839448816899544713994018246636832105977083906029117009442674075133755505316714644784260573639004952561182849351885456252583996494054313053585898627805919144356690230958301345332407102844243739402968319748270102574695694735221582093837711863751561821044740297405546519495649120799475311066078983433763992879299100357410802353756013919311555555696627511220681211566783079268041292976846030556910564602265935879383061235285710083809170587245597376723921217313413488688711078733459649762833276169472342204112698343847294196927459195952687105304366045211111871316721959549420600229199902133333943806194651033356492339667583556497609613579661748917254315474856258605419829160759801771027173390111079755223523743395520848457089984607739658739361254464798218135700538285039792474385993826705089561745045184023071656066700611745888994602332419245347048955529858828542015130858664089714074054571349830896666198576810624172974626608727848516171596600413518295351416479662276684827009071414716700363056905660905852035717880255938722279149639350598406134832644440988409022063479727001188318790952571342685426698925234386873579875296923934276732531575037808853200637915103233966893307205674035227686044857037597005137582510558315377532390704893023855702154643410485269947183559718994303393012278732214452663807282287133763689531271482295999902212802399096656440151102079396150066781036068618694701255643477800529574921043845015736054582864641610350246410241680166405595825290517085646727285554735558893047832388573658903556931708030326370452359577304614629315388138845578909806638335450107577581907835755411386200510556985753357838373161616074829951541238298831925960252072082418640899098396498861579318009028252645492207467556729456862902330024798530720738160028361556851794258401579003838427905020023649345799610160992903491895428659630226507077532442887760778693535676996768518494509972372925056869972911067109055149634440681877372777550534535833508552857238076617292963998950529204107095609717940677654948452887792453934830458185514726348637262425344002926912533353970228647462337569071981834797955383992003602752086776052194972322879970833231306365491910929538784030292192832399187391135860383957617023527986277615017594769443050045285315466437099345069606392507344142671168549941012218294860480013952432853479372055940878518651920012672848829249199046745039326894100749465665900866897885463037793291149994273863347657061262845412714453773108815243274446898097941084371937530950299084461584367826889470758636539932145101857593843576968622320101328615008018068696566737998165046946350466438711684186786914432140987611466084988282264804501955436480442394015362627969070247565024124943285647693346001966330368676704634617391992427915937134915933117578121487780435786771871706473368941814324870911519316429617002866823241402391646758406043882655606128102982782069021449873478893494402084999436696805147835476349765090650987491323766635834989548968236381202489226647785164501728522068466958507428130408720816935169376783195167376061942287491269953335036183820965823700048788564491255531097980547690550554982313941219655083711227828282811978442450673497037191581629784475496215901712409308281693551847103942770851222977766198570344183174009043644307537320405137930627125432463062022843773547238637490823735999055108928451975697155198803558248535465842433795625304064756542214532088454918905501500035155907872606593270158093588994951995518446530660842746477977152134923829666159527809033824879033779370827056546704656486723851307998047474782001280122908140947069886406036321455951711650337162285325217762848976594768208961972737151455088813315045619494043960930298978793505326571770637469211677330260102134092912001518429227281235224584123188603031236718880246025616666838570796025489114865610276654673684332659412031446255965373095811584249424466673245109658524218073162992551606635295668658181254081448406612337330509368104071258909771882453654894802881829555267745922590795952148804968192381881477966577977347921753360682241060244871846610166617712307768043089377914167773903835757080591993447566403872248510268515944781142957358464289224812908276654235358367680836945517163187606297413997051527497297167934743308371281974656171943733668177691756591246558805517221187983045264048600559765553033996447512020529508272642368895711697012939011790500813984770747725741021540186644994409749393854161231643222728316579843283244789635206537733371617602315475155544654442877432113828528775537388679627776789763924414953156885205247259368619708559763111053169048509121029067232057523421026389374597178920651542134958592705916563897515971216958449680416541654645490689759235492387862900852637208640685495441202071449526686401337269982728885002495242551384229901119119988078685747268679590740563620244472892974156742665392440226662437443664870176354975497519928115499179145273138219743815061318316715004298654873257447275654206600418372154175376487894121176962133146764051333085294343307412019706560055608161967003167027906858637310564137731152030277457503883571726290500494975452491101317891020943281991007848523461126982465374878293161756556779161170356919384926442379662455909294317586311966420660210400329016956277396764408219425184636203864877943018701015313217723794991972558845096717726519448846160012277003800795495915881583256826222081521427512328619947176785913515499201428236110985690132343501039681274296358460065805914132235069581946809550273321855764696372672582823004050410325954885090854163643630134596468844875145833156685665795034709541458098539389765060817020515308133380003006737703607829230197429935893395970760241495424421153048818829973063424734953156322731202648467473265228034469080477086109567253767612794917909003221951231690097015010161521848328594325495173266710709968245178983160218071615955005256820804002239414966026784442706919977539223673724283119844726326986368092986598501960497460561781280676813423050398599397082616655241805628172594760249650531210141195734719153997534680065231955586080454879192828825233227982945666802458555835093003529749471923937829729582228956799456586094604593853294822308951645911862591369992382737902979147919526048201060728596334103712524588802063195879636372231291219691747811460250600975553689705029222185505285800861079726071918263453897557704376291460719422583430650311136767302767589856691993467844526836542135942959492089780413689934695020006171802560364085836402438625530716067827288566951003723565365152048538965773851466782645961374469831093304411573026669037971406162097322151477385275322516158377892770231547734757152216846767909219833683724240635364010264655295912103321587880889851157776458012741863921621448445371544234389293067350986585855439866118815767638708505472230275192013472844876467103402607702450520133952168500841465046639850867450419882264877516022922468632276091403835681353908394621278461033996697250172020282080144979754583421082662957420799502559877233700615668081671705136694972168375606841536711674459432316990067290956252352052117971378035312203075004704675358280951590220031069936886712365827137656353649904731490182452094260891108132825623587725179496610051725954972611078146586328850020804848083572173988495777571790440718389657487948768920499548492570477377519996002406988909212724947900850972702852870257947832144395057142679165388762939722061774884606276703319468072678651088344374410936061003248074575443932265110803111096437633445501688051829985156011172571696711652699400043735066154131824591471390365764587712391325911412377267216936179993059861801406231552237897180362871634617446975880114485677989017465142094844283017575222740521928720436543478628738134665301400152174539706035495445324510903205643666077497974128005798396034341447325957209678137004664881984456318353361807389696577899005632304749140745672575043683643480846993569882105903180329477185533458606052955084125941975070844957871557062990570777811660997380824003708208692038772687753405494784060825032189266922367089453892824670254972595772794088497835716078526273256464042442762342624183959132703310254144341662507263952937191112107686862533894770643754799044663740391212030761278590741776099086032377321384631908835554119665635501169871094718064274233053184872633538897810685515131022005863198795331134036063420225931776407303489421342339043537089352216349962841414539054915795040020456152136100848789467790630199214887008684498136178510587301974460581860970037748087086542576063220400497298323772211697971659923175267573164901331017793575641945320303587642148725810920817472201417333113648650900223748638312085806568907400406521688302814621629722333255760681906434508765867215836171737202325090803475195402073796299968041705603314647573077825474017558392636188754071441634657165880216961296298007315549691891795891563763220401133999232490480556085495878978269002751062887619011047327778809917675788753826911154066852724867676455778684781268322501544676761349863892484595282692935901255218147674832308553337156202182188918128283407329101190522047513946815171996991016257702082101109724075568347588089427766607675141004537631092516340207084781782631303669674603072737163795721736508658607370282106132167110591656028882836118329313303882285670892076783805422906264624024294194849013734108375868572300220693129705397622680928590374315426936999910670951366409595600702836392177743250181301367549239522790419819632822392652159191744499983131468235141024165633592087000449406629987658719559587440448127578952690919072494710202059621612300540374692911868606366046021183709009200304204609681879169293963721306265883693750272697088856653196417652491320548540886463770087486729913271044074021700258480346130959868329020508606349546517512573239046467113208971903847675409511803612290561436803727202014536047784825275799073025019170057831528997487298769085954656931997999574946918083413972158211774857431609783192846999445564903625441806841318666561321082363364847172416497157226231482628256744299235079546640691298703659619570466287656707268180366194097753768519937509623228022100122662325002671301047955831892051763901430619073492283565558107423251180449672401802599687701116298694732263835897318561736477931340868868536447479303412939241943259675817940719203391961361786028433894124500356004413411227852677026197829118386713496125350507764184746271802911348592889726358979244511377751228347790326418901250139361260985253504068486789360180210366192071916333665829274755274151305934324081063395656395491097686790825694173699673058365756709283667677345571089741793063515214784206417601891782172739463960670732039948374934232091887170887442935190581360231521694881914955485459060496376866951370302184053124998035431442124172317422557944935977541945086956613358133397547213652292894733097764738237931577727180422249603007155891169584181575436738802748506742298073416569375666710419303958656096011459214225870095625724270048464965132387613122718171653667874140541923922655700704333710857118947116064590001240979792356610401882325393552318984639945570339633632011457757896280062197950749534451904667117320371178815334074681258727291019709826743383614523707318157312573690814970448149866609735722233738139219316419302083560463857909166130280057220622055948887484585889553444151689018997993222606076499720562545659034254739686135094757934300907856877846534134037159802844181288300902570978828167768069340289486169662506267037329844216162557817935940855863394009769366274346631195550795656860036122497727824926106669648604571603912632411455519235815184328794771793754773115434552199697391874481560011899649155330987951004518964237949283188515367715844068133883046895961234453663457013292901211033965202066157337364745581449190511539165353312702626248562096920680179136809693560597046328827956904026087502683819714770718800763408935844594003882310351759396055162227467861841483153468072475694483069929155254930474130585747403583272953020334140027250935617717691725210052980620055635050112722031914271016339296982419049649055849065833937383637234716582258291859152267075374555304239605815672745522307272614924926505169947988844795479631035552327901700084978326690924007845009680556209946781603576970493154789782935511612238000874444943265804870464402071332989836082878572741904142797018145455489027553579917581121962268746809134112494864400242153238734901785759018234715765872160752423010459063012014041764769498177253572052670404929268217221908194977074302746124757760968707449643504318001408557919227513007867903472236474906661699542297695064205870053786882455183485612807327510049676271706575440825845534524162034768480187165507193865215702561874275562457499457834800664481452233675325917728459834764393240154115602570414872800623020842190851988763248574666426531372937208820447478154408892204847082230161585624031763255293711566034695932193211195013378523630509951105267223922017256734587694707011740897096376403713344263624310156229895804826788625685932991231181316742024889654636508970587171433296294839643006836113627977969819106806986808964372814459373587528863342305410731486544769341530035300691817756716377390914743155189427420513537883430177579186472620361407187557902467314187535413606631110843930839918982461353508946185946545512246656001945817639527591183243508886922897365115441999008986461321373987596018058031225680571880790313351275799953101690898553274299292861904478012926421505463871251470724865358015741271592995938644554384133831325274591315026044113234006075176937687460928149540737009617474108946208701594931394573792070311614440223309917763747782413144211798785375261560072103436621483039616831689735939749344106481502871964375724969715610490377562886967162369367207157054345386766322422724809482295476244661854106488809861136577683035529597841019866905327821050446320830450399730881168031059057621106543576127584426475461960804252639592927150276509588313168931588328575380446219649763925699851906214773425868042806924290920816568011388738651927820730914721722862928165272382766504115439133491877679430629155028471207095303149589542659019250130177694273265136144012736549088061731810842056809967880319037303789919710335851231470621495243609048096504272646358906135873278229111196161241702475544827811817974362568123678821191300036662210685331668458080922188383772099384112253865360048091768981715579975934438925079138229593048986683494937845160635296274032173550848518422354205904608564581955325060702733008940700289389546806210178368082508999405048503093443538965890917196411445668462837758532758744594190695557172399773934161365983138297649927171208952126820639104928289321788848494993224091747875757829781040007050889357292878276890494624347507449821134125391583588315942723866107018521829549680066785496870078144716812519358105888615959628147471224461989369500342233177490183263835952891360071178257774013381576406646109143891334820860290189141169257100749061250425343634205764955978912012294887239962226825336039026036097248862946703157135033768290523527525148245853061775509226948937141224385155773279895043280929906254265024620245297695856947309142278914761431452473090987933883256186787361943705042242999149554232615376891320503220915867463349077604286652184444058817341846288171949395213299723808792932510196563236820328080122559013290537849222860747544800572225693336890036303762771647758178297743585909169476518102727554676895009217319678714285336778091331397114312450898939529709254101426394498945650604282066631185286361656914817496852432298990321091450368087374973966427288099275909714697232418388914620078444302542083959245249761551916067429408528249540469382509401618932332875769616478153306130718075245623259369359388410590876113296985547497551300056757932056104431668112241979473545754671316720005564909443516927986161658934911812626153045387403807795565431626461230012324965069369731761492670387964195400151730218997486455740170379318314228219943863868915399176773929886223349506571836837978976788394351100666617099851101915360940439954697269075134250066015721892804664187857434407632908562306426669466666211796770478960549710086266494049456372534058817639217335264825546901432835394279494234154997802122387974004276323870350422138644511570822242919351492952495921950199336971495291242280647873428882205169286325496774601194718986500341527806457340775097267149674448090461340582409371902700901321902470407300190382508552188965746012674248907788302359037627934641646952188212106812609986935127234614506057656957362783983589182326107902378673153734936844617934683639636824428893475089604577777054793138456440602567451171298271465935257488761888168504881170396650087710326968298528279000222999048228302964549757760177826229461942416721632598557691736117749307065907599763824168422357102307691116939205704762661716790002523948546233391972986993320433218442634590851685283348038613572377196869004440719305730232757552699189853904061475934964445475667519871930490421115170529790430429861240447988985360736793087765519801524560471064367489678181635845808886371050214054588317497105323036600833304791360756500840367331158817561888767521848861018661074215068613746770526504924037213108558592508032009225202280354354864278849318096484829890364712081641002683472756336280518331418816234910996404216488328109427811152581278304900693006084976820988184742425765908615850169135481467363424129561747981670200477357928475344414308681904870708047999670223906252794738089600324945442108860909081653137938387894264031678779250492146498360229917342610057969318747379338311440252760865248455989916315639804602497508047481646747386693870525392847140244831157096907290848669978632505873239613913877726772881889629943466727410328670129514163125246115874411702493562378716763690389928603386960079175591791105114394937724221982612004048726446347467275089327186937216410366690208542781263769775430499259464555687243804729081954774600370735086490559569336406248648000088314024908288317859021715623457432259078635109217762458725023403602018422649115261566420894351738415310909574294839852550672371095474291202613197025540128621383544227903047583788613037419353646114637818859820027006321094638411652414929130241409229844027935448578558221526957620855569270647070994823289527123570628222161998946478267039690067980809570238702656864448952567916328972232000634770812249393723008099016612449515295464549890970551604229102545878891567519127553286708550766980769236225600338676900598828598430424582150831434567083747143265519085755084031083660775753630554637201626570625452447443479094590409968088535900894947565643549468511514232462417980314337396217594586731881636615682631928171080800463340638932209376763171065718395112842151716064113535403698063868143140224723919679146465740082109098236277407028317459931372558425760287731390645037278773631804289846102987865719543567151191522719789766083329489525453026605109555195964718283334290749236720185927648890093365537827968469145787019630378714299592552895173710558749944102908239142150069332342299900712023861970398015371813233826866973445122372700844708443962866950961500730617087379441225975558037954449652818282291726928429865977483371647987118480914804246934483580168020149539710949885547789733024788607641681012407113868563726094112140281755723517570608419520198270193948164151984313297413398527534367864450587117402333279103569622320739140171255099590647310653190565886073289519345099495626826902539336441198423806535081216159379930918995888033866601534032096309351185590428048453528323482950432811949747464863658033305499691331184190933547042193016271968119255042889288706686665814192682128770179896853880329918883054524883404391191727613374345895992335492614317421699708783248149846648216699293916722755603598140244412858926332126909225639648803079133650934489091977069943878810023387352765025470689697190840191937863635217175564320838733245729985880020373128948958660047523499551995144325705393325341873690541367338134043534804065466471400532816707002045774547686518374023458379995575286085366903682158797393683602795239946368584240522651244647659023569722908839487991951618631856863464003949364225268051054379058298696467647678851893280923345392705546125558142052696397337577786047966091793658404285569597388930784915792094563892865183924361308592680635472786896850070507275762370595431248839543934014127680300838240492226469678594600724877243463109130290791897041423234215668014940719022026835310118890029971418638101677925600132800943083893622869474721157740796790262756279629550389844852351163711014275825747461070570418064780054145671499373807195209931617027474836798542678243410966149692015869532357940641844911716069444346008464922648693313519769011698180555343125433416546459425331170026150883446352327827067561000438841688493909772231883136187695766631468405234506152521284326889882186055777515473473258096092957702981303062863374218782633928166273652577642635258928378464409063846275095670200118351520220085782078457177955404993975072209364808544644873240369478389430168982112435264751428984316448244986134622768589934554863602561689031901110657509157205887658499456065434930027619835092272141671443140164416902935214999413940459836694585685585764037151943250016975445012903659554474242275073305698271666125723075565592336399686095122228696999253591423215802867240190020857902293567881044856901623229939346283458221269509233762341307486735252883394561640984284858418165076774381481086205345888071199070282031081457691293926468139496723647382738465523489226073841531656905127386414427419356405246870025738539153701552325658282316531733147108427250285572613932080329416978665485217148132076184094243050028729925827546062561861254245846375676549365634101589176974090282949966252541138906969929781881717575842479639729753538114356607072346962764342469271181159720482273504710097548546103338301272270899460084911409276477795521893764763784552450168124033286118439081025133776683785045675799363194462351261665628803442360444413315986537186882681868195426720979572945945433921310397702567898134985489925344024041352272695748372529007705772297471875868897741857857321008769848648700246596712150473609720253570632001113274990609628745725647518278457512552847008950962324914729279313478788375228226595165609992359442462078532425047685897476162837387413905096832229997438065627624074244853893869341786146345244082135367620389347413339648444337672836889803865386221359382162492618168039156076998708827554297834988808820105630519100858429203341486646272624650504823739484016489600634752649675012684524417164412577812118906300169073242533796329739316961916581666586482463122724559161996969110104100037857048978987813001620877723640874889117933506914596150844170668641913483126935316120185277293087663308878606508331777524713913082518953984884259127031098122073552411924373031819991587392062116023460204475884560913243144881473618543575373562801222905734022865097656725187791290253505022800568990192533704265417867052092653088809545561956861604346494750125342241306465741330717442485564004832852545226951201914255562764255163905975044151512350717281369253891256070323472508791609099248909545523927305516431194744809631424040222706162349048852461036549997297107846493558972416190927122001208560303923849597818502602686353672976232436474291636036137227050999114783442354262243633133249149800070351704364079447632892148804595772835452173461660206284663619792046414664852953232897141961876943188011147780086665855680083543584294096160736202959143198013005898145337376402174184397564308922386046146239169507647989199365047358516412570735679884369677475627015485560043178016849148046443377450332369430525841878190720722907526541119376367878732999075999477656855334564381191445756938193471678541680369683350169644392029296692286477359897535275173096624223356245654972620049198442538862149757760638843039388021501129566863008993991795728330733856510017490336600742511939172270768275154003488468630817678860724074483600029670701635943811656762706980723866099706654052648651082837711691653855141351766388923698570810621494328555606268407794681753369455705431444512302543108997551768417953518564638837803086194962786001665996255090164354140366304733476219879974778563124666134781045220615929182998336077311775829441959761036697471948536971622969602840171960211778338641755332303380549899173184550229508835434697664933752661186025866367749989553908968764981535587112686430532742079820705221139965314593004950443107965439209451204647625820928002038841229534253943301287697366791521183643264971895191626851570597147308086813504800802069879130901328429503577554810971986830001710739167588586156983577697889567814777170388042999520489173182312420362398296728678882361343259683596346080819621016859940263161795612363019531178211275166794384517268288946685961435145929123378472566214330792803427088931761856688568345658434444997515498835011262981996852950446995789443082540192158916801183113971110033356683024023439459224116560984873461851892182814646377648153579103646058911913078977248932955679799222821608502768435000667369354440082081938630375897363058617428921365303376312059043494955809939712229247935987197037749204375709629250407257402560850291038590771261535601420594548279091886162639583310592686008888382765524344711485156281704853988688564158216758369179903714836454486421140364754206154277468561977497623604025384348084377926015231895252481051206196332964286806522033873904184178997261475660497644355797491109084764561041765710337200047708238862589859712581548789828349989847827584577896411126432185107156515805236500817295464235438641577498202785881548191480374763290017996781410363296559550061639035969175764746019043891686318024617743539034386222743438138147740845914702345835041537592762060582679139034603382389286812165558172288774976735063826452479432358178008609423692514646519939900824426709736623736694461242893181563006774772972325296416189576999533821035004174751737021355904477009068695739224500139055212740117826640993736809945642307308503467514233686505429606402120259053201052172374160422547595573565356563541983787332085237351873061445997414262409497399638813896127048314832742522546911501522481463824740532788696067484886466734931516577013842801462481622901706875436666308112996229918433137332454817872384844486221081753830441002903859991165786127537301399770155708689453887111080538501429203601229850787846351032382183802096406888411104805831590740902628308577363591700361426008462071491685565973669014771660293007583505928653900210216949128961622685933513540348253166854303990359185547851414222102828329696897968437100000035317159452127467504518750436947186961136267299687239842206296539328670675648562703192945139167931074254908127804539811944000160489834130044714756312801857625144836959879833902759529675052153594380872205384061648404375940915866507726519741554973628584310443694608745494329693463085788474854550918728263307610628792899946424800163428359777818603809877878356264551141057656358352672137260658178263827346909115733522952076388125670320078783561361279946504719558145601415476029968000660676188829188000553143259946598216775890783884428073984693699402649999239398519423680371288506907658046634666072729284077542735041755604999754522738087117506486736564087803253014602103278225196658104583689683068352952332972418779132587701360234033588243922134790361634744973410327517430396487086623238841942362246295249612869417250616639441838001668556870839043849937333028266446061320258186133182063419690601999150750172438562291790035010276697290449486578943764431438682490915380921643406282158523992757209661163993802742142991617985015141860407747620753786156798033370513198176213782205239283892567134855218032219990192734886924305517811850547668309063387549176452207402740002896693506378287037013815059986128103427715245627002091289514039780873415276969220915053976576580750780612744516285968685476463835664197835692759950477816662440877227685733365360455634859378258825300591297275265494402767223308588369657721055499962376518177672755725577198006027137410430293633936337168504278143701549685916929326854043742590029464844363158505074102342039815791867144657183751867052432123472430529527516797092259982902892934500425980591906853978668511557078367204800808936771658151684998440059099246651058257904982957129227991610252707552271856926923855490041900292167634432332370773621756453026401299715830113268088289441928782104454586033286821344070105844790099647084015998269136486484166270095354941591624999448274027991191299237411104887884409359479764985314879442470578826504639667009620006244558644397099748660327463149539850068363111096010262563412887643264751494117467783023184409119474581822507728240903989009261438193566493609445145667640514378201055071808850298678698938861852591029988676436747533428574420167124164778430862499514680956617706446918011176593328719791440225872432486127239226937776540550027515820460158589623820093169683240152991447401506100024792438325665554545645935497608448675568945600413215955580683944392336849466430443777268552725601748249765713758124725002232090650566261058664306106286411337895087913036633859955208115881166879013410671939308681444380449861411866723467325704576682877996837739733805586476965631911544181597821839341739162274620586144896106959468756429006411571196759381570654902440898973642979476496540368714429904579221960374001737267033050862217398514276599685709631571622259373319288170937040862176468419507079942365569053357213574409519880162608552583632163551202558063797659675161108096334921771695364589127156711494006833607695220165106566510065453784602234900080166580693063637734158314225332084623200892026346893262998002306125175796590683227070437768598080761126093657759025160179874130169946011895211728482530408496443953163566583581357263757271797699425121951280193056138823504376255885273072608170738136947319763138314926206161754428044815572934454801441851121464363176746831745289085930229826581167808491895729546968705874610110184027209627857205660052538663102200829409429302798134386358103490425411751022825606232610303317284097352182588070684334353711908570209109023765352813579474525511921071033067225114448167624534665990280600255609611930922269182435550259632952466906181775865369496683957543063060333956864934379711299833489559347722639456329703377133031659109495888075196709098093080950929501363156277878329984894446637733088035038824801125773328631732274840262706255480645713527575598243627753153735063538353189126307944814591114522542122278688082778528392436154087651170238979554543022433771268249348358731347096580250507454812838943772663359999791561553956196995322233456343900987868053924006066956185063456573996049133569205832935618299898147531560891322818702709162370400272552857487565382242265231877023865536812166682037001209759718045373937633416441063859754593655508398084763625569646805721347185249751820001234149116212881055639644186005611672737722263664373681219302124916337737626359170237963510261228745660811987670341035854395466601587409739381606274307487248194547979819593086599290535430488767253828938445020990132505745877475480787413120557586706518745001010075971743254779505384582003739663718280770851006341101152727982494650953984632884620665580624470455057805413664234525254825149026082077446663328332737337914458590048596514086555821862928447309093191456200642813134600894130931180098340931347953223285912381744453664344466082590126261004809114944929766832575663520427996286808619839537585289147181718798252230096737873207376895845206440241122084112055239082193569536309682302495556276143606291701978340619396684862730245098313489645894366896932121799527218703885067592848562164429428087841826756319693357793326837988868589472433797570200599514750460740501882442179426577022224635851292244027859156392604360740648114050148742107972015084335108228313335427503904892079972792925323820947967081992856517379286092050376267193110679485495477024571962171057497621571462928436586148258747551748886653267194989639119828861836832601836247596460643461703751923742584826793870769708158835308454408670300727178491919627985155299103030699356480852510366845349247999762771482358584455790129008222782224567764397942487808506682760157514138178796528584419086995658970062269374287365722692319001137581918978608380915408323435399292671717538948665179066001804959695732742659135846494695726709920680401827423726158816763475797573693300461277853535033626291990526093939948174120988163880194227263806581696273319444545307768840932501750657889136431115036607492842749336903024171141544081767154329087343851353304221029712577893761754856640539909473137779517876679661075709499295637218125072412448075295864201970735181580638535339040594306204266376181677051898840629868041724396182334729530072579907099723897399913543318661090729252637398062805035245751742882424883419383192848492769577210541213439932366932875886020392069841292947616122728175512057815016732061525272096363631196879079180124765178349918330014832117030698176866208916624667146033056632916979383792727778160764549931921561803111053357210670753514105373784753852876834489417803034663116201045481136491270191170947512578644991724899406833767641973273950689279392448153385712811681374077466903493162047398754940661085871524806328584577721557713856865870238661454836251778049817735971810020659337715601954221993925052072258266877367027354502658139478535143461897826752358918706406123926922310473846166417299020338551878519033867044045246378646578342438400850372036731236213008061746468802026459613660611499359890812535363582339349860140895135335167953947464124548110367513905843221765802844669753411524051658584884738973977227702002739859782955863472584269910027398943752070116047140905360307053519595877341117840239414172274551068035801373027681555782744350564062288798510118118988436576372476324550146637763025877603771961034114915949528401072045374822604697349060945276665231461659930134864372967571749764311848782286763200205046197843919434114017188982620804696000929811347218690026809436781703964963829052881796278755960960308862516145220643301778950336115996115686187700195228445714736350603193365548767879900818533216949724030790959806591423352208952488974628968195641979946682507454633254340681923846150340912874213671283384386104539437371377900956986436978376657232928233773871849697515049677041417738136250472583766138732172226532146230227510149330298102097639214539843499531456938111016230866522040314913007681408280680783624951436234714550672480618559209665266105269036714130994952758206223867949114744948922521552815047980479324802563932661584221234640865079699662235311233914120760901815978741267150923678632098473183261183354800467646791798860250908312359762088747446191609430026749969444786241225621441700629773775285300424756652131408826301719866306035057428850706960535020116325992397663418990107920390989031088768136557764801064948539846825894327412042099056766160497560947395398876009608164437480729383675962163334195766818875250489463198054785270650945368024730797454717938256357351392516808765988963985739389133110724670134865529472149050822022328520360004239118966388807610348938821827558884677091149707126632593648554923347640570044395359429144207740593199112358257397046473474722129432544591732145032942071085956744677860329071845048824032089757443671609552755758667628729540931948446179267026210024526811821004039764138755934586915812251573423915158704617678811717637653883407779617916123741833255296688730982805994533407947803404638656017216012536667691432335242528372973421747206033556960296203095335349482215277488317177229464230560953905122467575296117113026103777627595139553029150555688027194803364890534705376597077060454380502287326399933902173814383557931672647859104695769737360339416559801178617525909043082707354739706471837873751762452301337355925991946881970173350698409267311310351478266005050536345085633829478693790710904367344352794477432610183109961908129432663698535601423437158726989677145496809128828408893907664008756335364947615663459731734504014382621873947071870494413238320195120549317017843572631255375046511509166361099991120879023042238653594089850493095661193744923728855589684781553324513570157049140599570732908220659565129852114271593519753357017512399252026436361218706384408853792582303653276470701302387468599298415618292362295780430266183406528035120766556643081443294081047217702378886038928580510489041440652970944138710570179505888758487211643836137199107941922749844421339165807258094442769583801823473815012829373397222104569598274841155297880464295226939500716882479411704445799194127891495468070370381737610474365344207466303168623012265566627563171927027802645550769906792335609997136281914018040173219866946012588105344908466443930020217113846248701790066919177025971667873401732761733113702117396882758829577429770488326962792804583445369663817880554671086868168641757244698495647631116346394979812075839540927133939007590128143165938702866041762352610007171891511890031646001512310034143179231726812606181549563707662199812570581594549486520735716468856401626576825253976397972338689077147726494116814986139930185299114929850091041270039653875920929122256725781713887545991967261465043985443044803553265047833601621891702741872092237095633921058478914689112173100087062715816640890355376947584236733693386781736085132922657890989036485175748217843709291642626078805866455225003392901624005748578241225523191002670451079051303939159609609307637172067375756324969082993482718842224743551869647091595804893026782303950166190347071483326394917983781788784195858641660598846657519480509495061870022545707308745573158983921021751534185486536426907858281285445509144357549793761987956128521100731871869586940394272533294012204335894955619843536489271908412451197219145467054030735869957098788314859792337490434498472869653131661148653265725686249615889534916521349648275299702650926973570037014764465689090052033353427573271512600619760990222398888516183083815660718482594989332844912503220866414188318380438001964632693319093483630901777321658726453310027571465144069130167944648029160676645146864682354969505752296293520927596435998390674801256315258306147264936296694324064044154823609995795618829573559708669649381160987533649089708882457638179766663343187777109905782962710857604595550071759851231354849576981002374536881065000164884062626594088122283502575611314717949065422297606629674693107557658144531974940094026605012352195990472226006134603806687327942307356154129590344063507023339894436510008339999561269029537801260223181568834565196637145303797412644712731794385686648260533736164104583634477953776433313244536848713046103562262144824057375096864296242946833933770095016076077576891360275295237004890807744955562927516829614885575852705005444973894722093224833335920338568860851107417449375904349637554787284878444782826529384616532733579470326940243057099426078617676199266458826872227243452289400519885340029831982825099324699093154782208274814321644427457149526457661880274808428119268245186556695992572301451532208904933186763694557663263230800940516376643383893078372265071262147083290060890066751892802714860140884293820813864365131225531462390406612175693316054820166976790156266131270719857903178068632958184365543158710554622714799264527732140315551829661400833574549840281843417529872782157528180151719991699356264146551694646160623001686837727392912144818090472594471880015026415204616525623789217928560435922424218343007634642854595235612532210335475085152196348411373413145258405768365040910853228805838730862014195598107863753672889943593807332166225198553134803319565253487248895840578815540137555100425698340624654859923791161449813405757424898919313639189603225311384463725941012626210758965503796989033021790184774456830109711804070692776578347823339551888032501641233063510218525433781763793196530076737350508104158012806872159215143859604244297455456655405982713284545287244060140289034049586029068009530015206457788889728907556505937369770042287461906021593843659527583370866636853884737145899808848017274739228015224441641664988302429410680969523522587255382762668910263178452291409290416568284867218545167961663701624975604370599846151961189323983253705779314795836973813772548945576185407974326752596335326818305496455885231331957718761595925378192818277348064427737428627012802443574247326589789155062916929749244123700021994627452747853905471138943789147816726647071149822622323991029491899602352075189159802024095096162387462137267680380079126209878499244446406215690173195117721249690163300650148302821338588508564186531908800578590660524984038300206185565583236015814600223578174583366214237861893135516634246899776466475557065925119966354759088371443353305864022548025986970011206802367977702337591252743171685008413427020998536711641976448225765277564006943880498499101997998232132475288660184790292755713929777317596424077211049653299900241096339872294612557184458167197525686631816590349446338817930828739641327771258618503936011140566613948144889654888129215715477122513379230459254021745288108291867102742521119797496348457414679054632011318200462831729073983231509058590061304518490056404158350518987255436360395694706245321449609437342420568723280044789193643654616148576832512917416869826298984997112253726614398535239727419153617717174100523058232569982856243487014894527066357091472967095088291998727678807326330119728480500775798129465881448342266983821805537659026986439869456915592229391839485523638524372937277890676366144335457358690881838368544416038448361185773615622217490417364729923634020152445226764468020947697168058483529757930213695194910248180944711102059736086046558418592675563623994529044250016652717225814774821706705618530920226443077170196955367784914170729798754162641342157177900776964319745822334419982530603842133218903195345274420479109817943434412439182061053298850992668839058854044944269759785282324166175727121759376509122270522646831993122657716083998497209514998914347323556832028138178597468297321715378541862676015146613548911025024064418036908776395786601449754573367783243757522235852791344867074341714166283506915765178433924108970011360269498236913234504586208807878916756151479753375278557555099676966594190697744436752413556079953744173522845509219224449797938278016412803548572822136917418689217313171436012511419630834868123682932914924654649057647250780059662831033355340846076998485773537684725608804253558242464306802705024251312704078499710347308663694239243591374819145201011284881864794980857416789220916520707006605241002112072578237185970828727923243167041682609235982315898852713460988927903916168319040897302105931981658316792975674266518716830076985487208875276179478839617662335306953206473703666666980203836776855149227976676744230039816236064461391060465428588504170468253023023939584958156612809427180360953805631516389290327896275051687540711406676617782872779737604392658512164825570031734954745760901260095661431349074027794664295779100896947170476904386952533810511817306796508726926408565318385262833437600344627052081236696728177048073034968052173149656933964392638071531632301224106799830314329556097018906891269713688859011744583168092189142735343496727777652193228241639716105344232144541396339302992875834308570167390420896977303314390057276593843954820298517349779242809009869385801166651216007849251240825991529268014692956604548148683439891761083067298881668616054726706980693983582209118096423107661719678310427128875259323142780110069603428580957312834470598696305305011331467385168244772661089521929802123545134509931179773217013856980917728712399759806146160486119393876320955930595908448360017281127124364957958642707921612983396188487172740877269900151303613766971280327685892537396360083482666846233174642443832620489948657588249142556955798726799541845964737749116191962406584024980759177596884663889449587091649966341113212107259672099989831388053532112157401928342619873119873047086847187625843852818773077589285333566386635034856066799086479911067460800332234984655676888272726049867690053846741703028219199348422649866842835248775839545512292036880245041524264175126249387808363971300769685376722829865475583260019694963395230401123079922046021460969463746522217929193390940019966434198385766766115809862901939780016026118805824186260934449299481432918378271114198516468645613020154511675771008874586099370136308443607831369101917596280966919385998028701577258524803647876276039075202546001243523497897164803556221032118339022281086422019579906880931494894705588067657761457098139602740331982864013657665952332723118274329563188500609580569403882880376416574974172422672672299999848252703460283375078796386863400498321240077305771631843141729889105825948300002321209115448892410880057881083871828696816404966262669689296919800049397173642555213601500760787667493481096504658605108506551620258148321259602656478949427454722395427386873438866447164380408929016694024961068521432344252129073388144745420924207730354124687917111133423657159813683853802465522908609219282592301095779950340779879307480929713401776671956424922105356581458136208848196962058159747470789410220591323115237025506212392366104152796166874058416711529942288782416925030093109444073715748878508429688977191771470484357407967016220645863811219647193960947830312500208542756048088640507172031956919393733694105748501165697575202753157992558767818592260220663559319052857459600900129235188443614456265238028674946040834536030405594697497740432941097995231299799370314977135229123721085130847116241085390827368362026713484125286111124359067365032618216983531433678919408249986538647433957203454426369619762121941613697521645469909825805308093341711052536172687847020988753634987270230178458696381202076237288361744748009143462256487683288031341391553627566967161458203918241846208652579690574916521683902017849513447885084380170432356277412065732504579002920145145177306495694020595947124881166440372043870617245314545618986185809692487255472208528842774263057711832566248681681843388002475289902470125121138296234638237427685386847563258678602769925429877577354740904613439591830203963624233595349606561069436462164785391369645217567136265260206846614447675351202425655269942066257897324164485301199853498662267296647478855186309294310807980043407145066709473979741263520012106736138787676505077900920690036433656684779896368810567863323427584104985402099570816791065340241392974995752027958185377275189911131204968649450056069821927766985765064604173982524731973711096255338071909546404193590731573001786888235460510638507064320494136454978713864234021732065113416161386598115082405577618123482137777325952447341424052709514476995071289036139692835155715111717349613352018571926520533236036622107056685606002566464249232948150855458116923802650934796075676199582106166969375805415156185799279979768606123842183392038978119318652873478409838893130015712439404064195234273160732779894849221918808789234602058985263668694375314866171051222729259874249145910364304075909494847340840003990848834768502632928166021011502787118427997652461228584170583575257933856999172601989087360719824437280087759101137850800691789429767650910109028772135467442577658669096912491607712317689840474201387026131509447236494483005736973200894946092831598066036093512325092727569621077530746135438591234317937794810347921282422319685606959355686547074452314930170491065881245771964906228737985436247172681782343779395699149274968521539915609486202607229534343132845144020075735795710787297086510854619093521210377947160587976726515773340788428742020348133305698646402797829444901402732866564040870096940796427232949774480432341625767187079227010664079017086025746580014348539907947513628603909715819422727019029749523347122483518242003274678655025328876218184905341236382593784686215230611124753383587063888048345136747183614144298287527409732360807675797718974608123636260625485285146721197649890044835081909318684678345755414635971644912456782066152042008414612083883412520736734395323237816162739880429386670833337747186063257831081035626243088523076109470629309139217361672895276881793555513510815114192489602421368183985203262214763179893530965394250535822746852195806840125711570933182436876226085486136667737151957495145541024913299911785816841635447939039057713575822648891563021381987312729713400957488664882691651025771166524273848601588756978236021425160322111955716680511675129766406609120052726125130637686624799407218482085378329862992691321997076900258317307702163125893892990593275142878922421601636001319587497967458361105664860476680370438964015860238179182993345483085860492461681903756285577876252807045701654268755390580962166811693956575680135416682544596129353301448552906168978921317055866922593227577268730006131256489965808322813284417817396936023555621342197208548569551560138943752935660175372824731842599150843356413497309874439270235048672977934329783317256280054145724008687363660814888103038264935848487326673765642389191385357579745002085918366836186078542185778040501704471379999755251739477741325558797978902312875391156955767709601723654358083450057381160753330036173776479740239820914001328492378949306716962546176604102847379787321239548768271041470995913245319847871231145971936907058202721081180133725284803761516690069675026190865008425130638047027460701083483594472866798054716955020951776580168575512131449958809998469871208005951352787944098879709389267444539721177121076171795897753895983896917774892086576081205729479719416581620026332860843367064309360587789228324296112045866357354226985522990993013761495449040855073060710482762698460826703883384756564426074090789243991571088319979309794872311112603225936317080031173417911585616596924637664030329373266935990385490154234877631518802919773894635284033821353860341956813390128666767098775317229777666770010416995607313581417037101506975337606768539374297973040010898916515411806351046135841137985834712223597478092029833203236294045132714901753655620742045517349053715570413301471053899568770008157839534771807502455562603325157996158029710116334861106579960081996932069588756401961449192977846542573680633472009485995290043427136892824591604508622876603039642910340594010239610822017606328612959457366562342659299165996468371446559133004979630964437848280522122334185462508864477378928814534714321265958999703648315520460898043585267789659173092229895098259677816342313790003996556874062089346986133945836210586803812391977031931239915316500458777678810953096500953867870063425531483303793560830310014139069520929716218694235112533648475585718866963158599850357575810279842101937912485784575344625236174851851246124995871108722674215195623713412909039453792666082259292338498928835982949838497259174503461287676290872620854083252379802301544508002370154708191335040121611956044805862060223615657227883081491354847327629217371624651079296382901934883248130910163242253562755385480744679606162153469057618173680797955647137408415936318226074175551422708670394593360398344116495239719306111137949973147068243920154491861383365936642178986289958323012365307536196982916651191824953629151811798866578490595683185547212393420338747038165762066556848292531934900845810132245378503260704799707528888294461156591715724747160534705151615079314412374835406821435464972951676932936231130574846585814974832762168143228451274775903407192096793402454606983357595537743041165425688031164404812324868478793548123984283928276331187659230321688273167484249829491173549932529090117740910165481266010522744379096863292713634813283287217567265450769949059534444934611885747910033989067019050809666483214853087811549559807378928164892079175512885457622967204872089754949808146376639262355482753533836871934105445475845955879778222726055168851440101555091828950498961131685477640232158170481310060847792788271712292368353905683834883652808037721896516010352151586751307422310263013352126289858523339195196183371462285435444893618216979621749324511655032563313679510914337134578951377742998868926118821688172853238067976701128739889991687163983466888585798517795807437639843846112639988874225602737657721242328130077967209704549664702283987995455571910411901500238950340477473948464891610167124666795051781771073738163208198956182048238117004106723582935704618027750104500258389563841793345866888152224276483699149235062120040175364855703021280572656423001051074007574148624903279089866342502154737627412860344503589416141594530311218505519953826485710574089331573299669057173606714746964302080371253612719338205152265580015319922722705186877212707821290143371184691968625628861352048962064751860041009764051191447449199450601066550992970110438583948823871945669567570240685579834965563482338632660765950281384156778918435426361603776640764530501324477057217104166213875831897789381261839712682027989033171646941708168540428810398734772561737955820230792181117662367776549667434156704446173498790195821639220713613060752843665008794557796984106525635236874076965655752923798628525289042706070001452525336274934643382795933281286600093781132622117002582130870599063356118977892911893836500574701697684860596787425602679612743178289335036826012414373705139325131379664695216373649282626976807447248694588272654019339378679561304910587602090048209493187507800863512399084881031920057030834100064633225448155254600436211040805442610354694421833350669758645841493339954311009075820556015385704052589813259302660759914009740856842497988729726798878278922845273371599447905357478716569441573982072920907872353372238557983032036726696727229235046682364225803670466747617114768411323657513380910150928979425156128554652566941459416863000406383699753727000486503009187726306360884761544523018680547487426405159714039676728845811059131512622936710181513195296734672375514929069055389650519661866104565079292307145838905620067424708550055917739744936687058387989807008059543714265701676363475061307559369856914221408678500685249843633776001598320385781995023255872460689115702837408767970357125709052184955022965647037870990231058752885597773096128742833506225041144671501850631430392144723747654722608368567792424923123845125980792970651911451944186881808589395975787288745491993639910186643150896750031320142490832325178188665747405575539957864520930133139828870734666930884643720466075911489429809260205339452265267847799848642160076361148003387151599599568642999297093839644551459237729048443677201317183182468493016316844350614393054497880427826917507975651630051669039889816004455181016158786235871950252554215264231529453551788704507123202338173679274926345430496670935615441493088926568845017885590050921586263384927241252313004161312863575758998506142955159027564599076121066627226496252126705073398353446814739175058117031634073941525334701999665125770326938492321368262036742584887047719026948389407415049294600856783726754786404126352179072207759223845005397933618154574327559276835568297022438525617659135313857180612327511392396635212585528524044085400713647436595304677779730913097921321833430806831724253488457004079517676511685705836983280950525286141148015022953381198013407994143145239716241555694214766065511861128041418776738706575630989310874160102077403905879086958554245142555882883667679455077071384448884043512478560502224747055620655676128958999424145237317989420385790544918929218007619508739365018470844792063346713845652429460794202123691039016828809677872297985515339261591522048983478614128565386189153985983026917236294201787376421427749805963287581534382043752498663874456337275708947233239478713119823230307302100985472071481872817026999815073449358450710012220189170709276113265504082862692563919999098317197817604071038288271607078463275628313918595558615149685950530777103744606824069714862379305003773141900708054578420168586551777693360482333265444716412563089948145772176827814030728234961806847063379527813694185205782842030965395201904585104710506886230820604004851867840040051450012600832563288574320592400972677273813755663639297598761715864410402678184866397985405694804534887207377369270002738540679561399613702657103608454510188476789501449570026140640161694933611135682451373844053067605649818967781404528203560630596461235114207428681115834379798927333002945000306146825125509528287406549892120300340577739293084132262386220935122394251574910698573156825110657947525855639831640221306256570007238693686590002801940147316362062063242022241488633949255701465261726841598075675987467836107319413312263435304285268556015629878401034545407785359584619289574950165114203421153174450163036355893012068586738938042892044024291521927796404008333755123866488520811464421499254917878774661839181153807301349148121812472027260949345732269470287114175606511482740225135261627941759185277064123377497174657492891450937958870923870558282024420853508771087232602292029392948994123660569759162579800739010087627858910103513872236752497639653990425802305278242665963644843926941334463548655109561316171512979454639525489964959913913817634455822389933902105737799156701668399177835536508052403995553089585157141556292794551455848090212098277036242549605346876851921646902686734672263590149130746029924784017261439798888045003651922603975238881052038016403974248555660582502267027793847461633744015761085261532697945399205212795376383310986889801889438932465849267516672680614966508953998862671744503676343641895433353891672969623334846566555515356277346563193270534453526224288616160249378387192759003517479820865116109732346566740833028282955699587483749385871370810563072848995051204795557448634122205871247659277350791404690892922896666474243755229575975555985655171123705626419292983762719572413919713082039265400354988561356245320553246641363877970021244237415168258687089684909119398657274869237158108947056792605418779271797179696775628933884653772025056748317878565307894082996319294289679519932092357656490244295533799642830508270234641536640100956153193382394296824868055141941661666191679437962460124111138285560726525542990069508784094544953429725901010973706219956011681603172115480531348947856511013655565875747012964514212527339094983443100239465752185680638864581717802479250406672166313440555537207163283920519743670900675005466272188324061127277242424596424470939758819754144792207222600076265797275045491281814748951457188993604752112136305326963885706658608026369729927352586259059298248140792107383684975704953623699079202945494384770919462991753107441977457092046577558284253521305717010958217871613225150020109186363023461759941774774927765750508811168291916820983055016215321234407223283375445727584863278487145515737202118346452006227422114656718306297634149740032043420760069306713526905460259720563945324338966909466534098382369855324902773845455268510118081452565303358630487834007825135463806794745474629532761608983025584518953920803498063046736344995871092409474176876996664014436916523455961629674360898729966184115247009019143358668628551978354375228493092391414069029978677182825343122431761545760134066142697419815901010018750856675681302213906568381890539872656831680933106005199747838327241421211214026816447846738727327257276523824365257574669154418528558948275203436210737594496441074567081388312671826061085041999136630460584823897261954604934702288446235759407081130087405373558836003369402799862493329384120065465661637297039999840403472867709357298808750325976359135678158057691724660792853467487626356512083543525691347472386989708392335144124913113423356504618490041642016178731645720318689441404616016417888773278951508960779202886002209763497075765231146907289141129611363106465042139900830662128522081034646821514096122114116867005051636746836442743243180734138374191782662266015481942332408890028250903613371728400208615248177851928732285933252891501271661851846101126644181478420622800766869770734443153777600943295384945414336548992202592779465200310473848081095989220540335784177461449440735387616939910254959369035719212767453573748712289320797226712728614302274882430393356530704472008030334884706973734846526059456829883018252239641086784074128762068113929899917067121341941763094594203148168904088431130428121606387492430073142958429064341080293774231469411975274619538537072300212608995685854143096507163706268232491633274209083718452875047296329988641962855262063927884853682960238313543262292700979312168355964650716848281007825070446039720275881226951735722772182572634742665810946621854452088686742477858757552957802824107531963169055642058605317427700754175628329756225712243069505331470560957695191552369911555380233580036424477539191190129104841195638730719141991034833829834319049941865626318008297788094133556255285470419695474909370113178415937970579255032546788580089488962947203445745878424173041632063520066391937399778550705632119182446658422522692927757747924454626275659410708954966462781662135811652314704019918377271409145484983828920317322061117388274228836856634292348019363829069260258236542904100757959141038429520948410729956168326389015750254640417975095133894138650138020583169989256012458912047746814074009471834423443054084104416846585119181127967781596176736205329401054377827890106792049210827231757812626769480608620430612110073011363029378400445502278217800614164517166391828879561001876747427062591628504664369626051581813978712148154200569541317189891449396305438495338314409358076284589737289809111100723019376799129189139195770311988476536577623346084108196188451093602551175316410150424086550489989525813467318518771883820900721100605527073426496677434256649735121671638615069551234363701469277812851789010741089422530163794560447368974121663029340637732195760545165919231024239938599586246024409076819928230306396681444911464343446740013687324907324345909419529053647470077594325774528064079855236194433549867461653497081200785994669564192992879378781424663575409123438086360164827847252020965804245216963791458264787607995679769131282291504816630054045576821382520651131935447607879063763147165219807226780453589934542251533274505603276936494544520720390585562295534979174982568564820977555845868566793335799593452868996646445313042368040390831391965703478776966215822740549533676324087604976949281167853229873213545467801173218823040225432197260116978653574310165372090390071943784688022979387900472061964048990023705793223985942428614303836868669792290461185057275152940642134423289455755327220358675297213581122008936775397147268398401067407599618948545385744449850659549501291261482309230288844037120411528254534935663658663418804218619288889577940605940447242205471721830916991323032415956284088823869049005478838644069161274041281162402556757423166498612044190378267046689618930633265597740098877311788538998979682510846384882368825630836999180811847962275999262495901052484199449637897225534308903356106751436175225950645211276535539710451122006330767143258884509850621778890462585215371724904839698788668303378132186415816539804981888012128675878723501083335008496314395299559091241033275986078409904944029958216724486003967546066600776139855312807726280082072940694152284006320768264913120059960996547344623691008148884863355997940036724474029584004759419685302042235503435023286377425972079080789977905424223690894319729805936387053928394280589014350183377562220644181771565776798249460856062174952222606565149722410556856740349066573473234520514444598164765115305389718430936204888109748924964541942225245003202718646878611641259453554367100491191746972006606766960661424031068805710765580090146048068610149453745946264288753456592026989609041663047325625576527791760633711987452416737241372004299431219292736711063795625092539287640392172765632684841786253266093102031029858499789214634787625651491948158675720235925557779554087355887773244004799766652132755456003447053008247489692866205757891700691188225754789928118238598368743969580429929115670224630110133860748030594460290832589356851427853189363840994614630123150306002360007178006229124834939712848623973498058917126317024620705509224540190050694778867293364711316809948358640841364724140261461523531985140732446950536489269561617750822180367895021609102487165504838316794278425107636026277664366109525071624219871053850424394479994248339875852228524435962423430074279626454933328742102835825904967254954324127667537145614063620005437830634915966088674496289407207611413944256970815014077124016949830594179078795909806433551073977816946877928863167950863773536370495768470871658724833777272247417010045823364904839984243979640699156507372730448683254844450765004992958795545962921018855132821614418722959162567274204767286182762570510850069933870854912892474239253720199242311000013238968856654619724026211805187200919419320513018374259679067220872958047790430148036544801783867752706128314968409252293007675383974525735597557864429143230364285645876177716875854272147797540603730983799755858837955178917094757831400423889058109744082026315068087563591143593119965771621870368300151513238857393838509723110661033904563045967529181770229554446261778256792533111720265767898784184132600147194128736043774397389509083398778998266779038277610361304019454106035056039735438730792633444137073946388941301816942089609720322881612048720028276019510335184406612451126399387218509934271161544613020506353725714020641605928464180434512559206175109002972312810954715154973207316581615992817397709024519666315526729257057203744932608635820240802263646155105398815957694410130724850121989109567012804578125850597281929560059047453972627966058556566442660501395598648963105543510107454356403253516352427414302806903929888098541575487375114767584951061585875102146766426876355845499831028622322216061177823093248162856134154224964832608275100781590741792616493837071575502131606192857560532733181914166796630057285465000481518992971250829834386852869338597705408203242039530463303712896702874772839099468420993161557117371930807485371785258253307896808457327939958116930040966824210997776188803793961145537934883249874460810694220112513846447156610811523891715687474219508319716609533862778584105141460173672446122748814353629120008244006576814712834143171941892966078859390587704788254421196486844595435333802681960879493071510269961366552283569328197525229811675229644800998105776681291834946361991831798031769172489359214066702395046460175540468437530757818668445432086203950255075114669238465393794134696482066668828503560039829215677378260542398183569417031386529061489315545794711764710149019640406231303659408373931098526513597333511802117907529869007013678147050732076479294462998586618786595645623682787786317025574542775150526561018405185214913217517502374855230233694776269915969673259725401815344331994271743264616323767251896282047911941339534923274968888592410573530103979794453373376245233125166991067438932536730584258453302625942309220504582729247979536911474467645354278312831398276703894337889611915568782535258354122500595368024981075785396019884648744328244496979867368386346840342682166498100014351835920251408771470214551099816956561038455037793248389079874054641345693046217329863829427301163602899954758294149737269313419627911368267320829081376047095349498807334713397828047852578787806153975687485414188892147455239868493268207235108663030373631783388659925992041185042507474170146568480162097393483507063912009970981286947748356221984948269089776302704748567439380930323082618014175254479751976399360980278915183429770849282074711617326871949852372192600977518560842041703135761397552704628465699288185038889087374825919560783361195621384471612734164957412247494621395496603441627796320108904163741216564217153568292742287288986612808083170365854417742961285478358144347399191863292288117007262415482228215886106871854510149580492754951373440123269945029524503477807021635192178459261194884072638052386112962700111314581724708575847584541144134403807492660286278873314386258910905053224932666122614541240636309042907453583641488310708156400785535166469688772290216641566888522465173472772039666511328782296616444855770217240368940348126290079416337837373793779269754127383995795162359897976739198189179753021665062314883307772455605827061643644192162786300446967242288041478097473444384000131233251740398624213331727164661337250240497276216129602612838988908922750032271554270463480985761791545544769569899995090535392735516963128185353597815227143794274010743195994154982877925327208106330744749345945705158740355878524723223820097047542930777288258192549742766623528592040191959870414095635236947632937759506241657305375240162383517429595649069835785969834651550858725617823037110317214327327998856941437076541874938678219560907468572484576757124846820655051125494199505939744503017091564834900204673069046512067198754055532270042902738002436715877980141466278609478225905829232741718321442784549214588132227775108419559538179180559267801587090808272707706598429412059065400401282558041481423873923150845329595360220675752940781105485459205710149462228448131046411567570018823265098186269479382849369110118823293649909694132270486153682428993751323752492564088106324338246148541168693808961535322829117796482303959396907181175744321870069123594150802670422073959160446421666105400830633703776592657426127343560318630446056467190489376959422668658739653845593064140260158283301371699382996771353777339927165837953022946524409723655167129168173697106746297199962753991168483727324758819197067608624679592041508265089079009359560569667529888634188136505551576474222517495582514087989628015360328262683477899403554349934250078171782975477767966023848929583490226192840751638208011266964239135729170937954635465661749272570952796389045001937774858023937848715378559391249575335660802999958412874021527608712788016333761215194353028118098757061530865914799549287012055833791572528379359713953150394165747896240363553956115428270766733749088505857973221526878515137138862246608842146859626716072587508041618853767537192047825541761049851361071707508503753195535435982127702301672986464477411797387677846643787936216642856871667813871614192499855229076190234107933724832383443684185230762467900461699026845148411074757332413086237733243982569221293164451176277711772364831364479929734164185706275022667219083501773963011883169746601178699971113263862034760601249451236458862235564342798945762548752774286279594237988645466068154301522379806109368946911590445349377475603216049601628798730876261749757243883754467488517085157851725899117887802088327243208701114678322962450148016097904769847838773434491095971468856699537049249870114609899517577250267197343130465262053595205573957910963626711884075193996688610977597259992033855549835321502199170378053791790103075205479212731130390523583651433365654709305123432980984635079365212084426183029164571047291492643458564166559841574650547881311956358724123786112180357760054053188066262603116901853857078667544701094315648348489051964800900906469716757949648298097464913658295371079513648640546982409261623769167284594258113832740363619025390306474981961992354676717142456690346972291467520139891329283704378076605287620813008602822097034250697422087257430608258690275724477557157651387886050125746536789230785101897682313385207764246167980440562426839566812792552001254325451821711522856490690694787017382811706119464134467384356812710575326395822453197427621576910547933457940377368194380411774954106826688042352915613960631621154076549526073585056023732957020652282934891984251735910817340044250934046770690017539598458976930824030214993799839932158667060034056291399486786625221808330226444011419527170885256841638905670764050016625834372169041165899370872566423855577504446041789312972777045241898799350001168767212199919861588202084156312230462969340212135030537292378485009557053071035062462429916067339644976626983686610933817433900412896137623646420878702221090156764211437202385604798883006456841406277038189040938783038041530972032342414684221640992177517458691089561490914649744627929899388024232545046354396447806859229966569714768584650566423140523340181538515427935604317038701665456536085488973183093468012282307719580962596534302003407706151636445460495329535524755517630053296529692460383827207480158856230374085471338608500491868200704944978745214503089900397402800136570915308749680316505885048613825795051520578247530254389600010907604070027377539908872326288486953462539573700254719436372488358597032679732935033477658930724327045810561243462757678599613176862934727000767086959690497222630279279659146717663117121303732525912945997446793084993440310748844248949324616779658505339813912953678477831415119046396800456906271457579098093234691751614679661321519366358662409548169067463218485697704177865869341240798644767497605034625342874903479600242378050754757767516208033417939485574402128984234004435175003750296589457481239769980800958672754431398122421429588819825706604286303116688306598746797075893672361623726579923925265092638063512971685835728965071165210175424881309725778694031553633842513551883555071895349967534689205637553425604131964178588932865905841264784326220647045735960586910933724505359730368353500232630203491357098085345828756032365954041096755373544100588714340912251910120078062701320923350115403161457835898883936886998338707936116230544406317662362935569533307498482311706928612357123847843741807319730432943153043011577184374307484970948513092918084260672728969918142226804069735081826067626259478211561771202596091914659547898389979435771812563541920615747067651921685081464227952737144852722991012887406986731445485429998482426987831498820883155234643246228382127629909670545589931760469360384806697775284726624559178724234652610135333432054672144490084925419440337928012997378090551597879369693536777219838221302041940111172047074348644211370342583898106690874626125216072515127789294622200763839405355760276947092447199404139534744261781532024642889823311244088786454471516667338830665995808323365874317120599839717156027600442066835412658041719949566464879820360460308154209281877280058956044553160627863698589951775676632610058084548194628055793086569200554032009125167058922051563967402449068729995474613565184018766073788743481001250344730107853138505924687272280798968765502933679703395284944304059605618070813186555075203897733671687132907380193148730100484511950478582686892900273234372802766471917389427598488903274305686326093245896397650241594920525469434346180312704120693375950812562462397165613430522137641204621154056134976118253880505020433242206314972417571834343847692354165972415430229315964902383276853591945322518490466710344025848339683295651844271419154647511173422587725195532982245188424924268680785159428265937684543244681751230804063625103226728274086363515813780245536367237527995297772462490809531716898682767379608289280060810755254838763801855556525549553527450634040059649085413461689965405404894793959251884977045592176348122363159935665863479784622133278175961581609866235004977354659192633697854112469436939750514930297267596420483349679266704429195303531988532659576285319109727605761591675790220614920943646579814543901232747129534841120293051123320346498725284028434294912134484774958139513726499753429427649789835993673504193439749930336653715686451066027949623630642755957200828131149022742836332218470333944033695376989023041382419717458978796089053592881441654467973663974196305427775007655128574062700388353801678944747384921509440519825928208521744915941403676800923770139229968673724189134267333077292532640476170520818271902637392333810203740136925548243985544904150467035313983600556147010755850107567132539560812256268896067544141621259182452436963163310612485296539239796331804480067258553553144451723316024596281511567602379193948565216273572578630258499525925571268601611826157633009458823910959538741850843153663692631044502249754040241212543506416979933123397583517806175849360184747809092504468436567576910996396600354881285890986779205006130476375346920794200024594352224591559530401764492464667728150701400487032392973250466684914079552934291051283268425253480059054679027178617443458111363253069902630492749051018324723651640235715118486357353082608563283344561198728570670380512744139673226651013435735387344017124476798369532999729925654840013956464163041844554160677617005040255507032918114342078003617801221205459387938913329746184441265611116164556383241573344194237145717590046849234192154551119998402128303408807668392989809538062930151853449320093146496525637305277993313175047101018169690414241672865071361640991454455645537838645769354129090730413172526237857026124765649753599304870411085806437146239234078146055669409028660736714616462641616296329281639340808660235531122462901375956028928406757209260165109508432644564149269941235104843753838751346290205133709010070541559013337526863064049654151393895604727856610159227495139898410343755404541855992038126306595807619167606352218195362979644854096625828057499184232203809627722750676943239823890616784501494025197691886983147289029174917804288981900548517598170194389943600247436477149055743903723936601491832409953959826490548502471113504018190456915368270108046192290453392558662847887725775087444701330755742940055868683955481637259777530237115288779512508580625033516553763801796178471974542858557600239724946432448838269419230699102832194470232463519084317115590236126579398941933232850316601508338224802101297975565439939593970793723875480934406609941705035124867732156636280833116121848219493107714676570735816999894548969686181704213913779748383389493263461310540018396066212706233575496261294235377624619202914579713672214085154786578565354531734448901593552700342861406724186487721411796292041298768147947137220128232792712921497832619730821262453126314799392726040837827481760240111478608623668684482235521769387704276453310894641173781250573185540909840334535070213627750969039188397897243422728282185453364485507874885790947461082903048637914016958656356760833968176636985320136280433352618011350789152572105068354592394262849670270626942786160701116647489383943786231902294807529273098191968707563773744988782748066596708434857501348925643225563008865156860190843704784023570869942720450604728212172794669080134729254352961312827514948151730347306826230976234418274358284306445252596678445236874115462206738511079025754933185465167129366496800376119522269067109018223650097328177147474525709978432508821233823989513356485921880936519887875684453342363358656498485149787406473842239033562259673240537035799054207302119952170617683165699308131878752690674060872699346339213803397684568384558732162526592927176129375740188558812085556159812199824964202728106847750558362865141862384212785527746911148628332303432220011379036309972925076021791022363587974083552646831888231957914151870022872921194954687911958291581134976046178522494246901998127565597246319500881161496160999027083575949469504668539395485467596751324605678693379389358994114516856095588105834116330536563976156527504657286349887033807077757451741566930156624447754892686253961600348202556162943432879289942011770087133309710791429838646695194852917109475221689905547409182828801825992953819083596606281290037590900708520392245204026702444371298941624002864257169208186739142759411823267584457089495173651176944499522203940093719724229023540058428254075380205328385738637589695642364796388169194249227714998644573741507931389973374853791651230920579542590659759207373913404518415909737584165401944202695407224098805495166928091636291233925517938135094136783668089742894747174282339645665757204044662086224738573789399868673143099568644219441310568630964434171647729716112853604248237930940493354739511865202259963978568197541729251753748889654578807801363346949964687539583367778716905476573681230132111584897102057578766882529939140715123975196664599553621816350760816780363724340234707126244384017512937553343869159698765150011000332591558083068148720766212320490238374541935404783089752211000660494527129044906587197419678566673324161938559652599460063821482947402181703182742159620524241377117921526194218266848260722432840381234626100279401306213742803137245385016614647594006073516132557472467571197618983568926266346176346909803505606724633551499753310272313709534938026315534422044978626986728833776950217139095155550510697774798128288219201157614916167933887522143127733999322726672354646448967940319124747261195738504848632380275740363569400576729303010432733050953690048522049570926444008898747082734137861774823570459946267348696820846285688604258203888164781563859884297081782931128070414613991526218215358989028922498096978385466176579662573584132657563534336203461910453750796487132616870208815342753238494715713720843339220832698575246828179812838346948018662305094575385841948704706347444822742575848609211284969728028491569966300855097574191727173132196177269637558432378210177311246124114362816556573868847511433055140743066831229311219228236575429051195695088693445543582055758560574665630525400036948538313249592100234361030954668079040919185400610937263414730610900507706483520361269105946485185794914478887717602357901114235172904671938313743640408117411643939530720998113477500601037480685538253418442903063261641762370747773107109081363732900348912037862883948551993643327793123996927563525544332804317112841995693579956782327272309203667361406553394479090113016263948074518594115537548382403515058604796591047005287328469067730761426643159999152027337608302635670234499022248831097430258376751849623541274047589063527963409908695827531482977843500298979705242843403291656359670689762882871858166373660744412501759322821142710277713010277912808216402539898553884282179374441487764960369766458967727074496503617754602753413214736530154059528216803407763194465998245280330515265079924267425047694790447326799766919745617387088858486209134180459078026792802277253608017472980925826650973325475584580876978631748458651134312724726538308429923870451437520486151138521211646954452828719224285350891740852875794617188746611413311084362287895498840830490712444417258165886653850282007086198964830794900101145403085130228111756598563233236092007166500612314184729038646220766215124690657614006175434378474374114592454081199760890518108016413575979801105681854547537212449850652816408838646429513505131895721224655028031372621730766764751485332296794109267390824391769181479667971787355474201134235798345794164460453638633803631345927145709712110253978055054180083439046379095672787427308447755100233397975265321292748408684764742286791638155793004915759110081093346770832562767564700234832983953653969304016183923663604722434694328608925284814250123299881998782040420305666137493946076134929491803263243182554799095353950266569834666558064134384908132413911943446445276808481437665635910861210146639672012541321130091456275777544183382187597058217340124343293057121674584589271313678300851017267620241034886657471579392210758338313558171159873354112862852469613215239816379294113763343374438135261356366531955323638270304708454134406909902947218627009914811196185193993218282761972318734653439280548461733177627352994290429671670576798866260497691099944045535009200903275987877802322654436497840948405420273577088043548059684155367006725415504699087300391545651087811645909490117970955755983025624333948471947707666208938777139767509850092516409771290313254956482619422208583297953963570323760586511733330949493156756760927084143359108641583248664383100219251143064358630319140250958848366638738579934604102115301910110923788279082082051369354687654445715935839010032623587063996754483412265746135462452590824658505701720950016121524944709595690080657592300642967064052280633915057649135727598314638801086086972030373529410403180695383295109887897477642625513444757583540079085524394028145806346494668920409661815934786961242570344725593793444454410487566727421434007491386288464499698766024639562379717921374245221014606905623940921450659607198435758737067709838572091875287682194100334986394839744096668504108646939394063245389419688932267697644656562141303363394991980806766693531274708832927155899468656433153506799476390871560088685851869568400956552432813988408780490836646940201847367646630073417016369563671588713006368810024321519721757210311094116937857169920468796235618144174892309326711894999433868845404182679406863002700949009913226798291141405832703134433849568518316659485007505870457508622004613855970167716820012650802722282055373724641320887615696681486291018115424288475732872133933091808415500709209797850478420556648069915153729613873155230938406036001041787203815748398994000132209223854844017907092692201093297183850042907122733791913297097784835675977477390994477628544506632248963532324976999536167680514820758910394611370786283426907698949658481601318579663773001349410272882635927880189781844920708921180931771437291000409765238370626229050961996173267198647789402699072904335617172931432920142748972224771338456623127359383675464239296218258802147430413278480398425759736246786911911158491983643741821050899201066382496490956110289269077739276149366183418269904204548922317996784963085704059251941206130479828399351774211859581770966965035830291368215544563939912577117840583425618540318952273987003616809739087793813496879380293384320426269496846832186599506924550332408196520608544139884519959202081890896031245381850402458064751722311057229658023766173730660418664585210415656475069050780424554229262589685390082891460467562306663712780813765203958636185954983421639025782471829178444973775199547192103638833778933852313699034244547991358136087608278572809793875217355041079581078767912693866374768596242023567336524361375835955876118903587560784091989543373606039596399312410581082310600752280257778965848773769788513970969262093875262464096870377268967168190918625569403933122476261082999530320529812019476328463775312621925364791010230281561681814598839373830389647099315786713405575678423114336853197853812035441813753003982680700201640351325071245238851414327376618889495924735389598134239628544370229556278574912051758073590168690487874227117279551636705563414043567027606491240026044983170528650908476623169120046214301088964276260931799407396904722035770222005982374294737831179768432174922590911063449013076975195824005532288691316340864852890747062555660882864893006461748030430739264891080346100726876292272670534050474172525079439582674270127960828000158283674615876936141839567939973942089011960076119128345740354824730970540536346315295881373237516159870316633465592087152882305925049472809310444302346865543185507170606010959423158429540037242053716309505289136678012017348398286442283837194783672227626380232143622145465785267647587975612915914097635617679267371142664342401094404821945746889771206962790470767135610339855834669541965182464717440868050656534032648546160721469260194478891006246581568417952135874530738131919067403215271794748398148188965114194704080341808532867707189203131594538106705578528671288157510481444210461945790958259596448962902617055773042251743924811889833678144912176885293082233816666587502675926566381415926357890037097276927248077932160319809029699145301212609083899808182816176955073021274689748014934339598501669547774436893033021385991470026673572129557588964875327089666593785463451236251395104807851393300103531406743665711387144682734950643881110660503953910151142505489931482914960055088946023998803430196314595946947689104338835546214775555171894791940234372098249945395317678508217510326602633057242792659933451117111913350084013061275537807681399280437620393041320667124383197890508202107649208168516073194730904617470528774844382005577167457903036804962903357441786899757588577104473941247080467232226343451900532674110848963619895811151608558499166134155305722250440367055272041496686372596100007521734880907803605842802852412265806501342251263833700003341318227036122545732372858374811433849362823493057511161640996244101950626602826565132087922147493736683296991957738697056512539856213004981705138047836653910134214822235548023892008966435249681114698575410032938507990039060972703531040228669013582575341251299742011322710984531433119500015576551999859559439008365251851653775117168803040878866167754892696014719127673868976965396387736266057544049068260696202176419976494739805531544050868263150077963928952417236330353878161023190702715241914850142874382712456351447858867257305710467626380393645311615235347068329751133010670399238743086115606980893772338549941305273350401743708178096543854017008369566971983172571962898165275481121157722772118285673833383784576206193532847488575613457289017821121968154799585308532428314181036110484503703171117987181575348325502464543119280504869151988585299635747522035643249346474635201779262947425060248377147634623326718644593967316112663050835012054749804334643812952297793753848294205035868821569548774902298914133274966703145693387568159111739032089646977713206068319880316072771230973499854160355543229528706238150453679475212814681167156276670971903066902042079768880255867748845877069908921530003519183800619942794245431463081105360072150381104616115713364829181312586659793217584343293775575273330758354117216969307972293461773974915584367289275229392717048348462439843866766185527830247036684775398088826054814660618108787057477010392681766044950435592395104142773722702337118534778358065076429046917435330799549231690080704639071995823027543061854702503911404596220133067833800192224993085617854812669118966431247621385096943895087377710418430398921677878891120788077820701594363393801873494911596298376085370478442141929692769813034350213336723811300199768191109130970858639949685205453320817290708744736278009207406654471026388525087589941352167561978566569188658840727794862948611216200626293079693152204040942775163837441279889618778457358661492702641855747991680043662192742609520363821104585911032197762904989280787257413686043637500686855952852487525380151470484484022902337001846145949315230163106797641391877187556257393448384638259958070630623777078079235478157539339372118214833546503182108768039836014716922672964567770961301023974896615241139897471272257861390582192941480237264489859890635239916121819636761425349311090079628304543097056364603924679998292636330224889543660073550010964328956336942040939652496757445745419310203213411768427918286828867909641019164779169338619752368661148060943499204819904289883204195680900541711991836994840016063918422491890512063143290774356760680282972792158724556318131675025570904210413105618177350145228132615524630469889293066034689307941867951772247189201871213419939394194573890211664015706514189185811948611774941728028252403356208699461065977314265529850538664397959026645642696804475987000315286651642381024405576435735208897813955255610183795473943617086149949400956105525458082111114159374266620800207756210008449187453804966605827661611437865965817422128989826423266972630184479791695436942586686964797773557301216723412328051481544611858699923804954998892169139943736440117968827478068294570275294364718253294240584000908166031748287529351375599717014543507477657452124206794348587636619148144731366990062412465048037898501996129676643402959804488666443879384203539862895050510224850162936583282943803792271171839333373383501811716464171516776781068016701251950058416619858935535062732870021338205819355158494423502198595765676209792793014243810060963990326772229128056454086409995047206700746297091104486940728903448045269824683593305392581679734770381745376357460972094817462832691446249067847115335369566166557973115100023180048729359018242048478473967744730078766745947753908895675279943548534808348947791415884754142418897795675921380518525218071473685097949638512227338492865729206497703783881657431084893177791537653428571234369764084328932212702382453727208239792553798717222849156122619010916975838838011944614610302137694135304842823696515574201432617039399510755579124938198627747147179928833720287975951136106808692447732194963981022650602406476682729391587314772473584313531975403003491927895364902717014647507539556202125569528948569699720867810131411772994932464273792155871123996683850878670547742849870306705549633208988015632110840284566807526740635125407384036967925767382130058538827756132922642269595368014912991564922117185127136795445684248266508192521366695864080658869787644394966983015215902514890338892502464437690017594428428236051149206266880179372063689851699792217786944733293412815950566953415210945962641072908708901896820534985151377588415749777304404214528219456295595446951071251582535564300102403010845743710348902754300671273367201176670862281350919219615477613691884854385065312764250685216031818868835132654726906330948719882204102000447054170308552280282562546804011342385840647350486396961682027831159458467345969441158985793317099615911891347692090332560319160672027964695838326880674659880250626778455305337204679056956367844892312271833655373807575508118444268950801441049357244783511089442061930583879274027666387499547100359898937999209887839563747851756220286325319077888111036272796257746149140440215021458569338005424470458493549974210883587807580506943924978020087839579859185644693547474231370579697556636173541364635519290694246788687484236540084645666590133985921772106861755573130389712120915820353375127171519056844958906693008319855880266507836788190415970589432086418659913855792358628058791624717438968360216396187500242704196017666538214054462651080785804412768788029400535511990787815816035758058635697143043804134840518360378784246935286432948567431911158424896684506686301325233555358449646853362554330775447659440570424369056796008218439162676484519877253764957455875861297391676937583855311216697714556744101198566529953291083835287843873450372141521145241486561469246147126416160264666937506571833188604202187326510060572191326815561252020146137796982599268579560102965071136190143146839368043386927990658922083800495034651201225992634803964003795776654732611395874756130408073447758460987826717866745011078420851410612847752603568359658978316512331800104393605199145058921730932372506310657446454508371989944417433592949671006361566749617978673206869000390263692382769575779416308316340670010650966650232381406769283390956893196483190987354420019949405466789826594026704957801402188879391679050604516660541569445384768578381991520333183495119323353930634135674196598381372591274742553152498635449030566848855771289594593969964700871290714968216061557913120676074213440287775793713513686905528566476267136537907327390546084115940051906871802396634072673065800000766227622156270613344576669200123508653474922745072505710347812206462425282833224988606974867266608215161345170383919859241425216005929257369851276019058399663852028189933273499613919292893558045399189154571387334090377086457373670144875609118607323699858150109850718727633663780676781489302107073119022234853916848965266498707395956441577073134385638696925334726974144751311867166062329739012991662291097884279974402905690484175654376326828205509980208120519102621529032664259611548068409699157069204789411747526193631527605361108994632230744770150040905929187678366110675239944940760417909096999640679722932225453674143731322442239954711662155601079435055702622066680549301576306145543864312750265409404170912479509851131450236695940568861715331698596915180943059638501420208554138800566608920407731467642119973442384780931292948082620999267516711553513572649316014146763636672762594319652672615966699497190536178202079284147141626870566062614432875734030339032051156427647154093178223108199843310544181745641524338243905735973264032216236990095991031038493381168793046872804919685916848030337711730411687629423484434944924437063427274476443668081127303803883182601272862459684913571868410071915111148177319610669414031122337563524970974605828226757075988541584092495210912663658580322495798912397924047552331173615995564414310516325083884913890302601660671337468077045194916658524575828984724160522965985001405044141039943968100050376960734225318412955398676015826925201276917548188353404261032863858261980870755131606055027850786985702752005083862481790536280506075494861975979621096250662187030121772857277918030102003179116259284253016668443830211662150673051386515485977794967232844019509937715090061188785844461011318188250876444980032137617511559505353171779848178180511229250883986508089441548818110063627184980712332227432433348753670232086781669332065241589379221231032700108256609538898688165920176578057574358529408779198021320191040053045605464361511255444815470196861519277176555823612905247505546435648090015878572454410468537303978937231481748935605882954844998889130141009973868591423056488335488398904564435032725700886481608407421332066016830059981107258827592897256136378512820093963904326443238360472066466640787978865504322112977900595726106986315471635624129167770893734967733979751495205940095014266664539969887378921210871574410965012352452848586010109467440919796828221816015066019397177945930564120898036705286101955378754761434531358527656979915452874449350114688602636042298125773483164234518761017627063761005198842668327902912668052001419409084823980364761626696041499244685254544369375437681873701453093863806086233699549532138437189514667940234029534271012895288321995430385937728483717073107900632073894820337633774079535653721363095358425156710211917593378848378719463277008683212778071201029990687117039119003255769319769580668565765699931655403259992992271344728882513747644258165401020339082449977006783929100853757010666942455051910190810743559321632113127673749908242210568226135761865500340848355768510945208771355019016347690353582074995908966938293393244431816736226074793115790510645192582582610743432658905639975954278441385079829913488293258494218133728027317625844767143070478409029807155889394435413187495628859578739961569748590457280597571152077402992810505874999573386776221094441081464285888546898260674819444887840426851927519324835683518208470071025462489258542847589022897012091447821144634437089610907814925180230888835072784809569988951558949999518938934849873294297450068983376296923508150513047614472748195675587246716714775422128241595313022236604553356344815695529112009101370489157454207506806891465903760376178308264755064732670962327157900980385158664419090713614996147210367542923463686409531592936750700271300959629662292285160890321229289668650372398439166019861218702892127543267812258441768489142610072262440882550577432437798935994127739848280946467632920978737575982137662554206478634986550081482557167390935380949808443869165439387168572106665184245880084601965678752562185732588937429668296355752353103163646569467348845092367618089357737106825456040594513769257046236029026872596547614908539605602704497562024094586949985794652431524920244850540793938482647070581528527948782427664659388472453408172574436576087085771685563181178584957659580016179629177670323782069607849058431284142395818004776535586838769379684865788725345457466085752225459491685140109069954871356354461420581264802173134108124871053032130441235764949861796705023631626685558755677953337262120596864839840480758329374101540438268367040069960711400525354296477516912487131674566162092614452926870920292874964141193986797429317766230618687931396359752894241774270068176703024542393571210531740272900335259143586265289162688963522143178501495915318702747964007678510339708419313500454447222416590750475349640147780132189416663685069349375624879142251990959605249877382906911058402452850834106170270348528087320770169663511533202321009233812292930699602211958309071432517334267547265592503926070829324805666830177604378170549432516129933987780090431424619612617061389428908438260861696777389255271333522768301888493976959994368484851917819185983725354999630597064405286340610997678131706510438673770664354188263658106547465237784946381503423129578547066907729036126278697455408991381959762157269855560594802659273941419670189177836527192377943254738358519731565681512973945948990140414953471648269012668615690664521264721468021524433573754784743468090825340603853407778282177043430759158251948247377458930401548378589385869841409523933000303627106644232747235927243256860003396630619670247698673548940264867477255798897334277746767015804056053242411455062385457040490475926054851679280775265386085951154994337706212032871031232529463210781916055963164406354900686598373627867567623989241087326241076556208598049761736299065087904888071493128207113035062402353753904410395711162920829836511072678315359094340672453627434685508119758187466624659278948492423228701515333894491853735804864175140983487305385421211011337925156385241446782159425099835904753746303862138954177431337861109336677409046765721820883421357342131429821425234578190108807889856790656478186715118279928696127823326129771419775959649598368013281815377108382765356513434836457359173569283289845372361072589901616961438636887999034986791107369062478138451718727126670185428281555532965902265645872491711394543138918547240322171635751223429089547111267645710863326122043304422891203082715207228101048750640184725435073761450955523568062150002308221324899282050937403427931198022407378370399300798485863100687400433852315666583839010061910928573400967733664695138128135373208022854438468087013728983026723031462992055039537424167890222098595329572673477574181777084638361910567889038367039525212109477026051049150209999655532933686871051238593542970740312169969842689696380880673358071601751250796491101958716662482125085541796028278561857113446054458679507963087091355663928062519232099645725843473365384186021905092504840529692340351970360892530020582798516917324967438541232495178332027014296309271803117139540890323904711261285693957550307681258286570897206678965515272226549792233695648624002618057103102329707800782914308681418187405972618488710314014893199678390505179159269229933108144900648320780994857875607936903459469239900216933250479978434900823872610476661609223328468179541260781099557084173123427836961560201316485804851030692966165108945846785015103017390474889864207939848960977904687250394177800379354331829291481871604897542980499768698905408498600472774516613465392265263488050885278377088312107038065805418457161836085535421050104079025904129691300918043577056939819263928960681878498877139889582731840904722283441907718452386088156298711343315358759494605219124348696328357121857752545405627023272419844149593140268591955693784244280680565406333048305171601804184868599768097614445650793911843429712265509038207927476772443244572617952450049000626720863965622181624491371316935420044514957956122993955805646608914013216306373266284451744928546891586681220541193940645606874363905073382087240046494419806437440207218687440357834248187172589411151622825512638964165089011033330337601788051597083356004956859856601738702703603964251310531038512859564399283686903112864210195294403940360484378881169726976026709742165260010549792665196087942639366798341350279122222694307997247186375592191083108677003073245074403490376214785262621435727654359585301807823142665443739618845797188597442109072807297266496902352030279204498704976268268029078053417623694747592237691584917843397617363994687644963667706069288124493391142896822289255660992251786674071602758975461435113556926977157690535140300278118584747209765040236628854990620507137397557386429055805551189962035881316313407203309151086058941326595736964999380987780282848400886240614369035939448581209673454421370095279919802818889000580392893996281100669343946065797282987614128999268634697311544173889110831129836016515422250836589671276370122292854489682017262879670071971087911421110029922421770770199973271102594423293532207705006263108917037098051090726858880981093446230680274090889604270354375605079864723702325470941605966970159849200890493863164201779996846985237941363986287198154473735108093001634444477742361654649243444048499198315507336243994633022476339753254141566917567370839623960779046844112587724724604994577177166047007127395336403451798339200424245440096891614351670697404035657028234381047402812053644279435331120875991867021764128895145147782643628375681814882580240638159646296558933312146109893636809698937007503327157585952198592080529713252566619492778591448978322113308380966535636255539932576773185071483657386883640226259969457908435197503065722269531006494408547529046476358412355970617100681065018564568747802875120530242851198761881846396878383029454591257600506508812045681753113792583181846363467219128470623987861419551233415805438001218353340382282129249084643310655277151281756323860124830348250893969822599915943936836085798132897076933473250961594795212439714032073943712331366330587054114189158804452087767501746094820955305862514936365593163038928244108874573888756470301631559036482700093022437033995652272267014159918513774883982898654935807972978925096684211045738431070396592206808575202314509001343341508713892588587327039096871772859213130433849790012245822396977464035795541141046785839667088006633994387953294227068490813683835191741930238003333393462928071950328553850434813987102023907530472998830562061476881048021952246007466244666574229489949407990517227373718944657447465045455679909716623578224987303278051581737064873814905394282784128052015832656066157829976352616348429985721929232324150464269862170297728485101353312006885620808276263734953034217902318012575753588314582654900689106839477836903192054091729351523849274534075539232394650561978305513064798590614927319085908160598297439049688221063815850597825584525871137082428792956854556296593696951265563220683653058348645209841250706266095288096897983949595556281946543509324971735147947147908831473761810996981999863135200135234792540162744417373812399078930029590023955315635228076294281705914927277958104107303105648025700471338658125858099009004809267428023146329056604948431786796893275461889394019868669526596801732012801096054675160395950797373271286110224262550442608934133947281450201190678508740121155844530566995192033090908686057895463973759279449935287373097504735594119461169428658902411374553355830417453925686737483724131841177912464533835869455026837719414261342561422834246085879208824652588576621171084821938940272913992258600595437880934635591403646148597705084651072275602718300517606613382227538897588984450615631276665566853757824032332612651428781421691551154711720609364341355361933819095501612889427329161670463014135046627933181014455268843808733918565645329606749336707172493577047564835252064920969127208688469714663049208141672333882505382780577309052353356053646389953651044137905455910857791375879621148244370778565415793446197316553382672460426669008040528860717103644242474222173787391771531140966427842851521020110259783757924183236029423113807568897161332771064126846182790185872192700690974144638401521823242794237979282680747024650364619473381812664471160549636964367380217637147649245032855037124211979849135259222059676980035675531892307931914712652284429935439263640287769288674402852023675026568728361839410444829978552363267695296078178286609556395068655582061295474066032491100445310354495446899764411553792463617844116509438280985965765929087420625247780726570287321266031828191039315274970944763710655493532276948146303931780071199119341162805225171644052777026719960418660689674885683909002262122543071825021803812564488981047911433873134247018709394078539045352527002363536997853175116538991890512690146408424494825644775394167858893883847022144875007194062145795320252258057773184052003481325980187528136935310830191917058118616226899995736023613681758355073599011022592445945317180642015847311080842633037982894609776750331216109263982096422483838039128649553778588679297356121021424571511106257812511581177175734792587524415785708010941840280672031131249295908437461967331734542634562715061430928457514576304759381055072128719557041879258533155609888707706106384823757385227684072161040105162457840820470185155160086574001903655627932159311834772546389291703410780611423889408478503477449074858801355525956368690447262684254886664611850953373328505041162702493857652064640669206281963741451011276204128901714717551982334200010954354800069611118141025583907326026359852111944039554400146300784366248299677435111235144726702381562287527928242151929428965137101600540413658094074867252922079965158291147059766334595130760980405932893295265009227368102360155065133976651170788975628416576182226625632161467301163570531674734998171978739057416355622594869665082296695434303960787151458735558327289522316565311960679489660668563779270464941883730866984993497600653152695683790698601904868493723006022605864824551898376645140440744792812511923256887414827501290872975077934929738428944617453356553220813949776280890755969444604334666806333209329071362082696676586762674630430409956232123955003742229880304044963364899900588299109556994122121831390727181882521497255676008255122513907261308062719812927801788520516813883589224276941263105543997112704432350222495712972923449850208120632480816084503455813737941514136101288585828295818747849691020838911873923308608086211627135837068911752952607208036976933759408150518505592334629269103066565690733434483567348610659508520552850972984792623863302891577727298205287957364955677770875341102103061772133531222402227998609232084686607257611033633090482894911518870763615940568471877682574574852889001394565370266025465217818074531864747100599815313042652177955596988309043083073334474486067309038223114812390588164444397503027693831002455342381159631749255284481173863548864276592352763219269994661635670089422040137302704764349235007547673266030349399483897742682233799324593360926698122706406857825825951004550163770246174951895062628609171884230429482046554812062728542313885377175983031746795297124052956707678881972419280271945694868439233411973755059050161473208055997982598329607622539041730827254169440364193777495139340225373418636075666273870808451364089385890976064357922890315939318058511923960590268890215580819638992465800682809241735675523484663397258402820088109990266993562630934821589562531235798688194470521370083945686746569009677839659724171982233813675645116763619435381218295283235467207904469130934531122429501598365205615724572328004345680147990035500021536800389044951603253851246562212030211494862214806090206333670553413670922143937879904055950299775926732591308461086213188760586991708989594648014417171523539610849207803530964312018623451159415246930517521831719444297405238783040621412781450682366392898566387888696580430711114577409925591630193336029120042530169483260169554416761894050699945046421150598809459883919746264730003464854464944379344463811454950482150744332248470067317172879726213983978056223710735943927677107564659929932655851121888318726963057044641361658665037914547006913843084319761271922412538881710990175533508619782166221670675342303416991065979375858449727400380708969369723763272412986922382902380251338395261176095010156876899186370417195678026413418041357442818309115844680216138090225496449443732014103349771494834845218321156515842252545358584057178654865939596900772732266869556278734718360858245663027778807757920779877279560532003818074510553234345897515081430350345491283687299648360289230382152636033175546782806856504088134965992659137234175560014577257568499476911079266066242781508660717322833642345455907323464897370501309423943834303471465125003327096623751929379772665217977327418611722941488781992280614998976255701143702737285895843873694590553191224649209696256067149721233180923539597266985264580268557859570885497387958990615274378373268243241141243511845383987400089551718976129807016614530156181248469850071866186426460085827002192077468030456878432172678522086300641604051242964216708301637694672644708100150438532369942128640189312234933010743056119413792469409050515659226918242121643173488325066482934442304188290505798067401888374374354099919524787591155415356473631724600569446970204609388820978663674213389018816300591590289655353158080166444303544981206854465943066990727760653100050901156449378616081217520735272377242550576824615678754411250415183943708894041743846183049328675629669767114995254948244763087776654625204435243775734083391658261590742245562034159160215738835653244375674794347767671356652824346629733758030319594273619731918726381799862019753297423846139340668314237439104605474921602192374603248411360511085767550050180282573417072555263075825267938469852974851166118664315707868331364765332214508989806759797992258825943023981612282402784026950950600013687959761959004015005488190621687782202289352704518964395288557206746062249557808347107939514834505390253048861107118722983567071596693029693714959240332266005843264413091055873297449758762890447591389849704462581064138187511182732704935205657303616736578668010358926996098121568438373841067731356832354207865258630868674726864540560546049347928056814195369981310656845107976327912699271074946027947171977273833203203328011147795343297380160921822468505228000057957491455370932452930830267176447413093193001318623718014502556862773853569097648587726282644158014179273264104721693247563335023447997289990258034251678024825345427719924027282465022246576047027577060303087199027664046771362926221667197271963696747391081177279413636268623876192775765464602621687162155390873540043145893227942605264155118853475460506287882026831607469551856186289206966068277655798938111881933633538202032411198347029069866992960895636932618842667385519312703397452978257903509061909026555742565526278963095621638358794689929597340263811303326563811147511985687496062791490007845774165884002142925880230457634545325659542998358738713979424275124986028903832098893871366691619926957274609520814536298218648386240910055689696892314549745569796281280478026291207461576449092248081651140049404397982541678984828642968981250929700464863544318067783002068581453906799718832718035744692605218341784385979407731764150565614429446672438680324140595324845786360967092920429305458147730562118165777667688555429683832546764314685633411599062272070545781715045347516454317955728160024560361979882234288270243210006148287155978435597334980272537120866129764552255309879922358807788203217910985562315028950925816408119379685000337120625192028219425784034898144348767653825777445323825365392971792692938481051310999950799590553328106896352106826640029603941754712650045167509883705515934905517139012283708029431530574007232897359237110900256839106331187115465464077448791837306397573274486422110560361168584452662215796947195091367852411601613083798238560819998604685929850349655597571939350614219096584501952470164263608177849032118721281077826610374286795552187166622383777188237575304127743115023536219284201947450126404242478672769104472067697942274905959672708662585671738120500561889447200559315388557141589408136967905791467425986576225855940486085131677283451288643824667383048503670427137537974045787096254992855022982657942690606600200066240623908820809348501185968618978205295207406687404150812385144785045220662627886666195903208976512896617616999875773319978121138611306819940580605735500993137841804582863137274304346657661791182976692266809363764111582845024786126075117123213574568667784267651158557389722567513386045947794066851574833944219961978386847990692634346139166202857335947311826143566761705529562547894757910530209470373096629918342395430072092972196810239074586845575164928610498465875087624909047803062000704854474492020943252983837679454704388424846302185184231096564195206787865414499052593727441361637482597490127236381278920453603335062197476401459283690164138492893099158273318540600565214590289293955658133976586278359326102406594590696088266221915447074852856368629468597775231224853059767489945566185971373270912332119170656806240172732817763372941522298049685974165841639572514733507623670880417522741822038477895686221747151670561323153421218264394574778399376090056015075639444515045863320074334665405167081279854616331679294584827628352139873155078336976944997356863169570413990493526360818378835989839079612394781474505901655336030857610482674269089879423578894988997753661223233618715309504886784517262685188921087427029965638320029373873940239078998422523347043330723444538294323626330755323034262057207248087174101903200705372924701984981536366114190825619267390247981338645952693448604808245770312063774942376787679492015136781566559224184826878126141717093626099629565641739235402347289671231005831353267052439136115815567246511125283977632056547133552402391546696358116424733890686459862688324027229165278206287601688905351045717012838656382393710900440527161528404957966176047105946804810921321056197055358636458206668653355464799575783195526797476692710100006477881209774683490912582011955185877819398156980463748978241545025276088442148259027500058117498508669722213922313171721080402757488489654226729682732993347745535867494064468644225463204720579958518785047746098420398300350343480342852048818403809527367280181494309190766633938677921037957986172400859703187929284179513293957812569993271938988289835332874158059755485916231343994565839001113768025214984869080667890486719352016612258088997212704760245039194393179802185634179006082698506605538531154357654812643558136693650551112172203698587000184829103291673182527660781431934223307241756344040610990257869335547820942512023990817613184240016785028102725713729213460571191127802816054730283772810483155359119078790449989677859241598691395979763693067638193740488806456688460195319137792473374108813398520465451795157698143957855156081894411010295447360436321502778121060070388988837046896990864849508556209699066340832423410591927103989988944206880083027708378887219732630311902384308392599325076717522665551680991583020054944289038634643282486649203199151747478968021880324276492033973566119754466130086073929229797510832816125777239483543290334935738380947719253566313214693735526650743777133774475617889873621803601960393271360333800179594944009861992868881731268799907781244805087265488842751045731777675921369011998617314505162393243516742235136763403420947688567155731929540295521260786725471286886853572941205040210248804574101554162511007575749470413493788387503893499035755408019502425224315269469324418073613786422211538110312066421241282989299025597132168498485064471058994300671668446407525773967939605505478133743830074707538365420053281203355102663865644720769483380119990303516413428766835587984201972303789865861712940785108648772535404989769824110888014852482028096108698738011286365407654124589720243215943830820857759436034061995632373376798966144030316839317373191195464761417814470621628229143975061369845765527074702934643040438910736216859185203463611939113643472987596337133032870166820181803183080934790327463009548779230122524540762167773108338395690063495759260471939126685453106255604387885501831796592639442419586463197500797696281181853681594203257161651386806255979778757838431355213348834322059147490181070602558490824014625245546831082383129659755965552031135719492964080493965845969924471278167849786492014949925546923954750061905025327028143443071013679182517967890834158320977277253597844112836585642220944395972186907310905354677517843987806828871103097711061973311106317771814297027809753318889288216968637238593974151394596780794334970159710501936339513062354707246024911017698491359654832945419445607064935710912003310394306544495889477413937695202904984614685732965874669592396175132735979594882202557663294565991384754766918640924926184723994588766605447819226657842396511785741335820558515176636113787295206605629602936937303134236576940503642167448144690636476823331114329054222678745900602467448963669758571913196846283009594627056659006978638307639869063782745885548305299767461387124363424446383739426787287479394907568702754817939372799367976841284711789865578937474937639446981260047726540970391346158152421765750535142990172822788696837031480258151297127997019559139456172037342777070889846903118119445274431293867676361432510098427887521289810557477978343097706649289507002086513748134400282571605810411522677167433018344696247483415311670595842160901527745508980071471377685199107950596429763861849025199727194804964326674765528633565405003228183643359477705419226771569591776275367661989461722054984778888060499723185936048730243556221143655901928564166076848399551580225926940101626883811389949091066902014284734423123287393068546182611724044692901042424090898158697290618228017408753670948973916540976924348519222237826043626564921197192444245817921778239193927390030491075715400262787489827992150334192032308625358192382860734665321350805138358463469680769064945078374837799388429189280692492639450066627038334331442304499303799390962042424209246210929958240751491353335250462195892146086589060293586437715308890717526345405037727436761653935063551454612633836359352231497297516828385037276688157330402637759042603777780462461627932345495839180171117088734245943734828839143061903616139785085335143398035494455404796051656320701775948433019901221523865965718354147657644249744997837826543799403356484275576185806398612537253965054953525580054232892351117594695188039739497197896596072286579391241119445643785978883092031140141347845930745808069775985235007947060285201406242497718499926858073108356271339476757011617858876577553043306141434863114453308472280899321634134325764496013347035720663601783329401791288042640435819415476998893851931049265101327790881925224337713079575714776236520776830562058301484295238036955915352527997376594991920717581143200904906181328374349022156474128314829810759870509414307896671096448566442215343690482393119166611161209682020808094898580367666516381943355689554529953512525359229865936267429107526288972197562831787002297264379696720841444423231344910504198231356723056120067395519873984023460437402209670149899349315718335139442611205703434325471548172890754015573478082541373130570361600588289384454738985978111761526611987432364793915942979780356958369242383120105400541068598017172579021905166085237501659150538248390480839750363054015057119312469847934255339630227612008948640342525588488772640763503870829660865463634725172393013700669281171424610154359877673603179655949636628690730438288623002684702044871136467615284211121744211463544273567882680941678024733099482323960283709621178646955620679183583519426724038815507241529803022229201404863342312593536619638058866339226470228647980271813381448640314969110463401304709217034749932878650404094269644844135081243386874246255533872637409973749096874544025553143667653256554804031006629533726862374708232549551801411795834995307683200019194211279395245825285546701550826646021313732250552013216894675699420601961117894980912941890958179050350440009519207044602170606376792360902154651757309723377417031771505862318695067301250436529187804892375571960790222292514052238328706851768914479240733016219051340253622799688212789118088358848392954320738583456648768669192595180584587271690556766716913151132205366190296494874209423083126502888236124752545958804961637234180854205247931196294173995824352333656769716819153357425890682813171227304217573026531152874018814179052748077526116667312731788572408581891539271838206803739373572905661026120568020644851196382341343949436506719976235857646915161625181440889911659226104333029958587719043382120828685123322485331989441565138970141812130788586433875059437229642539791761295769334357507778122179824441618764682207328712224997269566686136361274245773868018781287596905425057988461708698146033197919372479414749970863634422110786599370026141948940565699018835986582411570687867648194450943656676025453439018656487758417832816465713359926731001634259768047392458412216209768929602426716033198849277777353265988133903164323181248619944372417616331280595267588716057849734833308003968054479891752178119021315979849713311099097040703797974493548945901457091944409131926403378152804749267048074441655757644629691807261350242213901544002611275473769050621787333291775142107834150478192577134285146810688128309906732770243601208848870398189417621456084814273347202056906098022477568660332416951325144101540817177476606205485602294076312528943462017942928742471496662904572663813080663118906505585542234307678077561500979833449227362224062410532966717471477534056290501584081757458563075879290075882034213229009916283415488541689384827952584052876888620868337402614774048261096003612197693688503492531261537913226934033488771275989248876147620238986028025460343196002113285066300571504049701324213260054743863965699914652555991272000934295610907724701518853936523497931112882458738375965768919360775163181635537028658297237384700640631874645296390295296521219757336665368685078376485152724635984140297203260291609705111484914266384645985515319582969964960286594017175858937242137978189883729193590705006116137862437766501013324978994198996292365157490827731049817929280049636323294373153353342089917573425322066970290976491915276935555324310460427631123558278866990418623784742525399564638708431981153921175850233287216899178065983147120203179972935158592633546019230360263453815346365206829906001300518339982656687176144606111822666311740214091973956057672662626326489556314306304811001960824451193041859238483705195400197355795672361314461386047528223018763286349612111562940140195589750989131447525453476163429418251326256116820421583078475972587207130830013383040004008927549692747328144157905753636802846156126336162145086565269651703354460378145998682091258460606111283869372365266992291807070749503282534067316923204263317813321725884952894904730125082808354939078672952437151498103199945297222515474538785346097964694781766295260675622578032262534665607033532939387192578695712705043802516951403688564774871724202321190686495709726393258276319887863707865268335393069069424774265722114169036964463100041072498988978574408434421804915404642501264083458297576444901601236253907870395217515584722287019907520273720775979274190174897897172007644881036638927783788543323436144406144313101457914416248260535348131804548508480875355961272191355270372065455416694214633740381363186153073429483766040602019759944602494617683714854648156100091460591024744305276383746882775223268741017703707815560787566142609920888517507802751233397483558799489298856357283758991933158723449415191092634248298390740540768882322993014885466871755643798042331262538456646611041564795891280896028748065543402367369820264819169879567122780997685325045490278066385747909994216263255280501812957936122665963172916445245036605112226572153996793961251429475304750961727028542183866104413427524387042098554989575949443945421669830072841694045661550413773991315665608605161603232010348066626892303799028116426183008780752613452646700151752987890694420274222849494306650105633176271288092671385150040626025893058987734799671501032715267935889664066651122649784897126043937498686128830452122800705162718194988999522092967760860541840081637809068108748120508497892503131598579333020240370907298165503187658099782284971219885006988407068107041441639769018525276161828224920058834735844595871012109045726735307426561774410758488363209933934948381759754076748803528228725970528962651338192660616205838023091648233463351355343246383216229266630339003059984399725358973257968052262583518826306832323669037289177693925374787744401107055355481390373988788754977286242284188025294136398235471436976478317614995577171744121514289053730751440591683278700554803288022821472782764799947044291988587510347050593452672396334655419008357423625693038548270264516323371746168528627627165287996105417786137580701069219366808274264481180996445262173578885077083961913883021311577805764049157398861558674726557561163962490455663593917699930122260214198420868926085291536294816748636820658664121106299217470802959865311851206703359100856248663830566265803713659967202602599452162497093832040693948334138776687632473539734693558453072564543331532003215590252009538223445989946055088334744575494685441055350964235655817124769180340437992160585397668755910350325546782637109799065595949361093001497855806612810658617627235526531934345089118492461788648755292550634526931469908491270365872955747381330887006814413262549773696794704418777870255304087595533098484325489974038999056974014945438527026858275848898412081412281351642871800282681456931516054887805947579032837200006873669505328016390738334864179069472277322564287107725263705871823228356610853936122712804963464037907857324517516096290433060819663369837943348632646010554410067884596871938855365935855456026558043620263539630256191633345746589674601543800145526550253302498507907719695809236956997776442489004329641956078548146562183946893949436556485907724275017132379987619263715168739225483812155137254966953169099463223133074364230121049355613303964768599796447965421626154291146196481264836199018569445682361170954954598293341174951656797871509183222551183497038411550919214033186955009888937593268166252134994780860223584045918154916145409939439963588929811710339077465936279795545873776545167687003893025168689247128414008920411484060092403849063136137646179733411223368076995104293413200981704840192349537622822122226104124343463534444987596570290458804590765384951242259930783483712178417425464238478146932087491179868192415257188548901207697284433420208771822198666762680857431075508008281897336893676673744227286761569517725602924437752388679317506109765238682271529313786978495826203173215971098544672491140718066326269582750425843589030254153798017104967589182460683911383724728321894073762797744837907568127156238769132966575880963846733088791982356861665278824616062700437001623064447983348463125794420465955263727121438771520372817739013960771630259499838099302682782651517188214690298874018173125746528989908202572655994492244595390631578563496943294367429563237414908756526018762040580295614567986349579621754421217401878541826749572541547658096491253796892234319901501026008234885683299052192299081927156180634842695102328039961257815788287413945517593822996844072723075355703740371497873585336123813577398616342509159513606359420141479824141050468215965893497160438072371763599095706334144947698918638586059770263294300750287662258184604386545255090703829597180045865614272947732514731819689116894161131414986356001876104727393345908671602668894703755212556740175444438493521719767995439859526384177374059454719983941243504904827343793738630643721844928990881633859167664222537012986225783415128593003517831828081708695791173896140456623878747886502083563127451068070431049093245442869664974386971972182747522059379107974099667227322182798001049291604702591120243796833172083460903754314735671762978621189416586885976917288390677030194528613652711188770347505097370301416416233634819311366167944910098552346385759427079286939335374785223739968765840573201884524969075796807613799924937159078794813741449053591177345336963605304410514919641668365571333345246742830133684965147422501035240236741079470613279555831207205544216376584960266124967026307959574381365614929186012033044115991576104021132404868955311271047320185989030908827105855922825734099077839611035687216308521220853959180586050498202352745514141654778912366187732786983003088914395012137406010141676989927157586079790089135928259838358433671772827991858023087271998265712412383717668446305310648490355931951407025305393165813329902768114436219866351192471905000369282648747269437926178754150287257145085924813015541647613093063101643775150090886762936745280804839152621949285404711283244047250496345941283696041225645379773509718146993434452167735322103859381451865650761285462747887430001806813137092227222840007026075695812061377813220207511921841916204185457993073520214149913607236445220624299284734082312707824953545384956599933070384894505455579638693233973832099652494846294662290751164885151574340877909218207283577870266113455322438568737985206990378325475303716597488881007240722953319870850196834209006117240146814675035656424722108273978287485768368895784828688246094281293961661930443739057206008195318925158910911016274580519391704012894571529548451144848324532215966741985841825303593730969537412976857077155677483921376079714068776414741713203960305548358559887097754956604961979208729777941545048135712122813716745343243884886636241071276772911502256526068469285756472427400411832791037658376553928263218544339414793401040943914198726833417897513608183154482488739305035483264501990357894182185112521525530163228172655654358193320425886500653895898475506997520725407589570083002320264499986303466731610820833805363388263725549093893169911943825894697214931653733436563865873838666617028702926422455787974309512759606626989441687342464893035406226514413782030943313728002988042902642786003937281528852363558260617407311344552747906274322231125791953542122760073792237759528656026667223565976892299008434621173505978399925033850078793478566416023050680685005347001831573378523899068350688804528918762071798170957232400238743535088477621548773184559046308418031058150449571525316014117404356227995460099059319678517968721444708122232032346939381313858868001018313108194200885924658071789586811079161859921203962687664480597356364539574204852504943480103283644632872336348871288357809995354409546167408718020624227404614668939047824751776831206929547857242614450667410454764637534254032492667217164932654441048279026088309830100015671701208603776541165787271296154961112597207860164543936865387097140758828624279527682237578019968076780499310885914039644066919833041747013614580364074054810196186330837877806716807574227382202989583339672563117256350685890743598410224058264531992515203715853639436444370313237001780751208882401699469062799470744130416388382716646961522457555034145672341237631271319928499364843007039143718018865825094035700415834303385490600626760446568545363471068734592163341402460312650687126811391087492452830264543274263443095453464603525667043399932915890743151744009838792567562970234895587884337922328955377177691949295333273337392915814043343685807654754475547882916734791330325564427157554382060378072979285978673502582797510995870350014424580566780188732620189209414791419885616064213309595459461089137359705823535292010052702128761759437335328517550186692231965844136917729196120479378908960856946620732003718508877156938931101624382044257979276906237885515338489074625504354875120963245492473862638276067279799510072094252387224662315114088118241562723350911711181481121468665789263265655704804414831265765221181825890163725051392506925227105830974807621793006945948340538333258332339247433643716818091370390800933188965057224572448061124308624034357477804323103259071193989564164280595024963610037069324549700529087338912123557288807046713355366240569374301454713129582389422158204147197548577372094699842527850303473140183362229916898350838790844894360156776891997317181335564484268390592642380087406428241242398085651766214032156645249048063133266120198323685088559344570348066166899592604934663555567862677680777090599007573492265692838096054737205638657218647517175482646981031869530883151973036280639209419454920712014893955866367893908447807552498645137698146294815157844615675111514269805608218919717605836814739740509401382769250510258298971253268874919119076738917114121443956983032210480374387473628408141621766964358214745090702964137263318252711029194290448149813508423071556737822235932329118611250899803771994943198774249624968596467800895943562080399997997037117940653573267232080107613083100247159121587436357150055486800144804708136588526375799695251341637139233505628926820197581935281593172211169479604240268453047052152224229021482203471821016642786948664725262211567837270471849070562109635185518878920477489075450691245455696298742735731821477626309474373755194525506770063015610768769742452750211304779030371994628867921008133843451496486585127367118571147505619935742001198709881261679722945510878799254586686191999655094183396788684860503922221119519306153859254891895638008665474432847901209599900157713428380636211467146214536664211799552970345447536808612461544454692252110302356943419470253191497484149528350241855304921345510842055821791060180654003620578899837526138151147157255586545820211632323446590605615129254337416186748242262938613700021434207180457356945210411116632907466292420605917351949697554034742879606504312683600991226012569946132307137040766556175942705825788428463868092274344551767358963607692059889157805658293918710376636874483465914356085248822728946657148914905144176546486502966701753744679260548444787461085676123941386252802972555048539147702836769013332619333547911684132351950133645547446406901784454949331019568667699542794250826997635952857285300017787740235386472777483744876189887792723690324741325837486427889263168176784466541707653392542558352933216641917057849800782419493206124168079590964048124621877797437601375357106401755381584808480915218239682977552191749539947303611716425128839564038141515821459368522632562458809791839810261614960251129753879901347298152386324711632380434343458035429706920934361334419108901737799677062500276353792392486375141712121739542877494247505987570142629400044774888592584195194784930429186818150668144670038906481744822313868863553689948050616174528679170309579178726681465191285445545872770101316394716369782688092681202883615615410208169508738961875708161349071060287991905393386478014170686651076180359805011156566690212336976603455526041331197634486883247124036646425096137754637062545881529970198603741724671128851077957176479665504428781222810537256895515856561423524634152604266166174597597474092657422413796870811100808732266429302701239205088571559940557285271722215828060790968971652106340332401613393509752742842141003314545385971124301371730014852888363184967662279822787183709553110390440078345381915281419784888346059698447664343391543468389359027567431886967867186948276523168644087317829453949727274663960694391711828482776196668743376587361144112629072980505800852957028927804513685568025214076490041758793092745703625694955266274007577045966579576626097294320341912216429035413759655634100793731441514749522975129396355432412704219931800085246468407453633650715759490085569276962019867898082805490510709811916961812902776062501639102178060783180142399905765932764216997832823208712929235212618963310296575370787090902773732549205653004382796422768783002351611903568041587410621838895322843813727110233713703426832991831680540542574204425053802189197105289531575645348048262451958411780997700411464328168600204578752123240098594679469350740965521958423284911310867382962068384790079213887806703330755355755897776625501188524554843203331990636704536918133876670444312899229020716682408615277290237779977869650990466136372879769953301108702083444052727421791959648561507300963415515750369520327236132163095709343313696060702263657483738604241411620916508377620777581803294895711375898781100679266139929080501312163149111750326759441141206541866810718042777991417057463948022345060538534409348958761459027079293235924943393151453001057226714780925404033216841466142411084999908164813706199675100560478658240186884100883619942531213751280095604682675433578582587924364465270019613519034703521982327547353701270529109213718657587288171907867784671022855480589083036569692313329314502090246585518702609818048567289694801106349116202049987088514949040325116741595701459067624086984373816684051162723613970364796870708616412292272482040326120210634905855383927570004584946185841052227612476168971941209863198929248038015230675087693315452892221048607085639880585550183706866960941998405126491814002709335291472779773767735022981333291481108217060066483765329078567679374559200240987595406096645851330453035275494456300699450998036415008858697522633897328911411645415567701749004387328161196012066122415123036225516316664583295574076667013836459155939821833958511647198877428349463358922789932336093796781849456042849742432866352023080881196044054598375650693844921054458501254243725396038190791504895711283052319535183357500615701978623837804112842780880478922880135284497086907601233608497291709108438493502718031547561706434131424743509116786557175718882844366939314697025390966331224175059551092729698993756177720729407998908493311714326435375080320911295727325154651181957882106043679738607307126517626876725297760378604400004986874331539337373326100028818431440271214218016041612699147489541915899744364706470539487814142043631840596818162896984444399516040812863681142503717781016045846876756514194509305082121646144902345257393112669816123635301452538901758424480191836559678213744412117128752120685335538941017357805392789589801263487931607082282471422400060458386312622927648002760016060099195218496583464786750758233819052607410416074580167001773123254412143138822846491434735720149980640301133817600340411033240783685962859828586296713386736967361754170155957866272403033854253610783696931683086613951781642950161664732887244310559343200229377046708098350080848320155676619522413713428486480582135014054455653147921872511280474385644436456082092324307727302954966097835470165553771771460345422548960287654976159348080221333667315586873172105167929732802972842541726760557204052126444996839671810767101949559647795858651355131160654082138626832642103328854615422525824316302200770042784828459334283072083449416282943538161423961192769728988252247028542244670890410044846849379363070594968302847062218263732489276363723639502775423474580321537326982488735520060612055952592279887058826031274675492188404653891254217178833465969831363858942104852057107698916340866841219454213024040313203755860074845323729549734851076619615761489842738470028668357429164936711390010528334393444904714274748290075459227038713203324299923863808460081542292748609623779101364200800938834475300588261892744734810271393726965342821338008543819877635692149371601602656770566857354533267077387428749500188416267245810742324277011303778547918282175888167499646614816333568980398608801848929525891103830431577196139165271552544120636459881250238696265231766532867679521204841258329496581139328969963797120056747672390616171031024021122130450616284914388550364394507998065991466617689409361402560511613790172201519036238772201988051431916150003171447826170274513583258299857416981574268179047132778249739958758626461008696347272607183980734122992438061062809169802825020096665037522916481614155083584605462863687357803682494815121124912424789258457955520523759377909578548403721789874548427342884154538684151312898374565565839690796474530598415589903782422050702058780898552707698364872918533961398209736004929107068884354108923168480312114183493006355591563378299143941067844008406477280549084905462500917973721221412806607956894209958800735702911992949821472877005150251621919645910046590509685446794830069507115900503724149931744931651453831536816720359721613607341813337865659161851363586655396095613256807620489762485513808971612432419195237219267781187202840400040392825207274705260162740251185697168448863276098444231559691043505794486890379577411991148647854738498519715055088084780886596334540179546054531513249392554007842633117790367536135448460553666876084836348529401060196491669469999914939027042017546260376018139106199566007095073904182070744978880200625792925392559415329107480670306872615467536445154725001451769839847535801038950172547274882562468867452687787669735431267979634977690823744238133629940547055727701246957859257736338992342117306421603382666685783150344458549127478113285323889769629736319553957243477412961963014471786427277812098318568968772306738069464424629466546012955828379826060809223095996837143103625267995405001140109195101641079636906558923958631759755280732278611143770710138204009591801548214579799112079226663209502256295435200920964864947117430999111111887362671794909999366440962092968564442283296811484051114407110285418521494409999148042341529860015180441076716043988955502584686704159443863530334588816347832282510542957505256327025739063778201312938532839078500930972654721017359509151792909399894354650702939455518437868281556956565197986268634352818854817133105931191115387090475370355909039993362670778509987013805244365350470369372065101161701728061235737322112251282541755170928382727214215019084237205875823354013896072091463878955831520938399348251116269716416490491959343329568082397164628068216357977796616791784195644671464733009708235952786386949032704601623184639241761646778053547338583883681876571845105874055058223625525696807445929289668083634278110038124590775124178189507526097636604585345087750832281983158860824036197483696893617569690639725926141091150414240879093479703692307545861319082865269126320441873147679090494413177702695769917478957443312351834131890864217370061149857818476080404057284946648426062843157567262283056163711893325079693885132635285030458258721826851963882143417535417835070464072526381719741144793825591650937168742227048455353883685499167114046161624167352420729670525569455690676942050720006672566392121799774247145774437554877927619480703213691906629573000445558342352272899125800548760733800614092683369399280423659371571075838007105811767982096003084913589096131175696722622520484761528863725390964718632853837484054993249118682156853374027792148813081434893373499176493820039763108509640836485786451733131533882405499980508252358412272214195316576540387050120485620776451941553082991280189633906713787735061275491972184107341977326668171058005064677829855317018435015645525141273433276905701486901997862336343222322798304764073634506844739771959749247960394972448363696397725723710124020928234718825887354167507187947034074279690853213685574217115610014626633742828838607262180070092533823065709374718220696810763384650924663430884096584415667305539935601811783893486756220217162999662930516616468879170371185138378898938149667809803269076685833754975475075313047727237721861814007777774392366191831726523186369436978072246877127031783908835676931766544539855739093747941182318738655727178185477191290519935416478865623348643038438351723973841790954263005579378451157181913572370242783751303507465352357176883518763619813382289633364216374427790702182525165837685951238671647658426520895155762709393081556435405425501543238122979091514450257428478712282709848189013599855809630579636939869815404397132660230723732493463481817072462196082811987083974190278593016303945381034758998223790400329842463889384550622400324089216219219802056969018405543146687710898177114142973263628644644591633011902503990186085269489341912125671929521855450738949501185181766545805689453555579745697910727149901572722371634991754287160419959236140089725836237205328026522497367169004881839934685561350595390038757826161403128668517985997017859532361428646633626486736862586839024497379688622897099687271021658383610772175572224366434979615431770741273627388100346658462077120012979549095253236403165644036414626172605500233422653270004628650338687117767888339590174889030933010377420678409610459022241791168409668656544519575681165862189666472882827263722608115076778010905190714983791082781324546936494713010662080846042319087193132628697552752072251372314780771812705566512151363272476764414157176078653563928661273327768037982850780044238688547398689600174431391066829482248190311315010401103768962517331125589964610037602982715850149618696312171356391017240852790845330991857691709106629433810853664981363921394165206549307554838155884923086146621444084135415595689477613235814425884928234178923939415239269252945096149610118739822411888216763045892917866529946851419489648651625543818490068963334258239813966414988171721751833313449403327437178635376737653115061739512345974040594704714573502252741783346353215071462249258727140457796585261605667881216734659128183737171171937770856060627975457700144438838372139185197219846085010566101825762459952114621708889703307444990289800805477995839738050831988747232824745452670159211380707768142149910526381306880630002128570695275195593471349705814292865381344561740053345500438853637538654948505120714775096215157820088618659268956366741244153639331142595452654964049552177548793245509263433639052948853189104170824319521461311462726507403710832668467950499773152275119002982640678136213539513574166220358141117820051377188829707884481023900090913588000289718070869599851518311715822623536959120167627301774116599572821840700596966481669085967369692076780911446475197111758758625633232639295493668008856659834059369947839065220672851545257020802933794877135414256543375111267181774875438935304417112617038975712733471228259242666764652379932785328811508653210097122521171291885202616710245107439774079755417703187590303598682421323142764453164953770949416069968197123032087408287041929798494864381232213874801707328044878232689152061519558580126454950933762035341039311766387843283761200599395882988963526951110344215025070302612924328186247359624816200027380160952528860308668188707157740895665167671334065182863682861263450044356943377140817424464606301293773236313714409398223641692846358389039503762832735402951987693528742149559321272764764028710234837218301397389289607362068492612893060728720202985837857805574152587997346621037143541096012728731479085886185251763785663666270025011742995402190323997473715977088317087693646963633248622086423703799598693691811601068131572431944128432128133022770237065993355004221391953888769723390446678366181556469743496193004941944080403149359424998430753474402269684484754762902968384678912839003310987955200864018615557567262230711531376117153400089672036695301846730825322168713727705662084726505934179484797446606001231831628281930004109111536695168276119768841038052504488117475646275855175059290469136766121051292158689217325303327386190676506417935055526056669887512911145482933939398736244185473204006571253293296188164299440924418716839564919368321421100421582098823769017674392717739687273465457366531397359694627415004701731075163086287777739706047216446207911228240854976568106906298651619273603178239805062038412921263837446217395005015217498419747054744209602846609702323363802361438328324391989870957975989912060381161824408413599238878847731101388438260298277887489900857577535114968448982757748961077776412209043179634329102156445847950063060626491469932660229139653782659863633188376331279544238047532578558533897231373083836649094924678023218141860399739257894907098971703492247374353751379770115880749608656273643449411786018223068399031071537916493351653213729972104523116168198442007174990785510059582778174888658549836703844173611950828602345638144104701844299933865071952373190701576177636797108251310591899610806354875650033845325111880604643330908917533999414758669002284726700911017635986715710446938938948532261338768576114286378809296894354919932843601974183639591712602900914529882015271480473431432063215143262572696009767545404063629263423922854168032575026868299498086324083071891139939461059486394345202950176446696146420300178298616409315419160349913941703885061728582106421577313746138621678013763739101044749026027517510673518273504132752605654322175950273411202996962940622117649776941853023772797491464653801366433182456447904596811614242685536312870767562623899670485026853178880346414507131225709691237041704233613639994633070121960353874128569502666685204361786338089883201944126669847940026803093822758939560206197444877861465335129048162968260223429254376213602181280694224895220015565117036967875035704659659872586863214521919902067037574961709936254344207562804858705183704460387994322546308000683761574522575934937683139286724462859184325556333783683475206204276680735088740596633254126106508650722399867161734369790636524887947531275024130669377787044387925106956179537483895314454594685732159658206659439228067247771681480683250764775940257864678035822546830676984294725231952815277659814304360810100592065403633371681030868880736843336650477855948418484213170698017565873757820290884077718841401889087996907258306535607524144530708159103453154368055689546825042815974996496275321117543059258809469000328623710641272714448816203097131603519335234894145980105380627329457738236056016732942934120398895308697612149100963534918713683887571560595057941828609426133114628278566673956199706446612464495897987588061504895693313131010049432055939568074695528482878276880311194562029187301284072196023096720669944467050918322707389858379104244585393780914282510545824608928397886864622977671771194776332922060137368041623294995914765716401782593873576482175428849785078144970264248608407008036868831254712788401359773189441012372665537037316344333384600410307204910998438313934293317471020155504995582059581166835949289478607499781006171748307101948390904818585756390224342611316036072428891435381535064642584133845157203173939808190047976970149011255813139221325863107591315174636622181565545237109781300971405480722318266886009063352189595595395654761655965123385090320989753846980735803715408756613730603875716473931086260982062318789932376194908146674549759786139789917350803428505498609033062436020527582120027216348471457444778356627399581944263563514228228866692583830146861268763843088380035775563505403530070411874710439402680750510487650103337395912233074307018003542708072602940639622273098468028327913908660612999916199627332770239436146930111125041672218687824033163433330453024697919620852701107868250973932301644392271945406588274396180214516448109636959201942910969041874012872035829540168574430977143270337391692487236224830387409742717706990939425033635212152952848349518301116335787964617990393201421016687084524047355103256639359888002817687797053083228752565152924848564787428390330829881815131701470495386773185205373475151952112498331582984041577415736188347063856059766508148150086763955237344583731764190575452053386827019414436864990793388110425037997722960982097191667273403973125906903155834007909413395114179855210945762050204570165339624239798496873379537565465027248025673865321249336419317811891252237723860174832253131291668734877748376784503335007139090330632386500271590961680694903406339268295493112551832202345264046100177707464558752341605870846406941176851561272878192368487993946356822832909462465909280521475162875677591223320672923792688728143542246916888603436399947130897612851136680025919319664332476019809231409976422422514125984700862408771057629433736551906662473832568335666864094037682425284014443583329059733623605645281270739871038163323217267082700702201451439441919623002000099079795596620908440770961213351156613834759637214220934303676269890525615479944691525511204642997879409949079355085401358079957803675429333537572204734799207320333733417675480864729710303635107063479181916411956899237032440165544833816224841981473263394333472975108086207703048346643132042451768767386196677872122983887238979679924042667566322611487880025336316971631543843341254890406106976498005120932840375920765381765390862775981076601874040997027680215425855555590800577901221089016738546836346573009124304687811674793041397741694308919512175717880980395378679090611085988591461684359657969263879374153265989104754484566042892333912506047780696683398589889533080181103272521783032019128438823250689354690270727913848920745178190175130168839349951850482565188764253450851118539210723415184487246072424761250188472742091042429848945240452237068181316325721631857770072460168160732521829660734503472694523629733242015172953306492637672414167530885498007188029310335076749055624594508580786427455622190031360614453384452120345472993591067164958527397405576735571603586263697088729182401838113135779440402297563678688760047770617968628425396622754943278475737437888860825376674205545384806073497158074889717275257122848082966052082955296050691914784680288671900250611683716087491401892600978657081135055539758709045566843289728428310306721739458019284480569912845309112440350511503076753845205374465755680338753769232099280895648629158793486265124616222960160711515161519635809157995384293080423550541866337630719473163005981967492454735118395121204602872184579854068228260391948375259852688113982582136697286270764139138631297853872635462326360954785104479134762021627849095695919649575583973052499192942097732388882268831996881848313603764455182724344892770612744925209883897198092221545390921231507673857389916689925884423912516747319595010101037827646397653158159341285152382065465001590455371178114066900135240530905527371845877023879549873260687913724115042676691696183509427117321148557204041947788492294175957189590847873397995920205782945202158642303787053706213651158495081561689821077548319120709834675337493406112838931812698499703226377621485671292213710400108072371628552662596313499833091061448202693139938187935766780649758319346795035630093777705930059444611894683779543927336524550615269953426241423503389292196741417072415868818427584995241077989263614010835207372318045010048441261673297887703733033364278763946007737549372870825492103994737402921683686156570735370907984206812152000649619950708990786863393291593044489185455198750563034845426431156310132456560806134177423263348763380288130655378170236872065120121535192750014778979288054324027990354519274211083017767928809536673005855277305105599714248122339326911717021873640923075538300806544868039989302133027795259099737740194335119259525510063085050171017140350502179914706732419022411937952934909870479513244867240056483432448625123247746372284377327202252036408411167601129180168607682948031068933858967360050115441753459778188876032737541302624158398560465681509888794014360024068406324986861117397959126757264267074983377792443981674205330753353005879098322847415211777940551759147976314717275562817133454113018562863712686038711847879923196195197018945968595506900878014345144949586773282477766677660458338206213113088194686101347955310303622405733847392344348002583771549289295608623110050865535598847397662942380614208591396050876075721120134732653920261860594962639410855946269275241310870552869850579845290066532163801330855142346649829729158662779321799938885979515922414065453045652411772594089375319876995318285861221592952959431498142378324343541365872560455932756816222447082993175972443344230521298613278977934864465910646197418543574387829914926650339516697901615705992211333008377993058262282822576454817878478801867079742082998364168948294664667406448722726903335980627935247233796949220413783985618510658651647937551656264769557351911259178671723243949971483979492105450321941156380240895931324181140707957208447200010816957234755959810145425975096939820441953364175379203990847959149017549637430035847448396237458948935337168035365484482365767567060227105724892473687833232666638335544367178416444212160878311925576798109841024688661817242341222821518554632210077209466134736145594821592775964505042652655340522150579098150964121981276512156630033903516675759833293350731893287626472351917027274954746193066964506421743164634943901227232755954926195469857678024540988223965366652621224028853063436344882957056446051285457255529172856191971290547423948779291409314494700701590575296439321274165929783479779688223102131287285851899366998611408696629922336338930210004402067419416046744061884470546014097753791032619200694297403624618262776758424025663722493008940503991927768394815976901232986751279390828793571483274072715515493109968291677487860685348564910763498842487029925746634347202309223732733037058213713571172816309701519902387393736189399219061118485281577462166324571439089779806669737573163927304820876781332806264681691087850781541578165897385965317892497110975069004223281667360229369296865809152843973142735844536090861199997557082418455078848768341574401725244478173518050001797985963236997234728320745991771203564392688056280257652248250701606828453735921052308127379198303401337137512868603105862190877177392703284092785809868238388066479367515174094560315954971602181240044330976899349181972896233007246988852324742279078158466524737446185608235416782149402724309935901089085271248597801147569940324605313190003651129751127932441985001307363725675089729345568549343191443728005361831292961138235880779549620083702959498379739690379263355153428420470882971785671659709105315124280372282309369907678520209794486211530847923644172208045846039728972908606129101607910898431665061089382308970535155499640190957615383313581880661390564112337021428839023079366273297612526909085487940524146054217475441028162746764703845754975605738718771374044563919269472787755490560294452248631687335070336107485383716738055704328949140068443075419631993593872136959190311181142880104055057713851695851422320494669967570527353847783025811550468616545650226696779022126738158412713117796030863238489566951259634419513841144392478325440002011296403832294997544717347937078797285154502634115706797627293006049516401929089151894568872881168460519644481587954305140678138954531203802701144288848803066994533451042937851699119308451088338133241087954744304546796850965111107571152371597867712284464664024197490742184570011836884893895553682824048420057660199569196742897951493283588952858276871384540851957937154434597603355160224776802475433426316228392221844411047563363332689685699915700918951844207109872702763586926800852798404012485072482637660279773411483560091400808321551106484850117991078558225205255532192526775133094861991885953512170198366738248771583114349033179330751173538190935368210976383661548558903783760773413251042692674963250437560712620301160510579152011141741143891113016811348505698279633495726013777605844831640039289940648820925564439638948062930839470661543159975603121350666518169695078509423585287182279205408314049277846532091310768631379012950141305757225296682824117364665758483359905807205181280244669573936793034878673524138667454849716418264694621661645809484961921027907108168062048883251228026744359914038494304709586833454693961464957357152628766531879793979576511773395959104429548052237722623957282675538571800026345246292150445591586174850355458989057827391996559087976425009336506339469894508019376567602279238788183046618012800842910314234932916465764928759862980757785977067433260885233249789629265929849216850961119774061476475892727068821379453411206912075354316303527471494070749851472304978848646923536835354985784573066949612138594973376484465808773673254155103007512064964456604334813952309123358995129661150097303721928622583553533758403843878562479576740561551844654924634430939724847439378040823218199730926676808681654236298790903938070360341569418234712578636725893395573903529286297482166859571923801422758330043595810113650240723302826942632491611432885131463798019967245338007397010430179654611924884990352163914430989698565518127487471905409201933831257139071460724516330039080416178993988243757927742893025138717696540584495611235493167694467025343316412113467994361603468033127228512580551621819280943377325054477614554908430037489018759950631457059308184889954456100789360602291454635426820649577480809624166901875357579946621498376790246709466600321307523465479932889968144881483090856432906879202624706230013761465582703314278094942185781401145487744467383350650834177834071707678971139386573536443732233463735996671745015529630305924097694141698690414454252307050112358736949090244223637852262106312306676330858785471183816161988219217772388932601453852086385498015041139498338437295554581462219107755244263877827084083537226795164160076838498010676727414554260864027551048820353812346262903427632986927336993324283034668338853585831014626243464350284176707525874694166239079049475054879060047006052338021402862381974384580555154515544976300796747146617092100418205964954005419813375238232696773853444352961967491466147650839975315164565686229861127436905172270849893528473659596307869270200084137479531943573081784738221981821890687635460901820205358946435540273898411197682680234385079229027384433813235100383247476757132547034800551810002537316460144203191488660967861962739776593777769241358446377735578783938860625924943652243359976239739952262653505196880637671098561265381032468301592585146990550993252799137927691045869661400326704786411247146177831363007221293785219853206283424905298316687698886460032261225762041177123081677714546266629907706909691867261610665142509693345621105573022208680908220112502728238621323134491552862980061462153055910608257192680987996779668160967462085239560867773389734050187177457297082443146587761701681393364042287818050792042702520065305936706872007674385615373833283085104280481210376466874163882889789420127267047018099183509778222939053948391342327649633848548001602328427217989392162939473983955226716793641841780019081882972774694587179925139482151662350429102117911787577890191541207146579210141693921294275393679561911569961993114402702958050923189207247459205805457381184395242201338722733380753501044495814856453510176506402595131954748668203736730686130082573216015042839257925028261270747035057319507659820701755530817488190211718494292005172425068045175136232502610633849982947110724330136548155269709414609410868575126122852901230827044725743180480762798783536460301568532152609850393344648936212161738240612775971995683764867167637966960061916072828333589305225306732976676009502695076787782383821317139206495799842158798814213079837311461644695603316156264406362738837925346230846715993978633864542798816629234560068622336707685071379128159515206507675824740134302821355958320805174769392256179034563314633228148543958430704252794808183463550537355066280665173790433785334128908369182601123966981426313104381547403673222116581124286227280534691488623072453488977328505942325250470990025772916577892117655105557388428302736535503659695053740700686122240501176562727116064431301641366658164558731907290106724894580294247782294363160497613675250768976814272648824761957192833207360865980608043264203762389616844567186762168068777810222711633657648096207328548036841467270464245788929663287099269894123773660606687086597264943950697524961699620377887368186500432934192774595922675662650270665940249799621519290088758588594712995655021725396255252845832346345387032396918647593730407957210823044423653719400064714280759767045488324867565743005236144008264875888156490238295184941021958807954517151816819637291566601884249032188737620010247963094063649757259716384159359816605479492676597677818059112303896548551949215245922373740726859380456077845961694275669004868242166699721063393796150259009916901302560533743929170850983488894287393843995967254122174428633463406074158106995396681057604672428327497101055499243313007448428380877601554217147851274648239166834170911254421766253629755348797807001894608785041495072339081422450415683559611841896542994617849974413899184101818127583114893482068877328154467186363402541112849103164408023526039298526414799081581991468061642126544257240364494727996659722808606185972071311745191639910590719678197016124238765169663266320343215323464193744580838540917824155957767596029644220766072340893167596448351223737310788006475245427006600597000726715626345072091159443279913377052142168093477398300501972473035615107400171344560998358200173991534138221626106025558128315578301357690811657199651697911659324262188873478618627638759965165771011777309057450792626366083761388854963437610446885411230263081859502976230967164684961825082364781856508064291310457182830745568495024297725792909862521656502142452686894928506036572669622076651723769418252272507801219048164152205992468075163649792216642054034070021367233908746023225967761210397678457528103852496745492613815005823092949764119800329968508418914612754693702435828636826509438371589718121780431529908028469681630501467596329188452714766389166730172772294396821756769510086451838539054128392615431258007084988957170543440913149659889320710100490022778938882011227930643300942148694229257680161171185982766493019022509959632433686114176047450362628992292718235960765885764207378633189374161114694782166233118764773757875406797080584043766831668325692135476108759109068718251470761662618392017977401782551086258397417090687908852678562494236888548292565143411090005086775306970964968435405271115426892343863641629373816439562340012755386755756344718588939828197530697672568672935791926092028323032170314837803965554945632394389066390778205702111376829138956834054193197361759536134208780893476001339744881037904525160694733690810158330169070139209722634015154068009052877867635009467912592659604750242837190103554390993460376186805642413508268833565679430873071166131955143260062785253376994856600731496532002133042935961712919890499335109662902279931734050722059125751085779078089392694665093407768903060344008878936572770634436120633246455439666917639840898691515147220738797930786825677794043926419914024605815211504999896557882558181893101320661144492952316502454599575558252810659076952892839172925934483451948523561808423947629719227840679432849681954349564098904186447856562011386189619749580931760272866965142830388932959061468250845914773718986525432650547946218893278532090332448735320442124552143659657765026193376201085461531905640442924379132435689179206587088437518538336319855897508935528127119178868521802626257836979922139017453194056689689329336456060989150072534382420231701449235085390487665014070146868468362667913875253417170494877552569001424162134087663801688224907934520726653164141008432513755442509060163151552051033057412842539010386595651665186918277601252249959799795305112809932246961176307440030349295856849277792572273808613094303752498418579153508176244273078111203728587162282191786316826345600439070158429027487922701558123275511777293779709078018421950142560703848016366450532889709715739457645592223933350579746717808725740354188223692059581467007755571308518826657766348662127033614087499084020977292357857627559928191972507989684369139781304987691092447694513784242958085233522668152974987942366006457355289302436180787063618493759086366848292415192088870407561898997481429935670234035462718815943423048433298428737052246622258035898453268231784124943762297001018306680952787811972352006558784944838111710978511470884613646455699668086042162478884623098344384563140988501413107634477566805340299888638912599812963893047170889932940412802998785246555124458372053073620359291786695974345020588668068117556121840177123126545254620057560732530660849183295534108570326515218680961033104913690745731141826020011930538465629060197676503550645147090757012435053355459621355883255559915080193234186752990884424914728920888994725797572746929907802173242854790481045078746531182021532486016334886876851180616260687866200844803253197402310211496418173336015183189410518169838171043263819192405226434124348554831384464622703180398573703960065960683119804485471928275891044575319660286268462908106853178667805812469344375161996533052053063685106732603583488694912930258913745612895297192900093205391279847117756613642034772157785451568700679031270072337503412081071197605852850597842707165630255188520129918667682049364038911545903329633077658233136352895690776470574963435132468432129894113918715203094669638268373123255369634539846260304761119596556322479274501568780820500018715802085878286817592545797666261967626589059519033063528249619857108081001261659209756972748283494099465808258670820263332200546113435374693955651989897808912921314534871700193025639313055577855274611201032775170952928387185159135411964842723081504672576403855252598709192085629054214867746858282547184791537565258961329829888942679394883918673946263449393171804567943217919950782099100886385220291267792080214643370903451709328448075620879111372306960114270262201913940500542163613738435563703873722489193534964086745883378752061408593651051715694041834561300758183225278799225203600612460840537537863619213593107492644199440208580788268489076987759773312305657274253535567202454016295385484045224592958438971286644980794454546963503171601260086256430403566109149805126083746145412163675144827837075351973341496508105130889501890400711280848159115508230314010562101837480739964699676858062575031631005248810704291119437823908985150914583306471137766116251553723298568318931604471070127025818211781061691739467938377471698838377961838363179666896565951601933336693559805700717496212617152847456536711592577664821967241329541679609105413558516834494718496767856201722661378807595515258457429231963550142485073749228631106075769050350568384505582911584205075907991910576266674726660589060971934142130878196884109417256410257768924377918591742598533408076407651650455506272116661827242387063356567826376197129170699501797791158635679582621720088142149031971190792545530915973754791182294318205516752337116877795985709870637667936067756259889306450743080160331264757346875487572358799964230254940758274146277472392053754100231310678268342692692701767112204150021968337971348517942375302600914118433667451952410438786039531298823570609178487264591682995055710357003824498946050852064827899162786632606533284899050646240925131647405889408439107945555309250052851896789285956933813436730360011938809645228001485453315712781574214903904058413700779732443841691100727320150328396504254333521542515264435578278446128057747476836660820271397614302274866167094200445865833223538272855843919306750702418600367953727316730907957562428597845389905137980940803199233449192445972337388007758165412567501534410450578087269477068104779006692749843191681076849263164136724125833085392690025620925598448550551612946035048914875087855935266096898508423562382643410859020826665305299917909814183737544365268439899211370510560262857915104501312423082255679599477229543812687816511916589694151592622510363225347650042356215073303562671855479552730628521901106736255910691204023617563582183113136584894223794664753132313953823084298621707681553299186187399597248227306100903578797524733318048193873817546685863926714305766137711225251345040602277756112119733722137739787710809452015371758615970741332936680666468170333788358352967014802310845098689998831871564805113887766532252731071634955871122330347498137406586828770989484040138457478951754479896448837175953887138511528595345184580091637773254009469752687024759936137924562388271552366109787571453262966301020805613659185653143751438326464511663158852054830055504707811375661805211697494653663700909407607954091459016463467961809660023683532920570638553764070421943034148604374721737465972555323091164811933215165570512962837088536151495436207491050231185261454499686028410839143583672707445442059699008293682296510671421058458038155532672378728044538752672405979014734850740861020004195612529958497946118463979128314333404871841566693472658111029967215622765867592682084793217430244308121434787664987631684574310033031647070431516865365408919983868417970540416636969767612593528905773558947010519138829723678161610937017816312873602192493336880078269833427471394164624685724704667344178840205637889773055208288749818899073124187433730402361452427446717974016459370390631981438477067545153557138434111562410648094913439673306369555996563962056881601959788404265998804109621563332997339674206455440913291405327739338749619143717762657682521683430958882394968889883566645997492989537572325236784430307318783834206088355848824931432675771283910740306866093415652765771135308886932708353938427047497307591961397011475105624038672140900959352849043727846344307395667717749252928841993433745469176493207568171564246798726095452893411508541073030974851361384266597803614566386652310188958787124847977545229503218617031600997561196947334466967843913673782941337267682775966325161928649626348702050756585301155577223566887075496022055702765978292248962853935860032614433741575047873340265097746348150483087766632484982700518160411145458837659856568919440099953702941319981556801644638611753600872071397789523617847144524070053124989939381443726310065365431445453384735761424164672668505276181792710239177523718870002560874908075969764932760658684172851368213047337059497451268907490107519279674064239579750635667417560448773826997634000617385876584756439322833469284164242106385258373463250197857062115169686791594595370358867004417571741542976899759338718310560908937176429422735729410768628024235016294387769369873205251430320417844125114365347628825073621998270984083362661406972518722590579883762743663351364830390691176312762185997941928227871973448388765644368205353950354839796581565696020252572008377988325071259443516719544326266398435432329063215397361757139268782975572842077483974442462148140802684566158917197031382801734083537350499491983704474665061627131668848419980414025606311079084945901094412779681639508741061473496251352588342054580023421342354177286074903986658012352588458779708517543687894848460154762351592801999061460918246225239352809410882088497230922899429145188079237909639722200532912431778526164750157944304548332821130470978912525575802420651415394860762517939354633338448173227904322789989926238197396209430392652621593674895875218141213358093412755302182155301886295237946243659670884940444102895730172131013872761512458201421588908004828297580466542175970163215959505954313671386866195949843140550819260151805573686456430930459896742731232274493058168650343615921529703083516245252213901683395507826308208464137782968573973571973068754936073412871718702516234597214972691784849770998906570479893582341270584857690090827816111074489346578126489762696819647141754854425620650272610016698823395954095692716577676267600647207176451581415747803885755319152789186021951851277119872043909353851971349221712870023807370119640392558147145357920323397952897386334683245069487926352226754793753689896148678655066792477656557978849221095725488533246633100861242365309359504100424258152305828957266604600568707972773664825155263928683579894394868570340974242578390458249078367652805390765892410169832533559273505806800368920870479334737105550663206856377669451283628683343245980106484404631929681403237291237463897614838105521864257275865291532168802153011687189527642650345939805559310404456854909593603731329059113584485479080834020490015133097816728781065115903309384326361630886910539668750070642372831652409917712083981731692665991274444087350571203876116451641432146318893449601296282179258356355460518290140902162929004683768447208573692818930760179473844516065867299004764855002489158450994336287254574209721750294489431844897400514297320729891946741462479670810112462198930511210457929057900605896284649362321180889935157121711220160140743031994595937938869637045396306713333336021681113957560962983879801029261951517296892534674077363787728397960868393017414962115205111367461668610109829680077768812333886963431214504544435609879443848256928912894043489959025526212124919188094960502399334255353709386010238653539271638000143435228152250845003725433366438797366770660793725040194349734887351608007443513900525688827850327674727061794684548116431020030182605345806680971060570602519825820615793075483631526452792146850499051413922111286923287257015309101977563188903770444773984163470336549638801302873868826130284704807415246243038699306885228394332584955757610643165364042315259139725921479256853735834244511791676555253335425654596470692345996707735964337064599257246720226637580985628541265012407482006247299401490508739318352085850126322722909497852364834197207282726315485206184730706891271882395712167688362103379850119551995790228188678569634390315529285612072606208954317943884071348143341934407777335654035976563945224717084084972520628812717590255711859656404890069437459878677160097263236820183575827859222965380650225088929628836593741384930117539388320069432917726342911967649252557142449643467145562658627952124414258320835726422268713858335007907793334705898813166376613374532584733506153921384807821734214475732979707423272962149851505193271504434712782945810132698549760845805832981249565125292424063324848563065784760389294287848115874842971249362733068845357266091080905402465073981005247612407174731619885470645821354313973813318393067556856135292142498894931294499761369136937004550441151677962010604387414538683568809811552420015998289801380192460854337247145447958547777547402827849755162371169533608400879865812146091425968340876840937338607175219579714245175816788800217109623070866913823962487465979346051884659258401159566567271024574596127164071424963163789543627736684652269766410885447885776445417991400582430187618678241642294828867777094357508565753774381650745624387977583031917268766661907560193041396516304364295413617590115953327912206097062745738688102847785141523162292288223624472109381416219397941438009641318282983846167570893016017329059209366957576730977984174599979335413865389597290276699644903586629669119611954022461929630613272230979383914626510798086412688426749301740371764635726355157103057276881703626778329361075008484615704849655010936238931051276911162997706152772662072925683265748374318200022866786780450496577029841733767776784117335862887244236267493122194865646483296153042306552193946380003146370570570319724623712261004597893062540681494226958649335195721604019134120558707337165774935767654104244726967969508275735392639093126623609517247375566995839039819600079027563608606685811639666029297809516693643787952684214586902013288284963062667399537485715697670995552933880982060584184592506083450447034209944946582320835427652364106512531167992881799653377104320564053388677944030859245567729590877520822245377285442378516954626100263573017042682967914608401580950813475304168219279226547937424729787500210127439973906179940858691689780958890978965668411765185138444289667613670260021930766186340655786121000303174658711732456765587143467675436915164397377457153950095715818342978700938853136427290040883180021658018991841398563269883972215413154051178805625841837162434706075721230513547319867199433885797401736150000392477302896377517993161594556895273511202048467291449806941028065140524140545992286455701301508376548912249938991998199750855907088519769258803263651029797504120072495079090741525335129640030762129232771679387179694832274747895584201658727024004322298890303538852343190461887473031405920732271578152513727455037850150640697035734239886219936905098451753337340175335031759778658354055088392455000590781757161239071951004778346993799685443837550407842960627078654950670977704365255643751397523889048078877665579179151667353466073754940182282464671343136901221289378164599255022596231982109082721072807670602007455293476266828688318957610087807989544623760287464587813255282055221093765740709634896838341492730955662375986998807731850482382176523685566706981152294086996487019765110137649275002237921384411507636019341640755590436660161643511771868759326159414524006992973743831823585237794295702221346783865302482003142461220156593273431400821591495776591268674804265092929282793564047200756252521340962967989595605061171993738327253684771797015064380012576583311803329429828463767245744065480628760870419965177970163442621036181030548056908608826615745227809194521721758448219935061202187928469739497457725021718995025518725695870052612623212675818682125629827505280094380656013031442820391040218191649351203378092015724934450374294323896220567321573002900057069055040490603330332191410949011666163905586769064530000618390561491397623468174193862647325678393834594764758367211104632496645620733113617604167615276069431166900607739763976744449076459024978286078652835365712380199382604458799240857297902887417697979213503698752737476142985607209395049227964615857235636787194880661846649276415378022162447904175087496678488813411730637232441974272845539401848308225030569476505787817537538804547870947214547192964553232034396178469257631193471135021889410342454070738584761995271052154364044959373556025204488936497304933533451526983782097169783659285648612771682762668904421202618400163108993622431579335693320954718960606784535624359090938771681890854564357957822215511271230096458207388077575780453737741433480924948784762821068195121063009052014505661601233072867060903773595645024524443443868788240270156143378870178265711926974747697563403428383441976011700548022988781735213038899380886001918559596772566997194445216248151706795886626730185936158145372928949549565935381456505290013450611740529729073656201269391637195415801161381534343411845046049375751273856796512947613752248125641506025212294073836057159238202467526915056108994364814110021457582937321239498073563402943835949395751545050565966637415899556510595905414919673366177236037197553777065529206181588415177435010531090416384564927730610753091893213138209112215210336780158405967385661339243632372117556611231516332405826860230714735683045724063648057436130245950204662528867867312801293203875806555532441420747039630726713605228518263536748600576498812751232618355356012270858132769003543306932607638568998814993729329138505657565165711658885718639928059323654556745142831377494101521148210390453626372458386912143598625582474240537629017531562324976718507006201527593662457502680355673825078166688903840848324249736728566377482065999829517246548865771114936372732562374638447596527864686782364608938533956895048897272578172683162161396083614477244151828754978150682292554177711836926393435267858426060327246613495379272675419352885734467876162567473976190581721439466854350488626290384582667062847299051787900081725747395976191545602984849837147530878046628261897891400006368310734676950121086728735530027872615376045188419231494508260225861119118288449124043405468903068130105965337088946251429477267252549617570826912264710051550275410681755802982052007758362508774205216597724902292056154416225613466425138625565969549279988168351853899667635968731180352396367321733739045350479817889335030047699269515464469869167766243551131990101855993566891927355732918170601715298810046954954992753997750274259746860603498644561593061852033778383416946409769950102359571445534619859311390815945226911572928189709794876628623480419982343270984372447537740496257121389915843602226390271089042853038459297426891886370229957370389985734655357514798069163489453549764122086470892888918629730106485398795991595165887569621926906957955152945851440295972300081519276724044183623954405919270278997553541736262740563755828767170682864312001171287069258993015699271272775419620526585072739182189980785168181730702927119673191522845300919355719643270216004326240709970875416698854331725300117045879640889867250580198862729028235222588362504609617480610821003659110378358069174252672747451484473153229871742938222375636333841501448731495034145845620712492338802909763433668722288642989601990961947307486300126381343306572154544494826725233986157605913938681265528983557217804344419308182638624084902729942103714791920113534015736721640774602009811949008112924911366818663751862485667998009688487760614275258078306889503113437351129866833257242123488995768564897331866042694213873202277307548358503908814924257393245559512325770109383090890184866627115950925838160315950924444783800212936454627160684006319397723594187112254223216945496790980342122215111830777078189941415813679892282899315966832048803745700850120996273043089009749312352740281024003465892569060205411014611229511970275158667903326628466010927467133818159545741517652430660521359336657705699327378232408179915323501319758168780679078756838587281867112127221167142077078016946196954679336529623555010225902963900502539740783225954189685872381145991242743493452869703202302731798428192892022739861913763048150353836368660959517433974978049678073383571091623262811913386918742855063430825191014663442965108383883075042486922194902372548414858674851672077272611395796170899358199408428913612879485420620501851880103274667958666440961726922092467557157500232031867238862677588135828943854844975135828314846526708876321468791749650409166013658576610523395012613344630055134464938715665205536348106396887207311028861754046697306942718927577710527071948844353723272100281453168229427231757856947049851569583100064202692043574747943788532234880217064818118440411743097442357567729718246442915021809386017377306969802340629440010452051098804551650372936172804343328843876658788556458617146350016083191029609590387282697540079582598337104250302961369323073897332075479364195086652911126984867849502176073656020225149773930774594219246567921788076633942375926740092858823267667843471052515011425409958966925656585077809153467919593173835247420355800680154648507772319931083119305227807679844497828432025010959906864108940814922186897297121378075429343059987458762094020882156505393960114541291238276630597425535067667734570863439474839853151619219747848659091205207250652777751962970058531899483972988319542335036655833941039660757996406120461850214496256964590839201413580027793472283709326997863578271947712918787867035438403085727483472847634981616049636785621412285687121271463502988181273582229788599724917008504596497677701892869380572660191408335622113570183088196280903559098345706012444556778330535506197303171308011382703887589257861764187642402867329146706342955657477565253917155502050189358534384271732892301994597820738138610932956550129716427101569376153000512445408015516505734456202430556286112777468306746992330902448509652426911984564463526443118524359827291469490010589985725325557717218255653325180057760638426825514127134153622557393702824576287119109142275620236735047898671823554446332854503262967834444595263093959575090040334447879990923180043317360397241515827770600417794376029092793793401283333431424694030943743952549478539009196296337387694979725463246961601986152681652868835351828244842247263489385880377605023664641718412966737235758945497761396452611876090347290805387024364861122009793173537849390598136267211221755748537201756874634763099407047456775868867699505430483741181915796971012575598922397024392928036663755614000163280957200210674598169461309136286129089862938267609589890953989342036899786073469003763004772774402155426716665434549345905119791326801789512281503019396667364354723183631319778267506256370042370619797467372297444859812885592963219595118091733452112511079852931298086277521958094590921357586897929437010128245514540390678773805716775618751120347600613279357953509381423686309646156010336307395485097151247826409862201876435549994320567315417997265316853053695114556374621097948459048695957869931929129312523949693686263131719842808702693922051993058407317878519232629378653680489711065573434646388800664496958014224676304137735111449085886659262958022778296050116590118260395145633466879642966732785924280263331495638403783248585155526656472646981479718953158322744617540170318357049723244588754440639893641466935395874013929458280996904373453718644472045328173808987157488355691662284458842595303292763275196811034517178562267370677679389059306078964215727431826731735956555548431803881731449561152160934644123377947787062713772759429759123378628896829377088879649242072797234917738975952813843819332749114223321780165964263167268258149020295783485416584415020085992995292019785717003343509108110846074993241359617362158083646914634319504513822538409320491051328386169670167114130122933828992488951370117220839074673161648976678182186510735091615110226072265248093250071433978254519129597169720634425892077639028053272151481736882926490659423430276468058621924218261485533253885892051799714372883597119279273022935254456161296572153398559973936617566590350609077161394224320509644260027230487721624134475429223566446164671413096883757648672075242965878517358087172908024738062216298692543666940913427814236575584896725561822456211883729992754772163839142593248540499198855394338539909317967953758924698488212703830190546118766150141964164343873055890181564465030933569164150131991561296020817170967752251806828477485821466208670673569833212950259883577304917315901857879340947499176064004290344035733036310357717422252363245881972166378351421674276132957021741500857511825277196999162945166345054862211881174616676030147106425524704819953674786862047989834670825418101342619244747910931073645025924970279321171996010987476679053339551597957161086060456128418473754013222154203137999173777918123941169431584967340689728001291368713588599269673673334602842628565442304741427900700987088478923663268986458681642611616504968278273430673092724579376221131020084059708610967587253421919440178671842002213429136585412873477151305668971266838389497412757457131939261417435053626883962621716814703646008174314896427424963765033049619247540751473256155706365356573202219064302198954491639600747335031805450727355131063773806022738285444428650992297623700724035153082588991406981522457219528411673272104003435342161582720380827859690910273734491660303877259993948271525062726156399590224212176953665828114299726168023743708312424748048975519003724822441629997464157679650333474507411961798104403209072355207868437909093393129905814059048924772568982913404288728276479137730372399641747562022804561004308309067431925931114874937816333740101889830379269916701438703337331478877193641221971501183229021864191468463080489325445843069105652864814804495321580570881677966827747013235631636124672638357714400781146782303125757604064717797030555484455003339965499858875673965298516566309027804196407147212205349466012457482313749860111096693847874417184834915181156290709864838915987329186612534195982513009700686921667454106703122923927322794919724445859802059497005022592030490083882533839148810786481788198228279501112269753438625664636599639861650121929235532125110240539000390860529622511128604531598922136556642079389591217331357221880931615675529709865982805031691894790444174093056462169819134586679021048757471948944138017394478747459743798213482541116069491426724223938732972091601725254669331867808599399972766530405096854975687696103083198651707028803427264178995222724702774060312572406662221337559796992759234383468920614405040837948462226855140169480782929091015427166181089569543533420885314011575326733207376464522352080788527532241312168263323242280019351378328803438408317627359646015011167712515581093764786092268522061063777382227440541509904382801970576995915274428966637266645691723443076365162660138129027578245913549459278467963257848669483541438055181839684272852425765993653764143080317773425262696009080790662177294098107282401152387782752888629679420935675622296291622846715355851953631341689239075815131733689376683286520384622121544678434524379446287588254637007238709507430942572980115929113124556115615693918776202993020351256207345624829042052772648844805677508187600910193284865094775167232828143000299998855320380122631914615339848319632066001177449486829525861122977852848720325196148361534420477941460304300467176289979793307365686101478785101960648458905492355058074982231230872905460109788970377325157663248696062156739639804567550457799781288747698842478220178614659874168407965478363432230159953619537563153184846429453654959468253551056267933580493341929486095598669823360781610935722204312971609715053196800898934217639459150217854811590499815906543285109326319318585396175092111587325196735785071633003586230434035017055280209726389913017488547515567203577830722199861157147160470125940421880575526227383466178893892011034416811139317604152838049315795346876975460808265260634559004371382016392222218657809451207654683657188323443866704374119985612410391188798129613865315984233371826593864513814790105757757191587070625725948069930740857959709887589115871168295256614351200452021870102402620733677898305088300097946728093635060580302753765800854351390881040497251830779500078769679999262943700005222320685007381852452570431698837372493293765287187750207200388086020110089343009511329823633277980123203232583729475543410483482803355839757416257507079567980215026818544469811065693626241460034225749738800578302040085372472244030053466048089466005128639684894729959448445204436877553186699834920667932033528205247868229964612014106155876995074684250465144849256232443067031448864237621305760340298051480268753866779169244063270348151287937566661767048573194693326250184689721642847076572606081640726566326434184133348985518038246722519362888798225576252407378908149706715240103041387353680762087056146165960586209729876487450270650593800164222115314848392664221408209321043415313257597131875441590880201078241178726852282766359094512536502136118328039409326668471124791951420442353575686071191449657014894168034115772073976983130275438207724025631463435968997129740290794218804016360791012895043622849927039171408623799054407824865245218349936540589289275614906695816231688760694990615249312721292566916103077108863486895325060331958590478036638464391444203428098344914250342517293143217978528722425866461452087170252650043919008824199218777413142792021455343641430290742647879883470166325456394154400800767371584306786729746647020204444402105820117657455551999029027721490802634767206830643845826565297554771280317672550518242493569006467318640450675618708489277162337233409035881832703696739692639607954780525828852147616370210784677086998181419495776164025415019602164734869783850199629082681476262353075103574806808924962906500414496610503104316122032968957704866082110997334631099947273471505221310813434511013765161118568669555388547842242573650178225040621059206318079670878850917224734530811201213794540166766340127457780508547836167213075154901743909696463966146518044250348295110734104766757287507179450815304648292037306565636632991955702546043537196026147608038457238397361421057919617501013340232877504145268764085745706958997195018413940299693792857688605164930881889908931973203315872731758627433975995977023066558398586173277113255111002279172803619384258378150429731628915904085504907399592270830802591990232276449631642732243962296251289022349796597939471693717338444578831126139019175385179244619592026735157767719154332030824316956232396174102650443792961732698458271644081333710455758152984496163681274601476128943187709255313851338928619730690592817994804376673447013480731789671119088237315180309833780165632260985361843546453903674889625187142865089740525799603522250768248494068566020690752402193352129091843370036037093569318150895660786000180426356211171682136807142242363507907907677402360364277598467565357369798860612489690874517586853010025963952125688955152201436217993074512417887361029028694463646747920763044565365221091746995969792507978128906834670910068785293773172259253243709772300173808653419663110901212937537773677237526169850842182715246855654330996240814655984243102672576169947586069046743682529913304834213623802753532948068567132001848033249759936486397611722295133812039656606725984764641484292375880641910162268690621645584796384835091055108797751060313136573383809581093705980988074455506677528776172760718795319734134062257477066956120718650663276557596102319018622446185846222755425660637035298043153468893831181933276307038830827621140809540016355712304928781329345138238368419328986616604230277374780805927169755058384089885580616892003503209971436321706927130384207252638681735285697525527697088194305458205070524857058136373019142594836237182398601743218911222798016333678550616084167566395839726895052236564035788293891580786106276512844198513482906333798160377767798090691393306890303086698422718611915254366883553741372841818567959275994252040566817016795374587944514970899957477115661465650989921970832859776224733265414040604443279815760797110837175192397802034746511067090850288432069991292984087168025615114129097363691451867685195248249969584909475896078906666628280818406877816101018788862016267284253308685308000101997165340670303290705298261611303812465092998857838671400959129293627138535342321808373286395076532209125083794325136686504788003840065453519430555566702909256619092402587768932425108492449074481980478089301650053535483355300051671711635477981802021556753156829232475344490785027373518446721282244036979994150009918340135453306907051878539473396344405075719014903095621175871955422426059896470748024159746685836125967262226366995300995647717380397051835958689327853529941725874014823526945474131490902336809724236138333371139908839661322626889779049713253938232653280451321340889681759834126681831192764622856156373756160243510344372610208392074263294910194920444390537305925933068296328701814339606990291728347477241802554146388483523463817888912556374207538693058766429021551189792067725956221867413693766582118368837741302042067272609972898193786173434382806771768360027940511899038961857178116923151764392593651798428823448088649476944404435200627830687243421211439578678681948333655791691384383534151865647768506585406347016511209322112616527985006486052001222485307764192484356148017653543404697416877477520147967517999413573211202758376977764677695788044959250211569619963835972967142036132452418099614803553498652632615586777306078918632460441488912381215003720284639246700255992452065864662523616962058948702069917536723268912713527504860025825314753320564392713261960690014296943549440201615361370334426012555314434789554009650673515247477259639249370349585575522630485702577900806972061511969070925264928824833845596786899939653130164615501216695887123617300214679078817133045424637321145888651734657744363358020925828139534702676019153501885673168986333903360098542615355108078712178765810203824330761380758892128901721977316105513654415948735858338530800544928671206918607428325072986784225049215794503533821671212148293171092812491891509130138182597773266420742785439766732159390414433181842341125905980260403854116236441053636457718221790694873276766759753898338803053294468312090781236801444585386545075409610299157869747065188106608989408396360401839103517939230534215981447330192359014957309684910871011709039293182004024452775059366780800375044376483395343000083265647200939358782331990905254664725992786865560002426924395878175533323509774151555691436948879978392310895233331151545437618037615157296761171574814071446020692159616487173176727856605775511736600266741030669766987165671526697608453395827417093215584909013920078014694866780549546860709606214281149031732594637437415524796923362403990030155304867502906552853223980329529413303629884361529191682720705535569907730493565097759216889915718751927896464311138851013159535655474905879480606768227776910469719457296508335525398990831388334053231484165561884496791060303720854339540226929244067780677416213031724304485076351573911361209338556495060600268661438615988510934193349052327492491161722956023264542665205021208086236140474795655844652731659132958890350765636107545624025849943974838210617441388880069682859590071443107007670791284617479128524996236018688450770257727365309765847459132711300906062559323524206268213928664922788619322223524763831845738862889155322532583524514958423216633634681144989994629217862308317705388077800300264371682909792745494137050531188511147813543411578037645634538545973137065207229088690064768828276405713145225402452017555943342964424803754149431245259435382346640842146058248254209461949958307215936317816939999946453578854073574819169390783723600298990560448577778058657854491138659152984269757603578683147016677827978896840850902767674698561353875782406032934643518162997976088359522702554688367017672343876707762715239465441917145406037050822147324133772659955062428663797589536745250028319375334887749342372080211110397052924287184552696719070638774939310294903568328738983184601592888382008113428002331255920148947015592202741499704418420931484912194547546065831848304660426421064014685789779786825919209843962343159614009735406717856521330617523139514056086170415542898162537028464761667207762124201668227824731449279982518592345928461787602790395791391219294042524148276547363666238900269807776980603927559278849686396753225225098679105385350749850290944267989953038434660513311863742228014208443509265723284578534799707021206506623357975555495976434526426954912637245615437393293198643926943259718496891496669445830375523428538574698342377860789070581771673672238647100880968068358118432853817081507456284605832914672746465109003636460655871931116317546620929016275677060791309578580981068272603155075850917833165237277396503987354656899145008829416338856926939683871240400324993057219167823062424369387945793805289003574056678183033434015994431362996671008376764200678997380535431760707599904187297576426699783129289700588213458103684751781912292676243183636869353600730671423754020427366485577802709513903255840746211287375391939997799477261488283713779152180358859788204142386887692571280266606253290028886875520236966138542664030213522663957879711486071597679560910234313596158970126292183788039787578368459250357303239586548538105482017230275969683194908495754177990613197430119117934653249632506038573442288646312432239830864365855683067225567915599214795014551137238367615664360913205852036303014433881406960455930100328109171757521663841777859107341234633883355651700730070163666136301694197450891468090301649500028399256846814755709984936382500944330145361996573313726686150165228291754234136825396672794297980375091420814397703559237562610037867059123863752617146277829167266631046511237341569278491441063903779149413815790193999788845029397216893060759104060074342939764299964110556551275431947906008810130670566971489005786401442645745923832677579682606137544030164373754507005937153289326192621267869036961950576083559774495153123793326665717654535108269561062247907467568512170385624925017118875506058831247780736514896289956050458663988440698218934214051351523230449790400752005768125459456856562856453672515209596992075024877200724620625899258930263605430755188368822234607574896081778511229388281704846031848722163104263733786452573400565541091017291295732395403165997318132096216749454074689069950356839401367801595278232094437395078255330332554825955005670153364887677039602233411721773046546653766915144796444223333341301468645394162186820326301582549394802353220457169154585979038230615708965799746478694377945148448659032203984609633423947069355032022037173899517004093976698136117251828245315400064836527567267082413376553385547958213960917470172816268265409706994776706856737623000277516250724137076931614970197640188342243582725736223124323028623446272207561816308728918877866189175410350575985198341785675113742730239113332380836738989176183487368772891769767533467162414574902385048491564012355516496046170115038489420775983316891532999032432750944827605684569685131002311326723951885561147312749812988220551326667200365130526137687839987651259740395620758652050857422558233851497800911354246365478401643267461457164335624540593923823617165937075521181286418314029620606627860879961885124601227763633777741093341440042304407666610186066853884287825898940058332563810612665599531693230968260082359019866005765804820183029117527170099041476227407842136488628635464477500148334884782405088847516767151537417905010630981392353828058217023412554067013765494857186849323931421647941211893433165297234475598482919403161731020305423170591270514910775290186916319308290746963813981838838959016730278509343418146443286585542494928523599070436201946603778024432569313316073384567513887235348699384193969111625325740846029482586068350054527122177921348284056622139995532009856633705251737194301224689973817306701417604140865955018459355584981373693118868761187938649609658415162057624351965765856084179451390609499177413211674141398316405645055042115303471903278162874036388790208233800774681969160174062367425026106311268383754280585839110287133392442579213458975139428921925430691085781673054017163579976287700800391832410312712524649792066952777414136643030663178131201624385598426592885538292464707854708295974926856128746138962948324238514043216010934438796867384604601000851456763514203181055444977724127066736955112727167597332607284295269669241414784088594508915752956645969030827825168697985634863539698115875291333046536719539265615184737529760723321200444515716525742679720778165555469393598980266829033465820596346660579068112636432025133010564836260939244102792850563753110491539049037894399477269993128292207174247942133567526372358202562927945958988406299787970693747230949593524780755472505749850202403890568003295966615597367411686331284307699648778033354913486391809679154898060270089953175048372586752207718739931059352903050138120229494244893328401233025633439477599141358701864481762179797592533158410601718858833318603916370390771030335881553753784746273674217972051514359045661725328552306441078080118088227742199742755803600766344274506204415233250653968225012609024735210311835683544859483558790531157021342615104498765183318922663208353771699427767143476271642867925978613589637657535791725061040197794574247094193215525583376179700934185807097056860044602955592618958975810333369121468525624441285315276635488658995249856737645024450858026293325918434333921726557316980450427078221561052844905878716150862175357504876271909190471696908037140551125192310433077946648745651637956086761774430124606674564337841439669117900554889694016953200643478957298906697351090585123435307405289010456047510761096025101525128722189082425786523642481911143864675400646071648742706772992603875852185436338461147117541763675922784097404029673901403653234578617428541865728261664490128840414725526624927699097378910455443014328648062934280864276642927651321768094972243972621402379349560227459481925655829440097407527375334293811109736161835512254994295761920904219343583570011061312197544538949472198130505981998030516278928075805574199465796891650224147207291702958524634278730088744789174274260177408853116617517875573556296395564358710572849566297604695191111362149921978018115656255670463723417475115051322336263579153918465923837140090783886490750958456483656698538791808497347157260418655216266754431666838389621489437471757089104774953191004562630203063748314933716319117947910347843382327198922423964211361513640889416663746547701553952861577532407858588971783299650777798091237921424049192513630827768379811623916973034160281429514585870961925624122756202955565151898418219404604366307855846684390083136279461939352120937233667535905460362081072145452552087713637515603654872111324458608362256975784769139111520028018736257656692668454705259696468479725186051716515565048759753358404386408894246823671426171912085133455842254251681969003238663770901734936051395373275025267943826584938443375661721157118390320083171807160994897019444742079738850190356729824363390930115261186178512589502379607958962682338472699841766795084348373149875964695306027926267038863013006564157926518438418444570288395333400597122836864898226806344819744650098384654620081296783704911978121406650168278845409803789565834513067509222433039810709077281275928555674267983451517773058773996328423286081806597959210903313032680914477013513105715532739014818720675589354803020031180275548715284736143329042727926217057563429086685152495387076752923361108031289718845692980557662169089160823984909985531973791948523866900660616840144450926621966165540109454184345375198143031816364229369716237265221560390816108949772825366446858361676050433594843621938805856654751156945495414144604229036549818662272738134752880258571196991488033375794723606306560385209426420898046699179035646030619084028002135498093903781108422108722008555197339521711184093193728868526450845431340862713352786569816536072446438185464855282132983393015744885520621667716014285337263244445837854552542154434108791226847536401716925908467625425729220481447016616025501755752428503713621980301739796559354829284679409519921468729978040405023579810749789489874590400413382284848658867489171402953556825225047533137011042857107197054597305849826784803333605014784154499913419370966323129311206615980268762022776152963715920121161457358444611013137865085123245266027580656380452733156936873393311450038470464501517338558310424215514912507205366700936555093742848446783486690258894781025615714852342354603601978295594045236933308021184032859050074318131851353911402988579699289671958641639257827038412009111397501137500611933244762944795239773050737406195077705799293555510475067157134768932577567591706714140005486135678461667635704773162477290548892168232633307838079523124764966781107654214609578727510867640918731781246250997826054441534554614486008808107359450079108688589081160484287380988386586599137994250334397048752593624340263849572859426150326837012051163898564716605072655319910500698057986526042826862770983654884837952037418945538275441750020844613197912830076715514478941197046593810139221645405955622965093218070517661015946092323551178961137441466684801020684444042409883301300301252323473452033885227340032508733364582725602351640137534955578191554009220220075484737350567423036226255788036563069019025365814861258297677184167727878090517719543486005003830672164245221817491810187651075132582229161708771433862463513770220739165527175076593257833065038128547732637035666904476371261190160965690430363124846509474016004251685452005718806053061848790054530462552473154418308162921283298479493747237439179350113122755015336125117139226643322244451381541820430431615494221214279023656114301836301130673276379302312447556634809084115974614333700397332619325806339244349543212689439846731349105463454324039740824982330969924047980652693467252891043376180340372587067890075165729109633768754181078066927749864149699912286461490836106133790798080258443742468310205070465056104027593905479993172021997406287551540527015777663711052717942166061660902270387031689399801760702918031190804625736639100644551239031632711389105365671725592577002098652743671006930089909034893929637009399460119692671651227406877701435735972685089476781968380143657133764280908793852633248454296257481933693136307229949941552073449351341968503626807345401444811151303115786170209118751338361066647192889732120496666634405413461897286871997736386709732205498542461388987663445283058043738366775094280545504913494029804268055143841763787830186559766434326994227128023292752676326151952401395753195483655690522985602903860472113459414493725328388141169415193703432842410274755948708526524057353761435905947251048424038884063608438897006079352048069050909941919858898545447316103907122632374450245867435684815119603184957686276578187297416875494278096458107832775993890859236967997405212737085062182516627682529469979560508932851226171781073631421768865935925349386487478984537162885939079349616892036075342889476264829613485316976774073145942066642570744718321481773027566690429418199837570707996993376850655528084715602395030632821579158989817444447786074729445915307804067728198304188082251527485208410172056904143248944772726902176806220140887684954068779487400195937339943127569754742673986222958537858868371491178249845269911696185436356149346726818385441009470054978061551861824928919241816438278442164729943409581736186956770075362605354390258588404845608307895107805641934515563253823173964189155463216529502126827024649815580241903726773615154504649295354953264615319754151240392968960313045096143836358751445443678005174111649094506054281212280084121983639732065386516380536926640386309193719965373314318109492461055266982928363351014235223927540968747559971578358682580845919715105479431790075838639529629992787262395471427330860608283389054892007153474575131724048278650851969308210049293576855382515015389353775697948504276633098834985281007310861100475683702555230824879106105531001022793797091612974617134647345030218975162118232941043731262009541724230644289420084653333143316765399073001762426774958062637361622080932800034078255686939246552230615782585574263004412642114079204908034882342654264083349603155111656935780890724522978102166893765734311486450429761681511593380414763631352379024860523129938395178817710614915734026112738832932292897575697456968966126812727151921248277838281331937081347599960881401632968407616267465709934358812187151079568857185830985016790104189119804876824672542192589079082558526555885917162412980422793656600786799423587204486234508790916961553709626578997294627975123364345751861746081154527658033390048654466607729452450978896395831158378286470634654229332342735235382839925912853501345194148338065699898071871891560610208695490757732022286005560709356865732929455291271162381820889588588916026385381981415794999684478126995082767011090210746835921233919247288826277318705371929731559788898209137160482766650472885667295409853054380777145969188051453265415941191804594743917020809307973417163200089364616022028580525272405148978753239799610999204449125744551272272824279504662884064912205181029155322609179886914760751194650311902716934773121327356375372568982573828043151033675220742637127182090162242871753396104446427330503973948503018513096946303800390452080549555744761399923941316315173854450192866811552907618577220801715519271396132049743682907893190421345481987247489951810440705095660844165618471575010036442564500277508387327373018596017845828982494050884172149934123018124246451282134575025535508588079599533615578330089510187094196331230293357641173242991414363065633381071050819173084745376146868282126753197378957768875651282532091708599016143418870862814891559171182832728974025889620635022940312776671959159919707577722170916908774534279154681136188883615126028358903306516366906621902904599126907936014456999022486846107903602047453327569929124283265843429769519312916702667482719904326178003466909858474678993087098861205077406984163914659479306241983003860085711682794498505112479877660760774811388659399367549720137805034517889622919151594825831150710955113483070726638115887979391853495222731239173847171427751907283033950064044487261100838822229013738520688209636066872877361514866280161837271519213280680365741575426540334101661838518260753400312677993313714112151808761887909741954708060727208129467493210348893793529709880083658176542719293148773402236347882319180803881878682131117099032321739248077962116110129208242602296174214271757997380158693764542084089959139203922927959925095897733688863467453948552611115260113923207629680118459974129410705744121884913928629062660138557520835502868902484452300947343053537533424028979013303491228189454019190517231643651384353300886080064023945697608208275524830186464803144466350867735236993774634413342454947918409856562171655761208309386709003866834775434043992928590659006866892406965607652994228820655888577391626440389733819142373643372219575683797199939565359018344087911055109430926845383461356811143343139320404583600296146440320428362466515766366539724566389882852271727424055377316070614745533522554501227964625084449967556501056267076025195907667698995392050198119805081505615890854167809380503268599688132711134865985597832875080010279311490289839769502263462094470967840260637172940682845878341565674913248718801978944057499797002476318781188460513451432869007994128385201268684885045917445233992722215825753643701178296217160780493590089579907940374450888120725602284722123193128874591881452132573975398568061565169370529972225605031592267868218902933178556824763041887274434598789762092699559254173028697626911437705234909737843228828979028290538195271707305699566391316653353810441801983702353424173398431337838898981858537295633491604747858205623870462870362351621905299363001501011700324824416668835576695253747451912825094266423637625429678259335187415464078735625195495374320296111302085493559259031759781204911623697208264685367169932452327504023317986995425617958831212057717625554360136883765484146212173216690621067534357653932241264867902972228159591106130114659712120557437497433885432176127327935034434125791792079467785821035271877294598713161424156582451343331081257823161736943909281794231299385381315836857635690595226494751250922142396506701617143899839458571661164436620829464068885469417318152816149701796337904611445363732198544326004872597190288118574252825557940372687590531681479611357291742143941628209830239888720002643291511040907208941057444404725205706751476219242811317503503697082173548166157174313621119130340100555568972442683102384545171456193175495840048962555150033385824933274017850948610100969816655485772944211442490788871368377194375127670733916496620036191385962119539794435325348965538870762048020532006561151696456501240653267998029838380501044387685956594317029431318698278938398808500811864529518761550209733507175794510764430711819271851465415175857871310951734751616906189602007048858701333470696012975125322815246783309671506850359842363804357827879285773809776260189841639576729593829432229658131765206008925218912945461361666106683911115734143919537253498470306952729566758460314715414743420501461753641363812850721260706711436985445095909722197797658004362245884036238744784531374300693939733973429501796760599081514599684031269917729595609083950170255796980375061450983581219660971182352942502318369082852018320888470586956145855044384912025874277062798322006407298751224797320277359448964848612087222174268966193561728622310375046958313896982976052833028638924508946311541911427023919535423113871908544451299885920845914207489107055157199682689088048966774370888324109600000954632185999646886171022077788487633889480162359945950341343373370730849260800640253963757748749212519230338015187189021920991723312391979503702038105201015715582252196594986809457066816180046774830846687806031425566293228371142530876611309667712492746281689894675055868732658595453001520907762816162701229916706280079718491617513160255667018660981445561034740264405489334452675591153964407407857572626869022045736884726278974353824244609038160519473200009214465759997224935773111506490039058526723085822578936034392185611475017810744556884709460499223553067633786986444460059340642492744507308242367205881251434964983796489671700956238897434305106307160516799821456349769263779424946446968010712087618708761733470005079081141281919230639920973247826950440081775095994737700423267191851225051009086904359163163058652428941734995605771075153936085924850112234648493472932115436746249793761749874900656578324929738277799268097813850338673852417834634299359538519418489806903384959489036515417190541994433008377059622499377197647171824955519261738822334403036879469133437505995227495432836513110538761026227697255366215362856676266306470733466065107356955661052557748634652717912578613227578375714585553072941750460136588494903962867700907151049806084194207798449100698581209664628404563224940867063497443385370322103724519331278049753071310176561777673907468090876571183480085929098555575791066980127993771968163837786676504314079655677755786383007978270267512109854909637770460196892977301408775762325807690171280624370357154194730624169970262882357012270069482120981052738707679914812649516326459924431777639649983912474876791808467938216799182227962346828723839992923083631683386893516171473766380444173245842168599715734827853010889341375557900562836260349386341660963488979648273685578466286104898685017044473847750534964429379191372598993733444881490804988936797814434674220321984035747780473174532640595052950904885255015656400247723016558675213383728533514956313240346575901689956972171473251760158075321920023558271621744278707423455837620771225568895233002042252644216710585206052603249913824540669824831715484311367782855579058709579171049347519458562802502777313850520770188257454382476104295036897547613071712057389258127729254337642367481136406217207839648561406539040141462806497026924384234610312583028120617305429005255206728242281089145026914561884220000185464011718274811167309770819785585651999875409334441258997631036410260512075570662126387055266625441553645135062058098311461585560738286066763418664542045166577818591090526643062465555223339284868412183230617571707342548453233409340457228503654198872682249580346624940764012912293574629800454908296164273291611662899803296603510836375070851782778716453270647513872469842505716431104471559933239520929074183953692772497910583468892016719935592343165297305251309742692626946569270457634283867008649155855314152446129585687131114963731088930290177555426399551833186677626415188668307003401900255605339031091053820406847472554292879186536760841583244424659259354968862178102180319757285372865404309722662106302239085276106736449372225305959713257796080900375183745176320632067394367711965194556381059576860901358460509949763350115837910271183735636088989058833630395972714727791568313985256111608536088699518133815319642616647504668338641796147123632054131630616667153028882334694709560635120679089220371627963386285326734631790111708774880156733162518540764575084682702663722052137780317064923896979983417376087842466837487316908387082714708593717205730092842919663508203445897478332361306526513142023310739344758676445169561435177593297260741666598551507168685185126989564329640129440319292528381988175839948900166596625170884957506017653053519769986604162313601083448284134551978479259346565260529133198158156646001395137241048148513620723795630284300701465715231127250298776046621599927488047027036921970777830083871212012532989840879972579689497704126169323435649293814435611662628127742661531994319646435717140603180003350223871939780779216016662112693807273894405694916214056321947796146515824226553268059944635918750551337466421806161196411926774740252730559379047393458922897305441448561175872397095015109300572175294452360363050250828468461214063530464147005038515022675823183341356306900166791501681101323231084888591456001138554427661394254733422154145226568868091686588841740378028158929853890265327883258992267626923960565907867443362559473301771260039653327667153899562446576445966991486306558527688279709246899970530190669197181778673335378585034797442898054117331931943621105337603378948658158440318680347702958855227208231385996180171252528390300465648152661735495050868099445771525908326409646097316163607084997481439426767242767248660151465103502993767875333859856967783259481969208510324304352548605409342419120480817511903105081477831450263069022569943202873611048336236475917138567116757200762694807813706885799991594029598036512600185110497454508755492349318096086123462685262525826189890274022039773481964363383459980498189223149886058263552289271043564889815891519849423895360576476418417233565550898543855849438212146856944213164826070198488798115561702638758747829935026682798371391451906650739652095087882339147184896048459107180370427581630105515075235805944019551585982311837854622827342899867399604633749230695600697819526367585439380158379151909036849286505279807629592939920859811537119866109950195673011338061452929897980272564632952574111373173004096210636454088331761308726995702460917662080775386129661650177455653132358620264781025404794142533716597392843609609809381696142979761258938090123576125353389351313958768902832736478410683936725873787469743583784038297057573064357750674431618279820751229422531395530698803246540445252097292405026604902397113865401963395373695434872511530867686555077822391997868559820917721626361024391663594108994054864350958379050608953359891834701274473152834890953473419927872405229117158094378766493980913993522233916874915322859347810174652534502158880551474598323115676875887561705188260434141435478097194131107018087691103761827502593034341797635782818711868478401835121412500533564109567464681764821878347400979839412578284221170448751318546962699332675433911949942986114748297702869338062782910826256974446068964530610505392103522557687359774487583788060505255970111378932822626598549833014916542397425470299469927525401346785824739141136586374202131539673968317241932549934559968987442302045166085018751485143800057498329645082940077821687756851859420086018264917202845302655755825669564516426924271266517886972950262443062121836310483550145805547646331578534156282350880913916003277074513775322011527751934053810627469342679621004458239474947420986600684990131892098861936985825048710649977567746597774230863193509376621746121660510161129593660017892279664131135389592790170100762686356690246500303982975408496978785387009737051731899917833662964544279310772462743217447255735329517675669646424371797864328864856988216792354958974648701285533732597660395879612043601691498184773162331591946019030131588885384034851133778668922149049303933396335756826609634708283028572273349081021949728696068282029755678955838814039847228537143511825386056670223361008963669732006789536175406450965313118820399442031876942330575706164609348447790026224784387577853629745365818322059111825124542623161664615241601115752684016739425418541004989573686830971145153911925392846034380095822274254582792705750088474537817396721847785429670916783812017407869338429917189033884771871934860728958489426875245785497844085922936388784314663397049232157584449266557411441228867435375744682382881494757741564820421326162489733784229138206678864084515664199656505765232819458220790338354899391040773895688634427981549664361758336982785061500282538743740758900197299595468022666304240981956205953397445502431956271574283597565808939715891056260973841344740965667951275834706641185157117750861650875949878620669134498185440889319477189511478426092965696915236070754484112420569700418907618380299869481313218949040291885738691043813574791573547495571737492439653940971352909148557413978786425560778009369381027687253449556901698621215920845361651322694229282072331733521881419676425514146346539884393871596231814306367641397761149457212729124262766002740999188827798414123576666173096646022847871315205376136237348355013530854711485011385205505871657600471677531911138871138421024832527312119372426770781575973321695095843316455906864671278631736369380833540406421129919154955714145834972742438034166241486423427791346954978886378398538407528134887387955734178929728710801603539991510999585827855911924371526937687931311658223157595253531986089644061828246100488162997874408490325830011538220041067982864627131994981806211661577288990355909996816168735765203797815556289515229312564156772532999881540561100521192119925151850590567961610965144021047104549061788710146164133764117359850116252927254214075265021834679188032728656413772822656563528733791366105116658786974499654345092046058851040581499763558697408135786886778184317558143696839133207082024256559280584133394955951440840880899148133777051806666672643307547830978149188201709816995106829427976798291876510416863674523010991150845294560715563600248993717214034966924852065060033498484872608157680360369073528838162541596349427936428398723265576507572022224501949669595596624906793432362957175669845035016425913004385596585418875222774522493630564703995631638907260891673179826497909899915773515458754513873615671115484150082155041208447830942960605284269637908546161325908392113083022186976511728723163815064515155293900182000478961219108389350334118737868506446689705553508609248334519753530531388256942934620612743406964275426083033627787874974243316903481614938037676990828568314128109708323216337345178055228393874920568033609252744834699482997890635247361442367562409271594047159327243426655512791157436743181062754390540103469263356666861425280192942882753383767849673928151242542299065951045951186701648565827132302116536554779763395671993199189734749624186382434381149813271501993527602316512217762001519814079311689108249385557784052589776513180984483063039772859258335455017436911563745827139456599867818625635282397781916384861059433900370829170355979333567260176271488437884068979710262080787026243841803670286790679048431146186607073915652312513830428525250059714635201571283469679683556561973835991106235033989521360264452911462146283565757834916690019315267805706496530131592344095709024960281729874382488477350683168962226161743081579878414522694523504748611876028421658145210789065805770020688135429625967625599024922288296810676233386274997414256608549863704274566552432378950299141115081967939340607793276446329664269580268972577475455468125387148508087916174792803573806282748923571519900263654365838658580342889343183190782320034520940893069559078433855282255653660838141077148276663715558346681872536575404943299804972150447625153715376903217495333865083028470843378270801584129482272670274671985778690038658140740482938700138197235725838202329921737735014583732042983682419178205453580929162226845686362498411349106923686468768995923108114394285084418842746219837375352335335773335206698550003737072203730894096102855717205936413601301794766152394850249685383159758471502043706575212080778101726802886935278017705902143562717947155358884464972891827214060257337960002949389350183296060904661207549778895902012115695300368353125514430028048795749421980704385178159267006956619851109737432027818177840245294374661553736175202203108332927003062487073784703230382712725194172644546351416070658409567926105668212259133229993191510650764450683890019008266797809876014644187104350843236861608774242481364832931972250516103857493592379231761655098181905533733693004579928554032892016553647585927461039276367414553353528799541728188485763168787045541683816424396495639385064672672492119519742136938456858333037991403692827911223355523784500693430789101650194483320294371134690645997804391860838486149183209020035601778058139542653735059734236516802666613509305982987871740178133341174217938110527296068384223413919744012452891445810110885497485352124618830587277003446217961309179602819938873411245198458152150575094881826970698845736055197462788086144731267864094930399078840181106839820865376554898504663307829580217719292342845958251725556064428035697156065602430016644075379719668661013671989682055151217088825939352110974437557002348799937900657414699027056421923561310986178108099058427219513088636644991455570739012774763395051537013966181834646765886179563857154998448323607803352617787152826061954690195019529710792542299414502765719229022684963142298184186961549171714663593806630636685634090683636071342852455790247771372147468634864244122794321964103972722292523350495450567713779443038440113909830887532457591430698717920223082694521310512178117684812536455617926157160360649694105933198449155759587144226090805707347659147990773103702642021852683945755352902299770344970107679473290826907281626029367970286224196878624942117917142314433022780458482477030554630828842496968420468472991661558283371510298944914626759888125926206083862586707518552578077741393126663678170077751346390902660227264282771413861994740459940779367715651082485422419187949300664165860229419381589279122404332071139043914324328394933951749711671727000497618357787188539401783752820960648373137813423031793374015843898139599688065682001516212802423078715707571728276556328873437607608250418794953556169130743983388051218835132757369680719055783452717727273661118736105100507242362212228711345824791128980760676472884849102422048037017435322712788071519820122165584184374899619275405566472089828702271962787443589173241617948680293193897089984486609582961576523663853578010486314397689178402894739927258794885135917032309640468674115520775782566854951243974661433048664428161225566136593526466750498670029885928480835439327053615982174908346253153195283080294543504280876542977297427550807292297347757386806717826638912143856048860494938477937574632287621838821991419457360595970733307347622144030111691797028852986392522066698267995623205737600406082684288397818313611338956763562896804903642309155202064551207640674047608356883076349884534539874598630693292891246557036725262564157275306425005948222292548643814632483163710203732836367651857371691039770857424149340075847313719903478601081396149894826003086716008978709313387106664730903441902578175456974241495283166053008311549686637112640389405757140883766716277953043161581930007938885021024827347129585698713689586207501807045017885737323062110525434583773984464554993549265760468595201326258308571049772770555406319833139380179623742649773177101347765081324710079641214183877433737415568340848680763921816333431722140546268909629261089982916280472924721769263506144200743906512544849527876364300704459042286452628106519055884844316593209749136291289264907657064134750732632325073827602528988049341631575771377367828948941651172501184791691671724075133633925834141508978691528623270094187713323855193695821241400426402567074037684808895751141078921951049230211241127274737007526833672685124253803661432758468735796840178606694576055022911186972509061867597588065648243829601575293222640308550425765215768264387723341860701855403878847285896560107324537903165565545872466340049098416927582956538689419758770707689195064653048922174631819668646759952319373390716106758387286775384916232593211102099026301730068255549206444492542786851735193584866495992375915189600876139539361309185508392234190447834631021044892159723306359912037824544377177942026974517599990173636419243515724913790955179963040942778102759290893050715556355317551660134680859664415924574337652793500632356673076983905344257072177854190246357633105806400500668181654487417754702319258509951432145296639344503789561215136183270382095503609689270218901647113064843430036550141634174663394976833012247111240906131728178876421205040893531221787883512396121802207465472754217991930577617483047092139251875675016798663759933551245927173748191605099711323198025007225167712781700288618677525746931190330830401107665638734542298242451275719686031347978006976523579813739209477248427620354252945787885992384136514598891515119293574688838903493075749397154214122493159434401525618506567299236259454139139738825570014089671338597938523853741912854003928622182717291598245240943725961684372385592039661484799607894287953176778301480246319700044661225722491211129479383653925421172641229194953348202891618335038067614236122493566730306343254331173684431068393896256632105494436504626110930723554369160604902794605203344199329601032771320360179186667560609223082460168114605410223284496074455206331063915915284057329497067740506301840672755766266491357002200197500850843196170257259306373741540370915100070185958840611580528949583318682969247298982880600608701458374230401996736743082051345876022542778653511896278796421203161857340835161735699105442494363312986041068807106361232465481008986775359580680183203716178283538362998501524824906199384827735675323188796134223956041105454905796807200526642064517351185197719627394750063522663992244716587598864189379375978206751825585207610869703432238337611859877062659823391079713920256401887691454214963476625780154739189457527225305076108858992125266496887629694464675956001992907048783189332987317315329831312800894968057805867601393476019758938533061352953378035775078110762736583264359241393724622111467035240346699861383032707905454714630302108384584741010775519086654143239995464621851840684043704941214027052562493985838200476815487444868348579565093212710692783887194446253685107237334993944170835396316957005580300549443877262194570178630670854967034181958367882632658178211274551285286802802475659159379999027472559511143468879162510718295679526059191289661580572924559001111717195820091509650119966377376218430331799419336430153123536445318073176647832432365926607948280723696286179231577646361286226071653321300975672489835887141309291951506726266064933142539388672483686097090222197914159178779664424861827727728335297648509290573356744085763948906762463890825556258833974848034978426033900840421671869771109268127998463429123030980247430505839084270209516700369613281403238283134610757792384719440033499722712973152914573930414366905600241897463843895700402709117294385702453710300603632766371252829873049976593807600176142307182263097394016154884602308711559213742456454298217663322805002012566384088754715915086750526949546220028878948466894337050145661409195335281836018004253417839373293406403343247018417048047390227719167938613138603875844088943729235858052178993699148664030459535986641794014309275840001487830246313088121808326190894174028019054196730350725597644517168761536996966198897368875901649918207183623770322365282437287065482464802843375649377210181027830944980547501848031634991514194134393848409595062428183139013037302467314319250160918567665387805185698691046772094254696090019299213380363296956685401386677347488965393314641718955215231968403409796423244885469206093562284664800381138808688029387031382555659479257098704655595075873561910706143772987815506506269863084096423736730208049168388132175431963650900928911679632993120695120745980449533104314536805830706825714815490093954977978029080849651607122773181818534945416493845234813934682685120294524929302852660310244402063312356942054325736975355855742231866805734605913631402168519550024663533445428172268384069643660016959947063487098637040870844657100063168819002915266717375814010091775691480421381438701745360551820594369004687509045568460668767675509319511107399627440455127143193962750331914735743520759563265545799763808610723117252415235425615525617958689353993299931406260830771514445245063211590776293327309432357574012326131151115742838850758884511774130445422081101325187594746863148669401329299953791258027649288632907678031137216057422320766679936740994153640461999385232650265607538998151279924789263273667536030382173235983769551851954875709512031425946605774746967795107354253344447753232469209989461881037104517276540108629372914751071386283124620259099806389978535205527170930916884263041686141563939184412871401918718012459284233180967302561307166106729194674430738690344086019447461341719181720676921983843123976440951888015923919169742160363449428199193731451775408598724818507930101213439400301485368938204802381193524012193802071746054161895022821700103564926602495348124007736423429881052745264886463891569240903588067017221119629627760781566797803249615414241117890111400697427088103554577786995030761115150450953399161786179685242272570278071641331132479587076052209542988729135822837945706127469350019511596522678949364537694084631963152958766288167790547875818130957197262565259843748354014667363843337801544443995426039245267480063228291844798130950992533517003549032740743469348178217238780553555729808014036283522682760509550982806316837680084566435368770725980055107088862437521891513079519767750209543470877004693108533198847823694773168676687901808208142908020753040955592246401310374268029633278727812230804899447436614739596883144105806775698686715072909290006805847305964123420321155025164421225851087909220337641715282544214302314712850182423977897092485846505139104860486755820723090766333132248187906499116662944890477569028071588025109896844356682625732492903783661300887528641530541799910972564122277619420477425069156582809942736280153620757760922912061543356882491479226389461463284820268414301391141306201359387624700648311684712394070772555328135254739598229894465130305617652815439443407090153057430334324108829231466337893915385177913850115244795796076986690713838276713758906329849925487994674315643680599609124557513611768479779954488011017491965937065683741978112195817841219709367911141069968746937826666339531382980441306497980213735901716064095927815004813305640046769998185618404072880295919653402978069343241523149068492715222589785972545879734190975361011855874598971118267455680664806906686026908015191041867677884525898295701976449253209542256440184743880349614657938875424700741284544323060252943052347616406059584869041533940188710829857637537572962401536115917684336390967965725879372852499787314957199480485130158140323169655667907804733642579527134557569079897769258228070051851521952873934848457353818116070557244610550039942676065187309111058462137426794830724001412924575136496001625880024308381149637885848860308879557419476683035650472480952963721227140689125308877276037641104135747916907497477222899038758528824829241891986243826090452931762174756227701556022521836524350011079357417126936696332364659572580708939485727018267871171846975197245324969290700625669068396516229948249424945476563284407035229293972868933292024005298324943857401361966374166322327585050319010234594514192245345077436263463485663384610281754750422346493688922805969670685817205074097135515035516443127537327145420402914525110024445250547997702436460704002207593198905523399197050719582788777053489690382384632116897585952140314570484164725213687352091413172669744682478654639948492894228445000887981158852406602868376444005002169609005319018904418813585117469992736355675514717273883701360680970757643162016330513189833006403502571322588299289817455621091486785419283195260801999028842315617425009375174478640704362634788894942843181138389602221779586860761849428694993348534032604625291137326604317983394389186885225330332732240662059991333230379924817367261609975952031022496588469973189016968808843721545214594596098956808644438656038389747323592505586190054254133062905769326956841514304022955811169921761999104666285308970945221366081375993407346084947097319487754660892103962390008135442098425872362328747009006060133754985651961501028264592845586213565799530420836518865109457347375963254955538672714232876895601916843706424757382736935334586784115552914524782007697359225364329888388292374699206476976294020870460825704676096329199891158632556259688631035827445410994531408306590597327526196563040875492612893975505148628573849574525024702945872550643932253761265715725545789214402400239966725980298674046190951494637935147815806587872248630464697241035995239166037104724027252384824824067059313490502712100632973988564927050779421609210457315135328200029926566438585756407687262549383943822880604779214271729370647133794411920501184864911259434327380724915307291862303007729346287479984746795797305118770692939157667580937663290331921261922204039062453971508891862477749160069744912810667884665033531753452760632927940958849433646471163149393386892595669332148851270890030236757905835039168647917358567808637628268026063071439408627797000532531070611312716167236848870360868230076110714088569854571918062994745518893188668913192678893881482655956472936811175674695863302338121191130916874392470251573131424823372619485896714343910350894569503418572800525833953756825722244860996385255596619065558927636624785747165477882495830207080957372234465865860031869585612777696586659873871559651238986372081170887453639236494676442443305011403113054735364106101392432365944403329681127156343947026711265005770093201650164506534427353707106316170754803540524966782009184878753358580839942676635462723490382462224034797265401477946379132741968670609446092329541508168629508881335522779312620625120352039409234052919926415263554120840749422245764226998938928284192702982879565663048788092742078917059835696764047825540480666519260420326260562836795685297026895544908030382349202693666165467295804448662415788482628011553827667919783978219438976159869382691365079839491316058309883972673254506645978774642503825562916655480429705373618523759650292059169954972250077638885538928720826218040438086608119339695962898996490717923400478430747667710007064500573241965578988940957062764308044015613265862891834198172553548222220509465518097733908541903616854191500122964093979094117234700816528171374059579576964328202446737494842468872963192108805878326286945566911631877331230856987178870274046383614834363822608754998774429826102436655743187465353913017400500848750125671166670997490008601770905029036912125455465468809580000543227821295154225871753714419723292867804884125804710864773364226763336871763851752360292005912938602112967128274710590712394764332864788720474407439750310133341715368044197931739321047728469427978669766518534014965977130555943863917983372280301829604272164634611047015236931893688234165173018207612029991981645516770509463461570882540404716123408259598707973800915584292139307675586141357580128313713849900670958522795724828535891835676610403487549834937223210046565959782408005297815385266555453968312063356624930096131411171884654511308193429267836217439676727307622463986935356261950966990775265895114309683725714516389736740721770644408247637811729089579542722474699902101235073406413143776115939235692698660495799805761751317544246490714584606713975995701325472951183037062931302139708198652670062887486189409464848460569995359178737240427406408626198220650488462000633448100523604448145294416627743640138398706631743844519786691534584311957620157766143587306369812071134033087754044671052035542462741599827181455526100211261785295945449650211529183953359658385731399700966664462354208474019603844650009061808643475851147976982212006309796355698798819658273822164493392496059228586013366879405063316291009773491876670917473952484147987854853118205222972937640967812464031893802883200710039789423958223163816499701249469290925726995474765368784325222927212243981452529985871426810099689745355475990015954153059314763496410116671648527124383263512309862252815663922581142241046604894846804717171630216754374379895561391032124413144338715888921664271139633539268484422551619326005045116005483889684499788211253568836971380079492670310767509408415766535313934381249406766081077592011098532708736402756495600694863520670723210196432642827892720556349429900521784909577685784238379356216339273032627236327276218353928259598950814552524805509677538941667711668350895160900305117299050363533454045736132122903041010039120518165594839198118277193058619856009547397381856957137344530022364811567632302998320403575742514675098877758675124694942987766904283669274035994895605374302385866502426934606175986770973451995040995908225009453677538224893310367966427397966863210607460991233448165937211465201933310394495495492461677250440629635271700884226738630180996496418293189635108380111086393426059993123769967435687891231902304236830578286704061306131243602273347664927007114421069210818308520104243733010934373674917621572603399398479730445265713460368906261434102606808602627980810221512543454501531220159339354987636409960080258619334918323599569762231587954835774418358369733719253427313761945263088057937321928883630339184422728115118483560579645166034876175938359391398929465174746116170733424050940322346041886039567290198525028874045479456973350636710448326907132760710981513953275384773096979775496550911321981676934899477144705542317341518514374132184188612268663802858990961306173557228401365928316601583973733177364034403238258708120321734034589774092496017534507008427182204916935665311356105884441078271433563442822419781722581376079155826453026662887567225241974163302697086356240196187685257375663498606123844899452271514708196397149997427402428218484352657365268516969423086853900144669505146477759923667127813618331700744636540636290041874190318655765273582833003439661111403746770633653755491208457476869813114830053085256661418268883965387184159520283974529897928752520990972893912162392320993958629701984956573314877029338301263126322181885029700087887871025240920568663982861750105844140749385656611917740417342400974400720408996419964126179717290037102573718618756024856892022547558625278868665455740773490787852097735777750511603532517654031238303213687841938084672085346385329224646643354054975537291745592576474132579688144306708549389097944078254741625239682577349262011074546845632350881387547917175190411407432678017898333632642997790767647813701696204241606741321262883512297413001363061040577716672500260031241803340378202130213848875742375544191201195891594465875219717026053490192436066826966127437439630741345077456634329069006324639104881509317027181158512250948576421322032860547327790844511764772644876576114180134771314462457079716341451878164132982190817359061164559143351247208357794540737114869555231630870238690325096639929692083218212958097388983986550828301964274325484084604897908556793171407587307031142608381480175197362796457916535744126650902279822601724400199120146192744062268059109891598170654199489252211331183021730876150691360505866281482308610280551930276539085973486268226934629157267159341974594492443558234206267648157689245627017567937794097283694913916201037808741622990349224564679016574883513871693348315429430196102573981795619207770257042560542709129455355144679594911736536082012169177543927232591665928044987709812204722542772119135889774744698981962105929302077305707744631823999068425648475973143012999770304355534335491889309448023303637996142934013023434730591167348665865509858136108149951599378300632841552299722550636251513522492234321414774396080845246211651957257747372207151966577115143748551165315284237083449916338817853568803932591503553470663298366296846227368560908942960105133040212092458085973752289904575230843567004781366322176335379408378006167428823320405367458138504582859556585747749021728161220618132311545219802055495546793158857774477630604840343716733045014282966230018623535078193347048674283909401532913483113186137124085356184509141452021166083733754047800618887353446619968670298632229428152008192282975528814563357163231689133661034819866435694535552032035956063428526552913099252922854810452375228068243969818496868169244209895431011955994740053169074960006463812499320107334868990140166566435680684296956439941950830458118946245086275305129201284881484317722525725527432099000520787623619443575251775378275125539252323955782148730588137926625000858167091593802221106219551174270006050680923113665511731806064702157299748747032565903807139241841642689668601255817127796531552323552126254962678132091849587836800632306110081712897069336963888865812407802248973845277973617524502653150269890764158198327253747197441878406161389337655398483141675883118678414441616079750515250976168907758838152670970120332029951307977298232880111095274380188116677495900172336710506995295655222555931464692287642206477420423582092507614484412170715053438733915571673106347113731673747617141445063374839061762117384588243422309854664987317251312681374335661336827749965029420937252047335514622252612187709899855126488191441973668773864667028836975324436757711987067222111490333713621191847328178659267433010401798196873353751808337177309524256969437268710931826075545817298388126375112354992139034479177407075684007672609159848064699441205274812901801785631011125911792990310020798259765478177225923319046504441580542917416213756520652856049841681791838864475672713797735454192076925670344011906454724327516142641334321600889216379813012488894197440081381707692371691834444583881649644879994976167649599150079271742414429024545654988493836485198648625087719201068868804561867358872111640437800277490009710285221915227373386368897346192029056882410452948561896334147779906462474743258980948579786933349011085658567970057726764014761483864340889101027997255367699476235623881337331217812922100495420182884691947765100005487338978148193342828288991175209265716948354514851040864905366142827738439482307859057398020634912552461038238579853918301699085430946738575033444812047643686916519236572862829817286670021430232533141803470133780041216608642017315347357157654404541640357391845001990250007651388111070440537127746173006932822145770027585023731262399225458398815546336284090720624696622168206805021499238400420927267062929613709977659056384667538780338698204826024892832067890766613249715195709599148625050176304417302101238776452882833419951426914230333262527553205899077976590279076700863216499904045359431515569605651766699670201867500138161961282407916811336668327182516426581181811121030999892868139612266573673978152058329866324020298014844081541555525421079789017681223170747222315979833956460167034050048517890979863001241117650691089396375406196070976259510836523982210895254774645205178364975635624019699990097046586435559574216495977483608424397178844738261008926081627627502679850521008109299402885158976871268975693007693646967145103056725000564322229424731095136278283965882240746999702232811779288579379863130871696138958197939995049536988447721111107921122327630263280518802257368762230206909742083419233158694073048502074854304640650130696925696303353326471934695967215119706907923618157164472553171508597267588505689723614170952006240919019856201566494188178586554969449286002693173978661609954926273265015559799760530600812043843796134754166630974237070812807943910111350942857752865894597369978217627605179792508952599014046462318759236511313186609342382639920409094775297730295545471249737920659307915065035888564340167431494116091520173436865787770341061424103829790190289051062834832246100028119382897857055435356279676735518633594465050321805935011319719982518862176113591765838769479294090590092481416793345114751546120624535030394525122746063123366599564137739537992780807617671959758144841529983732861445827221050724940686264102462326936462330265503929734930657459310805592131815514212714045858551961177084965746153462322664495324458682105970971841144655299353318977838838560373725803332435398523176205004461329150958567826001684245193599664363203983010288595515978350014042345567763252043679422783139679809148002184444339141400304659623746287173003564247369559679553842436796789271875012557608037278978593965403581323028362474614962563984210052925638879804198997896352664540377980911065767267384501532500676878205473975812297279414779743054803900045712253579786841894335352389011108776205403627935991671460907330448462363635664664567731948657662234647513932270143427846221968018633957701795664872077270170400385760036686741272118443060133782143001599582731170755280057437752919798228307317036134827277407675643397092450020074678210309817208163248206676226994594521604123405661913942249038155576979819436303752000069712001620803557525449922455761500444510147343666443790583535759026661997183367144635128721613939737066606248902533200899059557608820934184996828333623574049252456399639450418818906099067557936069646317368234089460130978529739320032630798870549263946395793117541978680049035964065653017812129583004493759307831539469473829942332313947552097116310835100734786010660763082370309629171554739051838999689215388646790790045730198798266319108116308202042784349913423331638402660765120621364860161363860031126723816041968123403809745793999106931737642111210258155507405341930099214191251417345907547200774219141699074150031773602376237223277406668367544495089376629594761062656272217961473015733680508677996973976518209669838676097721210165487970157599273410719886481166195199173850319886580145283327469443526092266253607710730011733677528322645719323534017298912116778363869475878902027321509001397780544166585332138454775209608589513782667572076766989585492780123070032577129364613654239763342145113183138055428075611543436097968253679446257379751335429862800486818453224080461235690862896708711836455294560900113351551071564092558942972635138714406786655557366843793020878949036470433609861229641573593291836652124641325093373827087701874161725879670249751648696157836535024748378258712975246134051220863337876288712604585400330925021658198659620385637904430960108298830986284184333543951465321654244697152269417451398344457445303978089055647109532577554798093239342408927604917213367963353147662714957983181009921277799780871369750578473206960458152405460337326830874676526509534728691709002246799433645464709224951861497830924226784149523691032895330797049004232480270249433687519604184422589144275885488557224824982641279512857622501537277787619943565239842177237369292551776157733002985730191452735704499342206091287032079709259766177849763114433249881440561780130200684852780247175136616071603020685864464554508100396537005686487568619872342162874150969595155452475292413957366613151729411949130858604156799210951579914404650487459214602549380939697686497663020635768639052740831766958830050935907995088944057566573998738391124495239459460397774693156577580437531072058001082555800333230513989590733708071234807480704191475016445557353950077408716039861827826656456845814207154267961893387563872879070489001952820647301121825671707808003705738728362440505261265718859387008858118815924167678190034591848494571294303174101720431244124255345422786897863976111528752184971053497605853477372213035424788656108822902666962918434765718803305293378458853628731074488415699514086900036217586948954998445504723699565409113118180043293577920076236656334183483930599682649681218365085196359657401308733698115268942753450682501103032487751138192086534101202518446932716034351953245151888908223136028146841301441249177496414350454811825021960616448741906259845629857048629197160879467127614899863736014164985312658819607615784505393492474120428199721731486155427433423025161445901237233031055646442503797086395774223717895418346915922666779113777163626119240614964952132831962782202651569425668342291741550823814552307413010317152719621411578156090052827021092700238744374578419260043980793523684628259298383787238268147039341816553931199358326768706014736512349080218909188718814239066413436955253663158769688365316543819174430672436399185282744537556608463181589943702257665929804232987561724459815489090973017612071874240249496726471377906863148397682376293713934287946214536343154824940217206902067259521777355085706353251099270617670516616343776522758848844947325804437367580376447036516505732637320550038017441523400100321169656175506280877832174760442045245748323975428042586918819439234895388542256424553382043006931909051187365764042165053162776078341427569027736655951619978581864174548598559682745867490211752831289284929877305510553277935895566901205511085141928846066082914412201551186171052067646590486870622189327226185710782682799078892932306255409277730188658789046776698611420602198253634547547511268617025627151073429166252718871321653742302775930675949623139467445805592708500628862706682059074189459320824306290361962783170827817571695335043619182552324672186157265073183517359343487517842669475033727056478491932678638607812280135659456557666266741198882387759788287561768321691411895239262081788242306578290713351395301392099365305011659205908236804062197137763722186888260798059349366223494621369127904649911453848627236128303885738102453462931407151913968362668665713997649354846304383847224845585408621919828393922068580934497790883713087198090154231543706078484863445496268227459048425444480682738683472977833690291450021761456500831813899824900329499655018792556539689828718563003683236029438603594824308540341290649371927191771023058392085180246353013768881618752602412449570341074352110358377268447566528050169706061997580560300536641990782296050844423040610418241831197203897642579814190158214359114529449507931174115660280077142581422409186654256775692353130441678498828998976279047543523405377369450418007107943506237207682829238736075504129955877240017490552450823084986446684734034327877064529409262637776354741925052986584240278132139423277128754512026138170531825006963494596550509553696452565583984146232578685392598321608778909587393463764325169677018886691508857182448709838911910061532183736304445539505373546818087618494628051654723381028259893259856840323416941199681962069957311065787061492237803920346518535092758036082647789654264516018243869768822610617254941722935197602144995417297507682601858065616750754560455942750434897475599549457217100792844024741199179596571645012934141211728334045253548864354969092791665279439846991530689360689558693100984595446517974287845633956702401078438477160011317112788315567695873024734902132273191847885940903367239185467385967345509404213883460034689978602356205957900314824300583493025150583807761556768502271639143853211195537229168714621716063217112138846974837529641383096531322710230721323353425579041412956519609447162605536464106294286030937097001383004923890150312462890774447418813905538421279297606424769261666680788060868145925455104051469841427629367768839512421349273797928132409387167541160618582918973075109133254902890846420407467157091004565126867061942649609170986741469191239922878722763599454852108782858125609942517986209644366739430390191538376040347071038995399834578432730008004209241384122104817690920902759433115969595843299893193388638058583752634682868373643024416099459211591155006878815352167586281514463923284010977655863462555649404564569472518831375250873753219543961909038775844615877209744287633319031373220685014768464435591441327669302425968320366750259620928359478279132462160212617547913098281249187765247561409202326926338481405945512744326262911234057339321668620437156283023990246661484126056974216122876825431005873631992876853030328471432820026776393594345273339885756257616708107380630581798140878324504175358316700038021374186839921595387078806587227991286501951004522244227780073567928252005543251590491042849781112715990309641918753156815426587617428321213252066015969273885439599146878014922925842124027040482254259532142261811913393528032635426968476840337346991981690560753099264105470137394745868670223848814111579035710990974365403439953080104163157736363715179258033073118802894222088630552664945129057749605763388577234698209488859891169029848614309949316222457259193410000771426583215850792506943112683457251466863925047281668797459765197196430108893589979042804244527135959214697441199429921579108837008331825866742249212995590104136709529687240410428640230245275582481559548761903942808803297348696037375170042316474626086636506855093714396262695304380251833719952661052818052062545951527506513114700809023912934204787301212384576681000219881003219262756611058183909435325799226121758016217537552449666046669674727279047519623158286071408172298889473055574048671021037310782058706516015681807762661887387800144656303481828253095066049490627596535059471137889984495410630913950378245410040250473549044044252938975672917474523450780180016261962705672845297898683716116274996327883464036863107211756070415354892007945582824891435719208235200025839748727436689537507492540295001004433879831448085172693340727362290816823316757039571918954050707167477307523710182851334989100523773681212328324665285757134770021964869444362955211604141796489165077019897369050156858035917426709227430101798162510910241005698989692604485640954068577652739682882559637016336627026083167870478709967057534923403620755931698779600867699237324580344266578230434417759649525427886603632869264617216635469614348521643857935254242577402592195579119003856221240909033083260986742245426429448508352015042852203155660221042092128854471688000485425269097538791400995505007817165883801351579912398575557633192197895008865713555315232510192403266879803982581183895686204514858152467066041449442449568591211291205634315393279265293312457556561342656520580431249494797159672604305768319520726147685689903529001465591174082186782625376256757365482131530697627288725110521098006811591138946976377724091352682667756256395386247224457266865280389435433367395815925511159953998652819360571328320274721540694500434195424381935400622690963413882814876767874930893126302374407977477000540670133704829945883642898512543351061320455602236715337638020465550209940090053829951918866677995051460667215495764880186240684194363527430572964208278505594124750726309574540907168917412825406157140140056719570738808431806231308330562953203326500664419385145477986776779976798127674288498220331835428940588751606980811902687624565728000762746754833207205315278603642288779195363102125550337044067624090733350554703182868808126698630083349977353550425436874314860392142248575408470826925285035960607924534076229431804770036537455901108627410072790638275880013290565739434902229430912033577437778423942036754708846780638384688267495392116107438292004400541936025001963496656170565600006049115715514745158959251735770525160088057486163364060532233133928221486782763269323101156961663793792181754988745671494330013132397759387291574094267395096723388441564699095901627256355529370039357817020372676853414711206990475736940088627820691282984389721686410819915716719634478694364073279542996632245409933689520666986917459264492913962457916450593704276489786053609491674681614215024734552510965575532280677641750623063143708893891313483673785408701303539190796538542598996837886530649344424757322227854401151828068417437372417651088924841944728621009019217188828095096889257070654660560423157183144465069528425753087001685407434700166484353980995068368633028898460458796601958313266776522727432641738170465946048736359359409752384261829691870170305698637857466551868949019007711221748444371692734939157033974860026736708680743137942232807244811986631366523830886642866201423226334893667845072379182184667214660658885081519016061241236728965166912157196597852235331228241242917950382810788417262768126999071944944588701857297443236358243690734381023841887072988108705438631972643744789739890813648618702091811061443639681997596403426159215678773628808859323411541322922621383611414899913478674192952464072099791770398569925124250587774470824011865426113342253694894580137657434997006738432473374791733196812414416445468480882648688486400181455675481086495318060455313458367824662630744067536960586403677096053480445798703979590374628627991002627326494541951459470548039915137430517339137123365337417735837137376958172732569478853533042296761034156001373335824317559205574851547639773236929275487901781374868308416236722118762590837218248334690603432678852340011689550069960878459999833502441854906629952183732791717128786585791304546701590912676860538737631444586402200148865940787387718835912195806766305172283125674574838001469889052427675323276914978613017697552714465418636465435272936069883858873228476426721360464135748386571631431289720552767427004022084305502082137938520592905527243299070649866315059672186435526078515310680244932562495498712061079312044613583077632715222142360359548598671797846292621029390234830511570651675016866294765002959397305018810536518981919863717705872988456839505964812362457534401022008592020546879603357419934060258765717616416320273534635489853271184521243734286993240667529731427617590726530320578411978482570591021769659462164813194727858669145957756012496978630899024799315712720670011794726266685092372971532666916220991838239498050235518969116760202998022334988033045489485487366165626695164993864905073205345015491863090521115780355855154226631432590493470742849711830914947712412821021559631671002697197942857736359083073925354433252618085317644746563895776986541582905661910162295604529364226579080537690217943548795495839633891997438090671864339297352820131694479698638900340856666342358125858182103273182828310073411941220902107759830285477876970256545996867597647525708423881592428362138470908908459141255630738856318439686431633734679052020032151075206832820845290897612159013499891980232400905590481526656293080433415924459649992599163150724050787102220429482413757989804292854165176089789403359624950246135132407969256252967377885937271616141767499276578337773874842431436968536030420313165219757996373958014616156740281938283251855952680767187172855792791707237955562592522820664872058060821431984891029962270800708966482004161412295635825368162110499713395141963222470654024722365586672139118879645933715036969153980911523473643677889701941017048346851814468060006317934939160181950468399498978741227006391166036649254317220494256598329426117309431815489283073935358539587278571313623490432024919755852761430155599020514068741206129403712756863926054745463170434409734838736702226928240923159177895172531699782008512126377322301939817483331466163474479460842492454315993775032880942423198520097307054344290877171250569765578244150237735901793342723450122660981477905717811431466594416052267972214555164322248847230140748541667573738078453192597733484900228448081727905419436265529392400600760196947124634111965805816300614462319765419331858831175962150750301176337777728519119720847067857473993713660436189106080673337625946297260700218209604209356695770872444918316395420584535395978523396834027127437253228512873795992062436779765151518395143844201476829596181717855944133613555239502811109962017722786435938235925845456338727744338837547163859204648268564933528863873715959011090404413921569400091531888408814025828334896629845100785798865298887418955716622862927847612094242881532824098158942758664388010386845081315412623642826493059162132485409174350962403809912116671833996021018625262910351904353889384941438558783652421793258897133523917685077426691168112116518766947351949124559350422811502740928867334201874657091928147595119365308958813241602230492079626428202953198011893265412778213714383385466116440201498119170601800693527561710710241309393119234238906384423009019370518796160867074650504753699729563354066347038188029287463520966981581879765742490101056204577511467874608674510771196700730572650168694048857167290230878567210976107572367715555224836326841398019596575369910915086036677765737174444994528425920309092384401879545042683268411469319866088449413459681698696838891323214856862501949956590807347772041921681570225864056702923579194613953727092034699927486885754564664116929236278915568664066404219340201736480337749598089044565989836278278486354893497261293085600289895477375566400663125201821443504683794040105075742493455270193696148027840146715491248961270938775558516886489032641369285128801166786424441479213019058406576990479883031332788276018333516210914007366877058802165857933207894625644879530264941128991766985506120002668375446560090330377044930693983271901773157858862762814033138807791782859183010638403287878500708703395675185091598259652317538139430875860447749704422237046592576149076247747889398089266210716574861411510948381906884111789584656997853338846150355744640418852631805574364461528292002123712698621414461205570020394432771687622157304238183919548686046410474129669905213981334949410683576584120512329303844991127874302869884904151972565309774492304433928413320493268176035786777073619143506901644010729894482405093762400460663776225168202170812887552972569948607583854722850027875173180445046962864046941684365170025724640219864257600798005665096265128803458121185922685968271546798640881216804921047197693132811301821554658216308824948336323763447675927252442598144444310165776037734965410635476500655202900049795395646632359212241118497255933180857328850790575912832707449534697125321968517276740434750080395729406587878698151046955877029915593466240533268641468747720331526278971790108600940481899100802187465010280576703320262864718604784462530513293869215046697302421322243229664641064569650478301142937077054678778343255558406243118152125215723457190867938629509125220335836282317144014427089827681901624576560925696742989591292940394247805765302554065333229291799446840792564442178999052824402767935990561992644802162971039271496096953084825113446763422862470956281323801765328184366394697922568152565743916502133788759826730593911357939702571275051776547106457192110266156751722650919039938548024434047329592088750166988446248837757721583045744565253100146336189761403228691167096817928025084032042596549418005441991251566394479880785674401460132284874928606929558035856871582363153334728567425068448237070071363200473383936213915666540733282284336256636223934428044140400977491728144673824405767665923800837598234084882669888470838713329466270156139127412077088055191225446742146143690220549149924556182861689203717599618455220135200904797949762748804261606028479039448392313289618680648179459231190782170105344666507677178528403498925560145724704336257344559222490554120746951425955508667876122115768238533148505521991515492910887413305351250307995201687394220916347016633356549997127859247211728995296519886380395868092923952288996984137884918739262928838163236904119866218161704894706737155558483306015593812198752360461883212419021431641678446416861930855892909250269208329834395020795653289532531956495435202555310797193692783147096067447953332431763052725850704976856788039386294452163552009550816026258865327125745702237838426573001270839858128183581855761725039924555283329981399817014714067038295145135636066001408114065240617846139862562517844867756284647578053043307234536307577622167342251645779749873580193285688199861176073640018594337017696857617909175056256690282348195725294846712376221429422441569179719766929431832061504867260823289393915211907529461932699671867134843385815046408147425191504987963014648795305674734751265904811724283537758649638241249379125255133266752451389170805427228798206164331850130384802911769307932722936152805717198650109643775649888234941262562095852841206257573237303228477327617498429493264734738321519812783384421073444978724025770302774557079826264175391569226178809749498075990041190191479822035686803292134103423932016895086897433043546676038165164776453469790732899847995340607788626933617135236793945872131555542946880804297543853347182049977515632316969834219393392767013250143164258203544086061511829457672023198200418189247625749013682941735717940457705380853007555762118445284699960339059538263368177506028493341999427856527331411248162497993177609905978857386798876823286013252435596523304935152401614097884878792382598538466522186561631244591251720375161057776441193027365021890133608523468059396077773662087061140014872321713203849967072670874315302600115223673909894240171818020053109831400034267000854066347130738664553893491720147532583427972743404479001196773282284197625349933581040398360896120490713081268406365106783274684922939918739531724513496857600931214860281867751167539871057344347899901432020325096214057815951599939182059573620290502108895211792655780789985652253313127217754066660689495899445242082942644434560308575341571941091064470239181061071272261990999239021179130420109601282576079413651709562714792703396822389532420623413334503913118479074337943427996974661976236206829846158300108565344714289711383887048504766606316799555329407847794949999084958398443996787321832604588924273399757205743206278254101092772109934611832839835833791741989678155861615878347712239096427272146661677190873711054603858776314343273729418687287215872468460676825947741732153049858988734658716406377405245034493306021159381936871664958833705882612941658480588219302414033456864918411955350739885500206233983466884696992973317129908317506203201307346386721670909697959429090473476452842675560404538142691947747823849832395297138492573802056307894715539395648804487495853008903742952550224035747504529900127882336881786782592762046679668993519435052611274224286609942376539932982472706923318032632663104063720620000178718816587245075957639902418658008829403125458300063304757018571422656450019022720194190128775659509033142615884109036127813352903056810607979364320288954736469217096257744669656064982104042695373003971392293278026196818653287990223161725559549291092679103332554331581062993722234072855740212072403338630161916208442361226630692055500973586090045423990025310503208155535076603471749365955660771855070731880227365454607964672090934022352895690866090965772036654419006591435126871212841725710103505285180091676974023621483148938402698522125407483224323886800406965672042859547393416549324488713439365101384679886395823569228968446132417789122310967974149357056663793323372571140230099652629744505113322015568453623761063451364006982605612185460763321002608465770290147288186365988540055373474176079622274562689885218698253970260575623813133767296612470016788685605446076113700873982591573016832082944991893440236529594306628837831749228847869379768965450327784648706614999015359194624709482907565551839167494221293859984370357776396483027084273288182838811426440625556141443566096989824550029030609254250991976951179808413956186989339313364324974756065438777204782416233526921096943259311277330850698825719216372622011600208466284648784351224709834596380075193097502176427067376571552397959048845032908856948787552627071771335046503546020430179174461413867362271549143128992643461413964930208846369723595699367989486475544632340277040785966945200578955967681862755725527475261297869970876549384981573062497739601120508050810064496343676099937371896449564352342673650520538924365341946724742694723533166707143584017058695247929939857425138700088779089490616296876085543263847316235208327852439934768450885537138096524747139086015895355968130899984703714449749392679402450106383314476436161459674551236703247825600892509727916068463721812884014476748071257054763420819383298352825903474288292333696959147310970531073297214324862909702208045059107554115963394077387631335210551615153286354668507919683308120012641514717576569957683175825347463949920418591286608668986414956489883440827805404980473753689585579636248028542261329886913563348848922873528644788799168394490957274344096544541854486288094433819560159112873577257524406742383005516297982669038916596294847850235049548090754984862566076965736708652928566733422955948824347713381797493027510465964601593217094515730122649244689875489195752698624781581348825107954549972554012335746595594750140065575382794282300722405028466068542919241267890618881597325393019379478423326713569474796686020127648389066162388063312134930653669949248682208185963421052509946540353978889344296046268760300643438685791510699312110775846028252878328225344743624409680776251930782870075138899344977169694963975636030018929937526591351158167224939818031360388237387006381325014099794729787273792260533273616783355978038050507978484687487353050010400658843858072166498532125080409172064567897360216465956671529541938716080119997231304912702195859898489911167248694418717390786116389506251414611395550048593804820834877407011906217919483148498852903150674102012856164172035606913660044563603689048580226221644387250856243070390030565718875375144452240546989335922526477438367798857685385138153478514976896044359190652921819447564420835969293625161616049399702122384578659278707471741070278786222493837285616487200733812685135846826282665408685510153273763196721508609169273831004922651969975416594472962717401052290576428590267858510220154037433847806204837356953101975688459729980292919928724331727870780782196205997600041636037463296083198419956229737583975667323640248334639820718528803950495798958897245086979983928279527636437210778429826631492905057604550734604442803379657554787763887129963338395010712685090296643979424605291480084680824216057439010426609354245204671009500310504410391902225349272368632004073171861815059858592995635933728292886163324544599800296584435132329108808489039759149291733673928759442668025141142536129876901849919427346234135970160981463196779195228816736306439966461069029997948051235913470256768320821476796286742651961689329365947363494031261429790386140819809094281774159416198444681746478970740075263100060925812218080711829082897789054624885373173272472934444004115878870314760808434941725471237783337906691201328616382491825485115527298323527991473615978860213718321100860427945283814818378808305116732986975960019025351575614199908679087734427282133049941749096897917958715298523341676325568895524447478410235103953912681132635840208231924730088989032017557198053102219736970867821711165933228455382252910300972324196706150823428573534183861539351472525996602722418510451287607401262344180170592475144799737899879263852291639861206656870139631119925818171795917246034561035507993842644116827788349782042596535621740557695377041479988890421434314143138658471220183380467935548518287528237548719890353994312486129047094181037885167424475296552175547024641776420436166692272303876805715299569173772024248315582123717875059388655138763690397774672759972230495584886978651269013326034038507871829681862078250831028807972845107340832810422525643364673527391776793591005482108714683379611511656160028005716493082908023217570068887684955127853435365722815487937042605861913946249374059257374985784208973162236297178227015214004083329407252001614849518150747716061778469109981270462296638473376556263641653783953378792105791486603229190373691038940216329440342321894283221366310047104292655317041484958414981716476757588090259102057083988294802679253622998615926477653085752820752744387912315013736669644295533961507829762659027402299996135231125871369802654123488230418685756414239481443049089780934860993934818603900265860212124163933410741975932190502034541205729958445479128792558438283625824932353059050089436283667024926893066441510854354420149704628797946532173355348840958076985341492931859253837505134441221200229276673356946874223838892208893665778194803349603799336541116775360726636567921305664810245202177747794159970841109980583754296085485163914683951194196884669661369001795285028808823515135307289547663690612181916767711571795363939782814720030132028493998322932547032479432826922778746457380637124958054723937315834326526398520413906281672326030724670411139688207539437000684809579085198886623497917141460949394520036280608326695837555140390129416873557843864529089937766400990187714909906820796129221932578760455015683287130153684936112932341526366429195677223214875013957317862406094545176234628604732613941873426206890097934494519052860843805585193491224477203929191013429631573394784413626573314353374668281435620176843314588653869164309817092720725442446653291084148717768553072545816878465614624219605405197384946758585615002167926266392828445062611981600972346859474020598040431040329972273270336901772314628115213111603628210680528431834249535499795689998915329601439852698253805040453697420830882653665711095405701737581271355473265175999508739197979581188569854367741171832403991359607958033673195758397698008147950544526979688837222815848595645909258974409124623965546702104062271029328956892676917556026924608571010940824337447202831772770124334007795087324609810828738975739744136123441919303788964413653395357961234280573439056998287495916678958706116791041054367290608715528265847102816453766107174356769927183475481296806795064199984488279259188215089596761556825847771227308961067723368668020252672915410806806987489981828847125018962567995701513541566353798042560672328517789063178074098190134975241764879650415025416457593403119136439509510482338436810539997059762046059734863862171654889852439811141198074578548304533018504799283861613364765494466216318921690965966493836207214938024884232351316050309708060034893445242833547843785528980199171434819781318499319881696273215000780660445497299705069207894936551249657222128534206094992514677645618696309763904083635252336776593764610442587683154105170059719755742698641333864357634722115678220240454660064747422419729869669150436344744784629872636830011323633279267278051759537728475629035524749971667549592368718718712869250036286787941395857099636967145380503163226590735211685993715596319347268576644221671037594468015105950449616503055878481014456149541031000667088414601799162112345651881384432072369164326872338966517203527599012107760542674067376363047113089713063833239190450754472555786996796513291501942697620633201631694381111475766517092671845069900739781656255679689866073377217810325722846994905257321859164231669130128529851205421340938679788079083081957270486755262864772251965366470243928683683187987894969160680699553426680665672629306976516893663645581575741257813331734852522923462639057625464345140166623955993817293117908050603639697149859655889167906479892676448943745958654318225790340094824463226552263301092131713743196947898941365946961010547435072067620179838504755376180011059931142636567454447717984466615738398898349064999515860730378431258433329298550347806533413845271737770451280576892653395013328009073494121724934323653689796012007257816549045029171704258544418679029473579496692278246764963655890767058804485037299163874202497043403051917033552810225350028531824526908808031488121166900725442378648568318184128652940995595794591489533255285370033971955517887060412671999692164047462019134036029951569772626085508379317300939050108378678439575300792397531991081549734584253438093718829462278060502106517286808147345122965995669358586219184734840037623852724144982058253071686802830909304715306663313608339983794788290737405528364245053066755280271857870474572564401547859522788723671725300815337243831505095716482496210938378545586704390516683040638606856897928878400518391945699088273695203614977714694847506271941031603536634751778328323624792255336139139642595868848852092338121216713668211965371625180988795697386717151427344935586868221653036516709562312697903451858528582587816726073854739291048607620933819916004712407208616698442047172613122689221399919143601754088167555194453698618768210875917468539658835559810423014571542618056332821334287226834274840035181939840973283910643320532041002644157567768297984327513380702628343696293538939832669963622253040374999370567628294630815079834667694271015000893654822848965308216261270917486143097076774559238778523693763461641186787347339726026311434150207863623906892238597552940963248657772407317219169303793291162211193692271373486554954053004375023327171213264759982042754973697734222119707394248019268476554099173858560617742669411412859832246029776173824438276328319792554039707507504513863944026785905106911066405780161351928345150941204215002137175940729182479510626970437743314616620966428946144222747274400706577831678756442274049034460497752368982178301505918686788753180203735237626737710724248353269785000522464143233834085802505827747733167093550958615770054946528778412403955705450223869889288655866331851184026223095292863409269245729441233181839881606096160247575635327510041452444807895923873069126523308421410098777551365532285878756935264184524443364756957831998656310742206175028907721143119403839186075925350397459878143867380127163049159838632085424811762649143556660173108606545009970057619754192958339171272610421773609044840417083556598530559575690606063706791134299091005945135379709882694874992319982715607115442020635183528415159559647273101487592214852551739437379337461942520774132506548934873822123168364504282650246374624927105685942560132553345988235061483195830122948337949096952535685211349825095193853588217684179349896573482509010989279356020279536742907847772203346262413282083577103450681644629201429989092123288903222312247452143473777232529597378550832916278780148383539866606440979318852494548726844861644399181946735359375429162618165717819578413242958887634531041714709265581145235621194007455458045032796082510589988166020004855194252693760873083299247791923803091577068275290288305757313173808096585056443412155275721709148309708567974737464649312729643265337832366642413470565594730613934646072361999589571738711600877054322069075163393163139788105049959816012858330209950466198538591369688096912194821417594901253022631882157686258415794639021449637952203064809919662848627658297945333068468414944752102199467740196106920656126412235007599181843906881439553190838035190309000304179990133421886403657510036081489527549642772325627825449293908844684985976307342393661155018496367754166560224729330262591087496443424756386458944954724205713276081198890304729999864203550763053218146638412398480181699681700962140232925153312141262807250288034103134782223979416915175823508882939091236373453728806775970163077378867197822322181098629368853971030261969762086089667358591350294012057700594605341300294347760076239875566895533554608097308038627418203859863857891291517532066023010291272750684756248517643918724270888093506154946324276735387922055797806976537443695216598272372698709395738277288859239481854797715373292975849392919529509709703392848210389992271194800703560815921780016099527163889805848102678090840930139989285281056699931795162364900917564858886745069584087419455718786218285029849721735005102559478798934011789348372507049819173467388588520041850155271214199330802499188923698382348977171132006725472763105133332307496673833434864642281514692433292963921508399509650284906535618945348463834768322691062015563953226336390579431106340726450122104089000361794488227284589516285042507871861679395777444058515421316095483733703672158494738741499272029465459723331752586454375211475653231525383655995287578670332716304482173703691388590172543195755275054530220040464795457121610038959808902227687460156578029535203184087258469232345024876272724677239732074583860893941582817745509278715515559914462780432143873573026714992338484261793441377087609376294986898812809943350135508585207579122983394612742029065812741788410703505085584580105530732554117857799544557080621263784796050608091931570428668638263707559843350348637032979942013956146005541324219153852979923665454051239859311804009691909945211631334427224850720139232095710427730719295204761771925462578229697454201640737161166904290518949416729769422125610142421592770596765093676795328538386058716192058922152180423117692176283922598148211969952453785326507255663406915818256181165230198044063932496937652303128331813714682452586587256836831960174556416295787416804787607464791826696150339328635992800966507140529955790225072641370882972142697177095835814719413012011555266764464128295687267639710963313173791751856769284591731992591603517366192439114864525994792540111305675815583196843320181508242688793735646066033715575303792162706376835445210151113723214412134060304013665694587455822911580829782536777526763160525718667749094866160328102158944763473053854844916354227558032513002108268772834106595550748115956936869688120633052860513242879990219125073436107248547904472512668686301619578879578101342330842267208144554019951151441790329015547827175017735302727099270813317628722092958737003634459228658719523892428217188193814017693174670085263985065045437317018571647915430270046938490508142478950048428382197392639364378128869714396240087175597611567555707374378160877587474331655064545118294608740285001796800519008584932833414277817313842199213462753619481079965656345179705643597108469997660961929410805985073318685014404087334706146581232512063060248898502516545301855766503905877532714196179399977118246308558593000204477673512377395048787282695169753103558450572015322175336206206954320669434446400317641193622550820633074148173048922322866809992794610112926713403437382324270865953805555282163716509460867700552345906582949477190408951063054894061861657164614380072311906543930145315030799712249233959404800343980234426533243880653584425005479810553745351680218088301852989513036798438631458284536449137924601808442080688466063566657101485696506368029747030594450711649129334488214742092058261137466891811926048247422070705091870901758646908821103030533028978138634214259672540176715099771929533322418802982530409173450811597593529994918443748018446939352545902635120857843058284329910944647576611188036518421230946370404766057581748401559477470230508818358858144434911828846828410354441803824507960732960754210050710534181266371569880554869306961643161077860847386667136293428029252965180998393331283225370353293462788067158657685442489272823812985808119386399767690630130183307553945568840532905110658884901395260064723091446348731874941426517766405316354548515538697643023513211743190534401237263766677151146464373008709204920290263217107785531965381800804744506899519045701911155856373794795162469350460525736137530331931928794734986578870496842221310961895487792754590624142940801426985519925363073824332179487556647091859546302183544757686845227057894064036038827160810314321392238444257592286961529347072136410497939273696075974562008990876702737000784771254469265460037841290767454618648465633115821082407857142419619311393232080121210931965589576348518161427109427895208729960919030030782492287613272651331267297972727458027274236707670597234045280396149108703483379622529632595443166972477445244327653941028694514465618023509264971420556081334895457811009986298964515631855447358760952439044793975076199706995836618666509712385055419375983867396912520118600994462581197894942852898310249695639120290766700051944500653768419539011837766835350693915247650357590996062447887054215852522661613025988270755044146495402421366690849105076020549583821276315070428988026498738680344860254101412503076851983583857252020370005578377876080865261042487835175557741086388874856729634500058627694069557486304630831143916122609745412498839730930210294461238467759226679977838199475940512783832215665186136877262470976502796413841037786503761710014990848074398966997715142214835301135044606643526117022245400359643359895996541983407761603360899968727304872864358243580704247721645633643843278670543302350404333748110141327047008079872215983648504971264323039239552705458295931909460570269088768399679572066057586855506755228360015202826465759914497658928596329176207792671192391076644761638956425792814529295307124260130165213896033584880892873261993667205249628227377286291858321089684391479253426807785479810933072269560215668937206618105500448205421188608651995226032517727457712659542231365575988579021122030455179785069889878987494817466186321243329662873652015524480678287566825376318261834226197591875647447912030241234212179919914958647862224440772355515415199879962572393920355302454818535954677505735139079175189196012069154901114302728545078749176354320005848633041065385759866829948795079903481953045684875135966715441654563570218551647304429464481098107124090129927418472314530566271221586966502318401503828879426312160000004083167141959737432518972250482334274251836046730056700193917700660972778074905193458537438613977972038008758862917264061855111152227451754915280775826381311089632750803523775663739937639928900921321509922335428153926035861694280021735429155345920434975919652505336537264645182636818098399051952781642142403492066933860161773873671096443613794656104763191901298564284374651869871420669803925696571492242975316036458379130263928588538809248724709006519691440825432334870224915967457971280853298800716362401312080237980934881481464930776756518298693337728877410812464159714862068680533840782032368927366205414660868596515309039806104609113147885548608578886085259830947615727570509643149959747266666589906157054927978655258101631052153260828165085750800349266416811919645520187793309800826778275415597067715841554193226064622961196391132641554909844666425058768778353306183955471443652244325703248532266297914598406858873205888410373963243033107469198040060436212494865902063642453987824232648897083839465657039137973361656382719694750868558223547527221610134852176631809627419851428771431331206389913150483414245718293721883101596683339663159452595226633319683990251009810284031278726008489956708127582034091481633339916689291492666749398493590107093958916326753627038258561212764932333641129713761511344479803839834015412313305916600516224224625275066819464827398115113218649573095767457342032703755341494432647137755474254519636419676837114052101686841957998442901397289398701656242704057235128411328877851006525479195672696137665766114775768125560633513335510775995123541076099786914692192454067964331295173968378581842960831961997851141329713672743236922185088494164186771432983227474198153800696043327007827458493259021719043555903540319623937195875848321442516477114981445194059508298493488888679531869681980218047802817972202080806482382840785497479259004626583756256209281214720157729052693364251916543273615326195463931467272597454848116854151143467563131655652185583533264944711059958398982321749977894615355961753303226342293618220373521406004942690417937714915214893566248321847956342994748931099091051958243221993890988850069791550302161910279243822076445015633787894093473499003938696920355349447424633941712229098342763668764147161317160155851283628088818691634755599790237572361674356460718085494811057281804508817806136362799489352989518885858566023567903708545507044192617766362717627600721165292561952969675397866945053910144609272705273688139532066589231776656441094697511413047986286516024016977445740611099885850119552215385486943054945547388873761613322316489960475914982396973109603691083828387661636713942526862070619404745001900440295941377584496620610973193898026266473538752921888797922448870566151294700978735864020506033453797966735888186738177657757508351792201355475344857709982398041172422406824182656158529396994317220196565623421679075649220637838407350136606703970493453988383421225122650755795818125824469524551936880765996773973566942906298190599786831324350756455567235424548654631446380300776663595243663540998467469387755961885991901678982647726594710458499673725320578322498866787200598327398593182199937255632895702818876982260629509360936472960278189312725663503533712917720694869532027877450116720424156733271881623817091272201505078140315084711021135598707475798251576345172479999282011436633646804796454849678407233383859182397877276522659589660155936503626115003210413439966002780418804060003660988122128416238900598209607547922474523347965929603738954689806219801560646635442598357540586464448967352716114271396095518965114595060346850017113319649432509167439251336277012264232912895229723560549752065597924699896557585929608895821164848842856207637499154868990722682437436784264276688332351805819236255092366255056021517617036541922710413575767464979207781402343714234081862583145306969239479695372361548611700557908293838257624959994960544897960194964519709787533098644609000061823423510978068543609890015292895753512547579853903574053061192525794531250131031340355380050733570833436220644153652596609930004175161864639207984195874095106562746383185119993930525743173168583391146590194958134105339916262724440221893585168892067519271391616025621021270115150027145488923828822054134857386873585493050809238206177752195390684703236796201816126628052866859977969060934455010394362363597229592296569309608355913774594443365776170004278188983521149064034273359393264328878915754691241343872486279247848604527239822222055118414217873153635951150647814562154751293642272080569244909024363586704744363668739548278985203164784711166499643267153755976214856581052675810179624713966014163856381200929446188816256907198388049589962178723095046924464618013941294821061137830714126123927100909040850049044183836993991653096484590538592134881046956788226601104510778280139669661674489289203333831762894830740227325935041693567365933393743233500190651673347176533820663810122322480277637924773326722572177560743608906549023991801038389861409442069205223442049541099145743509352337829457743256226678335079557121307388472412779382062924112027955060749752517744049792903870204540561751928600905843282193075098478834798143991932286130607026692678584138194284181899448210114674319618939393321364410633630520086992764338570627176999800595633381846312976376659227703328426345878701660895368166761501758993786753205698602085581804151948613376083095847953663380079903052089436824961933437304770407140726235900498969651972656782208813003833056375164772991932132061924666652671539109050007852957887043349544454727320687635277453668263570922316272356737657696751764713338348006866664137754318464543135426229271820332223972059360729604743833046323561310565167888234506941004674001853981389620228192318637393175946518583998813802325388416964664922692125728018175804977184526205573640229926726830508954123763718908517399091637647726622646525317671504459115744641857019946092205163992195324376495636547019822469508573477428383906164090522799706900813182013985269045409171265718733276555123701935120597045768817854131211894478661547476691806961196717653577289426962144139610382636029215129934728960089387662971727101895788135423722945115806193339176072655324588956597361534976301630659230724804398221444080468983092767556027739961297741382582151111094090828466508941418149718618606617917206304926749687246125166163553211339794727921768758959471522138914558317913601491087519771972016812727166286357677463733217824228960418981696353445047001120967073082356553244721859883035006557491293894690766791476553206043920730617703478648456654587711001715061584017710116784079582068990985026748393913221269525920675383483005427041349358895197776660125236075677458076822253076642058198875663054977806962103122789235284146693924752962046593675427538157442639201666469000411133906028621417347721799968725447058497087274351670953295628861446114019216965386865827887015431189982006429350881726972095241969919271349760012220294180443451608845328538305854144798909956794901706995810087144608211756106958498795050065864690469700303018232443301181033113032854318636115687484574205904437897055519057082287273379493077100476982376134772881765613140323167363606341074020654269983916157681669999932260875789739586229007776685238601232625758766647936909639691143719964086829670840891772485665464734886501432482259370909679828817454635256335045474898779068646288548233194668207611398638427507403258536148553684886373037549104105599205621215785895790725403131876487625290265311545637588628698258702921901735293874506803747928609050447962332177612927419196725239358483222064061260354943414766693176768721686277609353939924861980486377520741014680315729791806573915409902950067428623878870143140511013818985706718476202191529172090456938629093745029740609979049435350674115634734513431445930963252455846137740563137027311533948593285105241177239531280398028816933813191881396661533164549945315504950760265860950027562753018383986523474657101486883246349546835280724835002044728714032712469620322010919285968964720870162096158091303124722669352280022200126972276821055660849498018412465730516962031872752209872811998513308365691028049007692648648225875244033527214291708767846758616715635644899701539550238205883522304110646595701099593279256871160162378259297589393011097664640097159673291633964845032135026792397324929415886157274003426539599105940850275387609655859188418486952944385613832641058819167922033111014255691368060953501717536448472008436640931109087446461656841356077241749918373889338839651004519767948783877324868033963885691922795752510008690519100431311290936358555009099450642896057568340386904381951755949865365504069518584045029045515976777401834442299675477357771592233393550424410954819603895358985451648468182620229205097053501904361991375032500617968185639001180112947621704087848759829525384810608638942589958253370860445766114022249090622862676425881389151743691869357053097541256900992502811606403824224648065129626061816089205207638312943151091686769204616235916316030145987186342391713431552368949373555266788702432358046652062598286463202937448573482398194797528565497032831788501714835756248714023804773525324128334378962879462366902631033856253820118236675022780338257837812405089664503333358517568372938125434611742765074174291088878516149494761204937168837591431203164803155197495135309771265037021016513841681864230722487042808797438952789972864610855209751444964602283949378430824600736298079623091864422131428494194201185971369623409660171686673367074985566488374507011684429488167720382826539310713255947563321951806811500156501227003036824465246433018680153599226889726014167013719107736449215578583504678862693467829943909006748156433116592498249221406871500165843908363833802471442340457147098221288846967385318335187917873048087479416483369541738262477401072558544815264570146778479470728933875286999567847488755778579631304320080842701553990158678206929567492862847965269836762889089470866255285311989918305051091941053082336731192052874944928189509584685364022101901047356638112667814384837073621217434857389073829538110564933307603145893667512587025343427394862514200384333980586871873148061219878334636021191788117585993839428190173574595913070841667374174559595621269865937959165553112869942693085096132337036299280326342683908109023575984883309883565996912429341312190855734931406898687818250511836089167143965536578356282252018379219483317649782037632820349920391430583941219456713864209620546063541241580934145169220323474805791395502656627725326619860900395308190234407440279143636395082375993269336533124022166770235383306866525765706565126615158921196245042261179144960687879289049822701202952046153405527107775969049184898080168570274885975940019552376790876445234113559784216759712015152570596826239269032302737812526546736611224573651148490324244350358403665263084123137714722649728415181368990885612689707407601863792773767407816524766702341542399817357339631680901310542591549967023797354761168254358280524429269468583120009516449705845578842913903393983630827431985262207571729932520936821504197771154278923577729743748359230098566105960807146078723820935452914717091224695102067523425142347974256683261508422672858506102296457749165821843038676711046229523377394570880023083961204638893038530984824108239301597187044620707485091550121855805122530275259217222096593541498660338347045492861885125516232483805161153731807882478775935121782708314589353682146370452333905259439940922337419491038311082849999688148564134497144972119333227231872893122626337692872136988775800683550317172164364500833626679083926791833472571032884126745276006961919673402096129778953892168586331904248336210522256519350349063711955570095809825514184332260188510506820893338695622221325919410694004880806890654588242169344189787509014237016409580401691551901724130821920092920821626490792974481086308601944667048312076973246467518518638254988743101305313537479482830025971385406917745840504882264763519760006807714809915716283882856318192833793589359961309107040524547629127951856209265767146530484665761077524316645193251805656323077868678015799016916853940480579604652703114097640987376485984598722770368319826587146506284522507963673137562508613099189158458415615390638769258400271463294982648404841275327431088208257705645408892522593413238617881664258134446791181013698623431582432840295567826934088277346444672686999156969476308192256923402867810741576366830441499589827268709519166098286223094214216342995351928196815479689949037025399420978147410042469997682328983745887212965351045981035339103046930142207697886181794593540731190568849964383571956960282856489933038826507785181896418369855936454791548638157880300901359984532212396039253658634807458041729062639582976212476170039579710567575537424191210408028433752992214467107719901313390249092332672772404213154187276106740460600219870466609919588854352910467731311109080777596950622359545977857536528605463717185762798836109306997844478763977495407232562159872671079720800291796250818564678080519087318771688407717513616668684102045661765085335822585511014155727174571959332578406698808367828749458791505303367925479608100573051610052112682310043040369009989752736449634044622693556081565913541863208322695643995280765920737737425253547483498271291064972238585586460217520744299567281612574849672290982706774522408453817470910607952468721391705137669142014847503413089090701580575564838146250503304660573847369090288627592702447439358262143442899918796540559129161537774703176350435508613242036267195485923750163067300065278126337375772808148343036130266848732704713253771779732447228555974999665830186895350493380499162543107128977063517530753358038029747657210287770644507878509794880054351301910873540851111679682560799417636622932735499747715409354721571511709592333940634408518804204459204625236391972272373372062739716141411198293382356522188108675638193061530619697079801156803449691273939653830379240616523965429418541954976692614583472163453905211224014465512317979635449412419952458147981227668821046398218296639526155314603651964595617083946889971732193413419043715320248416444946134864118851935759281301066599115858955489375028396123000654976688061657694803421953965078351007111863575036620510812430504602129512813575876926232535041731816262745893179366356926532980469817778128282293957516951774297296649654353266459149026785080313591828851390240292803929996321845342648403195005778722917124716113795429342550771118090787156232464547960484302903790349961850849591605267215746307319922352908561275838643733022838819779743867169890681714894557988245225590113025516819113716162147223872183278934129440598010713132257236857443074648377819177862776274275004445616525932627256199751663683749910688640998446790821543985900933517868822670382983145714860449625935816447948001524084315084963606283205234667264599828212741210575244350416435124601011316326089947273361358480309791952454743831631782129893471456032661171502138948137265659533669149668686041011642304296781785040937493035405843047276203978598441287522019556326266210341454258377477885673575420986543218382184544419796766095790770576463214292838772010462359978481280400813818428287632986542189034930623469288454577867559875103331517364485131882455309854115300159348172764206081089168102985247862819674407116870360296807280117406305408192009445741793511631904083712617895915653447682229719286552333958864327658373098091137841831097407982104700412462848071525531412226636212239803131726826420986312145291683858832090391464426453326000695736454399890884008174539074506334319494283430754222251852210167574586397342208419217606785304531497952403071508798329625040262804078649806228428856539327359649989153915662586285175337884764873281342622750092431390038874703824015598871162702224407478682034135596714718100224176656084054034154258653744777440241192269886113934014408679302507618050533196812874766246796431460168806428287805948553480103781641146909138993615043036149088828318309853822275935824642796848989790031115814859294160092128918124987011160535710502716127592974948750195261819580142269634153480632975201146737846140352250623708015269730851574599892394367776482972847244363184794556332439453667700094897931303753317392756379675690590444739681157191558647310458943140778117059996543985129289310127582597348325428611109134764865936806131686755694207784896448347830836831015072944839812608968771298928365085525267557474720620763976176476260838477206687768807597567090590112531637969803702968032837992014848483006583819873752292566892103395772787165171196526479776577400097959485884918066007254873874636882648697763732246643150592106525983595972122401464784239774205758770096707730558302364157549634603091741927359537973826979286948350787535099142542175712066821409845331517506564643901833618372116208952496476564064874313940313763605213685830152719471275698487990498679657410792821883166815958996721231186484509701956246085199642790324178074599530123302874803541600809964860080267898225117084899319766244530245790438623638456910390144806362517326236862458508320896054166297328866596840263588217210821059020231381121092691801019487611512085561654929776779726763795041185563931742091773576245910981600218045827457827221332481958356662511255102158712574725184781540380577953394838607297928809052657035110450442825099281504203797252607160388015817554998312962690173140713928595996580085004197326482410176059365813105396373024837065876884340502532441211836989677280430931346507268901911454169259582321819854887512726377735598921730312591098475803311227936902544005945889089036895431938516194031375679522693286320470212787366057232388827645660741209079341355854456986087556997988441751504485587374870636908848702696796760632046074550177910343530335093212499049275727499353473790239136574691258534654416787834333614517597908834048495674493541758186925090621522235278039995675773299304809661416586407442749950549067008970244150556322083556639050417379854392802222506548441236272019159841792449374898835598410373151958381145677100718694491517642107543578108253713778191636805566660921037938518930763602363589050748740422736145690498652430925730585882784475161849233622235083808159775604248953144915814062921725380080702727197386237009808569856981789424016688064400906269887125714186949009672495873774034124730011323672870984377918030007161317230818360154865875806867295569510395562941102945516103224238010206123895647204453021009837668946751456103605658742714018369922660438432326186461802702039825734175146227391281775657398528774298793086239389593115398937886970990441220816545567202526998498980240968744352901188241853694635298876368249320927266162782910593941670349901665170806457165165090144377173565267655951568835767725999029547680673907269040690203632454045433667838133560708966296655089631120407614661327108006227974539958258305475346415536537397453490970080505361083163875906916916445568164999856997905277248025405856846899326987539523607896571372643233224079374668888082649436944268500037949112772682857664580006487221573367583856381994611385692699102772740705532767187626828866543763401564512315229373065103431858140767511738915063027787411606531255830789281407194996014875239155781137731947200996844190556342534606795786949513956593925010104046789126305226275687092726972414757454723321160058696634349023071133926852591980397779961912061541981983660691533697989175194580062238441821349139171979122490832567729835180053732084391268576148937927461433740156130460248207740307641545003680684187953325157797911593898201884392148697703332714878185213863401525553948544464337158194647271638434086573438904187657310261841800698419567911607930547830637524924203012315643654347768062570956127806863465701977140864242409412692335404799947570932619957127166244689140592415609944829269346630728400947077061985860214598053350619674700101305492032186200086026673265688447451486615063181404454500838867714372652985888652284460102604462028970561305626033715550154109192740309458735298034355715213876963197261493984158417660358210514397387282009803138694141415092229611887366422015794882174747056200877206982299328474921396728041860728960089336234888036347726470561191436447539693311852599096325105669528835213747494966725008288864213369688042272209831613585344536128294047938370207698167253005709109243580705616550211225850320719655504960251788527059248827906158794639391708480774091966548538252626127634506354378285141393542855808035646612649607145291317389745316761057791310763123570897578048464352956164044177015454109487298896002177288567511707403873543103573723153685001630936102489379223833527451090024131773737370915654665297592087140686003137260948774514655208580936267856742526039457748863566983799277928582578716385927584702426946914024322459243955495682408109759274136743042171929250743332330853320777943328071663168172770582239772545004764227438519459842121677624553478381495974903328168292104734438463446328465131676646262653570359298299553977262083584930705378416619896151459187191350090222693943538092987527502625919703278890168933505909949927746695402192313879520509458488363138670638094737637217705992152056682134595848244312235668068590121057096233730869557426315240621066322535761074030561564815791010866988069093106695671036465453154349687643163137241436710204741063756911845212977442817087763844810067896561935248669832905368265155355832350257581648477991624278079388455163071268045325167303898773866293563407728127985856337037455684901956249217225298744878433974834286614817497003572889458658395360252574225301171274316248058469468326265273154781582784566688261834137135094974351486173532694444140669224563678356298780227719095804061137328187217016624857208924073430451386107974065262784359520840906850505407178760933443315428375555853231774358598782438508125044764045181364978311014378108788216879330148374513037779162254554057419652837053911070396695556273424872571900147432921911596778868448644986802431179217685083670860512907470351067264925091026649454633550043417698932721465239104936417177462018901002270901282178158873380344451399992378726438533292748761922007353655341016739275389682780445038171888356403365900394557712039909899561513696864169393819990832557795142543144027441983387762137374276725282910489184108359006260354049664350960400035315181004495580573130910509194178473096940628291077175357063784577531219632563831429909775237393903097853661783562924597957931577648045043719029729401259961551602556018525486120687759875936713313714230534792280253375801577490022246359305989054234125060134449702441307655672602866865288026143021139881115145788937847621587292687709897908061317074306819533450804508714690659209377516685238574868515432440859308121634645029398418061736661304394630959577257738646820933310150886342127989515766188582612330347639797372995698721677338067236443517980808936083663322582204429553545423110345639564346874707311035314584450298150414967634493130545795091633279001865729410830792966865306898871855220424843873506085942872725522187783173343295263259016698632782356647847169433779482048813675576726708299378088145959775487584046891088701755804764515926133579101594505447691877953252968120741099283838032751112195550563426002638555499536660909152821413753319861418055766042542684360754016293317671876018965135304236288153217067399086761806563586175615720188983834532062543073977668783834024825129824837494441364759857524634859658029578767781006916279941482523159491294934742371880830791284083115919764670459299593037025210006546592846081030566919406764372425076920793412027784455096399521797950113326453609925475009888959763895856106828506445217482392780959744301865378216789708303441505066091669275515463710935850406535689684028032680103989576739266545487275139923318592481034184394624454135079181962306657965247413091628139123101435655860902083203207797330885760987657649442286250151472365361968489660342961062498868075830233758983257613568680722266285520669057567406678838875335790379644294166870664640925367667331687197323490925280334051511047954762069110293547963929366103887477488119506653445051520777598017061591763111413069162710294055940795569798446363524547944011362403313382782496612896459860140626562309332096545009311068027961321299239801661714984779632623261702282704801394652319930355604991065007598164118544975593263847753067296753579536262128246268491313260423953637671848539023374754312049613027402125366313367597412645993425330373772768931388748357308682345076340991670260746137194609231185597532486330898963081651761906876868519195609424547583100530170949424753954053061664488950175910424643712039435319216710575075753134329752743358275053196359524714803321960935569186907952054890909759735798675451613188219241332765585560990408147961435541571381413503800414944853402603001991208299282357353008570599489811145170852440305679800757810809285064305776863084900354885673934211408434960969238632971606500156262131198459092750730104835832390128977160744639263839492731064399384653313224780688824173808145515458696698059984558963617069512586042576379751182170721456457954547858918770598293986651880307066599888738843179694434940436138842609271804693552779444295126772800300041585665148990380395029623037351081525717873728385452186896774195138414337978167553865554449783850491257824183403098191061091845443306099750631278765417658126916441873258601987513877834476083447798235072632315583116541417632281296810754702590390286003845439801920818808977098949384489613817734168765421862568432470791321842204566245467257724050728475321359877629633127439268531950623521459894164340958244927443182765748685926784140478592530524217668007468682789849583683527273687067713183055131262348249568705512363930956134557713309323291012150216001329845331199220275442449180282419287616619012838507016574316963984098460131469964007654597333937044336616335524120520384012306524570313205131532799060911929187414752547737081244333970815864945847576750177793499899015600770348233300277631411811144600986539009576799555694495895661482360922076242922572656030394918001534574183400327581270216228434959589167156248341734755610697241271347881969074184739099942336433837912485418890956867986623453469187204982290270056642689320183619487135864036628664369847790509977270255502094428410707079214281529281502306090920154692032224424189487654159908190723121720752205859728395074070578076757764162048758494498090821468996207205269853403901179674399314740029632652943928803057304194229127514029192863699493239228663170774241951265199151559273729792149206710864814271111977395211740772363410478539211039661758493172922119504566793333480692503601778733084536837855414281873473276020813162715014690769699022432657765748104220081699848058879512307540603650676023815571683302032132682248604439863886112848194857345437775186424606075582454575379093449509522179605768036333105362460848009110384196611361705186171729012699894757760803712095773273647262545333810731099981091889728285586001305273157149532495886568015021602279084458036058581802633390916200030385801084079463718951401415928635318962158829949193830129930577300126314458912705289454185689126787070460323586269135289907910972672463477166349334146932589485273526995011417112785971427418919072529292061930589879145972647986226344937464381177313373137424870406630526498493748924416604875760099233027466417314430313097934620191058774401005639202171255115369464386550200843315062126798635443376866314125632406463450028605334805727310644476732648701074711119278592401391758620689491631474923808083867329386239199814000879541829598403209078267729135101720466230422186322750217739491304739539354639688315644557650746475387854512119452635670708248944148483765328386526513057976235775937943975699831086618359586987555535179591132139870314108560820253133642247902526307542454523116034015634195857877655623529246484061698483327019048024560890395729566018286253041525573845298104864467010215564357924010993456998152509824653447390505364355807384288222100253896713828617338625165267977362311764309882446660219150346505187130875830113649206547274208796073438451687183180481136288508568023382875685337709041406019130896993681445310097983956183979843679044855783336625193373738964526710125243057606236530498425693029458288227046626432346514285615607354517625495594992238880323224807163895372619970198894935223863894134985779782431247667613645113610073495693255527882311778559901106286967148676662837309689207348875029417032582381324087971497754182279403718827912671129642424224894952294452115202155200085520334098543321266711594303935513650457906754787493904586537296961565844812089734156844408956424007869681352887089808524751664599911523842892135141877224366660676175737785117385634717235089353210509552997535913570059952510660994230876035898246317924543073260555438020956045440155421261597240024741002802936981805398504152345007460099837026278490909017718094473575497231205790380712483674910926814011621734679948901985959433332938250035056064768425069747710032381207018442661776266460686743949706283872542828291219341976379936727708112311069141039352678773517256356264430499301125689349200285755412402683076966064866607745010252326070176318897262322569979410210537372468990179548845238229137978504995275381640836676955893898202402290388543495622408006483983361205179792333535358707655780216322308203799957321783768965540177029611042047923724774029845977690980591373552117876769688222595969362162820889171661810670786758748822686418546074040074262885281251982106458912861667595145453116597292519511519046397525073279693056558829867859528856522863202958666681428938931287522505972280946475269412554505485789065164281512457349039720384497983515081976136750876876847958330277828615390833775266054969754182895354956759340161139440668014532187116336762826191670366886047150440686760977473895136437137247750775978103019072619949425150172952529672146091062392580760970334520413358434317778564689959581703469906701499807783512876467432042465214196371594876902491131686963099551786713486301812558662841911331633703785840859601860979048367681769981036164607992233224282013936177282092780801925796586311187542511246031292859140838699249667640493731943859248329641963145705588679155453563784946414069759965532698917195873127888122667166278544287014394248607501197842235759647465797379874742769921431148407568928298303228117252281989635325587631033352244331530837843543905098039172994707679470067161208845511428155901312452418776241688153163811738682830005815179422371987082722689464696986084978347912074716832511233535286417132242914639999352241625812676426407893821651115423310724829372409840121845757331108584604085741960893304075220254483903857512971627912387944693217661336493170415446105253720804730438345308681321484631562204543242556364119797907670284228198093916767419685011037198635032929483479772656349116921260571150615558363295105183921722345688491492706755851537710152234246705716265494638836641390315338437657409439442177104775560815215134983395534274701468061369402924084632607684899911551475343906072308127547660612556740943638050082830699517687332154147876121594892541553177291703360271939962321112105599918170003678734026178436964229756235021790128862021559555678446130237044823481233700837715292103213987408416991291728306083188428148020881746226095720340140789889388138210079545771061500003936642574566715458325299109116456357419659664886801390883814356713772082226505372832115169761014656590436489295992413474203481237948143615322309740562530714304201586569037865572477260434623613382815606158068673323721330863281607537724842761762455141629984746530869427810098662504223846594266369918939143339230635023188949408078315466784989814765841189711486575522707709610310845481270861295438503934008496341593025283704463764427147407330967959188421394137515041076780452449300204273146436456034110539483332038094795952811736274530103255325906242964214335698658934390361630098680736002648711484545344355418059683739283371489118421773659570141309136863369479366129438623063770456123378861306368032269912698883563763742057870182564912751002340517662477065807894990991801307004800170790904890653864758808260172672807825510878571311893591229419771985023653178258656256411365891046688620124266593170630621818813202330366807822597387379718818365961458931295081336663990546827258245222510107339334220914062337911253182608404668244253409586482076065977846974395847880467915357199187263393278419654039628592698284216633390941366908849071436956100594737434971794348123365343992443171561497053491161607059502793562325788423287443301244356470387875346041435803021829188008688962163491151431238530921306990791092118886303689163913634893524092655512893359170869193416905500818302273551320753315603099031527383466816577070261358221129367177398005085920262618329417824676075767011131316013211694155263364414963830902956338262083824542340797083063238819120296583133702871494613363942960888801004590301965451930636455369407939869422579554865199771854977232502798464803691034624561717402092094383933731197071219502290348964339947910282750708005634050925713192149712493203046349424380725013124051989081656168900091716340111108088762747309345397409460881760429577965493323788470289804475440443845919948722189482700868237963665121218848548049479209534513636111651302590452428701370626595524232427382178785285456327237784260053681853324196323955522345366017825016743848588106228543666572938917183511305810885229791171396590221395733618369573883264359893123685073499341367930214351846655582797878637604694285081828803088522847910565976268562977791501588085928650655720326652663628279242689493399327353389225155286295503252544587214798616405951982250291781471438210353337629702756861675329615508784831869354198466307776482542171239775016640871036364483722942430026625205617128849937563170278662957856779451972918314835239263800154048396062151682734058007018100814943958545634408181906379928422477844957649205913623065426350221112680700919292157645462710754107680822594156811495733480077861009117912903952792734038358717247425769014108543527184511688834244629775474862884212863202742246180882048534899998099649979986635897009124700301029001248451137553695393244308208720869851343746689958200794942039471106120160697340411051905881217280886586703328792105917160771238306529611658186082975618051596971818815310487047217493913980432428603836767343630554496180931265159816073519405732751222099157002325023097456797537655804905594342486267817094394364680007022991763569900357442094370838470823516108743201854553335525827885230530254904705955175014231093409770711603525602667650501745355803866218969847692983567137182111255237280837294871382969194337605649200990021585828923750716316620077003071447688595512559133602576565134563137624582278922335127394038205609615256832341500977157397402262760675731248913882062982830521163204002141769111453968035417067076479899660395465612254428906415151828746640605846788634090138834849104517709008892693981330900222452713241603443006114778126636129210509121426001672491351823073901626253574286564651128275855637324608633353823714050134152468988248059203393368355393825871357656236552425640085207388949654839134618892591657742607065623951016665344771444794290195283260761449866090637877164056373450506358620094404627368864147159192537611702923682765860576509113413029663636869648003792187870474258901600874278904584010821535411411712690151423103414043836327811346905883062118312991922171822184887533930005719112600449480722493110920344054644367131445673519125718599997266096216185827316381712302292381824822604075056035656100555211086045575846942894456830623376992464812251506216060673193353189278202366065855464266548109832038315360537382744982773690250411078379941026330943628805363623641836146889412737633074665296796198603321570580605956885116042089756185157310914417518370055408070927399728390631280468072778406019916416613464630978137943764874591306705098465571725598816381670638936804215254393845909366846895726134138162685251748246923234162115148310361474642613739234402278992371533926886292450813620013474610133473474048819086890667931255851290386397463979733212686359313490633489424916803365193016403719855394987505989718690727797074134641170440220636904927319619543787394811782625546507872856440193906118996183971561248460426534646361591073983855456253111008997923767610960847334484469641442382387168256648253187479958383528410256100515876202255243160894721097559221118670962258603928178729857355420304138426986860282442023398686419543984671420230076040483043509372017744238701684408902335424126073825068841075528352052250987656055822573923425112590506703055264052969650528168545551398446395968978803433160180692244002401893526416728983454882047875707315356993339705707928011829801655116342112579922980460545119087924220654155626821201404447142656582309192389642127690630966063477205909713052424305330133790599855507885784871619564255811935908128095324649637760414080565333820869714035751405313309632758579463957497975894810717763781404882656341997712994988587597005367797332611121320121103082005879226708832021924408070841784346015443093617502614136766373586011042087854242644666279412089528894073977074547250563568596889946895893891561687924208941058702575702094885132344982402208459676883214071531497359204897594057514581081925872089575908384149525213203473409623290245487196368235995977057600163175446499663826657932488979257158098950632784257918065597282571135909863089927445829567738382606628552703287653514990956653483241809367196942231033425153101239190550722594316161435734924122711265653033665640565489402701847063852765274564671533718628849901087339799249476451734703496149491727251245820957845479076207051617976797180051052672386899149615892901847036193647694574877152341558143164475115719524164441656433029301938366689685060300429610530879946405949661106438971397129386204995590694733871295305408098736352879521038215871334423113916236293606460235458975614055325578843252371968248717713101074461400356205515891387497773962555093178786460213952102209949388824648797841519629053764636988718619202248636916556915088291137176660467333587707111450095016340291329097508275622580683162690617008318483944392303451507653414383855921505943853433478589110592507513724830902143402301455999319003642163406776384451009809603912590979893639346580672551388334119190727058415761886653923921633925027604348058490663780050877370532113386756268401205151565615818355267261726247647462635680654378439018694648312179447511532442672600559251232368416634724714293951999434902921614283086554398701306190710031198964213056657822975682247430378349022435442901961048173142316120041239076406703194686936247103971756485569205551354863992105600727202848459598886189363896819538537165477060693548763547590318978800305536172457807241883216509705442891211232501406364258885256838245062035862865502829323194490237568067160388258699471847291265005601584407102921114015726910543978838661747393262529362966997015730477313251682060171367452045012370817680103346401307778100364545614667322251403784405405976585886795248309497148988726910449902396168994906844509446716273742036559502415474294213403071504536996901597590157381361366264519824113582619100445639795908128917221247742563759706023790804271022177367904458786672754231201529364348767175901383763697079409817955759534426269912786735877555072755156753058158736630021959450292888103471758710059963181398953056162401627894241130019767328002685852396968297712116289078324648260422106124492921226115824978027908015408082186486083794823663946721224993796974231631070543237700969039666973583470755444291277321584955976463428803403768533376040800196944872515151150271204541830439860311780653316985824316227794067180159860000299391618424382025688373163503488975867440392118395520086916772769790334078423616143653467708283806971931515601508837754234359388275821641280258165447804142317188280478883802758077059609872548122538620694287272187119144968470257777448917767041347928132127273940302481494645237572810413764825788446082308048280650964583722927152512704811020654381306075378697686971163271754900129172528923459407124697631669649499915836464305079801978504886691612874923834780604459892629830847140708138777498388508215793400713136800740853550535727829377153673835631451517692232792504972580108220827194937246317476822032350114575824981724290386370027987888272645512385893451981365686902161651025630153192712986051274066668142423118283808388370575610713485864254899271994723267520883918471989944379198907221962603310705033600920681754150046641077864271141399226513321917495219548405276875058473339676486927017189652243880715868548028902452326735215397903211904929856972119344590889899430879039321979747759759332747881067560248702470200852572139932548772202563604434455321816190217839442033068278071901344302011814604691645181773346364556818120915537534312442389061797645579787468288635722273119817050814940266643604025773374487903765155117668293035833142880133529910744463387236608765789688699628975167936673776985285080194078112106843828866833712278765188199253275158419710331896701201774021423588962768730412821929104408564558348831260049435316912231910482372009779212699555849597040053783624308588503715692243874635938847715014274983297066836629425516826162152427286663034755397901535855236026878309906540642280205991775098220508277239378361880690201125452763771002249882511030331704562045904499718253326859913763061855247710067019109541087840888882933756698936805405570297865556706187521100952959739571073618868830710438972169190376536034959111481407681281003426956738964335989726634232147743750558815371432794244110278232057166805227712623323102196379559580340166965051908430008271402991003429175325078730961438614294370295752622518364708361413250663224411430083432555517621285290053000851311891703532686755822707608623316676166234940587956705298672305411643111284141881415709976969257541663554475056489961808641029594335859601517926588903899671027783609904264010738228123629587748930386981117577222759457234384446825926010009784381811604551504028915065828446122348846158476560489338164462429023857843188521017207834272622319519818937133758036401402967277892796556873547537163216568670650929349064772599820918050660751857497458656236982506396050839227380482716597926954039571412864317089902581637150382275521087158729681642772432682817482135187203092432259637139053613869520034277860001616029408505297392413341789014617326165540109659410749613022087753821451596533282292413387666486588380107327665246032669723691122223211542033576258469908185896124387561968110752741826217847456762940630772176228412734402570455559033667871839978968422710972410711816222445181917417735653097144238108713544015612239782251220468272642687702085890459347501012949541189072609116226001881321044333269618983654291364830232010880910034089344995412064839238420218784907230092354752447357959146199459247682855822971735920131899369603447599347909070888191902555019730048484658587337919275833043556621460806588805717453406285985963232682770463826884563113388553023920254366284420386242206932836093840554990283963332024826424657127444666847865310342863524564442567918794373886496884356275545490971276882389910607192313663258033078591669671133001712539361670718095670426211230792811560258170292951289614186720775419305400127531352987635008616704468036157048126474582395053971291975548192298294297734587516220206175956413359425653998760040712616274401854728535679375072029753358280604900566141603174939266156773183988360331890664032710198884961420794197310260216771949432858339750803257033542118004052611367660269895038613505773409038701860809477773446965079781996803706159436871190650056408651054396170490346243251708602932783457450202878992818449791200066239200846220029677093788488724555559215920097724625823619442357805690932787515811850006059810102291153959257278433615113537786286651763153841842250100847663883148908409868337213969376543080525750952956187619954154953191274692656935678602795463458118822847806356321341623955341561296662079347760136625004544105569702090545225774018517355796923426308828778246834848439671880728867133005693461853515528170938718874028783041347246338887248932508707535406998275365603103222132528531406660335750322417472890862731597790214601668995064110145165893273474060614738497220052042791913272353303172262466925990094877535160808765679583979318170989448551551467700917315899071364064262362443818053063782299471559122986871545579437646769772669994738628249452103722434182389998947319089476690810114320131738959038641986212471235217637715668089517734344417375747331174148064444794465008485763759638251124180542354708963215391306611894304889074715472320362167411982893353057146031494418868812324556852064597442246514662635276429455476293468800392005469451320624075405874308476678501886503084909945342309061267144862241115045960822572267596288792539595221047404187453849765244057076560702794528733430822679602308643693356691249969593283802762285950961400117260201681902085645296839925111721364892481377811816043475373987804953304689183076665615098191144901949588895425852659787414723510163587165642165894833049442722982068083278092143637662415388100839537480317677597104349491004680647289076130664142636142307901304346159611226210346263779942109525130789972112679370300286492751592971588626236929323424558826478510631820839836663195908776288254592793673906212205744248234481502234022278218637055162638861234467491471468200840141042059321900821178895251333917927213033591652104933543638867488731665277732073351038276513747828417922161214757960371421989149629464152164990145100813827981302483824174705186122773610141496158355106900052459803558661304782192641759429213089926744732124079800588613334439154524564959050367156510390161642869928852203071165709666902258219329330546861128777237854184901662686583777593625127558745171318403971106421657711719430305553476550223789816054194988661377022004448476312590610318696051370148150347495892429577693656493735040087342111354637837055485578380959897951503357751840975855804967083612754227577084929640380340499141663684855452055672374692082581498628111691463298149113135879446934068467634362774898292140022388441008140980760341574150839454455801332247835487349290771821604406676334447153853395872328317773211691565822606685989309071310402097717188035432064896642528654259532758023662022998401203880512845622733801436357342365543260488128606983407773190691373586311215633613275167068986988061507964242920027751141544074269477245808583007362898270542501654513648023828647854715979823441689184806005480822528630206026677448925385629656472456183195864243416319845886170780961241961915575632156551441419411867076918743367592127939455620394692933550462246761203373443970157761971986235442057471529432803341603698134399336853322073384154983578752237731527693459718742668281585275941381191688795998033087121417500205310835378867473187144150315582925790832564733790978898912757665517770348248183681857687078092119955674221952186006674679126011914452079343020285719408852513744671506081061706265306215696839126575175169438779551835268652215180711607577753143987284726348823093192358429046130630382151168065497883780576491702079864712242756108422933101622232679586409281162580613866670809204598850111509413213526541855474137544615670451719166450163606088240186403180496427409794726748389883860474814020420745878689942450786576265098374665261824556918502156273401543268231870679236566566503436248424309463421876950043238035083036009809320224592854427801628289445000292749223063396977843301017179706177692438051920428563053355778337548642827057672290892766810208991611696431385978163039256003968309120555908971488779256779711005241609713145154013975693012763828321368108695628474664775604052285332131100132061503676526092790731094164948531717614561234631620998184293508379589695888475528480966195855300499809307088139772216900149939332156940651563307839776084087707287638215596065361856281895837888364035017220075658901954422692396727548558702247138161931785958750797521784758611357884001361591275063012260274837350342172710631190229788594188274582436818023417247664783533236683381804251059678587644209860930898878908946898797542800867905981493873840759459968367887262655976612666358229969618740438107177419864153723131979893581409281518350354013999153282220196168677261906942642310326342268249641045662375990719864728226977871895047151773428286136998951375682644570157824324730324487209345891442441204856931359154805224272384137932812043465989427263542358069025319700227194230102361513936970691431857841120233833258071356256144125678890688358366793077407436373736583236196451087932896190760578829053678215822998546482717982137257618189080863085022687987471926626807172917359212524731254906968058278222842763450790194009620549413710788853125415859218012384426621360660250402183452018643485428856282452196404244289118319959644755242155025295730362296671063968856901499097702967968558933101791420557176039989884105307595836747786559128374113469639900412564680008739575562689435403146035367122958819624336791976632591062577021867002035754463680176733642483943771053153885447608880929829735242922221168265069583672503761712137303434317703224019453205009143778383291938325469429701171230422180888640728235660530794444885589033507189839378610556553558868605569681133895063125048629081422712872259543181446260974188441249246901480778216234164748675063888898013221992852972591684236224739953002805899313035322287258502593787457735604637975952121020714427182311103903153132378536062574085126779702251687258674287844607581497712942340689560510374582952598770393018736732838524995582844999594144948071556255489846298844863481838019259148255349367225295154292207446870661292983629455813047095583229072901609442050645953010832416758188759014264091536759331448162120231645849483622650973120271901025601243627238597712732685097023910578341827998123332088875065458668229150756373395212790176909198020344207526329913353994046494153045414308023313149899857312173374151652132299716821282881180203599717327951928303629378531274827381379320360640887469689282074921524546134242401372173202583053964764287007932734311320654877597833085588663404809448138795191201630017633152469035215737390390703902505562543581080007620387064610134923308441648811587341763369703214265484172244324078200809099503509687279981633693936221012858695974178738317083059439337743076264596059450689554856492432297630855341190988904848341689259288124409411698042456576291723006567391798911277294758419187519452491476766296450904796827734892310333530062898330003457659866236138348178532536270151145202383068493088037933912877179032657702452582023831899468717410832363979648511774669339642366081691952432537770261499854199876135086605386363136004190909347208290985989909890800683418628932795902252048856701006740609729847221080439947742411032709165427089011032040550696338368542123039243285065245246601050784129793776021857704244154794055325453034829570013484957878428998764950337349471151794331155318217004587777578810334493526138628906867339613272015362931823972408194051217933085305815244524411212304177946177210268822235436921845886580788157292496055514450034851244478998755607574181447294368491587451892200483235110962383857143156902342320578302660701567300530684173637182496369586032980299694361320029612340473592095848227935088727022646376513366191389131938739759062642994668086467648639621529277227969239395360232524346363061655660918137587901832502104764810741785128225956741285240390726870961247238131414082051508016322364617999121607371570140431515847956041985780046228612868236477926163658260385315708939043687355742521742198395791765442657796436722216609716240617773748860419301779660408213958304385402182977021914134601057213570060072360569686628037251094576259248012703978470734803066086845771907059789296014299838386751098018666777534694060349465509739498736479245816470763399059063574060850706407666035814460034936420391573796899098300168984743937411527842608295131520213438758281788367642662613962728111748041264520582021842813310663164100550733047864348546203786100159068421134729428231456935239387464575992178246500528548565261078567261350001445702911209532012427752397379653308960561259327584718275770719091443691118442449671646144059779448646504937075072838214414097926576829438768472259797969153415925621132773566279585849940621432593065051562906909538254108204226223277741017951638655810274234546745456026476583760968442195338751450768326099247779836373882030986744994675516593315565489973159205038622373994877278598423569673497856107285765014268507666775340142670017406669829694726778886957033776415313152990186613031008478617299250191176715973163313358702724865850996539382494842729623387906697713027549515299339048767522105765406556502770862340930987214545553763126935007126269912529021230505476421966967710411779574025574398668484088304962714046756545387187474285947221650778190890517925822758354987513887033260184106802760528811628741507816141520341582933624716126704408096848383500279858322240868102186569323652991737049079689558437296535557479213831537946510527893926937875658615235229412221761756812993585309553326264397776962067013174430507861493717173566323374132176373110941750345693845637713003456379523260309055161947192039208887356526351695938133450459246153841858903384462201129507096987833961046513515318374041494022473412807582485362401771869534569413384813468372649634282341331658237562073853260253338547101244910411609507661935189347852182374173984041998989704890899843517301694994531899304677964116799134034707579183380938279134271831369719313237917307570361042750648685818962088813881334027240902455920060435133167029628666096085134303540662184083419817982647929028887053211216614215456837308953041983187183714962714394373602241952306838302925454651392571784765567863937073106458689620458643171766205486852943488163393007230248377418058657572727297660428553684710859803857943775678106822650581611219544151189355327717038325809180404469323272725811275243116051472420005339577699068594417904506741618690835878192784435734530436838310699147825680829519690987167062707102056441699321708770605450907354753229426130851003413014476273869738829243291626124557296124612651835679841699291294149290306546309246642603221293365968341816710855902873912762971230821376868378751580699484208986933183410971383134488649150924418502780041912815229213390801925390858207945007131053771565004998643725690046918716906695332131280116765681127997349531462821714911756112071993450334225362032664112556540188263200153155449751015202129894967946504502595045395440721587639565899408269693849097878088865872411604818918935104542090817962089104342319419550758713094317712209556599723318998467631416340329775722490937696696488156071373913607524697280774809499954652215167519910975831320846464334333986788996448246009236710587705427146995523891388531010172578366300253724501563490209212197302113176489309509191534040730172708285362076748427449451119243937343654954187007477483220812363612690202106459945112664619614680671535102885140682478523697411798855617272062566083995411187976015884532000151621206810415952808563529931242817022700633301961255326834240863411256164964413302690857027645630813471153421580802041261470104509136605927613120586130218240794435203517481836020314671928536080925470917286056246017711673720291110554975870061620524056883011639450311929583855404854956667582803480621157674725261658242805959098982638755677857653130943446455448653029953284734648742703621162566347386601214440382913739386001302717408517729894626515277535422744073543772097388135397310689437351447400631852770010216152605586767114830591582023079907669829905597756695386626222988411727466453035171955065496230393128056001771180687730566477951035168752439303648317638325250747249746028147160681544565689308818390087146173512682299875646041000042988935774517832518757648581957673070555382216643037435671496851118049769338051210224655398286637226901423334544285332912583750712453374422739755984263566100213725553494800316816479722201264405650984118403877166379268877410139286248905965660180968701221305949499785570497164579536260418385642314206535100212706119868472302481177246236616443556009648377269703592995889343724960522000876198056317993665275451338341228586951638418782754747151640884441506306686328708674649915795495616087282531453222773632824379103426314628064059559975494090233518223165664134036739447403937669043931301129333909283069593412660234492361413265693928530785121660184158104021421393501478392244235676297501636214682190056998410842029828241353552350792316868422851988489137748271207739917171544974807842282195467789721087579548347521664882369875077728687431374614746553342266799790424585147092240451981785714714370485957634819602150062629462738720577315699412908523602254775694068815308764484716102508514450628948369364241283055059079492961913309853683777041111007068201496816914412790121373857864127391975005249631834478929223612599458661801115026034596643192787743400521634992703137631049636277010788701235870080880963044096683487150903108278893321773182580010921232989268411923531132212944009556626560868727092954242038171085646545894429923961512250917881527006599550904482405177314133802801898662193714280280420441754492761298834855378144242570844232866455207354265984065310396848740453909563211474922424173227523753563173108149039562404856246559982123696414727661528347880651864188595572712239147066133824170905397342315168258081225944456273229314937379774781031806920423998962196299996193481906118810254662981647110898993560689645442318563268955670823418885152518648558617932719639335505607687070947551322702908696327957847029463422235941975107888453890910009302924412727100913510055397568051920992446223340784188343937025596567231441417366777323563473957962743786924286559224475017175731752082692517007285363243920541112136430933582770751800642024801761297160520256999167750100719842792101219114785522916997171696668568427919744344858906643194887713323624080574724348084168211104139872519966309671750721295373255986561463798211581240193192769000377522814607321611709728690215532725994937061816858194069963370291515567949469652239724940316753383421088193105274537782864795322689143496501755722451336671905695534793260327742601467522658145694997584831911859046636202045435037233487511378102342408054859915483138863263045471171750384689233407557381552647341287756574849571814871178327635600694001988133190768785782855471191871359755556454217681319780020348699460004626602761975913622053863522185059749001526093845049442399017563284005814533731313013172029259990825907180720906017178001116501432774977971249220373890436181536690760662947494425964494401373984751408545269552825991502912113939288818672347448826290591173271189493791279396166869969307110999251169350937892117196664371687044035090474871169100322641464790505300523120685590953335388590004979163677945643601332810383363987770166607373899332385124410793500313636509982726928292518734145083665905580444948299244158384770734423527560944014901843766903968135854821870130366811909478750630092845408642178929013098303346308452979668929848506679246723301440159626340424719860907191607720628851835933941643269569119249345296704170461620681786906425307531433959080814989048928284758420653326051774674896671734644036036361885002458809767125159686293628106772174977972834532809777024914172798637301262425066636104755619939068790902038183765671069334976315909071644284146413084552664285450128670117226786659972830699787305258270765387501672362072640364283019730131845306011334741309100810359831012106949560327589805882066868187410030204642087265464706683863565680558716393965472914353655237226437120194093954045991008676857535738732799089290312337622438014417623598703480854546301579360843142467356626962667197472261686435610849336672159489928122306478215401528660550213457757493372395611473390664774291832082346798386929519930737008801640773738616224962868285600647839573462081512290862350007010473337091327216099307217553070654401301385864945578000492240910092939532773905047634399228159459460035930162165418775525924061810701837520520934884882048861328168686875203589384854224371641975097446573133657549222005048619740547364212942253643617631579186500558648706429329715263893525105653546775059613618322072199268468238407906158710140855707169377651242550413069563702614676676529695267082410326873736889748065714373961647939072651756918117395864689787444907855092518304671560888284722106264351212796832186135855012141346182917256794067782511975933441977154247983700949439207105010333147934298588179324520766723643991396655949536399000238165050280009015250264507387764832677194894163121285269179116668587263891298532703691204449328454018930422153652993574338823374972012259468574145243004971016478650955070825025252196101896589476067456640614974415831748328017646233276003741975230845414606451756534638962264045237851612340083955531929568737428799315932468194172216018335276448562172578315613719378080093291201149727840674018040921253314739038387092016326232311708890845693876319016310188302926798612235570132769704677811473282769294873980066873090930041071767552847781119797796925275966322557051408841827248781710000077438636976063339470888084164585160888963338336645717303968601116211648182090342570613248407592037889015674259264373246472548502097764358276889407869363947077995712725103839660078577462422923996289036749156642512373613910529073982295963518645855348524255071968688441171225589622062087136180044105323164811795824922223506389957663122296521728892040131049112267762852800095912480924102342772595227367370444435020089758717956380519843309362651672429534644230821377689653184322728249592008828065364816481187895227324195212909397726657526371540877763426810744664019840170478680179771064277090346458482358569553279531789112864596378095313091269015335053011127150753158686447731863778917407450044764105705990384957701183887861117193148472446487751868902887717377049340772583032821302418673224618103618324791487433489021210844809533778184844846727820296855914621981524077086568376740958338476214012612924131091682052497777315284840702857660639155871603602850697520886589811253957109277885264715267397401709852022775864200667637936872436457512922235799688665167674549126139907213028112680247040922367042762932461105335342344144557516634873062533880514026494146530992321264943039303540187102254358346055565403214547615812538600922267117930986349193796904464797966700857164876293475911201123553640704510442015637505443255441039202518811470135357664271309653256943608332297902015528910396586593225240894356389412312245520677560999565401169408746847115359669111331967045793117054917469570259954831384226841942899444249788898153866405916587505681926366552208803897405806888194725575172232837775959875837226546649789353820355688337430131617094165330709495311565620561405479564023356155252674604725380172516010456451580693073159756815327637881334861039060887642452903916952651368384847457349435730048288955526417029042291350658693006473636104907344290285797420893062881765900830203802888816368825188153294293535375025606142264921007201934498771503649146074234161741537525887175129660208698790618459228161858781362923022616227279204016048347090836914224485552184439802639461130708833414167261088845149756155828935716967705861927536293067199176107410000223791020718705403536926234284564215461662052983752564619766727580906182287488136094910178233072681394729829984681591808995413002562947765912036050981103510174044291590998423701836866700068147008236842417271644872197631509910278398607975005997267035309278201018493874816452980612604007148015053468529534045462196456498563764533610526199469400013895510661416712409047152513228786211406889972528993677021465015773403904926601571798056568861619206942443118581658678277862365510187853691981881508738921553091704154956861940916301946985996724393941521434068006073220858965396627086832525656646218570515303156173351430289632143778941550815929050559287689324532645429711042280746564615837446746361972944196779598773574863553526157173902394417112290564294723537521849288401865275988951360284001510200221295928431244560529325199588977691307256498581094738502454407528299724976156987051750835758551047069273962092777790080922054983199123342485493761228298487275495565640974399958309176674667255665318612359266612801181026633162383747887848469407101023680164240002702802024585757537319521787809947929922289027928443004351759726588570835218890269713187015680719351335271027752538897592879130803197424732822094460796306868280861646511566069091981891408263647389211567553241048414035505797736490107190913788310133764856897432473452573524150482925408156906147089089032076244330006990821491665493441077755242511481465813251822895898387669698513269905837004531705051466287819883648067827900285934967750881231157023196380270698983058894869040880295699406804995049611404508347695991069039390491069231746529305783977430328843170521972368105728588538876141490255375381339420455558763038933634756535259827312172859639287347969177962421693393842129431106778050767780508975590625393383966863579630133828149465923649461285302847381394694795750650469280415955003928987983675777634676576264030127444056395054989405104325895870083832432253401791645880302459410529358189717536798453393402745040441175980164495413051943652193292049356889407236308487830248640518476781569279395082013588785376741304722201485693350131895951882070544500200478812686753798897620211984556175052221593545223981701873503963611023875681260484561846871305626536688642912133096505340853577469823687269198343369047887470220446046355743633560856185240746393920002732179674593937108194415871049484065037165030983381901417978843015086984556621528923163897613839040454041485788114279879750957586217323369821008540795680605260589657579546955834254021802943693917468977385805920457838802137041809457577217284900565501108710629938043027929864863085125373125882545991329652384775778649974016887412860177776797184607752253236604326887658944407548478790235746325775890000321095918795258560120492069810117683809651024765555174284100921224634995158018717078949470680151072064285027681031780662768980144388419413658539857076888273620585980109977862389644112232997865908792630309604315664920919446767735508618922062911570825831441759266483648142541757987398263100627971304630013045502478028325481216199443299954935687640371824805049594716580212347842766290149685152394925266240415888606704933137929792405303930453734282445302445628094159340040618044733546411682223568350109892947223703028898591338319587111545794450384836339717577729030065214249048526166735799138530286857332970317459016445885019955567663414049379333849809982915979913309629854798419050607968072289839109861364343585335478804688090150360830750575868271360634745847939326634850098078985018920173534591573444232294219915910052898615858506512332994638966717261274092864919545955469659636282901158190761941970847710884553621795230488566053417075629014109464128340947642613943748419805905173494459520155398981048354313088269365114187906286162241281600049236404082712255143822829655018923011410271374511427959756627372836486080563868462185608363734312829668637486679760785320061113748572002076254031125021156570948552456624292402479840836852673000011984660441026458685604973031074195847842943789675470957418103010509011309517269948824641271777666466263826326580547907893918733826081214094199210279272439320859771527225583748871536748921330634531574560380067200733544718683136194986574507909663002117509803702806029279529877989393728718901386360992360726756207042386102745408960413761826547933511580800233631292091675061353204290167589260861426792876713277914009126986136680515971355872686945763053902236034609322513463312873116646385302808398717070186572912310810673586719963518730918763463181155219605076028074937134210257098391295710465871170191441681116692724459460441068119369190369116945138449847609316522359955345069603709516093605504950020203562424679329718682415780688622709991071413709390207226123595277853860460509686002078568136647641824654719120464211526937741709267182248319149860439108589971398033513620973096371173202600842337684609211091211812008305164327814619621563655695983643337273874269603680660241025439970455824024167702823861476974727291245149795288659655455787448779654707534374061960186359147835813404965236839601646264648834739518439232404854751697480119162226263078537742817303440098990278360976862379069506297921286818466492363114611962193734321101662205716100356436371666728224990097292823470759430596156570954161810332011642993514530784772126058408702035732816181107000587649779781719347179286954076178103126535698520304456041986708696705033356043385012736227262319729245653915013965967007233086459667424735732594678076989974551829124903966923106417602184091203789902741506950478726252867515294711587788283730304328390986368018515499543398066640918742429491738264715281962513227779854005174888514703242733616512385205612680966154025192549601498103096951954004105647597874265477035118294425001182821726451202316909828284084909240800630021655791998986343400067389487161887053548967914066013608270837331360186908786528830347411515128232445695730303936924244865965760375801731917286763656320149118854110651183257914460376291431659004500482634613423394169786795682256838499641450204074973014334304630883106568620493329335985434468673014651958510700894426714872760339430132561518850676085284305378818148849352615645972775119836212242373783497897047662635961351791589834486894129719837180882825271164101232378722972534330964208228131588773749202570532523090079239732316613678752624632819144223869265800652177526212212887577086186286247105150724307869982787505053801622961663973868360093214244584317613707586895207271496865524734202330423346065252926302195395069030382199459992434752451502284463846867189946982462278592693638805074835216063995697344910836586907124519068083314746709108005851369818993174892427378572173619604970889400774087675031553228628320532416297589667600295724973065613933509154269246257188966150528490028470595918136250092870763673149036865331535526810968525159939020727620327609802973011524489230062275309014723114236037706470306053189248171999610057380311617784380626360538320672119585298019029682520659216037302083226240202035324480092654325647247514420277558984732091678111815960830112395584422581972303961672939495966085497759723003175801233928026663655632566438798401430446284283386334907149225447624499740771877518864980962131214585890677741849646924411576780135929167919957822252276122319087597947496514189397267831172671952866753618725936729984597663814346443094428711035474046596628414411371285009024477018142708427010697582970574803404123081554332921008377308622248712047443466313397560491010215739000890322174558011030521671318088483040785045162793326950997766097248168479581603157598757206342478163518747843273175287801362883227608039131614303118730151513676921746607820838376040585647056807863275719326917537264930735197233826156758720611032004988482430503653565482994584660048907829440885061824895796990141888366446787565401887524501270593903063003055670722026465202915798480837501612525982089642588802505279527473413147763496671001663640116738127692373664005852594680461953895477404572099834320550452262130942265268968123110577575103917604929932790872261357063897323739663068003461374032621017738614763709150990740770040029816155386291568763682346100441962305074665565938824584258516945931961963477726103022765614858795292646822969100806876648704751231826660803296578999237529302608845766171155367027754864030621455325332970767370949609278916330507505837082813423148290922495994100175408237756712119022188828766391274116889797147929604252703306402025059347641380458378944442398769646017316653714256231665328645583736029717658820353122586087447443130655357231016712563298240519173542702823762420277986632639555595825299439059701354895018669509753904934022576027745656923997793342384344943894794620764399079722984611099366980195724866628025359008461003564372134105750215468886263801206969559159513798960037153469712887845566750127938751327511616707045144589366642127541177581329695718956822013343512664992736688560955673662083003559313783108695058203460311008346332718998518017654216296391524759515164331089065276562124901211044876903752232046509802221893902180706036424382142254112993464317112379368673821966302443634991488469926762392775840854132348394289594493551235528081672363176305280683452676165432304969866387852432332278655904886937099254936056326032051918059274096505910161673525486943608271409928510777732118825889596020653137111437143533483265520851065925785551075453764544884576356146883229581481379218647331314287761009251705230155835484559162488909714908306691568964748178878337920880989311859788956089586788485132639644604480976594956855557551005029779082824644129290878305452942142590293908864796782207908431122292271368075835398474662412886341373802128145815121688875077243483206684442527610933469468553926176361220862491375101919668767708433027167644285342884799513843289843632989732573267485137018231408318051860054655853768169819349806722730054216532208932095144784009056510011446645940029909772375155626412403894364600300123925916007906708341458459573255976828859841601431511993551314886760336821521719514965945552210327550027289409493852608255411064052919199404801657814097877427735099558519788965614958126875379094588844761690931626025402267589825416794649174114168623102911675031808126384384913419187205993186228657296761971552311586022119826927514199459644575487243441492458446143188490210801039574049386286597385360323491102855116810868105332937865238055122072778240106140479161303630567102905322576479713169596914204987351203681484754305222292583503900581040971010707464963220010153563538313516468382748178733232953278183127617712253017764927909152771174973975865371953812651245913093212469643048058272136841033154047600221654076529731696726390140433437537464767641883740773942398971299520402401355688299170858402699691487022782170719232089728907967960103090120109402767675807086295171432307486135317236358953223534023143450284987970269408581360917235106384916889224029846865882187129140032101980318740051525173363138876888941921142210278965014169536356882535644607698592543806201094769636081391310330202978960021984247328881390038644598423540578586239942343197333111263507045883977813118267357691754333178195050483692440645964066640543741056366094505313801314944720145217767358165784098976087928993342903487071180796942932032693097381347079831136154689603808228461987068419059211930875642296844105466067413319498421240994487019542038390842551898727655566909821624796792648062878365884582246195537282595712139835318248315474886002955333596827066647424665441248102058965715288775608973965292761935781238686243332072420337732818001704496453443723885782693301983281133952391255538644228353578816143500737418334035526367941184993650242357766111547856001850787483343072393329592458426193141410517417348361437177343021355708964790555057550776160576700191354941972918038726984170821347149033453325251939603801549851332500688318005338306667565640986086742746474222988136936905320068728744617597694197800515564902861060321005330423743653036102495884502384032975970223146736096619230089959709648141923552245835347246345290146167000227528806752714801021144836551544317444680247703274356280967877918707579888640070822736951781355483838001784202640885721364118311482896147840448774709065332090444929386906799550806621643165846973928200936905658825490018846633325276431963305165931148395652764668172297227684467166293804993416222376500605303249967100383922276731257544807926142989699860404638227771203827638815719356792673784746425027338886555507751426712870839658068403009585247550121286809795954514816975757102635465777694757846693640084452614851448537468532546269133427981280203617677132306239633221185455031148677022444776141095499667254642415769239459966950779358862918652944803613484211221218563269889300919965641488740495141035831701063602032837443284887697682715477294058987850481357136659989621435478989689457989305877735200238085755659960175222035809671314358040887671285677591896164445680619647146549620116563016855837446524731682683560303027340575369888074052703503059235430626789105185632662337495639130727043627145971010596094587445237359551622854220189930159248082823534291200682577678667412839318376860101848299641048443063018334844659116633825714714403050377593675995908959303560662677315407076672121120717631760173458214153020195968866647183767665957925442137003542302969976495353395738067519738022124247705526434976006312104604501774037052576726178683524269802945198142777915625772538277795905209664600801798549598988040272944803046883854039719108277395936779381488952012546705480473360248097195099180154605071395666209400406189448243648642808689503391441811160804315019760538614374474783377563675945054232102751639336060175418248158726314560054825622826870162820634781069126244528842241225363606299622260396896695292654531818980584903699634733303183339195538442531442606574751993548862525826384273262645806364272093072565581630207623806675105889232955893917580798227805741767949106905853115299166404049154173772200626208949378196128762118168424008509204191266991328240299653332393275741312789034195894253875480949240033681482462440652975621840190567904531399057108043810273797408933081183909825038538991382263129744257155269306675600915093353082879443059048823012610346902543596521729091356375831500234834911626985705519178699558249470237818739986332784960983706037621685610184776699102133101770672721969205728135068314372174455738494354502264650287452871276150419565910678912374632144526018186097524303216279662356797685745889182668357953323443626512616592669340199781403686174429696175343683912439387869791806857666722014682863266832122268299927476358506983050066758470195207746901665437533868824369047625774615326525954324016040386521552688657816186350305626933194891258868907334808957623060441691651400914661710314044804245094558019624332460754686395819859478449554668289960981045797592928202549838185186068805777723660870639582784595584734309555378787622604904308188284655158185760413144820159175689601539517855957352174281056377387364687109372211101312031515101237349028630874993320809489690914494900198840238078578943224492204492598744217511089127268194556223185102368626168296018543571132141980472329234723602822904820211477541418546216542100361215300831871811595505781321468153360342180336849351601700542211944757368597349919110661029226695307560005739127999002671929403273769994177685331576026426938750535347359533871179788821746943455447012414503353788607438893610347330968003683966333680597455638223630581512173941399300181518776096442659003416341341486470490993689772562996547146176462558995022900779672417500709607762757996155642513571292553569388972880947625539872988446896883980603373365060446302219852360935760633949503951260803707227916261246027041724390336933581381259748415547426809590590029236195359587777046230312296508168573797330150608542456794537623973047311845554821292246661757084790888477476281044262731705932700787084254247201336248874984250112883801909072301468093894429454113631468220996463711387061963471053839750951628365455946013638991475424005753464583754683585584306963152767758172847684549590368339736364360931981862294748292405222892647985984445630865990992677456415726563994598954035882633070949864204737164192919029685805538904442365874076367802199515280399704283042499978806309467925767849387530747031129612241800932255528535589357980773004878530152560839262423521226355306588898336787649534118101045931830292059195968606774645129150592907169798285593398571686059132390307306868380041866346660068195725068117003875966194758598130726913115246065659057910201779418891553800565307937073214021251311664602172111403897073289000312257629764209214290167967823216914836312177271990438518831931497844555805757461672227384263360558606243255074550821478570355744460855349962105525187179075061502871880038989154668575334869494955838878691353866368560883528077706504323638557582123654506284328493383229543904102851881341982791714834324412135869337259803481918789281256647449248256248990394985004451354132862465598472204846023252236294383993722545749523308051167613992687704751395983473028927119498426354947843986663204699459033878888511460078156844657581416350343969351926210684760972637357455986936861625798821574111024950683896600081389289471851986107901463852212653553053425664333130069328580040723905339569870527479639690544122792922499621734213804327868510419581713604864957158733248477179772896769142893431509532063450542666143336516288596706652534016619393483494166724033031780321357133826162498638518566530434281845388273009816645255458815189727443442861937462869756740677386025876971983747134777476042266818201788174501159860959889570386741606679615130804132903142507226219117874131698641024760540559820578937963072588317165269024893723287947797426112167610811872320450067771170002765438119166571454544217985634442385030898506914391584829530719323792661739466984221169711557935895188773174665801856936780217140967996163939074034443543904609060201440755292625312503388396076866736056332276968358305205822380540679593405055158976516218468288909389110994774297166039291283192410239733462555198146855728259481081356209730767116555793424228891932126005574029830030714538347773196095334660315562279429725259530674702144995361881429918603685021533795111600076107752095945982788396266050767000127019738530445584155840807061326706080028350322163899163082810372805383252484530479760199284879881035854639548727245386591856448067866467901115757671828797882551453789120195694233100988037700815065044046165795210710253421316335756048044594925137767575502912197557333577116935293831099592757694510758172489121625347668622165482226587899038771264974272381900297117074605670303146730562465997464144460426557262184073480738283668568790332948259314207588026855698882289509762784756613029087620552117741411361088529955967428916637678944313092514079270246500133766177564384846454761300429036671725123921559124437139714916277392239528625182589515298690329346655723214079494221675452104450558357233665006480647275340959682822751457561434092778889239737148555290458134457696773084274612911728844678234349056636157043233489576733215424246466787481326490287482773416715846949227795675961782014075276211297510984136462501787728701725567815367042504111712005946195761846325038516047014084295822589842043682811311876734794346212239086501930980052587373617688814479645731778368054725890519944391966346392870510655440309572890460868492854513640964685377661593475192319351166839108900015356987383345170303706870810034260304711628550650313069031722762145782870467735706490161108498101179841247660874001021354125942811808187341324910877556524849003621698901888907102772558881230747413942798308310687285434968515878186646928251901357991859119168020685084400559575919881049098456979876512178976900240738720995992977449574270563202494902002967693383877976408177076518457251897800389110360747652232664324916965042337646444911365903283436598305307460135880538900946525665403016538036035453451299974750669949943438155771238629915589627640507276063416620231012930952045983266355033460368039874251825621964206180982371696487812575089967917960715007556153104531881963122898199992034036822641764650182356939877648997740950722569216854028269947976038614812203104490490028286738750165645201922325950989179663003030105200497958899933742184004823280434652999317786485155468728385497636888242289972349388014206376512971551616967980406923922026991820740012842798612303473202227854364110997598596628341617725479220930700763879068083429078618722466702359058851207935113320604273972503574813096433474748239257682100540382119588550079664098634419171985578633929695009472624741199632310605964057974001744669923351095011214226763784065687873367323552147133955044217955756717457826516412717711234817252257788641173772567476289450402426917405235631484114446812745083359417594786511767394094887318915473430504219000731644644872135688105919468005361461156295611772467932663949889570433749445338265759276541215341808752976322545174667737073187880445164057258929427808548217341491638484102573892433079615756733208028446797288113846210549830502593900276752683881610377014751170864730697024932009972312767454153567302383700447531934752772465680488119947151352506053972639649739101986574726409921160307055784449327830649760490987873926241195987657275129712306842016573417401433821106011454753979818609470487972271345454889070427744089247106987142069844183272196728434122325697804123826646061685698416907642593186335199527234379860275955788810258142303757752794958637963016943588775688503595131055625386864581597953219775269104301877395146672166487653185704020737094143750430999007536322863060835415383375589127887420501209056266108362732005429238785211821109398614910515201602828610615808706404184041095931137137509554291291751585646282694718231248041805776328395582722466963323612772469361723996995734174576600674723282050616527950453019756101176978048713480360919051410062286272940829934198328102663409560356995311024132625244647387135587540544188021368078772743913962068761290728187507944341032482296521769825703336428405204607396914677522854526232301307344214901454702728712379733179491465675678037892114694433598153027729601136543131426973010072122317675755912828391819038886782876105215368417814316957534140401094606486397903554947187815776396531367502022055882609322790937232546768380914013039111773169115792964727050454919409783381822123286941251821944448346391067255953851849075747708599973736374311625339459932828113667169305061251314845011106124097297110781374980715817511456766276806510364214450294190892588810629489541521403294397010902887070642021616091161169822447845947742380817826078880811930526364009146549469922905295993665763393282822192145313853405916612376017070099350294625240702305608830072667230281672960608968467525297526350625510835490163399622750543741681407808121946084954186668096574613306927063661703033863554270724482969176168525354432210777006340686359854985778053466341823475930747272083488726342583610206623452576532131174976330649915008447220547937539180391449792095346476276956773480480228077981193618228546669193444818789535025419136841264171237452265373803987651327825630131943704495956408414996457838102981728088869163172274873234361550014885198437350885130966916685590505834242706188227733476576575578969873629145942917185794343007883333281318716962934545844164557561435926079971585659063864556912551065366881742108110712614219136196950753117352622417816064511250714135107357982227936238557268464346718389918051983915504392932951287949826035590819944089998017170530834288159097936475363982648231699239613349879356937625526096570630457745716818573918778512947941551776644298700142841196293519089760385220686536634630241363586626299451728693847345152147053437836874301646504019543488589748538077811516536868993142099178537864434919544421955235296344863992983228894483588306607905731577456351683551743549181777949957996362871167244857920998887836412029501059761025421304082624703660582746216315428571734672980011760230406482694988825033676110493146060985993635681086668320741024026969997045400977240771743198807776658823953680823630121857543518082428986470086220417165493663398169925829522886406777835935045265742972634986002829374203298629009772547771260201145927013018936318864032611164354193028707832936263919407936137172918578451335378023332918991879790759268725649278506950588430881975888455665588976210477731427923650208655040000485524446448611147269773542013800277703787713428657288139099114597538890206682302077186053944534149971440840278877900421160269327738735818163402085951885416530139215643059730730956629021528401870354918563760299480264822439795990055016767313205662486369778702215473455322888855046172884150903775344367658336328626724382259581932959619991547212497882500648077037591389363783140510776575965475862498306965782130100357754056691549748901026015439286492234763938735449756708661491868448796748451747046447245859693539577306316287984979885234122449012473818470820594635678712661031267124990714003452677593308016454397126553496289829103767563135531660383333218658959902922140589281039623023692965898224059602308988654114310778798665570840834225310866784027948576782197945204080270573041156054366873629487037496793336324062294855911320131886078483666805716365092749908040838965931795522448161134351068256723186081067289960755639857131874726215485591021967069572498650534037387656238530169146098454156425095166955808622511093843442952156095728657126242799596176109935739048633934275864302778771800392550523957275350201817048888544145830899090836235187968994496393668871926199027124471133741978337058517675728716760636449727704110602076812186986144921947469163911273995802679705713809771159482437814029730876917791912542235389410037018989942702421265100777121377426139209218454860183636369884532076731180320972002148552794787497429087619966542788703299830256082447505702829517797198755007122418961830994382684512021119190120119206818347573049105539353996991631712901057281822281407312378645531070852771455438606556939642751104503735012283293959936019696340978327574380553300481378576245820105120114165834879093283628812800160891853286877393247726525217475874897734597466513946515668719985183005844233659775187544995216549547116459393010603883453579363907324147848567822021328929544290774571336102377426596277904842530443848147256531615455071954050904623376531430848951188470447459391161920937765112583955107096103313331435594622260341379570999441320391836913697609257134363349853794359888291199291664197400944368130666280789039039355430836902584959106815853035098999973456724835839278304424026802136476539265675950988036535214803801996505308340759990185023240917487195431804911065116786954672351922004849921463093926306455527129053014705523700614121515715155728000879308871284492328528815273654395814126416147071486748240685363049230336151937974600799802379765904497465672188932022440809115570464959697962850868174631869453432455357300329248019409243898623216285205196085653118568894357188190613370459633858614942878107107977706787849107283294819646938178363388550941797211038933472690625129899288665624512494156189945017536198208196662199115193594297637924564062320264005882553015250604673027199410408985457833691374196559372041779165674063153105217694103602143275712649232259852362937753036559785775732357125180185022752686525727283986058164562727667208945223822297650414851795888523120953600270698476846812504490412782042763019470585024860270397839001642426827997392999037451327119287107066299653969075801788629303163189309839131730691181980313297068881921256782443155906186318419940102599787213771638494439281426120355215970423352219429718547676795282164416079882555324873965428665439859477575125762577811499275528714569376545094755586291737475820383490215393413906716593923466593589976753852180886946914909505804322373120505510094649965260613470892112360552096292009281341830064212761614691494165298060577908219227861647368138491941603571601259978873013139158167127263058406843307723835245870767767398060588143406871292921090396498431430704126608356795190949849029468271374903910454500356631221302551890337631073887786237419898213951356303199093668856830040007730978126089980826392884354109793166693582767120762097129473215001718015160700302234499207570701699298798448263292174347632991432337888213847726323609341018169867465809638548078900459066037144666208454042113971996872801720402844512734182738968605622967870331553326379687092525032205656764788634560446447634557564226151384803424195907872214084735278200989246983613420383473704486865986801567744493076303280728225586348156225324402203287339936357596815474076543299775542180675266292620810276852878605219241990912913234628190888345821816032122145281349965046544664497368498551834909360358235601329213744490869864556009803981142876294148254566324080911274428913005577031444515393106831891434383464885414549023782432381903610789707569377411841695364400889191299369070926596798731909482867662140384531037861715374803893526486788715702007745097062833181955330545792705880318024852763248994584114204109120744051089619263040487772859328877184998100538013066352973333525715318848734765455647196658523440574411169939979924376201962015952533570774800079716040660300827681537534766522078002648469513162468746180464542116420830377687389350696538946217952783427519996755508106046614275361567616387124741133173319969898320194493393566714562423950293476364333475609285354568859016596380553590937617065055562206712407906117300901017048366829556963229565954175659935318445331389782017393489864658224930976780374282558907945212841665749487345313584453084020703120477552675052561539342676645533058575335982797257855206877938106907160348043760284791931055858966895116558627995050178769239726424498460691155795525087107361354518586966137911350240992107674123704265486360165340993745543543008939380671077441552947227511966577699307306217457784924548577877683077300866537602939123789957383742500770038182693446307039464288822411971064835248232842522128588776233858762387297553927750632017015691344785125260340163139316779449811110503987951008999503432264997985251840252311938940365879797732348789108961843225718252628962061426466807350825275759484311811531202618297102115876393909491165134737974701405098539343148239360561432054888955929366253077637359419016840693559738797040692642733320024679218948139143598703855160998268508315164057107522569113107165813108502087543658101079553916283659349838673017338098287493409358263073553896063173327651124826779971475548670519400841610209542272357007035940862159139786251069739866338974690991172457520168930433200884779265214186267645573050446291755063376846670516589776071358761647718920478719469919162274607441327169703122775514104666974110351976233653445504239042564787150178382360067605795702831618685072583889391522147633815482553217190659991497053623619723191736471838414359015472063340415784064903566832546894254007615770455728558060486186429560262556515362787750842781199845117586389193066030558072712964925663550719879377850813755476961276467191060632553879383014421763793054542199480145021464879253093581394808810595490043458831885704140462630718597382219758941378896042367948535600534252902710471910058767925109841259503223083248759899726501073523602142394696075929073557501954857654664455964031493224605892599429616512180716572682006446133085402616977638472376977565521495287039060049684161009379594905692456819566056112960127200193544591381903511053772649263116905535886700935536390209066896992686808618615483595638453815719986065573541086858835152415569750018207353704455379670546182968006241807330642963406318869281290473757241570971083318507779654779573299133114409187828427934450925170439035030435908393784038430744923862610655501811137382002750885495191679163890874318697949322382469059384804002332577407693532364856504640592886177129545916786153938508100452147138618235537929015286368076468126539771235146761754271106307072976466791968709180196866466116520686237556828726113850720264429797457707293167759669403034376677732360783616833636306575690831429903151829366641521868172783499810860765268018040610970652755423409312468029675066741750211304147814255428351920785014063612355859217332724327378770254677076145539204944481981107370467373478463882151101542714804122454628916818513124538497219496258294485377128360406555651277096169322390263653662290877967265018187798876193536126701711258837270186729796358049483268863792827483528622216993482846030191718760439129424376924981744606201908286837926310495469634608712422847669420684743539984974022158355168015323176191818278567163681564061661145743492851378374971008451364406183230876775491237624057607708351085505239739682161635002543542916635753693709471007709180907359333321862718923593937757652050671625538388281223555904277415526895860826802469236218226762745018858529732438114232234393453726628985140454494814723946466404322046318974781452897347827364666219221500247851568598176077959563767812238014382487054380834443615805671569862965692242167225116471619008153299543894791761299328483666736762754872515861407331410921765330387888777206120890523148452228894926868033835326508421318638893911772643897921839575265274962073139550869771670237258706900713433188679535341010245621712155373666248219093321270029501280871946667366643037675700143911331597091022248998463567005020851246232619073231009592579558765709934620209349090232974391917268613353766303391837531947283594302524780217931384585573196391375428260791768238703393215742356307200464468954118024031686500197344234048192297176884612896713290149689757514058904016351877035825917201022584465400189041803010671308715599508348803034214435430180307931807642497949449006308678820151296402660284676364850666347580372415342128864833403712998784531171930042020578970738086613576809919954699369098031242488407829380861283788006452836342532934613560457909272834736530830965662067440104823619066883926476784596086228607050739383119356877334912175012462296991400004950553544999178881188964480069094176330980484745449886928461693442981756699170336082140800720022334692811587133951511011926911862224562172502043637760235653605142460243330172731137916278116156839675697939223337546024237226825227346305014385734145647798872030283580233100951400025919371644445508626260431178003588735811400109096726416343548330939345935062410418122467623859239556939307413256411140643164690098576514329136238333295876981162691607575793227355663611878893523244487147136213662446448522197306357316198552374379816518831376207742557318337897656601078625184034066644492131396224510990451225971651243913641293205051839133081683381660759854003651827709289928042995214260796513081794749843463865765569558129581848171510721384581498092611996486583135527260859104600234909406044370920424901299972981841977899276640317778278833801641918966545211981106421637583824872516568164054036728091281811182637682543973993664945188373719167662249408407067401977560524577168420919721665865118069300685512508608115861369038303164734752221524265293851585978500623291682973398063358100429560779385087487119842308518050218429511740380377633207944352317756978410436337883034136794729637476397312585150156287321912925656128142424445024976086552321266912403231927975100335418197167431734127943131150535150365962124561054308319944210268866555079728890068793057643328341435320410504183610993408137815928082608433241508967123792774328116636848038103235041785687742871323108933576678328489657863784857323412819346701154852994162504764384449806459573042144119550140861034709551392173075713195567050574139280033877425283921459797991412556640259644474291401650818068359133279662202441829308328357302859763215695346927572816024587921420322794044365059190689879864774166815884493554241917601651900151042087150373020122045062767541046201939321222814645735046677301192070689249875390778982600108524437703157676742172840838145027476662664651838874274633400963147697733554208075687418112094214874707136985919364231214910704807115881537369983206483517254424409408008202353651524056205796242147340304533430355435423078457450216598212799541242758416272096403406629235613716864848231088557276170618769813325313935609952963527126685196032552008611794291897067944744560793301728671428293021001291916638763508991382921256135027988182222438722285179461432159856463015008757395403598465320130766751723516651791214061150162357473577408993505707857686501814849543877596050659680733660316469168052187105065843409982399511393420985763924927704710224525522449743533417523841015267467274449501744714151860991416018508493635842694629087762860296102773734041796708682373793775270849820162331858499823013339159049586476807664015938521960618056961849990968845902951442084549887658387349152833593663909235325439113268685733038457277123649380540460963337646088409547086265290837884015779585030816826294376092985982868255075646928589056920673867223719668761019303346785575616184938557385787216465029352707722155072360031148703564758993428756219788288097935895932594532021540981640748310316294681585541330690665103128697606810770049105032070365574124538343881535878382918192929626358877570773529110064218083117539477504662435877749839951813939225516713213432824172002760465344961782146562955232087677936997787831456067305429831442240297330887016469810537529058752234866686665019244959043503003871583207189169008059219917348842653518174163219198289107591516933677928811648207998506431067235941227549152820063347824486023823369695753532308071116731390754075081001406652694133845606111192339078057359911424553388281625043656124182951090953574905694821467899253559348590908420250935141918975595844448593222046469213764439709237480117399857937281464290084296428883186454505566053754866854126898013083567376143219375038904006524378652467672842579591979275043044654943703468004504798383392919086659621919420601962243695548467815809555347153970569441534550706440580674324674966818244556885424312232505551816734605089954900454478000397131880875029946416572315943741347295145154421967348925350241634900672561223137887606211294681862486755744544829331217316318331223008747522389956196156577225376615109928246166485230865157063326174543183579159327379737198483686168395863917832895533982055706440292213942096320851037125443865533590833805400268425664039619761967972914386342012907179086876550263113883451551965764469727890329620411311601094704692334183259535579418307914632791586181847446194257708343574492874829666945255209229399496014252334048184589053622574839949648918003398827081023327620592870164453552859202700594062913295584547312503663739530069110250462020487697218954154464666302152982466600213637127106164147919294233086831921508890570857349569608878571743828828087585796521062784661064790609746210181275864288341383504643565446431397909132092768280835691535495917406891793157568214761002960274122439047377484680233631416564899127071115624893820167618084221928734505968422632155446402368414566900594405797329211204120595139056070949892497015452371118489662371337453257987372902465940426889307311219320504933183173755946842476818549542652080878339019330403923914254936440547525581716066344396904897152901997984581402359181472044029523204715996784125841110505132043353459399519209190939474272417386984613073789967831531299746718754396404775964974005399957203146644568709462428735875879368529137362190181792169767598638074919162067444642566561519087316731041050472273564703057107895690572446785979341657189741703256707592286305453773241495281774023082242524349717211682185006355125701884439691109045313195223646826707360355663435407541697685107770290050595278525028076342326542036481014666527381573430775290953177583497962366691885258689084194887894774577954624273752799604137813210023080957018741061891865387837170965157156312074374504739702532032014402154937767316186863464343262215985215982574695324127949852322066506617948998212278397562178188088493685578017141266537781805656899129327576934036062564973976040325624752411431323884234368812419418884759588571798686356122907633736366492221072544089560131315481578709170419824418155126836641841501366983129228888484021650675636948086319687220773995004758406792430547577606104731304358245915738902061978424040813996929053560131964477506006438289551169818075839814388576685005801097021259499140438098066142841846087415741155200134694102485715215290948376403437150496189798789049865603431856743748719820733252263292138563931560863885023385665455343854034804208044099177379141956674017361820011626238166309297627871964187977392799804829675420417917576238617874206025311736641661246486706386263181553847046844387671317408137596722402595814034540259586127366856680414128474235501809108998554870898235582638879807589666289086363446319060821393163758039660970150072466493347971935071603567501319138364262074708143197918668018573309086194079030950844702099920686125412465168379321400354075055141423512153221039757048672840489185337241628955258141349277670407827685564268281588169086763133123122876125092146696064851192338168856580590978635327282003573531855137981740781312272715510712197979882970211317061609610042351602213604068262235172474975315202593357542446293340069293591245989582495852507182104719048938794818487518162279864012418253112476554292916841547827917354917824145402445216064685026088003357645918733633699478274601640285878930097840549013408097667697252669842240796978346439074768656606071164481930153713577112212690452119028817964187758136031278166274889269625293996894454641065851033167498014212931786644861184086794758978447448909561754619962266315110284699202865618838517803094056471524701123155703802502323161122271677464500317928794758581317536869091527222098198722601515730943230167909022061651132427729819884474998341141427861536995461131122077727845554753331713448667992589052023876089253870561486463255569219879809594991530887256087093901099907051648306283929767747825879602077633150085772475449451601156684351984449476208830364784724860410875573154278695812978391633665991690022604521392088007987101410970932870441111955568727049664688458144888579413702407831202392821249693247593183993369054343851534277647024095909745900053305899498888050404782969909370255266230196462196158773455019080104613219113925771857450631773056319376066484675239076464913063680904540246238985327829808945156836183124190691981213594802829101649836779290633602861439497338501881208721305311846133226072560628302133849267798273253795833688604826852393994065866767496246389370209740069334167211914845948677777243785003944393435999537454313124506073493163655233147783948619226353385921888400529434070555280825671927111594820892543961172967495129045192353584858785968369827473693172456677034172826233459702776261230022419491355071769206227568938396343222893119031051466303726277814445916061850346755225464325798912616064807819394122326903276370304968980393269239675481814346835472376436175399174352554494133764738604280416159113197257895431114661613571783643364881862495694619657414235337501145929931035801093515335155520355393580767031216456354533594762318141244020652993888034646611653758822726223619678042587153954545786406908935387383845280554360817914152182404468518348140271789542799421473033632608685447968253184010392833708257885164677159898987670579235337789545429151530750184056775499890921578685502550904480361078652783459699158489800298364142723893406282856544149379607483611961279423815865691449459595002464418410940609018649270144853395448474061071662376401101205128228080517174314328699021935421560482385310580927944925580860194694715266913346655591764989238235730946352624019517411128193352209214270461841743235928221211069565930009836334908718138044220415917053130655202744164236919668908064775128132843090950377664506389573079067900028273516268110498769654909785795202106999969117398619739688335619010092853912180491287664922846261019956753867053538134284132428423228612310572644210399167806411028897724400037172388189599128097681904918685192985733881096593024914299260287392055999351049524769328764083694302841482928194968060080174337279904714213170851083198204232603421067459417165662423040113682645027316489212699932989385011331341178946302314062712976208863295799835762731084997207316779463406622832072944545118553941196003933896868798534329159980744805743667989813462104436431546998004133842016000523791870688088448595670012240834506585074131348715581047914118984956754187674741767108212622892004058146958402774235348114638504492791551337560029290374588352387382907037380815037562873312444833312287505384693015525213791869845440234619629135548802034872817060108870650036860849205438449112208687421300055128175165147884828969884359617230479610201464080894562952484360510779508465937784448408054707203866855371025267136264340528921747005702088093850275741652735427391890762460611927796565819912684170715041309374369349797915954751320178318667032427976263656046017033862289079429500564622492178092594017077151661833411025175613013689183188084020240630194138877755579331859462039032576130972968177069206101849161267055802814925143897344624473764200826823604484449035272880946076118739412837986032119600559394206930088549386275153498163657496920959002358430298708528824274429303577769654781587561514262569465985020289608463511940921682874877753698223628372111742959120949361618919495963852273332803142814100641193926591137392302253366349969976239555789184845022291418362667370494446003953656212436021659365113355392951534380578555470666712587558883469461065262045482587586589455960382949491666835291619156931660889614736127752273043575341767074546392875502466701173444545352572257097541132209692046719899821071669754294527055504868622365945494022991376069138154321527741978921442999514591610219099682250120976599741576368145834137573392665194099278480367836803260679851017543130001064646322240933744734586976503368330879517803904020843796180893195955578852653463069661156070217406701853408346588445139568568614962841726652035062055141739980126783191947068281162276493350283053216012040368437295004380117146704995250910609282047326575414925654533671389753149782673998836875810440708890824601125960041620142377805256385554109441377117198263169986581893888187555213691174255688780876335646974442560452150978690499766707293660250542109245560285052409502511361881745736679680701778013344939997033087956667175800536106799869513168444553605645800867788700800360563378907949995261034307543350557159853838889055614570342169318169022396118670212953420798713310297731147471970678211950453168843679877387650640819153846690624598527957911096278755212317697295022167159120369156473745906465215744737588404399082233621016462691096422794679443475428240147447455119429033274034309754561840278168476063733235764177173100793884588982280654383585654100405086899844857325689447130739738128241362117717660470534027697853018319619225284777190828811709609578908447167299327003959225845914020494005090291488233319879954641880381506677543339254423150034334999124555980255898712047473596805964131471861244636335469850538500625692257094529504722293367398261340330149289917660169142811005735283008405257088313831006776838849597954352077747152821921381457510929311425906829461098290736626906819192906680721294653707701715172217236133221514034549616804746479194781100969842141499365080708232831052781010498605961960953318805193384975891442690857044184091314070805035758238869854467998256387897355099676459737601811874285272746337097006381103189871936713507928586848002715849808105239713771236234321117877944516996514748938111603406025180929437395183808265561600011298323067149182423637585987811463846498275723458750457736571123790998447953626637846853932379199866881074995277977006582031126841675667272946302680530828900506998805360378920946593418077222975500829003356579026906714672410274437251402032229676345423933019453290898185422112246029748626067176510792973006935010157955527287796095563087126396650740488851418765593851058188719573849665079489734721384551274782173169636426439637397168489858387341803535507763647224122594314947061187489318877436413741427429890175441329007569208950599354580751102194898408137293897955727940385135667574012297412474136393429003924637895874760706289976553645335276305887852306230821284829899112766068665943632801101154536946518706046702336282993224155793671977939586927177623842020650513443880434685253162462966684711844350721860478181924767546729173825759734348923549624448459809741665513041431394929383879316813654383777152747247618240064804697413520528858355741810152471228977682531349482021332539464270134166897266749267236338239604132093775693517487279114663715679336035054450895675319858474161174440985277426656278865331398504794498929332284199596442370882645324218776596742787108806696734740634991617540332157885044832097032032460375766487397243578797179916590722276204235011633067746794629260353379349422190520698084462376197253811069960119664376311444119210489307696728277824677146837951030758284635028483188891937610396224831836986034663733166547461731118410047824954326726489882973227432200587615740421825149923487021635084037216464340545737414333675830993630253063973233473938439088432497773475159792858746304314449769360036676454436314611012335401377210310398990085359248814192046435975265768892673810685151914344731336934023305416951661794214161323206510993187809560704924000079392230912149534845667672513571560491397901481181220974968462686301406599380090252825040698519735088932959203452137790891146648352112458772067575637801289058191165622146171882716086026330655449743754898441545643904329458483808153112952534906388265081679091292591772912476453472926369519567277394659502616792468904337072463813522040258773895999211194157428851337742005876984659002467141740942262786018526846354841902128841355664136299862265774222361819190662590906282554162338275034294008866832440257487467617547752666575298741552575061820775489369163808789715770026922763089207565916411504753211921718767151179205107431454721301621840256969826885038260019600901542546126377116153208722935249359783364914752332380870180611871434302601607261464035835029428390699415045699913600911350970527271650857394930651858985115016841126334292489505602227583961437843708846045085265354533227127389604683651582691318275119859213976952747189205333982887580139151252985386527964768032665604959937492870472178743513069641096995197084843713068644812974725707753880824818217988325527529291605738219848320690388255504462261682957630582007327855386907817509636500611105460939265473546986932733504111049553597594563157817917302591501777280269126740643200468049031646402273778023894753932509767906916772513497620311440242697137355548512453582315283661971224833542694849188142421817903657676799018832516207315526237661806438474107149876845901095295406781401477794043986795701018893682472569418325346306833129949099069788415926552887315612639365137201489991182469083895464908514440035336598477891183907592019865034113053543016902859435915384179202744916753992400937704356385949095605883099877809473235786512341736664068729977106264120889167687844826113911219751979580139155878331352933654504618018481078764278825925569372108006014286457725462012369206937948746031216816981634163094800912617799733772507617898396616624305642317351484362700739319511957981807983449148428053951148332088049677814337492672463237890841353009504721132312836278775284395653067921173127093130683024618150114677911065673420696335823853419759660463643584256107832158763023780609340499292307727479947545284133748697039486904032952498145385885479849092162181709698277247579737042958654130610167608771224558066630406120123224916478484962150510442759991809955447314523787207383530069038988257396271910830358739441294371085197444765829342633872934080708492077160252056390452716432029768681451948919001681006082530099970310804428055717150137511200206973283915006372333623531586035882843561155919820313131950334360725969678392966799138717671949958076137565148761599901578089410663255365865484382443320795834943396002454650474840612062395008748712581589680048087563728646437500426105419547614861414442935624356348410645632547468015951484208416690091132774233058420046916255542983795622564829727536707538482971883034964783568756042943736745359550930028517345736372970534502964357751689494695799628295880192684093989013082226448047255134091072463082984305696210875870708118111445372001846702579320154258237108145860549648707925805189312482214224492846031074584331204221886090746190528885848643565739305061214075033507838724213862686201102142583309228133883390928008308491493075969782495199614171234597302007025215679064854786711387518300278046084971671631026764572130466826615820397481770447804135256423162089263678857972283194750522337262441577943850496007091153258466865332677228655795708546380433116261125266022534175259700511052428744293614501800149776096278779968135236347194147723629398777262807998743860573314251107288066533158836111158567159430372215560115965594265928741113800333901287878134872949927630576042280194553992565404990737139623953280875995021751252154679810815775839638910931958545150211804225494415053465937224089563843469946609125320987380807938246932098679165576004849489252289724010340249797159613381942164747444193158932424776281838945322824176214685291814155105794602532715750773207742683425106544608999724385770828873342671273320046407683809705231403871385041303456899581751347322154468607172307770576695017636947235657226182872559626274348595957129416578100717665873925645729531703390754684396748257260788780768313011566120338617527939776147496618059413655825129156414424382534029382629881297060731340129312238354091557778336799616030410113999107861644727348203741607889552423031106643781698123005691914814061238536909322248432965323809264440938285548615023306849453011682872860303204447647493720607463336921244395266190172992069769978745356552978716239086018873032472023150327741960729962099341104840859710327885731121293453961761087064236185671097861217119419564509292044376495968431994205477589311517287948119428978530690235558015651898907597619834445606069164011421486129365920455505297510867935332446956522104390970775976367039928113594397219498011574794057318076706468443667854693305603880870801512974978316117970048943504989405867243032652398537803850275322835933927406224285266787137624929057017186078817387073710502359096594841863523361885335613524440079616336690756555448124599629245733739365771179596371935081041250864266113603666897337353670523823745343936225328016896127334725336904375995724884556482709789576466605180162892138062589585865476017427793874209511923286783494562382042864931742811397101070401090677572646465934763812333887461787166078125985720609310578425832740307465983267015400371089588923725974203727439017767983774233398732707704179293791941602345492354808917766878475686414965130384239365091399601875917056105975594295084935953418427024203337375873829117555274536483499115530662622756745996223954324469283001227925024729596442866511195622833820544572631832045061463529047025754204396891067332750441965567134948576084559551671573630482194938361993398521895204787174318096178325817840329163715226067459786008460092964017318178671896539651078341386979593529743144933357707298433180308255255524127235208687447604038849870479302035434884965071775272717551618805431594675136025184720358040919723076428452767900819503472223908997293180389359191787508867068916964310323629885884320305080113324000391589537038712066058473617403167382978598606749625699679648939094433146346657829976421740179470882968604345465764333090111505184184725765122358565320065185268942486584132874886948264843843855834314448216298241749472314803023641247239088440907845881413825017745478230535496623201754489697797166554243583251200207738491335801277877990611155876545287722103119761460601408456184878043575485340162867375527458223405200967669938505242558943472984222543279526946716821765086837555599733128075207960594032106698461541316091999875769908647027433464867535813953794234479951221022861980639162078709978816303689492088531267341732465704211587924353501202874274927168496570933463728411733826884694276051385727228776099172546865909766499776241696627906438431963484205117637898898972719411626037805120472998763425271198568522535078712050299520317399669003679691753798777710280213384612623216603777387601022694984765042002027796123627216397167726226689002630259600537524580119118246789780871097853750038407047005845123619873934263269637075200938400221642029764313811950158083685756306897915652880846613737827970513236288598217925253864076575978303350547209648774425288769017425286150818664262665707755349712376216147336862967085503999300415988103305358924915745798976662170283529203035584982260926464138875428746260831969144459129371255630017080084100306666623860786430455187762858318190547893345044078485266770240164589469735872964558511309478077995095682717658307273991910372494810505782986172226457251826307220302593998460547574964933398141585774918496032578776873269126215369616144333002632702459289169219964859045332458404638588897194489811545961941300638116476212883869942097189598837699328295520878253873435199481335817060583862334444156209060712376759600839614797463588988653093901356006392324190850035887372489754377441382762568517999074162086731891020582316466316892179442251248622087243710219454363038974613369491155857650144993093581489774381149362676008167720814749307171877380020041299559726689741663725835158560506011461609756387162654295337762058392421450810228409754216671541153377118287429055263076289733554870932987577781010623459750793967278769505518158305893139914060370106056642443160397879040477012203077026732686179022540426074112260602015319132742801675533788315513376949550415356765429357857113054423488800106502165336000157530620089299429251546640731238889532452272743869715570275390465542005103085472472608532104573757321517139663392044703005339266716508638078763495506675119149338818739708046999131231173008791374359134726129927578196873422315690667090122559083904317518148320002366081982984715883835072529482712575318258243720952028104251220254648393427837264384806178227351462517754562637381773638392696148733217541785256782284786715545800577054337182548546292469128691198363024525330915570747867869587204171661590487859405439479258049938533113198514350272630466136923406431562411457777712970651188861170511821205379194179328879631072288772502351878294935449890979308115484901434510144277360041504684469836874352749810799912225122573007413740299489131279786413773666383552742797610112399490869623899826034159603962496578336810457903531032969166446718558164276678777031763574719985337576189241263891929735450503159697016277560580532017723421725185164058690357584636963788696340870088123980062328644697713972293708382523806033341961107632813258122867067645335028964676090351432339459366850101929253826834127512332612628014919095331213920217686425534421084297213314482674148051156070093061547947633653603213714558714366519849997488799540864439923184852023625781345132650298989365101713231892630813552649652271790468070299202476275053938675167798559729186590119056452220207965227806333700966743344723037457773268932444384396013595702781167926582607931778725520380303536480125636817668057111404716799570809902008659813603745624671934718976583639632522296283456492509765870035341342663705082572138580228899626621516978036107446487387143222430497185132645724411652482375921116580765471339529821553738208688354854343437686442514885715677239344804429764003044305210031444427248584698095186129977259903107987919453071095543008903003293131190252506984985820048882516626045777645218786350963617899644165978238218729833454424318913790063406125885663391323980428651282377050835987845167847704771185826087936191652730175399415040943811869109706352474825149036152150396200230124816730007979293827322700795507399685138553899251709464283224775310323184175462854262220951036205204023112996324064979585573799690492671139556804531993216806590866110351356626205189194836786773716797793219646630291299983165674995898318367495163211419577041703253843890040307984758713749659712798352614214280428207346065344154341262227802557522236471581918078967407679285465248786010887655296419303482308586121433502306516634064209300043088801792753960282004461504406233957918945288406722664346227921043746947754986196119041081692828373987792107760331136626116529969593897883481463302138469116105317531218974428124481659064743819936442217612056804980934695395552418327869227312782352136316450768768172421565606672932053455001220890244257688255381763753929776282604844419691969899878178280408934484274219507368217227277955913422713183040593305091241633554127818959808476193596368540660682983575268130859978236408988186194896702818403737137720341132310312233997279659052050971782064804249038837804856594074250070511224636307428813714781866697815917103676132911582431936077424242665508689610151664798485862607968795428683322537114475664185122176502901114670594849806728176624609899169866753173538739365169480999493657456666500802567663103369185138941832142936651834589342624823941704177371420276688514996835318335219270254903954282024029997889503980310496571725343148273229246423918172460242191555848631898998784351141298313308475691500213613218941567368946065567157192073780144948005662662484821639675518299049747512049023267775309472076748310427674598982984789680267888163794192944093170002249313829227833935550177639644887001947527310856586798181301543784766395341708493222909309078668675523778802991230145239216081807784336397739926548450967864748864830415383629305525143492199694366393595477897371456149104675349883862314885195580485503026707559486098063237652043341883686209139975444415297169462832665750866493322198088855079055605612286113780241959255587486410268987605943469545341728410442333412645011041692841429787783981717271645211732973783472782488494626162510341722366179737842040466234122277310403596090041897581479535305411842316118035311071252575514016864590641870961782208067504938096923007395470390194343094602399711939779410134071636554108516766110723756791025486146016647192291923533858357213552560470908348003672526874493632630708599604729928581682179937763460276870301278825452365129907525814986769875386886855443107609792009524117201828564245931484256126633843740899520917279566329102365838992129611911882617491118865567246136105009625576218412178444297135311574147755732267656433625525061673771083269621607658366387433208074987509208898027640504412331445453255992448233155868137305809543889076424950738716556921235905509058558875720989329366271572071954775662523124235617038232972902784284291979976409532169549114696377085070499966380486917906633828083485135598648988879960859754990110028017991367772777043885560978592937013168380971879593807302543326305381691726082142712430080649602874739237104281511947546538944566404496364411682374136533506589175459401256313293652691914450385512197984779856159565337900628139556984912042209268890712120351875286090966525193376658493417563243403655854841112250971242761614701746702250161326652037008178399519266095803101846629243687018701590671377100718425028926436324492042128167721017517668279500329073054384189235521023620359610019145576698107837395490443448043262686254629083303880555736849852078980246262309240909078926310787397582424129939717950071024365019053231337088356447641234520920257673853338783072709527021654919851711298285533332053245097145098470541644949442474909818931226526573951932660765814967732984733594328485736264563873292452488653835523106852427085580251494793605554898577974390778911671477109188303336460565587630675484575309912459750785764166679160136263506498390865075958484824277936530116482969055250284071435376460073822967492501797803055879246152743754842048104444853091654628201513769811339278022958554045063129611168830707688162569987904558949072276503739652715716852487546368989306628849751536074963006556511157376743230869684407596972468527534154013179384402820489826031032447558896440156982904530680135487783715070091335041952961929134634863571676336668827309408019698809311043412293610730333663783854019093764280038216018613558429231314033520133776891857576360434797408324256751265900525983776544705154739501020015076903978065585307075171696868299232780676913443243662202765295050369069531447588004302582875185065879108778847582652571107989053498908198362248286083102776061326283855964087320258642334959682327432925998436783930842906008003810436615742069731908448006442934967887308762675816864863237885874363045757394406593553467084920534569291360088940819459409574618836272984099410954429041307632422655269995268566699968203634407417341456460258322227482497590495927431876744679898425424263109591785981234388860201559136194319591128277127707568490900852441541233504851799936064686509214490278970036596226712040839330520635301147205188215105360223755484892961580576259966726091418112806777192778941170278187569799223331371256759887141326252196580880123256961054297750384125016305893285187152873631842162134164245139641153636235238807543449862924528593542039428748664036980338568467965116424255545688873059063734814376366865999505948809136632423426080977022449280005826777497089515688344444918202179053021619143871118753783557969875189360392227851734649695461136922250626552438855510528315959136402824043982915671634809948699202673749148185303122083470087832472521451959985850351852100577557129063143718267058854246646898520231429328419532508930023930361404771927009113290977199043901839545322649106953143216392294113267635349537344876677657381126290217102465304623792137505426390209577984408362126401696270134803848131860877339025219477476204312382145567781839131708187432723710531761269684644362197703016514655545361006786068437807223273794280054664038432360060526019693559253028542577964448341617809595161115465698949490934468504785513782516398083359658215307493255736637202328630638967512928376179597860862585316244271777608271997219671084636986439402121943165450313301619612278384509585428224531798894788596977659357976699054061344800828155939289430921089799186256572648303814110414486347224694334565987192313019245832794481095788845732515644147782895585851887235251950983152485464372714099933709732636914317909171515752442332064430853323052564880632691470733405908504235982401462548165340424717011156049583340721828676300041823464263353618707055706916674710649783160124868244922215295972038872198336657204232697129850058573653413193340493438078270693167769241702919837125039123532480894954282045382598852613482000994183226529951451670539382001674991170130913557110505141084005249003012032898042006776547439588030416491217425182482214809918262615398459278613853685991878444526505707987855898453954608566091939010089425808138142176213674102333523180479371583036787294043834372561318151268885308510495412476261037904951323221614699097837401525198453922844325868059470708276891168108179804772949885251986392549851413944743617166812563836824402358734489124424611874883107676693720740003965115124078061581242000163122651659390338828177584103757902194890105471691896746801727948732207772824180805690799146973917319212013485654952304235279453901563555522674533538474531322251414413101536098488689271437280708450004223688107286855249054377862580072409604350724174510010171863985747003119319412250905142986569073325534241752158031622637100307859508898086568359194226135706832270734799182864718293374540767082102438180753377435967708919498789649705415021782557966603214768342070403139197488391743399440456405268057503565793047381810249893779119227841089853254867688270155751385676686977799274984805741667700415383275060363033372043014298814283694705948109270605313003854638339490514893235367656113324377172001973613488179601493086092117650254104688667150562581412519875770908433745584861224206674662277521951537484248170121141157182978540565781177192532898066694130467156140926329982934106479452759430836614943356720873194118147802001265370372233152777405905364981508475617195850728719688342204145340041556759494574137894892807599692096297176292325814140856940026040801819539489772939310515616739131384310064518929721144404946992150273849990382270598755664529155610723568669756690956761720082418324428613787427277218926646684442966519977842173828760860598963466934313819569213562749644750435703866407164312235511340986608758874290287939941817691215032787386333582730369025889864929232926513286413940916595680943292435668969654744491308452558115937059003419866457517321994294563066156131819049413901440390916654815488111881890666614493849791570687345285009649160874145377435706659262633642850677465017417872737894536071047498450482048240371170460722934380131155037005410813950373064851375297990596352737070049384152077968720335653628831676018676346204259305918436206736302835472252194835091973235821418549029958962378497891792604070575462551349790082560470699230987608231019365209449280050461735912216931619702511509357944200841854763605531259558209820515535239337776131954886330801262200709806175355376800256749173667885209107448814700291326409181358270296401222933226181179584026649059677626837559706279061149974289744523612069417423923039448059753615930368747356641024955094780545398066634750228554881940393417426471322298917095678605576585333077997280764787582412798735994643490640937443849042835022342857363781892935137208428410553076224103406612646696143932183616683469221648317636603157747940599234491810385428017303907276974866061694824202873159057912417743865140403330724554154677760449806719811156599202804001177019200854536515073332907282635666422041934587725697926174256386527530078394648966472674348547376418426743548377716661112747337429823680296743975252858755848672200409845087998027779694433231310003092988309539434514352662095710017905839931588489552611601817971913204646756481398784028371526799074996813966038247932111997935906178253664485657883186864364752833397666143956629689563895218467026746029161058721965310553599105949964128748618283693349335003192086503553412691954737975872311717715467785774339637764041455729646311240673243547190876675522035267779126120516290148676480625147746543942249642099015212503198128181578248141002215830128977167358003201590401825738539704718008249478801127146743682004400756222174432863634421071812933701013526755940389996255105573257208281657871327013014137739299329206948055044467806829975970139185097177233705105825228889593779757483891523579759960746150456485650518870196440968616437954475340208911262324533628026802314570737153249116948299178253407173371426446997696001401510387129713987813250099794311058129814336242060529775183997967099674353434356669657774026047222223219260673994684750726350668563695048121711912455024610614190697354567470589511684493769953187886314028336930217892471395462329135557321771801853723129554596846306713196181391141813189394076583822284063656558415354327736997861389668270720100752773313972849348621154552091056434884917925289116307771024963763321048559872467748718145404451412438284521041675235863631909598012294847597177486853798549895616514165597272089260905618191377482716017381304992299742020255798313641589589972280811891538010919705010348634595125434256694864001141849466178665128642183073176476047373755952878213449309005419771350157757388290191230486060026662771610303505603335038017276764336041525176684230305499305242946780047545919710762615121288788966722683428905779095316260849013165445519982365598518155421816265685440735787957253716163112051420429780957553053565923163723534313481814945279730287239590030626958796417782572919713594221363483385705085705864445841899286906806492634467424666433187218447680736811958745127978343767462981249724953074293664787034174554310231592567255425207150150552780961613835301385794980099812260253646118335769980330328763912314240890299174227954995463660527056616769065828363883406660046879850493153434897299675890084971676244947556641283251849488907266397151975658091274024346558486270879529199127196451779617552474012157501276547250258968214458825381950593778325406902856995206470787508967418622893770539997439633108539326196230165096308457986672617647984488161356831735610041508219959650860646826310242944526329671781034042438696427714506762180626076308252419148909865660093310429398891365117096589687833236615229689140997018682403765130888860566699853755928773040325827859203578619030702270348375225610503141755468419678735692536053394568027012100503251500752796543404073330090763662717659099096028757901535038020422168283662355826039693513855687554078816059985044941863732697907027733349753943538980744802446736969332452836365498724300832940550355761037090444613612819978494792523898964536266627479287122569940836804502087103234037242331848216115788207974417721190729666682492894807028735161789301593649051174897885129711416240135879501065792143068016107156814502257314584197168749309677737614460957762629722515802834870256182417429171321107213305138993188666006328626681962865679333317252523083781692867840293427926287193424006429054512945072925959575705706160454116796445759376243423294376338359277751629914035551185151407911231221589859504245228469050859156384902788142663209311038478536608012265436382693490653900932411007399067789502075831347401705327598197862592532465762192017344064844475973957608971913172599123820972210035032567764120979755765842046104445214845081828591737684911848980612481258911993436399493527933127343130494805272656354325679723335201266021341730025227810122512712997910716056147518697890344747732246410026029453469052651182851582177305825810053054781144184433945972590537269679779460441935943419844046706032470017487431891366514235118800478884399847455284584869327401665031551504411661218220335859068097958882108315014810928540636566112754240126825599474039535700528237148027248800236968860496116409818412757542981327201261427581789592733265895513454188038273536583724024127648490056398034044153828880981309247286287810088823103281066218883116511834996394205379289744324450432135833738156340035960712188143732064880875491124323116023201610354806633588846498235903084338434503431002142616166927665498400101744762771963828208790602388726977990034439367564090815887133201001389872685061033738749873365694226387005016194651135523806975343689572630473569730007819881932283584195633257076914175617219497883779088965447496977095746205269942696401016963069089569424562190273606254711346801882168824270619797167280434239985349238353982724297138992574796994560313501966158706959363551528110580875336011911166230220006079341263581222972829567697869294573097743067343792789783509435548541668109801239756913170658548682877809603243274523764304096799385282490988625432537796252516178939667120080965141349043232003220145325477163096168982776945712981582607574244743147073806776023575095553177893215072887302042821817806963756024042968792545615421837131978118528198342777034716213624941927495555764068544799793892627527367257349776816593489309984558667083274032889972671213551336857774089486349642137749297743903212032466822017679741108213340220951091586552387734740723500679273874863507587452289174269244524998471901902803000766407249064183122681189663780078118267529357649805266810917891416072915354733063164252538910555599678511029808668076638211177128977057810766761403097498335624432285887471584793936205009589840446812288659559930356475378682127502041485588995201517089460350748104909910235791987706943426512332241349444483031623297770367674821840784957271214185178117766066268701050073740928528095948192679018581164064521917606704668429026563228858377570350002254689087641600290137928050150653135935601128560164452462002514722717919211133749148686150529755176061964620557132624785708613763802668458805155527301804130210728981611791153762473343321680357088279820991345212131238033960525095931700976508455800678773937376061369274341573497814053423659012269618581813746964577292419620693529962366236372751794758653442606317886892643338250884182750199959222000886388229628162450158628875252083408490983466835682230727532640455202822457523017256579914014959045468986647290707132004835026618287230224667495141365147312069981810954538543730784103210321530616280288369407993452987731609149593612809456244584276534214655007384065702038470975221298454608332332000521389119170601530094619311840092336229593005097516992950629040811306566085782865633297662880969012864616601929272838308928256393315566987781947767215551328629616064964970777308750904717110972684288446249080454305684911812513579997941035856654989883609331595968494916045328127954753338818058952280292596186744425847912529940867562097264581727688099439766747774976385909335107009712225575640442538313969019643043992011571540244373832760602179372352664659862054814825958758725994163515402530302961278909492835764493870753208076187306814325309033523304143761512156459421985412915047932237336685798930409909344539932775018651529180396019303086463108706319160029904660299460131444811473640478143943714854769165617670777002523259518552958881392643230829909009371624322428829342949504230159891867191723791168084244669544198668901555497913132552796828145621220494811650116804821288747766468708905956402677045097735531607260428721751677662383356611872997951283534293012200901816259695851545620091892855476159287665277335205849758459952481352336375437915324416459037256242414219580272929381179321488757895754149519510242515345789132400432488995245190150659167955841326671048815973566629640864428266693888995850606060050670328399742828246994918243286457682717487615605203537469656135039154414159927892436723079536277549053988268102120036602231193523820386883144444632048579153535148908347193690967758789254573842263799663617757783238452932886142766661773209125801838841673607512563365154495281708754304512239505200587174169449019972138066778220679805175924363923700840677588317013482587395258414841690197155980006524492672144639766874157317007778024688133116364273179241634300209432044244419789531435696980553395533972121034780982602304573583022495703649151508524441217857533914358315940438085891632199289902799957948527595353276619631769915757422670160551255195475764106434917312068589631841583103728217876686872911355420665456085002526586259362115867310007450525785025086679504601687344478161972612465603103848712724891910364313758246876934191688811022727417873003571988504984554430792952097918832824168676821416501803886606117274223311397349482260423513804563225244774471410161401575175924242206896110828521094057957071628256537375647765018318117794414529778655627946780826585101402220838303386048010724634036655378580617715882600351643543991376478205001187405715461238005086405727538291377764698034464364726604783544905651697766817655038277941866018195537290620401215536970782946361285236271965074827483523431980963627115328741461390033544010794402482635850730611774146356531187154333685263520776366034431704257116997804304930935485466292564498345771371772489211167923520062178922861023909976031214879804112934307178713833033560802210158650207345548169256529266402024353479955438979259627886518383311627372036132561845655560192601018743650760060686506928237942781689679660576058276149302216287392408943207186170891783642450903398445666085025158356998873902995282394904164928114847165161036598524534342293473646187264323551734983543493796675382183987125493028215790573440869109604445936473212003250209615562346650753183854613867999957642629463832850855488137507038095379091736761063453173404675403408573429407801008184336278678276526521801619434809321457580499725123054114767868308579630850225223907703146498489290673102678346159548113126326263228790330635044495549114241011324425838655396549395874126689157092751922524137010886157991793730420799625474120501512583367593767136051316122724638010054602898237174177134253038497521618375893639301209173316063572228318786866824400184592461552079864223158125774271893898462895869008040410088031869642168806731034177220408311706565610972593625726091668804184184132269055804162517955870041079938104447150432795659869784867053615529110027900278973093824545498019052208630914656969178033130831522251064873925792852648121207522977303314049280944011122803298305411793294948469325197590152274158935309071253086636779212037160942110793559120177525375761011425992578286717551419137225944121429051199235092347699134860447635038062687599438738682099695766218808078306748370602215040927746856771481179933894306754379722942291904898403889282099686170687381982112906478446550417622093522541428714448790892631160426882497410891641717190630161286044649044715605554541664637951866669119779226249885694146870206128576162900984517557656824190047113721236796228052380770470795146288186163246668709368368637766171138291907969872184956010056539352915306241653372335648896940489432533787369404045925151464702101056413667614574206672039283965345866882464171069762707975180588593594893587354411212641971815140914150919024081735018683728164444872696573979698900910796860612641519984077808893575255361261461734825980962238709058851506267599878850738143160965385902886166804422169028090548923921703450400623269549811704855873648399370413193103488486058931634511448901110987571397689078372720471445237395557867795853198765774411930088835112468512886685835957151199425464374107577933054288865162195135271457931554129505079526599155836972590197073766704312374930671249512282705454789107843807939956105852766707895640032284797488998729111488867328096692121700768114148009087199630339717213340795957305040117763447632312692164463699169738416361948825470228943490422623642909578324795841832034140548705728111469941148199119554666249056049843117890566045700694249565242817185397270200179082135215135695198425973065398809389518606940150639680705360146129477195660692760959696419224027412418332798168508657510307713063861129494523430051190313151358943574850631512949524933964551728194746010366694423014344399174541197834112322464190706365595808717243358788429727070992051723929178840989947938908576894581926918881816978502339467250791206516081652187829372689489074053270424600676343661950101856369801603460139788285452842192816557714294806820325238987288889964829995196097370024380693376886776337529729849380099934442731971740585087023109659314691753579250904792472783693422392456359043372077942861829943720237402970372887015405867505441081215845723916676871866387401338417308411911550406043859590509385712529283732234579810567405870416275630344054477513761627558080870234381012446141642609594823895563461498206485917118600911247305938679383906828154357997908293599372170703923192287799848585676764169010771162398845755918283572283493482724590135772185148731515990171281224624521106962114358257712381914794074022879712479877541431098404468255976440693132991044710268865828697927818465222354487941958340812990999238969672029727797489360528510711250305049302406612388882197033896259778861896924180630167728641559485596785420514673190980925285811592132532437632974975211740822309089685277964940981987635211834330096074634871471221647530969854739121982219741575922526894535734045120767888415600551727762936846309393452469683090364280434757145178925845097496747442920212882364300062763285119059312341163114953213575491927100144119421560623730371730436008341746419726711966188531070572887506967848851917811271510811947469232316493889487443634573955864989906954528170723831580272775205498364328875659454565823242730003534128900225993665086593370645379333267942437117603703510255458293646778602916221369389171210325473159517823637120290610944703680935382123378250809589394938097700789219185542789227353669483941888708068058749910149070477087762347911809597953865675407586160658760146161022162652917690180430683035290588100602675827288858086838145083821164982857611643791691674486758395032332247060782360688952028730364090895580694703012672045627564368024037324491873669688667893525149385749028631670251360976352192436056439438217631240995336460755094560430005517878078164108150333646834705890573568673853425108456942379014566037466149747107229951520460798127839496775199764825308561643463195067280506833782326305743899848465444986233307826283394375818394540021409676938196956074220256477565185826694116176605203366674796130227275175337161949140696532307131369855892959154649704966164785977235283970719920793249681046127666093844466875049603497344370618839763723261903929782789017289294043635996157141096809927795741042354269337477009131990549607582185340576629032190880569518772502616031617503856346340286861234876379591943888921685205952444518227939129829344016904464183442468569428851228193225400872072572761677695296725134407571723157075810390306070484562715121284944950228636084855779573955442330546593874490253893893369427542966703110384108249743160675431082418205541714887352362922383516240278633762444850066933751610754529194498596805921432648264507858804320852080809458504793140485625553508675622749123119876618379648984803197512080717037419067933159939255374149492692951531103712806795774473929563279523917066900306290986578975530142094550529846355890695127101970876608574237649748990116009681428781581593161138856003431983739865457612476941412110492146674182288485697579557060839489239999806809699181364203453695599562261660147647961633026078816977924440452970016331094824143451235796561768115581319715981967425353597589706490625358505760769580325538242929870413490967407495441516043075926167807139041598511967497976475614056867328128895804712803723768733610572360571625736767091399106595228688629104473225795810864503305916132058318794743657443928811733413464221552527420356172858756532911699464185749137935530210469807251484071521623063049275725911449789535712067236278739419643514224770408386418425964457739331358098217898501180542938357059233063403533344107946876553506674562635396976979416670932591890915639188076403989855843071704650358228860780484711164478599460624530423651936130874039132274273704689548393284826313563575523162610838246991091533001365911510833373193257845619951097639447266443671523092985169508029867339439031029252452362731922193658776901039835954775179629533734991920706964916676639175588977346498027415962445367263067661758964453269152301160182472164023184723046136456319287383501864432858252372159875217643605411125148918643572377989388321856824638672766900393155753049473103585087222441907367777437507328021799688856935495711200517052128604037183469331601946562782918988501301102082120436642425064503891110815055424485179535733370174744882318663601478529187672103984490658830301406607872087281408206598078914875207777317958859903397058144383388164204218960242669033207794590394722783846182473047994942248377886688974017543903266259639044228078038088495024997624608273067195149036449665178100181999010456225107861854119487472049597199454792681404910173667037407637411081423948880334730917835609049581139392906860610069450666300430373033221589227793490205627427318145712186872606012343911732725038163732091540763356055630378614826613836365939499661519318288522547157797659619201849605348022228891558259090594663926078942190759393590830726857701814107787496805491329304360385330339669620782991757121326931753729689404731550333612886065204582224077190839377897949108978528157583176624947698386374357007893700261979315560521569408916177634931858164302997399269980024419187271058909414824091614684086199464209840179123906001942929397644698493756270208356760679408059530854041293531164004110975626794061627357185686478311513654263205080489551862059746876774663615000311489673628402897137739662413603679782714533927928643770038141970380970373236205237675609959535381758882083112234235325744736997015624711231553240728598235395188496151868367205712841848134088096002557274976733592872697311586318928304197002439961688881084293475338680505501116126403066449659125714653430779146017843373937542460137381049641891168245184056833466127301012601713687980227424855401358400809851543409857919604658047377720074374661840957379049115210240638848198489088559524875403765644472433241325018421101679116125625922505736922724785551366427993343929997224472960825112969055549951663840370568329821739492569460630904673492842034610064074057819582929203861043307719396664247511936009254805056821086957486249956207117528104855394646581298589262266934153816634993009393835684440730939383429152802325550831070009438344434578696565530998977311794485667381651109609210538944954282877574470354097823126503289315277554383450757885640137276350729824797273288341521478050981995771463255125877111901827836451860640647556414524469529835789611390095377623186870860111483674950274122729572321829037734620329037965971551361385145598892799589685116242264853745506273491394305512947880115809241015174134184341247519257906156062256150456123903179976084308203425615384772262686418190260884414392842639634623506077126863127655713624681995591640974737145772498154381005931508239033544755027530253868286471971350197681276979052181795002679010215672889314453845000441991821748349410046631082480143695702983137473174286726255010663340133417373428246380489480169393548139018223086108222357609284559189989804387320393181913023699627609792587190422822360109801418415935778497912277563526336897990584627772492391832170106033530011633786730480378981722731755119389044116941465016360413850271581951680778368371057654751505013023135996752110465626753586192037988482622446176952689250659520607169098666245033333212130942924380197130539424014722858047001034167440996236505784956233140554924744263581162431580373431798572465370022436720642227803249411131690852755562456002884131620354962442201836882306546682650859055662345942641858585543064292575170795172785687629959717028553958438206368687102089517146620287009430349514304236710829056134029862628315523197190059495960703699720837134999109335748698658518809393451105161330978414688627952647753753981130054909144359714883036939325659091699885731088390626044605541615390000937133612813856582812793638670777255794995978108646194719982019709973291768387547148571062284758874723692884979554265123368480712546061156895744079080733868978746880542003671233696148200443174339391486792963870783559468371999984141830577157443436870396033209938395434753935829317673110655162961487781730431875385317615196105130418371787263084292012099707607525929106021996654514495584404435637333597105136360993355085663912904001072108155038339725672167719258099050142736766255042068774827419105676903614813202747320386232396076121042288594723732048943373803750133943114135460063698476119520708712605967088137623208962263479807445856323656815837640932847186269313098070039073664223612264043735950214890368830684100965207529668274090599137561658870397871987097721514600580214727128528492141612016420113655935533177032463641114125393748948921872940347057993981978784173916119389456518711506853081412508412121395552190553560520343776553525089596377578399480820458166932259392136305123326665302097574210213529116474731209608404636849895332547896927454310361671928517754678346124919015174798419992310139553951167894260259388982579876139012910031479223738693674549779552783613183981216485522806895864851984776416726717384095040784463523796304547335606170143827176505216419434883814078383518022608455970254604422034090191635412914459490973548521685257949266150565479195373943710198284253309308540366523180451188649142393767044842990638516277658356674130875438368209305802495646267472397145662871971714039701957875883249792452642671443167044144238226200431887576694507945978454791101678901455199253463841315105024536142498809587254413415640401648281932041849189377992535354826687558761444715337785209898589118491218052219471103645418979958484880154813403872783362220733866748419048202197912444845254272122747370198867549155241134480798399130118554454631309090043779657633807706487133284668563383475393652601068516034329627228977956508160816718616067439696287382892443932511780044150426254644713964809996363842552624902193772429099019448017250993013148385240052537386522247079116896139091378334825724603924695375329675076180360584459169833085115333240862713597381930617713101251466196711850013409871082078562815627311899145544060743792927507688948335821035238083201100135582922732175703497597308185783987373824372340782365879011167628356338481917061988401520088387321966198144823641242382790918979615154734963070993973479230329944804783248663240759309788335812805069207825708205585316849944156627434681902779292016223863102846553623117710601599496323507429659410544602506136034330234686173418142657283438006755438120711968385091312953900938915035258526565705607008304810279671195942635607315852212413801285932109164359501747903183179572677802517518447843867714010189017133819786201813917181477399356746162108027308410379004176128778717620371025144049664501455411418240211541067157524154467203002109466008180394127270349607570984770598200129143291007238270461859317310966136707084185526900896137506277492686901098442816294489888369184113576162704036712786023461384533082005193841153059359794951061307555219578532963758748459682211252588313208420718386027347522450945688607496234472346377892401515630355200949201431401312189329510388988071482528010317440669660950438150641852031487388870808159543582971281003703660180426226517340059374880031357840381859904521948681735481515568528891302340456484624174914023307990316181293270451067363182803042785863229770956897099909235464280477858214367516906711263896995327156609715600422943572535953158330175342757261846253834911916745743681159744266112104040731059363016789768046645920890783134319442662452551401431014186776112490641662884633975883403661261848532743319654611023530371783133332797424108454680813992503398335739933540788090892591285204750359599141031357350340265980944423302106775346924352666015971087970335018859477835808540917216877426449952896885077404069549546383402069194203072414418260892723277957996974990387895924440094909728823499269432387855900868242698659687889613279385661820820957798235481149923608128799542091726984889688448939371310007518444807172321006981767986548239148431902946682158385209941426090247255596958003892091632366735242463921330579228484385034076641520011510287672262223318717034249913090696595489483994286730757688869398830366368924029402576177366491398960548503389678859398200013381652397164078738839579693364633199418738901251453132847953695263331041561496802206747363688839469143111773518010429984550760751281820874074568352901002086743726308579648339007427089765071434272382797317522135374865335255623229728462190265570274824785313276794496149070175065204391684025102802316928715475946046049562705208689031620219208047469813268301300477432631065326180811018088867888301458019279580932926006268048235988948333051135886844322986057900970393914536060388818952840687036172994835160026259508579070777864333831481450355078560533869471440915139966933441856136996171103335365811451320605985597529552025044181651670559256597601222060690456976422874988371125616751787817418603094262054414723449774529446399613939580012787046993623195903503155469732589532198986476740183022709387436693284799225433980902164171654127030041277223810514195047465404652261425294724804978993111150948832530177277932807476440352660986539485763265699381940263982198269749303897496800628304422117909715165910543433558992823366551568890810140923688014249134526472438362615815828596939552334275761893890607927705020274892504207549657808899968537361800970224405432286887134868750742277446975599786225941546188172425131633920434257778296535939979919913266628031022016027337338981698521839771237076847542911922520556244669331516240413654945664801602257810199710236675296157658159393173550942880644438211958788463773338133694321677574277215988127297075939754834288447749690740794649979690473175855394576370574189110462197079679625476034580878095569705900207005580219400140573484324620903580921240028764135523961223374034879670583391591585804257938384952866644867681986211437396091287165594181129101528084236549333687141762232076457208029059214927495185783701030339965012385685733305545769517813224271831359931716178938552072478192972830094871727046437056841862897986604499629773287834481279575014287448332303030308014725071274801195644249031166344475665497572412329338607873432846826650359276879676758272875298473616261622621033140899545915192882272988860071536146580111180431827243136481123752457081581023681235518507318285704212885104198916450570215027834334329793684617706920825742885370660200962337332168729693917872534521102015998498135958140953165428416608066503335610681052152871580925151115397715863184528435959957761799822130402537678732998603961214345304151910216252729596395603123750552403209993321744100045512342529562325266076827940787090384210665003077366454316843941774540483554399209170099778706223697173581685707385988236084907913731287736204671378744166794868676180356264472908617249892430613317221206489111164551299606997941385786916822922135833725934689179759486828532472335802192813079568209083823315675454496656173006261868232322805570462760015977075550306218608109208839897699051319983186073756489958809326046932358778516714098501838027371276456284719862716785119813246821519552143628060825264535798906171095568895312174496503970029152605012950732911958246212696167685031154502231422289017582245434832978820151243374488403159369555361400110302248851117628263412450438136554288116868527081703045850945318922889528381827857873880026144601400962811948676430184587295937318236777637651670546608517939110183135244417949481630979884750244833465728769739165610849638884975200599906858660121685615911025138806785460057208727170541183136788104279669565864907357273388842427852590551705605539586042579443958393749303850326937360133311464304628065241714920448366267686230296171254051261729799726425006127318371823269247564188705982745679460616094832140500904503040377888756434269355786781596484772995575148296116907561509341235246914117982605025729061352151954322899091777839451784352602173543871154338680488729340322230203477906982602395276947356639107492869533339356947491343289388062751866424524321533420001377267239105380727673319494845259552771701607996372571845857603086842504131177931315563456513253819617352269229845850599879731239260554478373981000039735545537094387552431017026768486080040001235598496259735861962713702872144825432837465089102057763272475468835044314606057749789802308698817521931871395393657942072574694838352986156041561108544144916015509397159041359386163935442447192228248036050757000035203829704605766437064156963874201183182072684404340618361063720856389970312323139231422256425190802802495201558170132389762159409100894009589747020890229635352520518781779252096179297020547614197297071493255981009925707340576650405822739536416890686487679106064045207123838054420910930282849379286406621120437368641235478061120902075047733050555548964632603896238364050150989805470943736151961062330734483311792615176269850271841060349966071075539816412987781114831676277532574576229395122550848010295146255984459048801029637223516738545546353930550578627504886141157506735796872827614013594329900779515756913041229101997169885786658861393849470817731295160609526464198471841985691883637464712017428406442682254654556539731435809872877355412155091945176527953884925123249390835636299706814438570880931970447744168657136093041903963990705892033118459531463854338903897250335491084585848244445154819816984259235527629360105399906731692463156471814475169995595536653598212418294565582268499324080564458959457568346150147556294159554866269421720274575288882963519512746132779093785619931085674283880741446029155753570640267614319730195692324800708813919912663082070307489517217328279796489997698956866773675248583011949438915221290510329760456441916397592651896012604708785284760224471546147024374523960568766646150091836720337590494006976154075554134435138044220793985485207268315944014048774637705268234999624509741925511729504328571200731543543563917131672761229916644258036064304181978683250215242098385735452946738622260548983763799621936942579082502868223122952593919687552688045156590372244653404640765599153955003337167681545885150244480167694434084278293237103665053022036447106152606689761312825162088405001273743815286768488995984753839139555520415991252264668119731308009748583272014026535987493129674322847565002391895230967855556872906751973442291409579376404638413427834449616654671580789619822277749506534631438610510947510239836523783401014100968220688975085594633271810378169191332162625982965807832891245663558363337698005229882082650902917050575425998048840538031386306349185981886095265161966430298397387082751263317564902460576501061894260367094781937952764531731467502024870322111201672225948110956690232679424978483506474718417275994415808044703229536505921350725877810916820624988337225704428135696009190293368567080575451473050659437539897041183823739231403966484733221510565706203215699374259389273043672556554017297804554487528038259822536227586163846431368805730277297944434720612470136480369800202028742860451635284275764397772680223300173188478492241374558739367552377964112781414097795432383608927967358192257793436460465746176746990017598077440017705689022640418777939378745877780259652449197978822337285937027119129782155830115573342450336334485740643188125648698056308782174913914883183296550198727502983363483967544365158017709993763678354193923435862088356698708735575576886149027563771404038523300587991139885458826227661410264785219720397892535424142029961505258796415128174921783193639653766451878995519050755003733776170211288786426140478140614403157004797265664344485247105265455689417827054034860486843865744016787786809592394171354689798617452332799741928467512756232349892579434727258347029939860686366260267996692363970071646133252544723189786045109623113247211400507030089459065377642014910677255029832897598745491301054319760453171210592157598288822178575278553137737851810595517525048068642458669523585023746722335717985275276479746240407084571092326039603849744960126343655680643655117621026061393546607882512147129493672868613816252548037014456945042779600823379005617243791702916166481061333147334433402609296480072168345143951789219017544546090697537560466224251883352350809738230520412960818418546252059595223554860701095560966423634966311753245801806980376034690525130738214601787964434485761803073729523749228372349267489789485769814760598855904108579825394346801841657805124700601869528440191490201787347070202067433087886926779148535510967807637213912850942754445539519543936646214962670970366159298005598173186487996289177028165635337006244098205751460209087107033464470857778065740148146992018184175628203351950120579824057389214159308275376082566327681163380751892562624449243399279493010339253140744348404567865769557099986055151819764641826615563658536768205502735103603768290859459167099097782222092898359298300439462387731483425232550632492880789843212889367316535472483327113959320211493384764839064118816920927807001133368521530244300195132232449522621015754820508494694099324234019633549900905486929633792830721896748482739990938161574743535865338392591472175642802037647873180119342583373191795296307582499138668713103240671790049185502353269200285029312365759316471943617846082050662998188207876650085627640983748665463807922775775273773781841778961350011992617591737631847002418673753421888417682618774997787726295913561995153060002493398398907859004117219099568309177620193201227196997220523743374050287207936074598767180910582767173129436987533753779185921628225739925375884904938870769070054681579848544419313172013946422024917551424318037433574872351361212114662102460253816190811042131052977064000990131709944595260366419939096175624744593552677743031732858945973919502747630457755701726304210829914136725109794260378115319787193741884287342508763478955743196481067387634429731286981798441959820787307743983212595562768273976504580004923619126785853539178978956093507191811829778556003321300225127432871177943495418918556653698998857422998119499855094007438898767041327535418935213244330915137490120906032649242510965981687102580414322195065488896114595604147467649694889743138375333259519949553069991899544305612070935528070289126156284080945569292943678456416108064067454061386642409355148406936892491132662040321624777396128221055267267778024999077813242242849920089315932827167041706070707478291238483590986572471461272208739058554950111159934822833513987905296526869689895685410810796044226522675991395926357899515561179776909843499325588437498328285529096768407559035661082274284189521255379696086854100801235908664436931056207345323280528314273809791814261707153351103341213130439724821403266035177978018707101297014467901840314242522761447279857589761380672623746113800770210828951853384045893185833758430570531777905238682044498834543149989950930999393069006552274545721128292971396824677326931377660217173054411088695484309356571307682300726981182878988498258997590364371785950803143019816371609728144417438070969659454277347015114154385555331938336753461871186247819817529705778709643456778957590268781552874229837501564569391456548716702190156763224156194684305386591265915684784409795330066593497254653453206669025999429496015164844347844420812630449668066031793359826277759412814309156049610077341633340066943395493102241306811663826196042901383830077384908265272451718199998175527937682471530789246191454676742863697200860408472974699854553270048441990345890458122309900290815402943992546384339367810303601613888088179120225143513220114241780978197032763765321377589082348716297927106179337283852687615093867453886959931001029448077601849689793331198079975358382560582818954327697185072111822566830325542892485332626072907329956451773846001061695722256240561470306296624375233898939818941454812069656949568162688541531729119246871331914339513756972729639533144527476607055676856115753120170239463204165150055785282997438998941021123056643654391019038632436541709277878434809603676215825136176195894194267715781579118711734732627700869079571331114484707102104387938643043129645681767382493245728328374674474759275966409243878654796025232666722548749670440932748082348219997789669188704573853373585725139542931981472878087413477090840705606369577121931533663667917242218858763123003496489253138605593106293573441682745512451222883980813141195284708893189264889037375306374860296722078398994531677248723389018209917986315954459831933136806006202487793568312617063307750107401483237984447813188895678521905380105127218725002631563442712763183644062319672430535725689772005082390237016060182456295969683377116909191314760738291915255086937696995531318810020584755594978089504243990797929572058992036856927541425893658455393634946113790951775475889988551273567524569143692998254091495626674320716862502368432734604236643514467850924592592030218977220655434661000232163281249693171723303579707743556833786514763144120137790687784466829343267761447994940139064913876075552589195265248849409033015959238742951115880264421379265166264010555510359961905729592013564203952767325175927684403962865471367294911312841895179460828610909916937376956364680583222844259432209308042084672943905322057592470274880300318219822139588089641575754318432050149751610330312837175056113278783801820553189662245114394592123802364493439635973526102181429439805992268277292095521294852583275939979783010776073604719066602213377783732701503214481714642557310843838395857563280916742995482569507212571093905818007067956840096678839642194053823306195152800001854949989277129219584106908218636795400777791085861804551799077244785159442288619922826667252068525301375595573454424496585807168952170171573990879318743701932645814774992530382511702658364291653586318890090081519313131266935171869026382987748887896931410292479238401347236408171951830485034958559654875484793770154442339563002413828619368907236680228657781107688906310355264232701042090294644705214497788764417768493304369553981343848947901302296235148631211863418335840257756542461437829132132030107407660209516038269764022210921816679711184723048300446764303692210387684288333591428490242332251100719420786090690628174483523333559288913822347219821089778009515974212438114911201165123482909785495809518014561883795229645345461904811845430894417420916250459805527884439104349143865852834724527859912761544636507283689662244638329538984744755825526723363311222407321859216711161075073551918651482670140548230737219690535103296938971127711022418004273487793436910606332785359645549888049700768932296628021218364962826520454864070866950384640519353642673779046817308257928619144837421111756025150837845677934555131965678637704240926271725333285341403753444559654120927623070473388939791434922298502388230204545698135255702770002479380533936037278756046861587794477942224817293400371001476542728479846082766569750481921835469481667835776697758450189888820873607288326654294259769093626430694476001899438835110196009365123241850807785568122404449571239992382178306571735422155577027297469640689036998515991226247017017597667729325964557064207340678258125735333444864659984441696974966293553012306346549897438973073833622684576321439114753664556694607298996707246932320782876436490197273669494989206883248049883467628035413600413290415565284497961663489735855027111407731969990668576438590912420691004905646115384921332651874800784238453614598059024259287011170207609443027754360293996479132993261514725273561655127838211527616584448614069402808748642275101012108649073490211514243822737466883112385506320679714105811293756960456946956466498602942138331703337555258926620015110476331729789250762985461283556681563641532568115450452281033957351344214902181615518728326041426006135801454190906440517627125597302885272517768247038208313498674380646526542002238565251454838920245061018610596842424102087053133297275881116745148198719630902109761338737984225545703790000204219831117126153226237109499878613822738356196519538415369688417880658824918471991271185271540003549066781333352980349887910005906140598574867688593553696477975037061312309157839755935963331492815349680955809382070494711729953687635047442328167074973411658079473733017456145136434701602028115396441066214169187230370170466889191192973460058279124448326254418273999832220711424100683426476989009291253129050367072143654937562187208810378812094757808163399373244746506667928366453295233855290905116551480871278656141799724960568322705825126342250760567515792790196211767646523405786105368290140165382520147257782678276513397966819369277197266606105380158466360720901988633532696220224298117407892637490428659943126971045577808654678610222440928911399432423618285970635185470295396500028781716637096862088243388161586722982131752886197018253855573342866787556079069519921262933998581463796736534503021748403531912368226635057005407414328747519128042477749846351413063329141943666858333751108820720093935095663723046444689753647471258408712167930184662496823163509807070585446109214227457228461718232103818891427159037936199195569692322351993370234937602771168466031874593656447320931582022771743924428469477605753109303424902511014076999284182757663384931855249723127100553149749361970462453276274277885649724038429291897870907223024737214946769957298003675104085759207920232139828787955825105811439225750527025655670010501100288319230382157688695287884412962084412161726745106103543484241763630085947517787298624823020984057826363564902763754717304105600443077118131218890547118537202757721715297821971272070224599406428226544430205239872572046832736118240262348817319328771632539437401809965004965285053417140813693903727442479587932202836400839824799659044559800171672211807676591424557926677905495215631787877858405511009726771440654333057029879154405158745651272360433374574099068671474484377597366322567989088618462760120969294732979661957431868556266884877159652513251307051727636451524256610354608896472454922180430019171910754829733342708615312882631559029102529849472801854022716690776051235207020572098575860398722105253963216038809848702977760462847478607643437591180596341225471183592504281857640618513117611651905878816039538913176934435729402848103457066794550695386614504796288409318473341911285568995366261071571762784861305493397017416324880740450204481237036119964454248371058527062930279153150440926088971554829042064312022018196766165852315666480688418542800797751261406149941418401634913022123922037876075445659935824111698728406327969244844305419051161629387739158903934914571738003217575678538590822649102294285810134745058222318362557491868917251380319778759359321173437756477122310633238262590220026224445148064528529843164312745638115169759078189598394439138430000011589502164616890485731272207030156391817669235680263586435913281250675838490571447960781478911234677635791979777060396492349046926661581123292939829556527281074154299235570985391822283065723387610603818425344123886763432389192377343801647951796798848063841288458582818497784146609147117327315255103972633435033929349787573174595239399279023503561568663094617577968698568079351821476441772380595258736660591031082447981271495773995168158448872941221690821620767286329806638334703295815742855590161294649949848667530766204064301539958298427564465673670305839678413376593983013837636548678029665255329479621798904559810391896636684628926548103754108998948529468750525643988742154104451851123441077773359918204608408677834229956599629734937138170963105933811535565113765785317293053869354847843841236248271011727515904192746007632445194713932248621145963845429525778596416995057306849605775061504337163743087165610849955315172156786635013613938473843209886261490932017053403108191148410956842723692526266114730241237133354561346969924967075105208627394126066033850608550484192365594591128049752203028977884404934680296214956133778088594019647331231683997764558926713457890921964949204444018608438932441486035301682444882923927098956606072755323555317459018774470039120137137187282810257443144288098931172056996157876978759930312375689502853834513427322567277615650225798593531035746882549681978173422657142080144510669994331724001296040517197598220774058807680032350181935831924111321988496499968704137714841878485731147167230549017722035185967313077706631727903725788074802825552256015269166869831814878698608664089781618850900867516108404754343983784276876018685389902193726597197044194063361499367349059744660825265619297994637451891313245424847095461917014760804678509880528039107355061365165421891846667932869470702698569169320089634557282350487148391021108194195640823259186244168750498746421034531323357907588241521920483309667436516875392595985875376279499300278740247889133652578875651798198432519346426768302249980399998781129677656654555037504757529779027558991140509031444613188091958675968085975200941010343274834337497664046072620518714716617381815951349237629580732306554073231693701786336316296769574404042056519947317228903883330547174465684164456440517562203181115885444655216767980676943774634779421525120543819852182318198695613120166506615497526272350780312643642279410349026296065381587651678692131553499814889336975730453039928644977558375561616914426954599420742462469694917236173914886893856184319606315549118289582046586958573515717637909350130911995908015649351588795351253636701375389950313868217154171684082783895166979963419762310658182851584267527586980597502920379120379968328695089642602424399719452978409483753462424939985998325527873762941225589188393063505386701425080365392333693137595247700230294235211210061400704661130842568722345689114255909516251085519606835469576973702101008095397493869698491434252572292605920451072102196632749995276007704842549645583032259509475339495267813887720949505701929972763682056195380378350603332993242508350004441646259117473216423384514897634314670774679606199331996563280309092945924113683112818528010433897937661079092663933542118513771683380512795925088542125607294248140000430977799476742516162385227479719489948756356198435577301430607998163799458370866179036080141841686584096444527627880424183730975738946346134370334145652927747977403747435209612464096105827615030001157067523913610728639760547744899997283992942017255421153733723919806152502270696286720051664577850448235619552720729233401787954640781587201363503324045069928118456614148586072690025175307584519121795015483270117540925493321505191165763610491795747408771291817994080235407527525395402071344668760065701385285525537303715368681410066620520733181975932231643214818831661630345008209602132923301678582605002393264908457232082905125848456757625694968765723064619673070269098360456247747301983919137752487384527804041833076117455542873738245608678618241121305789480387299731393044096849173289437687633591295708604247883182712370354552867277785780981776082601404823884802003147223309099190462824181273209897261453226104328923822779882433527964096139776440671667021931732371998534411751855602174413697088662954917766321253488205805888937031764414309206549813066364341806964202871729880471142907545320267941663935104129480519387997067022038427234771973958899349494829648691278518092772640942569890927047323163749367713412596773609123460456219719349674038011677466330852764063788116444256800166137981946139187563491038956884802176520311889590242871742876650606396132705757244932480229591102969379235194894125629437333915934757509251538140939234165501901045186091185962002938013177419247919990899718344443708266637036803150881769487570844771876156707345758697256986691822136447526286086145598114404747549555966519897319197357550592448281323066527307946406131663797672058159760868858541453646667197770217036380329063090452882215429229777567728154828758233443654840752425254719051221484316643192811594812129239811226456349454239852817666339506849922507209053887157656283553627124756613901864453041509028767647777218893827561500494923774838428353030326428804805018050351203505968151948025621997136303814882836579378871583691344892483277935433646457644118048904577795235739935703295894984047728389076045084737596114769261851502366144309384295332574992101503603390118080826310908336210342409319169973634409792464794434355584275043778826935772812214455647514610367074071969890109878097509735492824209335019533422160087070628715509623697321415669274372597667004675821494729519297850080321552004734048584681785183110561549737213395616102951086871601837725585400574066583784037316706436514001318731679098661799943612277900591540496809298593755357418115760588342060424449391872961164686912439768384549581262297418044852306836126032418541880244002246560633815407159240831726564643263380757685780098975005850817889639058808949413210364323988776428689258847795148914913247399431293462213610834735056016268359873167948420944094478238639995863577270820921134200325351879780908958925575150549923478435582242295010391173394940948747612950762883117102417168713927257889850436995751616056616892140957022867201070860020661558943345396633623202771870716988829161130098149020117673221276088371227920927012339177032350780409646271952537561210849894807184982812563691574669087007800765698338119970812289186465260789778054634132062519301911471670546420848028600082818230673251709536785265421467367752428004617431888342860052213044747845866700125157978607198682484987210465307130695194265558892826174925699621772863825702669630754051052237576057930379133717181819315602323867269707733859371316428957063744618117049836989344452539732327158929233674835520842601535171891639464245806699765247891875813443672883727047149555493998065113128788540588277864594025784466496273775598598870156189710667982035742669584606447411114376962036663948257522518323614802707063842576112126828513425521985581498167037532038936425893750277102171922203444678623147599229147487184212456731649402105393097942470630097516368316293641980398329666591024017344120649344479364607655518982237991370274898220964352001591152833958508990649496145866015212165636509553225640209297969293956837619576245167471351821941816572667810341061653898375497819217172159684545404382417756788389924333111461983814700462680859034135451884991228865326402335130913543235686552280312331176602658201723506016251382997223198028072476644909892402095366316169694179262267543880077706690839120886055929885822165459847275842410050906652738012799805600245645120173724767978982451055636181665586634870484482555095309836718960630409142598266375747691600464982691973725371039444304070021680770680115094484743633800599683144197486106965596163442871981892779409645461938247948704129848813009358197133194700483694749958912714212880174797097107844691997101185984215657222915284296817826976140885022557282304528699470226164529040068177571030233151861088703131598609158990622359320658422519527229623909998488578064303500213889700992502022174073007337508555623800938447468432978421335909529067707340785835978002489000950379176710167070785187040426522228299054007533911549221558324118382265347269216509757734412792972082970555705603137820637323344015198974006283134511659150958454247048136934211828127903910239165476284672546561169901372268526261581004261272854035744239758031221239873041546772402379694175668929301116191909661835877922966079256686362303968033305469258476025962612617087160056249264853499334703718761642649180545595633915251027722555675921621006876199236291773096675563096284915980930522444875945773760635065315151009031630506986227087022868711823573265303199189487079463083462412172296235456424016641746159263604400029782073634704700342302104398624596404767255895770907642640462298075459835702558019646595650026209122562721809438567218009801598841833888023971778664058520497174117656844419414460778355415799037136331880234986556048676249660410673188014026584484909197283222660298615351350045428865863328182359369800940600564597004587208685492598173599495075060377127969781185562047106805941170981375458259026076189188801208746707249433306176261495879453365687312821329613109392174733926794986361878848393246435701357522762345241636837447756801114559012210953962829550792773715402363285923788225365347837866637759136752137399316930982831832686159760727362086280652678656072555138044230518566736419360152856964339873798484256955986172996781220493415128063192352854679327646725738413851283836872708308872360272731929175224765143192011024090182299884199238265830094811917412843854693432837325881544410499971742459406052018833428400433862660437814230551305591303585309573214987996066722109635627540199082752070489508130456883123544508166780927387014389791091714868806225144163731694494453614130170020779131732108140925757951665396776344938563250311912152333698384236261634562429753482930237754360111415103545650675339067273396571450622108304176955596144209060886182983696376074302988835361891884550077327278338339785291599454233287411094989796491675917743004804168742054235170447872067691896253442500135341228522963254175807816213510257167859263715302888708258635025096302501540666049980742199859048626671474024418424834774978915669821574290903320049018936241332985979814111807530073671487600324459702523296717208180689440227613678688604870759182842937247880864018842207271048450098551144053244118539573799131939689390409986519893955757047015229962643246472046928384686686861203826516180270511329456288227241527255360967139041508049289773561498505952646136805398712548738910365564871155588695651868852285772016734065261758615758692340958284577602484418087582705840763901321625084314059682395113071719841899033450704935766754133566609261779132599022027466738330175184114919807204688209340534822216535239182096732623016002446317589823353624311442118865956498024849214972932600644518923588365616936467079685509774050966292728100319802558545219941892251031883881699528059752249314538146567657882402485228803757074691841444792629861205519123685825965292763038108411244381097008619288269909267580882640063682550942651513642283634806028057844091861204871097586817201652339481400350540591434412105299505586658220745576932032126883286804091110302891770100396219399343012110753776602079140219234093763320586276290820422604287685880231142259993221938422386956855195176096521434541088633019940618724303285858139289985859266292458648611751704112866822894275052506302315896017879947078103039067704487937619336560487358218097962062248394193216655954378128954232314098982135403925074675937947474957042025472495888795480650346982826971182659134433195665800405917333842173587705018612499044557741658048784891441790907877763636584252541491517974662463325996454949068972391068780356309157393301577642929905827819452239825367662016553952932799897692995848957775992619004982979533826575710577788791343345402337391768273221730097493492652290708223368526386456764758291185357141885572878655707329672806622216462520328621637451423994435062012535602465436344031627589323043324086602464099622201138867289312303116929729068431380926531421681874347461650430327671041563685458410179736805140461340438769747908289134261443827898115579168585067515663394785008389891810947568047820498292546499791741862744211527566940341806766452140193084939188263631931028141073653258522442878595427317193469722070274244636099652917616800196891802019414272129235128961034288774383933715611132385317807834087984758941424366105831833516131677063158349745318934576338833843750893791545609560730154259306987933717714539398738705140477783781901716103262881428007159773930729852025132826488871099658070089663780121960287220506590791536386663366800535939566869792894799606884593014318681605519158996405047680428097500942224265699036760041616787016333755740299792703934217606452592012809585525551158720885462782687595621423738602703761310601645649025271104388499138979731508090718085386436995316124775994926389159567499434263218360348858294578199218981298264802399664770109043914467860744462916322417479600884246564536883623462436358876037186708997543013926521000756136642763298370967407183409356277399773324778168129755043580652659919676032919357516570075618214345151744910266701443167863255758718012199153256704762584568899507596869276384007991706267755078391242327919292690394139936312642284868408564486395441629215645107618066423663897086477038913823960385441081045828931990306898297427763725204558496235684513376260372218889719533900128676866225726335189670208607370460249742896483343222933062240832306908791673364611932131588931839313463822838160777532527495750931323531943915709134154783397696701325065029543647722476856560701964755267017970072762394546601596511846569079694066802467437827463643361983747273639333448131224999599535098393818672673951857634875679777558631705025046979648893198352482268771509000463929514319598299537731857187513498919749023523573079505155304951600967842471841761723898267615943228907517101667757039025581990397756541316372319677867388919061017146656571701598570218989058208285135252138081821764622857276951665677503708452054286146685697413279640995949086963410959489156086901573271432999122934459861695245064886105585549451158080021081288753532917418510067443874642039409145987995047146087981535537023591373778748053913409529879698935444641204201063110947260525824892401319039132980742292606049038770809753022377177482978802914327348086181286135932733922398497982377642786094256160368147426830187157461014384391498450204524841020153697113176814205961087203300935011226278698485009268405814575490097829661575716793962606559794310076638132367869385960225159431453569899572261164208168912320051529754325310321888139754091359644837292483970814972497952263655598276970934045855526449918682990179691332024656461506341273779265272964012110834550105191790385998806145423385037929610524272543694830052747352794492695251969891846900623398264075282009787974277133168668153237132256679635917727140611840608367882853432773899771212147163176564432953221757954273923427965152187550110241518367094671525790941170461240081718604231534641905604323926753977286605909912604659354900401473350291178348066855266100616228596903129883524775340405502323182409199535533115101730557849514096509107541897374139753873049161589220099088021103223315759860980895849867048331916809265718320302169512699378765611427487123837005300279200571838132730067280932574019309930662647905005862866411309226052775990492057578458425224334884735683994824882177387645544972909457894351252169333885846922730601452858502486031404768103319668721759904442123468847884410919704074441227965513317933785781420452840871389774474743105230801028823657784221464808243437593019722071725463433948507140402560626513226186669668129573030808674397783987959615086748038815603712342178081988621008631695759546459425949946095791174509227306636799903924441526380984919868977815826205719213540872671756378414599313358317383409221411038970202784937448838653868925481349531699524913657346302573138048372930008290465664557961392559158384619089924788191593597037573722347322633834351060861887977094028405905211912261737816463403268676586938969085048486642136769817086412834440352338263520881639707668452340588487346784701694463923893822419268332859693261235270449786483745105700235560131503911120709874191797747657721266691704640013150972111612281670782243190123024688526352135627546263925353715030090430192141290704926616785791675477903890523904036720899858733990779477525207682103624948496991559164407279210866487258484338149687907410912180338761970916446047998432290344862362929946911923114760099903239363506215546806931195193674249414173348095907835546498652260905022683813773628655516936800023993334335313418196337444209521432577037933377885006932003894478609040536897330587671110734876362158969354537756928748032560137111191655781241568226631519265718169561864910635578758156549986777588686466338107361018312443952244797991346318198349295207450889175722794682603227306878370659230250455597112949009043919555686362209014384249562551305391202690328884501944079136181870864309398701442737125723774155871815038101737408038212889287123655941157121095218017243804680979349897982673193154724569984697052435272722022524502852632620300667225394925323652349612202116335654753724663323655326626529735238585336781666546258297390970827017907662044617556764014229199433699266418813976909757414761958527177015493079543518174294473887021552132726777434516881316530465527206371513569687156942076818926267657930930842915254068466495663272078430816935470292921747993455534853182535466240023178698497786886352743474572521104245953414724647479846498203410029950714744287640335129804589176592163103166499036014807516485848956792932069165151931154366544570078344566577954607783861239506063107116950843006031673721531127950434573105943408944351510169488755308711664809309409763650253672099768311097141747901883833688017169949573252055449684482821640541341774735376426198127667562740257368399969767219656717688917430792657731423902745540878479991225520994083790944900446191828530383279658444161911613536239425668251724754478365946719320536689817335259357250999555356178720441982545139362042072642717283005124367416065361562296082620799744066655768279034642252347637881114473739468449212736680149885873561870493816849331557769854431878024787544934273068585871138768469275990135330806453491125553523336452535938320229472034640571007604355830172466330764602259373787789167330439523143506823775605365677928730933188539265341777712938941330825456411540525092153252947119420134461096002738125844119124426016460695818673811584005386384854071778879418298544461405513441633587766457872726155099647159208914465822025713689429260973547045868204255683128705785545278768313142682133438404548224330143647654790295441257905122482903917065338009075788634400409282764900154812226573243555365704845036340771338520190593493661713662627537364929225911596546669530738412896852848866598768431316291985703856984579605748364354902279239618047968495407708206135207338794483828885164344418365564656961283318343466368474994176183049367512016042070565108873645703211079951525121103607944154580281045329134347573359165647022591026216765274611840782615437669508278157148062015276879903478501458284668710948432556893415361465638912629141730943689722107977698690826213562089986246472766049578990323267391536712241043773402385540100382640682670746736686030693714447063636389622898459907668843306248890806408022800276454657233103219818592814700014284682183644211958022570965066022251528174577408259095425349673164468686187817201036511016428040992967341860891071542123118083504059665220135092180411935189932723798983720424528626836703837369142645787543929740670238486044025880031170573685018894361118749772955716999155307459395743577012846386940287916961625723866882873227550831484497271916944674313011480051013656384725991455457171073234538632491002621703855563662667248119062262893889121249001580602957697433999364487870972108201013866597987699442347301135464729447190483478613573873328827016731910471066737419680994204575961802519419892830732405666067731789530380208444701944342218183339953539685816064112355197314603977052033878441306056140805461877042561267728355541912834590722580878005168990069004115849550462253228761854399665415317497466952920043086420883405308039292867864011301281210209509148611300604720639499422268331087637890215033561257246321304162410613415754333849231320222611731403876755313193930578848267318616708003786664939214627367474541170566568090872842800897412023434522566915325373744373834004646652396045432390646631883801339684623887371572827223918828364504682825974389846800051022926232073026630519827648948129696026392178719000224623254411661077982495292743933021371967247669508567099571533330035776463693623114370899994872940837130689175195768142796999949814630651489957647955964376755768237038611646745649256610841996263971694432046908962315405579511843754686308665933361356140582451192499811938141110003975222174130296124407885073271461228447504389588967423700497325598703456197815357695436541912072846068215700889960645570045467378889914456027544977123628738214525308411310698297587206149101920915845504076004326661518843725373267457136004656764631651228101374363222271438968640650618941580491137012789434958296467956923677861958989559187854575663701919110805016986327541288655175542896757739829061766751531498727485418026314719021453879307590845002622592935916758353116713552836477320799828644952049523280696564743310792266533642330059628658302825854417992675683866816226459397318824532577786759486201491766072646424059654271593268927026930903021208609978770968716210160266595621611652047344616457419241059748794141247038699393830556240540389265052691342757955220828889014594870564659150707565242892636628688251242668517889210609373823375108434542880067182956457819536787057155997990031274143194584792108026736473228967994951687492818738794381423525830724313607034795788399212645775283279465329744222472861665256712598794454004866854231556597530487301476147484446143786236465245875468323007283923842208816037909957805923705501806147635321508166078600843004588527303957390842223777546355792820742527538464643306689215568491702787893376762209946700286720024071371922041239266001298779697174376722449463022584340826151247015384087281379054677757565075360223796488907620325739836361400561668735814899578176748185270131119082105022624272589722375532341051071918839676209973804777214682973495046399242193527305336734419326077121418512848711777870342979844709432579900001114159639910980115782157754772878519112208127660247271895670759890188733438240867703375470464290263441695435264473259707050061795242472259109076148882082153642950820514847607133536377745673355276260323100437415530074350526753296407373159441184919462132069740159472098022516104503116297162423715670764442348816019642851718869283621782136961454185202481073471506790675110035406214126671517836303195763388170621850981429420019414773306753978790563314363580768456643149232622625862473157152008869632232394879412689848801661317958625319591578978375714891315596792625637008977877935944597860461289821270710784933321673446111003483431804872818188957431597780432807076467921787542058528916932364821995569662605577397366652809710524527909466650768412874329500388565518524314104603129125456407854544369524339359136650128954089125920407426631712942402515624048908055570681099526313472352596338445873527017106116100172423653347306846048852109113085842305551316742514560226826098867979990002571562864071783691494025557642245436909186271381879285714297130664797219760315483117232749343710968062146649636384924478168784196688882173764815831348734083139765106406532670130117415974155040899207804295083379984082150042878183644578453282663096712314117638302027063666127800067675572716747799669518858629768891273821851254643600282252874211419960353619645702640720409018562886675816992985967924850171908605267651241476671796003662664526245262843717584007325370191397440449268458253939739294377515175582145154688526631425229984192805662850793103129902561646069594712616872071418562186628742392650392007127264829506218340333564695629184797341687426378230353729200194464527277267492595338531721112232130019141331553210912993893612741353805364851625363603059343442219054323806703763004255648475706783982931242881359154659498988338070061690311843579172309383789611665054330902477230029087978481825162765612482426966570451144648974555564779843046877696890574832857834828006315426517049964394288888541100373166904572254786788502021899332658325472697902469907411055908441436749865312986402997497201194214040808298553284119455870558232619692410541045884613107959236652472558164077747724004224694433860637253726067038400662188962073377638879496599175413330667316553103860362200111909301831751046024856309008180253028394544828400477563349033091855392262655932172407218141018402658608294927884249790366493693341778989433795754982160358508256138091482441509161533389773926229687308185836690338802937247731821676102182560419919837558246253639362574413854703892978023377429230195545112276999813344015796824545714887935135036345107836303530274823018083804352336861630548607127688237414676338323672805069770362731091787399366522034047388565262749302662406357068231541879915034107453841777123570925650621445450892498192785799743423834696338158589330195490755739764916421103990053267912894089213480137570666777727719323823483646978274864188092951123474980693946727258341617167214484366729372510380564085863139371727984707280857732843491954711832133968581446909617674567614637651307720143211510550208033761238363143405769008616047326499367572439556229931668809897627358790085815762254615158110330933155792521314178044150323172705773659057470087799609474175206879762884529029411326674274716678935677203826542346823069374704544945139754111066079929841133861098077814677491818773999285035360336436211695060239039886094775896219628951622597518529459047094181817536376862833276616618908687361332885518033622664315530470787501984243278854842509275527269507948044513605623031063236105647503333803483616246115573226961326528961214838022153242231677182620743621901134586753704268194355306535727701273134910193552391194548118032925853251130289986205200942029926223607833579769501061427372711909607302550564353631017733384569699874836320505886573443328921832105493456567821721981192521764254490305917157738254667017848998242775032694408647411152548196020590538787369794240443198079841833954058216489575596303420992887938045091361791251813710383042504969026531795245341004563037796444440938372674139899718619475669552277813640227780828585654496768487375589556361544983469304875894784909823027714333103133504325765833875956367212619018766768320097864463377487492634652321368952570637520198080643788636126270147193507882848689541279673126305808771874624212142185862433252192338835767350727565477844781237960977222406352444466635409014851899293789864188525692825196977017184715932780008829502002492237749126174104311629515659058371214186856552547547092474541908056862607594673361894029901423917967824082153328629057378738211250607307373160090460600295823063551222344100724875890390324213382457203675306707417903728204690660159935554186832265310317870797843202486628683241016625744526634459015421592663654945955925816414879548224587764187780617303297157222516023816773753416861224486017800295428713576644185735593175311867638809734127786170340783635074938853948898272871989059745438880066384007834628567163407269383764599655245517790486815992233669062984506506272046801398286760496099100898373693621369545472059587110964772685600679398795770036832785651812882051414944771958606359101741839075646693900126100352316950746442676806752448014337479467020459753493335619769289481626345882175782363128614089690620088281138537637011096409111664172170822412173672793392166056589098780233544798279378473209068545156099075664319869735163620658720218006167325953626441391825264815486176466457346609457175607412952360935117296150621376216776295523412909987146040621265450817863522703133586527021495963362766860155599012212703222781413001231579685489935596605947358157199130739562891770904249191927528774717549170927649171641120214915057683750859803905320684600063978426999065175127218532989904302264911127755630368109398731024864649980963450127240549821460327066899781283351120042370398019768436360625839808135412830423288397683720473299899333894420714545174579708699672217552672660320236220995093723771035497133064535547469821532530503296319464665112317556477641755774556881140799702924883962725153428137879108314115547439242467488870194858978796972074723738875451789063426435998429739458039659831557986522057968762778066590582286496995754190713043186945098648567234624987364321820328666772588942625461326258119957060261136130206625880998498256114497939034709179928933640554241386365101268298923446066994741260186237145804347324815405134008448701347989475765325789417013895242744191173080382834587403550494614324130515959038010288932832901467253609505131122059099498645302504798464349548870759149074762013842578018146048257952254403833961990371736525984977426518907732997880345327090683099679359257941385529586339923531762887403841234499816791244579955438182353071971875413927880817637840621476470979481392510482075958332426551255138052772545431910081079075380376475024807064156089734520418405672448126334097857853021428278537792915655919795085480703110868056599303217412259954259244688629413958629993162303837268039920340769066448201641073012903016276467708980076104833313072393920264084506124855043570806615837296031039720686741719405132081071147363959929658444230294500511416605795944710359235453695251754337234966351698747395185760551098319989918558169586306119970897626577027290916007671614468246186783772953981710049030163667056863486234593973638803327731755949030368766749836715374594955279281224208369465081756493583539680337902434510987105748183579090248598425158536579588767403832450056524871777546879649384315438451514572160732440233386484854246523057472122718494418099701002036150487118731398033955514642645669402193814850296353963308946720887890757698772206937080109389829784790132307233628021509303325579327902422387154356162955205077075035680828739215739145793752555156983809170530600588974722591701775774400517082842109074509474558745608056742531066917749857354750090232639292579526396643431947052502700063961894999771299085964381323150867195810538912607725254095846539644601602245987311016428339024654530841139668272533401261146963400615927782576957773650098827352878195449330305137098423834411692825472924769789258573850391477753945186932041676031881828046646812419602137813673116784288835303199612036758338166119810260119599576879601966772368105693896435213664141272112114187743196359467581344167622327586472377239728007876338851292053794087947040750521949847328306767442389577447809322669191962905287893133058475820866109232249800854053116908320913341648084939443970681421496507893393652797619629357893991583441072784666523839341649965748516736165650295946717377732836177334731680294859445243113549972611729472790770440747794814840356709613608036807404540857440521090519742717370186113933153311237104083737898180744596194260229821004449681925557946330458624938939555112830159024767574252060258865285951003455304750958707722620590850192546218673253866375210188195176641219602991812322386951718996964898199876008848504706581892091348382166261794584064114778374362516364064122717450715593688049527411413526576886900655219329781400686257871735479883395144630018015504954017636453504996538020877332062179682048894989430749248143974096607131979030271911460237698157737110238659063615942392686747909429485360947183800383349779226485423387989474278322098206496832588739477747088000537386743694896207571267648709772114615085001503793121037528382569336332717381804174220173026471748996887249181528304349100154375091491956555561836737963088380273302176452216188013545544627374012367448011571868944582441263414146502692015812515170754615494122984463580667449175356699227567244175821072118627096132323801002215714791353400309213614182742527291288964372941781063091325828030293091825833650052150107746743109638148760807866255899642153615202469113076642211857507480333217615457338827441001940582378489981837596360077379373275045813803661850200821340210368842325325155884772917170241504224085369474606738982676745828680039550158497885256172142278772549428456839289505336294062781117462099039488519747025692088388062256289033638240686270259990109273897326269309939623349606597008524742671883877902427470587649955718406723808897806487808750851035433692692342560145046646296747374978777737469699764578236044956213907739884762653935617849740599190880810519999324621698893638189890529254679494141056443644337214376725477899457651864708315347720706679387686405945994677400770768341418202798482580059674584970491233596553876329646273802216325726341131467684501898280385724524490113114590770949724523661682616482309354888167124270611825106313082980822107436249481206258469956771547376389312665066633529172236506569176377776876045093105437847114374265749949860091440862454056239214528143494565065817292461129410149679309317426968631846248987912262156172575094243561540949161418273278752755386198744909099232700551375900658278965677819204833687165311905965382743491492311207312967368461837835103568882956092613907192691485049431587428293457841474708417245751353796768354567820881254641366518495697102642702838940891401343942342921632280535999828984005760171650434042737197615143296491422339637901779228651440396296402553283202618603170557139450338656409564700504748198986579617894988375720021160046943456845175484838510515111105435808595788920609256263316547328637711676021492895105584982446711556869108091350946013827933009524195799255468527699128799326095573082209612279585450273364254107868409295110043985328443016552171202227055924766845474248471986888860108145096908239195007413089348738385811461829612340081988950122291418991094117557949742526657258942422697272053685425793354881383886265998834191503809656093755995196803528102967112433397785548487846208018761236115527675682881352348634778735909501716379319327103848796844952949002184152934446837665003702261971079395539659647264289078997694256506455469723903760653073252503486260140388474088452646616824324338733635600488441977690304746570387217924745931609559790050053860194797473927991323394233607194427975163050866957067303332697203440623560305740607905461540406200624966076421630094701663404301737641952630434719122037927594814148307881369592050243849067439154187061850198018066456863389629964866568488531367782961482055313275993433083855196688892023020991747425905613481390551523810139850246865906196313168115178977863433457996023318595289645068440116327877072981390115660275784477260211395806531272652333875747533348677422595266706891015879330245216868454490179678828994776147263140904016631437033239753263325351429595904183992814201772923806037835707998180871380436043443875517541759382974941520915038009630235864835348313940286760139911890616264443857701906288745343802231316058944146199929856214983441650971200646406794503822556052126021982744861230185485478861129807359328111666580097718400665016341251545799827045737356408258119596964939342961127616609399053929702778543946396331465109192881489035282180441694522577349192450127011404286750382928108173696923993289149459798902369685614520130732800033306621354905031631718640606461300563970897304890838552082784315370936772965161345428723583267863273922357882192829432678273142573229569478717805680746249238180534652837092833435811828264476851725935964135748175714781779853834829142174040458173454406292705736063009582722033557727583896650451662654801976410221973409437700140058940594762140252462652305510703119601816149445897627764635193148392806131013418078757956719398829738479111595127265890789599110152064198739066820830232151667649598702484789331601434678289208328961252476343577977343538853570496763307878064049760264849868014553836006014397428512721184764742839415001958479568578509240152702480617505821775128885144686605063074713734136647479539035065055515916329516392873924454013905726090213492062578024763942174031753954391831353089631076443893981868853795379854465995479700929232606660530945275710665774569043112950988651596826524554269891966764944453898946722625474004645926474984002726490922177962379637108244239291648323999848066105597916299879408059280616551498716649528604607272235936255476809664615073284240918700541092673477181934862839657860540764549738443762052752948824291710510850872159305354397620245153279338963737417435747382672319288805183867322673396046056145385088383837548343092867741434264032215474173329130200669603542283504071005416934749094242766455690529220677937754826213883603786750147528055774411609627664749749097259626775601591063836869342777264027347433006686154833682062008403928990187639950241085911435105724020762308476605347713100863803728045775609650499706080728539761276442591833308138712042841293332727675050623688510011157194127757541950885132264653408220069699231055118051695183432505360578798647770397296426611739288144783800566639594792675252980185583007548027124626822569032346860038599478038009229996073776360573624920934619700170245718431320780343046547083036135135412899364528376792437587924987942264640167375179671441636613608112796862789984483995081324298336173272473297202605516154242443444775823499311804166009695724985307211185129387015758262999253921082287386075084155098677771667088330492441250709926429324398029907038739245802906264372072857487031063041493636102729776337753055250560809065041412309964656960278733761090065253915073535394676937662215907227131101937307846685595500595504102617764603586692614860670876497041472633964588907855608239644327835813669825325492059264945666877066690027918174488154684328172297447584636800204193631640080571622580563798900764205256711025600480050693136027069378654738919057760993265105968080920058510657503639600813635729700593448289014169232500849551338664997318519211536230930522105322111263568346231702713158964209171918756231924654975924921512406879362499809540754320115280492246181140461580191363907232538077520260007761501565667928379097532601969604252062848692979522843932749240021251489542110367805868754105857988458088740639968688030831691739046272700089368176079109120411074001635759240176539389503888642153104253163295702421698596975905049581645402547110465974858973865667852774417300018935495649312936085149596462762672298994210742613377948834688574624653321560295024798112433773089127676744256579438073643051091942413804554071402211166352937478095027806579994656817566318368366364687825475456355432183821266009636789964264919235037988024902949189856983033644919141904126065308771377892246288418797357785494212441116418737428777274420906668986384757217697163151978652873716923372993432967800327280190992443665729218744696667569241671207636853581778395716139240541597271168309104781895868473361651094998791895074293798417871169845381303109492308546551907817968015922116178883622115736930206263304627282130214555109180014958653828346298883571854081932315356066018805071014777378056196400749688940203819564510309458370147375362423695709317986615013681118476250221441754345204807912696639268361528396806369906527776917031573179708118229954277206831660282529400842679560261776923343085276622193657801997398856975542665804724048535992020037031515384096945295339421116238188416668118476132628544767153582997906867614796059579060654869047261170608607374444785549584826180931534516607198684693973602532075050805496528883901570219424368786739665529286466018332628813644374513911489521715170011317777030729952011583883600087159429492160560901466555045230980994155993585074646842164576987014055602165520869764207341872543994342084742807701813731278193901012557032380091627822411853087938100231558103168594135334255954935212999754066691101949329083551459747881684654618517667019758414971150838260716792626417501890603569714284754471007938817735265629143924258973796900992221966941812294702640688048515907748991634403700889732035221525192145738557640033282935202424718433575749971637363821443790743381858754714119561850290012714474161596466656429702331409976959455048644659868004526631531952997333196116130496003666263748188237856198720957424805728758449321240374720810034592252726129267770657459350182027555345864135411709863410039543858025862821331356432716631915013931885556734599991595749977604709211387472304478184801374303800327096954421541275233855867224002867402976340220781366930250045989146749301787577213892466150508744712909340548355136877395750427101848268203747542263111953688362739517660424482008034730523514909731376775847420085298602893159049713336400747795388501880147972350583898948447036702846288206681324866902435282984825728506978427388259997407903964689854613161684135285216093655897541278679389090162463829748119480838753002123250451960453715769211237057561522924144872969889048958675764101362607489997711980920363387387193037944618236842419612315775881151174282626040309972629389653999682350915478642931276096134695239513719389903053171486151584455681913363730934164198980051417819527165614771973725902958589949181524994654123997055737288195734415383987058571166901675522889286999388512626544461222858795607782377897874130473831340831278206045559683838789228946508781140871888264496141263896296761175577695065166041274117259288914304383035956479254368571678933911228153453013228286147290905818152167625569044022490226436290035899516472837885732539988752637398319414818917135879240387943960249672320973597111147839434602860776957956640175220410985326509588677782978071485254990940435371693887523656067009502457462006395154095453795679055366260789565072175922012751983135543393332507298709917592966657825601272243766045421550707935621951563988452630152662765811913768741470544772467402616723092177499259947280342139705861229864412863091834795178072077023798753348764439127021881531766926836053392140457107370043443547715991001287990601358537047538640458779568635704680301727063527498849375653432415247987958805073591945021078827027869165430795789476150060179339459485228736817180982267583273242109532398650763473276086864096123762715533455829762974136512634740074303567361737486769150742535956628397168550644478804661549848598909099963910922369640028000786656421879384850988567275866629057345225310604349362679397254486858982160094904273131187529662323456432994934443595457386499328331543852478091141171091055253188841032882496121802060319723016370330320886707712291518393573367041842231685668570704498017659608422521073404872946099848032184679290891208925033814213556142167127883435180307926407452698495469310899305474805728097284941194676694227737537452877330229936269974221427519924958396122840347309588829680590450307303999821929125108510732018936596482981475039499975584742111112464897667085922015579324485240150537892078171935668163422973908736072989414230265632066169755780918498385191237493707602234613802434727726453963381595269973361241388770760014917470035941054862523678441879393980382026754010069825382919783086246539902379005501846577471372122815359752453262581769389647485874863996941424758228428919962069734710127972002808060729144817891097561339676825020838805545949030342987323960266271874306056770910383143918923119051467882451851735164264946935206252558608446722140456832152827850041056903865271479985662812196377775133900884381341628233688415702585595285458129402986833968475856561215407424761015483235323013971621902356584759511158716937625143675599410484115128831783727488657342831838576832561947232007389502436056290468334717434153294132677718010623109515092578566142036629022386998229097405779532869240214822863470072664497067246759692480790188096831762163069730222744432494172905685093403542297679707916788076603135201768477238025847065220168168960243574537574456939896670928353648863573541548740595050599305729454030473471095187210158022448451740623509132474717816405153150338904071970640571844088976923486498622436802395022476017637277214468313207153594323938429086749719604580328689082129560623247140594825076034360343955877662060180539242447787881008123872464982315632336732316789814660378713650574519019712347127926495922501945519981667295826335193855210349178490341544668731604499060713108112198747109406662724010298438814659009582290569360134328974015503431968561580227549029654331404997780345299117786569015112518793209205308706211207916063818025221088021184464231511783864324734695702253040880373858463608937992927414229935352397993524687534765443411756725946544308494102707395495170423095862485938312174529682148103721160347817501811263328508486451035897368936966607696212552679943080342054755450662068992635118083980894889932993994269773847533850544659967838796861532758183245423065575671070876051525838087630456334872600677789874484932440710336695281852987095262850014941040426377105337759021359604069684837826753376357326760918796019144378188970970203836325844077713297906307244547437692273657718497140586325837703636684338913910836275855825425694749229787197913390864498676872937137583720125419395654101161596419217618401450929426945688763947844244104584259273466438437029227171980072156149582136034595821981792153234792108404555909065821391784947924173060683536920627912453853515081683405474423414406751215012167243261490787396390584432670632028473071578710275154930715996544599556727995256429078792969367378426062672718556782055029275492967791452206720274520482952444795593138168838422905575446616787543120023779815006536389013258792264816068678499620767727458115369927204306288945968532753839648696531452290488181607463211185214865956833817789180674143747609280775889488205388494740358697996496961427792986796380583951793011986811162109678888326073641668756040844656253349806357693795241725424707963338829987299580956003770180391199711949306739720287175405513477356033782403217230068191426547854110109849648968888197654540571044602767556076729359466026445327881139973284585839539125768874111986661709053860731781370723837157069160876938944067742570138882690810882575723209219490624566884999378279823163161771518168392287868443444065062580542937172582195132573033782802678805498465113661157171563016576039536878882630654222442664745409229171751080354647096428324741337368287992486236345851669030561635223387216333755061334526414971284118743166772031987852669232572000833752953574093988814565809094346264617207657885678164987691005746374948677682587074690990443167734812684835220404241888584848231408644730020401928635457351648512055014435219114139033254184468192720666338309786094729550685617247083414725000706235984055407925547681266311025445847188587317090336924184995179609780639723853234747563438474295628817655583504215265323115128230582187648126758519476145121823871225303761996555531569541120865518227597116813174442085398832161048931846679345790099965482956324154603709974979934846521650811668150825538515206804452977971083821821885510740305206765288979865402304535056892192531072082188575437326976889529514589580136675019840284502604035890182671969100142151126975021514867730519328705324458576996371819758418075981573395585039501492034340645675519851085270887826500826875952392338182484955805276606719953016004484947250242488192771159519069333199774826494504400795073635569518940580190328503024911621435876666873347175950663843426702699741086348560282661493353240273332039161622127789667017400160490324314545776395103572955408974978069781299929993060863398321853452323763598567648987228352714113734563742210842687124054171030562053100832675980974757747178886506603608110431412814898337378926789401300950317540406553462515243041212052580417337133463444608832898459784530244315470259244929633595537587211181658633141254698055551438110636678667203243701532681302217973994289772160068919826296170912219308838609055702440943208727743015562649192540826160926963243905278720322197496152153573162802867392371659656783327817170681245625138204731925035239501244813195928199006730338488349806535403854633923915841573381835402277196305699969115655780840601752052980520800779303070726654776482233442853278965896972433277228664927707844081966460200478272547229163517221928373564494272639820391930646306421830531577220368496548108215519732859879448808450399743273119648704802068034555858020074247826046333526917837011106902921009466602534664524877251890969250090461349601222908702187171868705832072406466095893405379028050850703984993419463372600308902843430980190399758448157129460766945679422206973261776902956062096592158458857867196769229450821132219215689064706250267502447022301435167435546644198061938757107762828527870825178034534569419982621727129144540760832692986396527705614518296171794540955936533996635660097462403101697774340513269425467119997701222675828043477355473446268124417431329806035494260334789598741535534011890180532050529269734624515899710705151484859016722392367611674124660786794024290412085524249339728993120120694413501538606099642388935059608008609807287636238811020863567439208393694633025812309700948724420690564879438096444772203149928434767009046145274389403695602115959532173392566987145022816387426743811147620723775641781382454590257429094478543740874919538191139456051450052077875144965775094992438244589987254059054801951762071396633353520027356733368778549371828335105698426743315214804624446417608894680659371761609438446758533472121776150824653147463832814775241745017591224956695331636263436480581342548173580392119786012215439769309070947039948459515833559446590586578158467355871118220235408874492298321792703397352532315474291294067616111307739420962528701616413723644853773133084255777492168683271062263813000729304126097651718944266389351677157933057720647318017543514537704046391740987630315604694792535200528396717930650489141198278007909025438204713709092304119897333001704015047136704619672923563477692452375132825943152509522514373328114296998580308926885794021508070027871560519345688546923698409073178765806882778231947489888241613750938463210917358105071608355078269122727082665313267230310493200844411403303758837362776787194008177222705899288715196504897612473065144270331551956782252016854264333404074321346991604547604452088824370636714667547942586631813751449332018080193140411308451008084181242811143058387585800632537525498140534411941545179576625420065857357293405265603024179467727657585337833611837106036100898021197223321319877316047223864423599915943531887123678313557434489534667084259629082586709854452436685923955741407617914626829040075995549698434758078548397426303846082744114975229096369569183207188894840424813553616219349520235028317191009439570975046924347837955449184696648457259660353082344185739064878771319735841521937648916867400388315406568940171709303086227179089132496267274019534710214342344856786407650198000499369441866164330919804705860745715908709352262529322160552684469884333632382466107154919643694374746168447153727538340027071727717634247820865524439427629358893632428104839458377199357972383640595429836056290417221541217574924543925416164580114324093256275484155973950810990996720138783476463465461517394888747515861061083067514748321733813416632282512023499793862662584735864050018086198439036124649058714344395340600457304213435871440931539905180084596002477956412368153268966827916016601149682284060571007749417367400339677556586870058006796870299514444679060989772365908023075041504371956874399337112131107658853232670492149446417023895990512036304020439613512008120745487541119793652741811743463346526410110563051758290383992368376504251114505395233897779827186866929951588097739061869826958056406785525396358350543504828216925905837620616725816958383647303961055699410068715973686593330919645682013546640251120953364494949054361521244732254712572275331950469621924800503393180843360744577322806501965440038211772900394182524248576975368034354098389834493947729641708138722968308119094081696635859609740515714320176512627393898970466934037745372209927542423149817152572650551745803723534588304084110572395604449348139647767652457434477144408849509353153933962043173915588041207996376994959867266895949412264529612242293991595570128962857301516802332055112160002435531232937333426318728197972588371934427121059184256161162563763173123460314772817266857021751702779399296646364090955310523203139343478122943822289078150665508045841378612196532421554261203079194917852925075860611877514486808634534736930556790449103560939043158875579410851560464133015720823205028514088761877714841601399345907280705536892369978684855274706994384794763085886984777585942192923532897526593371301220976954494256439046928276031474431502999425098591342363432767570871859474407067130665282927906308547432474325971123731662642076396628756480008737914316495893547123500603481038023808837759031735100777865829914930563759965805037844709502775972926253979138596705729152093755878982698531201057932051861446155280235081591027097378219109582097272601756639113097701631801639283243716164419398735740980292869940541071804624302194561822701393908625073185736712027963026456161048764733029913336445156566535711873468028178242668126072417460503615514089947711143685513383896041037557163942154666771549356107667896355953143167653161943241764036130231313895517730447579194090290150191831551892752279113574902133903543251554972654974676053405306189784748271227647438090201599424763052193009941888713899244777534616931906213658317252315538796117119691717812633155834357657063797424101495795242578459072887030538447723397113577928716765532987943706479445447975076848110194471915652158458285208132668521926570838944590900079190652427861466890989560701816862488344887470948715709739024780473462008124326882662554988425581533392268675260923822166135710622917991679039429766998040854090143010150320516815297391239585392307659035320618566306012137171454653446357621348385808233972626337337061803243180617606884317106130034685002875969855099599828602508107741887741166350916306669919771193723817991639728389630479706690658144923086500068627881145671122086483729341879345933151993945434873570814362138873252256636469957110316718331053535565943327169783001251604111825034149335237822267263835776296051322185920058303011916942157650986198758496425502826318467682553344668981966542106669345678680545622620431703965805094773120595719042208990653019057100526126726431838846111196280807905938531024407290558533884996131068387738787258480805698551088752126709604263602125619866505573183292078841658769371924677399362383944007225838655262885492791314064722112630351146366224844373052419120671925606117470333324863470230783149030693356456204695707479928658336031413007064252105397366647182234395282234041103217673590666154399949643188305231017191699618810554801704267774227669814953769155632303307864009137739796321394454010154933311816647944675684746876109436473710386623913260489328765415502874715206098093509940755403665523289195942820491144971754160366565371294444102835629311919148980512451753110354665978001553941016318995906132613175052289476203224916186161618085718307157682845874882798418189548800623817820794312151765410077309569133303749356096714286312822813596349161516079774430209567621760574713326352964360602210428365479008733002584701178429025727005183172672513011893076948238742232856062090582635621080197236282490548265532675625660679421594892933009498190024704393721938035562605637864022783849065931018581615506799017217714118985921557589182799488088423816645504731265911929993325589546506946764349070070271944158114278205591369175847664018979370996730830819804870380473459222694128725494661721241807157740649910747003668468379218970170103267778997632773198767221964726523867343993419091959358042914252769658053303739559806407634711058748842478069468623152771888120454051558239935289207271257924511641576659016892620186976480736851167800611917909083146977549333613324460675960818499176647409782262916435039352702434458961154686150760743403537556531522119869118182480300986126641044500098998295294423794964970867037559530359712886675092895267744613736790338500334217508009187089578909634154884327925646223218293845161766952202417723605637450952290641990489408205617767701455676053534129880041098718341576777637167047780829747819898956715147402157754583836331461196136238254321318286468047643303446884989558185431833030426719553077596281032575265420347400235715842818062309391907083117926830810141686337414939101917371491114281269909763946060669213791072041739567303904868202207080532722472138500866731660803603387122112180163350475659924632609101659548985551532593582231893769839448944181622720647005396828788004594658986126313242635393412131377922030190860129437742705806387684679389617003543135254034329061420898468981645345301132566410103334511018838268368079887549351487731129486917905544819619611360782035024559465851766979347655988283656058257961672555340696052623287248740526772607321733936205357015489552695617520642727889586277313144347396897854414717691885538624853261948020814585911801917382629135496461412911650645475584602807106580954012252883955639845466370584997715237560450924518942601130855235580661711752667321020437878337861723694004958381060459076988369702052190849435930277692791691194034529513767167110682111960128163828050585806357429588136738237471360155679934394247979651857753804830436347811973541962369941070857055281843065642724699153991321976762778679331525119365711559814343204576174115953490109957608700380215055598147312547063831875958075446025337977965496836950135184049983073639336560123253223051178397471985263740741705894071959075200781203658829988468521780982126553487538088221408258141113063860411225666345342313544905541367830199386485881561812085335836682370723000371000119628033873201392040237921632445827392958605980020510133591480813877718679615819334601435186103135270129441349178800313110307891317186282416034015806572416505511537566523869275321370634733055297122520765584279596247320321468928538640123457106289299254772522473089561977195960714695929891117999823014263333438465468214561449230360732174817563184257407326294784300555533731518240170830254153048200362868410600509596287617782747373892386740227986195542852006652745984124004106152130540430480734352275729156867563074024059898254051826938579240336361627996311290599192995592696423456936139170321396356834001326429110336785676849381674479093454344264692822705444097340387758873335596462830272728023953595284152684292313108505206481663408309282317771304255465107099008851988197626770792344281416049419101940925551808894568808006771615793823929609775524513044991868989304523752737032446677949970208892493193420904146185596350633919297788200197285809809775966499440310300575899386550146225834760577931219876391188375302409341372617130266809584626229634004723570411366134500636211276957882391147011475753616154891479183928957500563895338518756032437173518773880093358937049265851279402641631083122361166022284035962224648031892417201108016120530407541254362832595946079221497774849428660576547452488370887644843966507469395762565286007960675351490699020489077173026126049691235365591377742675192459387282235059694595125310340807727619109650299222928680857058890711416064128958927784656025416782023944047081071418376808055651683560177931210550674982767394614257893142160079327130594126923575249928363524884547998065796834918487469760408269199658880957517391420646573736852276455951959419946946137991465062828386820609013082228893511699802941474543625721002034275105498081958780458407277867293938997269082274986438905859528089195725245161182452056498763835740778203690412094323701224239865428500032407196217955468359312858639081547650090753867878881987481126243692323201170027566234647418071593808792661894664533152936845881764041316606433022823242823194626246519811417048090734946863646371726302715226922044224672705523374286838006909754141841131371092196301138103744880341438910412993188221428313030527679524007198967265890365385739680997031909661064542214185975639681258810127841292706934476035145021901754074639430130448719862501150286112319860762979027089402320936627588773709825695362213531341152630733614151626882349560607899606802775244699889426592828110120246897852307072090063489592314078111501801423352546164987600854504866721971850111440530406627259864432895841272662953400784402862078786447288464796758013369169835157780527843108695057094228364313887090373881298445863587007797978439067819778014163222372333640956800811058879197657129152456878009115077067127445599377383701246947670031431953237834180625395717722883645677974670362608400834791324870710139564395605612839662809288050989315021629751169556533150999074952768770908005083619709606419349879131583883016411431349669257070948635736336866309424299461241914250793085060682798789522266361189113334062136246695590859386853405693898406994860639739947455086651336422895769305191299323183160951368784259581882782235299200760961883300264155965778823850922138231469461895282162813768368564335918867766575018976805123605754533705500220975274310977050834315817428358740553900481151549807089873586628954464389116711711593867697288384343398212928802835959452345019613022464822838852161620941806928244383364374630250152240829907251071717974583304921807383140708659369210701350268903084801156192189708285072476018043219814605695524407247748863845339764534664718129285772041220542360900684359610807143302732623856588425556238332466140244856435810847664408916068643570894799564287969671725311995155908788859501178465142946934322820601545856432058183186948460096916776107338936992419359944044622829427308015372828400359575706984279102015724291998882897095914819856936522613412426515489350762918939897089810557308139752162807460114608218546517601010623454490812834770155248676320300652054653598824059484706408837859904055196271898214413510492331473975567534524343903549835675426172635475791553196191103139214947557037129941147693595634105982422023898027347936222596394336244110289220291598006551897864773505134109794851515124830483115851648017554476956693749042365705130819004014832036846010732070412690204128579569192259263228423121135110223476846941334268241821708348432283199340754573611370612975861581650537196066240320178455034045994530092791572186180975482448340996845027532614101698172753904503891928022071679973399352894372674261578688411654055334023339316132002147839711533574383474319266399497871354448702373873340537822476084719585911106799550678884786401789130904283127220896138901095112774252520952175096145750714969832169067389925003645422497709488176187353430094907527089110955237016686051597722513112165521921751211627930009496402227924328117079201321970203380562203110176509001770580800186144034216970760887817375364291219572887406515290222879080489132135079247308355918827446607948933987353213480065296029375683086167583858579633351725749974822139602027946111301098243581643779965061718450070430813220492071942939884619167128024386900222369656288869446491671813129107849566350167984654415681563077306465810341179738675734662965444968731294816013360096053948758900190607973165284633577818655039667219274930219306421782883028862701384586009364303978220576001404815655000902994666998214598189372375842005307072482806851480625683578929127154620572736589473855745027045926021333925000195538876868822554216142669862395241018107531378744368949688621069447684266771701388333137556169238872854026571916534836531738549612265725838920977459238190865777774101298972180184656829336193841368093932478936546684400239703571067411987793400129930114702278442399302080861007286810964067536192261474032090086372183468788383249091941909928474809517585221720770131907037300494240704410299057267212904225236208638993234390029606525122126943543996741981572945507626018777014248831593328168549934126872411614705670995778308463990551063907264595020678802667918566197246648909477729633609477119814559761929658816761644597899458208600739189989400909383057616721291429840531166231330666678905763786853583100157396020186735022301950944781450179545442768607484809234473283056973429118123069506315781226420286452095909565398282595385897428960050492537827469554428927683480662263728331224711290642453407405632602924654616571856063128665093279586213828560714154331956710873555204444336430129034512556381662006915328469757282698413299231096500745457873967571517523050479740025613583657209668959828829831251636484083705096297122936270045169142435596370129087006643002445455179061797447628928125959595690723387108281990591868667682474746808808800898849314908403342113430871913313053009296467908197778506459993912218790010693349732216655558582939796881929091470001363527247739881144040854867241568990603967852357399317756354180417711476399478261415891743977601644308691787110977115834327486437279312936565128293299640531849678528210623493297659234405065178054983962203877912580937841090068944917514718382474020834176998158986159656836136870374117790955413709967883053699938593289405625985098087599392354470326705429039612251384078913847486851119937341244668353460736130730539422676089331961849574666701437530794744320219739811258696343816424809587072517901079925842858975121341345885081740673302436964798972690768192423405759263640649596487832032579303874754256889741748937303556863786667103646286985341499764984797405517575641671524453044776520977455499997515617905250289445824900813019624516528244476300426597005009683508616195941047184248099549400662174588893386340650714337859814001025745906147611132025418165147443911879820558036683057723767489943540648515059700166805813221197790911170426715059379608194046305134328853760876657177232748294293426790806681394841034372518855497449344517762304362800739003450220742575910286081473295574237173194421436865968239606046941088441361791844845084258985707872115200808454465340981185713719251598087446874621052802363921848844002603259429486076095227126769385615057724559197185887674981738021086730341219876284411458559037865287056934031779040030481901613968530906302668087446674248670764106568289505481873439030225568053289871528004460475201829155530147541546169121780101314988665000679396892650774838293803033446564526808192132816144719560303759371547453390171803084913926289804363952523674068484794193639805208208816057010273339926198169505132459155927749080520250988241717708771940208832458672472208077761530259055400382617521759988086696595741417798933150131552958605690128712464195380462673526961937647487071147583691271857157414729760325489850908950471398504360534879728638271671334037241753195983126357838815057365241232076825727557726938676717202875362571064261470044783463850597313365563051703845601131905354459567178588095154781845539521979479580199042147780158485469854289843753066351790864167640165649651878905507849691655587889820315417260600953497123878818019486403207862912147745303769424534667706079578490383755635005130336954211268000796783273829789590749158320077516397755859820148435795516266623568302890585327918849259189963125420254157527815462677299240569453973215990313390592225379779706232360991416290073200606423908522948547696817331367391195930658174857498761366994608749136263178913607401327001361157109274874809481633735174738669553030636262146759741681706318164484639447796535811307369517548123426268491462589738313626672329989712951967260733531424115299138627406526303823811293346303282396895426394522208896047115528075248092635561806917140915122351497805751286996259685022321207360669923196038447820492372175883485829514494499974297131511327768695335546252023077715449101229128677344740806446750766132505872336807484154081080356709240114778346082773900002652275499795218778737121222535927665326953802951266997360454405112877954747401720848496355776192510085742977973519336107568595820768107286696096026265500312095064753312500074014107916450865306658864654612689967076093204874130990688031614399344367443729863385757325611339319502903070176436780970446953127739877020473282152901540639100054349466086338158171591537343641217715103566386318906907747001234899881409340354701781770576771897508074737476730158270871899757515423296314729029714371479656459937572445590038507074743843513507313718497050796881170928212526517824124906387470693062589625373766170245775445517857110539000733428126673442454051187345297283443708815077109710956956686457554631133971776249794164408394871176974725009225452321103003460097182339585738111094259112572033220762473119457704641159027627857786143188375529659522560025321862714700176132156096474217120644393759265157887865173576948749589903764925345046425046602878733340317169844681904447063325200597321382035397061740901554390062821841441835440862867374450340867769435238247736645481997851432620759767488963015909642040587830656247150660951087155245575551973357145735689582696250634619412499618251166984893358065747864826862333841356454304599231120385604142892556005510667634898031213541723255096817138935551542551224902176074112044853339613066263354587185098629235484810888441983025930901062537028871220437000427844497592103884946094586276991476694588165166058754654399079301637488515593570378115928748918025793121383964597528199746881840900820092630714379290373421099775528647140375374937976982794012620020347939002740969589389645544347625282082728479161610020719265715244237300693279293931016563052011716540797966378328628389520742655354149854201503934874437182684828896158854084372422531474215779152974887103742940058041762743594552254768837978997788949790020299202837696473955074376992224676017288377862517659057044741474782846748097555272782931069909532626327967838448897517294519535722056065972536443723061743095883866207673050915422267624568539130218636485481586497826245781094977399834370441093653857685349416164322608472837151957861806966639361727166537977331600949710609915201367099163129897396546395997150322987147447029495321742866191870853998900194627393547921033353945357946180087497669974871869294188619901446317814211410847471915070235273888585841805715829258719058468518654767083634172608718572638209004018163100487601172379757826868111254729950451872824005031367045953286895956253136950668019072579368602094291088039241686562273793266611391095825638327589284208341854213067264959735926838616550060682284356960670952336255079211313680528369404444555073582076662990220276167201585955954705495021194446485508292201659187541040837857065739414899882895624280949178651136494094479296128432828166819950469487794470508223870213207229067439531627724728354262099693395002363024596466119765286193759573540606016943992737775595835632453161563222447991766097930849654690069881651422440417412146342559005692335544361764793527050736597712595657507988133288923939370671943871464815463719932596356166147816310013115843835103440681943521544408519000020467201788235087175668348940949614914338035018371171853245242418646809118453857631612667395685555699423816356494925854333833189630115311647320619047544838752455144893618529732651086280540972068041452098629608898641944164897104083756614060317829819041391126857685859095049508025881397955731351785626659067153609717295747172681677543409153073187055132034152324909052216430323720811308537320354742919925925084615389720609391744088456362220230783875688692438874646319978777179402711708107748014660008071158372541298050268535936077091900135496096690315587234784535441422273674856338740112757084066774831110032441366389098210559639306728133308504020334609892413344938671211588569179288062893713966631950940797031258854572772165198057682766528284882160560555082501852701612762049255527608359768283606369885055108412733736493662573194693881850793435238660977742802946790726214079389716349577109550065489123620730471081252178488384137518586799881237877976569998657029584033571810192923729422128965790780885658070399829699794402962525545405489390690617436133964467287613609161297530314775053865552782469355853292222213794367740518384824591684168968295652519550931704592003968129597287379870805329402306356540956500468178295908158757792603202551395187705801699336536810772592000942821793052427994433926586830706018844537879437593176863576252150967883023720190560639322931274321838474633018952884678308687875190881134063053767820479022241410366778712283980775228374857200358655664890437544938107607893362517773405252488218306398312554158128037786760771653573260434570739468593409464356262924988669474368264671359393045330592287816736358260006247284404762984435909972418183793559584972411239492676329042397980102385154570313522739019353656310467841369522147248851803116730954395896425956432254039746498698673090412652869513259836805023579297284476696897958193215594416477801544595704380730606136783567350758129417366896947912133378367793208161154746697385918503556916388271926345269808590773159466883994585174015904141182983890606571832467844903037793737361815510182048656886166916201158328979777285344036699469883800298986075933333228364947785158969217364340377830222150029003400443436482469389151507351969810350844242390854757114895990227071034935056683662009722339211997918134019558028611688905266993634123139436983415331071957784368225513146807565995083828369013440329285738061524967594833312155125713990646941040883140013146299134678723237449489032883115779416049884977190502279832105905674417155186285496046878849838171345893522628055847887634388931762084141912307165653012559544090554305503690517222829112757594551334477656113558872580497423768710920916625829936236918214078926158884214402490231125342609829816741884492403350470025125850997375810350579425818181469672028424146331285090675480341994690005213261527997245076090629422738518266089029681275669193581411260579470254401560214908560133207960726172218429026875501630024482230201895406841137144352432323807635147670766201714300654449061950478207183162390183228176561512987275315112997419924907380892654351624917461576938164369611055174746757142979458061829087909358386923455988084090997623181604478665375420278946184965236440067651322723889642822043459118380683159742457761414248852100517031315823323158219799806604694452616040450712953506109618894499731615454594836438607891615358896962040672341253988327006536213549411058004324640484602112555373792744672134743163282261596189000042145814500780642059301922387845570344287888214902798751233342781052438309691735046184556797794786781108387965446164204626847292572192426855535113791488975600635342386788506471345187404667188332360001091319231042937039561005992055596974736654862273229371495362248516244436942189898433770333286851660073211338254046276317172506715389169822941008285784986951763121644140143211218169472786343389568668021834266603811039468121078482796131275555344631905093095777136234696620633349585061541909018808244537318546877743254143691907967705674100489525606910716762675875423956376905023351636824623359795358715626903326842573745437554372456614710454903455475198928698407759039629100567253320448731519456433707397692741020174094121421324721280059790575949993953065287502667485577995168995915892795537808080953978828388329842458795854518748635692664193156554170021453102523529146520983151716321551789461560620112447910665263926306863430675770523499454001416419728384816103869082993873411788340076990405606100349692667331158950817711117378196422873879523610888521786620132644964055258897251966754676207403165195744105549135088796317181708311344647718611493573776618501847387670747844102842306428783218602701851129579592944346212703227794640328921380282552184689551821913794290319427003941368922876980790449143823686746851192218832771533312482004892268858500351902948383559406734907701756224124202966337802069476345423829178209221677513314880802983610461411499383519035875764295812338875934970264395242445210501079571939364466089746642719044221113716690953780105752892291355774102353932618427993659722332101656333058335766823015642188660238900309301759012866534984675592860713718043642340403848365722605961969311054778390686230541953143325408890488995206048899473724843813534919501160513325959085001996167018738263956972564439701786161349681633742615855123228311652821257487024254738554090671851559171230487312554625642257114951972703737026258820225635380650009063361190904518585435595881036744385975550149507437578256685960210371545281114992756846686791533860733230212648049632325530252791807771448740391157948869401729048397511456496854055938681284038383290078295833914391286665705557853908290335191877287928113618551735162186146403030187397764788834554543330397446323127171222165919778503296130062163167213922645644288183996734334486615429686422355303373070352119111550515514605857932560970769802502913415685192964108961629020204320129226281742031423992703514427327413040361263670502405912097983704166602689425160434030642023796219518690939407708640380025834847709454260083899096643562372742922655489471056332033105496412745298071083580382006854450130310722792457208735307589437331962116495749632124584952694490369171422216937525443868584982213896026426881945763290769610592908573150177048172157592577402961803952335085459013749710855926332832164933426763670115186517811391427055730131939614476947758398150029587203575901317012965473285974051648360927520921898050494465923388386359545397539884971031048872816183782791264799162681930884980433388825638424085178620008087813718210054379751588124569860395803169864353996879717606083390669556142406245005612583889262710311943458581751927433085847967632202672384638195638979036289740800465745964833993836726223206315818740160377443339403412444422463110336578039258905548135346905178135187450377389047960318724142853235246309259076208964253802860155663873645242555373066272832833718629410007893812706632518101319111351601427080916751682354789919039560214126321726599302888282051060944573098384930247176938219049462770744778574125722691673683696790420988487831971444274929610372833364742520864939078271437286122096109197820868165451895954116431997287260084735869825561396984802565377010178352981661194152079732991777000345905470895974044937854668039283872183020470694925932881278114089616238467184322717182423642970317232087802659439304111192231077267171240136309421849952352323310263733422242630195792832865882283466272559621672898920769703209363963962353465940633608298775753564152057441561118188759903379626409454228502374381304370789036265625625722449260115024635328972563151657175922768233813664508157193861266003888254308487349855182310297933077484435013321272103342397471765309114099591070383802097674553769833293183072986865051971908327818998873484922727044749057950436999870192492240324925302300842841690954522023757918893777198351208159261186296662397932385717363845634383792380152634927484583811295812793600099144680109425442476797334505861736488071264756352683409500540140649757551998303032083451236860813669495715701312780962901371180346390278496688982937982436477137443989961128866366674905246829905827623241523834224282992131335569467360754944908711866988070907175935321692503274027371314729278247488460825244409767927713155704569247088322197129304566322772787023553131138104583321555865487229063830177151199617334654869110581370914928728606364104673545246660952133365023912896887894717694330878655075073481957621172375062501649095751664522758386271967797971642417659641377509799638181670090525431100526002880668279730672551709211331043523759769370321504998193973205624831178183498933906167721604973655330698776723941789245847846723719740446117817589638596274267257796883336564250239053264992581296298338000293825814452758263852364111185771002190472690729414681858485841734823251329410506616579679640604961173923471705651739644525206138225515739681025979077227610235231695117613728235120342042563854976938667964104562113557769997651973414681828893679684844821309120577379438182979805784382088732440979328697660925680357957521679369093810297242912557418692850529389730078479171726274340894932892266470291840595522059088010390346844148068786057236814940394785847118288952648906468209433645746611786865654707034991318938602578249837665131213672583589229467236145551568947583946804460008842547884054041735841526457888019474704875260041773732156937785883883208735162520375171304912224554893493452991600026154163927539411971046926400717336464917617893820380587725536226824077121983373237773543091354160219769305620865793257871497498088533224259174509506399939927603858251513651075815885762974489666227969609990905593607909947701965332358025699685829581742801576483636657015482860816927840617953806501181552754614074282000470075465958107888240691155251330852987873751242557975125445406340346193217568322977072045699830443701151706422690062937280478149660832954206517973959949755620336476901885351243466221783367327893230720996322756194320630199022568332643494011861391391891872241954134307659406884856269694780038678336192144582956698576990954231022871843159787533814485728041054042514016325412513508266238827149355953737940721738093954487415806198983371199436273091748554768775299026971596717735429841636505619578941560622326774115998326298028193215323135428223032458290691048084111290889957122447532188001388760129817976566854399942481540433864714582563255167301163021131861519662803307661361177858578578007734494649549159412062518136329641900623519637028299288034529876542609219180513253940050768482609044627731398760231551281409190039371112489737072157555834442799065757542570693120324900312504312957586761165399576457642688263289837500855012433656562563283023334610812547605184481195361095902959011520528682646589425355600567675540263120072381436283736807695358461283624299370346379292270766557624258057063490339843253123889304180731458752945267847616296972208941377309632898869436390869232327744767686972184691499413239911653407360052673568428826624270342320244320829564173044596017155222533176376521041202587058440023603411836850419891243432807908135214133377886999079766727006154889762633094425416500972990569515874637363857263806431057285878150497671952401036047639752827841325200718423680661369455773749135959588696455103221544820797043393813592753926417701686938316364122997762431183465294832737946675906140604158904602015612835853940055661864930244133170532889659675516487099272834811408923016198536313491997628780417239122698052882777246668922258728628835273786390093998167562418122377147506184685828456857085679365811945624236562398454355043956896642666327129465365881210926466598053801003760278314743937087012309084641693935140057404454551128676099520882106189570706900346065784307485899439330535486808016422277054585609640920647039626149277678833425992510587978039015739684071006162198652739807107419325036589151936599973761041498062306249277792280614808464121849138473093905183270216365389968340956674089364454922201788960688008956812486970402937190376095353523396617312226954163112194903423519275279707144477715940768024262941068840634985124425426012699217515257722296585330152270345612783717483227514634659363841019347584546184823080846898518282262992722735418992677776798840244002926250397371789395933615280797186247554816252174704939339724227856782615320259197574387479709395350779067873903395017834116290707665588902074031091130390505480658508544565844822262532982502589203456322067026422694857450075817155505180427982087913861620224792540547868180090025403597121242021355820010631806628686446162466350454542390293865152392688260979922735737617857310075361383164543187893270892304282112076728060588133144681133505696486626884310099885421388163896096831858931516266435193594032341600175457981358291171602257349433020136520937463229790386387968415540674288061707439101013898703616523295072012993565607353286935505281843884415139060278758460533460292944915404059837139760500234046643701934854040914611069945072023567365408255706823217860308532735520858082338216729796061373939522246750236774674388414641463225347683242125055714663174825372666688652965134309155615722440731221607110721231048928336685260472453963868362983879015554442968398827393637810100083755279936532700738323390830297750943221870950794813489469344685208136403200603087317362412533986086853822542474269384047152580440647520251319009802305309282568314313182623578010569182284015508595092671633122823165639510375779217351972855790906937671104445410482717621757411661298354710951017531071759998441408070213215970654854728107331492048468547377955263255311072750391923863230541629664598456148576071371684895551294864228916831002918564182494393898099841165764385882004638598962391047113558917259476887494680894812618131371639161842432946404277353023621885336304454280660496162120647884469283388103917954976490252508468264665089816192618540787564133140864679696670889973850525043669576209630200926319155905882568483495845576196838461862743047890866311339913904510440018667906449976817187083863158229695234827871256596416718135743272572603148392389799319090924136872932130919791454479396911004347585396359330480162205696584851191100395587400504810342121014935196350944413605603511535795324262206591968570893094629341710000210639318634413555013236739285932216133730088134910977646855346666597807813197626080282604393726810886577989280004306558893620091795981698502472584989484738578491777098619931916817686689627262766543921610046026266081022784990188169164101559341258944010248697540995061760054834931697057303430511557072185426023838644463874818841361170925788486561220873399603851403634115682976373034041436356388868429569065259814228147771902552627736094617663717203572970326305931506258604117497859063014283678641104059232973656503197363858405643128526454653469361316219156969127135687752440502903689667882896213254953361613346367945194887015707036728056908252726806360659886584787530018192204425206390283913694169437851296450450894274749752512345411252317493975493134478643705984075120843787164297924514049360970286210893955240760788633060836276205299134847060462205941265479623446136435165943728932651797078076112303187533966527506288533870360044560428891178365511739734715968579040489034978090421027496932069757978649805289560730933308134865186835996678086059499114320899624626886514756259248478770964626508043371735770313267681598320193942694066520152281814255482028052712192869566435484049224345639427051065873388775406043767335176933383858346754348878535855264239668775370111769882201374643086798025159045159834127539572068295623345384516672442040792509462729317573804375429061664229493371140839620382148396956326608684374151249701541434690229039086859644723293976183988256483776602929015859180801347266686090098967144218083966560092769983591572799109484254497128220498455081280554099885058970209301948835690551472443744797857678127326100037712164824657179038022893077971920318089592710290480468469156662066304810702049092283884248762130368188147351741721716726054869982845659898486305682912604463816472157588794451979791597028415897428715897584988774249363788584289392720464782084449668897356190776473050719306718828650828448982280168371063723626470019236523773682735672323075265530954708971952259302060004795884866377076328447590387917022407102398030990940419445078828539816311894883722836027296122979437362582667653345009080698786880061763451182165336786449432714109128140217428259141444913854236794578118015112040896881733036277304773268864519231995060449089999267936573455409613816622324653964210991865556664647706823135770115565042237811079931925721603436999427646811517248739874392967885414667088088048513538786192116221280113074235710053963942495971155708147816239824314450922304291756390351711818817758316219489300503901253928033005322971688277109526426768729159211135517139925416162005006664833949297526277581485356645298018742243718951425148940880663360185857396190398915772601619047593323242986649408150408219036103674680278572842258736049828369086871819082172588812301042236462344935868697842523402958145287154996481765029312837103455821384422785574429935028999227771444023181992016635504606327745154095382037413848567817906422376672256967462336118231378924886968466563011238796822120033379903441527297758160987669889541397651612403618741097696409652659451146883599629369017945475905251754036130341244238467744836201366370531571496646384343130653053281527802488579744463132727613245108249892951351833993015737850682565331172840340165606674796047594685558885054604560080961325531343051394163072898550219584223230530848098912890569599411490583844314271711060765322113569409380029322674965095143296399021605611964309308878910158434214319567602467976471978257985592220404601835817788979088344500271020548309661513303211066163132393712161952329464451194939280321945078301516808772435869206041945059613527572749683138895123267649888864566221663824032172629388074096957891383336115215053036873030688678397403857152144982717995340996972407427040097168830127058927335652579318964849838254059316003353170365820353622584769456183104892794632696661304131597551618363240051042986301189361806628149974326712506358813028645550039401052602029034558322498833311001989737158888522034166189819173123667498839868799048943225902308010694205781484432906171548776534199904979448156837276446720866462026249875071491833416848980809197740701863354007106399339076727602147247151767650152876606677307043496426714173598501654534085014591443341631719237950986980985444567667825136598103122614337805721045759441136436558761342749499083995109930416096408491713383580439933105990570753227624560322883128462947754052359686596132083353904666230514632067108552731253919418257271881393367979359054295750469788317126661344684607147618626840562330026737869211359716509085138896699637972251928754615318119190964043219363089530212350891248048929673614469129718655859948528101172124850309659483138577480209647407377423535305974422639846392825789072310519980626071195261711709900348519911177033425640690484799736726224041343380931295573578128377726392060152028773107674152998284028029558567617124882149449994635172446141233141095244420106206163494974007850132447462595196529472655089008453913589343047840470495749068054774101667162869307864755324307456613427065504555086289171536049712776619897552947156752128592742580074508689721633409115710415228670746249579426626716653418332493833498641188335124913232729602253421354863501744655749536487644077231746618994220442168562205730100507215664247465169971926353966726682498323808913318368927447173704630581783980618456690551435834558740477080040497881563951499548116473908635907389328618836469886215071164026558161256207518083176393236155563167048489412448422544979905784935001755361225603751390297985771810895560323372014611137011335367249818282386561964369482306776987402378093177277536578739936317638396705001640967891029848382581236013700355349083245478644911033206639471515166615975632347864347669597004005195118019890456527631370791931720020066367351379398888401460293412687579662341053071823955988869020084733087107231251158495661868873316740188179191752304287467379976163368204362439917896636628517359784856044501446839539666113590294969834188826752182631682980362736568585606175421134910791138198419440340662832002211559847360456410218324174248965273106821680438745676687141034822531065390101153660807051808654412958738219008733851830313292057915554150563397597204230078106894473939179205707154582448547755581955009919073922014007894711429004209649465603639277489276539334978563095794966351020380553185119191099051732399795609232577514248770026193585092104112376882284801796714069063225300209640578982324410012873515821389299195230237264804006717329206920273893360735223186764381307298195900099312468352153354656872423531975037056632570633239422161135028049732404292132297974760935239850645683291647749898482681877224388143450760034969221247065584397322949549101686990120450849617293510874241729727175844117993089966368633732570861588409058285753920536674031756702733827506884559899163113262770961588469679835300904390326527956866975970385887164420898536431970541865819678507582283751089546728845363778294754082714608674889810925431944736875623674311430551171288103289187165001169632407524220746981924129396918129980920615075678451866910061759465526685114294879535937571771318888745696410830476531929698736119434872458240521415065773044130875097437052079774739524674825109372586030500488283583794973115202471860632298969510489163315332672444612067133356123867307736509982709805032378444372690101583405228258475894540538466825465748973626056140766046766264359648984230223219144654528330678759387986289918334040189758688512688836132053441538613960028407541723068481573848892233723053883739711820408685479169825912301552875334622833953634822032958470825713931464138971024234675882703073138908100690021891242654027269348065784241827133219872435006300297598675482917175517884655928812406448351166995213581296361926997581442090936556390268544118815067201396277656412315345529267904080243154398276891595929887024481184852680411715855207859659731747781103309591308173789285506510322526880732251818446913347567868319613877564512001410425912370998387951232710760398937045856904049472047307280645578039022058628935853247043945180277079229991578513404970534644086565673239833405734417815322534847702792757633163184049285560591191760498061481237247633895874118571724265747088668079562640318786989115472471471249239738484217688537770358655799179254954959317713682719496626496225798739844392306502586545206170104961762756878823047669010398051879208074643379487736964806041523533524806049578801369596696730030311981561121518120651320157011799285594012115110853972605882384377782179967995645573217491220687522575694870699574469431255381779393262405037882155655478567759896422610798898617204470055032901894889284386546221144534015587247088765994620361707824813734144323129862281859875407864905877253337736864502648682868789239427052849419306803291593582564662968764021944400459611446259860011303264461373869203930094096900118638061975218913873386160023773876173850640595158925916052089271369458824171277337879562190306735113260860164107426146258314208515404250075054192860361503112911117329627545549377789796155024251696168329956292057995867084302803852579561459680367681346030976168948090549837582796118951074266379404824480561356762413705664010242332489061331117382951558353132092728015370684599049341219224489968567998106663510567926957074166698104181434720147116927835772332775829413442576732401884702246546776060913818065798361687852488584640006071263461203676395716775600917088576308358976010034293032614125476280455617985409984878519191052334018147564145313749893628265591194903021613028660108512109227209513769064369676086921171824354307892895327064734469668957633849001767271762972435746386777019192796768089708866423129282382212657274575679832897587036765821601933004625807188236360056805080252138526929742826131139700633429816070040698562051900677477031878143903875696696517536111741239505744089947309997654800808963821000845319545553416950338174739247811028300408721501016480638831800663395106270660256058062554615942749151919232552358974254019974752850078582204918470774556318441813184661779895587121385773629201898911671865873380094372096479937988995388040856015048509332878603640490803451535958191274078926768092191584210264807481794399441692207765798245887609566676156347559092345475993428415226951467429771456080991609869627504542066861748176014310951885384117038956857490391665763335972093510654037513081625645716824792324041323593221202949656400034713611016815618248373430504449246805169239507833421292380879716091671195278555222603587803316247196348662795617613323431186183000911036958432610190623035429937943890861992141917419638049743356640412171742114089012384971292917897780537727159889645642908071820099619032521717691958276528098705328557029346894136343437562265321473131434438587418867929682253364274619784520806070201529063299623588318882176955631847207019265988030730641015863051857144254537741937547527348286405757710683221872223755230296791125313720743951536401887056092509016859502022170761658573664560630428813021402986226908202465294638336852626675850159158241378531381473914626441479085295212433415906753778461132438190171870749573110945320087701195784268046610530109338764545046195250627368745072859362119689346103214832217786806217486147405156958857610344582264372330378602546469568162752208327942369481902318691330103588603524982026433242715815688247298129313050612910876272844149680236290902124952141569209664297407138466113318970361098488064646982616955476625252649998476900296517951028363841026411757586446099111053386100277591169992826657508270327321439894590454205231682726944432767819361813967421031302104436729621593404172160539740892501213734490242852944929077181065459824152172391240232920240431961311062729509234197188136813556537954400606563267180508384097102066774817961214859110902866486586479316606020789806883272406436174596414041493398858834485417122474274763672515676747490025991740210137745752703371977968989686618544756644924492854272975788969043907988263181368586002492825647709823579108010723143517091006173545401692662012817854567427030992618124486526741963060352671197107567520235523479498294488826864735223797758069925583200034681001514659704421322125153779687897798826065516699890397761795381421598023192982826339530898713326052290892458606066441006721763025425793294958580302718906320665994179531660214932341509632353139917273051647197074123789451056824521927322411926831449688957733957749861674196215034657764100410743164611156691417674118651055196753723856647255390060265125530480958783247738778803546800083271255540082131690372381157698953483399155504261196696121135466920087458385243090407488572672363393832462481466642059523899410581550886704950748113627071183462585765054753723791250179129350460142746596006196510126350108186617407902010467619286710291364900999566543564540257874371788029460184851936884131166969481849464553669476509817188797333657601160105803730944359467536424930860790657278588411731263360647145825481833972587033606203845128011258862860049424986286699418571917057638951411164407901923296136061472766471617170561743848126838776772282725794935705543453008909312319465849871262912616827157797383420124267887791769859888400783244678218107329138868992555562319533469542283477003065797332609587800646586537509444571876990907649273100518820819514158308200829571378673514939333814946342495670572616902158101483011604709468183792003816329403084810510769600626790454575307367832637898431510829999954871524251175884222750863326732455548387633039130737628359454342675731285301802746245359983175448720553311984234229378729777676833036164783320942421417829535316891056942048598774532177632659609377327479148586133765872153966187109971050068452846793470305380029078897039291618325933722568550883348393787008394555479468378976924212538454578494945214753976434168948061786644958033494215024787564870381754474920143500615220428748974863004064996235956456451104656094400873844354620817350299747391454436710940153732243536029566282330560901222111095195849084048148835522558201168412420812988602323015883573837526858207697690141705407548604947424476563809371194900207364405415287156027559528028265929002668542211202303724028859097923684772060055718126216043145682777898903942431070820432618260442931955118815184004442256228441648730471032925769204078605682572357325087556796059730457212184274205251826477693578620501332418838047777896606787695637375131081580095645742553027272157004245408291290286163073563812679099215595739648507950191757936292271004690030970661806502482590760017546237732398037434776919216538645524448827877995368075828607174192904291350993984052614337691697774414797727536838414359686023947260518374312985378412362879238921507466361533871466618653648663296375634606515075709993146967483040002458916992724491984287715637401866682740164362624840036014084748949424681054208514883882733209822863967902352270643654842262581659475515333028656832905987926620428094015302704187894500929070935210692884197684979919469626758938890579340384783017410136294793131189311107806255159158333489153231775635807657615244923778998171307271768912735809801259333597253239870485327138901868502453356761334709606719374829353551050616125560056073658000194207591307334956474878152481158915873896036087906048291888471667900591123621722684811303186408616262625164210891980545792800145887013877045156037650738912645457939852810728126399442397997814449378535434668368803910304346349499676409910028727129549279530671899190250436718860720185604653886272201564906263131022827769883943899531148633386813506901929305893173637771589656580185775294039227144127136561427741734243289193358516542307144717441463398799125913711898404669932013720563490531604518554637093440936301746995767083999532046413420439283582454374143292009950122327909959139355971928374002286325142100615621179305782129491622753059192914578829739246524988611336453658740593576097600299709244516359063801757454195814876897341782988235903138364064750125984729920997050608920284323988702074264003553915552834368526235495402602395460580380997743381868118738258332538616063541783385407848481224835865401801048112061458263653177056265562397980162956850123838268548256837736368632843872904776670468473291731253767020037788147220546851608509740452484697139881759487145066290668562619372879231835959267506874176992925739016624757599126045193284930903014056371236988719608807335779114534033781600482708819524661299341012721987013653406898043178646495233942711801931664789524263370963259413120469668176635227032884246398632002093575205645012541455033250704639076052254560570117548970875345672945652060606448597454237262851006767029014641259691341883045191294339983784861093851952990522894684966421280416411216837099662406276450170302797209584917815032415051992719346976116997442047282314241231315083115371239386225574050578273222305885479337497194355175265660784448898429352817956080214765610885810803119461583641466745185956998531278726515906680559880358981840615695170235624061505092672334418297117309675007271273253695756718196616734416419843157486671095232135197217228732508307654618327697147215082996871614959424423870357369779414662895562861421002612287479606653302368661732242722148721662971010861464284408368438497799275900491164530292596498331261599692559682779797409105548367704037572284868821210187845327607079284672933994522334305231512931822655066723818708687061015793895526786311028373998800496950713778106503990059666124417550422849143684007590640203464467173871997566227765547986976499054134583985113679745235428189768361967214845129341506827311276994415395819346847823671354283290465325152856300498779544273558170807732646750065420596842611903773543849998372240420268219638636782817434283410202870744167785783555814074445828844021970008420540437404728632764410203831808812921603885689909091653147112330392870827568671380906655215236699879581518627916570063212548320835034513380071002928375014593272388218371052509455902850582788983592608177531706652098622553904081374479160493144599600016260526673866745166128141963555385896551451820648255985985247157259493931413763853232336899062571084191189586190188634851425666556579993239565847736598920424252979568952302541433202942766703129702866562444215843511835206494450034335086517014603877731120580000463383270965625941222235670733612601027660660616722363889554826119146607076828103923492688086489290731984563123422815769734000511729286203756843916799126244517859730312774093396167573980399965336270400876878300118020543335600158686124371694275540645976480843136381322590144502299062374815529225702298918788464259456149384109547107344433947404171720434839320389177802102717141277687397138357256819564757728259292899384954569388093674676313233399517473186621095527272498425941647868241530569292261582648724768578397150577467142070768062247034518221944953836668946959785075433408157836894819404754719895508059618964736354624348263045967365266747404358890763518377017428277538312842627096664179637005098489032097286572678438183460772767413568294351154784284976013697432274332146921794093286933471851990447628586796463366062208440429685221400911332502075579907300450114673886538307767228038776988085073761605160771053148805712927235151906870396551690366216062821000422444288248473151694459753829335418338703560421774123198194525698407839659030680654679219267467780515666568016550105770155931495564380131792255377574321282888833799659533288570611390427835888432454584427353476976064556986893929078540927008406561413540614990173497721090880393324318046698108685514497442389774689558671895292556919595844418674544564245479333766753762747345166596519607340762725746516983600177058343603926787903156834343947074690684846617476003087045473418916349551850111435640877145488529974780453976499409206004267128994801736240517777416008109700604831575067563798597043011522508523719164382305829789296778203375034966131755734210199873103578562595948548289666355603991687633123802691471169593151344908997326613878651221606590172593819846177701047326394711092793786130306780953703471106847187007818602270959088572765848122072685734632360765426184543750115576531596911238608838966124191953999169292366142462249043143603843714443375889168251036872971266371864646139437637854580171635047819686979187566280955605093529753275118371305655298150883037932079429839993674486339490646978280149900167588742690544289318917850746920485512225334718274258670633739887890310482089781980132486585277909770444817387037219843585377371818093104274630436115097993057598861313852913336496444442931469959675344420857253906443877913084250318457454600659692097312615123842242285224384278602996602706623219403117605826374876957839314584341648258337425948249482863812096833840639310942225687863469702225631154534389781288958425984477549241369649603726404830500441660277619018757648676439453168634154505365894683624331568474779568159360501327865775693164068703980782771952128538889766593876742663526864581245769193566093440645807336910900917903233866013814228708185916368884180217713500953606866629541148848238016401973771413059764968418887462342894152397309478447021206579279827256094595951268226699053479880668076043551446113298892040363071661934973472327522000338839583895335710203173455862843659231727616455010818892983307444193235016079285761520901561373551351185768095635402898166838659400348014294325130573405303034360567925348436010202098043650877462146787673185437172954201686969142406246362526150330612491275870360570126766292892746074295800784184749054227650705073831515681321085785690686596944142956547959294109164340917627227164453706399944365099634042075324419374558595739637933114717706200728286777732053769495742409480485352746789388395746854096818018345795174518658232514542093277939046634075227991263674281915755064472625238999197142264326474264706647003642641977314617875996832943141170072172505481284413861499692005372151618978741648234783402724242425007335901321792133954904397428121985393841090916011317373180492448757724705857593640619968934188926751657219467750319459895309457104475380177124263530451908571827921299778982043912438440044732315923662298506964512963274134558014367459730665313149520246911964005340598163564878485224133174456425378341482616053647797138380011385330219529487570895872254383508884900019012305190065157975630046826043113966409695801290474715631982997897874762222659223176474419880738249610668117284914257655413385101326421021792823301469106156680817123699144336047507279988298629977086867706189457988886495833128407594417059559188125282587011394501601884877236135146959694856301578703192866154147669392734332110427172244794267284695196590456685853406635186038157040863559522845529276013137065586894273519348396147840743109805952981595626668433806718916872686573928807353726283255923485512584806739000455260531764020820428349337342612548185845539136767564640616728285090009286310563618502684888830540474835765284449530601616431412745153827268966366247855948873044641663340023230478563069358725960573252702699978285883978452328192364807546257806015213058005760515381170080497031649582927004395466857132644015531100261567834068821350990271316823002652868825078393611505898954999079258738485957592238472792979598604211436970270960541447956127689248656454931623923557388805679378625524894760396174742233226157236354385434511438292046354664543208558076614221768326804717072027996144887764567604647038697533690954301707478339591019886984607583028257201908234015473368175457090944141060958347129701977687457103218135695250594028791674796501850692431258092859235004235705959373205374468527804965361637122300652316953029338285546121381309181146750125968178961333605418787158934900846681236334216567317810060874858083487297531476183827508572300606465990224255888448952241745121864581107073499990459078097463290327539565633554252961924127756632489247756988595072549742205451815901480027290932023546624507957430148195345229686636772497674229719807185707045787456311541823471915632273909133871214570696847620417333780794263189323532065119635690575038548839951617814094090273569119197822600081916755882107935322312933485832256778805319757765395118497622351214187862858247157920772344711299892823799759567989326557957792583200983511010496008192021729145744665336356924166990939291363488977216047628371716559561184490568267692419602909562727760438283668698916692420713289909693211827274152828753260062652550485319872438834060033625041687972514770735560148644218430147257009389225862663215172909850372264318345344803930908348468198547122797234523864349598063386681521176534226803401937397950978502744390530726648322889155300279385061197184442935994912757632974647399550253662213086608313659488680484839785898696318935851792377787459892779592568222746265918289006323205001099387851706156886962332603718295113715340945417527570358890978963728698120111805556761012327700596526306188529984570899806471941775593507129248245151047744848660008036731668203066489822257529409663008242184685654061679360703293351284131411025388698169220406208232995839902910707524946726686781926462821977222502207957824972416345939258227240967274532163095805387283883384922693690279365507968419702307464530506835949545515801927834831692611317061329802430338856616925423419765529635946289964628450738538686631431904503363855765907558811761413572466801944401109933009163074226780466805771457717815714567367269033634785989867856548665089799625160901920744142208706177604205772804580753677956363640429751136724302930780464216146523748309668923936574642131487165421716428669276560199280820194640149839777605543062988964001211028972215654088403581088518185030288432191086970525584817766149788148727456712052225791086973403965734036399883705577687091989981554053883720234312078389672776171083748866057817750996967147018870332913863206431011400108644416265334007499957996251845704321243812124266540801430134541231210552053996028039870416370028403318951140564409842807712177225735309999272253039740365381822065616357898622566393261605433892513133154249841021905198140256384013361715983848093396676614402554438726221537812929429679687134590402559399209774405429924184756117953261354432349750036967617364649807971557653013217028125119357693803372771301546677811861642277093173653768240802049188689181235711229263712284601816146188050358889172484866785093981331265900107455116564897100669590932612010567979293378049349040124561790685914462901995488981484486698436379991155100481292102513155346275944790136078602133024247782825464424299705852516789259512124231870165428083621883446302581228179067471306423499311685951794633388973229619537234611806850271048474807207585780339488789244334933102661061682428215555936157722304662827021105497736181972289925167909427555217421973452857825190441037031512300295819043296990553133742564744939574058009052945156481484401392234893279869563822594861236742588518226285010996514925451497328999301755156011916016034611027388487919756954572489450586456247989853855410337001654615921140152161058577187186481337222908204286490020391316762294870415094217875773136461098723019578195605824104958999459355127215943581345051105868338571597095443418922108516120625111566049308427839136030181710964096181384493913393305564016601844946672955939385644691150939889194212574496719664486940206405687751376290741269716431364462543741815445287606255189647972143946371776572450114783339706390243079831432912703023614867371147634117888264373600186819066964881082517078740028157093783757838424507905786153462566621060433926095334048551423901719497436606081276290201429989652924601809108032183031553845445490007556183374202032685209926839104932145728619414292696234688455488240703987522275678205650140084253863174591627841965817824253154089073401593489843153094627344364893636389303246663784481910863023408640722153519019113391851052397964174691161073569887274779654962561431392178965410977043034497481131044587355667973763267813974391046270036592494801106534133721354170720912017668864965474395865459650495151853413843977584388986295517322993874127036767944806865634362878875306843353694041564113425220300920668943821059340766568673806068828982973072813133320202788477807793214594416002318708489633593813907131151388728219101349800713785054588653879623387544150176116679003275581465733741146238032907069747000164951303157535057654423225826216531146272687015620043625693181317408551308427733202716951028418415106554534714790761146639878605825106188945476193530162608759713017908829138058498041370765830966053715229951623892773286344459437100824698223132324890138029064445693480244006845955311592837748628431652893044830211139671999049230703398096622790877452914693106087500399787053557732187314686759630041751717522592776996264936776753166303123440871050893004542573983005263408467861259596964025287412352548746227552596677132189711468974240766733812363379382449233818626716488875074157722886197708339719746955788237384909323074331944422387164599134810296661950838979532923398120507941441945879953373778219631923246145925283879310429419892499565012470312687122338668241231330752802107260635188913544434937360449451039834995683772547125588218116557117893230499776593167303612971381466167007045122800644457652232465741636515686670313593218526597685770127712849263466792229488802561171520280235851445957435391814286849419351488256930137861579458311280167497224613184247595112514313946689119188020138881311452983247802111155330695567505466492870935926648941377370640178920269598194213388643829043414062381876368330439450347907754269376279498507770988500069387376480612190026730493140495125512508569319186764908123288579600641927776477145463974946393423632629985228523301456835608408867093361302286527432988594247091233760441896814541456874106219858646930689624797572392688963735155211992954929784804765570590850535212223504980872351020130560968663957940635271072062345299522514362494991997759941237211836811822112158282939200238565915556691711327068182485595575769041388602772783911102609865688017346577879939155961236931941940428155255913692515593523401272878047468918021252573772189837242901369603783630688492629203340099989857784383366209861802161035864225291480131849607706940754778063990470081823976956796081280475256321542044322541541112984868263084210585204356232059711508820384995483584517523847778615329032787354935752527503869294577306297114782751495734445585991235868542850779248319634607596032345347135418831489138881755276728203654230387016521849161788877890658045829514462851519381391972824335828909956159321796256092986269156278178617984129834301517066585768283208870734586020890570964846928599165435808714280172306687869955549444270524630132018622726353514659448379129566027096877024248054768235933511014444637392637155989340251137267141983719958076548641783194127482562104544626041309686520871521989536912520785411339553924839478616611543124773384201110086161771631984475324101283705038717808340682764963116706592916632219915736766973383292082658461043619900515513384216754076275249006976940028782857249995578712775979952077008129282621704775094527199217377109175677534959058974107131372136132851829603425789463761516153096644117005409847664553128791538120482073101429529074754761016870250116723294221237545462194615470257189544904412824116089910362495795758222067759838495855715840499548227583799781582255147843156025265057081185110604004162393982221280397788929029495345562369009133798263991158849238166970347750117590515089803298862601028284962470911425742066505976693427756281192862241670601346319866059520110253388443326843276994308462620584332636596473148953804919340927589232338935750528381222391480546923948161307120448812534745303468353356230490137425721712402010542020251690336465579886686154209730036130662675346997547225598710232907641915922471506579255308562800607441672469639701071318097749543009381200498792648274352376402818591783222057899681912764990100686706696275666955756785201204693463075860039480445335875157114998677349790661024281078425841089468677613417204780999466046318268675034626656740259055429349681496829777262576286692183178317615532547207817277424119690390415680994810968239309797152505047364149389536322197797939801812240068757428422322411453482712963423650101658890756452413014972987248875127984253461315083422513796474937184263278008467524567992286039532759286472168586189063440089068911304686779198963188210087464227675188498856764629584973217056336261061521381109817268269561710481933713427253962956690092052043407977039180708680404015491962861296873650856515005291428741424661791641975612141592536660942194468121776900349314128206470536537958562554805821528405816375399160734145945402972229618821818747551136515927821877535812273665038125709383067239694312125947331495746131595263239242280657463584419351941551374153809631374701673309484827172857110973515320183167080251166107282343979051947577250989820399474758315879015777886507473128205800687023188814005554928891502897743057404137981255695721760205796164450289158036046611709700927745307656466850208320364663593496536360368830326622834945612978141595256834034055174861350740328210326232086331576589868960695506977902965129298216053687200669408974545583769012722220434692295162849938434580563103175423818484165107702413442715977946987874807499193003734330618886521156249300811078982560751599425777975939850487713610467676121142908161095161215452045775429686640739735048568583029197902014553936868346005671648606319039368797911779100647556518733040351355936582581896808134213389358110480255058069990342105355450124321219315838737271732594644173499185666668818327286567018586105060932078433961422215017170338881998486533170039187693809022561432868172140633627593438155040557884968797086873669380854405696013529460084162625517764954360226530581623414524883114703210496360817292647221080617652830932688731751082789067496541983661400801552101423349099404489616791585097845478135289194220120095622350335604456899556716016505762217575352735848883100372464628044507884362711010299588653291563261751563885141947499077117062545611912712556539905243673821934003493353337410259657866195139375944472812050405099799604727889470834970330663283225643753220091974684864000669823126047449417655798091480332059231340422306306279032150273381321510603930774733243895405488390807332657411823119988449241263243605602117373537074642466473374192733139202101532642843853023474631217182906071014810899103893027218583899576003231321400714104359799711302184984135333483404962430782298788569161967112771686055081922034781371441952482665543313413499275061600151504480350948239940944979035179212051472725438168710797841220281898849554326615345607759874265598858928467789695744541423528649358976992264661137724541695467976011907675597698705722882146680865705974766002922929954397535406163524477601999495766266332142167881692805826753743598928324442082743492827170870638668676842577731249450271383406724701384113493081780235581698503046284198284098260901847188270330922504917439254897763601326494081450039173205928907393422547096625590897649977025519812816883628102640229265116277011660531480440830907228422858959715191857134665722572309543877407629279437588779290189659405007888433513694230004597131953796697455513110218177489896192960899009510390176838881376746672714528170339811418188728557290139032065046793789151456128894770137011719209147159050696312689922478298534116462035323089841041450144289183818886339753933934141652621153885871648848977178156408008538551103418325538292128678304461464979329421080315797360973595783211832992919823614122256234615061520373207156017316948318708223380694768144657791819077854322524422698084259184292620721477571671813180643824983408319831240661870025612951186571553125226443355028506997592561919144976204534788784637605527535224688111196124323219037345422789251023634777688292375706384621456803882723641223758911931191633598034316878498390657957219114332445473974864656958380914489874470186465854227850798595332214777164803973284648530585962557894765328778214740239402879072288123995689289079110895967165086249994103374196648991500866355190788261082621091189203216548957298130812270672975516030350446142376325283744378519353805129792953498066918519985330019522842154487613682002022297077710061715249621162111388434153134228140855804590164044035708748586282702364056754391370836493901634024907941544208212564239051765391358834271286708648642653720381087313931368600830256505551825809253429884405825924317805360234156195334969836815487704046884654331168445943344646679717871820797852998939018754175878322825050918524060732796547992358967772721781734317509167462848729261835326518775357648668934556029832342451226682561237876498031552286636099312931776440790894662230205795344054798565042467827049831972485209937196781960956691463299707532002454846467341608991502180047170678725151210841175709802196962631918860607487006443077177982496401294503604682004979959187665729511071547612544171178344376599548304691798669357134323975744466115661907028942906851279256747497598991861814167481248008889795354120558726473770991800236599417694924347889379350346644455350772124398626232273397721617503368200073410330038811361439481737215780098107687549972723984698542049187270124083353759273718850832660785268752653284962085759336088549546755810112674943324328850466154655715818745096900736233417543292047286089184354440023102941832415151001135717885941865358155191524054012220724000044508476664292017595847602178571016655159128933512889194992086107780848175625438121811184193072037140217887649940778380901029361762281069349393502729074487873488510037313245880638420547369963726266452195363216124734413920849637405555227004874914680546457729661678844222549513017245904096232265085005782694745479664742065065660052450703203354389234652584858840519401009332828996270462006646454611917054972983406389320391310214224970074317238376096620122914123042602537944570474324329671144599640984283625039380472587688602569122305185436013649577427497676114342692121907873792961792605105363469141748226135143587770724452543426978810407456933038371249140886836569596759154277759366149867300039439497244156302631733284095533761162124993640470121047980857510791955417419675028037532969658272193887583413943293819698754987857298755706789270942905128478238456099513006840530878979086438556847348203758064035347362971855793218167384128694315509135861852076269719727887439197148571306208890045168017106331748805195502256020679643956735712048549072704388226206312406808939642717605058779265319975011559190686468912528537616704483414237658658286071428010382087843581575836870243543798555514544578028286563937062571507729292213215428035578593994572535346969899042704368465614748564907737128443815976348799494967272029632013800194485131160464371802994961482187843118532029570724867473368150699673566908074766836871525981365831062273200069023143218061153184467819944989425302992095624662936896818418678545999846082230885712009081570858921244695206335910003853705091523202297792160980199628536423420051072424837157043856957597234773072673597208488531738293114244006268877119361688445809048815013254000514321426348985026589967826209726786525435685711505621069457044109413862586263650278489165160690586890875765984839511243125721262345413382685496432730776087756120346098306739002830608333183919955378105883368376930678649325583803414865589184071717888948869665692293719392468817541606994045937998619242894593818493490570983166547951830106585054574572994566174207026268125856851923762927926390477164031300835188404234514327434283817761022183184747138858480826272898775174124753486533666084238797416156772512112461521139009161583586138092668673264600872849943507230686953825873149403760326909028056639921232743312766017129498414255673248700363023548482025325057670669143383463574231133005899166175032911529472912936353397948557208811463468491462200454525363201814574832020982868162554165343488284527501124224000840920254287561237667529452320351585839999487119953662462476837097864163674847031144085627776659639338980378352756756090264229046342382355408709920296790031551021285881899016756411668592655245213100573901252096108716556031028313903813492721310896585020547663787047195164102848328365296737207168097881501574722076990190523128885905320558572448191568956899282324759128495876300596490014673726553885168025063015324106858721724226797582375296414660786987808209144799244148929473738052654706927090295431373192086937428625826278978663438391083408174574126637723062458090155260004054932872207111648090079016376929831756606990536640868617307652463849561340459749007232572214659842237646352405825092777439628752254425544820712347885817385285506763355028242723024597594212523807402628692514745390067858976770900908004860597961454740510392034616545553320912215887632547133003407598170077140235570960527963664593945464002866234098434420116221904627266088069966056480222740924740027493446215487311177155645955917970906150459681419662207051749178138266803081929987611669901345735688158142550018824802592533850104140428056132981417826479038162759457498743834211715049232336326994543970076417977986205569036086715572213791965292599159276765233962540632581530423632881075212461940945772458919570532452917869088367215982119318282994407706290253182452387365769057685364606534537683898168411849424959454927798335889015156699458599788023762967902785564130335322732749562476634900697523586953221439523274633734725824230173448209830593728893070648351242097865544891503003923869768906060553931792924885508300784253702944653215174709632983068103250599201771255735565964419710229380060515270063552536051055205099804667890413192956742957700877456898609587212502019563110643916605861141461620158030030055332633027426881621556978587456683352054634534872383495446769001097284710211057960464034420412559953511489111385199982209069600443365545395596803067662536102427353656550472844375972860579398125770123284858793248537212004498107569889879284972964116050534129803845434071931368879121950210577865626891626480249238753590010275618975220402452037653008388863109001914195970393014021805761478282071654504011295219061468136930800944696508518271155187298167457595365502754872221743525948042840465271822283964435500674379452519786341990386520400935329671385661612324375923156405709108708521134249905709470261959290092459973933846636914009182182028403350283617106299423980939390755426458917827975243783075116743504439843657614277099190505294201531998874975184279826024232427671776875909887736391183751456072879275149015514146821334607965115724449870471278293325880042248217869755938777924333410411368467786110744845435967673339686537911908616948783316568649802764726433717214050288329897246671741729725835717800413663042488430899763186511192353470363877513067295840857937702983346480654207804194529420419491892637443944513254492935056858559141357474263674128666657231955679344170758237022109316513120796069329306214761646811953674376678187390510420060393581111672449680308281451139509591008324854079364509797947041559580407176840846469768166184636751163021662548006601901090244097988300419958548233610465066314122231870610798535047293265095604186440923305532837272398668719621917302880422255912811638994549605832237547423955857689889823062865654865501564070735627470625198487205504192744057638313936930104585614057067964252545167373624127852472285809264570150856858332504795783987533408690216609682731728248460056448132296672085631840160786062077770837526135577926013359145860415649672106954142219569431071127238505442628698220238422421739827777517877542785026700419944955729340028172653782264004835205469047898382430090712566061307248912169880023924711838627283263667066062878426534798179175904761050851548662538699562998617368440344991200560910118728021132357529195235695827659332135425333194079778675519914644100192876819998905627720524128678167560387197504622397010841326928830744239102172217463587377826315388409579241291757057467503310722448537940958768692988888551168630483692174141084982557964554101505416696232287796318162298668857718443794800487148259751581647821647287171163230015300705182631887657415022164516250962753762919847731308670508808011687923297966733856060386087061626621904129038271277384520244366726953133923710499029433668239788483328126912237784182305814246896233015212230653041349323659314026455698314196771075369044852087958802630174426439343342200052608693704133544538380413858369957507937189494896306816756421022233689129796162520624873561706831858592569838885199161093150484420514214747327430956614628287493225026006923324868935254393423537263839895151367441345601391370461911335796482791933790860047088311181762224908188009840856958494272697389043041777196953231710487866577309546026829095268502744482916145136246070975463843635429248351376460485443356062491966455660050065345283056201277560184975312219189361370704483031139289703875701389247016606473374006374884671651930066625335332836240279312241808510111937374682625923228459970857538994873173826196398549863713568389679204470167349417499470768923992117357782563694402497484806113959693481096769366520320440994291293498126798952707895034380541214860491159959390539446462078048446654000777574063916926446737812542115293308956954051253423526999128303508316144570595383405025269216199353646235217183943682270195063562737411011497050630181724498418289186095834491974876463015123470390697749048210837138090639007779557250837306073438933095591202212406874089642058895149124498650205372933935245365460800160137956930751071264433768883947523502391945096299096240078501385163367072215796455007672865709048758390791670388161649250589615489447193900658173858557366042560680978335803828620399030665716066792554720417512376528726594322795308121572038239378155774904366298534497227382959721976639568940046788962170217840893938034300225042128397485639549129111978128471104166074451238078116440839193349369806937446526617547979920037264205007195264030575447140526939386721161553617414321963341768696470108861871539736198174046090258931608224629344611565164239685606317331236543124386124708580803299477107567624418321864693131321419241968131621995690194892222570108561563114398215120223838816727879811290154631364055082268493308194419164739356546213089218565641229289238153951618058257084635953984269324322934293911877975935833492213493604261725566645106101631160609904995567279718632967496919347616434015815961342827445719439381060363067241305662770173731198356351961322131433930428626555722379070159854388921750714543586905505770146934949445383250175608779038243325449449460694619047425611582456212236944187723536656634350366741303222385037432179841870722316828272647077790063552736678919322479790286351728443337283845489340513676909598819313678639934938176816454477603709364821178968221214065673323272746375129961417952481572588440877542064434587699758656533884434262408130881522352171994358335081267334522143836366671464773186070350422744183320027247652275619119969366418183524907569471415414236172997150635016033903813608582418596942585597016714215109201477098534157344106433842336529079954204783194267687688218971366557663922393568688265971491702514995369503694496821548545805371537454318913201115262042766036018755819079934874875508138899542469104184458653171966569346567769431104461282349539475246013323155202911428825081147078856707051654424248265856877670501989285765080709148969935403991554305483596441203694496731271607152486402035268238486270053965180618749809764597409980766828110874348373222444900951610050625888551651572484335495055156807800012901581200017561717323598350466111975793378487285000083225223374147354612502192956307838230957880994009170924728636969761585766671928444902265098881921394590717444250514158492890221548005970390091539605638432870769681925281884665087104065645429926766552517982080886576471162607839160362405776723124885259270331446576080829918648911042085380784291317759792913424045160837993759126553739890629495027301197879179615219499371205866110655753073369179888150901520888150535756606279327118376380033956348341946656467268388011569746567737812422118284346410621407359305774893090385808851159547751270855875630865669004996065066977705459772633059402333239053183949503732573435042872048540400260103376180440017330106547522790051573688340538596388360380816053027295966850134974933367360804193947866092526820273894292388759298002974088594919874769981672522197920543501496532283433880298901438339882651636414694802030637345224996022021363051341711507831542306706619579666048771690474750546268898335019976933507219828128559556304508295471159976188908808047876907504927034696554363538210075362766805251640775530257666710184829945583455169979832930450325632197091214296317562026133697894240497645465978767378632058504720022382808435232644688006088459239276214123238278556047939141559736541299893154454762931628441739292250000295915819288690638398099127416798460560036077985518778610736501848885184287967035505574485382705962172795937443406718767547643559861635478311308911989834019244614506958642030846490216164394949724092792006697073851491365211608859240765187792127639203264985443264518509380950912499135477133880958438025580634753935835473411994454523170198008502665652184486606112150152647856096204212736152863966393726221462379017839260511912400015406909538800449314505297379115926397965465970104665323899427526532242221513811078780525451164039206653198950296052847645531620132689137638906771571166321617583579639409822123622296989660619696314448619220999218340986216980728340832053802052154039810142356750894887280602863066002357564991933059816129516655410877709995939442011739923612604961290024204632071692175711076394450983403347669710555781298200021400434089152441255349100912571935152638164544407455354328459128258299815724280286407817138905192902191917531654385484754915669595754070070673154409884080587943534126689368567760329397553288561345366049297228988676683925025301375636707244761488727675086415839511693157606315748563632517707843439814396986275880929665951978706533452881155767941328237518359942403569858180251811452797806911310660025174937702324200108917498065556610546303170116898323489772101968531331694484907281101768680959884497744748325859761551363777504784721016041012019227783950210187738616538878613510818333400148103595453448799812834516620720835353152994367788063420566645435543963330406186158912495495398651845397858093013091163746165129959812495405188313409621866349090925548033754106766858798357569247316873247250845312554003550693686762390672099322847351776282603917820719330895458042768848374612254348520255149623905984082821487473862820309916926796169583568233600699127595135605061157995405295600091048511362566242053576635514990315166822007529133238614219812451258523598872660710068028725178343124143811965299227760627439503768250891988042451926765575924201013955741419482612815055283042714025758685982600879087829987125745367592628160024840607180928135328656082740785064680194531038513291265974346790653034366140405399832500917902012781599935172149305981559845655530350671468473673587452245921724945033559748502712853632551850222635226101420321062978270499049471630790416454670498001493680917815763869102479175381690176341551601880778059064197628530820361658788319811627805302749381706441463172210943497440639331658344684677123498185811475261092736908572816246092176120561545875505198145689029200224937818823820659742303638001840906808355629699733197539507650464293867202034088883361174451353216573891355184098946633371427912601799504720700610814625447085165869053137809386003299946014186684929186035745035944062655267900520244607741062962606429026504546839500719183352663190184262307420903934344332920938174766984678800658733179804759535901466732298034299961270701774564109467630029015878064208713256986453853262358037982027653018825686283396188238108377075918236657350017436238441790959205154627968092644496732554342902758747109649729710815863877691854771446898375041094799993985293079331755458677066818317664395849773843330754252210950691910240051700297945445841906027999302756736903900781876849003041752338362225810871691693602354288365227081782269748467202337932385883934305293413585365550770219389248966310301516349962481492419855694162570434778084534975562372822666919419700479405028472206157362619126083728082754997860562151246761530259742437012005849884395761292054402028797083094093952943679905048154802061062998071265915691036735458031213698044181957011321856555277512020751851858809018652563675027705979777926964332213010751601528538724406776806332743004489660374275450731570530276702619852814162742377984687245496202731599712911621417231677386168897638575586881955892486643429502171232581584165782692364380024573482964089392046994587338555561528062535255700274191049532113133230389072531380489494848650118887287591396214980473847808706822765258987943971696053512215646531243494238593317541851232304031237790716356196898813386872241258866383307290119537930222970389587390647394314412488108243766545511798344454717745821232166743912953806311259763551774924237551685001555242908006701462497919746889097570234217035380997031874564121081418097014784922339118234738062523112064608211065054969618635686247382875630236809595705860578160166689062100327605213032513707890607569766492467087128656239409530882039454848481543127755519891082180125587237483244029884717506779862054300424240580245550229509089549706611613745543926160380946953197798710002604448200947711451719386223638296356898753326098165661255363820973275894712712823904930900105003006744991899247738798833971387846932523027395059973481981478005244200045410114840267957081896283336496377744819856113484367662348456482762595366828367783314765603042702964172000049535222213182270900637981577432689297617423051979940382981913456521746060230754207256483346148349983268012840669368227947203827056156843598101302778339284687081463745170822643820418302358417324275546032978646323045798224251957669758180390099261000869495648002639369703936353793055218389150186423597948946631540607571282891184659442800093223355321555266602294271941800411685018669481494046926243900778936082509168518658732699746280962134751225340184180653654446649430199063596621331487042797781524525056741538448178632040220382993762002144342541978906180026994806241692418740721498062151399214246844419354944270817591113667469214924134404422842166684581079778230687695589380750597899375375352611586925589513805573488163119481343662542336298375416823144666558971189737856984426358847886190205695232972072352586283961979264107005004137593997474231257312505233593074738834125420972064179332076608731415404748360201073802306122118423006664272570848727940510695375619431344405758033421470205732911773610700304068804042183144422077212262600106093999543559251162159136307526911412525071715535720907739066729546863210699194366861323651769954169341446627230869615711272908699659314832640651884658578531401143481734313110848019705403691407338313454611830716226767820223405785538476098054223995327638901305722843375774468598948414313926125409641621025527691310422375352290386934504654540255933485653746177238852609969562157613767330056365225754983308942191837088033457710897738569410787229566910558199173789759088997532149704174787706057200619057120181233857217870628367764282213918563650871992053161769175342061260860875758618208827836840119234947861525486500983985780023027353308693496109353821450227423827987491520244330092635220600821554290847197081153834112568663425030103287554396067695445064992406797247287651741687370711177150335765946049689418886804978295144386452522973914578588840069036081103117041661599612816723875297262510080364888691029555368430778674573196712361018261649007249491162786097508157996618449299081995999314204524451979898009490268087384735893939972399728098306058783247540630515388476747056712781445282755882019802355327169206503507330984842699141561170352134936587134771242679852337999915736588162334346126032453533340343847672855703665953625830921161275142981672455120379193955135808021586132102157841533195191119572619351733770980842688802553574106017480907867668775294796263337152886009602579979454401791905522781476068454893144093677543574252316517994767092030035335279238810840746757948181611143629400450121092093351606401697114430578945299853131384039702368570386154282144175672365655790477414312202904636897281781603721759337143266099449781893389385479947404970204351783577887357117266649114552564391197916373812052784539128783815461510704946248795685888229188299596329748597377468402942418018951078416620267077687960772121351290749286999884826395213726620461238070529962960770443485282490835298876718981938173822294916660747918715549355708838197194493942583760155513808565649823784006405817467359145017353219948391080297608533369674970506970444918047212576508571095154606339354853093924501577303585507608330995118879799852614032416731012712260996479916021792009411393515975552790006403649663257535954667033065538980948112979481615503944988000393561652338766125746389122196081194861969829221689189700287976175613735120026323502402655089792014041665555863944325905775963678706185196586494977657995008861667914236362134260115353579923490569131464277795912565801681592478656067981205970590362346705794231650756712276920736833871721581747012095698111801329494645663960240047592847941992860998797531946178847420270255008408698484086822566748486592049127068805425163316269885534655117690483343743383425516192031101718996795329014875655355836875665263727905736457438467617916522659523802383810003087743331162558327785752298322170478327775990115047542667994857518474158078031707604392478007913640603953977066454187835470657086869363928079442795307518180224127087956060819529122644432631458027581944029779766714787178249328214136660854281864655112081446858499467723727507113421138407246610166094556731217094706662334609921678777261737145119832030430056523880064535326693768896791279417417371441535652249064669487713294785345812583218486191208747394486912659872982590186925669904118144175657111829848600492682621875785142752892435055399042696627866941707695262330925064782779757260986119128869112152181031978595845610565691425800714850460421537629192332632357643405513727368180072666926128865850451419859789965310622148601296472126540961285078433121553862427154653976210571860540727163373904516954335272487493678191230686132417134287746076626849607318050750664770791416764155754630883527438622732469792573272729506217307894391116771880486923870531850750917084156584757615888892989071092146738387916424922780923171881344953451180556239594686129249088382016330352487745944402890940804161974981188885381777567323293763681092306141160366555920453089193704496302164097360205603031482622586559743045261393077103262200704423239443845851507187494519548347324938525402589225268886770929500704159151522078834089401351141933400592131877203976702186724086613961514968811432634114353098242890598591681492495573251748264117856427572971253494966818558859007844667162009499606004561445041927546674794058492516496908680798031621868880569735977493191143677353624152198706481888115697347078066906932559181252563860642859835311566645339425910499191755949872806831198839706390235203476289544652220184657888723548927618270810766488740195016307076623477730324727699438475290106304297105902990473755246336991582922509951112164799040672446826553439416462318034953600408405890985121999651294316738607453681154906584726707941985720222881598624628386840056464823163611311348452423007531990405021599901636734650491235587475979372876224533124082364785317722864131000033841043481071972445287722611091688743397120532616343130459751191878757998910733606006874638920333120472612778148743123954710121890006361220814092000967324379994531891723525412991019349736375703245814174949492817953533416473788818065322969267250424694418660096480937790644411388193597499828454464767252461314526593482907517621276012793033553098694712052398219017587370181529104077485694103379738925379057837525300472346960503400088546940733644800116153923795865357921807143577822080484678242626056645086219289534467359433314680934599222881923730553800800834327185593271507335105939298057799131707657294791002469019867210014283656776712833216421136978851074450693812775770931605471808829367204994289286179413226543734719517051352321062494444018315478075698718965802128369805373526877509793717533055267362043859267441964877735850571988943082948031363042303393293296457200073327076453102640760226226621452141571988173226935123847666463918361706551900917415602402034728593992801130105178367668666348184659058532009800795143012346522081578723097521232397238771111485296435663669978362888428817870026505252241344979280174237165802242314236117179397178637127137093734272229480901584035168556770346620900657663584543403381314426706735866115757190871482745509755049416040862331521783390969072196029675571120975620251624089309045468176573411408851090573513801694160236217838370479079049360265130376748748366550025030522551309107823180948705171210856103418783014870604368256484650666885410377565124313449075093724683665597077152425911038224375288332642524693404932252490264479884686957045916472458746052831513904203213157399210276659726569462063700884397161733425502337299204528791812161270485635101154429001581026274794448215117281777628686503109348458847749292768514990344556003350545692326447790516031073299620953452221199256574251564227344593931089058268375319973850532574381961022158226968649479421157145327952533658633534881147308599887966358179475517106346104499759317747332956190950265148269493295010525536426607429607389231382109401189935311098055911306779320774359149434320126655670918855412088089336132715356535920662465426030013076022703484388134500440144168169994306900927205718985621365268849837579259730388947785198760526111253961182004296773240879761719556638755375952446850622589835108699084744823701109509351337744964893297170254985977358775757874041963963390530217709078749837800597291596543163555141471654041399394764380938233830704297569735023214483599136587300080956102482434711942895755213612668936339175972309814973285442142469134239782675460083627028437029047986516897078288103174920978048985985432594303679899612312803995211477570027395222826881678507812290325255935788213162062682761012798975532270560637797933487173258218763172982020544630969791883773679842143501137125223783843411832762496996769336896703992137560213245246940851717420277349559806222595833670581019041076807324076306752961746288598580224807006397061618853954792938172420822215974005479689928294708415063767486551914976007178511379643694289965632713137266625952142451919415048519702134859861838161889395744462590816474971478728202400500681882669496766587046821607736569111830489917129435919152228806387064484938549837280954501196930473089337454388636662481721116857034411909699325975452577199473029308338134288933224883630620336987288730778037607825086217719461420313932344593156302104664732919746808236386501050540793331156521009098869345479316389282057426214597536190227225054194533309013080073426716580436299658637578596143719772625968552399108493493372322084440652929359197951705915011771487401460104684957323937975290110968486533201394499942703050534370353144499423680426407127539833865624441312326907990425384440870710349553796568870835776245838453120814133239659252456580427876199186366180551023902853879511790876104616805266020943865163207591801742573883042607710096445238720253896053244627744732805644274219508804744114615244323122594214640785593622448507489641551119248273075026842704288810203823234217201820190098539467406654682161656860932618439719187920624775665813061065087169854960439556185054283909107224264518369656922029542019728124275059029047977739780725572201222937372593601291447320200297625638747051547383615468401075695436129452872557763906345035071977862068516804688689762297018188218423148552695479826123690022884102749204545123691966320345375085144920893446743400595651184652553172908388184433869005201929065183549211223111317500753979978507286230101269517522567532112584309766044646489901836720154079174604503146540968583300738220306874392770901090612367323598671680765130505828627056713106511645252581266623810589938032311673526186233404981312281187721244602986516370961351760799831228230593060672194005684382817167684573271490748725955600819911706277620826934995140135382321920078512513674449592407977639356900517265583207804974459534847114659391257155044817220726039920871285412093122615766649117382254962992682123968885289943520088274388706724450837478066869056473956259528591496492106979243706441080506663800500251043056879881412227013556817084280319586248145658999985413778215998055920849395415521489693412059137001902050504195511391236625861633861523451872306351152425585505119569284913063880682324561199161182165344364131789950565533821191068200114647742486097996190411418077714991990617733670937402774786989787863213899149192584271520371266654938631909827145463220656316678591086823528443461303164235157611932501421260387655483972284968275129564337212444981296174574087093609044543417896457923067640654653479866510011003002050549443638110007933592170532652887615495176022226135944889679008961669547935434973009836617212819218585446565729810483392433026844461823151484473353628107250844945695173461043235896989002169732507539373999638426950683719547199572477712733338470360629706897115642702449842121610286215375900202715034906978207392647003902597684033087653973070578241253842499225411040600215353515182305912929470386495418742100736053689063117550574156399514257799456899445961649156800794914324661613312301861649232341494293596580973681636301026479204054519862574605216537607172923172984450759478657499166442518739247722253662008272248853261130513079103071487215764410425442031093477347385261288784893855047122935791683272424004570331563994834098136551085244190260063868084922393088358570161243275441092138485938422020184661140517275772446519133083219494457040867477990785675843602077104159748601354018366741424030076707483995036355668442127727045467103014623539218990690481688403214442493430779451349509753143052629361358291458604410706955612641757158300072025733374497277123973395106445830028794139520064021517707596106243671454460079050699666513097743223305604332121554610022354228048738896006099970720110731395621456954632685457939047079982058734087043573927530055124037913461260933008301358935895595519376383434094960804813551034166324471338775908578439912794807934151464128000217325508011637876354571276016885259882414759164376203411017664377845036669925933244867046770136979786684094085832981521565033738585779754652379074346370322392304222257253820568181596508838034210547586703878181360583593194313498308580820151129600667926997543517240399028362609067296335032341070301598125391144735292265064894017195261218981288590112570048970048584615516360581858111639965354162751212608694882668837120392746866461051285977612016630936647588456773663361129409638062145300831497762087232682674406175913107688224358337297638405540169991353061742482729390517692893952939984618321918714622267581625879271899093654584505123625981726596522658766192250651493629630600173456628009094165638809518623197353795863975854091096689081441410964137323265271489384640335397189295663097204514798747362219140235999125923137875099925464822574187136001066755571921736082595569808554192727108419546271639423364516897130829893078181381585166428045366554505211680870731189616925178656500907663442656349319700212754980350350437027478603950671817082060893616733048883481542583114935996059896761925647937886940139501534788750908073755336241282701134161193630298810805898426272814521175504818462813465153223542098713901865745991633811609326746574337750049676180437200095944727781356167057745603921892474355203063621225592105688515409457030372607286800463735830432529677894169301526563051393565014682328807978463097343672321042223031577316206077094607106246063784357515884677292386014535495799555847708637004733596014662022985064414928471446112537999343715921963809633172683153983008120943280119309437960046234316253075144228343073641772601553583008214537048295470063704071809885640899814158803398507049451374060155410856459790428168826146210636388001255194161785272751308114689487082226908178287792882268094189022588852522499598028705642460063157016129037747351294621601025307203143528584919099672987014787990304211224972806110453718740484292227341008774626308543648722280814343102928629620475277170280914679473966428340016240875546307919649519595626821915815342683794500029756464753186050738778963427673736448970998242447693421231391989837421453442606252238399301955324647214122800931531770453980887438585029083065690624025756880904518242890931590325798854006854577384483000093856859612049355955413095322570411226957557129688222538498528060515352808754705621914506519909510405287584591230762890049583643851480684778177923566458923506559793345547660512312862339572412583649764818746098692502178577638149650162162459097847380896522147866315542759705678563822107084979394283374588731273182308068237968301560110205817299597461147088010093796755015649069767777266039559311963736043523149310572784372076360653438273915571800960650114082718445912125851277329162203000537078612525741967134764042749175025731366916894329291655852961104781464800036287826661836501898031298455055320530295653826386777186242078268133663953176181752754797081234325245673232727366943140323088404839070712663245821297448254533610070019301185365401789809491412590628052732134246868423912111732181024139209469641153295522181898618275602054794252544730022523201607079353718986748683139755771998505389616929207957644325914628506780575474260127021132385363427897271740122138130927209628135006345512988718550180595278953726260546419965707379924116399091107251505867047880205236729151216192636472954821946821822941196701880800231969969308315579384688024716212531669512337333411202356534473351045788974774303847371540763182536812572677943990032610680306824387270275799833946547501506064960471270181798530906693385842563598512923105081092415879911018802109903125556188074927268090770412749059303359611794025418120497603156743932647932303670310631939543354025500221207278588425541263113151177301458990851409545393022084309509682382608342494974542248721450044511637487298824855960691759247729948398935579861061434503597864413488282801523888220428671177520134782996897707499428648731456531260519408674693798096060416835104209744846515573208683743592001218307840325117450365424325665606466407806744442953031201277540816006764725151882222358366795665467048840372283301663982004834361377254543573509731043321201147732885592252143772782940913548235852333304822589537461271520520633892700287867387471053831627558042913824848849701405131728704447891655059264699695333573119270046646288667066268429127072131062971672896047461963600148928585806406001882090274233890276748861821201845198892305001452729244229016576748736506334184746417010991776056731869417904559270271890115151612291067745242563443610058743477909152798679198396896591578014922560084414522590269812844396860701846905732867683625628392724630621622015498733354969121163782822869094186514037596105885988887527511086181270786945895046131579409141102709650008136933586758717593345635791852130572168766321949078287416303566702010573961834506178635694053818820243600544616144053234499008297984944753951122953828131749682228134625792466366934413841949879531802114493623719284042635229677945757938731196143671799881617513319656710539779119448975134547135353674481433597610683716121760151683108459316980192241533927189669380508943226716233490846351908125091685179666679532946637627648261642091964955271636326431054657982367237944290619708434066519008857351502413487725794974443872806996620881563398406238375491595811131137046974419936664865860921150792850055412322135425709947321794153313943421657779772121094094209875652981258067209073675967084518977386798557079766347760566158704293804967964356817031534128671292731924288383633808021275109201991007703255980779868466345987085266906591810745724678174478473044470172118775528950846818510613123643171669709808623379249193941555037782792446735643218086076981623076007320073425859276424693177251854211736577045598858800053040047016110224399656233479395925528140513412712710023777373332439996608260561434903268410779491516828170214414587701252471586835089122698550866559252159521647159863780593589511340807715628381834497667763548809960104826974349948277994143086756154267278289778820930360977117382508606414409387015434940112334975629073405749441063053694689819049635099530503355475601657740534375041355392014552858308265614606697387257369447792729997394934437343811758557941907682561282983303240930101319217178592917834342491263862547190152102878510578394094189997448091382233913056077800657809535114436900705223721844355494065217086654582707443311029774580173563807659753922939810453360789999323653927082716495872967943585597121969502156360405297451225524996917299051888131099955577321153634112793836394509884104868637674498515460279370864920598675998068850720628833154205365497429582245622002106142827269275284692458363171770529151775277912738911033916089356810639550197342867082415665716481448690861870267506147226843861465916495119529625765361102365690574251016931228711427546933417072553092230529875904257439958262862117703569942991285224938549872143931968517041475486086093886860938360263905108227846401381922144288365986801951463061476684585530827275337487093982817142664894500881513208524421804718643273263977286935283116809330129322999418525429204599344596514061657082504548150070711536484539832970497047885041847694463788018903143736552696110649647765905000580284188971697904269562661177331213194080579951408214643487286524736438448550713977281585805461754762333594585436468193088655409356106055035417650228214962706767845217302833281657845226465247097526971939167105482852595172539808657840448636728404201946370314580227046997373260694310931376157731133268610139029971127612206293393448521037666052234454768066809033982073302767026498562851221430770945453376029602696068680556134851394236147878676310833756499018575769885083869585462696630198797387460918528053869888458344793196280374890442391462390212472160451251334417968293979747721901974401495907682265806052089213653693689022010226917392763495740159787599785426721972953727491808042818066445069077483485988515089998659634361588683582949546614036668669075748132285125886690232419139160015932005664252351071048729710780644691818169102045970341536644907224579029457492906813107556728162890268240467964995114075836923696264516015398250944099004536833532155219651054014925005647311117091455763996303325268589761036692119478392723236110298953463852288459030485939893212344757321326575080850695923557518680422187692650386930293403201376291477341941708527765216157948503781588179587035744933064100258326094904769245433096116231546908311039084778777805064795569485323083089065388207048045554347628994074159923771768911091780344625335141880774099071914586402629067973034079425327489729147955757085085193208822567905027903110139619437726729594411300379770039157504168677430825493755278537569776693707582494889727030551825432800527624475661336108380981830211381546292095413110456039513071239628690416208403574121403856289349072000335367370713363415608928806176695573401159994383304684796244191202452099672696071763834678308922587592244652769959768270884040308519151214523977616437951624532061533257850181773884929163869780567462095589033720982054265697502372477780604535711621965094718947669722381504048486820126918635311757143243246265339347855348336731003465267492286925316263538175396100867754251593160262688784155194215858161132776333657348844907687847429190481190062330591107816250334579189687501375837793091386237500823977995419470826204102695307620892473728514857514428223537166230003850449213771469820878829891169697426773420988693913275727979835772045448176372069963015389751223854401931674350388251509823801589013426281516746056880046474159443035787198798311432437360140455342790667693579589158934657451153821037841344465035610626475156434205121502742072878854268461089830558039844111047981126147863336151563382321373500797207231548990335655176186556558447982369969747774422799080436585705724407988474360492585279060364950183351903903189471734796436695042095989464803115918947577874598215761515547246723704261039268070353598652215007022423408579972233527434036354978678153357773326006678883745866859988256270352992781643053561139437509260477751723155159653245219035454050584761655448322939293487755044454445247006363169159706392246466991477152690618790563797149441239616638488732016643081738588182717691645335684811270362403089420360559511208998099385888682708617917400390451340482048114015514222312064888058551260812422999129161064084732484111270205220153512546093540180567587570454645638434641823709147570766418195794190681726124863562774522644372459579381672458702694334470709670890593852156608817575737957488151564172808520712671942100268225587891347119719363182126657160964225608378766757508512601872524117101732863998270785222272202043292772436363296916938776746878577953223765410453628585583255910629885391746524809580562694263952644109797473009981096969609752572855410519785679659153919388744741820494719839945431257065327905233889557107547306184907802484463127847259102698188433311416285565361946885780463411311403834699984343447764854707228547931355934598251732229964656538923485324466557152414749666769032730468202936367625339432019698112634088303790884977106134381538488756340743162658789823097991521063926824995092050069505755531623408501921976088371135975361504168306152274766944106092025669895592943874895393007480193826139063952237150232958606035694547264747958212375199537183824891400989969300387699284984414951771363529046898516753363240803928650467211535631338394955944426750090539561222680175354192453040397573169832632701637395729806547989400511188055636618101362825825585309404605430009327620529595351329700673791859443817557729998946402607288901043091656065956293507144676601991094160896105576395843046579894042521088882056595805279594741851987934018728058989767018573065124979094253585954886499537912317909721765838794091094956340527995410946464075444715314977694571835171617252600989553996805697926062078528012803609282834592589315449848748825303713858416536504225469014698034263470165358753074441714652271829714096604167511095134473356671435447009228980779410457005563720990187202976390517075481828527113005165294257760722986924634937989559151664262210351182850701884008707127472446311322983035421112759570760611972257499704826983250434900874555433465789012082871012761755518650712898981598915815902151341224042274267058207764160789564529323002241597450445874871440411010086492527843262810693943436368059407507774326945360132918139008101226606505865725849613454011719180746971884158755248588696618737042616200826229869882177289082777783242597763420817277900034642163181961955688431973774053548812421347252927306879732587004136453802576966858930806667745795109106434233367614667260357083034789205278555042735786964187848222697064986848637949932621461403622959324088654700618018792841495963903607040289186391783116182609118814591141088720357191264423396604791599124792039860923615190969213892678321577726083722947282934452684032483685875921967906999696402148096961664551793947326969601373123708167971490686415465555969481082535120316231622005491755981835267574771525548397291794283427117660470920923104633590102557353644313592742261419873635156508612753653281190307040800102198473247245680712174310163314686571285623522950102631462665971802837315799475615591594058944053274241240051208118020184155837589844131947829462800127175174237007491649618375440606067492761722030468301180677465528614182431451450578958744750385677449491575522064936596915492874618767322401647209898072766355348567217563087309003932685254642724141051082388994147624887151976719212691446555979174607965185141295694180847617203683284067357199403377555298992685588470341732244576576819434646896218953074674042409049384782127643849368085678843471349478643652596338160292441931810533451260032054289804851572703142023453238141628119665960312806346244356264154609469188941561102608201708647990128246562691805318964783755870651812520221772728426834095521617079138553360483338511186850753210482495220390279128190605868709988734595845351137092207245096295318698896361857150980899566290004183297082662000199626506195524304755223619651082164401303124555527270958423751194011890213587653640099035380649043200509332639101513803554277368762464938566532634356753087841461898853371568820156093666894542847810559648290093402722998167227123666663264259288686854943865013641700507243856592879781098874219705960450963063465648909842663696770910847157119886780225146699201736868973619093803455110319538993658724061559988406028769014685285941815542231266713537790564704725614412443667568911753179017391355941047077454205280266017283260976518126707572840927520097102771269790037434611781973878325918574685122626240116568903615208045197003003444041369658135775164951268024899394268702571336095619204046125107975239453265824533128442531996934524134275453400132284165175084278475878596411055874427836839921110436547042791241999402778575459873337862416026627838239600434724372903047855329510989872031925600259322086443447847790707322653680883582955588360731245675954370775397834795601696240933242999308160613278482667734068298418613142796758118649801949142349469474866975889289923851978078780648833316388412460867189228947438257224173139349913335016118899652593193008553636712627648289349648835156667503035865295316209770629289350411267952964256065106257481067752278709981635045831339254143193683174634004911989431981023169539374855960350744709642084883981351456764211351391488798143960809790619714000186349046085785639843327064578469061638286280926385767294071253711560003777124817436656375152368033680874417908747980171228742539931990528138261727797001865873481162281884187344052392043950092153385307286912996877069842682177319186878403158909185305411007421332062975481361318984947259126927540496132942565129568003349325038466197620780722646585370476356110802904818583571025392103858457594814887872886651360555123950455410772098616262661870350018569319300204522401409315205687440529452969095806494307619420391757370181131795199944731957918239094657548966404026874720024092520378362553025477316478880375678406977299919749119165165485286789952794132667084105354682836469833033395176004694449317944408587124290041135323248611730293832450300807064983526946854768467478519061284294352269262686325445822675862163007131042260180829678726768541534215606172992814220519226544488329334852869866218351646588162849710291285583906655063702914428908135598216373915253045373959453131975229531943318740789625398930908022808210903602787740104366290444779992179189538629425105365684892510842263499597432494785810257392358355482765908674043196207211009819956298905108161007038199422864471131348760327286089502812310024852508848586741409647551642549519749645582909857820024936503040575256771265596851014060509272700111697271441879496684820511697427121777989821961049133747547055697018487694116857644117042664089380373338872513559838636024863696549391384267549812866300529541328086582211799623306399986502069860670911877679949739527358593847599398489455809055446227008410902346938195988980333432755148543572487997360102202319014012389844550786915504622392651564764578598803309843006433918423575210057223709412680768223091359435887541998016218143906191617286091652636465330316216494067768327005312964878785845108287242895064218446552659798099081180299491659593550592306006788900613354032940842998049523422784126419891442350915538051639837524955657144907924410469482674472026751692910744347236194222249934499669821882850356563069270315800986521745370253645785357982905446744246340569512343864291065933896382846178890468610922543312678322051944067144844130609546293507697280530756402472135512163149589956244393196275463552832203153983414395333974968999429567632097900578945756923387213163814623266419816844294015116381102214804939343765530088448410805227609456707811848523476014808929403259825656534767398462772575693550336142217971776190130616726042534653375482542234215791114820702794212747835184371681630554171057282324747388248803273031879722741085967389742173427682861772444246751367171792434077349622622048574662282785948343685423768912039959632163794415103412607112741298263894919573686988803143988658447341014643389236604531777176826098765691285032595508773655977531276239043417004795062791216553595190586639966331715668461788445428981175098714040917086553128251525577075662239473081886488159913196218768712542445224199462917193675591243112839110543637198286764424511128912366474201040934113118467815501985002486580848707588341103791064085387735343473693535059080640421009986947296684623840603606709616474965218962554808831649999862653227057720094194727033537543504810966522576370137499899622974722536298100730064080263258519055934688711416588352467706693133857160890847607221632281570694107992759216671394162019410110523271907324781095469189761075202753237776151421133196443366923050801977564644113872415933500674174003435258397230749184121306971443953761928058950159712146745301256918881586263815599258341328504775779391036877352889559424291398210667457050632198205120539376140558162166800045260329144923076580913607553720539218303699342928748573041460667333453617745313220984197651723100869696482375850697329103285361583268245097401757603805678686710105757568390693053768655914245763554018236716535670111606083155791900207676269800380958210811179161902175475573396999536327462495251271731886552951266235437629775101003473832992785230160016385997450171939404019140292029539062027873352861536952887766157800556045133329570957623713938845552073786043905204147314549819906554125897860185702788791903750940926063101820852663468698821265194311121598724738640890530688556294533583809844782319308987975681558292961016226619939365064509562229372198665540767614022954687620656342897660308246480809499005726411959990553796327594992042353084883605055857384799742145596112639476312960088036294587599539145864127718016567978755872714135584479386211538358520648181439271291535904185750807420118384379360734770011945028027715161056579415701301682854525599310487531086837264229527309584686508526273700993225067069308961714549086323202848338381910323515740194190186396218070432031227729723726461389547024218006992890313061535327166503903657251837516511806428552698813252206680268989168075400079452643613951060387329772365695273226641797414905994103483851851111207750593329451863180388332618583448801446044411541951453895495755736445210516454335072504252266575111711263878340618013366773397551605472331088378688194184329046268663001449374280809627046571300749802842256981314296729816680859376654382020422700547941864615766267858142963133496219179933805151003047365611105123230571385467773602842549109131087725509104340308414799053967828451457315413590093441939439099495126124538765838332448859875301738432262768882396660689243491865155296863180457162207218197990876917853397747770027757919013078968964102365994458684458750928030674191026770279424330933826137257898882212520407429359293773081182227001048678208584670460332117824827741775657121188055987205055743458642150846139950590860402627212408213390430822317544271987109209191208687126159637999282485458733895798326198541837548615734381219521127967925841089474965774668474870894670178722326823684459903819862018331312788448643825579306984075593236329726347385651545461267606045798301005092941168137096597403537782598283890703718113661154680397331354537463132507841467005478036355070043828388114643901087367867068204066857894096766884526519425191736646688241277863264847604698302444652799660077430820658512058019114840503551114832638661077183730878932735488418155974415906857410402380486438653182423262252711362511928864340527061644135740366184703096586296781816798313323613189202566650032449749110786866516698426086243980359188628303373344756928179608571009291458852081421236602803738037867011653999710780912384569017348270235482786386086638681875787297732136560198335820254297767083827580168624700667339188278628816993662739390387080692773775334342709850511861774803972620723361670690722280517021363915256229527768818954689511231669424840426536328471090782207030157929859963075454432202459879286043398387147247475270241305299642353735402553995463036061826842460232624102217853761430946585840950952469923863093873752962516856662110619735273430474215561319816328759490651347421290235990578060230312129497924631058532272912073265530837849152621748468683827868554441704745078619072673270795724734930291153705734218218909147965379587330648900178432765767963912072548924391305192676822919016373190932793003704204626344787549998317089052571141619616419351466085954264924610583394674974480613894649007170874059346481949755572270516892659798108994007846343219875713822507460484685703320414545408910984581460198621372733458615271896975046655924870897109497141959131884296308654591642434207975560815433243294536895773988507939131769531380539217531918247186891575465044456830498274492260198284981779285294331445312656528825046368599856273754807609361672790616472556847614304636351540174932297481264143623754313246028688693612386801371921820683463554037537049970852419342552275444340014111495965986098827561367175802424139988324779130530209593398060411332352193508894642513881791003668963727729778871077494409646616168544759872135077334669922636807314666801415277008607392286672903270414088008380042881672626627754516795232425390177390923685890975995190692443401170192834355751917336699398536437222687879949257164380520636967794805994162230265784454764124969396054182460431801707409616318682637443462457830739521679805060946706365188783542639901283622769402360169615636647765630689380222646967401694361575043388127217041801603406026179648043137111676606349201114555810555663515297832540839452729149935474872428077944674306551423664828212288492785454653931662039792479174660105378291906358384522150434387244541708144295753758289090721280500640272107992488773437081614994959819491833550588051474411932324175759046881489526417550395746284997947913397533892907842952293725321494633941426609052671727274592925014751309806298360382656728481742150557683125752866019142378300057724375394199576780953063708379308381528960935566671935033057478423609974473162673864521905303543299444956539276462614265147513358699350467061123347714725164046837975846050748943840284713042045965495801526514335037110601644259505240046723963547587303992727412420138708221541036296068215626973217752906165244429006717990445649087236673082810787736465413522664773019097498792057220922680736459300501896956796417347339547986794646763997254350807486116508248894675525375252045460399920531037619457115295675620450986104144029754007458548676068317030068036728284986290435196014627705650182309915150723199232148236589515766514071975304728481353666578496671470048975419849620896080109665224662575164211982619510585054478001202281008033130379188705246191193967231602998735641238261274747628603215255592089397029534867515963031726376582417102128258609684547225056503240211460133663328660056164912818056756192563390803410551128307301815417270150554666535604676555505160698698427318227446231721149062581451470840274754935608003625976045631558654853510403694832705443091922993748859385861987611556510590475570364992350812652479603985456503701912625505067824060539420330105666548530378897985195478721289442717619374365122458203196929402593685182886276915799094044528447910094923851168331854198510228683468815275519461606902772770019730099069145976109901027666610065759937743771391640229787001573547743718670750209807236200430997022506718811148488309366700976484737364864707012813126545062841819778542735789809835642319640236131544711885724786195888877963050717953476216821168551837201533957468372103826508817292305670007340253470645673429462605232218269674356673914425462699025627529374880051450687239992430022117400456509075776261524091247972421979270078261921797048407067801676131603018953444159040165145983115542271748801200795629945159768663137511349754717673917199595266901299836219827470545440063414869325555057214760904591290390604640630453584642536293685429471044312921836071616987910975732247209909737302563696479589460053989010411016616436069339047080958871055253251591846775664598894551633721388752360477731484935960373293488682500115234153407588610308301747255742978122050730325583644246326351505568673685648763088687592029208208025694091087833617417269543581906466855755260001925438483067201070786024940385161928078491277656074225518991158572120202385506278226918078642140753783081431175751234828087803024670378542352625807180180688153369993065062638165365963547735020060224998842981490212712009967036621110437491863112708608298765187122587033762931241072647021287453939901944078900094127632995658679535214298818971775153401594435921672821632974399252717964948842085414112775676840705145988438296921759340249835979521166085299624802111457910111280741024119366779553776517787346303286846768944980045695201893535265210146218698543730788712816481571040536361909073106409025324765851507526650224030107086929356241129289661833178419355126408056095941952155178482962097497599055389932877876742101717759017406188065589518039852023420052127313596643344016675477878689723053003107587504549110760820946017943423955370914484576730716931631974145047629222215179372660629025037815564296179627143991576887349455789949526873863576348831035741590251132066343971462766112594446863607546131262030866099207633771372977525214047257605530519023377051987430409883378218621306822818919636427869373470387766266796143255270043347442703391333618195914009650969998649947555971419932237250640000446457755477894896623760902423918049750084080635227717834331320702467150915752675049301368551559701596909195017538014554728777069852681451541592611105682105589796165384657383120109698371949105005201142414578741048733556702879982190827889998861410343866098859613890923183717501423117242384587941802369878837490286510060782626097051288384789472379943302091431919910355287015813230740186442075876780600531681529421229069469142604537495441105186439993043523657860519059571725968035899683510622036399370752664331185687543442248157616948677284913114644041028293660983688782213940790818228445358729997601320466951774106338227776125691404825365267588824907103795967165073469693926488438847781225582340454851833720879906449696865863930639302233958959760975739599160844329853062691701640992313456161946204537533982259596088583854047668424389885245270305443014759786068088090195524069424979385115731015904488910841763432488525406204042498727671996497651886745142268037048970903274898810107025296298186076746484799067358519645905865152924781223880188086154946584659233391582496561763875084415380328693396542723772964675339672246464058732279847458597550325617297799574638109484221158406536655444905697334461743938005437491469499875689318109402419981259665756304229679995338631472009237731944117353509033350864012508538349551285059615010608416481808044459384952301689523321191983859929867317058723428760126985104449283546271816262544641135453505541136834849281191272962042339078802482219771271057406839789001828457095607742595679190167404910993537559377452605314296356787634375982129666704302841509313532825474712080924650059810642400501444041619411634485447826637218356670275488672054185779699357040558464763351477147159104105628301098245247851416820924159302681044430227796042181320220646569215296305992821057634813782754741642752906489079823547287419844397059213328216680688333121393652324426300285979353215535212361358684179327500746007010338605154706595668807774006973175148933004439359662807090937692899091437557720541034340749156866643896429783228883140870498527427324773607002277643725711875150021229991069107252742008111778371368961479213793606621169786201168262652686680819716120796234516100295852956494520155578774011776630637432462528544626278945078655615602752138579335089789436467817640239734440138597047500297021417882144942486288397275914891884870173957551659119945026022082129381577805626213153059259136060082269843707728331189510890221199258940756217019419360703401904969975599106714839780705182378936361702336145093379002178727207708150654346770898265591693185117607190985356500288987851998033645355646175290315878886357976635376263021552748518384641934617864991166340945057521900830098663782861395956508486234045418375614134728288827231984294694312910060009565999582827097051497198354235430226171068256983957206789084080159453250795935971860676141097638905810039143842824164324658194023373139981525624881621245618729751789306946376798217864950252462525980366273505267299584542828062183999579098840917895685745875525056044992974810114523331191299891682150176926073965542622843416653636547460069059089779284211604735379737051423896921746877924347699981538870887839231866109539010531098321751765468556162526050726783006307906553011526456021932627053158442098882433423522503916273226177493694651824222925907192894025439912396407790391201753841198079485800373192972581022790570371500812282230027885460598429479335012967205176442544635649933995247198752175565522619826997197620230086773629351384628955178682689826889181001833380447989001325549333540474703105968029593569171441636351208629707025953858612814805646827337435431099989802522436190168992881092782491909831044927835924416195414169820767693989801668368190318898101020928722121526508102453298076304215568584509046757312678986273467693577599779786360762705967298867851247198223551093053539305134895237224422313003848136743514315290310926974239405699629841053749034549793723814724499250121273390104167576187860503559709803066902513619435211436123947008915090050477634474368119352868492492941832842621736750568610411798166371608043668373980706648893725346340347880380739505703315161123954212521749557528593421791713639234865529054078464531781603174676539236277594062110219627525510606353578646217061514200863667250246508608061351223696176599191594210023691263149869611685119322960212945316187435318499724702950147463599649408202932731439742340342391352539318861764220662123645017091605398518720426326986186544038322903737730661451622576110037899138864404992405310306705600025327492926305609398850559289160079883625367806190947260650589181242706222684576415094142585349199635679078224813114119409686569043574058982236667275451519046030243632143668398234315726013137554308408229213693343219141931700063527283326125462010786004733301826465677328250285556095837968936450371323081827316996230335163713401994775526183354118611778905747420910798925183075224172946485828632668552414608404572140941388021339327520485963243345390572332873105139816816678254491019358155352480013892483623342825138286833046377991681509056918623057067249970950442684441110266082116401502644908193305040224255123345122062071217549717248546867236357573971085973874725601679325911475761393013934788829897824899914139637211777526795114329376202823154863619148614504364487734558622435491744842322891392160286915494279872285045066986246412431365701964425467887140766998656251040621656501359510863006056144271468643871808666283320962062586868041176082555003678201570277927181568352923593024490174389075125961764508086518452803452912191957619104599165043361880315307687853909734104355331727662629832653121736097649965570025834443057553856716298680899576944073457923577323857016263929018319508757376721372726062427520613173664684755507403663404081582831394698657773953685778218304458385875279844000302332127607013045500866883504208976703159691815553288116182820109368751930839282147122416078775117150814406016754992126614064966987457448540459314064454509691349637220514004900068518767038101181900235933687181640454297009985965860410394567701004719721385930269543574826852214687295446813593267466352173958549606986258761980568305016675835048594628498558731659375399835057774594029015800633632414244152356741440589161263469267509620566583216389067315986238649848505029748971836879633484899334212937367504304414194921926497439485901656336363891517665955528892213589946800960933347835892733519788277388080271929865159555685367937202084323172489345457524105082374280876571684692834552972953722293666532262703538493995572678302484956252573200798506121029412551017285035778983214295407114805024090545107509001107693064442869419054777526479747971641277070346542262340423084428124383284468307747189359954935127387491919636062474274698697148691110919139433105534027857595565353964957185182165377223279406965936145757113488317338318349969008251643476725602407660364388159199499889355564359356971830058867870152312246747204389426740283244385993542673007570070966709908994057223037780435003374463358803000755591221565611008920173702679354868724098075624643643116784397023058372330487013657418685231963195298846464425787993662984989992114973734759263640424306781901716357862915293771843176174979097727961811618155144520367391592094242062449301556006802286891957486239092988917641369455353460803320843089818552860029489149359768692220294762678738317705587697347582081113360223742329194121923664986490066181219936300290711219145079815199431999874940232694379307059020951593077394948740881462464993077658838408945318511010578015246796308093512932078800602526493278831528233134110485481414478351565422643320433655601882676100325049458885375196632357973784905224203630074578101999168257109094658570266225022886099237313761605090728993081432281378252894554245992961052070250924140812964695044317065260324815406237075066092418929522260340306018017646168906367150486881464989479655534093011044627406916821714728908056314308624114852135139191175901736148713196775582221732072539638411182785731516056618595108051908873518072968118957835019370817344595371448511070176198160410944982941026907998623412624864457275126443739283437863211797393394563769066260347410872538100977302674691325826276432817710541353519978631697063112851308747673267565804989252804445071336975892808180527587081191140165478753104389715622615981216874069415852362618408581340748649134043611433348834528793448118101280714440650645194355885929938755950001406714422077318255282200245976666849752890012529733289334603978599218406854475990639754255742668729761449248650695237461241096507398469008957796516994372494772665546339458228973851249176947011124924038294804245808157492724537727859196842695720852023468144324110363175206289723047846241406693474036337754845037948120589989618349688989339062719303101554710497715087117725016280063763078424980531479446893446700366321782018056785358320389168365891477977967127102793493915943916445561917400428017219598899132201478374294017090517462549822091341989044555730759037755396852390463388288300128361409553033737823539090516472377465498228535790426794999133279143367991174948854130061827966615236865896083689098971755221446854663312556114399558316822761135835795448948532596570120993231802717710023191291163106491831574169606659344590228833926351604518812877380094214633978443556828051177971469890180627096796039434055197055339547391637435149929673811903914194132896112814158514543050972842714218483636423593957942481389912005772397555593275410976004327319326007346767678227923490499044490865753186002464962255414929197187532035046604723354977538476202687781560177405388112450992824787831274612698717263667761453923086201604655860952866658124543330457080161560190664902600222482908571817607115397575549107520821990516145513838199604995019099311960771550054107178687866056224272140948850825044679788550231338004805899882961740156611702108600198344557066429696090541079864754218954833390179982895624463175367348095095140365819271057235445137921285240652933511341115322171701798685142966040578736377686207814892105903614737717755998338515310715871098484788778467548031723167102179924858596675974940564162722107584144786065829899449133901523285408335987005727371302932410266915923372807010816248927014440019208222983088765648505529676299499158204306532962826703515553791347517417043379670493259122518513673053171120302440721061789030657113271472762953071279513302227340990294176015036010337141287327838577025769738650934776580773482455973778759609310349825053836016539559334350519600762549873565996621182522386374167334757220071191306542471118286069126180841007573770003431526509917977140612244418509490258519603665142648161638225219169192142721461488134662538840809647027306417501906821638266899477514721454217986841002397247958038730253651007519243663439998023310087812204440791484860055047735093151583567171227913116659910657420554807961337289650201695535062347549491268509598475965885339603306067284134191945589610601241047474583982111908304151769967004647764703592191857861139842243201609244843219645193455370691999242607149490199028204580122070869186508966421939328844690153686325838804678446811748014533070545492596850029505247714184209610631935740997131130106961925591397311970853302124155887982437807375069295027748027139775306248192885860145907587064174060578853614081663422217260820576196225261615081838797916414559174212363191729641175612586065278596899050386347756504138435029141745239012049674703115706367948780895651787215274250638099753958666954320974022257294753379970831714602597340879633999180997079364930812417343890260638406619759365869804172582466116286987324152344298009168264179703528348001998464054767629314143027117890609553969218161230432388694843739550407884680529072339152171960804491469095609150436958104458200658216675584809477368370095426925706154134548101470957344974659696089569100963122792184928318863389070413178315665115527252793716756165244054393576768393376099604569838411689281797477270188641591392067844885227462747022125406082730769019927288949252502694952006749727604722708816299742890912947745986446838844526054354258627602208048505839485725704798573350108203835821972938556936110834375356996612762386926966002184540431460713653292031226519592050399672758383737466725768550059851271762056734867460431710233952804011948093914583625856525963019895691556471273146919057917206083221558480850612846370856762973191407188434466535511953410591881920725863757898623652376034153753341836001386711718768920783321944206128203176672969432974710038617839750392752069489234695401552814707540948494225509888294985702707405500798720396299830875664178546579368470342146205857569910307941689624996271570289572612358494891712138312810630848875551843316762426741158222430615947530312779230273285704122250891692695657721539866600561927337503201282477710903421030743548455760769144734180067128395964735807066094588649186719419142368749685167968753261589732848615493628373448542773798409913449041632496302302353139098294913401786131843582751293947514935014532944613479136825470490444088463040290398414192910803904438272507434852765801230487127160066458666298845533400145044338003065365203066247381906740319723299589982935548060494446891819695182481696524206808585772222681060481954246137271305284663355037258349972799960447779321195502488518980876352749788049261091745043428613181207964944797231987943665959220687268658554380249312214078771933049844111084187263412658647276777345664382072287187733335431240303403508743905699228222218421455995967496408547589297559229876181368632745932001186766393550145189737612754745649922738667748986808155036765574292708832611614413962985509201773866677912866846048871152349039997066805332247023413747415410649073875901601750628549457821651688260176700821314893696432306222787921122023234366386265806728727253773135515188378775777910048934795492263445711399013638871596400141038220172683286220727820916032462000211594377426455286994806210320138392025979907641689813853931229348767777314302454891436690561189061843195121792074893254993647720407961085293472966136728889553476575989245088338995467944251828684089999213442557806320854168135368450697315720473452814624702725735887023880865309402498020941515178311026693672106593618665100984094166200693741109970653508079087103720588649594378147050628769414440151722437721843394023649351238203687860527223941069746065931828171561665564257955755570820429462401723001067956297139531647822391209033874224887966609192434983429837675809224743246492454797339678309294072347911533969408073457556422110391886265694588309737290352389129022974393974446347459591675825296845622815010963621764705057373741348683143276200782627450740374389293858297635708977441462855328991044553675961440835938421929183290615857717946226755308084248313587507979011818376262548358171640305328709837611376668030256252643542673273741117207749199891289399337676129344293346773811259391994263302190576869238539016432831547674735122733243518419345504265683314526678254411349243570756458111963886390454979296925173234484026660720148880385060774050400228354139881426958100185515278359459188816294143059371657519048161766788084600173185283429566912041132839046154018433412770915930221402919093896191351164870556242957541428407276769346754467715468528402827277188285614210461692761465052730357377897978644714925595609348873099950699484545337576590064645193540217763226935777764177066450479087033997647953731845787449304623908679545639407606462531830072838129116899914928574369483164527281112329364434212420090466689464603499469175472188656790509571234308454972453661135214946245642541156788932700527311737504614080109451710291803737899169435620868382944762220977915493656922460053666676968517750710760737369815362420823306333424094865174928898169219824392033420924447322683378920260361108467966825117558800208177547415858600204686583036413537863701264418371873401557330746402542203718858562558001723738858950175229967592346175452612056971687528882457814900539814512223268575676018540325082887603333132136066541979567987957898412374729381575087704937755333833805277908515557408554544538884045050735261034379716966513213518462497306625140030277548653736858897548541847461502815857603778658601520176388732746754593495575694626151435861261010284774303039018240457995695564430348019205145872474135412058052607736572778263880312124503884604092001102720874225720140962053722696961749006957073156807164132399174754333746410122182221843347037493020452656643325391993386301636679070314363095564607691577758191643579646409301044849222515420158053184431100801114687575197350904711388280142169956574927004721731094808471913425919641940622831343350340133927403619801399209509287038907807077530050995604025864186716273417231839420118504255468411350790179870005637464842635162571103091614679616875848136245386009789146187044158768090801874659286808862910142102579024006753942825240485636848685447403346645262115018761037240720270813107337712240917892086887600225257338732837419207042226668777812655531700949041164357049387071056852983624944694575766549100238717119347775664620894342835837977684107386726618027706069585655140483195969561618425944972166337900604237448922044977564150897085625953844654027210273329745784177094538788313253600439157950680896268674811947524281259845020037931117905732147945956007801499462057979398844500814152235021174379234130698936151839456911301831087656013790735194092198373497669211769207314588144798280621221209683078027711686120024426712201944065991222543149643898818266792443472828049085432023091201577649443531348433989426498219147106909389036535098993658119021926235786246202696960479239861039061374533380006643343274061331746354658026043668872245104687536549585826633863091817223502638928691368377941727514385104147074578541115243720036146368500279457729924134138053291596035757337980391845695421454423664028442893261151400157382452095720002713701163736872003522006524492971177012257095361579891952095783367102695060632141714200619204539332772364795843735921744873639913958203347895388903865601467281531018077884815268981411425402834884380088087600161756777301150485387575501165206229987388126497569711969284746816176731045005498656117979120729094258781688726798773584060558338339957069702595147451770621136244871179615680331037246358808151143773656607457408551203362985238395330479906770957137872560646458433322733447312556152430979105569271504992845582294969820255731986841608794273144010458955144781439626397437985861054360929115941265878427886159031138894684870549051484673135714753445810593574123560503777481363331750101568107192714470615934716554723204944585795138209725217156596912167439742998307012816526080310134446788223461560013461618560750061784168425132854690269637373497663137580094967823786658417265643539711041602904565599861731120599382879543899689875202585381026025587960932436510620421588395471467468564458338545902595769668728037906728224616683026023298383916528561703750525716383595656226163109403171903551337557604178236508353706178890652348748521623328161839650179884522078790770737771135447169186507174731182262881230784975146592086108761772173164078813089658137917285369768547684394834549343777211050627469602285045136904918961044319210649598114963340334886086339736481156222661832932704875498203049217873275772060944354729404295268164764034128521508134071644056586710844965037493660508362398996563245019572764200392869954808543013110658743330099994456087865298656911620044915162841903102590876197074093698488497085090461775988499319554570523113574867823258387530878082717546767605480866261990723577540126402104492426031419568112226979239419403885781395456448327050915610653932926782386671003267599846295821923360316721832036802560276535532158341878844149281204428952784756181733118110305368047993780888185870578983750244411502636694827448881173896142862114979523621707251148724168436789395871077536186512336553818021014385536738676694123734397583758056485865397634343355325503323515079141400609643271702325804208058646780029872969142311823994621418273200122754752495011945214600250370764411399564448709498159384644565630444301834820681508623762041143938532663000277936638713698568959645507991757115961274138496163118780538981435934365747184332663989474375967505137538260442211054772928390871400778294785388928937625021399393878459460260982115043903688560563295519799790990646369476151638761892546966021873836041814172266538070330227694130415787908182191912759346828994062613004671398415173317778789186339375049027055326510169310816049489614776343488477912431023891568284119486359031100548595718228673483799022367248946084198092015724141817379756324145730966235996682200545628436533167492093870288811628420799621113682157690964972308686574531680128781269078552142852032631096885030751704319964707107854545680322858891266081116923550712891038063270262598033474448852476514185418907353949699299487080558638461474650503431830957870109593970139639744772008318433677300891370147412380555078217914482837278695126826408245693683405266755020913442776172537454207731335258728892486123637487879269223265779250147794750122861265437143824856742017957676146284787775357847199898954208948266541267254111965867737566403319920371452818415544634407673661986976388495816698463188280372346660219336395705986943790123773996212357942957837767489339632577890592969276240555180813227781458572330158342655100927718334383876687083327808221460714411873405820599594757508806362478647288244360915174936063871077260723281503835053217822718263492839240784941864486582307423678084234519850700408745937835465538940793471831097571455760866629426241580519971214003029060098367951346032684107344330428127850497128714620778210003170194666274236343529843545245605983104685874642069501665711594824741505756298868828103366522732321144102113825745300530779824182641594295479508627004410767439315293280364014777644436786965029192938435351344239803008569097605676942298922933506580886679549817533819045510516200389241538469763266504729811826667908942990467409062851002377897772528561137868746878395597322187922626821099473519973838596179695757925595758745173539450509512242459598631370280293659486877621712912204029757387266925893649820386122467955046561283041231200735323686421265203338482009450194193058484900432487538356617899805529251643907048013494135808038836133086197995690016996005731550288766258575757088761288760947764700787823698129238260792688100438880284830661559247170029370979122717979651006304778746070337091111439148534851946978635203993914117401731186667048036674936126482497122315621534017121409965547757523084907898446521809014734939644685292848137584130830248765307233200111667078421308169115269754638824839380233295728032654579678714795227668573422204414389526556853500305157248125750913653431634349055288983177436575742819886890912981634059260578562990711368664330452700808660941408980360321383890637546651879544273088792809056358216180865985595530059799087164732097785514070411348965398109495811865390872804150630245204713461832659244949771366331653508297970478422539473459775260152934040079669310910043895591263759991720998611951407107145549749030031884074086329895299839188476414856419260206479632708357111159023423722724500166167370187105393941419226664432515684666591162273879857687639543219591778598481410012861884248638489683011895984874113078757643962911880930035356295247090790114567349999576114938612359099275335073726993122210280500277062580048940922938468068990119219302166959755996361400002456486312998338155144326938161052252427808261518360083469360208207997467971555977783991782834134227099703473601320339911872342317523063001095819664348498483462683584345026765644759531391103549862286864704056690788293797456440046205615740515512259024542348552543481517258402140993895320046031377873822820982812800425560137539046664898512021549889447392879425710054275422374984805638172400985751371594913408517736753444165995700573239089413512515998395983546634425581192498271430638496646181324358923543330331415724954839359624864997368166523267592408756953852468937697391712987514403596788399656238804491851860390105543417186180866217112500104346152857400773513545673417977003611295125542929376800850129362160502907905298389448764194475604292799877606071265572431577966832036151282605818534403432871970657788374892171129342833223600290560464911333482560828545954847917807428120512112186975673801849427550099655553880704008722457436827060818954588018274986161715901442572537342988797114885824339369365822660921655451917978851851847590197007027852872159631808874689949810117610026747823423387408041646289050899296538535106168763287057954403878929840392482462944184267751622721085005675953170121839079503346014297219218844235063644821743536215662397382017288871943564462962853144866882631653873087807345745695872038574813056942510072422103398181915038594755814228998131947917816458922270205232904773750639637746963402358837461617067877114041606612778990286635255596422138554277931106637163495121777408945667909326637485747662523493370404079954314103159481181504797260077582896434430857960934106018009057272191673256333045659166174353594892312507425276408078522463567092773584700718148927520691860977670999614637442346695719000426565979447156084684624941277892878469351981087912681092100505337415722874399212903778026858605360185639026674264681516532442202752431731568046291852853808677532710480181269014765295018794764508307059298362183513339553134484798909290192281380295162307380048903315900313377452384470776311624326140638452657092751055312189056944976994529115653458127770095216041118351720959148091466495520396176467263960732998819697450155207750753877396374776294347102673752757003352911881697968717871073969328410625541097861516054337684203404943966345757720080280607841184095107318573398727089360872804985328842061617275416079263006530222949922738781218066234099697587079983118438652338179016265193949162370540882325233634001573332996182714687016589332335029100929746704269992401203514229424370510010497816088428375715917148097983203780084997840740469859553123742078680525928715023642805144873955436817375558897341856608173846127242988365780897499599610784042474578483287959041560174313462316400318582315266384461204805462244127408229073836239760853766823524708580254723033297718168076291590833133583687554026184564257943436954749675214302928708921347610645261211580726590608962604597308915760378569200115513021197551961634334199279312762446225841557820926354088416837430485904031908024958594537024110255425388390314313224997635260150561487476509026799091061705745515806410082164067649971550973364715449842138344028633088244380347594255503041861894140191070660717805078468247878136775171027149568618120474921315793597601409510387521961261420838705397713604240216207945018522285266339644015205352561687973382072424067522469754835377200424767282846651523636798688005150592684982485980557224519333166958652248526872934109430551811518099225311900270385895865876586705752806879241319616597723148798965523491584250815483064348062347057812770479897244780520447430920085578765641410951938657233696221275904931634321043967436833447519469982635394664036590969528764183884237723679885043038345189858738585086130322618803769144210135234948238666927854409685967381895873105686247854184814118152480434454898850525425329934171113758102157950099532062202394670939253723674687782569882875220919862857123093039365923949954061187261042965761692114707378153966646728417893074621245959411653541975005168328590101065404978339137727860204603899758668645308412976885530271608686703179293835966869866985670064335230786449475827584473108564373678049401416060201653227831773887017377553992919318869123995166463812832658033525536202669742301249582570746670042228718536967736517429843285061369110142128972673114108847334827281130147166319606766425812194818230126787341568735290106976063122866566245421213298116078715997678606837555880673457929017918182588334004110300307337550583858337285120491451016188489481042647589341248793276650226415185084074021492118209430911933460841272913220699177344536910478423906615149876149316786565284214188686530223807880192377084449152219121004860458926123804501857511863290110628759367769016894771413014982700926636284069517197323528690672008504851414541060720814038794992800107430587364277795262141944600055753523171936569599350972762623732649227694300555527341390584687244847891926743518363341335450263033013717333349312267455481952471920178685265665249392911193740030871643006462678196494025080914810331863274499385624767320491302871287671094041726502460422164687874253063611239740408319530331137140911523304848095794571175731390309575362952605973184083567148162356122390757466322105228030634677340861871208267827047145532362665131034970911951169429276662909012742607223904875152777791937193383758946329820722666866152275256638517594304779419041616273607112628856157240193762951110743014016309518316272907300359563423251214057419090989348098546974301153469190467949731337414548276407643976875632529347813329665980034650916417997466562463471644092018605552668339549883981395601603779721276365051418563697815975155798074735386365948596889421872215491523885334388569914181861344058770996120279754974027304539839581737934542683725020984934936184134999394860639580228748003447344568925195296083110722100448075560621143720415950597591531396832967543369209732160631562941382362034914253498372901552105524014612013664463868879170889463468867063107384142933411064499793121821260286326846250316266102335703907896791364145581178388319642548296663171729085167067676114781365288334086972553228107441506563351398430958008555366294962601612556296541052585687726457156870549828393264647247756851134768331572228957673970348191755185337682471944017764912585597056961597662926529747743569060174528616585614934490971502372352938134630067260511183919202051518830643915259445661256531879653561542482533703383448063429977631224825485123454447988734581281494510329531101396852831751219923449304648712473121241361898329566286840864619750004797132661497148733404146666989813685711100155913884966443577008633681477467142637050242086680947322943604491660990424523158338410065714169211868805627551488582393137709680378752596477252134677476772298457161524402310293482792354758254540729468885514297133184643821487424644728346467899582827356073504917368964181235120023038648557990743078139297217113709342848271695846050616398468408970280037622903793007644523485176288993491142908090135611628698226301001723239283955003034702265271029494425299548619225517950500640609457351225527421205574694944827948807706254478823369912452795930361631291284004149380948366550799200783023809317786847749689745850624287035602941539325870345334898378767926715336861924260219436801582012444455878833672134378147261608605865842436865084605640830057756243803379266289694638001856705679364869192334960565633029151139030348072233325155920604377071008549726081787763005590405461485285826505547776699922930276230294699490238200741302885396850138996305865421181712260381782922048258848282961661639465784988598684420496482435996936246966288324803637857551687480016833605963820347327539977952578672031231339690130650422823493994596670170480149902525372703282946134329148297418683267895187108074950526814846796296788569067822742816243274068330385962234268810190799696768208335894454638630850419710252257600401354063983565698207052063026688952638339679740569872161051857623319126598128163760229500889192725624853576818198322253030507022895238961942646147027051028640813045457293653175983546366480629665917799220425396567295307456143326408664143155106793667895546631462766248495460879725789202318978922446023010428324454282935735553656536185922099485695203314665381731186007010052642597936601793926290740122688964801498645953123659378223798478275307575654085064860457387008826068969698691798487303657220511206177840120751962454996214684845255958349844884401832075194457008445279820696463431297892553667248350006410942834586378226944462271573008952697525545293837291713971006908381053981784551560957202696195344283949970585585861923136777241059825635163391467312378935757006502456791270930338900015435117017291826427277482871239980304467669890739554044446131567136317453194545906316721508988088663206152492255339380466630634643791605503048161729094493801883236414335275263258634496426394790774036503441998137273005367118662094331316329368417356826234169333421883221934347722864616712932844745958429960381056704163853971880583342755251147850734346693948835047976378879552559152918385746595266746329742402555573439551743527535797218206097981821902965176821325749665674623525913523561686351779321589250512149750855780448814309060332004031464624236812097198329483111787552711553058125358760733793469899745161779632611058809458640114290743603833564371937493639210902597896070467550912531797025828950419157789689011622827755139745382865950916765683817865081829828226894412674727582244257799980255528376369933574745764963331759914967119465195073301427101176527518141029891015899534379439183116072035837700845005274896184417886037525932424908051567178007436982454056431923621961756429456046950928789622960665281511952041037250882659325467813334750091217579105263034901220080228724694605607244628009980430630932760337368431371298573446872567810286718553407732515717013805528201065145940898884143039195433235777543901053810095769141545443336011345387639884086648962362960990396930659557425767970002788465146631150020841726646975417284694009262214705153895178091511546148369504592958522536964778745341850070893901837647507764221922466498995673155682115229962244140608831757985518692305757505882055201632936986198874514470784036229794812380647891592830265120936829209386008596088153996861494521929921532985367440860104163179888951692640020181811749213993894385574465013890474789599542457480562294935427451458198039741283688828534181326178717013960652676236471711962944475378711610419618801944983635953648994540311692268162344292064710197002821830808508322823039179329887847375918852941273922561310960855492404402283913680198353850069773027266824971187102213386511206860535873186738474135414257306262299234465039225026299851730052976956819587960366881431663376963155193527433252721090300784868284665382825048720734231105031622011213717936928749933171130248211624826767483229425151704121469976103490781159365746256624750543933588689268832251720231930646757194237735339912466679535025089812920008269887005880586666424243385648713957182924902405315661902801520633911748301737543862844194289956330675800561267328149152235774992349419548728967474700573020888261071116104545704942880459056901035735367347190552370084706436939198876618242173573935537779071156336555283462856482675387534463180669026562042760941387944515257360470839304555949862032142560174766056222458211043605907674064413313342429424269074440297012369363794730555911810515213643487044959684318589871255137361616405345462495245394783785565403345507024142250605378415500608102615288300729113280009848361380278958521409489240814823599958606806157365907098855593896542571275167723181930191385106044114533888199076519146358522821092631820326093593770980754318756540826235940636799218807217780498127182763788768420781734354173019799136301218786968283947498800060797667968715933486991201130325636094660311220936132607842884795566067497225246648331461337938508063476697700226412969123890347116811241932511465313426587064415775044417989402754904989690683174807435778354931215413281630717295046262277627006182998281741784836254121182830010953693395251059357046352177299969172730767433818752442354457761240419091155037903777216064752191588737620807527770434024410143677313634006600010476337472711783115734870618787171214096962214866856038099087465919598845682414741577862280550402947275827436709833981089418200157334761808087505157664346152252307229094562562725233218049291689779352209655908982500880832545461065129286797496246618782813362942470313925094111963944135059159406824128555115563229717383017237567716473395343256882358201960394802217998834870733653566498650845839525815503589967597712269640239300649978221386842429047713943714141803935235837052404705876168289107421119525715632724254469729910346755858993544298403819051510063413347008116112260106849633446685479016636753384951311208888114744596217688574147678389193264410109360632891886285940736669139129699761925063968538749224164046285968295516586078467235529303511228139833793316287064738874125167622393315125338396401160697372788213427983524592658797023025789875962505782200376679668764760383429355362174287200863224445034079349304782492217037710345931492793370311459208822116761388103785443985565616749552548017628514112689815311652730005818624195368926927704894930384536856020922612530521529162161262828651075568005956798979433686895714938666543340911983485730243554822373400146964677937736075928960570742696913373924568748256514596919850704781156279521400146118746687610201461163664077952672159998045241246269573955624686574440496530042936802075613905405325600646642565357733157678132447778543014216078687158201465428630653306464167520379299198248296339293449748094913292400171144299707301831135746460545926475254763902829954944916217684651723066780482708937471808884751886929771214547850642154366249386590640529833620305501186150579177878315861223602184248802775453212694594916109224925731414104382454488313373536319685837153594036670905520305786195758940820209586348497691293996285478645456014803133192570203772197892820745916476046345640050055002971433064063684432270066391907457862592118047246356642312784006722672707288730677103722213949070960046896592347261189106486815582118207617024754027985381643979134746419181118713791617251898423990989964101947606292082160102205232749416912802455122089051848655122220969416828222609688193466680838012653905695462530264842847330695540171395382127700510672268226017343620579902188807092669312732122361869403682153299894325652549342034245206184756596875142990427278198331510871530042957360178204811667264092491736312569700528832871690167564470416189245932004919059962467905757592432860163571874963303855657389346753955707290240586764768264322547989126948221736624499191131771850587559479539229094339505582266063293449790875175040761616717629819711541932053244603870797972825701477860295979914810222514032130008189967794144008827288336369657419859579637997878403590078164026304658395589099760375341927573122823900441676943534510891307592125884537543563565214870866721404062169544383050762247114681900843759701271437559401229227162595920426226332435818683151088281283996246409093615755737366428669863596163508431963696989956545925237894156662825362795561625187053878469988041091262050403701436826366574959431233828322218572611616715805305905911144999319187754403583429947922223211250290027356167166170929228173723783846814163099658325538852801261858147597925185543181210481175174689861796405534798202545412868110594091429479834081877112607052044271006068679057440997433323687797337152935067038918209655461995593709019641246221702293929039982437106100118388231064111323758468821160036367846684981093474084447281875853336401473834280118026012099530514243397994639744675031296049691429940325909776379936230272339807960172484150021100340446070548237618254466809490213262185131231236354698214164688533742615395449744419083618782165894518562391083655083854236013942798745802386852030439369812415204827635969334706958422520758473950758712982769023622469286098901596815071182078372369083737252445501253393571255533069944628844500903393276981498864480734573128865938702882105508623778345590898634206033960239110337259326686335998889403985873412174853518006100535261116649923409786748582961979865573780689248134169759525658116294289088860808573700033952466942150040864629971312125329132163227215645366921141122748059645063573573890865600333842823117306663022480380954798451530293544397750142361626812844322224388929381663865148874485174332123752554724309567357406938562844015964501701004977047090501911263114509979254608790474728215582084171354149942777906133299387080131978175779935788363695300940511742519813530652176154571191296273138054367258578155457413672592002841006321709343198005375016800169308025767807048863638608710937021108548461030035379966389430858206614513780567574872309682076357197019525338260191152522182514770713991398367711656731980683187978034647627101838995076846440339925858341157742996634458791100899050618956985220170930715626573319517921703295228477759744901816163664206227468264834106189288563838686911308879659690016620980924463133980978208954018855562011281857867490398945840576568425991257241420377364789435330240516778181487485441108016515964444476798321428303416678888880511906288976503040249556169044597393168820373773336604606394029331764286112141911311983804125661938245995727260663628886353745927967039991470960556482125560824554319272780741353140686763372571965984645149635824596261111148580327824545095134034491048905379128646364697155947263022725733971928571530498400110439780815370500019615402268780768790883869040068424294020575711103509936810805849644058134506359368513351736088355219502203110907855322067153441327878475389001229838268029858086821269385186239070592862946484725471090219948589059517800694728807990010460437555582594442984990815668224462201634730432344987443555949317731053804355535624906828113344896452882814361005461977911419176489435412237156796228713464022573771940163290778023231967004422356728888718878834528683366217723642273700607475791818430057542645962911406462548735825998112136497170777411810691661113853678313436182493970079424949033900798411228276642075045442387492660564407807267336020061458189072635355332002776875075480236161284355990080832264067034640434495169587458067654604233800154774192138749001373085273302812273318118856552796411025339516473583558926039234787854005163093223590350309008933602445278136926544319967163675067140324389081865359039262275652987420628310077790162001081982490398663449937932696150287494532868206599941343362539995858807475235912958380320106867489892944997678525883365715636238979482665589910583376746891008172301156999568866569665167570821467191427359611904081866260299543799305554122088326841609642695906104366483760731846251945655277211646288404672256666293827102195677753007635689857151713054703853572513209790312410068259534299515953168340007383493101636637608135093113333484115060583859128945738161846945027255983138770363287806199304686077421862145181849986004572004648937792728367390547601924909836000741002688992396904714314552279060289294682317313028942493398509564997278590777077164590686304906349276517942185877360063773543864652434343764826812260412876161034433614070032057960021823278263642540657710041840700191942501226043667360974604745674031110352311567925474330506799318259812588240802967811625144070592776706353916848805526071736961236558665332623134509757604018335326915583130276072969566224777666166757751822952010775138565913287679700247752602023241466988533610594355963869875778761088032320588661916873867423012590329061246340182811266095190109997771078498944852654529929421369760332193334885624284328245471785560011556679835369748989704914228340161688204485161737953207141263323066126724053111566343478972805979939281843179212143099852321482982110415487259869148503972553498859793949768370031323441076787964228667422017927832818752691294275658431389864927739262701510980927422202356473936555587823616246428182253037248772175279301619710924818255928542433553241789858424174058102484914428254750030257220473705343023322310790084943823839334955122926894327202431403675929204112295710765792714310652019050518569544848051077515141443559740934450259082836173663676292364790321591740173596450064106067418216782330206547452739947497915347212663491227189047893801465390509815941065826247072390306974013531935668326195676424913584089564714070727764547962376244815890242892727054591047877213210450992404903798979343497189942630341974354888743272530800426940466482666423282938397830000456606149661348539743976349957524833380612597374983793531082005809527702833578046462745773755709775673382529098246376268050439640034439270572423001716897122472240485459940940936039141902957163067500707694553093703782286418268427042345683011925932015210826386678946252553249961012429594329838826464670357738727047981038055614072148851378025374368884650662031418324995739662041297125432040066721893414677629654468357941117123440152281334962491298652057286204171554610485803401700680655356001425940052024292435886249079068902938676518435200024958627752719477767708758834019211394539786454196684109639996805707914771683404608628314054076095124372201189843937089036584920568382235845591833183201286784046884712303799076291054181879782175996150879002611557608517065298637514423086611356520116145750415655991562071227258585623121141881197523264797481901469267517484794341533960419866588765979407851806717605460320679239172459535211649968390810218326767580344722793366535165792522725024526229763921530599161494481254845325347764046405509086700317477993087586347318946389203874802723130643026105663921389432833774157462701210055608084451628435535004441731222484651952821324720095440510317828908889983900788883072303462928366891585140374844487804798269269475720354452550752556138088587037466069498743065647848542382464268841748264812688527305729794485537058768175771237452935906737600454112449885803864666018370498652846510311908152772646195377158966000043016876642286873326104954951602479723562794813751084238174112612594641144720671803432784265724257285006305966779998794418729793707485005572470841704106702713614039522344593891915351909521230009182002973912177087200660654281236663810828103782769928476288527564766833633379298417785944885596805887857803775216337753174275427465309395007842448006250300140147635973052582196150163571197434637856390071154225543495130984051774571328792929531287240055110960269127413407949738123603314859660794046187191485301649365125443992220818800205905311565812558196601586895151473715952572844495804131985619003494514020489234653583533537042819324384902145344006876436227931057490936408474311428227912616693175269830539432582160044304399018467474943144478704880765145945844528929286142324605277358879696409006490593699518262206823195932396479955835807101917681982638703295437776981363834944897800857685439249413661105399159126976424513211024275961955998482282297496868657635017830635822051764836458282532383281199878861995111837158716452032844863285440874235658100412494453158116404833158795897222427534826730368395069188801112758109243368961682777088573940306495422098088942539136219504793673425326695273373147210213880470631224043017100823420226992016121731911520391964023772345150602524739940246658324619482605909346691157146417573441178509450009391399265537708051207621552534729325407248690717517244407388771817118365856577552382228531152327131008192670917098439941861137372054152840064167615327634957331307344444797857395274713612406085567947677204210831320854186773090144390383155163217105004328547268770477915627402400221208760062480866382920592544630572433254936388624346765736962316671582537803746370669183279915363796475480354820428815356474222607667620177319934360148523238777261821825305763299213386207527800721578698074043431083000451762920830817732785450669544681619251170203878826797901544903924982408897820012005181156002494476849407244870407888907815286078131680155932292323573351388726268860080215237503171406462992070152420601977265568589434864713026678947812673972599919759827512724231100346908537901192423829835533029005165361018655434494828565650095886510644854756643927742784247371894079971088265654385507501014494401214962026600589990447261457657407088389026591306857432009010572003021005028553291227640129254617853362386893110983002520904910952181346861610613664510936584982890422613636377395311741641511531393941129897336606589490345366178477421904514882745202380109924128469980530197579996836126164661221984087009339927201599855834822545761952568481351239438920372795530357728025099225328920666751111310350494113655890429591696099482336961563112952305907574939249365829232481049585831533939066112091207004700943390665049532011179723099936845743220147204144849028919304449314248591645470911749605725149757092721818476472214379374645816349540930006558719484903252207749637062394201935135480922759766205474391372441612755838196717339133142743780169261981644439329750912918950749782428092992297632194901436918544470175607057427247694056449386207918971589435082076691823073284490534895055626583942035530654766321718550359412811475548967370390358507731467919631849064769657622472968112345020111108193087596771621471663431628896683962446568623511582384179748691132825617361696816741631074970548488912280897826576839251577773925851938008876750343913399053601412880135650024481913239669382051268772952847462541117344410033357062672837793909474502535084196197816420175835804651229288104542965761093730771776798466099312969001520576767134837271053339557979638721342242339328890409021441145396107645817673470053416633967756509550016741334791119537429438170465224106602378108235654882178137830366891473311643688765807115753713186561106873989611778481783197454011114557684242438223042576644522158492348610785475546252171215355141545846269616857531820794010129798409117252704447042256537386019960522873749367101696730986763440127705993148695321769194630402923808968469395187155708022507484122619208435806156342920463531355602402442115802878937162770978170879642356680750085762098119210141791962472541727312701621987798154271980705070166971889119234864218664270042741203493275602129187711962195443415080458394879876020300294536236422364892427630386036461236196403302877352405458983007761968556476724298446514832268850883535280526747782906402405021187963346598811726275164424652906096440878485661627443646514042078697455011030328137834721660819613795538952922569746347881003629057162786827003889910746037198360681476782768761149325550902993034816742164169972617465054444721481871997374971304346094768443162195668986126324362928838219755872738403322495961358350728540715387683969926739412412703516667638178757254190040956800037318155170664805684485680274963098242213593303860816054747530178904369948839623119454024283237054453307601768418634495618162841451706682480098661293681471428851582275609575779614837242144367609581824236393380880697850804397420558854015416840192179412441404336469261851277197887802377599198440514193616819978970305535874756341009699576839264257600575385255783195441463562218324510156411196535327888675776012297481424257497762257205164869370467896337058964245438210337142558135255865373210336533232919027708668870358174565225340624533035681821461994750623163351474684918420410336001545728207937418694321403987467207694026185096208184355706955302862648410134988955872556831563515320218141599623267379307983561302971864575409858784535044019408492550387035909415926310284273480371316964836240076676006399134446073723517550004403500224943880647723230800052427396531222410486485751565508663632894232163905301445264286815414832152550159705898684835348824569348709785129735178511567513968791500053047310443657844897277978062069063510429201037300577076588214272761644319328672981930066129930076491236210439381955219335357219743061433501999266686276470500060722779662850908285213985908102671192914802429942006561692852104174243216798920781056913904063907085500725291162772217915086578914081337243189942611338342920804541427674271979045276936321308681977931256569139490046837573346281125109563185011490436846062976786728157939621075377870173361250613263682916093104008155477942102112131136519792300318865342096952071265054040018050860053007674575703519536330072721463295828026320261689149217483266855879738335969894258356082720180209866907361861057908209242830608041411936950407268623235797120818050320784824829580954602666563019407239353640300155600711961038644007256202835308869255545571410414794123869561099400268502330612474025105099145201906489923836343586093831865873690167551140018048552702030262805282825329529009467528204006247181000929339699728080686967734971514764141667472647051523554162355446778550700370540846268295927074918133702477833515045812884061873267319987989890773127251211823624511450061015758544041515498660572849702298885077629985240752808589370782936852641197443388289299312561948934537622868127785848261506562673590450143225899231454885077041930774183769195215579521351133212215095982777432473839074910085489862563694752577447491462081260274546877373491129990861621816952457393305712447623611864563978712152871624648052650412276641671478332679283486924947953598421397991509995565952905259720167728439750781237674770067151172231905279187547749414748184074506766307167892656380450056224588852004145247138206686680242562337008581957872239350048486164873321678364003311959274394665745314450275491051097963019248640721834881702165975911987524046207631959344268550718482160493658966175052946149097057532081971338783465037823205656366390034499606466607720061188606971643795758140622569069107684615210084766449550242372548264957687442398925646271677321920871425943706925407318403145123966056021459250799787526830350427272320427337567401690112306943420035237746119657405401056282492259873860355370357493695931214820833612602216459374098597263982383371257118986485189750217372641518977089903953078700053264476656458437966012490303761888055962257588426549491050751441848590861814147432203426614992545859967619022792388476831029099186912979924848996421625343864823041755258123653089446165561760901186970609592528353381337933978388665695844558849605745911596512869663706465806513830795031984302015227995018063850004432111788544629661320198293115317317106279208078568206756672121451234784660558818770642515083362767598032218462427598981181751215432189777798414510307423654463991578830000333323070386369028633583359530576935066788159238945425453054214089896934195441704604681151961820523207722236140440567926597974712748410249962894176488155189226039094055504152922004688245054177085784710844015002182366903902854590067848180601591434260422622403874831520276111348272599472334904268138922739149295174819848063243396230255668934825764644646431655809162064298312724905952129024401672694023958137999164028707805539407008731697074519742327577922765476066239115130083870498084711463452757089137834386506541840996762682911289246353373067745133927908635005103311099098741995292158131266721719658506796308489967537613389476035701442433729324887188483925581526695824835250911445356641212027172680944314163437942776930033498945056745445519329939509642989122928023437434396755743837578922478399689815781129883481006000589694969860650317983314488588948394738607604350377869772922718556872103479661832501325886005676714879698827577066681214922443500674914995453469460666418790077921268775122159154818088047821563276101426518486117352436231647171634380666408091319998735589671010203021771044175085319653689744299548894772890672588709476354681666717950640108942771802343088253263038188208609860792279042247602615937175057918560629680796670453069690860867751265854151389813952096688532345502679255486540130133814801176200808990670389345965797558628974822224315097767962827073762246891409142105541430456187205519129465394134633879625769098625726814926660272666614411641806743245150622212912693180186408880230227081388501135289678685653879025860869980031039050798658400521035622538781526928565675865906916015114401278508395686411717054680158337680679289353222698643303430093464021386650574301721535275195078598060180104695340723161906899487076144296118884860211507693560874676147246650146972461929232698974847427498304878658860361210624027711877066533690461142308340838984071293194320902067027457171933142020708585225807370888748208065907898233862657911689327053559556045496239000776558424178900014157983832073003741374111629064618670020522334973265630956934571475634207474828402099460075625198269131365414971312152194688575605752265850965155378039492287421557306589024731717986427781711661252473784481547869281167619629070028735771638207098354174270016779400361900858441162183051394891328334669419235164667407357661605879093074078648361601698235783274488206627460027909848504441022338264551132918936274316833184899713332730155046359130894333538370102324855327323128295381299959699416960377266653139780663312715768418448671080299190338633668916383836483829710871321664402141737489371900594246962501426270850624019789098965717060140213351136755484985454659507071580653364221556196066865565588431204636906968367031009655106811497413892844638326713299033696955264360934464891218887047334651145241267489495058551151252222492112041791309222178657256610698615023648230101962070770857154800791573262314097900417240394937682864749324890895064472332195700494172518289493423669187077612683698110501549368716416895195332208984943923643521247222179199673382765683533758053936634312148613951765013318755445720308968386181426618216115270013794602076628726353731603872229479353554282708807272377808552990528585489614711470601873340292839214070570400299450760406265908564879430499024968140709549290054693976698558284479776624416334010463469076588179671255172609754656192848700481798617136428158301267200322558638002435860135755812860858348351386313661602985251229187888210668883612437145760158870013117668326035447882779612091303686984325350203181117170797785863859441792685485212481469832826895407470729544099071465413789951174123196697020962528246320757760025240327244964423719462051469792278922858727949912451775226466363103893027876678937135339003777184720156517453843986865566434413764105311750468125295155065489834296784645096315811048296697848236058234826188551171659089348440335758647294616038364330843326731654331710443668203087362454779496582306860962737429353585646908929723502381463991407168745945162632378695314998443735473386424530493027421638447525249540794577284132390030935314519642438071311717618856518457029979984479226247125145145394776861195362444665813358037699653903938436815424962274504910955959834747512892764994158447078020769916105790855947480020910537210011357253648941210496631153971928430444255412651688488201253428055012078147666168382427342273417998837161676269950592719381669660083563261586314931187234381676867264514984078446282942241634932806710381161266551594395027532303991341995235495953927561584140367677633923726812463910351794989692413940090337999101814617765905909626848686461663503985921705493968347470937532823526505561433297107758209125759118675760461537512933972374643861079219386405914096253838398153430843208947303000090783476498763958936156459273727924718193150002420500128449290078868213214708211504814260932686894367516270522631614991610594314858945042451634550238060618282168087779091978023249130157853915853254199146616875089400177034770428420358843041681493039927187210334931469917439536344454870873671733744983144155754734794261574957493529504565053775099551558613280584650399003670074534917756058966360391096923814400885632222076954647702167916727600350844481941813886948098741181868402186710756127696994913547884995283594249943241912841341491846429732255106369328053243897815605185734130708212181672348750053383781201381663922014279125136231033369359359045600732171994137049827697143378739963389395901079915909752149241266135758849596121315207422121483322995486809752906106185792391937351153909329923431742930752213742562740265938209656533320769259538891538255798174261918005317335315577617568170501182682096589958450225243373137383362846750047624777075844347800744409813985184389591689344287703735991541775429999176205492255065605088571729815216374176593787973583273753722719192982948754365084960716247265091214129130749019058519728498474011734979904950247516175819789131481057415398196660524601366777859515012921512513241398337732086512324248687189562347170833411449984101337642325430073609447712948352316859998098371302379289955115028629799661437683067724827893162611372620969048900554740930043176671739485561133405832076727526496069211959887719463196570752294391553549740156807254349019008635071239572090526939119431538017333934442091864393632892886797972319235254283141264631848365285976544843741324402621463248692811624439467683537378226184552368907311870559078814057851615449643742437388230110040996223742875708054539560072886435701430525446096584444247582946674664617704211756783702578036011914657759713908133227362117193880578567791765286161143732730686906413294001509307447411673655764391709325033751567608059035300996618350754431621190215275600473385617055756538258746762709815884362060264281829008282584441387710730354766359754918751786922926662541021013440373132293453493694502095631610336969771318738924441235365983077920215471056633987774622428663862946100183893335879572329345180459283080289933764703254102772249363132635270985769375016359759426144503037935248623029212428866284351859317295682365651542389035127624079069733403680916838125174650612861566257928122246717747147100844195907694802964778076634701619503253001607644537041412194259831237126195900380343995065688071884107158102706152987367120167338560748170288228079084926531269944250581960993874309046096995994368379455668406843993021114297446047227087391018940077625515747123825314403518945678574242383593498188894487269973368804961658813780504502344458535363664806597484446498192620788082686039778220737140784866858432362091047852647199073386421151478555257278049765653540448141520602157017102010799869766825127920186959956990297179227806093005747454392908509018469297484815143462293312813865316406974200623926844337209618859272143383505429341741839012298824428824584551567237959083232296567285647966049957033197527464622014897083639365721740693742879952850092700603021151490725364507189370049269797903664823766585622401879690204016765190541780646377363169716650931740014249143968003872799714559741933933864231874445876462279547253071255973341646430579611473848926774951376158329394195456518531806450672346585744291194361178246325925939052258215537571990959177405464550998231736314785548893786933052042148288311806519142681120632137108356397217256767574981928362673473492617374777736771678146789271055984536847674330020011257014370759160111332054733272634745083349387717681165334541682513134183621597753324016180016290394983512174917741425620320552755014950127207204817511997053580386759108622565737115168285899352890510043113672327073365906824524458380373428298593774824525389021927238187800372074783613784009942935670920072726539553916405896980168054050644953037714593578384660342033589330923794698332999423647831395218058017923266723481851347727951464816075365970198725201291927875153356637997946397432675811320372448357078812112686392555846746703470152585464828256020661685128899040990551175205094422241780054902014163440600486825202445171468871255578222604959753010399461967922204400391284790440107121374994393462535081217486162159875443597338282060395732165536101566532242032634702199846691744498358068260844930574078596156901305426566831195537747289989333261412763092587181470823754633787710068626428310226180745394060076084895418162004218612788446634936087075161167743197558080200505914343683614568744802800453883561549390059979710723040153443692154273322351108074463000397140551684847682262579839222151270722190903758394920228087856695345673306828613117649025616880756742625445676447227591181561148252728930291641634528873496890520095980002773019736928795406827785341708934712908210906676352824621407006647039997427893228895157889652545460186495654916057430349145687743949926321248604734471766436228664552783631125944280718617369728990771076879158553893197843898670730902979259831515996243014639715402971231828622029074092193186308932484090296353225663788323577518443512879683899065478639890939938180203018941733400252686467490600191967926614685123017438517630668130364967011719129046605078253410272124305564177870507073615658825891122807191831516265540148377344652436322469500522825506885180562320910929208136482640140714859025762893316540073953204617973618690234521202177729931726707005310532548327434422813926751055122215166521088574840199970765224937875475486179173585041215511694752544297118326546560786680998041141453240953295795592324888102075746693372261545728910912687878927359682887881658669004330253555401890892543025074745512649829685857583558409373613092998579270650604902432843019649042385388116734091343202383947477665385642871646301157727945890225591002397117174639910838624886603949955815618617159993562022497969263852999109446437429055846115080855549870848550885505311960955980088797559738331545417885053172963869142652413379946809356283030514110391184473685286821565463296756851262981237783311942707036577306831709220404180390798077204493819991347139427244744793644128157391609745314642454330546901231834173174481630981641246907185532326082964399042969532362719704469956224933618280514318793167021712838543527146287915056442187308354563626631609406810485789398912361231456190001837665053934068568077395681990186035783834768859682730766051312479561009278726224296749072604235486524297123865193235332165441353223632542047013365334967732084040377736729091541479792824375819580135349659872165202345445225558323029040106655047836233737436117191835735057222483387943038801980353106369733028575966554792408250711323141936177491708411134002396357110761431136173707919738386146896690046724583068393047233422488651252773465661447578032705220002288523618053288721809420407345274339474141767625612528242891811291307103310165391445044725459529432424546337277884205339264193286745410992951088951317470924405091712832672653327355308769353056570951706033197667058933837841381441294395596477127660245960645698470031301006660699536043173406068195424443398875172071894425237841739258858343271288965529235362458863545870164309763384922070889045096203500286231704447462608065643175010013620836481797448832995928917628382323633344644181933011747833066297746209922918052253907072048275744204991837298126403423332102504874154020729282299141557517646491528681420475163229205330707446239367873256528690732072692928182106018855015927584709640063918625509184969328203537278975741548980514261869422730742778852204327648985379656342953041308399328306793085346640077152093948327599303871773439089209798454843720130012750414589925403234470580604190746310958630021040133692732637742780932267518315366575999780857248854994665158002424789023461449496216888451048753540186469778815468159532835882478837213008680066978053261698242446075416396550855170867030542878842929019131772828962395071047104075479534411240864253736577955487412997350462049183820866800079122479493620067434752132142191407240543332221339957297006835849132347042708015670176510347584672483645283452393698571318209923579930892512769458478712461283677544826518296010961701210597412689198346237061701994162297520562902322179621925800121197479383832796696205672754737988727037990240436034369510013209631778177891354323398670074010402959967096456733945537157560659360990932621620082640167787772339782058563182760698086022239282549496330929028467139048722122917220840167556995310768961187431935420810457419566780753507478445975286271476187921660142944334969221261152674023555945605434856812342618349254590224681907227760542863981391057787870253544365454422268374378566217714703519588734471265737166320108114362048078261509997562669131459873132389863336351042869682393594769859803278176937059366463425024776611531711611786939422134127133246646258166356249417368699282339868171764257188680788298723388764036041016479976652429764539679463536885714097051075510365711448371495384418413600522640839985093343056018642105826901699682395270886588069046232202799673869422747456417781946570788588804230491484755415638081226598303975237998193905615473010093868000662459891929535647731680718335702880354336377279548530942752236931853973322855691393403469128584756359130730958768276211750677545990895182210152379856999737775537737991469417316686990895591839097282097091508040189711181983540653538268584076988363944153775064337359457937492701643348119546099454739220746876170928138791591572458020710184184274340541098964990401823650061433594594447600421410984125605406544209707059293549565330401741403987137026499112647442448122605730155042351308563898321839642965886541551574671384670892249878404870158716504752554308805799276252167226313408642727661650292797282865858145998773435541765311436370493660368680065073740856532220044132012141163074994874853979512185387159934200529046521253891733639042487837040683517311813999304392694046730845151011767299030200489056756215908759019454669597392038886996403521595020143839968947062287444656809454474812807845085289463768881375819132934818532809646164750893704744923701462646310343373744564531195881923631399356942617724413836265195080029286780321166341706855834167087131827931457243048399332883233935753324712003665676985736823996108223424210775979665833840374106562462012545962078039095721626910557740836714385425405575473472993824580605427035843089302511007765077225511056711604524677014496486283559678887918727589050769461260830871544041390450586321681192370377204384671147132360669017519877918823400240821369587486364268116606109632611923000939724072058317738878013948172902225113829367796663652495896336985040948089594498617147962562909716504846422900841048702007651397524187199496907702248993774811949478282641255609143184644433624237295706805549140185071681928274881877086743396165916816066329365926611860434828197741108174521592131572198363907898831535296957821883868936700734100650967592893657844040331705060307151727461350359631811267133866029771256981443362813601455515360181635068386458635086609429314197157962636981530870531056415101448493612797195082349324117598494596152581289841641373784593462309434296611038787975773781119031274603876191571283352436144099132838568980764913333236734363449644855042392189205628206498837823239508014109423577328010263569562344826268021536145499100740197654493471187031252722294252344442266407982386324575188467391610661463408294893350293249729277163825014240261495153442805169499976538770324457817588333216004069844041432837681406902564067395407579888489805186772957541418244851566560698245743183279438075429347308439077899833264637615082670808233227451779603193970553806866411060224672288745722163361241916899372244817058450470315052212590562322420328720540188794561593706809840921918886874870512075862352064196197489746085814919598246975823263737143942334276974604797969019845523165188829028823420435909524798010409845356756107320710146356477005095731732346588024605998262216691091289005884401130772252168746752733791434806395849028794626634199051843112949814723137886602122734267865197074314212416368396120007040883217870480005327649947999450003916675007271253972532962912780243568192094387281177230901200299539782719334541990636603949914671754416981335098456826681803746681602251408192815885464287256080708510310378907896126143710691975026687146290009745496698308159824366044259859461001913091588010397144054546233004406509231002024649188778665725464941989646517156567747724952757267836987356285408603408505436027657312510820230431836394714775745177109720322637568348208896502632469425497840476666056229086659941380410171756526834530270020739738033477679812434045972438546294616899275808392017791520346282452009117512058299076754193078651412307503033963380885114537331437530956786576092656378919231447575092829643294236753614321888338578156255643940712810529313348429385339978851999222030041955050722188149168434519740918429933072487924993996558467724899977012586361157349651494410269151629969694143098050889476625262186637822633323072364971440331088342982730277043766489972584160126132678689609237865668208317965437258738723800787224057482373527839168367107611668728802395462423938236628601314156888111757134962078831226916588490550522318105033769845894199264714365115849937975724430905159554277653603111124455399781744780854488517294666849121674532288876569120725754945964951852929388018075641260254563105394511831626133274815247754840479062662922153138602207377963504524013790399313239917850195509677103116229282680965845348804835189453670160643477309206991791818826698988972467517696566382922562343711460553600901948491458414312369635304414123306977467801395053184339197277412294985331101170066256461639518581182289142213344889618656814713796384895266781097215808924571406413797239060627593448885317975090474937448224867675449325683737677276739722445135900901603522923817074723748252076858541041236546496049734936006343818723701809660492007939996165388012595942133195196254633482976253126523192916211159463390499943681030702404070748352136998266814702446528391790091559017111099986926334969523215420683949624101775455235301322234875913066535575532517994084764793423388005305414774624159889941935837238474718371736340539888727376652642729446389499177979217404705997133006432313262601976180098130018587194824264241815492118427206337789653743935008312266743737463358721380396475565782563414757683909962622973381704997493779158287351150981294183289568453078681339984004190376622883828334540691113753638126335017787251783410614225542315935500266077391858151586262097410689044111858299160886074565582797663362669725886530072953354039517254145505865051886743229053922930732058915064694614007181346906211238267673584650339192256560645149208261474569387918386596080694673716203093117541144139700928300155025683938933193646797836451678848014534687172834287139767626654366743230844281717643241583507757948327916468540197573591681580343029839481747259858562923746949954882276743534182058783251899489050880964547110636919963764746661525498725062288653752832716684625680636746009952869077628877883249477065684096090928429428417206459193979279699404663150337305612108015760113864128089394412317643600085580490107863689143822519184916340063901140335394070824579926106039161645122812664903266825834893884979283827951507791681823491170912651957294265818203167535780201977624217214517029513393957836104801638085895344222952789734561244081270327369654536612560498739968774773233290402688194244552848821966090516478587059866904201098729609055230265043410159347526477176540479943026598382369602952589863967021516757351036582470076715746712085242325023815149486748757579664172239351963473991091729885773233509914696904346398752724112553552243202360889266064987694526356701633534038127940671367158342860343774845531238119516446387113517465992152686646115041054295526248387419176593349002343367749477614554681789324689029590090327103390598081776450659286653738982616225454342730676445252643746908968567123457906118068318303123319303811377765403596491259648969985896018132571230368501223104002546290027221276316958778914678252149186825905182182878035166166535815562167885557651980541714165742983681641353360586327833531671805012809198672775957234756639899037598549244260269010290708704685299669035764420154763921629238323753503609902629745620789727069935262448489953889106890289413374288824609972367346302023862456231042539127057907658312267257590714272730262529886192017274952083002581003954443739280954839952673532704506594754949798002907718329533358709963669291822513443712532354822547158690494826745029388874802674578114835263724999382394547748381822399450664376210075861456335977057876364044587013135998130370284089390061382722328912601501888413257044997730096682762394753895435445491866201226985762625164036127074472662981027762947600382555542438061092514019077894413655978933228910087360628072123396506257298011331208227239150982436599300085552176471277752445028625063258068188232125055863835031245928959542414833836983528939171070900674574453207574443724659571720623785058065584842342737312310288304528908510634979807196265610423388889744381508625823385624943260894612676158001036463790550082769255113115874796691942684538690957980032529096512345622698623157917329823032948220773199500497106876701279244353250683584834145105227546624815823337095589447622515023430912034391929903998358436822527765219690621696090427254036794193733419043839410147012443495648983949454885622768454278997576350498589662545449301929326107963646616942219601732320132023552163574851276628122896797437662192234038068739445237267771448386209314939222364114020578572153161604799941144743298540210255717318320979459313295019076415554621254987962121288722723685226906099366580561065392788596509873183701524425039562406449528006355220743430254206195393926858278848552970636152306683416040357857147268073189682153939451238861507141981956327133053211839220445880263714454340288943123475396178605798809432999671432475865041573826904252087657586150190983547837928152667635855359209306899894431921886393822864276779927852857771238676193568926287454979914384209056270618793235040433774767505836962059511020516001684014429798678483563694371133255691972061649224702026351471889847360349481414014459538548153753089747984555713223553671530123633736864860250048521913461123770890129015253669941569761472130427206697107291903898189454802454511287208774474974057511344092213597742810358776731381974101144689283936448534814899336378538225018395209965652923614049896733191388620351761597971594361692462540962146957069472465449397767352327923935421370083460853398278067629119643201368579115707612622096066641680621064723597853940489228040086454979128838568493059872508804557395263112464225581236115266733942681369734806497379803894312300524129615099824066984445563659006207112078700247677528126971480765686081672620001703702330063697589975065176718263064217978546737864199152027407790088272215652770304542956721720119841911999935059299235504367224506647673251505436916368749091938890478376607466106701863360131231232669840382045827824399037248666618030701346920283370030712370492270127120911421379854910836962879962284662395140232877878289401778001848391519001196982004808656637150884388465276323737524765330360306594612169604815748597983427841859623947055957159189519806010305272389785460398717741605582655997290173827108921150289359841881247888357735108614868956521578126151816767386230228637450847000526336332873424216875997109147072535422934334622723862893354020782541580883874477084194031081175787808456578198156425219482408634013859071648602167170610870714988867809268308677191552097329173890605405196557000726202139293618728535091172334754952481197958373522332061372166573737987680067308712224258412912019776063819198129078732904883635249791599612686286927491682455281812804314591440811172063181234714139657868186787456814772131923795695964327714133097652859581653160008233264630735834653766374783471106341858358665084368265739105714147559964058522457068176254593533295702401234562304478657322601735656211462500380374544425861924965594881664816216575841034420074978031043173880721576358848522921817172449325147820124591039362037909389270161072170874880589333345059125965362584420489605299030955953088461091198078091715679990393771693387567261173884528350265963922076074477125360943417192451018195032388945735407436031638070755526841554677837739846936606344344283860202325915196928053120851316514015577477850009598378875344536354311730968331954110227647678770369662199202728020089893504868510691153777403341650329878205905255426325696777101148872208418118260087873166626455978443298274946773285572609639007580192629182011943117058814034481088656627182614281977289952880585347304935426671962878982804074265738063198624222377714107700377075999285966589367345087431506066554823842703840050215042557584123200138892232935651294494620833553797676654072911293164219945228377464411687335234635086304186308016455047743843886572004012518620487223914118603055285955104625624303916508172968926491704177808927926445020130041562258529990427776550924697625958642291918562350895548913497727723449122874366967227459365103019625581724281350328629029212684417837055224802037426655346107084996782991217104783177953035511496832636518951356798516347756662469731720405724295854802306270712098832474362250675177654542434980372691905220785067149892361126600319530414484558665133346400912728038430234289919307485045679011547266709390057967386439303169164889483622114544140564794594642611557374611939911375777903018534741565902561844098829290285576401199787018480767708761458226630951335128808028016190502040082481184349784105467338458985213076325462500042555149532983074270699002689153788964075236936073488043389511412781083760160152113533996700495573654164095654765964231890767487081927766725541602096859060294596580957344857220646080063574169157287537510193617873921277592157649903519976007342240912712106566841830406880813894023955842131580338871961063890959629819284657707376413901328940871574932462253679221548868591687917299130542386866839479264735707321525092304137936431608254498938917344277627410847372837328224194854032922650298222662950584825047224060641430572539898288910967052936856929266540226007523278547022665794566548012584287890187962379439545956930816693641030393887970687677567368623035257797062290610291077562643768797811373106347222202497934421127808232869861195245329698858684830328696109744891131705200626617401137054578837790345865672361160688914473731490619965712112199932651672951828700507299587474182229760353860691488839894604698420196103472405961737564004223574245585780191353219941834377708853887826058314784855767184252913972653391240836195012454094863816135458626381940923325728567791712039874332467983873216945866192539055769574644374122453220685040365939559129193162294105440313699241754288199800736664734820773865530105802572771150892958080684303465471105533620661715253547694301399191403614813186250120024513261320419063365006894853636359933483041415592312878321152016257735427633660983599876958773529982618458356641388894812188435811533922455924010688597791035826333550629335359926165191479525900791589637777101871544012907447577233872099044189940861462906789505173625064165304431603931713143134651521898369273145106707017352843026877091100573185914467014439775340065904188847050448198628690359966303445948193079392343438002108638044813851944875571052521400993773478585722271054409498613597212842283400829127216484315665792770833319965128958218309860255942445738848394887279202478681636019872264440623859020715900133266628748188397086901645153342640862390862470117421624954966216077144538237199524581317233046637891931130697076769969258270974627584478648361140728106943695315656736325647441653453140257531770594721668903136626305751763793782204603654600617291650775911614747317300516473014582749386152613890743986312463154129380688511276954369207932151790459030194586816823397795942478440639367008791025594486121739661072109377764495277085309379172390003380248353014013166194677650749210950328633695979063259245031126857923810666001948712921359606805190284178020854775149320710569585403294661507542226797164845838736869320935430765914269741382837536911696374393146039305857776624237678007018514963527923544562768804096640586375458587726086878407393050170086799848787779408960764947650179226887765234702417813284406328861765545968955489234037032027280013468174901152365999828373898609680779228420570364394113702109207495816520799991756370454822883154152701153025644865173921898671201844986370359205703781079070689265637277507071765962988791727513189798410192500846956038609124934329254862024039845189559070524068397289235740690512384514313534467414187662823527702609142248188203383818228837368662635561729022686514364958669310946400426564779631649397327469899176958426242902751532102260618577043783004979241500627062360651091270232623818290442606099231076028158282672001733829557457482622988814211924817751642578216614677642849972517790766343183446717164603974236158827770550416156502457340216295968985673056803616827883597738663225630328889226418495147670796751252255101635683927086773214834884916965608608979058943910053390461914588635920949865877774958406450218139229861380041768605289229073234436701562546129199321879482052178083161363803866369731558258243642473033435344073765491410570561533406240086851322914627366973300916204302473365656069212596373321005994448093540375292810417755524296824850948971962568250836297910106378872809441142195575885787174517894680516800925736005413413562020206066598041078274553437167935766776484941284318083230517767622462591218450797025569217496036135533065909801446499006483945961947022255975935933474186235427399357890690627172421992891270002796183379492874961754710271002617449257656609473846970102594049314124461115742388366290570164490298298834740573052047635852576706593134351497080488670521966336801059106903216210424497740825142491470222420655985635800384695535120247353732514867527817990395534350937966838019860821938338486458389663032443548013735324100732011909161913119158525878524981355106613504757533781969090722370008941918914448806355661799805052090131650812239511970645827231799376180905027987743673507561348989784095252338074585337370358500109356396656296519507320611318836787859315197068849641636038779973020223557380627346520665461967858965913142055613588696685885922205575359861982032404036563784407247055130021354494788785561453748265748425663774431326763208006627869011104560087166894036509363309959663224006090418706357235848972943528144624180451339908515880358233334437288106031226268815375308832739877291743259763990443934072814774296584267642640966969858258834377048399137628872668238878382224918047570407778506118783849660714835093364991897687613926253206280410991842821611280698999720514271646005546489655880105586018026198482152367603880115772243186150100539706403180128898987364741147793133231084648974453157597806802917367084178518333625381073583276576919129176584550003911390148680665030115421300706963489569139392048451591043141875872691809308009919987819829950537053778316737549117686359563522319117575319158361997864966525071404707941511910882651641866141617331949854721786356790108953251462059762611084695842525253259282124425302440935763591069245833314331006803897324200400409406377416917066904172349304325950140017595360994660135126247479895713579805101886401180848714397756175203396500253874479924957055592242194504592607041406481698622013096858279771970946041806579840170697235366573325019902397528052116065922523350295610096488990505484750356873907007614044126674750034896308366539975376984352680293281970918607505829478284314192529384095229257836307060561343437939980658643765765213348614928203848137972986703803678790576904689813878775804976776051228975714790425585187798577023780333862329171350926690569859094292675217408836345793342348488237572103490164187001162000258634354683272464622902493575062603235624818018170392945339021120633447899494256953007716507148659224002155725359041931553933293078192233334084710825221858635621163228540581259427364462949737261179794469657660254559164836657288734325766497305182425656286036403227615067338460129926672914204164447393922355257674474283019093635451389068875088407246125781518544459979338847604025946213878392575760674849993174946303063421734234689498000216259284230538840893982253836958584677172812348478277671398876079692806332177969046868037862001686091218011013376028494962578316601059013580723204133690517781054983422699746314277324590034712830579253754418428684850529484237621105733210769108995827387346325118617083623773830226664517970869971011329326812587669648598744868377542763643878011888283155990469731800288511727523890036800293604347452305016282869794517547163310976049179663508618006587332175597552763336094096300854105592037611943366381085184228042527639264201899834920379300573596814120777378237918163448607777617140571681089489456522654551279616058779396482739100111566462999230037747094280599099446626947778288990068324605925718910766610829686138791646994894456168300931393526867540660879232851049415027270706276641157449696071782731167289935306113522906605164054624985650826486670983646786414923619667949473746701334869264665357965497016601076246734100757501099808096258869109275873563531462540442333329714850834971590722314125803489308033545387914336727351045256142845125032050114672077493575949176866679542947415691510913252830413032339651251488367292677004669199876949442684791509394645395802664035243279539039677477415728738772307109751124080915697682188407154655017428448056234762119248371269405897839255562589364375466108480004875854591167830222066096429730048301711959895885787855726065391911827774601273243212500512579083035885563999483261311641548638594513945806930343066319261880169866391150404280623729294240401765465223085499442923707468484461500252803523601120588816629997817206996050916840521046092264442303103004747669203025584701603854448909295755523506899966814190677718100510264952454284723188044270651641135238477263093934046732056971616665084155085221671913336291393621075141108950899769406565520152447915311701265785898624307721188369527510564342164623467211162622162737263121628861929941693426171981971607993750769262824229185797308980731441754306930246152779062859947514148016924673968446159734334486693504242464604029718558739855206946690418932550620505686888491462580681492626064493874796857651792264441121988553790074227670287174182438423581447531868959521868342006219315420045352140936227345768112900380258657589660893511622368104669583881954861613960251611815323684920897081996150292656738392654374925946938747695214322952214937009864901115356973457084621806468513668188430647878319897482433166333262414875580712477260034259894806191118745771670544529205345480402956267255864544541710632862854827206334422890802713387904033410320148069957453083888637068749618825122730590151864050953586492039592201179483452220672553531402905086545095626225881662915194808987296189387273929197043991295456645801198749051452123110853385498365505975612340797820073921073445192416447762585723018709465667396936581015279601731471624504221832918710896900966052216237865821059511934193654864943096635995744601460743088849485362832038154030894635040226911093978723632196479783008572860478529774549777500194604547779324336674770202372431827623183268730168059577239127544695388991110954561055632536535784103483738930978739501659162708191828849358404863738315098086559975836650336626048671428622440447553997676277029531455014201464852350993195289407514597418014877200271115998156357280927545031360866303687509361767414379752104007819336360864610554928093633148149667937411925473951793375542440023557098129128691778282022772126514377672095698316415092625312490105460359629338001669436642861471392957255573681220221972696099721727957147881455072119960947944551309784358021144292265557645861857691975861881424872682876989114229009256716419053798561020742136827249799486385235970263249995184627417847140596739634369705578639581928065818262988461616209518980042725609582307133237814515649975354654784545082107947167497258747897695375324852846913289733337079966082385895660850065901860332823477426651497493781553244608582340708229635258782357466808923073348877190684944532682601986665332966795302496350215925433756766648137800814843357550119676301505729108297882364535037147807353191074206019878710010951815846561173376039579937478539908183482441612576201465772639407018276457950294478034090679721490035797901642581588652975702242496589401805516122046814508398437556500025069751136223679562920910871653965277768939192687273185007707990052157087645793077551562123568907488716289772674345627233930981803946657100305853384780550819642583845636115276112355742044942128625208342660813309961753061099605072146456571027845777297028960292137645508928311355642978636900743902919996482930046304627849207295009273507719785610588278798991029952421084042321310379146598804747713817557977375317848008694628657942978091877261606786673411689231476375250001061977897327265820841567848120314905950713003746922071417673327573603934989318866610216736049578253914836481612789509469167893026666019983660721824657886490006711694982169918372925391211428022967149252448678125952522761215651686236069775504358131517779061406909285430924239990924479082285102036824314344728436481620003615641153104762531050889221921249583562335535290773803000745569996158290744770102565104904991583834698812677438166478153341265802729277921193838220982969449991343461020883586438824582826492072742694176549178359588465735289529959804350947724258151650856854171494506667541742230969887009074899270903814336438345183352965489225769201946350644227541074137809493900835024035947168676914422380183097644937930592965524701873866427760576123774482800074718482032027186171202464479873947753216395793585503694919420763460621490347238011696442403912463436478636708156341770506333635258735935390689164505796924102993202612804746270981108389406936496577785115839904370886466008500477423176619072922468318213592704533601390591779688246129186083204440425888513810997696384178102925641708986360201676748547857954001046103011695536620598884234300109130952714889532971299282711442156336000292378696049240827145222931753055101362464028122837255511805140712342254836158634587003896859491715815484401013917148397396914302561918651352825606683245967736448633517983948671709773476834282245695931088668269557895711700767172566233215961833984087977275984764656936218961734558873091293223371189253112541344927580559115518691277684455518942773850502595050436917569810922981329954405247382834855121924176720001921410141239175502185838862682258543637730303759432847093054455059823217091663411740910989089192286894344747067538202130905904884386990886097718381938583844070443746264363677229510711087772807994096188500462259632031725057905328911773566981866324020371352496535511667591853975274344148726193035389458027436881909917625857824896744581374543883195726721164154867115845076302864155873803685682093637986000983991166642019999152737449991579318944015677700964667267728527812892414013263288877987009596322590241693517620580253758262183436888399677144958087296322300459065109571291809940251448542142835296944865401814385608435583230353428199884517538575517058266395450996675527501797457708395969048225084623253762433971714313581388103008031054299649120743653039953410841969340647640857815991645379338891431178341869838484508387566589128457425579509291047193937002058106633063012015909190292716318525143969127365439141617688458991408935116814352481371178134391134147504539048899394498395272017192669648385587551010949480729223652457747575683771731660394119122257560053057627765845304431064209920756511609558719515643235476512269255764194742123697726677766983439461593081890456425233744536799977034014562504113529237869188892453780813226186641060889099208877408771328986419293922685598110446477685870024313569798791607404687136064941371380689806511001256000497768206565471956462510046695919395502808422934252670066155826574492586304486668670241538722495867577729979760117028598622831563013200122033984316221081581389106262766466854677466604306970375883371590932341065399187406115090333926965687166835280913737951606025357513805709082147742027165747083071788630539685590455164076374363379276895445549153450041469106842403919624887824294595261939821353542325979660594217194882925632843087572456119421161079160526944268541998212704543670835728239933329518865728290474538873348253704192278543891094814159233749605572308259678741523117000046244692062130106734746495026375433030288203948977081449288694093501118512216404564766825286710131248401664069551683313278143169748392995465861681470736146290865363295753825525145214519196243733607848264531311706288520798159123135510390008310594246104240101883907050139038955459947261663040346974947922482505907089047549053412417292184299083019651123090783951142726415281950735885251854582919710622436768023124620859696249790192111495103709795448733510702948420436817476601444151284290212339884849028539413482901042777164062628527957251448150328686663762356121350542733778846194834955717705678730474744736305580416635619100535999848427613637273326337651170697205563973225103396920807606367011712970959770870746548614648086388747516297906904352864918520857591276069888031353919097664216567097445226919112616622309128139099325547622790254219387748616306778223958967656198235290797945509985943997600455692287680294079235600135108706954400615374157225189541860451821403393607743291342447034449861308642080271456230599388896829242842937216073682157481418414150426868263579850542336059908488721816477640622866661513186470699509387634237002223812140308762861858257204700884985395335424733451608784436758217636269990467036062562328597240816572762265517999861462703537744244080514126337943337759329438928173101685993811152921679851040951697465983307034620439025639311376825098393132531606214025038762098019553685631132535840564866431726414138243092892533035655792248293281247044450108992386104207567291651762478456019866453043267763812353561112565096210548813657556924744469478521680180034740804798224276814873035829785292101822244250552265634186888139881090581878103466762109006180460491708051219927031153058316057438035562931398249593763583473259794426060793573884275470718584788163516446587219212878608801322037557883773825303652455188250710324238401584114533809101570783047676221859990231063727799276338222608424082440055342794750826241178025786746713456072365665841752479185168228887368359611529146232811950287322914161922365971798843539518631863065428511414125013177275048599500774089574853977384477813242189367650081468799667439215097830539869580494789315583494676013366060185458463133763216813523009629145481962882298910152171449235354154534403289069120085691358516695083196604177631228088314851156526188617930279264043717532768155158279714427530066121059669064253291514165099392392557043860660581437540834449053120899919295207738254588533879705092884150583208426221285967096347903485455945751248378473031883211909320913354398415226171776618739177765372197544786315976225736572205132448188178321246081247301684857725487976081751946669730906665778567900688945467878668890933299901322496602830937838345716200752029918433433067431921606277287224506252672975748354015793254190088234700753494043363941698258388615110784390844098121574282646023052165354372335695658940065763898252698693332884456038438942247759239794311611339405539366557606280077269339458017082676507500044474158961964184204602851310358143390136347598383129221322445249616151217502861124021796068219584127504967268179491275229266846343015293945991197533281276628880092597532900390307492516436333214273287169395122422419888390195579949811237323652182595466550700178451765283366309623090819009616497311236629803063507206250774416069613987874065620636797342537728481666866919341345286946562819170213046907347229078607461390048709201368857194486685225105315399695162404903504077036492665151560598979710745566732250925868900985111543404015743825995403618014771398511666020245338927744189739441790321649981781883446281289588690954627469209160168313733954227169369137595597059620029883863319743131411041222270492183937343697981617412852100785120485372650266523300378549301539644226287830461845272874352517139908724544108214649190074787875727625441056044865886904359219373975374266284566922241443695525484960484276851596060819434015228014253576609466136665111355543532616109436433240998442274829246862964315674851845404088972728726397796368347334402324503401478387267998136549756188728820289141726725145877570031029033645904283054958602591041047486471716171368360027855977481859863377788618263792414210799451822997221977669901469179983058594955798902711727362367487827412351567624567788821807755699115270601184558369825381300023193152608478824554160173312619457828018611850384182040364549308772002352281966633546702569471395997026177628176848631951928300545500762403540373049819357672027197432151958494860697563866452448232836177505381319667228563465584856959534511901522763529846252529981421175608955681199922330799236161766978507075158507428115689564891943951237007859451801336104799957908762589780972247081180339879278169290021648554043703497559601599656066054181872820689308665917310313877080437693247331638590258390401887386532183059940155613144847727292815094131263764378472153146162206910062668174735870879613132671661482802766284565580939805223122512422636215097738583194371988052083221868477903503681384015090328542435941359273145158546004383944969730610363236615693915329947250535720133354359267301282026008788528701345837999438911124623768633555320793698429613342245359721625818088219758820028243783438005809484454306424125223450760209339454064670207931800909328993133583573167241660301945642943286702027715126207393512265971650709498578129128640689173676630865947950201131775075316089837348458008211554543856932779897318081843570162963295812568884738603290438452882511587620757306904930896384103415750431114155151725831294240559574308557721938810794429098911700134062288143837444022091730231764402301257162150460532394374877745697858451257092522468687541189770930586844648376516277365398740997573496261582268301944592672883936332637374103191262787089554178360189831749572816388072707829837574347998376814135756190216176558014183411132488028349252733915391572992095337709208056561079300845318331575973147299115325714966543481572184994455307132310973726772474145455828637829415362698258983167163326121071633016023766938151862015703896452149085182847119585916345465215650807627814680939027410106950654969604067900881182277044403045662590352615267379009533404099216036086006887450051982192488951665712235554111993982231198961914970593427073875536294633193420719733775149707132763152375103056451233232071465376294717682267243277450230481812035997988014741393037062025557342411770610340566440048750652559737914452898479295955078530719751318811961321093873293525582664802916507615668790147224171298365344319962237042232120497703038993060571350882132039822133335414179379299089495753720517138866682751055517956503698276551703266622328485777649590218810462898853017220416459030273205081833160966213302255844218143098164420279710402010326175087179851220692379361093753610159363373798949734087346407980259145653260032843913814386967386064069465167426602324663013926478581026870208977689787910708295359854394079275378623502295377866681581558310737904943949339784439883748379188027728804336267891460061064802541212008928663920617935681237746281758647330976500518844919885033096643043355442482788248970048855782001050299316297786912153768732189071029351372685822187886013779181542058427586353828499601801351635739985828641653310533657882682184543460592405642553786516239208929296278655702498703146046787381015844549838596103330412304194883166066614890915699190258087132490552360323417804461195342146103268333039866097807725501587365242701016777645273980458495322221740494291877477423505270700001780820133916377529393523870927237074432680856323176795681670155492794085791388095281792642289539747628968424106933336668115824472562364217200701296847324803275357249804303182994845355095336440449620529832429633400314022876172988572064159706536508215265707789681235262462234460624536043939142664682958806964502254159225702229824674639445842684875242535218492146960878835835834881289215884757557278154710428565692271456989879631680146168162489464470381664741308930010217207681429555212540236804210719589398426733483791392142434146787734669879909868045115363178277283422749544281817239948132480819277491668611025645646077083153319799682022884390964620530301039346374226675331528177597075434502388418033412698075893102773305714553203452482343304238861666541272781602510996703609194064095917867908431703695250650756331733922224517634704132548815796092451869512263503254822197372641272417136939523861143873489320608559416316885473021314927349553018727375054513694194593414637146104132409085135141642978813564972296275494246022668542228966876013121906492658403176991505534338124031712166550747903797026862700364814465740616613894191495182441136831590892053470842621628295950831243735854427049110145028324868495255127626779216350100457452116415350104592961859180896037930963515752396529855207927074448356128489269529243589961711708812555692632352894098275459004108126489730504289658895131011057168582129685109422320159851984826168777711630878406989108332446008157472055065451411278592098101648312228405437274095115043466939373790872817823040790827699935925114427679426686523077105044994990900993214400488227869108903477568660915762850717803513763700479298594242115581990430758112384838960207794910064897131766232520126355803867814127307115604216773583940397750894868722919095456094402717887182736007674286927446083919825065397471384746168537414727625088216863004775047428717286699016290758669659555140486704976841245676214943744151148820385568371159159813239437842612934805765321606140706043936918521097452897802846996344186166588201659557988537149764083481505841237315037304828552154004509523257592247573728511861355527127534583705269162121050149924947900674998836777036321773268552095763259649698302497809021779857983612893374431677815953037641884620331422071307178520587820235685105181507638714627745168307808318846553377602306355467973644820952598619557205667306177908862675947185767865497911968487503131722976424524351867486854282790195627680120772877096028365587063347505851932326983107125370937540294123046303564332636569570893780675466045035513970254731705022751164662408387046478479096101920159539941958840067304256417222503306287210014560983601300371165462065266689452716378598321163789575626504503180188606885642764121884247342762513223197054925021926783429859599570551162201386063092555564278855678460183529055421029394575626772841648794317092587809946394853402294421393964494092552333598007538260758095375603732323701262985860231348376071420107504358940440696232082713010598422552282064314404226498652257016384242005156934100685309095830493581584756738593149222677140383786575665552419525659355386335770759144485213803909764748460784862569033834555776645630907597599460863977362533620661491113847743127975508621008725366670929752914431283535501257632878159721436123256619939404512907406210770280524908024397636664474700932366540646918650056160913507526579877505749978196066833974884284695707932212336025393399225729757724230553589258316165908577610848417125066193458597808717561592098466278156159809822209093842423054855643221169829506137441425135314755681436991188637102400582343671211887873534974678970119024941454253221169727209249490276331069436245657301988015721314463374408235368225173146264152229531979592496758424059800933237596102054754423893247342706289462433067737167140651937506077646612428808947258657855665487949350264959411783978941050852095990282292020972477057243948875375745115123837710929339329852005867419667902927463703195967087795284915067478153397241427719421015974067053081826258291117748721585342391011561373336337883367124443444589714563741363768472226714697041953933202927793402745271622175626106361633426630195690518762850004795995792224604206260870157663538236904999818916925307779089121898683318231678907931726908493286454792260688177279352798548308957489592942312560842087445899586847207215926640275020624010813926612530133901412008682688573022960763925946453881912098876736821899816439986509991194069325381557943197804924237524121147748032215082544897069968179249081827136816313894817809520634557207630130489406287674452717264367109744258017906750734059628197407127942253186711755199888832502254236409632270575040657137236531976116119426797935166378825515282709229426746215625022671653965569586339380142475505062187621634585560186411315356893859058137825061632489310310072949652112917177183293088501812673211843826532022386857249777160399985512558025211258011893063205369402319873855869436098581894586878840230100918787994240925565637198317765569481755626340540865103868546463754978021438890750964137520696401455491147053768433075969876110890016379425757670105721841821414884326127143402232696979590473266436225920951729384820231872289724834259152453872626398231892552611336204038991075796583227841736274948308814079356800161429051711797685876310708044441990806861405199936060446564763081885693330234166395584315847256965199130773780578936457247178394714206103659604850635350548106407737769171362870002929387737865708981981301689530629238515247525185503720490759275521112559349319629230139376253164062347403427354314724471163594193860801306251602382902452636949059705996639889862136463119001862524918759668890219629407648606466932562702260228315067379865589420377752476535195608226663215311407006734325150070356924936308876735424098915938213093525209987743520102486025677793174982177164124035245604046329785549172192135912858803681017276533463079871859746040890139402532437959495383351628162478067152497761167036717657281926638970228565829754886959160925622362405952362447918000499032223125094899493384687787083264861199203112305675479431952455186419010832442933505363147918139523900564145559649290821827820850493346584449318041539261610967362265686844526649963202309852051566525108699281580155378363990619129582943059178373147852323967958378660252164520023372000256819671260190425771446028971402010064106810689320024063935592335081698929567670546265411892385130678645578433694897480954570123791609774457716411381696859067045496701111692787481443376131936070323195928497099952470722033378097593724256965113567529387596673056105279260393618482563468635662651288956679939053696144410716051077635470747895686994825228764890446497392469988562738987070172113858948684266119001087836929624316014148977019846996763451615854331909749179010042961524420582765778493679375142555069712259668826069943460100481953050578991412633781720390497601861185887973543693058047898136469868109554158958044622055181744534127446850688194217373811134041744553020184973178433894688269214912142608191248012616960331966951370344946905208379445015286394392947765560425107425606627631888346681071565798596189612577244234924643145073840481631415004362527570778609628919178851982342202113050069459461834167486872994891915521843030284243520969746165489320273718442790227830648374000046570994648833168143719217741395902770465196899153943154984862273791167097826320199951581959783230953490918827767893615143190004933272286136342819758698727337260971369896613063734404407271519186634170882653309082703782226732027729015942842249655457699734404402479504087242007259635071352830600338134748382774455411593585472555430188276750758074922023888206396974041067693424030598835729220827564299592602492464784374911409514630460459154544866816193846636508018227830094411779773436305457031491692420835416743983825891459847355830968807924346652336978912652158873416236118373066900862462651391565146255508327933553230935178467302516426338082761789438497694857249125496228914868389443639854700843920409026333841056811779411532367181788226657772951303932054719567097136260521313508250036458289325623245349461560124472196270951323204084495500763891627985177253679655798808624782531778070229228072699603930443948629103491929224461244614936716531824342894198490695671910854057260607096112812441422276083297675170911825679740576321332003914191150573337233815738762755316813821118496328450916016942579506745484900473109519927160089926200472791802856006915293672160044253476023119756387461354453961598735803956315837379970814285975392031741702770614650785602784595282783706411140555140592759040767853359843365226459238719901944994807228848440016962284305389854679357735075760941234283332258896021882194809410931439317889001191353299404538627376221354202438062425786948395698665141431463162475760273113519771783203275984015981527854529365714257963256273404090952593217926942924152609968819396066943403591256078866105339014490879868189018681306458453194611913328076034961622977832876812334141223609149365242059048030391928753176535766011749065060732669217113277921405935263609008572167545306490071565438276267201946555616736939900656428331904656763126502097161521518174532797993531158303437011189706685958036994902982873817066470033100760990588412301829560502305569425979148531712331812508076140457058026390521386582374974299278143464341059628130800830466296586347408914072342400414798350579852378282676070918767946992976777624270431484531665466228623240359895827426766353574688746202256896071479656828421734760357236679693006288289487334350845542786559869943936519502365225186779771918885849010797597507135545813183157729543230225897999700599732961382259003198098910873624807003143632412607458462028978698720198205225495094667143192086573185001421426869732396859694212531615412202823473135740839156039871850979728528383423308396014959763655486472637336485213297849157809594357940347694061426304196864109840080984091347691932309368823822532694832766920251626805687919386575037500807239727613525585786288077729796220683109424092525892761048545477976883923970563714614097006801485128564090249677681257905507679989536217675850420140645614335965889634428192849149880787001849581228504787036982819983949658014281791775487913695972132291289728782682618541312709546913067528479919990815835126469883761142254020480660488955544679358037161604970726018725063814944953712633100355215989451333303951131708850046879400862927545231504254452056230077341315696135548253985913094945839208656267064823515547456588052720698472917522637366758133097689294945714177539775275399602080250963682420561187804074242847586144814771921518807960846742792333609093587042958002275087435197836341793295249110209745780220900168955312239161110438902261423528756674680899459768116921673451024527800306323432684951616702377981171675042663169616101427792008550615686593716131506786144377244957072278654653396516865506043478664169027833254277800208629064399331591428538475875541413524900889368574765956595606158923542168162254115174636004287590359658300541797611063177912742999945031555578647497240478886483809884283048618567824197105738913464882387895485695017990158578395142325452097527687691319165922514660366606200034127642178171671917431661601566353151904830258376864274830655021539492577289240632766526565651336869221750531209745751172842506314300753458846249865671446393527539096448652095712076966270182099750962945785344883240137200295859213119697686231299782793579936359607674037826775524417079596737853454655531869563989285195950219709043229843687478677334498871510558724548086658287067743617468804067786268853715308467350984949542997179065633415353793841214326420040318325733659320493764309238394991759767876733487812049679573369103122807996734150844877632640604104745479913684399023728294726303584111167634616940119752220436247828741917236816296469758409807251429978915876291044776624862353982487481861353136297394980942117364605734652590204752126221014883055328098900581785570625006338352156291586370765868852580398884372202747591652475730761836725409412449545893699320772696823927384492506319974630045839200656141555453108881859310663824110450378673607688817732783696095662106561977677802534977647670293496807478687603495649285352636956919855062878834021893355803683212986066247218674913113935365628866052868003337822659498057979196635468273051113050706778925116234018436010531363789111027439173351099939476309255913185441107913038349092568811340296878197456963208517853436457510724908551222477473098656700916269120340760432857762697494596414271168438509031379273333970331345191280718101220086419480500533710868154559468212088525119978879237777587658975270020718837791765568084490553705324935161406846720866374816986874813211295205746657941652265131093561252871447609902018789336208155594722266573470860600575748202469589022466003633985434818880358809739405711080657015654963573592185556730597107423632757376066132233863128897007511888405171608327859891499498732818952067290679646083897119346397592203178255348441401870700736364617239262668569069300856831857556724964679099043712506934561158059927569931211596153760566627909922964730821929708944135342917084909979356249014266946366834955104208628173294099888750329721623927113866777065476926610292485587397047835542168810587057649936961866539705788443914137226292003983173525196979274520202243931292257021575359264671742312077925054793938387188389550973038707759769438359082384769315594070272363644222630291955499675333299884870511050147749745646388873436910782285297636686075934749375456828850124898612031704994381553631247588680066709848243013394152431137421823950491941585076724172492121107418102993888083515447713683392190159700703210860222572851003963296340067113096482564123956258426545025494857761540626960857730111321211904054665935877580090278872778879389770932225032543786894595485810123722883493240518331077142328238380525379669366164994416469575605019538574073901632550314942727462821167229660798684006533286123006969648546893881029823120553438546539289299470201692044895229963940575581636360983426728071763425050979482475798889834467203221408864879336769486480280322633778297767762000046081414061646947300446850036267045086255923982218414054860075680316079089019549965618185591036810946995523115632427430304016701277545400995153280218048572850104726597449671009157081267150835428349886951372896509496965817275951562868921597897414028024998963611683519847103134975719355568205362835642327632552803520210438853159759960267485875315720159897654979008934666909147519452406136591346257567341901757093172450657812661046799872098732683104807159361583218961229925454185966217052739565502374469981187492150369536472377105656411257116731173675943630209147996317277770515083671938598704400022256953489874950772386786834159083666378897622241085355025219165267719788526611337441183472210220483090602359117503415489358684735756821921249693374552622231990641846246847403800522395208788106303052947150586423790425066110722064645775558015020273752871678261790243078140276811579312190617322739727464606881873846419016602315673206420574469199815051714990819819587730602735770959786854353885624572951658628620331934074891729315511039125317387545987161444448551067129477756409142838443933494985088533483075889216743376109372474611648597770421135786325003055729156007180883638168579676168307328046229634172006209450460263806216463424256340772175405085276654271439932418705746731856922746280271188707298463955250510385451842532490797471630539158168925927920016475092344613664735721721141401336967706987063008305930798708654771378763045701983568949981578151653980887003698935350285273338895281002172497756122929704452089021897874121404754822323126433122131726136892365607802643834262884991656323714445618941358162473877865696819382413683321324617325146004734937908269103832006541506857667561524673555084330689664989593025926737250080423533056800778137471707586345637079292803942946406647220870299534033640244373468278068207863296689907682708280890028456556576892863941935954153588718626953436044520047961477522537601238203702249503535708240405951262769600411946491847219760634058208535914298258187114928614014416946107433297004139482222601989809816726330626904569871203320367367450980638553643741255209172539157877239828912770446569285379450863745748018362858408543897190905806563623926984746210777044274304156619431822341477935324261751970606117859802703374467204685281461848302015335908392443271833081246885764318666005795764165325803378497569862118569445651536428840602035881409716379754161053347570196052459329177814935996273049457365189332163766202204278493672954724663823238695554111037004797127566686187529427173555197489757749364003390234164091876702120123262902157299284535613962991016858961727045250707672298332475007367436968189325270471748308401131612282444369065171024737608650623064472204866616662195539745892223977328794326269444634444666829129643166635241248298952589679741951126300941059326447248503337088864475693234040510964707239821522271511536503414407242831845666335692005807008142791119766259815688331059146074145358560799213501110200141835482514619167462340307837806433651283356234652606182752985952387327264247431315785156575816262517789347018991696797588101263347349021906053110748878813794914760896772242429529313713561561539971617005769474459080253983457355948051968537248595185415217632759564352115749367462524433511462532754038866037365219553253338822218296894646804583557734001361686007250608205096711020758872785187940492190644338246061877240062189430541255602736879907171304730367322974336899698526392246007241233458794673356384548518803811567085739941804029678836271092504760245095597602706849348328348792270400945092978034722305749907257018108417992585728063413192684365017711346282292426306355130526942552981433830425508594105077204498653790162955943694476610851971573313171141007410539013402245712267699997189572949707752239716160630737259691599225855776585170486670412451817012549511067614013870470686606195218565566079426436799882019227919516254686535029784752636938699662499326351476936247088180824693578588862205899298274923170369242415639265016009047303096651521014756552491180424853559686033016302959241128119563910783446415174493926573831100928930926785078016421921685693265201901454789211988477995388350498712210940402336856805651721384418237312759234289319531769093410060974517053261466850498771698996369434259911580216708495385044754093706384087008315635689027127413137549960232098286507265889004948228128006780242470437454529890110605783955566457472021959959109477283668189450576593141907880074333188870583465539053937774249711344909110941599362524816241584360246795204583187220279957398417867546941201301393208288162787426700508776237938771179898492748968966134379808267739581613172297911447625287650186183050950223848482969215072672226376810239365026259594553353053196105108506474542100688259882742778015480497521070384364380466097554828219931062867859381129642213322302677650271457130550834710727005315434043833139797293967791369532487724600714147962947069941511089695908065862264726071379448376632951567475970420801814518745875107015358524686611522323006743192938740383932918156013355364412674632535211206254820415852267111766742769565133851590462623949692486596809763632933851849344305386940130954310887340864491530422921446053801524487637214876449291678243915487761223090730099635943183462208391217202553411186823958857533797380295253120436386473483792149897154162678431686626654428093531922005008124507360299978532980281115467009009741023133832122344630153735065491392863424954487119546802050908452003726785384953500071958023785624884539174710600180743288512521248153102368192562403134757704548845231265075834630721456166068779484820389086931994582451948133265980469101599807287474602168757367624398298515492899946739995052770265808050429444012239920438529766681753541627249705845561789787428118018008139036156304398858860397312640528042470496276662254290090938755393455966521070205504870093719984021089613970505980298577805554974310569693052619492537560132907644149947358806370588590056519926800374584847623573636532860238943349660073516826893711060250057322760671686287662363712155611112006243764196432870675298959302230790216431359472530782100767509250419619017933830452162879590137899123134734836086647763714555961255280543187390736159338302304737282556274732891617065877602254553048964599508950411132439703950103613703701373789043386709899747328797436046754273170630596140228721386145461326790694619920883006508520088129724092390946908191258371372280731448718605060819997258134138744107085997321183021666939991358247548673678094927114115631763054875172148195430359968690490500183582121661981008715286232338241043947298671211925199129822187621066509336853998003955146424996133789529470783327505313155030033932212398947150170381080468077956149741960052228804540253922998621346850838269300074533549283143399869297638902028121734891819074790871505685121984790686815494887989440917799443675497171246835980926061096533250547866213130706952892266811983414840114785450583853434146711983929429623867533332377978351671999450990579800370518530148613348497292217864216555815120284769099018377352627010917256795341292575488451738388584143594837426638287716089867249522892563893037203477857294552227658340835944033661909835272158851597531505277240394734623265227548890006618792689378055004185474392985749860334675453195875208439228431388208942599712575558560671381081866451459396992781753203407446347948729522608863467820030617061995140488823152150235261404794822094973472361140006692463194816718291539376880024678638368056465105547067895547893646231221672248378491255788898117303644412082085316053437144628587955580427552353393044084234961081861010238814838478601333923760056462986318904247763324391592727626618227840056061260725319141668026880689789698961246031120300398263459756249981764006920984528325870487199576346012165449547541651262606803576529960311840987469320633449639213554356387015284067515914821418383433626401811931029127974933287831214380026566228050994995000210088238630285077839700802704873767556372529683733266209630060859560864316089459030783722869072827403087654147368331065376159642320293601335341514600338980951681522419455670965456343306766315589682898826414353203739907807462668866102287904684790899565621350925112166472007966764299876954448171824719454376073204498663676820990786099516940023239245238844459541017964168359360645896061146570050676023010895023850774549126054621776670033553143284748371776778933757485210692849421458938596555876388481368487468796270845351452129983274038234892017693899545709103806830788085014532159909942074509223870581932053453925154995305481107875123058114494588702596185174601714396135147905656807696583436533228993486268249155310339101993572616406122810276800856015918291102330543540003744370540779071389770447167060746968558369733997816311950551097916124497175205476145810153691839463078916006214714164806289738351172395443145606257707946474366834060039775415226308291924038922092984694598277796173021921954735831561056188985731636933281700049144985999364158378168153989395053033011894051014469135914370144588117452152400057733900306938797761758286329663855562518318477603808004647373211335451980398300802393502825216123395404287415493181662901541313691329444625905054338395998877718338803607669926555951080519868785521377436537941961122894100779199231480627357756499485716015046321704136291203377531008485106868404349566100011264680464626477539399361937520770422038695355866394324800138392514356247216529869410298480451104665906133379907568126969033906613975478825230620091808651655256864272131260361029616625390004643745069668211352479168471583706149851388708001417704734125333405444892011491186087274550034164868520630814963371883600068515182728623195555715252646829914613107503725436161698422314389253457750759007509343117197672371500479394932980791503892718456914669067925714087434236569353136023243734207250637118915087206903992471851362794235920398738267723161646259356008623522263765779084337989142137651336763169258508783089974274973219895620605208196562808467022003228964932535473094293217023157762914850062557530799714486598280523290400592192209539591283429350419297159058361011882258021033780746938001037441606557410755660365558520046503013554890261441604545581782868184329746595880659024987913257908045294921236319115332326361658400962231298677799558715108428863596606772563500950600548796719273589408433337056993521665339628651087027840827345866407543458085674445655527229975601804209181445948894878911358756211529040027595726365252840954554804643977290856847992214210174571791862641039259303013543449462502829367675984870291422076365698925110527944984816584667438020689643871647399600279109083539946777874740674206629475306846747160976115057859348097060863268937702296485119162655058786358233034745887843922655702821921863020634962805082149887441736402747979417198396427345302922543404446220279077602246049225705368890918181923773201276646638721867139738663303668521321116640376833988614472699015037720881377044870892969596712398519614770608081627003131876300428518819468487429559340811558516892871855248356532335772244034953367282041088543488690282097713039336620555793445232776549286549963553321574830419303061275947569614779247976214891271757607355995806093819592823190504261560486689807511211673999097746996950609175405808986430102990944747142366165148609162067393875066248739690063554365419193234283880354655195376727686264803206774433191425532815510763934083064014527940484011822622626568820004843833684825523633817572885282723428048584282767029427809842395284863542576091245768723378921889548989790599440884645471862381339585065514972746352725948927215471694357401723155114634075239365363564861120749921140881016492901111207590721179504957304950515155467587143906684306891446788590899739474207115836383936482929151521631553662998930372442593451072437016427426495413716699681991324531170424379609850758643903635960727568330423803915782777088613810574397835942578366074315763901229008442764175927506304056949239926312045472071800659638181309663096196728834164892968000110172185283374840201375889061092601368873178644977075114444561756166117633302340360146376117744077356292969891775870311001189434819470498988053094733854981965864123364910908859314934391559933196443367725862184445215928406703010558767789566212551455511871545079546511903000178466276311672694423856603310593826437200271413769088421387083205152404223583367649281709800179842850108171770224128264763229716472777360073610914001821369951181420205108709986632083799330980662309172963009031674458640349814173917601152963446790102142850265221856204054083663871428130580749751347859546580778518627678976845504787714542570255120472713055404575577889808949571917810726648928608275291773771313782504179647538997873099588587525263294886780656394661079583323343898284699428172806729253374593884520557682992285636708300164391244339793864260609001562622233016461954004540714824854901612402315111785822626528251911828490765086283205391586139547494862558829532081765679778161723286941325108643975592084759486327004047183799179580325510126269565872335525254089424872261397978534971041393814013726383541074744051608719852402884381380280289745631213243147337594913248580919104407016145851092226098390718151286282263122265704686387654577678994158316407540606328728613301677639446857694325644810082731118723357431984541187789151557741651590882313787771118254041090353204195951542532389891792904660054172597023785938547202228421449255632985130559927332672093170104161811628099747812714588298104123486150659500167164415223068614684434661223349832516925110220462176607346193935767102815694241084390536820281683878094096957728788270468551102074962413877571334483461874713611079682149889312046729761995931088326659069462492625909649342856400519078898974238770794495144333304585624564263462490084427484681636391637560202441292948447657599223284343631078839274506519285873235644557654236605149519113353418563844620774762051672994017991627129407312621963299363587683500907170073117321506462696278752560515066364701839173271822956417734732145615215175481662149223211717059911432587763990136211270060816923570684470568976126103984115345538497269373658958459339084901159144854950873374659215413274368375618467148405699354227813290531243287387351835390487386803478831318962117066519033010152913999310375144725372680610706047818598206461728593094479307807205375619748507841019358897379904426874970952649296298533225557386744326351294534742707182712210224982070081039375965719687151999621170494875406342144260257526991871894753676855167549770604443673466733937922586687661830491405245542005036081404725787307586470412008311705929920569202265478484017251535733236043786281206775708774649575847715282417816185224020724030447142576414860851864642269504356950334782134826042191986837643668913413922805509273178448472913494751541289093482470382505833225992059000019633597645860311924984009721210959081429938225680341114502632008565204502724210169729765961184989312850863444163475695937926747571439512257479055571305849083150388797122138617211328965347314152563345892958129863235499936227334306382370885082047431783109957025732084904120494941467738199681470643551879541787260213351488386756503771837178647049359205862482965633775329202396096792052957146247929948338092334065815991204027295809301177963646324434823578597626654329621754676825327633829001838459447100859769455468230585335785699514295751758118950345134433791362220526821511121996764442269027620365611793967069005898741924149180446276182482289175969057698236101816067389477920058990542915821722003874459051132754369911955331444422126065804261034419458093916422877565255138096007221646527027207729523369849919276814129996533737672101736057649087797145997081173097576857549139645192040412981838298470923737067335629212298449008136082731481036558125184688624347320066738930107969752904276045787840416740143751871502328112647604226736752463223733334910543125300553212150511847171194329409113808137449256869886994426645186656294008738699206532842833770750328161333819890208715985678131653954359059322527292181632053470488246543599787868115845835714110761915592126897947182423004883119176223477138387333501163443340851687086804763999246638477025736329113953052775078002677596806892798260280233064796226219366895611151554648883732830313216478186333144006533922039809240746782250651047030363016485138211771373041182517267241563229338852726334546471440369598228110131231240419558740986914225820648615297944769632423975117430779108445347314100097059795123849112040689653758583253049878836933775047284890467364284382471379019549215156919351981908626081956052551813149801051767181030452208729477374203409374369856687110531248180903397015609457105111121781818266048700199642167084701680782881175180839571593880719067221261373806602871512277399863602520725161978211411682074189330495439376214315738238725703536022205188398086051510018555659239607468382615481683086051371710168903416318236039798047107737620474633811438317609381294478358377345763559457653021808991355648894842169016745698800148109836594726128859370301419385775517040862235304529567577328413980527664036848376639024877385776504488890819447071413198531374135956796750195977758518736110253512280674130505990391710372583768482535701013046845192353040600763549409484257737953274090724329742735765651898008453879219946823211401934342735022443983120233621891953807102588130837733631543205276440611492997553763287244451496806082555130595976231728124561824215140485556064386192515381727115860245646995999075874800380830567887462810674420513540030544164350308655465055316379002418176569379815311959030939577807213058679576157394355041788529977102829315008613839814706723952523423155157075104127744037055134680943430248639169173774765416018654814466322455001517617672881157363308739582360069474357905280038901887670604037510717964256233877984182756485693054430211545547503453331129065422831287286186523572921307036144238075092981331533321335183214609078639671531870599374498982900534624195917381605800114696250643621720961283251064478247837046458380137012761947355358502885609356915673229986038385757037274012825100047888220440365616533653894495350280275657678122880332162995809920480093961393714682002454564046645881345647501101652052980386079477031940089957939207978066557642566688453253572084862252768556082607465290251236594484219423779273674104685288214027000171168229479768430219826050508685364149959321649839695777063063859884037319215114401794818063567316408294306144472570709052962703604613457719014074348370960227101997175264151099895565614505104585286571515287279642061174710284697666623417783939098346664571701180917355809373007737026391767867476660168879947502786144358939109666459050824742359442788990517759977740979387310216883910896094190759905885385720358784527350505503611132450335307992181667994102554827851991124689661242095993481615246424644016035340863521243824157303054474855528715335757203830078579619160548998441743457497449629323977310592159992502032493011293956884349476562382574559937108490711559777944551559754280863424514628634775001727605870455345236995762160862369452212238456566864930430366235707486398725738092259651516284742291628873032269647166539011146259744840765165091870747232142939009575369826284237578893048678317009594323933708489767992860018875533218278511840140301835412087891085364114097697854335079544240269110630155147167104473873005919448707297062166848795040547869506958442227297113318433302606192325987194491148851068047913024698914620975714514002006831872283977388138762970356707309343777769288107728351617110105671513371679561010546520534458696669269155923571812086025485239557569397088651617346763696356088393250526946290665319233715038781763493225588188568489294399547709496400499702863932380005008196079930662635695938824107344671475918064323183459250789139014667917689657479171703693955445154726718408108945550281867030070101995920181280109097372914668774993386317060114824833069325809520375878485222334020553918944517072657746261964799743506083189162873364394191171615656610175474431928801843918911848277199897186388533985051611774071529703221541821214858148172221579991812597907725249421628489029536793843345109578857852959212565985962201389284915344777030868822667991145787227815937449707360288056157102301617653184214459985377883404294534313904882789905504941342393090320195243307068692151964808068016745171816114937449891711484521643644663142920772925374578921629249227652920873798506683793944782654748643991137376060713644509013367234604240628215574132251559428965345173686679377413971577817188401885868144893222266261408367774304920053534390149263563674940413530725340584604632093647662458160093792847625589779832542248527774188631705051003546435568353977773435227334369615137642914718928754773621371757141846410215374267827484853867534522499989420679286684885419931186407887794430340754547862937527086586069485597847743637917822820740206143407092797667801516164191444534567637485254613706567263290054010600316666242271932452294879135424359025231233318006891578118831101953893710014263187746987858197847163441969994816047379403305541512298913828505285666506859730654341047746569137089471325024194007505442836604020100871631970384713477371203122129118622029194427601577245550784331862058108288696429385658855861270950771662323779727909077692831949109288187698245240800716158102819974418290131227180532993465275005430356501318938030279741571491326231083829838491687376118048811921988403031448503108714647108504861644636946586554970147879562904658633518003844330004645262027035619700171188211214169974144577025799277424649872331700802119124946608458847329456532292962521275155889697161740792881886041933734464090315780488133519387039640246137386760708898245125910726663718416983124216163688365283619309282567039132797596095420726753519656356338444512956963562398274247787914130949917896036368758403131208584233600772719189219053655577329583621813645699655042884645746609820403805860152101164265913933384320114567606345663823700530884313566631434855643264217266335690139989765609912516755733662037342962018769764504416098136948533581381145279975288582390853043670541350498923509442889319103652041105559631974818546448286526415488303121730005192708140454620873500968848149578144453174703872779823470459836979904885208416947893985637181684921243156757368346334013328328667485297087657691895646270127139083473336158532288438291548960201519663107891402791055979759323880910920081184720235393737301172571637529603596473250771783189654302464659493413023665853089074556105117804793105538499733549872760634162051235741737612866981330352109157129844264065418734382382547257716298072601750066622951531967285236351995439766328695374564699086140410131112354272290992833095256931110666658822316672034870591982938753565631486881052448424702996485825685027560987863199751250410433715022388953339036374356474969284276963981575710183679840144929957018773683791480736050251019973290190267412924554888053184210643348816707276365092884513099541977684859909257150512217965891445344100646517453539655404419697716384934085698488061824568449934355037457191865365411708881912127712492881719944448507085072354731575204818370400619406951597321202866449971809440691123433887951030620506485416162854524184423524890730775565895382107753996795999541300979827763835481099897007651457468313293430102429096785335200607264321118791314844689195574441604421128037006071151740542539567119413295018327903790025080356517583848483193143408875138497992977999730476333337363120293178583733020965237837292316211306929358582814803393538217156942022944660894606129693867093080185122062049044967400135556590403381944468355983241163511668742647371302525759233535170756803479405357760402047471351861940299324833785657529236265936816821339819102851513021806540857082878215252915511671468140331045233932333678728642682430766249997252502966423718055231767847557658277121190349692969102150205416374328775807202516868914782476309665074935020194334670944421846471176784337238387585086796280505021238164904358469804628223549479005823694352417265840443936935306664537562252874559011997417384494303964133640352316560502045026808536591147616072257953462054256561784685602128718718356224283108100398548716364975645047723000390132855205729856594862393292887857459966716697462131632545130535318978885570661327641885495246713739535114650360370039061573347064166701301786125624063091417828066964359149580451910058240510609033861736375603767603128501691268730077944761689567424471691363888119511084286263214799360466348097896577630693578118603726816890098446482293235801692571416295919135708221803341011967070535282198603537098245705848003576416488660266912973785979144826308169122348332449922476139936616179162053195575316566259983117253579746116260218600713171068336900036231187926381090944967928021637308943245467327354357413726777319439921953385867556596241249276224557284442888625303574512039147796850797077141517156789855367991638994683625675491329469376695767027478059161752579573649933366291630765004240278685743749788190911833336263417053933231821220962405674037320822560892738510394499896052212983463896384398780147962176391705683597385191637408633395321085920913604128640718315461252445170313073285358145945049785754714386578001134513621596946958318995070366878491305682453220867708033980378536866970742584551755256685861738096702116110466967974972959314841771821881592208320085093620466912549320667055338890694857152414733416855983355856411687068905361344320878101458723958769242456836367580472768849027386356393699003930881089603246064042507631361910391662125570240436991453702403078448429978961547609294591912370418958727245805578679612267826274957086438156914638223083292909165532862610691551328783556949933155451256976796968071297421035073314971812350946093958945354868273858670857221477696471734865134227459784683121837086421929812814967649480976091170266938771364889410707726176220043823797229530272187111635366810233359640521009547256812233507677951901633266214146805938969039248718047615237980336381616771277415565510551543299955925550002676274808467867347308271069483779082681987493773801283721490507352966922002981353647523366925636286652269149838261015948515433569847806919296682037810869204091855095416063337451379407115957802370533783363905023933350939313069330024470849891318319018478557483749870576102091535411272514578169665612656181928884714372503345988022821576584001863778234809503438497752755456633169735253277909638290131599508470432192485109017977529190394076951924042041726555495299283732987519577969113342877092550714233252600708813661138494676290989206309338188056042887669729292877223530070946710229814296807915892495737570602889730604438353810414265095975282838455073598285914082557088365464937053874806134562588796847317346830693707037302050181416461087191903108358938179073322071347901919664096642857194318322680236463947587132886234584971726443841728306037958136627042943673553351791095718647706981312290402066670466822119127558969246218950857166444934311263848280384559342550284884242833671296457073480588124386669228543487074351910657435954211188649448107389609294123929055336411161677748061576706127761772710988454523026036694007675704118822146031771697729742714192540247079002927005926753705140428316053328155997465022858396355868741775190682891208632029089158081920647623703886528979294112531588094011857276631006230980820895061019653440087678803963598487064261086857536890495398110190381317542191570365316200835956617922309464898329093790269798783706213999937293527190023552843370032180586213371314731529108920963556623507164810540195934603001938236896968997022241549415237123327249252655459724438554035614567057143844375233021174566580052808807740595437969708084134517482325361200014826898923054765828224901345708039337133826134079725595099849270084662480486534083583279109203424864039955318530151569919807854068862780023223869719131050531009015806080432176690842095303296884113487605011168489324018636013199132764822452559867725795848986912414176167207285573937755566006594364175869597093696829626091354566029800973476818877172323083085241194801729739713535936569533864196869696972789983170229897278645281572110326280794509978190707087924699130170654833666976232485686180043720742929759931439181057170749077145985059768205226837277727683938240771088058302920208739984568115653040771417784938585459162219239000391110328369172135301064005217755771604233132229497616435964662518210623168123798131895936023737426384318214208812553802654789248398036309542162963785840012125793958283423871412884017382214005108348801733740880312289719485460200727977724190679644979053623524449498392913967973237198842774106423490832847836079085162457150770940244583212827600755689323320777407264653461217614788866515717124199724454890751888748216514723692628994972789248378890648021924353158349913972302237828374047827556461786918294502372488279948635786089540305550043275412338924696142918909136925051090087570781639528768402081821295172954808672462599987273580465290646200879300674720896405518545952440026086308560988949149821401026255823302041632384363090298723048470232927425573723102811101631179892503816274654236733145972446487666566494077739347218429172011881843404956029389371071363113971576333985866226424904361342105217035118140136633363395462152987701005423376156178478600925604743436749071212507805559199275315124022940374641415101414119111473082750633754709722785608732022434936673236123223867817599492604510553757420351061348166199749512146912371582788474171684675782071801275746134939464342046385509808672294991626727007288939500554510098183698788172225702183045179992867959505555197992512546923552564772737286165841726708243662785633115523240819095220515064903313258721432275461458162614978904226942942901352053933114849884389448094513020305542939460197541351381494097302515379391578019393073454246452166945601739203416844637190976548992267921961403394766848987453420774803422489871297334892094996204544190167204874613233732240148353485523468925591668875955693048384252056361829775962793396672694625706644891305863994624288493574642502433773716668678149233761724123153630701134531430999950132401483587973093215917880510328040824351343245292066968665485164846364546006355331020787849837211172767347437206614612700371865544379585486324726588760344674867123811593622926917713832828337369040059308326073420378933810233709790119549910116168646913557452404990588692490797751242775039151778774630045147755415007819423290267737109019781300586466218424058569956868233739178820134673454242882020490818379448962194989716281756187001674278096333561091210063429712249429912206763001942057647453666515377464737540044333703147299602084428320544723524566312969134772875944371255535814995907416267015791538973971878536964610334242885910906523646045738030992549892259827244637048613049516402336551623890523788755097588692698012569391057068679597112431181186832365227818264954732155668991733166314765118367607920207900139689277770665293199139418138477680774273230138217835190745467982757502804965037605520876305244462747134343764462541066527043292796014651225602814262598279481147479968302330674724773325450960836714184317076437657138015203553383314021354930437269192613229609324812810330599309340707641519601002706986858901325174531752383988168926243380767450656334772213564160715062017962087273237681299856334577372954828739547521816114595996525916133331849280387711785539413795845571932737263269632184507634407348043978336208977313213942860877521423023382729580498077535371643233561015758298812031408746072063248700770745826250052855153553845942256346868699464726279432012482440041830784125183103614785651338185987511231770556253661279797480834916081998177939208948389933076060566789541272008903048621782195680496421550587765446922586066866312063577805275813682923809059067404538378782428935304341280456838423860322806245436572887838729861941294322805420726558923194731246731258879738647887341630084012328654909052889255416843957336898732948643154320383559258873090854010628423091472223484533377408936445949988772897610456986154607433971302943036705335418207785009392576970617555956473753772966263369313232383998544447416132347775241534502371458264965548171147104336954723050297513532301489886544381481445181398047991216125601260930236461411966949765694008029219920534784074515740758119789661941827949303619420895498008991908871915085781256261250208740475601593914856342013942082823308738042742533678886153941987666091562484169040472479209552931455562030648357722520141335226127829607840469966313547721756781330997503863730571204096471496151233657883810888213523289730111181965578534785318032236395739716306421291946391190246404434695309007519287007356758639140944364122360482949485249026172601337801497435121883314537484060341193212716222779810614494365085457876438029933347335842250739705141150983460458326638389527787956885942354380249020427871549920802227939180159511330392373541635119658859525921869866023340912482118431801480019923077193603864409086548104771369420222350198603245363776123624710816882422534905387902925865312704553300673908978675945100932362141391707259859929665770767672686202857305505695603038779330689996943444042796882137133638480224570402784420867144879257218053768977194109220562202787182467483044029792720417553698331555626629146290760967378635670993555034157123298718803301170162927113035723082047853830767213422453421094150137879455635717652271363989120334878877136848265732971766727811907606917535700921273290838579691086526841045271119835971687856529767154141742673614652164388459777139940866332288132115945004007291938952859202435266166510284619035694804980577954228990855553537897308435219597984147100764458086525302486791188646558580292312306325096119706582221232113398852361474811540911321913446628341508427989337198806483354862279953305484897392594393330346795049734107389974546149712383833212537644137466710142071491531608117289722660222339921959962273845649059416994362026902069588764124395299193740972374253892883044862726935626639912073577567099880205642742358630035805373890416990933942397417051681221972172554889553073916822822728099588205327331984359598070309711116784753489266603015032598267908393488209502881995985573687251313246777120979670158072272776437440942222563536254437055439560817300541868787047505979864175999397607533071969760121825315613574569405927917258370942590655960618006066315241237501381610604270073590909737340436942134771112262411326984507151616929881793215737366012739964708469710103580874382747238757618247430845414483929610536308313388744077699795402950466061800917183258438863116919147765221725113479106997186275103288082615978695161861097148599262637086730496083344985985311012280383504631109316948330908107619321692047856198071104242371692091306891760669887872227452367363406859124617000053595641950847509387953183186619154850713594670976384886016097406541501489456936384058020586703464051605330209873555641071653924815962974002389403943989201236705544772775955586000399323896794798784733291228297421272975803795572811189582275868733767331645206364958607577418380318184127137356459190791241170759255249548592880914386281696896280724772487243557264378183587923174192369558949784670748201836339869958305941780319545372531646048139653575901501250919500739010913526955624733379629714111135307963690738619584966119956046943161795087429889363999794883586849304772588394941712756347555213335933829506964962433726677450804753961767891948624549025835253163027856155737864329976460334956556054082760190480798070149035340808260535327416481773629226643481123610491084215551374109341691702283934228861614831298187365839861330203096704792000832936658591374710338052840576189584876711332239516196655284518183587231910795360652882680880533051226218853825156762389994712481771378838823872644493390442777403508119136186559383505941703913104461467497938712391165376560544423505222712640626863510115769978557048682239675330339305077494271500368381782117686295730922012789101607859404568577186266589210672743579951795427273364828373778418661798405343751136258609085194558575701655161881535455059563682863160539103986271611034457455779287303522103045642001760717219925680840220847565314017784143121066298188821541023451503947982273038068988367288466965438705711049455892434869474693920748382041912081813590959985657563472959260978832382425480942390705741476649844330877254510096793159936122487947937091953968124315173304778935187540604608638574712873663877938776024630599052827028508772886569911070726267085436643313916438522740857310055211476205807902094304010132973968376285864588311509149306577419918442171188841952513788560206107483177528465335053985008233278017940664454837614871430261738201767413733427921001605625429330368343844883752116848747831040762562022608325922708610507240611230968750724391832125800386463307462573064418244994948138625183329190337385090757036265610206308947716659839278009290877597062449743784992346472273127252547574904981475624801459603596137986820447954970134863267394107698361958208873637940346384460356950291477857530195780657376611514214291520593452196073899895656916417638354732908053664334971753271762102318444566416082998907921138512206304852336360550821669617461744925093997384932491489881680723844807840086292921181605629200932179676302273654879026708539825322406521482031472972050747668134200407611342998310169390775985378752141132366395440046535142719661157599280440402833620246375516346738899151630165176267099660438904386897143827731309293867297157628553284780639770159772258013485743010437842498569295727133324218330716775689973259152096153420253332511544350178603468306677895959397528268654640215918459437306898905714419524538738503526886103504359976881576638226125972273298639152021202375308109262132795485383784720986844734318821386418734753072851996973302015372244653500844645517992184803381322323087736960174137012428846665844838638047361729880218129353682383054692846085487843596273598530126311982151274227327638729725135046749996955795676154592580107986607604200543887896808851750461931123844781953792309077414573707775213681774977608867808865706502470257400483225689147982085651761996309430889123400311884634857985591992162110997652151273722838812342395279767923238089717800990198400840124475783558193038625695923384776896747923214615670878967947339643673917702121069382150319043913469943346703658700349922593654000383922899347955288454502417433213804443824213619463797619017292456591643724204141995686817930731188055445965455496779930600909344764804048735289247990931730673735193092318383734747766368177674931553533497415699168026749290064138073675390377704441430711947096954807638298983282929137680035922027283132812806682861510059507754327094317611307581230282777897130925144262975927046909125321607945323218054995979297799869281444368423367424911301937730907946669123110588853108162029532564665349026877227155227343425213753014988692933733770113898742852798225219763210789219088255133718453581443449274100400258351882783491884151680981400120846797080574815719163811326823632206295667002560460875636477887478357689262967536522172442553349364049782473094566353069572486747474395379887166017275937868110658969020893980646471765444864452691084562257453849894489404141023144112185784587984148086316542207145574570505412414736978897628347962420977711444860090691235583432480511412096413577165912731845342536830162373458878516332352044842155809891923113787908790252793391552917670528806103880956565891524443635087945559387075721444850130442971495023431198932081549984056129437923188411257142661779396190585697263749142257057867056831123122630454732256110051739435058378032491676306776263972358407677194400604498992076658449846144207949257186636546549636723129970224764457227563425208910391283477753157538723393610653220466962925543583376886915331174441192109293521699979211648119823178954983986832039537899810950802589611012596426192144317383484565740104456575782911118908171216919424287969954501906889457154361217231281937949976105702994889625429855265453662598625011288613600028216740448977338888083223889970068847252624828413022737358700286501707882796252582478904412118579617584849265798618073248414059655704832940969065505801145323598775067245440703218381458162616892075170608968953594610794863989023532515145842533972355644420363569662286186675535715326282057936621790165108266736972678226184362024591272392592126127978141580394611342865633973984294695597661494518434417626286755881323578805853516474270792587826570857280465703766660688633997081161540365287267829124500933359092118450744751217507425735651380549577140000376431406680469730967031301294619378681178257359172560265277986110400192626873721353169367036241976524399885897045760899336085894793392227026833969959083710395662127748692813477561580211564778518023174643650861396920928003331410986978526297031964826868109648925280044138961620940407166587963813983574555325822539142224409262111543689621882295718305394572561947821090133570101528603054482567037496904609620153065006822303561109011999538256019810131070523083229903743462176751860711335939451948069050280522250676879010592743871238779486264146924044459392463625307244563012383443118886254717524504555784227673707645716522508150916588833201016500922963841639194272578903407689798940467610786851693726063365617292642399630242831431026339025594993689391919331146831068589799287286796989667345932245622153318614929730571966969772442025021754500728808794766278689870334635308037776623805637860501323259009465072775554223178436221212656641033465454447948064774578899077533542369934667785855245509288335378133648566108817487355901466146566369709513237612934152756467556977391337899888344699273290956803117588032158773037940684212028359361727379951675346004300001086866907302038233243777389492303519725879337480364132922860729773460292289718718874264855864209904024579058695248173976888124259336103640088121959249596725520838021793194286494883461827665601868833316841199032365711245083554113505490893751279673983567512166566503759607911454297385512960350004367829551934735242295761582580292572152191951646123860625088440806642284373549595280579260275056710874146549107090575639546243889390238832485493634169662524089419856672323273110261094639408922547565212321051374154879867122174978813008975295632121875946712091452685694118860275098965004880674546941682314025509477981309209990523634268404551322782734768975032507229703393820933431319510167222173693414194071961715916343411581858622702329794704520914796943140032135787535300501408225850408158331078110660351296245624165559407036179871724915794509386735060997054187724667762485689701186485704209272263877418494588743041523139777064804311216652150071796840544635227762787813876903665853885980424796334058899344040443246255356030863019408883522259695898124932954301945437614680513520886532196972562325064770959403770464953512253515416024705247361956404423135947457579821894013791669764125754260807032838369597493293750960185072708683405278868991636371228179081354242282177161806664257246598931343369280485830577477761644635835719804279850280753089248231796685473932597135541897318403709768955998398823329100333279475673889643259712380862247358872542313325351278120896363721037052268175782047648295211453768164683376523530404591367077664619850818559666461767155853422793006883989867718667087436853125516237675392655370895099084641732177270653512202611974152538466866211810895335190516568058642703736336193422450639448306845898676015380017426968273255416781537829548076342079445406726832286864149068519049046667107838787195018050769161234231246385849274782159795610360388035343591301532032849613746561800901017861486761580801505070844689429894359956111212705927682266276060767143813012624569012597949211007089652978112940327852243134297231380552721956452048743804229240623024083454323640487779333851447741037559144815984066456518953300709772695985414441119193977570642391814056094729549184591883282616435246558493574577695106235564425079945483337157509890821872423089770204558505297039545180659697963718684015250242000558863817959556724492877542807316653136447645643586947410715883994600009408986950939741059017902184815307877482412740178834156688784170426906350380546145922329907269562628085513805138229125266197267903231819767685940282082275977705481715478133820647731897258224096668416780378276950846353030567472781766929077988732221611955174212205001872226697075034338273239958840728951400953224945141172229630733117119897994877523536637064872580231809030921428529931396450721322099140771449187391286966138294973541526595951086639371146580425760913793473860518711649370838522703884654607429304601912221301054212720583223575466303362921915867320597716997850956444832613563233437718743522402341758153904378985031822731752635477543255914968400761117630614296238661759952477136238997938998743497736112453753310015522952837655921565358430289271030492438065489431462452330516652653372531550064410386601210269532477204548352549919219403794417931431892140093709920069693360455166434285021849213724683997664109238496660398429011559985274306103131662092692781810555541027703169888865251590611169684811516660276240345307509986926215651091180854562888619201261507525613920217758510992647043983795989861788929674120353554869523282656671176722004656372039064383399557284989016480153124691992478540685757967741286099800270435939394362122866725370891031303810029002997095519840848921841156762170017659985770759668874655300096162148977537159443260438914426012962146525673581530072385291464772667530290712800203355001912735555072165366797370168577929790839440446438833596406902682870228358762354128344467059771431805856222035291739061898008050864757481021722645818265619100470408275865342097835119907903053008108283161589972124457215713110739581281609023208563999574242497247426077831341776066932403692748516720878780025466492895953072320509508299217566194654754387497981332175308751364243995334468998542103970778658381259621958400497292142809357358701883672062976022774875860346025593087073160174367628402377385490768729421417322747745953524484858352106425754050195587450006272695980929558274012625886429026973068923975312880213961077035735341971610799589903216763633624486069655515008395494972474002580573178984988527676050113248997116436265111877544647558738445435560348721227054517133673505509881320786975706953035478821846897052184164302231759969966595089078532141211186724126483058453711173626540722833421551502303705513479459295781591695521493662209302606264104309117852673115644570716209817623222608510986615310555959312422557076619438435390625245434853691567520891080942250563986253876911950056841051479682966170269250209530424037631054518674052755962442154286732666499655580828306612545615026496217545610905331766046112541645156986841006855377262449562191586942078448327247895429470865866529367925205194026771479250158544375860441382592349529293620372024400928224971885004670745216327549426789735000105129874878269110669599711998213418685049226564826783158262490259356942216421777176101852518554296256978520028082369378487658383105899919727528336516377093779527673986998577266926599901943609057045797882327602465137357474255294182848526932295504129579858406825969574574391848118154410405547362397744817535655922765662838469606710584647590004305207217646181369736397085213082712737796076133110806416648482104170280154903885101722853934890275979173062146051022721793976243741386361314259585855455840735059509653343243196261445522220505365021459458891129917632013793874556593249688861356161533017941861527772755664603260035623814992534242461063022331957294428007457303900333503534822189286529043219038160996038088500484746347622595024542902580271525611004545463705259886514321621502982215282208842374518239950119633008200553050663257386809322328159494561382075859925269295543362419614312682035091741513142812771183912049071363903603009292718980401837327217045014487993739697669717038888340338734562038756918609500052752080265759244886601188314365160250387553269389146918455144047713950296121543192931022693327688474587912069765763955825215033136417509220631421451615307584252363718311973118007876985960898709535060247252836250189702576858958064707918219704516560210863769864806168077845941784276930828006567937063509430503470552379168616286352140936516390549788054562741640713712070268428103760581281558883446593200108032969438559229681662696375358704364669318569759980742105533488175398404491117297229202461304988532735700662128284162380833296504085068573959431290929333507250905597357504570363653428670130431955765677446072238983920921571217255630639893196629987126982908384118759122576954732997021773138665723523261092483106189834934894838936238745435769341370666339308747701861895830909264083314838002360710207215584729032266441320383498125103435452293630869906634617235046594252318099481395459934238727398387290965050917806952105748566999424468873018281797896154055707514207550120867116328846348832384612597439372237586632774993376011328411509824356873219723696675845862211188181605633564443269514763832030711877996362744584267932052226879802452365654735750491084081900301907375105109195460151615939528954304800758559453391327550915098852735292506156773313235256752007044833345149665802145774898812754536756085599936163828554887554131443122142389920412766199317293404170523969749354019050258317853348974705297169398263341841264135774860316757130725198959394889018539016748335267930526852209245082813859812398932771979391564000361585141398093486765260147178389524508236483287770867646982990982476591928597556836206005600914217912013202730869030953704464329126864369788367800903869473951550736962906101417865369427408588923965957410666947449826444740936720116606396163483633903342990737536205526734044231288480430982476648826656145262296176141920813424310707902922406329102153264261734853044628036330167098085476012366551951584050335071406842518149345597221182619365873439860227514688532229365268114741050288509004086130205798962574728705262505340005153643840903844774448340341218480885040236678185537466760877428774726733972426117913100428028021798673029269240496284719517883636031687212489194995828038553049013493370954497965777988438542500755136224186719995657981856662107181430996423669985923080573356165547895881907492900102416985101599074499329804499477678787216676012044239170013361407727520986259221034864108040457306429506050317374192973731244269204409565850763644999871228931607103863792680110513891807343473524266653445338736408197643966980823094140943831392793433540223580670613355079088856840417860390244624805858507323586002681437693839949625236399325277420629192740252765427005482147390737211018714296428361852529717824332931703957135522858366415058457667757113172335557752886793317590041968014598355245482413505700087326827731595788109009949940932354966220491273276756293546177400313932185109050225129488327861541458034335201716889184155854440229014608664792901175750456763022253102690740192646867822109234221878471340041138875082616865805597364549303147771268145400002844598805035896120692024946378460829517421934343103889816213200854678386617567453479098056815173288011531110821455099111939722706097434037025103392499050255546714050503443700725144132705193148399650097196906833661194752055005078675040305346469541281749562452961500776312513753887107942252418367449161954466561791263157484623659906499114590374356303727910018141361088003181535598454868390783816269479767092031103515210999062683177679399550477335570222340145809359106596481608950276895898418562035316837105871965503782297120038111362969300889554094978634642439015848162329311900603152921791543587479248208647615776977942396341165426678690418675906623600188223558527592560207145766075309874142210973904427094474092486360648585405683733479321466935440608702518868436251175224262864881113642319254201937683778807046593189595894719255494919194909483693123973843563358737361400131515474359299444058601275060040606343446168221297009548170631808607634919178743270315860796054614240206713170834493104845883014608590411509390233301042276895686711985662565532858235755208144726081622796687579275724223088703661577832289321722993304698498027903100793275427703992253154939207610346822325430564778218448454369316673182637159145882570081040774813187224017783143082956798334306776732992484825939996500132541463920520204087922588109168903617090065212119197007609584207537674912462136752866985096145671713606150842675593504185814795192673911060311930949097694107648102001346795078496147544454280957568130849330300746579365727479849813582556162694919242725375192629428212273307340096800765279497543776652942085754199336755838957379450887782308432049120640724337605369485132521475152620989445378203146740845812351180980293462784648495052337213787310041919894883769156494956451907436644109638302506457064944907788389557859763853272658470602658897533211281766287108105051088158132601122089559924511340290435750738386702947917637001140547716950565962941046756976696381737578801321977662946933232194996411649832331871847106921598164548895609251647260588840493381460728395706249007380703042761383666744330919682190415798426443398374792934671617713665760613570713052813796564032043514911673575908941428478645696400935366818681497623641735507061527970198535758187189682594378017439355588345448562670974717622622974517659625555642997668003434145833185600515233382968971960753332080744839540011888924643707097997872611125308095237659325274539584275403361491894679867350703090908388018321702520507110855013144408839863967984640389751734719438366954725039243651930629333512841092421222408246219363313720447558391131215821914568770653642658966325045997133190101680684377979625262201285562410201669066448193004024478719135546419291176414094802649670151907501142218021191906726059123310639246677346747856551243135997426850174605045398648707355893726177948177608708638172482575218873905355400650847814184179382547362577996144191219928488603502884009876791019944480870216893568494496670994210994517670937978572684593825288711127580134861977951738833735569962410276751821850420985143469406990564099971721570168155729583745117588980236004324210829644355803815323359582458137715250299569298924467088374314273718344580644255507787409503223844689363671886431953860194660612071208386977570697553015855850797000493924772032614313981170451622398425605509286076104896851994489452773287255319764621098156629606213834923303807069704715933201413590340371774137492359880087095371706280069658708249692063476436603136907844315898332920453948760821206422590869096979979211372573380909673221065196611800886790513149337076171231386284125542902033751256204282367390734926712051399062135960895301538165604734521913382320425560435455123448015079147712231253531833042210872266367928939412815793906438182750354905714122968976736262862554286088139237516284676453654142459445129648703392281015944219976105901119853242015105204122522955009787227758963589772483854817844189647956658752006307735411223921301131786116832432329179111661862006107400206439683485758412474090971447772636431947149782158237206794219368206542412775608536052243228773926796609432287178858698614191200731508371480881937891701768726491618021057712277873798707997439334679451544566803351643645627241524848789324593528173950716407401439630344014268545733880179748071171854972742150113805227173110128745158070339672966718359725107773477077555644376030592907166901848080317631045397974420145447696373410473313379654509620634663232181058514569162098513142674921165478636808216074405904222940803454771972110404416682862463481081946037374028778619575861736811530478096526572423234190897108937502363058007251915708745875537673735986569640876237417766269010888116998600028380423345454961772675724661138914232850654119181280186975928697341493726957421525936394069471050744672099221327728141775884081662380819054644485059306161892340922170519657784859471987936255481357921478147019459229224979449789124511789077846503835998989189701275179842979490613922200399715971876659348048588139110091671255671061647901328501348715685045482835937358206492124176519428886117443388078359325986904961416948167035657962548723809972604072774205446245601293592741307615038913732461664683346384337306290927695740736226611591697669624271434291433946648451729960033324051895761858736718760727595923020662427529838261769561659269822076254922475775097044946014407154801555653792544438361796646230467990831339096142021055339924502069091865734949177752050559657474360065829703234949261997591104353359924166619567195773722789257251010142790133951311287054657618971142574169362587933417004660586656197135714120744122995196983441300455848849016190880476598971618526227070359802236522784585462352472270915715642080600704848266064456812703384727198506671483441266678636292428024578967202846801833114922912461213871196303974218883054139674070313478918753967895928559194326687789635667263044423514826985244754597354850950070282457875114544742093846761720259640243778917249476095295174015615969945215694481897711164909289416794128991857202605614488874923563305426084781634439097708369674966219992157965754138559721778408737609919419759103623659809763670111784000592930996683381553503508109391339808813192157853061761738919171714736747950497796301966079600099542761570020184598443410213615818484452766560129375201086528660201538089353428808137449179871340415945860024905492595186935963508710128668566997243696771535229208578323887568510225106589473854708212398295457362377470627975154782952121190806381201876452780860198209704394302305167235479439434497935491956510805738772294238639532297346866160893506213982581635160568281174131773981592304362012476355033368572632378008802161179103987211403629605497758337097540020518473992591762648222697626351240458683028736667865322907324155141916353815481470349606864016228547436843812502433287408042327727614860031992542672589383219366505084582195639570560512559115336473434379973272672276169321684899807120767649422204554370745556584391963212177148294677666543179738593139486411804181599273258925101175265514424508756666164411745134643575778416574784902616107862885841922282105564032842743337728784450664674170419221429640893997287772111179617666928714805159754124226436590486210604031816839324320525637668131493036484542646010631425318225490573791233413223523400551176897821719826500588007457854876142620925477913594978560468321635964230661036289566225591609093153414578632566083682871596579610166705819120636623413742175086336576612256469679441918657626476081460690792629304510108846860823468633911761982760678920499092625063148515247747068001149660026432783777129530737136406483461359878490094828241893134125073299380889898615571327882553386542520507594435456561764564577084620855423288846676693879959092371077521887935417150426845170182840942549084320729030547049009170923629011189637256844538914634737484892178776105535026891570436251290546573774247943386143016253904937974329077050841445679518282921522390799274151847554577512932473959984509356084059333746106080442947778456051185402583733963590906915596372578107464438132814038186819824431631513596639077547692026055222416360087745971043447248139327763060920761641059566787704598740694969065316052301135232553654978937697021367845561671687005806901458575059190881531178506215071622894457885277727113826693067956479051491787169781137535123254438929186247927216937135556824545294700971002583605905471590329694928290904708374155366376740612011909713684006469485264857186016011701533644704651636988125400527356905606854681330834687991637579677011735272378476234941671497579294949808525236760114527685701001536018102079020043454665185791365354046117376628084630517416038725500712150335685703558583527274253420903232855410271236673737812891858019962347007184131403713645722843696957725481162521344529964821350560766315465550438280553199449566743746226160035011199468374378546735114209205288105819141886702464751668209618128944058665815756961407088398178466978956821334435813241759838960962643080240667473267204524094748487455610000662138867858065414072449456994233266323576884955492409545231593529104890415787213528325051769870717664351271571341276285612369706923946204171575594570805637683677802873476168312546226227606464806320424904631300594227820019646720263273257069164305010988982339408604460759415654788059112234931214838267567007827877777201440405924533657046921920125787817440426447209942559209147999796767167210153789519491359579303564160885175373353552135965425488992840091354289909199715393374056552062850947682671499129998562754168636809136007820922547956515049999014833585250924449211089819255010366581403247606059899826006358695308651589790072995209465707109952210344107223345716573353168707351043654618392195439591605258574403699388089385796565181077155702944616042270203651124636763045886806288129265677551556578121901600479034309691811296182423101332625080498631926193234487264540051349060958556936235452377371963735362545185061502421537923424353632177848794736468762764076551643697487558092377965684816730611111131585287052914321995797109288962814978017740089721141111904766548586956950179151637770542055338852382107441500265345343397505408340441211695418919821074559847182010185212321552161900218627651375072884645197724881241523626951684461952300258619906896208043397797127599384824195328151536084198874723925598838094554114992192321060141405501065730606831972535469311105600410524440767456703154199334406047544591027575826475754349386513729087753799890293443577300490943492886403934365583582976596793310613527620150595114906042480355504493958009987180077849427169081818624647918323459021853211149890724639559135267969716983842760408376659751901935858069407203479350032963584572727819942782128829953384969774864409897320070984506079801266505145361416149996470975019449601753829305519034731844915311774800846101085270938708951418231223592911624691804001087727967401188450357458660092724452015498412632882512476023610270063075797124983103255603386066702884669347784079258431073592762153583972730639868906487205425025775446462944172982950041574972362320727974093230180169714230634163637848719328100205615372415849356765732902724870576884184699497657468127989887792514593554982642286196342814948706038555999103348218639976046114960487245860745422081716280448836154895580573259507107561611486305449979068591726491745293838626721388644702173452986958820809887577162542484902970958632728234251357788671576684099904811989481352708982336847417262212020380742995783326629856699566319016572268157097208574700467240294712878898890842097888183364022221358547453001265014618111716389387153337670082589423106092496209352193103290454275352861374585825695748055956191476375507705589875657302181790957495304752008596288416021086557751706462350069686509594966897893789998615475285437243857649832637176890764959377300216501339062434254124952982304429992481787576471358563048282127384870241503411264810697410844078224727326585462521744867559078990715177788578265646015446298105650414647116375127136976605122530824592786670815724118503996186840194052948773651081593329588502731917266492126535517570139883077276668177481548352638792291389689777192451945876637223691715677958424127245201296608479941900494795932036940413878800303771676647322349670427787941235261884795416536569318916465131841824412399185174515701912520934918790380851628446198983666339143603254765056413121589068714781309967340698099704551429557399751673387704755293946426510263142678256779641675556752162000696568461451410069941497740824385836906945780197393457377908979628486974281110868984661225668023952561482933129501762006935414075234562478970242506418827929711690479821975041959697094394066005547458312008878571324871896542871955334832727649767775610599473487662375157794744555855983342653217267081071738404729661600137205886742824075880909334362453438243247635484585503701367499928519500404413201250892453640210270074016258012873725309060948058760495785377354595019296988533992368121468229604385849508972834320273651153778345127969708798420852801535262659481497674142533333674377858719619136781943996474149726593619932419491104755561615037663365839931246413588144407410208716649954572514528234382849698789133033913911554779281029142402038690778491006253796143496211308112823968623836479528579265478089927797657120866182449458390671930874502447552070528730279970722927132365320538611659411003106232996235699261019562219619737593831733300751701258131419614340471703012558823030878888534033696518180173481518448280619127727410440718761184223178572872239395404074731645621809687492116175211611999844719084342412066061052730909524081661684968334709674230644207564509871826342453580054782493224484964925639468458688453593269238836687483808348575060128641618342826765769792219271690681660128079698274122189952468242649156611682064125556521108533737564593210341020743501766350733075232197474690065266214918442860985607209522612626444658923909643794724524324502000266808273499635284779310319638939775363605940952107417931921556954206871857823903552949458146865298931105495945243740629619184028175849858687422135227312242535714958779729549569708691516851842676062052207630506805385188058664271289838599697669980577713939640805463148492214242850699498297689234966461115987930184144739662614157931835684696551354911518534862606515196740798654857250517191988165491854210044978924215645639675385445679598891420837405159705681018751014217256861395499587407438383028606926495354982059357943905236094207646374919306275816751137661255955402122318692616179228871694645087189578618623656551436557050057140903238284400325373411470872131914868618224098000788051568690782648674667115828092100260166019792993105011903586159593589181470276004212514225813265857265254115047285888762026719329455170544758875998567337254995726057357508219810642480919961165493169729916388418503242851660813984987381307129817529047968773266788783002907062649992894448503416473510130108163196166989781075182348155847554472141628548687000250288187646338225365089342972823767962130612404790182482736838189743123666747591389258706168361001431439013545100609940215314384013061124517919605234226547668555879819790003495519757669526677815055852942600504817407797590192112919924713043459305886791338888027688284129235855264934120314167728646423453705925023112320202384003849555627023700056946484304586016449408513356316723078176362763899564875164233089829796996273149525840099363713639252020843500442188734118723777267227615143452155588638954436358851261455869122831945980693705432504289478429922307831499011214556647756079766531753148539203009891890745973874730401576288556698419079592009807080291346682850626502981757347721013497821416841653568480563408248963068916354572919691729079344654567248862442131009805580635712852214582456031997040678268602342727008929372408373042925497311593605762078580900915380367653290201589192169440452635836399012867206795677740709640083332555640519462891605455990106261685053360150589690540388846089925228523852233623389897071412506107943216012730467068364901298304510650852104199007570670344490780142352326201652649616372634717171386639743492635233741029341604369598966993903021767841288953082387614881402844067594443759282387845773158103159462849725156823937254562226049573055407803230355790496810423403381825608953320521556343932858396665574029580177505069917282709628844434931816944808340455676021746281928793431338533735258670196139377250914504452815601255244936060517680301379726153375803528369779004348990394503102023695692898594658607272384533037667127663691309379137847751242530131875022923354708342728237156271230119845666392754691163114309663750638466815168337922410779995787730558527125159505929356777815637438732297782323723127725427345991979077765353396226033595596756017722448039010631539959699857947458449398896153199438286169607858462228609297394353267690087550942567066787232312688831492890939526614566827148795586055280775635586241149116204364981589389638370542843979599350130122201377201179467573027885125021612316750289440677458004247026242993605173595619764999153000689247091744178877615005021024438382424808115045042904746654084542267742613472020176581242730116667052555126755533620024561487580755025243308851580096726733444958573971940658143386364491864832084041963498623075791052712407242803681649331081723467825772708495214426374351431738712581463993242852741047724722694423334300391319357517814628914361875226003419121585165193501672134889099799991685352769246896406785853053101795775955255189549359697013014921526301190687660326168569957910270647765438964560326424419599688037451618963899860286809700363313298322496343346367181423599363447999146245484226250160218481817800855999493201826327897667996443347231548899666657770052163122407365653929724102685664460153606836431999854980548554567565769435495474121519820146713216320631094592278566886154969563210350803536057382868925542613380902503443736668894987994272164691653615936233080420880580308178450870787416136787478445210553814605718742452255432084302162225607388385778217932577955572830051903641930537121112798411710154586528102696473474069857061615252620192694549583163264769039658285812510467763241080375775106927564694170330042856716257784284191493180318223296580706315808372415019940976596557310532111016671095303212393616059524958385480914573065221952304759980994549159718810389839107724948448651111106463572377310172052731845429974629386510951183035732657402194438830744061543639635566989035351122200173936569212013564146964238821626707724093724279350355991852723118116542404203162547152982144264289715858715108686083939867617675899331486082424711054543311180939765641643926332597741489773127649682971462160987508966015082080180178878480760799845170684819158901732326690883328313652320506743492051841396715090837415059903337987478834476613029840150692332431440375193252098469555099872543782842292442738570240524091865313950208320034877649977707739700638996594542548765371112629749431019503861907988967060889301773931062048956713739099222569656535933606056975391358806491961585538904508730119403007702867177505604368978629791367794408960256658236953568963603999934824739247546830243374344875398096006819622933866019498682037454501792435367785099889283819815960323195158668166709179460599593995430635653624828399302440771161850666389971955586945350788167985057453806588591091315534128979672985798205500312970519705181344755257996138161430116316963195309815994455055119187802875079711296419278731480196605090955850696056545847125022089041592055947414762542757072706621981690876929626754945039285429489968011836308017996805311222263425348693926162845417423460824047710140101803050681856178900539872197311783398107670377108080158856438482098771238969386673371487363852521075137289350547559041569034878996111960765091275590091931500838162369257835433523753420381487582447965957094680448287617240678287114316545544328091712953354598010773348105442976779962950256982186868958381524223988655945104991378416334615878950469012862266251781519323915083284369367875701285292100182910815053163298943343351780177737973922571223888598783855495302977556629511414771688800113432252236708469569732502270247683893222399002380643803451097625223847922877905831795820496718344346160457889102883550824964347669558345507049919582941560274523118774375330136673170355342767554186701058475983603886015639666365178954067256740719528687215878961858053000932615061385336093962769175163630997719416515634568600054431446145235137396160104930086287589172847282104653957373499593986749330792252557630705855101680035548437158034887487098775046388734343085791552689624328445417360238856638820482165104634864901374642777115880101919198109507936593725300788054304754498774502857554195752070521452400018081343155453975365841428293784098978299621589007888175052951354607577389475288550336594419490030048622005111636051927476401068318924841232253312078243165324657905052845665052294261038852482130680600158573262612403076948061217062892717043365511380227667631033434044237807107544001218450561693579816834546747986451965648737596190775576153953280239695434018612156521853605986145816817145635700192613615107427807951716174592274045580722847253589149432970489085712780860384616987149830725246206471880681482972803257892361432452756188098091849937034591455449047423129735566855828162861341529572496500749050917343685774009492128400282407795434389984656376867372225245041314992967553430214638539009985767170517861512609382320418285641417445464095223445914805054373018367663886503772213086683411495765882354136870702592254097861822976168159738552601646586124799181448265488527361649551876498570124607042934745708433384305863213736847101136058990491855274245684192956520213340331083095860772115067812580713927277054976288400901416977670150456616292076704027176506960911141461588779469077972493512452865448127961941652022284187946404672034009808496391611334978223198740403482304659693982902676615877620792979367771283601334456875102312449342834908261300333354227176811504096354225854690634135671608130828036394219551524387357667195065094155331987623567275216886771772726183522772551067373577754164410195928389046593027207672106770351340480986280479258638685693332112033342200027184618473709449041010284801475048470374618582812911618757106099484621116723203082721974543281576815212890934643959306547308610442639269990474030438138741159521861456564719852878361748699434618277280606566603904240124651926365920974483678671145653470249580039746852823710696014901932913863849799729768796530645518860763047492369835931132599864273792446474853152452138025571315750437694034822052521189093264729136096270679942511817298972980759827811989606400668706834339225893964816191580172419342969488345301989458864987657803137772731210756753186822446179947854122432553331109270031704656185542800470055796469024828149220665166473908786138118456358637483187323342749625463644137682182998920847679402215486143530960865761139360705075757636803799867735435538861733213622991011208648423043329181309858616924918278655178803675820432542958090384014004523174537095579269269583295106416085753450303937212982664718311543002703223335378759664179070721634588210728288748490055649290836807794101928107084562554318627617695896803660206882796664333194727771336463298433949762849637576293508500283846410733348766781176203180385495083238289850351507705447172372548060109578702579139066183986282235218098218695680646482571958112817247929326448290822066556592638851488671261290885540370546235227352276042002639485129641076914113213622536701407724110576613438517158001240139601013484648936508875600143873652874456377503097134954561748803526261436263016368182933107453834138805366890087322742815269752050479128241162833271563312304980182232442441469001753804722308574454117438281239078998896218352394395701049673299672157620992524634956672009317065468620036411490877623761223004558538966386740379095584562234609377820306291698009384292151488666317470404450067360716755689599353849966613347640579309458832587362995700307333193209314603551404076576657421270083031865013944479540591889939515600902946479757481986102121277702882826353193250124687293654000330023693805448839756112869032659682760087815635306650794568487778982947199963514006344369441168814278359726400936533896144533678031323831704916654445200929056535602207827844262901243823753181389220284714135398815516050835836109653367244225905201628875132140224312797866025369829108069044624329553475921628154629520504677285804004948692495669321078920484402404887265877101955211558778349424330318410220892994782887419584069147490397036945439028355709403359578693155217036555325271245891914074894142969870740024729074681451666234467261359740095475265801648457728574023226028119914472271664016325454179537517582143747208348858630413236422134077616057381270006968670062223675843969022690816801441843433818534670457675264160621502521295132624682808581553952710933446375287141813135689056356538681561917376103357052293914767473886651864407470354326746255944706081829966385059227948661884159758749686279561661595762082653186366723969478224418337954862356348093317046032870500912497454781545823625262746344881466487211164855606673932154673894276605276074409890574580206792171373853655901929209203928379776216150468692293743783751534638997826190401574026777738995856083159221839846800592684716478107037016027231854305588510301695378035235065524091547606617303713046330245650622094906549636501201068422405920745109649228477238480791397256652264929072289749714648418340050498529591741495400369769065081020285589459870569807137688554704217465506219977054284580731787409470872661841659096026181801960798960544553154734398401953915934504815569737073978991682801123961848734970604807025659196450079658199571701298183091012818426699088486818858499149634702747953902153803288338442011152568685995206978620245375215886223969060268720607745696132415064303300813107866161418294086454127886709627999727513322903655672818105600240188193605639961154716095727992454141420656909570988664314471777979879208506360139186999094615520425568212751528352808307866592714564458781024846209544361785614154708221306105116829205869688053354470082684209037203574987739100341195870392256474936900631011881655074277463751885633158840630667469638445794368823203051023155810730568324326876517591188279585200180717446636739858299341481998285992735521562970879210410860027530336758784870251106441479349623327777106208174682016091165275602932199085945981659048059752558786779817464977545689084967162218573200403122516951879594593837136646640377065127039737082622484312216489702705781075781538563099210639817404753052993565190935424984195054236771529778677197236239446943577887092609510961033391334205278253418031849053732297505377569724260069761688005458706961742843799676444671777526811875206311909535704981597644716478721500928737398136213871280675743720445493641518079337054675715847586327584312553624507399720313767361385979501066072234265082096916160167535590156148823548779754975354352235619944240728163300910783491291761995485555819831496032159352153471103827191027845864125289683849724878506365661972441819618951334140039507114920071035477669298672845522252752960373678479939009434771957037577664534662910919591606321226141184505201628384493852331672429463731573361938052994133081587084311040892906960975842110532731087407350705093081495086672683382136819915739474764848014603641452550110708668296682677223893511939158029035279839475362945229318396296426984059251892935004115859762064248458887187594566101820897938085850902683144427658519367863969931905140549590929791239040811498085716285765865361417759488124699134946739147826684903806850052411634982181730923245245301259317865538386584640369011796221364036373164963322674172273211005996369111858025935559193035894923951020097042895255606632943882749584203945593164229017515072587344344732741890379981963968252961420415080517631067989532583069696784731731571650413807336637115515997890671071735018528548107072358960145691400757527404346941557101180077518694948644617988215158862582685879726190522538185229758057146293062423636070316812584813878902697167003319925288727190567570981361735121040321131671104401548806974854040827676236999164485575922819476206854435022080675906722924716872314372016331026964355053810252288985213863059741245238745243510315049696463102354659389393543027361785683078231053427659981609043196905434990701139834544242659753118503545113046125150568250994063546043665014901005736268547356210540185753419590254872588348842163223468930295181458226920243061541217136543171057276956009722831894625267883704768478629108233629309742478204956439849503804556385277970592125365514115093457938356958030287596878574638019534847703438179329549960637363213666759531408930002993887907653030025908953780009815895453437139480696384561044957036761955097739087425889163787494974469288912932910459302584699270579533500702848090820977679545512426066928588569160679563674502911755597343077570612134636533921394101887950945134374760744849535760941800649488701740774817133776038954182634029224061833894692056966781585661787909692707759902985489407020006057019435389746963163243500825666253572542279419121636569498909624720230736270227459057717708257149102347528639492154988986029176397239771074558713904245577817280618789336063852384540227033828338973479945264533508143288605720571131699482059683440888440751738094698510468959974480197295235102277806214104598300965694348404436372468829404043498881803314703224568555697623172059240630316149032082341586965758479661988718433229125561220783332092223351280122775338478365566155516745103605051878905146035063944713484471538205635476960496976480979315510398206687539761511956598241595130406034029790371237818294918730713037522910311217729671948827403089927568090866320682547307260211685179963912108834699332897034523632827576539659887862977893956102973829281259800374167481009371723853483101260822849907079747505671964877020351747564115254490323358222764815051596436968110332515073149864420115013886622073552129743631764642215747756649436040135056796922948639514431980032370576363201362922801673880373215959525339704979926654229554547001633421847149641395370720846166635997461034864961015956687494073991099517656677057430253221341899985235645580340646538576784240328105365597150154212430647322696345943692057474706906894669409238132698667528838130681859500103430864283669361202679572376302694954393043866384432940533770596017949730439003203123686924511199607889105243630832020458789635982868781289443395391491950185103732835683576517754660772308525107798456172050387642760958972692092411737215471328166659472065915411725085777474090297966490520615513094570247883836688632449893463014287716049109056269071489504518763102503036248637756526726644270307443035853457672612270610762040429446019930679958256131311018174347125020328724804591448814467277003694568750540232321473369529165152878950183792751183337782210846488400612712890581524346212897813916251014550014820988925585116384948664168769777399437282973325432336636902984875113565688372134642066195489552981931132541722168070920006876305320906960130764315217631716752815497471256457604670418354496779468165962317221082889564632884759802691270183048643912228809824303591014804500109111199456834503128503962582467851426276083351227177067755504863230132322070681326081577579563000157154274373858243610547735706236245549211047752832771297222434903790992528683484586136692788847230334569084340608148272016955016379602264806823056341853844457050493236059404796009490794941375024240206721553383962591086691630529144843683221506086822102364675810910278806957256825476624477573462683002138279722445937086641095108557663759084000767472389193788325863923642561456774734708852517717081065327739636912885880492646378593194676409790321442520476067124967304263830337005916812681985815214242130640604295768906887804176178702053430963151742674126252541224818399127740696381331773954010252715958967118411449273571631359487878470232519420475737801644936001266771958359389222778494814304792203109278781984798926049973788730209265405276811114953323249103878786449459211507536376407501813671525974344696484970410795465778620202998061323100043919255925483131651006708419044986022902386556694242593012846088506230096776968394255255183229682676112909050200776487941419637928529152464869789618724800308198305727823100595623912421208107132977280201098663173704949941611868947685667189849724091126612353807953035471444207388302839343675171043506364837456784237355729922175975050707794834774859771593342231255871743451320123949181690446098644682471988331969526715808794972883434059722928313435421781743519729949334027623489936132850666973457895406830492815191577448763476764471317759518939093954439189548176420855369736083405946948387719104306041436512326342792960842080338919569757375354606239888899917581854462821883320179928464795503252055993647681312018583545412260713823103689418327568601251380622064491682213325501045587909378579174890803698221538589381068796825580324369997119053011591665848672550079780935360255216887483063187953491175584248382774506895007383859314397422773017735531536695243276538162975004246088172458261846597525346408656567638345914111477583177962005843738966810291990638008835061243736372725040000187902755341921464318507075301746117426619113790522442499105340090823699336604864757120482120559100096596129169165839329309506882885616263698141985524279330118534111237677996353497778824357236709274858285916693837112889109223068356885932469857140406333296010268337582931213798026746149701272023999438645590807246428050362508012873731411609730096193405896414528805812636390336159946779312035842619340373009406830823455552928273908797423845238071747692081428789812325924282571422134187711138884390501935836243989943159430976127183556199561762260117907345722518810500694210352481979577990346812253200215972147796941911281214383248427998158913443093867694720817666414662458562528595364053196723192968790030841668543651430837852647578365760840827019534480425109103825843548496193480020345163122937460691418013484975716159284037254436963576774039027271312369466926512519894816403365612650011181881672836176043835217282041854270758639453198143344291331261581129259502551751089489600780576141098722084071525513240541782024266001077768651000359697310817337195313376436273579624695885128538749175260803074970303368368160484006514194931483803729573557078528497824135417545682011712828703397169877807313189957613310000819451996241385083953466727832147591873779486486568188441104976804839625145544068275471641602007834722340545408125847202680009721133518733088673195864641188459406609787201312240609910824977634797227630590788554755238916373038824442129016705637237429752153308149163465102382760380253728466793631009353022947950706161331834187172822693310239304274338511515005166566986943327830794772201016293489169385444096996752697384888919864672299537884358554551621148227486757352876827113258550809063791145603817137933826340209899997715024652933696418046516881905650243622303378238321036201887951086687382029467604124504598533225632676014006476656238870210935350128789819941578716159336734364892123140324870990272059724115412779603371020537889946384929799027016320663790457787723757170628535517477476200121197976395024389566644543119908111939783462044177241321021618223136364788220448608221462711661968531519323971643262774774615819490978809070372729951828809205760373209350233398048548684377411014403359486736996446887811069035682066192019872380907626081514655390373578744663018740385134197266468917744906256057488813641587918646541661211941767629619406413167104153169714198212919745658937195933343405909448879537438503397927435287578872949148980004856858077000923677450283472248680872243389650764525289951551125678469348765313608958197170003398955568536997326381753929839407884803792540686141735394486136708042109394886974528100456417673945648776052743688462761195144810234186086910680620837547342539481735075779680886675283984986642306609714914943011350628888198346834711775857657580478969586126077068463165115058217018900248378290426488468392266976480783207065417640776222161126086410207575612859887777794798955943013222876257329973673498793589848943435645362942779634826195612254867996190213636577866032935025702740050107788844715379312909361095797392120439680261845846289306059866665779367410716956021292361543706442318031676477132255350283263333562855561835814986590912532805418112354134752950599082064458998736869173368648415443945054465542792384451940510365327293000276171415497035061085395509941955759418308758566656696950731233474774283986543965919777152812164673591285226451803235752942425418836477053747490679296465783199731473553739115454847294362889536627513434625327416152357392618016542199997635982087138995493502531010222610856054907640635733354870350646909671613523330310217793121601524186171186021937385412766766165553157353576311722697185848556938364406816419209687072711108052247513228576244352137422163321191216886913127084723973317926886355682262501622022767065719904514225710952681053974054588539677446295992083443739771465470149073942413137371671994974514675715897958578455984952893531746815103790306717040749759244641916290641864140371552109088789008814720890130356955673838436166017907938583434254720100012045018852042692715021987963345358907635949799306148378570684190784379389764506920626865900019048627773653636714615190315068019852418204622427840256232236157384210827027197563303262267551633274293685140760951283301443239208108095634547360644557961525055969407076258599066357004543429645774983124950756268247805792130148733836724835935790669371076740126025445908155225040959271650530328928299594743768096723916221797929388668014582460207942312957339341800635838644346307241480918275721092087236509768236754769729895777831339388217165117470412311444947823404489740700363089776117941893571461987988879513244311502501863830709872680308198687149108085576667132592976316463526181138544112379251412791981068111233264356736709513822518770724001513971346467381662422401178169170067638608576789916422028232877425139273824601281477872214489242686529015568788489352363511165973242808907253414228506041087476480388527344495952081046599633272825064362129831163258258355687931887187292505807108744401295135203031104159033944473712203374206614402621535957375716806590038720889281887641042040066869035966768557740962652161536569214166149324355872178067847165458952521400718047924430970119811909471371035631800002888106752825092611739190175319076687538960574730552556456442694793730108387695097104096305111554338235713475635103176572900371126735010699313714649005578469759521892149768634919879924673134024331510364780335569103175021005039453007860074120102383727734195290717590412377213180738801371945644726481765355358954791764899385684484607366297931035781487838774990201572241081037915050250697447066661958619380996189581339208596059169713913539919023647933318253990025848833497567192634205682020773407924988117313720455184152258415091891357873344181697099449654250833645117866997545132671131082903509944783762471745409294410639944665788871468978218011434225919798198700677954040926475603019417191594856558492989729858165418571978279832511563773963604254114752868283660687214087965159766932268843120442161862920187747948852033200819690010013469434812643704933694210351904889242969533650717909764088038482192042348877548761633985290857625034424865534404178922293294750003351595848360577243433162003581179104245840249423942284504412039619178802390616809537982321789405246536245789496980566872064944717010682777380689815749564470495830908997762306992654699307873766962604381440985411346587003338817081198110649629558373106686199372688170014601645199679580243214892633024748104246840420435187292505489319721045898131095126998580324627464336114167922820258053574376873575321515549499972340855797819757047945647735372790983081264655658074901866732564872174055847729423211587978352063235195123827658335281944460182475571539308370535342386418303268954699574144428762585614328507598758879119289658570150139675839725090070839006289821640385627847732623253364094242798933251780970960332346837405917255819802347355957668501812069214681331149334366217616798522186319524886653403189710915329402206845791371235253721001335220332517060118610791347256681650649813391268124532700822336622706202949809573694066151426689585254787866356615075291363510753408677472612172761020401912471627059875415523535248108689988637235933050070808431476589629045259022560620451867386171032904579848830686690699011559314264354863811331643096796968482188196652286377897384813076001741919917757230155682323461843658131545500480749739011264476721009250043975736235413136299475194275688036516280325930288928729236963363259539292434291337985796877305519842292523734115248905161428245569161342492155793639223433094605695958125709251432893218343574231846834456976545830843738194060594985683798096597927154387154471116871843735263959040381351261575358008878681204057469103850026733419960391922606816127435384800487430414211555047545355067285645195948778952360667042447077270896526392258855065812482150630602457750213489934118359198976269917465784660588065903871547091321567109250552578919521135328263435348012001292749239949609800082312662757112154697399745990126831980865013699535457004843661932566293162798546243758844050475459241852044947649042664233167277349236917286067945481269852931763822741316939249825119601584971045671372363026993814773065103336742007178757968018806052640140068550821539647221377024880704338929055562284148301314559027463425941216570552688206716022300723441595729237745418843867248591625345269699804786463973488959580978365061265768348320459820163823698934224634875071832714535091532106467384644705180737600943703614001187490411083213584152407000367675222535287033800167129793499789381066647318546004720112327534215368036909601710913327082554400176610012999337501113148444362619673167905858624621175233737362357419895601540131800105776221222982607104099262600509866344245610207413206556893299551334223616718733040821541078227450543461626675524400933825122596258235355038267656497996289813340303532871806608852468908651703558481577247823856708805777660361538463109124388248027132623913810132494957379925223237231882789903390083196671975236060809165908279549054009523081008804961278199504983316975612270367243699922053613084727476994609331671698634517904687410950477651104033033128413649797622563195648331722519703181309794208338920933743518050127315570074657486975218146468910895532014314625270282421603753391905202140010012851014241042921472197441156226918407855950705201926575980687763753970598365787070697300064011341057168605113412934824492159787184996905970555226918554921098258560291527701691293298622414507981379929233294241204531467671667964434345632718916605857064716204927219576549012037501391734977152117640917954873224410798308137681992343998852467029307824880907016631637743470501736392887506479713939349242707303711245671404711483518595603278048857977676786133326959213439742508166364872129863079862581038300438077103992568710370247386793927317227580476584178071776538580153592230395880644766307233693465664207489689900168552800279726092111108123500047627936552735028164651012394606315684308380173874187922695498522051109708438551553427516459513155720946223924620808072144418816878703725102636640989607253729793063204428374582592042016309032029494189572740981122125802103805607107150259630545800186308755933016156369560285549543490843938174030585821958087213597938213137960914071213492493402854886452882709740994341277417825386074971535793742163578630256809147109203677417741946780473690647859211526489848439140439562631923122319252425905275834581593774874387497534332708881243191396383176413411040644112379793809310030973522868862355340040805231747783623709136454519033354651565117548584525682483177638154962869748117294142051402155324910128562938667975914927749738787582375165095380421331186644458747864522539575454104833680579985784549572304348331396215018467852604939885977836748488044093433316553116112877733558082392726279905678198706363136836630940142257496011452093624232935091090877324495080917496209204323966197648663469863068918031993667913048740429986539128846485916596698325042465820343970644658173924631736006671477676846529602569663079655095920392372681717875745279562327015356242554726211617340468392398980207481333672353928560580719346060452622335636169903451685911559360457119516350032959134968408377168295202426484155657436559957378791470767536980169722477329271988406035845220955784007853922330375162175405255051358796208295965330020798072081640335386294806541199300773237786455805695345570611907292309869598482023030251188090843952123478635346864458464244363656844358705786940490141888768055544917457054267373912621306229772974660470089645365057471500462341253675488818570419258887949035600335029007346190273478389843542341570000787320111059992300976265151175207915292848700794766750962733158652702844630847714667587256047167861941644820139277790949157845211546060255372778654896699146474732175411460899030585673164600987902135246025960942942144029066463409813105024708087606145038020468597450698560312469831860150876736201859586432960827383122343771811668257189680221931543153057581117808478872568570142280904665013520304778052463311536425305156784345399218628668400643417811175237923799757239720441499932854597286629768845032873666844768912665528989076159089454006472532543006247536123072496714093415696466732656779281456902731870846472264831080360133426566871252381891026283624472722206813469816628336619842169196926999837079632873941883913575087874661820014341136080695290411138398995150933575495814970461231795495823145043861997092335325366883971865260625320567255638089447493166858216310297429048820554111945674163803294492529917984116350099404768221258394577204602839116441219594029490629751101027346664806316655923800850586391385897846958435686325109205368552327618354110707248898090043044325581796027412837586133952707805935596216739940816658207778464795323816055386459995188105748311448765240914800993043472380652226897070886318920765476396426697835841663433310689852769902716223780127672597592118699969450206147973528425354438250162908807482875289560773214698151787090516314136649609746193348033584260581476739546073812408435426880456421598888818136803580069137130781874938114855746823930250080953057858587501964968160681569024059302455133891414543105716331422474653190353513590522776883600290100020196415101107221946268833764208712955018253552902604485366252741219877936976566653668272826338487300745952105758108206455389631659458649494203845339584698115767257935975672234216975313237089955043047222044896714485337697234457925733777123254071119296010888379678460655537077748616647922219593865814854888963274165568874460124087254877912417078085565567064215984994891309133682894159616665953757916527135338210685616317749544183796789290658662038298512146945076816323617050071383474918759443158974722187456997208755486921621589186844808411409084550843886030084042481325224551843897967589101280131246693035149721609843964102447611088376981544149378277879996423686383770523882070013439623238036170444075823884846287368959310934969057432531045933788006414572195797646363677196089057337427180126970184266881251396665505796496021543187544547823831011566897019335502868915649155327268620480953642598551803572861607830423643600909402378921442309250460708042572550038493167540333546756829958390293689646047308723671950463036786913928753431519982934726460842677281073790021027996457262632372253889203933444554176951945009883695406092367667694584251678847527764677913624130469217144294323328181405288570082945800341213903498623342836566088161447037767216644507373775407217903569386212530916767119091976037995990070523041295261588922252436200969501832920946258053886288040878830609283058448222672450165144623667229128954073425564081390323214171013330546268763675004719440031299731125061196987343780987914071711425518363917881003764804396996899620050368878689575999967453466304878109949530817519575378385062562955144316919520528971039126532742721530039365088049991644095045760119586413203256943805397622822055855092619986496095074074845195620600748639536987140476131958930568378342175587870381845468088841729035350309573546171483975255182378990196170216394184863035249091151121470362505708758826075630538518765819657031427488709175614596135014222327401598725559457205280527464462636813171507921435909568500672408792447160934831220251604495310624616382864159382618996028284542631031018151431812971620242095448348825825614041679575566964985374644082093398609491474377102881548980473295036715356828995028151116852531075515255915505347847072666852930754589921752826756070914268275600555125090109230667797056686395820005556194405987236904819968760139462645233767471288546432123248292579715119274112613918917183480815891199863692965378888545445153098241086178465819623892862147881941227649619676456851992740328628647134175975085222399164546617404503762463804309475245340029466044941212216936498953299217822305693839780439176589171789651668960374158388924241689548241382263930811938437328857794029238419308893537670750225260831273465702743863935728769070117617321501061547605545221254200750394132358819348509071961912444200152483770484768955231155068817610430039784707827352286728597564784148720104487087762053839512723810849446725177756083202636664490416417941657099708505900620814457264819452044355740961256893083800891093304712886546313006668706474521507150868417846954230354150515012678879607864057983432056567294481442471420094979832235926137698969220836679462986216935010934889742749887668688626320323419974268798953270657099932699323003523066466205760927278984782320424075850934690780863427131322716667520629357602636012208544026055084598040820496866212619452831724425147639342738817536909608924269865016227859595631739201935601536130181785140308098556314536913539270579420297010042474363103418401056456039697424401969491429130537807297853054590592402116380650359927083035750937251365550221199668170594328460694822347498452127658193905690005432361652334353947151736106122633886414575203642354335151428166658028236349499566314139783138113894441945963391755817496865376878868864565592838358041246116987533595411860036010523193291940113040492719779835605017893427348444609715954157807884539237988198591359974572455150239733095929202367026756503375262826481974901556849640548580214207974894522908544833265809909255444721726942326957979166452741987301555283051623327239290299906275044531379399685081824363891821163677127756894629300810333887810016972765602047442267553901866906626238510440757191444907422725190052452875302134858849915488409419224379356701326266502272364696360470942895356174922246331889124280193236640899488544671561555146930055565458912554438274163193942256738512620806115022347307879684174922010544023448435393945260965794492550786938738620982854360367677414788145200760856376648565437200943332744106218761591850133935832636921737996046432708446060655993860796450149496377401712386472943928137242377935407442043945022385283334328286662750400104477387138347620846032364623929937511612820822871156468582721977060503029938952023546894483145104977240639597877759961570699687711590134037621123551051318252094406305306277246254228190091759084545862920270139859585762321763717373848903921360054689660710467202792289812766313630273098461429163613830211901840968723588898595401459005247649157610797466460775999804312944471527355883350610342104968481395261516718995728585372448823090809729951216157706505672563493120934009449163065883063324152464265673470850203939338326057285848430227069537874850385459480414128038872595368262737537777818044261506263964850097862377447198371178408842604346527565785598304903526958271304568983157668898157156449220327678774914277130253784063932481407431778729075703872697552916204086116571088109006543535301007401773129465391034860980151920128479355704057834974626306383286485518750439070541926008999709372225734967084792004961326121328385595101694150110777844669444342337874428802677322381649435133643479491016398145382251240525620156929637231039009134502435673994567468168683365554964291200097191205377522562921521850010827103124696817512704383633010076370188600491887791955420496144245043861849532229476580704456599389921456184108082330495714882040851144290048799412370989400672706407335023122416215770875314344488520681635255513779568197717588185055339293371868549811798601355311107988207162252814167840116677528850522036466648589191476205591373459380305318695798577367179465663289119988860512102183406125981084353288643492032622693191444101832261970076717745771696005939311283418668717214975473501746038967925243653330502312498771358760052292538821390319324097028227323907069029404141888413596857981461410819102962412773178650578278483399467080590576725170182399810745645284528397143011449326009535247823746754000016767818400298398352624456806800540092380271105186097091832511962510524124443941428986243845176842759276447001492617927995981781963118727436330930788119650311727030999870290700357044565659751383553863975920592447981558222839756963838908882359223739880119279284147381248450321674505570918044666195857638719773598079339438184031903311897242197380925946965034037722821326851678560223121124183485890261376838176732626645122304563669441773893409375024200573217536341713141965358139185642550297918474381786091260089576658232660752556166341719776647437084158568331157051628889640458084566176659931123731663294323202920603004098796290182656499042608083287783476417051413167553670339665332642486611108822753352069113674321298243966527828694541848922643371149020869459506125350878898435788738420144190241346282652761762477783354055125406630257081228359589990857873528561180354606996945649047382281935857284228749917562867829894193525239612581200047012538992176049511927069900176416328012952316938280807119054618223567592442451833584824126182396078680930986313051958989917531403716485894555516932486053752908799873667326583852706812769318349625610210958465871221153090450642377677657748604169098588889801428815114649243292392599588886283111270047362620773224714298063486715788316017865198910783567958989002551987091657279948036085286231087529355646740992163679078935116528227977586871434281231022670613840621745523437140405216517229165879973333263390591139848376321716054912990855112089071991097672316578605062258972075264731360317678929661361546950365892929388537309990705044108591760011111484120532291590595968087528884474603427512983055662909056580132354320413116935676689948781188336589617908161119100087917968591229746328447931897710346722406185458471239169165799734677717197044224785252567528500274093343907275076634262871200311944184520324005728281278522637195998674782527268373435038693398923034664761172475130190518001233641085926806703280951072426974348718936012667171220149442106604153269423304650591812891500541401511361900562688126586045898418565157578347616632398662346581989517369979250403928460391293571010281176915394761004481964467891825345190200500846631152674041781674374423897114766162030246379642239705181962943347518284324817741488715047317465447890075520731975083527661444475494763022165182417251415638890816671209280323213605791214396171671182408166168013774477695179551751335196552225730797707461305903016855699909138724304470578864496589813658392067034251265721103882683814684789100608364915091021980134386992045039485505413962041122719499191013550450595645589658280495623848895812603098652510742458299200067260973342614304710803440576287858139156842321830485972803664224592835839834158372350065820499769300419156010993415881177620505798551822617256638718499455100758533054110366243257297552298785207446589748216037306912407536368529153585257749798775835456962957083540515290151787757584779443492833610902520858335106369378552521745499607080135963760215202524137634737240633423059549745902889967634112104042394564068214257071109708030491903143387646248746471670029347121386454925870402415775907598975257985811306289730672967527451927642507139876120890322382300159997772821515613364364624605836819865532870239117378570155393796813867405543398942110010845377373369430247133800338788476928743401678947442710222699988423481671872573646011723191710600542284316607481189997457756106195421777974454795028028763120328738398770639250400147883976277457431868918049753668090728355667614962589258972911214065433767664779636198930036167886333791031672406060378501460184146448348503018070666099678557108652003405150364977979747163977398379842640538790724226572863038174074728935211936775475594869865844867769153104437179656726229219097057407674907586001955714706498729162924353236197594598985582733640569187850365639277688785276883606480121899005119584329803393584838430035194843395025926856700022325071066615003815072237493233212240046233836123703020809576225426331409487355029143080162637350936814488001209028062503110844112316681744699177455065057223845790566314450708623253978887580564787032407451218233110504802741200041452629959658250520028499276065533722916730223541174854336042267208583054381358815712035521235501408574808485115053486038102151180028902753673233982594602969645641703758534841810197330505889333088721964499253317890285583731488849644334918287199844054092827620377731694859498090441425876304650223884329935952766612766855276420535148438720580158352126168342030633733581595927631879179921503010741720442424034571506006047663264856590168942214697154658580362860770115320271190634596031963835387025363612235503305865581076999823972868619799132175806176590856570706069280246505685963285151372630484883071573981091384039090452910506364575173771559346632293868962291656744879418405782032830644165589290648905400519600753940918767617975408436119302983342854418536273718761971840851272433537178372441151012349320826230817059267654926629632153652106776790356615216477059920506225365736718886697165467290281729714716414326710444736668235127949930387919995534885903172898483174533989316888343188641726782699641078031408668938750772212608538807022980783916793493187013884541437011541051890875836733598780225481656304210703747721064498252352062593043390774651402035496955480878901514091090488431912430678738179059385695272205234676262129383979706636477664539198939493064584942166868517357430964596227838208048185850993961317398529490822374747271149075064755773765106507858508892452778196206915864198561920079809413483948035743627983530075665940393660399903650717060708725689742156009371061242929304468601835373757510567161238665390451469864254597669497504777337961948943048251570896429466261731602288357406692892516143577510129811000100505483666043670766312948834046549422918068262292328796065567912770457089704356010176638873986142449191879333290028317816263265683041448906577301515648806018058554114932562958346618602349003461609950873838687173111908730695982778953028986198455992827079288711684647673586790398570976296385377172593971416198848919445891206269757103663581711856654270033837751752952570864613666556448875837663794580638018314554601511784307799938705027801420720462060741356184517032472549317849442737433029915090253947482167227646006360532770659127215069018088459826248516160351226672350618896378030968802385828656751313902924414766275525610293894788983536117206543412309232546180506578498457373455703029454927119252787953247073122322147283952821193783687314212842703280478222609423660382799477286375193061640868194819225110439737668927227470285123421159069987862430855378306786679478486940698702795754744943642554548768666530282907139273053102629757806970639070520571685961149272318357306405313271646980544918906107503157716035844457935096801861121170640314246152820204458253378836188835257978334367134615469300676770113646683572865773790023623515731956993762474141456180213099321331280801767820406868285892042615846026108889893189642471722772262731405083860677574235339173410922143466651732310976165697329636910941974084363185105437257433213392659183709600548330965692306311672257642620261503095934250270303738290762707157824412616814181186174883858280512307193291101886658834754448051613511351256845235616162229110265775603949438767658710991626004227455837287277802784629503803053222308823711438158000976085087153220359685916086434321388572008191726967350187003006050125836165073329131725019843928384228469174302902234803312008666811284722372561925449845585713228819467157242274642359666977914655919618162325260763026468816577971949245526449768384340132669940943486000668745722264335850300156043819987004079881881653001949027957133632617469504236846471533278205871949930338635607574446253375956707549038882033097854355299021530357259738570774557428525222373157519856740586483622717174920614540490306169665111422533472065795084856717680222227355631484885220488494166107300772975832028338730351161898156919857189577750970090805580327197263811083136690501433537225128596571343995414149181314082652619511312476372541895800613630097292681594783637461320770885929459269397405655150273013456300258903571331982346643053567857263146704251946147959369577019310120713103572332652141737290020651652250084608222939196446799616466803975285227734156658547096939592476285878336821113446626295927573220238945594675237492422180716469931333416434514168432966381661743146983566192098721116634149781300828496050268217677344058006386385582897455978270528880664425340264081177839802095130682255176695679184142608068510642348653117804391829000094701218757501298256483407786273510846891390194221373457465415394075557630388649528757520633970743006666480156929106195597511928563631862125097263532429310215280458739189613915872011818033434829335754520018423682690299794521626572953063402183127933015266394343656210358473877100799979101665789622313877250550076646769587970546262461550069177448556661302444503596942863617524130034566247207201394851669839983742146774366175772986442217880684713893269569841177979426911036603927220806277001854726216447155362374480373691751596157780876548477768377746951081637010224133012543344601820027485496034312132895772043679979018054617588230114201707084875587863471902165206911307878085928682214151919916475815981560304650195720078765737918990295520032493235634203501261173627537844870273484621935788592583098605956170230254324895758870441434159160594031882510592979817918823257319821661834358386726719366338784551318194530739517330448337048793010728114654025809308852235067051685046629643490467782064927412642263872877316583489187693903874833874542315057391557304768231416647382617149614177711545843801662455446453488150944593451024627674223389732973068692527741197022468663010691873655428335623579283287401053394178372366693822198898094416192010757128569017322052693233426442842130317207462919930385105561484568270121512336212652781274640631621840441501256255446362051706112902901565110856955065169662049596003761436065260057161650433381657502350032664966797438376058449120259745681955441336525794618931592437754350599969831682494792974403232036733109555711054648404305177748399392911452370005730042022453194483274855228558957952258927188646745556072399253199729831325551586661585310886879640212456183094561707703351428033823783020785034985005280552460339443954320791268405246204124245478916450836381204216686356748691155419553135851805957308187090760998846722308442046944269124727547830635278125754379758944348454629943529280215703039556357961442084437354303817913118069144829350125874381036263430444706668859487069717324032838518607810483838299809786642100606800111141207707397424948430348940622929388291185678535821866305693056459571931980041150512125916688806599301927610573387512857628350511414082859584166748217645649851240741721008348080485065116257773909388535020168387529853259159314229985740200143248211367138434203870700989293143042403803558102163701412747648408404101808721558401983173353473798574793761755724059997343125989133538810280354295344520884703781623260390603666440266737626466400986715653398715435342683669809213904975139217124965079209119304470053107834822928704616281063725195857083280612983484787873085894820219031795714411639020909426122991855370976436967305094538954158322679577930554566888032357752100059197697366214589706622685973416817562182158875823441419216648866456283356041146712743471872737061620779777333346202219973159939737568276138921507101537354630752508494188196914774473948558731087538465813056736022096885430173836949667814445408460482034800508537350356444214315996135030367585344653274880166456953172841397661685260868154597257242685106076932072679903840002206555291443825675878113459916105762462330216088483994767711500108328249277341540909954433704224666455963557153686442854337474627690460475839022016439203199731288014369610536903985322919726099950805143936153464126259795908765429374070612304349154886560679197451273743060230315551212075736619449651909750648111512361382288293715053340216599885209362194764603403492997535237846186830720113744267344878527326651755302465097127710658143046258412473887073124858501705959445535702092442206936636614465486038919116566288059747027942529093310112905619890186136902531665721725637573450243622223062560096003693513496164136336058586189737613764883576836174400042346239334694939498347981076563182365451511785215414232703428029137271678106730238493011775788033015570868371707293657709407815945112429095666783698810397381466329918980546928991545491487929566648798820572497034286878698748840807880386021542563239445312347839757820742309245611626641538672160436144226633182005522713594493523746496089500972120532266528822384688878672199047873739649563505730975721580721020266564438416401577099246595985458869547579116532425180406518754112302044272251865005016501060470668929409228404040943624248519828599774271025491420686498538676925492511278576941250802925190283147854855039823905531529601461056257777832929744333000553677737900136951210423444999999139187974815899162161689029366426421162237632717484477135661468820534929492296215824287898161247353017883220522825624401674814359332431844088027588739234981245031218015308797945302366828698948110930265536074070595134532045802899311009528409196586993910886238732049806846356586447973160200463888312165450600243653195029008143222546164569776618331597151988600777961904867268153091948890270783083207415246019309115497570981454415943102453859523845642293941646437214639493234641832313028273088312874898504293398687150890034429838118941240343115284692626927112725511049316351795445162422974349490870209621945297765018592586039335741999850616945166284729061265880596185399728225333483971004383547665353637465072101742911884984002726720979244564282854073319558366511557552659288179197627351997838235505078578669934030114242367357423259451072099692864878824454720823228300258983552336811715748410373007365044872800859131511004665066150365586518921441257067960859135716144789299328945231581659625823851911691270019087973507563582501971910363379205826098408587977142803492474265438979871745692394841377250578467297049358986597081277236076760932800414725783088351229067590296996122666444291288513269059175695653212082015111039795851399305846213205621832617428078249576043130642007393135232282799940979065259387617347935096701937287184276039902179044737918015610177926177670157025455402322794946537694548837575760775717646537646029518508047501858921597724660626734684302690256989877758349573237699588037856675136361139787432616772791006246406991356243125942692687872968143324883569352479210181015678933106672105225866029390065686258774301103749461147953510186112308769239109507749883747069393890411815302602280577252973182912944359626311627275950476477917023892692269446523950140046951020216543806102111797181136672618324059879748106623111574806951269911967172661289472729213834400524812542027281723582314901564370319455258906268925462152340114469592461136437405324826144804329651601874146757065069260248909003332480159633860270908512223855395778837019892705510552058508703927941092677975789800808054124657747268766737375161630168050428473652099723706798512140033435444841040140394205783455300764560162159369712420541875226770830911494844176725282237084343911229298429584764712033386721427435643645994000890226265297963068902829445324708582132469179469599256928052189429652926356297104560325776250824660565702338277958983051760824275454230825700271439926958465824806755813752132133417766949798114712086143005134951675044893352198592435880313330216194399349074952091248299428166183888487761586042321305302655654635043884525152679613106836093802733244399985587836565280769715578666188459970037121933890841239079151651624822629088961145209479864249198811914611662007032687571908540734435296200258283330717407459588623903507586245389109212282679744525026691982464685335864184943579516486613469799286578257938338050702410024564772358057011584747010186853760339853589661682147623472424720951233524619104567146705089006605623329381759317034480647100099281103240409788078657053807708272128606827442578534321889084379625507007834699612148504393095802004297973151738824040773469430342101230244781147042163763716222398070116021894745604311971544437368268280453726381506363922860144408925573162655310257962455142159450881553398403007536238754927228197136680648893727271059352989965312174082825133126702879197653254480347643499754805923440887175567703151145025143662284427821328782568550885339475168630846465441196021302106481412968106799957505589794074801536749708472705762047698257985046566336620811312852311179262075906021926773097268299481982451951634920502553364182843444900947086884053736686219363211727795929566922421204448481472974319832434092646809600808928099570705148413658415944461696506477614525471334638794430516848409544757917968689368331434281306551599361975126939214575734381574318254854417809389326668674057722778656734465102511138591651009566615044929272583167949954981551507745382154753343208978803769194577508140266449492785157893277408110256089859906780432104313466272210558959900949734596803960721694607798583139486592480197675829715173666536262455775381850365586653755757950076324984151562335213648109449344209929580590938901944327985041751390589425321360637815453379185318099912319208760122845986427873484908999471248132003780508860357771517810308908136806487778215084997760566905550563353972862375295212942056896235390012555292750134565904849397102373404562772933506967796786518510864983375240217185997355431547762476751881292528597521801808904333044446526574684099552802232462654484896575193446563922335245672672982329868593598940628454245953164666588469719946841185370546047273177099584829036296318774044717649445327286842025357367757389091215048539270387367414998058652745218359838083356990938273565519712258594800763264986710585655363123997542086882118175074406846027554858512559780365299142942473154052026155200064336878708532835808123505152232279564353826124687981489930444756122384147893670772947913818736148612883043089239342066378379799804658521774581449381636119550875163081556107306177484003383284678838891896881848308024491504276793235353282171812134012468539798614240940267947660574031564218979447316021382027065009558107307443038906253902882819321467692383939881532091164402693344004058455944235588181538650388347880805316608654032854321507885726923581034722170218334822285457690092413964897842544571597177710035959298310367624842661370271273949426245419790786767884673056164905535466356808671952659529122486999102705338366754403011388013159358177328098733276649805774178271160016612373368232011439553629532780695020975103566964457798576899138957518352361094699196849195141560488426170289749995234679059535288863918049785129446954484872392008532647430049056752901541787740715064016668331675119807769130919858439612391116595597986835458825568396925907626750545109229028905979887374050930192935059957040459521814122780442921487658471049129315570686060875303747592421190160507263237010190403233319704368329651704057289614864433316318164426839355934146378851683645759629927855890728387512778101678458989830806255260927732705636746993137796286779964263406407234359663189694740563474167932643548463219632064175204482256722478129612604822606555710138225465515975660870162765155733098096003971066989459991582441874642838177969068643922885708842830429326256764283708051102677682054384058877491581929313141373348563348785288697172266986531444390200489613892501754894461611210935762833299518527077836145817200456725486973450867895095666968979746004953539874137315111043933134420041932302926981955336263511012874505707047103490649601051349085581630668098278055759052027232897734002762121313670969003610869115851324126229806547188055015914708399035977651645844536563341332275410710412208344684261964242073054404923201647011674055032925038614510186831475555865678730990195096454015878996870103723294636442041327545578706298938963712948346746816156815479733803549684321686372650305583168028126855451673362087696556456692662224385358500847719698818887858165739603568265696695904051059061388923128576292988559802740122311193984113758823079067131702772694962469024989586129243087444612318474032926638899259503478215358067267002651063812704275008559398643399327195329783851692473157522039695483528636049892228385490726470106056614196803001348287919314155820680041857996587387882938901238520815118474748795243717288638895448389927517954789026582192949091726215805592476723504855803666171262038402464199575272079325617898074742487478426563995676475794664263439245372820260119853668475257661133098727172011322820005447547904320947136688160969429389229909785667891319457483851538762658866354698402094969093989949220124237304862278051136013052587011991177442379475155014972954115482999464875635632828312855459437489602204880932593727248080325162467304227938593285510309197148415943027090862834773904530643413654356062588729123731357957621792014003603022289432684484415418781927795268264671748073857831891438183521368495310562962169997764505556152090066853977685275026977532798723765505865655133756240810044640897537665585095949056470977647178316927095761675281463188218019258295792298171834462388465602520756920959913989844628961873013339945627649885097028739078469358404121800714760368873168348377213069759893054209928023989945502450171748408715882110331810381301043609887466760936911898168829408459357746638417349379070607225913306114862462044798574509182212660902126294902480601968880819372873359893609906001857641055063388742879048434622021105915942377188618768899791570445848581747089437534263108911373908941397502927127727407096560125432915146138488150474534650809714527873644145906939228784081509271790109336034833075110832187450494511211194313342983918357095953808568978250122516511874668342689713521556344426956069925697486707076677777024510080667180836919350342545405151650731571459458864104655908036713050835472343778304702804128513389944318882314619564679736111217626910974645853585103627391075222248602823694269493801902268534559988374386783130467992356233020355540067307403919459795043777548518329794210565396865858008811728972029188421027939077488738134615220366786039027937667170481423135235617352385805346863826986454844639523972120817119692590196972261201793829422290146669519369423595653358093945920677382015391810387374026302484910432126327429829663826430270340692591538408444130112447158996485521888517447958945834574162826528755271349399933517983629674531488133874831829315732482846399462583215283720688474557403164513302589202713218870245384715641727538816181658755337391397400366914499110645872797354710253109919010019227114163870491065992235964834455060903613908282368794458039835224210176718698645009158356810495651595379294775084348795523981217051435445065552833490270957633725439062901372870581187686034228749762174399164674345730494679248003380706632682153525679145968369921486112211585520505230874240647476554289440834117925804228674503186189991283983556050982794367096818174844987182127316004991994794488814703045331640021261078920887588788784332140086726324148811405527401669910728168864750071888280345970864489482301318844535260071708153713131624304644244710048585488585334400421480506623518699286084734702912468953919807752605709352470327736471115735946234081797219879689146610639918414782063917452141959705361524601791333780857324951157659072974315048990333513574019703038016851687805324185986294348281299518332677572200309707162889225212530546472571999687865550364608722264493121959410891422199788408818150286338855860470820457221710044909807938214980384636446995094808239268002816273405354760370255388014107674091876869597781223261618281487545955298158656372095511549203173752587463203324473765974427396977100454074586145931984997339509827346470639829948292777967743967066355425122228818210004867101755736107883254868324515059505470586705170727439641165974976434160409189566522784127994884704107486643272791374253151423598380922346584567418470842191463185530629602253595188639595533016190759139426966813470410000417967115851248434405746917959703915002349339569904367717641916305119653531768976044370513446621856509841765513653541959463964724014563122713028667322591726791448599423426960003684342481703406555461981386035699566980921178149633958984857173023140377038516593508569293168113134162823432977485466540456759931683954715732149061120506198645158806719827821033313926786272433973518505111051808580755642848706773322279130162382151196038741932719821083232126891063099131931218607529446560913886124953220816043540046937871165330155103753918682647156196836910015376035189873204809561142512226188894436144586941090353601847950029749542447515873832890847497946354501677674639735988028874036749719350788571903493175577400460029856083188576632480208661159890796081187904328747327757794216765619381991581671415022388702191181505937133247240999946959631791672185710845975916430192412038514596515917025295166418026554282918234970538895032862550171329756617361668383852792153568087598300377717408638071200808447034201583642570588749994813773008916319403599085053152580879227968801696841518351307563755967273051577396099370089270076791355668536156613189226468424098800238761488693982442454357012011127607129278036676711928945835996852419891786850795977978219630513701966755205394746536616921403679316884761556859459812389814765590424322371355854333090537207658122696432971982163076249422155383122055688579600350435135388430373590431244508370556501011576769345323497546646642409039905912057789630868664196615686203686110392247061086509680177543792260090884780341804320475583723201790661249950888891538697260146446003180160426463558187849224412022631950791924324333729367300209868786451128902233788210341310560529423583005960254418870296744380731187552121911083825521149169465647002411499740442295660799458874980792298766659821028737308223846427098426838596360345152656908243663646691215472495907574547477131334899973274008494828417615206559695226963554415364717865577983574852270265573940592460973174839949808836806930668930627494463457029674838289428390628897740338230962773872153748886083531561868496215593120378632832431437605076918416016866626500418611059968091903875140762907908748578834352886038084411529334653925745709562714909999031849311732511998840070337345525656464689330009494447130743975036827174468177294729413819320058332667072836336299455810712030937690198460549899205411476660601778251022769669634478235939725126275806304415755441262907594680127399495817146857191465808907097407626317520811115920810450762277098427798575952708089275492255141655407402902605164216590086491164233167807163564553560675694325370690388496939617102416971409423124574424461194412005585703207333815563972511452549388643908716947512205569350730815829542404458286222891904695571980933819470623520692240897968798214811126097085197884883985094816284078506466434189214054727479697628986253388737856409303017291467317310767560019902568504562719689691823579848487124482986364628689602640890099332218313941436810077730496576669115592737375244529237041987773944778135030160823927031043258426653384623352588534677390487825465851091904667156920119900022848187015376195437141399112950785133094549960741576819505078733055116316130032424473862959895076507229476568677026958005780986375886427005331903628012780773852457951205028718685229316191045307216817257548020163349616995821191052784165246373041478115284255381605727756673688819573021310939508591794828329389247563132313715886191735957231448032251874098010719187272733864032275107921427486571644738176698929008856239380689766514737210469860050646981510854137156758343995811709508895934849683767814479440732614939133907994347960327877186613198634296238889512239049885110148814158966508149183627133264771263461102621105482111265262507284694530382197753222462863234274314067580074896428186574894466073267528653944310955145296946895594426930529249210269588330383698211997499382536587510816102046167374539670967445086618725950137332124377459220064234197205433091831660294001528471176457210669268979557838400199923255710102222092653445982176868103920574737413448364405433249337001854053110462609050936608717788220786249316909484430193814995967956650645884347456128352396637774986612306721227553585883868114100087819857963838516785115531009082440014344880431816822946568934699265808632980387651448841486568599791740179171089437201233454135188739884828764255398233467518197600116447504459807482529940716577087179123087233900814447199199586045012487391983517457472634008690587829987556768795564680981503967534588784860321783904374451235981230179748872116475091264401834285419956668845197282570554873450914010227750156491316559075197366279462511049325512921636852919252061680858855027271418043795915842387459687554759235062433821182707393635872591911509318837356185632120815126189633481629233720035709415269174115578690614896564802757603961410485654911055732753519487918070144819653040991658492176627981393635974764253906952965460123942813812136343622771455546751247432693806007099584179806883952694443928056787514430287632612828176904400395724876888994488124046296943633723677200961103029208838647090359548522115399698978821144203364877021983978165718456990245971769741334505295947818135495648558559712293494535338379769066975167400584405291005559025979731818524469199642076444671882657119804496996184228443756731227125158568609345720452393357985552081206650916335553591116409961702084423383872348887716823178686749768564712314750539210220192542872110947008518460594257647929158872011107573522953970777647044677530225010398853890876428486182380581283933375657905466267011885908118457439809433638613922950445116043159325413166439573313634486567690513855507932705121429580291854772443295282755625536886458394404062437160059990291089814664952536190135962690487910642451780061234688099323690205095381001686591201541485236441881225295872165758619840873292444225633723012655623831214367274212611852869396062686358884886298416256189440221824522841685425231541368657367098612074992412611825240971761150340768492321598865030017763625108880773375648984579849120471928614911476755025401420924555498528529456380228758434831622735064757432874170313352819532789867590005557673323834910716044047452113213457361872575714322368838325953824391528519054250447655046460556803759222705235292558285953462311792620873717294286553671954052849749865234462113763779829291835172330069896988371499807218072859864220158042592309793078408275611457503469654379220351288184912257381288211584082978901666194316057050559129243640605735037724019165937338327198344590421591863641356322897584824354650248583590994359822159517409963577176184506042437807660575290582408146204959999531351893959560074455283387427820380122283067860977445602725348037087763534164215698512083932184707871849171493292666549881788928874452075794357789710825344327819180027379414291827945834837399386563504031851425150807079209946314548679906095739548914943467055650561862735463907034948920047743046389671160268559869169029269118066125614128011872380528162827207763088195955728858641893696408419248421595649465669429704596582183850376431297568759774548974193118668713903756063088637154655016401646084442584860068873508981178535632739371523227488238976750382135749219126887546723225005697443659155431276668674349998753601757479820161554268550133522258635628595311891455171972129599694489533998743346371853303738311048851952498035688559433786828648619266915608662124508126627648338283520454267170148444462502488359346100096987339928364386437398493294843062248490700189069406537587032196924267180672614253619158181855998150330937000331487903984529838980083267280514257403236870774369147031166570722866701295855107498717778640704434726746422763626968486135596548986547632354567305126480951716568999912831503118828718027551603872023981481053030509754229868751081325053531990896051042176213043071877709087213554562023995405696857816551889159120105173606601582696992217169263830831382773729887329857876366701854244006727851691580372945242829269609103398138991636851404611312852581421909869855515183320942675750133809115638996429767017590399668144146246351803162734469319346237246249340528944784962829008719872361318448672416367772885567335785683728474453031643505930883557181285688694348015421822655700068282485370055583658047334623064186042583267951528773664443575596752435359937540009510143560566975097232503784689349989447834776645805860316907160503542042111373560908602228390599790310658911484526382444986414624444587670109857718430424766880367657231649986655137985165304254979664567898656721821449354877589171148395279946302329147616502995279956390780188554058298669782361940975539579341579388789197715412959651578266956966117830380642922855480050173837050693604545863994511394150909917697395823258780845531998049173437501995349273521130363772213890559268299960572596266056498027175381758992902746756122751787054088066040620505427619142849103301229985562949764421432138581891402837342703999809079537455891004349590015754979539000969313393333828927854718823970627580284595631296513502628875722433750986307695169675076552686091001919007939120313965436493985178086140573708029810619239939593850311847390127311166037713927424329793252110989582521656419079068094867534912060351335366979519237745439729801554823866106705305663443568547254328479509637302714827385287068324532294370659827942200006732290612748182929493925255707172691433294458341429852766197290947469351347080634667848268714861126209910022092698129256583490001408248990067998553923099857187893913027856314909826342143229419929600952110727187803644634597001669058064428956294393133591059024972751926080555675017314754593327541481799239823095257220953273228179283106487282347527230387489096064015518295804249382544834876982995159466180335451486337563961993720799379919264379017062614877032392213984571063658173901864963613559168648284282406758590339116677926202006114633867930023696725593131361079615704643473280209579013039738091726084161484943065118929247114337667926868037322265123234740826074551773716688089894457880752263916009769790447750273107252136165119490607746382349964301800321646187283606390831795579363948432986792005005344259062090964242346675340209059385814996010562637291222488561065167276182376182528468205183177527444780560405992573159601345764122062433601521512881538282942063506955916430815020734701171997202550213683623754362547127222287472890363049004349499030511098061215155834597063230066797759216225615604789631960368797057446539811135183344467290246641109960350722973162804405700690566151297598481451346258090837648605917703799126427064203900153566149067872837647229268672931432382873650949200028342967743905202708898789075711403017117719760382475498088528725266149683903793326736871116078852807936764417046470599435284478151125800696273160210481067688849115855260921847964049517094877038417334776201314610546223653781357814078587565342336489549478705406341677296353754103185222472936648057316940117278920547401038070462454672466249572980356134979822268746857765934542380344545534926785788626621696885473443440636700560497545156600853281243807975199555158764920903771128477842995953210239374816965895909919504985958504005611044290202437950690927009079880847397511046057040637961306837713480129011368293294536703011112336024085747441509622365355420773624127579104357590815897185965678851634441837966662193399899237990314503303800157525117297440004824694633717429780464085815931868458287753451659823418959386139231518676464085070362348038044096779025466949857218680662100232668203765290837662057751219989582574472348057398166831202222644996192571446137778491479716181270822814590918011231726453674719050025335736148898213300043068779188732473935160117809592667906318669278823152342803760766433486479255112469722726652401173596868387487002325364692193596184192201374159719974540828599580407198261313627376865169093949918325503893657653007514334536782222888168908555106683407280549762935163195356405553695258778286743411101900243090375607249358065969993495163257889134454520175389196081299504447984382289371083199632305449390753484342537604441554948115795788617103284889126071274454886487193006963733572843778220335200782128530918729292906831957082843412639600583920599376067069715477680411609332993417758850067044076970424797578619900397789461890552295857726970570651668005782763037974798235093447545300218543323505660513475913040897133495194337746028070119157216840452913996063841530866821090198914087548907150284684473060584027852251880196822507113446761112500276941145805277643118906731643487694566644893720471811905579681139802624440172221416973186278818649408392715262927853299212609056429798818403302836127100404040779809080035671285204658727093483902504090649811505178859306822498395434576812738624298575505030465070006495916148947384473291094031319206272037371680035507985953378592052046228236895667661623861919048375780699818848380804116252889701030879796528124430456588397446739805658200095580586969349305338940802297807334490783448751150823964824676717074022335942680435121407028091575638102029628576892509500797499559163602300757699677729886596446412833549241487515423350199219684739558511099943559482354912910814941403820776669791875107872372606209583000154846861940430994222516250659062662518030731667313301439932059475771884380148148959986087331476416092871325590358049789680733095223328434666872287564700937658477271262352654225900307274675025234313179630192323545587471689009968996208477384169477428005419624355079097506972224313465273736770537572255219433853427256226335226458033819511777604086065346592673873796116092590792750926157702936637298688374249508243681592703832347002757739184422007295587133716405897649418646527275504865600591039824851935256439971136224920893911501059131970984620322291221471933574142465550082038711239006035332589019086454975832325816284833218304658506833283737634814164028939357722687630778652971488618646484996451971641806755290331409306109018635840318853894435880196698195352431107373262458224911334726162448898584969802815877741416308582093245492259731781073148058784536412364468275507812231710114837533236314222771493672308870633503192674284009820571684462254734722193044262212859324695211044820379789958751277199344380974529390667778593410136288619177636025965639835354555720582058886318939090363637274404494479334850156123896433333784177515245605949845511946086439572473185331138065631444204682936890510029060267835438073374398356222773443593812970341520287179456373977923505471976407744553021928668678384323531781850661458263408948975935352020885783472466333786670763427949538903368544521690133984621663919889190629832741729227019631573441210453002771628749633459826187981760545480712922476168101356925045170704111209795615000604254860282756006301423093785106910372637837852058808808654806718121778660064007139084089063113189260922639056172852078454553537913384249107092355241792044963451850375039529002040196291315927795146790372481830199403554142018376026928045164494396309426456264235292713781062883152175998219646933860368664991636478608307605021439538179659394385712566736153515533224383421426031401887102142376242630278227761546608843524773327004078378819985238468565254225978304521414748328153393654195921325520106728140190095625297178734285465013750645041170135440004470442570472682206884756852317237169730216957095572059863047394734762855770938545864112918712114220309729390398972486984080681152295236189828887588245089092856152918290736851551782763041368155387906851600748747260547939987226377894687199359131185842446395669351287047972903633137188787702184114026206122443202345890275578180437681026048786553218848324225276593194728042840393193734231885647310166773561495034785961233622290892688798915310247230843723816665066379117737528741967258333840297637749588372396454568108404411428769442108332325294069760700831646259795149272885616125550194538368216147072567003930860807743276169660698906262870319784778698542388819034060993098472299027945849112774471514725097019152434005148786223786901879273167718807307163210464744121781876277539520047947567351710046877506694820877356993639839185442280027299435862382722337828617760450059289312655658565066989583311669030984024903679247538168902327116999061603775906031477942597147765588962420487481078169087246513915043454996561503888885172927532762095436651985247394800751449943603678237801925355175631336996189332752557763396044953970506948879582633481990331508729202581275444086738442172854767249754165425428502015209866037171814087259745855748305088447540405051201782115059889155447802742419313918223653342661588227020652565987841588620506769380757076853233990608488060839934526252796076872368357521905293528074203358498359591308328387077945893661706959013662744711109296615164375444168467487245102327062179834493335198720649717306378357549423316754200484528701615307859469301863460759015650803443212774753284590795870535786575131511692517746363407730476765812364492560506893887857629488637728092269344769281675946782633040756114966754230582255082582863701513407561743456731136964080374661363198619475114106398957032094879273122719553901304974758410879420543582537205369106389876987061254551072920005413904892223845943638086693886969784818562840881448296562586190531420256336915108879621735048005632040699828240500472023427337430248952247544296697550838696258784353023825130490323861481872296574609295978331151950353250676873073313492744763545652954755203483812767640919251670614267867351964433120290055869629772384166303483967131627911595873475006114163773041666739295762283627028009862966024137093807496348250587387048379657825759230698767087331814436487601176762470753270813229021588615615071438741186620683940768670705133521853887986912920800376560757756012709299144368116935352933296772554538039430678505771897238856025515252886975405061227142382812570362795587354579289439839168014049070990143882645827724704075509349369111372869496666270661132049475871113577616890591068761488068554150271007415238989694617928234498519243203930415124596232779369191098234574469981354317526007863453505792585858350577816832416642147241831743863230586824892909253875561712606035893519067745250786424324003421452513829576816142926890738328656099656658720311340273948491981355641933249386384900401194381722104014876528394118095496376777812569478184977058045577499691027389853104494068308684327343321992299423337048716567399119755516559454516617423049983676795566349760769166344240480102123733746006601950669547081217924943331643826915641199611396818689004424491261884600445261924087283517056493033831717658573738316913476425801121309095035455229395405213671469600126179313921758961631240681948407141664503016757531064923032824916448293562224802602999473828895707721547740767474450301943432957625324217427311338952619084713204893849744312743569769453272549135345323835399887523818457704466890152845741393304746745246624581110817015313122632649107870207773916394048583147816268164637167243807429392117847841023566157982271385369960018494291154617981649430202181902583313142390801917519421563302539263206026122550645088094452564052135594789311262120294913941891227933277433630500994313094676313067959034976921746420346504215856675129175126961945320396768075777652939187862022134188526355954510580883605991304745779275372464200659416474995474658303587807450465478342520832476769336551472647694873665992676547285760184492723911176125489864708628438419567030347394177186255109178976577677183851210721543157517261115231891817973514265066857132500352436049621527715104120469119545289336301764206739876361221882039729325965746140230415640358761259578378173571428783667688555034172565355808931750620449213235288579919138738379377498513700003820733807755266205610278768749577139343078080691124486834676549924583302265514780874654736709340575834084863843883751106287348790763650860035233943307107811567474398867671496728782371245114888527777735118208772496470459731335886091906754795453207039770668017506985707691344778349645275776876410816308063299338235467723082264621838275560139703669323357044903865308199068472071129828290091140030679880811738620965551860758025054982809651138233760059643516776697341637811607785778487538848309655713418526681882374261092354609347060389005093662851400594591715618840562949826553692399041422062103017731428673240232224490710208948224861043898371145286477381133980826335467183895610794944461827977647528812959231041821322752949739112865389968758423991628350397230664331397309076981901964114395582349866963626940033076456378429079014983063444534821464643243233764634447617016777251747775584628563455383129560423178167054096344457859121050084866022427331368726718389048309956661296792205822502498921372635406944406352878719411188127728678374232477308101316805368445582620614084055260165860241594552363840756420881695714540825571560430412619339046792915732527579055662198649980848258794914883609298684461497250325397625479446817966794125234584183193283905206291309286171540683210699737327413946000073235080194733055109667831197141604591313480022708309931798577704104091179854876002457770806583116082371805791124110770534789449930779390070921321932550008513170868572805197547844384926725753348482641241084145052069845362030760871037194405363894635017034123865444212010862103113618967040196321158637426276754289958683556736465991491742193503104612258622064342114957197327915280810679976606654445665751211809923400690619271481112628837715319690755909050746950568480940402640570864598001013455713622077197651449168810757531801296577820411846061814350737052862920720288802343887323563671258827370750190771593903392085778949843036124420194632467926342836607981783157965842809287016307322507406801147626986448375439662875519868658386054481287111281359527387611010072880659995896722849983490689780319193228615592360479128958861284607603427014826580402752893810033061118938423982606193724984596072591547360392371803888239743777187023606795922640457817559900920246256869096382786770698635892510431529908391623896833828062742714159893302824872899744990588780432838355104440349871207689464053436134821267003340703563392549569080631394932798884829538220951727858966502681263881877455721838380234831171874726918153456932705191233501825459194585910819526769970012309616620578339034487817436819501476957278246483328278340095708816186678027997986517679932118522180541411075102696509454788579084578593339208464561440516645107642830973586214951805445293389211521521086869191047897512208812147942013383819735997423960856820045607778281343522638526125923924777127347301267299696968859721154087627074305975294552674892291294358641760219041707504720448960032884694155052132713545669929803780667991632568498253490209842272935411629428760753524387763287124730371771231672481037455405873902314719664088785330771918842382904257829737801918446132939408186494289502279975795069339315278450320941945092427214109991790280886221274977829268449592514246563770213266504355066293914107083714434794137508264399804587238573923595698051650574202059424496006936533700389108409923187472119817208762192197990968322836299022361070411343922889936304983464369229638077732007543562102411136393720888471789047738498739695767088174214020800892620542379493361843363494738371861703559159547067935281904934862830619694566494990524246347933674745666583565459938228944876585293963094951057432519835651569076810933814973689772682792910428065449839978087355228347217882196115720426297414118184700096966219550720556233454800734734023729916490141432781158019609560631744334834293463884998718375291475200215593541684679010362304887199624617297377904840620702602391461929722693188862871016056422352915527937906294278350872405669973644181046653446799352568143917013866571755036460658349764530011874652798363874901212982873884216943469813471579249322139399733397343306436103258645935279713613535090683663818954067414304189552461443049781696053899859782558801306993642792670984600160132851673026798929324015797605153610792503319645403650225684095589917936854635953530213637160742209984228402024994919228812598471830598951520857630871592828149279204388472679228538263307676739444109926197086912528402665269027299456938088612903279680311119763864070434155974191588919223550044176661783425238785397692711667821578268180775373157446019891901247710405335573303079357273375622949471610415871545603190510380655352506527459216897461667239420168459644814199541331646006701929094497712525740159170345678475151709668246439901577529712442569660511799811965269670747596429516331522657204733876539533631627312073564949876490553804408118721277336604374925474915316588677571397783433606362745712668480688301221832891388150439581467056363174045511825107071908967161262029387872238393076349585921194520170730397445816370717758629505246535332549934804822630839696617861308533004840988735744064552353909706716126888865697297836156189177215045584721036476887336840610801906650066619682642802270716048116403802070969393411359802676225187712940817928352733403141099985647978163299931849058201160178627718249289223402536687690490174757912432327569334698547625174670330114766501780890545251817245052216887740482935209875911846218394139607132896732736930396562956823715665189634853825115607511201779251832426736435702960839352856042029273625090776800353047971441691007426890627548022901899043370600517631608000539214714246273277391941705055066273706662511624336696226958349782431506077599668852945451738036814492267876609380831192278790674188636133812622305213820696263271451967287618156780724102791682609690928290099546167721693110364841595930347244487502687636343641752992875378892791247847365664546049109856276354266932684954249019063077190262410706672121197268240800996134187243485867048601717247764530824146169335471002020799703459804853431688924199117861707056046389936728360048993474970086743614295032166104834438760186486477711940599262396863583591355093891359004227534792764413701611189442841276178898556202026979697336072601431998956980088689157090650387466309037881518189368411175806684766656841280188654900183055766185256779942509504592849810136430103980474394970837031917110552424225145443744208709847070041414640189535619042833655881177362372766896315518384301697807732324162304691126796968429230500801640239758035803942557026100362900988040461379799509587778983226460973167068323189826804891248106811788420778775924485414708915212145434082105693263018274915424520955037893236644034284315012874542571662466979614750460264200938124683652202546143300533914356619148182424480292515106331210702366231795256759637656668586554704783049898098208686226581506816187533038691177685951474985553127391501615381626446578901818708119399004208627867842613653429255653845081325278119992541436451625289023344001329910056365984060389642078467245999303114690748898246535869899187290305008613290414044898625166875027617845891848890570962765164734474276047080049843604085359250087783658469561624924877042052080355870095720855406089864977719979382748854511108777760669446732898386411824130868324545799763920084551848599888243147125490086702253765266883048370326349768235703505947387217188672091405092538622823454598200699057580199895308734504314972750634523335419729950246911445968304533135519765515106832632805174333612815277235167816846343494225934138081162520366306871885245195198369518793315041377009662888204804634263569768290036302383853407306187299574155943943295003978460548109508496370516451199280806718464444785321062114666495281280857170299377403491651246350316596522618579853153768654833627623051416464852275679624998060238043132464654586116723272726557353561213472311755781141070641518997568258826173836604266743591679881079665189006500224681894147458187876861972768765712626024629797419552706803738800229683772810659777441655065765497449996214334621183915341754275665740710109988702825242018975082322141719507602360236474923069675251319275517980196348041463340239572683797289652412428946096059306948545430135136193157091344014528585113128614700319446114655069928931155982568866990488400917837888981498736433710508481445592637503739042113725506849460826803730003986461426543216019376902057455172223670306919955843853188309329111988947190095500836090870544155808628788891835442374962842367161302487049157800477110877821836836757230172894938723295761852758011654987200265586783428012272214622134087674492345398377855713962945675019676163620676546580589044212705687684175748801113626321862676574037710384908139340292775634469202289701075179773038911837493123294682749569097992785863962693199906586840547288148569619660325963915112323353925421915002600563103482500664006657780119759604656114212900699729996504181429690091838628553178684120984301985022786707561205308495001653015784804570558456354072564278934734949551782017550651305384111086676782917931109108371073741590381287252721930748129204521256099029204637400621359686970835029611032737464411089358331951794142757640577160636312461370326822068762318351109703483041684055691392409845240568885070637326669246210204384986341139920833316533620231047086525561134654404238125427011392776679106786427331596138876643046361156680013033480293332736386186226341284605583774500662631906809418943045667190863239903950029275332996057164468030806744620129549778418914151198266171583952706472782548387914464300841218372990303450440125219418730647039325205416799895545143495150089604837846354844834171448386910424424263578796500882237080720833698605125505513346673976358355304705747485437863957700724483491548218668563893538618889051764841297537321686475104539251531686647920023054181463264396778042468241750097213991075567346735794933265712366844023660109108407707346075976913411182528082992769392127059418122083981373570299059178814510827802462442920327124372107447060892593685707009566660498042965105389646128252322193593730201699112256326307319150599305686834596454605425584155998130504789686233755573742442680912731603357304358866614491962971556558857988724111391575493897024895527859658342553321943738520554799194635692129375214793506334831537132161913755932039694262995787383691870646186325183782968719494684863072787411596789616412142628978989502677697408911569057817378745477858457564004659705740388156743665407932500120478734351310280555196764519493544360925402268904576414787171536554292471337351420528586193241331067974053136854747227188242001178132285850169184444542446725866140408990800568997072126686567819748832254992945483429182618572113897012256894593813737041246699491967851127841384215201136758547952346975295107993421039401713843970845963258181502313368587526423213519941450086226577874047845242242134977895173555411605795485385115481342195106556930051891286802594632998186813991565762200145316416893134478753069456737919642027982103001890276990775955972950768867722446717651222375290081264233594588168735054335068003299668810252999127270733963349279504238505665680027665477475577892868330522920931888397713818887274929753206948681337451400728481430723289274038456493599495409530115155230430398231814405316602192168657036465187280003052950715570800861838892062936506186384261499388607906133265245017394498215865807082718337515393596435227626312937165044609331950708709985128866131099891922331002095746715710953777511130470852817586923843498961204104435742513899260571450449906814045708070894629058869624305098787118689501884379084645032131317686475212560863058749779311940937647555265905953127060254906270557632528052395647338670924267271619206994490054153527505019968328034836737025446540965378370535058693281179395066999557196209300878360043180528839848127009688213277721052193975549022376819149832134347431029218257778427062780257355832942882787036694025822747034016941761376786179644059723869657434405901293940913294727475539252102527268778977927820904092111145692344608044510716054731321383492032501735239019048686605424399018694184519613828526140483529913179442584934763226555351116457872929485454308263101727470600083159220414437520204862132774619918096310266242709081088022895744697414111602207525243592688984259078029004622494372890358633091127007925335646215582172390741527338923145209849474893306251537182300746032835586707027831225439752749047783353751949754256113533554443225725506894377588876805817400823319504356478636758897639512672349087947875098452890628815398797248920324727992308946738737893121652920745606880220975487818183648348382615305279638515605109157553598332752039262941303504156386383486937672386673961477895417440500769674456666128147807621433705072859884649403157270557902653595165059885101455494395770177747337605931493704250442727701424773683877476241228184600958895159439010536713639072732183942671988704501029339986749672539167527483965208033098000267602459758729085918233175702346027964923614480556667908402288268809899942379414107844563696181123391440842656752018686148302693529872399621798651236807442767452448969891459432206601794884986961529573182963111554856687189208352331359347732550683891131754639158829300152022652096367027090776007603073523779633566767179712814662483266235346837600892347572636498551193945211185401971040555943028022253645695000147128156085053970112569479707582232120647954105819889644088137898213983599341687885617110757058757178026647509536530849289017746679599330463402632988974398933794005155427950073453450660968908967999934356734681736713546084230869371154415994265872247262101157915527587898122456622320827417033710217672675713513077481399899650680447024002993171469370757561812698776793564666750974995526060559155581095470835733842769808900158500633798276314478926768836100065383704062173858302721114462697326434552309705825363756256639829248058532050653359108738290765379048732734518686850777489013767387929162058958543111439018546478885229705085486518368374166410381181710359182266890871207944483751290543648798806110092283214144541487274663427607113283055911464698410297778966243455140938044797243605967638079640390031162383184220260098400886586131108790710055235043916779213293414191211585713477572374095991389805502237598676378391238161360483764743514389807631418571393527311401831011481200567891490792964391208395682652295427284088553724585461359121243106553423609036463821071524940685671569471413182041966169434488700450628899133316094080895734744742210070591829702592683908317403174495639054261296734783911926422458898203938925573084950740642562584236444012140335744791488121787903526107514545453695593114789616319733281402073750436717821132756696602944674239946630263557710522624824460124656911847335861323758621360515025654914646212664763448340002062692899320178543805732173435083459659722023406724688124965379767813252866312931853118432877446001225312556917094135339799991713058119315942774919224848845302692577856578450631694680446614935560322732377164947582196137663158558966808898070706799397100557758209389004714617417352389975004879957816186432106369343043179936910816705866378142918168078210360256196156215466857614034628966335572158533190626401452760960493110076433456699684023567722491623684811248965549269708875449771379915091128789838942390346291585853274834259391366790671026618276051819308563588269734076900535092331931404708844333641932315540583484904829944652504570716740933840020233407385885949073538678765476999722491256251343414203622490451301913722686367008281456087284441699391981854353317097354675028478453093123428477196328314821628434822331508473405244709766382485021730942506600183661203949014969803339254971979935105192849042424053900586010600911676775298690874254952468212488086803605132542875831878647352610252039295434433103092460492478209067391415292713757501393174792769663008436903080886517803115220077430014058951956260936173552378766390308474682159272438854727973451761108270195623207683442232194439722195360455695471931610139351658877600169628539559763491891426098131506029878521489831366992173954526849945326554060884026737560091650494116896470103200813433497360493960846446853411183870933994967623641795509468658229198004563430075660088399032739786454539947156945302687066513868468070455484336712530344394642200845652099186863518043390384448129244698270972670048393642938149576514551291174244094876476314995609961549268046326225876719253683012251865366613628706153988690250863177200461080635121389701922777829712710684301227157590474894368989036224943286217436338138339704794038419554523401485890793692405333185632814333617049813321681305556502118426994904407583661893749796771148934325733614051209628149257497380303810142239851723240669039682410317333884476549557601505918794825654570848619183885888583303604898661342463613982589026224438333741306304622441697525104932426343783658238350377462921764356841145405784984156195200053224314336356408084540671087756525076033094277413630429909875369475475991492496774818867772669415250429772358117275987327656201992922067929875771695931878989715088931364873775643961632176765014877881071133489951270491080555893807501521614368745819961158654439083449057784553570963178251469367217001789445514730956875146025128240949492220961734961721354064142091012445719510277261514130604171769741504205113294645007388098308046073458063504851352045981114850349872104581210308358601155964353862657625955044725919530293612600039149348455811443799999092310795895479819702170512662879892618100822808863514999240217303186360975106433977837093034490750634689951727417478374462415949465223373351808530587338357986632475014955423840649447609131054632824911177793382653756195540341089324464116146270634302440640365690405654255951566703849666292202971624855209569472452363634361297976425829848946438273042789926427682951908322497674608257069932025693231905492576699382273895527634945477082002862058030683934747143332176584210128616383875851589550581593216609656039578051135880994681808808393409250197824151194702313042435900423304806218218771374958722378726936490837615680306147467506677917864626245070072610448090780012400772008793650860960286132083572356873579491841866244343063371946087039080612021572037384443202975825475043913198436945147716169253002264566519106816670746648058831430482531392027453512693157309696038342196041752507623886810530091226199915855291830844513003871660738013890857363381782147949355551873877556711979665613622665010452983449744243904532130914402723451473087674588363817570781142799068823155062365419439552027324514714691877006776660303211600181212224631506651540538782757205976175114908877969234019113780695580425926744651029615724830133295732758126084797337656081442509712500297452153488926314099875467032085744272440496031676220788502386649204668057799821972088472583251101122948161278278985949041038565675093724864278385889014648658329954243249027093554157303562437577918691315966256065816812651396592022482955354244652639695366765226946806172591180554621410460281355059689103380725895482271854309444939546507712075358741671703253636212962853805814593726289581798759034834052120139847323833881244863016623399922901207695129288929083923476979550910129049812322311967633619284136866749078141405899444157909062719584075075117263024542436420603221286960802445310585802574202038605718988227604047912966232067048468671615391510252573011342559256147374079179452194336592308175258120638316117784056983786186356526154589626854212539507960031402288585376171725766598209355773229558788672080842147697865201410085407136450657766101908272490966922509410430145829201446124098864161250431221072421849011239984702457146072465815591202981192710376764727180939352887890314067626634183264942016176951557003904810930286904265987106990928008449282188356622754300868911677719695491991869080716390627514403056606686714159728375316231953248993741479845222612113741785654908052192242520605779556570087968618451803919247818467983787012673426540852237776139970857997017041570111574577395434341728034550400868052983369247869476479453415294936567857473355955043374753526612510996045202556242419823544687229426039053666955323378919135268071804228122059988515992762189564778619559637655976693931795452461378207010376858819023399856384642985218348884138575074030799779652213091671573163441456283972756529963488420686461463337086016339194067330789725213390172975427200474869334874364239346720837460385490340537396599216224483897417770795023365075217137250281205468683858680253999277413089363091085230660731797558100099752837856920394608506273087680033058707422864638757515344450402786590202238797296295486394721923717106362430825049574433983918973781659154809878693823739548609196477950707724595942118251013724705652621656099712201747956445172515834943920291661507125416259868708453298680992760551072735005635690628383047460509811207768622542188862866932861724937565424971781357509485658475795428987818372634470759738298808560797537675679568191468532719358204897920124305467570985634973107966289451477258329327942647764444032809623637687312835760794324548996154352513792112913590009885761148827606249893547164678902491452864502330190106062583238824232379563722156794362015609759821075887645591592878239143259007765998437433687310338770989495548253909992133713090430156184767906764583979794102967704873508568555779576997352703135524967396679947791576396525965327036152383513272983954831742388466022704215079756361700314656376970224389844329059628173025140089766911980811965765412554587824382452742792411239084912548638018733465341214780917431557471289698271400972890149830033924461643843486466664489562991499669213245598500822036358045148832018283154695350849564835010641356778392128662780779608284118698395502511311990408233104202725458862125132279076526521362750177038462069553550369003318548483443799080117235499734179497386059393209106536866093101780686863060980585191852805291505346580247368513779493847575349197028527601466830005996148113567402686929450995409558737676608528552317918350258408862402591328979733770827321066408921114039538379752603707997205198539926945627367864523121624208009731689193715596162924081934477097750212062542128994399437471893718173813961638665324026338294942328305533527669665924308057129040079589908816158168805431371265718103341063573220816940572362837476056222570209455360914403003779620450898378755350007382703903669866361541248783263362213089880481643677668752739266591440095958222134445965240009096029880792750365578580527542818297356168434069648528593054459757820654277025564584393513582549087596602449209906282694556983608801846316167120695194169371059383738386720411930017319379021802059566043854213712613724400072437530845027732579225821227493986222621139085409830093238143870740822119482301424730994029886950901599927347629685667219150769557490271355920929720430659159648536007030313961853565805319416130148697327855514089890762463778202239060812986939363260433176744242925578664901212420448599272917909405781855348699503237803646784447510310870985789523355138020695942376003109290793854996004707111136108692755200459795609902310971114485057224446989045629508557619790394922560781640142537079188075157801584430614105901867058397653748431800806317839226084106463278086373204887366380060281646256796051202157669569413392834588522348435458391190962541214658689656045982361796548063523110682626317569014017696695315221094441553609077898182383754508879450642325557145404582551368476486692376379421860966143809000801408240598427169820837429141119314377623175925759459973006899797204480773358798507685714038724164708094499782498232465843753189110790087238356049851957760996375828503081815876095852499455875003789504521508310882674785133444440754116466928196073556540255619089670039601826943915546922208328136771632185573521856497994459246932613632030789241542401611841134900628288711284869604568747180402988091538353720131001252983368836593123504850531866276941771634718127707642204561371310753694143476498182108403062547234829610626023775745325819866428370288757373655147551127780239245431822128980817586265539685728860006877268544819671073396772382764787804568960287132229081112267601780626711097106484210737496998776027839245910482688581131750286022332153328508913625146814457157127971890207140535697502104934519487287433527199718636260703679051422505555481526442891671929336879597462786978579083951551601012497223972390250163145800762584613653788913601963842770518388610058355975309261012756032268457497888140621472360320670269522959340700050191495762028745445202362964840312918033996578338772236915672130165814878963517429633530140203176695735549414928500753971330340259667320534085042878816168117123712352842689957488269201430112767900528474749631946306898595319640530362853832690395630597730242396583258425522718577909473550628830423813398612759149261872868955387403911222171878992530077007554602204458813252427040437325431972729797636834376841329330860598469536491980778180142822388282498956332737567125935086612401485329320780544756087749159763463431907267197015438989951515208722890099096958568021301079934603293999675214228955507464248012336179882336207177022837204249638983790075851614389842189597556790155710634616586918525188965684985176309471725422611724226481476194628825667817784248362178263634577403646680065497594290302459146363883054918793998284152628252142816553220005309381466371101986257761466813953847021220328598325856272268523312368532147740246411564835379989335465951210894443167918450005431144010320929215955627832263818242208983907979612077173644746010677455677303799704456802697572926370181369540586520129380862712596048745116673730646946570969880488388640931118607073980156396692073403702690747630351589907895637987756667299725659977781902588953644230868033722391444028838469103764872906217586086137656315216840660202019207418686898215745873598651213104775570850236272843034026643699975585580951907221942912265328362428765278343880057795816813818724446447747322757931493943673244431252096924306944389304139629155623855449657902496921321283127905493989423513801925760067406981218457245547542626121947537116857068057712570250011717594270128812435778579254161671144900717546331320465448687988430287145564737516129711570791277167987946212437452021553629807667454413134855013828223485031357246486484325816068704101193350936269253066559775354931626492579059029779935728026718919603377479384729622057814039263359746541672333921000399297783754863339166849821936685820706668393709314947001808069608709909281512132131123474340934840966423190471107658782831577531134280909082559602768954481677069391816588570475824969880554927585118655542915353432334729594289594602961461452937052506071156658482173233705394413723180818036140715132583755926269107503766606746037322119274679610614954111156409916273109051231334655588120297295382571898515508877047789861743545479205108205363151053371450965573292137507134741217865504236762636824611835005177135345568767533770261173634849414285493506698854623490863803931898287000330845494972168820139735834904978265383981012501240017082087680135502599219837194263497827259082590398976886333051153598024366243543540503805921266896090346281336151514276120589643116103729244033728571107806644998948316512176994547725695447128070599603257745181341471402343634159478558802373339553998806076690457702479954085513163462234051321924094400483647168710957967521841543818583801482202584996577358857513731169372211545887486765004231149892607760886840124716721968749381321667602411451568685891346179319629236199600555431369433581931149186633094418516702755330355935262593550169545324966731313679740700852384464595192770057603437563243893852730329877602697692282431098875537781902256129147839059619635033159696118299358180481409779499041824778067479201998193780733128826806919100101016272088103202815380656068682901396136247033266461655166929440972353785621634224181028935665348965721224975522181505471226714669936413663177025125681151626037225273903887390162040896240217340956007809651578056053193175574131441301459830632255122412521993429899778710090308624358243646506971852341068884478450742871862601545779805066873408054028173004931082471019612997232052178169147365834956443149807920724747765416191841066851995451563829740097415774785318631442627179613183109611558837156641706861521184146343255993293398528916264599812273539201361101644111813745504708365887303446168045568650573595805105122655528667926664223653814177721744103060539362477697810638684811428007670342237801303419971428361928050808302424706740967555507606958107500206814241228276029807530772884985870334227219231918695884317570138625957501203617355991026947940067196964954011400760837741831500369397300231409474450321307562140122212338893335344221950658270382396200762604684805487321543800692839559222342740284172588207249966893717400553468071937491595593718242050089770052941602982541736418399741061943043102851588469276208083265942778659215319550078478127873413377892904825074011378242412220243586053491802581459892127243954960564052881189888809204626300834336496596210286670763381880053598091820880223670746853395974635371323814529670685563201893383318180872506853999596308270221185518030329500207987741192395664696878269961721114289563429752382317773529201895536191483686623806272265953640589355825645762475664249517806201754287161096584410041484649024398215701724101961161391707599298329450197288829212055920003021104209808087958960782428076613833399883567222797641709192076577029790916311457504868373114738670356478073664345974772841310613016360580199490153512549195299964827099194763551327393359500913532975478590382339870414059487809557486700561516215360388175108173569097017131560675960023454913668516663316280187666144900451315043092265461650467677706743583552245204447875570250590747928718830791645048312049400973901368531701719777371495697687928448110131557287005701220607095218347912556721674922091481034554046815385931696122914976167588617215534054350012170954036788250306173833624502577385071347102067733278650884700051736942457670082547272764441068371065444792227521419453060364782458517683820254503099955798812443143637277818564697906161902287873647073207989796685387980387972006909828445782772403204496628659834386964054409202650515543828617780631351610942771347868784881151382206560905493854966639946726172173108256242304282643521214123002596168650292786517396104369886195553232661963904757583831255346444198802762595354695908999459276565013755646240668698380900243423574723004489166161000150346288679821856204249372203951654876870713568894565202888640301932808686609305882702356207155813264477459132754934732699507247940606438494493791038568521460158960776073886230019610011669378873052739166946221690921210295401122915488585991908551034333891395430979739572206062649263573147715233174125612298068574612728689160576057155809939851492728032020184386657918886495159036976826476306324867398544025157924925429110803869397999217002231121423710174344770161886068647524739792760339608533037563972055791333178287150835215074270626617306743310960572450450890422071784441342004203623415764024894321027266851423216446367098886966650316225369328580032716843439202369855411541139957093689749838610228736868484364856341203544294233572255468614365638122159581287271790969578097301448513636999234609965199635647162061065478557147515255822073181998556402717001610575083891942561713012737350135671131354489275336002708417913982992605301453630609625716095308112758419044961825281558747120808089769252386300288920943152757847454013974607488766065827430065797379914666306898193792368469158360517103889022353265170205678552425112020110546475133100123916728713919946039897286478817241214025169235722603439864596453126009285582625785419052004393276427460594634321233112838310735901413051285119115616346285889695060119087844923601794131195367089228186354190103318049467904835704737988274231296246098383945910980283171225262403950432931425601439961250999153000618623738320856144529210294912637520879907087108813959199668850605257406391415884611792490769288225448502835060147366750470492399102967195980996214640528094498276889685332014115503913496559128724809015774576527938133090079736131194026323910143434367720188765895613592689715661501920824532889711357629644535003948649510858557604997026438684942048966988507232747287612738913449155183659777973869150902644023550054360187830746113320525378377251790184849807107498440056966377407392995749562036032060585204746792627514376505387813013601186332930457252714857515093688826366076741261567229104411391226199074207549946805637370997597764037971540633237748135583497649085266154968882135041856468804626052322039413623728531007713346515672283968008514655161516853606589883784793507359498943464934495101180943678901433964020900470409069313078898022062826042673673656443906532629335798462943097851818013672656939329605658767029933144844561750384643710103896478390387955019643341852628576806248954225463487895441169956604501408314736274895167356249265368981255629335852504055438638868158512129976285037203934802680349207406155668590728931715827643197587734641530035973428532163117416288415282749866205982197320496524476834973842151467808813721813086425830621026770969274121588135190112913563016551879127766236792876082884999873534545503720581977725053423536861671783402789967539097782132312449026599740253994127831956487889832798910706952546501949544315211541803843606997813092778779232427491888913605957390983736563690340622954200725266016011739534089538625177516001665261343193086469719793913701843446986483859330776821098951752701494725652329776215375261451148961551376133775199289906081122642235447606328512627125649103919559851122133174286037845987644317533208627194551109651709565477782680557530471760170991692032668701039853977727779966423413979647202776499073120606526594606668965338750980695563091082454852119407456945257920340724403136726939122651657764342841057684995833202389019856845144234232245437346037283328348813779512677308448824151013882075705979517875520442605824783646717017529557029337652211868297060072123261492775715853539296226514633143985706024049522258767923070356206170149506914186527009321073955066679608139117747244298846262523070449845962402658378359276972013941228760228098518571499316574716087498387303260891335248913124009417361733643151785758725933990118140671896926630551805410486807789048305339823506785815708308790807748519523367635700991151345587432675295944120912389911365811215044976168266897516962846804654466539752288857995300048880326823628509922599437819099824002693112401276280740663617466175161915193097184171196801172504049114862316488294341681760070667560531426454860082728724177394534587125329729783208423340609163560902171035106928306827507535519250440364335500020458813245287653428934924218539783007712907939032476768871660294114253307612990610529166064906873840717116917988905848664678269842835377261243281918294112780235218100635809742127388390275402223066981389159688437419404990051758743905728436040961933577486537657063177686558265977089163276503957349445603717150271942420753224734280101275719045995615613269478198907293960860182404846368502073394791248482868995945681883946976946830675967461420325779188666044595114834583902450935734306823952116675216758490170177227707387326191566554684785025047230331949727211736067060030814715132038196000259510122568377732356834392613779518906058018698128810258960592947810772274932097789522656476095665564100748106419635697024193778739541112847896880387044785351770194723341932957249354422763701111368464335854520067814744917382904378605340678232380274263335634975685613233819916259844416991193184255671049066645395469022481539018466278505466113268283081652396410093642073342517853112922919392870945041429178219274841565171655123137467243865978127568290839803702172264008044578850470196806692968579493649227503761797210682299365423305651688952059395612999154961716413428706768973837193816275613889810200576037070124212633270752155451505018991691143739448590319556408462409964672754792650452001853780932815188683103452936569803661812732527027887030694734052626036922674959629212311651016811590680855054841701927633488493676457541494509511084596297867411196290079442904294665995893573672321913011550778343816057991949915692731461705130456456179346993697918553991334755113017566946358600901686748879501386437625477414889912845987182347606129961178576947378524300399743356139574282866371010220146081212583208462034029833729781288744402127137777981548915686068052559752116205109818615367133544763238747443397108212833668501410741322058504834587871544755569419459817144068663520438379683945648055682472967537972590509704259793457638414554628501664949547643709805707408439437919864210919872476865497210074664523134001413147026664235945408376110583799865294903495916267672716538135899604030979634093703774022855692607567943565211673112944326049439490528892687193596210280963470714702328963150597027055512306146544036511573245526242380926264223010063351949226720926288763192285692878721979793856614254871346265232618251739068394247202288235103953994069516243068726434205684673475422698277849478040893659264573363214295621437585172445270172074308279777854404841945665894489358590068826789218757948376558404569397350074918882749437926561571133626731919378703655089603005841480002011121919109761749148835036048119542058546484425105439274831788966981754287672820561566266939912712221231133520267325728338589589497371528662977461448129072328993681729605205885605233876330259664958992226356116205058925565282909065949864832380811375513748945471012756698225137572219736829916853430039245223841572858736496895254166251466114041466621555356291192993533192393569578380241246515253809341436993776243935161201076030331041851640300757224590876029294375019243306507531381732918444344684969927012569997825623079577097825729768229488049960220173554411485471030493293185094264967760482468316357509526271773936636345721175878139798680927413847300422672167548427351458349440237793343296348603639704240187235967133752905611464935358308795801684840883945040123570225206120845134787281997432713440151969215797814557140959124046057374468238367411421245638605978641854589945839654507952847540658911113707491524973151684264315985494125293520361483092315440881954173051344842228429659626045996757005827119898061021570561498038716662662508425312990082649686939502182925157452357195377528133718714839147996700239344673769874762993111302470922541237586047661921826106038782822594965406144628682632208296864165056113896876177652743703497183041771606877087135044930227062773367388794199885105013910155041716039701303807170784468707737800764264849819637496553095469954849601663145047080815876082454638649584782653027406473487265062985890915362771768112563658135964522251021724520898876748178592412433410331146288507295464024201172296364384947600009088385975300287309304176555154696224002960332011683965771788870212003774920937073652127173917533821324034116859494522145057420868993282105052263346818615202987403056125792307353047507151475738230039764547923249557343280830778186403852306771091978203314223666421725826542348586151469144645394142524128091165936371024439073477761421431463523345946734941630197225765367770701055287183280815948166782019196952038983192757277128103147232174149437389947076763931933719109280048984821620634205226623745671068673357378667078116916926099289585275321074831877801283169885909880577119600507685310048492372766724062013214623637080005392273214930311297921617194927800026022351742309838028827500401671514801031637650829316636751848155938267922846628545348634731852141627305409247891093114004589253322935158240696122350955981675865189748915745784241010617624365157013247718904882504825943202315956182578767267901195760430082105649032013017678309144145260423653959978324379016640826686643463533038741598955660442358075455921681777704924086146639370396824268786393489876072077900354880236382675574957877040919195604327918783784402460162170360568804988587039215316400108826788010160277863554602174983131391496572659360858059005746178119776865136170086662205010919718060878590401583571574549327034493277579853644307808701332024060418062026393973127611994306642740545746397949677407090963311497146505226311152835812480653929389811429844981036448953961528533476472066207062378337947787754643498099094947461049338097309978076291544090610142201797181608188185118043937804816009526882902258370107298874924785402734739027020608500317906243060777070230659381362113397901406799819749207812348407057181352310874851042220117669241431140898151456283172932169028244667894994981621325762488924288982107394466016200662463903925848279656834575578319191001296604063061514902173618400573682643973468568298871140826536729649901888808621267688012801622075462590479755460661802316284881148197464492856448593494373962217901845082465204395002910831509440710207606338859825322286255190941168459090980173662082254470710137494110049746195306388277087195310747606328495129817168320946062012283233336165334585680742192209466884752192067328051828777353505847653076205985859769699796584421131974277973083435849318514973575018096791989740681239705571265713952528133734194101914275216356238668360725970918887510029614630825794863963605181588728631413252651243269241518720571061200358813182987257699697740281684723123152773861917998112756167795966486955803459340846055137951673188495161337693983114065273756600582887356830663656709372781932660771588741436575536972556898102188676489146458831658867116483134801607924593043699335474234918346598303454918926808314648667572426384990018422020433144737809956334229096167438218098778500796639823172976255265640239041096942300242559108918618384197143001543510719354139862623540831299938368354148097644384256464932816520070650793704498498464569772600339251218544235655350783149202641839556917523124790980760450604411888309049350659053929775640730309958922981707263383883341838429457096138630899175625200659742511104590574964112560874754465691288971466502365132959657548284934096419810880356159706852094396280587852390572992966598959361934378884442743498836791431528221186054188575593254603724874167141158138315741541267034342479155485168353567041214540709322439900159453173530123787044475488597122161666880328138502861070610243298897743050605276186269181185301220709129369538500776548272681722621379602824662891705785319672344829464041224629644276813523055336461449787122427026128467783706378143054582999628301247042177438475841578763252433800802132561142302287284353920078213051658058362618163793067211518968189608722011663995882535050789439453245298740828215871405530185297259312720496801568468546421283710130482403033549183155238515093209251245892428751146635007306331843217059542775524947231327534180234140289836623989832410368494770343914220855519236162378089006267037635135969998309721609138332311501544236209141363733110081465072930102557471767560403582086105541975187479882748225976007853870183535009637948256438933982057275622167341455673829602471129683363664155601527817952861605835941015273874170899357070221210040799983658517807671668532021506910723914508214813927534650270841409771598290547658957651377651050540322419029745726738835465208845313142416854143282803426607705922239195393385281597646984167670749040617614541639277046998032612562604126449065974794179863090762920547912369501198103026573823992505167133731668787821087264440637938590314186692062744527186240083324030474508850518727918966806166690920683371150263285302924845719777826123184801998551311822481874117308484086109697393130296464964396523192193554185577901885929898445121804928070232629406101011620091256034648915359015779315090482163372435380136965991177570688632844179425720868791097602222233959906001288160327383298715416261165646755770871589636159557011782326041622564192092633923124909072443327558215019180019639980789622436778889942336907819831229586791301995035046011664942906446172218871414773752618905992970035323653301403045457203236167510331317890368249724722538022595915333803977933004246589169957159720683681410599516392846735480917198760979900508360710555985438274385430777986497304372209440625348362891111005964159117271609526538260429395145857126930367536671571078896035163187013939543225636425305240480816163557418485511456915689795645920955749943930556946979000241969642867737343074855271957085235402462271510057789174179476362837458755379387980716314180027127130598335953611388897727458302708972944126436661231253950568496154852009181540420178143170056642209083047822754085982145973202863144120360122256474272133640409578706337199223780941985793101985660313188929329637133933386890224904603643019394184139408624270458868903801483799164818880159940839696830425385389152697750188427248146248804726605104747583565736037860766371804483458215699341840333049922481630923085956821912063136826841393860278174713731973966957505193477957577931746612391288117108551733039044452886791486487751574348305410935047021083500305007448944620574548930122750298931163077240784561686895491347469602885899644713456384917715369822613174010948174316297611685191666388808396519459451142298221487096789888011543684073540994582451550182244596923338291053378135376888560740757332857218336192557623838025320645214630428206703489868973822075339181365274769042406082861241608380392380712762948589066780006049589594577793522967080463919729367884649898541473691572328506858273437087611045312863347449244951555496411151089402360459467632319384552803798916297043002159040439156188749218960138822013879090220794687116362779839994888059931774325499610281173843610990783213830065539785965028003817144581435044773168194368487098268165643124365820270158034089701136031801207859845469228317184861938098762720027050865096780210095710334124630696400548001895672078800509178840730378991991262860549686183628121173710877572948841968052353798121733969798478656781026578912120416443711508287467897095643086669160111277598801564234631720542112796409915526153484100259954488337389511663819920106119248589803169751973489353923547458776909867627617973085607720546630244215641157148972756890776178517703324963149002730754056038952125065010701697209617245240333676851471743463560542816648889902536010466322171897397243262784188889290924042702712753935574917914164779912192766209678891508406146772176693287075658605456935890525858151941115734542263728720645287559231662156836178170899087700895321614498540658561384979063484014608364737887607362960574686195711239587547898729439573415217822308148950062788661835279621343878275273074702573017617526897021535555140267755753322760165322557148276705782512552723401383295683792358952232894467756914858195850692223151378239808550828194140745185783318058759823726116697671398731457455649272133612856991985754608211891876596025102681662040713231265239524626512838421830619751834575605721242732455954497927560896430280499242149174274914501017257984475857504991584539219137414971195334111620575881126950308998458319298204391525831295981913444316860977298813500023925973652433912315707900681732459568716631633499748726767923110641440249633069853573895154725418724780486683279982552438248030433185121727330375737900232964775344248481002067179702385979873273951118811718972686996382930822082932371700764948481936836073666176187395425862784172211392623710206363848641907399135578574679770535567164714266039384846763293763808150971087788705869307692147212278757764421310674597841460195412495773378110646268665341431292027575018935053550702757918973368739833031110752710880456051354969809235843140505139213290581387244283216103187769213708969556791726440125732178442495409531607361608949641890580657676008517604210344552398332845949369343784201385151452521923017813023450810095452321883451351696196971222276633263637444789328150692298699169503777152529645411493299421912402241504405036586481208185079954784418869827310352426895935199477728895829137207491080295587627212494137499958910659438644015065428987661416328506211722286156865163697517278977151762925668665231785286951353086063949234307285836704185843914898752546272142911252638741579004440278453634879765286074876672706146514130380532600977200919779032551871687668999937795852707258179411362630178374469953037891150106097436820996721298969527063982817035892616460774706689231238045031876272871861378928565563492927191802252790659619459294451566265822464067949968552596531536684702509568440885261672642350682971601774531023807431793019518176240027135055433121569203686426174017936767896664307050175146731448658718768792558169919562258472958908985811367667060370008309024783604293350186612116575306478088645444780172993359065163245298304980825402382429348474955966143006773980109883170241559726430249436423534625714029605802176003340225220236012097895165233052632590285372101600754050771515096084374621410243290364618360382015306906102188148773113115016469518522916100373628346708667302540513707143275403393736120289439809386704743093457091780969991822337178417106100654842787519771682047528802776357486554981319752079502933552638627979267112215741382482413074325274321757503289811868691966141377970703125871547312139570004655605608585767422612792486791546243385021941363957840892799010523963270199496129026759869242046602020200151164995732952945670662086429593802334062872133893958482888520307200189052929766840303278878485918976478338385995039750458950124545522107587746883199994722562165698422724379552449333844576055245525293134328551182117642648820565647747935373972390612386052148737364315068215925602989386678816788718125896475462131568465526980632738978640540299559273444383320037242928082659348033471651811488884537019137021923813127113240389056209677081364217437673704915528787730521380128326393159715197311222798855585209406893117792061363215861566837062178666698442744081243492692262056212095652333586639527699921959824587888355697708873738082757402949665338438705992713023473948981968574951655792087199617789595462265767985828801901752870828792980475492086060148039293171522782850342753951856060391490008768405683838529376734605109317170895168469475382143865542371310972850914449864435381611458900757572267678286163930037951987002219878169734776738778479015989482001928680638351798750783648552382547859342506775636106086640585689174772244006207067417028421626089954842773338828494671824568432580479645691030707432687036446401532599882277157578132920099935069365645293487902399182674260451774629537078915386602195125116916141678251971911182702110348576209454538248160296489684034027915498202222066005442927670420024187971953011562403783040103719999409246742948690559618014818439173728840492921844946586145357963212244302749722019623938425727629231749867513326190254938520614532657583757089079515845652268687356620597988308758019396471721254138531644770513135291135536981946263600912380105288988692226938137997295881955795783215448280023674822021246130446743271508712292104227076162058202400929475966124604356207476765114876891583175642384775989912336924929216350016841576453113107845715163540101850487459245482544418225231226135081806353862812829120913809634674881507600478781599765992588400482164770555822197464066431844280380031033596730716450820863620825104530173574169971098531241713556720398906120781199736453778402187751885753686958972027376735543966930785301517986386274302526156255626481287167496604244190282055228762139095147105241964675237930807744358976461834267919739357288694024956564364804774453527852192225013693134121709527386076938895481788527215905458554544648903328789878732095077263369091496367462607638740500650452111289202824073277699318463594360870509965561556087211344684676423589576007217792042575021632600958671954829564991686695954215188599086585611861567518417855741055120556726959602744764137188916613572917114782925868590121778471770601088128834970280840385707609822936218482875535596964172296949447525765200943756744192934151752736387469005870790129620343739517790314740683489622638487158082192901279396145454156010017451347106281154868516695667137424656231339359982067359197323842367796030756040657734516688974925963801615793427602270848067534784533233747133475290123297193708999193925461939893709457481394082743322675331346747739560231301122036991067002650378471879939413065586223877281790366804119163904402624248001341819950512552653152086960974530994379872923020136110976610760975011343042365697420298204013497949084759131106994814332828834744592650492212546700819623260302953844980454968993495369728815177672998580837804393584118328694768707866678371346210604018128776915177501488244088141857057177614690923878234542433968857180114873649079077300302225901733133047477157689905750278890707066734733839297996961288334713450302410554904790848514609605091941243413040739573542796787805535401235521506709672259163547322911619930622827025816396345257078195305159999732838485290395065179184222460087808966287102341839504578336710727423163119695549286361729567706381076790978801589658043134469823881096718525833348068980944914040708521885644873909569476512340340246137514183117178227380455704515205649293124659195820169672329472125864104537333274272785129884696904721801062125196432777092551626857399538757454683188517814093601147744241081721608630831412872889685532173001107772243785718075367625342795622973837472087241632899218637835866423704610390089396181751562271463103570573211061419126390958353649958597581803452779079892119382410836200647173811821395077281717709937583219833458714485357927428850618831904456405643524355464143160595070900087405881805617428534941861651519514802568796475306194909969279955198829483474301951129672648694028484283815296912069131816481388254279869023113811231428269656240628940133432207947035256073126161685849180747732835010346440639186153216816111243794320806663148815009715951983419583367398994587886114467700373269476336088967837614629417226497181265868052268738343613478773615632209949762572962590114605178214860289872584031141742666300158002678190465554209937057685170943490089017464740604921337648739301619057358518731253702462217025954727906399938579929256325721186277036966056055763299807378465559411127931376159265729871064014206154921484027352553886042214315154465532189991274114325777685628037087748709915568139448905831579688749558163372269176117339857746137844292296887564115569514947278180840565359684456779294709947315401916459465811189913481792564176638975061843023213914079643608802646836479234272933470735834629172601321010565214702613241543679352881906343826576886201664381478539303001862164838959399805288340207813880905215779052936465436645261451606514373168862159132614859809495983557211657268390117207365533612984092431006581642660387896729570760621498933982603783106271231070747301941893148164059993677412999853671735350148098501134596986345539567793467539845765856753905136260851433985015927343411983972936534111866440602795537521841642646372589318448380683323738125192023768110018545806918203523454380940477400713642870884415811087984204850272040609391579186773668135654269626780977066392948030542281568277916777672689037720828095110443768429567438452654331309312673267124168048797308755143673591841706966007383453748969176482219901758218771210073539104712437118459705565199780123383344249890309953250978766261097678045443167437800424816103470544327613898981376702058459651753246280033108783283068189031130120986195671547819854433184870925757642769860748857962835831220669786534604056080966153419996581286272440640835395488211685662056149904966324990618566165768428315435915556207086779100214448136124631227513628070543548568567521717392006751247387495855151677645747450786501673324034437702461948114695538391440521550452011202706561893696248303355830880608001020217403615468683924250026301181248714687922377714728215176019439099003763842233307710269871139344829340768689409813266728280248488947781524898578737904702515123870382484133781419828605333350245309958718292039129121550280615182732359466994107001032087041316670228380973336683199289272320025815243546575223227065531927824931740487929890321054143417335268970029172411494139065873628502742775754388159812531115693561797643350228584741048176194236497373997110337566731401615901786207556152214328108622112596827404018845068694480727685743982093635201472659982692472358087616608094827164219932384468594213774952924288235373423948085256641914197867918373054770270858603201514713838553374460682360297494592142908577461563325671155728360692729718088860873141790559519876415410302821891348519537990701372084062848536943699639765476905601296246376358846489132676164985033822030035973224611599791077975773204425112406710581051475772058899291188464122989459338762557914131633638502693869602395281118183567600926961811191776733181957601039963486053492458004836784627473363470214216288259140182166233990876229055397363391583852916637945058152051569291491744279550745624708452048095070450358421445051269989039734561658476642146520017518328024732291342555224489349650130802983592355336126253004513804095290817095728859491204153191260933537564046963422150799069566211875014244645721995255482854265507185227630293641603224956327171597718547527811479844730857962728293982528468974950720253725326256158141374614812778520317174536522924312148995841088533318822549638985442319086342740298784211636102746120736295780813864803724313106812605693268309646336121149707159151643678871764227326206347441712092631602217822661965231480966771303892004036678726712754913426484770821807602937610145393923508033161059944921839634716178540838312699379556995885534224956196010550180168825415855463187676222835821269852781455729081898937514521997743982357674218821018304273849794579353077886318078925395836182274435171067846703475584548375797562966199775245585595730376301788746935291278461167164920165550354105348236823303281831227195405565214592392530707702637715457186812376481180863346717435747424589055454820627590238120428765495488555435839138118048839339445560472260884881271961572585519895517059988811296223599757590040050778217711794600352381924715720229497086092082793623201054767749069042404999174513734637330968008093089406308704977969084989644464948138251974870836081144836607206524906508391150272092397914674583557560583081351871820270902184835980763090271060288959226434841992303067602228759668152928137242443067146676539504359247214372667393093875780375773638086835588643499285851732143863232784424365063632718419834696213748379489613688443815431208420200668297706303881217353684863591044608246846003397252039825245040408454049086457770483532899203123089412547077921721356813997468692010293224732505135855850263126206235674233924805416083715440171589546216312256182446636154628492324569440027957131995544673301113459408748634348796868664606053369419740883115122563267968437593556806927064363697567664519519362607778025774025853480669347130715122685114512120323965140523024016854919354276426946571393298440387382550025074052173522361628765970981838597063712715375020800298046217414678830782565914419395115704126650434852647774046414086665955312637672097734512305164553658643656825209609062431263457043030681340963014877610548621318098777800673551229801292325391171013347436881552071562015122656010261888384498427043127336868093958845936828024093404139646561699971203565247361089064936885525908508136173637777401803281050534312572588279467615185610373288408933418747887158359802965590011656945893792174753632876257442169908501526873736657481375942970544550241665973867595498700232698094790326576891355317684244984363675456733651294651255850939539152070141208848075350333797175369409294559685034962830535093894080748246739233628708901104996071785920193032060065543526406303414580376090060014463838050526928119083055922089689973259395748887139656817840767959192005086266349667502181598597338640331696616680954675625849926575971706532240907239759400223314191557462199864424132834373058010373020456875139249361427604519952018377939785568257385435691422210697804647809480375575326809982768177265004281477303160211875479647403424933819811438018302818061214877259509615324070867836365611685135974199448928393729315171983292551491948798744197163175084203938302755848506793973707960459688769229569021326677485561866600915608458418629420141595839279178636667520601240773245393713478724090687105275144984037729616735681192593289739659631190783417997279594281845875643506680034213011489777437986165257306601115213571795669663123865201959309203132836011004121748538858822333967398890536655881937250370407004969573984673894988733053249042176248447835869475816530497908162378400708555317207434658278901376394342158226571796438652370427907745245058524046500524504332357525703034678262035878002951167727967868148299921520114950723810916204632270336399989878104536671260160038992230185122843905529561230269348304846534914408980307922890188994525898057741229019447866958982530611955294643034124738449026480114344334401513043710926105715066104045511292891772213549113890036444976383974898502419445877097909996854229942580504179955792810442129302721464537281623751142101953317412118765189069880989026455085094141729850879273673157505040720886304595885088152720143355576125167473032329302772225893152587916553213460087502219269205268045322180313650086346863761040956095588720824298006009922199588869899884111795348008222066528840238715370396432936549623963243302346759621409676409271181730854839939834814087779052348429861363894802067470241375976767724285310566586792919586121080077853638074798313527944208212002645783277198368872740374601627785419399091929161777028957766031003522451069238879912405446193330480236417586898479813716578087429404630418575566648149525123147254957796382209560433184648962348478394497846145557559083967262976789913648359721156413633732536541015483660401568676882762510910788219479988729360211833443474852631696973909169982332512208607632746116401155368460412714751885175865564604262074620382386844960009769202888215195757406428067203865563648001494289848157082687723531428217555937700781779331427852455526131568252736776161952368232434622799637115640414594214226993756819039151289615001177074825213788635894677153428357205288259464647550988252375273317770931157555773502476370582520187125782819632609270011399014612827592370866302698684846422130785529153380988927341256629934342711735330298945940651158264053680832888519193340864621029764065484717763900048256408314069480449792159439465511497869065945566838062429696728239479895331298060498682364972752441734255900231821004448407204509826050111566351050674131154381092827320472669792829799827141748683995445855634023045252960476479241579045177062688425837102984336128772003820017606031681861858667405444195598046252702457078249668949634683358892166537239817745323557385154137260308216174633923141003985501639930495382161386593006794831161047427655929546963724444801042496499456227803669908225551552771348502478134547202719687783141866158853172273681327559779091185289977986254945497191330430964644870157894536707760614467937637319036840645616816345481985692766618895220984794281821176499181350943877679319630728961393330670181479823619359129939746195396541844043325883280033563001636110700476155803283021771247569661285459165614926185234207278159625811028787905722575947896860994885829811574378156458949214536576639960710543278479579789081801129451420178062352600835377974292800502105209786702891042155466948851712753364485544577697683463098301905860366125495573690823027253957018275033319798490367047651662883174800252234187262037760248464830781300325288508161692281224446595432479373442724387304868608552200360609035186000878205441755409428635542637986110423541709677405591847473688520925859800989049878273307344789149351170650110427367421821134939051996060569749940063314284293755388721381194663207200658439769453127388492052718399954329390033485118644327878769794945911485229646088560915290371064974026432877001943070496135797663911968930138938493858546419151996795011142028447245528302648006572256059880802450413584977646069546489463809919803774816653867788274480058776705594627821401596739203621563537182337720169213210834274919773412834628974245732503237397071621535519660328974538398100603173983553180931105876368617925189090485199057732621577471790757682713293652404038608059224598959164300587321377624902235628249644330794568767096284917780522512106852758032148232598136557596619034295332179613579834129897089006122916062105618462558666650670630322595502157353958334893777661973949618156790273789672648380668790594735172616084961979963545329137814166015966005406322309510160311240060754749876609202445556665366922890844723730595044909465784214410026785358257972095511949952906291608616056057304620965926004235553582245168910371121886266360785624412144456961382191478090505911233411215040057849519935644396799055667077411176562432629184939664961225803366402967434053546891017565376620732707285763065536851998256769443225051096982020125513484258785682172817885123773756192828608924086665514985166173289790668280487949285627958235876906250259350801872735489176363627285585627583691708470288754217081127022245921159829653316620125539615698911749183057512382310187941641906841234018909207394822414986345961584413854904836276209523804316466207523836825447273564424521122730302593001879493164451680159844872237032905985866685837296360298811421596715849376868375253852523043357983003898341893201730767644467111209971079525323480687596481347244830407403504825739109766628747520871545724204950278282124133713040495686853063074633600526816376256274618398262835214688083914300734128062638901672041562026770324306219189135893256167501959303037713716482110440057049671555885856131040598526705532640534429931523176970640966470049263367503658419008648415197673977600534421630671513022243184444727426991026068854483235006173077350102715936918382878292304661028402378654266600087589544667937564161262165686658780924155107519535461828286424845886506850586439922991627434104923790037952859432776680723884598893536532548443882954023188982294145575607506507806973366476187091582975175325974566455095446255752755086349449819080707454481884950392088772527043611372304742942963375979501207543579904762984410207501814887576074474316493179490129980083296422031866011312791058985443397178060460211783244774153500456502450756980769379179022484911174315222178227409321823202084132205916565002501112256577961793902508221601141595476701149939318348046162433422745376393023683528979055340685659672962814697311290214992598414370481173893499136334991564149842251395997010889097227785220099617831705671596740891847099048631869627694820724967826481829681281001093350603348471179972498680340188754457541206722020012656138478774671678049547970659811282661812128796867313103691874927702539984253657635263152070350524690209661850154018902980783577473681512829431603874284569703907856566070108624804280621607870352045287539278029602755199605474325274162618808287381949633112228920389704565175381132855082466564360337836606150149143702748640258101289534360359552528157346395800978193071947411409808048625871518382890732354494935446645249829696016949355134664121106129404212134442756707333003386572956473246802884130209969512033773151574178594473994159850517399353455348886225150348849937712326624739662963195697007087513190013527798850850268052340612876812486023895532044719130513437907408354833485702487106719700399846838702276813800108944777312360448339963212951907739397590921529146087548650869815451090774842322422199357182097284988768266428143769610926104051846216422901631125064910539589908304858261677722431338619904240992103228077565067254698536184685089841188549577644230059643887591862608884729933321688996446481001116247107813884401555764840845572475426527378788814017115625194414630640512123760519586592233056836986723697469653298488079999583307738645889956583793619070890502040498266351220460336640242352980608017288245178378776269528890677355192113119498330512766197460497520383460653869232018170595978100886009743809343333150386089047067443539631706671555022479403999719016129714410026973212063393780253184770432519687273474274988729551919674416333379089581343749642526477465073892941059149930074990500808623434127883025570300791492420803200253232372832700904496221888454815613987685067290150610638253970351424603783890079183368958756576056822185320535255954406289578337297261342952967760947138292950259955223132510516130823750477965625125882668557937012287949444109231624763698870666589386928046682847099069807310063225424048166411783623318156261818519283865096818132020130108797478117116613619955851172461230774393134819169040136391052703455640409282635285375516132048095608252916562300005784232074915574003250795160430689278216116026199288032010396481687112424159967691804027295657319614047831033471578873775854999318160540563461754199804640357449387054438023864829001198330041372757182466814103502451093307289624802609462560509865818243446910085010744223148176093462498810417870393189866778130354033186126335156928191358993020171431194472225343585682629975057857734999653528968360907588269517931300020302785018797025788853550801913431090638044567624320000981286232609067553786236656550572201095377983876453463237617474246217901736356587418720667087810833484629938331413693855636810081781478585367318633034682095315881736967817469413014046617905790242265923861804901496962786933543240976697455380499816368185296157818397029044508632916673839932356930836021636252840551310369345665150726895323150548507398906800949056942765418069388287817085864441140435659036236657639213240818242605227056186117486435564085808293543548214195562352841461348851306627498542970194288960317503343584805306256188476354955855001579146819929543732234867067208966602084431228274798396516339517627332714346937447733368129312377062100279949347146268527066967912299122534654769849995809166673985165321887804444638023496501162314426490982992169676890426374783080396116832212052650952237737942443883552352223482250562666718622661746551743212864268309336990492063149215997619896110372292112173163124652815283711546966436470911337074701902584417346049605819827857369051829597976148890083345896486339520056784066692418610813304698944530844020538190596495233916337557685271207697661615969606367784329332839073993730589247857008035265798284636455178282866089010498709218926937272832827437017284051712518422724257879795940293913698386054938995310162681524164367321584401805985247742300874481853795509834802614285145732076992563276095025558575134002204045394737253609297783110245198683704087362454839872544873522831159585137936400634271805283380166014443914483987779344880663401865800472712075549617466111864428732965072419568136223898344043551384774858862067957640908825755828520270687517909414578861513640589317720359904126650243140593332380018080949877089223342151381007246220545434715483146224925613060691731388374749531322443323884116042348852548010385185282057307742662444853006103917880262174956124066428258680932133529920493142094855094948543841305304910030865902750459599933782679956563511474902145433354586509469013058434675137705634382665450776045865512883661535223186220579120821514868774335388373089843328261945649524571334432956895405828700963102595016536471636364955027770507046707765714159552896985791038261085014996258542743361633229476372134640134884347777781917624191253069335744654583197001360789904601810307137475106661166026320596369022084389965016206803774894202622616666739081761383911960838114635621278118813716449760817701187741161930595030298149591476123730574619819057097619008044599911993025750198825440130097911934089408477121390385221850670910901609260635874922847906268943417533902575143829637046420039983854679726912188697091235514256966510597757762642766931316311520478667864391664793508054908814277128739815257681065300896204775500212080383512013284144658802150399433863045094379191746634845358407875292985900981935637217990911879477267146215435885463867502419720213726184639733710364430452885821173110128406322827981757620092080155076619043848493768737490672120493260817417287945439671337409862834668762986457320814716913038442892841791059508239650441850387719272749636281440784383683178202118615631462768695213583386738093823849767075742174345082820373599270982820646776246732964263626035840609215262360875757893398154301736739600987253382720182146042954766884189179723900112211396343000141179510357190258213866865277476329594517939692590291082080151833397677649392787185934863332461543083688941740786542870364198793793310132860508718919744649702387850287272196412663726156786356746024616650126697045852835012175024446664611731968348154636215128743580184383318074366797154945234770439096142109446173502484416759712956761732887397161485269722831372283260192999484943739127405280832611233170503388230045429064120928183162655763124545046106974229701037257011776425932937508156458584573699503539733524258919127420920389939611803606015140340356276257381996740178469985675243508543731006083792230168154458091986301920458057335149048169164251799711458398714458999005135871230757623687182220572424792833622067512119599868147133161583951365281769255173162701921352145928650291038490948836483152488734540928773773790176879989145418014145812877806337592636522164478188666597132770390494304021628807907127358450109908213407372820753068732049923261075572789025255453816522833726528719052911610051013026496813992189132227160235836235278046140907027600819144101877856346182544391620723122453895251247188614075902009344982963389979229032247463810380521723995780710934291441793678691213533193262015416939025413208133360985697521329035004812493389223670746866108703514990457609329518521695925186460169171929471677789745068220934504902361224644362507862267167579821515981247931270530718664014332479228709710771144576181074033218790374569202568560450018969040214812819555949584166213846172655722562812873116609510354766110276748081545941208602747478789338431508148729540850234336511601709390280190562767740660335675109611313117150588582194893526423395072917936586825171547385351496241338595799060761849161075953194491786953349766549300939364071087613437435107673637841482214344141525370521388517538995338614348335183450999515662255759032310533560841268745847308632660106837675036414073134690777062097623443454556989357213635953588715210352441225716293121051076783009508962776747100423554965562231354118908405190785436384590434228174996304563359841562825321022425484858858459380549680321696034153356857091847657612380096801739808204687188380417969286110505539809334409909851276024529022986177776295688661598914632132807609217174386877360034858891736803686319252545671141598676406558676548790142785339140766889290504731571593208585662494632627953230599720345732102613183125184308428212245140205655330471513991919323347546235325844677067382897545552230344083949849983180323176801691332744479975073709497490506419525992715203106504105207615866990644684467246013812994904206372903477536162980277741315932676365756215359325617054815045334007887569508325409505075559791017404215216035581917919673502693238428604962843847990500518623884043130878467567428551259577787967412737547721887814978553529030071002184319394468219505812525682314595818069387772726122733808751022691111647598762215497457823470929100690465389694452407129250165729958811624487393110633581946638843680671874710957094273352045184014699714802236225809400143444335290853062991150695693455427130967658176258522290561162516449161605957328715850530444594148126026473577845453826929620846037806306899173569147139813581945666901111827140749559260982742809815868189462462455981618687062515275208379207050367872935662635903364304803217302955296341700721049029965360038940313832633319692703177323335422059329808059095730516656156813803032891106389268377853035511382032905973981258348971439545281166050456673003147420478702088089457324030021366578676176689777573091137290476527372883443195622617163928452961360534365207462209059069030020998966357710927073880191195248973651385087842239440709219848092152618994971786468661702648548017403277600177220805588203742384749462996582285034705026239111545619142436984019386844865219939408661899116748268562198213619269424304044689877103043849378702708580560067224858717557481483293106483476328956457586480999951302090390385083536002084213567408921563178844989598139995540027776347216180207025149094678898898366642053388537700448103233171640740322370062622030625828150092855025220100067253127161907943724117354052443690666160241405453190308374460236083975676264281049196937960748843507826045337907971189835742238286546743699645039044703157981346577971397119133668708377431551868752741835751418461989495318749726670029709949557507998830342126666991203758931275310142904812891855516321890535173825597976989004969848387139245031866345235818770202122459427030450911255970190714695505946525349268180886090570789476688347997630015245895175903491812561263315976979285179245763859200751000778401259078512969885441839088878499363150303644119717817292651776108536794355913482498226858450679818666193788381606089616223452297965324428558315173266415323491923864959694012142042156471755910662068928110548814329411208032975233464053386378526016164905321449556756950520808650110312931356729704837884885225556318255008951559760661097241009188380362105927471869876620706238483503781208624821212953988573021282060187054372126896308805986759605959688699096067562880048340139325419646672818878358429345926697118173768650727866866206851501327625282491246996042610253943773219258014525970788505353589683338442452372355021489619932590399121839761650321155592995507740441630932492378544580814943958110939525688354991547643180074790821596112340484082937487673990550622961433006812857245519427833042208162656216961579616037596802154373749186466201292580317275938554444169377045622637174118534297660295289312651412531329856250496978366280348610075047261724864940945964055313221114569321230496506027981915493155616352515186188768625090983674429139083078854923153385028073349716714188675457262848087746718674939624559500926481321026887580796653657252085449401312986140242680541662038948489841909946541979924220945474015532330547973777826113281798884514159805330722742301148860351846159959581562981531994340631907485153573269053984409060161244424885892330526528021459194724318543297772998434944555427203006493815895230857273313273264243432051297226256600028206340210439051395172991118299639998923565103924843621493843169755495806912080471541688333042600235034797099083930698918041902464052986725454336658280718513397215918596482695840086254598367644684765185289864084523551959500982603017094553533381974323865703530935097694045977457291075992460450373568602653643390053174492074117332262549880792689729146755139985729638512294663370589267656353451768297781496827286089277998311705091158757357271846063665851055494886875119684845547789540553407176628002353699658456741364356491003436841870140241421412764580431942327588742009807790021868561783933241480639961850991329890650747633401397743842005391046886922491478155299799082894244556730174938323752002236448252154775076368962484456005002444749626723958840747654382966067836849197333653822601028535844479675518952501928997459918500945167178309955966238099094869386104304879131612148462849538093216626656285342676239544307796372477810841725305614969612664560403669486289516299171940127587060184944116711994166455114093332239628733849784025339494085530637180444915835287987852664566913146706578585216367821296735471731032687720103506588555918167534794030627820557524555626936831362216382685910277950037057167246964256302187851961162960426421330132638714038148527508092618727294399708852091636620611529327833516226731426327611644402653248138082651147367126981667229337291061064376101695159401180023490191357149827393906414094924536791894597766195114165905709572321744153842629648508196152161833923354260784439222334858463599003012305662996625018229564863038271869340908638961192701757652777654760574452880150373789160838846681652933894633778064816524439860159784131728970291424604197964672737333704677081732773589044022675897276238674091534839636609298671732492317838986496554337242511076182090166681317565946080531874993070281243594703685780779405595912612750118794161443757043833768928163268803316248253577948345990503252299293157076083628126493967131543322247920521257523214680007296621651983810717507544026092458546586942985872723540269697352268274400118081865454888669251999248082609074101954344629788807804515101124154433198652192606132023840007173259583007923292926823219789758622366865134246296109856249259776228627172510412274109431132486830357306941419750352927210572254228680531717079688584461411960089096243663760754685244024425965344965771338598110855597230447941038691035313641715997343729358590499491982622093706339536185734110343267190566057629801443913138633597251618295273001780567216280849006907676235413891107343755488112012130346206205200358994082244640257700264480056605707926344675399110364626422260677054058245653987818172031425643607314957819506543434195986704392175877886709352131668142921474679090449837830145659318267741569117685546284325026017706780714364372398703973833237428317514274115669923917780591008977804304486140868130192997820196875266591078863117891541448336679074537312207152258478971513099971377617961292959609074161470912814358730646751793676217732437149780756434495239952779779936777068237343254863504197662650241873617236192281555961932803645828429498474582913298000889261654142586024724593429764968855786139927697193165655780094038483565867312378303436131056568215031489960330870826792491509110902593140960223122128901175567041923110189271540171020056187236678791243856044902371667820800397878780026018455551675206976002360630674922138898644955254084155325011513034848759523118038595045419680875192951061818994150688658999192045494507151430213491979130132379803782115745087176947591786457774139209001093603274922259073658210589772296241546123944693006073195658766273276511956830772039968443012951199220960821359240185532062844530473784411428057797988513794263522274956981483832095140823861942278973780620151121746445228699302298734998627548158100039644056027110092080928569743318129009178014062843339899935479961240482280656119715452703190890005732280511607448650230770177101397042870909879707780658031429845293438553878596506140153310691791102868480126416178436484914038213129012769602781015902377341692485912530413896345726445869602946782148329535230069487504843795151587522240297263357418163974348563059458887478374439174241052995521733583102414117287219300466415466904501907182544569883303223655100504208130301528361707657039989646050787004834834995549954958127461960342523825911016775527621737282363750585099994052680964286073802629563029982971621354237368570945623845638914208447427441856555168307279576757720438752869683522230500158164699708730324445925401334056572241757400909390479966963266791389537494856139706082567472782372626408892165178975798214337555297460171776985333637872099799505213281131781047468424512673648609845964707575250585970800223361861547729157269329878202843042579973442934964204741595256735044652132809705340950686281885945025049046700715370970265333348147160664998793363054075820153838580950039996286458133983935039360264114850183224393654434322660752592401651819098557600117248308300439957862046839992107078416543224664409649262643087000109337801884883701854753578614772552820387914981990841413581611209648824902737166785699588617706148962016624608783825165272841272601119952652327376350766258530149473780729854421503012520080780200757221823962163068417489627057858588485658348755811929919161391811659183879677760641023129916012899353457465097680025687981100352732733192717095035524490907299930064684344957427693848457670507352593737067935184939532935260390233224318506592058458963944642681397118756842132114410107668186276617515497232353386007723245047908934297834488151546508107320484534734314135939442543922841928277982759116798281332331171841195666121014839080809738119110038829698074959274393978018317749446361135208633119830342448973474739405690540879804882141024572188823732684116110733205143779783457655910515746871702720938669567603413826764585826432453291507011019650908805207128923376572343663635209267995304851681437720486186121746967482639912366978053233889959413757465513863126776590663207867367739902527012660568947707205744597052820042567630838071765408643418898431154919979932477014135419280323488301712014376937387827330131935278165560802184091030194967546671447453642199536786103506436104107759947150161777816917294065347312897962431565186862904456259983919019059414978404441370299096970077727445761369635867726015256152358428421958715286730360082544164901918045049164147545945916619487817236936640388157711205784599111185079285322698611828020908035320679893243473834130685410316493034499380910223688807384973787397754454735327743029810171824515412255811919186786285333348176784812724563321701960317146254249354400475950000401569009914716815034708432508268201001734419012977839441755915815127064608158254969110723694202275021489230236545037381794696675641642204556377992075457455237870029141623317656601022251049534543920080907021111213974997955329933192566450480656256666423557692495521053921213878307623871279923419061341620968394241209186877891323806798095248167765486656328553389635358990999818949614571783664433894833586677009702278131500280863741807191746411369304110916981855134405835404649669856903098646363711096976772135517126653727155012742916336185409698506560427036742671151767350082218522187483217572813337127653558803921761497600066842272426917907658652034611921162422886610822233699108248193031948805232713392951258717090848723109766007003469414649075000328030819194462597602930501554335768389079189569248853511016391708572711393841915472604491489748137032411328567464377070290811192625034648865809429998988646109932700043660986879915727034583191403008225130271537460347277193840210527416669895756342021981549565929780205449050122164925111743323910491929405374112033307955340586387896233576192127428244831411585053953953345947738743413316412711292091350593010320603814471123995465714430195145274686123954388391786956802794585758703193148997180654189746799272067180658354923206313757443187546774982587366715731651568457431414856971847518508461520730627756693517870028674375428220021493855219456597536837425003797937235636039834206837192817917321745472734919087356825988342097448751963009050345720258689342793734111219907194672543389397181073504981967316766819443368792732777013566565360646168668564692950387133368796517123410132559406248067386651753606953930188416727467439696285690495784265842780672165464265458595268547436104121038112912044485330122120476972425862639990911086925766281977230802089864767700807384579273510454139951091083606626390447514814759209512621794486676881499614230490322998120373672375552796910892387137792887514187735657462828657221704071920247463588528298280819744618471167163227752833291886825364934329297627116894186511127568897115798586693577818063497714078884054056798104716510461768833280586626953541574794824825066761318170415382641415753961596212648445180769333715086765903850851866641219377861594840734879966549340939135462431303462579500627808637011817208712037073896877339773591393910677938031667566711791007446779167266420164350840808725701250853375549930745345052114963657705002654465057021384891149664272002368217092101080468905625917632888482583471583298416782587455269912283071565013803042088091990760281261675392348367643569100701822069644011621125761184509189748704704060906699604463328080353735324695342824112807807355785827246829602251184390794598315873595449084714266740800666224972704983780538157173634357990186578008765105537575752490755644588581742509183860283596690534910307423489185903224172121010439040357592725475141278855285069502525555664412532023312850261822307570968889916343530047617415989329371919265191390617624136496852189325025349559706957011246184792133533629199113621595578502118178694734183230024263697716027964036766915255959228317943737168238717365823911880140750620313566584604131772233268878799816597299567950800031248741800675782563164559772429011432924057566065737420699794088142598903626875180166124467481051809756690519517868146445375022616953760912327817527289387297078147806418646861147769268660981718860883513825935537758939233419117396475302174815749608841306453103434327766296030823938056149260236836842166176556511457589747179768076723850318382304139548691294935110863411129790678257491011447749769191688965635613349174941758572730854159016143734184674713294936732778838101110040328219353614841235783747139905707036661051615538371115421664172479698467425997279034039592616947321321882767024090194415605895232859987601325476358389991585769293331371440025417559743968406814728992271523910034581580909811414006981665872429248300592291432090761201492754027221508601832134500002828531599255933215196687264035645055973451046193101017673665989440686384770580829974415569787304419882969607460853201173077529744053916583739794773532815794141216758062813365060844917442163336608790279480725376034780844416553365900372663597463499174138449533895296513092732513947585893599014784634262396397355879457411910545328957732434256346641222840352466572456895589498393245412391777802215292242500320134454815023833585811905763533842948090906261324045431475570851334943749548435973177727569183288403309610817558617016778528488125967876072985965109353794814933092971402448081513115761272056825242966591330769301670827125233769991096837132061190734271004094875433634276303017361855094510157371480285998847686587644574701047619827150759074599690248100542101213454046068110414993936127061456920318790635739716154153469098161930410815548398937279786904447541157193796608973388185239596044135514198726387027271692201558194876978095884607485862036845192388671197126706403709647847286299707689991389637929124986199004385959308476985920634890145257876331961187536591289179178234088556639360312405465428777934405242714528537063186662503514745993302399678770318096203719889135515145155726787315683686084418216340754997550951205073294965362221974206516885442301855656009023762253281758563451895374948780367573829482574924150492048979020517151865254328428403802886862173234086322047198739783518650895388372194333990729876472559865382541088880185794631510961240121927326367567598440855660154157606515843240454010168111298879324272376140601205206036869658877431368768905184657472468455271447641150391310952568251788533713452326399448193328090845843345327837786221722407616536996413740704424952250322381661522436324647079098752001953352458788957842840060344581899619529357213145235863995169064164659625077046656193791140372748667980142451760769274547517919669435022999346443162675601022146690399458736666133825545168108612145163921710787659455892463382672855547291736676087722890428425261779189363858400979238524951580081349573908636566214695813018308548871643153108687065188214053608880045583505013774684055405497154157679932508105505506816057851615019281027242859637179184195912330604140175450473830914056995554270895422479168507543872830675791861563406025971027903652931558331468560141428237199368082227153015439651936958623447762850611688726244786859406239105744075144836453085473580845093048715332654915297541058008455048355124067945645151953792552838796824812910276187295608048036324565506166607066183570737691274750596744563805727577335884193325566033993281777052419703949307931916279349792844566248091246880036527917396424279764140673339877412676067369044256260984211939984605896947529080485438070627632402230436979134117674657003447937848351348650684587143142096512935618503386716496046359855628704571889931865071781067671664524255404668509986114123935681669773560424130879704766934485662709591134063814383501249167704521176262365106587415793418870903528515289375577507328171898838545181911916188496810615036102769087759086947280074613978514898074389607164909049664131332853141232123050064844928106106971778900874414852163751681797751413246968967665301703352753763753305518331404102056247599684192356875271697349470477911490215078442242061908173353249070877167538089054052561972709812706166187772413963135603053062198633732382227653307062931420107447673595326922991653605504770035219011967862187962909004698151596775913225439136189995573499491732083566295570558190902116725853306564493400802324422139652853754145164782682647189325766473398469946233685735867654154862189432536498597757079034497027219636273884521930837132341671631631714575924825510332046300665933543702447886370753613097634633418942398323212065403735193201358460339126923258257202491811981758249282406596614419684812160570909439363884987090888249170279523819330878058608479719853394159819527282819553141919898487260444380303663405891813685319303679715163194833381751305841415832643687838167162992887670589376593428789528024480271704916754788340582092202402759174872376282121922277155623516289957032527642980036210335546511915953027548052778570573569613977451168926477035453919780798197984131703362688269733730376028231238614500695048473265681731040559299148066536200614393140269953798340644352819939037025543692659488558157898735576017822906475712238997002352152251914667475352206821104256547808986117611739216874548032137859020600262998939234235633533336368667212449392375833890835715947014413573673531550290404053760154202765449599679350111304213440267590929928234684129216364179547276555214922935950265374580974289552111978228819111206486467833721607977018276973322523965319192371968588629122328952622928685360256137091389689898866520584182830763834323884048777024819451184064589207450130565819118137319639923174104919701513150037831191842417903353542854014703819009530228880062310265054477382343456138017882923629020658767290541405445270907478692107080349446255340150047978051323078990667087493105398385470424106347936230134128688140457189506307030362904416216333667238674907652268267179641983912375060317347291282671804578927122089483999481152087970457928675899522080585616381858065267437749429318940275325914781658269293117005773662026009244694582110331955312802857174927307232607347063441102271524050493299807251608882176187978969913928884503192929729055360046399010522793964168728091881805744993213038623286788817570946044605234418644362546702648411455401485140225055137906752869810179245147950167197656726996468876460831974625416310696558787257764441280249480546510505372223148912979586798378318138231849086684528727489631132694692585141386168111388195853605238302891892144536031012579551799097537050145769944028525337970568203419983768791415999821791809554200582648118152451657256728992901808417349767353819807460917276571149056377100021356986834480320300122228705248427337979562005074429533803874817216976754117778702588783537943014359870650754851933241182798724906643901769715754333330717353906746289595480142271285245371612747557134475855689680695742755513648461539550202382078100763759199496377421231390270726070469338958250997565198860451900302649007144508036041603407902866673167056261237695456440221090064265486336930479727797104086880205383056750151771828550196476932261249148982851800574619777227791216889409836117799216367503125864859308128577070277369419948331987408482222170431095376706412242026706721536378867257309246582916826028956785495818289229797242612682995221442678196614750237042354076084406616245075780577238039351689162977821897930284895654451036814981079646632504014073565957400827339426099513896717200034028013307211261443879443276056759932562936899099077093588719729798050625165152178652501781334842552373348211734831821506550374896937507490580368169390954013485130957546940796496638344331771815833637994836692494057174069538133993968664382337756640545925113704558533435243827925463368037244755287845726182590952364844374110094875218953777261738541131546496424311308964487787622930511178594500126769429568195059875291143458234966449969270402193043518526081942815639327015700159581742309940345203375579769682788919261448775449293467522980352002207837655658748752051480559944589912023517978953494331130935487337293229331949452909065507569333720788179571650188523785162690708939490206253641480664130309661849098160222885888153811265984471008392864918704742662734608188932914237110750336222835767012531339174050917161957344462439351116653753549442736016982343792482101960395494663318128297815331544828191924300630009267821273983261970463875057416825796396193336546651933407378335030989098290894283460496076176480657340228547662238897953552632205314857765218364914630512230566694636272670075682112780461696452156695899742329803186067632327966041791500676576613070693899153840995447873289657898616544555976563744837053061667752960417629770509127299851924201772725820618165856977577866075315759334913012464789215678412377534346321767498137510548972147620485911693412224083958055722281870156851896116775987816203582799614238063846564072931161276595438651540451423286874956354536462541219016111023189709537028952786384476922574590743193383067461850767145541996150201273858118950913249913861592787397508442494035880582325356563373932603104411147748810229547785446064744972210153489664856852542338162247974453501026904593612811787991158115228859947586203859327606268660091181915516179480688841912318126322390951798380546184891376257166940215520872621425204522976243913232470697100620205312138563545473292662137113190272270826560268614198688345155877299433916535040222250115541248632364357028860455217470728945637135504482971963172215121086281194240979419480001232758370535768962337167830261263037555791779051233120141118074062406811780412469287814217532804349003770262249542472307765281578673375796286849448862471634334230025216348783678752413710167679208257506241630166057480573331515527776684437702698845567915721920286546900520065357238417110108613972363657300106904335641635633423365810935383722823153214065502839727391399891381169623727956973109283539394398374108285597286677182188290637015414528705578749729700124304017639335416939660880208654766442672698554918847464026964060888942410676922238830750806293374346674599498092207886344464722430722871341741907560656133153935812576193433256571474084773955997617949588363308068060829178313604377528314337319223098463423945361467802327076655038205710021295032486169461749999615360983478016820332703228289944787355041096672580899428604144710944597720716460980049949607229920588589405219298659011032401732035911399404271721421689779396376056771706189121863426043965616226487655966736526266811327210367512791804329545983175704872014618437864130504657984590498500564923813538920520803118746066899712470711296369922389262176831554906692289647692751941544843739580599811069014255910692579478275285965157604365460154970081049641018421368706727333303618784162559579523163087170076680982633479592322761581407335267812389364722859840760785438170048631415498666116336380347170013379888402259240105453581950745496675184829052186435478617512508055644925256086967635066999807106039341909152341020929553799172195981162572460984973740607836841876623070023931462488696344094194455747943906171268381171835652564413290144048722784951606354411019193728270252305194557446065994016661177908298617767747569931308382344988116678458552497122650233612400929756469372897471981471844086368030171850259032150114955543475477357504926037557752982836292866333850996685100413847432919053078157370384285188330891870299480913488949933343663910014272644162425419489043780280321883922016274244345500779981518567747540607287957166537816211815642669597554923566053698308939532200879969937984795543829359716752681723314650081732600040409649104903531068604242828495007912406331137227797844915913342748309924161064328274672394107867864775929821016482210267582506974461660669005777493129685154857992113291024392696875217056758530495707104881312004454731124619529350247025398009951084987816555529223231217484994527214970214534319206947757457597102994228152561716603086153498871150370093177222078156732709931229944934286464453116856904010586136512593293417483544768639680683429454841375299073439180045654594914769628436047156064417276094033255540944070525026876001716761341890266462292615598871057225711587462106360348467987881824210259465447122198623541053834483969980653244604422895486953387327099961213687050231954407354110147589626437133051458058381485624080933041799924943432061055772670011667550731391833414021960240529137965591778635802643209138243888972348032283180238772494243824632150109358076890009368190671374397581903154029789282280862128484774703383715020017964436332792267524680817718915175784262448165598013851808431066532408575654235636251557768580133077887351836384142219963883124256850814669072158999532604602294457495007600086293633778404459734970520656503451272031317186712933917024871571573107669484730074916719703546872309298820889632357013838288727089467706291106299883285746080910201583477601299964588879816470964707397616949731374986574146279462286942950074016052811436203895034693756445287374755957821798520435580287497716985252559379218657226640657168287107695032785461894574412201788009229980890385245660861221716964501783428294869921654870265773350160976770438695732324368332918451757779068170969443768005399643455923205801529650655486615072846380984230400769979451858477647238908122181780026813101825356083719925100959309277195029621739655835205649996596679883600218352871579532481996234038029566555085419204551837635197920352056130884805770633222547396336702212675058196690405130711384087071191302594389265155161076841740855143978205943350756676723113700717672781770181656823668990848581574789526513521216170671801007246971169220351464981743455434720964873425312330943470564002152200967201086592633434385096131965743491658073631338418152081354694469380245410009770916901710829245744443024730867279640045209904627473491022274844604770519199057396543796054374214643522632823916865620569194569310373990887281523502411481243512816226677892575537185890964147907824996418515131470166993383024034711871092058668322173014818453130919482905163477599164030886897251036399588754042440378505540650494062906650388447392415959001941288512793626230210067105390942306904757815031808695698424549967335993586265821054941377676788700352193905705674696032416991783465341923588109600968395948478449327564798816587050278656414672061335182222543585313554940015486234422785074551901155790274631529257114688458114093154918433829067248003645886629818996423036743845368178074493949040616671807632824977404614965478809536372182746425797666556888150769973926734978274202871337135257019946748167861813670821493865931374896161344620573002573846643353829502273705646120979081689829197863746473477519352316320837678742276163404762894646813585104355004116043976506168050803833897154648950915091449573021929104156035902189312947311843799107128531945562343577801459207217117014785625065163422069123069417289508339892487918033619253314941606455766182269645367885900327260415084071269313662487963873698787062580162385822425553716221272044560751725075203328694221413209974158309133102392923460806199181647910580568501621201178296989912351789578156165112728526742663009204881326431929221803206451661083265075470998180645161813126903328945434158111200956965805664553879676912054956834573127664881577499207289949926723509268267126743780695087777397074677328393296504328432282942281562293757885860034650348503286714124827464945368219882953050876459637246016997461116586452812168745420987304232592186022277874314634390695049429064572163125473810650979689558498784482417692619967821039724318117391355534967591723223076341946946275732404163561125585771053359536586415206661845991170650615012866749259017182722086474958169255472013223304469134957608787564140098833304356423498756520393375232351111746672149431832557739767787353529155578060129471836012255800622672924117725439150436802659782364967708756034541895307946985719080354197305839756345786132197909039677799368749323225590552254912289902592315792585454446981098779433164859855492844702675183185679914741635931839907932123909257560952006704119643419656981820901468626173682813786223669662609498998273015275625302965006147808685174621743170718931457233076197128353524271005471704446859409409822171813705631933045863963629460633554623437276095056225565608147971220405423582965301682724348138333594575543630368447804855104514098991254733764470676643542151537466965405282119450713475311048690855059529259288001656712646480642995686070594805871257017228065001846477823155279986984580636563353225022753774011225116607928130600902515021875619654897013055379765139748755038557078885468318121010855572578136393739325898735784111895412568623720780946923022741860757697793837969094176441179957855561478627657693315210837199170943017554132054299943307777473896337627831984440526297816166307976536387773906917390426203642171743668795108092184709808115423573174260165807103332131258602157488525259860379268438875963428088346463600027814378321798191046063300182163774634068976179087299069892332282073807633328200018675275991279691422817403439770066792017989059006775201007832427542129017395362077724150094155471068948059366857030397566532313911967259056758659991413360982484165469433760110313621502090127781451574144615245591757961997775217366661917347509504204887943464865233871792155469021787469227416744072375983603843494937254907466705086285547814526646088248811374792151596456396995027598423197216256824400559560412894436398064304940705174820922515022534941618683963742114403539043729160513956897175080592306652664897332495541512395431668182047528757819626161569045066718666079764258622016343892335840873057944390616273741419385978296240691650900888644927278204820932280088688885312309382471257954658563461958396965376761079422118139713339825362896543392072546288809948789822007852754640382789906839307800643858654505157323895386749347589348923136737859808270260461844751868713224724206287258134880551571606285381659170423287386386101225142475766044319974371215672113964371772578856661693406872185007559150037430977088951509701535044167167625560898432457911857564954216620920154450007985033077734525035230542336297919646784375355176193706464354619647916405668973773775376678738347582154095453666586375967030748865896502929982925639883020514587274824608532373668284352137215075985620045157017493959372035749296629543215983994692331246886503091518645252862442230373752414390661365875034761212154497436062467630759493671230351648306278755872603687282733158941355685202205739680053385969505460937326441671980157786892657458502727395628842082623410630010287535100326775120848752611797396081611783019963698597342786604556809676441559106918915131156545931893361859356780934524215660767608771995432674664291975158626165543632888193004256809193742779085543083987625574693402866062942872800226136393756215658117783018578671284806492325667098836580650190678556972866083600300434590355999334935959598999493589505388971852107969313924127742993189616386005311982092322479966509537457674133123678292360803483849263774581210142581014962873311989513046964194501408224324199217437703669828532524533101475239768332568031457303916249837989207239651504763466634644418526922500267858452236884862953193034852368319246794943197345136033965087378613265303652723205536365097384167609323614390817011786449192163362639551752894443377369628426690783907800862124797807974980784192580239933937227758118873094349132651153944419916661129945988268650081526978503695535796739834015041386211413122014401411699657504272298980529434116162527969252069477197014713983260737420574964112729174374772926619920076328040711263181453752385935597815570200065333395502724188995244675542478824408757509477515673733485736048585731539481746097736615564541933974748400898053576685505038039560173387572374961323359110912784259250491379606857526491050305932438217884977066001058093962414856550984695994772306051816842102235634422307782839519258421127345389160945401765344850089531720795939805578650222808535403866857933429845780792075366760974883178604012845416421166981998344564659654431136219306096074920708036925275961047039221592674652946289526907909144308971070574574524635267696817361054685393646336590904508079829399302590326007672201550390187242579354621778700023861103242994198841146962157785531102833350140197564530999271438773045410644533716683627398456865016656750987912470171331538700361331947256473450434013437643481167735556738351790131591248084966999765559350140095493493766155692290792580848498898130194641131114570846144034044853053607460944739492701497658353301679807925745493460224537949123504150899804240188359374883843993316820094159699977203239761080963461429048707109343284182503645415432528360890350018929049689566741503990034809361712667649682140817894228979500151593397083867661563427167400435175057324310679669286586723745911500748331126748914671566385209928242428419794537451522936747568470421156335741893905894161887402340264344683595969475791977231167600559686019485866797699175328611155723484665315428570066060941341037073438905570259700713837631825141521221905132660285628080293779713896208358973604981839695587749282356217998308709280061840556142083354265988228144142098604228133718636817653096012149123109267096347303582183278614446642433964433723196992365329220975557383149576480887344506149852353625338223852649462203018238257434330397496524536888621055895646572519496544282718869888220534144131857418214591853568259781456547653104450820864275418176511105411138715437139788111358624042566698071865252150353535499044963694720521960826212074290879280100095165185423876227983286326274139440683621930793876305117159015541917380170180643313110467014570292414304389937992529679249679799795871098863654374805044834948430775494233690009647600188443353682064821991591860041304078707813112808618545653119053264362189910778673491522394588266452457154769867356848955503509480325382907156838865726187844853828463581260666207643640985596407545501710854712615660875100680068217335315049949191162439753960395707051826953537773696103773664063261677680767828869703860322059302691025608024997679543479927143578504293329007650717943314742995932923061093228891521953051686163933856358397488136784212797971082026323622494258868453080285040673943448774685392593954342321924265111577127121031198846760278187119275316342896496876446971000830235780069136884937114789181299277188987118777379734553207182611574077720183477273329341906444528227741669535592580827754951941602535889471362889577124172425776960003877158160077735244489083346170553342496917825690406232587144812054058709506699140401254359788554751361029985849146210801445475401417417419230460794789966765117492595040575238076129084920538820652808933772208534147489593482030523750837722936992936168272973239645856978322112856630435297063576289906980897275788352503927324621372254377915812475698139922300943916887165743840295819022923399682064128581264096810471703491868890165119090282612013947494909508013348014608021590543328098013416693890595883144371733114587029142337356821507684854567487482803618187634612982379871602939489102611374607953720027196655537658661416016715050497434688672030719672589434141533453623677005527673677147116296049069494711376489563574015184374708078463020238155348247431808128102449170931010264120743132141942967668143318328536306129405993134875210071045926447299122704670445298740189474712182581674020976647354971681581992328759001315764063901874757958259090429781049149012853730918369306428564515761917459485034725181077310838501074662989686603435742933172119145479182108620374579331121956505710897696062216511733549551717543712161554780864009030279965532776210375131092739593778955982159578746837344092635870681893791906021003953093793971974237476194731754688779606582062549160513028190746530161309630862104439289051676356154599377690144911970042843246534413845731776618823182566170917735467095904966392791971909806959256160877655523969323793203921648380945108789285224208739842270286186996445103414518139372454037430519855491882163904607235816249865958451864719527416503704301940411726914840241568195947610891905759707192589614919124998991474233874297810230077752365196145545127707324828916768442785961153301998034835461574741327395051102331041242510914923636909701650905926066391561658351728919382129878658427822719786037819817403796924132090892103903752185594871084185450754234769377761273138814179199529056039434049441888587241184041563967228004596863816338365858363196353116575044669098289004885893749111212560030658509853211432735752396611844257736805564671795380658447474860510097273961022289409153437658979288200079660761029194997051684278241506573001112814620874005039008186341832664428700336450568156346538208791283533146311673841582548170245819852446030290820055710214454033358289912996378630373807751022580671109773871371536618373594328609778164009172492434863402377048750141139165143806636236768132545175006236562817886949643171508368373414202428084266281110442152845177304680469811335537869225265912009375598802911472851741603520633328335613490215883067089802824521139282609373205718717058290952129426379001608190378593712348865522168118539685562621163694653626375916403084668803556323589453550217957732784626022940758856185591630084827210257709901004984665924361363063149033486100160662464255544219306331937353111564754382048725533217612693372498135468802225160925122587817631499302376518000662705307838089947453222486874659266403650270401087693050219990769691620809045036400607408050600755861447605983960995885177389910834953708134948248187608436540215760518128845251443755921681074507478571175071889700131721724388446552069153424588988794979606153051479620417064175414909368851250226601073187865955712672836013728960287485891969804939550841353621911756502661192235250016002710927738010051513197434021081475377508483135778702597665956694263511348022579639666734739173125685384201431139327846653729597311303012012289561994020340847538092183219572953441066872162765182244683369756084887045149603914493409892310028363786536473520001646335639995398602783572533594886274268110245544479579547827016381979558462573402909950525093292650980117829880778898431497161566584569602827832869852864751516833501100458155227148140317090619068094538767245044975578913075833576729259216083502727861631075238189860943552799960020743734241971578546366422068999628123741954795115977014972847722328172242004266513593341117024954240014042701650784582410120170647093184061128166213195745430375177890871497914063947812953707469509738801737630774980018058974220943933131700234497653179250573675824383441725089592744883177876713639790499842861177320694085207648238299830551361160357046374007875865531558658445085223153537000765224818977572201106642445763402933736500522653673542154747854538532958753715665364066936191472652813470142907915397023066010340343196866829554714592365145819211794074591178792074216314902390927927051039647359060439393495186476691005697942211962333444861335457293560200871666156311889968289374633794883992768313045292579507040128581438395456486856856602268704968746104470199342048641385442440610131182919403810631308211253128209852408116683996057130721775436365358937200470247907102722468129008457143855589646710224915510846938619568022976975677789262922676523710998762806220275768680063768324840560491811926056701942089146762037022895730592645710036491163941643649147682401664112007472195006284795674646230351325662858382523104583811017195591798858538284715997647064971679424131163664158375485349942574013439010260231257142717001909450597160639520073602939166075020378655000671376641843188131361636401981376088541020054938497255508954911409089500778985602720257592947020307478009776364878171390245777183470269902123652367627925942166992317187573839179527494616798484053944484585490839545019272445235267780867213614214260326190101522372425957552932515993929194984037889913935336701682686199491007129468715648715275215995044439649970070606254279493507048005654860844703485396631141545883248116976003511630032485717125205242199337665737371225297974408584922412567401655704008798414202579889272508186158012529912188017628858801830095718781228191839585901947761321963276331265313025733915582030781020075030529880731112013715603155734818216678138590550362841215139365418858331899170891960022588387416094514987861249577597836979774043188689460913795605384568501700214290091259479706170121033299560755270218279001811674069656441546231152099911324640761790629164193562826566681081941738112032479300555206102313644258451781191173415462070422760497740377512901970413056768336053514569946367182701682408900459005350238609951307808701965697722347670373794879470807831158327983941700799063012579382895018992630689356694277295088554078091514971891434079433056204786789508291941568240080509638753574413696848712981370666670158137487394720030629861074200928633153097685038642107636416769688374044589540684188282174279996147883045178089673193838669875280881440214245540915693497098048253460235768110037543208788919991572478835105270660912258510066995598841077312773628489031121850607288199303811956168227972403524511213144851644793183467645529188729793108200705925692580009525614957480131502370584427325379338574873420188995712032336841900133075884680693376958587222888263712919619979353020714931064375478040793358150099118180218338103341506155551332016121513318775704481786104959289314447118998397607001512237387542560514371859581070160792289768194429011104959638281513435268571538145965670161697684434975890093878545037402304122419862267668768185336329023102498776189063398519904760638448170530436577897047569418825297674637332372785788049209444579531832150853353760302617636742625085457529734461619913390546893111099678423766141029511374656308640752156439415654534455226309221787027705714042981012357482590130684218798774435447771946613309938489996957331265356637491336036753675387182796511465376026239036166348682357235905959336814544713732881668117015304026713649966016767423090532821247642940148561053578005542881730648043781017062350663137787652923878924834200473694255301435397008930814155520104154244590284053582037030655849440358651552515020527274639264045680878656126903271259953269467818107181297678989234429161725419883127196803855071397016378518223576748810498536018381322177075734303739007523687276230035659835393503755164870175466893837750973976837812713493818457923339570796259457027315576277243486484595248154344681086139480430242335468262064580489557167754649412345232709280749731671435407442544313699272760454767146427733894463108663399495285276896632118040510906265497793923879253151991277521947826068366499754815986171838625937028976818152826166446258453755689783336372071871361315442120900220751424637691129675970615669385545633004918923017426802664351505664396104252955443341266577648375828396760579590984615705209692306720311828660176889058719182770079407312027078278523410034518566454638770649035565054223471912084266503605848427930508552392242534905988698750855622144160629292564502867894091448757887434746907641124365437717533976831346163373276717702818299127591329330196855283750956429210964308567488907641523532079028606712601684529535341731378845989977612604956996421739051062531838096270909251217824274517325113237943475635705670824625391665486026149050329075447441426221910509857070918315953260975162445104504248539065936123477298635344476353688931631850013802461479454429193123203069822594478997627395628939121535203402164095667919726746829317931429916564868192615338164921944719077334267087453062686086860474628911845786337358749971453212731185048406723517845641274037905748342424162416821722747259808965239974238795906126656214557249722550179375053573858456920044499694891527002120481406757864667459987639841171553551991360568997455742729302405545075603338282752269738471282629172942849373671910588431598288024680613442694882807444278440945781956805222245720357131754190838060017850752841551281135988412126944748625621116543738521379662910296840678428576093019758282280739294070519074248582294927514682287493942410955348026747730076346050002464715537104843579072811515931642368523749555902098565036510713686033362040738203191438022568799079865489364224120669984101914034091694446748207038244044094452568735853729284574640220994658200417793497531071505542694554852370198724081742696926922898006545347481760953836854113719426895769938572326472281949517918876353062760483300427303692705101017928762462229806489002816274230071503966322612171095819257584445957443357357574900020214205210074914415220660458387394437633831973279341647564061606053829687788281655020838021295066245937066056628880974323308247284184375319855938502241860123844977589726001908582344006867558610809062509974343519438605039398776217518275979160605612357188072657773276935610053853552676628853917571734115501921689397487569218739076582479649093028953965707294091816359249951214780023953494524728178471127032657601442604975064915480623861330159862332700457362280033845610894177543287233577875417128896880574826985958838090024361881532978414167012169745782764429702391276062548581159341833747577535636497794039520830520014484157456480667793226108142439247483454954134549933696981912055731208224357918793887942814400719788814722745022755032267439560103062307896776758868273103505563852045913445666403110231540786401837446345095596880690977833356439388507954030418082690320724491418147587884147377041754557384307825312330129657933658359082330201901837395542834361327678024987865194005651497724598642382706180158612777655236346958078590013482090573349779756449145061626133107541826059468271583922814456799494558012621471801199824894848757704795294548800921456450662519423882967150065160775244601065895793325040854942105087201982454435001397024329841255905512891368375891291838723947982736978860263816039234894722322745374747006203741157266536999168188901104813450358730729196835140163620639627325699305250499127376559358671438602537853542236923756713922556814944762692346442003272623159794766916875488729154673289102448250056504266548119534145363348422823564502368325524389276096333269733783326543708469225592755224475945974265354560722818723424592483630790076429747307849524122353898361697209184503553906496878851684983673020735704324110046799972270052390537970438405595970785686628120312492398824668584394369031408173548125885984889543428716429114209104703203463261757137869282145588021313024521782073142583669937898637565197727389920126449682108719879086556562646943230927621833454616428384917652406283727021594632944995344532373547033268720202531844080387706613751838567070808456520088220472409216635624785332047551505101145237091048737034320731638567808039791878302051401200945570601107685673015302649220228291308144637664124056449067566417633633066884579128537308702746730421879664404464238905673520724589284055495170061429104685750077771979297693040525847058721397931492063903678134430553656086204056223637656726015182519929385714847799044790690458317277357862006964178838506363256100515847377449706291659196827870258557478977721638439124810046466901592192473601644429343792309231838404653005859301547827118419038817373496137290166962891649242980330443466351759396890427115504477324637858631578576067426636438335467638077658463498599850939500198393227518723717266850371872592602701636730899003786099184060103421329132580730997969614422231532034463902001693099140585345218671799302351569560779361615174699645589730620108140245412531545423683704384620220231021282279015395088077153655853364547337808972994419056435034679293351129839920919246501859696774772233377172011925619307977399613048727380338548185388225829502238484367937563255373558365074183191867077844281828054490529781713421992810089611837259803597231574875493762101531975887413898718379001080365151563674874784842259832772462707444701629260546508462086213961695050229526036640364900321018114288937706904159080788185670694276074348220967107641349869910424087872697027854839685873833359324917997435732822511123673992926992922037716660407075875344724835669627483602058658806462681390953196688651986462470471645955579412240018534718054799978618214864287274690672904824669996526979985015603322778917045009394605801786729484356266706712133138932090227377590177866536474354542580495250999999258504070854711878971262690165589688160592793883043716047178864456239450452613994364214336934220612309458349813769776090898505761204419272345318084988680538085236114704993967405343741331804634578208660752378944372395803354228688023196734978817701917300714538120551106773686077398547774022524542743712337336776102861123624673205685419901337781579650504389680501350544478487319299173209701362595541554380625047195705791001699388073374487326553048724459279752926906316563139071863255452704554809136318432198725051732822219012493876733185752116234104987261160455521762948228828503440052186547726863145839420501567533283768261298898770832748172515200206319425264259060588675903427176826857944256207887553174480414053704015872778339078201645758390325127240459820715820472920546112966571655801887482668667140251286932212422842922260356475800260129610344273069870451797599352356610296721492380986641682603568105706610672494427541350847069791758129319432652874275832519458019693335950178803487475220518567861820947530483342537032700218464848358603037187356686221627978662184601338119784036970143836221824499371147145073498148622306527404306991654424928230035729928025868201652015812429712063600895927346244041469568410718742591128597676749557653308000238280129511121009479191097908478559790367997420198214778816364837582679540417694555628263372603264912610685663741731322480716670442102474189114679709379284228682433749098834363505504676626615093278561681224217132793576336194105566350203825462841799949828245828516224884782514442098192341420641752691098730272639519236284294940547210391397786732913430108094721518307557690285443065354410110789146638325467237478266419899688718498087445848167818663673354008337124572608121355276176708152007070420176039338188662877869223929647601948783769424797426663721821408902185433723479091165720399309981079473099472426471196456980101717567125357257106887332807641199383466300638878803206055363418146279334151757753124382633400110257446927177155120534234944835738761447351915442440937271346131531439461943488538413542241259822548382147908406417404505590489205425680842162802715643113367284765677175218907504122220026370835789468234692924544293410939439686861920965644191393242592822278102223950118466365009607171194234240609223726731598628341142302326467225927093094127158368668741126836135101290049482598902601330106389319071675901133681507957136556488076001811521975802786993531412817349112712623437298100549564898726954789677472130802437639847331664473568194217277464801854760471254654831312145113055996163003948309057406279377413267854648185262915497769442647888852754739431826626628799020518273955964320225933569137391257073431733220275290364705833973978898078174046352502273382211503427322946127605012485610399787825938665573132841558671981729227306169565726909949213090114847807030337977985033592393373620360593137354613428331485494072632033435770010130857459870895800678824482024204882904348226058206110187804515453485918319736132855665729852799336815616205409750681017763757428306203095967111781311247888576720823129884210268061555700361896645089790166904909986749862176889706596541028555855377928300456062814987531111707225407881423248708613870452223968294596402742423303810737765346600686645464565797561349835054668931510387607962640395292684320616466544326296617164055454596522168331672706556696583779613331322492577783851885899192912698600658333874432665686155927023458723776836408699716594070861099924271630459280698375944145844585205099945077618629858542476836864352385404076216602041705648811648122551143768522591891603412569108993846316364448148665627689420868466583699424261688423997891745883704381381329323033996632783237237514256294822741206199852718725454997293201719988901857993502729452279787437166479110369054217134153071136511310187075755418245056239802698364580197627313417225593172480558069124913894758885873278208290165042676766124484502124856928129560377962199112353570408227128611255866754346701007061558430405071068975491851914320067586236361355270742147689128900946770043809805629796405829059654655760443106374998566798582675382423080969129155630915934509000203524103530675730145466478159468028670746681146576107811611797516799288317010718843046996369984655023932459805807717728656857522581532405678952876784473812332146095611446655535503888614982255280553076783873072624704280154670698255262520689373162178660580812303848488546264972439813523096184724055769830340902554723893944015299598221008953746909731051883485940735214937493489535497907869120426318583926196062549518106702004395444090527141411962835827728753513173978616019640947340059956345008862314031997684543644759335173713627611704087717831299380348262122714171232261733048873871733816507838960346550232254886520761295894129929602745579401376072504098934582472764068562676698882249193787300910222589291610960894336622298200377076355857067173156469892301125569870533705075410612718361609102634393148052817528139194707320047958956584132937272179400275690966005195688042030057268397787230190143930728233626237566601838672146856225687274200580741771136340055929510285864724773119923234415701338645540193545531131257308113710947857348819904849216864682189255749153169625442037657226820560011129011429267328784037529920860604463530810087079259012634218241897518794254523096340903427185577557965319545772268856033310715683414011814620664219313693251747549031853390554565000514012420155020714203375637472410750336578604551801033176227842601643779322679084199503548700898116530812692804499966976890678849077122283232737474619941563496028330428842532433956210852259332551448255336092257445252889451086767119941793902978652379534690911925064562352091034323387475367545901987620011207765307017250869006183741802410492260601208892149503113062619971929589254683500255449691909993557336680601612169442131533361185768314103106640687611118377302279911389362677074628711181128327579741711393194422779768400483387149993230627542294340665289425492436145796823349784712781992904014684162228927342474619945615736979978676965158484826946616823935853901842148684400806471711307319206363545888685393298353167802828555720363780201965344438876378073583026198334175285906421172612222326016879708581406815837399981757452271287553340238573174358647994608951004211371983979950403162717657829381669950883743338115410028105833897263070460285041347966308568583622109985580045623580326501486233434976937912996055349032669668400389218833052782712973015640196331474497815509809279783822070469332374405211623555819583353215048188224299291322250006341555274023725949872273285556819880375772124085393638423657429244850327363117175966106439294537108722094310344248960586938637986881817744934306100320320911474057028136378454191068569453534978591379480009959880748581214222047830104239494204339500586997222658314166426136696259544349037139420225289066141850313161501364857714417189382816476719177736106048514930254702458653435077258921037534100318750457785262128564627988166008665156168551134129606289782065021213778477161778342067164761192709004698203563842909390240084749702812452295180161139632955194147097128745479842533904567480501010534569583573250415481516560907850475856726041933120010443422817451363921895042225765214621863711645355989851109883342235265609799187242633407972026119621205448268304831564187550321981783580657195268338773156909591211654457754166373249443617728895233348578660908784183024648026808991466358880188568877718103110096316100369948292159294737365258833456508367378994479070281794515332445292017196330760806012692729841615330545391604470077522741626576289443977639979644978359660338139622087523118154261970516429552646353627662801831623564805424496460606647961753481219338965043037171620189775206324270837107860773933718850237454363029658771103917994896915778249597373444499980272624611738670986763120555470071768890433038468999244501872418729799864528215981748484630854501077367899013970294900589815190186045204105225815228321316964392808186341522695797743349696897859952010586108971832954423092373761160534418537268883433925976044435674686978267747161892479791590902286671685297649284919762695239149486642999995073154580993941052241602963605816673531341645513716394935519287827583459851817608042769981097297156671237258666957567129234219029547680282894905045442900889213877240031460012971962310308922997192355414776932372437975106735563777508732330978241630399741141550781923387231829168388620685255424976458843229930370668766854789578279517295341325496177017806076853063828687115094168505270175281458965121896688234319626114768364393943374069917277467496994399151007281748932496165061308363413024507900120044418681987306047679378251551360248724761363399782662874998341467325164694764509759324982153737022206053339491657078063941963176262950698583202155874539237380815644889998828262019523660780657713906621123942382975110849321377081416227934266534613891061458080107856049211762426151753429613435488704954666421783422565923138774321423376658030859391798491158936381212149549783261540413493513869309832861875458325723203441408799006629143303758953211158407964801072313494479092919795779433096492787260796490116410997519980436112174081793209294246942164784666328412615084344153062768993681516867919704755460798316881085899329772839899162040736434797456117547846054400912588359854406152112353591624089186212119732606244907497051119721981263243916894807346035165509649594027318989605258286031163552179482771821584239277420395926108017874027671351324368753888639591595457676095298956221232842561741538988151642232169652739473107454981276203639539999501619409011772770832071119876606962188221652797158734375284983130884606332713336554885588469737596864520762968006038003167282426009695824346224849213270624061738560400849276409724126672775600774293206226092376800404353558054650315685709866779298379625155849927825034076955522169772447937898254284078379095782347278064976614280999167035116239355904885160273406699894661370440191018736787243453938486615229147126963877622756012827283316565294418548732779469967584870032430592344218091474705214749949805547123173070491690372435406997146499294607141312102590385296699021318845322142561402233438067507683644798498958763138193413529467203821162886057111724490503088358142525952980368169229984099750737681581780823210480019123260247936255660519188426128028788612742922858347508728779506425643611403591725380865304856293765635011153588617155486174560156851669341512314961555758592199875380234860369562226913849027790365676649039706825648002683536236875889681838939351900535042216820437516499303270694074988855307114220591957791810841587218614634513750354256270538240884369931027240272054166781014932236048920147634515830242597243592825816500333468543799794549122701247130859746407363161398391366428873563092405880886883815178990239933334755341382154696496687605586926366927173614865127061780167164638198660222796971229533357774271931671360897381068313760175277516590762356537275358647167665033526152096903786454106802460479847826375722936935836090167384408607071672063548810370911222519247567959379869950296384144506121013722256242173371750562897782931361531561219027028560173393229869176625706535588527511619878630015649433481881951941718414104553616061834169964874875667807460557995754692336167941100577830459633609409240174965822480270604974070570839360233437743612659871877459151963674225647929240671368030395506147737003543797458327129183375842973192707845697262898324721065790137165749689164939882989746354005280261510225184542408087876258444059158968075363938568303031683674965360807972307402063793507900379527585578129151092275640234017391653743636895109304088303401119132389099695538431524614447515852256778763689951143082106510466941592011717815202140203840296154732246518201870865489259947713528204272293626480468683386640323975448770545104645127370836864244475924618092179211186131960171172279553159752204180115031294218244767046298662750263034350126338103623011996207860900379663640461056247300390028352312371297944508114726086883069905763363227629998890038983370669385998995255106306912682702438548627776683347756520295310470855791189094777108023300549058640504907346370608428891742305079417993829277100981026347381421064366645211631745048569755197401683581813531877976087359714277828246588960959918317129897395790661226865014226285218038631381602890824050761101634176723060400395587731010942253997365876901434762555627157810238243188833706096498640505234828199964638081847277978263842558684639495188476692731348506945934483535284663750404526756461066759495631893830684946068517877277583904479596746359725530688008472861983847094381974594220282487230278701714324952054529044042185830100545324630581486517829668171787325620328853462429894353060470962879548423794978586974860951708903145414250085052438157891719844002238692158759298485570193047465658744311070815673862422826222879079198510361320151155643917694344881304590864066399829158712546981819105212666387290708367826222283374042906536368190365826264996733633203992036974125391686626077371195796931259583308923672643975499766622535381136044257739884367652842809371758031027880368861562972751275570266309295777821926036740874583936625270007949692026043527367315034657708397384529103576302406781809256465234095933250981339633986726518678016515142141651362293059716720560318143613225279551360391193296357768072994104507986561290087079076993251421028023208186315342840351716874205943992650605883108323485747154613417271528053216144431214948659320456765714981263746222354389487430242865091283054798780912438367784016374693099411999358597770518791335856819574262063516553350679848067891503898643660736182450497343196134617237046187400256638311622471544775699298143638492814778938003213798694600765651933765638417218231712784106489609376047589944729163182360983438820493133108047166296554200189043837846811177511435150398009667118467238167589760725146228651187010056048662636989290967951253193406116144579441529182797135048176591302867679394426602027347887833779178232134024779994165596347901482825121242442072658797682324647191510171488561046055802593396027040729478918854300773759992580061332120950121246050578372140391825423367306044739170316149569541801933378003043303723213756018840321790294773296411280015217389888672479628981049127294800780129791346373400529504544222130845423379858267830968183336045699661367570879172620101759939880157697078158731611199539663553770543617404930703822060591765444426279642805283722661859556066318730098824043999343268865153495404244268952300846583672453862522611738699071242702130511444864911877505696611903555711457124542246042650638542265025982637047642925765893073657504022492568971188774484009968668982819619879643000399361361155013817613017824531865085066027852454065983689954098536789033868939771838307966319975351602110114296259102528285702520235310596847911895263350349915689678098168986066164698848051608557358450095549299391524662215722154832840853839249670939440044301236606631666572866416520051865327374228001617716831377543792502541884629245360308975197176059826510427516379877005160419269042722632501016634670637206863861395306335047065544079863268509566078532881434982629963584314514321346413619462845070458003677566591815490128139755375776931614100624138060508799678678148609637300151389082389770253399307463333642817634039437107352675707541972204398614807726172613255763288718607781927693127195782578465093714357658871881645473680262431107756510194809045094593527735424260372628547687102278745740094983848438448574698085870783317741680984071107286016545369292361005489212537542476476222255683816774467666930500356387908323902548095042401297839495810063638411855883349328953124807473835266972419239901236661458783120222598127456381840617258315691670219456631097738942228836807404992892873795227315437610778137559512106026367935123866847762603387777504488079105864328781058814961896988771031741240597001071013817407020417164325824264847218705954076594847603219371624601193083884029232723458372398994267617939089528428220371937348298072026203002725784505274198413702233264378467645711526537562612572315445202482980566770774391961354290429979854776135611833250822638739554851811551220782940911283911599113246574498421250442457716980573836058817322693286796905998865731539782339148761777264123304782277161362505541796552950414165335122371287677273486052528115083551593772863048721530517329396520260112007370999585164423904848008740026844125718067857996442892411340728671293099822628248978151295337518001169130993563921560921707159833904755842132283814642213365506952929221131210869152944126097003164721360924734622310537388496937368761693919665528538563325160265533875402637279701524904883335165839947789390298542719582290174144116770760038880285455598987621305857791095039140076501333641491535804587945731287677394242847503968883592493477441489063950425521826529956889923225731524285144543065227802300651121496729515225439892659744775129559686457614619548850116419683101673413212888223983882722718105929118252411775767416781434925144234624328966448396976309168050416659459244173358453452558250940127677394856341272020136680331439689485943233160595748381516474486318165557732732559126083678620463682214005685173815807393086582590831304424369588030619265213128348123245520874909910369153826458174067846567334517024124249100244534801933901708436892117659362598857090650557576549753355566830638432620215324033922206839974850496616173570495227123872999851297686774441047050705207032863709248170895042664355954135646045805347800037061862839651880211165600349356365025483340657835377441830345584376811984902294913146267236617905706797763161676284593649868862074210232182610431461200948261878612927874054722904033116368152901353603461540286732665692890458521096423207135195893806361031620368957773717938388459748312456801200579991657011615652352325875398955177445120523993510507049145138816895793878347650848948986908892350102491504253402428703194699066444636948600195141371386392778193828927695543364003431448515883190886612637577975778717094878741204075322837041473168916662150227902687870042369948245678933187350567388611997468270992608198087718481500867688983800329946817086903307908515057886582446652608083942970005355955616754232731508005371042333903643177397140011470481258902150346052571649970813243318775147973444536097597863046322279093666163392311667988706174218797422404304858717750649469015391703521156423572420318904159460796799936804024699739636930625181320298843687176683544771631509943434950644559252854829518468477331565775327266742506511519194529578869986517357497735598865371182987140299288218412163480829428973906269733652173026345518533559992405815699637366406389406610365349443327764509921307951096024956159499769320715240181237082066053677171511436868784356782036103120481470530513385219694374027409650008343630964852346343240959041820283690198857901468821353054869350032783035329064937503857851109348856969192510055658301533225697108962992580200177646916535902655158894445617382357046437788318797503672119004272906016719425734626838510293900642501122958647065633830246319481092771229104204744785272185535296473085889660077702784443265625942603768322198311209999840998968151240956380826020244740077349726893876034018323117624992913628826710492720547622930566358268195170811587785500439445660197482075264175548903910063914098581099848136362948826280648349751947455311452120353099346425258973572379368682524626983935103484140664217115399552567648676975074360938743543344062498364561355743028162576692926817597588748202368944328334674594745456904432703265809508400530345316244567952357951770632974104506893173765958169228495183690532482823709336840146227239523169450341617587827863603545508867764596578836466684485390559009083910056357195306480001834753799410917444154236752155147055094848450326714566034107998610507702301893795043455516660918910195483895769968105353330812294958548870321394028200428443271540800130590353216578361741176014833099848725268173598128744363152323524072348315264124980069365838322076537115540274953018976582799492549316925450436487107694132074741973246030484170848361446686399506250073194030550130074033991649650976851473118166376038161067397434342209577854896733421102844273688118485856314537531665188802288999439578249513459712198506179741965213490159184789016097302537259101147192526065334811095260946790321787671846384841645731705345397255833550123441535855785394256097710117445422665215635522336100626787757911313179130937656099126975592158714575381684098414729844391258181500117823067417467825958026444737294495386212604367634006715144753722866785953837480010024798186339824389233246619827232362996463896596484323998275970372793651897296581118449333743034997972841300876660379043487561409583568311488916395666152962996825427162849779654379052556878484521539314915910837520525088319999134102894810370727746445384114246897680861166187901319911605663083326553469152276855736827880170728357804978113314855700402672785681582460131616371267874685765975976610110678561263370218452730309241174816166104107451297168633839341233625354388765154383136931481371158679243403908251518238785878657243232034612906998905310020390293803353616901114854324867475435722834709713197753847195593361301884239258238145542703937876588390056361610359710442721377560195258392132399990550840895834601076145433626889312490426498184324438054979400675321247327220827921416000019510727519341119095461742264266179871447776465122477110232448183262986223636511496127509330733538053674119647255752742330986838748835966032304079871871154434733885918806011381665193934981267142112860185201967931383627909624537640543578831681327791088402939032144690474294783975803098737975327510698645655192915292631560275342099450373505397546538746644862418306449737320998995575664411365881295161120030272366357427386962666906737791969029635276527436533610335316801044511053070257985377165408126580736481466024137189885205409252389488061531121830563016748386625225333657088161263831794544884419575536730286272403189347973706333053355572719208317285712444156783210425305156491720025079249883027956894625973429277244191842099538253697479875770033656750641701549124178732789795234218319229544089250215172388837188179334502172901392526932612229610144064642959252704892795266939790802656452632121890291891854094637591914280085320836887024807357559395340761510986468932678580146225384173423785030249627287306533236893642697501471555275324346783290461768973223182895592758722613266777566288758335505329934306286840975772552358971531387678712926044107610193791909989269900293584920090284964527975285598177297475445276130664335843015027993293409044795357634201291356192855194090456228683372483060131607124699813024348264151394863919225274455569218744571853455749987518604933947026889530548816706031859422851422900635902036470867507501907390904476823483278234790756502421003946320224473912321101296792989436620712666248718407877024260308190917299536062639837413013542349600808544971589568506158366109864966678666432979357960118693181111164242564319715042637830643739067899322947682969905355353403422659678208271630348407210069614613049600707875053857478104035090477990100047969930709482261296937905998845054701540376857034452903342041489871563568180932254210624020412311758341374899465053846771996377352998940277708924088916362172991749390655419411576756523515742625790752369138198226059775308951549496618659815193151577917051046397315720356357983951507480734810848719877223297793928768818773548200628823908417126343089063086424419574725344751358777811196418302859541547737179180847078931529702496241785540224306926394686497343374743142106837940756032003797556609408849579459037674364377788970712106126546721729250295687363487506755563379167721183604979432518998054835889883148919377298235382404153081786491311099898692808596646836763423366171823206185508975882491425633941815428868386958345634740504386486243600552664601545953774886408384211428274071558172319951230803464464147657967112299398965790997091234194068257009726623733680518092236186097228970396575375752032552341420943229555786039388371036063603080948212197247176311941141036821097693475238367102887388303187931594989746034952190739901516125573970419330120689570425823415879315845618995178090996919543002989587168147420256902050273316796780261234317197295225422197057015662892079212472308212149770830225373195958112798288798029822973255946591774591235410187684107584186957085052617587999879313828056939951952565997410232670893456096063040583952466783565742450644480695417116064114919360025042262125719711757354799080479362874721688791670448568470190014113176692611971365715023316094284126515137146033237511420995786519958174994708973088926816365421390154871666309644115097081733497077458229782210695384873834695026927026490080425749762048966126337402421519299201003122729071336827450309081524265670683713056166699470031136687431840526800275576103717333550094292292407948079261275758459775159424029691815966491774014950608283035819260197489781416026891472938799255428329883952686443676110330549048421114406026161671846736120582141788803192673981941134167702536834333793813791857727677671554411754267320066467940580626643832290567330626135073833415041988923873841530506697031416424560514364074085430950822598470607075909218063073639083758875913805210129786890425780269626872935770899633593441320432277033038753971061511649272024966283797675697532745693862522034335349273671970394459647500898290700235215133281479303515091307067818714777738598852404406898591352856302361197776942818551832832381541335263408923379625628743046317371680908431303621259594461671874733053284191944682782309445072322767654227693737839571878313649877918182310376195486352373335806140125053154172951872168171272301797415660425773020573358195239435132626131348235987323551718597628204050071336473035527813451013761626878993640821959904369515190532759912452882529625935923897103725411494484549034535262759103071220948235612473746612695450513527390115959460690064402673229704702549324515836781253391927810831287073669052356574425311973075025546835120155109470755061252156846677260515110849168734599095761109018469556273877413054772621919353700726462511869678490313474042659491423993282394430407502041563423788893057688234916067995181784201863093807759222521914890001547036818972304934539413491807306686582881079060368645903027190758356495740722279606376082145687158306482501429564337530280161269612566084047073143792750115926087822204399282827621122060085696537375598630761171486278677080582978834338144744148367405682707002530694758789750401593330756202860069990647738399260800575340565866710745111929944991165154893385589078935645542075934460819451272235703307793367466191579896446755134853924907627881449202586452500246781669244027758423881799988236217073507689791846903630145327105434439072780768267817860484098609438911306507693181997147372301717710593715392145208313747706330094882481528136575410243509857388998560694970890446535364759848337240653783110713116961423716730868265726783969221697367237338182177038444683362031877870799043212868324435378883748010473365511296235876134473287566238184782073340773893668155723026667550391001564595584267833971718365120222545379724997333598587198256647921350617296459281034482812915911634050262125091045637495329162930733860497874735881977177020637233067694432108589649692373486718917737828311167340490654104770780596959942353551452982198768770906240837972770836366173944186857490126681529776425531313342428992574025738991462761715590905744727847132682250362919204789686540474792932260359624132643288000274490109011039212945764482299597382294263447044283089258365903832951891842705386541212431087614417721522131717663798745805500326615259199591300716002428566536751907035314257707479446108951395035899848127525995357170364276911859780765883281630481852619829680359668983941101204334650056677665253716245118260059861406413199491804357290929360510931285525506653484229036645920453620646426766731434947169240915357646581234075345076778809238003295101109647189951197099253588361063652625802071896499302258668255966574477389733984408241552915241535024062595955626805751804081366759552516014382524509620983835132233557594642745939956859279896946157992633599721019494000452578416638761703278587512964100804373259704369417312587172858128565867225066616237088801313520246349261390750397103331337854197235799431015091884140417302129275078281905459948047871342488327237597618254293698723124913472918657564445032649282298317062991954215177971730622606573600562909240745309378080485793244735834065762270325007414715686944424206021224012734209636162061532273657768743952450864026454044091423248071528293636161408372249504617498707058507536132696329261195149511195669657174370027482124218809386066439999869610684515836278657629093309596708540584059800745947667084553536660788337480533727266110315645694448640688868925039877493546859408319022474678535703130704632728104897069707926881728453718674340901028743835486574426236044119054063295044809373941611252073260021351366308080114151116954287056619866755914899379757148386465260767252821230121133035734635388597344400149044915839199581291080892104061065268289286369540368838054495536590646197659131150753208335256838028403016012310283168978394971191292739722984021536693514971198905047663181021413950888097975831521837479705526115627336666184039202405917283317148731984071969656332176192429091331319354886205178077355382582665610875609207149143745354161077796721574105758741536488391628078191516915274825190047260964153059488099469172503726523607366995901284756527258719646816522735439172099269025542085891144409788283310432228831524598522007656070659754220113512035954636289225613154523711071611306280262399933835476779023623923464736022217254870819382284246751641730228568846808425869904775617934320190080550090434407614872493994742968667919872174986034552313438872633829914719695926595094634088442736406480295106252154727676226904969627903018197194873923654056957969133774951604186679381702428076106495016329481429725021720663237098663414412549167570299878580913831009951270381729109844947642316346773476220526507688851162903109789082006473407133759578793015133920032002800737627330912628475665412753913744531448928429843483913313894116062626707639497175824666928668889064140078407832346008075052265566726789684986319727615898382028770817800643250723622523102906447726095165211486187122428753625963696399321598784388150546374419362657623773060944340382710416047167065443874280407795619939054313025823632490771602591725801651205811792351631834636406524679220851947438151729266560079890405980242631725481816324473281681881320637811039368930382691222826367369493096632767793102561156320408593431228765668542311409820116646740061047974103081994316494829334169026485231589034612587407995457360859752296026662579877679659636416826782660817142729398901988008004817646296319260644559233373413036737613655533564978991174113160640025234025655010140611440316220409656981478767906945056084148564483816830636877613814934735231474561683753208089532709272013814277757046180128465324229555130872092440518366579749709588898677888643641451955833950121855678487500414894655512054207982692354251373132938778959856137737260721946217835390842120079518304518429485319466717126479657379300804889638614944423307237871083816640947126852932267595103897781839995009734457940776929311462127400500132932980924773815358860175608624396560106607383591820617610929883163504727479506446059673762921049376482860970926864929237959767122066999870432441684065446286801118317215610523524964862475724860941271912968258593333645389306587018138287612642477260382366903237081604151580628755448229926966950602053632027427341934416074116476307879781231242065418423533590857025875651410515302193821599245242197562253522902702618973505867356682705368306298101511289652661714579049319783463510003804511527198804710246263578522736635195556573209359146159510530000871360671184370184777344201280558659430986748752490005578313232615474059487777466076616479809321361821936702940893038477247821694140381513364103087483013368934333973904050888080097516553621887710254784809474255179915244659716929455742147418041298216513149987654309893037085583231972765730218064389323469915714436077075420852790087546372684235995164488203152965384674376667831915960087514580883640583268492324823260536120112957045790446453194000699129991444448986413290910737584622750021126467127245119585306047943716464234062893043137753221053701617574133899088145483501392784322222428055298081709374803579705400598999180526925674639142782189233341361762275715725167161873465504624853285249082620313943196427737813935103608616292738740230177427504429362817567299696486512951458242526704014036365749394314037297395958855030455769385984471195832260602644428903666198193158980285479751319602466433371361278129614512564260083963884571282507905729724886770186384996946576999421461319007796516668698313950052746764696338250562424996371844644997620758461473693926619000323001437881695795373853821221588852087466073481180040134924943818171758594619217072792028728335902976821449098987185721278304537321491645052961764008920423474683084171269323884757055913920184595565323855020453439015554202595356771163488257965172469045882932933369166918074834354835375880253362577783048897123576643374577042631592357955248468008723810558317791555986160473616321169950898809418554368277956125891902976663317944761727569399379030737798734606917456428821890213492597601823367447986132072529315641667034015363679845702001986121371772622877159729661142017072056029385209344215623905308073690057663333833866104163293254380408065760050334687168055446334951545626164077170461625053915249158134955309882946070591969335677733956372115683306286470756964078911658299246855684703241916557707000280199445724550245244640330405797821808591004658357906623656880625331413292183615966112706110900312989492206908268483545249704208088420009009825681020944321622070621993633880963942479374443575162708330359682996743956806937415179863135366894667963557244545334442740161993065123825910223916568751307736215313589172926158010549489702753057176229920363889185812994977656815093027480837214410775949457827798443226553989898848315430754119634974467798751133789549866966068678963629806813615680303463228868191241756843196082129589947288734885304449862339365112205285812876625926479661684903402538899796695344209127316439564868971062123427463033593672922775258901169718492432604107592219709433611049176852294490571732462357173251610853980698762962057096055079393871276880564692797494687739795125746183328022367873135196875449623254002202237541784797903859275545670365682995194291163206743916789326959290587586176511106298570118664617445429672976468868588809500962450334210498424259102099994286057701584110034542902227133048869388585990099611571598847141377954467963953979875567733785841439209390539645471509993986727549901784688431538629132317862802424400802736902394929714049222397783647308322710145093947537624046125564260355552383528658559396243797935255883818593099300749479106984290540229750828345187655922895194045662915824750523640981753810841876437296615471518664406142871804807542591043722717736374292959035412849097776846821179367438086390020024511567347447857196663445403780666455100450052286669796462343309002366510061791977241522145975516034209075926963144348913355055384740823355946258431036520882082865157179409858562891966651051898569389228421331838753257300544202100131784870981404047810013645937294816288031449895576153378957990279019421738663200487674260984772999490927653688487981439480184333324889765748200105955752152857003387437691314460061520311383487207828677283098209853583833129237695576715486727489389439383994515509688236412202142574070388310760600858688386684013229564347981517127220272349094436077545425822047826354270703527354397298257591545473669415226343071077168525532340034208532865063618742806432890849270107390658725325478637559953833798820059006362072448848941794820195211284115012337321617761186229549538291880835343165455454986828310795406294139096733389416071299720534956729351261822741728921424619731925761577748489482432723894711157317378244271567615602715290687016365962965415398585087607530953092820583788721256463123926252859434630789541639760535874120454164218008915197874756095182741203608577954540620896117092201577248758250129588082186195909944364215913277784118521215851759541235876343911629745124760156805094430958797680602648818135576975810021537943566211923448302006720519161612121477611712243310504234340851949311345093420093385371410651510179464946516388393055944482141927754336001446878502018140316367843770579204636201901188110280910811387854577855793256289976890630443722363111375230380468857315102224544656855536097029954520854182836371685205741104865320360936777177895363707139076960781500940908191761820876334995889915206010588773623177083623025665222665953864920117907334038241652763505627221664988875717292078028483975399802841981826218299024061213600884280841630527940690593875983435634289441084850473084627057033065889517269105826994478433107657412050693805735965104718351048122811526687275189233884186519145056171469057520030796393176009390538686905833649551690089991572284100248018988841558814431817004349891651471212577909332825400814353541960422237944756735327764412938680688063831743214882544691562756999569827961056245086697719171914644144050691268479775094284824712949566512643359354861638501506117242200436108509898998110153096556154064821885121329223662733216362587083254910011767652967111837481441217439274555467291282207046246258878671061280062534603791375073305721322773824664872236662312745138613906505087039277326719195525276523534055179271607365613000120837277349669964747021813183925705237480090675884634482066968737920731184830672317723743508744384807892427809868608035342907175081666925638405372039422764149325571641719190575522800364379298954613749073241347192747155632765447639938894760230044804402888321906386673806814286400722375361234070000287052500110976152366123776900872576943250928179966377065695864191852510076597409940518651769000854952290483198300855692971555323113014701304185656336652187749235589150755560582091095679467001997272862156662054848719910334716740379443919193987301519219503817354691329099739126669317252121093786726413927584139736025579073576207923690006947884305494809869727463508532447988042566004391576223247633161999586379049298310035634861323266617177243251863714161730830538205706865446747571769381613099942541336727789633113465985662369871142787298747554769759032795203786258720913985921335605051558515580776851428726293919091276206002372251116082956476973053168340979718019858607359473058877229204202931949960537052675669964917499787555167211559222720466927840609741702380608182190137676006963251779980400294482887774017692822096012898615238517731511015879601972871404570489158090754189840174749148923362777922495345983476383442434768500709591534276434450195677137142454188241887668604292557061218780956438336463563972283138377558893182157580951645817028538205153334332417243842678442568663000235466079017489047244303539082293674407527234645382754608473392201055751050539657445566365112483123956839382106154598979434705589711711696525090175077472552269393224727047620499778577907821611912489238892390026733403907173459585839368672455890828296773352465194037669931814990903165948833775226170376593883160431414273688832527152912530273688076896104600414483153156745899775950931504259683303921160027087056258658807351231915643420741409546691906283550523954247850510226728482518311710678965636712339649236223025324596977396211171927059882616262412906051538705241064154342356371229422654192316656690815849492396148174285207895067995258433166369689265300942421326894988630540017220315472527298407036767931467640023842242899928265922707497341275772234106536711862792696281738435870770330133101966593051182141958691308393926706524900994947352647553461738437791421399097424256339907602461229612631033407491450452155718835626859758047471034678890595213009371137647243178535699926950917100579839039417111555439115569799020954858940414373393087396746440220845119153566661316395824382301804801184099452556027644207625666286118257496614670580045413977058031156123681737717754479811568804244043194532886238363506554549895872265285172725376382947071912640011486144659337977917179840074167870354326492061144792287608169096204483917172360704818082414261466598377306738375432528523091561490106491076093025507236221876911599413987632487074270626826294259612563913216421294545470287720918563056281177804930359911634062022942149667975866438394253806398071743039678697162852974813994751769091414484551090165084326338812392401583989908918766003361133464840365068477325159053659446281125863709676609934193644355931518151736888878203338171853981414520567259293347861472307614634645249325099881863755884424954507871077164262176736498588871204172130825123288639390210921311911499656169623549224165512605051114268958038467999496936241284757690666659820752847226094625180978876237864840945875651166929248754683321579588832141432808548867151007959758403234977007706787974152130909369558202755389745831746680960102062815606917442278131400834366634808842144912241781466159540302884254483948202176271188872954907606596569986641059608072039430617553112808404443746538676892792141628681054129776427599538207106380557297398415892217222150639970272997204535097582906489855844812280932150577316146095114885272891424843044267278660947911230863749259076763535894560138676731917926120022586951909156260217076516170259681427820432609975852935935876906612498551463199584142361833297039562327444053079455438349632789428767650051410120491714147120031056031937388406687711927911795056143697663411568530016508449274961210573309806316610208952675552171521950068038502888141672639012597145753307053571509646991992026602001341124818995086200059066880863277116991998371621518748892823077770258466983433413262840719852427666049942630680387316745391879573845882951672575951716415156822796277700021988237579663870707857700596916171483132322433372611530108581629081208850919323552203130420697069217517840269525203950612675750590602488979256035794170234318854804401116580261822473532496775887801984001070145763226181519483034938290023962991836682014747946233984698278410699617888216784243220405088623401468596992112304433268568939761740529046964363837526042924514806509373158129751328993237149475338654957049726126170862370346120293903542084581961633216661247168891960752737330672857662045888635556873252415891485727049681055015005850475472918176792095381994545378219221993864942759277913669261434129910262430112076873335978273922086662523006204186425749123066481536623156689348128231931562103114457544696356432449747354598607169556462728118469475384006419021550934578707141885878949251646264740272343916691309125435526103539254692249931884711464231590561607005682745586268315740065764776585083204654340011490968611671094622941031739871874630898329954106440764355811037461681205911765028801316908823566789879398057662931627156781835425680400790400804333060128455905778016888045562101548130115892738694755984938849540637212228742981266428630430106059460276540825928993735717902170916333534239113907814857870329357514313065242855336959186023100661231923638405468666810702788872376370125551982374934814736217463663131999154528492787130569234518489675178495932468456193502139939919451303904275442927269063151639662294195044216142378846191759220935761998321417288693640429797874065098289737672321664317187154575092468834114067643563746818824756794256802592573851829460895368352330069923349813778024606935807995235132030305620063347987691249042944260254848490998768254944725058000892537951180668996806567905334925454447285573597862149041365421246855430488400038281045187204393565890880194530560758269010268069269576962614036975602786851592042748391293559785353981317361593906158784943375124811941037656119957724749103658221971124492577120424971817513106657609500598889802730864013852898971669273594448771079196355896137914869303139936342516471543018376226020417529664837615090316501178751182163170116186417246624185744982948577427141854888926136828937506990985234637204768610884412227424599504216039386012060454294777916635821309876399464151009115251478780958756261204012890713394504425632111986626780813998786784099221602791604475392951614436892757080643743086739710997590111814873038306757945519984368350081245908145132315264790193377744541624341453851865168729839799190722188350254261205714106970291576778429257671571612024610880857891980327441033249058614602188222529018496945034878691502177815367347490527818961210381839537883053767986422494107217232900816184547643666001882279805486937898717922964338121415348612295798056479687515766246753637458120566150448195016001087994311306199333528680215521665184280663602918048195062712212901584947799323284534369354957212178874274649524686727332635033728242448641540552305361428820033664642387016763302483040827182601371977137694124102620070011356342885831222938447445531087799129615215849563025952816949238655242254909747676314692943751667784705252501820454613440475326221895407096535513249289422519033509887655290312054500215875899666327918523732519334398322404121106216073695602722116038815143178089940392815189996624528046365261638004633465413690525007211617770369409636772029918865052800970867772200878553236873489760892137944630350690169324487753956428948118332091560416365908641481409373237373956746275067359863136722649756593351504168540722429095769909316001220457106900744617027804075388342732287173323030718997907288768608511175542136135716876715339300086056204049137552806878248049771776789641456142474948823338120170149360292117015423613368020409674844731354664211282181583964091093435553405977509251042911240918550139923711712887191468930481125849121488413496235839883773362841764214994611379283843718554325385459709168678058068759294385794953056914305559053851678732094516356884171939246271309434383992182376465303553768097901326376605614673611329674276206505145641871994980704872781173695301461220849093139789257988329727463269360872949103787597067340411322132105164185255519588808980911358349388624215693408495488772954388734275963096356377306580814742620950179085849762666120721210855403222999337695822555226648239233149052548465847192844503100218971834775868754809445120360613280281629329548259191590723579965026498283649730713862882569333791774493078892768278953091223625163220162567272175227966694561585200112268538273034984654571921160539554771707254816432893413717402252140175199161318460233955862211558608644438165502938842811672101713468008046865370752005812253542760365922836171295580552349724443667996698258827758327804165930647754032491201301471169488124813522985817823918027571704470882739619790950139692748573187545603766826366941851377287673502090780046825864375519458620269285578807517256927111898196375985195750731177940392689624099457886965311159112166490603636703378493648623818790504780236453589873329818550166792682406852731087239458619235870965276690312627124667249155881251270683081017278112886830241609516717376498695252249142717916166673465460573881920399542911446349970849044773487510073663977626910721980378326822752672853336142157315492507630493127657276357949683947685477882206563463376135594373047095995828569822586348380948551809481783247855587117344706347389298469562472458124413318570409922622255768352868784328616039694051640981928376842261183926117214877008999328653598761424972714997719972151592592996475327107687887854611277072965382764668755413326964103712912490308998870795404646678824479664270853955571447922387893712482029183608490011721568933673682523650892392651211555658592586169063528143539451193357489052253051866413575571414151904039199523431344457108011254428720814706517684480291622996645489743256581172672309801755053642977344356661989686981731261754803563205813958156799357647898389901984598987905235336014413123395742129801240549060199545090580848831940890382283960956785423774525769593994274680455963598656672356173365549423093897173138887579136101559544762020129489669337732231518333467281164635411537604833395006165842897851158375635686541127022743079578525439268024934671859366756536991186303955985859089273175210964515673300857853060319945051768557157560602266286538815809104139584322746259447557127845469813379593461049130335783858781902224028398531566438720512533821308995414951134367976248520895174538869646600183229507887250178523081480917085534855927103310807001345908174408980912250110239309650442389619867656542746939730479355647534674275738703856247490876976757360750702487118232585371136807512332962613392067093492280445110864440447521848614775222100242423327761824091216471370106464689997252220923216936137506516712517552182440315620146281375506102114258254941308162237237318984370894748397811274625673125531804064606493284786966518619485053701904292360645745629076185577173514863117625537629632291777578235782976170094708757388214864854462623061239820222504574190696100062338554976515656697075072096962155428401407312258034081282120217865115034907472849833861987268997874292968856508705393223318307328113967931392320032409609755650428142899175002459703999851562816660716766701492624616987565937697100086438556939553733969341779076581642205644427938785924988722649679976665943588710791056929133363446847733930151254914412980206592057925770268794151660712371669981534083678216592435783912094596561686447060708774572988509438326822811443441766484707919181847973056806776332017746186821970313753794481528493956578445883070241009284431759236027475248748664926114208813479483467807805073863234905776160592311403412998886700085339237919584469273582726135080076094329633844341906733251274457933789520184220704418293268282294416498396535370404173912727629820044499958844072117626006966438304120287927729438384685855148258527975245262004646472466321144819967214613517512189575113919781475805364010454246844717308528849479330467614771851405895931430593828954997261064698402635881973330618977607266414774706086148591410679472887998143983055156234697523785352066400447520811535019105088378971315883087506694520290200443172523177543334875921675976625985458053684870622261052414333247414579397136764681399175352561922890433605274350162022544425951541149361268945997481785692839432326441256081176642439575782571851361045656974591396953731310148350402053975447069441342829875522581588534270769076906260515616866078453188353533790224800736106898464559184944863906096527519874430113335407400304931765908207384178567833275007347816806889206796775919060248939169696687992957099812423977682830401602688538493896157854639324706146325504422531863686950147290325500732662818009852561457741062673088863370386392880689089133757668680192173439999866037677366474131792504230907518533895013553839356957316330651559396766742976245647888104438349606585408176996744128002334686477299123050164014459633110178618374843205433251195551922905293979431276239164177283979604331004232491034933876919743032105093371753111530681101964423883357952462412422756781439466579817433476418533306588426567043755741101812924818851372236213852535432294260118344911754319508004425683784106970223079050488728333890580823567732344875374387691932142888718369612242851462710969730689753823448418161797871313427226302985475771522396184061227519060343971745426906335806194000742708089053482056935525279404680317715415042793153412061562452678629437313180532968904696960800978593722517722040646879351852136947759255762017843338496915759664712794604157753402316403798451864184361745041789764134159303843230781642215563490097170837498680841900767130454515926638712999066791388088397225368708778922368109563254291509250058719981010285984618284015113496259038381416442236061179494619317881714983718937019952532122584997150328155276394965670597356676684958452633955708059288555294554595333802264738388896527347757100484694220243133316823184960402230818768607921682065427292962477887745584933693983018480382642093161389844868614613861051674112105194048850142522602395131157856345873587360123588291697833542997974477389628702565430496709664840199682284841791821636291433803667247967953127601431428722897183905669951214987253962134582213207647177017340014835160459060892383484228004988918933960946965529860550454871473322559035936446695377456190068408877834999747928664319045319450448376376110610410325848433874933408512934726698136857315003316149307615612914070703540454785460735914733304659827262116264103658079725062310804866397060348439483419520512438377634314885098335306933609250258217802305110568026951661798459589618259001078807962927634677402818018252435610261735805541096993073891116646928325485007058944927111609680181509650676317132050097595150945681526838093822400888452492161090748776577909420592684874906814083782647483683040605040809123715173279160117023078291261251554257953427188876072365755289067877190312043397376859766260708717974197087053773337966115380932779428582934937054273354583071609435708369593312527135345662095448146281205751162316569894214229799541365566055543999027884965427043737939859176086519508474689688683834191881107772884881556603307052884208247872820291060636869064628968751760083018752099752284987056528366006852507045158763676468791883981556360465505370083874334686238308849128866843618803836906438297143424320764295611168330993521025485817157886151619782461717603691328106931389551612207895647040088346032955269918073799071848359056165458825582665301725038943447254204865058181987650700754327740815680389467689546959146136441757320551167635799126784988208051666117553769734037681412778389900513106368305237462469439731882877923831647278894244873886785534708027672489315074057168232384440472890832783203852919343220559179722042079919820839388217975796781972528416590697861750145789455005554987193555977022934736206627138282265757740782127507911194717404177259665791436952441075701414961618587907135223131307960690414985636210004180945304962865434040753301918516354594863653230045153548553933042369087649382137009961483503616051843967790907396420084761524373283803130052196893398302416261383627127592224563162746195760126860650403850951438565734389944210284985828314297728890324183067666179173757190771289184838138679885481028454182571282879532674372035579485485541253877881931573354757450755699522684598206776600965782829921946061687927888268993427163804959046854105839362158949117540652972433902492409635807156369702310158403985777547632536534803237797483987630259075719407045726112588907446234031500160220464812115267264480138717262133891464465820160484651311382151389249365133003417403574673401678741232679320071439564350422309112958850249743471339822218837260518372597547352971627492123005960062743193758946034238749465505995414947260840578066476880713203301023859649993190285531069314644591287834847673423479612203314074925127960189622217354273160976745974605452481804607332508167118447546706269290271569537280806333023675014427964590247820557078029997151764649559065784990635070236419388710809208251263796164859252532147603999499382644621948139189467064099878616860669358118402875582012158757631427794073301687512851496967351154700543722549839270772740241739296218198213358782315608360172202365061788260839623979822013254705015050857923774171488870700675192126039924535248130677363386614320721429157137991888502710861549611289292286609643612632137071663744361881778955952578975564265000561104358298585877890377275523686705314524490122777397274580566332965093500771881789646134327180302219144575752151944695563569379018296245187803629557237225942476333666552318509964285462705102449209404088706626105959207988883250308022764891912238677755099315030983837954905579698089980193498447695430311628754918603058311444743780030207047311662246828513630172187137839783660076148775044354364330108394932322236995926617968911831833051111060648673174824483579656064629014504474585622645241974292158790745294689196497758271671214895634368987596338972785620352434710649999183822670061928890249850724395916124505549105942365640699890680497862813266767565110288395437747230466915797787310535859549236861659428337725041247674768475756948745283189769812988076315339426885751678918071396254647308056442066921114057311307377761135165080470601313266369218404589765097555119176184008286780065469213987469578390915564897070661543403611214523020607245618236824749912729652730670887134152185991593752795622422098572483364404406235594029452517504835213180983801052849038787233272337399166815591699301231095369101601961726473538968256151553362521706969575807684133715844805678169011732278312198165001350048779600396615100388849171787609632862080801490839441078449832088989103301542731355970929922952532333676256134622811688443331705609334037378335783866055557971541958943151915345704958740210555338312058354303815167515834859043094116611352440238479850761608482860554854296092489884475276970961332420290063787678956699732555571422647460244333091940085845867428769872992477450334749037419859073844480024127241277237164596311111028950090097383492326424974428200385671587643491001044828636584407659107022768751430953372218990188208852437011788090105157508080556572173286512411788187682920913530635274639446932705731173473146940119219653624964555415315933343103095443110599671775533871402881631920070140390640439540347570455981644426384271256897966220806005348970165985953080310788478333859644612402538233133613633518443764425969110999390923636183554894981511001575543941876532303625433433136349367251922861955823957788198004696019452869132647391772863206328763807498572969410881147692999947921889668628366058977876075070810832094693262464237198443311466998935906399867564262576957329048831827129150177588269202160123033826540753795840855662016948519956265105705089888396288654879940074523735826625378460710837425714994166286164015743819161508195440229940381320476291606531369152041316186720777287575624192774132447568306859711995025379408725246070709476307474530948255286486338751947210138536958468828585571559573155517497908606756542196331923534276806501808253778172455144751147625314627628038210850410033984154042237365321313429804483802542438357928187781929118253436697862152424554107178174044529497284250713325939540766723715000942978971986253636761430889514204947309362737281676203956083734115130327054280700245502341347254084566696005922061178546868571645065591650307176511451564168496384763598874479143011436209518473835981076162581904065807571710150672349787828086531253363022193601103923267439212517894164801978705020891367511997615974816918563432897994530326330871205855113800452985117332972247014399399474653232470705984677596034291748467323268930873795495235869922120212238338178541790936556534855192489454973365087135123738501090174219804423333893737104233988010440508623429473947613842552025904940164645410812714058032133396266718532952915828976260560486183785991227850615906673924713598507770439132562208161379697285552567355646753385204841727529556364787653445031282584906299564930214828975802348072453348314264783069945272430128696787497616186205095222878053012877290390534444489038330016356371531603119386069379431650156109104439507866398875497946553827915525716165386002270619733292881634667977550939048859607001590743239334486353727340206587769933351577233421902515867848873674169108598850867911902441910245424783581541940792101754916895561845063159732433084417114950857008617268268721745962919508950417080314716931934723602142905349947064316969200842037441810651126606064242283180308658922578670151741180116008374040020735872022023564979820046469984118433833917924711359810080655414808130803829237269825602010488916424040033914907778312938956087222585786164711320669740033594963506819033456066515883983270770869609956560777859751836889675665707330334316385686166395959036261121230766909511107339827313087483659920990112281399179051472467456206237737063514768687131164082806002249886289358551454317117702951644556173425707293857057464519197656986726516943699361646759904537609952137287234620705275084386067668768155975809266271509023233292004311689708189077179091195701910104255608967756189870203003042999672565911996449968650013776223618419358322896246160399042661290207280337694235646738145610923295301332301919396147772492913580811413268983023310177216865706206732843053663028130291079668934101322934453007273633067325518100199613633118574949416972028199660283707852038572923708684563627806704115067369016439202872318436082226464457960867678614138903836935370767407975700620592025474113552222723419721015950827430804594660476496154466037232427473301698308511551916871234735863713694168731492317162542548547455296947159355077048332023738309985835249789741463056832951551366424067334862502708031761394930227691974314718174679823347672893046103446253032771653513605072098433347838147487460955404391080748492576022608081336674367724308942039134738503396612477112824917240630629706509130595363554006791194286245517805293878337031171383678660941654976060345922532605730816828833393607240894645832248531861232727602724980214608356494397808306556233070807119266862506646230007067663829402088752204414190293832518827735840475328685594523470703752741390368008716937209604658250311900898660549263613337373256288257107714465110143963517902847334905603530513465624867298839159310974883719612280302783234519844542447346848048753895906146084001998907151690994319573931169590506738991472744082637775287896144258967999076484343349201914886072248288483925088720707655237950467567413351505214097951947463584351875675072609920842862874595445339036070574597482428969704800194074990113298855967203061240266577894400009101732612843700421467909603529274722633661004343953511902249861634518575426874961281720058692029879612937345601445133647193256917870584729389145414416229067973214178229407182949670739427699459828476984163657751913530019527793968416936817523692808186167158090971983191063568721395645597344990756321125592352363472798355881060912148210383120775526554956124049671878090620304776777966132474233854811276353669635380478675303196048705749630654061187749921954481230840852604110267864296400272969631248483768458692142146031081759255263644821021609818584862245383538322255658667464979393080090510713482441123646562163539455577391396484512113870367179961562008996600432733775903805455170575129923125898274130941023356130261459327718170638241521953670352759122119717604767450937235690082106282565060272610451953977073282577717607193699568208661413766216745200339900911682753793816157792140464355600905337375593535369508089039200838858545873970884070775250421217062288144526561414757028527696896935958536486352789482427070968593300462406460582154729711125366070825112594117353230599444875624737125601701429098665342975451481838978735734721651208637313508062279177440851942730297877399799778774349485617604665126769279184345623548467413847017952541132924030356186191035813484972096267337521573086677081648589559460869772577105490984970400722095723679693688612250579527986610918790254742801263095489586989037708536398545280554127184855839265246288677226682842345900378732367553922156488066004755888073514880961981989432733739346565217935828540983526461032175886917834015463348666861663336951380722206802269787111263905904178068875109107295856407616761758866015095617560689753456732677890251003672902039144636754935319421216879038889877714485712964463266297592980544314572830279628240566483362734731646773572599902340604767456369265296369400226956393874339082189413687885573015306356546826191470706244911526653583122199140863537185281013929450821178613715009990150392815234694735002987119539851753883235526101831138731103629353688450086506045102457188799362690787547192099450858482803768750243829653922886571974636427290735515657631131502254762310337762913509182151020220541298257828478154059107249683133961735992026017502769764901372767462491467899418272143200946498268964799619736685736769375026194104035648356730956462686913741197120771092317714533056376821513089151720532193471347071211457609882894353546533586566914176348912716443739509066249096487540281165804964835571506521489814404545311665054884890038776507685743688886345506529222138581143763508410231255054608807541620260254894046200625649247866407554532702841601045011174579953025432789090498448238976729185716845906714346672138527555399422554927560911602764088156579431277756293851404820322531902705348309992085442309116629824275462306813551769684023972284930442573560235934823937408879695935771572234193333479390459494792746085217621973999324119204786587139078399790232715149723419651169869184751693956717115609685441061826458813804745783455783599952389908957518637946357824731083555028679112474697913746208299949246255809208050359415294649713321703901578821820347010846046675869762939089438035130524652511811101210781579955952463418575972398244459817408807988234202008513662250047855604830281412981309154702624658704331176121291328248687023062808126871471450781232707182777944652208329220290422279917925315452752156060256427863399824619465281633469085189205996919113697282828596848460743068846184353279346698989507293677542402061400443777063651071488394564588289584951750990387645821608847435995944362437288299578624826938264808114642474533200588334515398372901148628048619981342500099362956242463355935102347183261204091575454214242105719898558974986959571016701521588459399419181156556493535460056889580879726712083892439749274468488717855584194780918892728721585211700301389154283985521631429766006973882293469523999343444133332498387148147404049404458422434343333377654217720610002942641341804984425727982581556914910687307804551836843311394367805706499100028828084113983331561029699415711817389511801494126628361885811017311093740475833367681498010525326713110242815013101753012018316026402528458089824937806805708874989788429621520429537031652218977188805254981992189388617250668810954484992986039299064975715341317042078119826054812893605499930640241221360598494957455438747240768091049958731737629863908286853389462625260105457128416616122863073271720814258634836104613198881552767804227185452000152568985228106109255181294181221742145760970390722096125334962993554246061944015817277440349756790548106129690945395567544527873908772301668874058282402170918118857606005646189916945392989925094793601230417052097095574516011373737827717573164660121323946898326376847076038810968307712862627035385932048775130992320299399516957332943751713326286024888253704344868571457422953188443873826933194659888723349036221305360478154530459833692084954378743489912918526380551314651274934736849960529559630219724229691340136508528955590459746469689961988320622830113713665237317721420535346663062862484552489944912657175758961905257090259569598428935317603617523811004956640739090187914429554902219388082376370362556410035525220415899160448340124310257826026593003605027580846064887605625927129229958964030353049502572627451614631310893424621748390439751643686780475385795264771975392438857607198144652745295729499503112292422776391292211831882955146244785256880967321780538812687057882712703056831708380636142378549760069381670191354896831591765342978627329073606102951189117681392744025931223141770571054096676526844489791252956731282798029172757814851748301349880925204255140016581538337531713058237266705637073267090960735677899015512825410510799705585452900775310005003048251079199311683150434345624870952094680665245988209991104677479051378735487684835973163342569201467638482580858549916844167458444743167010014697441469773497903869390437488889146541091301766453163946958353913689916716739112023507681286336799632603710656808082206566952041638971015942582589266672900914876314715760686565078085463136830288242402005731187733144190557587720363989217101248935135560192937717501539308964134680376977748712276826217140845187309257614693225320385740906381860631668496738162540075947638426032370526420986140484370682441340101546870422107946496771312616989863819472446535768961579319337238408440796428163664326241660560926183448356107812688377855374050354329737207464043491769374384489208479031898802920948486588835567475248411622188168636345988621373865954333824476369208257006932976739783171607327970782116842295810136411606191305711647201702843640569907646946332238554199417294596511536269915451634963720915153679376085299091844352929891421132362199744314600423400200507509673685163554908608967699173726810279923892706591122499231525394619268472335238149829687348150498941055265198467136349828885956442274693240637746376000573592718167250458559424482876970108367787000718110057876699098770340805956072370647330933485609157578974840659137409847431039297835524506379405310018556668274149373589836464568220106221507558729495069085045358047201930091727886682215491323822685288552535424503765388372231337977447507435831384084562640089154205446865629574916252026053762201324620552135580615436914978359313452668361878526730265724328664706902595918551291947304595614886803070641376224071644133404827185820726452085200030966030139364500728037975675644400284664516577826414165982891342182977560033968043420029058530062634130637326669199170850752004469462177680769616513185165617755087032038007056069823612996654920403279148859307910162461457840101751234425863242635314836937431198658686945983138766921750395667816543277869869242199934162082532307778815270993959785301552032511345635066198897099986061162610414763925801866753947763597958102990515462363263122592724409877160275710690697593313353090549173502443383640501441933966974228796914814319141837346040695138733601260540366596363844905716206888327123878668897584012098981051079229752129114744101564160660634148081883250602632166931861580656279400770375828613509949805389113930560198299685185801346360659583802862235687929598597456609371782809775445243075972772767654028353830949020714531420174136378140456882195148708455096509026738818325438518921834880473442908224231905796822567128162059377932053237071566720567413024639099035507491479810015008150791050044319032737107784076569306963494801662193598071977753898228226755410848618309540117001104172832356546332154219905760344196978840686545797999630024556088770652382901801936609596809475274719881594092485096755140707775700750203841729473773083563456821337811842103802486654971616488576830850903932559424075768101161220495826571540547815840545469255393523211321587433270805416403265084799968033964501158365408073201387050932705420738104787427181899871694133664934971664128532102272938280730197408843884633687620062204934053441143250169751207443120576380681033748589809415605984667186875877306996186195302733861895310475369945255724310631196374543318037499849005980738452103394204621060592991762361232899436638837375969637783397973035075436631565483984445993388764782575769801828278661154561287151180224093751392591272527841978327150633162498808386093776538154229008247248464029187761767267034520089043993859170678467327170317282070280062595605889949201264218202902842425231162510785799808959684658211174133239037682196527029579369986937408161107873773896521093014349061438346844575320789247080847751756018485670302336913587935390208156940985937626870654334917459769386712265464498291149470168171315630211673060576688534321871891259095981941636374407357011609720567852458707885067255490047056457009518084938860923985449660649422017141276231493182450438419817031597882393524076402998244947415595378456642662511428940841020608079556589697305962258751264012256460065638114128155766975825296669566654591647472047202100259780865860115934689077735354657346029685727805098943653157437565242590303104101933807044123987910195678216966259922283422039616319341268984188112971078781140911290233658413080968983491470477936221657811167140145829936582860489653093043325065271697144962745274738863763603760198328743484464947021621803929055441022388643408950251626359242926382032422144006306702940207422817110178422748765168437600892392322081157446292444264967276399175826402451965085552348178481598488728687000144566868932412542469075014016721375382790821040803056254918378708365861956780995885673313833398361274273254591140455023855248855911236263366395384083605003545076127062458719265747866439111621317294662272012837096923913190988274973278823087337789917490429184332450260249246564047373003325931289884221038113542538342147732096361810180546604622591259386233995933546553179017120356947821467225685588965178010977929395815669450520376625418066655629670033106984712637333425280761773782958496459066667196149832349625452615105165050872019847440675379310635992803205181430179462580977885268950702035974746916952036898073614026845347411617719402829544787330360998733633089065891254083360847459780109634606560275888064565591237273248320803410684099319519292801766745105931148896668810857058832471902688903652756674878460995769801087046587555861162004488012328376393869730354692916483024755557276676264153315205363670886025629639360474054928901406927599161013195430479977676291032656204987084114204423957897280788132796560808109109540624534696592396489937456845708662680757941793211951097918025119056252414823752120160444426192349227547071421011597643283033429254773426585499602010290454856134281914844415019541093618137088205014759449331224479693487080601372348829412217526371476629546052785594795771133666422415690033918548332761996380249702157594838408179649420307960029002715068395513541156823449180114220245984018777185294077708185321437654551532354815613209350850536064197482726393897205961194491652454538322560126158028778385197514479431621583824086365339100780517569028749830934993409697073384770051719772797326872981616798387080254541798052249350733666994592947361921144083080857875492103437577340545007679607892896844022413621481473076023258501196336803263472660289578637938090963621871055490138984333932828690070753432302204400662841340383868721092311990442419309477880605035757225118144920857059020159128713812943791599301836906653447994448303754508094122791803550043222758262247768240201452678789174290541605080823476995128542574926144240069121005353819856103813887682516467017391790643089492618394114983424291110280221267522008580305206844491526999055978310309012745731880949303470017634234463231041004890763928215998360249305722961854973119503161825996318678551864216901802161364256085674689382319294848038309359369329030982997592662871744318963054038505553600739805812618022470297367758296381037756082648590616993341609484222797705238419324300897891005277239698071423971205320851974191037895078905326863308915079963405423914166298051604284522535114100072383063830574443501683239757315347797991651179563306071814772705489682421656140743343007043916960302842908055734724721887566283478541367691616488173531244757026548805854983612949150124022350016975962083328770872604152413425570497131469052348282831294029960700523918342994805545135429764452130068698442133067695526112309164188271347527134733225641749280194715660904337367496839195182494413753243693030909376103764326025879000355318193756248128814815737588125904922567751287607281097844107117854700476705266921841716885967471390354542759737151050333451804624227208331718899915033302731312695973547716404785089334093632875454434996763466631916622228492883319024067133462087957594262251859893678045994044681902953164271805138630112845525023883507258482836740284559195571803325475774796180104707951459276420356457644916031047415350679541958106322549145216238473221734830307764297624962873124976669945657556050876040786867270865736872040977415484818985945801774277772709467686441758122515664671750830358901251035015547401498884043160008069278443575841336470823043982866385372330116608575920426675371538939920429791712154688429317313318400518510598468211543509983506047110218771552059705139690324471129635227455872830781159814261124803005282588099717194979350805550959988786907751618936278355459136658571427738165480088504126366266476353792891064391984029075426607319622350236819172801881507679951879899079614487549545651178855391991267465824152840353936458768696129157799260213167392636472312140712846491006760791796859744648967378262485860295764223603113380781537392146789063188220170472741211343124272756423964561433203897160339552511999805627288030305257348074613213243727517620540903416630742600824442255297981351055361308021552395210228249463576707775021482570557990342232739799233753078236698146558252105810719331821196459396972007868060346799712977960684887005205939380091480849777501286696686074684354330014687665451166068279962979477348419185189790197164607575891876072467185545349090034686381642599518495023042412543290136993346870450603519908552578334094985094858613280104896031219470631969511201385949766835493975708036062726683998104207826664851734594294861731352672511222421278305978284973588661529541683409714243869193226005427171524782242179237690387225020563285551642959020437979522552742956204488756327687977638424728502113337697715322811646797654858408530627742983826488296321051755823916888173145003946511281038496173999547333708446483915217643015778679072675483374520407809501965754299655047877090957080599176219785218288147155263643173720604276232930703528670323152393307973338482104580114044594568587304800592610364326190677752271200121870315651128445132610959658021004880493876345662600981227382885863171824100638128346038992290818766201902772519519601923872108426888000076521263063320110998872135148672084925367617796944049466196659768587566081246562531507187608870840622853652447616250636478245478654942851574679804518877444687715658619333956545999523380422648980391207161812026735133294130373133253298877905003006364301137068340990311984187917918733024267895819574171153055530639179826035911685062821652824380718458858016771358399605278312444503567567854314502017574632138724446129473974239579307468662468049412785317567551575087555849324469084904508085148749796121374616090212019118256064043055374283087311589313976877217626437069942365500554075510418189992780310456199108007199701502703647986567252342584785817659414683938368910765061273378173417418693591984202455943665257951509255502306834006774510564161529446718477684879504194927546313336546974713345814010863633602408590641239956373682731360686826217497769210519313301448090172731570797814473169888489341163780648322720398119357603319523890117701771777049023125128735778709438353233385592194521621448090575237049993103888815955814389717253493454042668272356948797038830514879164245666981765504917127009261450653955637501642989656096578411114284694833313245225498220444984968421543468126493259728538786370887494094559694008671979435731076425394060991114288664470548707068184738948607565620936300689790391022982926228426834958691784237774098788367632520935783650808179524653728485119950498588312212950196429435603930503665817380651763060200636271812894704736752875783568078265283708643147201862288324403051350250263084498711517248270693645708801521050696235827183724122686703469267170386727068470363325048670751065767178545018747226359929455922808435351211058642564318658886832751736985482864474882123251424235745375625495035354765990156937480606910584958191916148016660443849003711273048687553775112413914691270594492527899627985622255499625928372799907935044449152692512970436819494659010149840719491966024128480105272197628785107578107119143322262322518561616761960498106353793717286355351163930685045168861356483797426361873123901702738827693654850173535203670326401261451965476352797511836067653949462148081781122044701892976173457503047883874654249056387889607164424648233392152305720339519730865583207452319116009794911782802182879605822925716283985860934829918671671893138004373009303515553295795422679891149903512232580984040114005695212418671400194639094702781130786648874812427007627420315264778889146407846204534859324081718497290043877825860212010212890944943649796074195155461437858711975136050664611693472943100216748742964740117857831459494364086843997437039994051115704920787171119716301627045639847815777743235168252054130596825090241869690341972989909345131956900029424891279222122866731395490277675391540260570627674976231282623757520001753071247613156802442652926150169865260434553321115786049790222434468028957278286378576008687836245908760231440542859129864551487092066363816411417755281270823906394959083358243565123669615161482883327281947275937898271123217558179168987595798159993911073304856962405720817763389187126221837994078703232354066407563370533508737460540633560002971829846887686543279442467994746375316278678124571410884800405267610887911448626913841935420468558655251535833250793578574828951656727657012285856009836783939466860191707978986225088275564971440109965231351240576530526587964816696015168910041321113555389950388147677713637621545998952869503915099629217849307939959845272576289896736718100026944754284222839325473074401504747462991485629220450542027348880582916920978079323681650794273113481137166815371689691325698111485414689901626368920640555352911208949592627993180041569432493256700546458264813642050076068476615017491720105973810358563890375666608167440818042246972703747993024022251848393269830519218947559910456032787369960517215835154641769802519576785575667643840581084610328846503858777026767143718891946976019907267050263119927305357620034500221495027622879496784168932635937771396045680308763143750740362712876164035400961482564846594577099612686674152088163575558577802971487747909544350694575626297545510938474926853575517601234344089689575487774273261263028353689071167739832707203617541304613600236038819817051434501112473165696609682313408022606141518468800035897864119536070636369466402942666928770678148115978166027603891572243894268861341826191418407850762538123986501257651359296847334677157884733524418820082923724593864064328076187158854112170642595260476350704978145551440124777748043599767322310027194876774393335345566604046344643803120123748661097044317661146391389916387565190268428172057398034746117685160113301486206214717576631484037616004106815067844034811096570349551430087382869266163680227495016319299650253466125375687891871464261268191200593294409988618404699734811633409309170346511160403446608081996948068919391642548830148603038073907655323675077740875677533251698780588572751377917627673207862976093495800971623802360998098934254097536404062393288359719709136571632402080854538339528333059434239022162053686951444946940823286073636389339139526586976979236884499331933280817180372601965049953608403803275128194180797286218398981450316915235304860851607783111659393984853281029342949942361059133696456385253816535762706782164843268292469051822103122586120791485834393439759184531500842592618320268583780838452828216431923728278336136331575437918119242692790718397321576772946661394379934317985727678346304668465606948384039319514137305460544909579751231771214971360708830868456258358122341144821968897446173580864053795281524460686548816126978633404274262465058807920691042989822980611306451024486495093962789465224919080093781435802491073939532217786902030224180397429723236031247148867447321164897014351529446942313056169631199815204378065128226542571250148220278389713203488695815573297503599675365741852452858587024640095960507605904513142478193303050000666874380880928292859569795607290366884227340744369912453975226977936178576151344849645272506758497623597007274117670355814538352792846511574655201745404174090995554428187758482944870254251455549956458012723667490994813480481048988745610340057659866916405783955576834629520005703479011235479338971082294730450636030933348211256979680599172174485552310114380985719216706924960432408734880098676198011347709484612547208583954989406666232622307392952100467666569634859886773696112789140254943988500146548713546757701331955476147923708710311529753697753716823511981088196526587701722981992009573268627642852600651341710610280050628125045585515857268143671299130254988759278526331471704087524381275461838516351633217980728094549951450583416578719290678673331401523467517366899323246549119901183512302521078360552069578759265354302990916842145418843938217313166141538733466571518677632484257212457972141712883182966626426252554405513881134199068711614282385671183896996700204077501131818281249915067563083954381131874551098168618307542018789044747881232799963126755974840439796311930564505903953004056954670038853664130924365413307269715394705540837156762142487264081691281644658158718472736891621108905981087796337440794783364248761480386821016356774077057968841400621323343366563938643068964396869925305440498949198908817911574113017950358371197810654980680320990319506177706201283637045750046551483065613508723543207009505319153438412366568805261031645288052387602439161594606922897999426020407334935242756572682908143171405398868405267313609432267520766318027938772682113313673192564524791502173699980859284285780096629876732710848723154507349996072243915907361396399208499690405268190301731164623398933285960128006447314232226062015776912997171854315219879686322245975286937033285005305749817505955375458542888887688056850601667846569274781244254790359184289600113926583918828838437338256806616101010889582924174862484122817085186242856251557746439499119248484503307999688165353615344970692609174105254881620788265314853771845613475675828152508200252147716245644093843899071060385707417677853026504192221782546022155929777144950814442889645384727397181870606932800808592613131442837886214270056724005832618100110319567230691280605684946364028761680931420925185656260825325205038476623811742155215283738151377042323221362621412147426665902451827426661839947289690599607976185156003404354824368564466022749839232665834756281290989333420779076802277208459739720941022172809330643752158084331051519616153038618576848917808115359624549364706446807650775869158637733358823542251231980114002765905570369685310825703365114709323689659766194138209799342383837129821861910252864304597577343596211013549558997887128376861827333082893244153846329381675004163753211920215896159386102284802027540476939781270548042251034946318259995715956672227261457737069786728358530015432148050199117472367181048765225737694926662904382046452377723911864466168871745912247869445714083382921509084133485297978372416546658188113281863738243923022136295944270258829481229817959303875682581060004682974914535121322777156427885955546904287627773449160839361850060976807651688903104799610710935628584196461327207044227087076627687668355688638538502028207645591451211496244422619833367594009115879731275332355649091178285555262354982606565178326935500156870425264772442081581282891753710193171923420896694165116000483751102607061999757622802266223077307394001954220914726941052356311246316342372083058295607488934139957558901433389303672006698137489835965610180701656115027775673361958923164606411897616266442295161899575706672186226376379855898767103780782777825472828737989469278165577268465734655840897009818736954997123164322148662641533163951996821742475403388277325104056979271308497649572357682262016126659712101315351454467390332386748003276328560427202967599473887757871136643510480446974025439930013727179988215986013718090054514439269964787879287481950468366910819993555480344754493460953018977694115669043782227019613353265074896288536039936374137673659231879682453638880146959895363298184928309842220425135218834028244248969839128592132903877455475995923793590160625728231458294707720495187620436232635033296151905001906249797853156947169991328116235623822502194692745784521209129129101255438883465391393560896114792819197406166841033193458130331108477231587514513527319120872283336689458382751350145452444656271104737017016260856500336285682577587853437022796186282133921363714590279401120185785548794723306817639195384615411337237253213570440553225553223454172430155783123779734984823731076973308702042877913129852981586674043097978627666841215712237648557928179203379575624878828619622743021160969263308854793877072475088466181082440653679514820128700875129037402226425109516302522643433763132139167843098274382020025423209738225551124437546327269778752274425549883399313682507147688880514256255705692742826314593504957155482021348866876365800725448293201933093217458313043201571562179433288020206929729262037184757947767089868467744995154292600368697671630528261865072067287309199425750131194603161597049654234916182971320348108649771303725747478151706891376469269991324796229226510524018328344834284004534475690216483281370709804713036232956157478092245135486095480958405774939732572176033492551324459673612748005984246999869193131952360945300020053965897101121204888338575464374815640605238266958415591907511842418496631253382034257020409774770611481248906887283695634215976664930024462296250000634107006168199162273226873238694392003672174361693812028766023109235966272088100810300030828820225405881085393184938614136851670684512908143045281157169481147900193012271551219510758937714934330881137172430544051843647948569981886465450197442396827944372002698779637585882479758950717790754776805962676169159130051095263468088289170824953263462700021566414174700673351480842853065259755417597424577459332209388625757713066866906833444255960925277156045162345001423475696868499223606747522577336349919611543633505705180760823641533400120366552824653077004562436852137077651974677702875856252791292496690694781986146895920673794325459786047311155546326320795909363489923264630451398269010916506784155666389355971567495315038381223007972868062348330461589874005301502135038376670266187359761813750496528275981595323060059302414271714766421580109104778254708274799981451081720004205069898563944217492496243940223362867802103025548828813539759654927427187905620077691969132835202296475205392828211075729184913656972051872387175484654351758488931163963032596750070229728549408150415318319605857706480051252420365844757272947593241608550632062908532076117576402113130188113482329755617626269110520552213405600503679585514670276495089211544327528350300137545029967777508053983030985402719835887026137179085110532231794997560589122549950463036888866887847819039096950137488173310788496763624670976609119300966746772856367426931653496194754416792079182529295925327195549774965132716243867653039434635193634143015529115509800965812279027311834063419065520000048410534217253050042233890652908319015742221033973065066554672582888170441542603077424400147362185437023005204937391685405138142705286096711616708216813384836093969688330926854772065893094972914267985909750746476185298881961176515404550922939631696088295866307774629645004578002791709587276595254939746912661776722414056595490926580962664036963645500895815511383113903706235007750343729906339233633001027236211623353064418186771722376183862713724914126132150180601480484222327814979526196043660533858288903606909824791962627858325389839007671180663832880128369915118655833708815263381674071872484719493407821430027985519124448839298494142529925013351272135636455337516446420660587632759962899090366766756714128515514277752215575577628699490763927374740651760501999957775382809506667830405580260910194734612561206153171598257060030750387474598397119487967239188383208737749612932914255006985613789536008829262945971429087500627694823278130569681800100380700612368135689249790823958295835740531802896776517654910151401248290306032962341294522521522721911500331711750710224116939588772692492921549289235196554822381800399850502268362853483808800914185916421216911238396438581513565962332959137025115139717596267095565360193628484337898293311432904886729430415198031044678094196030338094249433410475543024843652210904634569324132651521070399026563400083609232955867621574285916289952575201432593846047707059943972036529723360855206915115779363407767213036339485220525703822306623130985649921988527304171299940994209859511233638017048611058932393665062957759176653919243141083493762029000026330874042454275486508364409452408918696565826532893396481091243947547320110778054438865674966439547424050853059491903570990643357262508687464470492849281555232832198084234540636898944839050928929673492613063879175698406020749340419226464554909995835872746215461932074373908601793621881554001311427857985736690760854105035097164917586267989508797572221189137989217757093482678870692865528860540402609124477224202279548615191247391022039867715748021954226451827342635828799649650132751047344018775923456666546258243797193798248315130555958267367783097118328465189377154769630551222121575453356472056630731479248068077601589233663812169326142594722351543217218650082663416737506878324985637990184648657283636235804764664959079985304669987268046569603182013033493063092394104458719760650389357635187797419063831827715529484777786810454538616866043955687742124547830329400919926763613499122748605680913552316522031533465253810808405615782483011592389852744118477061759107572161996138224987447918216593701518515557738994626744564623025793814403468403626045058517451021196795755882470675034135496614334352186404754508410599924529105685558623611056830785940047889857652245150336011021152157219893752288031221593080134640543800473513827717200985028461870647623611831105673467259497213684384382865702916726986444304821863485299510913888761317522848160731120302684244616659161351995690526430076059391321231586432052728160884825266245195653728569973202532267919284771846560512730131322778861769781081321230303753770981280546009522436266486191672039456357393523790495149775397239130041407302958305115986295491820846801866718364601706951070937130917230890657174861678696279960449167438546453016362300040328110358328938755430813872533447812255906973246664411393615102275117638271692411758893090812574865462412906939707154749496681391612504581297214599644505751079532756731249690930659761092445921520026524759662306034662367779813320100387208190190094446424650617527383360995445229592798841099349378462882293497407244045338643528006427194632179857231595344059887006163534238001862083152573802054609167506450244244591692734812734334999556053099585891168548805280261428938620930714011615021084163042100902532932984262093458857455116966146781344245171754685756935379196862354570086879579304039441820726150729254569142730512546176734717032474717496477602101988223907557384735864900797168253892800946812401282264102609857961659254942322784961217990683699066169987939404641328652094349809716312553084722974571450536486219197061147993261887666874518760157878416834992485485113942623576422158916562189407718341293314155798739420438341406987048093945776428198273444747174958805078535465931192710787512395125731878471232388182211002722009785592393422202686995951243547897936318486487887443435885094985384086431935292779396198912828679904218868465550798676777339358068073061641500153237258424366206696904060945352899141097745528981658044166368615491969154346387143946290019233268620233419475990873092136315438039777419756752007359880855108273927134617652873373771316389229970806737153638063014620253087131640070288876706983080671183147410604899593082421326301482138795293623396246556633234597429135743657845344624193721349448662511384259684269183937153454060651087440287755147234339406716308012552065069044842612624578550571594939274591155579613382007233533292330163201648796873137051167086123025277274442896205053555086546176468265660117726518083075713234230611788284944398176074331798694337327520509397537841472686798889048971482434523066993710313219780034619804242074302935283050187848381216617169990037457518654263204165797437393808204277848778643877643714458946135423431285857441916566207649522152644075518870049350690783183082648082870725174320561517895232054843403251475306918679233849473498537996263220853659642323862495246648468085284320572413946453006079379631961683337731034645571810432113196915302780571494293724844007765258381598867184611400655538094067240353835472849704000984224953139964376092061824860704155313683842316203769651076567753287619939557822009564706314335883305160759105120695617174349440427694670830279390864978449197658071047675612790383321608132424518093260913836827221352167845244286644353520177688914639911675550804206049726159777058724044529884671540548985875678776118728486568397197587311318017566467654143353597700674852316786397430774727736053031242105027135128008224518481278797173963507515322995889924198060345406422834100470447112014813446361815032769107998516534813710483035014490385307452166592661916506417898128984529638785475684289261238586161619048434109313202300243305212317707611288832431103871535929752087399076801842811165284635722072649678696979028991588269652303887957244290278379121951982430160387220370309732212605712894714375574118396963183109105448228079338580904274555130543602368604485166461318794079598857153954761036589771715283669809986976426373941326058266473944768135915368674605074560135862570699063501728718680098593098075305678774750996607729063518390256995009914143769099018394890212823282987228674609317672503577543960067178001635812728577975538024239625412284004474939229428293854800259756178054741648159183001149574067076137125275247319585146482676781270535476983344818393655940382672065555740670785183616582579911072771882595101611643682327891852709167585483868109293113699387118787025253017377104856227373792971326310216871012060049882914805710491857659922028100816561722418614137086733777891611284191002844598002996917792793446719378107327401986194097362888913448390647425564727663661589809897307842020953875635490111992945343476512705724506343620579416748937505160832709899533175641286232566046208467903417044417798794176402561559471910674906702492442475868695424587993774452681824645183834077647809888157380148480688572414475655605401472986792501531101919928150296542456686485982288953868762249800945261449484006211002230069839125236012578852779284691004609430256739783307631646249688757318350047004506341819254641278501851659648093636501940182064117456765440013423929408047423890908142264990046420911545921537564951906458350625916057184972036031102394637298466516966884040327487108425101917573834976625443158697130804497500143295719721513704991680541557537141457059280695198610398916223618380429688148186785804964073238694973235484327460792993497215739406690383070471706074482687218309800561721681245827050149140629576152240840966075939683661801379184368527196484445284987724959206741295399776656439800932740461766060309878136640839034694787661277445373302870400420005437571604203284279834123420392722656606337723422014206380410819686157283933029359470539236642340628890743602476073799218733932713601643199622717842108121339498451586084104530057503044050443829912445410525907477867529972142407212264687055846052778374465245722385682283976822895435297677305963639340288299390895314256645884441053855230189602867661283718111225502962854680601176288883485576546322918419900807933372486778299785170192700669259324467492573131856646921642904330682327871431299683112687923748015551136727324303271742167108230309492988215316182469382951068162093388535690072668669747033519826549963125461466381512406646027597924592376015920183527616700717255933925036275693377720648118797248570739101452807687862333889571095566127798275932209973635997827023504898842539638142525913591362455793235757780252365271882236826889473257577042842577327745772030997231354277677712331817071825594474352358718370640001906119359021322979822246464360980261655716119490389827952281395757948691390838480701311743763578435526079595285770810146335617151201814969576128965711243065524109546441096354728056383730978048663090664063990512544694662437052974541152358287305410689627438428987057782287188431336770794910469701365706098678970100680496291434255664709137189659948842661462064234688662330920179046989214523128666035341998550888790548132590981227203381172789820640738646301262241734049660329293470813323158674200579950110676625458419690476122671284111997333328021780878033280846350932386510433203025037569526165548692760402167179833162588857852459763790029921299743829737472106045087933626721252826159578800976132618433669960031502171996675782791488566408136368239784711143897024418510326872718138478543687131513784124119153113065755309966906721430166333355978583063265439441681315376983701388116301487559829629274387396070999154839034558743793299907857463477289795706437861990353525859579265634719973331513735527867384033044400503321367993840266705522016089707490676473216945398097898774917512273870580304750228253088191006612045724644238971131568681966631868407777060422246918032887285646709580128376316806797567610254349893146393836873498802230786498120635921321123975006802746409719614537195439764871797837068688864735642915846850770251213250364810670758427281002943335388348350677471716448453297513202903464867846703696762958297994030725806151468874464154800460107166685625577709906742973695615268163368114227798044552583518187304650080735027889334233751982835073041613825976045537061384375337380686586932399031503012391355322163559809699720087999306012103328176398171016364883969701584728468092900698356693314608453709045316609456292988660038435563609289384359765975730386503967058876785925887408541456026725663492253859821739988971649325019843169537019081226108821849408648729022917486866163869759223131768251440754390683852480310111290151647325077745597187369066626895168637969014440372274222667543783071972070040142024206197359817040289543955029063002099363984161106996941253576281687511274343238209334362339017680860646353813568539522621592744926095848715221284778270320054607001741986053053532503962312738179947633419693210059463749589216973889638018163826623588868318910220996478142962414866652976914004112415529060488976930261480269545583926550389334343189953392175578102227679193277948293671312493487053359743100827548832720347858357627594089440696564514405127710869987881446052570134413561967022126018183389241166899496362352293933348488158727382058666701753690408543055208478846642486100213493810484746976231146142686492983297201747893315579478471244645732126903917173081129660455358853453721869735802650770453786103773698493668916039308478124738196507489385406535669468536169295235301601892455653570138209656588826701061663341191724449970078204777718999708307998675324767366539901791909850593516518953207676739599449777435526310172555618802331283165713413466430037061321140245119840747203589145964399242917904076117941529722643499756908049751131780742970616983623917182384787848555197613468695670322077825875114726391726036353349968357360622182604861858690713832975187124692760527650865304740493902104541112867539523068631755234118204369872501503645923803911512607947413491033904407114195754935140948317314987278495047049515320155139974870777028790344573599510876843655685104243365318012108911939937214404376492779967610028294545740145560148847512930709993408854978845605884484125157193847801316201458552096304928381968399232648182287224355125847263962502280571566107234977619432716318662531978296385838059432396575158316128589668805507466757276408515298430210391169270220636690548312256673878973476570206496483079210625137131326230869901415135119643565659864503827218010696631568228488966928838067498736943029392093143501441722466004009056533158741507974337036962828286288510093651749138759668059747039933773959484028606674710708117815441353498190155189483458056815469411130838173402461964011445095537529097304366875651397253288207534261997752224677574084796831278044624853246072039074338866256069407979645989561436748362589197627489408931251622846068599711219005028827070194642687215981989344946352682724825276740791831883203120379403341483347827156805494806099877671499238629128084162257054186989827519587655813900222593856748714220797327822542975575406907675066860709058379653808879225917390306646512386583316879298186291151128718662624795009212647597001070615600085849122212027553315344020176196012608746462731248666501588373906916423574766920162659523776649420637424797986375329320554286624321956497055115513349526157679452600608074232575709116549383145929075400006149328921787593087476484811477504149793926573045425167982007097930101626254043943565537811382262085158082292353456168642805026945963856370997760891044352565989997185938866195461051739757366212400869357841885373580822746103202552405452196349132778421992854242136667753817157999342756913652088776896897685454454412103357587950754979931107994155708266281559177486202720241502623393535608766435793445771586695577230200190919069325493468328096854279271714041506899144834279926513819562032106459302305342797841757252655855828684907012812303124376978624307669188416482855987897770714697338207507187881750616956402873496063787703077389622291536585759015187979106967085785584487952241379228806143775885869345794804778243203838832503853496681005479743088562524243841572889604812534877627722679889598524976824222683711581450566334611550723596966567294492815066359811728243072738962937903755296915279884677036530047970960556410923604014569781012653133884764330761260153247993196775913991470675990671543819454232144270488601500383587626716659980916247514264867088587786098249538099318748981050810502012911894806628609714952869858118119845356082242017235787324439416929639516194880076291993960704570399320220441793594010065131754278453752165731041595082829523355957024773637144313625860029528639779909951144430010069367904216512780018902269055792549042334898202834561729776378938886369961436948757490961800097682185509372742164856234095516107108049790256107631341277244931214320853730602131816323971807516581846767883261086797750020972244665045279904749616957345203064937812352293814998097445657481866402211008505787406466430725082327836221669637169808605465373639913319931104130282736642807140137517294925066067525087715372494458566838671197897156100259351148192377989229873987565944081966970893231975129126868625232807734829854126407900556022425135248591196656240279972347959149009956851349236999138252792103797318970947515195283004758046752896425195983005045602755189312498384689064332858823339421139647909481214896111999948289530476319715702495421593170297090267208588278149789420810122240729300207812917199662022386186526003049069037659764687138353553899168835079903139764908387941831355435704279386296884284162327720776700976484119790193157669998616367391237035562116810633959738600245123119522172786829161840779817906344110691628979773041066823431838952621436915969450451952808605948420168165755660346832797549203834526348965124475324615345171949398748567525905360885439819492690719180703426712980953549729118655323307117493672712167673982708510009425261975618769676260812073647883763085018521088235199422003322098037715427054018595861063505323110816721908972754794919934879203679140186795339674499279514619422592571746137302247255254227373753840581975111146729173391475869798074403835015206176031766430117768071057676894293841456185718858737687075256214882057982937960590211124856097820897243391785603399077510023634033250936579126342989894694713549123002766664956350580261902312244474021117636795982764965235661610326073120777524728313125553092969291462451839900034409064584125257266532216951747042710920541569009783614207001582151644198011636072474983468262924487623444471335730450762988067260899325948682457627502912312599464517472365478453170525787050021161721015715167601269145229252987289318615936607743009248692454094837907871648709181526561273251561239922167343116851920196490060675515768364971417541361085520814613945215991634334616903421492646640332703942044734422747551455559230566814510138614731921220700166416954238592249065514235846697791836117617955698610829939646503213712509350274006407250896786316871927574473410136201382311001651224117710951261949448833431546646951518525408182695759057229655111528630491910705399647120414117210371404746318111135672492825660958935784654704567193575481507710209940676794873856740161725525637426739615558639722572333179726044566931423256776121415084331242907430955932196889562631261984651426425075686840448408646466705308776299394788601980852030138654835797379943048578660050502324801672272635316305400826150716167278028282475060989258515600709185602007233679442812350979837094228908645504559728663574110348767357034284364568303448186616210034466494373119683328324867270238831494808970269701945145922727739740587396434794893967820689307229783185750880490667881533675497357236949842329412229594947151134642754263463465358031304600338808121562865457355806992993555157222390258426498535149604051973246474094715302774586254938467991614500530258940045470291762432444041336171644257576881006063360572968474020095913193545456524703026983751134165314767780287927071926342514007258595921966554986118523637318397972265601676192262052388972077487836732165719493924706467894661254548102601289618195577665559346704752009115154721753036368546540119958225282268719853472813571006144081724082758653404738065874289848293220303037355058474660776185182387420052705363626880373215051011369169168898313068521768440805288807261641315216326902263874658185094062298043595201406633315489269746850769738295619575476111878145790438142805274100723317022910707997572454456159948278217912406088532449214705083110673983700681641221896298840611994981879795462868813533679037536566302678095763785403787554032823261724333355589879218213914927298972154728676558902415286490904177904126196777194222526305896763087235255723289897074228388811421241586072838988272933473657799089515067898451538506558182777968391770849141038686640818531153983505538064049501694602998682751079020188753712946377686595271056351980956278029431486642419497705453635055168165501116688024709485628468137751103191400662559018676720321432315217032202561161064963865349626154005584819435910941125935512731980121189055014832633421246069501286728710811489186227980793811052339632951635871967926308823118254241172435587716249253973678362653799493224542117389221992347151041740121998291742698603944107987015438270417780888130065994637181004059267717405585824477950019266933977680718917582014995930777147367221493371146725004487019120617892369008441032646760350484220860483543133372726362610085178832575181932692559452373693771366911674610799959156772947427448232004119548761757717549015230344200527410221089802522897888730393115773656062716290941832024465225199550250718423867554495023743494052137389197254960359351146327545730044864875386945810587366664661163302417258998745377759938636757870264000079549134635066493136106493815804847297503430670985710630236519354028595106951547180244757242497244557369271264911715396847436059026894424528857582441582465579062847791441852528365635349644712228440952999299373935336862489431725638147887164815048104299578925603230229038854646450739734976491873072957614572104192148339325013564966963802897224281995412004635092938164110029184566227109081823810827678145417439203620200530956358562269246336849380079435447320365459368870210687490632506649110399463882729081443901735343438474690396961199128890498916548666136739814081467789983764079341650209789074076163573607756222319839911960403793451316053596370929912278894020568282033466274296874629446740882134666680601565366647193393000859976497486072267378248864474241627844932439855164564238248348607661983702254812879690352523344604235035000119743172504263291752397302161579555544066630728205437403805789543365231388883498651331281904846207854018545206370213804867024010267838789873218591201249782711860352967070222960359790230719827136372315260650010036641254490806732825813096279791718545648383476021571155084601342998098248497098309441990318303600803369001358491826032538024371775499715676621465988820049668435282388655168182023608439431183206271490665575479641135120255047424896861384582180086448134442704244587525304252457447884115553777452978973264960664220155997291482464331408719815196699463401318449341793356523946235213381251684208501478814728034771245067326273045053537064454507762222600904140721053540962761323636561994067441868457486562135335434464131840488320135415777524061550514849094597700783884473220034542507085754335544049853388991788537695840437071528601436434783990169494200359722763615463139655457392674798845932746565407461546651447275409549501425307461254823761704361986741832699889400632030613004304559304969305158247350083171650039630314113319033303230404482745063695292890714844376381869971396191669367262646290305186595779062904991513147386963211805311701518579536257379712953168458084547424353937388252637528655566664494111633527234962617118528119673744595443114733352896894009321197658060945070582143444377829103918752669066310854463659901107031546608213055675156708570914009928259005140035186306751816062177220945118447180672050459913237126257754931227266679870086904900346252524211321931101116203878366408000005083926279327087624690939454241563934850138193361097293319353216991605320166534180603875373463473313835641044153199134676441267224488602656728408039828916182965227310893138019579400899281016699984183880457762334781262739701565792129222124734501112647785947345570061045747155411335268029024206931433674776909468530465947012086047908600190891950443082539199948373292486913984755220730632252086432351089248571224080244221878951261497532223243629696293989357043988250628411352285966230950131259817411746226198474739023108570325671690558314440314895151827904597322088231187878295893215271342579828963273931275825314342060479177592451234524376929537676575415236308576640968828700195281796271000494680149808005553126872237668611743152996747898046268039207991667033974887580604473393443350587773579928208678441217619827917140261617635556211701538762379122508324832957036226894136976374933711348943723998948054120447692269523482242180480912356649912868198411426000949514938949061936499516661422096237456695819450924947931024223801580084928107258569271412227639316543858765865859995876067704800724503921296789784993542414343198829021921593477867276943233517437698653020540669258934148724768633812330671389313845235071176110705253332285468335085616994121435737297355761098699757870039057076480011299134250204103815265984278498001782628543318547536702789189877033471390118838824995843327524910157534676590964602019415968711595140966330931985985535477903538875890437769438662331286766951310410954087389085267197853168375326926400047461184400884848783529671869602760418291165697835512782031298125055403852911596421610053448004249296700366929926122350814438950055818671250144133647254787484346227077059224136755144880098915113383338095523456664256121385008487424414406194155382356223667854979795667886347314886985298185190960290608285876528894133140686362030239010622317737662173851003864145737205149399158187086783712379656533369750974662246529947873727821341438676335104443027923342804059910773680654756385824740019849359589601242867259954470167848752699988085991091415775493213549224535153490541161416248904003995249514391238522995857897032099527990708837026259504887799804599128137192921998703492344464936666446924324609671716993970992973803821680897596781945124177361653573661412375253636271706929190420343481073867471210651480783206716481611896855205850572638368988974213987580789271073896513007000247439143300412567346896038901405981141360547668803034296555316778045793840771374140277551890142907658870579038591687788831191249548023362198888242197931915091863134080643762228500920359345013814685159709238331844055787510054254495526943369260945045784718045258356705566744745544551189741134858781623700175486745542376033674831232526194095441699417265087838646260147063524520120117447886450642434073848135768037218173362942767480741400404053755593285057787855086699971791238861840220342901617223998201453995591998805949747160044922860208429077331604483861705073195697765315561180251913330570567877746424545867319867929143204490780038538268873844057701251897151246902560482878661875327293308948654925583744007734053562889356895188698552238609922010709532132560321094389224472280647660557438267970261305619860557606820556025102804538381072033842743059348814052714296226546236082591145028302924360450132426801709349737199951119471621233080369945888764253010030960708959913948636081406304505958453274089666553997872337295479724420967115676988070934684873505884888001642634701564454681561667338839754511045556323668820186514233011372991778618556658428641977153457869583319395773910970211698548159164568261260501071683455735600030994137785338340578098267089814980417892144814630958108393000135324978290299378687195626681303291465592092069993655804389917408330682781254104013989035129636948237135381991867784039171673574220863852542569435182183776935504550847762058214346177154538100451502097915406075097438508990443217305268726345857882163820732651598843242998853209145661622274445400238617736253722729469128466823046497276026829399360585270113061910493423031703129985810859977747885350798227512272961567463023263013821857190363313148674655370161905383570516786306502201590760154785422075605781939058603288520703283491318779732826493974168141978466760621185049766712385523440886663428387525051385314578373992796945428629123210359055868637179208668447809501517933385924192703530258079240361753716539806466761289043889719058377060931741745088469042847714610001309590809953408330274372611679365292470862950966471227552133332222499007295113733488496266188186895281931713228132323113218143154147921492584186073833545496437368072144221262791255518795194059246307002905389967445761759794337687354984561463524030526829264852936660852146498261533889228659049094438502064269555435177534685412571455634018836044305331749211221859353943781139731092033544676706206996142377289042895843170527561982829177120801465640712813616693095587169245702102122573739705409066087545233633311213638875192330206097659167077199641516002362407374829215359490326528392636137232682938391775586188845427449009278476041364241399217715613700415277213044158899421092292549791108695812110830962275654020680860172922765379680768436644458553232159830734271116463753157057190147158463434092263469963579880753249671639668375023290877744552271769414269232174362879491183902665650357115985840954376432660131262126201492142924997113513738179156781498068538145750571333753956975264757870084589342588392727550940209468030316801443661389985606923751614255876347206502038102287160278590011110330362595025747085982509562913805717349596079842614656346904139575162926629936546968373272622791130556607223878646442221082542971378451156957263978320161130432682338285095513809792539640853835245098164353636945214436407248826475597849409788529423054006213495651842257131964505692819520248660368206796607003305573016887805896527513886731183120522564457836744495502363744391285653529235241131978395943823417300237951774147213894403665054271996541972491155704199371038345691583328195253452340344716938083676993690898169413661695649542833140948158833520964131273686612715435524661354122724174898419595846855255128196067974541990645317927736303905707641974075797351301967924395816075262843914116384160171168766722577578147589286722983416946252749824132327523230234144856866002302605949314254677410156705314296225553952393498799264328818415020996158294750315969226266152376301408368878945557872577031942282975924739690901425699551922646119057576989818418541292142947394202472495872673228051950123240898465012961767263353322633987657418298892959581479491459702905707157440222150424984741610680409650022544988828261718760694260833150908766000141420983706262232037400973698758466901201705502895531527593770980668620719997202810712691469544221249352374813851411783231659562290275655067423104720722511763603318025063299353831843009387010430535359105962233831925491210409697349202859485846984468255233855348440454578531793903643067158255590197545097681215842777657841447586061409654117998932628131542643958563886549074616786501543848554812293318052299020965283160099528539747436226632715197958083510024446221354626703139632206083068314151405953900743481954164105399930414690348265949079739766582850835320327608493957905098935038575844878359332953642841475477919048522435808898234557302491431982915400072881657429424651123165069027608154800244959942529010412676725426813419236416985293035485208459562486267242369013131835039625751668995440805005346178062740597266192750686023588811785432397336521932487337020902220779248907631968569369657846489816419573748747803365149206982437987117399612083970914245196571375585059522599731040907324027229349110707015314006868954031855636340170484006517208436865020802503799082056438719908949859374837091322675069499161922448020980658244888875206354891235036544257390540162983299590168573437783854706684358176109009768426459844637362850706464713287293298327961548562071048926294777750719264954370005783247942777684751493716025208354299914443397411540855230140731343903225548798432933870065896408954972394245786977527555614443879060262943972324010471720200853118103033227790359169188110627033228992421037094666685415825491530523636992016076927299632533216013977905401610762209912033806206291566941331105497407830651280950995596121044676666520682138705160672409217055392672303511232599008777205438659009367598056865436161396332412958412059535194059558138738506541654899461253114247332242855201693140568710811441954713356838621880133254446359672655677269676338864465407458353197985695203967549881857611913566745505672241487831636428137600554613925774175107858475572211313571653274088652600687478807550545925673378184789443691308820999307492793052608168096874086182864168223835547084195203078073794756648307263293471421442236357042168599729843100732004111979776710357415823362827769495039906548832485266669903436688435637339354459018956949199599223634090268769497065546513703048459715543790134372804217399755106426214118592264450685478675900648049536812533931102622404136253001413339231849977798171382657846343425666030152174673699092191466292710422850002498286583327448789574194780876359940316880873924184923432511911093206672998588552510249534819910540206610239067312060272861078492609081184999924281846604713059656524218420668308787802461391097780642797413178377980183133669142948931149268795054394828830317006697758379655109038858899109029873560196554021290639789065527217456491515599934544016367853933048203841261839388727730455835464807831374277135072238815094259441634455529518412676852315122006322464539730170914393845246569168117208821814612070956767972352467706398435107969653837942319521633899905230559573734721524872802959404776656004709311275989716442817427702144328022671720374817754121620204610307260613473383318198640755839937346240249913681447101924827941129956670141153393461051062872859246671837493978192046139013380415806122547899081626056946605800243460805061346685651147957708208592849439930377468744552715646910568043766946007401998148841452095790144895153524591011123385769844272696232382005150421504819200109152910315365493392199593786742140111243348263053442456231456207380782062684018410069117361496762665697419554683876808418740281534758876066131627613157840264313792833553728368753572356422256170141867465676046347778747078204429558331764182601788016202833377551805348421870392637292209798307694217212852175689567383539910442669190757066438148323851066522918324861087710472378116300203228757115846990353915913709777099512132519956112374983276801776360276208884974709034419712925844046498816740425609980900438883687595370255800714066900865744813479800304647295713118665233735698229745020513908258656429153310486252015258047663918186022430493856172836301172831732636621685572922201076564760599260485873462350297889839687122868256559813264262545884921908020781608790652626754347946534584001590010670056362146129611079174693906684019182578322554953203863979516791863066808486318196727074044603943392409009167576673032726050169360220961243895586988495647094722162247996075846198207790312361337469651047411055029173732933835732003066475100302079092277255064341139780064085472797900733607416460035993278476190582319948776974577521842760082958207955331614723112393897145862832457872292843407039260161434447226766976697980685209618382486511753725200873943428592838082498967858183454352727799289948737697037975644962137692709988268206271671872898351031711537763221582670964894723507390480397241840566566342965247932609224623434240879516070867837853431436991224748874569146710194088512364406346276089129273889317698778562885306715602904094092338623324260285350577121137980365965823798327400458937253758127469096426966594935591844837783105541220889348122081505438975938908289817257108519787773517245579404456769097419968650835233832568931075985932925144846890333939922945266061822538797970272983401298913933783372080015382250944883290840975082304074708928591159695927775137228953941923527272581487187226786557342258807470644229361892493126701376809686908777987019694454988873556544324062631190205480617104008709053318587735892425967362308932207084080023991625564878555071968436927653139582690628418256189039395488406257593199010491045005272730619443817140601287343286489284664015754372655668292836016561021248667848506857547670456052986910942094986014695556919955957977762599747253066434956595452964105351238875211520462451723383039838463857978104994512066883877757674634689402176151531180441853110811880846618915075434756499087096019719621084376569555421526435876036968714604188703544296658890027138324739112910953567156628446136498267572458629647540605166659884965329581792241752571170099630676383356199023500170627314035805210412473221483982433734189056807419147416055350141636997270470108505859852507415388638471686335240826835231355538190904818198323509789944570099235545303715397388237635332905297875090666152918884596349898631356672706389911277062531252938080919294016092969145740100838868910310362901415495737837686329614394773094287521701971136778276029610529156906583490276192408603563488032571988585355195594755179944990479610116114164954390104838174347766782789639738365113950776606178480314832389853177422557798900852486332618912392740001826889254688088296484966013678718183277253634320160930750151719659164576879726460844229582579588617807093852459782371728914142958395352728354542183687940641333059576567632807550765817324813912878814441053269088056599986540068970756320302964363179174561843631029162431851744559574256415971142776388633130887950255428490385345475101611348204649625372532945602767559456041212650762331707140617597005017901575293022693635880930655962315082645785211438370428973952720856576891993346583773200302094772666155998751189713568938720923466405302676138226691393633732731761845084383032611049565857916423544044069183977495299723390066457075918848715714622967467106777441655136430418982759171617585151811371797357762996961370787212075925539925676666734704079465953845453322003285126385796074913275324319066337616192160495865515481401635225664323259036679129523110274454566770153702388619948707716858051524202559166039121246299482461127534531012712448493875120962298513588857274911061063998164519437439065748266761905492990988813905130006803737618342715728538848823160975108310648372663667544239687917180447954584961550116358726481307990637280623926593329809561702047592715297099466869935610122964342627611800351105916522461827527872074385176449028034537829596310424177834917803839288493333705760950884464493878393487283513103620413274867934429233316477213855080227930216207963014793599629712629062860041052030001365604863632456333767105057643445304969389933546376691136097265547488338884100822170653206818856259697605288435431470285124492121969901012490781322487041171441256354124807939506234701839770480271652318475943293717130324370071173910973329248330274323321928700776158502827400059549079990713198479373333186984899716404757680091590199217789474313986803454466430457424911433685232558922395234399451618422758469891644238773653028862420507922941116572110631857183901185489408629948275090985603625335171346444522024082850618547160636650940797302937932522492665135776163261281640012406574722200449254530701720710497046890350096190309578338151660437588347358021169196146922265157338345467185697155420090694702019145359303466923655282294106153572567974950055999668325989865491568669371621198274058643232340022498093517364169115297019399675979482657975594256481487912694454221571380864617373847271633919940942564773004401835131346351600426581676876153839192050133673064224022258826021892037897953403053276257909472423346629690868222825176444337459261944366426909838131833100284500974081675600232415006516507449475852012438177253511133172255497067284121031111443131396818277247105359479075154228604282471682783323201377533991831827248789543367681215137413768341730867293469575624364911853335880848898916577537199805978842093058269214321432656504407482135388498873528829890194723057303100111136715242547129384055035011550253685447196101385567782205982189694988125193952530917067208045815075711442222762826895155133267416318562676301879097483162338497631175034882769184669992076989919091624674778087248218451015794292167533265704281123299112908976752545416918441574508568083364767931174418217654498924110386617037112768431311539243429831653655267102026759712496288249590181639985850585519946738890935156391458953239281352063078868975666161460666222069282375807455567563504580977779525035795814855785613942289321603478212190642907971598399628279532759532668302237279169445936826624675201418506063119009902036978030588875709016277867846125635789518683351777289307984390192967838992081461647114931623928697809535895379335706399902904006188403040994457502444504682592404052402798740459911985840594807852410908868100663040056984585094631246222398366289917862825170994548297303484362045864077120652229548615512491907803526603825717224746165743613537957817761153278784020239171419149497036858135559168091854740704737149161575529408586047951969140890928465052494812549765736002771226009997220822317290275560059013868620467486627993559519857726846867189763614334277868942322462535836858136689833834276391429374923483801431996438434150817171738229800464217450531748376873561488691694364708805018169885933719231029283781431450042381555039263798591588906417825612284654265378562667679651637300164776316548455391407660945348129541049279799900644639364465165080854673703507662347824797111354135850791990021610346127489999186599227009775992015279172162008516400671855053126589522902415613510207358320527539968559024257179456983126088887258893956942005961072308991123925540524930191723314551990474154614758098925687055494752751454274387562016710135570975854604957133115478307918847551218794498965449899637446663849413813582996203163745747994422344058156468085132882206613385707384285414236364369981339489834707998340282076103837633449520666849880510071758528553718301656857813879859552707645409004504406543827588786930433447241398116543125893760260076713249180596782721981855521148658214186556360271972758254099236892304108684133740397756521389157412591995998312256953762691529763407339579404872187779399456653731738206466684842189028502340638594773245052707328774306077857247055551743162469717149686001812332202864211037087782665697719441751854570892725343688697167942847988852714867762868417383298607610228076381365336365486278476382459808048332992991020017881311682612451384523607496002188961670117580139679727439422210855823879154040161876389524250661315492207905880994806993911106776169506019754676125887617425414662320089074403140552446636380927537238952771405558196275372651646771371805647722284528647120160977638080257334600613051012195671439890505076942585037956835978402998494318072100476403028901810801521064924905926289441112295299265166953281709522845056914943378631131222238037121881744895988538845563328585731265564341180392402096634608735278078517357429939329536950484784363633203270125162537116089206535203380107853620981000144683824905897561627296553434399540719530365697937860934934840762295279345248651291414005034722870189042726699870712733191721954608949481903904440286943974701458374757729202883018040729190000207192691756560513852185031031596915325261606748393490153478904617094589961587955361264185891886973705601642180249012327503602552746607661530133669592918504005177796899254161882377430716778135835461644185522481357731452651854549895209408441824400376428814647154951625755109427158266047973910248852477268548066159327114093191252614187837314821229903054406336871238457596618507710556420378143561439799479464309240593075878956336154474334107981088507241855956718608532008375604076273762943329810176998309556341138235343529785932039939835828506784639968538060441600711646066199325063731411391148703127930778683147869367681703955600936841561189685421557912563792194332073042196798807570328765330829010360202385915562003859630962927658936778235361636045152407284123546846554506381349342004002332629761264033501953451090120166267000164620110153215263507469659269709725889787952020142911640184356201293539812617243886286406059237424287572587982690105834901355955218793293305406477322496106661006740288974851497308583668093854431264263663424539229743612722963308338827336849717453196313812950875578359690144591440279423798352463688208992699970240029119347269541248725468173200773675717650722156552469192994674318171562803887366841184826337833332481063268738830930941276001441872332552468687256252759740442502353029898889224568303516167148699992134381072614021416813077482546704912095997629166684266705390038777479523012746803468829511920863733706281557512874435338035754298622586088755123054837720045389318095518775528846323255011950897866009576591890255650262337386011072134762013074238280895628961240561130937060577470973039185056414084819307337883732934133932115982267711303849779383091808487459106266847477191474086121740328634458831939769321339556829219058502462980251632328803825534675718848974100612559324908346024746507460854673119682528389078285988760965739479379300840997520481515822909876347222847825579281536272652837641077444679418980892208314250926611165944435459282076215164392288930523788442311766245159910446997377126089669671567465653471364063512455334879845005074155851051053911181550571064379934114969168011835867860310531877758218316041255392280884083308757851401922831760571387380935738179219938227207493797932751286157712545091618893710702443358318040047279116833149573482742084991456567669627721248727168245133285086532719908594492921421893253993245873804756284370417237500929425567369781450777764864082270629265569337378025497939493399393911569924936298140319901832291203407089129858650927368036280805869460434039799607115930263143074000019164387854588203755046415228327295006020271658944736803485057584186898007770797907080267896356801034604427048721027592809176229366598754977444518434852527588171662714879408420236621205094151929029650590351763657606665856417249136306326387146389321185548105232421348167229193315270327655283012443240749839684339068596320323979835121945943626042060875045043478856630860091461439012186624997391940633251838221202202874812217374943321163514004535202250900382810085557206271063331495020287438449889485925281787313269157946445294657725438969317670977433453739389315505855703417137107845617239943168271963759077907408280220303896913688066561733114021720505040337333050878032678623397519916093997121517709837681482679069532198825281695103720382436738545737685071361663271346377532275047249487585621648998573459232998044659201736362963125248211049359268321215945385376456643340636502640984267404745055236807442382417076773716465435159274718456834006793568645051230990558058624588384017265555145359237757025097858326794237990753881118816028943380166332019265817350120142176852834117283500630234218576349156116080094076790590942729952108729933800478533225138251872212340041504933255632640961405266373232032939188015576770039762759658519829512337086152331417658951058273709030944301228693663950034268833126201582155902615335516104059204384050008015430554776673579606705128806142537269884574093434324501887594575738380770600733142452435110802831450790129211636366514109131856355775935970868380573603524129570826423520991750355706495688428923851420540360246083292766668852266294920993411840737306678640802141452513006102921898920223993429067873312425362876997063836348911445630562905040869065374328445643154460901255704729825473732104605107569612669926754565116768189735673307959455566476748833027545310368513009432887572025357065917246162579455373392797350190415105264926477048609923466710489530442916507707019944457137644067727595428280145878614024198631449447099469271399188317722545570167961550317237109640723616797907832827046950397582487203592845343195917713585345255552750090304129162689919229444817341562373347682731059220070400128726232240976652861541824543374827259619304182930040635427806926697959659932718170235688440104588062041629174697272620353765553474769601393325392970332582803997726647411345452948422871517780591601895865257684547498838972621308724038500887780995584699834252830030685096607740992668082135242464544543478521504023168920756807310881833519250854390746773747476620740089161562307855480899368137897036911741282240105223194641622566013858733524741812786009664034030701008919351406551677503649402685055695927621464388976338017742464311130958879944709624655080707832111648523425851211895956432580897128828752902570729306959259639366451012865509010082374191380823319680426368761481467776261453982319293705072211340698948305490695160375420721419881823887582332742446744566116152252706451116971307658831171629797597099453325051237237628231819629675578597181220346509520820236423610437387715113987190014947683030619325769064568786089054027882925147811017648476292838953226981500776800236157151536133137036265559492034302591490333699293114054716184023285434497236986858049001711386498419779372322488960967598524466215112387221973035454042623357363270275681152002884361433680822580170539625663488019724561502174593614505774623185421950814894654836551236698362880855291961309335309673284904221039508336919533564563324662316707537374319143349493829593041891680829897548084990402009879786389204678050883629932218605784419370716786264242507932502270326978785546216187799737921090075427696545466448705878949577253004458920495923006876296901109937468794981900651453409577965764016652691465317525268645060685701834391757435924416631009335639082771248355593816352619754219236019375294475697440068647439886216857877086715120595160274471927056259663094300966605787584654154868658765291489923309257720008664309769005336064604796031674478921285061685151127327674283276424324432245719980830340956388864155628667008893084775222870814469176283412814332028227100762924440881607440607223578482156720434035842853769633899537880211428600992988520891113186019534642106326636711218172843286211692452249639502430313096355473302249116776371774605744330818289932874975530928106643287475777286885518621829304769130630511500915541951571527456632038223903735650098812211404190332004111969353056280082863142333751627654689460805134745783888128358118724787772180503703156222325441264743274294623721119785902173061472343099366433748089936237584272332740298698229425031075501218739636192278753188794107340455251714110080544445768300648705341504128570340773995820144990302579425594830243311414259911680609736986667777891189587022988830850625298583043741257107634743265926624191001340718073452758625657829528981391383582470108896966652757681266393947470538814878051125595271862292814687067585020441936723279596462980967162401373163589030626396552334932258437089750226987348454059140079084359340292533609326929162221634968696776196784419242729632682352274969144026225529533402987134168926394222156246140729132434437138452856185453362677533990993454896834463367302363148359959285291662862460794182610721897151969027045141071197097718416620982224240699952297235636461529866872317941717779088853122381190475167224208921232223706322455356795988789238628481093916592467829311227132878941383302261971472532146080015399090878509703268095634115828254601999880628511288738015403878006337815017911327234645021933046703901282262176015195653524778406846712982658742844274188824817329888441111414513845955481156245978893024439290161489864946450502625522044032184886519386347747078035953814087333284914404236343755483956134827200996065592071425963942154113297510940218034644372238394683653700596785733097600963863493155404161049595385383280500096798898870134854276233631228327401698799832102875408897388129273242733163586535119200188172252970551667945857181816764613596266121313243867700797659942067097516186540412891803423788359332350204775683532845386372182588144410468399263293695210179280113821697782900087118600082298884584155902296181165744069217832913606968266466887414794001773258479428601735912671552026648721617294817524821982959188424261714896345888742445380631312153652045441284370138502090265178036961799345110384505877192334467395015198244855249451228954739926337645300727529313464130445198464203113313838335308093614508038837103445672719013973177631957764059877054513865635990447705986977647225265972821283154280950715211191186308182218639200489633969514745830998512354533252390918899557704943117265894402373430150588938555114449368621587589855756966486961528510912750282646572929858499671605917278508886158537721456158227725632307672654240483750422321144551475954158920934941909550348916594162765355157806839637392218137540020132451975318312299566547860457337482226524135165624574288091338850440887541818536995911696123843904918908019834114256456611179640039175277931259377543460907088307911926035209933083032911273871818478850923455973357417976662160871732108066926497744454823322667792493067349772772698289055386479685701832402533992336870925046848237464764432747095079418755436807940739866657338483764279546008277890130770372884036122240882438763453310343061867115918787939334750372403782163173289082948573153716261963367082146079805692426665720367673239160973750034559394827750623994782653454529365498422032847297880328790155994512867012238880714836022656209978709107986251986114594128651245936397972660985416232036565259448588826523970983936075856407697173271966803044384839871186150801826595508082396451702663122649396905543719179010228294460018033658821577407627863418149061699866578926576897288602736546044885957018681852472128954559535462424856578090305562934628695776769718733672636827008551028922823790105848798232850375469187592075962657050732181541511346290017878646107480108817538567025929293306707897475672541318068106823483538629690541144375570200666918338024595817299443410318852345953191490242027342812830317462553990789338737927669851324042761703200696332053701173740554123217712531457196294941511121056204894110340929463089160042586314451542482620464779345577777119358342536569912140689558300637901268290604999598727360052245718358218543493671559505226044894704646301392892653993982474852958062955074995288290108898387693153233322489646757933631067620665271617241838823104866448240874682415045259841150407158903055082216064575722604749785518940464740775997226469009022080866630957250769649898965536276371417140087133097619765019965289966613888879276855070506821642501334471333486325689976394034056143854432047628846536324817152967065653027072939478838261065247378842785625568608552395148597771650177410926387646762182072839123135840413092531301354797728739504322688361181915802002739059945018258545183947255445101413754397210406277878275834902671674308459474170134572085078187271140970122785748638093304218670253029657203276223637463342429045979246747800209635327522901912534325578664937657177513331781912602306737988209226195596659389457959522551728348536957785232664940140004891694332217394259521425289772117270461501951482342529515019313843109795618716120657114846965409748911150411304320180220774825611384357406426734787405447441896741458664944197127440061080824498830353404547451944645419091453228175851713127124337701000242279170192741562227708822266476543165140686636905409082751442210812780471780003745280787578712079271075949462314772401978728662599918574648446065557938479547025632829708370305058559976752074904849331822719872196375562078074012218444459713391264739103292292176116572039961093138161176493870022482683403336261487636232242315979460386870178644481895760226635712604805035474873811216268055619168653737485336962751489014003578444742014201967039190793725209530653818090464248809187495354119058417865932099884453944579949390121136644843068372852194842460255599193097609277927115230283702851942585215364224061546779805895315313017744776169448930732261812959877026769689698605462355861405349405915035665591011607473052057266438182284800382653992819844397191778361323017296196264835475242488051086929467281432454115108987169464899827388039436070997026642647468840491227911719362319013808225758094171027837319119825718289670445691932514345494722953458190043471433125873865287484873342842281642129248253535679918930957745943859545898641680616683432454811537424416961294449273132644682583670859456432703846794181945169592516882657342642966848354621912805799887294904407726064791182345252657980753283631454123693062748529765004823270645529797109613220038247824424936453948313867397315552409218946774821858423522414043990171494982385021240122025211062840491194999547435974797514444834335478431864737164980757057280496704125165987032733560894579600324309986365235960600647969646890368266953750968693637054754653124965649394996054447045852225942194080759895950811646990715448930866747255235287492061309951662090689990857794148539642167671215197757253258239191550563750181094328170960651482496864975375476355015940249037681827169724733382116728041891806252756626510658764872807790761474742381440470961261070826330116806523115800491459525435020924357349106978985479979499131171615957611541111996036289664868862704431468399673479317024950458814053626130161807463415957456787776154594989205103957357776121066608770665704256610879322111623911209006468005320869012484730661725780686613952602149056674472114419293233702036469734890834605833303916089112362209752715422950518798701969819195419321789604304927982488780199120939230148095755032131187399938547076898454791063548329599211415868578491707595642146666243696650472330526946193613432642551229772879262106334950172334911771139006384613144490783444008030325234994117679918648512554513190487969799765511363129953884144929510960639923354151597877503692062866272942594721766082863405429102649859763443785577849050311811951780458429086365209085101179956098177482822321444678354393795445894140063537800811895371768430782526045433859232834834667307046447540069356920173461313126479201358829570978581392565129025684752807931859113426389264872454637283822981017643692149044498344423656793657563789750080924158711280547616212708262931955538753312013644747337609526189445100738408439787305108767669643508391166476686927506204350889048581396794724714686776383862297421852979948928479206208051830112173966972185134344404045987866404159201337024064518536318244920855450660390758600262625321959744419160452332928404019903816136575765672593807551234286438281265382528084278618997049143966807423720930017613595609542054666203674299994142008512477779536619227036613759825316343060359350444146658042902295418777714298633615012680268622764223254855225409420254245407681219913648021577563685392698197690842344889992892711447849315812077652254342281141895880918749026699752849628764499589547068043367456570088972661630758590049737508622071995920218066571393700556658381829022279107128620110404531499816677514143669943799203530239822235566411486966071053813581736170648822399042835176953967607677632035149075906869509966584350386821054128075971209569144459551562286013123989896445613775191298071558832458616762230287611626913041527298410965170063590224796292371961254356870240026924155555916945696827940930701123351864337191063612153459519528361713091993407402813674665040277212143549271139179968491636023276780350257287838725575668652744590248983717520349151186312614670220845632517286598771195854571811989656430989360228320758029695161637485258839824002437159881235972187909781867368890623905270367005820514867659554626812392729944764530219225256794765847582447921537569203299293261880234474812063139610023581231489291819976535332884791109600714464933721694401492110045967600730358975930484239806397359050002251274718267845910535093495078477284129629453722314176929087438712692322599059894637063445027739404292109727292815688125849153034045826347371807396629824826353444793834065259988915959954777325397465791935919878750966027463194558366282856463338035949262318234631126478055461295670672794507657794377844829278365799909978209781859207089392429515446789200934730191236252281998153626132458531154371724183694452920438648846089748669860584161580461475451012558071423348358206848630116078074067215347706247052381110498668199819921116393974662845961581607447910665742170514714455838538261393779750210208885413783936837081717918102420312365606142768379131020792599689273631102497131561085509723099250892683094046686240895977248605589976976605350411264365502054433104260241903661483517919530096985801565441449821719784881925830463536157816868143556917474116091174819953875663043959577127555531633856303280226649936249424442796961026667887517513906349493952857081634797257178720428096867724625567551445388706033226748736584027710926632735930349494767285783529457482859109488590369490832287758481407225980721801639486988757770656737902931043588814810555450450712521545872231238817859084649918777493866228512362559653161494799925240274371487527055644409595735022389046390319087873774153776581247953306355127279219346179817906668113532937988804186346650743414060999495080521027127202615506218946889939684573983721434079993341421162322263813170139700574347770798842547560625773825629399992976707789489915095591206402560766228905991740568423709764725167550668091815716473715154010343008218952069314986440618103320352356128565309538661006406636928384332264153324254778536738947090631927677069659895106847743623275408153734875900350467555005758328782375005105171855645585299260702196527328956343992949824232759319618378416624070086428058300993808178516036054947655885400563714321423440073403848415805627261072130290332917478142558555352868744800494209658130477014732768437397310717549251622507366568684606270953741755831256747427949026848261186806392732062273285258045570908806946771973211428875374594633129531402952791099640445428732835768198110557699754302956791959489095622531558475647967682926265482334967098646887392792707862118448780179853879679289503948569730778155106886369647751751919575521062540666211603620187781787958336489311434406281052597978367473216711080052378977484386829924540085904526505484265165893760096413682119740805515304469870054887206262709180999157821963284846344861092023804402071497370773890841599588801773981257231293534115076637115277635986580293774901536158022796466987397197281181595829149141329948433194964481213486399420498664933557299036318286082992748387407916558090323195788076880582860940298275786460637581918213331639466052336693318661253326024298554043465340054125354213740647944792422364232242372435545442702485985826848065694497228674823377374100942945942601069821842265892857123326395358717812833155303996243228438005863519189082934714504537612748491941933079237616448751205488715421663908717051554915410288894267617372136310670766491593716460395264902368224566098437898042902409135918959142561039551578740593169930604862333217951285736667758714244638446835695192863275638889221959734807455768770207286618692642242154046250133561640503381041571091758406885015690056005104451029751921853877609221018485527741956380797879057091248691858670559080979634978881635091198069710083809022523029228327818193248944515286888903044309333164257059318565781851567871971242192369147054333327279461386975929997720385200433759337851430589198881126935243997520705904112027801787797629379840031860851887188692378929322809465911051710522154053890849229596725545648637018377965191683530470847869689237539065328188179548529791805383139553721734531968131184735576083066212036438960224420961540185907793687643708097744167795306530913636524081482963821939521171733052416413541265382446233979566407410194440859861899507766111617856344475312640894725692418493594383888319145442371239605101868353501583541623783963015985674083862272389995546503846243077377593229881175183639450419268082232788835687241861420256173506905961494070698378062456561884401560499203483912580833793243555752766694228292442325279179842851788625585534634427994434765600358345043207987126097511347359200844092361273797726321757774140805466939987629895973898612457963577081024609593857882582214414720360506283717416950138980872729708062845273139262042577268676441257403313039196403581667487725418325726531587110615103123694912239559425616131883123048364235206027684139858540080920633860104724430822214040095363653388591405455803773621696860202041286462328212314630263011986424029531999795767624777198769651779596614619134664104465070054827388759659505303996755697550387732806439560090848206046121371020590942881252207676324820679491038263062701338804230503901768015718688613128670972998795825230375591814460425976224629155835456258749543754461756407283011333845437427971852768734782571946387193811191128261912509688059772810720190870797384377190207812358791676957687182150033990465645332499905243022899740860597171199895149037272950915796172772501844194770440734412954675377820407105786181666505468225422825892042070869136501895958055430820563960801862768747411525427877747124875498494052045281058536742378971065577418846075737619058717898447714327897505071870503500745835199100809563443847833096612175117235448351998854025981218786452111390926807831321540020845853690890535511344039176660571235831704034647574772945631956709924296810968513325585995623550465889667990311156232320402150933518718741860010968237383314798531419828998164188576574846834404470173097568903074615227727527811209872063879900707814290882329915789427710875830157495577333560791392313067746512157304863166064713150008120464444551660842709461755322186677817120972117415749375563027695283073321916719681168931489749225128386844837905785146258409196753006522634062004327343350525969455179459998866825796933155845751707635366200330046014298438934944092940779884656456361428740642202103532422508863245952138449888960146801209866452133663848508464459886556430702861920078832422948111121985537114953051223631336536751586571803622075644996594155440762393159874273137767478921878966668392585564026348509815446185521313679257393665970966376754318961168970733505700239967672525389330275653145607210438203178460780622048481817950447479561977434777089694385889283664626394916712773215209215628345466966053875876598674316895227808467547048624765638636870645055337918836435489051869113953118380544976085389332065812873518209483886889859646889871940537948864469618431949432627133428317476563361318737763185098138910357256013102573446070552739418337690088810821696052095602697985488626434951442306613350393902397263239576228600074123818554395953336878482546268680101012216776099410828462828441189525970565822936839390709131819139892848257602983297300740554435312876315616256505103014089309850792339481221466430010465289122143981494868798146011705594316606360536165074536154582628146339170770592776011156881810958180009832948711478546916859291439116296554420504677132709148053972328457765322746577555991460151320396876954706186348687053951524207209437842506092529328471795970425641201279935121145563230908952206619912379592706069160464588721755606717244484290073413621338267901576056393296654170118860617728660394995176692965173541653205029819889374129090001838163753401520942724246649535021645370581800633575087636141721250885535538272263211948424840982569032579745108492483810371188100144432108361259165839988036429733552979582800078997952953955081825759895072964039999269833841820562177806760548947050567248330330076565492910040916914136517023292063674228742274966639106352177455294688367723825971786048569301241328827535462906293799464739283768110231724435769472178041549079866823867903534726057629543520040421833543761208902063195468503190049005156903230680125729717826549990597137668913437026682118152547853466598967657239632480492185499769874617432222796361405451191782641457587809654110046886688486987296036851939740049657468784373515469997929529588869747119493502989893664223993758348602084470187760944482991702467636133215030156815779528733823806668935049736410439331446646894738595917251751869036245260946107890363401592430868544430845546389869073828402899413634158536394120566244691028196582091794108370043741841429232910199658987487834453677615671574538272821440827083968536108893970954422718100832640925219446609934325848675706546788534084207721496623194985942297055741787772759445151914672488123393347733322145326311334553261605312107051021166510832059995554499884864922455458225338228734707062800148207140785334891512698038365256856718678193224558370933687469518376738692686550640063955143289110281437613262276253528391370032822205937324501081937231028412159128560758140664906283825856073023894416279584008206892863168386057888800312525826852425208089679442151004564412507239081775575038412860502879686636403697467841366500720762698453409675713257217364722342722843809270060764084027075757309489578098602252409314303814695577565455792093375225079120828976215863548456772530103460424066398646319300706318203740018305355713146781318877619369560071438595092900769658282759821425310587128135350404930017179062756583056936081363841285656907856636632859526396918878147737924092358687192370313739083687588218362107625389698815662603180887227841589894431811825782155348446135511809337038784290087739084895114612469832634016119710120641080040622534172788387862329840486712947207565780723368578453032122535195202362860564462338689741996720902290142379304979845891113774117632410763598564229322341834035952025268173794102227603452465662823324655188199088592851295574021951876333937928393683108187875315808852627120921953242801766954992897756387096507951317953914505517774702763601213694381025174387555222788383962393625205053369175290208456789176083727210351701224140673563948584232759576068138362676852198620061521323556628293769674256227892948435395430166660411828055527658166168631638625840976706730302317865341488216434816305459433333635286329155574718165179785929927112441825512721588368399945353118136492700583150493970397515671934894222401172591494902627220732036460585268729112903212746970656006332210563692422456205857335617985755111661597004737668486104262552970211878848819867290557152024951513225300836147642987256909066267881299363496068027371491975663374587013530295943985627175564045843784475655313293861790746049092353886468387972777612372621238753579493222870418903575657474157355980373200321884367919269794834609177488800981611477395073533726941569941468412085808840957380015702926631434748964895192262444666868111014188109807297272166149641126042315862888864474801475021612502393866180284140400271653352685876787388045770704259138124231051244469396837472677750903694551646316529724503639821098151006997545005443862097082027628430633509297711904508710567352546051873364404554508138878224903499397479562106588674028367932442687505757552148660155539442694920441280372924509865292404716247298054598311981405471513805933717698746289286354240109655326744698401232862101221482777680565822335610324922409939963960349272951473558688074078800868716141524875183792374047296889535810948294033374860679536646600522109434042581687233860361542569747343007231621337628035805928099770516163064236339295347984210483744858753830916187026533621102878131736011239737049777459584005654553555451638288020382954283946945154560455470610173354755460862179083742629483581754596906799117752060728030086801266922636758982296204546372030387531312835057735484292922484261445257666669775058949482652352559077547534669097596326446916037897596723657526020852243998062086513343117903272011516820538085670987889543255212323198780528188941077669058232477693056260102491645209016150681441277914685485773529844318965815177088299013145457437194727985949539631312008874119624223591418982896038737247667675483799804553886926836654353297353111474216118558680010626194667596918655481929584143030984360177820915682147647779305221063376017966669993061068347239726377582442386537839419943598825553482381446186117750821971388551209727259138777758355327259378306152780997380146633656565705609958221898785370050798287558068957308677650867718319386149024464966709691553888476336065061926710573228115181303683778085860820801392360867571851094219076978239283984594393811335020067827981589271422609964968243645478310710428295989969032943702526016729902087310950698877972353433057222376349496060494849781028344000203397423549084234676249132347414310160088440730683206901823721916109489651005284472903719933279427821842380594263189095848790015763210049904118136601002298055026489267664275838732002940424977125195326699169761123097934468792138218243327047771267480438499663373499615383355063649512749635216463346278112016411583813471521464034638086486361971919160729627099699339985883761151130789547836901667717627968460659716266660260953467909885424355134763327903434105661037631080653830604749966258524700331492480268617069859194516072397796565673861101833710137099799641688275768149786494761877159343897184972135948673967074818407650055268644610146566291458521806418503657236696316836525458661981130414175267286166666026884826094702914825496170142228740669080077534042261547514038530975997021561531124571695189512499780063726133415473337827088089476160890846944246807246170543402461427525802919702352920192627281567469319730386046575312429901662660814425399464771246167873470397597826172438481750950406547271983203139034968888835323088778980052269133631594193756972805913845537975585583876963432570306237004818658828692582366717835795104120115237599993763562519822542640898721361939874352794631716740510298449984627665678448739379179216144937851072587005546365703803082568447032803356617361256585358275817436555212530099854391088086946740465419436625711798469284188874838826276860686364629512514833736173918624199557830902398150097467405161424653111421369577074066097484125115927566231193794779115780904918139719554509686813615372498780568482769040197582220936438529393727783674200141163314408519409502151846613540945744548736923532393881090692221443250354508051043524558500789695284180383192729012996691591942791429221635952860444876019807490388474504280136332034136744510636958390157541006553394201260524967648895908343494648754311536676616069160721256117599394054298021571282669223006147175916382909528167859770711022440100981811575977323300443394774149134802972141466637918208957002053613159116098164644552837702088958132608402487903337315318272053304613647188953459528139174395495386252932035355281983060720408054293792564059365160129737096976398811712607678738834545010106074708716436049292699314524831739462314407246656097178744911015341197188096901489093023869593461381233977448360983956463073349282102492113601915406366595489811810855378919465675998796070531832749156895181700899386692254188688913316264051200344015479943910628214904057012487822431117503691103511059274957051344280184723415443274747235509076465523958835402123373659174205938762152635212200401425422091613021383848751659464922759307504261835122248358490749827872857773937226288354066344722195773028845905378363734043833464687703605876693842739736569860249891085735881338919416239296719919557586600733581068322917670983562515524118885456870761405162302801830025076610516492874701286267653295053304930893366318952987024624363162139926667867445378118089153028887483342121367448910554835740859923934789207067223921248652937276503561534734019869562465264482405767862936148899088175236638902975146404575736953814255574720081839096389641861784970269676442638559293354040006701676975621124682167189475499067994372109316123565740130529207308405368620784549111792363871934295129095244887281818318606083827242356055309193037644825624596830987530187394830743927138917888810936137948660114861135635498506578158456958056323426452593832036857154206179045347071808679043624819400532336789892308777392577476847964435379151856517995674169479317226354154817618276881811407846526221620493588224136595778368300322219918171297535854704053771360015625501368670602817087855717318841157674018408071873099950120853566770810793966225148867505047677811695669418248937154956564510284375658915683226822889992769881958051121850489003424031081467554472291353771766915932653390044310545189238204933186948570814082168346753733786160010708225564217262577351205971717690646217613068042134602690271567235546710291603923336999912355901356924779473671971902627062480790331564537326090474630298420777438107998497375934880207606953582462975715344916950147354256024003985146511016687297776853443200994816804385196059744247690822414213220045855325306585180193982465059822523399191827628030060645952099340787970199389997318696142340887173381347244182665778359010579930594060469707359058229624850280621942860153264795118804701083492797343822723464233568792243941215130483933450620190097440021077881402303059613304174389505208750235776286375347758729071455858721920915287389564824463193033451141474025834090167390138993960199806977115157944744098822470800745919907122037847862638279522355940841593196313665692399905291645096250828387857038425312052875418353615178855668798548134530553475707967642586512565831876138077320276756872280006220786011329324714822625990708361526391315080433240926412902689213523691029598093829786430188007952919149726523192274757853867640175232566449299797798756355138551540693835241284519193882195712435328161087304459282439526693195936118341078042776307195633811237153088140069634467033481056148464303120555186973740004419623451324520166017028862173059115488751048277435274063319139280391280655860958414410220123308761088213392746858485498102943284339098896327072406371342634608146489038080448977208808918725373649644246326503678986646870593984604771365151153566310751977708882245316051408234281573270975668906209977034296541344575166773243222509419070453982277035844901559577191146406881591702199904508027256519716824754221568499948230275947491200753835736905281192702257138861297872675505129184828195517890346320133221876871740172692949346260358615753496840623596982813852274174893779978475323452331999746112636925561856602594937214295476656864573497331271861244385259609842574268434807751124580367956400265215332431316206389510575356363581555295635225371039597247028085450155687777380818868968426090414339651883291229935865896537839213683293838239565591685314799496774834868394142951016541960265597867837504698303218467244779335110435640320739208673484190974785077208319913821351624353934893668753839674551449720257710223101744441553587730594768373360880546921092745770058256088410879533391577703844763292772049694518495046113733409958165471805518187106128750858725554813195794976155271887033545248895410669738858762793642712216491823762048587985327657327307909368446372410571670898043651021599697460142795911412189919379088343686483400156342277983777463763565523466792694334963164519142435291383532715028221669087483130361129604795762940295231617715322670672523044231838063662427574819658141684229299652133928593175302333887245670188851235115727662683331345145977801328613974700003411346224983619620354606351117927211249976595258990113782750865463106799283262850876859148093912649834706156744801064864359449641445251890882922312147914229258093283485349398007744686472823499295175877730981700322183718422073041205343600408617029038358219853721055944989361065638938002243947215118632895064469192896821428262868249949255913875376443806873989523843410029466318608806084880917527887410139195856113773099791527134429334459209893840688220031635810627438757885560747690449238828503435097013250952601934900560516696639814112752734911824103195789250253792025210283000640781033834884708882820237280260578318685755874342746458585100224349613250332932716115094747928171833019786770152539598234567102524874186624255848273300044792581376523491844509829149850948342426261437186892216735477135167526983929539798609127625152748245407576241875096432458623701041624735210620232957476207749832426608106312511928958066106593560195297276907502328145852310200731350593253944132675995961627178566976925665186285330470212453692417728812348768006926353245141672710903688134982189198443084418331977130980865498409807606480983665247512401246019094382619707367154939779955196705783113425612651712550229131199920290038429261914391004516388480764099993439563149229409257335949564492634407016212959224658326758637177294589923524162589874426496956798726277478358816923264926104743867944292061482895746727031121044850761039472030545383064721774420446208987647103981453591512493216638621027376625508778026398247633608460191817728393744000529114977013706921199894813493295025039942846861917130598275850833119180916317518342168131049589512407495449615466240588882495905975395349207193286065796402381218547757535530151630914395941075549084206986108948717826060144992084942326111309144281407404512571029472550549856137536599301281126862999776636913887755587071244256824998888699015500620812459548801561884902396614411800326615565999952350924755278961663392611016103307244270051836363174924854878154513239088982531178756395472291525791536612127977289771758904066794936167836175118525382088618530402617291603823455015784534670744334456981261560749514669580180064086382892669300070832546907615717753789882109657381278310528339558383309867388307926279412586109000831727880011797854669696308844091690314323795250978950746851580604011112298415776244306671564604738848732813970468601180516225578819147081644497568671313384675387753187351812108287673561387064774370700974746979293923030399923099206048878713720953209401862710088423588795241561906164311959732058987720792041051095122983861949298073657736519129473314031339854946546787220407102872962743491326625224986556637256661125325104568249849040969593170022589260654014413440903684139364256224187474523177914404078271352714221761270934116890497148370407781033665758995108222577642724046175593889802815088214743174550573542290309411631876935651052058775708759418140085432054133922050776948203041484419321354419303302316741036895058101806228319333121113886871676376934929038497613882716617840252899494578940235973923826285721225900286399082367701728077631543642030437056875971353727206756717875678082146633267413159027519122527651598218377586247493786685395477998013485344163482882103938388195143852314379416644990396246201296329673177644889353503291121953257421373027388341984344259058549669586606499071035497988299402140499698274644680570028211043304783574308849856218001914082583710025585368075374128276095362998387554800481855065837756436332817529012545062628649652662270710169520445671497501223707516842112809598770687033005084435443094896826282571268106695412985353239618907980391733698639648300402911712339167922072777308637449344520556459215313297147188763815340905971848391218951650994008725201785485682118735311042194704136827081960292285405577766233256557246535348791418979789196010218498675657206581227933035334596304185005669718657235799703341598009203758666990133319230711811734203092128410420760800445989033930899692186904687878265431357598086109622185439633359909715140220287256906281771847114543216486166030459574440100132654854804144707646665473355931182094387431388012263278493186710351314229183366822191685013211465525982949869475994726425329100239774026448585264411174105213708136285292407169088227171997966607015449188155439818561513563181195673253249731168493478890771789036486128881459618559651555383086938451769646508318454011012410086282373942624417844275387079438571102170983437825054921289452343519721224099048584223900586832571647136339059874784117088883200247228258443594142829643214607753856142904036847835874323689592334245271757081713493386112400929442109315708312950115084562610655160548873640642329409840275155307772891720253154343638329119737254908095319458822854048401818574502716267078336194359402567524439182409042890254197273942524883631750614409868672940599951331458772042665755825242944024410710714923847657459593898744335477040691971825749938930283251501631273692286883735067603006288898260600079323703952228246680774787685184294240303834760057405994586607395470398092863055153213653991633854886740404342774783394913280070061433499270652684112466274586646450897535678435321035883351128518866685014238805756861576271602329113196473680296387453150366959617341366708305842659527722689800039854554651777828612659834000705427898022057865014779478103501785281192524039253941992937223865460076356384183238071254801679621253157956572289621188193910398774793331408460928532700096472642915753240371897969076840968892698469962758340211888014409413159451323604197866283951205842727723852946029467844135208368766819893575276839058819672148654242224516001604522464288983630688366308615223739426654275935224436003632527210833628140532103746968039512734587781481324197699137193575797432874804378809480284155581650340097543790240284282762822211945098680519600802001406088674339437893930001742195374735755064304678814242866281217984249951083126135162912723078608491455826950895214726294225563753197133232284279992333207681760511729038471292208056050392387787221482962189173907462694604109683750957384031650368207672556523503818032497787327309472548729083374629607847226826849646340845804721821245087101708362523861471963860822513896171442793925469038889646528050516170656729039660723363211497095953332012228537339139310081560270553693197635427821615612819496194096377346963642193188530836187625629180722022984795599969444342653914990453815523666558205298002034933891748002296946463455696814056414393222202526387255564968705916834373076284038554888455677213508275038233068917058932022271328094114656920235898449180636260477261850084734398731138785941609217100177631011642490826388805087046448552818736658165751646530719993156006635565083097756271107939227070247694892128296484634064728624729131777992169061434960116208679914792919076802815149030466024366039844592158501736399726293051299318679875525604380945843458538216606892916790260764814274181341983683785665942174529312389422900983358890941186035565369050065465232994570940104116425788660633411702227370955809888989309075836391036260382599076092874673164066679662450693244591525648606946137059088497321787258364269009009332208229662887916370835369290079795213780366366726148848512335965899195145249103729375517372780279920127664521434642350113664001816554985112647518781291108937417043978625258372763270103276089177971332536393532675387179458200184044199529759417752151461254033011571957250547876841117403443426526698313254178994399063884697916770677158620915543645460854939424771143537256265113683606267898789933328137485208214369032887988421635998879905782892582022427218364573290274029296163600557244738993852150793496859190579441104782917923672709873866027223444481538962994074830318004383037951548306418159120225916120278985246723969265444241699919781635497647305744025576851648163868029411642060151717474769803341080343612210121589796546542381407004193106107026883249982168817586013185043456721799137219487972676865595502827684900660808884923557561975366165117528160099290478745598006812815893965736836057226200089028118422535031994523687867952020111348797912453034607355445831178806128749805256849083531014024088561756146266656095519553507116287579379462563366718537974199095626157869391448534596800083477434728387856958637360546106835083707376905490264893742178119037057840627049745984526759632902304396334033472127420285737508651405502348181130311674229609657564794707201113227898147161358157410031525824822938547645083369889691657345881549097648285039039761933614440457260712627271629049576235892781324082036787157737913623670005993094397187940222247983623408622050501349555299161230361564699508058151928148494132073796050777109675582902053870316963870728907625634306780345671510523143929631637171437174814840813634316009835265746870202572119724223064903310067467530091139866657003759720080680098790080838656047420958539228127804909857382524843426904809081102215837202229678951867930018723459677544504395428707761412938816955491630703257380488895020288906760709362030967381251781322799896457030043974008785157307358629780201446594155808919585314719303852484869856947738232504090903160053047890268671089544132256034533808025729574517805614384433138369199114687117099728034309693066645918452640017123380775631273318385756626391596746747780097448946020084294291423179560769400883256533872024730805096342233603269028392321768254556820146542181248938501170641051119647185781870150887086937010244945281082945355058889867287769164471974593937831803154974160760599115725195796759896101715572500515930066213650834156834121783753069348530567443781076356246014839902598117989144159783227052029214653703337315682931147252882799416977970918900814917068439537366007804952337678454935537883958615025406516096336939998912525586400857617536566739695099136879909783535578098284208942114543581663128628440724747275079017987217667541248583788143745276779606041873447504066307636339802634661678897272633413304947594176109829286382764119518422430052948561561694290500729536421510462928313414993835709084984484564700562394162434990963140494590941631011236823043066730727644951592490175373899948612046082491164771397075597911662331513192470995642304496510709502702221266019646343772637151155278355026790463557683902444444004329950332324320900821361586903826051839554828325642522043738482636885808515401513825250781879999858568742556585497035825659445656125633151371602512457763964864913933627063410554272575212725111401192493237237128736075389204153885161767154106887198484155786177578114435096528437706916592149322221378361092093897613463614358099009820127899468209336531449370322528873601851415607793138637091334580020110929484172287430093908554710387656647790885301526607083961975241425474053588113343057855981824364124871635151752044270705721992310901026279212878114153959221366227327521450413041946309422131479563037373935657619195846705539001829500918305284782746637579168714660480794193646079297778970612469836261226493373259442529481136850311211783638072641122081307455220872268244901121688152054301129886413779703881750321229329607290676812932685623459764148477512420263682871117191178621449922519773023533464429587544370284755740628798107066283102386822991831545295358623732683330090408278529993864130323505569628106517591941060114699777869792835967481809965920729038702615611601922941131994373095401486692613596068932992161557674616457572431765789142027933753750050185130918295268956490181416185581772912406978428777911154074743760729432226362462740266163203788128900154278983466069241369623782286933959264878794596875822690305939459220427438238294673661720398388933195584474631852967803352283465356741730288511113138427058911253335311693730440608038313917662678326017258185961159760635954895572959583002728976175532527341408476656971624466945851474305460786724687366140340675825003555841377829657224208453575587773414147095011961202145980631383015331307765214351321778241963693897475748617723223520520252301377611911689267759501239771107107738607311005964789807220959760310996423926686913710396554956261075809047333636207261107784636330400385769827829618574674746206445131161294334722269794024607216895708758232049730837325844458558379596024058130086002714772928719512282629027148413438163298445654454342313431418753511612475112184941286722689257578479202038225173820081526134516077097562394755634717173496506407341964618325214204884993515767149513591384667757698822180146355096797308393804727390410041234208400428139945944045059755874356917527449065363856451434907261871141966913995976419792303043605701068740379084366227782006516043337544775401316587962537647817356822979809797656938781228361683791751838339951028991590897438045931138379476475042264511308475727431445386975633670164141316240041889032180587523269115433507076745953770771290779110166873134788925311056472426749912825781351449340990908740148326473122784462737910303465655855592868773267560218445034537643655824101375214205098354892496540609665889238075449324556035341894715313980740054333349204166398458599174323344147430206755388946888453015982301432591676616423204265657628792516727815004454271388467766855242999617322526680153854229540547598929675897687682922390270625362016430340060909009881318220215152974963187222711854057368366294537251391478898131783055468458957778750610893378292547142098845448528930493044778081619792359626239596621370200052079966237636645913509589708906747122723198275751210394584644316362751964574043525315927372811949299427827102073556190806905601248486410952929162854164206667258518702413827948633955180699936762442501953685994755275735084853440613836361533071046133674277538571481230843232583081465122571185526877809213677577304875934320719726331216833796853826394735799002554992278802032860896960963252032772607360731408270524812389828357367827806428009868707051868878348492520155446482337419439174402767418639251217187707491038429310045259786671177788494173399012453684667903072273986743408235413609559336512639824215365202601300468277918835123271764839089656749115063990335624777846763062465731132354871552945954847366782264706095480966132109196774958215276487700831959070157302553630587285346192823488614087016720856599981695728817729741495477862339681288667418989140260950794014040371524842846603090154844808811741291235420790582042477577736497355192375647842441265104097867961034508269712178173390724395742829358673744559427332516674821547576187066068937861175534841973099157379340308385785727715656275908758894642249497114510275621780185228517260114130002177945240092129420617019723247065432733760019085635521934057201377324979655807022231183162396236811243857285337099536629347163858945627818947720717659482450455526423936769034893651279822463564138855588424349524989760509403666539138299410180820943569442054998543976302928916243009894759866788632890507148050491438273635092762290167109792803870105706974386843696029470838331919044794312176131109837977956097307854443084445263526687341860692130984503964551380544117936061673971552858128617457125079386571994516814268397437625160020984986531833847616579313349249766656936854217652030136215421977337321390234692104276457124148335151233490780223520759747424622143604485167988370881979111627905370786835342366829722133743147111574073445957285641914052120156766165268121210621954654138032432531029542570962005815740586394165203003658162411144964585410156280598107855956805823102957464334238797371115497091917199319414210490943885527751202552898722214876425131754115782843095224699298231821811235001285354766498801252101410735679592357371374716029929309380644597238963994417486442700802416024785632400625619212431100082651963689744145289778379092124685783863215118867525481973655435269646546967282381125873387080531549148770998753993313884010538911811916847615618791278646821562426588679509159352368088429294974844510862882273318585265310115073484985125539765116974971507156515413200841992961608847741969966030770718016196826959238727209315688644609324254993770548568769375044473956460149623616690110829646134283100986815513160550738247931325456746652328982432606326292801393253385201253443618626912900703177089816897790634764619082245583558341685358352644663254629114978193711635246563198178950297287918553496895283044779395704005197698229407464309345826692359149643342884265411483821647140552506946475536660464184613303522120906332194066203444365894668448658397156665951543215078011046738931014143048007479798232573701580636785537327889186268532971626358744877576514749520156283457275146551115425818787875316713074864254980784334714305100507134125466582201311509394298956622081760074295375319107816443639407575663917629151895277976957671231074814165480951691228743344148303354369921508934147580068875436552378207958072897582181342980513300417359154209974683108917291257879685736402193547700119631586851035652643430796568935940550976820165522043843619577957513273477501742020314952272856606766738405245129857948240134668953997741982039898006845137090378688889324886672426185048141017071795238441461901139951415509266897963855534987716450468703542112480543152028429963045170615831992306954545809869086491519989115431300294871191111482712578750087229947247620744714475260155993331067743280629535588593107060731705455082862092593511109318971269523136093681462840919749075766456347919788961133459868890435668124508716955521549370894717907036930814054258999006822075096762065598101946406926420190962384134156083518898981436048138687237523258398641281695760608217334991511219090937025415200436174979765162486074654337384472927431541409542680692473094179985735976411239812886607224740375268654992630218044317600067594359609529263194407692575585430896823942764065814804957135615084983417094778031205327858507854091824203984383672771029915585831693255049486296907488973801485672179270402061961827238767294453419675404884754115227201594129515731952157275353912221634740422585674177301885309701192033877882996347485342895541448271445025779380091406052655413761782461118700588553777473303275353707244232883075251266272641291364440525868517851408185729850508104294992525418091925525608030455137126998025103723437728183989497681075668422022600306462026936041886177723718929138160439156908026962158036204387334851888283733494270734000539765824869897799480863345665630832791011310523449686474806832951402670877379503174011497064075121203505564246310088706964777108636797006053577764561139907730962797516589757809007280714754737911805233851122091672641795624474533538304518744293233156063939752125150178698031395959080014542354947860716046628149257217980293742982210029062284849972735984315185474186199950562414677515152728109659567506733868127843230340211552479098841386575523477886897167178013580411305864043186896237638329738526881390861357642806167014330728952645821896798383206825534213018281548847845715232210794421013466099873801291190337835857675759057647579720760839816647643675172563499994751281199763351359993839627427005119186189989625699038414811870044998104658879742004005764027743156317237007900865412588107117835399765954196697321672785667202451820715946582127370464523482706805053338419887279252109500547938673517685425064466161546509519364924542177760527639651261715335456789761927265834268170677729903912816079905030903242541305235794409288679092110920620237449087860827086572569512731617812385801571736177188747929349238379093446999038192336127851942598053842713012983926929378784976715610051330110695663052523527009010836908952499226690903645819522469919295389579512274940217883063289390223631332965873197675740166386210636894025582173831040877088927280014298816817944058609916954886457297995115913448510328156426250641951861270265072667330621765709037126307980511994914834747119793324630498683800950607388864264172799882375129712725517026529254666352786991474747255782401967499515697581679762962292757738576990604787739037163384846328791960781947393374573142790975204397506077803543009756698644499026294049262956769303806893177988260105773619750026649220158953867965382009100206504073782873780569368577851254604613574654098434490193729693552562621585948761857891575606753897167978228033390329017081333464569237744831450465161243044372516390022743136826960718133824176277917144556382488887832056539174292360783589417445535815336330084442458421807529013336302825413719739367863117854486993314203084983062869497590056990497553005030865426738190136651799700363101216923094982065448483271127173336386488318548786494294183231668643031131793304224293477507136300685232731014511639786622632460728071719373111353462845760315085661757179025921573956031061299097274699355394323621549466119661737720121085774114037453821249386625320841905273468664121785019311761819121811082981931812211103445475588319565495124700173123691368791425282208731609342518735812307103780402426140348991070517609418736989122587011012114775168100485995195444831680645771961050695115891309061090851533473933673086880999107515975497858144142430420347241291858841483590159652004900987242301993483059086862660544979540065871159931909574238009636970139285489374702149442827588027546485378959190129614207530313933456280517116792638369583708667955055118302084203916640758214524347677595982204590615211843686555457880292911916078651221586283096517954918179656689214175473374553519018424720023611917338030571924631616813600062365198694519080514868688003420054250349952276694673628160458998215212533274587239756407576290847554529230694662978647690671999149747143583854453768708485382228833869629396189985630892882211795541879728880338775234970677762771552853630430570619006391699648171616014559932206313861009281244198216157808871290267636718739244585914379277611504754536515924275566818143253535462257818734151447471337218763180420959079818284426798116403079797151670726246026648522563414323180588901162633869351485026288345419017036655786695607195823312914522571843411645811691264604089721902461730472259255736299680544158031714941752979772664328691181513106143593148636472955485744483559022907855070992635162794199384020295597302102318191503450723673765666585119700307295779709460512695206025595708023060329755494352169481968132824843069748201980086378009731636590330607610626920099293527451483898646258988292811026553256914241162142842129196136805745219131001285272047298388029714910175041583871034866932739917182167906800352157122852069842056849548780753685831420472552949910081972390148089776032073961660582357813368456573333571004855486797302851913636892381969631979865132195918924208046467768788254178069564965747186853906121752551861560110890405235711942083146225128176160262451270856851572497249637937785416930768942331382349798252568086662267529294782905013069184068984526979277917411623853037757420494603882504659581967324380246384862756001838589247489753093328208885753993513656978113095448276391710083203808025036677955016068234715688894363506600916266200681713473199609023011962584242472782250612912160286017327175899555013720404013949561527841534396735851254629612597050423066535612792698205974312029457882140246002475347445459829478639362212642399540206178420620450347692927633822903535179270432097880246063664948562722040387172644713800916089414158281519534321390993225181256436150418615139362778075869793072345465981684619778861865906274737841945898827912772402330877329351661038426084451681205458502444700402367946381810315771056449424394834544177994692545832750856461912120467690642592270029094414885980744828385142673738421831482620777050493296423275504819539768498459588170837416279771448307945828120860518771090131258033043250729747928684785082965852052709882242497948353413644412446918324933127940945067096274614666653473688969525373009474195725069463733695522647498335455335924923677317888850391743176400161627458291580700693433100016153014760341909074485957040907369170897204835946944265552710673890270017626981764501122230124023755403742716032903311800508125786777176741046396879804303004191926991052085077739933631811541532262734840073278165862371151566584837867794101919771560925968901372099809063983944476229837433882949688631730715277149364343368559202336365359957374626364539461765645929944368956660947194391152267429280367385218514343053492210863217576032891535918763676015383748029528755630761154727158542405414150017750031667404847341312979095434245030229576875523473831957691360764113317195049670320069543352319994452271937242891779806051818682837174043995401245238754274356813283868784234812002923228459201357764531772738486714364974029224351286295065166179783343889570521747744800389167370267348809362549005308941050635107616935262250049903809886944057907316690522038330111712374805610945467911755533191985587300469640364039089414509900893389633810050792580995664692489261970642831492566625786214622901277415435062869259340996253044706195327517022519822121007609329428872184100826880938909533528384240091269466158047696405650055236225814577279562644503755240074374507166580602992024197049921122086217014876400301308975992947159963856682736928953172946526366907233964032034447495872318007898331084040709472445186940008026070404572508133494422583259960047875079533408952611398858428323790459480557876731152034705594789272595252551256077664584663065183734199015871501254005807043125548389706810992571066488661168964454183282233386246434136497099534359445128055253293265402850050465446923022118480547922269932713957846327791117492666577551707417712354335113104714150718747679745807291726714730249633788386552645321662526159197809431052349783677410300615110497953843815195352196388510509181502959312446027726396464255256455116626604722292901171808832805720436941804474479696908884921348459301181005845020900681849330827304999145216694415731749161913578103360897194334047393241921461377556170538006613300394458829446822366586714657934632784205335764839572175321603731990565209304697693605443441076900463337892332708633137068113129122291952141171100818974634681855209468565683929707536581394818960150479099584634564152782761575914635322837722777725083954788551150843868376915875629174648294266218707661701831944863780420796933177946152933712155207136365529033974108753090869330048211127483032905600449655200774438437911722952028687211597194512495779576325168480577118916002827244704201691376465165099258353340391858673485116093988159750242153097875751185396187930336454751388236582651831276917354260252802360257107611145378776429801096173080194717948088833876317791026690100939534175498876875417456153360500352125583745563975482427041078581626951353450676959610061094546384881409592004994393026124742259132249376530149378908191980972653034525845028568181750227126045718344087464439180692805531307715027629371510896287616627282422713468216219996522985022379241473299920594525816528316694019816340238457362699799494165881411398226486682300186251223395001400819914744852599110026304988620366473297513324540528397855439228091707495263979258031502557426756459984480138287821121326845847250528651910348153250719179624042791871787790390855802939223639763767572627752220902537615044682935461644930669547764314929592781036705094638108634783932828248272817491891825260170889595248199272273899496759382289188143241975934711970747329651483780645064406730814769281063721447692887469685859971065631995405942442741417141729353989179018612497550213611461447683501355350390800573465312144302586173066070245124629724515832503096320585238257012776785861531295245159768555025084067390782440298360960916759037875391751362602108810753857988242240495966408148210888073843089109352393295230988069077147101392660417338219230076788624762487747921967967122815726330868425001585908590551867115323980755570581400999519316875532172492752276916405515787672009498109560283710357161222383508158487828581820437130918326895648121246743822449932166006596338444152041109138829517233400960374790644536698501181835007388399429216047455303506874453281587350251634849981777942296543355425707039704400497765495463443179381232843672987121955470106206129473665443585785430562506856592288778260133807960653974838730769461130588609101962381153216183016537817094106688500234714802639937946551049861693562208810090739460071457331218422753921288364842189489524906877169112511251019855981958085621694507258829740279359809249114291678760393413737001549722213038857669105749179601267249601524064779420356416358223035084166147474698976560249903080760140713304180758822956927979105786322067139123175479225183551846204033083030819811155672082503163082535157720089925673680135838763966087124736092641503102184351210183343576135500892277705665804318196210693633546327674853777779137466941089918912366921709932690533405171208756451392312372591846547619243146993172891329054944071816723930409847752190587740678503689351578398951028093134230474960599692996492719055252442611217897753873453675673978055791440413603946041273047509359570800282772537879952634399777141115567394986519618335499823005338181058655415528298325169637959139230020570383313538762018796126151336448104632991755414357735261692219335743375643127039323881192818446008761715408102421295117808578991215182498675357881595869923464250076052736729846520837231813003144036829407939242574863181122483421173946813705685160605001022646877445545004840643868943197765634995385873620388551355368595243652281338013490828138113385471416216886466673922313493432133764576993755115360671646166618366573666371880399615116555820790412448497125027558934096727409394814735948265105107663067870388692824467425827629896389061188654215487322232157432880315387986099906018701718348662264582629372865740502858600686797272628179701008551908106845961320455408583838523442077738555030049342385475693375365609072605643920557048652099303803794822905086245250232610116756908451279024804973112106047157813557393433990460596068102347727995331409693050516252030472536022558917123507287751327688446027119408755254850213280042140022431363619307488140401657396303536295673713427820348922032384332807852623262204587363924922181540740353105638352457033122931662494328714057147547841989295096870099239851372432824793801793963571790096991435198116059606397356582733215651190087769058800243177061908447382152853480997768807565127719490820550246823556654007424644158692887809084524864371011361950204050691566464024753784369181857629880317074784166799115788822609561379872576050721031373419741366145750180517768549701382728254611985315387222354554349542521411002936881185174120557175774723315927397106091350150858230776222768893297905628026895479363541909201977568458153838105117467827665538921586671108080544967458947321249803281566521996989153335084336955682392324365244336409679525310059068069549466031881657491964577868883114484211148768982768070337911921828204465648387508938181659832915844453346973412871717352066592150318540164556601500986000158033595713122160159092897809113857249749023762901724228188839549921725488985476338665161814753847849687717476190045782732749872905669163916199184525871866367689512137513124231366019851635534288469155329239440184040932873622772065922733758396496536681084545559029604436949565943432030138882157991004438335561202880652702609339129024016035777080202550545152662428372022020019094287054966159253738989848928872037095687736881169047895125434566985647833409281168426732227827896415530697899777249344608397934221209751282354524793010448784892155581914016357673545225673567821666781866777240893429340690978071751623671395402246285466991160411356281433733538723536446873472251129245883201949683642829936400578981434920753494516164528600706282145872513228083622359377746076189471107974274421733635308272852661743036675401754226558601999058304545629383508371362344420250259336156644097150345593035717733150881791583056351434690503221020992716373438836961605433186048770026388788672365487052971749348862086719784995917826869217666622751998123460096355475076789103865613785087928728849243513453685019875509313480481931235139962809656067733921461547813274409510159308957430078380479063789933846764386957759110311132005924472348821899074013053289907051450443361942721334538626343470557544994978043300553196024615086416957312297938150784628243244553728198421631262806286284147618670482593985079650082372501520542966472134270260333542490556174084800950858643952501806844863093066281859467834520606216490243259883697887928949895191659171914085442488254799420985298319261371779283300086682439696472554217417077575373147757770070294490234379633556627430754899878370672348148635157955322557291767292883266226243208199754472259731248385290546580458829699834288432700480897127019553991945635264779920357106901682992966208180072081334026851560460964559307336590384998564317405111396827982298831336434395218620631829251434048476744995216316805872254473202197601666131412004519445356294749667266232749038661683552725656087349366673077941413658934840485711287294020736963826193861172823162251013595457126352837362436553985655755499370346679738515231235219036784852975120849736055794138203027946733596467918074863336129803959114711617673868616008133167781248477048246820170064220831486378445499615251241592139183157059166370743197505856694725520604458648428984052649417687584240038795399294905456536070161460781973810772045113813856468505391071849602718146319792600141924486309663258710677284276253581695646081210368355971790144676136570720543011015178464346329171476651816720067102792919522278098390849325723029293034518755076158761148910736091886755212007978470321905270556117424659652355594999183412773093956944744208707104241349768163708217546940481323407755926717172085840760325045846608941358424212713797230782698336966880572083107834120545170119577519363185730071678544727531912134384529047670779768687876803070052082690658081555925349213776253596874905637341732990557536036696664197226152905027559478763504372102297533378345350101997238400715244732490147996696709691479727581621339380983050897272414060729830613123199879857525047076829237507534098740978688051555891747548821207225229291406582479210168866539548224120418873436873086927334013158121776791170734308249632567501332696524511686931286499941847726018180655568057738259587871049193743263967154331824207875293782904858795377095182687651826750932802946411127357938148256694702362389927572550449069109954990723491386758663672368490874925779461292699940455334669259908493066521294765858602213774794751410480670853361839658193650111820530190122296325944902433536308475961133622285609946660902718142909479969749018228601130798520726090747131562878888965333253966613724500896293247358125874666594242202917539739606184730029005843244402703959659041163743775815917096347571308517045143571979435101035178828764384870019533859062208607991007484945594015446865503155493358931187043553399441347531887762378486626412209662369458120435895174711695360115439683102889414748115111038610838740698090978536945376872304258821100316226475370062130387700637925302277837312569727275908379901646491925394158480775885957970986891488883495123835508135278059672207256439502243480480399765016166114475081998132668844684971807676323931171914083370522839393473457525857042448819970372308600775736726444996722562695030632859700727536276461769956833154951536145731750498039683180280134859917218468630799219965873322081439452434630070866674442039334859063000254051432361829786681472035728068801930607289358501861935821960651923241518111747463681996566484513810025672961556356920894818796443092739835555238627229624580118893849237011636014331657376109990307851162747580999028910240841612010218670467253842764886381836881255415535623988767059150424538985336110584002115983216109339659707988082473815025427715062747809947836925940244239906702234240715547510701964571704611119040211795045975173762233826041597735473156998154491702965395168467030352886794261800433946706829662570035895659438545727302518491257124169994714461094264224488814707126584539784473899179931894255027727016342839146267978283810783074473873809084544632646400101203569943265212855673278743490872944655114444223208395525407187615429988549135467483638357068811193326541340646663235358652383003414361570651167630172147670482804803749567427114166591230934831842634462863427529501315806126285601349653311696880287773632003708817666469416261257186504793135451418826860741411549388628733558808194245003995380930768875675983006238668142859801474775080236194982061352602285228743936890272411978375467792583477001178206586701985062495500850122763759716632992346563475375632740173497390240698918706190790504155249536401474551420548409291894743823676279624180305897612413710197916195934930111504061363319770127519792157779468958281842956258149102998602352961253605812737354252110435972925555074068882779548852984313196672653338501518920283403274965248004875258123082849588673698261347539039968800526081114038948699298023779238009904741134621818419148992004686554751675202218686854205077348907348945557412477103113469320100331005199060893092886619073070479583791296566750243238895476722137113044676079138949669004871983569879156825552811402550118910571820415621911691032092245364421120147828555376923956093740397243027198189379730195631758074548782983808557322408911808852947000532314024291273788326219898248240048608021887320989748963866203998897253826615293975363244795181652311640893278126387710023308832138989682357465150290507409483040449479545462185195224987295520151648213230210880640209505731413556183357364389509446881751202112772007807102003206061796956610336255656358909536584589520603912742638012726709797794911790504775986629148490588733313455264985532478713638847746712212526114098220889953422766717683328937487352187690990442674587576240706803666747294738795403270303688745561961147955538378164078416862054943983679602817858911700810748123728121436885664319643841002455226985058169314718136747412676247104543296494896193674919076248777088937109193091662968557069535483322234838679913360323832334757212560986168668144108253763788893830865288756933818958815493431738135815000513604381687181273935746505794248533862578748372215756301525505794068892047343006457841893371411095663040238956680752116439826847149106614728022128945616767437005618570954200676518261881828984618112587954122163747620043686047170916612766986433823022452741447775120398567247343614435146476085876863841852567032759805152858879536576383887260525523099264710381437131346224571478680013687414203337466970592395311845079213398695124546901690674000717365658368315924797953396365063414642514335369036619919787304662783597488007037668438202863542675798078594666549842801903342945973870133038040541021232550898299382520820683938001837696041011408279019297991087701389068124178244880317395759402424668580501813087597770158422168425627178280355236014280779359516632099236300908471228231276758495434130653697115694680341526660324069418910696300532922941738122320750214819357999114023678287332320475500644548274174156063807546406750173240648192641547712562501278958080802293678573616533396071657282607336454356904002740991383425148948998572097785924622714430706112436243201942571857816405552219605593511600792549795630368801504667332772578528856744023859264071095690414154465485209604354994166420263561560793005724888117553862542739945412615409387903152123304619612212387178466888660841356360590699649698955168618388558913374028269972229572329147874809783738080428925996321840613221559394548444586316867167959690304163633991968651037086087503655906582777892991999678973340813428286958413154933175414221170194548461545041304504463987656372277746503472167941315523421903430319660742450160079545522361212993764309533254259840417679722264262968045622242058240554335317413956740796712888229640389080969926437589044706237870177970529849082614585951456639420150459722362715567391458060717604828257649089704943272860762504311381948064341965670678114049121815802076062191681553014513375586037602927530782973328884024294176799116843271849212531601090492121296043409451115451076143671592137383115882924649327557764828882102702348941902008455250441262441369419516011203287049731572257026470046615316018730012432958252242207467134945099301610358461687703192400000282191519455330423991777069164636477637118888738509218288917706953758645771139183294660100469176184523274562178226335209606900723022281227842554933916347586180427072831178570613686511404996192024998737317436596355202802626396078573304550451810847572346837569564548163411104899750119662303940058304965351841361732420849822525912143277900644203003302741554138218297628396619360740159618166564140059880352474910572021511473538727848119114185084334284767944142963550116231183906031640832176194615935033241820735348792946846079382234872107344492773580579537445277154322363823548458531094047876420574005772785050080952152403741951928738657141173604339397759658985756197704105734585563493237967493605904135368350973558811239052307596359395151769932239197999345303258081780080996581705346658348516915152017236901759201662108760619527997343528701144177166152698753591825996888768573354319554394515822762377004470187094203693324473444589104484635665651218637383135047797557037761541282409280505839662710029636781914677918918833875065933701685253026166037909299590070060680565952461330778548840306170900913876225079203533082759653520364676201774655874602566821735401011288017096022208348743773781681235658166052096035595931482466754489425440741961473949014535601866701793098946536408629851439980304865907385615429681478999856693434422716676313428227564870793799612339991077267852544083370348585002006270291775370230076336673341525838165688401258206535066781190242096145837981201538467590603820613291018320952856260171511427748565641023997787926151460862519942921251864493552552793323512703420175052742403831750971901552794401613423392299485994996740071548821742393747432210971002807314198624059987843861243607332926255022613409381558743374535256988286900619163279174251675296273623806945129041548008441157833761090751403723559202552826071043185899633171807595621173254301938660286710510063424413772771714228916437414244964864223993806305799494749851088274758943354171650490277494841357240502330739103256118333825035908582225186270022125102659804978010610126215684591690390698042004455065494094765968110407181658026151353250224543045034183301883253325381075475266334007735045042982590788024909056654206439443625159021235326833294486978730799325721238727727571158758877124165915719319720068551362617679952355110876096646179575315534743151863061342957007356724169106243694923799014883287289488746250122512950185861901381730020359274995244915943893229951002251981731044161726380542933038863248290949090476950371714844108686758168880264200991877615233221175724297540987203309805317820079491216080881890462596960592980219932782674583365160231634676453708270020315163546843521153447289548833579035593768570580896711648373723440370978849767596127037380859413071142027797462198682350385607243485277338106602529192109596082380737839787148394812618163693002599144849190161035268481875744991830661731042290233426363710381464224880347320918607577463292581819179346192134048930404807384110616080382425325006077558745114890597090178827604905372511476658069013338812187391410373594562238935346000400770207212201730042624700630267048178378403205229032157494250221883127824398701602616576381000960663653258642327693118003107167913956250054624776088910256064120423393041625457669767622309686539966417956798924905491088658344833036026519377060306841476837733685415017223985179771154189716044824763961943044800765672766853907585773267640253186889634460923872734035123065334825405025297013624623300946092758762234272300117684392121752759145902821782257909849789978453960271238752020807007828942608811354388335023088300100152192990360869102736374774283022999495519162340581044321111243950346170346777911563378574696879384556026098646528262751090898958498122335528163896211000989166897916649573770275759896565468132071089373892887002137062546431119071481104113552962111736164449419528854639420696809565225458179410880567112719692297331056989775138748434133837362297892509483271869915892130571884304010608824874311269271717124820457515559070157356820376181235317729284797052501712875744672054629232407504069692171340664350852689378150093694101613445469321781241150908937094061679401985761967117353096624681735013944012812476401136105505514056993964817825389031363910852094769388499024755659622125776983595665044096591444438042754297842992953246373933312895970887707832490929413142900161241739901400247907487033568553002602591574971510462647618427776250339439796917234332562589887519626797043635302394699054389866661593499885140405513069524023473665358044092300123684396571108951915036114663463274872738313381499613694038432799434388643242792412130687179024560539750034826858375356024689449178865098467456451565673145665724930235856078266420373910285081153616838795348823568316500486314183119845367144718552977625240141361496622392635178695586673692002994063083094493568171466545706555970997173320750282098496972827383105808386826776394853802476216319145125346708545335758682434790830962387407932551326706488431964952169462043297524785025942218369455239144758840406350707445966386575764342568798455431867328839312655815311119892193745911343789985253604716222082854022435071006843826832500195664847595693863429721973559861163880071955345946419085156004931200464305189286603462642143964531023066851641350705104031628632780017538069599482893664506428636989758884063318089694456971864185331152136324561953668319234999501707046272936694182493627367784572313972925683278121728386383011208304365624423000172305168165536913082958953298940101565825564904489335985757856336324281498039219863742750697324095064630273011198951674205835121419619672891214978984119253210079997875137473298449755947490046420303514143064699559104851213258240663678867179384422478264102221877500884980922314435524699871842875033254534880862747043352652299077117000911314062631891887448430434787446323501259156779537188823114913557412633121285197435273953760973581955435116897673922699887855652776809090295674323198688446858975467941459420714585400671131424045802839976287702252987331119435724699045700245871259036364085165198617916338180363523929916501611458968689773386851888700844104742084550400368672930901146597226671924339255626813005964588330875912916516839046758404754350751111951261292913635142149476207094052179957922672140861721534938075806990592953428034164781150033663886718061841746481131087325752607462831466998994202381228745167071118745873670258677029298326548956611119086868614207523411627883867500151391400841829120174485910055754174331556255989247975280461583103742669553424635882417892195332420705137730649306701764796613933900712326378875748471172552674795741912229622184472738149013088778765080916501692156014463248997423835427461057249947298849676746212982235567354798355681078731427983837269344912982957689430789556959444957311934594690337357242119015784991131216725545338844319197126938366942780458088805945241968982965053322593077325497407707028239025508424737294201639623162396140657694008428741189144580242694858424599548771378763834607979537187737506653025007440612846284808977052234999847498390007970062108137985300869464433413258535343921576992846131367858343013649315109362916370183496900104118287995119592960926397987189488797215081378255366522684717834495340426181981317943946085502384681017796235098907882443789981606788184869470075219873115882192154629973803566739215248067062666078116272856182509071025318375397529975582599374150246799437463531572556057251807073660445184978059566187349231759314254658373467908734756422303747367515141794841587566863420672061240303552867021835482238369562285086922815866725164223389876715184902487251923676396566274303928018137707515132320193929037924426234147321686648846864748122004018858787728276590381720449623850096055310954689982500018505633450419995322543169641463181432657891538282605502883696642397869444018416010537703477722499386783410329706196109956210552461874726841489432694704352678336968416658913710837944119559296154377401156290697588755466781949135669483923084416220332202447329371766469044911964726089945279477833195780299042297513687690289528305912774000478913771308142170987961899321198828435309510403389478808681051157468039050372908355860297471458738460069640437582621219727633388769223593520008114510084581313418855259169684967499192000766580122779281668802247106892739080238119580918459504403000365877764988510439075033783539781578988829406649011193112573141879144704360336233305732252727120714414536383629896117752733051958612955591356349901655340520231555659147029381768005574350628857168697487854221437002694457644934106428590191931123082086057659518103178869193757566693472488181797112211448867534487182398775057053588346888073605857956745211715894926601075235648752640962781595565861727747477690647108985373084483443935504827952847230006980645088243697088200304427837944132275112711531448253034309492014150315421422556710830592412691389933113424944386843610460617277228933103714621986087226839593057247155526077639426114538242846890729355459737894588459818246481446478430046167631908793405818554381419907767149454146237373965556847615335775959177295672163658470302019424713068741894759590951427071176890122197472045146347130825430853576599232608023960132270497051307634662155021694439349399410920984281129232471357461253478635962516415203156080488629221931286960146427058877904195730789864468095801511167448579853808417793389124850207266705986609422260503256200297791907002735542272579869741063653788651356289702626152240938692725260193738539953100180149294004592608947790588749033878152391475519197516742079844773302274387641303622864725581687645420418325266398300515570395086365418201915398641070372235146238087326491730115641427718449708706227481157460179418239674408534879299542486329214033689691139512191501827746290780578653808898191249248684654022003799404963063606020528088587138836644702176290422417726168656877404066123323963128889063265609546940887846825520001054804020121207779459073419034106299394344886331969661404424455238478124850649504401774404683318593246082414562258439147450825959735430331612687491399093187303092980082493525247831879909226277548848353152421283224179977609429534585459533360361162975042193822473426523546655020866882927149050796830811993393372692629853401188732411474442689715008713444798324314299514285686808264657567689621785359124202661369886052996079243683578232258822601622198050806484860435457035052221664439714549350428123621657980677643946040891634690050805419578704787511020615792299820104435159344854234159678398969008041787829386473249897007606552096040210231859102021263617115542495511756654657322347603608012703009918473361994184202397997626445592166480705304971203786037388536956155294586340701189579466690329718393099606518167181404205620818173819944361946501878697564010681295112207609345670056982107694219350575097972212362616332292498301559100063833859731773880658371375658296691390847997893118266759028926740022046520963587313923493919804466551005218069400892827831112877223682690141751373412523314149276888595527892720029292527225084021225578815159614051247023488307011945002190449714185570203124687272567611038895182721856693136645765289802887493691559722868027420983354097866432537294174464972189834824042654606261484440315349922240544256172508153347810122396247498090509549777656585864178779742548925223129462428157355906663171311478014618900831918456539872888726191125250439757580510299634647360548073246661795086043262603235132545079815264753014024320555152416742607307483171028343288004586885474704973523824791354113641384640082579746034352785391940730991092060185917241865998447140624169464054781707658828400101453806299622966165074744916480272822880476844252056846357764724951039600365369102287523498765813826182144837058498814367089563033948341812056353713870694973890187089120982419320825447436775406151631174536906602396540047751204424313452641003226750089270908631345303563918721207713276269986738304150640743684655631891248762415221691850910111928043997174588529586486745608565851021050267671241567120392440635609530125473222338166819365703902992506088770883270677810913135775971417088205108599750385330979447687946470534743374887811299841947504229873922277745961849834542468180318352521173780626346476227241399627944020079087472035146136337783001978798629224059088365383268311627317442311142229194821189485394988450662880138924069194661962814645392708622929699917845318886253755798081384116372534000735376999004931899158419200443069058629656800045526964334348297412225107420150386741548702751321352999817177786004152602744342982304033389246745425640860170665452997233851964833998069735106186930856720367161843240748343593628567052369880203010720149710219341873396179832200388164796451826647480409081672164263598711379015183996421879913948638695938073213555677287344355931959113293489525403283897709431712004798054496236867710728487791003768204089609817304430699428620728028853115677207054058289076102167066949786093096494236801029160350036708090663209004675397528967410861394140051007766951009463304005599987620748614493915651432241659356819654280402305831625956829231179617722052729302933736259749233407328224101090749434916236750531005370626709395115711337195360606080992857273436665343286158212928533845150911264273581395532990188975519422773786276564548582714601592469473310410954257800536443628461056272762950860680724836993700905065262370323553534216083878112040124939663435721885548245856837437897357137348333370520223898224583104486124060483343318230881083680889945876355505953164076430764530949816977955266209628476906289321217696717327004118334921841341135992685283035551504474422760635395559920574378080914670670883639199632465459927048664196187632327227292855089577918957478286841877572977874346194629395292224156272925369341768474580543676991029155289937292937409050879553061888388420281778588551526099261836302588376162661824614272219960540009910247229661328731186594880112155807186429382354585460182465734674563244436437809453882180233824972084367628213861890469491454790998970711718808189025239348302272240629545832972113054011691220940362173152492923447645801869007614065350983405141748102505012537260882719141873178506444665716425955686247826457656556130232024699292552101840898019717946092474124348300966585346056886317048527056243199485043643059117155750026773348613703835383912832778138278562023422956738982754396445522960997435201612885729880057651857653162657981056515846333239906206924022046976328346305624656249731303212797000411297755706797385160205357521968464632242979497743590025089642081043078654590766084419398903963102209674096240148167954620142028560137826707811996612052779452552081644930277637872964715504437081983393899065449663488816928525911097521201971759691854920913739899980666944987273428969283138803798947326012380540147365539168724454407299209740542666954453210418158602584327696875548176274495729198229512378572189355429920787066809933142898513156581873144692346808632202619166632550513686236638071413983243405939974448199175759564129637121915463725487487574594623867984922616780854760030585805922221914480239947123889094900946168106463035670009501735478210371035022614919979138172117869343500304404953720745027373702071564834778326987055535465287594146926267915968463095411539335925848486694015463870101160990576197704010046715739602145644222504504591381962331179933687017272613782054711499845397565041228986699177539084633713816545262120758408533440074039030222462558330336725087899399949597896340288504435172390064039262890130953679726480326066846204394515111371036324697464154644358993716645907172473312832132347342361329560608644426058158861509343675706019862207418832821650478222998931059219196565008429049238666096071256131477059792139209611659202565647809164740642790681973566156029399286968583514230077714332658199460209321131678499497287933506149785184490184589675556808929077469617529909448005534192509455786960962050989170901533088475591611191624508939301476225127690927426268012917551844874298303975879076018353894483541252268856766583701855748092627670076248635475300153089768131156806062931264821541719932017226784204995247432775335228264114607474381264004699586983562995445311698399772810066889857848053462094771234146775499428565021903694205019833733672019239558669156996803733205274626834320644344451649803274973356172604461128613740591468916422526022620501059551209716504917113239213051469107084081518510567909826148969502430176435271315168955851090387424201468889773649924484898843804669230349405656085758207918051455041441638828157977213394329681765356932581355621586149858015304460175444183844441817690618933775985049408533358597573140747439568076386865494278816684235971159276731396924460320074142718300609394764818989919064416818789830644292989793584372184793309778918713914107211928535067588138615018662767182987357458296561573564857361330290394731832210345034549129678521306701617569223348907587667189906392903675578225812866439687166927100081522579343428191244457089497193205561095915615701801400791347620350305798154350273588960492410975655027460342944870782330732762798788202838276663836006950786177242706129832113177024039466690369993550533909968219210766736161387781998120337692027724599955099417398678098287359234164489901418316352195579458106204695067731783275011552647651852740275294499083426053406809283650338652406553905979663501076565657031890048687952710703848379059238190222243383726070851809482891845334307558700259756995748656625365010921077918762742291706332227259212802377410017613948720566036061348319628622537956067475223757818063946659534015878126051673984750507810516987486398635395801215102161058769239948923655925224103890803246731173939705281307482918870872173169758333405082166933747557571282558896319163869517840939509192155495069995558185617399265266565250287544675100853401739147760723738080224311177106097877210324640673106785508939782757636922835985916739584378861344268246772341140442235351958349471322419660351826057466203346063748587509486014021597314129583511318847988192954696942841399619859724320848523380997330726829990760158966509048258413633043290541683130211442696405969422165855148688937769845613301059327927345315219060950066965591194575953557100252697181198324004548552995004824824425400010080131267616098477267786314887837729507655871776466781642193179851907310155377447822825948685903305651711794836802608918809277259669970405372607319156464422361525091099136376329921531143746028991882361442326109167836361413078859406864427856880681194786033995269831380759072232369456548156714289158867589822830628096909777522785968482891526945419835254547354714115576936265349629633668865052835058328024379435637278863277752365876967433345233019037617084077198261361456391897427136665156742300911047093210534963364172720315187807557250475956710892235573232079168085926534166786868207006898723868669991689504563843847451504160582796297735164471866237108334398613293372336110111368792393664430635265560331530693445678685980439060089837397385931351158474252926076995950402248091915066140607350407213620337608718273856991462132644114033031217079363832500452315286879123832471922509129038196790572468976287718240485145941297535686165146025343036365293299349558974115170940481224606374830180052953143299583182810537360885979030771628493618336026215629364506753360983095009986922952467968931126040416459946111144711469299003372638214498883113206268306162204811970263926476204995272258856871979776597557055243713298659641577902177576386672608640795748926780398869853664672722903708883650956764758703126965008024576431245846350817425383399639669552848792940987289121167987214557937306323191958832421425870291580010077826855117588926222616594836919454647532023785003550850472557214319260738692059793563494265686713191644489433168288366209289622826295811293085556215061536066116590957576290933196498542027331242725657999248293607039730220698337887396277996597149395884712821512223379418462094624129326318073650570188962211063337269644869699450832169936184922124717138955965114228249120640615689129301195421867750116587302146309772719636488821918280768609312570159436753271308281912702184368658955685692768538781253576653263778814974051367718788095759627965480703223686944503209153678869954236540596126716526933322086243101087993599171917050613031531380873484566957030862777030413220492964676370758096488639848918075585010281463134476009274815331517017390625637221006964770680818222764189971107722349222371469834641234268064534914820513629906752280221611194777225806141931044533657268553648765478288811279579605126800195237179182433455664728651505909592721365619429314184018753827579604980215165006218392372011634450180772489316535323418353188119210781612669434337944969628207938308842849698946759972177979163142879956722454698613792925480407769756085666224511169344870987549207152995467672229418308151956768706927251468075427775623208397857349637692188082278380606648119553163439168422177046060776228596409281704518473811845676537824274615160921967421200010250448872834159800045476588681040304785897086891425306830761646215699719473382332052430013867723202181753176442098346470792039540638945377020935829821632816311540838207172887974622112917999889897543601015514478881055213466179872604905802850397827699572838473016753495275026977704083181364700578802471866479829663427563517070618888944753113506421054442739336443862593262955052309763126944999352222518028586422835173778168879779661722024304471539645480352104595620442285408711995335333266058279054955122102229006000064242814699385809166016252390721685092724741514361927518102535362245768972750460237384705326810581338304630609487768470727094006332104671290033619679860147515553898779127017128128716463776186424092872094084893182201628424153011631757653342666252323082625761125996681517890422971848376211953096397928890837937741284164532429106519963757395234820749741239714412447850269080992204901753899865137294335867084502991369058533163975256700446319376838138637629949257390055162747926642168730133177305821165373321071375890750085902625069543708265804492630869686204198771334986514409058071518765357966246579012772654967534022665768702370885196272046748819457410450082851890578938543800433872373275500045543494959174593125657887445303058130684521960478961744722548782700457794966441833788606620446044467953739671691622234857786130020837055170083367978113081991230421197333268071726582858580297441637698569810901443270635166012297187284640817473361598416612557842745897867593019283486836908868783728864805735839070054689086461192361026289137804980421593306062945757061249478626439903723213889420730763904342623027774934788457549480599762982778179048105142958494361025877525977838160270275325145917535251730508785216532220841294275332393646185713897663798985421906772511358043486674212089388642056659560833914870454106433652389773018380464766520851658609786199109696954393461431426238355548237123953909765946471407942931369860923652184024391176649857760996057591976022379114695536182726648428381567389864801564810730423905815609572223179026351977548036249520249441110540125472131923477820340350333481354316514786088369059111508276558738513103696627157571310073980299541070674338358331120682787497012862379448282858702785514944841597877988769225820629340886747686862495104285009337562456048302905649473900744808973655568500748574564395652842109849735724011071997870410860682158309113088690175627585552230862961823652661672305905779409666295849064014560859788596739137012822673090793249889468237521130675560928762192333248295027790492594908733260427277207521576630979595390583931944216528993805931306473934329257864088799821448702332572586208460109868269076490446234175876909633760042104685557863028782262183331104250312015927289484766683519017633671211176732443677748848217451942948398229061180305629197839056869945796283387555479796809668995111226297783801886291406708386938374338130240598620879686451623716820552214674079508932398899296100794209153836297026343137057499166872296202992493418633491919928929220278270150353819526091256329646072203100838554955916006793796759803132231822013984874189726320852020634680567262658866743611011261613020718807955184333542376501218599498316952754771779072805935948143137929778599507896312277824286572762276826261414106429845506572073435447200753096684909181065817346175929036821553234418413704017569626935536357966982041444965400593101882434388613745734347662305894901706727922842605301090456330109073150791212342170743805196946204536680050469061114790952938138468959225772663299997733301186972169187972703595292264598795653931664851279756347713212806084229848032550611711874633831764882377653859054639207811180760193129721574625404478352525612364523125932859485499813273580852098799385202875876939661041921629156036521059732916794376301622960603826019455391172360080417286033654571965146550252020408722684583613449304923317902096450121526266045893467368193551483787705335164693165123819005575037816975708581826941928659671227492742346205407017735472297724027580630331945557851535866448275392427460348177770581053097849807936826700516831440736497854791063426590166390724718336358791784142925330061501693954161773962668844669636286239406564791777226254073881958272349441589061571489648863418807906642053561859490143047001327383800922376400816882483533878565222330776903897398244776099248621589338482234569153261208667855972620284783167229135367234934279802882160534862709000767040470668354967142192291275954111546415391008986926281978020767597705123898900307318463956930892947117866975321044408467566709750224455613257199418836033140038232971408890667864556764841292919560866643995778351285565869851468601525269585618498273926937326302913538701466543826600060062832006728582948915941320472450743495685707541655947427494170028150630255813677669306048726396680465305149550670920773564195322521262506676705221059812722813846587945479155138805064738032731458435607326766413049093915466838095497513074046917159037805899374805362409576127345165286171271992155285328625276487483852735731904976578385973170287005436428066439312692344282743532039397089407239189187794884651871118713671169609720581111126757476078897350611512182474835866038105483591494925631204314312065473718197652276707963850623978244000896636624443358027298493944428226347546328678094061959748763317444202332832525414525340305963658356110127372350191060727211017559914156294915862910211043833913236978312300706013730861862360878646674647541680961049791685250072550468967920079541902605938545033009611958491768441770288181386609910561183701444136678907707417902342130789440177206442999116766058551061853821900523764217846344471781578479407690796209833476288778274980906372826984285471970032885932472421831264643877243723057160847022115813942333324782994582415895469524303844316309818114495428240182988228029140446770307074675837614320198225204275320423746040684928165438603584291510372083995618886175975576053410285908277029863873651335019618611407161481432091620305868788142966637066418408803934295711439889958936351625395013000875483176857601067845576416471613557058688688631943596583577654823848740338140978402467184480946522640542683701587486804094276442155458062491477576785012027093558969129746095230811076840172703427396607492670940636209699844915913993390202158695611101460582640713372118285525525813631326445148558780264855705058868154127008338914370583715478569022166740238248231084616492857844650325773307765997211105967657482461269005086565273203686585275388256519900445040370282328082454091609013924513829238420501768163683845434294452305047426380234440547283517452775927660093363794643618399327373247270349937552464851098596341646900492284807195235145579280857814479557621266702907384662417924884899069591151305717059688259860113305919453862805746802015461646148272570443192997411711600539186048366873499102608141245942529417334048488006503364469344575797615446928211588992694312573641269218166891022809668978471651894934583600048962454616493160224285248981805332868184278756721127960585946517995787328458769149615088656185865780683520263136048135094849316947985066548825492639769622111983048321384922973942365391807943124975072602392888845385856157493033311848507633359287566409997684613725586066998458785855215951139605957867714878147697766704264519167684525579980711207536605799440165711666847045153347943561467598664240187185657827628184132050911114386668428733686945647807244460531267789579123463266817988422006980569817448331294199837141227900663506379416042503906426544517154517368372428442881757985625809020708934236267141179562195724724871195666765556293970640280484547610895363561679560331593149887148506329049664992339723580918055588824149582773823933432685501289148910926175105816899687819090540274443173912948848731297465025394717510662170327049023833747611395522295074622529802905161660044834252526441546638272534911780529375509678086408506434442290218433981246791574713227218839913545470685022750299382323473838859604106050115422922833082010659095251271368664846695120095628531912819352194480732917084500379523819491130504287228037530043455769623194372289459206726286571870830935453311083976682784275279847295094166113492780481112565859998739414383813137828676311063695427032742241544327102475472422286405599292418527667417213334727675388996256600096267695986108270750559010923629300901983398502184777153891902386221977585201797615240382998972163579105318060440925741545311356045586614250017917581235085013466855610274088013388555998652756565577423849847739936787882159079463272947007388472951776226563993707192193867088903955028858790230867410986392002226888744738271215768254164567856901230661919879046731457099641449132244229122965190671375547469194981520295767619452611226092165757494464278386829176278228310785644106732784782545806400626723029946894876306666497051232041482150050732977599025563087179763537056655548334136519027284770270190427279740452933092464014013108205314381979682915293903419809366960674592976518023433592516857783146735532533685408091014508233499034689154830696493934516445806392054630717366041502129212496064900563893377861661059775322194138410345790625732238806526577324334155743730276266991804516925098728231624272867786180414213301739501979760440559973070216346931191056049406833350466669367032628418149402798382342218365743678401541431255564968788533484767843581708234657929991038809506516054611613306929790014469770731283324667169685235303143961836508334531666344702399888839448166192929009365584217383614149484300930234456620554964893653708627218544773335572218668284868507828407140519864671746740501721043945048234573075920578082886709650189653201003628547996652523410679724936234757851485956659280566203352181434695547497483224651715460386162972304072109054682572440907364720192029704204925056722822011319056611379523963845235784502424827870259334444502024549426769215930396509878105693695500882710737393017252781517595011563332113111922478516966363992271023788648499327834275622431017162455220005571332386015242360306808811078456682800761749904165757294893978047655811099433529395096172058291156216238754094239815126693132896085579832656256203147365838057936034749868174887519862760444859387230782371125276131564333854081650692006590925622445680803873227780987719338693118673381227761883092149366616376914883830581960013988108102785712086406833428279556739660082527744396304699301513492177759476424086434733107458597492210793750241959383437960997793295877135221486766119460564507071213639720482336458775250262099854760331123140177502849213436261717665298655946943023953405040433112531746964123891423757460312971298968455571311180487525613510198253680959061707662278976959143772691001421273698890926883203625089910381699415377266797506647971208686897238850095826540062856893409234084860167117797794717366226642360977520709189582206943827779976762957245877086176870320087143674770598836064276319278369604082735604683793244979204086854193229537866264940056951170330394900162369053072125463332590597484537449903500551448445750859368303169069427904495937341832092186003853477433332667358789212615906355830297840146492342464592764363624222004598478334486799753093049409982246299593447530824712563353507829296063516612421521533237800649083591070427552495386974295925008088296943507136966831489092038654177887571381222862689726087627105638364983795775722288947813028760398897227256155057001715315938445819641603880365894712943199435405141667035583324916597226826932902934363263249463501410886465333922073050426976725686854654905094929857402788213322819516891927643784942442055867131240131847468435944527161174630441643218867522615777701287183794851556848192289481238962585039166339295046797029375750053957175232984602532145213038631151184623586716270107808410631794893343518712167283534829628878551107323637589786438295692002898567554665972388881705882000673976433147668212775766746370855329697195168613868276626761326562675516873711849205115028524678912147232365467672728096350489573793188236468790293464889229544519190613537720070512328763522505494659918663241483798970076093291599559880931572516387374397676258263557904058314039395851218540444020773358717823606818957571170234864377157267031075360515439841254532934631796216209784984075301282455538956199940429376517770166865925113836880160358509188431480655670118874555681913246042248708811392739266639954175506850599108331659982082772372640702857004294794180340224958126319754742973559215109834767618242986440281615573831824222735944115372113218428128106310050542556364779149008282434814440359419437842728532593259995483700555650714998989535739151960266638753843187349860537217600373179313465137600128623389921106513640936896349243411982076306369409868465851605351935110210554901474112384649402657175861134057999552802415921064005067629318921251537100982645125344178161909982264360537066143333201169506968952308028458517728451188739844704739389151572001767584964174068685743900784967500961915075066506799417147213628423837892728234606530858290236080176078497371446219059512183828072313152366830093868856463395368942275856688282939290199044219317327936636342913771592101543251195272234580849705814804761748980985452728090637326204611842515625472724603054474103005854244972385368909593134929319060787986828248443854972744460736550792472531688418826088606297504311061865830164393026158290867871699672422365643072234748875057790674414100497487934788516088812014455500817402922292825350290917201716640161953556288498605493100191392604991332890301896519368153383865890958423425209524221767832175381161819564410179729708779371132745770371814968126856587304775614244360500739931613055704987877689766254562055587084116961237676141375819418177024876711258447103541988733828013965974604166925934175174120140310454645801618416945970332393612712574041472823290843634952830615813754122092619479624666332874301263324352520553846471354699774953328642215297052737743625644208821674394285736515395265719993959362188754025028475352475767852884949358538959818240062988078439195997073950727762650084796185946848944534338020259456304043907443943453350512071262542553287490731193978755738430880948900682361349743185921793183443997010731637214179631869623169296498890188207009779867307275457634089761305822097273207647866200407818745896551088050380301625571911156697418302479628773266334596573416014100516116372867940789448733652602036372062248894153782854303515131136400712115546919017042864802950143584152119406608584729720321880240879397438124869785335000843771740476594389316470610874054662776344562961743740227165285302047863227209487000201265897688366770325497342689103860723898518994847047192408505159046550049115590038734886112209631571118431512220112799473143029449110278702393851957440834422918050340456342632688611960453527716272169863080063688416817448553624202683451963341724890499943344093222659842478476255039107160643000205648258825588561145530935789062595970281332314198195140262658912534127287525494996543229577231515729751206647944853391579440606046380748449795962449278718118365028539828363442510547408506226878420177104184681370060700108649041134086617609400299465336413398236324723985514509375298155006736340798933913483549992873520164649875223188250021946209192977165551300465258392779926926414351858627982157522820522103316587707100232597162151746633931038374152098558204824650282965377163250863490439353822797496659774814634627244849983048267469270261531069290416534898975751600893116304073546101274262898903512224090662704322890566894356855302283291687622853813882217876386081258632113820401422151040206321119195461880259715254691821116962593024758485343319143502439953385551327839285551599553565883800772422692674418984217192821095762534812746488599411388610556234434516935219940228521729042836744764990666516822196843419548095922996435952409936765816662861520304609519430140559852743916588481722759596860569195573573908447189729416879275289768970639360539526301196934499337939352262577901356869611535626795025426438842078131963986635991606743749917622710239632549731793967022474024295544298219449444345794093614477754794223701400194024385399808037964769781832990361961997576946792304317890290576501084029869749368420224245998857238134400393711316897811355809568914397562006059383950539905122639838454380325979244931469519337070990260162896982983518392489980870647334882391189902457449033365531294222546963668567333104122327685796753682592906690974959610220112166634018978781446520068749342996850249397725263559032487339511156973326406451040576300671705310650815132091112121093067132506235257429407502279851987176181589332497416738857558714194734261046635439613369634351618918277030770477708347810020723022070717303922269971504570196844643065228301318613589829702168570806945417729570255894631891928968415817672808396820061627626132771591265358931097759121883909185823875626260535798189504026702457717888318340534320168498029370368920976654579632913182970497943329788669716225215136141223366715511675706272828874096275311208060689220486262973619513960133766364071859414195241523376854086456610289175140421823788732866985321820500930436509218494265466837195041188293190589500462776836932328075358324614315246831163044602527736598913372384349819099546934353662110244863778971820164013996453770162123343365999611071270841318270670093314168834501531820572260224325363246812798859949021408841666207148259875931907829131115329813825636570586938425527053283853783202443439252938225688910151973853739262603886275622710145666999313430794919414954016615078280002308720625631923417311542680598787993601224953752048382029013244359177795421926236779349357313037386808688149167375626222757623630444948344393963312792530034140418506537791946771302296076240137477560635625346332655987421292269695046614625302876977159433070969937396210661270344953345483434285278099396654575900202876260572110541003849165981940986112582595966516960623988263643091682921474264417210047530283584325251157344986319899968045769516090917867019128259912013312194917351163679439291916719332596221013567893757978097777752698353385148149140478783182803121818905786508295407219908844644256188831980269317416510353450436258970729036348627776552161819278784386302551589828069298032186630443202013888016675751870715006278500727661449268582624436030213425420776960152924363477233308665535266595229466490048565437738165908252604903766683540109787670818234438643397413037128833561328822051430350758571914849075123757582898105974526334172414203496614344887295873436555730755355692068880493077406722359104727750474796790235263903719188114704911565421078023434014367042864310955651675313292011357796984229022816253117990026342211152525539752954613350405627369445287773025876319080919707170434265712273490688496346729319291915737897575488765000552115378066122511070539075331855852755500630124338095492348194620005146225718287514042723930299821837681802707575233657221173380192175201017724846592278797836000925028813369496217182654359560182601371712076191519555123911226443169885975303041688007378081339179592852018665764067611920594602449333285725929484046115616701208573592988816503444663094683939508516235199348328901135085025745350038860067669631714303775106210842279703508144436441516041636375977578002327088411200155466641736150169556566854516457872716171868688358769018578820264762802483605956344666306932337449512328044494114649878542027358853351031135571023885184455006540699664544682851910539273126706485759700210420195621760886490542699115951166402476707144546690358017257329893889044296390933325215640212898648871125628524530273370696179455587742319950017608321105974058675700300583793687355634150590264053606150078824218654237113375654587125929401462777718025092600459844345227011192606936737044201096336456111436849303661891353285407383160163730406194901808055558746394920988413280073979528667266275611393036372410507231050798509693896316454220338933398033955390575583862069310215743303623416829904925562171034450685261661659046166132021471802223519725171462321605307363600239565344386578695916433682218081401832674728623379194580416872812020566766875729174869861042374243207597813569668781280215521847592036375610609820937481985726889952112676711023124024158349622672580927279651373961367006271441477912671535731197927605380427086713384432320139633521996356737160448827802239147911410406514313040793730394777467572904913951521840841722984198964936248341556265817034396119669011471613883721912057230034026481476126153030638755059944127595272061240358085764959677542369312430462297542013173081663339853503677187465845087694904120998033444566047335362466457212461501620861958550157213566106576114417155006983518614823630314919976031408954481332215219709693914175617678665755556562740927098068060633426817076498609778901041551016748189365338732662809304940866082456990974119268451990371587586529454375252626226315516670900178993536929806469876201257504956455698510376558152633127496969058742215104666528486641043716928236849885541243299606274483396092797414400805474542132108147313800447308406003238288395454214772559281272279007709974974151507759272437850604752696286826885089921536089847535640948465000663958883326003933520362591301214227535986595592748048746328180599567776651891306020083575630775725976296430393366418271931342690359227224280349721746589767335408759017062463476595055385016460978873904415031598486642452056061166683925968013034673272312064520482807645028668553587586604438179433932423356648827997475642249787156657440871987700340004976199117884767299671806829756381290355995015398448945772675500429426173052931937545854741644028783425934607230405945011659715233330910006731301972898918430896783740124736821160345777231308834357479054569219037253430660851376121119751828420773432877026439036773951955661258272037745310291529540046087985474945829648611103548184117093972488929973708963254173234302138162491026530323539096916988782074374406284780088919565005554700002546914586508997525025163567443172773023822355309025107919517692169640621812138560446489914274838982925616652418148686875674321904439356601843093052644100081859623989532148707830178175062240100037266678857215880363059337468161384778542690440409831896462711612089751700522469986473683595684815532230770501188055578275681691387662045457138595184853000485495939733022666207628861893770298038711895800798068095987381482266011703866082547233295225115689775080220399403869066260366855641998557089454336836717859278487780380900481309282529761444610685889829350155789241762648319900653701885103071699744427454942718784471973492667003559234445038850494443478028792336695088462092127044572051104462399850804563542262283090330657278570078761898532411584902880851951549829353272091820372066932854757068037170855433881258751378330273716865855757198594985401698056707987694187377878870585802240751461731046593067706791168521365343550588340810369617348247090139302016596665931887040026734895430779446241244901195784451269153037608848580470923518026108562093503316814112292913819698322013813585450565546471176677366789900262522025422337320067648202137866314373895138212594828341199393583228354388338639293671539192242744692917866650200758639609725893319328047041923360471946236677218087667235104878814258585619965420758978918636032765243384330829361509235190166779049846455528924824460456587642525350848957364938086409119946111396893980292202778663807306648261687266481076115172270573279051697121990172055319472307521778070232705644023074110623295755621911205597302649772571517739052243112645395448135964669606185651266339208503964010218503135879187437411027965725743850109820259368769715773030556340211328534505896993870172631569356961941608182762354012838710980435268905970351583454929334009421261206075246376874685166342725062719816622368183334581427064005280386447084021168991339805463593613119205755931393785624850313155301642696143587841608812024865727041067404547681068661970408883611630919887738810629319888736540396090502959919556455072585296193197820952070962332074666737948021103155836409086894860942249103400135224483085254016113773959409189950259050277909245457359409942235318135997588953505312416186719792008779782888601931204017502391925675861457528343185318257590867212431577228104441107625488559427573741975508684551887233046942148260891499758199560350401824676231759424366350385495140748280378470819785434689957926080879158700703849495004575789758218788465744632226991650577007716680302991931111657157056031735135484541814432381331238568571295011914137079398459952865822411193007194307123872492129284972420524585144252281178491983613453916249268164192930054969100168476629224911214232449286005221167028793310094789491995629847849600644899470583834629486981380117247378311869599807687837024357943254929257538284705947500353554062737708813217047618825930849921106939279214767855363409826508734167119501174916379997288239467697175731135015623179552851271930152848832518344116703025483114426569086227040692188324911768687309134894896159779861733330992718462564220504729533775498500877757047034262030539385002067373841017649438477775098431993928428546276054755289908821147668509135758430352831387475424270322649041715013603772000255819312527275220728356704123736123497071768030924933200815257679034715366486925284657674566018628094100645823162982534220444197919080373808739979272899981026829587345914326630255945689036989264547004257166349383649154236697685613041266717851880681170477300414409961875929052314433267769792436605867708741737752185149328783839763820073993068398961909298407368735529259201177642325681000142833209396882199724970781142227845861700091509603740675215458305353720343656878340362535041478471797199918301777349965521440117226797878349495977014319945711419837372040157118882769307882727715665133900013218382172377247704726172420176285755159790175684007889976032598005030973154133453016108624480497434560278094239462521594275604313182282923104991908803665624650146156833127739352104602779027655086130842529435810732991554692917498406985132697423892626722007194401672010439612516928338551202133799265468149437985228619450482304350229244846797581185083961777169704126765014727428516334535567300768290856284706355211935772581251565111548085779391228501326432597818629093408613931504500525917002002425317113565412661096427889108124516453546749671089453435851238551386006894749122307729885173636727008222931779014262984604721230713638733190404664911451134609573584970782357240512712049642686776710966051781256958583994416913630892211384973859984154135202092206994618757748570380556582376790135770989056749966325495114303875785679533225716300877097767721638862855130226865147088870931387422569126218336806928239170575895335543675407997566597991878593935361603822575372988534908093224840120444171517187604899519132397572360221606603039473775938986664153038696920280915569343720286475552421598747167766305173937470429634815043479867794185007104320547183659543218716880998307416660859112301265241579889116972732951408887890970734306011987253179991302906502511466421930692098024512990337117536404119586737881182890695193520232929169635153156153562031447518415220616629966295142603572909344418985214996975653260380466729150609511992550206871079770192127981209180116456685959058446926347235640905951644988489106557131781284953591359623055753052941431549881442139407916685577015122739630480354923511777051999392499298819932585932294239232375824553655506203338310340268620116647302094113610876405081911689960977556776477983223325474995005674571569163541437582424598001381039802669272633514867421686569018665134349736578718627388629947502632713922401639700521450898483643586543669184986226187666010217755943877186427307938018476102198864258330202818631971585858694901688162723423747315955872683621223163910559978476619220477993775940077217452235229625023502889931251376362975935084371915613394696360204236886152449115715751154874708264587555248523676435796392748222952545840181630651251078052352644288025524977736391732473442844856092474052027128075480317285455406915907954987560594650497836796148657015329760366022999395203175754543577334522159867294766323064392768808555383179178957666567992553696166651782770151498408695298444192228586406337411066700144354293126607546528982793259068651161388790516934601539224111772361723641040192677195752237063113070045879821736315083642950250065664610055718346205008593514576752761692560619296716923800778619709676363288768258677928506432147593101784674618479362602521964030502318843906533209520574171334413459684516640796447232212650908345657022357188873138181013761666963905997863917369704707840380904675984170055973373690614778594926333552745343525010199020760735667655137076783194384118035221467453651190104103384484356554526836957008170254788643970461868270366558139442684424852876259716274385450890028623319361145725949537372761579157689998947886008272863172956233996125711738587453992048436418768812398732598193366682910361870505150147682387104858627075100234904814931897557604692073793038418813512638393711836660160889064030963745682768952848259343331600345302938953702630341580628453777986944166318426907210069656299419025418613367078873418900348355340798368024307130202353808918416937360828280757475014832471574898869326329820868694820812781995550316879516465521055451969549290415366107055362578941054872161563457385437394178242981474191506983451373340481264952534936914185262736991008537879189525530805243392977687541036416953747744784040595462090232296293294149575947692413702023222661101295872084711936469995783954620538883413056397196086622577761774153119527290371016278000381425812700936402666588286394122205411466717488484792760949708259268141784132119189823460902447011685639344450407790466525058662008906681585624208998926488680687074947954966753901359207721788157558194860583802933349470614964302171914647855641566847124941770610603771715837989763653103652977015460665404642389665826377604538381988071666347948172981311390436802504329450457352926179979577774148245617604560259206328808409837844475658937340534574089873717941638720212876351270321610917161850263233139157561405921495990886758041042153549070315371991969439495636857764769212604324757077502333597759271327019776123519903302430648638672595205771918846512199885625224135744743208517890940954016189452991517504367569605484604262534261712639704734777411686303731249819060457328026367812687612953952066454003337965236770821418484795379559505303673762265863164705382776102487673345914624674063772891247599817108487312689058393049436217258141907194037831278538922207560220544496560578338735318505133965699667719621753176778242600364670690469103729998713993011800149299940960645848233630374196421032720899421175598407857038261000790081424211174897767882661287487238405966793981838753330205147000674185330983960901416349110180441275114733858101309247256596204334497414381372219933376185489477135661294182375577368724560964168554312884233280661866900269742892673222549134439437049290131861184091824320382668255250935327576881680462323847357240948833611256869702693696284592601638241505052446580786980216034639655043880024162272061782732774805523665924756900912315489429681447443741888579696272167596176554313131594509756001970450872413771629208684135613771825878850445755061716824968936691797962537789080815811410881441701812440938070343835935908355526023785425649146473062780245919678043739057189963266258869859272547933906541690469964766341818172776942483506237944008896061702982023489256069166173833266387328666196985133376715229665737710811942067774044666663368924302012963923015881207376372726736983960230541350838346459135671277188700565669133906639048167115372877276509092231438288863491912004415279630111606001427137741456812002603601480401539079526229911673262629033301004730201376990444332201652303419534599572863669764639997916599184884783581291542172402314619759299371071893778221777942322924851295320766539107012139610078069245431848096182244069565089286040731041063051358335318084218837104040010071755553955736826782725272067161349576803026680277397208634467091126811954622308699633145260257695407136697413598117570814732807393636033258386780747612236668008956472196877642779584030818585107605412393180207920304189169037733775508647087096661639699423855301640761324320503549289892272169693227153652926775763627924780803534861938464161923482186596797095760983957287414341864050132267515488242775078962646005384902327450662440261968708559362524256201665286050096740438275046093983055753616723277467312449707263039146916460196083092457015768113486292579418734600217293128215724542091919305393523477438479433193612681211334262700718471235027891802907876405125517660065798858379451850881050347892480325689713204219734986120030964832079789290088104323042991515240052343577195205983814212009006179621815899439855617246203356416230824908069584072759434569198772808504649584178057211824538027852288417792783230814506961446917337376840796364104205987908722991962285259417722379650777166643791920238938564403484152650292492035199722607208797317131512385758606010758012194648791012611675161754348037002660899281397524658320735916802317121994297555345106917515987529810595717496542149017121179146407801380403562360702481635808824660245130030954627071018264496715565037893343965549455955971380652405520874175602685408345135775793768970452091525037271260897479314671283030329599748905252025110944651422871096716519782547074743116104281049945894278939671577436041156667694937085710175306600949308613442027925302485882102981405762031646907680123719179112098697989342334018516249031340380679705923633248064139133506781071674865169752337286857829577126944390619975833224240314923030221538264001490563599633390293611434134251401189141870635632623974540903218548051667711471126595486584348691628923591001157471097617887134639626280907422431261257755537838582540191553203330824193900923137704954470259877796931905273630760100538300183232739551691524066343492407353797548686975138466296875270841831165926265990673181477568633429559356950374202214345638542889408258984197921209035228806975517791746038332145764682717969415284061311696941625846640921131794504121869794287511727256232681236102253506432261119174422114643734302483155292965537926967598716606195576476622307905932381222761339467440200199504061559324740200836658683866061091018507853427391452972539165962650254780329926652842497989175345164114234770404648163485659941572527372782463798874665253458415039878187715117411085444308141191781573603132773080188013081911673138795846278971292309655043816067178175858173513370033938328732376145564982521211309509266864404546663798315309766362689379154453156099311718347066893105443013121774257000793843934278742763001064544426779587700639320472614761917273880838692079275321505065056926657325877020869793090914630650317284937585899533725316465725348112223456428281636646870944584318177042637954550474395049267792583289714974182412097603887523916325726781656046294519505983031529186539733255816197342048506411093686823784392472919463522974962475401920628624325704255143943535666012931257549598954123492556397632871053981694289599096107938740812420040502751682152011535627098176285359105002856817464578738828836783499538540929565663803804408407697145566462048588741322503228355771895198607932910325606685079092835297799076677866752207030150397647640400693848366450892013935431186888119328225751351454002457344980817213289231370367988040060093609652334038701558243269956058839435444666858986105897364844683101989019709189238901531776461014502001429239775451801746687521280445639863236547584185171077040683382022359060266697004923175516152002725371623324380673936645158991250084540771575587862200967779314179529282799781648811894404625895621657663093355157559346771392164126034519684092825650443019000499165349750674906339860511550121336850471796124825305117615105943755316640513945974698393058415358721244875231715209323670388110578541294628952279492452962969643007864182571162792523696492771169475681665263927411614831857838663582576531180888858267042671426104390591862121844050352999837344894719432743650113757355159995999001765652321767747891671539666060857962245101520006781341916595065067068064878318013220137530438606111253656699016884616849258828707048105207899553241236777171380752478748151300381081853653692193996834359549342601787933986029533006236514946378418214739815664552489461290250093803927297489019422078692135396181226412016092212783884035152990968247246302114520414846151885298203089365979771350556320559110858136330984452318303029780362452693401397467074954594048665861783162601626373693250055038561084116663836032955711611906733866428901582232934735749592610278813234215173423069124972739962140465026443962288671464229564055404685099492790933497298612549659942868484421759716077759021449337274352425152002957559051234706991845797029735510414180919023704373036976733966478555171074498500370248054259857256892461513932840469341252111439065724475782617654158279385734944890004387255955232070556545284177834331300838841012951882012007736525456275297077127048289128301766463025437093203648094192069272954356344539602035077654676600170974668439218382680094018912605401018700147157389172777492388379948100543684485073430213626079779637614974959408896397131316747595598355943676058118868478561965753177138978947990283870625555974367377244421287036034144156984979408548793316768539032831613064005843775879784813125001295071197429072189847495551479453151503283080868401613499690447236468032203276307526790361296416188362011827051908543599227493595246555190423960146692627377007353514473383856154913672365288752642472209015490609709888666048697895241797688433294980194766225914506170917682456381040583879382124297354996332449508963203282396300691205912224028452466614423634287780719182093065679558891197153757456030483969003003393746655974173608329904637724791946248838680081555251076284783174276046126682090471354414580759889751044018570689770876309111970681619359254298353526065451089292930299850678276582050173286435898874309496730226198993177800738460788760248689542328650852224575318717354475056900140053314236466113696728163896194937049346457219801778723591015100627315105689978818807986197888222269011893710762022419666124405938810998955026612018191893979324860078710155922679376705589934219307999358084437888621660741415527777755242477391289316062553620878897311800413472040726865536105688418096871360359497100662564019804579540251922978110621290131324935574200714972843448109173448105437224233924439160795238787092933140419346420610288296335975911548775287176556372698158028412557839058064239659342016442390980678314126489771488743519860602560070691362958140074639726337073638952457897363511630033872238939601439741479960403435315378708279412441490680470876672354207513872923460269493221076087148733867533737231029656825179129744646405668095746992712505043507146319767849200136283776797436410056216523864835080073729088266859041099929976130148907729695539835100769367560519385381679669081759821348641165077913898285384585559029606319554865945041255243510907388916836368011466614429883941659525263269707864911939436907689805222869097724718505674775355856364341333754521212898550570551398390871262669943731932751693453863684879642787058075234559696995157918609822078523045230319165934712656274877468839040054029353856393819597331166706618360760873667364835067504838032481073375806746858692560014216559397291674450144559837813209319299923577621861668861994897424570484278216192942505579148085752144192157577093378636340521591948751038168796763460466407907085237203630701326893336957577767307063842109957600975616029740706444461625642889471024688305171576060268814512881679329710504307374271230651572937982446780976948904816732884396883144289469600183672773855571310198644363284453109711046034663752481529664554377410012957762144757800850877552655600778319273961209594651859409513595042618916129180571159096254565091173368800118983409112792396546360257809481603435893921999175543274543220887706166119439360986656757548464425532091805403826638031874855810326675064115787598316269825094768150068137211284717697689621712600704109203769778375638305065710434614749733008451638099935141491840685753869147047364091664288825151822752085063754310103668734839450199424145690293230524699838599171361265514310410474936839965038112770579061014485624006197771174488165383842693501570596486079355653625375819772928338871993984184701417154957284197105443519807446474273973183362508407415972503723068609170751888326655697501266417348727709054317725591604081353262363252329879190570328775741723486590181825537083081349343611707713178125236407620632716618558893116604738326281840075644907511232676456520682153732825786257087171988290256206286421238935722033335467176606124323074235742123255056019190148264996922918799129711769894954164805681107664039703532389610792249460540289260694832317432972609152792224833071804854334241840243258700902754592837778357367469028019470493517723850496259935292321579644195545308153343810800894019521238585434574488602167708662067094346645140910566338710687192141488940400857240399840663843860875117872969529381900899282968353756820326929334012315839780324403146041127307880166086459350303347430598911419511423256806544998922515088078679141899069428754326127105458822240971407159683442380870214857174688831726794307574431482881345660228068325602653121260978698388767710735157309387746822244789301985372404953947495879078834290001205074384053568648252121954660029027146373403180557702588524153185711417967728151349994466013675642592198941642381531377242349103969763620229006332512342028066524598685704360401579846450170479406067213327511784746147531315308088510631647682406776337371367151760621106811036108907340901217194883637671616564542104273362548550125998180398764153632650186959942976470558797597470030213440671777361426670079487420488990811849898833572281706343269314836912580636038710781936412423359267759372466315735457659037703946706564872702933650319635110207053271751744128431355326295199859582171216362667083002098769867066579897327667853514846073813393147461670058965589283535708766215568492147896528712625260820527719438437326335982626884307084763617841648895570122421572971277412512985768589320987534463262988008231734257514276618923771901285391016622091083467605896176638004919004809294475673820804911753229707094688289125090859816304698402483555193930443920034446471858321907828078941992453676390297339175652374874264546113064525955766687366982147738596874872138191864143118227158788683808663619469028275480080954719778112691542331248199866892088793974538334183062855803223021628301254074339034525775437309961587670823379447741250745629447566837673413644146895675831012072574242495139456297792163033491587277068484715461293331846328493468642921272714313580619097842570680834383769664496839420533718487117362457782643961770496337368608234617031094842156798505752060516594018685823080171122178017130412870893768274451003902040712728875839324860401639039368550757537751935930482127449871379017817224216224005948054884515829283532094449222616553823792180450802431557815382652238248748028176211734900701830843588236784737341272962487547180141055271808947427980007351619409961156237837944167304680168197169832647833641967764439746126409292232577472179542117063281302917916288452718998766621425130574260864226975253190097169958409057415800773127094909670566974748415140930337387685223836788190810372018707197018644128945531962355488853829581529234405229641564704351283205594601597585790387714562278002740458595937278717437269879122040800860886754473759116636103915558916130725409634470266758618919482159008500309575780398431119877677572854082667188314537589331668195019622054942977885540573357638743749980394907284104762401487720625523936274247223309379148960375719837509318478733255120455828604098486407438309081239330995004405124293081650302836087890000216104642398964645421061946091030693275680400488169427540642126132724508150479922352828875774822221262237174968375609735981921544033369215529669956551652095808835814492449135442746537774745501280081327267866942698845167116111908773608050323892125187739339207927942077582675696472524311445870656061791883797692108183512450612380451566972979577758010224737241042789529764634321468051534458204357940985831748646338399732423047157551946961116729391068250968376058520751599697010246466268243351285711815000260403943460092485823782381709810741332924336031671297787585807644595980281050171920479097623910503724736153927855910684376320708634228192695937770625914802063198997733163489702934960186416781375559179872515230144814899674658667102125047178056939327874644243568296155177140422635051237022583959472497676600463550434339899092851397089962907371005004147310126504638875390929446974570209776901294928253733833485564313777391857541248846197158439018980632300991243643360030411697051457338935456723938750411856168622674823205475124962034336014683428721724088623543019762312730890487067149682515194715152392475346491342686396839349018188886154264563907968332598303529561872034246411674102196711989564373574331289846562124911233404418088873884946422363357783010156702285833918880655651829768989476188668237344411520869008426620076253923163926053504666784999609758223193287609720447037133486891341025428362915426356852890083825992764588855509976651079031578909803877147968033378782825614393608847644557562397262829758157689377389145093352088668010419993677804518242359860532635144034315444488481280254136497701521128412923437813229252199586485504179643865814730929908987555058764230311949731255989619370128594023026092407904279996527411912861610045986522853986283284976043862552540056448933282522699629574751609714640372910104330005739034242848442448777089942675447475880151934128475675273609063128266743215365484860745123824407160281706512713409380098752733320462343463430872935665037276145312912235740199499771127964002761916957470640213374590615489237439500108941637862252494956758705543018378040087353893813717521004357200469902361478448594011364231757299656509225281356324832842411163888073374337523236553949375494473542369998071903960109943960795002015271551778365203757235537451320803627691811222799636115869736394985155858521262515867836548621973760966777267055155322997838769835375271507835089897521547608642100467517526508566252273825710714010270039615329242168091141689273081865058718944811092216077915024050059616438610373267466972964496681420006400822474874226962234555342594965638752581249855133480806097567102408528101884866343929305521446542512789132120226974615581555791468459982960208537426016724961047086267465680576750228633271353040255392980754575154083471253782791734861815736887929768715938148576587081663257828932238495108589714168699126089602077822163496211860337383551347133427645036500818146339516390635799003507528732867011043194488293271758356961322983231245309424800237041121537869234796380557932489824192650536361642942191623480928290420072003873226276271222204592494247871281125934032326654478714022382919811982852153114769143825455449263693277449728529097749921703357483199619591422465513905343089013217695635790916462354054847821955107129550503534390169315270279167109322851065878502813857813198415218426183560880407496984873303239258111625258243302347412738276370204094821430265792178367492233338879999295255338902741714436043848994738721998153583913310976807321826217268317153062792454212278810321512547323564716141683167508776734240050609124370082088486139435487259041126281716532584532420317587521830702875028191626593373246899144889265732613017268489163951107923594281787070945908074184769056669491603425120694567181181442397845078241915385066033581176555882820752938447523394715144250782726251395587644983800772194207733261094994344517045383174553115562664825468363274789126300801153964524196497998095931821534598210013043207040197891925596222263974471264876719005979062174139825685981350329236887714820687076853872829841893002529816434740342212965825057990002414951786173294178286145795894465069378818993865732410999135582403429168827331971419690645146803978847978183605201459735568648329009289026838062443663160365236354899253491486784219902817288632426064943365839087782305180885575609792654421526591068376097637257337533077375835484787139875782678002038638198887419910616953310575795981991943359653876471044156685470199636914680092143508309261777252333365545587715208957314590378884884846910542912462188239315857709924230444013445941401399831659170251454175944902970011324869647555563205502154476138409360514096352448534489892315111241858449939049762648579046490195264112785865973458226121767524315028212969864236001757865455901834262277689980948253742338835274528634213518688254830867263617170582119377468989248727594355711924893495833191806632388256868798981072008795780779661629051339767597336149036234879312243819881997255426872117437114587731553949953952610691342088841745003583953781705030137466867617586791144498506867446226706604924972296758480908058425130380392269929591127820935161650582735206622920224529349918559335674454094230978261295494257712978085827279115277992200393036950262700719894129525705362748028318791743498333307799621271548135920932492764954867378639602477768757558315869793157587958869204350763267958043801131581898476598148629796671026850205527942139823719539974149150718476654776527149569938310997852807430655692119748161824821016248212881165582074440877923691272672390478668710914593158883100204371363854777765866747823436544573582909421799920151583578230307333496942758857073497018290156582092042883889053485556287736118960413149929647767207750914976524578685614196654214189903504291440766651805091556210570179444790551819729783690055942542038920273462731956032090192762828635606207150025086608679384263922724206027752935793272312856148376730466947902878251332433055942392437300383249560018311144973725592593532488575409424859523026250993671255672759193793299872052895799743897250363948027366278555128113327194509697998318670687817713694677326224914063580750206164849169741245773570336421403107244571077479416662173211214194030296876153020654886300472366874996601979312781023059240968352901810559767016228958653113182728816841121243968874973046088780699678059928367242932906055994158187238719243784239134604792623611508160427663801844805719786853024887862671287238550618512886002206527693587884846821118298074663785468293490504467386270417954417975937871427804337247355187298026288162433261529540353254279506579691024959226156513911298035471171825131960241750247200341521867747236368369197889844803274558900045086157631925704937761874816404204608626475527079897624942933378211820626925578236280663937321549742179708225032240076527555576946640071884920938331959820610702110800341094663035915759949108885325171073964774075865160091255158964658939797636398255901649981007894590303388617178363743666090585856092088409320515450339620206111584268352163544144538029465984634258815424762861307152134992614155901240970509330212132977093515368753241866307330775735588164297270890781260507417409743326012127662824689515872555466737171634048477545062287147352066710133975724114234329660841887016284681217252565450919778511454615310682504828553255978503545673837915531417662438613916422471658052737683097424473113940512913273026739768359532879400109400654246602664438161071303469608521968922339711227239613490389997236618910084178044882815232638595663173302846116875972138729427827888573236130387371643818264930842216410420146853880716277359993334238594319932881843760595961036426722576229902070831865637848094150459095509897521935899468447341160272006350619060162236513708657393164550514253077564171999101363705155423047153771495199922618673870065446415379700299231750204876751889905191383980548376667144651222668259617072249369550133345688817157064258645878802272453488089655305221727878006292111647567759900250434753074623093063150613208377365390944780263739796178162984409792489597945902172202374945683491763667289092537063250453096281045923809860065258784166738556582481493911286964633822810364034147690550561917367666321771289812412680941653416852697135094663342253376872979812028145925525172422429882324508816971145048237574385210671287209500547258648769451704686798848014202276198876454730384968087342532730280872828968725607550860418155572207515341639898411404462762102963531330252734948314227743582718104310569828384676312304575602716387464160379146516708273281780074099049210392892613057892317250461271510428021369098208646966168254734738730348548010423717246878157664742428503761696211114658776923134498541979360255269889591842686590595378172510641221603046017602457094193896462473214701865873453740919791885074349390030483042797499338234585380256476124356042839697797403719838251738260712167331033254316566923958116675660473580651777988797292335100401241055465620900073034591455481282940458233635618457258335439420155810367863439951604110326413129664156500416199329906738958434645112855412857579667271226853260954251156323045666772951918146390619915803283886115131942799203575173980892865244328863599471301216063847663177964343790512206516563959744341432456200965329047954664777037835350005026678555250524478923504047707792383504798646036795182697091275873112627701686616987745942913561068551691876484575968590408775527483896746780889551482559060348788508849671148138111795530904835108427587293580230234318433466474888620964693353775931991214319836663814459584070828141888252432606787727087515704171283539077944448199232697255531361276878838390890949014462091724222983009728321596708556151541354777570085514010480342557022593543721726620988891671109351401075919458478326279037088690197183199617931530874786770805230915591439046657250808214244947639045012899769728834368656279258398762979257714705250113981164814273978961614586793366970804963311260601118019397783886276579604693180234711197217217602050895224545902868370326330665586935098109296079361028756105297631432397699361401544591450004888890338534743749869706188443558366064617169710911439852251354217115785498301495027759653161697396393771908808951201498874999550333868518136211040346339247439559771509653078461067018465549715186911055408836289081970584162491721903188371754017613208009940682328663406687789082301535345014383914900314350182125133375000746203134808903877227948472740672267181247463724375523747186298611730011184318796955498481417033950343778378301308073566942497550478166078743826563286833746175806959117550160004721413677655574118490168968649250818430426767062963672218198703613251792322035453056521228127980185127123488606119283441625178025022040430895781557628513636694256810500604508342244004177341243111793335450231141011788610658179195172556226562152129981386167295976302775591887139141791737285393924296115511659272327117820238149552833126102612304897154939249254791421547309956116459215597580930945141582778583492165664822641189796394495690121804254430971095910541435786403126123316873718307493960810072664491730475465520473977666574480009633115496688132625232698957775861364082469774173399541285374116174063709072594798084429363375688342296781490122360542729434704279982746373470388018429201322619873829757635786494698291424445835916071362610861111616806667723257342618502622159457205222827969784741129498141327374909043148175457581526178785182253118041405629604060403072998112581569891110529258303543826128126329714051304412092840167615951155124405556755462295849567411694130622334313432600370246585539619543151347920414214211757936315536109828542541607012435350860707954145433137003876420856047280250610304965306629317402204953312522102723261879636966623571024191475092268375556415996230836441745060962561737755379534181548064392307700253343844974326869919415639857633145421924280254718309794108863787462354823663836887083510864126584943620590102509076482637970336499517829642816627954470973938770048845864471850616203658834815210582603159231726164536768695577586118237248664152261769154829800094900680233984479181278015345754966836727530468783639185366903939165992930373788920434030736862425236741930227025167241446081893323282850052424986497433250354376341692506044551714900705932105031278427515969949757412401785925344448741804717029819922003615113646631505795937064714079211905998588221846241490898845325456252785777870880094804646360322627580145743786511194114381175727622116217885608988245024787452665981925579635319246596896010563304151072252688208478400743573886219027491845783126908775344505439824710464346607636235960490900349093010629633535126410229012562205820675677869136655778975831144774563445299513028801838881200565334607253463134804646479257655110577596656698557060921347036434315603468767227398471755037412513521595590032067899033886586082119702538873785683914817067493727952539158612966663713364401966167461968385420918978769505296921930251192988015182395786631641055667021565736475712224115938440240007843663324443396872429866979675784325714182538564659756002330637928242896485481782659195422713941715153992288570027186674561710441784816384766940475456439915566782929412783528618116201289401639128051759671785435534245485431275157385501875097661211507239255414482638485644681811065054515216750474160769140021842102707927621363847933353696962267742814079150369247761414842400168327272569501017659062303382399762958031583402615177673260338876265034636088313397209841100241840968861233621847033437908667008570885254170015196596049744928860097477974597187625230617782784306430670836664102702904680692560717739517281260803946076754143409617005509256709229144741983062353061991708994172862709845234641803146022226571626663330918736762432765630251274539752590785272578694622859050294276313165527158748105066571802754890311014241326037339134381921144878348686490346002564744599641817569820531294714908812583496008297690772999931475552066624727859086753776676179150575032115906022407354500256239337280641034345913209244741615944260292732330989970156844725183657434819028637935431076644842523801185663614786363932855338378747974009765609520169674955586587477653842110635157549281979481671621464093465737221330353171583929680269440979154313124165150504575068488522282154536594894392631739231725011914720813077194065471870965376440902391070155056102502774374192794831876058052838726040612721074719042635989845942602945708693823123131281715519042485654644090851418490510273954778715075994814783897000865621000953750610901997520184196209722644929969656266720589293694684062888373816710425247913118032723491278731295251490430304821319709136599121689716162817247130997371876029682946357384639358829435867263887227153904460266679255976202886211679385099939330207138802909889270382446220581328593963915153752707633345950396400079696493602655494552920724517574394073932453057951992960687467977900432858111126008203747435368172565414658534020523421239200498735251788541782407510663909320209572924442009880612628189876795281876254861518379903724938086796080869238762331846517487757508811830928669560730243239808691007229835989938551487213884924512832326532489118870934529512449002882369605923634331002732833034381384521978797237958325901941315330501633951373897161394023787206683409717921705930029512213075944918336021527108224200853186894274266378315967552299179620379746432072510830306416677506028373650323814797877164917130010693888616840040109456885130842838057254693187539783297675173896247828022256129797167501097728132672540266931961824378912023688616055806733873397370582626170485692461951801806005475975980238066100787642715921416255998144426227508342041651371733309482248835664303600876272904846963984188680026662478853096041587927410953966378119582300767110521334210430704495837384434096655788434481548332268059341652061054433628842288888472728448110366069890076912318344931538489919286780267779621037003536569594921714948938091217959125366742170482156830586885066931731813193248312803827254656072706375875510794270112562772877314429233602706066035842281125301885108636340630130237164524800928781753757064120485260073863552518539982706208091542411188457436500627668777891130465881800530807862304650687203780343729183723018506591086722095760109389908056394629384949011844784624023641198224000690743483707870425731670139567714836102160599653928602505759910987165097238946180390884248635543192905348825938213954753976763222173688860129853399361358370565023353170327921544817745616013465611884033469740734508383623214506425284562924643722103055240877264052091580846331575804006665367479499519601219356023349997886231104975901890457017403864904366323237233288209342117555496431719823042232172118024153522895605220434722486670689951078108367474678750967430334644559319447348174781322170670047933614547400154220857118639643620390142438499221304255460705369016752075723503324590917600711685189549319165816701435430190212140087264223495104870361434747842284463418151235807208748146206586326548368558992526927923522456087829750021310806028367111870907349502666215050581031529122325779524391882223187133322824205613081932177436013614029199022580648414156589135494737739872900284056675768242021698446982066612167265166688643764252890832829434247371376907878593006100538209790896714097421906919842614845705709431347265954117102080686260282596170202018172228098271402246931828034204278004994408040326276756314225317225049570271915315622753139012463376119881948699970757738996370453641076545989256798170323013492569610928089662512377847172160387359855593493667885875175538053319463009813805094546857739113588995842353899158165429210637896816378562812020610486977718533633112003710380203504068720212304871600575662020076615640620633249561290533442146514949333342632937388618336446040469139070108312764455627940906771890475229203662372843986650073334906574303244182788898694383624704689699958246275589599310945344598018158665797180840481636258766896051491250557283241453698225761163194979162176441950662587581347268936464410661410144649265851661224186363701573915408773070941878286257482203754053082181913683635744645947561687889190194018611536656090762215792177146084207205346812653390536736475412364704009640347652560934862298380377217548573392637372369380016579715109510923915521077283371660998938113771262799508120999088284952381841609538558916802277131548411323461901787639985169491779917844622674120867822162777194451597430504027536182267536386581998003345140580101183424905924358858483969389341738763914549322371918635996676543495211865429583338305863705752283488044687357109038357323689389757438972124740928543584672663454834776201136367346345291286741294898872964639060952861440397937363099885408944353198519203098610828286403995667384471483242175207261315425926699163015049667587174178117839645044020779397488739454255112391010858409141617585867164683884918188560953567220811275389986282856623878278659609404704221098843646228400088615301497393644240115583615671243278715871839166554178282983659706421306600799380454492500687891489708593075052458763520106754382828621438958263219214341285228525790103437810037121651006766006119687646565916065446829313690921605592081070705751756399327204764963105823587701206303267438813774171805156458698943675142262973512821909703518427895587596429110715449848263606478111598829984043285146125932436602480951286486145814100350703587805773157166056477898216370229399395180555408310403983530405153969129895572493598192973955307437998271145333702502306038950430021127394192690625508516294830833161101002693652634273080004605753688931101913421545035834627688490019623822941362488501406674934357658385378750820525678458771989068861782694249572169002673013277705795910497101712365903299136358147584554383922232037978806424065853638648918608850489242934798439520919435533925084620801504945638649187126999348902113733956334566476535825032388711030131547881475621143490699579251965278856978275653779698680390340908559548868343606511778923128334623746775894852802663557371339793962340626613799255291038558516265629995297258283108075616919592297317955996261048781813452629964263928305496047927020194122022001053497381766064472889389862622312261300641048212883875954248096974202077329409217912305914155377697103462021290539370406054019315701563549256680378862438681422704205255689746516436710944359809853608401158773267644063851375249527320981860211455579461483641485957591886793717985663805252110282260294969744347274448072899392072951628465779965291615273834957485306213570027719335529220994833500462832936018364945765697479614615848695988355168855214165210326745812476000843421118959063882976764815589378936698877429186992575544442922415569336735332254971181896726321472597198967955152455870608862513330835561598429311833774177365070646865549843252529613081307148618169621555598272470122219669557793688969439292718006322145373046618451348668785514676657981411393122048858796268180835672376715474485320148973398541539566719854046732570659552593576025701088238189302981135845513789769783892151458610027400516025871919100942499224097663030123898503273317616768821635490038892970290038780608561580835643446073368874526133313435169169264095891805467377512126053048855130418194596973071331297487463947661199296322651485725745729178456844907920813690820132527837359924244153687089874339068985304689064195207472631674781899743192142084459548038323935210088117642670861091551578837630686577352642743417642790772093590476147536759062256100641601177482594812196918249001285473774977195714767865013930596498412553355617544410831575897870564560493273749783035589543946739850039436121211338110515214978216253407358801320910979981055795706500598033068688500478228237433828231183807291124008502462953714896301972821442219274550349999827910559701796283277107501688868642689613767202040915033030834595481165080608656397738352437657244926692937363143229355795430901846625067364858737402072284696453916381397764723152292140070142068338944514108971860362854609903437533174916306385377777247863936004663120490915077815759006285935430269433012499563070729639332312510775448988214442362746817667536004419185508965922988857389824146128727824026327699847938838920565890841717765159130472008937905452670078291316005295449810342686128543085822012023447022030563942437786201123877040004390383139005861935469147514299318312991457588190267606639700827900659179089338935719515999248499994491159572658701569022304042986552316026030369170127106080000802415433017421062662025723539183437899433216404339583445104438905508730744117226868398365912292039570802412560082850381223197694793300895132140744793495535290415745517367651653371784945630834974440249024049214176252216002385430842903589017350001558885192128173382303757252701242496435027224964108799544604637563257914845281803176315959365202366438673319484835103846764059191252113230509416649673719112694879645055395373009003154659718061749823955917099545893067144825198310892357897806834512407616263601909323424739548632705567269855152886369024229809955169612177792780339147081158937884110578546506069444396495359617934245219528270377268613671913647483100569215455179107210485239584795088917267295430375065566440549580061553658593266402862553412521414374299828038791777795442930686731871699242298999411738552764561118997434793738367152496558387199538608027802308067862863988491467699176580426373143021428185556041337782443702229482957288160128810203393574926817682698239917843426822919028270806090196308679909941727869488280706771775114338416140010285343378546457512995198359532547547928109958374339952900125897723413064862892828741707336261253044824988463712364431571975298044120109491262219336596469934379369250713919718387864760960290471228496905291286933146632984257861764867424294961966377144356253518985616657325917623746936935086372635774911269859755463196483712750232896023400324560018304744493415706997932134936248520510321616082507613718723221755358810266455750584712607870182561240825454111396723903081136234781706342968843654758341802745357846233454869569451651246707580501877561667653664523524645921017828013058637286674115786270182263562648814505016145260895620277317549782776025598362909069970201729185265868903882392802546007387206336598964334247119619317669267171576493380592279561674746933822697326204581455534213026987576575225174428800389985731676166268093754531784070869477697122253555759945172599693519853484675546992822687343865640539213056049592556662760220803177844237929981846339200825575457710297226694741038694184098911002653544155237341792155232429714120934356595953324421576562191962113156263687769701059347995272216125445110464455438799089328968303420584847816765385186624733608959705248445856001965172764962924024915153634480442522541064169648818929771424333612319837509808131031790298056977988009474545768873026035840204562661791262488087848689558209107492597311593790697774386149878273305300472030034877521242682706508354058345079289967878832189283967705091503029935916579807335884993871670700511241386140717552769694403369843130331795636593135087109889638351632114988554950363749930214701051868427692185285688271601912480194452715281074415637179519165536294725862310288015581499827142892501897619859787981789879920123739055275932427070319584633266458092857795430432052290653739101138520855047172237837181814388074308833149092547523922895157683978749239544574285268612881300246107413859267509292135898949999899632807757694267628147981539329162799866602419194613974181964747236461117702664556269840143954307620021854653915278939883216284684831257493304122961072878648011727731349584495266597660280557126332042688988128456222043206238464916671800093747962213210586973829374650389865459857839414864609322483445427910945638715320412903778923801288540242197402212286159893351380070781989909551088064697196153276859248759933257474124654636478562514193976954254589772206219783262992425304166215699427620067850799589584858449143056093752623721996582335637790883823583832832744145999990325174518131629836415486662337459509575632087093839813008215869468301246277890425818555904938447201791976777552336386574065819235317228351466835089633829920779548029918697158808438658819696924112929027692680057875530932091081839009061570939547734437697703602858646251331342840224048980571336950745392511071039514029086657890281002090415287764551336763847928678031182795859435289426210036777582051761000105946640414612864286713545702531514353122005111585406246296117367195170822505988328640084391163074264521945868731821245959213805734117044588833809240811976229269589145650994982582986873869043241872265765383975822222489797350102014628864149461681159922787976438868691902765653819379478533909323999944166780262930827367073321456058914527069556917910900268776832097510409789189862447010097792123675131069439046198511675055905012928661565860948138057783296337363701073624507168510772054110579720895452940655293575019546085489633294512600302716980210933270834234217245930821642213843068017704130364635864874212409002035307774211687705538060083215060510722353385756871300082364324747456620250071584817346728281368052087174491248664571680985391444157084397143765827030593770301813952583288058784202210019194779926773105181871101449810788025980222241277061946231578052227322442394989079154623034066253386642805698790560947669868377852814073219952482877517250272868327076392400168295155466786972096995389488585248603095363116594403162371003323197270101899237143553993716834683294565822644144564249961610520713196134573939862608330940160101997141879920233829956400535640913113736665116845521293967863422989409294940171871764443094949830448284667741027414687318084493771417080706471575698645706418489780585177898790258718215978916532492372033507076899660679162503899173357547930080754697429447566781643969090730692852710043930615259140353095663527259879972251681519706709427381828108241710547297575957980503182233624751176506218102204040505753273901386147018368244068133504963469292835300316418077482647964791395254682389590875363933840561619648010039905904013609936460368960057593742922059430987663534774149998117454676223592478537366232539096682567192052476997789933877768618253879218565173146808052967337829184198679428933864067193985428057021489461391022067569402330758939397070493792758192740177281760776890475579171947538753398687258640480336269081889828095562718418115461788258149953034928288260422277864131586149512286871432096481103873584009132609639525577031324751483403176282387191485743983014463788435480999104636677877897637435448084097034558956473112829243809046327201670261776384127072718551530248588365610407078521280408026739124034949164960667883661027830027775662587181785649513710483676191509683478548926848486500888743205564391958683081867527746456854039710793326514275262110809775888697404921860722662970420401707506953289779981620583081054229710537284325948004002382118039030008291478480146654302280042600988060899894292697096037917221743208832188977986416532743407913839009053424217643695844071600889873347149831392814629746704818229953887508080359325371905903415126513498454549833580058158229345873491403550008111481386033270865301984196631872580115134699670645369814467083365103544917630945402588455588648608534470198758274469873646420138962673754857675536241548620707509766475356521007089742756638180908533081930341458092779714056845272205956234122390285978684560308714568433989858559823735144174892950571931147357538730718005121890484301914322198058980102122633767905573890164679559638489514354115144516994204420346368806007668095274163934170799281017197487163608624324034967715222941451327749338657320184079269520535862887743544747023390739024801683608904625220086515081492456800267831108520965339431984782248815723789377611760344606550353034540917201926203756004105392071705815082592180986907842312388437660245221546907173024573781092734868964844496039988153438739852511154241614415299117545471632574673244624400053044547386780727111927803829600203946426491924417210855052152234383492274168505695566951790597832161766544476797302473587667182357103209602977494383126939228550452299816483866523615416154215851260181186193345771533059383812443502667409912214788831711180151449162316551259085284294568860257984654062508200396840537146261156354471138182209982695486331114001289566357190268264844097875599145597607557943997131685940359841202423626306740337811375104906922836816515692750031328691565568708551392484289185071125285351246701737761860560193324183773222328857392615698439947117193061298351484126478127945821430669097966505170991307576124898664198001491288500447894564382638736917505162101139972600501526792496069897469446215156730396398748263071460933814631746132600484170085191362903039024895151498341352427724882263110453153815531675727925031785826527181150273573808712242501440108723750889864922524074768923069282761536796895809089983021569513065319709663262833820404260317603699719935270823495798133326858525631687454647930023008474918128918816146253960370623789752900863492325074992347482139152866442422234491627571004340743880594984145153718698391184342181903638195729919464319002721996679592767381529093387351544429858967809619001488709298742251637052287805729115581565722723739940554562412270340848618989692194425460089654527238606282363013357975830530948989477502710991577979083215615013885001580890001827931937809410322457110105993272967350820902402552702855873241750639189852685536854324730037198600787188918815458583159325995384381062496332037119189650367992661255690325516342604545116630690668036979967893124709981179437120854151240642769083290659318531138040108263534158538510948108387002086426536408619550909334757424304412250856657727587510661162566858853393148011515994146871554148161515523476088911607677705879150969440082729417344620475865379437800418654399406570261255787272148209722075432652091419158114768457227326077589009904858786340379547749993030602068038962471999512283119777957902968521843246172136610032313830791689702427569115349954705399824342232408329614120130054800081629716438022352087012340269762591642063655679773132019945369564017007993506632438733182016614160672941697275292169649036570467401362670365253892616743474643722161303199572899145526252251963736029721611781436143059013813577627242229572756348336992020614776105204707736714655056212546693084365586064718444864934840218153794275478237472033810708205743874302661130200505686865660957906831362790411382824417168506524625871642691681013522154794485906926355890395936976518283357115095279967004767749578958507209408208650422807867066744996754612417570849324182372649219102476092527751411175677797818034112291347781467946449225573661557560768153330561243952069648890460470292958176265022948111024093046786948002703737137388773359827823031870604054816820416559296945311414686699463163355720717646056732626752680299521582198392312192453199336160631819553806642947350272591773173343153520216128081252574465514536657832709932815969782515915394202671384968065984460553669493340257294475141218957511299580874945706886404201958732079131368578395092174049934369124529111104349060874829426239034838047132007032846311628232491257981408039732455174390836811794105319634604961626625514113711663987867639417302271982758574142270346327890097663043185559814229636100475301508498347872337299272297523137752029859313520877684402228727694616039458635286036624470662076866427367342396358058896976675655198774103825992835509838020933307605884062075977269094434977901748112660767947661029404588124428943648664927717533459077424693304502163763083587226472718981547868376274984796914981814445748015752204167787987612592109934762843396635418541898794563068970496971194707778967755560781140323987778487537676942201608269116051702819254410515476174005765099457806960979643397577167873290029772204683592970246981700289299132772283868119786401019221837770691455437239508374598340553740195043348964604088532569492025524499730476976273540758963479496635715612259983454733316612349415528777365409757411444581021007166327066514554196876265191904218246971869161357704433132784393631622875300617843408409576374069714497363307125738344762051987566286468094527835344544815834123260183469560215751385539324448949630045086175695943404444556949739321821111528705842001194912980083987020005471226344279250247178349939553295797497339870771759544799756068608250253873012900007309826523405206240012325639045515819381726871484498332114794730270466925358255790051935817073450695209438108303330512962902586441952467735491580101382282213262463750015448440867570420762098212076123727878018390441885488536484607582157614022118007463084197249473224859022571188031131696133144131678367418916216199673759429283717738981812237863383315402089640456994529723532369018984296481061927963410818463097157712322610882123456494021354816831129536441183252322602073049284674717698845660764049204262146002065728640191189718331257374760528291289549003113039295600572617339043607510693206959645670699273745932965772696611266920509758597532951121838688408419127200045771249655449365774808343694296333163046572269481413145998091652772269655892990295351476843426048629422776699483629336270839915125438286299704724342285181101717864168530480536819746577997595975719171145841759446874767696412739594715001521529450913742190341887252818988676697534051567450365236002273491778155875476461882001321582623174001834457233458397676126717049846405543364538949622714099028272196361312605306229852892702243980610809944979324020311935588534036172761921856118045562192132556828003992699514425779883645699587538886646622020303018431267588256327216122110324352339686048958011009013836772882917722249403889596712538696036733173475115874003057994940889986661014882776764334519604343207189142115968680886415470395630261970865640806723321225561292021300181156191130164057706988986508692552097253825730712062246179010687777375135864653450420185704237827871281239874002169039145595992137161108028559953326967832996587223930230934397710548444597481711204504407645052530229217062287887020683698416381653921692669882209645725291238923776653452043411365906405548421000297032398315712150262606339026362006678891968008523490856280666476825353058868672766379860656448894099738151335303108566798086840209139606665734866514742708644150096672715194807091799534244468591604908911954325306740790105394883226833477638240633027855958822021602315090825185390979971701450102454536456021909959726781759566292952335156936669979241326994424564188671862094384384699732290604615712453697773905355769962697701201713584970509540911953073017613325010828268461752249107568342004327015296955390555259157529642370243322494778857675740005824711435495077231196919253753572478706003251108580748524498736600610432075940739354385707003597886158288667859377468882468604725042790764053996093273670309303995768977531381593492326565445434566328193466894628828134664721481422259770108931516771949149939542631774143984552733898417058429273364201160381458766846527902312621462680901847542768566301068965233013523175485036709081801836075219820955676844775719551134503004196422175245355696506409317744194802706888787506581432399454513933479197936360124494904364151263927855586392850632066964783574402044508284932949447005194189239505233526739839635529149961381291847198521824235728148865403965232957966468536903399454894348982049645624172943191821682275674792490186026380808636150324115098938841636431683857029982019970687991181283212231982649942774095649745043962024174776267624834997370353674985333286540324560527555005290417503294661544290640120622517684582155204360623176185128647778981838912399927308670088446606183001135291308974754121335549420614539909598591949133349329709696732699065777562872840194599942110474857065197261827399165125004936517953841370674787651746947139344819139346224679588327993292041433618980099848185440457347267691179259145853419679647561401000522767621034853817855651777071525459562182934787398624695702562433407332839967073936749672600691880026860188472887582650891851526546461087574224091848625096237650596679898306862714774522845780369036173262075234607026311084853794243263644389285651073003195697214502070131461330873462309713630995857818374716564527518972240436211118978208096787805366228939528533948927569677441410575656296265213026475275372395959948999538281672641058859303205169208540764228761238105944891290347203634794865064077699788951112953274042641883670273610091573161117590621880542549970662503886941020240067409443264616594621124982949317370375394623593331875238220010187889781353163534394336878696784292386666773152721824111790664036099887671014685933308276524782790582374648776124151821906033177513461365260529066792497484425933862499181211509912933564735598322777619796466348569428761300775458384833495843533103633203671696541943873497916984175156648854599557049785022342888868592492844937596058550919262316877336542840419560427482994681331314534593872276955001322231555988389186111262234303247134009636117355323957313621599949235603906324177002487811682999381515875656525677050792106082220894114789659680947202141952637357841086063596739834780996969696310930750329521590948092844526746521715848630145052509370074177924390032837416240759387383196190844548673698822809103933917392372210722871450068095791090777436154384906823543312277696213959038325596403927070019353036201444704808927763833673870935851529567396895816944997262983320081608413208557344765106183625077259739439692274532681296658704379217991491145222871682848308247045795562442173726804235858547237369413562874082986234296338309606982160495526192689405765334226355767698291858062597453406728245787956195812944284408270710574735146170311363443394430526729849981423814034141415741830427298829646730023002054024030125441909234884371482106872342160008918538056048821103597508296665392044546492032499985904341480402004928665277054359151125063824387781732201120133287707296049248683563822157358901034129292926008480945060959695197000695463885918970481310015918666738260169567529003677578355289490475622143797564271115205605367337052229652033018923655501792321623954864227482540493314375465777474487765043770767248185006883319225344915936186937975105113553448405430234211045221271499003915958589239287085735853524578048492768538990529220787901310249048587876486291635976934005473729849020020494627685674494703500576367531688500719572172792013734548712639120914731049040397752431695465450983954251689286858177441256465074334023112466217596424501886707454093556447633052500883958534205111823024332072111583734956847951334657333727655891662947735448427279908731224042184390096274822142596516301766411612135055013775729698157270607744476112098814172631066471841402397852857848455587453873621565860482324493744923354340075437833793184366967621931093186366831592692387985195922955290410184323366389620122373034711921532087634484533932879387155858801785424501636243396231381187700816030303645973749267696818554292241210778309255832855977399969887742877656266610980415390312709689632517162078646158575864036845021582597320989947098602289253907677790557590588310987033292451258180496057116310229680325811800703721640781902674912475276970604087879096535063968417652775348667306582308713943115592539443835030525109568255553819004492949252513899188472307534391996157985467975352970886751889095620806555623034950978798465808378396278135050147329601723346820803557334095196160737942620611502941570428591221385021174436001251282148517707679101149782553213102971784105120460687065199761216311256183443620055318499327802464223272852370390915203170288167400528724508240549696438341352467367715301131002646674940173716525610533236838976252760443934312721387001890019709984091247856289913416558756834893119516701994460813247687545410543790189499206890543625761266379601922867981214022394561743744055830917201169518575382797549828038055350739056995039520123868396267693256633249974520133538395962689184875540957177396776979415285294542689787481224636826863374579421949365368963795256707611712179844041189717444376628558562797851535128454773936981362789299412701148621031546754039091274568027279593348088428475581092908843142265840865335424980271752693855823496048418721920293484967181042797211888977180596326824516438236732160064638708411145810187320067164191104254817964158742714895987670471992965746100841597702269466534329616412053103796294737708071538394034150406588886317239272794602669622597396694791143091014348631398952981162755886434522742364731644192060541735814271689176306126530091517494656322077044777603701788772628171736565410771655621445055501608961571213163989739675833538286567384719440784267340297735070150933570043445562732850773311489499321027272934175998691450816815722126433549186740781034802416466712207650926642289624283994934105579360768859185556353851246536301055679207018360979170644929993475444663784429288008154588210376726626029043909506656990208776877390337521849113011508901473698468769559586148791365793799703668934695068616083378287400962750233389188927139069050622683902110833965645548834113283526376292568270970622400545370402015977537592172673112274632904508619892212858524424915888925016907642400494549879807500478957540626157020325712215055242465803601873435623389173008397605613924672002216816870044364228559086913468790575242281279986585787328532752105714040734784595034292051547675048942151339840303577456368248070581833482205656766337243435318653063231514965061238437789365313689030110566460219230009379750060980657193408116110085860548114039722349612201868202116265580245078662459641159193565706159436345709413020524878060821584775502795031128710724040451005765766899650793686348488823300756458498325798080573500570074652930366168733188582620731010251348413798739459557857103766599157453094128366695294141487072054124078621663076002813795078674681823108935337701906393465762070024555816038359946339995785509589118564624222430190029068248210049231189105180293910895927261546473930480102788264059126874300072599434807784156444905250315258593729031916992840120779341067339010378993550785347669477502332140796963635824190360168621723779584486072697477507985610101135704359253138131630611826692985698191064950929637424872095477995948937194597492451566476475865265594962994399449524027342858899942844495671590215812834190545132838177650988210731829012223021847214662980870576223670896880936798716788149767843293989700568170648213202256945441574629820803222345475672439494858698625195229782845564874638236745428729913063741841211360931332422253294596665436090770048352664897886040391965906089140113046282670059818044201656390011371053427142460558245131855473405516819641140047497928827885831137344023886486388205619605009102111377862712976930732782404317432284843817282882981382694237743236841331615107146943286489890356401119412469221167937899369669141278610372825661770454766691360486466755294519820117718412775244592779141534072774700731832100959652993488707556337088310781122731564416539456400094316911266446610005176911742835361479384221926496450953102176489444396877916845171311977739892653847488631303130003276746398985998916905909321380139758715736242494349356662711359433313690024991054186655200485073172913400220738091632853476669896394552928053751341600791875413794538300618215578097754905346492707820799003183467424910998782221525138052036324699744666245833672503417718321834507933103017847657147711515723560419852397496873564303106973813829446658139807229711309925243361882682392198793885830481152592625553288224067982448417732523956236592788784185431667322279766203538268359000038859780493682472961324971732372501467171013523513692853299173560298864894104743890649574988208460223084759160593357755105471981917117275849357844277157511710096613561548591592835107597550112122375280000838254327550153511253388495298907874769796511205834113274558562503391160707005287402722442530823333489999852533838170028842217831869982763916615414437105529496393055719360571142893384972910828829090126367334157081219440766597688224333058323810059120880109952060505523251832556453112134921436420355660020773950745578234555885304924873637422768080471491366386541607708093101883437885562462404491466441708342286123044200456713678626222939919530293415864084089683740569157598232690053131871889835145805306248694885808905669939538683686685711532357189280654290059612368553544268108447956676744732665164309673933824682321282734628418747190305255868634091424098114166396805743698098781736980590489917540383243283443614660995615394554970740800821127932970319400212126357118661104223916504062278443626102866129556172023297011603649554780458247912378973580804064087710683802200193250559267061324325936505853826572735731919094682552417530084169981049051969847632654160728029195674978601167714513086924493347230951313554742196872384799520204867128738299764155191074217527150883155245733725293741984908193891976558679782684255267862188849579298430783818778484975250804568017794261184048456888889316921813153327565121044178832067732826660396096922037992759187270721985569062358080493735982554625639848097133552314424545242482677960664097811707095713855163205967644597654966722488152509094014008787686533439870692189330421299291612893027800797205487602470618853710471899034960398440456392479479569141791447596086740242984459909496321073470864096321949581162592102531306322452842712640522052783590954512922775365497259235462566987594052335602219084001775993028578829214109358010150332163894456631536191974219486302141255460060090597093615436064777584474041832576577317543163755002704653987543121126998312291347743569588404329310599854317947607168594195725964858327522540141879155799652939271813744379176406614190094280794568915356934436839557327377186219510652679019030839976601215451098698119655950682167382602557300243626401680996248636524873480486283959749771559145921093899054404814268813712812276681327698132222257159394448158939737534617143931835790527993299685357697717700979456591135036150480297765130248635237148463676934221685413670854270857952852582887514449588100936672550709596405518820530694386235877951616499219758786014397115727000603049772198639115664162388644716324645530077267328750562346845663542642718747719585326503486726879842366497163547380402178097315575398020297841811824887699228253487164989387810823626313780331753218401707195673522158056944846056667226208100731762898509350166480846698898766206571804250142552317811293404145262659393538613332971940248903872103818824436442780925342926742020877796462312614392719990521968545942708645440529793646233674536655345815246145156357915456647969448361583873004498716307666175756843100284425746378661565892438013821691446500715324968540261690815175095627493135340724428771968607614719418931739429797214748268435701644764143099269071342187476043223277286537090318096210520738243034260289646740665483278554771216609858246701678999698543921231289814935409043527522078178899153257028952393496026984566694536457913096907381403477958450372249357930511981064512990741023187269427918393842573862469528829636665107081866769350487220505477036409130520955706955846214843548596603074461829805574125511238423216122498584645993803661021834075763428879814365160141041172965993332755228362644547034331959349220850288645741557974364948035518178843854234126443361882915687343085563820494835324254663326382898182721423891886943648571453276082402837668754744949866114094196368746581235618599013367665501659376546272339913270869343447009741797015965614703360828168271347432802572078607721401126352123569494041134956321480045534870742453776851531624225594581183724213594877215423905408832199133129888337166446641868014918066393199489507647357945485518661451677186420338344486562623618869028605231334955473951392439036238494112397207372389074247076856226286241145568964254901722257004513350706394605683877787543535238786973059022499690272919261901870124069306279163110671725498714090457526762583244823134242233721670924946656816722492531678348290179328271775658757179239168299364758997254797652271748313181084638764143605825328961433916021899678175722749736586987460231931057907341583366773732419764850985428771681913244860381208295449130609604878064977989436147138073440791570740383698569290252482810186701460598307994772373214707927070513485686639400132657674893895805710992848911387241954838369996826668065100097818915768233595852817348671890214229221946734200957408316780886315018974216887095502089157377733185830992980256763883833812875802594301106256925120127722731059676012069129874565278359034626278557563787225979672373737656221814688080470386222160626008486098535768269568747477581733148984689872013340420344794330323465317620799084579552827474377433080912300629949601101119106377876967690994595402835533938809274327222999961394535100420690608828806055681915316496300862074996332401195074316776602545229448853982117749545605268899058532973704047411022040817047966232351330985947226150934622769346253615407788949242084799459617447637069197884499081546410246397808631294555720278465581895897935703610781568616618532159582310869230353480944393130228146550585721695040241927870878501067329296257337509295021681232902139748713239020551584400598792546454308914711550594071355765646080074504644417277074917896627567397592482352360432993658603284426830684305734403692027025472640493175090166732514179055224428800572632099288513848815150251821841242443248940262512237395139957774401350604947800277192930762884026537217278957184767983662369216775883705091527829835428361126434719418207123937760083271337328802241592236197581059860848342087347801001996849970703455360305143898712530561791774240866248828862200949175583129451803994639499175262532375901270372136908674217673475919966224699092441291091771394820508411536556288271133558988555454182941976712796033440204869947087977277974331059936162535310863496763893972937477137207315738127090644597583408988766375474935602415272252212181609465301878442388717935569114156715853710534666196698294970962478925385389741102217368970111933172520974539305079818424409524038142979634979471478774829506095000421958088736240392949695913975074150618510054128595743503663163586131532151614765421918159519596593969201043836946816352402788861280758796035115506061189275128951374394776170838273882935196745850371628377747435434717694186981899232183076844195108831830503469494057889734005138378184421762808753610419230601699622024322719278447796054746011080051027379812266483903685490207991794877289721809987553440175651046614812829109592605409640725770920856947447065656031481283952139483362328871969036474995955809365735135056192725661352450023571559583372878192733222023607266616942784233363029163573346524235819962652083564138356202265775311166613242623209398531074701183993931913858539366530896326966343810610351001800544086883853956755246708702117051866676735162683972278600040654325315175809906097604318334229555058647824101874042135366546121922573689193839122078117748774147382675465443758668112134079706699690574809954518340701834103467113953592955215196078368872789177115917389131339813786261790711715136333217948475198865458380157568980606705199333623851244738051896844553459902858258088227889957340684761866598825258369573167869270759747343966485228816112605251478823632403450226686951635463574335017824994184830112158586165281853715661232590321547998564971292633985960657418025758266838268675178321679475125811957457217214145416775587592476535992099864961456189337167092336841226789421798657827987279904688934105900372489443383490863524303879047241494638513276714601725666647349625318265970596547122755793088356723088841576131271752768483942078090996662173119637448127542561795025119691806592239103898352675110846805029786257902625873408785084068963595534049683239807629055290397000356073198713107065789559775847733194585492379186623130813190551902270034325824174044115190270706759280661849146631970868914198070014291253443366909844306470287796661502663257917868426667980690814315311907584168520700012241590797018787536284571250532846580235989991461224638759142133243260256021684727165457360706190764114791190508511466737473263542097811490841710630904212919099050938881354247028971133512372472631005106680978753135046773798520981053247162104309509015166847472563491079703019827660839143087901949601142822758155286295921673356864210020179050906954888531899209623415330975087827782400542443385085522707949418465433387729532249101097276125665369568659152099024730724586947082897559171499659935705404955048350907848941991654840223564732845112731634857494206170196942142181291424849814998078722975010632455016174265870112500405134138510351951273270783512955459357786664557366501356556743750792931657691729498129680024526256907797956847015321568637951791918080422330545843124857652294602102073209200517482318750999082723963149142402848656171839661724631383642765363726271510948455116441922308485581364267190972290397831858743695380798341502968887115778538129783123958502144254466285889583765393703410365352627869041123565474787281592784893186008731906597136064115493023438146657692743378319393302520710439438036720225353376863251111438829513996998890507194008246812737417034043195237408222025269510839905372741014666468255791396731951153669871824722854491145366595103849355397631299102521138282475966666044043638930817769644006156565736277481464394154468479341096183878929518753055885619128451822171639700839133023616382267228879613043928101816740122818332469504363264924947545163102561935122134720304678356850189608161210549570060394391577923248904900740151590533376981525002090509069763272402544620267872030924497837427522806806363005084334124750782763391682104899435962666462497768733831035567980806956009474188639419091074991185720010750392011682076209170344828804316629408940058817857148615296552723810088911976648593258096501667636253198208497947248492005964815465722721680378213702705973199009701250595293895280873258718572154517186341614967714682964430028644171373898273973201300454660755398750897540737782439941618707645593859711743229408996997509568369525863506820097071334166324818333415432671803831927951570041789382151513726511556495455749431143948858215880150717265317489004456590179309815410190480997469639107566418017590108820482674830235178063613824768563631008392549994987306948878537011234527502537670052642481519584848056338125994847325824818094256037101171352416399933295884716157402342895604591576265055727625816537161027500572983908571827218756017071904460125153838879585350022405732098299794895713310725044158287548000439341138585799328121032059431310414943849059573944025432633871756442780291608170057677488608758936222136224723231860627529706556236481329433587365705396624993044860590768476079853167251773385772718706057012856214787462333425284678716338256926961864265495774790547414621537719840696091153437360455682490472474102320788795478091554522165754475562073543627207309881781607485152748591716832210602853119500542428954778275357842941185093296922773847473622661682729116678224352437015794960266051656915030705766163836656424985992691137699029774874534983159828133834652993034603525715309474074673389803967945017114975425960045356591159303520868803325678392739308654437889456925190670228358692462598005415619459282515105322968057404327760624188010125715796965544855656458611316301202490561634058809550290920445370147851785778875822619030267371347593866748211060443461054825734775873626251251548676300654191301755892124738962157143265961555917220906289237820021062335181311389680410132434971233749749005239644326913167666225747149111960616666092707145474728649833098291134488040798557797672877602716486524902432789785539506363318826477083168436372142399039313707396299829383842944219007683525607812511956467271447323394148045058204469264515557911661947813607264912984386948406969451846896922912408844022446242277552874714096581447016864601359958956334032945616825092483414099950976326704369958270340946286493091401517517327427265003749697219908152753957933303943836249938940029989887500915726801650182057324744193617963955789173888151701488052194031875744154179218708727506464508855579643517785018279961471647612565438585456722423190066695710521392793092318108880008914440297277713620739343836790298355409289104261130470621192547523663906022048058628206854914397126250028559746146911966968821398008901570142537912377845721283388225002162706309146445220893640073671143993798435346155180821689584226438541096153218581300176725255732091398839549343732098454892523469577572765048735700498264929034563703182433390534610900316114062349625122037802953844607437978352674506902098367587851533703769626496262333453216578282709056954230152085144064727986393291102830096102669311319969865185959731756526476567046731700448066871259390565917408554957701848356251232217454992786611236033613366209452995018407075523702253283789911281088912735467179855513197093950184244429238618050577703244727436017380066812409876781480514654338318979681317263885841783965044404510045115244734060818145578527872484950875720443055862547157898186044219345446450975735833415573446495235634203500834766969919198908794479735770842051711234211497692095550375683605214872620423866882671738553591046781023125506712169681698811788542734320078266231190458749896271622206835361892240781312036322817340649491141260417812919234585607488393962579627881284164995304929087477069157661801045410981209394737636386621036526468057349204230108610096654904740592270359258372321467415913535523273204900819417541709025791453217105899880093308937764897483637602637848086548926323203381153291076772854469485036268271329680649011742642254449073723012353727929333564025214111024051598958128648885628687542221531197998934717246415055839787618024221220780628774378409888087353712435793112910648308003639627822559123582519500552407290276952274330669782572394000729257576682014174440284984938021180017028062041471767710582798614495763069437901869763236510206445142862604826233102834788196072352267406257479043599622556889110557382205372244473693401431326807696917888795547131339832523198898464558381087323614798829687417954557999153607517740894876454739894841761495153219820742091211814379194157873287017682507908378344247727677829983239553881985956653923700780030590665700493640497026243885391157066093078265930162477378261415976967503906843122942882673235625239175413643290007973988528264609147734236326853492753142874643069315647765085756899708534118520695111903422425004850069342410540434052504433186505905838367095291072879156031611643545762875922957202609664783444020701540845679480727078648933296649038931330690947875020744777373517775228957416933754744985541899062810377797379839022248773544785000917983635724527993698916048412220416446289369281144057083879143725252084223332082968318495199847006548359118113267517941899893766545100745999084381399221537426209796313752285951257024256549576629415293101439798139955178606022479777202109799700603196923396984786591318024832038438262586890438540204733994603809243070714771431714124041845563652289218374066106280649644797196882147502348624326406097159983956152089509821828639215908173408043756596562712599159010302907998884320952338349286726069091696799893120014344939968286427075041871228273000909581365669942424460172390338793700759409393238904558597158742821555055855846030977074590943926590955361995055801962486921223809383253128202198567879714485823578194733566529893575848213772607311459974895914187564773731206698608949691475526833905167583079666082472770757639663610630228329236844030407105234089755488340421217720813498908100979309642102282339622269461633773854118506469265816084763499996681923345948366695330815038294646047015790788415736651199451044277830734930288096694878069215896418730521757616602894572691377481585562346406318720066816510706519810944076522568637872180569355646867513241559651276791901315163234161811861253957001227803728594259193127146349054971396137574907900666313431395921000277364165299309798059897424668822231914030282747627262455128818238777116048788799423963680912758491768100576348296781061265737772452452972031207162856891624867519736268623960159253980908389866732296390201551931178996980596774438820287707231949458190852482171718205478854322272213232383826273117869703236330218641504281219693290943103148154633893870260144831767032085834263553713036832676031697443396451574338773786242999527899816120029220917581915736314822133882593083484699803895688836264756696291842504133700073602179920702618056683162121711595024869584880223034875990113075090686614964595932972680447303314312630006686711149873844181903289401089362889524357068650623649383985870799613923379994261941845676367936419873356136934517988767384194319824638450341373888059411205776164433867108317784219850767918874038458914210294484944589267803439057969901687158661428827332852219658170674236012946621348176415059286826424595815815158391302905599589416772751072239185671202012578480864467293932328974029215559359818767757456641592466829343257670684679849612342290229831551313301898601082917110073118800637748783414330800587144503186334298038635628849476559799685339713749211779851888545400895987665875956880531998434719046847351265208018255912420600646164986000697799249611575535661917484172198496639095948552458717960836100878815050745130581925807459478760394039621820387859999811582813714424769458616665066552302014449933361054792904664971314979385853732808149273678436029626970235838477507485485315704154412669222764752396356336194144221150215964389270791161062037474716178508544193092542235417212952690630130785423267671431339506455332879744392571961819207492525564261642726250488747097848200922103369779005579022512369194569897315607826521740368627819881459341891560824787305614893309910079265565300390064680953896008119767557608178814835467132926796656363989203488053487218238861088917394604995723185548744376529568420294813540360489869393804081041832591317223625057763209207435901465196945672127499328973177271497512620196684166267111504418418018048355629851264177778438538625734867033145961257839900936096596400355190088142590741432403062391856356790430304684351131393459713334907510454070754595996295599439179805088920180430255114526448029562825448814601823265493976952181778170522548158859493851387527917755964172361068781518339987165296622258189667935785746820505719378494498586023160314242981287767305089180044903629573355874291189286747059291980509052934260018703164890214627168370522508074851823539537413672390228699081808454144906122283507068909020646154565854584661524911858835935300378981627143746510477890747014987570566835126464066753205345311429379585589146057288556843612476609183771096550735434975361435793836266735481630211129371611364212816032944482811821530179435164449472784069274209764013894012251837043480824873631291044103472328909869344888072469846301468003485265567453561011763130823684247649990498263727499068550872665121187496019176450649681127875423212707260827384436506447571688029843019963990776823016698165491227388712183062372984765992317712100732439042505508229989866655138911549136625385583645573339932791725507427902082484061021303329612798843650289252205811097364705926287683555018278047194464891915449143716822677755415845031223468228455505977746873737014792917351981459004290756059675322610788685572473527823200450354398058550166767106727616218588122243606051869592964114902231649343654512984064679446296638267306992193768734377374619081212040570792010393821595883399395949813744624868349338030053082283962648968932825747352952093093818791404368514585978286998684586022233000682726259769046069366474699342700096801236467756639280877255200858472409857236812545166254081732626186832139779454634387251832724250142499782099838359704904775570478747212377659532673235640036811109066531465179612740308870193795069773208292725170908078553411652419115193610787129278357386676268093309622163775634892072371645106017786523781418860942629147778450899383427224653559661912801205576115793877073543992115342963285780717036554225882873371468522031841131151529959463755449443743618439930628928390463130677350319607141385985381684757158963391227460768328160761960505841987283279336824106174134213595342441578936346616339698940103242437391835488639303700217097535595069826625670223995780085613590152640776416466329854993101177712905387667558692520236374670458199231547706808591529259491433691379111199919972711693784452591052583366612691345171684781148352754154973589649439556070390634944915752966384899798470815225016729630712845683801315933615963613344005106471213166121923069856267954210591431752756506293995622675009980006694370796531660478199387910616484978029018811781388847111408584116761088926823241864057663808108179884976668725021740049094773863248136473938420805594753563486965757412545365201818237940159596126000601129889873849958395774588981534464559928800818304895211323681286204199173100697863367723514444041527971054692356008760470636256453427235470471599688855353683052331392781181735093285875436642840720895241327127557972471760810320969960521326451538931989895248320547347330985555817283358225921885738117695351671812854539205936218378425936399139760223164939342605369640350947167648138990410449656317508190988698876346180282085716478826682470695048647723012910818256305780384123243100021944993733015534065756729952326832407235227722433732722946718840100208262006532500472833730357437476779033804340805731143116017349806439185081328925520915907816076268863942665875578798433440458074687829758619544312932798196293057752577474596722533976997492260464164591080693405279185872783741332753503270046748281646655243925694078923087319001065424459890404360706753483153684324658782860400894143207045831530074423187390548220285368632820026311844397503452652433237709601819477147877027163682444584126611258501210944054711611318760713489536766263231138174042384615081212050735926257737412869500904798420998699102889284864494623716411096274539383837218393644256199569993785397897309592614863681916560470627546435562769837210022848619031256143582787243417484589939019035723688165087436118451365778537736643609336043774067078629895152672270924401590168209324175277288164033768434469201166704138775879348033293535329600138881578973390404658996551266549819112591606493777803012398665591938166070660992314101788055512225040734807621430282015174121615210469925849111247797902083488992368073462033359964474772268939524947931319985846752125410063993718291087899869706309069118530088986624697440968022357971849100675515986681611636619628299496599488445008290282900629065211926353269078465132280366986072356606495492297078209342222375921449125296258724801187262208550688523975995320272420372299778686858897071032855536488227294606434541511349764305090091298244875295461922520164797804199025247688173612059409691937405725561393964555743459610011666324615382792880206879141213952893088704581327915769550054727754459889634929213546918582163967731677860682445250861385066191492392663016969959213378939189131999154344886891596155261499345393734306051888650848549790112348905389932591708304558798910736197198359843869116888980258387077061476129321778118485507709745510045746260555098824073280914952214634415800413687952591164059981691386913774979735719407614009922026888293597098699207129694834764620147957897673185830604028883212290920847775289603388965604016692938564077097826212082822321826106033843403376351196873569152864308644354565092493041189744113914337107452346721365894330733727611978512482160154375116438219034383920665169989227476664463764157684410836086312904390980193171928122200142840406899633590616835513864946537069446419328329099519980426802721102197501728983008692084929868137483150617566197328008534811886255194095620498904138515843093087384612617135892777588311244499394816310111395379609007920010547242503054716094451478931037777792859511439168577267433892787595978663480935103233176933876650037253069268800146534980490224084730496695177582292934115178132446516370775440795750141592802228353608393637295274300628372523949547608927147619550952366538844301193117582839938823512464991404546048396248006217685307169793537994893497039719599419233348184255140366101982217895361737195821077538404968606132958141064530196753667629240130271182272670384066606406557750620189593877336806890760000901332298307390354702192136142249873559814337714775562362508000503806769339307376617794596076985945599670408868655078272684545771335755546130558614611976283736974971971512599036433142987127756502658446709896211165292481336156228184998533958894747238869499642809609568578266915249387078132748885869536052734997882524714069063232722673685581130433320962940101699235778971385931160917286048528293025037770401083176188056426197173652232056350265973721554837131436377689512021619934821376857771238638271216670898303918976376242102753967573250120150411227743338261556673160002676379407631378022859100496950473257803179159880780034260884051615750424320888955386161571692548977633202377950351347120383406843223046984574018160660539319523509047731867987809225365240023177335565387027511198817818120312510082635424815939301323192404893953086177922596748415916606218399196928105246545678006847809024964479061088646262386080160334822480985435186485170706070939204240187231246554397016641202576194911321467685806502483287040781818204709981843437355935832504735084402761679671212303410315466192236145877347270830919938983377565504361154343348639210200910425431871324304669009148371691633383110305576153531272598556829981243936584029289846218298021357208587387716927299351881786056652590465375614448755226559632536689262351487809582703101684029925135580294039630502517642457212674611199481064933843136788942121094236730238081208975933955308477766310985160519457769069558693947218576178056358987721325316320141144576215250367599358664820550729270015234945663628127194841222315402226468053031906146356022742344202786479825551711242796707727428835161082173763818643187356761277286188034512633400615105703401523018822704005175170456894867048499456536590913601037686508934412482146339778920688467967284915777753859935041991934564043699499542905568254288861935111029887868687584440829926407615117086760741720894933550048568845974197023116376816534749618145388497116150953501376794859157991027019728538300507748690407936751729312192241338669163538287573576723830491464992303066016354996657095183633958134103366830885516031322143861753826805338967554366867860591363895543364135105043374136108454285966453814697148618227624907092569371106565621156974939361438013824855923063055458408203155258359924023925787901982230731839283699776940888854135393481303827994971097256112887502398127294336736389388458340527611105178997680407181145927810709724188150000637828571930725852320317384760455812783056743435426421419808896577503739550895155062312489010787458840066382774562026039028277400789574194516370954193946675824663636622958528683794238382004058418628045403483755898586704320736402198214880894249860188516470842190241289717555529056987911711293133038604733756664430858020450926633055190000919197888221089825787686435719024668787928974053953307182569400546271288099715781369319883027621364911369024470692467626101556352537859801282468879935203253176418795839065704454043413435609237588843919587532222823587882995507167096769961324675323376300379052152227460126082515106548669553781440229298762713246901342000490695374523048527027944970427817257532029111582601744279357098336650713618086617756772587983945893903332310939262216437062269830620667763281536976277724820690349177315389848905611870060262337973936163148962867137947782486726225487226860072208526546695383086095735944617350227997444061550584449546777507134615602277150441161026660591209075189692702365680606421413734611188349020207927707750733339310861627711627875242431667882681869840178499679520219846278465564414691365511594710846191465465769461191383205428999236583864706118712001317905067105311790713870782052621614095459173458079863498389635369204647669624010930437757891174650945470479701402232173186461590303346249262007306378856982250909132891309692558844324734448499641738952070933291649736501591140521954958051442352691834733166046847386773591492994808329345068830416364070977304395751447253237210511754938175252525061658911083098383083129720045704753733056329197917596696440004156490634940657383980602444264941358631901190060486513941971832338925528872741433344495579896445696814714869922513986024737450644159336280163727613600716362980467313414221145134690656609370759660109066686718211303458155947291858617259868067786284834721654083255780654802432975147231068420959921656775711063364738683399211756946469992143679457389318730718967474819010051912106042147743062664143781394672041653089143667494551053294041267116680844766750339350649064706575025074732241758350821829484151378565922823055097648893711028856411812644636658399363552270502531274537872591506611352616389479283231190487230378549251015311103913116473906897969759152304916486044534736201138097812504282725947073821454586066926938792204062412819848914018528916931972334724782066247573138794381604938611075967511333242973463752066775748010016722347983686297406448770129291404192004749546175203763989725295297163318708711808634770313020873027083240648376862216629387704116408127251559989216490845733278143474325258684762285387308418423206611261468966971569428938103787791432910358896574157480656259615592726243105310748943765628327603727533100212603839598370327776454548830765890559739424510172897577341156411630564300425737584683070314810561034417888122686999389165637252008156875106603019952248126962756341072723131329584371038630595335835980962206641010203857389825548866549078898319079240707073288863598491102867014331823357005155010733711782182274304372313984922169888345974559600249987448980916198749746502397438451677780535621162776559875907499026244475096049064309645373077809635465533921450618869093685736739047804040620897265154229570160345426679425804475009810509891288394731652002895138308936537462122661011265421193397178618895292532027884434919944911111678523638849079240197831776228812734347151225657905086781359936660100910777297884030315703658280876177656224899726499201664544002597359096219062876702986509489825362875186772900637210395628316243413740089436056028144349294377698843693485002751132269468521023247345628292940218801092798283054469277180550333996849628386977227291824493969788226152049537598871405130203649314688035524228018410546188474511440912645874386583030962813902123007003019881530689503202229488870252049058557210120066504940352398708057200886963079346690145034884168276032602821714102618145131057259819152905332399656257108987370433697027668183953129058174727299397465779190747918886749001449980605296889121142085143870792578788442178101516343510818601064148997776436755451141546510555987295022900589726639133607168174365579091396385567167805457940207096034138304569937884385453419691295036756101138017499353084139217742947012030195027090895036046013053552230988212117041266785740762967611682904339069718906935289475819397852451824831520197322148302861142879653588015103517569662299964688177134441474668677510646768747425369428113643942661058602099521166678212941022666024880150295554535894769948016812054990661548820934283852691148259074165988514847279189528012913811249565216445241889879148316362697892912040266640880104132574988577280655332527037119979969800615123110961381412095523546055375351063701722380655448011462513862374756989627531850919716081965793457504992504812019702680538901799254330952618138584291878157369444637180112895983600281979759044453708059090242605190928974415041873965379455268217227282334629911297689243036623633785254414855143083728006168267252255704671538945975752766270277924146946105389192819546512350857530762660798954877858934275178543901572510292764551081706922405887326268137343633469663506786833295301333841509076290351321453675725228123271239250196782267382253062275665745753028854415279140924077937323020968064384124696810678808766793750532853497189419820945264132231240924560444725263605808321861563136681529356759338712394414289613650334001028053573912293127508011544905528997154328974203977828782446474577419263572653787033499235961967003952566910751365489165318038550275125173055552203023601776674667394001799614559491704472725998587125598794923974505811123539323104271706307479762158508963179791940556200102070847644278803096557038533962958771622169699012925362612242219361912117991404203543745046029166125118042684076680735355016470407204871127884146063781542121620514516660845088249353164495174943804643927397977991982820630350010601698751912469907073353880374967705526842988865561806469771524936250826628734345659565236388969163752097212543991243963972967152690512442991698019309308259292569720462464173903229314168678078197791002045838126411294268843321305733080612683342570623467296973259757741416481067088739166133505959017489858351649567008828752084884833217484462944117163860676161799754589398359701061777343643398640625963969497429572838113823676299937145088479873692446345042309117376987499536548124025722105609852354144218179627117354486012412938434858772588806578077905083768499688793865953472790794960398331260902715484414241594910596869139443798788047422976828570210642104647492269907843732045373646549549994303379918443328848388837766160593781339608312764293130538275602407053423958180530382632938031863850388647884360039278796733291291544461487018726909552134577768305968987133346291155169358702149204641826554319351306759685086844245835136910995184615855845337332950901347062855560010928866356635240535840820314573994399767505421838026265480700201967295772288001773086590528183788273389410499689688910092409931509548978527632005173383196596549489182901253062357046591734447991841895807898652248650060812252384194573988029287409327459365910541205408300311307651220208417798038880356080528243697530075193663831644039702351162807623030120326610808196574666653961628590309633213102536542982784988542426142839008856418650311600230809325562246726698186717162683287852667223412369961903354560956130441649012245465733102569256889746002881209097246322754215867748362322706458501578886380592908012820068891617172348918824065862931357080983938591929914391414152574696300329421384255316225530246467679259937460263465736748167432227145657026194753528254049819746663335678687309826972585868558896278689142022845309920255240050924575468592368943382753480979271021589055634077596615990822578217372161974581245439623190024220520096660341174688437442707504576114495137474696425621145993349780889213598461013132825066249275943095513036227752541126166387996077215578684548792065954205992400864248188420103620450456586046942382194512298818765663483864615715850971796847531796357258265523231517489977143179467705352302160188389709738118156827970314182325697892430915517200008683304896679630275953819054900459037813948934260282964385593191723633879147467678940130143665137094003659117419719889339556947113857512150878378149079355478803375058163034481470010426296273985024289301203084644874861608889775454918073397778500456588749280941349792174320925654075145328419141884794385469769173784121486115868682127162060181544873606974360187673661295189109995057644593819119908827776933258520411953389663880812615206347484012133621386644915410577624252959881774097755985465601032273462845010068613482064258700545451180552775781168778548417195900586706933757737981921225127727917332264467099047359228724177388299119137104058273785170255032256888975059194565685809333478664061365621287344706415938392831808617723865137880254928927945054323892689608407784131182203635899381217939980539097228142880103117477072131594536466909083703363487127579490599765645024707105467517756267625253427266470125960706057939536401321958924928885871465315015508864846362339734793064463511125903438312479743104476779644210597498305433781308043473053146759347172563081863529750756186807406745000289040464436607376796713426862419197080655889745734360198200638953940242781636357729804074795477566919436804639198863140177446943827436265068702015678469441725817514908805431810730038748772756269171191038944575869842902318787865988982515096203238153270209619337759061736315322257839671221903217681940637361944457671943717416499259063563498612583690195313650755973317101782369835197323963384810057812286845982166741177960336939443533563406948600125195532508074623436991750027326885931091056585190212500571939093750947281538689349467297629046372845965822850380938612092048074610409495419293540018008796786194313340300362608108359273128981164342446524056292987836396890176484372233742662900254857205478362121521768536852130559224273623871371299948293639363124441961231402224261130686221237510701586045726529472195247650795654548208766239770662090899550341582110479573881098813234575552666509764125059440646618634970598251056805703811349280719166170605460841083460783139782940990707024379793877515077435979455086747140657258984128945196938634927497999555041480027687616314625818203454873569619373485013087069337193676390116666163310534264667317178500626649970318915844800643519318429053735210650919888301333027927377528119573833101806401463492358569647466457041296271230517084022828679927809239747647871633179608519271848956163470478589420786206658918123228610704178356615984769483778848896246147449162650673248153706413575690132483984161232866782708112102512447900398184563075750655166731341683824642468907833860169598385469822720333793560306543120442241300872265496015907580816056019081759220689557963260907592679984306384982620295848592954175209336228793071413553327649359552485483523746110252308310794454457075944513357878343454810265954256746169962469798199151847640065308276891484645719136640952993847389696554115140536632269657545173509419444272492886398364381538957523826802411857146888001157434827933828279411752456582455496440003645740200228021522571931945455325252537278075754079432155381896689570789820875977321350824917981143563554047166337633968374364257126638963190696894169620208953290026864207750236912826968913233348665379816236577594920848744924473374095749299607434660072810645531153237303108455258343981991924989262059161944590325810912005643064076818092561063960098027934528366247235558415992504951418290600513708902589789104515532507306032216993770059986474193690064586369070645312455789266645922520613765827943237974781879480514084524951907909061363186089439693234263392221806083675189442938154912871439938654558772877878592870069796625997971195257596544053461056658452640129023846396342679848204517939829245196645663908071992494933650650637252932587920234246835502223041261929362172619829667800211967287774047556944110513611691289194034412159536977499484975766341271073710499848238941481907633420323754680696719697668216596666583112976139464787542965392463340837845746932991169648478917699781040164909554058355197491056777003895601080617364602426150215067332751408041625918831761029044798197710567992727431369833221601328692450296099568001022670411922052869314274580565915836479563966446233021770161398825016177876855068804331612158161468501141114619291858833771219397029665856290816371580460792653552344246865837740291917137298453707057264335243495686770337301194650825715819286806707878237604940784394660769586831839413601957023909048860680220590604936131573140006446470721068463890422539304269055250158269468725630369268989785784079229127770073068745778945160055853182668351679393972649633585165410174940404603320305126512562810996228559808937989293036375860887092535823355635365883203631198081087945412319826563625076099404732281226808910520063747053804239844540226400137903127880505717997812531649869500385019499445387558799129422177511623145167969611565012403281467860250914244667067077675228822881435051397124265926848108546488195336836435279350173222072036479240102775577626310265730102703900879752066708873299387220053045542442167063061445723465272500849882475111317662309437161359375163070353858058227257200505514445292868791829862271389418965785529550739557178632180918925742601357403935079396460523446537127658449928504488290951055877389940715621224936767997221695446011668790751695551178723135050951066698837190619730296724521340810439536830634511096634970151343612317992434199636660485926898677333580243416536068858423022290495171649600052454443766183827279571342552863368820509194613586601212784541808387535374284539073361703051999040183832998507708066225392756949957408330829437216612287222060894166911152562701356470631008896682224237603565518687968296700035164283869489749125905793118013088060203474004730797591814717005768664856346174931289230553876698827467144725752551509828572977304934465191664856767723313523794906028479348315433332576320899471057762223673518147678587765929038736394275609858281902646096727153082628547247768262499443929415863845366864981035422508610181450270284264497202283457924873089706665662903573668900152887247033325385421893347896956327145276737335577352146003589121577897955453522467261616597415420514745189396156041049739953912897680802849886893954640529459922346958514022853660969273706069224978770621223770660672129885933672729991628118952041362283537462105715082609186687814393228756269228278783729326778652868864528306798542411960364133574416676109205093722985317785561653753510991959142837550400264873735819888873927568938061778341192689066940946583972005183906098445804497108436948325645077286016961600246516994634736408636670653044650232842251521496384730073056574769481629544358378946844344903834263935047014685042921995310337247695046348043550080333487380626686140496697820693773324703749949946786796718815667547209228985827327346933861883246371260945964651395895763562687950389111999415520213518447772755947126003738927436934060057314696045085726034501465868298062232410470858353285056617812805467162599571176062695592085988955731111796429902837356576789984151062312272918309751013448372085476820494017535749599387530564322471091552724584202459632601912358002033334748554558805572018936463996641291391873555658947527098513016634583683500503451414355437671607083558817771416709632973051786873776803406400794707374889081936732842199835296633270144693661487371640767872874721149074421687784070685550287126660706155373603912384475559043877284076800099596014954001902143402771081928779897218932927679955262567627567900689665746455762068040925742620800395517190060186834892177189641988177575629283410757178821219574197113352112170808706899603336734201790836375936710479746791196345437818864895807397890968663040660006482412755220865510048078838106731031492047068859363505936725444729336149722887483821549554958700495597249836421066279139936020141830549631536420902816395215224055461275742258005471840398285174814377666958047473085704053490070288284994782543095274693727226988546201402738041663118661276517658508509592987918521191953845910419372865195733965001103964846600747895210792398091859318723769097719002787254319541379356961538971079486928349620555039931978469162759182374916571901969451232677299363549285629064966547223993540806057275648238785668316410922973424408792976633143518368056936613928706012413658838419414613092334949592955947614011250690559039695633550513658304523972398184543558506616424676212560492917884334928970181834663435728515969717833467154655712471405443967270143146565138793105605677080742317438804279285659787294725848134765217986363879153744891691524810745565005209611404274106756551258159624475457682692948961714281927710201472568315144704130047164546422743165470182274769963043240987277544485916991939288034946052174767685955287560531034249951527771765156679443666632744305283762403046577513811318930199783622468018624888098347936210363809691686996532628162329293573868946936003410295303494289828203778915608574997488471743382673618005151862357307144415962331257142180238768403071572679127671627489716559021489755909264048041487678289517108427885973409770226584075670727321374583733925233726979176724497799185314940080243357611530165613863499813509906402300386994500458489051743019227603475389085008484001794977079295086761628891580393395773024766457006757990944455422044837629728124402272940045867473294313944146506630876597650842588160610656286206626783322656425174419187621008475911539270864259140505037634687491989983548866221458676990201878707585983032333582483171728463310550787736460703186176909516243998876631968273207637901161875995828807596482036237650486349848094814944204967287450408276869625874270214403481643406738868098013390519323737299204283991929845204955425618691142063583248069768118180971882645134897930784240154200619534213580159311613362181752929463198310077540591426853374226577533676757916076176784138448282534474859874009314224644681682826355250010757550437793618806411856619042379413229338373373100286855406634201086694195515130123862902212693918735073302403069637362471998712962846284466708406522118209336892168270948536793772277079724311963596917085004696477499956924862136234999245968447535733099992546773617984658990865539611935113821371217340596625511465601343155866276202380978387413049412343917467324746953101355204997255959186645145670325056216975222331381288811106381900680607519610239711224860658237273293426060415416894284405950620859129101525017691828783793170122860876505792060552531366876124841939008823922920800717302463523172286837416137621958717246429792409499349615111878367997074033223030363076820639751215339237279009553711487981913029402737802736427212687734835337268324478034786504835150303119905737252764170197204918548394709819231405471125251671377927684250154630550746690961145440946010078167274071346670664440732954955047720970439142320813210936805583027874937264194823336593855054635236159207334055529847621424509434656810122232151572790317548279938792141165006255967187800140864754627731394850847934633877531537302066759343494656399030000820529911868459889700830122907873324263075678716128791050574490699251942421472501719405184484758556340444349012738457425940475708762851700354590965973203947551019267474412381176681964861594241542011823881301025350091775443700442341908885586900592689100722661430446973533829002281333356520139787354893884011631354997461809954835348640321084682467955438949333610142479895648190285709791433292440411064417215220018881012863614990366170404587507394878269481097905993101390694188283999252684518696631278389080775045860241872835496226623435594795511100116884536362635018627035509912389267218738309477715130196487158124659494503873535641357629337571012524754996391101557478589498133234065778105594927774527657166485146519475090351625388344475351321952956593273606054607853856974629415472410022774594792119816119913468529675852364114525025921925179697659235721257458618155588035436576440702998758120785475978754926185028292035117401523649065718909145060159218947939915569189751188676070846335229433457382765667015543698782051582129585210743215623107973551391819057743466037685332272222611188483875760742083100797233509241218804995563715038853413892123454577091200347623925154790968779759906678513478645246642151500790323345328355872364454543070374797901767351629953124435323361373755767921417231285379141147081690372687229927663920864556476111965446842153838389084796629808630982300380206356124404363702884695243364938826559819367209073669126361096197202965998462265173928609020883646228044231182246452806467440721246584536974462236157841708807192222761386525744041964112519632782052180212027710542887098769406985676295978341429776964233652704020360573642085426801586802694946962647054224959232621921557943958895893888805222108983312779633556735380052967304734163039229086985292322524835892350816768624113030084088894791128315575999700951086099293590329308934767354021745412504400582503949552888853661408067015187290420583968201420157841408165119381290884718065455709779308195078477560110483544379256929774306993202943759293074450114955957267362697969624496552047291068623174821708232281456879006349440514809432784840216061371568240855783307257886215170037410823373958142331319619470940541791785405105478952185422574619541211822293782921307674995175626342403920106590401762973810788287662669405518539976843613722854943851018909240331343840895533836380620433494050160382736725676201140987963298023042119363044354958492329715675720093199225803006366430039125228119993941091644879908577040921004805978634085343638436149494172836221977936685203175597127772965418225456427833741710441433600431783659536946420029098415072316828588437116596389640183792149220505587639510996298526398357219454885758602994879545265738462540366529017826878231981051964319404150113022931347048393807559286485616421255124007000178173281857846915109144347166754873367067600011025622445443185893404334033379962710531453369662028674007941922236569366497873125160712550074479445341241555248583299389503922042375249507759485951837744710871256729901051955232018627426824035033673128726284351341822137756706212352539082209803733735696840515025599656816656548936140329758822445197536449922602035201292279096937215821553417763309346955902095124870002491145478660856637283587805645331817736451869244008348571277392632510885428147539755049927531819788878341535674168373268684824579381216466572219898822010347616476185792859417674232975910005967836576261927609498374441035609133616199672626358729549858088758414682268080972603124899295974360562237106602543686905817816662458014286710697206047687615762362883107828159068285227809150550510477227164671600902535538438131196237782247515162471992556437806735824890378461638432183279433557527853021053535076920118710928777135723252724096816785770119140042784995475209533239083660191460716298547637306789863102265391427559749061423571027056348837888653533037611433793005074144934514603913281724363663630351779096324295366890255447993405458287460817351080240886663863529492705921396462206074993222132136408473756635974178752203189247581519054743835646552937556955079464996298892390245503741682580514002830350045406982301163446189225266210523342304617098527678478657603181384647824301762609646660878340456749674791023991604849616162617339762808630917524326441960287073916923604735291943399096072673209075018477637881548271377668290896623111242300399850571583270436478203369981391870878359811442359107306919804450400196074143052106811285209875805365283447032550457098090731551234743919286576001759374731814622780032211269161102464972115772753650371902686281808996147385335766383514783772347986124148647619280866149773603865263847172740024169212041974478399007901457812911336809683436035664976289057594785271935821621591592905567926763625575831514944353547454674718822881326346755365257100997594600272667469339876043206687168266094420542393356185788711825266832061488310302108186858356817390111710201398442137484866506104666255725729596425613131577738310522892271162469187906758341616325098771873870431859102771011679720188779455548240992726677819198408214842359776155813380377962941108296510477093103771384028322330053189955872324088849103458645891882162960503555446308132664405528628270058177299585315355997981421285818082107100381279715425534076776247852298453468357895264368114647195228705118902056287857232447954127370330233269794996762371099571730284346526596405323570454337649414269840685213283412672571683452198122317362265348152338341498389120389452346567079023497042054596880865382475045587785597827182021294333919898560651034207146925089923720746241616607867176559057024636283877835761552809912368332092845870103652776263002768837584854111155263492147993868232583465750544903765057086589158706015793879167664728769973947389020698006879357114961348079764811690499969159427789083530729418923190284716424191165956473236124783647610764610295766693531289125300357113674334510048084549630089723409832368159725298685234968627059878917155546102653964348108159023902952735283256023285117724707323524432129486151250779985760037280385553176341048956452141940973835993325209210642454492290283528317006849744803441209240951568675261584244569637041653710394788906223878614351017214952975751743407121161981822499030806599180528997436221328916662371544348284952152254147504077761846024976836917934118611807472608591455392825467409399698936080099838075087870254892626001194554652053254584333110162647241446844929330750686540032215062474239531820156825737280398315772283730457424491024705292452175224011382316044531117383828860680002815261373911976379928000549711597754805126086710539878588816766245921799363152640505578704217876515046412843401478753061152986792446737819773622201416427761504960582613547800525919126111717083159392587877764102006181991110799003714942018664382263876552425860172294090441594059389772414511795107875425271666220733076842080083014076316253706853838470643917078815791398139868084036728247725739935086205376503106088021730477178379517671005946277126942763094700060600021256821363129671794859922361683064632599599896454922188006825961264990709990944319906578584193024393337545330779538974297072654262535281162147413815741122739863763985288001269453429373181921036640342459532971724777107367278961029259378631963396364795974240099605185538952698434611104482674803151519359430215673987445937115850430225061340009476309946239212658073085655151639776012031735850468374093698000064490747200051583972267656665217318998837172625807909823228519317835127392462789523026260594339727131196047440088242319238932364491661012433017030061341471466902000051753218426976431574836328135055704561788160670409748907743686618930595682010122180777883417402702038167601622337985725872582459290145193266763495429697653903148636719601829115124860744323440497461189116358644627376141822850777433295777285746175291922852708906666285757626144872159794930415161596118739770123662588682301020095317755094872822963537735925819780919406402216237682682633910618459334997206065843263850789685618080242137699094190638497120287201547378321149398013025294838164114185717896033792135136759086884966755412085687637991087583248917387965185563198478926206062293805463322845868693368075172489822256161173293401593230485723816340577628357238218143648071040724940928268000374312860428090074212434017563685269459885301319989704566202906393168639038463211967050369415605907162651685553708325965385598124809683422920401281351623964799132381039233200022763812116502530869813781685780429968046713336173530476753778452632598735604454758396629198891488001457646173633307997613640629667551295687371890186287029618677463608249968921078491286125396114748143465749637397731433539950760569683090027354270015052104288910170244267336814709465041442175689253881972775697875889971021241641325393940420894664247872183563215088457411569081551895316970144543708574970027584604838721876001908693360763868228232229229048182232994244715728938286030288608501376067411120716266379917476540837693640414171730242135289151563910783979152858448570157163373302433661380697553531728802389446203367104289635550289790382674472333030367828686279870582544089009742024824439939708225459511002412852824392326952094183608905655136487966982674351214761399655948608402833338197639277214098068684013826525215499659022686573774318279598535619455660709104175720034377485718618173347349377452588780493166434362201874544056466995689905335117483639449882148809012678571289274049475352935308046551451046879281889422865996406849535492027108159501007727138110926146949658428705089219133801940680306499056524461513491642095295840813953628594065802040936521514576769404003404901149296557195952170934083271677734493032332208173553878021345366924110695407973320436562753235001167152804674379422935754931011283766513490625220205677785713946576917539235042754797117237614583979111445712961298022528454942382063888316989371350710633506142200241923951872818405879194941136104911319406984108481697788925704131577376871565211213881122324208054350510817234257235678076654970953018252730541752251476680580166117577580240765789260770976794293763720782682780364845449590246658947716614670537054385501447500029784499529591216088237053213901581974333584575028714082737668299867757672226390716851143312003260939283448998976162541197576965757609470401856112814645693725692396952978686807596290682480176254210858599752008774637177439025752657074274817735622234136545829313597434415733132240770231020270826150330539168119275884042553769602072795968551731535359713707128989668960681630414011568244199677633554081556377853511408521303849089262246068099328838716195258523104247889315769538807064865625675695987812843329482544161560184544187635501989527718881093256650406616166560332234265730411807356203423840642128579253942342985316921400261989860083674334453007640646254860215451449288412914693605132025311302697110803690076260847990739516038740526265630873726417586510516296048154824195343338835913927069667706136643028421133276004933238777000259866689922687714116417782330101699709682095608554991904947578645297908783662697061889642615372574932176461906280079597095331519880377665578070492088775076785977572456811335952680350094408932250471952949247362666809612056815008561847315813296087353910693639132179667323092879585378117901021839325673578017047039679379378825411611660743896550116639409151986723957848780943678926876757794928195063636379385817277792971722863611739193199370699433089235747085710395752744001662841454979494896895487001003486726547726155224169979740054375090695587006406734723391085528937878929979443481641306846536030134909540894849705942728490437253736410394315915035691118286643065271906705915519559535060022607931188529950012628834569784006242722387701435147277097573313226045081227710233060659523246084244950665116108947512132898944515568451898001292812427892884800829998910127645412637005230677246115425713835537927400473540128359959949697378056086875666441185613881382247608733980228614980283603823782848160505513270856458976591017635840580323849978415394422645076055674191059860268362356473728540349437687998155581462065384784573464271243986199313913987707739761803128701239101137878227467378180775771062398902015526466810082330506284277828485076822309259291398495678187708173712759539232167036507781148748164249957141910794830503563126889099881067379489561028495729111285394738674327010892382214523548894513991684709492473718733485511783442088931959261327718123307486255091663870785909330810957624871794628078460993623212628028477266754621417803208137009581087534085707244411325714902668123185811526944416981529246536015535412754886214104848099080133249847990371277334746774262965946740247920314600323582400657954470923672351967073116171331143788017675841096155295237665331741692782993079856311237101561576485231533951412364460457108972662889546621419949667316082603744625519977822229076733534724919534030628882324713549139679716083113222759093978941029395859845097892337822981520578367592675433971711223731530192793574124613426152377212167988094687679310859567203212002876785021599444953741004854293139279727506601014937800518655812509865392624914093505941129841757718507149690829174749008510611557993637765751143218469791876625216949868584713620155547159171837273011600428459590082316161194918096458186319468379236100708628267667234601481231783214288378750823225690657681773323183468787202590058326747313040624211947778541498835542866514136677728756400790698672296931417630359590314796001364763019140465039248056916116541060654833069401040524239401941556608546614549686029122713997175911652274322529467524257292081145928246535316986169257453940822171584090371231147956157779375049661487462371764747617738300050284664180505831514876222347815671219274005520724576545179045042576373630802700559377615287355377873525608016829547948093312530182760145556833941478102607000108945164175010018272384538703593192070983894754098541361209124682197233713259572069358419524503670243380802159223067777212941939340979765032729737227719653007769945189229171429860513537558780917953886179520896595992889613887978715381703945602497036660522290642758024665688848666922618989220240910945826931893429702011526158905532201492494026551966525258068137656773366172061348928400657633859624175132676734925767803309434132407602941103913755542462059463323936437172386314565721667638892324210977905774982427913886333594977466812403171969755774367915065182889063906875274367243642626799661945954966087540602460455357065169301857659961336099842088690229456392036740086248997196881800274566722983281737491378482206460400428763526516698455826926140710283616099713173284641770695840014550274343732854523702285035344232165121203297497809479247717709609293140592015462933509708443771309529300876227042225362550384895091451699365811096425700674367573412405796480545811795318331200209281831562136835812109791628407836955462557451234387166220310218998535133644257406419569673312847476729633901737324405344170414414960072030720378924879051971219269520819391619899229979763076118330979198320020959585520770525386254533649564883404569321887134128041775220535789957505150727724600015700750776453985047849217701407340043528381946581490425846807893791058757257893385456938064288065221190366573934308003664729458856933589597377124035854447093006352477642234217998705340907869347046497255159660062745075573647632694034534585508636028268005472940398839687048360229549836409715437796668000054837828696161488527524061230077745747012554541019829177593005480201954826522217856589193289419374933116354075308125409319627817266358501472522699676849654193296286105577697455688853390278085351430607086758544472083139957683177460864063039752179235655897323230231403214007137938294072731782064852787432156766712770036297379474294801950264649222084408583521755768595824420915153420156830099428119243218502048807906828352579486576396576440681263504145160836386959728716856350220074989627718400092529614002602869896466393479567845635966323437274863314263720722916522784815981139164161710220789543539784982805579773703691454183224294253313019321780780858953542640065084003754379654123648680304418517537622631226813915033679130299529364028010049850770604741191486699715373826892882330969192483913470146380633613842862434755360317746568539297193090907587015031392463922089261945296237718168471636702389630103113510389420945756808284378191351489997650623584245197497411167729278465051874918142701589811475266408546413061453384896284640631621118748165205173128949958245896497867710372856479161022067715683515263196335149038580760679581181437901487266397358872191670341231303297350298340258697292973602572702701987011743151121771542247863214283066791874866128566802065912597343797018692462050528564091277181570243710693896574798007803581057899764499634900899816414180393130926785001318940060964566236540344980686205852734014084650730639078566530264942925224708896878931135081927535430507945546922836366019310875548013261719731586210128449077589609266951713316483659722244320172671091564556535207670372723631537578557692172712538845705134904861311163228188303666959374220432015936536944249669361015690429040228562006195071910973883355345652975122167787949601490007207816809705314841321553308970340107589920051412436422412748577400746794995831903252678440504482041090375193960980375137978496293446391847474243174204111924687085051169185780885458051115573123010656162713120678651782870949617741022238551065769724498401650442763646293084474716739626324076579268664515505884718564437896178647230458580662081837805447821398828992778869490640383905975708857736821005802294839729141086267864148126905031118473461233225281926710067737924024995342635750000134278904682061507981191285711042359548401244959057113087697354985953704355747327938828694822302348574798310320022362169748970392092361819810159458974561214192553160901761073326345614668389473038038752196230875996889353436746650437946473057586526394546967610042691254364344690340878217441000740127116933374158809145968550058084766436991696232139010989896197647733945024343630087278617880200377434297893037563662290116894343481002460863699969952260814098937049514585189395652288575582793440526235944365486663394797022675692987650550995714089340208249472348416457788041590130227591539390610214873297102431408671828000156058223269478298320906133483496995645159095726862078795713582246103544359414742198662540797179627405683840929965826506794918134823218114831014304367886220228828440220897647112785942930625588062520497670730927687315078630668751013700509698567618081148407292806182382398548974601683125473319013758840580909478018616431863111709474633436770237081062593121278750737724663054613693833247807622332540597629908883012664997301849618979639887570430748098846760878524273818367783350108910736604052191631298446460355173499601139960666927175777373724251389566685616985763323685886535213707102061278296400114950074982436499994867058346835568157565311978862704059174175164145030047843460560703356993493441905575010062162293320754811821362026451962630382808060246402858718542785421583482793254225831204372030759547354367120833671075814150975001020077303954160844700254035355119540390870470918272657063082460859642886498946229700734847166161728158363337776577298263448472263471670072850602068166981896576255999236911398729126931094503842779384845300540599724307632927517504252255682374010618404229070129468529625083200366815226405254913442123704583702949198565149118362474890950471515546724992398903935104274638531018238927781945933008469175333807600947850886923396645245752286277370239190447778317722792382828286552405708487074480555853931130039395630508905204769416891179887321091648252320289523119547700496071034352098485879795350674642746218243621298505813107172564339791915923759059709793605476866844264855898820236655461774953324057858463220175424438231521112934259898123191577746810459850492989820688594473790769708321740594230295761676417150735205486797984407883544773684914371372244696396713332474108978800726794599733427726309628174987990645193432667237386860337292183747277002476406826691755889231992650902059115215991300025398966168253503682448956003392003792511355045690763597875215543873074831496666822913719366167777447704065131185656166431745553366850069859209981608256855467604500989177921670056294883653270831009928524636226255239692294432813904584234320817438294103296277750951493447437248266556601120528743864905050927106588666464831759046027974874321841577027045960665461718370680757038551657731257985104655387335774733636131588055438249478561076935622426479213440816172975843945215724774296352440680406511969006718951993801640577302018510954159068545713182197940600306761624417890907806578662934448566950559509425229016054139643532926011306377769670660678822023651012724089026230234688014034710527197718401138229669049805204319318847664532899001506216818232106794403069777385853390809761703049247935689605965912940876277206607581342222542354345278105991276860222065916905886717722824542275325829857750292442757222016016562668949789888597772661244472484734308477112249013650542850200914898136673871638653148709917406909935058743682662390733392029453476174095552238913792536529339411485460178418471534902585439897478582394039564116184354179583893856564107354714646881051622734004338277732171853884336666017995111689150417157087547981520020780529483225819388430833945795619657834232245107438707278297526136363785572388850281236581231747324420244660701957529314811041990513659200954355557111622891840929771302593210970797014579756196850642307036976401825018775141362472374859634483429896692058975468720016281535895464481050085554347067741297150025633794461050335066758381056082339029243293358172524027446013669398934749915599035576753208971772444540066660485360040243498013464007851048762033031080470132537438707364077647695005533207709398905764346372696284230119694168604939624691145541749707873615582968648140258914139561702259353870097266786191796209434547792891322452248898952648251856860033023911151099988391124280381088555629745575571313948045214991070674381959432426102163497643619362362817227574771833731957300709157513101131036183849975929856071692224550040383533503568879083058229122687271871264211656644573288832193188307352090337345435918705549625275803188186863833965440997357375704264719778660994863749290197210371963698432738027091563978089440357531707857588462779752857717961481419173616687166455621601850104265804305983837431055711508235966203820118478256514836576301335357657777138998106805269135388279059006605969111414707448663083232477818617080618409847433264099954037227916274459623141765017297197165561323360438587990595494669566444319461434748690353227084407804040818709054281331617331023713553117894269253630902603718803839241753529317234493519716461363018594365855330100085002419318013851374915046413595637661254493898557363711519959924290580526325007649884007410990735597390574082344867237078964744413754971348720447880363416960503006367772865184708879892390617524853244529943373771551728706535281748476976268096131184943083858408143619203536096681982720414022702279326219373975396789699245168685128696092374259450077118638922306167012392594820935216813852417733497850098716750762078130695590994990649574826352065019453635338185446068311715631280105998923251989640670766476814448185221231345316027149445452728310110174366240329219762521143463924008303257704806093919967765497936306398264662817412180964317899747171290232942195643631229206621264164958206593105094219414519834438250711841066857215651164528114499386247616710532690580307306081166209830489223950770288446675635819183848577811955687104466103726016501646206085325205095599090193370992872983975321781612325025120992174550121102952217981421693289584842086176599042409068114218753191246533182776728550822879715724515650005796751196066256051565638390336072062077287079825643667257473160542113913777332052224079135490242795363268664524354521228810964839861206458490343138806177916982039551016579641365576506123975891043668801569574124412955698774547984862647227498942261717278811413209844955207605654489074854294207042207742784450150260104806631975748890943789350758780806958896131942983106547832181258177642559401544099100397045296661958186993696938728252250511963899418275927886806573178560318728413722679078029931806938521693830090549405823300598711006045816390116096011716422696165849169307715487342332879948698875241238342514969585937300140705694233365148757247566239318269053061411543938234755137360690195318530047706962515812149769753707954973332603875359492596031094681745360494728035600972298293091590936175761068357086218817943833944079512512857633171893147850006993003256652072616992332426458800979740865688444094184729431898086904211629635002253849576980343462098542886976721265164185582716754273307043337572510955989258616555550320919413364272752697554742512501694191896424469662477841665880629900887105237496825563546014647644930211589558950707853441500566470069146978318623404222514692425304631457763133060230420120239133330970302330742757970148161121752058992936019070793883492978853970353364130575175829200584418785537515761879764350760101560127935881543731784070491723430683643097897237527295262851437923898088094479006220962978788413733857869655582310661004859010771069447329131143603725508612595914742626708500818333341917405050481812159334177912353308669174532038880657652971330216887378081437340911846648535888675685727913572830352547056320560854438396942805202860982990719734427919547410733013798884415791440933106990011899666740033613538352406564929877952971638550093448758727666564100607349742488449615715185906343552844608268511722269391072070494123638596627902523471723444897851119694540610050548400643159356330101948695628136779975027333828185343790859495123749602277383371874574809703383062689257731872636129550954151291570570822268338042129259368943254693582038717733150991471914283396016656079765637883341780916362583032114614488018839761847896364467376849758866540649349688838732566132414858308985941090555622486596409799495543976635137413443488044481982885144871700520935937400021538469567883324164519956498755475024051623552985256462588198368023095111811196141966233090396060444487464310443394716080167212719423503412787721205315017307893865548691248672892040845622574942116656090743246913649523162336461357719055061521943712420535036677043911142946084848177264066474936102158033011055342434502021248229650876326071641521752366543117884408296310722485656541784930075036859748079204468952983498410594316628810230117741703759375527575304470011020858744198187670846517461439967187692998016961059028680846589240396195253708476322670116899634512228567958094473287733306259226498284958555305016602039683851295924466140416560822624139237195279495556065491393016157754881254580832822040029699264498377439452620694021718679846282092013997784398711824510776874140084887221124026430017863441419341734051374420915417799530992593708728683212848842990893488497985817731420039506016065953812882257192310674405845943558579296971863622554649082310680351259849158104375745540803290294503636038217666489485138351420802960652569935306972941696529274414775107177507528366053784381598538166654938149303128445868200368996052308449879382529920124638771109272555375990494059276094052817047234167128146862357914603397160325278477845605427128854736697252804815573279460083579902179912693881052398287954574279497723173053281429529504480661168504662981633246662886613560629152344781997678841707502995222129106867037864170649614047502408085728026298348366035790493731992995936419874631024730042017580491438479249611570655443451021000241759195449829397235938771835122506921632171982766686432344540059138200954221329883282229815177805824494333056470060773143763698187482492361150581128181661583130641363790929366240227191938659310344524234247319760010924345180503054567534493782851737874344751846878459234559408182299418080594329323964053320548184070679421429141338911221404154619905721867356209495527307435896460304176235192463636056102093944797209092434594012993975153273244049161268154250675443629669873317050835212764936311213682526016921794284099980380096133306322016036149402214714507996669672045065452332564928081188968717651081190629156889232507833677993807654644063149825985365252224382806472877682649656310291193224591250800941474255213222189077006532970647402229112612116520119097928407629854094911659389674398826958361946006488958645011302029111091255048344604078147327610479487783999755316066493375106133248269141654214448381434107195842523660797827360602837150227058818412525717820230570316697868474648234388833298233245026829915226938918533342734487782256880881611302386722807990808074531954736502499794426772045020382335122596474106415622303678281898865656326758252979568742537490474737771130674157017404254757467217329726673487447476631634942022033238349119085897955348767340168554283914419655842123553900643892352222763891797309382992164960093203447597253081582904760302945402494926185980658725923250793099985893216279570303963187900082837934941177315255233616182810274906668946102781472212896028920966170373929989019985668870672079107119872409056871561766328987841753092947551710362044067221723625816643062873076229333858911792519184963348713123775252577252190681771542319946825956499344502245162308273494431442146056787970602414969513569106956868202252300009458263581990396636511012587468323884558090222955126444164569714380970388643304797888399573276341505966411558500697554912747715527020638183224701543685041094858169922425086014673863656633468208737338654714835561412256852858499188454026075555001716566900144607529108215738379916696854047151819997670444733185298540331251332224595640339778038146379302486797117038649669329930991635821155388881427724368436516181250177706916336743670735244398622928406268228809582600168889425977426972977662652593592883039234970591957605476772002217880637057438603291226282165877882135209279609656226545128602955343617889780145209395914249066733262336321530373509160525688972592625166880720491923619670254210883486616414174333357632137923992153704701389158518048013876399577599630742589977691875092723165479571338406782997734697001983565657567879143423603560236476085483415621541968329114066256179692303988777152094209537047322896726296754228960955095995165952287855125720074456804409358393193390325458691716063013188488635745608869229124370146101537566975533683167306771987263698584167815961661089582306869259422759996890207808474248435646358384174622651721137910300457305167472901772906818305756322924286827188787620287528717919552346696012681827789599748322539671612795559334838470720543278979450494908372163120132614651486186828456545743968780245919597843558298869178839550761706366374204516181851044056590161485630352737715854455170796124502491960366245894086464751110039621687541302729073737907788746455526727806589997489684129677310621179760382713128529541494439035980016652821979685916745806844164091970505426197886470724290638982312586339787133303491477284167133246062146005586891338783894627973285722666523079957140724224485451516716395305168824531120664382300251811920748518058417870087397754710566022599857994521445759401563609324049833539569835586273702883263270319870854356821498750230511659667526440633271136346654773812522447058480052301454217968529508134948074757218583763770749857988690129866450973094035722362803058354055467810558853341197308461128615244876819892391750329747774217040048807876086447354634522352306892741488968286085621521794986827520360189399200121943217687324885498171497001885279788808965596632656324525169556918292538203730520917244647970940840443840209704961298694078865571796899468371728727264054905828214814555449801124292153167156855496866619070179138092878090634772524535351993293731203312232100461012108049437706559594455279991086713088868575558277702185057770158747931439895877022150651868541059452424187883557155534326755261412476410344850343059212530480195253397985188243580155746428641714635681158352885559949627857742282042138752879765561765767716068056182459462055791437335420855634050077789221677612755515881188775568904154546269016873067872296094565006059415280703121495067476834020821975317736276961500179844899564303425605352181704752356608762793436098139667008379819182612866760720102141599828576185181670451039597728128371648267046440053227077091959806601158642292862265686995006603491688974443383031253146616679116050973309738519297283708807203426772733723182751708102981807138751646412636170286511470343392208039098934257524825206681583153087507800022893101622791873150839166996924644476438669635433771994510514953643111327367004006466628581009311660668459044704483211433978003911741383064987962608057501042942363060124389361470473125047060382777645727917219874663809751865277099239985445639294003408940094186755463637820902772598860903471270312589445476277853090325408906070748083809696621736560864925347236048012388619206769440468264024839162886983470928744727897350396825440289336528748280371606051776605753599152879168751567676551887869638970304393164322639134396284562822072583355275684719249447148475263903514554252864070201170724862208591328302749338006961907881668601060256279463205917410995498340239007094867702793963907870790247887777787904100209990788792651628304503628844295368398106855896208528285739136055824413831933817715938431110093119096412199570443195544852504923164189753026095380860766636031132203878176861002896498192747289252916089157905048988268410159203201014340830940741003640135954411114647618494570071104960282157740962601849845985529631865862306058450519067388477981064785170095004457448204864192029053973446439353477341550661797301015123171263525875947006593091665589345830262230888576425953740210208374318338179043369031684212601625297771531952701872094818737711608662914463641103601125173215585331946167768411545910405110501865082064550630001760579470067274056481114800868284182051250286285969500219513706729187275212213692492773769454044981362176045597597805188191789443128425776332062924021895949191029458232527050561733694430516776914487429082514897339205790292286753482741271789659134824196761453476227655837679714678801835130535583895960717152097342518620963874606131815145750013402727839953567020549186230187128978490569004834067844990682552403552390622943049023778097341628800603727562189870635003452652945314287771628858227364178346486119680430403013856393266607823234882405756690628535991780163097148743155421537088954133671914551008348341474052172838211086789696363049073557860649717747243406615602369949489776901991493928445269719037755204251937924934384421899818498166397040546187622649993317756851210200370281809511542709597903533335633532807861927594762859791784367025766050015863839750269211683370458435910938206002057887793017028439086397262716985990242572609455606426153970059191400623327576047482626875201043873396183181660021350005570566462075121945697126966311228376703001086539256190436416456136458352790979733909986326312996268995934483286618019789604207727473591649185049316927212988447793265638104388308454835203408021281243977240445488005493726368163303652663865742015561744472610880072667436619358423983043038412999683981356676303772539772835633267169073711189315568914512831419083033437294929659149840000656450618672220269996384259905673413067814808032821205034083671401455625994223824092424765336860243239959395162770258101973144884886516087361853589030659264440132917655677388798778631972590558712092732184420540533494968786017496134209404153731069078494320514187776217145426131861414469761055937673672632684060485894961694811353361108750415961486987148775549574768337345449892165564732277605136637902273552561263501486944467609888268942910608441787838793371658163588540836393975036587593254265916886072596419971155632183661163591089246456696440422044537491092714855420620752450476283394663569202581743889489183180474413895240588296008634734167851240318999370978754209114539803917927230032394208409746625174831439268645378769147706836666498568584761979807350333199866876992314366239404450522137053059047806834072124409764112784122873952239388748273611217164121609997643043650484880788190682279954576055658802669695728493718860402901126679544617245570532140530830764898361861227152835714922816686458618208976882588690751073872919410119760414349682220885759863965678557918507807710549595986397185350334377943455086438226423256436484488548018749530130147870250131607551590841948532501166495776672178972347938259587601188131573579251753978498351842841004672676132746558711096117704696487941666061904125480494630399328195596614630908780249629305055947914871635882169215858286324727865697887924741163267752561102537368080684236968276096850604169507257956650130390461893954596631165424298575524943701129920835069102302115862961936008511230617564833252653255992302562656109043115377754393777711879638346457543458676235281390166440358440144216002679656772634118552301979048375931047261567040937903501148866875227273954476344726830608123667342089533739968796917771472424997487198629623574786906619273726291246162771532987499369873576561021286536860642959276133172399654374445562742615031419332084011816450833142012090984838162803131863932420748138677384704970498577133294931420458364694643442104474685006557569935674045596947259864342537956338155129142370944669179511708390255968635736044309192870547089115857544259683505114715845859499976201645734443126594547502861240960751317515893859149742432225938427253709887223684120983175972870803560991223847436867871978980825267169136779355722918856168150858772525893667407339830392832682841529552542842004092203136369409823860256113198583388076523898572518230586255290987622821021097130949670361855227932264412674583582848303663359261679705253362804545862788517674502261001373457396140580463894479580914426688979320759122400630683832033505110075643430861285936365323664299896475664653269557622379590361541569306605385587550844012576405652950970487498262646112804010069073391689419191052628986187049472930705387802472460299866310055550792974743988143595102380735611835895588785169608134512249996418730080387875443797919514831183902268373176886870487730272735548721355832173116172721905530308221611479679154153207387669010175511111771169432298295144496541340701655824518956849663352818511785488098347329571783301022654658729554132095442728226407426668452899174207385669416647214440930351184469602057878327523597195172598136352779867096211258388613004821579330582098102708257733203819714928822603333261742373065313951876546939795073861170490863226042080666280735844420976515656206518252507813624413246962856722487856545440541491800111346433240656805474393383262270476228059262127340522590236771953316658031583275098528102111098317767611551702840643413983659977589436030443114267809479861278125092288094417372257212883269336621857142103924023582192436000604760174597033753745844337202845623063827030312625618876280178179873977379308884690984156034486058957898935947795420238095788532337745681079848695756753331348109114731694375345658098099059286856618293879658401298827305662455700164444471353743411223623590869523889865812168145266404540591683816613838482819149672101368282056723873958630552795982769062983731749020745839731433860531318221063632082722524741808077597884263165911447322904579934461388316584490022890057061251730400339023669893403571229525535143103321895723691385946534291401613207551652014292457575206787669907103924595639435504181969788990918433298243837399064771646160367387517741866137086454378075072016789214313333820702079486482375676947771695818386239539785476565045121600017114354422146242901484453825024033109244664000034418036478523470679328828331766699890555711746232573956990350911352665733831482627748974150492269490528078572156424118516624444530506186043140512553435961008894839814973190013375552326431894981579074254317143408402507758975197106626262777036488358224819556286082884518242798900039056413064544345136251453385231579951494242562171558253611074091765778772861408415922856284202549094363652714931017995119187808460696225111457669836981403110341235448627636927256378065794563781144890993409469928497541500728901592478636301330831910774552565129372541443129132894199275249454378638488249613807456358413168844807207957968866478463335322308497032855368388888651596152654966526395710496789731878001266037238319973673853103102604159746358125381827791175107816207405483063907783148554917101887149287242034995284127349995443661908358130474264358634816078477547258753748014043911729225885781302076572253519415102893647602263335904643148209102338794772106002614152560449344457668029128354870508083463439111128848443114493590672084969868781779898426277048675889910032553181025520230049442928828279318005008733781424115537719401309643004718629605873205195113796381102843323818457462544518168784038906308684996699948315736364472293079359728415113970378036096216242405309123329886567649066694521566822657107835292685894225201070247990125926657659197896019481706601315277591533469969001684212535233537309111271609350181283127028332605611874799601915137488274068519455483113540004473745156239695972935005734865357343940360890482403971393119427789669759178270438021499906562226931604425669786965260485203472279771367025563453353670312738215891588456554892554432356915110595309394235242429982937381078554913751268440693423929430374464694836745938900249231981234990735558022086038999398570988035372845678490888060000962121213362425920649574755641714630010157042823893008338238122337153222041469613665940408917922233736078339825222888315765872702158133341557587788256050002105087489253072283695156006026673301543262772674810395451903086613940305327014873137918538763959314835783365187042331835370480196367889078652251489424935190013239696369613396368035439087675647850068963123439330465476350397848846636858635651857167455700577526059579290612804922936853733570309949128322008360390499726765738319056722205426994267290829469708888443341033949402926894835907139466225938656669599805013781251012864497549902239080783415233960367764799269303126418372693502622019814685662815429225893638131313751350941459319562830511461824081134794599401554088054624629104847468534543522043826340251343138973261879401020844050603123522594756446932154031414217415180636221253835671417183965196683683449344186489422618183767089802368695924470839152539348111153698801054297640903854020677845296240568796789257567995572816891800828709983064621513580201836055341476111703626084796186009742399228094486067217400826862153886645676333570709284931353155955578395697200088461678477513331980922221710956665868386415223064131786822941320803659430644120299576520129289441942287436519151420712518840333390433059302640032675339773114706062907888145505523487257075412914970282169769870783948750192487125632832022676849590657183625948515718524876435866783091766837823201626902443311225686417152609708645260054261866140697496467863897635191087075054953418487611816540034246235754784977062744579996610344475384656464777314833969075878952671863239806335135499024486131071555098638194132488316457298518708986370709603233631656764693566562070348175023700213804774726341940516993156581034416291151596024242515080103227506417009682874542427569599642189612235522219852846560064765742627316952685443178798120455217324700253346071839575133540357593025215945595701829628281138664683676671217211915870324366053743982449486597646696311186121890780879332085812673290604286041148266266360999608754064387005040903239957240044657497090462464466427985374168815413237553886085903736381710435366829717642206511418891565758623506798456573646795077195334376590747727788247325557547756683859525694809583847235510136438573491413245780274441529229261418686702148738792827388022745313621730428244888432973313050570985585810624899425729156278032792484852607427298628460210710164214004568900479742551556075211358936455790285569237339377144966482413601048047608528580972666193510321275110513262640855719670699574042253489211323527525774693301066703369694148704153579447153818372641975814204837897330883059253520723592160913031144857581929302518718401245902226548327303023064643175209873947964799067815053443722553106228065521234291787665498535880893483828970930929815947604567858959448679261229790022156401497358298221990597390998509718530704762447236811696628351517560060904453780367718997324165850991541647864821617010237004902692171402524647055144932533429524174105735574025495685800840823524904419854854481853560578165073510619011736181784806826664738801723528157063225403611854911455440068036035410861054647947316623727211604140662574751491319203285070634982385795219005307596882582644827195650501808198490367848757764155480104845941074938727084351425527300454559416865594304582259446791830523256110221468316421182781300658261360812712959529001896524616726003787895483327275166559566268005433072601795687460361285581511538934314672928974386190067998729321858549686566148812515767147119393054769937534117766700425769547580900300994281078418099040890757413464498886686763709547221331276158979232170211516797390552020652228565500643395856686184314093375473591825926115143156127009082368560270897468238643169561518417398754914494810065075522618703476694638513359509695847854154905972319737846236400534470454909025154155961232566131326924437140316965767865622671567242758429226292607152497750649139802234100952590481422586118737196594879909185961888902191056223154958689761565096670908395237987832405224184319745281428438528288453229701959118323733622525327420665580955999545874147282519117513146367154738745818666510240656501816921989206199672240115746916922863849704072567199039461385953684324281887822589112142539265265594964905697141484112595697639052960758604228836983676629424418626704292587106595873463626625486189038178489880818299762154077497547719821227555384399632463315148191812779340602190903386457295966314315057570394480492528818726189750540538824322486476287474265192513095184919349105698902085571179139506225974427801247119825922168590051274126178760171641855865191454232865902403230604580766852301428408091159318483974700709705275286827775772326762984598651679851011924546318370534361780922765883120196504845131211488512581715030748865478998156057619499132113834091398543193711315158296383555144245580304780521639254287442021031084186712543547907603984249742575655677816063221248001033173104592497473424634163103671766075484609985973453953912727593097201446493719647185739659351880287050827729478889232456792922026370029632550916348715120720089967768840185873438653111170041131208873031072355241556323996888194900033258794058086227893439767841212679429974113171270074176876788029851844087086905331136836285578753173864802611312774481370739673344719768411954549359810610835055172567819674244029626674965561203607407767716295838857387840479058632265137518793934534394111081304822656221773195492785121865067052717426830494132479022630567977818751266190779889241353957171825647534437510945675514163583867901028540107128671508285875448808726923429054076635447999662483033503000948111633466368406569092865085729875217078203801233472429647438800852496420195720548048000199053628742133482552278098526823100043931466430225028464775543113944726005944333832592709354560839753379737864486869243559353036761767254543113880723816622287281128170845719699555140609199465048690388028461068116363965169525117407363578660495874502669582161197673380413659558127159026334324540449412845231964844967652422180653083881952518115174576847332257795692900865564347792358388816604787536815210473316722956295911400955530769270769510836205536786961567629084061487801432267960675631768832707361818258336405129484241684130326438288350124727860547199095127164897712029245959222911043912990676348358235029343857834970381533428339471457245071804928273874887655495276544583349687737903062841758911021412216090100866798560540847053420625174197943163860413826581236700957984336513396734667417087688014926296109602638956937882497423217912306456235886171983700840958638271689756710399057597135041026565886518507478356103670750052382560268823015008562157924657961403634314427944057042581494313464357199119461117353419265149801792257838978635445529475317555118579787531473199139291738661224430029000935147338357641450252943436890230496102221003321083352408037121383697844826137540430064810293941735007146718845563694324304072110673177020155656418754092159338086084590212572024095632247441601302968700915334146212634315286487915262441263283506885238749461616686179516210980307023099283242680184101238693947899779205497445411829181248840888398951364683559615137784961148502402259565723176909118371699887898726292850252797216926942733136346070124485884300576863225658141513819256433980924383981116023652766470591475269585967375944906322357516073770585600672095953253212528809418303180189914088936356080608825989465082332878026770940130482104860639099584980922727240666358602677241250214055128619651470329155060885175507168635308200989625668842234598016599708772090732052150090891117611670238035225768934865300355533132542872424930320701104567052050186846882681109211784620253922857872930609763395702223363042556745877429989957496524746648067843146090977576445061236606490578996882007734630977859621984797400095158935170356303230790490952590302575683024240869407246005838907601963610996941355988329587194648999778085315456815364709687000718282881673598289155744351547530055750593804150065591975944233846399527320076608263710250997457673732603332845986363483543440740206601387086993921970072746305173660661481716742491264605527062209048161660607131567380503772804309344637138546553775516006599744708269794860640121943260384704741987397340906188727659865455205886701821496860052139388378026670744681163249615979075946903973554645187440716587044535294258320079458499946906080973828641904524899936914354358836138970184957813256568029321179334536180529686769609165425495873323284743194472715776305190254414678455720302120408839379861789305770638074482033341896327914873063785790164320763618574889010416948585748030144842922481811388138960914735403623315827631796797935994060961855387959581271424432025027347987207342025055440155050722476823079521121171100881829920647040194620483482193991809898868305809657499842871887669442607000451896681319526612896195115224351246042334484003961145865889098373774648637825595684717047182368889435828589021901911668253236997690793066806274976948346934891459758417859617820000953941963848227496010817682657297115003502295827142050219278277079770128511817148187152018993824287177131697741096335065430893153385096448499368493425199940998945850446666728980206238472556810924942264586546133649811901032512065122847091465547596129716104037390685573317404654643974810165644801858630504101093327974616239276172838201246219054374105386792216254417780036366237194347667322005014616456390447546481164633105800669913089695588610152860276798206014212929338873005942298448664165218319902256132606475192300233459975267906825896185496214889516178568092770088565764967871821162590226240978140734888120096132979878589227805058305605123259338894906465681383795434215696445099501183308905285108579629157946492239834489231765354296561865858040843988528470020546687871368643956549361508746139554074789331220916411923797363901942791801771475142746251700498458313653605885452604841519898966657597574098437799882823145774171762282355079040654283904998342266970197854832549184422700759794872008067816657702261786346128257282469156050798541770254638762341240452847519141665250510014221498562013881826597904189064679263583896019991017456117019816941460263143274562006191198273555080176506199568849100058525753791341499206530238406692250006464795751775064552391834103101462188220291783731863477373600465934970215817268511384522168522940359518593356904457732272857797812740344648141310111555243660864085912189210868309487785083062844933871553119823957263940963998081504033967466749990164885199902759881159221419384049020611003143981783156745705594830603842380668775118964280326130892224230485681674762095544774670289813074914513406598831439719731402187879202782949174471462117799722640230561521897495718957231098165268110683791294963401269513447310449209647978257193215119698888748426143472833483703996380005189247165636109362088175807307133464781490091905637275440290843207638065770768311601471211096988280552223277434966412611615789775893363293974109201424377036389499115692453985085534330289962338024836521348548325511738786426511635142600013520193551166563861166274546840117777450815775617358537789540284213792751440436160854723737790711237389129805184885076124711931525393708206799160827010993918496958232615786960731288308657312318373952125217093736022735039356439733529445587906761308769570473057852683915093771456824269822769595506479940935949349107588677968809310846053820833960516481827165229765109845312080992925470115054125083716131031841483085149413577282082435138312147845891759720109348059689906022955660060313504525100860766852369624079684585665752321540807434410419308073439446931357480150262972484156639234323855632914295061513247181252078924636024194247674313874033859035986297745110220027539451000859640925984263131769735589648887683865085282800581625665485478078000886462833745150678231816609241956248380598403275556709755649315388414047507421843566804352986780246314702083349669954548887923232508599664970683078076678266172320057133508715249287029902044000048140220570666009057339498167069018257976936037546880237294389459551900852794869484075885775351076264519632829060920239943335586493257663541189019162198437671942374412610103464726542912045864983788532673418320955077962763702701503995778670932700495438305425964775168355661761324693395312286500892932020909282878196804114940865398005001346928030484515611716161697760265778475941195746755613501101699865941679533752150152359150659983774694009150356668570535603051575679706966921798457538532305950307591729544120995772625062905348332178230131823219784293919124929423768453154772083462142273205855077029346569775826950535730188065933211923564446094630948872316465955637857284452124522623534461043420770698478590135933400006057001724900530278614822263849576862183101267300065327447406327081440447816863659700459949094081750840443022599607055607446614116497635079308668412169797922406079081873361356157752117766436667481831313083527395306466499054220377763334940244831654116629132853703161074788998481075640606115029512994729858717623791413651926543763393691183281596907460467708243250863130349589804012383524545821693797957536722132735487913474666953404791350369974387992721543990736367198339427986917886695388629568663199176717443987786695223841523632885631596130243245666816045572897955792506548571758143281899449197621478689739459261401032267065260134782358994489898808765402747561290936794825767747178132864742689979865612857980263667967476917094447817779261183925617008806312671912837464110781806243783012438169917399212423518598758873324073987055155829554694828253161113360183007743849887682756892694252351145311896383756307512587372055170008180221423377919369195045950125325978349302147403258912815133739619825481389471305162090367034757126302475777818014125502094165863024563225537917799124438531588089436759932055724063436130102588934793786421748764022237301648310699197730906871372317051092448114777482371368020488744218389436832532710704394228241956875725541713249486268568716375023232747138330438115774337443588687962646895539956246733332902225001562770621557039677479456192548916961317364300895266213828984610536666826371930544207483643262212839307939430370202167353774174058853690291488902356698534931285591384296494082215143792434704799999223713681415602969472906649620651278421358981210383525518172241332039441068809796821789069381738686683460764129893884512236724884948556965780833258731973050394356087581609437822447665987147933975196595384107127308214003000584927042962388778699759373605857247165834575975463722888627596763466417429563022436096260511428231611386503711514352475668550151315906237529206383163432506507677767893076576408853916546446139096853050972799264510756380091938539882517728268431824949864282857881044291649353495032873489536166710219721679462231561145419754262301157918239002312222966738346614895907705416078074649244442452654907378489883995859260814109865213683124929239305419253835278564879313196218836662731386891984287912938110136424789518948745100562324130503948867200696695053229955553771247811404745499194682861541454096230029237196986453236607435842354707690187537309565860907480895136024217806002438991616924388595338135451027877629991366117590653739156838859433052519287577941955791530971913124216839242813936611107932109175063909365854980233391450789647077971241643209814966133040308185884290682126242550623516838126595282355788624325984250731676115765822867062722114400925712879861508399254106847333998692048815759381689245380090282329689865316189730221230993495596232476439092658739644942537129787949730445327693088184489301296387472787577546738524507720186183509242354244657058344188284953496838286027122923308233137126661634056398611191406417554387422664246505430132632218629191265123689101512510311084750789377523787916423743339217277089779909492063887051831113048159318760202579716812483403727600507772332750289491918781519974111068994139854690975959914988408673642636509633448663780416626910402500545204172768698159184882444156842041280842488616204124389713761414291181526646746030655301886242860931632986927710795132347924252653753681231727395104738695354066576485764585858217749903248638751931137305418319119271311932904042777602857860852960594011627487536654632698292155736049303570298728489762209967148863492951876855484766427899295891814474422542965446285785894531953570879726692017270573441592747603870226934673556367959120493874040391101851680851013628020838572915510095471709399576412950225444124813245718153922378995594411934378556590552863078183870665887242477238258925858295525556517960672009690997938158518367634327561882862441615443480067757192996581902158272118844943724350098682802436430876833577762341043038146300330336644445562075696647886820755069107662747291741657201138919688680933778086604571282699070934424540552148201897993142621779272902396109223989696154197935464844918933940912796912120832316484981483782616855417670681183696828785831880546568922746832196396385419249422404694229903366792103863037811249101278477771264909095365627451728691805047342752313622408005470725549266825284727576446722769980474363768204372602864541042676984084514796647532933021201852098733802511695983086744226575225898601020203915575386741147946912520613610929179570208605358482225071120064356125425274682739044650147384907232852186997348584853707420012950429779393375868467174229371011814229300417108343492915670378003713009566033556979294380905107231708047039697388566981687485051510247520020881459080452646351735662272396992163873020890936442991719869292307649100125264956940339809777317111916756895540627561406392191144869034486888358095485462396241213169871945125056396214359462905696382354667873785361274620206407390431309842986138710431562047403630249920602169652630095643014008798503665050439055094414700144772247796968227032015981649426598557964585209751194869635162674301731828773591806331228823630499120684951289580273499733575503914261403928927977453779494029570064303992070808628888950499739281295223110970737732516081089956066888533503142227959881169263086547626841389284542133529211260446271422265819994277344914747825153309767304890974770656552127655346428126354178283278787958308830580101760966483286503039455961898109179657801202717285558263573796252673113502487043693984129953896894148633561665682479041415967362364352776414069534043097805207127267366444563866786183633776736981506166375818229830106743848171098995828677866069505809897830318603955645578553093285778806033809921203631125346942415857380068800400749471434773488286679476163168160472444926554731149050194577879801805387859256457277056503818412664066402266972503552468786174408762576783909736063316189502317545301624264436284153935998058319123859279773444023731268831759226445668658665802673139439610071781460721813725381249488243556724985289254992415541338338115178880486642667317835871725666816351606458313955642166373483054057330661698174229106119218513413950581232923429870794243156205372655793062085738393877180798807720178113595548525362032726942346760100649773429685577334076828588366986157608379388673575370974396658021466813504952286719917596640400698043964881195698909404980867207411724271672496732181488855927373830540966951127746651451980396590897724788354877643609537927663157417000893164501542852600295775184866857304797037350312798514741287451407762291216276715278698381755603530453028318805210358389542513065058301716526529043169841724677681930572835754782714952372232282798065585282762447461641961469916654999313719467963495114632282305577644882813616432565053612337723477578808008782261375664437676586274696832941281851743744583451881747427986265528184454771947866438486430029932631953240984521640737680960356777907611216726595564263903210253377595179475770566341027108829282504709729471679489567589545778078591340975450227332884202186277953701372183188090677848467848102799927357471491844306250396011764154247943301469340115904376405173094510282226648013646674955307715064290548124462458992982607945039040121218823306486679697185942608125835417298369799909788980351852168603439515340443285077405509195084536911879921291872248155979572854003039120606949462525856246371867088757233648902369653548418545057056334861945725856429374788217926531309114613377916601392339522492372216156710590815281545727392264978980786227998074961394527704847684003129512435033446003324466294479597078818034535484403376264775316097353581273853783810073836457937318062312194187244179505737658313743186461576934865461033985060999194911960785476880958420440493869135631563193274725397332476290914555081420766805117525750356411171048764031531618927839749256501437223074388856650957773610914435174671868360204138451908840178453947905947827375806093788562496438275937648964256726749285002147735932282326338741337360534618480202926595952205129462847478708346630377440523685012178170829640385397517397236080864330259711279803839704147502030919107366819401959239589917998901424718692417079627156039290744644804985714468438399275801599224454576280980450472603151982603103669993974536445578265148088133977310578108372209300284281937620162223851304405326655191117489875486175845966658468615286047796879453070430798928777642156906882356493636941907803199842867411703669252040773103348454140417024802649530628057120975666600843477471990059258192920752392281444247463186462310038257865263975935225855987866399493155144139714855303053421184215763090777199768763320654475036717833050557768031265135876985666077719457948511301855879258246396884753356898046567723186067292018810608046589817805926268968038189802891622567329686592219492316214867372106519303852887522813088309632683017469912847150025511536323997733439396445263804291294458613669393209359517543057255342000107820700510549747750994745281795295814352767107274055221179845131123241239325688732752983457497980485797597305764517248982295326377214551781801824979136232213852505757692157552718224066427781169032549159835599425587442835806615822576991795632767193051079285877654723923905529260964325264993023148603428587848985425434080724541656077560208116147108677737325675624384061813184180192551512557189222457218450897683830350351763055939931205757540975267168334093281429319107833029498477493032095493274078984905951886083463388545813259491068313920541535552907767563815544853894045723574613709091042362578994588072857589176304739840523300666652696732844086287715176907618083243376933265659146197043128764061755191508706793835737295058405278839027318171380502825494134876325320488763717899433017903873857435057545383519711592643857799949825855200713106518731331916885690861409484412650166522166666692504025831998712957136423427356121857413652328441785797087769007056398290812922199278819244038209401057115548649452349543459499597396025499871630680315301859977203395568870276081697483916835341692672749204668174956251832224727124703401476930925841241099290433643052505209048307369574011333590496271111793758288754408623060391506244215930085849328787433806769325977337092983508489553018079307554057825265662064864861741737072967669613314011241382226191287809242196104350516809595561655136718026374382007968521148447246622906927499244803351413690706394584670449205426882486467814875666489067158820162813110820453583249154973071866382728437979961652809330310170004057615029391150001964578751794595860068264144843461745610992637321139182139119297990712767436208121097716375707672517047759524231720136646142877831437116857220686105745597908148477997092697928450007073718535230362980474987188391975412941752089892298947885372605657200583844169285955534170609957209686603939418378311030076322341882921785454361457780007872846269555150908951732973400578687313354566226860131500053337184801468424142172241651025088358323366946710145733137885416556667583453931503598667288303192878295605883131582459307404406160482362508005703369817371321668377974522385040338631449754645504841282540501816504847433507956725309066068867381780227789688532135622906589732314217275375700325130937604699603964629021654772211098254438976103786521565089493935937078703369998090002858476790085668165607422864039157600526832656798341411201009651279655227408438150613648525169545809481437034003454331105494210858193816188217394090227804745291733196544991775819515107500576602918569304968193628146031892119679126634550604662227262903273985277552051916904472562828984645204740135446623273248510956399637023366266171279295044720754848675751185582398626898255834895490747598831830652934753085842036604999758218079910204807145758015188751776532920907597532360653656245396244848070531384000618020208665961989723292632103492340211522385871549973067942017768774184044667343137911972584776197199369800701247202659532225702126058016657753298750704138814630838404978346802170427956686753709208353225785869909655868556735157637759022021504136076194950653362418650661962764580332054026558718770268511992307893937403414213098092822671393945260997596924215341624371227813305430507436283719421726352119030383098407984145990599959545779765765709549406033671443887120033704666270735225301201564389541288596886304718510091332817183798124953904993753726968077457815598095110910352204679835545564230695747443403252030622086613470976626029141645558091424576541636383265771378571443723632392601017369784216218436736371318079768632043767928703743123537768876038463959964192847722414106361871715065589336520341803055390249236852036211382101223151918010094844945705276871426634898890105782544884295828968365444424625572763018487808034966870518690579129400331081890030853364536755194876330730174631938391459124814838989546441038220426598097622472904727586975018312762412900186478898371331927101933423860070022990589535980678090165222935280428339460525767515239397339315959256275323858102263618313294763222954957130234189496830490266674112081968731367008330034469457040028791708074707248770478982902208717775264691867500287619930350863041036067428494209930936159896081222919490022832316788319714206009226970909285555764675839867764422546031560677055531214898713176030127473438897224385145757845023353590559667612035426372583220406868908876910885728192037101197158140324356461983558221588593012776126684793313254982724576925351295277665744561363978127577124919101350421566312736296574706306914763603975044844085828297258718828948743647231757172392952596293353851619827601141292489114931235129119967217760260468558059993562519041906078732504798291549481800251462198223517075161166621793865550543618592128053749700917862893391505330356022757806863268211260576481033506242712032478527843855060251056190750872835356959684168275531110210379249731815189078197656630292393886718414952736466977918764641238938645010789609778313428712535184348514685620151364680365834546421599664469771948798027146617822311681713937312432788395570928610159527117004345305452081614840103375730330849745231727111069126970911008084334239485527442926855111091856760110712752448424795238337451280156680861342225647545903592024701753041889086440959660976488336189376984041900689898960196749113278492926241771896506182294225603155355558869081637824996105985869022352097942452864453129260985050519738291598791336686296900641713006192176896385937684692138898457352417717919049059540333891659372232347836955549202386971499138543805115689662331110065496892691014118183229652264911304580005593107296802674732725373687100253215450005018250132961217573379361948900900032892455682171404498571590626647976452746483519542875684841100437807859249754510609835203329028867155823041704328556978995620017371681452998404492034426370345019576707207022358135275021083727831501819886796886098496250421805706595185986318575492714446644473964532052155463767273237602000343332434384613319069412669036311735743979042132923496479365063740239248260287855610787514706255402030057139739354109695499003049305758113764824997613673480494233060223325813025659592425064075850105877296196238008971970361131420518936932304894951795596130421958132564742800882414072127503758654898100869935614422577898473464791627840413229682637250207040500845840370491399149192897016571267100527739410744485825029502559420123161377294328779312124738840527087902211255725632487676892347851082166718875363244294439497705014780551168634353390117395587251547712006408389108650510134181012292607892867305469354515419764679543435834185748434315831298480160533385289183874000831340026939425832189022858161588669621948663680449302321794930351202187497671501963671314229565441628155329801050687894496553649654589906966924932251211713241449382367279077332155470881857222738076393502469746246361021100398815783783111688805330867510051504791940051235887975923850801228673288663078902994421366394734203184048573510079471594564410092113272986290723304662099704218673985927037404728684988631384231745750823351818365797389384550632350511096429000996967282008582622906979133714683824092962538094727698339831745747492284607196492298521304853132007468982059132816447629722512019120813221404252308207447700714034787513575934818553002830579470639043726716459507381534163791939394627190714568321876380778804970489234646365888356185780427415469595828136009913912288940543520469728242954720719881285668185836165448564109664157021674592509371770099392532592485357648009178683841185266867580394025478788322470820927991268476872256823943823242905874996278227645116066783597929763608191273870350914298927153698654249038315872115276531434833032989080690775462266738250535987992580686194760601953387112001175400348320725213220188452348403068287481642546639769828766941492983717361618722154206963017177634413885128952942828651459937108914626646008641185350946149991790657914577236371062749904670381977300671399937175701253522866152472868600032827899581720397075007885703442850144858478009454906135113502203675058303911179641400626601089304738581362529289524475510282618806125957400181810362284635491100681236579494452836383046252929749378210771301557862193590035424991383357183532805859971586958769776174134355043648857624436016320338099813916073226763715513363651199190622124311746188745293041037888833641754861670526264356751372420614666655507018011572373944389377621610343751501528374800364193448342262838025505383035840114448205768167049468299295633256272212779376913551626559157747836192515729115246374450236218736918197156580180429497111665674993870424067530100524001827020669733265626897473195953645267343601283385518626815849155388148021239286657104577109392298248222006077274016353395422616800450874199046305930025840519339638007397260519442822985887245891873287507657242513623679628764165023709624560167956204316881223238279174456047266272454499118041546060003149248815270557763392275613218191595442825043606359688922108824719552226143415644787859802982126251826213527009066841746822492759053294462339962332496989693454012619573973512901058281802940132242901048523120326321645271243165337667258561371403576979579613874858492711117075496226810818660314630087856041419294186787750511198451226189690733656849281463935778038187589046895230806740213508611506803407189170867232461503233346606584395486551529668364773086083129553090621443430007564248808408913029016115483471943911353288039281914491606200814195295044842468999635067105721789280462567326085194005238706002148920656846620006801072168033311974482146665585113413657895619772258646081947231756716709203237026523433663200155997812887528609631033915006766789064619729759160735119027838014797800448031795354896787672903946771394707022699402837540133198825510226045505624172299021833983072681924566647707928163008970153127339110323667967173605200361550557964534994342651230913359056494123511054475623690118527072520432446168356484155135290545904559869664197605841225892300082882113640550324493065196187165059243972350564857594370447916796624354117100772925930128586211377659774768832349299286139040178209531050633694561086222058452993206187842737511466804746598701831230651255760508385116617420519706859638249944231202869155756773598760282903308572834047911741952683722304418897984956997275664092217207138762275775168746004242152257836543355724917615826952578893579826418760416678949335800261330118448769791263896754547413815154655881968390341790180566920476781643107457010885757231413043206447250321935244843280516279380316349383017956686062136229463098498355251252074873971931379558110930854870232442780040218720526383045985867094981202571112716014678664234777998463865423826315347043186429908402176685999987466209500262086318747716727332417731035059705813315865121749983941708279910515074548007636572765613726903398788377278828591277793665377856693259034353332843145092266799770013700956604625569274854177089266090346519096375477856945949619871177468402741052936782278263327079002210183938646552627696689784939429197725261893746778525801821477669503741561590818214272391399530706631308611408709921136650070164403172311576607010717766252607673950041936386395426166493959166196129573313872268835889431922948626393981528692452262901859003019416811174580414702894148082436344383009698989914365167943510114029496370051822324981846874049622416163114414297688752190128719624520311196415929131972920626688359203519849116364149488076979733075276579381009835970868832470317137973754957676391674542122018536210042046559334179648605853907023625503503011924171808163833324697218766164193858616727580526847632792700811450311651187855856246322907123976884944580348464858829347490231771178965088417248816226368253654259270985020060379081819980647985936187609698878288722637038083012845072061245593853779548594531702121879805153127095169332939171773407656185606628756353465937505836199307167538238799041445505825535769482185623837963753795290378264762933584174769092594701954714082355678192087679509839599449767574690945400334865944899244325926858438522197621957261681418760246089356750727911851848586743735938183903352172075974551796250291552677835941212360847361080214537341988465152832449837597146585804629677619320185636203856826163063444241128888170645424077285210268030993715094826016134627543232883853378200708296993923295259502607136377764437368749131783578276750655685228908870826250563451251532868095198052840965892352958588168512428962349016963931266797399766615393639446105267359757453698933689726378469737937840275994737899847049430859661004561948344213479868437746857361732646343418079752878313714295354819555005727819097103986958550289668317707722422409327658738385667836339627086833098036107273431535370881673633300695999565394580314321091760664025477033299214471465281752218194205713998591358020114521402959865527696310065821018685913262936514649160301033303595255142758554816503529205003289077242166283875617962839265783098620409998220021565504578803306597209310179063305380313265972954092816968635732926714542143115978355277477792478792526370980775772236929469696507745699853712366438303219125699691967636552630635805107926847038779691326387695116828064738754301249328175143475018138581418189116141530399972194326791052253263483582871827214301227268798589005853471136234265115249328364286831034811553119072494959147188608211866146828891200507730073052587373932808027977517708999069078225455542608397275843902463848567262555419130261901903760640884096658854201258490835743217857962209785178459128225817678083348577054284412360472933905410853778947409371093406457443649544422695463860199784158256612241733519691252510892106637813678232697355789247429171087981405185769335753978436567668241599216730665702941797895380120697044411288342980097001929951891445327779903706032093365142626986280875691519472680578587394041645428683018862849820652447076630187574562908034327146082017873540330236335562766654972626388253551184892789527752420963781890509298837059780901746018063945224358882393666925164306488320383955073244461975766898975083055412465684183209381221527841986924914600473402656804520638667471000508662407469456344507384279397921586347857222194448734774776159355523324330046816358303314804871761406257722846944542636696987016937657333894686881600387129059318014877649053014541584986588613971275770001055024072158995771688054808664530641738961449376175691885362148387542856982675229564033083166456128811118936158174156565092432205506744265194553076906776124884142402024824539682494688913157116748567001270497887763007063148969963073587806263819376847670276911410599567232010620695264986612648854518912169499691195911579003702368046652315444932215422549360078467456083653527853743284683634173403947313394252833515591651226272727665468904446620078911365705928958588118167237615426045231721747042994732519873508679501133828295577818325898652880858418826189401793050432886801321045095091750209898434547098214170676352632880000610250458632972575875215665654356240919617563545566309035552673300885101926637627507771593912167453200687183948614721587022051710620392547234337552377429361222820763628104218116255459172245485207011438168683157644094312656755156928325121825447015570706166478267780679644763034366580890222919700546100904869927443476399798309819859406063245185630477706795515450421571891718965177846791193373444011356029854722789440702404380925583418182065437243198020261305484082145081324775170088883617588813391687784752429053133569081989007977867882832631421398967377013460422704613236397549574991249141851429142312464801645523399942686375279609936060915217692014438527247984872369782399950211578058675601720885762226422225256369272135093404459496016588515021884230478395986320415722799742084335868287765493634862814486469658250774106984252622636110310919801375358124834122352244026702842864756408192436450967283778952479538966783248354321394195918302172891065535087197650758836840295542662917809738690529122494909317243271088663958083567827334404475885492527947857168491378628385031035627308995587313175346960855289279128378339856923799846274699059156783432738275760550601969955657597071698065260418941153398743330676553117576651663942880663937135041475883257372177018555991404304029077481194663644230390399950036441660078559288989420355880322109737974823383437053694380596276288501289562432502744402247439522323867340076838899850338148024545833771703940904790796529528296178089580641149517774557270437726288647449652880997536412438228515973363544150894478039692385801023728449849681700597038476586260629027991935823048942073625847493477547441236168046443124607520108823903326942260416334839572845574142917708174037685434017434069153180222501194860768821122411207905644308756468834769608470452391224637619666184772176681254217698654075328342047003703896690507758462285931097794744429437986937183215186061829700205544600557855133528715128350674627362688800176351010911127796122725846586818014661074596475523576632222126171110066768387173284228768287157850499458685371003125232507908134959184448389407066109391143289565866427585482216011715724515275190999435307915930777985030499287604267649871461735638628334968058704743286448446794595590790009840306185046050358526646353576477723786042692540516566875161365103910474958838852959915456378582215407732417394851608718398511162851860873913147271174605068707318053396854549578037689317171014789651993852279613375432345105922284621784342526783407136754644199547268809205891169047302510686996696223898552920806555715939480367323582144274717024123312868051055027408231596523582347585714713636327947042928768051676487978621615833262224304778079987394888839316901268769779739028420827254702684102200629679258334976310007414883529727120249565660734471939896283419640344892739130851079741285408483457709279455474021195260896655750036288291277420174806355088738057685193828850420000172643924487776744972756569553447859250538197894802920697191748123175822025031798289695250971838795795670766409158761018338530701927500201341734477846964731467998439396198900241918540979443157699347384505554465665717837574695016820804950005195804721830230862448155616610453229683115924442089469255300615095210053714534866984974263814254062010314647969538810856585741617464379287256821761203405187485732704157891220535823991502918594432690533902064693570986308782788474124631406928317223804288023004991844510068160335499531085051598195438910299808510317261860996381263936400700718290841999942678431380441789300430707962995795433560623514008887320404517432887614782693440462487950778365940920734876849816204115367490605997090513610027108065403385496516670052524163424784281913382164392215327611301125943521203826585811878438011172017225920825325782685136373272996011336145781508372113446972745448888603622246943863736591279935385653012552583302929909330284505542535590634876085746382877215228251582121585648043539660014514507043764130070045933565106597745703038535458795534893146526721390966713535359620282737397319076016155835328506386556694342201645361631635750541787605115855013055934712932420596695197634989148000790614526359810847627356323996221268509769588924718360627669406421779389207991293948277252042609919323314292697879726263134791064996039044615728621739034659694979859472065394874594046274128600674131215802439467619297606072681357317539284262614048361226426912862613661116935768553299093460517608788638143958105523742706427242554615567148615330892828199874897737266878488000216547688877337595272424852408481235660899680340149198702961572245445420111483258721179187001454495665418423436244099334618553823368546132405923524251534335179349201160093188219619249806759099404044463018593904605474476048327887939303992568213953481588197103401244935962179039859719927171361600445230820482158469511488413808625400151074229801149076732650745646501042090109010915898499926098060416180074765604567303513684227280927673831077556460575277069688975515409371521364196327814758671675146311466881126502907449509336510713347534104519772201519889847434355811357568304038047299366202945560068043445015616921805016666813728152871913447348782327748504345954637507412674539750985153313240682745097569986315431005983013944236959091059110357707910657546048398203055145317724371627588754475799788258640666161003555394114625221594684215447894263942197261950217327884761094755961515105967100279384624547629344035971486159421910781895430434634198472851129228549498077805406947937915406128818242594280694333796326678800833201971027124400236591780562544364269578433212865663352504567064221025201263656294363381484053877595309562109810230447948226794956164407440593269134789026002346846171575422614397088066104990420975025806617209654939778729120034709986372283549292359138465230792835084958417781682188062337021841990134580728273953330061831774604290706630538592365560281970691519298093074670915627069964607284221522730153705279566176391213705753774131342443021171213677661447374052194650398966101436317173169989510150044119281182011706431921529191320422471218760817738677886570264233394822021319541746954871344079581444991507393365126424379776482983134692788946492550646518202049066950470368432203138066366025640615015928970376929785064212108803410416130681698135131436356497377484453242903550716549128027866420176427492015440848704402269951265881061507304814151364219758798610887457961281833749628514692603858829115347983645980712781871192352290977011217343874704145916294009070181100355930774665611809975746696564936648324451327378969779569231360251264627412041940831417770718320090913240373971057677145427855475413413629775536862020820865373784409972566069423564907783717044745357914517052201485911412290757980495113784657503035826030057588288805877948370328555284426100088687584579146374682817715038957181079892411372860126035154235582228902802790054813713116820105827931452741778125779486419125590278116191885796763076445279180157636397424310028195383104996550111790205519561584675661473682965692331915966176692826809390860732460247005982310526415089001784055634819535662466071602008869096220287098353143106790973700581281801322932054233584520511356837562854259775811784990233819241853458892305160391808349639506208234919612461833614092993319944188729210199386317592177517032199974388319370346717153650534038531302158552918387140909482089834037323423435423329685319624463355107021079784694374706280679298494264936335420466905016812598590251075122345016231090175753308436327173297299546610342624250369906798968060748561735460858649560885100619222038257564467375652898018194441088001223285499182528597859649203099206125712376766019883521010727422131076372322951255796565436964520395802673421525727499037118053617265904078363937874079850365637358171397278528352860107171991965204285673110500242127734400360969024561759704662694964806964159165173590114717643672061469078467928676735652027872054323923586707033830290892108550196416933100696723000403694558498772941160732504361594745659784585694586912313368796821887552890153091180254677869678588379812424142126065069297706398517832060840252403220989212066015066666188143484123874817676941122197107137255197616288403974760357343175980609542046535759849646963901161464666695499953768712243028758968124623822132705177993215545285675629798351277506482721926768865194910353601550996201379775820900688743951293563548092334528539892757851283373242251674200078127139842770526945716378461777994135336291963880138064914271653104631133343552322384550371022190198878597149915169838874865834269418310544164111917221082883798371399821615603805147117176763421513683747671219136385293764169961763841389058170851840119898438166992608507647328545574107304940387179746748740226587531283154798668321222885886785621827519924455875341602563464790864142702878599494946991733371551993579688448349224159483256356464045760331233483798776518109931149440375445919669989614695099403162699828394411400593999538520957485107596824034872115968148582297704901052587309991431660745785825231116277898137477966469485633424035708440715370437153480828142986710285679909695233346403414062275084745602606257257677127621338730667976330463485056476739678123997029663937600287634768150940753550409316232139279055143344623586573039615689099102356286436907964012216944180463093390948248546488251479566952590896861439129159576222047100283792262281039628041704978730705813143071061512595538008167597790059126899403291856973611778773824116555485413899843935080852257573168555735532691335848620301152942365594587943292642713996689178150260608649612276440770131395463876821493294078503790964013691810143232204548998260598629448327675063766564149267701636726156964938758733995938242389823442980246636126240825319353322225033267943282380019105881049156421752201086691718343607106514542730993982127011554877461112451499893170320207081622946815130493087323333164381858615082144000084795782561234767088775162086717046508134988088929878039052271477456997691857760499361093614423152025141827576339495073662296292305639605140859178804868437286096281544256945031855871644086666336091226142632260607695025934211512136816884450265152998601603424310682111340518411602437438869580144923977657433593454944542923838283796218518199114934847044359750624125867198206146355607710268314147070167528675725467761705233830254852113151747446769964599053295820919280308382923241938359079035170408838299835113016401130173530042423015199114120846084457145384231358049048257684930474281402725075040602719820146081061022108448699292943118708565652556833697263932753721623974211712191053219024669188093036939486355419286042382589167645376006166757295761715549896256584703265515541775062910191187478662886410222525864639450370742918500544929195727054577341700155128873386164574827663791355067558020246150569767126111440463944027769304841441031612006062703190508773695462888428736888485977979510483432086680686817206095450221584137049946273071205725800569242486808815418065380528829860104830503194565632318315181248441930846813633717045896238668211141946226716272803487169912248802162139739419991712767046956165597494479039142232444196991650445332461966463212731563543529979525634841035515724271725021510657077062690314498638686679735537288562371964086711626070943124776413723824675907276313574595541460073351524233658875244863648647471980859418074902340675425209007201689522633980351724922730456818212330429163429129363899015302633776804947205964450005056749018646099430250983887120063409380907294842636885421943642856764299860415416712030879718078736226652762972656964229900481223746962538661990494613447201192271125476279576063070939989291031742578013713756784317239922673614766723369143540298088682980076283361020507515339876920656323593680911085251218828618467348107454766374718046205614160334899986114042317035626415004790662708239855257230129640189434617228643657267028073237403546199381409347690717748963015185169620860401022115465547703358541892528085527166729037611442063939615711195771502379743508966076772610330208982104719690777547009025501549274275756967716044784089245457893259592433001459660978084124982818066597934786808957209671272556368675060952419993715421612709373946578618828777965412963670526563075824160608865011882871961487066921868099684272612335987560256553896050886688257063018973935744973408933569335073251225723797409896793804981729541097065046201845657081432394068860397449531254994192019874923540009269554726245287354561726991856729201892590762059790891439782014180167086902168631024962047769052107340009557940269509620629253626811418312919962629241453598071909422978457250845129004995797727863992414763507866344111582649754993057866277468711211930842697445410481324556884716327610357216330428666847532910849857476249960940512667128197051549349282235326641765972866921113721814327087868892324001487807590826034299010887289926501029992614837144767947591749705613776918580650264637642760425585994424958594680839616770967357495954022176096183914989549178872014270654121533927772258930664186571516984345245049757688200310859010461093903330977405566116704302957638680720474819083888540052490521527424757470722262913498208994975597965333563253903709237246132721370793029201356293141961435509629840953937329765836069274147199258128139350913563147421793472722987059929479982036968751130039381937214480049370603711348327273403384135265391099654519422450131846540878282617977821652809144015865625443884679676580993612792826339602805027510580213997729535191465249192989415257501122885482434164451699036927910862275024195091594797858856106556402935554711086382307425994042270028718642710819063705196602185214729684133813382999456248408380809262428958554931144321262078485886293401558914191058970939167241091775051981137234538728746602840147846874103401631365396587081233198094707004767187553996857773670820169154934488280729513692707343475121337833720248404760483495336079175235867800137393023593659524706741239464790416398800485707531568080448980350053767940062731664842620241896537595176740536323740168920741406903221327770984648192431808850062997347818883877453389750191044192307028846839820934053633620142917679841795648664382328457547347100487932967359951842191514399363969461343406309946994709356963539097432065895583703412286042693072797536217471968830984548928817529294490393840681864772268629621762810767794634744496850038898550808870723771610215470797550735236131152399766957809874186421788306242830378885508594460492754914278861961511754590510760911111077285358398311760489618452828213521305369764681899250682121893301009476838731697701609382166369136472113478590193776456883805334057374175865691765124358559047475328272355559046619159938782253830245784151125720802157913276662411046125315993612045563279065940749981711614163160191189633298694010247572169979481166803148752218485500672519219372462615869504374991533061165376424102692035980980590162056501428246736013909008944546843546930239143134149936291949748386186415085525864412595286070413414094215302392545509694604206128216563652449214698206234132572657411685311040959305269656529933458460261351626318426729719158059878934210445216354349942303188241467380034168746505283820132807817303657429013491116094231503966720753964290209157383725473400197126693102178859020423110682605374674448966685634047679557821438196194923858323447658936795829994435398580157542246406610721396544248854814967701594508389713780670322349757962385604292766486949553821693566060481601302380809729684883624938776642033934249990597933362509546445803135757296482496883397446653926958875252948028162589013274024243079446479238327945812723464592754649007524497618553787837488436883395819072108493784995465305166579109424663484033294203852279478479066903163320697080197214316980391501493622824475437795702129897921069361970895894522256265612250158305197642981076953972078953348455846383231999980160963419174718488844557742097912982241163869205108127520520167508017927675392164113708453408727560402037489540693024381013658364077721062476203639699038171857216024608738859625745685688627102157824784058894188818631335493246563657437630921231978117045345322970566268147469748908439372732272859185473868973298149410566341659166908910531742562261714583273618470945841972039495161934092627456085332217278980503748700150528281804288661606710535202169842778839691594728211822420668764457927756977293620713447291401199445404678244501209258620240750921421465732342483921138611923934813466759064532275472269063306497822895854494655537522504743848972081013467434787002282487886464538325014143220049583863005453188611119574390976451988633656811430487679606476653295681330718082977625061310525968968814693348836538215953326060704086093071034167303664830635844654323004153180116545412910004123531245066686419176471235971342163043694360569901757114058428827729243813942935125157139009484458512673197718066631256023201747617540029461142277814052201049601615821856866065437757161854560074776628082765713986040996172931406703737659482140366930332294680754627407820190053545795565114048203534829420230629434090740560821048773877088406951155849468973720062347827599115118039773504834492708701153314699446553515035903915862111938356206013508650942858475665051048411245447660731789194689297760702859983734031550162913702845831195080642728649294445297942304598575376135311180341304754523604435028404322413999193188578938458325304298271159216905667597518902787454219349960441160596548928994017809298229968057108504273155815737486629474030470828752140278540498261196331019994804484533066428733811256446473603950123248140693484427522099812008398246558065113468856106639068342328570320599761186981020749347482110687973016890625007785876936794481750095890274126911326468146298460143735011622322828584373686437496573564909513469412825994567384136021474390403415486394176428167151458193109896748765534587528938721910547720915711844778260720507369789452081060508291052876115432734330091204793341698114359583584330955728078097839000128836771393703034350243774705045983297008295530460694185002380102689258480073739228693697418468115967267349487619288311714572090513300552831823713812524280254283927960542770262255304599572350701151724946409582329746220470709947684510039707949857318584110060735685440574452163062683652383765825866981532172127959854642951225039937886064489796285127447394258349169285470618163607615820719357081840390592275924981562958656839344903896109332735480372595614552970534985928229998066691092408965777533704766507746956759636931718419879304522410878600016811563979270081216128918837315762442034607480725280514625081771080368831178667738634999055361926819944213732907450098924295370023569673563363673306381741181100329373698386867338818553039740552215351069091525091025133231829277980266654906926194776692643692575800641437563788864846230922216837797842145952669452952762210936640571407003684868840070884527092219490619287574035527938333284126228169657774205804327839758843570962883822856670865542929250258262756285653874153318909463075340099496621513539255886059429522173952059993278766586654941533649992323892357288288271209440206636416166781262967678138163927759849494930190347644823787053399317433244927844777137658027330274348608432176038531570800350194945873924695649424772009166290203302188277537635864213139307041711607980791109487926278946859233410063748614132128464282110590358730435063267973728703270136483049237132507559858109696144108834500123243960345438061415169906404416694065368896502732206731319420163546017185366700520850113490933334415828059184006906810865423295350749685347615113466848543075734954275063373720917800740209546828940548929364634401006782336778785586465372685866841074613140754530232642079880873980743283005001370278976699835766334975089285534919946987324401248971634504004415746971025040135420776287232593725268084786548934442631580381005802680265802815590549755422132608092608222561166305092185290649166806420652295930925826848497952615676153868680448273360016575023072315309274247024647358374676380743478691703529320676155451139532893248124416272573377723847940069899830440485404361473254001421490623210333737331693863549444453756769428477907335812888572409456611503027407822961861689712993280781319192997016986394170216503288812357975489617446022320980902689883313449160674172432542635974795161630257705288564837235850325143206755396462730441373870508137387859559032219745131413379868202962808031642213956155503620129387022516585138045712638989069526755503474700618356657276267913683748701223787366970306022086445506145371816605696605270694439030212938625637250502977687919713537912001639249948976805340643201409925809626631186607780649540962313102258469739482068138812392969052172976015922079275392325595588104708499181083035414482537214394695263447798638092331618757266150323678522733497675547409314166868079887813249654478408609392658667548705939177049640028788257186598048625155162876089419962951904618682933514676573842491500658992933628588588229059584901009629850793541145224768687791715074107796601142357585813178390615578298391735193103108555036172447509288341602357087856597605319579338386818241025510176756618648970650849428794545266449220137607193601871148815888336041749208673760637604034134060562315871535621246790301211916550198006072327088976573305570257226212112053031189666568886450809552176982860345764893781898364857641228801627810434202272260054110608640857432679446595380575611690872921775406886614027048853598702594706898534922095198905570167630693322093066223730702191243991305712343005868995011900521513380642454159719076459885664251170720154265278878292433335873246469208836108645752140118983090190929544249902590095726213975714486889070541643469783395650029689115921317991253482984276165850769838599879472291937056446343318681833198696327318478879277704521237197643323000523326975980188919990571912114279520444641787269590857764255336123577980754719949422443893014564717599263782356260228623187498779533543471781218174619695518463661868167757075791203109411122884880580016062069494401958288723356924582770218460341091475142720243121116043410018856393908091455283124012992220256587311765934733557245863392740660628974390703877952984791642444940123134444094772361930580015330876836585005374167863161375636627490310565976130843064631097065656601105929523417370058426274720534494160920321961507592920454483975509895642843095641434662337121024740212312453435302177606128863544372872971198235896327292448643328396790074429014335544852329884450144388452747086868531370747229914991367142201143672789641780543541381531865596701768887217645176947229506078837519943415133039400706987667946802473277331946681843211744643967149782212830691298348077068906012433299069649305847322986276194989554241798925967782524393469766411323728475278555581400864979241252739163224421379857220333790524107425377183509104774969164374359758807168783139117737592594739588807440539331001747307314384499457764687240974953673127320226093218515400582425747134613131379289475961606814918199065891286749879968004104621292618744683996054937364458593040787016885618344524152048664162118735327985938877208481095149971695959983168559267930437090768505548595581175795031547934824861167496598182942390528871268137017396815432165268758594213501642218111346680715373238768740282669810257669355033672711737155536156911602936574776040025490509687662744022710424840856266222510290980090857221756143374398378300512544019001774082109653175360728987983841913135007557670929241183199808937080571437060807478416223473499354249229659816350512636544826486423983650269743951742355027582448709657187587398930126897383798586362908488262876325409004398643733192027621390537906652155488661077141466726882607734296820683489780513316103605566845375769634010986853057133665952007824225408023295245595455888582839508180499030925152254594790227153375851871163461898983517793460265718906629724211959471464197540489204105848336042799747450767559490271838161754448245125196558910319590591003079458684486915161109620970391961032324492467246762822451555925936540220998841255041353192106226751354216349329488400526752252614954653409456120409859015585663096047381394366133396795081058040836884574785949618708111142489933584080899650120064238196790495923993912535651342596866759228393527268861828783299280057309009269963853233684050878558831149611932350441018658862905236549813044083968825764274271275011614833368236280394635016536909790264307893579085781476948543450504863450599511715516671660373711987467777859748243190538165900652160420549267491210226806910937926831889321833951648278289583676930214300216986305386215042022118578354430840129439278479171676652047655325502559005225958474761812960619389145800641185275508997999364596882820063052742681562220736196840088776084206844749278533888897876903690910752360062532146732548163755218511913191206813243292189362169926640543239330897838107441899031960568265341489115881461361682261320121683801592194844716455900757191182112968790010938820923460970092173349915071292051783278289002312407055653790590834662780869131380124898908528354045286662972614556500128442735937528862581826161523355171752697423091811068552978838963317379185442976074179752548569814384286459262962988850432148744424639266745190575805782621715140184513131409152911426940996579477925748323158901684971770779235870010250027135560184154249022596734544815171338892109405451119993637599188572158305429745442124033726957557298198088095801716117064583045417288812645239182096276918456488694062527662635589399440625097505848908934139048035473218817018299220195871875222116002702641056102556110586998573992950533083240292442664036651519543624108470893081663859531461057762475819666079101061806414511314782168784730354431969898991829454200478616323562701105757967815136901099815581393652706897046270666362903377582810680237843738257231503973277645145944486001882584678913152502918159304251428607177893636967153634609090568586119527666696298826624168872384924734783550799311244583075711527347332079239048793365557977343462027603062575862031840129382464689985762059535323753760067024791432635012622864560910293828115111095454299393707493172111143689249533005138798678070383298544578036037625908231728646697254661331959106510552433209625819651324952570937144490384000515437463629377218100740712893695692520971179397629276463033080439592335694033890796557828976028026438159372716542905739461125798871207922433443486682019367634779991345843521421472538495716696074249293252503278965196013693486104638197791195928363380109530282349599544030397402160416909048957553968278617057687981031725442218297554848919935070243673087232805148476335345953891689235968119749014051380195907514770274194863795491804282760428009292083371243628473675715475512242958914813813043661743607864553775150936208715887093589568530052908162451466368871283979309603596571242943871667450617274727554042379439001980126315048937526297922184242442354818533746582661150691418928606700946607884188249947693837246862503406028442085725611919768158330700492272711331829653124805904920611278400580943823018710236501337849301546514157166260761401890873317276901998693493218636356183254645763757418561323245388249505335748347051174694328991457809498424556217425317779010852046441830548578455441892223450663498430437633473871741993812514179225323611126900556433565964527790829659744977184954897506390365572472130596556631892549499026764003879368294982522989864477552543474734143509440066212017064524542624161560172076620852757546133291825897673380273023177037083922591401168051228408283559253437816104033475587425646708639746707635447190529707003154789947801317164147317804257663369795355674937839449800844092084234030492119300845956684262676403925232175442342954899844938131360171125684140952671627097766710368348789644674857919621578992278934572818296732107783771949956182305167798879941374221556174352576300744653826690961501478902171190638158180743189574355198150165599423334189490857676092138669778888642015488838720380769749615138407223057835863306191422541660064548100442948943051622888967758016475819039407374172397920461926534812489333034098297124445409118916273289915450271266981068588248977853150307508701901899113877996925966954237618846417139834406471938864259304792052945559094866021743877857498343047572895689255057168783451480610586464571334283541665169398144438752217982765769056985199526394949829597977519390593156671055899983399386438729788125487074393225300182160013366312339475236184920388123687821275797254856659445704784305741444864001058923505349499139071482533529188275543360887209153765782995115468430123638780465176471481510392564188486530279296508574832997956993383979593181615350604823021367788928780146630693846548606628446559923262369769985655513858420297401192818150663048081180810131045283691681845062818846874743783240801583651932295358874589039521144882571836353489893956845496570448441903431247524993892989648665026284270569482962257688599844644977374268059910339541716577422290186701244808149917544702244044356356576294647901588382481878073366578150066305878218175956095688390381136659023259894241812036268532473560011221422459651544472935950082725586989159359725779658902391255800825107128475314804329173216159017532653162640451845127118529344017147770822969676504030936157749204818010354014673023142480467138332575362988895292888837162329902349724532194575104446540984239582903264334171588658878898905019216486934902737195010349211767793919092510070249245417896169153469915952993249999486172252884306456142869019448326287379730943656651961574758662076819554151028449636047873156495328249910287560321393643033327258662010010453627887095929504581218388340814013059766176816516314321885905550235350734094395101312650588425242656992258079537534717663569376823634706942144394836158961670410172151786833361131504737620980808036289334466306773968332552640207569488765909612078949107926526440912967209870931672560628812650148474689953027528167214492335134700975147277680027868439698425857539129617246871511096062056145187251320924743706262148996903900323622998130524802186555529651515562260612050086592283341420735348987269729428301860842329220744975767890852531830621087826921451581717755304183904531856283053003746460482092833500899719843226568822782836760320579753469659681839275643164099624992089629810506722420823800630494314184416181909240851569637005208813817413998545359850951178442815816238951016507831487948814651759749134976765354418784623254429644258074211880910809496927956630296817692037917182574403754742426893038939885497989467093251599867120975079417253857814531714782302942845891242388869872069601224571022809633392378178045084772061861077407686636018599175730711449335240014067840683606017937667730465512377601655591589019151627321870653060503221212016988274615616257193900766344546816020830517356946665242752707213899104841722992834169403394819859884382148710129246700578125109643479007322334227408529455445615404039930050761956581123357350163481954292087635180672550659507425825778718904302258810923753967070884524277983422909764070161408153320786574470459571998389780345250955627846399315055055925158042204300375852451778423264488546193432136850919335505092033365880859332165865234421289232715952412833953318719759890350487235848173008177784685348474129709061527992336914785350067918726704100337537927013074659401077086527505442232445788678812563555070738308287095848553101394090019048544995184860360618914201683606190537719820255322868288376628471733765904071465250169580217329400706279639733540776172214306463257359005330642384749590217649653333313865140600239962271040695202111834660128210411246261358493640678025174573727104768764548238042485732131410988382851685411926906482694519608680361630736255564163384520826474616417458416329432393457125517086761780924429746602636098562782910696856727891354292329612432948139798545170146662421716679422755312379103530805379052113750762746606006770613586285292622711569260054075626527259804850651121302530523112667720010607447789631934936076344589773068546580004864460732602164051645759843491180092146905740165834982821201051969902662701665230623281563853830436090087480803718728883784069909575046962900045340657086787446899141101351890881182138126338749559042567297414185368912797613475803921054937885208161246857077463033268242866870530832362954677436710665538046224198606560192125702105105746879102098872872126828352836458490639666294529362371250989701413820782384721925859643587859890253875924112858038726255767057988914868308914775225906823194420792083021184899980223859434962905083638982896199657735101717923627435927172432372318675685860586704751996937510429573939121872514876154544591690810090543497758161501011759152826425803924430322332222266579014480805623158992095369000858075384789833195165059977907133970492876966056074888829024747058733252556406567390804074400383537473743110640101695287629647716256866458809719205213534283820593501571797550661963830755945699108394161627771575905515444767517085202195484673010943521520274368525223542834685336552640717750404736005823361722786851529037589719771684553718572787858531071335415229595231233340684836172106094508728292748320732917640141032136396610806616449503997220484713918233370531090947852281998315688505564978286660648061369265107043972264197296760785308346017398945016652090725670632019987139319641985957090005407279271727952021373418352655101416430029472176687770348897948426110793130692310670990036108398462642295329004571817803838729401635227096937151288020504854395833451495197864225026691916735634271373258986266156926848101942712046981106063381656259365153631493747593538044722322064331911358603299830893898414283320748597421975624178388697398805302862344532531018139904335495450131994643722122233216664219400585232889662463412811326943265271107384114771027205706757630848228462147916646750292881593963111199836651247134482362526029410737935038192115460345171607649655794997814760603978709194476627087680656399384888649060868654725960864333381317011921277738861027569235751849214734939667939122935196716804221685647586882949999279878447055497857522796236454879864886535949834802660681756798466880957252773529611197016681884626259382497050985668122557008341343576854343531256246148714093395123766310392525658573113746935557324209920328666397079364772750133250377109960223505580887046424333423892581175582470997715590411889397628800467543083173042022694260471840642124163070340562279047566925008350774719572545130118919497994559075670763285318901321784080241511912624421284888595694569478160680628353849768784762163625885694153130755257881212754533667581088544580561122693553235625300934516242063392837602830899355919678705798824861864964080819900406692751505798758159496113689959485663625223095193111137665588247661125400532559747433416483865385614419743972993494596319825590361345782980162124649606350325700990171098883849961547436097173691587831218871692788336377792633608298878970577020260187186610675042161185511249031631936580524430952218180695004886577758805799110025156031576950897789646921020726174689802977714869945517081967639209785167570666034986839895622717567092232086182876623954477411514034438045486602446189207356159024795599192136589017316251102338521006823575453192331861303683368174210451349557599375445357801186562330859569779586392356204001039180684087841024354172631335971975362823284055752538785927028826167196602728107696708159620195595003711579935967636189098232977701076405204131747921783995942882061776743760764484680767079964885502093211698056290796019298812418090641201836831309633193694425164624261946197317250857017798086385142597812969410173094670916214828298888695419030646960553868222238289297836378557339864536119198961644226547519704626077455392641983483560983169875292463604390728012575851373644915823231698377839278247009614549611783732138906840861260708081435400254053300693927002777865335584933937832592659876939270362260397024528688599988805773093498265812995970666415453540507048297585627115880586239896121669811387586028973420979925457796111445189326820915893030771287721579544741752433696726415045443380378895137791801133083768305304169777359639335736524614779582957124479056075737765882850220007363839174326794655169289202288052051267406235869381694891957311577274318525166050019672101991091737389821774238760340102079848059298358190458676114947215828795570442126187885386387275877979920561833394535568242048599154515491580925590326895630841578729470818033462635493617930116670235484757249534391505314762483462993965402014113031320147552549814103190838490176908873111228868057309348019726658266163761266076916060390995060430837123590266820344446740387227469527104908489720906697010983008927643539916514483092138476457992014475891434163950360045499336336443050055459926124981699339283639963371335810141077727999678475913533450390817857993737752533541196516862989178579821839210775060110371238217508355735295357407876414223368382829296208935332821399858346290492395781340328327829445319119613706229840189427776321952015998187388988616525439471273685433334777060206084343301014995980870461868459463571213115610711023243978293993441184413379621936834673542700064016542042748022998881048746031973821927246373056487480945258917387267183572669617883061151310042008776033647135742553119880504102242728828593172581909475563465958656057972725497406057511220301462074271500025648696288942869992011852948921323900778879262555433961872649695542443109173647220778320132909342095600419327083823548973218910274106107440201693317078443455601352901196655066336236149028687768368852716821678724764491916886732530311758757719305699499862054642261007776803679638467542240692448205659856116587579535190077241632585617632957091087148691541526093113216679936081442793774708817616388026183931596182332806086617803245576454881487504126670898631449468773154850336127822755923539412645718532075477541583552031584684898399648105121666792700802933109153911549373943855381327224858028928045788634318607534245225273122794329077032508320833353109099325458798350582752514688722128512787490091287129245140745384812510883960135854973981064436875038947017466805453603862814329039995339698346579124329531588541685172880556037647063043060594119741321442080340250944149481352592915449924462652215866012208669099123513141690801692822007902498798360278387602630346591682813551731156118942567562012387142283264807926019794050191438749637628404694379675436767291007939116779993582229052161230587893647151705658391431599889936016658267541046560850798243445053726515633485010662668787079016534374222371277833214953115026046696734004612454440553665108813345176549588745075352377481842289704130559890146060640989270628974612393968740274379553207084867814147881249883661307898113576583025852172024486315971642412764355702552010024900386688229536840035790992455390095069982398875491374787977604129014770621133785665006309201716550296029759087892766959612166326628791954600242397499357932213366079388898674467586866155884896767021956147606200278750010538773637040273205738881592309470918987722203958316924919629974898259434991431462612683670501780134734495476884091979482123362678999591458329037313579115963531425690144072944683687796285660100731511584606492012874573461604607927903639174726675992139599596092018950214261841564720978438244357635389712750791405775444080778713191947912875440233103747625209167638995698179952930594036041741187476682288062423538697632922267213465645731038086854317133826018058306575277801254569142445708237723228486294681594544639664131487088599818256489110922633572884138769200187600024036418744303925323308136507594202047107016125080705584374196397670338372887563702664809972177601306127765120078689054938523875095357408172266768555610807160572252786838097854977311457525617960337333570672474545871011315962249663179827229988465395197612890152419366220536792473470103477748188555697978042940054806998152185116524381958425015298374031785972019083337795811233373956341615195118449366525458423422855292999239752378211222939228524951746148243017704726397898114229478620598059193937234538370014961271896275603938769939820714617857782459343078615767220635287911910212603457109769388551910164914802664844553446678002787388047423757846807694439060661746819990708607010593202183593589441935756085066255101908114390753719886507579481021499462767617079321276108419888148859199822218658145653711878524199210689152210741277386655633600429449799942420457179819901407058254307440225738426755548960603089271684518771782189892827628094678576788722388620450264682776181398280943059527159412593570940104350185038123754016212280326821146233268363071727182637616576203609971588958502275247983865855426830613523752803490782536154290191370249982476001253254712267926951096925012440452623641539667828602078433960094788381307322822251790350704361941821611694602280290256106502038985002506047226403549438369498800240059450214465222713017782698533756956405038080931219330071563636550987982403099427193328984908891207610166265562192709940751251798843487639246096324586239795331120799040767994725413255699592561335157340635627729415456663322832838729835418886155674919899578834733956921462003268663923350177947820705380717343552854901212233457299473001920726432470754977636703866817069813537880948433163369997421692644028785282313269684417209123839033080143840617644696802769430210816543943069576782265481199396680628002253403150254782736529019639034377449467676485114328774479277470034405413326239503759708666285816038034122110612597828296343393821614278269086149570923917679896541451090119066284802990691634753489392839506830058436636135489738517255882249220055320442572620595531370364103757433331286725671031007239391292694239204746983783476879580188347876078663044487937993010744655837616046736290855741617579389306654182094661703280964278575418140626104148675092349771621608907649341145134251210876408220864988511346072720166856323295954218702365745513905345513572996502668878963416587972618872858659149389800484746549118993133275814902143346078547467519406330356237789273222842790119883249824630514407152539457288405193761192986723912039505680161419627230344034356499398411145920574813137207843554038605184888725460438527254273543845583167826949668106745885503189570588149443355392911557141279369708483426504929330414800583575880476800352749571222951425400350737768732411149265190920776066894990343859738918343896318795218626267756367291243793687922051663350552105337555044133077091160905232420186336378074079296354409168162287812244726308654072355848301314881109585427945210890570595042358118762927218478754186972633197575837078455992619716694651575426036329499465985180169424632607747525003811616405010362334369498619665525702870747290043021751975472484612961772263493778060483549131204292265876242419569123468305110562195762951839237057976283955325123830759681316636546466454229889640995457127957259377438131212625433958392491331885932865077501117836838835960863308680326776642990269408696156051994977002716766132200817989188149032256286690930344733790958690681238925167436081463739249031727821184862218931129417275813818767429255555075192328441963564096076833108319628894020379464619244930131664374336403556877629570464913870480661032704862557785555834014736179362494451109082468037885973170446151917968794253132224048246010797947032331786002379009881426653151954025938595956397571602700286546695828531747928516154278203860136359621298576190157336828984540591444657355684726474562030749953398888475397355629337507850823569059396301519604777085101604260984965420947026988440324765877999175302589403962218800988189692336437241832429166923475556030323060097661503930371190166555792249398590707846606952023847992916791005450956606445608229809670559127833153800550124851272712511064014767512288296173633154672916791190841165166523953585217901288762427183412436787323359813364796496109518079847689188386541538167528555169089368843766455075153936201303131521844007644386326429171799462259180159245856616624561322162075574749831216946770976525086018310244041209777062001635542595378128648594761578388781114533373984707038058614279146916078840622123867820007820754285822380880687157370084193044938310324687851809177833080676234865046354975546257274880249043296166965401649145978163789389747421146096986949173291103820731900556781166352622634184793141176308254348258136196706569962951577621957391298516154393878880957837817963949019776198343281955894094313565534038557432914755822477229769244018924708300720670121937989737529777155959634523901009891201400231015850951793820661800307991493329110165441032828541803945003483684737813755084178094337793351493581770665963240689589310896492314212624187583210423858880487360265932035269062787724359955615723937584933179898934529056092910938359748345032055537420693306973953732766581934685744826081143440576372078143189547023475903766733369740698368827016712993556772722239784088770876396260523419092091611660725103457013498737191600965047294665977687139472930155769447387808413717747249910529695591140646362062055060882205223122510258655647016269598895595879266743596502250357808686973041224105490576238927404970262006658672081019885630961127943972539011299527504465901941291663999118330413149177849473364926228242456849620467821889454846492877961276711786066007078270451028255280637406571137682999378078560079485778986846512935920376151354220178861880763326221191175997586041566093887310548063770096016247036661938963600149960646120154483038746686768122365570716992301032886721988469629262822652672879222161618218422486606790466122656938922064637642582921491974312050935456554692058681306481342143653422094505032964251228801672414568815833274599381821543111659917103652549327033420345107323828184581340313357004603675482605704895814972797260747773217251805905105888437615351744030000442427546614563980312525972881543296793388867805577411859889812687645032801253248254038278638565196921194896875010607869295778425370758180438715048821420985622088820354400339767404504451588236644470541364562046982592849064864237187750535810006822829470596122639948630960317819277823602574402650784809392243796274569488793942937704288484494386746412216093712382591084727958460906540664809569454775637387859547882191092293454809242218869318951394504591514194160415705900518138169155272937238045187547481310591219853792399344095873289657145546763028765899240374386853122725060486157801041252608315705235153568332880642779432918229433005459760727696003703460341678058023504123874910936230450528917689236764459108532175109518967681058926816847878966542718641003770334624432535262688932636757265428366159279191345332291569040964858882481001570597046080817748925714060254817753279159567921341586767199618344070882497012459413465623595607424598301012901838546027155976220353739404438391883627214797885073678243431842662221042478814574289258860102176301408031851190777511276387757656143080796891521552763668776992122728279063422372115646648309903898403598256617283730684125869882511612657227139007843159356490271651726161962173314743222327144234921895806724779719932558046194681931552628130215534384751654166827651671753219808372008716847178945236657669845115612610125129451254575862964118145875856205430595866609046377313829939466932653412606942134148950391374645657855161245878152321090852923430114079318682828752576116019523606518404398096829977470133508232173853955541704034404619441709283718402162931176342643832512508026017303177193978145089233026614242927987586133565374037736398647157380269013972877560928761227234322202946166174367925928867929735429133600737434866391347293878102689679212333400841104392419979607226534823431050735827149485287648157903225993148067318623759925086530035123235293077846741175829424380649727040655460941210246722610854864171594517725784242859732095678097548689467550686059268281075847241279485901656645128172717587322537908959423598519886366473098778269859552420223850238588324735443187170724301587660447802281247451419421215326026973981333047964952336100339018040024880899306432914037663578981338861090570492778570450548143688328603776138676636235849649663675406121576251035667829482392960189423749490278952754131732188246959800974295285383960271106454547948511744873910360991071687669944574151878111523242925833707440199625074506868599889456205475376536231366885384139137019167844442118444240578516324094225208056683749279355414464481327088635408206418796761650283904001326068086378732571517886913082433290186376785507344386657286734439164280421155933098644477230577113043328219674766546279664419658721053354553873623028508306389787123845731760282338606959258638021450768178980179899677539763073382299755665632231878402002706905676594196765827088948687042879219427418878817549050326507019846261965007795422056176655547394037624047306585889331607147183136427354702575560435344396551740674050283956794969746991974399820289530351716677218505927731888680110215193585153122391414443041396690153727039691110914772041754577125426756289412580745875229605339649306854937087207812503552200937301021283314127861287734348285480553951792265881038199384393083386101722796350586971826771416063537466655016261458158099167944797874149198569878132156365136683760327876952021402253717567560540577059617212421760966159387940350466009393228267283914723493080793405008985584261681841274217735709083204034699352674036814915874237627198371022739803739350036603885051687040296862839719417040956856809060146678679900863120748332462607945088080773239552581783759766106931607297906148092590600412088837494347243128891885407670907148846627718220283509134606034827770164207393113060928795419733053054036633046124553045788717655408642315909462680009199433092214551101568201816183660651504080494459416208501188648087492580809749211026974295797543997616049644591832090522119370604821567839748921087836484295676186910295185849220007032986438876594731643917748578351855222208766259514551316947392062453623985404004548548910721051551479224261238856578409568877915572181590155633824624177351140414506475265257992870995582796441926385147033523249626155038896069419652378676339756682898702525385097229640706247849127564983399692506573904158216683882616518557723831321637682892954200859793638150704577074145014176944051641744199660517048747588811878998196646775486972744827827442261596088990143813840884065887122753381778829094486673320648541252394338366463636908370282087676501577838247079563734040820734559154549361887464342522628431220421076873950937973668952429061802975999673575088668072065922864731473033435673278317279194846122891989388245071486901811982270980557541663639110887098479706693405946784573674196330822467566626526697355466484656749924902014527114519356960735640023108445717924320889968055039917475571291584487904026473369116568127099611560124301472833370308271132522048013778495417014417369682988681083477909767836733064652220182310832502560240894045216534609633988638630371907457893537535543346221422520654676576993187106549764547243574022358307298830327063059564703392917860283210663015599468660329881573268973363005950701736464579383821831014120872169305770025427959360331753110995802226290617603286473764794099283331304288597294609691277724321940248465558851704479288865586365695630183817223732284600642341431778662533392772654850538001403372753260509748831204090125037161508552006732684851051920102568873494456673280295727383622617371970598903237988175214535358059418587222555973271720865370033992449246405473894128274517147180072063705303148149601242457006891370233882581777537317086046393287223837140085684673599518149288368977222595042984817058937134349611249635053196310683619228791996451231298680689012791150373635417410845880381737734677558140046858821485594995553749006826993168520076774792616218150722092586161210528854617712384731554658495991289966361129704311370013466703521784032405128294586280983621573437036119906147539206788493976443282822697198970786410941615692512457237795578200688686042432014984472734556647140503454343904173803266099050867336135119311412437428567282175827496669298418958599759768105022300608975797584854744209501844859841681051146553957715543880486901889412232891298320972254461858646037434752926206382107511367381484926643995029710203824994785943576204096851674381400169213766460939191193952148605794062639768038840149176321011155231322950433161113391954909668126231165619043274482335221414127547354434774590038575860782225144934158133530811300100522035689049408364089257543010330254095754384087164214519300330802654990359879773889720437887175051219506443505230907312836713356471546626884097330121672196667431884888846959393525874239664575485475519032811247261735569950010388992922037972075597625617102768997294363811446287959814480203674069771789595526706487114178630576836456805962908052071179467530532082633412245818296399032633934952960626735371489565568233491491412563736874762442646721999830945846005662399853423674072304903729894772758660505101785704487617611534450989495538115840290674362649300424656820953649474234270134083200261200172074768593526076928518837263435950056630272641222066351312747892338545040391876831969254086844789346688466193587565775100846839502294884260329551702068659866584236096132961495061479627754208862804717351540582508260234276522800575080023409183790855206902839198016239933613653202122828180455367719838302212724083662878275781583640543023763847361799764944664366675847547577419199325977009731812390314658741002556312941367023356293971196256746264011757373193589208537897144054479745568407998760390892395289592725066037351908086823399751799777576978106375039287994910045018913894379215791074248408209720125072126067108699618352104352798212732644094590849759802021546649839630391239092999225454687063126912361248230192976015105028417527755130924707100215891620995639465279247720653701263476886746664946442392011205244984969508202277173833491075646516386328811252108600616570525406784064647609039128796439433279794153505357985819317809406313819538127486989127299066943190164633028141350514676661394079690989281781586825856493338263706882548208520738714278107840216161944115151384682478391210355695784503160590490999838110066060270233066831593434617937170092619085799332411746102427529186366458982284372150109856495340966741550824154126519168910433877779103637558543262032685028520330790154159366802091746270648913360609503618733490846402599942305749426903973252301456057967532266199862441427684998915498927376412428326590324522998329198656743715944231251051300159491573809131213368582482836345850597263358152200695695056497995946475789450597364260681918303048945338096024598351432644334727440782547281393924354662367836613033339333656114126869011541910223950431637865460765009074446790089368049663176203761898324490995549178459359221518508133390629620464986123668136279881526464894834269887156430131317334484774005177303233227863622659918077088995027670109242503323232770736532478439650750018123076358431309632905272146999968519654464980801281659662865064867103994877619036064753616493277130603284755326805003444607688246169119858032711867207366685597307083883670462810183273026484246748265615075592826803974098100329632529414582694830631089895440974572797112474279339173320986773901719554726729668695877169916424066948485194006465371341206037100868114321211175906885922868516477635657591905506288799117497679201798306095051503928954302973673148705842624154287313583905388092688607234027305856852021434809255757958914844239201091520194095673603047726720798044141154403615124245821502282422098863165004461081274421079302907883483497489833098732059711049700014470977567317994191427852045889435604844185382300143259090675918233396953400021875745764758892550055216779017850511705565827875503686803599134495954689923144356272042351225702085327620615746373749367444326365607756019612624973144226892818763988129369765604468971065254316525475152827526721448533168780543619143556365035553780047611217071706746547071664817684872229432159570117411214924368744679068378681261644578669406066504261063915428567813219729944335395551383672595524148244077962116048142334067787145096281197987439487605730991329988557695436281135617507942746333874088492082747908056254346546009694852384909327389619646842446679724640773700485491145419527734958286958401902307897609740965268087924526677328682016839539818705727830887439490015367753929797171968901469724037099760096013418341326479292749549932153131644264726155149598165083685548029940472898185919614255902187912357049397203230452398061597575573744402582347037343806556547117099620983302562617027937160951341416868434343739065528781247342351676308028064661698248799501200605267059803749529338231990645850322105131610171494725682488520365028350265450553101999449346601900955601935693541612522736520490570775010284520127456231240170217404649308489065554821225815152133752898165011464844330294316627813526783344952113133728429210029476203093030502748399301978438648046136377320532883279304820260725336682294148128075312763957076983397582424514073515635288015929659003824470028742472044324663702304552740735815797420477121049122306350932166384064428161937999013805669608070487363428187883468979544705538764235439668730245206647871671511946375035255041138676243695261344253154608585591449743978194916664780391821858186100007839944379665746898989435840925146893087148643252739856810144585690180817199484021929171793672846821570698304746682235351419962936711944690344138633244761371955608855498418078823019752724844212591337247983529319718594216770908686348969541875946759817432757632395815632285194472300977906593415489348496630495015974633114254122566631977098301538557282162069816568792639175543488430359833609204468609556324181670289859752374966642938502042974819354354527092852260770684831868657294303741062310708795976937872377001125510616163146131858817740564198367803397409962911616880789088306743017413103282822057187389842652154727682580541764155594080037001967026603616938964648377830075125082300077306006642355545452054777733741230617846788890667760782903529302382083083503121252910881539288114793353627196816451566968889869141018759749699136166681177831206585076634851028245019114883149983298899110118412318413694826901575841064046062700521893962906508608146125244725207939828381105392560692257874234842316958630583633178955850097092948103801589588155208292417940364350368471171611651388034049735145597407755450553253458397961617334445424014318969853977157237354845278857532145387219986263128213044752508009841528042578146074610984957294444224014982937539329443595187480629787499240403540233148678740474161339025107132554412423722655160067835567648527863705587989666156369966737393646779340173638809821935137749841482184295027592460439253503206888767072679297843965254630407383202278100914894122648310408917276904078620239500816181657522173900165248002515847333669152009801997020486368512350010133387871014246276143396813273298445299701064475953389034392843758543670903832981480666613914098973875949169249108452951264513544978683957563803202454825199453523936770461790370881576185023794452312731831089689969814063795844170626606910458797935559802366660896638767165217103829622701619904358602907006562027892987956908862179796737718757590107906501556866398783739153105571815106915187052742571187962142997836153762225841648458337952322131945277064177236438311225768426867181528668807132877458132692176619100350994066765911531608488046515632127984203671579907330771644885304309696060759788711427037933648816089027934829880713702564207827350544605669492020766803197637802246530318482570529990917447727966997262623366571736469284705398784872214125037952051086059988060649314407214178960901257894837989175777840703794865935588009862085101273517020687673176327815605661025741779881670297929134882501355129859509710758745601810057457000321280192687253756280211457831482337082078142664200487683128501131244379110913770408691252599707193690294643434495589469617855168876069104841638081157107628873329575872558961447558250442460844405223760320911673847663495296532816648686665162619050920620837724302376953433589090971938272378895168380588274229636711622619772348711468189034342833077459876469198539143164370087576907893209721639726511863286050098893523469267447073934010390720183013291604168260255979005721611512878269708873204190183410125390341714664833328425376249943581197565833950933804156095512234216210305359077450353375271467138306787542291839345779378864724979641157305403687366209112922120935187264227522914384656653168944775765584519982653524691707661250752796505005892959009776428692525185662007905708586402129993937163019561200994458947882161058085705860213089906894536848776411213947853999583004976127358095614658742666234404875509714095801012707071091600345589140209071581286152493792176131371096567792312655587799941176957682465035461002880730952394056743786915134620250467744060586764289536737242334713254071697822929983696990194254480960151864922240174998988318576841236307017514522771788734704496735465216614882144231417268965132506702459596972633297359858892856982924226948113281631704168130729076282614975922786238693019401872481708156395851178291363291386454838994980721505204957627876081484423642222062133120295636547491400624829678999272863032171810705889106384699730965796510693015471086415523760559459442255703922882977270192341278147779388690051555948614612497636726767354834268471171817939965371295038268674891578351757723022778587383902118435034469982939882312380489593955124102626609768247029866000309502772272340803112252512050413699040248148441409295183441787165393983226191263829349441044609688369488790246980787575908427550801698424190520490630088906759092165380407816090774448582713325159680456711770280039060301109762761723564170736090789019379325787358772279126607501510407331108721136104976120822382675084059074148139355102348966517990723350490125809140547903023557357795799954359065445345170963204061042784345212332213854771106159835744553862804549101422165208380290468104958918798685589767500565101805054577604275676076047667196671632690907078165248171979428133341624328030032869396281029645045686506362889446345348902934194976580898275528577382908583044292650870329821691242447346588514118920388009282946157614381880544636762657631241954766913521443036330285061321617798913005693505755925572609353016889515655984174272897151541896769232310745076535266000917457718647923732114776649134249634969766859261941033829020416073265387494537900153942335662497442563590590489808801004364495957930219904900527150130056049191834398686462976711679074314801737124860831490747972398208065120630737069855743854765374227280123107382108272218260819944545328648257701806686844789982026929512173238061502313129837032053152546687961065903720460954408062860476192448672558224700755794517672759246039467124789263849233230639582647940630431251044637296117020332856709915471826283771835897374716091967807742100546609646378571475414152194457029026896491361549086825281406011452897799486333169517888134129743653270234265739143127699781803831659413434735140094562881305847707715705357057809849833879544781117175882365135732276208822520938486378772347094684888392979727117317149306733969554011407463054133740446802313950527644308207701986202896276777056311234471338354925399095919899976171296558354524593661232582846117242461769965323358474097120358465411305067149115117304948139714501976186177771183291176805926452706412473553787417093409471161431179218608192031917312210941025408293389322766483090337814216795228702401027374129462886199757067802608683822767093563682729545361786393828802529818792339868162709539059180719537173309995796213342441584570462734364339395590224835823878971677862698982708380376069228560644291007026541171678562611321659209084372365524069153837788061069445413194270715319705502784287239110647591459961663732214541734629784101820986212968542167380473644291959684313445805354232274379255916325705698378126329256050267896370009487343521196372060857073673120687169824960551765183836704513926223595734481842643536758009409974469388779826599559072636522385325684681275959811381451009979928333490207667402873604825178791263436687261023385485305034243374485219892087478486109155608556761406939626266219349398412519911473300685661809334771413630209184928683431965629194002442374792046638085784738188972536748330134119606040169384577597067558626353094329741826579119058770507199198495060557362959237659144240808059987543155541501844301654565524688086366729528612858980859463766008469415324942540806276843229290259785439067582662887984454651281760588715474786632504705081674701232573083528593384919969923994929433259472411468174482192294110423392270487210730808490759705821897344556923070959709597569371704645463010868981624612334480260238972928175501444295495914493458101565572767676469372257079635809547169609454592520940335525041494036268675884054410603167299033738753116304630518448602888328116130455797194238501104902169591354554714293878079216620634488511453868215647124961469654358263939792118312602386102129882608001700894652805877351572520633008183397977055026532973635579554938183232803366842204640180012429929946233326930172203337304636050044567951899782606144207753756956761582833608798476197572005698502726444720998295937907713681068992016069699445680669969813944655604305200056840151548776067660094647583275658331323308431965159143371578699188356557586722071754483616617403201129942620409278546305507864393205377510129237110779184558758794909830582175230822391466848732648083405170677310026080639467847094900700533581601785941786645157798626699257423816506987176032851325383474003244484206979329890396197866971680399696107960540673005864252671970836825275299459174230738893497089573954340968154490704662351858219710306815923048259856285787814372056013137039354280592621429793216397770288897892694274604770431239231607724937069743652552518966083096486238472713446738316184120428079796189787233082322854915076022202210532764559475618266459972866556614188570674809303974657289930908010059175982992194186166594741238196107562850044735349936813397280880918075492816201309680217005246654238811514926542069472588050316721560591096018674608074922539639105191953124553995454710720037693118864052236136254746447534683695212920078825398628044189205117826584883109111829587211852520592293242152103328952955941984726857103862712600491808602929773574959529489853142895383844249816955147345204856093067461936121407734043998188441427009120948837661719268293593271766024180373305105165855675902498344929779900068644300981981036896788831271771885519445085313699915944194103624108198762947183242594009091449316108194162876363747455648472311618714135473955133430145934622697817788928376062664783179855521368230091913967706982017747685795254656036269904276039564238716418197161192924828928465426564192016878263053820025761735385654016554508080216295307755837951779135552413680592723923725909152754949451738279573242251781927020875585365676998600873917440494115368074366816367429227053601415833741975674486140242531166717940805562218158323644245366473705942119949184797850034793965514259744507449231040250753254166933018835854868242086077942449349247890780243864625728392628882214292801527212004010112408981052560711527517867122380488291262391039533138514695052293249616138392063704596074434893616564951102050772561706199262625562251621570544465695083854091190516667357020767194585215277780205740924437584198099721512115329611366226723830061793265227796260555965795902603418831466889959116547793498134683949516417406339311078440687082471626915894300301212704736667822121632679096874149052660452984240879140760496870177822845108659532639486607146050482028335299331788876392697516028717466372614474969763028276286345716238609741796162505202052332058165269182433813968338062967892255629866285052809562767517381246503900537464384058685923270953752813669595769536566040360686497969203612097836564800127699290440319775567461541876945542106888447806634782427520598245741871088805832528316950011356591291425990032254219568842106541570361320018814783260980948619874470433199152819165002685364456477259663395559174316585132924731376688323533951858735910093755664813974671336978197391316438070197993766742374639824191815092624857730755112191605450406878675207181487383289084933754178176638941638977143063673514680764825703647436512009840841536931648210429081613923438760019231241186543470583475077508523142578201675672346601407385262004085608734994138484177535298191912127537848799241604453243405902207547989695951570675148440758253159966788874145381691803089855525178341572447729953348916425115130074574288615312616496837671191334699494329344397555921636000866761189163313852753155255275794557489027000193851381790329184213773467781679645600174585546945133295960075895083483156533680885557913602803823326966577698045265075447055733721348346099130480957944330713026898654021913096358330295616978801210518313131587513665758287557482665894181976218331778983181575694006395067511795079815821114107935206692547089517030817869554241350552472797076408183127241884919616709209229325174110909012271674379392425668408696293202635679922244369030997165115445303192085135639972337673728506133092209416598079614553297356972643576752346448521468705372801138914896444936604446651371943497346166714882232074662056507602464567393186233725401121117435474937569905184381068797015729077219382188179648965019249942151378336638629629370632917921778920379282441306529794064270784599406029822698216539615629743646037893488449793294425511829134643011032729005657854409176911943394575840364615544743862917838176841110213352332119992820886321188834263557884239564635707964687191242936309703754797098593538854615939690810337609696986302987307518560209689439309174567467007805276434488570722206565701880102117960554826754286034944141303396120815136735619395466410190896516868818421266670742205999983322731486874374118090486494366780153154414485883669427668945711034855924116610542936759060034351652106027291773935118761785112495911317275859485673889951707453833123795809380327333255532882062272189140355057823737740621284060793321935165411314241132651743622779827274256705085647800693405448865369864773071949492121456547765852213788382112583472306678826268481552936351020949578717326688325561167654726328346754802688294150934449665222180478027675231256376293677192620379183621260866634094084248603846630976961076011735765804421301288631421552809492753915230918191679772979346235001455518062382853209290738021679281282674211099342387972585780588102559681436570491314780694796122928055553349905900660012901902545824550523568994354328556849633796790710017641718980767521172834167539058668435681742091774388643621085867897258823943410125968334529101500308688722481990149026762326893130636957726137671902477606315039988818858655024896854572686048935828423924401849836718657680467161618113821109751672115874882990264058555567241957131357057328553183855001468748997095763218618717439940785789576226566089005410714553287603803274460058278880597514666163866088711946737137536022817763441720523817539098368622205534784567493302532152046223708042817076570912625409067993822012091709736926847038672656356927479500974900466211918007617687674859668899905615498248128168372001557647096625955054901677538536572410725070617190569318500795847410426375871561902201282509166023970697196044203235588600365405975945520785463503325046460711515086705164114546429127822239101314914234578433122211871916959951756366500612196381005103756666487111538199939052501794800385361161296137782932885580546817015808683381128952083659335163181083661805769084151322891046945134555079267732259617546058132985796051679672311299222369535590055328148747918574796200958529555373137694370802269631708973986912723170805244149614682193355641637096207506441883469910615374771130260264822299762788209126460281142368807278704483891142302735755216505767111468730535687587755852488217735516473097910819413247009073084241664594544040515880436769200693161878708880117107473301824213744235968976151898744008984641869267252241539539133776079141834952146328832091451019765436249109395557811997065040655378540432073023575418261248035577220779977354257123835361859329100288519063274164255279409656785728469330487893136221366917713884784359858809171229890986239258267999965945954145728023272395177687856432409459592013118057351581951103881751750026562740446909301022825880198712727048941132849925104522786261462111331894929901595366747598967333884029556335322239601610576700486743051575771758521269463278056335798626707838121603387610689822252384439096937619685567868144851889555360672245211913828481420053041721063036355417006455535947131819262062170758295633401437483890655823607279385672740717259987046961860505809702544228491889890530921466604356294044599788920701656864987783405943631017626255516760900855309094739247754426708563984357273131135362317613546253262178560227147300169980550678301364028025721362483344040333902374853608475255367140348167934282362775441864788593229992155540704106355460243178598049341157680503522416193846637138888784444869248153472522823506637608855932552220993710349688133847709621903439031462372818688818631786908008565372369504863927754161750601373873191374428128620653478874833854846244422383778157255772526211661051104199909142991871366270644969590565677052738823232769381556624953851323735003020153288057043878330809232787410941452494808518599717185905428815177699729507628303521813626047730873036604180299320430094594233306512482013565673914882947810316149706002881441189241630678322320430293387697240244408695399329581696752693500959899313473327904445345080294471725906095248205590469350637365290389957965402556578183190835742182541654041014636468601045180534512065521952584402633982877617816711202479829419998252689242680592086703434764774454439428627254546102442306715751360269684692017661956027231611371970160545087164698545538046298261675192238490825576416611988554546833482843315105909397786998263806590915209015619845397077190054559119820247879245356570318939424400379976622434726491646344243911630813979988252072959357575959606175024101222965026252886356996864254132386952274555517254009886422835966120475598629409551749962799049036573780308197687529565052819492308476939890884971340497898309511710150185262917717650938938597388739633982553960872694605946028359776228687069305570242514177386485814735345930610227049751638900226380532384612906639260641535511424610893882776869878371736330065867358415061947883391896769951422158205148528109030891441074477840405346493747403306605777315908456528373148599851080387406926702649257922406750484495183480148854929584244676719938869100636793735693928795270679113899566145845754629407982202685701294435098827069836885740382019296090315387871475480048046378864827806941295560497608463784318865150228777452516401107643702964138748796920752439022225599761209508701003509785267050978089417634680895506755701006049263471662655309784985535646600519562857969538018728820629772016066731371268286073956728779046622809430984105951612567454001473257030685749657280123680587095600246789801271143467465282782500698394538243852879056283682039748855280941332078155084311661641217261983944761897169786202299876570778425507850894516892155964003872214639030465306989527099142207478930071864657184355068278227082836679604387613711271758805172738347605918879365115301189543620759535260915826419525576499586029442131592973576993722163680557482888023323675877021960047104852776388534721584272437692888349737813729629417028278223848295325140757864909357036199075314501113459892335653052824392373239385670349242926863052951984259327437253409730665539905036744136807705745543643496442259333794454999866694255920905179989198432891680797892135300849238347990427079968426530871528259797371275091037274798093191346702122302013200250420492162727218431887776371885446260841048588849781506239439237229289788052030380219044170092222062421613419523835281505740070655620118018121724988814809857814761920344660188303391865266840816324133077394093776313849449046124692777335125821631756202152877349474773460339994412297497827075796747579910436635296538792637624318561443940123481754008261729506244860775465938929543303393122156801235350239485018878669003418216406378625120827562633860959966988137078111613142073922787390718578803691517908387702870166668866405480213109206598621951031813032139620960425835269046546423110520033685062655977174404106790928676647576147937731757112426793137266924913927825497871365079807203004186619326399991359606907929410780757520714139115954747559004763215304730438564162282940084417427546775904191277048201715678533760897866362169517690545385230541929428446756983840417925913071969682011604042018467212510524163643664134392767237313629542029757636309614166644895075510806218076928725548844480974073150255322970457333443515411422112809811051928147688749121237844654992169747854011757505519922963191527267536348241736532672181109567720609370467237992534086938049664881158908404080602968120151613838093648127732973418386879179357443165013201335183916605023168450152030656045198325093400011825140946457094252623915605851122143953171805598953239770550158591968162940262356441881989992354584998454078200578819374756744659289334120200094606070831514794837511117026705272606790366662914259289471651102266126215934225813141690684544924945821827701201953094220572238548433465956594640503845069772073517289224032052815118724277771724615104099573491064396072843834911720894595079286241169038622126444405520746976859221467639964665296961603225851903491445385460919348461095543808156995423290284399097319544360818368425862068396313855856029860920123821299618712808324845203913541986577231032559022485783069376974788327798231734240114334274729543244608529566507622183572961247996212431163575855333716722576013038349626172881680517520664583609484233985621191056518326335750295705547038945762894696798771465344889367369464252385011415972667147217526588717178100869625991736448590347940808022015105023533976411003618063191089386311842020843974587876309132599850788663140081012004440594028870569763678939837120783559651192235475817708405691277948142849281808418300079540548126862234053577453008145490409068248035646254667001026471363860892281892346369612917764555861349631477686378587267284818613819038481554737429302466537516190452579949872708539561896597283756478847960467277697567423987682517724266952969364639355115310271021474965230717624778644854826631954755071973278285164383566770355247808905830181442049397269510936655923435052917478814094470259853393425432351689318397984212357109171323753391014373433340419704116350280056039197572945899237519092757110271901774771252201935925621324105677839596095046528689058469774237163968331729046314892232205683525183671302661194705388586517253906414654497256089831536392111101889382326788174912523645731220076399682401386498549301076551747054324788508789916772710835690642815559863905749240417784693976107903857374177884069421370726975295583884207088836327698858883630829171983724533371654022379217492947447396372607973763056040780410792519888558158584231205314859211086272692361798204184563428763207863720649256367525503948609003405388388656084783014859539999855605557018951420568444403956914623384546852217775801694044814391408181837164788893672826087754234719899646508408010074603192947920494889500752087684906145650218614675935315744631384225904979946940116079114583051553068647389801994479139116884706949178262790236803302577054663500240876825052356775630495382427256784147228766605215935226859344991522444737094618699326380887334975321854025898335824395424968832908310889384062062997301512988327386331687415756259138289654491837109178379630012586871397693158379711854644994571956068214191418436152279948202321646453959316823464535439723815118828577860475641721587792600479971585601771751418851660497338954353884309926843929210332481329331679983573698331520836700498582775431743712770791399841599973006362940443470190324748066468523862441768685496556621740667364538142271459989341006837601807199359954222328041645148069843201436203554307160191219621269442953879995000024485334504002468595870004387896263470310680056014253282866673792265147000033295863422889905645667820436039902284413993501793198237708934844975908533305410715660265526843808280214486970174656725516930570134231719089445920957685540966968662539598359198243446091819407091835790106278882183318618810537021003266565609817089105015554679145656218163722607324239254188890232526069626216024402859665451551741160553168851220831838536465326626898981853082609425448654525999510031909637241981122530448217905695445749181057161002240071888050001821796871308547497190519533192150558439991619992155583395309710166137257901114184376896812338499562243514705869053597427937470284346991814326126762976050602178075972421856560460537656753410856357975253698629219782083462071896889241455824467190812431088215610135360136822553491006865247801784425751524958417487691720952507859209364633474770154935017626630400736586952511507321641160234127591022631201642496157536004440447790508994871368971849026859416119493082834804588097785810792924486000976440751663162043615191842550659877143032649668245402652364505932063161684015549714313751708487892787555186104527805178906143488937756244745793813571829082468630883734583099400573904253005724713955769232062208290975901881001041724935886014962620687567569196168068337247498716228128658477871964501551159829354422353681148727777078907106974851881144427777364397856940774872212027502140698742223212181320956422264289610663688713520140478255718506656750645633656132274654121405264477494202438010749742729033512956756289744932211096798141442382795547680983974124011518619793101286306122959371083335316277695490936664759197618599234832046867075634789196686386679227168599778303868278344377649337791287088750869714423304634605027756423582060016734864226041814871462556341303475843147191514044927440275195486801054404086833311242417238486832255862197072002603718825906533053262197351328905829934995528787485958553794360522726932976406092987569098440857860948517525075259030096214216118227163454789824620007271468969591841067437990438548295224920389984439387784547135507911694647224965779754386652416377047307931290845158160796081798544182827425137237883242946347704261116937827385585813389871698891701776533754659173997587012564302921882368445270580286325651938542359211133685388333123392158155273983968001818884773818524999904981233278995726210132447952082970957654598040197581645020845962054975593421527759819779911767576143113442077661868357097303766162154985654606125134004630512322605511156011892816566266509301272857477754105075746460661273478763543845030461866499471008333780433779668243939212507914235084949865220435608086325371230540972976703445443219554991146333439921192045537990904378666966416601292426811313038697455206442290837691030057477005888641421482823537253230659878417493730311758589950865170618482087216760281132431682812426270024669531536111359823397109189079239874274642921265520687111690160767755529596091189935205449212688244736190023878307932542368040230997920844897804961002040300415804332793301784753849540350725734321771934772602801390589345954038356174165178440593878550697916547919350903294010202955221924383800689878619372650516262676922013108647858292452772783009003017253350062729292195533514854023987653050360596120164926908527333571440062725625213923083081933183619360489008777551762186576568365938276402573074212633255013999969579760471727934191889084373240189719711035802554910376270094344265799585670189116154591417129354364795838054177475337447465356044601834847506010302964348365131979645486172924675884650098151597391468823352538760465521663809317288845832251462017096371330707777404383898487374396008118337128513785728134413707438963863387810192193339480584826252419337931204548129584872998278047782330037500859460008658715312785914566285201381438393617777320505751592242569306387126853986558444505483526640864174065073103751371422496647391313761706310984096017554176826589207837122434827570064859814919073571329482182678302842138927958569285887510088317082490919064174865021487043746526126843002479529414374771761068347029771566901825987880877531989372240368628857150311215772400277771759739021075538237631906131290287042466078101295318689777680391428300691993050092826537315624141777745526679658793648818362233367447864518847890819651670314741718999233102513777732476559009715109660250879088925083582603617039970219879179113715146990084838244825805901219278055591267897458985477808950042206427170281532850220902490212819342702877605862305148731477768870169571257863442331768375202271317790702671933444195666013256792422929679843238610489987266071528094753025842103964580941208092290271437702233319741894596295431641113918962661241107470664279808841751269571927373026813786644660746341756568907077515123227713872637069294052637399852911116639034186332064167225123093592777684264597806165436779289105070176547553194732022292986345237825061727904110352164324918454446309010919588736565338219181514798522714217982326858329223173615195390272550953778643366079869623616937058294148726992034067642568334655985948135938174178705002983552427131856330694826750625017002373820212540423521705604883846739993584588330074448150817356353749117802942977705471176956062120030441441616651662419722165445476350952054966097693197626757348853625833884810861127733513331560423977408282989635497750710921391352584660753409189666260434039519363270233504547665379488492678347893792263515504774729516429202988642499365241781786088886586263013977282555967523194778049482257815766767911107070215337243462105855809600621795750966533768613679244442620855163923379604235278132007943720908973124685237382837328015543427349488381271776641101851483067277540263120511572281121363896503764655981863136299915931641524151105843425536718037921554728161004965019135203690701581827581741642685636740128073431615816795866016217428682569839998728504747007043176592314268190167632846509590960706585657482810108635138710771380425782194859197606795296697766917972615442632710538999915950337439734136757174761161873583196111356579215894969859671508427407698835739807634852692690704552834988929573292350172609595868184305683924748927320767053024600923299926986848874577864791430694462227088349491868242207612870626686228354800711218067596485478823635004607614260281900293866461315969909734735540065798813057505038408791412077601305351984361251833521940137693149448376133516970036633499258966573012820722995538165965288358900555750616681425569864047478964499936164218977590666551473650240932180645490575723186970814534679111307577959259534165378793527770715240958142474670979719677769069097025642246713085602874622899812721623662175619614101906804003127866091592475043599832602541653926129757874106411482647789912900938386745960800951227260242084236908161365776120761277421044563355508016622212315752687160230159270892128595873468408479282339779896633058020011912926728276835501780474778595606927745454435766444229638977510059141662919994580233990309997025062139171325004819455823762780185062783246918988472655237593694447032887394015470844675818972799152756696695953436948940462542066437743556537090836775328728107243143464146912718142160143994421243850998368178835497535670608937903904184843080178497329807344657346537878267917001557781975016462389475836421390759526411671754380777652692764306382407807890976862510558536780249194054799492286634569928912731208108667345843908980373857894212079346075452858237138037771994005449254534945708540409138351439662732705144491697993599795397298316496282352461190040336927778377353358877951789636734169212969672863325830651619025044358102097692028100065095324246109656666975539677086031494298894067217953190792045584870548515646265423257951483730830173731283026150570971971554075183480852172242958572314500121102268240482644343159493266204843190012093493789411683646194182188203543629246635277945012051960929774785014318357965138496358103915616127576450147639926962252279744208657020701209770342810576021686442635552532106203519305871493906979463489160471927176361596319200014363348677269145549916381687433142001821549758819941794277348556125506150129807132773159299365682448907427067361788070521664908971957261670796181605453490707576632574531169551433909065859852394421752898726521479723034291865294398466102126572934341768713149875757158488465027119049940512267543464956744658976272376868673325623730413117019706514792729012135666539793059719154110955166394251545501183423062812254692323463647014896482168004944024201872958839375002677971293111396578647165989036197814335780736486189626261726468951800585952355942455900054504630130395853758013131181246104578890638784673512698732322995341464050386146276913381929297204207808528595704078880257798327846336780031905489129068760650682909935405428977260371131211391465363847187403768359002386691483296781781940712099250662578698555752220447217502574838754115113831546456362360301310136636179903713407882591210048660178269002088545831590149788846178268795267269796928932769147712642733046556076778222714857738208543204877294656826061229165111075220188163656740703537564973844600206833705750080983221935530051842488133528641367695014465938522453738433092467867578968211050464053423031217958735331890157496845442858605308844468227016379136186242658366227459421164119920690065350521560416975892530616603610895064619740663589837619904456805875390918897718508018866358967223485484598941020138174425504046442561711759704380221789223166257764004378104993343576544937415221058416608313759135392219675064752303682958412463996758868853418255954777459961870060433729529803219117141021429187174210571058248479297018780746486344884977086680728973663418372139440890434151599999082600233670497010668995017613436912962498842348558934805743843253126146039779167419437327921156569160956937527602775949945557686022953653407048124369730829817082727300569819886278463614472322736066360962107344035211171922292730445376677591191104620304836703734085950990489924686271419753670691871589329019096001566017526237815420686158667249706985203422917295719510052950150500109085365539052545625947682080870762458231126408933001406688551099296161567950102791027674861537804906614661582394029752234080751040461306883034616033257623890368234709251428753115267739773074452366007558987726515144281006597504168806295793361521884988348007601524857284254701830856693641323988413327284945316543380285948849282701665351248062375429055803519194844330192650501513784512014364555946056664507511712472358441759650570156591170653881033108736800423277967039242965088388582967209045282593671475349815186150491591743234927628904871527066202233991651629379392558231973526379126547886296833887050452615178811338594452509781475853530145585882600217179545271614700487029400805505575328112282411502477725949529830740680257661603606654590912869049472166792252189852269037513071929139949107036544670309853562367234348169440990275093472029538646914625856458120650090405417617272269504127104677749580160373001767036975135065134390568116617006319843809022953362920544683299917429775076382326091699218724568439536089168918389248045113464469769634439309499753221370627587718254367039540212480869089065707664010594327836601328327772048168884441699198702766296145931924454673619360806851928452099786849242820080172942173385229627163528332766756594039229176277042434456884977529252838812318893325182157709847724781348343484625801904084738703217730735235492587004539585708724287591609917605554153354904566749887959505682976965028279991396757611761785317279309624721765893733304040195490083644969093132315045370063806188919085316296385090536546010580410880287147925416996095641394198665400036967672889206301232702194664273736361445000284478655114378931783436790272909865590392326253331064016578132796119477252512984263414497036288446702643082801157620904281237371573278821146863600608476974902574125178543817771531368011633747617400912221632208024450345043534421207080631350488391694807567572454023931086978873713872331073140130556071593401837071255068786946982256558434814581486232610577343320294845694367782690705707012904228721237684756657884973942828028434600207700449320924000532115768247548990397935488829071248721406961635951255450622498005152188559736541053539621613840610658909897517076954188359145471645939570202264005082580213226681218973917906871539339269056585800914362687278605494771911154677818676101808611452506711574244927675109962245015497565241272911408788262916312198286883324125131447976712310848478170917971851456780403101664934385711498320686209761420067334749102417487261927164286276891384717459175407658746584819205436001154887496390386523068261794884143689571916309694418234271706249596741048107979585931967067730746193933554205463184273702585715683340720858515355746938805480985430685234871160548991420022152519863596313230055586270172067256404208806359114379610253667997528815266794746483375997955326756948267547484602564828568329687773828934190034777869698478119170005594853997962982850441657565223090794964777503189864477982237846733180861134515251370222787091594281994606522329298638538189053654504357261965588769083699145128100388901788840223667118412405883272809064949283855584386549202619173675478079855144799587532185465956826454233665262493960702004974942872104115390965806440738956348920634261428519687187912301058134429510161618199098678600333995854716271729825124317614537506694957137859697649023544920166993974760192255142451982572824152141734328189607912098314024457483887838249444699023632614364687704223346295482675856411726307939682997114391120170971100811101452848940051149786226927573773573777596705882016929572759601397295849142273898999831871320973915918570293065484512152792522082264432332405202187825623999414100327207160376616373487451125645065558091535651552882152230147390286336717132053991893121843027392724871111882666630216304894356165472179050390877109313936312295937280399354348332712316638205439278463399065281201254568580408262285824494373454438958116586879990442613125686612670806370472286309109252271801085009758658925633280055130458378141578205695662537734753429919219127941106834275528129741761609624732533824061002086606557578906781428934637171463747804702231268959540734886992790057318763758339618710223360560367601134024850073882878184004422400970727051308765152883354078704585771773339449956195275642468228664344732267292434154936075164464980524101235056538149677735622133994977408190215552558289397349662637196282199720913996170556365328823606300060100214247260399221212363019455244422632214070410278529198420333747196999952649064618793010326745701543365440473560104664942536997790155710650499963745805137770586726770618039309990749260775312818195701072533509394248343446783431932332999969299521230891640406964647402717823939751893499659961870836031248218020536591747820422314776735172734840486137731770736309504267584680834712975798959104352766863449886091838619740624176690599797590561871124596932051669808566394846126212292948143515952023123250763723037498356216548629160310712850084201432473407472544648503763993524382519732449671355096114729386902382715541574787034185177230204375965326137005371393243351852809665993421567180907443130374084245003821802478873221449164582966091825521389257146634009469080998637741879071283831790390473716534217194237270803966781448401516743141500275382199475209587389381385249837050621258061667190843599044824705759789867390574499446748999144401603437046964470290062226521451504966380421716026842978612009571857062129608890734536041780193729588129085621780493908845381988360293566099677724566127330217173914595900078814691684982883003411970731440021026804984705833623397587080855096086690858039670405384900892134105194798629017370504711716102860387305121715575215533973697339816978464307220257818047031582153898068841847335482597221471469795081140657576675247278057313151821443631391506871713954645555307776684181482367471464464948383801177295609386838173333518314461604249124409900366932816283128691743761999394212032649901066612160353394122829081718769936599946517393265138169807401076376113521448673420673135926573032285588684084898096216867198177687517327858930153282118238332813626151841458906983574621396182022430413222049715570168165551519779001231171714663601697284957605307130593721156868648690360052181865804699384574175958393354662641666458579285089540303085764666426183148784377760281863923208852297872296515043557207430718807934015745363746973878643757138158430061040318770798406459554776388543655013575538529441860520359854910913451057445960653218988820626639978109565844183488508005281063790031718162499114716549447691367504165987740592486464121563040972608395394507912834471209192085525973544559744723271881089565189898211582457501345611511382510071705642081758206328751800745910181805896759541721426042765436185055251821563405739028092705372536631769546258774704106379375903590665651397590216935474967089298790507492045694267049176829384317195410593105611429381078339749711408994514793162744864574058948334024328667469602354230192258838577251934503539226084560642902984876447992620107516321553871910136278093184246121758701210186617974980107089616793343920129444702547630548510334224318338322329656471778050067686315445602281204173989442480729318880285917699575786277609687064198973324167567984015077332031206678845557714128120131669702946137043449924657297158278260384578978237386861966736304180048489430085970599157151434194120509873375084978989110001136639471129346641701005372444665226887124274710424105834699795592543123724788418709347592247280687022633242092931238613504073481295173469659108631279258407417336585078401926566313892706305685533873928794491912605743485278105891772278852961410581374473525768333784478216178554491498949569721393270879081130432706362222710523453778865316305236661818660562916476510787867460851591891567066756426027210170187871726576228572376472931677752535235509232149400287680068232997237989861514552904657913876690601306142508797213447308197382722508104685139568498376621124941339881530540834164271181284839493704015142301921742503013608135631087812855533755968364671919445013283016069220487755641176964319955276848416744113241349251415190336401235256205660295195783193584116531000593567880803435522629016457860037092331744258151371169284542314621752973477060534781441149050782158872669352288341399136402878876172131633480676887005520200485305500124527345850677544622151462492931886390946989762119381262084512091634559129330782749757278480728115140448320446924553706113119302998254789376960648647016311979650678108182472866452483344945811963943785710427821304349322238612019349102661626863174881966662407482606443522871690963546165633408541243236864047136512549299273828041869422570980122779846940680247554493255748326117300995882933710232336511960198493390867545156611671080914410477513519296258584600632397598537931487725116404604967445702537079204576030131053795142012615189823595377078269154183786842643680723080486567381351875207457518491137631859465587167570638093539438596484349399990625309134042176916932990095236421292769066102482594239790332207331895158664254382670147909573878476314188839721274381241063337639424558689447674061191504507970549872287743161080081690046750583471083242153181281411883904095766387321924237713616498411917662379493792485098128647650642229024566014894445217275464610950824991806061392304432840610079452809955560365072155089725242007591127165420386423226078726523517481270564180692173719422736995223644563523965775694024895879239878237529053661340280402477707987571856237342573082317512207777937916216099511474676560367223853493333522276520333276133918450378718160404969810253993578058839236629080445987251730079326782451821460539756753416107545853280059327337282643578921410982726927075847336245973412177745031952468442515798504842758502176746334525711052671464373911237306370183026071675744504752827262816264560050708559364959600738310081336555749075718942844022096102884848454103685709801449586197363021824124500347857874772254490244918828741328585773577966770144578413548196727278256155840216632300409633871047259358890925152899124506640284196329792847006677621098895306065042711727621306279705934888484476678544344634858308131443363670607369455953129171695056959573124371018766084476515660890170011175652643636477692616808794928772675242444967041127181860372803283653120132848024951133239781541100610258244048216469761066574305071124104174290037954766273988985101436827474537374551995042907877636553405963822488574549695045603193694575895716378868221708308279146340807585177440566599478265643544825372363186082055712522097556577164388409005078787992130342847461243950280269316941503405397786708252859750758943216955190105729521717995381806303793148754255251152354287705040081801286148266622229652498717418362773345258474944257963881639209282946436430442404755842365880844362160114546181433598573493042907953857287053497171235299696199851404528185928119891622390605868171515268885538416517970179387962687806258642037184097980583560509646602937790445216145819613518427255167101145007251860774061801568659766973089756219123748751779861026157514532243949551371365905855749618023612353303823135053224165648986795636643093548646068583676979624466072128061748824020741906600672362174244907753988365165987770405517760121807359246976078916100971729431650090693914561441436078903185446823699028802311910469862169047255888201339239658726959213950913298891319885299507393845196643530606109364344837620941699203564003451074300672431516601274650203656266494484318886397220514048710793896478128199452708186709407557740480683024537439271321359675365553407263095441092977017736507041310821533446288741435437249479824285212656059430704808512016705500928488600075995750612457171905410905201056396435537627393234787565325897362004783505252186817163333577130837274023184679753357858760396023084559998772237341779903704159352379485969963899561089507301630490133786196940924405591505509249398447236434949860236441378343833571337824299927187577367378844667511050152050222946390619023919573690938069120937775009052714012301060038232631840069144033101200069570095094773283579939486137869598179535606580757431327687447541130751557715267462514561325205259263118818013714728627110303171242887520827650753390046091303307767467753019125903836349689862475753088681736731958794667623285379514324462987753827053833366346445380769461479180521739853106141374103311649364660142848847352587523245894040404645434036112559969209277934922425678764538258525438848764407265677298713002048411160803412986806881178062039853299615112239066564908681600897736840697993109358250706619780690891228520584343528801420582635941144729062251550259087861461676399621042682982963932473516951556037516795526593819012171156478888211112055442999642875026736052288280608064108429505015745513830265204110081391628092480967018998003029826197732583075937714029811062463198473775782005036591559388165762863407000380652066485909566725475806928929981928221299319349237929347879464410218836051352906044267473739436636628180026674546878736373898893043665492918726244664028653435192747282457668081310855535806898198556995172312627732849393530382397402263504683646028312319402549306736331279165794112109663127672339685773529134463517775677119143443507396759147889558359259255651738780180647650077806689655059004513165150534926592566058829059215720459358126930615781606586914894573298237230942903592612633585060268047049272045949982398229390688650015304904441754886003055244786202926923703763425412925425351391780345019747389189746780336605280666771683546482523711567309296291438633161778837596979123001900089631931492443695888460379804861697777069629303861716619140803597964545556747961848674696881135079194885704719521930214172437319711682389539106205099702736950871943334934624968072253169763500509161598860239346220590915531532189339475524605943177569562232501574621902251181215819621189852523268853548260652628525664580315599410101083270981831274979242605249279301221146640559966275627686985296253291225436617725869649685224852568456374156579719708559368350225567270636694427831770643603814067881938588996482038349362688657427320232524863292015338108140260939031633561785416393349859116387270511088546714213704558492457846211703694363365406438319320138578171768518125810395987667130755034018941073770644438484994874453595520679329308585632221352991635815286562834204549688685732267944934542730272616259417701927915072179025558465254981162930665333144251194199167299619314104550185251926557911336805184782486438171085632701282478270600729089068773152125505977890439010520448644773567375169387272412412056026232931164106462746847264963500215965303149696832012415942279662695942133257627859832693566534712865599523157481610892299049416834582726704737879845298509704341426892318031770086203926784215400251229310922758737220811942980590115003130226353369011535155195107343946627206768753360054616798378167654657605653906539852376772560944718913673849284550578268879872648524552791936975325022495144002087713366337891669815823652731588381227065874031917795082301957435342549750613025881420247136732863900671472014111127186246240429720661598802045060946801658780357558106914749336367381024989185503045128752911104590182649590490497327367456192278074416297136823787094675062538622377926494234298973800269463302529723693590270187892814039562649975597672167919782129963551754749630841296983246878760609309546955962981607896355125931433923990943613851184136141703051814837300266465747340079864305969276987600833510306089274769140051730610377137015481542053991373399022053308100456295399843366928606819938313860263214619021867725457373875890741266764871169018617207007011534981892596507039241581795092393490777050318917377868951609263904044869721314295111908494601399557660529919032769670520596509988001761737172495765506972435248401099606938925864338725005016578757926898943579204032700625019914794614580339323545211356518637741963405860872117749805035980052442404269340848116847730105910881903665982190755379242065739527862453779463393289922783333002027443727492816808582756779564453565297389657091335182023051565676698360635970728578350724383363149314138091393058351807182165184775638615454605805784440641019935840144972671239049855391302839609460899038112087151692555775918426009449447023687070593122320271123212611745090611508349916582480827317451263403561171122592220099557770531236759508273915047346720620585926425847831133627176832907343319951497675324160647212088733359050587967512271416985026954640132569414407524548889739096865847680889841956245071274054958901390492332073087664007505460746453915530661663185981828446736525332030355508344328985736336391860103758437000860820701819837230168380462433293854016143530295599535235189283860852577473673115489877253758713039965562406960552561693960629602657708751075923338842216872018407298729459605353367065736297534465973401658197086177114050387062128365680145736698001687215598884901611005529927529438698306259665169176976813141175640878188601845725730401484902318132323042054800215036393606444466057044151144383665522678221101073202868897759019562158132212260233301602908462346065003018874272539887373990765564602059384720990268669045697002911547311504269174264642942947237795740534625625262374482479425143106153167757001809714926494920490811370780089529472680610248183978860102419444596261706619096279944111067538911789410042763495223888601306704328828222841943695419277739587469071897608742479243892272345177850018476325043161075856397493080559756935855460883439627252609890487677160709801108887716390709840900746904483807948407010171115980896105832482531159749837327157523493009673642708583854379677187114319941591345200971535461190931919372999581048883080511739920917919076548945390026839646958782764203125261041085630042799232507597077353290640159832650211842419752054951820729839310377722199557676347005130618251625432386230541673848011848975870687705448514932793296376101992021743255991069200670277489634082795318303831649567040750582028859182945970581518287081083383678668103698237068662621340851553980746836714689104073739260756737909766320980546817238377919575841684524928023477207657714613752695739867794750542363267950880473517893699742525665265655573154164042552002634306020444914035491156334654412734399533803953222351399667905842307974007445087318767687374013587889139915561565883763077325516492670209209369576521275216536253575576341472603285115635731024652887107464292520411520750541373826491696091708652993680574859841472089578216358894766214443805362209511269652606814484684507466211960987131537509023056959579042996389574024426726402270083899339680776845360145405436095996596642915142180051306975823913235030582355700577085183331879522165880713651795551927069386018966786445882186050719256391545694079243119089382807235933154357744064600429112216269335704246257248456013158991401854191134777080313233769821187195058137321123434917697058887907761522174226088706013562449966377386706684056711801862728147423765480809700534784399734944011589719394860595306095964298171817488702229436035456677863125249279329400372527931732649745636368874190732936798917777028342352882575983919034279370130194520023760898270384383747230446069373824094166682909264405654725593078675984815010831905411478691838642937233239538073347805811770399462125147294460754470109163603714118774912972757551107790414700581400832996074305376307767522837526309425653929668601674827427006846650684213561190081592174247472559436502446704889770909168604575825016826386856845434133254270351530451557885088987229311961524959930082582126758385684509997797821562173078329468401266763989411822541614031923559917585832218786637756910255016243034668416842227025607006145006922304513434918130914848925782642343542716211548933969059109201012775278819632378243463335070609862959118202993589814595649859970812151950021510407202698872999615078018756400514190678888400971883490665397926002998410978309074227500561448294041284526110335432567566460866267431359473484375312673221585974005002446460037167448793023148375398605228688055649690237389276879129383491124010741801583055139292528638922680813697677135687720743594503648777254337893214583144918445980366881827956021219256030260182780010455862696091993053311452079065808394803933164157478525344150567920892314384746012809622918688677601424276268675156866612073523181395519679666775554612677688093049598381038012474967187916361544450012461981895662993102803691104920639183577491273204174175195026381815114488030630522533974557288656792135082530105252511431638575261008224596323756176602658199151277576034749345704435011523563736851632462416972609140327786868678664260860551823972526674631864304911674662572667974885416616180148881503840232955322832497647551776126560104736111891598637685160233055319176126837846108595591603510139966103621264741472136208729726035683189986621669834817106641781130546942535443897882113036269899436384341585425454165886664132528556334567105647062785194248713531216711265540325804225065253340746084207639458150326184042789754819930720628751917882065140556804356344419905127092712997479199453835588873575469368850718982589539940957528287974050346098300383419258924197100549669185741782861157876401012331106663542186567388935672626647080608446360894468595879389257921996445217770732472660008213228357370602652802349481124097348678456832193551194268199289294724989762601741460763171359603222197071899857406382435558526388478416760506467427593292703164693574389811664744665685050571971403470871189191215073557349245453349047732346946852862558451331765982267264843483681057743694533679689824819323520146395328040625581400091528412709114284880332420771966799501926776378335195508016262620089158689830606927465826364648661850866611932815916814751764732646377470724967820987516467734953242871101980051720821381210695544940670143997462423878239709376042936042137969549091628426115309590431105947533187946120349753068239095583132648475021511046149444679242376295041278025560350556056857215365576501075601573107740888388868221854123724536916392734362209066805672056453596300817650589629714937625962126846275471853220373924144187769845617766017022510229274603341698149268897356540571996669489939237706230117537873524217246815798576605640034451287923266714776979174374060451869540308614588339955900548126714076909030275274132272244874875809872573105679471812699745946664432939947120232053248515909739763561834209121429195305282346642705816131742703048771459483129373350733861650403159534207171267753258664325741452614353178829583488532266518208521035316483577441569001863003747827390921309167785405789308639545508383780069089699257288287447510656575098366033645541118882823656782561428929745297086770504061799236557168805107905873937389321604036680950923371135819031872302028630486019630927087642978877956983161902791654170611552897239161368207911169380758044157209014992286011517518533732363780260283250670486849216161150453347322775863825755944905375805843681032452856604123115613284154455677796061732464916051519149737587802837437194188856767682865285619684611981845449942235138199396364301296153814996070560205733624654077613745065549716968503696501135880082583977442513453161265315788215606454742837697930355754544943661401782510453209801755364893931652614283026259793031278297872861700405329839196046965944948472071971426435614642299238122497207733892599423160691005830202055485473645892715326126481551341450755668826848601724844545414317962178862243324553144288470034240393963337997959954950296545490095381693325239689153738176968820763375496472308827304857074895924166446982872569725270202862493607211790380928600549522742621776047418258048236376074810483291235904467244274542089489974018494641033590685835622038058665865602203548621392497137531070507261713206974043926559968947965110498755968709469726903988361720821183846697304038747155825866764196033035573690127100733686013449781633071467104165144329120829785270754359591696862553424468288395179846268811147635945155525858741041766522475307950266812357480546310444908095831281189674796959362049904735313838144174744888999081278952744993757255210446968547853800219802096657573431332059378809940684553012093481748231249602573327443668408221861904065605984176536585302468767848462416444512828470955465167921332109845043391642996067398192478784366748636542125764624226586576810122235159628484765530524794529561029664725837569395228716508815671778141374230796091677543492695291999948183975132513169803568960109439662162704250295340885086689313725280228712804078307352016865369299586598602985760510487557667940898960977224430870169518558048606336895847871273197431268402306201950212417338251460115849433955738847693816342863859037777665787526046709987473087204768576041841547809187902159661286390825025966372254915077547520946195508061968776824911818316543540628922028815149366465236323495809825661560809186432701110819828818496072749621056454084219768579465876818893459772076255893252983552193625273725717390603528892093019325900169369022022034040165270497043855610481163295093338728960856390775491645072225865329285384521717975414051253101619889452531363526558265872102508191555350404267836517068960335539092414763943815740633802369208872071258602065416994913975358989355204983678383228226067636479013854666119470803661338440458869732124970829479785926760864788791262366422977650219755090432873079774245694478140468008017042717097597663192986088546598140520315993131025559962745430756585389192533655412157847213930130560438074420463865709284925986290478910706437126553795580949152191736720821497102681848517096779175049047813071666478121793030661670062349985936622855491711986353036722185418885362964026179909051422956079753814067761717157007825468453311198399892014407615829588508819215713649459638373298483169410068975615923185213231863024903211897659428789963468443099177660693592522518524977348722836462046028346063261627496951452961163920542442207037071697531595538042457094205161587423622670733083895670875473659646914568136495022582781034099208613913791914331919652803100063710372186938765151909326610602057941737255388981559052254682141972399173655073411514952267196824523885796882398099361641477781948420871320299504467528205054972055843706268955203048986742084145620669417989574829943428307884900069301132175153578343579355025033169425413868649747309443691331809044323491573849035347031269524997466377721871634175777978482811046413191207726206770540028192471834058770858921757759372053115964384392379502835474721163462362055595324922902981218838435837631638744340103224734888206043451921475459987613266098471991699212546550822020550671230122591352336894805839998110604816702621881591939334082546533553956268183538403693474495861702101800266628237127982521482015804853023142773399644553001281817711230284158028101380829686395608291193693515344597952851120155742771242902305096166602104842677489049526501952778652194310864531771477419426937142337828290506683357554267315083102079035274547747528295260112475222344047815883082471794348253416980781442124135413097959455674132050282002236551572229044830897150090760377531376203020968962725808147890456969585862640489557358598382778488778843529463662621799269392680050450956474008039216929915971951742786834379100345069037662899148869225937449273811240926489279491567858863100308522162737746736614136415122916391455174086789601193710920866300149633556116725636132546488035757034834190881208696127923624659133800890444026286237528960137687933735060441307091187453870560351434705143974734371303575116424897900686328113919870626052811747757527240743510601893632004002551849877808781355254265813297061246434675253794784952815510642236606971732040091010965324727412525413369286934597801055335453974526397424755688900019353622668189025934425526026614869524330127789651211776987349106111497359084159961310464400298805329263195484918668443493090862225233695843451937139824132388766873255394217836464163792475859291841199831712572883941715368677734366938947124991228433703440918886122021671846216780950258885834345801212698485018321624872313684265797597829146511481375608161418893074418759077793289147934598895613034942215092254093217873122737386421906653369049921666978273149797336826573527439258107962572293011150797517079892748510110034098584454941839146839081607908335036463984667550167983139215801457492547405585654847795543067817243079814219750781055395935214379249714192727101383400935915887530986246396878832371129184490230068418772101724205048990097491017438701079636083440387666243407839770676739941229893159048837843186060851378670310798850835260141612576801645391804077327426432147143449021631093426638625578330154335226965138444967988189207957012040495727355752090280920443952054893206482303000023144866984137853655252616819109825304066028160075666169514297070063425508777640856975331819635008318345003085959877985185538791406268125693081070882392436184881946352291035259041571068329458188422810938451241567057913727600886228536793649948191457307363067249949395016113260634275840451978892045964593308253396575220597153773286773724568270325845861511516674162199517696964161306533144775140080536619017720489998581596959688870225367430426379393974644053293844214282392323866135491776133088647873010516025277584425477065707532615060220874129951810045137403047594227188948656406010589520775866691028268894899309668319376362967805181118904457782679315325674055505146166437970441399426427263201754998133843608845611821599729936331848882003113447501354884013932997528408883570029414402250037769753429137004918833682171219889111808869309523146772849447988614899274423853379353491777976633746198075526737274514870243569356218154505171849438103965659501358954983836438380934892341705305418625545157755629119023413504033130628658483068324485165881516337218804999872344730425051331539167436588530497945468834939832844283534895694862744031332663916224050300921182266559552737694662997140921122841486705978566722017808257964714201863659154370124077276730029363889096168608396540779991980908397500584908354039202077591640638013728276323052467000268585652904475664887271156052718242495079135163528021663804082749610953046883644522874770244250521476231741503773156152064019992356671738256585285229255306366681218456589658039057365857346390557812231610559229029189576625087195335609665556585915877582582171312487136654141706479342647160260286835014139614781017042949081471508825202018069801847167357710080282346020335440825533455406699558180232569102190205288258431346703210118854251022647340238465927868632408215963589533665763206911787110086969197030423490285177478733822424260723453813323238883883628176433409208648757348826737060616563655641773431796308003595344620283850444001485010965312485420106020538723059626338144692068174435557852117977899125665669948145859819219017716643420722203006865758297116226098494649071054914268735522539436826593528728232602723434628637625590279449310372597262502296337395433031561155071960844403061774818785128064801744119485125285046158874415795950142761522358721075713268273331861004820146843626613286336255978553884020439459813802737025870798928902002653873666686772658785284600431307078129474824168921241984534405031496841701920097776948783971030813578184316519175110691166269707610404649220943355212478634301790072568803663395287612962456305633640512923207518954895301070610279811383116250422204726907635962879369510212939561276403768635213206062892136619199614700441938187082942954708241715411845793387806955522293461592066178730925711466593810310826625078191775232966200455137472297450606504756046062337895913163186483806899634080278842746960539798058666686022837652855512728941222424877431759633367103481643258223215203557390719457070807153734979660865733245184146456397365631778702863609921117021234755392149155822736818337365344474903871715218460153696809623814218115214162841132725334358741343106056003340417601250819823203595302143663066730300482772425723584085463332148482826888170809083646405035285275559685096814439452149227499051470838218580778413702295456257076793784066208134280896571175145088578673828708368260010417111388941663995269577944094973903609735405778214752882933871394892574576220086046959547750879747556785992733144147528355925619005888235291849286081636784680817553893253108195279441102166308746849449307502473980907888491096408269052655544404532693284690376896732525412253345909305382710269129618368967339115285216962491923419635632307482138799636730033117189264207940422357314745292964213993140219143229723491522920463659925888264335802938341864058881000504279291730795207925407182546373466458203456278320742045343996095786121803791407305420156339205521369371944380751851957662560226330807931817514111206810849994611089397896194418274854588954818045056177092956386437364269732537657888336390867638567774394554197346233181035047091867735459090305020609088470940885809215963854806378482205128851270540541745506957371744619965661739086337172523514466407296093033728490038763509862766293860863342360904260569972262881704874443908478923288321307541102498346503831536149370797910857658660641988075249083116278266623190473720149618427367573955230717468064899954493492657772524308650405783056676258957716472545884107543467179139734595084006421894722967342474917321596905043423854194626893002385129396747288020778504239841413213783996055676522024460578779153858635420041766132686061645920324946128543379456176293368447560236918734350100356625206470541455294054270952265840107580265838760558186921515818263183624166110836019717970652236213518962452927803449964755259940352836511428527708155130645128196047988220876821945623276425987349150490417016796785735840966786532595043777737067331038955900637404085175865396810953749315840162241615500063100726740192287847835288017424726879098423584722237488461185938884580026690691895144121488161092024707831259233825735142416220171019439317889937479563048207074803351486752171113426802529105797606649164014964436313596417738724255567341374739695341347730402694984057924274074719439688826335615134743499183486870414689093043594214509893877759896374971449756699052739532436633264456228520136258057594559497031944479467197912480628434281461631360897712675094897227365925337683126386815336966675438879513171250018541254234137746422144823597808712370220156079565470505457019628572297132436491081074407944646846487347750920616788940661743327265256181168735006518959514041040839170455531571641278305985547438313493925177615619079573663434924302548684310949252352000006460795546408204008845781399278019718669724859796048435376650216675210524140477769952058392204183737610056634642022035028878839262397423106836616114679858653300615434879020589337328920777580062116242840205951997441508591471899288290972774342859487232779606736152121912582737182671253081976800694879778417590115533770947503004114742468553568771088377322930577156471828795021773671462241701598415605356643787149773090608192257645725782433667134874270437027900683334763028429891922044443775091459040421233452988122321397766590471497933390727542039312857158957678862179419668805897639998296524084431714561860730941057588477271859300418296110941074675291963288320028613252494810201725595240796802927445521136755610931902539731989302996075687148510075916147005279544865653334867428761290838629699430199053645208925157247265659532512037830779325763237078224188616153835785655913608504226529406503579092082360209809397569027084524267094645676386339129890047898102560310029152336494105217908202570217987299026248712652495040912749207079078227457067289868671862959241537378231729601299438234451890542471174984290379128520448153546474163744056544643300801075281722946745396491645125453892937398293079282929006084265642224510394217822452299742336441985794574204509315002603580276182346871744599604513570564400001826763222404535505410453253844745233168328308488312734892016804582057227703935698689201818635721654124042169065347265185179253619403004014333404725876017556450120213662654887174883747602691098323364877169124442364614857691426650344500163463173163544918250468534676593809405535730758401864299861612388209142288441726072599104091655444409093750795372409523154195296051708178750024340851883048191139408313046132083129969121744704569860413653586216347690273367538352554173714963485841203560057497653104518540255859631630877615464451575981430878837893219946938304096504638811852512399143124514452829883123662400910790971704738816853695459595448103652407473479442944873208944899243160206999587732351387877235215571799200020003061385792060410057421155787276725695842133683304555006113388537398581169560708359742510918284037713335371019411878192493982996195329417483599549703714384172491435820566114602551641203058364489753939577690999287793712552027520787072344368790597831364496902368555490452597226983339452140589016611678751427862368986066078274350775530880998440616144010627198611045245672838737205294332956841610355070762785982592650132675429661260413735084865375324785929708778144186072957365214970841315381457524354975373630107118141790339775519949806073182145996201203778108824934584582730734687074997319334815753092357243450230735382709317788326525027935490968128480387469699313105379690101961115481773560377421523222874780559481527719425587620141879927119276798575469337523025825329460341851217594646988491734525272498202794003804988054591992292483069509646875662853533295770752608443246147547251997322571059781889256666237535637316917076494532432595539197056259454597763567817765241918400820917418222570651457418518312913275408630971509401268619433711580380354050823222481807225640676659382436774469321316961111174675637117672576177161594080798678010625314681758634571567513203427063187131982668684963866816683831577487382404951099932430193284140827986028379753086525733714205498113896875591448619941739936714028449061415383870786228289814104675155987015158619550398863496908222114777335751565893163849138266806813399778790693670054316717019553306348894707119840663289916445071834338635192545702054947937947115015130876172411290980308227883568418312384749646319065425559123598024334360903183982565108647024053572748625005714177732244926533426200229051555909424408842453009176959928671556815354924059914193540190352764345374672028258251314337452743104073923922305701047781588757428460879550693852776218292525542703309952353330297791328286863952832412466726673951963046749015983053765857448617468102684538008693308624753980789788213855594569224072861719440561567018190735744479215447914343810278612021361968344927231046840671764215487375663985361322406541625236987996784004534822514826991929150381591628598878033566584429269555917946736995173708726597162962111698910185635067693310365210739568888762219276372695603789213676664440571716865807328792659820898963106976637712739284316160246250668126400140597756869071633207668571735634474650480208169640070517753351487025012413851540992240128663891703297446435875621358516963164851128602433698300782290470857828779571769024234408392672860737817655004724500303782216053733699334696122530528889598651396895766331249350243988884581003338125588668809832864120270671046749624657405617745209542446591019543653881371345856787462406860537401386298195745759375214259194493712859539722718504338680268884234264165669862661294112715031264102514589806816593236661836219478708771805660231043442388084493901933868523800971550564730859221352988251895538881215801544470270574085675149274397078193283778691737782158617787131583859566393031339503912515769478239845428731463532219969449050925399206725816524368853289215272499679471890845152847725598013090545435881304408717281410467220975735960943996218518852432866151501230436596062058322293428458001694639644788335261996948486815351954029560065449457118330343098929456552989355504777205713576350442819066918233216722512869229728384063363290570367024041660707687341831765042038741663332385360114604287804949636467385882719916200987037911127991017346816930878641649306896844572927438087752853848223981165095776505446552107658652639340779529527527206816550698891356564994350883947862079976085960494925395454101150536849403187133295468032804661710526202170453308848045612348909729980265157624024664537951068618426105959514564620825207187695801782934187721707059161851330950354708296078483401135792545634346076634728528440951816052543559447178554348031587428298291945799512462428356206828136894761732959194932353663974338371494247850922866497635491851182814106822987077500321208770608301038919062065129222936494787189568411115193635392751635607201576730579464264711751186671570537367318688050078296030862734419120025457818073266487899866343182499722772132132057420187547179300662536557136458998190362307725263972523981432026501190310939164666447292648082773821175287351038260273097341059673691549444794944440833211099610689084452717811739505760568488911458127279151121073012566508878021770913385576522921444362066876793942119520274620822464797942271034149008587269079961005349778952111362539406670078522136591761081426269117902516907163173568110987433825299821926862841779357817321964967867788377808749659863549613978917297957921880852435431541748922803387043236180086175584468508805068360943741050911005417227931000491963774508710202733127565410314391532127884515463007192499189210692469222747176783653769633063909085089142733176993589815983859473835121085383675232720406475340599841387206100567540555752959369423659559751123944340284769483412695969903193446126429342339243085791334876191836741800475635346771950092824240788837002161659859303756965358612232199016179446563656609004087247038575344346146307677889555606758997957782577148177121451362735645579348775637102926280968568599897962112430344449997173016425594996527660707532572104010985261564527998996315726660322082133459690165822888733462420172878222916171813415573518567603591246796540006012199483682836573116627694980278887040238171861428224214575328022097680892714637052484044676234310206023560076279225904103448041302323307684572467692501318359417750691913308674741498370527538674952780298929930569767983348077567843284812679422429760977522194384679978401769168396571824636140271908174183545953364157463862943613735503000084128042679978511955006621681256229022841980240672586957574256230223643318883218536052249688606240842637727733469532553251093072982688952765555970418346949274101036673840428605697106197597379779098117963376109692934704768836020365498751219442286975241723057001124765526544973233923214310585668141607696566321647357737506084913270253920010267351581677470909005148933889044083682136148276001663077129350345849820879758267888318868042498195479036676123908092008556659048433801404876775275867711080251365302437092206175526056382327811258917056479537365148501576074954160637876938528821503380167842881334031362655264003608983973228608998396555746067536862403076447542097202434004623529037717415100959104260055021616723497309223822014484444697924675883636261888937583114994682333527542120167837072169777852021334701500368229360934840975788804006730265989700738315619200025448561098441635624427057701628326034252499576099358296231260685940381048755276470906368707041624274565758420289516420042933155839116553049126406763857828156676023076683805053405220430658154166725212072574471274214238128151458829800455426926614849253387518774310191269385421211949917486861668758234362048632833522517050581088904689251509557507627952664104798021862706385032704428986704784821397005840373544906608135171376278360175026644752428187332980977774299609990334980844325244807249227807694611536951438686439845704707906746886795744125058337480827007008451615692666453352583796798437096029555740959583732145811675079968891011218195171058738159937487517580083663016926669258602483612174519176115054607914298183477934387083266619487362583016775205176683673286435350837822419930029113130097915739406664854043502931758370802933171282477969002433906350380568952727493892015252513778362625232498826741408979746355626112862799567225204970684956527584466216675608831140433965185834012363392208363253658524805724484103022528449498356450148372592975052080322186464682486997239082393750662582220164996669614651799416826826978552269323382518115049569735454698177130354493905492888566835821702547322226348694823905961747368282896309902963929558429228127706980715323336799978487586091850910686097663731454106835943159200369899299759471146522247703526565818681766747693844033311930011190588375738124477001393931684207517860894063896957385102575521333580222716124136484256044471095891089750798959343431385895847304099876090411569507183615277265252284971844251741894615304455369601023157154031270299891061300724650430349881636569889878319686550611474744312210104898289919519568262510696715030166547514370475829186604350270017779842761035185855926772725054999897851737637268928815731069860094713472026208171259896684640916612562735579274200636036347387526340521402855863444050988081881053872485177593941779101439144260626560850228929768282960091290388423237691321930100713489969115494251040270545354748718247173790439831573382185102264772998440463629213746308839432194092992792639404675724459056154848099674641071740791813761163251704977046815192030547283665258023337573269744629944643379487939598984008766550234359891132786251428523108924341832193702463667587708732073224381287254161141758129406130007490076986707682392542373714583248957751414797796913181543872771647257158132866596577180677346680678324961272302930259224733058270630209956698468116092059663910125587592966899276254047379500862208567567989264237185881033153951723526195395419970526929760406647281297056765372729634479136906577275707653292165284031413744986650369896451378986607250073118114843638232683442291283931526409495108617175562253542562843787727263557689818766571895115213723552325425298429812773858433192688157717414002254124998476001696086593467978535242965972420047509896737309901426449728108928340184485629893077228999832148528340993935724331353965455196720815187109477904983027669616393827532987420187897075956538746761297052188297464652874903976708404976245783505231687951620593702237868288920076794952822171455382009374537026578162185859762358255433240635245017104752618121880286666160719366944747601070400526792876620260293587281273090248617928948698517313564305308384956185212001677944603427888892343429963109252979582896071911087572180681410618869544946089524630363859832282809888028474947012240167511040367024530901013448137743079078037828022195768639647933179924978475622862637799603177772342309732326409282531494421229905980129170951802313035495184699173803073249299400227168710047252312310426103122724250999817096169447869604772714503090119375233261347461483697823074951267894841635072550531219282982472722781877627093052769186446855975832757998030344126417482533950739096041589800789548359767384810580547380487079490340708207694004746551545099905873510929485790092962836214136825890531173681615531030240544196728609988751421295821356974899347019945909668948492475023767497414176978613749251116597203423101809008899266483039439847166936288175405469516115457276220555703633225769254086686456158964071976186051606529885618283087985998111695708504072132235322999199998609852067889541001152109105080396319577118716105084148580814453467385013073772204299923158209792638793946612509683461089059369165477898232383127300260152253089585662000960850571178052376009009857176385588660567600682339014922674823974602708192116896030014430798032922424160889189933209647543214296419715317130261333962314867248283413913405823203618260346837639506974262028069094541456689284362496099046348904405269123620582688969124151989451500193687282349949698241910282329783897616580760290232980406064173843053941527207701465463035969223390146482500953872452780395896235306725262491650785383474858577348134793702124064144566825796312399970544467298607977161451367214554541128199761766101818515485025549464424696260954634034956354448370871642309652416062130617765389308820593965216946185086030718058193027481887761472552386115223320449119505789405864308128051178202062583419414734444828891386796773326968493432938144464018702840158362153072738410278679896531661503368794922007802524716996800795871972157131170270148969946923764947967178960085578574732390805029062364209944196100818588329393473132357745356979647566403377622110932462516245557356185433928522169049139793875771556552367884979633076422947995154801087255839774767748196815442533431021995298167020352310925474371505826454542063316513119240650286011872996039637888241277958344770118559505248829528322051234644200740422838336758323971233595242549715888791285220565492172955741807196747737589047025382003008046152810463889533229652307011192612894850762205230414820191330547354595889474741230446693705694436053691548498868263801417845866147950973840240818897603342789588521240366503049985071254267343068398546306032805132246341275119855401511456235392381909336895031197868039794765847812265010289320410165494362075709042245268909988152438691178059052149456955036398134354083317192920459659282198243876715854245740905245350022732401817155194614274754130270568631368129208509635986793373231888332114517821407936585553594446802197143981045732773826802304137965803488638541029358335151828570170944697618955461853650245682728253220325245529948363708401543982240653647461266652631729485793490234119816143758003226028525779783825009343506651509126231194437886400494890053077886072718920183769308583694785617755858723764732247038850094684812684409769307581073623920590091665085721814262474699020079255239182578232479159439173040287493210493428166743470557256484642139252871583124749503559155379635589504133052114603008028595824535457735173642700330907696199862857859032102743244762268967504810485707763570299583505695976271525339458455245989722839409733616663974648540631690769006545001498081218817395033846011909492141997693082384952795473202277759217549781580658663458427733001284150266510258695471106975331498917806798142749723916973687068011600768655382722945116897450623261433133806921094249234029464663679363274831622996882371304767707882102359653233923822107969380216387024838666421994081418617033165126578947492314292284696941270956086016788764585265164505724584314377151097037226789830523850379902607498043007887214137387849946527042857543882547916459687294668464178884864129441488457794437199764524795975060799726051906222618128878461900405538069170340166686182771352573631651006817870715370496793637623339215215355832223651518396804149867313710729920694831803094149484051471918962702897513892333009601206496378800225651208420024756194588041840699829620218295833158074338890665714217446589615120888790721801111065229749162874837385036557467147001884795820713178223201201854231201663253366254726410143004680594518404550216777958802547838206291669606541618846798542429467370026744531200266222328341155630679702106203441201652524028522389780396055528909291653669604347168566278334484265041964562548739246183139899976007411405453840610351643912301497659816985132357176186974016376695794174461584820441457139286214254387874182263461577210864605005748960115698666649544395792008249185737679429820989982688502874609302545374260033402872857697134670962040151949159244160150021735953202173761831203434433686528139265722404449871168122858991766335814778057916275456448022681932708619158040643609688232588327048064210139483948329638523198598180346761647987179438210079075383027179182506953841742330378612526558304363846786047514932600474501714853892028981031156901705033857857975764757538080232194738072409443282193457212328526760590575432125800439176580019049963577944537035344653303712510700215973344074309663561358042222933706113917685015630755969227694100406313012859776699287888315826752550539483878755685169976671645865027865184650186690534073341969081779590941711572562240346994964938267547204065464283284290997426900731054182443535416175371461923139353972062886200382511141664483223052071881985660477554893444338241582653892916625063272504116285937154920817384835755133678963556420437454555188219665609310649170975545075035191126249345639692473082813767441603218247339836860222616893301236216864580195143985628470100246500580203529274766140025967719524791493984400662880358927427942373626190585474999201490717026762115498829335789968086375595561516782139236578766371497049609635562934315993390736258699285715847351832620721100407892748698476335081321100557586554157582883250042707998545197902538204369703671680194900629325586604582538981446093913620114189599187810424513230411118144853469326692110490910932539281864023655910721158383713383530797257827067665544954597369820029540325646153511415790497532770697623808784245311642135088108577315595565310019448537814382847428869077018206718427523646928242307443577468926185617176268593607600538698999603073149908458236734412832594540735327668535069806510897680384638716058902567083164034182845854943236314373315851708938236862231709147798898809879712349771227744908415065931744010269404182734782718534054234378850530296826502169848156225300086975706934767195732746506120781773120374952778668236140337046753717890035331585722555280403761980246747596556870888946338626506279091892644087743052434611693105028901489835167877171937905841337286788311099974271132582095544044733746740803474689806768148174928099341819457985437228231538657243263839410095140735302139941244929813452046853858006197082979564960290679752984573572761297051884050242403873132677392281262274726431884883612566572520308533505910200032141141343765916562860136100761294566080525696109865374493305097069308006997996259554490209493427105603704186706109413319051693842238588558461042999362982899526157141735581089821327444150220170813853023088414987941670989210527957551830473015885113914479870068074999758361361238922255119590396342921979808178958171749341904085875477954897574246954878597258011588132737417171023959802910255413842057285021625797708712924184167147533353097688671973176114761525852933074318685590299592121769067434657880193680007161086260754960305823099318942535765993065986661322952769351511448215762765439430565036711318451619197958983697295793116990110217510063036920106102227473962460621165271682458104236700150672141278298134765174543864336195633241909391784562460114673632669009221599310825304195540932567430300043079481700759895691101317619991213145150858162515541694106676497634008766210555789013012347206987064917301499080262373926811766842128124820292032415900545220260112628158972763438643759817970037170890495881424136701447992903319850424148649929596845823705030029505958805471966154719657886322970981462954937716404461934932474397043758523432657552462731170550048222394512709827284885427805257260672988442919275970689384927235146426722072025287360379029028100063377000673628259297427703734927941127866923357556224726013354558689109125779523282365703059786389649466629870789784931423688216248291860495534513692424685641548188586672368101686197468484312174665813100932268282449997698864202125262416250115729264851549399880474244443623086642541127504559560185508680838297226760006470349765617188766839386201469565505011852873813928423917088658246471937143409365295462915563372113789662078024006776388446869549278313859017646017469554386645656872517076695056918779077060976676323114950438677483278191026595773619360386367811164394455367243941429684922315760802152442323724870032875849956151606472562694298141871810873124180954753362889222413935646870262906444386244641781499666021732882230855321600241857227605462537098154640498678028601507197752103307790633124695393828287140620991304532423197270151479416291834401611234426372875223676653097220090924853161457649129221739978892424512788405940719502378667273942854120813455875687157115049321241179808978661761646963738009260248296675829713069363299110215922945104750125619493661961692061122461519018788752892993683388093398462909753720050072270214948404075552420784249708686906221872990281748153096327186005105071215386390149179051100903223363517280392197094708093253637247305249993523003013459421325957254641093408586365855113960275804211542244255175571867258907706288861188996945122548241099791075742367686980266981747683086139682001382394864112630993283602954060010081019708867324574241244196722092060616388158027759383181564075030933612291987625727729271454223591462277485718979660470074548653515589062075048472877950160041438183263082378464731503898706278130154452150539183413628499178939709590620056331524432874993657739849222025097621088927125471012399082292045044118102276366817810885427069377893016461464714126204873875361989316960728804029403242071785272235396771499219358424564419029709313585021105874362084775950850718329363969462513524911878744599921186813347508983714449785138577978067101136136696128372147472983833266381051152067124288448881337762536170124368229408310844065789278524948591066404975962704492579348905562445292598306852489039216026465754156373415393866049920838100043108611633473904704866871003603838276659852646534116310542049941146700067387929279363717188247033189182003523910918226272260088669205264095877736727906686971238183461059026851993826591664500229277449355697412973529509565734814543149562368892454297812346144735947380655681295208849377647573475475668482489726371660069294490716612206777439878785722186310111802642439998848611206091271754862308260671021175452309082227963962425554232147244546216920207068354179658081680282629638957030029280556281095691147275918352956158324958238986724082792887968845713796027076652081513411673903723176347109542267065523881751380747515782922006806095040001499902570900597939103369714956475780791076687673060130973767812726845373207122681536664753753458740364456346956507492959354798087452262421594053842513970939853095900733244348886040620721910011038068501214049537522651699769524232977249296219012495104766367135394221279819597030057107695138528274062376316283996760960688376573702355483540302495530855919100182524659190592131721189970749204086562280862997957946618241875575994148517908829183982088251780986781080663681422548887123127775187459039961618555903374161764913740095879684551999253611980492232050044816183769045352306551276120491649423265191820556334824264917777009311689792645679762831912349265985388465136978381851216941199184843370079833109498444868728492911104742946025871538980191431290843713696470624046764639889487566666271663426420469059280200077749105046169657040720129217590191372971143137403808162516950459748094129666450715856527536954187723409635559269525061577154240967990756992959687747586915377360046412012071955042875867801589399368518243053941688314810240711978433333492015459182877923843269922409169879412773081990437586604803576148416286808671449806430879326967350389256812794630394071307926535582277739414328807297611124252610261085006033533718345950140815824499329789757632810240882401303262389768279314519418541345763796607948498992863182170410758307338041456559021982959536745157120946747142066749138275405543892620467830858034712999654647191766005354979762332785479449750025968137979003985508938186162799716934684001192136826530134138342924897216263365399678019027840192465858893505472686208878104247023536875871201423779901362679931299206151721126531921833908357939481644220221191581169135369544349963450390505772649474387203674084919873125065541766251469318738825986681507420273174309035196873055031302984886963887839976435413720486025950753810754789522999532753901324344481943908850152065152719607661102631478496630103101704920539042599006487960457844583814401027684982966704552962193296695311363124353136453270695328415492631493475783730551226070709988125271934293841841704029053910410837704647960485541881484391225704464330117950295953184323287076824094771796949410606546958527125494081876286259785529953663587157853359671959957351193686560898990516219898675698499652430316226800731123230097069112657431294261683347810517206446819404631834594340475558369686909004179495747226557471128708480322172056801139404310995511305273775957022547014772100007765213437263938024378233327037388053525261516094528763095711121768731803476202273714960276517207436623067318528060109963384889630907820247599997352731447491401843334866741872671268414665002966908688430186876911988187825659050266030752112992787367840065691773652073693206551327367168053335145969835973330916937106794796763623956454937643176213829605701908471252732386200643468672440940907096246208081587166140283557815111335889868872021923994218988472565158494820190068210817934336304504347590049081239872314636571117176039558971577819434170411485917891915016351163008375061461190304685959894062254392738238811153642780235096765919210048123888006676925058832438773940861012049962128775066468538252504667397929934960241197395796080739030574687845491904036907128122346934547308790882310386113654348231047595938897684760954831044954509923496407136587325750800797136572773071269820471643947268906402246493449399579128976559234542272164587322201941321038140667125931133410272555959661430126972368112210360115372072109179267515987909557423899327899961265608397910981248682368421089150404949087090376267326049974013599846045916576723391610099676428633514909719011931607254640500636326240275531902786769409690534123014008576087509368322608045434175979996056264421139349075673899969662451515773241945176303624427326634355638566306927344232666917301197245663807537357046292160861617243479146976374900070286780009234863341349424027034068644031438462560193191036529434537734064323013915618152025808815486370731032459777479470453420568862444380561051820515201562085457354538924266669722538063084797118202298264454717299515487648153561835101521224189212415546382088081915144752226139133172100094751313383514714999554522572955351116726546476100545275509402924694938604520463626667951602078742416327182344790841583000828452361757901041348253626983787387731250173470056916957212374963901585371638203943133802821963608470380998824619489139566878170433895372439473275104836428478351162308548338880719632523339924815470406932568560624280062733015869789467074457887254227079519286433912422917550909556997315657765217731180061506386749015921182492634079297268189482769411246271701697036052737122717332861296207662592476096588612211254973105452221230584729212540794388270071931652453279183292950625930420958769169724060851112444474536601370655316079198495692364791925830878318528970643615125555695806094409016644020865382230018823058882120317738360426563220193172724949305920644664319766555428682473945273977755348680893551760334591230232796522283987493177945623224964685507891235035016582306392032883053668678316755858695725041294173666728645769424725768718770286198018175317570140752397679082855107827609766771381804187948397144090337880165294585269093142424717911547209495907980206016612509989978420259726971762228227240538384770472579802874548742908639930726490993382600393864152022010555452256208870442057438329566089447884721726906939064687953106594976211100333774313484993910518844855201525658297818122967145361476410306194999496228290671616940607907003235172440934832360761925871340326373706999061810729851492976311393313544732576159528693708022376977966293416261256356450125028382156800667398089362223591635330473342042330906779790204717066737703341774597573498733791454187632554165160687098575847149138164247415945914347127758437502707177871726451017805661042150826889545185148431214805174046229974459433821732965446628756644039841927378373841065146721050940808551441210900757521186130944246387115972279985733106274925077082384134534578782846561147426261283592488594345944686805189260992394299536427420172747252169879104305000413937181527804095189999805553230797729664240934835895591927980498467859320144288931748728492396546634967569966241450113986889203942847166754220422102780334198496481728785543984605059202071260362341802386011929506504871292862440410893570238106427951106772721627000452304094467894478776294770629368240235008704163131465646771842235995193937099925593856416408359519111617414983802215350784054515733279021451010325935315464514212630456443127395265432712528918418090366379503280836127561356624837575241127597446658431598195862684858358807922233419644741376110862444073407037717607390273526925067829718252337006878641745096072581133115327895297314191946173588978974635067827841668259200276585231714004674513215925711523199337538111783717593187246964547368398966454129606307677434760459984172829582171340953188822901141875995344498389247801750916085333242105922805584948150977851216673504173710698167878464492477243315806448407430917584885426006524306623236581998032205752897038121225604943901526380465325224463669202027698971553204534954551626601507199069534343611132820209801285301214095770320854702608771102347871412820090078853972488616038242076410634984977225160096820241311981635268035661037099719991208613211481313276583723373937236128778118956165074259172418270484991543562792052300842144697027996777131806302740796398074858446162652079322853850347019512125128331436323455860626926073205865408575316064061444747202634007613063164973294976300115491176964496183905084410128826267082254155095761376336560438283986060706980781556332311582752623645277746044793891206918454439900747838523604372771280841957813201158146290002350912870430817804441685122700838626902685891739696523443801180334556697217103557460769967952910924641580960781504728649379282931568405477117963088813951832156646320679433376271951539264762894548102394133716769651261824645788214549396206484999004264278873410965100599935285456248720141902014312257525958206330242004430040087927020003010735833149977676758023155145638430337302103556321269054253046538457783855444735517083196808542688283131143964876794954384620355276014474021464373612181214863312767678390099871628599417245351986012783493836070077593836381664576997466346331128844230393671029571264825334822194626562331519862927334831167425234539212775418150487778284305583870300696191274789820803400162704367170887507932603609920544229293587270590040283404351974984066736665189435419329404642675001579867523162379317175976556804022798934876837398743117548560090703047907634875913704229995085774301672249544264824235043050928612986013194374548057719224824282221490458161102339226848875357382364164436162827504555233743002042175500884836216660117340255168699223084538241353087071987256550516708403940739769520955589619848017607516504385322965515563169524562717903334544819467748483468518978556493088408459605955479436828647377947413395990936274524603171939481974251423951821114693078304777791654149390002257459141232372570736593528333944557997453720431252335428363351799202732447311362177386694141262344413664278138341167368834232941042422827284584955236341368819317048016826062675509733318417785708296374761050926727227495134313378663288616368286626558368142262724849367286164274212977023283751745536275657652380013504870764556479004100784952243671320291157365339719152016147319055387090566510635458792399179209215755836960703059541331436265427407516105018663943413442850233763359850299198982235989427392327033451861444887507345869439914266168873405510124714754824091363711232019696586035089983359645942578669410287971594138354582903643159545043508305157441171221922251752242605466322506844128664720391273774508432375146591981035346927640322318429265358021944118030692887355005741059140211363749330021028448498488615301385829408665066206565681553416327608887517920250386745580408343695815869615934720548099614113810865116923685948854714780439828735487640196575623873156689938769542118056466405382757075561492011773975056581058949405802273102346303945227166628894190957404278972170344181401121414186369159035093702932501234820140773716488011943766531670204854793629166375610206931410932134827731232750638663216163764207402443959190377018040285397294707083153874823751879614092340542481171129663993676405757500386998604351921722768719828567919510857390586964572765834452372478494811108888145252760054997670623478313885981270583064245197589477319991080739783252197256171540903404211667375268752670379873817076162765036178492182757540693459110330907336830977478907746750393165228841237049183902334441527356481060692393406187850038335398338978137504893696656969900457841991491731795626711707491821314314041184464892744575257598787592237217937159619832949717522640326483891081609464563826625400522273350899768782241599491914070139600139947177706477282205336988221850670465565610362935341594643703832922819065416472847376424685418056867817146176187816905280849330560309374231903729181766210176421055188377103472800083512696149213201557005408297202369499881576973530028557278381768179900103950056581274828434756798813570031277661863141135198433867846867321654527565342967029570386369540792959392558732480182314063833361085577227304789114797737272577240995930557704913391838147916704269527718250948059206468392134310737879378012320523266895230030362746569980531128143167754219367596327190215154708243805969566620918020730199687833014399071123714498237059942076852587700699939638422231045951773719750860133320640863458304729607128188336465003805031845391629605627596797879347953276960773986122656962630398891734048672721130024345746481863333146221302385149168770375979059989684943794861161900568044319625206371107392791593267580867227419382960499107408010606453796355319188537164454103502128416279097126703109205689097071145183870318659918165485370857904673212520641264719161695252584243970932206960843952871251100598201527863885612573976237490519698401879372923907567510049934902606589211257257168276522092546342392231061187885353462648144314056976903731164641702691474317240759906824669178507073634806626195842127707125910658703135433983153943910437065745858779810190709573042787605581402581730449558412476305550159978586535873753078638492270934534923901789157992763266561317574653683257723227408195511631672794474465011268800909730552869554263366355541841210406216373116055994806488584887242569490754261066881802143369458943519828009342284031543308617824820456073579048125562942481786960700799089177733646210268696922424530615483294578901774369615964990704842612680611214890169419691278117799348243037296663797931898084366133502624880128668605227072272113398313370007244181633244159794108238776933715470111730355310466972077860004830587210775708890953773052456655869572237610299710550742501101147838086452510876861842628240969002785478564068190937550151792100985269428231241626614811744998399096920102822950989283301829511922547407425884657501995600779613971270647133187620340489203120050328442433470674712857286914723262413370492958470891534245352339603233765579123095569902466428914600172407711196171631969271948644772740936863918052442158344664924190321147006156369390888687141529305729199270495349926332577129839872722874623201536433453327439079691259238808445612867063974852542007998241442615192276324092123534460438450781063219514405012123730080151662186575741320918434324298023667436181330376321878838597245087554809022892850960161289480566585998768267187758205139761436219197878377935093298616506948326358477512070855031650689514798845180992988610602181554947026958329252622848647734551367995313395450458870353982780806160976165278606476286173721722118627542873555335346547997136691448480094878498091331757382191538300361321030589674644859059988762479701314478833786552187328656055253453460458997942205776005183279297655383504241455153661456731654777513345897110526308995088222259747768607246519269774052766112944345377291264777988408680546080495377591900763680276068298239114599725125488116103090271795062103737093752470413204331200503693869094135306444388844722412472162496446135332653161642532012601238640072038318322068075560348876111208516917935952851976962509696370801422239303049271187508338239502620631919744392204888605056475351321061722357535530030032915280171520143068039214351392852038201037292119619716444224898434364049761386834018430647185260833673510392182821178872209116818770139518981058862160531667845192626506903098937757277280990532783487229618839945341165633106936678097851802358948425272631693742633361054919784933116997965157171929006563722712796172708444904437069763578435937425039993918933727141781621429170663932294007727464462702048411092727408391148070145713469125739180119268629572460012860647671478255970097723925768439833211580422061797949181467780644839122937236042574376457230055668720249325295622482504645554832370528492258204200146584940931864501279748039613531626324819556868133007667032553932581777415857396173827400666544248775557523949268212884501526094896051332742912805636690268727902000255218875676468573193858161840492908847697577271482949547201905568928450712254528591101197184567091033142500764099150189255655403419398827238544800326973175052146979542271530325450739932890918784044710753193136417954207876522311055736182280011627680957024743326533503245192834053924588554791132879663331686696290823044337967507848589176432632570059862281581197552586855123929068032167046224536837031887354426689146950466935305906003609291376802509693781886871438358638457246556600191727488640754291328748066544395166994824112729183413442892854090294837098684221469497690356691343011534554852615646900776711741223349224693688948786801551167101454226685987962545907720997511389176686476849615682363390981058213290720038793651772890033624053567480490408496638402749131953423777556956314354606710706177829481864312774101014935656287774471369019709681736141987209325107662893093171232272010437155885459426864307153858730914167450160898115714872262011351077572790825832728050730106265347918576153325894171694931694205692711809440878428351585573409819558546002805130093381482279610548177991045082482842115038402278455169387660759657083764096044315518655154534611593514408200517494863538697884301847552768410192862986296665350520897130141425970020117429927335213225009674173016990429263996890379328753078729344192224503882886945723367582737645749197293519255645313276588120725309768146324895731968495451466435894732405668836768371097254676233757050956593693021309131802653941406584392673440803870144632725035935633225649629488074383578948418354253306587970229100817869296081759598725489258784035961667887929156671232492336285159238961221960748031538658667941320421212384274633117363467010974121128578182083286040708207295832444981467309259591696785456458376227569783646480192653376723540927448227072531751723303209945023049397011307407452909460281458754125607512178610250600066085000767417417369753385965608385123477887305032004619122761333483707568165453704548534965985922682072101635231067667328912847402123607836392096339060036103576622682840273524881088043873971203185953098585105510667732952552945846100525914267903662332600358021213383154246394642229366732639849509607578768618634224363273887849973669110223132188400447217127731601330404562585464302778426560084002214808181087025531111062866481177882901755170719199768689325133490339080557916639472066633151524790665870024137093543526803964648981418455615977460402700661634940060318128567174347212744442725155850711469290379050410342365779489737415121867067137830120934997798061239060011066456507400738488724749455474019308379240285694397106895765524738483539540294608414360781869554122097678961736160756414787105169661127201023768258314243010953583903409020169887258953263725850017202014333486927050031426287688231180418503329828599884079974312157094220674893078255579894996861594005791805546482571497806796781288464725289841993178363159794830953530458824442332653410952096001548408948200124439518216202185684200663816587539117557011397877491079166353637033937998344162235237681645579279656301039753157097339751644121362408627269902433868697928682156246848230809542629035619102472066036931815172979222264878364388687218431411127347685809236158086294551435687284811433093863732198626874541996531276725014713231321636487769525075487147413845177803049743212567089937606251293399945311697681090939181768079134007476083575696525076809794198388556992332500650844855290341318380815755761840994448451754879016475404401952101383109004684142457125007656347786968430447394498881115527513850966935858011103404423910067090153968740178119032386425237149011388496095210144484208962121024333935383577277916634160964400657261801132995361921083229275485997721326564834848349146655675056796270256607116703383699798426170991765153762177753059338741336683172117424247408273062005307349643670666519275578158761983687926006585051986406925953024635274888192459966821963597304533266108145908516539881999901778025558402706860800368665533062547719197928952208155222611398487552773053011431298609296151287457032219984766370021598520377836612922740163724254317978244829575936036560117130951319588047585545494245146580420513077556576474511510244783804397957405192953942865485638888897276783561003257066225763760341700982943811622439010430162771155898988605338661557245654067921067495494647840265135860639578619118916440220492542450753248760383888070692011564333436287402029509935309917981653841950859028315480228007743120141085627082352285949331331837326725579039325431526337123070838636716926982767999472713487558672085750635941899868322230123475511255666036432857602748473672341984468280909476414037559972235884224356835836844437179155747315640912513957621092910803683321463159851912839281802641451184575813300976013063574373501311395498977363288202186820142262538547951875151032120352214344344686725933250354771428658721804027425515371537712506670745763877001731684494418100931131281336338697817867224698470853899842045344099147516795982648564664967866847352530667229053095065615758446747519249041782480634024380310208815154183390740869622322835917959567604373399414908558542970104376947519547967046243058330508817273415804051600049543930613015965771651124162905629601791184633379327849704990467470655397028625039408215740759064123329525247647850794804071893602825693756032037293229254206683133711907580741716739245949593237044631077703126052830924368701651120686747688173473760631566757573852837829064741279544687476249222595882090492441256110112539054243121785488723049489450930855006424115673494617661303809680330829990560209216268553522947319483307375381882243355658019562389456849950859116046161872774215719770692789751341867496233452000313673679144910475019474220227263663572475982115897854695685082384792557355154137731783405066637286221202847586772324057067524934052191508110452124531245089321007758498739590682402802489878964675769028695438796378054268131675119313426578797924231629046908614946959399500010506576587603003975143865517846777606312539517914536400036234599417450932545729911670151816999963948462067837489393475779165237149852921798997359873834549078110704582727397679821478501612923769210282063577460582289192222975316653975089487493819243491356408068256974552558156562465548795353007351825663453843232640833642882294268819025422578422698806715463060905170876790431838136553577835213914859309004663720468276860576400892090534567126888627567965345550781505382378278026235964552178993280244893353783210288553969563389855499517160444362307413912906571610592932459438126567659465454243452678485258868060749837007024618025516423458729855109668600456623395590274802575889403874575936264719369235761324890286505527283473630012969247510693600082616165387284975246832545556797971377365004379570714262590545452275544635747660414703914511931542224195118534334785630165338796153058897620936415138329643757376177118601879900636170759683478751459290691012920419044128867635026470697932861099688179655062010948350067279027731674893163440141180908387837172563497334186897515885869075226574564700547126293262270231687253943109138451318882565119053865670603856971842255183524631964890111093827587109572692684187702398957057173022070588785883791656422112833499521926756229565378516993600944714695883615715846941683391707499707847281300785251481409796704162827781117690341104850909672591922759794145744210519911036151469036683363068287499654951474764335283468436581460514662271683572848592918975182483834400447289135679652124951085158731214274888258090751104299919245190252651970001612753156448580787138103001131944579036779120775211844707421919642783236044656653447642768456026363295879528863299609095777932966570072982756551576240609966911252470674563896902700905074773732643035899806732817972421182457518843160889536340362095110523192684995415574384630411657925415649282788854629384801383027010648209558164934868087056836315629077888655964609847950945580900798047613236385537402717273755672797161012383295328932480698133591730839226631479879578681844694124108903277485362292661660616289413912204967043922976895388392228514693442334159774063066895655189983902898030031117662211221907249213368973385211777350336848632700207958100414066953299724278851161602721505170349144484166088893287302935622235016275786739130103758500295237979213525137407238332317924767743182756537661358605401980758471596986409024861265731758792066960776600034049682304811941605622202943899841506302578101137647906656815315395843513684300119859512981456652653641754739930337326071984532411503659196836037134286271413355010943820211529620283582234390306237811620906978537464533132372521523839989461791866648920460082302662117733458027874199561360815180918734737542618693096787197361103831696473936900914304306015808941524601084234516807565828132249955630403970164438268014280398364291088887867465861721486515766736621672358714793177604942538294266403318367760241680918435847507156121373884701597552417500288479900979200281548644109212054621577656227985988804251896883503795288748534375360412983672210939056590693531284197850371711419643472983916939720935570285176597837882749946741682628850156877642186646011182373484146485248963512324137000049678562094595990533560583560934749690995678210799130925718621361482756228876141420295364216349550183263385774642746612927918320837335016359937162220832741522909688085543228488139188962775494131367083078428800208791125705805083432030700676243359729600194443390283568804139256216796295487665148425745475318170568794354604386183237354976328285375431353660498703362572224772638525387203288967927616434990842321363765247740371886420831935577087334921186310194796113628885659925223720705629609355503246607600294504700059546605559033492737952789442713851070223762373750390062326182334469038521480328644505976230740019779394205370196084287525776008060822308651454592079145261622390915652101624428857094945431379450041095806331112057480452320737172724185145234533436890116802726642775388394616724792649556511236271642901272703955237658048974488011991071089646189915556222724932893192230044964229228175983939020302661997671466853094362355332876106595158761837031431192054723103886790576323558064810181184532144027698295709905673979112749042909281962386683546034803188883658227139685338645250341736902028328638872373196251131662847779700364937336964467971822343587936832755238037440762567167036440982041705505607601553408561922216302807974542660876375872480501800540969537712061122594465701646524662050407718767438473016265927617866688589530220706775481268600771982500103421173545709409888795490403257020493934705719246094186629581713950281504390202758521803669512489347369948940709436793467704981184491569043096770258930862650592508062389047744424156629577040266648343368359173063339383785360708247877032140719800550917859164809729227986216923984687674782965926787647569819616208916966189075403799351501584999272209491050794666541902648027739551942780004965948760348973286715715929958261147951871714672622661887624754353721281927721920456516517534711710770730102563732529835819354394168858667306289105159667629850946520154533491462379282400932683572251315613848857608301554020788466573392354899955535296258295836166372857405456318758008956083140307260628811266682892448504746515429191738107923760852265230603544424437616414562715759964748784748573055695115404673354852120224899566981268967657322856578024447750454980693063698139885345045370933400904103853042329910312894990692614053862494924486064020429650680198667340354649081778860985304739687610834847061347151366739950820583942318413154056351959586064259062114996810555229117522100910315919045699913619080947719535350294936538759827011722489862288554020306501613989634864148520515803589657082811406514760179791476519862480698498700011932870817581503351347983644805045534509470660881135323991426004965634704983826037346031643230357340952721841204356885130828588069914094688696458621364865395457597611806189896548504966090465506430948607515931902949862945432482118961577512212775826169053652390933454389166953856819475623673929773685568318179540336641599828780272059438890237306947965839874551662316829006982281688398485467771051874778117315527206400765490474553845036611454549532320707240687952708240664725649177812524734591763312215707749495053285357048125888932427760317035587959704171317903177929584269653514803854791398375222576970910279511899097949782339333373677673254696005021547896085125752245533929872144686571606605541297221647229748489034560582110494990071617490486176467832823276915101198367436171311639379951278025355658531165965208438113263404799254767658055281909798769142410950179152703400010305395904815636093000645287937040821204758003560980683427810787206032611311481887959065769309807956692823752280147145077757664316090720194701183933407434514147292334573805762605429104765701654432464980688492340002309920901781426020565312099635932843354858225904202349910558160275850605477613163904860584249113944649072235733371810732509402305285841056558385956060903166758925867589559886067487419197191374810151428245450711386682752948846320132468167196169967303572131754366920112789111436198629873224151332661404272697649888658158276509247609660750596870481129690968698876287866275974496785305337467348524071917476861148356652486972475674573015152492763357382715944262910805679798869165696084966862291524792847821977333414815862752475982586047118492004672312482333972315130778950026522053044209430768367734502538109077593505707508438085137642034616639858821521865013393029521939891690796215000749713611203808545970703452204328492797709371161453973640214928730795418068565154681260805303290310553346009108106856355508045263787722491772085617643909648070781588249709746945977192974767718932039377606176704103267829749716306906967904835689599697814731544197491736940368903791550796611955865459120181938887734457512958734088696904418018862209103022652398979345531167736887959563633156318762908256192148744810452736873589024950166880917899992330550671578980331977506598168612940462746252010677325405353728737565147950403051500933896907177824998343224682663286649904267025396456777838626338590201458429185392253536534546659268910574534050710903430927403680111158580418194719766117401561095411650126699083452365143926891135520414487391965607337286272781971150468840981858535897445093652669808880518172131255759035038491232952673707104797020665715606483533187439864813923635472123535411012317312425028224462813919803227048262120456938676323408043548808727232111696949045648530865355331114856515065308568373604742466240373419081198403337778968151092647637848992011098152285132198421039035173609622958822535753219722796578016112826033442938808537994073905069443694413714615519025845947521944494194517286553498193630465018786114964610422299834193776879624962595356760916287449896561658047280284199369840802726834286515611937398070815982008541306279172387324590515969005640630905580173588800380016318802322233543611216484556975471167997982131498404713808321446680691715692019963018318402303334989179447530350181326502403964473896666364938343056303543588901384051095630493249412053389140711255787840257675581746707828293420393813295824482319040619959099394424150667457852526954319609532032778804493180796672825076124257040388509319769861703130546384336398972221269210762035508541574208482157558963871528962603611323570467966482198911700114025147469115369921712418463754618808268489086872795198651051052500662506838380042641570881928800037893420696060485713940212355165357325297234919483734672754769838658900887359179491412833934546061877597485137628905075784289984894217081754450153169238403264088994260584533337324387295757600405525393692168440353638005592414014180293082797814054189683319528989293042829676954712017674341677922229862951601174273980890211013937114391646849108749283053072466488276220181133070281818315002987243389510119391897089991552786220902454166435992649570487451996373197603388416673975722779419605638378166964361139315338309540169419605539601514922314191775572326385321484591473639432774488027912641104289678104125193304138704872093449962965618116135117943931200386164188456230737454596202157846862500849024599189625637117440939587225927278322315752467108115020541877478192506371343283915045992465573006001333383359999220468413937332283340001187924914016048723461109550267175103280639114202795821750433553708616469002714106752364417618782325263229496864729462854336374488792506515302043135404573385479957450377535870987563523471305501079742268261749064355550113700132734811299010312893465644401283180676457754208415222102639113629803529483140685040486697815472267308294806019107539934521329537975411751772851522442576851587975984968558356575205188915499640275681090065411366942798762552219128356705344948747377217046678649441243202184584075470327993163194079962441884859663463293110403244381395297802367149251962092510361791433426147671461629405858301399881809102182182710554323927313944435629603114849664393954567845382725702710781132581255828605804089051105531076186645251600554463404666228242332376474814048091773457291355894638495585880557124518735881613544148593141560305964844386176168881807778866805195294753263319078728340392687023631442633401605966646038945882906178139584917234298170446876333120366418538815459899541084268867742851988381129673110573224916488542932751026108079505287977158302293193070990921546524901028371938244787994352287281105501738735662168382270483248198057833975412135097333517153872026147339606674329176245949019909732102155022837327225177123446504629006913414475536639422073324619805203412243787244152091743941919326653367126972968633104323130556491255644609167645702163851763512414997686956563378414092683936688205507408965599880850241169228673078533406914863287356702137347005425445100165626304724920763849717509555601510351398364760707059180823959967557928114895692638219869146932360629363639485905780097999564748685427583159645415027024071462341478682656138722735853419530219292616649432082965232074462957602600368817968009285269639826178928427974256638130643381353300133005376168749077759437749572341602410610757543150686507338184002303978895625821472612508938270657933840202666470506149923954064341015847455819726912484619009073408047325280712793180547594422182898372077378938507692967690029487131008744063691600601701272334093673633676859595640348169845234527154159659120273732587698764382352281300956856668094185967496913545652114140706901114105680777533113719972084809784996256084325244865889488772693228178051697290692862818102205706663563016685690369256264429743287052731117878454444662996072311402943393503491649578988909080086936692999997612210897599921436445804453218901756765274240690102943702998339261475483971104283087596542121814101427458301827506842198343420466807190839018538712744267686243861631788670804034893993788923740835171167281299515999471896827356647781691699800860431346595290514979597770787316295524794172624994059485621629411626427574763231486997282877259130418287050805555266249782479710083593772781289181406332118972071318908655405160071352185744232066625106183588333342768413103425237207808199213662395875471635647882437592048173685362202865688000220444761455394300189154089649733462001916440757831815913395545421855639036831783062857898771298551330984866459265369101454094630753425402204079343908502419075287719639521184387598758405210024525553175107409925173350545399929120978574832485365172230916180377870254120502008469640984305888803684946018816521221326894632284955243444031661786731648004381744748145328607258531437692682175110936905860973559175541797469079189939349767197201030578365893791446493166106407408571094129346692889429587337820030439602067113913385679412359152579494123256442857706740279156428885259031712734340149066618046118527409789965654920212502148256303855167788760334445468214755157262459363609010034001819842725985311003519370838702991063321670528056075162733367218009650655833759857184205087231529379071812935656409209017799735814988118816100191657952231414308190786925051885880802292787236779797075983427570511832757899793668991206410950043865894503420542242452191245899807453990698102225195568217338007927568670393941254131824053093665616430274860071314704758667084193213654483871442082885669887945979775272193163599654616491966022118024886613492298594205760796443655709208365314357902271483874381180794955308105208432416511087960070750394435142458940348496156348736893209410836617117310461593946610187829137909242337672132724333379721390077169724318223612405010544444211153968447939872905906768838772946516925214893043326035812960923661633099158403224883035048752446855211254253292412720229792782149354437731119483110823057550633261812845734822998454560765707299491199859566467782100623454724830264960665322275735958924020388758786496149969278434621537141042418871734219577398780253123104347368502176768362285705065493627929394891517496289150064628538001555980307181498346465824514362561699264848834956364549663640185765792077605248933932018547195844101826674529426503363425196916381856927966382615311256132273286629806883822110464445895515720521092046002723268348891627113825525601251527223894373730407917606430081542114160906012733688382001393249381717517569044311011368957743300126924374425248035091098996512810317054069046007735398656785936116642891944758644784201976951374055770392668463994194655835944886880728964097160999524995809249822219007389840428047261879777313954018831623624583485912154555044098651939179608149252040212576482199802197331491064368921340080169147725726803147855133319567630707379573239761308141823124445911607444003987159520149555156253500810551992566310566168945189342983742530542485127261565763263823077106430634972460000475417332327402138895272526830074352646267846112185506042784849826779897475237705761356476819209321706985342455146472879304924355973472162087885762790979478417264278937969002667671698784892845623686957195521440110754902807555976930004154853160597232129958253077857770977014699029975167601001493391183207551210670460513393391232843516823350695780863683685863602397400623572684770046344993269913300697477880314921071778280793822710086540084423856136804746661732958178288570299952081556858965423529709669953884196845097419629966619056271564624029125624401994583945246831052293057539330141313102339869827650539026997381132629363393875253801746575332236338846343676856822186743650863110312387468281178106713083736172493958979947265489913308000515779689280697282306501991515813420692546439290473377711584270102479961416222441612876013004846590343655290862601370556470089832020380247586933954087632885177668482195254026566191709204359513364363460866559030826229705704862483038682219900033602611697544007380180856122928575669409397327355403449387190491854798593248858396988459752974822829796759338223607295475296595982046098598424963819458624969172775114444346546188623748514400006056207924809627139219192501279728890420393749777678995749213562421413558377473686265643521299305059680265717085401062190696711667057824887475076323421538412317456542473328744860608963305687937967657631747469964984127208894542022908052043231546713664912246340615653852255551146565627731899397884829151195860376189355802560824202613676241638034084083625623717201127229415887349034439100310581254681099655580440369856326915093768220682117899293598977560169012293885339507972722110304398474995698176171143657331786807244909087672590919292262114242491359217475036715368207934209016518495704227163505911302674435447300070329046910957210443467223797925286835365123781611603817621093006361004107176753596676215133339655853335059085594537795543241582779773093824085748976298829027775745085750349970476974832220603372416586007732977515223343239194773711988900872122436877235494110217005038621565228277996029187854345893084317517102776361563003045205990355136574605652831596344385069638952155414377008760887757930532385947368812109899844112594788292602098501881293450021636330249059211850026655734502739085183222908512835177206347737142863901229855149019513418591454417731440224623032182216687610288947993085975934013923960861884111736096496790650108242894718759027806730699111339853711043141043029407978703516243755420466960591307314234562130066578362625256549070187770331306318024222096586472660935358351413698286436822766341125173674451174320250260596821471751668279073236554638209717669151144577813569191365678505224241874736168339306916327218003242935223300989329525587720423907748647535600769686804512282583897694712513265245640032826085863880003421844111419248959290107037516117504937507838606556954752172814265011021376737842561059099282490207832643480437061364577366758051906358635962747987683459772381484698891863934223585042986348788743130931818288673423446163842335093144309829564060998017543859854615685271491382647515292644861588161862664299900166812397326940420406599488282849911303077212613972959244755199709426261885480557292977582935905521588306619804025007368248760947064472517866983117458739801987274772702945928230519135202449812357126062999967997113250156623442729910290992071741103944108141209964471509823660767650685618364941226448649867815830647241677846410606814824687566961362719927039627169488358954539562255642831356823979116853192594969153500434914852546648466667618435900346658151886024810565799725079449877768292283184716454663713910268149394273539855126011130803525730388577803510210592482844169645573299937675386363595040004750845340084303175903543648329071072771249928043245731250046744664296695331679431008013494982214050335156060556581243438717418222123019632347241694297953434740638895315277803507041828644610441587288328711399388031936086129935963505185494986334271173075242728404365815818489615657640513470964413395835227926759496207607419270669508299460476497290801808373876659577636680073356405765470544435812398727399593409879385401215527765490072122968013788036234647674409845517331728022128528852873937638676759306475652250992203448744984881416147744552555710483012850836884218628352454065278956394404508145611622457232747091826778340573082117920857787117052091837322286294395959570784395834263178357689910842480048389111748799451003924729740006520837533289961509154351663980920556228655656581393798886509983859037650756364828695361225111771158550955837141629130719562513584211655503713006031266613636105250340046873445073785841787078859707461306639324578432765954841136082633918386358428529457342368368146976168426050860800955220297015027681756632279699477749237194059600273600043402925307146925057611692796901664084394463283226769069223191941372341785425467704097156308583657660530028000674195248742794061973025013411177584250684169450491995687895934765936922805993520321460549592536030482154704480271032072114780623787320189979265420029920347059694879195305188203909856631184509077797196916985613642884055095433764693775950750271239471799901029192133058968654424292870841420631296979121304872526747090003367402104702277898192075736271655083605787217208252555728010540915796810514194264302838079370861740478549341143626290253177471675121105035732555675025243017220086442386107226856905590030130825231804721666914586387080051707580073714759209290560969481605573367379950678606050464973901331684133422629462863194493247139105229368547491565694077097853464343706216013837425109868973675791925961230613370550074687805006693789460331240378545864767878127340276446089825333972956328488223231015047362523087758553879086348840602841865880583516755093489893977848751216509549416538042792568089283485115106839786170176953976009197130065469855778202953126725223234415512036788889652162555790774756835673755221020952109180942309805816055176808371922318391469044843429273250654077778012292209437884595162458405466759100123240851130710437713052638504661738635803656776535041568780175912010008160033168989392588305005015877434763086959290440502381960736355646419519278132397226233542795609816585659202169809254789498341531663786874467281256386414123993195444855147734855659060483426560561221030088620009872601405720647595572530667500462986257518829755156808322569876482677046635483269519155173513915909088419871932261680023522899568798786977476330290746559030000951230683048575659067972273510108034601514921227541090242513774611327003489470335165449508501688479536515084620121392017570781400658461667966999680534655710730138114033279942860266110014228920348076530919416898187695002373794447931328317338375667825762428089015245238653423105347258803095928773119197672268294713724751048765341689938638555651343534760743261752194967027591021956703141995833967100364808050268681858056710055113962019219450955758293261951871662530241523059941778143446620546757026955809929268312741122308489725317184507894255283820953186071242602444964480430272998295947469305479870258445663894811618340292450644772639369185391008057574541288438959818864169019772105194905911742622930095563979391051750435060740231045768579191025664519859980265123783236253007277672252449161329323694284904479626475519575033962512158733677312786057791933727251457522827493014592708617170724402503082759397401026350546188597368609519507640099161847019801140915594033622756077552452234191749033515723734044938476428760863078971937242767929195901343825106521626520196308245237879755476164359348341299949863086178346884796790442324990681051213525016601557229733438941457424686314740777125578801859539327375616830876437313441356783804608838585820991894472242196959386753721012245803949726475459101114044085157492838415863795548521728947920767830486237133815063628669802730098842511859405601941100146612129157517448132936100928243883166141470958252687287894188459391209737700493011317777390081975202220440469724342824614701433621556754128345303770836294471732165678773360786619343576352742755327024713036960857465140479679109207233905336428024644595939497507112959048316146547687633227672897280170132224522481439438172591502543933570954687953487222483839850979415821757525210961715727954883439954241494884267646850717668625003467632212475194226190769849196858987431577004494932676281100190089315278162187072554707299917371014274186440494255992877005259410160023117879619605423700419031716948121681468126955140290726331456794173136276819265954106677961370421843399248522985690757335153933970784603194903805280584136697148363698863270834816078343567616489874390671027000706608802596903832056725865399620907707694107385904353377104568710931138438420734262529276046600678695754757295201000607056252489524443913622823525010587196145557349858048612620419189978258737583467070072223927496510850337689803272389019300277224688106089735990529265877766355547822155907323092738807041430662285531261689445590902043128516529940346073393382160455414980979686038843046205345135416581215760203408220194804241718521704160684197460568609428912764844004503656848423162579400614330708748551185356251212979944564193202393630273045294806984335825722855890107972001408876500332075208778331698750731447635632723689246522946533497589084632282944773038272818485920068151639321175615877622005039047627961889388650547972529176407156447720785909130145441893822570646271235091314863876383352356274915919176897563505797815754927473726852865569239109379594473798333897904371634612224262743328235412094171416003803235196437892564134496346245903139949562827988708350521113608248198932634321144607315198866382301202873341789046947046336241120582689146801323176050780580056651669350170768931719090687384175740614318426880104136636384018237970218633036057899164552366137133232657922224594614249018268733754458168936026069742335064982833219736891818991462863802025586703542917163856566025077451849647520836702497181388649446714333832953926831557170534818041792023968713929248073269046189673726959083664527243272081981128148936162254526247990162699536622587048339593611121733838380772071605113177314889186810499908078970663744362262287594984721104255940613628272100074445789832155535532916400516132913833613922674670497255613151818682645501301821352130942272919969676100775341100861975475794906682829616592761885717435002161271263574336757609173973698786027844516325187352034414555926870550736520535718529301791472780790755940515786439041250214117600456299524355718581394637915384329361766444616756320236241955448842240593187411086436844844105341355213583664925845025497400743186764642887994979594914111915602020370544187663942071252879817079917877491230518822408759513098233321758059265577899181213953229610033329666302597912436747025637058889135239691962424711948839719879071852780864538449407431076752476942736303299910746307506497365002478119002355788990828812006104959776125696497253471649185274215156096633271229727083216535867369050199966473054296729969345448356376618629971505324550172458690580387532432532718765733090659128171376364615354087153580665199956934354841326079895779883172867296930737301021531357853340848768626446863941897546432312220675236770794437969172149383803410872764405765969493825672787545039410857337313043928972433799621230308336470497769372624064013744431782262000972173527103922866784971234670516278253609462113757901165300566242991823864121385714033343027256616295252847445831048525995142589997928322049732919070881893148436732758641703247604155850601928666605377774709469866904949324965761095128030205428483875495459803092221965337929261944368748556832573306591102562620341779130544406909369840975036109172886601559064892482820669456245867868308746617229690832564011386109492686024238464941175162319799018379415427909087806543277433210817883659699654956730455313257337165304059137160747086800217187844192290300376553418805174773487401115882466011120583931430504175658090827700663957400697832759972523129385407451024311773871072548983844627106974530865970341001757325570043083878485238858283515169319064243934492362278020031894058570871512371717725733456539984742994097727085030543990023509051489270286038990943397858181544688532951552061497814757009648481216663506384637870255347993511598862979344219804695882323656467996035510580615694718786036281024773020519355541800067184106549875977830435625361482826618286819788040957297961763168482815081085811618993661666971642047375673416497980667767245456943053938302055150268544235946185598132572798259507992472411987571073690909330668060054668191031032090108830645506635793649646597903682424055525342240885303717819375199027475526329384035920645562203559358688075237158784609083407316519117744761281259878925651550240253232967706449338926253461328146894176734217957363581402210606970959752130596757922852955562309498936554939543155114755052401625889277703931734901873919126759606028876447708239444438155292982920047803079654768539571100614278476241814393551387181784671151952832212763327549781979041645506688121416826196161242984351929818929300695831093246508474864645706980217746404858983247615382362098955712035629359045503809095780998890925274898105156263175952755134330975461112718734786632924517574563708177407751953930048951546433748317817701083476366351245915928781975672876944777448748991945402067325672337454033296550605276663368665223049646351525299946113426844994065280508680419131728958233491859626997508295899596082724419823574944520656166540424578327733826595453272585100283611623578370522810467530096083304659973093919390750672689355059158286916342886858805309211607620811177223129490040946464121135575894706234624646346405227660605260756375789127724858851837514428992889957848352212093135927840208476717186998042231418028522569294885309279227086727041883932240324225610090551011913974091571435777315112618424382216315565950668764602530558507257439898397348819847206104362574060343352692221631614060998141857241614880489276154647470353062790006329638226903354322264932445820713449423641998298360513733776068562462683283265068279276198821738004031242779016297643679678126122830776825326710324896532215176277650615053041906037843878580286484260107474915705579819447870706206449444279002584605035501991524822556716592125872550445619508640484354060523460414380475080726221344927497754056300604815691133581560831301297345690434100325951904487140633239316379105262534383028978163207324198938561228851496336636025866853566228886861697935456612093685440949539488373761855734937391399219378216773767608703193174122138546162402071196489315351172147380004970767036458117226004515443259449527363552321987675577582568452721403591400789494903052542135055535182940997471324061085413286417869916853900805501714818354643239153773631984705814363775310139989077401564940079962929883438117246870426202463677392757324741689592727208266049616302907249560640606773913744708486284056957042747061079906354016669861072686394826607582533203707875730595008999476473100817320823444038737400032733134263529841880886347066674581413898847102574757257086156486136183050192217786060321709997555097592563441349576923627694364935570200401758280672822004576201681062324885947767097790101927192361094360326483150302465150670878724572604781918881926378807886194489959625482917027246899493653414658533064370629717687633406384150540056533857148383745225599340270930316944871553428922011294031858835279747620121243940763102997416727161403351851716810530984710503104902958190908618006055005032935108517473405466326361526252335117790156865650767126626321337375196118525962140080082264747431282402816427200854761220550443930678020636856969653398447248178470086727155005159088788308297716328602710682387229094095398696110799824478518558404774893345790278112863170924308434809995314355081765801041915333022191928063841048194445641810465630740482913712110417362231574241885923489420743460093691199448545018721570023517899058649121242734863779680328269041437325074432845606871169393661892324677585895115071707141776059345171617713783183382712936053667396236911555121004665001997418106720958802873956786513836936545057452025402630375831749742697700109401670550864557653275266121413509998494491341042683293085712344739997995973556402817843585972702507861226291188575099706449391971012235614897885401756714766914989781250143632448705151988419372702346836740137125394787800292221359461395844580173614734980365295848525106357998082290620613117300863221923275729602807492504210418870408898872400388240426766056358667779110999179903910665783924035577017159536203942815734885397245945255018501106453281777961633317694368360117065608443833399197260480137200717966799730057881567414770506317715136309626421775378879800650478245843296200530376804390514820288497539667334025752769711705372789861571174151195687823886024991756157890501244595515186205759800378276986843025531835484961838463408225573145941126385734589620756669247311711189398438104341583415465048845435373276858161784658140066334629637407597248116682852916410465638684456225461291402705006959985146821203739126807853355234100608436789850608082230522084753787678348165193890768583518547239738867564429904661764374762992260280995841509454539704567149786582332642538903431262945344272467032603438139432192060686039280611643996851765418983108847902236182664776051728198920612663406097087764612195951949159972740145827803673233798884025528737502653164351386450114662047469662691963226839244356131215651204840704949434288520727636458941897426297458217942825486189236340473967525405051048677566970809290353086300486733434289689593501308054789941691051158030434879426918375233212668943073313807013347443384154970719843792668360738353109599885591684207282185993608498308203246642579381140268230545653341264867411598438981630938143015835283831466820301519262936578840236508088609354924091219249875523701520263705946572712254495959072290401073655890959530524437245471924920354105955298761196279445186320886930020060646838489088401859106866212785598292548935737369418839450164955000919982927271348726519403253461355027302142910752858020274385978834723988723571973629542517477298192337568051165290685481120620613711143866564887830040443779052121815202365178681341882703205430961509883955780360401572415428143013815585751727138564838312687696334505235181681998876586075899713754574414321567583714484836694767808356436089686378099627426710157773030728415361919947177401553727883296932950119847285707135380974714143189994054456647405416032167485278547489021181181910956281070518028139362404269706053422445503403713710641863110753775930356355595034569581872448954144880291364943477082176340078165439097502881234825712024983870760998650430081913820935603282713897349308666284592173784309317271428444796868927905704066172804836035010601678573119573154002713170314003971871284365413494379294703487749875180187360472049747690692441610273602993602070506158147158787851362834859936946332473153976275280965577492272032495836784004474609500436421348364021315183901595913783486075318543492534432323227550851268479669742149548864536972007699187676431701651609574729892117162371618101556551110619170905036046136682291915486359610171069807417772461414560842234101571353972964727318798602435374906545184817628047894678834672276088333801161619139918583977919203655079603598620037646375791632562657203319172289685216763762400572280361208831872034482480052285028973765831078993771237525857103015674876554563118666166900567586376283363677080534177344794974744109018900747813047847694940834221722811524598746228886203812333055727625159711675315331345633961088296507921825209483367306301118496852251138110695738683090821584176479185619339584891454303329996767374736765911006431467622357090336262005841341586575426024110132933835590495347273161828934451470127148701795546533155050141325934433397513369315392093984101940629956140274149888626334127499285028234699734084257860511965385398988293165347653880567321889462912142682903698874644719028517919096885635910774273450942619797832942209014532887456748350724610877495267525494433353499370382039208365621735419151869450810472247639018773991734191578118290338013732761922461319689381337399679614138312802499831286797745838094238454589505035831611618632422120150389393551715286247367027603580127744327074849179834048528061770539907740805455829518316737221535066318672307683158466434716592028544159841574612926472485418923747885011684107520583147094049605015790083782345450870028027717603124627662416960529695448386751662498891903643392599918494327522992440039317431676865654904329287788011472703804173331432765803776286363337360250783354629699305133842978578327650578901556389195797968644228152453017745160736577800750508579110777895632382551532543045959483615851432371618711373528604740874355025166500768897869501076723860068383700560351269871562325727635283609231113591072591440888463963495949704489635957327657016973052733825309760514603404483295989459928904508949145113400709665177456994916857492914783946299540302704817586825060607601599300287664382237442771129412532935784373114272900865098919541254467813900325095808656636694358096821922859333588141490243630024670907528519768628004786870989626071740674609381638098188299307541315992362713470930084270456958709167053808672516456579271893445855497667993550664637829666293567858595158942014701528056940166825800561457071495020817353126682299556704152350304537392181000854713580886385509019002440895924667292924759091257476018822636616471938992259713310831742495350066259701777465253511644053994866871099086658231063600090323753061327653525126955928091329652112345887474153844058938494919351540285683987915418597260106955255767155818755935753081258119938983053584516240158174489534797335998411836613765879323587399148790314120669110341810721395057760678641979375527373255018348320119083465747699164947677732188913336240724744545377856848535568868227125192456949728810006345655479669530310244269095864699448348331630234438332460242478691186030875891124195906197296186238883818086611283557295637749515914178379644608209224033239585554413747668489290128726481931811401996605919235928423460040002377452667342794808060682237481923020884507673736728161929727123798716948285502579434604830885060870460880175915241561868907261567016498209014067219160716192604383572219994854108171725606185662992219588602403343399702497000113627117118610677777639717396907687671585289940883810030352412367957329139483077655619995022186587922263534330147461222592455394119114253097639363397503680949799205766368572078920260028165992432100277915487564440196426256203067747429277233252533638756406166815175584280826546363359397002750745387326336263242381397972801725378993941137627031439651272273943488665005629323298724552009402879174134419385382440297775559813684672068231692895052932365337329155757710637397826927770507352376165667398626924733612400480815705234147496918416684991888571886837303346345304546796486638198387583155721889618479953942221492375132006569304892243126385089875122594199713441063316658454180211406730935376653705890392697815754490858864302668361937089037678232840956078518977122844199522898236771836504088688613698180423411749929373817099320809511143930589392812595869622690141357529523354852150791324950676940300783471742376085769619203130407866057199080074390571772408666826586990237532415993589120491046625895514621840253388012499286868240907928624407544220502220284796911843741299670498804054774797585718831732937446852178472532084408827528031768200313237179437334901852720365473871589580304386898743539060786839859238225287604356539299880831563744297600067107954154566098303313643644545870371087718873361502908116721377407349774146635034265571041536103509947409011899843763341608321997464836173297410950479815609148801246750122878947073825376021146865559158966081851133262244240407061587261670617152031672617984527174375338015219762139028964025274444946586477405253004545986725627370309259553229264023527624142282384325717367689151202018252577799532565955658666273513483869208436204850617773411072556140774903703689912722878541029879908287318738732604388948256172086938491108265213430050055536937858018690949455156025036054696332670959576252383020497427715677031271727932448086193793549991244287801570504674662565477348479534546799252017660362758141608681751832058463689704607316683016361444617740714856409639682628131017120025146216304230103281603786236296577666564781079608576708687387538249268775351595987891399180115636267065571394932361277385456205652648397203950633286187676172794614780293038094915964165403893600634016214194269944169262111872401448038951397921574230462566841763996179743879504247972914341994840094818082776316187689721982966409089527208259269060232241324007219741408460212736320519781553638534079115460472134919491067158190958276375080472986511674216099221797861256696301873538805042183685436635461509945648625890050109075027938664013845270795325748823377820200249446039087320668566819788211977990095687523154255004271921550530603100729538728737715559664017936276525504960943945305617487066025171685555760968827836973813651546544697283449188198415246497188836042152432220777295047548968239237036781120597279974166621613868673775721081082508375179652858464206238566042403328279926272820388553079005625964259565318572919591297056004118514703334387646419255688566560392917758460871200587760070452295005536707096284257872487727309468105418190794087738966856949482273652039900332124858819569755104382350230027929195223801692065185482275871090150548770311287395808856339952833707472438033087508710041417790900874514930726774238980515335816338965739899206992634684576384229235673203498325947716755497786245697169087324980848226456131319619761449342136366621614777472286338141588106189500584005436917114931713594435208227979989076212965882460730873681789981456828461099865648224791223946903332541168140900246888052984961524786014356067684899221997630679975977148303713698758526039064218665845147338144997318650771007909751072388819322208370544013152709238806413374163118592746237409602589870906802786977954045932578243930322421718743836009786808846630507870248719403763172446766447207607531159544956371872139877814263612756293696665052544105237331651792986735381179829728299678552656524386121974999701910733198129704278279408695883739884114793195248641544887331212955931469824989739049394652521569571475545670125343695074244989346452059923520676376926527841524530592846367194380311193995831521649627039150735246102464360985180831705485267965173737493880802188189445032170622853816165111484512167707022965620419940634193687423557399744797015403642869725286350130609715105171872046047936948668193642165559035057511134540515477209795345441858851467586184582719658816280374820583956834925949999396279549876057147616702141221199761695186853618924525697538922711794772957694598915377713702234035281100722832117810574867783986204117928532654653412560742060054907400271142528323399539749591885410217370065073151363000807824289778265205014662327937076709546939829658137123002918875598553135100667150562901906116815716410336446638790094235634222128389562488465538631439074562649071069432521807707244164286507870244409348264285051095253160416681293557311397180996124536367403974952539722983130167300045708720010655686035822973746389847623781667262737529739086591602456915543392045761202892287615949737568968572151482964849482150371050273190542625998589031191202604536567965017932414315944641316863733697801297618112589571021330493644246562403228464743040669294020144265019827307442996991829415962293968390928709577223845880974322354053266038808861248123425784637569997658080472579838179771451022888835865308350827375760002353622313457543324966405419611476816857523440934901344708345220562520056280185186490870735722312200985353544416429214226095156638886021361549025965908865642069534274930773296429067724264131393198471759753119319197184148342951610598795681622252915415543499317481167858370110830174509568632628627522503570134113540356776728933190133308919218219036786906775530072987649787692889648098228502714892253035100824680200865616739489327532373652707389464328828287577263499555901985277122196792680401821314260642284220326111040706500616982542916687658876191732019019937067205115949531419894658743913987506933281069051136308831967069734585923455959921869682640433834185540786358855615143132880135019375351601177216286130183798985043002546097767757850578107194231952776271925565473096265570003837504892735387285397998297815626371308813165430477320927085670210964981736642308476489828593416829399040871127117173028782771307601720389261833810607202665184489821828482599483313883767296198713472074796780696215630340917558183117446240033534446205575391473587246988992702351388046644782994595206778535251980991846873033278882688340853390066925389973562257102639269716847063058647734947262902226089903553392865001636636403683998745376662395066287486126738644296494935789512803518236794536204817719444600674303309700156009396419706060917730348612274235843539740177414459717205741058250741759164200756139459748991389262121118779998857243793383956021369378014972001351670778970923248309042451515066088930073082392029973180322001667966610381350739653144763287782166266031395410887141255879209575295187440800510259448710963936978004715449973127004306622618482597007657434645771837613267669460257965427716448670856680098613340546493094174315760194418187208144070337481443255684367967610741316909229876246780795310710636712410701307892181817725339482685692568284482540491728702183917676137763157922220859359437027910197513233923863039408625210743043636116363354699162120662367824346137024367460621575338321301474209217834737454049622332755426393355054604157183378706765224591907689684650935441732674949195420516340898506820123446337459278071150546904522707228285003776687300759159106983805263351375324862021131168057540626756831581563322568298062040298043932909227352072362466015257857246596934882542575978010065632968293709492800499230514308428564222876592300054899903304414417773308532705924686271428518778468448525108057132836620087501271386004534505862674004088196006139067468481991678000106555637547252075675627212927900177808125661123235296751792367654928413461808687004669841467237776098231184054580635490032987864702791363316965154608599749335370547060235172434157784151383391567229540226638344860482601637272181021304668397808016171092853023035073394009870374674865026099950228414995109187422514994056505616751709632371310765786577383320648881510190089856187662817096269440024784030850479025697225430148764568832393046999824421407358332296811270632838601862848106203176254735835281508063725845465552703202121392369235994437404113052698899079920903420979142468491392005870900204392994990028030842974175435109375092525752071863507011496967465657243970723622560955404410188208290832659082201935700068516042883559129410654170814201035748669824536859094073114133273400270858265065702949888930444699406107077630973452813138791992990653913717492838708901517592312856058002208991943571467132137863633608154583008129908985983571435640971411699655094222850234666225486654817096473380154251032978895357981728053702473755049562798687410014432260887646868857040840279354118594748355723459972544939426938169731132225010382091447814421635033758221965081312775225911499949161638695534939934362435796111544171079347071705757139759310525729251666418683236124865086522884998324982580717408481903118396175489326412371396183498298313057943174434918387873608384241005029692226283371493858297332710731284720903172566478243066501614284415401537890208526613935052379404539863020055192196988512540565872507887098344643059135003276965952515175142156760671852765005273970991973957345089319935539644193865864650332032115667797981725867299808067576056972813219492018543495246428803155628936982498272125252923491631927477661606781887600143719051936552103623504948253616729582427849925790409033644311213606110138107323782832197789731851048285042007813334167773326236528645344740009877367882971232874108526623382642897213047423123049006226315962814100175320013818144528984315902565052735395605576073730364777051986243834113662396057732141161975400961570169594035159236114685610944992409803074769370695599384125265769417326594434483195421254481303754269460016049652219260787459663666406241656453780619698258311624943593872553143547970096011727248305879839720382511451354924512703964404606295243900951446650113015907440759582574251047964857815822579158195828430810260608091401183851384477198593409186756232938672093465391751506129082204179493381336628701298853855408285153747661356928640842563008959152521416727103693257124475091989845269995084105677998207627070096156976076159054771799867146063916057049598862624267384072126366305784003507768019828972488611880283484189749303117206197785547853057730082189082710927020362425347275710765409711277275864206925075281353998413321463845143061691502663324794091463152907888342262451166999241965680396825170540800888762433771231512924914243511395372901477305686362359091306811862243289918742278672269188366497933233774460062641512771415743464500673968794636037729118603981772066182142783939147719034076749960731013623318092515441224550586823385382127526839616825304749336660444085356318890620943938621951819497476617584579334936956613870539177640588316273740622077393627909503144120838301828511898337090584136261041000070017207269064022473480100281900198574305328884730089559020338088147692368236584319559663630917366236819340071965761823719625697113370543921036907529193934235109523948911086856396178535647290702807510437777776547778917306856964284289483456296161177981359855810849442694350901948361468088661389592202613301805664281519680678872495150568273179637164395240236410270213305044475282497703223194876673755564132700105297695328857998388516477302437009816492613602743450165913221790882834252936644744541129754225041989392072837191519296676996521595298843101557486517516094727200209645702688388279094983087209610259967426182726291935433911180925184713121330799044179058633672239090552983750636401032655322968477309285873856187188372864460062632455689798714639662698444117888938603801087469403628654411046850834593629196413183147680003326165354184606366699847564454108680092328737182260485942681751130161745515048028610263440793461078179212472307020748390793760945357648437266540996730485046657307261313561126866239684895860378827916212602959594193899733445115385823848631958066966292058960189042756370451449043340749790134386148208673872944936267368153760445320390276065892158562328532738792952738510532482557093106459719675299232937913439980171335206876721158569829266671881424587399890636482526630897900745161642781941365387857431070643687418368197203181078128694487405059714774556221050244909672776691562536903073499166682684401819228105261143303732426204743177044971130694250784282398767263719340429266932395045712333093396070134611902621694722203400598606446910267870762237998752354483347034293838473259608590252480214946636276025818868712326069228802017654209782750613178524978484124867833867948285981404969377806049296205843712823410247575183531612974476326864731870672208117156729884949999736130548129205183943366929266434940782553518721714870733991620238007718408547346641981743742129961660299593874060222925217183929968193542365193730469877960372749189655706583605398474379912540409365676070192081084872251036167022870026867215246945075676638052094686531240365909238724962195251901591100662858625642871849728950476703454884600045097430137154798518934207752096888380699762375803319324094660630237920005197945793467122415152934033396710206621452073768599336532946256196688663612851400881281430758952488470112733559092806455980786670894974499217745367308576827613599840860177641039901673692381533069036202574075904120078663276230395957718608149489062084471474426891423169898026844797207525114470025596254701822143721276659429584899541920703971413304060049747858916103608227963604558389870566859376825763539847100232176275870336529133618107381747984390093130010090040478679166030040086800238683853113225680977929672603774038998939582544879287242407272985301798966048762279789512280442476581642571405467248137073689159499393158035358274394344403683521563333416235891268636136385955133043527977111746361681266695621381278682670406324248929243260852592569740685779175536370438059790847328955784736109306011532796234889311573904045265682202692759278180016297662701092704039874145635604785926486880559155577118699067830669071758423895369956262052607794909760552802863317784450359015815293500031375504642795575656397557540823446658178600440250640651144239553712066120799891870057200379993848704523857731208301196016759971330300880765556757842856279197877826712235194258527287539097627752922687112812932959776242826244870588705363220927579872459339481207443918470055503446195280443280737228115080400749601955671910799829584899637509780278542897946154952608373304667215499331816959858382877287377197868907643525083424289807038916858949813699453876953066464479302407043328072527281950661141951790453295205074813715890787587704617283554287241936428492205558374771368040721967288737944462156586752891668789796174609615019256268137713821019297895598972663351926877991083931577760904292591575325424239358530771286766026908850339222210565524300352156270760646710832728546754804612596580244625873696943190548327535001111796215075213133327381175400733790500605937015829040436538771733413254684438621175932106884120004723289377479583513274174742093874802070665802695445470856693552494165874700837172842958664328654229870513273278657747019814302368534676646115898146301392895598726256855830382195910665943086922282790060257903291055052548898957636876935887163580397751727083769167199876508795617740679784127602396354231537184747407001057217355722916686759808033313119327782038942282582302985471734807303741259278377552222489007780093513452259358154111497183871984429693008141265092306301288307165235347589277076553861716769222378529827545102162606721425882318198320392667884122099785575533079853381052479297198749452088325266085724570876518766550382554669995797595285555471329785906614837643039481813426836605759003375916883169837425640753609451470530382940283157275829378589520037244525689243505866238241044367299660241618130307670845047830690736034052778838327717705515552933289471856535582464865491633983829522929600861911731422103647466115678919852395729909890677316052692893862754671438660170295139784865628976555424811557287490475112060739983379245603513113409825289883279735108294002617166418372830001449742279957240021676618832385575078570315811519067911934507011862282579793839165283376503363852458433959066338451105138078635291663774655522419412908944086203574404799859417469086283527651975047148319251435741695025562486540286636818520871092138764181363925190063734896670760430226149191886141022715405091294295633554543972567681508075819280496560732030956476033778074839987833890217609524408971987371806956165635978220351088680534759474823105396477526863822419954660042083333844292385032424047434347746475252806388307709393657427292876219230279889818351335567284212623230719831927531616906234929719260999457409987174640553610454695354269105906680931029025077500982527295405516686896490006659900790370847864246240393295047144098638744251765420408181740977302192737668858606535773020998885018372901162723220738667534394329510472706434579818258615029610505879366824042936252505770692153728272288197446904606304179736033316475460154471794916962282199700918455367780127755461078587941988661604066149742719520726441009062656175680679783777831020903944457312923506735056069575413014980809916748499877998223073441421432471469416703669396379882421023701248894784281942306312735237309102054666699291322266217526806444198895878031747110671545955818001889610765825386567790375746355687499281695853686411804297392824444224840513706238871456450879776034074290352563118050582987273436765805974326386328258298106949974106985551132004622663670644779109992818333567789884996152891601057353081005043617048486376793039980360057801552657942961908008178078076073733183383490728803254135509510014042719054069336341294562602740800017374429830128108089565783256638838661298710055828599887283198176761589278483166747157337201552608230667421870604740136855300136370247342723930802773809028754249876420754987584830083714169972251070937831869727666117711810274494153104292179504276295854529708190196865238706140585937207301460226894281374860028974494189959666072095109016328781766165145146942082417021142135981890868593182903323776138855538128930792346111445801281486937636911282413256302860992849831978278079958060666515025940538730674419933471947564754425242286564830584552448683125147238859157182506640771777542869728918405796994885548948175516129043214565999363147179568284913563934377394382436171972066985895268394514387028615256483641984290105360724154565281619569989585120012333716247485368320993293735986969424846419973654555603531757163711545701510424842812672107266708687312457680030418546349879730862261786261264758782542322457673004165083094779585633043797322370913791267726697559392337286334980576681774135645349264308369023773432522024385137579574238935886868627988166132449142598279563803737100198935655701548784231267828993920023125247449479882075052438549251887581677546684437772702809705987598703478372851500912171880825081805838146142564886547756934448750349242699745572754913398054576755303549954973868278366564445034206761881272601530701839290448167818399361186876219365777859299482841868772322752021239614266166271081673305006930511433935536874413487544588291021170407613396977770041783488178639877512564807279845485075693096762038043703848170409095286144452615552073755545124197981938288172548056007901044390376605693186490307577523524349456645084440647006811402111163566139824572274950279912231749642691498258440098351064933971347581003976449955695889944245131951626759702020595052210876692766131439899399392296517357480546730310972546688805750066217272903813230187440982419445382396250873439774932917700098904870384566778353569363991356886182975781013233841207623588253426918634954954041972908987526393109434886148715429378395420443566648899957570438675761471183146546291683213389634083367564162309797746213673266813745644393874655076050240480599954629753339456089310830755845075441218895267080794529344014761832341558380862972474303508994241401096544503512048474091031664123717704254510662866486895142381060792605242455123679734913080966646729631150929385090705840190028396072720557824426920517438814457793730810067581714880084466770460355371984371430302065462162713727354547839911777857305175209435360849041810935764530282346171247027879108893996758113401195529965153071827847739902044720235140230809316336822363432226424394051351603583552144447051453792326622024115907469707433427127086973589104442559818378489900534255411075673721552267444162104370137713818826218024906168207816571080813480365179940055335334683169438793063008226055258703664893265640507758594912933761937851911907442869270593410310859137218221869773897570239803485720551879663487477955382455464544559974176326997438537018976053841078554630024742111458554647057128276564277833245087105756708366677160487292771142542425884598035998889293437958680503440442431891860328077225305636854025933325550774695628117798489291182118011052547591652354246734802952457220218682026382832924803673506656898567598370271570518338730059253769428754199364275009287329030936189921310486076616071648684811085773237930279891658117705080841924485401209856388630325772033295611804985105580735250346522821579010179094504257172137296825944722666877765729067584619580423200713712486984132179746566301421329377429317692765431518092857324690671363308716832101404652718273863456235302022055418378787095772394127013498448424471683042425106961122143454476976192707747481908096149531625340609921268099689355757493146560981332080136180694933026989228986210077746199648325302928846872950383009656945085882086095742110796017780560650961826045965628559902023839072085177899702702439762035279518468969202264609361039404752548540941460334371230241328178684305150328402648954419494455660811430203530052555918947237124912151332751381302680533657404648668573863729648395150455918388390591808557152149304229879490528390602580082047917565588047832970536611029057112053428310037872249314609520330694703783842792209542482189204781083102249443021753397679815848883969950846961718250210447490271053903326687325112919955252388816219006047503273191476538523551853375501359312513561907082347287692002135851265971733620735857819161981780078258918950924435795471541382109337327497701757068687637536602131984738576802284205648448733625271485207654766960897778925536572988129109971658510230762100571282541040502900258010272311290224658798282051713357912633519683321390303497238504436596525405753302360969401303745164773927035696207315252663438168522524163399813242774929883976349084905973400946198560340313599454686090305418437657796110531661878491902435142207917655709975342624486783850576584032624412278741125762977718664121374117018546946796271851828715247839494515794584490401429701623380967120851620164505500729270709184834431358342781485550329338595484472972037271748692154502647988319748516631091557213052135021891237424284261616542213649754268627039505524278910072360916833084017238573611874397965998436444595255152524564484810785837613531536738973193261849095660122730723486561552076072158481581488388217799697854652027453494678020867205629153358363214571911076774246095170767430199520969662870911727157761711010993214978379179790480575281682279290227315550634187731669054416992347245033689004114072212063100855863210761089899629875541868504623595353859057313309961339782022695921265044173504814959748888023665669396216586253592314654727769295501469400032471126522750645242355298073899517928089489784060623759216517317502612953436765706647120597164831428021294672562335091610870540539830605431829036224794412214562873542192212786157192570621012080810211269508888350781433076957451308327095038285384451199089213986968949350970536587490670346496218733747868404092857682760348829263921896344495546480153334486244914482340875214885269793671699060031028442643025038089724325115110375267143297622017089257979103010694955885356470268944297462308014411469106874966661664162829518499353613879622554278500590590182375477905754458695369718258454033483444786014921932358535978357532082999429308649003093052621390593748362306451936643847770769209006295678083431353515617974757048883010696591900282102800786572669064650803967723621954755467714896442640418375702560941557377191377217555981003917041308586981922796516064600054103367071916260330390469655144392786689229116942331415389518634332774719157262746955555890177145903584459584482402668790419632882140880160850137852056560945223398312820652232357877525170606960655863199985457777942920558026742707560185098397901441798573345333984728719014383230882521319757565028865538742616605264495682654129686236848935065905429755974381891485379707396363902243533103357565838125478065619767914778153254960110380823555183366139424075536803625411479917272932928369661759099096224212889365711462722511017574956690165466410686121857444879968989041923264101577508269345874905987348840525962244849817272034411976268862296653929571217491221076229425938068612713795698969317616426908384007389423797219206582264787869103122189021714426071728948773685578217836150987273224436993276431722210378286225525448068590747888444863920755257316957580505975733075353319494708879519236925661837378382447188431466132342995940869098326864245718143503368620678842852924853591289179620617161875516578386863060934006312521326374467487894807523829153985103189323703521509661644472561628640455583871043411310324921861259596114389342230628022641413608117243779780535958497362456667917537073437238726580306839039821699103890348269401538686168102136682392932937130593969488475791328585824200995135907514832445327649451749606548607935096911975809718006697767746362402730290397495558951304388487937771125705753588604030768845519275621314531945755907772638375194966621073403994398086740572323868720157172873178450519057674208152344600690029613436498194776042510512301652558386221349898147704547184487492537349975138199225282660862591863185798850331525475925993231799864226213728912777355503928114222154129558458839769435804950851677888791934523568155400896247813241742918242933003642972834712960457908693427534111423921613936829832562789832408576559582822690858896358326698897820233079165374977384857074256501172928536053817688483582272010791319224139706649489341459362395657602641387396888015239193527658433816490739411173575591666917095133724868747012869052444418707376934677852565647461901086613293282243131420634024816459301743263552164623917308495911128771593791365373861324994848227715663852105665650923492272606119183162742771204700686919556632928929437941998487707310679066236495716292079955737781263270081622549479460185707725640994031850947955592153958361924446598072969717493891599551925504130085742471693796621039592348381012526708847943855565061335314546900488128869055952587816859575697054952197164104754093707671865135754231449989186191788124248441666818814150764521389569502537199368788426993613958153903637267663262660099886208344133357237327608495365334546813442297955809683776547688919003910952525289120778560909723419692153136656754988017422399507477097552691399965430051704488387327577098533854054730215700670001360139872055135584169689519656870924939506758682266994040375252056740973467465610104522708051060601114411339481039296428978077321795301537760495896640717755929941531149550830374165069939814967261275028664153330328737028958333650715443818833062076059090572183059202737347489720002519355345583389944251473313552549585284708555136933757054339047238107039544951614465413193509957709837923950328128848318010018309066756250801015895953489688774752096958640051497045269127745037789024824523736541466408562534161473985809279011730193892933617814134212663753293482643476022991298291800213005602138623256304083990864604469461041667284722088510403172034663820051797271090067015255818111505243890475408254904734992031940043819354081026995587636496147606893893154042043675280911669526404183046153204188306753626874078208927687632006219823437218011158151019396159738554942953394629316372114841042936440154659127079315481335548610429224328303595384203992507763333688184647132851402974402352135271275285450390876505807836394467829647520537195129014725852201123683239984017427274815871715979608939151950422165724946178494781642493534451546907132882865897165870511838556087728261518232992801156158164903826043236600349800030786957399616827308806196241527857235491525984834916191047729853928682599610698992969565174208604490153346001049181831286592978136399538489801436226428482055174951241163803672119030750997940779189305832674680475377637458710022869313461938494320034607983497287173679429601337941584499825534568803916494414451117939396941993747608233616695557667781037106634021245734946239160104473575196611696669744343464508031780126132130480682688986600829681813777315676412386393976723860289894782975884943349753837487518090374225968765812048328192414537486700835837173419556138871878926514965526722237912685523917983164489095973844404585386425997029021735280704782214160408770918309882572566472808699181917966952726148683070174876358910890846109286784204980705293763425215733685689446922539061475084297558225930881836915324413613115454763164732998720529244083889690544498879424142865809633728686977582702820511219466070503324352783679984763856279864126291760733238234513672229918989771313753374837628332983998991915779968106378470297758041799092493693341717378601303852155515531813949158061289079806371091414733155690738534222063062168376811252901402624273246057611054190177775419653223736468607707082842941222647822822927992695138681320097709461017558539365078340895794859692503881224836482028377876452215796127760397534087672004522025187357793153036317989085611065072780840268205963582734484828057759310174615833414571944309421755760287233911927984861363558621410015903792962812547024561357361513615855819659226306712626229323304999474817502106338629257881430470174033573686708900158283430864309431804293705733721094390999020307242195249377311167640145292517239529677355836228661849001033238181998272880493617310956082626504460317666718693510308062412676173923470701877813016544093046280313846830008289406872295365289355910051900514443152731222881764906501625015683585959817695314542986350830778857719986342378453785074178402386852646599711509507212087116132398922108937113409542393019365986747670776471246879931532230611294813060937154511696923789211693272730136983554108745252513331260796590369722238704598900897133812155510948401688926545876072324024935204727535430581448489552982902189658757838357751388383310297491834124143054604519849954060696122392580134789506854176683983460256548370577845964704957817724575944722057373857448935029501693379809065884854688056406273233975567393961813882926690908615485255302965002473988512664723718912303546068466596668075169184350918028606068072958203779148182650332288364537336889074122987143192917171605304406057900451506536645515351040131912153695879420525325201767049642084981792767027414173013391437796168565911269213508278020841174076344688069936676421075034882081752213121484826988723123211497400862925986291073577483990148380544064760163567833846438585735982483778972340653600811676075298167785408492012892660520843696130462811676404128928629822403490692920902930050546080110648510449065251912321897981938301804405665566255169264703321018234698500346717071654518412596303447216053396898283623003913461575296751211113458988534395943599385791278691312821727207813244290649215514767468118760463051114359483755851326161405738570381717333860349094744165619081511950222624571656254672243006736337548496254112402414715174917571258403610007648910475750610027554259906436913706964610412965013991864635825659802387975683026751917098008427474813648218333345031591767332660155749686873572720338982301524148733569421438489676081650303026876889827359101298305417291476885083698283275988437709500414551959864754765523555535977537314922025420000294543426713622375217630177018025267619074031809197981582520442946529670080958848865854905635149381826842872235176377477883856370001957233619233100563713053556873523319611617521392245858685153711177758069059685129264001658810646897366881583632882446885158779325834110415269203323914072281866478024355385986824726992362295708929478250559125371724991855421767925200724858590007678143035496447753512146706470723659401989897979812674500711601914676437333712474855034507385910796076707993169571428301052595405975275392657893134477321343947556391064282727147781294098934360964590993913808056131981687927035312500869921032008186444117180816970910880322972498123791135370879891222711641238452481378802355916295641651202677913776569619108212115417217067564875840633875197986382160703624706163205727596150197523404201518096293897957787233522316760545328691678208098973518622847526293925282894880892739866550563026574883229163186963438002115080016480115454811528536185678918955310875685214451476109844268184982295056859422240149468396131265941877700538060541067175719017454062278234540664773042523444074104117790795432042921253046483216899753867483596653589182145768235463612361438780623592364200487985700102033790124714006908981675292689400153267692960918641956943779520038499153431908862484543408146328897191401016197175285428793716488226790641482288750963617825555908691584737791297686201297669150503842671378385640500088988257653900727207277719529664957034617513535729363482160955884076673316981944623046452555972351709587280887209718548712479218811152224573235865085661452362357667418510579022571615409935890115629635556868725094728214182722445195443630598386224481114363886804529222785425070918817970591498108725273649612996419487461390649793643562495959522059291691857232588870295424219634077715514815275013806032225552377073002885140997018829435226318118748728646499888525756670940684457934736278177875988508100792110957420415161850963414813175849562391921974157032821875482939815008959009927741634926834830599322622178585838565476885794412772465599773872336207240546336864836579486582246600767930868381266036171939859159053245353525835650375527368698675985006292937347580303807958290392718116767549331379187616102891683361984072943852540378602534323417141145336010683718585792001829520631571151316278813632750444166322688097170493267157482284293632837121215961621912739044455352651857620098842889837560016236755596101705232699916100204546410001776917755641533977690778478394719373190923332373912822164517913189738263053389032242683481631926330419589554413375641077843251756696727862544693246455751789008302709564337209799563034896178708380502679439854684720156274851239836503076945144597281780626476482483178608669764297404148078787580087226463319021625104002684262801608116627696473992841310787656433606974674052913703521870779042758128007727217166868695709803936429458945073379731662557653569784054610358742273502084077906167877427647336814719906821814602287861083297615656421261660112689901826752251304549789499054579310462938350989105209447547104974955581378221466407363813298128462165983797579137378642417102116229294260189458427288770260524061745110485081546747738969371124502847223026509223927464934724771162223976938370428134323952455769277221207035166558260797195703976895058401020439715726342235609409699472685496843089102007305613148905078713827684741169687770245362244979473203781646494680161197070402973617535835406140607314090359161422236111026032431761225681309918646623506502615613550685661175345659313113270812993308533239250989675029199354281132698594270262342813817428329179039624312274659952876140756652166572405637187743001757462208937736611367186398788609807270868051116684418721318451055431409053788960279885715694048531246514822282809660846703393406620561193804127661370591713462443810640838124053419227406305259036466858571458132002388183638609162561905467427476737713638491570850161584925681550432997482826904678417342144246365724955238105076568909392142733951793525787981868024296729491495975058393987492022094188327692569234311735534201138941830242852250583269310637350341532682873690265948496843573447366018153473281782333844160688350640741199065794502715584365332452594641606251553017599603890292806228150407640438462538216681055025817458694032966808540567283598752379164327580898845839250215600758262476503777944033205975281882263517470239125826223389368221527764746446232581329031884376733357717674693355582652674613105809204457667789605187189899020480515718724084373435714631625558738194643834831809778362969534169214339726710112383808257000435884699624433527755553033144912256168276630176851569948430577114455619858054836652992873478863861378876174340173790330596276336386905102960076350787085739219910019007369729351444123540768348254926445719395296691016820167678702651038732119163151253958943457461261609369410200588826614931704520213207512433577523948403647340225308206554022899050853254035841613894593054633107991927264163691428724299095657236892616079441870880483454663425530141423157522987637088475143950027415829519919364858306281430464479725193578690891129771466333626542642482621208763570784321262458619423904267309378909970749402849983279671171288359765422582823276214601420222511998508459002171505390665881639796943585275769427682014826085223853266347233322287188263834108264479359658765263886008426074428953932835421768723997929774812563736262775225334466082693982575368975710873121686917709430901133399921849338015552479090659470910623966319666609637280659028451643757969743539283303910496020409971139301637473402428267343431673582130765311846252952929271510147420320024476440896536713550918793933639922196319389303578292340635939091721892498783621014003805495979948297332645155156366745215694803716545769084375974996625559654854115191687237715816634351848910178785386466287125970857152487130917684264531579647745105920639549308248288229405627713512210306801396179416041702239019693350378876955861999139711942017033505694844354901968118254331209121623101732534291930532106535935885913509830387919420126160140616705067941410692715587594748114343593811861131413843448633304415835445366727580125893409240066430406314298096068881224882849745223500208857860204562886479388553113563128426238100880790914246870183944471549916882902695688005599411822617842104661260302281740269067768358903834193464089611921590785836982455918466504123915483148531161409281305930662174205592543715089139045699848162428761794052909777449992448713135022029057151281542567693630856218938024575562532163120185955444576910171956481861566409715348237707367319739548509001681942644592043156664053257132532586349112294938107415628415824795141706757671298993056374756647678817766550135807539080251974509494327936531978251586165943944735726629168923059528738694836489346236885593596044285280984917632037236614425047125078091733804841105519739100504233610914017719565347555648377580940229632337211337325171635681662794865603210740702713502697434371735224985458880137030550806700836214154819402241360871691313309967856770202009403738521925908231090164798176899911689884580140197653789480330462338953387547944035498167798370542817917285466046826625311499724339265502645393544477466493986732007483108896529694669411250598592674668681330182709037127447530638613535342018097595365942732720484353440921022739621038305360797502726362844513239069422892531685061922528749427335480760385103212118101593246149399470561372857567269773919939352761105833538719050548202328365738941319220913947461695739742471218457893600459753973333413673813339012165733656677165975236549421028032954921709311059504056123552594868194155198337879467011733098416373217439467835494249837880823958878825513790058485762618363408542491821117598903239267799995538628511868718700175611809816043153715521699937181612439643296272929661146579230490465078003826616139920281919895779919493995216131437950903679996293698285030978209810770914316195356295622161317492700933586183316992789497186779301175207048439509633379538335503601539355794495123774197179295124264845957210937940916399066102455035593809807051225792197517539264308574242434249947885823241784990424943367081362059609585921006182324877228421201183746463505618311968719580311007252817785156319971050920862464503019179319118220879762730803569135407938001334439409226406783136966235772693337416881908940665876004398568383029280785458465952894357694863670482572959034345407664659120504916736033400423176892913436723083319952570870814251355480497396748673293954010110710363605983798671085064127335342168614662694570919414085508391910515816303321618917645062605681834397763464298789319223791304812766905274179276161641034124791566170171792318935359448259125107910733643661097892962046613901712762991179428204778828160926072563472286093079210295864089816682375692496174356777369767653225418763486673977067101738506504012773995054552860401147437715270151258268781546219429317204525713148605100436493596047551081589211928428283886145959406255877978926551833836054972083909463488804843870985243643008089948232419056963621622573027956802375218338908683228747869585681394068073050779591571153281446261707459686694567148141949224868725614796890320678772688588334023438538990295636722660821897449131045224131337025444603136814670758607208004047931345773445148787448508705559083403257250476948640175220983845063553958097593408510593599158288684446155393438842885485139276302254143502059501226861281614380942679744764850983118531129100015030110234042533317161885712570497229833018855281215334308801663932744503284574249864081194296888455446092428285116241954652968170933764781041786942346863853440227260519853523990862926739438437237806742356692619117246650945949271625549270596034896411964480771145295655713934785441792661939103789257810810895574205767769269088937423896650914264265760825561721097314589196331809601414111668366707165980182232624703615897668101428881813106395172455641775168861153663836291314125954723560937803031660343597077132171965118257295945060993668919104113653259134735240841233625005218635265274740244212364106302681288073867300447169071665109668367427318692638786283108904668452454673607630354812212981240545949712160434525571188240991513521447837066155877801463800563437707668975027575908372050727711955514582642902520476102446149701580617775008778619564452258734009832766706056574239702419613042908443156505440077826669666222842854927649868033946262630697965296638767731327645515191864338840196599055744353064279627302703801643381088107158107991410191079102861307575565045427539126791013565993073580778530193657775556308816098450250001147814459477489969245642646936531521536272369828928945945272233471966825901041167586514998412906860467131624278174839702793509445712504449891546652706827302680040181941497799355548078898045909732688276545225709833598318331596312017256749640221149419698830002280024200986352205981074637686087431452706606052989328766153468169863853806360988914730661868075980201196870293333447236872174548646342236863009669578296635217194046779892153656050294095396847740049137630099100701940221619877670669378119469613612691564452593783407649994314298647937600237168225884344698238355961903675178173542011583742401498627971982381689126117506475076177123399792873676153054892450660119114359250103706872489193232985019579098041813358621870937923687984729198791807563450106212348092609999593193931872156095051920867405544708688609849442765967667708391948910667150583943133899626542184658772704713021902207752620338598091594722885735068957175265829901218005368237008945230592614376209036659109089816651980943636803962899431249702928231362567209838601758111387704922098169778218579024977817641824081208862543409635327080882996131145618529975270872116111848641317703869025084729583102919919674248030728810893396068178868560784725431908063559161504766290936247997487412791256321552741027524421851578146857312915793625749387890544117446950671536177988691896330408811188083252572697353620276725706457814076160244936246545177110008389859020261935009109948079820038084450727509782266404899363111119343057711059478707978949127978838329843166648679616313200300436611990540916424251881113444264689362189876553511206505042560674419409984308673652408167439020546950935372520408197447452054551293557214729336905541950037559505750094260998638834030804374996107247043318763371147081792639430414077657174823012459478321571461492676796025967316688909790407259830609969221846503751829329207154596675279136827264235154742761136032686513161953662132281143031336203625311592752410268117759860799086823968901908095695685726401438226141772821470747668721227388498032051763116618068294340241412918040065024097070114787744578384953928784589340252440308620466077165938880980405492010735965462419795793052947666374130937174965096189067636775249597511621302392174824614365299016439896589702641727164589286066645110602485840263165052430854775560665103093094076134207889507516243854169611467653070324168002825750417963664854962386028226190482831664518671853475005928790289204626315662549964109569259078771650590166416999738218325237852822698857401352398366885677723690640056859413759535610185271484016302621667823539106780844209170380119995114650526319997966596944767903367363380884699725131140815380787530481555104887495084757460545719163434649644286120170534522028427060394992104988061308210559761784730411084344614572395344892408413433958041500180182722005992333837086522441747976443913061999923634732209781362450691887040370735788800131486486126392712497445822723390824117967126201716435302741496293411775489278280151471241746279260737634858039139981970424377480505418934871269925022474452489435361741800066639030596793444467352387558511326908984345757042440784449507716304586328930270635318118836772865825279996530515431573106832326227374551360384363805111689062064325679634367368960534510146398342432319636957932254928267691978904721595967075874358453715865347090129568830276666935064369766499643979380882030618493044569253662787146040184441407588429247681258078688211146219621186297500530465166651996697545857238014798063422717688856195964248507507601615725421982125030460233949557692505333103887506328700345265432750125620598979715012836334676475383984823175770771584190555081115818593733229043183378769723880010020148311157825819820988219853503123635503839924720498243064525434369877719122579350163523298151918723964765746776966778158414852846879512007549035411392625632339509333329090374134566613727353890637145396284055048087623405696195482830980410849076965722791285163047780269700909196543738103795644197025612060859839349243147958328916041445237329878541700972674172446117263092263499258982364552523735767177282627912515409972094792528817202961734873304387218511885480931741687661399855317816140698443297390319010076955171222974099867230939630528314078004676806345054540221181031729141370874205069807803307686971611705343185628915297088168212241673557524133440598703566086391807889021747508074463832403114268699008903063204601241196664347465119425729731583015579246286031952916825772349246786232977743702542345773858856027274533929121974697824359735585740316657593959835950458956480049184541840476897712896537715456506561915951886820171282827377454119034523237366322511416930787592179622492257313325645542080373303082771105420919210269743648344230064417813989179869387961975286048270138814054220036107405828422383955019855966640065473348978951465699608911748959693010737387737251504481938300793957782989289331820219232110219645077159227856532486389049654963818252458748293802817938490439819263211902249748012838102522734285280804510910978432503291746989046334630152633244545668121419989493482449394375562244650919992824235312335711033804663641045823751376639468374879859325299456224447779696971543795726715538244775140410732308549318703477504038917973877376372446369230303658132764848015830515153874773962858794647019887601127258675609484418939653720111770553801847074324353613904283787719781233528352360946527313748524939960520702045422585214605567547791366042976106854834195281266482054175224204545254787458713371889993078725256984938995985814223741304662687472993625749214458576548422508473712589857036650584830412907125119173461486485754040000438567427836174017753031184200309082126247398986316685428704869452504594002588870548927525452810447742133908641545308030185513523620761022654176134340365238374984260401027471845833255633942120996653026608260948177175879710634871365546073127692482832202323775488546437688833977504409598022694907284682084219934859857077823346744235015425190743048416200546854795821632033671892601028140233898395632691769788274735566901264645263687663888726035544436846690215368248157256634621453192630834942871964078137195199818652591269198286753136555552871944374562216937624516161902086772105968361447537736551576131539526441457760586355722159998814576587658216510512998345827165046919844054236902769078989434833721670979454317658910694456103212724030091992322080799234414898029470811804969181457410847646710083982165827489138216638225770503711803802260507925799555441881763133428374697792508639734018751695883668347710833826158744749872591845720457301057350831469806462773511564827426721258061549286126114016258545517214112590522839967074496400805881107389388096849226725152558530678182735337368097041842717091100756581354786473675852289241347471731773657660449911022849757875225011363553610274600704611520582337301776789315778535985602028315265774295995253270029788538709972033793466284520082478076636148474020243300435825734394655031249686400399147069901031769917706478292882910607842456399217304332496347562795513023057664975959900526679324146295946145110289220748641265635125806971112213494647703047821723108654522167265506141409755495044831071074140604028435286922008600754459561106401555148120469082882814930966286325059922216905163051965139347214487700228900055706873698326503939101863591190282804741144483758515807374934707018501002512684172171208681572535093803353098842574580372596578225845721471578995932118301271857503177509878642112792741581274859093719142425536933253929014132290310798493802141578751144321258918469737044002268697299112532831667901779478400941957425716117888686232840816985192734411412313120268901236921085397801777877090448787775697060357128828880911328631792367647893590573135234226857500941892150824277628563296185383203848006237793405583485531578472824115689465457133486953696572803513509336212184603619528148183416955526267047765810517219670503049491320764410574147609891517089532564221915582698259649339638999892036559490385988852589520045719384326285055624161862161544058482100040231684786984378891922386961549352113430733665570903092601347739139091290571813711603263174102565639575163586600613285334647239850855137295738196703124048900417535748941409854633724533916203043971182814057843393980413363951561411297510634388684424156832257697260942243246987119319106351043488417243057458514658544970372061041930863320132970913402742016899371399153977882115231024482085318761385650131215592623179391485647212598445491473278632246416800579589349781960706720383990240984340930396969042772337682178660705679860059105799112917063427610399530787096682761830675616672408323998760532083276692798572022835280344447916862826522905013674784153107889808768240549137584127806431576408223859922846744231690902069653321378227264542726906862273022073374417172703842481275549563478415674051765731746283852173155753107931338261098772906594073563698296088777999308202780344114127154490502199943503301862999799524996662646700183782692950862461766921685380043658914421196573510114041351960176895513096603666406210274071615098222696366602632499816710548664442972673018510956518271764484300186402995232357781583897647831217152100382411351549423951257189820728974944753626743560312065291265987792326394347523689556927370642312971857998580525515472383979068020111372991651038169413673607046267393714095471661987010017091524463393308474420682061796468422399742839671187778331813176680641286192672682331640820474966333678919748952415677539511699651901262360170421427671147290326595266054072851667866321360485656979262225876302326134292336343129801192593480056943134404614129790642900160326381859477342620718641980992443175406638054170940021984431375993575901461612698354188830484335155140447241915376040085609189563888838497779909451561925516287722131599093134154948220652328840224192046770675856873826608219553955666409205738609963439054738457671320679691707370395117136427944101354626909053735285675929651938531208893828450429589953296397651857181931993440577069325592909357934838930662142708440927637266546605897864936585149818526784126605505207686572441205593676613200850011906217852459380045078474626734054130811264586453271458573865424205745182562886389605790812256896451016303243604080254009630948023230857614197835424093949499917154733230166321626372267311113938179026706669829991024052858107929915370821975997742158917918483600987043490480753662469562865715383762605337404163988922414972721232158229074085135999393896142389131823620855810836999058131154632112114171647521040640721021038823573254341999582397761118790324842627761826219193874987078538014791337298725718310116034698508586394259270393034813820163409098121155141085777227809136404678797239828587293822475597875729433115550903808619196880837392509330747530752883127216360868994484287507697117250032830708388858648078853465471638183733764513690593848662557993035116854150946071106921607733481806735012938383184659886754621153203356369742157864647885767068456233805198736802918300342698966617150003392848413272558581379908038226032600878149441632461141092166149940296997465458902546261954295041276521109169804527566407368569934342586554455178383979682315095868996455301098379899358024333698936230959049379895033102051771983498880627586030646424658980567241115120021985026265282372178674691482130693802777832479430504757025314618673761761260178399936511939107117650032403150997708242480662398085302175264756349578151280169459340172412797726679164269279646527968699381474038553891427266783189897003924694627641053662838915004677765739373023604024734850162336797709105080394330839978414419694441154441078212819163908079788510065122145479438004312668766287250721954328639921342731493629187399893528837245323618560806535631981444302630544945805043092046510795386347696666416876300776980767761817618027402342759798313453643951114841047363157407967099326026405709758691434248677427204917286272376290674287890831362748103241723060229250460921565811313116763697973510107424732176864207325661302336118806293131873382741206311135641470393519338341511825696190593453780014051832642470702751102040000014710235739597383143461959649213888043281766284216371769937551330265383016057064927782071144372702686573457683883668964260247340411416094181524397168234981803584304659466926872213041135756029018876071757600165094079632413641609264735543549885802151396793307583062004684129513248045921998808414358791446360945372583584482270152707706258328143549672978020407655257321971263963925232782121985696790095735476227785995662945431351591844919552703879444366611392037421550923032860857235068721157727442243350589197801427450380609664971086899552789353003382333738432411262859008412368241040891776000000950073070415646019509957376261759043587828125457023571783551846754843296437664330977872122603096862214623573357415211661955508618062765979006154020863722564971441577728959388874063105245002322194295119282873376947920498899454734494805762538954859408844793678700577734715992079509666349231257303036816481092519090830309417645674586126542726409382739268964095418327668733355370729889691287450801513330462003464278528902270356348287302291953095261415623039629846115092005776315245229943879928013947062220820658726579517370175071684074724838158947407564577838813323322593402781975285453769292742556408726214962954435050264429582341550173587110770553349263651130875933726161534866435933295400164861190401588974582200307956425060841122062267107666951807969382674287076697956185509028956680578624698132138313880530812808370204873674016380584225588123082333368474089224782745090160414101827640324602522255658562577483032888854291406207393171166279738722783715109322792875333190846530753984711919960508353443234362867927782360855316170335547157277406135247129217864306706783213059033873422847452337213174634100765808836512785425070984818706511763960463423883464077237723087036422113880417231515912905428141443684113237358869672914799744379975898640905846625287381039048716215469077173914743663174155379032733329767065406043601616580944908378130954840774435454618679128640609282324331086380387496949548989573433173840687553180301047697705270787232616753867572372781915029270066512717974193348575820209547526653361542473890762643644394545968379584775460588638956863400753932144698498020785019563763281086065245519697148071915934628380355708785887167504604867380581573748292037491053275047243970743111298101336069380813209883672191407001943334536058111007645880202908157901155624985767127622851863527957699033129615397586064590932519918023592038630046032232446512981204072108051649176689868550271492480311923397961179898129906887573163986486606105834250677329095019022912022857727528645510183942084408456739668960799903334906800549191439344272518521670610945210620769558483132849090422059832563196646330049843417398390089542394044339789554670343922256498247850415375566958359433712107719905560181352682180553560052985049734558761792299312640028774697394946294741285090323776735040945081751831089901488807120039438285707414640299842203582176135004051793528028014452576310720533241507104233898419031083047647057818649466605468127737312981425952589874415069840238210851326018988040764246971051029633844092763178588461482513264145885175830194874503128686227215470448511244338914241038203135064060064085588695648365597549412697196548620705908514137304803903489675310393968898457174845326752367852611649272152119180432797485418548599122234945584392860599843872787382352721805339062449711579324593683692318961736251656662547440884942883845988323775571955855236119162118322147430283514521342362142377557595362732311318815581983140435044265830458829133194483839670321317286011892910645289413005594894116403899828580602140036858730660993978198565310740042372111419678610508240735924214635263208718002996916114477991867319697990226450129217841418663142990365015338805527507227154082177873491425624131698275329717615231150059349087141754702396560773767927966555309313385763991187647309761602236028165372390549665086429079761450702241852308655168102475912071121509060561362190653708340415637356176445812344111625881672155764225019809303135427832147676279441556940314282031230413936471446145606981087877902852905831186869305806886347499604668576957454064115823563155433819186540484729411680252984823835584479247456390759730464114124361619148738688327413515610728041269342533330010262998904946863869508210377116505090578479609527142095496470287849260236324582867196011276260315501645843544577402349655141659568845905752686784751874383025972216456765005184313321691376480038962261770013692089755943021575860396749176378750145154775816431188227122936214402900908396442417573992529759194426579347622512573036748511976352963132410564326764120042353131201012117566735812982746252440309110902865031283116159005279136656226299854962271484999331653899014156315082757911189156248761151727252432726904610574332525570871710300162272820779355824961576333942089457129126231538413054967094694830118142332891276392239026513786950325355030375830341965026690194196129951055118140497498754717033567185165193782384166834732742689683837999665832659949016653814983561241322407085781819271550907120520507368864307497445944037068058184381205738382690167094957172205489167999431332534737171746983350837601095026900463528337635987744528338242369563856446560259732228029722829632780309621066203959951463422687117573310240958952683454756917162004835080355603299837078753723325821842148210374642079120034036606023438031016601194081294531313159282141731331286744072273204971861023039962128026328518957620370171423291219744016307715396297761743053232365938164296794903229148435449032760761098033311292133513347392685272322852889844952181307251080591402866012560211656471587391685631063280515307482643223724792567862195557182423656472513969940094483699875641868489769327774242969196300268965266243053598213133226539789141602966692554911818233212362712118727607589342926600490944694513496916247477990675867556461892861337493940915005795780815360063034275004198446207492134667867302812582672576036960348660045284559702236694854811510952444280554259906389425209582888256033330680051993339702268278118809791872539827643357721600513873400627434231552787229724853527140688085273410140859438690337541765351831192344739840549917939328615864131035634215178085374665201532987293316997753075412560729252663486830636215029883787220342557327103841158510005542307423560987945177393153670050503149681606529396439861365322004837312753307407779376582355127521265858991012922587701630139694017767122505027643206339387236834344274701592842650426588668502500634235585142794302376745139623759292097343390313206749929990815241228983975011606925013650866125341726885016494282168228243037394651751277945316139436108112858172026707928201928601553735804839505236718686914676248671049002432670195502402926862701295801612107551072348882034346924626693110018794881341315243263433759112699392747058027677608597458954475260035622329102188188836742230509779907823240412327098511042271056870339879143822596004708489400784463480402143216394981205060842398637038984994789103681655253136202003580139788204966659605096073678427368051401369867786692076577808824255757736072704875747840164315355110845836299402076582789056323925851256809566941609207429325148283574131677178566457170373419740692575256977647933818902837215678753593946249864313773927943813063253607251551755098412923936279282290059123887255299281261408772068309592853203371186713176318535617599953840361967367243062533355062483816279564244727888912665674490016072071631190401157507535770681962891522061001034368362808990668846482776521326994378098452437322082531798193171766788203148502583261428257934317156406843949744504168661160369790937973005619426055983562097005380959059470065948234173801823608848165897441655325338272443583876081464240277451145377763827869272756907438252354774910307290029042294875722642450780149352289099164828996091187637997178040040954823254459564777905333775876298724671249736720494056156184019125420276741492016060530351808445655212318716018005679213009427303811651711114149770659390355698643194658426859831651824478257924549621399836220004068112075823235345528148854260445086740893622269956783258948233834004268532347360742507088753629598011749879862616617480298246408076145020594173814538440822511211112614338703565256439439032948503122422234110477831390678727296675776969009035867237118012244311910774082478069069219965317565924584825025337773562716284066573255528567561418909762115726086662052343551886368197691568726713859060159973836077941156034024101411017150444318359336933129338767098796530667189358650688521455881652892045633272266187916762338418166869325691514381971088847698910295098661256840720381250310990282668061065615981427790126276270848698076367562400845789728456208860115918513297825328512597463198337399415537844012074170399970055393812835224238122283111780100991307694636486646864947427246697774636179247015373748637144781107454345717376222200431209645578820066530049938992560584056613230852325216824059894851104106294444127657351177835194567067442617503720361370715696788950717120986191686733177780424854304925667826301468183247471381798308370885635180678696140240756965532022700106687795269561926216291468709540905185455980253540287833568237349859235528540487127242776638661308337230848846771603362504510255942983415396913533590767010901870317089110746641625427573104724046095543691622389147745868203497875140748294673379722093275146082231007199614920954960225308191748937996838980556853080167204572867098848333224701131028439355956287317805454834024120519341857810017406193899792400275541758213608632802420254754781849087204902678967174269329542645701179255191573567979295966183243688975148480444082954373309454969317734910484828513263730969858183421376090201906600321143203982162812326528568358365933303443227968042132069930361998889159188234909251383929022579445537999335049939534066767520563585461733867584703459871032435372795489084851053060872680862580015646477364767577497548414961638873543261805618796948529734502816021916051416103455803127736460701212318712123571032621123662363123491508975939485233522117158056634641717392447076418334817649371109559255478188148059941947191304538113986495080018991514589819780451287300067713034410657746099901019732096347276014732135643176200109437121087687757813363836317689795994293757685908783938926733987440535511291421620780768212930026591231827433298908858635015708413427648885550381566437288938923364910407585332871009269925045468908709179006621766897901253729279735233304959066676629979715570845038784564516459436905208467055704030961081019757386497129718684631958369230234147966688766533547333742912754572587863941965290482848325118964329116301938168143525503127962888797958841274917317858676017731625370503131168030262377687154738337069168850108425234433214519155090654414343346044464488945617717460152513644302376793795181023692556466309210989604510400508358539977352300541814015862869275379546107306816776824842305406900088809542555876129179702793536162541579039779522621174746034491115092432096478986975286405602455399004282610263104064843893766423143041564853974584350877782274912593179369309369679276793997745789720021956518090128977978559509724334748054280518604651422738777351577493739113736454835134440675078883045359432345060108591345658313291074555092538526067405086102872067968396886442615499276308761400297785231041287471775352512895354119960325583715473934640924840142751782196573953468064126447659908351704853777507013485736962566910299600487328248928279548904856753217248875103495063582174178894146867548288759778305028963503801916217901682668089429022319472025122336269286410181143796294705578969515310910442384302895492077610035965149783043822074809895581738927214456937438803884778063916777229235278411439407620968626754173307542189844578953552945036679750358752765999776115616812656656051381909884884983128751367633447869529847710256691860135449719634930167507048751404866640063521825149797832002275728982196596745364513651281289894394634974390999526962502585627698920805771148474068855459317915239932327429016512564929374429507769316235242087789868895949538157629788717373506569974810633293263631645028900365625120656128585919739991040997684957567916575733225418774608302934866059395960691468769858537039779291023856127360714842409050898985090456084240405699482002431210685726542103372797312541997010205498710292591895949746024082275283971188132183615886485985716554950968430738413380707131322328705969847274179078555985661404700352739590839349644722817051524836235837169102154061311021363462808858606382069729042299875354305358578583876947850054666924480371927538674172866560385326758121371989279564944542999410300239177831863400108062722399177748411350953042631867817384094759396972038743549558272711870310591675029673674249032635952305010697606924338853114765311755462374892901645032239248832023246221090200727481963042047272208288541141199097473770580880250755823024157734230791328212297833293931810892556905330935903681223890298136198936508430274485836901214723299202201813262666809969229685763398342528499860880497841871892909849907746444950097505127391215632866777409671874917665681308173175224644033620836060006710227479980159478201123870170157992357761711584800782950880600844555392966868719026324967013037896836903557869893130555722234924548356782441267233479229990813656223284511097574598703982826133581722211268374152497698573294583437984611998872860317789651446051057132923700960664220271937481196557476691723211170647847086834998523415895476768119410233948219065968399044949688983487273675884728424519612220485708829727876397757398299378581830324508478396127053322846555685912074376700435502715936201586180769463256562310909014948839085901990778991926882967682415872969100078191900457870685112756368045515484783334221581590077636095848558926405461901373662361980851150677810990634109448303494242068873673502185183650445719556923493155381279024568987012557833210072441980502202025900068270295854386745631184778454418255807597476355413170572660876779409383126098244401072706085067387644130174798736398449565906908740328721759881880961132125622277752827833526448716067201612026841022328136451361969756505822775911044806313336992976569531125138332186165554541099145319925003792421437827242567815548809645048374676086735162703711924295873401990602281862785352300729317551295965846062523712214805356883592844284791064264819823890536849571208135000356769842532921070085408365101188813916484417397176139436620474733997981376819455551886537920978839527589008920128210866538623350434374522042782988925489961499540518843445034586926412342747687026293551121826948432003599967009096516572905905497793460912609609041702217764294054977505500500437081400007503990665600520939845226020910707197667723401692433315587996622743269135079722094687019175574974552855243358865397049488220215074536373579598227191813226989002726837312828800540492874632995677535027541050115931833291236734426980624359632726930237060707909195975031472928436567212383632926925229958087204739646159347789193772160157441677467296840318082684632951373539755557750667555997560264734235281323581678784459179088488904917727821918121148468353255423295472682059979464578836949857414232448305053780461039742964064508283156587887322923607655512281406541169918033680325023143257593568675994513963241580160278207432097714142850184871695659379863633057498944954450362870112526918303511472239227173076621674938892627608524372983937645014663029303253523882738527364865952353884307991494941211218201563177614421789670104074005432574006214991687785784847326459832143983414135905563585869643096909694106249942229062828959012001002487768270272693896061223538566917429492704172886063700301589889710832277683534859083181286562065038323569392881690615055764849435697172140372533554688161964501842989418355422086132789558848151547749024627636715413200023404572780184079312756563534296601657736090114442517292176258768746789553262687867475165590017850007788046837417361514435907813553786240411084633082424850517442624475149919248697673076950669262764929016473588437523131610432406128605551898631948501633794108142827961943326818924370128613425910661795251160607823877364422871955993276071313748162645554855162887073804182055782261358493932791170334564120942333309775423567919775255998377375671603340337509479668821928613137386331192817513519140084876558068054326525190298126039910434277889528538007987821779982378303972794339437591608674859749514060455232650161370520623096752626867411254744648908273881145743733462588494573204936748709943100687305486975980996262960981680663811732550443361358659477085551837020302221392331586772890186540188176004852882777073399198947082479811130856682642024644433626208520492277079269335770637649389368009412776011205406328933223153380838839536002932975115882914693698206947207986871133656349762148247925331246314660230198443309374569358869431545817917047235765480521230601153660954234947278318067590528370661955549248577609615873734807399073779196641822961281509427271148050741067012661650014407114110947334852933364723656907695406035550263842628297451368919380078513647945331905552454211276178482113373590565292459560835379193846559273752590046710255387119138896279212708821615045068302789563852884559323986350153303332358637052377103972646834628681331570626016931873987711716038247912797058860034196681622221093207139161670368167833437886389877734935923731824205678053911004163663601681756432013546271605453331855084198124474198421769385628535430670928562450513946175777929808421129570098130822976707073493868318043308786895865309207603016599402543742024274928161772508619293972646532578902652183574523033716350179712314181498201300251447474836771208443522323467294385588177170522155959949264700725841726123943439278649595649853711173479903815518837939224644992504181137811065337599405380296538503977289113408496845206750451273417540710674061523062313016859288519739702120860020132079890289306438747451147266344037895508108676479094367742184229031288482011352023827358248587373101879604574123172969933860361601750743234968417055390906584570106407768257919564086868512473023376267650837411711475829593559407485772641453921941764813460847937322197410109311189262702006706975032846945972180051942528192490667670633993274593108938732575973477930845188613832102926059663277060360943027717074419332708281355964937343167429302851182629257048309227451508194587724182579732541342433420625920148591182740224136008643484964316452411466366489054038701483614394909772574849704257494441704556550464617879396406228487434877796866717880223585551029279465160432264333177945048862703765804754084315857039804546905146928146865397558789366925440571109831556856823308446689604386799435971399030796055599981721091627003887332060631277495474852407788915099755504595030952803070796759913852747014946587333392917402539117197231490935696932273412500184274467596822707206096343943390859183123038830556279252713545203512461937646141440596702542647217966664886431493251109684302401769177821217541653750064340330418352149179064716827793001271238797067078887418002504137686837341971560472714121062292133207484764765677653003679761446453131936965526602597592665798223148281688001763117177969120342520712397767466620211116328039420425444323951130158169909478307913335417142196152116252471979354392036412441231664294370790522030758150433202246299272099180133417006007816706288169342653002986052710039889030523928293514129855970255401359239924764000324462886222944925179187664108178471107747493522684257282220708522580324436368124768323879479432144168940693215307346988412887559894451669018348970149087840601599839040617499028958646246968019171387165710962359564778046108436973988654915818885292820841556476679318499894983865910309566234543758265116802437250338295524563863667745423690856313137534667311938643610098831461526195686093574079903164350527776427887874017208834273458863108799765159326053620958311015935045219883158798270743397736546670699658565774639050841907978988695827575277674685252140873426391722037245283901528743035369093559679513527529144888685536853219471716908842678699352166122908438320154853592796426611870889268081718107826681133910995139396961477881501281993695832276307436208013399241074073268600119968377511937416112261118162780041848759714302801609092941545620585168783962223363798412214362358293277193570581254738763626358607967451614100453576553425606156650336562744236177108897577536660606052058796321928600868841223556383157287687354121720103409323699006085618499506602877256636242502020012272332020902713374009104068065186270334073788108283709373221816234383874798124653909618232350656739052732728182032309457455541305010782494065359242541757027609142715138785175540592007959582844667786000120093068649576375951019174172259639106593696582932551125424836375440798597740414585362227696741547098931562502079900193042655547275607305484996936228250584612020535960569601444352595625258755912571985142551034454113256049570443499976122055654422302475092103475300245770648890096122461651763138415735113949881986337800274657248225361515167066408365231311147473374466771577194306878422501643300953347856559231997582842493008653278717815693977410571531023566466332053399624041782177876547709227163906492386509588333823152271817468109049096485689848729880897058652300080350819381343327126985009858825166532261330937264550009604201892577853977248924916532193598050553724518359975724341346881311153596238809903052438407002438714634040659148637034376137456629676170315284730282863309777466353539175069802641702998407128429267116982380892603712221053981287876481060201131499252040017766095374473907638923578760770834710353463470932513761869069787857285983592116378836313250052097281240358280402135441434601333603534073104741273111021030130851918001913435422023060809654389274916301593344976528323361932388976483639651620144148990054443096774048107677228751224889905276761971849245861718830983457209496088288410364387524483359571082440256140497442743127284752416322711980116381151936012143442078934704181358277595497357582893682399600511713615093992930695526421169005546686639624377213418179395867338805800459801523411197874343862954139337604584050088861757983133430111612266578655434690913347655301155421106589409188775263437552443173109718308783939928397135455842923384320004946980770617127775122969956130659722242059355911439541555573443241945852978688938753319577308942334939896400382695651299468846987965253261871704243598853683822748693846896250176985377353393071370827341025703503271013607988995319714484358739768732727072413421841312466442642299871314166458675491001135097146784008140488022356890758528996193865876474573668002628253079814792425503041953302599878181128727038540576595225119550678241025020655108314745110382455853047423120057511509251379577910740239030091337655797343449139966766083713179242725015410946551423407410971673713851773599624939505745342004851712470013060036409659693161587482028787903989156498730872689964451685833138769508960488141135718298062665475714152104658900191679588215929129170216481395041904493413263986168108697142653944369049645602373775573248172643230255359116829660788013855121054663763378282597008595288998351082677223467503939014188417554989242005780034349254245604915256469339792219047551252756955860399222040163078135638724135172923535865808020046017683158847932345194514535857724255349134915932706886449938776849502133143584750721676109974188686996344978020575473793021440530777461456939266057009632594837553911728488290122057496729862198843245586232734456199429629558599724696211684699554018755083717955554157142381816217559990241600940091165839643511067380570579591138885065144763562094104392862195952316998250737126053707534745110442066464213251185554835632617245042904618517399497599778294537836309007041584782549209607282919900390298170197110459161159017547619483448552946443686940825245529395256801926446781045501785913728572042722742839210790381998973882089098969582939991822954393749279671892949547154595525736273354985214524833330520355086265482899836791294280815668657537221187559491721246731302486350267780025217634755003830555380803419887463310353309143991370542278112818431735623815966956062811413840991990428005264713777122354120043192703443050643009406832080142940664943666263156305338008941274600444763215169810837143447238285854827797541648692312695460942660669558775665744402270082370821031527337709454676791986175650328222979946878233817612132785904060944796664075362422846225109797215291383803844640841777894509536044283028819359012892004219508173608608356510268607493393663165895078643037713999628161727512046733927938234453461659312949122539504818851802638427567755781171381673060425025866082133865242789545249305387320239512859455135437983695294031084922043782968693092786301972086777166781164851093076975220366296576381632374961050521416564911989885266003738578543948681195326744015846339733800272870623134028246653977033186050681392653812512020426613212509245505154927298602401866812119361065935180356349805843732447275538098669704323530131526653840416822420069608194758681123472497036782228618728600832486017335091865559523361151100721352832657203181630805195844063147634751871377761944125315814621956955342177785430870631998828868641927216761344715329340561926089440637236831073111505557783989076548373138016167721292756590246208374975008316481624918424136892660917087973718643089611814009546129910725913678641352142563727964889096120580473796309251396566808040416388535670863415279174206833328522131950191981491493026827393686810835459264261773314067335463135434695382871792725579452210123200761950551738139456917894067415363169058269586002219826649213453202220119757698251234137161341121789229888697352106889082794970818984151520405972716228425582047889391196265654925874314290044333126169437852654745674787424755008862511465859521123484465063046125952403392869076968461107315511186716998261513103243452865863339340037598068831763189229399287762060920633852484457691353476277306285599821055982790817420024611381391405402459452815469066309041004811152847070164388999671039020762748619699194414975651769388856070859860126176608203205762032046619598824057120864246233896229472616438120064120096985109540027208527686005855432560137242280670347779926779160958294530852518569735935957068913080322830937579195365902659862127074201731001353651126221555218929714147234797966716055367000306573339561414873083077446191281883374462225894873204281905727050347098292710581319586217277205073564078763377166154443414285185885509044414310647898573821310068407723164969544614323395358140224275473547055473754021010995479357386042523135493100715984657077475631130890477940817303240580311669163799496845759765638747595954882324986672371104804088272819353904455315279816430803468421809337722311161575222617253746509389156026565677078376901264795640794880467231426389058949023757814243337033863228373093066264265049204531925030617047654664765773010496720961135789031308741720638080946672857113498295253883073334959823391003263586174885509364529527939186101844238732481184316395605194492010931845815975315456692751375905627947327278824107907932638067403315000156501135974893779756351792027780401378565746603182459795526832658922452304055056270474100790432020982411683262353415659173494296957794400438073835819016554700728113478419555006591590016273702267232249774432125186222012864151765486304067255106866403494926064058244526914773464292498062108853953319388756165917090291224703325358494471900078104847408204125316271760371102655037255802277902049204047217942588288865181839697871859158902711897107762763806556204589454758069388405712283211129776570015626756694888162128364571584464739151078932886822699822691727505144856617590386012906683221487572688114005701405998624340191361694481850414947961213293477156797047280802522574344967774569851309923937390021590619756091461530986302805282698481937281428558288206567835679786754050253881768551585896472948709130428298791732951270066803200990129795367644598168789983562443708455174791739230790939032183496778722587066217784333095605252089888030446290865111827488686384746233570045421113378672257235897890971416606415398617681005785815302808293494380489681315852230842499923049632857761989202772345197085665594774902660167203739866112227409907709878451068847526221279692731464216426138784512808078321022236146213035631849627253571751474663801776063437590955162062193052331960012849231043934580795155026170678314163893242967359090681213700906618487285310624211318530864162568229212993266321262604593612675867908573034957282684889836228506397163232248277708387324904663961275755120036129918618082483608972442759001156139011605414832955534544217218643291975336452425854424372752598304947977159910851698237580925963811685312189392227952788149131094876534150469477567931833011553796683661793097604121383540471001176629449511527903131792955380948259775028368781671191524610823990663950897041449660464406214925195488340468257754274345930503802740086816921766065145732286219051910528323610913861284336011303847361062603915460552612329412219658618982815027629179609205359895395481317607029089899613601652871086252814082426744619544790486793940510851054342039790964821461306661421921020189503651294330318602164912853070585949652934507335762082368535022100110658808373902329241015904768645716893717042104332209524509060470841556025282969070863809665453055178097148898804832252986221697369688929859990695098483171502199855163545746011537244383301015698095502334446749932358928710372942969671194124837103973218920920912550420995292286745537254966034242543947622389265635504586312540883161445754013286606484866468079582095510292532880272775372451120312315307768975602882412934043409548392653111426811532747565930686498357722650681799006710547270676109236327010692100466303404496788384928676477583756815895140908910020677273938075613869829229345488094068166361067842342436278978734932973518673685283258730584825557846908640300849773698625387513221319130413518487984539183293060233619176614273868087822116182501399315843902895539254049614667520205926463375061847827299775336224259517694404640333116376552751869253287565861615718150534066000278950838629390131112741500091356259277806149378897150886603406289669329908360401136324094371410636490047693877990165883019018990615385510482965965709044685125251231050116469849443198363293698016704887569935977822638840930204136160264816064007526352571921405825608130085579224909741589406801844701132033405002721368075755502918180929378603059776528074174254729695683612536304073691488931025193614675294191136244797993181228038053232928236372906461507835544461230961544089806553753457771741738862915966837288753540627797820372563139482934973525737349579574900421687244106083502908885507349936606399709115847034665948781404931374491992034023664360051375384201255917643333014374538102046448001931175631019326233640938428731608071326448660007170298048199114009921400245923475378126458625554571377323773824676066219917953545859623526987577265498664194924174279088583024694465244026373792413043996761853552360812449663361872037223584361547010413899600707097909898342180162596466052894809060758267606161918185061672664293605678712157844067097115568741820420188371742533633067161395574004113458319976197968217351311413400189939518973334121198512706217515821589134912318390622831926349374853176775455470368719960418186753128316940452384899283016092103883034140149708896423738710224976910861554221121152840319596811575583650937928781869068449866061073649810437467593139329806478073127460611541682810292160507513872044180317130907162686634130202379666191309582614458594001143578277694049938376111217009167107223561287795022799553225982064358661427004490592336226751616004650179897350448864382742093889693968395900279468343432931106267345934628617646752464533752928197176029511749752384151012867185421191859646796978486656432371908394384154371068465715607677552278296090347437168172445682289582570346591491138120458829829192937848679288583442433607938246760717279145793241696989829804715340513383430995639848761691904509070637518751204006789026042268074955078791211185428662339711239153922289911666906922782238391656689072561608147459784902643435077213259906662945759107440114598973954643874762340824666859452321315015472599250390950476284513004552991959636500573052809533421455076201776045246993311213099702220529237255372542472132984096462978498752957781245608691959131108610280734475114757732057950333508949363256019039594702682348891043129284301158395375182176196656537999626154184378630382397938222020998548136811419011218219535211698864922434297181361173966777583004249521137055149144862689296370826059054833573011224783402518111927252623147945366322957724305151194220410963099392385559186239404353404454850852876954422177400849662516626339704164975032952788727024413805617215385378314457236279849379708163390901756288028832863384793612788996129916748941118857272425776423605148820710501084019850152878446271009472628338075382731734185062891696546027599377744628428288042396257208105935084138981255240080746530781215865028738164525007345117726578007158003555703963027179714688785511537151646805731944920247660255375264376012725084044260509155098725802602716254319448454455701907476318717388549634515590302120384762416688446192971917086525501924736174320979989308175872365207124886995735088124080328325307499898625816398503334244648538155309926503253046760749698814041467202080326072426509343727649150788939072630448637834753835110449360952968163134482146738827863142956804076219781475599446454662234278819961814090091794836260302295355976694320822337212179424230689186015945461769275283238501616967919230816880057643795437046776088877182089954764525953823272076815120213644833775589983620863851648628828591066968580041683702478400731166627631999366373911662544691506399782040347063390388651089476491433679674551894755642166244831109887033709260736908851258308097041237265481078136347834338530484307926481628414975336672000686706064461384850787323452836573768090495109203291855285749394341845214862657889471301991610354540053032688898299048570258353123461905708694902291074406040534972738239238157774785873042366313160175457693833903170823432073355660685018138680824673328962590116136381711884339196816097756673102023781212775210472893658234396006105528276760911422099990540767372237827254367172989002795245826264172235370222897266332180075867889364451399743178187477716546345871400911799402722568138919190237536304577007745140389862803723503087297052429893692753867444109799519109200900279152227221168631724312450770343785111650005299401381660398828646730943034648866668563600484136073335624221650433291064427530572297246409890907049077102715238837277178518144922789432992225598676879993168955218465642332536682401566768910181597363543212932567218003226272737677050474629995413174450504779311221970500780409775234896343137876893562709647176971402546018532712137680036975252985702896404587145295368212292157442929356415163624166855817815781031398483271243795190148195071965186958330002225540546231458860721998262129941023712831093098753082911109467048152679013250553567204108995685147179094549276955488426538503220146268309055868996112971943372907039295523155556905342645229934525399538463678917351058976135996397010617365963972187381409088372435193441045051130853328035168686489079457590387272726988380909572214017356064036682790258736946374645748126876722210209625122511830146577428012821772162714790604690162654194783356059116222146005855373580750972049709733895781819578101496886341366691382070063138355541690520210615803363643239186633788058268035425898238863569242870320904947031498147072751157525568649651400666036326732322661634740785664444119450026641615452978325544615490394354486561995484428164075558735327038421385082142338278248809092612969238075216655930217823855326039813892047998093037964797738815545280109819856952934712113925552495761209186464172266551127966307343100313508174122195672454676846694749470112784736497906095518518551419517849375612592673674569416260191387035764812418797659980776099675836641943414165586854321815479834407700320591126054662531589925950406237005925009978641589635951244344767559756845972670198401249865439782239227984539041901211521935767077447281168172538460675977332103855376869322488183661181164882010030847880090718585274851975138090589646438822638238055929481121809482785346705180143620272492744282349361270657887998952982611594843568408847097968541881182769007388872591421013463691285611232692455245019989132856133542429524773479772250277899795334705801572766842933515856839596230680661747995209162447063346614021853584742251757931132482636358484204576312452388403412043903282423211930144145257555368029978814024211971223026526542854749858257031831181467200266000563492948481712026886902489373225898143881599307714244786204287344944727963306693147500442496045659321934586674480750801512519099877585840459023960568781325838169875708492569359969560210545099860832887885744229017144844208036749065513527433060858199686870976901437991455613367786535270949713683912602622435880426858781714436736655705573670906374886881814301671253217389536211356966112156056858369737013638359081296961106800121029374775540223664315243224407718056415892483312114030905035547430752798842835306599423393798009113079833200841038869346097502317857628473040872666856915010090839966563061893299366857903745702778442071294201722936694048712317797516330466749812271048125638127638379466338883973932209164805960803290330133401153624839993812919772573567251844537961920594431189794669698522565132663370850267029274179510205415019642152501009418627204989243714742657589133992216239090549599050202993357357150984206138666347155505104733263415393080462876787292687599560060894566094039973648928524798166758399468850345130024842650671533396532644711709600776565957068742414824524699305766546574532488881963157086246216378488938457170041516887813544691584914857258212325395314911288268879814720761315599673042551748349947680592664231302823520907487496033821599424288070684015353413437400366282540266712102028474211889621024252058886673550766817040295189302447166716335434397952479512778508352342360060513582297612268654870768154479795825153613465681450895320298516460374860988012329047107239091599690931977018544480383917563256075325744791804348228295357942459607745949520599588439418080489038796821179694113838775742324444997567174786754815526845507885570196817315923867612510068642486821116096896912151405725571199227702386190178579244282374216000808839151839193568454296078363526098055172066480313187205162037708818078836431344623212751552781822839536235776890268763001936543227382255078758286879524460338610255564934268224051053598038462547349378279030827633252337282382480698345279868725766010410511645977603941705526629445355101082341499115569605959370871996032666548332130499593491254543485715791100210092467874040081575086688434160094183880763364316733096785543887924584265454711250822898000698432049768409001334244133640490398842838349097322493351483457323876007936103102150326244918994667668090326763965014786801238552980282942963535730849876331229734976712203294814446761651646137095441249398640429495101512610223753134217544026556093534904893422621045247500087874949540038326628147195939754655120888048532926860167598083580382860953321864669379126148949081354319333692653468252568293091061270440569855229678654351617818577951990994035661812619068396737482201767497521905834174245035842986188406074284997737538605278622122898906081753207767605200617599541834465128411236436446829032707251277343847904213780152697890082097313542211341224029777391715811444628047090623290405829809408503856739731663733959273169869893037504819285955515943126826562347019003546025868098313414935875975299563766677389868335551902446479506102043668275723768327962906328934330930890399310635212802801478099728172926875491731022418180041813434404940853598513639094162086590419641219257064832603243615151916130402796497449112720023751339135650002787557603424436876708310969897457152736015107019196775330279298698444375108070535851005690425179813463302943430057692108514067923084580337996428489886949764142900596908491182860888174069837452885675471609825061388829502531263893614299042653002824017613834449057903431348524969390953335271629589273205871311241706519696637065350842129071522825604145304746458763505790120895771316486997072401692812166406840159191872979803158918311340447633373414326787001344083028283884223667661271607440563724396319481675583430489237743804018909383170499352502222962668913158753439913033462821396686025067797360627900930157366562493492362417008052912534306527852539789609288807198185012292356260223613709022723655418458963725957586994962926579154296795109391801505336648584156421523509458401426983249544711818504010251727112346093962247155909770758936135122626202755091573687874964192239746352843914291629486478222175082913375781047726541089004474273375617916614261261506563503089429512873480795424844646236815219277482684744024601271184225245263747533646971147358110313645571809936591479840123776591863302262233295564272063327357566875295784231490432466872625594086587427402555127666209674060992939675156624411830167302435871722861296774933046981316202644923115053983467080341195531976154419962730587276214987822251973337135269160176714619491073448087419235064154072249125795094451471491809680187589055434801999201863727136306236587509154703892944255396039261181726364483759887354212528333307572091405155256633479504898548717569093585752054813691653872699753691180824884621429108969314683908908249382621631802337180253759977356556815581593947931194776380174427047822052465486377917601726346649366678323990278122563377711721369401532839657137090608467031750913847051598259948964059907775980437390940975352664526598055813995467943665301721399373176981735622995923965094456318072303993620942900832068070655430419165008650681304086409741174878383509218178576383656728956961999520427187025211721769978369845594566578662001533650310978035911136179761623781149683991594522976850116893317209558331903082421441854420787660546181236258858640425301697172669375921978710066963984812320083102825941124342264840790122203250136457440861158654701336224378735648022230912352153221996816752688342967928808262095829170245174273050527054406370113767729404351649154568836219013244271201922506023287773186419684706512941089271511832767014909502396351237561304022886870633646356398212144478928209791122906706588516533081516360018303140999801322942243236511584552812332570959134094151972026562390827191734028998999576908142058349057514203324616714820356137088527056899760314888310008844120292792337977211497083033380401644600828566601409502832436162238998879938460303302742899385862056731733852758557026559848932281996337601635207631893687769267109631181064994709007411897648966717430427378766321673300355792697862337289798844022909978431575844401080820278239085451610476536985723765392462228350486999688741712329650861437694057146971867941054104497578530505474682665904779045070520450242919796519362841016283768844775016714173596572984670663974169869319833492252828596446224072715797842426067437939147175761965613836464046895392825529481419680555854480423394467774359949923973290255079112641381216699635090530282782448415455137600670505348720351054061607334846284035537296256194968167793331065191405451484293296159119918942827115273810734410691931799852520080177249813238764479526883116473104263589066291504623771199978494215333325806136400928970558079485424033981709705066556182309252590372870545193694535326246037998855092054034357945366867661471670762086734243743299710315639951236167101486101792968738847827214254569710338483044077549046188231257364961100026361073320397745547563284421316750605398936080996964996295098431429647119048783713775666658872952210325459230173982441392254131107468667639590521220972470868051058059078366184759789572171726622479487214790154032115094730149020745636174484921353651544296721227612344145151454552019407997171816190402411739791239706944541997779482540258168876836609992223835124350530805762274915890341294221264148069903490838740854720095807865246259009127816921152498105126010288185662241862995726675882074222345187790725654591651714420688184244201352351674456218414542864289102919355111601718660009618553340342610472145578184291333310297859006851854903719428941999401924852179062196404744524567870340400101909001180479263262202311838187119431017418888522804974181394495316901163388873583367048592788370368417600480399444942377440926859227181079378126362112122029249625084182377175159784536595077460127446931799391603304976512542366564981652130676077325928435762016347550392603815515662640117095191859686095716534610453211071919247800572418914543152832889350727483371614201342318989213352492404122338379826395131517141715065256181890603715815814108516458004480241605740365003080054013592038711684631946025817110782014565892158518582247001152883471018427116959126752819602956028723288310834976112447068127512035819434226940374280600606110058904320013036699010585602963030460383831928166425883803163069002116724279192880086186260310785675089535243475303016090718769455010958694202339023344302090094591036105517376719641790083128859048729442919161032885845564603590884191431356651482159550547006200645067049098625468701328123445129873089530779676776501145037231055823104958097533166683034930335552456051548900951968520951466567990825305380188864397141208061776618880907604038001145721409767871199794948943488499840964991135260574646810849602412589457266959062661566938627060921302301999779618904745446333083101655514605041125047788230126137028746603937111192636812368040366477262889454985605496105212424014235965794442223850867209880385957702506304593661554187469648213424019147701621532808853665324713798847844005422616511679404402907028272741129037273599882710816054527815296251102591418776728499028008522838964710470311246711688520131966423418424554099974560293383585371486870708848667335820270153083547767753744523542504104070333995887806005796004199147733685052994674972078129978451476248459401872767543100839138611587265669425799687518133972656188044145778980858558398158974973463119774551507718136640126863902006993505496571479989193955968591836397824049495763144036577467965167140608769747954906193837021707960691078174015398034586309263792935996296902639857809660212965905797209518586630789776057943707725179980625671234929167516880229372234119554333652574458653758776534724017296273450089547520312192880351732761110246329884389357785076578104171947316020205680011639598671499429818586077478126165973821982433904140228457378254138296331487340213086879805160820976447848773450587706576295615757277100033375256954798181566140657561522727793494844191405347279874501117172904341790128930672465451170737285372967751128833495168786688666034042812883251690566360462585678846801541653186326498096683834270550286091732531520137718789335450164249900415694946761540037809878186550100322343792778007862234433849726574568370249354112592285496917265956955196538889267393260654091475771300747869000604261303354749398864218902516490211259474253580415202430891980399912501144630301505534371728110158236534732282657150294811636702219948403499438761956502635212157772342829988782228528611717280322748951082262549197821430756313169114910128783926532191682794309539064942342714089057387289899711151300590958546082146934701528519524108795011367395014681220780816820157192937871389344583268307920535179576822935052840064424343939449997834445893343704231892814606020110870965682264178744299506045724481531260113356736463383427341690955635072896302822158394638180371940314730343059809618623019664738325003115877683428971922035170441405535050970820325340439193140378502483568073814574180004889992328471090076556058614529789930407013957020118936570250328782184921114113637662111086828540597451087254507777865581886398263332674308204206762043239433479561634144734885368450789793163802857090043905063704183147203651956493233887079364798374217490840015970292206715081495948649248675249432111510176519490098676330090028249152543615215313642969586784698579764952001912645516343434063926364329611322072943475390867299468833187867709568958263770812559667839651931483161854078394239015476545491859486720119229506251600861152440378106643581662988992370992259432393689892393573996372310017646835005245547268727785569340539135075871367971413647074425492441381951201665484329807641947809546401076134331304207857750761777270361469825362455866629251708495734157399407027582291396656441141545899018764868651024167806337203249802798206390822581550859881677145223475673005980806972590317674732736038333155620059790721140148287012836966178320900392581596728908617538221750028180249678921350306358975301917994460004829763087292218102537350936025794128190727369263597553231079986281579736416832318353991933550967577727374431224959414348616488587441675993748693917444957972399565865637238763376411605326581771355351225060100629994624742787532131963827513887453727864157870069630544309303807960277548291737983475726200523683351132374223748718848849612650740800696875807789705395752872723243903401066851100111383742231943117580779425103436542399533847222028983901489089861387112085339481292789835617331106542916072056431716992369729657110982790168801855754309820618740731572886468589348337858633659862901319683574221138286275926166713403747833884294131308295636985729202268602707357858413219966262994889955828371974845119553369312789575556922733248038523786802522471586674672950711614274277980028881918381454024434783689604385849680114640845492760109040409659476530117645867715202729502549835020846889055399485696746035668972186630585750836847299297826423072725358632089984201861965014816475705157897970038576799749197951803929388592699898756942735699364171697162023200578015908047694727424072300936872397699097034415097739591129178053605788407162382824094094079138503414923284556033920653086828186044967524773335269385364437291139376009588810604772372230446447585022925560884946098272381175002796059172944696887990841277121453515206229478714164340977748492199814286736478467520146748351317759030025065727204430276699428268324216914611220466615867204726023860278659992320819127781291257124153948899765812114759353253702029692732583617620780971790859019023506219113593327604914320357663743031566669228506538229358845813947058375635765927761653772814334703484127435066944685735513599414062310933250216541434873715725460953700533611924000983616783877904308740083808022495857002932749309914997571430115837557759981892529498257190626417774019975381712332740334995781501921340498749157636074624379710832235179714551772994490695657084925852246224929213104059062334622066666743502120534179014369787824645751079766003893846137550034480642965505915880420946901998963342233982180780467926616679861696762766576738677736070896973929691298650382346527568319534874861156309725805072078756943624774819246043016594217322192229604328291090416910782713543960244727516352709990820245767462228953665962738344643225896264164960987072383080703152702730800998974416347016152056378520948341706020420314566304235684871382791070340254950698905131119069839414972587275497292315187536051869128369591222026609535823340709581341686318467351938677804550501154648869413660815905767844872078968894166617432157057647530452764711960255274157906208629184265052929848478592883726568320739434688495972012465092871050560930487216382709763395950483608811044074801067592225161107204054036650899311532366321732369428455104912428829736573983240528870025121607128879023445043036454591282282977247487847983048560762943543458117158417738061709225466720663118100809070296804839639517848561975248722717899269623651316850306013700720566373703453747917215178787539338848725943064089750178281896059488862595862358364387084049210890127544705268622462456944780146332168786928090957782962452971605822916460545570015829688009150398571772945903864279649977430279267006227949650348432304006880007340960599492095126560250585377325154403039329256288675262655564158330084219496666572439689324795123327887518717504881023687353652755880217307976483120048098820357523798563110727617585786031040648127019234021648269689955348912497557865272598157856570886010448606558016955048464800449913898629184804730983023338617672893323342333705390471374215705730770536650738528789057194653409949167880349642616011061552714292156860503781061188941896637726569767748224431112459434130221109524976113554903845079997377870706203556514371196658074532467938927707022884630622050177913546737647700673030628584590293986097940151926577759606503974686273287927132377045171156287778468752945793284190747741268277039083552701466848996640489636373120940346445479491613792945672557599593687204361780852850991762057736481905348960514559303600748418637440648980553812246120754861015780731679286162482658030239908914456693891953580243382691024209077426968360487811350701123780546706949221811843527565546753750462899290573116960771366965490281214284940914145379538526651055324057652766961916181385073369069848247050509886482190959665331305020816765008573435100294144259991414454398672525051305960074390839163286349038651492031376456035364990317178523896009073955979984490975602744623061878577898893214560525065494688875621093110180518759118971152809751939765947394849391322330431907061013472289716098456262591279674918662014613113494256401717772994644662568394639979958404706688032583199148388578997731927940610627949878717965845557174481925415396871011516820098536902985767048147953568569905004662509384896555910993465110205363819429221121494058437629057909864422910051362872234889413415759789468746792110614122231810798766042710305305389310913936326193608683893901270296797274179079408339526498059523210595918563768409260423556345029913911804944042844105794251461320535369017796773234011686886998917824094596831584837022933005476993462078273081109770111783940159922764900820730382299257424923989823798874834712652902214495659685910320100939024058341189673975314766691931667681393206211153129206989611778649574919189882285151297438430565022707531012610017895854897620198847109268986944029589318463925134679982310700483427958349547909477469885724980818302396741775051678371024378767709937854757550452870192089381893887839548443270918385790793013503770164174968258106953216961840930308366030474364107702232081520533481382800181612308776937788046491113599427299714515247555088898962668445341786752996890321563767820499839573157492707458114316292182204719137383968117287725074742074783751083554732112310554305975921354108216587462743306729084960821748980510188342958922903252849714978548739368393767314328737520259607037745928310328046468645361426579395900593223713441659320659848534913432833828224026663890772045038742392175592361758300481484498122786337437988076848430108978314439269601155410630896259571754121741317831317782679519283045994748787048373521405160075057950298068251962036577625331609000905524484252911399925437229857441589064985225640461687330289043323034195088802170457356995456053546373514556988206395414456755644357990460103046887377163323877465117238679909515041143614981675714661591060863635420680607506555006196257634276343873650847058598983015072020758796357062141805731462750809148241084393949355043836008159370886414026908410926358456939483574488367437012726158594981184577298222235387305754726237042841775069658928872512866370195072870606129282952050359236984576310761209088250853404483940576278847151327430526845514489711085771451220849290420934183056801608711039542750527225354638761678173146477366751728712949176892288911891611503292950639476499721868440314397715472584693659895210971708674758712013959145342445628913160314073498439904766325531958240839382159683612190487221702732397453789995902988949531996587499920044436047210069343039993390828514518753615443958683914416284514375559394004237359357592505987898859685501677039173000440055986735314635886464152584831538835896609944701317538873588062140944717715537590386413617936063531423683017819543470788035007602218351349833590857792239767049837026363584236614255226000060070889998181354047959453209856242966605254884178949031168227056243639651367880275647208457966675106941857708609348328440788099112239112777721356044330958806894899328006891797080906195114547727800840908751927663966975140014710300292049178174887923141963877363649085444605058497287228292528560553816243527156668649097176232577323179320289792338972080199678280724693188843073585350032987334946633057425313777231712565834279184406465385103237020119066598977772378939624161443811789475282092775520758406248047508445561374459336951936055528836279221172845951201265043624911631809582893327492858967133486622011406791779820030803865365762553888360062081907445007028394678102725356917441660801670016050745266657477583953372435965158450217757708196347055952058444909331346587025285394942065469475693918893820259676436601884462298382321422969874199263066035956958468393411569399682914805655252904917530723797362780770030312083133512535286292706494388465518655040624134026137782465950615610701710439651010591563793119371944430784904718738082482904102099613044348442182144343857814418356915804325079878298122289997648344481026085581871637247901970577131413861385902580690751043227188131664049199362691751305263069620975959932030748051350385285640126961484728237508329392561982846089004542854660223391384009116806324580762473766261783641726511163689565951686008583529443976338129629024481972768140815896523926576809354856645409882753926093234706971333192305068250670605875679471188746693757931264566674418114801568929347288936633599844949221109860404955260884798709440286198462103169222718700234339590612392319117493501083822827533219844622230619727605950748976838012360496268272198539532682608036980087335283745997903026956397330489350148335674399184662657489781817284493360701739302034340365595917461336303617737766020034779180169751439996773692422886338244375090520025763903729327977541276331664548164414644810898062915025063179612473442548338216418870028436228226725386436117784541874800592585768705753442499248171277806063661573450456158518690052302116383764612973386958839272410899907509163506557137239470559588249934826509622357293530779282197905420221483995016036453561067791819779934047888044681546760254134136179996590866361460893926800222340234910057473329239265315623540163353586719729748259632472427328556129575687019958361668687607064766690507724388487914638861227648310199183725508761864918061386905083362259365093438929903770552046148649963871554573449393291067972120018948816254012400100461928971876848841021508882243564399902134248842059266929594996954768736125176121414264645140806091452513736726445707441627890231708365479332368757364630148005394178914950070114674226977042347231198626879034932651628743154658935751856376180940168599222469924891178089219321805036355009962197693944235250897808072597903189926872938148405042300122655858794720796603033088057546143841724372130074783631143650947343927858505188311987637186436741523087232419019438672596966021422101288228109212996418996088729486422740324317658566593745256264490390711506169481166697679629519866971335008436865131578125963940579166983366689583961099352906348269503637894455974705218239383885813950672478777670718749173589961077279462366909074207841958912699434183042370172116264327247979646681080068702525805669740685645720749840911688761240944390354403646715184759028999242560928857691476712549336633213107444137081447867268682392980705646866834853430653924545979212858408721976610507563607586612556678151727387704079220100655634206060226472150594978268101724948400434665149923741591038844261823784921098384489690372381401473147242084198058523298378936271080939179792992806476775048195415146485319761767890572549454892001902645602654174384954273444320902716632987964350008717075364655172019641455055338284751621740606364618068722791184308831899591820167356393952006420461398622634475793439370040595882446880400916367357730054393120552855510148088594613420859180468590034102455592511557813695915394597900969424051335254498512682919248891860985183488660212767703937442283719145755843507975488292381634103047494129451925083629926141858856135316370246440254386219352875961542470134931988459156910192484277778614123137102258669451501602276473097511780648558958589815244420690339511163725584646056848131151990906911224127490119996374284385839272328176776553960646822273060221818504245085040247061703098018278946607167751637649080599661738371807300914641809546113999895436305136966745214725469892986352142923113922463124708958635821161152171329332568842753948787854642191855325194682841330953735239372298613072567043862937908554068921565261516117027464924466909238934249744342151149292582361027103247948957136192535685110048117892515940683199785680758545389056985113938852602074102665988238126223841428950006956044235076396896503313575075319618824760239106056879227312788621110749966167473199485125130650757321860563436425583399024595705622259568385755121261286727220999618200437236148470096275903523479377394960073545773821219881679022778201315020728797443144247083224754383416250125950724519123915311216932051942459488000434932745450574877227661540538385656494301613439883803929699976015131716110438364936770848925044326406254466617263994366253731704081075092960311734293079387379742323696450306968419005982168268840586310280253725283327446871015482292891976883081253623703377372168284111859379148536537214510948719650679592912389711983823065952085455444007009786701352686232835034846611788983918511929988600459054357365832423477518033000021965817720277272313802354636197830830592034489494907433254698271019089055649486902643134312206234360628251878574672674419696694691693343384641758989453323321278262686185079649249948694186386626626241811806198099569813645221121855114598666598330814817551165326002128542352686480005341337264437026944620232759889716178804395622937609651892381467662300299575978758893003489880914579658304840670537544652672091726475986458445323724702975342561172875486505403927926473466560117258491612829182566803112746692523969764381526881570977761552680191017830161051384559389764359831784593201192536723716164461547739107237379919597620542331300189861488381552147976046450569489735534534890938444182278393922608254438218897557763231525021253485548278919373089136534531796441986114356491460654708411854208616350632523940304782260710378661207142608325692094935550420062284834058301793094826029077904000315616975372285378541810801804201322236890565963566210126239675376935814416567111889412664979296608437723317499985667003113009714597678626848479269614975305688794948840808137369744244005195249817523296592061402532470237885229659738410982456072683702074194876423394698205261912793892472492169331356786840609360114339208807873458358171274667833134518466507975278162472091356046859849312018639053364624710851066841729456510158168193962891771693516155556101794069314966048273011006798674047137747833485842281517117740583522462770802990208153309501663492699858586690133362063655641086629477305944161849476514720353781610962546951053145292345173372268529040151988105982148624002688800365965213664281702385722609965684733024636727713674106086439245252136155976563658967228356358929793418764014115612111914262198070556830253125543024571080195839844980147042258940520346357782676910359112000934231329726249728471228931356142667276487954763066364102868166119420683616536102999482167729314508270138864312818866879609577782726301619890781779038455832683952497408831938068928130372323696682397941879155300842825868556553093493115215440540937184985798168061736197531958244253047758413285070997526953282189597088300343731064014558354230269433275697038760263968706641818478927818513607645258713401341406106165049936935225271863490471297026874628609740378858825038778694276737700611351345496676609196801840514012072330010442646747180201898127191273672917879963168104481012596229657880492987384530401953154686236239979751318560628276912343788960236592461303402764085226222500990569369324964671396269206524267862260431123651293902642674230382795104681211300915063930960509208504493262889917325734497494493099660372520307290605852536179140993692539197543254600012795189765768095353319604527284567290690823526097683889111658657170742959448441526672880281432270760134477700556424623044823029721353954177620861982570398671310727479503714444129218595070741994972136863788483501846423824415017848433254207334631624152806804094583219785041670559547735847761648158280024210198376021636603129780170605453425314278380062373736916142378525042635596735782980879737831288419836400304050285157524588679424208871781249967019540240066720538590482483785593966086250729556034190256004592562668587892301664193243525498331056413016156699352299041018745678632185347911453393088471365329724928391383760734384153814977690493827930784463067633303763913109690787186569689984788249021678062945387765412028145711237680011950275486010176664089170628727873506548776177022836849792504597454841672212922909745230153812026798451290792177819754721583529554123476033749080522111983914284169479917767676556302114749122986420936883356073430764167239306874351909398650086465147793868118948015574536254441637202103836264034760313024740397775521223418978368078384477253026691208289683052886440415719887917324313631681739990606921700159110311528506287736095623781649304721884867695043847593642927995185791829149126194915108532407402723432317127811820039097698354010845939755458076700434255449941683651011258567509103001207131273986581672489000276083242752051525487865724472955108262774339295177704496592867344691363014714717018014585212432946706366432658377710664136861979850453181103332412479743708401466698446848587886893119187531329418347069992039439239740864222740366295668435400696499768198273098901883052826512274618244072787081583109324075077095452313195159196309827873097282597933376890734874261125198429477708970650690478085692468290531906238330198216088480554696095135855363074713564649290126157083119450329591863395996452125200472982038397375410508443071498221526144619020131388441348504054441374766095028668561785926639696132283323685678882033567924804292358170255916200559347719787334831457177930447628830438493059606267760399637604258688704229817305231691557945444478583320152756397400572059530740683014407289481621774935225977958427272301162317683340934201421185007731546904841711546482087120630167278454637669450813150765600006394044548523253783790166993448816569976011033247200846472241176238888414537870720236634500859555800408661851018607946296808488822811615575495464199763856227830792649644617695209408718894304388661747533155474525289359447219247442850434670409409785570754394402457282475122063979938504383838505312503175219320253134440056427298485025592489884206322042475976294705134390857362146683871539057579377784920934664454558143348515952403721164655444560202949619985180397208188551625503412811577742754850541332875125189752346231496039093257907201174680684665461046199012079671889581937178392502004924886085989100375272741239297087069398011588814419670386914338259126893631612244519416796620625848720345818769173765403185449478304458457028693172123437229369997243322794481807580301917497762512612024687262202073104512285545928680707534578553047426296758294168778424668531234808138068246640372611058014744575152210382729005087474103141323150719732756336243369328936152055931009111045381566619984243015507491643489454109739257260142410187533514603239497355409194603633373149212780730794515210748790118243352028263325069441849857220886961195517276487598307094281488992202986789668633552301668454939376969038020195002980286342953184585217439155420357769995555858848283781091269693142047832182787990507576533986678259571645543852882990799399474035722305043602661418707959526424339344356854799565852692073569596901805773781795085061957838733477055718847563343960831559178735016733323917880450029634109850381381633501070279143184362364620386506754602118454794307862766658772233485639899681157322203510418835910835796444039945015943656732856737226665181305227873473205554601964390602095013510715256376292988477789699219113479360637154628181017952168422614236383628622094073059123492488662085742586687316869261279198655049898667793504433394510103711722232702479232307542905195994556700220691226705236170004695061738006268874942240117119779891766061045959263978043037562056019000746123932150205522048866262116403782534955378202184219365082175696035950215738092748288791212299818733994718100856913504375594079949449717942941253098648969790550147977005216262838274337913511422681636283988635332966627970630616920214866822401233776479847974424709277865198074970192158721604955347432706975547545318545579304671256122780234890329753799012179190698231176311540854032251329371252684835003939256457478969382365573892384812655317504282563328412250558189947163512786455508844139978975811369086589831617039748742230685483329990168527441645785397413430379818010006310145629930222749612930221430429266502830637651518310760273499609473603560162348885186518844445648486520252230995958545842399688204014843720871547140902288797375822222338577473629792819396349570747526174905237127381566084111697121652466029646884332729505332002638406554081236606294915623741676804713208633634967874195180643670274122201502026946727175079624618934496171601190577660747935635473913855613076102026387612534269771145420855222196847401588940845574594894501077095021240325341257236906542857734296783385168585598948699131761404789500431961901422881268246728995568664749085897329066786405096904361882301016724752256156453617165600056229661774796502765542724463192774444984099583077797386261460081567487068803265227097003432933307123284212158604591032377757432868379342678615203528632125685920694101367595491855839277923273216043069333692518675434181185143753062834644786520580669775414886773450739148473930757556052634829526527979094426312712629997642110345867984643743905045182141277209940992597873813820335837892875102984272237660730535402029770833656584926684008518915576712822562922913512897966290631985355676142121017663492616148060250299847282250467679579147568226779817839541531636034335567968236886492368060280816876651339500024089210331908464378490926901087932900575902487346298564193364545419652252717681873840900875295643744367775053403780780081057496121744485856457987578881324061585289797304831284504437708633523326712268848577272270573548253848038203240405436245863723025379796484531530855919994390164320177488721404963467284891733338189027079500939560712038378403363636458177237474362493619631834283963851077408524715726433715147772552046153238440970661619790411299375513502373420380806469720818360992091769248571315768646896011444608278360999543826626951379145692605641466271141239091986424450845549364894466576445530247061876114909459855946704021311266254914980373269839071387500615191786000506208724359222137485461359419553255903131822517565130048842289870366431050830280756663034227799980225812079918473998587946207350480729413896985447858006617635958546486326074886813672121540745222776975329250648062402581696341095040628334517650288200683216055205587410206804484158601470626623709794173792981220676872266153988532934456481288521213204465924587305224997371130027803405004965894003236943658134278413097140093862521482480519503393122923394544087538944084047300609073106832188094201005316526805894298840043034809139065212538014086121511861202048879755936356846836184619569946089186415318360630514348930465979151900294072068738542829165748434437016135974830869912917598705141559680144724700960139430099080215572077090658327101698908933117627765780342786744134834125152057747194116162125127311174139973824624012174626705243717069699456828078947835528690922041401136916560835068603235668344519338123898639808099159661501494136181672511206397928863075468766727262372953801852171717534874737110709874706291496803569307056869733490334946441565933572557334101642331967099188100096905593061580279686295627502954661018521979379979413822817352353624742227695916269937820453837315453019305813455428243367015581800194094017296462852838708549435545683505045605789888048997394616305957350109093909349028686478884269712223055296213290787198180661927855634830752723861789228171845849188638083519207294831954659599914881653531128017920092770806957444771366097994744291877341179046497531915835633097820392817922211126620885572899925916651914919657200425835613126969945826455860872708203961954730270913492771281402017850921859670680383208251489415820823292143518232028684075351196664922736370609995924910089408444406670650301010357113200328848578121498751568794218876739237842963252155833221789443424452963780501533147705472856252326772397569772316468839264931568743158736693086160682783752655519399934600155633143348407806991647066643632674696773217872719030396114414902382814881941171424859005338184638637759223343585837087038681892626914660809833326186010572524794353184260135648712673220360832558781749860054715602599484186597410734339174618568702514008920074824100128232436325082004387242036185538527831358288761163748703581581808795251324570436801186824191918541043171549015171523748370629110917731187647468561320594574587787379500218427978880169281380854916509418581940055010622842781175288436966551349275285841497315272071849316286498789947094689420514370983047988387243884942479800764877513481498354939400501097891348486919548556722684740834031443523473593105374284993954407765061026115718390289114757971617858719227185217501527007981717318871342807758636704974898403404974337043406932259886955976064009522544731862689893926515010579321558226876031836181687457879828341522147720916854284885161746674025577159809196641572933839762334077066401329579226908179436484432059303303658348576104424535859694106588913838192955809279704577687587517396925777840829727728906904974370450934812564100655817472803656109228938467056087135004451453486872219329406936793521202786626158505636324779913537696077792326751307069078135421316149970310164968321399280768035237353413770513073833963923062390543389600517743637579140524256805097749217683002182465878112110086692034397766817789519111393542119765989631795350754607590632605946505799824746600230651754359745849948174307153553606478079279237537384032627372014418050686805544101470693935299206222546841762568221777183366002051603614401788821630905012205406743913928787486396212862944737530487648762738577495182336889652232550457564460860814177792336779516103251984273643159971860537215515709006231228644052144055140841988942400490445501165186504452168776977388162348230129635183732430722933000980520178082075983985948835364718396952202793073784464126816717969220677836267251793502657061722592161279614059724162234991136265477389473846935580058799616963719137220317510743666890803624478894454141324707881602224272480537376289263713869952325050968299571718857476015638750792516198191109985906057664010284686908684175467190895695148034974913195822667969623479824204485976915805747186710039586845061072310101477864584407701866314004637761333341566279703877025864593186626671721337770800783509660328165199052973307052858718520830317232004209910906803600618232305618530087112839794381618551339653948358982998957819779886571461062255065183413206237208945207032456107437470146551309485560324045261005623912240481786671850661459797398837849873432774532594195241391182089569717734252221992853553799975160921499508724998676087376842997376861715876224863659450793967676267370906867478147213146645236196519799618079226324267150670606097480795861891216505257018043113059755118521635638480519531419292187156180746977527195161346413876550551297278632112272971292225252135788539523022898517037001913032301456611782302000275886814425646297547144754647688386381790133378680043541066254914143129823637129924399727175186076345151968412237550876919447486724224354578669951390449841766228390661605359511451448456521653823604991752404574132347534780457366979931333834016990563012253503392791122400171606397408224505579981093747439345885403100588769075625523888253789340479754599305499811092141023763360391792483573886257242874432026974329972732358915852515944201176278419107570651458357170898570777340445778669513704745609049132194023151831969038048263098023566319469836894369153598281692018042906718293714226545263161181360802752618878159217262856788013110323998196608638972725860025400374873940917995302858916184154396254046933430308861388758431171135838967431697311300444683843907785817618908690074614991846530992822630907318871143783200299410610954816266365782544531349983219072120995196465278634548212649719080229699584517524307555360649493168439637842068748130445827993151728107676898145509768412143945859868553781980193033493803781607604085855642386097583924030971828130398188841624067150125626873202170427406768792264832414610009222035463314181176479098192973187580066321149092568657511565014953670020662669701108656838625385052127005951167267795424559687154009542925305415358692290494761110183967718199136990662437230411438917062513522210981899786901841907884626179446738624478619145208406623073060365196611302280036744993417589923589557535145790593590685835787761664079412686242202348664873947260445299254275302851446916419599894971099921707449104840568558648075080629529335132688500225738689445651161393701855784845269673086325395269413352380382196174479755565270419230193142032297451267976702200221458935446215844357585556283153807051500062090305461861112737294261216721871009543682198436722989857404112748927375857743008772503588618168392093965281155409271314936612347546073955917447775232153964305580527059410383303994599952453178338440377444462761408420527964657631966128755169237630260380139774934938686535575180114635838981515190176845929083155357062403134937239952916878126089504865798726124487598216126468016347559272693961198089237561610133495893409054462559866810144044667207871914190100442951652293970292320842464463205660485193740702032385479246088712427854589130187875696705492165119882350794061011823517050002495695508321843276490515946827019984361370312103098071233879201611316313173079794618945787595731584955528339490387504866836974661176760423579271798654169036118006762516071957940730078048042449215298232510780699099415616756297063688121782351019924240003420423234704537160494952078936917425656563244409265554409050747644853560355425777648343026826981369324980167660948811108640161493354923169231253086514758880745230769077824530717098811261007394148847739834414492904910122114480229149760892603052741747661848498581560840852641423326110610146309811803269284632874318911824967064885505021566896802608755602308169743843576628097359205049094945130757323415475465341801756343776383704576587782927185665800074397759132742071267414940427295813957936250816371876806452320137755482917594255704695833372625606691297960389185582044446240391811559811493694773026570707040544369980894512197705469061565586706948234205705862365321019786711617129611672326136827910837960251820153684794053936358729924261615848450360913504637111713739419769758739755769710920709520301255161058633318788104508071925043125241695877969097978267866758938491640917568473202474328876763920068225983260222402565484204157000360279196718332347277206645855743708799769842013532031955678382702718359566089197875642811680262529062787332348353898249500358265249980115291781491750053831420846645018282249783262558493409301843392038723187207905082785968937304710535086109303739483487321660725479218701578561652860504726032221729796391633206677931093342252884241711879897968311963189363956333159285049093318721453474490472712938409780293921390422834202335653186490258665565260849804163865642645107849770398945282313890491599737329340910185660512212671399477044529617625748384207631986957516017685812034762387607900534430775587221197511444948461880347600908637680604447293259950509487056938256585033963120318420946312237441053660197906717151465977278216529910846798451367295758120981034674240516549425913840312244549356994803948750178539306412417222599338159127146381144420887665995247822504920102812016522012725639522712100551629111104398151955866304879180436034459756752810336678671350832011025078140296171861750446274877909740392360576801473152200314158538809491133079794415442634950931221462096089243667656464747308181800818370776603380158870899234678949607286328993399985129348246788465518461642714696652663912238817710601219610617394106650851938188730044793401876303079324934701209261152026994272737479708450532354448018016571779813784712641163266582192166091260612173579325567848782429306596970678206709528201007074971357880228741397739946926234019556487559544146090810125589154113143744384197816811689550499612947685318000413172565398189172313272142832620185790587360168038507779033515675842135336777466208297217228203771926594195030013742973607943698829906664973959466928838879754568026096404371212111857085858022494709542173580827476740232291256195066702746268387993160459436640556742303732152247228900213619174201620448841936140670576614484778031185343818997316838551143047128063330260199907610643568488072774412535460959920660616756807272014960988930843782681345827465189055738745899626194194211392311920349279750553969683186161584424705825296770839800572649379365487972655733912737466895806322627482843161460690081604529318112067234716122578207927945385115800085713412207327373307709565714901002728357184410179685636547100585729239996889431017415177944975385347394309859393988079329500742637712417058411492351840755368676291160974209778857389759289948169864106464383903810939021804022959894313534107042182398561657386593995263918999320186889048863960662929421513084613710475807360449899601061909763987245079067153189540959892915323180481586680560807651652104132665474984908998586720007300886850978053004824538492986901936006332977231270787285392237169493072371419447283548627484290905455728438144315167009001373238609294328229383135787435680933470783031730473864561259959781463934061770507659842578865209075488235721411864536388176490338166695038113844680525313288633551781495401722899664388538023489613122190162569557385170392282380693742847723691989076763588832227870213623767851513171484217471646567758354606195213269136817191150801999997753904487257291087343588160770469275448478241731627307085473757721260711636301663958088216026728379046553696642462715731641645020023192172991801071252956790604133791214242082970766771337681277283115340994612291226284565095708696575234021709322405691797277907403198359055397533024222358756245012928004889751477718010806373443131822259591850828450755584074231088392110662873928638239400340758767733170967551616285068225841453327367171876261864443176677968251971987146997511295998309371273124406829691299070248510891268503255945999101706464855534110530151213080558718493999590151129553777134656342939516551107873418627127802214107342847963510394354070190157215322222581873836389775016676872841936969003772847089101129177644396580036766736036961462099332402524669590399368990145345939612694080780685925753328804581780214298589478432957291666635405036130417028208735225460642468148950959386110192617302688046725715223115964400742474792808152415077956822935693984695626509914593264551728942425248743661589587763041978772141511089572695782094925430655027414363473483140578885808704807077562708341248250518334772955507629411870647937375387167465024173280336834869447694371719809516124585317830130519089466207127662048554508580933796802379876261830150378392420899990864586193429081722996738929250116881227088259058533863749593597504254128444158391941775939586857468610125645519950904799666406620389557367456580584041066296629975746758823235879081825109663148795108075167056598100557289192929933254315583541219001160861255962413108873849019356567614187957918712556826766689785985646226510347555340503415936427972972939543512637921207799240860595418773825148452800818645233863887307603476011869327599791130401858754462526026407925653477108937634037478939243026304921728571708842903685805565281822054048512231968802652659866750483562992300654255098160156133219378430665894473068814855403228280924314803975082926703161339585711485829472351929931106988655803218171598793155246300387470060175284555838241412156602175854421512905492164946474037819260944041276641364123753895019087973750248643856635697697385608152755589871829800751331710026942293885724966102717367883974858893276038253748326477235662118095828308575913249701058946958794758486840219611218280424368104834402959447356915983631713921542390882239073266766360782075475405774787109279855254449166523999488932148489522879345098642115378953569205433366011981421280579905107917306627936568101038770287326021497058059260622523750071447266156542411749005381401354718975039747886438382720865096381015307865337107135726572305178191940886128070463097304606961956904182966175374787084302139311612595994696187681269893102793954010864517634850382696944314841095824025464067579781868125083653884884702087980508403367031112149556039461753772236069810012021637896024932647934707119271303341020897489810797562594650095780635051052513783259536027848574707457571865463279572365202093104550600221259261657170878665310459995514393663116555397445297986492604402829677036374912790353393834692536615973707413460983705859317188693819368631319502646558199674119610937458419250694675103427794272458822981507487417982072193752435063356928198253072935910426859510900371363415476821887532574274532343396444545040355435051173951067635656596539762672836388900246460025490286737674393051431081018898782696112788492640300663652817883003597335461848472980824022014128558627048916412993930729610299112049173993843937085973730217720761993676524902341668122700583412782336745034498925070478305341506314820064309062438143421670558039638219638958326624530849645036026643526338991728684044583815744971548899333183170222245973183306673918886909836865386259375501557952851055440573374668595166676846704919104209930321346620229997350423680419084118010991262842017204201846501445437941619784108266030552069463482801399883175415294655570282156682817099510189042007423281265011766720213502708488223543191667220772869450503486078953342548291790216581513352029825030121707408255300511209313873148593063879656321838087154776168079844504438925666130793036611514254156416048045611898451167567199441079001518664298827968313141471550901489526194865247203854686900780366352248469739977319800780274409242159898513853520573363277166434989213234940728312511947420964682012682981574331027631590293146876117376664339021431210564975494957106009998020024415157100794207600382748718202170629677433095829161967309101882463714923104423817230538340241695260491566331728861820498884345026652660367181634075268950596167299988875927886220275377616482387403057204310347720179948047185925136920052420350834574700098578058499909787281759318891667229836879119523971911231365237455812000569083420685586798689119985030712403406480984860543909415002973831312082342848927256695189548177050672904198559738889422511296469343279803562685838419525617362210808409128012611372456349209554026808828067192040446944982541830658341309778908246283142756442274044672522297617912751749877698794740073959352819982653136116665494387378287166116306914787249232638624045264181663436338687205189883545616552538347324672626824160231094108541059210615226603971114003824030320710783062809728177084548372692288696206690866177127010532082895228688677889008602175334357124519806023020133622729218978336546407110586896923162553856365565990267213731958214624631435838942396826979550603333106516978416022849091098519370812684687076210001785153338278925574190956659315793082881194305514830037214251149565517479987166579491856668914945050632165371814008512270692188716126918694294745492731531136087439281290770545093415619425009214939145407922546638692339586226388904041072037009136878877571699784134844056331343821219187861576415507902089611719247457922059745260697453002379538816989781165645966370080568252652404535284651969500650075614935877230964240507918251794410803939594673638734582910747127883118089670190360176002647107396062815034993957175963801639948751926272161910712954261050187745124454450611125054084020599767305893787237384792300587572698002971239011459044347895540123509869243555506235765419191601046743237298516122054284212700275257586546387906850961063920849869935053328038147247698262741770945602686139363621814915895467540941044379072017268202700453886053452582820435061259530026885456340306190688666806772520695947493879786504963433691240226037402511971044466529439974862268043939187364066538113290369302937107260911467203496106187844479175797093156812459967789253959698394616399163889140135143687339147611844757728063566035604747836119611072855660138736205871367246524582396832231220857586819157625346230383086130430350863094319780156115947560618697049068790101556785899610905723054664145913815459090310670742980513056907247680647336123915591781698224517281244729426067685889444430505612768604418293746475983089875725586640883730038086923060858348896905236985764069321222324647782673232664031887876558466256033744335380104507739723137008641037085737552603518169121424368288881597909945557809610268600215037868490432735986676797596931280882365168523868941161757432217608662377698475409054422506957355679175650725131612249799483361388963295206751802551165236122386785816762758919323876751407271378292967247112469252343556764712509463405217657187343035502656610319951274229832494749652880798291497635208060558892476889190021225478078184751896196966718102967490605696045855448726033569346546986826989192198127974156870007942758339957777562318876390135902776354976306262019539061282706724109925305694443822080754377135048432898335655961613882873837440239886597221057644968063576954104506578114260838293262909355255288352462416892601962085379396797074415033488101276558880674092617048996938170689302729655542658925984426408797418266004175284636887021569513193821488000616199455581347228559599767239272398771093845191952263544431319315422862276494505651404297820030937341979960525684977186524640234636188977465609665395252132336035023856894492051215239887793540134705105491680701567786084882479206306575835336852522518458761132798492128753467116808524527853769110252691332997970772562267796850431651387015014170965759145421733863442932592133004008253925721495589469482533475401495226132691059396605347251246417765051174856879407792476134461476966673502776453997843204466066604263314032628361001605123096181252062127338317184838117968952084544295250822588596888186745993365802290623264791759337221609680044143066498560216379139184559747437676175738224251412219631192343883593088421073680514019115758634826639692658875139971385318143015614526996295530364878056322353604691377559051649668335547477269045924956157008157157529258411667189405944729223265980840298250825804134363052656865225846527784327004095672477173831640888097798167653289912867061795994211881758379247254642594552001329191730042462663113307522989480230291065713166887820489470735851983707003499482621301525098539957894743676831323237329239332174003688199689525662812787833032684412334157254453263153730249507651091333570946804570426706690506812444975986653029655090067444945069386550632162163509472746145681429274176163356482568330300033549914246006851036551470314351184128959646395206340678636086004015101146666316999469958459270624393370760516434238602408599094423608115766160109695085128800233831117350848114829594120023877032970663323321912171117586053855413351017175645842193520714685626299657571782847279770121008748235362594545390397917775040594640079824522295846039096109735404665408956231507015625506160567619651329612879442322799578491262524647802839812248037238104997257913732035541214251301925791058768361750124526826574828944050409779503690161161391889120960995183916923678805794484138829136346905119873444772992278574129805637696469491017076942174996040330551018985186521712583591911619419407957550828078768771687395403321150588484219037907703946062928989982657613748585222199786524949344529290372944706588639022826936853053499207958671587118896325341660928510433144239614677335960804595333004920241578083894497210742483041858796150366567494695110293105348354927149148235332134633281159495537525885045819746578539836793808218215650768046533736607101435110649291531734862883618460561622601088775533695106124284940408190125559218498143290409852898036645797704954562152001867727927233936379619750811228261255411404527619989526867143534058208903883159463832683391945903998694409787468579157277283680675515147134151495387628310993353664901257159913234749429184183653319543681971265730762038442705760187076897121495126409909614827457573720706855891973954160292329533036982296318459016977689656968480587919345628333997566809731147709454698093227573464374645397072503672440686582650997105620795836004842600677287408450251827772681054115616494727363911429692289727036740526802216190729440801727962740163875009236539185331108102583539827220056824614080628860366552735900511065212469702293371415630634461244211566297180058367500285861139781412669030587774115750945234494345260951043862492206365924803506798856652859023974986306815302132775331298484561219737855688175011183807985407799294980393680528491969169555235664065651583624579528125659245474045767740145473819763829115689936247488263847140549279906899609653439429950563406864093860475685785990023077937223366953548072915012370013778140772425080229585003792570428616604340611050422556335070174249439423741429852694362423668237419519509341809489082271306335195939375395749665201649949388146397352502883501130950895575639224836543261564446592094814784603167327084954275596857066991518588902725608576657427488464239347537995674119321933169192451105082458079559065322425399310891455238474167248661380471359984816679511156367136489470042728158174000176404065200961077464750714145390062597522666840678049544871155050697832128210267628632161320908973775286708862611524242846922080055924976074078491170375261708298408553882912355240114729146089725390779684549284144776471516806291811788248510667795440693937709651805669202934504213133939238230489769947313951612929815347286355899689408285599465871605893273903026408623946094366172002874899175942809813874508220778664646536658408334358998141723091035198426684037267306671169350921360858010887623511617841759613948937472790676196305744433780558272569556452525120726131994637386637330210769883339128940108460584491673685209707327688860453505049646882448836323645242960977004073412821275444466664793412825499142240106935605067060502123620535703588367652986448035279519968770936744093835904839043592203100993005567903718884740890084435112740422101572414617754531054466662031982864769930065730766346010971364036284973968201796247458055025889739229468694896645811761658364045080092969385809347775773783074244507233021702759796247338407706267124052637536906737089710634859326683004452430856316737235698573401202619449167358799552803588814405871787579318339333564113770872474255991984619449317165427548813054870896375997155257058550460179283703825262182300543605081806653170657695393059247014859236043905632886286027790903773687922494980831029278720687413702305915240660808044658336180316041496137658725021128909565698981790737499108849523902143203921861140268582650824453072614425891127011265850049920206761327288306514415697141825461850992807233989423288794404975374201306334030108720263133993242678100976125168102246903406013494514060798568122319434496740117239056749524681378142982454342151497466508096531244056727625559746176561446867212991012412120812406263774615330974314113149139238491926686265457094924966316457483655539028914851993662429462297889449916271664107032046886456316155282722650152537715984795967360397903579638039082066753220891795532720261674673722793545769549576911643186675226798641371220948529892636747247278879724593858813726615825206787732461265734616343322363440714384009808371914800761946868335527894452794306040542051919083816333536433369279273756962153358216473772253824633591794282632005035520990062049650469264450519711995645079962875938388783198949641353620288827003292174156356137637425107017300907271318627087966580555793994238723150528099268462771486012139975442946347206455431763744655827127200594450178733425522212735838999126404511764811911769679638669785043935980945083867286867333363547693265843540820136170395848615718190799560270853428880423247859984471149824872433077291148556778606482485674480327923484802965106167266269377342345636018659221696695685082220301338437839954193299210491328519742156074487059308159378166911045222643961351636713869986686367223117189817708823921175848509401601201804493855015196097205091839604427377906439617538979169265770141005370760248250984603741965648751490924793565384775662947118627597793744304966479155044553244979586564804962919279340241707756872295836029113747016221610157708267749782781803964663581414332011388000319500566302603639863301183966007312943105743920425405576692369036629942735192033040775478166818387728835950203977600223989560041714162773630961959067997917147178985196703733528201675915707386633387663984864790925696104155429398457138219212310999985077680756572203258177260425967090767521078974303635721745894105786900297050283921675032445092576266688342435418507559089831763622025062254417911395418203906341467939965610425947431244612125327279479733680190950856134629006722267706923310040164853514054379432348691064626781035481396447323788660157327561602894981526786922022882361471510543197926496997281224912542880898717803977222798812516780372375397345015239160670974943321607936446724088542572024582572003649906609809431138049587532579307022797038323313875802641755178807797303932809322980579194513018610393838043035774413666014191565681037117885676469361839877938082548782720295910672019143275272266008914280471282502159056357316366153506399593210423551198214898078509018977669007048191418915830346406698082253854989185087026056893235307050451043769347810310291278741041714240290928941859435139801726099636991852788125267338494339758165993412241779937970151508742590440193517092495674993442041556404246586750965088005595474448884987480852958183453734069418361274637363360904308376517186514345413605808326874182089980661897322127042473653028461055775069479003146090245382667241601688536534642661572538910888217702614663925717184322182092154868798087777654184364277630815292289656889710674208055126110319444267263603760875898250674354850411687431756071857256899835368351402090699195087146137897798620530318351952384206980964776345422279454642893081519100400188389441706936544176374313183056474045561302425476428742339397138627776127694698891188364708573405587331981395475360916226240949403697625787864108557113566439180897632363554122339166830922993195583876391240645582520798391713427635273516341287737582140290545322143919808915599772903697925853167230896313231246790890412084630087194061019210327400962562002643329667357798286704914084493004674426845826416835299776375103992950269460439708927728865628526413928728056935961851780488454694271149263795391772493919384637253364272156395686599452842008959766940319460536143437739442791771550461947986588909444237567953638895379889484016043560823018471356289849405812579428313490286962907029222077728767120419553002799129925761702499089578579316560659460064355898358003942309838120097493588181662788273715423317579664026293332357897452171686651845092337020766022222671812476117640044840745916377421477860379142516473371508766006248487366370503123058153845035116243665648753076316994648034417102490216418092475345430099659641903490017741540979498759339065491229229030403810254603875337843376694203981375923368611777661370012629695250983791696254806724392222380267233861700450882318582789088226214672901782254014950203985618199175275231857492105796105790372672776144821577425076963139692022806804779156959062084559842224814442847507210808352078117399255426272404326944228365469968428101218505085704196032204995864932242503418763617442253022222974218685955014376507156281880841973735613832627212049655742804959916308418886728012325837950040053959409042193923617134748713629525817266554974844602718958153216332968560295842591749617422141326712735332175828166465288211928276571957118905527558567986770804886640845212081951117215706509685159399975845186218413656875322632387848759510461539401838582527309943038999311036984885865374191895277711046112891783232527443375470740492107426333853288867272400468810158640871455176462842955328935333923121306190016793039783204914831033083395895098504745771390972148853343304794292618821328206495009296233197512391814445320154148922440631855980340861099183393163474805767917838771793806522085785979756996556422830888207764003853555627142405567012756197874925047588149653570883914024256157172867346319458346725943029734233131258468515683696145002224978878013999544658386517640362780411467964679154823064416299210236339080692852644136424201906767752942362727448342757776295264933021904885006395069369245319851025318494588589117929075126319119178174375306265480410369302304635267236165376786825833696782233104110473294419619363125501690056921250310415715678751480337260025241965824842581873325513595430024294987032183538219440654260941225282978879327943830710154413648666617951697228259496372343741781009795002039866685063085051500712864060600011506361386194125058899626480534106651166598393684753722164384815008065970301291830907400992941263092682721834501185715143185086038525786273311090923991257236825020850480001115672336045482301142374306242325032750940977152160015219437865920064091153468611482018537816720674473849660886373926818536772014896037973283987232084446147597744624962104693093043404191462654819517323693509863548815949843362961364392184795087967482441478885316359972411250246097311910657560095204833647646154779216439111527746422243646341394215752340075872203825907798412519999034976127779937973675837767010503543749030814777770335849018282235089978634139544552334602643967373609726355220023315589199684603661165723722201703885849530397559808731845368499185906557366046116630850574916127643774778576780603895297173010010819085876588137210678817497938517672815830924630801579544206271768733800214965264098398864792691186883247553511638294360551074052634558948346354765659046537068875147488369297285403241895147256496047761132979997453088600217931493398467785671041786791548853477500724451771204760529435489052618154740721062117643879467093627761032388846679826993699096249068490337012774278319810870072880159712927304942676534374465524677813277004545215795591489240029387878867765232554355803988480452623959972735024783249561911969486608119765215301980392996325679229878392645637046451055477444703291892477067505064592329556683749012891385970573318899135075427923176761214142358787565929381406486625080274876714241890902532208786879556828203938956187884395637055285424615739901505571701403146964209030008725235363516882699073620834409687074439561970346080344982679083961580248110566171225118791720356694759279984366550780641548931702190433746930129737844409113479273309152818714895003807130045739670309333785686092898560254597273084716765525003863877171904955707107720484397845314244194138238769421516537162581667797705150779679724328044520716970632416913018659267085528188058389655954913981744559727971569026200189539333982605029001879515174061747263883200701063241455490450647609424912815405922573651002882636061038311397933075152004661964406601233814125553813359926419922450137204406724711056472413318605656816838242463717740475873695301740586663154731919537326821419563879149092223395113810700509321341850129200087880989246734985159131675623454826906323583864431944631404025218384729998930209043464001386933032395947174451284965480618182935407514682396932227806231369801113417883525793142923824057210781274431603513881390159823939150355975263599235351715859410326902481510519746138546426703958178636311725898061047047247161607473869439279515872011063877321322394132463318837134645305358868136507031967661580165742193458311857084858871664900726269760629671080735599608451683910039235926594380813918043999577948248118160184700762136185038602750605268827911862698508596252667495481453304045499910772547754947100637968654587678634008887180544226577191773555789720008006487330688288913286942425031982195615094556869526031962319021311860589063548834518284666913680064569993029042877229623738128226491776196572060099863031693797394931847228870367577944895500639029491925578073401342600543948018753417432159159330229703598933081673909336121980082985565556875150270012395312784169383244418053882105412360179314974947382475657208745147407728838035314495457725128729239812611563400190717955384478373422004554595867141145921560963685700064985463437237957150409744095645573665572019581844975656400062994368110748377021397641433310076791667576097092476225677333687841349490952937273537521836620241898117571926780176038056723124747428989670482826913991097114871647901472899883665286977567547079534181112015635006359811344329548601436425478029005132792545115282890972452931866031076969584498532881740782938833661400657090387530238821911257873419783128431330017102343013906853161104060535679777299656588606291739494524600897694265825958704917109498965561211410645137176755938636810033470420016338495184904571239553544660998227234695396649792637913535612362549258201600250200910311010959473616016461833675171884867356506611947592040936560457117804261231320575538859975580500136350068418212044294393407652209999360129408132639593472912732809619556541110882921447283580147586578878599441764406873735080282499527541110312682996355404227730108733995940863866525891991026672026174144705019333721720893515665765501091698541784457937600877714487537221734464063514823708081317747073153650943171582310493236603832433251016123583440128383209038952627702726911938444996576740525030433908795815536212324360779186314503036281526034807062021565243825746093616898067519279500034789712952440484509458655098737015819174301432434568381306478350363238070773348875623989062503903250549835370342077193166064395638382081869826839434461260069642909492838615883730532066464937472900194714421454148467279826292761391445491868755649413327441167126822883256089806525916650862470600291336184535730911545145584395130412499748055856287394963905938120383510030460337034860728344902008681425480118078323245505556510959694442130884930953245479052888992157405251728513346253275622506455958755630109991477551311768742296053116335305141216435025253187102379287884587128434693131822962854694804883908943663672978367390806190583586749016731341982670288770260231277113331147348406389729203779941318298100394145622727969743215782554941998706868296463495973462674251173473390915297406222993523777671474062016217508338936615368550556851378780210575368186598982242469266360772116813847464086343522403756002869103111949781664880391515881175719121235579875092453037701812317179051947826758097317493869594022915096932790440034197488879616979657231715125393502857909128614107964585489052311010136967410010133183456605096697671943165494444314622694670058196935553230361812145599373478333536667626897968444630315164545031272677288633591755792500675104687022399925938949777555110936951887891903966184673523885755565658789862536882100427604676573096637933742531789805081387471872650198294432709406919470899771141849471673861217084012142671436092502825616857860903190428680492131474199517023364743411899509597765171936733060666534895288868310938765333944092083087689702201859047124367600782198532970987062145544222728476352235909094967389343080318108693179592979624205980261393316720538751385313934891022852028542783061208009665716564975659200536049148684544902328179908880414913399889946321870453177174592965793115844382991660155315770569896018992076197139372603081553581863647549153026554406635246541768688192560442022570683356491031793873105438712975558825084854239573733775721679784896572715727065645935025808364022116440497466925318311371469241229640262780832279413942495978491214741846654780843802332942518572760275064975903211539425147316768518633685750828694153933800666497593277983534149878430293523528000721498515973356810379934211445066541680391339908824556919053489902425698162549122615218836248209690511374432037610637744888966390750294553081699897851980074635732383227368297836269674477768704866476878032284874850844288274956306863880727684320440777979102899599043922907309369981508253351004954775128443789339256213897555831544463423733434034774798640687488911723825792229310010526615013903000722036988630143014422144179889269953142581897700022055879588467876342521517917041547697778408665297393490682322022999038494794460317399884650827180157191260383124342767616880829056213618142223889662525565306737428942398364013297041209634418167832227356034875518407653709272560917677423964557072178375298806770816437086152683366367407774431916537671163348283558501469588706995628466519786680437252222530001378122799587376905541833714659344781211741114799920706878495261428553183786514626234139970877032966047839746032075325980474488382797450934424804283425553507453409483123299179747538460472447552772296574460630766875110554823503388376409258451254502963120348876668931935026595906328249132878012591429705257012271277141066273472006946669848379988698426225538557177006700562428882997568712855545853924500128287621427177252771202998057340448177198674576564362723315238516783845452453124371245684053412122562278642653708104653394156070922328943935436696273297034125600729239455108508822599373670802008290782253598417054945614439950624322281677769736103205231731947733817462301918814711509226570561042000988035967206376742450394402264804408144967153164666964514194094272861949462243041553884829497741695596476396136928923725904648752113725557994540458509860487992036921680029470429503642483055309540168237842752464975188168078771642336611164365834207804933733071574397037795272430013875871429409785533263239747646820772678156329842302763804776950467976597106733188603343471044763084075170335867353145344622813626930299132046048816554408866529945084375002218434052493389609688940947270785892808706189874790089668266170715969642670540109527459989307727763451016218027593571485936131459374896856011697608471487460359730766191368063168529775718512901652465640167768991244843117070790676160693648266841069098292799426903196946247485445574864664208093289219446143955067654812839417863017183630263597367097525515377639597381931647189839304875061436890101721928678812635268863506156900382549021250405689912379183432317532909247426990233818832368927395708812364628065749768184884356085167156321455566066054680189696454549336097674823883513637807096940286408768049554322038520531251288906253475609644011316989603778697653495288602868785250974379063849934873689777086383516045302166947999460150705671842068880130059941991639496299901215155415166464363163037524331157172944746542573138095988495003429510386787117143687717890520065578241532610702225975668446534143567683273509946999020126545026361050056301914458340211555814437029280055081830545170994991723156624170515479794897056719958346906794077592704375523384946953901993815724132197877403581728225658249277158373108450886084146528848050759204388187199534998259464975194429719792473690330664042693492103828602030262367902057925051239678902764723311137796590985891016757675936265544408457058318289598507879748109842951753467477639855999792824121536520469678586597244895671867924116904083293467790969329203892706146338185946726248350839747322295894133566676829401766603008607364916070633119404700658123375340134645990592155151624731662927001503585239327840247267495447026674744082512679180006651202218375464776345530135890842466247751449720610444975288065443223045465545386351419705208556534953372602812138285847891774912976606630112452270565497283695169711134342692304654725963043834937090423845964594110230142297011888401981009113733924849388958019264544596473072199729562623662865862118527867946990801517441005748811011318541282602133160939761239536436255626979632188823971250976647127275213670275994837009492330841176448217644790875871037634425974407316812080539477153517833537423278485226357676778564508757577745924855980511046406172430136716818140316971558095411358205781939744049379046463050643038810978824095723443734679508755851494155244267098278237462898963845942382751399131416485918742740249646676327605701642302401139013604732268233904761655016578935907810499073487011554949348127715715994141815605800306962425279005275273123261532190232178416266441748021363851561947127614275241333111767313150843588287884305866335501178997829440199590971740032229641640609576827702191355783711510584916766886387881903205517680725392457898562284580488727388129842631230805121523029560601620546912973116211573798203227607708705433130824594198008240022169036522028237685736435055913382788959611128688389601333245683142059171016277275027721182519018452517731718104575084305187396597351551689228148105544913587571398888353138676759184032570012209125117639005669921302844901042504054675436492865490344454123822724246267530939946243126776134516405849127801418441739733336285675192902338307650203517528650303171888405338528569241664815221161779083396948955433324285934663931893785829953829396934918563800235119821450364345003635006775608144324605430291774939754425696362358900801460346761683712385772862238530127983003230137233247627110754835016018771190403999050447946920777368009056782890327228160108141004706254125244562867361968833523444129362953516931848846619662410746567400540728809123634087236967811621670300348729904004408198554848664855273295676500953806764807384153328005827354082750877299437278536697223451507941037552011247622308003820018628441245877920204205300188341737989745651279999468194765404587220162106824185523717808459525872395223660246728930700439001374217309113666041791189459143974637703968973630437862820399322734632926285812488155666796809007628878763581060918887187069686108746107810875325631892144381979203504078040507488247974503005606604412915127137158776665886965085073526327474415182049487657483180817554975494860347475454149378340432692703885692268765114947824682025903309779123135410455943070733561404404924149730253434709024483604551376894917353906295014742636604365738795034044450856467337984841749837335084864675508668196568568660362137905779302497505798466129453430054884089155573208798106099930909390744439114240048046925613450689372092466450765415171701641185508349819561999751268084964146592453412355622742502985256028399191761537197612451967380253119174753681551478639930494635023251773748840397380898950085842351628855305854676912737745075018202292140062546115602468147807393926317307836167093772553245669301078801485961892141178905305202088314230536372484330970396204905134228759465233641319740122620822038141174060406375126258072613813537150986691282463117878126260593701184432628304712904820643767751190737186758910461243995683020050810547110688527633747760492283436144951384684231875776957296630449415090057026436589287847863298137773046933458034558043287914999053885978368917999245388483108045520161362376212460517722829702067201318164134371821817000941554948460351761039131478779246759831949625227582792441801514574420890900613568370291142837704822822100946360743544126078697760224799571297930671766482119279551279942287308581823856972879355373498678537039365702289270304703797954019946335119491551620373385977358092414918679250038806594598075248285497293165579710192044371111735552465590069618544929071142556465120660599251101675377694380612810628214649624294785574920259581650541387725046572645659143238927904041176008634456387454656877889732445707991501802621395456181096205651395891091465771034201757939740575838086476127885926416148036374363557759526526711238192734165006430691227490229616854477499697093218566657415315660660964304107042247109985367841083576468521741583305364247052436490010775765529921110092288957124176981016395028684554312501679569209668720948062361519816499028483367230123648736580020902480079811450093179346786827005315497281869996533996650340974843465313856251104175437675790265076428830228056653154227512199341508836350696068204673661663887811137506000229330588530150388625739781716680364171991899716282566412676428245132820894411788682383782841386555561269112378905333210502686846088055967588930931891795318643921222506164531982193979106017403782124314360101016985786453032819371676477805411304462673324548868805227840391662276948059086703110249611068705410629599708589729300916315918823124390875789158826500667886928169465198233145792211295335614088686961232997429607818911794682997303022360672366199250134051583551240872866335378361848777472715888415875576901899840253300298307179154823166696534255010546890661748358251634029702065796289725994933818621079611995245031414713519653250985184155278516096725784100900448844069203545347288655584920860876602776123352221444660727004225937909648704046266453884749645754362173633051398608531836103669055917246976840056358904131356988791124126869219766035199366420397277356580344882995419179032544589994632729966187281284571880209511773356359123902457708326308053539107446145113471388155014361240729850539265010900658563329819248071163872799918641248038502614365235755799348024246287564228480901902240454105652795613973987982486325945943010432948428430855425664120114217352849193535578004665338918898553073523792140448026464670742765662417370530108232319380871109306930058648344795822673451292653815780226547516921649185793723457630475691468946214832092594900065937320938800994162153891063329820832926550542027772859331683240987614751254195243922006671513348771571398063254815462998075446052161071081042232276420059687223098718116280103179301026145109508668816525027910767339700295077517513415980392854404937991470034872416659468960995444050107172781270599009266865272495961397981332320069676196736403120349680217256592677451300074744938501103165091301037639203444137432607682779574561216388017578797591644418802322685632287039692385643175262282935600615200227740380127708922257809414163600995022904153198688951918462391655902027702344105883397989515926074250548074642400585181151904645732509405165700383276912643576813382542511507431624498458181287133803119728321015780482866445729972549651293214328656361755117981483578042221054696460161817514084041418424038743473507081148881786114279497009638490936419331076957811081719512368822763656396467936457039081334478056698381304278015872833492230127256556009361488212486826722796597898278558938785929458265191321037696283196139529796517469573629187095037788379153229861000135926964570259481634729486367050663704735257235070568174698344440892038368343162887771414916388446921400218014109575948076521020276718023398498676060288618252386672441087625680942472839729378328063224807521459543436472285208569083110676924025363287162378655960234242287811390077926541673643038346131746387394542187962700073522305191399767764405708526135217862772671849630075372472573687174105794094263124111051917956949645747178949361125787487106480692710419488806050582657308972705956657684147251025666954985790923726426480723096734841703829451969261570040767758730432895990238339029218824279254884827625139941912484826195297896743374079413664348708299104171062597295714623208326838214753140510779900523822510725133217681197678089098322776021251920615074603832020135823168682833586928180728972084378319404483946877393953641053336194891631416754573184319666641848738760532701159358019907904415605639257542894576587172226238118731522793163409830311497897638720629127869343100195696714124920800601449944473680436375149418029854598290507046225864601246054269962135637899949927835830818185416875620041747395157859878158051066193607529772620218958898627914915204685700271526104615930641132867958737141897322489519590473809794847893994199094444841381226708851673664591260995036847768965655732159002121915855988812111416216162410438466592501864528728450196006208554233924305490966588365793515763672472021896337201464539379659402464578451738867688961844311639842371181258886328563284172414989923300097742483321422802672734430194612643863532980018828933999067029441878516591773506812375070064956811069516251587491689029934137349360280357919306264354509429954627320514765335140181300786620890326666767951285024309354808205145171489311644251152676117567774776922136301854739058461006575222219414646341094285424101735614549676652619581043477126581059897379944931125275086428571434698695944874563365094958207135069400671876472495193164488801584202974576160308020900219690796526416014039520946418471320647975563832082800271990386529105953878746986458419166388095540080389125498517883154059664144906481647093600597090218246117688750000404504901176533321795034169293535203611337043603589066726294305193955573409918368403925881280906214764447502642117281497048004554130268728680084672920919704364280962458506787862032883113104160652163728253373164499205734512591701699333675070314910718007302545902021336272972299033039621174496553942167563856863023110842784715793476561380366539429911259229492354716585145589004875719791181632336954948326208855426229418536739104559082397159225454789499020142614176469670840240509597782520357012352727832846063271746102640594647540746861543729954075800028285199252746743175068096698284301266402395104670179530159515246648930881745082106488092588418465670196021324693885855410371112935720436237919717026597014317328480353121014610935462694058071130449248725534787635463981534983906861031172775173691387933779530459542736742609514309255597853178100864702530609210624723836750215188420433075850882877713887891915851205849581354377336842668335579045215012246620318652879225696038247563762381671213329231507160158375480814306609401045421396411965187838726063938428112337082261153839951579364265828036792427624726785113787900354360759005174750948617554130021790367987610151840904145133040015693138045342917379197282701999146481579172940551368803587761285791020704960817001791712788160025342123600544056846530875066335838864749620417702539712977054968086454042677259661978548811450513527993876603318686442532375553111306908606241334708314088835979510855935451932665037319838838167983654303495764688084393632297793810795529312145956072551293803372451891574479472785689465712490449543648369961104043624445848496659867400163488472331048539455870557762269708118576869617796241097004220000477797155082273711595306247250611710831818028419317650988628769938274323287565623278200133857221060807622184262557792830251176968107963221723857478156956353410551970972462095136341553805039580995687016406232137784805655155138671504288426378312674164080026866309710206799454628005637617445287622680942508297839232129011212212100895076406784174725642852773622539272715963101685335015083633388843413145046754578680781788746577431716295033606860863844640082125083401808739751592127168125043928592951876058409343939428193354147668077313156707479072472164983811406519430539696357661911779692176349595795656580804228374848230597570611972998990866567149173718599653579776347125138555495482873284456920382591300578077699501120264600159628004644055637853864353510254035639953225574503615337702346435545857966093112332295770827361511513202274494257127108658284756212232797296647384304914354043835441706023956677068125244733575651548734751593807014975821590080239864803349994970532645611357385229876533317836543620801113686971840111005133065745721302708663550749181906591481420971449467204284399093267573510809511893481416440858773130753464310678878719820969630214091367422365466308103026124175699313014957793348376951242326744953686991480689085639961096562770079725606681213236233839712208100376351768871231173452124553644836875705102004206974805272017795021842107758165380781158022653831830404633455174434488208099973343322355062149094060209602642411556052804391369390976825636790803494933284533133727683171467174004492600737918126666341532804059504668830518872222406269590211455093918128209427025095624793346756763632185106568128422275210040381179965049051874535947848310813364973689987288183409790109580791711053917502604137695677590739446888445295272417467283447377969774600503549067923193883715026575562610097533086839318995864701366818979418071520510932964486634983964645673899515311577162418596035986596216067637919605384976150562250374074361419801304722613347529302794261804287545436581309312507763616160473708275601254059330217626139293648230774277547260408412666895307532505269310652251143231382658945089909293111237846662992700439113965083638928097443582939326025864338482056504383039512517598857664440956595236997082886061500698044631031658320609313041345665776249653162289059842670669259223291756417890707494020207893007232524616874243882679472696648059565848299184901971441286421478509848242765703295731448699266043361041977031705105332329405411841503982221968617951073886296328398483754947324532501736133923863257202946277750583631538915319788038946387685639430747701157122939967951456352666935760264526740038499867449442319553302559773857878283893274851624011192162982318645936718281276653090815965249071519361651821330812680402349603208628703262958761677570865411499113235060286032734867947510366522818497616370337325525451382454661893944676445266060262731430401518623610496895054946851182590274930610089885779250319187303648947331398117736464695228631978224002991955562489670321051779666053131264839157154920511511650049030867399508423023388137066838058136154257184807171508560143905481126169188116028246337502344527118469398911988158700993184214165214734856579629954598829730051119695553766767263280759467861100440220746276132600526172550217483542173940011991205422907262805963352568377922468874971466912679660135288115299662934094293931584212413242215927784984567743638554534118144064728711750895096880558548756794289973219262462571201659823207793323724877420459531660382741727531804109164937126036914782354525389631246273559536570309979480421109061159940666440159405599236114663970310977141779682585029063633037985546565920661228083520307028587385587985854073487517984002386622404653789516081532433817510726852321873535675175061073248386484832795734555626231223724804261297928184676011816424110336021432954577925572799719863466979016112448549306389707284385461399724886255065740107248487137732561125195598972889612148286504133794828569272499431756504483580757714293658896803902340089453525659544083080602300054344335289867622530741946504902375085079548980039885028192428847510330584515356333165908618766472164475021445004118838026295935295082297919402363369705894169418104908637614821262318481717429797376233945159779820659758164376880620572418072081640355834536178893120303184222359026540352828093813859837077980171375288959489990086538399660350704128812475366236244422147601533994433480882467111774914743965426890268531177774249078111676134094754914041231390136656652542457380819888188173164768795716996807141742104180548362069453257126376517379008418359153168907045989037603814962374303202347888373332015270488124381226184086886579000028417274997535131195753509638854366373467564100859222363597211778260880169268629448200338247409471663711661423287183756304802276069202846039264204653489315118828840243300089784911586916714515627969414722662781049764514851280094154256170951917219711237991535969392198105244377843624357604638341040245523101543772747151745338222681164109778339952160297135448223841100460381023703919841106221490782245519300066530842540007700854088152820538581822732435238865090430425496334265804311619241397311179009530370408001275045423484614033475259377994266044331106287820242679626184320230391061341374562185577395349739392578648551256293861536192438976896101764063368585701809280274677938057308764637472725839642830969064760621945421808188199615589111506587329321871468656777125944329002054397389104650543411950223780464512258445711005786488609353084309320481316475610682928236010428604412210329009261002740083465616350851569343428746777035015803515381413088521834021570261352568356353216386934176330371579729188199957980317177645288549341065256073875996248086002856170327630906125980302174046012696106087443729713795362223856401609405697944312684340364089315753690816279756439984392008720930878406519805889195230257074718164068293236311013689792962010062320002964228390700015600193298458614490465735235638847100462278134025639888010120152728271723521867682375518210197081304517146866023843608768096701346940701089245450732382504188364848206483376130895022244210198838728935594627089334420923119341589871838460555831118954258667949898706827865491336146948473289280247250250617805223250624524095343138376155872805178867698085956945853291189913167284759237086668923655920046440292315351654051004008473930853534422524650702349706216324651820917710445139527517722918714054837235825319974948204557212172220944495082221759925010777268797975931402448076710056140501361403654349014744798145923761664595517021468540734653760709456120168628127406829887068417380540431289724629528199508382677390321681417482929804024104265649679691414561228033012058241690803527256299113518026815063709918416746644941310532563906598586402822982966978993551482218680174788347588175809329629459302464942670365262380332993602803749468027119438221064394851134557677906260152006781573535431708796343224070349857447020177508519260675262884878034134972057985823037862057017371265095304820203280990258975072863224397787293890097510549196144585371241512811732015801274974064487722243774438293485789476018284035174273842316087991778449771628418142533488549646838852463243117561701727114116176549748915352740558716744920832834962035353356632089877371660435894376616778281448594937912957738215236301350710600828469868877483609855686499498360863759355609950370244805393294750378679869174694766911027783788552198931327403401556861725707310053288219796111589319654313758314099319584483747309607172535041029142577718752370654731796199290272086067827627720395744106641488737665740439899552347026876365828255544201708111148284166677423148843105567911251933340710311296748188371033174385879748031870671429000548190518820585756865226543177864469961475971966495633231287193785430335734837379348796932857750433340212301215946273894100511225628060407576329762922824603793642332655484293839215215393868757808228277807987594014522316554198447430634661504777082576255965943175192339921507114163936851792364762125696169241804913689180803599426782642684848603761117957504478141979242453720591214396325599749012363135183269267157099937616017896235463369036923202692362771838366513808673280315413478710589099852682007903307031942558631755086435951024744455061704003438756474091393474902290449394501226587885538734918807677654355617485992902672242749026580130128877849479404200768420275448420020852167030695768827597206556544195955247087135668670509253274721424350668117058631945115145622303716533419147806221356809108971046337985087933871089593082094883301529648633854091367893315169659852018107599319153961610253768360991461629134909150561828694095421730024684738870276356639599462383281228977312152583678745541101663573269519665696636750176084236110328401033928458559752859572579815365431103386135985004101324555273336138903515567889839716193772678003725937416745117364025025151139718990876752272040641762236576812868463956936083173623005892750917568485071455120430268929670792315836667396338279557690179574531336358440500138250997520767294280525733151243248954518219884198852601189420286843395053186783589387101348160799886364667316326330736583081161270658699119441848601463888366104642285607195465346657755800480309176797518539881267019600828546547170555260114426163205985634907296148281720075650652506735772365298501560810232642009690348673734521245134637362107240854453402807471103992189152038787494227482776697783230583553335446428447036192680829589514341143304978709405499145341320023748520832422162066181775644248020807011995601942852842314104005310675703856184028099339277656499496862111315643068070434766697453928748333553181385090082125089526430943890762853304768979097629141444071645816190067273331774386612120210882153643138710064695695867628076474611864101728159374156807978258430655556002731699896516547008542590984743503752623196780526083383103321248938998666570751812704604107061187536159607772182961178084992312745038876462639551770223162564077600686639717549882596888968090591000042551268815757854716244716789461776750306490007568727993559495199883531999194680092324298820268485181395496590272811356113455613754063958345680862130866066416456974680771689053430920332696222898491865432112491136034969163905860583642153889619490550270185750413647831891915330525231906606692109798997043907923714035757644361173002049892252565049700424529451110590002281646908893710239981221288941035784089065270281547613098878607363360299568944883894666055918375277194638866716463851615714534321329687003324375398109554889389978302387587000260060740058274499349732503627355287501740332775641343199872036614464595764792747834208727411697449746169643926510517854021246276356701300857194307065316299537128869095659215081955484943465086228344770200361312422662379405163537096263353379766611520547148270093834092568178952413608859890400167051560516528319314300711474602979376882922756078155101327582523036401141942769065595885470162813639881627537754503929660676819190169500291833680339605507516390784304315094689445605532488733993153189710504654863881201748094003741470678186359596501153280541094613680955614059010792286686179501082828723281708511161764127101182365678106428712518838476245011975251062418450065357659098436426405560175146100480773771864786081251320714970181471212386357023807141490473280320499344006154796401218756062841501010558467111585898420217122522191490481008779409851002196551245061976778550560501388365415731643001791442566739277866574183497546670167942783102042965732318816833665359441521083528302740841970502943808901026489794221934829023191325292057404348211696439255196984501288746776977509977160954261461037072794762661608831520872139715684503908743689691760880518626830908392109892190784247220101609002322922444470073809932988246290749702444257822442807769090475285811375138622532309408561870219293904336733153599626468030118564538254878827504940023376150800625683595997857161827468629973967686916257649632512773876658600281989636419733122011138291498677825677316795625262610758283463781387841522348840722147122061478050357226371134143229791343414859220668805534995092167028709013458081577429316400952748673190753629177368337748298022593098113294747869406895300305751555973859633730807782422905831875742225773971409099281016242303175396937077796814315511663465796816224865848753937776028131992496953453280176040720717543323660760053973017456220625966848704522375371344809041391801321217004929298792333869929571598366002541903477282332588431741180223459246324194276849820410550554842974461434209888528839164029663937648165874110536671762318803872782848414983193358461388991366991468110627152578601562239628905174186884492126641383786666372893831991945616901852294604471584578625058021175332138464353327878007902024043527585337038651705793962107503596331874806001962335232218685044649993593507327898493905605481332004686578071192719642862606938351752669286813538558101973623061783444138953525966140758890090153637592967163510346738640209965641320633342734170124575336113128671521332665519651361940536808831549750031411407911340348226124777436831150267377398904792619633404334064778340559143540223413573729011094042583448006506728071405588781589670999563064720825251477833869664896531495636806270494300745019320837978012472197169748170240528869840431715502507421391039826856929935822779375990385961783060413389109227524327625566127847111034834391091779677515895007032852868447732469968502478931045076180206844970903944165442874738466273567964236065904501546290331779591042341562315857704503872307165252214195898164329178024561118382283729983154055559772156584245085209884782274233881157745206816626366689343739573168708850706059919165026997495482725852383476430097480589287738713174576784699720494147686663752053457016804195242065434541456153949620384869400244058854025904854208763427651009071215406418467866106075766669449696339850715273637503912279284965612420756421568351541730423657200034121909904592580255773383540140605623827438441103597665687087007104711227634980584375875510733581118347307873080508383824870963280805712082903391490878042372912479736604777504037052788529487906221231255739891657360073568521730030875693183139604783637801648588287619112849871359463713871382779531005856662761216554189025744583301504887860480379965474742309139871694535467866871634316688692564663134583014859760305561066481928961319486511379487486142612695269502467001587214003425266834942282767879370782583737632854629302555045902516336793656577909480703827127211024914358723937697865007395800307900498772138121684996725744382897716437065451726025257560729564201846388171292239791535286406979887620997863494038872749525874480470219608129375989089044660916835271777823177824255289443061316184447857501086869312659064939116782515855036246041334919701166400477631491135868945081016820342080263054976810478105311678805431749766929018679185878677404315197406743344785756396808630630311822479786503073390871267626439572900379658423329265021447813095309842836436374338851857824177402274161063706335840867985829451162203722674869878451771382105720216309096157286109569973377276124492959389042431649078601499412623428026637326267593014579141812599586713876865569467309964900267626659992314436861558949986416600868851031878842839280677039829570018662529523451593029591754862750303217600011801521120021232303075672744429845378508895290591414980884017827695658167873401409408673667541120854693131862577012141350572558145646808580811956977411866089558057290841087275785813339236156466772797606054608849848620602121110239598557053092330488942436342230893351902456407336788620700530193938629121655923164134765778784595194886084435621643460586577077014608671503509771339895632432136656045845210986967064526101233127235335913799302392839560616241747046287275081623485015106629574314334071943845335712438492043622595703067363686428140805723004201501735816865035274683485798447264785137944065578972551785552351218775996740608374606168343815522237528102739756194805048555722220275321979781847563662460511041347143253382380895689847983680361051122469249616480168664347705693242364011250199768719092045845984166097913003321487282013768738163642873207280338059703832596297743501575184929668061806857152132114533504575105949872197450577851373289845591517426021737608807280026945053389428303730430824597144816773250743070603797032350337211768280458061350202364431568288766954043510196814187245993613134175322003435649306627940677508658166684179329536939079774186469705610168549836631333665222997049421264991209288177368774755774812000762306409634552326543753903979751787744384462608621414463746709282777847734764075849960981630434107716865387209515985983540191759097329194055734802194762146865542378770477519451393731789793438028819303062067725261140238646780211003906226529675473385777666410384545086379761959533543903391518664876801314231807138355392007522221623998372076219999539062256538358396133435987496815999209194078126208972074070091480434993629694984675399864329936823961813498744151437287526324009577416796956879478876471816647052770896500220211665462263292950772618710236413626876579197494960376763292910288580556099130659450762264082375166724280615644797300889073406190630801959080724858643672845315395385939516958049870435316670525236219620008485697726908931807853061926945631631551349294087346810533657409864786208968451565477456086788156756697185926967963475404612719329752006247456456409335005928307960204661818427935931404781378885244303683196062531473318396786361545930969498658758030887576939044801033448099044906071733808307924347361638237430288603112386403661560952855514318026021220784700351522163691052840755468006099844472352493640477743523771389716813279330331928898852629415391713533428208050770382695229643876080066750285966380423209617143026517668650177351319573845756133820924535183538528408789145583781022745732425215546240424217257450637932057211795810761655623694658367764208067847512139239581011178749611788666830933676062544570056134175247591129463423256033984139178534478357542517332625694043983361464841231477676350789657894669951918034018822314649133357624676359497579983461822881453141907995159628268906559088779302564449492864972361787092452653118833155371742746827934219174820016760835588088861990522910448943706408728932298670512681327984467734003147153226528435005579820122333229101434055463801540852216245699350094182140777300845802294787895493741949862369685915396020567357615051571590537695113892628724709393204355186769627937959324025831292903487971103565885445973958176835657847811545840735465652777955111078631012901926069243865722781799639715498969525949500466625861367504226955501914299490994644097565550160973071595937039258263694491686457857778876235886476523781169116246644988066783849461150053886976217553224132309456242639976234886297730640111457175985081061152823932848167903776074824143978330931119676978042381306548682455303274191608575642035455969013471717758014324784734379062673245248513316928458109606295715633676211195944032188897266574402217453251357133299443913241179779147790658568723945751502538890108906364438411453252484061590154646882848880701040158000818827106353773632968963794818149377516770590941458857870903173918241362320002276089146577570954872568867182898278713242717626011382106236887216072018072746324766931737001670680002319434647008413337007665486618092933723642051253852210855653227602653755385984222668053845925803850218079130913751577456647789313518115668689565666272476774580199827469212088741813045512590703736198165818249261894541084634364005379748620594956985095628468340442124004609849361241656884744693924107223705484285089667994532078330155851483303615630134037165235022564853775748791910808846461866398788904661562224101705130814390311895298929467325376532831258182688843279799920679932084388702258628594947461538236370039229698176539867523908676722568135070511618724774029667022008871633080419091719453954721692859689655895228648675301012161892892766266115185934538883625400099295311151038601264604098392028036742256151758987998927831634216842930925629608340349939528172285070580815936113036833666049032986332221664427706949829576676408951371021897757438916067604326290496684136004773555374643109334953152921198536461449939256877015048181423676257078523810698883777299911387653780498557099427877069486388597154598627731251827004925728599711651836060984160876139450727122051877048122774483037377190955077125447424537180063077222650141939738075341823866051376594252066066528540942318955214781870804213157919153995460869308708152533858543525943163193273092342804745722847693612332594326352606494283401448821731230739002107765246329469286836479828354214435633365350277751473600136073197803358495333144356068587791773305753535066686508931884903595597353552295367116001009900975272194938686456359614676145265759335793563947890473553371442745686097071949951727787954611488769008609483615477907160848768218056625062447205510357289631232997935905757510232433733600706714534320002633602689709295897795859235797115989361263735490826933588396221724331180192309995435855969338998306058103230325516551532775496231941186353391504283934754438875354930495703990611339411922029794721119829234628196420291410369308116869200610176988547313726651226448384120233660653805850444026759149410931780229568069441799103800546677400881403463656296617991699404409029763672686841725791061022807575128295024764602755739392992912272954150201973970611464106062019415427850432048263422035070777525304931586801492926084170387304869126350424267657493437603161471465551832809863951642476170275647951103968528329217800122254686275892067442865304842030596102182209426292202694347533486913371785664858311288835506806080053460236753664366476559326692135196199519214646550339237460730674768574938239380747747351399503052990239379263319126850527553716295852514889011838567678831255852877519089218956355210914810104576494320114105948108615079002875573911880480755950184554648346949899357754422858923630025319578387076524017758006215545260174113034294838361385294911242732512674474729227866394935033642745187788404433466317448194771017047109183106277400056300736231598857253807741524376668487399901899521963542122347767601057227161965912753728110427873509262717635391742391020755100057367963305776201631898534213116016539794161786815337912295537069509085446718407272383206921537479167714602693229142178839669656570223120698906322567058018762085546055345532879668623246020564464849050777611164263282616358093875086048112353273051070526023230957054943348767048028139007304581684069804304161963718216072813141814847703306619249165247994009096649768801339794142963949549266035371390576333982340106889360354543367947221908228233684941207900036250864174755209067903002145898197875966676573836739693035687772382109975417038800951819460625164507000259473300659857342509341989254400277553989078499120967324025484467146742021103557873370272315889648294485553805919853375037788170444229721758689084442835440886248463787789227716456622881155703110611419919459980707893536983089348869935095530306210589485332725023243523596008600984385422160422620235886475522052718571652666792207499399676639699064208331907464760262092197578021807307068500409074402216435108938563486758309503748395202794054772458087132602493233012407257052507991364002256004726001449258912699716729936935141613071294280647575828283083628082241357439475860499473479949114240488828630495111876688339797652118335427320952784762936189475169822452405816183167265994159026899778925717339992887412565110727587146138114568418125550885710049963076175877342171585663558521065194285621571527141348141358869178646431008982948805890321902410640727683502503280966775694440423714008276296807803593167974820143829474751618520013138400912081559384551117788012579644637004518513998553794868293187745796491117641546467934241813742381338166119860328308590344623244045483744436551655804549813798771350003183098985002562061046660500752476063924920117314029595268240585885904599221878001264954972422182076660080936182770141224455336161475406450036072371652389480519921852037384445295774422811069048562058158400211816105456257597339581788216346478126844054137669688638752097159981915847312925686475124493184006647031843372663497813041914184531683917199896066864267823290287444361005050476812939113467404309438999534470727541429181059963802354624757329240239967279725239745827172514742122065860387329913407811513160835982732549640448484418672634260701863267968617407230817757290875228129503818990105545390076996337258794048889684283697602896332995777091510384099922940515609710829572136225594235646128229060320496105834317517884086641967110241307807446549371376091384115419712056603099792269569389243312307376815173493026592145788348707773416585779842821577760339789379778743576544538981774126512187540692566346827016435327382198890227386739477445893910075309568992575513799885492412174062834402252037306643808663776392205715686080674303552924603209007025064735227914105037026909971356990455773933653813010753757503481240391473655672882314609332153492246836786080384299340166138172410699806976680785812864640986030929153600727070398159796190034683020885187027062047485490604655450248903455964540254429441489427585506478608412661443724007581307281775058452216031191587576713818256029056725229971041712587384397454802671912637356314971251596192698151118259111557076412571255531535561244146151950188963902822442598810964384885609959381392700518665869534543209034128062316575038656969862809515290208929564911452139252850656411048357994230768149128249690375131949482008717483019497528364553168323122946872034433201251395581955105807390798406038208849123625422491155346387955837949580950136147472794547272610900357504154213317426473579361829725821709040997716359236929787604457372517983322920277870538078469300633354212308782121077735328387289595606907787186017530769588837331414230685860001266342490438599789766993397621835838858540779114437175729650209072520329456884401440942454836035545004027282046121809831330175185169419977974005151991123330803259777875513192571983490864891738858442215744429467172622184900480217304548095713203941466168088971448721996154336049144161415760075921503758508633206831437847163603030776110906318096062617054242741193343172677933271492511824284315814773993723129010231150077909965880845026159566569212117864635058936703227107628900858162282391145166099126478981672949001215030175355019177917140871371081992025714590942184984429428728371004932918535069120546363263319273096152316606574373749397860349207831873316656684810851132912190051797367312086064659368741452532086662532836222959626586229839408363850505097632418907987298400143651878755897437407902197289499172122272174601537894509823079827104836881038541422333687920434898313674057270198944547119670829936989673844547150823250697470460577096651364055298417652406143217113225921165738974991579570360718297164045395368378590248243265511935749777976378109031195716924264725438718062793704940353990675026250607730760090645716540437378406205573186244100346269739463447506445260279327933135667019499160280288499792997126694618512106616575550604260091530330187564380559898398287506330354979017823022382980075145508127204173403122951085191928346770516316655182553161685479930019375233745294647968495586264013194090839072325858274689514073403294435172229559611302653992476139105921712390803721908131525727352625275503933263192086092021315750578578467288948611283394678192629696476410514056617696323250122233975372071473828523369785118574828894837546110804188736521039156156229572224784719290226454909989429865553135310630711828686779495805030127274444276543820162264427071375037171933308961001281813794414642478708053521195104649495797954596763502661838611167026548069111328047971495661393105456768518058242978028710087902205960607419334816340806979673220248930458074754409989393069504555663877207206222939096486477534844350294283560808154255820763580458087902179390201608616570628235017513836271367660845559980032300554235765591876095087296715328546325387767351049660205125739903248403950009351373921367503174636840136678000563664819261555057688239834404951227620801322455369549158696348032172951509897832081241246579488518296288038377469578035487703927695788342884293082998858214404311268007551765361030537338377403296610918475335613831704537114484666193276872077086741483140008805027104955259963076836525125940095179022543363369759542998538387809015433766679095441821593680473569216098113207963179297602738376605470564474969732641466775630663808653544248366383990057236789511660142669867254017928687765857139548432976857531976866320243845239116582215692047744490924937743768632350215713373082017853963992003685262387466035843110834754591679638015440248786601425625191106075551021572965319080059006067844546351456486300617416422761905754104043735757803683335434746757772275573749482853978299809390014554446831214741513004677616739190581217429164620557774264224772400711640602531418375706410368340116425979641513145116496740333052431766156566707145258330970614597089049875830460879118374197812549832975945278807570134005217358946067400512183471116052209133171683536195176263087929955667062592258132132187997437881630943310775520597747734144919214917166520724883549523922894836754978066430367845982576687039049103653013273683047513398047216295378444990317115040850772441746837715602693702198613510109555723245731819532018199196553549524216594691493905928954657889278329831057897408902415944116743271430816274224882134883200835386615239751192728226425059277361680907194979539259764725570875645341567032190770544250634280176940996358910075008019042752137830236631617274881405213203210278198884043513345634984424272520429804489108646075458973966856152418104964302077222432433513058645263190118910627942000848322231730469537282067258153142385817037380946989422378117624951920202088934302491880576820152085888225256160973870176946325366603272298554596510940856079019348871264630573626987263905050502187127073164120223293323354735933452930847155394338220181756239992798243382704110397197560727196867613812998045851801190138888976155500739472046950378305922067069565309032547564223782842494876981397509378933331664617743977612302699871504552489316598521734430583585854760110759696054063087000432586407432494110315378065870075593081284066489764380207983390221168324442802220090054144394864043200858925685377500411348011269741865145114526979917218319688069650333632585357984901059314919808613685815661297281829553878275841259800321308522454797523346086171459087926529618437834355424634538622061038929759897792553727321440309147098360749259312634315457775754801445635749150976818589091525053698930620237080731306038848551471496604323444557145826356995366704960235825822423039517245731806050772411662995405585424253088374154431255607641362195875787002663665339077590298447157299792031245286509500135458609173491640757588582126660452299377515071619369292507415135699603943238123625671719969371935873411420033793269553289348260381585692015590977188994580652228885442661190035559135568352354286176548753440899055816982708046205668594276788205601732575458376618242069017982567597937652068840663603619115235831165157808396444184761230579464029143204204355544893630577389045061653677539762716657338163295816519106918607275586428302164172232893213730538519409487825978963411320258502328240941391666307906263498037706874947995620664418614484409123388142715478162591256646953336001993682146872192309550675341464411033344496676458804296042896090945095633596876856045395803107346577732558797540064335963119310589881631022168735668143526904898081411790798314738844993455553312954671355977166426591244734453364804048926189657435608305188125118792501921989089744521767218399389101875087426857133959890396226947040691621108562941496911385181032553195698324988080161389611992973429710701539773137133959708163352970603558699379782170942311727889177337315331873784133520647293476673714005494049082465544505642381010404442951907533821226439552420260134143461497185852109607232279316967557167326446578323264875989128500519084514921250410984577766534811757066565488651725876879991365102873176399181628953498025949948284583752735043784857015618143589962913412022732898856383133059692258166878702605652743134070243021942758843057226255655471333296235158580127388499598899345316450248928946512063825672350487552027996570104488784950226100056555263039870954667043731487005386311764750858771234219131358249208601874293114885354001033070874735895462296896787866608595953790699516920579115991193837267558518642907046559714850991218300606337676132391417162303117072155684408040195332981449633985209319043094180814505703628899560041562264027931815972507416419405870942991401411186659361384313517360981912783156916148069072257681836926481883663387315254189863318324560015586140335438557323990267329520703968743057574931965307527890401674148948051686567942684054123753279807399269196953963073087853269094212078481657648954483654631577662044894195420612608825848603896986943866823096480977013952353660957999134664991161147241268979434498464163373678172323314914543516632887851946741959056018179531700338117141783002122104057243785577643987075174042291014300674461808398140888819493454072397228325025053726456495358128413332360928485586462861691699220056806478957367997348928357104031402501945505463412636696601830041123493229131245340233773683571539940652932531380736131042614836101322868895983814331434694344767005752243682478597170790829711024579670192168245814999201440394154681138606858391942303161665396698268405896530490500564418669309418846561771279123826113442389887970166458619839921239333450564993330516774491713777948536163747977019736622834223499834339673495574299906576819357382966649679988448637627236820549417956676828435821462048334328726048740312613770824985237111058984667656666505026885349746633732970722148664481177957451966795342846877068607996425657487265028391638235276684141684278398709984166910219832971175683584870288049106389479171632956923959472370715582617116981926155609950728221942599198954823759056402612050184558156724756695757330453581818913577572707469648761022201066930044048673922136303303214429076284706400155541051795493897254764647692696658333947825864410468006831289081108663218783990724238459855959821265325158732766224175260043461629748666172073885655173490509923377787360984366377592506776051318960468472660381631162696600214869467385424658187771752576825174626634163134534542863646019760251261828001178463799338864331243911990702098120102185355536184786526542147275232259906242325350289895451264349920644519114150529752629176050325911149982827054382433805652083192506392232429401481012267680888408359216728779953900019462856749149669553547653751835949804960355685679178662635103696362375493098751664990475026341701467082274493622561484758423241296876259966336964938014290714290636369298580010971988190352716861243479641816955848322011252807769157801427742364098915160049300391640138790052227821387358443265143487330515528310101557893820752348850851313149591474996633320422506562013264478243606281728059823010081038149968296344619500762052112057551418768544833198796674063667656188998630524239120909801129049822630960673337995077750405280374750408323557605564049053029720695493434519897744284095606496226880995727466150110324784450796581561219734621815785497626257252003859536798299208459994778776555561420978105563681102132837251590764583333509736216996175195904168517782787615500090064591368960024578064923500860576375892855473678955668133711550369829479227290438206263464271007937502838226344001665218366478769851178506364870413664254505625116679121529037133223828447545253296093366784154566209193868937049683077376584195030904495267568770323641907892620749890258566394823442753498460788087677084954574897560513662043468131794128756899590481850358252108248191939877926395408517561905513492833923272507266518402337612328806085124705866591671026314755995096425429117467951811243238431370129773883394335826393963101334663216479062802086636875175183515470997483891142074733504399114492151796486678089505898977714436875675935567383211232703881055447315354954607716343770944616972095455797307583939498364344872105674732796535206094988469142087555479524658213406740794902409568285973246346425615162221230684320685816675364141611773462028551267571088165363643238181114997795810736811986159798280666912812969543707174858053859304632442932754095880951424604154270928793589186482380187184693258240549633639156707995097008016725923953840740610396863641205973444305170157711658037268395968276683088489570776698073424371566639572456014788878734161986688161451073944778823355244248234752825228579775945405064004898908208771274633847203435213938367182913772652214263017033155149644305657691406228316402548774436267012845369001113654630410420446484186172055492432372050591358124336942493580729007934714062232288201968792862334713355830408241906252306425511586058415665297035015847018042031283418530489537082604822962209363297758475788884065883848127295443897143431328897735565096013908219703111674060452109068175822344461830073069584316878788499218586681183680338068455662397017134235758744105059586618790189188237023364378154252206907116135559250271588352110343752802932030233100621384908826648458016800514278848587063593195479429491255860910580257726550953114020438932884922592084458075182663604436544860935442518304570220189500073774414218558299204431344611494587768340704010004349916336421910426302734472160757782606036276296054379404280199883897639409764762219390285973165982425516870979885457690150583085062027583693123612164773532223133263643924553604953679018101207153473281875335169196781548879357770027128918618974794495827248712823755399019767765685446508726139328314928807504750915721455072862745353831107225087683407427272111981286313623293696064505866251886394703197456262715900138949046201592320006922628331933240336405691228738486836612154898633539666768948788105438408205942482611370003352979870994329850768590122276587245728486963091696925694346555836639144205439217618326820812158878330512957136342009977203328088881481158314288899803062821994146127174931129995351703100925267671205677091788638874912428489539404714660099759761968430758797983480161951184126904359090003757100473727379857080636483486437460094277328286712746369849020369200660723292973887734175873597207830213572750255464673130695606021461566864998407965383530479741081807425331121631278179844343673803452677795193069025114276062806764010667326172589190378745756098297667605482786566900617727190086529139635099291594611304933907702730836104778229397032957210991148268577553781678565373676769636037361443369215321168740614721613525168308735190757385780449329304830369554899369302262383416248395614518584408268015297361190419608972054266782274016475408016432936285638630530237487467410534449659850746752771152679786451530387679493102545660285129981139013626194221607779872367108315699864120985202486836524676423554614324159522939705906119275023102587896316393352641791947314402251489616908248558488240081961882049801112789751790785927335138634965328684742858483299007044769368707451795210926667592510265559065198168883069924060216039043115878829094293651704257510176537172992244388577747041290358685257703132447187562033487070264039791390753970203413303581056692408679330781341102933081005145300215747480253036738143389354223218588103229924048100858617801517421930601125946779334616253587949139272103269075386421317609990897934838657159315446642118890277932364126824479179180076068049962594644402117352105915511029936344207699489941309610899092484253518480077993655869990402877037537499385153897171228568909075763555569362217787716746205141782705277417156850854534969777598655864727914146452380697773759288997913383974416688311506931026794112658405179001287948069188973781718834347351325327665779139541542568992075405772498253079103218773457406192672804204258235212094521848373625646303112095840119445050358196381120347464698850286972942674207573672386132011632495959944243992364226281574210407607313347347853296661846587585659458621228486952605986101168476883740626315913219167462030136997832712208636224165763686922084636286100542946320021511294836928972377647159857549933101628613660823305489017338824208009373265688872209039253961217069491288241045366008847757267627639851406097021206960794738173353367036533560740441816951759109711513087968249284139786728690974120125211221273745289979025025009065832493155058427032579071633443635032131432166381538591801666708438177088615496627349238973276914188228614585779621101380171426963071296991296839816635838083684064030823062482865388324767906981364636127450577144074541345089037159395730524935575693798029970449651094632616385998516278976608897719436380743483205585189346049956798193205140959342832427346596523135675828956083065220539133861685960577361580872529533281433399774828863776289351183982185424864715767566855640259493304498693972097738645084437862005563761482278660543708039746256083551582216164641009743627624133593178438362440596244642223156765914464623800392549048946563366551360339637421247433961845498534050721441485522582829988850290579164452432821906367411181962531307142547803185899002694496132062556171150292203364333539185477450486854596915481673771393004984889344767888970091685461742248704703555697318408370279544272050031010945178612142755755606624765303862550049539903448863219788668476427634219230953463234304684336358567554591873941911597334518175935402346414692731102930783032197505259262073324938367964323649698188462373553980522274595009819878396736688367162817876873817550701772218491979442957734269056782214404841286001473396017957438324365902160295995823827592639078111013885695146712288917326043242809296433443425810641037858888010738723424669845678780697448005595223225148706772091243310659700581266273332880627210426522328010111200502454556632920847898726963178230042941765496850551823637557267031852918601229145115216861118638605802922166038153782909655917538039996900723526383256008874703262378047118672191630191241904746775961291784454557823303198444103385341436508347224412277970437240270421753690283760119189729769658884079892530870956857511132998977976804870955607034721193101133028494619759867915118631244375380914931293889181277940198581071516674340873853343239977542574808259580782113405433032619011421837159913576985353403298821237148436934814010641157532507547587885360319733963396543325301793343076560978370309116808252118591463993740837205537094962052889067194981079806387367291961015753993480034950467119137960600084417749852953486155367109863764837333997805433549284832811153199824284473740240697289044969918991441518383463058280933781180929206214822673696021775124298277983709664775100097571992766512647192298424161519725619554596832677706736913849142815474396904024212781575625033479216046982240075935683046588680370647252146098481696611844915826799192686546170568165147827583651279073564393652334527844682013796109316682457414088708327283776058240649320396323064828834806678880017843337763913884623810731070945229599104874006638237643254899828609697293485262546670108355717433090810526239468136509835002645014655893196918700053498224349772703482376002541585671471418059066816010966149574393662773716921224528906424623702893266587691641172491329879121640261659123766551599397373737417623624711626550819091895141194698914323035831669601212675130421947448549630493182259987800427381183853663572974216719804498901489933200391944035889219661948272583676004392648494170867158832405462028293510029386315822517089933946490189599768912246450061872543943116078851396759813954789216439314169031018589464430888237678750180118635382675307061624043149840902864538862746849652060913406432883417605527206322629994878739160623416986186683877291254787431588917232085612905739958074572153901680515538794086871408640896937617122642795996520932548308026315201062996860648061902526417952691059500837667806693769157909866428500229252281629538033401838648489388781330930466733630928539569339780077984766662967677897694745865755704612044801958595601102804142335172709738556686197148221074498933395241168890680191869308404671230922343233000975699870823755342962985314178776478422240318608532617510524231089887700601701976199710224688557812637388935306946769908648687587103946684044816086136745174664828008425547328001100306174142937504542312734865789352210317453916844760717208840291989300238973426969277324863475736425527046571195356625672383723719267826005804746301837729308595638871619941864690096168038837734536368370321307568685057374188813570554414353005972890413315368215704979661314502885217460058612081443854866182635266970361672892427802271273445638037118969852436716250205488303602567399090412868706296822089673297913706012999107487570607324058625330524817910914203359902084968641008510724000633751402550143185700580574420583669620342303947435754164315660799441963902982661594908582951401530899564060954600028628796949508241988709208124052893407699317702422792334775135835042459220588717214696839734814861649927213917639309017627451722012125487330423503087406549221457365386331495426700356846155664743066979482019937406969977398892284937034170371988658016847662423716650985919602027314810864571573149959705625538918722657735214085427816689240053128390472837846295708691168177058433967488554746861833233963115548362182496932458994299401308879756973909951362105924975657161087030599200716250614211063203454484470635505977451836743558480732205149191132586765689494054336298063488911074326674021870728482437136246262599518345024749388590971091924967712909911778896832547559750027361366007081965902493006686372619900882365855402313849472770472597730605834638679534571927915248482771401746022895459645993545441840625905064532315447080233635975367057056774962463821421081411353523204344178810481624186045126164437229745382773322855283391146717245093944886372564011615179886371993563785806099987961485406774112504548071004729728714674924397847540221241880722908999617919336084606489717399295760500405227721840751210534847982610619269804513056953749601579714395060287563342853545683923710236064284371836758680101057151385210483987881946044447975989851813970785177866101462047920467671536412061606198110161091143490094557570033525702846928522053582460359661211361494978270218966047505344370701165695770313972687957569171198785097750180730389234571299670817634114142336868882656495808429969870046361526634566831047803227522840208672417820411050021627525861672517429695764722186578061284599054927024944184468637991580179035941958047701614242886486172561466863519826199413267343274278542206108604366539974885331275151545498676233200138319491866073081924334901463621619418725228297747781520751341338519727460373354618048792692123844190568986115840038163099706107363466325996653340036866369748322458663114472001405136817960080640663982185450162564793328915479930909903546757970104817994929156779033696691805702396076000754693972193231520447327620457720293555229005989309612302003021396109523997527132803527894709422289360282973910437788635810162167572095998409870805859222904135668530363038983707318560461629264616939408282395167450773331411324163134048757724167482848389172546018730655370021779219266488030076532827216477979429161284959788800691498435215325587926331169051932870262883999836338600282540378728563969794957057671078162757575388619729111551208489622510588614475720965973332319166879660165470943597448198642029376224246160586174309708557588476944145196459595967568477761121773500367261782650320686179360197010044889778043200460828145085040838327803185715081506765514331131675443528151616823754321613620042911607418060333934806522472267366996030198750283661384396855679675483757741122733309935263309309894627613299230037597964854510405838303005338498331802869711020482689850547458422986363080838860421240607116831244192788426703989549141431937159349225557494062037443765294802009931505188972970267865163511230307579049765876041913173671888601332134079933161859201621782489239436513234401516671954209281731354093841645785837896984442376216169128189194475236535051905317624389082672101731745763792622115998088091170314333880480623831949714905190225794408053062840712827154635488846036893469616148181432532718000337531807144478314101021743055389579992597102801039242314069947096585437698003706610677473158581970582905895780453606141016813133361933646645318164410961295478752193934480105994166229407272606658183508390609594477175842687273413904421078818169950044116628731433258303616474451642255137967620221666922474589774883425097362070592518589637152684365391212360893824307827470136477941034963469518177633701811520268713225519877934726600877516504512954644252073476977414496669054440793197978511521588772870904922489806170434264484738035193798179832557765568468999847735846229168001125739389294966244345483898923211578659893714580662780872307738391451875326538588794710907041533124308286844376547669203375309523853168896356031695036190587789981314696456427998164789986503727997955721116796369334216006740937414746186346524791309283154377444388566313599624766213081575179180344634507201584278284209614106342640883369984471555340415989936743968031182127435791751697297516685943659614490118959925881848718270611744754215839813939644780874571635348347938655821990458416209653482025485608000210112354549424977350464830902340236056671522377158630074790871130486679601925549626193191006520411325726277346560614356891471650003285658132939637614655847800153230319256405664188152624550120866689502595531095042896549324583360006838407937099401165631713974673564773286975384055426247920604001179607697719048428281968678916872622326052342133296061190281387999512714395056192188812959994211676330350351971641879683092064369890805389842918309465114339488911106190219772738819840274493527948948024998768439091492884504489157497648787847628467148658771245579751745252832454386991730040793503725642783120968366820638447922696230710956154081659870321705998302792943323079116113573157732511216112396517631850605334352303698137120818835567705664054419612013459651470327519691961153674094973495998525249545284966017951476024772681046047761011592679794891147321685813732211597213811659726118998047186161108627553191975369639147367056017650530502134818261809051041635041423135499620431016490891123905743471976815184328484978725894661792393084501493558825315954686958287220967936604706800733854542266685059381014877261983280751317347743829222466771347650381444574473081985709599484776583058866538202414613921927729336392102711304300743485641709703590686372643361576488325357071258346818141885898260059448496151239944780118581824903085188056552626859125046609790213367174640352467585520384602394233546345783983744310547007580003784017854797183628446590121577285857519006935373736320578662981407824356273876603280371131811317376968160578809593562351886294878884243815520101901103250442975155017836445346640882741511816269308177632250800799045464696573685622586205160156354358827262845891180557231248266993886666008633236232140523436027803412200481246315367179728932106959523337725378202329951917171407327191768035000143050588637524979993994917277384593436729451101883887619075199742345132486712842363693797135002692862034150934460203223725724645719373296033603919892514828902253664045180101742291229668226300824569516959656262984251007835852110983474929459535821277413588564698365893183536408784999103720551583791962022142977717082202317536221429830663978286928285350512401572898109290781368211628218516085081958762825115827283229319962750724429387317006881306015712080632828492448205713398278478676401267161347422909654202939108077598300736458578980705520215393481413952280247384850469647214438788755917698870715022667215144319454439147100250942409828442870262019262456909178931016443206731983492340264636544401506164037673252756283838084953939246351043142298240662513488407230705100464819090804685532548130546774064931500498514036090147845202403154399511961384189623763791396952623075510355103535084899993511654013169290252844143046195144833589458597436706524351318069366105163633198381890684625128601379203839203511920161580676758194272412473017762016937707677674156478235155090268544579377811208647076655819277378779201929425046709869924601726812369845348566645325563247565995499675059534707867795049641966926267717760440229510175778884763240759535622427191966868548977278686622443530027030208998376854543335300973050733653919746683090213741855769495653069826486809141469878874730201992158100935659971725034075530259224760876047595999228890094260508509261582879685558429975701665745951179470154334785287960831282777176362019779323483040400147094826441390111233391488492475408740703921950933768278649200438004412341211334406796122739733638485760156312557361011956270659631563747936972562979206971677110405143112519984793633317603168077921080113948763308192032258041154399245167939868064782614389345720841006272396034853373151528093183162886570622479324476144878128126960382254584453009118968354434690564044025884796707071781065116539452874312743245605093672497016743270959394677536320468929591372530207486189132500332516079911051478797680449951320828896398591139318595663949467754333065762062070850407156960981382223845394316997273715678623290806048345097612379687977827063264640053789044499500440345785112631847489117125667293936670770048649048321608487365892502443778347895780908421996323176376209938446324106756996772388847114640912555619389956573288483549837638433934447503559142431830331316401023216576026061566586556838633318798646283917349278342324256047649008480294745536029019013293268395628217922848166552730548141943379953647207743903806013260373893342290528905475986983800063400030414381213168665811191203947318865811007506451314621903948248755973176380540384848383795178145817929424263584397394638992228568733753986141551879573577021833374773666598423486302127767097531534587623825121140899241536475477415535401313526658522064929484201676799745030650331816962330642940256641915466888735012443532781905086706264171343263104200893884338323384931790943089992235675038811444106952378447462143697245532734361651459912853598907561427997501883037168363839260589780309088296639904237337078553739383940307634691519852713264670564857680453677091295969766714166081947673348266541176805416307876996487571157748149244362865051457549399162857291713781568987407741133726210411657606696273324300957595640551226838498158131033709945663682047627399856121319979922106956189778198335902417105921125521568933061102018774769015313562345018380185263381597170602948529923243219044089270015091527703929109756638758171038213951248714713862749810932386447192470264801935248089039373532273487128246393974710714414700820077877954385257495203623941917629312127442736092718891431849100458494469528444886831061197049419418476266164429819776472392442501765090204241839489473122883040178146082990185626817765257518362846831361614965383923536121114944160165572094880536768916679621691051152457413532638939154432294107548564648088763746578234134575555778189128941980598152728695034928532204463029812450724619082122314011170185692003464052722942841101523405986934148580163435424050050670000669675247051671795819098855870836389746387888224839004538636317321120124111076340051515418338968391465401468477672025320138568778785820480554408902410824104321146788882909156572244334711038092542337377312235759713576126353009115408042894560126750259157979453625742335983915073082602787236596027135018579619859228579543583383474074188066539508490537076627102194832420740045223359540777160872327617427349512207817040021383792223119556691726273211410731509533806524604587303409585538740458578876702027520196294625273050120146718241564145863849657632252396428583804118615102390737909884229500041574296719957266726722819871419749435018018561311164316764699462245605944746370426374365653451309088284939077795913323121410028271812347888755939532909239991028505924114714855189639368162599499539976658691933461602663103879645107321991380610070139797909826286917536879599455575410059151023331915737856359467809492858995941112374455151515102384159382975910833425755435493304633511667130718260283624757900514317136694012486907598250177918976333289613512455718619139548446696333743490246207608128331084320848375184741151797693694056550467197097982679130827307733858322112495068488272472728119654294299790000120498193300231366552555732765572120574933467843205424055959081179567202556541700135054453159758046156492170188781242489553125513205319424908052115635989996468243378369958809149727282539660487287964708262852719131786550727762379041173191749891341474117093317604380418386667943435619913918183888742606733784425947838717805836137513782450282812992461294755746598822241494960800499899114084738627918589759084805714928395634051042469109233017332431371825850834613253472185478471923805240471300409541732434143197089268121759033259267061647874645803356140210493680521351558512874337422020437001394775707519466821653902096883063259048654688784739971520889698875653720407329974916044290785772696992674961472209195975731235046135128023083203497673204635270596694560083433816406232979249602714988892416019608751519236919485440966003774590661399587271635307602476454283733324774194595888693103274040916320562290239447850853188951899467315325990600466270415636877887079845078807208657731436597426650750701657427269287424632682250347874115894998341198777472780278104000112378602361180403565968029471557846579751074566307557973117961419945521418324997397386978469079349635473378683848183363564683195430899584777654697721692879218065578582279905438163165661139120719998450519091149032787088633361604962289709457238223719567678194088829899898696069616137076262806576184321578023701202592051658696157392585768138783990224391405498733115647641930304034336571076637703972832008519149557053987662332581341497006831348102645313559019024437024408045552173932113271628876786887730719549243110634535148788574228235309524581598157103314418687498997937025992407629997270936404421569542140842181759791969193307263651200313087355810568913344945992940562226624935806756615560775125286605855930718922327213429487673819527767979494740313864459568301093899580117880582205144328488005808419436232059827227603731333987322516108982187470424023527103741586851670012946131222728611201656001349987156212195545474906620194794710581872758257472240938299646923921887057666302049576951002466196371716317557525626471592483491170414997595385112931923251450007210717041684484575667622944798432990562029585218812581394341767671047630955924558198381781994371464248008375697117750165106696001564022233564225815386065832800121062328179937881812004843327986925318109371858779044582208559320411704686843845691447801261527354710248529236801218726058802173778434343446823485323405791519798641245300186838043586029654491249224675967623169424186209275166921861616643918143597567999226808965233793918056517824532285282129658339023610558993467564465264195734166790579639704355712733264090043129741073220990315974415783467283835138575223655680615053797424108295461960198428349641755376130833036507158448962794379262418171748960859171394045161446048201715536412604545922685635684144855019887521948886457366531266712797508837630366803819233104078091457406606249215174406686275884694420496753925388056401010747643349012998971673044344484225956505214420693977023020617153277350796916867995053077822242254472631022399779349307281397096007569759716339394745765446086707017450622643162339370389472056519273550190107327821062365869042681328567036613737999974067690494778153383282190736550460913453213109751715254529199439507626888785202533381874422923272426990219896352052261003876578603169153356578325671690931554954628393858885982792041612346604534206101526591507295111756819478070557727453025564233695484954103565246991966052618372596852349679281377001387655188771107233049473061109980980017615313585686201702767455191854384917360780654286537931203373619273471759372961265994187013689863514869216474344064584392860565522852541573598269473775818532052386689793656455906739175967037138792861545255208165995352144624668209301570886653397117044649027623199333949868809559856698387122054164381795303143127548442214891298283391237334211336389794551904322956452510074398591927439773984781222518156016834099239544568162963434597770414701939355087431864310785423665333913409661059748645617497768602624140004435901162105812859294643463338066753323737975127224055080550329821739862777132089197798490167504827891274643418197790442698223115542709476428015821397017203486662823904773595703434728805833560572861566877193682544833791335665583063075984122125554197789573725083248385589001865366857581535536619303856783375464231554843855316200956532588747600422338985479111947278917249141113815624396288499173107103689630234048192484809372745892655988335691688134545414691447536233631085906209684404457976500786580274872509539877700018398489745137042683439523215461736915345275179660849801426139203705503085124996320420399648946520410061492909733445245680068981580838133123781398728582658770636586711496692024935044333336866682598540528214227490616388967239235370513296911595664539645092860957242213093219207304433765033758554041854586634920843951462712806720475744435355166634347944803156011271728254251050559223966925555601904527622780492076228790296244303825258077086785490741616050406505239473685841706467211388009818119303583469157853521549108318572508679718624837428077739902112344376837796139965033315360266832863471914559290838782649424886041013948085306352211916008567072958316312489248914140963049873977348251367577318246559491016033850243092251704832364688259091365812300740985712830322057095700318304439187896036923359243979984068789322910478569559742734438783664272692832104206990869258833301585234781694709182187036010075211146924790753775201452726444775353319668187239571333361009756823320993324921698672640163500522277554115406391841355107607964075288369432527258321677666877603503464100897981874979910842539651087562039367481160470883111881618258486044060083762090173847928345686772687426962881270338670566794507167539439387629381013572184183817162862130682433022954919611711757455558883724203574492952833306582950060516894087966785191929156272026954447343478862184406053075723170219868514673164603119627652170490047951227395017231029783290846937800118554084629372839264977554489648231136572237359469014297575544792918552412549988796703034454662899928020351866466266302296780717046924664565751862730338255346587884067320554275486282542406965411828758908453226715851764597784380224961028677956482972048532145457031261819491625371453516316447321881628744229955972963749358033567986718681464700946539997156636491312804032408858234578026237350905470731180458667951921128182553571618219586340123462122037849168378367523990887709558768812842822136337276164881240421800999798170732889448776136466272026286212519232256248223633825801521237967084179620852834967464721350563367179144522110033941670229115996516205830701408482810129027611574181801757572962745627317773686321810031925046609447516857846371344538820737754820363016526689399317690913723313130991318859268726374513654137158555030523990513038140031391147705864025459101970282679415758507126712569726372527865365605332272477195093155269363643195010313859572540087119371359711928587913321665459918298575420186947863685514809116716595008744064828072615689351128224310981842338793438466389402584048278053638830323551618043510440118223837548294141945177449812713905170403516227852474774909817273294955113394352555174614761744536223646040506400289154640225847836667574080868422015196895287202613461516072673157767953857340202582188666208540239520926576469466195663944149480273320816964351203419444127619054285116857297359165819948914707809985292622503062102809768596454006646673586271454627542186169745443660856644159972412233689223022592790594582066003863445625789457414639304888111547003782924028163442266868108911129332076924955789616098249512123853834780442466198445197362491413267948726339473810553363319503561121910395346422503591396247765062607598040241391080942817725444969903905139005853473158717956301738023398962109787190727443461089399204817721296421565941049676749153458120468416057482172667318281832591120165960435825097222255274965549697275139783522230931675433651212583166677443676944246723833619188542901846476417942307611895970175826061266861096224447936637346838306048910390358516697401319205292787449433246788584253502372270843410518989898242955773578661693687701375049585229702547575928454887558974721421296939276405817839041518328013002036233982828352068081385525924776169283899086536670437140138892074397246602081346943922557481502070168321309627088277485240268557571165304538520995146272790890230652702624791265537040157888051481632203946479199387350453805063650083746927714342886804499226223633787663942044192874061847127243208678179859500880234481973813245685623414293076074961332540266791826551212435035216195275886902673895825033343777685607969472920813346447885251626194324252247776656521460206815475110855032504250129330837857798131797482787872125586587666785062366619001761257031094903590193917973761128343450896695073469601434699695843207567665481479491686573027700494521051793740514870600935205698497900391989270220856837720511873646839419762341187271366942344708019811728443763906545562139686152108837209974686280375794400209658161766845900383856938122031587976456009130611558410631593527554301744826288031490100553643656224338190936096905543688657848455036171682217965992471637174686396678323661175176700272250036632876388789260578220069765431865688956666236334052676313823248898434887154882879968170002533576847380684861425579018929625891152226336404074920898319368766488153272251969595725728234309811160413380946504221743015932021851883921327833403572192302335846749869471603268831804717306290766100096207833379589880061836233660664564150293420510034566776071810256369481580001900715839698812971445320447154555710900279173291083845002011496316008349629712839951575523178288712221534279205049602652524903147684801749756927950811220059784524368077915254587710814384648201861513753193219397648300018678091303215380901978412237374457729053377144831102863727788819802243315478383324175198802213741089359308984958518590820756774455099379661640532495081398897571271003560404909364736487037625427355956141023908286985406155685938117512126644572607944767372435999305510909253701518570073415293069398652354111819917670618184346021091368482400189108550329294733734865302367374244311401176783163826641445113122981332830247076745270943614716310228409767316907991958015237591359223563486543115235514938813376148807244764270268089693104251545547891942433533142256452649247269874923627849989583655161040664470553349098246983142050667638787273732123906529501761016446882580045544156168315764864319767931110790781221782909324571993683168053516806101760225769233329761189200723949224090861515438673870241018007747718394806501292880639922559922224267107706245717600828305404340935169618752907603064483037633838738595502666238317622642952649080118176528179380369832614481438223231830556457489232263595088008110282862724069514793916120275851944922201595429208337729131498214036751287667996848678165033983783473412977674902394485436626119444506729677665004863432625105678542872483558109232970164475822214153408736251000260641433118426377978987186092826281195325847327565103913125101137038226241145443547258804082500038438794782044014222937762730226016645417387967210727023405427538556406256535191812044233746867536208001628001809774992252596796923655038881818653918414742704764991688832345715463405705782863123978238428713184404698894413082338501579163560215396600079522679002332365252315005313004314518024527497849759125262636452052379838854235516682280461296745371408484201284732582717590461825448601711659988834487077330806361069360888860429456143351125873488606026635234088990942817596116568493999487334661041017099130511608318866024661280548681744292784106130353320982668477563169847909225520630507497824462767862305161689873569108336248158867783501592231073746708494445612920838217990358978200211794816917716168074092259810857655793497927957327454159342127587958489562912396589163243214013326336598430175046097575344575527984603719915853128705775378662593115331428032157541118754904616308510007147564607048625131419800644300589504387151657828303819670485765432872279280779506579225323510620524382528892399177766086061458427347174794690837791252995930236826061037733993560332997511652245814519857482929369614394361393597745635753763229127927732683596202964803330379392254077727457366604515178643876269580182223788032376950598079619721509206553361278099582039759953794701926562131246593679143867953146767960869178398502459314869110199666902510478786911325462425685748646164096035543805356118920661571295290532912997749190273518736682563606254136644092792074906329160335673493520916877770323662282672199999634376417449633246533183283783302267162470054604478217022270624942925833498894446334341335848588685637533212578398674989972168930536744569073881292981085914033947687466824381542018513643402100041365372719777665362404885604340570028526088369192500137614056193091355973873576520158531112953947208455753169851000881291390032766295235255423331210204082909827148596975283489272872722951971037265003171194680429275736478755729221528764601167050263014017996311199591192106982694760730292550117390004082815646726737476176359089336806691609494689145336668048050177395184047573389097249526635999336425845136450585076837845230298786252152824699864372843533896761070668225649663434027145395152501481098356658541941758984453599136974526076636403516540380552474640362544452406849706741714004843423547149526069262250558665057690329418050147662243585578557424288121067305264571333359951741890732290744563799005239071716944169233098590867871595590555282199976873973058678622373757307239628314652848619788475373164062180956190116619570269980921385087473857411684847506800407123437783149187559864328080604377602456941979642836364972136341435538830508722450182808310397593805403855767672911720105201239689832540411947074486375515868300567412558420212544861552686066624100362334943145511358216906514593498036911630301767591070126332933907778318210770048482863890759433448763133922491486391988849557226149699180680112149287593694590953545264539114278701839105451391166979937132718053906432654679781017767526465307199461544020698083516028154925240110720226806991161365289555382133005181686402487824658820190943666785049679777033583141983706951009236358066556700669314538299762011682970294609363599165537742091739135856749128465693232144529089550970474219106611630204758033073290052713907042080736183410836445710962555078048268713533524409109859158631685239063928506652642865653819242985056511012736974000927457156748671233969036586244791376251638632887715028655022267208235606892715612805610179560083950303604845176735160432920733989608612518739478787591409645570572752525989915070062552116549358201636153987558633027238034655648945404047240613638248169854155558428257763672118258556970494713995836475407636828475519203527989046777028377688314463681459967788375637079037743292201661869936337078802959989811569696385813874445016890961727895239511306622098506350439484492549324034743071613507597603884325238816493084758160926970369670982976422466843458956799733133793079277098682716620177822719209492179595650857551709195666410123390326303872422250763936635236069552349666329145331163258257028290909724080037988973123950805172388636013974227871322967673057699876125348580473781801058265363676617898889963644095772776211445259035488831565277002900956741929358443279057954626777700936064820671069511133073735625828002912302979550802616255287034874251019380314413502269931145501512068078741902444463693194268968990959470189054760811908244273487337343340668093016510050940539585836646076233009181096612177513251931505546747658187796444245394378204376829190503888965036535902981277508959119905527781785414767874103200118071295640484315941363128310054538568437741124943736645323741600908084581477574050638223673461390119586858384855199974945542035211176191441147388617065226426769434095467724358061058779740427212867961050696632377225652924918685828230556176887324581866846706208727996011834232092958216782125750460598961858413402621105964573188768788832449174760143317930286153753503286776125362959787595317170349622177862044727522761037575287999866305131802900775194366479893192049615386838137490633236489260106030918368646314110553073369071699061440687277593556034856629635297260350603199874484599372583214336258752493643668423564629506350650989523656310255882123246079370434312308755307908450429731078425441874484491495470372397684250441224904912029624933724435917475702947191509845786456515576694662770788452237453106438015986682271510281432610371834981952927204371576143784573693936878636446028063847580118886018258477785327657882310845040872330740621405243532482189777228584716113402109604295113401205695194412912071039443185113767050439953678208174243871466254536213069392324225258285971533038957368715333461155509937491873122570096316354770003139396274098108296157901652356385635962712037805316304359999961701317188890899232853511207060419980643223929344780928157872251335712800775816466713550036063270334774788166808276046435220817810903136777094239498732300633208406768260380757292942791080004625107740013642531201016783683100032085856678500482470711418493954938062456836180292842083425824955935350885375438197864324038819644276496774007318707248294635967891182408140902735503985606332446860294133485123619566924809144261951229869988323766642197688869264049782062453742390131992796390777906553427125674565890374856819446656018217988552674841172846340784960060202683470649012384439555172131371778482271381932943500584460667990862189737669182959430693083455126133152571184188249621271697044804908676918659986653499939934132563009007305106030401755126349027632315758828990316917756289172411193948317208457015495873230160876429728947473829118533298931329635490992790800362506034571948310053008992571321175473812960482106134341789024297101540524313595852685799100090475409118012731590473768480656918274793663505956964819135879642877405109545189093238517673554298157213979017552030672068057268276980886857640445749300265007478976937324051122793536747396638124587220300006758713196682848860505178726065769759624692351692410815658465851985812512103698597856368516023894033862926980343845626418606461241354053472418177920003890804173611309585939161363710331827770759764401590824237854679719702837028612531827545898857943063805640693135957228849064916168469146194641022017115894742425315602598870439997503230498613198204714852590980063580100418505675234454356112179206276811282813620919571646035228052823306224590550681901093640285407821564333121291224924571370276545321963044579493980477746056309414092340173822955811193225939459241704883959312479062709221360228157116914323075676918579953413180695107083315951073456120471802608131267923581527389387562644487494606235914301944904552870894211589351808304294320011402731732308383000765026470708323737064995811099341950342864667562410054887595695415389516607872128804416556359126097603660202355689985556502642201075122600266689398827669958066380325476295293058041541638026389074295949080666543919982838365544667386026243139009652248349846854465747152813576827245414611210780148964366660724489929929203122920668609446272024702502120706561840950879392755487643937229460149720524166980452015920647823370520968144885322254670717594872126099933903734122487351393215346317202104786716175611737864707196746977360983806940272537323799659912379765137467390313618869586564205764830945487622672901082396523115079702441002424542560793110392263682776271665646009923725762677613896833389610992899391203209369441098753478785483109667907557345928868539846142956703876300768715165282935410352418180729344509239610205590652009086473026429863762611828375705560717421565892226382952274970025307791966798565179132370886587772403648626567302646811806958925393751633874105469813367945807182084192628859011256225813029033160487294163019698043088709306745339717223841884397894057593962285904809962358469176094211373696128070615477456564702421729373007190691334564379434611282043332244568114580298253364568258515881059060982108482858000935908767015577894269803848379080067716132530104699516894259559507753661027649640351265622346396975343012886356069984215090501001749479857195805891557547308919961002762719755197025006206633827876013757430057066282721555407525979654747868767102410681799680539837004919405172761556400130314497874660357238901636078707001801017280532012828111084624710244208545501560937718823848792279658481183704885737490617293835963349773084992380381550206349690687400749619117198524926524490854267826206885319765126409979213741356898908218457235726841081964262015162368285426734116834528169314163180313271742490537255227315582166985679124189679377595320882261189282144335860317985995881390563460852837439000355963511620298097634397859833917196446188790821588484377037862968174659747709910070940834233394998393184971105723929381064926188224388616213950563724955428085018998493034924479036040817375260084806795308012616889969352737743553623221381486453332658439514070144284261911765343407585656786499540012884979044317759456751496113587433518037456976223138464888769472796900620204623291556909280454921105528500246293902260527199996719426995191032064709451692537178395866016554912290402411143272955349833427968226496430597874525924988285029601134517351294045005965564882476886968499382349381243157079310855541594669970164280592083270647066126487813515796512047840146863443375620713008574621667196638385975581004037628449541023221236684196798042255324141616074580112602023314383675017727680467356960199499003232292739180426681567037572987673373179935248341577347534880976775293058974084239643856076903120507061173479527230071766210752885269894630352508517755312235987669088070629345628465673428358466253635409799736329950127304399618309560171017496437368594031533664645607028010711327247973699260054273276649404422238714230635420736061036370811354667236593631470218234111384561188467171353910467685176273703990685057403312794467315980638672065252767346977042961757363225522550224559190828715253446162673655373600516834134049833406348971259779396069124914840222698650406776596203867953213406240840866905153101751812364192092269834154684451668144079487267899888076536130266862896303672724424022980993667836301433925005476240935872702995259709454639446508297209953083462367300738025822957984169683881926127520234100143975124818782366381354246811976270645462544796331791006291806469366164592899879783017896347064238056315552505507306059647597454675404880826722131360879257115986367394248022634605047331175548264459376538308783708430395764652413457369686981178756439423169229243600021070327974694797818641431768267129334195241586522366707890010910898302243572185510163391031993528903420687455677505881027594922281489717128318673427014438814389973875533895973867855275938485499991612806664000296124926226988270937344237286733002472682098412183021417129189793097922257542407920852720385967730881939615813590175642814274550818137253734697921280711610263120711866564922206134062113418320314848552491373073000864503096538755278975561272598067188382474394622239556324389104555196214112621892520768507589817058941980196717063467857711603593287067158862360708138621885596942511549365319681200711255233184060830122379176668828922520388787670559489168105189312624932990734638005578948124596086797107902828046669092332305217310541866586364754879591943207828059805208847171820013375261640374267029313486789854929102342980050833066443610013632801415876970572780914832432162798323070331517144936707665156279953044585106271738080156366295464854650258348149870706474580595785632026440633738492966080608244094179966703208944976071825218840380427992245204377473798141483936091995596399879881021211036882103500249607087883612114332058953442213354379233948191127113352387359452996830734634010493985581650073559933413036913275990160038405025359778379858517487250449984637164266653381394585417867323479709748397732832603127270766302884255490966725774040783976854396793549520804999179550366837388911535126499572620434730670082930496898222390455997764981814632198607259256520716656781744074954808117479389683874007577976156915229337300805838093392475964122357573783508091291222258999417313060032789828224609816104420972582347158827861565679469464288322010591241992784938456274981296779079445080705504163702789813968190034521402533179190794826463093217298262796452662129183551059172434961106521612612661426255026807886975109386384749527238382824497685277000897042798917830353593482981895715237664101231815647120385745646615553628109439433995732044298236518648726187146685266999753525442269148815622885094355349231818351940190219774461277345904537347238523278129972787440874910168328104512211657320149106089814852290326008255617578440905322757988675197792929518388621995731536113084966123435724962377913801835378125932014857941147459666383230516408489658314454373010251712825636467413807356073424271870046731482835139892427759378159102830052131855403384809915353757134351268421781539651393820328885463273051012468994280835517856555685853272675881313065200164595094595100040361578992817648383004945108060532637685083017264321434057628954646444039232544623612430932210387588659745768481698351997396806462249100940496778079728278562659991998934010140336908408505469848430795271193834374869502738477514725608269091072401610602459451800845164762946712270789058913306396515321732432805049725052944486585128109401454052795068379306559712715528804256656916717975437037126770745560494229431792400606869038826351930224025007577253500004258393105621481569568593341707518152164802232903940673070515555502100865115251417358240078553249088986046776636659432149963391312448187229721967334531242156990830645318270460793664217281463727697116977350128293499567589479558314665283822920693519775923843291348467343891621153440249905647340226327420760757193754987099152656951487748955903289792114651192039231880212766585446999300046507181145997992875796146312026593682656554971274782275951342686982890679276485314973989296282977344430787519275158674232286118246721428596664415172252845698100022229286018055240431341868700473279290667198461674937233394978994972212270848831663017904978518251672108031315356183328688299435131963656815341193853502541154999470331556377778864012926498085544286129836687526531748892008079089048333948547380065871469116067655100537554869992547584477436865633400590060651121102790003086749378079680419509656071702880367111944604666608393974403883565012891031705446967589268648852407712987846709521486505127730593509935116437697191123873472093733645414350020907684864721381053072436512138502323071641158873771854037300810367219307349425225845183207894931157393720574631035567779216448175605657111738491075207816239235307683913354397298996890005650214162412731478167291453665026980846592093952630637768318422043138214319322686309452884344057790121598167038570566994847612773622280670861041363993471713579233910543211566972839808053845278611061192590794083749909819148430755452357515217710743833621935851750448369106811384801189326864651334186494002514355877763825058099507164132336174082832706763771439474747647173542614433608053522851275244274077841393691116748605387962573047508197406019419019033314641111375274356813021968693385535183055136987637216609084893342211805290603373918360355907799010162068640217271500235722391214122310569638635510836670758700559508808636666042521916431284533594037270622283967343940264480172033016070899078415484022128325968401447661998176959501436427345556188631423367348812555532486943619565811218502155390025629231487067597510324827556992361943112151184893984145963646736548988061590146902889364552433087433856820064968121069802252657812515031595994649943640367984117108699097023974257153914677422503576563877961627895778161930737300166327853238349052825384437994606752943925195721910872130564664693140792639595662438261606114222672206261286535248967380419209168252609296514686529712049346327544585067265822148699931912982508524621062345378610614402153147263576662131256113853939308083106367635504188335166573828134947480140871969573417631778082705829566320329299834063561940439215110604794497449526101359242650065699065069927392102950934867676948429203399074422846904259225050960857381536164748497804190933004813454201608812831565714851014392975093442989092272182602568362157571500629970040554823071433294178226579021509716612506406840886000789396739313383633361244598834689284306834217616779296315484345803203858662201389213897720543225841496585583474804848221183020336383782380319805473139422470931651405344434176808563599685807315402056833394164432334871391798257530447202412897763408852790322511925011577626789002660479854258860611705146437423497938478758744118378258110513642988603491927494609685933853350196896883114258580948790251356777169195853336973436540088523780944256987613263481366785334897234631003316089160363650026943712776040201175645404629169922851443750848535797425688669338241560107451811543695488944448833299512040604016763993667485549438368321470951050680878683761215434168089121816898418130833758627089414436826853520942554022748175578230242372224057759005250889975411837747333477531548836826330271536254171642646782251907422715095377163901097718302929337024957566085854764131571189525178741908817136750368155397510953930897059439690737572352005501756960288436153775189333562728337021879994432659672213328581439612242053134813030651604552664044608742990959909375146580598392959653688931167620529226262419277165868801074228300124323784028029193730749062203527597522942325069775667087209096657083248824507742342590119158987198958798708273331662452982548471117266769804967407924297066200430941568670570644824974983678035959832267825471396025754375815953836500956104064744969065041510370309060573122183320063031443524451881387844505970356888782200610682499756604927053150225926734119804756989140095007774887431038273814573178698439094855967388477698139559856830029560183472397642943927454210369200886346930763842719169330946127568888858000610761695876153432029232046371651739147117740558008614818229706361818750563254937557350850562408236166214091789504127854831975833126253375833774289655330325049953868007077305107859154337679095658437314669125473385150094644209503512900590332519709043353122105780293803556577198328535575180245185871135159390571947005693098488084035890823623777528546086581589332925332343941007514869730112064013234037771430975507636454912646869182823253885165440404288840751950305487887341304455276970275670923519477007425190600475424804159605958054647595483080509020284732765782676092291985553893661897926206567485168132613618230186821028769254849767209141087349665728150915358888098520963041960675605155613836867314709600040876940033076175872114140082165425529167048331280670324611442719721372264214564495595025637856638856109291806148873983830855649723047731381781565959543595028979601908871493507992033209874445432517411532426633174430513913372237876199040740516089569888560163597459827732849519800450702389955118070762236415696534431554721092781932411898922588313022072804259137668493147932507551175775607913862982099594658886949578137313838220881262406792710146353413141259740112678010740374737395473712030557039259688589275926801714102201486583528127009823489942977148264902757641371758075559251838808788411252645108526200928879203231317444080920350517579831148161998789878269408344275968816519767275160284489808127494476598425810133845693399736365384347127994472498602018530099646837166441835438395030760407318571266764494171438269953426665548166358940620091742216216469452280008056603793482996953555887226361133599826872640456588161981954728259373367095283165125007438340679231765327185635231272794688167926597940109360315549467568801204625737778019684226175418403438125450547356959076102081254793500210155417206140034677221111930058131232672506065161785278340195047605807516856774688352024381164385235208425285029574059330098529774037012395872697120006394247386323815791062551544645630511660218579517152339654810389116332311695210332818707514566211711663550720396829273950604578315728289862617476596960788063492998268560225045929096716496907473296456267494108519116862026429102127175868083481430950119644053096803425740052140379340849927410099469429386647288785582369804585099926547683033327805051456312580177817129995572153279123234520771804362985855743672379583575475375529257996128043084759729537445108133599748913440903458370794360008055320325022216299561581189461648646505360049820797414223261259539713530490381939150869511876436276568286397722666385470746795005405593336181457389949018068279246020269214892138784374613126428938977707808762651564852422815301621445143108138788188928640786609897495772803062060581863794607499641861426281298494399475780033532647901253248702196897608062926717474075322988625779218696910251639099955873482480194947437110006880687483354734595509269308334340891424304433973070126875587998688009779032807889455099235982137562612060129235950379279943232110173783165431090565078870429605010152174909523342182043627223202876081048920216613923893702555356439435358081829968294437506828977931317117507605579205239105084540966671298607545586766425896009206368257880466115021393109997128271699810375226698580537306413882535763225368706855579895427924805788145451734490285609955610713499067842396816631497782291868595197316540919118931712376289016114908644558758162377595547914876853007977991844792708497312475569954983983327700813515259821699646810569809455639716185454343330970181653154916061416492814064665445057318155100670774813121761231379863567973788876157791039303932561866967347972105827096581689685152373359299881351713715132835331938374075422754281801765401648925992035457654551682774730259017963067970959406131882172197478384103882976579106994918304485156629045611075298295204299780234438940030794543132707877435540798038525656608230217652100879999350967190603304337810844202525736325643074259578273322041173892588366624065375533221979774120680202980861771878321268794603828679554222766103692409644171372184171538592271577085171600350731386765134458463997787653461177708790460473838970654166672617125958462781500315371948290669655282238470364763942135341487536990309153219276276353102206459088099211287002111856919122634868824888787690113845510526683260658029035024002766318280085869833302080753841380277701263339372516747015401375014941068917337482345818921044852649879543903025696457485834439952174633187222054263570446184907458109725352904135789616340579582885135320616360729791547929397115184464467925879456315295822775511807261222995305643562916008199978068587530723822260704811207723945831710227198367067549500412728960194002965928143243529058780704562672105975875930900289378964569398816571660411017574092596154923276504110951253501409360219902510104683289616407508066413019327823737515652911176884394347907740792059113749259084773438539794938743913858775273333863675271390828172875507958713461030399728163526101422926165958733055977789678184675583818280532543269256738580139245251195108232063388069456196853830447862516799974551337327694452355727654814069071569965936372170834701565159474113709458412234589288445988596191112746336293752013979683057948507543219790636740525878098745949352360276825664970639705097600473181035066098359356203649947748113637401524017690754407258110227013603816870442035461937498667900539876539832145691347150635355807948695151029222295719187502355694557201763283937023154018094180396326364619401101712466376061540347486047744012223615628280627782501582410682774708761819840807810394751951602270585271592281511833316969718672584781979526813063624745942219602577855498650132379217543438350573709363353953656229335053511585622826689163262341433837902461036132813370752455849367142175066455933787659663820438014542617539526748294716768130792863510019573814008067847018646389759251475084615606886144809029046487144098684974148181522506753729297193793590166487074782670100093651571492095170242904806011510612568972998765809088540657794109933464088029739864240778279766801639669230519460811859695320915098081214498236071571457172525281717046850133094253040992177494143690487597048686536391280823257150609887494534255588762275915713914585037939050448981058331613498887168767361060805390259397310709565814816342046460815212002823811828900268492556316272027524651758822253435234700954411409243472220995411213956737183695757410010269560322167454367362450665611334064132143983578963607107631838684815527854997105924603150796000257626298773822710887956235409371115801387666130444825099453597747486858271662589796943094348905716871101745987451815972343516719521369468567131815509545184956559446209058697974310426849793948958268228799341263570839494771723962069449563080153871672927020422055386908519704041273725705089840562369562045331447453815088212937380473295028190211541374985828273074901121985212792218563568480931639034644071765039327659270403947239371179448527727138867698704308180433244852915401092682960846602316453276431674271819053122129842194782196422032331851599534367324259305596853736159346646505269455966645577731045333382257611670587816162096520638020720340422734259481848756702559247878636994258122230687671124686439358711555939755597220514720992763012890531363723943726516365828735249416399513810868600022066284616792252826724871496297379867898406138780424872598463185924213801787901395292559957172556948619427891839934949731752359129661744850067839768900237850279571718416277889524170266875355516399930678300810367370669914970642269591140372870598834093532869842554152581061366000432356224723534130072535348090584690692378062349869936437462450893235513408237476719657050089254389148033872565347197449603611458629167880963655505805075183837388296756845750371869980464808160404503466893911751674679656641396176339129897309778432501524157386188216295017614609477758533703833134599529588604356472812681766961188971893071960823324646230264813646758678897701506616798310525223678070893855847822149150261806603584945016415858363781722369433052266577282385143871045210898342218784528111723075580226840275795646340255481989449679631645613930117517342958980440673641880101712903497289519300152184746373606623168142824454085102810041161854475055191983676518552804437541388921864588786210439610402600360465060429163535511521639110878380314345428844206698176099004917942843910917173881608393959420990334540921840793669164055204736228313832159763681315923017316376220660356603426117194653502523390346265964958318817208756076508414909424614215971376967480824499603408514695344400461487066608998256243320882902946420501158509858072007711864976924872409083437114452387014858520722514207112463073325408131498108058964429434155130556759275228468766149083303842907180532365350108509493876103631702042889167128072416250728453452801667974416305548801456466218611234278057653287413627754697049249823798754452965047573247187245248925956611510232034311207247551979973190839460043464165107705409530294427039951516648386884631168804828937837052643967022371775007027477357358727854954739247433146391931828864076510051805274244940091206370204324233728586757964886482894833834179362002934760140343791457349851304723785450901858271099394335675600164958265709257460073899814466266850334375063555164373032195472029905694758451498641904352391566736666223121501469084264115925999475897415290151498831099326570629735440749728383935580571443616412509754435038782486187416348428318183153246433068380200571417373020927570603791475246431187766069594511411547502293411935142714173435225803293350252063668554949051602997861461571716689064194779786105860360495068589567879883768891328496243463212935719228528960986192866208287468630799441798939771930685880946919023308814904655384560261310630598599821576746911886183135933193371580502310769739088831300628131752777337760127131978132108691705447327961417229765644398612345724869702385518840741175903724096288107988737791016713544225569957082392664833088948931874698735464329320123540510880924438036945068663872212790485780789047983074408301750892594707593729209202348489421949600955496424505978919404712752250431487019311986154804761535368789837553341725998529624324589014382814319183604371071171606111636206173969170977983367601605544554195790994788821560507782260397161194143065801502157932266364858413692225078256812025728826066278476141197200674076144464067304883873356786446250471933357944534873945131431816806151143043457246694804048519329978802214986549993595712025964194721162976209760075285993996752994381900723112888154903782914880349875579717637315975482101632206500631388301939589044781416910641246815888554116219405418543973761655732939333922181488351893386566381515089923405480595434273771812539339531660915003668901974698836131231971159013490009884779330676331331984491594735153345556499325982845292491619221666431875182968204106855661172914596244970866180151901195704939410702220411565101934384878221051954059592970519253252547862535449072990580693237777435786968118602785344067744974634771358868725166495148877746412181597591869226459545597939690857033946434598644180942204071646249129723312812050648463747143282419757088835347794038621169466311062340078703967490202182365896598412324304737886191940089001640009245239004060123547913900888249658670796545477191484292632104517157121550190807012457522054313852570875509372390832188099542613070601253299735913016143216305815793801767997755180174805231775073734964839613375695132517008690275952131215310820060092528929254482938471086688292274203984342011870422310703184318034679662950253089660650451108661444838837258698889794743819173836669751812028390497458608691876480380793462390993641550555973468387251941113161397447380709967925282295935512701585657678593637554208725911624606819248140776268308960256473400802875726042967111278588774036614263492224012916304219962396322053824153895517506721726636287977645505905118534778506805983195232906910207323009491952816197574873833495858012565973942416290297312218035844450705165963081282698639662545909905004225534589114805439217133218597346757668952096473481408252182079610639087729423960558102917400497833357791769467811810102722830898813905576505355293718797418915542998164285143600690546502115879870471839867575013583999385233771597266071866731000154700935414204681223846560180434602938544188359316164723027273283870642530766798034266398943729367538329319928909277202241260755908927404673262470354797005672331322881009191335368347801144568816334438219837954421298201113299174159734733242885560823462537064208192219439416368232475299352605929136387071528834862111286139802706097176767772273190685648705043218042279826712971437437599868133802486141604612482644180128852254782291895416330246648037799238559349113525424791737852292446583244381435436296823959714308514631837609200464177798744212005242575603611363191297316931761993773408131468217511158496572815140320300435611057179044314958585882694736445891431372984163952699349841699014938798902920684194108018168819539374488998660703302183607459082017141239251238159053281259374623709948368466673817516028831513742507800113738735867345590293722457292966859771571286626610392349179805675902873472032152912642019817991509103031790221741843876691283989284676078039035513613457436052874628990381335959875069980563773511417796254780236000191702374134796075941231820660159394585827922733463424819776311165375839546345680422303018182585422889219948209566232708733938442532807129562575047904115058457625494275122646545942216631587199222935106877854382060912522668284807332133400159492116839953540715746452609862339877558942002769766037782892854258938806861275201155787549294160638849456335263840905215973342232468758840151436629318015065005366494883699327571337885542595251938815780999209423077353584336536128274359059230985381674679270315363477375912861787877734327617346265801548814727356281699598557446257586704626304018825216261240943081006710274687339030634170993736366723729294481251710548465409528666742561533696861269360624345441220642733361495026726859510833438489399187246742353228979903528721288428802609757394764708701465144193887766048290882558366063882030721732646761927749054960905864795496755868781396823799707834022679423051594498921454128376316358906488256554218825142670199487726922164461405920935827451622403350026730749430612308260543448299557305350294054645429068202345918484326713084061082167863814298482216037192912290884629123563388949108311079240787870811103291962582270234177781033616799801136888709117337669522589941414384437310922735568809904845164355039333947934334154864512126209568335883218595069537361075684863027517114072764580459658495558482473786141771670192683892527310381916885565770546092847748288908547100427242092353138717466753391163274622166021456865004832274150949807954819149263533628199499283760063007920155592778707087981267011826623265472970320033083125790233265235181534664546867804342691831608378898079307575438014652933825995295112288629505438630644595916183300489525054873678722465652275543481158731304304574532712195409768836070105934344176126370622949236897512466548382649780747052180700139995689632421056503267348544021128258131152620891861621644665722536733046652161613365439834425114603353371842248820835151510625111491986221447600589071882384854509736819651049661475133370381309385780612281988729842032963253600480687692301001687305323052799849978108872757263342952819191932375307261411691278457256098783856703643898011677665358488827517480678380218431306734272537953909872766001382220231228207491817897901344216246997471963465166554253396992771450106371906096576401599895847198982104893579351235057894553874307870239968594311656099872647343133992188778290633014829816981476771809729228340615164538822497985021388709443874986714661809510214548835421733097107930582417786455302509629219224989017170727205562159821486803416810279094158469947078485670798183932632262359848973288943770041303120530640130803323519643094803367969498893872105407435532150172537870844604678297071224171024958771765738097649804636363069412717986208558458927462789562172517877683827047797970166926314404301769837816087748544748619734154899742510607347814970770004092065571107698643204695009619473709934242678865360277718136355000848028079963161624398458971701403781898395392475786620120586103985268590831513283571396277522396191636340347678422300560747303184363720165277067202918444818136969403090517563687584750703957676215605767333853759541544121911728220273738166170471993282665421696581701663408856924587072044183478261398857806985025783681623923346021732186251335551109332427338373229924540231683782058811662109267404088191822673951265852812081693115614811895693599724279438378458710670079931088179774229052515086041028395870727268106817500278761812042364566294279354114368868417753789686811313447856700756257469006800260988883098722985504819927118962107886499701685035457113694714062619637892276333158267324334629075847398332152777110733582314900062412949867539417666246203387626853624221528615721058314411350070166610544174275694665073819026532657233618519470148038383098062989441262532175522848887394120569999388888686359867773805264677816053150145369117628743966167148823280188860948051608373457672945728550853883963582926798679589619335362811739737785666474241691437546937093596984461155869483792795572836082538167054129618478957173514799264258492721480613442121219207384925190186533620803440661129315374959995209627329514744468210375174865950099251271618593750084264421111498225773458137037348731853672483333125715076666906266218218327112039873558627634183803949668951019063488603513583016645639421583146607127717524234923933411075247480053952094976830084657653717768605975333244321101985928313086854019540660721665378428525366834645206543651435857130699839557944743712260879423879409480266776913665524752260907631729009156180100885728274363680497286497232551225080789767639045331301684983018547771817801108253284309283164693809981729936545334775180387076211150877566545391342812167557348600723887478373871115292249844197282210928715782805843646689549256662833266220313878028149043568895645820005719075524800909337434272995615168534644716157726576236893138703220665672791561327926763732271616900159249214048672850690332723164282589140153601698474533895246751524095197004929997273909858596722162458956215960879006494793911296726487600107242592629468157511409185639080587499946540318773051600593594403539429725109442463342929811737900626469550217151403337023834344063028218044788119878369029721637731224607732331556026257159000766385917620196243413829720161725222558607028623495548827854007120683690135944129689326453462970240686338692933057058372882994341674107483857471600541077456240199410740701441597310776574868968519011407117398842615709216665089614426703605198174372442850150359390800400287438453269621920309852946227310352435732304346144658096736559373542293136910474833316514615386222207417389551557793458596621633832427996692231402024731993254883987303669869494455425188470679895897684349979716240076824818445716969843887570714071332272682875065402807035066194578388615808222774789333407976537154876218132571583876020568851338026419758125934193809424094875499146910230707402935765196791847933532660257745964926494196032999149480607144294316657383086642833605045778201515523421631676670224226725720100182111593628872634161118758725867948862878132250519371052819987602586390856112951980866712514384434320936307373759560214248810712863524129967977613823222688918346175106095868488768333862723872270985595034161599129953459455621871499480509975217450585387204951853913419484038147947689573990384092441638144158791773014590724904837733590037646812651316236432287089680207964727018544636465605978013968502289436757443828593859685739266889920209246497436889175466976554298707106208569037756839974945915334198801027310149754859404144236223308563045762150855120050137119650412905896878995935174161973943654517089676891526855115913037133367618647068831915324668796542685399681728945514164621830655736925529829346338148434845627166617367279051438560165074972243930501077242131617779482859729654855102686968696666423620722822954595350660898592235352838807858396117073831642901990135292206885686737429227280395628312055239340191840299284643216214819091560881088733762003911891010551564314926110420542365626658112307526707034081886915557920184137973115692274415109692011725554704625803390812983324020085397432709080696718650840648312567418624352831535327636574271029838000321102931004481245734829634125112699308300457373552421746602282361352562564820278231036257111272876112961871528329246875957489427447606772693304744373722965045606279896746735881457043125122483895473099087588389529892118731098028443666106714133623646149526819917252675427057858669296399387563712639202024886692176165070844742355674069492275373040743144807644484516161389482630659803749438753203290655857760547854288778672123170991201274830325479474987146563060403093586407200628052819100225611028379214260263566029812637915263112917771845236500193701152633492034132307658315319597137361766381544773217085622867352110959287296470545726402862927217522573918883268310322633310043130237200736273741748899139959147704765582076156808680881866515622076237668246535827287325959919437031393252400252121556909907251702029549401806405778463847068473172846697745171539243619284418713721448024153301150919640606309434465951607093303976239961605554418071434337833281885457410186161408652554737709564665549857427595640772073878493120012121919379644554619698779972087873432803524197163811002359624203989649240444418848790327497110926424679137076682806030401727258122286748692399998046274477666400933296096263862671685940182982044756602681545726799501726084833358603191652490141182754483850151355570065211420467671832345044660058643329250238077548474040904712410498519963383282945298312107853103944826200052257034431943138528497610513378065764104459190097211441695521980073657680649547015506111466571234840908118349809845553189016555328359554969318320929696258250852498886355136999828527733059097387026306151664689054577662182583159427311904793379448915095878181533894052659661577814709995668845449091371704133238108115609667519688749055004743670823921054955388227845485005216686059574335697673493807970032827377062440455811445985788629633550784936555016956955620134791680611251836773642537944485216228973751554955871776023440365327229578783786335811188119115157782362952477330431986650801998329211257447814206292315251184384158367503143468290009376879412717365254195772130273602223678748418808312815141912811759331045233149503051737779403756815985638286495966879459461372560784375557370815645109135087536507493810037924306730270718070028266606664117683530584738651187079314610811622137301135268155069055899963401079741369898859724345902321811774733951408562430453264316060226463244556441060053491194304113644283912384724588437836693182643968389875071061996860853107624611219046257557987126506920513082371457921871461181081022634393465301430380921002161142220536028201585464728854865124238625746572851840586968342408462704763914307814399134248880892617979084377405938770130048583284010379815450314290629450025390748751417647016183422260911348559423471116924608500894106860079246438928164840614578959729140226216700902679109712331241451010419641265708428608049403121513469557311343943495958371983879218913706576809793892745458236924624730785814380587219539264141268461663737190785072812964867068759419570410186931473139870659854159128014549036103580455765878223321984291823390907110098028547136360583751022313335450251918135518345027967439961925222478099615304803558461389713596171950750105268124056698564871468393842912575768009424408788932754356249360766128236955615297794086583349998074712452303579453394805027060535251459595008574846040782945726584135601637782466756127824375787421558796550643486461257807758016894233425367988284482529477299237391265029510593715995246215485067085571680471376045233855713352052067595859418111369762986148716358276876126163431198839997861297116718045745491318808674926566135409185656736552739704361335633635823721113155517827047664708958563690536002112853253838022821925447227182667892576208405347032940400491491420820520125721329008139309709865046134458351804748813752930871161920345187757174898946266480533586323678065398259409402937290871685239435255762300190068425513433814008964449594031059925445981233974269253835132765972105242627468700999316822844452365025177508212945820983088193272701353946482635668847057027364653449428349364513013163745682889394470336402535266700838798386110686361128520615044105308247533812232443932132142949087509704389001140242867983303255388389232488345309861375509484401172575159541281018284343191555606780457178935021539383191077602176740474838650408693914942673164730820978421417973132389146382602114935633383384235638292276888807266709450959153275506123337855558857309081216403033065282871686843407075857206553948816246579839061901363886528854936389461593344221856411422688549095279767083066377937537364091795913361561660112049048115714462692573853461373903281618809151138566320855578415776494348261215531662671386284883753801566939656761929798358173293288278093571169954571342456005979941852915178093072128193844787583514646108786558174369924489340418396662256933498202423280287980211401183055750490128543767905128717803729540405982250397334440253744131519870510773768347959094436377659131831848435638183639465168248422012634963280180802507266671001181381570127548014154304665389995967727420943395021127492697476925145136151762962288052448145828235624588209980240795650938841032961766087321986976033134915895380029546479831944357767708145228627981922616665440480161819537377301575869669505051195275701337643557373876894021180520782739602508431309052139338471180380156713043301687823074023941287019315880070818848882736472833225137199150625913152863206062640474487061697124090173731619495889129947448586904020647694693458725972718309541795137312666856033362753079898165578835506937181990569372015169077146368436401466758950807961478361440737234784006537482771240465390537138757929108727923364083469216867186192569659308771228132509324442223196751797144464402396244633330027312002787257462919427981194011952593291440103518380635167620212740152028318845237348165243779859166416387516256202334774291658258558367850210579653859677860814458032575217729284857179557389918700343961515032690921299150360440839389471767549886559637927591333412217091697033005325282220832712473179276247209561879687019974419393644054060404714900651976340548388181663294845014090714446490196619036367590720428092257188154839698905915060802830861130934959944684057724887779212330489182862225823602175887530661875619580718201564684132807976959729094113025030002710229734687084531125943843570922591375707078871281479975227143256661495779797376237888966515090165392659675811043157181151973149458767704490145877143104602966589103092079754577910373476321858819496519012621231940103987170247574095218150936308642100188408733037466560529062130272145895349874327913107400264424934337993482207774230995066510158326127484261693528538883241166882373625788788745745297153616197799137718718687212141559493595788607049830022262036919257428281434268301169483197963570837122861530037194820766279107266881485258270446414471602273760892729600466879091494205183479992924234481145678274902848534943001449786162281661265123474121322046076951846585889448037227444686795742673641411089665363503560864914091753027955806243830023859675425938288170267015848875276554749229119366008565264774839014476652013188380711668980392354639037336700241030676927716165870155280544560883235590461812516715403283259760774578664802008911420546167762881954244428707659592385609279493377200744902559784986662557539631482871358691448821165520717126813149932962975364200277679678058803622703559790295317779889302439081841969714713991422971671969871233669741035458545706686000246085626517470623074087322901026662009768558062020779650345638553457270333179876611142931088983642148896311806113606964602309938614599886356353915848720945127504899518498417090092104294687970725967793132754616060705367905710794812588925319972981549987873300605102761551695578796390078169404687096825957516957629073702921656380761415358835532106272113549859300233483517544024941282497570235151241408893388188739194963938587174240930065078073818089606848330414185088719372145580302343861113209312439459551303117373978387185753858151757890417124925016867063271868387652309898502929095421123873592991930657821695196560635621159331735367026960102271242182949448199703555870707742568794165240926394063472691898694923203727601630372567000799004359431920921128796664648817473274214234934650876262461620160763271347636209028904735965520509988947126630212797179773395390254013478200303980868463341613629575852277432976121644014615970560857138941819853605891101466197500449573846560691108830509483816388506098437047952281646237092307688905318163756517346003209113472512454907170148105097860027609138729459539649825561315713306996593111954530013195213433570197279338737238176128464197569837247339595754265075998600058962977986975006696758472843232742614109056477474216719352458041496917846351945225435017098821827877207413079209941763859935828901129230094885264622321448074527702088880273992257518189463275509366559374755922517658180714442066391569859293735892362431329381613948431264034539018706153709610770125849418097349912153552613451567003350501652592497342810303678891766533123732604673105104059441427253451328140976449751455536542285639179833605578103157516323343232322335280880482463414243306246202731783223062025017508152873125828134922112519611143906544582691900755053664830464040205332886198721458273911725794847731104054651569414909360004810335992544724620559866679911374769328356261149130941740518429930929758785403783889650142493545995421644207659565908196333758664755806101331706868125216905689693674773122257594822778083159184479075051412109013763701015711544084666193568977776145482925628643280247478653198861002251369090314783595210757118032053670187389648210835190431256082944063026148756169556828040332112446828364253759753610682265758419341903398198806189409938209606705943865409075175520873163194921323244260130304664757367546085673497699135159203812168530763956662968099414681935903862529460696834825771352098363656008884346287511450643454913115770324960777974057865662124996666166118495673382566692373035886087067787342955400443880899624235071133735572436169369742541466025535932139780191595955102479138665257075264046071852147077294114599218852245472391156107191434227558315988885011291318529369856971357452125478512938661377437467753336873864333110470263790566462461944498281729477843405506417615161382794449162946623434389429428525262973035998229238854881636508762894191576833822955165540580808905064077577918353633449503975898426544453152638354603551810575938400161090991016556533964102706478788341441389257577356461088328440634466652508851524803386079120893124088589266765678647611674805281557114286590159980068057843289760816398646218201685697863848437826473104654600242392022476372309108851399848142643059809911991459894279076392107784678502915328646566639832425132648188920657410660029974970432122524654646451094657825884336959449000636258452603341463340804085340329683520186916729616297256425053671547906384007664364740346050082887699098933869525277507153293626056866933811868411153488501586441184681153335730020557830791337299561866943434201610910493557286478558168514506194407448410995375791783878680605742245292068459256619336144266925091796646003879006542647984903402396591927817252523269179986821305942743932845093208219927466410924259430293241676653602231564484290043621420012980330305573411456316140931692139273943629232301387538481960911293856049565627767687209322103228171860754723715218553047498066404764854254495711529481748829547654853120683210034678611084027812615077212821756463835718917254594721053871197972758734820928155558097809874716568166931694917205392955828650356952278117761329325684544775205124238855419532302271162213465077235292300910551578809571868083282541925295464420546807686986104169591803062358287818470145629500752239090547911209201484939028413161605064420920269594464185402528638501002330732057621485234922204147283412126067075441793297144031376531468547365642098315596788215276375556564221142593542444846075086129681097329840067853294573381153432758371362852505054212060888533556649829425828646074438527191361652235068846843472212582887595843604101994692463472439782212525870594045651480136049985286675462613917780959357055073452716667687734612773142951236020104469573747278081375753319420219226847878065958541189070369231059037222048293658048299903066985061622541067296406440960212031338078321670017554470864286705673190011272315734117633032232807431460050305859251882013439738904398550382363131497174100389878894680116555815694885402905377846380753555425120907771342449662175889933877610124880469838255514055199027658107825811188342718039025480067962972829768657675481436493650994202146708921699252948688426608651963499069707692321033861036621764268938425876921059410467650637718427782130853515142853455206453255364396193742002914865785295041029124765016433262284487695575909881576827265746839600615493447502392039745763289827829661046154100451358056464783824090791675647126100485704164053741915406708324088537969368474869866755600044962864949227372763987647007302041291480022966077964838913575910897614409748142369128986600503814130738204551125969201027500596404561908338228219933226795103674706117135329720284407099343277132804527849202103400048250196050429053963699785040061054258190853395394561313689935324117210864259434853588830669097467018842382733362246168406503125147930245581775704667588682073806616129134435460624720893456335173976602211717862834732683551872456343993222897597292882204838263849787021335348716340383677686949394002400096886274849811653821662655192498405760332219694429945985008505705164313232511611221087669250006253980630624610516644029843334335829060470521212702020695716926056116875977184210314670810115263601669979895818935345283655119949011427736477580696521852557486616948914463832366457407531448457908437665631478243735664691099622455483388500471820618518911620531901387713561401444298945341255182411281946470120088169907120165127752853429760955897181788475987478353914078658662649778747312144482620775173897955859645593149172433204268052180193738768628345308132496927305105130542392599402934772437190561974087031399195488474990135201084097267915576065582581130714066814519281054480444310643830452033114208058146240639259817180338711312981813538024194670717197879357481290468586570856552451041156761024224069716387644356121834096159872799068444504352042716648698134781158626961902816262604737039559963452157021941071275754587127869284199951199635153024683668049472028820076930094435785280035748368949572617332435417233973716739736500007864463826292934126921802158038333570294243147465564567474395215212005223497702887279888502644117147913180619460316800981301663227900995975103396944583952779119671440112170869475382968396539880265395030054834170014056504013408899145207874249243182042080506080909777436299826653749606206085838278560664639892873607664935049893978239414917622395589512622156049901177380384157872514280716913582454963902994416089928172033600076745923988083163375776059702646498058731094930959194415220127167025084200985364870905814406795088741030887909519800417185200824876878015283920405426978043658889359694351186703188429553030767880951552070786552738474880816784532256969120387730156881239404227532434571036618039371263942231077455297130706503773416280988840306661055405479489651552350171089669704793160236370198289950150853644055343582399295753776939973841047391045099949781713845646381270178879714569303219871677352947304751950040739347334533625878501113019260788251597230861306696925404607339351840084299577828448669138342451341240396053988741201474948993486670090757895106650090032289340571399819483235331774305047442261602644601404221103304270681341584693493376694836377444676297658769477342358112458562084401244181829427117617359099775726518615976261664167299796059664159071387156933313533377185049460156398618514140324711264002097914580996434201464007108315882768554421085013438203510761197693947940501603781469711732311067721235489061465352672878020658312389136662273299439484476210290920834311757452872131868336635486535510706450730743359030251194593198582701021627713090371253809905185206476813793251662626504091045449261858800654812451553838541584976875279275145296002960271496634026100913130749871602082503253906465130783122443505207681238111023898987651769217103188785715970853442686545147448718254524947560784661071614044162862854033615045847417860685339000375859624741127337132197705209592136418851434760149178619342313015276976518279179464773985417971168669884290743669625351304688774847876976058563931502402519628120399849310081183978867156497853185200865151982687616318599363424549604646566519283066785482743041632734447697410435664522626124998090002882050174737974439920018404986800121096331594335987953432551740694446072676584522398102190665130453204980209265542520613804558242495912285306914939803272767482858737195394984878152129451641164482281421467103688463372216502250515756966733926907882908895377810179663267473661876702354392565020053820488082470777978709875809633502577156904508699238609839026778541145087130698321020326512201676870503417076562490353392168952913412899018046296185605875942234620602933645255656709393093706736749441634035042932485177523989578442696584309086596878522112495615183936779494363228709341305749205345757848418551315108837037309220738828419216040483756490647550854489013079209422735417521662605582492164733053581207878662224567608878810447201462673591206396074558488907374097456254273566605484691103894836411833262247792961323398468386125004619200694506636634410812915714163442112819786815530425070552832640329871001282673554794421442135988686107383301522223768201929974363490958390244363827285379923547027081662270687759738077706856488290763170231640208888926778380231716266672803686186628482974352254365312307401997200371607084325532396289197237248356896848556621953486860109016661200785189605092941824019677126647459967887563400056133066024545866943225973614597570180190814728823263873650477356556459476609370732322279696864187213618230354855986173084416379303809483238545017086046014798580783884987402813133699381420006894926144400552034011834318597398631510025313816497985128611371629792232980858906263716639253503899382539746944613991092686622012952684515657388988976117901347514857596233532113205641501452835999059884804915171700835397220903238488905668721944774032090799960241443572600657089189679767607370784482760670125947383177662354399423883908336572016224536082640946025470580629396049177707771884557385901410549315573425820055113557542466852910355259201566174470942634966722135500236456276723243641147397262938720224841321713218283995219493472607407839363696028007142302108809872146500246581177978297748464407011853945175763372268304984303835016345586866643753431023883430615449605608698971679477926761252614629907421694270262677031801512064341281534632614358669284860563867231425198880676058859414694645224061094182030637316169690185877898262603392336793174947308108223137540875401488300347352663246423701329557522597522664976469357945505598719620024090228483073196796183350307867437494633377284437714416082507892501585141148757441736560802525109235935127868375771848292627222079296550784495663722085859040030904566031326848922361629188417597561256305708402161962190782881822061307341440729514151053651873133297623688600781156191271220723317980131909978139598069012061946683420910617781731781149989938980881297085491538153798592368241185859136819001469848437759821774303880626799657157495891198603533886465653217274500970742153023184786074419286050770141709310722563621164921168592293175175228022432158807062408585367662781990906367266631767622565676344867222178541506851479155565083217700383617268662209236402912796759168595652319920922734308348146376622518354781210322717299091453255449905824539011216586926953749871075351476158851344389060865323954594710464476296163009113098051291344016833349482652483118592707855264331746681514759031149122508647653944243516898428361966182971538839930244171177254928403132573193996532442025423750087681265717537071799967677185829288671865398869742640398263001234042996888940285342227162765910608331913966426134286007202218178393974332879440574419585629071885114645987826686025836226342593246371498182136233787092386033643366843318559631691970767519866674197498337942877383907211041653358339602082104974726483646080096884986719132190087176284822176654946396394951324497980746162620442809537305213159885942058527032660866563908022370010978203842629856696986860548492821174506261165967999379677832361842023742364721690469643950827323426230366330150033512029434953708989418596038235538522807546990018021327814345420523675030315588259418680663607533175595657419060386443483889904773529165293526114656221616819703897908310061748035801125072342294300590708202509194032041858437400783414525611134656867082980640502468389815207349356603989639532286150800859858737684818248769483033967714769735175271050944703315620479372239711388441311124393486613965989978210125331358433392976144923415374203111946809109519954050066055232705284371870583636898833435301323444481364183098880937610993728747672488724448266068502056065492110718967352231989947917888980948706493965806595889596507654091200498711544682642930627965326031632120492609157452150939186520123177504082769308979374424116219471026525571152328678945594986329248139096986356596007391815296825800832371616762640590808855551092505473128038848972796099066292919871281814301157391921939665062808995132810185381970987279117476616150916464815132398759041031569467266930518252681767784642353499223505107621464208447604449543301609166331322207625021497441208778682447211763482239023256926342876256621443784234486231324501939186539280045408574830510800762791570708520372958464252816591046805797990929567543324235836744189005900056728259998539417082817965555892701164380163224953600211319133695543609911179977583273929270235419820847173029127484560529962441008419738878862061649673340377616549825754901837083136380761382886323201666503286214117070509296466098491132169925988017959418008069614723193514383281469913482998457229312639405643733771253784437120571043110559199331234323969566977363375096649506439921437771855328905919388991800357261905710363673492412320644509541051013794879079497504161139456213176458046551979288288017024002213766180941692564683772207429652315515187132589840781800529896781290682240920547562615417577699677436659694422330510214142886005153388896786873608273220934489589081364211353074863884395297730667993527992847719351942966920133685365614499333194924210187554686507545102329433750326071933665917772358609627046179311030050733644109697610717375964724427740960237950067999216606011842184571662471613501318413250090275849369467476363079770138394848403999372024693067819731700031416976993252213296571399235728595052413533586011816447392031696357410693418879963701199853738327155866018074519304280401595254936504200624063613075335965328804574318189026697192621023399387039901555226062315993402255501098178360107573364155571976366395151473421625380109705164513056857403746476273804695036738692258805596530809380105867341142970642059586637158228321799657775539489863441978344769336974765251115565208189687098168901576147767855432730279158627059163814758442959357436619614148803019504756012621776826941049448034315902195961231502704595035946914600510309635670731666701256718674360040799065642426786910866907073962059872107884016239314463851693969759142948906619526223745959625477864412542435017263181502598298987249685467372739132903905520322348973368064299658523714192317842073555882762328889044579132987170072983368665397795146078820319816741072964685514657187237522421501567646003408403363257478790843959832205341306455357632233580104393461594553226780135346516127316013960455096551564111192820350842915044625285498327340872614436595109700496581374993153510198970598391243993267039695431984861836796925028420139606926352089700467129552423674767553937174948313098912960771428210610441945320451251551085786449266846841909414222829931490175036230816709425085182623174726955523154826019967293121788492249339354686691932172953148636898502792427361891020363920623565569608468063352627397814131921289083349301557643258867192276104786903229445287089425905063556612015457043066212665878869148629836916340783179846530121917384316128086890576806998481631558207594039065060614618472576916069314720755832273671517134480015710889830670328135338738058313551422753864096710796517758941617568424094949741629335219629017163958515076006973167803764647229941644319382265627807982165192001232539738102045821785085958357690523099271337667291166851138939632210373846863528259912000316492158624234293203516202041184302690901536736817103857204468178680954979697994979679356870364016728164155199851051800846549824799905157620080959166688760136404568654988571675193627417066280142867442129428645342329245217636609585992397163027859586100376617057146889639421489059204935111464622960507788738329923649337626642220206698276394704223269921082200850393097972919673430223511449122262180307635045346177646893263352376590998793048335025308794091180387083357387996102891962631501052755946959624108183180418134562866275663967611275141763309390451126685138558562800407410273364425751509836933410293815037512635180387914494680811420878954536695505968334233604250690030305356808693925567185206135714382370317821323377317402809204318492687906959145783184746665573376699334651347207393709226100507653968164110671964264717618205216679811719227621391425731346983879188072541891618144395832685280507685921505520212430156178002941870093134051674974314240459753454902564662014213192015430266979175987149936872211062299386452008770200338223059877616670201296238750613892186742475465837953197002540050552924369646896336528503190021757219210754513858080470227968744019952344881502056044423253347163958289582661530182384019391878414835343069673143310873123312595923687721013136990127312061597241870247297202252550901044134724799254239602376461157401301801099428550366656783511672941788331927998891908068798422096726879025272798038565749232224630653920320939652127364882466357540418662409766568615644499873835792345477927238544847313395609221975359974890166517683236393538412086386283507140959937460417838834641531221483755135550798931759041522349002015067067948769211804783290322271376359056057139181957435284580817778620523244866664150726400842437767925188343046244418917205842096402382667733604087915168979198317581252254778942748645940141140432282666914789470473641437793817364398307840535185897409617189035791691430609246371336843540274037720169148478997983955481561718187609600565607711626686386845038739947693292661989676734257177776192729320161891672693435808181777432120066475924617003944888271369813950707934198800356155338808890288315417571092503082742179699934691164996948988648731297310224319469718460104247638386445511950135938987977426650908482554183581396944063474899866679691692063624641822522981574399858848664222899457324169703514876779698465222617345607398872080638803137224208649801133898254456678255523326861000004652270394490765965048660329557322540386416454832816406545597720207849716736051995005933715605533555992986170182796864363084988381115810125756150684329716858622480184935161509642555711609607622146520282578567802733655343572525921744689278107244506309034570282125337191108529039126958798285803509302443736750053430888171810438177873699879232652219627913010078564550890032544309733512517305405271445630695753097222516793844784663184672415030612713350411889262320970204289221672904732759765694996510408184802280623781374318517926007277199729067728801407704546210732841298416419097241256445874938527270208776470522169798644059023314434184081680929647024761487167748753460355795598180738846282291887112680159771921830066737428902463848872790821535470974758681600780358384697669531545592388196746976484946969214500809889330918380707211486936669533243799348482893703830436381390548095600007599796441214529263496881935930738592222796922937785616556429031215836171836391841749390715594999110241077480333448870549463236097125341185004497696665346488467482840963091897137903232579921038905870320718237120350396699205680074171426654612111898513026608187287473490394216351902989654549565616102599394549160730176731788726105929033500800838624594098265876877568769683745170105631121832149317244607492879098355365465080298981511445907528858072561509466155391270672937243143273304718927935635814097972979080326601787878116360031212853026990041394876056268816584241468768830482804571773200282083275328608437804517038333807119665561470096232310930964868237244433803057244796146229444725849791448294826615381881653748757975959301362525250846059664064140609452808652106490277193085879058699424949743766769204803710651740412615064558046150721491915316436358570905447591740633235186065052428082626384289509569961223911398286132932547294467334864904751093475430022226647735823976964130860444629732025256297728860399287413174009141844954160838032555819617649632140376278552370041828065233975819735890072975152924146256254250936581655360503665226134678283751253430620030501192301237659683579648912687148826303883550202020360383814350745221238802149131746047501382981984992235882766982536853613337885545171184175751742344201844111781089999072192029609521973798965003965706584525656608348127625451267818926716260324913760751474944513235722677990003064652370046693431339114889003787186256796318638937695527866275093714962799103620038500375940082146956074219311918464370305509922130441958471740028046552746645228924393070441182246931453692739426009702873452493763629144225796730517604638922656738278680518021194817086844362157477151157569523959245722428504011158403272926706312365911766778450654051364959023324140645157091032555270274169929209703511676500844938551046555318527009790734901665280087778036267917363747285537571665688440770464125064746596858858493505244333083375784920923530050961644847793208929005108718595349719678531544727115892125533716809091850265051232989773736899635039574039083947560751532714588912872880747837174700320553156802627819365447234379873488065718558565748654112506405575543134953907569660952778820582733388072009510793136148093665993100628553366119903998882403075447338920455640968868865463288538629125188703497900643054789375880939998772844005414317471388589303943296236837346665587204988337508743032917986986575495708199328646138058494472418590648493168342622855119289142323569103713218849847184300774302263015055367358218791687953261845514481036710212441879222175721084998522693369002788024385318903517357218434686267916143990756641668158808233864316301312221454389208762688677089188644014847760506051585020400163471035947132176023476524819121657589406756299274044351928681286792538544237390523427311078741838894040835016839902476408224511864855301526312903591521033401700389502467215320811449965030662464656107517498300607721747277957270581676728152933376362006190807153886587567388066335148618531927226910826258770576853057187483731699852906898288817541366600934843456670631230194541848247566379373526256857819875430655773504693782806401876903545819480483475235793903548296980521027736632380556430484428463523860831012289013923265034766263415874896687928915400411467265593400027113295297538468914426192533748297534719964300067832611462293482885695907286457270729864743455804091295752315756372013273275402505596192286790904179780188329521441380080194888099539394827498657861245793584877310246908007533487558001177106706449977084905824088776327791816042296193058581693668583924825928446778558396693587399278159034436847240580974714332546926674164795514329384522918867999831367461705612266448538764474830037132734790739236134111861109296081236355033543650995824678351426955425607920430668120475859325619256365916608814042097809477017784928478048202275013166806356967063426930262264323999523919297042125245562728947696107797169968670198450083289094983050730498373209638254251620006630661096332366392382121152178225722235244604661963983407100634406159806476612471623077681739005794333311060679276900928573151439244785939524632367297698976501340622400517907058878825060201846918885527772867523036957370729001387497852310065563823596409338149953301051051683807885617036523275182262335180923724646471793389675129139445488149879034600866194808002546522440932733704537796813266673456435910454230800037934935807715947060238508618486399477708242347851555176725673283228603477838859292232779381178794818316975773008059194081144444393054739518062957015471745661214272854522041814453001453678206453342509231597846898792652818311913421627237416181709850388188129096939091415002689783562299780118452310152226259416866518942760310155813921517382888662008145888688108922778684829180912769750499302311178501406831302511915943791794697659758910900074465808236389682922693733571935544361090561424380954684053706316710565263574913674647917624858256403270986612794542772918092342791670546355412226027867679239562056380541280428134624976476693341436470973227929930255830430637970215133022272568251294021042026672102496493582333862221039795809334128806280406456096211438859501940658996890009755505364462548737505640528381660610555993542097300034709462288606850079653329770068337697165160662270112920475861859516496247067730366009728364882922561543756869792771130382012425550340985233332126960415369718260285276471541922918736981925740685774536407484143699267252336056022363473677174050711325640419939159665268722708540071310970161470267703198640347311776652336002390495162808675630967707369348730019511876721800710068308896125473548215794966518389171185828188415450387494051787288295116793076534402785835116753820280230025758822303036630555221885719854215124776289901436583369708277742833110464517059775149130678808659712124046315985866228499643786684529976486561635232205913711259868838952465893511158983556982707275575638487893729358620870987410638015796445390552550521999935919949588195736858886285145004927024888990965672539474135959516548841370112589261031483479190947896090532162547158671329334774415905093228251119336758594941918738612452375052617407478393742895376471876680539820959411483660191822695873946997076206350824703474794913682445778958102494845084170486570141086367114970315056894589796527368534456222207154683470204577830468078691998672726813092788699595618461400678411742794231808837970053845702052888015981502631208082427204414066361610330901594315469492220995137341268221567485088621152028446192064570692661128803165449965980408032985581841170688391863068113145794410693422966908721416603141141016989125011765714544859922975634686553302057290566152963723191881707304369625747784057040005404786263172080403183924120711542599127449651814982172465175887917708741375557294167322350447388107712474078047768977835649916765556426190180359845789402978694973076540266343291489288561327492403301081782981076828176078964819750544402372500162550283194325259536024008643869841801739654314850431147575359431998076006601447722039714451635782436560127404387990671456286622626165918806178072140202233915174086008555360088894040592739083980751416323174470853882304466187195499435741802978566301329935060151801491160805430161628329286098548462446633728465437071285578639209492458819375957932762876650222419473612031594525671019913897042000383263746354622498754383750780697741903686821163094037630663239127445782350751509437832551097094345260036486657675022894575850032566678742885854191105755549827257827248078953350593146018073847092147772929522801466815559455606917726032209672741557930111860347783791612490382381832526615496988799731063171236420120907482395826547875849333914532693409187806688757935211978517145723805081663249996591758360173903699538916286259759569177403458308346427887090709777566741854796855831156285762153941301553851824314757566847178058224536245240368208916090261764682591334435693389399978807931784040300580020663266291958186504157901947016900872545961442163250714374114968568055818816131522147992524125677234251311236414327327779387046084153596617557850983912015773217925597388165116876600375517106931480140488983445948957447252120217195551321899897964385599482528253321367664704214639832049548043428899708768464838365961352069636563909570186102841213723154681151072328025715873324201019173891545425278129671102760075258002740330712606945587102087268656984539345607402425033458120049582700429218378833589766150691999433585714958948868526434234286336322892680010517892592596167147191271827571033376364220228788247091304847762178902043331535150011719123284577327390986247269081411446305042479645076751407172941258187495579828378089996030591153684168172540688389959285974899679525091077083913525680146195172535819011734228023741169235654726854546503243715905117847365764756292618884851792601591580350475555148567465088989144922701446420294819678553085732215712000481054103562681027978848063835853611546108778456054821559865114002390000811932132138018278554909807168695910329434693379966825404864132162357820943863889962828685663760096684033796030412495498227742522556958673515287099821068712284928396994023574701946830338103082344439864883070231311960343415892703674098456214508098928252409379166104349665761087325428718679482172697136446188311147155459221850922814594551231193135187114793244669496115935498336712099771009066655731212262090658132286746288261779987905138213212334531251886700395568916563733342660324851489649568835374038823216796561563532954988252733669598013383867410488241582360067750279720693388886786170046143650539444761106275032005058321985350190742595700977905946790263807713894632744950608919086561896447307402318893582755388633763520468316581837832038755348350031255386996864199711993333727707973632752122198923705397998938005975709417402572545912414058671687474583739829761638835082430836543428256407290944336972994429025076512141174805048896140125224919775695992141887570901716770867470515148266157107075915911133659138276674208479976726614627837968128476690424833070777724610689069298020402611859579284855697950353616486113839182929363579244793509714847333899207768158650986928938527415232120229582957602995144671921896317883010923200085810443348774416066973709332934953878838223048081894278424185422325084220089039779418505424013385684532466524629929801452458000393612189154342067597212948674548788156017669347838683720434743326463274792554983990362589373714703212769825153806848242973837613871304010761660889935679657269668340172941089758218175127971315131515575094682046806471849436768233790180837122902654468448163257686169081730322486365267655666204294237324938795345231539948334647201421494420026707059175374234525876549325901907365632721361096462259353378616961034940554402321478320460955358850968761172455125110007473648319562444446984279261535588579503586441657772262603716681731702691823551329744183006395144574022121277505521208885212273249796794841007217473735016288530897453985589599052649586583889991586741548928368165280627154136466332726007586831826290377322530388724979758946691235340389786080253986684230314486600865084838284115547875386554910905802135761455500165739957383533385108288955729241229060667661803378994879080748653300286304799019043005261295108930553690846429813909317825254840638562338320200122124437018936730056924388324682042933544243212306391062839198620673563044961946520989289412258724319365967068276401214608889404784508205790928624004287011495343703496591459777577075566920505776149080593452198084052056642462559903212650415405836297916545916006268784181132828950906566467560247813042396331778824144371488750698466162126549814338853542556378656282304007725356427582406601256877923551331695637274931822338537628247090896659265841743934439496857185868730682275019788278143544861439394065004685952212634279841397099507585818229707473710884024473923841763010812364828017765952310212009136015278064305050928700072919101654505421745864884398107080850292366445532887673315761049795878210995338296853344845920595512100255474926013704356151429244410390366571961349620136398106801152639889442827313837730116098660555873346677276648361260551789041769765932958601204311538703608878213392598524806794197740451598814134492179868664592087622267751959621053704318749286321308344209271161809052297725477006625085885319958861118186460377531343438291805059805967584556564544029487084844846868391601631042853579635180101248078332807327089376914487006006870386770041063897031730111626162853812959611670641525648384861207951589091936451031625806121292099615743215453629394518029639428252073258198123984891304758224789613061805191567467742439459316572401746378416587226667485017210317574893325111599888255090387210410276263475698756525353268474032887920950256090090450145028827970722212003679747860023945595584613670672541749161007360518985999332009211506893437567365474583736063724855131849112597080110014083201055238854745728015829508552935087731231266970859580534481577713523145734164550200596349795602599994538321685670321710125902108091606112754732022124450034128681610499327756168818923558265790576893262017730730969013681582484518147008736928508280152793775295468648800030383993227985484623566382592354801151642654731755665242823954760290343874333433167909083206326667023181228403641676595863470973863966129441951152909597392176178801658438491378289583931928219669998053981332014298809624008489899569266109327909954636255489758710558960183033779088218317901647302153728040772745519654203440919709599251643198840887238757539464890403931634637349226835094492717579994630966288875833216355656594775933473159998520684893969051223390089194897283522007417090812445642732437853249437622319000251121420369983193067308628641873847917963897764744686261838967192181673293197588045599656918020001659882191903997902595979271143176412393431553168041638359500699189496894327818658186191621054264935530388129215127251743362180256169254028714097367914625585151621961276881298666398288472488321333333361561612036221688408657340547917714469993588946544049832473663833229973278613586739690499889940156290141670520089386482032236888482605060643698451667362755877641169141647620227605017241061925764144196896998339989966238750636389157399047649472127504118059036737870187710116468946924039900744373050142642338183493285338278364606731570768906416085634512428125379030164921169409519501208367800654112848609785034034558358307410393779598683782436101237150119584587721169432061158578323556078589620560404665685133506786780266434563815705592751537042559522518201270836902145458764605304742268690398099302758305439209048830917644862845873382621485750514635386336148054338539726350503504180287133900385852846016018589938113064604675136618717641924095929065925473783233124172263473364271416799154009676726697784495670571345014301517561780317143777510086124919684526928683521851379247951597058765839942515285986190445309292583084844043881480761766704713978960211832557140591225089010649134627907621735481854199651907756213112602951957625630154851429450911581871792802430947872074147448610924589531458851034472186384169583500926883123287622964124867624007208170152936597925338875157708424982113625795036969051441705610224775218333701328462252282019939197460898712571803952889630553723692703418444476786327383375117461153162078220795614101735907757384325998166954167773868485295668990536363297110943628370237416051594091261233245617015582244090359590094453858265942154742016724491613371054411150174184965140385496563274052956143969064449650735835495038895679106843651836728988134393707366790658498762617431437238541878384595994967271436457736969165943273556208238040628384701760894577105236172898620569763956638080951534969954278301901781053950548710839690682740133714367886788642846004747379321372448271579028984050468486213377042146410016766448652584133679031882965934559206418240920321833383766544325634189624919421787812138899129342702280423329772964512088066912939801943123341695961217624887733565818026497410843344965716206491237398117838286712057667347390872429704540844570339805179841833344346867284623891362902600449061641561188059114616090189401992606935198270429924668276838635621721665542268376017297921707212486047578358034046551691919829399207608980611222243914136796931042456003463421558334348537294848288971976104195911564357728191232571891860667102255668667941494976848355019467570210983060347183509194539139185183243268662055419020306593731900054459428362416914808856452934403498547256992120563871660997849422175365556852986872889829025277939415113630982920292783635600676619561140742830868594949480430020027341566419577850800726404564686515316463671120255543095500891338824693610916037595633543534668486719136772143773092470157690448994949049418318292435510570509267439998922784272278977008362233495751383619223999077858009588665215565354199638478078205161508448219085325557639581960691376958098672759873414264611734152515817521247991552436611800070412019193819629007409248858802931378556826810493220632875411271225040406844683174304294801898299674117209196507230716155506867376780904571830749755388335941918828946885732867763699633039441250748789788832067551863330696277088749945317998054884132546372149731344116641456705517323880378969634241768310672942488296244044115053169531017491393304484161345904360932426519716474828051594031143618986217322636555492573414776734737680619209043386000314294791422271213503109354626246749028047963476330627174899902025937842808762549276653688089172754210344680522324198585898986768051566041416813392443307751037638676371283727098733973475730643117881061442602984348080662168695601901094805151360784803981531170648527684912789220288194260335438547204771497428046146217270174700648996372600680205255648985134014234635227304736591361020060606232437993032393746307073504517994647075637908456015245344627109555734531986699028973511101647547299675860319951502093461317726344674438182051949974327084023297832055227634054879333557501011803559207801411789253117303808184036885254651063802223692657494246040385380141640160905580955193793800868262856431217185057431697364780977005422076563204695992490269025863962760572510129291105196735687603598734620384315907996424808268930523657222115504993424513793645733105594320319604208642772338098588135072233533151001067916455630046244614990633320728926195868181318250555800126813192146472795094507189744313101414339217168677811700325661878204595966462160888392718469425325643637097158371360022421735798975518715142462521505331449492156514684045473851582034946316922291726612751575258968029528164130506738773363673739633403367607083962180477429197985787890180670588852214575977473875657083059128124560499015588564953527874075778228036806096677512228852218925523779935503304809946455805555723808656814022387900030927866914839682411596301576731413967939708879055611007653784507411769830915130220455504706640415772843465767255709141199617739646833178729887595705214746124041227929243399727864327409171096443993592696610266278692425968786668966608649385490936369619027234419937588628300032168752906030840155379792445055763818599036715761863761318816135223017742607359273632911457246963724449827317072018005830403675148642959510899343599232832183162629443394136538768430674695062028169132865188086658613323555450353054152027188887764300299680629807344916525094320025608476796686884218510739249388385952223904405444488659492121429561051943990283057749175729205174069537781765970592243416539545037142273805109860147158466904889839683353074811775718054569492222141026457217891674670453364920648977608320169071172477521948357484980563246542926638729135023608513842575949638093377593715189367738480053890970896977581372368084242833135271001955062621512407750649292149980361070847076979575124934425400464602870941977661688090026766664285586430172257499106482444272098325999246404919827475704045423646286136849072980669097926031362335101296805299979182197120578428597139980657608653071578631674316889375929690023789835210739486150911642226775074765882322689914762495198744280755527059694143492064977064677036148090736480893766920010311854575196766946954780188319440972541486424658876868704794029946780535713455541251793680642996463508337530006243307068590774678286236293738676027240246451037467468411414798286358674353080021602688733012043002626623916147865090479798462125401278759239879274290312331455976309784166913488108892094784762455789719421995062194673983623092149362414288201410774023132175581091741476329745936032436343425674678935886677036853671212974137682254091208798720666763989305649161727702602726696880731065108545643649185782369226798655625052842721497363494006682200897379199763245242969048155107226201707870205944482386742907964450278328709927767649293090095826411384102249286901103863794752577217921271237652457367778875589549515928625971346563351481196633535613350781711023812017652595966481805359773152611615737353281229154214684276972834463290188430677248927430572672430884634037285137727647637072745986200590402410825068905053097224209189277973754011066137086894761072843066082168122473517071120867241647623395152940931619574443897932731492562088149231596961722232155470876691102492611823151923048828054663743307099856670745960706796879762883167496402472983955144706561043817448410432612949013582205654306797193938781882807584824385015544973179419313802963058156547620436154143268336063511897673284826425440719048580141531995592106498720322966365853469173765724150310255235795257263450461592232049005603223632637155023203296780186613885164223831717473423219756678422180078189230721070374680961640893212875266392529140894650883490290224719890542116635345926922861346582928469190875265722108819221851761659162332226694866249488342928742974543462535859639278180697919490168847740301709937997084358788109213652470914801037394350799858806789699423272054259611097640238704579079711696449841770044033827087810932691595795714865366311061264539402093164559257820953267994037163924541882695415707873643836691921048672383678242504345429383593013881003345855766973877963771765678658316687873709912991499086593387461569620435575155299302354755525903470016266596138452910509612015877113033037842913279507667043325945335555232320395231108775264621095109516640343064625421236774675144109491293581319281999097657162992833560569318365393704064091962833335927138523981761646567289221204163814957777310535989795603980408578052224399071039945480580430523762915257844252044726286244057791478067276233013845789668344765609165487310108250865541404770667887073114362808736358475777529806836571010510375708626219052319479826369285458157658140179994444851803382629634828392040353179982965328373150995851933917478987516731272452724592492878801310748914791602507417562843517270348001254595173343886911408850133329466771561995207903466314934940619204349885934760387506535692718521187367179843542350845772685492100346353096682071894129343000412431319501658332832680674023789344162433946328458405658907601141577005751155135991027881303051130799064239548616122798042219062914567625688069103960005201225296252855427374479739444809129014543345216367154318333192454132727543884251123070627247451335107863438869468313734795374826357957057054386936811843169962026700725292488155609404579333363137904187611569499067267507679199662701891505568144853627347349518500334752739717383699802157630691060670518188312033563306951703751305194904809910853934310790804300779853401351283658605852330447836550892507352534780243500137167622804380027517800379902817689870609340743347131666771299499787693916051844221923578742216633357931553055582842914690226193522763937240743429215781859721342577690768625556470216080800014899397114428550316548885130969416545876842870353600873510005146651652358421792234422909435347050385375635896735972099091659830599865467720489723972737397551789071589058236208917001883752949580805650030943450849688358587946094085375281040867207432251865519769436774536742011522692485190721080633781449662596714972866497322415300813364945920091948942972505197215100265808789947902816843253902731969952831674188840899583581344450263887794252641163294070451782158516548237949342066463381942612615721454858383969034962765630658119272164788806901228387923240555205025248327751520165407884764273319163469127765407494082397588793201922496939041249513916407407847764431698792850565589485794485537886522605685802208660329328924450601241059685514234782400417162642891300430692780794312654585108666784311369483676436038368051435174754248933373722173798778918016202641026671125952165999377718807575678542391213812253913943836225275577943177120401998943204890616175153140784256781596236755329515376163922998721737351715279641268592258592610757801295470823069992798275499391731426090157509081996621749947165983591186246651079384200104341521889233496116703729544690979736845881866124918266215026864616501472062304293139081805037708174936836078538565302878097702625217175472113165107750173149571545834741188829817084990561833711330881236865320415887795119159763487195699451754184861762320437299921347100509375697828361597894987807591366508978091563040278000809279336233331330033232943679091177235221398775888076212485315593386878531776070504360087124292872929811091314164342047093881044900480092783623576118561264680437852783133413225168869701074850946422096219068592356118540298832309769265248234361964229788591657336116459283326199952204270778014748984651005027289469632462475392209154539642817145237577390823117117916671160916919859110308152039246603668850157704820158511449253928742244032901661365879607942853062909633816559129324518703641437963389710250922183496364722326595628196949120887264578895349329926745648573540731611804167350507428548353382022890149987415921046515193126432500257393734740056562538373564602149793053177126373477161139684847029148063575303507048167600442672271383064253181934199583045749034607060209654525781295792504842341067892499529692779165804547801081431634104378660485338079323250301508802028498862029809158317209479221461209079647940730375564389603456314384500815412102446697824203159473307427526598472091867982470574732648146126575895792312788944875307179309065974173043771575167341394759340186426095634744923359842976382155184313507035086097431940312345006544980314895961316876788830042411730690307289105501012746782294950756259953890694300709908922267614944287157410357874043751470760729925901253098178344660695255713246826989521207385397632131678334888024066504309062263586190878076805077802344629693933749291606917162911245189234136755442445280419471419335841804223486584486563744013849908872125602403285101567631698191041857677488639093378845267449794564575862450033296922034844100070723780864395399861531364307883412025696093632490739290532204843825164609534499064646008248737671690996779203329348384780481052514349604133062057384787155090806860821056012677856542563284797060954662210155900126635492778398690129746970715333036491658621899678930360321882169092771257756682060652501164859368227736518128871957639352544311578957272905461582259157597622540305409465884598698072712517710901449302630169557073763877517818423950142069686924256392582918761785540251378723993265533800591039577295382228209899363154438036077239755303535012532218413730501173209327619289248579206129169172593310781825615101753515157144662738242075285423353440568709323843575044618927920817936944408847228199619598199405757111397939183562586160178910026138285215096154791331486664595545203544880267547630751112824165937254084993792572162191272649240242490214577320591863194522799221249324192011725321084703038084309569892559229792123593141260943837455376849714223136961260925825108652569563028156770604146884957857059333039612283554638203738098371175191608689538027926909708846364638204403916925227073625435164078234979138385230117606647678359144949299522735952578646959166274122129181373191947298140630456426209040206983969277533565949622383563672396439766879409336784473923775347878605491031790482555710595662189045791224484072526827442306734511668435378759091448543967440945830679449185265299195909061853861981524692830534863792526417268110824156956885153185589635551222612317666118937812394000189444839266464848224406704462425533497139660857992293360483638490855127505156873323690890922867951797925679932466871865466429780853538207651570631395918177510381728329283667568374258981022270652895587580526911654680546748178297808927653637065269263388780996542213203601373775640487443068960424704199420856769572517578954821642571155453724771454200739249154879240809599196712673243087123245167638878326918196007548686087748824495485309737962565959675050782917283826506107196742214773321723830797587667337403591324018614835277402107936349828282203882729564529133878818344710379394324144515232295428469041791324041515302123494966526971639150405720958136409338881791814439580897051854112611036773300188044593170063199076178943149489417489098464523048626213165763391535073262854050132364302678682867609302946393883079349417095568545714571689327550722274712277714180895608575535165313452208714143559108647168463588110883412880304796241457339635036730737871947763671764087931859338427027881708824640397921594252651166417991168917275501566636988268850032637203468121442739258702123278671827846663008949103175017887556983580096629651030221295804401639746914605435613076401306404396528484178745646646421551026760329068734968219352453431834509481327715284173175106852232920522025639083249528891115727803154232300960235337468150370769009977605288347212762919137819841170560295932098045262271951655476126617652721012027678173809115613592006952017213853700348448112635510062955834570454604874711925339194480148524261834773213950067766866037146590365148317593444229772566414435847437915915728634867358404644814276006773194302057667393183735522062801392111517491976615932027401525911753210992678781315476569593691804026396905993923529470378575891179390666905095035048848475172813149780440570237031693931760381592522793238561954487740221591469047793575845701854722519229082625114660586494537584345886873272596754207025663745223202569788406517071098052211615701137071668712567937207839926215190103675714925929546271888015575519873722869439755328485771060637590233146530897514354219711559647834490146416118072678383233123614991123793717386371840588035011729044189951734502556011663332961529246541795984910839153690559600497730657989501876549106298041037307160477179906780239846748770397151209664142359502906546236674269655444962597373646429924077391418091986330741244763413376745696143329116091019940906898666313162749687051477682398296465778470249624992626862207309944712785912323757699805885494798347360326753937852629524819922698320213141707587367752452245663498908496957669897677591980708256553891747766188653058090963622328577150163067982172628933251486443575869505526393547472245081606897560971264910568331372328095635746021335700841175379123143522744041544071975384416129472070052550223349988875307052720508364475289997131306136202125149073384119028841825195111570721070596784201572389319338183080760589665731267925499467352525446970184084795342527775009917775781137041020135054041849916052191351535083663690259886571238738380428522130632426696753150434738272015612761372753243529199817838331170068887046931903126982709041172819228440163604254194219321446177538656942246946171310352535390774801089495591883517679446979163858553637788051047319156238365177662494235631490070334541559230927174494029107653097824151569763685635661940569777072460215213666146819958686300166481377365082318302863453425323994037670486946515064752619426852435992421960831789777648665894517963841313492111565462833684008878436138654837656053726061651363533822659551568660606704189019209349176298305502432601336625495669811691373776773459806245927406434991122835167718214577535342666279727090902912567209702462905759382233172352036633573098401181725774512879712568754655764936732058861904979156445034249717583295961298975071161823104974312645251058122005053005353711133978154671395199168055703068862953613292327988023144329490433082257807318046053544801995521572437559345246732219996680285140138703530263276423757266745953975235757940507769374692109908222102099342000719442030952595247900036170689319109875662091262888776380018566134834900346472272989404886317807086938057493214868611561044074411361431718098111960067247315800413352603450056324087426004072264902496993228432541229719571315924002880251065713478723989147124937133608059033252426971683016562540603609095323159786719894597492731893951514090811390678583746923183199840330569045083626289687524352207607156906759500869845772871903846758632208254608862318019969939331668107602613296645180168562344193218509731252418230272822884205527688473368144953451854744830807220596804886471942858305533589406607326032140174635298273823434484155212549550654877120908894789076353789469082939877115572981475883269933054114494214048362288681606897367636140201423002457850406533642848810314380233010112567246440659920134538249450684826534310551283552584617512975054783474328090386680108420366964216665398385650588940774871916357814631201126501194378657988606269325949922182607740114277821644455292202148921145394928541765236562939488789121208876025000009986528548099139247612423625977521602960399898025518547450741642539712038228528871153083161500097069861677583096376838076417375369820892387821212883765938507853649237550379279477202944006204184278539021526831032059904159464580815518293936109266494866786823957449573308085427143325999504621929820080878717256715520543616684980833593584803643135459803521591583033199267073041116172254758192828209012102613418168969894302261603936279322702096177748469136078374637701192532874803219951969328315561909644043250997960010076419218700916074957952959493994957556330099880441785988607861716446938241816510930636144228710312430056345406750821521952674656455086478145074691913921632191336580426791446312763161653741809995226874132648934222297685215899628923933316649015072111431125767443207963664822236648013340274682536853105016501158571357330906551433929437783423809747274284600184078897192217187724696661503276913064834513788603189150910655087709827163191633049170441790922873452562146704413039741987540531009389054986116634809024403144128808430940826793993923897733702761233817503980132426571612961498593593267244806861850076807700762159669179705223343724544807017921759519752668482383929158032974405660551102039922109916010889465365195028838871381448431357777832849876120742163401061140409779356911768490012690767999415398523341708865105152636113118883948744590275460667628133979955892524974552465813074873928792078313925305803206037112242130967877990328143069960254920427246775164214804827245851987546541345997254118032332413180489331030746815234039301970371467016846064120812130033289479149779753672190020909677037152658674842385013827221960129271170768747694647941190416748221491487688273544097413249104272106398611515554349800791812566229889861071937071786532679457953297753229094773144174495566515207402405557417154030006601323257364085674092996045210536457555646269092712524532931329658747154618483517909946050117534873047406585074467044892000992862541267285420635109520450055202243370154629987353392244294558253198896350069602224219688316227819107104953307360035723098871201494026145897438148380122551821439177212463535894082064860974541029807115109880885150478338472418347635549128502336636675974727406813575847067922963950650375168236265540986719022757222367788604155558128155331952199402832374085423519487917661535156733052560773511603799887677173668144215265840154841511264528698800373709433253107158363379520141940415880867454986154793584724605877661253837649121486595069087901642723514211923997924047268415273789360284246136491036633058328655454065497740899563939846129335068480318147422794174031458816838592563408108865116665222297938975837364794545200517721917204671777056824682017791226677786169686318559217293841783729765849109170713309594596812002273214105273754054552926736126487511921001928230622907943811845722787457982342080341209444490492586134059739121098144154676868108581016912390608200380580386200297056562263918552406017259286575421016284430687148221291036748180172645834667892902643734690275285591402101033492863911801375333013498701326941046235542273375781506723580538838915437035926037679328089134098959998292824124467862644692405216884170692278853421699058279313341268405406653345370490973153728391852435116450840400750630590738229373474145531218682307466743034841010549620275549453557554173534430302516013304055362382100831984119875928934851037456809874041164488408264667053337202384467521314034381451352356748917809260740014184909922421604147068048980431711920916086440795989478479302013254671061796126216626565350512217895497756650021303595016168232827073661953773825557125781952675732567652341493828712724130099324034270447765486974094297339171156516329874882941623614622357820839236262755213680101359920917059698911849086780270513471732266257187124340016812514731396881708755004612907272934212236849014937031727180624458960588629390514731500973067111091275651690808455253460733007843587141008590551946434063093544417850800066583951270729006867835201614076946972252585844536839715597584643999951542274335259547034707413481453631245987709900908492072197925014998259979574604166982643508801255942953588487128560256857542831984178468746011351526272674222766998398088590362907478310578256399841395433167305347486857541432408925054848660611608664810042639484188550730962948390321263891812694557127066065013229302346851551202360679344071925740293664462760397346873445150447734476215393121895277554809300726449457323547055123969062180682625695805624424314673894710005309628608624342267031672634071973044180535362867271584506852730392217060429581820203525494445320290759899484377424742639421440135698257582325291453558152081924467726310484753445109792981243859458233971297239174267411731260260989706054024243308284381250271774492791707770217957530129423350278323317707021225218456444704003054278478670320743186482953141277552624810807797011653672657194277261546115930836617328611682157707975224210846319640599291095422604652570536568783786869046606228441751709863424793079946088073756407336037474969808045099810300731165513331531662448488379157531488738981654132685855621251610838103993545292987518416528999211527648950025828839303392246628208590857315684833342738496645917839586756830335926540085563694854979044296572995538460568395477712026644307709887755849404130188920209104740453698914598592451136999954873910221742722195421477487983752832559933066828276680315684610395193884456072797246034928980676682907114562097251057791152169169547218874812142784638049630555280534105450899248024323405916549568443780450536716887385403500443120956991287766804012782242014729458908534045933425053891540936848814305708448185870061791674817448418828943222935519922146429366458488770131467716895899879062610087907052170397476652584568187656466049209602727338189869108331199734222105318608175997066105462798991683826156955894101189699424366644937245772960192277568608036311994043483286835337195978599539172457849202629530321543775793245456053901902308838511143416447193873629199559716786538024839448839571394122600076670564263044845537069157368605416553618648773920828911716080126787998041022656493362572898083477134099251172568681505376052791027404015990977308149252654575954643185512133864093698827602437747443725155047827005033886802201505029111841603642145512378449249799622591778635188467245160984212935426114028532286646661065536958792726448278752073583159544052742892365106944140574527054832847673628307274433034954619137532346535450695979705654124960805480013435486644703604212600953735747012309721672142748277439482750210808179924173573527776391338919807110661827113505758026357584864321994067203456484419007734885351145134720657293356802583396186062439401226172004532081434927536543076949163175175295117648331020956284236764236880624609407690466886999884333623536177653178432729898475687620456598243866164653069933957382340840112038256592642328160432022112633435427359398924721984643436232816884038979034238720766964681671201793746886670138206172638606233669383336486297574627670827979054573630412350719174650859140178551398474867783684518000244226431740925814832797143602444028735129043596919281600268139172428624430342654070637583607527645297330096411693130121979001809442343944547198760304458827802379169855764013769867833046006342838302060267686887617055813517458081918734041263860657462227851820849136678334731795521040521959108748045778531918964000393711206966365384401285542088194243711651605397910311606374303964513021395303773971887833063097878586647674299942023422105346897714659783835391964445800197221408673675260672422370627873994054061722386570166679407644637348983133327495523355851006095051861100043034750257561349869066934634811490793273261542437861756063893197430793495977338412834575320882952448549902454337624725052297662995816782623096017643116496021968570226107691117273951047908726484613923274755265693435261802674192379067894439129565531162778436174299970822066314609797501100302055026540318912424325365178115103793553469154300869295026493765350280065920618830176079983098257900674739987723773337339057067041373188794696631842103190577366975412697513906514651319488900633655087362944160254111658646343675935738124887523376987806212120358461234376065638416286664774321802039363664005265235439871182114242321288283437628432489018563883946928103240615313924874384350851127001106450607219918918342330387709794226263099729718767172842525808562380681685761168073841446914853967934377382106297607274863613226012060218829061356467660584400360260868637479348393331312946452536060393683552953491437217336616645789503796499808324486490510231127484006397930189303716841966563503571541413994128207107862973857765922362875460315823716895104921963581440135325497063922311996442815108987059927975298478901682221432977182006816483484692180187133525956733524742212932290775560850463494816027735605157612024400773269003094316944152006000992165469148712480902060863608752497473905271673512806155634862851522461050177813975845508574597663178544320266815064826425539038359828358003288753915017528848767356067317812045159706060852401983054293401067647821330098990765033115127332093516813919222692666179973634497991026016297604612688289135441223016050744676470450030190735404856493230060643025465002784828166057097978408060613423456846098479100793280377013614112179606084536066793303261987288807639662338241524516409202417174067510149400407812586760027002132948022869846564218889170559308168012434925401588984920210663668699237247563123430529536907005762289843970766645720254581641521045060140831440215974266156711467539799685585523322016602180338209478861619597214166804980635209143300283584081846636768178302740333589550626505676322030100324930439356283268612347062018520356400108286721821434415004522313047480948723112472243783273888307009778113146155508921718983132454400752930971360827015472474682066220980761269605339563996816070809227442940885962031050235270213765986754800541661896486902425652928562961550750121616867455516867396200778200198747356184768998282670687886878948635894257670851087059833588285478423845957375227173843541204019060737342946423529369056732776052040890035691753750612858138104338976452280972865038045132066959086946114184252603780199245389323644265545953872961371838855547907360452124057043687981268439298096657167214032974113404732833145742766342161214450884472831469696010525668628689213714021945923885680813329768688669335033659819673074862165428955200119859771748353039618952483694290871627098334050845913971315925922110723053148134453609308925260603705062601998165757775892544624240814162584530994790614894484700044688409064600194389252925623684843180364107558807345978824860289033111726605826558680595059481372053036340303541340089512638390301792752856107236783421208267791248938931387853269902080326320805560042799927572862669696206215154750863224142719016793271057724458856463906319299551811536252025708307837888792705409142652191311400109003702820162920633911231426818829915003871959402046477457535867181316724030827863430106260491779708604358678959276112658440322127223078605106156785715899248809407131415024036361181112848602932406589782943747797067124397368710114955454362220143399892285357095246431027412829245993500007634434876724905939731993696748859645287159930346307500043603788368908649845275291248394430240844507269055117428065998248199366768937492049525975344569136192281003433375197324564952686417626036436637887586295178704624865101658348458158566810538783257670572154031270860658432829952358338687916997987012356205754791448360513375465452442529836933078467689340422821660284417634993640463522673669353002402173271688415563826884707825096216625423416757627806368871567102779175609377905281272471761740489637646242858109112317083658572529612329094475136889943281775265882450742867053947100841248223260320904542084966343837610684296244202396464427848325300184450322565926034974385456175913126374548298294370677792050784234188736940883821244503162931767467118818549107297645793910820512293650648804503724757132946509508852929449257972759987931701532797888890337758025683328382217609422186664435793245154263853742991704825026850521040126017638818236200736488917357013922995598007530559637569376878621204190534872048460939809965704587249691660242319429389883670556073399401703100493212319827488971144004709791235682915982894205413213984093793976609626584991845449714250987541222604452751599844917847469168263140156615722226843792393392557941284785540768608979563763457813605342128016858882339324590379613123817727857814908951663025122111431230709196039146515112799342769431333960654484192752251200134511154806018570667789644713568740784245931501379717964084403915392749679472034404877286726441855927851096298718470143524078358566544193839616231947796931999314134042487043735857730912209496822501085364045685925285493640398616690309734827152783493403370731720763243976051480553864942382008484328535441628347153063192855372167900853203234299213937481452479719584235264077879025586167063435337187027276968824641016832363974816721476805031882212345231910128196391611126140901807371669373918333293185933046350233904900763783167031568941983309092736144622168442740367843704034517138464183258563298385649757950081771490918126008438356009905938380635972333696235782002578168673639241070603246633770260479086342145110241324541185313255151521855980466559197057193196013852713394841914068203094668627176513017163987525419193426999903203411006417073785194074002459602692157861040646749066533172084405144646873760914442310202790044469163322834875974204219611707205272054771910049611867462576609619244637959559896812215685248074376160677079882152402478917948755084969223750267114543966019988482401289669089833552534881122601849946779739694015760160308658787694734321458356049679981529988848431439633156218793012375586463785574393789224352101794611846982758332794271265380202342820066430727002690279766999247451598070223599021904295048630554675906135436738161746781996382766169640063644297801937739333042023710342524973931318968039450743885068612915247370371829889338069145438784161289044059619457042952082608860966206624996090634230106414475711302934409575002356407181800144775597088133086134593959803997516222672152343536565878852307759350190906059767418971000757070194073523837838874641261853753005357914482500372973751896120805305404306488729623449879709823360238142919699686581250661045379816006268131259631402989947033416953734618995314026794747151150362796775502048958169433450489018478384923089707829448555375325423124416762679810085878238654086266074709743375476179258661317988052149714598013889534020470300788032122722175001433460671231710739943872977328027145856969283214460344340604699548792165827136193762407306852788729736085179604592126412264252371581508993635223260173568999536390647655804107361098907500785527104581172406343826069503097132290369724832419940400085748090049527748659962753797199241732276482661589268691351617794026428583432176687085421389044162264995597666290222624034502088662608997910327648571538124442209271785256379283879240740198703801684558400723874256868482330997976689396022641200332879712845728036759761502927773308433199964068125937555037857981811461121043775491538501214263226052891596692668903143186805989940356606697070871690807938385009529204082157470213748017467701107352234282059499447318515974378866201122222419454586665708378122176336448366769467864171302909180671130876929781620079717415441080850030784097249646821061946437838738614454519425488229225692240896408661092667786526582374831040249685867347472955687607691272569531629978848330959220380223270872250385634651974738768449335569688955192801517193510779046769872872000527195835670546287780216876465153067362131232963999725522913594165850987258437356695625575897265164659180484253964778117109157939726900168004700387245955286573529935796753533272101485917095459794707248294519928839321698469307978316672155808044712964536515952878473546766254966057444550920676635676606073670395858003600744010595701355553678809289544278061609393740179381345211450533656466011759641107291176567583544641995340019127296735260815904390672717538185737205913818821047194421362580767959494601516099938269080027687273557487847165440352846470794155522034313502640293698289805993400433299546215342082136936625691801871225269489170758110165542241937862872738596081367648517958781347438015791119515609735080969685448062762824617436736854241642441403530733496148633577918574737080166907602422033319435954425144572577148879616048641503540818139082347133595760301239021454772976211397716559461611829438638000130759676886202018898805804828678109102708334836714390411599115439131662723216695409109594629242861770231489068914977698951469593612054823062899267440757189732460463968049975211564832771297170764086943665025899591793806677772021551882324422686711981208370149919869523778789252686798540579565222571160240188795981051816120253914586689669307444503558975942033620024367683400174169785892231325964654810026571852937363652853752037513870545536714854718372594259577091625102773473603114196465219815371756389603639392172157690193864636410608239602429695096673708495294765616316045516386558594531200326302635403524316750521361814466828659532960574049385732260883868729817664871899227564477805274194270965773676078674021254607116325098114720694948673206354093129860041909802516186070405576206475144908420352689290992114597847553007312928085039867360399641250462717264182789786062448296950798309289944779511734581822446348428166214954418653739212308234660711000168803561485035331832722719488623990677881621584126305708279362528647976607329633380725992174340545191811856819861654114418534625239341407940218813217411729070156619532014742991147573827517299343859242338554069289437325035909677301440002917228784287662743825480099356983661697897456867759437346873635970156644725241162241839114540784635665846905495227272896030663910212558572942038982773071323081269968890198739844159444323079134985798969253369251478307457130955627194230725137432317619734949813938102023070571715891696391700869313387166062860917823944676405954463323047421491527501600618174899801838529798308275021969090527337485320127890197954605488742230731174748662319306442407135269916280001045621230841181155260290437263697204617426143309522176584627850113244446984754947194192723551399809181594202523863147635943275990097254209730660009261439111406014501875259650287622008220498495182536521771884377275481322559643163201372143167359590713401525381891624594433180012904456511212970021451171346982397911555643838946303002013845279618806081672750995911510349909566618908155157615531539904671096891931155218093734462477663794124145379442637938904107641921640001574127618696387984332329890567325354955813127028614594975535968713180931988858478064922051559220905126638457230750731056320736659156636677999976809822880798560252156227861412437937213441665137006783578106965919790547191618913039087738204708507728066976992283486185693836603931782577130572997884300148927048155997740718122747023366734281347944787586282497048539238091074752873215077731384636018449252411942159916281768586833677645366968300239558678266091128507199558568214448344781504668388477107232729927511266574368363831728231257864759702319227462944835197707438765576262743364393893369881666886684883690738988708623917634412125216191054114435299576971268951271899727645369061908787252040137349658739607529830270061487770023152617440958876152605347506706879500969350168985104472287937505693030075464318397392067937856846606664694041650713492185685503670640665520652238749752817729136946509643343606521456502086165825974007298985150125061387451214901465915261702977092505246350076757575061628065615013296640289102853860115363863023928170418581174004223321354912616908176818231568305642981124667477299016152747725653792100002013691105094649885269680631005713268284188713261758488680643227312775644206437322305478199537714584714353883784360198823318618060010264751249334575819980670664249457249644199128616481031082192707124969720703079685802545952247344639168965481227102103448045825373007511612717935767009937272492397202674665366525035038940522130598114196124997552802061923150979659556406977949869314128800827695956845627573470779399751124397210148561455501442379925134623810774060767504560776924397639682909767941414572560460255359806084790056551383945608367187154806531678153198429280707870157112691706798037357913006817118757067415910386176436801388695574544930144659610054570769364100671250471886598761470506509110290678888807103393167198572026494077604693343049000063008214494118828112235040789733297484322825277971674170267315838137940836690781616776079850711650765838117863442851729183514696825229669623844031527002256537760573222791249214951613203391108542835951797701600983575406081758136166213867244052241666573269435128632661918845818227873561217567620035039496945370371041202642283986001186482155994559365112325921136902494102594235789768070428921653878664811686313187674948064013629165528828080428690354176912434384237819483597649827828070814410640339569370780234478678419006741975670882260602945988595491976107736031027212294654153253266798055830539590206226378879040739227382838706888816505758816603111199303787465590076820429789884878663957645417396307002098848160150518439293285914470080116127632747806067071613579406219771153106774662203882214226066229066056716189522685473144044303937803819765226242637563078635481525346981248308375183399246490647709247610659364490692187277703385203656287528713333925593323159102000968586129483528979297505055620922959378163409279767914610050128267482522295840292642126919916399476052215465974631910004259886321295553946941900333487847425290033849597915446464116166797506068033626866624967956778988383044159671576145452806450605127085984015436178726521157337973493689784319258728834997791406446101615906678638198187447673312897542402832199217613477254856506697028396130110243805480290730767482759895748724697121879722874180908355478144920042837652957164107149420818093846353664887846013493749828025600700557330126886751559496060180433457525511055289561213065953079416424528690743956915838661075419519002108790146927840286296074949397240873640167252961452303397813748561381152211754109501073544807120145114176536846307633150219302924130931646200237379406701100473339999246977733377178061596325565275418569705927127975427759579346319279993606523465834422715727992864844227279988860170320812422101503401506944904896218962818023136542594978914062443746320095233187592228975171194135537248571636516458381257425326517364372248503164171010001895768609357347320966598210716861219159229300248422661809621735352033167896247844744039912030430555127528186087788989760118855394973760747523719010649951538611160120706839425522183216788027697915141143628558600029215992585675005388122552309314878577445159506015456153803890377233739863762426698336401114673950433687492205760631445975086140655570961883775739745104530256872172239538775101279834714855175474773740094738947051036494049909800394994641593789611787338566353404146962061508178846135035686164900353683372748341214725039632983165032570348033063927454238927177132581716861789155841542561408440336877083184965897780345012198783363919601622742428264221990560489002448200341942645176550594083976735689090903701365326601666963514139581655066964219176455235450922005608934828794944763953901592192048819705429034119669829782503491845483424710476412087509511354902716139493602120950871272944922239637491367489410420766769969150405365268912567145759417636913606846658878424857517333609481345837820469826235884233247403938179713348964464203091208053456799434499842518706009802863744717845590323362501200280311654148603728045899872911892031671852987780657896638684991668627692775902199425181080285804045036056953274305799869658476343374707172973996889315697489268539125903209560754334346861599154088706697368227346404503852362254012814253073299780672303472761806078069178686255182112300500280553794906876449829443634152064143153902243095221199051594990457910052345859562837327414937710549258283776996936160700666207261982355700980764373835398392124502071421024280463707681575671914086974099522877524012834936024266313793224112460123261829759686700212003563414352210675266158111602521502956046147954146092239653426752055199923081688129816553368875486612533369379232356326577942548748948865985539705164822864336481495299094591458504522714593308267909695546796170672269972602304030679882985948424658773942433967808487491167553864327084013287538292097913785621096989039588783583504870188389605405472468718204931123676138634029017267607899519258719036438384682888421550222138039855236334439049707357382611919345812287330260773475195743881472702410268689836743050008653786185474861612246558591832304668373254376809486977599517704055581118046757646305985948051489599957161845785872660951485297874358543034073092231270066948787675814853813594141568639575474670896253858430761897867769229440749644251585724565827911987290297691819559440611642485044994573482585050782083286587221149405040197582241634963448319660956377846086258310917973976085554362386374375507898219940136938587192262529291739576457302013700946244600738582534137051924991677749996188694450269829855387798733809811738333486034568888592294874960620212739555248727245483558887488637395917604557191655440350100706464414441059716896700045489532361584943979549045997879707212110662572829358333309645575031074314915895365689186470770395601248065379475535814360188697883976775799958815920425437861556069444493562340532826707908538785794512872942321491469289081800085774095671593055974297083955854420603093118347503152508546717835178185530512445566559568791773799999840217104623348370266138568209138847101070986749538537988593224944520343783439551199804415462363421870539726366465096843885114090027547014576204888032896181428537791558428874467323136643530471584149892316665044844065204020086033139702489611941404823699765204043376295452832585344045104625873311023624802337851627884788969677290492714065929021968663699487453452232398839551375704643530242653232766197558778423495923192822677150683435391807024261949296761602446733231555623148958927481862425443231790957313531115411348550839219880179279158719827517630486933106289425634803514886425931623571666794634589839494187427267463730984742243131049594596457561561306498897448020911903391711521439742751508912769494479720125005242946623632034875698309648828939227273010022052241672101972666637787593455879918545463465479347045561856212395012705573373068376801916314954646412356555852206094172044658300466817594575280298027033200987584803887750518451661622839271668824183668566471572424925051391955438788895404393923918716624248917894246458676379267321059886240667934307294608141543582082449732599552165064419516975252472013210265739349481059083990640515328355298278679345553239109705806467528369255080490362464883822389706783286137281992280708462141145266892205876879266340602956899542887789048541762622283920504665365562763977223462330137037411914713280740400983664758618932160528854797671251435233334646681241824117179857907305190477080207243343829365666299169625226510856417000878879442870576793743539319611193480501030135228548217836392398138160681527094716062903183892299944670045874510389329935866628921096179364293984174900015490031160515740599834398005064389353234416613152771826822036988957524714027969051236335247850541083423369740908837092021447364883931991413533943649532034711500974162593451928903590238079243096548514729539916902751359710860306089020289905534321585950431632585871756365389959413859051248850459134968854684478367622226060413772971782086264643778288287393081035653597877316937579322563650286657035618636024541627594595386568106850907408109033992571735624737425074748004244528299718578916233291015820718915075885427284190550291714143318159350165188795951486054528900776601762469187108917575462273163836986503068086194231097000033914783947475855049466182503202092351047784884508928033434374524976254003085057235890384739739089967282675896435997322379433871105533075576835346355924952311564053880318007772903198078730048270121284932654363511406467887762884974449777692916580849485203241606872190733998327151912868400231995242091613304461452701221603387035630822584745957290514359277530317258913765853282132412698468702153665931698741092071815400485179797894298505160316247399364040088620856268378562208608048939798327694474667589404931831807222057571795299844566523812331606666977554675880516675331842396989555325946713377662218132692142056376516304740471820777480395130144235159750313177060591191340598405658270617015493637980563576937278990396911042202149268683423650814970751601960232185043011692445850557473855036645143824077050217365018815788716814054055164923416590319791636109391905934992482364622736682382208499196952807081490641585483121678573904280814029686024674030983481723531810466000450825062250697680029796530091707209163784889767809031022371120569477237292287022211514022798445057869297794626300039497150479177615676215617846056516369396594069514683226731826347500751962542003196773270434376092534807588196840944616175403481698763315669187503828359288897636369439580083153588299563122596488968986140847055356244429299249880808555327603533228777919510379232417874013333407371883886164714335676427124750618452726949952697602094105382806077160718787444174016516872891271045110786039534168531458412527282427078574356008728692086565872872490307829233473561744537145992109112927788689581075182919819341181941057413453883566054980951351766280542186582960938299525182388756988956164326027956574743266983349755052761718073389824617924688332601225501378629498231526725525215533368823534276697844125840533132440451426372137688306012091158422318003245024340795410647528394310728359669610033911706735989693685411227873974897586978217788152118177514281604048033290508319773201138872788456492744539101829639236666736469101197070954824423346226486500421513567258139860860736023398653153416809177846726114752481098980904066767321708677431281238219296813046670683575758391172410758680152439221376215103748309628030615686598647055574883313962557821289212370400959789069287842611919636930700704509242028414442000099136271917998579995442835216526957086444568167425024353929017026355293873966161773259230571080822309800416103096719675258442294349566629001277826132699553827097935844228061540932778021715038284273860629045765097140774279056255042128757850167804680896295783551741265222646400565606087611106988094388640831094034066054146828230610423192268745373171068771987457076723521564811793248826032655958037827603026823912104473949981519152080537334912005751603815064059888687490487895674429507498594353206414034827881448136731831652653611569721465996082785912609590546453789521052045757568975027962627981225701491675195584890061394941424657343717437097371646094235384863301671078914889181990103054663677126917926334744675055041434520384100367905195610060352111724275802192965291045531347989551141626426071447709632350074800011292688411623217981315540518608299384964531841847488610827305038075869316174006105664624657048062940519552822983011567212536222520408250143209621445668718092565257591614082616491889763725038296288738660660070725660659395264437371191695487494985055832341025464176324562240948514586600937703475228856990528891268651538373893747207081880892095086087621166113005702081195820318991017379935980568527709303573999178843369340079909164657775154557634332333899529896630637538296600423648245500069469207456617755520195401183981765908853820512025560701649444428366348584150238411016574224715122405479330259462454464255326896892301103557607234821896117538186703271043022246109271486729979593328752901963489080304222390327018504532245535353186152077512609088087722738747905658498964683763844396178574335389348896618184409620664320947722857134286049449489630411523756767638054600069407993556943367357672670533107003977573481467565813303312891032513426429533184712227864110415646262348858239445752600025056336072911053366378783959589809059132468587436281591392057913466675110936246173374028264696239838600626688155109881173194752625917112891556083128282876890653080834648586064506271075242677907861211852653359355783996417376709241819097091982835701210896091850911059321513514990470899297155446383937530810233607371402393289143464841580434229662035311494873341616963302657480153251671835131436166152628488709676133161873937366427764859225414406738977874951565449062773948806810982057828281607669904607849831351021702286730102082268264373433279704066141124017806835438103223594899383134375458881139369708801563603459010389903911115310010429399652119327959611506029677634378275173475503512799498589808711153286946958161139426489793497651777578982000182388454382812021255829186767960301124159874603173488917379530456821568554392423955296013008765714394029533729487500504177540462220098564958681060542498312476589977963265090944186786456742170500577467421044737106296342946943213644717775193504761664091972489858725830654731405965361258935939541934219677936990239133880365372026403900522453356747419461278266551431242268737182754583802234815945331887859498345670570924241238369651901880405467790179350167744239286358457310018733061113287116104380101925581497766668860103025359408300876411135072027432234110293650825972071359744253199455612341238974614345851874033222292179840529639715433755664553346831381475191948259113104197684529258868678316726089098348706815727609858844000373517517762161372150350847987717251695855865074351537159547598470671305858165664903601335274288727460400098482443382732810109631321167313494234025907410576431374520041105267312653751827037042355790711443110942561270426584965580097873089588379944269003011828100991984157822121740141879216187782643205332479130201116906606904637720318564382661507296485210076707349084487689067707329764491547647099670694035832434564299572298438086789131675759185567181379855815684748755014197930283615577710096314033756184834422103705801859310247534261494145845957213416371738758599037605985292113647819261276565494796266897813598896867020103187922403769473177739152593212199752557928003853588111273197037414951546918460681085635823482851706342225354759556026097330694271016337054048231695551082949682184824945295426164989780854578364439085369646282817003254915067118334208931558726482625683942190462572336434013129732016821175356185844345954966046563905392318965282699463278162590147082178402891879789899828181240328805286310222508390123864405571416468796390551741663965646897444569272011364657223713647499591323396651983729199680592411324729405928897533172232246215005936366319434001440126442849650180821201535322222497495754704385376686417580213106666799587852353487603579252755588406479419924342087776394059471282323291487684869108520176933096600483406710245950952264595680544729598141703345848658310924906555285237897458432362697501615226708635417744684455986399974500945860032673525154517753704408501727784642070299699050434849740682510976171018480708719461096709933857248067934689992098930845469724106583777831359619114444973427826917428106609093090778644077454720346353912815430490819119978150484232930004612445416766723063624076409341262550560459115861034265719747053777130497849271891973390494162772535449744826283473472418168273372615359032245842607886756988402760204786951350691612640116063886203011569916126993730593978425288496517316244696779721082224957852715376891580650535390369427516413370787503373952389081652867190758153126504024408861134760210216229474571231351877044939059217935256686198340308998939793051929242510418951934424581215140055456021515961652278630728016953809842745696083115867818594071022740539611327803839500219103623230435749930284715670296378131902386481035100958742353153777033901950682687118969064440925304756332509733668748318221995517958841597791611243616434131959318042927082071401347879535113357523710518181946453058305446185108652633020076352123092185366003048187415821348261586231519489939137265196125127023944073786733376770925949026334828858979589720505035866402817854963459233288154574500702883643235296246440951263364146239587859186593794226898025638661804688044032928841616398261088719946524146689557297801119923108699651910029143235396985800877813938824854921311601246440208512010271720189213397851432645254453451072442999856937849716953001597455165769887088932497752457795648019676545855539592732836424759876406624474720712330549690460066265553310456166819436498150087082869179469292965937641125598217761906996484959643685859206365964617457910154295488299380414256178183481411992836302485122842698489094555313889089952362097599913790029346870306940651378834289626397380247911194893920986917231512588983802896511150899609887046166351274122337166860767370784011996474549488013340391595450620765983449280513038661427426406725780257429205986014398620746552050103835184682730149068956902690539667505266738607695061963961152691110979457514763283419729734767133149721702003456003652296904867202033391043997189381786171750363397790137414916856089150742963618595778339524253638579231542559959266694266654376498257082614088014637681476535318168474495446323487940605564330092584405422468583946044850315270596510503095175436729609962367961685357918154767950135021620796810791540927815726918699697112155590442420894308304946754261998517523927325400543718531156608288257432120945672823784764011644080166212898982662694634084087509374723352158856919673508985703402037742462657569547043503986785082074057401398517433744248385439966767990739224405946359522178548145752361456828404823366123185952623418289667647361093891254247065749145837034684829737700050901585711948406520861038634460802470680039099610779236284238735508798065683254411645222609407737802053921157415084646185605161398527484015915523810252306299950580843135950693633854875907674596292256507776809935998005350360099478919922730557468000202629968094964173841858617272304253962882696138623529435162330863149781463365208819443158875551573023738010318677499645131512452938749111018306855015560407073321275612754891287544226297197856999743782854026914119182079690583046398245437492882868066537883876918887054175629447987419707781685488358559619283558415006966405323912750228406209835087827416470344717547988005242656416635889448290775306450898785709243859207148107098588228604729236171135600149249081376430897669209482293288448533348639325126556446243182422253276271747571462915637162726711837718809363819997188445522027613770701749400802846641796971523091106236369269901199197033972381299820204378117693467524978514498239668310442926345865481509783940764622881618429750251916701687543509477341597047818949092197091139397999275730864372590629083376541823288608319395467139805840761088370350443920686436015588236069784849802899100365262723353378856432221962639562201376272497538018427744219918364061039871901339331702350765519562927366836920546235506230064806626827382561617341837905580850576720366448773132164270745008340185501540240310040148570109771844511136100187408302003653900867696218375384815017335381964576552745241636288780538265239357753648526995805844683075229294577084163962037105951479457096358813803605477837836450281915929240398117354769770702814742843488383512938488488513372573077395984465732060427386748340206702336882199984875737276727963333523792891045457074370988057122129293281612101861017956482887331056051701766641836817303220791057154245071559070585770891323782063636656404573704339725493136941867566561422772718659278388621900908124801394795764225074311889833941607821365997572169674436285897410312855357456879994751608531019471073992642529338071795365750843718142506478132010022611999439545581848561237501958727709098545478761937829548954666682251825266994810719371219285086534087548607940767786608102834939356547982915031936771840101810067895678278130517510104395280350466132843389241706304962311329070344970071743670024578691848602214606548037974760184563666096278489219783629746038879830612065568285017032312841644733248951466234292741309263280906697181987017066184445591581575578764210795210065250624460177159714889437713195064654634786573573162012044047560805360570362118966864506121746953885135790069003558199150092094265088985197992429518436747328641839550737510408545655500715718159030799220931743611667593781805046356660073949812957723689491254721466046451393652248605214322281185881294872434943304943916732671526815967043667257592183826209747942977760642475184936094496765877728340133640606460435050434940626901954734806193423891820491900880880470932914728398883758207624679926762171092384876128137209539325511874418346059728586304562221640275785599411173561280577510153231431097787424462033124598854430949116472007668915328991289624780765141402350712776210956313160913742674593958008125613606470684955668832493918823401698759744477566853750114833643155008117590568812259077551325957746135815727264689893246870250828299561726398281832587476267435145135364128000867067181393653270118276633583242909287878891472389899916341480015522927468376355942224520929313226714254476101041410091403939824839060222178672422764197976733952576798302587800839538444671801114251971228970477242007975857638471177540085279912425703543021684717694297917778247156858590379366043247672169860179702025875602579068033739297806392909936262328200563568606392201482952414320180705954679374455946592654816126452552607004625517362065343388370746702602696225864585171430813164190110871424066001069687628054130843724282110871188951801596411840721029527446438725165988437362718133990469901166467429912358771658459336051604782413898481758157382437889993094401977273490590861305618605945345033651080404063581660284579148379186068512382888856151102869626829832890015939207301936597909576617623695875473503979932835443113120613256318862928614837897359935863275515485666574911729312713547995756120789734160185360818081271480853774663228843056036492650714920518399078150252867456027892242642048273398819678656251424390669260343834687148416881067413296581674032124953092309563909910785815749241899593594195659364439917172412387568286092599045095124268285999502604705932526427359284570199052223915042462399419350836167255549265148926809905398824979816504777243984381612047175733397700652228161580981166328333526817981696885135738044914492742482968690055626910610612084846437383079926956200160142857399738328517949888825729639248443415801816138626789671674887306587534729373520256064721331300268656719197568589866040708398350060566313664242528733744262277854849749853088760949644893102119168084141145997557820323688413605410415095288179579226645823461921559402017573616301550946281500279799362848369368037485543710421862404362065542299619299373566064689769661833656294854225407911832944379288025739054834232556121248851714787435359954635225061361339398259263700365360271056125241148707734853291034906977642696615856657822201614364656714580627975045186916618612122326639766285164631128448898747176174198353952466063045155104616271293251285047854203186452911175514463464245509995692383893403954449931833954354233977028752183066730187820107515984972639417579927615063191471317589114024179429068416191637953268614897175294231352512230452488244153953069743814103836603345729057050060729813505538226809058426736311565173688378787490132692482848905888718064489958539650302120501351804430706440499714276163075533262884241186231944928182237973744852324466266196051723258688195111411901888598438530524376650088495752643369538029314748524357623057558197914857941511098125846209821599397084210276077267014366080645505123193473907920303868693997428757592922309009726672733902597886747385962907776944823959420376651237477522295197392518719955227950490248144595348628607018794703200189236576473489327344349763092833718001348905540406972958876788587084341651420298346912025537664431359365463074108777260408881848381451584738949806346418659180793891501171585165924238761858571073409145864876091816733822818984480800410000939001875998023370776998967574441814598193811438082271144569526017868082570191050879043005884632780487840446959856175631789515134543066172100318861606241033367159016594097797319914768495378688758486670671360959792711444782189708406718573167056686942677164664485241402478495450053257430295014601061348012660981440460122861522136468398044803222551653503283533630845956797773730898764978188603893383155430793470442378464878299520574172896318435788201106854896280182995783674135350038124404763958170476228971244974878846087824418034276762294861996083193779522187146115088931243497806540458655180672631203126186447522457943538338334422369392331208610225078561862519295272018556840272143635607439748341268718805534857489121584847418285184828397084270166157391629675270760526629132396699150027949268728616452262077538956290874515326131235572767682636498586943124249563135430979897398115300222369044221307126091979168482271531459211281180965451204967867515936342932017519702185933700093778347045321509183337922915728287385814897458641720968430660596780258751463531303219300651819899908071490214577205002059866542159857049340273951576164147080305604090967670644615862366062813056011161604326783031885672216084821007754324690540040843817019926671389185275109123299552751370236095023282896403619266962448972926791223168145590228979192304360486150477252234834921377039843312360691891740511796290317557374724870086227922738730619732413498275329865288367773338581408155937112080600708659365112461571026199703934757476533496625308610593378154571690409521201704605137034129119141624433163401317145062297509800221706321106220354052085151383531827785850417752924576862224833684600802967672692799737678496976858024563366221958331650085257580736339891304646671618404383323953763294901301912608896647310994092960631575176547517788770985938114501656625196095684888132799259022217150895189318024960836476538796566735348749501481661357933654205938510031820372505969274134754109546233244867155537333212254782185943607186167583984611140053517722508488398644652284043396098322706835855133665780740921634235793900537032920193805864840760497889599886769702581862633377169586299972936921705343016242434417186772316916547936701012973559170580239922368449328032781417997734397562841209873853305673888787835088754487736985412247836317057620559066310566893101881722070850012287847313053657700319306315762361099595861164361326379568236212068059136692099813011258304637705061493335024281772896613434098117999223246080952765289347884373086514239854025924854614136184955747677137050952737674410847867426659661931115319323015032386518076486405195605953566670299511759566705397384494633935673284177783652984466719345259053162315335547612971000502287228322428481774243829040837489463707528768658365288217265558324567759307892041579421910861503711551637195692193400886975806067545816828815667002124111797637479477315297241848938130537901505848126939242773933933703439729144638471382132026592838279756652331765487839528409508143750174777092441075353248614261375591858007771994143970219580803407857828239415604937422482020009114650196233139482140606744008266804702087905506786788715719843484626970242086713492244391587041720462856992494970056741895865025483967709795398172228619858831321304874369751870525030212281421739718665969371627076068532406681566145834461787885125982950590670817637029812674688710598648165484221803772108553447662256774110859222572432172206427933883876277889277668784121923200727157575314026248038818491555473254529446821633903993526792403746074082867729787044805957476300592437458054886380481910391965953199730741593843915489609363291853561125185752504405519286588163012220121963848220126618240826435368208886195904020175258320571648262827931433458874904557829396099529304657040574423189718794260508501365529636797424635212211714511499514805141696975806115537288476272739264624987943708691729684122001064361764738498986705894293761852539484160384144842734941572352549134875278044249239054585159600270179288106398429813693284194069255017084625082125031583960320159373642071157307588473279172486877953656316309042703023396390819695257354496916897166461060793612553222267125212988863436610557627633041033932493605815788086553945869005402452389183581260448869415572483844407145273168038026560747287552816804948161374258497861700917437800979545801167462721792628655837627659761314044110969541096609184826372179795061152735768517361203939541105663797829228211472391818598670472774777799769122178481784550901509990887008908420442771964175340598004451898444361402953621606048266263115145003192727690687574329399962154362627739807401903088765626742896292732344532159792542660689490418494661901226544008752083696739128669373872460939100998018990808682419472739407561600041205345639011144821476879309513420082926243291666320518156151719816279504516316241017112955027486044795054700550688931242117455876530103161170736035499706961933015747445066759857135516536944432815223927494982392767223873312021542054186918902098847204119794055716672432583346451830982807121339111222453624582351162852525148934000117957955461778100836847886233711338348381587937257488596213539704392833724263936659875072231515780795825106579458397620145128587534170142673794729469173682307761664604396432245442290384593735669616367233655351548614887870596247379821955166051849013163617424797718635348462804220106380169931467037433725732764061890970594876782239154770010613311149328622491112444440695774272570032216873267980735154210313781412068518103315934084313148437166999471485920154493506687273567441296827348354979751647759477647116367660754189244956319612074456789247607250524307058090196330704816000876229515791291309051532223623217231030455201074458546034098096654523404085740281415825234089653545851891209495263717336725026890546385755815869672204634255775935974210526439524233336197012576162305519647569277014754361467377106720447635221442739166091317315297052181306037730594601305805647051026514745137283836737307202127171561205709244142162714279347831801605373097753828927181165607219397045571093255132011403467600498088244216435443425091737484469937896253389637191109782593936892280050990618870614974536710605400227747914723162355679050436661454967628220748794221594301836917333295569287513054505343767551570794881384940377148016378743772287508389946416718427648451966386539867212323838998118771827610345128890098801839271501886216819596296450124841225683241638108170435495222281209097326395595337508550058232873960868000799178854169184876415160374789663352275672483953819464787260222657592145831165930353881523042112268957218462764931409017100184856726038464735202908574192735609625941321180012908328780230265792231770685602979559775292382159518930894252827709193123249113188066369741888695552132610399681798517198023933987304238136817697251005522411538399284895712990050595830852110673786252225609543514352240447923341042341582469265386588345655210804161406501982944841495907277076914119788102244801825637550965819385688860074950155558262848727384414669961107271424276843759588749684664145689349901693807668962108053320384020538223011568270082444530889327129650692002110791352165021344153221464918656901327242361432662349799649257238073790709520907577722202913601151131772847461800600896114440678195978894601915310714405385224605824424420871517163828530492986713549030691945289939472763518091882741961352626266788232350735029338278968802940949866031781417419983123624188150777376279280822615810507709297980668216418086468921370903194389892001434800662796136828656348796929910543031310338240184146321110843048201056833962814440492972683660847832496995402991695447372100599340433873054874211110302205006386384122544846003540490934570823155014318108865126342412482984311813187896666581573396953229006740963068266272573664703540642414350140053291937916076922073785846973005013904077534444402014485001520437924106955823045830168733116278802138298021178235543013915823126759674708849030471824826048298994703610788067734536040992629009641125834475000719867466807065353850386799841178883934590980220216308286870080757617282887876256481324337459787623102093180656696064137854241880531756227990777912368628654447218300266353735054693501780404039731182810374082700295166251224842704372382577007041782879070669397039988212825549443187618217477183934821285892985349592116343566337571134268647693067022485986797068441630999209082825239328348923131068383807384282525425629694580568941283796583427421568159560422985959007843879490522910771706981699430987549432371507008265869325446879586924259751374609348493455110744082698614489058215638132856597110857614627412123728891212661455734500977922772730318676387626798261779975840718749768345090386170119078314009446474710852753187420484432363525780329274812345361362631332843593461060562033470835215604995591060760856659589624277560180530343335134061361939856179049193254650979109512538202019759430400222214035640595856999711676782751351755521714210118618458008992555873211717803066453045460420091994832281567927400523970834415854297153538945665269812073344614202878624774540480409379954595941962971498854827599481130689138385788615224875459790859966018635893589802471355157844148031260035691462914484811125536897086431930310946144938946601082988794277163725165945503154562334784995086495719965961110838727632725087597488715021016093098177661357500752669005810750703378530360497810597410569831570147125813080409726775209867871923648906564623272647641164895118088652144998857543102822666892541372900699873689874273991798583576666932673746501610982564404302769182610200872699476574247933749020359198932620843082157214569353971509655842264422994719653733672854754823838708595184146758381898874619509133869180934307870330864524775138529491246810873047403921643506661724589879724195880757465267642862362864020377772289606934711663875332412916639009343666773589260034251851563580165588379199205809097291503865867394997232718874397345387277991827004458752805038480633356943936470553193795945454120722031191396650074938285692764592235290740452740270585195751878052997673115137711504786494525482409118771154952470244096854837655855102698826335769275389691430354211150764540918774576286298929202648340505270864126049223198220508936069751628837134280850644133213874342119720967032270583385086252740455395166986172723380842191511894726165802767070181441425372094298775593608178697270843039472048376290404065694010319966433252289000630192422948239301706719484637037501885638616834145421199161607426254624628791798690018633037127411115582804433020670668824838786950995911517667904081639394977945540035046122744115705485193704412151714019717112067500438435902843313168190659455612344431979385001533324658417741806568035166819967851030506212758905711394890062914615091829314319152560362277750748633371021109852143945143080360427501014685614321775780336607278146868823057734766296766154331733519132356724414796971931065224757034228862833831827748290361598408423457034775619974754210679420125790545065884684828435962401087427737209391398837694107321769038286838890132038694287586325295639264356712224757210796874086828516985228911551580058120189791586854392910915972482596208446737730079878798483030903673919127091539333989838908250669747547077148471769511175269450401695399505626743849377779068883980692006901878804465601151224240658091867807506570862846552182779941230601870818479617183289391818322668119831628120337353177903865178314018295604521700518702669789035919357726255145157370813393109490310895289746616226291821961139928353907722146534225701908149078179554387738127106341357456802510977447545609858812917443250787719308466034204017306219701096971990775491256571451956687624579569502838172465252913970224149226642577400240201894322379992363013726280253639707080010070581150276110710667461079765738258007464865062169976017492175432914940725563770129960852442267587086624361200439708059098618900134327727376815389801371991198834887551525087402659672105960098201048373865023280987861584493622666981050447816634546481940148103044160511854741095333223286030648657816882588945251986547778610055413618316252201996831952076769158859929388350799114601621698719795614070012188593625812286930852307518935970185606629936864667586282011544830407094049756482672988083746725166623161414127616331897131139659849875054685219463526052745678438740626771015078788917182556916161553417583718942461101352558180193641530486279814783758021444002715195876167587957824897113466531048115451272358406715366655677993544052807694861686776934063028171470414633085189753524353161323774250443218120272181619664360034262732739116223264656900464930131439977154542083696361876125148133784071667081762303037418454843067904299696989214827408789685803357572294481676786571494168157128417273704266667196163302718855801212678976429192377905663419331710595546585846687144478304453220460712806280945074420212696587976061098020741757633231036999249906073437801163430146624185494611076205433995458029148214498503462221080792484070239427608439666053866868984442198598597254321131631712361312486453540654941604199998738617156617682086161284846116689677026673489192231429244691567784335195970207585887527587432684469634886744746482277384109805884031501132373208819671244726351021536571808480625492737027623352679046050319249510396396873824230210863660891388724893498094679799389763686504129630402331706823089493980403907863892246232254845736557672526101306569640113019565253459914307180948243731324000362397031269504381874209056930528439907871350775532317960252460670058493001765863177038191722421658260665589077524922680997364049189170297267663708594396211238352788742206108177376163724448668117356918261099148479971961578959811084644738150748264948182494867839155784499142899735164704244260859778037741312938122417343601775495479038838809639157238852735854746612775706053136088597344778071252701795636338569208574826375855777191792005062262627244517770027831746362020076981776701652372399727025614244532367274079938496024483233858145229002798790405409764623820386601913175246118940080370398512007709267690214963998456074678289683236705749535976638302858074554942053025399522828597447972007347329819855218951730151248276074908374845733890909866131286846268105678019540148769403881280697268516969609560615605346419518770061973711660919998536329370896480998515944176531300326882008133883646930426555205545907552221902513683880070464139299749944256903378006536105893542974752291349703484547807219667427959789607601538182758568514870749288237223670594974361123275832079389668687498490439836510930102112000984771949762512175650471072627078372023720937687038411360827554959701642990030398751180593525289162076719704576184043553072045797749475130143529441120931880799982557747901016809597621703675034454121523012004430787445330509808788208932319445496548226220936451852577522919867256311543358924711410917746105189076688458148927146420011648994951753582675131624668842400737762035056978856445542637460447050687652843882601111141918846850128326608893893548669478597714383905621853668538878501476510768230521349422248041598760570630479022606577548521433251297710855890790601928326821138182559953727138624095033226533280166073658401499406100936632733698067067858829674283133751871644895036048564955411101108788034548002263568698272317207274835389024945370241697505494195569108051386637760370837379711153333247481738522665130676311525487081692832798242069923509720431487183635252909626566380160087116707217277858790071453603599188777579332313783725596217058927047245965014908000127175070771845599368306426205820563095353819608955647869477374894840186556642458387128269666873759423228719214755577429363521805817230499231141721192999818652989090943548883901683028883237027872257249586510121178813721610836969004140847219672464155502009257560242424000984441942920068422804399873722321174074529266110917577654556719043933832182239192121985881606728378497462625902226273156830497927314826839133513006736990621323345033385660047530411925189835001143090234548481551928431965905559118504677044670454776578185978638165884004919241794292248998585093757567746148923051246827480930303199147362165112299669700748100717792416442590017897564864542387530504467862563786798457329320260092432933161162062546401158104369589000176924238799294326136953899206916797016881227235209918121659090495074507087773132129363338788161527863054697272543465983826472150149558205146054519618688000355017131291209560766116746491040121041162539347710924391477020174228256621782319152782983804237948665937803727184309413399611309021071268794819172118628865614808863672312740730821063578959326506647093076680767993738907765476025699349811913162547951518152673679394436867197635145023749223085569111260345019966186688189824869893156235792791743927785479189180754408507971245357850038767633244952549288446818705309404792582032445892497721234073866295134595964760841156577155010506875803651562572956849142974873816929571422406449052663208016104711643306676456190397249367376766556726431399649756640758177617806949776030396458776664532677619403930776191935887345913267621618865035579521218493727184497561500872255509605348182583049041571688071439463560035290719895936176842261881522394845277161295947999947777398769977854334178305695102267949879661147912981766299582748964857588303297102501445717128031031603762579165881390442592432751456913329760380154596369511517150053124509697169304602848238048473353002893816171179086097346175815931462632858269917532465451312707023710106238677771338329251435457745138702460594276078373525975060993959356495318121958992225867769382192538855565561494267389219091028979058305172014330057158782297506792749889916242491795200535511632364559096836647599066521065218714364008878562444351130278771990692555420926508321255829260335847411649844070114669022988018191749654373333323787778074697477112266861199421267649837949717299867771018176976689229875097583693659441179071943337298423614590618605351692988683743663306573106700500843405300986061825545912326775841537551493190022905628822150013528943971786917789963591543868561392200913324421023157977938694315883455304072080157459579571890576340791499585188148320395646226115513501056052542333461845319761794089574748424869208837061312236955421789057358733530824189166847289071221959725391675040980531934298775286463901992826548812820783093993594764322382593093307559769613584821943947879711043980610352391282437155544059317540627776785491692914982454475773916739627438991578750486369832905110764345543921388574598921555347688835668339489945488919877043506055062202738083908225190422888181775735766530781643946795478698673732936041987332302375551740081090287718742536884926287450430915602965877804523958987350221528101649136859418408185847387085165149782310056888688571998589171207186020271683730731220561704025405191879616983735365782662933938073887011993340234365030191098895733921823439242874908874359200949388568783435164366870093300598612156788886878992242279002069046374526012017768930377134017382490447748076320748540708225611136080018613999057324414586941749825338634453225059824930949500934821508711480007086072078409941475638162373818147326417001004579762662041837841638097412439559121588158795347659022560081370150140305154553263934552681299470382054615800143511854564566769050173679491263429865129122751278323661186821756547929804984309161401031007515070088433050857150215114303142349999517894548972819422698951568574654031451059695565469941149625256679188479629967687498331392919823647050166986283783872322100650544329480977114406407637874997327387356408660184796452120005217342797080884190264778137794602816685883274777304705457186673769619764260980492751901290689851505315298066242510829747689562415888386616895658586405725973649793905709204757573289455440986557334285921758836804264067305889968812641421472073104324324585560514955679084291967066348055933159935479302421606049011100418676235475404051847583860706280112224329280066897972245807416500835027754614751590342846499796877423941221222354122518434743552740276064130701839285848132654909576168499575961910641078979134258961846554692172038154181978955132943806656784112215294213706984923474436136687832993356675852627220009127764256657496166364062611103171234943172470866539359924755326003721675889797658950267026963663012942704712896631894140569855369041727409591183206710182966687903933122858578893077948088366278551563628576514361298072277821598842821764365280007026083457283792128930998128491803958391323453457690073251476616124300534109555363838652741285185898188428925566773868391513867619516131726041469437351644122582599819542559950615883371179980233463413495528805171046971045486667569564154276113717151238151400120083174436343217822177516692116542915301630717360740622862245845643882144345683648480409630867171410935954577289382790623775397572850207769352618015026888703821373409710037331942070403151556785393638417985161900317172522320960259585159321322349235788147981889788516258042798901299508154293995130212195343448491909812165406037743226615827730444385771798173944757026316300473634839046844356559431664579600331929021714006099569733138143512783719663503038850636960782799046738338085754701016253600807208810262051830226121719994264552149192155276994905427893257961375669613688345479083391207028335682570560244736498561057574166756909866189356437408702816052523771987351214303025574067639887487442842537966035202457627089945286958709694868544392740874819373086063536066884771341414018161014522166665150566677427350556199549969604982143667040685263191928391393768927276383061962674646997504687817937526299761480148841483638966380688113869805660656477943020542318404002445186433272819869129620488456540501771870349378894075484024758721416460466420256709860020858411291482288333876679088418974845304849914415417653169817362909886804237605967690887172789409701263728261458670923366599107012613693704736478201359798239809363280201072746188510659208879269740221725958298904817639109126049556840547676725415678111463516071576891709100946838908677618310788942199130430645800497135861053932782409850549745068362897224287496248368715624051489711106633051504654121620317191022723268260020604191518509915985610829499567324185885359868941323636872676993620641985055779371567042012720953498628048552472356408435252874746424681565063147093653900244006398823609904093978997370831470339288957379836384986630333860889204387779471973877021454198340824735099678210154348830361122754416603558546125549030065287682069503154366158117053704539680305784276997963853345822318784170585641598371267654526573244286216778391907372300262509922906960733512637388497976925887849535853821740437575140309670542904855469845198241050012496720035512741832032945185536050349352769190655177191478358777443973646829510504490230635324093681794068903037862846347467343021707129547604029404553080074243125171834676136525795966516222529437200258957042333438950228365108671531269153205615196077345558797903463218376326142015643075343626088399003516805760018144864607501494663245010381067553078996086406306775202234093731015661415629023693975061031657054582347995134371959012513826255216714425444390617007198321573972642560979563315608558704021378506715139012877987822936401913019568567947804848313899010576776695566006793850286867921721325200275993746557767305445493146964095561777586170981285302846448270803252062079250648626342318546198188969402677658096111174160434798461539133797422515635051079256740451518020276090595524808146584068432805877549003807871184706981928746218289530413798557069886842837197734218002549664609455687684396519334388018806177799143978805455707321916217900790298748677965639408371654660942352316216258987372594530107634297703636057666998129699499818845286641655888700599696518601747026547540431411997260573455587233890472773088738095315773137961938222503941755043600962342141311692043600604799394523761194237879063251688090030438714709182013236764454440418716142763048183314091339419091203993318808909258579847998937891750920498350577459291739912726377807359870768573373967598515148160212811454357550774505896833768574217475533046470970846260709804645581368361924528431901556575208533570809973808591634834469002893046142209330753885399699151161792656198149046559905006815038950142083353173047398387569275235420716050551973229554955254422963288100620667185421408524068761279712221473019406460278214464044989186963543718280542942416260022696797615356968304037752721604247221710890188308457789368475243900343324286178436757406056907263407910565747011464147411312903215909772518725172368917336761391056443397946075684824094385841112101316984552948361605460789189422147851917922386195820607247428421190583898351058655745551022990659693763185301006164128134279095959098057115817716076619518055279249379935876562864619423716410169630407677948520761252155264159473480645275860908340190794813814822767251569721971008529348298722043477276708731295934786781137395954036307975027656042494797021212486378370533159370885083859192679042378934499384444161982973337074641853386826335349011191488953161089511230223482189271013807069921173748694457321324593851148354039287662869545147976118503305802698355135914764147784626730429468483012152858309525344831226368897070298905473052485067113723238645213122033906880933584414639968675993520778297208702416201184181755579026041799692608646977321245862297637900210929836003835907581430323426114914081352119430833229709846687008866448493800553675210465481008071020422785428316334926802449647246367938156103998140123481666380584390464653142156017519852747243360405923280369681752807749060609074059412598558565272716989413161242756223328064560980482901423504398988699799072978371339385906250395619319096674569691059714002136181341539693295637971135056457116158145982464691876125807299933288849752021066193076794776153866757166342340894761055601180694308769278093018336835758366402415548408179418809634996044529189568607795510288434632717648459841970741585465525264564206961451580520026571068958955667781497832880070857304289544258514827794384066129336012850706353448495071184715807476969747762528403812855670599731868411327064089527446813425507644611954563684230911927331335128090001293614920558328546058786589715725228269299245580282641937493922190748118183912274210660220208139216416103827555377436407533937170081692064859083765587451182842562360439848945822710729524137151137698908310349301964129759393684950899459572567595761296761864290747466174684160236661406729022550538217777238226789095748376238998542389864076901933383206276421290902415635789084733511286331752655297915036601297103836533230671528737237715296350471256354182684897408292889731141794184954078657230181855729777704789398255771243281128830255430789695498754435036202976356406810372725118264508753428150341984554826503025711102088650994022877398071447741222002697569854443899250432002113535667665369749897835697639590824923900661019202923137068561674282430819399328650750108675822965843343878050725498762519248354447694469559496791834557961751759774645950452399632321851069813021805342639403157307255647809048111527874779189468474796843745018103205528028390982764586667177239200943138274115205868866046880392991165088864561712198274555196285630970494104669407473186568473019856362794998876822919102064109489678902484298126224528523812015916802682941117223523345187507775077505337045582286314317247554682310074459620197260630505942588237614102419183869344114906394078467727261101097534182880166654223614229997780575360241438563284496972758691922646984548898477669677891856363691341138766385630817925812662277952893855143642148940700360164499474988317132211960621571971768980045821249396104188890378161691150319737720965858776908373985068391039154210923872533781948130733470807859879075360694551643655599432784199830600009726050919988122165136805997164809820283807510850849924152286558926310982199749980300130818076926524680568086280651566789827133652680952630255260086370299821029486348169965166648136175049263565826253239673037160483553632442984879686591835703245406495640788116909966722633176405274309439997716106615785048320905922960813406877816187667974658019398844479025209871843683857294751191962590333472005965938686277394787283786461288558729606857321114671263394641706224014245743853296998828089008831950874458961657316021048734552853708373329197198400561829459919303422895215529296165321954614659386060216322392859590539089735907086379932130771447902472841283749881282192336327705871207470732998463696167468120498127058899295799758938826067523768526453021609052374166004097904234983251428318305653421172212112793963849438414502749928841770208585638024887927729919635289121235414078867148289858781757029369320048105793277871694558273863950022037321663371273761531476999114346717270647312643136927300563634909245306179184483343284102175244555634710046034877953344414817658202686545727670740761164314604434400426130196215817833888409305463010558155636272363817118403231720420422327002822750573462378369959438450783055109796177498447771258290385737647216101435840887232361334952038123390343557524013663410455712344014696277480009373001406114217559515489109211747047115409545235084599365005078484300265894556355565741571030498193243347653640368875698209864498870214998952327521811266014316896528800010778789516599093534474228210820138963143414816948378303650758387146871445335624844454195924060778637581896396749402660783825052398266232880594718090543546381516135121167339604067669370396188568125046913215794371846359193491021197701950854243957166093653596088409064949078369994849987248283857196562873011369349176832723120441333551204256012972853511077572840362805372451550159810050380661010602419867305522867529748283298808261415558047715105423123585679263684791503384375873953622402514713619862774800772067347736972615662556258655768016331375965713757782701077597091263699553756412638031824245830473389461854639052314276685215543720997329009868479146687190777850653160749973717467008330354781417093955708869520547752133547973952114366142260971382104738375733104645281436392072178295068108978886919166468148750814112665997089499248156816119265692504065331521751245316888170258284270024368770169270235106007679122147137141494368963302035575124396167898763853957831676363315339334589006232404287782901052227517779061296757932886995495828613684589108935461198814321872638773508034278234651699383861859943371514099723688568639227079131899328649544705001676127066228724468105068767829752821097552336898220690301344104070345699224958743073942777374496778567011830087088488131840452235984879955985215931058591246422386834639778863276687906620710263058701764636348882387348667730260846577816923392356586648715719487955462627604914355538850498660323468713542571534549360108629789974725296806518756460074677063032341728430219540170494468214548271690756651783375757633479981029018820485783530514981820509573729958717807637389129401408697389112436882912003775671783428599720900683829300431527205726098777331136905593997433449622802673065755289227127378048962230331569623265073657534468970015415114885438742226432554397987205190675424773200883496961846863309911769021603267106525180247528972876554046549123218533491632731780558182311601777434987643831708999182797671258133729481898907302673659313536468161831855129084671149286438996253445807170732707574379220034319014193565586778967605456575984981774697450144526462610157220464126221649309518804432079843260574463622608559456870123136202883327282484423930478668063642668885723502558328188782973542472212438273718715314695978179382704004263926553154255526842499129843972270004377857954437285542255015450245958639159598601606563418530140882443780591130432614257798813327743762636918827047650594181243954090192012954809797524161968756324240238152556310952572528904644092954754934202137910448517398192761682355445513287499101833312634576827045788748724100207760216168501087345901376588798545121620256061894150778654606585539766224863917972796811949665051223785577450370084382160963908523876340448897341175969964417499776157854190543038666885536827147043131508947948403876376262795750011373382768636008255010833531384264685881007080530102352562364501908851776201524495523720223084106813040107679931867152898582904840622182053822680655633961739176739683388418257416486529836414999399817305609417096766564489324398485605330362035288685508717590711816519049529375404212097504342220645706473662422377581227496630448229441265930633920446369373655228060411516061041143669904924861373766379980361551432171410817208108244415138343664514910775420380492183254029993680148393457625885264260449176780086357435979229982005556965209189045165971218298322912344267224146808011338888246221674559146910920506989802590134863856684354347268209513327207828944065913944366290406995810233321060009716604257681486599322709354082564284281774503213597741132863399198917104338307960871316369446399006428168759972377385062827499604188297940132500119430663184528853929377609818198517465796840397350777052189891704065544620228654638609450188231595887550322793337394470832925937851058841503270519188574953692273938705464306006502148424340678754307685092267219617335756931359195528781119221986839399030845157252638394503147764077615749133496566044943708470509315721935960912038570315742033918645891735838645740385550277467947756283614113805604638187197258490630730761099793475123501947818077844297704863637823365823903306376427616950187217623152782876975325198391881075965617023721194411911224613504414641721217303817323543238275008179334138080133723264556959312280270485678621533222827639698293043396553541987967908386203785734933436606707719740154126950916104197410000137533540401536339902372047030777393729911208428343402144658544812425770473167248170013953929226064019636873918543069641659616846677530530811357516514226542647140194244917077651466613646791220827345597485680743234434848978718138974912112594653961181784344734500555113104407335703913559406350978230247114684200310153464843598808361120307232673630585220321913543189569549177178668744759042409116376951387758690096954209771254065258500001407222911720379970946653394134790222967690899658271457123498370536768823542723389739739845405594512932502365084483355831774296891086417814511149739107185829223777927392546556240838396806943881615615945594967048706520289425005830901779928201123069540699230802580783701482635400779412228158278249365438929062408315242097787975414054394189250911753990799772998718041944161508542359138897170089446639125089737615444771148946804513844706733654645077576194264303903279488500718006620593351005384244193274192177227767253139707401498450516992069511821554405097303100913616308595004074603622784808021736519245569773003409660594377705057087278469561162145522491114795246302988836912495143204266108738492716806036835028645596990770608658827012810619463965581393900080940756605270711227239758908567405195095193778581971045523354481454878072503033353330350187428588046943256009605874661530119084007035223503939436531725115658266677019144628817846653407116431290204444096214583160164849238075038496418526460313173548180654662015419708444335595808278737607606023461443284923336518368513744153344506187665585850453759024861061361786406019165035428777561935897022620871099664283170361415275011114686679672940055287145743341339060959753223463984409112506495010086871593777988193236939512573315614603321868313870267194918904965703399722239380794315202127953661494981369566931254327782378526833335719903613127728196071019722697080340893621132370328341761306585702658325703094092510013314972445163101038370283286657571085962956129698282025444423415671172778580466528091773253961449442559639319981966283920198222876006061213884558569503389535169962493225661533552363596230702185842378727415579444979069670687557504581658127071912486252360714434960023121196840806345000196924893798413128772862199951314459669425873861366053659584621650376865638482627569334748969926200520474899599227924802111603603448579154395276812253887492351605762779987471455596505884715052616542653873191000075511697142124171369780254164409312428367699550247248376838383038414514621187318539575157317038892942073935404809323858221218803544239576548325673704002031411229796618299729952851179915345342571481798953459074838235547147709224900246512633125077998287456482860847394107803302218104035274666464953712002974162786607225544247447470465474001658792173181628577234787398648608040011103991403822299989091158152259961891410797138048146791731735399387511422128712932764084077303071442470862279129245573209539705171226986897945221759385473710002587988839933282638669420433728226685389121422360430929786689595739814943262955073056787750375512471966134623974564002808277919383937323104382865195299074246941959601917713424507421937069176034636700193530706898412567846544629517123008713398325105654588764830506137344958302901786406505120637208086612422639031028578005983432136260233428288870287253606889116758738426000851007135368968091419258236888113109730096163599154656903593382374411561873688365334338789631356219773481213441930183425150033276672062596979272446408073242859969998753976804410522009207930109114163629730293935639879944720265012266214913634715350834871784871971512381361849713575633743927290359225357466565844800977926644302284126071271716315049986809868460422661437866253337411148929947037252607834393442063170805137242730151202463156723196104963184761985011721212032839659502461933754805782831441797214794974816805688371947206695508304152562835678895399132364780724149399686209973653664196428286109645870947684206379845600382264551077033581791099705618491783468423565363342608594974145641501993141899511647838497155923045515019452527921518265113661102189757161993139581129499486999121943728102470847238973963252900072454043719759416236248935049622751668754611085305663964478654577776830269863537476763605607546543944004809702581888038396241002673955372160375765549421567920951689585975808559349592276189261642287701369538126565287500213974911419539839242606908282623229192046937377343878491254037467293618577901022629908558881598474204018547714499206031621488979374549168993976723480645055262815527138184049056066855835805180622144532974695714336141248468476013936622628743752185850268251557154175424758058821230281663587167437149118850327347831632009349385243383213968820168898898429308562863298629619793660356078401403350454146569794608631373172937051000029629978209823935312542910686974392914395556396554129004062954279008814271573847950219165820550872437854090733126198816348067339955974945547023237653375261613084609801135534264862592507069693583210033581619394047240234171958266120106177628854060036499337054128714784378645984129466315361716644637051119076330286213244564184112894679366553525492323244349743935067394342440453851383835297155909537855304155141819518809230474768627567787240376124316951210429865003760741913267803910938040591477744245655947263581625536711555760171740662791290008597861145384884088560822871591128535548956314464979657924907263655830091115742651598617136438404901205776393915590118591961917819039413479151080884794301957107529786303967704126543123540010668213250276246092296290360669902111478092579393542769415398893588815188505253797122660811113410209954974253145124094441293511735153790318200122643612807118853596727505910467502578387466957112644943033681128177516934627304229505080859789144533332520481720724567529866129398634182227991580138775904167813611098944334513004913869288293013410988137327716509727222748139349243479074389458855317564402525403099694609156885357031760868252915478252273247560644563966547362514368523846324256612622656647402023272348584177564277513455663912924693633136789467184757611483131808527821887135231645684930224727784958891555039477355636426466899780871036952666214112463539184101005708258678034853631336065371541003150819645843425574201426097007093201942586882092727535660343449233617258103092833235614374873068725129938564307751713878069140919384308831614506532093932940057695806696039173254617142131783887570226258442783366632386548063709530023362639478517377144597762618572301058092310767659692499993061684789468011841163663680347574292975470461956051753245311971892677962418060772166061290718624480936832316520628617131145489767641706630952889349916940320733110491629521350413146097050579644674718895181365215283200604395095493867556706808450232263642473691414374639607127689716529083414433432935971996299002789393257474846789297408264658233547201409814701606585688852858664960252064543611360821070592827203186884902127137406765965197432588157831107219379701931690932151113736861852524839675979890598587474327647842812712316208133002050395862276244420054719722661044058112383237061793073156336581410437122160645096770650509643590224596590397088280823889324764808799041566136498648456299504878228712100120941978012022417352604516901418458030098460086539388177250033855627028846198852066637298641717577194030946588770246851839869797597994578878885772159613066354564164134909422837824852572870065562432507096587411187040296125618326184894614502463258343712696807096828550643287343198875148604500330526410831812791890206265428052207163434171090818584858249932586720412440195065504329542218094812450425179949954095453970520973200961524247985519768291242729656337848974083092867939048119258636022936070754007556321223103129292369204184964400888653251764978783731549867202130083535289389383081766968739606432179628031000170174081279159108173470545621265603399493884491866148104285012179654546742585143632562213100395411779981897689166723929488425721223948304771477389597936502348702130229921696399297978958056062852978034821768210559064811298245837099607309112148094115158027525421570715858926875071259530586267363972787672336918385670222793911963940270926211358480100714321154599652785406995322206857620576720821805923998367584018080327348180512656791089055096900963771636037462241216421968657176344597496022288320861675176226837192872021930145454509522657337143848535417965205302828861983997909273227577449634185092482696367904595690843986345241650533548664797768847414657137050671675973530453089939629311789505743842007010554167488530460229563050844003921383618486743802619257271629262772799963045783511656414383898864515132084563649348608807826070157323525919305571729349625746563522128857543282194795681462676668455044785613519040928894358692899161638776927645826941934798882535621253952473015141841067052316835271768683500413693553846816114779990120248094088176830617947730494671933452886871907908060060591344786452358965828899567025907965660337575556433956455175644384532338816083248962955591707738736766381318506479985234515647276901294749047363699619129256436887739936585942493500056410210204254613084517711496052033128935013738350514980050499453866870432732828961306018318287407113567959513061468140755287718348456108704667309834227905179350671925017859531633745974519689554473823668610442852740288515067423580472384812447546367864393748727034087627576644553258485618186315856753561447450497026591959230976485143234874388416202036523582443902072736114514453944509255828514169374299354335538914325645718465099807098402373588475171847362438591135693666402295230358506634559506729016937856040979905038012759476002539451811759425228484050495987885889064823205865544227430521160234287057239684682158582499435817148419088787777875879975077402632690882985316218164855537496532934924344387054084563233870002630839662123615591296397458335070673162015238285302282946155612956586650862765570706430781534247440529572851716536454000377270435858294565005177003343686860557384136184379135844724125223403153061534778384200121121248128802681004894765532861561989935079914776540382494390085663332655366137264734987486672043783709353402003702710104159896762507578938902815304099869339464348967084388128139010999657911156212374652313163331828662917506939861479259183989362551503162160593137605763018771885494103417507792359198484440454337229088125424555297867043179902868914300391093806943877384166341273837462896385847785847965696245240468707662904688900681973529819143973315139655615610604087812762383900091103125470018769027885290942919324548944360627723019965667029900022435367491424581020424400489451357522643305728648934644643312765633728477335730825638229765843747390853822682317366934321237657814228426898400409688395747198681624455447598508948122934280988015243269042909183907912866961830244540510557386273960821721447550988123151774521830758978947673647813702781752849639585060208345624181007284142177751672708105424640860214876207002690426713061035385468029073278801554534685152624380760978697939044816744968570291343163245760946764819801919682928883207486205396895718816274400266493596810650041276571857465129965210881136111859258794037965994007891311243522954024953877012711137369390805869092461623296635226992773590960950412025666393304277441840476199090764014229170635858903881794267019132624095958099012171051028043411715520391743038644589234711545852618151962776662459530336491734614810982868048067191997463502437608714278479103547772921019734449287521357839095611094854846729698390209354020989244355785693064216476602651416370309869850702109949086993369106941675187028322911382259866884798913574382009126106946519829739507970671418567306146335828538706947933520046269871006753497415871170472583176631803927564399115993760142394700615263778394627180855027399132920101354328632850559190843476842558006100556409100259959179860930777795214403776498448709438914329918417539532685363588448157448473889083793309329020285922127513892046931098772979417244431606236914856165080520744845811089699424369027129531213253936647487947948202400247301641022986745334579400189777767241100355374624271308930027909027761999355525327739249933324286182151977054234744103422345456246639696022896234487522346443411734365998673975880441575946745411181751792432520509994494120803665150551628397854910754500596700477633055540946722956663491377854305506887694704946445231612909063210294155293978604427850709035896872038755400448593315298871007923445212408647844237912006562653938500499586176992293584177127733907038228180425984624392319530056867408023054555272941771193202581299728615038660923104174007574189403309423865302212208136723260247850143093686581398758819516492130429645484280085945293409078424711688960275219578366094705816918094208572793963142272324273720273975913175460696967270901505290615255891604628098390342142780319702102536173546083907477608588157652921796514597585605307223281528968798594167093733375268624282624867531282558898837918814152268162257767537133880271757781545365298967248676671021394958595721292868744515867872658428370201997608289053703275181181295469008165669214399778117880996050042194112610569247402063486394093601706019094153246295133790383815789831114492559451010078224342706305667664544751460853775252417778157978379461916975974875671146577119646813220311982508437432630171558960795783238349154805776594505129780684978277843263604470952024944355491713711890022558913037618615212082947873768457036475459640439411142371489596590927769722207162182190562165708414109789300277003401477988514703487984458986367638291308797080775993301742847077389107635836184940116449841349153524027549258237848817000813372210413713014719746165306679635973244150304570922787463083959862807599942208167268494355498839275284185553046168448016457510695276397031959060939192496515473503591202384777757038070171817283337614535540341827813053196142454348960807242653134841600205369564758778916354549181598644838933923182254846605281976932828630103382841087353534554697422222976900885540582318920662226836773002002627542610178819755558972089100197106524795569494970168502288498691750323259797877297216637275737467559913246154168261606335096722571475600491861239514573342729287537911295419251410399448238134485121980356772679346775623940879503018329255119560864942512575858120118126006642266078641073789937981326233867854218285888410452059617746263050278587624222237811846384151224466789840879051296317952882319832878323488043820169418828866284895579391982487324282124706206674972770992667290800553856172156548711416571202378664122399867167663080830318070839461924912560843633362320183316881628707112454614865158054489422617897458381927314543577876772298679727776233388100497561662400650246670733865366506652815620007500321171295612875308353251686178151283083575764452925438119642858640401363471702054796133508347801396009536844594288681785342581712067883585637120954220737102284535927656704905023483608955417388489595904789056692389597781367519964034480591458204900189393343294741580607008963880216552223179372561692597523283133481047920453607299268962667433731959784418634233154018061566850941745421709812132150126520666293012054709513891199804833941557177174524879311970938860680206250757760728571589606945116430648748363434303015807131681015026297817939865133928103904227152999071921144533166010777416757802189607011487451238172939314263934483926200766315294909567836883478591839572798079392700084190475817370461837776464245091467739540696242205994626153044697709435198703887146359833809357760056221592904413499440300954580867135566273641238093142569124482696130399699060993017180012854671255743086333736371110647863524861677824595134728717236821293362229281941233414827202666723495132326286000325750201969917372828217785954576093068557750069467033696259561555781983043693804870813304536446796652293491039168712537797789272668479572892139957120859146618571472637968035672937154187293485725461271325569573303269209490956050807197048245905042333596498927363936725101200764335973034381074300995625005272841271248000525029477082204726615364099399024264817330958742073198839102188834860145765318375559176643685674908676565032540198556266718296525665306710163930506263228248781538883401065739587289599056283006096451400293863533133773867635960126716381879000151984993029973129175469615835912697777107851954005424226282897435355779382399417374960607617521185165939294669907807742799650605178408629508833577599591324996405557449097965718355600821408773894517850253268038421519223653264288330686858323253985413184550835289024897528076107168711781591364695313564292272779461239351302294228409127984398393591641147533829610953175273450039876806379437528761027115457958045712741883990646144291709628531226123974770654812683483755152313272955304887604437159355807088046534917752811801174071306841455189813950770484355815299361374111647700014199583236360634074423909884756322814620595084748738237993549155848325875972818957904272260157198537606555812225925581040502540386984883001405012247783972778991378785361474824637911939308135649792748859362923454871064689692054751497314105019119193339152838231287024881760190796457087652279297059291620234975258907488286475116193181832184267837387085166070562030994585263045411069299626372945056813127147395675842094769670977215906686022043823642968872395312931428310981605725455270742944781216960748800962861623814773856611366612046462981264151341516876016098641663711282518553079237268105183080325427902175983845090770216097263438808848018192769051899498310476244389454862335894401475974175289070241772636458650476266092315275605690569424103896538551040403883534785307386833283101357876682790343099996380477999233132100330626363085801792991587582760497558079089105451820240998383204040169350073608298839722489769840625608671805706697279885167431641946366539158837522661814621731227268024401529964598311638544498728632966890516506624889946130952999870420169187056769811463991716876884118261266896306636618116047298589902392434756719595131052911732767958204370576350330670660452119948390860945258534649893079158261270484899361821575709688416498898131161432499284636585749345043386248887340186314518024092664349154735320849683165613101593402057944909764512369644327882363523334540282331945024854801192170186966714647884267333495567530193321777791231011927748937083940771947802598781884602883138011386185437995562664901078932059072200113299361958050179686247049898414962756246410061673813107515205639408743792942872327542212846928235010018310121433704216589234253441097025455718075543460122728239600048724220919836262679427838494092274812777168342910113181320481965345249587637348711943598539353239999534400636814111195466302251810702236088172378656001036520998205230677686839704067083470491852963486768015744522263825206666163347759111647136577595193457579381229896287229620615129076699800453197053477559546231565227622329622727719542749146210363090654137672214341602713917845876806529884510799076087049210569367442319932329086858635532943856084682071386303755593090444657980876247568854475868912506181503916880885706230735920948387310438158697115383975617836138497055388899063523557094679115872807426378038573407762184601141497795662812499799047763317306294249719831165259470379462167662972946951864984757187965515190928894983439414269700809902809872561630542469119664566950117634040899294168066965150076990579302726334764752272454010991688906553787642349747436801150746483596616369836644525450002243820099129841800948755006895368432028226811936572307848944136537015192891753569309674060349976258671431531687724879656884838260481223379622903487826850986672471240125263420182076537927826020246034833519342922036188863772641081460417114231057975666136630471036092184055126577964948618556545697649058426338058243604263373794428079204818593371039200182442617413551476436132515159681541444099165621486363409855541111652061077809895839671321006838034906438238821460331377983633038012744791500150815673998211794430760228404752638492724578583588347479357200862127748746873168380248932867819298333169083333274368645612705473846766208710442715394997882692672952301515814475183276143703990835988110015429964783958601636078380954252273968338297210232771125681165566425338950729683088158660801993730959819796935193413623868499586590915654755252646217536853086220599467736224256333744314014524074206573474386993977758325292432496040056107201660994109500411376924315458795489664682423255012046652040400730753215258108177769653791199454608458924652726568057416472301863583276791902176237300746165178722541174399297805688187632260250661406094533685037545643460533075032431437352349488147637140569688691465648760191749052997861753238591036534534932024619751191837068427105742096605595567190617211927836435418033759642522913950538620346473882035787741328193971538013417111584127936716716943611260486051000261516883820075395334962506830991861000953226446347674912855299645853397455383146568147003275541667265048151522562775887116958178781271938903409994846121729866034899117732969383940746996677973773743164653861889278332113209803699768475698695564543660007809961152376679338295227792335325779241830001849232626045428625679858345860471077547148925474590769941603310069529304330054740525654513595374663782600775293971471540443576431673412137328108467751944560397185118130874434365800921588460346148486147248824593064113401421429776915438367952446631226143308172931992118664784962386226940783389934047322002065639331219318218045860819387900235383738718170134098283723078938399191474813129313592958479002383591292417241109264979018480067950139921049357875896659463716255809152796374903997673059872350431278099777890870529666665822780590855991743757160024195699573820701568407491881809979112414697323916258987678336589211169560178063654307704768356596018469422179889470216506518426645453895445620591347851468436596742705579576341811227249082093566048760658764162332461343516421098722189608580828443839975502780940400704741012569109161197123771353174762420959185998734462119774398597943321969929843499110804699557850180733811201620156736597370198282327454105688427198444372854999830839645786148243389461592093484428566006469732190751274799451618158959368376192245910907061983323914251721948422114539172113114287567890175072629983694741438828113395426490365522327238368564545042849213352981841174977864286801315895463829831328731583958943998251592397720219403800175994282594183094090054595245301900872325047480797152940587240257426337506173795580415780265463697690965870430825511719744613901558486957735685732065816672416240602137120126256329361553929004727651256980486601302362754114442110342720043043054656975609214649255662869835719971034180907441002867407276781346709308850544872292719923364353626503524919281593228753313904966665463959468842561322697000960878618254706455541223744520267595809330055644209191219758747770831553334206035430165409396164419286385210751927128593110296151023547196847030379475256877575831948202629671181716186951085086461188690035978526491230327756259952733109016936751798075594378608703127925754129515276803198840716788798639883588850699414035707214053827226998633881577812836892183724734344163688516362540305069763427803986772664945052932645181194666195428482826224429010310250252974743989532225328628113850909854659633226839338414795528718485492667095578037049140247192816566375253647822533300993682089933734004233452636259578057338590848832847580251721906948425946031626132170878868392277699669982742036653649117037520831791939728334913109392966792728005699063511748208851102630260412131682788619217558811284417847098710730933322764933245503485972451629261085430053141642934708368168860687936951147887745765074078775099430639615200257341133624352163286865892381564419193207182659189413985737642806590508036143552116912360121827003524579644358686188282363326290800132730545385062134763143153118718061519839973898774220389581928605368857363177326370381542079980833065489877712185637493996936714140410224075427454546553307477962717510884853803061280058018285299600948561915963362688235236040541716098867560779699503554803247691292294206922969353398634936459380133183712954898860929806239672960249125475674046995409120702202705064202079765897837437388727214718458673425998312188377667358389317029695717041410764996166098530446275614978908138883848396775630177388581684665447648895690318679589367094962089821331613521301803069069425489713015041503730430305889376904924357591879786877605826310592074323529236227667804311144877120437728904895459315361023559831734376991667097826118347031247103532657734174819059922197309796963040228729783613572708433798447202722385050527339796087156876516491648880035824840781780950844010588746656108537407054393258867108287388074932108245294507608484378484741603361317665420565342124344163315613208926137298482461687107845609064420717136069945003102832506237579559723182909595008729979781041895125505001732237582890210363046116937513378849296098997826742594194877785798203518787513056751052019708469067195244914974623266704098936633949557063566621542757557054628000717625508560166321852149123665352918501910441518189537422624797186734850696135509452545151726645472020297020638249573298144815395324359899346111973885774013259057897685829875201632759471901653068125067121673212380469149416981918693867839629647035844109581087211050813553713699078944003960954375827649489504579582354594874268137086961404923701109121862694864960240808615532051208505981389617802867981809064904062045035302100945984592315139658983283243979441683507802693865204822318399855100278162309484070150460969873811380093003018458075926194789397374566992122078456197618830674024418491473296171979544538513109225799502048839525593977966951618491398693116115902845974343420354073956807631609381422841327044499797728370022610937263200993094597564525969630915633809079323235843090330916735588978732880630629857518666291142328853834887600730516088354107293802192236437025734156742652397615258304824748200731845179832743208605514321296509871743334316212917660238563822734810706397459301333863647758168299211517331847840809789457265455152736484266976641027255353666048911824160121623334908886313113418886584962778049703263025840751586680309002080431108457718651861461812189727562620439650225034553366956174776608395423233936217228196729788514937671678689007916706155624028585566653915934197070554555030740319091977227263309840381345537009717398067480061991023357063635696521008306469163530680850197958232916923408277875750175306269432778529652692885359595546998389967086605242754006426918114722856087547644660549129764756523007430201459408929445972775438648287567261592699196865482714499964630535729409469255226328147842988980413526646804557088559146908385916436013569019264590098019908004656204143549104022162223931875275478716331912424402910942665728883312961093320033923041338990064256915605359586473774769995629051750043576631732198499684612743101849640987540892114279965809477098727148634601848763455081732776451029735000101985294355917955073144178964294864376588443561939311249879002695171013346266405671403954235100084775653014803462028109249308954709977328884591993424243538944910416076895978542711589426922851295186335494329051051926741076328438997647981553277009532014257341025009796674669274941604138098082205957117920876207235838248776669419615667804660872924398780137689413509502919542446321749107916710963582188135515387951168035710031236937302302878036447978571671846008063197332568040876894956425831178118005827873805303951234551540745409103007466495822037370942684042362471023571185893179630966188552487532943465079539752608956629066673279609316983845860460932515927988711296289841824274911680318175381391967112534031198495460957508517244563563153990194771702882106070097944559399209896893523915009044019983358798044281479618318274145420142902100336093419869091873808413472566091317742124297336266727637066899887540759372517771083519470142590211841658059528936137766860289279275473745840059628296939992747658115745101576687279942523406511566475365445690580770041633422434964050825979224475637982192802975177248078233107283094811089506150317442686713492102233593527129518868703535137474346899119287463844224249126681242870922514528031092357385737944163637407451861182750044617440025836196779801347403941225650509332916592369515643061105045020182119380100750994724903508007562758637330391232750495997977638749250720349983844964149461511528011279458973261248825191695300465781143913621171439591609481025841470123476635534028289298893602147638840812307368294023106454819884181366113048474929326663885194246763154067222887163540829902426987925783772230270766375640255530079795714386865090284438795357442126961087928903666899783540831222076293395169383791696135020560299435779784912548947666581784383683139257642183791466884593867581059457584348297219150875938936573533206296656903979098427120112945342807048867193493890231205954657490273603362448151118482215367280115018926260147188546949049210060033076716887234968272193054020079182624567305584157524179576548026577713694028361915067032464214633338993258853139428074337254977421620234807736681648532680197093740348031543642504679249443627866048765017034370814926862558036788419082247168484936268688001377083447915923351428744045559162421415648962051763497025484309486174849066279129304931333232174362404497583734267518096168874634097042565754507527083919800971703967088619429674204249721650129261025718136467577385433745910182809579045220555459494758152459576713858868264191560858684370227731988993483744485088472787685508909855286391603821608509821382063233134475317654229209002187084900726370939436637677756533428277298569685265074118038379287550920927230066904021953896905739462329906753855717643638519054173787284238982716101608565979907454399674078469847392480964171339699008286621845802796658993874935264409488255112682783268805580186305301984642554600391272692286274260150306753366398181760199172888648588304310505166186339180171468886989053348485892882893350579361593368677794834720013495880512179868532798168072961374825873462240762144690722720685892969683711022099945913272619308578189332020836602167730791144889543017060168848396842501521591597982604568779008728851669177503510295592581275647105764050495775346654656335678505409378479710499560042095016232298444574580548337802667146180543633515913631653739331849793562838876808898856193416390142069826810829877033408518273233338026998153681511829186160105322499399158146649469301391500675255944031459750828030271711003168517174608564307801915979056415891234489160725132690579148039933792792398058335103684957647977360820984425106428807352090427388169329619801966013801465618047966486932179394399765152805682481843424069258779117605611555677684516782374710259481658841095948342323077808397145670709075301549644764488730137638673836978004508498041007068193354630940475088136292618508497310205199381379208618804186337629769144088234585849767844233921009013974400170371427432307869304789826360098351122342001428320069066697949592199060343545798584446628802248819860160561917842277085642236094059008917830708073777087722682066283278271208103548325878477262982809744358116613493399675209193377438402062194107777525173298786691871475642019488009281514269369048154743749695832331150151220959263932633880074570217074643330034859651121812517171472388515586999261748269044270481399311315174343220517096534586887195433550486551597045419804676009642314223865544124751524445910692922471011777718741986721765352340553086712178440376035436377173763215688288142616720182851435504014733806041203526467236664100073464212231726826917511526119931952315226542496852941634216502340768279295604541629380598996319367117225395024801188741501351301439188691692802205825646853343821510286481317096319541021293106332006911230509914592818364131855954540504984948361671015770682792475929054821256835683937546828788635259516714163425986439500944256294529581848263330297162868013688388099917703972363638810738623044010407005902476933478636502400044067311154790761328602548958459319776765546929443630478386558114426028247533006322923582568862074122966886615006189042681258463881263681600142309052430089280180739113809515784213376512587473939478412663228412157134503848420596163256971073211607447515135761038262422956198047019976219322601709879265197591894802579710215221305600462000397815816237938641275020910270617039919214506799762835443694737074633596421451368550688343433191057927808437784320188284199541034354489826231987209059289508949396898739211621026494076472247763966314215596726388167632022657544075639585725592915045262746257657199581917615637393531790256219408197364241107958014755134565520829026968183791837343757180465937708411189796444354715516843134120314865733401291655316202407196516403603563495638749856382256281293948265925376617777972910342876024844498866493959945105010142993035675129857337417520575555277784301201745322603932953933831251580260689158470054791176952193596198144289477782407285214220805353533845142198995931992400877975616880135800253057544695261077259235473765968637122338329213263346719937812059515901486729967946868614529615786936833735679647126528923222208174985853911642096891440678575264389039014381419774130443172266701112709326325986003467156600043363832286040881187506494272334940048759954201097823703068802672665986812441343734500489590517185764094889070491520665182651736592204057185078867792234036018872926772768780118441061677212368483324557583647417308209344428513338475773699073027871336148803385384212706700730409239529695736106197676249155118032657488271386386054865803288461943152931347663429474898217741737216873081102196350191653338380030599596314837086861854361414985602549512820358474101377152622264893223070672208999034404433987254647287104212732874893705542277032564548528978053014208340444019526570736759092425565305465577614346902142559092533790832786357714344740684644325079191052985993508031661828623302238929093057012518870306972445584615495418118072834159847153833188466287244130510579891773850523682257657308213583538597545595952181770638083038391501502288013204404499261491790621858157016172052750273740998346460993007446283841773253691624362278800128603845223378869066501349576853756534768602021523323010413249132534602775790726815495452073239400317701835932617659757249526497898793437443144003125396715149334362023507654380651647701387616493394226745541886482804120813378944303204532079872569327660697138239247221081161866399513747140826488812021865894994914027905607542082613814051170266580896152052506667707993345776701620544637263237048651635712165456942091966120151990517021274990731757234808714434453633591288600897668458812138663256546877807055100683131596013172812139564960085339043547173829063184589713551541990932952143719387711748552121936689059822130829910459187484211315706126942547225790954125687303935948395288679793261189380586652649015562800244944013280019793087644523864490058550766790722901427522693362219163335765325823831187352521922885910311108798559017596500364943721026060501599799517500266774454831590511881104008580799201734896493919831626924864092501944655533260454084852072560550643846876618970920545616236307418273070138972323867085127570598953794250159342034868313707504532875732772169558236006647435793706393386243752182831981808315080474739588462590822371712136215311715774665012790610691181498219024300508297613023323802421158637906556836962685476180096079790764859105247623329642326868689584241994206694367154401781816394605827138712823051652987361822757230812104137776233340971321070254757246958325409973590320511496551921182254092600371647628745567794077273850012759354736611992498200930889493035791499075440395396430422847820344867275235185330272445492567295416515548887889148731297540361948132907083344295548912279421692398232943820499283087618778844232671884233098044612220984481685111115448736379176281712943599183526591427543371851331770800594437328011411156761358068377979547412571106078270386581766699723851269512205408042600833761899220822217245371417032750622776436352479330932203362588517917948537759234998040631470545996325981127621874542348447129230582655400720556106417226398280612384164600198093381332309141560659166660913560122244464045732724278901565481236272278562109560755178266788049030099298726475456471700399294655446122662929523668841015546682289959909207930095318036827362043118103354061766456520999729404135912193697696709077444000362551694545682677633723195390583305585847652373734897124322514664737057004367944300256540780112630833375322642174415705073718375422747365994481983974529994817060572312466760347011460156533877736448912917238112366668941748870265256978400847106050643428621462976978641225981672019016018472797025827148632558766345913747100520528543396075590249862318766587263285742435007466950888077961128047658274050637993953279397034624575214780720822882468568048573944381703878571916481396586981152542061519171628118587189012962067839910576679093805301417672825156913738703955470907926424436835220419984168657086242052787077610589454065575531398123027968735171692008174100241504957330056894492184014417508821340210009289467713189054570754257896209627927505380541686190798423671333005475250634787191206398623463669021432023322865505054734437325917831441652792244693227015236790450246735289417290853052928184087854675246023521698952623146595712052504854663025274947538681799634859345580369197022700587849662659746467933342433852617714289303221639464814216750037163974035825976791350805505008609009484363389063632534449317336616596353603719472730532623218884793040582189422045531351953905499380969674327742540499145724194242090622763044424692812436165867359504321437158038176565213496160027392588304952574107503380543379861092191799214788779209518005642956184329738097217986832444604091696938877808911080332394266703953078256731074543248066700751582302754927587333214591760906505541956480308726817240387590173059633672518640060877763016244532724616400521574537133428877190189027856883975178122971579611455980933448108146661896196608164237759965864512777853694839292658221287727599570794487528333546996247227357372807003449370676064942162940391207406843909736319169527283472002728947392459410478340103741120991802425510253704958873721120372841033716277636987448891992399127716140357984873727448991571350227016962594805284003178646359099756243123328539933164632067987490930113286235572408106218520330733073909321372400861456552830156526860904622738004464757779847905335160226450636997252671575600300265494877593178798771311833007652740065328550705970809515528270541623095998069941538397488807259673711933019038457177670656795272506391723563211530324651127602056461698822734732760122905006003112521236601258043009609616356541109270691950794435273835469452297727413259397700895406354819373394515152019961380140399730874499779096876273648853679713561287133288779751583350571497957961807431758009006232098123155495059895491890062722459284410807638306755813417938608252643244472326071587767116310799242117363920929005283497594732551628273781985150330491608006658773254345492478206899355164401698518503241394428024391857390192719166478814507287883491133964500844147241900557304065479688746669054643814193116945280828005633741060593380306334603266478823390482948927741316330572197599019145656601345658754992226074280697469642084521994503594750403030644106682673400604292575159321801386261049856659286442574673936674136122617183998405909195818180607480229190773661778303711873564099902894769411957949384456424999012262131270124329068481467747835250122014445786868490237173320539504828229102979833413167146514614235840729400078217642690281992764459273064743288929106306776605286857511016235081429595826144030150337312333192785230074644365704215069474239350876146106992491839062041026529164806590304463344913340534800236264232108395639477345864698741292229814848469984561624407603178618178520641955185755257730656293082478398909216796017893975426737708523392505584070042077377276688418495347323314372042478195202707981962040680183987147837917499688695166302450695780605633190603694864952670700841699914731042173472176224780826486698392978944015930786416524659920799397853215320093456098134581537115897738632383490380167864131882298529484205564809205411290611543301372801686675536685459221939732466945714225658192579367057672122404235714045751667259087442837049970779741372461972692547084855664748879773792551501329689661940703042032265167250079282820456983479077069728707448864881153867188661151006182344344807190988629788250592854408855353238563130837465623841775155801125443508722181320167376562582828645919668531841071717451117066902344913226042281243263859704389187127682572123147979612626500467643489125611722799190784597502310162132565059382261728233160176012620965053710296259501114403013012645522116958155829300719187509335657413786308840864865151056125189840657609799826906981434206220555033232629161919159601116530895535536579836919199405898062793676931345675529736884762173845025212375482518954584073578465754368142305053653712272073801702531498618394736523934932785407635876064923894358761625580767439711864825524638786301379526040039384829457021339181000424978690766915837222503293621757769603441959442222841816004193198587890993651326062894322773503689633570553626731441612199199806071596558113213229970955295226105181579600807041262814277579194623013551577702039672864204451991181772623714250438595385120506722196575114713041133532945692823314328075713169393155032818033325402366699135009150684719615360142879404061389019691983190532801379844517802191165384948918485774920733479279149348577924529223967663057566346939260437257125815613626363634588053543686944242583959267617249677025022512073099880206732024447536622866113513457952892463510721260562882053037137627112252994778686808374475173368783208571279070259494129832359207832658860322490666628254147804877190591729134274963568776316981659785129728091359695855391612060073881287734219612685198287246491870767401995022002092145461534682405625084502301428052352233369290092339293941096307891848546836278171127766457833156856033766220159310886356215489407491997597587255551240002408197606057628124226087894831360461667615608378958997745291307280400616991696998357010552088871738694302592720468380940001861285220358067943987863798277607640402453353830828300809278280466695029640794404496909055854289174348043547341137905778015592593733069580701153695415175798788150912649796721925384963856657948243094024084332943375019564717723941840651604153392838416984327256697825641236000562151980987524342759052752769976785292406626349330351839975643896311344166706804354254400399259161558209147658661419095046133588379388024934638451119824921677086377078449166044885955002609628267862986661445368410340361729102323355084983429351633196825385656422247077104221442802412920212459229993200404013335780079546129062061092776674199936864455330082581374381452105866439061166844145554580001180009084254374102391128561370483886337920242919096173412069831223001991417808294656043464490924782772566821866279327520477330094404230960525978709319027812407703407619962817541731942074811136713535551511365164044285982361667434771308609552227046609640252851486044674092583848999110971768933945364630885702457718690471501900134210572199586070934650056951373483147315367775268766746934811270702598015612815413825584302015140357078711500712272356955671951172312942438659276678562731759052935017341454995473022405669768150948803706633241275405022803805109265540976766730495438552177372604441637251485422480528332022727829328028501617920370188601505169172501733246349641057388357304417683478830452538254022051989673517465318506805118330980780708000654314514993688340490886681060018857353914138219883557451576567446788655586447715323372099570719887363719581337012679332048722436793010978571283273336847102004104298436062718487921263540364771884389344730282433772481443297898950747305565866725919984347033938782527651223307051693995467151422264347557632963960721600932413623285994651494747408835636562978913286284039737126170260648443427960824999966601849737482856582093348848291149092417561923188331797096887771571448293914264924642561729576349591606236371290106794499637431720649907659796666916550269691725587626010887932336377206881944340566531764618453914919066178191792283912243999309304364939418675074714721834996783205634642712072815399018305946007372426663895335072925573348805264584773214602419913775504381786915554675379404301555504590044417598603795821959832787119793476618495682584197875125651188123251318237660759553549699357307804481542776997752348050243749146458797573463986080177257649598249424539012876953397819005129148854628914309080928691228008825006208228086293746950741077301647736568004111527817573591431803966486752734858150141235350615993528698423935875734381129161184820019909372718032283136244241757562522619345929794412005922830227628046881654112318531057242095496703957265109440520259000978992037401766169924888310189835860157807248984051387323671050512765595522552748586418599898902019123885729645717130441334100021350855348519453506863570306540830396540728245678175224486633250029557876984160516999352526506598351370872872836127761385198877081416744400219152657546756064989041017281996399670632807387644206205197701789807652690337242078615091096560485102926742267385022102855082347259338903269627713188210147688301935443357276989875281081883838054059241935912704630117968709746575018031984875086555831224625042230219006597246529382689324447375322214964393113605629953371637608437338717176403618447963862687944819663597994798559810180226572811368223403939026502089735927840016990290294861149970196823917851596023519932294445541406337375592775835943087462045271181128072096388369329075640348826867964741829921557029526150725232591570342812954720050699045450023371798196404506080169938611146221487911574520757183632649542172519140519365040849491008156533079286036818224999825492684161567860443001575624255687098045431720696446396868444026839373075044356537296129667314839094459724839672551649132806071019771009655730069004612256434268170961393997512018099831178455354240358997090811751619312250618027502762442830366118705976956413830188382205547579120223276958987783336597665301482943914223289837273226493219171413020208075312702206562136181270413727116725903805615780560675241278296052214138179784970680026019227709636062044481691019746433882120747438830685726128036097959666560926670864257717009738816958867194548557196896025018415755918034015066476992785059743768976627025907079339549063453518017613063576279387528517805333871205615379278710865160335387171202550399467847507402347179116407653947057011657893426647773650293689713373968294172667335791763806592273666875104758371550367074046831637650106127749174539286956383667792852502002709305419112614257328692244719464807458033859326400944376274825190730824039407961506261396335310488738613714825298983838646933364735263649132370691154800694242542916959877373091729389273401408109062340496937605372411887110220227964236159655430315450283557367001053998591420031736572023131808031323603301176121036676803602715598362226328082111754526042011787806012167048844253345486326921730125405704865926965493600345023070381089676306782914450860463139127779876199577061693089210906346647195389567701371797766952343729973439660981645835753562350099032113836406291099673495029280350941428769872335812010590500989962418137344501203662335946356828330066622646521095353316454489358369256120371105215348370761120645265599308766801171482671701815947359012110238991633741338279670680768777704042462802621053695855053828022140577182178503497841914688470773205905004200525820174151159661536330439934142218681225625710199794481622658589518204021024514800027514248482912842576936781001852115847208159545177944942871068642136556722345971352296926151885528962022268714173741839716932027711524884776882699725916525378623715103024183754011851905358593673246503873691917373536316209501190942539235063807811227987183482713654937656985922117315315394526395362144967061002742349585227270270495653587203726275104835745615133572314445004168057073631297327938489437546774142923740868231214096861538238330095112734249915680894415522993556458864751296306604185549562752874240144034676362476631412453678751366354209101858883015987769490733640580719720041148245476716852818123261477161961271977068345430411967067597717822555950212329346910495989862143382448235472732633005477130035751807204146947531853936540660680970336475055482494522020918230462368935112856136378630674346490078957491202929791959032326684417460413687927698472716976945982187728043414474020815838694609765839682702047625108612732499459737436387389613350248038877899256791023341872477702878142386742806359562500883440000273752855139822369866435415784451817488754565882090450355509871658921036030206283267784654061187267513201867750684603953297937111241669925254623921252365691939284582501585884396990297682711037981134521696537791487594424007876119616284677557514888025750432198915275084590779303050385997549896614394366426636123322507390001839346864836763159714267270759521383394163351025949099271769745297003586518404737752168600635539901947612534903603683179170415441899288538271476038191252523141244740372554416240220704282276275036716302294473901977268465077306360680843418446265485443925758412495228736344866409555920792466999591141182036603736328725113221999543003320148694658612892201904423614593777107391822475923694119456836682073051101912129095866328448278047624896415899793695222800853754207484097444924461226958890034414491082165673634921766688531275723461162524560048814647197814818611246687268566096517168919713885571213383971353485216996957791477088733602717588167045404059562936748257038931649462774020107912167718368093126509455246586714353660117167998522056510073767385193823423962585465431076464323778458916543334711200325771099637201364207374287496393586483124614522439604263759165208100411262426533119538939371698478800513007010987378598947007117622593694363733303012676840163193693918092855416245332994773385696412058116085438860578127780656306582742758453083791026270041750992465855735151247231198420997659599573586392870889044265603683346423923254185701134927159837793615015329320266728263399958348845863098724356830471563492922034282608796762064604505414535495120203258141084237875783100671243755513764335002092051587918342858352002586383507371665757360144170718142818123701040543101471352640518377725382203822468836592845794767194261037127592032760198947040214074249961596779022713257872315924039961297644822476354673111566874008083596465958208346871451959166770645566657926315471308009703936843932293983615053019693909606477262425979138331176444315997326516372971446405049233503150246159853724979628135066221955022933031928769606327857895628399831639572439449072322391678710244146431639599740181611661494144182986773093223894458041859499434725633385170273466324479786358077842047807651222905185508581855390313353570915507028240592472312578238795048475962491124564257849560337876822431750207094442696976480911167801653520322017709167368089467305016021671722777808508153483026620542317132749111633922130155452871155352224927082477386238344366717780363396393634265263532264685092299022966014683456857877428971746408569231576104035670412454009894473390696744000327485616079461617736593251844939484690979845944982248900505081242525001298019538468260986989831837106481896665387286833564505849390216684483342934003746446993160512396827629277700835987028962745821587477751880438665522051110793671708462163401177681929098280231983583176852228086271974715227683395946156197789183759720433802888143739212878943297635381640148531500194871985544212429726004610691690198472645503338638092541162772668948006902654877888379604523114964285207264000637423041645591361277887248276440008788590333542562181707677744189398182265163545650917820337215084822370266129486949743371630681893962090386528478183930144616276967340672880014966293971783264588556147125712801780922407561614420284709005706715570971835174289896358966758720040860458605048377191498645081419370533153077668971947830826802418024596751437316387878020591669505009410194774502577754503196940537039894246695256149199661698436795920737782062418265936065839662609564076966616523158307940964541674895230750543368643321718519496681106597871580571509506478659422886966164678406825323651622953160556562188107747300299924308582157146670490263215844196603693142742193853611080681872662902006517791576171689645837156639045383420352288151494180922994857735964231341303166979841692310677201499231667710428529093849582312318034399242243053231371508481794472672893538078205020529862076095998349477298347600967691346259949385555966334249928647974876647945325124847688355206694264076240381605744687131366751210540494482101460441309986427159254867387450917357249140104972671594427047574978144998476936594696953135092708916644287456660537229011940025766477755181062351773933430365584584223989910950169326786188131359127803459975353470442763195926521555540526309731665182909535737035091928098421783276277583830176691216130429689437902411991419595411676025714503282395098838689921194140649517577436540300558546247383791783696530283005890712408482357423012903753309208559015739767942709830617990706894469259648706069004122799305653847627939648538013146785558537539664083312921837090708882769972958568585803849151942332955450204791534739331244635271873259794413716666355754992561816659831080235726849938064444930639240100296448337783167871009631013073423990014357356175400068163184615172819719082196870153837142573689766726818302316516661876345702334414943263111865740631888560976043062850378189546632324747385670538886737730749153435986588324744455565835919597468014753395154035800551483145829707106120823363861739657420215258915318233257848629833850340461368284405376434437296050624069510081881882264349376390463404305098710148156840075664438434926546914311944690826287321631964087003672329905376057293744838115666103194012363977417221196268042133643401790660784307917703626925639960441301269631759048361461494178936653196129873530764861931452618931330554448585879392546634423000366900662032506494774644880727099888688787278663293261957228309582395419571726609553385406180080146301853387458428633183423289425172541105011663344088498024680467382166644316171390963856830727777086381158813144247804107313465049434126592208759637813656082767709567494126127928391446349740905153706404559801770262026917597472312978923774413246514789626820596306908708481532667078062853947258493316258731860067960847639245783787130534793741912514573401529170880574628593843048799170439459807988282684632703461057342469757064059758098078546263462835918860936655218721150066384742484797068461804349972843674005479006301860272377727711527078199626511410906172644161246354063046113378119407487012163585405323080902456077274471730812706392049085697919836056714486231225316661543069969597921526826525699959202837537912437139458700863091240882389053892571175827681649496224050689568429359875822108369002754713430465547330762849372174914238031928702885929317762151558868384898976011601797149536009690977683311528614873360024113561382953633552581144787439792548585732329699472519496335777416182447152819360964371497945590593143099442992966805578494829096858155348004164579008813254102999548469321266460047644385515518670673130503741823259834070925907087574944933943758445287804433693058619791139458997846302713501125836626693055964137063558174275518678399734759951805231561065622234254887865998782826887574908570455117055727499794492192993871379599031981365559674998919830630784494055268633393408972170113544906936754055096394037978839845556844749174509316478932553333526327604396615137921877226724606457586612787777517380126987178540502062552562356543014392515622706717359512345373087231919913201436165963705693018013436187720053266606034150445130740541041139427495656286612474634952293205953156344389430671268979015945933715543746842412882524220609386946334849083064155292017599321651674194271030188858844144718493108481931563563411669276941548559709343526952898956511789970855819577671030957907413488249424683641862235530753047019155752934707955727054008959756281292809093724698429793616573061387519446840187015346595141664262361779131840689214287163444521856566405869142010480515666585788696620796035957393436720288001581290412550069799335519622966626429679332206856081324202303369414377596264859980864874792445903301925014838088430820966463862487471542873098840383395564940947075197142325271013767030032054639019816645565157351573560351765366008761074143610057073772709924046873446922363571501443600702881466012857181171194836525789887033861594203910212744683720264725488563015653514673580924343184507893106427691661028692321161619117578203186856130454830471481920262507512588768813826297378405352889339285786402465499815280298724142523693809737105944428572223496687713620097406471780745206965645862573375840328485549281413661456772998793982894957105937438960046720711663160355694569937010805875603657975049316850552573828177174254797270347410803005664690632943927690654816246937288285875776155013799717113490317991378708089366971672192081693831870291951904957428902593248022616151053622989617836527952837444886344898768027391665882565545619701626428987354376048393429886876604871900382173747092930079637848162328923024460277384991914575086610887110878511169261609035076077526289260957032440771367450874416534217930552924836646303711539406113426177248773192009104435127249911687632499656567876493353626031789583856029134329758908229862696704138962500728569032678670685558657848443335152653618566595504681765653043720425219264398631481055718643027002953021710844169353581713608805152915950693545204675369629696003257792568770244683747647992657903071922217787002070585732591922900085450617347314975526780353562075579247253825242138158475785853896677951732951815244724358594608552110719586497891899715194139625320709835640707957274631964482891721620127616040479084857302380050622538154473211796644160529123959464072360493477711178507207668005914444332238805270875377357617744863011423362933905928139223738102912727739978851849563534581519451106155116992048876070167429525839793780152488965741631665009488859853214868327807124037312373598849197364510741284798037284875105597977758049893985710253213965795830956661260384553926423752692183404463684487094714078649343227021738309798595768117216375393860524820667360624117161792594396482641245710132424600692191147840309280881839344586345616993005357207025420835721877536916718580972235572552254316338622877576585746454747344439360903463538449572284545800613997290514234297078316208730856382132330108930374581367118868426689029544101411592120402420699182743940479501391481005280398920557421630638735799484494044612936877992111719006127295798799237540048467024784762936883338010312558999647559801572218007422883864803905845567322672435839208720197582543887005173341228103342956279717473262921225422055410927375071975202563083389551020952741453364943354368224041145760333146876927740678139243603780238755094395382465043159804917875153395886629769050095870890025962449140779872253618720824475979447300899522598605658674995957435242649494321116177926576256219600459350160910557214783593926567799272831702557190280055436131809003256933570731649722363620679359108886110645490943659274304078637545389922193381490961540421042938055069017346835208258515956273689202499477544844644994734108044975830938364413878485748897999303035549844029897708075746238718316133512145956911972730085674706482515076589993571137631481464864981023214118200006939610226528981448431927687036851661356673384956249469460814661401258910901195473169963260310274465843808728301543198355716738932258231384152246117827105015374678165252203319351562008850153542083285478764855598978659652643362072164587855992976116529200127742121353451553484014137452324295291119272030709661563273560369615087557120256727194985076605911010396983536387362089819345871260813565720024872226566512666922753907418790452053624619720931386693145292527817122351974548258504697980979042883938760386399689223682990976365067834187766011187716205060986844148526343552095658348668830407156439270907463655021211510549729819922940078258646449297481998564613022307627324510099445220838151835350846844748531578132562836017004864685580632487233869334949971183681246327827057333746707781836768938377827760095868337076485620473874002455773094399824736799042919632632774919756600060192442894917841189543568812775764931954042915948715848809612178577674309765959387055829487060849524020386558428574943455312436313575346055968140111919025566545386163068079092390677015198721396554812688989604040676281981673470509377741201163752289618855888460824437459242980683799826958756164490016219637388496501942465042534154209805606954548334405075902987255787068271717243661489481524476763915717441194015907088084537148902141366819499329112706880248970360027254330638152314786522801990094852460934345671267380970960422767824136718469480478354823563604963449555237354457622436762581028088787359377951003690231572473848734372560406576989498678019411218792962684713091517173696441626221123357697047325270816804852544423055657121367239476188827948330410408967848226218481322176332641126993193768834209920648994604204608254499754959628469565331878588009789747904402306473640806046332829764609107761183404841745571601312965662886050258904594471762661272526045832984018914408302909661012231169803705922485100397985057158496850289477536318644020451515244067656082122973187601649623942223141268891143133658007535351336470995488873766544519346629815531793254846457123478938622596958316108913651379556595420927408781846401607656160510857661038181625423172197756068015153345325648747493006773683383535752304793264169507331765763538034501963500912254194458626354049120633220112778883766520844518591003949791280803440567344341924051491884814469708857205912559635882783767787924540272035593087007946152562511773482158461311677403871946275012272496639235578750754205999726034957684047244517076463501224224762441018707278075647205605573346019552600096827008913374042447720873945727775483854583626836455695540692686097952383145905741269399348519360820263512578044078678737642774292948181840801799311935497685366625074200626778853332419119911724973231018946233771640033557641517231603721621614799460174413678857316642078496495778933892617878269854807685548543939855830551392101257505488952242861122022418002832026719666550186983454777244549559576503516243851842704895483172699965765037167989205345034401649869775067529356699226181280090383818396935992094937710222444822931752677632265612885023183325873088464916194737681765498828558492943451618844492182033941379935376086168885721782198273033523426948314822144872384915266125892410473176695419588444845505700839594054517071556850718957879336305413386112361633316638257493715875848449180959407137054406422538120193974157825307711017957092583098675294460683574079346544042494280552302360294669291362770112587461613842895836669388252557104425810482243953092108152450053121879134702821849509129531236352981643238917743944759944901451930203366243693410268423384237126595496438028152840658912136823851927793046404050638074231062862153418752978175674762527253801812656273582590195757751614183044608123321055625777988788363861152646189384686700522983756418358109657812361147269940848785961366157014325918601189739442200706828372106245033582754942502548721031986131644654356933965208019543297166575041804558394827630978557919519188170877905007183595248036815661768400311633239004192280248955226728245734496638055916177651649711493587217375634610227173935840949947457489367517015996491214110330902723654642624085984656574820539233859778566791951590751428085975578231310853949221927318296390371176195880826743784711051263905185623895399916062743516731716890738656680262491310151716228567205285184187198790806426870013195742734028349900479483641800984582461980690621956578133964457885760569049625606369139627583114571515324839532158197512616695526583372798788315048383015591974668517083679078743963609449684116179595178162305716458457296615928000032445906635442590238518036634551052014417531171464474303958272828993844335488990747047679960403616206011010238607827878097611636245943438548937998549407751754309423428550294168208119868852980251951693964372930421885285189126031541752339421382741627661899021155012530559588812363494076021566142254414450917178730326198490077268607716832801856243030577701394241751843045404614918374285237741373127344433124939988085602955604591353361230213792682176623166443318456601132968187657631092880231911877331524045155239456704808997568132568740102070136919529644830022592542595410121799518480197504454170267348757608647112691006446856880998866000080545593572823852185765090464900118820412567544702215796530178009211237668739671622133539532100689294763133010715961189130086129287266472675622077313097549577844304072606331173807504809458828111233838816580472094410684115900467017798195923711748768496958545752501355184167166596347226815155037858472252380140049332151703035211812725166979595278897571912846625768119486986096112856731713185582025950860313029228067348940506580631380493604712580557799360984818388122840717188463302356307194448165389203913879707777162942662785921717600949946843706366335165193142419432125179961213953229868057668877617807543119822257082536664101248220550815773106315803696008479074257014636725891399102785403547773510077588976430545082951162159864049150395375565500080581616458270981526931916761686639321824227084219365603287937453741385516676544819529215630484157970576497965967716281081497801076886036825440980556970826273543822291770017694528824259034996436799141393568571850252277383804193216646131815219622467811228901282143155376115896656562136769118290811604933762740117588294319685563548079700441713654886264343295873970184475123216585600673654453595675643855662476914415203869953847141069467836456496470157596124838997835947259488506536589792174860178209138927397228989274651065645586081708999615620394866684742842411068711754633947520916171094283280451784208409873188813448369039296210999133022552780322346482856521120002746227461929200540407492407977958013687622753125771666946466404150208617667549842114927489454944297029704337112151292348645567453601361562635781665744341499983996284660917575270335044295034557888229413988768281236757913031411649583914886537394062194991638408892001419400926232967395318738818898537290899247701593706685283365382302642707728322046255699011830319414009033523048118655479210557171248150997137187692523129724753890157187384990892481733347600919010092094271110995001617261219056635321494774703104000898935146756828114668269774196204072738190502428323205879989236202408399055934037332178547712680415358095341274691403170631766811434099443179697350417624732771172023696539192669279513060342957516756335008481777979875035295339511126322141108083073481581066605488272693908449159640367919337636369862307624269390768017293660944821765238226642499173909114050839902693153565237240363238817888902825645212305211389875063804320145946867785659424711620096082189196270430806388846936803619291908248784695132393619937377297843616741618446674511778061643126785583846868078272015539128920303822254465740580801930301941262967937557603321145613074392455331646323101945614487584461755520263755802457997553303583554230160955694935745176372967466689693655609019261262894043292355052433063873036192621489388734351406789762157779247281496319146363285493578436390544527405492627118281726618293147982848587738735704205322220235714329456970517355132822729260018556599050843187814931861008303581775515668792528462861228767891261568931740586172965298051275137800555837318649478273228893371820812332840539366096440037592552647524147034360670948115224772028159069825967586413716154521993953781608834296647714856569325250991633760793665279275495192410482325291418678109775524518234352680007956228557120714921817225847167094250122840508552920386788359874678137374010128639658289913149273261366793545746472132556084847552513049261396765725532367264092655536205026378189492614666955029360987732292029924257187167715025229600956659985390941625228850510432736952285771840188524957611663374811412761157034692077564310077846279169772536102722466935351203702797533968043229774346714279734200532976017325413560592531537942985468604691530506298647224430143473433212542429904956431711485119356156005529250685454260607908252120450992586221373431756526245193223800429719818054623036053138012774060651352649416674405087805346274639202337023133117482172715782057709459638120340779503246957323748955070683510900602060302902369342901133530502277683735331499789712380144880703331031623581376727452034331492610278501261291924429285701920520181455719168803642328616430099238358221107876807428265343319086479460469131441146612485209040730148183862965177457599082622972451537297040088859977511465380603279533090265363027256541978397989323998870647523791845893809882497143796086783491345868371525300768544289168222903078081558780452107134017970269657483603501207228687259846688608323805194040423446662577170679744043584511635465919083851921299986185240448853299836099646351510439942462210102684634408364019644406919841266044467811330559177703024706140354030994882073005703887604084084442619981008560867447023892150938952460138582386841263244053373026810144657250201021419917870525060263162331800636391504384016446258745783457397275744259031240482155860766880671894951056322786947804266773490319118778511352161211739941276305494550245267757804955156207338268094371946354907322169681684194622590379061580066967078166073199610991155614230303351793268004477394868264765137548989562459325236145865017890948031561928095976517230605042138982830698297791775203661796158976746634521323930107019710113134027518623923091490368414423222669856833999687736799042468732639046319037963876542842312661514762889901483994072043981612940031484536395623838749390066632535489867759066993309142054991282414391024264455075355481041599778226620789178984987408800442682817042399997073162691787494732296128457046856399760658643311914534440155246317616169585374874861618827506258578229702134468308804698315863896713353672662620841111327611703785368564616516384537428358296997441433922449637949646224679664916487496666534574042928152565254011287992472928131692593769881543158296753713292408438174075081043432850182648899310723256573100127554107653602388617214745388287653646536032845234533395392681570879703614550780880193149840344392924095280838089391584772194959848135890932477819925249055320915931103882089759272530389201107739264042370336974095541468777693737943697863291463088919793484059942516205976289095382853339070426390893459805749398531851338516916759073506137341182071650301731188342857192853215319897571006628736766741001520512216821051609481222886209010229875749980503246528142159303622251918242270779630991103616576858109037018256769663668859950454181426329287580554313908421355720852990388896261254011506622128366726315739048197259377573951733199969570015361080148398312689943714639748957236813807102346620680770253409680641377355548461032617895215078945256844010324667742070864906234360516555124372855672875588006430507875520054206658586136096451950621341797976044155595324958514698509428964896037100821594638614736664373776566068503803312437714014814966032310120123354158427146817888923275272486188138818104448157978209816398915878290966854933350652473109283096600652924310038365598931747690465281152921705920369456166757517973408439775457328548137384695406155739951492807427218511403165965116974197544149639786937830655139009779209495860069441073303940997541403484174285561915896312628964237479507511851153131436922936894220375860490253665296102632679318571269793976647512788254909975026965984334266803220527142889549660269819146670044290967200519144220259350347382715968655109076156267579776689607559639327112234699638527954987788563339024192820623753748212069230276457663765801089096235702477461608319273799182944060447392474104185683304797234546132144495880788035194619698598146565365030698391212802155493941885872681138119434181398129398877955774938401605841142330682077078427401968979824084220520609588675575523061155778413374028296124844123663611618057824735479830917859011842846701694002925269623897170420682650295501859408421662779772032944547131401884215110699024177875389363484815212492509592976058044503644788135891540670146901535543746307305987170044851531236551918405192902348196799077229157711962292447659455571686876099952434635031835146321692224080360714325783651322976734908518622864542179938738658369311236652821747824318282881870590113424488242730871982414232968834942621876847076307567762959481352495208991576662134564833908690560871229341112141630029334881665193725430915559003378206733233535872078441249717186549989792621585240656353371598995915383707680874891639414612930928758292834209816510158458391411052979012080784058986749032221382664972937723563903681927614831832222392074472788261989975201802370646537606005925436044643460958945929712813946129147731915169870312460252625287101002906155682144989794432127295212358814673463127814702487593180136572150704494342072161956559874251926635141521817435392200587378822688599067888636521969704007738174091747888648215565952787279828376745739090444268358947074504769465216732598511667518967792391417161770811290082058373953538148002915852169098202908705124045604122060307317662986100225699198092113214418183585160870035476018687841805214826928753465569577352383470049726705576438491793812502584714116310559987677408047018728318931526138246460709677694406038440229291222757487338847668973363538002800837389652633134151756939609396038807513545423214826931086592571143899628453536502409504019353624539466949742114338805776345300795195648022398924551542228745021960748965498735782569108733590180653865061797826095580136926291514484609950610121354387609460789797537169361094388498638671961974887232160720590080451820306573447668942512045932379816579004792970002184108221518941362911281053297116590900510913535708601904778468712291048577732688687437495499097281269156680236906088899943040217659506019644482906105014020212283132251306973341407034224518865044786611867738869329676678392758955007520940663617661981252767619545396890616596939277952550032034913312572905417108969855211738033810080135959190580292764435068309275681310670563032639315381744833482784570774642911352107003892176405069031135788798416476869357372893579084028516995668376315066218463807222152879655658513451476346278280552925636643305992726174561518835198375929219691666520304530414739672847613688645956627121836417024234713853760846206782352185639260995940335491678930121284529769263635785057276408737099757746932202889954485029939372095608838297297739922044624438736833785481545610484587002413277541543949284071001021384756006057566147579464955361647349377142295076572817530297741551355558492876598498635779616572027087902025294291558955552309813440935126062704189614322649732948989068832636642332981566909495845506507178302199461611943287086989453993796360205925623068742010518327755572416435555621811851122618528195721551395095167143396281972605337554709089952109507405798376425153146948742003461303800984999832645452745852344105372176879326810239076470123877918016652431825991377994568727773939642694325860300568292094593251061848896860552586591718262577377973172933080127328302006880990823719584161674853274519403200094975504356976027123397897512864866600372262290848558802874346531261025434661506707323639387118212685805396301100511252797217288191353062844295873335388901052153731989678435334721676210272216157108339401918895971100437477032925024207264048376235192463569640731430289496973317212131637553406374948962775602022006799634725902346241209854916838199159066115525752365963935067693973488985824634044603650404704213036290968852908870022593848002002610596781673493051184153798289227738013932482061511683985107875242078014835739741971147267066927776604867774475236179519838875848387456080785364056259477001097389244555720780401467387343277653545635253020577995713144161231831146551573054102850529498021760481579334772551363228645620159409700299153644345822478945459237973967053159908813991147380557307771132700202087774742506623495023796070862911198851923007895174548709952924963977683727339504827124070697949032652133017842972770723015459905714698890694481262598914441718556290786928561898257270830747763745142237718357628673291882177764040322798368053052532845572939628558511282249379188358123263240927234707993166805195075291643619582591541437090440576616492265539584530319202938999769646853589260862086784468856670997568276190432931930119284689880375360649199668362624362928251322948706381372835083826587714345371186631857760636920249221212740890033750527503751088579410641518959252374217662974260897339938525810158557032350897718568944139272179476247450585524613023953498687360650329488585553986040695076411499697832706917729448255028558307832779093366717353852434024443235314551143507365160291523669588206093894568162585170769435778050998820660871695047281403586071857519467702625167185353127885521547824499939678250365055325992050891361297027077979046491079329240508810883376808006074592736184272333632433531095099259930227276209812374804431292022797409739766920255300692707080707995010987050622001440439028068510026118340325587721541635713074928867720067696438525944293922681608412876115547865609828029886331912582741790350834104745259966108665847268841962793353317561301408734854171139175764716064554472602158848696491810289353917435523233216823314448710746504468561036745187119447161052164302198773867517051025338890502370027250606728085223144639499486774884477238284868565235896286853579769617217286970054602206214716672257726141653982081497131180600407986190414033918299598785080228469093137718493458205585960908464762664788927792995060400780983671077483504897373026709608235672564508302042447097579032645091818991434306425116724986794611513957724805701315768793001384987777182056333431655703384423108773530773349489959349406491312097076391762019217065357017185028583041541207123449896832742765707550007704770030163301677358002130740824158508551399694389912752018919180287068515705967776083354149062661932554022262057207192444756778513294532314408968509433269530391186034040931033923280919053826916407746670473363667333301026479907947702648355966419220496073456551755077078993920521607808608224281956579508943585136382814358281461608329460443524045459782372233160605674940893131867114323482278890843875740627908453605523558962897115259603022898729031458231436354087803921542671512019330498656783201620124792454258045791508446650558929723270282713523384491022498314721816548054055529436526825273829969003356846425548822494751449232805769946882100606753810731941501835869602078050441439759177097480397807497522705546670249435145250727731842707103767780107634773559636528064091367882622174130158498035801537161327967105275999636309954623025307654478554208487992602878151785466832355934579121853555770308569693934705848990616228494385851104768082626943732638260844434106268966506670910841418087388956557261437687343832736512983217606044882254972480101637476597984294849720459154122759367735360096487560642453234127868604563610969202552539133357006695032463845516182127208682675346111075350609474889529016375195501536489557290153969271292222480346651581549842643294352685752376904491367860706483806730909169218528271414002041705581390002010744478119903047202484426117396669410037196969321256016349553537586331597119881930934807268010516233626130397142343808929755361482661672128303633892429466282894735151438030739544853136178055052658966883598369380028152656754104359535644994523086835656362317199610166279144255382024882434478373642217558536770779020013615690363614147710224479481049079607902953287387244639989470516017935916927695991171574898090428956599084953433272279142438910891241587073923875244686036884205421705415949650201577090004545131189790540097057161254711868559235630515962850644194228423133359621806729006426403946504524723020494050378662643381243423844270328722986488065838970158340541533865218168533705932586759065621468286813169392501768550099127397062468158675086632325573597657928533299861510750096151004463014532899210376710623225878444539052017145375716062438403698084179526291462400949379357203607193788148377545413377895988619370154992761687073341664303772166066311204848607500329824990583931280286332380318346221617675830969758786649264318487047982248467619908272686086792747528785159074010520907597075508146987545583179197415388423014144551074691244700178030619377539469737443660240257424642065704927822923352602656150270150606741858385291919352162322362460241953881423417251835656751901489775313823375825557585846003478221295442759287472013073995446929834915929447807504997722234249740630477616052649424379485972890433597286632836628111651929627684956220694167277129428049647757313301630539425692140322572138000199273468592581086765994132540837668078322346661495312017252004149337863894264545015583824234717773920904268331064861999263242051873077739274009377629443821768766998574574612156426223497864805819563466199632844359740813794778637429526855756523630399173112586523104234150868322585699729701622131693424547045631908300469784170289890731163970546504066392928874681680573116627310890887424583345567881822713881011677107862648961296641939811142629911403286968008068818173067889002014540892137534667783471639908756680986139098447781476736948012632503111461323761341920728551563409045644509053620391955256150735006863102901731791527496398318076453527652232284442580846182418151788784843741959195814074024561775526427425217172166532465899737104857578523247179187081811644028968276544326942246206110843918945399205816921529478385820588449380808463847246605254391440194309692665777690148517438344298881729181914749447203640047619778679305004583141043567480282259445205862562560201239611406604967221180180458772181423050458316133356059842936719459084259244250910316720513159999260271559453935579478498872132825712244939909325367752610959673868763631444799815614640106564658325931949076116233734324769279232070516001704533840588576092088477718971944142441333173154060046352512327042111799942214572536405565273733111583522950244610904654124116390133839224343994856567512257655207665902278285894226209545378192827379409304975715879402810870570021346752154981217952200093714514062718609316428301518492177575819847769457770492530590134235802215711968728986525743574468927849977849975037360891284256187932280300571294849372616031990258502002551487004295052767248012906498594476143345217695742538171793408862585517653326257360130230128318545203511542521397863088353535403262014637833411459393091312420635260238898444710058914720256688805537188386517464095708079432043388861565722304175252962399021691150258444769829591802232270304945056667625255724657011279490968439308969899948980456761749824295447156752027032409718812546667774689247693821088317932501715999614888616675120795292274402180085135716807386152044679094167593102784392301073111541554574979705936811804032833494386187720822017484350343635828241666417702583515705397197888674574338268557995833070574846778967149031313749108041266762315160763644281857388171882368082307890691021161382962914156626780817574865854647758496567724395582574711984385268169555727745645415248244265079439020983518940348495100148015398174878171879330239495269088615164255590842687418585784210922192743390510041756863938176197179986859828630714774021146619054548427972755624916293051589125732298240817598673281307763557251871320137146265757085574513467258502947109108211277884982175982649937162478882171324199502955961663122639919003209422081662584272575776496018877379942677458769100412133129263422184625489255893144902392572564494159411488529414450988888201027446156064039936278536836331583832692751937474838189428150815542452936808175944365974777114018886515985731310151478735094660185794223890827727503182139607439363052983168716141669410835266947592463264648458995308282353344912292260753127033227892120142961944125079439428570471881828676439660856483409055727869620323143270089444021356923517055091279313266296865158937576612816752722282034441318877981714069648712310677718518826696058915185967038865869231914739104448754649904985928358863014045137660985402512926438410575136849504189945973031944371198442359365457595947359224376817972022487578816824715197348405794844285351776123804016102780624049532662975761730979139836412103475868054939232580618442681659543407585550518737437386475351771247706647157808956521509863435527471215681477954454846559189118140514305296014587996493327819706274866124157640226015553766823227471408628871723623158891210982800102856574947825710644431416290839702890028593463767205004131824812145135862569373362324662836677015643142425681084667617662658059632647833560879206817476378404590651288035619815204048375819017830968747249805231852685163653104552885584832217393454960096092475977393038263108840140239715521312646853994086861059900362411431003093365103039922257477895607905868312449942899836370940195775593285488157647693943639287117146766783329101351741300362854116689119004414334957384206512415932357718355672939453604627496186796948567592468867336033242192008961918313575789670574099159473750117223928437129540423886982237069959745937786000091221439164513030486137363901428960520338821068728879937466810066439429106041579680773374894389061588136225419107135085624845173736216395348663893347201035054184323783200940585685215480688827786580536493333307940504969825322903008611228072596524609703219195444847845290974543192537955474908294477743517736726206369995273699486765725953781198911383853065410532130503305912699442030617535217253847239345176576746527129463342754111625797574447753103165279372878052818386478362023738061008180679222720375222219510477176611431763213095412443816885916623109321660725175781682226707807355500541374480526916982302117110003813207358347459064204939752340663258619795425908316552131484073816772253127983783303482100619428638880695782694725426472728571452966568428486512407854476772606790919315314072912630950790524796281144435686044249510565883021790573348426637778646615485966620043614031518895020864713578637625653502531168125395386495436468978539804804650520806911805542237038076381437300132244062600058913279885742544170419742465207746314939052271994662836234257962714496957107864583657056859257933304211821486908811083405725380419496828017421340733561395850321475905444683484669139823434807129655324510936944525594128904387533865850534616846685346848942576399401334185815567279471967162159211851082751850853275594040047211127034703412035390165518028705687589850611326921060548569455446420467211551133738135067149189060391038196030657618600164300693846277679028019730451448168008343630701359436528742970584050791146816081854281097696531707265548220132590278166796530692667562492303913419768173774433465342647555768917055421195063400422042031155347434950221068257136228324598092634817098073637723691227268785152438972445974545243677998983072764531735400443250068008414473693989217485269473032161511846858730744873371840641462597293518492322810448334622251443523845360905566334880298501202039442024009994708818787640730394507271160025244148489437145646879410020500156188456987533447425510374893108704789530194166074071081094740746820247911527620282573674074620810472573519359798774752000594630662106038011134172546410506087817248771122846792629550389765623741514070080408523715786127880779737567538375375527778862449235180619776396043527069314936509173116974256315049497295176812396582574471556586762633854057582144226722012414417908196755908278320683171275311987209628113026371601713161223182084884574993583752384431086785903929341121499162127928703708288188796109663486185403790078626592396699009696855672499071251895363676505664175518958471843946844141240373605657507753867125446739778401423874064835559332708746064185145210464058672939193645444867792005841934881874385138765471792765132516667540858462792150067241340683710911420541871985746908432494728211425079754865636446749764044365459469840114704881533348724157618460346754786939802497414583773317924561423298993913284726614027925249037968432813036604313989745971962600095316931750772524532475335937452040638059485888576362928842388487256449737723278374775525313864581675897972243825271841066932592747510255606492645051312133721948687519075054185280094531537204266999365696193686291919388932828019290896026002319719731175544853815136681047795503956510251147063366466828092217533078941450644174657520975282706103478811042451004671786385585464978759349710217392825490721684680683361551295156088789247315592831882805302243331468183923284293133557443901450471892275339954700972389458359125089950001098602547843255107222564500560437299850626806068358864716226420217666714913686367932857516780658769581783934062013163760730601379050751379697816149037406325217454130763512614292996579627794914317339546350825132688066993863593560183992422475250455427155860034159839058813373029730971469598626807028322943577396289867299013048340382174839851504839591002671122492073200285351700048543791341510967168619451885229565693274200849489934157780107183537514366024654108114968296589584232408564021286894714793398078653914305073838734701404642879495795448770830241186896194726088932886353323044588826768347027118357065191325709773888946931065695951714228951828884989302290641484346816537685055217002107992694039743328540950042950050892367434996576633531001817882883431784349402153731061427790159732904424988344476084881259875212165799239179330025281000399956019413325441762311314907627813179696466874099244789400184823761589855732864711907713211187643689834929834547908974676463058556276607012318729960732826876121911751732190829352217728167786861398748998459479890959580193155680503042836492867844117163889692143805689571708435923897968884108362214641638316063257486551710559941306395239519155154490073882003590171736612186591813730225657953262722289552997284509534591858867098894093898696586110287662411266640633358689068803921050033161715060219129901704171173305477765789964615718535704894265724910969600993969327620470386097380145010534403895767219147605704576242961429337430160011572972006986705422485074859453101294917243051555667943484415102045528775217240087111614434934340676189759922985135529905971318930568378979036886167344129999792575237804682585005070861797064393517077638270744217325857290731645333093894473357720523599836826515763797624342925456594893600005692889132559771371855626210744251108010464825704018842240681074650439107856510503485166464050465254445954238353169854885226865996207439794060324552484591655132376219764063430940050793902729295394143487368546435558629529223408202411552566207318922316518428605999582987804957911389953300838001112131818816770494000910542207707436423556209716278705938639319404294648924799450725901114442979457274130134939909039929990851997344447478917740937644993978534823025034894961156923176259668760188365142166430541302101104153812150557318994621903511150864809856743713636880225523492736061207642767448285142974971503501461116662348775493684545632666579259251790531904341291528551007466929008455562744572905257726054367972913196851203778262455238031730320858140568872819578597192369911973743034662318748198595064610255223284671878839277459294382079853308892309226258306667031446148662001236589967691644691478179087149764824929720094889017192958755547279553641874888203916980547087394585724176517224349151397511615943379725537615575167019759396102997058368396799567910867455239299709248091163530646797976544273575850186687060183551390526264756068054208526861377398850688512063065987339733587175979326608843373274710326772237337491165630946135978885604565418258269081969624071283792441886915673375565736462875239094369588850559151461863810148298045662447888515134389406537632631308794741612581262816614034018991308252390314548693036558012226990293412706909857679323646054750028959564942173452161626688348376655060296018652165771220357659957170150342196413893743949515326644111233788305109731291208700901703778223093503505455397543644341807996030084722393219159326693312504911531657854423213338563196033431685320221163839259363959738500917657903978964322552452972513698803010097941095184559643205745705682779562420329637618342243742203465732703434946318090949527688389869549943793420774396417157521416147130455673984451721486174053288403040401554663961670914623925295481238489485341304205675955287826311154647246889073496653451050296142897354019250022610769067054859171662458577031668096882657726976082127339297840989941925094924288934550170032007374015814911006165496687729569538095453814416607259152990857589808348900267068883531576484132453733492039068710819735710287053807415504037215264783406124607032644144881105264623029187288996457380450409805343314427976176623712376012810805169055527396358166341931142028418775164077103141803421365549715082627152488754404386091541194498010454285541720574226671122156192845640695929148667957536372336009895762541981069076183547707674938709158490123707742441796531352200601786376999461721730606866011676218070173286346359883711182361917180263868872224398213663593656255763107054201260003990534874005617457762203552203769298381952526849198253220070611868645143969327890207172242230282866068057187059327110178710038624978937590581553608221365163563608439514531891025393021261366380852723915789716449300582794118350800187370759354709455271443643955524068051576120348453995003042737850968059972928037414029322149605046561801496619361870587091043852326395486519265653312753396182201553482761684953095753152466446883188214978972526870034326317680551518358282705993364259877639236751243282788384200930667064266541821072041258741195758643622274871339085762804252773935052835059742073339610296731613970074331478296382276462618913609372263632476141964355237633661124118916488755996044119058844676653039111401296113471004585478636681161198307548215057633320532059586845219101836528264505238318998313540439005143598690591682713609807557638415762890151679837675142718413121846858916614307561462101021400695201429728010341238081595045674479210537666856459999467447377342967446887754381308889669052909723564589836483541042733801831510869326414877411072192741596870558167762971867457110902491692851564964589118615796511717859909402847221390601551383571022737969086818963310077173426226373477634797315529925588440706858551612882157524057742021056747925613687907032675118753457045984767486978224940916258591490106190256061500896257874490910360232636175292782780682283012878234929237526836956723476089823301842232738145103447252089148943337248990647848857103030762705051512011901901769915131301799768830430557506476475202889939058995667658483499847753923067946155340140478717357510397164771069210760412166183726772979879303575039682217045749228733028752652410049188355613335263077573613001532095313301254669094985305376020131537012592741635362684058900909149027695737009173785270436280843034903563530057850723067721251412572310770506101598082531605385250467527190709720149923275205218301173772446821169474319681499263975781715583321160377034771051694494883841624092495888041881582334297890445466931498661006882179194133894201577974172161589505547534246677009109330665122445823524365507837017176550872495453131576831927181447596866760942228453254953638926940517987973450742276462989211599060384493610552289373046697877717931845049321898436226862003734099745343273872102949094027412756115777863779513200907622416373240032555907194039919350332522582186216940677317763424656055006266966196323986572442866447922874986258311799939949984743281815821869269652087333870717092644246629694770252135635145078685395012544814070715328929190907364339438788259575702425361914551296796960948852508993888131000659318716900144977208820511507195051703031738774644606800561102596231534243844429672935766984186535145106239822123206234329704386358582937628081354313192246553326428967201974610438309176654013440310997890979505393941818025378335382331571612639902763248635428837123124976117230890067700584605092497214358378757125016142326069160846031191379234833957440186369103976518154014161996918458761357373787523406837625172108412048049825319194198757954241761640879983098733694169801157202722352211540041046367026834611815267016711932000569921487747572738058560663516120674623824173900020747072144481688930941941686459685173359047157134700683575008226739728072280259290606139463139122419222242633612701542458433075547171225439681891668047693125402899632852271469601415692270123545280704873216386191033754990522312594788479114619918319488673056047453788164953036921921128040850546753243295645797866303801700675358050428459251679435756437381406287001183622657901233088399063769523451145423423273156319661750158863930611950294346557376208937664147020084120699092692637034320507279620502913597951802080656418904055085567315235585388131471284111615174062122665743008565128539514606860443766303395646558635689141812476388205999836113593964536240922932053911858967528496644411927904712569111670892170135059350935275955749313857793727778530646795327118509477762412415552335552077911774712107190645283335949066237790211559710944370623636288258538398063973177113840490236326077781212468626485242792552474205317582338138955536406321005025269584575384155170949728660170771890698371777987889956768189673658536233330184808673681960479841948405932373108864081079057302771126425159865256134440124268488526827402748497052722330439900886758512500445075512136113055223374693373603463988433268584766083301066045704030106729004889492649081783148656119907758049824373781524068603530081569087961074209043450792895351790523061554289999719158051137441835939671863344773307432293862286536795464607805270806227832041629814546356949933087152001285330665914714908227280902615738830705824200203239242792728433281839499140083690120798168048135757745363490049705310405520882236668088524117902364891138756820595804176526115692177199456958378301349911767878357009436100991819846153247886524826415695969552022886224463875844092847972094204351069601397315596302884674984452418331057190580402965582274865344537316101973591810055097794896973517070023358071092119689425597108411070445028809009044272289398042163113253961499192115611254864456073089202044811969973206638577562919275571128223028767833192620487271983706422217605825284818618361325383573247979393967629198139462386054244004644316363894199325697189007081793046763692611562457821894043248585286288639589728892194245391961798026649833318992017597434538952054667611478418943389796411523055396275527443481991685925378736291931086639590983181435681721852721278337074231576024140874306352651705154278254117227700634738600302340697790685854229791733277179905447895766481762672184132256945119776763744762184770482585482867153986327108024179324671576883289973163194529851019600446053153701526115525204814955453258118998007395695979807500370963082704227414170142800219651991789630401977973866908348566803298338677675823676840985977491385511061052583446625305426411569119746110414231533991195845664589518435100608835555583831042871939610966934923332562697379371877161125621609179621035672736886369934947372898344749258536077876486494148319170432629139550789604395821133301996438699908686741295599512744673840325403947606499670540214252711114183298865964049992837753489172932750397062600783789206820082392432767382117998464059569948425766248504647149802367580638071940975714592812444433716175606251197477428143432192440818695170575607179995946036160706271775129971382607511159444764420058143332129827643193528656618776489822849551336444418948445189002088797224821892159304393771158491170390081105211510072363103357073854818612533664205625310493324856157118241675387305478015933806441210630402041979084154926839322256738175006617857342709742582103453672059088037924185629538683149470400069140886121088592605603105702105950610892812421032725211417247012855272198276047639501370214317953470714032974503339906265031805550471416528314277494983325542020119578267066252765958202276141901486394944897547206259066025356443883716401768701006382083633288734063071717722721732336237127488028384159625498116944640700403372720899729232379114829484715411428530603606368325597204785423689570682287529241274034784551001778266634865382730197441805891020362274683577723092118463262236666819543952929864952430289575336455993211365667164371889611511951516511569261182028874771903325599166075892465592333721118907568671779156748882785506374700442856139782776301231642716697827177721681261264136443119503404026189472674821284083753464703256518656602160493468667185386913502947637327051524479281028387417805087086315480153138001501110299311046630796247069674427597027940154708495121126962592275321067623355347075634519431825537899314264419958616091415321426943202176550464824584552660087336486333179099897634807592754662193993984833159540297199301928576262203696152749828466735898146189859371404087749649873717481583939762150521727673954908556635903970356290688641200759243077888639717458137748050899787415481812476651211104999387809377191226397594945692368271543632296309695283870566502185772010600649181044583121471720695670691946957457346290408018943974941434533326994233150139417573413137930657848637946396795205629232363912696361961909184785446901160928310824154970723511943689038041949983426685175702028584812977866169479148420173672052310851685904246038143322012134050501653712715140578945286295115169230406886613171857162888720284480992714492461533771298798089364428620952957957766326067876769783233281093018404924366328016574650028387173504590688661906439766408339394547848950817510110334949394746091123377788732507773436382515432800251388314845543419323901203638131730616700550118446966203306847662519708386507302219687610324034830976548095099556409979493165656946543721837965062581354701168136115382610448638812162134062576070097639306718767333225849500172816177691825476624226716373444062363136294173471175428059105290413034269697345435643895446960799300871384344756280589858491961651771741675357442462018914675362884975303372371513335441200314085136496644474814211787928156487380895282448996872876467164820059886499270597193839979451041839590792843478187751783046278710668950924258660985579736514723471904959646162409740355041857423295728086490531766791871660911736506300571785685581005142235471837284149013406910098052646792792947433814917315880319911172297915118249584664652300827660316533280497527977067340159660376042812685195696811844489965433599091561257065021665577967861440192902717346058717684891356010988714122638496009492257671004756774894867497797912339162824920886130136660557212090551062964504182838920896128724981914217031631450383828464957314319150347532815474296707946626056197532824290055671081137552777614139896608906092484212649675155787894439855965348438148195876020150921367672318512926392709654577831056507045277477188304351759898610907615376674934730311567675115170365074543289672201583747142927371070564970460907992000571201315902189778383502014610415676090650248606459250707461161109078022955619596088221748841302734424264729614377196214102773084178873232439479895439216937642524316847881869038425252194539895852725462215244560418046092407542710680548455217454648264960012841811017366636046957606383619515852761552595169007734255560578933222597815060589018265682503474898325113787048863352767269608565406168374189589914452327037550975552281579601707864814854153790794067599781152948849327874711468823469933880098419270636696938740988240153818769644638186673049767468764854291951877129453853358866324735869491090358007108513479795247477991367754245388415652546423052396129652109944847532294030109074156576712432447555144206947174809226876601611521984730183387807704526863608088764183118432958257667858446198725667508834959097336164074024686556983723626151356715411269755867981673037426827013819648010869986681396093320145344702056953467140885739349626087281878960804244713681985436093263982863606166288608989121829169391486054099947305002423952868316777896704232100289479814730605509135260344859066477246101997622261716452764098349748979795132573527365700828269911796483508884899290056116446378405584789805503976088198245644096273001341243448673981191206390023317125147989025166098179932762917162687776428863148720298294093917121182196755599764536969011208180212750450937491705522393797875031725915281851852147821509583909864098507725921367336675123862086701117816915069574714519632383188781916880446198129263132029328134159081291451478896898203918960392405366108233162300652620885353854027289722437158478639252029092057988325439963236156384089379447025036696385497880404374984828344832049053257762255446859545349429809625576367946045205515633959001601348377803542378902432736724492143349431875250340167172582314121709983457416791553695294258543024382239694333234889955864076595848025559098623335817441460774969481783551383115215068417606091919090643820926853263539211291168302590521556008034780611753960541066473414687885082836540801904444428504696903243791936526253479497998584829434797409076789451700855265787479543554213844494323553569448035433859539061138612088159163799562568821127664544758820734025586076394759823724557802851804851058525040195679968590401818391188580701517306780755951963858362943130909006149777532823179639891243567155930541285274952848335232458154428423239363657049219237805642879781517988078946256840156819659902017797029419588738506320328558650637275532981278376640841570975927915543744736337456372121851534979910508467221603580104606321623932326143402135515622901001260870972769508933128083308151506134407584552405383212378589977656630536901841763135600954181800267178262891540213189517077689921113760252876839494135593714075015969835495576093017469068162198000477289998420962613126321829645382280425082400519248076211163041713462229076622003763478445709212554773520217938765310065546437952721679267540725542977481017881997262794635669794186004579151713336913126642581950515813445705721420967685984200211617332522000055409390000017572663922620306094915126869455769284686612760580334290157174606379091081942933244198741972811920348707378470547386868006239881439273080551577622404326156426033976366442737748637235105428456024804517882086293923949071695823041831287075671055104063606864125777984526879913207505015152434399665001042330962321361137133248117711597050300495228397745460681962539480942479179339571293953996957319545049635251249482951938030901069057893018641099604466230865989962507530960148479406298122175400828295407468656849541971196003634227176012683079418927405479380578864388621766040620859702700296332739907213968058728167309576579675785850436797879915750975317221788449941980052463453103425113017504788449058398518584703023620160702000736426620936917136907289201965025151065284240119095098485962644264488947719988279890631788126457712217318494887370579517507232925714876942250798534788134335900506081449510903857062126319588216065680788839492418424768713858623371063591744443514451590420724403041358423700157873173039679392418763701307510394696479569125553973847935849605464925649577398966720109479975078732796695904035375447145406323615287551406369146760619736072293069010772663970715550690244902818551497185909564134499393674094746046564729145106259158614980520391819572006695739534881931396595045475108683406449013257429602474018532598022153624734780295865068400248336064401617638854535017666314467515579272028693657853321142787493496393109416056319197623181714536341706950514764307572399953749404298420563502389855498425254571895211328057542426543600010070550890750145240172603430999100905004287989219332246413376368468281498837792736727089265254135314040268222160774989706083023846099007905330641457659839137133596622319127204521353355760462125236264484549486419072633485797804473310889174024016869533801731164156568162368016932284643566245473143234321240075225113574566015913724433705832941554280182894635097961621477664577176659084427048376052246661429664981752653534209754594475230444304368790809541840360580900131787455281897405948221984183474324404995223051491766823929177730251811105810948838025464230250316399946697622128700441983657032043476017073377298122952356120562114726218259011339362900098311257243174814542167133352840327927977068209911722616545593901995626675342509352307886258734083427825579142481391295181247537415672238508761885771431194276830052545944761388629887133129398251216911639382618606480164911804456401422825540184211866592932894955550307535564885557621459749307008183530520264378324102157598085989560438536987613970278083585785398844096173024298418286756330002735010604833245474301965295574892594075364282365037199701895504488263244426826364846285765892561557741230296013819186066554562423746168477904323338880919030915556465163442570615588776733230032945494831701687385071048759728897718158626780374274212906923382524582567178737786665023717054812194446878803817320643572236662779143741762715681706822341863693112178069095270114884396775979842708136712863659500448447273563448659399262563551679207720077790673904750938985386664690461315334454040847132419503452944983352587267438133292248279856924785466270751980827826004172885065078390430394900995400562950358067676415692237636654575075633443260786579716349954278040826843694843378684779205228444722465466462797031996854466724238899234007102093088293177098695429685749679496561302483843612601855817432632684608399806376153339931767970428361943419544249514294295743005309852434309141358827040232643322260730619111393324724630481080146816895502225310457678870783890906712367945919921943107893396788411008945904799398926409233691545675810811982762515415396692573530039190932353938928147215584661206608055482941454563457324468385506591013027437196065787644401806168690704801489659271478860924518314771243651594272131491185197311724653720815592384788969977161309525322064203657246571367922225906565159388215617510533589925203255501020606470841036887237124063125935032912910682699905676950354619862171785686447480560250623993255405340257987265927676806395281735114055753888958485679517216440180737411297172591214232379000597480223334923469667811148203501952260952211395561764400862736297234973761872073879595150354205718313134427168430136329553060414583160428681556264523853246426488575532358594679999252844748932858506404718431346194583225280245924174139083826106797620880189322905572271558447525479092486842631313850548528076783948076910180458388690355773514681955466980576833633830311783967894362617299604516870311221059980657050477993233794729611580462340744575587887018467766429275053242629172987140297836343519114427873588268307307109806591193367461930215912818352406116887242283822371958446191562596290492399799132037450089169483455204930881563095844037874931959192981083005657208768459269286465620531420734205881707721287462117405226676141419965454444020353938329726006532836365987175092153772526202121352034395889495534747250022369455647076701902927026885136534956750079956591193470068989754190077987832210869622420513122201523495634291826686896654157607505654232841571109732274683146406821815733770606042383368000396168784485820842760204318845571164457143858478484170469325389097181493849822183847143480382993192878832526338146314066945087884497885116922746097601223523967680430973117971598299208324235481582238935430416546437278757024863376486798353844090465396561394189960021739609082782858750360779890276190877351275096958573964867075222224341478822299389976773862049331126819121175101711324294456774060014762946433084017791772715646240549417131061826680263926798217313994356502203577499991857628823351869408733580468013208327837939691391150355457296289521759690939103772448613397452594059670190684617029309936772620953615158526107569578757997564712061048896887558462443817875692244081998767091906205987768090526709131555815104701671640611239825192843704452061224417996778438928906062188986069936936117077549197768153969864912430858570490562665875582746181836347656298892889504403299982832025023714015279156594524947065668066659520825482762821613144787522648215007669237216450896666790644236939976176115629190290490099882313356783861839551551272609149197621164073652286622146581443364996053692139732304656323532632165342834135947188397377384437148847547395060069511773342795274555664595110022424486946964840371898441393700398362877054711991306693165504594071503072333714858158304797302765780910356845315702479322204807364231220494775001205506500514654074594685395863782897134650151808536971947995565338690195387963290243769055235855265493557402435111973551049635828708597114472844390136319328781997695526639065945083414704164819731197386827705879846706304024838029169818174892096719321125067739966755655754990655675452625758239100148860475933885916086666155388022515438600821553563284052057427032788469259745402448868223753245635593847567777927870646029608373988929797567717303376481226189520085284968699566566890410830001159373322003421955043005016681470930379749764106418011080309278062343213591514590599460936562348343958726997680155329126359893132424101905217826510647676952717726801663667465172800411107960640524312571613353113737407365114900383500322318562950550095243969247426655416609014552425683271644165366337935561988537229452988041521236148796984125663590184530814133478577609122831812832479807961007126345296817739069689380907393297988038993832429600881148289230102912306616364232993763607185372671412588973857641585215626585192676417515931100630267649353482293284559026964966448765833328010441912098168055442472576611369463070183772955481388640734880852249574537525907038587397981020965829492170029256963782936873122217543661728324689726439154247281121405086008362721396807221595737653116705566370179822284080802622927112477745067190468021225668765130060715487728607032036899127382203968712554316058529834929276309314870750171050489486365089375999640448243743892676477071117527733849913758939996453549486651234422291937160050116810524226157231884974602713361741572715548274390490054935297203610899701522600074914862958196772508049631185852345370343991403409723708002775836709968125572256259836659542089783448008218428672999115529552854111379505397405304776564651630735238658359774018486800839803758386195938115005508437469410017252834361085019169513240760440477232036531173093741059623124929796429324260008367864381406966391099389084887188232555416083237064986578810820257621804657536417888728430544481710714560731416190472968843939320843776803621198947188433882143249015080169262635938818227834211361788830706706069092780127560599087006520743679215451466104720243688280234609167866530920381958131041796579288144600419107095740773675872851303940899528212464582267373489310767509616262797950639920273972236912203785876451869469605301574557415475422607086629750526764262856672401970216762247407930706829328941482550832598086356927132140066858273226385385193163204524173451459758238175491008552123375887605276279500691739736542275640521569320903982181325777332244443712870813778838507377224189405639144965736752860001639030378217384243069659352472645892669515266151209333693343000026716301080543764255351987237820825862000716762334243574263937084473084381740103501864154305818011207908804385264147248469169881725555157830852191953754633733205171328596270409734761181333614016819575665500526941079906144489307186306241481109873533537559375473686098718799834263015038907276154083405853682741179332236178753912309616821744805296142544404450162424560758518307351228360756017846190157636686274460555656590336591881841549299594773984450035309406516744798188512781869365129342993444718436899996939483518699635001588985256524798736004815375462084528506759647049658762983808546091922320964882707037525963947635858230739965523461726716235304474169439573736533939007480432957115109160230361738406236859145236985542837747814837349261952265877899721010527869924662510554912852275305059830856127126652046294720647526743161856802752443191531882317313698586113488850092594155732458291640797576974057967864893990509033095948369511581665194722152573399942647306433186682864955779008471034423168641976996663436184959637015801316274310531891633918807232921564198729215878465233982309331726629670186197307260123098161834115899637239078281505194859187927844192228057794660051022427635942306756902205887343165278111590065489489786959237248598560166541857018811703004466329142555819482461039855436255428386955704694641730684157789206496635087830159974565766167707321630721840279072170929271505419831591134762834731920518137719686055849298442997763956399520274828161901794632640331931464448999854591811029559354429784136030554227450373770136384541710420557680184358023716633145424724516522112603698453346575438697245775626082184524655222148561081914844325179024628975634590148858678857075295772005385876013096075238975590813873410155966684849310465821046763889295897301273818791323575208434030933795080100407647352081970253336138283727227496205490913453521573364325616298287780132158372506549769298812285647714995991787038940782848081484735729592612617173045652742540409539080427020199840574910417681689792790638939363621836711879637055787518430480930526763222229224179297601970320268524075210606638810661824137670694685435770846951512932345601915259203826546868700933989845293056617349059614227521710631242257767888854533052798468559350286961962066794159554253315201402283576543253350432214581650910736751242674560437806122461384312801819802488686380410323611027522245793690993268157442681230092436724116694195134292868142852888008432580672669669671223976535767689942520377487924621813687558118919716847577038924304701226014433124991922256161266845265527050156948553058004133876661619997968402411151303398779453026567064429737486235384007430294657886810498214602141139218449735138977539479711549865437579798403563585050128843261569929009109223158997428377681742579248899053057060251063844631488138016536400726165394663649371275047334348849381184331848938828922136137240195231099346880663280371179631810002931383883444078340620705590028109384937702639659345235396446627889880767537748926493583711286715845642449854710509965739667618924751739733518521171755036704144851149582432839722293260596758115102562619615224636722975301511664907140619473952789113176230904802227724804355518980325145863931111205495425336364071522044249807154678290626758059537090039475962080129747098204373469447076009425241150120851470080001506963268267715929082865460854094291176050481629842674898324349135258482931776412596174357155295431583583103005795797108887466378075641032556393604881357422993317292414025787664951560922734159942318240909562244760300225842213186644118581655014102544736631532528325983795928254703425687852387382203737683413519287540248921052582310383685708093811738762795419413795121510718907657741954204991244203279794755150086874256346486357924258894655584284352470606942082433067689565718282313914473811938612528342609323535800611680546135031823671259995050871696534826131332334481034190185401566756484042119801695269534779267388668745769377449836888526455887036032029408890915412936061493980155708725638773291179777950768701234576984372759386572619426418231869301533150228454267600860111472023735334147916834660226333588212310891030324501071796321841993525922755177197313592209210371090518215238073999643593118183868620425985074997102688846921556557150870463809213826179375619494800053605052005320908674468705072733470669137833908864761484541526832209533272007437878345402665699643991741643725683692748698582768396785876957603635474799645886713890555055584146707384990815562833337665017399614589598437928853757213624256639891996812885854814515432022218717132757039537740534921488372617479338417123763995163296883618740715024336454223647857751558408623780099700617761750430838399512670158457667829228139425706024413483889911657011857760659668166975548752288288472385987192449546280419728614993411131126749307278592228475322567544671923285186310359491722022958452236413809093370192404931973832326282767093115621345768715124364839263280937796434448903848919407997333612674124091009197052502436854131867361181038930323659817441626137008344694526406743981111696911265368247673443034055739434194335887105855386398824696685336515980260733519632938474914552001176845546750920767756289551374822675075006288625751396920859868664103667771783056172604399524015776586194288695033110785925625499229539066075966154375716717406857152739489315242180308324555228369300717581186891628403902774433374758007223610757409004962865256290193826212240366605677854222360920366811087457352312409212033401924944005306276703577803830020959817820847012309859012318689298500253702085989082004268926422755171201344024146825366336161296831924820341876342640123332547178047235990871298890119137309211368461217974204929430201632839162061691990054872471582143030954519163241563044507664502062384817428888969769004709817182680502521552287950429070897756423332658806270115298648404632991446503515031598877781364598825723795878253679463656534218410462927328149240954225217886519517787429862220090880847653110852909246362453176643890832046833743408393665613461186155875049493018963343014900041110180669106107093258762747812679481587367571361163299924529260321028920133124291487497390551489746488437473051211017293455595566246210131981112874377340111977990049899010770939109935009788408336030761442129728643683509195924935379070379854123586294424421598515213078773805654965483575131177693987522645856071897874320850795206237696204381003669133641506206644135731938843426773844386411727709433132662523374387739829479684393181412131089158075297708214153270695149939100783292488273431597625782778481034609034116427465314448422580526625474206610932680439033416066909764437778645860414402002339457786465667906875969373984045747081896482510481161188710685652507253721073791545170512922403687911602634471901872501018954240997859651579491050900216672065157776293826620238039022367511227432757818441217825384084505721795228028406599807856991883140578520073447039430706450099558592557023444285553561113800963794345591848847231301076148527709106189346652655454584752098859042541633923589206554462089675831811926784621183018535762128161607431285007901265381548821066060845813335784067549476702330042405602860094043839166952508819823120002390050235733920171290915205364397115951271000678020986878632996779570030295483097549631104337567277563405812886764597540578686729682515023374816979862025739631419948345887799032885814321976784612006721743967355406388871295179224109231595388558772514749843969947943225041060937444005038676832068356664688173236628938620148421906088284586836417579005817847383669014786983135443508532381259246448813625616202097606463884446536967981266321180036532120122296542107420058837019044336507757772930439038180282384365900486919444800908035629061595965347941276836573057798073810749640956906881980327246885155814627139079218634472422309603513731922000695764077589336078601708934755666876269760250853730171735550660063546203638141706343987438317434837014466292241157226239681396653181450686265583116412887652545437060480063265280684834295594592437551284298403545819378682925808981233149992130997553249234208575005107614145439084396891048412542615565677703952759404186277024692806725667920501880252722453488168241787358081324384287679738401462907409303998193978128881890608873061455629792275424033502266926405311426095485512884437647359039182110941677014584461250361507802311477706460760109032781431878140577193572405866031131442056946640201379225899365737811201269756403220842463691331361882253906634697553854025738957066537614853947244992497792822579398389352072906853795204731660454714243847844344384088959862785223726465013869107335979189056892391443641560031716020597540456226734323900561326377793595318642851564523208169378680448754521626460874597151101379837126280703017375258257824362928504635096422229059813643503497309341408038260921188319299451811771127306015229327412384281114338258742297183883362133965738742082282938950510258351085747357876268438822843185397270620941981647577832864223780470972286413529140418054130611245875342204894834918480254898234490637623634005154472156746928111545720026369088522697313759614809352345405332407655412435601558079381615526942253302972757298981745711681569674729580201354596106184294044039554702887009587245413506725160138929965942185560265111751085601998767240875288054316808454092386365482245854055062963128667910324062747995777873733440265442854865232436651615535533867185437696679247488742957898568127701170398551481270343680843903578596180741274302245117611900983858598173556896375387052728903316078354868884278251241274871369248191757704703809933639663114799568928979255080148529072843307222584266114695452089391150478413226211863801633286609912703889781917972249866679994098398644573450711684264586211043848747483159016822960166546017364416621053027676170711847888158349198882056804467469212524193635625391832428595556300776371616898907252658644829691066449450006558490143209243786534056293615405413358515344982583991498946048445719782185254112163334906275557390451529631765144629346382018598256366246797299189063747860441504771550075661660709226934211390999767593641083765034788593611610523277716349307709524210327369926857195852710953213921450736700303081098138120089290924456404425920824518373935626354228117895933199870463086073196109685972427718057619666052704086936314700794041900640425823214749133348441303648839610978174470722278794734881032307288552972695325038280491832758498861899960388649917349658764811879224096117943494484354034949350776345928095543012753671545504358519506189045331656299851932716938362774424333189746260006134800302596002532250129555087610600747328296666680980049057535998181989759010025616402958246012387334061987267686342256301800187627245946553784197284574220597940670352638993215120493112828427829813141497242301417907014949762715005557765957917133910588323106238933791123479487521252825267433318994024887260608430459062751784642655886862269933049365408198444805283081453228372520191653062784577576931890776777300098746253758962217339671245130820293129377826775846932498035003435148132164916550681161941298527286240790034864277629186586226354673226992887197192621903829261563304759937774580489958173819397529107063936455975115869093264010283830952636144428545752365118943459741055702371918159941482918210298381017538993328736127467896743508349006298329323073013259066327907873399649120737893066372858933299702180778035498185729113153825817747766891011427003888692261267332534526182670198484466547323627368584350068406549538099189183202256135265911061158142245960323427669662604327167797811640557005751045715704208503553411183417924896303410011514658506539753084319275354463728979363016637112135206717272379572724735519549496006764726108589102916801969781092078654248228065013135106943265938779907908277749459955696931610053605081199135709577368740892211848341681980134543372319047048621736708648882454469164715230456574144458390471172507826706844782790594549445440984643649295271363157669993671340596697831988482521539196193293774672950937495813699770254744769590732315749772938527934166924442785416855474066878575750841428895835684736578652588841012278370645367694025003051449760063571557721469599065304675880169090152227078393412099700443933718682799844628373442116741920208094099832421702505093130675445202420846664996492495707115032920899093936126368970835816204578377405093415262693053661432968947378229810210157628850977264821275537872091143080374964953670934441749334850909706923785377511321400498823655158275634389352097705925825165164383003314382092420762322207442408414758799992536762911861508630698846819980134932040657789882770875646680478466273027043387518392796317449172208437099829317054036106517118343023316580890766843549887193879694812472720103421383053643588542651913914825327928278980038464045177542856089242567936677041301794142845510493354132001097476527778276674066718179134900093351362303924817132857519810543512211213901655645583019619485304930356984818556239228796006866237996959481760974537114213789120110354116452423281131433748935225693904875712375279678692685640821517745194708471094420630110396475399786354375684455757056680124832529958708144964306535890733054986573428348845771204154280926387032438724765298710996615455565595375494720511805645406635189034196421309857625107303141639866798339659156086170925269903326791581841874204181025743730403671943319049198239419322037341893788512328696217144240077872933375916176363219969666599129626457741187257195948639691339930901613603611511547004703678184895122018116735664996135488721485260175365935157543058165166918940159146298889186789076741946197559619631922455045362870143188386955856251262839270533390402810738883921081177371242080971905902747696992408090999709642522924854113205659854068047623179372172487124218707106322430146153085536448436612584238857545705197594757463702522099615344212954292473048984357708566417408457447137734153142996018241832311646878204264993790476615979986804875648663559871033797921591379630608839539678920168202176058811988399042982388935168354079063112059435581696122421179406023335278194605579017773985017845486126204767169508264581519974694677110557984035817162099937218480263594041363380973018120537197151629220606427273918755770328183324522254182317277702694751606537085321556072135957057931776940302075905040101781068524069382791595609847589909951515465053617726801645072172463702035026128914055869165520909498118689281937326903698168731937579038011856142765048642876855941883762635589334812242321608855498297114434081390227868945743399880800234874297261152545883523342433978802526146165993657265768588397858038259725069264048456808722380103358647214010794159756077479239976646320400280287924250674255559636193977218490236865985998618147025175067801116783320306870458851530401020628848427370018082332623550990827464312821524254473465964416183557752835144786800102638585547566592177438444104794118158759612942412195769058097407153940381516039230248423882910600208835759909447038574585225030994019515158806714725766055113867589729070571125317034055397682562438775536336366018678312291933195578207215520524921187006821722094142421011243878099372377730782009395862746996212966444251268095512565913764548019754005320415815604838600905304971056308085526464424688891130779372096479517187887613366747513647407880464020298240838324850033018612552989565517464979873037042098881124457911656778155279743550880966851333734197857447800115932813478749417585539593586044073539679816474411829706122615549425690842037527097645104973246764939519710704199691397490134699607218441817583005912996926630238090502479622020027852766715095685179749379523449208117458934169374853685066354667253768233210469760751749002373784638069447110960991361088407311836720937772297446912383006842357509222849413019793109345182203628155062431244911767533884001319271613194335684250029162814309535120668246596991233596637642717166111670352792928414101687204114326318359365399078763627261242826230525874376926555288933969955141931941023823995410068835007907603119177529385874916592490646433293748002345399461793547890395610174751330382937190118779588789246498858440619479271917190105935920844783229095806407854591690367856291978641975041599976343556459539847648704844593400449274229849197981227088947395068622466605094603260096335645024506056026084747525191344211000162079533584774676490292605013303159729150771316204355899564687085314898210907696213895915029078187885212187532440150816486845801560432303969820103606861193620316648544500953044036178135155201321171672806798592294416906900465828095495879092549446932650339672647140492887303601714684835612060903140009182109724112622162764452343022893844688123763237196534281255691362087056360134804645351329457857316974193975324279721767407756312491791668995617845725214887591641389756800487376286293433925430375405761256970127788706773205257839070846330323910929893489723346397092275582119271436857585924550469598592441961629606849227987449978224284327753653961284398642511177223288616166314628289724906970405825515588624589834078988132719005891524436428759763834010379431542119758049222003081328172704291259217992675093877802511193053706032095163313045120551829585243017703170702748416146097529409120728741741947000366185793799484592232819495190006014321148940345613953631944695786705670680751841460777916533431059579482796572062329997147560317669289393800092409733365485272378449756746347524567544239301562886602687694027724949767221504081016895081356694579127030444662958925797110480240298133827483953703568690555633576381416837725203096974498036404638586965571516779738783797277688089991195073346288036174247206422014823113015023605015992757761356309315713670056641659958908306799428230678115301548276324756621781377280664537309117512107622533136161085588841428231689691492463758993802027940950973806829392296432846499386894532099643133389330024132377110709432502348569273758685565958563398249174289962248397197609756058845954020007547777333721155090124655867239163119426319553236541455926508874246669416917666984798150296326522982977585743206260163848778410372759732167095325571524313217306472229952914595641661799742447292983547268541763916090082489114327485936204151546058105624672472981993358673421121835891698156167882415541858267138665073996369784748291231276262560378407176509628461891838231012174344455502426140401047150515279916996856428387768441206076052732764296550147273624116443628820571561999049436102101448223271349703404258275734812454026457981146348219664104119238194033754652312410441219838147723301500395866141623967459198985154768176441446066911349113489175090835344780832193996188793540190130316363149932516009308565960044497531249095122477071391843731629554803259495129889557264399314353001626550502537026479360782973134774221695723071031416510401117780644905573064675448477959485214786347989757710688704961996228890123498879053127452697684402620309476126941116516809601379396708338113713146293936687749770234354416169612583631833258030405226044604204110171752007994071236947862839916392131750311463209564963550295366951255940397482148251054147585990645143767921260646183771610137787257046314456863959017894313203760074560276674465286420962415861457100409124554130715854996033861278571859278998646850011066955315357292815479364307891980788751801395820474214328993175384652158257874969458330875901083460444180786598060501157877229500159412220385242103223145944234495193239178412903994508593525702599587028069202549294983240297187523165324439446798981633152491617460231192414720904626086546292208976662702021800927701660497753540636510146549347871359270491612071719776794586581896033326113166849928721644442383602085253959064706435847299451739431180784896298492107118764015064594205507893625260161913021382289272571784420820426680097118135137112663392166124082103240545370825470956868213335975952423512800001022208934212989447612038055073531614311357893044564674960102148488060763179102614853570258980949308637307332238091236467934111329746498086095033384684334146556086917414587264781038976889381559717932852886972113493139089414621589311891002097547662251736980724539149626616289009621040072406802449247682290558061086310933517106444598847398244712195840675922840614362146889425026386758343159602827442993199143645385985194939321529557587834323128757133387928774809704617001660904479010668176895431016864401560429539224070460075293754968872621506334768171690290718338284384983851796020365641122352669041036169331680085326959721633389027772541437671830550514239165313356652751557353879482418932507149301010346223066056009285733850135851537905301281357918222107731317447662218257273733432975650664054196570652760325534166605455581869624845139695725399490920927342886260087526320594202183738370298294422753495915385704010350515138107456571118915022593488095652291760102952538208165054326417966972329909620533236971873210855034060351395039332645512978154791359545430464215689268301952917392025001423775905599435260367564865248697838655134472483052878965448129632604295463208641579788601898678976622978013550594621032334947031885991846145021553155453089923873538964405543479330263625386674735671784688803178764406730586977870326068806030976387884779263636649082417263268956221162066799719383452818669214397201446966818236290218408201560896556792793161478895877898686492802112812672655310381485257705739618911530404934613386120189673579686906459245882763231865722684438592575990250690917630762038450593570932194789340499699857075513415546694458205582888065292136468142884628698390279847292540932543659737461908756552432041010001692615341011586518557414785110622832578166017867352736856363898335151563455227532361137015168767024154710628235298641773015160918022785745548493738498927287758507979081970283469905099890100513803297097737975157999098051246496616962006190366153001690593158526138670401339160136778315135827160052077804277310460692339890227133701422734554496206762917204236325610187127231489292711129529963869614716370326582361223654411399034768806490151958060622335298572911765187958131280363920598187714842411009488722413180250835893378008574325489089604810598302714866970893713000264797366900584632511538967495408345639844787471515611742794818632218033804571109352891522070293090231839418502441654101381982356593157514804711501242099858591143539759749976503399074671261052794920319550620551437480499864489094795225467222216707373024334741329849839133916690005979358545085370910794180992518496797626125425353875737564820067938121962894319997855414582419872137189493012801562527264475368490161024562294789333542989166646809039274039593760811154870914761634421988829023672011218691770459078650828921393295906424674373995972068233009017479987109841190218247692476903082159318583261647015124951812953406239518683236360224860370299927917419106805750370579887150534055853290783683736617180578991747573798114707364060899675496392311854783389983592171276390901033785634647869817672119793925327360963559953337326660159420829173505866640571688974397263019636283689157015162252389478481653570487200213496730518700429359593049974340543998958007776134204708240111192833263426853201140097116590880499067236171085211236874217383417323527899592511143218823323764863538266559016228103295015991383619039319232266027252544625255665201232201430845083517135999487358819845898463325919112539785352421907433911153690591394192671620645050767354914254750933411624055555701255596782261794899535675445146874593401161982618695724384750974538720954212789296274403858992154332228549429190641083991643883679363825461926127004030893852097057929773284877207295209027676652589081469567336805597035310216233042352403037832605940920461272166643019579361194371910353596253240963151763344369823863694808074743585069249145962423879410925125243512083955228723792912785443856787706919374134735666671697689844575372508556159388792755442138384525000914847976079942320501671214767651192561096889931283568918203163872580647976170033265388556869238318086450413472065517101947873338437619807711980406587102644723078104133645861303846204868809530194629558785496582474437816801720616138467100396644377077973836825613582577310580974726119451496476185499555563260456613016107805205017816710607869823815862173805033973110928029483943435222492207098712608243779851923770139643482265601304834324731701622453030727760622273413518767356759660455995836738369783280561218388773502465549423324024742543540241929010761699755963830634930382540714372749538276688440477579138065276567781981301955168853908909610384141160775596922882804825290291443602518280716466266959373288932699676803290236164052480296801384656119852788031287352481387363217682757373103897555893641541449630394306624689632636958676743214631990274954141042060057573102171130494058376503502925463268737354573092730929727576924567807590271842957454037320983624994353196360756677815014029935766026155435663311294180832928358262741035363810309226649129640119974639273745182482684586957990375480836817641394867895278389071649072493982117892922385891179933412286733621187670178247793564592038488061115380800190404054846846743316538386522195114592803402525900544738264465462731415391537771389574479444403284163665928463514028977904937522079412594103783302276983819095853224969498491280007656347236853579028776406672578213221592044043953697139696035351820595291549158252437410046071998763028255475677030880645835338159481075357268134963678328739940328101832015624952168176832642722936800512592089373786510274466534558501725556528287342479750427370171777602874973594506018829994127301117092175523804741809825598375480492583252781775628919444221763856815107001778966699218595163776921177161159826642261141783131921243592611556624623757256318947415025580933728072669514287225255830388035935942787381865751603079828277613332718702296575095202802661797109026353432212423049098537752472186352257600747426411498798268610423000298860269851004291242960136760721012573498045386032545573897368255466171483818885709456077276088976282866420929034990694463459924567867466366174773812039743018815876605685632451388471542535683636989295368010294588535409263788834588226558503420421293312255033873205379413163683697363161345478543220482047255842700849533009166375499423274848676690219779240339455731691591633169130494167907342594248096772053673566353117659718224653699314724320594954009229554183637059353451346755658473362292136373042015584011799342097287214347129123997008205457878480876346935392990820582268093592832490862649848621504736947677559291285218130224668374134696666391317323308900744273254098651835417680491882953598091190516895897124641394243500270956050311392808095734035061928646871579604451500187397720228808411796555319004252449163160084109407035276620148545365718435852312553497631219936818035118882111781286137786339236032933999090002148655076335213861603505413456333537293093231653638558988009957970650287234214901187346801642041313947457253309612320073994318758175162750455168400088031669839428853738717503557890686565469723657635874323512870050212241847429925095084127021744026114948171549774430219986328402740661826825678294185197404784142764163157240749002059514282670623851080521264209676398270994740751499161452381321603021431517762576343493549706131679961566326044760797791560980452307005265385987668796548323014527014748099890452038055493817550442114281079696214138891958871864722647001965207747712847248475120413778987188885109765044385809052306525505177166669664056293545866319023143307128140931168426127392428896185653933050396028473184026094039896096275398447319098095394771418366869089934171573645547627919990405945978620755429298771052618110825180625197123463627066293137551998393432300334214818739456112949697819745675642686599985176165166412282821378394157326577954063171724109840280327684042626998026072397158724213961316029278011425490242190150402576856227497836738149455689397356736833033407933057400298477172900295683085955400234966937830411923249571834459167341226196203795091870638489484644906187789686460402318766725802143358929937246405563441616624682259278867991794450014086687035346703635400108062096570733698899500612337787258921456873402763620894111223450705689390272953700995842750209188347506700571293881647348892822876986950236243732150130287523100997743168640770675264002882470439668762013013154157696950615133354613556651209689716430716885500245551254185761490284614986055619521101066241611378203475301261012081979833229956808080057903074593162950743926459141028436293786645628604640607760994832996473306461204373684599020651418924066381031561198718735323577302890329432443738040720682815754036896136504267310803273118680067507306600699109554449966315681604438048071439623447009019702865572035314343364333392238701808635444269785863272202775203924627650393734466490882172201677858557128597833239207027293491514589790428072935701301661203083817478722954710580236537716244483085922294885255324207205881280527664954884615629610936091321300978300919026921027075991768710019358438536663499921905915052170502885165850846929037271419240332641728299852006571467702848789847095885822693034122383645692194289355507165190395267203897343736054688271538123733775195964390269690056264724545859657895532115018821793693448654704085766737193703278951262177733637822248881660865012108115294635313255801267397726815925858687650132928800712809939410445707644811334844303296287323134742390024684564015351925480315778502478220774899178939729872595709232677777706388367831198472310141768763634990256165900140596347463168450373933589011976801695664332084828064074352511059726027937912727244078301410751033816015792813775988970516146732664960196725035295125698375565853624752280318387231723593689812665040687362535142894245298776211004852563021409387079426655715213943543710919573403809622888648337493363169887330763775217513229295746962657574186496540149861850057876778846689223617142826054217090276645974923122942922654311549827548490831389177600483557496361997703555390557748299495740270807013894862548621293833545895067283178968741114692700348968213225373006457757060603222580341863265200856111911412685229455015654812327756642817001565607761125249520242187508315960388258336477906144115270984020112944678778396154356434261514270056071569876359522600019290315363602845478624382613729932648610457946356413043360974264332980388705891577973507449574410934066675402038969458235133722389958378548117387730696489562979499967333415446796735743491758450510676874627850984469145839695372468539361625783977082598989027058316177935525218124415194250015843727112397977917796720605350504689439814022240522228681850222985593958347877310820171465644657697882582605096473970080352674837063581851796789584772998262327586409779130985491848623431360866884171667674244193908475910502258596072324002036307225994876869703121446840450710441964381484626067287989406470489240313542689619955337695379344693694948250198948497470843778116300761404708708230824038194389813748468038484099444785470691463800915954937340755339628201963222657966431921246833497764478819401636874363485346346361280440577795599772768079672913043458231172544558847190053611080121506527082162064446473837376275289680222210726888056331471861336100182275119535214785017036809052655386917805243784159070499915674565917239854279931485577378992725470623561200662807447349718129667184160671188731453796230570388440083502190942820772574387322576625673308656314858251546258463747124749557962077873414316331670682184798238800777773620667350734499246324281170678457374788175835680032417277272043352827527297819981256784962067672102039011375422181228886762730817053138825823076717302831626672384676762173442932505300795191567192649646101139411664743303741738637224120488205182651890449816659394792705266062345777566268674471617400000015133576991199420641273147465124713668913971907250483850616028282264855541567286947930558994901735411729086905848694626268766911456022389471887423697541805920076353451304452744807888307942828672692172414290347625547500994976423472925069360086732386631597100128404664942240536644550603669352656221073197877783774802012488687181905581180479068475340800837101138685352107975390129423271039872751367474658737824934677684459716638884844568945276006230872495021806404014293295348393024549619527977824970311239411877776393860503425369479704800293416983139252595531467200960912152330488458231978169423751786701185621830600418342602804254762411881323376217989598812811348012727869730694840613035279885281738295334409795298466745353885290375379799929990738999435396977667654746211349731600339206784108713702165221447822434652209402945636822943924662764720940278173908104215788567753685469958675121040582010957212129653642975064685026274250922395067884136562620624345118286653508067339574886834280858661748026578955193694201636990486010288424492132361887062332272668174459263596019242880892087414669872635260749452575493693590124268355017836963289742621939483095388071801959516938134763698794659552082125408151542755608235204612606702800361580800923334782796701052393852463381151085221398874916449909599603315475745867784157307474937740937017491593393337055475184104164533915523057814248273837711799566448606392131137312839864204016883332946879144888948741283320286927095263412766574009179833476338841319417183385590390712517570568392397397481127451559277377037373151542194485079866690513599495222210803995420010879735914785581178155843932789875299797739006765527072924710050456712922985231985911655174064775185713218446782654875423185567305230082365048449477617792563619484386648173447864567819030760060092751752373461040113332486266412139063139564017440176532816505815506045859654237058663365634766094107557313505283894163512538725615997139096824234799934980128466601812066779780771854052049571158049438496894294544206193845255335361453025301724607532455592367848150696743553798453966065979638426759261549580650175960272645158592919488195189990087932399205568287532066874400694072361455021163148106455359053748482026731429023288472164237137642651908342007819175706337886033323799927910609619298243080638345333711980623287753138938811078116382758025431593924464849101081235378112729962845657823574378568367939128006922826818297228574625194486975416902498315506515763762516265111256448794090906251162160933793234439766471828724411448425375694951862017774850850408313095560181959159057748124686172721124005371376059309174414342293592964892570009990104604870798703527177227527125094156675308887495256261976088715663449470149192364660539439833524117338704199564619906694120214474056774524996135488551877861680174257401536607772285771973157846050570651512156645127064991410418291054966101643700238321312553438082195026570984784766043653343732937777932798588324351310768078605596809599690003588469270905565452172035308322045577976882173048506579507722358293846397056114598154231455172845682622112817812718117742507634732104856032477270147821683804046600683158977917449362089003026444123702590875663431011267482817405334053177963632879692483302126699266733879961992849082104650502493645349230152663531639516118665143057419557021842660730980969002815731935872722213886913657004636599119333538031601809611978571226061139592431740979657213917418628266200888281504547530065772444970973137319677489531415069434876052111888480719831280399872086656629527920419443098201349985571901775409151458600827501045033739439752395139617339862782147764367843234196966535655476956995156155440796825524291511691391753682097005462699869539049449189981851059902473664877994885593133910942092904835725844753545097924606893134724046675656168333502130892978608796995341002445646817269085782740976449324696254351741604020999827240912517780314197944210282833217118305825931977248158008012744933453806007537994886012224115191026280610641773804567969980965485991470706391825361643960098800146296315118755799805577416151981636064690051021277214149061914183333171851518680899731564604128174549485506141179824855361342626657602201943827846808794327500295728752529807677931356909070625576605227522374339541672532258788143602984045554896609572759164153374873816753827129979636233366976170619931939971496792107782302638422177213182432794019187947532025283767340443830597594224054842483707809289368881773915561844931124349284156456376455997681800056235889438161063496543460141617731286889027608308738669972006508018061906390750157903422929700569476170524088573847716553172855898090352648952361189697877998620308561735436077480417789213804092651741363435723859499533091932284604632281301234066223997478671978303730755656326664160301749302279751641992565245444162172008455000847318830788567291765599657536823052277438707145870975204220691610378228127570103778748204493520940284014429751716892776270303458702609383272355602747565048896407437346232555011106320920177018853594716003941121922609745831748875699424914925071021075106125666285275713977030109255371642425530848416538761693473965028526085980922267086066064424078572875971506647347302964245449183659273782115845993384501189614313834676934102502825134680960121252713790708533048240834212078248117131734517625032644275715375415851979012644293892501697464093323390883634900087995202575338947899071336538543484440314790453801246023450480422587134492354498901597463257088830029164782227062161274924258553105758765231348468540573340732297795186362410177342541609719569345031020017912263431603029158434915723132989251626942199796323800259919185454230928522052531502494779256762975579612130792273089650549117910802665864779992942630348180240690856626490187430186572341396119248991748980252577684111544529645459515558151568815962993301758668742327042752790895077690563902118457170792360176232447339740515860864015565316567118946354882514559375242172617602277549377691977699124520214497822079125060216813595881253601888057767395448479593912345609965268679277244640311558731373410753792504074006347263015267049166376720787563087584666427957611183735886904032260239259235172170933543866377986163156014114637275487257644909642278617384866176388226643394647192472395943946331493770759979824088001265339152436114953665290481642070954090355257615815596572620268341266750041335736680950977301900255109445617127775808315086867706837587342051266421862147698878083561981077254971144300476341767350104729434540924472000640329201771575451666934702738549126171573987054939831832254239132915295841200243038019635318161068403447751547039491135365847985282179150069143690177050469053774176689921080544241634242692896015162916697355559393614435120778381473160374448970733356681508506068622604770833864141651864289969298998918391046907888081635731239542324160947195571697711487858811903319991113046082687503638276701585947304479665609199976106366722912821338764234798278517453010645915527676871646635464664519765594944578304641815197961990596386380078118877204973563324713458592281644878139974145942087928257979374939302859416010654804597616552382231455840902530361794734714870075791770943756775138446769817217753657058287312627540864656337224888292580827945641204156783869084827691674275967303226017185378206292636084815261534053272645117102979952047635955047382844898047849465351983013015242264666585911539889803033068139911734340330063636773862640812877341555268014721907499613778038607539785474821980657366976389463095114818805028293868887134642044205050192264492760793088096795367272831175014359780401856546255443258765955095638683169427902324843571447797329598248978294302807018348913802079181857033308515903723864246953102155693839414165832215379155814810223108437361639110040418396169707589389912518390860015616466066364955005935343393859283854744393974399149851137703272501483063943341459825906882740660753343017414770359332154231110585322741454284067093676447019913150094037224244809679089403704132211613898953767191477925094671240189286763051027091870296637912609977361885859156767283877082042127616313545519261705334081333634173554497751946677581093333976833929166805687666791447543528503947725468872245736125804179499164258344097868696975159512342065629050252692389193916168247972525431772667628858351961265146947767153126180124562683444992038463747422944771692192857834157555036519232062524362823917083627472104808419557970747461692561867248007460827726655488420434923110381383828839699745334069441001475815411577616293289643123972455236640387948360086031414294927443005494605988919641422160330243789909667787826477951546995778513817568857345036382226662790557673696515821643955116265991821176051803846301897084737782367501223943010727508004084187519712577442250569871746918191484126694509279297170209466458401960177560782140733214023979056139477082578026825543948372720573437319914426591753017967234593512098256513664639307200597619572730851762303010734614629333078598043302778123161850234395830371831174587029637283328168608529750720931000435365197909888005946078663796010605821010707126231763618884023899422666219739720619548315216236142765588657023922140726569726215482981388485130272982058635053217457222619281689301880443094606361503141707708826924734390413275480458242020437323500472527171718039211893942648925194021468416676666683284766523852956326203398532226836108176745395938773283581937306358876094087078145931815639060720508043109357471509032664074524235914638972348117210257106536864501878321443116199324218879993980365930765110598225125024713736443475002408250869912761942350006532578835866674551028453141229986352306079462283643860139769759751782652501182321175638840461727504405359049424162263619375167556250896664503967739168893693795102921710309207463119399364944774428374010246252213362567660344985869599868304695149138666695915102561957522888423703947074641021309472675492442628024210867931960889814019211776131372562231846530043390770421208741195283585896424891007480503276247295581676583116262963400829925656686677548842369773576623540939163686649640140668813372254736117092673089096338737312363910843601446785457794857337638828876459502543396030383075220863861251816981040718014793918699962029328790758860987581508981842275606219805519502764043670132590275927771821593264521769442641703496433956291699442103959210571019822387544942055781121728137635917825831917629007766786558415885956342991545013949822424176311138312864004281389972589982297127923002591903373093936791876814666205583030417146251230090608826667059188472774788665818250619014684934909604188134870366813133457908992698589467503588767790661301168870745394864173890138689351905628941091365869609415296383872174387992360354500076963560066834365260384729431176627192213833834839290076334874049614928440521384740171994183562192697204366683199095957124355952542972132106596384862271726605700639189756699078886173619574533422991921923758153924406541998670196641080641016953042680282259848526469042864051579118236559876607525125074006890880543814703272144999077368282584579879749653785329389231177929504624200164272285642484484274780104300489726021305124948709610138198545108694347181880007672256113591190385676955882170208983848828415076537191813030365315660326039354309087653530339610825792634921545128890960365920360981860540913443088537931979236583090902284422381802616715892033170164127519290193619658744476724966160953283108567673108405172437961861764305709130571422152132919391839161470573528242299735326511270222567427794942003268006000422106488096517905813301960175370419374694552679997936997763285184177095326830881033125261255212170920076011318869616250889063014838004109174721281235910595698119049515353439927801126373742227113696143513896456891153876783932481581316210171543706225326807708490858037944379482031748684398834356484904033625375388005116734183714628901706974132909862391957080673895717795049590077333503444045391566229793249914555791548489532247694408077285335045546833633707716992852381932691646664060808317091894369982200102599873967554354863619690349090865902416782556431785418875471821245208594116097992779446277415840202140813258366530432722950384801904161503021604800763967671583304032344671670937848968199955643477766892603305011865928959710530465984497067454315137316574581681528639522738744085741105369972306542314682557947577916102296463468996093127464667757147057006749974874032031407459590269314663431512588017944834807300382071282371399336667064201818003661674033910834634211539438608459950317998373785579048365981945902542993942163102817206651641083910143359704128541770981627271154180794657774582223387384390240603541575572751526587331613067487318719692035309033916385916699172101096332947495984819042470971901663727760621024639941480510381428698329769392933527932207426981069987670636769062538471124494119167552378571335870516182275728131036416866260384996539665235224010785032135897369278265943030899650694738471729939460653849076727883619494547581710306520650092638052874247083684163766365708935660297911991804764649691702917306835234518575822193016058056255023417461958930777629772443364452262835408146867780283776494219891755706210660254903494392867453276513924751355220179608170442019522244587502274172386810982923418480384510080376149626931705572841133224735978888314219183024320679975895083118162586069120058428176047587139507787924580878211017303158269952914346478674629454951237132096763299821378294424431060382331107644023563287341333988943118007873158918929519721965691114993590279087736580364647938226013483685125130640823018125380968594753229526654783088934615616926723446053853003100060820026519422381928764723922665268586034580476797272120990297161675330115828215846570725086778777509142962618239181131397496585484004680840146220505459648831155956173892163503762274277995991403259041493415523486446655542548593661050138521627302752903999597849488108314162018076351541424142574584199448075886991352078156962857807706670512295354358456889356735679363972507784132306464440939981015607935282971543287543465398337406598060920057068638076316690405478662360952109600154205125852908692867234993489486080852846059968009056950573915327596735958202662607670284965208866710011433441816303206384161044796658768045981416064102706281366039979287134246780421715167095965903275047186319815759930880718042627981091442812472234780734751885550381620456112787330928841811165179282830873442083325247022308263631723015915453098337614290560370056786823981704429616626118703674375520842844676305780000472696813783093050071996093639847447513975184243247502976138303531241390782914843029876224408308132405153193214853016167894923049455528014169119864002187625147205575763179415802905896037436643091597397412593618539080115697677821499975055860864968175796169017498393081307378480552718837690781188570070640511761563672330872988040499032238231601316934418976302530535542171803132540329942975365294915680668647753152611768321221337817027151877220106207077489634023396663303271477864379630408472268359529586979083527158856355501448511169633037817132500041901343968973256850828609456946784242855787215026660588028654478110976485445391066109233979963546619389763890929493939586652096107785433701663200025121383313597143780696580707475029298812464642592695717013782921051286559023781815761587466140857435884130346843259594700452531815224254397153417287997688157793366047544030291664344068993842752956171052775716617742995482621655691490592602466263109807962344201842626315292545106219895136304215739118287551589432259928718631320817470104804669887685499221604262284671659507152298908246569029236729317540858537975510043820945770455834263278043349817727292789133493783055175373895355812453711678310609106543761740290826345030446315769800405185425050079681312216167068999077072434595779527843101143362763314909200275027262165774504047901885761301209777015242288206147131011418127053330990265112705943078460390012429470603965166491289140904621966254133479160250719684029328475231736985916732370634792853125261020596875459927840017762460631333989901682357701212485196728810007007734943242842974487257690210290883454057622962890465082339079284243653467623088931846443464537733014339384704017291053381059674454894590632508608382207499459300067453578119901183441684367961049662768770235774227614101075931473117338772691467729653859385832781885055480966089139924504468472977965476303827897695725374355328473257010362070057989218782436315738539666617588234685351089951040553653748636759486181788825825391013841712681609187402154686491106585647380831010352607058219864197703195579205674603451079891188611525584226367438824780001811524855176056551815240170871487198059157036320769150534178032351401206389351561316661828804013550524948793223619077891751910664050027217908549090661435661454532154734062884605500191615021242480800079200509956459835099210258162860294917054148459224506456608717456956040751582828689013783970598950278015719600585381307768034888066883512314959284144367440306095650691084750268713405829530937677749915761857428306276323283616463809741445582990421527537943170571859126304780144533606951696779245040417987495290014700237402351724039124803028090252307456946498402752038516651857698890043118385074830078763811359753563120747256662754837173669449186574118845254846957078729786180817665628414338102615343514247823665282694328944991355356434140767108638125804551373727262398975101180775580223101164216500740247114935585748984830104234042709364774664042563282765611330650229821791691861394044277638009676330681517891434620404025463942126247320073257949764522701409651816365487628050428591600157022373243656471631183347806462465545690849271007488464214532088462781053290280429373441694025155010941814597665350560988100949997632840281318608827917111340273789634816937053439452483138434519447677226106650079257013030510881156453291087043370226972049329069022160785829676185055390150039742394971096573451496000583156109070973666631497435489373325648882858909512626231935005879322332686998519217214196770343385918543226916349595644014797538469372078544186170981580093100385968791340553258728619578412309919538940068165748161724861416135573850491308096008225364704276542122858182475412551823629745193503928630352683344116591345311378023307514544124376589691818867939436142374984629561993954201009644993606266452552164647666501787977968510483093664819042290061010075281458090192288750042364517433217518490178486064709054888285166145007784952975435214399422790051505930785405768897304928375571209236485369190536891265672107534005719844168117919141746177563190850368025011793333888652011776284966201726633036813523268353430163330104913262682488559767637489969781497133801294949964754750697197042030570966984442643385862459887894124408538208111237043254591548043895495738487204572957927801783766045971285066412391222065575932262517733425314475929959989534663939686118871296627379939847150818173819273303391470928672288961177239648799415331621505886304973139690462472442901706421421257793918203956757975034868725641347084421800235013488643249373720258950675849459793455895843749715682931586818013192513328605944628175127083023594439110891907829683794282714015336080316535622332295791534905149625433997659571316681844986374582842711212650894036862407676139676637604459800289120748756379277407169255748049207613415395747529640921190266689039715562435459150024559636145269296911608761114334435766974691152965329176951932609545189967377752505786751350539215647211962059226836899905670270286605949904713300940504397130974565440161761901425933009558757053470499687333479823888311294204739752771409749457962144348116423597545855777459840959542478071731596000384487735760111465764013713447842942869981761002775736620348473352928792725617345664289198480510011519041313909447055337806197394063681341403064940435146119327833268488247008828687128380484683244482383633890390382028481362446498728474155130691640463186217869168476930897364393334023722042893154456630668288915072016829220304329297007897047370773496108566999589832335681433036153323922459711197251285811409866016496118195597526598749061196389108967641756154110251214907217300232352915276067795608100941122315911207508693885301616875924509788796334169136375048906859787908849902803628123683372281060912923039205478652164669421114071509386277551139724263273805588330215445973041026342973659190139366445238394345765959791949768829081573049930691441428578721884584077076991848515041062089396591849567605764537134339559052074791677582284753451037998829597465506692958228704975647710834643502350124487063889501982601647707185121879453667603143909762817911327352857795535827321627749922538938616972155634005919617511148314426900429188838238307367197559491926069774748240197669199518051252964410483395076236582961330667664583226110906380106511807757312489273052257301485017154677636940073290325257891970804248741078115877081868876558706733358451161642882689640252278923776419520843144596020149258323216371815824661861765737545793751405257705689702243984995592993530549426478703896891734478551055051572089038742766750590133088366554759084241729699133159531496485941200141592102546695388755643120099957068325748969231579741130985778703040702614676201985854982877678677201276314895573113468554281057393224373150301672096093862406951825342966171869652186628248500750667053214177496502689302765062070811326370118741356105050349744933989109140426899034386505612347563920943317071652654838591585608285825166933696833019763366503861497115542790544557366366289780986847671615764127862896546599262102170800557924733194177956157858964556632994839018998624476369692803385098279722850792817454220051760009179931839811261752044488715610370316551639696796788645501952636702582492533269702376695620272837053210017561004489140909328112543706141074065929736138446220403521010355687228532765197100241721485398761954358523623040208139585363603794536690820363017478127881300275261073570196588858324865708448204724269918797289451377671370279013305902873101296226554723661814297024135208096703179517801414880727667827762515764014051255464977345407178173303873999452976384218265722631844804926180270505299206696570447499638223104838141909642402165305164629291639747998429617559697512779826216604990013583292835941789236792399401545725673118661310606880914030253720522483484894442294654840425753007088006509169701403680858478737386728351939487892281511035016736090549095555177440994742516061907916012161635743984479225672213601024235604949301425376158644817736540721928803628344643017871183188079116662375669719079946812899113137284972516459379652291001078346769742575331758396992104621298787039240885938965380585478884443908626628693251287580339410988985850541873124513451509605822205038726985179002017235371196354920769355349334971424490523489336844868858172080699395673095868868918775402094775886953145504367081369203265515282088693234847700481221839332570476710439105894293037510632272626902340311627384319300577336173879806529184279071270584185779599538302776258916677234119105514422816420825462957020963234860269373076779253766071356266898557885247845367182419904106906345528963485247632083461768868485577190242609393605382353389314326989493408550384034585508638517577388217947309373868295190370098006802353429766018920434008054293702528706137080489641893830710845364760361974128687040519801893030706761902739021812990674617317278261084363275177349692859407173037307705329891148998275916360598865102003024763599959889961211757433036549417128477069248857575666727067217405437834188545623486390232656162925587564809713335452858076404195393139298025562801120190505663825029274966948508248902090319599157548983196132477043905631189749901600670916284468935847212612843320828644914131778402480648864152426516302063141466540019585607428526453561105906959648325533298149514099658038044853953841881113332177872874261896060553469075943989099291049444893789188108417045167414068777712558413486585751991194969847462032995171561308424669895200176178695652925297110463015894266445759938707860614639841762369583130105484653592848976411641711863798939072306618252395630589071334202926279832523227914594323163155866813239284840735498927515445020636430840345165074837235526524620039003998053084745726262113599734406995216270128931689371465243097231186774771318940143148857388365373212405506676810750785001823145746161228999257802344394150088344950889085329675614440165897637759851456635836541436440427968307275131139986267044885551147882193381374055294843687963230382886287165710122130127229549090640734951825737785452341759783727641897821326900653060506278246790663771435699986032889471421092790924180895612896871981250920398596015400904729966745061898195717904636786685381085853217428132797154070854259622589326265252432372817146938333007823316765832496665139595429899681341221120557578948281557083965210782644865056720390148600113376403189159740959132121728644041988498614070707014693068172001070099053502199757786190904095206297837441606936418110653057514630760957778278325142938674279189320483482775702991334994262709666762109835158795048200629142977120261415979012948149633191899467544518005863975520973566629670001165738545016053827341275736343550227326010671636610779118234914824352278137268098816086849087983473661877823378987147839706320504237084354487825394875012269874975172130913676666982655329213036135552523433469564468628157896398459117628246367040346969867729976454375399417665850388143589611759726230095933533621368087848940136081530426023904829040781073254763916809467134501483650606482194977093951695482077807592949041462971756839578398195023090127926193903521132316567650668294989675882782464449459203938393764271897175765847754179663737940514160665734319898786702501105547916359360024579430765391604360562743134938650772277760188269762471664283944400398680771727987304939565998968415057318596867515281890334296715525018365206525571969770130829801266539901447719815451352629669401105609930424452417363794350082802925623239016743979330129501082172835616263054055529015308369674258901670823046188069944305742066005828370232251859967078126634734102214325598733953451446334230015982943279580071460175529930706855547074880450989266089690745943320502650208896318855863147872990698220277708614950840631786877421047845876888072796912086123442636162212300666740387318819678600446583575684228673994161068471713833593873632583559700789383596552864349669671193979427779150399936535109321366113068727915827428654816698539229433387901275319892547547943320652003349923594306715667449943555079355498226045590403707527235558138613867951317795528583286894378960100323348056663673444413845616020728051957710288266802070684446308345693463221976742485950192649732780716154552825249918486664098693187315532271691402319337027360746682236819191453603113654281199201696038365889586230819358976272358942014957115809609708731992077677299407320121631876460297881992972206725495420105641055898570508901623936104880170422209766334770381117697482167790585067386716987870079298353064681918072246020272869311908715491012091064187680638822973057386189567408779670972104531961020134690370541638179209900064329719786270610842294474009853190075571518064819280998227742478806269012734508190974561374215708387967861464893931311988893618617860500477152699430986820286280281693174119281681953431333028717991825611359358023322369665496615550947335407554520844424928469804817178592344291414473463334213057835425397960234852353801749247798850279060381129363103010962294212294573715476252670803602238713603599116699276754878643263710890900999077328291850187502018086506822800522358679172182687583261894811028371482667709348952804140558785643431836712671689380760610171290965016873997430160291499434431555295026317108844616462046324920747070074198463081126341629584513430631734154700620341971186339500938433557167469370982441430717792211271834651178489857092111987907414480598445168631873346288540615725942666899830736103615917928732979325246620074012886711048792794576533295250080035485549665811113337453728705447696719604440932865704690167694026615115009472347960534953359473153300397893638823650245911677326994276217319016664662302864689985316818266530176413293324618248598159676895557798076021436545973171986925425064101541875669949399528337259166448408030181566902857396796285845616555777054247600282965509213305005653022736850717462883513904559436500787360188763633695685797056498581480411444478310304164872542958803858753431820517522656574769597439935181949612041437549761127977395478600407616443680831913894118317222962252336576631006591537071878115230393264526680530591413303455637058769559272125708309217153390086839843108904975634107481638980408026212762618642949183048493813303633119682399032653176108972245427936795092553888117615968903534610929580075793751464198660769678527480845932823016422886569225268954651203140436744242970149126653870730152646426476292968551897813703334039308198948253515782829717573160241481798897342956796103574759202591349374334193786799520889205161618463571705770405903739314329319671207443980915769746207783774498930611250697579321096102771206166981230027215810495678595207481774382942424205641284920932598349134573787072914275854520163600574534228141457612247654300017405341425446459529547615447424681297599981193393112521580450424392235379158468867346925735921800175257499991659202593702470742412437609246698455693997687839200767039802499114684134908275879556283595472987141893017229333330827412794302653995600762946567453121225151349793318565337847114895805094853895212640767147244209920095153737436595265564425459986121446003477135950972369237024316592803206037937619536869240308307211212778659396114890120398218979877559109596054368782997779193582049113049446096073964555968258132855338035146554448608001272441937830859893263889336137055654512852740687675242135712465763429911886022703571207042365565644937371627153170419135450030738564733451890510015882280430361886427522550083076249609081056654429744459339903635204399504056395568397215238739550349592396000891703009057487309185063997669121060306105210500597740692780680821340947209164394215873868040248745648128281923786175867876354175656940132052197496850135643694488009551714807462733529511187224717746958302188329753905814676075696450885986699764183792186541557101708182951060626041656048656776454242936146803234674539141121165981711060239329181790516537339902214178392471965466591637828698036275516453494506565021394372405894430321790089392541767475401418985113296484755796118759358283664551421742818210043172587328987078291881141330225223522166840917735488800778168202575024016334343337997932705828164860431941411091090091617252163657853884410856197320510384208643241711012546914650150183074453474513149819514401953014576484537372468068952440872128018375281755623499379709115393397742151641330321082892611508529745779020650694767947080601386872514253374987035837450645348320305546229954830549044678445900709685460353564178048679983147404300692807328640946530073261116056981093775994031353416058778613421629788800669534222269461309050973896683147735788118637334816664761258215890976777884871110588846933182408038349601546611936157612787266191233193973876419396527732284472140570290581170049377232732226019885082889899841761743206669237939691473948808539402258616388563561306169051270686035745720761306602755848990494196128964792608064381945247307595806931575578840348935511184923068110240709578790746970754112164972919061260494408045295231782703027046849358799025554192871667260812398413592663545709981250186292240479241619267227054394273982668736952031047729343264771220842968328348032795089860102192167919185174894044498362744841893127073724113041245183028016541509733389880557968103946523406134609607540038638247633980649008987581524131205403716175055239774746511177451440460221201972308320230268186623591034243872459665820188657194080314352934960725872490141887168118535912037309575039793671216764087805640781384190188161818484137419402349512182665635205530750830623848657339591100607372922809299938587034493220734832646785354750595871049447099164920103242075247619985017070206301029362539703084640717961852495460640493008312297142399974611972807127398961688722722023206725416408743268399686133761707254794095083717743462941456851425091325733800935187796529971778428357440269207585066302637679830418120809776110351185063099319350796331794559973122707971416755821918884839753030654687282234966466492848820326486725449510875237288037374113675806122894037279712526926214541194806288796768964161251393980228257632731918141887142935696805613626060483280912820399505771158013886118984673258076109716116412346049923440197555535055818855308681791527848059041468222792488081306622525056372299758389977880340357680452608530115067844039847020241934619219508427660678632455727363003104009035803722439007652990151445913438251351006489715007820614569693911448443882599501847484968157257329519628166320582368525853413728815831256082111631486555446300409174585991037962183522023223709132122101569175966141758292796827765400570661131713527530009064633224706775108596093090203334017485729553107828704941554354379971613393454088758772542071684924492543520810197206981374291078418134837141627948562081832052172861435805092247889094284151355769685006914677023249906546593696480184018157790836352908686905465297869763419075308564839294250656720976923970192877253924692194937751929195899802260151937770955061059153591202341357262501479896253188998674699255766450551624058171545164017100558766585689219657985543258971722322576971205235899664481819751281328984996990999828483265840423634962239140953243942841702249415302799091500246949384482993403145907388110681463528145627660170188228653440432585160289397773683603507031491706008159415741697329791642631079699030779569500223501293197633641521465659472405683170130455351312464532118510850171940312361539302432018076948094660285574262556348513754785498843966467709276533252869860872501638608442819604883493321266432593964931723590242041751211236812772060509839625401139661166039721049923581537393111966621123114854812212936235992766268962199116322319043112800375882304364411685159301981331327705484599940956141809200043415811600029430900248675673307932023443058075264014713717958466169155729126013899212836527523523177129247351158363275665168235527111360559998982532681756160033287147298899532688283969857937588929117421271538459660976299032393519955834644837472849477095800354026382355469568146156256751202558533648506044077193661951875430069058412522793251095519589106019141381081093856515081344241299132991638970529457472239173016673401979356007494996821622942610348065850063591885844582793026624679401880037675698813812770887059349510261757213871881491158573911060108917877577592603249006034360941234001597496282286001694745713431163878368903505085335028893780311664911777253176141662904710846875654597181990689160587233548875250420119906051553936219067399947338811975599801541715906651110123081676401757315123566335496436772644989985398084010015173256625883546247796141764065805000146355330344187712405970386765242360756942714116302099080293666692409892012811920957112383300285609449648075509539159448669961984908910002025614835076526591945435551009363116452094116517423823627769255298752706033430982861034867500013245265450677121914431814347540973088734478089786215115724987868321083035316349335678067509021712275861055595281104763734688392458392277883925454616578632333964036053845160598314954131071631348641996932788285902614308181852227700294369510761906742223218271009793402346832167272870309356157224529208143113075288020417653450468491540039322561441071735296643838349027451167472695158734187266437391318919757813247279454121495194826582475854451888659825045543548320451731641767856578595170605049154451558956016012707873022270982181003141488580981275944528944129615798978528389327966209358173987361604918943274718806485743919868164000678636006772945097092551320052600703500267017486333532131373513664590265669379121088591307632525903817320485033589526152638419470160006138637594518240692390590452267757222545200575224129826160775444722129477785624547571126569377259815929079402890964648040599651581030109608658889588569211687448616132245693226878861262926856709152590349274386520552452398056323637332280520758435240501947579856755731369172075104572970129682141080053979626438579926728928926769473211075738715329083274548074511759911557499601515084067916790459948576417936251923078211894534354528666419203923590785397271427965892757467526076976931418259395085261196243484056734753955771334345393728699935116778501909878934895864576981442918466244730735896889009985820994484159291796870485724864176020650855606310651316815279101260393337451801340375937769040182940202094185612175428160184154448300298723208172077125413752234562439451905167095145611821450125989211684535312396641175880608529360875018465238560571970799529476792571387853117048406681100927935557056521545727384410638215690719186701711656014946691789313450519248723914787261922749051435502275442594880702428389052025178741694247097016988577219068889095856681000625299570247083100775937557298846316982244880856742082540391466031967318313509148480505691877060018496328389947444292131084970537233894369707029832230637961060571269506351907934366612466802434715529238440746014222505590625507047134165967501881731308963289324457572817128699096229084174619460555598397631710178948122493786595205508631741110407455940058503747074465405047269373350976514152384016353319129370256396367935569502522688460585461499976264012638113038371077373236312564041136048635267583080795444850325916655539118371676456744485035502063988537717820083117542940716313152203948007459833268524516331633302166816105121139394524707181114876687819997982984895458988956642088373351146740102029473066170242262227363950406109053722396993680203644473872240945588490759094604268207497424206525681263338170567828653539653067139862564517444762904320091228573212780984511281518084079765561124852304866261257406216030843512745444496415414407458753719083096372225695086122576693846757526399758905322072145903009658871172686565090503803510916234288556362047737319211863671767697385747852772853052557992611783894171006591823901071635063526399844885531755727822138972319226853596891376342864544753394759716224866346899637602189183760802680332352914143951363929902132937378111247065075366615116989558218582839791505758850305782194100636803205897161139935017679738723913779730797549240086334942232796826619144543916188405734059697770160411610409427297947597317795651198437605901924451089507763434191477275006262830774126072570486629821892450954619726990976028317681881960914084137641760589123293894988801776640740965980655853381114668835906190448838872573926889850362518574058647439109843949031933530451364102184128566880432414839823747880929986356286509094177896606255857078321381422478307196550165132034197125210759827185710332637736096848877995649219639772234330801626974470588988640618650973883199074176715469671512890357476116278063150688903005971879268909546715865269990508750287762772428911132304179977022439958891982991684230594133965878656902174621588395258580534158080983188219499726867374490214863926926375657452108512069198930089081006407710167804555680908218754228453906871718686227384292555956426762949927415294920186078307072468360221542398320120664902313680447457902508750554664121934962587311236358489980691939147118760480637637312443483647619237944112611919022309848219537127712578775827342069090417704373581877709672013628014008365942595847968129538073371864063456140736069724938929355675124752442675669016315331407896788116113520592260913545978371965064131470190765983295331186544172972055353439381965410356702518783555007982500724650937211065132659573989319472841945506632901991628597916981604443016667362449429645606322378590575439076636556973053632023946532844404757335832363277397729693911969058025528771460519089492352528805398300359920702067175477006756530476568724565396733592597037261938079182480185476361145666022344400019442491267592588824892148292283760080532031128156189552591656059954669960351832184876081320381434668302438952239808083765450373992463530826601155097680794110699348489947409033971749094269520645294135511411522065496372490264259473039798984236684396667564975677002244966482419421401794449448961579444656794208762041201535555349460841919877920886144865689408159148140470465170543640233553868480104047696032749903004594293744568227679618929537304874196444275609535153247897692144831891213778560278250656053623856974144398331568499350532623678295280743527009063224436782175140706505356926600831290843509796902768708185990410516366143751719759469152157464110101998222338401187389946697440434175635233403326315242288197532369278075024938050193319561822915545080139122089181458053264935244257881866022834762889368911304358564314033116257364202484778864873512871483770215297429400233675643329443530955080666030879904152198948732805029193226108348295933588400177397531777400667308615536531068480342920868194113985991974808975885501432297913311383643471038804220951084641222503175608622714453608217118904291345060465977439883617282779376991595536536979819045899165876113770106690291257017969649374757521567386783979836389136396797331683687199256403519049596230938798965118455147951944317092074337286530962908574412168826174073844645221549871862892970356523930536794876158789969003425480370373810127120376059298936275062650973722759223864050420632275531355669645343187667142353887490032661791659536505991462849048875275365839282920619373665475823265073505558531483964635694101552543113835938936580076506593660820232369360186261158886041458142018148809356685883328719655371901472147774602811496304921930376174889600754556087406270735445709029631928823958826440499006445650369795323762294378816069714874322756502127729382731958514293893747830510625524978761754972966750499431782351999685094404680532394314995865742139974787131091963019690187332086563538159657505762636670940480701592708185148852379670193450531024447097933189862113958049378507601885312323337359975100252618748375710318552736089156990399270569827611987992005294329411502521063950660400144121744009415129539750512798345957854719065492300627026847600572223045615468785293122585737212178395871071721080960633439274824558218714365060564078088538839754543027074798327106614619969552801217507213631898809910160052770048681649503579098546823328868809890947327220918534600926274911843438065239273044805713226592434575928569787146368438146247153100494149869867045483751520613474020782924867923635649800687933356637498978007318617808619417732169372583214157088058345818149234005213960579415638559149964738825400185723628445880062282132582908173312711063615777791044669405814391597683410659492150385107838079805580880384253427267017240883990528559139397116540977670500321476336198835175376570501942698178571897603084445409040899981320395432023660692562596320008428735236111909520120264556495665480450901079453097112497974383459950421429135918224190600644517736391638546986068324240381354444395855169866467171775826941066502875590008538997358923518033958028003204608084718536136083141226016636827099713211685917122673241511876833674910883117988933256136725853452655667369340380926810827058841848519232323933951042794800930777858880059477595381124623348257656847927486857550987797239087096257398492327029701046825504212788327053156156218963059717875036768872281036214788493405563087912608852227496318389907419350279199390619194003047811136159518006696371773703251430006390250110708334006408628481186319192592344043330857532743694646320269793663411251614529251527928033365939159452432713495256775130206667969870603614683992060123873267160216446775825981565218896683341916138436465717911394598993598551689267147373818665106480663832433785098254774277697004982575911376754992676239193109410172417885894674080727994010298557160681678312959084235733362197472203445982150655055774432273693071391903525134767753334903235925085944286590757324411021593821150352191170525354996892035421793280856079890747926373247269545958293149548723898916990630749480701913232632633466298446309465539660851023727991828795876683996047404019600564728131590282785500896524634908146841491937386507226645088164439065446921541823733147664773111642780937558323066403737197434856671225778484769492572659023846463316165232273759683388525133309918753086508470673897525698583541889447806000812312977948499496216083904786748909686229920614226987845580220684790689631281861814351527149657278819811361535733739752883389207531021816190809894446659712765499765765046385699795367056451043593887985104410132329987683673778750109446159018042164494140393632211310075849504580378289662160412708990778626423779582151213155968847807943033517621684537881228994656677900528411909654564424136161939439494958494396782706147369017941891030978420004833780384220535867825763879409656542248215260235144348785106744929710550277882824553347057493382931115679737881983110348692858368728111321300055078834811962400939309861678373406787563619934106602236735895462469809410574594683531664829688772657821263325004167674448898024957660306240671379083085755707424012148194465162136406553896202559926173202540298222559680126685183358270300040495449599112328986132883034369169143275483505454395275664409470116181209277782823253013144269005511681162009943814638837152211895631798662773919123826181332927740337659436376263294858710316976949170297295811649898973372915071686249583202020168984656776298716188439613360176811149365379054158357831347094376679591010320011228911595198998527987649250109591263376318453325181090876090767791976341327023031872904531825176695296785295035564820685168197585315850707964211126793466550059287862129869317149523615615370539423096072747938281583214182157940662379272579139536613455810109186671076984115494910489149196004091253736804105414823896969789700523570230804221182266589085490325958981880414472363593109841780467058747646996938504525975776464338784006803339954070223472166691630384769123271547859806702418831492092553241527790271695703687340533435133316331712855917797245479670313000808044062420766516475998480778415650291073284411033102228951153725641225567060651073910549771080608253456332264215888747374641325128567894155203841734353458863514796446986977903689103490078226704189423482506048174675701630816949980726423995685730600685531159703230023925744433565847246912479193184370130328452604270608719839257369004927619962201536514733164403761864413677742102385987563005863698091982010466879589804955351991829784512291027170118687820457958108113480956614151458805281300695153775816198013615723507320095523202505500065885356672682610384050540855136859125580705169377924576883588507579373953054122102418619944121144600329576882509221360311342739349573846278564447219767210192439030328811033865689750408620121001117512792268872308196727527738159555682120901471261416641607403846062869581067976174344156104985255862396576221763243583146980491422792620601696730037912691385587484323813276223451401855657633274952897875179060885565401925732612059433294512950685282504813792495175414078217772672973180453165694754683717424501638313871303659642016504309864488909848042311769544932483448165727254214795469915774097436491319689068883509717227804032221029580612441658207079356488797919334366660296717250725992876197077002099147173709261851316251616513303149499700411889093379317461396422071838213476649698378276523962595212702274878487779895983486888093195867273869076398141877355669237524654409139035242828607994356151975387881914904992210650737027745319591596982262586192760761884681390165342153921126220306150128583733717769351529343076706166462508494172222433418279103042789614783403652489430874785929182148082277460993662824570891166588938123773520374981603652065245969287207332342212415644961264182484696737381092266673011386963432732954769480406876229836816562566351864012804725500187285007815958963064856550147724509447550031995844242702422472366988390729987436087772568151400803318259587942656806874877372975578377043554623357931851041390459587073049251743261027361757471072285762144961224916835379326582506584404894999453746279491714136427824011054822465186320303082718697016243090160275795494938643888350773877986101131566780543601079216620793889710019945311813220762467089587208288846197682477074789601182933687237250984886104129700119197484809235824311387092608530508083942757521244973947862850338526818289979298940945062192203707238237786367416693401579909664996513279683538638358026347385763981798084159450076444752543993817008946854191942044551674921772748992429949514493706085990586449600824536793751036667747122783107873462985813036221406490463244972088892727714307018572936206618836871132688416118654435614209457317408357843143581853288904605157612541395505200575054011049848148526281557079466813214827932695189781532558565949055257008243388018022695897743478182357783267323041383316687476789245095745817805872822194426464848957430253428439049670199567379179858148201754711344954465518042161799526545604436436938871383622359453814647167443839005586490589322373209860118470627541425744440227127794182631568897664334269175263692961701477642658649371480542461970063831977951005296935524979438969054862102050217860135633502660686460548541445835886930165303492149437463759509214724858042150470562465100624469689315878190755626626163274976841303310937343961081394514902605668301788576505360131341748579708773432452268316494285986327675837449016763094680733578860344110151939045451887419355565956336444559375130868352338166782718615694106715055923645308590455624201881398711148217864725736630848797607201225427925398637719429993858124020289768378566566745004334108557964565196490438208905438158316975822626096755240588018021391207393244051067408256799228556673789903077308698251287483000796995377186723061483732916345922484178064200510779745443516817746460655834487624600326783359723558095274417648947477019865298127546111165790218494363586657689277448086875493517395012895071885639846458239798540353889677715838123230171860215637122109930028589728625927533231496701921567101962880301520575827575498355188497815868845001707459115372971157362360670905684818196264525732282529817051715622108640822421979946677815849657671844805272746258658320621243404065991758276818370506418197508223467284625033352134500737015926943903880076531211978146185177327040471223640910702229573950460201491468960374987541480133104875607859493400337706669386807620401349921044991050030110748076928056553840569315369810424525203357520806619601549723412561394209057955171558259138826634792169178734554633628818585704164419295694379573553470597855493372875625758066075398925979914627076011196316625557347820062500560496574742317718871842616909951892275525870582488744686729365461076585630017418545792025870453676554756400655867608354220348974195848601824775415196637726492482732960020690973822122240401585851367176445903829672782386601312782310914176908319783736279194203936386612515510608689383978844826874637321547783938378968660659646310060282493899661237249415729485969255233693988765769791604358203526113098604358751996789980358340510319939243324203131141995847603604809335108856350183587026299510719146767883146776603925191698507450707680623733298105470826365374273122763963877915097708905237724045943376573378641593671885966522349886882389058216983565082447718047466920180597772914902806006723482147977114340058776628269094260224164598747178874045942240926222781982750389542542532968646132050870860557179900060559602137458660800942475875393990300352731711368147309348925448011783720613902156592366055117882374436241520602303900391696646174988284090403505361296120163282599778410496089080066018800362707244095059751348898473486214577471626806087768960400980754182407351525829421046624615226579385986491214199205005916023004755646823509133279354379131519609834355634689003480212588840649860272183079667367818325723352639094526340269871412771139935548111473351133541325555281790806241309305004277593767534582721686675846461008996509255389805369624536561382781636368657609130987629936261267202101305593917608508669551414285631142878032103079364516678918232555483418285256310112604899301298575610596641304011371020065949903513997174886743726276949415676153179316575246568032001879794853753530068468473065073602329596677273979063892517279384056355520529305122574342893742876481280463231326214946080555164755275108253965820510738191102394493073333425394171961423511229904431378664557331521985502350461381614062414229850109815708907547755342052023886242538857354935402468972653912608832373311877573029614437995285752673474623540902761510657717842684130289244112164671713088778528416830865826168253770784976899167116229490102308278622215213390055374024341915943611456150925105208673304347494312354515351976525598265307056845200042100086768592471723888803032543820854908221642560572394090400981215533251719524453610523446155589459868997469220977445749930400858886055830464899674827238341329615188641345163813704182462277705933822198729264333933230569413264487808373247804799811169275492150543107953385365675856428759295285447724894638866983139849772171727542892416484881068198386306805057594473841530646850532999531926595018516130906766742272828705635758460071144192350939555348844105233746902976258342156654781718422102547723587575489652244539200143241073419574598260590428705573521652321235847578234068945807456670928742953493551644185883896284705109365490622655746241288415530207515322441125099024326160077296574553309246960022320304946804402083908383524855662445495827847153885990855011388245596721832310536963619661629608478560975607708222664838401731408736566521290348341000899813882873494014301662643859808485974114682932390590497040133783962423516432579284577708144751245283274429296475045060618219700333908191004599699692974274186694598662183647560095179048493233519469215406329575003234985168331641414274734582249377702564648583265112393407650725295462550541267978237407851627669874981644330116825084981693446167340506550996595851204920202707200109626203164377630011205423962639104389204188670450903835687432238561174356059222897821238673037773650173407785082654534417710266320213898475100582962347893281591613096836288745899576422368332677486668248642216702151830379707985609873767058288861250984931675468267779417411640293293178520602652787210100486350821899040172949296249392726339963355700309204990970959019521639423079775380972214759871065226465930768233051545138480625455611816152939595583883500884672218066356382220738621630116094644559157136035299763308457882315556760832412103926942497205236027277226328745925385116486568729381585511112921392763905060759520035991810152565006125897548506153383534467940168227683280623667282754887365636534788908777613570237155571384819069670398237943615527118559797406945785690378596537666558344420839772600371953626176914891341556325180068273200511293567924658476227318022031403981157039939201548700237323688347254338324634699666178561737003410237950084248866295811114283421935926665506403568789642665102199573296866899541995835681103135731379754329301096586196017777488058241195228298052065635143357755511376328857570303293453635989069082997524939286068803523857237170030951289403267663764934547065531696198475741618155386859598380865188474258627317936052697680733690547858401092198807844108635637746687952393017533491396292514484856702994456516188928476233163927471362753167141535205296198378805949830029342522311689218766972116460140435675352805975032750284116534548923505103184464822641587459539704258470374519390706250009767588802846506842063485219808485360294016355700530720753344337726858649067637547348483769676393433845520903608130129722406837975689577019187084549545343855443138545082814413872404615817002078868668485082144725979614070838100278942114606211258001300292699365111531874066078291975399924017571747817743780264157770372223830496382857799213830816256382194888560734076490724110680943487386744259926573423638219757838325117938344527222596747930245679373996057684378371182786328752629943447041611885044325176745329658673472950726631800292038917265652934762731435290221168477202588301051410344945785378009610701863318638002521139410514656287561154463961045346137947834188487459331082450744721707734629742586768749437693847051359696943719102180459484136959530690824237244838714248323566343703750182805418524013587514707873850610710887692922292491547401573970190580001454810334523571844119088179176175109158980417995475115704131147400943214164844114213910597325720725955274731473327274350195160435686950488405592077455288927149646565888818089767216918512218500520076597607937123274476735071131304696117126430740031086450988635879676172641795150530424282389593199050705299355449893672988438536117597022727842152626940754574086798534694228902320220948290590467455511649458475902537651920917867827342423035465294571478984331897423263551735548525482780081512759211167261416781138692409498220740446035016593855818258822793400409259246968542979757440442685911332509022004405108978011631863788959793555206949559254502238900097784576944782440115470872086718657563343375812779492878579553940749632459465982917394483358120153888891866831758175062351465603281950004553860758543416013386752161121408372460471491419515530486586450649768292979917041890927859630057037204982507148161535157252299361133062214530259816519261390513334215134443858538766362702565067169158946310915024964606791505236347493798218379868266387260156673682152580885440094828807173676963481070469736435114968501000288189868540381745885923395943701752781489796233514642237681499535886512300483509166796344882711323486844132082919158991793548445559049387815421165583547986832518854647843164757093271894693075796639655725792719560615263846461815085052801922602226236500990675749877833464271745264938158800226789790043444824429314000076352575680775657892148787521971168228434914530243520934150448814838262563606888086989704979292884550355855778515273821288387960781436683943848729927467510722436012169938558835674503963558215774910365262704187757368026110903073428756444659230971278490973290377154521691371562997114633602759714156003287080928475940748614148602005961419241338108872922661386695765529591465916088264047755293071047733990151514498404577135607715909435765758408277295997509971996653458276448447210451510038754029437687565817492304839053219039849891973554628385057411150918673788721843106354069143035630702043772089693615795715322183478368672818372116435985351798705436617030835348584421196316876851263242047879578415624398789596386579313371849261554994599346164045055889653446015153162916887363683605556024122455713848509241953823312853942203878086384170252085850327023574866649840321165635938742320847746184573796134493718773470031609196754651843980624204386944874899554839033775618848350739783634954952563514501031059011082432270768461400558063638584798386578553888653141100273457465043786031471718246856746806386720194281881232391186529985375464644230890021323964528287177242703382610153563441784102646590723846265177962597673735683587642618810469205931523057620150799844122684378019147034127717132373875142088960814176035799169379552317495628288988782605638580708012678855095026985775221223941049308591307511073353960893014612711138053393300538811142557049581953620306013576109148186705324137659533560715919188298299106023309475875511029591020052841468381850854175724683289125848488092657651392146655055823077619859478192172699934890400239856561702134619388653419611436602167332960768551310343350690446681117364452469851090061185016801477917125239044235647644028199772158057818462210173514425144099259298462281894841943264232477390482298188741708598374769876968814440919110592167293230307138440347231885258330442735428836678541603740572395986491192502729260550270741498216435574858828102147015467596216970445291748034197524993858700767294382223442989300749788333923435547575217821763064235022263041533077010927271896730775746271878661861789824856146897745858918326123537295633932423710973551816259662564881353553462102859279383009007517031086764564879132602470792860834384617036625475547376489013049498247709449278070343133738473147455434392915706948972446688535087112924265168073422486964130197540538083604573101654908160655687781423072469149145517590945912910579474575696107053252097600973062649733142572931017461845010285618609645095636276662491096382170068148761092426569188785735531338750549150297407770779247525867365504403664557426510687481942804328136437238004918473567942489542196393035685899054911033769096397821465074450072405006850455668553773136220456981131197652314214701917265135099419028701246211654736583862003962402281601056772652900887618072132812764891353554270317178484145231242924807293921089767306832520104994524664539402429257579811729871056231411356988464377267869731051553220551668997902323252399980704440567262003547409178108554983298645259477355705340351686074228107902559740479172304241939193297113429084755106343051493891496407913000082362813200225256688459306570379913130656103966278072844250616679881097285748526279272821446088271359790890912086898423424526466354061199232137665326120764211652365906239656955869473082754041292862074485632661681283438999703497377827898506602149227759820063452672729821657005832735059308702002098543057757800107427435498977098687817691082943188176641869714834756048609365863930231311673581851656081458777412694478485522567861377265577818304638222815572516733873536043159277392761948739718993772332361538813185875948275883376715546309509814161114140563939998914213198681418666154835975907288801243740301438649629475008818251170386740786867881013760636364165127068814335918748436408186464214230583900846218495388319857689103834726888084007137069103152284718276401008825828484043157074715552086737775829556744192564558397041814520406955053459757094296694824345714195094608037008179134638623716719151040762014294236337066428506515567495199336172510163723030790016037585348186402013906261394553421454097610166463041480116188496099747746653604921273939450394709507402392929837536831670368217971640260450371681649594424642927572287292537426559212737198654373698149419400034194776266523662488882682101348603963105757311801625741330731064333284999617816282810793634403164221539494128935591315874516009979824956547059267391730402132526858333681972894684350463883362466456783375452289791887800797518579534288183035647015086857681457052390092965303182716857981087602286785766165005799865937297154640641965340389002179365986795742131922768377037079189401961945759520192307862186612721093784506297128315283637727577649999591066715713905478787712652937133919863890015579536952966713309225931333660164738642871003833923664199541017671285823966150457832609224912658912751466862566458027382463941690826929032833083932795945137894765983909730039646223597917545803101525043969426168033428355221517278353179069572674224767281899851344073904577902515107719465470601069634131828081809294728724794832056402482545641064944610449379003418846069257752381852164006309761547408779890812909235291415453645805280647256000587577565575628886163441823841601133414872874288901000723159220180518891638140700946578423381676479154572135105150494610228568911187245727558039851639939475037328371409161613825114943344298800771882722771391014931747384146278076483527111882457232432541968125855862873912861633048926450999145723748485995317728101413076213581145212028799592492385927818059120249558494316000216877245283420470556245141979953896603866086938084597192836966182678739717634308339394310803464779062995545292000416480386265559680938841249079838025725528404528638086978034099259570568247021432279095788602059943560554666920503916844687159643211326196149673957802515120480187765742498086516589327146244180982992249268030349500012251381357520310551755792196910110238590124215022766798195146780176006434248643233628451890710562670975811187325469707962294996223393720120275077368229863582914658466248825471727580293249333407979978592385224316855964248826317942243315814188696455852810627320100311416315723897914609513786290974151725850759763886771790582249159920258672368782722584302676764384420387225402574018161298588019707343321023887393718023979784562835599996974419037046740840025933811017187903025649959536337918303220144700111820754661764360364987073186603651724369328852931870030416280063454850280603292920835349627543336423759009107723769950482686780322851621586124536499282668153775743760398010975795132937822683355970490207640763992394270684161270657351619399687181112166551768447651783120682743481367885517323573612107100823542529678408366054281603443513906945634880208690709192620556773019295707897435888820372096758941941209377267339675155090456741032692887342711548424615363420131379488192900341915368405108691109908097759213265326288606502732068247256223607646084807014550849766520636354287747439694251390304402438252223237432439826827661095147264032083942249647642512316070409782331259176488410570137521882311957483638853449770628711868620702360233305916392642300854317113578780567478563963730008205757284923482604526833764147600810550354191461434489486182261768625288689865550763685724559554580177633979681780060944872269750873614685762442353197070142377197761744282317128929834662380508822008255174841968449501507713786261317046935555417917441616118093633920046551972134381840072997403660117488791339428961688446137747800210844095605830711366548109937007794218911643564796865120542495374212639625572876089146616260983505939253516809874632450761572817548237514821148522133800303928928639297020438873155678694744024911770886396286813304842026794609148374400495385960544911992353181517967149399460041428369017807805955108606514711637318888096624344731961883490985905300258040003036909483309294688553701199251369623009026836491400548157533549254402131753469880355247946475198473520273935211071520765577167296280022620839992473253699536688190262396092862702410410050176894946580463302118262718138238202497337633875447422920821247746574682316692585040545813225018208364218809465070501848319761988147263169020882578502894131807537014102938839011335965544557104410197138658042548487904247311394732980615857358136748972978174562301558072845657643742324890180952105073687025794653428509852900432067327353725490362723220039080264294020997954654452933552241408710295161149131912199028526741613782679105322832938382904698979323028970500306701398408041432781656163783377396010093368128890956196207633697961511988110621647292105441648225899806653173632203902595095083521848507603448773882672887679380612944509975116099744299012070304270391922647583123836854279119689981730261409655678845129731594486868589282932206094318714285752884936863883225481782026029542411371318227484437669807831052593539489918097668151994742983374295229755554408229685292510539390026192939295038331804431706171575468316191641795964573356954645851358331096957703871607762230743292081683519650354241693068886112913313711397563275823817226775712859684787853452600754058149053863976625052424733803448143258377502584787269061364153024830596827159330577262661529804966622835001718436601752261963251296162777533570894979623092629712952150726512352359673833258642019728745648190238172157448694429500742294182748600004481513679450129673822778685937936532861453998295745178345693998281563900428999107297482350937250720039603321877144445237546051773579845447341234637569718827489746943689928379691489998498226719345265330529694902096565393153134499379975937499176353770443088894275045548037189396858509285039625098482785800356205555377667996789802717534417863183878673494518980287892514382356712537560537072037959010643229842561034510208271569924286836773814556648089867646033982844566886930369080180872220165637443652016451827087405019630860000120969249701888750583645007181470233759948161021464583567531679447874841066169818458465682383164080040309378443451007602441799718192500292210138364204681164720209892911557631596828888787546139330572825180298361000130284855403384316467165758440367317784947485472298325880153861372315892629787819467894567711507536441846710353696535357228534277117377089315586775996856518310139247188996994803666113674951924693797077530161497170677887863984669161215299355859397396043436727603078024424607050830563523870239265033140958539081037495407846202709050884033534045132264530873794315669236088481996281430011559442227909682784584532642634554739073523625298440387798148566769953263551079432803629141465753282905968654685953202927828883808272057101141593135085442784792349470061722761473717473916079977428672304901386825352443951435506838026618225682864897846514180724851001558759289931179043065203106901951143546825892970930357546673338498336477428269881984002193748254508668491622131070661616557499162500263763987129886789796622724115507365527956800377606200521046499530610906526370885848246279790438060803116230062107489984634011402474404828491573253568869462693868881793733841344296075982198221777741772927039843212947999803434752098115832358686529291714474527653871081843536573333908062110782949152531049932249090708150764467205032913683268140939965091117018006976884679456616615117005919236549008071432671680709278022442688938868121902426661089877076357923315705034890209205099331956547682990963470802978662375160527321114619854580085948258807047559661314470969686769056475966532332275908158945598751732824155308598463074356821694210738271894284517776923684470299241296122616600851059565815382140855210736038788210831039912049937145258031107175236955241479515932523817199438279466285126257167552316611152588875981579399848312178963869178626563779804027922769249298087898387671169357941654491397860393939455225096951265472769840185748501267847323458791894656098062311364779091086564506542671570597893020856069267242588935006449083648204103240818675906578365035613102291400035232597789420712990767807330015837479062599481028319857334982521713162645117641167175201036548169233336570896316728365788667206995204078719395103945656969214033002093216086519852718773083962238980299226586897257985005867224048949730011401989911575714653943082718958237256846514506886874710012536150102107542319734974197484609162532064912585041418222090972246393974381782155864593716845690730859767482444734285448296208647097590945004351550261276489566164165976606671528397416646343170399563509313211508278513898540067131613521518909983497571784769491103284652495763703974120082037110471959318861215905065691490204850639870739175579391674292491096737433904226926565171510473137533648303477529552233003530197887516874180141881070244041744995637689977763602833879656984449658680117869703320319413059161698325257599235136423260685429188329519298902207495852285139545227272737959935130128011622810900682709174353575812296648252732325565629945414389093798674123863287011179010378125737430650996868621196668864202699955669614375452578517194552774756346906909240215499943506189503817209702650275409183136851931864174452410866873967001223320265658226863842379498937928591711823779370482914545390788301350217894673333314833846807723391559376168982908888067984607997575316307490405875894077729632519287068912269358914715360094323448431774818429800007901696157275900445557654993909799563849281829790905228232980752621394196637264007656819292198286561046256952767175448511618750775160641433658257291935812624855458938586701510897834044341536241254236870500374910856705544706689044732657241212227609540764590501133386503752457894574096159866806914349866182438518229382835782686986875633392800297860064654645046149265541310375310250433471901743237880088612478549424205049953217858919684412475568645162569923372643478432696250725761256624855430969542458995299456593417482666677882716375202013573898163787812816759674357677220298931264625206582907902001084562500263370329136078651732132696386865958411422421978929707444855309037332881241476342724677293151947239695028287058273157225876265666874185451266249186583751282981594747684930034305922378572292561312562523380552127081512286104426648282337466839355609929985890567324095111114585468971005035491085254552761189454002307168762481268724335922032986808979709866149715844393713728751091992706306463342977176459620562160315743112900392192404027703292996518567475543889139342483016748062363965438924312235560781650264357293529746245233275019096816277664331321038438239128584636317969771903603485413400444878942782689851632218377901559849199776596177933843101051533101104595546708266445944364184889924831720331408003146085055896641540377997237811276047269529878865735472439237949969714930770536086946890344149795948093760544513817095537935958022028486427015623933073104507522588422191547284064556651117319173822186530935789945247269630311280320398648401038517117092215444622550043448959766853938260457571378698383285104855863421961030484449312151643871459806098397328039822464070194574334591899265516401668728257319134508747312301418385759731790377984323977749966371981590173683615055383425423545203826097752728962976409599086619907356467993062031983091460801026528355659810588371609882111159790853457583370235165867836461297475380240453539885043206110699448432852723441999550724371535685228776581172011044940137309422182824460217513364328942142417704651447376948956834977122357831018008806689348670848374180575417413442656439299381321960951310325747988277481483332459806948273880829269425103316114625663582398196834185299032236713903673482203458576593554670157804125519365004148298486424690400473554580661792203354900462583238610804075598264524587944937334921690489633829758531442984314607766150241433716560784344495527658329882783601973234448053249637296381560806184273577388278511275105787000727024157015526385800481512940019916468671526246965063259482159475707330483033635859357792897473214405895188211553152323185467064110071132445512121651739321715261700972704536540312145168574601244970198295764131207636734475696988874123078532569777773272377831266261669136810286807857778584883829296709048403495594039884289556086425350081693806665120133061833420071889406139059886455117475199006061903443108866644524861070881568478340948635164629485992496828207839623156102632259979713456413346752611743055618878848393796933057350442413177126337904489680236331357897100560334516070361375623253074820814079826596721087096417607525200174695395564539421571058155245313565189651377485260819577438179526516578901881882219461353976423412217106654839928664617104798878833714012980375353510807387168522925500194495268706720746336991942041815611466912892393287504845219592956069799473876438139319268417325002647790789908795651476906549449902437990660283644110039423151633799290926643141165736742273468808468951086172333455146576749867453589658626548320366985391402598289421953681389408561920885292729587259835654759709956155821192884712961495882715981997279714504079749895393003806680255816773302604226078774014921920079459264926550074000675757383802788797865987440766739251809329277266457518731252729390819437124974698661552636713891185380878083743381625000820098845170968843417908856179561455016823583201398715301937800275641296850906143399591762783188546044787652485626625979724159299548154100781833603931540176023283798099976610874668900004335590747998521058336843530600370504433708133643023757710726280522914908633268947092806070514940377670719701040579671475042715882439416890712692584516091354185177207732112210604388507001904290581388670200367509878126066182380841716885731939032655074833375128329619220982491145076885107818362942850946342489518986509728506117745593193165715739660531623437933184737701666792637268708324538795795309787097595465266576522944066726699086295749608060066322749066877900667993367045413039794646801708996065341082079104204013076085962055999754785209963810745844091581059854697257937463700533519887127213842823026790872078032855142732363680832985864528838787700593891633887887366180208382144726367639616522060409032577765178544238328849211681687677920717179959559300527642427335967426321178837050495514414677750922304799250400303329745685966688269414446696331927912669721495761967804986386537621380542977014725548585877080899935225738326571322008578377797199147808365331016131584894696717354957873910342659158623597251685482520691822589685710111105622094612039888122202604792675814397543301510034731304792436666040856785142338740491066659531462560769414288795613177130754403213175532626709260524036807446296735735322033714356746970914584094776451219192043288953816895204269558708408192629400725796254063376867453658171851982810194369755551902073444801777756743483281163800371357596247897608000359572587150683713850481524753057194069427531488164346919894921120466607673346180461700969085056131704933792286861295385862136293587164624231353114568483237252207099084734424077830596103658418031971748367534322638563814937169569619409570913782013131829765270963764701380281722703534405243204393132298576178347571044788885798709022669385710424777792003462884800359310058885611132318254154080756310189723157679436955094837052767222283767042902749307550643102032565253096542605014204273035602435185633918800573877328714901059397852908460834830192802759362886267965611388186516193573389095377497115205407506700057896263129308441335102824458712024863512573470533519928338324990909093194382512785763766842297936840826629397146564814360240455963530536468150905398918589412167838606508763895566286485308825507490272916216607363498915446929351853078143651418344503705881777895209913123995954916809751382392352757075336481490429944163253715924030050978957216345455129638489582833210406788442128759468906472264408357055819752578184165996712566202042138553068409921674941366307244199162704032317391467000145467577329903208564142664354626224901545894905087369811480564352024496301139061144122832678993793249777400932997460040558954982588444495051792197858491057705746089038068646208814323154468122242701659867669826999531263998372507145452360472707859854524938641789640513434361989238415887040688143359805973789841232892921860814313197060779565375555892210211147190583056532227790197683712280106343003259046917704339458222773942949841345997793049484942071041312969644649920345483040058742152510631816141061924186065946010145752163730609347186188366450945187351381025908961232260321396754564373748979723896927046089950367972012665537298329320808002925376229963396302061014552001912975469977246714982931371790030026447683901106389610782397155517558958678826253868625682085230792913595166982877387527806940824455340491916183348731657417020474590939493153175297202984944812007044023454573250315481010660841352270827205224315646242458760093480764554124816524620743940353417141829249607081576927362038724776083749694458660029092728877979082278811581614628757879004889787171854158981337669654537825196022820313271303740718456454129901544896976046850426636718374564837728463095015157225605037369087954977961094960014144037041496150408439105097969647565784251392428592227733760900284898831438632695819027570450779523417260978959398788544451798710657881626024088386993394833938796394725148876899718704137213405378015441439042931980115158421083560640861338502030240994018339535998517119036453848638927457535615883720115185159355501566229444811962158068152492315863636975320975366413935923589060621116968071721477363878775636812130961881520841727271726807180387235509666490245730495390178787939867634038199576175926035617510686038079066241818771235631853414224896168169399088181640886752613720396594493595681508921207024920587636845375099060953551048608278113544423586414550916924507617707782700978264090929523447817672411639365490766737857872509607201396353480103783174517559241333783034607625315842458716354623786443191286776893462001770013983729571240582431276017329858268224941299460751183965088568155243517707287221290701768404086573669809233776754633246433303932923988947840761922723119571235677699207509380618429625027070454299043774353560218935189214548766203610949976174191413387274143794337935183630843287237284626279614966794582944451045544648995951962851520576309535757049967649710391676403840789830727085829017987852284887657258937175116934087552047413284836953393465670931841358303925424132816090791650996671218655780818504156502983656734087600960047076655313022962716772856073116921935973731118615377416875816433683994651624157322142429840474734998967784012131977771128477950915033541558899197919102433919571316028642220173554066567889528180838951817102431675361334405881698961341462562673261997187753103721855379098031307589761341551215658452574312245453065360312400582422793856450944001758797664444060403556412610959326225923561023110497389978830429313806839823150018821463938609973812703929519617909710304358047178651091190073707966083910512559834034948422323624283592782423445940439168341304903721407518594202740187708636939213407083937641773738732012037469182187848549038188320785604619981737917042222793848347173564690981906469550445332153074853614873322546158139363849554355129003235625209157123614035764558612901535328191406681385444665895474740886369720947476760443368001530706551292704842924038925244129027674840578263199579972860333989494360426071931591281368996945838488872851373185890457918130883371890468170872689111645577457598854278360468162557210806872614301085475796502241996289168807625903375386334230763656954381788290533673835675784671722316233088455410241396535401268921021592345215766568407105165724454145063358470114804216339726276713482316862871903379911773463248853387944384682312591974260024482996557002774430001189666808665088653161031590738125510902834848958897577399199040417317569828277511477953675115176205373366045298693103431472280865927717502657087492502217632052232050442294551907200513994503595778909386670582091668325822945324770697810372087059887423641676934358625068188933624462569919317475291617304529172262944477989838380112253905968791701118292551367067986420087705140664766307444260942236612401198992943737507135883810078042522971030612938402193413963854581907796744183720976211569291253344341595820257201573027024210907402204666864642931820530025188212756634556551123748810105462007358003935723809351092661386998474360568672995781929098561824099347625142935586238920270900724804617905778897357199235418797766153866171808932764184685394444953288462580415801372540559616426841412183733887552356373095633269638303452410619844922143199594197794584135372649087768802509871998739795327534359395552908007388162700773649115992090722263448749707524512888732284270511986442782043730977710889779127272161597599885789355870357808944554752023563178340889630732779751948932909454892892318802642588749801565240002254239054583988313118807780373597900786369719858808355059154505002697008532244975734835332670941437776912076177324264096975746573679357340025933870351148095673948818560024599704776442216506002887995395495366786046018426210057319216520960483902128110230006398421380669803161661885705593525160891950641708933511832905536155338110816656425275401961926434790076221363411558651751824818997236358653968867763552896945367297575181218877998321338059224751317877675337905909338825605335178923616770897520849699422738761845490113383559502455049496654820558330813717645834074122639335480256766274486972808103351360794437251539662067399739503903957604357514557988460819370931884504489662778305798971942828282278404509136930021049565489508953537957332255545649456236977350052761251807162096619199157559314081670222250416704301671812880338249389746788760628057904169723199631331008081931990583601742863752719915440914584031989932640015492718246998927135547736171081196338127589923001652015111507884003817851240049944837289185267933444075780809723783556874370371020497755801199938318651524536581653389878210159949641607385308409440486480894816193847944474816903707798340038009361274642920159637237598084074460160150288544846817255718785547315142626939578336417425170414228636545030244246921816222271341129307099392824444558202262190160349318876095177429694669742373389533888968514755192528927393791574828859368966898898255907617077295817909543450965912734213507522491242503789471340075401802394477754967202391465263204637567985930926474300567023418299820325864287648566320191779845999520072958226061736292023395003636041854616620879015557210469270098450843364519093451947356627689181115564809352697964968466977060581924344084642079175780159066664520711949913987624398554147598503275938246890278665625581265603002707171617269686865277348029692293042851677597300390881460305424256271581243563152510089912066715013671861658325454352380496076829307570188112885776419552446825952768527238296571972218813954401272704009488189385874412416408833391467314949020517254673537449416086917154797020026745992463165816818329602488902702037167122456512471472440302819779076249923893527504307851934825854075455002584626326220583393666843388168027123123306273242663694341589586940067566070585083257993927963518461732888793389596350032396366661473420298572567394400130672079864572264783916798322506356921287214969325841394556876170562837337658660944073487365337561090575898928026875310809904632819722623825304412619205694714404371651296017873667723595970353410451628317833733954622958929555307147317883264014377796909546245930078929222802607113922391836694063067605605711083780437038675724172163617871194952845245773520470132887119738368762909981578074898406162835905369810353974413838972235704650312621757169811317467981931887642391885089635201529753316379981608159632556035589688388360392991843084591788958665848280247266737539943582532923661663245866739260027011740243079620323523454950225897732226834874174772481559147056489148613014712410990574913753991638504676564481469416323414020326350393126873417049831748711532199839314883016742091886958802061522119493170979901788045453537617282058265368105638062916591299614609930673814233174643652705090146653275480470454038836499468002099748026762920868760573246428143378173467353471756113999974088714941698645873947132629829500025547507832635949981260085900632856984625441603953111875317372402973213129445045291791907664360801112070553071130071461876140905686651396333506864810546712057975814424996980399057882894304420085542674919157798249569518676146907221872629195449027398625427144311897818186036430476897871352380994083112817427676188030540907521769533685076860205986828956221962360015655308046386006946343214227612308861954639812928262245424776603328821508309919238500943913986502650623927123594545470919892540541284337362162456620669536250442267967837180554460479805517317999016720669499925301534975785840789864524337270652912443702635999803273229945072670581091224318539998301649362398796114909166635705393207589670689070635068167468807558554676636513207024128808120479676276067880145041445252750984055544373044178241915243233265210222443756779932353430161369355783297359080426261827363832204612834239301295070098346038056252430938803223005822581910530534952025661996157454404707593109192419511638495380020544434737592257676009029334290892830597606008482049496330815906209759960440584010783640345480750999438037473780056312332379054595416731524639719035304360386336308672539967892674627598725602139442213162487473799600002915095002404898960097940905944151863770874822708563015981269377956091525109614214514660899235051428584066322967704250550740192412552758502174119107025693243833918424841046065385337011635400540487273831674048105850983282112329334078434255954501252104260831437395857825528764803730821476551786596899562920835944333269715779488699996392691500072233803438596409069910812207721703100355404168481433997807797791343826152890577013489138120005499015373966847632061237013218195387290793310914789486245596793182038894215018795924749244659308508646074645478950019584749256408979780203582802023735469982948388977682489048780401753813465094856498362604495719039750997085235346355027156818945666979005174987046663163138691001908286430017786062235067733588495787624458166781856076932883336231877945783546947221107069032878546528242280176496217878630565254325023993351257216059234565596494895700238116815597007086611533915921753295853751344676785873390668219184138786752486768960260359567701511978388423096669090738843771553568913556332230643673279434039463003432361813401910708869406278690049345661225270170507086244340557183997176160177380719890328858564335752538015172222193970927838929776893797313339935408847271690785443068177872749910342630445528580758033726786710357369218610619297993824150817842835309681222113886888849586186265964821145650498012218461367607986441525929623315254994297296353293833037665176291710730625202978703334842856430653535425750313201027563188413826570770708752193324776862878735346768432624129846702835893121097826743517676882108225012662040101633871749315326729661107032190657114956040593935790276325980628001264082606496778946759549574572924844419004609982424084116434180636849697956535093478668451085019939011172225599076551750807107128312542704245576566126017329663675056525481142491072600242404464547502096569505078640172617003459804220053959113400710283585659054373051132133755843778117176102343349819172261254467934573210872134756163975689135492672499638356024752714571881897223079471846033632821541341656450677535964683271778669888850680566377292105307155364344973087107925187494071675416816384589343903886913312526932481702762830026024274176491973036753507540370956211465962324496891260717770272649268736969237686149221306575786826999219535634630105859301092760295300180140126284491732639424717545965324414043749940766293966146197263647211222008331339913003637583556846675315368625002731649896772712758698658173853482510485342449425269787928474013001659845456473577139652450067982284939085412250735845084916849802497986058307607251156442873154845298257341929160810051020791158167629614818040739867587046974655948296137524139198648623099039434953173087423557458725048617420749309933364347445014410429130333792268124706191763906961965395576185781169860447897113424898506326963694430778035488256295957561904311132379157180644152237205538289745124713536771231951129339869336370646328142422105660424171168317672633167143545112010224032698240996939460665809062890266486595182164287906367293587733563927480512382272081860654168667154992005833713641754452378894323837595970013686757956410441818195920695874146109876571358379505866267481793603519965103102935483484062767934315502585737637093504144408353968132140521113597933647805099252662955140935252308560042040354824457513068715866855985617435328193018711248753987812207270735212133707477367376100444995052026794011480040184294318670365692069422679174812707249171936605970192526696261621584673354441150980826327559248495404289121685679872393393170804456780061780392204996142726288935587779440820904836451874654178798717261617833171769865561092178708176814493845096015171642405381985261562493305513134718531903547928444447819854591339856014619950281321302813820244985792360741161074869413995515523531648575885397684163614352271866638543664922188073690348376053155782091774883861805167090908618630708067295233304145308139067761520285327628494499456520167080940203007632598097202996445181500087183585970687146991627172738439508342954419730227115209915430903998770561155222812652033076084043961662363334261515385664883379189983081545381676339104639863379561508570110708103648256798893873590565571161174176228731493920961008865858061931395016218691552668308770063682181817641159951888955203036603982973709113388554062558752495258426596095302246890752761453281044189866423152162238464478167818314072203763701838672090864846534647016773934951037670878708770674519854336335328995032061338721253636491337991864146986789286403775586498031031693951675628524706031421910495643941001263121402823584190234107689973970284531275040587029640078475180156692014926294468047496338008339918426731528404089146852166204608188926872029030236580968608931947232788328524061410802725806400178576087627839682451534607703778550464628377048538636312273125896158124831905073069624063684042455030664171111210353547122634144607486645400831272108066186266408180933564249305042443335919498059002982319844485972344791948342412184165261983699147433164957951023518646340194690813623281236823512403258108342672813120426731164450584567847824517775380048022116087026923503427637392607331027105277423905433706916742182034279552934995789470872902984446437198785751065965844738835016984989284357432129599889874700109833735494682515840303775561493571431516378347153880229667432495145134583656560660344054461299959498363124763460110906638316244730087665440796946289355572243207114678777968063477840196154756919309977316885932772698889603579346793595090089073179577365332890393327612136475519098844560754722874600208896176903048121503712463086029440142689920775971924941017589787361706385563894142178332165461421254732954291717633566459499773450614884313108727399566884949343012372931218317839983113361624527319039819317808868246935206633654940744562742579038520129856948450885606386736660281432503406154915811152009387681194122519441437621396423478633716725777661174361139004116919607558783870699115736487457670463301785197979870786888534225552280940980550786712040712749744884050647309458589153240058760228924955283538876416531703180012543770647512483986550884541546427788381802175963050179716831261860446875259793180861744800312900619430201297922991142230922591369669269073902117201939793988360806466284856898818067122104101403481136057644220505205431144842888482239380873861783378570979313415437023094617496147801041118689436410518643478107311383669759678634358922609177695038156673957167974012809750494803248677839743410760967770521504419377778854644455063242138926544718623445600994905917120701509925734887523651930118369864526163398253124135631774660889037323166063800290093896730018184350682226478841878188322067261508004313936086937042875574200366733767757932887534997198789213566410672195128915901423006676191996852279409630921930965920578572357256605612501698841567068258468282373459206422987212581547396654607171900216005993577629857558484576058182051129635424240228009553198731224707678737462718635843637205511065413150085236233353314482189141200922919086503918535538931492573916761151090044715078002921671136901436191227765502991761149673242066761101823231637291326211203662016809908367156143948220271201508627279810744464129737743480090129921171342352985970361124833207582953014100227392319044079247710200465441238486712703639594417183398322672912361356105439860710854763408429126565628160609886619537455123847433561311715843703577147548705632759604101436297619137644618248185338442703403538040027854521391481596151592756514237773364135908603584027162754870210398531791798218054071897855922315280882058685648492494783674067905070477038033274811083298742499009744688827454719284035216397148551925822733281920700611635866988602622471244251512544056904648562976332523847233486338007010043452222073644476572465613076245827189527331909912770017242469108676220019547903917397964483516978035699047738762924528195376240093866461126697378045004251896226479278791978451579982705221462273611986225446707744316319489006815639797403491028660699098959699167527670937115191652852908020208456551375251380999146182186077288085932903431388469876820317048562057023367794752257775589537854812077979390117893588647876217082049777021442692354971201551345216065364268025191381269828727435954904675707437978127984821000711043336004309979649444860072966040273210490196409703986551064394628181182150717337895261258219220418034702813491294187382942167309259875046258416141194070074178202210475698798377566014509650857880948064636872170574366059923661617931667717300472695302979391231231759821003181821362732770536434089603102496356072255778494730213187833582380424913124184595379861659004706710658814361415139855516756974155758254774864681623308532921573097571945528406556041221767711841432909169530877958038708759698479044915183681638910738234408724348535913339628400720269319742063450076005899697599456480364424992050957727320285408223762664379575477511141590825592843913590668221462911200950497698583355573955309698250116833753241236746163001194490418548321879832344651048670053872783586026671066286693854766209796295359663274266093392044474943315303403061144727221897590616306767960542803933838720579660983095404238207812200995874117792373899367208779697588579146777223040530706391876889732555781109338992214568356739571276219874676127778143172574875102077393577893105615507627093079393198887212178319128977388015447581533482612353174739615351025655910912769348184281411718991918885327282101816416970630280541668854761864011858639726913482050850719458031460699477214767226974033666845902334826749973099364758951240697489666077464013898012038424868298352707298991180071143245673333186113222094604554725676834290081091905439023339924639177653202718238618578193042271120343003849611362222979101958491756627005497505964921248632260061060459128287740086318238805365103810031457118633019254739016380343778331154652559879897120357209889677789293502525646023407812868613964515387903489988818108776266234065962266362074492648217577534697783387022785383186559739101212332679596334354485781317970007472409835074560524421756314376226853494618690463801360306771170236804964044193544135838479573909570342592310651711178131176483172512852439433474763518054802562066255903313849584207331271026256141563685122310427387796147179021355535335998365020827499513650244982546114275113194729397402766578349569232556651306418143016049492528063900843410886217119406765612405135526833905545800607334421544824075233613624010815605051050864679794560066224040775592207450153294435009693882146719343946512614270556030281749736755711655189351855588961295452029463681232402865248253075971018873686752361447826037971217580853236170342184028753093839554560886142418156997199126998718846731272506741743606873270623046142785007791131615022073563501745121461505056928223946677107632531126935165061235838662914960932139466201671043148361576999741652452760430302554856483861760293053168534926493203603441494308858455851855665593835506065244952790803671528000443415804740362476409616637073176690045304271703087032946737024283008571401677110994009957477545749988803299627244507823561009942595497248281596124809097467291245621739934041617930603408778451221620932375443756385924812025732406651199175792869457024748296772515984973945835679981874185779958891739695088174267024818301970255484306401166281618418509916976732126496172436297252413300382042816132755389203157722646892824942456266715358334239832785196255747502403203473338109504340620613104676404005200246651939116239500923134492942332810822940338679511287498216236700970051505269986597169884954166593821337066660475534344633758604158637145967922552898299564121632429358736627354149335986246747618393981023036599397043875848458831047135169986757295517904809596922583196506966783068390307261328085536117758770398257562517320781821293294173415722330012323889224336734131391400623643255329719506500060463992513969088366431006839026848491830641224438985392591235347603491599170061346104627185430839970892901479839373462288330334708758749288755187944227021720192214191185989474035055793539079038660791760920970244875460369109713450240287671359591315603416195416988642583098317248976620373147316807958333100489017914613470958198934740657789213500634069299163111847839924121301713545447413905272541570126982073512659402616321649179256140104727978226098577739800351242334077685749518190008318392794504115270509763722727050004195518402641602035425319784886019913568653417918253311249570629289029499931061712468760179354543478032325339768431880660420535914485435278198178063314367353026302030160515297344026050605916679266048431123207124112270329225692785233935631108309923270954558750119912934608504348817560011323138388103152370521840909413216940689901365811310319134826868959875181855882689182927744983530095108074976304365857855465926054588429254475319554008427805309615735864810489665289479686490098203783238447386252931550688082702007683958825845921716759077544331760895494529536800292967884762169089272129089549118664002284592809261352377985072890441343799540701845302952779956452853968880612609567181276610113634232798003460673452970422623462762202871005564741942249765243530621846238894978693967665731414131682170927581528032580704260223666476533912746506887614987567458290830081716136565007459281995815796149616734309086512475990672660270273050553302808947555298665665963718650683210597195258205955866722222401143985181230911522409426091969501681607289251844201513734243528365305062098448921553976333135382885733961006824488009527790827322873890077238310045901449522895759571204802901920436811110157648232727746396683362069785263188911736335479010059940510568007930368335653165925318854296321928437800239680918182021743606923773981267059932972527658147615883917770204171883613271770008496881104157807641794395618795102930368191528018829897866690684015737128179842412016079543157493619414241851408358208543711394547922773753606205819146578714727988717204188480859896923444433770338538745656443663697796488129033447844321136049508665826638875783110820094505325893967451781611614042521040120651397694080944474789531741867481599121334163683587644367794947099246334491261415368365495827682474399621563648665188308788815915802530641979023691501150134095854174526206841520262036057119798131098822120053664351613218607969285030086032517221840452981597627594035611777984432703401520430150756577506256304976151218921011575442883963600746262640173228810787667662769874942732840853194228960364567598999283525858576518224935264678434701529189876055408497622787299818893991902435623802303586353632236418938017064727205774912922912489811590791675146915628743954264142628938031176388032288661170538005155530861940342594220939825124385822081885474923354340638347362969120378621916189367458420456184024515927315539269326743663010926114195071539955762670081052379190687896142908847245567322845465797619372486235676882677614237786550938331578442807936501520252084854246348416618788267799099139672834649922110007878204603446462672453507332163839290511933281702412184346032300364913330527780911710303943399153007622167478448200504587726220105727490586585825587266616623338944849738055556773761320390678605257732451488965431947981935003375920253709984322517927709348188411036712258050354415276457150376724534769851090606416745651695503822390477819578192635034676269292020250460431855187897021656464159859617641533040693194850252214984857902560835085206749615079371179823213912449415069284323179491261810278611939376816744415489926433339296518238564962863724473582803402295733046997354293333251584388678855286865714220105391128864413043314037569480564674074735103619763673600987381977818188250006978490461887926016247518035152067399112985432109225837508356437049709641806988796244688564588272831773313034645970862634278624578583499087456410033711207884022219185882494386967384404759398320767168980540562542412361778404672833047331501336124464950217420586835662107096512161199800959851778044226333267599640420573213865475153175592422916887408673991848486975605907590223930106755722735522309123932190606460341998292724238848874903534400638447664989569826597372029747583979294404704734092452547515900975186778422394973044093313701906704481126817856823270251687901828914487240241986765005879739266319610890890154639266678561004779899164462944296869355603491147421200843268150351202010631054911243609819382340769434117045805545074790664457593492623643755747112108328306830249452389425584567449686782592384687201297628779316217796870882702186400340123570363239576457960079918722470529825071816323966681420285274964009941783694036953298630887279646986164935010180777160896842311175856893205806693780433448084435730624622124571486492622964050088869438989870117653375150969616199093248207798436559577291751108572557196712007493878138489689780240200404418659454230448984186795705504693464750940032267887316484335447935682950471480907713068370969945008999315112280325666085038966121470834047264296319728341703724504344441745145763746275951939046287168713775166109131369382383920255881313676480147927966818664568184226321739961185184330049554738027056471010842584749044100759017462292801769234602665539779633148587199093124392154828310068447879769549820691687109744882951833800062509340869117685950104234954769203339854049570616582393961909037220553965790211799264900557983942403887093135547180924813837982079689091167032523628940611140628319403434636847901266627714267347407782626884741295707427532972007704359897131479154753966433627304903387802676073688701660406865070069309661646471770123251173220965251478716792926975201961858717322929261955961555236256628402914434421420456478813756630494015401212303452130595000840977340786036292067473879927719173467504306271161101412637960008978222679525179473693484536364614910856133351965022212978813440612101060136205905559266824227649731953950288614800231886405978840192346840124361387571331216800580941167668760182497022809434088448220604046269495204957892169611424579156067997188699658188464705802466254401501691631319758940781958816028987064530822475805506375166705063413494744531421403409132617765307875217353618615439956323905050071325046785168055300858826967337509509902363717114063934505036273262784653629055783635644731468997363748315582858491746456112171953891638868408184687146955954210530397106354451321010849548442698602318639862643896256853909590377338290602393893893033972006397139681866199705901802889068274622533063029620123067715345777644745017897083473990381634988942644411988487374887761526127792254394239952089494120563342017599482856575767605211770002292438525359867466833798182571713282459956689185050477743816860423671013569802112855269199161014117569311278098694055158075039837613542207740841612294910409397407618314433646028302722593698576561099313467242183961224109391127333369989550177354643181657987469720178452474483174367980278762891681233533935154207850085904348145106672563982270331879112018425171318615762365040920772459847373774358041058886368593596386494849754713810951448531861473146620485569459163374218076007150218228984584514285957654451287888672562511678681343927165887697701859148964466389169161708456792347978906948110726451178308688927880107104964219046024473467362293956672684737565882702304236366200127345404893745792809823236110139424375052130415841501569772324442694836127844949392425502380178990897614171700793873576476882898763894533934473579312683697611074617680412959765664378537700993981452471071575544537677826947971497996782726754914545289294504153635316340233502825670682272168794521748541376701607036661635374923284031883967106031645490859584026949836087260679321274443706650790186128546466893132124214953051083710753249436026360539753155514982009372668376719682539364541934391314650276648778412816698628597245964403491050861379449385945536542881376367271308237582183739472275371802301343396698720792640768071380989379986422547181248167076279261088369235996070814516694555786301241614289476290014832201010365928552775307657118780710172045555239957753549377283031747821183077293920674175690669718971429327794066583692240183135974335445325936633767821254301674857229740740705756655646853882341123936923203071187598558389510345816254746697494503144183882138754484756573085498429108561725675478643730967093460728600200694020955165751782265266630380868206311432310383152815888837550888836423472975927277071699502586003713401362783381334100271166936757048687412862041443062386113674367477007401529590138079130628962804697369140343431559692664381287584832437033729866261648044767104153913939138643228382043969758676299969944035340194257270284002549265233638426989969248682399084060376496283657903283495731888488908203319002644493549115018652335060506930951769317732834790332898710721840369670866407457102529420622799591299447051170600678547687653885622082670054958453211053274617047632289706288616405211440857993800778690519743523739413554962637367197961120267687430539131224141354948527943578415227363889542844047411422243500941870141935151498987162030018029511153530704439711455673409790235400838771780604452405339541064073178156765386753114573333909333667635358632135158593534231311487598005413230641333738180991613371266281930593986973981968727686419133495101145349372617742830287866280492075474043576011542432755910837990719220808993261769531625991294248767350843713444473079156777360155887689723358244350869395690310450946842559466433383586963096010759940298302341840577860768598181964329247131110338467694435549512705421881792719465996341295763482058599350551611838040759811747198482989890310789176083127321939804867181547895728330112142871026805143522903433855774982673824245183155005424993423335660659237737385870638386522397722435526299159058728143119238766892051881042772473282195202432594668756489682496212913715842778905336631430192999549215775786845703054753242693226680498157053774064105552136470676202298564138655156266769252371117343028504682528279427559709342021605046177624677924769771180271273202472358154651893864850151392878990377438808432137426439571335129531255990779029412468466590423290077785605305837685552523435869997142115717885472491294464471618484522023122807625547886887424798878571146177833387607251519107803765280446647350263943412048821789684752410785908058973238663688812370325663293282472950125814831382854319519446397671727177577251486213659588676136661338569666366782333530988842599290521734937217780692439860404367075105495585419579086362310303143154845875111963809918594910963025924418952162300951111530660303648866709622827870368138316148651628247003701689179338570268660197349980246137056898965088224071570846525849819025520878313259934310178388632358008213614605023621154564162183957877575268829969917702822959112158564910127961830246885574869552132135241591705009747303119550083815713536294194791532655071258294137576619267778202423275785395978244334855306560702736266324868621759015438698944684657349721425837077456214758598799003887307829086068107809031248334099967685421160768874231146871663287093732873455366690791496774314792660640161142798042517078389246274803511409491586673324323679719825956074002076869183162132934152493256459987920047033384791106925547413418293832929521228626929941517243032763717441227770633381088323480114429591896350887263777517822245776821516445728801837293654148914561875032904023294450615253538803022944662156270426310573490605118624570468514218170011824716375483472683304630648196848418045128843082109843632132180700539637228444764289971461572341723048628290478403264438828099467128191890217035634325730083279465214126600773547544735973743036208018071431126645052265200206544443634874040332514071506154586898092130370199214139067602009511609234443153269092609848368951914155093107000130743985368207871934659981026121720237604691192017739063690535804165179379246983949085393603690219631991162179741536683551976971234910267670421403111146004377894448556788669734816789060979482151130624229148474481288112826742454484191168748052067310966709249155961568807985860458046770930739799250517094091270189403330864730823574952664651553822396983251620974473846760731285893558275881583302757165272791057501196635255430947183253075226296181532700757019529930346906022779142422162498795030089849517807201334872729464944317828799118653978435804510044300678826123801670598271231875436319989771824137447193973637397311050198928823802039641670109906309575816606582784795381591395389964823332538740090929782659244924496387490742217260097719911576412582707669299971512999950988101598969567055396671591496075160177939270524438581391022995304122546861604945605425969980878679175839809388326743331440807428327278387869695976466042629615182944485260221437498013523805971691673067667085005082430081142859562540102575032624885230239201637577508322197869928177815822943990837246736963378751510287504309479717616470189428634465711692260307331591746459683569969915496411114812003883228631149195080446382666771019238891997775801852860394093604381682691789858008381696023025840829973133546264143143589972426256220134423493095436503133551389510592200803363820136451360125251062090784776578834801261962478705277658952231859023868679878778065665862312118835436110597946988382251571280988711830019305465486635986233837543949000173797979655055205782213537792136393318525707605215986247274461138590319742686875190177645627396170600143103314245077115017747786654517776418032993387315679277333138842989040049825341490387492514107596249248091344076888410283333316254131612153364936963485697733038551407512253545592651554788084122577176371602138149543409544370625739684075049245235896392480636940595933099716411545118581535905962417294634469822492440204205520588745805899575770277403275904385395109824364987021465070194303509545343581889142339675562652896679723552555208083499544436436436612732411979985076307912057889588916566699621940643648242734450877658850933620561947211206844162788864377800727437765372401427439336654991898130965143399142708851148632560322138899304849992012855045003649872492118614379103224613345652652667889923512002955160721745337916487476669677943970731506888911558809662568795344434911775249922659592651095938619162394377523373784340142114821922900590525481428148437239671597251261238430641615062701280633553919849526481955165989696680323416799592996670438401350802529772277017168978508439870518257969785232668195977110412630973653302367009564877103123965326467203876391998143966089529782366612308337075377080023382485575478660904525817115907763423817262354384852315310470856513301606773463827613447016029255144118335759610236578283848775682243299213068534125840961410781724350208045573516383489873462630094719018608323888475662939861215613874503505342135814321499763453108054100906300247581648570510441239421813754469211934892567103843883545732215038279448853196245741154735165228297489911791591685822832201206176915009469177726413461300810478332103936938263054455323077798905493099577324417154449162486197770580881480293355120793172510157755328026841144754436247326979507122215817598648542159606318850622987861398965809664434855376092053589085700269117238268880670803381260024361399811546537558915643161747022454206936889326851868783357172912528322714923541580693538083024199631257656980984891103586123657756139246877465647459970950821556031346120845711439160846485924678149992249033430097461688644197959722674613202235015910479086832244091851956638773486350902447658224507232549758083000054821378646530888541490213124862159002668701642268999221600715840589274941276935922177699137265076144049184764296136169296371608913160526213442752417779581882431008920730934492688313271640039142201096764118366276692463426196557341838385987909434476461661816309557705046178062764303760179223938473085602698934702890970970935413205433836368921668985703759080398133740174441800460127994780252555094882938475781037268714939779810893603732342790271522591776474254770435190762482378124138712099182803135271263860102658641437251603657953546456944233278517812968381345548870742414421687432229357087260133964003630328519761669410186195147982445623671804329158376601397542386245277214965465351083742301796455055194010184198702811145704906958374700133978394918938804412014013072975366257437924063135124870434195188953036035615708464153421835175380393203954846908572376043800783185153465599189137946063056183070951432757321809923717594865631530192292007559957165074050153437038369684070523840165067178835640506985046872316421386384293598758362151716935468117185398168824789561113411279996425948338109776257165882736719626454509544415426035087388293703378588548484344460228125303579391938180595581242647679035658291075273712939362456110612132323119056367433956958566352371371471867661184737595037087398355305968984236961066986161448556113421645847064703453666476128362806394229591666465225794501329180804857074741178582982155019444132020257132721064984965952351066755766286325975763205473444238570118264016237416345980680159677805754663090637415902295070758860411873690440620947225526488870876300923780282264031747221059849043695694608371111759530722181512190623673753003038120032573521075767062079998476336427068316550021212079994642014436385677449017370416124434261866556804990246935875513052810718615117228725425648756959537908149377716143024181330816093171652419107530157769638802285302940521739118867820513762706372812787808900609307283067747890356305888472770970150851184049060218032129619969429133463703921998763568526036243263483329281196929919231914681481990161577568823565014434365534826089749463348613158763018962081799974653495645883832259947477103687573340172581297672194777713195448519472352255959949831544047229592278434360989185779486009071421852145657828432228595261949643396862267163935908369323853692808733535619044055549796800809460079962640552230634869213761320397157643608875055140027920196575567972917205994986290086865320414602122651040158607153212062025292890119806226027864908585799897322907978448192397144351055809138878383333472197805665482507455571117346381764289301039004259670315807147994238709594083590467297237498988986673079414057676107223269573030895058366035635211757261813361912589652607394177563174917171279105686562692457100791103928781807531574111334394674328889603086108298453312182936526256929956471468527659145661228083895597736252772582328598762458742275688969664752293473276143995579999796723012314616423127730937609157719572121336990462009572303287252654182426660161390360148571965287198377713093381701264762978196834091426578177063035304412773469085852329140016045470161865606251131093544628260931480955936574153941980766594516592455902813189767351679967513480904021674663422120264934777169773525860275658805008291580434818132241119496266213029518253890147766481009289932077472028036957287284100906774542490562751962727452008645649125952424591273551971419949790387836531926919813443793760278484237384933795727883754083274180631053367006462158349704935283978389155522849187049120345817494038702326677759225540087691273480045008892141921980733021939085448602422371256670263889271598719065188927750996482230211014591139240245864792542065939439526181135230415425865912972931087030953827729272502262113540825469847618846873795406966322393251885678226324293401387805986307326777805864987053784450746133354770371355610991937069252425434582511347209117213708379258083370445123180359086735548372454589728343270093474431978524110324881940911350744573156880770899921786271322197783585190394795377784901036013072309770075745087713354501814722116626925116496858006952811705901273996365031604150287562443817259013379994042148438915625415137254020436873446744003902205364648688898556009872896297363094715387101339578055933740381170577983193118412025068514965474347756612212122151264480575994727551300383041665478776902319940056423990560940353519186813693620918494957812500437256281661019523162856198213059677431005774993495916027766585185414728639271471177848629691632047354111865835803365795010272366089548525526690162132406866885281307372590461220915664618969375275765988035787775442760884044305927473343694173929899270412795119312379652853791211216505270647125881663249659543740663948009260638492711455096337186265596126180088295018219225571246780099128890381266683229219604874240188818431158712066623673760406706322335822648420193120868507414803665428702829444135559637136381477745116442662347383431828182384456253301088234522270826500035875557478562718169927888436352029134102604396651551565196372028142249872812765929352450863120234858784645196902417578841180076472926392120772330287516409702484873457717851766080871824300258768771695385804893644104610483944722801816048764898445117570839604897243656492841886955972322979551835756496257597542793522520885826310642700776618142326001754578442450213006684213010059236144896219740313092461800048899928302315408260033127628412141201412051168880482974034249390036808467350155603627134458076696857878151529256489375397574789382527415705031813221609736571177868274444381430602457669627747773974915334757197296232073681291086132370647123428275608422635102254127223648912884831082259878447766923082272715362087667872466030828065583051364410263890892997548552873003137028071607055049566519220312701449932342743104156340082382769760729222294957950130593209931948175012734473271347125984432779516097203458361135859196224433311452779027019079620710760833988535790435691381994153413242389757474504244835881082863627217920638546058707615273198001652544381990868659811040519912922539342136363183914023141223440924667329134572645821884534631914702247265409517200279361630979565398351177211392557452053286608181116839574576728743231462350048662908934514225677092556066492350803803261164816370703529112117089743708457731794817031615199065027805061837203175754535162131289043839841302991889378315648675891553938256130331308542082466098687361166160826818074147727488068538470471921230539800746887503202210347759685929505745502107317257334661468627432551451379025826421243773975054226027879363706564333899224102535211521868104748781867028400347390250161703875077516848502525610242328096419550014140860299448914207831017967717437167402628011950656576091202278182679042687198180184380532549903909082206201763618758059601613718717690906863337271566646508750134788970088521368929822113816070951353503415274973944312293653697212943274426399458369399594508161318731688888156988670425643605338891013035744650518830681476459859146901892740402966327124544693556196996160622706233420482325220718074582286703649839386560943909709090908866357160177304995849479131752450721111777896513959557760977141708737475452768465578058227748504154049195178334243345827008686856255039703827549530724983890823275729947921194200920717251950533427940997917650504481384207610033192854839605045288734612006970877763531657276721972861023967838626957561352538888045733376418658702735766980973780533962800351036942773442920137642930073829941626663910241769175061962487297307623884057672791832404969425428119773562893777754265474709042995706148965532994155045421295189392809909439961547760255984096161825448872965892415283947542844972906934183109991642567396858693042178092884566984292020776576633317473802270652830480211941295102679305359052810402783923487049244390180970539781851662820607148874766922488869516521125487471966543441613636627816910886935377370296116103908775236332307283366181322750869092616807477304476684072101643088865818790190770546676609492963730990272859184717274060395039799009234135211546335076654370967257702497554161426221283437164042300395747272179488049323246735609239556456336635914677943240284713460837606223195701093626601234159947649835897017719909602481744286825249197913836152894979502263391207677678898513223485270580046943896904134955239037954784902000140083444243098707497708786411510009567438834539397990369366219926533023609500703700981448157552745626056725824966875613191297702413737936355579742617320797919872283466391819376476768862187006884761617276966175277562571716140621924746376346300835225902074588726219687258262898617631620749912704921240758111838475169222661430850525279600507746107787456218585520507914612196309985762987205739458929532097568744614525597551304662114182359786295631003784434566649996426545945164246209732684512414306841959598807191982706430674194068191288199389716798555349099221282481455215159375523465718542694768190830270944259783164723214196615874243778290096561154803823751680641286532558446282205495346750443317581779378873134779043994103892017542933956597233093772423854103544492445322780511925484049353053155513175383732092875702533466815762192730967705340071029875739456233454216712486088253864764875897437813322024747155841725131086179314640443595508946795912670493381799965676335335261253336583985356795734217511903878256582915987613705040284444809179040227909407392252344444847665006391810990280765910420411951685189470460047648361398115624391079679756780479106857916892230842812922560227046371682165985909616795858733249398363714273089783013263162511384259645903822834588148420297549391593975522786826062820314923515889952145711341559031687417353876799242707961351312683309222037044216356116061065729133273808354867439085959268864427360013092223321421419159155416421482691668644169694003705454965736255690942185631643315924998224310231666080942353498565535068558395825592171871346000473771614063111076258404543493482723779565430576931689285794750792386649127169039619733363702693309544097186461411227726537142931867011263227444891117461235280907875792349198987315502002970106975589605085545797847610827509239038777003861653897947013600685731722361129360096672238566706753198777157313625856783011882383242044220260219415262477439818550903373447225650138935862306152342600326746513826824255088710119936013070913963043748939112298678580876214842499774317696151798377250645583055087202952700918298908829391746205320521320592133568269282064468847905587524115902542146579312148373476025275636443372142116889165300326204567734796376842982996371153636658070397917847088844210228137884679880825725463142624469733102255168019504208169150034378226875872114994112088797976349888146724640665436738073859091039014011313270848672412002439026130164819910056805224908652938989474580617053870956013430051893997778207245117657570645643497784998630557909567641629420959773347673017062062458208261681021002899074470094754526061675073995153735807339241073162243257176150851041421882081811614809034967651454498693964259120251290256303416389274214133605418868540647584262447890549309502573801046793394716697570668260744540127778050628561815184822532156403616730148770192642242642712556241548902220455957285749569562890859338438361578904259446755248279386359406066385084001018924762175354698727914031918564709143311080130736630581726419263343646530855422389313237515403982739893848406861830344338440115780000461228614767461404094413326338990058571713887106228592068679418537300647529168719285827996387371090110603010647674126600426452714783398246047083914875937068301471544015791756013255223012550446206186819083034630568038808008880275490752769350662526576599641168852306911049636118516581346424690161402548640962844487326026378089197114301080627054577600724986961092923371785116797872338026947387308810744221750648104772784797280392654509476743219212061383879141783170123811819657462112043841021176742672340866670009514037828341231147520155401308320983008014648660013325960448535683039328880852896674419060899821604394368829591187764983570640720205252691172879712058201723247423162123030431451318913924654560573453450975732307755286799785398052011707752908601774126621901437465709987928146215396596389621855424584403957422058902229944844042859781308812545049655420482053816805755198446730816223573078829811772243442072095899388041131231542651765879420447713913798702014521393730472172983236684014182175489582027857853302872880886097535370636898362404375263110468465066954767871992781750367465543043836102013607524333963142408248659967329677361215035699506190054341440028476571250372749647992976249650073731099501392048786831728477982430638789217912215984243223263433855362564783152935552628767348505648709408112809205970726525842879790603174999358092048659900108195953631950406167345734085735869649370917789290445391963720258566402471952711137131612145931096147268806492472118838006801746119349740055000957239963777746458350393154024591347859600318805633763549995373952206130293488653880132546921262117129031797434177878491945535204843434276216484034176684756609979059592925606892740732212103699389696560120052328907380469817786103566962253430883164415340963933061724238272418366907335379450736499880807308988608053118327669083876854471271107353395528833069517178649093932573645298522521476915139023936952877607672633402721117218029522259212819453072896728839378318371737864067437168189076710689691698625689196545618524550227744772340462522384322641047877001755525001579510380666046490136059161825056277677240519749641468911118755660720447802511127357863335431552602998335259294926146336728590709881345520523797252040370729600393238092671852183303492233619544086246042333041282739123939992325535553957236562568222828739159005901643210118252908092984941254077120689126837871129090689307312874022844412963850408728796322751780228700046798117286119896156418450762706230688176811119633299878339099132088922740509440117364083131385692993515815706503738124440517726996307667430856627895363331348715021471515644201062017090285564784848445193301342656093491703387544162543604042804596909752032196002102898100299074721902775368987368605893172596344115230004149282094161664564667929117650912293875043690143672062936659826984028129964747838401222773924401393294266462195577565094115523529574790597908444387957987090044826518974773317775987916708576588501032376096210915759835127442685197791623580486155157261415875880254783669955103952253310685280528303265750566027420012465404822786501036533214205141725917331039549429171717790223774769791173869888977571837397194731467572676925720343402669839711706505751870144904187970589659715420468663446822104511562450990276956301519618808350294157415792738428441791662659269174477313813309177072306023752300254039548905574761721476099652527712092778054973013353473237401637198756693612585292671415306452539111836327283791679534917010643787709806539530073302908141299292925046959175558951388172807915407806942066645804375411045732433535190278025751320729689726170818971179640916934415806771523654660770276987963488463611512949328246971766416964696176062262276493860022067393791033980519457058291821492003831853935795651984826782863995549552098762900357879136522547162526362027234548460103788253034879731766028811872760826423698293504893979254699723823619463558538773457917719503653329088963051099871867972403722229836153420317800222939464842647156778786263357235369763611427648201381798788025304603293954992887249519937151012419012573378033935948546324587633470012780280593399657516829776485104955419669823311927278736211467345530581418312894406274443581302455452897158400212889220977907144507468434664077678283218882270740775020923016289826295002148950834798655940807090236071997472610675600022347234552772713160856908412695390041804156245484658750109171700204713096590228074291157044186073484000081286257551981652866469960702692316705908775946521161473869597357209409344185730382630957715124337318457514071820584675864111909543181373575375423558721903323550657860474892755324543478750380724195471030437746847032591782254813981607542897174640723512315379277276204848048219130616081542843102423097261017547194103986177438993409412936233826336021125663348177298135528135430451978566461049933948199576681314338414995717755084122252169534169847906790927815741289271988827021567501174134809959321307064451510320592952626118408553287353107095326939075739117252929114561791625119933021850496327933901877969203580536302522071488445632173178830386942592573598512514044999270684271099922738907957581141475553624291160174730854131015894658856995648062504779166053067920198905943190871954675378639150091598717597012595866924523706352759726687693484355031813388153638107787795623004556470538089473064922102519867449447393324050614496580198200784320839425281110731032986278457141658271258378868806080178570435605824189675020152319564074219289437172511079249718987835604143807297890041939689451769480360806914385456990048911914569253689401029845147080966433590936689278873394134509013528470358472203879958132994168800483617746810127222988158696837950883484710173704510847940240543017615683384984533012853584069925486718357491484957200193540834592172026077262123120616181945557159845391784825535903147353458469168909086901891241965344289888542381959068310455746266306619505183277330379018337105733752468638548194413846101032846868456989783621604170613455727293666920159796844694436586582496400120318494265678715666791128794071091373015221035609962094825781230255800685501970614783293046182505070263304864404874692594772888138984756231376266891420370648401391397858595174481428115499298696302370396835042862627411802008637298925337559129546383399251978039846759370395794909633105363630628229743467805203004729910185895418504413353090511619530072114115540873672352013322983585638458682867936337075055162377262729603475595433891727764213247654592727969288778071670834022795387756563465633516664604687455491370607584011635182616874299697685626298817371252154637230175281025656858328439463994451609045168121979818300429383764543064076249513780042234925399475712384695655614089171607676520605783234121631768424049984078363178863296996635619717219108036155359976874979957513651501608310529300637673193893422933013007785689974598631833120371128446184892813540555287533559355883903628733267233159941598635333289285429476532754782478233140666434164127083259997483639515288158562402110467196682508149794729876304376440067801622893801940315291982031799431358281488479962028675935475479226825563297422366505931028781338726449463081409473009565082746606499059338372473022697466249484442155301041284037527124170790558931759311083436318006108608821416782327781742844944655817840831618873263987594275359073285959686989796545909070941217769223554109632477622799703607672684538182301949239190334328047361411788638580608371839043835423207226895997218389383015516833794112241278849284003434744852221433450670390548363218466485676122932634693824123470567075336772043615097022661601187419371680449590625702447386457647785085801904660012560344609962752905753439370961977723661848179308214165977288818732720932376425736049720578985926281844115027243581761378025062272684632728876274530154803385528826435098981872555965869355186229749595948737645356982070320325041805887376730134732392078941167229100902022155929427889613810595539089378133908316423015195286257421600363260120820285337779282954217962829255740333614209518495348839292777453405819089416912098824604693116017594815792025829927733163816399029811424661701203937396835383143681978731636581094009535443039811103833740375070717193521120842494232526074413398731228724070748049904697414332466635035375958809460081373639561165310942344273710808625478925431730895179243497122357698544340473310501270128167531196910016110514166860569114876854710660496491139360940712607648890448951784647927255153053217726515175032017775617370512242766427155882375900342660985059275141147616641220830749587675134353981049063688737876533595208420399101189211905453955979642931477160521175843892352617320945815666213634706327683959621938894862042176119493849470089668405214501035017488567952283670893884450275974291088536076091706749136672281988120686973651773283443054665986492447768878658016711215570954687489816226735700447461728715593840099612284764818277668439807280969307120239848357380838723063310491343681583377639068457392465693390643861704081479188362464239209518471251599319180351447258093538989069503570750618129691688476333834504356827004259829341863392568028677276790212168018324079338460188681827625265126464407314874833701387335724851655422535931202992975517952541714602653989022917500989504633125999248141854722379062100077443409603996403479225766237995623922289449046084503779670241942280855122973312320221479313989070580122622609151526685822113088554554624251466479202146608015222233070686743501357929478318226900307981279037304525013154527133033065979961750058799351307839356465541857424499938766567295775508864883022724684622701440746315972342785888215856830995275388429758442161787813763606766763835679711876731977943491295708597504906943072252397521012299758092741508171120795029317613246785665328869131135400548343212465183170693809782977163579165546158241861953527957796214973249111800713176810002911605801801905272134899254514972237832904841089541965438544663119308601839121995181194415233209196453572675829344278630841671800623049934512613959005670240256721243004988595647047608915163534266600034495549935689403834486377550251200494176278263246211592733085103795511705922101566159181049128675093243994101934286689583496836181501680565581997913517485291626352062898491230856338894842407863763293032583478586732541624229703420459400871026080209983934260767189893260583517779754718307645102082469549170692516715589394745823394349857518673561827524087084102959027472109124950774502463454972722911494690926909277862597848707141663143188982495630122362415396987751607066915638885632308881503508197880586249554471336983198528296547975347642386431355374142106169936667554813774505317520591132263569802550823645405239700194049654450272539474023980032950443730005999978893161554371017124827157868553562408880732821787921404077659763108716825108930665468596728927175376103743598331113230333477436054810673683955931019884979133975081575697087056602318050372588207784593709033231387458104522303765283865088740606133431248588091738405535230959507831775047733032170906743914389896412016491483694976379953841525026067733572203511873810151989685345447688418757514445768278439953639745685993649259985439242604668318888325449606611946731323895305848712172247779503009898110655488630844746492741763133542654987679467063353271340716014791059829898040729878135641119979581852295752560566696490158527125286531178502252738196298108054127949915115096448343356453927622964136413686590070643942295018404247249299100440935894192747245264251945550247684809123562793706261109794763778897783488955736582506213041483242958211024461999652171162557193922723468737711196286645503336749674219723841510912059663620194666183068802142417073221169146259642613557114827721107874723755823268929891450058465315117692190348800025297573997909827199786313902484992051436074662256157755861206060683516572807270707171504909749691389649721860034795541955405831889538600879508127967410619222780760062890108118172484922319943351438125635845294219472515360714201229159861411621814167994033068458603674283716960009257677689060257002309209085515790083209920364899888266978711320910876769957803157772955107867433941672603804195244960423020081974348056630371876892058406901801165340682225782092239643672440328491938274093397280605162387411174600892598117848231615323458200586172905620776814550892722245492726885765106262611198697620798991568349481578550838957952720065991893837473643130968654105333760256649101505824407891601341576378703294720430875684188530840556313947174120002535162986024951060504293469223808138320725351551865899783500390685039746210840381502741425753748154676143454416322029695282906287617482634389889071772705634238885631168141712369540652420658722363643800482133815031404526855329698054350279391697951661995039091030979268517713605502323586124120445999997395460478215990886602124574252565341692004152744195506313277531206015454814711661084168337662943115896442224290428519280248331624031147130885966742930424386446379085387235521647061156127411578695720296027201206646737357946017121236086429196307003553038553146558972672567145134859242409625566924151694221160014202508709026088831854966310589126866146762691572919254190051230288031059216548759199613113504403282953188521044995150501280521773751491295702011339066043121830241160364627832458860946504593703894088265607481462019519414170504690880496775245127982045991976965528795358994143339978618804439999474056336886714122528228227741138960780047120592294605535493564330455021362913724556445174837665389547767666440956817280965871233721031873400803304485860677659870823677251674266645131239565578357565623683776587839056330724739319884880946861683159804204537041712372609591210651230024318759648431600509151404458853650684217754744575040218599822183414527007703337390236621752237832949834211359577854225028405507168859391622600456241660323148165363029188055338763649097780161017571898105744263469520248340246719641639359256791473775283528326501154679586774245677756330625916702111243958821408966208879484257726556992709280285750982850405579113117538471703014957219912218737115396251463606161119589149371494003229073932930102484273271487047237594358216669177273521177509050899578582588690043636374012613610411442107671280491085455219173052807674971750009725130431613917750746541685299462375023055071383886306927953051199045088414910127880737840321782633430265824277599964752563193687411848048386164961563482373877138066632417623804416065566263374059748586137448295549935113327862324659326881158346840915272631002135970205861566617593370137715713485537988530043755585643244720782468958792733289613242387264656034642701692058580692349057842379747735054259799729690716772308979402422984851202170425311732129365024161596536388433289847362998240207802334373962288817325598088309320617779892388566031015368075276116462662848733004435500741448419457387163664189776175939907069301958452663058243241639436931850498031022671757566783245148478266836073516685683577932968142398840987406217535050187890420609189778100228686427519035598148736714807703463902201469220049512358942864826600651635905855390670840279943309118224166899452736661278303493007833070793914166167263807179272913804455139717606676614100072847049753418026271900980288521130604534926998757508616601813128187409189041207635096541263664189778669100238870892999259119669112983795755176339862015439486766159191598249496055404229827736758324174495892247047045855275045381077392684989203115023635650373527471369992570368363306109672902455306122046609350203825310944864373670009931591629368520579455134287695730251149704961825391695846201821311911624486821377000914136156343863203857488184465319064840413579091396658176381665111692886191084073949581712219962171482416696753577772984732285327510354412771905539079291393976001383140221734798997662542500712648574955960873272471121026880502817897038134973400651175154527537193680111508532005934807248156426866299669708332704925864776382121048917967874828407599153572361304181004150056866774880161734341433340601643543265982038562437875506294658143870662608043928473875136880454976766809237116684953846449347680490728119843349747841005333153730662413446058469656745050224611756065843774009232718345363064115234423587417374082958436360268231583462337407988015788531119348857710200665460630194795300450253228196729968990352752389804175259330452657442327817897653131670706602209965257122657803406068848810466017396808545388270082756467903487489851056676798769835763171039060680975306722616855564172818381326129364037171237971314306369120851655162230067663445702000552187417543630910503193911184017729022043589781557533122033036792047328117435942658889490439217676142568939047391014268292382487751706341918701639620377923335583212839555009510959352936380463675834868754617373290673141147083003920434877731755552353055572864354109442308365781333630073817281454456981238937548842870186087944254883107544742499055592477925597006927145058916788762568070566047133241704253981075743138276564495247951476797818457385755176827394824833994680220872302942568064540445194686798781233127979987433790272967286843767705528948900234762300895771116209556667774314835124899847698912057541927615893569415985738035075507009688075206166388959249824601598832729171699643192568621441787550948821243476054362093423978242789806740283737442128604979986151199014455520754712779467688864836248009646049050434775552298995703769982975994418337071684238289731553061930374710355266536035158527024553248975297411779928094595356122563533215162590052144481553696101724933970381723535914687565547693685849172219425225079261967584006707857265678317207018740441178469826279449111020091748035177979233968583342036974342139217706819421453722868202878050231966384942140015809361849032152709956872492823123502819426147914393880786469276549486284232728840973564526489501048909549053725639924677735261628235205726320364389671507520102956238801316827163164085107852831424551077665630608387562461076314203588225915827866114064408715613261495889297412498673524564529555852571718629135217395952506292877440993337624923680089561827703481410950606807840626371410301553457446798199339755348865893762977304055306972522501395609950213029225555479266233243554572687866644220124506001086540740308547304111543760441118771365394905936328232768921635380527311854940858988242286551857356253007002900456057260941149131240460254377322008745568739939870917746812338360125940993984083289934049463665386263628229545953304797420042507744257070853555606383386450012145254223018882931125932797229760112360306013601645498725309487459876143383817938171285010677007765239583838812451756475118022937602567770300626112339519298358596233865118882967512015296757243878654470440684453471712036728835805457781121577385480019153016040754471728839518996204541363085644103883641245193706844100266864245229165268461124732397268416461876272559913182287374471405961068461481943425472608095575250956037805198938547435137913166435763574117151758474751323795224610683325766530342232798085521144835695394722234448391678725966648316394005395099393796860393095371860255036779029842563024119556760437383665259276037332599961641881882714730892900025556243071431542708257606820466352454522139484518729265286128386012141192882389641700684471652249103163259280115975064898826376219818510232726289649967154344392287293718353921047179776282874391228868361477603581308849474247700304722259357901316936682219342079439386717928518990145666435199068411322515623605901435746793466054430247637487335439728212060996904196735211098096639494366104871204579803446201514189167607375899791170587138849801203809840445775152958413038483594591385642495242077390152476902787196684133322953140819995591469489928588025622602056908829240344337919644787015480606165643491100187906133932335260328628871196900371104460290034375723606483470164981895461365633622982803689832735943016275663174261920287691764004590445303216021936117181863432037338656326673946592221395777094145625360249925216365355232264404539341372129796165496081987957367704901113001403979674089513579492714548627543637505477099522998797632706135142044088996426512979776624939171109860235294965985340931401509898425338001512218604296226778213345198366988720595920204147593645155493822082666044040883550120405650528973792162469957474910614306314860750597515652716717932958509932736772729175268975577372393402488756708811163372207857795219944496940356576471312903844795657598600394465970036373977962677145388668845430364008719893700245976145557477924201580656166079934095553209346436987837631951732336697239786041682660223967422179888846792956337596800888719463179318492978042923225816510671160483650804830489340205632769250802416346269790067708613713011178558211020907970973387666586355067362047358604650513553778115696527426667771514126382673194490802601010696924089803549399960909712796704903408283262459906416671377633075920305887435268221970649064150032807322883082924149590763838423278860732820011065247899014800012957512039511563426828145298794919010813012679256087114232076781242815923968941987785719864068373108596574428703513974823871333483242450405081183625124340461013131535526874316500354236021197548025757165989547387216550020650779925582672904444811593761204201662881060845406186154360175331279403897011408592049102199467273793877562107281644596147680602217321472565777146073047801351391138673640957764309278985734801616964894145907893104236525930665438378394169201689221352045761803044019335502187783235665933629548532833024156493527561739361730106144131926362452168711458298658539437059803430955906939511118725755515209934559915994189962142959577772592231708175928772131820808897553377941235678639240382142669290738163394446909425341473500568309530449051582578771954938932916995904355224466660105292560860430451308958904204395834593376698449250889023981213657022774751804208925926535558331748165640416064778570135365729293821640996670051940504494976985849336685032328935793769674644927719543986216643176584128454352345810925571987620581137589756734925336728950471393413554224986247855055818123165093825975560498229606546117444594851384227355866742185200040935511513676603024517843361745633586671297394591399687542268763785217577192804255655132982714964666733459979912039176156559383543695584664595938751646909273613750515512857853472747264165593408930576949479784942409150137242922708711138830571447742049508700958087518048574351229204228716140980613352496383966193905841740466967767961919779987099469473700426636910011753235226118488745560194015965772098081294437445810000952590756417433787403582410569122489687162426817318891550124188671477909719193999300784840604141343433002147072050004755261225919621203938314569816907653420185222173069331458403431385924108429355662312498393666512312946244769681610562482548430150505687146849779451770610076731015969162420331100471036713355153308029318444465384377111856934650643409147797751491384637109692618068558736400103068535144464724042636567361163941628594725279899524606819022326630400854903236197327078328264373824631648120535632929681913953896263984222623013655779795731435027407048775381227756299217581168795197814817133484574319036077419657786283607288903152145245641216322996857146534338566481110195115246433162347286552592145127099789413915600602854099485103473573283092933717345041903775463029115971335873769842801542554287347118844886802709751659078050510769749623420239988830195720013031957680544349844674587298978768605605725190338693389631260125994532092812359172648829777267947358394489646339221964235007341726167058643740511094897682314400575330948001129648597447302446747471188707458605258201646981664231474764035786967079962026454784354086668520585913286310355974834906446346649969250599249915191353321873572322866116481633587311825938450916305543489422268847014782009917788698662906071509648582036813940258866268350956475322830069116067379897774610412749761571995120700278110168515109020147748959642419930444876572893411862210106379161660726220439094619092491465505194965749109610765171719898157004241927914062806521020768001184434875864611956998412189426916725799891307344851739545336981002242183463316721512392675772158709424172040550143396779743099986509400957012969607765222176538764407891673313687880948404696408885735023642337401346645181319602694918076642730613557144956732066587630036008580311865130228821661956471105709040712853621320191816440032780463757066126129892524676642420564737492289527036791594728689693102515270028103344524992199909263399455098820413648083125940113748077157912733223163285848080260115439408260125693971097384777215376585025259498596842764111093124083849753927410593457959306432189444165061142697000951937081178354221546231544215542260917517898331993691994279331003119564562706934791325896288107629044960363610234092624785184598373776725737359237709764663045629644834500077361809227269464574415033173914659002414902038647147753314636449709192584625482109021063796596260275758706899233546661343241772057255276480172708290441107418223941073983016300440712772187878539483323397598066382752284238753988137259707355784323540189539960205785442516153907872707496179531338585982437359685512317980722435397180875375964784622791918429140346168104284350676935562545583712919810650872472194763279954001712984754365521797919999922042658363032961514666620383234410146310787878222300331808896308356827096118888400775364502873029108342847819406047794460359737111559046447860538765627380701450442660098184133559053085394943494177622639532679208221896234577178078112347870381625607798140742082384992616801880542876315090978783149155344604703666168881309415926079810327202269423810862506352868992185404273582617368148981433371321142693571369409274212543822323277277947092893185999349355830586734021127911019024197373755813945200016198812566384608623544973658844794537514617693753952539758857481654427227135883656087637118939075474841460167224724932160868449616915645983364566843108416008277834140707373317128530958157632189868747722024628451890716739818756920157288059712672117882718824724550608418734694670545317631475686483147972917534148333967835401762147535285199481264630056826498174903174912522159857897201592172295687164437632487434256013744940775326799217181046992340666859599217730971525274351063875061098634518569608747481144086072359509127469513005365165018515221590462908205742905041034034363448041631939688159950528299467712052300978240760446735080947532368729767802555351530405239056092687274949671099961885235971031953359790766619293076201853491548970548351818522882488900943831444966059714614660187946498818287322978432470188639181727134416413162483103885778768880011886796007346911300692291811547389265586473381960332660995397885040546413161227075633148431419581729019711505450882840974574686379849031766254114643448921025847548194447627083296659324276686365497689414409200305060940845603433697997204619927892024946334644855703254965441596646013315707571567192880014908382633124713693945217695108010420520697707689615914832298465934723392748763515955879708223599235419993708421583445227824890018777724028626628957168709382986088742215969533589977391635423991196353872149638007844806280075367293735382822085979374414501799126910971347033858247094431652739245831675407596106489701204658447376743572400619785177782516697063941347817399037072614314198856182291192473393722811262095310952745641611671792879887399814345037952308844595685160733964870373544876060319707842937681852467949200419796578604455202858813626590071450321020028941912556750147829111112648632876519678474257543098602719180172564514907197483518481849627253705481891761547576183433675012706435651732412907850924484226843308973292647611767884292060594980268960780809739302205792493320445197157626611769041762865810126132081432325789213908563211714802290108629586926749002740995865995997725974021062426974587750307480928686962758755555326931985639642856428661650289441707139988635908267192061551293709956436059587440882110458127040980131698680098172024288137300043963128777519447496407646652636374809670069640349425544197579208205326656608214063355474733968041991508078535327674312315178414237105619520045101912243013617483662068968614467692426764382637036886036361198325964582548786620325674471611958915428961592190359384172390565016273992692593881594272368187497395699263285061154359411296072451662009027044370710021115102832309989701889547787286873261287711720920642713429346434358977085941327258642530910654616144482219859330937384238811487930145765019416924755514290948289077257291661217907142779057226538050398878876748272574876590847405607255495395669598238832782224223221804196062094980366200146571152797498396624244603994557661912294099935233676805344502743577174029811879179636029082163745063217458501903541382165537969133097847208560363324389135654079509085652788754622930989950564367915216766751158783077434679303933955754061367156405107021480476590085476621063459230278299312434341200126766544654306114377231983653835436153977722642214623528468966157788544408937438326419654120268266359074897071199234304162082173082997006481927451513541102895253934889141301335193986975018360990429296284840993025849016613879010952486531163427034583733051962536728297785521231183761763243950256714767126779441710251059638437600293232006455665129530152841773796142740497362099684646595160631603062108050138036171425434594266811419221086400665964392922505041451174796928202757989058137160414765679649151401195669831409846738513882250557674052723345030295747577863117211487872568513345318247353064368139273874394919924396468912084633287887538603938074598964518561915238815701272446210221836390356413894802228879685946690518204457782996183531071161736017287576219719823752092675966006947167207385956652595178300482165116925215493735477692528498830169648200620131121023173424508169267897980423262052086555750887410884689258745463777020718702027810361985054910298983928609028038179582045861435129194927868212360977305013003007845826240378371634411545076298697641595964708729431334003770978055240127099801457198301025157573337872472147232951277509019791606394552725199445522144175856703820473450409437862270990291038667544798158164970731126996789341462543637039226714665634623080518514339974926816112131188105054588258131883113424544532153970824313623015009945723713326258677428561948398099939001191378089108274163571203894030265003227876616759937088712052924914978785768083514101751291301788546051472439464840053887048184285084680264173199422255396320115781904064736918122512298109519814699081567814623342242622741141286908995362796360121975857661899935868381960908637130923513139547652184687207899959858560540073066631618665963418393798162152905037210255635006379248373896141237024057107651399825802380077423361934452644442242890695240419848134682229618886906058005509059134793488857321803337593410128080189306470141392155829672468976423866790993852549751053615141130216205774954345900126083089587884399838584618385536178455161035660419215346102357671904856635582555936150803450039096210704880704730479306918804744207848164246335873574626916591085400599907158614212862745258234941253395113164588745527342962435882344356916140801836182283732343606556665917446957624914519041200902615722013112971183596311856820030441680289232789967953333102410357784864815130452240988018389623658624359274397164686620428255065695423588488030358003908266017343987642308838831699066980214270509497912556595369200078993144267057426778461263677174210553304684736495712347482004004404119416206768626398354412379057807045293457988091118922718986866045857280565048496072899840255971802132548808172727157839128643046130347277910694491514815889796008957017037949459688534466303362688409241003892044353870595117816225462207935659618933011029393889857402696825059028549557945093079995688540457099625998906898476392320350480352566160452374572784714894090290789418474675138977378112237757040726137991041748556007527127131700377452034810422996039874609116605556693121324360054052870367348529895811735029328099779868526201659580256499784278734974460754106077146670053258502120059754323170172184830666195375016797993392708808267958274956517355546351809776616570004662657353851411475381367259102402448750323923009403617374074538681252199079644010825852003146759268927136624633624097335916148922858152439196670745038089881553483166468367228162302956711499162988458447980774572612493451189338444917417799463946184318393656837605390089809821514598646882601132583672671535074349356449743903891891517713648926454242210960266274737175466934216705465524728062572552245153597625141805848791911012927590398934435401117128603389359755949512369293461530227601055588683665333549941236410129341809304120459232400978436180244766319729721383309993374985892009687337084303077501080769773977608651142101086772198085947046234505555152142135889784749756787357260635825870784450046423421969822848083245055682945330854244619185647565005309914159169757801541587786538820415266507143008923040335539549026918429984877431386818854831484558905274235390377759980452193263612333025228125990254687708380221918061835518553896552315367112284771192572735672219433211394241190695377230830885038282734818594756229576159094902388524321458282067495963164658282237917227261511899062283933754114150895005389352058994032042448942979137097229947656303510499715126020679408516649224584896216044483945101138401213075252777128208390971006629280772724820357269670068814704969954513360151935898700744457078242902160736970486447243709085349716738812879329172773120940193407623993314947463521154454960837823676951165074699550488091217413433584266069518493566487642352119823400468136618496846421808421045200371258900410242629368875484404026750182362298459890840063631909623806204521790557580373878141043033939646514156568043453830340785890986496483775638251095749697561530587783995888814112642431068743932530586086569310171734556418368321683413062991527712107621565627187228059278536557027313743769721427592446206624397783466790705647438479205475609983740140538792743210236874676006778516845909192396992805734454043746503107607033079773088409183332873888204149689234856818550929866702353461187159413672152800075693554947619001707563470077973593068166703381518314494476031583146631027430565365713030179825106006141108018534574272863482849048123798869997492440900204648155115109916791005796519236228455760851711359877006870798654621910346041638196991171646003718204812162546114406322476401643037243226322185226675819936647907890175041499800418980728030732107546141437138678897808774096128234810599493751316401472987171107302435225342943587702891252893756991478964818957227492744787285606546448121182412168859134516433310794690714130031091499601096444499060501871506965718016431169335279546277560452320080615477608060091843380979325864258384896574792467787431393178798798744304103553612651390417426479849634238273839133115302438376052456539820778009464687342304735377821121803273527915391303124340265287482360522453337737057300955007969204791290221667824069653268226082641820406165587308387411785084239830420114117645054681393117639621822511984040422665325259136367102007151084334476780969954609272812808333794649673165258760026098180904752591667726046261797453626637741050322672731970930576099861448765049514053773497190855362906017360372229929985074764614722781675841047105141458934123028547853280681457971186331586947332516237429088123956171787242459384052410405466895329539525203513378426782383039308171469524933486157433608584570289492814258486720908147192813572961067739449394481471416604633063756202139204266355434937733886375432657076889749071461539734662077535738894324951729264892916128335183975020219973560586144153738920234893675943443113499572168681460725155453943905505930887089711816881553102148074889083458294557826194839231416840660127966203862537011258796575694566848933188444037937973309745904180690596395867571076561767382395826577127105794989169820408559678988514741885921908932409933267761024597591448314721208020097514009484075835754126569866430269092181334069900316946516677372869421508116239872019632615252248441307270308672329030374671139122857759358225827357628656717629046187135105417156305458707630985011167624512530411549767197422860714527108408909113874043050992931166141505763894652671154874906276747948132533600663338815584792372623134538471574659005374625269625944327349631392552122887975516402962161362938282919969649406295456026691174865601602030025926653218682592195717986663067294411397062684813392954306750128861826693953419554176474927357744962240097327538787396646407235085917566948410328924821171733891975312818560953501686926410937080623935317731626202867369606463410483874041424560897371275848820710027007768842954299563802534898818812723826790256579887824239888204827976321795019783846662358836396293544342476953926823937640597428778525643769046570968189387997963342587952179537921609342772963136062944808484852455811591835884709425794222739286245486295765291856806910292487891652096164130474797716624108354121486959523809596161319807510180140951986785392451558791791322994231709401596892343025301218739382635882949951383294026844009690509795029180235198944074815391766694065677301907084402627652665404034025061752722605634586188081686128135635395244674626456687928232354521887816678936146242849925314645283690041079368455540993543847068239465650289529128183466746671632578502327458119243037011296170813391203183373190239120799523422970479072984179827361109928320929539980440635430451621290471564053433402424874226995194486482835947102086192457259864235776135777992373002662684837247556366839276588504020419497946134842449283204835552945285551976511176833716288338360547458597735318893195990757527358430244713160780854595434868762027622460819621407181856736783876466817285502007990434512821156464244874187092526392035390645128206391012570833777853494007782027247330742701753618353147340405379131824491344711934793932508156738068815500785981001338816874812095602970281976477237037413589629450662115690877976219404774052727432710766800077655520320694740004586310645568593402215474368523726405319692153822896597673474610815768685170778316105358549490106561980335265350553530012003984873461903562597536345745705874966434918335700687962480269539086129518350873036999811722162145859996274650580277795916541309300235997201212475216681350716161070144240596032324218602353843048788021136886100923726225683660421223867301736052313509829997800889347080777842284669806005885091832588518762227734094630571610252433057452336599160666239964995225648855826993230978468637368983461817912410318254697879933551660141961901522714923242714177861275234931610688163711705704549225642431697617475720273616733967651868029875282533327925288978107568356374355926595156036074277569715313949618835515761953114378982185736895626044507828778161440501765633333535382972886418736788990233168455025782796321182518919222113700419164710655037925226848174466225953268294916652294855962569027199004433042742423414854666516594766419918168739010015155498297409538800721944320444344799161654905187824121112378222937687766369213921645547881778949558270878149597286054250059405167100167170642005523024946048867709408964143529588042002353367055560856831664952428585994727351331238755460423607453152902916134549563469032293299475893426059412908359703369729352677675791610127324739948635256815839966714435900530285277681677117161983966192743641856462037720817847963969539256067246421075974260804802922018710577805791523256180735754075538600530303632361106561285911889436430235458797541080436701066184077121971913721552875247483746328697952429680107262002421262030477330232902482157774009106429686732855965389457631816429988958343907046510607018237174902454685375244495801235934815708052053360849901797322444713186544787096382934265325841404840243615417642009850393614570586454294879509085580079686190426995362445849861419980093649967867275557409892007206198407593585244067224944991361691831103114408215388327630248107204265720448259084355439482936870731809443819895220486688942100620856258611117086610037890982022544038302887665670224575940604210097014437259814252506309431561856703689993680822412329839049464244117355019300418034380622831889007794135846954022509240948880808070295150839563394787725201569779595399335653777552557557891720840581977044147036519091543209574823676247712996593559767902987989857496344299818429919767242455651510812421746753763808689806202996496627743340270334343054353313748074930477501677750302837861315637085711278561509771521599483412577411379624246568421136143811962131700669663125161519037879527520628281530318155921643928680839801854168003115578301039720049282603192349784479977957875719987769870882969925361170291306509276980143783725966277787436155238072229897933391384648157393830140067131798709626138886276071325460176564262238049551257932541554141471060687134905096705671583550758499038701497821266178260833812075441150985509092786748938099495436879362103074549655695104374652177174054264888114132288042194101096206974844516918220304036432041810936119328408109925960255756659153957706791896435872379482504905542445940521919397535113216062256122319837127317463080602701309994072696827874853700103606843678635757758166797218220961191086539063632560152623175849860363444474150657038944176284599245697866317150292910969492890105008976499727231914621908465406195168574325770093987813825538498447689883208433133796869003593068311015909646214761498247504850118171565216564908030095822933415945965438136157565227526278855045271689436486568649240380492146401606959683150356273304660730429305819345122728076266453321322362232050312346321759188443121586018100634964320820452426822397084237854415624601902948147675836270880485161816187485329068743838172975148837615117044095203668127318254648786964124402415609212374422592578489688731738708934054304777847674568983941285654757591662703769005370671548055041357990676788621376344097592674402592447182513722030020376094716373210835411152161609265532265765952015736609877914396472708889577067875321853081432050681229917456025227052223059405375539283884152420056178844704127251193670454888403978395106574005889103041829435986002199724361541865698812367194821858853869715661476062945063082214784395146038645672960074022041327734152289014901951681262067267665615780694143811858559425059456973225956139383120831425993382412159154582407258579246241440223741150456551010693032320680022250064844692874734558282335015226837784808010879932548234647129309465586314910266731128009578655051006265561070245738886675958644169806431762753457099127371704799113933007790080046453232998093929176081193286777402460472975088960189951683301745709580327383978454497611037625822602854681935283626312367034161672560913572754655367878850929885179777315703140783754167502091750558533679018948247556681833997523403228748910045504331882564413351941461449070224837238125772171111580849480536395160954542171618479013881222028020835141985431533337333628683271827651718963399861901943441097225492031597780060611950958899136090193120523976163493534464299516818732393105364185525120133606992190370437206898329257652222010027179777619582911037708841535423962306741298244087792666007197548710288573320634857735408999444644814272148704694968678849926167554840413311735758633118311132264204278857506992454076052414274724985258684115726373457073682387761833730178244008281774243042531909616170917576634525194010710969183389920558496579801224659695929253380345652884202556144713019191045206592980786906627757439437367472102910216462837134647975147321572841762603386646808717785976686861983047233607754568772244646839706493367568960540201356555775753718275341721611215187993175629309352971054830777404395660721164814226653671213258086540604189587366315719102812850856215496654343223733612664999581165397194756255046132010550121020509431412533994462103316049631486989499952996862427132126745031700005711243285695601992560833000644155336163681973139885757191336354141727891827768026403797698740733236446152066133852442237054429101009466352684903900313320451267702088315772448146266643172682771509396925463769456165444916069755689889694494985903443778786428576144028418662720879272553882565227994196287666185430184266204763578053757862542580711538813665584532253441607439712604814673777291454711162973282536752314402441247542623476142620812945964199072671973359831389993703086106148894230846168116879920704923209993313880101880892492940481476685624073572868151458346286473301240466475593740717044178406017983025509538891080987371558426304173301046019496785960047627651861021043789820727523065587296283540975404810954444208389469490613219623444301522141302173426382040037082928746028049363754314796459679759373001756744933614532677813431237833060709254097810412104483655800303514823774430322267007312377882031957104204719623084890192194932528130830720015595458559050750387086852786793782642932533143553918900994481118039488569989339727587630385408261107014332800850884067400409527510312503602604390317910430297607212588108040327283192682691594607581783127499764097012791405194353846443005604398311484700449891881387032676402689310845661678127188867514503172350715924201797128246869936678193793009447854341424353175947887147016731920008162686191184241759412817520147203557792097959011592193055113709902586234604897554345563773501473970938093999324728235680114866954453144271104453220527611373883305366350916771806341451204045745972288568768217738377435604960603593216248171243648267170027089448619410428674732078488543092732823167887032148067990670487201113810982398021408227122935917364000616370143178267500494109691083481685516741439141090839528028211578194360151889510951070637017169395760770632354858227453089272632697977425125918175580263805327844120829162650345453437266108301346578222701518261349952081111228781442520641081144635830701807204693613036765020094544754264840433604897322956954983548362760156933618058968811516705845699813589292398869802752778420049470444417323211316842232544676037909585402980825811132606297856821793901182175926644211104380623544049852857643568182209218747683217079928079419215032218121688652412259708310927733601182389546745710679283277682163569429581092060948765068231722809729059183406848223210695429239765291623708329412215252834558141949212330699793030361576860800647462558025980634109796507936994377280275295313702908293917999589117291701022647318456754145907803073424404197239317525608081766590023978823716817317177426109861924156634197172621218027532143586639166266724927249314381947139062096234979056170883088170459964929701312008372048804839641349949652337112401062665551373599191144841859704784592553110702158633690765189793168879207811249498340963299175927968057440567259683677739938738790885475870215369503501036689073519539505430686633734215235595827521351960083951549630574462756125317636032950243165901396869759238496950913051932970407068623100340050876923991521829083626123577019856066871787482075292829369793940839772200110421977855821308930652985108379024758856908837834542179626436295967178211399446221806401870886966898360543600059835272394992803810710625527030268133354295999409929234477152722648578404757711311647281743900158861966700704990978573318073284579370294685452975552424610288393085051579361609300792223099575476410286843545629619892109416981981387265535714572976190645234490264905411838982260275766717213397075963179137568117120898158428815437652356137721053049725331918393939298215138177107922948552078674234734312119037111310673936839616482370465566853365426827733264890142244810379403845287836507578811573786101573025933390071021921537899675702588936990828394584909035843230953318343529360078639449300832648868716611804942743787943222673831313669903400601474678597621944209518650969460776162073341856495365364639028087596749741796613982313040909365275337637334939297176416910452409412271969095307170532646945011519765848915487502181967075333096864441902324960872194314722320311783193162227666423773024077038912589809788849535404769912778884738105991502971526034364612088949750195174814481549274810248041644715029044376409403964743973759069191099391150924042649710555729329491160190735102055964367968922786910986511100658881250789682608193442715836670707089455961162729410672054460826053940910564154016929025954344252897965251377928833752529364812969001837180129389814587180364103796201700373922986817658910614680090889434079441272154465404928741655171783275475218945663255771032584064661903862886209148991989935685480485165901742584115362603360934442672191069331091127207159035724919207501419951845231261355291393332529902443716819604144508728606843289998303507049143257183644283097600334403669594713621665742079892216508594315395536657712676505607483270982667619332146780747326536417343236145133903299849455503758203238783028292554744893842419820002724976063553663905642789910702620631315818061572375514708034972186435623750864962725388506949557942858839686439686239800524891144775185916361138701719880021038719919042443035209921569342198679334244368476760961461080981385907073091334541742865846732245932489026641143023583640749120593600281384567655926904274045524734778527101456807416281196874956400272245743358383352362426761338557928255791878860516919775411610847239211434386519370775734094456016654270267462969478064010427420828063915208391279484530906724572763807684339824518124358484994361811879782519787879208921907294311004318199931447519329337727157233627252008158559606761302345543644722762916379236585544227955049566382675087433614528190101712396740196814854502823803191744919079924326975291570132975908972067632668854854891294029561919015010527411595684028091887616179893658725881525275435567767130017071539508286848199563697556010659434822367995008378832914392923975758861362526992399506567525601279027157911273621016881526663659764680537674778412982360477499785984626251803099143990700522184956280144581894226842559253124838486944095114826179876542097763958340831398174788869003549728909322619382088330473353649512819784532661211208688711607124577265412729704696989900413355850110846307441525626353839124251858536229681873005682006218840189199752688807441907086811226837225066937877454591706275897675618327243590171133697988426692374953877144583235151473972901246535871402190786640395986946766256765751997526388116410534630026097389446838666395805164745897507581510405799407746169369716287924925879584461834519489244051105193550276170982055797817870885886067844902608531798665938254410426158580560387240866524290916521207261497755537919793228207101499123329965424210844375622057068005211770668013516037407946941567333942493892499510747267734498609489399280025781386144982430144502370233600762463771669120660684324259283935445732111108134441696710578607565130362328899166041101335030502021192887191468788351250709738463898143741458917525002252485297672165931674261380228193821758641876794236343077850127023868217516558526180977416004810654116545841891106646248617625897324293910771403848825770352416616947714418140011001056999674751711448340580968797104866622773307871371214385080359881753336804982451207943732472641428694877292952812057356969062219389356398468069532785586713362653792597828545558639075271247696356035520118149627642219677620535211399378280693594642508960912647848323160699131828838928395791844222477058819273084810439026447424155940446845554782420805551398110608648872730219732254910085441300525081607577003023055836617029957044475704729265482680218426406480422577603364385636262938083146034918954971614282310066036110693863152426698036903933623431120608492247446172051292264737131453218578522690627535003803167578755233486107373563554081388073506340637667577567452712093330129114003438883863619726326266014042453660024785007789443168654605820301757378441660495925813378072813430988147585517785887977800735268088607953663374628305505207412039538099784605036905315568963199343058615090713745540298323553594466691907262511407967043183989019478524282087503243767139795044638590832538738046992772196202929177065102520024351074948198051997177136879125033499324280383319944774497878548132252709371975636177320050368185532349189473608942669929017949976828958468479055311811061892231524393450496300202189582205761675109927414814983423750186694089074400331749496350259375203923151569217619745646154181216679319524105261558484603124580872211883566337716584915710019592009857483018540893624441487218424534020754634855769062419460561250265089737612605247126050402031007262135767081821035146204751774162380311301992798197567421656946866532058171080960183405589989501095285679278001195296317630808075079905094909706659069324017315650565765765471842904253384899886538861198113517081263269220517038381805883144595589114897756808216785145832340099973478029858892949193641396678058640450190534027650681546592176539648009768351556175433326130469980067302798278903620997404381357850345454789899953868393440494557920042832000989422493126304265860075479516363680710561920502285663984066015264832700352286260916114522365541469398124963213201826366142420248482296975398068501316073976055009709247679746275618196854336784110057902916890837951698862688881554495755925271196591405363321310814689140205468734708448644565389742128152422094204281409180633027869079660380205463852337731640224004665300583158211249694630014332906512491588053610561103725232753296739121434951436064948816716286737135454300143914086768505901202357261329942860544046942098089722955393133082130472036739491438149446459237037347620642496716512918932172750861259404787935383145144898982163167358445704016256764724182046240695090443390724785188605109521033359854929731405818961972003448866477239607983539604378324684932632186725966909317616330884255320981956256377098509133609246227230275275641770359641607438966537735416576357603377349519963703606525390189606819813598297181398270623022269481159108534787988173653570503914141706470511592084211844498544358841392256790818398782878461358251433552117075933003960122575247633033101260373703699773245582632255634664198110671918042098788489400765588445013362230712703701981359674527490124228632771908820942369543756481409371159105968305238246257037959076504146238227591460687230405891475596181136179228931209274269117006749885346600493607309138156513797674685702914641925111916858553569623785094693744366272806921805942617884270051163624161957122897788795198643540114683847939552550390883252334232000100431438662097528552067293141641174881172371364762113859273628119788365147243299432403048429540422694157913058660380167124566810100681461207118737146868633273668047446614972240857822183269583101184405669210581161819190110344129914368063455103379218438184015742466594756161946845337150402123487977829893524157527430827856953877895885070433567869418177846854001921115261699809268888364684192771365978020900467850537526163634109708383621829420201601837434506087945064887231103309380275376340367152558989070631214275882552088189191644887552155749793611626932586423091103853133406467534694468929905057724641172367929466777518253596761771476816054500260986375155036071711621387980046107278428233161204111370782879894350441023767541813552759409134712270770396302607576753542171563981053617192600881374754746060053481674310940910099512259132009244692431701544221745283964844816796184345571000490463703870424688829514529524909647010894644825332740028247295176602738422507075607908633920679758092623764635017062122752586636496842610629275878256109419847623255096801539141755560075562548000568100930195422683949170354660629524532688770204528327859038734873558289872445977061069842872786290234120406370590847316943892916226376349117465889620167939525029870075701401527439868873273914768863751693245749054806132762615874249663120498367713489401954694781166069132752485558561216990683352707934910133657147407677387892147367747793363934377055918444410210413996944209245403773924337346694711581302589651223053047506037291803181326682940167794071082801735778724012180837619770820313187603893348778668969602106968129346241629058799383524373635818858731770769729028841463302318801795549942256716627010985315626356174278981811238287950461997081372479079052195188195052649618246226028633409692980936233905788401623141526036839403107259550820340134943577694537100741618961930490880805373510444109177516981903357083673336080730657165563742783763820651071034408770597510919239874585864278494119472994607746502076179430879683947522236170227786971577884677021141658303191468376308948261768581453123537802328185715035991107240339076153640926017777775053714575427801454474003868245009045893357720789971822122404475879799439069681221728088857722888122797509576071866650403087515228776555042328652082382466227311385076623935145968720605142217212751626000926586757936992873349647052305034341288238387381920525426588892391318984606946961487334217107763724490257153250080717027410655454303384084982186130243657286307169317588442580370154765089856514088905520639966386130537257615936190491946957136562694323861868260649819832320846746781956483426305825458401394335190684189901234703688208054785259289760248720445574886666542482046503698616460932409322205185479177532845174228206746021765727495897712995849114985555986326076025272434368644428626621226906385309672191979791834919536685177185041318008234947746503260090620970626122115427396522193256687708962417511795003593793470146416607612866936700577627506252981753061129747393384408763392911748490419436191403477986817781509447258689049855596134965576853379839184003475081115068985552863122479837187553176190568788683556444880513697656179191495589933421830745089096634078408217435534618657898385141273764068008383351589714187148453851073295033250757650914850817243749806820082613554773268570869383913843629653561857739762622145963857508392164779101813451831143147732361095698568444119828878448159077282576054285250052526874701160747125909831183709678351755249564217848740345302035092454838460000773532440000300222737876433961496674038687247181736028482851129709831116271210802536283366888408988539818431722797390644547672374336061674011142249503507760914715367895231122706227432823247576123619982013804786361171653119317982725646093394162739558473301189307928719787073684248086276220308187015332770842593139304331732647606207510344797555535639485354141470756032392925954633144182985506270265755735131725786082941379314913308128380402440615658497917661362729203445145052111166652279970305175968473962318449761759636514815885184067367752608964982717110368588938852847569034311129335909013259669019765475620859005356918544922663590228626212054656549378355814404742423993521115594273667657662836873580766706016758142234119909624786481432807506228212003904399619416740321788614002728592946611260795811664301887461229236634545373141192199084411532711353531941430794899055830754924513997107581652333698422697598343596179519194808968443898890880764814337615855211008829708217106569449041611571164889955645548418062350637702689511670121983662585490657878680383512360253243637667523060861473480278905478542293027354700217241001345759980466485712377868650974706843639819278981969782553888887083154354063174699344792525324426456457273145974730907886499030121458662653920661909573199243646807475684165828573017301412695707644467846066958358872558456524423514444665722980204005392204667253927462926691423914585567246023563282856146589116350007454712014425089348563574775526880426157856396479000724526276269102385180460595463557090103760327540653580716632141062556234314321995473789814200847476862699416961889734226678698779613880018073460184217666235130207495390884621005901513144691876665809059346831508733101705813327000821850868594253377972569674104645617149603440646784608343931557668424251024242140623412821776671817703599401759426061966783907398476966179412214228969461271850083091032225840594298059223612303653150080257755974564318138821903735566736544585135260081062300184206939893948383799742894687153770673767961707995675733641353494618161726131605144169785717928941139416066302536705676418591235488993335955836633710235797741601243607142484796679507843546398550973866825646187920653880345775395479639661030000576914839879087501525990173436247128087090478168678761749679947026711071028568173050816798748313720543084115158994010608216011606435549560239825890159940771616778390791722605204354875283391495134153419053447405630828983284501062142596322820381684948229562999424779736580845497973766567405674503169729454070098272457669428211999959582046474212523431273632223232527958800194079746467391009086618564297886839147559492913941675429519001760642397500875322673414057688382088178113709736473117514001869535004535138053991643593824666911845575971365580787632355476017892834985086211066765519604647415663304526033241563625529308613671860534297928627765338568168600525723863726790337116835322767672348132432307082538901310082192154249419049897399006918222974579362638063010932110114596778745118184281040026565783316328911781983498451317362928990938119537332272448743405635268855516798697349890990788702486351355000546775249952062989459351726944360466787462565521051819695080749230425692630645907384441879157843856443067685204111286081326367044773465459473513419239041399284921658938007420993305015659252681067665951853962119033941459570844225687354405048938604786661662735513614843081497878152172247430478393441735108199820736590019577835005737414130330726212583656549050026346341142274030551485924629613377493727227317420036874263375497116095769991092331817923658663981067025928512078693130292372551248799851799615149421680772690124675325313535678324452101265287040299119173425337054630178419779539067700188700419862670663513828549545165350725230608589788593235916486288122980400890926254568881218708267763920506530281744427065423157726959474187223315755535096142517784690601775808689802012636990436569557462988559237765816511383105528406404074101616747139327569244777504527033024624423174236308399627477715974282871781413066043503589665548686996850929221068509233001448434165169101021626081105758617582908438759504399034652356339872200189471228546909349631443311855846216147478757989277395547850373322314961381672288140917267939465624243957965331712368463872822324419497320598877909732878168395188008965771212381568417102688219012615314085149937480250486995894187230087248884457386145469540833181530368196108521499945648654497624378903417777403303325758558558371211554240177243347977085155125194248848822084843484189075151210395194396131456252419475387895741432243659516323167021290139006930438706762321454445894840739550533650059253114885077504149709910111336526727644196393958544120461274956382803726282774800689273488300010933700151375482287340921381605677015606084876369029657858782329230732299869019559139837103284006632470480187371797449383677914923473072734285604807597959656905496619477206049267710380156699778744894793098709092109609173349117267534921620156026119589165356394050979765317785730198372592538090509212880029488624069684793234324065429637776247609310687878750000816622889169864956433635819963386196100859177221638613728224506784691366416959260186432707875770942931023549348394980253608159862822354513587493312102825857995548232027370651340495870232762342589610799315260943189620426539178325396617250210905620963660134300198083548136730418543498011238073562517651073887223209371853583299751344801044904800050314127972248191467152757815841656582214437979181248974219419490719485311486080465531807555864387875151258294624801983425795915246175895111395096102868269204419819542584853906385912319487388144977354768096464231117693331311569470743654470227749674201213322162864708368085469240654750746169421598081629708841583072394975163721568561272887016646968274603629544823649074804225103991240208036500149045309331056489171552124359888100068674013875694578863906126523827049429137033104465492184976282166195487969536381333788523858059069461934829930212009647498890746719946363318144221854116181587690977161449921763665595851119332013287605497881192134055408821257877669280399225646404107296752168129002749696998481723777059648547549719561688616016427454589817703147832299995917638166369145209332800703693709887308332852271238069438580781768422679878467085892386302502256025615485624420535699785105189991732638993128407028491810204034311642777297106847316933195801111013598901364058792756069018144262529378731263432184020231222631524799244983378601554391264777095660480250978950122422876730154836866370378332684924952842219025064883634822730265116411119917201043516064420453635496919621920134832979653758675968422199075998122342774742510701796621216522456367850004756469319215439637803842580278343126209196080014121355384733256226168057375898877256010623080013601603489987594535564941242684714549907299573182349774434551837787080933033526681973981650465901647178447452872296871819729688651000619580219277022795025529951883150119762551637759070718388527915610939718822695509441779666547678581223111791194492786947835468518910086603661013583892155906711928599125395534216870047274439240196992035207075898158941497590643363526681024011267350778101841978826115282016588425538633872535985717244982442860396921485500028466263822331448192795071554374434102276756349573180398393967079950080678685376605464194639460000329679997915219759808172581078593806023115993951061363907266479218341789289597003450464910129329014904360970410709272117458083212025981494009727554492988058285304276344951828613818730083500417104076556360742411730677463977791966766640165993666775033901669949295919935919046988621418106547682443000142457859971761079286784529960557497967943578550483440133447715295221827966004854004244252293232735749114366769327578583027409403141626158104483137899011695539292548530700328186315231745118075872480932849576087196502083672714791603511764314552639912476792113939459466470198242088615558969542230330045186189608027686834072967595582619998337241123818976726826691110486267946330532219662359465306248556865160128359476033941630007009780422187612624918086144590177836567324605954726884648368328717236815401560545351880223794793340578704257840308035063185423493026083704387740370250960997801720122487623252538747313925040129891539726022372713513488519407770463551953452645768740684171306382314886571550733541162384399561864610484016443170662330238885422778548003858623971271928960896398428680028485163916018868250373092019630254060430993830383518054475910992714248796867277701266401859859821817094448124927856152963046601903878585321154027802049462812640046815205919608760130095111454932569030555245486275526966167252323947919313162804837631369901720581921338756440636052156379160999232755603015382372016248473593622611008816850198040323687643404159143171848823301033559045437625321470022033684733294638823428066395536615534014386703146816309335109600988780482467160735638247260184854883775556052325338105981295651741609122101564183517823439773970497561299620664576874506861852998521655736664971260029600375737974016075453788016948721851106714988444005277770268480616512898051799335295342565079581877264752886064026111760795634698169900062526415185169690933893783814196277328736415387225936454797154492937651721939792568108410273574319167885512356282435009824119179512540863363280742280456473176573753672526873523480273462500711793413462560711361224957247350368157045590720613858400739393886409034915962309739008646568251908624007040960306130525247696549670490371036682035163522695185740170306664015826653030548292384203367002948721978734343632840638329298296892702755923568428714454577133727933930667945728697826035753031947346090692084667001704619449609248762329508711739025412393759662057311158724240691548386002672488229235849834758996567897571254924089424077157784970843483863759150496743021897487246808120962974139553084431293252131707408724573919438287175390269086184508285964359969054735517414540384050265978261776290070614753954442739522196572590432090992640005071032507984267190889528214674607199656746974370438828875646305489609564368956257775781301833357912714745691582160015112979488097429761139948810557901050295124834579964955776107134101920934233555156457357867168325495774786684693832188278861853475663271023491262552765938020777996532343972540452121438878883178261325119530069376113528194148385208218395878140220920371515688737299885671540508388028013873805412711176454369567325044489883670488699051802683771573753643562575687459978072778369910266990009863571685742913026384771923665118528371963047564902331035327809858648503492944720070025662532600985006491219848186964379486749448338347968767108879978393529945629785077319250920024047280137544815362291557193511118092543024768426491484506300039104822636566553465386539500798346098742493730206555602454835013850593319388383005207529321131736586568739039729463438778814838056350922430809772202686916942735181821963347795841129142579678867474590106917772212353819197093727925915254993774880050533140089380378531772526193963668389204388995918492627186576343259471853019865179604013160256315563605107882036330304686898040382833465119931542543073105972632916105040063397907056128811637167736170551976215782003263158623261707424063176788822431307741685588239949479188173868351228307486584353803204564568684682056343286400107630494396232944655282821679884513712230847428515840729407146344372595171581661237080219854853687278109868151509180711634707831582128582641432840640796685735559392324372857255760414857653180904160834146727053511233821895229666379425605146904955005742696424320570791776799704748440976948307119451570679082039379803456612991176031883168336143848232752346314911087170695445963397352614097331540596558448960088564340825140551463421869538219695529350678400463337215534837559220793795641703954543728489221582266719109052310412433088348204277536346292392736880583510551999595471679815768258842525759539509819517448316720066695929444222340788607226457589644061413365929756067693846535341514334127542379822915883505985807845544695661970804686926500262103612542614497772775076736316016088297863412926601282779949806603127498574456798448585517831759826086053353816191175202395669906964147072747400003376560751048559180110527380965539832110406609530702818766511279741222393215592137964447574304936453886758348347389725823205354036434138716969779539875662040091521757136414327045969862886045489852528381022607333451903685455342895866414189176136570741900105440489015662635955612369417994595480357673480590375914886872889407670157357189313696672020387675999774535690731499857589664915830053484059826284210081131251790921998341806120882649856182189160230124984572106109641937547991417872168042465114600950345005281646672794987966712796461305463793610119436677666784659586834622370739633271352798803179532228005281822675429076096529387814368473692381146366342429702515985655273486008703702774448533524851645638619889977019220337365010907313215751532453128339552885045359617340869475763155503605027464494975451764725340672879828340713924865898591224363665041033422663438838853082388002479269699739719473008654168960376474733169472621382646102279664083018323672368266885814428697786128045428668937137605761024481790206026063424916127684271286945232537249420720381390616246532603691543705090490619369898613437726629914964947012365701837807389124646520069560998828330649828012397535832613184890601308278472060398583845310595352934448774432112829035042886785954543324418141434891661916900890714400093836156229829567445702811878485405179253121416082141808166148853684593690163154834668098018230956315802803361240480646760598640899797079238028599625870691614559506078187398665140894720798392438884290756670985424969890874103377142870934993600305207408970928854079558153973520731449323114904018655276203738138174343574617601008154301995338817296593190659388589619304843050634645020471029395319557800214774563518049464220478313900008438186809496013235560420664934551995566998956662644897239845843953158946195253350408149687147813604312176651705245085334637015907647743973659097511538964060229650479629397756224227557683606240256263365279547209443106866495050500203957090692580054207544800505065761333375301241975201560775599723931141348122305372423538099275868583241156737867563940112455771537332511181485135646453536883366600965349528249813499697452534289934012838208541564751447530576911466157793220566203667597949260350052553962868101055065460692342256278389839971333442247075209188313193272132080034176496395506710028399705478332057446961693047592594921308840381194018329490280034412527873164496933007384455789672635025157183323154375463284824405395880316180707200712027296458668575203273364718280769949116589774307384648297085276770609434013425584253108581609136436808513138323187218902152540753544411213281502980589063021049951260872241375329984559047431469668228431327890297957178112466249746950748561067769346963988780548829026215033140338137981123228281853480492124385476480335906834371210131221135007081269522778699283977240264423358401081012597636415245575167816902539490555374490801129146890003292356062153621961609520468643041503168656463939553568047509520527527714254090901443008988818640360276933245833235889598679740401379610359289061690999484277355677738770103161461324763348948304124524378743633278171698044393012576137399286266828816818527127738280006233204716027014821261836189715067217165951742525048445204280952717379844464281013859161879032578829251347999811703736193660524537041445906944213535211959577063252455549937604602152480255485909945186994780392675267297329358265215021064813967587115813226793326185639357346841702830722037418543876275672605668610177015395536155275207481521812916382332197670943572641116073881049875871833389700795896747478337933694950320545866457024595528415546858300588885036512078441156947844246589568645580066810887852186301339447755440731883543409178930003555007063474455489154937062268918680394826024708637978755514717208254911127685651969376919747107781532610658643176071561845345453466912191311752780712307117373397093453696179178698036517102386536964956344555469130759762113668125916908009238940254615550289846578782136408938032397265714089921354381057512198431960170686472503653839506414132615079990451751584753555631969370344143542233199114440364047956383399240276716256261361897175320475445056238328024979980135963515641868833854687536265253544601590081864242914761099437017478104066026950758939613553990866554783992324389450893488629481805600625416608031250789795729223071407000001482953862449692871661581432844405546286095990534209826138934197136356606066494481625026317129654544219089647857313981212737151412856049178741624918138113659017848222895650654960892494431354923932437483586604795818469750492577079861100976272936041484704683662455575373433509815038956638136127248116449797114205688011283698895379944761055129489410797792436122774076325777549064826220548146821443061660462377718397300474031420029613711775866070076931388560994028893554378993960732837798539848519114115248947342952527199772802800219548633913393155216382901233010253388567517709756206126829116514949195677611136287721388333698099668113772087761827384426075337449802645051004901102391909992898295672079336179216693041311438630643505570726690253931364008747032523978881070499721090685698951560600987674676546960493000919609022041016273235815035331396329865180039073163368657560220301999501948185200611893250183497632055494623805210629795082661757100672211661870204453058213207432219837512756584929866672852177925665942727663807842382045869332356236264561964753014769489070163657677123261457244998823339434433098640267011662027094085443349252651673614776238512246696250324752994292797203538369950807133208930162985721418535032151195270472794671534477463297367545886719621601375983951149422480080253640883058254213180114780526668473045482787723690655627016254978525280078670644953967986001790882930082359314377727843600347822510612071410253684552728786093171482110984914248554543743805345416046377512031038349106770082573352934976278506021532069798767455563969411162749391067468487767138948107200313496345534249285485178695217851100449289720023044103997654239851052723279756355299905141752931885319688980092002643531470220824556187970283217616038673763234489857600305661856036232394324446888759955372178105243707298870514707274707486523055329548199547981964647546766684213656077711182887956527472772016852298583790882254570830191580455444375229712925240965434036009144469360344989264417055976267228838121766444897638904354397157844276902595937704437160608575868747891219338009218166906799591809019910868160693831494485707704424573752130160632410945053721126910706360873822396989154803042803045528325353519255241721157739748786652309029459699474217083369510477233903632402796398255746587152998672836325335556578227823773567651907781467448274012226444800272915678900084940381157464790836794742862836472250378217540836200825226834806780332462103249355885208198468403566781034307719593714043529566956149597722452737956075090376526365971724677196903813409437597277205418028933896675478725149497540315348915905206066902143028860503755650181685980095952715119361334922967331197851023747337555154346764385044302373575491181497176667557805778099290442546845976934296199280766597025761157758943695578006647427213056222476266557486684472386324753872122197588053446031164117665384221923340035327987850503706680550905461515970912259404750996517115669449657427212298932392273875219277154656534248920192675160089144823741518979263177180094866376412587507672245231587680185541662429109845686381163651160719783138058852822739644697860112882842721527614565207920361663440524831842089430261628081091100550472826364985004637821116410033435386143500976757529188231689651470420602536636320220532421782651925838468420891346545692809814761030869671058501878111296391505227103590156017220590231704206451216668571985903767554353990465234106797324513437659353016844764164327182865446995277459061434615337503106955850942015067357639384864705324082433369600585244161205827591297215040046379717026245848460237654832414184824119965403991232109455082907056413786472363213280105501143026882768245119017283283585387953782592967428573498647255326600764877526153389885696714835472546740299909188828319611311743645390716917826004252282822931530511766983348441415125283922463082103694201885182339105972703814053652774003362460705829661583060200526892931235457781562479429470855879139669221219160530280058002076873659808463592325445684023180993352825897298457364751960651698513552989235357549836136173635253942990974261184020856880266073132664637429854761806978965652495506126496522709037344179861924942914194171029810273348300594825125333440089103630344570574450373937135475476203848852917871941102608156760158967571957727829679338008564039408251296722851204035516959477362616656543608118981145231026751496101751835965349293525378407942688490474090463513565647253988311595772664374008707834922282642540330662970559917366584987616838942378123846148223332528980707140689681605472157288050844205479234183184105110986076753753850968450679114867790755216921533078295840101254663074424402547061864028395150142058353303591299904423278078257986915629071376426774760649786141019603421656468359442960626213895136632979403887481855536573777975411536367101749737312076696774884406378407768512820387356333975164257492943698255855982779484789327671860606086530469141576345325563160820788342731367972545514390084544969717075150036726304300591675563877688975803130526065655221976965168791826010714704581209478890509446869081144005781574738131824393519018402590628216108278934398912724146602123614747866946048845798368478248093220991420584964963133100047789197017222980023687220255207782789398222237180528458859957729536182695827896047437849094769982067034580928873528188849368299200243912420153390846823861704969575777516084870108474215516230221467083257203066853055124741342249677181288941905781175298817858111114760503245784280895918335284369928962180264997647530606574100440804932124965920451953350797868771347442628704112698127578335607413041307228859822885550306400206997123586558011485115243177249477829891554465590182686251247127784941233314887148236714605352131269183597261654639014467842453127651583374825281717606761857195918230264418515499352142983418906229045158864936311338579355441981705630400990566342723317026923607348093468097334885677652489010343250220534172727599433294581854378884473708557602819793343040537883894322447896689980560538960492643959905939213276678167234052808835628236811983531933438858922368824294435101848304776805461424463085436820576970771588835486670923353645599984630561971782460280884084692388689548145415410765598167718427725055866726434451271664237591531853299936166493502445321539200967283920589513254603802606088068357182745941519589736820974104345716886092602371116469611182445709121336357413847707936078581094464078232957124484236474843468436689337169149352690589873523284022781117296996268182801435147657729649966235524036260544660432904229758801052447822637701952882364289043805250227073782582162303397784458611697992240387445299133299501549737083503862731601989029139875756229679780670133940926996585120753327589701900805860150780018350148022833089708712253089833945561002298375793456075544234824338676194761199726338558164597201339987471132562811560332325244655081757055211950102720530367408227845804532632921320844471299855620935260836663082332803042308890653320827667398503239969366119605708137782318412548567681380026712548900981264669711369892932560801578587909991135828725727087871757192198246299963433038595205732721783065956549117406733912397807665715777916825418663632684576423780398916606485813624318841994468951443675104833581539109185634794427923532589545852759291931700622592350682887831732368614363798905202837128516698548074595343236837739059610453842893998079881020477074316937700122738837020343307571490705727951511611254883909289033270682193550481273735186587042564547737369664342790139291177607176776558301639186868416849268662899964021461126523691164516453619749267645792255308943003016785603095153721000682222863599624570067008116068407899073382626026975190393402620803568017691522285265234615415442509493215883517395818237331409149980880740974854477401058951199995980546988878964138315743843327692133986418057037669155203064984111430211948139537941095081299284829005719321912134399453992366112290227357103475085199613525500972819453551901582982913380484250063586295757035639007368245843813861612080890829677089971689666792066435877153382435608286943365215407727661355554648625341638535423578115963604758604100345660249493624517542836306591433928755943256267657403584803644107900560840957435349444909262058296208263666693445700167719552469292762162862889873799736491319912674190989237452301510721375658177787189963286820478706628419402289461242029109965887619839709139979072234978078224570261994877069006473073946229232986955288957762537804138952406976890472419284478556091429849166180661092431001666206102195745549832687640584602765126071530859297135630962833941038692591689797474315156002233172374322767951317089508473982404352981294849027610302612084994961134665861487013389182279781037294916932118464154072555654993978443983423850860076365492280683486937109624361818950986151296932513147212179596334756082667680257017817526490659149740309077196017997164712449315206260754712503102672516535136804264412786816091399925458309153687082380338630462024841095032588698895783538896199197058970993312359461946268271155036131750169314457200819606703633638047813762376222106146977337219182606119264462948096068070212594996792174713039452624413798099404986324897628641139303110553170920569132604245487094939355991685388756544738940491599400882752119494356652828690284668566384398842564142912490311809042965769482007211885539027549918025988442076160369024189624682200780777521946223448135207813868118575740334070037383509399277570139890045602397829398788247123435166882751642202800099628871809743768503969902602849047254453972738825140458197058298239002657853654488436548416838506545703437818692528243179477526759373505916466815543174960743133925600571201861981693460007489759683021655042055072677554975308548164920277494625932495540212297795880914359287655346542689495056171446783347219919029480154215410870518441618426015645245209043544032885664594662478963225682186524116229379892074049557941697930278318668329059784794264341130291220572068938107615024026853436495751847316981026176962965375721139283573732333933029605298332478204839904803354176663462112989908913296383206948804416824729312186498552791022097722847190068375805528046674928313526397144208838267233414127567619311007640005700246976802344557590050297708138020210537936631200435268058149880256416728221948840161178491545582832777642103194654164558004542016195712010363954942037315096628783082662614105626495119697567622380101789219458269717593865104190078841200598982870110545533729609047812541791257377001988534734972389543462842978676228917891247888408199201370595992759938786215279166571924859497604635988770613479250265115798059561609526398250675580319518865624994600261738274228388583291033974031288727929628230109444819748801840407836224329529898382002472216194721194357645090210203726479255020163270540387633489813345298267552122878687937826164627827992230267707732514062363599571087597058405921067180125754187588677409847754947074904427200863453823424191456979982622475531901481636757079260474009927948996406676537360776406140506601983405607589618866495148098755042648173719756597343211930879465535266929903610318052953424035973118318169131947380551551353329214133425982899577694515874020324177187591968738941868400408491367619981452352756338416181646982559267990586152292009107277717068723021851590287762691388307179830848228696988513461373749392437689423990704221354421602869084747733508638625150413290718391938340438405288741025087285478917733357151706298384390529679206036904623779281794980930194381602175105748666425582244989458342969352498286572002221885295529151606028646886154996648123909262922460493802770947983000231134473386888951541069828196883987683208883537805017668136507121245632835757313552783368146607315519576762821177446827219994707917941930473788569827019993628255754304776718115611577889845723939779165635610915152371631740018858544506339637503706076016131198125744111403046300933752215417665618589169261002597493931354354568187260171077374475175092031132507056315723702839366522915933157155995914016538062904861045566451349272952263683693816066845498960086065191071103021969403517588366540194139079763915083938736098565351307652072761030314419091389933820572579863828925261837938978092823681675469101612223602313743858286006583561752493533687803609297908728426088903249912356310354699353115003406519758917447488820173109237595624944422512402159404921150522257321514812295480838197514204671705923450994747040902567008649973962125707117770679649296857697548452037132125223289526650161639293164614506523796403286413362757274655963935755346157885917278470495817453423012133004181344613436583717951858835339610321130811593432978561833498854345649997917779684952029503269039765338414595604927490149839476707250126312189258914493867795174216322901620203948278742743067073400207333823162145889822074492822698875234742671093953396622730567342368697855049871317421938164667284574396866238065098207104081443794034763620832247830543254413229572752569129454347598715954848813217692374099545822595456234327641571037659885120856620110520015988911806161156451660380369785968055895425367232432083251714244028022945495460930383263310288948160081052223197594186401036757736827426283061391548080628742785533859617802794397371357005545764770344620650520204243020493660815916360940159681624410149741639835946548764462103505890700272545785017057613213118824655456672494120903915181824017564320815658745402227656878513505579325800542517057195971062037089229417891734245339296242385693676557043307316854678805482381697059340509739180530227936284320348301927822202620251960253447390443694740140302289969413414505207925978678300647950009089390395922753936247144618027105945323652817142450804413898471285112883889890434021489900096378555168771449441562298362011229828960944901363723904412806414598749437024271071531949555127873195763596952396248514396411637448031772808032644644434185897384372637470975117345315148295952285714892590529312705061892423600134160272582228166523075866746282575280578443108931066273235332477797690999467228135204250268265837437436225116217701475441753469186082605736150788450740904713318321401541767656675594046663113896757090701006984643588714826677138375831498675685649433306796781016872298134509840440822446509486126858780905873193217646600108609965542541014119635400320974340562693991952866351504727662593975151323643191116615942395508253955208013342655873812160564823676380391001130582348597646205858866095351685257166645031000124518411964187468976397932448383657522631724046061149029558522036119192869579205990325731911737228613726928576051796070748265637945983759965523109661133280492528530459798351370903553516615492708282941274243557403497394051540750848888949028801433488179118847334066409689948467655870472409523337723252265218600249470638131776448949739978726024475903617833475813863436025220452464018077352249553528668739049696469764559960675192478566581627404432382505013631462446273432964480224484185175137655528356525621944404078195660392789905238313064815864693049367187110632225195541489009399867620245214983404802026795994542744031745517252890591077239891635367993590949049559495164902839510851709731378162278894883404161371484967125729624498459363123963959885893012597207129250001972801543044969440261912191331972381617169135463219973339831678057592583293515874449853073028292092317453822716634548604063516928851481324993731712299590587466965840547778310968178528116566507396110722119126131756935990290358243193865323568692081766415591101210497850777902872708681672320437000516828569611908890510451741017373584299345401601327992629276201057894435137124320299422272462860702629428741715571544728535260804041978910795363808388896147925117779197793302494431245940308671915162485033653208852712217438028160540428936530862990483675785915028317645940822905956736065800725431621476402728640397165808664308163538926532167544830577874889516837206990556300007337834862054136584677388187024525107115782547460783800949725257694771961623409761540375273583966987930393944173289245037686454994954136118061234980563213557963827886667276784675836285076088053342693221573755985736834234116786097249881378603813662063329250826900670305810320312282328920464033665729629333216780354948772414336713017061040274147365506116274714371081943011418036541241807635581488149033870581656723584569379462587772177900014858707418052815342411333931939378467208424578443547228639376239107213763719450981618776876759352730717930815149601720657087042675447549698450239700939323909893798477436053463828545320128577624206695423492838782700045595781045779355253322743759710515212994197209657689625585179748938564016896539593054002623402804635171396024230969221387013219687097978304975650750833678891619036911488900516283428487982825727904460522638322574812254485554937123611451652336154276179921815717018410215121894945728251254906479326012228493402020895923103023957002376210257626951201213074405162275562788864773296119868226120368607444221764906031372001964544648348867785093731268967906642482680634720817733454914471292296446765747326381551183713373214946796084181581373571112404776952472742412367291973039279568841540883410167070721235031825900359008253834557925213805703131769546293395066851075170051025968497348088460659164309649143236020628747676497457904446846120022555579483322221837350411583748686156426776904889032597292563130416795547660750156094070925188079182419614424612571895287143046222312907136547991605715264170263242203560334211214944062798970821710661766651535121155030340216763530183081422240399424800219628286479672773272974663845447129348105977490794950708736848664537633280800189538419506792233217796883384765024676313951699300345487467503879483173317053180315459394979856030663063652202850760462906214349637475305258114945372442120982130631295914104996436494002658429544511979830974108381960723635259926683540165899743844511121583702623686775644725896066534652705598376881050889879504769407297803698217817909372314253176485977083853038719636673412600691798897084592874019572024917844154126137261699913048425029848849426743870846699519124794587552520194632816088082653478291722824206335805098462242388101828913886349480610628096097083651498864325179753790349214119426730947344753069409341602805444075774033918147078081467211507486513528110144759747873492263278847597718167947291501434124550358613952491077355864487605653911348073905871943175304958724030411561523266081180738805963785794346419456308286834409584017871864562102598791252880573532147943104537741013234811954733753724488019442239498110956671256287229905175051906362899240456294106615712613959130888653037037247452462600997419112453539628347105367571385648575723647101443825176500970470321148590941967965932161043765296196757768502132327247457211353037196992812906739803270693546561163047401059329806739594280491640108730897031214507548978694337978965976919571455560798531806674178114312324331716912132618515134004491597373692760208919737696631675640526921379636223182942784889774947669888975015023289518604002390558307377826816020611085003463151973698580547484204245387584975914342762980404451261684216940838121737681097191385260927367024319386198632690833104779476142473085192231654960880120564612350299732446966205986070963478282527919797026032163384306086245265585827625781656904104598118606020539540357413656264732291789960219452459208959123322490476406787053850832926679538930766646835232842072459671802899619980977710847637978172847667227223526448612196881407244751250749445341861477317624500095903753740501068006511397868256324770812982561652243488870391719962127090087662503488384693217482430275059979955704086909014154983478570985759747616833967688535765588238338636379326883115034030486299638296667305212077847771022592223970067117019940589009758290110786472242885103015936053628087552321737914665210990343494059376490869512234120321567379165341593770102247686448855023327848400383064909988978222055877703447520785244182295604802405162543224104377838654413725673707164531409433880921786107814147089210148019283072928448030515084468294192376005781237692093722046082411703629508943164272815769451597015018176074101476573364214546017223044663800170639897404975783408741252019983941244069325209430894061115677256280445745063537773745838665839075560911202872128615812024901206133083351235439971433727004130396300411478923359282532284466579282803416554973899536432191168367541615999328132285877595605397655125840350429397306794600231430338205962783207927454905385665592204903002303251346220090031757154720572685725636152649237350759478203878022816202381722843001785623596810728471439667680460395835350931129725346181589585459451535328394044465368631963745708891621430541671576362202377197011352706896931977086168542805014967818722948737672158568743300624145498195494269161892743711858625997680927074902328324189747814729611235311854003704072815628858007133498110929392862827759688944629071342129843127707694193539042653272072826481651029431336184153260181895695353517594361463068785616784377337538633359262212283757236721312506553018025876903693664579787636504472676064759720640667606961966903079591476624638377021137363028296069511626402287353456252957357711170928029046088731570134996855296012923585414905814431652605207389921175621607668321491916625090631727596333650898472290413035287452767919830357378757360102692761352924009972542327442631216060119629672600566108809278104695347316177871161397460751186503532300103554522641384530433389829377863878260925650441252643877364784185447824909237965919433556272164136734714993064451673541585269895426885449754580132032528194613676101023865302857281029326763403450970871496333766942252035083084955480498239394611967693651469627315990395216852934303429142612075771543332302860810269579720149152187796398129225507900935413568837249526566387721756016338674683923855339997044039123688386317426647175816097802882568989705622477535152413784019732581480414679179174686868393943426041155393288885514637731776002679671639114418692525192982709194923835712960710143866689900234929927307930786764306200886471264831213290259631205897159538342934726999033915181479689098660184957868148827325449524066244711552526911379706120970869250858657820828383643733089742310957183964311730435931356682566956071318428169756226833365422622347311082668310146205555787394860997801547002658653896212314162831308344747945386205828189491082720057095394311467227735615234951176262097461387836184408826979544445458506109015506013163392880836379860018002039271816396385492006784818120017044199034837135786855175332332759238029738968120955642683635210020445866578007902431777726865786631744266699396310257170716452679735201290491143655269181925102603856696187214771639801870812402131606360193205694380745929032576089961919260660010690450734002957517741070381661984052267557099603781840415911563068571080558736375927983703004667640332402430427329807605913430915997865009783839963119457875853473519651553773855118966895479520149239670498296726500633703099477807518312092387732284180441697074431210495172359996535163133942052791621429695773265078746614871275396174949037760161520608111687483459479290553905331316476161396411716136834131691825084653684009208131046203179462396809878528568197201072912389122659365114030614828905920807606090921773063041371916676757815259400867718741246181473915211359666722333775683775954634934460680773521892862200836724144550293732713468411754178346497097187498530864252178624177697040017509921931389851736007248516854571055642374215211984908898756782698790200179010076811562537970151129453719909915638212895294756472633699047982609625022201051033811820357820227156962253593942909852050777297242764426645857019276647283637153612467170800131465828038704306631697590314164773490995045836648387522982949912523783520476113507125232140965000864040162104050904243937332372497223797712197275591270245316521029266402540082627508896023379248831645571586407870336207780829232559980107705913412480226091968428245431345112144262332772002601781114253371727976139563907113167881053465985088528940581139840441355636952210476485474170145338072497623140162935176389557193863542241229436203767885031925847161958439725633052228964261942874844706866674207587465302423622209876872041557765830549727961282318320619618693321036742119678008603525776631014740712154958846609255042184297701526494236500059527044079898375371107994017701106581177350558401789223879728871940541188457910835998382143931827328699749071381213835777780982845234006685775383557652417693346372612116111225310621974966317549984106674962927140315991578016826619509980074272849250430047405473350715149827265181987183617350169627996391819989179100701793068329025153022708796360779649568010132513557096454879780454377889906780382358503088280999007509437927163910730359340705559524256222480804137536783042138337241410325346858095079009792371758657399692685551238533452519146057040562738075082943671596707133524933709579588856244950681624511837841316117233888245784954760807959321686512407099869135171866645322554894560717434327625360063815792329895177734934606645131686300485706381051648901068839450025852219318091525769801152883868111769393278812315462534397173008228847020149617344521771422973031876767833452459363939655037165416492849243509914644812537573466747778856284762388171968595388642650691181004197125948546925804215797692894706006344407760876623678852143775209214846796521515989227198862686498783024274591183774569728803170784352441122858407074183965464534512577073353568278255093693111631515629058405943662220434915732502922496950144465328441529359031833045035925973777415000676783640826872653029200890375850290750772339234859969480388357181829952086901241281483752299141111158445791946029773354907731528535548417210188290559018980481382843827771465964227633924603757584906856030734723805703096053788797239328971010875087082631151620077147611965818882189493755077447126428340827017505884579244679062164716029162861797389850977807967351579075144807835775725823651121192806693946528722863505523155231198771526597844740265617671239727396817832863227012426461047406177355975660641849867575237257808202351467600998512955606032323981091817418366522673495747527843672532146753978656903670827787112869598761871664578950586630131954194725188297171680829835732431188030512986843303725416724885837271372994560479699892689398514621002494480897867033372428913578867991137815927445544862599155438138674908389645630595354391640426113893820910890516718431054839160926682594768876510752210517219699604857650664671644082608165537082280385232429286830658497051911588441949112813340260682089981337060846179065280216053310506808390917845818703011138090594287008182013675198978184324622237920362685625140202635598956266232364322031113987097095607415104065686154800873388994206118621478401423038149804039150331729683347756459611127732850585644128258364109938992853943361370970552428754739313497995962722146045654243015545044607017377910930225335748713921801642337265364994781791859244512288225203825411126266025087055043703554508427024280703909911319762899435929328544903275189680444750586071941634365699887243132076619296282123563245825261465484981280375775821903621204443293854154092539391976289327134058866300402794989577014973590060592677333274315237378872265653286252791453125480265027410866002514018761526881282760002553248571358872371651390358644144552659217962609339532720149584592218914766234242149490784150918375457243064941076670645775315204326268115806337550646541357619112121919705396613562460923896408565802018304552234947908482097091590786264033327251785095216128681041891245742652425561392931171738074444175938990112355412428037649375166259630170901043749641483435880060570168724344267386434809307784282839504449115665088383751037023844347515985809409408872541569422174573327923302311982580879617055984272321829311139843320384186494347991501731416129853153917882639804514449578327213498772372667198077788766219197889111340617063650665188006338492339872086206267600079994917263169432721394299336349771420859432049341640033407746205548775063933015942088152702730595284264852221002521962831935916733086824752908863111901357113708241647216235024646466140510922869392145857823942127892130515225259651576926068911608867860291720780265364295057598188193057056324856501424150170139727753493561637341887762238557651177591779190454134997247904880660649028660090721728883315259334365544790718371457489401895412136731934828822064415040411352879580080864669512714678853463591558903232338005416078921127201343347664136719786072995397405585365621429953897696091547044542195153151006266678359647316883856083223571306484423397385139194004602351400032576340604858688411590917920176536784037540123055491488219498574089404005440977039647422864614601280411784774032677125951320350072379247498159793516417392426187681488741919475721818735931726389832521238458954152101932743987231775284791659661361015874406766044553320028287258849260035100716202890112447664695853651876244916524149648080700749986866018825524821919160434186787223642068317400733336932029132619956512124877017280069699845056762170890059202538996070183237778406645170918430959659121475085108134662904120492390803155870081982855681785981534161721383811220260738312384217090076344984621277434003216608893701741921731775909275051290525869575304389106898759815096392117890253934426799235871539513413796430833259120203906481819498445421693786512325796679516728709626030452912427269199588941721223633637851356612976743141259938985727143583162916134984043942400776041258889795425764069881062484990951160323661856941663850573798128097099941621246354481948548062292795955032547124830053689451150729270386713046047484301923831256192303575055770468648944395115492313589551916428100868165191096342347121681420070499711879293184355696918292226930224261303621005644930591640761465294649194845136088149005135463481751017440726557005302605771434707538327850734745870976540220868612155564386367797925134317094966491846452974950812680082172044020170802344973810328132969641227039948979588466384240756253229216173470551349963151836088648619348019584842637444742141209205229541305527138904958085573316260136861045929651172095153167960377736781811217439664796417135453051159984050909147380205953174801713291822624790603243824525667270133117218004742042918185453964369858506942067648180562609064521128297677914869196993225187993351755080579652687123984084267124298211507391169463422449023961402244885380301905593594304218814682307955345433218268774494933786654245919146178943591738171586166663432016666911122186281950885275201429089339837796657499504722704404461907094959471894637531780159775107728121791130297530491555289066084870262085934483468257587615754808401917971349791140376551593648335444043096844140313242686894713495328328234883700696856416109363901301027141098585874725461248742005700583009990006912740470354319462177423171905870232924082391748217510497247379718094698889374684181637722089229702443268899124448061332328948136382186950518574422674734613969234187683205114937802224250471471659714082506864852973295554250338706345950025949477841428411913475705409635858816415189016577948125690776769087160878566431385004580921787554412560416581996405993297674256845068600813858108314432272279950375903207778847007155384559270061884803323173530079420564205422619315414470306611803056397965065419370877882053871701974424898724348675736531047252901878592069474772072180409265404042420999171645777431216142941917576156066588112289703615814521088837097338861689907468856170037675971997250011860902552821252606016448060153947237286801075941384662520224212705992847004886085064385465134670531054112962683979027278593263761357436406557510181035428676447315160443489797599312155176201708169359234074183231425082481123011048395096755745185305982340072259088618558707164824682592371380640448617350517525404302898692363981439690363835750507812001247714187370385406537112562028056027994436256049913615902263255752874729373816094488160934128487552462185419343005524393259901631164327225692961806154185759018978736565743023322452657683756435222866006177900335457919262839969348674384458577326688872570548913744691131779545402647053218941131839236057913043361400802156319438798179647635317476391170475070572489175140892076858237660426377629144465717781349959837685443169377450844310094411537229591063628868062975591406507497853186060246562547733386002870759428399517551796612232685028076613279934818571074502535225525332215316991139663965520504721912774091639892743457689421049342987752500677552179169482655322027209105580753691068768894827285131956523908400210986138649665636120158677096908447059757780574286037138812763312891095406222414497971961421879353033760495600474764107052715644339852021928211660564477776373042647560661315158279271618458035800802251315998747767253614322330098700743594579938415136658407533621552171933149708761079381964191456499069137557182112988361174922653667224465554452742764264385538128882321012921504835736965061676903390555554765682456375000071826847998302078874566062766837526958999658419506467313031179315703435252867413698564190641262079231321133118537621318231584940673385329531230225056290504598572814528659242766186740272258021683850709441765894790571685803217875932612209765652862417432615878659990472267719772993291035902540740083539516097881689403939125607363862427334906950540824618980276171371286004206428282728389563617719121841577712309529307940158940482152269522936345653215807478120955324460521665283211814590343425488986312642331295969684499245412451783163732014528197589467622752739947255538641945534472889221148046517296667641094277466948505599875076958994979441596655484035514383539806061442084337759393566042695587408274434885597322863462841448292706903840610648821807535360717298764902909319624920510094846027728566329800762031071416784701879210149510474080697805294273982961488951114250670227746358875237265070530228639967235595214998738823104963174993784230941261340071849733800299816126332166842173270038730774180128923175171948941851543164704156142741489517703666477957157541781378398771951498340716565759870297673766246230161479664194245350227793825979041997537992897826265339766367819428642928008923666322565539141820976810946250625993665815572417952175325904509898983836505641015031143759078660705966081679255638039796637247845962154876647232779592817255215309529624697764315707732672906895775804225156079378274598014453272664735799689474105462226623629698853524875908807522226717839028824416824115123170182559228189701807841873492208899008400931943731168527451709404635866917943088660351261056369471014887052202537614222180252363445222497001787751157218102743198681857353478136917674955862618854837123709295508897307584831358819167336776702018745445428891009320829518768377348455521170855638584765071177315679511645683529073683779561669474645942108970454541739552982562935753355431065597447625211926146959935490152865131306407814145419790995952720180178290802747363182940045649758625851948649272521130225164958826331256114345208037429353954316272611040151731235819092888099457021389497748710954339071149420223186901836966155271353508731426894722125615208921317016147439902345699221482010092231468446035739385334817899636149043386540122394179461800270705974346902421827308615355336819856460694531224768006510458193105912702358899826360863207638690548639470601679743732773202196361514712400045282895290041918387115341745108871999097074471857438056929775688592864774847110257222664362333635438158378724011895375773990027164526802417011109358915922193871131128508842339927757740684399167000238549495270230427597269598955369432595412893222101839915203137903130861522688930757471738333949459231986367611031627558656324307234837204882798848231358356419090842573453690465825239344368232086133995536533107849160101147618849714189664206671513383967848705238595249926522060069870484065571408463119746445972550652459515463752947204707959802655354155246317611484330704243500419358585373501377745215728534411984844382332479524242604362801883828355129066287001437854576343640906341737789482557713226346693630241611172525008945671796351316587492942794699205175080407386076360830342336619010191525375611406055889659236446167198806327915572309814436834838530337994043431942204200742224342825467769731301939760664139079106772445035312070718425035518834714772778075651410878374700947935616661796444593676808738948369636558882903376973278517171531192046677126502884512829490768140007595086480401704865518581149995237689148281481257269426446769663250796637631611322676631820793070242408527637717011551823955205818531401641510880110868173171185808328067564537666565960018885492782542665742353531044062582390846336245821439194985488018361868694100020969825719272171489524455021375969238924282570343234569005756712088904504952613576875368960801047090371725376470911511651316017572122942324448913955766013652262597858609397669097978365055333165841403975885842538737132240442207445583103780891834852296255167916635850993702579260569557464599389299534523911490179564876186748144072554764675438829317089549126286918936291311641372694601979738410498175997053003347774422876810472452132257193678740397878871005939139557998502856401457517785669012916754780694212710182193036608037399067533662370537956089487075705038992392508272066071438929766915349215459997719667572804391772620417095433102533469114557849823292752732409670890827918962946024509395268862906779327948299406261683508298609305068892006602222928399008780349107524585045728019797623781234513497132024240866538590316828288612566486529780527294359243589039944118048884947532630685118908568511330337065545665053221608503937655799592249358938842427231788895212550162244953156642969552706018414191264709337365440935923501252312885669549426518519370893875773247821336415848092739729852130801673294519636790447403313245888098762721245849623612133547911422880140519173560607296009863015037122882160547453090692108531371335222563911306863295506644721659727397319632583398341412260852960726269976761076896736437503821131252729882152403466254556441190781963679502982430614900878180411391266737778919570740218627720216723995487748706180159617582463170094844351709783044053122122233775924271872850683887786559666565946528570545848892199826027970404729517958010923934965309675508766012176847646747656072191087833232707226381376438452721139674176847098031156310380276744805619108868825266598122933998076838534328767586592592121720909095983611650009961041219612665518807765495132400872249352209156940793483727034822206182013136608464116894755237906577663444842110889149032024467074764540988412664217886037655148823523527280548207240141274947620479717662226876245256429480518478070545328367499327252918378319814289154438748343995450118161270180134406436845195404379593484565242394081157075922107208431368887281688389985210694442552792021849618918680609011137248078771584145286298343172950223460564465853742333925055047962605493124749530710033889061583154832280291106544477956244777127780360425674607961045253798288420693787686497271848417730243242110186154613978480183690559053909473121464743443483975608359911525494466025642920008015931320973718610832695631652528531245343994479873400560855026734395644139409318146964103093156939178136822125292866818809648407824042750886897462346429315108712366911542603654355475501841841064785138806792831974557048534412096153002941293675146980522610854658471880552330774073031714811707660831744306844632710061133123740598709474856278936500353313576245454453001636837543347988975808200961917318384967568241771659606960073737093467219356165236409408755145660995938374998694594389465409614797145128167484198696677566527337183794078988040092683995421155974805618024126041296313182251467679494680222774417140623333997764633813173195587432717340274102283897665089365607926118153896934167494067845425943887729875279735306097323360422077772752309705822560117002250590325657211224751453585935363971641449777190280781206275952747255872960272423616395393872171225852063021669724178075113586430942250053252270758685583742572602565951283872938560913636241445712351471422728742743518853607250546938963873741017789071970374274471311842214957720191784942440622686461323194348092108564628492512156434660183378278473672860739019804420188814429847328095809131094556788614860320405222537516767119370709787030255880582940288352668266725111523354648264600909820057541239834806470139010187655187708720611071680686475693958460813029088443098268637793016686722817146478215300615142619305101527717342667362317988790888639880072104183313670635589596845440890612623288542459153325878184875529399658608374339924924598550276343699031148235176504387443944927613278902583085138742329947773112040045883822454513832725635107463283122167804728530166332598840296753729593968137945552287196819405052271586423857883559290250638220365576681294200465621551647329120696012732310681073112251712946490571576095769636345990578450883343339663556777299173017317208690025802182173448842431161587530876027095914730303687074868613554319761088941537550757310327775054872501675725571276929885283725980421248374871061410944130360297274310570073954415185002374728857879558082896725421976184308159604249806750945284209307172118412670027582209038095987311746871694920177413627101680903318583030097910916038196610943132358742880052470908938698978830594459460311069897121956846666897310546812221282772428706702466756795276911921411321491686457502459797550666170536727996951103875640026860589637539783959787328688408751454943501009844719104460353510747450960138415479854224965398541388131108241977358893157637751549706342967952111577526936760176501719640526462243889155832038184833946531903483980407838006115325282043005651690130109473631229225693186315951928722457847744871157178330732920782153590120751935736643283433865691602798608969497774800555340052360694652695532492839492391704055642100409419542023653974556157034146381002625886275682039905762497024800123063527407061214252494369200467926805625739895329990055311691883448691706056059449933117526515896047909977586589007542527087992797341377319495581237416467118817984833288031706767813756890959900754009542990880142923546954799026520798597440382361159197992341868498679145342061750758349495616350920830812959587234074331434473935442188194668813607925702946884478004892764037431235158582277956806049407044458447693806328281615818714903214531785521028788015180733055950152467966902350389618950481162017762125081742639009286680667577330087190673883510243631127634177379645010051402448288659219133973272813102488000281634082628620304333118768327288307491251052454940817190340453435219367087735976476145082079601263679901846935488873347587199609908017041309467940156764856455482110616126496805472480035196677229360139011339235960710365771590847612372792801144918233919380102938940468195371313523565496665168613120619178384836327477085722143211389587313750139829143227239943089233507750469689583566316022448057353194082440867340454444165548875583323713084836723207841110076343678347406558916500133475133174474924880322883075290187424783648164655308843713774042702964505458181584007852669841637566919931707680841242861667327273371828228291653742138054464115348621908619315086570984897582592136176210098680196567008754392592844681925476316841233853776334378784980631189820987304504885723307931554677609737604124502153793257740330213744240938163962929810473396050103001024525705172481108055334600772136873537985626204227927929123829661258076000048344247777616261765373220958410289797660230519774253848245479677097718486668137748842098336078657809345818445789485852386215392954761361889296841421557512081667719238833870624993072314938807453831693744870622132918178923756780637794288092461897867068142391072744071348777584731559925080390127509157345802850875494762023679827102687239391777970143435897199282562002159300151980056151754180055274680077970653246821788380919477294797841091933331813370670454643862467444558581165139413747291541774396043139598632987326057534969706170506866124549546511836669029874787130452599079631894835638629986226009004765258007523835710973644689914291941457704796492999915633490775927914463635351554925834366156043567814979389334111202060196592030059072467847205127154470819692038886015066954283666968875574251620686835926557579084285342934243719395231458702892348693089291849472244210370477176574329200896172652150607320073079538449131487873031500221750669222915132844448943441465905868830173346684579358984450930603765610909372530985747455761628150742531818927542045279678929854889777987299130456275576961050379775228850218321433775880941510601546822638830193055967827716271830162826402040024268019144696777482460331932068009952521164785556095174700251835108545113743599153986956687856886599337116196262546045475097612262700350840743184228827279768214577114134160481160588257685783656129880622445250628518643245256360032113188719283161452862233662136300980549771253148619486023944210612128589683428718739253762341332557733503626795813004596805270973255602648476373499635466809768783112501407106652395557001224052767617507655938430497281520341448061120241105495036584527333339551080134053493450531682498916996523108742409016060303192118784935598963946526354213129992532314058052472359791104807772133803808693362214345676823934875780438440245500537263705777091890468222692550532520407882401046164970688036014075752738174465705653492636030638929448726175929291629969926818263534272027959211797280926806027718436371915420144089284440370396472474002922316319496059335949969822698155668962294495870047493567376735665846715135608619494416186130472144890996193493518976370142461325010998227903184083259017172283835807306888456035322174563794913981730526760462581901596139681930089298768539214821604272842989125064213943537252150754910904085279512706637489973607058702058286570382877806347504105430001340067823576966418777698383968300285695905126575002280529881779586771249117621206707483853684273294136072612542167817646215324367763648012010703324809327895172448466195707618142203878765705532452342695606449500273674551002622062164636762110282128728438350604479167147469389443718420412746779895255341624771238026396109564296475927840254239414784644981877728122005392356798591799560074283462402715666550880465049023031937476524179837148777435217699981298472567151583257857564528740799187612556762555571977530913475445255539246829347331286846353661638335383201042420956427540053935078849834728229505824690120105309083195380036485864082825164679611081022664813689005279475085992067986550932154666201709389925784736616480093673386073323506862224333865822832053078927841973571763508124618805322900724874307391112129673920939994461657246612679824150162436197336600930494198648380294716237511022395930608642459783486932798861300953970142805219473289599513737716506843311612431603066359417217406855284857170912416613578412677695971533206699846933065769255158565820879539667818528503700780902774328773111755930291865218672190701162478788050488095403998214354534812634375974326664231130927833509245550716064728333754165404267005266830172887893263145965758794675281217892586503766902973060712027226197517400650232245606849967584440869805518483233626596438993342681913007199935105830946776629831785093826917696694302995390454452801869374474782995407142488209369274172172313529819453906927931571968315450607655598571691726535422771360202447919243410590674158796380490886774071963948517589516205095928700084797079677612007980400325853587817802486467977045741727371734946358050599943629790504104134300636478503213015314268153555649265409760389387117356587906313904344315909029392629135983079665100645741931231970666760793892044850239350583557805062290994609450552751868847228665699830911961566586648899304698249294612220547068591683898782769485266018159998895662767038185937618044696376868682816789577895595191061115243331594740547587689535251289031937288623929332624230678137336661602851588410835072887303085765775122269521468007696350701636684188176668572197763558926663371017508313358177744809001802721358062849817113987502644147048878576800127315951349061514575529002289187930947826157996855020395236188398345259476212043833126209815648058880232410095623989652991752871534352458385759025443149333400644729929835823180069192892164558374762439195594127038253909521250545133485907481536366034974992508481298907668279799709596928674020370575589156949305034173324781170032639144322810331738073042310534712700508000092166469477154843677771460679713877405386374886767613402333810423999989337626694345336001579703385703624523885538544146503381930098106004846496171887173350622521346418033783834075824285378321031901849717888354248149165092988268228714708763443942828778034618090914500974866306774644242577922151241211271170048414638819747013724641949512490743205990616888753355988044783665986030355505683068583757789073566398176230114038326055552070949666120045742494135501016624704611556353167236409648846879404431930470328647124914647184147196484507349569523460887355474630119017347627964195546349581585842775891843905698101888167810574811685592164975602996551078131342390601107427805159652851929411096439799171847560233270642227083703036917674257371282884344284252914519075178294140947046651223767262992432798730896250871471249394673003990580905596373265573064883774101976427904368620527326131793956674834078031019267968393194707342302174495313681164905667422329949279522451389042145589663600788565465708723967681808157411317746663084382904896210858961767081062578481599634016633730974926898382110580624540026300150311924391230286738162484494153383453641021279799176384174939037744324303592660744932603773854405070619951571201610081122300155998480135280217615023307660442199858404127096832033233699281012166453393652927080004767465705213526382898662466532595102879991603715861276171225322675848432411620137673905020504724242519591675433464545114228746522395932473298769102437371690626112920167044837614401455660139551664440954996125404921598077132345171006288182866581611058845382480988303016304186053880636356354743196410872081522954526549317450480325760515370301231171990805517744742724501800492053750416035760357831147543410132168125613171249173620471975247898354523528706374689752102664477589930494752087738703009205186928654867689378606528469006595204740384353364570963370588685981693118275999813925048832314482555867166698627666590478956698732507878794400735967118780312038241540590290234226559645941409712925927416726929002797110798784142446364985735041279653098228845015157613589751500322371024201819606483024840085317930489218013503415805685634506651818839545814431141131103366940373045963273324947985106584507216921469954000287571562504728585620308897792896829534382999544600967761465059685047591498001461904390148284091687820644226094839683621611762326419910100798353958373708743896148580025813656217643970271536889668712446038406321890323188672934634444239611385045763402886252931630041033113558603535736238705097386402851024981029012381434754477260830548820265101320695503081873022194946069916213789265655909314242747178098309467423668859086035676766987203927240322900578938016012507759472051834958498867938269792429708626522847680103177001522106273650300376672257694916919379118509796736844375816239153007507059365258208196515886586273368532520735402381503189224487999535589787150784878385710840999845482969699471119385677240268824978951930399271797910628157423542313071525831876876705059921988752735493104218185264452129576898978738026469963325734229313288621575915670631663530203068397473834777049193092282793584732319562057349945014165470002858469337167563366020592304977407725936802504295301350358461736119437719175098097606381087272804874218460595224168151631828549168032450576607230300401164903294302878184278897387779386555340551288829151884878669487959633271039082983882398967356556683941412295253343163620328924066006449760126937819720929015689494534539886166462928925435662224767128084353749991381326281553097843043354366349045688537407290442565481203114729155779946457515758925258706304119442306231350232638146109428740169515633029561214554897870048956275536145439483629832834383135502847611919882691938237633444593533428848179518682325339853022799179519652872499355776665652212373392552032103727038214656157326167046749860442752113962914631663531524413178032459702999925863907762497107189871127241749822749068384726013724995616332976827809338955990066888386400605513909049776409651343853093366859526139891547378434783863035610189072171561514819315942361502465875286982430975774432137220420109022614365692423383786019699359808819129387018689871111878319029932669621994446120567672978340986500421834496898486080142011567388331157680526857015350493973383447719239853023292660271564284474668866659382678039430327065162839043636457777588213389762215726918586850699383706626701347307977036683570390745520146072660769276662736858463331895958662678169658450490027096792768187645458034142948863420861753791348168959690689640457145865021320628387500485939554375034874898123041973994983133309414329238125456277903969226940457266648678292432312621306699585136848037691958908229192015994880043439534690379862524746755616691768430412820493042685941961425514712349768634942947115402199172808505286157875694240686461968847384535390939504497173241084311909372192270396116322400222855754320792104525183720009880924890041866269776586186086598175915702527616077750959382364191009653206232705847682999475243835706145169228470524997624720636168439110211701281270793237032981238592782540602857913582255724287121024178671832941687428544294572024037730080313888675572260268800833070143628963065339375192916812794567405714311816863637210320884496736531309219742452861342721717022752155574099485892170786245514870561736615226912468916871765885140770732183342715637817650358858236703934139540670853674473808597377249339870924552435475280258760809922313737663583544306881422361296860899440517695587187212688811620480560152313743037952871180802342955296863405060718636826655262116246702297496926264643776002402851599112046779789925797518188285985555773614171479708060464484600189588379182427690364233046079038307014204257870063829241316390544182782486573211603697501335500770846676590983338125413746859124487404777808643706198683100597397745390362590361998364817316753826099334390821997489573836431177635630259961454982687865207447233586222958563815776470322001300814413242994000113393134590545942183315380668676236949204724405464765559865556119574714170190725701545692780299075979305067315062942304810960145866484661570800771595242061335274031106331488905618282272250991556093017519843394083689999655548295473762824957525391937612438678526019620453184695046428619641952406406990213245289471393095567253541861166086247127130522550491351572299608400476863618271049762296489951102432477865426868678400225482910525014324607491875752043778548941674772290200405276198214276168056773277546158056122113498986655625764139973071183580037054205255357059805400307799866880617436885927397527289562071815693951090301442573554456364586453272765318595352561256483720744029262130614244712621402879791608912029340373520209185198660573109169876641589473941046244829186532312022148858589330481809380080419729381499009704038937149607220277997472828886164256335486160847661696683325922297608937774655827787504681365220816331205324311326943106408949468203700653335008144288771969603949791070231272622335305988260872142368511227968987364127746560586483049344890936468134729781713123873050002812062968997233272356066357336426179522629584438468851496155019718623520360616214444108620547998088354312459601825554969552383867495036649884972929397178447019458916126018162221435569042595669352307340999263776451025982765050330271474417525965844135606834376485500623842613898756162730228961218840216722603247241889050452833520266331962116709413994342865132060410618467109510267692556455988210378965494425382761951265299012043257609533789959617752203365651489192955856770728827406103829866846165997341061662255116959713369709026672363114341009670682694133107656385791306868525471190813195465842024906163798512771270823295034888703216090100572787761989466351437630572727648345443726958363973726548870304837866503923422052328950018753620738443884940156486721038869566985400616574459244412671916053751879910433949808903838441623458053842857869499801250520071348458055476857116805923390367284191939165638296298762100294353787414163734200347002693528171546750219186907171155245891768492600751099059771248241838790375646088516137627888111749579400465936863446464540600714568326196796631799279037980483790116686583792755936497261621411021048207438697658708890901798293049478237025015848795814416060878157411229177222190030226588385887744437981933980962720827409715089105388210585907791069307388128282988915035546492788678827014816874894261774810497435616019222789091093758057463617643856029108105707147424036231969171294499741332453584642307182305733962877019870189007065498264078529398614000189437913352231993758366505561464035369402378732172514649330907357019284647310797856951955007962460711594055712173090984071811913879768065722864622911228378856551035272856312095161610734868667463764259892978941681204503910896248239761296128536177444604555628916525803576373938860903898900522406704503385466097610421646117151039623579924586512592347023848252321605154824267231088725082601088390762703373646329893861346688791193027621377771533207028390306478907644624900475690413019094666383597780729843408230824017715472965242714765934165146438985885525514064293345637725709968432511358092703573504480365059706305436697098371939779564101989814012006211569227923872202295638256554408038462829435664285303839410622898515740482848925709188810395771121917741000567475366412641734646292207270053999809639138969003640263089555773454708405884010593505862069746565975905138822561321747711116827777261172346500268560710104206784503192390612817470021398807489051876300186698660512850384073944745772741114600862503922841988743273486908162068285558745130893026063516421640367827387350548390817736648429709829223343990066208105235722484387108354148795429698021086322599476289975882918830167346414139025892670181013138818670366885641732673703444277515236981765905546460468889012675528337616565725986775296473548951111720089069229425812990738442515819179022522345491192590399919360523787072573154525177557932549148600206274059189330621242713928182076024188934979152761833960930768140086013574648879042209287571536787114967778977638153666581871428373765138545221713882534091624445366596961928085574292856606859172057871796100280379627390205922814624571849787284093513076028212112913521647474182159564678053557691491918710724247818301343591608964257774144640694000468271611131679599611810457759744689062150920759135033884554808756862063568277714655265539090985378699431712811519001230268434889367742900156343668077049468531215678211110233304009525077021288653281856492920419291928142261641312250251130801139709704961357119715524357192562930156483754514132007342224176315044687924559377518082962130937989444904365121373765380998501913096039814169528590503386209854882112295791270417106820294667674803396267243427571027128641174696680270534672398446397853110591530099901860848207153458965819831331630856497988677548413808210566264162506686053029374704881420110885038050706026503012323827766817284099222607240845828155556288977167687642165747631112250862057192905372079895951807911732460701688232862466253644174849087445219710111929536420258994749962214183328775129163569550537256343434621707422040612946905541132940025588137664562796773916328963726840448447333797394426268359952387169620076911190833624131468739190919961056781415881126832222922670539365416137088012198115253172424027721941407842244307166705853288904569398476097916661602645716578611099832600118727863065150737054456133815914811761175249673577267033503687741375136963854956806912905420547135043688878952735239345762792315037433915177215729166268218244643861002477853570127704840209376161890606208724462765140379020188965957693186075975531962571660110441704239424827621758403019780915568362689710298809194312134130186752407953866910126319254882242279114779561163667162104955979001346765735709147384822698573504286600571042353469733446169295259451950245657897908547043218468352760128994440928086640618637415334204640685398360594028935361452246510582862919134291282676461734039883302785097703065011988478339929735108977822902804566090919316599509043103894344104519233428635934359524664240670233899206247754206927211988100176382497514927766931169431154961414716749726702772666963863804412946449563425477247025930948995771284166452074119844488502189262740118973188499431608551788611081090200942595831473378651133043291856126022098188673803953084381551259214125068671995845712857581439545366841239772119274920597035546051505582171002265493573054903342652481874391183743709244181184548220777382755787337114155108145584515600232582316879795644151181970982277816552213989208203495687442926809592637764695993183023724868068434349603107341171591492909419724777415453349640297225656777838161461704690641946622406566259297153021204138661496851231802263728741178903848787919908581704208462800914705285047478285794425725058521178011074538356718338259872992992531978524262223828215223835835606684037185130292100653388713194379530431863841678912474326364844212214326676181244492817406795652523908838305036920974453034433789210701730330264467901210159612792909420431542838023704197703382300523355658868646482541054666629284727069041864430377223863967622931721663261242814918435345580434040450785696962729514729730415423986334223348585484379219541916072981029430398424284232776603824890283154020284067754783427706598351876069953455774915337001402615409950903536043683787781162187568607999360259065469315516833571307876659048360689910201407962195087027574676694907926067197601310815724812055374921346928594807010085215931110602175729459213145000308032199518674840869330293757553650959554505659748600132870714126264623693299154408780551876127413412411081106433037109078400892602628742908257969411611624149970100651870382403228192237864561310858477886251441238498160826246861879043255414006654609942495441940827553948354056300182372439380612027067201555995668385986063492271066272449603754060853129536146140525175209333163070345033977257087746128053925918577053506055212999660302967192408176910772292587429180642342067105775569456302851095893834088196220889236495331858086311459679214016331880165861080166059600098047359382521229095236373334202774770978099290609648061470108040140605361366229951777782140865102553439556993700749564898986515725509151143635051451288276733181881139852954369911128578144774445973347187908269584444542838577020378427564167829835641088489566930124524163886322634427881283280575766168413287037523220202362444448340756388837236630104826583022518518813568054312163165287429742952028684676220014009168768904423374585091387435082767731972355471184521261930835171130861293583990220259715551943186472735694644965942504674557690698799571506929886716179487110722480226589875475488855661195247252819061239620078532254533976272245189742666743656534696621239688019812383648145002835582551500508949868375669057589206027931311213101266817382399680952028554540455522498898638639415081534281878990336046110763689219927101886042568841487722129899979315803540968884342731002340612428184756623165529242365801653619333208669275079302583538047216969182500519703469179937006457315967063225755896226030260318616391494691036402605677724493554737330840102466726506295601644910133549749323854437472228735308335864870903408717906896082129179251174802744144466424028017422531219113544616282455048610071895524877945028345429237750894397736869736254737881884833962570126491068787082389302780954694161966858878149569673422683660306253338383708104687256199414540242795007209183978171199597510025468161618115136430313744228578323137461656135339409905766057646857224378815529666081632980322619961061354540830300722434610880311526173445198068111376295422639346029475274659416247280678951592349006177021261542240041236914396125065020272413319975087442055990766183451960803025264818039050013038285988636720922624567488184974972981103417758285263415593300288280069612606467500898544135162409750967449952376192605198945820717290984334028712347619885427503777557762700914329785771732302002296430513994996368374037895236874401774392056306470318434245531871323541113293829545205609601342770652194513445606733973684862299913316806308587645620569822353161450534482583353445110900939844739169177546046764491597069677503549659218620829889963207642881875675602969680139759150388885955785839749270569595537115753490915757541576488623535745744526733324919866941838336102907277573262547071517315835281432854939596430397615410601008086311696341073840285097774579224796554421619039028156519624493829839902252321077232960812575787391333330925517421780244391397418012127430901088700538597523116302145081593156720212999158944405695246076293756136257188282581493833620593931581796721146525755395732952897342158946180780783508659202593112990816551267878318095413745540291272039262505423698440318165852092688394897763204892488946537490790582096813163360616204881483814152486979450704173713883271600597040950711532633295047293058709396698994477219430500825559587632296435551172554186559138472229248422634783744358070576476602952550325198751848725986934062153845232808445974108200149207686008193002348396768358160936638811132122959177326458172789570238377842587942403119597695051512863587276795358849340815789200272561680503325545306766881040879210940568020237750567591906663996925939167690162718736987386593589238960974488214772227251777079593702141375094435208112891737508192804350934394770421923131189655407202799576146000278884003718006261650103961312329498711350629920937026871371947088960444445393793037213224724563492020510573963092829436158940654219902629982969569792010066317588858504944009978601923872673012037650165688736908128099780163006502814660610226152800547305925204130010382214539740537410382680111107355726339198786926126035254241662316842920393389699359070331588528445411524232304150387484953631098378989036810803671194784815691823441258472616039919269389735593763708858489816808190204104068199167622263021872677504321923451539102144462591847383151131625082863194726911629797225749682856172412481279617812257281469592052674989603508479485978928839268064850707535106070223773197575307466919171825903993915468800825055313678045350255938060882222708151810837502409951786150125184265874518561464961648056104414978730683112688502892179331406491325677526263674855657714476669080049675781542157510004088267056524960380939937425811270541195335920346796288955297914662251765271430248789976466897185548323295977189138647291475975636603571517426772918616169028987196996310797656952267807111652233071226059850542452110646259322988692287277117420132609602482366580761332883513499022644379164105714400437590173146719934248185837360798064015004957169100729449136288410723350122702112224028865492635140743939495039842041623211571109902772165024050723571797143554901698514820085939608726388318656770009166656356629781743715122697390127762344651325766224862543364672235666572817655869518849950545291799896444956632411234921170981215968039593502179569043848320030413624218104044467223354319356338852915364805162262707615299845467457831325001245778009422781015295534137235940241336649227898245623132494272945191603118164961189281676754947839272250923003808307301666689966714162005103962093710651464755615510206147037229489113514267588283452032232503179970238263013550529007645771403826483040840726973572522527181068105576351679542343891411057988295557408821736048962236568540895882620858060860564200177586132492149549966067501860400617430583416628779731584255335049725918163523639350165240823145065277912847623388658153564552852829985022563240798539810143909490793135559648487419702072694737788125744194247230726441261835057498867856384328999208197694813145580296879148197057528948290599810129057151681906472817624598246642601058616001323716826362763419954577131602410196930167542574988772383758963261149964680960418147357034493496050924721987702454938203460082012260512348454507927776098288879075886739707613844821757419252644164156436756219408971192544743430198917727782906588064641646171442415661533885085923521276319988586375549908530865857396496676314015361324064263034332984064767898988794238337434349991771280874819457901809933801901281505075156530950108933147711570441080546980598457314673378515308761027857132152688768407673249902059351211292339080138449226689630537517971352242447165726564266150538514358535497725383256421842682863532314334237750414953048940555142420187168171435422080242274025430850420190484461662304932233668706737477747781011627271542317633675867627095663480857752657403608376460645709597614801051579675899955905138447306791328198372500609405118915238360708613451937870516858597771311020752859950728011826063886355560488790183957234135747948588727398458865386887567903597299956016387437889870496066186616783422396343036508135428030516937389251899892069149214628304410382924949189622197382808030330672938231732787518363216885053070702281652366393660117449654696320163445094552038459933717748260277650738287756243906520833435396532334537133115466281974835819056196286220396003980446450802668984506052899418360434867467454163002770360531868496069822446814606605390267160315182517076036184099087993892023623651272719064653283427367830487193183131287886764751766104649265259811504860293733311320008834246647177454658741363691800042206593734268537389897975301359089186465542766222074349697105547614170854689223092467440651558228428570721336210489790571733182972375898637968217713957828921832695627327097056607006893628766450798006310287122197970767582205151492038108549306779102341042376752486215517350299300377347243690458340474458267082829321900426027722056415721420037145197686760635736711513174568834957778240135751491546960358620944645461101198086996976976821935365779487825829778810353671057443009331926168056827916726920067829006054946703292320135044794644678352555499853624921548429663260415408946886942571216200370539156726032403093307907352263364328654619043040305549645475775778988840873746725954290548011780831473544478782208851639793183382526835425429814546053928960635917344181727684472022866281449262648062432405974655994995696418354069008092855762640134738890754226113045245654674751675722841259497885215871665479211156024188086314303398084653054725806233460899826249161305374849086718198676399914985778176436198366951278084028636769829604507849706721418147901900539745072642288059939048715732745430839253098936702065600620375126815411463690917800228064276252619277557064318114318313148195699939808710214611624835006271769124068053212498070202944631915001496327873908253262506305321877058284999642180231617040795923502345988614171344231593647870359684139251915863623929788398733996607241110273045354408095336555960188108098570558538071074507231525843247483512902918199257641036813806388934833265101205411123694330130126917883457354797121825654305593859260535702985927732252612734421767254959285410482627379755318443034936060673597955663173926989775158897355072302274603824247415168640570828534831614446910900214476490366936063960709171187549224180678601297511540801412658161355764129177291882510888615382673579118010807707953103372006811697028594908936632074617802060897811236220677249410365935524303602459254608061311814093705405053752693540532051551817608635392437685649579696090215307995893772027074214377983193216116251931225225476394870409763758418799793534119679362099392712129289804985672461956390507184417768010577565462807017948963767851099010184184038675335417643314627108899753940957890447622182355659232673213707902752783267417617766191278047230154439884377536029455514959542112198718284821373833990410295794646116100967178505553140411021091801109948804680120457759780169396470233451363554752246532657788804051201394521097085520498576597788392722439520151203622755823012881312767583981212821616547636881591475389891363524385928152888451327888048048357645599744686258841323206834950537155591316528696713211522682200998261201745189105146049550864060606265875238477718540280196276280718453935564875910669840681102202161269862289032178392141027225477172543895979962854003373121170216807881484849980294882153283613985314666464367640507261007262042076523475836801811412505144931477264005718246804549026312837335270253209624314484984624150871262685207752680759817537266778119428553840602767910568884963473914831300889711826594256361569425034804648968000921494546427023449486259160252556179784518826800019265808503024965197153724478969682718972429297570214724978983519146398495315703033951092752268198886918342490069927907156878084349979142478678291220347598541514539405129801485415178435791993698652684078305223903253863129195343182973205090970614801795046459251124310833100272578689706194679992688052123643445551131828495144583520098087042614145060556218280761580634617649310702819909622973277561664176834767971039816330646206462506806906935674801338565724562954890785538501221740743006098519196615138245561601246600036416582171437711076802340016092985002024924993518755355829264437986572015081702111682501424285244590907709845583810486434463910754256361477700636896794600574907968021078391723213040729472323478974964054015382480400427879420927969840798395800813907803523592064000865659670556361277750566840667652660777014400130011701263506325000292703310949572775962701516887444410265576248054063808251636559348336988939842796778913312964375384417568368189664175481910554788580571572210046347168077996434949212099497397427216053149044218287979738318590509265062536982103452330720737546198631073782641478460498604056835421990430857998506019986324456762380995691335908618757343067333067135657176446658099089465057823470414571538186789162474281248748043141609806791396748889848398417097874208349161443745859964932759007075380226092956979488679538357917171284504748862588786967474340494295795064063004477391844753517300165904088114483529134086036467567186114779059772710980941290192484284072053165443452948552532956847941790860790337189077910726768028124586946756234078714148823277021678044661884702286726088457109418701898777230835245568260245226144263440181030460132401881768521320287452149520747218403408903741529554069849193621465934953419175371746490154213262345226833257365006195501782043830562563126436870033437130250902449643525821657667164055249458574299762970103442674367068488584062180765023459014285625673021380207786278960461335750291287674397457054517013130305637810952094716757504966455826885590125946721372477960488816581989339653881663048450878691753169999849781104181102383757795745865225821050928093015101721561822800403534841530525152989600666759007581381858178569033136715979428860767218126712432137359274444353019168225252282529687584276173107803697605773706314410810668183458230605547875348530614316342148847411024344717781215195512467637421056734063831927063740032482604686424561306027157073021852864183016107467913569769417489168720754400017217391062161907140410156095112552479061624676553814866259494455440899600377122902710553118283636645172702009394965953522937385011550930414470636305593504002976391420257417618780291023755233458064291395402607491947240984855097038616170949346058357172672368081035696109519715078460960835113849848893806852174167838704265884988555399110716578430192707940949943742715143328220329993916101181528901638868057276458764568265147444625746347013899649119657542667389357716416730186044872908722466230822902269370744666830780387986597328147155410226554176739166886187120684976726391889266314055900589330426425391486608916451643726322190138592942237466578027833344226427369508772919734558014029051297068801785350618551896484250326196756579929146715807449997672068728236755470880041114088715750837427594674412067090973148619518609099655886435018997401219381679506944422925736538720001372231252286859253981968487547851037943567921101735069658526157423827777416175763864049149053310054309517725356669782078910817318131819424811781843350660594039319561259228093926464968502927465541588512134214448822657039057600974057526302271869345283963293366648043359786005347213747817589124528056679757649538567586620116124114403746550522710213555719098776118199488626472523100980053799124721943453060167396111037223245903103355733784119167293079116233177586447259665076662798155752881435495227125445769827493383853083872534479983031286566697306176740931941337612579384293466657339682104922202127678781303125128182094838029469695807065445705924463389884474221231695118418472870128559212362908637065454155101334095524323652585221380298933787165475852240868601092995872462873782663021453005254182631949409503478185629134269397587454117630063422263700181811701362195393669832160263820600423493745629246085503457467193462034127158559153243614135046813368149868934582769386933183456312735478524653680368326264566341388171234932233887706130977376684586614964199388457810758935467707834747140373844633674717191331566577961843663948961836508144860764619415755981578342578021863494563106502139737353930421677509250200368691166184039612024664858212688661387795629218169402925387814137309591361101672932617119713444260518552510838432176555534203209900748161362601176986102610699633227074043450348757758485959132129797502737423841464885939412736841087002075307881362779795811808061526809000005891989029059923682451092699285892715862900821689583392121098225439664373770035348662277426955283187052286489234176278651291281580123545763340774325644217165761513519764497839130608616264122004879301874955864250825290403690699418061167034862283290392822141492160234458992425312151071353321634461520793216426957311623296026879765622785537717960684279055604299311322507042400929502284061213851543621391657724495671156608207144707326758360248953539602555845695321604286471286031887631489481099583086251808895317012769166093748042975239099906102559029637309876302862353411377681939875045549824074142125717087071246339105435941164066904234881814109691145481328699969295219525418881557886663697914577518998107044015976466425574129433759279247617692245815250319755203792783797935759705999762629706110546135568462978741230408915167573416308589155636427635199693654528561906982979106295043629564792324283032605887927039434157394275153968523173580574041589516021061227665758806733352933029071143886345766075889664972843055309054398375531950862595717148375160655238026421025935571344435074012401009594329570950308335573040090222186400031427646590951043233086216078010866291226186969872342299307692784369756371772064803618531770456744862862358953524038113405623731630516267413992200905371200663921265831703348471556798491916195772057001381986202576300727687016941638050636789789067429772800172872154250903925371247486456726545292930741138608923428028756940408137664575073493036741251939298678157086553790043951640236697940749949935526002188019076854353679722914607535661874719835646122155855688218715513130944330540055844258648515351657679037110884181390832011506460672924355044198960455806172781549534160349839602593642089163655967915680544410053255067370260851713809699432302637643398524931279299738017650913975569571067504473107157960962427665138590208929646424627639902116206235537751660375036506369446717292601430719517887300949116339946532076534302563096462626351545427876909756553864528327024572700300899519407554293465827052201962342445097365908426167638272280027890221222150989734202545210855661750087221221774056581345168107966677992414469769822038038957598929378737617974607231336415134911957733975479798112365119815328982215581093753902037952177938068061945334435986803104179238988840726891574412984971301490936297122685867086489791445901421303303333285825328370247764208316347113092087626450618548077271580335728772757513825094655067049094694790833840674954971044601964327144479299811592526516521575386647178214170632593814957409386572962181032513303990848546796953063925897819408189352602574432470506894131111971793898916646431526367335830573942083241288422827279455796077050706198708641373277568392148904051675187997398615497524879668893863811056044659719366904725968351474745058039971622460411742265467863481326030190818788288953129613995709920820557552669595298395162111761634305741428393868161670709477581973938667145431093740954563678243397040294276200346499204891815030195134837214245958052928942596639276294168871686733329812212159265820610518382584603040731246455516145789756133951379090025705387407013929525732700918901358886053256139311134629610945802409413852663211326982040177772641967767534346025372769266927265696769655972671552108564985025567256888276249655352601437980677565522002176971726394456666578793246289621018151636992559043265435580309928109787359685234931682732605293453213603200373540803702294653684403788991535410133459936208352813034408929214880464969408715546512833342835795897336952760520960782707011489652886253461301792096883950958057890625819557960705821135018858766307103595996907181471848796101326786517972812143328716549966412697581134772370526923276588415656808288353308220456326341474029848769512665685549936413362827381585826525003242570942151743430110238616107967577150720645316310538352949874741989513518618618969843234598196301650333557112463286010763341049345298453432435159133531065233017311602713288539816580083147783070666024969279701016979514455435132550134695682977783063435095150228783558391704483752245653840501442028192992392662686786985539139499093827209219968763790632646442434751621180332414809124272810467929864190430270678965078413054504533513753297261478669072738468887427958186610010951943610321869167982544326817886030739846746450085001685303407972966152435499522596589652773305101478805959723569282279204972524591764146499290518794485239132712099186935223143194321258051441264493215325466132055699908732504148470365682433934922329154197960028813608368769545925660655056346719974342438408179083491105362633022661133065489269670909637645010977073138278168087869981667018447577937633259280275187765365598172740679521422276504569259270255613287426252839391902475764235523078457218136604494395122781192792016500728367631003129078297912704393348520789744292232228355272063270242733345498565868843351787417273482951016147917692156616059493155677141627054468151281151047162567678589207439382802258804415148287666802542428967244242045879158312388059339765624022067825840649598036567184345102307554556572348488840762513771705988603667022182152050691290397204626403620535722823921955062287238680550309632058968066151185800612819854500023214114023359673100115818027515185243263301979863987205163226514107193253579509326254976072164051671952411790390138147190234962866797236032364677035936727476302846305045770749446601039122864178142264296526470959554081640506685787256107816179793340317798843739927344276372097376717792055417633536041714426333737968739496864641382125326642258249683733629742420391565321615132571736871725468535878810785498750564829712731714094098179649520668121953659776582104875505719412058681797007265355869575052645090341788909099682500403346079902515774813093893162375538367577958589107083955302371943534907565054340116827032253999206923956375848857219900316226575161495934300363621480494510940380082338036268067122958724816290216416628606385401870985071494245343448873571584600513329508973187677067584068865807618132599801082393742298190853108736136853783227510580766015163269461615350154549754406329277562614414644200599736975407171250242942618182843040991977495451035327637388374851053002264204776150213677814830780188086841378193452896816603952706875080294582241070028758713886394202115889880580820566525574555779332051372102705572541563430178864984546995007281092615253071394329334941365170936290393160879264915460028388572442165927340139665353211527601943545781496058364560706047823520671938103248904285358414345247817070864059514309889571825293285109295213556276499007570029604469301979475776205375805026900103770958986341972717263057015364636205362937893888794759140163333147546558078318804360348382035158249599311847450141082995398593521302325725872189583908858857599374595447464598587726141672920148967345656235868845340833932093362273501258314757860524135860319392038963250515515553816663935373962592694911649550309532914879988399090055333266088882636103528002572605616569601912936518805300525384110699246044659838654799109278498488632495618107269903571912637712414650669951918837339019212157143730168931699602118359813678530740352821261451398651291746901021384505533977539695808916114001077197637739374507543512469684342095835799356415447394112722070780091472630747843009484115086558115806492159597906593402571900900731008957099119572992916737402403366871484133213737818490565753549484728613506669024299143111586468918570974840435403548161925302014458277497998986032134540100238816711298487468861152724134790590909839740763761427230157832050711734125306651881520625689265984440145572266023806984533729171090933341598155354105207528031615496988574186355765627692324538532887866290829032016118064713489023717160677356921620439316239017550221279608052097122223407243103292232741953919315401515207736451856827260801600726988051693715811177465832319507304199183158609296395023797875056593020991219427239585479061115207234247397103917161371749042466242634863952252127515165084363515552564805627082109412888747915538482974873186424523948576550444477117325811860943472304056478023496195984540863337991884649761064036393057725013203396424840359581024582778339838620416627185961398734555743034720839103196094101886020558655346469874174586666690721247157153474173592480855803260975062860903908173014825322748223223176354531677968911685170406808105081185951481476520575460620853925398770357584471763192537879632496852999779434698820059003405020952165549613664879067946683414484587979640164183016306624653912791968636019262324709071448704597526893443671601709869063697739659912389090218494485678354136981998370247753513327190415153362348872540350297475307138777465362309337888215676221472371615055170414833382952099571751494318230843837229097595029764773047502415033152965162666467656189382300580074984119619723819858642545486327963600937904040872056231174096655268966632571866964083919188085185059768460910763318926146303366392147478787779731945541612050674179859821960339022479017484944870534555208106136689493326322302174755186456425065056312682762628104896639161521154624140216815429382990072839718652453323295507309856029165615292163796768024914335758310086323852774734368079478296487817476208499616707770676926931251335135360141992399074582852395760040350328937710002537151250473072525406896381321569071434093133258569666997055851589396501560432104279805508324334832017124134897708028381512106930070264052797715883543186114330241134600841853781908598122084879709792653916645486346714337484018296182330991329142721755300305547000397752136618517955140673964732463480596103214712396130902628754707286040715408877508231786199434960770468875132046546649166652982468538011298120777076709038573339288757000533760695911361034537440138509308851687618621623134108431865923951297318677762950231254574425047207491067502097701923405813048100735269887871084642151457903654558473448240014353892658358182077407655746088026541871862117896202103186030034503808148000915128812273909302768219579926283715909596103014687273472553331500490104788925786275561632143513141976945591650052336389170149120996767356886247277319419608860964269445926916575094544904165773121942944670146425845114623514509556506342654209623011614603796223806734621102245237372518848970177995072782649491356203682214218466599036308855606958980704856264193740374792935018647351531413073344671124777345449609294745849722057375482417039681581352822094514731069044545302894745550328303246403142570148751288767986517152910321943988388944250142200421331938515369016010452503827532531633117193754220059388020801702488024053962956107001279413994799844745210289013257829910318421448347421272545014022158679982606846698912590651267718236088619704893271554815094402141981471438252424094899184111774277818767233765911840009023518779490023574930741466168064244947885526017131238203770179167989617836154440959366275552571587740211995112038320552275920852442045635358415651944511983741875956122760963331823233061497369710047230308177331321939936315000752267956709755143886631063615790787169824232809011787847246445565091774363764382417185115676365842818971888582013120467802327080523160322900876580590570056775183989403242922005581642061620797904538129189852754699480621189325414733976836636375314916030041269200552050373203866014576053157125767692126510720860971404359007198569920985623306887327191448619565467511144292640105139413207938642051522587547733512861618681579906005786367384761751938851272044425362670420160699398302613662104898689017306311248512512455905279825655901789802943887607752127944013074272648700639962979737715345707665832268349544456918346072208884557257981111421003438602724678054617536040200956540666133628055924730383266375248533890241621550151045737359775914684625404963460564564088667401360990407235871509639473424008673417355051869670849756523543027722499955238502214847187855196533252432913530579947851821362126107834588469407823010059734018422191629110638700456434578148633270268432515224889200771359648664182692111859629072536720251787834100318964160474105181858022583222143544695785900181179859143807111182324501844843483580222420530546135510136975431783768891534434350153621707785307911370149564763390923901277526340839913080259519947039712360537096906160843636707493005896682519624299415702338494668299006639387665437221103752075579438206380154750177306323367377057500192010424661360138258285430308584531525486655004546256702142204517301128175483110432821772730084702082493120997240655572193761877518840669207684348680386969391548404819736817465727769108080833906423355460376514975929928686183921690660453182804114096602662821381687359065758240494596092595515599950923333537445280297732375402459557558578354347650117578871479045265107735341156328732638164543667926632651958278031903882787742203739857903038493387672177350053796396606162840909837369986022886795291183457439412005557690283243831299566077702926661663158557206682897156966674505076468378550394329083689695024479771194652158050969630449523757610612347991011047916735319404126956691947165193113514771781542695406757814367936971470376135734338359903848393339324006907574382219649728976792683463579650306058510043634800746870819717177824229112932273394723103030371345337574918448441308598625464380996277878414470104963064216445373118009844399014660372045127592679540882731357271323258019217685335165293788881638189553606810281494781236565864270685573278079088970951142160655781877834991040926055810822594876423404762621898343561192080679946880328263591335475705870006612409750758429740488568718614203952951349427986171601439009517168593978805320010204963670774883909463658364662308833063726205804867059263916913585769132189988738745611038962141235344960769647010113176172119938106431355485717506584519723119297191394221071667023299894690360022114972130880483556106155465012386338393168828025344223272913247353024625899099152372977993585353719787230554589285028717638084764444182338794040158025459980912812684406970392961793875452817178708352067515652518543360289903388172127654340185376746975459392394015413491508521079483012297616246922522329906492341335231805941194752144847375729203053395384610708373171671739868123615328395885109035492414788260409883822130173945144613808523742669964367519253248166837604398851361681520007857262754027560128485533763662867489436321307662815280393794177366219546190992700923267027443207564036457698862552149123932471510971282320577077713087817351457677397537085041078062024496425156123282024554901418588798040567350435046507015243085517459428538072973001088596287697822031157793008862064788140550112852729512276467636605769030016626246167852378444456352813768826058043552927681672783343510875891466910266580602960503903257666501224871739579418424334866275003453113906294219520998432689317252725739929527118313996823321461495512616879981020735849659010256049862861412843764300864083118756777101268031781959377767025297634288803641651098844229988684284636517671074006799417899527199698438057177244942241553500406491408532294288239725713844603849902141505681718271963862252184628140227694454313980540076861556411946873943956248541448128992330780860802894840055865597412377958356140135130502494072183717537192485530222838670422783590871628753396445680008056291864210834394212319023795871172763898361798533423833103464998625734090718603255253193138430621017911784418926538684985052636634311423459537191553458129311924757518050870247721877745456525988925568853753020566630219892306491893213389315347366337098462434964072994030346721256922832590866380674991943306017229736779682312025125849961458067507326073162732749849634860700289999013117769200997419008407418392686813058652651831990093952473626478642253787526253165639745291285161535665433199456134865909380693937446387894416205793836116070451528086577021649005577052612020012150169999246875740368705051316449933413905182346820089629258076924467664386099863854610555966067080365659847187497730207173250171731013945306997831521865163334012774782772050064026264274195368234338809282140819802808534554868618753436260338990458634847831338681591843970402712971931027443491405063292302168897013411776464713293403967339510883413480650189654957634422891380031585555306031037520667220692551204889341933497916398450362187973536789726977177093096174355672634982358344622093168280616501693322780324556474057138122144369091047668109659245859550702275175671331423211163828124746195384864302555656869749987956532965531914310413180255867815073131161106833030357368671524325879101306684163058652492063371763239108422091954729974071861627367026894051969662844392857813355020659532939533975053013195578041356581213261129130262231604190341571065698356803763705074939352485432393406544029476015331717711375172023610829686977613692109404133892714942322101638896728850412629118387331610877609300302908297996178689181356833389523200715534505403320802411134044990113273942940458790473855322148383020371111764509858731581361745908775244584476132897552380774093570002034044941335344113635093345909887300017309951784237523746367058496366040886863028121312876273095515168694479739945851419125020086195432791246930423422326051505803194380249729887434662938572236678225536814551401313372102173557038649795783336584878783476370217579783103003028191805686119162464674496385806839136414908660442610130363406100138814636071818216952823998904596444349723007739125101392995028145020600064021591140741127732847030908484394653788046503472040831592818614820893607940270002435155231423659932607149521193280943078420657353091453056284072604249241113111962763926196368938402162018651312174036653258375515578878891677733058020620154267962689947788150631801194580731082836532457941680475002618898676154213565503097220206605819185992374539314391611487105575510175868753172735721483249718062983436438846439513908606301516876695979266559183993423965682233699601919752180993653962643784324560301785806786435481919540711253311430657989168335278881949662689082603719283431222995284129153484921958229395826232773640766790062048576176783198615705750675589745929048308073327591730881607763563784340240497097004476714457286383762083503993518782840545856368303817495417026431004046006293727425104770038723507222027735392894736016352254723563786483668665203854810866398188853404298558090093420426567773408414264834460575592668517819203043581918021957176722820396242394417464129762779481524080197751394877795638482031975799517620071509082768262732260444461385957954043716472915380481695118351399828722342850740156878274200877920532926475438731111716692354615424978886789249583502883908213540561775252944849239588500475576612886379308146805176016599108633652722827284527488363717884081003876934936777724725259147858324492825801372452100002255301593866849257141048544873886537343919704475476609989759065101669381410621046219922598241628199349766053866805058003157457692457461742841061975110346090786067958400177669024116850514215621612663398380108527281658944073001095197023009478216160995780016128180045746294553795397024109439548609536642180583373255527366878610953478909284752503732459351808797370167627889531172117235331080432388831318824237089222732955438511033400202102863219517172374317653856742546473061186005181387825071453808641642490113876421962867769526528887800704278937891848908983304491936726046546816253276396564508465176158348453558913923228616301580077200649188890619922821906789942449550489064338503159153744904561606234074309537390448994381942580965973239641353197636456218518899219568642811115294889569746706587940207779464229655644527342936285793837376699587717192866542467719253879317553097812311246329539608253924500102845191046512974767721626323649609334709668739862885305808474986219393257956808907463925948601152598553317268698785416012118008620967104978277957524645743582165009744269018770247978354320930411201630162446515794907256260310516361622909339956343749773777964268867706608475660262605341893448218766614594005909729730366546760164349304714530432192745717598205963968995194026358535938473397945154524023655992193679544636376930936067548858421856125163577460297335513631143467680278880573157771645931054332971283131356305687895143235081405939620693535693067696015536375534856729287325404372830759974987774098490928911158169651022661963182664864145482572454050679365317021579374653727727945116489585475058698710303089549151593681102686234993223610863492288484204174675020264783975638488774594041910550854454731737717134217597029538717335017190796771607762231047667158661354379755403748251374202489554272323871962886324960366038454767730370677038303313584042791420531916375678103150695161482519291741678801084107973021131795632230125804990336300006508978646621262859194715686099603550993014247565857694495796341361484478702771420119707769563224811346572690698357980982585835344878013896477140436909156408062830744793597318679735483815954149679726850374325795877798083292292810995401199922602653546017356550452849838036333148243462467919589097768693028755304710922671108356063712228074006812552753530515717532214167075388165486502753560553981919295980268694628932581647455163046761604607105547218078549054580298811941460336655845429863577266291313702165708348279597061745712977188172422656218020190897792356933166463848825946373484656948937930343247617561155900544059851406639200920793263190912922753542130681213083371691559006814427040493366016125682032053916914069940837888677720867555221211817686841164233380329351950716748332822184563566900862950204463760833367194137803266199036345000438563215433861208967757939144303412046988110102703644572054671991008913980552949708073031340577902533453101597930752938758884894393478546299501707269048431459128300116100794770643838342183664173283050699239237815287971328210792939550586161674094943256758436183651527137805350608409909006991219495912178825941641493716056609582272014638035640472879635257930076194707093084930916481881790157527166412223669132796263912778357630490876396614930103493707722784763151939728258780700653959332563928174000601495484364354053858887618752103568102459532817258089914009875096324384441129474309637330118887627374751077418854161180462960689979264805224836675032124052749881984544384708229650258934751688179055184434094898685108424753461348743853667148781593686804405617864975113745463609074252897046449946706792353165773534930454455794366429673284880375392797058040690194081470086888001089310406527440553476313610414443614860144520498769393951684654736860797607245074127058786571104026722566420297335451059960473528543037906379292102068408840639142413831435445615615870309655688197001662600882187383347339347017894792109350129908169341228441867617694059182940718885507420254446839453744754253904182079537083214011538563652860733044876271359586506355444391969114017799839048491300083253052132685802700583748666587320111525563498239982441855426552520820261157068781493267963282769198812583308942562588320579500993376417471922319439801749891873928279862952127544197446195799949583907631627933700741010922249989534068384644117253006809634552490329603796543795941554567312533821003571326953396204605488869606269640588498038823857075339988171998642390933912226754820438448068165127200354717584878677041434331689230215872680335804286949046006581851735935654184598074694890961971509348531669721953301552925335733370744679323702298106600222689534111347318924932576086638863236515901281860389228821028771364681712852833310263532567873309798139132146700787922121106806746740238586688036490746127590217837116247469841824422282035335802655725571125886503990174025336465246414037939852614277622039165987456449137632796773657806001392934857692884034917632267380257923809698490091337544420108991293042261150152278604282291054533309676408006360924608971263730723311542631333106048067333177511990777801617328391501726951293531656053473242795524805672701181055680912963393428550019511400059202563741015220586995268705654410174080714049511205769543408869987355464681578555441040402096319574576529905405705530740519047179739567609267180078701507196519466455734905621638663409703555923250609942532237445649205886175025352889222442580284213854492649211734418514420674806645941463899024168792089977164667246934062704274105988943500473826952967344262007063625227839661497441779158640446908203516511793541607763943155213287965888755898793761958937205238651068843587904441763745141914457670478296833464703604615238478384745831906638532330108167475152315935165212681623783902734227947592008160082547713644570619207310754574313771815121133801515496155438148397378075267723111065817124721129310357992194736158732439770683684026928353559247562558004792220916455239067727828288317252020412279295740088703126809252991639414406265292232078316406411547198271587365543409977856755083544181301377517545107865569765996415033801421430078909137545043879772610735099388996348224273650040273857642856042775946494935744586538915621262757140058960248467298302623254834655120277507734182545299771626177766457501843228073564405995872178905854813892485457074040481551251503431708354438808445013454165173224694301264918401327426231784050162852584259176691038821013762665197210934163126856304233877834771678562801041000978892165667449885114290160400269080254939246077511341033748907918267236481257042766076757784087922957516364604786252492180846275907870238826262543101490379778255444148543321463527342148756318716323252587029089649869797176868443295792430768676646931080029005427640581666350864320683795850930826169451997002162364881653571632070260125168005642446540524735434737464569909729970765356608881619172881273767880369938326672113729514451674491630512305481381128600482065040799198869820435323891444044510076191958085287770761219987084707512811849473749359883873171580588654944680030733376793713442298950021683498183153991958300261751938426615888346716996299571749328054618041370401348555294479827352325865808168864024043932448341722338975245027778198227931373517203002581019791077818942309258923147273047129471683148688408947012301972532727679664531295634426708412627206576276635397946347738257289797497640484347041399739271503925047235579052055107285357778941777296109293659910575448039058156646214854598740797427617310998190527983799526312416814129400160720300140043659778211075403323911027683917260809447023283196368643268415055231253357011466677861544199610548072143958940644451507714449868749874296775474931861017797300412742524553801568261854485828942562066263558257751827879833338808121511231313469697595982475164279251484544193434138906638438008583447881268815863638794373331624580797227110778231650655040275886256587709242606688927429513400203993687822824789669435146121722933652237315769356788890759369992437394471665323123221430563555370460627532275598233787051519661054127643580631191950146417842625736867442182150366628965768504986012272621194331458518636111578097589905557291823056857184677158395706843139190099148220071123887888261690066488560341599619916496187925230102023935514152601859833654314597821844934695445913569296203490760972398940101979513234136079208751482475716476838534514774145654118917929726936749223006222408028649308952282383221216313415281843236189419215029186821452635889620193652940568103568776625298440131331437405565941702667224099141965742906012179486476434662744601775199921004476682715928142778218074588563203929181242313706713373914478628709469482053194500032982015945116137087012214777159491186674934884723778836166480510010737930539474091670237307121094772614238001537862141758777616841284263640172785004644233614641217205731940737099968185238822824505110724414625063462284843177945122123130308431997553329594597664153974486354561444753244597468857021972814615616064312679659507338731188191270349956678647817604822914922586551618070608291079518972750943877944631670751721238318302614796233142819359895720482765276371145472893423242501614818095182111049318544208431006444684371303164978962230441193029945506070878867601826302161214700151056401627572471610859731571562286045827962759190640978796702949715136287592525134000077430100475814067236133365991486270910796281446139070504237435068188547237477663106734345756542893515887829226125422744373615909706284450873315880012251021986365175837735652068130191883819730636519118713487206590314002099244890639470690430473529740574613887893180106838047410545744348523551300406430323141390725183080309404705323590322943918627300810272863257738128563456231301227394470922954996708493557399169518374395273148571968657702091506545989005653735188931097231097845293548759000311139186850283569446606509969605515104305016676190727403111540663260431294597005910877143228059533014267648543615562057877000945827576324323817123209385214036671034019217645845918555373637081780102831458511369398913606997337806264001290791001555483995572465403218861057830531521554116305401536286395618059181071618749888925923135334181216320051144585741675165268032829824520222934084256171771764726640119162352643929167239562000881458555800207501133189008112043651891675068110656879697070295651318400834766674824016771960440192551782328622518760759703074212820332839639340382724709874127175784759971176568121364513175189668948533414184372544542078395304721285346984411190686165529907933344103858083124084307020037415035841032480220413903460891152654018408738774030166239757131317592574370508121964452327033269760167148566310399373107230691980205174799131577176029356561593987560213007142731863675207016337527139356530565659035716403252981057343583312522558986126668471939542977406090124837038781936369576964823163443978766951690022821193607120316558543245122410241059218413713899137866096065610966269814596712154827073469407107269502618691145142199787259513518633080676586279225893752851529284722497194542280313869284829714006185500316258396372001071125637896079673336693825484523964956255471286813461532672725284696498638903484186143159458561160684307677859835054030238970484326420579266931420469834267989679098897502720435601543898330952419788259591870262403895629888199828981989214808529717529671029025545402521391663567587299127994046243610033382752084234398321732914893384668565492139553059507999130107241142583628468572595080162207293567059451538677021965936823478818489946817187822075970221650977691249408556851444196588139836780165603798910495486608933257206485878957093087000686983298971526411976800603573829103046716538622211069622426924278234629135752528420712638169148231766567548635865374498149470636057606353752305860838030454495944251302952459962558842860135863040054459601830701931295989069377521649594765498631172717297367466366462741988208193078710142510850545385855363482518890960248796783673443294175331330495122278788261673091016685039012225937897465635926622796574923488876125808368183939065556709009861164969897517363659840585273265088827846275027651607640972733184465890509007435536626119093771493305195786870325456995164899978947821298421379674088203037811731996807755087688375872503668597448151377739010317617613028671223584764330318246930875824900828841125836126249127547385641140099761805551278820906404932495734151537831087763933692709530079855835669369469057288467485529776000146475198287131507960024818719054458611115350417439820585108058990276067080568056163490960257132968811256783150505698119844793407048271093506081203545198844781764351095318631135606477312601148660723621977877783546412147606260335524268657771785089991107238952413144656123131187798369514846443571567850260076378162079599232794370626283892811695812956177745162359155501146145401042546234569713858469828229467627636952243849613306905791903534158214829855792710032926273130515202104978595326041199678777645804784313519236955419236147268709384359929865068693389482101254834078492997699734346480071790279987628635867994215216255428857343187699468511092103318125496429441782845406499249177656847005934974815120983760991987345748970847815180054367814809757362493810607371048021301903950525389445810991853030026261542858992507252047692000038333532659095381175660634205499842567066623035629197756204273594324612787499352714409228702733130537346914135320859437142784671932913783292395560271001210520270954716801224582165370012199705697373070970292176008106365468365525052082463379441023705212000229247001237929070263727704051104719084053153724855110961582193978306752972049565532701765284457810792032435119580268377727689282070244779819930345884088404708508513320117222386895748519650143090936494381263383199951008192956155251592183231578970016495983429316630673260368804852757250139968482790310359306517240654126318699253517758905022656604196799193407649818922575006152255988047689771877625494660774217681192514450647367247719336045462812308932884527819879909573199286181296027809245462679234498239413082495469992392281048870341356362083996690380303401065202340577413378674291171475261481368190277874901104775815782438770556289158740017113535599388692335738272195363704895346744112851947852576885884588624440413281582164122911616478567671695427711773904413235751277382109153801636735596596874723136201649308795825288843137088952845967698117549693703656630592289637407241467349198386339722481552062578696694056693892611066743705174898355230893517224605239191018098060526280645057714302143094978657830679763631427290857423057394090278754351346060457295214916151171473357361857476080471551211955817537367821473021237831406118242826331500955471430100457888500185683863236986365550461045105503598917573226618744264083822455906518388809606563203991950708199705237374656499030510642015237277296301361584023742948822057459963259366017797556647759454127579408905149460531058097039671244778015026874255632393014200791813271215156415130975869783016523528703785842047263354916069879687738410096075259176339956086970865867920047031182149880492888464703059688814586745093109543149536325835631680808148557425045794394645198201344038710642940942108930994540611425633866922103830222216165632196602596879116209722735134116598378843488372372332069852279487932718313804893696067305361486832911971282616992090413558959888066797402235531905351546945296499393544311861670528142176504415846500270111456784199839080403976703625858457238790008837392266480234942943313793480681886754778976869440087361398667308110716101338891639102145562580758423183657253455509318857010505687407624447848631724992399853745713266514508479328539893419132271415660959491267072997607479022743365249213691502898714933427373904856348152072416043087206845306860893200965075509317687351722402304624038299274886328116796497842277468680472242774249594544627500926456541297770424180071109500415017407765328135492434708144230079304873609184871857688062939425081037266764734718651567952032758842801432236410367902611243425633063363312388474417559943981742255590069300382127468985822917126184674476706576734332159390789548324862849230853713029370533781653034663534554102199995206423233165682726314849248536310812055274977819533230214282829372062363588921238462696087468511056257861564697456618711558914965367298641320763323515448041018186054442370390129416565574317234640166106433066058876127122339879589016059838807179357924840793017128601373550377183421753746480479200889853712682630097039770617317028976980871872838926586777235987067004722632924622084874405238491313680252424247099769541318652547000720464608271353689656446396546655976740239778934531127436085969451848723451415025932296031648153969195229114987344312268681938834498124964953143777130721101779879658341175639360839763552350445926995863264002887572686336007120967469709773175920731822434626059920244037988785119472388302412611255969620693611267985219996562483523215721283395718861610517525889442402299958561194313108364289979869673702983821072916684983559086927858767947275730263603337665318052803680776694407390318214675653509147759002027894858456407043967276878699330687386375290897570671717663951110282236036017816930099668635141419605185521515620205459821686976680354267071119796261110713372454005307329982232947087547362691194328686825576177169439431408066802936130476084493566082734630771184550876917214508936662469087915079771506678849172912869855566858216041626257055146719259806991156077618761084156747188611639411285678520656371131011991395927563022796689537163435130221206262872496975244533570757960057021056773945999351688877572912880554108548644905056834778309697231989272463627790809165553079181929723819680425634355402935286079898419038603817943084525162631609172091301500035884483143356521661027687451713683323685474848873002672826090193195228979792285726977109157939615126136637196657344783306266234421842775368625201309108382051089961244362183810027973071364786562001839401848234150512472859053076216174251454971205424096124410454707339725411320416634480207778259464228541810917359846790509823187530624546214566995762204875018684472908813130330644693784496390501752268573485276941124830578728237627232971753526416563756373270532768222380901165382403582369610260793296418219704344290784297424989235106059264001414775276832769264105436742192431612071501327573838772357101265308390654427504863439086442000988573149173998773165572272776992168677296361637625215206111293143803238980307230792553124446862455505920851063115162257824620642362814182221747687257012491184945257851019579003007482355112367570454006841660271314410668705554375713244276647574175333476409897043258300704490769250918403479805615536752055627193541050514592242337847188238019214177710439426792693784834674293963358865368989044758517845472261405867133734424429431084377834540350364564758349769319495017866027837709616307921024514636625180344949424219462317133066101194601923475909751842512597880137839923341197056916823486645428665832490829645188848665805308679032014617620789860589289499799201789478381659050355628665965809232910288226181616939390856027265198606506226925466121182752925316621047572551372895308391617603828283634795492662817294908545906114454622234845114719868546983855257394427440839102785259229237566512365991574491028473121088318019956361989866787956748545179009838173754444253614696291826169316291613010452010017782632238328928830618814616589097974440273129047493183670245843990348336436963010287787851322280112825192826906087344753381306416824220318972002896844962259150899179665827547270534034034781204780662336603989152808091314724410861768182875086244989086888944389414515436823262012127135138508732822586918529548449175683107930751204954036637662590469641044385485652895505072406035681644361051283339664204783883671278875130916234889244509674246716091612859052847857310170766314707854466642144383027707536061464316968709659227833764917641927792973736800517465550488505061439572642064853656885502756609001576052059474625354305005888898316111755941425355041795735228347885155391651918383694582727199035020454517241475805172701133776792495989990624733662097784029237212409005606159496577990770090989130998736108998915524020341157074037337517268531860632733963321308896295705420827962185446789066596888509860899461808216663598327071141983081103702812846545860372462927048037674058851711685881598773881719589355475805623460274341559619415413178333405627478381604746522635200589232647090146240477355819440603323435613415133216287007344369539723194583104796244868583466671094176353309235902449493314512809774095696686475073717965736683776211438819979832181770740243400582761711391694959952737073772833352301649865167526589934191853770084058039310094268072236203703601775092176013781223509375669537629255475807751805369598208686843776802948844637671567444881389780541404432218646158495279714815664673960084385982885601467340610229994343909109743016039729788914387788701571098007839552192252586372136996047486767662586358377820622603019658339728013942853673573461220444358724378580830889873734684175667435065958700897052075453089845797669027421618448738308733790670273261948148917049987069474164639073095997338587648784851820240328242197052549319234981824206417229396265571153153309623973107356936620251983467516557424888948607661709123046665192733676495036167968714302174393428471505995338885006888405534864685774976401155649634097226512537835103330222026822347416099162676447613886970386664333902444367778750628070897882167560458166433700548875792722526070280285036287964513953665097204780782319673809462414993325785388541700145270029404988549035382545019958826138810844277097863945238305912668596273580802646044340756540468180913216991469820984067847378654464280315016567965244652286751818566763571684251348874790182779863656164729618284752364677140274161274336186231368617639172880767455944678116129916185608123608499953330871349010119347331148761856476655672142406429935831982814396396795795677824137827971123906858892922481418177374872551089504431016707701457962430265721062902008176880594676557655022642960450887286263702986952760335981740699518367721312198990792210392070467795464132768275366009106655759939751777922977046972435931701623133381586557763698860479569142192279476899277022919392276154248718252585041841534299777582142764578350610162537419905306920509471264311901230729175149048420131538128801652377605210108703051588098737827235951089463923528319696400031212974724038291670089131139065692884167508176633512642890180154325843492352754233475768234496592930195798228044133716035881065786405289473801429521974446954236527170550261389639878942175444564448792997113828998827110732260238376886237996060043050174852946356062349889378845645753908712058404645181469750573330470913404772103767513955058534157965713446012045577252913214117920281952251534835384215025753255109428695257951931424154670712169915904675681621998661478101521809404986205774438218793379597481400114171475871399801269792162505764618304673427745817497751177946913213112954626687437609334453208404435611741770283372178197367650960067027955863631506524206582880507247834006439021546916731938804757620189528497724910520577958820116683725231262056461590223355255726594626722244295441625512126028940340853069131600168704700422487826995615200783606580217857921448663884219581367648493164745512215023016431264469841824327544883486245012859982109714224965010339680149784415937407835911902742986024769098472847316546065746324374066433802702849293036169425829362390823258932169493156434598107053485391650334453805366600300670489653380486976941110236433068472211692609863147293963309275753332750848473717764732593411165330958512653794118287900567996723641320303578205926844430508702259445379971201075242774406069484314390286722723483662906628991716950507684460649397253470976968913612007742948878688875492489782235237859128697777925719351906805462930416524576809146383030025854153485641804604994393420560438885708441941872082420443376033331233075693876585898199041536453081859857456626958993024224689957898211235925236543271620254988898448175312866222302135496104438519270450063808288257559833586479786997921267301323299132652224867139986125072877792300433368562800646154460278077786625722069376204285498988747207662335332306006173877691891565761584929094256043197842296494635762010665551236192295838089541111201565241725179090779264930134453584324627953176260869414672489666227497947995907638385602817673934614261693880614683108097098889393073649068123261469328211336973919946610723123476294099695822364939689383492393078763713887493191691871646330744212115338633103981170009904802905314838285781604173972680379249115799176690215510135474196579978859615218126893312200694652834689078555009064166122206207249870775438663806311728382166294038338736598010795795096595741485889157359029865509266894496416783761754801997032667391348057887332095585009168229887411742592301518294400016412725299306566295780901697999721105976082238704356783977339439107334429083233820741038296521097028834865857234134844445275045163569473367332372921770465395284518738196596933642538426042867422161370621533881900979122536842984284197515241373541840230990230370678344881803399427477946826464903572144912210171304840585645131232936025006211026358138966909869906140653123203258445915893541971427327037520351264112491885471407388866948230703502026259481740985605166383597798081499485006737274799558943848633641511949222661311216203735099530271629925498347376450099483150155638357670144725572817468499782897031046057200738840981018164237136983414140013511352837014954323471660593333812413559211720596661925237394107512847805200470594946232464181851970466659232194075582100077976686065685648018196839373671714406042159655311383671651211173261535271523567558659378539557990476816436976447626085219268656955823744968330491725251315381240900581611525183266350288789721746950752925361881950842946194477970292525353548365781612338531713362888469717938438202333207497619332163556891748090321020598863160400816080350895714664772867697189167944590331588368804738735285193934257326076485258596180576360926412238278720414436937621203360632831378958443489182939176910525290798439316841497711120791170514911300413874569047104394956229707886637378369749956366284550650111854440317423624791584492383436550587111167942596663625680483485699464809121145424322965616685371167517714645882291271209128171821337786718002612144779135814958259321660821398950617443905905778323851488065171222765036953327814506124914840999781792265185907420281870112926143653303500760726506153160074496257700835807099985845702362469567657773744481156594133830934040520463532079473966529753317575781390094360834352584690785778641361044713263568155399351833783180448067744436823659021533158946626425104023558112706475118640432273356140324100550891434774532156219657750486826053030098729968206137664122741923971405824180401603571184437744715402486310081030986305341682414847601180141795913960227303790414132680721651164284353642275305077300209055039269859652494232428087074061681872740028055027565837051450736210470527601720866839433414608914169640764980483517972218433188139300726481546318127629836728417775513292453752123746246903525804244158177006574277291217291840475052720099253745775250016148994337294638245394600530951203894966271816179170740190010653179353856282987507897970416440352287905374028338132464549384668079594141116940325723706354494302091597931191175499218075075563039965945340308887843558442054705704989589673996278135275542819868548251709686999191302884274447945504321731487599177061022359856605119465351529361464818155207319773678332389116325309003497457141559360364407267949291221716173322056022217199617892734709288327461528378510177972717140929133077146028433310265732312738054641670748001375475416401367956933765349728646047713687883175818659832900377336473770251978090194040580308122897422205501396099479859304601704795466587655706431436060785626618105010591498565268316581678096812609657398663712214731817760635090245968806680605585256602901311544409951167665879864703010327923407468982377726140557575688985612051014439375239899527413085403364104284589417327590211543444232238693519005408388179000672456514738995643986881208261584044456585254692838609703374505315294556764516978962573205528904952141112330624420281094916271034383381593595314062012894590608618030040728427838765214762441290094101505666266308146941836430864790642124243872038813891424542751518965404345339015037415215325549225483787619005173675669576978984661625753690129852327926723010333882036633257222515538667884599439267858079495508218208361831806062735381067957507759283114587864425967935398520518729854950454010433675759889538983638480658970402242575604125522207303587487176019636654161504129973503204141430505155137105574261975311633609194030251100369039747244761785408195543230873838892457089618246662073561361067525895135867606265691379978068062924493950431683597332208140126234318219455076557302139995205120168064979331605613221698086325405109547633472968593106849012134141163942505868629900552307495060481115944061720389108087412941796106513692520901088046076627715568000673658477203822845756525181267891866163456836620638000111447699431365100752363451424154994218139073301739658179937882372689913424443427181623302804815808017740471958171349306768424146266799240809160655434216330563515533007654091704446157117341898678493156122436073808959993708326771437622736901894249140699612358032075556468908127860511846706637977484501464562700554112888420545196976373839904466488147838200805829351160677512830847489574485267459418703152490763635601828926433884390101256346300813990776274480361464618975154154663326584193030112288152259648700507772351663988116364392291484314355157732202092282800744531914169006062331709194371407717753234929546926774823159447702669197182789010277191074892100927958173131798657005434941110690741348464264484760038076107917547597828265280225922954487874415676529174085908292795570980016811315641526353572486445221182101105452884493263404332276545331004664095726000249299857716574588858797667369290408736786691369973612247743768109410117424061501718577257637689867340675316203958785072495740655017735974005106171103748961527343884030686477867719095688816987473121400608045033343531223152994377377560748061695729409098422134664667086811296760834323675651669661641276154468479886822775335599622323012246333748617439707984420272903941648404392614029655280307053872957303106815936601971516881046355929503873594214982726571208114782086264772209752755311490658777257136634544243755119056652628404719965414103303968472678219351317294272529745925433081041793429086420647756439896770891262765980568929371016494436352524325988828038007195618538110020964705968118206392645087141611511299842125761708701581918536310844522258492463654635801504896109587975889042920601353902148518932857738587289159372246577007135321292876222931678567356178355000633472133732144871124559713170878783383035104910658688914931680782165134292608082579797156483736546379801442189977310480535639099428486786907440409648740562376187732779593853191196003408716529166924019217894273884101302951429944085015688945545781114892914187554546713215042120109116624637036403493192403788085979810555194584004855151195375073127312660664726532303543724901448844701388022242683770511199792924156440428346150344194916597543874065330372209823759932377471339216565362043187764850787883116523011806566685594439671859922648269979551836100090416709137964529957111859393520741967984694126206401173139808512294743869390328595636208103359088955322425827573229554039209678128455036180970053599141382558729596381715203659940859649792012929596956131093748672486722294109127881233716987429402566091497616090505646437988558625246900180271625609643168936364151240383560646378057980469316510777591727647921465560426817096021985369934963473241327142416160944233775897368893787519259436780639740223802732379760169411309039185158884130780129438956207938944924335531610452590845446148332492855481705860242734122804128039115087088220938500424110376634316182243131705894870448858874445133436153904619586983292070956074775650111524696687330456056782672706991386772786068976197011717302467755106035070920499836395744839266727365994183775035282287063945556018276932115968364841199029831170495220881319062223546400944409881057354200877564441460795969145744184112394775053831848758125622764216853237963474651118253924567114240514463386597272158022147380202296666635096412793279603356024706431347353498086609874023173125741930293105603441910538759893578421603713128894481210694177126408384938780248851230935549557494086371504824675435465734470696518383171531881751327703434589115742356169692663245271999859413701209703344065305701445552587510036269065776919534622523674859072658099220447446656775116064080699773474346306095278258580071662685695659145010024534829234014264077188641514051339687200290076058960061724994238730566642010781442793915582336788059944012692570056014634695391284289057546367512053091214066819154268085600378260083216745424886338399471387702321371457919284828744974876788284696448242366256754240984064020959006535666340601834130201127563372790862905443307349788311249886611126149564902816763326580569469929782900049144683447588562209675566048736909429599021396394426932542883994101304847589531605792724143966424723812443945303806667993170381573757179147757795473059401325679620183876774338507724720509489841526423587911264178144150706108017063732357533152674483819806658379761836813307747479193223516778278510782323494387154784634000296504544791299164885026455891909060485958746613795431876669451128942868063964055579315945481003936934029035055395641473400380522613245239151313721738693101143362637762559271587928344633531508447449466422463610751238903098087270557942659024731676143249805907559316221583591698776279184361489684045010858204045734116970762868955571873917162365874655123890531599173975416991622210696794501875717151502004574568121450433212871050674474051834252421179885730363092450416042865830448386314994265012697076195429316351410221222732809244744200104134759657725163581084986328311068289767475426360883049049016406447409512424173994672073468792647978230413688285336482093133081286464007819104307484999905309337159728446267460777802602496224685041308240648283097978681075366794094216012766845452043615273661700490842306630641606908336707163194754048422307453143312008075394829403456110509885302467871867796660448624116585752277482537862739231186123256207467133379667396465884758109156938381588385073570649277633643581623202235053099032816619215068263026451793842541367063799937721428542968826018200604811163027556057253568775147577877176982064740930729785582015805326778511872517233388986631491894736471122252490940665930474319888405190810085708174066019893922821307222002075475677506716261570522314160472778670053467738648699877020619633454278719977395058181575512475798462980880930499263378503013204832635635755029406937741236466935500779581460000514046921646312557689118098548963291993434234234217782806785818618288267094779872929072864071768699935030342592456352079387230197394391523928652919440535913397589616855110799431417685681127741858798835903249221575491620339517911650397818717430070120678399353649857208477578230345242421014681188552744356840310607255750967078479051519798896806399126521063641610710121653341070355483963119345524707422675404407100430683268713433271612845138298050437589214600138622967099342118983208741764425503416412034464677435436187101553086641195350061458649238887791679411666321550499101863527607703256172776628401274644502568160491862353365883758169521521005216925202691845637844605728870066017706525102464435306462472633485583697239103123532647331454641985139823568816347443535355647591792356905157835544163042991043136102127635297464312490221995672800961745284688170942588482575422767742956903957528049706042166642159022292526190106088565600873932931379514367899557902906329815287549175373154120750378144443572526536488574266060583403580698351848522329556223724823505603793124802235022653631816755963172820924148126467363943294396217665536574577031453283839888450961929116834303229140723960274829776838678973429497734360188721267584086863487047537387841632499354365362483842062286435741967368513099500523671509783480672277798016570959602375621666586201704418985072620532704353507939241226245020618263005450220101346267289115167862397209406460399535788725871375974255802615286148362984866454944241306205495423426616889775382757538577546923987058959045303954213068895526841615761993273250441439826611369928331084662943169461108791686644545515289864983260303150080927223843490980843407707051768412392771680711686384316942140723507046351347987606257188101833254471301443680268554437291260978218704430279300943141205079289228259011960443677602502297816092891826301424351793604407225589668065258737192637793438069464456498665467832862415124941278516734667862002638023422232571505340120704953520115151542667349784606869198509778945071338319648371746976096063176516979975324415145826739812050614285412287994710581201547256963558541997799399186295787223901449418461777955629183999495268359150252521905451009324817523410444026360160247271426192113143483156974017631725735373066608611037590833995063640665292228796173206138036314314738108986219474286944215641803774742207950553656612223738416543799271723020560082259824769540602554693515303828809018868146086839445937640599096298684397082727285012912247755918398363250128164628562468071024512444924183512578782349334184897155122137919308404563437703307327558169765536209064682549931932995706914904448686312144825463203545336217343264800669405695985158522622511385642749351706617764304896500172930240484580881936284339029982726777391215829456756980575152052824279144501590432723142694560032107617262564796238049281607062108958355413128497795754152945113053965294329947076892371410526066978104571410653344914944960665516487973439608434879136687491291034290145024052206268584849207680793161709024690448493494745107617537542425204647768265164572105509125906048960574907697887544375272327376036728546262890608717747540146100188513918057021531306842018869609520592025995634716488554335929400874802742490842576977163345665808937228754158484131887488737838015099161592370483260922038856788782736839729149062972722424527622009633419255177182422093093850027259464357458083539185094714207898185579077924386117314645791477216569293974321834898974913635638283770590517964899172660445477580220797978799743377262711700579763098146979471045021889249816426327872226188508241086168097937846186212519541562636756564298591253725817723446870348290837774250557187714268966639922092165681737707419968901718837864844588935106977778589939388382211919568701367952379238493568711327876458191900427983414842255823363040323606619202540181783716877573398220525371145241005496511440112847442225899779135129437895839344351042768267564766812076375817032919525800355325307342327934299781691308740684413270554439614479033316840401802417800446990960790490389852292011871254910774628438703910491329699005022792226139256797041971830554426584367829812515811813633647280969117686246907079140335432412492690762119516015615497019428486839416126534498111609969285996457679501819278754768249298039039012664158945644058120742272067594433493479508115330302256786703940027842034577345003236299353184719098211765360991656005822855256366149164454256681282100962930575752920604716811152545814049216358357309613072329940321785481136850359731861122231894689405588663571291466383740214348552894266239665936246582289548592395442199278222661227432591092743504964596920527872156174904219581697249356191891213760457812378903071591892592211353957185917225028484096597780711754884938097744732427285161607318086407363419426740796533839771776560038825005528405185494099543347529670041458787282093289662254636481133653000156605336259086350864230712128193810210907586794330532515305470306649203287848815038305435004396639193957113673731880744987810869953430003605109002240944965331070272666758868506421328102587658499598822384891807621332781754885851119116224163114577905493450817361863500985871476872744128934068119030059413234370588477947346100864595649181437020297790121157550033325458730567362153431850754905602579519071911100340001569894952819374152863849592434828906766477658793983318742335051020016913364755661500626236649509942471163021432636456370143328345947799731916682320790250106897222547129983071423958143739651831702131205952426828932709487027199334845385979537212680877716211678556611303422878353163769101798948925140265245255705567738507053835689483822134332685423686860607624938430422018963317153689174425537106606849895667737867610719524329904071922564906015310003255912218688194219327551117075472640902916775016004335078454785419389600439581821552367241520921926397499869150475384194858827604886182287724420366389112202991608277886443881524922804940789990716211730197609327147282781567521592888487569412309946021887061845180094938235803287120366748344580604203806451184812542532878074648234070403618011193584633482590688694692001802284086255436232705354746601060327024501641391686769657658079662758932257456978037522317225506633919534415005924214073697168513772251548985355580805749847876541034167215470386571249866022041759855176330723243067054467921495036300153707409216038448549191838912411611109828492821858716000082861684761221802254674294734391143838775998897873704236735403425910243722611855363236165803601335708367551580986425852088487229014590670764975628605266417004316425468355792008785983527342008030675834219848135564543222113439714924030044446783373006209001595462414557789913620979031394891805583702681268849857184145194474949545677103088474364817130997662501589452756210526049795825776893327244799437679083771024480937228219504792764523271150663524450688329512692724134011257753793411961582831562652861348660933903909873334900945870860359784171435556196758842897448402135639307587273829716093230044429439443589209567611101216443969622086796292347686439347919228099641145670235467881780069092991295214328117828947897697072036922280114990602947030642031214051620346455956911083116747465377518096185380859777612603016567959829004535837901647687603373817585501663424804595800515826231811726321525024391820194880651699227434228332021210559405191889504363313408390853097487881660265087658228879387524428353303078304959015258681100601327692743134192691751000968438855091411129895752366183130672460971930275223488182345553009819347912032180211508884117728659600575921228529552512078853991333152154825289330845900155561336527082437878754754545321662990432984062588641895302698553905882071793142108238221494497546056701789562808976318827860912863046365565339056498916563927326377562220330496211702884393141130957540820613643367030346898831882056294162491672570285997704485227518368767482149529433806446640948408178627953404226533282211918427874590957196718343516507313466608512384078084884479765469117607048702678766411520348957871273971323487564282750624316965468743894231197981331711372088629749767923612168759717694591286227845624667866351928301745615839976571743999482830061771440028864553136096627227413715610831123612996830925633248054707718087734079903933277664821739509536082363149914538027959993196056387606706191447894938885092713364242015804572910456070830521020054378900047192896169158710799520978456865450452428612004052920277212221141106118568383868098220044737520814878572625275881731580090044092980737713974423433096788117546115042648873219897939790742011187063286530751283607331820710583806795855116066148525944971441710960716490673407693588617136444042573065726130481757785238391298683376295371818405294455472758681820325415789153779132665428161935582276982068613382160087837300560706505453064094495319075987515339374877988313619501515229201670484969475461279070348372228458970803050144972857975659912813651437415160525407173543223856218483930786648595248720539670406994051090173031173654242510839134473656062002866220867641546273022655791883552437974117908818496773978148114206365553000340493711294209283120405197447290459970468126588079296995512219039287551803318589614590354808244893204633279428812732595841189785164782998933883842592537328472198046443981340554428585980643728537931719148479039262625051608495956038441390877257525864276108223828346622881322261303882888859445508674027577512716295268780302509200132974228450108848733259025949371858895672167163266824065055263215545801458979179418214249781402147630885960601127643733184493993663542557591538507380038476516775645707238678795661089427891715938090718526188750046031272234916500580145479770901160929543193095653657562523043776239640056042810325971570376889706484261173849370120119587142828805761352814071522779610282318728615052160745964710856266830800064340205321710909707042937662831370412790398104085319468834500158695067557608288750899009391594543036547567656794282079611747896463905839387834195329980081202666574249010129301738120370454977680555890635848458237561559630831381961273054691564064377776366976348758452245555948940564912240611623374232509740938050546330039859123700472783655997904522534343481358067867836562120988102062335546545075080058270748417122909050308905145271805455288211543753751770417809624118080120640717353501994667459181896273702554452488495175459238415695834011429213275931974394035574030891992350657721617123661978930747380995317101352937910694529373379631886693980968507382987336500604366599410638653205600484465910166408936084474984587733427754697848425848105735887370134388357150074046538180743619683231087398405415108129365581341229824884275688955634114888893409456557866385976560263721949643397506254636696872986003201655653723341445561469657313962819686601065195299502980802200805015671480866065505412798724783763932609824933292406072717294201612720631113941991023792747710757034698317009779940067956342177466611230639124654800987911993522759784842483050708028214735870747347980379412958223179880862058097595586645578438132124333074687249167889787320724424664980273408417286459581804994466606987707656942528246965199298783103132366551159567582470502351961334217760597151635307693235808298137510839291802349129123279776608565730010174589528781635650529384982354995364246442504389709262160625749135232370181619857307237052163766088959469874615621695818447308169647262803552523456111114263926781525872173532570689483002177080537529213606768125313574322303794665000654599658930293945186410790484922929442497965084118881654917688797654079446138380096745250365796095711813533895138973650924430706537576076972542481481120552325881310454864413073094593386028467091577285839255590180170879057059309781118295684278231782339232263930969387585407055162102571169066893753049239466687625150747531972844575563169211186893987582908106025515014228199179296580083107857862134734766515615660094993531018294923659928833772747961745951190848976602576663448522644323191509287618432510514233555243726693453856038547256558649960081172012131399754384649626856994614812134450821933390161670322551032816603391917722136520656856402791323582042860149550712346383270310533627923244017826705184466446673288680100767931497761940346077131006937559513746736099547681063221146168668449086919974265287658523311415309861878458254437386243841221466449014992441808246411640614639560005057451358974302070895449532277260145999963885343836866315947517673317567675424155945510773896143394538265826267899415379317092396406176268218375710356688103437186212955326111430566044099061486862436919745004085805493660565422673823619344110245163654959654333978395097047707040535711245195626449260910938729812537105129524522072154397479229707402878259413328874056241943148080090238903134920950792919789524547098316041978936412279951344442670070601216808236626542289950366773204716867708947257874241953504478811096202906092536335566219725455361501896588224381620823461087734769445791639931655352420083213979668513324736114194160088460670303914308171120239713945727547741663757229227336971513728700850741424775704411270310954709506757225069082467937996117786808946481482674710364421781915808315545776474158271616542824680500756564503640393195941272162528412382217121206556469380532140215964735965910361089906764884440684640262064783635688077463088847853191916517331451191027303341203555442439565802736084297485803728353576979458293778088816371329940718666056091777566744966523581510680155775787924220498671368198155710164949857838502365724104132480657504281023935929865422709388520515544639320381390146562095228089470319153549679878484316798649640482917828970581141461318759271890345860382386831699481129112202676440524712214854645276530497044175274311699870296896159493645858860765464208883274547540485756733138679815100692697722294016333870088330950047844951481652330658884792278233718896800489376340590780280460247264367683316516346847052045480909837325023479640074154739150370969654292683526558764489979066269580681282233928277057437680903168252263782942284307765433426621907360427057300993356665666308077037573928917328770393576664926929434651504020919454722111754046697301665920915718549909733475654419925013754680326165030734633126263776627910775087518859878705265208001353567254852255799287289554998430445736117188995064256601062298770831984494290746788622684861769982425177056905351889990808475135976615472719088320820127685357030513224798931528999160180771952045324779667362172250377568100574974058238574126959420572474785400900151304958542652478293271880925755285520782980282765554850287515872979351891110545828319539227323400610850386416600237109784306555547275251489798304412464178680932178836653362135163396921395414766821012618014772130263394155886077830916791091094576567723274727912478738993167225777749503707548480876079662103887555479073572351511602359474852093148186277439677210327355910125663166098981851752706216372828160889680798522722433072773698419831315888861940398953852748084231173551385495089282323943994680735998706221425392849071602161182578335803105357673938193657895031936629841706395616701910376829903364184887674958449990810182542936637225689570299615113037227232956123359497945163738001434475878233792336007368558866410057606849052071469425359835527342695797554663230760452672932618992691371997221961650045554459050191058426326519775567117224082289106553438119740882957406836328847210403799931392135907724006195601918635368127027952148102714502885296721746305583453783721467569853687422786568167392811580013784362600942153669731450747318739373550162754917118265197538858862103025093635266095706098751070605834647344946720674294507009786673131817908996109750142060286019113720532066616647534446575208717198907851447492048876136486679895503150502408593645762744928324697555259004906035313978814322693298061031201734664052747375243019021514748316951021581458404309618774606239398765111971683450289117344021437169944111872272827041544852830188387368332348450715209524923928958049916264019034644869537496846304839844817455050847480279070116690724989485272757090206301592626069214520862617156663440227481165865172310026172328313912811579905426417328549952983486060425433577731131796669193974989810645051965446752320696446724496255536577796667217423339772406378693783821723857917278059784481670992401794874539724382889452169938754659183823140030825106706049967644417514398420046952191013074075598852038654324949312550451070800512472675727402373854427361147277352843635813489282767646750107654026046728677256928425289627209887809999280044826376073089587109619640336394061919323515965113409371363828807106874503139264011443211843630749346955536572920381393573671942692964495197437644453716907894113089343823431142857841291821740658667521134002130731069313740131468966650689756825815205575013974456548738617799827153424004490765631963182991272569644519990636714088552777638896159999952857738568626753547478980770755313691489625776049202184171211164722907155784216734096268867547682080417401817567195467925374979585552190133707357400632354752779420825953768368532801172719950671379914041048039315707132467373017947252594126095747703485182044872992115054432978091334239065344524676094082263709663667554043280991284940574767776933516917102588316118824723390887115625235053686605404919752591542434512300731215644445710984284071896771613752388562846583430437482777337358343784468296642253076144422957348521283418838618366381158655486821535957043894539687832480012867231906764467694811807197541377729254899914612535751947441520148835168537924036479336989504331877728349884258366399527774618047039214223946785819353403649973854150971832335905370389386708071598987843463620776030582874747196314014663031212755334620875222708952513370031648574274241106455009808183388110992336709691767558643773341872247592099844955140732385422194706034121323866132688431159445717060066700982103021316444641835674284734821695353295037495532962128965932814840686131499194563968770730365146743233045328339661157132516287740857625790207805041005843817510557702717722595788916485530439625215168616768520476466584116851643062967873559762258876754031708690330189283419784741705307611310629016407414027017086152417155361103700461695281720662502567284680917066647165408950093981338957087030787653343837922880661192002901460582898232985413749218423141923626681943558347275625916975386819539343072615887320668011280587474433547413316813216238746114351198566358931787069953761768732797436863369384958704748120799690368002326981291941501436382116633191527906525007087501567383000483725814428878291563047711981686558910404790770911069815685701071770256098274549973014910910211139262934341138503708261138959470022245397342794027828224708621201938425752537207564032007808130232605052999109009028108567640552934322480988830818518416786098396801349826152121844911837596476952133591505863439776129507057700288080131855909637807091062461277931260665944646733269770019259889681745352440935440916464490653817391867079249265940150776348943588326855028978552079342725598820519114842220510422445004782354889160965929026475337887465497681977565203600298619226319342332610370581561453622490713098501802714272149691496983977011598065546432887657150028318390518715199755654879976521890985067777055374546805857002279736883820833936491474571749887496638579762436826202796485245042485906810876822005239761132304841520054924548935399829733305873729134285256315804604655849014614122472290929888695076406870939357282240090753767930094457896080098672848885833313460936687240421808613842831546673647982079575917787248177537819593825087180482099619272661094752305340970978847882653090240972634588055822761352911454817452877315439806848980107432949027417975227749183249324852990655286558195462383362393595748516424761153850874297477426847230926742311539042758617067134377112764416242868669062641806424917026579556800743173638905311399456603892045903390478129221872037694086811297211461983440155719288071516505011980859340203898531389905491833982514004984562981523653766075176916693889291809400465494553907681506337563475824669147501733293747840861996683535479205162714065843949056104387333766869713020057604677560113417184745560244102944913619342585943910071985556458099897555869901772821790362083633259968399861049140245547236984822508694719090433589121364746387872143322300530256018819074427450397765142559922295874566572266389191612170514948614296453244803773283617068815883572223605630314252615812755478832013928687169957855274470922235246030009781156995921204683219914493748621710772413193794677584968268303305731775636595183468701817563298786519095756629062256166359263954856763740442693933645183730667593413984206609935194756193702003158077241240323678049118585549629061380903625825982811217045182400473318643860073834180617841193332720333393453890951168788207106335244576457449584813541337420346527898485221861666963555990393842522546406714609923513174536205541874764176813831460646704360979750560196910048363811900497315862338041270840484094633055939704043803233126852697664837246593548265260351727115223884391393506841667636176352474738823150736059981790343961373343603326333135601404814000461214074102411930563895538435693439941464315173515101399766698357904700292908566275415588249889328187114424880957561359646800294450638223437232556463462577373938329136179295563250819749837061343248305737276000805985713170659552474818558015515768764255800521780166253432252862251198388568199552489485847876036570570771481308471434654495891123978008755394113434158324692504481650886799075849959511005698450165950327479927181219650762076139045399483356522568915020113090906180839992313205253487461746540996896155778216723576711490558961732659808310736227703774590488769673223459884568487099805717784829797748246011352694439251912765089857747838922768611944962694771283609219582568805453767397767519375763139331195759449949839477324670483836870931809371646259559835923114751308497190291474585577116532150440784669950116682086481820841973382576137294151868487602174242564298946478076302452708801107797319305639417392841736126924289363294777851212326120539574825237603353543193313455575952686662592137534801940258900315313439506986070822634080081045464294952236574031385510714890228615490791936890735865999898034558935845796930529587667127064542426730267703661123444519340199184772590372074344316707391225978863442067984034527471952760695920374423378559269321238344354078617107567481303294470949186175642801001454638699304346410621170542679464774342092666961539211442796145926272385130436712832014431267169260133594131907779280381720178495199725580205416208524715489960798432424388686979939057556174578886607591312679999149530790188309963935344558538156816863787183070827974920877278309072171501527904583626779329505233834675479178831130412875606891784525428062292925760263157262900617619291355634916223717503212746351141715487164524947666709619154019867432550729148387025521873967727804108520010134138541854758547556361839261441565607197347895387467121191925328774971585227397503667804953895223865673407730926910169062375617903843404489881261015909667473896432548304218473690854666154220967114869226792977392411701554616938002992301464036498678161392005532522945511339931748167302921772748856051828979457337095036134435197005506633754843402758059087625995556627015879902308616415459347486016533199498537420994107131429275579359007399720319172092299250708606394820348617017261728802263556964841834143430694248004039199857206073979187390629172127465951018947012726221751949187669795362218135126700760729677325475452750247400691511122070951812283151430689403249855754874922678122875596769012849072608621671999501799717578594711304353717332410631743524789122456289112000928369605204565755857737566913848507003915719933218543292503805613194395687536843000959413333029165982113347250952288039859192318138821248233632492118831090090641672823917758984513509997598808344420422161288264257113668236599867556690667383616265475986207238499909725232013488747919738103144393164056121032802260257051830925166090020881897249644181239470967539728754410411427442941321926263933645667863855150026230111227190574326677099826743764285106639768036029835467718806682890692835511772215440153884907668204811480052627783513127828971595162861250344482593006797272617996414598466470814350151608666542380706682911647490118594718220191320905313059850057449428393999103423779516643580675507934096498893983901481010189286358125265891968846640183326697519125090957423616677967558915261266637130872222850574851604086339260829264911399300918264334029886157317804799403624221979399656204153267048294099282114588642211751023401912031006230572755500818271361279092781377395860439081744855295324177989088660240228053137738257012534169099072179330157881467417070706067400102359112168046317435361817606929679399494094517783861040151135609198290434843458642282565309215557781823994334100989214666277844478469133917433992965894827913250633409738992123400860912725791335985262717148755909531764715804527504024085253452398378956082053752633111012919317265367880282222792411189043874140697184680881223613468507866327863087352682674999758147408409202817555118737573033640643709618173563657390466186818613661550304016872293693394565432449882230445039221631364377771053669873868881552622962212636790126201170929296077208854046973463059852098390416955976465622212451768878684666351403057746722636872156917603381652209980650582541704346051956276237661097370973093404709082375353409638210822594584735018386145503655401716915069709854903422237240463878858732944875233088055991255386291402316845607917543980643617382457041047504316466797957038524157758401780624361464048554680068669605658046384131224404306436770968467271534464599447229415672689224954317131929421726963575951513147517836236876214107476100999367067388221898054545230899421688884575027863347985726117700150783929317722365821566705771165943651777091558841989875744963019594595687677426159180130596437726504729960104008674440650435625210811427164821259055800354523811244378853556726147642418216398898417083208414713758875681405383141735279773353235257297291502548493597977388923018874670292035656321500619965855376276113520567598168705454128797633025614947688834732991905058313977090951801413504687959289622486925403626622990833256386172238876771981454224137199157719638272766495333931226476709939811975559547223173000415037210581718554251613978947418401136805196851220187126563258310562566989368076110010796457207582700884325928841357508459631894858531303661928165598448272879841008064319006992612518083134653376917716072328628098120747796329551328125351031721298260474992852414158411143331471596694650700063045725566832334180148598776378877327809417231313845198841362010504117554178302050622635249739116990199534275104169891948014387213394564420445262928689595377241060151820256803600706370058353527115748007324769103215182628493177137955753784935152848221552518202123963741219948319641803288156869800571411855824258811556847264355475443395118054540111697004463749747743042925690583962114483402816504388149331208964062640915607943062305959491125238623041584796645672635875500582296922488026407203393793993714067719650902675858953776503016622654861007171897147925863648083994692351973219715492489176634961852305462222241020958101460247623742040386450647425753960990421778142132538493673585576579365032611589603243581653148913583511835118141363328544172377434231993843407314409707828471403708822977341583429467220379989250677113115157660968621013693670007374525922922982652469691517570810725514341063385203856160097082575792682421621193575493194412597249273755175223340368215461978970574906977537865074086310905568342542349793599026512320833995553639949101137864641152427752068185308699725727132734632869217433161080083910785495807417541106436304053840297504205461813943815243804442006014340066749887635762521423343704896386779351230246433324948108799771404143381250143017750688615053959145954807034947856765276533369566359040047220170897166831461143925156379278436153879656819360212976209512440671106371160801019613490949056852489903505530616609075309703403176664141917558342688218446869696696325234406546406557417692533739053120378285720035704104248227116469867000588140770987280723083159029218031677120187532618106876528942441110442642337377846809619722166690888514733693902157023017351028779003715136001227516415991234544110930083161019164334616299946680353181295189145562504357126694436020439976060719909988302606441122434344620409712885679915191864474886793012412685382629119472543452633842350496319986605677549069143352112898644481284738355131747889867041778150693913783769574631389427937656464749329564511861699035552903495965518368926275645776959408543046682308738175264237595344906048059667419068907975568468713920043667856740497019986633709432424952364695691434160485339020844241567599621807519525396361119174785108887932905946705780819809666638407210951832601238939867317647849895123081850529182522789552857997590250039886201688854931847530055898713959004804717335247488846839721835170937178786037294796559927433419015907074962178344397250701911795951586755866322895943642213564001781369926488429493770856579675560073208980276815365585686142469739500377369137541823084564298756133543965483848739954343935548813169036845039988237220333699991650752193891097649064447848194244479647972259695523568290165538744058560619077752428697540778865101052923490173846083828830380348298577852658595576394745438005103637059866398998121749873682977197489450415411921526794554519489296296617787330270130525784575735060863288153323160601446986232918137059867887299914221524923669437427644140072822380649606949903127004647300332560592989142983820753359003779866500295029594013434550280117338296817077824009784202871266226362593869634735999174708059677491303129910753571409205160654580859774984258665550100829469242142176357149937002535697932571136325329567834686056802618316806410651354185728563205219783315496108151017797164959657757658857186447562405910634090625101925348491351706690380838766465328384965575933180459691322681940218991132307282310969172351265950560513729808619944161668486048446995333721719444204426309994347964195190931116747097960413269993282359099556196515563813151323507686720337939023853510177847645676658214202256160950229127477875595874876075387806279842848010592538813401652500605244952615153493502572345162835362879176666238453861609481170378023984103360365498883577839666049644398666878053400573152137323471503881015840627011635205878804341110199198573277934621522341996521589743275657283010202918447350994353867722290729590125689331163111056772022507559480666185109336608562094087291603830430984140489282350275150454358927302708513150351188759463013025572049924738716197026483795758252084968415899131142568850059203428668552821230184334272522589304385691758033664003817233709973129881655370229160501090985135180036110184967693119665027646069086528672738659331649217163361525035885604599816006104462800717176355590537527102450199144470189076487649579755698397028612417346014174023465133815814742660622182871844726176537709986539817588051633716850512387708836711683799444983058304386689297581607854487951176347301209258240558666559400189249626622180371255561613207314385998484526613410250154847648248481591693692364745567191591060860967068188703368582689832023877370831066938422148735624720465524588341348675569622162497097933753134368630246434831453768632345525632505248626410225928874651392513539757232672840499209492890808847078738832430345585723219619297939737419467562150150832282418146808451780328730425012042115981949878082195457261028681708554612491344586065797507764612057260144669078918217049076670112348154400667756309002586321744861122865893728556994699200263315601048769679944762444490478718462312239618896491666825705205703614661539017251632205592580004015005038325121333816355652809242169260151098189275606970027272874619533038967267176800827206133176951766810568429305486297818749484533061897109735872442921606898258114315221677225156825860023792806232780266193960455797837490363955049266140503598729727994446189074514157864690078667259687089273637632284513111741743182048641160605442830349608613788031544871501648825647738506856016013158643961810170345383069305990133963895329758494135924317136901888015024072398256508758861624703135635353000949197632732279465381334966026969979941811370486090927904719208497438016761143849380664696627363643510031438297591785295256533680405217822877714550052144870864746943421511813816295371170543230041786824444331021224039530182800684141036580606476274169228441336515140348373917727969799848086163939402336241184303663649254348059106717891130249902771989398078927046080893039605224567003948804344574403200195477024231940014647139586053706642769950006681857186656726323401140601032438799338991155735031859904229801378570970382571504709652484101836763124985059252355400666969661494324742860194560746481225960367023714504655287034130881876756890193169499909976721825930080170372251405628330527401381509612742746171712965721250992723049354512825439544561465671837970838183037191766095427953912438920828592631674080339899747013493495824668214454685589759968027223837410051654939863140769580555267259279061234647166123202876293404169464805459376460081747798747761931279647671219768025164696005510786659432484781167115519530441964154825183127112921360296749939119931439528757233830319956308525152382290771692135414406001684751366656736479851550591204323032078719011016322683034768228214106788523752520472979647781469993203335386007900566482813919785547651023983025134104577353506292970188242532530708581738957795828412205280867284782702936177034272341976925489727099863181222138411812319608602964405462017843259805827470784806479511026049899765943393402777636696619143384535042745559445441750641823379821537355320949404931522381501812409273376637048750306282574579700700000887559948727700348361113673736923421433965342887155953420605144559247972415609482883634588453477546953190121206605665819898154158188712190830009994283765729148066862444725118885450995089893299670347649974979714228130152766866356357538484677781436494266739106953832529656525339050206559231994723413738509941719213153256458304343025051417111324749680644222023546624832921665888606891058017491428576440799801980948159853110759066042328925867223295518901631406527076722543580050901365961404334835159440701544010707531931137715959916629612461343656208331991224949772232014758806035144170803852577627556492014807718744767774302170850838380466671913623025398839601398210800666791805691373510383909642817638332204094217098712157755536123516628194254733412686839061470169617798733768644369067370610853957365823368762350986015970193897343529131002606211070427210654685100493391935129148505354737595638316189750046879032654853309782442969880951627155585068565609914854098577732175847018039197820833586623917526109627573533704037739151491323405076321372752783377414346082995488475436556195757135675171692824118844640967368115174545336852665417365895963055004585126628299686507750372954893021118051482200208991963504954416924209548513544103439358218016825930754240701733942345522735589097829556528676278518045236262371209314654278596468648572603730010793550270033248940142889916238726404788001375935490134103785371824541795954771465127697496440899108897654605536216039991691960688666261848050976607790972040318903713655909365469667801157729542554593381539127524392683477467107879035764315730697165784553695820671268168059546415762934139063717249688531743374120369410660496074581164043600308938114622322001395416523606085733407521204852854674244613467047271138959446438952062063862527786863933753318505617215707043108148075647810529339198321942379797864929675817065586929879322494549851427124623879425052730901207703405636874682025525354489410552199614145456777468436759313046440118312018928551219343385437719825578065909951641365911367598634973585306826517439275229931549049204049555254886323502627784549431701655029623986102911342787853641997736295110570243508115357583009113465477162582077998541270726412983734544571662462537195554848029859273364123627792927832037146011137238248517617650130347507282884752308049915161513427779202992458403858623190701832775950258052192767282703311406873426769758959282381140548008483479204534858598393338603668915828404455342309901442483599502921728183462471499448721905515240237039425360033508623789223031162219168239022530693487262844613040733517196562257264428653120974497845097831115397139672063835955579724333450301276897891438088097002093593354003694437011943933574571618339985005729697006638448771134147361577653021955147759706915912543090211702197797975748465432731416713799312849646961924913909651317512802296937800297999962191045225855641562725728199259882311277726175619229655683974321938450761322565524240745576519861926788907765453999893884689261228820010642428101366691953269656245934009859694166720373741608632190531370068630902737307511219649599702245189506081367790014833285994254878646315060271705859728036997724193393408458871948894631701642211733212187927268606059864468721024732438857583133412669652428157869603584477415503834040140819042167568985630008475963315071279423547610628200731208131370347495200298064199717603156099478596015518481030721126472937962937091768294696102409849219401657686590561607045089348046569318806655268159976693872564606016393006932898024881146041576414911251891056534268589284560993781406060709894202001224980536225133702813731713716548060132545526189421161280522489729720352012894186740879888275873537786881055606369995740190987200104274140803369176925307424615067595810895771554664464703958147422720095468331895156864224446760717493421618982449335042159555248644150297033187259683979863563539904737195312609520622525317996625477082930474715603409091227694438008767129553188073031703573988373243304871835333655535921257869712426387652654838225018199138348028895911514040319190690578943243187638413944767863528916616294243478726545132937132175768096885547736293208151909318305013055074520147105491069919282869175012709572769544785222017587407661482372705517233571936516530267079791274492812321661146608812486298390951854147175032359813686024685866456406563443947819589906230127637742450688423292269502515110904336787437122612554306401779575153231718777920733562908610273310371339445971266736427308431051239236776273948424951264266101924414448259921851515067908722635436430090445130277847032390069788255639285326968179312214725301292724840280381011517091529014139631485148238128094739815885221365016376233171783933786588078615509904816098605203274357174320546162457908514500370102437520302541634816958776856150449811134063455338129338921869939214517612649812048082543299541099960862004379446289971961229866353599134091317786665444287564987242180410140325886067798253089092646588249268961208504860619399835255150779247986732017689914812275360061818592159389731756198059041232264188489244834005469890201270351302334684144103835191408560191637267697963807140802145411085216350135554828006635178759972702200895829635291008966602771717585974470005403411019920973043249688179039429531369553298476370832550643959553143057652750531857643630089221409139968361436754889479996545927598693596544418094775268188136253806578426543781346494311346720360790244726699183980952037076691404337364684111299377881157118198253728645356362248037153162383043849809794452303016363249953267993477261733697087489031914410587805748677044023375797661354293448193887753336072091047225937739757680549001500917282983556969456530879344553007144570000309663333186584890762535868508515308038221475856352507492711865203630951638619575701525726031621565111309035131415476828302908427942830624286225608042979033886293089230353252571796181629557405082322393625123975108700373033063714814340285618658556846324758060634730693313360406782362078499566578986804247551405050953257014892632611863520103468796223933197532591905363347326604261773808310560776360290557153712001082669246848399080682969284898337786477525950153016966794097964340897806918373528823477961507746729368476500907305412728570867761142851172303212053140168608703007143155926091697323158329577130218603653914547489491918404644753362256468938469444942948766360839402341304723917232304033618419836197056408608131595724650335089303381455780933420468989258992486988032208636652000626165850858536290530788062725816942933166259692606021983515699854723309138691659318982363780648124770983179394968045327855082700110311709142790268353184065332291748114566291662338590423405602316008914177586622254482083612097224967711975985997572707105510296168975660296166505513551937143485395430888455078370273829571827083091042515158425531642688545688482591501467977290774916276606508687463603604698509811995270772191178726095220014758056369233671505843198768332735576244673027495395674404427858268053096130205522219467911023889269408676629117949004213239157620181569359829247469939303900925762738596375680920779323076492706349792242946869892317634209445707717109706590255807027822144007083376895955241614517059745080421278336836384794214327576265051248688642337643045739310477348160111779126253393724280292877972874311600909438985929251495139987891276830200357854481706036929183128882944634959255434233690902406192846431366655490106937907972342684360753256378810297808148660249906241478428013375572426992934269404472646819675661223784317679121726492510099090330537106614014020679769073465598858022426581960297655966251538290510003772393242779615582129668561448360893440583151182440985910569554611751336582706401805584615039919789563580254284005473874332072833270241986161335633001411291919450396913659401742994707206084641134739563344117094253589548214203244145196725151034665498051842160311695820205811171256082675276943865884839950856163390283324506329801348815160394229094481931123665783475094693899931174436447303029822577080689363841667401250444523525695025469118150074076233489624387394365214513810119078438393798011052078176942288874583962901862527915352785526572686150236037189290857591146670576969972549062024568345302284825816022147066935202615143216451168920068232926349715755162669447505908733323363496261220328796720193916692845802777972125370293011700090583436448744070820063101580121175277315926814586542214074500159944058609604045150626121697750175190069061954352428776503629873116726087526413010342175186995383192894127909723741374716724071984396880193052988650595358095171106387057472638764873292849360879976529703752511401324258572173573505023199542826629625635800168167450668909330364681072999244738960580869915136418507385072156755297771099110170471962400233035382104425274179862107244064898973276658350431796696066370082795681770099895428160067390713377078541896478814619441881009650855901443008056052613374712501334703530735932574096955548987172962905322824150665344372507519206185099527719345833494546287898050954367135571717655300171417458273956886093696100381236618805122329955589184534929316551672695578218657393963216768049238894056551995595991795812927672956180818599547025677926191532068171428265992558255369411685388256022068953595540135170299557319016051074149173141437771220172947760230215488300213028623368494414322774983253294440481519665888553243050758429307139956735425749181139079135243933214302513916067789659085302549509416537728818129344661889385931415556153585282071707042490516629641982788493627293281237004636425791455631699115893775737998380116230013918266833847452290954517001113200817235659116001208707405005667795089728692998685442320810245081959470127757416320369631901239709963872570940807226410874942070911435632580546002373420765402583474277327711650941203322940517601711000155929102413730438609244240910915437667667367111976401786060677548424763267600903059309519041988397427972361749129239131490411198151246478253159372526427298918152504602374337368103839287893174817024033683598359892863034658083041903543786977121452765614428749113488296435734383435667065324491986425528156115551869428970855203231842676921883092372878715589678614555302524315442836312955490197698733669990284885212095388114158314588933160838959070658772952982868609804687949816458448688440535433422395498312693745320655681207334667198229952631911537696491381132658264476592226783083377938988957614742692496701415744793264879658963354059107735968612039430391852244879101739359863514052011792574300930113905099437266361342577566696236258814599258438937659735406447473347632418608355943927502146796084010381527526838011029481503854285672026494157472712185664895036985773472400786351868426484069656226744997195039499618236248626324323224196205092168196809193572482416558318494655398133900819546229032443760968595785116863971739532134563260921102337095737120287009558283767288431604251934771664952536895358601289516122838560921815229415404307592732050408238739119091228611040339932193321769699882265658155523687877753699903375735228926139234441596721572644160939456416579593204216100642526186848537974316999052647637839271671836767835527233814929070614924401636529996534928322257300190843238599248987617322397088368285695874355243751735896362116443366603276042337611587417384135080656794939072831330289635173060656134799382543082602280237423042803660214435391493616213805587496561884193415691589482718781316956430967105203144413419395126214058433672128883081156942908594651210438005573448938397993595377895231770269067443051143916168211924617900431394155195225819601315723756000778058190916762225977709439989291521700065294962498733476896176302882015365582809988424652677194775343613672349927554415637441461850563775212654296210624596077430669214928420862279189666553618612562663746875797970650483019900495083970421267838400276306536879298028130399729867055046316829547636214760796264643008327467084396607160047036019960154330465942699960455692588201524447308614670890152411263045491299026189875403812455520075635635784135045660720884350326580018667926423719938188308549056064747701978171179618307016197616893739146182712993377463661933455503119966220876501588331855725402383187479112831457845688861807213270338133846870053977232840301075454646163996827243960531929861713692381918459786280526372133753342559376486483474201053956130137454637633930683307380848190575300578391509890891690351874052543556942302341385995631326586736913087418241424953043253966880600510980633044629995932950744376771411617143322836050284797564541858583358386538480729728275619796221287659092064854682029695769069188078293585374500833538411633699034062408724232315242995793791305844413236006020548344411386267479393319745180008540745051856385040609688738354574888330224454214556016790048202103879483544181476436462182020646399223328753334074066128465599968774378235865615810811658419283139450723520701772493576455846610109742988495235245447274136913463096033706095108382195773960034280517706315439303128968514762031487710454885849642842870331710909012658211556164155703333755032759297165927331624517196011540310485555921374094168180947887737158469848615615794214580258240651027925071684105937550563011847205510039126265779819188349965207457467024974804574853286562998498993742985695691700534112514920235215724569624670403791208525900496922121474146626287116917956612272050130716285287721258742552400153693614641668463197336592557717175019718844304564762247786236209172153388868490553739636934921601254576089550280130283433243449167038233099671665914657821852172479431577754620712804110477709146090507546757875791517402037251967265920610429077341718931770609085828747891504957638407298639316511098995992078350376082694132415502065315246788996659038288206978229224836158985016438790618740844954588910700823931348771305582502994138346082054137846216446668757345146962966451102175906366361444934970405123119275707508013179922629982272681592083330261599814082086278431027058742919108929624954714595690855702099549508489627949752204221980178262044473650329889129557146086100518254013954866184907303211144859381989004508777809532904946104947806116800855978346959942499046833125953539589679802940378873326909135960395161001814335035633333449169234620894212014660535533306408569118826437429731826973595460139570303894463787420625142783634152906115847140334231516769613436554028981685527746554490509645830492569894693061727072282099070962960560882221104382080960474506302018407192613893141831914743648604932544543074523827943793262313157487735609326978162527171776444768728297649941414134638002784869825164100137294350279487715834821298016248437177664623576335782291825015392607785961599178668548580874164369293934410726607070126955495376058171315164810826634692143647864178571082783141832294882822538410818408391236544749485437065836712598401879894004968133377442401211791112301479522364857552236766796202226587258214174651051248797801837701674111321915957995623625924591821353499696293696583787234803507414063377749129356137639690530226982983824871759339889186738899979849148137868539989616210557282609830980775633943995858823439659733659443799362792016577983897746528103789712185675804267354274731357500352437260339976097387899418860978701728326788837852732704063104370664704371561080709595763207747588857192846592409591183258225227381232609360704415379692148371775488379384022617848537883431427557599646436939198206324041561794978795464260167047201792150373660006525574593351300217220323028032446161628598652129116642458389066385053754751766039896315200102405840282897331097871364112898390164831951314223846444450648702452672523914027440486003995889881575450624529201718253582474309987147834488588477456453465152164843859683554331542545201571373750156906190678788984930808363489654148917816809213908700913302391691985470995984581737183071070227185936836321964095966091646397000332153368480411406478000594385026793265569638684601432200922406632392427484048475649468782306405237932221934522471815308575260882312901493652310377232336546031670183289790114587088906805118818258541516722672864758020262036213938080704366339172411248240939114821622826906809218416938089817853824082047060618688003289988459813917189296350336624123078777855283964954279766710477303436345973517721085997770616516944281256961967446699683580598053173844071173212999127822033318797773762909622091170815910298324377404354216811898698979046592629690463128396923782965439393500445759338266421004542981995683067879515297926614469957034605064425036267408990565622706041090921320233616704342026937504146707393889270960500412303559423561037921122824043355173201753474246905081944638178102746640067326131700463015321899884172934263793080514783332794353972659758938118461562174379925954435802419634768493287822976938954447145809595887513703569407365838097573567531066653089259510037778369520725103759768616385180907421700220760075988097685612194015340351306255706384862205581268108861183039419669859798661242995439543711140565079277365800653730411600018518882292700756169340487648566455686407849363217657368077756279169955719375921765671005086711989441793911924801835005557083941870206750829932537411061641501363579171551762336715742128885981771235147297293061161483923003598956526960084845699613956108529620494024336871667671779125980864468526099421036514038527739514819368674437000765183233182267825226086048903600562393489834085359609185337165557307290643495925383493468987973728837787614925900366544413220204183476904536206956384118661631475599522380051267379978857074660100147829689692827081198121569847435524712678941036858399509129544576908331677378972679524775201009670028847478929278734697768097982971643955826689122655252009100058260879198337521500276304044589560688435318707164994129312734504076150660762057557050275559646007355728017718560233638709964367963901844225350644251987622913226237107495121212117379256734155901000466938149397212803678821078365082601849690788806748099651694414954548426696097296189961359178991029050053202827715044846952727881961486927029978115666362090605466203312299745384311185399864670807349480097727095278277615667763973214627611780933707790077836197030441088458041698598497981606389459273857765344843822696246895628222322978787342009471718878123665835261121231974470973521406135579967349687357818415788501160877560392179329114034293502676147268090040251117844734554468599542962130663800007693908266816515203860595721053039584821327410498090527078812507379184001389238658119329130798587177307352171665739191774605018369437452889307766908603453646392400396563725920426904890544549433846148996339428756592595060069931938754734058522045087862709822550970922571633548278552713050469544213267777222181954373985673827619373100323193335576439106667591506640155378437088777277334474965154288798590931802456289983047043079367462891347187237066277447202398509422406879016835926070141291181143270282767064669347916266742209743857020664659162524417357564419195483252739670392863420730434733067627224750044442822097312240665676444411561898512819445714285136650138707038545654042601156115317568383880031697462364237625647718507833040927333488332623503231825846303620396008093362053406272203036441126133317747903360304159910005168988634820287370975395454591278461302603940121919324625877257140811858184307632723165547912209360521895284546024861425234543635876885717033390480228859940323024732676597026413870967598693131276032868716459764986096334047123767071967353529510882458849183368603036967307208183733256795117518196227552540807942519136223188300402266689932129470234425743044955479784480015716713914601722834467690118088652598496189423213765537742162732498060495994443479758958465954514991672686596986799885053623137445776481252205489808261721417215771650774325947564571335792126520191455341700009156767347778594329395109447162316707736911496634046809475910884651182727230597191466394532273340993052226027134172405782032524531966137182670276238914743890967712495011566967090938241759616429043952012521778133462223991500403638003548119950689697079884079697359742797184445573777931133067436611926946677893757559139199831935640206423890458404307824679737476108319233439505874293950212807000959720358887069465950315953109989612042117757390684677759252108708064165629961503432318022349610597278659899690401899491917002701415222469730604079169454095191569597945329935746442859672440826069437959449815585405203424326168064101536154856187462603049417625053217753204139324676210779736859390229104808763801395910007927554403089040840216999678541210976001175499366996647089119627354123780755481200358337272673547036142152868229086795315192327849863329684399710709995735462362461404794135787531962459476215877069153726598447581647917262110782191246581952082143136474473241311007638921112236302713564842227243525361462440923223794970541762488684652281517609711382044601652595863345474063466227496950707519322668984761435560907676305551319215690317573936618273967378294593797313306431195174522888432734176342550315367057492139555229174851780922762627193805867729173724433181560426353044628724742295555277798174026818086685025634948374003932648790451707179228258030814201690517263422720755002346437687826049093333483979163303826915106373784958649786581828406403539751049865337660744210843421046837463596556062211484770935054912191310349283173482030949382027013819335706181201634191425360065204396457309341359702478591710887417169730891803984338652818984390302314134671749859662237029575287786204686761875645461811671302614010657794152743769184935379391989967726520666896593146268928082638277575145112570679134410645720830345720938692980937213675354147066632691766441286824875474177583749543564742581436823088168201712113181265090970506844121472717083569617346913707864641782695050207334311472608090127152496702307516373399403852251469253204282174137325405235051564438530778889146163182487123368828490282196036666483359529669759097903183821819485339846428541335726123782268204207901988382809724305287214681209092690930538459171490862411330606869710546068312827803601439081477887491946179466334579163291274028341009792822960552544486942043740589709649564230709750357911913480973097263816703100703415583399522474615341195354279995584282960834276188373122028059111904918983586056964075021048873552852721670348691417426913235225135383739825244960381414596761134828945665293366237886974860225996453455610151789887974963571428502590821755545832653827730594523157791617516832027208748960176548416426349027253142139198090016678349521208924908513883858375506735236259663386792788780205096902052428849032630759195186635189630552120314948469140697593073994658205738904392554286339954224893794239795623261575117300267228642453386417849918568606740778750899934833525045160809371081748475608547605110708891512418213600759123150914769043862240722165446960995947067169639387420987878037122611957505756885379090239800807603535464921971437057816848991968080518817771192412009819920148068898085269580238874165124214127475464766049751116448275058642701602963737411175928843219721607012673186193810485589549437888054598801598482643241284220347522427205618580049647013183136200805423445383024700699925110983112557276246605132989496672837491985260978579149631585923112609496676388448362681398125597906077501229838979795010019581565446624078326580957506873909553215992917253068867907843333641218679387341335654247258646563687610184559388517931300377281183563597361461250525229916554435764587397474228103342857957724656211669053104831586917332196642980212166331336936167648930552611801925455246516918615859425847522458816530495505597310178118973423805579170993972021250522572216898059656463960298606151071883120271553684107245273425139694449182018319560741682843406664664289055316656768109186413767411302700591589724444647296926586446743417820313611435209345315792748248807870752096169760162156217904233689252676566378384632644762254131706934376339378208408245870661380243335713689772185103291784685099463774174537883548620920045940073136570608861749144041045497155580137000426220815155557967384871532950391129889283945517032242697995612539705378478149530107801668244920562874783298428409405638063157773100928064332872089090957317543048426558719787778104915388172152510297506195761354100110285672000758589208849446050375184823223122192409245439827557578648786357977590823987339467642423928660654658767696225537845977510690592951606380666966714348892295534061868733110085758405872656403001800345831027992711294256144145063079234869320190226717667637435614068869507601402047886554126977088983832666736540310998871859286718482884721113270718248066775985502191072983881389813269737630033859457545144188982566556463096349888147809092941575155019552443353437714021118500358257410137563158239473599361803229294710554883086110001384324094277828127202393729945159345142104728399031009686065051875048393293231403130801306825508312592005549652467744156217329853733562142742448076150519315879530588814467160662269295162603293132830209519677572548869237200299953314311652868315952895803016426761650008539254346783766655345112717289118356484446950301156128708565952978206239519334959844726935455852473780970730847644905157109790003568844967601105247485038133079372380740168300924486468844051356490733121152841177762840050700136442342190113072612002446507266719075076881557161882187577398470148796122768289309664674199592848554936571261473531900516631075864826588856912648660798105914300848541702786812348010644825096987706427941826984944614888156808957605940549829169040038448450960993651652802394810551877972149333061147208099642043463422655848023661918583807412368236694957521246097017106994552450108600277644524670106630195105704172273236858387171625158657901179477384873713833255148038817648937635858803756642539320157620623754213851619686774533229477153601325415732406196022414510294598928188623199912062138879875861042009352810407598369247963267188992803489138474714416423079449456104378997529082894538234195250979345692020847243943020737546416988065962007022829654194438338296686177476413283766482417666516009948698216273775951411861681753343553540044311205217139747379726710073104527831551659192167103653611697820661041731566522930485525431272323094068174033747086796765531679247723041645974293988210134250460222816182949065216238885313960479090420646530044771755630200789261729377935743364328479989794780940409902554746992343939905994007929854823872309055641246139317089373043525134135393867831611701776634256365492059466744598881096235770331661865561862139350051705871903797208940515388431618878744179077781247950875398520875601273237064290834217355021840644481330750772834993737044570333665968013739341011360673277732224578546334172941440107050763390962154953737185009150090589743728753785189141513520258205374843856743447367844487655153979854456076988110069240832999447657104752649884971646119630396683912026416018616843854583419701742676372890089332434591601895352453297418953642118526248877168052084849646524432731270911270396622559791963106792537724760192135548101231541977130645201843736257398242033810826808665885041918390079401156748961861888100241233038054541909266354747061280259070745484921896861499245021672164557934197152241733590482174622648564936872866006521392957922376268884920280785628764018448419991580498133559460284697228098836058938078786766545406152123574186687357237023086937003896167383872089751433667273896285542637246767888372751156450667857062026827615159309081332727161034779921838987728322764761526947945283902588632604516239521729114949020322587868763550967910763618855833764569998037157201062363335684119286628873018467846347955081757374256813596022784645475894438844435888914795119314011600814304525010462094757657394632105234292486976079341815821122943056682226021387631738630315311980470631309880760843358608388965241119718255380056794779489842817345421727944509644561903712924833353894197478899740172993910254577568621772533864115580484338183551726474567967011504944560811735414897937065772035389993006974000390386776586361725634048087582378650650754929987318073312703374369485078130528887066909567146541581274368466260031449433744642362312208698662223728818051023665989519838927237106884051365875049129949849690023248347178790894182640166462941228750224236804127055698709628717899705996335824495691025607184234703680822965787928608113022237373712963971454386195803452995420382539143627984793551540033855895750413916297444140352010098761944573168891261900610897167108343601196298810075370827905703798149256161846808685358172415876144605205475379455785979472986878221406320909228062181030724090391003271110959033123200105526897398473226593407439608320698165255770202967512728316501395014661837675831885367158018916954691282823123268759234612271170730676955606319396263797630845955530627771697779613893199270432601251725672451886064565729860667503981008470629937134534929776038641741205467269116516805398562881284188742226012834704822406614446605487480046042143042098927967051620103476539153217797947683820979865390682027050931948021853174108798352305533478578604328802796922390418354765745005918139777238116680407147625391939107668191055362404548429268709962525417851472447329489066027461083672402476224772331148156886066700535588501430291562320864966580548885483871896592780474061338394945581618711140497673685560286431031421866563839900490607218543061169094617494233545211478182464988678652864332064674714328820391936135554041171131258635226432908506151777514802648980780243251614388167792931629013436378309785078400065664608231410111119666416470179848237640709635539517350196182511934144512249868053156201363130092269342593323748721715694324727251676112437362657730589339672277185828377335047919868528141221437383580639054740562783063216895412380279569761373633274787645380076170155970321515055576217780771024016859709414057546678054813768412338982399164564648081577436469696763763405363580913929198305910227371148177806195771120303279475763310045555933128327548624603783116984707065391544086533723744199609165019229583821882279046263121664463901201883504296777862995371167366586473054866214643374666291915107557429000205442675130464980040254491890031309342795988052758368947116019058190160411968776928816464391790915204894278676377409678880432894713878007123453174366252683572974897286792453058059234353377115990843453128314254936377487892513666739972868964020826182954688029376731415878050855121254016133093580712506910143041064645088008942183174756352657703538713688709783268915191944782277768311642278118991207783064008224029052361163915507612813931011951385939791051491819352638428993940259956585112771797489911784958607862273995618445445540312058839371027181623640103861980764168230375259113743007709906624670159309530740642725876592465944084735655599836717394006077471473144045563270795488227620616361828049247892236291103190576014289047144915323509756628481493077282214565051588019265349927448355090828520651498291176185683630461983724226246377130179470401355418293087605035761717260483275638474281620052416679684138467293799933163083184504546191138666211431697853457527572973672890392663273893844580840532664660021590266515273662390433093194024214760574486136774952313404153566965537527751643454925588409826582427484285053050070890988640516058376302778010037366836530959771303675767755574191986698791615894019535311206251302917686731390803096936800367042109035814030833439629024377449392663595379978340446844583221946581816072701626334167458227142847605790821724878625401029228967088840468979681172886207693324623745474061850089460257148956445424313355775494387703019732193401557883500661312606736408054210306062122784845926804715313988614673943484209470750808276307463879576330160040303609873439498493767998441672544379080814198419094587533646991482800751749147607471141068326383752344814599232346229740037236299190127758531110434189026599262874444906374248954706420541081265603935653441076620615359992382114125664977974280883594457620938253656259428386609268782730609342126115115933774749103747238283014952981362010174679150357584177998870418544652690391371915552537003317193317977283761726285041844589614957487628260575900825416846350024175533270676618680301161889519907016240755732226481526925310572603043376999481025977582618827572618919333734329002712207978411676809101420114594053109091240844635577819260127519014434515283112706656705859708920230775600734471318715197430346192953331382825596863506031679426841859223351934808754383015055767968060720195698687717396244857290869175751112073503924379171450328745541993320591263996643803198258638576309504275258419304420991850435201188370593367647651799767924952073303193990342706424242767774506572274883058671430480827409389150296411209901399523481749679670184828898929071246503662669787876127215467149725793355531905626286134925955401495708583475250952085978019295860713774230812738576333598910695542722477589182432963847454727875569779966740442899732487823054412291431904807722801279706879801184344530756120192987425185384028144605686159180363624979197146066680259956827882850477317341755523665519381694606370689520340201037102892341735114410466454854884419299026158278154684622162876644931770174349247826460004631427064419357516612160748559890132187520564792151560453409542238707145214818131102453934505578063240674548494038653291541414611230663916095716948069995344762379897253155202252447827803312611794060552635869945578727019618132577927409789240603416740219498754757178563160424905404290851673257751038221613850785298679287248592974817858754441292511534069359060627027899900302363876389157752929613592562407109031232645139678168762947706025150639441339764576060634872922545110108602636996727776843280466994829407382331264774452983012157499961992605950253611141536380545606863385965853057916058694735055991252863930482146903375513164052411167507172636075768597247608328276838160722696641896448625025537693735491328617266913497879342747071765911131296311386487631011624713107358795709428227567997513773895843603067079544829971372318360425885212447012645438421645798469505093020242351208611535330031032280802743576152686028319989078913972748853573119480998738202281725527761177186850760514099161936692591324465873111759811608410241368855544724935123324982463130016882230294529343688650303020304422264048598716735993235345128337723240690125843543679349331637898094026282188688650649351881707172040921338031062941064884661685018981348629386238463592863757004637253976205952334136035147379578565616539551615142948582905871351280843246220611823713719154700711836958913567963181106619595193094936595566377397459660295678881373619322890162145592855531542862915730157649694914866240241350245529848417559037440987847976839491258594602357669660096576114823567827088084941612605018997301575632348393529267426829614222011638134291617192398347926691980007745022011016252116006883123378160112475897503259112374948193879048271043421482797306153065269655275087193728807102442425732662806182296276843380088895689339615927079777221854256462012548007121792797207601238448386388894408852202618777876332790340765310344921639603634559427198366231813417217412410298980317225827138677286967841474882756307909303289981215479462671068203032864605528304847617487345951555564563057398673412459547872322401750246396716099273692263994077587027905340595785353659302735541280689445658005503988370320194609915871737826716458944173347985308981005626480265588508462098541928554141659151241010702410167081352240433927935833976378047660745143059460661328860212836502865564486382669111597296164348756594616842487998570070077036150651733076748576534123382626437304637218997707469121752679881933703069263317466230040106051093133036978843344457640576698381604451428968286948544230067041108352725893488658443125831479717676313749529703421543319372585219320758924824976474297500137448237784775747357811498751807744845518416912109414871795252131870665757096667573759485548952217161391264173011203222607931177581407240650752707662244317478009456286088801376704907829986492044844926788947246550787678175988018335229816726190352628535909409767223073186209472469388796533420366964031035258799912815949652422653532604392215021413213666543953012908617234440990706122226321876931965192123926178147446081819519805741140454093082375465364577338118461461302674582878863719452003096647596202598797938167189104120899363794243991527586459141930806429159638231199356005287731732510728891652973987113590189815333332598251181505010654323990495231972003912222930070024549790767653653222593290196398455557443304859038215077202375492593323673232168144723769187710741111914163547486530451825314787631191467353036078108689045192575286100864784159667751103585802609496333843488117550617841017170580920988978358627325164003308715973239836698741201968715147387480721129898923988538598949582015981727164810466798026774239071136334134272569921121330671422512038121934743331697370774779163426614883702156052773291640890779299910780205304796918413056378953982519235439238541634619300070791990228247886819090118144720971194095015500230144574815228656514910751620792480605617605540337721755335842928472318873826958317449638761544349191418464674332274031260501036472829094816549878771653748125679684033990353874925332774555635550467642870219760535041802981955648325637850529795713698854561587141135699876813155981860040820763547805317376933945519381467879974949541290570469820586568790185824753920894111872669493408906744464536277677186257741778326739503893089649456738465497425979074341674256286643372712941017052886240385706183266862582507991549959971995084654483768067444950538269647612570396900643149349173724690029760154974853452334710663188373861793354947075567310065072764344940364216888539217032272212580389242881728064691731468706337450224485926949618891887548115337914688623206195830463994839280227430087541564753986667653713946830177075133457481647617306733709661312506109587816340023556644190332382780329469142717862390585085761966649568973487724746299965524188438756367063499959505391287365429284424934710604005568017834155998329010814599054896870102013808540791532914724648422762224989876934476283115525706826758530443799840624196252566627366051283573566792503575629589496559644968501718840582532693782193965173800131418777497931882908688010517508131527863781393832455103419979108953637910346368755904118080976585241207926102476509386758446638643110859166009178733256393296044076312500495032780264327443408803117789353241064480594865331764594061683047289088355185784469935348921032037329574158155205445253426709284364465094250657060016742986593274679849488088949891233382814651962798348765781977269752082174349574454912335280783036329600736013119596779714931257553913994634764315998128095184822785487292047752676828110466839749170555115169874910786997695076990506020528721295926051458671598444922160430856933716320559069251802770711570940586701752823179547898845338471637561575312991467204833973222116919971742564245754768594573631637524952087687680022315596225394827484110954896342586276265432460254034603304508501797772713755161075947398775599783105267238167364923782665448009099604525739675698867777748836956390504068970832215438956634293917483071848326539712900195642488122538489127848690137246616523275513359825985264897694998333693181544873890875914769686753601572057208536106447177514127642175929790257603990676249087918512432471167228909046037466293744820560771315727812086689742888087003175178262328438174743881180704814918860608471968603450670224524094950797405537948601237212456209223448240717102370196722238339606845383450265998998339075202259405077893204009343770056996556367475156936770697773357484799845783539495875467837764572646267892534894615904575803612446137767477012560549730923918949881982409242926853946439922518139689119494210436353486351401295216115685032680462170913755619498979971083905080271611899113161853988242934241186118395069839761455464068117945364476859409225343537343879970306765144946344749058414808544613748805956159923390031209722018498114692640115432632307398941241550466659647433894203647404996994938631288479508447087467548261089810219447732421525123268573915213786706362584818613329793698122693248580027956246627247377128397190158005379740225958263799950737136806625342960016049128334400919481237936390439378014370298688184809943879394189851000309576198054376544583254062866300034039778395542100779164284703879415530856343667100655986172082250035081644669520433450488109235552858818367501749438354262421066489297937589275930432846750202773441487928958522526441721439551169367448996544937033815412528716075984544176443666597152459205410269380077428731300124371137444398939652774601683595630039088799339584075480724784006511368752791563877836116449662565069956950299801603049883508994896063360635278395169043607524390721118966835250408823803652564024377163546385726005478045174941995460459498938713093989369266592493883295792131995369860016410572802950952448141110456813929315137874850946992089750728095522113008896095348850721127134798343503794015961638301720271194966141957374103881022420552515703998331170455251548193174677596447726511861872880290777934950372816947629987732660079459494541735357246758642048767486976079197376638611541278653134569008383703112794705701231727384514859447936048023934296565861568713482479505455321600290946297532215242116586448233282421759699315587667314281388629102506237191067828959592013552528395164092458639355180554282689569575054372697982527103529797640145323738737195062545401843059734077080847015917113285298923379042341850198402553521989289507416550291872474354918105178259016671852401196333874256214374764106215273590364268667953750113417386523395855134254123993729662237492514538262499208487202538824969114928040769191913520723331680711487840220192862229738731321457631767841776232592460104888582854325154097178633640850255661771299850849484144563670649367045835062620236759179349537417741132920528225932214698407452390408640644110818762144898833037261996611549957348862958403017042935878472661666492725099487623082183467448544166239557954666653679688673058966051628479071446220042140737566788865866147622406140332295730126662330995945404262511673574339567237327323886552155641247063272869803552588329009205665496315609445214262226180586793851070522205149292496984777426457399778217805207449273852368246629795715589254303457860862983929593201092135185434751874973384686980239367486150182759479062808285187456978442329721044644837352165004461786078056111780626479738849477957179585074505590167067299583223490840079684784625830596123223677910191882981877665688747097647437668990325395282405868257564135019853276235212302553341673564355868127709125248521132894905234346992228440224451247962280375723062293876843677957490892770305546167537746480863921972888256395330084657926337942353463903823751461684107830097741779330301747769615546998320124157342088017627243070444474683599672852191263905320991658884026431317690851162562126171488299062331177452001793911135647019789754636644671318474785533996289876718075807184557133736080625606088653696579128085781165888930285123206391651545443598855453473070244426046738547675714072243418920748808781345231194396453293484144904870306040558855831227251930623849799653786531014453098259500890261676057721489638536545269873643465165697582694030061098150918737908357565520917676614297317382384989818703226496969980958291550857075771949646596167155740204288905085369417052200427168235029775432055773745096053037089556046508026245632493609731818162267527048674882888999201796552822345550754488445505762609157480300589255724173154528534010261592567037251251346889233917252437555885587837160416001863031784406772632495582663661806813091655582715429770028146512684676547256813016384737675145456824197329157440068260364905817840034375191349242669105389242995882562313041541184528541994345316923306524055505861250114721824432999862102088443502758067076535699708042745235622851516379165933389841610746656327244982652578165281107412327002031206912885315556546404304312238201433745691106297439661474837982626806996566277160738048623799168466334667900572866887673081650427149948835872802812531447143762885909853955655496243214933011384431534910409770767530989580066017326711096757741951661752927104866588121557359058915234323768265612665103836249396837889875357957354940152792631709354863459892727597312085504264581918612425113139855207885810667651724774382756864276379663593642021902895338777257848173175901415188505202561909814168604741671525643072098714480087299636017382596669970963024149181513633462007028194358987049862117739901288605910086931987542062403659306668530828595152233135869429918765307846468645117191224594275932843790351658346158020851689079532751342969025371759294978708300388446013478700114242267629684892435739927707540356253019109074014800926019974288749852567241375212641272406590712119747507092742222254509551951157904170937170329923851869301168719847897378795223015411080237394879914119052545576141007378885944698592446747821094647386109050355261836235767043840923189497175923382482204076371243501823550783849506772804505611707331964947304579533909675263033192134578496452772885284762625558148436874928338860553740455663223978298628074173846263625712577673338096180651057956960004640057332256498242454068938904636475642418821881767738426174441467874758975429372791197331516900391738371420718078864549766044714474542737086572535974181281856736109756053338367872944936397805598109988937698103765378723328386392061855441301080393847135565520428840004469369627259490888185457029532364738408188099090104867505895217304978565792463605578824307225637097323147085055993626356234738486281652359359670195593473306748500182302456210193604844046970731640424597354176606537035464991377801673901784731188317479781671349537443859645604643920310532113036445257082353601803016702923910430206655284476516696124059802046702044706122789048389245180692768598017265729442095229552231148021071601788157906858387636537066992670468973549804074206042617515558007426789414011826256830473654619780520507729786742339722848338548617542923710723780601312658715452395030107093784235830399321655782909895511788020627295848686052381402510041058928901550642642319085897039396161509715710265779009018789611010728303861889406200653427409797475895878835523625830441592194309095826976345975432561094223871308237696153275481796045798960194703804316965027868028503898163338694115722479569184992455134883065509170143446353594011602903106904428395387035769852844032933387889320717588814367520824915581931444076956211757097510915290842479757162288442901473897273895952528066732173808809811151178139557333345086083047069589638990705762909606307838957198176266847882207697211850981892759577551876866539026794270500361978273166298625098472500164225287798343437702380716525013546249121369784485407692851558567191623022570207497041064856456000899650054643650500128513865415081043775393139450567196121762768378219270697659965447494927177557298835224211637091857609058505469134244836318266910868728468585381966398940453244399601835609405978013104955018427362701587179933940234364957358569157818436435260283548501789234406777651503363874028398243360990262850139364360336144542918910046479030932659834040305363955402508013283304077667199828886314072664289860411207050661536230129987228096134793618454247301703435634226492134125844832678976608303000116708286997126956395193417897203275961380778162741905290747403285379995967363130088127158690523251616903751766211745744329149290912867074136171136632306342108734310792298797936028179308315126446813367240868357501755236233421439656898621612581613738641649134403500979612305249816077706996645788046136096904625496396098038690254893865248186918524686811316937142119201773308894680905676786741219926361734591094671042004137855818426064289807268138809980038553189121350941076464813197185581092162354387646557184922719261999665581917517073967750844596712915618751107613390335467512751850540615553849928368167974320346958482540125231208793171354455026206430842800902498908765153241902701370578059014266024266419625456376714034841446863167103759060554215974806183838411465704927249432892389887013137030738023363465266512907353526997147218674648968863665833737462797481029270528645025684685925529815063105582176978446159763460681267761849288810287675861320747950630669152551174631133510116282371842504013833326106434139155202537834224278613609647917156244142398320268795722065132117603393350076445108043625820361666846127861444959554223325217861368959654956394447051889124557054341381740097229084963967273020056933359988456843402318957887944972963645589919321740564805984957704075337954797778395077575576058379734203662755777396770503130053551931276578043582683657958275516941806692089297878463725468121994807974613457541455459674851512010704069764074207483525356153505785790746255911044222451225908282242410141817747052099037285868186992201403570998585536815412394275290039379187504966421857575104248538705280825679263445839295260077796181365529975167060405329732877717178667939692744347068516800933628100010899272065908717357323640164169158572669725304675805836376723927368420327431879414947849410405347164699639327218300677822927695243224752828012410798903852741679520439524281731529869094988224397011132223843955128599723773424440435771444801457745052445777605687938801432285061593699915282622236394984707160312650790898116335584019886411866225248309299848601361227534672627318482954285960735850542932682261889336289581207773031658926645966884757509689217634908753190267555488750849789090578785497932280259124921975018488208718305830582339628633433364977117579149082150743432517607991878127797987437574222975768623202266252508869045564084504783580632982403137373785956997549003100885156399997882492964521690316240865953202534999850266067175918971982638968717517030463782411594076417227308241846018169028227687446049764554668302205209480007780185715448320242522452475919806107781774437829643657112701141826349367651912705797778136352673548789952855343049634239849235221815293490660147097751076650427379177631593945750885900197754211112532235620607738136879591440812726208965135899092725328198972578225151018011737055951410790434497868922715558241959774634210942923757988931922266346936841727096033207649026311804803827429953567866380458514838267370738965986863209160568429002321099097138232377215564509339297126744760189224318130771326090165546982544710119703835536011556909302752387681853528878664578528239205315266888215265090859418571897614007085205331287607508422382388761642661848570805280612819861735076670961275639549751550617610710718121694740123682747614320075422471072500832180400629805904091178942270220794492494270846227602376116910559480250444803397392537463735130320909155523132731448403135491716908271997753939713627559232896711560914851095220103192801001660476248400735272126267604610271723030664685226505417746009308291239168086039308107521905706382771080660416075151873036054017619886857094710928971648512152889099378530668177370760772876873659542510001460720401915092939400942711172032988658008884200449670325326638631382191215754260944498377539344518319845447448045162642202932845840305711732866811325436354890893693283761412942768248703253811367480037730657046910503740279910579196038358864873477513681590900524894252384133239347280454891804891647483563099568645320870581957290207460124924776520464644280828458215869518549788768569845605735548733271212802325909815336627326819017284705729436175302951893339692801464648792755090576882345601578134407170935507837450851882444865136544836264685874946631710334431086529444570085961900190142402050330106057160605364692212280056690580376081362252107637730528727687360594120426494982702939922301849272446696805549037512369260730655253688023532681695085203159657528508956105034479388024956756167901179103066479928507421283004816242077510942653513307781781661499938870527361393090856364682502323228119887440718534181343017134911852179849140759967271293495363971441311636313796974492783961143821735617670826800322600235427822885263179530994626100696027241992888334044138006978356206169157188060991345846098973579003013549850849722631160455030427608129186519739809269963504437666909384924162738224947780365869997192837433160895223815848910301806236759537342721350328370206695932527128663628492828765789794021799204057990074781090108242478332311981278356367094017691100928238382164185945727317392293709268458979730013124831087220543396156685789450829460244491092018122747476149325075044913377910819092900877156580793350674119276013572664165296954798003838097519085946920383463217691480389342651867757547513406374408969062560219836036322748876683292348295880940936419712106593815945453394144248998411742051636239717659092615288055118578081038762104558139617529314860091775312453829711266039478549607197072936754468405195849730506261140129845039668145632884150161963761139267182702013980607816119164293810826311503627175236800117728456700726993216527342189249060026300236037552007865207437483461249479866691352120324551091335304518026558861846483978723987086116439545529461619086369180686982397231792545441763421768270219914424847897424720868414827219110769208766451017052186822238445137378725630752373973415848042256635088152591468888876312510048159247591161826193563526454835373524023053490986890956203144405607684895228402694902042213137803775091655957435858971018989515835104874244239436737388248580561380084350711438759617701934027921167780140218980980387590983648578516000066621418341760572432219248653608039662814843090651703165606101774548907675116124374033875614279877871748157362230290770651548387243854907859523160186714102975731308049631514082642750495337296960213114545821317759588303980929712381182727251543067733319345876577351234963008304413100885946402321636167192679640469260942968172732472084330033629803026242937126755371642964304952742368148317395138859283332440401192876161860872768260828019066709694980932700761413507095423628811384842689831982395452171720432028438100901808716217029282585496457612284468940632978664412795253220780721577287134022313890642916868873528800128459125913430581900958599046625644496946723649822519986170274338417898632640037945427627896357578190824004729440400613003769305794103532133277139230160973549310803320243040101675864532154855245507294119663393310314015845052655293124284918771424151974410290394253051518821668865995103387353707917566511793470388679777403297864892828483771766335540842092715652311746411089854220247292286211395068993420390415671489088554302864098340961722514506464012039420726667738000059503937057021573836253374499828253970298746532650134917804313100187523127641698879589504596631840840774727334757880111659165322392911985582416362630646492238928604768500073111330404484179272724312223913203062601264346593386849965821027014463862740895296413032397513012581657198778904571908567468290243051241005281536560627022448003113491634117429524045637495774390099725613430410123625920399925167996021269615383488511805768883568231263253737398509126044005142111887040878106060783154847626293784134008108853429559886889436042038517550417981385890806690493142389120073735427048703891374052810476235310870688165986866156206616043970267633172530542691275965915234795511638378302008636567063279707728653869972090610201543076826027301758603572033504106502845495553831643597899026066344598404948436945148543683853121269772048288282384476055530586236438919208543248067606542963214581570794149525684583322292006714339820305960453055656331180255830745230525119663972455900286629147315314691408157542292416573900501913493955916852237776269359140674729572983401561894731469486601275539193825822928569727922557802480847978650894063612011380113853065426384768692827920579794841680130837664869245954968418076626479311450549266985833676910537199504350411497217005943438373485260443779244999578982397962359529644620894769588657586095073990806461847092963325472878096358529612106711020513816331037281861913078200377112265576266124331212206725727899209920542872370168509001778613061270850257559584348472252780774429965067899339234270884144284410017745025055120858223937896543096911825399284133930988698168393492847906405821553573987932392534839873130420561917214283069039843498907324507319678501528050815417515026106262953316910883997838891077825704581551273212188558830436770209529481160900803340030828715186543444201420668112061953176318580493922704919061266913804470700733909802007382976420347857060658195130426246992506382516533129003514705607706604343505810818899060037906495640526946714197874952024021344076802505254784802417508371742356158733752200938006492841084865889967370890840704246122706700164738011903872407851912623915352019734791248584121667064903188027604455459084545921930967360566596026572428094177051926504086201967607257445715588587058036225371880448385734850797365932980573418482152796433060840819286849793574854932565909430511605047518397710898501332420819023843330238616927554037063497156067095442499915686893200636898883929779305537931122745538929025317859328815054441966177640706057112345468655297917927315356216496111078863987212589999225403195227302390902378779770765547611147945874584833883062139646737823299552907739666178787051528388045236812061637844796991541603074487554158799792593969054844089735512600858312940638061043538430373421361637161378315773991827535870901041560222168539666316596991518398033344013366060266613953647055331636593356406576657759918960952034767773877072582955043129854525716591576952785125346371741449777521401896894955580445243394563159790326668073780186667096720561988746608523011592171023508667877452255505922489095839904938981598185224815614145195709453986676853559789153967709650289173209975398870106214884104088465039255101040572513399851311431861466744156924599274592431645523027208971303715539628748547864999651539054666232269424540894436102371168281839909036258112732225259955250655785372267763572944338243534723150721916589229717798653454915710077847589284923485986008089697702007174503655098349134744475190257655824977304608266416107777673635401064313597428444793778378620453366006160845060492293330220473979295316724468161297745034338778953315512357383244059500034000328705361128689433445785385439077482625127281339869305597170136352469997068514002987588442714398897289174006504027706917234027571909181534796252792909600265099878284930461209545572945685619194252112443761375584410075226805726506923247941041057441318473726598266921133161986366063001475748703857225078715022216649491906953653931405752357360217722167509039688143039284269314906718349799294146887532551081213392106082117648282055654372780301509029732827692459575490992501308487578397924101650820741578684372435413085030361189666181759538106646169951743150904117306879308367210415787911232686626409979810839341193639160260224913456497696110737233027037452812959888410055453669502818497451018823912945650928574333327870839516579276601783575341042053357713010443240467466030413398151312041319258446118165098476993145916396137775378619305668449308142948341442329726553763146449635829776532438987396632533051316509048944590113781657635224845168320586000096416738856126334045021782007665890308018424698434088649825935564251725493697002220515289686442088560312862499310574264567188576097397744311839359233634376516626354003182918365897258809483983055580367749406275849965393993012410932049773760476928421459597927309966253213402173644419350283086194949154440408817320783361938703167584312211140893435565396251753448745246297391023860923206677412065614771207568558729792029341928634931045408031473427725245418039382750395041326510593395599669286610627122567021525056045981937279859287618216040575248384272538166644942412127953579446130397070506150827954398797615857847271463754243269845391137410231123543077907132146381532200626735547948618004650551969530536678665445591977126689300965733447536757898186459290058763851235038736917030342353166466747426396039232264554926086560791513719094345063413400329821723380482580322771199371253185570604216071555557776080928625967893647064626644741479011023919229746349827853614430739365417140602337473674892950909190649829075584933809479690411039435458216424836375913391439968636783091712526438053904007506429184005759097678250151942512911071627569304005156676821959884662241704468587526793410000104349633780344143494619571121060705532725273113596174248133092540981072898041510742769576867693390874886414437178388139300429474560772532325713187728672923461778510858970741857465149105722626373032170320412534701730703030683127908733317214477643729466649033971478603519892390690520966989905354503401261693067852222066265393145734451864920451673008578462106233175424352091223599200989695152003280700396924038471217024057130505259553802724578668578199139934730524450065252768231557546654280611925729826141436137034611338643404950813797419401674542154513959620262910757720490167241166477539179411080778752839847145098391718698143339178362851118763007555921008477892834092418275028806054796077661419811305521847492098575600828765445391529830815236073017910935157362824432332018628847057259029678620909942052641904756780117691207124093932567607015671482985195567596748083825905662517392517694839937793342795422848731919890065866703968735108307386056923062698410672141906697821770865713102307889224853509389829514928153866581603712507639470196184177719223228601007969398483813030220122048440228442414721728467977304331232825498314498558083978038032842757995592704387780902391039346033296574451819816277395870846570687188257322735168005891780569471980884504509901692435682776745360284514849766538236941778123318592819531204403983859648310177145369762443993038057242295032425786202496039283440682646485230670608449081279664544565733033473266803537824066887058527956081277970472377105688752217874441017354857020365898148902104940574607373982772000748707015575034630526848467578647485704613047970787457577691872977398772481073579515442067376044709511164831340769356932781471414539735021498244228490270430208178055554456397601385755679246913594755617316035731194392429994969136233452940289655480728739389223049060736520660912585545702288538716370293347647113452427100478547793409552374666507415569370480908754730444167586443494323927726678482783541926173594751365344777635841514118364286581726814285550421990903257656496285009328086390809995764229752821111095332991939249249021151237948208451051224800402838576863912983526559336924324867483326508598308839470102478507233473267654904387903931615113675202329924588452336071477475915926866768430483087470188196405261890273200444717108966658024434699744057119013230508597083304177436596854700836814600100163897485654231885166241546762023218061084780867459062894172623309506787746242363569290134886611453179458486752928637206981653558429032314961155317452867158428634014265520354821884374880568142192340712781925245465980793597949634154219723510095290410381232268238633421816797216150506472898528783056467719695838815101005568255466573786309296992716904153984634939475332757536591898672095139763060125911777604453055570467491138259307047486731374239480308762584729979327312145013086979177457478698762491903012380613537680216048945065488289055123435507660859495008457273272242238521276719773155952753224080140088241446061672610077391669247919254308571875863532819696905385608886810470668293908299280356872620599587796260979878041505521685413234435014260803670157336538124638368196016508135265695978243008679734852781360094937565266903450040701070405706845431762307302053972884088831011228061991962005008249246177455014501253398363125608974387265772147855937967882363894927319665106382123118845547731826166181496884065123097323945841064355654231715547189589903618002345669065190415958971547518208711072954340984094379234405268910918603189883604548573648708185042050728329986771239948378534774290968439025789034822805032502216654442200232714449088818773099912013900197490816829896077344480719818247523709950518117319423540487591330194445791321558971049336691381055352205809350921941337585651330906605959221309869637096327142457350711743091931097661421028101123447374493690933750178082369991035291421512474258266777338037981136125312447518232346316096851662494188533747101456263215594703757519122989704170050452151042335201476947982222480269029108853858294322808101503040924771198248753739768780225587419817560557304364981801829490991926049095273101428921608180029148140862303470925300153620566202787991550924443642007296835146706704589801260634840283269218260934741917200978989252575675234492549256262057069499828521741095134869069197882155600827817855901584443265695212232603900071605861561806989414998541504249604277498780526957438260245238179401427936065546510367100665530688578526340190711130930775210567532630561978930405807722438429605226346808810543464323657360479910726760442804505069402099385413703966198044052797083678084302382245753235037941705646036347328169727732324340825488868065503491974840250356047845656428102355365897624999980726437944650175376535470673075191616575900956289732084210817237406291726040553915029276637384990608218057804106094603788708637820988482739991320118254121815947258579576529093102650902751945894013048130631721751787588679357139939018462984179198098475391152714864483639222285618622237488956439362436614633238011484837217680760202281403406117335701663226480605289508380910066814044368813930085401494591844686616003587558465881596500100506185531941611569561682045284296320288301968390048451806436475585208467959356900291995102798233186260069388123260009894069641886137113957544934463794229478803153513061088241216640610579368954802436053396003356296598228010513292449988915518324585916075369317520905407452868400706155031779687747876092721327207505830179808527765107558177336529071338842046150421330832034190857195258189146812451394829038157446506087313023673561498820826823954819844836167486141436579321752945018400458646752863519405027510714203276433416459177356589230982014361018208030020671697144781698848823041416886593072031070161021617052479009559944856457950954690099185191266177926881252982317977852145115527016701708335261556872561142829442240196370118850049538005137445200635101547815746007205920987535422210232471365010878644846982473833297310566984710871546088437636963309379904238081268355631286362683844362263521366626654352611008282008224915236109807158678005543821447034809238711066310651090745253449993287190002944089067586713410756782204685731812932672731039673284254805341695619773826861171658395243242884257571917969441264241303140045444808560143295147606772055186071472592769860163639033509837169759145448529061676607217378737500268673415587353917723842301228640766188661269346097367129811887065888842629998009302355764390825549072025909674485309519308040590596845400742044120809716478122885719536480008760330803709233684004185164777898920270433983613474570618109202690611547437061803532704802092843731044227198424154204392941912422709343802928100717743960962013180441982119461029498148097446098699419301306173197251409915252019388291114820568418433705934503055948951198943607379360823041148428198401344845356477468480983164790809470511721152590908235039055173240900866296215492433902622856347450057703942334642109699292734547008804491778186325423312763267681507902059961965989543973625933908894226270812179906329786269988601648556261528713112243540894770244549086440325235306966618175314680727266796086878850342014682917642585095517923234612625500008280682491950493857534484491458468403079076508385192651238325406770248504616835919889690497889189146428713208038672920482909822178583544533013177726991722817906884911416964140091027999788693884443528015333364841460543049441935046157620001740303816745726024767363987397946956174275793694590450384517646463035940879018955392373999968067842904848133830430128413257794599516329238351991542290042715856788240722397584712568470496893834501780332025734901053874359300229289325907035474940962159286011044468927422234982353795537936499441913240538211451211819987100733330842252819128378262976593810698806727806251875569208995323951327483651365837430799150486968536393144952033511885452688841924605073715612057445899896602392962607085440301349156869791094609841462243397132028198016177728195927201016288668193384442851642481406386962634478492699985267499641283745446316818837258880172697739298317575737926804794650962463316596561457721277966406766262988864279687034241523121889992221780237518840255298875386941275606118568959893037190854252946602839803237510600819814727583947602550726383306928047527572450282009405003534338732493762341076160458991015287705446760925952339090200437235020853786985382833015348566270599461182941736529486926018052766776461379400354477883139288356300563404654286339539679179345241154504475556360416256240432424795405818610736815356140968543231734346952794837115406357473628774957109514591503618916332665018205097709078010481977045049732222944099732871848302327709749310203185364309705543531197363230503226886181854068069833492731415083203126445554097087098206511877457958404097325343050123719184182824178605424590082217613740669321461084094252167075847074725428661373360843331929323414301598431175683674036475880930923913563107719827843952129621112483672926272227746369411213988528373495463064898817626061959500656718353877760993115070271880502524982976048614492714093554203446270434736861732568323060204598867346966183257828347987890964819380565544373965015658571827516222059186738859859636107299312643781686893040508794574560970852265437975494904110380496122129011003066620524607511773974540806588237146098376589550924843723276177194518900856280071964419340088173640591609204670088750489216070442101003566200010008146783470933026681042166140110743331406644239390428353143782398812252894508199571230460658437154709193385965680485868765480017313477250696887048819957936095773454952749176880882474576215550266064880567104563920120987059079847285184351017839747682150555061646262953251730718193182644709370294982647217720914032534936514078828963214567646205355658950694151965536479910301589354067457192084880112631740335857757682789099739799736413568460418170427242322463911578800526655805771458326948098445502618909615519495229117221410336143550870281384833531204578218232510975601487563633871452440191392799608585326282564620096800146912203339972879404037058130256329335279091507194905956029277131946629997146038254421350241149473413883354966564378091817873198432795749481284488563260207899616867954531410122216593918121660102495673286130476689358962438092288228746125687480630164052918609334717015619305056227660220997402576425076263270333679651630945235740298215719740040434227847454457398105247017571277749897869158260997858594205635128140984307228991846661072776874077319006158255317793922572294970530277222539099410444849444054238897147873318297762749165762263924331930238071994019384928168799466599022855331237338605061049042092503241705537605554097323672936798719896278249134884861702359646606394871287059852661741206529204159881603435677396311703015549562191870486953139769109122297684020557724141656160802535265900289506446606575642375307018822979830901344384121148331529470872741105182116379534520423353175850203620010255197915056615904331373394412043170089782691671662790384745543316218246281275850422738540905721299831664143004828811090246346418202084766437627410565632555924196643042643432591185483877442807425257434609210153318269491564852715454189829750022836448455987196104490045439680368725077389169889996928588384987939308204583122992929544334095378629072812672005650386721712100532010950352274545977916594765561889963909815180190840642024663465399584903243268668030311077643416506014786083358475263130706688836689607324881472314660605390701085042781584184659854290930165202337522784147377227172513608157899460510391894747519810764019160651426853390027116189974562758556536213816463765702662887593768631941225523361268808491078535983664853537940892400066256774295703874549227969872422277302028486833161164143336189466360147139392005644303339455171386881076283934143983822167710720831978529039277036871109697869576397739209095704750177438774844005494169099982034181453776658510238227090061783496752437991266059296356209599335892336645039034736589914735324267604207419626499495929019540118479502131327360912399905654833851862175441360068414831797938318778961674233938414819457104384563742049401775490679071709500724967923274256211137812367456911101158235546609091677589542512747812575975851483849188538653686907596979267032151575080376545858724819856635107102386245533115073862070021445177554999659633106545471191394924670512464871881423583063375127014555002650175861113197688935987415730033005070555479268739141348568815890052842764155667433071250503262544227893197080462958006789006138638698991972334749916665763713724088240858667418480404358330291937739440873057934268376584603119599257419006453156007417449748512191863248107535111740447336841662009130603037880095568388417231612703113442296518135563058437434384481319032327216606030819800667724617521495356894892427390276690980174622790484434753909349490419246471015081410042844488750979930849216597137588162519447166593012277014710180123639024567613188196394916693790723952667939379223022053516397560864607949180742588618053653682629513429987941437285054119499989831208920172810074351112628900264994411075762233942357619228882716781593516057762153130281467315658122711312497340663133067078769385432007080359657896395913745482618277431934680688146582318992178235132389530141434136312332812808209838908826067477648077515305449134177928176500012497942147239330609375192095507146979007566757146873936825596671218103410101927688025090073203850525232347943736729173084015993675778821128637717387025626418658109700988377748613984067529662630173757812790405352171110281419698145446213069681940440426607727244261684176767727644181808557943672430739001412783507862622597504748831786461355056472326167110140725331673768941138015853667326174758219558537314048359908206671201368553010208009947177519103720503418751608181470556617161493341305554150477848884881878651682267074725962818590686605123998137245780783573175329072338750345939876853994909969825844604850695645074602763478409149719751601179737514702302964759770615022105335849678395183027816251978678676374559556971777740438112233008825897950991156097907827424129705265733107935632957846769704820399915061440114542071485049122372823138795756313443919463987424920257524870237509991506980207386233247386634629998105866073046875191486298868499972480656169936361560974282440223203080474380677526123643410700338524956153766210331238327721623186918975947780873794156401886430127448933336251383824654815752376998982785913461656222091886454963506722453967558718568220528024732322253829217307125541777699194251350473695864381479593958724102745239147960012077669985245964850724335055806477299662548481274047805322268550427576667595335737821943937139700929950102667042540326471090656770100417956812474286366200185902275929729057262096523327690718517033490353788337527055929260274151708807563720940085774433657157471595031922555325205602587957435643529709076535668645416129154411547644181804450896361276628864352822973829211434770836059158891754555645151333185944113957548181274377483826028824737259743731126672692043800216495585355220248077933174383081747217481370344200580803601788361284227723315047995887117304322708324369965678017604902977714180518944311282172931685732089112961559280113915215213572680555698187288884876955365876028098947459462087200072010196590662275485065216392136606255842073667151448476956187683303981725537048409051669223501321190241557466509843279157638342803380278473426712743154464386857444007352616269600813632524753998699380094100521198124811084574873897025148367291289735634344171119383986735550490708661719007361536771932450249913676129178565686891748299295695681343314051589475588114842178070501560877851932650753401360671268117152564802511279778094746425631302510347310616460412768055258176425052414142611447331712373538283314612402913165572298350117688950968635364849894461437675380797283646572126383968294575988154300500146367048469346201412953309052273702789643414960171021505878603195029494118010352075408469152413018120772787939011508071686874936294594144422766052464624998310163412433562432428726766549017518723983015189382359439944393330006993821882615290096724050145689460863922893692694135358894068108305782043713818563068455731832021464309218555740264962092180742375559989714129717725551378834224373817491568680656473749031512350595344191816307757659500049790784617461148483406798179540580442468737389456920478618680845001998699308769905655606451004857165998623852175756475039615395208479169380845718881330891257438873295787872450842357862889304620685550412770788254151974191780731272238335548358826149739099558076093191591063574581502117212319866270016907740450507091729134519475825889491744585244943921691408302976787839823922268450454280463921847668850947877251482079509078246595676089362679254192558346035729213271936963349972130866108155656526236545459133311488151402130307572381979316881944422553960697654856998888273724194772469039410082299153455250163847932861522400337499677549992700516822596150042430097238185447601307315582877198356325146011308618749632187692287678919444220409723413794308496592034892708942332526779444925753118136760044816049280371209170130651560852675076442418815586129343436062345448947395910170601787822054352709709586956040341049223188589988650950307917149065795297026979674554624598518286444950249465973056470485543913817604573838807044627834146303035881253598710655082336223876496006877135518701910189448757290516542704074256470557691955846026003279857465243521444113881143403657465677648886462551830726041912672627659712268130341118540447445580640959450697097922488734459192411232736146989350803045909809617556063668468558494764926872863079560199376839189305257207585234543844801306976785051595919642255225060338914183459596857706154760872071921287601448646191767363711315260234072444598732792251780753141818342055374752301462801595118940481328008667297082759932187193550342298132779005135703114844660551812147168869863126220920783944223561910002675438315579908941576265858369804303756966905048390026058295271263416814448213002593507866750735625902172491282388596110949483348288798184451013276072194518294513071107050329407498242346663369984580146121761648975721639157781276346633677434653069047376467232830702618122756630583405066495394107413479574861718218582589907435631582077115618032711127103263369573878883886722547566525336738721737550785124794258490066571829241235539424693699772998263362349107428962925551949793779008800322280383635538720711690832153740104281957086591289292787069021721466748942139434377351912486873942179282417077746830995312644191632776324714895215082612597175946040095379936934455421867050338096477589616380366048925526801236140880057141318234133820605039175351912559192332865173963168757562500424528805310152550885746636238654615632059429191210663198002181202537386402458247960405635017250707562671519845393341637229112124531976585221410596721423076983011617232833732004404469435705893777618224721548870488232866405161977224027691360457452935219839468955920458115441262891940189152290188957510485328459349111361076461568372670772174826061374568968579928873572078630477240653790167286248856925470182594160136769017520958105075621093624392071396303964148260409155102564434202389456224680864756202804055480669507395281476291206916222856528789235893144846706712451632896041386685001806178730087985317062201975609057670323794333976750244006756425201534379324318929998365783531538191176963901694575576775124389380554987234176428354677414336881921431692613269686875398976819773339304963552450630327663641574620647527608954836023758985615724786698792050562471708713395459158925680450140151799071900274345473019403009608939855320962934769384531630949053961468564209008310824924004725869067127007854113512712310223869573616995735535791738523813809206781842897869646469374170476383819894958699135667486296066006898490057406767476294014382874211594956209472204883159138907046372027406034397393787687867832137477672769936316584890069432013826685722963335309669997581692480579786277664641439009323542079053731198296966291478739956558670463949378349458297769572634849948541283475642083570493403846855605183299932095177699875989388112315111843872487637658144891339035784965004024399661079800579474832155807940740085699731925330977640313704028333873216010197225533151524523892737478390287238918398207968529516734104223357388556554932324093376287181477395914067473160834681487095367433421750827454660727319446007396077232684699147061849991107064596095082106623289646532257620060460452751625200489724520876603409936577570589630266130934354600820304819996650630987362544205844456210103159161114466621635814823134075262661027918953081977407212852281156619671003396655264289403289745637342221079884164038013012185486638767766294654690108319153788765576591026542590648372062604414104916072808574027485121891692440784818474088166942724450183369505967204556194776760124466313189323896337349588393946136138340704683307002971155337545044052695388306381807926284894177976428670575411201750994078592700423509534602423509291405033520893566925232434701126577559834289820464144400672696291770471750373464063995184307551332820363163626554630632812247392809882346447619336469635155326093701519831863678783700158251376524562594701646339642759585330481308202168413390409743167603588034895641214431422262788896437670336787597943229422657274162438019648100854598228989657573278542442572995534382112008790215942832691235079510194122784518198151337346382116864096316471965183610777704464055958321856020825544210632812874307602685668578327818728937800578578672600219764772883790241751267644085512614389698354187801552968059645033086154975600357240312391275774210323218108716149450864341813177630227162739348290864441455664273243152080209918427106319566016286884720848888746378881146325906192621792757878605960868309255005432886664914470976715588190000701934735870807785853363755659716486246311625489332881729361520130384086390936746786423904134859446092751215566670940612346755438232832528360838684966528992196489262204414159431549269439829196715346758980132473467011710992347961480046963590834174039036152049179461411977841010673877932062161308899630454152876749246008070470620544132528126129832635830724570108151026602273787049222567381033761640275200719856073559598796252369748849254623101251510237344208939391265270001338412180406848647731043356566501902450254973426378314874141128962022463097026586541334867433771156039189376449819917412738515508460025522009059017652750999865417034416032789176885257611914282629961320009361513998061308245464193856708103641588602365596346600190224224947336012564228520518457135023227397142436570139494839654403153722132651504008651281445561432044442985460778753055604488072370936205026128679599001399780812745934666635610248157745371065745694319834270004656970598946615479913695212818345307904041514741246814396528807937565088870715186227566288233699986256020422754019709326585124928504711920892722909204719681387062774140577329972992611722194142896241608321287241057490686102221831040458008800947778933430784218687013712003834977832020864466949747385361663464081776626729153622663516790046011778622596100838586847908159541589377913266530691658670524759560572537399321438850211259434757864882401675466599094151825250420097869673036115016179804396037445774858623649577418916891486035444710590437129784909658141772292557355533301912550344688293433452478383787784317526655931288626823992859928195212658564222293926838527958602066478405984334270130606264043166097288254044819214853817173335454612288169917898438529942776812590875878985245454050429461926240769799143729460956650926384954794729486012935848638250847027779662524394433299895196053928054242621519707285952404782829605968156763252367505257674069925950808202100028782765945397348827466874432669695562483796310526647430250189309971335705448216120717095681679265478221337011117525440804096802497978290953394803601393397424780488396507916451506038219160498129166403173338801667010684269465051106493093334052646799595270230707096690127483436745495927192735369712884236431780622823724150966528319143919374305586550966242054153239187188103825163625978650528002790795182419221678378501218759302062469723496228660990554192914703389732443119553332877090080995656151653090540930368338688616893879083653874561696357768853246693220661322122880889908818413043815518833302651159594645371952065667004267592621895380183181151610304508232682947243119231596785058929711503973269556894956842205934404453807916725090423824241274712334139696722669662658922987138367306718158244821804082819757186090074586588887158025540778898836685451248074399176775279233094388616426935952848377027139293276589656676884321900177588656970415947627615554813692216930936480350804513757492183929194435419402655764333853771939628904541809795585357829536252105423248936793980117056026807558204809607852150166718379846403303355537782004439427530435680914108880035849711784344161492086611147959103348718736633222749437569900773848429890038804115055745310162014925131511822647850840120255757961869688558579897196992887424892184267072092007227655789134445313497716714036846765960176945142153992948607090925562056928674647984882811889604566980428385923607035940366678681629068857496636465471189194102685537331266523205762756700014078729266793228041733882781418161540664000368758073230114777164386637461248370412882252476344266043288940140138186185275349447525306728169171545074836876045334167027095291620178693925198834122481318988592136169763024605859790768852368111638883543318024424618409257851401255129400546400953976108537889269319762175701609389423745697693989105347740101319076474230128155464655225555859358804688808721832781448359898957500257951033280529866616644921313040463607173616355913176203796310023131527314683260302831578500295071955955925722994302178937235784972547172433606932399547483074507841902643815883663803339893267411626803567895419618723083616693525109907233358629584979263111234569376133218524259445921506476757072095361740513189554843006479536415840136987904405154054250164182241720440620464764045936236718121578774624231384812035851416358277078340359271140702224730455054377204074050006293792715620849534605408668405936400056206633328193764580427288677520525914294093677952437021998780942126504438074104422740666669419009934254779030206867079549354573983630507799129421434330262275318222892328890506908256177805596915296166687927804091770462641249428575437827957217102145830333754823207058420031549031421248332198484937484337525240293715769065530126547118995101462498978254470533765241248024636208173735661281780346712030803542565189348257530805728321001006754748497990834548007351467155873566392611361771039198590584498885342764298831439187674122255918215241838862636110267719864897520330222219660426212428086902924422857792492632532295928630308711844115193438385525240987829224069825999129791826841949764461233803546119427338523602651978322853158553097248233352503241116637612075162541459552001261970042423908556973657132355532869269010892356209906669164871172880754359505972183454805213026598916719016249716295736488922505581881156829101436860076542904679080491973541963738325834497693996337673844508512810924836827699725228438233572612334392537370802322094365772795059944219512021528979233028190622522004225845932336910291121166200813322637670791185969135969075631641897031511206513639384840407113133980494582474839845697308256586018624260916112204245785528947932542428952987849785537488807104071737265293959504815232221443717266141993475015373368295875585044030026382891475514843285812126536593863088732892648235845427056509788165071288246710472403604765643055573245932377836380573057976270256998025365639877422081553582882062440998568995981736706809067658551558605774362293496617414069641747861575802855931235568627175680025656325613591232931446076116984597939785478922319519383192005812785265741314858309674169178761780518380197867530373437443048860303055659690359011246410242971490594620143248948679016754356348514341831756090219606460540662795253026637651599444631799027196308807209450277498663796061692860087928877466268443607367826676210641328939376111124375552767195704918407842063761790477474126740253217752274109102295546869144443673486628466812272133311834531040952394121273374914093656510650081155170689662647357564963629353353877461225243753310371520735421279795759527511001517522152483248697578703409877727429462491524217033158072572762463618181146958334581916119461492244217703696343953882192452228797429548630385305251474962063586299390821939526853529874565453801893370383684296148993729092754374601960966031727732700804011241736415565917583376192398862156469801864453605184990285725814840702339840175846156904105912726439123665519060996330969722700617720153339160654171362662115908282558132533557310892633795725087838901844310016049811099103747420914929034478797506768078989884610404960393699085592905229755769373486081203002747714745518087422150884602965745363742514777134786979520293141223461526626567066216014044966619772993610480382870548005692278831142586019962868366325807122212116504734259304652767808380196673736494606225136135935602575631242773010569776471800433789061652532504408500222560504968283980052237423035374552601247910039808591116134542973339696050977289446613758682781239117760285658845022760696562189489315090077232235867794755151548292627262203317341557844278424786599228388126534080435524153990696417194071119633283020860995364417961625768944859090527299453265030472086838519819671231033771476048529281779264389168919473944714253357298196018560088496990062709586376510315560679050059651285882090738955190186523989653170193883236496065556488046232728265994038763094218550525049718317496763263971871453748598408990702146985419058028880768414911819925695344960209642072403098488557100116628998166884430094774518107899413283929291322099029477354277669390034406671702476323245258289408212889659440740432570569635428646892667558810460072555817971523317392164081146962955752681900931147177558377467578127032208462565232128654984399339795449174683836813847699602599339994131431911260302865018556535634175612915883095090466948079206286783839467965108428136544261111408108295978788943637194462169302187897341520231958777844317553313612043550027284925872429082685865958520595057223095780360663485596441996449565638214194900528018253976289475454277750831074408378936497434883550687731603109977939475134327983262598611422994759511870851791003944890700563053249129333052373338817142217074165613381062112426333175151589593779385045460055320010085699171404158349104875594227033346278204208057790929299475938521874130769740895090324361998610325707391214634047591510941014556835638220714353661214140705520803096625330060849988040465869325062410982499636060335030020927877186937497110339124239271956598382148885235606292965617800167755483297383977827717169709543398354313703331528396680114161651900340631306512653077363017752867120392572877802909202784398932275999304504508179923556123031587986516631617071450833346283702925111178446986669445097930390797325338368896453675313441099570595027770205502373869321759469005157655298148438328219880883247336452843987116074000543949561224426216893068728788476677483173540133921631528005277619650713174256259521004833759492217057413750483986822058775350364874842723927258654272195556951528105145269898377805038184374638635868513253031703093859758580522305357118350819913415979552101440787723712490765254965216408672899331405434536242918242047629201532933489569121439343210198088584569871080925187652218674509240065535344318861790290147562349840932829929675379050176331779051363655909703165727572651687607443308216241449132558686445776296041905958322310756572939366877309660969691990531439289469406567086389925308875664245501789039217050250182631614852392265865999188515495070409428884904712648652017150791109135741668230827404691009134028490240132321941460273218395499048272599218199004592522548749701119457965800483803265690441320875719993668813666681345387604546959383562822293094188718103466506079394846519689222023657231567099048298780220867897035602814335640478529562155272490352458185189264509992881502969761218011884901167562189555240713687474258142661919611152537645805215831001860476977241735638072501611817959217599460103237921928003038667896911856511616949647876326066901676267778080612536811138776515301978741822172868123723461741750568835572344498679171897574725052462823279931744918095869190533189270148566281951841433680221836218926380815015804153568948419625555785797560923260987881298966533167381921251688803324320383002048777993100686981610772810708271890543515029320859175876777386362246136928498592809853544326741716699317617456340847220261160694027845771585031850710667733619863302271006101121906465938277523198432261775482884524222338686233290483208693327579797097407670543033774415790033983244190345004329647906740712099509908589627536603355883159016960579178696322444108696668134109206217255882396737467478287845697065377774455301317050515022144588527546008100866419088814689858361737844352295415707872800761800750970503871728039672735390019758864461055409417135911443055165304942647917878578445555818310715470235422267933352088565746477817708874589766399710060795216796377828388111381573933137941008785730577483332896376933274631959471092143658409686322224927791293121861466150806634814793507378513519949788061563866388221071273079842718548752072552653321171347309489920295210063533670054259616673591952189192294454223779535275589007136709809433646459534266315187370833184684948164712781148740136910314914663618845139046042119995386900971882222993700537751138789855354792734271825471551329405730912340717336146638722201494182428782290253936674915101819251207584642770985911470118827528015166195748611820820915050953035384294451551168604381895739949618581064258876047287139938316575792748412507325366474741475076976234584683715982323767894136629618007132373007284633022322417935243710749409599373262846410009000131334979397200751821199830627686770135470716356423681981717954659058389917779853935581245374379078695215186445433817285384575156586970312591526151428481187461282908929564565926671684760332851373138826584506276258611677712158384184431147770966817933383703937320409458075238423185367054026873690449104919488610833705749782044465057261938335006902536967017262827694427089529491247206269546736535746863711114089372195179992411140907185268326906694839590936648740678086057364474358255942069939442254595962969243810300412761792930878791503073037390496854251802835784852263604618699358541644552616911681235637426324650080623510522732350668834788194277324205496210365786756382090695842808377774853498588203053725123439334131124468763432919568248695640773982278765772969401296987008342246964632104915330696832350360628428519912224145530361673727128263133574997236742366745719720020269743776577056466333041937703623542860158743292461020003296344115754212176504932732508015482540578355933221277202988808854421184485185487224347973953960689926683619134216158206484566070794451247714808449390078498754772170697849551166781538164472246494484422841242997696923642850673188815808918981852859649672881058808546719646694163288123577461681143475288036480086969908801268676506299177323288197694724641735583413928231438162223315190816455630418952675941108651134344872909317565839609798341380751898594455678161277639364646731021507651563015853667904151361491097545465619684534307260058306698574234862840176277314043743909687421837341928405957932170081092468802242488051279721133900206825336867065165371988338977649035884952462314344167002144576922700131342745572236063767090611678523268614973542756350510984793081529945987020294757156422036482336579196571897054003770644143215274655239794158115831968934791426438537536642931752972470078581290687517607995585866671075083050538342288650320368535771263751145451864667131229232185593195119115716091820042208828982684142590852353476992034302713122821230925755286779456066688541617906260862873483543112237139437335140253629019163342257013798964761993319950497247186538737778727426895195676794528434382368138802390383895128678762279561838511414375603139482219377834507925050988686212085193148639067702969773538969428226145192417163818902160283634693058423600344267324836779986259790965916669194509755305566012645984288806470975226094816365900542222314294819699017395797143936828311263151073135830493395507528258851530253777516784022769316469758697357794355287618545997887272865587352715699548169591416554617503619277590336616125618941239556665824181889971535265415925274060777391995723469492043886632946267362121644819377035714183392659195242480733163201603992776697149095687722451614889850168150102891115811999128641942935166374789936080448848648200973798088983083623611968473241748569011660393776884424047603037766631023239291432806659318218871565484072145426923270999059883966070955893766917968266484990440732688660222512497926036064614595476764159130597284249917379130341437452029897619194745019825484109615067878582363235105917106010446228170332444986998765562417872853868523544528627264485297516675653063081105433582034618522430344540985939093112299200984656133837049387085083136679243907352241716694025260345954208736248364050266225237200252765495256591641304917930802044037655589261481263721445040020753581196866853071222427021264624907922144918806272695015322521727326522187458254276212445801296573329416077730172521733142189274024932965285741796849206610653655760271330730611652549881109126031296452051174147622004344528336539829675895577417488002553002340846892724026275201575393866152281269117279314065127542390399891796425274634538755997331491965615524546871786690656960614857998440135593922121572005204591227788461007981033728603764942043204519505857732212882487984735546748659952866191118630896904102001410797309707555802114107253107205703769197453518454568899519575618873798815916743541734114060355470474523543950283128450155424445437998720082024640928234724868816467842517633593108064172744877956360149260244833724361645073444657073827634523860315512924918395945553067631726773144090976462845980163413503364816000862791787773023215657107977193826619864618776304841831025857312607440745794754868335264921956347749091280418178179582026132477833535961421947930802911684877302365130955443032795158794312725841997195541154559158787785178411658376205541887790028890587074799857190622428501771174388813843078656611604827909960133504609265422949271351642487377572327350328449446990658873396907243131729381821326623032443694382602507845995860115423609229583796612444670885713051993464480503697461458819403373406447374535490846898063196812312851536341935178501139801961822352290474051537887560863068146818600261758479095495410982830381496540013402721528297837433127529578472643182549496957996837428469129441320986882677898172583768524329825259008636237117703598927991550418548755563918126252051892160173957356377145633221638966233851705115280067770660691553870374226774639260634596620243774672773089234060637630636565230113386410590533626467318233159032733754759361973373632357346580060694793622492547216749461790293660797357067903366487837904969936718917707828794563328331606885830136950505670543219899794844308790835981626366936318312789558434200597322939773165736495318773141631352125655580872608808892061619074170605495697011094593775822460456932578742036994582921797557273294301556145546540126777639368807886519833929575973848521425502262900664541066217764875741228478510879866113874421641554017263223712799207714655491443879301729637739283982920571418948411681833877985711245665518426914397246283099339901511624883305002999416205977996311300700246876810308526389180058223675499501284604313758260875536794937029329524416966413292810359472284709936361698262396049911510174218081468196021353344596657414544173918822042730885329496006845450486981707616530945353550345609156268425844534265430077966815479230321696119826208996301148077262936401113227724339335059258179789502030792776078813500113359741584282933562868312399003750103137650850576208904221747895160368069248924194943707219361243888978849928848967308128640700726749367736386085530340798704886805232711525295814135753226580130338662221164465739497483829243550563009541624055446317036602276865971328315707192885936598255561981164784772674369898365244815741992992978247106213707770857218667077958522157485545324744990787887832206552759733900437014496324593693078323744236651017830739363080410179673668404118448331934982801387252199587700829428045878568526207153512158923619584579817900617670304856895659406850494058018628040813144169152011941511575224335228526164715824059454561954206995513887945488261050051069432492289467604746028978915219576045116458320331373884255741093298805535002248912024443537867241134705331833169665123429071148712183143373012100893992814336629289766505532557643397850613932798892680980004473149141240211167692302441943631336625811970129822659452691448707847872442922970115895349136327116119016713957901362265940978008756050077623921157854847657113970182411634771702875918712712587508827114507539170760851893752531182618150910706482922567814667617534260528516877545888161832785917460936303532214748632829937786578139336383100880692630581937228516635007493096755763929010523857762340926383854633802585701974802500939728839879411174577295675174085417272350896499000123944753990324699211131035091487207991751942836749764447901912337399783864080230166216592801681558166358091481611669247690858190530812674860201011791267832453061790900694559560344263274734134682374110219762430592489033716055989341235903679164116859626154645915938890111563069540499015857578273591322214361449818202589373075621297761082300816276201990401912233309424654279640109503390042941692384719935839712013427592851628364818688005090661524027864028631242658669116624062181797869122800644055410430357090132137132950888980304074067549247544364284285784051759736383251865334827107375059850195013289605163267881952053505801359867914255553780285163722357026390188657336877961107808406780045816555592619226362777065754247081743154088760469528109676374667649365769073716998619285113847517044774861698947620765451085979086237809877058546373474918780969146749594874152985837890477339170045200444166438155322584172951509261297104576897593381659517787817417469976350229109248004751937009968614637610070026556968930741024271109385413579162726117201612586397990084899256185292954734413659826635557310199395408557951668646322985321566158357428522135128228878513517830534661694751395487977256251668872762731193800036886998688385510030316836536360712261766284078551285397399861840641396228377872017522821706923263862509745287232556700907660167421020629340658552017919390759366136037109593007610555760495298796063717769141386959664563426375997754375376384184217707871363802331620171538433866245466756668679052811318365865892239319469072791641481583544999602775083950966872824759225700681287681106467451947923548221631841446333837282358790030910319655120761123795647279979194129569852028916720094842442066710013388418327921784011125046611960709294073332625596046120509992196152829448825097024446444560525375250391952169432646092214461454753276743378044668127027020327312425069160732619488188578066771624789834552007434300755160560859184269337547832513318388115569850447891643581892465226263869474876729824104187317549150338670006936535307848460337703280696344717662098255896774436044416589225017990647108825978690438469724963867245153383678826819388326692549988247193164739003792762372224976272448456370531960000736295886075826920856696081953438577761584394620910069585594520693003523407259639624569422318399965488058142619364305427748751304397581819743736450684536493693754298428255811365179277175531228945105319353178555279327193596458361501159872308994888596994745820802250602661651002955713965385646264219818178478440219427680312422532029323249262919618872877378820699510510112918182710972693848801074883079384568811486083344776073028607123955131107794345961754162136511828767141066967863718139299276941447959050685490152393776682537855704327897625934235176070324053475474877538361755456164186216864571737757666838245401654494735514778546561167088693301555169132127071516720460549846619720312337848580059107933185978681865489983616805120494178128916338015761923591586743515829243098782811184203786762707817597279532809451797262915978016382987258128877585671086856130939132701277643071036348365146833415388084652720147990867433618390919516461518758140034428493351090046947169304411743234806053443968940340260250222662063102871414318808511403506365869613156383140502125637701605084861975681809308505296051322511082486268551378456046016729583239100054234017137273341825226479178965795538003608854583261124495417075258765805933450696773890461566877099669903679679881717504433907652671915455723029621260320806752909759647587453949460967279635006875519310438703617471493362940341776622119929821094390140357631752260176437344905638490780555960685467272506203778183250389552051801049374137146097785775962038969105122355827419050393121080323134033879131373215350360465302338418049233392562293757500177766380802119949922603136876219289796027859406159252950567551115550534188232415997754024541440664685440979947387925960659664004225191159965238511908492370913539686729764807846718515805860711854854719927703452128626937123133185176835286342787899956353626819656256175406495067104370048895195109873528851758628332451882884296344140568934209021643291574853326619143605889713929119625787566263923790717425585443932339004203799476797993967878506995292979498610541147817627906344612212720259528351372896011903825360814961661752746987328743405024053232044196176603495829712607879311366237680772389901737732641427410591261947622456024848649652077270904738859048560138776971711072101288969297324287717521904560484538290367769271789972446052437592926084314543945942057745544315349515569028378427476314575221745598072340869706448022824638870144282524914778891005239719270023017963102747618285539136208134074456148279646452484525542008337218731174075866546624547284562036340282287763216726114696955554150723331307208351489806599804932699814266077467561691201317169964265051318695253445692310532349179537769395558649434991319677916801329996272178259995066401599133550173643812666803671362919032471830937438375650897270903104344757358796542551233529001594303452136148200800647239766311285657032013507065264048999882687038815707910418635032257535119828877806526749064063039488476491351574935105303758411498445118636075022897789184208375135567612897990396656973778458423744704985454948887610255183453233870073375635293215686031666278583766506188531816139105897675891660780512500843311880561887763861168749819362946324507597605441937506217540722333324996482412866986946412374478935472581726598449638149927589871730332892648831206529587363923026972809901407158298060168776715127140103202160642909455083938663197293634171127867893519167854161266289034874705345640231050738090806383001523951604167949511608964011483823294646692285281967152901523782136239768144464172435162728415022819356742875821316852083733280497443709109409281571807188277284102460861057322448028387652523274297722261973970398226590902256766765978667968481425802027513787632037386348908065712549046599035168398494406579099676446147998647094878016449628689609191803875569121171033784309474251682543374804592040977323273279211074093365758619174459926280789857041874460076244298593880440789788903096736949748688067975958755101147262721722552113997933935385927255213951888192724370740372744421695451509625074148205564722742529171191478366905577759457122839475715666217272455232221508688133820984363069594842954141917458426744810542805690353160006063868730943611940224708959072641579509106748469042156580221887567566502195295135026428444333013142968087712947020469540036936001442123697170175394105439594524057588357358866251798638395570265524929468849222613151707461693294783512820297560466751039761506591255765228187998223389895896321279401043153714598597285880250944220593297384256477311083560572870027278140997672285569432228769681891927381569598173406088005329889612839153751421562138610029902385007644842107548147050953698698170782727679278773013324215478705270362123838781763479032823826330846369592332110368562830903196291130751098328075909765629060098676144145246980000485728374059912624025201596227346981578517693957817337015138832444368613963256112008477228849378883369242936258147900337675248565101793647609513734970544438799226343796087408358675373456031352253365448091124178754115833141224759972521891110476041403196001870826836390957921390859971956092719451372610043424121584161589669925010457143480403503910026467032982286378278790434745828312712500178668744168727585846757095638067965973032802856448726353384625738646284466536214800510964234639162137653261170728372690731324324003661512415583033332059596437407930602830051934143856584473364494072757906496675280628414550791706361522054604794133071199963322455061603667053909156419556500111467288009613624038790841068801217137386843581651067768608536155307195687228824786427224472276772855492636642147615427635034298175696122504245843800371152380575031760221551541957755583114104449680533379292097909099743200026170157061602576545014075720229967350257984344395244595681781841814651278281761965975068612636873914874718558652755799672113365634299191720999041955471923573764095115547472588694854089038546021983888235881421606140929942614576697714292277679719146596261886001872197744113191859958993538579697062483817309847799406356421037941912212856920275913834675779748471523365945544670046819541978162595441372530408506749904629035523741710258427410469145923332796188439018814905344322590256310067221452192784464806727047587776930719329591083836694787745278222681874155275281302717638545714207058544845058957155795162526125983323976968267262188850506266549141445036993296086587686002466270649148783275092981120146607800563161806772250880634141740050983946677625240909240424400851444831457871981919365668080394543790749785363982818607332544665976357608386661471454485479135925288433034480896657854504214906523504403968609696908237595256369657415378941685200558100097955356420764845580366400067947523595981005419641070700945771345617932735864180870077476488485789683400314261878624184551921868247217758895928060360946184664458395923114127384515628922114441658838590801468347791190171112289692816228919211951062046654030921403726072871386147851068583059201188971996909070477214401914265769788860036782471436443524206009613698779324594034632929625781708751478222545935571851378744557249606895892641083154781860852490802333674067950918845317102278518488144312058438895125995229983005619784097457409490726085981882557246652929480939822045884792891765945886719807504741824790703983025574589066327506722009546110555604936493319039237424284468173423909368750446936088531327936032562988491264228532104274811501799268459081383888781835715961415931790600914716566771000230301756093636429972137133114527787499272067693046547521031909924454612939989038752407114592040108612607672969884799555907297981228780107653542255013618108879004597680420428036371381214455124507755939662810119333204862730281511942976888412224428211086173289645514919518940235056361068285737666241030698917610867357448946389874286100803597816293311613009660849385957144397159631528326691431629977908179991774685908820207984415295646869654821446155649502045202745584240845182748175503509600847776279405937456480201514203002300406662178325420846168915212835007785907128897943467017967813671970991079233121887564922163237351075352520320781145555055993124916002369512938479318184518344689871748107940449317933359787581468931069042989151914273528503515364652860018625532592913780844830077555305652584403709918405625716027396501210017406428156849876443038555508121021859749198491762379460375907509228033469029235320525213367233760193409793948942797907400079069812166437588420759380915169331540993509730242171802722919469565103977396583126294643719894857720949175586066269208537577265229358448590818374537598185328177262544444956727198256800736592622653300991176678859357569323522168143229204624277346267552590043684750676387515301765438751347195628877431590501720860562265749530708687820234063655663159793737026156541341744692677625488152613479635411989574953297226314895682354260139255574234759391773408379358540456592666061197268514546759074754190733398470197852187005555070226810872381090851170230942543902038901140162859536485488807668836594902928920637638203690136520521858431447503803394512826950913819006538534510572855897178081791942184807789329225261399746762769403731456595152850331998455971669828946340033137639319848218388809405016624838317695547287397310375041832723269729752518304835255395874397811418768451999413822618377478519890587128728668118544712802024098267572781586239446424404478407448817841904202301200666704230529379220509539109747408360071666051384783648103360171429459691288066104209519407835335864916255425236249097413165918311052085207056459861592899216903913780413070978418630712664272104850589889750489731871760902152276406159356393686264831610280211632671770866263145544357438703733480529740461035647202345319585964981796539994026102852005474169986458656112057486033247493830697363575804869932691057918361608958906568641336546130683642269948848160842719703455247697073276732029464653500385319079011424790586067898039173251046199499846472664472231599340167284401297032926052591617010110388855647949271325256640944141067903976831878029540338557618837953397350457749760904276306566615917516940198198015347623170110802052578177966323149943584215000298041082814363773716831242917315167639338178215398786920882910571476963774671491329449342795201471077433306759627232938671945943679412982945809507302912333306662595427123919731366527121772582493671428251865421606908333070805045147537287709763178537572701840920663095057646255179886431100397585498130759432274474558760232184462876108774275110009620403556012875979315054888605821752502057404419915248365644835961004881170627799916088662058013035901652540931903008054496698660036318570475681914339937771109700011942563139733012709512980763029118562785004726943003190516380070906463384688182544750072060973321128612138183723627970085075490901426783121715224178728075445043324790966292200675288271318917612061447486830004316163591497660353573416636580228246559359072222570058661256141854633756118511524845154145243803942895107422585473222709780362070187811065898157401228665495874900834453892461916299936144270457357915192545237640654249022413394754683384266975528609221280234150473733689063764755647892778014306569882285176582074506164731303010627747788198325590902810221812123786831287280881128598093237597361746185004710331724591350285846560285671949313505060694244175608312694621756459127117767574325939335735561964767664732099861338084153725739305187503492933913953061532776417193992890447171546660262395438922529772522189445846378973497816593420126805080150686102252334497371939778648074293042990205144525877186049444919981433443541881943345299327071341564484197881908478584695326338434577055195617263332584136997792975776125035053233402969358849767855352680548832576870502576448406869850507933383904094346446835100317869988275387377686381671316740776464074517970490170329314298781267634076508862976675020172346074410219717393996735390525886056065942632782189595220030627057762350995483176114096247502192269886946699879494083882683945659907529830256366617344703098643376086524907963697070065518867150172229759754262885361175934041610854313941432453264593384839085273695059961335331117080801211176039752983138426819806925557266440535652493517385606802283049183779381538559642540899889042896954490404123848374356970482831908262296760896114761688906456859331220144729779818315557665456741454360232420367648757484324460982809936124175850773648991455053135092840223792107250593730433961456935250429657554219169045279313997865027419295017532240763841930602167912367937265267658957021458033037031004697289025368729071236434301594351201492316676991861060956788670875289379750974252438046857038516893714571698194092740600571623766184065978057380453529049595343820363161395552133962899121154128238066725735832574374774578878405620933263248781667167297702250312479788652467179409921030903094913952656484958054391644733012029266669487810897618492684311224155705709108091761786997666642043717650229135884779313141374543705353436079990311181205121134913192687130655639676448669428460513269131410993546621753637999039700004629275702814120384156703871812381377414037346953077841761552956002672841171741691752467131125201224303480656190880018394506470056558315015997091560253042450466998686738239516005555157719983691008537851626710300662192372175620215713898092909846620998172062093406050620086458893923522691772581970960850420003802975369019402035964151662539559403628613725388726854792820312220454101779477512730152310160422958961526984079823521078979885622756006433209673965261333036999282449875971991919372188553047115286409470377919285078508927469743715388675254663834450272211522488785408612081049067133539526873952238436384705420499244046914468329501547651698178154360162000122710670901171713989219539728829075416739508117662729131791892572405941231894079889589696447355207561362142383863531084210733647541965469028909303171763847516249672310819312200221563676120873128142177320783729775194308191831553490362762412297046981238042679272107125247753456509316544315798604550847163015440126810711833468057301693997663817621681553271340398127773100622326750447461930948051052950626673863319359557518270828109719784963989894558453334281482988518705904422767782969195330126796045086868816593375310284548110088010388571688435173409628088212369905647449819357645074319454883950107347696852976962426795563592546541645619544051757810429175789977190537579399694432370502193013678539033488067393083983367037797884545873635621109896269934382073449313478393517711778001215353106522115763063394910617684568412151867553375888806129252483045669084393569047431881174007363210161921481696120109680753466420271076487842035769874884813655104958342506894814284358355315540540664601824617985978085244626299836500834689232883762790046587431300572309701706450062157840728135078853336686678892003626867074511042324843370757955314360307379148848465465988754988353416654893990285084511077914959731612715155147555792355745209311803037236077368744720930783084718562757123161941435663344561392929092374267663271418677167982454209204724569436510347924907926764821990064989748935496729878888807135149507729939280363578806218747791101552615418150054391480561837379484170839771833767906540245381998790591172045499806738922392980903790441704380953789824600492136266903165481820178638019810414438768123472536411569629869059159674455591075488324980098748745196977187488982300136326578984252353944278484300421925781762413565272461289023313667966138534242938973994315906657595883223446376589014041601763802815667105077388359611746162729574688008672851373378117037045418185024109796316218693513030435448990591470509899960622995659528980145323847146007099495720721624810332338717126029403294312735795235690429070869787107612699259524263781150216575263023276922860987803418420093728485764255832590805455786688726741217683661640986525110853433867576883892891213385782738964856714774424349315344928028806271523031191141116750418139507681000501800159986900265899830244085429315273712726671117551940499120893452259760565533087254837221884693136988062504339616124480732782096260297069050826607426214520990895990607011896322195991827025490746717712876731807930113487520691039087401390599507776532304817292341822107415496814830470681145315960764358009992675055209807327612638122172152117207844985355724739951777468013003900666624663422491274880488379584365935648510507730354043854649617013217349009133321893135195361972587183072262139148704564256871706238213876290241488445093327872528598039174935992861367626119642653445792887342980800551681820839457024650420795628027065739974450611802907982634974704546620335302984533302207290664777820128207131465690374871043736151713606049040165140515567537056576618216896991138394582768302665813107842470052983400895324254783498844633750186225444562738826405773564473785320093982410585124384641085881388451116213751563960686777713305257777932900415639798099836591178919846277791428592273697594075992145578486641372471837627454037130252629281525017842413706798319943270158203826642002836307547386008860880698489614389063967889457562906826805789676489576085767874731943413228143551216450622113250507690070964985080680645931574834617489056946881515674127987893885462457021328904234832360001630486254023109851486112397286452969590051671116290613778889772137873590857491885994643421804419684318295177386754581144865021245768014301089303963229866458752396322766466625539504092867389737797897880469868495615678265278979023511675980959958875636678006427840457385428432350568061089111873351772038615896637120290842359272423028593685835995527481245280087592197359144730634091762570535455909408976684629018306074844265863084558125254577524749337850492308546278117921361198298811933947356866467055886701395448386784720938868281525296191787113700022199662641004216901092240924127747460380264364287351510312670004234616089453447148638845816272524346366140958684976517622388489523882752949976190518906551451294798743634790076943770088682447290062639587811589821957135532795091951616344415674804967242719171172119225327602945439537455339902522361390445555407911225186900204578635339834468555466585645563732759226904937995035178786859778318800804125420747251535593042946375049046259019943896563027041242765234419225874795844792374510122304695962370019979174022841998183314257130233762127431551970439912631860971758604006889980059637377881996876704238565912996185897080397902815804599671546188821030432134589721507570219159451030574972884404751675475340430532917846648212562007127631027309680392842912350016582573878183493434360206000018012217885981436796262809461824482575421598633584181101943958229432702341492709443630774469150926858226712059029719862680203172568489589498867701133542203674717870096519703842007628980663481477650496032743732384504667669547873194510987689176844836922248462735171235413143287232958459734187793928790708627068852544783083308663956899904329281385962392190303671955587491684750679568443977498814009090783987340071388058256606337445729026535744693669779498682556925843452897277937657528033487422101620711718703890826702700829393955825772501171429251537870241175965053114357831884018254037576762279060456832190109944502698159434850694836938738247264405937222690532253776578707724565276897428441711664277987765448734932442628997371417373549171504263010240501716911349869205434984357320306802126526573121596776443054913271397539443841042011850129240503450129868772178360197755326655772305576120915496799342511930116645428340938027187637181154967228907180067979261153797870820124627300489986272648708831014951303062932629216778234009695371388629269940278517103170957930278319897132803085926144257991904819325844329767344587556093847147044935226184740063068448210136058398885401720747450549998827613671132866974249421335142208913104949234258127671485185392183416400312778042465324923205110607597288153031138982682524386250958090617471466684108019071363563256962578927379839803429186300840533959055750659121605302083045478592823810158716379518643417349850896360609649685875781412155296372236798240837444817566751238718329420319223149790229612851985583846625852908571265751628442504798526348170399671235976818422719733800619936063920631655300523874683566479663888848116779542896886568130998099695950393139780684566841166554508813251806829626354907048746291399798607854082772045536358066360503100977449100318201768237112024942793348380888514594614818609169352035440389756124442255764345443870949461048129195216272956836258775006012337194626207735096517377237878397902698906973899678651418884194594705444563649536516781025903617617041407586791886141070180657545940183398233973075581171679406244188607715114228150282649816469511954891364405022669309434831310466814383019183747700290221549025750415156110882817584389748608812503261301988076493600849975130888282161355887715867233018719199529506722911985329581704136328494733832575354874987631738871230742069301225466605983454720906932548242360494752219534567887040394702410804059182763291456846938718713466269163173322458246064214656957898824319532977183747765699792701072376904538602788863664810626703439236259327027574152952993562361775026963153230609725038243565880392792127510741938716897865744102071214639474434045999295083157444122062835746436569319410213280663978864407397680498406538950470060397197665280761142996635052576865715658548783090962234579790045064331825841823678074696097808269060966372425839222515925494122653599182702523769459690908346912038028284712569215547621925041359297715057229589983146104540684097056978467226828671105376397086737132424746920232551062522820751097022697682358114032234231115534153178308998887787438355605497673506993786627069586815821377224012156638416006995960975028055097494060058608533149956248602063054986760725404521685286598515267197791857098840267353623054620892072076069789314282389096490396038639028013096922518111003759077915533684020521841443180537718459045896790415157790370831381599470889024230015659429132222985763298662024443396842878019640839465406626956628624821564382142162501089182019587248978885740731369341254980424019776918720866203489392654848861993473907048537147849944406229107425914034737309774806620053779710743505747465262919297870202378601062624320534259108239048089059695499876520447097087711236322110794859946117154599425898746001616994606681293520010125304191553649588583137361886514226139485138933636713113974339140060033504140274282359012000794961069359726153275049933569355996147743022094135627584498338303198365553740316847638884940834816638896207449804664164814611055109348757756422224258529644483528023989431702689721517401149330210416438954303347170455751802351492921675394454428399646690731357115652498420901678883058343458391659107956158355484794493880684963613235828484282079076423416607305776341033264940659874653583771164116437036895958948707867499465669664969153170381096988226165828637252100281843889891251155704229322272186362891337584654449993538707067816284490519783292498578556920546258012010395499184087744531541466193498482783335547497466162249255106501924042235377682786343912912416601561647484500043054135554921190394548733710392138195509838954166263379131246689899402544133737291529285276479186373560351978810511922453871480754013268777497601964670709528877331699819582434505228530805947659234432106030375805875012530633081644983179910053968638937427055731062809362734591676919266400309604474520567930808015513397091732255886452902319727946715210372441344047087500481575074812188448088323025337094983429907792791802881631154187573652728120379410439107837803383878813716616838881650697002825671239181325591596493696608200022058556519948052264448631391156879399151041862500162339749791059889739186588903022134651135056647746291235378116574440148912064158931577054975263646281298977970881134021167074523792453122977706853758983576409196272714235159010638186488632893326299626615399325330400834469055507337634559219847748646509255053545874856339949487403415038862658884017234261571440633127999081841078089505069184947430002101812312535372554095750196739533902910033373743881153169870787036840475038678023124047819107890590996941211822940642101782070835819010188075352423791615279031605212845624136255271401099253523252936631149668115957071398665666936647298298560557031486908550486242332599358150709961902612518410283717676278737718293308901648983158863022342752324846578734275737940437872070266638737258280149753240728685808476210690235508873130436846696475817102347291499223228251324729602737459188047504991408722423969464573785635721041329839171378126429748168405558636212417425136952348174290453919085698420447144962789120083948359710386315962840073956525497172591228786925202587554754814761245660094778065418831217074932996061942877642246163390925470074499712602258877144642084391522016508765855426309519445192535840043538181005092728957539911780683545873972301498836749071488471239910560947618511286231008655234312767206065435586009310627870220180593250652558756226954548705028418766812963970788636728732925116493876706491847755561894749639817987105048429311658117103098765731568129681920170365896423146744578936939845805571060485580735500736452070379998938772239911079619874150810635681057091742257184835171889665943879653445101664969694740501991972861204685734521037708539023858977900761763782943821008940074402672738413164242070646370286719643470807743391287013263533083655333030552244420498294193162751208524424349752138216509480624374692231188103336952488152983317076502065969785637302774271241370501959994148224743694250029715642211725699319671389601274977588692919792545688054728833554034079255957856384383124158979487119062816621674728416449885086290490442455357244854842138265965287427218091621807905125203498045284713759441927073795123767880936111039209499135335406307284779021857822419263052844717926412764423691502345044274746121586848699378682504547291957366021662197077758150747864377749274426847276515197477585260006343143170725786174502950492095312742147620291913412400360817219624458142764460929778859113110526391177074732809206752126333091484701313011772628684595852187659801736666515806624472002036862025188094701720198352515765367355174706911029905770316640254478273358312531697208100307006495510078087858132161911704344715106309842554210602701334550512194582248570503971485006526581677295436945435477102539818704770708236200161469228249583819105045052204080355462500423712621800472124811263307200377109462181531008128473290690112717287581984191419961062263754001084674715334566044229493958139251199183768985464034364193830936864229386450431217634118104265754174562494437597650985323156164220436199098044658605797130042689317000970904089298863734325840942289334486989223600668913015359543269523267102419136501092144545482373538463563286404021761844843966804144840715598521617772228661789828223759027783514379195021904825031741320425504568925098186191378526175629260515051351350357127664336982392636327960191988845661925863319745861489452040198186331277295474261060248295678177345104261307922057156129536830009749637138128486088394552050203125167119444949207744597394369697811593048136369074204845539365971639554957269970631284896135777226060545273218623464136843295258625685267431169882123234353311098849981645908259784741363118310143512845488985666379711888062960450481456582507859393222822991261470105318851306465957168453267164483700151043164053501263873597806892162839678082465774245517468184034758441207202537049852819817874458454564641695233513639978229586129529922066029324971595697341905238761003763028819418429963301239245175797582413442333614507424199555161863528691057272684098164680233423809922222144680969597276621036932318023744119746096549707579041867983400195592574687713363730724372784253360124285685032741820752916654205104522410006594340818754722548803813214170915303338238284133024766154530084131915344165415632288540042695424298088391268263588326985496194692884920738249148951964760322627870830060886763210048859808777698813213252075387200662461385357347367896183279116735857897703256059831268617139461200253861713699351339382352820290247654387642593137754247558804551906693012051668936105863368543505546334248498107604675411349382831913562253148149220234367022883528469174354858363360456350566167479678310384980214708627907700698782743813180006864415528635506563656161773530644627161030666370756827253917452865284896215184881672812425987456021627318256368225143660914135280276973490806279484990317512607244579802404720524888031730941592665698772540342061205695663564854397032666959254748692184587823986677602972094951668179961974112725468888935055624846529361165133232761599258270649024723640046055779510806746562539203846435874009155736666951184306884004461974175022739001925337186222372465793605222828603062522830646518895742899799285372925666317660139498278798889948230764720559095966144211110473251708459611854624607459270990476116914768092179707140131037985874212087590688872873895696111765684888763053115959258203735647853156445450550071387965033296756324837638479471142121856502704700407652686313626204635074767440643347422234172115577400500699388915948795500315453891303555989189386144268610518980463784451617381603533211389534210182744178704442659092260618425734373327636803275479285795556556922172902374655716675204579871383005968621938615810875208000794100557967082981581239836069352648014056089215689947797620596454825592160108353727771156934977448519561763987552831644894486945239016997349127569236926126253428002758229871517981345900044152678687769133589873400172706583551717242367323607893201859653843933178715248095275454225345120450903147702847069789474489580909637142472374911093066351610329835982750418349351742807348834302350620759393811778200745040191693154186760399456213524197546629070668863420244867910036105514695782864014191389992157415454874343780363590851359286766244930133035500249362908221901941961900665350392892703344331678112893648387626595109648025869511720276779567059160537684866444786700959348867426712498281385849814585710792801095965560199685026988225311815928450226675126765699277574515737586472279665692938669511078655008780838563678337496920476844466595355772592475404614714807809268743867550116465960532056824804771609842455083621290006490110746410534928363295247634818662454182452647360049901988960100944525727317248562430491705230005827580247600179042919080007413058526618711380552121108353578387490124218267015360181777944517356508649075460218258199163030441978513648107276362900211072666957083286766221859571083043593184365753854744317991219940926883976869122237635219490353162938284715955566421155291296185623583025092871530342612392761669937379195197462293436691018780493492964116574829114415876140178290759490138020029228222684841514007343178296153808475338522690405035336601755422152323012175051527419645046991872933964173007822829682652434300610618041926049300893022398775314992048861698728187021853966901912033665356847689583288335718094349301650469299205238090850251172599894935656807924840376313442046225471348774491595244547940185033556981074367898876447769580589963093678870590659925140429219405480229136276459411849679426231256646618405725027764801023536281858368710150040971963119485085411737216516664554921797805947882867286906330057635841714979605010392948940629892132166710411955829112189916313411564077997446317469006854811331938359549256594549592800489110264395648101801156229513075537116741929857976418024024178265756014328960744071009892591045989167149507149397274505411739764538699974714674864179271102898894475903121001737349868883617465093269056819385824527509282016122650061708462534155602717502531755133509309703457997556567104868436007660195576154711017949689488745555574015772692059506048777972144354418036701110668494812729938058459152800944476002816903729984272801540780049312671625485337050546160559849475191274718592272086017252784184857157881275459365184903871499254386538035615082124841171887631993569719223831215917013676328789317666918327414709665437428045972667791948294850906166960305555459909911426500807238253268467693176079973656051878732264071068653530433631041558333764188911904909338846111262414525805605027872629314606851653500447697461220182891413906639137088163983077098601644282229527248446891998741015480520566499180202562531950666639890700164999808709445776542181810757100906998941801234591831743663042152634815190337751220086508990081512982225268173736262496698720532415392649141437351289183385975611151780999404710184895396180336591860451566337369888744557342163519246313628509715812791003821217359185766447291887494285649869632282604947885967767676701942001353680768454779568759852157162567179470525136312509773446444187003827407074020254013335082507602816330080056263613292165606581583323022368880853385158815872957848243751150090442565673386661341900351489770359870130376994326454099002356317232381916298296513075965798149073552689790889403050718612661473077609511731851227111320676538435338839777459930451231528719902054071791511516546920570109980945898920370554522273390261780894235270968298112306368880743816505781823526996348564635296549234834270557259046119182882658659591482321309867973689865159538753631229369955279618804929144494210168099254745401832711978912431747843270736834584076214196928687457399555083885120983520511153621750095748236420126973804199980446556060933212713653087631277716480330321633562355757875902125598669656943477161092207801912620355022840572285250231333570093921851188332555549917494377477749693207436057867388105788648626940543359191941014896932908456258333458474714628787925025202236463777066386929716371750756396234109772391848251566868729296300709083499295091128925585997630068598258802625984279282418507660198950317293426712357862576961392121446544657545835714761171826411547206182882039008898097174771191601409066973301605089622710258349394187188180935704971301452989393961261964953814227872408538934819137975623636844444997893576642383054730132157497499532510634091563927744735314170118147442982554045364758695578908918493672938911262413458175978066786346425335105508855859430983064237075464381183911824102509253992797375650559405326958855898664090737641588227638072789352924547332588875603575187530696916234473753857118672950449117805757061847877708662230180474026316428899540009927391015461959087307728528857851558175708862382792024614836949040353865145232094675304540268241386656155766624013735672095373283232735430653555347977970453219732142890621491532892305058402258156005743843105897152630940436087444602221816634605340529170848862383696763944658932408136109824099852399543816998641274386191842371342695233604329846918989744289113413677253666076620224363714208336122285523886931407333218804359607657065106752939011752884120213708411500606663453017133045317707144951776145494055873333509012179764741659757567176938567090420775293370027723547384281362133347172816077627783138284655144716583391622278489463795438271765284512229251982489210732697475720822429963460454273744658848342209304112463501033967332018431748953057173815559816363111658985932507707156246231342345735608983348062832169141714120116909465260271959529581822655949210063201126544286927242605914858464589954180854870102361339537609477692527220314479651856575918679415198999776374361798676372768741011175462410105014516565028861474581087129044209449713895401853140228843152218845322562832025516876374723717282748339546045133353190598633116528635116289336853262112685274031238891483343265527007354877947579299104343068712146984687091363231493208740542480131812846721761239340044078486570558231490892158317848976533457054336563598922856825977242481435714400899930618617606940999321880710161976692896364981091832772378652741880676677708928419501088017298496907216855689925982450752616049827472790757712413883979333518964557872625409177299940745682629897118351698715871842962928752543713984126849824259950314585672814986680417079888058179520979386522537417227557778617095944583939380756057347970577835661286949297422466226057622816732646438704439640555632542088803263107441703014040536096043634445089428618656704504771527610993822926360744664255012190899081068511640318865873492468418616186639491214219534632600963620925788974701562043045038505086392613747756430134874332288452232789367215902269295507258188059540124005056253549635744766515211252472897179696345440576251938575625167048980324384906410003849821615218720105606843299746376151754945646498539804438581941249888545184036904947543630592693159178387398102896996735202161119642386018076611779853804327674122005509429574712287357665150939711978598522498096758915847150959245429752549622715092224488195867698149651053490836970546114145743400258032239748811833402314135930197586742404157881213821140390825344810140030645937348505485852181284348511475648449275552281921592312112088816987430364272343132057931190330377804672891722125166608097782634087729817243975721856321641964446919047998581481323634556954132965647588354783606942502850095373673779647743999791494705632897352600125323308470974814298983938649204470966946754678419919349143418055857150109679245568507022641574157178740758735800949352845242487538557202924895324735120654253134457052790260757501705325791965611091984925206537770861343007567934025796985641222073134466525721472220858732650841793832540139681603787842587411561724881908232541129660251485741601414095482702625576367129815799716601957102128096987084822942189213338871783323229901900126988430657056332213600899866604763155904281435655070862350948578160138354892246992963656791279664670013809666685266568912586986827752566185643376574868080030892442118173955892919957880096428226726791270104047363802836201510674049613104828894785076423554345663251530295022884190386346710716300629488682134592636112920731935829756332369044385989287077511030990645243242442945886514534804742823382872710437746271173250466859131266048935743297454826227924969067017015766214185048746357422443613950503750219031154617392571655196772464021501380839311159668343110151702741956950209709280571618442929121592216910702634092931664152736665179093773235265267629584959301226372395080310681418545434057614073867182695768217163933118677608593678595329061773874352872338192702128189034077600308099880367704403526507208814464346218577263062109304733754814076612192564162693300598319420760937671344358853284603159547114596361151102077397281244035750063118508796411687769556922497499724168617300541616047625611500954043313219714000416131458976358371346022485390599802520201033044274730059797220780958287443582646537907038197376910566215227461356753355470931867602354715021248128486259358543481625722368939078997601047071255873831054307477882418386219727328387996660386165156211426847094377394399382710984381858437934178566963107758244167718457057478156449527964876906048320213886468007745955230315571459509729440399085737103931654333459509981261880370084561623033643781961347697596361477658350182966730651723634380500382242906806529419867741424324806019474742875376647803008683170146206696606103802617859311476981792091651815574312352650486067658274961088538710889090280672136904724768332396601323907345404855691462060874232487593078851113364367591335496496803409602927343948863569392992071422859448848362496385139268891699771600955909822960206567300903748479854577234849420664995906065066355294565367068412514867250895518377210232603910320368097376984181483892269316090115446230964407499776875764732652623497023505439798843752115349280751227644338213680431995024220717032361652126414001364148628331688831995867081584565295898665402484952985070964438042316372445113255852693972791257342934497476900437219949385994657003751085873077542350265895677226762366854728245221237730186363183988344730666339044948765047816448054494722464859504772689067267592972808676398372346536382999369226487829516519527914452930994426529489540157582858118435847902093389040841984795785274393664621475473431325885067344557802493718761782894002445050677963152258813761907192252530901395419231508451127517996458989174304650147555298344316515713245351492331863410598928379412576293882728052283284103820099559592561902455458108088841886670115288940325017994473353226847535520862963773849989049072560714428578522529571459950872480972319250441401678730350692012418317202682490385185717354960134085074786292562080302041411517759038024216019746156749551691898825355713584671790411750199655577637952184153513200533392655116159995998782640321580644691349299339140321021358992681989670676224185721853459381970129932305546302269721523912267373567315979732980926972523635693999818199511873730410272142597514261607040612916953772671056106099811980277379089041723385599615349311080386767062219893223287661158001079505461331089752020283743270854280736742508546096303166221563487415102052148028210463435140487308514020114132735611835351669075779170939234471915603727060447180829644877783357425703295196214658386757610988090497072157754559010107661292951967651789410134319896504577601600595865781269687493734632843928924641407769927319076255950919179983497205110959747285484200674851503218287288033939010672158465866446854660502892304563896640726144745960214730440569343395747049267661517584699913873888314507896790255131728927930168457682002722209202768482405834436950435119110454647515756347032758820511941232761319718402010347778623095313246023416763426813589607144004382723267856443863020222788829382592999779101734026384716720397248887676363331648743730419819154343379504834887857953023719500386700940308940425935023950475504557124834312006887883832193091746608473200908241419805012865233092890924062562601069554991067297500903285287828295543945005087753589000120306487136924152008052203772820893886268261095602996859287005299868460362121098606695701822685331270602205235081420227362669051414581744944572391675330035152539115304885441828293255577489201482913137303309911822109569782397689481832672125067380269771582941707293892998535830555302087378737020009447381696714281289048992492643830465136026344854041659282928832782840046441350373681676178111715037221401083736661194825260949585582586918820266071583921731856445773899782240950748497870682669272014299684603877526011701313472761663093366996473987901683279786464261623943869016364812949843407643144075151471380749777287325329067360121056075273734520710810734547279302234526411143305792216834033336611891121811787901853521565212778715226213969329962726234298939013532552340717862484592397467982387439223718632005880244866903476407071481418961220330042631339393363782197684237527498819013006046840355405354318007245012251068088723236129868256832639802832296101426227306716373825005905972917757205584894237869379279645793026677988572561479667942276820097645824526879223380581127215303500149430531740730337170186022135559218062487928212368672935095981622798218787404141636701179052012836141328785108880842192584895967412598242512907453753808411308761508714866066930440550265829764603108792119539130781650827048931172839220250829350273235024640752271514832438461886513415263745673568577935333474415501870718893329886197171206441336163572411321671083987166044735991424678366796956354504433682699810029587016977215575555433819934909613882408901364344124459436856074707068744824472821268432517112030618373057275986483506173810900069676599822800688208361635785130823597859882932482503330243473756106912127596393007391205391842516369906479402438471116951877356108324104547584354861198321412221551854120047298236597800712624835638642265080864528950354944307837899853965288711851847479373700143130226175751742950482342770071687893436766086298718534972443355772570179855926990950816062271541963981513472602430243346412823299234592558043465785242165128725855129876997190784554679737919962728873450538908713996019341117249978365810821704190190075817375952830937581711209139673724637937365711380709207780094983866717144865277806362972759618416934411860816959953351980842710089872520140460929383582647109799932568151021208227363378513985789247890533933099587142852985521029564983859653074207649453619885728726035151480217774161433302865382062519135907934333541572360525590404556129985572150607007045923213776978856209355429249244117074399864796340669223570448940394424617982408824400739850657065761232685997274622989627108803094977263667199039635772621748774924271871614558150043091089959593737639303776769090963368825151473138963149035491487252397245456722402744223370080171442392708828538129079048608419825480972427522398170305741230663001353955589728970851071886416455891553882822626601487509087509006936856863731808909387172984053124162217643640913563679222684448138318134531831496005684486423425284324907079469706616597388195773529301862189187324707480050330881164743424905018460073950696257599670381472602589281116289166383693151898511559999512306246524216365671704875788706445368031259564201535980362405790599107824060719844411379040902872099232076232078280745007509998454647451139816841579416001584514757067915437311728312314420806043263826765360964359790211795733057474722713230087961584595961717995968007487158180099033475401800453884805773693854136715090015152269159767637587193621035956740658287458814114438503464703342715335980364128651636661756082595258451575300151121185209578681827840155116382735928099500651590653625881249451918454153924455148310261703712022261952763100576901598328709659810341303543122582222666820586978926601872901941111095151618519060743839443055079003196361092985389905523810818944408865731674214590025936763148323202775010581341096037046491663123041854872233451664861653393006524868697689844525599256089668276185796410981085938953364006536344405562664296844079509470377711626829617520496315604215345148810236820356491959485103216137221881393618761123702771716719456139581663054079264581837949399138901262630015123620573828193588858479939217842887397694450843998776889085307169027598401826217642683431477526454375238449418780351119783009765445725343339661108993385072175560019891340827055967957932395032862206202744038140261696116010005474155831084784396928601382813661915330656207874272160760596412722195675787901891717379460485190984140918648869850271520444295446457129959903620410713439354595825317728328740938861614550439857963953249514269836155553984966213030559455554362002972927242870326148602481770547094803293047785627693271388354754753870876127678730765220065161762151085934153953757041994110770157222485203415678051010641553039653525957792075873249961075877515623410642126425762498678811903739683949156149868328203868800627131173766260401750447426325976495225139562944265170205227687004990688734861292450307206654996157716095145642877749661354191199460016974711445927604925888487384318448159906077721875046130608238825446744242340647413465535571803709613745611685751700455208976142758960277156242644235389980936179468763623804542160667708620341879184059948533987329808601619033595912061136225954307716249387988808291047739174574662952622674272753386563213878983267047355997004916961111811110394214167746135567901420264668684057340112021362474706755060811027393890533723947835299932024879340956424441826437135950093053064910800404090265258579862578598112012818152311152428761619906601332094984261831969402087987557498876494984272754040113545906095949408782030928570690489226000761493003885067704370897104888278332082278315328524222916230906762170101421725092084412640608589540891017472352073140412293320186947344625151835636810546117430975862015372730859161062778859802669847241866077600344516999954815290749060405525688502902048676717553095575112336919556924904903973211126679553919151955034420826945124130938780301732421624155922192275616496510920018303802333606621276754314232524144912788818181305094117833845178694345078173150368874210488170604693786560672169204382549155972006687340355334931114441680429206505479323336317687605824703082190384138935422322898453915590338117005745212459832994169089720050896878320057922888022178374854803107868559514554691620693984682328028069884913903386000499960325912986412512517269570241604407411810478950744952091501277989316853814590852469586794798565955778996860104400197748054029957048507795606271508734811598720656068329431470057091869148729180119057066179228229359839868670490993094445893598824600621801771502764091230048490729588542245704639574364282237347336388037211127459127082785844040897576480653148003644347765060248259430234405974233978530786960629932437958491240081848597725826985167890855314143744865069663094898039519294146849273546387208722020423616289309667889099860921126315676395746747885450621502398237807645778274706405900051843637949592075469549668692391591151507466270027880776784297035407205176593881815747582515187421543731916304167627323455784210783572008261631999937200997273601051013520941379928800984741337144745288051725582647899053681643123441274369790316474406847602356747567861371344260238789144600086322014709345415967528657376215370738365478413914732428595171748498779988960241452965918997749247745685685235013543658796568159878240274186426955509440225092849698113531393631160074369643419546441476394464262965259084907862629119378901913885973233109276348748177272414562447132244020720959706968524283028538546501861126964154074109986921108789799122590301799879965942350135380672542230573769914929911490723605183601658155093894160676292563728519932816809251670987390085383682661914076772816462204295535019717058441273160340642176238571625201313523630456712221244712730104042794317406580909758132358224210165735933674389757451888468728296520759104295306571831113931290266112681875184676120867542313868378746720446913773124622445798235556157748598391628987410749769473868761486092657365968681571584604444310904395941911141436824847993239345631586767413056304783819223402844829776117424466266892394302453597565570491219932153629655065027675267276809714650899632137015831132496762747537563351137632646010396470426469499158856283836923542222534255356429069784487588418368769802060654089302991222891951720201318682239766348241510006341295995571852061799109165086245138129426820103360943977186987410379081667115912319121281243856457008949328999856514649948158355115527032676706044383060172598645567584527594985440723893059693758937422878564379964410879567273335044473292353204700046770161137855358218979837125194680816813812913718019068595872785919146196195241496492987429100537682943937754580467498895799555710317881398794469971266832396950302120312269637705199998624915026449912090188118600238709736349756999416307824415918834707035879022986172105711600648150656717882296054737417373291011754740803609506645895885824728943629478308317392795152222472593396411650536914940300069619533913415041219241405418778403612518452783043639282303171111328071535319953357588998031849781894854080497652989635138092318493568736431362904699922372307609199473200677217849249485677997629833988777588406579650060711877194666961071311383351650667138808446631024294824124491960647025566354305966431444017858068269624819073252335095856916340280529224514217971273655420494543990928835926168733501097921810582502509603246873131047069593099524979799673328055803174910317522902510614326018721154574908827246804942520895028789736039701409642741750710222993266858990329323342926645875218706642901854213844565248276481860849942524825186850625903597054279777979960246647834677319441344493151062874127035462067035624680188729137282061821096394147692758620423907755977415228812891410659831863456563019304651601041837715662692057981820681954824396829442736711179509645586089896874331455443600378167351947486085618074241404681777911422943222463989005919744218004540263244222042412241233795469847320911855513581548543517351641774913685525034102310429179544219964480243127960053429341091218400368627890883371349571662674017488971812365803091775013400183257365814610322912187195178945533692054208738960220575655227036245892843499050280920484773543421652764969583987789515900172920813176847584820152943490708561420444207737796562941587169371950674928414232796687699972988927732930941844875739021537519323050282167576430365679978210596615281352627389228500319223328972844914236603314335585749137607188826809115590882611778697741626045323601467187010689369180284962685918333443106860024285434502997104910090051604497527428888564579655443662635644597138473831581044150429164519891591879019252788692270628881890734490728371428172592248500404762624893688613947301805682152825815910442440994395208999569389062924184943224444331569062589286734060977513075103164398088798406022108123222799379565873081658286433572009174471379813879856815523644008334122123596090754359590035728012162261690514159147636237342510132494033261362743055064416477642489488454488292276538033746077372794811415379916153330319841650441666573074756046323830646157530135729207743554892946683376872637594733665709721859804104809685954618157987228490466386806331576141610857949970077693715406975682098591697182026745790469086217473945622849722769816869254515648486676099729244909098613672052229710443841165926711142323261984711975747977074706582978908739591884132855572081583488852907057811448786481195116250042797764783628104696231561011335004218057113843978511436931555091527725923325827031212096781517003745912747551409524261935594985135786002587625218383362532533717501547233350718054574338547992157823083428207883724925255349482463525342323765586072857129261843385226790481281878894432996152540062030141154458485786261779041612867483523867633439199187318290981498306522985367147295418795450469022301681236088163619448775280335225015039204731862051044674059673532804645891088462183781952222976030609831965294583979033978556680690482086430215033098585825914364972646015149729681585901927826250309856669550764749012455073009460751727714924320170524551565905532447558474572028415992415211226132097910336105198287055698903823108592016213121453109739610187080839719227996645206817802560159370048266769277785004974101906332151350467210485600430539159150360117617896526876397159328312803104615796787560608620165827683080798926808637522003938328739876827932576102551752736629391042607201218418686719132308828668214840540804681650800621582289874906717288271220434088576530465686001130239363163154751561667496164996397853375249405973259971151518728715481648839590768280315204204821351011011409685077398370345240088065236443629713607341745343175939225659486488496935948153614282923020546702728891064793876821382758008364733778448693136549393934540803903519209778266872736297667286358879285250562741122366985635701992972700669293295526188795597439893633660106133229583171017099100357625605958777142523125302855700446458776794801555597585954626457307819621660219783108475907370520098399338448388299959834919630939856358143663735127645103944842723652882676915455184617104230982069525128259246808241377079144547970462526029906918930657979977195773749536412939905697024953773778948872595803074968824838046994707029038397503278526085594645644196240237811643182818347814052500697144352207792510320184967354168462066002095578216586492006465050158672416480966856545466850968480284077503024324773526724375032425493736509208327641121531013226003128035591400996255277664794873388739715774024706114291122398441403983707516187812590885719746479683546565447604584516769630579219782296738616979721085250218164033417970219975683295895053636110814339765239993723127880863559430748084056457808210858722145191046929971878785939647042432693312132811687393985912149532388970253776593850371723959545635575646103495129154087443594721033961580296379919919818851309193244219747970147721962293544873138381369935672349521923887338097379326575058837995339393074019582263045102342112857431126800731015004740831688828698623887685735135372198458009788243735278634330303318569248339293867647938993843555769899687979813388780043306518861792533201330976164175129101369454028375474190894786793716678186552544780807170757963318423137389337715920865843116679290642187015678383873330890509930415569620372270102053560666803933781975905699491619669184883029192054691284236309291151046751715643883731949081663898983743248550961600824484613866000837679437873583983525995652419923246105000215641473989699690334736831716550767693334526430858801331830576886508766633130992444385524840212413495945219267698780036802248177262557772362269139550356083353683147355057114926761227670201223690513257209615522001951118208021279000284471775194592752071375472028984715979449091545126178383881702972278362597302839544133930387379227564498077480216382137463633105263893884477868726572899487984234422364775134494064163187554193713336794998508120914111860421079027200384073567035707259065406747760338417543181796528506187272421117175982699595588359518166740921349538467692671449637814570506617080085244446453313446268479076686540631111534187975233627409031001686025586806073661183953954842063221436785721080630824595069791586177897879839873102490693658362825886275482800728819185250054956301559090227323064941871272128499901288273130303553885372856080453052153789685153022207107233099468956010690899041554122242762240938416017111867827487702124850883233728544093601248023082520996932177366610940023847948052222299488749191192328968883113058746680203142147329591376304046617622773701300025637373216770944056587971394823338978300396562475526094747141707587514959282039678709332496086317564847086172723839496916986224990573700712663064184871874005659591171973456030025614014554510080170588157756845906150866724305942514986631314426257081326145684446450528689448525459449639701904490686744711939937301464674183152265215619903889255600752629804738508596957717140726615614691083734890860367524330405129303548055607483504229263711516759525130443675661861028687487867803656751950412177610795548587876346982308853520617949459300736569169526283226279607519768922482873791850476552080671215283006884323015851251759714551102523962853764688116467719759191924513290507725115213381608680989012665897322853617704403475790232593393018270527866297570857757990538541435134331407382643415755151071782402467615670289268136570526873832279923418626001355456896255042564718793009666345013529020151847858761836167673790724705822896965811450366114718556240995376182073518350720424750349647927504925213256579902163363703513968777155129950650042969692092353460849235515318687837390037820708010677746843004476244749656894389813459885971444214032586955589975347940662764799750325859035207941147320320445372094514711156830016935786061542786986660059091824271439506092560517345386493795492674415462838513016571504925358285606208693824272369963541325271742154392771277744668481848145403047081742380213296610163249288334153769704790709105226328759560288062390183702074993689704333233620970774871957248064248236264306903517736550848411849195629165731558380149306716751469892303315455834018844215738942528881626663686294293191882947352332424657998682812649047615234176804874215329196197615815614621735775351858037397340439118341190555111317027734601806055954858326390175091472104043612518520950061018984568178315694424997861126535133296749251809077137132079527075233295453756251061253926350799903014968096954198819138162938431500619474824430412141999500981736123489914578172956950913281404167273303374505340162166316051823915668022618758993532934416502012119294405536229855880929960714505044006162388447117983156173531974979720571107487758216212608496000097909451610927648973627828118853564172532118918990578828662691478462001391975709300040572028997107330504091570931095110433531761363321666483298839416890311588004178871312558887264347557625856451990471151424712164130378472309025774254949060198566655401811688631088647449353236602851914336803987986295264831880499302178072749159400481341642835236506049277978250333702412838007196884311507421089403324301449934158502551325229658606078102067303229213923847984495330624568337998973366611147888909598560799069765380618132748563251655812001817408546206304348794814349417212001572542516333648024592919898426149743269198022161908466682725453680886792502930840095802364957895585852033672186334058105781973139933686486213142083732382763701971158211040973509996442800326804720108779754766570214054750577060530330764264520740630940706759238604111544911127204619223023914967279898391143414358086974630943016330499229867198211771355879483510975028789501744704170031486506502526508964723573509175288166780318836419522819829909767403922957257689658985526538506125658699365342748202606954525659854956981323169242948322453315126585744285348165023313597473978187810671302420934675418608436020010038468847993469932249369267182450951897430972366697238055173169733358518495516338390322590105672750071768335609227925610878752113995938777176395352809065610009484275223216569266585288688101000864685528607105729639651068243188960324432228753538107566725762024983627318323006489813263501480705922204326449210299684546751898051683054981923036769671262863723200875663928186952084962631448806906177022039100976487508179415145000951811267607434270821403282228713333909635049679015995714181020750033945902580522002552229724608447403725028679517276579989964511316523400906630865380292948300413762423002822194713772713509325674693956475820293166740969092136459717124473478108663490404405683629912056002725045732346167134759059901874917952915421405522368247794349326168998180861623071824443439941009286869042939667913813899158117428105716809681325673632667436132861645462295324521459451401403488244223033525749382212224996976881062990225337922007053283042862898474878344467600305740024515025237617085164312074818102081133545208168641997326937483798570035436988369377665203155778508465929917285323936936311095957828644413931499039383007599208003346243448055182468188265865822357294212606573640218949126688042180978507300915020218384645513715252749207941670169161603494644489724538063787036740935559810864446718939594351789638686939230635937121923183134943876249592521886409638364122585083439629027344363381112584681049053121993180096218323837689992878891849573622491699197285632770084778203614350598589693934316338626396582810871236534533613854515383913032601585011256573540992486017343254295303233113138493859984547193536549329900512173055123181104108334023000699279986549371439294428887601407201826144355402204402136469617823069375071401105394291967675976158382925746907395517455374531919719645269173342824295119674633928559863781812926440605561911827220435968694797394956583087544469129533872574621606548829702874571034549398409327360061983221255740630055562269840592845585157631785696145297728719057452721778305923520734485999043112093369696227731040975061585343078117343094965391136731252307141018978232947477592867596246951584669538775402280981267713810275346888173980380792973044620934982516111640639607873125980034734433475599149323795497305746445572206868464658988539274586607021949654653207214904124849027761575966175799496932665569458337667283798126355367084415932467057793091225852632475116843008448862469518853844038844887297959986838525955983909420831096541876279299777486012803702689801944663489811232140188136733648190451091280156637849748031454140098246457039558750375625326811686181615581325832155341149129847981029027797712328388118300933336867954147053373979836622670829254213676957331515888174710816231159999045920099000350274592238681389600394690835984321656886984341942544641706831963569548722358620665667516991132927726197278947435391978298073619951119660683749587911871248631797899225520078521404387616706725786521343588865084377238194843269336460242403451069433706580062972655588582601486550298832014585642702606234134534873403911275861935558603980734877410966351319158103806669619840068115392538612162886687023094011429485391482043700143944617786690199406766002822743741259205763294888277580897409890761742018861554782923860800763634825627215336158384651015384726214217437882128682215290411844349469525013096374212098144379403006111736763898626595178381768970846227306101681491972166318890800777209544533617487055059121661104325754394789187570242717369560926027752330477032232667997852299079653679593917376741664284589659236221190412170710362660601965092273518830721753471907694854233258247997394664549174346926688067403828217265390251935136193190483652209312929485710073148909411553224961891183044051957585697656659733043400038803846806468309885527041032586095756563801604538414697010882247257121462536949353144317118794009250798811687702862027093545453292585364759008590310591869083859819375281257196333714868857111814383641635682384532336011951296666462293310911986551446319275764286109436884957180304317751834689068264749590505860459202073986457484247067970392430288177484396902351006245448526448464714195309833326329443152856351084159100381308161671314398054147336705480429665504918142169180466894928847791527783917132055459057926493801886667429583816501822049235354481315783237492093738700771889981266146525971645953630814042772147832571852496258718067751549752415144115489567906951590359720026297785482081571133081239123650257025351153418552466943536897681874150379269007566145584552096448382812317055394374229365369639182913989861295217666924563495799317999675575294173396796974262838737001555986172839297533610879134759912386105146917702094494137768222689011849106704234787813872431496398768590269230261452046380384475483094458129021731242186380033151939273448532210441445065977922092862514616235707099334203928974327413508148987694754998861214478318596875811733118277852996652583159377411267506827035490196042431364000982810115095711684024948935107330681213751632549436141599575879670788777965463148789840145321867613914495248354123787190679471705108398567967684221101802019448685699296652318388519656383472696672078939734245744062840478194080330242592886203398805260002127236885394658722043351000303857472732772935022345724080840575791151540540930159935271774110120464190522113964289810839887806171530129370180359121168639532996266131476274718196346275036194375174715149895348965952870651235298862411599895748935854443148032069946405675735822843208846063261757121667375281113843966413259246548576173860150495394779921958986852232076940636524549457134177973397204132552116669834017926956288010071865409778254296783945354163025708775215853274834261780021615395607275836968758063883358525406004729596017583070238652861533683474797710646494004080113514154768031297711487813054527893885859811376905250773607543051928563186179306118093029341820088611794579377044818998921834135489945578381566940374481969148832171192968337877842425510328418234592180291700264690544025496082304600888637993601159222521332369335535489429445851749319094962212167945965704503198542410895282938359933629436643374599333252423582429929268261886052649441243149753866270589881572789109008362437356919310673990967321338494735713062087114387484078015422953384041161495844960559022159035756112082843755601722072736126494883236525140973077404881073270283973003292325522466447499213040561127817166340303108702004837332255338180765804962010215345462729808417656977561155761465815146769545247171177699825221674506709584194409346418417451896934565304440423470573403633752593091707486030533828973403062172529870327365067451828035949553051598142854549099756766082530964897783507812481906448965138493197926943615891803047536456081576554795944354111099625723269638360235973931373326115177106020720074952277591753145268719189948476591960816677242981558826439822407104928706044651162716185850589944104657278976461803492950943562945574542079293229955583955904110446468787914120299804454516736636761622164945222496363515473074929453578211328115499076228994557487128021379063515026934872086936367926417603394572328678486536084567922626613607867835821760127815763230192951525002581795291812282972681726914054804080602793646439380456538683053275073301292175588797119529435411672492886201540933253079152752568851148234782966072783248333504701382069849936214523481663210691543320521144598798592097624724558359091778923487058833809918678453190518993693476991826916975586401702145974819253570628921739230213324119510966897057461588114737229490825239033358404906164466592686391068033129274060402209245929668497633188111533095946716525718368645799476596611328938945646206561052185193814916324144089631040841202199064859627737597795015571390541428334113172345650765761683743715205352063144149798528346458070249334282287454033664323136807462330904622290989722547487209509773814561019832768351272608417412283416646436252686673187613300093475510033267238078271653713659067625044023489140858371356572836394583526437714740869273494042816695796872311110095215250624357734329511663910500549990545968875415505834681730214711490569833296981541836875200813820446751188639964050701514549781466652738337446252278426839722020116015343340226767850672895571738607513175898517302635337689904368737155762982920035418674115376940196637999984836581277695225296576747934947036898188618319379368341326605936173246003555621154631488364965861680528190965608627595883686450103381054690229727337191734000225068643923789212902867292417720867989458941377463464888670826947399111185077818099904528263958679694430653177782047754970469366416554264664897066286670453455945141366112192894123384551650129713055728050081942922371090288652715013670304872649000604595850963060977302716492415468356269810245109326214330949033217538508613029747354826255024108531603073263567941453362869157134342888868633288519773159372174590395570412408191629190293469682133553246396435004591041884375950054398391004924786761016450957240246347760312360606758877036845646409464573607267036139670916495354956757381165942569549864921909941808245849736763504360719606694407464283963313464798690050050978741633479407750714414375635396223912369630977015321703523723854446414221990575724092478800170960628288544164901168694753808168978871139464405843221702969262145004792562905583457885398240586703863065839778894601110352865360410440780520823213078923988776006152286856379862152690189398076919453596843005818287338752800140368081836097161108570028320801997286195223787631254000901045347083970455460794063978613798664321479679567544147568286968567278272623332213428195252792849487112246684497573709124511624841384782383497437890520875533748029610282078630708668813315451978534240572174656650340719639284489286535657299410024137796341498614653365829877410494541494990860125145020493441129584172248267449002716181652120045682331954530202888198489052496098891715375043846437867898537838995072927707684018618778156999699945997171455710993456381617065755994820460878286897852883687676946810137343804075675158410579978734791436220725863814996403635670670106760409804244365719663434242969149871027400465898781528192388683326831927407335546970888276006614361907734168144614999659290741111587364931786553394121444964140553717563473712830093901795728983210810336313454322143034562613232215010910698284754213479999358875713311727069476468208452218562606047331427117750127983012211120077585275115866789470688655560840973534585596137840920912723128275909187630886346883946171666248768334226660233529210661789898504086742698006540616322029101078080783572440026937257580253933967043251584413440543832682492325662360775019630677167195291339226987376451588968561109266190756986984188402828114918148736414743248833450399984850956145733416145303308908021889423235589385517119407734932898537181978029392280869371678783213457235031229060289080253751063489274619653592102651424503864174421635512283611337102532406811049965272936129232354684914453229391135054463898233798315659802555898078445477301860122741218497386497655022085156103022650028481852424903740928314612917934248399010831107915850195010694855768467281512098972274289017826549289035908573412453871402792786726849239094071190450726140358049396285879497910655053791616170353908072091616900351093723961573449237994346490094049462448140850006975226883419798692163801963248202757132005725178156348768551873285892854212975796010089677706959681282522464331663488186211828682797328687731272560666810399058087735791598191281889798736691708602267237954861261146247322880814689707590980325464661805147804876690925870055447132435988596048615883390967089686868865904376531512742515605583502639957719643967913521352493675231334237198013200870648169250131950571990978408535164424688544479766342235286786792806124770162603088724943232210285234752792936716504277757123165396326869009363765721444379310734861435436615909267618187492733561738841099271855342122344004695868630195193766103909878009424765453712760834978424473510851024653060658903212273230411697517460516664801446101288160377323818798850589367210219487675741919852544093592401553630811848257410486463918805834136502704442781685204680305710540812727927843477890207821250249550875311863532430686473589363917300390775291564384389807172466084620923191014866163871362550919713842365785224297976993067826893709647691557377267403832197761263969387977951716682142197304151554186584602269748807894100369094820673453299600764784221672270032381467224523564715641024481457340346389576443229352810834063922153409017719381326661705827140945463646806248654503010446159398935190415635204169583686009576455913337708681899500840521054037242347762075270158756535687317970377821035914232462309065600742197422653543671166249212116122203518294581978669674161684829633963390787481000229548141827770111961019216247281809866425646999081051836425757160801457694453163712030764258258616868921335030136686340257538952822046186643834695434133940026485860438261371111045776905616408866056460423914492574321338727594152312960398174467575218645563950364970178404057250282023812045300240985645669051318316949353579433460115910492552825395374260211683533543187192089276332296946572958442779776212877960267177004470639127266313405027132189396209799739258385509683098356763376453127542039985011563537780053684061211284611612952042810821502033582023341973665265472586955508309273217924532412756940604473633465350424706132740698137411262841041350795244382812109495523267018143685013559479596340192192446679869771623938427270372796735110541001320496140108175295466711950699373557116258756402982767541067308790828405440445406966821835978285012461499163129397437785525262553869998319388712887149154034098050711463959887895358000302641858431755619866624750930327925604896985649113011706121089162434564918341948219614303529720228681671179180511268522333467653455116147396509891758779977648308718688322203550065327014286625541200714696546982470044268510682374926638388810658218325372636027082090939344175009992498617579147139605343991020362718841711691392728497275524393815201304551854488981113082107526896487776493730545565095293095495866411081168965984628793825799091366141495105480158629244860269313307417255459728685230604767316983999825667823813618504116717413609231300127540564587997221406036100210282462285370323100434716994105846969407956712662520494463884880365929040643017397675180850873203364311303140419517346472849345463464163207284332017270294309402922718669368673546963917075310909388948593287139320563087203656333965061366157356434142626340136940449548732817846383404530181819717485846107756622605939157611579429759772970365473590292639463228905383934726779922072007647632883408121359176019932914619337643807668656299225663735806822725003394440508145297472859098180239728154312579861284899261176135256339797374306045974758647116355891853549402112821351592820221049644377614961831444650928708183191642873563174962939811368845859498531385532580259265935603381042015844752417782309458521298725089645396051743351485993990361948788739322862137845242298490204690242934578399835794017543298570216836418504730191578279551513222070634696154814539506935038836723019924441365103693899677172683624109806811898721148459959145847465101680730699749862228502140273555591851663504200263696409204129725183361865068213429571621383179059232925746244060651514264063198043644531807343805326687228691584435452776138220733843697495575378662587021254912012294426004484164772972049030430768441497376380850850058740899154268066989469794670728531505901794157349556224861958012769826656802554196039397695805776914890638039967972851885110565504694749095352459844584184687806510997916364493431526793181926639238827336335437884657179401456185017712550180882789584720264131481224605873209513619224400670032972426028743622645548873843629529297617101564304142871392998166177001331056163826969847828987664844471699800545977206103833403704833387802711484220990066749388628258446806731170595072087021785301465635642955038417216374292402501915240280223121522099321456291765742906980061255440905484410734019047195453123741220033599405412500264557660367477451675104291800680458862608093006321359000372561676986263596492068537785578652643503396052154947641580924267847555264270633748850758509658552626949718111862898494918902967683840865532608731848324355287178624198520013058743084742177410908470764607091665480326941487235410196485290377947038815723193659974939980062577787438058001312693740897343495945413253953919397414184518740122927945047829103087986676442321710130987973046805565329586994614957486907735901650683680843805343961508694723592199747381386892162578109492195637168554414723196272504791850725530966291528009409590001521169125764288385882298890213967741939855966846240714790193764431555314767753043560057804570479893759594915179896977187179613445534237094743865926839615150087376370278682251465666285105628981945942838529607056858072477833688464827111260149068789565936229765695476711991072258886513877226018244772742252859559095819066367377925533872939043423750688284805732301296054302493515878647747123345885023722204581513043460315707869951226720520446000757808608627024035727840572368800200861318530194470671947676127732192566865610964794638310784741085611418852440954577788647371479834349070874310044181586130276051889945530927962566441186525492995634819756386560239546536094283108365194312365154531697896480164201057699070768797532550638091820429544818329052181340786054226183911978542244832084331348534397614080584486481495773966737447191655985089125299780138341368747798055014755011447825895983465416821363016279284132654825153160362299951074836876123686905980627438221443084907081914022752442347645777571897630743103319288787674847455697952213899505846996441664649538532003097211100699157626188806201802176679645140325937436966838159867216453036214784355140537964619113953848271761929622346519205970318623938107900628560997306379996494657571199494131306953441728167181215774002934139267155997017124044508022309476337819951972031153551859818669573197630093105171454879245147246423878499218387365516198318949827346181004195325850483993550468981571414442275274271833599267788127362943995066659250308152337005527386037197974924645229510595122029095416509485926723060585766329489566186602042473846412195563985140619909051315255314784115255995835303967454054938317640172910302676311225491940538722174727149009081269634727865070896125091506544740344490696584925443362351113161124550391047025633703418391805715371917435463327977277751777254434568217709406347246913393069233733736875438988663819063789746905212671029681169062090454667833403624813529424803215608115876966879661541863902568481592187146441191969186227894417947590084692677543200231179642702153794208115943688875338549345259617518364726584712275718935769008801765062594891616896470578488568447845015525964438737069339713936540978282998522906732296281118396544649952141872425484700215099851517410114542222547820806195060830851285170347870759242210208319065354509098232701193504135364770088557385912856270103512551083666074565545930110566058903157640504370109873789164734863887266260437320374175506307272796703713558530488361561170960634894571102484320525540017750583849257953573803134104428792530112804021329708844652451706018920008238085921875782757032234559265371834504236481463170757010793688049077319920702516787071195931761202268032152527147812429072910927958780988653175318611822012251472212927476949794608785422696491456559406618008245279850969109213108087808604127179103617509781825613046113876550473561123374614054381026353454942464291336836905109622980656126711723481973545452511909978942226108274547628818331870256512271517722558890690749489027330567493369883583052871961672559290085658841116298825793501181246440839111048485101624953808261131725119906606737938838234720571924787944478176847998508730800446220631575403676840444681748869789174356159896564522130348621550948460219949116298563314997750656023510838273610915318317350234434943027520734597250349292242701003229427826400179220884137154074915468646234603406733165212495932701054718281563615093600359094691133295566579396911173686506634651997223667795275110226783812687951706852090498461151113660728639659045866162797072903160835476921695162689514220684052107112651705541773699886098018796957808197470329756081990182728308145620243399210915193062200625123803515182653922556839702213638767218206839934925629346687164201878047778290903021929553201572630146111719833335470345381381377494707343630635929596712196075131272265868009280417351579313903552855664632331314792610354648408287693920725492318427376049397197651021148286018362245147190318018356661270669767884029339277567381410507344749139841467423027546803932059205707581335269950367832878537471108480248243116304339240122877945402300652385348351041703690528450433801436980456434100313657157829030440209028211208901305520624826998589719135325750137437132735886832162938395720006225798360919986710634299522313174403609747111676323849827819089365764170808543769785340153786663087054757186101194861427849268018310244735698049719802481043682055465625688445709094513393190416406811374439729173586978109659121391786099733290476593657412027398176529902467348892080514497288449509580381350725650819439761162357379217588864728526293098352773883253180028252611007487615772346452841293882679668329662455485682548059822559758075910313724065008115670027841340535692937029561567503868331349816493434480404634224688060197306700366169341159488111456902439590596036069077788625921779654709016486096582832747458140740057299741623037557784299429125131017783369654091265800269046562272208730640064776396132147404608751989947676056708088214335166085051166519655682506511472088457199786158403964876369131516813448197080214858340858562080147620950135978116850750518104245503763921696123870483222946230595487417647210366842434024443974388529716231868624592223463602801639168182137124194580304741733633187583077325118659981304474512828197049781695982188306745852446351944766035606512157502220264577668800357574591344089326440950693188245208731138088303078019216308895944567017798827114565730940706193247969310321169091446974948516212581581012392558506980005077431441528024131956615768883088746095565683305409571756631176662135762042615546592425203278477622265436238625926618287895004974555185237721684402314255251258647530080105566279907706403586582036812539030236555364795745052688076847230778342661119689041721067343017080569726988804794472421966669616666807010429484910812616415865534040031367469108950496489026894242799836761819212585933032501890895628183674206056563540126710875552539541567267248141518505384560036772220639905414181457657360135651594839323209455156269480921417110462893148543775909706692823079391607775288824138567916311617049640955722132954365044317131613116959915081365236543591100041528266249392717817080519323409650174004448270088099281988919662829655633493908680523532282960567874408502650266018452843115817752596290266904818475816975666692101777096166016017840071252143571186523452283704900480460174395029642329872967454556117154206266165577094223600301749806033207785337673514841931819708141533724424329292952713376127129000690127987492359650872253226245106695333116437194302477012357035559615241702729887314331431778555624828851463374217265351699134206143186680196617405406831134382607571766640327850335387676045101463483214826898991760661309163656993855433026140244782050364720715594892627228603100670244623052984145077155176241679698957604620434726213370164883517789010042982660991367273497553332709294268750627788168036841631937874523159743360951883555289239552576863373340043013083933689355981497603827583209756306847864976208880205314234774405122808504420782812031167745131513595996838152956987429979641325409063017709686240677213451871249722474452837712433335831299774113183633588407201727397916733798534834069832988188240316666831493493143954519937407098701941975933288740580854152692805694448244662651460289871050070940331799209038549273414633146767274245623078737613179615882171163682869199597503179987677368007647829404451340492570702341479819866841492531029663567123123587727930165456858155419704784340906389893181263287936046431551303106313152553091474345643119593391815434147786265341474733106970278661755354711035987552725593948584306147978514843478498562394064175929242804191225942173915817147118638314312720389047679091320128561138541635878656940853724226294415772155371521111504027125067782629248404108954427154881017869919479782053898961244370414628630885053649511733851838555212083162922581307179661250176264302591225109047348911146911756988137339507183961323283608491768815961028051675523468007923407721434181374288089264705879449975684581543821932101831989946443573098165940428206833984727820814270922331669658059248824196668247812083069138815879023234846530020751230059777525939284031831606512131471560543390202960694705491399669523648109693885907657565668649644407933068519424778798675293680931084820280890977568476219721519296120637941389878613834272798889130753491478209834340480052727655357187731946114613054846891426117068589216602903925830113490133490957056934175302612170284195081101331876192715918885477702810643857866934033536652892703005100231628754821091512452539419341885873774140804352464340916012612561195001934106327024005608763795077424353814681674179083716399022305220453628237494864599657452344039461673883916759526261667662971399645878487104418638117100984887871344198293618902557090689973932619188986721441075300074899235399878999294844419566229718192598776506141293921139095444287895210915230488191218610479014214566394080231873144547938841050229978526625506577097052262898670089949410290644846221759395145924450880234139183625407658200954105000353896554580246969237301992919159861674315432859662504353427848418639883259564865503107734915960307288687571114939962687362898803496150016626994830499769956425143778442646012361817697587980867271000387211728262400441762913933403494295025059659370165082761584595109930900402951825422173827048516648277797927743791288071210497234520147301198156101686660012901667134483552007809380109393064506040721647483204460297556186330950985019068676845696054271662900981833216891365415727522815817811369972167829478749400427712770763405842647751201706777069126417463395425054920095776907385226406553761185180706248020250314597793660274647160384271220372690211589945573707056812659379891498534333684512774103123140990950905614282503945335116011019871202143166586893185544763930283106127059178861237110141726701079103480224788316454832682789545545523089848647402249417505566784011394566877188220392436948409223710509010737864206005829127539089600261745000826759985057355017922002012872469030710482265413028194450445210221729690882759708004325845841405747054847623096979499787537829971483919881995807490498346729702382004275398466547846119161674860891687537761146784954865256234228755960982897662468090173456411917692622783483458859558973892545351185157141209114563786220383664705542949271076736105694598520422132944667601858894332179658046952852771943419679060309078408676027395377670966679181142952126870288376851677508772641561896633535019324629347794779075537876572766421459468132557989308449354462281825774647414600844667882296559853256696861479735359499478559541944862742494144174203676230128871885183194594049375049229927526618597282650843641442388358192156527857465460658559821398669302272363727953908179065544046771082880189633079711054086405106073946177709922717775820416399996782115566525494331992285413471832837568843083655297812923366266935222531583733059286027831524782381392949119809069767626773926997202394790832220697668021294451104991739049394055841466996664120515164421308605410460005201478369994347074749915128416858230746465017028776531382350432757214653352284972203184313956529481257925214737234985071080820970087686284676894405542689714008374476312295107754748235967656247021081057043660055976536167290033615439649856372776826246435265663162218111835006151498037138622854389538116201565625338417310366955080256695124172554818406652782124888506655043210342949549493483708634785917944866227674156463463147310686135309392702673614602862188043146133147092346332688321205620234675360877548792744874211417863675303798150692369462695908779484905003298798149394705663137315406691855389731639412921372483263791649218998530327636866219329715904456504480556742183541100799818396515217020815275994517087672818239523888083448169696602276748696451497115325390458388542619956743577249299745980638026318396814786913277949187561039669099391079820515270219513766085166306719468466548101052417317614169373229222029121869191692246088341184282776684016309112512212802289389453520687268567701544956973105360422621350522516630106757349159234028993185494543700437267157954387735989443821665741203609547524896026278429577286229157251955331748845707550932313306808990883949756051444665425523606265413937170956036328971439262453823477295785104657938097173274897567302876742617825200449784834394983107787091039424364078428352144807477053690618114712071396190262275834047288778769129190302794686314533830136407556956567575301429600197051040706815315030430122416111305512804869523513624115995756888085783780761251291449980218219760280511828593643098852402661621203802452304115479461673164000438103695009259281756428697260907631701538709983704997042354728119846936280554470602116106675987108176472680657220019709407264893131647533081443324707496504022868947213433996460384728618496901943738683961245036897451113457165845338054804777837653918778454434734993969611016043520725673272349036262564888057234598778140627946297953618448444287650967517997071001047933982660086592896464963779193133155932196391700765512868980639974965316018489819323958897193067482725630651506202599467317208374345025335956287619367724175328239688065154084956618699474535780289278957797331909059599879645579504488322546911068540721940268081170132292072090390870357644311856178954740290728048790277741957695145394012913128970324514915993266996523409403030227369493349939299736743585076454966394803103413277122470084242822057822155120865247637080540896478117898418060976708744955424629253901927171145698056371766555223229471466312812486994312381784954848181369614557584138051047473746277058690866229302977839555158296888268477989835389446143526973348515771854347137022315125279297894636813176756295976846184414652579446970451010185370002093863703761442480321253861925275724360819888671626079125485776496510835086365059632300371962934973741383385206330519669072008071212911783356014761142142008367476755381685082353554807285872260373633554593672457404898809342041410950357790640105883930966126287664884959737005468334329192893902012731897388804031027360814108484607192630600490344112748635188248409970467178781664775560141440351385868709808574873396063578662855754832596098202829060124472356839494877635435653753371871737593881993826466661481782878253171323722626133720244689022141729567747003234828676665063721827537679056585205773766038885328594564682445748910777929370755454455446996037553114939836357323323691598372865058765991471545549650169247079092667394438439935788226260502238746667593130865083968147526422098258547286042076948212731932664325200691189146666902704256386042143245845837918358969270099371696510371754829829557225993620104091644035532990246911394402650151376046228555448014354154753981104145739916163684691587896819290177437307468297773558606119120284109984735826041734221210503400059148735792639243681605523059327427301237082488313225410550605111679731460637750842914169240449238377022577555757245642602466271375406209970743505971034384305454729322458509668215865633747678468891581257961643763396431896327338792902915410087983109001945340758044955536085125125035989212847837980078123408406965975137639518721619562032104899939966718757816559141514980624336595908154970566973870141478837913231123584322165128510714212361264400545606545890699309872762340986117213096181735903672740736832625845971349867941871575262749180406665610407687925244876633968583410534798563179192613927959111754213531152382080665113492731451963870022169094061068943885924572535348340530469900991929718620085966484467421448493325829398228628618100283267924346886295919662643942123825296744328195679320167410780955934172643469343353588890277596050596117276459750825141850538874525785624992242176066767933135102928757101035645232303676341158223080860529474569476908664067443650604948807824876354474461821618536301911197280962867984284340520119596807449127480112039330708609963103897371516459157493127025156982647267115768876351791178838369843592249883788620749252380994283840752342460594834900652213707638213149833081045851932907583985138538986647172935324289539357621177900121046790844691109787327260893965252009267062518655569876713430506936417869981698941189940513802917852570060097986583127182241530497965359286492676908261142724668662288644429335162550758287575387524374745858783376392581493816138069679127244001649366271765689687708828618427463085497792553930569936245457007211720633141274468286017641755096347147003798212336542961693141708788137580409655374392939628861044411721883023637303425912990942819520953708275406843519732416847918052941576221652850800307793773509571683332255120926914207933069399932496722548025647857633091544471197544553283268630445496387784681991704445709491403110796341933908791449243155303452063620694568958910555577373822073908974204781410245270434258627161895243812530110086729873718380353396631320819657750068119063633795307990242157036010721324190575710159659729103924750613418317453513830097478224142739721547756253623542638436456637051793241536389742069006360437437667583599625339786746546102007203847814881280594645899495582564866556533941533785799325131983428128853875370520116631254608759827795908266392048305842397965013811608275645449309545182987482136705950266251856884342984351236012115141155833768794644266763671329698512790491284011626080375914743176724691634073016874400056170497865767424016403383198878227402379427877746902995505278044674274079026496903293446537715230076438364727203164687454871804542061877710659013826516454238940360354255148202834490052982659107272778713853497143111173877810274425553025713929829089872061907394159019107661611065918243827343645900840027730694859054525511669188153093872690143682184949174474720664433250094555622348172667678940773096736599142862588454154078348536644980197884987015274224769762082214540137976447094473536926916280361437578781539226961575077564484724139084411158995117339407913903965590946049259403658302536866304109221479499697866959330919481773183572398306591916604109371087228636407704861069535924592100209633437806371908924302256080050673948199770800568701688438046445784128795121750631277812698310215467556479146334242307326133390445915590791777745195962123600930615134231619422096673000920156242110157584990737575028469946722858189155243331484895814009227265459185226288891642432707033938085152527694448995252802902298375232072862580841508769237410437597702052709815499763093686548605993441393905936758253222512478606293099291510005199772899363850475006090247087713406331815831368545544380017679218533285378087059590496249396601590573119843380051760092701256126815100222461030985643221296574986404085926541056562157762101360935644997442055164873862877561835040326530009977457282563602841004005723551822098711476658905884887458878528611014251473412112473228017891201104937065987364695271437650707135996849484200033491857005858732199408828441536806142117144211561991524962499924478506951233960589570097917530493212131625726087787413582450211681172726140926764257868145015239992757485782265598370172023563615503183769361671330924857024132911394079380586430854765089915012836159250719266954142476234664432513996718412841611857669058444388440420659782548901256531145936125104051374324822497000526151647095403613951023928850835147904343303514278663850209156436555671564535473703912406012715637277018070604760829158939822886447355875483896437727947868736129118700895155370150029565486173346454258083481116353196263192088096181566176339997936884298146718169048848338374375715078414346821489533166459443426577233713050500616017884483700060462369526706916420226653963340058364230669789521990541923857128742106507099701622563136193455804738321198188339714032932293351680719425628185921872060981670432304257234395993690577092413775342767021992146443077290287080289518753883873866381342721253626520229475438286282296085640355036254598082873599838925059963318439860590701271062829014306140951115214051786954095494997049581689420939340785660699590448897516046663478847373961716649008380985188833741480726696290489998480880206925230635518674883104044841202358501381885325898599131385872560486542565481092582813871500038105096093230212912961454057953827179974273667091043714312041836017572449127864317477451562450036837016370805396520407908828194998143790108970656081112758908999702732661996474014011794718067890842917349186171897161299747741210345542732000165106491468697397761278016352149663226119385534355742273781932429443464920789145132070885095696873406723783987610177305163507072936003677992930040886967868681610443173984965142212187251271838906597308339850712364263851381903076409217212323463988365904233567300890822466982419045931472573410690824525088411949164368525341611453943308461888676299283885112492604055951131313711478624237654633027758653559016412607132757831545558271684515409042811031461423534274617321585395327280004646322195374635694015152265110363148179845605990894278823225174105469956463765829355561113494510287657745819837880352884129355006748865975638179873823717452855036465835320857501067483346219391405214875240972854310762333658291719888148265039062682646624757049347363294622918024225799489362568132604918733949707355304751731538570227046666912958888735137675626649251856285853039972850967904861979409771433102425270373435431881577347379424735786085444063746290874380585386103183810001128568874220799218281971164048809985894921054009110271301327729415947126775678691766272031003766555336759931007814712096535090027358922706367912989259786525992769605289866097727523510750924412827648288515427433110874528496046158055734633096501190472197962940913193273162057769753445046041385712451549463265837018912670390070889239502261731361075990870785536874787864031181317475592796160230123770519756706259431927207306646350634685673917676364218892111346652209132392391355775951585737725644904824269945691838253366977341493143580786456953577705700512844686158369392922330751545357313819039389299044097458803102962600125108956796725867412648396452645115075790752852916383411925865474175846478696029716826688389501932667146610892127211183086509353883871794502913577900715868653857166688823925468338002538222402616960976041075816287396285137248069905783573716892080715348097240844568483481305177477190762504816513043368781091110713439185135032409851443063560468279272257830327924578960730634870545634996985038787112257615014301969009550437281227479117777415713896191500013285079911115842710270640233088967609938061099377247321122928706053454729971666865370900062207167987338210649796167459883708689223040982481480919822765730097292805627956643345513510780019602065046545751934709703372778038097873164541520093715950656168867721360353489259454313357083906052106271358300535013442657134050674089448165067752885493497929026495614487238747893552320738372298806084541530163569961023360286601550311095808019756168987568168168828612154290374034678225131583619327607053664491929043859139303439033388710731171581062492903276208725325833216212677451890850408564733524486539568096928318522378233421641299390258491991100727376218119584652485417000437760719843096167008609360796906086651758067763683538397841857872248750122128659893576470543382780199334189926421401721246210169898515331694323919570714908592383327125226826186301324312384760025610525936150682184882251872322410046987745415353021231911965288047623706525933047313357215304599635772200142691258086018494767059469996544865973003237194124976382982895927092811258658612737574156354802712383333031244214877901131912580455479819769815634880752433804545707676553223193830308447674850893619338684944218306759967775224732518509664090765786444601476298838057876995279271162144416290372760932129671354819249723515501399481779764158449428871177732791332524846886722827901698458264710185401816778189573897906972405678414490565557223531004512801868990761102396793195384848371546806260673472021288220857388361326779097933714477955198462653218683719927527798873496384506434383776760035284513591742968582419625714110778682064960058430366596175586153856918619808013535735711736879997431083450487496814691589057844208261867351283203691014361452150961916655658538573580962485797327652106572745741851340240959935580540380023335825822308009297578750660353066600013671308533976823246807503934211225083375893188033869678739780500637617744745450448752254529683515854055206154727373293957893063704499683466695739943795484034039396548988507163571074980922783919968222947751977732957707805070710428901283610074669858873086588425271461178562256904669868901123914867146823261844531874412012491643260507858790816882314231556921778342963822851750782519281659362504566488870251470702522583650234323929351902177597467677827942081603038716374763073212286715218320208320257763205950890229304521877297492669414381095903567206978312455094533274733107508537263624413159285167225609009473859551531428904783855404750415598718284499228491433492549563555108611485098347046525403868578090266559638951338323079294325850067758290271619451113001393756649840526278778496195024881342354428209731922907152302975435379643256669688718361248437614012602972787685275177112425317685131251769320832615639123749440828524464560090717828558130262142750061138165826822460134183603519338110063284417245190665543345491702864373322178497173797789914067379232718224345257935199851001960623575912490775375732388680994228454534817871591826884714661545918837668204302144923457448583895850402442377741771862007851988340187438513519668060410786960686952746821575139413640835077378519788118771547390730550875622231334380912080724188090598918534681401318256515847984790348218081852850349631464820669163368503713628322167157177611829251430404474487210616561896649817029087508440550297020073568370966721874684937529555227602056133873122106511589705433713570383278886636994890417791600554063232291169356668441447915100569729382860797562323176122629782397031420791152752059030672351413659510138201966043971099160391252114548686239510416030565633915085497612210169069128593956169400581619279659609020396026937087167597453064321130546275298008841692469270447060400203500508832861266084297414604631939190389853584533177470595058992073053943627564336130133031504936723298216799850765062711371993269404301333855362622949355273970772528037438304918720835024751423468200660717523412971702956917088381209467600692799139126639151456854872890196159448343446251819716331827552340678547078613974439857062831885051316354483178526075112736773478115027901119524547646467805265462081529833399110335946840661556413482826644516721886218508128400479515138979521126238090064295492099484998119048010816829002872559690358004681058598808063636953168440511579330468298502506372875632291933324094625019118565082589974175726905151396901757057770890230190847875311983349363262260004151005823767195690454191918551181953686047083830979451095135448424382563291291458816949275592645056385857663290671478837253999640388980924126663465634767048699325321505986868868946957076863671568418305003467712033350549172987017467383984189717672457444823949997814298898506991782963495860276410511134045246816807226510204744839695323746301980661015671279838115375369071875914616406605998070661913141432353942078236823750975730430332587601721248320505584219874169138237096247679402297168506100698153152276971462256663602291981825679120915332034136249067884488603397906568599209522899049790407761288711542483135738487175050826352515097226300300885475936296367280892051406786475738084108951751625890642414741657884321761133588192966248424545896413876711089126280200437020618408979276401188181990297842769432667862705607987357549557778680514907346198114043302059953427238696290865652938972835218154583985054027224376496572938370412612089836540490141534039184529370640002937129950263580376969748293819103487308435296669153148403146479567820133318535964658817130894355682534221155434674784684918452107697499910643943752597564544492010360324525782139067959327116143913580739598262157043429581794412440961105127855857871199335961809191341947192471630059132454949966730267422996066083244032693242511881171789656592360768780988253976949334758486525762807564376622326714484945458296938464836434829043140471653003754457724976653427655957536293260786691761937190792292689992953216775477441800171330336246709709129049289480705759632180681626451222035637559131088074122230970643554749314513353977976295280403654503817732550787951072890809435693030971475916920204782562693629357972585715439222062730332654256575336568362240348687734975935792729864621843177857749894440894404021155788352835477643056280790834611539955815390493315424904993770224935699417503964951371164427803429852926832327697985788218108027057977695592526743184369610668807176329898854439968651045858571132859539651048064257190276599755953270707688504124719457380199879474578121355610033944161148060088984087986571760531641708003669020795209343835020398081633701956568067533491856260104599010803479186103121763970901928640378983478444036724433666084880159742039920890763092241407468227971453776177000557518396449755528289579505013292595257391050212854039222506624169525550072249477477821436118062536659952864808775494459331048867795581110450133996847351250113439524451408049947611891944783524509298869139398080105663380736377735302732969755306458265345203887275379976213348175283859924653290854645644741339384504755371569979418329185927512622897370037173090721437246665073685658235062454072020401366143864936918844652019987584850005720551153616665634697826935209850308072301215978596400930718839768576200229964053095625569590146282944299878124337824787635238887046193833593160789061139290234967840331698194613570139900812039294525518267606213867573556881233656908320612246189112714372249156373964183292389524763605668284366336852108881843656770104325902443325467191976764223369830670394364439315495158544135566663109940895558090976544847411201042293932127414779622667318510244184456146569123020450823515971210585408160107074707682875076677151321125327215647592563941592799709639652570404671443255610519149790383336724306645067554958605972024016234289534855316810703467449164419929893980689839018307938638142787443447391107826697201596745812012702378578249015971367586130679951409084387868731603702703628964971697298460381322866735216967855345957269980943821207069169308792654843452304738726616978796852174590859146277172067122039250368252922496495679169425435106352237110417282998312439276795744128515913041135582832520213108341444691306853017417533858953889302842340662042404573923966163582713856883669394397201716670299023140026834382286375124891833148797899522783748122083912581533930568441479247422995502797227755905547674661543358559279725163297588972724801171047998231788362221906967802408868391266787277809116983663610977514404335967014183757778964569472950407147300803564130481772168054633580458918881101514776127334583443309449619140542695361843196413888180708580814386459417993898479336138096311808997944543361000994945750669868226731934563880671819922720200293000831185798041424450041971547921318294653074499623093142594856278271997547126396287857118481146285865768430504409367580079769029703809681056721373397680330120513152045117820377542555412006864695890468984339350965210921608384503678740102539020206893982167547272222296942862648650620205718085430019116905132700762252633787157178430576213203248988960957800033576902713773489730827477492096401884454171887404461578506703776232696157371055056618782250456447702337369180432925256169878986243856935194799218750431931464622952537085524995222235117186415484440660439425771674647468585843952221478794679382434578099270556477222937962849238784106773118210069114343418641527913351353289695311948880627593014085540995964587391807061176420592663325457935631301532334304687910559055247739652169793049687460402868534390945164488604425671751625415825070984739292977067782585057726648752111581484548429542968896913323011995863865478719407062255327023243652749921163397676531429609776648345919210179678742031832122862314577604252016617144368078024469449002594609506611648582153756474777986347891357995040743665779828102671678347582395021257612147530336437076954889139478073795194358961371553857012297669897243218353447535174030332794426861733852169978435561267638883318416232662062110179010449821526790743791171969935029914099603881193591967005500363505206210189340189540246418795609101843711305211178192343439374521474443887308931158406693946960479674873752407189827048194263178465348687106652607524478370179015483558187210629730637456786679978349668248906651258592420472347526672277766591361110707207024859118436535690846242730177276150111883371603137431857725062130637592988436775304801284630752094356680323426772490571823195382449576643902613063393755868206800879878073066471800119258059483726226938278952303763467941201706724355596546463574769766580309994501814201227777875808054480882329456141095305517034674834323095587398930147569045425979770528594942746836579535259374258251402909814892943862453180567173494716645260399786981227089734945381751516331021744587117126530040752169165203818745481035608158201934187129935027943067814723296623042621440693266354311757972696722365262795756948145420773447642496702603747651103972444082128184785382226881972137556783661951508426249546303061571910422901662618497362181019264716195071766695157974330954485600845864094778571796246840322537831074224494788922369250584121730531006640164252245043061056772551520286103490830711124557236778507263080357277084521904483105309491003686088768735148113872230086580392536941028884753523184485022980524763079195876829057182341099660319522184589390680980287100605360655551409833244806317050208877448219915217687198888923503070535606949198623317253669919104647269784801665313171045593913327062940602960454961367643538869204895536328038454304718469811337294965127051226717574702145736502540168842426107743266850434198198444621629217452731889904568791179967603306114895227720726956053620322133193267196612936431945532852951602997721356222069186791737620514414368910186348710492845353050609303673684822696725164430449749307346029531311224754114685848339823101341170984969693532845528212332075737501173545968640465909192342729286019146101650319605479032157248037445443761708864570318459106163823995966118347041437834989262765912989128440848930911099859227215974519969713710055005287077481614804248216589866700897205811374493605488313057783720421783838696777219516527562622286886482769133729193043718857959644537528481022811728686726254935944847708175794926409682765999938434290909545268097828282786650824515771803904315746177032293897544035847294353747179277729020961484035818559156755933096080560571498259009031252250642058994312252649907974778028283193078095545435938122642674900866824020079900567068208987037925240234662430889516203488588209689728369335052620185452174174023253310333076129663039202585363364507410811561430919638317339510896757830701396440688356605304346718501846628252811700861404910835321862803085770750713414763633152637448639876761260290708660913321577398504452308799917346425105989695530698712998911480514328554971866686893630857349667385997664788314277130919247555075555547564911611813760635860571523413965798529403293540405123563255923012065644937243729716927522150146520885484801640444180372785039803129590109802730352115322666982277758255084112882047050500840011797479538200296153198571436275454851966138034135171164278997725923596369025256799448536863881900458681752014884242830806134801028836772420847395105642490085995070215563827117916783199428656642884964584642013803860825732678164577573895059495206902152986683080067338096878050952798650125831992493182415973975995018875833223343817651849791202447119780251829792921937879432952283227081630857861465881595252850898502917430600332392141304975955478602597987768504692533931552145923903797310525391928099071127857964556003896172452596095437390417396533544571849353417237628659107842495617521723116226223246213248875586136191424476557794516580197930599730656149554035603913710127340273477981112667063087566576265150294569858673827436492463456420707635602393000916651223285885299794750858954058019679639622807737602509566660300883682818975299724699233908445856624946831420923110640993839606138060897355442835309136771922218207998244144850280849995730360442366075126505601776889871468712504260354493667260930115593735530944534162905781166513331610357388206774662770818185746304481581080351538389684840461434498689637885578887239147806565929798374623540943101848548598742392336258360502022504014009933015218225686125840822722708540268489071493556625169087359618935404570021800730814201033287212004951342272887684689977186724193571869106836527252887739633538716290826923700132872715111869506944123671469345344305810240446871464223083634888364214080082999523996266421020333507814547516166122640792105520594585489196003293365753645648084767838065417564845386795983529585079180096887729592149655203587231967417954790630325472323393198136010439363104707640178043996541761125025286601653013657114608221630253790942822856544166472927441266025148442510737943354830248469613099608346291661757250069781826706739894607269445354313013970053062567533771206798918434982037886215944144019557642890839847884390910070893113988367216051486888730115576932256690949940894865086465132743311824010250462534122275040306593675873847718899136972921187683482999830364063906699587314478460075075179146776699836420683960179035330015777330291414778996106303959682042069943977633639618550534007889376068536108268373124294224716415289442116648907742463809498684813920178820720708958941850150050160411125618678097465883575768998423896129862140138701566469929148606885117031154976598353829601471910941485555993014022250694274316704990484711690443103476259389712203180272652745580423174693201779150342672306342648607952956284597993237049193406299934844897769709212488448165573374165314797264351424908458719287290181734822418629002641163811582983309435830914145573195123403935966023994117437822569694167883578540690357295556413459479283560074752156259669710924868819080213790956590957677072394574589887663109352092192578588232565958574961029359302661253407250795879365652402784603902146366433287106942816700113735453426019925232721089155170438966790278591603786284160180046168164464935531024479642851509061717713805031342839555417403838800704394893092319472118520659976091772485230434459048904390499742269864371438939260012475632883458037607821718071024830691746274849164425964449604753231331103480673428937302891318544862639785107414013417743610476895944109228735102458940395700487788525076714058189137545659640276419406087099173527186842155003854071567978555649496173316299393028803486334910708564014346828087090865851641739818260636855694223163862348079583387499170604800992444379432863300257989476943907527315398494402480394414450629261654107443070237703568998752174350253943545816911782457206614025507564293601149709502887620011528941240866413029156187986596250663458128321745660742894041470633572696890328018610862873109451419209152810834812531858426642648868157069493296733083923560933158372065107516803441827092930473147555721310700525637677133118291633894570115669480662335224198110456180494605626398834587357932554569765962558281575380119191467643966216100089676802020661981840101138769548564275622476810039004288113122102103631754149022880094759270158580912230085859218444286258757770120830505972196144466499133425631004123775367666419174600766834153397360606612075604226947352227667655452227178763356446099947555954400187852596336709948675812735103426597668714080604393011060061626336703713490076990399729396888919424924912218833812439161052110618754958973506869448256312843444432160144508403885663676407465422380677228207836011274800955861976960663529333272929498106444757046636751072176010016553180547954201553675098177296071180820575697733241144319767067272786853481002491168592417952638970378055679829133913762595401832186600228351495992953582995289146260849247096341112149965258461432511761791397476152885375576483621740579974551001613326181575244289291987661150084247090182958398467928491823752056840009031301250183374623942190551271991618950344576708048931665380026921065758814939882039882779131576220735504358424545568200248403108590481688680323611304264825237870813695369373950780362727204727276716642828269503419312482305334503582051845428162757979241007938877676394117803188673051546536251845196866570381483754324342501294689542659589711635382795186743487693359501418646850839977159786687045064113065393227013916893260484365412980862029030421655820085237028877935513047736269927846901530480772323894497855751005999407018036106031584415309839207082042150766488544295630568175861337951041122131096669750664102012212587710965673085545172853984230408284976922398883884379155276548005181242804752714965070516648445738148330783277583419341673525708035612839615136788582699714936752937642356251331807012798681591528651438931034836869948525204554302353804766403171050282293766884432552602529946940225818848024532288335851089081138548132896194800222327251667460866245782323075013000983229442523083976701302117845829042316297871833108701114181653265156321745485907619429059602662822027167087112084730217911999931801784835911894899340611638871403711791383584307439449967074309660852252747081311781577392341293743820143757053854264673314053726959257346851150820291271805772289453025930417908199375468745802014318797909357021933878388395828709007447443596394067781374512970001205752220713551688663565791250251903740714241087476980353565366296212128627288873702857942250343485594016003735909235363148699300217085438029864796256569464778347276170373718469600784570640806427103773251505550655255130595055499502353204027079990879320379810714726666865298456890825778686577175082319135059983493397380233543831883244493617631100903285896715558479683258870494167070356532872317905625271310466247816451704402852605843037743831466853086853551458405740969656947438489848903588149768078299145323537544972164113352543150505886475297230649299522026669090968388337597104732905130440607906998302227162792028336944564346218923619270075313740251321174650104254730139982317157009733589138603135697090362458736702267218774411226810562891151671265710514275246309156737763759070570316232124927318637265737544881040967992208387707146952428815687742399788854125910464369855725850837308651501900063907998745862668943764550149438943218576450961755293053122032098699133267830519465612676159152107593579161896834078981887924455159357704658224306391302319562625327555107253368324329294608302613920914455837333494729557850981601279566359933512352716831947119803862013786316271966759329925561538691139583254841764692085237950111313306863976337935370303350739665611113938324944852773674956176860864136484956740031405341781851353622370127675419593145968852546716194912109996887073125197757661023303666219331508264220554543753386823071205430108879781316425032113692467554756491174361107382204308945072909924004023623237282643158184999388921678450814679605483582799732467564828123470534583981661138042525912973427090424747501945430202026915168488445231785551362753203945112916795773919967512873804637014459053648092538625093406763679949923207059161173400107682131288928342392865808612985869583568607954925069018992178685397771301044908837505676386783215001233548283095437758570357051838696481190282294306042166822391263762940956816815840604603703820328535536485860574486414793375828236555796106512609694948292675041403181177393180215027087355967856023925983190348952246951333525132026452424313786861137920671214473579681655885676484368938375324081515464561008723298919525963732711014179899746943462274407871264396192267206551105886747815590010782853276392675511713128595208443918529489489753477046228044006747967655226818309517026531030126959732903550919005252704437659688542855873629271011835307116801437633930339993141398142621606116493904730539342833699220274283546045841401551855169244920435165439199086769240957900920090446995627259647373140148400474495267218425057305456707065517816488724088672392935978060497092989219930723278917693174989608758324636479754505488051258784016701408426117108370243811178846814836591682939995727305371543468577376203511518496045693600476897685517574599321463877111030153730761122159990999544473206699274291585774951597185769703641581379804257897021103065750390320878767376380643256863751363159039296186784610481038855531441664064751486031116362774530971888849234771772479601112068651737533337626913257368918924414229166817612503911086887377424786707701313043727318880759910863931900910154182537026992596814700410807434516400638360804584028823774708628463612096238319122517649075300709336657009348229597138228280019636051165698720575695180227197917013964172040150129348451380964746322209826101277010254692296446634396939487319116507513281373998818194773020868508016603663470729661835580296836504348594817250056301578180902420312683870054925538578253539314277546368528472498625803340268881557758289494374699329090497630044607869351198352006968119356563139267017704886979930464346995749216635870594397319386742611333707038859639296008267117634053736493169726081706605978065947606580662527849238858326879947581477848836837796887676755812486508155305379182538438912937726018798036047388585867288540619240833071170761700119618661138127177068253906070884844408281679685524563502681569652914880028570365284234834347079396686858598483679057959078408674779206221048679419083195655518070664014968273817205274206401064550400325510738238119989562172259648446941450920401386059194750713403494970417491477974844664261996169127878726612535907666869622973458425711083540043998721150366508228140472310118270903428494375896469115952333427362752124840683034743395155087981752580129991977813595161471902700088670295216843559394496062860780408409630964265034837507372316788400757802688649899235829516692498148858926372918067053484369727007445043294492688808138744831665796217782032897786405652669428181368757318038986797489055169981793895664431220992482677925747935238070730998637690185559627589892316403386925593309561533092946626658333459287764785276199061321291551551878265620282006162700120884968775315087977907043529511305780956157795037269012172438569196540490672303801636807676333072288318068648465345399666452681755916278371394078919928098628582573188487552617976317596054439371854339493058902033250137237711540493309191783423815459010161685924090646649194335119171608746858126552220270547881372473095478565269094110790165008767281057884505870895340939637128862936338178953767750916150505820804209440936980584459832336355199801038740149629577857825618983388687961492809756297328067836779887796546639906202191771923379384031841367788583906283654479188124407757121011271781070278312089131835021342047099392950858803124834921607525424430834768190534006730247988547344037009907252703211308414760130558022828888935454930739509567992216167195593360885809743715884681926161932158333457089712789844524667971970680489838954515970059649373831292479588439626245012047345010591877170186583740517511146419869023035898920158205059824530529790608138448212776180969539637917768010592802240538884346391081602793001342603505252932859585344325551336990246031137468018731356333826512404239004698220605815409834766053477000424532483637689244389859234984117426512103907413963108431883521459078519110472404084274207547734074030960493522690698926281880858335098411744974331982750636012077116580042011545125587018223106435208869106147379700046078162694971216380357618494280886977409162820701892787069299682904345411987948927544169804831028786361581700321890683003614860701449238983229412828819080629034709114487156918656365726058162682107302581918750245744794101462656428629566430995475954442266482491981061719117239508875975686236879530024639401050974797866790802697401092536929271881210079103342345736097967705792976263972022287156073142946091393255322645280375530010925676846545222906579383470598540096867190317302831007430457212458124090142603933882360362588401031213061799073907587055971675202046905771649290692640043187907973229687895390399171636674284612638168595493560560383179848663429763103928664940903228079167675066196178641659010281987690026438176109919976540354130105477730808195570609491217332724262753105500008429917982875672002751493095573078698995210856927475831846380855543515338194659126369064337081097711852095041217682249928490603573389534411358391457648327461934847142812433384090461064674768995824143211385633954179403107059077053839490768146555632849405511118024055353551098059905961045257345490739883301990757268619772278878031400688207972452251245082531861153892540359551769707395543308898514855301928882899053161535623457801970099862830234101307365638615900309092685434220706298378528556912746097619911961661722669531593273575829843111915111839616204474382050347500709182874418875510557930013046470725253096679339293698609304624045428703898210559324047186586383195310642462750097408099893757870685575282327772545641765371680175493791750036760260972611043424161073324639602875164596807424032332327851454654826066623903593668353737694687539683677880900058046728342394263050180774390726291140783527745881261298400556481733987450261349143381004011423026946503347125537886438734024543080567765890649790895893935042626497027382205198612979973454838865548206675824342792944042829068718017592028360128664156712766352132902074426779711295607772607700035283858795238638833380188080973248007297061440118707229963633404517385803563797411408153507770563969619660882189277507402163703793126104591650755380996048562110461500271624390163362438213267660839714843329549154156422756623544217837307676525670362343849422048992409176812999063327344023673401801957134713337446685787564113743180014166118147043058157123093643194829919527948773184798064689971189475178923075580571289327637373737181727857848811673130351889378512594241113623326267117976556292608042270752231540138336236446085530641189619401159620730103840426828812004673444399299135670644935292459048596552678495959422698916174601776311872389335915558043004900799037220046321988106590994155067582891159995664917784967658705434718035678318443237483067110534901630341898521442284044001144711732737955081214456443039368279586736072501175343932508040816716567297851086983056756180294819940585296497715503781824508444245412385886659205194113444162153242484154726190085420755095084527489288232874446656379912408658831654090609558647063291253742633637978751378693918048997564599948404674227713032654990225591722487642372974842096621248141617288220163183920936192035883711225245598581760720330443668988043093197541532229200293496768271410139173257519510046607266364666986200727432784775852279850236087909623249928815393878464238100643538073729384834814937984051638049584381134222377956234196705336882120045480507643299308686594764289133570878913751298857996626110030453096161343142460062569388514030747522941303637787292659097824981117007021342844187012158773124705024536794840722418230985053057144264878244196665508185334567220748437117379171235444703790410161458807039435863026511979969210764763012004381888876526831812946942008960659448304456190126204893666770558381267202332593610252083835409361079943613466688690995447289324844125255516259037023427282854408439781929336154063407307145153861446764437328842869469391304622759939075114394025060857764009020914772553023692523584316590732390404975856240994386626714386818753193984407056233588876727055544605920122669214191956851276791181747721683230669391312585231086446711695029866481968221538411692079067174740337071205915981351699424432018397318363327880811465071580482159583394693475386458261950528424545809300669082525696821696738482481583479789426115278134982267118296227831086411740248501273659887192095407667622226748627674060664902938864271859426171508596856086901226627247631338716818144620027730640804523418678169368675698028539089294187146982116617545799356474003706105748473920916653307662228131585886894017943717800037446550623498163365572582816743678282386760282385874662439139798949625492890129229287060210285952507378671519063143134111241957991739188700258224156498566224967316169827475630421810917057333084313137122077605663739944932620725767995923186448069297674109304394176749084887413891641366019250478415112278520822219023795646992601422391351723006625919272278184896549274144610548723553027440947395410979309602892701123258525181769747016563192495472030235875735544870202039273855318092366140060046646083681136976595776651386751275266804653779236517830186521654446570432467195451726978298954129889164455457187072781742054474167957097844709407278293526958530478878874062721281817622024577715847037349393168879270751918027156080324796350045745895198627780900052972560936267185543323565061303071046549266143868612952248453846322607520518240022551766309352796292741910831876788465615099073908131382061314804665027554193287833253164185147641841645924301013656390250540014652341260396664290460002056340359535218428741302757326141283938152830775348104275100922608878144539377129286425706215706745469053774647716177067695326791229819228540090893122168330597181011499357468384718883336267761838583585616066550559086067198288249144728291107583195445231175041031498224328650270872271164184120683597722938915697775118438410511166572444074047642174168380882337251341513733682741071857124643681392148708328848866291487701669404843341895498997914254448620732028818066364675092485425944085070397210172019664269590076005048683646035960387945582012444637377762022258552609927591997657134667064511731273219518759063363802861550284478913369171310054731562612101914252338569115946270363437116922048882640667504839443254358923919863767786466749103235521550784623499408511986743794449035946608196044299720900664138447944289796717438371434282092832556069284357400903458513378270260286788160760736648242463129268978896858918595879816832628827411946258302719985812503894133017922098907455217077540285164940229572300933341656565474524204470730192476716240276355148703639828080002350700305754678010228898016206180775222675237412479524375739022449379371088202635103452446533720458046749446730257967815742123371180807530460095501623111424729582666971626505986396186726089810875561357345488920117562925690695724083293193799331178559473770342396716214451516478130779215108051005474828802804083484800262310366329732818972312242507677268737702745136400305547270359449907825616345827731904594474263413624681259086432311155259230038483412464295401642161466844913591699070871982707397208305502275281063274357320927296810300271902157178854543814370789336411326527374366577867831487868105739337816415196089656550468271910434874879918237865919451099938477934981501284739224578456048744495143707386555095928119221897083328613321297637107842824340593749191190528532479319749594254692792664563298091605704527914580009790187173425746233488067307085175941452861269851984426851377320570443694313875452618011078757139757778874845003589387947732371825146988668723324241362007306119710130563862998707975228155269214227126290558958271822691995788692503891021860053609957574006071745195850642898877869007625988694172177132212337364537300189875261387766156357558850452752453159232730061571724593946756281894858529762439596802402522332754345819188634430479068206356545674698591812253171771039107461114459214357146330787876482921432626808620532586561578200367769478674940306447308347453373530712186080629713967802257940417599032532658367634657550304415526024831498899564299575521205885462395814259914306223545113380706876492730668248146090293348923202684332959059962592364721692575711173584261783744641136543204834468354916549560835906125277734232980296535801826188079791184425277260406128119030785121966174635105323029471964928049877758994955822687174196236000174718516380164137622444266298518229122885079597767508378319552072820290672741849853580234603139769774228583767368353375800057541177122231387593039788684489570668095481747490614846544591054815369459525702705895137630507037841616733875088271037585942958279249679105318566921431164070526672079970505213184317494474240914021484686044891615819249262161154595683733889063001609776644838727441357680346570581705953841998222836415336278096161721204388631884675554151226149022820487516419535097841221193753472879299686183714824124761661258300797833558308964006040497860083686004263650197170869546817953314858234928387685364362204816633847077878934552142464779703007630337753001762184659135831331413313327503036137887190492006646095626076400090103917740405825390941180706748427311635871180988787979478929517313412150030897387935196631614362204610311402932845075848192904825122933867153250523022817130844710385552337733974647100212097788377920716853817449560811918721340151296223288749441718991994361960633061492408065805144783442411632832928193149981607395644974284675333146629357823729858142124748993147087035568210239617166401297168382119765715755465126883298221498418484109874229648689049907425384124877965126837684150312892075539557071331082967439088881431975873120674250988673118831290305447493199643752680404202419141712423205677307533353756661988104529108289103678973191724480711478161192401835791856620337439415510917461321973267797373110609475397134911995078121077685901481270852095710591332837070521125010668876015419754533175440621014126033816599041271643585770102088796815232624395221938867192688106132082812762603407929679380705544789442266177625322664928253734098404182608828360409718386556229423269900421137795190579548460898210383422397294228401600183651654051748336260219104329602189615724924313874392927750006765053523168685201266908111449548056852530432814313940775115231901746049054099976112480715796293998952720661779864186513426990193086242750855545972897569451220003892278068191217995405988478398478112461461172476977674269759350562515690926344225486271737364937608416841945028087448019502753536352240400560866465056866372218230872613409644541276348979517788751100003680063383322762478953631109512700415216118540306291532308908500610446418508266307149546285977338825742169134047103748770602118736966549007715052167454439707883342202706194411524384246426039895638197572090039394577339660269289217775712138097697071099684612863234643237481906574521364459569745238908153981306698410737168015326032662655258249177037217507675895125478297815242223121465353910184935721062304039270652861376286184666219265092509595006689068343135446422905471373454029319823218893778588978908350824230258499723442772907834165310381487359151178909520407233774648145202330016890333184104019789532439012569842149752869165808150130774578468143378598465300296655313724234961426952645414407106064218787237811462807086829529840071802572374211899795006305818394091864989226293093444612451196201065853202623401266322088240681319776505369544208186750896633246742714395601518571985031426933127352150049646920844443495437131866084884568817094114694530745906726945491352887846868193701994783816770096746299463144364039913517470393943934481968617402162159731366653591368495416339676255325794075599725693331504740300513316772922795082602008887761533915052934995317478777640363086240383600118851928328720956821784778108467978972348882536003668360028039431013325987105659934365511554941667750895875435279179711190322974809260971704014794516403461383157832313977727879411033888681573309723415084509624585373705191956969966020146370686598214342139579341637818115360412555904991117011473289071859673530466997354924239124951919050207839545175603653904195634148264820620566054541237614547145096539020689621356863021069386445700037314113432081131537205311493746782035949201891671738768828050228447011469492406480767879623749895468630245016702650000402876747462623336874443391925604065889889256700947623602847399921576553503557384338967660152921509695998139519741782443901722937334760056157384982366093984218309027868447063259461701364544898742707142115861697813153274860456792648507390807642988712749644110201818898271214083471753871758526685387385586292275671707010943850609279136262043624086787473710739990270600252486856122005095791091115561330105872437803269727566614523443787538775503264529081277974828883833857782931995659370787312651739493289396150107332174864770568348756736912341934657144724472091818499773731542517585107249453452525719391526509112217737511092976995650597610941702181464783246048442220069582871028522493593574558968686529949868151607744717627646829119562302477289651058203127246083563242635929321662035744866995669318241982950621302281114875285157077277025055046987327507298719788496501918987376646749981728167603905496278687658056715760075411149641804653126039367924623154794170335798681246025630509665162825404579306828109734546414409485850285189305216278017979409389966950318691052357228120666206250424832290964589130364167409883051281470162072108785995275929501921471300754421468794912874369252545988675014754751059508869966018673711526154290723829900017096482546007825735723128749683592340137183097816235247687468475298205201276468620600820979968332707555849843915880579990962840735891283149024152349434276650460360737406629643025188392867271161506959425011584517592249799562995007934574672334861908084517453995997929763991795005414700568740802139462703719167670468659093938861794668679457953248837690628127758011954522212435053188484828774379103049954705431600917586657804263770765808628976381888444103848787154144444241953016414026910746745249228285035882594635939756600022030883345304380025346287232245679252836462496217024334211638764165567889956881158585418028077099965306216944917353108700910826340269146108872788531836647767197378807410755063312604458911268073997585683595173957258344413644157563828748637259430873266260862987192767857956527505382831264799288510639399135692900386475324705016338699522332816903274233435616775852448540570190246928781308527601690275781761707008875253653519130944409176503598259631580179249363443095543574894891220911049965098390372877599606299787344396797356419356787896133480057220484969331700061141370595525684448234385242439347226038976337578240864354485732352345057346186327077780153651492596734423163107511416650628875024179692928658195938108195378596633847320937497678380846398649837365322272206579528950679011844336063124413787965690403971391066247815207279936276429399436515217354224790181179187023856617271708957009745397433899759789454161487698571718304601167241574926674550567900806991259017144709171987260782265283221140732994121812161945552551652589997628379618469520716471509323153898108546640153184243971879221485605860561389145183073183248960779790395825868697174458588630480886185080436906025880042335574124438020878784021992892206926833925036606264290038534558330699254027511361468801071550911481707861444275402971173892575559950001603691737998190352118198639622915080723955229586419883160160166276624519810549063777143850304416203754700699980345786866890801294166523556443651158339210412653068056782378977906112491988126379008010507290816167677672267365261044788016657709456290483226753798058963946278744173052339959192501514320840902172401266124717766119571956830767884887668403113262772452024199140713616477902844062051193809671203494927639349555471395173768058675711463919785152173525037209363730837011339952135674787055376171560717176648901482923827008460596539860883903543274232211527270125263976542906271748209926409214152319930908231608291314751062406431088779800395555822327705578377873631114187774042672373309122445104449320174854070213955576531383401407562443654892626831689855011362701712167400829312713032922334659317837358131926543090692299981986654764444860255541231028945308288517532334434983309239026055434649448124589003550725071225228919307660121548655894324138880339508981336174234841736511678432803783827099799436486183115864532488211901558573875996623389684129249532432252805418275942749611296701540139015532994331102350150280273971455002900496500380315233824148028097804544779452802577287608843150124932716340697334085918367275224206298574879719571292956945911916589625143390436218998942864997998380716781248483742638957081670735747374784323052305069702570073654223998654682070881976079227351957000015741684943383927369283368860369168729654590522067018295100746813273879176899267936403101793871060310572337328755048943889557440674742284597747250595867055857930027672178335100077483928918093441518778575042590675833229245039040023126308863193461658024127162922717830340258874955376220928360079812798677581971509600422726937246007822609335695098804620361298574656500920507653931925989891765555755343673378350943897479105897319654163908847006581349705807656407081776973687079800807110262619212038510948251667634908095752536540493811322422164354065792562114087135004108332559914861310930111236992105419069576882810143411819190475834242504710669972187491084421707225148888191980768074227270860634641960589191920523239477192988402556037122119213735172205256831703918892430179463626416660374335786504248073918784252656744360552173221429631075000664272399583408024966069561993313927811318194638257353696972296019059741966414959367585413155683484350273104184041688779740939339416228152671689234012774654221391790370573193460086570570378872216961342159100034850691880180843841343999786822122554281850562440047870035375823379448526952925776708693555391344201002357539917070311065504932002814101752933445267401407898276202700211006912508532057906145294459091697454100989142105956952048314522847001102554812011131817977319137042237892298143802644997722294777451506757368052703401749478522068521853488244919409938853299261658329063584266465202266305738994845335772688087934621085930128286400048863382299404805259685675346622631773221899998820168358912280472893007098023311965042961292024832277558754660259554699017676791787663310357837845205363583331390871932644755309298449546548531359702872476425748821704463023938790054050145379230738604680065545454499508432525715770546344169738348205648364286490637793414495015274557086155592457427050867837612019658617395727135004694077210958980469940119748425662150437077414182974034845042176627522139216053989080050876742604788462139821267130578632532898561903639010214145103803984945064310743213064016111781566866423085090121122282786410095429395530023088496354464173977655232103104915574236030625663344361375042834827214969931117624548241232140777692172008816907123598507599081472318389681181948575887962288869550591519847489638916440584419142955163362639784504887841724035470089212155867998238087378875229415399726387006868156860697016434371743444010299051967412914994832335489133827696280861185670693543565739542434050096405957713501625467591936841455588941744449444282399897931272661514173101937551742319776215200360877190156276102940461413788424614697109352751213351586882119360066342894322512786901357956812859711617931056141384542171824058967199172410457642435685262606349386237302094404803968519970168702614860518236990729143424609090699816583674771774078318318981062530259092704642100562112952183766218093753407168132282291770249416720190077586940187490915156301987367037719789149294513825514770778636078916277622076875117732851190874984076168063644111703416009563188410186092580538353655823275113172366865341926991262438653717500194667713121060162736584844847818341809012496661349949293582843650754045554075406953984841148428972719362634729791057991599738225550678240802952662806031482869756701270330005110812612542313225651484021320896204654246360628501058372560162482825796372665042737074188422617903490842794644923696763641950033363840142985018670356261529650366421683112692343660210393118459984333140081769619349173527973945647289898952601018777865778978311646751910637733221879774256907212208539624328153478134385147849237317297932778098480327928551340898750124258239703266988590421904729374601763536650228442354846972274739951407250944002118388889944258377253166162320476649393576461663277575591022139009735117586486725034375660922709176887748593501465030024827036882680648021111386708219112075634059139928888820747588407575059062064457142416636471725534626308499827054940849266717479200150079781094770830687411010813121907038863156159930990624108682744129110579363833762620454915709936943500197931294703115819654057270401139890729206427482144534797990625344632098049032921828890324960236583135314871314704651512568984899419807002798400473806084524888086084132485145969452077319934480127443237392118753076036788430577778776621622424548300283137476690953944442690626162660728667351811898047436625089828110762054504221897762181115317842021379469062965940774697591859640606447496676167762798019875645056797387903530819532257647529698042908835567758076476716860763242596432684355253637305076632013931425107694872944570170159533320706330911996928495608181718745534439231620605319384470049503935476790143827694893952182370132088962367575315457654048303854738916984580914142829416563926265769905023020786154124670572707343731892840715225628571632214617560244790148487225289685185873951308368414120028908602869427372523484148440334310729918933185664845117062327415846515914549251006485267510358840422754806781615119982694891332212381319457032357832216636070060066774475339312430237975044133764971215977627941304480073202566867398099732119325236296262729678080080317961585618499159576989201141244192059868319287758705030257558583731504970932055049900998097059045706761900453030980160646045763205465179112536726428082571258193677209635988782669785033701914170379347801196226629699188346239549063731786605984967672309122104131592914894965080029026289493646214976773172282135041050167786229322149166921237119820650487844081171547651368747111716696561467866744087246547623200334384006376473942737232652236431643949388360569370384341048732527682546910145303003227594571729521491574118965084664888276417066488735746226690425579690768174225034654626882859558138684231938760373963572385216447918966061922667928106406883441510550958376586665744524514729000125248653518466893124539938604004740478733568754120573947666774150739559386712430624240197694965330412954274314810175584121805862358504105171410160230073621753349663492275761154231811282756280067763888944931556372075976002406228488806255879953301668985821022750713804485375477681767520390334424000310145389099980848814721536263534268133994500813130278926649210065470841303245132881259493975100488773593280404622642001620446793745011415966205070960681560152846442539831511867397800442562203892152749081234788958186695633929047191836085541096109649726148199488522248660268158586333321336067848083661823046805185420857402835398814038308671771283666729153984298104530071476279166754938166004464244965124959272778536494674575138196718043088405633556689376171796527447154777236986789057656079309832522719315462500542322125115575575990252454705821001023858719347777156696357444036870071817172990965112286803092239607787682421143094374607852012307034578859206919192153330715073767787585750440026424840260905180372998378494684376070755361699784185637794847291116626675806642586693053075098252756587407615096843102590943192690285264602572311997889072377291874423913827798576150057857795316651620572513368152322084257845668784957438846995181470660213596950035053133921785226700451525757864162568898556453570627084908531504996878983347693036484769564901169277078942248557753725124716488360665552833938059962076165971972072316345192498377939788580904854388402270296468789641995362782806445602598701489698037895705609689561294411497884906160356062348523513867649472197604437220860014771565850353523410418281225210168582126388038352124691106117460572626385481627519222049193680783172531737949900166398835575317630185107982387667111441112242833770782663067095039823599320346194095560099346399916072150840203648104016640215193289414176049951551822598399717291495002583716785285006785463049928431264383473366845082233579121402616541928539953593029719681728426122911144483018978180049203188429875468325047154922087942684896866347790327586052189784573873741347676445469119223948550986552037855129929561277146267161829882521818318420268871668166448559994387360171866068855665557402362379348580757002772086902146285608614091690058745489025066883484206079846877407647715084696650348118994950049715985206041470049724637371991430404338722551990852826566617704641188282607855385117784379626437531659830415110320364699935524068763067052440409587618485727806305761349251319500775232280925098928146959153091018885871478056856773982776044982283551673474050651624517797766124280061388188089673773166863315266726774413595541194658401671398298001784486260826649062026933531429050776862994589716546544536451231465025377919390952373588380854339272801068830914169800600496246377094913862600169081692380269248834289346514339096414630144458652516268613034014624017980026018370859028690431992761046945693751345442780209877562359002143459539235091786671154743684043203176855086959749643972456777450842520782043413153804113772524756557116451280911676540980575425420988513967982668881380123903169842117297664028179877553865836114536883660485267834872454501413359810267499776000972950288470641785697651740036378403986254465093449810559631289682179965388672823436499848574193451167858474871461246421724759348401998593962632181750070149747224853685293067954882093338937251026377325454020270022527226912946182768240155909332685642241128260146916537684736147417218682645140336248828738676423760399605350693322387072792983857521455549306787490132772650340521742090361909760233673704674243025283110949776026225305760842497938086761907767994058966671793114505868056910801618354255537615235035989301135909322509102249119023958899266754657291343082933206590663305407543845870793909055696679399177415591953829585122588734968014594397007174239026811893164835236117711036026861684502267340602784374990915340647742680610710498871946499036651432886684558213375255743029028283826245222940106340899215113906432852257790668487669236499230391781399433771803786939985148600016499609303295222944516985912355948823750608765793824402620345648848468561752167181260151620409544235420189780311126128320554209364626391602270950245232495193313108573594045851191370113848313455928983110106036883308180394333201772505765343977257088629069034009994741335412095541150643287089862267998377937769460495818223727875084635832249156826940607491141630855395221416965914142758410882521765880539384171566778966419330330626430375044178733362018009706253595882194964356258424568134771672592632408206252164906947614362865611561173659967337553771114143903694036169753616412207173103227924200587086369716816288048664655112420744830469391121911518335516017231186867296796604802778368089651926423460478226515069978021079221887404757725850050642726428382697598212323779737113663261067846406040943521475631187396943316199138874255694815526611656638066413631885148618159786779865922064204267938330497495360803431833020814405153905360512991349117567052659420904060282612993402588666766694936431991107936427076941854535271292303768008280129123716626029788550936527795072270747490538477030362588137835772346232675325401018477521893856855039867563770990509669066050005885911539866786717128290815385125322692895444115174155354711892235726304789539248110640484924375495553413611344684758727517220581197499488038064181135207630604512868275692476142317553375159070658295882744283777287310480871924444100581767776605626480715334757801595469573857324225805878240255490310711434009914572429233944705855952878617388042437159971115123619096492404898464572608972509731913217349173152280025020857193483350135365784056268599327559545683069780901181637065907386875973274270237547048246195191793433934454047831925833455848934276250141406025074766728063164486776645383216600106330329231587710204179006057210546709285493840243688930706936144236985050834580364705828609150087946001014768996821694133242345442307902981273442725142222155643116044837899752154303742486472744058096862282216353773337638179251891149686389661649527963907136917593122929020801162005658004635817154962245570302588063140281490509126409175380874511200076848392176621953124452555294125005590798156551597410492703308766473423323479624010978940999317001865366257767580850010427340177599220677670756924857686880585551011421636481165229314212969674148449403019620402951444553753301949984546838239779635796159742927949685122338328134750513259063442589083099870197302456691564773810001121348183656382184755482289118277082161100897735422136246934954418512728223668393800065949298702634424307913905879507666285796153990980339251130660232148796962796556278649628411847621888908683995614812190039099065164398310922852592091673830408730168429036412001630565077975421053094502837006284104942840317472833261102442361746449151468218568293493579556431125673057116794593529240593547994110891015512347087538001500017563170162093475742883822651888526176330541541238176475509804939063288147253418893038660851290048189037834577030535311457279402309718035107084842206041005546544247412966695521232099341114765233102795918041011211620958291386089348283508675988564208039699799092736482557561688151068021353230638372425915924781671226967330893758039190406645523492716100179454029823643748968302289531951003777397041281893575831304054293344654163592726824218833736595242099949441242101136825695863865900140637696534736323155889330715124550298211105742268274561704857928507242583994042823851942779807842101826553230855709782720761541497417676620324975992019782720057993973418425334845790494715043807926856439505617606673485114970035171692230404372756411621651249190974648160372638365090578960041044408099832979733104172260492166836931811068743241279934680090867743301621847510705242626904588462925708312287988833275144385753092675504258961911332813309046461058276595555879428074400619403862804361703564694752030995629044369894270923883055908944530372376907207839147258409821443619933342511443094150773317458339014516835628669117883556040509480384447593894726676711227574324415832892656596930403801674388052712154331346645420055732403054515420705505671286732671440301851622776175762690544704799273080716419870330128454824327601209201984273327200160245914535171045608040423258585176274050007653123045670504838190347841834823494616441240522120484108674656481195432704084651236097157188485039813706050833468253568475246296259374798027375548710206690354472009319025183762254684862538967894731841613293915639269255748809618938456048850347638933030705660697312679576754594983541124636967622215361532267158354050775942151931251790467391359130030688410169953807539171680820511595452182802488919223342946909897922090805120247036871426283893879566083273778839552853856402174093029611121276561405524695537853222842352743078814248732069744667010628702491900288825856656239653876674922881664685524471119752494261253294384328403753094167676588086211739320118104997743466759259734857479072038547791351469962195456572974203229417600138701784026286988219144134159701164090107648146283180175320941975619387873851245658313022342568957745569698304992686275262982766674612570272090617707549842528400007252611369162326469592527482436931968161328270715194500567200588710073221506004175539679147109627918494107681152241568346802240459942043360941784848727444508792198568143475979841387315686359698836997307175452151552979505723966283445649045519613427789880660449592274382491977196841148574508813200048155918627006650486988020858451870900244688482686437532664927346833865672986921684594869353776389669102272006734595407371655595659286475072848341139454784690004048247538035380925145207396443528706376379029913559642219461384335268858988100870097546355840519440562621516125336189839617134926351449563522517687485985246199984831265570762466532789787415095199122134655140642623112624128802028489258249461282121331819226521613675678648272103594809667227734389442879270903845346156599710792883417169615370902414527991149039900083981300257508891524145595346870202448595080984541830950078332607445174145304003376846030985261929458388533140361096416969070062195383163867059468523854011686880456054304644619811112588003509356599272932391262986454387795701128199731159146996018519136594552012947699252460205948588683775279458222730240441444181347669107659613963028901621197867085519926753798719368748785630048792701968515168300468700622132544464761290170707582434172625453496494061296153078349970672037155467034515579425556331942846983684762367449811003564884182754501777959468665322236697339986080714430050004500015295051800623476843199833100144754398332430556525416305673521633642748164811170763484242205502191014235012186833647247213478162846065465718978319830594376316333419221496032696492112016627551383272158990282766910977260523533212313323726073424512632828853736910455390559853859431910257629069528943767098126274204590841097876790784870236016525323288866000289910619427924950161874180259207409306220028193297588340524843796212928623507226697135520011505592429887371873846625910804997151623529553989244397263008045582994128604637853156430741750847365559992560471697703745727490671361602296961500501619296113524908715004001971065011836181742895133828615541648086690894963925360230958961334256297272344089053780670704624452829674297052192114978981289020995657435465420266034621363923135159670940691840525293007996338213932912015792251724275556235718841150717503908592593459344595927501025178642243780639125291107984316357218142220738949866075289229805398227967362800744893512036364099694137776409776286998329241671888780273964723382560528945817974720048252808515378404571706859649750036174675685838614580870180653213482825959313075215686542857700132553718761444864707487832618501111884980965087023355437006364343768675928504926861035131208168500780819774055484089367427884626373227478214250219833871737593469865318106801061694638345334683807755037664804783056235266055022968493551354347601435750516301158235711422771980617910090554642207811647621147229524422067424109111009588719386212124596016852982113712446459134866939111707355925079027210734472432936282151733200504646333684263612685642985021719815507077353912404458331071561460059569210882134635532979712907033977900090647699918286638488876983590499035843081613554016607006008751176857726954264216814496871971734727659554695447731805914434550099782651452463464497798785840050978810879624933055182787427049181129970484166274361582849312337123908848674514453045081298688910248943092502762202106204028798885980533972862122040763744270592260716939557311725667618774608100675442377095929074900034466781706709859168733721252670016265508621782073753916587707983881040496288116060938842482268938432496009795401526704163242791781633248305433794897171772373315694981593643115251799123711925480978202716430974136675560455173021592747746965680700501235916834854912975572473930070113945475855387293209486323033308764857837718993221760084410816566345646429458151887781319143386601729186410364768539881869421205964611700991780311123573454700391125089476584157786410564082852778070781653591845037635217496615042601053532615640147363883244085341189919184763063060073633043695166446019893598799893070094307212394105643327733642774903180920692382650337058079948027089130629597748394750221165040893642623093144893436778042038425327869954455359586121265725863474780962470209160855731237713913258316068592722364240969315400404430753762543282779610262320477176335121865034602479608879341278219399561107046038874777766469788183177948594676774507038112262356206825246433683463623402832761426255077195858781311783080573578372222293227540913713661252784167483085758590218031650151996531752603723276999998639826276866230273787793354523941737421764066258974450250519422961075159837509246327141299273886863687283204308129854586011139053332415942432858147007302640573927147556186962173070447465245541709467615811652796731456906625285881623483981162074861437567835618301096389579599118409384154160848628216702782845154105428714015401854041293749267469352741094121274014475135769066320251286180348881331343393864014225375308577685257635013787091941982477326375806307555875979196492953482806928375190704148871552604200669945938055031357933905018888854319885449678072511904266022621620250475239198580882760637121667603895817658598342820580075640983329885480256457734559144557153815876971288948395695442918916085768005604170944670133746314431709093884527617446753731744178647511801765623163431388263708131112362270025420321136388582450047617223629236126662833991763453788820044793314687199728757130006195339231430885063849366820138221982174998330667783632168177949970563888312186554777673915037803620070296009718786412332743939644003331523571262719731113748616844735193245437529048839684585214792276363692729811623849005594112633019468979802641655350016677727222655128137202899795734520548289576177254519565770437358861872239991735092946407006590503154777257639038786818717871679479625664483834754081097856385835861852906018388928768351039609084909992674453707147150461377078652796061704318999809130954915729455860579725635897923121262428519249749302078356716216360514567414455280521952012361939381671772421499491261394843071282169507969835990213641166680703787602997520675354855788281039650657723474500255530405740989679870554790482274251923099764591837656137600113468540522101670044900023761961276157434655379815197484142944837000575230473151649728229099294814641991027500921909465280185566890019830369696245230217160960955033009013458847424237733155224983322719568140085146424477368460177779303540416435200424351260373874417414588498357230587039221158433012034485747464871437878338110160459615881472087334533433859982233448514562917127742195416315894780405520891424581234315325692278721924945302687118008746019876955648140199880777346351271597520544950056973879088822202866785396917250799684030549300515860935683873212422164710844032103549379741694382979232889242663838657753350752467561258730039736131270486683317730047545572696519602593253880385506612718818287643566992156434473058187990243957783817606718470027127101901593384077056551997909153174954905296993372568518889658985842349915069212373010789194138035652040289498359403169427698655473678265477014246939607516364957175160994210278954113451326047638809186755370236647026566830316018371050381842029893883503767162407768682717703482795571434956711212681668237137014904575638933847716172302355929605178709845678781929208168130613151312779862538700088967104492807578650531533992634890263950680725218408363506049419366260911256710056780224085491255856989075429232219497590358440741088308683173128826520951574720825010399355835772840163345773443366418488898893873922498268875905616761143139343576259924655721956048308282515128869777178811712533672877351112899109083048613263670677740621902187383471409989402886064865741279254942938784688495109092752371514734495053145087112686809519172047686669420267823586025457569091982981338790564702053073853051248268824666565914822361860910914262400431255655580525927765835656980669524645486688962597978070420918233638257218435647247729757608600449708808969938843810892738384687896935022110950186670060723730051181408310101536593534038440196227178909443125156735639517446494185659221986376965021198686843485623415158239437300828253716013387740728516055815391139473539334595734109279532057484808906192859957676859296223137421245866784038021477433103999211346064329643214102025256317670700907149674606472792111358940951506055472726893361795611178585977986853307298487671448736712629888283450717929579053903317038503798887944022962641451802122881042927770340200950600278648365064239368411398594928027397764767994451211573706856093317794549262998286996839892561687231744838707279289724580938969278103192553756717964558988500112755912266329434232744316762697239691938878489053743535823096472516314011711331241091342335633267062539922295302598543573799573546783595711125190966000286564214121531503160291321563645740344233200373173959463093801267851353905671242347232012525070212532014171828765854082668234491216122176805930917672292066222659168155627019314296441568142196081669907652354220956404377661766117188861351993773564344588120840152340316118503674298239450897393344582990020066437366594101897380765702512003329774831523972658317303502939971218836793654987389850657076813761730766754955762916764737958393249883661348822830303060897243850886194030902433190980702836371292157637316487904030464740808342988139562893745874146250103897768909088717166434225296857652424881218937423128908410708709127017033701019335370980988281094610341157920698712431064246021332545848142205509940837604857012010800125459393294320576825021469242891968902411834383839135018254843767516308218110197206766798043826608214579180082799466301525098061635369327261334429957367304667731186223503590705288397597554465559093320789773527792499096785111373459407660377974415976143023793987372148827504891034036155409774276923826827416395713509374594296966522482341866955459190846853388596033753041573209952058076019946317809198659632621005987511510768767244646459885688871738944347158325811073309744233556669047534140277846443307757347786414783998621734003603931964853508349921291991012002733340083929518243702914056633291157567821418857458596027603550952370739344008595615744103202207841305975023246034814558627979367876649787409704009871566529284172997500734082561649393992350788686343124848481388825918784612824312981327540139934588146583638949791587113706203667610767998143695049761708656029153188281492481708825655037158818437284476346934559607279057209595693451476964452454222838143541246619483310648326870814739112566762267619616854854601219616029013622722904587466498224714991593259527803344841743212020369398450336565909135274569687076139420739615779805183185835297160045649704811731249041418446159613828222192394640559982616994222898608816802890581364401968707018614798930832107816891239798236253015804722273282021575263011273935533169960402243096716241701044285379881953116111715187705205681438123626655261971343786519697279084266905267929263051188318339257147010257353331481278903100888657215063246920619535651927253471253949980436632372449824789917103996102122991568430348597054366514464792383834691949469481814766427305615480886437997931851900427807090941821149693937733884385515684462996343159271900547247379934473430598183222392776940860035675332472950758886543611840092183895274666126357995842780323936869733428079448777787280098115771698434606092695280448879918219037561615113590306317788181672115807953379869705069995111678228762604738956981756963535179829932148316877108280206921042727343857592218168835053289510979582033434455377970550677499694619274170526499085951898443716921858151333926672081428877342845164329730750802885131600093841194132877804493786687591001229858955205381126474466430521443215769615545087634114578851729690712617470589827202427302666057007864438435617883438980145569112641569259145130979493380015985099329399106322125630691976837411032324194638557298204910815201178594688980585774880491404535791727584929064426662650878723187247327702709211152766971067136652086191738763168324099362905286242929205232437286021985842506242863319387585433536584588390240043399224545025961080731957878529375648689345059089733685811641457305828875183032267370709551981743213670480270247562374534286937321368491280685053911517672027817768972162047504299737134828771488371057990025676328176268500765935616447742923231399648060687158931955583866640001716998230076349890472753812928602663419076132873954353989374472192845038539963349516433096644247030000240199801377913937659737792778370348195046308848866796334134155340130019792893503911515549890617174184756341093941731488731679467124726020059482121741542424454314261705261718515636621312546840179045754529401236438831562206501637727166814091410228767441115649360826562419287507600415093287673173939518238565096877225345739781589275170835337048640927909722125592684217409284666937438757369053361105882146612469777100709988674278328421554517384396411042466173000952618598033513868256512350523443276138409635991251610408475595387344588994561251693345555312803638521740615083816300794837758786935245062920747403019136217979342687217885466839740126805116019858451218848515833939728898510579588941194045536153254633254134907560506810638373953874641471756997286207749189630544806058153558504118720868302700256196880310380857259709996259344467372454900297502315524311347213306865628722509211701161345226936581715585010724551319674227796661309220393512387254871443887735369662486423203064225361503799168449178529854448548202626865588946859016751275215262043404001214377362761772461544661992280475778371880754241331047925100579859975767724319147054645642456351151699100427245538464915166027197923972560851751865087795721888399522456774374000656874887779893893376431507555096118620554031979308249839675193016397729795437020331874388768721594413325396948968200000486232250724265610018098415920124900851177502174491058052916720684540745210773513803736669753051461324815288375383486463529079340776314853527734234258187538278459076398159402563091271407822631224255631473811800364995310183206050895821114302600774049670887302101894018934406674984244257487010577205990809441369115300580851490163977255111380227951546877264592806073808550517781611878389967713302954346139787638327465186562746195685473558598939840341368197699220437881010658764050312091242826718780028498964727998211170703485959250835113662830683129219022512078377016305288589307693906462856908741706266012663182286519404753396060952394130130353292695682058296472174587719930563575587257464427636134974066628763849892181882428810690483923264620188523790065675925870830157715119618661597284223073482107601054321747801751163004175589931304400028392553806179834995557456092588091969261212349982561080596786856757454712355190057690385754881479617418443411529792695001493712535394994972155790420396813949940749918849209797988094905385292906510020656430877915878280171048549352556970592283949260135698092003990406545213511955747018140538342541256541621073666279671160091228680565202258364939930528318207950946347693948494034931892609397098063741623160658797256749629197428804945928717652073311425042321129563708600233512348724301658868241518832856319819790475882630211900731742273574875536366586217031554885102114731455957640760214250339253222570084328434944358991240449202826968337778813467028602606550473796847692143082413118357684411967485849644086746055723311956589789142535726946986803645323731871478637555097960394154682394634745787117079920420374134214180620568000356855574835686519397419799737996372400153159551928695782429674729521375550013463514197395431616438627868876768969201489580073809446649681500724157458038116590097107643243705755545355645367857005527685537959167188947818341330452567453034405860146687156125092574448828830134019996185351158495918492473586853138597008458191043033218928359382465257036184081748612904761069721230090422605755145668082060702545225407073071850189269268399350401982206967922163695357177756123313501881478520640337084885440026832405476414034077108805191402772243563145910077785325898748977219381212498583158051772064606326884739318746522385240284026588212950264949088587978269086700986651779469695437117019434975603082073206545681352155248403714072338183151420088398165179174309956531619260045814095459033087930915171053084919650096437842722330747380963411145919396842956065090848861127344523635651338243572039628815219989646591740947290378219248791305791387661328793474572349452620236152968679754673386137951485782251131468498183925548859374371162734785435846374911845411473513812406404209974242842389206697542135461954257657483094480463366638192709294182567180475794648571547269212681402756317832125546190826460390161623652998082906800980222250043710260936001854246954686371311212932967269362125810813412586831814931572149076548287728965581480873237960868270843750762970717027118302805883083876268248823346501522024432264827699874195557305460708761652318690808050744627183342787744397659795064679081202166549581440047034077988033662872579181924465974684342515366353548757466165779377130255181154822739595789241902600061442659718952203247447336611042580225011522615906887201157096514384433972939099226674959882508020384867138804349202295608761805741197547448545869909911387600558566508730427004549755645538588650907633616016332511500259611353787730504102963546560483012476067911270356096647538502069515394879172468196064927221523902625222552512508088486136350251246972191642847337993042109613039634647332037081127988223457107596298065103271755762417717657869894159017637167793371223139218554414799853781981349548288056564903445327694605728544819380136586574603824671326778520410733477271006509793979992844274216684081469531384003487214373763225200717309838410199790598796896839900166471400946827697097927561856877542544728158817841079364697058566771654152604703221990250670698762777175910709870805904148971954161686179361859721267042875791004708805240994884755545019105190844582525416895598436637094678070945428395813467779887349768885119157780039371547417432502690842463776416225808589796155525418318555192414038346011379118963709046745365208809646203207615938927150579388341599337694282884256910008226716565926514142541031443353206738793321785634551610188211996450688667561470497256202402587843449353845726807374716804293552914310145269295393043624796562945669458422382075038112817964459599322569952322141505532128685253464796804785855300399839440207960012008508557279456513993949820754916364387010624750832386234922710038552970013210995094544526522683606501082214317524242017220675668025175837596197127277686822233512749445049445589180225517657770978669005951228864842696516484520675092357865507886881050770996418997787471509565858452643896271102136265544810562211914859209626995377298659680013656034366359907735490870952528495274046916402320930495172132038985116750583064777202937626609513975924661406569152703178055759580811731431511662655194673628299808266099530412645595434181869064246051800499715809462426091387391040213714166985831201564489373211878996899810663179489832837661374300315201635371092057438066210540647703780878590824975564144953303135103662128590687079893821812406190589925985114023160804572100301211984702684540262236395272557595719807978732751935234346659922015538921314323996168032402417410019202840441573804240239057549995917033956362244439646081131627037636077315313363540098807144299317111306989380438851233822548538505653517313610693294555914553034785291106277183465402353148015113813624946996628820705610369722567145108587372071394633087145682447009217773974435645503235005754551589785130444352312761295506481006913045710618535268969232158295953161010858698201126398154615887571614785078562608282025837450080308804193524983074930376834445914952325696186852115645143481389151823939756279063819338774927554585269111662225607217581274379288928778435912262271439409387177906223868520013286993037735668984874063788810463192244061273028041206623137158645142447955263110879753036450699880569207597798472354433484878583001044502758270673968134663691937609825792476740058301298072836832032520371595586306927750663844549199650842451146884597802918544319734646797087535349036974552453533379340819225604249995937652364471562646706404895653417610807282371147738653453115369750313356748407684844788133058789463665598030113483184701319463784816124031059409163630073055297605749407355104478219965529117420233656597041597236850466549743200916774063188026997489284758228993556932134785189542112855278460196040392091815816968842387451162488656896733621595816368129020810219800855621154794033803149598556526667087680236308648022940139530901201123372786191115990516017008136653285230345524439191920350211414298548855910401541867240210480905964894538359245700785737447755567203604589685642878766491350124455948633664538906608445871579957764273568134720744439081538474633772187571221224844456836247990842600990254169708039114882168268872403208541979671837240289492881848143534413578154666410708731790038875568373168987852759777554428780638647901508790260467619698791139780076132313975316938839314341013430915118443920251207444340770940951361207783015351374009020450208838778527271619246319305271927940709869103096792058073619473189328334875952443105125032628272816056830362418854129146839049450934256110989332432981191858212871710615534962586223058567506178951929063149613565250744123454235584335860658102846553345804747546212285499924183925388770627248741941658531706152750027243091001877712291321891611885603445583525511375070754289358513932912263029618038106639095150714544786821877403552136489913253844942350092750683703321525727366488742196421201580076968547745565179326638849344936294460545425136283693021270759805624105665201766752790886876000405772985688789657071169273971846065949500337597161017748689296828328989659644962508404673882878208633037744417256717537021201881207745887651713442175745781024106332416744850425258575187114683507436288306877460260255014425878320777195790818774598598307686717002202751664647551285709977541631830441762714152479755768750501749624526202329392995227897633698324943171662102701529637006022793206551455808125864648063889951259110030925974402768713754251982400470539211631286067094921892763192857830705731428080353555252765624742473389579321576397047308627727309149751318552237079484293204752117000604297831302075803781448804123133875745592730147184535259248477391251399831925384576865897695495534889354569604315491127328391246239845654764958264285500376461540565327423399416821363330017739091557999383622185580030745262055886709326660211676025722036758839367760148983417151403782380680868976618736354870479377948754497024011832765590019873951235447332984102205822039474511950221756337115998073188230705013511388902774040149060452449934291185297103289050779593173614789151031729813391223217320769042966028080547563237782944547540422495442747076258772651427932565566552054257091632268116414517941140689779497866589194869778123832509698087177569467423021230006677970546725801162552447804318687559128568463391532540807983402564570018941466531260908978537634189752001765809735395141419484435930205735050930870569082352010301779180257332853547103992983962102988001993336061995615378011612064168485286203695655589241474881669516382034259279334866270299134712553217269302954167676342544961734961730284787550142286148547255605593127292180435828242060538327402840559364380826656212361854031843420797828117387511552267622795648586530345378856183915368834074780703943145804679751739952600368046818936934767029197962769262729618346624361689600623666831527619377974178798743913186688945840002593984369266161042641683286563199729234516149125147424097399502878068805112582466935603509312881948977011116233834324529476435223271474673924775038443307721147118717547707641518476776156643192349017029940605049423825882276947608956807483993258907939002435806557437335211923129090215866630615414621664388559739746389252672052066126498576752269753258177831010507896314534554695843368100182683298841838763117245510167797566839065168816857363901699650567044742161282100948231829422010106691062629489915632910530131326033780390788483942116034898977511124171111356372949646271262805840069527075683241867999285354045846999026384606985531074875159153538243021227618647887502311258187044363588427199339227878945217950431368404015254588966608100311284091578604569645495426812598856609052279099274665696416255937031508484350520307212191715456152321915833493154614681415178428198153114185659344106019983951898011070930278547260980432035503604273111710431156345820095558677873887649430112655131296423246817084564038056055770112662800607293425237449467383742640466345016761805004405093415931393383084470203547799210340913975369926563071705504379100920251966970109042457413657749596453156963679337005112733038278298949446059669857263524387185782638238911525181438994338224864691767817621483079825649246587855508530277327722773801726078837698558046377912858272051658687557864294800408856559731192804209664121280572890613895829642253783829594538604508676812882727749244076751266240816903866373404654418105852857592392189765910838369878369646464995539733881285096903085899124888823779513913368576024739335883652187835223328817475222812045103790144351845512950712636130652692105910392979361343408210433905605490600557270646838142198772386715769959233195214830416595339100476815118150458574495263091186852311863259850076037673756113440826819426619605609227081832439088298618891544361358621288000498824719686924384126374525543686945522348999764927216644128583186104368490447454006872136839548207859030304855485706858392594561673790773774930044322472229421396969336415515991167978772946305891878122676339491233158739348249200651855261954142592060383397152617138348133885363021350169341219655797839363922652836958872522328403964997446129450654270875500407731152975703001929072571671273187424287769251507925243580760570062350935525688385797334559562868871317974094107253581355527158578399243575453333574933098214553387751964433047784118018711201880547127547268828223461761673700739998636017360765078068927464160274789316357312957909076820236233033950662725731705553525916922285663280749009909971192138176594858894531732662825937745392307743808185099091579192952426087472136473166572323960645954821455813668243201922990764991020779165156666928555870729784112589784691298500488853837366857355065090397821634429505079917776580468154512011120265004687290698173206200531132870010359894374433376584206765680407198284420100167993818705069666022108091750547606923898526279488750306706164820894607852382401903215972408338524460697823388249370255870589810132742567031551498839977876846631881412143615683917027083938978053161470712290345197934726760490960659743214804565232812273996482248712328702794946741642355437394689864343774558565548911213820863594599299728615687320269682439906063813901656693746815690137261604793724069566476900690391237936754464759796992796271921685193359358565446726737456032021791824166153563242058873047888276910226642102824505630652279255426155383570367586205108221071334560935211514048228997530109241955928159107180517259712596227387626015959626475197041488450483766338885511524052991001106913098948131891539183194295602808127753835887371538458099908035859992383654363439756487413935436584528114227831272788290120197018047060655701335569765778684572053234506631465393309844466407243365511569792625928571222979004074002776129020800134434976395342120854944132342621409865608860137565541678817592364053178871787255560123175136605111574314170233466523019133993242399348275495695238484591760807680804064764163749319894293372574107619854585889510511325626389505009087345900508429431000465301295626003766471980905863401691358346995038442905004648910816507866994284025907173951001248096149090177994576870780987102075007981055655861022713546295856797291400973032517186975434308101809994598754192186874027476598792277881237961997739308677661671567178016988027576713531471578068062580179351867907666412026089593815669118203310235629376788459013766026254189525178342187831763402273801538713839915569799968527930350436036446751365706029461394696628436840178230917466895566526871401113683602183688396372786216889362748637411705188524936506401771264190764085181488876168255682441292322664875563905503746670502332501630802442080424404609647147227908675773597678522837764481619397134206625148666043135613752946827557724707430155946795595876817011674406233875480201790727800834257309917098762804718972087796083563160367890423192254780700613553023175218816286742568813643534188033437088269093954145111266783945338521571035054354152506180715685971018782658698399055901789477710117309941771150003863717928396100126247140494334448789343356232831288298258175476613707010495170353551523208625265817076356050682917638480295982340408052182312685139727333778901936170084431841594427052613059780083780660778438293443119035206099607353721381876018914720160371803133630422128564769446505821649378155111320778763172236389649213256516967652719010996925539183857066846121971206953892850915825807990127746214132860222512534340469636721452832437363765301326235459194146825956270255090588225269114690274404342425809876012101158060053519382447289149743418149629571398360554108308978135888709987069136242164899470692067320394461584854387254659069576007308809802279506691358411662839433377954458968107359354584913096091488771651546700604514537532361899737596448903891840812587897425955398181426211427210378492662173020839140803470206720846796286672292426027253290643739671859793321456511972888715854656663134645702738850288552218336396606028116020686146066142208699123337056222568518626352105489056912908506114068180474567403936277173402933766841618239764920449677780634563204400507569865499777872526894915664647003021426786573905663773466898200041736677659241156420717061750807562116046453458945300015130977443689405842258963374229535868934116273227825439088855195111700402954949726334097885925715825724510858371336635882637487318024187230113777695522390388074555924864841090530522715464141339585064203609161097392795345640808964106606905203563621759795308206394800437635954477298811035999610153697193230056615646753742738264280776577616898307781908478075078191600317848570448634046078260007389238765831102877213167982026624055429470595315898459306864052713262412329184555185936305175341448278500242411799699826340460497088820424400146302527874377112410910042187537049040383770222526175470932159995365642217391816204248302246042561214358586567328707960327228335525621713555386106897066857678590843046389212511040157651348334761149714525768444871798552656097376187637684491618639526342463180148183337348831754616434266634788265707014502397783045192284039040046380072317992598230030856671559428415214552060864446897401340040667724961436550855629245081244989037690435131887236824270310832756093384605718960349891861899961180160709309416440626567587703088967396261811074517809361819729232810198657527657816093506152288442449198787050251543578650542004880280832800932991618173215801850462771131570976299482449804537004431949179462442189749625063563842014246569890353469707286960286237865388951985236277747702247173572610393318451945079666568374447174687431602823006189683202245039049304081980485148147927137553381405320772514502718411494241909621001274720871926755034767452508768361463222330418220259358574194961319332486596430536449624310560677536915825740769077330977306197796501195887164890804420476735543596769274276187988045952521671167197035531152557660287134787674417270267556485647323045635409887853997623223022108432435959381663510135120848336957732297384399426384167252639075915506246863605165384254784490598803094159129071823873701545744793485153730633850488189782280181897788912747131743228677334942948147251464703760013596724938162090437557873909596543228183106190855234600244952104426287310814296104604852830111850317569050286472173272015726545834039999864507860970312552273580575756075057592346023909360231209355544819181733553434284637516109852634829738276829832271831610259422124110528969002180043495186333902215012490211281733404467511583404933170780667006067050618315304518453584552071678563413075159109072547937370165465124078317616565974663662534602673060288859040795278234581732649201815999694554799229719953635305501679824954426257545926613279583069102399933311586686765081189773334529860892510423272586693780469852117078134969664949468578316374443877892039670606313293105592407598831014736769282860775445744066199259673572565951801325013735102592137539089239547108921236975549468999850135048686392225007220806589296383652207881647095359427115675470046383272868060499266567258463397733662534614625344812030801462319993005602313473483636575815769104913397764599553057140323595577187796226114768567416015404178040874642045978660622158023637308420636916800316243186704184032312990051906749861311778754295429002196269693719987885767996502442996601959886776596016643161783354723766470466457906223142398854869152385327332254097108902265654639204034413231679675678219339627990884003509501795007742498921736488015423129050344643705252215981166516233453102728746330790119249506955390959325532711295089910686398196730690328190363328932440378440560230076868577185883133464004326761055215176855903086977926741352112380228465361471062523157073242894150281948090684424252225334062855445564650145977355008097524568610356853860923677015645836130652119147658421666876136232447427700295974962632619792587155394515294411808313460838347106044357846208782423963631495198112084299861446190714581164968315445834572823858359744987663641328828677224986707876417678318729180043416975120016428008032166713286078153916490976576487483318332276495571588229370183213399783008607201382379648852197866317655320944668575352553550035242110540128326259813175325265907046476649257783062402471971259532201147355174281126816487859175514920700085355187663044058480620469415437703068618149551844985723668038814400379039397376776785488018308523478099802677079931377281500430028705905997148324243258334475420846327974054837921090901933570618224814506058927500586290574762456499638560488332555787016369661789566169299278206795632263732452100410199143866729729030217624088502684747636720923041262127638052638650358063023403487454867562158099656743524246509373840318070478285370925387824585655936102999680290620402514836821241575805868754162128568234930585436932374480104454958784248757221885809417562377195888233792253937941685097903409818572087846330033922415748470302201627355780212401986443141413658949224650428308621138982843759805024551461354169699462905129225687584007467291937868250981439505339364436620267760012351339181015028406157372067723890894422188351685670564544845616791926782469667532153934205746295656542474281318844798342751005882980570911938236985430075863330685069985030651946052935716391490447368018754412410392350337351740115165446713077869331688089525439434555653457518356864414092197703716168711339767053676754718493510742349200494465152236097410710404817113340046237832016634595861344500843787061172402340042950960420489516225454681408500281842827928104967444522638465883914070501053671929203962721408992718506762736798549329173570409527992118969340948879400874947036537325222279528250228457085817701642278983650517507274483648968698010736298099097527285283349834437705640438917274538656648439673503539399396663453462140284517189386328871102723017579009660125163908795829633278800292869972014336315591828634512334055689944070221934004855291314228509472816645178011108101357537995043257756846540092209888839958100750038939745142044181824556023802927546794363662052417834358580637349280031624505600577330852288921647828255185118311378959161822909448134375698987824249800007554743954225343577895841944793193166986371522353904596887836991037010304476816446237244019371840328560397038789653213225228062297854957835738100703233099965970789540307387697283353124813480304843874664581655480876125544083872412215342704841953356586479339136765126644785085445391831088261122158917354281362688396054575996386145670029109998162240767706648621403804262316826507963906206672414976418461005617592977188478110251957461672321104418995889690604785646156671525466636042337698628367438371797043605116199268490706108406250921078359841203188529938584528685936726902517466082116658369169388726315287771122932938368219474282961431719689797256200690602686621209032323804745311021698747520086406367242212962802739969640200980573562108517186467241501602428691388872669592458001549545745865222060093833424291975009634579728065529416264197216541284525377094464554940291818065730432165462815298843460828391669923943280118129121425277286530158323225551451146534278663113119769658778215844558708200194615689149651156624563667334449202451375380709194220923706253576447065284137583034832214471384503479956975256156102775768151154278731097937672554049438917333581215887802708807013902915884104901411954290337825013721253460960286843129114735782428687437297873975879254499992672823413037979599951113505662428921101092825684315237224357668077538550457782575963290054088523561086206781312822562499959677350151783069194476975970586905806721652149707167984924686995781303680869091654173429716433817201200880459942398007997516400024566907541573165848721640758165620831069700093666319043622905805659199221278115451113299930059123370046026747234678342413610356775490898559731409293179184425064383594387253078929240389539774393693434778678247400854779012406357135210166620507459894009712170793557427516551961997506220872565098404209132902399123559893473675704883403051792905956833937404082009017036279319113947975372322849987878421381641964923191127627703552913022661910209419934360065688766474893032069309807705334771636937889392166789511808288361607601159835624348397135299685071942790766679119041909993105395796869623716787446482859052300141964144341448051365347798407362817476102078776154486889584858338490675364564406551044074724879767881962968676138699844972558099595497942776193126111721914524225637109633484907096457521112682022919389795617824568710627753913870053608608911698890676233090181760121376984702617225709487963519352627651239485132524034127057549728798046230475466861480193715446101875667269569101513942189797224895717887126584855074336098734467019828804661638403036515406500390364435778844402971566328975817843022189765336782324479067483987881085886177005656037406679421080307186543883723951279164866815824100082662929305331126740128276675765255547890857394950122155189779473459764757722119046945359475064733368837368475678299907628883736245129551494749590973366444186180095600212654618978248372308943275101776022337278117362807168496115360715576611529006955757251223072149415637272867588249824412520688574388951788591029132684463684989993553159457316409967868029739123857504222865222895750307121943555467421100475213315429247782745575666483429992253722161200024927117617979533210392794156255997533334570000722502074399791508693524999785917613136054181989649503894073373939828513262567499343725312704924125342789818625966864617099304686564694837976379940948736282495738979681648728566415710157851155475637436458665146013510073854187271659028482283630020550901682733003383578690940924498973690142975226579367438854510755396344450851830297251520091554654329185915496082278654415548140737188270460855726382759342777937430139729235104664758000147514455228145579125645337434219428663063864535562945942353064176840497887074170196374603364034732384027811781876314479840218856732666658474188561472420846907830459636883090500651545655737093361656234005658839544252770014997086711719650401047388540941179302215944160822818632284546217249956897078875368506331977216279448215733573935881241265046782495474028317693984542227299417016084042162888715040534885764504777839802394030658988764586048244909763984068321720196888708081913812586748773453015274652580987536690435196559238279773173351805357485240150894570811509629012291799508344936778537014973020515620460127830885626076756018205076333829728832454167206984023257836809339203571854989067591855997313258919276284377166685073002253151612158650122117329644420674455384189547976008032055457010829806065930776848146744412501090427723843468215476834250870842307050061723074587224587124070260480439003520491239960232349105954127081903331759055323108589301085163520263700375766533091813620981716078215285733236797650820295316786364817837015737156829755987336467863642226297888888720624815512005105337991504288810429977632645915568606068225897584933447767248202803476951588699106562651171858411740054082192835779644877307578498988457656737143974031386448633298578352740809077280399433591539308518615090411496894806688882670400422312895436426745550686307688907409575202785680512952356446781733694242275774241407374023585273531751591960691558687415919549316093462188524224807039031110079399698938134253125590011352712192941478496028808713510920980634653993515189763238181846239310418333534006390835891678702884945487067496623297431076081325805471646548678777704275937258158497346043244549646607189614406141063526769875767042739720363573079139493396178100221212450896748100219464042964346881003003152177642055374945825051116920152271640088611097827178723721391329070541192494694164358329745634413360670101993796073740790352690232347606845752715066662906047688911464532010609595052413725048718306252833845475713097827433811670299180339990605286337802405406293474118639737423155026281946463493962594051861784725268182071909986818051482739611348136878418577373824768847247360434564933195277371923551611959707866902988802161338481351179278349620712888602474570324798500096679853708926357079519179286862999695975202691793842310958012855363155870791222594137152066461470075215054612091858086157951951469179737512880451577766790884650003796209007081598588877191674652161379059567069987249615336405472496758706994763171216872339880670185699819436006327160805643842035427126917658257199516827256269254569434417269633309566124621726933828405048975651016846487866003100588448074759775900695029629930431231530234401893072570263872105363743976308260879620779476815459946584422729287700063859181793841679782313666074591574249370342427601018345668640857043681355569928166211545216986024138365918658193602761240270940550408400812830101241233282653340180576488944980982387895409911772530806145384637844692856600173929893597346040136281060035430079495818536850565993108323900025332115775916409802068149781317932894262699422061912584578944435401789803700668211908856709463124196132950260442993522589368025426809341517170749719719113567419544437015950005061488219265219601144766729947116972153757234794491171669856532726286557944578190535941015026133013653598274360574454733928463528548460589490319243475126260397490626174287425027856668717328639505856053955730705300649202206980263947097473166725448013902239493921093742290818231965475699438586982514516572074545248903570247410335883394170626688239994289580447075676790316447533003892456514042574177395155319218694362412898051109081608893273112585834939167739411891644876584551875473027258562792961178746677114795731718741619228257854081828117458056796524947202202719904370178247748949877310887312636491736467527247731080111823631956143693553448138598127562227935073848223229796123906341408336642093616061002086806578146889428675566639854497352665648186855553724555934230376585357343198982592181090669397398717069009977739216211188225339765688486505475575584814573870897238889727262744082982359096711295025459960522953048088508674212522011985246403702945573400506474158344717681517394681482627861266991758101148170398065375088748957182936483299346519131591841455001109646248784877054662586831002254975716479366498734752885063216221268344259488726306543719688611497701323769048799072571935716619418691783524994288640713033636336438045786779522016509270071376000646015607842816722665169822610811358707460162985364767085400380610782404996464081649421315146004842048456068374468641508170044716392681220282044978144230549221193618786652160067237629482095553213559413433652973885052389006586290935279599862703469939368161408692467711557358528836073879201956508723159961674731867944071173560890847991921536308295979407629110251710981634736361052412761593315298912503075398638281863584361383858737365406530668431254468675346290433332218350026560971239276744878568024900207129803676145652173666795818756300758731922541405966019691204404670914827650357463600555275110865039736611318612602588781836969631025938976828498322394611834925797177364662708365938483682659031425338387849603287078092711319586445344775641361768929490219052819862437602856488722533304060640173540087075211537346999736157469832375291910973452519957321205332561024530890520773334094380954910237849570167654903068266045608384400933832209329985554000355323630748841408598673619223020222870059476854236627482487884577186894204594807867245419050254340897802994978412102165896767660656318085412259346696732076037549554169796553651628645444397302498011917533345371471100585483245947873067174310952626900912132756020666428378225765561227421046701715827092611784713927491051041046614173900870342365080772429310651928467772971111810600861911542862436106297912928762297535344917691543711334359913306486530011314410126599428444782194430130068270101902223584799349583125419218527989933770757432523644766675574571772180371402476838909031890149874717207715085488959546127718636404201052656247275626853593368909847238135629352919992111987008509127742354305938107493384070694248598959018237146313311461780441675918764089180712386118228177204099437283996143100426734999653692656578365064175690547158034656564448637953535574230546060988368448306052074721724147796547764230042530373185666527123862953007886006595902779506373708253000382848223246754276089056813026373955432404639722305716893864769668424814195442345406762479548708640130310810285191385298764828046171066640993684102955557976509792448004493298767105364763038908810745288395186467509155626454774949106058486780285708700274147071721919789363370597756813035439131885528224865299155296303472561867916048859172984006865632505143186946515649864596949760886298840663879810502570093873851084682176642778628498126357303666917489932152474729505862113503139216016057631574183864044248417032444341312557416395366974455315421098808049017885791706553882806760252403274297744646488091315514435179095987202719613807054452291206061024132727008374740386112445683641664484922523271563350086305894636156334410651955641447961710490874309839161758591727498910724992044021930879202601471782184743745230273340887828375802230697189406444023459625665350469638262108142107804915258934401032806894417583144148641581177072981190318629487052899184007814163117914870496040608311331761317269389681884539699579227599907736758533041309077749674537535060093842457799074090549085808506698393942216293688150183262069008118800744490941489055464761193459890720874928885294328116227272085186669894612336972293316732399372061317404896276653942651721598689916104534687425050107798933252949201003320638031434853226185991782856065828219206168515612183684637630678298846479987713581942961686506892326331276903043725175951686470211705466841352609916178205129841267835427350908701180796105622713551293612090324054725409391549487466228873710357276428059829869001545915857669064617954602768908017764375917891160550122871440270050141735734743192655920935356469394571752498605293624823893923017490844596841266449150093332297615532218036622987414377893438999247954658515313358686499919147156208696154048548154924929329395670237799342501847664125932865757101959891695265908372424801698981099732609997641445463682076023976190301375709115561795240636487685348193225222221551273989004710914496786079088334913311436696696300110009480606850439777244912507048468256574003574707237238605045930581803012093088793620191533120679691479828191350470026778772947490080944894745573224341265424179778420728939388005504644961938637781110879026701045101664088279850339308793278185335984662431366368814365281616157485933062552723095659457747134669928570438842663572627520196593372130971940878415766564981483124674785832193813941162437005981243193710113776486394002794015934686654790299675781300416405670074236163477156599402384912229031518423455702565332271989806486164660892238883922180813075506666792173619324126801395794967406588790185535634124432258962488744049636267413526716606217819386239106413644432732656347893520360012755229513632130417212509712092245416422831490587073002358539563827758900209002099092085260566131408174658137256307826163745147295439904675311541112799603514209512389221229854976724568838289060788077182660531607325275242296093306670199402962160036376963230265067872126415981075279939741843736349641758682074914477786070148933148362785025085163995650265019301423968819102010665814678785086934486501227018911576660514925555630165215405040557669794389272964420215827289179623041258414304149671518121306597102500051517745070688847090414644397419397469854569106804704256679556748985351439886557525534510022899789087631282762359679169573065971564244164393112813499585947848633769367899900386406213218876085509011863126800277476778723033873189216843989717389769861401062786803294448431894524057224851297468239928679549123455802150333793377133339124333356156978924291065158651700253474425563980677057963308567604447705733045017071044845390170755150714463260950116162664989025841642260856260651208950957000241411198237464170945195663583648379199215629058311816918811328668568293927046228348806581490246855997312661519477819217703291166671426984926894433772192656293065504457195499652217867591788387972492061955014635794639397249345522104617413627031244123777418950249572146330800051042503216699729328421442701996270940771742796365775074694692931398610514928132927152460089286933803717416338155996945946871887208647788071180009886818090110186468739502330378230859739945464060607506941305180572294291552662556908735865174151216749009221674697853797980414741730545698503652422285474179653720629345592109067841637225887231523362157507684875954759998093320497111582578825385879950113880650041374634904140956905295079658032753751297800861140271204294196400398148506547795093809029012218281543510154177582771988253524977267923977319729486013276490395013598312714881275355981379409813518648904861708512812611363431535144540735889968422696909902289725175381040647233711001439686567751762892819056207842832269857435905122725470543708882886697228455927982118468344377972980336809650484677316738616871844930715844694549866409058276520422740039090640167113766919365585592602496445655742195401152853999118604090996050254703888978832183890584150628020381333233914152518738829136027706506986594612318332304339112123233467389951245561980366723401344203872326287622605509066389635932105558281372027580345328485114172365935782745580405130142192134749837427169575128263140180673017644220072224606440074474642676040498124924451027824134017180994107072173986031218415648888860188826215227761768178608257378091446266770425036512375171687089596446463041384882818065087373934879508855536434791454486532014224282908872996187152752288283792151967380385508789417601850233521519532695492349370935316564895960506000612936153116803534991485863783558764746853369878146700876380018441793045375327163512687603414664576418205918865948631891069737299566078043130318112290108760814514246967440979230708596958047873865688840429449228497485615101730030765396113445178773754890022853907962748327910606223157451442209114449087611188705745419986651151641255429421451756484335290796143857956351802387206056684572060248470250078883347357096884075877828404381613769058372405720719723263727379559563005389213263159016555458772601557409346400598892274365237539361028381433891373182590077930083283333974657766929694188298827456434366145434555549970411321301195919065983022744136867786592975658992908305632026788726304904897662062220247041175016481352339734422412592208559834186916475082377469105394344276203771369094728317257267609304577058242781769599067118443659455753098131306839172154586709159489791265426141351719434888409951194349471968039957288060523280269779772850949474954107806818925617295804513433657508866171216510816545327417180165491022266716002976866062634222295556171363170639925661101759915329520007135666736007074179727611381247596345230158405169791352929887757225484057742533239233061429656192404740394385564977536702775370098808442670075620913883363840387059959884723772776510283580916171211269938923994624502380574399304419890634338128792103180200684927486592226181819100624242260678409397145012598808792985573189673404875830086103127284199496140570539710156686966611358505218193562438489917400313105823487957205640994349270826583894392441211774249651952729352947201484319364152313437630470272866750971839677177790343460902021977253090118108411571510190558886745584195697878622796256510131548651284222811742076675319614641720368102253449018021732951683716424481890371262496128840127087895588050430473264628611375762778768128106300816907806332994811219675742234786938721752601230810966345778560669540501653573354628384951058642024667834158583904252239450188232684370740884786194947421995882861090427877256346338130639226637185301653597094481798120609738127652607040048608448284871688801940230040060572071923160827522458347638213811762820753459686154646553457354538220104089755245805114229521129562537099150495038305004393785058175046831554727914478990274103911369156869160625685823630280345908527495924943190533646324623668202316012826417458476817049612237688280168340304084795820304593485366639710577333145666917420662939293750849949476129440309224916831171113688442606254585533601022784019407123715415908710552125978185635250304329053950538707195079656904750275686364417086788472890995642401229374808962959690627296031264964028812568402508160087272233575025337524359539213225981819675038860512802750069667074373380507085913930812203230540991099740278580124080809761916693446711940993154379259828393308430299222605107510530029701823170185416650523450418849153412033232061880750175770838502388304250501169776291258911676785585503513877719275428560856795273607968090780381479173547123883858022065230943478382468355716451364619405595159320594352881318055455025303171593683191822009117855208918075027491786291650455167970311747293486865253107541477913090417419014703295711004156929312353183779758339205454711107356816355042570808282716302400475064588963129806997561112836468470909724185968656291811044368506402017766044446618627898482553788195506559248633850239263930394102368938564918626370996471745507861475574724685670763939586536554946183872703446828139414996013003628833002591027954364798793383889958470039096130184442204417142122912294184819869328372755864727640562965581872331827551785976374808114016631504775866155160046312722607805233123858371980427329727575731386127697446653800981810646040042591615879745830138048921250636457080976435732504035952504496913121638418123128472431651912602180509436204331132599925648046286926042886317680485391693277953584555639570232951037622913870271886198201626315249611637257094970426887439303813557818957562458494636416967263432273931571769451197048266499124594329805177194774986455632777087925535504685018842304588556866652987507484974983271344952621223167032320234509822573917132271878983973829549264426934738038593620292194952937042375324638717732240064025682582728140338310328056872160622277836604223164001956634699499174773739391373497005626229437419596960101735973571562797843622238647367254918660294379109565812544993072900536545268781026404619273096226480307299511418172294168590043115992753194564277011817727952959053237568452446517191140272329671108815099341897698187072027827224625621888277496070950631544351820375482881247286344275304702560212434260517395808513151519864982550868065689668828324813596145164275518955990623388818182181269659925012440629692053689013754155427677528169345461895115196759381647337650411415022636738961758291359223322323198175790856041110441117640976332083231082875601209899875666819643621726229614687597320031968904344737487083399001005810514973653014068749048376407349005356863826949523339813662462409015310218531000480342988003375984299242233613501680046341301977168173724544118643870319603633654357446596227817942709426138605109293943821243541223997827317238420394324674179823492048983807693935750240040536024908085137620741123519390274289621985441974145921601800448466028897609033569449080696942436449425505081774138662959438419763253866922712438680504452134633644809484047153232497070343127281744724132651789610505949653010441026099681252505337412347262990263234391639843331466391100526892915260938103322283477495749303000933703674282917513446474168830211019719465836067788050954261786107004079044247179450195404280304623105293652382914312174185200319185050156080218303268910179437323257466378622755680376219678619509256402531152160116450215496575059173979347624513110226047489336224748594461354535089704731020688558526360337603602531123551962600149766486338184076275780293388749827997295056140231228319969247211462731605091516899752353966772516673996791273592088704011599322529658349442940952310126157313426253623172299069884539778571632064071666366205086034699576016180152137404178878988752003028181151696848938101600628692195827641276596350425287425072739385562832358411705430576601548177080233073437152275609643508741885321492500074826689316150818070187300964884258524017398732711564600893494227479485481345080964204097144072304644206483032023619966115279791260618905094115456017617002441187422179265164113134189879059275542976730678533028244248457030211424039772946788620374843824237669293819525576530673797417662437791785197595995115704438360388179265684689725159359704727184709979388304455798632821383201806604069651190139619361618369871380174241451647828412448464766569634901177508233553394650768415098484591483949725208247847651766215731475800221771998928785114294916810507869635124140916702461727753612123415357250050840895771433761923726199442003971292226105214113638539902911808109055028216787670427241487604602909973403458238074646384482557493462657998694833880839737053044476137188877603612190461553693529602167164475481964891170257083983227564379979979344924503161194158359568460163010169040151701745644717004314935559264706336032978125443492584715681559974650943313250478135560437489466212985263290177893026508222896974341140863694038629577873077114279278502752647139460886404033169892793265920386036525381727820693146582738748184518763148916142433251854343238603062745527754512768657590522806743653276395196881487931125406160637196424058965202565018626621702818737402839473090487635618269283856824408491539344319932450882335317397366724681611028175211029757631375927748959133056536861945406152840103925468071191481354338812937386922563448321552373899164912805688581274340049869467210898626162681508657222090891357338428209197007360674521903635778435443117752765133565560689233496274782527622062705200729322431069176960049375959510745040553303654897323523166979496376560375303869288212436822757445826080816292243413750088081721782550406216265541720491759463766346443781975244349473306205687493813403247153299580519096666989968642233395622380481498766129174387448051845395686295256727425005915916478817624865446935939453380172365818143408476885258147828452987862613104207871589206038135664015608324443349170900573066548365081616632225386210792491972855729968289551556232660556047194764582884762007653604449530464431435244008670199533233797919781186657072608222579317129010399232809441231412450828647089016717301157001428854599134313057162266350690584311936480091144213544077143825836855863630379808439547522717445115745114782632948295533050374259786650245357516211342742551519866798467294652526658736195923824229844740976783221424556865508063267849092204501190812326473793666142954651652963564011736799694928693582224657556258904236446482145867225375859527232167945219459870280419834903514158168667151870378010657573580946320997207304357717794498465058972315464575216183544927224229993360396046442259046993827007188633448648915616164900013061459189305327481658123404436095976165339858608486256251041027108345933198690454998073057510186931767181784964035798083527204585252068549190833328418090610285285325709615199161590294832605531898435541244554226572129948858529900515387002473354007002016891950783409935672478587738536206183514012215588623283117200929780738561253892833517723768506041435234425568285218807531246294086075469031919631156315412450179645898280048323007399503342523542809928594215747743879059307222958891430673583451462089900399217178104241616250790810688074030419372334886724554437273887067206590821621324869584471539545570205142299594551776023272840012557845809886009903257677831661628925591287557125380154655992285823025467946190948827493898494607754674924529992054353627073247967832552700795256186984045881498409852292279310492735123016821278963412589649737826677845949494551500068507407237381303714892768904384258394867404314896038197877464403669586453750565981182008252228726784240970541025355436080281233134142251294974725453092454816473905761032221742207857767767607839644080182775423262652640411372275943298434808908003007725240504686871654717701873579839704519153662420582340074841526109393552685729638009272471386689070790551075410952615936516146708049008176912419438817122505714173587807112420212978765859062825900410995567744140565279769367977105425727518968792121497239050006575212035966837321796458290836318456508060005867519942863770167549547285217093296059206088723841562907951318895807773687457492664948535023480174876632291900067605142748793929711219689999605940509731812638543981546161481372553282044187321394467572228445510770447274410415641440530658423152212989786882721606052852731871222956496825169883173501617572758802151016091567798569141164629196671203626402338483131961287992451087546552585359467769205063848631639738686992743208936768308051870684533233152447202377175355972597730830608605349149013647161395828212686767396939084582170311319008617806224384396378398965198298201662901103209182496669559438119579854184098738259842459057025555853048451331460679663397526477297606964960649199477150495527439872574472472142132530519244690460569043919327372271027182495392759215181899679399996043283195148425414439928295853143842971385174817246599250072432822140076428490626217959284778950888200993169706078521611826858304302863039009188958338873749982481569410768431824194922853425795468902103369946446343575611040675762321542694327999765384797950000671951731616570769062041997488243308005170138022797730922557577895855064402730512807519555309021061744589310622880148214708774637597522732720403158868826032615802951498360108961519941152667279890831685341625760767274436766725044151850541076432034018582851928478354586179143007373144789945369416305701803836363890795380601972614895535222622918100960930346858413201901209282323321958730415688792031374039993572617383513257311253205500603666378688393547575490628315889222061774239682424315099996023440831491175899847368499423413275751537673360739687224546761674518928274449393312555520468322894226640566950323334305646664519078737088559076007636703402692640559903835588466004412732204675751894920006220930345882031491452374593145676386069762879990015527831932963918252057978976555198974740745277879032603043759476118623107814814982114424379219971555956146161947979434683088006253785545218994993961340598637830729271325608225027333216518524274659550087676550241494645250087011550571512504152951703669167353293771954791892313016686143171616357148934729851910007302116825789334573130931062395289008345425412642044104948968287426609877567226549203443719634367633074893199852274252208911766959583093692914318523086217753691647547759255198908701097503626579919172417662175847467647505605406964339021741224630861677149952119644578466603288996314185887307379699733305085011319740786295881898564767298899447376332062221646466524345655891352853888353185802835846949437053201629216077184799813334239726369554226733289887865541072468933347111862583231981074697179603098925013704583270137976128051747175851713849731780200688771824013458033085114246597722391858476470351096153277658717853346855472146641819930250649558228201051062789249871585587037112139091593991812810148500179544874952252710300683995945993097582884838398706308372773405032862254227143122742794411816268580464269630609580455118297061079224988364921459274089150946883069773099885783936701073243773420223095914414326819487092180088936625460846572505116958575751541065571821025711118560252944796898160271678962424946854155459500441138383521872043535273764858316952306829886156711809040969944752190189418058561711596898408300032227857984857515227802600850918477840459519724720179247499462344496261700237075884902629535553897971671320562333339933814995278829840900546225825478483638704578134326527381558802172118442014402078758653358325400899634694205357337266731266912483757678331098746073303383768658479473937037790218347221938138850784286567849581377400645873317130154522233557130997270498428019305077718885073728838423743612446741040941214311447435299668732004334790359833168622068329907036293901122140073109312041557791030087529377648503790954174325220968216718659343451161198041281093992633637347542510044238519374511644010071703560930687658116226287742138503759228398625229911927343913825443826249304972407847569962120665876703009171488449587660321863955836553667729123884233316236742691242876183753959191730908359507332387836176767328240162667098398307918320842226675730877788316071812104021274681456737638021414345795037496302397525068811502487384336623796652733900412883222099555035518279141770821490895734621806884900793000687648770113878778234782594020165326071900923849505204646081740334162402061451350795612202383700465251867399360064972086514138240212697872686616200140813492078630325567931819623196586021874827380142756112164147841460731047616362069760325207057489458102703599829233135166507759380420294162721825686746992779722789810731343869416394589241021146620996058268538586801380654597940485765558365800680170137736668193123445739237641372153418939015050916027318886481817441480462457129192687920830651621598815098507099997372182911236070263936590240941622285755133026103564254783166450105378338581227003188515312907784246129021203209330760109668339316378852226307097746619383402041949543744691539767870938853842151532038867774477454571154006159567036811837098764453865349630486406526384444714400187006882769117025111849802395184667030321550576709259777157008369377287735279703437900755940100994912053347696941679531709502207097866988771709664853783704628492416243866742695280671311054463978413516169072004970410167099412840209950357464869994099463749515136318335339123000749959995939976504898975558934854105280545880270811294977237711514230554771799530160371442830408474232506271352662917839901292148157159068605500143761147994623333646809525995412330110635669924605949973993281226906683450843230463754649403270619009209143248703486962654469833627150600189199025464096224229167317015886372063754747675238953488794512362403123127287089012052434204492203883932991977682911797895192768891340819864228847562528876609343352969041562842061429225804950022207071202476140056695291688560091206440275316446866665417538476216545553271439212402971714659070284236811040682075519043780237845199724934138807451029777346759544007681148439006639111780413481692672832599935326956176957693178371508228309957735550719721027186889407922058036988595191430403904075621862647924455973312464380750976252484385159257342879212958416825304731421726587169003822568412928584258175658611204669420925621124909328249345871479506800904907261381612880110230899961279174803494967225383245907761706393298527455336550430003824149057875560239261902315779054585445054886386229185286752923484981582123297598889359606203904854300667317391357795294587651438249311180294114518357738697212720935638600897264451158325722351726831190964866135467217161217821737549820108444925477582877870762224881522257120037200040101366205985180191113584172925143650816217635994966256850496276883736020622080265975410137414769042981979569331597522531654639523299457240738551483192396623304947838784054598690718366825663366584617109693437392166768256257623410728820610163108482196031888141239904312422987751533479745937378117413824816584820645076327824321672263995024941654225279480698542691984900024228052656006608437501391601524251158172230699823871457480482295396580715973653613333995866297552012764379064591977108656773182229923516212348043565849041074305008145980181208645715815848017226659812436551570536104487135707349151745258500203790452137744372393128805732000711359108637571451559628321323524335179970409480139416950176086459984406786183509266133456235116876990249602870383272155113431600477469981932607117917139496516444381814339002586600970713119189555393683385195951902209931794589788356162877877789204510262233996550605631532803504562536767940055471180914639953800578420521345539749743951101287826704771899206764808288887548493884126517668561710897241372604188871150255261325261510450368385915892881805769930095834380049868856982625052724468265949367754739577176503136664135714460348416926128186453037593576438790411497550689775966422086718045179450647301354091163862034662130093997925917126682135588762982963913769418526910528933054188725392336888240101233973447618531937803968916228089032519703920994939723153807949568374607165175124549835565417595441380425850113949478325557152731163560118502659233427829270854547962547017047873287216014436108282036506646165390525837554370924465995868031367490097320634902845731341790508042019001621873292681878395874587799139353092226284767282352257356767439647335583566960534522705181128220440679564487236667012585259296050245144820166036552342140686343214830073126008684980312929715314495621756461080960934532934913645186172195334631618902904688021719758970749396114067033662797172494939216990413421485440829266364996755872541733785405155647092694871411083975569265456419772472200388881149775039983991094658948025878352093830519903189441760569945635531528326551014882321688764540202963911298901775522253388946222468926600020736164408400762313667626498947096224012878186900497729064020280672655078654628748035195281633452676202604134087170902912933515918562031986060612773826349102148863545381278259482307294186428310262796707357128379208495079919386091517094220346841141099938758320683531672740075865384490544510525845987483776135915725691155982567238908199549824077312232921403228239940159996503978916416564381256065518173917690815770864863303923245972342797830860223844037093881227915921234869144905732937589115756306226938394784571629142096508919503980399300027346048402972017742212654029285949516598108945865728454402060088302313970436123646449607681678258420922811518292325399072688633482885018451219358640475794134809986728146467176714560025055532152493845840172955091807913661524371858466686318728340040235148447293807296307490076355660175338845285005975255930918016946438232913314620396628309548838167494817625465973560850420086855973752149778567474797147787686866180956778910642007970704368779671729810047380265193944115708617085893737247415122603747355400023729059651308072748736768089394705238656461123418384407808142713361489608507417694657425774986579384711756020247638516763955200391271354505789060399232348226760193182946469425590115269741406858986705086932744144754899130251162840333427101727525253634155201621081971906264702533355987758732529365679970792103194424788477363370115336437790004573827575904436914214371269609645240775063052872033519604483287783733989425248577123438712165972101357657394694498049807753498094524366523417189870571000174565039863155929111894500782911891952442177970584449426894315460726125766653911413224491905775512144448938696009917794124304182564945474120850444386423663776435520291741129982533470039849187449860517094546433354544281651929997848596470347807643973056135765470084406507623874145947619038105351202208288410932322304559814847693442714905494670026579662280504745989182823124853125916516806793824935764588258807202942654035277498637519378878309586708590213971275997795120473864876318619511017689060293574051202114639260212865373998716697369649031252452591918984979539274666664387144213536479259521075984695292604472793488169279644498011291742487491014376513068550252941564908357249642685628510681675932593963624974162439909843176949496186456457095797625936008922315605068602953576171369703289455291579920634656790771611596515170823693836169732556398559403340317181181649370049040387629439786368079404663125029842226114833677225198033917094935566181577672292694196572119678689239086462365178887564102708037721294886118409680510915713020954103731019813899720794219721660437069632924742678069714424182340142946049848778099404221312323299670440364795341965136745772412282603468908937775250664599939029220109085275213714689204654768816287367165747011628822104809771520488431152477133702961542738300674162015683384384566607636875114276631878275726811395647439026256696351285599147348717794135598413357029634134887392872507022734159273607715016262240207628205627893928574541800558740500054641947921066019908183934828439843158936200296774325342401723614256315779350195778962793554094617957486697433421823987478819154405740548875589174049836015729275250189403291942841411174026373007832477876781430788431125152323724407837241881480426804063210134293046536660427610796831513540072284445050390295723456456958791100517668318512610297943002451695992311846779817662727074177634338933777499123057365777547879016617510755045886797320862538511560487694265660259945477793361843048092495610799719656484190851674068411647165687379819771432039655623771030185881652519439389548198994248271950582914625263862018085525672835220170171946509382003792454406777800660654866624367399614913743026587079470502505315736249210108470700270036869430567368565354619772301204518030867462718406985110892043015105647840301240757445650786044831691528458652074475309002843661221807650679716837577398261870013203906716116866401252793638826668931016937530849645063989931795427700855177098538757398278357492973647378931355039686174563182177383123478991786746114033770291581612307948790887448893758595941800616130462140972678854595845470163644859156489151076613131732118211143767975745650797885921328271692881254431841732817423838055667271913006592566960059741162757173634080665446482812875243869755061056789000488619437456048484106422585703589634826140308879658694777145342385032205806067660444386284066069624811064949305472387237543644999525031414273517153226306255965013220299970133320201278397030111080890363467883184363989945203640697117093004293812532544051787139749055123509377835225274396359669721656049619634105138672279882896646167252069121235142011410811626137627502462245283987127297591643852419940017513923652441906796473302737191666514973759987537429994289594012599164998816575304161196962472841514410159805849294126308329373517143480433363411998452817498527818911615214813218298716773295936213460038211995123050042041876139116288616183033217033110052753985077009555087636769975201104080207753740824170690167661081136986669930865077291696616565306458121987296952528266166951275944184087367329884858404750371638715924059291222155771519331454075160857261672496808956174329215901287910048236068120433320619178787877535124353584883692186630074106684868383264128643679267643958981365151982090734481810417640462507608569654447963737078166788371236843159519619969816768453904723828703310565936456122989212529182669999493824859076069514016875099947368273722079760460046161394231932911996780911034985118612453185035524504538884647073814447825864402750616382717215887723686322888851413117594514055304842812136621860191547215151022601725992112233817108754057055767408476809124451136897145791532499224024189011260360487276754151933435091508916452004122069209483387277672452433708907509982546014652235394842326528015562788310893477632669279558327198960229021902633620503518461908055706647014731923849300446852629690221517442245912474870304470426032220377315158906332553731346361424540466645020700931364186734948186765231829287900892255089089598496102024784984470586452460828033106071369933903574133378162634488954477407934266076920995826101558305556852858757929819599554311615228943074352158523585625422535410906364925121406069240466598511324577489574761301053361231787357994118946173089012491605241355030312841556623700629104543561694419603988843501669559436300217904306770224491797375220319032477349669049711253796532560616442983708704544139569696149891611723739803848458655965372018578083224971988640146407562173423445013376516956463905612627692081126434946755506144809852456361917462788067651354310188279800223043078169714392110930528240698371459451666503560607652187313303294655662710690986053236605470064829595367117880581802378314102484298087140360784351009146029864530070907231619510537573114532767408822718447668438346276148070094209816150763303388067842146374581645938226017028306738622704013273189983400388827923035814963380373821337169690159366880070418978239919151563642459856477072605034615588513171341194712139354912915594678611063833192407089849286365518190067594967471715791382019649632296026912153209910942837558160224925341929245671962171486303084126709121496975914086375733445697865938056222995084845304643600316040955189502899048309388728832320486379869712921898884491424874122193007043415071056466390961633590268443755192944526344380482997572599864575275852510405698068957127232606954807417581698403909650243311349864679212812074441380462974399166505823980294751301911172125054601272790140161358457078535682846210271979254854496694143743731982242354072630648971227087732775210629724446399469579679459334129435691435859857771779682110852467362828868136079958786851887232874276473215250116140740297541693200889245569586319820628458475813357124164874459499976310842160687707605436725279292562385607431544473182478807730182182071845961776951482878995163503789978199782502031654721960781262003805404346206687962636072137631563838740898813166469918969584371345503322426611969891362698648942342473963831042966222668808812446476642852711917147991348269198402741424309097842087156137727811503324193344182190312801670786528006187968634062720729288422322809703738591756639287598334287340511244937128395359253206760011329114928489658012526408801416308174062713610024989252359666954983985464149717726783311843901930492553149352923234417519898005516826633610908943988653221729073955697973505144597932513225757474330116663677824135699463031937900789519601032358240644904185342952282938910517854039328410186868585027119411719482249900665077096925395678970967244162492506763682134006714944762473588130105612017595994453898450619538547119708073425568747134812655808979158506250491260003217095482542097874819563770686412422320459308718135494363569071069769492746804755705807221717249380142074531131923709698422670599396941006598655563471869108445732184683186308001337587303962121688835512627299956480788170241348111681827142929645970005074496016856487500318523649298160031948495261153524937935119722124345536870132061551850330732721515664273452964252300429748217616280002281012679181811617163693712040878673371412797827116499997571759733714645256057730139709047486709813866320348389851055871717192717423787768449598016833718051037267548540661156207485626897706598133537021177266043136319828064201277059833994791284406748180868201645449414128274578298045180793672759915189097535182875478260510316146796521044420409751392342104980392824294564710581408340927589020107493575944003750791685009428079860391422598790623829078609963683547944932666226437501324500417328745261145875829394153552704634959801947921081625892825804431390849778790755233254474278548723468691790213062971975786258829976891984800108899420075846072338900165065075497134508328359744547535961881389742473800840742057980862502938037999568069673164750521092306386147750334257382267098845652884766863075288387087713429888568038679229802883804587763408678167212270278379473575726469149304623695339763380591764596116096266905559817428103988794915322192569459930237213397509206643055264905679575431750235613138914184750731148887194659657560507824914358449438968266536658043210359823911594672896651654840805026254567912538686523765680649646574718467337189035352254732375885575663151318497126430780449493059316340850657344226651122122376266106866116335127106417536682433396651690893039338506000995955737810090634507522492377709416552540329958787842652410448237527289969440381782320287269498529707247813116306720398219202616058839948060883975820307617004087647021625280809196438790987332276157822725730047035406193425962987601320998487723911228444271353081412047640412283686517955388314163825944138838254015382744390277622458492933053106307930775584104574140168302507869318937041076946598910241385877634218921443248369726399489129069930402934975755910157500509918567699946476673904988394538472892786282860488352139168404194771038041210633694829608102458394201959842324002925657702976715790824944539211054705308379520323220026866634807280638554301988998087958778124611030674809539830937165113368508792759389466110644668479939756421306424634968321871115470738477589402526846048632100900972654015975025436252221756251430768303267853179998091641559488627862246742445998851710043435608381135134521404522599605814868455440756326195039958870226654070684804816082229594788553922937275975480935553374645731692092784787516473746397584582009037764779937829565424101198193080195435837173312771538877115723127499813954607380138271824398309436933947666604850134553394763639292001125694160273748356039434020114246425431103616720430725627641364995647492701122905166907923630499372576080691113142979739782686887384363058659385543851856137226381214335219173721485396570772121309960356791256869648148894898866218227127678469526029115768649093395759041821313412288481692707705207856601044777056881316568601495298765475268523636914425488910487705448049227569440595194774235414253971724830273135476162366387431907234676376108806717377112230932127788386960853021912682600663391686531246163305071842387450676235017342431554287691518959879527634282496974970264935321008947613849407096594298487687759807447943619551102180593078219244290439776185594374491258696881810150693205004597253915988288656925577321580386938080758403737623183729755754850476341942753951466097933657361719461390443690843498705302511860921402890345396479320092060010292171780622244594182120411380796852668347241211545638113295367905419394471654071665763536107712664172472702673385390536160316656241897906492597730321920823875955315384932033869311223865882378298564315505499945654650305833316231029756752579944226671152707272915510306661966799172165361721437050782625742380099010507213290086980300796112408986981319614923684829911049297369711185958604043028395026343922397576566467293157957074499411143644552114122892646735106530844299247411740922431311744683671179980403809112972636858242391274142617094992705253161133338543906785979916409067962876326028151167434929719233714965192428726176589131200261423291940355128967281636118875159812945008630448317518232423276604068876915717720654054130980818445313139156255939458854148797894318983539015928828838720935434500108774059559443731732971413956134332110736323758023786522092660512222978380765834774114141241383957248828966526477732730887987021440718767731313937560983201619404668839718799608629143593230209911631303876341749058900098661983746312197285941100945490557655364878599566557384954696006813300216674121480638556110100174941485716786844953220164707926462089493954093380865701433561816813625788600699952395163794675010034211727536242058186843526146301828214204159992526699155194329624374153649858372980700771522680178704950302116289640974108183233711230396011602816662702692083343573690340508247110318382687804703849733520482793125350220231396496455913818378072041809843928900402318080310026081466084149671108605399223041422185885976257061711780056175197908848360774102646702997787579106885602699904168802726940191357666543396746520573794977862543600341412039191068228876267502632985774824869971593434663418994204403034418984365939242182113291364400690961807325867189260436305650517876518519437113506718112708561552511114854407659369294456848195501829314021819037595265862228564615188015359440496276449230631119477934333170678554595362388341507292721224086924062252799978430505078703165065066611789273583085573630370097813957507461354185564633807251897841039516514718652093308156662823008409254366085467572180300775225640433393317427757479805026536655042847859459714578702601016279642499138377494370100022391858777910804600226319251892309343740593663682530821788498574806773491994698003056473137304082371512487474950568702171047327187196341684524015286203741751900109536054354725271949974693463902789608725650890132845707248600151858560096131956478008450675926325659347653230805580778976060790174583258690695096404409312202497871696011479350163561686319838138139504290031195900189007966640842710602943107572756236818102130023735739878616263741188579948438271654710898532290006145450223281103153444975633815481955562919308668487444764086221883038869039305768270950924957734767420214492733929908799592441892513206910264823283914165610928917996572866954842175388468789113966932331815101510492743477523258941874667023729532191841270149290266441667237210206209263690266917938790919857914813126149175983827589674165270876422656412111762952158765690277916520880817567515278287408023538551724774589371494679933756695206729719555951276069201582841865286085068155043902645329858359162930936167511230936719691219790998279167646682350577194562969384997238309263356589674472232572856842693719828802288774869908651403758305045910791319516448836799920967530249718743305076155297729576616686101776692664970410210750171381305124000533580753668402729599884054068812275159788688473122757263197687278535176499523781380095182008591759806827521517971472997473156514668935628826207749448659885254470220111133771654191873096996544493642288852612476797207583642334515384051205082892595011882622416436268754523566858947521333782257823767738962364153447639711610477136512138381780234176288037311443173675896580855759347198516768613784036216524624985064757003927051344179522862381266486306781110266454660273303369796880768755048501373555648711147103583556618435194130649315269944030817150856283650172954932180546266151444028662366246899376230081902677196895258103323207086375201792333310066170589361080479981924001720739339675495560121449407340862102898663256341722879884211652263956267605874335076685267488358897830664502958507023702233982665092688515514815395127464715425589473621166183575806209757800696983896008775395520003657033346847638975628893373758696395907155618733483906200702834807757554108973626951696475551289388359062748856136566183138947365797833765789231017076620664596773245111736120339818303850713136572421976945623782391570508585166742887335124431193207170002771244517917192532134024642165660344804928707512440175009567862426533175952563578130412551244775540985291253451296198568557374788550820127678446045918613752848925717080554537565943802863374828476601822981810948747001013077643855441835339038217928310077372258968336740839375868960591431617539386757665599105224024158392747792058972162472701961992730067617663416497901448393907668060328357955110969808294848174843282109190657624365601237062689792701570321120452895553452273115671755391012377781948893809222176507730366786793823646578990243629638666777200359705698405109291805810802502045131667805882744759932327412992188085327490802636854218039212127487559691342963449701011400600902707358996780773786067873490326243121068937888261853828827203112329267119918565490918698236459376574354607837126119649461789909761909446114495223660425246633504652582829007440908134968646962750057430523296867382656531184132868862392949890582754737629464869325701831569987912634992936097386889825016499014714237347466342968597010728228248387911992712677660362206146947365856746414693564662563757791475572826718140786102286342761379986922185103842051412830964293924220001837442648645001879421895442720577046949335676468148877349757368018974330545766119773381061498905282172682517578805426893883084702945707739282812727070566475751360435312528497335759654620646907209313563892497904818154321021102967981828655180607292350159197091215110977351747194904669439819863985585948384689400601763532971343127025589212364881100522297806086607346489452434637704160895271901447048569757122907665420994458856229959675137024138041690795052357462460814976565307956498732626039460649416408217623606215630953891322696791410612931728251215932982022511656238867203986013254817821583164070980035327751756544032683330649495711032960080751516204531626678335993534633333153331795849343832783950467004642658701469477790051684981544359494288036263430381269319622759557060076960304790422153310713943797594615279108276674947578879497531191199385242029423980059178496110775603379886318844497225855426891075379226861462262569563504369463195113383470457289141319158849767679178742866998129982233754033695562568622333544279073666366395354062016529191070221227246599025220972468223029518577682760211362747373099821558832975808194722248778014425110647748482877754868142491645625253783119434534103337347115433438949482509321207486346461838313102001276179345193286616599598375448025105924303506610951499636110984487815125844691515235201779965806594501544490015797412291597274703752812456295684422742187229885530065784606541523100836158164130645579745295589169681824866921917529353185105889094279967510398134172963792625230007503878388704827656826678669998036936238087710494417512264569184637313546543731550714926163346328909483770213031473875107081004653775545245201066314168332999762470827803890853945183034594963097251766787877546056854565758840584313989884582396515644582776578473221333278937187728222808357696843910445228207326092027513813087058703609403644810261855372179073657288615763058042869219964621611887385165392283289903595260606893824998914839469341988042705191509921931490292802880523448867364421865976060019325622099016085669150077428066083292022433064371266744853285982564454694033591516032990322335957592693297976710107504244380186321350137623608557455201038687349802218686965979542707822798697761895659989122173638743967145180946507873281397695103069274720300947154464982496163242647187649096075441263815275909741117789235434505870767359512664147925097445424405877747806551325034153056399723615361520988771132566941690543289406713176817328789793907082804495679177651845990370866656344609283757439365182487018042573502693883677244206182668691768435677074630380401377489778428461917826540223060705793799060686945362069307634219353520492068388538427275814925047467986571568179851957175726288162148092197508968575269619628691791333665082605382764594488753730741356406675031142279483079013290562841088771144493379949936387587990663868476517514424728644400020003131626799888177157569593054903506901217690427152409839845595919344414178861426632747022337645049081838130919902575738610684949997659586133441688494580495768346957688410384777089931282883965229256137935592018947808295338834067751630271199194181964900135320622968687725979420404545458319815287668987218597687110819269026138204070186695044652860296825826236330421805530492844583743766028706504529035995626215836444753907525999109428473296759680705886562867512597727181772538674388349288730317370962953817656709048648732092458335580031214516296257488197777227475196473535213934577252193832318210569638155956645604856661211189919495727982295701683589434734702621911070442874979143449659009469477550824917358852566320369354110185598720639110428975519215249815748525803298225508973376506392129561259300662190032909687955193962211394957290598503844369389527057413492402492716176028501837772017816362402328114218182288267893466142279645315382107689197189107258382249183854606543101531126610206265594564368839258999779277180332777503266683183168963986809482786518459106280813072475145987951331731479944263155207761846896317330870007161009961964294537721831052109002694179349695133238621996102110748506610495565080855731604127063867724429441689969849096300127403821817423918988685896099201573591246001269908711222317766401111255295069316588508495272880524345777428406630476683093933606499151233514493567565108256841991585083924158668580771395179144133754634046906707748094572738688219674923838524075677526185565341801050904696751133117666936808345226558402045567822539117154445462094461891713983362295523804920516132398629632544197402470487369619176410630779552666432698479636890930724692073197530018229533463286614864782015537102764649625883817109637985842574045539523550133709804028174444840773602094175202975401021053073516264316700064298122145955428914953200234857770541251168744556085240890135913396519625732912537970258985808202592066746200995409413422950167220653760669285827485404921119188229785267398961607776508514278386923315149546699026215194563301325220787641366794337055076079537241659849058338110979818681938900778632784177601437968585830332009656851652777506605934439612126176437333560959884656876266694279452509124223325962198824703229267355536771051077885833312310490606534852945807610287354327312882034945890966993738017796353878037883261441147021077349179149147471941802777039110043650048250455337243472084541732568250098380543663741572139001702560399686932776041321612853235382897243717087383405034736868804289832304470887584362737511828682480221948808431862219401889414306827298976751905317780760719089072610410710915505735308819671768791345697885335527903494033949984162271821991409514106747952249960580599059624797427272238366195049196556160640570446446546955062046662096550899262112510417484903555739102026102889174589078593814401369625274419300332575912525696002062616321870165396943234035141273352721924184494498746723401997533792598264405131917085993450154596777570191329064734776096780240772296234315163734499357078013133973705057612842544944120662386314361288035938360379505479433500654979572300838093551083574343024269388932084766620248965859757366860287876940027898706083357251728081100744753622319130613721940324959343158259510002222859131988559831985836348559071602541880061131359395904362912731431059538690396811811902762246853786301943521552165682759551323268711679290510855729885884446351130057517180225426398198167008553204724704337242079769049961610774452963099175857002927192108510853308348537165325929500347678577711861545650252110088551315106086831576711246423441088158174721076263037037540091412641630100119026293119228481949875053478351970271909759344125126017676903201432917701076050828902781782489817783390742305110183840648032703113507988626603941115498833567260876832851613895944891764841759194056466283946006114371191064975339905077965444549936547046596520585166533638381421305062258646663834185010780508971915807555352077246325837101000034209829037879105575124823295769125337454199033720301881902540983887642362219566231090560847576647254391333740236263352294746555801660022529777152949215757651327560517481678209377541766588274881603820433937582764954365485749337101705921547412087173700490165722685056570184210154724164218095957518296982366419783872408971228489136774213720226388388447904000037016493378435375238458011649407478339291608239605862486853797979820708898433255833290392164423985651060690002769721827275670407982463658215770933374179342980225574546406156599765086289394215049507614120201435730301965279479374344852928874583285041270459386161420225476161424490316491780057048612599180707068659068474671005785907440165417068777961383170218117014143974979458427162569625622379820320462578307331629176126248581381356535019734678855616435504027326975076715429792870253720884359199423254597882994002645611489885307646911494509101416369087540574063092461611180583398167564608381284992401741321670487590254341296031343188440555649758434136395476028504445749166615531078638403324249233627795485007849124931289767076732091989627366749520649243487994751784490208942358125741290742711400129374633184462052760512410316108338424368295422459189492569999287868144095019026631680623140172833631559602114629157733832311637349102585885409492266602224034959876761012526300262057586092159755369404672792048709263722740600074164408746950018715812992735548963968609559809941942778881082000335340401686267665964487674259103930833701791198046782031201040035638525770472632726876672938098586073895895678895594815467816953766826047532435758692005214140392498103550584766930799600494961843405313433496092100889282995771719613161132539176097762356628615107090672392148902977066087440876185708913311855091496816635796037642790191934395490728536715413428036705279318384083712908201543741912652238562550505471579929722725851008387756170849147069888246314851929068231372812071346963556657936050682560031334026442441225740077719245196198622757808297818759939630219901749671759471720575425322919840997923866896264023413989647355716734725035303944755522440871345787694187649765412732695688403145496286411592361155446755840823205710295522731237655395468283671359324816967849787235824557648897264054949319498808816915299953230843413454973936939529261570609148022542598373915446307855446239141304047849486944777709712746106212680736974766341191088717839752941725085225506408388823582993138200876318025900960244152319330865372794327121147403022622015214726865316036053627182595980570001445135920429805505068829162593741702315751754294433719781166399854303767058669034034264325723116485401948754926724142526093842626644113645824976808836219899538313266365779213679968771521825667398962900955862077567026935120547522123686826335065784615160178778791806522537825346630273548928888515576566437315618476846353710680244512485820819679697553764077292884504923701872169489993842426915309711402339760463871054254354691757400709862576457432101962263407977771438169794542929661146829447549334644499497939682177242304223082458876458395028049830728084958156800376070778348962895391929538136143329282149989365632286632339683180744663882326650216917805610148607065303055448813451131734568948572021646961787305634669186556489952934808965867639282133163746296415166161033242283048752432892789582253200850928567961514728877689710245478140495392680361188328196542211613811753734509323371052332495752583646405404438452331320164286250705600310341673168858061058742432876720093563617550144130538470973121287550541622908743502249016089937648795615545660298046084005366844057644939386999534939731978483562398905360939447850106017376152433441960340129467744415073626359823338122876504110628334194148515844902457113533677016564118629483389211819295248935252212156474819211178564921162253601887118312675993909665730195298727042126317706505685428520376465560838567886031049129794084691877619010757626795281205123070183830163032494235885476568476456449274184117437793182075906553786721124257688653298346514198843461882827206890911434958577008284963362636997793862042292406782590633485098061500882506467480665363828152797472002164756210099806132134885286660848557848138916737226123343002885567314801452063860487147746213631100260341382303271641128641338827772885367384623013819333526038769941412480235061400734671643072854980612173024037279544293345893570509649727425148923072437159043966346831210903391775462354321351581146020648036140874084954874716162251205746604683390925938453476289389182403330350273061236579946170096789351724721966196395344887211866536325426309578385721714643089514738349535711832633702412801071907336311676335950443042489341950903539156253786481911922638697750503967334527863984449449605823946138389196661398912585813861429253602024293249228113848476172795009662766306130091275343305604199272195468674390176152101158946038836957647761119131015627557606802379324615768598590233085272296222907791039096419386859772864934513071623841842562075244741798726287679119570090527555302369694653997830923428245658442730832155290900510206382220173092640810291932674669829131063630227611076533564504534466155451356484127228638838305937924318382393297256412349487459621914135178586568286528736087766316457199055338690454034581097948712468808078745445765300797647212532470449809039593298645814392343362041227769936396385650054795416388550111433694625275770635157596716281123982604199421237933619529153446644675865824586458096433702501810855043866361590183981102582532382514046885215703205927003395206363789401534063639851773355500847283800423118763239124505882595207001636748900437027180005326999533287109450239102290525237072774598244877395020863273453311205329282204037058116149999329912947674193373672159385078985970559334156989449886113882595081303109730931988759373431581002943425078181989024689888713394366702342779189053939589623306574484779873266663707453702456331169323286523022514349367412880507350419457310770008423349112609735219642279405018460625238830434400202679092402252929749046551510248666456335545005988744208505556750669359127882979868917541666979012441941712608973522334873212282896422651643377888021792034338684581529927642406431287821857032318818863592747702024432131802743304536484528803913381842610158715232944400222061996512489531186753277813124282753925297937164453089790315386266451156576700439579329880796786213822826034268172720932946281838669999507444093408723435053120402201356063689085756573110670160118593735969522390478764357859086706221624551168577205707384591407413200551806614693216192935873887845965030027536993508101640967305569070403293778291272654362683565624666269867992324053197303012460583517308376913848289589545532555205043142545841210776523870581573387507839673036808698728893758635411025033307889683212541905685487135071888762193475168224021322194981311165881373723338185053937450722152093933631634077503848685681282509354443365601326385064943166388876508927831936463931017447513948176447329323425725039508480230297365017629993963849737240851181104782210944384548979292970852492183356891249643869448729381674137996123001393573056701861830214484971434020334981782464879725939060070751028567960571821598192517317777648244537475581222673233302640746258865627055212762601211197797302288397505906558816679427978678857394879668065538845226613897633740020758659792825849633799857407687228323880148365933781010873441667494469603748455899538845975946912053981194631949970674981968419422328427442572389572361238959533796953645234300534825089095290220758633596650115456770547258631008046143611588360374644508563497508090364224660493848608131143443195969972685006672733416361273298851986102207124428647660957233989390243766707210746221874039172094997861316299610288206565812223190180185520811483896305259290859273134551428325419077944092540782989595515978614799335469423806990871953551812991944976967499633779167334209397203272735649712964211402739016257411955785386030982804409510470738832489070381753504761712045326510883676426862115760269542915833016961879451414792849706140458383754542031145119660779837935480855984367970691049965156015512514383796597910756589855497378899417828452729258796951795136917435672781422005348021282044545164115063463168920621470049794376075087265400918647014073678597828567154819642801233162366243590641100537010742396818945832194758761945331297081101593366414273329930310632106578889598045242215347337428929736883608169496292391345860685854153985098606751840434726222123361406370790756067759923045629487258732013119997843902727823278880744483628521483409923588119180297145601159990999837028104742903562914319396643925512668526406636783899080868607661573776300724207802305493590025983357090332400455743646306260837621490510080323906419248386997754990630049790129821617077346489673479844077303754641650519368972347475424925127596533139292053506374232786037658005672307387557333963970181286562226663373992497263889202904397203167879103591572958260710817571100804113032788823222915182916909149683247813822570667007094368855768100967609239135242880601985997224645295739087704845731247632455560503890498914153550083219061801928877418446318675672621197200377363159488295667454174006080853108865485524410939090247442577907377462037009175321570185816786919771176522355166575033459887269762016141323027218806687966242680570552780580513225681607192414201396489080305610314624537590369701991785429073627069540179974092226460414901218926982575331646179552606593676133408258384851239744117551534345080888944909781703185286761192368419075683357773559601037856794945881686588067709733829485067956281048182337578863531846954464032130869395396625205850950883284531229109221370602056658135589237703047481507973411369274594035144912487633336429831412194726347087759542156599870397908444867742969751152297081182782239376825535912623832559553189881363925764331412215191454619539429996823738674127339675462219601164420588228200572780380516803327937925508332570871941304751839148785731800426705247582079289498137617832918981005920664886581678164875146608344458113606840063024279337335871623233840711785673104904490665365891282273058080703868403328624703097213376799554005421143495433494322654353609170185260616308578212480107128890691298808014938649327146230660679096698876096697752829099100957025071771581374273090371539653390358711365877841218935311761625288025960089954631072592972165801554452599449778559826615611118010030702379518333581205321806193620059921737379946547054445776293221996407339879008206230412835094777718520133718753848107382842374718672426323334553323742543856141680910202069726560205406203303269183111114965210719539169176428569331773719936477783717078270223656496999104221113070449031123642553095965502253400846846116924461658800257851123199735635908511887805333670664202129228844183949551475180556008253678837003552376253307673496231502939781662069038854427980861820162795904818193020837137628462493390193052517444351283492920186363898334182669488899108814737255046749264449378615204132897830637087827234131071695791436604595902907167135887278018480840859524787871926140413584508486203298204581632681299457316573704498917461521762775854444989254905624380539715942424981667991312728299829412621241238628516270722161803110922966489448761583402233145245173459392554093201010058935202577634487954057812417393097022149081178905435313989986121207496798016388705721200806568273299938924436281303443798873744274797233831217814128527219334091468336366683258577813569800773709321323061173308436292396985309271854289508983894936661400825301122710408772074482145709451744878247655602261511569788779073756043088062363608262261131674824455370854954286065488152675277965714969298943225007117593057651451833950054248313910699020919300604501850127528430225284193077597030413948316885229671742632419537834296006680810168667444428999941306465992734525524335610989258462155749091990049911017365530176479741494112967170937896867811668042311647340049578345422038975568998732899729179626212785570264422226620339863120098629182752029949729179688786300742042526981666165323924737519748341038315206165607124452250316203854742494006930293906122228556993464744167271241746800470838228343549379001883841743725793038636942072384426033292808674139461378670218355972520255133252449427014527593419985198657570638237348914106323954733192278584021234864023815803221615675295371896433751145420379945365675406713433657877507688950085473039051759849184708188861011218621073127788907475627412964212729370618572200590724118237398877834628793722489660283029172708234963357917479179925685484758581267382680915207832466774225365040691067188864979481606568152316512589274961784809822766450276895145049557861854175486607678568871950662853914617620791378742247964669052858191226665875690086043018572409686819111693268888219576626083243629936574752314805314039282374756864171118520920048579663837447540567649165701696600780263972592586372691239242901942127314781193990391124188607480033470922427213563430470829814079333392344188489325888647967966854797360244290555938014987376042357629054412472237694080101249029707914720347889965681665689820986527254541239921095248778758100127495677874780982569677113276134387883386654615637233049449272955832848082323819870864452397031471282604666378509386489567024858552568398712527770129225636564019065498468874916268584981984039791954728500428592999012996133086452780746835415659846373783415208371331506053248906393153362312873191132667932847752228736678084408059817516945112443010545136740715918405197537919184834088026108251682576290598766051315531031133024727406345222615314054699013397011642673808030411773234884119298133474043467705463077457668285686484468180247396846841639664327184179460610874625947970139684206248714777651305135591907676247643137567727849528698727903411603679396280989803561902770835801978181075283394981943465601933955984199431022252812936282690963033463321594715078881676172902901740767204186959324636752613227617894734782121451932496446189844901581926386504711810323450482823321695327835782204245871197607466558455481047321419559493080038705763916354215218052078771496146339774808660840294106100488321063336438697935960687760748338597617131118558193532727631413729903514987320188454167361972013537865004988160290468086123725235932855235425544341777842640901066288264007357384266674049111881018104511541183309446436936106272780245550973474992876903306188726678093017513533705890212541781580939558382107899771284656637793395762084508963300680733603835812957341312177315906618901250187853338558908152055236095980596827975531481390592290499990069648168396483889162174737356714230955882522827288969185935967565887676105742034593102332843327494895934513127264383849472464062455872676868709697613495242421375616642105878530204962255177019441899036146125449988327120670893460201560698457033121286543186203996716429648087782948227562662773629763977204912420090350442715992893451648695885993120912885860150103695806025581250868713160298989385082516384726558033684191342286197573695724379888841797402094825834305825272652660743929791645737141817598245957439956232909687133523875376817600445793761462911719215808017578066803911277789498507189754129716294647793044672635837940396938995034055399210396600049348916047696711450785239455053460313815060442199570744339738390450942894471586245436149777128002030618422766279495211610689466712161478173602959424984352058092879017683172069431977220325651929346802919562558820209617727026512623105494742003586197486680567390810777433613923170608125489510332471750561677742365043502590891812735157175529834340260177449620421755035697826470749915972705048671536922887634551311491816177077381243736416099615821357355384247121798572039041945790229601386433055426949806615793356145960020669253058494568565408402631611991564586540281481068684906190164771919825124929068837865361237447081546210723642109984569245289644038770533792406805389448972354676241666499289579951548164781280581418215787445328797333681943492953641704787407367619501669611682623037347618033664084425034465969331018100609819954050508134983105677870421318960359470113634014779769400283193303737444968232539306196485558887254912519105437051778906930888145528132950249649172838847576935786127831187024053454600367801959410370877403095918182640850908848265024579739476641382408156185931407656460605947511704465235975645842125096262423482998883756653624925322863018703031252353695139816532945966598087063375308398883204189611411113773806232776929042933920521800791136713153675649356293102981786648663716585323714142033042119436000131961425102593621899950613022822237347574945405327666189140180356992801039585769215835393483193909063841349213985793530788280143071189219118867156084811837147952382145548715538401211058576369949109325239188169062646825441385314785910508445462167713865947946504951556243811898505698942439546788468891160213789501718874725351533272887386802072227834999308768941090139720942915532451961035034632919888335146861802139891265473494530748655619636071814883113610871000304170891078347053557343081151836625285944406355018078121217103671771930307391663834329642222209816052940738446092765439484522720125214894731548198637682495730555582253215400848132790480425538614053866870256865949375372829848706148926830707789329237813256067894177373527472986479446120508688747995542202596089589758382555480760752886582112259217705688208695565362269384964024447246489719721714368667777813613653695805228731465021004632422825182157697114466992767993708767316345704071338668250953168101698932525354229920687363959848209266001010363285686456287285190571469039685086603310842905359557824915438012441286660360464109103390436210550841460245075580604985759048937903221461887090930230676048536132503732054235537769570854389916786136432251835685908297099662483584073225592843370319857249106652283450987178386909997196162509878461126775808134406096746477350039501334211553955327432584477956163612541449307664018750110952636897313543191891999272730249305178568735774772225649680515240318877092922559628152013172381644018475604670089111694749785699722535634887142457852430750590674871271517562406011992918617666063334338894515593416971185742863656991813749296375108871221684260758493798316575767398952403800337082306019092708209939564216800360139935947983468460983163429446080214297457997217600092288405949650642610225077524851599027855610270044809701041905104287856604770523718435426996638897091999323506753021027517891208448780731174293737191270154950988548752099638966377908066328126019168562082833111889395684717215535996097357854279735145953896302703075354489791791803849793511830515854039626351450092993200889553129940012179890448622110746879631948889330825473241623088621800337454028225723235952748145404320223346489532520945746876648221782764878772115345452427614605566709051829805895213840565991102868331491603533986361653658186838542538884767131545631038186187753795061141760452896366581186257294604478631169739596116911715839425483822270680022673884311853912604216064239969066532319509738584178178733283979723424288753439525055731405275817602987155200506806604839744371532390007888915019022947534376066571011449373723688329245185356220358051455222594473529689953250995104060355173267018179312488543526739030863326741288041767992003917206748774345172300642979056684120142118242130813253821653403010480736154387248887321764583429790364281117260589962523842744557314941758249685060344611868377049254410322857253083264170075033826241251121430274710766104437576095835199776430234646883805461343295737174258140641547115632708849759524109380976741430445785952971960435981397432708455218720796464680372658659930701666496609732776146200038423360716629969997317995675115454226867713875462189582597295193417692759688467140984691797461123560000836228014513751554328729291912978370204151035798792681205436787639233448643257109520578791634887674290558769015526234329468946380789564179628027201270660440628881851633053033152499576493670080725061690398905411326337965243097676234893428084891258973140071699604166032334518069874875603686757608658925688310682925880505253598117754985813413247504845118476778300091954360432501050654353044336500930345699183356675949035278040503287046456630688598567182565980028167517137006836114525571139767129950362086999681208102679445481311284716036181169339647855569702169945544889433157184106342905114391875042262972137914655034629943413756337052416603050286826687142671532523836331463358900128282601363997069355982056779010877082836532214409825311847896151057702794912790846535121857072960370257375688500705468181743460770710768296688647144512224443002760205294527299465488891474457342140167881331752816267631395779854584792730381471553332143703088008115029394764674970464670748339115222754208307452875891851558265601374747598809814295226673928608058795794077001405134365461095744791906502351390061129655551646900616985577296351647925069192684985130757749813052790345703767345582220401927166423300278683223964049586051328697765321548087359987328147400751954546042677880320637448026937173644965748054952875127862176333946172734174638917552648778267037273341197210886905075413221324996313846673296266498211335268960683330876146105502440785471569519057273163115760019068327215363828580601656318314139997250136174763948046230871019655752788090864270217877020980417332240540039380839435775231199018361134531797053617361280158242565310953198638703178935939651993251807187447233383669917737245764938592794890571563277996187618970187874708398181407695879898791492025045927546297279717554236104487260443199738355054772219981794873110090471882369818413656180943963066382867802247660525421447713470762039119343911131764580464883836678702034341703354348155504904445251341209086449755355646335762289450088093565562226119845925557532292982811827429107560726084241905975126916436417175181422345181366605348852009619705655254254757302439840900614714914089029408661828502009500912498834160586418868701742335464140838120415691179285944765580435784618236018334561188819871433659488713542032707161922585566328989951254154931007184443969819601944695638703864064751353688855774616203508088997250935167424824933597982624640347657707745620152126910345266355264926099272294002899746707537067733819064006122560221507288673026890652336666555840361147342763324521477175507595089258964420756982417800311786295879673772203984199591525309490534762959273484707792661458838272768294944152843474846766430315104455179218374381569910558384170540097085031263988494590267487126384355262382286159018795045154778200163663721941895391329442507553009020488679540330659066813412648326999863556355772387534725030557518071070036989657963761864889312193997436706264144372118346565602202497734489674712686191443206158536886697113447268881731336089156180367152522840850558668137219326864447565628793514762349641875991473775277824421203149077875200242647358160902719211227944349327045171856249278212473052399977510311193198904882779904421574933762788135074573458910874813538643071216209123154364703617390810686287551695852597128860003470558489932743691563965651270520343726013237434854650990011854484985262549694627833759378158167980334524151695901107457690012320592973833022897314906497854362454151722464104874622854702009056485552030507529048215383802266767795957968572854915564361151209842923494587831471228493962370987968677380594243318483707638795939698425961584941929892730095123577954216107103294447537541267639141560887137187428188401851099376849760642054981748660428654222307715176596656242181260667748174776781655518903764209408903497245503514010561098327510456204882316954607733121820983909854717807935639800922117301132771627572744877113706947869750493492974620444041110408821409816594201419392666059581906030348660166181977360361216528534964466283793301601036309231486197405133036368447815067546761446721278867087426208629704939184655032166460110500700643790378504118911455097051931738862094417983426045194645820777365970302798601599087582028240205152713362632196221370951632092420677953505734877490308546944470002698692940495265293473445097980829753539327085923207459670652667740094705549776110463859037455085971490231683846412822263860743088230434181850519604581862660209684536692299168403019559841608483531454605771241152932815991449391529910370953472620927822106470133676382547745951777854653739591024061039836704673019798992240801070936523788518194634365317319721819768772249736352554403458528540895702983830632424524839877899860971400709363479717944167916628127959895035198465586028216997683271414478735025159028099367179545767052940236715220813529605429455185246227326494860783576569513462438078656521519825020502938089607467040851693587528536946083119752916658888080740521279023197855065296168825769835146239056356013107682035475668580842809859650957147870124265283517486846745861888194493002604204546027615359772067591367856369200914497472922675658769933121328406374629104498731225438001054269107597417285054460632696777537068601525572995514539753131381074271829946972786858936542146689579841071094682373314087346832639021043237199453553574412463650399768271527320142599379371229521621671107911686363887872710023506410204253767562718521104599086128795511713408832024434487037096907027667370022098579267690052419213259190394063919027869669587163042800645774662049774505976019892557287637482736490923999663750468635995148282340423558952291698647047842196576689407207974858948095729046332855761297382036622047699578165521692939299192990169586682750426954301536741409857590368986256200406438317916673370540323608163176697414889794727673561688444666691610115267471310211034585911307550686560953623655233020535178409973994781320731899429789271900102735511601113777934856928552626907378103116365474613917572038385553497195921560643586868316013429899216765796704426072837993125457499232249150161436460966860574385608268572492532384591997662350776707830052340749448987259829194793403578240338113982941861963828151740703333799806727016937278838747733393549634741802418207625643099623079410724291765572901825155488245126698532197085316193102076029923456276530292969755405712120273142405785232562661621685555471213552643041257086286744390029106346926803074494495374646858076275515495953527237630402731886258880539262166764025128433273343860019325587619774114170264925504552999923610021500417284565141826535659559640514672365161406495995054750365000348664560370625088527403360748257949833496853615711794522957822349792879729479902868315929636832287311850345640713412585938026789684023934368370082864624621656814579318667133655209725973145550468266539533892224041903301150667442078847720838293952815471404789211441087454267175287184374749996124114164936251919724648296192501050852134585714088249818264022714869391752907822608225775876591187051378019795786792923513261722719686589178216557705568042136559490456664508529240488892922139627336119952469329290227516735019913427898171175755865438030524780124252414267819783033946500276154711755537606201357660574193724513821530617279236672738885218364034510962032446118037265564061727207256561975720369089956849968989863018450023638133879659373968243444196198828868745027114016997366906474232128419885000814697412003634637781964976533265280453023148428576528394948907002556345200768262114709410107191787145220474105167869810529051627725978272647569492408523759793833864642081215398645542263396489084257747838768482478220491871764399163652751947149198215926551932665747049640705552206928190834915355295674947232261484909451084995540372378517970910401458673046721509149231225448074754161844063620674117040396976367089485312351541327244902975519210308268371560948636374505652919150388444063700874188685703121983093559684709701795842036033209009315973205536590975773033129131583402932741425703392454255898388435275777818150283846610828839354277565296995406291839277122397313422796024948334324112197493750195140906615274639695562691918426944349179980834720715128255852490175165961921229642024030963568117825841082392325414112892139115707793942955285279125979946198297820370446010141334711656991891480122006869281453676666329737276122895113074549837143748093210829573231367833128767633614319536020264999284662776461025124590561188511417426888338899236074025351220174046573120996756590418381639330096083438538540151644778907909665197534507728865405347241852888055521042980836429219215927728713396207799701372788285052408442821492586137058504745282633745548280427053050391061926668517006321427051177078470741590162610802399964957327876478844380071267517411892261756698629658051364490874319763650319041455383481842096790828800750321073699524301602932595940615695931850241545920782316416195505393417098769435840224659133643516924231900749724527426076093105984868516243079441770718709546106830918877163126722578866404589122419611253248429777836560277395500084379253041219837903799190487110863153578308081255431851213871138579327246426085026637620897592380761412726841435094371980516331475171539359444074002574404429259975074411622554879391281679081141783483810078932148224720091503852884417553216571591082471249300987821788384559220774279654411108968400093812957280235703045530152955940698588466896016246915371326491131481401922010525115870565965766108503022689334080627220015858266154987781092622576258024568759224610410629849263120494523253325743559054090359752793905459459855442895676062523528274363198529821062907078606489302470530666530941182153061655086150931970915389819921458675833477675767267156035119412181415378033032740410919640615777091559612935539819697229012728044111741802381087535765227036893942632634169770702373785589963921262596469995938391112864564999463262734879705200671293509203789796939412432094654755463987305906904693239941814102400609961492584010729451004976362746327308128395749050699953909934114411820143437599854143030324965985348251914184697233759738559419662296541443655638314182989315704269833762293625012359374250385932471748540416036464446048056336432914174854881088283562253779725586831557694570237079815205234623273240762943108938980069086149872721652333213380183892700146422653834385360013638766316133290550152535833603922912366640303327996657266361698293580458385522127465324622047354959213103618069504353539605744654851954221290484808241063743374103368744723643694687178040897215344506790286652739750209858706687251028476671131660339178962636405897353528731399159571087383283937257319086497369088679335831992051343754520867954389869301203281398427204542549554962139312391539320601359782285143276042952952492273321010296247915835123957541065798521679658094674333302126700151996457824368814293709098329180755594159059271483425135034671943091515797693147506369065541989467062588913115818586316284340866929499300724662984575866605140790969481136311021947876702490880011444066246528401670184946475272498789004042642795214450054243248284605656952341310637389593313415598469006251152406122861768024421516301482910770192758362178491392403818525027659111154371274822727485723281764656688035178896199331234081194426736870202514156401462439970081948583280930546325588804590229411971138110282082339061057659282432531703372580475324589218119360714462656167309155791094489592964801193807268038685941829922236067124128865340528343331597841148099654400999622110589073112181886035133103530446806346054944992721463391795191161180843174809266118885700845763340556358916622992251373725251198125941662131808443289127489414578687504535909530309778099476151882744181207115803850970354428494341657246851253010006248067677863657649258931700007460634807120101550017873340120019914981891512563139893571476047343917152838717682840817447922519402639099367788824460763597788419420346483715621403336310149695598970156857367749038411460010305593308580436640485186209355450301709405895061551230295955287996758658865647443816832896987697783223052237142050064975501602979720118240427939428666027044461797771284998533791705810981705424192592311980412674889283868196395380851636429545753927973049933334812478780864080849739495702843719962575811748757257662191004317920439035331481061608723765359068483656032767679951467012374367055912032477612087221434935819617903706268242394961293677024187091773054724035272512247147527563527598257388484033896435292703078264411167358882097881277099218924030310390491788264270391231083968667850058325104151697182936456151335245167526179650113346397863581034637046436372589039038728604612511948005036652286946337927914071185015510275097502404423395908282617423060309447125124534219583044669572673809400512807316698859538928053970025770950609611429519612897254220562796403742776183464645236027480551369506155305478700199595130112209416885153364886316893061218312120791648512383182500276998892606678170813822820042238377174851572312445722967053353577816054944837843245242364221821884188496263768756933837140866341314231952939087980575642188450813211020885305440360208508835325589626227961820285682102461568616878187684351349636000823436210134314392180001671102738146583481872925951745825100393216803401872508677389838061535520147510380138546139817545228190640533099919318089104522334110170705066366679609859500364207004495375624228273028669319221583909740866302081799978902847219511900353374733813347724751019072127776710000934675395724946017136093298699732491713358778110116500092952360786406611978747318061427312187627081254773559207681057706544914906822856444802719944178375772702077587149915587752158816037280848126600136622895516885317234095461256089190990601132088685648155186871822261532531920970036577573614019275216627381436969613891292879448816440070755904941281300905596824235808831757950034710874997235216847519127781430205513792714895724777141475229777631035999408927741143242407827619779468564712446927057092604242201233090761467143763914909099547330700587306841659672011395598529504293794072392917324660560310505634817026238809729344081614587749214380995354315051497262165623901007549831215364254088559839280185596029764352381896201890096765289575301013082812285372583151284285553786466282295641281223826759084424833911613071511134683283655261847134372346560204493149061987990957295879021448772736433356419022165528330972037699897030073604719737317674914863264328760888697652388934665502076130986439162027355337773722952497176817384407494959309227068763947045452512111406553266396731287026348577858054202778148858760737154129475934640905025941509501410993550169508318565219592457821388552305048604566453835375758590717537877990014364315063878339531994120181464498425028900804801867026115015193420451225481575871466360205470529984031763381869394991788257600102869655273345744137628816627834947100419011688531807630693246756788830452629332639421720292214047822470632878635676302134396131626912122578263026750143708718102693176551006232821223814935804734287416828744240863418212656852811943055869725139734208496727024746572326434701363098633126427343801448346149884418213124270368350885118528847117167781413490447715363094410526388086432311283945634340204472349684075075515849083640960841177924380474894888064183172673866734440212651815991688696164106908547513244523601880825901326424225269073832240105980080573667936416708488511107818636982191869915228367296904484271396680708541524801756564851392751425606431707687210127219014002864194591416778975729811172365089113899342781005629399533601047689708098649777542097986356687670667037288226129738088327395243846499530209102745806708414538691742357506056437898274089144595596334334652522213728223800912394929866092182728611769679323006303129968760766907065545758544341362213071688572021418325612572558774223767362195143970242715307200711656322827471045022894494939513878038556184644106350312516969919655264445250982639531084043397478623040802077932584267427483256052937121955935168055881736265297287552440053457100695648828967147249276283736984165787893664685904604332528040825695590797151684775873063017692225788806922610508107368721724854509669789398033120116388782668689627654544737096143515814319865948230164499776096290420732032600807890518749511312496479144602799388342193433072468277238248722822140641263975251148431502884297471490696669357312571840602329148507481753679336811894386612534914665515947070877796264362651502499713351527752129887547128051824928311835080259878751150623764456505302179900607266282390209383833031462139677325517002146880774117785112984560521224414466759367756572880699751514511106831864979306264231039815361630014810617888088438019693081268930614969247010931414126805590210459814491308463956196873808888271477284377545623370594920177559952922642380160539952711023697088380160804711492579850908226758015416285456068250729273800451055782968064991754177180330174584991990473841733114041845402805158708484282301686760822351502061367131173772128146214007727523923574454101433621298971472357234775884886359947906857794168597990501997079800757119269295274754322701531379489546262347782721740356763389373818731984177997540108056796736168045791690202793734084665488441097714502310851979771346361686609642820258740950134887860491651260130952759464693564319694258527419805804212288577417702678640024211356029480621150902176396638281495896732158349707423743189236637880167407751193431654412329732574682210917591006948056974734963704597600718644868183263135699073869726591255915615586540261728160538503430672739456992261200148971346105435665380692862841883602359578795251809800218779092962399291011249465388039807793479949145295530019821319596353777138870040271778794246785792528974430611382132448571333661480221863410025639662110773182418339497264955812372354868535882257939774683666397949745383231312882080969223951873861972769033190838995380725541269358597552726016363938368870121997057931536619287049374525839342342040064230586942480664062114615743318991572133986595828887749780628645142959375566020926317132740821634816727581148963542502679552609267482979796034988756718426796883371202389663014927322916921516950323844458317241175017637952044873217725822109154464603456368572515962658993126676577105319078283280592172128110987639514299129836937386273981645772246219962221094539706853948585507706589053040305215063462363443932799818329871317178275644115986520327567021341268375768670568215327055991948025812917284233807584219604985142653252763757715017448684773561258162286819102967024836741920552936793386602806052523792368985772343053586238038637256344571450811123146225340496991445875736114729171893302355466702803690854255720501019180367705110658912970552427425412058135979569295695388449309459720829283511058020687790675571063838825904175299249584728796684162772259692282158619980178985630571273560910222508549898470240109414297750787914109870490350408396489877342928217757592268024074438958840819282165427945744890005025026906545343305377888595036129629909987898880017410285224130831357078877743292616052845439961388948895220299110151438407490342763626832407684349078151072450262808749482831455054299011871581147418715227680154967403838842643751309197510867725259049837047043439952397282693429727646364637684754549200600936889881824159618172021004031048538271663457934801718809520792476605276160034428520146352045957312232629305707560779175645493102160455688140467669311421091835217630252981286262844386762752795404461508219742730577805169592168255651388967188646098013655047163206113360600258962630308606348910576203468936271090005618965073916388320690686051976507149266872275812979907261012892828429541651430580852739642865039811085847971293186946615511866544647051169963627019933038615376047463388901169837663737461860142481328312617760294215865474724582199618416604194149853078021035448963026721024816897229523238386292832052214472262133215773308772071991586704172396061493330567654432015772817544449637370761559729040481603888139398226933996324685215869060923549750788708020647047455205304237382622658727977558736509308835488264432966447533884299511465420873477810971124413962523948627981423235294727236684684225584775424845182510126212012594147994561383523685677538644947106946145328532770346153666209564235282531892944649229171976099875040287593976548287480315733104409913103108476548902635345826914348996092114269520920928769973247454901890982129515320341276087343410739950218859995741752221030039174622845664840829006204906840128638512567362603537597660714284918110794273158023243210445984068792792933594576064746804955035153366184442901794664214303581647947264743743873764196423449941855684699962973296069865826199371612596950259872535180900263209698544848352243697113464185968396027006689105213440572490101423088906863292993268172032505381144869057849959224284413857115215486496570655532872081558370770782200920006078012468543524323929809008389467575527580770399613756348027097535929080332695077551285041747071907034778623563201501316122640917753425704507417945988954660458190233521687445851778075519269242068214796645154808146554457642693732603663618453531206199284304985526041980880555014378967868768167172746111974385587104310807186322986987388314778329212045083814312576267846478679544219556898141376664014498433498173221526414120083191102342131902880733458403772897557065342963989890893715536737621361054532446910060807188388146071033616904439137654290901871722667789887355687058039321456599407076882530563154100751454293683994595805548017234194514962344371372327626788231661457401180425736675480711963924068451823538906102391454972660357491637502339932120391196044541329344392155819423335510760967929698648380526993204593122369191645301450754219228788359464159903242185150808142873873375469455451195535485839497523764889698893734157121395362362261732692078135335733923215395993075431653779055425524117933772643080650174185719225126576213280000044173575155051545874112119013781808540133656754412450906153189466561074097959999341177256855877149702491889622970129273200916554868146622626938871505902280039358349035183015308381944857580610083330918047089605410580416752474514423366158119616142755505736425840099037119665300324300867508380654809183791589364858739283048428741311763865183121457740283088188112927271528122117868302861290085931832769493423992272483240006004012544642098384568820016236579940719701530785051096495879288229200134888628657507373698937147015532122796012859179713067376996300475168341134966090692036485399723535047756425673090701951260387236966432336160193229042525853526702474387433463843407415441148293334075385103153922893285353142035343819690892166692075229528412071371234740870695396444718723709808774410276506100339453638813234457198767682526353796184315523091209863355784181830184892796055752175274684145699703063101137421765188034198319036982832333296687162218052454961017269056814205984770938835376892968391598388834800935958898684732112509327693420804331647424538163553525182901580983366124284111631069033300251176278545258501051299117302631736782846382744109122240674862406753107708961389008615393007284984953158667679760720134017813503118068579504929909568313134070104082439694196904607419390641595494382189488897165767089501945061318911825117837661286125933416563574145227499753166634827897943251690013801027272349989279389831575154873343108151781350096293167270482704279178317141327980739347367312021176327175841586002889182668252009215480652177637828905003382233438775273897602614899720170860846629211696726237331579818871461145636997641172273025752250228838061678820350343481836537478502198490745773645924184524901029476902768388346992438568102453107913287898425865592654812417807531729777323781346030613027489523792358110472077215612067929549395553089125658562284907809577035312388220793200951140638840268882357135806561133188613360448195011772389900811874287303382587614184191613906339190635825233179012059075481881728432697277087113814798400989648336271793578327455049451292605404038401662761298138078653840428506521651988733555056986173488408731760069123061948101982455902013722913556899904702575680037402848743850016134971532485195167593533004764100032677486591294072483789263853645688289230278309029192726228559851581678779515626452264604053599380731345561343452040883088191343544739955411409465528561136274915976382805435288994164869360433342960632687405319665585704474812452067211655278232429988060795376694099438491648765628208228905536648170390033696058596262977406043954866797619209711572977336316489758939616050320059843740200692392466880483209749685980115047766256156504902192883039752565647798503226311926901685870210864251140146329966565228822607688853185191819031359674922447836650228379135778658525287867140042389657975481175485072003409990397440010814491561144428598449540198577092165605524832726860607160862274566445043333231743852066691588450988556123736488383328641845089298980936814812798982420344933867621532026600104289704390871652322748196720233925752730943518657822061556778420101604363221108659021441545617536924541699737287033773818945907853253716921582767948113956408022577482675110916622186464799054510818199094800615854868864211443729025852332379854736024907514655994098908267484593565849440735493394620694410990770678318369412311562388286917759720817357722286990234786254939448019958294721899849435925870149245260915921207611786484772471439442536944451739061780475175570229571986714078232930701050847743499687009103080686141682164133528602490955461638687144708494540843944555994854604833284026704409182656724570990173390248129430742870019815011666126412503133161020113236692675422473154257110489399412044352077137118167048268141813981832012203409198888556131321192754100297441642654125594117270953207779447314707572136688700103209200911133968236581322833863768362989955676310055795824011240682504671920683040403887215108194346373668602412616888669417592438817995652755739638832059350557866215700479847377633945719555722040326594108725756439578305617846914094435106593354221848983659644139215793276765100720446683505796639876153133034583038446608927551796894440901286871101674667745895857992036016562656254174480969448589387446186375191871347650837049570290310011582917306831758241240030517066951623158251975182370370693929260477663771512709331012515952540396745224639155236947315860729680151447554163755303031487455744086430089576428497303011155073393929052999130218207748181014291913737805211989967946245689704673935342392294403802187512082832309417199264935392613534489092875398182632938274027881927040967968289235921914177807713025919106001513501260411558537373520814541440530963021472875655324136919263969782128026690364426051326150464625612373106163058927439161283932313663243258521237390662293187172869273825843093852827972789833715241316861493878283470955514580898760139526786641359370770341932129013875531087966529917761374182379715706408537869027169575815895569588425161167943892619791354746266519588096548002101908769649521307258519223358962701459180465821309460215469543021447316784831916187391246029012684059069187838167597635959121011674569871524267140311764648983055181270469636805142978481508248007220248718411443784065402980163889816859412839486987373133163220880541535032258954449248415438389430571278703132910552936468859887938942525607802322558366116719957328006371928762130841306152668683218863805006203764412296435092716296515597933671295885125687315709530149279118151995034461339074016443302349290922583124228763481690687668561546999357612277878863470572260608811343722153799333099692162999578704898350774706432017530978813034548565876329416257886104912306551182595607910651378495279356522622847109912779077727162128643664281103646598573448107031810425183965790698553932456604702556872071704526612951969368411776726767522878257415352146621257704272724960816759888181965551822392810009311851687642062487487984116743002550120990159747849638511577687408727324224286285050929228929291085686074137397160269117844812148582842081816252148156789861949563836282790454933165300234265434152299444880638773976783483071064789167992620995689332638333880926049350968242255508071191588974420558920286844288141196158338999887904429652156618232320694367856122594715780401043756285908664480650120209656684741018710309591348202965742548047161635672466345449401464832766058674897229491856596743483543763467660430040578489044669009234475505026565644866574473248506223827498811318498351533610149339232658724547241103075683110405585722323003032163114637331874329918423713212246523422521981638628296617089077901705384196815264910158415632640519673202950768209791789383967698416274724224489580545385520451594578267500967180075799897630941496812190671413705232136206408281170859303294231056038273208169220850485714092195445538558971074137570572091958193033363311003799685768143837608651190863250347154812072805441785504570441277883030436155198118786184546419140604548629240327775279398705371756201804626267402689106126348860152396321543388304120416995956209536354515044744384472780243873581770824299816071930180580884282930002033129759873711216559153569528577725817401926189230408267156660369698739095670445610019042804810044476924602081160116325522322987673104664340250230541611932737373845138971294066902714199835321876690754450464248727840794724147864932184930149184605221045575388317155353519175746880068749375465641879817568562259996547834908110137025391517053752261253323191268233310195956712628425865018399929070936242440076365359791396810282013809175151920153919422697084708860088201371238145119183997136293037933732290358250124672181499268272085437972758996262357347315792003468522909523615147708880399867810981161124769917817027475289655521208042486128128126475824590196112661940993711901201643165491879270294249634997074969481999226826129062925236415955171352220158795619868869482902753230083854405902631684378987632730410556060303783614267596182081492905161837276673506363415430783421527230878611083327878628293475743761600533276841407860533234363014245912509254125372004477906460443930572051942626502168383615020794800009238504925996523539273010561257956680594616826446608743602816680269217474233289340147269428301114958353241004826514918782501570982247645461336358424031304727970013184935930143760879436133805402285916720637639055489425277752103958160060125233790752824904570337968711777461550455827949448648342183938947576569990821133207959054840566819476772554640635087859307239578875929999216473870395695170359697130280956226558317936577025522795520886149404794963798434899651342903507156999128474758460604770597013662878755218836031347645559538981084424216809813606532993457518377454273253545957333476298471101525940605546512754256435729687639276547422508918116323222978975830861067048403921084067447611656838487298626973871386165908717071997104266217875230235627961663963370162219412019712203520795515255820949421989738798866543110220981303710315925102168404510586083912281661888540208324891341697596658330332819189906671328838060920603516064427823049627078658450453008109531940898624094426480522722928960545020492979480141610394621206077188028335568658497652357017356365757500995722327178520636122978134750226999436463992462123646259599352985503277196020141224908993569383095238053079221791920281023596735324592225468295127859001712523762357085189763868012395372038863466586101267414520241348829668063635709686578245571660067299864137060588537445552151772122185402571256478863577035581930068025790778866409081767107797687288295941246734521341607631203498909415798596555799351173339588048208635613875623181105568139197261596780252362643020693004861362496439995182876525442736913099249068303071438270793504915564329977287620714866302948647563964278655635402563219147036341570073656333717761961507423295155547417594667005908394611759367561627691949081803142055527159918678050380453614512587968578869718670292873478091409806884636849663580801640990149450469924175395145172555145035725045580044879002947351169469719679014087843413015101112844181171887871122301770317808587041675230922719351198883195086012894837476944892908914475176948017152445710769093151056875980354285767623347369911140039937294880339641586518700860612635341936609562492043133928737115240221393061627683515023734117640840168673214545182436272964481554903208748856423642706309798045343927371157840577035737773073575008141400404835009977257044777361176758725953211384373994413297034109253502178425356159415599560527842945784816441274969107979072801222139788562535083066477920805169976740108892969134374420631819818095985765983384559392946906069332891833205156593452429505052469941640794414170249790935830426751846947841902355906055423718859557596193215968664465533674207863283607119950220142484564849772811010428144731942937563044803329381476028131209805393406123602310272859702113695843990148897776404827887054717091931710158450173251056228275021344731807932604495911746442647255371437647030185958451500790864905151938952260652803676788526480012711716254470127021207401030655003766829522315918382921624131139063357902829583696039970763555013315331828052545669865330592244925904076030601235747427797464211970839955833965994836106751071045684614109468889910962289076461013403869684217087217827069308920678908322873178358113066530277487939347971725337889482446423290553144367391354305342069369223603045922751295307645186882827990292992519287487034624182940919681828525386314052513466884919495448629425958124011385954946883312697945842307050213896719550498348660603589736293229515554060041961588815101103681222451837702499516610538118975739076296557676444166591765629256032716322339298076445620195789552851895308762663077487745902323705564525496628150540842788942502287250300808628855551505967116116326022059373772959283374481376039306448013555549272334740558703928367966806356244735551857635203247817635502051344919762740928354452879992519712035274721925327017624833854264844750529302648601854534070963190249459412263709764051734823651533859771597185372267792093178791951908650263417199427251038305545463757961835886870455691070056023748175612870223957625953004292492484233063702658152611691692411054374402230050489479545308343273076906161991705013930780216273734854624757794796775587225587327792712181746500687301464313962468904056872614802562028202931238814763764800241394446027142751184015546500119250383931999663949600912369720158060772293840329782738048144028219755556463041117753477269320353794144828344826818277286885074364172898760805498856344373132053891713490138885510511130814660419330927048816541216247562936514049215601923605689800056917735285025432983348937985338349600939484273227537806219918131002390563930660733941975710772107619395880596596317968706380440249450175506798277312858903530456204576247441701352889865355153513060878398127379743561314051419190804790865902546778500000404953804854853555534617198672121473640590712940775977295685468599813086206328279940735316470113432339654479266477737500284452855825963047649518675167715178685226132672370305996217504971834560471560341711405449665754381541620464326273869890162179677496256098142950773250722840889691816081083468974009062333062874956066956014353728304530287537843211478929086195100249973557221999164809738068427088287346075636844135130484461876286827107825442946766940306910269415884886380673276134172935500535930653157808974989762641454846025186692987415568883458316697276076956500870028262218366388683557833508805977058664372358494351541783571481510846597907039876239687997690889328608479681303204884855440374035088690312302678383586786697041178875164894489261153605346428797624296767754856763140976602413639917617825255313932446446019321186850070752223587858233284080347282648350768571728776416565426433651405075369947507896407736075631094626957544565607770438271057790054727675569175597727407006443009123370849483558829490452224897314041784385471098087190238257001226276741994807267125424050147414579431048385293467574618128361880529797515086092324892316837897407230939345345681073834876238060034776914954370213425059218054742590525374426710023891831061214155811588862570108632097713973219861842600640175392711357460478067746287931407841398251839840265869957553615776252324504587687651364306468090143954516159125629326665126762505675581360117893212153268104180825078417180446946775050308832042283700829391910307471973722163116872031273083557596646837211962302287850877491801205939929331588535592408557943775923296033424427158343939401141133543293167148694378074680880141376632073622989959560487301895502738906456510517361797920578076773344841657516010457504978915580893631051175340871528292351150313499516181118659335485254662990911720623949645927895609779956650891972922257008701755526541814613068243567726039947321408015540662595776785176332443795475236772578151016479725548902844943521472951224512755519370190363558109459762909883663615896651799230918804503605944682334135851004284453322461626191174464292598171910282880258723522245289049341435039722344291852501493762286211471059969806198493642605722936395658067600477023865477131301679306398416199920712643049899873456157437636562534926913319870651100735967589165222883581272617745611456186262418394829716653923091722107688989757872024701777978023629120151216887259647538251971466371348517853192702540867610164686799785723393814122188458888050969419835768844608202924497902802567825506022977964901230717958925775771292984487205004798817247426170392255708253792496478417763317941759094638784724089285775560804623696647913649608357879316386879696978880686269553867753950499495824886313888424565833855406060130190408697943887469600333228680289842201130719076295865518141655328634401016415861741054584999394459167971478442222341444719315484372787732564697825611870140301679507732759796664208209258284050703345965232654930350375737254022424196902118605876345154788551934725703084589859907177203893413463040523803903227676174758983582639741395729731060513602691550536067408731890778245898818577177518071504513110408170858249716519265840969314558478447230863591462232936827933013576665913171673233658263013793815134056601005333744080615406731990565393403175349092653293552579774540014129803973617758814826326867477057829086987158453029943775210170364039826505434050212948407231647567735719660668600456368084572277792606400832604099762504481220494031538780999913259426858315366920097744251894501926427683180489812974690229025033723599063665589543531102553437373306132159385737772731930953606110126050032714241183162432043167298190071347352600105564688401220169025359940770315072436790078022181267552630778265497528158378696296340313349270326937210200968475103132828564905736390892017946062890435931657320912044554068811888522315972403071386895004317879019719706179294805691630271920122690926443408157905641896173641950304362090247931933266513334885296868990858771390144258716773770265865431680210130448521816174109236670872982676366063091166657343027093631892206942366250272623035853608082652347020047832807512951351684569538373994702985862432691655525701217636508503218263393955148039373347837731967526453602080616971280103071904988196986552749960771761135416359494942200663413166990149006306710634768489072978318601491914840517586095192139468900867841542599320704601132932701765504676122606288357912732787630871053204558832185181137901228857951851480462656439002402122313761094518683674309650383786204281600065657076027570129637985904026289672764422499703561203703901727437938374164356313215007068074076795104468979380735819019645540769747241599675057559056225136449009039050919206751550000093233808661758261852640681063244852037328399279795555677797087655367656602174052170464964908353600296287477996321478085518900872521208538162396011857923638404665748462554755152688821032291207798216227868565156172998175747842229117310693642630027163506596704497550061635811475152627720517931291655921255865404391075858138965216952934066264923012057143869031630701005365117179269461541851074814252106713227683374464030016196959593610970126522201046871826525698274391089653622654342924654698851677763578014852481209775305862789966318834086603794525848907800361147958773670003953384613585342614692155445309181119494206364747471320162088058321875432023659264801871472143114431821324579511089430302630718925623772423079803488420539607272726562986134078708009371027608420422914418088986462368792166600631273913891462095293300643828056893812299511399350934347183333899515449561911190199313221487950157415763878630126945548276211242309011042686331972986836294695721271953821063496930289281131363665985883705724530740012056632013678235892406744143846085419553426132824810960262282645965619952704307128492073664117816033401757825702874602831437740723474722650450228017588762923943747327757603746839909621678261791178035714977282953708477646502537185885577041802024218642517512876164057637410400209825786891571703196758527601381524747589627983190175575817151447682253572665104325619043241867147383398540938694442895754865279052047765859507776562368476846770348268646953007547118946906966565111841746262981910574183659116932807742972155161775556844909145031030680818080814658737331594121394357803808219369921735846142378957361556739280865833759359441997223309201193148228487355392003638569439319612013258979157206210948286965471645768290922099237573079043324095696181053157673538329147656374623230410719168771079892738190369679731086358419141699616534911702518363332714017130311726584305674163589879697419698314713451768009998848438457240276295987538062912411232048799201216167371602269239042456956694682050517774435248305296026595934392421412037484359717434592551772768634748443614051075757071139121027786450310536967753107938706914517338601380463299409651959911117216585945398235914930469231042148366205646558916854422811787325817641945233343650781338195789230446725585593350318963020162977469207332415889889802378722942463714307525386202908839280427102586633134293741018608709963713318806868291210083726656146735111785511304352992039860172963095206512355041917775153880080570915914139655287905045797566760671752056097419751581384707528345213221740621666985778565475203307510331390789001213487715270060797987334186577625974919122553976803024298718528407198204744826616327153972525418314289827538206058637385121049330624430509176927993136402745039077045840616881160263203754541437580999823574062083083530548051799183192593465650552443726394435896928261780846379387046797769477748225233974013757168475143391262519509018740609155111817315851594198440553466543852974245227038153028718130644235458644161440799075504468205445128851631432981029527685693525049947913960350402567050805626829885403468209257970364010796778158674336225707589500953318949944682768398268980726652407177920568013750928395921409305024995417150404222568738130655082584818396951822516936948166101168403967510095434658000707232766883767759817657475197247249287327767873969813225266670047701697540642680293032867285521405757324519461237436800641342868854066603979031650591149284806423697105172730662656874457006136925679515318810999027843353658997567825977172649766663705622773180964375921386295252560924125645813168269610259310765547205579848414094029534046734086280499873418812350400948673143803566511145955445000746000448248880513781768562376555517867073346048405925505631157380102880862434447531497525925297049825481210283613670726014959715899934580012192065234080035581755369338407863724117667527910348037279553067618971324599626450536350248921712056146999105570744730039716526515491340851316767233780761937855696590103232184030461089945130611452731598125161810236369687241324412649141583656294864032152273881221097548984480197994789449482666339167294565571822199378028712895235252988549486646200450017207525565362820415974311584015534211997396466807137353728846351172598260474019950300144853291043723503320951075566281842500859407155473146838541000612639071156664566685440630693940985088994520179962189383728075513239453534488367824720101246006190973289989574318342923852894366473568683462089306045631708229103342690101125068111432363547149199979876021193141193583953670909038640875894825903846145114913246903487676248494801146365945350489108390466394193371933711050882952393439364017232549500833436479609400021833967234145130188562335748317588548999380169343208644146400144908942297019685986441190165283375243251459047906621713241184222612373883074059463689339408676693137932960296091143328895358931863188587313459439289402725704916480917833990222269113922511460537467038260474770680382878528947307779926734228023119831976919207836417640137931926384494824136700100862222940773352086035213138718098516373844052791994683761136440654666049006567520366937888941581916085440013622352112058857535535164215426163198409752740509204672407373648418154027645375249258032321893502751697070786762281752480482904525678393331072808771292159853878470204434192071715387204386501282857699402613925853440431907361722971015627635361398817381647414461654381023976345813713404558658211925939458551287644944933200656574003805188669517738399899282762895854657790056140959769028165053383475093921200518785083963877963792551306811341621615263982992405371444590300901555988014428272153118964022990104636422203392330907646387867825830841963416981725811717935545360992007138678578153514042738227490190261401999553820698954428172352754037414284264046298643007041604509660988792454271123298949837588820095751326172291968579748720381051285929359560326145595961649450472883742878990635745129585526013119088216694652089343099715994760026468920389624925538007989331900083505540871849720869029339216547655544659973416118388141873906358953962332623893690074719797882465996559395125939614569302374700697871862489757581638596181762032718043401579669162776225280893938416022636844551070101169924962938164196007247130628394336646597534303769840170302630292429333322606213135140756323623304514800530081228830300703093523123556139166988694911275133795002195305425103163375705342354116672882134834208350103613596618473235605982564553593111170709664872305628849710700260494736931335932249933874031779339198158143378125433245353508134462707046842161013253674152130475891618959269994112906051504485350348731243153637782540628475796015416983028323304385452836877817583412283999773277021520357737021089391817205572448716729793576635348934304913189806499068012073654526512715871391160105252974733029740599760397376658517240913577575640832611911455674582122019289345356986973314899350691144543988478026292775356496189472177312102357291119816056625602910134084632962182579680457314758836038931364610386344101225912626039183394643121127973457563950546902831563332125848785035379858205565190380572927466571672545903651307145013944041628997090645451504235128146440290449722356631639392694955145034015861055361035581470969592373192030889475714865778484960051795899168985872272892401024953965230966409778189872978839993593727399454820877848973577268475120388521625816573740481166281951815597521303600986143532677099846571791284229464114501742860899188619208847530572774663237795707236832429866795946979292376519643749099660264722836408047476435334507176958370901325258546746388350032770134273831700261499428509856355465705710117614945754952443369852266750253985841798884053610773420296558363129442622097684236266984574871779228895371648306667347980132911994890320958614596179293344532451797016721810800083897768292898758650844543840033515127817830998961144441836214873206564044553440305992378138535194144258265604773574580527863866183833258675835599218575494032712070702831364935008734417737240088808924723223903900984326903393689475653252593352661624160146708938737220933959325250550189836600754460484127481251037173067829709621955672016107923752899222157167535034321990307917964833985116187829287599008332118610949419757017125634194931944981210027281132689467124858291017588547975654974718612764981604794843919306785439694120593595179853973301180704190668241330130217726542913403422663938948783532770266147850816581847537162546142075116057808304577514328930800142057189469641708672089573969030838430885239237931225808372418398795435199130527688845100788633683156100967860602009375536994562561547236871496040967413793853510220146303179872437397466564023092581155465265214467019887401200674878029767713724866015395580101224355159050096606196082255847258208840390033632916652526272692370917269670502733007418739033144226996559916063669383382497514680278288541083856211014267072848852074628579058405484730738808292210592842389987917293279122449609287803316060028021985900707586022928551887046112080638511657168356514834274389312272111769873140485527618450660726907888411931981332929169907160669417306243157610493663399028617172017406135028586671235498100599851704233192517201160340399786691930145653720009710244785135365160214551191819352892881910550073323625421816089883541409427416706983481951237003363747402995354664983320994717853249752013174135473344571641275422752467153920840493025820515816002538129069404538445627671689157638263604965262577258856893105407715368477058074662915404776369875581383267166785959092226249952580671243831232716343971376164181008215218034738480248982964947686831442472501566678383111253293779295854575239079359127655256460242860320174726912129368550412696315604085850974248871189330889694825200303262899685049510396378990233361713812448483420226547225012253705274966071335934638413118059484155774866854016722502251685649555831811137445863634662044652544625793246014953229340157193231931812142488080215549821969372530639407179343002250525867182792742955837743553289521746789269295892180022270116643331556584793276808225646263786052595646235874878833300600588542923189298347808544494164884261447667654783333495711943874003087533452598341366751267115431071043919086736960547887849942823787252388975226684012685455523034218428299756750370937132092190245314819720253559504596211103678201720717065257668002926226877332562399771936458198283301141856355211297813149392303130861546395815768051766781358159557339479428692233523883716126086484836290638520460146020679744170690892966858918134525288773783743864600142484189343857146693460022859811202675367569364562557690451965379422267464899006260322991171230936477584890565644442279830202376324566288128651348001225307840658809818074935686403346245230251932871875603018179341669008888643510079097245417283219265699234053772479207585503646504347238612625486417528250764511713154977097752312230811638244218128434586297510192847166600467731316195306549590787156705461554885721592963783543486748058391473378288193400356351496858068078544955803358266679191344418824837034287119787687142578957508976028992766878400707019934170218108682088326324339914778575160411281214412601755654393091343565879184679152428342088370296632519705326651143446031050200979755265308502909535925626400595474565433563530114996596633672171102851556549503552105081901997577677094044054682083587046673354436373959448120087553729617720929090147988446280101923240381176422469094573048583782133770477867322147971643975112252094829063890718199651142027521618649015538242164196227692029483592327755371876926636827231898276357783561923328070951464211924030747092987222407780275725374444391740994613719346315045339488940329264862498786053471592550769231832692303647659913871211814425974825635155204270786248963776530414048407054356731919486418044535965213174220786644815056216066000415029998740203361446747407797046150003976300366546102980238444054175226753431511191891023650426836364190799377217312111253014631065394369930849536753950904523277464076757955694274323759272163051989395799509358610928890705251463369317636606465989488114706843236165432104812330677798986835054976039548980354425456399942697348624357918357860797227447828257659531810784084769685820814030142264993326439734807322119719676108284912827993451189386054620954077583151480400938861092916247374876652079643547202019155576066541854393694564369665638879913898980519738412565567292798007224070048458136406870164977847053765612597095068755236131807553355852680709703577004003038000481137175308356483234337866053995750020937342044574112824119470800086873368394475592349531258924546465891560002872219314758666047015807632334946926404352694580008281562916765358181123205416428767606600698167970594301554203039700941927521262088004367436643521597760504482046213778024021575996314766215945785768273744022151505390295693257456931422393141148186263113855634562628651631523034203912794940976619948841884732789720274982872236616846987236650193904794688472239345435687598596148735476780598554511970107900034614096471738316578821014561350262809616618573350895689214508950456778665420678813886172203572841766085143980686072422100919756765170536076691861501807559710696221875880983144927276607349832938171638482146226515585722926874411023741655704591245759414852004429322855993961951885754077964485805708955667471867571773158093206291791753442366972870367937548519153223708695115956319552481983905760172809706224918436499982427528322720611507796039963777282317307997392390472395360041534033832933268579779087928292358204952805162348185244101197225750558532557663924504018547312877586640372979839255916791890654468096620341041727051126372036153486186506615160055941853720628273419160575775165638591782471925548413011479338172833812856057407501719242618063807407014826850165471998861064063892746008307799155081930110507367886505213735492795865050374433055007116426492239079786877586010501020566286726042261979363976187060562217729142866426786740741729111586064503354158071485213127703075110159785364962818005388916322996636247119252053997390246703846731110980422057356975800990142213590850373806497932519660817469079379605404189861090173211580517032683714416252399637378624839323063075246591693067946206654824798116613578387491432433030898730732192323769115563072416524282983272482468416554228154291637046056415746033085372211750930999165308383350507618678068685361112448682650271066591639390727675146358143965683973022789974591434989995115612285699484103721728533754450983616929061621084642158040624769832229507551789864329482519731822141157265580250150848405565305567962148338493676342283552432073308836984602718814983499189594144526352016684682828048308113785216892412707033313366188650068986793257977245344060138664067326105683172834900730640392478233162479854322193702648565509190194794127197395270081232825302269171721214701509988228678317184447610481242438947930751429297600850303763930459546566743857821839696922500897330563033674848472197035216607408744161314946043190860312467662271413012361685072136208295633278239386827821826846631577341417770284980136139988243637514032266773059714359025118998170120610467806042229160373510629419415892216948247712451316247819853248420410339238991605550892241691028861479354020437737161161559202662378885556926887676989980664285938222570913280346691289916443027479899009095861138045320271471708033340644521566343013889529331223297209565690008167238707443039147275097767843110693552038784648450796748115122232146455524446689507765808879811588611467307492151042367029442774990463668411064169095474936748889646798070856537937806471334095626619340150224464592163387159374606857800539380502197504503849395242611470091147528604360059781989835259029189010520878835697849740402317534623446832750475148194787806198092926269568494212993778008559066032540376260143235346606773608658831487917739998025701527865599242418171021289344991766129436844480909042728269922195434236818232812082227920654661029039248217386809004313549179456944209148770557446157764140306382748686368846346203199202179679348645220587971444363528339979973404702105829225284375976655608363254634618695031665888069563244425732213110661847968097010785883319675393796553972143467814682667648028341625132811103540152567663819104855157966721151058771228406964314195036481756279328462269217308903281690155563475348857814899468157755498542225480534338198378668208538496869120504627913083351372955632406833661927897161734384854859189420672919129176541453417242067419208888038948957599494924573216321767990365380235579921783511054647690887855741224485421017306279028638001100019820224794563947963021868511929265773459366122241437143992017882436059202186462759157393976678137619519144847359085409230728236206097031686546783112415977408945105463487324511978171270645669610493165629282568969737344481559589931538839456620808483378568115372915940066350061849654159062964678022097516404579013823528740863301376149831352842795796302705446961938897166489480840227412491192932576287683040198694066354987959489011951723594467814098410859549489698577853063998448969770669135506043170337632376352608312753719252361215951752821004075230938007783088343752028018150859776016506023317333369243143783468886885950750660609674710355944388368870831381479197042488617102920694011675675522627372893807351919082801559188408355678320497310650996623482371443358796132196365759026554996497773654782307884297535058149219715707371896685717842131925851876154501860655174860398646721545675971709817314789102716942559618684075502621649900101313132239646408552187237405002843145781092342168373981720990668601073429136121946444481348959317346881635644647527210820436682950493055023681190017469118671337746303360077927944699242494196628149547504233533777859212589841959088062189164085656941785718529855847244647649651493813460142433400266646689198444919788275699382335614856928332467710698279986933239769727451266827148319593981458690902408978693376677955054576689771583350430288822891337716511626250385777853053298236133384893920323417864592425205703894274904927762224376366473550967396796180495498231338336143471681039112458690619705721423173006647689255887026138108336967698909294405727999151149131150593588440900192475843920947876081044586865710037681569338513372082314634374444117587053677420168093055310085038725146969130241277421368223354740492006086427887986202434172821135048255239237260318046208446300808933970073944295675739257718964045147335281006904387169413210838854074840904240669613081591382024912928127003112583855898666543291626282106827079488026133575117146970867020025490650292143506135423878106728874196903598973405978218001947053754930924899896270834083062221798532811106421235504331548176199235200097307263996721386006967583688956106807014183350197204672990200327434651385197754676582125268302219028302754168345539047267769814011321115577955303224661390100947697123038428192373464845342892851406375403273442054963052335820094307252687023149472932933928219466375058909418226869291980228287994789524334262142303639336235250614225749248368280649988253017797209757680088935579278793090451686046907371066646198409773334424537100625314936530917670279083833654287471477299546974998021922087101022179144335237327628614272043820386833446550699125395651622514051995529596561008300672396329783339886389180235756061163935123732518419104421059738273853370480771932238539247613213596797819320367874666426722085564346900677878106643576699667044557714804062131341577800918190771205543788695451207975643269338471480091603181116365973902846628737606193253295057217275938057687594573035125815404036443540738782075814455875150262361782483417288884439551024372493947392782955868770571027153882546674511690470586070261421917156502943174413833459761402094567744296857020043078590618432259193591726188985325705182244326344981215249973429142925825162141911248799981385662492065189551761513520408851096402618050158940555441545266691381292979965660985862185004110532982795019270895005678855406472455793671153006411509262648395637258765791996083631278197804259964553658538457506765940907552380539251388751329270731362489047469739552677419623508691203117135979039890186842791870735494056740106787636385861938785392836600575226650658323264953093327177501560661217030060639447494966379105682046636130406773586138942246059426807716310335378827890701775985018471434313306660859868772066533383275946852500567696126790830498443473739380374001701471810916746973845557562326820026137582968607434954220565683497960519953037827253114366204355930697421093881770707118951115157417602831334442176127752145498418621166022142119551759393186969534554542793089875454396102034615186945140353694756061278965307328056364585944519909730345035968201203895906033753396626973203436033012779045260300765835077936263860409984169058052997017440392483476311673096078623125106355015279194017555880204674808122624107275236556165687444583054798631504150605992720573185390970201438697460921683948431905374272956620101805584967883196311331615516651190711325287748280465464041582015937655946922959429116774051359708723230794560694492047101088632201809252607859512223628737362978562040194813408459358870258613133777291375510369586695855179636497014534605194288809544616650335293463354768375000605539599991009136883574225034394795285782382832353164630304521572219348951583416061037009767721609093468762100236061524428603543176143905626002689006925403655553082386191505580125324588355652823592356220713059898905115468510088117522989189418945165422937230102625127909044519060794602888009341035841390704648577138725774487826421786303151844945266301512996666702169848974567277306079021953219622126324878191994008621860517091443314259712160454914259938611135268396834974466644217208262138541680187012717163472714086047786510269037187690317063927483546910057777225158959363153494132859485974637536105164518702630151071818198925128117368269769987430335230357965235994540314480142556875627308214952577946209070967524576147057395024834107354467447793800609897730466403506107919918894911225554938531195406866090397019366874348996234589081234921552001613914592451106223506743961753347719996054159308178321560171074583553873941137154242747169387261634357568891275517792028379840267868249659924655891090595769620976667863585135335978256670257419909419798240999907161658917499700912665281829794349645625773730051945847081657836955775761773704752758658641424515468106932629548868712027042506350129716878404538769292970736676410274304764389413055349926948997237929046057506491815517715265163879162967899273131721539836272347412862081420152509366490977465281307118627500663638127541608787949496282348162215685607896867398407402859647993253859618122868191620928395426380053286731203543651293847511454679395881241145066804826433790831214410460286531218567006335020082506271434836191321246366379955065288011357307506343647877848553184130834982367869533794389591016503063871043254590749339367048643392634155114397751176267451502453880269382462154459472059935285127765782443360265214030465186549204206073038859792478874323200249888854365991316292478394423330749188045921875150933560278589257550126217871119401502245216917179890137016947614955779540807850338460903712136076492364820215447014783019645800495550573711029422659390284871611010150597705090367044649817460095621102026973254745737466153300126383660167498734075918510468993626978025395851951106916532724076940679941383606154596271713470309080992522694073379530600094696062694702004337716867513322576645068591734975749315230520026578998900499048335903794911960553271319802572587644274977889554448983490565997407867212269715947888911058322837925654563099377106198589058490152954570164783262249185862641305397387786314309150763612259780319009614114586145335229293834247059583197562612511773322994876750360528374585455047556670208766358766405673139098951245250322684219027487006829882590441264708096360156280947863563254463560137901344717687918772476105902515229794505224204113139531448892567952630061590967448251569308033204932698660173391244549948958392733368808563417284053986485145478243817397506865759953486529100363492039636202363406568429431776223343451289187982593454970938797304345842362504679898983385429906793971841180315339000453463748139373010270335264368947526964296249671192043403037455417690220296785700626417724096676100169498444474954835292825437341390955621031912487653723868005160883721593238131603031335993783940424410652821951652220946436207541069438795021667695377604238720777218110956624114285018906559663094573946253248943035983520850659385743249067707884263650563183464171431887612853575730009438700296625190076375840767910919901680966747650461918720164792030179975102327929461087166199922923491469662794019279893419293080218867942836845531494472100941455175599762629975567081940694608858971929271910772738138154252350931422739134513396604147698724366104923141972842994816601372325400975384352842013048735163580311722232670988116952650732166639741522835304010697966062226108722960380657346622046693249148180562079341735893748860244436520670720463070581240563440838472982105262952386188672525654947999033278528573888797831880708649772107899795753073026481413780351742543998090093154214719135762424111207718231829588887573438509222805795933235009991402491786035874921209940127473546541470289412647213901115981789476467467751749886729730121320402939501901043634368387442519894520085567559939434115757092446588184866035898455991503041847933001827430679316603542217042484152331107588964315257122776887129730027177110020538134242887153422046756426454778294412900965010685857798514448694645093017643278402104832300898355731246720507518790190169262329960386766913914930679851630587119991750237022203537940412421520930126315348273809410626605772735253292811404658188118298183054037726629762911022728285691367595609904192635586217256069922856568335492018467326588384167116599329253596552976283795977324937204506420752275225889180727503964088585810828541425695870579994139914833933886216226744095621948203957702276722881689600149598210905590766077749921601850057838206575893125656699174395879893199202897376130629904676418604293893303143228365319654415983507507068602806327032192912537562593642103279153791947720427952264645170461840194837451028530143246691523046234876727894042110081788577157160383156633322628380543451113794239224835345878616817567015165918750042974140284526218347951716056321657808048359274104059918578732200917428206004828268627495077921119236467300089052667798816592260632360500595571281790000588694592707941386792500821308622152483820662806140810842091249115051453118459459072877538951567026166271069216556032941939392614665470064446504735432321640601289180200738768332499136285288492546854702171200297100375286784797144349509301783038256925341011304456963610432346027649770115194281957141845891103529788618152047493589736169702864632867891381323757906210375473113176111364058112505389088600485704784617425871499469974881341620549069350220875679238836581174382466804296358512751699125513716317059884996163704344288014968392354323624034788115238271370381391857144769560815352497086684587332803508325130602682961978138301256799286714260802313638792270917059607904862978906991644606412426177344386620326200703486135736710788441040045297966266656667881889614961610069624590670179280749481866135885252352289416847219706885573788418606555064460659920619466202700144087587424892678643965056319630541792787250221420105294663629333589930594318406036647279615145478807854959170224659562259408404164510383714118625488643760281181135747143999984643709767780701130974950397667277742191313229155613243288108454232381237286678292918634475963817125791096636565539724317144919635105978933140550918219278472083566027021463724309338799540511719599991556866533178531387989539608494756553475612916733181171282278874650224359277595689350565518216607514632779488168993979288649630018494005063752790635984808373798239577848567527210012593221806445821696265656519422017805693605170491552658522380132451282083866912149751557580437400282018345097164067502627131372218497389867028694579440715802349992622707478634681500630460895953840869127962859243915844623863286063253118037661852032305496279759756667886542902635593187589363836471891166080779000120013309497567675709285853342725474938406705290692834615005098500341114214290684488197104773968754676836870323140365559322213869155493941993050757586834356138942679450998309059235538954954243078861046542156627237279099860531509169686554195523323436310176833119581499185826221693971559613986717644539086189497576161243355442008593154345935041070139696297735850923361889494904383253181501653367769591673131649053935940175558037103927837439929196614454260503992601910003408374490359498428915392574365214917099343078378487001303756872129864574511859647505667681593069900700898047220443786189844920004149377014037255451258137837745639365749790097012461578583341866204322065029006092480578955687496095035937694498608172985306348258021304224148294814981828393629520588224341736820465140382310789426998108169788845194302737771982733412713934930186069804564403334757767326989213954961087025109755128707407235936711463999012294930135428132731085860175931254261929232921404033959843671959160560234714381422870551143538260525286012755470367329627466066977084256304092451481960997833329356961568492668861790984479489179138700306931225715120044346316128561749717512823365387665738661322002914776213864193292127326614212557431544221301059300616445795079625003805223552569459168838921948047061237253557220802631424159933933970242623223424133685949571359728492137784900195592183925122306741463063039701262048907251961922233985414026228518064317458358730337458613959812614922241795030176678197502325424243298977176303376238073108508812770065081294491406398077664149363135186891025503542934514594858629534650574058306102372746815764822075729666783686772721856034718466932880117460116394516967886188026273819070430771055016553166070964981662667559713451911354520401900427844609529999064166546330653166989316305146887856819315375742714643707101252348363036747990463615771146585439968761177332833410863334615815544987702399219081601237496923330088901058716073017811227377041407109704348134557034129206410590959583258230836499430167761735430916274140399364463975957936150651465167699561211991154602425441571431353286594993108995239890283099800073155215596766960051755665347650333739629033920741843063781775798029031432135255148707352868359038629936706523742349721931516838664706005716101289175215332536196893722169505088301864384827812344520814015718614235413918560984150349562587618335859495377205462935090826039148156466661446173141343379443559096734664425662105488604225270731029232335435860796048376109256826745213530956645903342436986561843176930475096336512932380295975816450519034239216017494062419659236036939866984267697351232756188429437225897698896509201143352275906762855483787084629857297668062161612674273193518011125398798101712961657421000039191428953063218457329717664571322552897474662202163785682702548721028575293883657333719781471440427187192321073468764930442520910352403322371834035611310166757439631764859414942525979186657335802330637544835305375008209543285637947608611635557535249306113722868831762188406605339567768987964825070386922635099006474238072477505766650559126292126791974505109289675771799485108767227451629285912460014334678485277290542481594914078403294458668902982942623368705836853683631395904367158708978564979363565768702985296770347970489232689971688076239242915452058293316962512543480021155038839468718476044816398547912627003737929195660067532671168329959907427720955552630579387074553839646874782973866427367260410053326518791598196061125272300565431238464174583986960274964258681853515540559567485209254808141590468940428267932921543578215614705036091092549761174424921700376000784029670228151684726178414401554449340228894117283965759389813609457385645636922064693008293783200005912554548387841105167022330155699934780859879105365010542262527765705400289946549812241567190098036953074803362706573641464812851635569656579558020693576811673789410309571062926119821388545366872263702212910302449890295463783090646406043567390604497906603880505259550637871989755299188706849659917853110718737596462665896807186624841393131394041099588084733914251784508368311447173368139094355246186140017046901324364721654741005632938586017771964216254866281706070888226305877304833284405152849935538875664148049441173985608245235853539289145846517424272584177306485241981713130152866168864765414024094955732744122181999034410869094378000344092083139718819742102381537791674707104909732424576865623540756604788022660785720963155285776294669280294097692366647289905349745866705945156465786694906664220049388868286999925325718860444179058417445797416877321756173361692070358741783358715790148809846593098618456053119707878900253535171855891271793373350359165582830215245246965815119063434382152444498157262658427528697810553464293411069393525082319102432102254548820852430479507710481281921748848676075995021414712795439169988837861167854972821817568829370191154260816557244628102473537085314930917309307847125302476214874891090344981431722271391700399148251554205719583470507092315019273169206790067599011163956140458411323512771860187803454494877752896468919609078508509429157279930212693316518506080569286368867586730949217518808203386837699460604562223443006503556020381268067108480361954104467852264977310575965567143540280152851681944936713631477956700900508099662877806303396724350305834224590986666146777707644700466086878412107986702893549642551745786310301356623962871149149054585880882825112216925326000522653482075117809554147971082101151321782418602593781890457945394308722010826845998563339290127257703660817972781950145113049856910182595062577122630380423144130949309936039186172573474925953412018555575818814311257696294797825093993989562532621566018518454134328256912112871945006601939110701966190642166433709914231152375833488156557734480041268145143404467831652496848288950385843782672973030921489749102380731141069697233037604180425182122216046892640035964648240481019149154676787378018160820323023658333269204437769831693361457268142219208440167538518845413977043784537715833710957304204828595099670666089613515950245793952477905596304397699259835554682334816281519645047417992124108514225096735325094691209647370794265253660741083246012749291820312714227837226478917687032407810034103493758814136337205223314093731150493151203425050305290175501093110294148917967891106486295256776114394996710834439910210373234267235740102434178333127475142099378741562758727907420302728851944230556015295294394903725579014912486388695567367554817487465177975628010347688889658223444800738586304006266779647344477505623108273272242323853266824943839307499395580637631072798728846940578497571228109472884008890877625023210472308322450487123568686082287097515497380841196377628875550057522478639775095870325966261135960312109362316880528600881591823524008285192409284620529376733480105336703044974621837707686052810185764969861809419886699858798676797373828955081277537372876154122631667485900986227013663441578484276191874641450278053854380623761693409423337244007876767535457428912304611134729940652812043843182463390960692879648158911964416249633452661974099518693022919220650260671345692809589882209407979559937362179284294641480988569923639692533901910755055760634986423625497976328935791965763403062060112565631010994393926948305041203191670538402387734004501636683360661868287346373712126473398223042886139352357576830548210058421872372706134256261914004222566964883469025246956402766107312980022630402753073058106694415953876501911122411406174830756167356289691684638184270770415559031048366167400195250200582438593178200491610826978984155144089289179051333572966879224330728059961394940423932285153592702230593167544545999553291576505133741693371993101383569306188797560407262418726190428337168076889000589798172517614280057291662056766126187387395578762043270993841728420303617122966822023366212058746617244331044662792259600024875221298045495734047773949099568124976411524657335165908262630911156743998864917749906892782336583870574311588344301090816140869528505658585126401622454913438172854843291447565063354314914800488822809395746207396218477345405410738070370924424308691946183999607331607287837603594985685134780307170088148799355107829547924163274447376496229068114612615160219602299443964114143244476823050725334506045735457252740676713685393345383749556890048050731323836385245728600683883929259819212698872048868920406848877150853194772418847241760926751106750869829782768473627853983470267359484549975344940173457949580053711949886392467644507647650343315783580955311759545593832783462867349317592939935479405914218169268443943915011888639239464129456114986585182091890800638232676167640562486832011627579177952581653530214485911466781872089755623825151351281469902298640390439851756814914238978983229719628988500138112642338611860455255409838437661160465740220141190201998211534719941484669263495820190831652067694253992452174307502256773817568487466726695970601625646027711903690100232515529136905709455699511664618652638360163289062801147356711566153402114013818185415340398074558915322286400722448863567958547300995192489028939855277719729951645417009570299485206684652026920966193290744793210691728056283561428364605557794801984245622127186262999455964751387052712819198295245820592007391220484717273041178060235428020212760278824929461943018636804336793645411092361307752822397565524460268359331836567643144363683404583501018822189322048402331513490337825246188388787170647782198296848501528123355372041610616991866048670660135642961580103272902461279071474781974957855056600132323226185607617884004540453987851842478826915430065402620327185048086018795845262961138789614998312573296902280329901809467800397393899701885817891872563849840010124622954840759354757632790738751425867660429335165304887380158919965110515379484795123879407072700415576888263510434531122799657507768461447396108380922382871632046444351286918083808395575283650641373571749458765041794204008485218598268374623050341137424701281576582792548159805704863947085659401933169603240904313195812964139022049978612193004461803776450012958789247198080614968203290160941629300794297381287441072021490064935404813127938652751005727031312280299437510877337846197380410948951425780875595290458061106387174785275826483671202823402926478645625758451460326506161869916976029045088477685451770965706140873633296631321403347856321500264175632439962777340767507481167980701596262811735810372325276546614658858024361890768920966671236818071110905981623894175024890532564405137294391059911156893129400203732414120227391474685047874794943449365805169392172809927092386429219021245081398030915714446604144056078195903658182273842683072395128362084952103497610522014149609798895299906278095931972146554257316502871953774516174726684747080479639655101898283968141664614040908931199465463710726096742296494028966554874391149472358564473385393653671251088658019143945156156116386272013488834518253669839200854855164642574823090523071214334137040373909589375078954565796592319662133675255268608845220719590837395943249346081067347190995411220311705823613118513711917859418051158745078202523770885799046283444325058746548001822142587055014330416372205094457232766990322995413432940991871539373173376467637167638666423182088808365229465672734993925023244913003918801394160609781946311467474587708839381087218321837248474084477724902508193270221996459104526274608237455474975852744429752900964392019889592615094762171302721682462560322870863497369673598243609063067487624587418040475464115420973444092579478673371093624857835957382332269693650628672506919785709982451511247949669722814783504230378370068607377262024399949800635436853225859952938205030051981052773037041686146886814323316230924081888417510747069498819870415930907138786571110821990501226081555819711948160450080934433999915251165313087397537323623756517480601159664489733991355300552181845507152147302157184399707007722369393696464308430993779161476192053236530029642200792516946815172774268927917837477382687906088878007957737791362311090703804101845925679491459378235622952796351920835764960346170053618791683020625958154953537921238360918390888826785026460524118663821625124992159449172068116968527910565925338401258165999561204825129923548331943965682876944839408605125326979576622487137859477018958484871160723712185679509008851528963437205576903695408357094260731328518617356031011618262555791918649493328040605410997522623781407412546392279271098477398463641172673255555407149724818698494172146806314016164006806997169061010975889777901667712478142038399698190969399251878404557204041564229741276943979747118433922504417578785103901303547339442983074275009876350032529123052036202797578572159050939916570184125356770058436594105674203606491392850481045496444717251821995927560377660795929028275714373322262007475625058538059480966077745504367540674224016117811755283154074955138332945760771153600817623019098470177299474895246262517342619626964387629241477499901025651497990558368111106919221294802873311814711544872340110719908687003312400320869968270125854055103428858423212632740341154268716505257070883085775293823116226675236911512602743508860054407783314444156554469954460338528549757866682645348379449966355968285986214533864346892766195518562301362781304292246789181969104244354340804226707037037582653458331483577636584500861533659676765612948092634554388692776043247644940198815713272222512908100645865717355206853900769145080383783463410683779393153546474777823977857718741187992772769734013401103644327954987535431030883754174383876168555638996785000129908881415492791707550012686452353425574268091272054993493204957289265635223316529684879127869667306046426303042083884782476897401565108420824324090705639662938915123900184001731116384514350209332617211620352993216370206933346769949033871678206802027146552862876143070212615613437006920746291333052422002856066635269671564865651432597831075260926991550365940214825224702349593264338521286191899634377711987363348677156086187612006506731799083362859292614881125085025350773156996272375744547242807090360135828598791987820270374082493018322881993470445226757320138601204008076098901760335736694138714053380462098347433231170026347247156662643914317885743941574251960444007898457345808490323469654143377823499369453748212403961403314729004484497599895865392112148719177037068919202033582718235546745410341666394782944321745612140323929743446987172331950180650707330609063705668740888364208405409091362082907845131152474843556898657762468000180468389963776909663940819388249129255591941326627785677532164212360437779927290680416735014379232026709164697251040704162600285953403265032894862866705186185335680131981846338071098989023455121374488497353158943841390113374071392923367462608623817658296326493017162176716587962263002864540122071989853905316951499155743748722520390537620895780296304560278482306427631410344844837870089583787976679227248337185152363712871249736791494893576080999357570067990569304909882302930454272180929551357986504293110543731874444387519930531876872315905554681917141700655592823079232606333429976465607262742253673716403882831956405272443937173294268006638921527438095298847723025658468507879703687885720757188024965935911527890004434772947409049121252319811430497539159681087134229856775899188672880141740979779032776593406820707436945234436306281651823107016078636381093499522114818052979687763347331122528515700882065085884136856926768706722013012426005956996498209697049928988248561170666272945840364768506064122385439183310866833836674679643342258993153093423221187898779974597265790044438568059447023557873074624208938482701080304881796486617180558130953050926092586590148772749757084146266839814806251770758362690119995429784798687731451954126450479048939914643385591559445634975444568762519650858912933817891171376057234380678956386261951024078922739994772196504145940149933664608549758574477399378020257361882160401480786313849548839756964548985913274969244373408994265386902737450089467366483305436757420891822677931785007160216769591916332516553186686637604067136768054795736160754035709440579238566707320588561612670173500385296736824237634178088867881715455982675846457939264198576402526355557378060891116310525432702465737135620098923661810873998955209216902057110936095708803265898251201846291220160757830505327083085182239023381760809021834096404222367182648721887037284762525236385331258921762217577709902713719170271798130731377893911289321560959441668563773495206882390531273308887086121641850258749216515964800656970319838676554794878774428291172878508291121757751234512147543947899090388550739329557191039713717212760353479905111256721615316884781618026659350199070865000071660788278253226010300474989131503553205602445979090918546937671739762346799833857907079874750235070031089772868695907482701901041637128843438602861263653746456367317371415254495208759449440824405745381117625005108177350904043244641498181387113838333084361252886744557766845607574578523493045691040198178580632597206854696377106643291531589774183337504621573077140197950093239218730660116787249061714239095305907095749538448970948353759551657664322318910041495119033155299096368613800045087216617523936837580585901196578637418331521876044792441894639802163269045182855456795529147653212294851917581055690701103246281297916470753466254531238447408160471461596572806128642715888043657138674172513178459090643546843259788654013613364978628494529376187574454946310285731097999183116328374440127186165343016424253039898887448121326858850284760666817983057495685042741932145333520781644270286084087326199911662163375963795300043080961612429296722682907639644021458276490728346960652933432395010930068538497943000349493575003929449715874833656595056440782452786313070090339835283425807650112724172920408800226553998810253194563692831906575468392940563506022031833870685755508044182553215549717863417240969910369325560875328700508166155509277240229110328924745427473283649771913878778053807575590270525945211892149604493052741633342612642496007185867450848093867005901832382587569017797199626489148652010536593575986785059551099236145536585307649828057559185623247687559826490274331061560317513100104725913120987133337160767095063083927439692017657024811445451036382949075558913017035724658486716935107642189796099614380064543038576950396513976640451337579145231566599900334458242747719266640035550193474131540871738746289626632243763914539657658250788698853393198777480501504504059180140240069568172052626806096515353812016538534037364425398257150897276359338336249792386883458560009268971376547836314848777165104249113094052773004246282441455390327152330902508983394105708800065753004527310601705997380244956399631285587706802468324720061593051308120961056448296316409875447178778157595856776937477284525006960412960608384072781500381106657598162572877866149152080276002321878933309125987124509167755497902079364991902054026443936980715459741934761329010221247494049272662374737255577445674784124678532496639013211137487251997111605724156114637198301620757046524682847826440311671910530129295318958798467509756673444736243577919538456562595456304800348737937967292140815996092994375199217016708023808486581632699375406402811019736478982759334991619962865502022844740921701697254310324653953378775908204167415488166120888219855032238491170361020158444147164702636639394461864108342629347945046137173755298149147372338135300507019510012105178161532734820873905180320657424700718561087780711965625087144628984707473147548935731745154332652511139506422860776563554656443032860786335867207320248865853325090148992512365236740597604084433074793563447515630966893587805818568570784660694375401323713688208053855530998622618648830527536343628666264723345016512734879559284945292658384365072769543106034905801498621667214251423505586331587593784708486860198892411218025114394234740217905866349178097535352730167304017085310444309509292792404947328133729923988722828565440703967212793034391669541501768039040910381781735557623685230669539943599656410893457318035887901669045605943855563258537302709786798939470498871632091215276096857201387850840023426989077910495436214650405556548081649757529206710540119055762297546128718397308095274880678470115909588801249690698793003202062525400244090867909516947602040392964643460993055215613667786480994887485297576781675803377419870214741909053488724446963428512075976711746001525989188415527429965797627075241769301976381377048217239573348684280677301251273764845398850276946909647980291276243925399022323241589450744398126987374045218064440162253008739202222938255991477175357770745490187038242228076883661698366972437129851670250855824286938633935597523108436724022785721260048371017685089348161767636367504274484056717124117481268576320465304544020724089231697851757141971904183321549273052753623304012907516191880367187250476256899256154519271746054334433467501107926858545672112460138252357759137049151808306086278495168254294307357341449163961044664441811718846562747886524054463222518506170796212546033261007182888085862271143372428062295707031259539156054599582957397413304290087507688777530453059439654478657866753761074906297541552537459464416415919324785356738127596424818302053742937058879020927977813681663233792872832777097871219398755924250507393272895018490570065963046134843713296831640400908969162852400876527502583208038697939891416631912631054610354668454285668555485646167418072696068190061241121942715758848906883619929097792524085682913335693736445580958834892703833928841097573526701840106800211485148401567362062183660862767215620306791990630421314872586951369195218619494601946046078053044852026675785887362190592191730928992468575932882983598658447370528203617451393818255047417634888839238577679878145988100097468024537880425049108586666759365869899695648499521576731333091235010931593210117219889627902292318417460740630143676041387032613031765755016599828794467699462732780017356741745855511597162706970086418485831454646171665195640474818876846903152786398197988584650257631317658827470120985311055271642347104583876670459348263509610774183763512266873600238964102091444593871232184650966797389236734704270290593703997665881410818155260321982383795524067141856199188818196310118194627188531902010457655930469645047183687381822342770004794893175045731888235664199986844670815388714162296906684020678929503690206906959888866687776135750032313201041763223784836099396431623738095879302823738386785036173494827817599534487342028510339900688340133441748721181010004978240200660227424184747214230296585117397957408992707115167406251837375801475234208807549228837670675280166932713249056163806986244997119483037362946398046879180147528686875597438511541990696762521138475569986080268816068269824972486016114643767463641986516179142678920960768900987175197806033235123094561838946000018565942319757106258167953372911363789688477175074296838740400253978179894283460742495296268979069136753026033599862053188662143683218517319020057632296615473452693283840192923586399456153989971640644651516900088202896064022623640389829480446588321658968908795980860251291836642070190234309702131557554458171436072092585036934619284778897487059180873764460819445753235230554342498157448942526045456661415330259980821928316322395617393088412047927064144092068963100810218709780961934458758492962606439703803365725281180751859746146936676451816927528573560412382808907780938426742704525928601053108233254052563277628137539970702619031774452355356533869697055972707408555953264719918523608843948397872437242839100721903473316125509730724464918787405805137250648985067808507233666895997538206737286737672394455791659395747230946398342636705539100363400798935685691862624168436654923015847141127484242792320341115922139171672157676804567453254216859453653340177298905199788678529142675531145870806120871361616338311088246710315611954830128508894098445102272174761807799548718605740995335785644657894744303811569756482061617222945504526886191378406126620083191161029229330589173000993600925722957656380744371901257768850303551146110629979734683585737358196839016003428243095038161154176963662853299747496870054700708687491553658174688338483955939772667983182879967070576537962458409306957733812990720389907519400233875579520164352800802332520777627228181073226405451113268409898310747806789871360445795131575890197467424518736006311041866230299208926669804081616981282005462874844834268910479157644018015703332431699403439068008348975196915158013781108555171929139903098819149143149309213279713943019038129660245593937137927249669433805271980338008483968203500991867551402223877986826063368192412228658094321332339215833581020931146859718478719684066403711406808544445112226702708525670370275065164317931266955492203310252958973369020463611977301523182625378091524867147612183898685315448371144502571358285900175883128165148006654778371070674885661837891310532913935016213159575328467493841237194940188245613435853364205456862739004313304292317943021565982834415812918554141717254133564069651317272302937258221548870314934096430952784405001235221030937369099485904797093267051236124801971155265799200261646319877939465157635316129075359015091416499885344903604997204437205196984270949090135282866947713836680803558424322620929427064339564999693847269715453366885276069823977038297766369219956338995972281919108652211996070441808257273936656301238676080762759188710807706825031193574533750449290810112098555420998459452730239169777403452992103898774181104396792295679955506504133456586515034753694527040179995287789509598830499933854854214377690576847593139043571603092125877546037095878644920742670055351326049660195092787233126743182998478099359207332684994007028966082853055330999912250387599363707388884704345341391289937040365331555881742531937218570423983788484367543019262415023817884450961721425336909616363380479599956574144180424166657548943775661822646783810310888632658828758790461144703314750695686191014484717788839671742167930691351003785399825113429431069726560697289644612627768760862217318656965778070822803749083537785474478421773339069817020029439922843564918545718367886405724966092923330029225917281851704483247185257747806630729504292426173259714366090636776913642085928896400341154347667088660005426475905511088059811103663040357665060649405864486753768231028525236111015814512608550787887982109505580018657559429067428112581816051409301703858712990159382912114034600125248746733371861020065839443011361665386880224217394063634588700076486698583958446104835632856739959147271936689028629568734099226989035246622047381800162545022366061774618467641265188341721143557107560385313302686770349516985951976655473136406374347595839042987131808719207849719606527050858202176496680632600741499980869099011408445071612398757603013868953317534838088137125886778046610950343112980173336793059049919362890559694141483087585258807324198743480284835688784724093423922895054571666280598035125193041550999714244386076907310840917091399863503113536679669577999430776415737127810066896979224642642673813635715197292726557293810276562964526217416290706500808912666720393992708572406248148352232352570645454361055996333227742083585598267535972786698930388436961662342059176361070133222446695647635368101892167918039891311789293753549371157562916895316488047356276538308544897186601241989732141473861844954281392357309609355110899138266861241600118399991755293425924680971634193042097275474973529070905272603916667192737428906243360162538424360311314188550054703700059357145291506043583638818056280416626105829569508339911431713688219010277767660218309456311772345552804003714301214603416100389348988975564211677547866734595660439027586338856948191121705532373883584039498032376309661130370017788456347891490494639578526907289164770006599326559613095104416444477197590446086744879388895488422598254172338275628985863373197291302831085885228274188935150797024784607597531105894097978585871786282845980965368532653271998787487029320012051404673711588666604747790826393270819940370466091184388367899114022066748467640012660379293897398092657108205309773641430360867450844576340246696952049048218045810007253079612594894993012864943201020601470749533405872509461640666501161636560147895594843372759183255659061938263129928682617972870206764889003061669589671792081147829849807132560301723132140889707922966044833441471061086830469516402544892499700254258950142428635775665545870622469948391484824462292326321762589345534807344549916702005601408435908311083489967278989297911282118438686164968272433378231213696998846852405470147636534941675291216883455321707015109322346962134391185828487765756208805422477955739476421893426779885842655254306668273398359849648372817779785763155337736664013282597625652323677301871093307999648573196865614969841723852072151875524123389629339108764586024806876350838762174421307004311665668430559907618125783294328610915999091046741567981324742908741948359740675417009950109012098962039927360723009481904042631324196089926205490328165286934102382257821475452696642099619292260648984216697154035814914943997955985735067884443831692393576987038531826374402890145931854214659624130129758774527234080052899819296698891051444286133089468979710287579004238955640993278488504356760304960575463027620242748601133020293052840888756203950066775914875610057722241266735810296495342429685034708696390298768310572816620236138451247111871604247863214006714611496822957889609186475772804613394087566983105757123458363605115641180109251293053738308051497207501390071508790985943462771132787201406401133687598780729520024302543641353995043422622409350758212523171979833113188168304589789412782061159343489665369561967482231816268858937760279634149883005823537080481315594862495554011419364853779542110937944066534183794971545215242709176711821052002062689799729380835904134662305775448562170664725853723805858830797316135200235554515210227424779538937272102085773768567129497256745828170445019940608858186774176322686407245893452487062487734514440274684574764491720862944412332861714746881252691611627083400468778091582642310118712752007257699124870429337326687765172278541545245890254002136116071303498962060682283230526320068242312173563900020649641832739834021060770232787282515984501786446511471429188862005652887526260061529821079712087435923000289463791968441287724106309822877664452931477111397338439070193203989555853523761245067027987819934003959844224012425277075802446371034623076947538636994119716375229481747859461433858243009487071822373724375314527339103287539758985251310828191340683214690095034898416725902696094659821908043826641030640305591799021445974563801049661084735841992952055984301802161746141276532698244170742975364738541128750985012698698782611854649597588924624298133378400501372317345985338498635639388008534202404378071278059997493677080407029888154247124295366629259886196865455531899181333131660489266842211644176839580914983771304794630836171200580671054666340137725109384969636464053001877169366918187846818765953154615484846847751483021710052356895778968941045988358708564329666342415734691343163481181393318243524487835474257608478790708628685276409302334353717149354043588515126797708898555643065969821575979679337067334528684681816030249560638929952530219013232608455951205782289229265772132953514444289407388786191064998005278013017807847478183856084940846601854971402294559571341599670345471253656672058390433427161291096475379927730074831328124707015776779514000315075645768697162848513535314077978010389041838051049535047221252774209107521383157194499323634445747966075189140132904836511196136822027744809306822687552945008571380975519498433010252050401654697820393549132481019059403088336509045767707679749679320086694666938670091801814703698700385887697254916846795873012782587727769039566305076168451034474080716035926649008279388591729186610343674075235918939040882867989122089497324408108472766268153790417251132093585486639924703727011182704979449985138529923736329034193959053441287361619612608660360528498095513820309194540987335243870276877061492290542145114695024714229958902554867571763986693748602637432387922816564881445424727040663898969219727910929657048666890466344629788342890569787995618952712469685109644436894387483996226412023193762274285587062067806467971952512762396015196427552255515750645906505912164388396186750312942049502358733262792588903246563273789610357148728313177454015945986004544278502818109180371009707289301334428303738008478142629609019096579948192973964385239746431102874022894190566133015053044946122859276941794045592690914605185894931395012313214621485065992388693674614917775745068865171645144705041039739432676057476469450811546838219394890979695467508169812784174131189907268552907861750731360614851590789009478963071158974737650097717267736009413070953607124677398757132774701505705482927614397204006703330525051362224572800966602834296092762539623114794539937142174927771275018690862485354115975644725309638067983293748563636578381294240328134749475979823912991325588554479606300151011447249669926208674545173069994907326551116799446111242616977150341186920130754999039708498562521009711369433401664669799688979107547396782190199718559900857257690555646267589203253342605267311562750721571458207516690310939995890248610561919556991701976364936732801086116853460968493593208063517238212172932094739872551217644903195877772481886841072835262266624238726064466431087547204620580138608633815625344868603931933075057044714136129181303386676756224704182682428439586430111142737509444826284940707048560789086073741251312536767654432994387525988284374504619153817995490434495984882971882075707786045796385887056862628814361871569211117187660218218550471092494599329854419428203943809632192126805691250106312728408882250417621658558778814877997563087813649522698870529198726859756566577737714094157001074951031065385420499209582058411233894554903188062168779757731040652026518914341086587633657481245714890181984310483402900504692810520554848167518648425740273127622070800564847558890317405500000743469948545954301415187732595951954009558448601315697597019304230426068415360197646187280250530577873637393113637727219813222814434584209858263521517535078522380190347470847117980302854555978140798707948789489960945425872162576314392140523675161191170816033238269527714954039514075188872600793739798849244185034467465651189122444178496026565800453763008371765038562547807833197704283706985109014348130901897269188991576824077702875068972233230043442550728589706705535763595105246927235826746384342981218035881569797450945140783318633390594612173597537536909308192032302484781085289920794872872221419755627284318572569656582340246151080624848834654404540387623382550575802115868199613767940815588801991276485260742853163220441898823831842431262961315128822090705261516463429997873953224072992963229205916029674723239337889137927117981629410718953956952613366684949612324250858494005120895792952864885692384930706149455334007694793789429095112904430485394797998161622537959643732115055980848253057190256611311083409331126396343888449556127001370196183876871745667225200659127295173103506740269634479547926533125497578644844992883269393984880558205123877373660409223060518448531026528638054756955389420528318638155191133450851757520785438995184504550560008254532434721213577653020565774716157448217428513530498862786420214292672434026912141104716716816946729656161088289275204498232164180750411563279340854707813496548796097571988440851705841327493612772622437502687714425994213045465896649461152997341086484200517453503160820622493443941939224020860277348974884628942312576099621756210690462311041298836305614555054055506170119629208423094314184229975997696135241250478214418906367868340688774242196784925840461395260304173751912091884047119496020506115600761822025988834828470897600462246315224332745167299804150397697702828763958536002085779542610266621700902549903824911367405923233188384282953317412133039640456682568239513728927750251986439242391122280451805009226811322010791921876784147931331892901806670443605933141823523024113606043869774958203872652796918761357958540687658447364541309858989254371352699281699692063576747277543072008954761076080177188694235427031211230782305858117359646782855515377600410161622476033705184435539204633062140366887849170541189133825499561472902247779065591321342091774067900079092107406055059484790310141965049541142475222252128282350079462771776122542292471771659885878260899873989236494686607839576978657950043401087118732086382128622284508394923789672133207005865480645255752704100554313761923529939794918233911607474051542333757100961135626878088737086797608258792640649796418820992312410358563614912105656892152346172283006063380641440780989471869269420779025343248023924656662352577049878872373172015715587998543252837692543365330333441702505264472215347868435018422245263180072648685609903265051461906772663892027910825642001123056176430914192680245612122745370314935415591990022352409816467085634267890203833938134002990675701040042973806673865155353326868254742020612754409993819495753113728499960260190369300239380607580532464211939668911615624329350770666607150563745521039763339393461411738170269746725984255535521254335645030514588280849913682253255508412132759014330126178337370990425790025272344388595274910764630165965132482453145334838908848619266951530237974507123223208183763491771016839467950870336328100411576270612112780878363679350005391885010863340027845911318392787931819628939757732203432671844528715464660261902761988447532458365089720215491890779017433984254680315127586091756370188828446968465451677960973363319916078201215161832601041570119636675143436005987217749815240402305256712887578603381251345857041330623763259952174212427224663940108410369165081850473561639526654453620818891395438371794919980989637874164002170194685111152531536582165996584679497018032798433563283328593566673166592778777383978820794234972818099906644169081794729792783284812109002044209288027823916180411107225328647468022557355682522237787646858299924651350498424231102727732566213194576512391359592092383854429042987031958657864083216191108233185811554601149966167952518328882130747618081967801431213616641005260104321708275200711119512793832177501747583900532574360651164017694688606722952117520916118691725054624681886375304481258613974260496746776478527661489574194888041987646397501614387117305352614261892652871602742062263796582171763240919421930308833508599314672899974904311340614972447278056344571307218590504783133910637202536379696783617855706248159231903475498565800248431765907686901654174601167525697671130812870252423823335740522422300106378875162277487937026932016780650576836504851261251169911641160830157121762246936161596203714208714165262720046337346029615965782338963408662514588291917114393220501602262919747095196373638718578796727344354875770932679362111903687630704378251754919323516907675022999982248631292537963195680681373245253415512933931052215176236442384017087433061795239340307986200867622404870815377406385010500297798331950650627322967177102798513795032757729814516097146050115494366915918370622878436434198553968396815716620749757904906533294862973558059656481542722844566021318087908114144980549546166278867484206689581264225948915657269842998381922616474574336235856230746645792041712525351683005220256551869681012057220817360191579357122207007062292118312514788090667743488755080433467529067039740495080848025534251171769799194705101998270130095544875787478776265274828411149264706289708408465015144779345605443397566049193322624832083757000501522776555843640565677645154614751300401240760848382316033469836631168328518747502280597787419398558061283959711624174120970093617865576522663884543482217888828517867006936566487448740581941972073913636941011370015909806100231243815351141461070113293767701013532677548404685213189041111148251904934074576265701826868295488642517268284121964348867506644726800707738385526522102530627777929756099788920927950592722836674540190768982496749326423057031507212763460958284043995703233310064929424109247556009843674624351581436237356668798729387590381331359386665086158553262112665943158951752808724744495424521037539405047729193574355683629754322469885701076091150226578998395649130444527483332720895637546632121178915753743338871918980822781563900144429200153630013230320554210807908118606656594484609210865513939479517490018537203537427375237933933740299104601681682113344161401525493276410090565307714065012830199874223944939681265845641952500326087686509370498723792459100860010220935391121963346794749524715640345622121308668747328489792687680485178067249060715208092676079302545067408449693828325851462265849129521906340588679076138029462917901582504081366336782369783107017694670046076343559606260561291602130342223866472362607820647272454902773390022488004164421365129857121723534387829034120458432764063361957290201411186275315149379653434597910360368760355740659569270961966835245590344403715946530304198739001376524187521022068705512637366991136633699681806099875530636231773354571626544630566288662913365311424131721834274908711427024425692065939546450942791439304627084222143242858770621816793122240408516248978335570661999208383820049621270555472927110977447806517095294309279259532180488505157609483637505419641489221276535138888807868541830638408048833208802916998658912474912023505896199078079319410093804722991610469400775778628327064211651479417164103195744623724183050447021493863788105720219408110350612434685107241639936203322203128144606616618298883611307822404282976184115950173336755241105588367756190885743441938244688078957705288180795719929115543987207127184096236604304715749161779091498307087871913129748833900298637167123931946010447294370589275559230862588941791701399078736720787655437068904657536983691368469004566439734334283533086401895433376856560756980782021298516329973950833970292122857180682804161196711964579240134213965257845002357103244221186382466008126692387692532554704177632373480133692440427682220657943334402406129045280894571462582854049065227436771421811346310764267248553494008664909394740396342679310285377665641231994104438316264078457882655227809254757052254571944408764448385150493524818799567318198048862468577151151729155019279840318159680534225528630184696697768578606595194060220806812243741614601251617542288027579674015749687110749267729571676882738161278025331917148418447525121746613657261254337654793919518129236469194813355518056155790024134647935907649238714704165944504171398545285009362334632054617454905243620719292482716439496008152897343423516856563841440965607767489435759504628904343585851255952113755807493994886211464443071739134075007635697882350024142669398983069851651960919220699850649646220970388803055958773614233649479548446188346757593342101458955399387169533511839953904646737707992261183991803369209060229651029322459280904710340121793798158437911409475907940914031730174815367792768880392022988609580204600403936583004574412607972077234533139254538257515075400330216236994611230368842200363104005168692895357225422063456880379012989341236107728279036157937900948905896647300567605719175559209980184718898616587157598755204824510217310478274645744008682196513827089000235957932557633921929376498371022695424515850237496275050732319442952431096528694409789480515674408929450345863461316819039203914472924349746882013923151315096902873409539568107714488973241832263203524919424230882977051240065873716020133611929836619836175990844980672278452637199582418774650127244378373451018952512959143964001921114110597957092332651078696556677098121938595703392580571028652100150951509544974568492785813821873602340905866987352209014229882140595945790912582576827673885569853229745791380760807086362808413144520672036593110565525986390936713694929079317400251531883461439834542121328881592270410708311796556210602375760160942712571804278541829198459633250689043018933153314426132799657405247245199112890657741671187323408742019054629927115602022284010900113697256646020333564824584321541249073771769181639663790389033643889436632857792102877146195175506435152929540002807463485260880881164509456437897390479855421473018256273247490235277697327311826301706929571736294872900612800569875149021680398344576449785776039383489333433341558480106457524281688978238534545987089035321944390469579170088858914680596215194768016202740793176365271122526867620882221113462548588464473185239086951199949709330284990150001062810173684273692458191441271686064741525477969210847582257849287752604957483506979886080319999422652224937548009927130421561698767582441399865559667097117013840863027359026338930043313977490939795323546206559281326496241264699252981340325636341340861619186347260662961163678983808536828638464415921357991580552236465284594818857716255184895895301048488827292839494469198866622900339167477963654177099979554252821584618220057072956346022408781570317600972042190330110017738761780426302844778057611812529465068107502588550693927762857864233914074779322609950336718705273115628745838339097863639464671333106810367815781308879110365496350883597111787961541075499126172066734095558106611044684022630559728685204825217594007992931475074617698911406481719705612114307848782770950583588928750353523974070546255954926327170011985208323843286859934969555492310116721217310690642111721439216395656988397358347012646938406080601272444808432331650234079533815490203922116355956403228798336386142093046704144619896450164284836462325580879941595148175327201692946436961392842343425410313437691538978815880809138938305067187285823622947925496357544291367359353689833153999197552166147181366717388401256897249143886272696461929181591290424248077685114848744277141955266673410859723982642542150668284070342955353016160430923741784322565126780679867910944031096573347015525785371938799995620868933230110964340753796168971552489816041578078768999706096649743235537291972578953569994945227359409632514867737877881552084210955201038265373404109455948939384602619678129652788137057496105461338032711806296642634971268535723530870927202715132441628621440992122196376284112888257274343927474353474922228553063328899020347760595295573013094027915061341882867184488136878021516041764413107287939759246282447639967159525285394759041752685536074021772155887235719526087653198915858608277802866874095531588455667397963136668163507953654395668901286353405315773180142931447777161662968151798859806273414212134091242050878024454147857024634498985281772188990778784815595747217303053216237735714694649305683491967267712202867897176138852211175522980533985331938666372421836755384499186195841338097778030375783974160437124317259719004789263592706548306015354413918974999935886742464573685052918387409522709259933142004758824546575798532665447720055038340547301069156768700384717520245679590747050471228249579108247327908204913905786798220725599775817201760475158988348216047131329889547327894744089061976347571935139479816920926634506877004341681059175206478593865595993984595009940667833972241470312479432524276038973063669467331980937711970434815690910587646538861888765018564536091280420439054878705389115106175779046918773260978414502723514767855322247734066527949643350840286775058657831463528749661323687816023632182421793000168802218379424547266449270338792513488078195125297549039333046316508485289875183432647710672363140037966537915434138230759515893315741236339879327546638918609753426822487783356688674186167806688133354701424657820187306923959591196156135726521583925870759714950008914147796615743401163362314112556462668830692404891205970618294724271549699960384737152680392373543093206498245953165756372822692100272717017869053720978754401659537962043707013648582239003653957098136344315186982950409251642223063950008784035136510884648198189867742667202071509086284066980095826345477517097173105294058909185673389827062060311975025972133743282804872480617999079917279998674587136285671885103470608667123712860805111841764138775995511791226556357380599668454768496519232400101893516060810160722903518309582115138760384915661534161526366053316482980146935580481948612645897319194067072573385765942469584919433010465444922381128009077847380211757614539349184177375401288763777016575642463415263320385484116226777634246348397005639123269230873769530832700074357931957590600870985108446228316888722732367141911334477632424503801233921310677018239161212694778549919923225774581312944753358450446147725958739886832545708793222590762840196897725738066063393098495557975284550051584581496054892465176065463486877424825904309669262026689928394209064304583371746814207317629049168261564477415635990340934839833390252714981128527106012528802760628086631952440551892346744274373654168413498684517427785482422392256922318917504145429273341453986562144239002510208425059767823152060025137551736736604419288446635209800584989474535971521828013660580127860295450999723226765548693171033914370905666618746054897198594787048646166519489140637430328249254397143305572364842107868466046474852310306962798302512930964093849595497017542989490102483393885225070432861890343940210311506622442982685742869496482867565404507550079399443385354043649769697466084093962030241016771945527342895087286432999182524054710219159984865608079266710083565618608912034647646578642323120539702292569874883231866069545802901243997599902109874728708513271793260161056533051154799594312207710217183330279626590021201633468882302153657713815313314280485070113777269885749161828352872271915475531468925898883369471398545019862424425738542944810794789946730210849404743598506606068064382773794653531646500488593513086254441135181683688052478812658160794487970192666136318837063970283296074329213403927058259456928555113009831205371219788411623437185249205599782390543326363991378905056616429367526505329240818587966960507369714688965767315553976515875188379561771547951686111528832452866756400715963307650577114361026757653413717394331378185654379477012314213171200988779798037838450351082058639469242186337914313719466916847795230544967306939923251010571502357656079396547484486181941190813540733484419301170230724274523254129886270756024230570835660455713994659275069949424972060324367715652831689065633130493227573047087335765355379562008101650657733570811384228443063095611449051064496724324929304330361409432585871349283873341487462689743833918145112733047136733278010158550176087310878424703600555265036567280582992961674145495648057029049641986243888165340376801177268671056624383712816455318138963143756747675217054600653090815449305824451810796148372628395875142947981557795640431876400102839144587150621920483124821763076796747825794188153976843916240470390689111395726271470279023999419957063928146868163759033842827914583023348471963580837187834575390294735514180794761011170134289817763322938813089481579303759261074152594454690865864018252883206419544161695007660855605518493053946004290971552451558712109390018330005318865665093804868555794562323621533270025480226248703155634006962175030827659892048936310204919862367227820211815751527739593964279516288966638215710443856570321598755225248894209750651152141061529801144412890830210800322123119278757410180527117829561073192805536337822360478817506214454916418884346495070383998850427838636214021803380075301298266227470827011115571550014390450092726975115076730626143020411540581503806378107430671709430777039335776815898302650413006810734597034496395826136017819658449337996679838578792549733264156748453983505138193757729783357867730005591442536878306545093076875231103841395276578174570588530035973635687376133477773682699016165488156576531670147834548307206107307157389115094837397328735491124401999450124780648261863461669616124507000725346246372474680596585270943342010511715440009454120011085555732042630864686928364571490119816143448402133249279822985328918270278300496654132995282763356927730785563523493766319705598666193389592156760980975434716099429777833863074470254614852352053646713356058203722120716655361114111068121966442963019685377633459880378839432910659004154585361004984070379375637370515518516161017044222928205029059095339484687752400245266103251242032637386370764655284652328321727999429358068239476831233298547266773420621711649800935604480256857006542359037597759482902094251452030962408090454664839733823854729554753832645777766185176699936413219285140582624672907553386159743466683070167025673601422083536183230266013959089986392119525819421173999566286234128671020219907283215863460842497502168462550365129105038096038477009732528853126309565994850429613267827190419582800276791197106638090768384359777858812769899158704495325538206909771626149803114501308977554839494599252784220664391558533110953345269654173075341163767381687412762775014390572983360498911911287408594393796774493155671446209170640703138074889329845583203025279969874848817346995079336347875364888723869911157036216493022040778755082700707772386088425054630500877156049709639899587067217074450918895040226810478429076910078014239663409710194885539106163783191714267840646845774741533836962399334029367950821512394764915634473950328001157929050033916863508690478377367423310967575710006193385903959874566498748324658487780653683440666974423529977095515014138663122414416113639643817353155141682353383174815177661038248962401863253159076764305526176504655769173829563149266241194723730432992112142488327585667024145991530229912528839755223176333552113356318446227687628900252266065431761950780132635104643009414551385895398861503757623199936275992808748929803558461688194572614731572558548913815643549167688236690293251882183676482178356176082323558239566115849884994842073942888961026131117875340820672792024830195981967336327185204318776254629749736085840985999169955596406899308184285380620237442190250432503584408020034193534698935666553307503279613920397195106788308424567420834259710391262112875131234908666151547406300419846816872869194909713628911877215302480486713087347924611199874567939390395238131550936285426089759154756860227335313953556676519616008951713217011814021130074915715012616417067016958840248529173910088566133703484103499530098993844118340084084472683945042257673587784683173261837252727915514779340409637971313151888333859574490268771113418523452637417801461789308039791849256745045636806721288201682865191986806204520082280055209139876456776474341313006818614898262187681393214244281647369878882812542551606209168375847910895411579308794457205554405586793551482586363234795728296402069145740942216955117780161517473371361577010976126235947826703768256884050077213209936102013377386094266812715687153227591016770823728791504561866711641813420936154662278000353169934508354611132005153945901259203118636748419747203500613555082556557310757845667155189149713874406235218903965031906172611365063423988441680817772241893110902122348026005989462314997267761852550463018069048426534250244506439200488440602193584671640088708996547035186705741700990351175744084422637185969930175699232175955965953578611316751796873993246486431782004674468249127505573329664761440401464242361857163536489043735539073767664243884034323159279911936164360777326613882221520851774989550262917694011689581168115193579787390248115708923813440009310889065814596998435710655647105436282524757096797832552144931417364746625966883917324637319487888305986669539400071491568417431369514731921586271144182518964034188557617060864113556994246007367821439524151047047301865245239276544072734787503713549893915536633343919880372157962630324186348064623085842091362362703316377540605227454073261493707319547157919311999950084168848138778182827953127699121441289488236748775647544285965518833542804048542201544589356669350858384364900706409273756465204154032658976604362591682850563633716958793166908227694591112569586571659157325960602267243884651377966989204301079091455861462534769134161774445626045631360402275475536614350590997679411602359132901594996491217505601306310590081828344880368633648930241525632145375328154647037498035053473352016705427157097580032683840414216864581177734239317646301451138723791022989334794529992985052530483542489157623866811308814750629706076728180055251698043854349026549735985952406046766537038518229077791709383563886136593106877403623248102035415636564930641670955174803422571994437520883012979013982527270092185934245963807400472145596541696245595166877788825498950190267045871330139386510541959474816443693309637943265009446464692526832846117360476070016844344553002658478556518855784024797017141921055546633379367680464791405642256467524307171985627698147141183425573036657583176348584587753931404449305472312510770966611146444244236116967670144177423291058481137228392791528964245356699049327634161439987161005834520729163944310468202113835377910353966308113674690342546531285554617503626886947378575469308933846954853633747335913471195786938539609538843349371294880815969576630608977288798537694391852024955869961440570268911047248072971139237796200736019196571581808859679689119011930063821846453397753151013842523573792509118169244390172643400770823255394373864291247169081343817069781408833235432705475584997104510536537619261044745303003284721770329826020573776102015611286331681963247615882820869700432025106913797401786093300437007539806548273619240035142405350668431371584911453631508252997169821210475703131218556861924169030987810995657996038954803827626172548968683463409493999400146965978346454889297694887529010448252802635121609087304561879312989423625817089014718057895363173454908365921443822203031033162739894954641526088089960832659636800910224504132882392823842548102479497457477837073188782204196444325825263220574648813627658799029286081207161666198951261193971157289425591231054585574319427941124772919175265469772268171963806799387859028510234747904882328623949447789093183264854421869267317973998530992679756943753691421731902771059521388706495768592329021135947789550178821474178646400372735545737175205861123950043058530610528674652870309920097541294722643620957125930375997470156075076469641149151386340961897333006588510920023542279901631483849735854430367809579350791616756270409306575401596331456218985112458550055130712739089295995025072513938641791413472273255969611880630084231555475997912295349411665110866293194090379920594726220807349030538159903962435181086056866293483160886794009388365639614722224122175936884247960349767194352242610420829137894867744410456621687260410833048515736104570985556356144383060898697676432890637677721390769874174420113007699845838679270524959095646121808301717829338596608110150254386592758997316008423036986907782204068179171622564373110901378128170060426455988954107029652953222860007784917692641213549670147769729385356349926250521377047680822541130012528459880922527184777585293738745148242549067268143686389125768055847768865959262613520083336401926416894755152824866399473163572070714036468186507092725005366120366869118953403591459336494478304560576817167595300328588922126384783697823450002984501585000884993850022267611985926778581900238063578088016792514354590608440247197566379391220270696622688367417455259179708423053369162004695062861440039569018422297131163437207728441929487840765583080467243724898363515836621506603964856657331993474970637964768266212178337565595763493191316206204442437658128962315074155938451962478487639619008251443205221889890431068326244064309487957702536597102046052984064390942370105912573004127635597656991005908647520016342943283748164894121793895963113551812562274540841331872070485725700778311977031836935776449628565634086674472167759149593602898594987055968844202160998834967037155473031816485894432372386274453355883628871378283583924634121139865934594987452869534937699171323537448536392784102821607620958609374224350184531027938880563586435160905409924742779244138664967947224155339793966133914047253395518285030564515057213759809448496491206093174033169788188888910074608643683502532697932349786621614437426159859135759985744403929826831264710063199714863294113062028366387733161815314342059397075553482753645705273945367656258878246562116738403548790368651927348735378765503385611083423906201768941381452483416841167012700562472048614624481137201021582876072592548607120253368543391675295563032833705830759049741902897875563811661640709679670386334366949776239904040153420720027758152615477970061902242931237843973775700346268343058023706498682936526366213040506371003168068970321035198777464375265390909182272463272211701633111834419838992683638560811163526969989574490538587761188595794291487897061569899420213026637536811969851549225480817857518183712526464313802565435431513114541966808310328529881641066918005134973840788534718347303749656586491243804930457137012146807054305533102978383015258414217614096531801396333212203063567076501077038487367289765314821285656430728109025704760221375409891155762903471375257032353868714143566220524104342908432888910542814388763350691545304855836302768404551490074188463325277435350210123839936280858843971465258978951935865033634342194923695753355096932892883483249209157937118465589168723536089340126544866218037440067148357868961645126561404291579838767860007934727248001020900028815255285187032269587956284884349941844635426936239719840495523470107849027651617282083906598828543044061670305324941868761625099939665585882820031178409286196555988474373992980669415764629499781884740505593673799268599126968871436759686148362929650903962772157040670945786938760792920288868063738068720488105948181182889791555533641625637409586083526097554076001120177801807108626162181728807524920734630478641223537598223822560966405458803215353406317724987552234292295288631776178107763511575396740314903241647371883670389537024395412961630116459617379296778687083213562280699571121737191120536998969594044613664996181299785194765525857117898496288309864935960046683457588043268865116247146786542849386440609506191247213966820613884000332910572081445283929873226784819825279927595104628878970701512292000782751786570287990588090799307202183778524898943583409843790545715588325805850059652447748618846966687862250236698340215699924100235906055843714299290554016169045755503037967814050226200643775301120453129251500649236874571173135737231409210046670302783919906569619395761411954537488635768574684388895570667732528222895193387537039588627138635363622261192716166346052480478018831554232651349880442931064979760192016260724892489862811867294402166702351968258737696073191978973209780442691969814640331715788297836243671596970790392141666398874566813204674370217244704397234878404935742133199863531348659064500571881301330617630835994271303869225412956941733625016455093417816072161489193437726262101397337063311155250053509933493585550688400994101936773651740687161824950296292408466966244524294323959903507168627407974903608040101145413908062193074554892389652410737434239297214037364691755400879444632979090340442903506711661496853965636348866258121591103552487702790731865678211600761156905597692902561335039676064940279029192269292584605907960988971344205061653030396205484866137476033803784934304074112105782106943289550118367321930489369756415480758566295414803036366580455496950354820776402310368233735478977832361368430680039170281659934902928668062845062180263588970054940109667728298728558007259765340844932611641617156270487029026056382601643714012278552037888150027236361008644453215877921494427977393754124745896625060919255892286471976189604653657449581122296520608447477212501115389191839210943037733615066901931409643370757015146800786164213547095139049356327423858518568244635536327891591755115632982155123953990268501330916682755029694750551771458870982187649685135631277210280990871463067430514043345752391885001187507151667395086754867046952006437465021610391823662167910150144581420275654580217367979490096597256798061536983741312914498505816901718555817460487722693594908970562376622741541046558058851894678900345816410632862612175870354840209926732732184909193037359813570135577603721389294849435439767545184539429603708814641976988813438166625158077661411049243064434505929886914618834440624171169808889920162711711237818333930489888214459320816257742604810622160454875169902826499902349518462242319923458187554829897233120875375461905280838821534165104209517810385949159443650728733033615680526810624853378809474445573065919674848083676546586392925984775066696918603877684043173685124624131172421104140285968390493226379973314188326527737810630533157381153548028760055049562257756838164499350691080855218954889533982209271833426561959522812132977493589409901427730616824532114949998208978507564637855422712353379537119361103180044434504613512184141598379468132482395937039567434918559279433345852180542951243812739376164006131650833680453581263108471800821368796499166537785332863817682326534523178212434434158962911666248859472526585614753054931308803522608672621301757142991450696478973916839179709654654747124985840300799235906903155573644894909159387852716194762340541863184942787513299704052835925272182002139807846462404987287029555590786312100253318754445366021379183758249655208898184679942743925551051298782915409102462476558837497639465413673370813146497180965739020632523901821559134580361334271551004793289013010306701464069421773391622020834799087665681829875302335365996548789860842745210002846881455053734233274603331815774918213552391810602716523898294573441012228415649526524705868728385001785979246291479213026507800957333487353681680692587275880280966335843567866179249162263372150006348248078023052032955899385314898994043023625708058857475906561511236763972198105867573306914977685434279626777253931945039245875122836319031980463364452906451833395903514870791784394031033597032027477624043757989376057987841471375739646094175782875593416834083881526677583168074441929082345846612389853900504357432291783231767618635170004848494848266674000314347281678553808983803371219239996442832519281816991897245833441240896866266210438957537167440141121363746935672966539593325872347503366290994574993647383257454176110094946544707071243237807343844398188689313697901515333979610508501972488639646961941298843977780999243296742420610827227566851504587076621365209821946995119956768154609437221572991958406108458359050752535347709011098380742496613753848302701724491994777073669598164605153688844582072682223346340231748523798470896028093505283165467385583660296411524137580905020122305599983441902618755118417264415320713598075075626444401990425010610449565135004439544452652994091086192859727454547568497438537652350353916935678465765337866206254596356298985705060465296720508032789646949495820522932954198482476908333885628194656283031211653670684947080341497789292495408611509238819250350718532142831233990041700074231711265718473869395021766743389901452715584982657879406904048796648541246450740708769113598477873367991843236041270431803970936069414289668576606418769968403120557073368038451205730513900146674326643238578678458875584635642306741367511618704338847779021262216659708403881550935178093301989490929757297788524865417062232945249494681281092062196226881486601774389331091928564080851308402509336509620781912221572040805037905704782372086124046260540422899569368774384043790652692404007649159233411224352432386880794141480836491524487043957457759897984548019918833453186769300745169901754542806530940255509433260680045839925366358459466368217932232347449257101420886514629767011612944079838558247620443188908122100228387466874187011301649716691327101512653858990859918836262670769060278318341003280868425328999600529492724086883566894142790807010594507280667288840219680656044239669244960842884948286737824351512087788965456873796529389613457267184101423095356915172464623129441471266368856134961220625311006342084873063087513282693826704382161352381814353951554631881223419078664904213381997560885015214753962101336141453998994035453899411326905748894660966221957278775995080979134097999127598487503197360347200432774757170746823219430136357624182405064773943159090368375339586062363766320297024143422296690131210889516941633223555709529282078045771284398929361621951645087134174545130350940359612647348269201151224945655078700390085956455793013256382416170293366013978010397899124950496792763134354148994004580868895146579268030590291297366481909957126110462935271380437409281722644302003665601377402615276621383887008470977289871574602879997838202113667010902566084564420327011377767340982893496513446512096550698552920822821153782874379562771446002407080693369600581649184209754690856837560731454439239923825173461000602537051038501695080611202454888688961768937535506066691095908968594873694594784912545147752927022998887435142607168032411845637046790440982947205499346406939852608373165146539878801971039167748132120780308482307182136060478296549595867647131953340994017025364833880498364058945654058885748089531326210509139453956324116714064242075448625179464934322370916793100174436287307780088629545887174947445999828468804051980137278716914365991033927711751089847630864150324455033015197001401403877373484575433409397115519577610473403646699547010406824960987876784365399573384613417978841937063352915869058699392985435835541380870006290193634445350997314588898348119283731252645789433978948399949136679801088691944102082033713702193461294893572748866159949211711533921008576420988556019353523963962707478143647219184713204310147231598217991799243081851116278716769477742371992064442667974737281916602426469282489889389388709071686675679045039192802188906729573960012401140416013074128542201304281145133161876640848173481749969488796786600477149262855911107543281237059333143498961764911866668853673979047696686863800290019556225852731051758070616219609542353510916858941899547973764684466685101732671567830842754601921437794497817949434957182545695920252148376973739485789446106607605142183620642460534180047436826359744028573977560143348787154646791687212685148032366940675406010386045437002298768327746840629246123163922953083731036949853776233560017707066239090333140201720579500989431880645840871392360420145721713960445030480493313629864313651096699883242960163024220640756925669078133796692880344892341098385136797376155864097778980490631951569223426997246784638825221058468074157160309529283107030490666391605415793069652119100748393293045534484711252208947840192574849990610090552060545004280351904000327316966048417586149116573576985461042394574489602044255676919320055986799727175454145998642396028535386287433353803245472394045131738928436694975199581468799760387068218062348931257707648615150944903406507684723441225862120372417562308856744171484655554219671150520617180909169352405345479449203851415788072716484713104507286537693122221266941837466101451462972981957303821701288221003850469159068635431794545687079906148732414169828001722694884890476833098669274836690084085719973203718948147773820161775052430606920880350612386866498905642686832571343332880275258374227431867911143030288402385548982590681832189088559536649595046935837311454288320636313896802148110851780125694947606809636357015787021875326158080859067796767173508984875661204331052761600837372723592553890658109271619259090489476924886194608962908458240992664464333031068195265654119883196760255278606515727559214256895819853655534766949149785838662638301000491666136357697441145496028152830068825396452055616311736866369863953350926990310576929025834050085134214085945980573574787836355467152884802765414625256570786439547984653802401704772447501400908180854248164017076519719115167407631368822076101481337071909269585413384581256235072413151647600647231366682677422679015800408316030890459820336247361540926510595162211063028433695627470427386821654206882631519471235397485230719861625923970806492605085108108979302018837567216988509067329300924667714154790549587556882958151149382911475787734306952468994650783669339368989634894901479953446697464449800092899178057639714655210711384660057564831501675581938220072231971699981529754327680521152120612760601118880916225803771582732422373593341316957679363443979672356380917879795941005105483235813279250654348184400350565105633470457833712126081076171120511861435986808752520451185003637026882280286468265955074234612720065758658177522001823843439299981613018775592364038883655894187209045688157528683279207839434715605761691951048751506514444762015886732324133755978821576902992669778617565077293478463717700659423830352273107895940130843309361505209963756033987816615011388335949643729795563046438906210453745937907585392844664647655376525438632412593460219388984033278427470686281941997588980757066877080720882655964820332120354370451964113417657747374624802145100505753961626996474437987779937913185015401990440956208467994308465891058834068784585606048636604101969559849711921591027638477050561460042925643681756936446054007013421995595119012907940802783189942322057415542086339668809495512111830073111071087409633737078091747545295758473708702287326211328623454597995698866463021373523692873108809912855674791752846019819373978779523975942938415741237887611770758954631632788788240588658023381537115935046327250447220095703397665595259379746701855132457929127218071787880670897954905720784032894197157360165238249063075271184767295915742876897906988711082438175450017773516705836202659038692860357416175706782116117787393186949870494388444615842985596931216148991228127410460039498899073758134768073835297388461585574020849911537253503755304688870047514923662641698156809591771617991927124606154802390162093464221176219924228111213425599778300734123075560386759511895306750545388042879938684709595672736954142520481185298987608740201064262015047353811970127043674483087895331709279402760209801823124134209473981793599361664677779211198154917889094365915175962364954231804628442637586778723633486126395993704904537983813531527040779528232398297622274748395466886995970539053324614457215437580496110245948913276518726347479959270814671624552149437017166026778629505955922248842901759012976519772927046361395605351604193766625855361302429153318132550129366725100616363727165372455921612288141717580580038239993508170644280473068724836439987434943821209635440093858664175097363505453914830097341768640384148833483036709499145599797406334277371187095994134965008810283753302682344025955215069679863759862793010545862978295556960018461154677303958789441502815242301088579658825343515683859785441628579326077595387076633150407678131885953941195788279375532742135152478829389446760885844130420877581003654615659972585588620486366618022902312894693247755993635623402159160628622134357947500467884229566398705012234843264804015553822119927172238945185289704943841289516188118161532546523220123029431847010895194035320807228793880290063126771252444980716263415167918004816150389689136782180588188312822714143970371007658584526175571986279130882734543261286068186177518606086419661486666860226100405205918836797926215591297752624723517596269181113046184916941901546631511165272398380632790258358083675996651354873936075006719830076403293143185632337261167049793836264686256061163042520652260204626471997185041703711559410868353713051267695819306697586752644507444921253937551101490526422286363036620056566390898798636123158330759451972382434532397992273891841891535154752914767841462589265955269210473795359067168602934055872632631458424037338709508720133642758829474135756975263273681260917315768064581014109236579057605861634191539573033082571921833674750643885731714586033794050992986788353165275953397030759340565780972243631348372225327836415241130297156560026193945726429732238735231958461709845301484054324928086980357857812768761096573747491469598499878874179048663062982104731350160899894148047843381542722998481213393918507341175637715888863221639861219134784970602245535314011650605176362124146389787990400498586585810193580114088927045412049260594803290666210392429180119783632950731809348456947011599803051402292643498953669366480576881556936277685224707617312649965654948731595507475305334877498984076765216526567355390959980056893908684221673420720818107509167362589570364953387423214717653354087061758970348579020418198184901505117164444901171832056025430508715707172677116676600904662369113146112050084540933463492444802121741619598036557101908984508810717211204433543442673147103878181690602210582458270655791344533060941291175374733000237857912037747219046339188443250757055411524233688736443993260581207001994328952006021083261706986473102726412408548675051359307197684470287655707465606057528487518652962726398997459978133457457853837904079826957645514378100598121478687988944738050677550971731159283057282169097904475792451787635751496428194185875434716447520843170245398223441259812353192086885740254909671646524227812830525210427247473257341415987810013230476306603354373352034918061572111112660169245932188425281849973190556610152158565941694177902823492976299677562888681099186728800568325902805234083899906493245284594589101602287886155747991141684125483460279085733602316001111597334630119966851573880132464012956994049128079629907396927419916775117573457741965527669013387412865625245352121998024614107353606617773177664688949093956726899238599609148910236462751805149444395275617014571111052386712157588054881531183573475334153949382492181552588082022073969133041580358561519544906147114972483018104329255315254722377790820644399153653541417187479135926860956348506897294385300003652649467052900799206380332396764869603539824195858109544837701367586512348280373826131962516079750248282809456838671010439319555690021273423175319462234462693571646812360476340783043796913007660695222042667510755818244595513693526452786607410423823377128652222503761920471519375309711030557261733195070553657520088459489372461984154772213256176254036791150932249682430147865867015648209156474557691879216834342057455648074618951410775416624184314454725847812177374846462785762722904964803852578019301304946902169195711247115067171774210335965652480499450098343933064490816618186758285894443609456456006537848398155704412802960377799688916845651762345830341215936981051771823548103743379691603974474102476867635432087011315981921327447690533653087575621455952832966874386683385127496441358947712551451771402802971054448606547124501031610632780357464199211417425882878910788687575496511104612582847156277859761502653108951615440915928166525435836100245280085938336898224236150620976915079044841580982674269135771773279130923393348398738077188709010260685810170130571142699390738377047763180937281535322874129285375082201581812077613950149259424984883815811452564714228985689020536362373562702974213199119538748600438253986499859285163038761027706348826462313956679243311697045328474568907363700063399418268335404716293780889793384107384226359732793647998803782784432399518414522185774667934004598210756161758257502444190237996263193572993156658234929440347191896261016858054183961080432579842479008631384636353647328078623461979608729462982807587997981008055742881127454751500520702759955950502553401793111593515147044816223043953083846045013491646428904669181396763767975089325596903811183802497235049143217791415521899316957820274598743844452768234584535152803772549873397124241866046308133911804502710556610737963690549056199003867292695627835006811007762555761051502040133022351917406712120110285019658408212699991733876866266939817320904312481863114686321622922547220264118303542616337879879185372845423367137284999427704250417858664392583770825808372932001754426003841501046375433134099108492091572680478574525432415785155187148043399395338258791474056196442886528733953825913364289754945537974033041707986571508910697274148339089029262359127764606892385753720389958686589805703715052357427712784422517641956278130478159633278476759079443126880300713420964497352158639147951442284498885877030456266254044484279017222646813704822661494863002258337791658310954233508788660691875578404414549502297894888004490727216130424092644616760622680992714738425187150274092907451676157946538023083699952768135841989174292828992153012134593757437871097327675490726449994745656083962261842587395102563890959482181441863719129387837804445894987086743923818174455564569930578649119260611282787365366961897192328200831281778070943911804507642648806119702906606987099049769920446520499568301307784523558645407649924336258322012954774975811365747801860137271937885737766266954449213685164985790857780340737860829481401886381256512439331650942491690497752716706818307794228223902969504719906774354093335163617139367075641248700087243947885084836245515382305911585866271707098258812546991706271227792925974816695181943532690786217865428565448824409512675870575375764651431119252096241238047559130628309672817701168894776718492914400148278461842491884909071722323056428310040821068639662199262264758100245613549989325386053206946939153060136673191939603600327508571131945654008996668785273616311514279741961370906082721476484883560864310249368865153057003308677586562255508721572815799121693452324260494680512156256223738450328181357492658084871072330268910654579474691734963496844681392913759885710229737708060085793849798992841041376330881525543206453751883174725776241896833185800258273366589469959019324914273401634903572545696971569477595652873438660587898641009160113723481293459363873636764242729524140781986797079580406743031269418593575902770577606103954062552704706056426652979596800422159890459639171189455398838503109347736507559753584940057278241536489096641044645670549422498209858951203687708571776067923644117324371803421480975942725908789250727359913721472597618666797015683937239508199401112810486016497342909924366252144788221828407123840032188585656265928648698709899521749897138002360891839043372689560613316599568612950753136197994250046045046958114888752449090127004077980470850948122052919413423933130310763959635859627394815033305503576482277412823042467401237272484400639542426186953620275978032002336786919096789608832061689063346628168994113900928746746316694732405607960204270883873176605507332221001161409249494977924054183817812140503986510685335506565053178761571071321334560326749476766351856606291257874647629519841654864993029899444953820501232715746370277906948167792491254076565910288959874354695846022001013221192847519491191517483599752946857563305853947968005087783469204426929488075421981630629380307803191001844162768313177709866706259234867723870377649354019418539075494645789208126410749530953633227947848928228691149215375510519197675156145305733134018264598298809609777021360994311071017752111205512594088128962115249648256144583763579545221920964989656675327427573329144728825587450565158410414057493820172124406586847561903906680462773074241347556340348658630062790311562324411093120869200473377177102423348337852294073932450828380315286174931895669671201605864430880300740053573996306020937825698673367765898610519786069791351238553106281727502910128575273402888330279985897635349666847344066931884636063292712938224247878789034801941350613695881591347956670128279981565423887704021618778377728985634436884520772460759937701457165195483665030972684395008734958173016721673814127092611254672962902132392394921728783161054540424027039056874054328634039306712411467518169819589998716174004332005963189205743019733177302013412079714134220489622374089085002905111483078195841188043969657820943716947176185446447358923636923548101524394012279016353126608747629295687690886725077653164414617522026684675931703980249341437138046591769069186209413381093444453876264952926622865449863230113856192685884074741214594583273468088472784206930090846736723734145511622930035093671899011067964279809212098282712560823729722531256654170128038704540804796444955785675836029292252466135948582822309019788862930319239902484335833016300916199102022677831349876657862297725335777316560881510202705457187655173364697017456189334650154596941279100188016916299004072109181089831101374123299027789633581139981876683095752970840122555531227376646858478954009019404372496375626302692742638571225040037065485688302271416112569635242095473575866160092494158867822570366747447626495443408256710838959044624748537459633940412813302446146592902194392173428404817467309169498745515144824530883558724751474649536308996054458056129605146259811835827415157174661728449917585026023982495522591733138510657160707561622299339829559045193723599904426149878179786148914459458584070867779936038819157980185068894163426758478371891001928887817135581788548956078028808446611113575419585634479781991079699115101368086968638494491001538683413558999433436727883525215767314712922542304321963536618563278283028638355782870061381733304228229443413423303912443184528832628990856077621130828233481371240130533430836629401940965564143309455507133957820726426219347703779328773301064325101463976612312587598945974099962973570548080477819301949363035139158818320616002446594089407822363100435401324625316497776925980664245088943506106705341268953285852575343010603644565370802777783864028896691740291703300125588472005290900173549926277434472175909835954033460615503651263235917957349278880667378033555338612280277190396348781497695818916310330309288180110134944109576864952583048623085690087521804941058307885438074452548031082601595970445280700859434328471925778092017789962813452933236242829443439765688668439039907720893474714261324071377460154307152341442178334477396350474555234891312638440190954105084895714218161148370540147428470309884737273673196999828635914528661399524231697889097166212888629404453000842590373189208712037414798113578723334868629692683679989453324875402026431329963926099068296323746761896649600894152839058373797256452726925687611551213878028166296271730529414003284526099019643280033128884367607903109544589941990068960029736154991950869289749514479353070346436186026772083463871205676472595701687738424423789910580347139523797810161886002651708886018457474598039737650197859375240309540679143478723435250636326530993967855735291803749092347000696195685181263391805404097083744847202181287892751907262974830844748774157898624674110645597096869971467801778667592161846488453258194322590364184261329641702241224951379323573179705452161057186331186449355599504526616892286624978284272733652218777248145562710361562758831796137046733108089240682757066668671965250132734313699262737305495687591496803381006701107973335472435608633093155002174051185085030314649656528666641916924240596668449172210561412968597349510476747978453108359078491975086521521374288540729997079469211546822092898862532731435828156152495127980912768005773854266222216174283063647036477267691925137653275904652027811384338785298068414782501108175973029032457560033453809346212653871379291296570446083216903236948510898648955033202508915576471117916235518750708711249395177728454810090200543292534928621005402896786006311298414543875771754083599707713101817662541255049061123481843443231405816607344656678802959859534018460255279153241102645114133690015271386121405723685539744850182076715866185295953650831097111095360768450088734225282275867458305256783160055732782785929985700463460136375587463993504415621459669029493631116182023084252621585182904616574099619807992478888431904455184966935815934563457272042805581339358979498638465395283393597212115213498533679716880061009923173964711545113402376262670273093334968671346088883243262239439426276664706060393370633388967048516391383188783837922834308149225017858265366035418810759821988193179368618581203192285875752438370012791669292236431484158894429318487052281628557047144117058340766741690652591503288286234976760624059149310728737952140202029575994483385121023615062303272763835448780213002502202030259715354166928521994182189678412437409844985831688249019323253571612022729287544943595738985267466688324266898698954829783837128753672791698758323055799900469791063379596195579065968843043376281919192819107542325112957627113015575221010350851925612277323345250936160594743651194258167538322688862450996152411850240926185069029832390942566714399110185272445865276790166012843087070287539608610918587037219182455111577526048786147156671055615814244257972380511421473150794924731778160635272887689947640906647671901297913270768236987515066615661239392331358975454407774249366989427974178646163113285903210139847822385154411863510942236853154595593371986609806491296617906735109598812976760320403118698037347447036821638879548812783689853095651848261980094647629042901995436649676363532546336095530521667911234610890702218347179256314435291575096971653333128763527542763279429300004453888636622489361611375643031701641112519478125836043412235452075730551325768913431110108099203803272782042436635482209338505743737526836172011023038721107216253680139973833815054377206072350760962740329874998829489319361435935576415913682092636657185130270385573348679676506202922940477616692484230412186752313952270303881242700028633622868989684645794882048792605941855766252300967905817540052511429982731018011129703589828089193105405742364269805056921834017017549143458897214665940957973787339595882940615588419018353675873133935808129767831538051540331561304405563335414110722313893023759644419960656169838756502447962572738693705093296184187896971617600594729403335811083994502939386809546884406350378989045086035748227478662392529911833667315100854535613994093375584834601358433996275327260607664259473497842245440097750976573091943753932721449994489238892144047119851071827761042673588816174393246137900558603004584483412139408340640369465223903381205015812124273332340957717357760679786655920835910756104230538648028681803165921400368991328507750025172339505798040485277598150148252575947334363053737378389011634648646086151318618818835336653941579542472752085528631973571332786777978998443947698408603035536782437348289279781437505397480295069587214086791919816963008116232900059583388627482741738824946106595349422979426821327885284057433576590665088747684823184932835805875781785650068143750977357941403789808460307999608555965939194449166767372555523943642782525830583997390914911841507540301140100896137738773624178686591794550170281099993241900135694003095990862466343935488237822555533829623718888646621317435089560162533361241421521034282689646374004595799179501050239953210585412929655479582291573477733939125149163228012818337739301944363600859313418430812744750557956276848861909353662963529795925260364359793663875489401763697431453795878080211592373950364566145956714591479983805855623468695256266874289561491616993984295670184942424602588712856774870672139045094910017455215005885816873599803605009761048408844827062747693875748620968857514349377177886972501749716613441651152810355137104630335503447923165059754622956431816313098751254125697243026767122200623563161990728426192549850442575880580520813680322982970811815475033899527950087464949271264846409245077344744136559493954888725938065099514227196443308392554319571249642451893543453769836199679364522684809307240324312145694174617250903405117398913889158908918214316968880902363629705265734730589997134101773319999591478857033319133538169838373998079737917827993892443911204309551972403959541681565784192163958531512906881625584460399551083589837745168798216464271885713055750831243208742900479129011631901954318690626883500261336528184622391354414817691639895662245026623135720547163012410749042125153726909278961967455289913282464793858887084138659860441683284651221330420973572362860175815020523953848083622817254804236064507572723308316803285462068814484978803838362798229097692493978844694099100152747186512074301158332217099693114095863919092791480850145953088868717622816296534342496753608714774555721345781423256562770864945725142503760189546195673767461091901481159162448059342780045033798042329508075632292248630627423838403852484660793886151835281611825191472288975388133642361165099078166581533347187381382007094936165407879055854440614478597739743993405882058959807171481239553486292655644999592087853515354750519537657443650179007142545089732765268115463336520317381091824743958663231972810302249103302241947162877761043407904959696920536316949882687264517947076563414815442550761007973787438823247209698362984163229007273108304074551227876091551677902450113334825902677906003985762458323439992358728283520230841595783952703614332746175927333083347746956469957758366385669096923386772046414128037203371224769511811478301724325150074087454734420496805259431977794226963289086278712587434838545028881771300659114093103269675891237951204304931732975597687132684761436589847249432101316565039717430464737278493252095802268872483383486817151149482651507459722825563651293459843491617733712886639069090250382063601716241619288836439203698227241174704499534040384607422091529843577316199529467077989690362945813940885867024703366370484822029191848869344009391655756638980141760564403637996583722872248643916537827833517402109388474660254181751850607637844464486080995887944152388457059669009320320243324134995053477260376309878368741867350660283396073681939318094752281020560709460612004589327824408909251079110062616216740578728381625187664800162481885718485689379337510083808896385969511276499186861919258535795965222345477253734881642991972648473692911366141495242352747875628468024932727339462044458581566716942109378121271070837519282418694986566046316552136561202827943257253971481853348582074344978521510157114248365889061731353429392042160660856283329259444843546052901031549239359418097667660861340129032764567156133763830305567778735863707728340928774032267767209590628148982778503548907493658082498451666417824502174835483511539169701498537108735529161103735285289138867638464143825132122833103760273754910109605691458606554008603448425352044975558821258711393092015306746352054990088571924324783225830166937614966785814021608555875695812586055186758446823826508673029323288030835661362179892968224042194097188518427010683336703898711976843131543012901844966539504535058812642843168740208841437488762918924064680687456516723249122245883975726575466070696590981072612596291374853548199633407853869036645507953933903995779126254180471803331179304738226326448171950165593316005155004699082761872511679926168902319475859054778629026951227434781134500481802750972569874450116434506547365872166984719667948811726925700988216892935365284440006560651078636179300273839725408261442046266393870253028466324293114686447008533104918445346823575660255150776499256079487453707564628234923016334578505913150413320945638872847713839115403385778044459202822141372774477782843218862471453368268152817547269325884766465804462338095102126620963518124348450091093396585303568440764698797213623923324554516340452347211501793756571165010840579894442359240101855032121717638103890543599066624397252268185748114248648819143747756159796407207857379318167335079356499085755267510971096926405411447072251186065166713980403803556854356919560770289359490900022480560359179228874151382653903473739172717428300472475130787354790957822620955160870617736077802530653191665397356152055847290282458706219143070465275007507482236822113692699750255789898976953282781634576912507246576297112086137881470549185233188972870273344276483828411337043558899304593559351623524959519151486454312188660475937915598849554048282972966089285839340376961587136020187704671078233499113345576192852872975490253916883334653776734604496099589114405887939469793544920808005603056574696349084371742563444193868970051964753371295133103807310497525148912629591031250027581283369723756505408691151269568543206856537464784693075527787781869660587895231101479488036760215926889790586860966036194311350767621907804219630521566293761737663558135759649504825384087532401664249724808650756645599227260166427637570971679452480614428592280877181095317625583854002868325425112071631742527768519693897926064227452858530886484107989460264617731007007884952208327485924179100890411034428988879804323954867700622504994516743389084455011613896328521500180521093421325684009541286415630478954971748562905766190528550236752224334619072636942040081498915344175213212074733943353763728805228057626781968241966577456801190472076770909691841174009899234124938686435743819077799992559753350828848021376645380944832770567915254194627078903406136362085115269306075059454162046546569092275737710974466966457103276623301683306503484349696742676106014840514836109249605754504237327457566155141442447830372398221325087968852894414006463691474975804734564786612034107074898811992489832531552853728884979124357589949495938016012619104927359377788696600534200732192015376191825134051496788438302981271046826231184272490160091217158053846693628958691003827110786347780099743825566470744890802966357824934995270299448106557774039839773144156785263177614498855728986763922904545262934244501580683833551827558470369833433815814672037661280560092119313188051061927193349419940029870264293867845170376171328992788923773829622301836956694481904628709615071168053824322020658631760945912977172542287046742880519991286487213723291639374211921785476765126851745036459475680288576534364481987251007525472667273275717360940373244977264986517735953048963678836859260807147586683708719980926350837111989694221119410984826858838053862313028164005136149171370732957281580823002243144591591344823412348618664277284427588304177460250665529054196221992201378658629467553219225380971342054120643362197597794384454622690036975110603760579806917446684485899801551686747590421616518219053593799976932222115791573233319409442447018043543633724733543805913384065257822624440768773946229578344083728786253846489135564771585550721703152232424599875071671281782446437016359768475689974389733237164776842985458406195772712266574989476026757897406916275287883236173412668512436835380139642695122602504526828398689365139765561247350122262076072970001623593489559748087525281963906402111544928198288950708988831257816617655214658182877924341848726073639515882517416634454409192181740051557361639941015455276241126340301453892503427916722291539160280137357703304947877774583750272392309358860781894343274725058380277630477273497619436895928390678041090635617940420383565453686991874389191525705751509375285063903032429288208061038273260190814439167533667680503188579376509636346161904803363330401574660852671569248574092284727535003560302144270589995760109241221730635374630277448851759511702381896899930309327499020087591293646729748847817700248949401741009419248916766996341122905426886858576832336079686630706587072357045778210500271089366581593609925055646930097601523736478522356033192729043543809689143724342119307684335855533521089257319468705301706135486198160328188492972449264239569563304848090204504954628420361826465939824902692234687491513912999672455343970785354044664027892934006593328910671647146123707472330869704806052162431017870961336334074175298957666918580053498177444602388656084711365041169332831363195093344328187609834501195570063515429631544598891888692607828351734754371732431584892866321380131903687656419227876368452997499982368325482016552974534717499710325520421211808296654342582267206766781919789492475565223045627746788388611705050167292560382191443130680658256991468059223808872887047886099142755549582659329381618239782092107526534121427580717747423345240493854501934627235143915554815942834201406475089933348770701252237101327383529079586845864625298350994289822326063097020366168762498283591517073348911460448680864621202570512123735379187806341918372164118117680704291754173516712199099876407811156191495324944512863244695690952715911202122886700604740446039142431951524783024441018061896793311017005689358024418349514436535882465790969169407552586029489095770383633481273717842366378745924339970697014214219615646395174810549664516923720004558430364440728373475118366273484844892086696767221752792183001193319705616202398680960334401357672112427821718838588281126157171826949848540937726106878689197467785029068846949449720047922713862250263286545210381408437276149126112752656380555653472810820428914984933740496739363772843544746864680779041258421138278908725058809687808705916508033731935021314314305872308433340566450830815267221495201684439692506747685081374756583988333197054970207268007617916490086014220104636654945546209037248840203646277827008329496494908575058776833200860667740416035358504364224242074094932954024299517997852965921528329858429503913435837031338005294655409093052882754912233473428393526203827569763191119783808585464911206206776756176965955080256672764727463484046249811510258737672427232851585020182977071832680179747551407723910782599167703118879162320164068858352652305504803358350030077885782910836544942932401354945964449068946385692491905236237770941117842468644024653007759629564137985828328423325028355315986585660463179833024323037106494921743376133375377985122993112742911773064281289605943323678566665447052692932109277088775504703365747707499181820438427711715351262638520625642206399158856450658140055276622456116580729099414407526311365313325738482352717277000105478496569781771939423142566785088644593007552428103992154213272741273006391006992248616751320369019337001208871165470725730405308361742417908887074168846732767866102207763977701231396755488515152143077167635875606706117206964452533432187781699205473142287178603977054363230229957890110425629342913865719314829735254715888837509733175082064541826797126203262521792565204277935088300676983097415199970547685173675012896627349652337435655001525296462959034982516211333031939981864778843194932664663966050597614103585414232708458716709548768428683370849924425419718840557181108660231220722038356525879860262916752393226956285630251568974161145932135493753165648081651095779060639089563412766976832033838933824840037329080619557171220803653699821544234810991923441926013069422607568006452889617951173642668329813695735047850023044847083020862011690459663907474526128671133157579783794523346409105283978314892916954839302083955793084906643113569026419481602140213433151333265557242575755247160751721976398780888023413990053706843692584942623831281625346296635142137528824854452396947739152236427565120683869546887830002108948737133426921984368356762578849619951027049966553752329538829367560595486827145254683893668168431113107143900673503671019874354691303889713185178096788700779019971169158351255082517212112963391476456902646861690463509649369209793346300641778867000762668996863783371862289315591852363756105315522729882217781467029609097940017694830511920495162559778841461725794084187406712778818476290485628006394978541264010853842381229667380637162091325706091679728348945622413216375433175339674862328194089336978855582883959572410699160450474602969270601143574749929203994537011536228469116895024880709349139129359043621195563712786801967272262651130374553832645019570921410590049169572209913026081396674285192509511658933620441127944042195082196025843384782405180442811346115080282312287127905921728565543693273780748448036109221099667552553231158453422177249712328118266666316143355681101650525118170727549407214417030969261875353767867841571258095989940937300189167135803500967730520908673225083776648770274995320746969042066821777926276564923179946534406710898488480144240410036294131194620917136353802341418938367139801075069933705732715126385833123310635906483972443470606043333732361815458597609497436043893108535422072667637698656122220338930113600464304052838846724958693361299878336747365368114914460874226564532363313692339878412941967680430641069146883078992074908285589596988059716262075398019372800714523146964285291044332385694300889388452479675378497791392618017454774366857891460821922396028810909528194500885907814625198304765268963112163414843135054051157586630921869950663814345195642418428206018406502109543416020546368300749516763822722195698668021619708399568778722534903397481200683787585022223580595031538408071666345539417091341821764487101890319936814208858392392412639810583505895955659916863730809541669863871798460204078919736079541341683740301555890498377330773877951921130083432782439034976252862374934576230802865286720596353793882511212349597471974355959402528095782349207694718283124068269644129782641069871998220668111492696310206792871137238965002412379257327657151847046414184485644332595429835283350762437111805246098050665752541520608421144489996939521113192574524348904145597472876220388412584181063004386140752043120415255610262103620900554978139408151566281128509998996905116773424287383926274725609671050130862343357300084985178995107925030511769888173572447955132558736930689446589853626590535724177395419935177925762302557430065943755919188952314890244381675530497370702682395767035730365399167537106970742854735060115550781600737023040155681428174077857319282743827719611121748975493259947817803501029612502773846106710662444514920837910832299659006366370973641914520174929013487663945596829602860083162289274773801276005894545678313312093935717539722373326909229041044153817889384417706965704786010303955427145704503433475101635355089611090712702421113506675574121971157399103408881979600201286471751577168535826166507811082508073297862329216869667524306623916140173986143207593527560872540827667853931356556751834621859035325113458841158567776092115412244531151506135779921892526331759558664450654141806203683161867298763386613823838980471991949822615570422828853256942517630047641620923716738308080797782268869041939766362211597006402044800175584884609361061504674657784760023869243085268624717439376835874972105793468313997444785065158654419629498479362349388426265546927330506873471064523988420691794180164636584477490576644851693425122038044289483975466406948483616939650381561734232483049560863210533106120067143699362953374372223948448068106089901595648157768819827242859136875988406372942014920028511945351234337194913317537671687687549539355720955668360263885484714152304349070125335087570411582722032025872590922307874474395176330140712217146972604399743839811107810143947240621335481275739621350750969573232598190641592328615869057665435712228153509800705971081458459322531179011980736493569343325806390221348564172111639929620936557510312381426953269351460525751157975572433529251561523382830962284703982743057922578212537080422629199594107371336289654644144088468903035650850080495894713100864145190072547345902167819494382095692775032246480034343172315689606462960853345164480785184415496678963947553517294246926819956927913138964633616852320363587306514706703912059677998588428463575836349067883357076244864675882881237534794051867199865544235767860611789522850695025059958311341594041632028819940126195427188881796150251182493593955882094408213800152694381623267493100013279840939175734200915095497137998235171286213652370983793309269112201703583174440085512109495671002518214369745640818112643379106272311777717998315351875437838243790981505388075169391392582868957849029491200367976984682818250244471898647405309877862666519885078640774493469684090434513831437380224695992649846699493692225253922375914179209618186979507423558717034976507599285782506639988178430361577793434004186366060038626062013637809467874658772055406868900817371605546092896357536102511813346782886272990815307443344473998532488415083181944398972813652055115457938190320298082790969766886551194209029915040102100608567836564936462879908576865103057689084233353788426362154003232071310834961560052248166269896909061180499564416163107815117440724082708968078583517211040560691140334097399161636709534340735232354344958175118365747934045361346060226981694655849011028198731682480392524456281387720248482515888501794192385013048647813546345169133729285336413051580184094887999791034998585175450089214343407315442241895547678425127212526928833769524150607037552904879188423234691116435464622398234708044472020292253474371492825559877193835265899384074178834629983840809356736913536742109435779208749779725756899186915414777192983626613321220707197685233275839162199825220713587323763369444002628682130430241965453040012727260905898250480845276543029725839258560281402081486657576986089886637375677360633724670592913059116779584730081960555758130206962438135325216076969623184911059337885046665497055383517230923287512094366072452157976481777992726501912238111614553253532098824419223517978384501763320293542592011229913746671767444535793557438686616919711852048429279345079111755098686078116979089387315887875526984713332097472980028381154934209124528528802853636677229240048717002536375631459897334483506849057237838777927946446267486629118219647498970892939364527600080945839294415917871963384813690455020806717918185987773575967296044154143073701754628182340116438386897326217843736930850914740483432622951456960333178854324724983455095033735374236333503785122169686974315312464273844358761508587191407441861405872479056296577834047351593648735356373369247065957861795420047038488881988432837210337097956370790893031696792745051731225317693851329018990513038734634175761792738653165241743057468359360571571721065423198615951269065234771844941998721024790242185789201873795471793408361960819662968766857661592046419535195411482630761156686965147229985559893989583102776045996057895891953590490096669179098242687861407541790576717560466006053947492646507657123255132785623786020428295149696924643613468698123806288839352418950377667227726811750941062556403760814444906123902451855505127560099239682040012000865733723129722522915575768007379520708236723177544521770204977726259364688347618269559062246547166438662707097569985751830867139608021121905975621086148744139440835238033555063325407451406978880209302219540749376585187605283781584283793806509774191581458072857017734341114255293525781223688078053451102571646592854612601862238830626291636436898783301616633089330074060473369783169594730078579625302095856206583691711753509236383861893592114941013079135032890173506299754367207931315300010550957583074508356563449701035288805264084091092716748114765785040816078341730323930078564300933465268678596206392193134863574445502572125926356859086139633236990776190915836527890708547600274818358973003147204232696911588073428612491815355859466162255345795122361428706631320887356217867173700300874029187219004554915972848642984470676852993653610229413824893840164444124269552961389532387445535702996907512568196376611265024549055204711654294754960438051045171084166547129292865911857496406077356480858263754916062213030603645133325377725344967324685556129689942707923049125627596104046874502081788029155139788795972078018575171332797150148591887819625405556397230288090853863573429010623799382240623256578214894283904197601319046989770437791054110463866076045534078947948974847910078979359896931753607781001153603327769439493622209618662805870216366183612526822304658664716128637495501722740726216068861380520386880388687495415823547914569025299612061956948799194107295563889871771935198262343066917574725671931660083845742542622533193206413579512734801921271464376694054089232442378301415905711072027667116990559110048070055517549901637725366617572202929384717783128598749250836333415002048625433910176847347281347881009793293664536341687232429178042698726415426636529578770109458155886297038247641853427591490697534290955392313891190517158561823739301803506653884389073057168599772057254729186537449609025818537724945508915701400266624371480476289076500182054378075029956231104462486074540910413152400622677254262945380383374416430847147003819497498357432824059713528084493013918479227089582407584257524120344122932099626289952892775780372526008405491800005189479626128087678158758427747282543088235737108313655399476922150100850126157467251209064165267829790030213015040207779264039568039728504042974034706599523630779308673877321688666410389084455959817396427241202250113262218790904268046198733494938378119605306830578398904721354615259567013070919725757715738099319665289851639866633652447979699797060191812884609080921332428222213587694041250796286318024471538145449532061383226943685556906480295935889237949774967383362639228001864658883699681400288136598557556470995100830991046447188225613654196218243473871258594184868573337382323493785681941458606676633857155128658509075946779150215617511335112224579300410269948884125553793758192503658091882866250712406631969998634227400083217052763268663985811395408869175308019697359417709360678913485530009829661852499504795452154126789457924967561401175834537148427720341324305944773467483877676110140304321444660922330668324362501429744967250963218560443113219267592612031756890927371060555307800216944806982089592070806238156210997718848453030012493755254932392260788417844615979422785588194224015983300249588578067903731067290814496575438208416518601703475623544995528269416525500387150264036079271927440807665921388992506790271748127695230076618194699903224726795084382921483805440728939555345161230104609171668505172691248071354425791029532890044630313054816834665690666493175334597140669224781551397886776258811158222141870088420959576557847744680722209195439936142541903638597670068224552968513998641931107120217091178302707287818789168852867729088602935730710610852612580174958980001964040731653334797861304894616810861338127120632257840874521436671670721440075421124432154162987711594300122490916885340482332059301368404971055775135281246563617509346229978339945794126604373247200845244748229526658941957932377943382704926935766615024797248668107266934715907170290088970655437574785600995680627879226189698153431879106702025925012296733174852970467901920604983531518720340920651738338914941812120707609815263620054818131748855770226675583550890566875629419497845264047499244603027630391707068349368928284335271362571674757118857472421288007305547599222044438478226373929555642452476736276662464198580222320357424535083485375959865397480103306977114299626528205153238876937294119697767880419193447537223383961227900747224972986576524870696360611108530166531939278244460424764206759741629798193074792848929673115813707980238876497590125233971604806757127791153094011554876965459240243339768913936360518182597827110637341262895097701049685250806414986664085708963560029154290058481989159561802017281423284020550316543167568803807551418852421672427065460113504093440884696387380580754707430817389892855907417984445305891079497069094249402469774351850812153027667571716304392830566653537225000090812385468517761474058586654022750626257017013170277926394466672590794103535562871730372999229785517355341240775248206959446923312413346247502394217312013052097798684262063847974053297402129161814265785365891071640958790269948651612382448227601926134308983079314334614682355928123770834067128777452624973899177826728976786831937764421468380997047147851326915545472394361325172263014227275376051722940970083742060738788876194003793344580096110703676940790990562129067413753665005227741637629835372484019059934361592673327106730946662138598611851644724817836796920072822696773442231083684444595096634265455782981707550520694114156404676800430057011098504428541948990778775609726013248056094508401899024882765776463227850681748488573869852877309319595959096032500736179811580086888950959622722401045134410321685194440823636572747940506486044208084000384177232038149309195030179945102908288117689068143156528672775475352899705232880451181895450837136624641978479361753758542344625357631483446859403455340481852988755786686608939995215232120597238142627613693590803413276206066013371900818562800748305359039019045889563569188547787541648335712045471898615810312288286416806660013933818561505296352205425305061024003134354039021222990129197628374101940095657391266756384491112738433594075657787774936853335304964572248975086277167865895850821168516455318538572362500564119598864601265644002570186461185119825562046904095920021964801939063768442956502450659841146000059087351305217410063436094429241434107581758423324594244730468023387755243941680139847195363229108457986063653394102541275744229393728508810559742080070196084581618060685835767567414822767471487778971999386888239881424746774148947429602578948206249806340105314258213152631280168786755494354058684902242572772170405233757828625864580500151105952635345609311772311835863221998954729856474759760831952615228451058234485453097225186949173883380159723152048221920228599711051776547806147168758641574245334164881785757735578045083714567604086720093323601048663552533872444478842078167129725797661599075891259938924295447601363438888804529677694994626002222029421507885706422844408489226110703504615931423202591834452855238276989917930514639301331025700405981567284364804941070763577838141012150389918819679376425189907249586167376656689094745092422847327339513942922381209822954607274485868726388764531164885335059939408680891510221242230286802892779974963419186751685824443848942597884062579431080766174491711583836003330189219159780823206240061239349542982661618303927945300137688707415890000018786288229387611898795516238018505205105973197367068144884368869192421389935988215057520580740616788726566064390191670833196218368955120253124471334935645601861864169618963944568106267484685343154145562404277775440642270019115997733682205090387290538651819499422567036867124427698354404972937061282483740443618986389875127512666990694885200831035091651096009335071159477311823996232227732110350598934382929883231852539207038785818115184605985244412871166638864328179430179133048504356817706138340784106351136043886979324739936078079107647739989393704219565898342928562520880154478156698030976837146311116690332675909423638007369490258492377902836238815550191902423029316763184722467118980176521880835548278039723006337718880408953362339180979040548472316876938064464731746897930375539069404709298529396218994281096228909480556400700950288246575724039076846392249656309630604880479602516307143035713337335178804479712658743445452967238226893431429620874471128816633362693722183237572281209306408460750274185672117115785980747175000829714710869272292457310337822574995323012862067385303866034224419225058873176354363688759223830734298774437994448711796053311755722861970446163770874826440731427938196474172323622403149427745776905535910482028694252355345365578041899178415599301089318701147816873485795808324527146697219414305931907851284626795716168847268103001413731294851567193269552652821443910413622495099688487190725818321315242700794642585624830742026583684808124133249354169888754908833566349869217524097529794669857846723240071524459754942264333313344569281381887531176965758076883580809867874741811225929090079170123036847131369553543738528612617820432599026037834662173342447352689050025510244141282301985447764252384922980403652853741965959762923890915971461310325387951535275831410353332056179478792907302492653672944943197739761673369247538083584982338386495054361670223275973183993226170714920614427713856678411855465563843466123212781229579487103568817823375574985175101080767713010309813579087666179550623795857904499703792655788848457613731143375543103688530732767710191762193679933568783175048431070309860585046840093244478614161803758569087944869224651238457287884606326507697564711948537507488619184704110642824101441325438350712805177394764262950912137047111511903040162712808034208575482037162515558730363040321640143222783582780239973042623765879110782799414311522293868151541358997024900786907936032094366412407276329024981095601377578035339192043976622912913219581725202382534444233323244571659805629810919627522104528901165950342809062749185433112622974208200383410116040503573521162821977975042240988818703761932021501981307059620567620456001094570794961420455760325629291258246221001426465518576794749977779380397883090317833642074671798084210581364539150751537216556219250262206127250734864440966497628341157555564439933924334165852902002427218802946732504158262152759674717116781753675609886866918954001143067933266380710402471024501817459713315578598703514721756973745128100047604323722095480252574292811385154244067644958202833690289866438111922174031498275607061242333078391534388728350392994856447279819113762995689931532067449960146031847769432861879681963526295763646810191573455145956972260974473580410758101563033377432598431364927965988260967602830370979577235698078887215153437428971211062517993100457631287549082255508440322480724340764341767403632471779723219751456042967672988380178360897642021247883974071818253428563231545036170224181391979887417308045231960183322520281175408788506677713475139066320673627321149902905753164849223648075715042348458016659754010743248822551930569555943202183730775573517854723936508401666956558098330970615784558970852371254300324888059739513388468710928024848986913231594525281555607229998818204889199664446480703380558916633554779878564713938479704373621354876654263306000879378514538051571387216409242408824885948348940133952570991295969840317568652441483713623416906443688829047185564357437317054666605616708237510294465618386305975796904952057548238071357511291568193136700709076928392067873360954506330891765048614118828181660326669261014016224581737637174906029916503575096203585340453364149086108334710351051666516623228796341942830808050287039623056914298017385388077691266948769606470206950276346434513462669550954908544423962701486210798479884319456385294114286579419977272916501675988215583080347015575415884325135585440801847631239376093197824972728307770017881767653445094763770703820339652803918741654773344854869279909877062820211496549388066755371875722701232138974967753463194199274656538142249183770714278286275511973808288814523701604459541436944197937168518453359941463341611755849502024028384798650656579528085603185202005794142867941420758594019351138413864891760781933084241947986438228089999496608932486404484104693015183852144224740174888175672848724785350445852483980636200721636337608083375508664626556917389024217490167838769059483460122675641013897887373756485512950435581125266953706631563942074377708834986564799179651901968225178613427976077951000918673920198706744052738452145403722021380493942942703074434300783295600127143350335584111458151705936895119199165371813293185835202864066167252696468492394211212272404689728581872299127400116470712062385557424425991404496166475893881329574226091818566934811963985275026821672602664417532618304135892463686862940674667971341450691983023063687946563529505550058871739565947059594167175829065202783230918229797371367392862551606018831784852971389534969513180376987352407765172192611640315682666717014843472038985389065973087444899213526203210150825945242708380940760060395685301031960379468171421632778872054254309190429386710011092903937602057619269849508176951125972273570794605062914774705052777327335861896748167613038755763458453690129512781243418039924511558414885796962183774321682412461016436509296577755171285181352651840040418283828872882812034655412584107035547003684220130869891087312474384636897015314285401132916649928345534713402772122171660048783220271338489861536427026177221154023161299030406038752051281595647578180867092599978304010720226475665630912429110209996113480826195653263424464898460202592393734245594820496822446412363477063594819303293945255369985270670590251182004095615867395163312008991874039902158298475206079883648178186257290963914498539642167526254462005687908464353004187723268865072910712666326241070106869900891496771702417526107055244040437420148880326585761175079945128286664752551795760364025320136682964042674997030391356124411944245093818274385728538271377914673569767868737345975209460119711914472288554505640496923547883134664531829678275310633861690841676521098309296250078721367555732668450575399054619488567391843819400080965066572939255719498100706682851994900418970168858681997279224851521633466014583390735063010474698113553602164178109604224830548609067144139566883327957591872757672677282648411735276355583398360040615223351249372142937401480357567738208809326733248227286121708197590464644973367134703037530051912990891685691035285494661630005933280227295545212327802066077432178332975273641117649964260376172779002107553930719960718819707392224798196387310733383762817553768355843022910074009512887838631941923493873444710409474649199934626701562451871865292359730834251810442708527285669030976852429522802600272258344869515877988157032668751837143027177899430853854470522868176622185919246411281641922359309306925928835380294134683107485940494725353760938230675563737025368755920745078855499965552689987567187460709719039937620044263493434123210318527851482157793297280078777053184947945453234572633806219291869282411547617600008496165699056520459219944443542229086751249533083182946504570644085298577422806060636087186590849504658337401358663013563639389790088308697875571763408997778449545501191808891735157613763942708856700422437792287696113100438156871246830659823543043499271335590627616070445993265748980417482394341057609293923151016000523538099582617092415280127745291804399501740684579288284424669376460548012973832255980703930672345899563888446970311380418368273813114133851005071428808078619052501927731112648864589006039365311670729865333735410847078391061743494259385907785661421954533932136708671336073934383972273758544844836426742894209012286469798169666942572837001980132725663415417831052881751269695298134155179645412898180678199364883456589958233857613660819547980577671781673164002729859300735191680976601368794785732797610618077199433480645634088503186098742312053453553944826411526342061729048015263556720966443306027126009336089669493689634132686497607216593843730562012051088984572641812004840171056540598885420526935473596433246032169146993359526963614281227790818178813154745327947190125154487591067048987273211509581882904972819218233283540259872173699642343871537733085707363608358690742675888319144446416275952945754395748036357072403399041270828323485454819877108049215938711634003457308749811135075308047577219969153240846396936441722443571408177072913181200816639942354572901023366026351259174925724562513482232523773933855539628617585114224468074327633433584679599057706796558384010689793432602355720398097756164701039636517808403113602823455525353828434910559654689415027291143484789850719844173785612303812295776096472011136085805725059815739194646556560237207429390932452633900802528590137862443276513610606118287479196768795810816152627562455985024605352416703716065416994582598027800360745479717167638499489387022229842229913607471514346577864583851711054346551265208331901614975619752105315531547516281345024598696556251909090846808846959181079558613143797588553471114210284843328613079036200001132350335419705886847862803431615832676250142139268983126801923794895385550002493673982759375118635480249886336406301060025679597356181758277469530132745492323126124567955773899907615431104545688734282349876186301492182784314199994971626555871200636253868006624328800386318166136413066086089574995077586644865229753136907160198394261645352718396977230030395016622246447449943358880419951391137256210143534046530126900347354012764203568341616115240629379857468031598149042375735628813441581347579113568355553117790434830171873994096347751066734132960021453719552577330270285603561847818160299026472308958136771800206133638148523750028531898222729883829925373807883488820611139131812006899782225104196336169740084703884377665862061781540078410205387483986427267822308528009783755410710405264297726699332001950497960373688796031728404089807082325099597961046190406041603861205999553323555493525770054679130616082102650990931671314043055898976259397693924200707993837951133463821142695594421908424393518124694860758317004376389071497359097161243074474086277485947576541616186571061814912152070578741004904479893710151269446547805814580823927397066767016549557166126779427463945800753886535383976782371560522574937285501874011184175705662974604709064583845399289317245294848682579722518465722458844171237171551509435186839394801765205165223009225536260292940277067712434904382193174837254689076525528162043091886358487540304265048008407945367871690795550371844547080723213814631380962816388272763776197900873604992068026051748895985786591837460823256621847560101532928937086314805612126258179410585707308365900897225042102233523283380422190600262431910096979787937535682685946949351973034910942815366494591915793134966292442247665640735363482685219635757833299389656713764138976137968686156137568134828405434941682865849695124255344122056075158729968573133595022960453925339552139741233370728581305134877362945336617704642195627328995882264014161083814307610348967570128997622123864573301404480114357625115445104048678793515910608758318045901670833395762016702867191516118634515748373041293852567522392323436084847405586368995899604099663087360239153933633730558673153652179797729737565126800518304380336375161113017551946114522984871232484081915204868887940485735012778363649070381358149462022694585130383074794767987025625981448113859221842442016112520897265113260122388059729162651067051105242062637998468822710017801578666227936809114801292048156975099366808152655860051399394530084036111554589467229927589362269969303220528106795737106896188312357642685468753533824203472233260813838535077974440416607894222760586568731338741480186364881522495768407021659613954527161232717526020337291062665006064733947997789431032440988251302913879669083019778593368888521385275703923044781952809115127488182817655434305718939756099498497955672150951411551269271520949202111615137065860170786007297967480384526083523386062765027721618090699109680758323841724478101086359721944285337503176233413228239647905284304873245692337494418914968985235835000095270581378067592603453341640008879642193159563560531946962702574079925317800518524013542559833258646120256699026785201222317103684398988471506312596153353246228993476181135668581258085352721197740994874601533834186912968760870901745184411751369636021350536926476562993350036432091193555405167803623969152029468004877594167053235287916862471122266732047571982689527669271005547776539811085529797775268253710314927391103050149628577365241111304038933737768956717687813638515151606268836134830028619368313577059973905353155764346071323964633531558718595543247226424388290227333136808020980470020575310420808701631095746413010000672228938550729617635537384257799259564835254581991669307049387193451536908716360932950416297256439648814352370402563640463513473874299116446339343926920871491175121637624482579515271922450016152797945026514178719456817893769302257160818022403755047657287655921142746172324422112481452155680674858369225208154024105132769292554356345008452635843592543054190057775456649914043579075712434878100240750043137885966745613704046170214621899449259984225659108420090595639508738815568638208994462165756431254598030801771995837193967009033806427671870884981512356695489859104304569163311907708521583532621388572906104504602733457467051486451487188558055198094147708121893777200111062141868616577862542302019788059680560999749349515177679123627453451643692661280892339082622867334356025472241886565568710234750808449800727109697713335389847730085387477968455185354573874447311791138073025593427292802005449293404552753446934189868489368695235776858554740532845252966634442013386848214120819613541417054050853039360932044503550068106262709165253819928176130809289959457000042417193398726895427393763549639771568785582805436176272881309414210438998913957685312159172600882104316122884868996370689485720683091287970730109115533791609680618298480349768347869756341630597315365043850647158917636073347239318211698244064322278424801043362020431225358302754184103569605123498616364746399342254607700281726667690645883361039453235425254904389165421651070226166622250784076565909078909851710364778773780116571782094438564532006057080186778497401820032051664125243769277311861377319653293508949567775130482772831942332193251702166788055356523742209413017168646824539031153930703803575711976782599550429670501633126252903746901031037004886734265128162869099733484062040017884194725284004749299352093960895264485639123003262925040598165824164287814109989867288655783564520687199930069346885780515696449318199171729036217095356016399506285475839481343903376731994782378908626879856822540529830861674630543524150326337709134265433870653813891151351015629696332944016893307325516807620919928571201317583379671239745215632183569606845849797285288060153720446926020946277605506179703926717094941279550788612611433182215794601037323798570793842917549447220300673137749860737509424416276641241164891713439856543544782638956005178567654784384385906620980051627365231365851330613868138708143366015354153611320230134007523623812296149212112895458313212546735826783405954444302001475868690910418925848841345591640683945087507785095964871989079691805680141445821521766446869040664949552896402797029789461407379648846580799676496335805191828133071605218332899538587783150053983476653922829081143773494459467934498502795223885111918167357723142414194557559696936714298106479701364849793175487016574974734645126697267170329668581876679459497471884198106497546317766213362838907073526776230039786253880054369957277264757296707570510801863212712768998407981417973323468656418392403357157715756037762560139478411832002077107716999862619306899692575134316892506609275706294931337283442235160497772007543466014037308897451292200984857844096091382851824652326762235257772518074672234061318912574412434020913289193016888730232477308354836303793602514612313119855536226302388732061031935779919708465897401616378455737897002557555735615197905042439483626823328839998403543806284987278477428091692557945625847031347123306678037864194835915268872599852192445192975466586607692311631818817145582897027768691538063448774127583701572950768547563193309656991753096091953147553613896674927666009472005810794462915783269689755444735026702884709673337942797898752093841116436992789632314900679590576289643633051487122559177937849902572072589698619983773439891460269283553182400151860928260051509779202264057544317360064535771080797307610994593077193433938166141568445361208547571669612000998144137691263901846088151684905840682031416856361460232284117636207034501454773916239205249062573474566010467506779156936585073800660105699733795316702944394396604133340674265314969739078168576285912095935226113255326258928171423148297911150490315593951787058118855964927289264817198021287713323020269882858233709904477592387319987190964116661428690141429691932341297513103101705152819672694944586430122371624448072342088768028342987435627371531001611889656177425067570740340689935927584034802311343808958710218474652919418958007657453275318141203006340808260948019865320828301986308087422748865618574228134296721684001475109827707321085649681539615220436934077123414079462869816974238871660664955120371574020713708676416418896144347115372730134073369993794657226855794151977652192964134094979054259964927285382715423500645850574431235611912395742879148546427725381014867305679820788047372930337189910526392475398016391805131019069436146773321499012418811037633161226259901387315046160998406737450521654378731801353613768890886467275194002982692113343601144370475928909781568383392094496070210061313458001731613878858697078453144283396619349084801645589189370684257324997684566742740782970211512397809112498818131728116155700002375817329456585992369391289872868795583404763849303964959915707673267044154513888630311323062900085342102399154188566060142103381266459854924865419814575153420527449247923456051895317286566639597883600181568604436838433329427772241289182972327959439814116818074258905681000405235189577147526944910839525524053981795165477726647262136773791711825286003987228940542895608311968403485631910619343809675776146983394953247831146204113855000437587471616665615626612250272174919003914988973205869599616277656196652184081551539800384049759727657716564274519496046184711483723660822517154798446321152906320629550360732155320590681935355949930227859477749409012922237285542825636292437963685497425386112983052431139456370822587198533827134372330105688121053083206005949893640152803883218201308825828036369093903682267395972810257626191396744802649751490574114813482410860503187452113257269806708530047918877011806582689512003546580411131245482032579529471669086429286554650310856529262223678860075561124929694052848152519690819049503619020216291781083457105689140852247403908023856307239836716813398089348270049153267273518628128413737808187861578388658595586456728384731783376120328931003840991448339869382867340186050937858763368695649903015707439498975882979379608374231209778937412530228792271804874675281831986702481202910083318324567929141625155355790900977718469766349532593549746783106649616008973824183047801987796807814400000289089743012960146409165191132295573993933671299342097372246644789555261505751982384090015329685124655012081048155416795054311960544364943122979954904276535561687154765965704962935271626670782992887624572390028176262986014561167515113897524342866385237770473321520751457505619224906926089741750421793646927114930111180696415477348929827830122085906511117795092111846682602876568986858861812913132670282025332535115771735361674376323643589820993382252726088926694675832639100657549439889291247812537985203357657454749626232771112741372205526996875986144575250959331387970508242938960274533490054241798710623313570159519664074774988265192621835313203729404293964878488386299103327546212056680641945077015347954081681542050821042727846533030591999777261563637899090927739897096876024958431441565244128429419248230506018028263376995278422653818032230893256096714967055922388471307267281907220441806211219738659262060999096493177277492015158322773011715801356471329749398125000809949033029957456867350580764432831388714753116904400001044461400778902598617199332763002606438844508113329216160194975870843227721722073258491057378784180225738820738153301142084759781538746072910913222063226836447751578832854285812387846867684118233167956224997379687930193520357643498890196444427908154884911897462822429102205853313770584146103608455990047480779793905538327127635161282833770236311675423035198522318347743156997843988290165632790175670353646222878619678432332414512027049768646159113629673657535831318648742807254369290587053103029887066276402135826754464545891187489426586120036796551591650857047298146124586530518554399312690783897091981282255118791966087381970480811234492829266225538593467171095440883638935084686531368558778076144723398487231515916519817927666998721585751520686150125152147774951066855670246451466571031790511878206551775701233443414413611213241282564606122719986878273425985520775740317704082697428794228229102226668532631452288047406874370102311351646243182012655246853115758901205321630039886371151391268165359717327602940832888244826601701477282153341435066794344871235386870795706663979795248707693671040456187091755128323737593491121752882243185879856199811676502530370641095704140659568649216966087628956000839672934716802469171160857334385508771836067770745599149845925151838434790120775877153582540426497634007187808248708044545743496634357918269642926211941568576025087262994383914473693397927598082472387674095553194512985651812157680290821399972621323924647094116935012535725724586180381104502602287352725139945000025027613365216932965078002686873366458689577633957392233067616479129172631460393096648298544413425342825166220089954107939683975398818631945437142891963814757277627765502430518192178951889684532928075502949351250125285017068623736196366689455955866800276164676605565918742616403580903315847605257782076854683528025019049456628958628900978714211794591637503963041983202823827740434024722799778971459852674095765113281421777761369169643874019455881195040874469156249176822590963301552741213384782360282372054599052130525682150516001226477610477404154226955289256014647105899301962498494717991820214237012463319865061487251625845337442475882970378340962812128414066816551609062342698669480622871408126395208880775381848105899921513047145493334045842845682087178237717864654198521545472798076154264139733213452764330020758760322896450034675801673677180214247590891517506678266073746168416299667592424610705566614150410668743576035102102191209947298465849147955812666178130320555982691944439886439663765683556694450694913010920062798288780671251535323093940407527027056794514328525120224634725159023517248528421945064196395187175052947190235541318788029752569676527924972025672867753447659467343853823912070250511543083332843433963996996824148980592237920875135447230655840801272013639559344136648922738672277136266938993235890981755948269954905620961248184872666949486323098750116466205719854411744123768342548199264921701058621949239100343800758365514358236357703632287219817941900428453851599394817893437918469030631679402864189825454186592709420054658314699774868151964461959935778701785587613797167313037082422330410599237491396467362333617146603511319614215276948858297176102164098705432411774305554568453373930969013894452375520071422132795087955540104918753878025433846588791666694277821431085546079974022701521507035073912214351309229881907169450895870580069888464639348320360534740218725824731064323991969904359518524093652942454409704545460472810010522509637414139736673449818126822760195780824848488602365780095004306129886701720467165887782619682014637345452290215082498912787236237374476869057424612306307136153359462815703690731435643198190759721735044373959574062902392854056823275847517523132269693004610893235235169546057258256862771728841526040478580665049610565456347063410847952158805618556208495852092103863996848409901246889009158594154829142897070501777368366257190840968998631674399708834138321721064482111923149637303709682318996154529781379565811495190356440453686121087049925603073679841765829336063531525567969706306411887798872308926559866373903801842476434898239807483659424014609383236534682684256886300626970259477507587744574005426076610314470085060892848011777556554165777918495810070155696835651242548988502856339619638503485052556209077946891519928544220234111967525025875945634897543812073737667719491916493532653624399098782802486718152860311965604788287302414376863973821342197520590585194408982433643949826439308556200507874521285203586648624143888658329557219826645041645268907419657947290903286675196068724999348406408788913526279079687500871002987639100921645690604491330385166161839890474941612619893811842750973239835347743953393544157679185804456660492970151494199211189051121874923688357485051936421441033020493764079189139934090438315702511971390596570500813329440548897005151939138468828027947575915232910030170750551370128171749427178068156828350438046414045940869091902628319196969602766888770071726996279637032414784772260644675364526578066324904123867969122783813508862103469066549114256712652990630241754806515130643795771984063064122450861808593052105847572560205552662865143846852500784441027310844305159579603563294356392181758581422390321198826299717979101115348795245493570274852086279066390467278315601445865796907281936632588286284449591241192034267507099292794355199576690102285059352096108604220522974408643552387300978433030170565292156480302516065717591244038103771543657532312903154147637556370955764848057607544339341673348935338446702444091270319447096617304745134209262588122063390957797468299201818058414206754495145450220199527924711839639136184285129256823760922760420027470388823199581080732766244177905888004908980903973898761959285249774375976073938936775063593764210535522128625928425695790938666204122219885825109898552541458068179297565081441879649009730116371800786634511537031814262543840546377976284313931758122324578207884321124736284093591565642883791888729036144771214208735801755367567084532849205533454967623615473278242446089670655830046992051441660681344654586838680952473181062975372698289259666841878632159038852323852177797719437633598582083566754353590464250369415919295651383800514757198275630606479778183735701338796532558412449623809415881589063500634482267112570603792221148113331083633848426255185439258029012330862402592937571080670075414928571602614131374572055032227791122878346230260541095192739448967079481971213696481980147295470445639817209060418048579693030188212860589228333753057875892766839590117584167993481590694935589620433678987547554709252310440743085223217339165772923231222034383876437430712658827824006209944139869335474608135942560859927514710217815282733958576655691601168445131593767200487773953056963667820401144538617770105516729372305712245500457509294549749157635336135086889242275761245654709240780354288459459679135914028658697066407299415518308207573664804389626303489511172033192647771102469224380634531010001701808068160766366487935602847189609020739742330169718158652949105643603481215545957924939787696205242949150593205384491196856242046621825432824277819013083088595323532593043422321936875798246575791618869955615983511092989427513980603427524361364791601609724202632836915490302217849913273690628265786431710508986803385714502180983352435934959603009543731735085497446332559258664975016937941063144326347529933853205613061891506332370722570086049803385564988829109545185223650307072651645302849141816863292661140680488499314012409956075780491212953316727988126090570145603885897946839810693173922492349601558713160463956903902573888301916656628767722728259697535340937093140619604364935302163580055218491355665620636430927101494407825472856570453871281339930133207462681661274812344549023494124325330988565858284969793218018742353299022171432951574764146012716398440949785462823186204298358583185246483777474846216417514429509924039705146470933981606612316325155047755099654552343857722701707827996343758043404363107760511798582423773040794797515997228529254019519334233156285534959705698599576424658153264458031966783745639549111102000416120364134220760662408947083851537659328322755873278886283492076716872956594083474825032786057749278338531950554789808920984244223999908738071592435528294738832706705341345275774652576500096755691966225635600929289073967725718815152892224279150725163875635713582978722333950332387129931073412625177818010039639915382070116091438652215168434786672571055959618692357852500137346989501240349255139388143461677260612174168331081173477908398626972110790449561602155677707405163988107251280534784304519709993137174814840683739575954971397129138560025950891226198359411336647560254619883641815811470319253179640697452485665473307240732988479610204081964431903419517550197533397979628424147602796148258172379394321623359519703246995286146088989982994693492472181944612323539759216334894490760186397265728936325051744687653703628475539105439323537039983247584849600479235744237143360252343294341177923441175313436494911995441939754743838274049171761665227035281112953705398023662062036178469256012527611350351620902702831669356046814347463671164426287990802188934226212276496701204229123749203852039277652577295439672774297333911976581390036001033575969383420473445010340576604037500624840844739035526941498413963373081763096197657879245867468405203041829556613145808867942808958104409272627922691207612400139088775797435611591855414517035304386876159160289736077179470529042651298145175291192720045441012786105644520335184868217683055496206896007374698929343903890910493732672151783964949344722539559316885615847301046134641658412004729374889463402285734182313584068921111981514178959518731785289791623310116079647708886192703788393488758167766904620417106488902378108756767215539316593672698617963579309181625722928931975820244798531407781891212042054274999981699556420108304726191679103813591132136671355149361529588181943724287522606607768241806004814702209785465531886533887855287455473243568011977824503729034796602696146389840184372487980321566150767221738594602114177890229501507077781060799052764097743354314777781017292376603753567057193381582368738037584664436407467850152589991157476904529569009630796658535588688933353566513063833309214551265682179083813884353066604366556734401706633362358031825647590120170754031024210443817389960111046034070232246063280477724351069021402286674951505562123139703820834428511273657072948992856117229823796758133559107781276680065875517822909949738013848261095873825508728574446407766016181351131201340018861921896338414740584632491676582423158876028446760903533371489756299864300254536706892064808672503875936101848745849433695695268807667901738986287237528527997947426192181633841793258011328325731948076806913513979144919121251814355057516552280418519954685219794017190744683949075194671232164661950447550967388308985276643151292370605971251727189559847880352212453187432040484425646897706350131273272023105583945834002473854023204461433146401587934590167866616564747129516286225186437024284849065894278120805554220285915190318547705271532760046397250930425749851244724275198268430942729681532255718883114742185268842368251195183939756925797258133386074602947024422603826857673417287844800643135482482769042343739976049871311871348339575687489928017905836144780856484003513838009721194358811638814896821916839364927213348322471073365339352415147289720797133969911906083597371375845140605381367811014577532645313528678481018768996763268972780385464604274046921860545731123119679455546227493809008871925999442070194656002729997805386620302630266785689643249746983380867790086791708380657513959301136060941536783743562870744458221718223869784212103890708897527044005875958052388022184576460287218308205405806309843182175655150474710411843421138165210586257053828619304054322572391207206706309206336482731584945854790671919459804983190279449510487393627705251847476136485694941320628792002135718205724334493872141948430786352885621054712454038205865779407183119792446609803487245290827303589810481381373683759512829836669070092261607953527444542883573416391329420799576628908920660058279670681292138974651058236149082983516146327913850591981366469288729582892218275265767872776557645988651943077195029202541818139979040085579420890740918017145288757671302103004975326782776150662480283040231105683821630580162420888385771667769143676365978962651286877227929149357667935973138873348607053689282987523274380234707696414428392819066662626794863367509308289769671223600071098719337015423097869274982448140747035242270672520407762058544425607322655807554537868150245206154342273051906179317409983614765112482936304047151798654381024018096429605872414314638706711723811728372042574248085431187712033213937828183999268958225070422304677626126072190550463582395599470245158355116074455776841553258557476218251744765668955821029323890249768743524561111067060566671452753212211050450263948610659617016864220932412443428838308179185071402862524923916653417024363683050419077755181700305332049537935140029754315293240816083187907628866126765550822406593767429716517504863958163181951788848632177833088322800495740020458175009124818961908584146383403298017667476691872610225885055744528792671573775625780662339874845720112052204676699151658226333526835149296027691474476413231191666128107947212286753918041007358997860495037507066525753059349238351505882292906517517709666537007301114702701836987047308397024392356228419630505915838107856406542173658145851493055383925245109225840167411443127932348678021097849994302569211316724619890705487609177343972241298496038071681938670937736597271374437191612593239399714116612282127323189105483991954625265367623048329181825174161949662750209153623523900446730008486524399802642203311227746179001792399226737472498673015178554318235639218739817232014324066887646664839426089603496801246597717902195325852944940129571992739307674462589533186193316767084033447728675102344971031936009875891888516423958270917747685669735970039452304671165517333634563139875410762821109469409567814790112063444090960451612389454615701479883061373224425735130321160695664908850754414397036837398082482214303873052018360180610779162851349617524230538585038065209860292514576793853251709823208630762940415713438531053869938140144032182812574833519314412457160297109276610614703192286287861895044018277544034348172134035026338703614647856027647242844699051165654801627410533026477319166683636979811808823646179268948740036736528683047973715924006857150418470460830978205362163563390488163136603895540477809553361331833379902230161364772458983191733684494189424196372090254693029221286138491655748839001987207391804178382076685169028648428863328706706467299079379096696097966729047595873501890681696018489873000630076629785715965274583907489033225879000906389960691012518992509957204987358796322972129519268693330838319383530628720868560578467848922242160782507197947766424901670019666326472624651138721966153401657828329291676766785380471376476909140977436641942177123324648248113239605454672190423880218766064766424883348011968915653259131789861758934486670604714144996045426529251947517470877675439137529184026139893826251867338569074723732269216421586259702265423023934327391223425281720983336679002097252692771319205474962998884516037288687078828293621538623462449245085642272203834289767330364036456784307333105810412106921435174066869962371154303065858599885555705335509855422148245961456701865289599912991577072710396248836067978780878667009055458382742461148358313369267414809717678983970587094369915512854270803949934595497856385857046540337168211996745699620240567005598974845382341830889259475469509883890857662001593187045420093475926033958499071262052215834086873439804258495820901114279992914645196276540310117864160417979468301858548139702630471841126936876396555004779426906892594898896878983802215948891790068244301785573429360067236570918106739008589415579894601256964771773975313547924952414660023579209330106899499323554097254709548657570569244025227907341593861545167052631910250281110421151485508450926691723460090544803564653175059521767639180800663979043415515096647572679132709473195799808932556077445591479151364485135141504541927751043557232803730891964679529599635253312977569337426720904798613558364617304374769665403910894386384733780372977780014449312953927129624880915344345079413165657223006612600817969527766810638688163902749144903369754394950655415020289079568893507873517219417998433018295826814226311582875712788073160472075942485054660126586819725744476731099872936007525482417350541543204146988267908552182168769622906422217158648936153336062197362588982619421232522780500548885298949043027328414159072933483153960100418372198349060543704550516242272986047261669918075482429292958489519708597563466102841971395303121318845836838456468310443600034808694240906825541397699241118521357262866035937735341646629761314282368538984495993941859776136886570436567888389664904458419273014159334944460400385516901223027243278716650765928160051616159816079837507669818791224866337795367810490961964038600021302139711995876551978902412801370544105878057224539009807159641689397400118175341689360758825630924063592892984929388628244415309584775032610854277100140443612942148540019037142064305217774765551102405217520125589870308864128962199818954061363793942771872259709523903617788374981143469985724295823785870688774150755608296928721023856969143493240303512223725596831919054226903008002697391243896791320732123162267734843730345360066548908358666538105952814273203685733102177166139538702699978812363004348028673561007986236889548705238691899040515297368397719648584758429526488217192832970572738051732615600854971418009713690107735652810565417621253432008187649250102377673024947815902002744889225926426974259429013034678837041209470230115592337518634692871956684516778648921809672531177733557247278940225860125331946897565250452036760212030503442655152360134907224962370148030440975699591927872086758104479715324181491116871687990163352885788204243845751321159442080158894004058397046418623639240672950423937953150811690494827592151576272851026426327337356244328283913427104750130235606961052661471839427519078272456857689113920292011202909705746894050901056204431825088596565183398520390401331156707045071695424609341396332903517481271485628497807390317939919511764912435238644437490952596397583110502726201068422377525332124477295508245923215475207231221353127874734907663955606740170154696287125034049164876817069176652188269865944235239211279276785593316686188063081689930528824834008275582004023856254260302737983250318335468638085001179393342454020047278369885647798180465481069897934211305361048209317830641076989814831141213869765011624954189425470140282720497715333995225398419222705889382130347718305091573189811718436917880600400456288527148696283401815044315908065271598056761601368144689575594432900519247152832410262814436779298459052465498278086475296382181107012905092986319630209352340486333384400486464196162453385958462370804135694195932051393497630926259930391397610123729162939134726687287784155139830045003433452465470971896305892627505106702994324997475771703541128997995232329400793450387482594794689580581038558618494072989430803645234956617526409846381254535449881379799067064412850886462546278491000843534346226942251653406238674827559584972009623380068164488276969524552352441748522868508119326960374518476343081194204803811420783125001579113893348022246761756412614195624861760107257447869377316026373998420178246071651452186962178865629613968723919810939927325233244900171752668917311776039916064730257630935967514419305527881729820134986138332728049379291985214942048280209785523705804371623202297107464367491922276519423616824917767364113128937104272339762724871572363409548553395055915190849265212179045626008630168587015610658562811230664368729271623188444903811857713988065292395562032642970186727591188770062124100212006758474101561952823170637766254364877287092812821764039086514183043252856072714469634770421126824064819034690787805408134187939005412442355734732490150908595739233103615998438685512571913983412963256420465014803220852955393690755381191653892086110992647974461834923984897958927060451381767102631649886611622316629954699904497832955809128035032682883890466193847799459770098013187626270050172996378746007203774897486570479307210191059261245105695101984219169512285387319506778415264478391942750150143043904617329039033633434559516003479464109824186423119582723674599402872084087540234078841131581586615707092491695113300946941099868277248245001920224051355262917878545461556190528675741785607887176486688819987945396693272774113365572872580234065115776507543273064758900621093609578658545499930804759722302299357826395947473104522069834349278102715312806543132447928942593292048055714618204700561500740063498902760163476002955187600379241481684241357208444235933970452579120686141861883109738250696739962031869582469229473193372381238977302263419162760564234526765248921401503987264160727560296053026942241354514117589982819986394372370937024863230885937781918414399301642215736112377946804244991693073375810837211500849305903784904514218182802976709328908505593755765268069216138868392045451270836059646822445239401142971261717017534297823104076215070578332594514702004518954492816300347177054388958884621388866781429940334592965141382183447858860037035514307174514794567667024166855429868386798505827233841316090602574279013311607683193719820340522372243420014732455688634133190692215000629603815185441692821525928949509678309789413792808090887327927492163358488407794722397391542394427485191150919401724354979383245990509912005237844759964742900124204457071992041842005441515877368123680036027865057806015100164017877130478911896893811058287187735893282754117072924746486762758358590683910298630009463002071947065522569503608865707077465117003564722151581429127385940998758475512714412274224032986887040633605443739222825725981143807676670802875184462723482183050773550475588778576360798917171305035226784377284566561646091811617116137600135578421822024238161925026936282252203770992783993232219897684107154866889087753067504249519542625693493967473952492466408485580279991001328473998554891649628928346231157561190528023034350826283654298159930182276531535017414801462457367306317931081855330066920043063231107297764545320169898865151713771715350057066388875936338454225364317480798210085704616006353140229976095719007246101690603331969321669888185471936887191005343236770202961303297420060081258736430990716329285602894236303698286151177340633381849692010100375579817519895613930672100172458191552977808774735876582649754720950105037879617274419788502611064287291656332339795466143276198137815639121615976943497125039133564557259769860034577985838071011371477788399691052784576700587254067675837926713700301112628214057143572579080155399647207252691478692066647243884893944439007327020271854091664308805074517894545016745728774709908026938208787794795649196395243573417691811253522673802860936033768392051277271768644254961581106571592566101643445712510363983927205036167817449589381727905066104966541594786127027396235975899623298792039970736635057649609868543695010643606978797775585391193026425897172410774979185016736318061912694329894188625935350387646407877880974908753622195214698159895480833672384752339055438144915104710888561407449836843507118684761186501011239963846165958933772776436013669348944016612994376103725637299862452699756331507385624563472699163165352860645415810998298286324488509926141494764657380863764411413582841646114371470024372024792063259081917003024668687341091940388755501616291444401355609574110534651618706238075122781450838238740567563269970396843611590582921539111296809065187220528754273124798766927030978733151674684648573300925233048652013593900814803882925119477316092857093600687800339864636935290407645813937612698432894157944729021312102927389522890913727047153500866853028732404173205632781404482328839045356449924424211749317678226919506296868310432876940995054536115914468912905675492915150659335165303899160328045911870868728455046028596255652431405122043933642253717572849586130873694936138453309372517761773159217317338872643385396866527645606220531933068310016977014582456631365544288642828127844216117069190554841153852400956672267733488079200531974157351670412341354641397042135809460045096870268452065850781767761450661304198345179195905645873002244748646050112303321096189257366763626151228816638941885792458545158735813794175451926118022795294370553016154750658589550555343252985858820065956290509747046076883155601190995766385042290406187532663026836395573847284103708490802998478218838418092684985244392730398034071226289941957072878763992943259682901626427700049220594641785399515513736537251509839711677685662473608471198272084057456376601276729093856541926595852901889044328990394035746006147225516250334328784488945365447169143163666513784947140424380379244507233595295298816396462211975675388049245833728330853966001691942455326881558360851387177727796154166147629777123954264172653914502198021089392394501257316739299236779373036888288923410273270053089664981615125316342683066182511332967675249662302528013851574060696992457492994301499824032894807103675943590616019059788359902134229040289797046551412834121717854571960699461790425517629876139090618671000575698768470399105332051799530608084841077952770525844996258203352734613987731253785087738611435498793645307987032394621763935898531347222283446893700611431694346448730462662266052107616531173544412963479369612390616248401908953513544384878800080087604279402534870076795805496878141472803184684461905886820239338169455581357174486096294468063554968155930403608185155260191327892659805546965016587879310274005132105163786315872881115177104764697808683540956886755917072489169571070130521454064568529654271909264709075823969927337359902529168764277529870043942026699476750423445558657613664865145010297214191318171865154309739415828154059320625705922767009439527921631922173041829849510573303440422214965720340008885126384360491148666154363048112675783622969032350274436594727449092438448477729401893137492919173256970634346665287280677638636759328972437943587534818335636720119979301520088734803663518748683924115600844200426225974495860820549239361706696317235308284115315406185621134454500623974159850100673041970542869136425771677005355769186905940368602686357401018640920612252794948024589575393654887106503060327591548792649759979012660653757033461578114309335633989823393563966383681785408961284936933903511487234955634139920496163219966554065637780547995323945781429223353336361933983298523839394642063540309810592576036608584791659322855891280434719551950673283739425805288397106942058879263023623442330562515338543887230433711770681573661523505470218344881383384698229198189577709410513977841920790071825192337380834183722994413361390075748393109670452054241274769628907345738529831068029726327263359524710310262834184806750692710597245258253898637645527634655078538582305574475892281994737805770658975828397598828774733480653383138464995753532869063180170896471953960059334744904123125566138030173767054347507574627812968314500102870906166597019090007668562379951676757131398736027539256059432804186441417759461537444398035855244975026409164362741094839680149754974460852445251432748782517987893725692140658951046045252991687594337731753162180314330380155975428431799096196374145533716853551301305753378920922674019663866695118228044902781795024808638301449642365062074095700928868587559465710850385465762184031935846124701766266726621802711440032566362621942316811840215482795935859066833385588147829601813360386135467565307090091093130171467783653935215907069664318196154396445574300326680340650653520145017837010751813866962240087137298444474943839529188969796743027653826385048282672902318651329014037871671217250030562729190795523265787769739552910195671598562338461074371060068258450065668028702034543681219490112749667026024800505170979496026987111344896158856303109639971212075664687191837078024645218950177414753494359051298454815489684359370007264630338421121986625772281883923867368582609388548820519853663108152899511965469139086818386999536875476374697015897292106853963801552314412058716781363369447207439363396413337002713075082945722448538787137441459348936082725528187292911655481361812412800202979456849684504438029540732472969116050578121828581330415892956635211994793685626107510347938541129419480772937567102959514417145776583296281204803523729062954978307438991316266872926846549231433318931538593240619671817667476013811222504415585371094351560532937791871170351422345880556135371578655724495151118728590348750883326806574940916132245918761341539025411375999806704616082420134980726079202549015755883014244882386093333435171587551675885684630126472727285828957642843277470250020158965608215240072362944910326079809660683457853100864297711861301148297092979666982246834893903514410154243404014007553844635305937700726405810908102139487900461337664412207461676175495226245994068459762725462542316647110138019249215479755075821070938961158363292862650645254731383804330314919378146736638059621089858629449456106996198526432126429019203675452895019014008524040906538854799907640045249006142962004102453893477205909593212598337344648658079815897982508308923598448558176644175511013328427462861055902846783426058272739872799870676318927197471188316625093873380380556392289053884727139677863422043683868698304870656739953216533300728706945285630592455787507952527402929168585991505740008676607313864547756971060047036566259799897059794960883023579812082429185002718956848684044375709447138463376849445894320256819774145765824388240274892803350559196245653473616169627766599606734793617599904601038415645390405448821656550479838753724772194116588960309771756861873484173289654172297722176463818335754335143082689311581476985353740774628212555037142604774791392260685694841535705589449404391574385065383135071385914344096715399752211925477979825066278675618670718227707672515597210768911813146723702169707518196625244813193018033112935953978450191381415283761280024121540928356874679258253711723963510736903653621536421573596347149639281061496805479800836688521733550087571034749790564168895446579740106241644930907728907134545344425184840951835775985294957910210826953850652103022500902368573220313868035797002717835363237147505386514431026255238850982210419712405694023054831835984392721824307342779468071100212220862792122890376636614707099525160533913266506946682554169924104605612653001766531161824843154606137380265190730854822106605089723472320075078784882417901003838483323990325129083451376661712552489124425169336819570686827303262371302163878260879825989247906924875077121332184746443519480606153801486436304520649248912596210051537455661878950088675563254910696168910854936374729000666701413944844269433908639294779880082805418641031761774824716506397929313384297193330709671333409391523205787981010567764099387750190847515793469674184668576492061250928008120652523506763620454448319260964102025977093126551434598876068753796554970380391693379117939769725035353024091580047050022426194418978445752880853485057695393818049609179894686279994075655937141199265363756808948349474402912792197537181108603350172940504748333756748393995921816470555788386944394245122750053019613893690940263212662282231734965461462609474921097836227545832827369519541871394877728865191147012251293425135785163110512628772253579454218171606568788782082168497891064447685148393917789259544956575721595217331964249553240293922268802023377115077635956584017126825095938185570007445561487537586536962004429064495821766870418629683094679360078429534690436054531399866384164146878518262957811304388400141848533846851946901834411646513820735650896328877280862625398961166634873630702394697429045466078783944405919228389002105019450917010042008474082939965649906156390001383872345047371162117944083010771881294592338830294276809718773435009181957115171816983536118606716903862027783096144484039546087581194161250253412478033871413936095233950807401028181218545244521203488486596642545696576641544900977053131232435165669602940685270588250431242173746489882086158911828755189164817980078443558085076094484063072340690050717861990550788852211248183178199576740042165695321442860008819478074648208037495048117094006959287087861504864405211368680189021901669030423861244890349474784078665107870508957512119339872914124695226645933416088596016660336552488917069909111044372919167037445373984358169442624348645998835567195717225232283437147197410093828819297687633202587268184928101872468653959365063963251004656364316325514638092585330670740077126270881905211798485752627725452023131388741087482955895305059343704484610642876887194165610307554976341976918709225331926617846292492576344391663934406745846903018090970388566132928171283533825686021531914075468656922340084420053208728716160489778597607744582311044848174361417706560030083128140797051465266124855573128640444822383420760426427837742129302004178037482817649090152293913742072777174877236895531319059691433081863529221173485486474893449811886782852274758830323772671711824644583849211633926303300407965813165586765559200628353951896777947289924804280629386279621033774410482439608437597615431627385812479892363015984184444334665478997335440410505987632088282622123481871336805979753870328620997331260232606105243794146881491775442637965748804263284428944684378989575220932608754379345546305756649187229072243691322909460713698333545377681720823554702280500290735754994036062157542806828900138869918738244125965533133749995579365707397689276501040419904225749086462244111390594040441679145645502511748603118267682964315703686481326397846717031181947776488070046247908011793265850967857615435568719247678092471009187186635002057481961156433608555358756902077720221916596970149463512572132341374092604282392228661025687379958499177853087349720670942474888927073285376554150472928432186303974419420715572752466803868312638541727922541666594420667957221132366363181189811763487751930166698074424659874227162744880502285021541954681790095957657921570432394037093756946574268281145536163258840290349419682940346928331795780091675087519877725670646007329238235672490458895595350415693755339628677701787448841416546043918517264792480304912304426912198862702044040704900980413635638593417217124979370995153478781391950967372678043032359631688472423820512020374845395186373871347166430882224076996390001316122030620560097026225463735543330884171373722944861756447907671876224330853784930903939224017150541532080240202103072186041103621917388287811283460770279695044972390057089678412199527617746828680246221709403967660726701518870662469987939812754754881074549432882612525864546319926801142940926964122794878859155459062059997689161137590163145481528292986479685849927550705147505796163366791062114290406171622709173915586782082557117039048391598746068969160872461241741779679693527509427275384851218908718643281046550018433097445724370492509835917326899052927930994182082522035415093825454692242624286177649889543484020087040700114443525962553743176345798527509394281196587421644368440958038660429742585143784195337992829591017385315973771411425194716240693095795987581092067015674803960061946796534314412049911219261322742108763485369551741418991983079534044828944650031962004205529768931856146998723031779064716257274006900549619504852871621442768949930929168350501609197289014498015736443393074180712231926846460485596119050589120948726556212571221758136865222966256399254147616714792166652035741491620878279133061256966549991046595623836202562252128426600812962871401673291086051371805668104387111942665596241699234015067152459096047940827209415481765238159127858694136342328847501575613264233972686885642019640968136918347520927553146519717730122277429233823507614804005996439436481759597884468046059781934543880760079801681197129394591093893132660707289433751749944319536164535072198697886616728042904564454060059330262516611376795693913567158108270907479624471298903330677530170732089333060132362258970166232630400275474213187552862225334041569359994739234016658751881101948893761719356161288157896512873341757615243235575793876446512128813897132337922272171954332129407438704544674922586543185051617277195629244505540843820060105533019760853024062689464042614606862272299010675215260732349246783559832787388029047709969254951886817805439965000155172258161113125894915824515906021138901352983341699830229753393151565235200509463531683677533664899650265561925633088678100101634213178742865443815895015221827759154839146800995559937035012140576669023550988486173000239772302066253950643467639653150303738977497075150977906599704679071289505182755979918894900159865415600959893894344441404134912070633913061787214963229205207029716147262752432051298430507297669600258157453021261351412325061904073914591680642853163600180066954588509638559954502479108980474600818200254147164227439313005252241357450900472597566533164765358859599634854812737740753160067016734910396693620912333671632401649058115578597824130369387976996272639392402878434314252778462421512486486086452507308143071772522205377520774543383548684994888996126683111868055905140596939503486622484074610121318021802623367762129464425936442326011271715605962741218475219718572774391930156486702865032295287230062055375621131099884993877956591802147657114865657345586042906696602313681670353251215542368328542398783024697513643543905348071273404307277803646295812485748297414697864972475865654192868696452649358396567370143059656681564778204292520774592815768619738034360165725795456606010824040965370050673795694646025074474011408014199509874296739455657147324837377568572794454699752913305478454862006256308800629452840199053102033670471386369524234585638230146828268967584592650727103325742648373991479302182660899402165846723184708860766526620908755033854211657399176731166718472013125399711835600640010602089920977419899259502631057968241654369583982098921750707610207583561651006561615682008762181419327067290713235459143060243646104811863231141211592062809732478939497419919234248933920018795297063828572191425551626269165433527155294636048724547059783345826210164321321883064110642569040949984312780499889451308185006773312138422289267196801366579707986641464887136479591841270220073513405074742352392559778113278359797169885976019751054874522493902090023492799408661828610611730183974122394404707562724762909447674506819417539612110200275962391403094885775159983388494439578987736125409579911792487066373510646277191558928910774783710128862187900100571934146179155475118505120126466113068578158098288326157980907925128754136807860488473970822236061272914767076269093998442049262127445913329042747029103835419118691050339292568970363859228828117579417435617925986829138142171602649815779865162053303324808647402108643743449420447556204407870488905700323244437632596947940719261868207622994781411388721822719122274111091337677064880532012518090342181967966017105600098365486344235171556201938202310538818221238722793692665389728181320828287153650319096988510757348324238391103364844830320463001562701127087514955905059801037896654395359733212000252892590775877124328559483042266586524096574141720928613056252339534706314820029421026658419718072997813118860892907243768395952783061275463993719427321143188147255713633576465795014101731557571634340847081926627535330753489351315572938341153382212794401554576847220851050759045110639540160948682891931669529081792171382540108127100593278078236595943610772499223046171647705358565737974723804579411265661290786942755594331386456696241713059836970106546481790924977123958738907818354615946849675858389610478455515046386383001228226115634855206813859610963736074675546825738868500563509000521661017538437465317013689294069078824648630093042604271440592695676949319708549707968258193230852606725712527569758488210880028398416642322336930785562512742884698093357906703018880618174765082026496253647359643140501441889214964874970625108546236452736269530878178096093705707833661119794286769750704854960907299178718407157742741945714399388531966807904742319753220813439295024459040938620543541352621054863830929970771164564395304253470154621307545967025363536915268903684982541840062078262837232571958309874967424855216443193715142052323715035421771385528987788256332069066047723510206712252185066580795330306098189172729940243949931369891352611260538176278237437106813636869806375074320138241464798288784599947651776209020490786125289604047535773157742308876010156789097721221203864669859346145333285578619727300051905744357498909724268236009703814581470843111308672443008386743453147644577444038956042137233871736036714050730327693350189852445424714655218033905133808688623490024129988424239761912233454636960658033838710707937388066229982105355598987632334840401894696182689858457295423334383061963423234073055098810347577129143090001557207362658003454305793918278118857411063088022156886383900776269430981662836587526478248935155397924269506394373699147160376118676677012049072581057786619606050431465275381872730357871277076535002356217498350458870601191745168881881517288371176367085863276613268655586725847455411462773691720725639724860145100812488943325369855764797184560626607510125069895932681536107667145510366179298150485938224805711449173054772296114514334561360059820817034748027756770726449380911938574796201511691848684493527872052271316744493500229519575836020645684830963695418582146285471109293296359730777405262857412461523306257300037486848382911673928965551822898951754625712988438611778170230618999182851608595217376429739824631186323166539193442958088266822011556337041916123521885597617116334042414934777303487251453201427504992518211024713505904065698513711905143371988948352307320713346950086584583225697808150422349246899409950263529965307192052470777143468237934629555430377563700296568674406011193894447403435300763567871220523915261754162263685496663083606544169848148785137093299209680731532348992806391618917555072571689067963793218888485155378964573270131178510522098604780002084883861525637989318646182362025911376292483152749395829945453856581942157460265762293795566901696839278820363526413688103140494457826113182373266921624320571662418367738505921468860627436554997710453272251258013778337453732752060508509072844529179457711173722233332762994384178206013852108789980592469814448164550591978037344165271125143259114553867033711780557722856205292077197371779467981591134166189976666630384060240594782105654658149963754641866636281007919830203520325783029594987011073158696159398780775454385106995097744170001763110153715716065687563521784404188252047523715814397473343650087798107194745160532188302200441339985279904696759660910144012272972254211193135351027284144429686593481030919878210238612176063974243705749468829911915703572242471401902033022475288177766421596639545677191336445346758227090125130282958812448661468895544941663957792743268252496906483360495899908288567841698581182947410775958887104420703839243229544243383309270872284181964184236808040237191701558919499666921960703151213853266359410231164937010084641531697441860116209213579798406070259331580014075647892893621986780228927083232555931615955153745650349853740150295021083241078670421671464756076014150590574114827791163141260841888092572453038551932849519201148317805275329265017471066191669201255106084059576038963554519389465729729584846412926779883444903765818043503333292998447683749226883597063622761820358791697033517779214339500366102200892332203974441489738975712695978389860728108960281905278622097585963776177059713653616444060053481605046727959768163100133712119686300697900494243863233957899669200396912019835547827182104996095907654744325553771157116764481693552926886666138508191909913724420453792354898645428977243700143698989305283822680164506743808994621561547782234108308405238521477691261102091791049223921560956308577867427771904681536953614932885939127537449825512153996061430481716766618844262903472046104745771759785461505480045773654426870060208600660121294987844934630822791004387023302049547537559313705611446989819107831856012091315847979610382752487594345015435486053850060401059916694757877946004863592484357261884194519154093856296788447196397310136466808551786759370131881491397249882538841199796735101932700199533705865899034620199156770096968400090412742013487167200895090414976393581475143734517372519566476656574936181812402136955535130548420862251032862723777235071226530282713542041998414875266670511914407616416298435123239711622411041066148827898301041181342665838755325627759656323995501120414047060758209574127817271757866448673369072183462641983819109181532508684861060543470462056361361094971473956680785393859644433230660572364275122495978704959852743441310736588292072365334123651304735519904252404134452389956944560264655972544614681636186579686779671556048216589243810830698593953292886115796625035289232152070754153707943343611037121844838645321734704810180989455252620779961561381642833782649851815738737704445428306257224814715482427707328238340762302929298639868356813173350926060614268619149567056013843530962464104958895666830732213542804852624847958185329801742893589347895222080783693285498046930784585650694246759601416076217095708977848060728520708697784960297699752091317556347147579315851419046879665577935049827819346847911194849585905030207575076308101403362365764914182645260482689066155155139371340865486238241559378535419214676656490357207939295185519122724179696560579111910505148348888278551695399377334990123794408376180906359981315615825855302087967138697352849304398393968101935017946977509935211778876182833978153519314761372852237605813204957685439644328893243605765403386503444328686317198947489093976761739307463067113767722713269046226064924307248901905182654258651412829032808126324645129171158042959629913221461983827968537595257816396669007354288467834112547820171196003442607583557254502211214575071775939957749784054945596958181769717626884185482265414203973099217915444218624499603803212984761104535142920748341164022213201805173321525217633855789171816426756968026655761595071214888290643921839634193245670332851073850755577322620577933665572451217093130012363704097288482884316733711486709775308910465533624250286307177718862138563337858039466854214096115637003639596926241634961585860115371797074601825781148066797431867820637463221883043184894764210875682070734029929097387976882792568508583364349127174158248583584972761778439880633602428215640774628008844134669517798365251124266583918686266595648735407599175533410634243515910532227541781606010531678723976107797600245627242767285744934093216233988718894506447625349195686609211448159671316073898494041930878753820016502106627361233056426373642007116102662345134668719644390160986949904983068470252969980086890871443071833836856586453168474151082880690893624603094029177617497035262835630200098654839339313357368606047392547427805416395506654160077048416849361819656253520552095909692474597633288702000081108158827982555404191664189672905604586110776396546826983839908809998230897884949477259863995237285430087773223123547370991450654905994020712795752620979193329164908028848042686038116705906220178774870779318940914033584683944023872868795540047435733562698281322379088536201677394601399444771817837491213511153864910077858742640216450906226955392262931935673977464123666320803584198034028860314940823125882021219593581816636758779983162305396470076735410898635176495273658317930292410180611026432490101601776779649808790625542404010298569962280824589580869001876020827637828138973928344471419403234764980460888377790487562522527305637362571222068302520985540273365079876819620638957475737469199108663886941345434803245654074209077847131827869976406124377650012349453491379348470170016707913898514542605869830872145400221080447347152868264533795273769803647140575424546303008810226348311575982041384610702215867746664829242351550200963557692174001810890976456282307033009505335694685064511264919422562163308519690139574587439647726346399907371251192455341605862273590795300611993058127974944147660902563911821258592829757091038429035432875535100811020917279393225355715606468474515153627594172620576979097638174997271656405157960525159410159318095185418343483482224428310344008786587703829145746084375996546286752113834968155417726630079127011059810871862345990480669113415823443197076758726167331429025229611009757403981346252869690182527751175621020773866880090366932361172905938874873163718098929965704464563669816140936323937922312798641160465601474475473120382462922953083649765730008432925544204365424876425845416799598865997138398451784601474248131467138693415826161447456057457308593953916318677437322434368816060143870644630469462270114982726289113996475844957281196306960032895190811562110120112529208759388109567359674572017391149131362050282417819247833965039289214569173432385154997735988080174783294827375181407058006331497881742371901387718727743741320547147545419208000587266980178579664534791483682772071045573019979425041428681508700683211564941681992622745599273501704306001067719115800238447996111502333429402340199529647616115368731287952131580759964115065134153307604779230353005202418864386241092824450506710450151933807229555463527198013845445942044408179877621825318826346339460478987117452361485709694161195664478631675153744873664489876038279135312477465034633353688966334800640297532298558873129243584782196683130619794587523301325447844589318608297540920924746372106897603297059696547210150206043002109293731301194787808524755158932909392329737087662062315363687837984060924070694455101299360850592360387836020097835327886311214966997337649272584606992339998604567164172397638031867352433145828017251664961291979758421009362695995690702515157180790532473450170655170630126772042603052019521933216170385091748469192549718733901996023189856285272490976194933178778823551085549601760515866344993123931053049777912633358880163657400828403661286661493706622300098980346307807284272411500117165415832476562721325157983418398164670806520325487426226188698625975632305200363667594917103411029244523692316710993553200811667728828905073812563285751630056063173575516440251711788816103705684062152073399320463897622439664201809445834504905291513603212210399930329351888690901171782344527655467348866243208732421051358231072887353283711170186232124513993143251176774369383117906120163185724668624931624647840743469585018691219793296555246083412070448062073930628899094312617458521753294909727440377072670264708603751568788252883955272804517617978576845976206979153802970319630817133409421208707507543045099790106374190074947625430272541222646703642690446957870961775440206208398741653051582017682702843391051203011060078958802315418344863987466687759809060675759027402786925171274728375258161724352149298261604589928332475365889838587323694077319024502198274763610935545146675438150621587802364892294839969262884431808197188499891043078708906773074494368216610481262763874412719635054645392944928908414775405083018779557751502783786579754433821430354469842825615076762864953862310265854507964707544869782534734974124552094216796945475029795121839079942633663639126251599065900539119501874128373323361374747356550037742990838178214439267652434698763402031795182390325743061513589198700134477586811826986964216329857265220647729014674962155687080435054335768107083967510931506840951098028556953429569626969051638793507991130546047794120776509623777405209429826648206509046761987650961908941931658359923696641889963149599637169524060322344982334302529749711394710142733486686859264578125228752698770217989848335011783222380621844728151387240885691170024696918201683500796932082838686395333026184425317196477698878385204875317833393398210288295879762779327468829747475254612492783250147824997328964470947208297033020222955020414671257345287268024325575923398800460056359902894066742368342418005990419940916010779297521185208423747817789518966620727554678487426329286360621944723211216313155355322244669680251023907302254387685821873745217569920769029348758456350143887195428668609190441962582380641436115649886356492882514123778756433406572034349291251259091328251985869530159051163912891334320725880535397745644903274399372910704777171128732044114784410524465925654033599637561917565396548654841863394013964898304062166023366949996188610617760841711595187949493597460907911283035435628937298666565388005984598384772626453829548819155804081354656037514065083759565952720827554327486139932603101368815561898907608483737307920075232629294085971566382586719470887156765085983333781721047174598688376511154103106935250108181355386710129829444155613586943109464247009873092026866596491609866158341976203965664002827139598438412806835131969764798928924279068220482205038401954389312124515412341497604999339020058935038366607928277277284198265012909177778236722206949551859509563395286942478159966739403806798630154461787675590538467866606394211185207895875726985212668835332747889739306854992662376732598637003607271720551248525924082251623918028879707942838721481933469666981627211591032130138494311384665621343813620339349239963332811577109734362799232804149889279406864775214126002122354819681532812783313487062234924757903301825299306205579682167161439504939552744716322889299883230627159609222229274634555973494932004991126423372864586847466058086365519638322438419429540202081694320772115440747623966200167377530954637767507113677941941408211528112266062423040145410477601392403402748885230989014045613641932965999124842028487055145820863735299349167955647959862716417507495942539423482735935995530038999060525145150029571247441831087018972171832985762924608604348150140324534906801702872678189519021733567434677798137594443948491759036876374173138078256358134823358762164010574330423004914293782684774108245891678741941262353143265851632208938598801595989924002464395370765026339957189171887062649428487037322492274296961955999326448637186298719395410503061917844222325317653638725037800420810413416387345383636205917780071833906127210080294732241320951874678433644837009256556407184941296702914528373054106872571119339307688455155708596425717799028887648023065141053020783659288786849621960479494600823707990640564333314771670990779560862568612664156590147462575159843452893263737378510959796877067043292208877138793491530536297682025819138883225627920760949838499592802946137686348601403863486528624751690892270133258665307278380204494010190122912445910859351047030255846159655792793220467816687737133134357922345056083824738333098574805290843462311479770827183642791208743214135334770159049993039631863348760357191780035143297465265834392670666559291979214233641116078623096898165054286532025086898364655298776632913229604577461617627498637328262729485022292633239475897993597355576620425159488108880763931134112451090346134125079729258297703153622845938650301375834875091057137459956114916838972184141443621970021369467280038967866652117479931017072590051491960104483466836826481351198909103347138899432256538414740797094184508514531641669787049194805786061678095691864090355923288447032283824264565133145081322547051559010846986648793111330071652222293015427980248970171265526247254840315005146281709872062645552232276191906572229058949425252153394821340284215381207489291688230463343701316009479906585279803253942286977037319479787056650495934971801846298408620451982987590582098076098136541589026511517834939802004764164075285893682117106668748604567748507096792656996662315386696238293616614226530191842819873814697676075757251828428917550342941287523553198234730241225687721933633683227846533200340487356802340015035185447101477154479235156115220668104377440894856514125223189917943500966609452578419585461060669625828607289927655491174419202602111339872648549546037420573496282722756861042083564552157976647596310888072271795542290981145611697508489092514766961441820616490812334323411672187844190021516344497217398176943970375125872387100044050962513016645488734468913674796455705731474508085684992357824610860349967354724148674150632862966236052648552640203170463237175076264122786732596805433898069851230505219424850396832035879443845155464651878183726620269089385512919657940999400303603183301801691551781063231930195236253906308417919787759766598209143326857135344134545363634931735627169927489543907183862207912532957571300466201682730849965415130086581532043506798267999920546910454423596969464847953959743866369717933791611137896014925930811745728133019568307375461207341623495677047912539759393862417048828088048500043728533478900906181276115568020086646925649628791133928513000105845653747799866233775612711332851985674269007416401048155193337322402002276515514358114977508356697317540598656860468245982045529694332388540997093350762115545957821893036197311367055073156145762955862115987208173009297835386040871308349834626897595087076774630434010372623249228029345488766425609413718530284190969289050336157677273242765579448774896960854586421453198639396522739093923547530162519870235831016039822278397075182942145335182037284728504683542514052872577622915659381718432245422906518501978922836636903959409206799839591972814706217935535504670968020520585016581681986878734413106354219882832196998095033688902397319335867663861811518484716834658876011273288033398256915056114613387263626516913416269623567428177015951585822681783805328482595195122716744293145597980157188283689242711418143314036061996735740101380429841574000577950036772029726329757892403145064765466336801127428970452164700181966622647443048534288217275017546693546589984672659472834558630689771219965447211499765978515189545030778469953651015365415803354141842333862242518335719078927777568641805352382174241244974926612818130894968340235964027267440785054175571942599710173534473646643912811717247895812197803646310903138785915265592697349042731884191412444853723531958166499681469104692144841336411602024201192652323342810481430264684934625576876758351918686408030017475616669995238630346602653325564596783330949969284832272526230568006178787906144258499390122417357036351632378918192451291439032385461032550525601627384615927484009471328141974513854608657043299352408840438962421398082727523554164271926658257931262802914085454648119018756559342874368378854432140643899632674978260021840580850174654053257100326980950818527465370384490579078194684968846260491524755245281898627532424211030158894446093893822071538383627399385370175536562837915516706850394219208414993653444433141940894745947814921366581485341684253683405513203355601912337923891903070751741095229203488394235797192501133813281305262868022689218993432532217349028423501337649476768103572991449347409884571800944562269751635253634914685700438192191173971036376642281472672015776933363144509197042483715105871115890563902050651240138874330036470366092748511776924258216809456545614937942411501172240870891603869803449012968168944422109727473496473560418300631861285925736737346526204933943508544203585954937115769328735468285524555095685938333638332997900746045782736000537939972136304204159024038032334548882094479925857859542052906733839727825405481831341188794717979927937205078650829148343533801665164086534705920793212854081016504233988417933358492702365146995408212672728524951174637302197035751638532803526515234395786381950561891562788110938914072297671269034367662591435722861357151449941798863517988230006796275483951080582868029871524061056496356234331258202095009824907999825679628856843084067584629013283851298961380053869817877856870172748075346104461736056975011443896170232418879295512602002440816087996706316819310304668188146684411593596667442709056549751353125709813459102246400533707629438056884778817418816128841595345067704349523459123418971308575800542698810723264033259039863254060637709475416600378924442568489361433047890925992438317639780429139200307939674195229177757766646933502422998564417522555755207643738527815154770730898431383369749919856112532190096966050080228979600272843351558966709164043930007640231136811751586261657859143142427082786290905511446729615865959541851445571585551116704278241569946975539386249665305316774144873295810559623253632414630192183444716921847523608431648974260485750284717205702871109937676518986182810947753440309476321526763156201621456278054015670251091543762901982970579333065965534746350792576782602736098167060641640036719862909865290555356581029132111582969625190322664274686835070980033813012847980787283911339451831995540921904370342018147699349199077324198508741657543660248142105425332274934718669061135061178221913436844883445713407248580617324752986881341905048025715106577644881188360750962571855478727806536637095783519707879376047662898522436964745588214035104864758175990596995687256445405979684148203543374960812494262959366124027978650508587277159872884337616874765835294377397363165108911770173526502991642010947339631164796812517063561218586427408174737714186358294481072364558842257128951475627718963100136675195904929356915336499513255771551269630857743907554858071658731602158342685312983249343363555232405049966456037994195564714246000151751134902423152049368419701567958326549977028750385620029936734689011188098812331956451225713243700019663479015451081074309022623580541368656716520512589442554357911834455148093674929400404700284407938717122230192684214823889619968086134616330961053287984981613499727147653269444704242829580863792880121172880924020057142633741976909203777847093159382666962947895613036719870903067340502045111531465443005707881612435587265570658991271236379998737158490716949989919996047221842322200300565590362276035826092492919529236540749733413775607036411121450241167432136047496447827267649474181939381508371494966781483242762109629606937023367655991176307423585792525355847274824530004356936993519154106962248029375661907865635873098628364048925853466947516111380117146784307037279971671438582879011079193670543513660762425257453674510794656020765633192599167053246536410171621361110566527634191267078132921527975604892537728596732461265154650465518910331591311147994897621158317331082759529095054143345512379084057877408818656507702754585102813297232614962211337726792441183330041776105008198256767229483325141878491025838620974055114237120300200753367558759684966622851253086101148007977317829838391456173660776441494313626812397421084260105727622076882097709655371519557818275635125020835386579999565403906627413918357891826581166453512613911182669784025632372968858988191647840530572074096932216602722814304105143032500446034707184263022192623007380212965781122332586938445168488095012549730665029199247524836730265440167101991111852149175449463048627377652256873189875182712014488737031298482174493608504536582135487977617927350385188115418559638387417469886717260060568277126099934342042694925960658420676810161089166326933913568474689642588816939947742079431290175226558404472351508940911729403443015510791418338865150215775659019461237129535506622653114732065080700074111037355119871871705132197664464938191995138493447633688629474511436204849921252206896705439455515499286965376538071673012316098688460062673720779903377909726050428295531567986235749631474086085569254272940458878545459554330698730226595255105227414283366102921751458974358525553926974697228673614696773341696465571436645624446453369571327792175787518567905027027579350231505492110551026346326871338224956782416548024823092656334848241021326424166504205748958637092876886626221757993090441171078338906470995275036643625873116516233272672509606841625131527944302235170338490384829249498393534204056217268269156540647646205356144882989165177972767734889250646770596192034748554206450127501916755979409778466740876805837565270007362861759855830785809754430825455536455732412868017629301470497370083426414348438555449386932591010650558425284034925598244672859883935245982652779933142495866279985499721040234420581521559429683297680446763699692316170059224055476971546263843606744720611036743642379305420777035748214546337194415031336754443721474521273993251975794422660223512983549399536873863832451382768350873295955591641563263862869003969826523180399638862497351942030968619485054889355868057719683232994847646794515102608225518676995255060650814129300334325870759632762071428404979837981328241317158413588166671461473217225228032422231957041680835461255909085423518011120832587327372560264644933788778814000446947870250701002878857262594536572894280841049946971194082535380741898205880678140883528963252457408815234187901892712874179477148971841303997993757564771491955512607006608031571239260362784423540335718501937839704056370601416126614108904663722631878206833679846204195379365320938537524348962856664302926665983192063960286398561965103805903256111814332385537330763002401330403979664174955437553886265818244038755611049984791148282648273124612467348556641768549775269061966953751819497922455521240561894212635981527614190244263985931788410388998573527867904987661936056219674758807792523112141808898305284528258134372182619841499702100579777431567776730229029450164407321926766156627582036888687036155858014738004979295077004007681575763532556965984504035501442920896351263387871819346027537676827422766274073195990075527906682277236278303616634520734989624817797793784241536444990049689573510651925724546668470051369093364052125147182037149628433753007936415616777387085440637267644418032685926212786400381496183773739834113971299532759728915498665647977792520921781780335469056831256974706044577741732257245392417246189128988798497586106759885890043803286676941606936833384124602695472890816421014810603321540153175743572590020715865586677087728233035729943148261523907008217814509085350264843545777636839832296852339264095984614394587771075988120633287678505503063148664288683836611171725146446588311958228032462670096588727895640715253848144717523298906610025947130936015373269334338610438969815057772297488140577759585915805078219395151184414658990029556398166548625597134640963915334624558081054786135668542495074990933716257591065611825727083018544472780189827578551956951293908569785233327535588524544439140241481604791387133773358099967527538232461909397753355052853011176256611630309417893575857927541931566390897754158280685376311647800586871649242966306413201936048185417205185962226771958807786118120070549879275823828625135225720008164404323465637592119665102701019097775374964151627076395781179858028810126965157477269442104554313913906049116321258506446014271651062731927602029174545276646219999546199203664012399830828110112107025063089176048060135852002458735010813717859380354177649048948073755225145525612293439047655327511402665196411070180201737253541428158093300846926239811860239207000744676558357242666969299965494716648257786645536128432644830321552518468048688246824995696775118805317842384052025949935225289909289990512922890925541616977653008096442989687561260638344835573812902574029157158821875120150664903781324810162381167588219232209054696111970436779088529837876835372441600048108425824922223374561178220624747075882471180223632610198443624331140988828164463423183594812969436817967905129776880794926521252242045252603070166732420779064939494581215055775580028621399127306341079455488854489881472641966868478706302210845316499577827845258323304597249760245059696230236240136170337202851232407727992292489020468159022604580794731783358200876400665864112070567496290753921754667964227500956345873116977608756539963240950161504153021910037559218760304887635153354081909924720319338037219515609418944247668933824476995645776143040443144045789225894497826545664701740206715043207620863487298241670136452235840314487372599321321643797377685542762304150808665691652983667320026418243129283463668673496118014563984198740394360194442757368303573269206645631386078114081833727524412939439605264717028199472199883319468983627226147621832900688653709986300498366929229688003659581885149013522312312258776941033315031825834606878731218222737389688795868614777834686413901996629238190829382166508220001297834883682061932457032637471521526862362142288503544832393130427223889836075472644438516704630665725390467006602063681285399955869372036068981061891282167035715115873314787340606062955073376604699309180917155378338367696403070224580927788394320627076062681262985744226291315054362378499315236999052363344660220835700460174525124681805628481703358282974148985445483585371147953291783898437481872386683545167711368057305795002882557865050794537830716634010970599287229221730032957001429317030934217397284473262767660591926494164284100370124784315667499407132456306096295761508454344494451791464977985244597572490528052312181146974622344839908141364735224885720876340561201871144761480264215448914207487071918038484402769793367951151725254862614568530771763687221172093679432901011824017769450410343747159291082577228009454280338707636571634256415969187596977054481482555093967545794468553513606753064872270568728184934303741370622111585606484398048346363743928770449447675404156565312049592643284318903497390710398195188159699262807674376947565275215184955149258635633409952705563825382908296314951299724033708915583601165721917231043254867123022686262169509506946346236143242240366935901856857414124046683723940454423093172758495193309379900766605253121342318217145094202151121126231014195400707512734459704242397905527454843552590670783832854741533706139023087687110386871155728254044898397945919943676035316060802103186681863271081623056647975085910329294965682188138170585314880417450506256895337002090200470348669936684740407263342292696398905416292537989077282670233936633672695428527774993462180228549997832940760861910167154533590260389359216166610006548835044210775440130165267815294392490284084169944955582755607768774735732217959454345414084507242056919576018132833537459348312241248216281062709024180133999128981158348120804334203479025619973889687939770241892079765748102919742713869133062933199700088768427448910443069097765303799951797582645441560211018860097375966203031632378401991288216629989845119023556737799676496975283134736977590184987596494503849222201498235722137302114082274697643566973261550968805704226702261214006376621275166113241083265937978593502548803174070151617693706737833271732609393263494752903031594013111337546713604731214601834820551299584501684957737074979998781141446990426139342751520772600814116617677727293107845212962098175190557178984728043257317750014663312564858135401649810165904226933679044234380645842728222919313830882137571710863199713649589438225740285130865557796696432750391764868773543545091283264918691089180251657566208811612164602586241153814018112348051809757446724782776894318458369947538759886475472705943592241367289454367011687408093503741895624450463767470590670749195375695164445789646619131295185080021215257882213555666717149220372961618628582449881872898269872688676389553970427291384205138064238640200138365920977991715827502330817380951047213442373828516198139181318021400225914186901969785047077159419477864235177960387420800745348604695311123292109142298196109826344254317343335078544883953700425749012744286549722528601937268633301940669618678416930850579678441647518429994231740306172503913836926473707599892783604351383219354829106249322429314414793811946324159399871124914061103529034881174505912455092704781785400266262577270961596047302717157105857521169374507778117683254513767591220550637954694565738210950565310249222231722732443830404266778916555402384667216986132879403361810540989362337382283171465942164817547953864628735069189753776546679226290949794822243059286742594601288867055454215304940593746939000977881149383007492515812730336013565772736174755314559208850008908176735918813758315323561325658139913376404631733781270532568681774329341922705015185712685850277387689603073651828237040194348222843371100920350120773945377488324109272842404857007285925980631025577748247230429173915102777166623525197149490311688527326546698019707259902760723661031399372533656011803316259184834755933843719023719691256925385720070830265029002422528171759014832267861464226612102450518469880486376231779238677897242426121970976090504851248198854255200248336935167249865070087893336626077341840360605468571900660419806588043071166497023000897464500857134157988098486413354420627852013489750809464076205859142313834236240697867918017365485757821637954910545055157973645015193297898811389324172049758679338427938316091032829461490349263948674111025164591258533546716768926848642925490514397545519531720228386701152545776533743511696990468701759107552931939574843837505144564833230613737751362450729981585551796832384205289176474787936766711744567696803674728579095275828823317708145188339326535334779315312724668084084294740505440469356270182547114756316457287499860432642424323541590792080446581682480159363846088442807080120399948365963065286772218713781355125560601243360697707195481353997446635635910635263131682875378528589477299907002048936779135205768580734858478955240423760925257724290045700864447286981801273394974312722729132409824574235481812183303073412541920628291393952659567997543722542131290082892210699351112711284103188254693083077349410392666670765904111450439252693012066737086684388860564516231894866202098605601687322952281703144534008236329902966001649418029826215242415052568921942248865989202645569495892995848925097909832332758849843959141492753337350665325250798115242473289369779916418285437844571108926199310438979342556922222527842546674750748235777605738799461431757581763597293028799209625593397016212917161913601076405265300310305954281556639730654470032458479573976600202897952119147109610108104991033476754780088543759642066138683799916886080656091893997899929863146765856385183610664490458730098819588640400634960849548013405524932441341680073378053926152139785024702068403967710058615119172022518384663733498423412796581589745775779365279011689338444690442368319897874305930855997356316234542278102373375034682042116681789082121421306395972815103862760451938444458259113717734563688140870700338258133702294011360997319251219535976649736551369825011186953519300409306571861816358912080767687712774777713522537152823869285694413330927566301373880534081962245226794912108217050652705795857857811716691071829897375515459662860420690131690879512046686122604764446403308517463523271358282190085246983541738232092624405703337435639168835417898898306659632582240774346511203373714162140830244579564738264802977690124363318927383152450571395364904644608838139080142712655295801026941432301855030746321724340207203785385023118533947750984942707107648818806846712601246420588273306479238095114271028258978279263546339830136777451916015788503367948686929518450210483960945915391410222908894810652934391206007343463008294755289058355454210530261831131226753220160722807799051263049506779193658501659281256296254116260783277954605514085222720282534628251232877981362075088244995094743304345804264467452663171602436266053923139168630035057799936134424428206428945110427289122929787498441149438519393565835554954746899180329400224112845369083461602395843891929908402504678819122997282611061103757236170938877454424784848794646402735561759718175604175222659239211180241338977731532594151359960055536156705252583112189173138892033830177142571176425411479723519327115317896546382387768558361571691172900901049558093119428239571430308121380324022047824910610410750392766036235121189195268308103502206456019827268105599038350997689908006134684665039266708835725721638631728932279692563109231214560940280888733060958511410979605285402691723588370442200861924628083703024691197549150178546968664438183518577073510996825296876778054289312048852512626937219159364436874119609741997455893499839338793179718716820907993940958344617969847609804442172299170908183478343933614632789492076827727384934533596722619084635769166063162364111214913050734448957644554397553278771609711559996689037559415367994965953455522131782123968116839907963221578827930630160800552221649040529069636079186190075356165124276368397705198803968957321541054398609012667719091936884527088129633304854091915344877969534083728189415853324965778304928663890394778203278102685294894476982081174980426062513398283175993447596421602982260483640353857124189884700755137596544398908215460640064583507882618053298066416585543595710549332292666868957266257423047022747361601392632497722439728623975191105270404034247459566820051951179299869660701966001831442554401830440100126946055222021565236729682357098071353544879784123536681232042265537788770700729573240440979943948697640560088235815336468173362121190027156212696806349419530180313705645346652421074024898521638613140431603306792403732136068933565297993822181851021824774671846184401511912274291615791246039687683440833410502162444500156032332919869653190222168827472555545734350545195094110520579748115383391291847271595707009918840368956119269469794429748622556021573160073172072395298672145882545527222452620851257971775787582811146900189852521328859983543655498304562549869080210897843757964688186994614282956536186749750019381543362565969399301907154477970776301742365801558311761246146590185254355610243408557515729730489705447661082128093556560085479826133620284759994089468125688537608052907549136638366939259961986799101973999847611047361079301385844385885566730599858065578868940783393020400117838957527640804269870462682293200684002964931646587885805343652483741696802074547223799755384570624344093114393312947410780686521023710688926981944548632272592900937431236057711313935740107428300341396041810958532822499047802075049513215046376621915408629201893392291760883893717334716898008935433004686282843860686088615756640018920169029533114767594405194102359329796550652790554104353953303463811491613972691077976840898249150131878657541705726064498308647619030789245561881413024223463086836066505837137932814155188859744226707505300278687199353354969750912641774123218479003499957076720661974444478064233464323198891544407708517806391899216373637740254177789158733741225583693194693884018744593924698848401073172557030973479053716007610368575578264857440685891055656445168530424393519832032446604481288756009104482568833506292016009125219553445635807638323190448847829673082484379444704428232501492929171278959389197231548954245013405691075321356118420608976631413847704068405100085118379376428285155495420191944038344044682973100113284485566610678419364319723904246641049104465229775425803950593552607942039352533861432182097083376937634169858488300139016122339726393142486140047916166534195786670433728500822300274486778660548604676364944457118618631806022808228190210722133812039654463176916442435240368412546996661343372201664708689734600387124018938386015198101229793302557140484578826079000461350820356064012107572290167124011549656451419702657913593949761161103216606054453035766128655755938658402736999987636717468012977231481349444478679958770951923753699865437338380672869778552477526750969483772292683502837865918210481423928473232887811004868568468620508246585706254700724860287074404328852429631651044074943137586733871912343876635268831859986328529565066295189562879171935555737838142683913927487654302925831432589200065157576696666552143291788303010220560477267404417388476480067976209295144419607612611209017968193808434743240596269879707796571437470154396466575520325149798088618838148149996402344933414940526638400369816520329568192849006263046474663559359830022277662023092931750405016713728019762138118480702902644535374081370633058348497347210075768806842549530802386581457011337266108076251596042042417177219254284298204109731303329784413601891564012626161543675760402903539679321947892194915332650768406283435519883829032173189270774183834786256800518002470895436177824852500162508400578656878472117945560899224721341316211959675008649302742487360374463070765879522052478915314234561353122623165072504973218744320876526932311676580325496846022165493543663465160269442088300864114619207585989466246685462917652640533566157025511093965256704968929310553128498064303897231871577380026308378013307744119633503257591002224702108054002789097267325841389926076185293900809470582682336916570311557435682313176362445603148791757909795081108362110670505501599328844273919784438083178447837519615769036248721058655545689164839594832186144134675724430977444840220000321765329950011494278721892707437726449674313170614267709698222550257334565976000718556292825736248755582741369104866777597562208276495750019095592290164414699120764970792772143015152284635181970918155329210195077179139901251920724804646921262535098844300091783959752528066225261508736415882325591791238082454349801078948009172581053171178543812844793333037257108985419183577703170763964356774270139310579169348093327591641190544818555427292963614689947481158418226549592715481255130950070896646872456927699346028169434469835458201186944487557393373279268097835756144507744117758805413045477137721630783862378228666867047987124749509633399022978672618668047788985452866858592007010725383727903529296796313396904757839566049590644188353767891701322065003622123060229643345686202267958009807973956317353928520276757307586770133989486136917527039178882486412875694891667630609889750987407694116664661242033187254324216240985514952841885269937310162253508396102257369540597326156985226185323687020010493708486780699632321744051161372314555023944819228910009428334589977689830539566891743140034829350839076396275280927561374811076154979870901880840081776109575599082705942940942779585415018985080529580272124307238978245298403526496291744160516455835942414692201905540397178313703879056944531245282284700855209397533632010065129976808734440750358049302117666154236896159282000238439064541613808941701382900470322590304261601068073450237221616191446187227991726592516772243919616875351315128630754313487351916491479541237933148853344612969746952822219591634328938628031455650641564985820878980991830687305083536294345326526206029132972332132651736077162919719247990094229455195811677777538635355425198444133055188986774102512540972987893838031304960675839001404252756076107411873479434381937451253427008454733783091566241010149220980047735200706850162606868284011535343477800232980472505694507981913900991654206286904738286880590946644376290350063362682254738515114053263516716251370662770469857721653336598044528067819303399277908573477137228959078014093101537280282746753650930590310721437293789103937225670110218704536933010459029729481325312252644358665650030306126156793743299501020841804363599493532500417628344407608956277312537533188787531397617706101739796682253264265598111707991699875468212864799441686276591081672120433331366739913031711173738615863205280621244557180631416981314420316016509437367179954105463287347597765486061037634818451028935146821939514267224354151235387973273971849095385170681136813251223146958695211136033856118681551852411794456736715957154424860902552289702515120927276406182534454961883260945012526026555634097805299621069570512765584795389645199046742110513271332035021451958890998505843455094381002280413968395033373029561544830582547588965094777800071774684074290640826638888703629122442461044964424892455957313803166653847936912505107908423745558518423783882889221580988744521968124232093263209191267285081839274610499793470539742976066050891940549912525938433257425406187650914034808668110975368238800272702376436184494236791847988972156639115730156073258638118067196443680597697220904150619660107383847214688734625832643530117295763094478576668652121723683988360147039043972576793325037749373540040618467711813015465705899202181823923089499591438606499570948486223814906640709946744233482093003804921847138075700023945349388849268177813052898485933687787754343458842489835080294035880834568473209356664557562886851032175302579782739446769449916781086024258186474646247945380160424110347476167603617208640081341464529113956251962703977422215428776051951143157132787151508139148498100972438218468721522981251370184937347700943152763685698844550853433415833973392143409241639944046971139483126430578959558931509525757675070196866710998525990480008303729855617823389228192182357466300516277767679113952083502657370246551624887298060242548103881092742695780443875964805005882200558066028598159921049950143446110626896697883845698440120032546420649668530421479438886184335565847890040708908215501267725922845926316038390973277026099789175551848377664939056513303213755971437787097893623946829598775477415515739247071740377830714422930984945943596854217556010697491348692366387711820361351178781516025863898808077810150898385036322758911544410697031563157552427814397732689043248625017210073301326663290696998985516084859101289293935591841467546726312234507657214328037773796106377657811816186453229860295355507447783508822874034594661906545671310167847819926074552650589676442023673179617358021296473783917156294642144397761803555799044310045036140742990293649169767290010953048757547622609212314358813654006015861619381652564274199272722397960899569417212464949086408746104016767275310714444736010919314269747984939775860341117707765187206386566799727671363649860610911175265297157968464937108868142998046472612227232482535346226701631299658809301276273086294407866215579888310962605333579173330060823871523953234438228510538691054354944491162621252920833255385823856635983303693203648142279457220852959818506094281588901976900353320683836577228736800549509458667888096363061434228312942526011143204098012137448124356673909720833427808741959557424833130090786322823667030259482717902310836820680869680644464691707295720026325637852679021173904294570900214419211820327869894710577015108537005870327581949828731553687656607027074763554309676520275341061949337388606108941910288864134592529907728854559344904228906244014988748366419517274167579523772632878173295634383779127313487582750922786839132215123699882767881952309038542556129560857503827053538528822296096456719011628080694236534674076239400028840038962973944603241323656719538057539603981544646629082612849483809829599593352935454948983347726007583938069434942592445054802123429551985528648487938720831252148282760316897185427506727091418156094561251396408550074405194796099669663517585077115044441797585126068396473984104976237985275672320320077951738806035330118590969753403167797838100587867816039843634968340388583028001731239555617522875763400429485097850103814733636693149836882951363778609828975358056250270520682086594890596810919420329110741247287292716809447958013097190252054392292407464450207150383866899254459591234551430657683901384199746271159098906353606342902714153282468673605669280863559089623826627170142803750968063994104440602694784935803842075477052547270053456454177719897258005908842695443673960120275404543323564886338282285940253668835856271695984147010412628694701034404729674364812596670704984861741994190681430122588324042303792488015002352096305578119898699133259695715497132909397814020495804631118131353212418643719827076460593647997390618534063379879840975424702692417168033290193792733694531789483462879970482890743147408116353618733506360657031449492497333875418515851701771380764576611666022565247102146936036796990994513642238099010315028624823429549767599956251081143713670415585340826017002742236357153114059008957786020960810164420325199852372196904665391672177448924676614778372944810032649347074202016475150091192160487581911560276124444034877102191195051025283123935058118727208792345592811697125392879900977396498650982166720979086173735598067746965009071825446195302809036872173856748692759432149465076243190195593902007456336976741687814396641111994142510197913466669066849440734628236744923262606840250813998877611913924520279500776585864478800105081448369361116959658346840638213240056734066035477504922603951476373976950310936746713247353788213081598961742073251499048079799949013864868865544541017932883372608697538995658611865981031697933502830515989649201918644921434360145313462728104933869566685642427954103222423919326097698686940216976186742920029772075608949715264718727552824299582903519187783305026558182183077815898643415028173996789519485335108763377142224725405864568756355475732201356198568477727716537668044234448861693443542203483552055743893720163645593369462927920839775211993515867185544649415254381838832255726563124122756361250618438396768442015364676762310586637626033410168949835585138758405231070873126569721015905482839899146478925833165902177226143832018282954431236427720512131352922535491909469161091808710242866919688234872803184860774788487959920376520129611027673178859586775013848665315682657112968080664185400029649158890574668861410574077488234902103513643298584359179273693627925270603293986924661219810929250328134325293765801417990244889392066125253639453944017830683869817667653307218669157741783647676051510886741036951078247267049122672052802979880388592738323339572503727664277866090065885989251765349154166720369379305212542117893036195071960013639924439660984655798645943962346995464561834273405620584384796837452202430318225510096716167958856508995757000655677933078857271391880592932927979214986386589553452244505679149497183842610100351518955117137231547286694453112841293315557667907983137181507161556827864262858779968995074480234452601010307920233684026596335974563450639800845970868633266589226248426984909520740800623256613664291301059652333719342852524901926627304527414955006191702534624786676397990273741907363911538544587046236216464095069601059690627874990437228246240429954975251121592141186215083988172011586412061228588770303847902438752202196482808863357713080633815571322018872853482173989329291465602551306893710900087342468872346607117177644057486902440041006003242117155033437220664965477100438524208908302563592480421373083196772640050245874579290783449371165624532151757660317305168819153749518236083614136810665414558796050996700451889297990170768379644674746474817987714875593229324014638490350995099883948117343027948839752543746876856761522505096926944173216680054126256499981663336427812588715499442649752841142617842103772236310530202559368986421040748266067103787634163845716473610596703804249020316173996972118474406297792477654793833900847908671821910927579910281879545225772684006852959076684882301177685410321523030097687860403679588801619688219216570798829616887182104540676850047358329685262912158681946760639492286201412084182734113880903198558612059341583733898870842454380125637570124766193244344805837098910676011600220462431462732068652373398612544784994841248757425248948672400257723435212917032089893797661294263112406445569498046803540132372986428651327766416732392690377125926282754076082265463061749877690830601826288008402626792191397959053773444265077071181440365160727258872415507068845303196283802279876853966384816280441573975022689103681893973083190751264754278708729523828964622416792409953570112470837554254326647120291669848944729147818980517138785490121004515132272773297843954440189862175226375287161330297840092726685983258805158326409081467113165349945469148097468470278930162634027888553928603971721706884737583667456874257271914531004859506908753898334095282357621745909828398243749124481994024035994344650034859725875551919241780934132142066095985017504022139154475578789315689059314753995950430609389933408831212838377799502712185668556002412619393865749986326530981292947572490255944151009520377997596678030195128609902577316396667344790270959892294116262024437638776230545669735879669946261396668800646224272211998823854433258646969698435809096605290899829146221382770879664286350390111290030739820501340440443063649989042828551541126188423796368995550991657380420036283187733514299149940589979604708903428429850412938179745512087791723557354537206859446527551203621910786097268529990296370277654882568374203202698308122353568429175770192149681053885277232521896720637719697624760335799187056333944075860721157625389616657440708087417371704137009346922085183474881288743854912733299130036906667222515666832784791613062346565050048056739784817729467537782188742395360706409642503281390097827421781799152061210722351519047141208582704084118846461341115462324668725712313491107353465894681887014899620381793700543711841902819206455984415419092525699869053144644613275547590157263917711761862689853680817607792698501841546690712351648244983865199858622165813266870782172383139145159177001499698527051246802675903886857990495234363334052510154479365216353915864430213801935861502569540667772802258383447515971513734820267527314501242217932694343514816191358975973658205266382653533019981638152754505490485867605960712333333978531263484539463813274629607842143058598089535853705281615355013996816980697136216151991953704111801333039706693777879964665750462717163479673568110254431909756751381642095076866825757913124497226354622614408862747872244001254586141862441359252693878256938793787445298075212673950434463408261970556367783553866077652249456093134901217530575028688979157687405762700546180631497446894109512666000655059069311614247030864778768151865438669593771769823327790501816175948216525813467917677197430826163386400156696597692455209452178228874050341680469033427137002194421487690608664093850426516553057722972556806637126684910058295993089722150676380696899796217551357815693623166290703877304574265899040493140004029602402507393224077050174555764300861282723269138207027914700000502291228860585874021997664588453875054066215423518449051513011361198738062724163598892830103937954033258592365402194958762212802127874948343519020501298386942674035087844576664169100017711044652656320297372221186731202025584021900482835178882957658670439197228971729535899099715162788178110765183761743380056334691559559192291152482937191630462592082251605401000565742834066251659828721870040466593015856110067162217265173804294528089727480556911764916649405205006777429556483253684208185615851160710376893296492732528732959955308609709727081330297850958332334569586523740444578203789041048263014440364046624261223648886684592366500463630600244657300823193226360586317586193109212544525313946249352377863126797347083732278632716476673994418038226088068439893658400499233134752394978236259752006073668488628516696346784075145561851716466062222008112365308987391636525394978450204935780548856292840723016968576823709477680868714213968776111935316077645201697254178311432165472429209630970149397789042792363599624614489063001869170804864932372944019053600951345003146692987814563937392142517511893682901830763913539027341899678583159862533079663109952622051334972198902354521056963284164827840209114416081190592127119880105599980550097241803444565108004505749357980787966404428402019310355680515061544578447692185421339375942230949567708421602420417447194974120568673649246369658929310901960876788688117173368243153981602179459147527597046881973161131444987292603569318290488311866329150726983638888172477538098326589115609700603402743779154292711396274893633052217651883996333553211389228873592739246644045747305130148716353082742433096576765284323294514314813434007156808089794589981964380493851319929191153104934188979187784065762657765969187157812287663720413384511776378497343742781215455119180522861097177943722494656323446043833209457001893539239460907404404467185208152870632734349439228307356589845512183583961882136191782470945707353251671179631943879279803810564097815454762613511427350245685231774957085401020353709186058281482863032892092013817358224270135915813604172291950521801546346651095431614967661662534613552384858511083567592262876323900154209441018971901732986106727717521772054517851160176419388864391282474400573197743780484367106733112510493000330752269073061668709814034965732288130516605809805992393703740463879184851848331782172770421408942929322460971569126718866543063756400918277064321129382626455149671618873659199556045096344861873113150441731544973405456606877548832209519705270518663440936758352937942260193637297497022857707418847428452125094392682073050176523506090961696224281828320949021810031995904203549542440497979064205645679864569024784740882525746979080998799900858248169813912485205484083596873201631014889345055467111332998423168398182061391812140846719181447980465680428519249103568591514426706183520526425429189542902357378739271571036729296467570021121670006380516239796614707841429360703162827630462089795280054030705472912919405228538034826134741899961908969888431561892248605132185408869435988447713996727410488079831279734267314561250996833999836779259892971571183031172863295633093206896984302977537694452021457703102916169439829963320025652828262276446030994581697427373026563742997175024358416886626758912424887605750591667926599798958061931439865720329195865631305222822400658091352643268739109055793662079205700760105574959327379487475127999139100877955938230379877236344651187829789772006254635785441369254968667860617130752235360646709247315744340179739550665591170072562981583806488857446321380755525200061593586760110387823890763244120829431032261805155248152579810673649102919997984299116133860175642194175437375777389941473069308068750822352428640713572417545861838923557682357494631433015257878220280741459444737948118627579555025481766418798209811052927411540495205318844914821183079689060013717327133926493164916715216612101850932443777825255948405555277236302816288185188800064923778994173852218741436638711176151686898020596785667238702375890200925207799113614368646422653413272720280651815370041357008433750770129234475704534315845619622467436487658633190117739581671589104578351794103366556141238641652854398419782894046792593514619115986491793246759161455994395783771845715305100878828619151133230965334434536045062309106665338599225716979669676133562879450735185983165791049302255305835554800800565081414969998871567109816437579369709286217841445530145603502180179489192488746421115062624571202392134155509735663333035805950208621818701494844626336420059846360527959567799019286612658821414062550234997633487201949967772466925814595756596741991798757788399278881987685507192427905620832503049516302452600790243762581475735973293051559558768315504367165204042703594405485250059343493690565669185736653247191330680427844808952903791033708766968602167173063009506296410474406013172435163779758196704292356345413144946237737883676170645903502479482605842093228538404114263183613121402311225531623512275021569206972275585856848592640123199055222333814295433095761696012638890145537836952490632474382761733309490287088649139511505252112000508272450557201760854686847939963778467562216060551823376930013556821961221934433459812702387331336128383349875943293852480728142322185825475290627070709987312784828431687897756179736553371516942836617133001307069713303354763586657103814254283871471736905461303447363795200318127783012823373501747335354546493918097549087204789878966279334547064081826416181645390291743070358803808349042424924121329186404551581091977502305716874862661469507983810428049512384341327469570956820422679946048239203603434332874526532158576625269646867957760270392361771732387383998578748352935852717316337746490168083395925358171597692949176597567807085167391780817693993792490180054241654110779068713484144076973848503973271547131481328752820543623951900056865251857188448129237922769497095982606922573979504136885760408403344085985556552347817199350050403607910093227886162725962990304447339145769320707542699435569890754276630737413474160320603069562694216556332324047002867821764943852048306271868221107108000477655448801020694258058961003814435940974636406601695835597921465681687007559034895816321151571547385230744198466282208865520819604804420731240195251339556595573863154219159358978679368584780265378616778971757456779669192387792585928964375820613649406596660993675571495349589791930724928657120319295300527924793161914530536228537391587049021614153490642879895789057207481683980908518940037322102286555005263495859538636386262327453590626952923830700872743720559858522100329997700303303248803442723743912772447027219845859604867464540707146066402936361175797054322312182627999837416905588888344643258756521406474025293769657935106975815486342268711793940447638367795826545349039765492800083824944050353245283512327957778073588088670090634368387446873729671855802033484990582848821003394991169390278758776907651918027712690535992943603414348667496937522440921223910354254875946433417079975213256622889383131336753897956005736233875970699718336799573632715513829056085551174347868540441391661968425004753786590717400149008405905823596775316612345689129916700925240192482514018264388668364653095209485770721399855741894291096278075625501524883260136093216343374014312179524599934707056514450411604083945445606418515069659507392940620373442966616603970193677038607197941555934364748156862284115893469868990808571304033383600981066000715180378869473791036599687654043638137315320780754765398774315139066664173347632833527603466079739014644696385470263360024126622343071138776181463916624042765837623631081404335392461741217958159886308868849363524838147691595029849307180732730137144539158005915448708657856371915639991123420910731331522227059849800956870567094415717145185997183964249668669692719330625322664069636334680985880299490445629698531309145983188291654415294875067041905471321409651494758228589976621599443266254304875758874487479301607367601401375081534745528307814308357030461692427256976423557664793326625681844589734104439234390115037995208236409257025401234330735414373846690664190455511599697670153252457763124309900566180622111289337623491126079385223367126588347983818078746607500064639959557855747403818921571344307194992928992078058841370962354018503880003559833010914712746923430206817852516550514547451569261578562010647408897776624900308168693689086930852416014186078210419158845731536116263429337619943691324664510759711063073091132898502448904792241368966759874977640873649508739259509861871982720245988754721529901114468437426864743398795589810430303129519490545772461513848705492882775304736277547466849508318914177976299264471715384326924841573614081143775043173717420292074340341271132500553551842582853063807299387245584283469613869998303474164910944670129016231966628838447877253539145194468537295671292052198271210737721165875771669825573289648489890894779316395174920528212308424513273053397453326458113769088477170354656679027001487977076788145283116667543871263039547664831638020724033490567034173265939966136325301982847860775882294526314311749012484725520683635832760940214188629294037562021044864591469300672448582014911669720966126409675091547313231211550683572887138259617213901288769345058447072993306559935844441310007057308389383952317433603603686027936048617245653993461316601155445743026341767324700606712967611848175362080945446969574473235143468387836033801785282280138668811487267116938881475395488195747737465695338021606164905537645548061896152867072955022022945591975402451529543254734354539604460944292465760930968718756951114685055268198409777170169504813660981692445812412376532000893480175948254960151323793843973561245839849399976383700840918889596279237320724533775061223334439669740888003289106917095652000189271658182352693323842364488257678262936742869322770487581899459716769229858834095794060087961703945201157844465770592067182162941191223158358407225948124555593216123468434892233800395439212131191360640725284341336869871379054266901252164646083848766030577854073523064037622751942302892550299163848012133902136321610644179357904032533730311330362779250018471905734805719006496186404620202572325120932280019782355988293343935056490820643606885218410049742418926613070253931483641601960724310701261896984068584816901699553295673649081598815301844815044626033577087248125242226687205123352918383244385113563217300053785416275625094061444954063859166224312487451455772350117595318567868955936718785702617798031237247583058448907215146327741028301864643801657142343281124889063774071390198253098620026152360970141100763909933998326694778914430328621646261503192613530893321739561517774895336743594241108898642254614876841092720775530812729808509162438314187776715506488935617499578942163056345624599839897058029546011090516881109496123797511994463331805871543983480208404063250245607073273658743338413910866569019138354449369222805439725171496014503078181296961686277005288389925145469703419839090862302102887651784885800339813378020003702270367268274293184683541227780030157584425866252076149596300237242951574415224516144134640037619917513374112493675251114494012266608004297529953150427764733468833153783044900090062514070439920230717393365134344092183630671230819086281786638824072050869112448398374860564894513821819640573318120234796340705394056619788543575613875079562256809442048549641435337796049802407194180148622085385348991064545980266994101631287770794504289508164350521802632020474591840491563535799815816125844316013984754884025437885143983019040133102495593800742549914347731007296897374111978180561245332015397907021526098853238314341603955537091097370046717238209031665860870549933459787221193548805936995892800859227495967877063515670325623115227830741990641130318938030037510310354515332038586545826939601383671430017024936000822116237071813612819391550430117751410302262042312391983171908367527035390815757887197357591189977408552744877243023950663618530145497294433869703889419300819021449807258652822077929945963413626927288840976210133686115244235906598635563062743991436362737084988417493248317420326361764583336206834882464252617411617914856497401167252927670798253731621360613194589747341733735978711655606975589915923555235162541531520345089580347443484692329335822121827976497956029497587258969322217837381970689453486493660823641450224821677758911301479355782034266117091083699515233811038247133366490763660300892960716524229492031060486520448262705147404399645115896463342366618665671697935690775585583926527936259525357911094287925166561017926412962295314119039672252476845365332339937304193246118858343273356821293850558255755412553437073494925580927866897424752007401334468981991374937287421474440715328435290320402298427552429675918409838957498368532463616488620496806707707195062928161616589294067496830484186639916898614124562141041758000734598496357803709608573243665027046186093008227647799078614471770511788745703932849929963658340980961776511256105607486635763056473140137612521722294102445470187671678463909727122600230906280154185779949645508176067222887725612972825811165403663629481005121633582558940472604477244886969635711620069326708914256073097534282516327729040378373479215369233392472760604582721352827595914787327938045612511397156720392747549669296123940955185790097254831579278229956482292127629563455002177441966529367669536477697316580773924589505092705830157143609488961612654384073640382667192335880456535936262450055024550581296499357986231779744737220724998566168539741856426901959460778654572375727657310027995931242562818848689843865946772150329662336425066858084347950655439650424781968695285725144528565951978387781453762831450810607129683638474979987207295056822617612689780505473036922361072794317241898846183487399238767951904783672746720670373091700826674483080095567625464885343183814834603720222771252246601121599853257102005430092389860973914168301930451000380357099411815976812178179272620155053212703117354419762471843614694391418839765921220042896821270827211187161410459622572067654667181717778961385800629492784991868619042292380075346616796879144054697964746468886411201921766184889489195830057409536638818692722309886886704325711631056706704845792757196973126099762762960300611460665897767358497548359135362831970488102716311469604639498741738310642994020267173905783348706993217896829065712365480035536604206456303270956061596088921921808809568927124825368144325595902082870198527870674687006650018950192761380728674642652627761526537279141517627682667514839099839392885959848174045709372214575232848491350892459221065750251974192314348368107906540240279126615554750921135863418229237866165250796291746856970707002134181868392123725899329595975241836553300990680412699946836785092308815294645198052073911523817966756292560106282327122693572165323706354348788764696954687798430164822515188775639384107920178594583887734389633730895220760820510083881638223943435930294908461797227805931848545675203311679165440435838554070225668115858578731979788107534497364328682639733005229074440278140225411133889153361088555443000426411228167086244746628080128772086129595866027744536486166757050628000238151250884944568852128576500171368335932370520384631463429622876907773786856952405656391267031331080395038411437451798985057385213927228178544536833298696736299904431951416618947746949164695724982206525326408486456674850220315055970318092544385137734540265270114263483736106012840620878026081901477196771658076120846717005491417045839367039562625509018714985006174197649403883396907993424059060925029827335863454170743722189326392497423459315743989757146146899318742256053579991844402980861425661050562535844617621190312495785481177777176429853484317640017095663134289268439822546387004835115904754379811309381987377201359465186280946944498753295344911223955099537624476357516732161200069063386894972261212528805589808627735658968017581896827706825563192784800571539476783582132616281399598555296135783707998925253921288758657002407739338010631276444669386557909880731513527601079331731566894619663546194912107292444542776914542186480168020879855636513256626621812777196013496698280851912284775030180705480945899413759408810175976604168823497167305311304429205618418892065101971755694913844361221334861266316176752077501116886644829612600089760284431228481877975703831341465275099318077670612523553869697079898500256782666704021298146395263698071524902499523468034929203674254925982205720972398052620571414435177706277560091126330615000599103094742788406844120628723400689493967038569444148327597820269756543833076227037771732107462436026145044408042440678258468185284833448703900367715021294033462742930069389882121129614427044705899062372033644042521297284045199410711010644952268065502859575231005928138802004124493873021745048490922582291150354578049510777790293653144161629069031341961232067590394284538700855761303507231215241932926482627468667232446342067278655933864578728338619538171005497612436564533738532271766594910451711885197998712183467592167367789327689178164497853578093313132304564782086519655695655348159707603416535519863232015956195339156015394360208317931935430097790200041524862163717380303025751163738000531482890041410395539076095243631467236036547026625404214055034722110462471671592571903543503600965932425484529279884955688832301087676858522357154097869968130055982132339620038046062802898392914569040843150988672083769527843152975248018166358842049922128676814071835407607363257678603107092239813637467536166686771362764103622531728137315470748881724691926444386995790133717495676171115318605673375040086992339015343095756251942363652181225507593761999099908901948867152137279166055248225416577770815521433376011093708811679964595132777767073202741735396235425157227277378784961984549222851034100953095365213828287380230630178497995323070671697142805630708004741777734521347652142003027035910745619848219909531490140768076105987734275959301402705313087219971632880392795149428289930516203829751955960122528073085787540993711717495674384967155625878235377811312626195923374446860038202308968530288092825333449278328975335591642215434902024385561495015500625573449279995263593522258524040159851147723576302412195658485517011324291982230001399628085117125968632544947698512093567670309353954902674719367530579563222374137276020689717773923479095575023680502507913221589857781903077190055517493130164477760508566634207492053324117012443484638949387373982369056637366491728091066943293228807574063677049324773581220317168917234480785688556624316710911256119234988020734968676187684504051422686504455262756186257331430825451325288281003524551777437457938800878086909889190376077391167600765542679766060089791327278365465339480158160399228273819442231201057306289120845630568905574944110940038316801441860675365829560506370126246032432504824209979940295493539882372404206435438482545477622838093167635897924063269693377221413790343730015472110154829945998540601008291908395486632331348629466975273547078265999896242092650361319616991217918761181545465068089152642493402457826924342832512043786315077105596489128498596476002101579537022128425746490830116545617252425312735270575662151473997456392275700908944698742959244730955923626433000614575330623129956071178762373550767241914202271605628905392362043941873277512354456087866810443485718986881203663645654310326287002967674904465451597828552737304152192454435445974242715544143415835401338124012435113884157397465853538108972708631705730417932964561543169371240559680270583976727675142532324492220243454937292553151341493084622990051111935176702451773675668673472581953927549682725530443981049138726578607869541321067108112560995795479280051944412890599780522826172200079413682055040155700787816688719330627271833692752389272311202156986610062357970687345441382694631227748454928555357223688196722337673026766796450919207288302724101229623140941345026426881675942570947109209170397688940371828803206776033797539195223731129428076502889096667207348011641702942066933354423673968735209050717269214254791893356657765288564739296024693053124362190145847957487446693524393333110886863238665424878957884712492550608494886759338734215903427404641034142837538416194928850376966492195868422814825048550090129457666073582268285968189979718771206632141808915590780611925344798074314549187317670404370602840875617263101252416523776552058891628125595983687393911059223139405547342731180673429831700495927805434596241357126699070887803310934995046706321902700259185474683726837542359666280987571948376952205330154726488857958330226639496542164195488183857151941533228122620138432778077682137055105956497301698558770449441243142461623371464868454565136804351173317054140522374343404749601338337760047106315598252304282782121344815765832969871133230048478032272546421020548087876870087636284773542140456755427757312438021133968381265450183592197813906143915651451584102918204136694310880346360325672336241889981721387437279562146131427792986614141624473111124941637318239437641091242950279830627329084990795331007441876943667498530365345772310407015904799583304902269189993828175239299204406567949463694751156134078487323797020478254982767738306448331906552981070533537560291186089944995631322955554969851391101899645705748220309573448800742309602297666333019310328673067996839207589423391443897772042092386479142943628856921925934671663204109330210743286558825303738135757901657746712041842168988126127506063128040559214338082322316815354459587839751641408276983356942130311095500182830899411637529529765671128977119647263782504129134434982659752168303870540383122085757348389671497632870665753261898553098423031056556804008681253237291122478479965995802113299784855137263132407138840391483384006717237988911253156208623867453391974908073478978081075712585813238407547795596731847386124952000093018470481886458493394213666512478478778818929462219660487435524811458766930458434194231771581167754683410356115053898626633500559149319517855577416453570021412350091492140426854717569759225797234190281821666113387385160922817256992581608553435879535796033378039246228136279716840293425276270738657898634485409897320087336376265684716137272632028466727742183200643362171977244102832912880096868230700440758891060188548189413491380167702260377813036502910893741885308458284263630448879903163019931109838290829732994651749655132689808161637778250644979482243888016928746844034753462414330153752864789762843651977721373074348783791620439582364703550784873758440012620403273081802150852966619973795671557848689882011795477763475240671445114864414770066345988580201641462353543816382894493136112557820591597077174387455195747825301162238399185654888240349185807340469699847920423518453371382092795947149775540628669488014172074226699756562936201705672552997265496408662734274571977737354038353460584257305591737198270801714032254788330137624193565941774436269231042555559587487415250609697123576678146598297862920895604250484342275870983135463557640726400901755929757425190022874271036410892498409592525753083608273812583822370980336795683475784007662976145061263694883038879416079309210878365589424126581987233558020429910482131561194328418313641248413566680924174205383573320082456743344858366923824579616980152369055568099307047377160633423099116706070668552189119204877527949312335542009299563510219262166077633030306803591639808151925039390439785818157525305088818940306254506572748624154005496219480826237356644814084053043581207363127198915148218312163145352756549213204760724149560479957586831144301975157153508576952203367561250349329519802083393100515312567767522325927552255825880939874868719806569363767750852992633634347810588566653360016541231643806298311017597121989775332720835269867367963322734838870663935723626028541678852769505586355597221244587332567017595777057968056687300450278426913972307220070717506699611447728212103623380492668967409813750918953023587137545916885879894631338568351018027963491066560706506170177921546297030687573261390908463792080456156199517441332412772352843688575388334722360611056958533348329007991395110637093311477099422941413947887294352948848450767092443210858122878266604230907046373434355554229382330794357662498206907569461999565496367729771712713259570742667911859462523044746326402724279730482891362977210663021137598441494354063209804971213855767183677782516869892407340359342673372078811273772297420739677801172653718411565809862746325602415706535533155076660161099404169333342906689469002612289015142885201554372568146618281710000224444951632092182384416224030210965624662520784264540807132275242843000877485198691142631482429113661788732299363623232970174072584538036567231364988122558499653123252099802351531874615999444787518439884534378719943519559986555943859798986335409620309770562976506783361085006841160230056361253930106371229044900703799071433416293256104167213620269098348929492445738895269741832615436132755034037058310655683960975755398589703968126816654815703307814860410369713194993096451838511482091587292667432510242738450645652937627131599153336940510730863166209991304469456199820507544256453376556457625553917530526892518263453721332986372831289817243188530375195718183825436130576916159086669745436489826626947358879597161014561201654905814127516053041592165309015639881824095899281394599751347722101052987288907068018479919933069293313694946053576482551850345650529358049052715986452340163483097941938169761879971479710435682080896723222606140841636899630314138029707578878895211425113108227157279693967538472058490168865762059458537091735523620697190504837937101100695836241178726110134787318883895246081924520121911462080061685583444547004338751282497740530288988496012892908874501659496017820536642351763827339502402602436203004774507283701135957847023100608501746798397074605553648544803440541134036837253135697827422963922210589967602839613553971705454306075590578214910601268740972389770892919245111423841324503991023965950424218042767491667609793953836441866174125829462033986647974636669762635288333483655261039722044921789723388741334340555691605993163112898409891110809565788665001058452158179239755453627799772341731538703104296653174018193473048068358061192284039919914859058612546787141271684992592522845217851310031216322513237896337573230181890146625555743764939532916444094555820016549076671158978679844170616239710084379204529882094437760718623649227635661847958013392431031112191693198316540424875542420157582969958742802620402777370796745918863613770466069505909353739941401260515122857666075557516446272990887344973805896012150617438030477494546804979252284795332320822027660129276299386498474940686631307814847092166486360372737915392585767242694898797937842918027123211766437849965667329502790242197797633400775016798534561703194615033821183569638084128532004920615624466585712942221165767837014493197048127246221493255884018845798168168811449490473304341371683817135344785653723656706155348480455527373257797928077132665620504424834426535668411457908610022229740717689077380897847110746002588982803276225359978161600277311890298384907979088812083203910659705370970370300393548518692771735011452980465320237355160401164509205470431009094808248019315821164955579159164781239585290730946457402401329980742939807147397015580327105142448203008946632301748700072708661797522707676537615455814438357593301927774869635381231131737058337520538586309817583837847706275669426942624303732561844906097695621924339164608387088266506213327486801221834618477320642383463301377199116370507570114778248832919723953416335373191830705103781558677568666793251348084580571813168636273360657044947396825138964625923988808534605836130803231743708907052833197816211196094631863493232288856962500234704252580338881896008225488503615961951588365616293677491510221251231763719894335687356604101098429295382585869358487044644367471624515631665803814074314452036192298740018022505516106566862405312978963084714907517524635808383311411944145940583576434173547164084165314193300145731681922286606440740666918657852587118976360926761244819662261715902643935577137807077727959333384592899351663619475923808476136533257635660034668102548448386752347611701938087365990366854113470548299812833989721810505087187861469860175447577842762354091367687495660287402649655748250496139893328684786282115301826659249823363139212711159788555652313964882205796119396281734809730919620402301903030340236450359111250660838583720886485634729544326426413853648115692297639686522537633780479231856767978432505096678382982744529045107397311252934256669245187618361483813286754651834906684694123665853587410650634171905535427384088071264262648499536394595542823260349681428066630166858079844065811199163001780397284721745166242402210188051663838411686938114041090623590127740986163509307907101834374887995394660953269099225151129101042081796248495493505335413721079337012321211364776781262197618362751603763456047028125875356822271567862555872040384939634683595904078347820501992825286857851538881520717020757699109850170612810713795195254777934684265256110279838041467374074741147010852351134339039602886623264584069116451964043504988216206240132526372741503266705327231182775767531432374319755298416026953214486632049883987769817001347458213652705369624154516122130492997192569688172912226605798501007605470920435860688923118172286539470785423869401435020608966409939894811517611392748995766804007402776500311214428537061950334710157703206535071131350515708014489682419295483862335240520348275406191886495590265693994709683454927209382368540350853778340361505041499159880870873842702794268289701538765892151941625155432120715205882322306872802817337254189996600112595615347684593348492891362292388552694362167338386805495398258914816996700698618286466873118004899228534400118971316070022403754216281199955073115135919279316194550627471372052786380249141465326074146256083796329396546259932402390147979473264468507420892993773038323429673022927103646412397941195057165721249966851614779546905331177183014302578075197541107713529994503626334067301840891775133676497049790299999780867302369445782266794615076647959086925763399410382887570288438958837980693614981458914761284604915972704373568054941390739236175331419244072476407256829616415858970715655632079516421845679215286782205059621975803785746592682655309131729228831342860966272769903305512175995390595940089674803490927049526142130495105779295149295696566863354719883307205934973946314591492988232852578201489812056724947751459191695130585551708610603800198931194714068195744566475515940093524182110394163161625166863542076867328688872605866843069557062010557114178054520933101130812580468702743947613563575930287609615551045885750766876090368899971123827406583291926778959715229983340716340257634773066314912418631774779508083749352931039133033149732474041457800784525754817487217977731799249485736256635477215436716118246403740121065100443324725521052617290125998993773960783727648096279499939172076202608740386325883567794123455918356559074769411968688450157331323800574236189055366246864833886418722101544772857222354854502820757614488132267601111698270211914223612398056022520044852591056659739596970069903738217110396349668934230225463242504668587599088976140750364003897455928730648486212929454039154663940622696996950041447225934912078257384855617956199099850485388898903423482465823917802942873336344370282980991171449065990090128883915822858775696225515788329297850560329975309233446111487171106913153663938602742993289995966186856648858056164860621006512154151244279323525542156735388072417092679474517226216738129453309452126454766467844788413240650355499045778805843462189497617447802851999663159043481387601108911502424988727342998753327711643343621135908042867535565052845692000202416703703211877927521497091341735002932249292220767225588104915222469102122189851744858141537121036140962346842111639697299885025267287452562628917609164605034412962417076622121753541382471039223611868933366267580237101412612371402986928612676821499632282122049252967049862485880365284916354540092742885459972381510169470606536551049796282179531823831442697531184280995939146564842011738349431501035134021780883058489583017990325306663868554315791807491209073515134612037741614548892232137705932203916577356515708483741905290697877624576185466969959099843885300679487595307479150039323280064526234806192004832528828395346180381339083395915549336868485729480951327813361652699551203329553163946869483648074961902700316503522414640940182166131448239005628130745770977725760020376898116460594175173901603209994631190620950427837251837460967827474956347751494606564669150753624851823861932813604278167458714611765072621531739590571280860190691751545035012422852182643325296296120546589618362507793254309801607932021184320491043812232612595806640240243335663751749089390297468684894554933796891502118029901351660147170360516554314439944503319195396025742738051452302143024376361666454532329070384909270318027583219503265464914374981989002649907441533793170100331983671971434025789370813134421564089014506091902605496995530735144818727896496918930254006263913527826224372242107468363658698259609218949678922322193756305809078576666971592957836736475326705470872881417311275064001184209159420948821574413506576804088624402310182000551077244126872492217490645495542157760507099752878099604498754876234978308594741013107105952562784574542690134122252389579812763670690687005933690265962262022177848868197146925904908306291859022365020987208910262197637859793871046312554820040508240312750669158726238207684154777086978803650884684379963586090861858286343139683561444910850999319715757875582133670147674996647257360744997233533709992080894202507832016921136889859242055248631963923773648321630066437203657570107040635624195724546853938134827697455314653349327970470560298763537125558195560687051278675422265088068002296430504605423843076521879265483232828861705286341240084484248868854560886572717923092158436728248604967444321439407533754842304822842416078974973636056196734651634180453665525770058618834385015306238391354822684166030511735382991824233607660131316477892857559812468255948107103051506228137683405087560884170228595189245477384805711326195889107917809762195249172543958949061351026342345135422400046847790034580911552152904284996345429023332551711137881839361342743205281299150957493256837809945772306499967008351822785324433365029387055688036300478950023217319810272502059637129436398946996862534776523860367914411874113086352695744984207196439661565062337089905084407904437721490372600087304713780838267625099915393921313364398237254692432250045839615782311335202532485708540468689377226638496014254095666961637940117928846810137638279434949178727018235653768752971033628782290821713115249732875098819986244481537101499094396503892705229800941773285346689039231090418470277657269853336776495310155426051469338424035835788124114489680262477042397532695357727309328563574359516016145533055570722431791662439501521175186547290060768604492768707004515928962236438589048742866776938558412770760208440437009601532506616324230459823032556794257380550246161131225683166729658696393011586354725255703059748666218595960252581259347307094238351794733481569545400160281851897309616374175875307743457737554658032211199228757827729874398621230590257034643443332136700964676149105496768502325829558808561634307441270666775963337684442839104752375453427030182999541000392787704403624290946937093855298415491800800373110223435807700393964138013624996640108041108204371162725932717675219070492305594955582208181846837697443461534903787539538106535076184956301103028618278141035236556010011564384835024624956101153277357405957117888393389981493464867970715765521187150465480507127934215431013532915311437541024073200262156290588379223322620937832440242099427827072383611700524752749745726004370476749907853832776030241820275333632577155766473469052506393600292501504449646715758814975232559195272986762613146078260254251934188759893041586693238295641538848047590984405934474954817978943471132850034371841239913672661585138750081191789524902316285718205207963639372295413764928658564784862394111563311211792825809932694882341418787120137962337098884425356685277142839884565069838560284906773111996676277596000704427167236420150495811968828172725040963085721019739773005625825965403638137395856223798958272050486644510990492758407394479840657076784766724793558072294968627495246193803314002504998460127720860902995034237927982425193303455127306463363609342721635709785976103853375838801402937682157042717852430888820548039429416514606839381999484500679725594161673528530968909660658715486788973530799432969680233798780282386658066190262919854758210334143553027542109947431910683936083837383882320155544757097093388878428317181794659985074720247526435264685322117591668926172309253363316118464875134639046364945931231538115512741337423229181405119216461719540643957719097803821077382944008525144292410962725618799657173005988392645922820720235962993076904774851478600978392232104269032930855084330905173286037535564568340536498607845984724481072078793209879269951149363472610530919091821189795104148169310405085250295831227037818867531100723064645243852804838302781346755499674973964288875299108241568605775828241656842904718413958969915579948387047524719850978281251045521541349846818073973937584235273019260085652349071570984904133969420018472922696027887052894397156417800588155120043395857905088109860974538027213016493395874275717725779184228436713296404438219190563763263114255053605182855047141330520250330706514860807571278665977564515834359491511151505596391719632137729549153614119177207412975532931623292061875491744883718044036373492608180396468364666493981757066262299934482528167790600752788936369368788666505569575661815398946410441420817528310213733813445695054127449961899440500289026648305636592076330793334200005196576064040710682246810027855398667406455404557785086479276079927189313016365736539693674269711973006084264536252058554876691752203827353659211200805078662159374678711434357857186017759113347038941497345435820923631064731293151370838535169315504117374698106651054655134222965289445546483216603191748485235427799336799055952065279079366488842160781382785470510133380924472682964940176480791548538827257977147819793751119471397267325364796844112924808605317127348500941767290513583066711751309701141829741146741063682525267591261948653955214112222363201664765286592593472471692532093379445984534085215042168960905177480293072443391992959641980322788733189908895552207783139161655053485153566198018243158267515484317643452908091101197927706085907653020812354989891055900078336273554295221861530448087030276551538044711396617210472943563237756836852459578761227741824461582660879924285411771244418872416795383153422083331040274816441490750289775042382508000097130210618348227313458195392170447196801669478641639584095390460282803798289317452198258596979716832528012698051332581616528863030024410673743861071935589825818596257637888621433858016727925405779471458135353994390379012416004223091679272608949115032782123808538251534319019656433337783399240651835657697155882442373170777143060635483257902824589639240944397921274510420591270957838965482830889420101899625481446954060367556779516790852608664381442513615264695067954055045640233517872333258515605988667412024802222664972270993438275563682843554873128972562060539085995706105135399194351541033906517335642817019865538415227893880238198270069191588999536706813703530836482597712265961587251681218704573575562293383727468327465832965505465834483854024319147354860091564241866711756995725662096218223565971014000088556132564243091967524444490784314854331182449657225619662190290386191021150773096272755001205358228888917796523684418414068610527250439602381250442776019050613946557432337877157547207471134507770284629329690412255367204436502505805102397534285543244557255467709062188330016421590305613489941880131420119218821847578806863795938733039250031947079574911479983213382958559572488400493099260192494120339939005166857276336806080080831742774041804846817036792074007264412460677545554256766226203393279956122397511996755358621532480777690653785751487654219892146436605710988496140435991411122923163785712797810266202386737863112026709688357326524430008016323128526074621088782624106851799629578458752729479324903865946057288378260581365825770453182929161251342276542978744010109800728869921929249121459428711649399560420548987418636576377552613050136676782894133003682929536735873077063919973332830691780569189462699975770095380710476892490561244545030951832931088240201829253507363488699192316869435690937447333012541110508710128972900220411265227967610324737769929828116554560038955555682780998148797145835757542336003855873259667082566840753002615690021617858746900363656015258600818441673610893610950593072232991260768678274159394607621233078748749582566013921408773376252406121672141760178105736179665168296429730071295095083988401610520531793193569526538176854950240988353022444713092523542936189487911152565612559031094439945641341459090507165415710422461410984875334126811602551506811892749215276301390221720549649403744261407353978596284608217865587952818414873303259765544666944716484718259203083647762274645249398008822024244664522136810453659952612247893937662815796211144995133328453808465873738662009761264953276179078609407736966086967171813945289041396598278092778402716234520494064723597584416221908424063021581257383164651458231409812285023492583630607439293767545621704674473127580920172637037757101175859840977816629541770735861953924993703696796735255680377316661658425875319375079576550852989873450270982510970541050342059999657782996742043746819644646521802473430387803358386476619735363435978204743252326914263531823762758792528916826099503917454757115238078228137323775590534582334852417855795592963416398461824375304971635109891437199426970159698420770812714465128832879280478196156179049855820189222320950530872375131425506879096758278935739225344290051582070027476589767171406977100964424747748849245311040313739407762538475967378797092265536921397215153673665289950339042350794370666241959695940209574169820037437037350827246086303845120899537503753898399428567358619198926179307884614729898400433579911218973207753578338783915757049026524366259364876223851467449786810458591520660780071414415943736711614561791183187208830696952721006376642249183725522718809587649204749492006811197481598450738535926152127000840409466415119354257349855174081029902871825134627931989727240797336537258398996424163677044554786363645665844062536226343848069117021673472051682761899999966324366250423044784468149098464548596680499277208836682604714574315260034420470476562679113864992150362004865286904321398214873362813348994386265905757327771848824915315766853404083859834533594769520681749589564051250902364298603321522470654015102428096438113772303165030762172786717056144524827190403112244188488236015918181159048541940429944661797968882472175296855369902111851657897599328436195469442150388738258477333508041275548422732220648793330730143724662150451410985674320958073437064368287537458413731285911013690457474939322830331642979095853412388743355983444798139897464103947258224254844445558669410968488513362829374845452308799796706069130870876200861287158600130578142988464142623796961397909177924990136267535882705738111857785472852780437766594110029051555599248162877471760130329822958668770332288850312500512552346188497352152017245910620970230234374788170197211316976810799918127041627306008258348873334117579771007809030616292248599147047617392011106385895658463308867000726989251595290481008259904473141507466249023169112426665399143416808554518430253358319028381705818915567978274882379665952837957991127159457252088872121715797397859447354708288407829113757030960239285770688846989174260481468560233188177205943016144333951105283258797249364296444807335126069236059829942917999835138282919411874530059849505841641636100652486766061124604806617893329044889499030250386519075693038498478564546073023121196459795122356457415507947509915977420334422654532183346606350245951754178888105703023608193324416266574904279361106293655217350599406584935173322153318080546549714291463116440783461490279364556211250629874194838712206094840091612894999481112314745890960617354700765545690824993846522610139292937136243898688175856807921590345091678340742139082203466996219329050896044942029258376771695835348639207697274012141486388077169520804068690268664140297494578105909751120289763869182534881127945031797108981175228484413342911686117173195153742183287782706440156599266236712780941998422171131713212613655197254998307006384186593417500043551079770880056348336987955506930003129666534042267561358693865518077722780641215504006081312736933432440314973518070750396968869990806719571683151008436125340070807958266780669253323821958256733074950732793507840580893797716201089684524408038135959609297822014943149313560673016127493507102905818884132428104680727912046422643022233187572478697806966546739625480105331923982790404994989773795880728580215556150728546720217945128838949340361171643089998879828184601668186849370259901556432802412703881126060148403362612355145207452159753228996780818467707118864752671634785018037160434152115491748072507581126013350660382763657049364456638649233543434227609859936474982988483855985500267136459451658104098436230223007246861616110393890935367940017444323671601656080488703090451384431332635690709907889674869262167848665936259588637997035522833874785294529415194623960990925269386286027781119807724246265457063526631411202830581382116884270506531568663380923726358871192622518605611231696233270070514728263835340487800012336599308032235915103586963436590345492770074818174729605260046579442176275288010271477369701603227161656334334465256815301351766246002630779260660605558039330149972648264580725882328476847124482361524391427562822700186016207555938192816517706766122180371786529482717773011539796171502749272152927993211507716224686505953998477885754659557078459833350545099513482236913133820050107302157287342770979232655173450046165779869838668106425210848013041180471692313844693771425835567669463876882812648975212288033899186399734824103643502968614519561241443008575116526213849439551491732699638870987318857996203896980950664292235914836635392848900452597534550224943508480329669667187672753491262098508329345738992937039900693636756122883792591685565729191343966183259681167019320276656793567527023173110917191702450064156871589488589170525834259852797126819822735051960176734046588190959200272978909715618934043795704167991443139874821000136352499428264620552162755471211236736683747832334158342149784378757708169408136073664547225078378864674201816513904029750059219260956655046523196607126091524022308453464768607757164380257459217229879722478901070742899503385024691934503578404271495467541897404043347381696214173969467174948336545563675033673222092754994740257609409833025183774120875694000503333265154872408907243889160717273281459472234404222300007890549115138270477891678048330058750476898615226288513934839260017697566665951705475896859297674946321844945421700281240967075885062034071333976886741619539238482025850863444156509791173724182571701403241650908781338087119371172753689711153341573393423029452580015551306202660439628393814958180151016111948825888357787363235648509103628468462755980814879401140798171759589139396064289474377628237375084566561031593136515209834334667798041328797975480126477505074911873020441703951402770837639246752125295946379514371412250670615753792519829502536247904837032803788162194852930516273664975567213488963766651819156052828042697580494921550366300355157489020107537574757661820265159840558631253718559083151443456546925928025452343995618826178332002040627265933856034270703822646646501942565504775835001072844047862655471894401908766758992920927505283500878957696422721166997849765648748487409063116715223192460409724581816342004393675068686002563634381112804154245047536534322980450833025537030273757046125300943199763178531521893396362102330171797687090835230908736800104830368240608314043133399127220238984564058013455895353539607850652222241812456361781627763120677539407944478324723309920604196173948726351481265116054187978834948838858692847203306030953056903997659415129037829106740522020208426391752738932403435736763887554236946929317878579057615950617145791816943203467319180219093775190887817448913106044586166308502113556725932956755370869969960628839519202899415743653868384832060057241128972733355971287160131578755671851374520448249827277347899188252950781991543185279515265023340651588634593407353325530919511183505987043710532905438639467586550594785046724785341304998993728396212877257245614621206979148637679838199092968226899226199694263917244552154168169325653689641870696780183976131748913973306824930021962446631970784181028674637449950940201315442055122262060606691144108318009330965662673789610977218392311591235868762353253237804708612480431798795521895272688265136823844071692199883608186666479852204732431353008885241307355494158422469327436916630806096336731939061074915922763136643927789819280815069172044152926346800164494254466672740990898434715217892017924481792801783594525066767645681439991321972069017169452191982216706440774441439096372114876519795946523100807180014901002017832261629688955484383254104336079094125407823892365800990324454625004506397843580513022273489445114953496601428090386028812138208718692867281450705248964392935733445999346078212009929147148087800152106001472151351817559096527914639453229848137562636606104655632266697361604188618104400406841668778299014180837087122974844190582148394034456642458057297892071536402477398491550291714401358623626513218218248961872849882582464632061551277114288138793778084606310405005771991171737440456075546843333973368204069138969782786495891591806174232541662285770681665901755635699322396298818649195833489315373604482348562442265021139280732223436875609147680661805342303288042867651309207142377637137663524707691356012453184152836132991975243545924560835837186956325140725582829248685823312433334048913700739547766192389469352585508815716076902595522012775681114677147401086834873611794570943982570973599271017311174772988267649305563417264724584659361093147206692394637502563288357324223638105442187901394213736778425049399115451054939310892466976039185857572485798816566523787018679792457160621134321054330023251866751667182951421607964728053239464341962349383068523051593866669554905579538428695788830466214703866101048224193514504816596358976548513142610133368560675291064577726409205682695455728053999093047984817222383954626084856080998629733135966946731685064455310367170736458142266700241081408569772396804888117719694159883277653400456153858138170387161100249809998809219634858189597719019419005465153012693291195865750307564848006291501968047789293218653424893343997952412282597127062633348504238884256008346986147560869105931639617700592436699515098155484963620723940822727112313938103744203563868799704399381697169820569811991891014049541478666059720576618732444396441889389043998013808127724666547625825061776222010041170318955882351994024764083402197125027713512212100138635668199557544208496274296782816230685949360702745996411471339053700589564809741104986545554916549332804119600428279379550313749386125270437765204414140883596665638899767605573846385753269049339560012838382120598722178386945104638837888162945889225166129885544722581192115834989949038692130041369975256319097161403395308535884848453565438794422045426726954914394334966956867291600329853939435518354372278528287201141543603305285251941802236330905702960869523490967383218775957761069925744508231746153842924874109896698367153189764983222107419310141477891516760565807999722203923057528504550869216128288282082455558241034311674814367794924726946197390181458692600802169614195203307314628332377656786590146415569799295834774602631118510989440536231321458227493806849632849659984124532792604464811416550099090182514353036620946893076905062082605168695974123977426262070342441268588976220639423490944177616319560340070986624089936774207199244037639458899592839545839904223657136105720170548858642103674362788874324720857341462695456955444498780997442041056746446855893970834984286125255197637849740226353831571036895792436484669823886842953418853171893481596312283846188976520841689934030977929335337798243773790752072883608492008654251823779319083570325247650604944121358098824015137129543357515716142491680340532405617553592439240619899793620361695564274854746844021957065386544862528630347417627497570540249667842730627225179411399691132305544612691322745584793062621800148845379370289096048332338451912624493355475160763663574590268816506889120677453863190179305820569257141670259944214651169383175903719205015819379813982949854242515467660567217722209982018801713565695474752669905640446856722637092999633393164758149268090383450887303813592595739720124149490734515223710470542119773102173119650597952672263275246396665295624963415405366322429988540327504304772361781428845296321202169900232793855665567675676659523798460064660916073745113685360693069849595970050986703619888941603998549422454960093223783756511113980337382262215186269824965506901672602576381252008655723378479401307804224097389289205928810790157206056043489801784659772797469489173135164781733798513238201388716701221026238827095852905031905126224528685665507555441052929255414967263247421319381716730183826520146368806991862395171955539180298224266765876524930295366843319149489102230669008773546093728486580935044114686620338788972169648163216256822414841123293074860665290171468443307288072901147346039157910722317842484235377012255205516400527797901208684632369607192717310387275831993703905556827075827208480945530973681784039909152975926540339186725812561125505582024933302800456146808364492962532958908423050920441604594485137430906041719095087054949942612446752026324663677825974382777373115336771623411106816640859563567411071955058551019244330200377442577692470725043776410491940785164743545368748478066452962696741303818756188834001910512059817104776845392402687590805739916750589025024844064739231011527195796552962107356019423524458957800063809968085360900990551662474310828304920336432165273256237641966786625199735232257052537822830825106943364213792745764522000260989220812274113849634399331975416348192134090367000673919388071313059005884922502858776843236545651289210237119307759134375288216694010903147102232809642217097236868218291775384448892725250740288911689166163379314428586289392088182729332004375371986201165349951110805907905725460537664116596559584024565388228912903415427092777148488523151236912791010419736474158503256653441256966977136525931489401223079202465132206000803871865684197869333558623678515271215934636850232098854471555554137089154695888331812277745800881567885954886190399754088667553285237821116447063427597098085923276662390405661062786413834078768779936410391013769184154017713306763571960056315576037459309691473949937135693232713271013925410254445841309102587481490386811730385083579297359002127013294327565104637552354801780720628514297073855190972457120811969717693206291140449406550492171981658523464419285408086215851094580151608218129001058609269818443046461159688756077873544104195689430308178535009827980835559860097502771353133868378318825362025254862822803763653350244122429800895117009144151479147367942831258170972818563482009554614995638943235501495075751214618908614367290621857835221284622247129301593053094143950224066054530775231998695217487210302039566295051925991084507209989884827268592401401480930305265585520208865163144050507729412926699616409353151686652923926123415144524132516445071216952256841286606635946047993344567952143377181535081859142392454041743095127705517735554794187482083546926062302847548264744884955561741328166072983991871744490866209460170915324159520581255807469247993724258588536148931119660210369111002401109006239073584012440329924817780706146878654537394509269514928397677809449630201022263762338982501795739320364842990246240439849576799826713773941720287814965959666335825586089123132150347211991804787760397085602923929123831566760543114775964164414030423022761981701556820165045481322165264208554195902069134396863109288476628299273640748645668551145425561580795948833773069734002387992427239768983136496335177465590733334113248423582911352718639579089574320904131030927196954434118203588644763422523828132051486621184695758060495304651441016249766126017397752837337669042909694187347880172416779028503405099418128823737780763699858325244371549854499063129848602399511713490555037459349825834298323822522204624082753034920980603635898267343147318644806149189292030222935870450710287821845603841696153761003204094644680181833781741104031590687875101389105795027531597368418428084053809703281279698406419868179849838059957699848490070588103817464464920544354093823598024038710151934572086116583437193099969690023671846719931583542308225029340084673023935698960409562748561985823360673990525732636708803998165954865986664498121132059887003785831646320489263610643824476282855012242914267363101706352383637753761569322900036840602817721723423396497939113896023641105675683341160048877018738661105446394801862016733110968719609801890361814749982709271408538545560057510338100904660161200193626882947898960490362988567028234662344233090171407259214555266242700941579572493427469916187604203816755986286365067621899778351914110265865445010785877203011276784152971779447577837304681952394174131464932256285711687051304181140464925560984284597104466207497031128112176539170099134518866734949923329486274288789205187092076416551729212260572858807364940301316169458410253278697645817749019728975932527254704144811910692486254175229213775965572976106538291996231931276123697453180129200186342607926298270463404344101739791933698964011159480978779535628580655819325116728665405079143234528965699335157179551325081279017387836287260445851710696205592677369319636777651498132052091281966631168247853958556737607390517807928265897869574801730550074839217105901087341685295093619827987231085819106030899339291332057830235838564551401607378940726639874378243947750165043190614920260908001474574148298487181235886386865582893373913520600291228404429915149776959727733759356330580038326841620744190520064196276839255720554656525059631820371046770341855238035615525564944530041200768874136457814843341822729488761860090765885921099375583699997816947386684315943489945769385652938953867561455868965649742756896406014506705417636751203268082032523390571378128164451731698346290554056656519891349959394906751142106576762464663465864325471493632921685050927050267133961351914588820419432250883755512922288594883613403713134325264844613856866395769395334859334798431241070086451762115294535824628513741050401195493004578596015402942144066264936110377462581353307714099083354871691826364585174449090406379609905380355748617394349286240379697990418407235772535639417390586861850173586738346189191899815900082273492209583105427939452432242613953003119693301022959265535902523067089409248618390880649243568235885027648198119447108941114178686887482480132051945094694543045565686974063461230808392962454332701496757390715398775470219913616452306415112142720221161325978259465832967179014622065079779716096947079646690919198104537650433404854462454788895914889126036832177871932904990727029739734398718906910321923272804033747496514573214658689161384855470152602865852141053906678544154199865510531015873637978404175262858552991070271902510363321491666833529380513503250996765244408782937471280481584766422140870311887685434589111019378361446813564082990020434018953827867414560257216035541876058739132964231267348430657260599998058223238098097636992852136950272779304204834326054853861913910482985087854859100112492405952054396928412771064477190429154751467272105167322318699001742653751798497081036341268392034809927115513382873054184815240368115351878008156362879545838558541520155956131259731766147046163607540963775827567069658290451857274634015519084035165161799664620849083344030027672717023808478053360146439565515766113230800767153157051464855472003662726643243441854384125020894618650862469901584253699655543677017739602705412347799646645864323559347716924673762445838828223392657823077623569324413712637796084645970557740418538830560271712544535998630148803557204258720136402764246560120691481746124484826223426938184267786999684791910338098764182252099393452059875018353340579631167226305152696658443455364382519379491566629830416970906909331220720768768729487195446083372133491943336730270373696427134046054062250685564374160604062957440649611695560225717590169623744445112941912073082047654504501148591045042036554222156933518393290478200559321749334468076813451059320624606037762700481245879856430117008857307452464197471597219602223671541948272924591383071558485777721083819919932023080723446750926807533188248518122408092016870499382789678683879136624090192576866141761431906846341312030984739042922002523034993436608530668414246671719751372331461068371394033401152277944127506257828810050987418592026774813984539241279393215771603915677500441640380428158891767885758887425736575916615063658958624035461615586199802026374475344612797268760281185479351353333394530423074389674354922459351227341266172823857350212473916011210413560794725518664363902320577370461732592833241441687350221870114615165928472387014646382317626845150776140611847133310023528522132140872415318858652050415874025683783488441864241484333660675741963065654731916636631457893935989264006085563088030865223400255398688758420384780476081244679315530149153808788275607597579346671742428779726888237519664154001696745204787730280818871790925131848739634223597602294991271528722614340196221256966308266767236935434154148997804353558027159985063196700390668475409390797441235667764491211007342105851308959834345261767192280482456648193873870076484741590005881778586919799134503137719954502090784015094998206317443851663352596857027656772915778973837218952874469760401188873136611124365852748324681712041282378298616624229351011016181053818197973345012813746362017540526567840046578193720900983391192180074861936580057706513011975470146037219920101923743570750937385063726159068846259816624980648421456733421681598261876187228056013131594383424126178277856535142292601632093452997741231415934143625461352346502953517911190870923937450421738097492806942836517686119956258823936001761609161542569654054986118986578300748010203215376231462065763292078819013250204801906210972125490893220564119496647606298326684359528895587918913295732187300022196474919311249650571494626167382550095563340052461607184748444517816160806629539681909740143947059355430419592586609706180630276455594502873540595235642151691957764804001924126759706863988359099560996957683111921537365660759804023584719378574749632067167016519758669819911008561320608433463755859773731639498612955405948989543232692536858258487474447544840271357348878463605956059718183526982243601975929645647571755764457452782027262560269263384861879376779987719128563343473845568483005298091505486894805271594255872165937610222352047603308537552229935209711193991635947511837531887689462107846871694816641592860098659033028787590075596370559112057238291678112761944508499732197220504682119006208647633643813039143253374552303776195683031531609433852082216117153324227968482550472910844695838247841647351921020025718961619565022153578106744716743072726384315835582266101409337501159475676657352758334663547722474985026980272063403346465096210842501186734975132125947876859013686646748569726117790088646463066742326206804820455832985943170837523155634789259530481676647600578026704945189319966909193062899991998030846857693182035480828749545174593767183002588164688828191904823708128461848925559294409100432150671803521300436667033929297491716705351057579464488363397924907581539260757271141291254266576323498634626004752187018461713364470819323770529128115418652438605616386746219735929485758362624524740961274092774452446032498395973599973327368396710360222060743408464376106860138811749544498301347881049851563293403359865929939434630654764206313137534323720141813682849109696478203955030137222467820255432151590162726105274597224541261184321714436591648194067844713635365666910129623738027276919018637931347565687953057708226639903559594130610997925848399231600314587324855493351900605898836215055954892615876183509785515477549574749688189012865151457047780567933114752565465778235107850560365907268647008671464255589512095570704256246154005929521144653608010696660272165651315254899375792790277218679978067840897926403839635042012678370604119974754232869093210796454982084681688973930366409553103290084603036948399504007418474399966356809713246975516947554838848859314137676559046759175666384485595685029244603303342395872088564199042516810649303960753007566114144851483755182818607393888169502540486454447620257508579447690668995939352790713885449472837247111861998624415074728930283664043518403744007361797759280878038558032206573079597472080345810310151516219044626186940323468395502222351469405014124518715928467772507402373450843099919220927599018513597360956501862350708026045464471839979363333485323709896208138052000780285371658799087163455850133141202460014557559407426685586546593746656432701860973383067660400654295299029649505953970034528080640198577632792626465322916747370293179673908839081184245357990910718225278678117128616837930328121222656265421851282736778978534581873275598489651594233952978059270693302617215678187906379216564024642206409478149625239217903644572355439580479689883609767576899531325170783545336691273718193199624288227785222335763360266517744099465297951444923701823706577127933337518410653262205515033650912277127936831430916643379119915746481689426596451272311538690068764489590372133502103822440976882288255396034146156528310362133840529401396536150483792287238753106114459080157188071648490679461808233328572289950251406784882758501636971806300175463726839860811924480034008052896648832970351467654617413420868225137355833469651775791094432057939957064913097619646411078056381836563912039479945393403604920008044357577743754061544067546748228030568220989568702074408550866751577162767918922315481948192909752071051950784770701676905456099784172387471560504247908131069375795703313525160880806278211250606100605993062225249919334311616868055981108434992650944800113331256675777097864578486090060109126354736642529542683399596027374527978436282379439142287923801918825500765633450871438056165808829307560887075384067668393124246144708494476231792767801460442484540032665912438123464956299083733623396874007709742210511249489315647630623757833041507899193055979781190390995060619306927649813299912199023214161551236305773303358581699919728422953938245285909860995680098443364678558433884099260735113760062076489908236918748575411097581747368801791490292561062126169506238425224084882873155886609044674407048152504630974316426516029312924933485569684563221212685862393758932627640080770674773131263984532779140456066625406889897581746082120682298047962717838299801801159850913330349699893805558806851645936866150817429039151477206477272564816312005353543738198112534047337858779028685835274246184792938971089730945693668052354039073950974049168067100930670447211389622292258184453414603519244679562324601765266735861214867747177566063640705611388109022869731912744519430870458012396434621622336266223374042565508805760047276192438232590884168226858880619779138672113047267940837111676818010668713252920045811554648564001166511329890689655373585941806963872635085934878451399491026244643487291595699322526848043175568908294063171964703804372588663259301507089505918598077942360120295494335553141240199419138086011141008697865032359907412597357900437750237794995896251795371634209711010283316632533838380370509102715798290750215257200238970837383744955047328568338096019674423165466313723174394970717899760443684802468962667390581656227777846809743059134304744188533941879844323642866455421446917579499531720788357994982452746714299235593694667591963434573588741324520883660527983709589054130363094971139358082501459225971728162645071104589956704201006903824095659484402703537876095043706820603589394765639628219289274216771627998500310376691584188690045968325115611523486191602151655052247763407020072551252745676970248976718840067700474662954054185572509771183852511181863681700741607140261152146855090924365000918641206678923467278448518784795169244521776913265007081297964774196852680436166914188609615338317097964930430979186840896508198347939117810068580871742965781114330991016395629586973232109231956527580649030892329353992903354956293421745126212524339299818888712906787568057539534144235698148405428023048442524378905353920991879619311916950225429847687452679244362202034246777118118455474648198053389230255878381525271821272804180577573994882038152320778953020467427173698332017634642342465203565772302098972735533474951207758771242351471429587845009304911062262535144458055205387301771964826174839760802120787696555339470061340630914459171876978672289356155224246964874479815564728966807886447631129553178794149453602141900192621450625245788584881395655192462117888900272398603241001066591313477245922294474945418260555845836551595261338478687649379295207021805945531168003397219939364790316246405354159988783453304829620561283365055278154739701648468054390214501400535432305312443424826223095847310420307185733242492852596692450218517728099387776997550834834775862287233522807836949752240424392020478498889609489504618890567010475562253274478963435174586555669696683789752790504681381849905164427205086826987804418249110893665609045874593629144991743031285412385280401607883765221165274920860241952799148359893046908937299196641101609800150098860993140280402267390745689852711921663818798777955476393034105942390766400388746138067183865107284626415760609065136606550152442930323780314837327680371489100214256102068181735453654736345035089542142654529328820210958560489593314462157458301396356101758528811087865350354651338165091023447463940088877599935771027473218850837726903921801215490274002266368120330281088548054032410113994856000416366014681528553093304510554954843358118233982357053016249047261875113751517815967375686058960286371949743544619320668994711757363746670305160296895212977223877882145430052996557451021967738928954950973655679857294532277264799706548822327056653379888332009388919316532350607399216336967284085858890176346044074484706783049907239140739201804982838156951630604066691719019514763012456920036001203199786496808796497658993746315825415363114207197971885078451720451829557033864133874420881491531388513321637951332830420193743822466523445073708654122967381979045426362516595405022472780484453138132622496352742106729869197453413473209356231489101614031221183064466371641811612940067968931906570780126728391855081093648925728961314570948413296151384886528934482312981115817603406643881396995861189436553693551264518935135813336081733019242709292537342730158220644934802858048690026906630926286138233561592908499076932305505597585785637718173187571521771436464485830760801149435792607688884195580178812057169205196360392046885739105031656635251042436109563091163614750293873720349621611533176552816926943546776414436796237841100040712680513315873255296862045077727454163504951844141002064276481180966669150095625169514957916155822936874177349260241084118008354373903131277559764184418401077968968194597510613460385450456277606539865244136355747430870297045269288682690143454462409919970570618639185825319472261566508450556416676914867267712568817860850054411270444942870475845585943940235757677099799304065123590745103836397654543457250721507475938580742868980776245243260947128901619072468739774662548236990778881428394953396040371512462508501068820394415801633834558538510480896044409234991594491876537386621983873880138351006554255883847084405077017224371054573130625425802756696304219089768906511797859764439398458210715055015367116967587223552931889502038771324595910584931839185884957387624421330849538831707081731197133561807044164201235976348494355595619269660914814237643718023806847632837197919823680897659342264713602035064130948601750520215592063639396994061801444631280782994455014001041080362799977209358747968739786205210149705587965365026151730823534940828742559945804628725464396635937213533771369710922621959968871102054937757965480574229449098892258822608019272012952690652508757575436250385132043282278030697470689304947703232459864580438944425445727100827614707928532648822863262670762375538914384686936617334485646140494474796206395368223889061534230989567430220279419384688053325592326664398402918138722806756955036947034049372664501353098644915766645792497898260334478588411794911988082220112346885598780028665013781578190458871439414780067311470959144065394117910683614970922184287964785419237779079888836853010705042953477566730303386950389674215826306178742082971709864736635092175424018887288228174495419724373743016572641037908028057954279619352665021393798020409977629923776180592654792288357031871009118012543818983491502226704318610695189427838981894896092318262476584981035897622183492483502074301421395716704308251444950124375918170477051252262320086347628822982666572402960110317230255763676488975847097524970840936894226349039146638601554131132217495015299140819585972850191690904210050017839149060086055604739900475236524274888601601923735874496221747181727999975431355049066249920673326045399352571886954848904128586586619477035237708794145721702990782085189616294590091451500203842407457699722435645639980599140967696213217615171599590989206808823661132762297661457017419887160418170708709802917357242245135037295876076566791368932755085246435626235485880950402979825388956722947006000211218242928924395063328898975657252121894103253328613247437490587805508982101663866868311703423698127181777676136635453077582058270616205313479615554128905035231637451942287401686453522991587162895783737300673464522163223322140814926239867954606722741267087123517664404867611197915113771963118396453141448853148288684974368856314829776289224894621868197849202073562549072905645734797261392823880000153038020059502433640649168531903637076954997437278044405283824647211079684460000748860887921215818052296926132169261687649177980868837499447846357512611340492206244664270331467536365189903679417666422117729352413611666594337717314148173394411626839645817386732222599159479781226371317159911095710179747370340027212275901372100530289714374593224968234922805853004686859903273579151680059044609722855183122544476078280893180901731042812638356635004878957161650938514474964726757116283521379566261652142184370374391110688063454417518971060449585334693793816582371264658826321156594865578846505825128953311892812065723570428366943427441618291581605373594442619961047574697074658959905090216040043749920284690897031534004548233425954788431223000153126139114687788281175972728897594007048436407821646553001099532680832792072531560047735870700255189929503023002247275432515956315834439419648082914671542786021611266353657766669730306807876348454282416519461123661751481457356488164300119709526391873918799242377063938521536361008475108557424095612602013006000166019414889793097926032837379463766934769743555741958126952200197769219428492421153264511225360924613768455378665776972442969903213752630800904743387667454846076923902285840337046354064827779950305506319892554121571935830547002467582481750935380084477801044363422835322691628690893280227909929753760146465738698521245164509296996278865570181695418851783339487551361839982010870893815763634644253527598239678748399496370380570670251005469395718766815845046788015798388560371368388633912690532823703072072573332512620255711252597654304992159908026429971309333547148786247092959990393453986856625293288033352919899980415288338444728190888584414158493521672771784511482569699682282701350342160080943111853528156109020774601604001091436925048327744121551914401798581227526464017802913268323017029241503876787394233852458175077807586800454512793922952268866217878912104967405099210843246025915086425758760989082468884777743334781913657961806805883841317564210241831985321089755313546980656569283653688012489152975756520705204809103529730459645804092187533717255339232677892972506128001804160895645537743683575421471828766448025462787186896266354599504737577937050519825094685972223629124761425830137448501182110766962828164623896868012601656608669389736148435350172255081552773385020492402125577538512142415030927458324695108025345545580198770698694171388109283826962580394142896810996707233390222972179141529615129675567842007466129989685885138668792083034925796106085126083381329988972252700429978154858323548355424945493346308406571299353082548289893818628486725628266791087159135428183620378129915370333095595483343689003060636246127617139318685502898547731212485764823029998199466767160798475689196090947622735440047471471860746607272367320633937263498806156068829808824304201367163561414735875167367714008046599038924161102805695928493915082916551960737164021159855435861354296653315471203775602724459909997760528061296873990504627835325809600093306403944670447197366508715134340198698684045552192166742013327857742616787309821923131671163184338817429089158552252577545072638775639260278511952541608631227538839767018132106670149272774339138055645113689469217100621354370859100836372392858022817211333091195237603125963444520890962661986759836833093432980304738309170619509081813895764635088043985690052083228825862334080469436615251433130391725282423604001914724882061323607021796833363145266731746185462323020676189792543977921717836841057419719226872182918632169703063368054754466932184264608071472523177061988506373362007842710084769148070657504444787594186143103090069294161601992441665556902646880155070191481444997694476429707941014757191014327974557028034928665044425243803565383808945076933430333740993505119226476164263432988280465677568811789374970984365159400572675296442095140596902839203279981193854825793409253210978540528668173448725841543151878934052784921194107136003222314226964038261204515278816340216195203386532133106509926616870120725033823321693818870103293954540691629598465918032364167637510840838687340748125058846365636186104355993405233087152820375434531400261385021943666689991939632027155990274691729211855445128593611689377551696170488613819974720928858707961392458356604250247799951671608268802498695114727616432786922192241154426635858665809303918843914716221931356361075043483129875912043679942105376870171614766929997766810639467402865985532603139043331560993408625892873069519349908684146430514635879873404780474249296229351856848867057633860835390816928561342310791437474156893286700709663117805766331368338997319139817264741895245173325246994900720429796243393230059713227461313248892809895932877851981084945493223852781696144434855430188579344081586132114813578704061635803381743255712475472086988477450589166312940108846163750050242044045513038525946335847958489720504232964106085351633756327610144656982208324497371101733875853194632999880607276112212750540889111843645804994341510502793530984031184013748284916506116492673044288393372045761106224189302073678105453931750277476814702116314494530156540070927473072149660233592766115503780907828696390832748782460391017084193553166864713221581128343775004719860556771765434326765826100944012629616775665064603345407232139501373631171529885438351801975220119132465881452284700995913262741113293618724168790219915282930328779546001815321516038694744879684678255887560481564424657729131696134506298505820170486373256253085225398056290758568599110658882116044400026688252514152559481056809697975483663724498301672220042869682441062001418115374708851819925601129054508698850877364869101681532301539958395800521618674045263835324371830079949112508131487231221367611980519684725369391809677472623595725758016069815920574160653640815895416679551261330299332140469374720888041708526073541103745448446796426795231598817245533563705188036182920220391783775019047954046879750079347945954834743402257113820352785741664358584898840127052887992680711131022434080572045128089431357781857169230290865621988429265536000499812613263864272862028333864424283275432625067821384019076513859138368070778431922377862482166740014704233932148884170287543424719181314843548836943487711168475401332746521124015444962022467487587704322305379402528176534052600177019218175743991701527549365936018344479832753612267604455245110632325524769213281611766078907900232850836539887005827473796653114704085523949895606159842913828352153458847452336390585955396876208902225202879873962004439350039681001848391952584631424915657301272771943663918476445297628836714085158352737886039945728484965143248826833856496306404154060228716482334872806992860948579843006048544841925270042407485758103560308683799020267457773075157696952244491196381490912071076297614514096466152425372124232770311810495085851056876790842922354451885932300242223640755748883709946580542844753705110982640252994408738282579290997635253532055146658203939896083486849539952652042189571712706604341851281663925839184683150640274973334016923481862640041071201940648728904876372076055650949064279177289932675023569607117536115345165028307938781720011659783803594855469212410897318970888022286463465351345932378717335933456892187249823714973454061050157187577738711914983779724465404338354182693009080743287962859205258403742363398622946803724851280051766915651092797404619303686906928198920923115069452762941229274423571222605180186932299825460198835991071589075371155167485969021851105405267674105542743617200896886120392767588999269906430951669541312276992174158240982402900886652517316900634606106001960499131597740961527082488289919260835959316214905596055499170264005698418464854205789362433784930982824158202945545141657270464026425770087904796582467483388208322955154572210997287218084803821254530598574934089430070363097382277515200333155630739820433884203299941970490759902391784593587041588375341293341384237262937565451248657213555994271924693369528345721404482708012530198268394523334040859553819865325421355596547126846025255360092270521383784575896568951585709638239324205365765157065067059420266652861548969386586865057627609336007642182204282995750042058924645083958683044370309386504196616691797722490147283836011243206028618373565967428904480237753937857452451776710726726167783175077745988388047199358326298259155881261985986597842996892899426806186016395477299919687699436990772014263942314463930495185165903129781728370758988503597370473202902998308942834177388423275971961667245598396862004538931313854358723121070276995293580012324683729639076281435096521791992009000497459536501296605120492662003203780536575422364012864199676794552036257850353886960964818488023529291648332217106321422219057781567864308852699572104591899772003765846541214391040303494863718422874561644548730783954712587005529578440295938477681137969409319191365099505149986719373611939461121651731933444555372149561220267329776179244813574583076355087754819794929872331126310654557110995165172754756767246695229517630061650407322389293475081382496841133274801426981499472754588626207631540525660923230431610537684737060646746194114792876086928986600752277560294954367222951080425685686468111573910882697648019588612767994937793698341867366383092463843709051133859012287697082156383850113887583991886421652044041916694260093121426458658103628157021123115158370273427344502373469422089460242563118246040679102374823437891237275871598700692533845438754704606699390495563749991383327888827810387288151931680536549172961440869202344058879862654024232305605566335050010680780076751357447540045355633498077103668776499344248164481911675504040915172346767211553222743282123729770734309761798699040977933524842867261113939897479300850627176384631714239231795748787425010926705067570487994644737726563458797849835017296709430930073341345276711914195494632478202491040101117496542678720572681078203558368758144829935338682065512334537442491407025286910483081179656945069297163867353209106832861625487605274136107214441855783353076849121590023655760320754804079226806235271018543297427292202207993182712057485467263714450684845292020320988012173008123005906090991041636675052660805146334218836784453013720105146468483264326492355533494485611737697746684047864945244977882461570312488451680742828889483664168431853464663620991249185445908945753549276640986143191717928255028468340216196815248101444306592422093837563696487466900563657830779787833754714101151506143287267917191475112361380330503684190506769521964398448039188462368871373023104807870765641928486277552929605402961965203331320379279067634404555997905684021559910601173249209914958564213099389360959399755716427565113271078084160812907255332876020199905884439921229507973497271340842564246286045574577561194400260163411282342134342787604447153745109041973785404540024525696751254052726437064893281021862237941277009120799024515236901358182271863067352534121559821175512072369757035397452889885143732857073764292438865950856218196416634866849019320848504495586609055837347315992235782371304373784952414528175355440086906093694493699368031180467501899721947661935223388196910806353775069302455830870983870372536673285588188654129819418032046393243057076594295622779349940260933230299095517790234652837243599841299772842652704620494344332202575368587401319124153774883066779777896777646245386132462392358683470824861210524712970147358744037013850329287528150849909964561455052617533529496760092945297999338672251608883430740422333922590332032004349450271144501344216831956427643775785384165085067564316005847306859666343597604454105499311507793674449260799852929830302825891355737358770351303023838567099537575126625508602001946469747849886714524711335020706364552769731642081022866158063736872597374828575426846737397713298127696536512980217183708225384030173922940126513625630007393047651098144324684081020311116709578410616968110168078061534445414269999411184505340158160869757963924272639422094990984185560676205617247353337926756522688659189453956163328241245678607020098723993733630635670963586203846215756538880365592662765763208118526169473167934038098488472000733733017880698941723167225026074276514415746010656440255043183351834225238678146955947271161167030404874052451351733535961163268973040718565521288147218604158066874197852660998375079559186243186591323510878891433923212493021155812032258635692673416294712537755971080589380001964994732722356729541360958405004253440237143856475398361675942594853403238205140135540398392698139909159682487715039964706007408932707033198541785793779045776335558893063172697813055288767844598057407396340020428813514235786774233008515365574621385315841724645455854736919906107837956654170666531113252069336662980598015240819689833023362090553387578345456234684979473809900917443965470530077771221567619662410022796195313387550169390934633863329885217823157172237921945834672504215848969507263575500202577530159428397961364533695319144253457076174180544743070540769948019810601898414830306430651543704883120840269712985085438648328011101195378708212612758618739039708935899490751254485003885388656565128043370947221376022445424650468213738226851520081297791441901165157694860685422249669485060264265410889272527527066468751435653081002524671377964772240869316936456927150495612016703104054422887903694175386857630281626196822438499455164717953511671979157543820780515992654453279614483453243480984081132534218809489034279384861484021216313873300363156848660699691320166870352303656059171375792005357272813677983606057682872971233578487626468084948529370159634375131353721366932024828239601188873386675510627583712346526599748107076067964759562751490850048349768304481000378760913665345244402230915448248256830719825450664232582416190334240980009379737448777740071715270154988617761822456561337905278684443401957429145274093469188626783800237131495565236824123135211980787396056835556912138606226664143151342016170367367776736574944448403954428781317920439316224488320648016285798407289743619260830962408643166118880434579284123964427185086938096838794246903863318462876551637070521439778218810321727083193674064632939015226998842808774114332188742078067460061500285048913832504196005600654114810905749915436187606088318743202732250055128159828618356716779421826549212916157123072866420638535509838140351020424425066916094063804602457825057598179136176227063684860887066762827750286790350762828534576933395888815232861732053208741270575310703302955545788499268502354164605257251465657664718340938268903933365236574294688000142412347398112220312549557504178743323594785113716651718676817409405132158984828315545026175202842791391250103390554417707388611075148317051023850861432080504571071906853896682578711203894065725643951918541189293167316315953982469090768347043946612666548581200998115707927422376431371606328468094392578417271276764873073422299821401671571614855123999896959266893424764341408283146685070168566137415744671330586900728204464568633335549251908486888430310197010973428846944026126192061102090561908768307010347034517705048964551287103174519490625599801164075879381277625988953473919808365053648874840011440649986409392695141560860876553820764426632731914576296581648219929839125842514643922440613217861111120130405503238472707107932322733248491558601101471866955919185091218377795808239060824483299717007315226359008103842224482139672395253132572715010804901172443561499119497421301432903961650337128054786882923772388105667149018317812057393837785352651510172770584611812038180785373039155404341782009777785073930700173043088584953490856979160088499584481354627977079343650125369441726629090037984625166483013306175479555584305937070994335432685297252002202812338602276256282219511749847616593400972850187487603156974133296937927228703192727250497481744593357979911894580778451901570553707976133704832538444136776086243469400861045190827260839079783445700200027069966087120716057896811915677430484759506512596896468308694492549360320608019516772863989223362680586488016122227350087581363995104300454146468268648671794536902577839776649155131694491462440826679603593191223988547545589454430150595061353081462538096565052347574597478542664118714699572981354151746069752392504091382121128026938004758383776547181052583586402594642412855983098373339964378384304360620789632478044841607007186018908317147042543094881408111164048053357033450964506488884692665277110471169471343004628083827337564755468349739756917143433452606922865429256502571908657157332591753289255317291692693059031376445988052296255658663251891948252075753879080148154662695543598334897337467104861554179796203713847402628521981089715987685928828273077606772482632586942347116138975866353811661580409929366234406269152991532847310713659055775722454759726246246063096714989320676068043150763239276937736077493196645354297110810847785588169025578246790676349727007071472242090532782567905811635418414437082978629030375685846540229275398731038190414489938543287603348664314717180354823789006964331027866721225099117414336124353122797954236406575952206636468588642697337998206116745106525315647519962838646875197700519927876237723227742604165040377633323637220084931422939860326349199968381739090120009708208372833932502574473314007681157793795340913316581214959130579262392939388656718235515920084419813233640011233479944722545635209735863727375959685204576813116696544214311996318273173110397483030413993993850558039274298998153215238145844993040620830724508025651925288847757540031496896213228723494878891709399502420205197957620257908295466298066538475734288154012222617402820301514708925403314087873593224005067264915750103049190646859820542557827479438133686335714726147129001031100475489594025228641939519122846447460339246899396997927489493890764481214902856800088231082886924604673427697514016410410916086835034338266013176530434374796703231431810318960643369488901300761509974684685784229308390318978417546861906742473801123158288033065302077985355299816985450800751677890914098839591495826114759587728555686829948548028107547085209104206232969860228953349626692522234519375446133111873562831280208749398294953121593786132618252665102886935941325361323168090416342228108498000950466586241191106692469834320754956821989717476434187428637298796255308504431916272563180867042544407144921506166513929436482887079120110907187214384885748382084656212154264350191445827792658289232356962853247508963990707728963700387699318615032411443567635621721064193354066082471766669948275538471184833158174654008087676638597700534366090017420356743509085415225151845956375939591473752392626357796683007189728288572771045814112406587083667684260230899594995372284955072846420728975869298736599566988032610647751902630986455590012616357391992912261115240367208021283754178657514043302620323459591606360875468506876459697332103830578341629926226400186954351256249720126967464049601725418912330229183861827730705158294240008879034175572173117475844604508155140720435565096624821820669818093470282663657679846812996651883125246811560538678319003016279813656469085604569717004157219548576178757664144810341094737882046182468927684336315071006921057116844983098265451835425071195768864301495265890227182563194950261484022056531977690430833720805314215776125626307351306711581760895077686495535705720595841622140416456420462277086243624651061624694366645992407178239820552568295403775567826889247583764557142189530069835769246236599932328828549896269509655571133123864506586023873764434543060933050743299368778379800995710214603577345114235016803887006278172173673911496446317968308805190869903027421512532661209620009764018292936627942086501693817817771307400449390387048578408626535489761268470573112038954637130559372990072426141562421382090565219602233909669947742025661576134032167717964574142236384013545900377681560927159641470858844394546070060532605447772682126379969355994423026654049694126076286584362566888406543553211730707748368241407130596019287613562838804257176013209992247619459252119427156487907065882981518060413717425178571120108097122526876884244941456534963502346270675595413833357412594016621681500053288634541208691486949005985065512941735708327251203726118524231380768668504794619392923919001058785340663824760524506254958181655083523288764601837469309964453489229348385106586993040367375299310089100109536912529568423293671061633295562159935860851789511449631869477027763496777143084697692647747494512065280502790176797052158715739859356981648095273144221676142922275134402988190336122729364106319066536131755320984724647495463443330888971763900212179743024036809376464829320653993594361630109257549407678546926258557777272108314379938413718274167160027134109778338294762684374544862487424887631707073640018916307789958557663193001175460312208625957071686859270587563832070492817469325455308919761995149334836667282283920959743484919523848506631425728172140890863723615183707466032795741026710686096507310681932269406659096307416211216843117748899387954866261504269751757704735592312662889801983166137037015177268840506441800340932898888744645865485335386940565569029865863553762525931618230862128933356950895863444749638130261185763470427213944508948931875852375821358505007643098326128726910623950045228351188554283812431695729974652962699885196965393423506729385230509534811364460009667901129923246296077999967212555542207862386412216560276411250356864240316258072180589107302875334904667700552515832586410803216470920366019241004988195787517735285295767150970665211699525465405646415700340222522033984350936092246723224869378497144987632852443436359224024501608970367653092078746424330961907827677872444952875780390062687773195373102666073512386367940026980258987540175876430790219483667378997647042960291823188715822021145657599692506237351745156046982600226064859020696314713521161913161601899243279069944154885496465973147188985388607076409894464765191234020667316527411567429158687106903354167911181387585220591908908090906157466549787839731234385109707605013131650537541328702750342205686536326245182366222082106880387339228458586816455339283232802234406009326700907515041017902047946282639835772046994433809202519948602068712988915489061230855505282561606904928435560676583166601697036714764972681013841587874078088473140694545066969267603956323109264161234749046840738009926638644506273807808919140973796100380004628228670800099742049581116961424065611879355643521551746632290258451533817817099352541266261674535158388611240320239512188950197399598229779534099350419341180058725786978722013585267451207180845450127745036808592830897086659970568523261932082309125814030314428925957569633485527361667650481713795942639382833068453385698827218812807799248166744959410845721464820263517191137073014026485227070220565280533557584377182897384716307178813435401630766533973495720907676052014549968186488775108283996655852059588015511345907903300536358670819549422114992766214077997725752307355380968647033176478755404175777552143635994257512842305367937314363159678306604536789941024512322428704886110112535529519058101186502941792667288245266812578999060664687499203225971411595752836835657993722106257963739242327747951071332263414926879159778393330082999208962926181620244650853759516839876821481486091004194582426061908139534555613598576020259084807116546622120618835480709821914795169312608139746059552691829691367984839419335664057517851118246722183297470624954044676896989077627340129373472459863807948060970059452083461396581671655020888175576773361611271925318986764921641095078857679562266657916857574881734020961258743149793559098493556495485814886174820205385487157867310099261364837228110882265038490270883142982768073979005495982765324458791338495121349297114189123325365761488213207375331358551904544725571652969380799948009588861576500524498803253798469065842502756908093988115198524113405933569531788898182312769672330020606066041004437727267271302518509281681245421128451591472015444785146473841655062494384723026413289779577311092250961218180087631091154453418466186262460060909674208988889529204438445694085450906153980308558294982625956287675853115166320901351356102074878684034871626806997513192360553782773505536982314745606785113117465191318088240097326700654641477509500619028816060497864120794433798940211856388910198993897644987709384981560899865299480497632629941121534999313185429454637525663537529745795864734051882039730382049136040333621971655472489971026874862150520815185700425097946375100696953215938961551131361671554004568450011936940155026023117626615356940998723697156103202356269016782366045549779047419502165180074235462830109275993897390814922216436290390764828391283348288103434491133932765466431387270557023930990789138513284327948505627085395432700562864795340845323039487555691308059755121030851438018974543854281996788600023264693533315970695390934349928172722359991903245852688988903046062956566366728728445029123391871347448266179727625911348688559776652893482572430254842674236095798383691141227363844423602237171921190219321406027571204465677148034587847160440451884288069850848376678693232631079962064365960019143345751046148617961556706273652329336699278293836808482590974153823556266031552889798779955098609872835799211275359370929820968428493274983766996415637310650254734146243837508946859940290805204024249382772762423389915422692342465278740639313677143051385384765062017142272321912657643783779933174863840813286525259007020650322525830977569534313283987925818489230979542601130141232554220164386708684670791673060272005752161187896647566928242689837218438021866002425970025776799103856332070956977304393538321245475255111979763712209811710652404664111103195058958473040516376547306007428596471322239168575812884207194276584817639976559212969251491779856651749129051184214708765592343245246779463053554365403593461235461423203114763059841686769961428390667195715645768171918002495205313559795409318504875041441253013148610490271481111240986024331051604745384452879713175558775316912918685058922070863244872326205263816963333581792205103066316894825087011484806202854068958840142081827384083834236002533013470753546457107585682453435301913427574131336181001155173340405552993958785151451944409911879306165632964502745580907242733106990650647897595225854732742514839636611625262202641524581739843912968213081060561328319339913306490773474396921339565871105918649740134174765250422021370981773122383815630541683943599354121968821666699849159161167098228057369354369516135569952529602618957569136086108133394481697755380696794153383142703164408932739885043553649461522971470707380548922621195513168195402140007234748608055274402100737341477982112229833412387862629243360725704469517581796363456323944163162193986329918420448266332988682938462229469872437885386644797734220735377648495544708263981191679852670364266677253101505566854547283069875526762662015208445924706096924979005679725791090009159150710264765079484394247714805899990907420196791824281007744928686047988521997517966901036191524457376030010336964490133303056251843659840220259053018165798953504303747291736418783044846359358313331609888117298388754171246215861071954622797071330146924552016822522750441468324000955022607330276237997885695083542400767492316287740821331125592676846355549781129383273402079781173962291707170062908851807079463544336839482777680457820800893993730859018729983823272002195431290755367048368898860253793502543871027041012893290734787684438642526162209352448039627882290444741694165127716747514796991444378621451135079094191055808347426314885659040728556543145842657931538016614830752463012955836843186375146018329778661385029601264126864186431776745436620582192634590773277803308477233652526187275338911724981620362914632839145427442436116504805526082126764411023584406959648560426796104233301157759374824813255821771617910479340700928383118321250043110790489142962688940720562312930032582379169220198249990301297912226811136392311305783218644880617889538610007524425833694613050153188887716622265125837848493348941865482067421334400742446057876834198830689836181243284186550141443909868314580538199453860234104650867716431276228598044950147291085519758097420711909586611134277897168120665582252715822708847639678636883652347785483724037819466371756256167109900673317242367549123887905523314159319462152647149701357780375137768316966780266459743408397619967007402770208159636100688340779233232685660432360645158249346803031592141336493628037448576670755625563142619708422610186117743154492676285746463923616716383885956914208351957445216922471483997788749586019368285171928609495651068692017256901892977965599356030701321286126481463032518243096893988335836151224958850509741895772156058725066258728448122357916291362641601648654744164680646568660921910030521256993338870036007290930756004276322482828273827417543179043523521994467123958159233704274237852331935789417413254531620034947786619565409412921294934465900754335237548822529233387347932906526159732509770238900193049754882507624267963682550699390675490009602593721295060105382742322232447057945548483860579063004667244459250597958411780799922778910225376853203799539935783420135590789302235540542235841808237816379575031564992887768675395627783765189626671318049948426302524694975742298601411523669779313772840211553019484368889058037480150209092938016797590011740585755352918322644802769103153020330447648972481386891135907131703362799543663826588339079331800502883356324700309280083644855446686337185698541837634429828160546419553947269446584873324620576103250683137496691401200182138208788552458093249987228359316191081082129780072592439009683527441466215003888199574999363901737465705263614490865364830845063255196974268133883141961930885033586622763914014854538272480662447141592150331621828449773655147769112437074685963345625103386116555631229406100181633220439917689483688814416376126105428500125246069372890728997519049373232813330538095627055040714571445317115634181149419844478714622214521964574083217539685615095412705294461318842950618167077026528530787259062671080280160211977490994864785691330158744758801337362584969880987168396924163311946018303682568430872592265028236013293143813761744534789253811598003739838494814557811005254219509070748618737702664927654677582323539443402979732563185689783033141897339929586335495619274354632443559930559029863409023131903022974601870462003179692111617472089092264704060727599374564128565847430084470709446474760837997088092645070487671921664158089574692512402425485521073250685939402171025107930537062725134259384534526331628805763022716742490483185938504675891031388737419008525315004531591217764335712192940946362231840556973904224084112648521284704761627779949047474926318734425680781225650541411188965814934685410431297780758237262864097698485795581441087472801461087689444733067391945617303654828850180517593838680430908326846727991550951765981838609843852099489001234708856209826985739985714310723257155021548704997589185186148920992068441437545647705780346086848365020510471508616515587581778898455517093441968561603063063848444796459119127371168025108371217731796520809902780217178777388676703004962508150227464843767938465296739209948113826052368050557625344742181482226389362842696583098631568205831266930530117982772664880534199310823036431395972338147918935712585898179320772036622580766339257916443945862385673731473148518939369493225379835151974302241624910724798840209501831610445743919400747338897326534140610398457631689503100365399922677400002945544194863378584462429331211231941737111326950332547016889737613612456621717163310287628057782915405303199601519814418662333528154199294985290709673870483119695559365997715307294028920557150843523898261213070041643208965460058355210908514740742573807840389920857993109494102571469784951397435767462809885113377651442712700591162549425486798316045298172808803153128629872478932064369840368906640872877665718053117899044862777197911642768974775438036157244722233693351607130426739425822100849381909061278298915180484814327047591987548610355273489833081673429321807699446659573723823907307199893105517333262689386903860590910917102133800570031169087017832002965782199923292713960755017298702655470557472999395258585217690274352711505916462141017236032493548179872202591384902394485982898560756418832131015740804893982229179318304481969930335630059797161575566884657598129156483025889708532884744105698648454166183507442813974203224897778658681043967443192694363734931331920952811511999675792857669604975484330738048871183740041294962069904091767907916646110425665040884796299580791578132309435210860741462832792409227062063468275919682807471538052560485584920620938700493374303683122275479748745814072627582681552892544045833916285430961530020103802903295415975597641174236203262147048111593796513597827160826415311061658404222017578303247051963424670151213057667867329293882617468404191091431748853976148191219241630732475968330723847496395667268659257055692709757960801845212730247581287266082078763128843973790552080509629128878335928171156323685908694531465038888145893496921705583553947326307340163976772612219142959709281652925545209842765334885557341605913253467460022706819605780253882775943695831702732849481929584196397433533689889033671444894233057302839756325690730011113996222550152758112884864900979440078159467360412266569189944789399743321649659067290116322481906489293521473057935293976130735427300082037822708038829468900286379873232609309089896187535363174884501510255587161689190077389425210625643299405170547319262393548636365098050638626292229872330436592771019795617028902103563263677662543230753781403536041517956063358561416413103284298885956742390573958638433600788391635032351116092260424553610627888069836755752759339082850183954705088389568200800813612674999827158873372550401048855594504996989893803649488658208700923649820780861816720779705904036921958805133642629386434652201285731389975696136338562498429084988824259881648644919455142697114241465373311215417354954270529778402485159372978286988310534170858652374699003050035019505430663846266818537942400292262330718459943923920161610970227893836373158654631091003018564106383373430521009146793466717295564830343455604352746782978202006910098267514624235065621703703789262808318928427895348215596292351770603179473873113209500657459496737105264091471397645874395303812533758214217193894919395666258157470751483874813698322250536397467457055308378860302889116941995333787900743840402727091755699999226473260443632068136813617809716629232808436088827011515088473786637761861455841590921396047304825951288272973444847131423971091062598861064169391409515530621277640528305424483084130678119512289362802883194469847876000464059261601018754498319025233503356050475100908083533428275986949917757544771699914501993597807497614377385151501379696578594482832628794105412507224179150952156866535814493637071899603403853748111205230066612853431511642332251241316791273874514547329446283870233431327598933222587846040435447347283211765697941645252725493568469896329254001899826560653346739817762512900541903776288642237524247654625899768407003371541778602316043970680202993611885340298934647788427552938267133895901999125727540010211720321808660722938427384549571467337021901511656747792453431743604969237459095971804328994628724450274035511706673786809956150738829971121492507721251421551655229509091400153564300213316584788368927472384080770918290072697148856817483243446093179795919560234746067996161466671804775452780910978595248945896739643271887586937674475674341640030096665275720679763003289596118674249037608955996635893899498695518833240911611465210249061481703469310858615225618811504829946356366499712830105532773891862798659566353368247463360757776757608089177325732977527451341941000152274807652391884238129902475548932324175706423117878033951713809982519395725797052489950492406809982479071787261974103577680584935477316123663180167686606742540756681976994748466014565133845634475091986471803711453157587215631262408316276063513117833718570655373343544041044051493348174123405123562353016729302533789923867813163206120645735959349753483395416311512417029433534222310215929702703462699690490468947912080417316052045387579504864295778023398479424061875071325099231443705738955092263989146903569437267464478311308161056071365453345146426807061917183484387553027698359894873091916430977938023903757246602561025499298883993000816110495437966658035862487544969835615575049739924670473077200383313282286375466043364977841852276982858373518082859565201219523134169654898611123735922214659442701086234598858833633140874195693812362553863458520187441918070377347014826862479611105797782664199847603607783686241877743248787488644762246890255415963960370203927084658521648478089857749676906386855489959544383340226480803948746609352325717221400975479488329560932949706348737076141949551298411457727830200718238009808094453686191045996988396444519295485660520593664066654778951522451010904453394188514205709302418637165069178806900670950836400478433650952279667664093599338478028943817986010435051562694047133390993015087593498635572691109096172568007667160678299046371745915865041195245927749296078272482006042155285005457164139745789915135490007681148416653306092941602188953215853684723599972242747762447768399177542192229125118048049520105026183441766769677655981066879760199246879644926289461430902010807419350753637538416690330588919377479231361614539623148335232953832788634508115307150962689363175801559719891870892402348805877784205139985922773113872340343405550130694969827207300372210063593806636351253233516959849454067709398643145693992984007727067508789720663863683565110975609532563264760964011060425135087554215436584025896781675489970835951566898756823051469074777708223075053125060387153295394177722349541534954204414219806664314081255542637408227157783967243396134711406624407008706506684768399526077249735634202414978723161621170046288918417029132105959917276495961346945563400904095763823064721464843236174201341762910577278248380523797735459188454039991222333255445538582919189144931218722055218662476847675303530359025994209921788097636463924047356410171823048849169352105754989824078822073881130023710642770574344387723077429317639990134578347432219814821651319957756957332925590854407202028158132550177033401355338792220821118883506358106498705981226363912246783429076743926577115472750451260488109937414201582850199547175202176133051397001962562633841005758839904266921680066323852768896714200815938162944621852507691888120009920361559768996085795578653533720217030265937466080712051225984100407338649249504071501455258687925533453110058055977065446992583817837430695162392552184447700735633470193049983943139001182535857574875665289254168121464871019466530864047753091438731433353706959213716878483908106678844961567472074896646494595054482395436341531931924920472581431372809588324835878378954592997313046599604408837058781856082839854994952058293862899555383587707386757389633348311075408732678750182415954886155652711734769485363054825138710879832437655279232424546044402571161037970778105635263272739759860159443243934648041044349778526854474697839934634905336019788418454347421312782682459567072614821588967336822609090400488947563720071748806168307339906968584761167390137636728453801743816553138969736287052982575299192275325692325992495189698761775499013545724772795474621749992651606020995753577818679493562101484051462673733747045391054819533169186456538688950343077091086796529881439160592655189949386422330014215084101004487265244050480297965720858844612158406514719674206900476144507158705091460017458085388042704049876338642859536813218659945366093288996974550751331784231153368066146030369925877455212770680297356769802860234600182837746377098864792342224974381143447963120126993904342776560387701505595695074497812470155545702084404313047268613006426224344167011405984580304141828369908677852022858477478848417362114017855450787021169423973835510763040728842906243736528297173699578749707797563676409968969629873013749409720105314082946889447966795555618221555947907094019693775568147187651459818424707082275529412158345284155687676171438467805299669160546239118686015113187296729801151468820319531177230082512653085882921609299093445438737293220047835200089296962911472630989707246633437144872365336931186606446507281528898221155191182765583595434877070383803733286240456796150135620201630589388691633983250264626495376559698688465784373705402441100548413754404654608914049582154917683825161118153271190866655668027160759046579712512860629438141073722288076585032555760651189443186703547922755823936357186881548154535218678635144775930829270194483583811641707957438715391171311751954502818760913695257615898604528521436826125158796756106084137975898877789384402136759995454890123568941079727067879457293308011872859026463553585880166967463745093599027159447547026299958839608548199490771110129999464800784393400566891850226405186055471489928393053186681856605457439801423609078882009578705418026155481501174118475789334473322112813582922028016774828229806669412084759499532111042791342087804465161232047655248879588360188666178554449430125568109274568540610656584266604951245936270773637333355858418582123503179431453962568070366295636095566068973420127142959794948141893583858913131105975703884030317811859534064843409913580215725641596133312564318909237782836314433220002564588299654245163360787286155955393060106296247549678976867466793644435468255879963104543884113683490559981955094304466145229280394042010054300782146014214874558273190683766114248084424320030714170841090084682157453477814136097883585629726086419738752932693387922037611788026132289608357952236879638319007878587958478204553650883505938820739591234172222256414266936968907480327449640659014383147260761087248228266323707642012871637902058452342933481839291786373686034009525804149107011739975350408494633115604031912168250626218076586574843317600644128722725522007337061891795356728392884751819290764013070288923357641751657511274639370929761623884491704169853752382801688032725909535011420654918766710148060645748183422651744800073377247576056574903897517959954936849058925469795589385516722131635468398361323085455548975577614374950439751492921514536648208379981475375500364236185546274992872222027958399960117460192010589746308744650427797686321111109757720161305771855709283164476458536010663433421870535970871227521780538660819628008088291136845451787454890709646213188358069070091464987350130832369112063365607362486016164002856751645485836242536064945996788598114590914724983212058435796515479989842142666794093089561087454233985048529310163214061414584585882435774204770296115274839455607340020239379562377168473694993566505281165045077717827115265608575676193993875960390104061625762375076949845614955701115660946974344139061116678943056197133098953607715370597034067381057187445157721012483158224838491358633147004642492080336088946835541382429166268349776602039261713010391646473480542218523723020464451927583905734271307275228951924814207086885481312838166618345051097857783165368834173655737165402223754919766582792824195506297809824730896846054196267636258821584405584795312836299306483272067366046529388689215771434392983937462576363909731006929993332386304079564711160189441524902029663673990878294626270214264149221276482263080465345923622438905332676431346201129248651926772107319587934956773890816617979064057913641300332422498125511460882638142164501840292730806187744791972837664059363137641231366883710828701941737198428060391813856719824484365600827474140504903056455079251434992641743579480550891302196710746861279531328814681734167906300054462478030457062235419736851683846413051852753696509803174753592626344041779785092775450688960408392140523486679807134397655590649927045167548805383427667224970153967255844077618347461717238546707308839662220668445806997597459023345129412989579732440100676628567852628921560478278465814849894896757312911255432435099018449128117417359724929030210917874353885271591254427810528673078435704115322050774753857442069640266125025180079829709152418112909737158373271021968076583713416453250452602053569290382922819991052390232346957773860403434380073050521780766655004015827171080531567493797501800914588905455787612115850846963421989151706781839666064781663672519050707502604181968878259665750030184100488983303227081594551971491623183383165592219212918077421077945393022865391235520605395457391760288300776126797203870585232696211268869872648189545859300199276376821842722850966896630965468249108377485485841169069711318010915951242169771408867746416587055023173813071060040635279872323842686177146020558010947306014376707084486334263420250888386225515262324239303197377215667440163381756721449756880803243226514822794919540220541112671126220259023002861627116198418895549584747519993535496057710073345015732497445616662165491484360886763720597808973222336821655250670597101024311197673935691568045613864243938946930145087080371488373071652699828329878753309176272071872295134570801693187258356307464995952570924884395684012619529621117769695251921475447744449748109511653714055747394521884590204082496873915364144289940443672491375299830514779023621518817435135251871870880017021902250566346030424931684905101095443021783361473819314756713928838996916828044773344100102653295814779181883011297012556006602831412873919866127442470585035845469402945494941686324652415705651493223598209058833378066460865903330794544265181782370296469099174942915706417874903534677722675255862345124305989729502986565767294248508349872579408791131126157079428451205410099332097011992711074850499328546736796448813994719997227401092188032406479342963608777219158651030496233138377144793517800017093272933190689991284528372930804785911771712925281254091574133572927050301299550764535601495797241038368959748403871292201878987440714669722665881619058794886070263118109212388050953430663524418944808753371095552343624083441880791007610151393855176882339877109597054399573835911202303277971305148799507780726642600277900541497472356354764176518010508496838657177360691346313763856007358157947403544020758002575778712618752792744615549390119374947940898655868613191372231562739359519626225262671792014973240857168502767412891921182258529680822790533738641327601326392490838817211192122811161149512934383813808980657459361076192339609356848663002677318119863323618461348835490917179798636660514165480186245776181357492794625303585514932896825891624972321720988843530592407911433541512508495641290714749515949611220259423925820459791968442032826578076926445128455955148704254808815917632704219686126692248445229850491185069824230308708053647776748366561091894473190623497124544384483969020874272388888777717822008636983861268689527976440499516137400269650962772877335327382147462573788079234020059460717628217826469713787638379953663187739280191788770871484588781051377823508900308950239865367857714235363656589226771007779676415666964632631705746194762366697547745533475851313939750815823216163594226098871654823356605471306221476062260023448046475612690411422083329027959867609530595166768767797979998993583083766926383102293567927480993443545541202866947158814252369845321349895200251278052375182810569837539534015908239646281734093212268214698636635108303371768376129077011314754301438992134080716288770497097852507939713738768499765092396097485300976339334725639146532280263354609391130601089967718579143782328062197056270240048689464712458136141117675971874991559654423658481737211412453659862845017262773452629158044810569287659945476265447095948290308136402899440976539600266875424213904172865976062618361332670651636205974555019562528570814465323693369720516781173380445957805730517470154898710719406494406392060173063406803717502558870887756273602823494851723206278285881519651471888172882628473324425467327803424501833136033686193739572815106742544756878496673930326761861051696546073879158759986407407590942822872667174848376924612044134636323873251163404604076775434623525580533983963713291759040687646247793429402648340021719934595193946143896800114418930324360151528528343107854350919423502597437565290987952059700334690840715446248829085892275882828632370351251700410896634328239676154697626635734433923035857317645006882217449268526693906232961005376394410641060784353811451308314552997923766635237323696940048854150164907203295423085670842221375288489092850533302803074285696996622691199997600550243603075124037882628364759666587957422176123906394671351969922016883649239926513778400690553562311738130690587120654458013518406275381127031001216515590650020442232664423045978455679782131681844909435854661178635974494492153363742571221282145138022004333547749435739622168547886156475727758014747134459518988998376540487098332106543388552090167817806006187525299459539229572842564606075944347945171824686070636453794034385120269553286061281968975368795922926945267334657364974135881276990798611588902234617870205282379143170075484941096977123371942385088902867066051523930128230932970536386579201418830268610408339908976027867772716640181554635035888277724679072123502082879483084284232443741460366587594598514124946392087556638365215359457873960261260746322628976794280210686967444015102902244955056245165476526937485014369458247352142276128880195805359459868465948769316627126637800435065788899204803451647926113347096962372573261054574091548093187318266023273984987181550181940653796544372042590678557320288401006543907144360862425587073512146921550132937115380524346886838513215818962286018091072862982587305642580685392962889729102792150551752959535166642434893131805790524995036670080819871191741635255495153021973961340252540585992867922817710323250393647890391687030385650445167840352375342978297062090520330350994858144185917165242720092029285092961461237648204222094453581098556958289705982682347974975937147908059101444162453343012972647669116648681186470810693014384984608464104867769066582829809314734307572206244850107782684760641535499656346920423351032773935990212629209543524068995762200308370665925332863293721122478380119828011524903596516934388561354130819643424099687594274372735725576582478198608097473327061473687151521372156776654016725958524858257602177528440215212529441036078415747042143786775147824548867418039156435866685690019993976695511932205501915924757074870472108844941975371928173196361387006473069706024187949479019954825996063586707433503836992799942245564936973851291098781254680124073627817132198639908557183968829315368535944105865860286061075292197162376176066928063996891714966188137183699393762741523750657377165399963604163369105687296931948455599468310537450033145350092157050324619901345155824017273061358594069381676448909036584579863161704687623695223613125841037202997467525555855850102646699600879599809224784540114393901612311636544753094247796766529938138160688953917132967647642766426559556398595395508724173974777676928519810752644290401491974480407759554989935821709990268265270413400487205348793986038633753254802750959567435720484448063950893414555779505128085530686640087929915864991904010366612204386581956006267212706614286605740740462860323291858969915143556779500190569123414416668873695439755717088528184109491789293010165955679968612676876629285846364123427358887529302537119059803339158203848908871189004968876321207902483890778444259701209475999448643576891736806997973528531969354616752736026135865917629116432500301663371933555411700595739513953777201034427640971783202221259104864472206268313185073232153282127061281297984311167555273891956961534658844572943226336330670355643462375516868768033347477990948214430975103825823205437140690868338550731363977994382597009434186948705570796645909216674509484335154565527145548285810146232649615756891817521197836462360850457155518196690557294071367605462266201923682333160904834622063700579132283427175983523424747652085665338815653897766853224863411897553823616244569572526398137317037582440975593742570618999821356573059145133480843923061256190361632514738646301130941681121397126871108991817239408452621156480566304163143411389474934675973530306879473781527258268487189257001158015797033181151898747576916860318682260927866112412657127210769357205068603517450144031133955025258000469380386866780645548779425842190098880087892185964578857452687091779206564641432674849633957477893238389169110060574104262879934983365790910696319334604781104412809893552120714718558223323802725820795543516479985722507015578309251729686032854288797005024634197558581720162842043058713118646763074760577687487912118578860319257168499387441736817639531091339353226538256920381405061242081792283759775428919128762715686981804742794488051203171929899269994144298339416538327558893473205371372449630874556294780179597777603673905767385852229779717504233186022162912531770587246828499828549724462080878874642893352433828812497258096270704495350796764906984033570155289280204284242130655634213921398616759188322132466339625292556305930068653955993947709001529582620710614859719135334603920503632291473118243786757907086575814417660599123115541651748946658920268416762198193002860384500955756057819113275234593526195462927832188377240053445850945263765700374263480169548149362934756332662536002775124588163183259106673393493987620639865538531805139580367474050920001119586117908590091093822140336323895641550056103985862956521498397808342068566509995654865759003860678212673448687651748895999851444458435645628004789645862066229576738800321180980009667587980942182867592932899401044829118317132370344156048067968552139757447431477423323020476130845951007327477824949043949746455733841560973358124498771735269276910267696525254683472079715391221616916553616755869910966232557356523906838920234861069112094265681832474854950273532591904647965388267506031013645043654770248043427521099418366204756072560768269638460889656512717505386989358416748879346928059300516152222108784545410676021119791739511039832448057447392557865240845490902532565116378356166201838196891542983243593193048445346671861645269035907558959098921952608197141135506024337514958312978896389194921083726795309987211875340902251488584321254632569779588526527989778875396032852206405160233642754489451955992229416622158503199461899107814859610581638230144081792717166628922727525110143552094989752781848736130913121586347745285099881436280265950272543807266049449635982460155870132874238128234018979779145662832491829512589128696177664562430977600002647726187501948669571454851667150955475565063438306291774597004417147648107029839044872060637559052278250354030740626353443112194789676953034080194229840047114577261617416534633475771678300700244556772756046196641979476135257905797542729432212872993642047735696608683733621296523194759705756223724051821716994503079063098580311866821819303575642567793774187908692019676669725047142569349086688774968331873248411560724297017348520636546659628723930665223324923734301944767573899860152423944922677675554032807658995026919957303407320421857817432612948181232654713186542750908022117848414803671571580011124868553171740995550993886586135804659740894687448406803217187494233532409902919618513632762265134340729900354269264156286365165969993951222003824070429275367036224231803811933782994289914064182016060360080546784111977454576580311931044031850061305593605974497463832906081927518962071291887165970662187369996494382373639007678171478991092268428315807769694135738172688908222194830723014316959456057812387648354993655204426237766578574924979156909031238021509364682362179593763197181374286706854742348597230115574480511654518600208122339925682590056380076126153787069227764397326090921801940589955195426279088550301101426241882713553510198517709747107307029018449631682443750405988972916973574792350995300683488243721416819203529113677020683962832529456887517736846967180164045014929078180206604759157298291262102888414351859271314770307107235510439803759252550308579259892434932132488039334481851458950531928672849802390637605592312141378386240521494401421445837839663057370542589124181940113992076983718177075863142018162773236832413092789276580157621257439517552476738042761036643041915617367414767694649297258448233376631337475460573840295644740119826718557509128851024635646574860756401736847127736730618479698506985816667696675618177117003368307321675263784450143446254033836436856448836955380097340467556526902273996854562771639928145109443219384507818277139954236566501351056176309364706205560177533255678593383963436720525386034723141984893824916895341367989418765079842236035622095063507536720324640643146904876870700703299249530560621329539535782148964522581052698728082770456135999055694962431639364887867776620751860720230396807629279076737707603511695039211704679978550179417940838178372574961674638720345863184170617118499625043004541393248165590449404210037715963331669264219648972146045727284821044976902739297725057634167905006945942526856987131595509380450837101276083006691862534680039859955838003721670027504793751870436112088193769720385419204288700769917087638140029164110259547442306006032671120574030180722661946977836144403100101884228640067137680704980495566400271976771183448883720878888960670757269551395819915508252069833776044692669125679512962492018758411471294075888530874751479855339522733601630340479058416765342909482143279546592837553339551398551904854314059028429579498290459770285969821958252301319313598878157605888514232135122078652925075447086715099742158567544306066197095248052181044718338460351175772047723878022326391205096252040899758157462099959256860755136349634416199218646412917400977108030972361407882572228948855485762460289670848750625944072328746511648079950247231372420458537503498383727547559262043412026581195330649357243903856466770670229842462546591595131566537314826648188926609136328687446232659773055472660226174832368355932734017542388671050391746055400889017047532580737840512826530397429964404591273687318811524918108537584168476822242426392851473609535056900493780528763762383651290154776799129159112229646426420368839422621657580174569608840046834957090046157678909521375771733669225689152109644491406778917246265500342513678511429335868729686374090771448175140134978246894087423006478799247921244884039759061532081199910034370950997538930730395086190673043354211617739390916911433920820782783344400203049967248754561321141960847347891285522523086128207311988693467408186971916409551349041821002170042028074093132240831039077151962527438357683067255057906836341638212598997931293658693657672771548495066417390635368360719650147162749377313222092677042166693505918164699725332343119370280637417566024269898633975582027745196845375151246083559451049679357235338825663611510725620530966570763995067152453881208041779470928048693420700871956332418147719318624634011868300688041592061614431637682373942839836155867189775554094908010341787725193175280635540686314713931221650125437481798590209242899479875019000926968474778037370945020533198639480488651556905173524066909832536568603787275320886441819388164561990896623820457589494828154511427629849697902554703492263672445662657173471305647919667755025627167099981786843644221860241214926099481760559446681817178347891970561523856602794743803949667020581588047842816532425001928988269151223110864019013216947720587932925326002434038778948086801930812186818241559671110144192517602784377039404939188900966197409360856279368409752966162073004452651578050528233255889747970808341362721116828987221863744338438515270157820098063916186954308477289960829916663153930376715526049603769564129185349304880250609412752331668625951084850539434780728271342776391592016275516697872662429785371513735586563183698434906625173466631676031926891897065726737233380620425806294316733840567223731234305625091027216584268398187670910064173802827981180293475548179245573966758941042725586010379513685589422087798403832304180804768884499929213391305442367316129768359218698451392236337853287805609655201036359011741364004636411216576849363332355751315525705503508595636521458559291651762281483905717712018309415396088088458268964048583112218262929607587031488029082520718882283978959068399418730168153147335370117542309166235627808350147153769189333310743861261304659246440783729142411106248982676467572979893844259521807544152776825901950282720889110936651125629438441977038253793902854146728250820083028647882156829038603272848020785707758985439408209975160465007915511571467127649540120898199949056164781396677938118490272565233677372089187914719470414487610554727717298028761119690489653338348993072495185297253621393372459287528064305954166226403534733037247437147058755510438714217465238122232502547522362134677748814302224779925035095559542030629062005563228277487271627953660163171805503339046989323722582614998830681463521413500894734984755266314938054417900279657522962334231919152366256679497294551615169821627568073843319465616795027606548911947183815507692313385571265784087796465548485433182214552756019584429652955803948031628823741490331714448334918280537393802742873925895230625021811327416273082685069096655723894820646048874512462949079674568511061345521902903379461456363232342018829553326106341020880824851977072083500094128091972760838617344308535309935959306065435615449954971964954819025755459663413131041085978412836691521416806063795524525201202547581644059354835945175398593675464911594149445963124416419616505224088892337822910192426810799192010313778486968121925067870270463618550690962125687458072841973911901721898223572175791452697489403846435628023438282100081842781770640815070396568806727419164752728858529087460000735859229150055576515800018459234994951857348203113452335745065726415726663623864007213091931972482011228240252437053014940637298948197129163060742095362191887390377553199506875133528799395275493568550538089970766644129352174824348035359345702948938219060421282258485075118325459027369259344415668098746236415560174338804956992297116208218408984180090679793297962029648107490730503733477592682211344017285441637630123165888790280948573622624557306477155720525874429371469989655284975455708118053833819712212093838287214229953091210565932387827857116045872640520388565390464804024179183007197140520336160518657579421733411751082026821345200672485951121332459452859084166736783076099146751078839023189215766548645817121898498176228831844799707195504500790973327084703287529730848524991329196631051460857276830630115377991472080837060450761536471887873253936046989083084494317828868438096165974886804182245399540641496960602312019999154024597773338987089046466124701667320624928886347267174827338359241206644824460361039273357705078702912720214582208288236351768435398701750165907291981056823858455010392742250772731279094668852608134591050056762609494353667766056438056524682308381565714412480168533977112627993328412884156013378679641566566122743044228321869802529459061241019063252423525356896118128914260342182652528914116204336568389194308395129074490635184619451001665105273815105021422656084199101218731526148679521901162848477658958857419360898218137773239323233728292801719664818340047055813636198745867480674908097721485845148186945683578064577811433475814124748693736991665660332120219291065961569802044881432254956066128321672087365418284069100221622750770212812250888361203886375961851364465432629972512384332128711674344137530712554750386807810234329288459035440532302449816964635216713807822860569380340567377660903874390652786033530640709549248347200124448263713753536535730260890442113668804561882607027403456812977238642213842200462057042647854433171041815308964865452582849347974527447967546974782937042146338042630478055647157548800936945657301419027895972745075545423282072728663579763393143965584758369294455345025489104083642933348681718479875824472804477959845343136182669587629528403161254276727280290043559429431260965918512797845066388049376660493596527107226839438534144110736541351139543090239413222947467324073048360609024015178369842279411192904924244921366129880207225483414308381823978569043940136408927540875072347819782970539799943132121430341711709965143783773525525178816283597292711226502395000637731394810334301570642979838634854538752826291935892131968482591302415753304336568828825856710520038063909651222929547659808927198269303371147527488614469773077398993267179763678076614010984961229387745594797717894262367621223343049443545210843468177109293916128833290394982994432040493727559578169176730263480083953803907313356177111538294510024363666298178892183646092365206535437642471003816488266853590088176667219413320256747918507124687432691086945776067280339493824941784597501567765681944490070654877293291661391331356696044531652689135727244040019837342500618144108026595279749647006572262742619356799748027351786206273255836555053778618259246053238620416187544439277723108315451100185864947570904278045172483635602078813749963739293040626760802558121053788311351167356719887177023205004122629530292764942574621036857152499745800889662112623508886170421439682017002959755596809702010978910446895696617788568918572244090361872109727619933709668578066801196188134327748691429828200314321783888187851859466979126452789008999568929982557770128988456395634898979012092578809913438074438033257437498643770396015132648921336620828358828311236042581939010684847753158592892220394490249409134283285067592656006128235388029436205846462288005611453558186888779391432765367096126863177730737486073391747437277340094508393348112864344832561898141786346819157959126787865510816585225894893475074946254930074625599582353191949143341264184918529513177143638162793604697894342383199244020855639790346172104038627763359970595674868978907699908117026574534292984940678793740675068691414293361588167585616525389898871000337241540256952447008247952340215016502395376360281552837864041193154166899295341275344672223585995357620148519411702078882374013723819806751189248437266995705726306507946127416244232591517142847847476339003608534691902402417919554911659942412665883830427507397752606954583279279311933577212296631669839215254684534149006262890786625769773018604337170593255002685043399711345181966422077711283067537801996920673039628107429119180441113538396829833348827193550770764585003713834153245751975689369207927558297651288138048513676839304395321866859068756977531060899049163050086093513848114770772634925729388277990760490183421081616896474684672856435242305560484795310587703932898699795711533184327655791820222279144301393556994656524847244651609538821185107502395633156142619964039840989157741611060998920489990670776496935873662235789921889163455072685939135789015047446810127643839861865790993400181071841880943205537700107029993041357948637757299322455696924410106844857707831223412467596500544822717891649060030304062815263550199186679537555939170089543048283955666879085951486512983930843534966194533357539120568512225023187553117424611049215266161077466970695899844011875457125371712164800925659137053918026317246819604830792628774788501658471782869350786654463015456056953483015434995947624385801511651404776995795525317828578840566654712403461033282482547231355451526846418816444318124192214495542696922006615064836889812639375478685717999247596604124751904602693884891152760055461577945931132142066753305658082688561277357342069194449508075715719434303471843606539499708430729512585091003518172043669114190466825615027933911242626277473775803824608591001114281359696203388670414271551382158259250065369861485707841453146402721069306243528640008399833266019039212923019955241332962359029947260116327295924603795467284178594954814210950114386327727828707229585844006098920035385637222262745519988337816559864268214872199068611819655308321945097098729024688142324567161321362657760694710103322710177220393550895526124666809637974010915999239981713536164285755607652340759744227368587968669827848444583629824212978423254823916175489818036470845357555856448916339282540257087533865417315734981583532624793538736563148210181652662526527319050200687557501181826351732038456966714379313383019728192981088874453291126577339271814604845345910024986466260548164989088167251674677614638348956940041700811123018869178068756241771196466968171977389676738653239238323048241211171017167666077931218915597113156410326638464906870110342473733989144838957176015347177085638554941683043936766037653205654746680260137965866913432795820927402433273853683927874070891279577840197465470538550421373174679738742183634322777762559847140879014824179925550176848079194424607549947243206461948572104438870227005029879277464816519242163467264426962098046438937947312139360897603586743617302180952505282875754158119858440759663202833019052409041254561133621315728423768454312181964257401189128857300738939705641482321585877961542223358854873755459015106277648749388432164221527803519247119849675792194370452151959105016716080913748249899699989767606325028729975482394252826430212377893034087913315884589451159993079544183031026076474740255300690750729216361604187599821611212209004233860832436329087397691469580995290055705874444024734249088536861670458609742959709883914363784760147999045224216673625032021955025208140612435190336196783314743073513406024239384422005899739273260475923939250138777719782938790696497693932540244537819502599251723736186424877689533540932367670890032160942040768364435052644765169681401764558732708534032124318672666790259069667714670555189412596221270832867856580889949037943505941692389844719531860861619298946807339085855434690492538686158051523468866140022891915670502403499033788149119653230457213210166444077648299682890663747440865543372571126723627706232491356498140393873049647958304981283584040437142801882604490305732826647639898264091032050886508615424976671876666978985359642087077640920132150668693645325769568290528986026203220616021727550490392401990091596038470755069378879541071940091691570910468283468615549157155915560202531805388687551190619702336977469734141717926317097028703268435532981945372135108056048843428571292154783532744105107398893160560196587913190610890419748613012086286966994318085559506290865838414806674304888765278113552036519828474977155096436270833086585868560258763785518287728363631589019781959903571420298721960257373476564464417129264287067081013786857905991536947125275194164184450622330067800851029216642571334746882146097009697456717306101747688250807618314605160932111373760268373496782578573047364069080795512298293029760794556126452685491097424134048230062239659516089396484355218143305902840507629478539034352697492301049120432217697234957602423753821327402061893862812412942389946986963989832640612971781931542511435856903806886644785586088028229654331633555139802908065431127247470975230808495355416284824387025246090200980435248757376065077988210422071566285932084071286620575004305793804498919815262099937091862774121932992610947582029894858211301731540777081143287828195833624121574005264425010090657893038451556734517718961925773543461086014056658973892216107687685016310980868410615361815860891744118975333175292083484583403345184601201327777552041744539694891940228672310954190492196851908260783158213147737154462984049265508418209189775022579632172168636984313508304969105048290314605594114857402776866754161611667769022201038319870615607936834076842510779961157017378374572753326287082380205831857102743098759186537083924566552470186891942990941088505696805103867858900999890071517968644181319264181203330832387938830705229455507117562181549205739743137286008403741702727393491908375801410429278364989964440855742365243657723908972940982194785397436631019575771659763887150302622509834049155902410756803488384781946899667055942315932728136575550050934719157105127163899972407555736347955177982437250057661659156726316210889547258134911434873288208492276243873717606191212321362439794806364874068696543791673055659289748775766478119100127677492883594466469342453351563927995621518521369286403678706323505704535836057843563306718206293063604233381524099762759009210397688228997318190946827139455436993949137722563732037418005346842752270102573904308873537623303498327558357639811072550037121107172638200680482787419927788687666599791802894154597545939715030831362712548464255121312916868215125128304733902784470191208066878638523439205489345601791964392844257288770061222562464772322020438181904857843789586929061423470428667598270015206890462966976450748261393917032340053657292736724490216467150110821230843600869628641825077695929413527201634744326799229738836883911210494635451474357424131816166404808923772778609891207946664094275572038540593619608628555381738647674296183724702574875208085466058347828907504516304245669377826428254212558920202242412681120601785609810625748124689508943876156771727597945067547016212991909097370215376791072276151668699639230800367783476197113397692146280278307255420032520372485853513223200639708683024543877261827383997636668848413089485694512999545882848069884082391610506405649021094830225615287476541069221626993319677400364501909499302216684161870315695916907486205126542383411139137626668099325440857704162647998310487992800839801459197793053645933122663688419162204694910051683428431361308781564392462129950517317514688500526299899184091162075450178535406311352728097849127445527751100002838010047828125319350965139141304791252371393618659789759525453844915329198330431598306790310234442739378520260140718050545372817553971688545965969419643477725897482375640400643773458309611524479556226206532810399468007807253691438739716314368510797461080015005545814460454061417517169232387891028239534255286854103436487753534342094861480743092449839251750065758498506177596734587802216542275575227628132810314677102668996045972595331440438141586492159107458514061783238946989654123941759904679131550984566101812797371524914212522041887070147273676651214458444344005438971963756466449139479390416275128821092177895157605682435766098016106280547118012704938811872305231354857810696143009452366199761792967257822126036137820629844271163126274901127204988526169421395991446438827519300940768120756409218826505711571091895417707754134798241575937556831891902273757612905818629528262359695901352028507942647349090072003902070016416087453856471397995998384316805855229596569617887764109587738770892249462854827261571538496470554455561931331739970685555622710860602114565288162306603100148718794679284401752950813190712362632061032377555693477265056572928194992666792576545623049027953058930239361866064964435270144569969991575519902270750797395502314869587313986863488865431980072099118872532069035820004835588733880859774896839924114138572399517954885967495236261182787699107281832962616051440453874199911528365599851533525842743795806340879014305447419766241354427608403569470221930497084176651059387591540648591150072530597044631353494543049477696780431809683963084023797889663970781862942219172565395219707822287821762058948397209901345482819339395740882736871260029533813383514125996746049907824612292595327938826920498155952795223201759203324558432581489882806783135007350416615553619450877473727111101297200736697930579178747941901427075698747160320380198404931703933261043156322151700104349159347370892268692394279350901388348058409353373077351354802683491933489227452118069277019695083812297270248987083667055179257942729711163494936828318270718331010114534469743495020473624864188144273476726750389077092595846004804118191967770333021196825856802875257549323200542918452082708104668898087857085887516570825664225675609285589701020388583003052936137160733931438447978808942059517592070123859554245589512121011282892565671323923670082226646288150775501950692143172574983713587918769120031193302235019806346863141315622698233091538644492821057162558494458195692996161303246558748002438871703722170566096756143560844594027970392675828778658791979045420092499538044976874594558983327952747721874107535676812500444990571736468423435394155567062076132715126483728199623696346563820165805816295121681964003854406479279237251762305268018357817902395408778830505726932451718024799282325596070296293798471778527688157289904681037482899532296196686595078675788173097149219599116946488513642876061784444719005980712459585816060992085157391592283959552677859934021743924789311009452609709419600894868698075558828486440399554328576255202142749044093806184800591733433660882235057389921862480771373957514053776662522310388511151679277305871057682484857338952825770021910302796596748581035536505257667631065594574589949694648183559663555520162771773806739322107269123648248795925516856174280431739031253656884210207409059527788071191566041653858500725432538287253323911775565768547188938941767016182944041913836865903555888364570532710465492697829994908801006617114265005101360433882287386261427711619644903605357116833756800619693242472124825721421459266413282745037228487989179728348581842861155146568340145584956058671710545803958939605332150730914326711473009721672252246120724307951311861393268797080100831696597087236908813817574722876489359113275987414587143774869104537641967989632593458775021660661437348316796511158373186731851212841983842283989199073476164177083719380031056292401744109670200111858394354124558806597140906031786700148908108715287865492314525097379443388363960422570003667627301829178082627797945668111068791282058722870700528331127159520371604939581375731357147815801152749748885002032686447202556859073200688801420538673149471163642211859096020352852843721322361501257839739494221693484912611808562994240843921698672834224438934984914306431234239968558438130565100274452311068098828102848585223244038162378281826594048222974267704070351133287261004258731885470263167259396494163686338245717095409358235752890310619145656624553299057910855870099455623665794447392331853131589239175789243027268330467656685706280500861540710419684346414911361207707988071305684014280274653917251600350487621235561326814850142984351151013420218672498471358477485389527530587932253557883052586491077443574887173374357295552920810135315108083803992881353097763075719553927265136650475358595423994218411549800819205411020695806708790768838992343658598853499056423479251313462045200439910370681521320114879176778729125612654912577184204341743269077600064821720929399588245557535216192240886926797045508881846412276069605696094740596984216447122078461931109027728368744224036545161482073119744943375890424847106694453379819298389082617079922229720918540779160542977376688078690776793287920249310050315706545617277328194935636675023226811791444216461805472421665515952200399578301776522123815902071383728416942111105777131108838413306522991866409346542048341423896320510286320671414340607270659060520309681259659022326257529294549574222758884103392429411583848715331083916903902474199155006543669915563447602850807273889144587930802941324863049157339090714601905677179001601257884927963965874932181297872986725936284670017976308507879281962294462801113740591570808243707097870483167858015450719597758543113507220471891736759873040726314547253256019281163970327419288258623343588955611586293162074548679995984376777782992945266388307564864072037790659799045343302765041191562850433478616933767555422458262538312107895867395587893383267441952235847393931743794410750610855739586321887494386209148932968386032622278668518814565993384736413789718870463947521219431069488839427929995213280877835156823965654573881858016902187731729741961832702051633783948502281045942643607740626090781067516952484721175052341045495171327020969942153021370445903177784458448526950460549601540350017917806273915053845820484101174257563555679382083292669141673531884136439740611052139341001054558091723581127729724140297308653611052551841815535342018722937908333473958900302158101359513406643451405943300206922744175394572733957332831330776760881905114998948488255416233522414821273657051691024108198581992206615394587621418453017135732596959711688382484842218199011297854124448424210211545095898558786941240948092166567052089396959856247534295082765490466971903157871341080417449765124463513108264309082917587964194105521107433925047060707718993490092997472805245119909180382214933567224349572600648401624441453271395606025906602547145319855528469655153093603580570190895444380330845553576034330830204039945258950392954339167377915748738958745095901386784315700969572453937762913005192839230756233602676627623803604043561747103637605761446498629212766808996960037729052292029615646290611308371582755711688697931402464808790568027768684346054949613193321926979190280159144143830454468918208763939783062327879465977461515251774299472776468650407773429889287739290486974404138710551688035331236941158335630231555594464841245462745816611686289165780873613010676228105047746915717006965826338391171146260350001028603489892377070514902045919703770153306806473682833923097151034116619947368577930956514758768106841132064961227338154607377060512910149216761195468921989714409147852634652879093946482639774717458892893020754225908033569267282088312022922992826727208081532581185102116709461484354163977602166779042292009464488820003204594444727673468208378174056360600656778918260957919254457427941703686658933094179994067742194991889501935857011664616235154756931195042823018086632505158999698506624611462590175914473515562277230010824718073804697405532318360227141935053016685730461414041664193998246315841129729704046953247953955598901389329533848257396985039095986994119309007494465677907373865070679631793418916208705952242861399292172578388624829688022535137892209203322667372151783780976147312740514903576946664996637206534159678445202089261431056749351293177639269853876985658004246370587958755403460588379455332562218105073257494529450907100839111754420125584446541611981819561021819261084328720022539633036059487808482510028723892690874689418698825363234970972941692396551318802932613349854632195217888656500568345923687415489491451055935335565683792473020078228137319848705088735691934825893258987463797920488426152209878208362647931669356895970037708502149174665640651905166210724634448340155178605907683233626301610186980304997205003656431989723641024781614917979989566553882706767149303519517686863664788487464199280454646245219632002289477454958940987115194589512721547102369910094625313590455797275089728744803863979420198564195453411917246036511590063513964297569727073253770979984822724904485093931192637663039810161266690962853061498958978924823128864431422531369551258723251084668830340189567930847014746437979853179739334850649047241260716428032882805571341719078624064346074621385345638548928003894502473397724000540758531496418017538189376682873515200001395108913667818476104888929869712012515965013175957269529377955349449412006922862003686925055362891027081675779833350656545914655989559076694884625235310367839553824257668982695383450127890218462814345183003983808340199380017910278412952614760628148090480552665728522620503215550879744079189403805419152543504015981898824329758454921181804125628489956135945518830165524805602846739591603149140741222986156850364452492452954022566599360337583148279321307614569671148590024941378694120376286505300749362468527235033852941488572233990021297596449731099148191585416734908370879501959515830752811004696528959450237101587171989807085463845300077655612468404886229967399885320771392384090433348396594256455876449631305066953924115212231596649314591415768087229969831197646882187130915131607676428330262993015877565529388284657720666586655896012775979662681081218187968482393353579534227760832816552321246784506843948785567541384843313281056785260235138655909152709238833022698429285343798762033090043555254445402019781572914540380766595518454183400001191623705890822224093648598619982485549868231776638592144537547748711479116871202167436919822173856609890945115596220594232482484650988706669738900081924887521569627991535784548754859326765272309966214289766157918247696401468560695890779454338151529755581631437390618663009893009036765166854085420206779655207506701269025804759794711354169574500049076610229777391231749482360094792932621396045722925328820925497422449536137947191704480397944035216939236583012698222188908754679876762538385537244910228447105401152894049314438080735893355906728888837222195600500203349952815768763911277930767276273817706674902888401506175539055086392656661848710087664424261000770683089752934955915554517352451202909381720146737766559818953849485195397557076911469382785918400044909175784415219420575873133186869979623106766047626432524276114465839006427532524978052858857322204716520524771966344969211187644206683696599006755234752129160823993871681209134408219265874499490493710636490030103919810622678168178027300778956917595095286484938563192754462161197444554427709683943169166312237664051607244843729188299639103729903214991084908920557016673616717254111893901844833341131380229226432065941801274241068024037151637554793126819423656769835067393302116904552318180501020537940473748682993993561551437150382893026556928764149395611425135767246547531688841441825314760293837587436099870790644409905924010281221040012691077494180802926027562770686555519242253445249655600200828396802308408744250540073192894342918286753006568976276981352355543474761503171433676806212831757175205259351307966942529638920556525136174888127217624397029999308462571974910350699302957286150972205306376223838762354004196810626660156545974130641512405457010477037904602656758751798138136878780936597805448973802860420831711941804909873272455661508771918890529393938973274889991304578999921011811556418796199115486362179435043190584465183734265890372412567709309090495239403911177819688093105460329560351118212684663957769538543837347066153228943159124096424898543211987655619185679146281044734219764519514873130916525334562238709710343195890445781566248814634907779266568739696250402590866116216260332040434507457651865673254281548586377824679087920737082608073997373167706367789286708340482182566567800067401889223278767687064559536957472597308714146854201586579941512809605766312705396774080998100651170877710891816227602812553907658572834029541374742747539105952094381391700584021610190890935238697438295455302431025263822960965109536753088009757605766109924556618917562375569793103508050262876169747518706975762731761916195465902456327830506359701325000273075060409828278061546630442091199299250642899855784803366978323247342592422279063498615987778153376452248866519997577143124022278330966939532855332832178623681899337310802194289009225315394415324105794561544541156453214154454126044339655855579293345614681687814466115130576151872536147590237754913079528838471441744189872340459547511378444321651904503383840844222828534327475982551550671339119944028131476634246436090621573041379481637159985275599111549445321562561936848307125416501787054082794975023897456069890473200326691579260746422876999331700566267309240150963638674373772973193062668099139496435646648759248662088176166818694518797576517922784001606103222142844199114659923896646851677423870541205480054250968813014067588615418482020333960470417457229544336173295099585957273904306140908776172851408046370830547575391479186466701980525439432527206198049910064728752503889923301534666311721190575599212271297543366498043739624178916280404261252032182428316695217296082784417711038008483354833111124395060422930886067973826167816022646360175191956581763127999532086353407499583096856000370537320559527866729522037579649665836586122270011320938833583618048103530278229161318851110693321207021561100994844411844431694936665179948202584559125132494186812489723915684950421144062897305352026096262671991644191721726691123038797914324510839459312583628155286899935261563986402706636554952325982720369951018105013418522931146433817759956633356207886931466551615607331369898206555327002136139148515025742814307533914042480993178538967564001826211633900566111233243817220220149883023152932436280498085776034792227723317063343923196117336041731844291483185826984015987826856708887962364815435145685672335810606974497276042200718670236064066588791543885181314946775995720896654617559931486403890336698790834346734890551380870913621142999845684322819220075420493976990652997128378443354096733695902686873077109483047559200703103558844222841801680500874336295076986293015896440277943403804639761755094817731201345879792322061512753646619889751796127928289377094174010051700887980954607814134139374555178359702991077465981889810668429209108359888695905545608852716256456010055318713437271368287919004059453450846743076771899637282428474387629213806423220381329014293599285028786369099571004959497359351549680838046443581185926145008201234004318668528854038123260936952000647286962556757510225649614204439097124064249555661340553375493807512818187184170912419999144201608286726336838801000343465995504497205754943763358614482286421582867426724947391797127763078836920112391523232873867094688649446318456434974242489444629272290739576810184026894202333605403723563166402407586729754160165179504372901191626133326796666903993496136950588630739953545002861612462779703759487013832714478694777865572546778312616576860708248547984416690087455771848984100676546731885448965229514406055566119790516674378355203173495543112877872062051790652563690079921061913739770782511740350352271615272457110686428385890533939104086059070044513376195137538552597446329034619943993605906601018976660944672175908408388936748217550652404201893214248799245398228116711189029145353793929899655565489894992931126421107665595480468820382338356157509092393862459103926304611035234572913299204571252878174685932615832899619961684103918744332095767860722781655952295941577499655837362031798732532063573975932873413659720503982321291276547505294698549310746660098744139674121479704121833695518624035905216414987395010816547456818028505791589396644315686522127830999538984274328270360022484145019574404208484587351118722098324994590554074322699623438872529820268954109704836861185551141881686296071015571284824842824303593048460820604497902759199599766490784017404848644473720892928388574852894146947091543765317445260787652123136623025560375283887110174675804224911473263603549004270075589453186372010349820655199554558662774848082456217135287648635916103210396935661271676582993671840559345181290054087668204099291223216780829118202979066571647573357337488715824961203005784742515519855779767718489822212768676150422342839084077978129762665231360340346508086748062900569369680779923701276670493012406134440183911497821042634035682726743618865574302198037619990585033720291538520485897590410644693355499420828549977439095159336442354393542998198542858809128512312640691846198425197311449071568977347675804785007648427350340220416727198621679621036891140999902270082658881585817367227565299721182558429166993283182039710258512980341823170182952221234906835117171059703732958747925729942621190782801249438756893553621058047410535923826810669797667628298144235295285426832641536721524479795569812918172861343947617590037768167335699078376738668680148177112494342393154853692430843579591959431593966078874098865763098078919269374347467809825476833977299542993095796520301141182642634295877443525676282610929978862212997148570648388089873254290367651096390584383164029205638664989873781895284517343637930784288473281643706006090559141962184261966791372264012969778389381537302745581855309166269341616646366749317877376322174563284044464866917654213073415161391241526452135182800672831399627686721181589578820764237469809292201033996610105547093785183884510301464572778153370887491452072208446453237456744738728616491422851021066494614679312517766039771931402085680394032011167482555000534098495592552270159042526265507987081637847481892757117527730353694668323402243438064717529513825203027796268929789929881231776662408561655769841203559430155909032598516278449726681925371769492351711469897596268749530108331954747452707023505389216441988054111118717935926784837766547980836513353629166656857265971824021052522760844411633955044670548795872588009093830647972291606421211798042059280253399630920269629335643522899553026620324855456488844491701984368623651469755570044586857686554611420766008745864812357250860937545411137348208470768212842403369454496267813577440446834809107664840038142503978563862806309874120194748254840692739151962034307199694967129293208225035721298548162248286021721496989631179941766978774414288345772423403946376829033170428301635353042806189508492768682370713637653014804481003855326428439457318287023464284982876616967698280606193588904281454525169274534935824973479860707488975329589559968768338180781049957988028459896199869525212149136423920382843873790976809019078167934149337119146905913310547149166885917165049280540773318156317734925515783155465089658505072302209868761303751390998692215844289405549184849369123526574328859997430670614794650907710602726344587549870474251440437647264178258408624807076404359240517945677997095565071631527703553121653764528315756945966420929679407718015763798135573138585735756988196016817404613636286740992256069787321721670242804848851065491084851912402716432401085818351530512813592340048165340925600896585148894124482862532161042801229074615347220329826207183869896227026771479469775022427796049732152107725455606728889647776298523995998616508540340297121272015645490045833970531925325054308372890586691767249381235701625571526000629567363922420179019382960751063774626345332283907530198140014779203318250664395497802797718309096954920686804964921089673434466889346642899662628375130782448383767837438140286935622449887699861407455599021177159670122740633271692540064079832830266796877726788841762007787185029753983181070446057970431817328084346251924177871715674866182320651723632862126173703991950277290112650980839200355389394659992021970992106570792362113333102192603849700404557643924456282918263623059273817321734586712898970989961737584505490587448067313962789501527365557115194711747653884603460523045999203755379005652785362058806596970139870470814396853097491913552536269740215107370180548242656839304304004759051298177803136031417321273658178181274171211745499543375075846925653784106911901822191307427180394231574647367179119792767344023195633888598634403251467184500466493887402010668306551933702918281886647921163726785574655749402306078731732879507235060009241943074672299241482642173460319265239994389719569342973685269294620708329085384667240978696548495745298899599032348153020748048163642572368198063454079485148494310734188209891815904465075833340819474812319196572847329008378023817991571380513919696801403294107200440714677845496981080923068612452113065097233992088996424511465684302412956587094487269280320830812089138333818217179558739191590821266773956741195886706959530514876246565308002843385548780813282417866620763439152908780255193772890893764135001674955919398944760399876737806300125131580247114746244645615379502681225595458285811268727504525226624229550389696828905808698764946527799473431182800822374292546308420849366348806035802871224021018594416994958552287375186168695713642170668432571133191788187681787181941117613928653333772956390263870082417113555944902241481304457830824099944860460193126903666907135076461370413083028986257050656393883241333577755729408332499023095235919115586761231221809982397732169595564370843979476108522141530797193856462017298034598495323227537296593833673138541979951581973092298169625832510870323852884205781250095776092050593576917992282340556588034190069566758889219579913155563485403700310061850674522317661723310454060533146548470902139822425599601057840974479067867184972423997159234843530538065125302782368008451546334156685401536680729145980046287900317657436021929940584319194654237820428108725479556824690923181621981046365109611715973404502962693730384210413183866254620127911490403444484688840520852101549179966263024507489397108182349379834266010707590524961997656817655231070607404250240913012029275792594261015635855588238833507966511655484743881296867419340893449800895269783202439005568121023284722557738420162778226607221300735945682593290882411313953316230635752554369444310412378410266039755205153613084578341725279322430077219926109570792541892099880032593781736761836715821198753981751643136653688570730398415572133146213905890915356264684677715945216343577271018022657290845253750961768971649309434329098593616889006952411834410510860104134254571856514070033368455343016485392706240783934657628720659317476656730985383926627108184324465924433423574133100849759757694179472580214950425377686077730506305754759172180938284533857168856642521546221564485240097232175703542026237733299218104438433894491491446896952566124033166110028906014235119932098340445824492569688984701607146179899884296413588724536695511018900370566087806973519295417279026848193560252349389889780221248714759016708939017287946093590247353108833556247177743424158056140055801773663427640214993415345305236632927739334630203392524877620999314748926143224115510646721058854774378061547988553072547842384933817354500320441405155139913930143407828546132564738616840913044049305058461178170022967087332433636748136116286410847356230329663372161131872290862183810650984377515592634456703070722783945921537629650585432919617867477269168769551929092519810322161172912580286507502770063194746829089556077364113713206581812035219622994374133088262277132176834573941080723061812558547334359436821757451097251111154996763704999503630697964243480558712612003221873803277908492217460036163258809827509973470428825289306062454368922700235121931717855196598777200454374444043812941355908216855230120528359277832759914730505443623429846577679200219793719164570776873646776421967113471069654047329970659614566144909980063994877893221911405376661262646825594612606326604469230207435680019141919948197472031739127151436402515420291845727145891036306772804313451240551817269990835640377735747567114794977477148832256937985155305284870134858903903318163805111654634227086525191904122789955725853393206209528920294992847479874614080005777734895935655527623074727680388371983736872896633341036914645270704670359843379523886618892429996487413690486677391160550281022495275364892192485422437077461815573739554642505314183209067584104863130161196621266585642849884392043737020688227040956423125509363244729136395605760687765550476825481063162546610207148347014415902960260738768630230330915455133571756544708109760113133936033960984795602835410330398194119136295904083777831688932472624643650093159295729958663380660229097344905711370005278856108743349099809632428397772249088217828176666415629821834245874042124892639732403277980686232184113231069912238288548406569841439162365036407820212172803231211120412817035326810586197715801160569727762719945734541438410809586822306790902941093180098361319629371613512175809389557934778268098966524820229428493889609187509824177492475814454718832050284182034793640592493716625747931871539141884121535402946015195245442693220921955414226141188181672775376089469860838606069242174233384938051791764080747617156230603461596221257944508380400266911586256166131110700176477322904046829082302793920356084141862275836988934606321455980379550911821865238208919724789336686978935378040618356583356674113305562078410197628750876512739379378775625388447422040665778721068039498709502524022440549137051575474484232935717762846952679274907999026203753824373335762972503267557466365541791715428151538040581342187712043692688342294494515546199167701652540837143956764869628729264593366472816712191609560495178655434972613194366788349933801735887407550845861211481065513413829543038536240116605422238635867444812750691490941450687496681896147244645019356512852133781451597935194171733086895457980134987353015112476207073460964648708446574574425862027231924676924595032883001743608810306921598122960488979056044828710217575340612777889668502041949576874502122510058493716649714769134017138226339357935035597579719248784273518975522337602670504603476221334605910357485818822466215709032834808517952332737127070194251667147821849452937710579502178751544489812044000776512073187669621627174127722304645324594174745916889366725036121264683649392289514293607657905204555482779620675115488362098993426183131367310520577980976925263761445153063603100800454802783073364084456422942136880433004448955060424858059777292066941729012153195786466568939910650778221344582307675967663661753431267897322681027881745101852336978562342381075731402088892596158784999579655068938712104283623248395037471784770448524661734622777674225141795770252102018402178637906762721584032027943340016524140995623574348952272717308002642559879287460702484500170616413363303216757271394786207970200559828998234116634144365242387318417099845414738347702826700618615744501534386777535868731873836073718555828901598304566713824712421108692342740177731702653586732547383843710585801392179301896789157498229671637315714065609395698415082649486273672960315831740624143711242709352394181828284842792437700562214608108840856257864776989865129654199641796457119790276708082489019617618784486322218956602188446243999140131545888911371883258518124861756328323824115937746464018005122640583011684141247234721311888661002409184692407631671952126370406760718400799021214276452474017879753066228599894574462678732436623569845169048988007288216632940810886915299092369299916515104900777442970135341917536262701519127237919750371324468230541710134685445021527387846315693546507425554501579970910296406944253305294403041637531824731825936057090221806758702996119337329543147896233817184728543110161976894354870417189716276180269866451687177750135374495148896450442094012081222225016671568744595748306266154144264282780391968197232143563512797568216485898316031154142753770132549978942177383828876120837494189485233343875910548758157714832377584272610740973282782061446809481743021956613391023534118398158140221220660142005502741614642329827329074294764622985055912076273797145982166479086302748754448880513094866546238056716700503766589588726144558490471360966044713897855741346256347224755418372655348157233358578006412438524471178681511631817322136846824570279153648210916266021531506058959411891095828892827850874748496294633902662158462509856185052559215890523547804807632838572363449824271591510432764791711540022868608698376294974600405544585237830537183418254970910259347403164278393592799542053554427323818009925659311673581628465510998578485442754729289223419947788298172340233095912388439178191827136586140831474130213696173183022428444470015375141143034622466986286450232352083250555709168686485893210972916921892764132286379779545722961165919533160792966559437962041789280669187254649712887926796556666733462769268879147773768149152109522636045800515066597944575862877237543903135418006514729981993507592912936357914513519149019666796996192464905564299858781206317818502463438470694110274212008733304248818770333693047365524311793567074167134093250165880313382093637575436400069474703741007190934362280396431313424342126753180163307281378997386319112730470829920452475078712007963989875300180322475048133347287956432521352041626990214975938700196152183674331472475273443718947380232294735405095843374868967927373450565327306184533133628341658269521010191316307061993718656215445645016467876780141002792067086639357829026632806443032510711296114592396029055288428673715456093159516132476002158536326793323172556457280118342888969362278772512607695401226142574151851691316360050147130463751764902971232597357914984147473982092734956299396694991074974014216831302682077881784465339835324042392831281517659899059455133499151740780769061384650381849862158443940030375100549240142414955502372540202784296150806450824928829987424716645692901341352328507001460396834127524359953469160087431145434659160577584351385530663547989609857718132874403600011768844632829402366919942719018767830849926948907599252112149816000676402329019067233860416503267385261767220966341051098647694631648110558799508530667626008430332773852263588570769485429264217209893379573091283960143789773078803409828810726716883572184616341632463875485162021961573442491322339701829562162376235063182578758469170290360239467710497216563305783157745884518126875362701148464520160448225759571262268434760894065463441072253198757374623471568708607982866634363223659866965677229598038253584555019254547486144212435286574468171076066892074309112040198894533163855128545765452636310929641910171503575464041012619170857902276008454855140231455231482924435057929031400381474235544977144174035667751512997973386755430711730661726524271339539260067238538460662524038613663447670077457777752425217750403711597863590368669969632718401241442341444977843748789155113620134860406314645024593788965165836329085739177736196108067119542109954113251252152682933424569907658476454167142369267708492305906062430354830359129617429250499473366019348664539203857569023747448449159398200595803300677608407430302740143475213041393186777425310361197167493204859847668835447817946481252450884260981456032730449692236654046837771966522418375109233483947897192804884549775648834516818317757674736004490783785017340637782450616477035279700308066813237631485050653517332554026808414261887793577991109816564109026833036450643568243274898174317027327394766970975527630440893323436652637723978612050455882249041380157068857172464925210081398536348565927898822735579227856148527235987654906687079938578894558080613924702926031604527580936176236439503676313989438983673917115528797123209714788053214593365627368821924459537845682909579499273390027008413823924474009433646808476360965411107390426518467951468226656058541650097614589212488213571225047578609109324108313799208286255218566667486669589590205944109198160500554920603016428445911312565375346997397304215398025018042498989263101802062437880532116418508546278441666208002907228961731829486375944471644032285831705530417823289855383278946664971075022164188129768954889622346180027548960453308620666989378509227158060019259884628654370977803087130881449627933527844407353948095505992279669799227306911441381078386021586147273714096647926540009665469850491348483886500089278788377095022199447372457086486064803135023271366690437974933677550548767063171668883675396495941191620662463969884989100730633883065563818762040272455500289975508174626222833986923286924568872744688721914307958994660694226825064168280775404441559784214806049233180016666615627356430547679860770954863961459698528794937316523420569233507207307259684405448689713493495084071617304178289648830719201485424367171225129494296550883080057522252698947833529952950843891085518988010230371472240445181934067417736640816446133380938773784805667990163990738958063152709081254974698505307167168224914991139204841532689539770931759198153380111872408913454417094071734427882909276143613396020282056001372288418430631842881564022359098073749005421613132933139333323404543722852229473095591882169173298518215149559713167684927859860275008020263226088727005949343412324991319972262401979789177828613887386903154806343865408870162683024257740547712423457483626550028760657960964659377433643591749889425041224366645522488556805861966363546225403512765430562465714515139047079938056746700606101729222763375891333702709145412102027863405953609960667947999962229747097680227787843300422050627952038909058976226711495720498962500197502203887149734941469781391360302932375403952391603806794452875250492591270965817854021616536604968502811800435886094470836336025382241837641521219422541958494267735268080811559634901773788048289339174430976907343258840582376999840137740993983114316895280243429053974621944182607998149955913631144633970794730793621656258527302978504292517911798223184976001979565517094119620504885528779163163202488542794419555286339632314973117857795991479481060026165784424477564626929029695960277033757110200443693763162273174916023063947371176313686161807189961674858119218593127254621529882409027843834009131249320330057624332946845498874583201541605477836000847541747183604091531184308306352659000206650013297393145822228304012280439513188059944781063942266744193734051453616414890859704152038218291167993811583526379813377587243781496266307660456247344055855474476051359622452188855170827727095232451826483948100984824244007250938973085210171858975937389924357670897028352183928917092882253984910730100930779672801573070384690500806884376543722558909549687692151432807365363493869436533362899211670503733145828009817704373355327113273786451354124352237230592705133022273501421144468179119441319496931732629765161778960598259926789298620269658272675661796583768979904070075422726039354337432507541962975671803908676166167599604226091764621171072586393179116075402762299314170423979919919124814443648436008700031992579727413844671417971207926268511440760828033144686077298341361363245722478320534942885368770468711308045793295716810724795466493878082991910277043154133085977472680428181584206623599088807528564758688602134726012825540083227678455728047091272863495989351344392209242500758364420017943177278068158098928517490780005628816259245544823087413861317584186372610295010512108816019396437768607704020674166553147843132877053006112228225396766598566688875390276399877896972246749738736695573630868485922017129465520614289538472283487545246316639796854116562691875766388193050455396454059319745153601871184667818722114735534892913438231295222992779803653449683209307357412117845495766077385968610331356289258621918990308600059804807812617658294553418679237863445398541019248038967833512202371521386463879445905915345983193048605810876058463772761277380715819689421404898975540554880715975611825175269949979329933311162351704775912387693888711430079621586533648653177764106217747910559659199135559949245206568378216041112720716847172396859343587486030200192476551953109641971902262111069351205115413427923947813686484701698564077345160452925899469969184793969234017274868907348608549739053794837228242014079607786759976624787121041137547482505645629566146019290422233525679300739593958743120872836568265831175305994539755525689055699214215477763064649565614239123841803879969025129111249268514634184362759332795006557052002836186762390018814586144568562245640440356471549746402458786565806987865320489543068453031575450757581614620698489371399386078933104735538991971585182389558616030902424744939917791853739340652365532157515133410951365177847414550182971041770976325439670292548193521801101123383969101769942468288048687794429685207189756146266666320173351476927295232124573796831892238830151934493781752908793509565507170245583536376035668929422740493220224593049620331584449242270259894695678625617372913781441889050309720352954168676212204810422637516212303070779455527563714735125295170942205312855519031910135381564057969365466986266568542531259229135955318931046231670404097078273497082939824157598757630391242845502392849584815288489702812942196514829365243383203344833437821466095988654503832092889587667708310230693779328935574701646558423615056909960729486741238491233476354814840778814505927579125602639346528255514272675000950532013862301402357286777261407359636633300125107402309392305255438097511199840227223526108345605623776699028819003578651357044360488163112022904017777008226167966839969895929724208320411227166679845636207186073279207417529740964691545617880021133014028572233443018533154728365178166282007673648270767998348543376883581624753146198942892179196547630800744496530128960872061444715943402515846872661443178830705925331718513491225192754281274815948660118372880942759342818700704185570258979716093435202856653013248719462604429259396449463719151298096255842565372199741786741753594559111191701710794464017295668650530106490402117595773737041149693989230962641266836715950393210205045461661554352840725270278121810381086022539145964613065126766792881285471789517046382798067082087164901325113461143787501385488839521952471687461646888896331477698631527357312140134643222765522450828065794048887593989647102300198581589856742930958416321118275902337693461693344047040281845456872556812145355640334352155588152518452569106671173845342511777057728950277944845387069490289566024979290483483057466264550825114503135043690233012214680594123551635208653912625235775141667048139598862485168182041276343804579854006776701506700595479202529833163565880658035708693403264418370420658525701637084237589817046807242081671044156126817433832431836876577599180952024702316092380063652705537773271053191704772975770491870607856432285218861602362273372349233862187797048665773439816891685729769195702329824805546718987205475733041416503235461045523902421285646975637699361707898745161339536037588456546991052015814196806594820107685580864859964401065875189193792164613327500749851028942128380995952474787623136964367301282716934947946740070116851419437312196671274601918653660688406997088390945758969352515809918598129676241803533560656480527356575798030300104141074140691205768222563491272708255009704481708501573268577026701101286501353780259243524582634600420581096175456389409221044507761871830488099847569653563613828084786468190613133900065229253413732671921192310589579389373085874721335470168065435166624079212211533403728408063484366457231429624211514641678866211577262190011877694210389866400676581692094246007577566589568918349137741577342337448470538707515685846316255179344124290258920284015633932976546089964185205998186056895667122367026049318064638375214503182617494753094242224569768476706933543046605052539777597915422567051893077583434282794897617321000584666353156053802764950457562009904976519739788517134561121997714339398195813983065891746539180738418775010884015595969996345018332406182071516200799158125350287136665057508116834950302250103795687807359492680242924995207019702329113114527804120821212989967722394852877098186258396742360387865977110008086246417532529069943046934973936440498425728530302580210145792071244483247459492878486218694226286254322574723759367671775095194583386008659845205846396053123874560232189618576271241615860810114337846755278172754187267168584366446409798019957495485380402247235077632012394769861636387249642265222606634748510781576348418523807529951509521266588145129068774931268744439833598183501946493986515967563741916911018467368013917976120767700316244718608047962037265210899655912848273948989722180249274728496308627246114815531223932438807818994184947486494490290301382473795457237244573611761819707328804089835170599506765127094636123702544974911879674495167635900170838247978198671377955496710772326655912366478311581284770022140492035605351265049084842957871549466539289115690610592604621480756794164527461417721231934803849371072257876644045538811359781138003301570448579351331079608882527736011570825949045298682551397500540941634841928975864604768466953249284962618847202373628101751627456104262976132515335525483578626946455380666410906949246128567521662947700549551844451471322304446005197763808252368316062086423716707427495666564340145499178247667976898377438743408819414222585271911085286963182484965639354261310265802774512442070729264440830431273438412866749722242135189853927323259561612435391054305079712065326159049771421608988215010508049239802192041420903825384292365789884372386487620518434095469082755754847703945659182182588549247852665138646845318900354506473315372143538393474633771418536280941811929801200502718426350916233336695184356553646941631329864030760311195308458515001391786469159560044203424693098540622370998629889598372317363198220367405670754486440429341347134230137682383716190309578031868840126178154202127983026928211750359127616395208025079267472162988438080635970089496497134183884976874159764565774223399534905337842962953089511462071408210897369319011163248962319000024578686532893641518573343769836057909384319052546460112827260754238540205013124155821645662656008196485903709031192457194499702337893419056026186541327474306080795482908119961242162415988326233755104596190740124792452549043636261103927742779044114752533985389941444973909570136282799235177864974824996970858231570714264305865763559787067081176473779554454798894584337427223635758785476424061390754428726323282648540748947018894435365652944360127027711380658390904160847644832402536543974916581315403958025038187128320016761670417273363299584149524780548145510824805863943667952923220453209102856574276094915076924912996310566893310453406001760031297124250609179711913199231423926400024500437942769134941525944422940995321272741711359233252300420089889156108945137977798526049196535977544952744808205720979054017012387015285002465642481234499788769238238622686266711369774612457910510707995369636315313765189997437747753883363712919485500618989197771137879682457203782314560496591322261524082809710308777063587497969184890831145727234061782739693502130937244953752231257147719784512804257690144867608320069503755938991091981734316051958139861155429236238769742645474297882444301732844444748895437349857866876247084203805265538255893398093366773774400399812203898259568685350445600971620975403625189355083994577394768393208033586471901129200482240252455456574367841635149712868450371451461688841178703818084404146061466345374394836931643645213901639849269348565178061614208272656618665229587867521258550644714260981454988728513531552673137629487763729403961609523199525955186186992242288542926412940142646713688788358141985126297116028763953292279434523201468487978640346176874887235391415399831226398228238515081261193651426400408734855292668750700930672488469110281929458428599024117533057557080044504361805993793789535993777853935951259619345058072960413494133345738322383973409658837820695596759262552662253128772599027650724455848337103832120791311909377533727858111524803338543976710828286504678118469466899134977568450560292282453870805896402966607715078942961390988658023361125719006042774061014859934222186172885628787003499400932512326274297586977375265273228599335829477728401374239021567470841129037088145232511421554581478481875355254833489905055551508928382970563607469708142025375018153720078349877443773602601445156525416467391854653436093171701809216856384795194442443179991204112788001629220014018876633519364523259555840108394543546110640610967425304295700871951858834855412205559069342015222725035801484371085048369063814055590816529215702735818981000440402654916097351247488531365718392562618351916832571196466379487791920627157835549017779369063934224023019276503291672804017495812861197447088835093171267670645310399671690193471701630632176223167397064918793262461346963687671806885781662698550511355910668075719232826069666883826439407830585818979378603370606871463867509065154631522871813165405669594997194511131712733495308609469328531898527829630335438695091890075553827514141009088915375271433157665778886465864658364580470346901180418732240250737186772976702092734270334557590440255055497344120318536018476029489087865713377204862540255397603918043658691095061571295526453640179979998589288007498028275882175937614977565612394468768769735317821437419643157048240901764247422301656076717867065787641038179520172457227236442294190069002548239310125830050937144252758801702671803067849321124728238873072535499865958032111609185083285741541290485768505819967630851495024242443063263157225125597972182883867345799848215746511014149851559477743493080401128474459870836632471071054000440179453428106406333340336203971009310091135033762396360595868620402493958950424363330049980391579686383541501255558697818607390044716407433436043890819048735169827140453929769564753091881266693203238197655515209425400391742999599894166423095893698225704515474746514061222732328855836410746094213793725699496566311631724058482520264863098502959014017918915326710345914252688335036815437491237742128006276316255515873862985795512041538726306764506607822644294920485521444280837912867158876858975492570974967160262264346935778958871613711133745186421662112721509934175368247810559370788599884726255875097749958291411637831463782811650540333498765861312322780880874664278773947358234119303919548815822624062829154401339354542321649195035616432784964779866106289912029888224619291855815608091879390648330139943580367382221258694382616229870178858132407150889636723011902587682403392064823000306576301684734132415351751693760080792816510103448775204589841337680426667388337080819878541322033747356010838512628868319579657824906581445878970534720164020474650147265436680011672345246545400850577177481602624702395146072733943926715108921495517544892808224231381489581033940950323220050937900384787928269832294068885053311938753531824400341111938052343774739447911670552491309740686489912890039707607866019000542737242568714443571264523714587467443660462070430762624984355137641151640423401587062662234814011875792722406099376177805835109257453855639987663428614920756048213914423510277317512524380465187175682129720057744226022741564916719055384108661000699667819134392473848805155493915082064134803294324812022727616980989264971778903969158770536358844511788987285717495692203809285656455050838001546882177927701195718634445320829466677611638709223287280496354173730165974441766575860281540559307463995317408667836152161515202336036762242450432844806045199991663754371911480779751107010265196446300413729202699205010200640736436910059084765867085820678676009579566607809267252636564446951673250246262583695762608635455047146541378865450334408071055413444242045298557426431371528411517384991154998598274172717311497247775336621893238405832218938958583006532080260173009713474790104350154458855145586100920458082186576700622628551208717772888308041290558725298678151150108213145823991985856148654455465301371504495947373465695582784941985894393498619001023112021904511709330888694609766175231028747608237619983086717291363247005702025351529359369615032535658388300189798124929946197889226214045358033140407237530464541732773028520822157212852721868990450589581693728689275116569182419498504995460738346117542607279535168955132549570346482695149369180981855072631586400387590751015715069446006255345551978437183622133223706530724017833836726301474789251417138708322452978432591721198874999998013529080285793398278280313181290533715823709791011195238078959907360943788714173852682289475271280805502609050331192499951515099601806863672812283782501800002015349517070123804204541203026107807170361155599251590505463122384427068647942930907608135638387280474335572700371799414823910084874823794615881495187646345687072700350247860510219452104450550576882600255974560636233588823561345829258200155270345822249047705832342294851891857365073639823106580217281379715373118987259588450871939507138973631244120437770188953311438011892755813521039745319351217410982323207395171971824614303041230277221271265945523119562933465370133153764348274082687835926264434209216154317062052226696226554655248869354364591883427037796403811052095631065579811441302928148257641655045343409845242938264376898127269526179400235083407304776932875600600003110962339885274226821112369888434894190425074080672762739485445217176036666877246281318011064337161670779255952632186895848841346698177811624937685134778004751916760050556395214356863958724839614427885008490077476310933426852030368840052781083167835255744919066798447300290100756217931903646591308802349112996986575961946733556101165547966778354471895497210917965857669438707067442162616016529800126580514773839560446277591839203569875850956321030855185766867586878631107338973840880422619261089748166354516924484844614473223604815330931712470556893892175533397806808600903758797062146217191245005381223704843319885577714382300747736103081245645812571532723583615667077615157959150033049095873508720222298638801036580888445603251908496078852662784259249851675519204885895977595671737547442288208694129052280174904182706593267873538381456859655733701206512293066292520110788000500224887865749817935034428880472184855028465248266809323758204789438457679642282615894158213861547269735287863642165382937863444642917197495784096352059228276842669626792154596429638780310978285537360001269503066770155531993067330712584886856492456644303326873514217858859106193777901200918081485953103753719774072544974664787684937944464280456739847895362452602741362115456791194068551866421099712808927971429823210044758142675345280022095524327069863863759811884932687443626167180907646898393807427378623830630821361574023661292517797479477063322295430491582330829973868643689589044856559027841783275136756851020215037743452802676648375287944781307435144690557145341743272623871717629309041417046112097122217650355136609711145935836629409278155403610921831222866025137695177251652541519658673634632279558572579308101461317616255101148418025448532196369498227803377907963405856347887610462845973412666553609260682875711360785635250481292979192045917204157974971574499500004010741053480690164841129593497240564801804341547274158547941003966195755437028323835728037809313107968253756882529384120139083205464629932738909307346058204383021418462902366719308776752914989603714143224392172933322528209122551068170129220639751035764080012062877999528341804700603247794002434512224973497414270780494554626480934610035395765458588224525294160010738497027074468709563620355411270391504310951970913820086591346653772626330673836322932511317505575302285901064582266295241038186977332964468084587131467262740875418711892349048806020933183657941239003832991746524716623832866120797019784038964816510607220662704571504049408326718343874866084471820064771434528433443909247658879360929813580865221661324137656299760299230674395776783319238878572396086385243930069071702078368111236322109969263511233790635687826792294588709399335567113786118263584485241912936154671540960290010689557699066577192711270691610427187511210401987010871829573920148212213203471858589919437598047965658468721723767634309976552810719636427673453515760430156361490142623874075962847348308654830153965919041683058062042732021116309838010782969512310499957062720762096189344562900011870290700679921761463296904961480491986111729005640983867682956151325030325214911146953819669410943827139317975131259865080585481793731733722704052140494269097190667223306472888732740316916099748686836636136340838124261225252207854973321467336159571464387246684216721581909217823920399766149520053881184705345810546474898111536532644975290961210912462368143412082115502470923928046223285807148662234939159030460637575942824430489481204275051899278049854737039630991112611831532546480228021462674809374006344154749706403944311074764735231690249894103973728562698174528656171795149503768291236807168821454088408401845795749751950963633191911640627144871187833330797918093952169715760226537969885021063457181529400906662760937336511734389866481675351799586877954703116563590469416624454788766017950042504264457007906040102539256190107126792251018795796404409768263377503041054540755910394610595205674227525075570063283393576728537999552513316217869935004176356382727841725712221121082835154183689135206326186029592842912048196536364140206752549075187624291508643446618448432390967116521059644999253257797149956263375564654235350016389868154240514469667730875996954466234867657945391468180927813540992921558644805317910012607586459017048748777444943104401275187451179140347320637191737557413241043338143751947760477713860725988924773323908052530899855626244287777475789544609478647034825646380935493297734277069020633759848763793115143987386837071133100169363689178419088773472025431045755267168813447203580849408494227602710468872580647986690839846546714213737636148863528614067038580331957469619550057391728520957167439276730958499613245642208889070275965857596400505877078580969795444435706938054499271509208948285439313019447964343944124353939337360409027838489970219353781278624337353675571374852620778925134113374064209964309854957002748645717238354557558569763260377685115779469247338343207725404426103805095565985820186246865791994573696075243264352538671040462346727658540109374029200523889069640728496794072098827943664377017110583849445967918299460085756104752372694186553543222610691831173026274945188967630914896947367667266963443591843679285233709677740103342761575053126160015290896640970990479348864571193351201712799951641389889616650354359487099014880488413017776068918914221350241136488262283396254488100687070858535495424305909370204788887714490155455364712736484963823071078756326663335541037660550616084024862380731123023705112106821610934544566668827897370807218609698263571559204520731602870229636165014590877070278298557108406210484773660397872524594122786026778585290601685415515599562377037968293727622684433758582695530243531012114678927515943557554260077685867477301549127359843867748641616559373834077411748305132036880490953510321969182142991088390262033163292123156874924810848786783183160143715416072194229902841512463566761621663704701076459089069540901458987381356710142187181373891181530825820022133536285961068875073406161341409400974398487945321247046492398929159911137651971796781630464664912267980699557144819560743937030376382991275484579357298876591670359107332631680205594283697250478894170062284136548349071685543781613411546242593173965735474383781887134413302849799060776634640097169156067417228028005203633824102937774625009144225201885181155321309239740322330208902754826236649826705286561365017172567789170939222918869487914738135690191118846739394786447791462417223328368548751560476552216448248296224088071192849123321263182528278919489595760410463157164249573674913015548877381766797275138757464677786163724108660655837693089141002689523419942321127018116416218271387738897679247026009462181436884685931761697374281185750619094130799903609249785330386033200664932640406945485918983069069580429659317670296421819025315217639928872085191468007767749131565940805958496673233869241923489687401815210057367867294309590336938531363009750182071966583919909173911183479268228843388106344114966391874143141805188659211296920473920768242613926687309635345406342405957899194046358146678219493474617274505165871749362338050082977970973459322343052309524310582575776248649083675912685932578132179904246774920720391889531388902199623455001549510499767241855659213438205552116339960163133542483118769896512434569811443683346053953926955060766279161862778820136892521868111532264546534425368327241755139889703455840124216517792924462715797302317168695709017313219688438202292830876562886358493807254806594743430356186105265916474312314172958912733559448932837957918220198383434994802421365596579769283383578670511058018702677628363533044684182962176619791223477327107899656628034345500164964229457443275428509291709675030557882619630039320732000521846914606029990320951818305238876931155186654934675842415690978155624969631553029039414005320175139310093906592607692759387995591764612536017118112644653042081217254883490883549834597224672102225630147629770101363740394934532222449907552122487187929388375753060508445833140969677648735485086307946672520186806002166159668698665912237262401416738110036171397981061687024635984262226086669117589509719431044683426886508763127145004325878785851114365010233536070453633101154693577789933856336967838984414652178126798929976440588363002431333572971757696441014590049383486855571223759669509081223536678146000156391829835690334889361948749729169632298001304486675922843227936177445272997024618159743049512422499458959761495730813389297729893867370876109360950241026383633673962984095304109027428666747925960995515579183678957819058005568391088212754527987075994329511668684812699563199317316606563679488477605681917819918552730068255943249526034849355826052733319848264196633484781455349880928003481643817796631840448200336764492015479364110263978979436554809403720222738080031349375851079222011433238275166399999890129106334359700897910235265287752811854149659137343960993882239818274677097891151358872955856605529153449987302192584636408276410960833524823434809050093641135848802176052151341880308323116699451540486283641886436153211773059829832936827711755616562024974955320288572233626930072734676279574498830582416615650731019293971065940013334283496914022090652627115299233243414039527539420506267983049660852655341729507841730062587386764958618412110413920627047500990816894588036073082761132087326593079884517435371127059179137739679621484839393689826493694483166430248403464796015245029630570827743587407019316906416892324756082182575522526827613193061872242493609281285428370722282026103221269129279576411754131015721796297305705649776042639289660719445079489933037482585402533970593498301014282113056926889618919168339117343416252026755319995600223589363830819413748953069085378918190846077052851171677467957502703196564159058066900862355559116084235404228284983184278256655788013415473017946770052109388797545214326466614031547581268085262369702209541311990924173835531458108285271682546639318498841377390926729207072135888102746643105647138192840380808124566247033892028445921942058475850419063204131756985588711017008094650048517748963148424900741976915188754728920775756002531900464270379455161547557080188218408469446222958172980323402466070774060988626460722819141475413848358366829451732955593074254812041126343059383076758524017661157037879843490142205047640254643555299134161250314820462492793011497045740449030041406837266232435768804018278213524247196248015843426287309440234576013935983366547131709912922072910768937654381218146021736466830678300090566744929335918631601278840727901474957241598039993727397112536008995221586046924519077364973958095043509391070628261986896405658709159483124611129992388409247661452002519702647226352042256555448378524244150255795364711957856394335289408503457134024910881152657804521609287917004483200275367378998639390669647701496584936825313174194489553850014733025365893476755056590584711117410799607094443575385210548070104769166389483019027383765931007880951224518880536876339432347498232017196748783238766208878470989111914377284084052377167501119095810004681883508307259023511374735502779027884744062802615887270292965772493312913243984534063183909871777421916605878985881344107378698999276592299681432409954779726212690144511034016248582881475091328470705053539575987120095444747989928343021240595974461695961692405775888654335161101235188280221627758933737768733698433751712073633429687494359301920931324766070786870686603557689928514369694304899795369178361148514457268011885245980752905559222106819146887485650921970341702070673229491602883687742074282946654759984249666583562136654128488157898332894063317762514484570164105214637665853675663635022680943093246357590218734210605831609672529310939302981736304034087514941834536652434233846466084911477603298997860496620093640572679645121071334758697821377501885644186089861946072330779168919435757651068167704017722942985995862542870611850567234741474023521139902566269133608383597837967005668410630793419875781255545758057572043932446857374632105668194141440112751052794385360635263736277431198672239183104739093957882265704684722770284791120342440710542230909282738836004166265929212551585856369396143875902922102825817935592784054858002903637496342099847701973293953231257432788612096493785829901344973864008085828319856014441025011857094713140828710920067854260981863988200393451227658117220653806829542505824940681654231199171051938573819004641936764118234284114624531656440168112984008445051489236915397632937595838293597103327713173936754064967812387141346904437875079460289560811678319723172022954378795183048511008014089001968661829096374395117333849464728454302228273947339618363641074514236177552380888863041634840135821700696452195261507634622384422019066073981730154278108963942932849853682632699380355903985456128255344994520300651795450581063244984534791301324095170902510761538158826014836213015806454763709079841550296367874425211401782197158304245644973910784601560217445333063170252947098009748578048302359458346922881086976964843090450123164255908705967068477969916201400650739230918436507238806276358310332276728433904256311348254539239551362539388965790699359736035562316945395669687001554035556807217481043451040309941611541473249931415916888665002092170674558733068097780572590189814820962528023693391476374784239635969979449896006663142471413218259871240157477455084617480064413913609137841652202104643197516708424593484465748434303436463492502432355908775229633974374349311648003032481473026446989737645312612894217225169663484260930670719222307745594077517998340698546448323981174442596403096686811025827655417379540938321441211324464178634314188088428657987949865482007305487641138952591835664728562748644005928214365774483480333760346738744456800903776833100940734798596254121032790867493882732810786821007954558182930731298065310223383426631704006262535681709339963700069391472564833772443053962443682022398609844498136917760826542975267059012615714208867035004263445491677280922377448393862399448765668869316810790446858217012614120964082623768121599568853730042689712868018028718125651103342426791420041300464895365211427065175788920059205399872308524027033057479820964235356979017423031894087775745624365194313126794119406584698721053868546998953511162675901095028980314698068583729843347519975573179227853092698061908470008299171470120110281169286578004720171876129621819148409564673818691016254080320189631155750117879470238559722631310582762797239401705594892193449813466288532804171135518667166778814136554880602277367384508949470287994439798559040385694994852385955553976730458786591257316187335853533488483823645198961451456455983220791066543212688161308763794809051687414239819970301684777737122290076688655432426076614925526113194814072145301141598360351334151899463068417636661262843888822419337719581519633442641613198962506035396039436821661007950191560464193183251487886990956981710021529711977560489716491795677707790518301522727548710855631138532709202577354969352614520534002579965520388691505711325732904107301619642308018828330863554416015829105968614211762098537517122834445372092791000425286929672526607445737424423674437871328054524661209946621200047424449478638157306027893724103654850349649603881697867115043011186678314367273992725793157730257881600168184007227032618207353852088072312718753783760154016642382659867652466679293410601547977322454927664229426495869542256633972057998250089007960620526320382763246257250738729847718107277969376341287160548431885346398149568607670457910074645980487663836815447289880669503144427789173662959094495557202258329321862348621085027946982449747043286699383602417668572889650285441593154446950049702086132711832052357565706402401112757382902468452629225280683341427693094643474195722903224317409701145588651911069992105133411936961652620845835566150654942435346567350731061724805218102899134469982031902261326685795270721454266199911784219050964332184519052110049315619100297163771486936649226139454480920941260242648005375068098618703031959368746001716897867849438497963760161112223791815050983879503036372933663630842874541921315566972419858897562737759783369864093489596442673087117319391561591730934773708245771823642759971534008390815287963592233709071549025165841490409415146015908407575832007246272386681874153037616360679486795519881519503445077962113485864605002366717678588481528415544123765757789604478660187633200089785164261679725341677352556038870389145418660588710211402017152776664817076141197403665942169449979968306786681844702863868871926163919530669077938205743037085332258167596603691487826904852238891678605816919150253168487475237819858375997504796595706984610335075922040485005202966883723724214762301958578881208237509002659908469229375575740242190302934819674577371650474676441110301537756025301040342382817261721651781980897927817671003279653626218752262089543565769544973441368643903944303091613293155918447561444419413080895610799574654284409792576091380498842527713704639370829141825284661811387741983580465646608221379063307680180591348924794311967709634392035832200240593745463714634936862834973996191953043264694000554275191491331172468260571606917983688789609509942172228256189393142032840590293408718130808071279522054827305762457694898911402499213739192665649186414283879117983594137683249743482719858480879022310699084586410385418798994641652403614567358585310845070745315699194673486202761616795094331720324501843431361504927005183348404609496058073804834071274630404383272309660921243587506668742483352333219152989130882908979466790739126933851040413856489920283684711992520633207912758623562068597071209341999378170195331466074173645654790612164770890259490991015049472961883600906373674083718426461614793981916038241549147382231534920124239393702571215399437151133125625721919553082726023299718939511989026690435275806283395683472323507130753909681075956359422265047858047178399900163657512557915057225400380021505495445415423473998817170419447047726297130848981969221311312696693953083004358639322066110988560067599877332004828902766521044524988858265536285302435682753220576753803166044926758016655651434440983258362414116536364374001756202365055069793887721821292591026589030083346442710930862952495125438997448650318493303680222135717834803635300597727768157102583401491467122209782857978254388842954817882683392773798717495840132963446455195688992928553435517490470748411263767905711743485463638331723735203070079779355581214759815169443191207172946868588240490664804478889555701897102192191183481207339080592190277854846582559293939372952920259795217657643929080698222410609426185782897734626196074598968675727661113500813021900721624659023914999506488306437778648199696884744001496925816703356035869505315836667315721277708705407733942474646263143310378419738795032676616250500206862854544988133529767479349500973037516408512910504137661093321425264735408729428809153902895411096213744878340522830666542026627180164980584441492326300409477941338174754349641073272019260317224230201571215468862454751937077965319313803533997670161623557528096037011821328193711034894075514323089488899467828115684957838934588770595529536593689724483788155257967475121917533849907496299529159445614901412693222477262139796364500452751157127598148683661133327825232926663379067547875177993517371194034247852800296915943875710247222278092954929687581798059667369193181637799121697795846268321273514437986437596252234164258876654069945193893510732676456533309721228895410959343917659691961822279967806336898020115431188718351559707910617242816228805146186940523996606860983418580351247739177131180810192952249888853730235276965292713161683774122092451039043906050250201715231826082950169337426557234213689247073335145501011794230065680172889012650744409380220736046230450773997364366976461607971246557632019899872497713827380872291752595863296533865198915559772247184063852181500847194702641111526723935984593079148073826908536672786051505740665527130831694168104374321315680771593441064827465464367090871586887048583348922629042000381287719147145923975180037618975350495570555445548889994936655861420080878208787339922265038179792988484605708766237555335146429026097812233005884243014263879161084418793598969803813229599120691766708149333913841670259427590023477098194557489337662209313720398935443906959090406549802110183735153416313485574150339269335566694152364256347496141574645935242501509016179058490038108117439599944933629804490499485241671802950373862150044691303169966763124535319566262081444207925901025059012033574252907059458012553501139313329480162584064445355988077096095880547676161851463674946914115620470916406173342282648512022288883985078662541173071247266136126747539692253141913430664800362185912930115908662061981376283402225681631134574037712078186303845820263708925410112510862664959377997880280720590079437897401195240512430135997769905363022409286150519577229239444785203679137780355911154114657874560289479893539609090628202671160515575319784024716291530871252547405964410691466437782099143111590153277468409497093554291964709890805346911579106324452305149465479704489024865315817222312662005252226572421710408361259606220477860412729836701319600220757106077842123085395027916622787857250116974999800182780408891018341150067012337565238519215664375136612509628704488637742769261185647216076251609285867268813827667263486351323978388345920295076896844887695036560557199978716006504260902478802601861565045761206796976616844281178840645734617842636310257869989546030942223351873094002542856479442502989933562827235155478550950385912904615947946153119085133393401846528910808977029707753890084406897461221996575959064779511155606565619632871131667178510133748058001450276627709530734149403081260341015473884631006014289958031967005725929981562235896093001699388729292415613963174317771252651406463417655332876764112928322055899745466328298848985874670650561763286842802598983039912342087590944136972546431879050218375683436294898635185637203340984530671240203710237521165239991506778154616648729420411287065450952827263887429828871915221263197789330707148350689104727748269055509569294295680721590475736265486192195245617155106765644017600807740483874896480149706190738506515557483998013127363132221570977040902165517298605866086354726772312785110258670210369210021141586734026131985218230652597541552279575859913707690018802088071426540248250212478617846191119162797593135633014160401379184457515567979001990355215395033504564271786735774031893299742999750661643586629047535566519139230135505347191138857285374681027382186602302846465316083752057345974661895997624826788107809700552373311735144957715514541249262206849888210373720496165562485850722135228262468627226563511910679816283750516391023181415195092356744498610812169885861736105294826593661024964329385825085562336894983556549587408720897732971173947053348506735975952569021389169414492959218415408623244173327154217203869552321205683444819171266710667797250786271454207971393823401894612703493396716193442518110260020536904372010996926891449636608023544039514094504576322638374866855286141781755647801661597870073104000936483602484972630554336138851905279035478958957665032177798694925579137914889353466878738126666740939443595552156277181399749981321632831621111855191192804298888866908154940171160601283147103415043049491550121581662703401253376495478810401046463396265292306810767599261719599917339415679637043178736277567615668534780304664406382705663904315964357344165714529350182210991976865963881906830229661583609065156477190335713961688799650060586645134403510808676464614350037924870288918071898151557448302375011946264269752505947627110750117460097949692395380651801520911716444899367985395057666345750962229700859229430653435496524531616412328085159039873509610047744554448897020201622229476142351639714474381664379472737849999016363334393942384021536810637140067163097033542045069655605390040638382681364953572769293278910475664786649062214448797418396616604620238339538471919670429971001343725008205400786450079550900097248429802180495793805160730555702244540804458088157314200948135326964500437476307577810107234109435033912280268257763380048020630161493939129415598549005546149187141137551078928937228406918822050532477362237349901500487362480002850163640320088850304673225105251500972126988844827564145800868768342426939991605749273073069969082696548467272282257669157800286517680663526050722278420362017128452417195761442676523867717167676303174307785574041290147536050683888790725587806074078977242450864850844887650850827338895531570436107832075171499209764208795017496698824838135555591232747881774437970365603890162059501594159491095114682455982054011542141939536628206743527275009439915160150464972124558070479223913478022378385853008759766002406348018811388752505521755292781796179021847984212483487968336560437005509339528476766442343183364586930166857480433205714708555011309599631393774513449791553772844511763516417852092960640143142292277718701654402695932242595899193634975897319805657005167899714964670314573477817777890677495111235600681787609127735630407916001792900700178709847884444062108464345682908689171366985042786536979839442540016250660934688207436745280479600685925647384821420420489776217514181810364567623619121949999536028905499513420345005573356649397172268498591694012259497085093717834247027510186896054496379121507170409665952029702795065642867381409950864897288293743123966978416044271909402945168231845909132699352039380049194620525727262290206492581610109701969465045867628564069251509940786044036759210430385062546925594211678664972868880572141554776619799282886022067510132153909982921708108312300391854333722682205279610919099872795020324951620788233542959450342574234083369427784837464834232225351188675574467070071968261052511394205456472749076105284111938617157461509129639393164932517262123922130238185607787067536461169895515217118531992002698193071384717676294563750360771788451472150000638380661023446295184998383140086475006337298626851039518128163784702097077312738178364828228919706968179360548117850403535969117378167405375342815115965018674759470307689681954947971532427481712544096651455822467782037908885832051197112604403725202024102820272921537453883125017702906143135626646484628789605287336698182373364299309181850054994513314100693979659093893537611639368902069210936640355267763918138276966802578498752912798162613720106475354906925245661715721807847239028341174377489540255221190308211243285431006131051979614016175449435461494850847254317080642459044257056945388629757753028370215744219043380890098708393541025006410111410724604409972379517476961065980708317444595619994958110026832472501934595026357532205991835092557827597246052795215319266506722709753383464465816707411027016356651991641405215922191963903158778336719197033524117093361924639007571008901554826419576709551056465663258773491405802482026583555609971380932883048623339710658497897910408479210389426255300697692364160183783241575780150141687432193739691669026118695946043307254174065119277307203545972083511677023075511093406374032651963972691433094502209554322650380585289785416636678891137856252714721473937116848872466119001609378639419259225356551513219939048722571849604779120842401035903760056898000102461719950070056442243005957019630164693884992964186289731555722669193334352523334451155036254422796096087162093938973215037534342031983521930452638260340651844508766522578714187576815032912334640448160391118883837902011294283428071511655509114301713464179061793828437387077838911764124622332714672213357314773511425042534703627224867081557367028052176293749002293635000179990246370987417802735730936149139770805265795245060113538874668632852766476293519037825541694484482298753101176489223973022109489654644300658712011090508858412149683036866162235882017768934292624524900922584676889763991217765772809374641929272303793615363490271899510421941307860122795901307068845887601739575353026859775693111779355346935606472948424602637888108608008563257645424057448106711176686951809616726536768246084797518837750901220314524919721183752782069075311515689719220602861726403943811957918257731856529810580417841575681868565504752890698944630382464543800395260847703036647622778892835105421811241621350114903670144633856275434079757019782355635401115791520139558360222511206909173824775896041176149108838108349698897874738744349186277748677212074902069876662147566143952641674038732796793200081872380987311957108403353764010688649580271727576770944958837969532349777723926167102951387800841984314101515355780331651372073704532857757543883551013917984913781317144725470641025580005323859722365214663069030492062979079240889757123453499802133122846599005423422961694565207083017048432047273843652018870265520981067094046514483015273790536707323203712149918915240277540653100278550240283859156846759238257866705701592265542800172026179775464827658215858321938138440069472620094944852598610884182311998396377200753187595190283526196175107495083577339981621672740318200864349413641555500515510345683866057174426296447115631553746711303684809810748237840210237293423408219303180316192029320306475777315614754759809617346252199525916103891315150529536721668352433727446472800258093654060404863923497413573510677534034389836556768437174559534784495528597380550016264844950403749243444953049658203905835653079103333536756594312090357147201660014078663592991412278765200557076065029960112458106624118840347604011558900248063109575205300350489282360366237215924097499214670810653359673072656568712900251186818808793920826329640439010082626701128137960696245242247203814990762531451160137510578034229171270542588237826617251595002800625061543698393156928699556237876341450882616055501007389870716835717743296719343471322587917238050099538325357963933089427799991995569820255036054566107961145648252338389644944598744893006813881604696037895702928091052459993806068078022381060830426477886390496884626835072762537794286560184669639245505396985799251450992067577122561396167695113281841005739919656457921902198895914073975170125137508216164023282698420685970730963583175679343040145830915063979783175487063204991302730861079203557160707388357818407574687818138298987935199741034470266979160766294744662778515691051518946182552956113223194564184561955654919317202042827188486140988721681416701406602297562376090131973460376560767863320980674246911846233235162102396277690469793708465031884835602365887886070875994029718762324423266230848359010541584756117969959231213856690706877862569307966384317932582798758718693605413950463637668480837642802413292476871867752229318917648006805291034346751108793268064059882643957544446865440307111944637953957986023263028715994740779727568404466952609712086592200582351177622037380947442405594081096949632875789194057112402389469070378002904458297839238685292758888193084041505201780646130178996277148665026936062939485648271449427668271600065757770569431455614725040560548538099153605673429827146663881035598744773741949617427544386940122910501924995966049540246161110890488952140020414480354463600732328508409868138003062207097975998028898043884862392225199480795718306599597107884854750312516833229734564357069410918459345090839327073231796349874158538504329295398876055141817447528917866576054328388260676927804548222132459506690474105724362225565239592317474385918489552139456639534842360982264531425607436573803996157108827181147760152838190889548554991173741055180894711017687317861165057085399797328696023123630157887046945504967318697085151049599882146057845750347017757313549587335898257455695743096756072008183500771205318789410902032603515051348207358113522245153686049641515201176069858436320835596204178597178141402173940149325536156095403203754763014069141634733894131892642905960869345171455610840213842587072280057038574719186435973929431519492134682481177304028393702977054772305284755048274064070956051783876303296907226854486970355451615399524494186345109792335356623129035887855561344018364313772750128526869253101479962572021601957266121457696491402845412663902347607589512756512873889174451649588329545589631283778932311668519971139995129055805859091117753631099737980305598649115080484325430875834882200322984732290140151349544591213951962053395972762918829117851256630068815419946740061043407814828897019532975294986793577046420745073826026128288554934176116700773471077239842945747247776673341085697962704480349505564640119601546882357873081255129437005000383321039812567941909590439596315727654412784801811622065065541200226585467138084695452016844979217868302481893945091535641201486148698251329467290608167159499389398539197493838166227554892664124048525064155990426445139350372438598002885824126650451413651363628043042085991871120856875481014197105812849137792114133021111367648791855534551883255732333107770835966679585351480632476831304561913872696863982773444530947196217957098642307281119307651365447622673055334643549929154690398045099635440206808764864916448058371805628713165250277994387398196346382686144984796022351518071070180910559294260388808534322295152091846981628081507651575985406245687251713165443011340060699408490354356009653985816969116147998877895032366726858493137613981425967711485692620089827080417158649400266037612437455632843289255646349076275994629213538269217728973654792946770675617701695264053612964423528822587514425743877243951188988860888369681418300521883473838386654404731062795437437776878657691562984473944941859004782803977276026822149559117665086868357033739309280979881782820757645497613522609138213433968437286672785154312895087105790340200366057028816295063325724219443181875797975325627495894298061400122002642286248655279086244109496767959633834488321179200609367572637822050657618380409530336488247104644245862983646675695392150599712847687496196558171957773900481980789973190875815856272411706540601411164916438688287077804310889226011300297187111655476304424329433516106195892164368993562711668712830011332474444307308691160558215535219483942366052026403758887314442972066455708363428668006095739595010966371346514931316969258224289632706026428977455306012482655391452334656490625485505675075693281564351913211993560858752360987327200725907985801546243014854064703011862690462508535021920249138053461345993742489321308470741476272427041991218158995908998062072209579791402162644330962387291621898358237303361203816128120476398484358487127455327649652423635961934918930870786675228869560190851357345952905942155494444310185681663090327278410860707660938697335875866888428336111953564380865642087066327085239752748525942185168611595703042216905532166842322752010147742907930238262548627018626795969041584261586566328747240101518417112326529686917732104659441956723077817184381342856715446478609722738316739432953896604519534080997496658729410932943245845328457332059065726064856908273722046560256327384601514884774385093033458807390207718300566968807115099284980977357464890394606403766805012060871785877737343289323573589383488707279512562275104164797874737328318422379469120044720326771042513016098150610296814032069581285217714311813848407986866624485667189810521527771526127797490623594633688660472387120869918371263375617090403314109385146490061377617369594770249544382811171577813467756822098129764692033728337713208009434681574595127369339075127574712693753251955947659299466741003862339374680094241109166050406163090796736827480608134126396002630433936003691985115223317611231599034985585886985377111475731208964016092516141959382068481350816029193490021359428757339938735099436715844671200259700726254780254110715084842610544573857379259084870999122003601422400557916790244625237103144833289287283132536462260294294411236329185797278007380428422158931427638313759762036160647820294829442671036703369537721092984093783839816491417115936813765276641385062832085455734147194233239689827684210375273366525671762216050065449046711343768468114320008936390434551575286836273140088594054342320558668662155034887718819472397449708956397808278379217934536471047444764276180801292836945388212305636087535623660143173921795435227255649378121852334782553734759760555179226560576975564020010558968541601099880083581433125114608231306432489804400828001433776843703901241712649612472962777076097502754151087264118481757291802773429354615971124138642684560425039213472253709836221644145330973265296213966943401788349872348971674672923932900585925249965791336787418168355211099022634409908307924807057858985031436723478072594944705593291319840193270918611079163555741984433248933928777196553139662818036877064816808004514340621684712768850466314622534770591769518211882634916179144883128289200392835494866203190987126053370116507674848008770525347999220176908231943200965969406702314916645689677882874912431443223663275626561412981775847996197318808872746047197050065071948780049222602918650690895745917670920030549303532718586047476370376315983417289774532480622600909875914727397461008265214778627765760229198418101401706392306485389145959900864093982389805675503709747343297826027319901947623665010251110571812888722012562910287754853979082954442682439829232122378486310623278762032376347116213659925462829771226137072400290398697485568861667265462155368822769981355367352559654375412476802676308031367287393627171304020295869911735910137027459732314438776863992514825432686893864706723634089525019004991661861431204768550607537708173597530062169509210846617699422891460487212975799913901744734696569928939749594198103169982806062923839391988205598174249522875558599765617665675657702803849781109710131946369577842695070078698240448450951311281498362579069513512138851987451401443564982176686737340868065493221193389602520242089063605846664253191701802616674255598674563724953239271343419703332430003158326303768195663930798828816316997988627968029002207325047697388741831341394127639536676106436255038250448710649263213818554200685050145042328160382579413432259874227105112565948983986643015176914356423857644382494892778285274084083872274651399812271382283825699336391333032500009591687029617223462653827404141449643499578063209050288896319359071483455772427199349900243658519426234046300394253136247410299947501765089938592686183770841289219575835018170256049146362260609216336982346971165116412653453455871591460824414386769831048685610839031759644172136346061340164209195611679604809985629805342790177318426298828870798991594859023951131601611516932387818355757354546982454498572610635423469827158912327176788123567485382666779803925644856952956529197342328494842716821696899521345330429898506675503550260146828156171703441564599595547512943096288887474126276131616061372035006052904454052970958519330951107866471818215258744377089996201207235860914806000426048274164490528642168128022363624098433276711235743132180376191000844916032492875077848693352518549008049226345771026896655155812064231351509823314002870473984047942166706681667591160877129632812385764067478742167097986636041216975531429799111689750960750598786844887991129940380758900774176601314828677702758606407682000171254068662409527627486651466779801868731437891327752762294940965549850434891853698594146149754544211158409594707172075249798991442321025877696248210710230224917826951511426423309462608388772286173546742521811035228508837703700519360642194784287676648483207854604511827390346821480124675759422402937946154696694224491045706109364189187222305135101995733986652983133891946584071709313824632872698431737772914944236486052457820764991308692926337867243793767929678723065143106822925722655458159758742445394374324236274038175973310574359135891641391749410541485403725553707140069474610724133395834781059298246910465009809025289339568540235424965799422921246130769871302584244843360561282036021635106352127676310672211881612239430453781850055701323450546563242723211092348728043655641851867450012255940599390330783659519438683117911680648508887733438796475186437258624204428248562804523995113345312787132839946184349168738833045023278387365202505916841003074955571741933595808246041012005526356845958960410806128060624942927134563458687392144095274995280486057895368944556067340474740972889845860161911138295420185418849099158297164441357803536102268282432285173194688846639780698554179402936006045529161122448634479251760150371947101706783854126211842439253231843891161736370668289228555744353425252856688999716413602933803703297600443071071838517943268901326317112684007666786505307811993614803188026468520260783537237205079555108630717734045852565045752470193482490031721921973757093237952678678651098277276797964376125999403166109364426097293955406036394400866149729217439657916191203392007622863739172716127534843989923001425855595916044291050772651507287679602641396419003648969330246429649418849113289513965333307438341298132370772219639048827512558600737852933360185863972359689983769736174856876919806193641432168828103064756032648575687642952983501213653175632742563154383690329785652960692896303593254724492897292780107983454192502920464903044701939925437438701294719302539471181421955470191573289258796333963104069902902656269286819184900780539636676822119164639504188151655512886589008829344240592290744253464863085791961309168086058348615079240971878697526732997103600522504066441764659197268691192887024164101344673372512169628659499122518062521068164074069731164712172314671135665140141796186297498841072968524052087061305751242877798702241145710195935397105807720702612472012942121367984783807703513185954106308858132426760802999857123870502649259910331457539823025024352568354321357123911734838947501498534342430662413377859121396149505404892349191295574690055933127280424658222949598117352374758946231130192924250781629003056531572683304013523057706710772673066446712449197034544622193263396869517121279809135582350565921347063991006098435082079974254455484954630500726772100862577032338205028307738951903212319820270713758203159726311624125112201660257634934873927228743477191967609127967545681557094345047761602849130907528552882021810759792739972279622961791981851009738694511566753564369452600331321472246126666138167237375110773830357407738362094088734014848526286252284281304825005501087796753838286711942013596369801464030356222472364536958741875367758643555471279241048956036945045425445320586753399372918251044011675195701443527334536060679857695763685305582100409585627011978348637929929541812338196190682792630801138418468721165274685520208863590508869395599903902004037276679473675590625019326584145688913292080802060201668178458159916620045786851471578620273513998334901944253723648600608988290566367546593537927372143434857323349157350163398580267837440259630530155385476265018943393963293284529724310362959040031396906973863700922691693273161191363416770878867226671508734119352815370169791382722767760036715764224415812758129834528829241174122085599541941423452472761799568397171641739910934165806745944651485189359052845764505192461596581531517793197432713433480297758924198506455606793336244531323380499748062584320708256091034441593526201126505835160358621055774037073911767858790834744081137005937788095490945173119506969779449573227932361411975913603169199398615936587648695639542037391315174004683793826998683891661778372180283581002452151131153940348256782882795376650631878754828904163718512123020838883181731110271145256372844308408022885327351312265718573401926945366321098501716891006979429341956909284980162310933136850001199786858593983175476186589096189071277942414642402650853395469129490997310427652206628013846649203013099193485062199543131345624197936563260871420089059800925879054660977704291117432662690182176152021264459014604902144658837899067393202540567201466965817691637290147702132527051493569902953719477676721374270165538203587665497593386041594592884247317692604530736533787752619482838545771328974575293922416840837653895166178004262821081856849154957819365465047508042092457903412149698945387164212468657534793888771748038914477748861566418003049605766433466467439255869950916126919384200222931151749545809500417957590694843409775883014883573090666270746355486133536231453222367788979227246530837480857435201885474885479972696422008049852770333879706123244315918014201691067688637227853838887178861511856598710760710709200110648163606152584125692912447410959614936263300428423244978520927563867443962225874618145214383984244577800181064476199934353582550310677646617331426262593668337970289651176764930939233582041752553339100979310540394492451882651011242832009331351555034914504996388442876334741239668509953791219668844570979959201260535268985451893616128633366776374115837152458227633870121284792432660856645466916714171877503049910877216373865677014557641969672486779829448373415221417353007489031553609486234377126335266368096916987758516556402305975173788623944309895750123468175899446818118898956463176462570306179882577362506937972791196609390842641576662107073090044338264592617809940093735085629133929631540132265853589377878303501730863890138960032801351388780426157196352897074198887623723680465220913608262591250063202539902564072374016942813224926769256598394800201568506849501151236028569640179313764981850268959746726076472013328349467211394505162878995801894052427781766138523049035449868867214571608668757112438443754094762386307266824219423955121936036772765563744981004751855240408177918868892753525263536603965950467498604910586554696651651156596728177618005231816040661871788801128187469870855270947941684250256607137154901562682535235785056198341114512237868079261602027527318123735125263787241850145995234686990218365097345519240477803116949195118862250220872533381243764835288211213981201377542798776162581433712444864163849961807311106964076220462087015287424744979794385895943634669448196908927671688038244916978942971221273726461564380988331743427317647129817795008049107650017660299229209335666963100721344392747991799227841340986434343353478534164615403608903470173484788665254257800262615235247790262575941920741652505301280588196785024778594140157059295465546421505340064519782816527948676118379270286377773777972695896356345491629504781263342334696398755359327276900581433582611274413363024610605331883353414406766703345563171847758290044402201123074943433684294244975104491814630822642248849882694191939881986249324201192245881459473587080301483256160757851275499545684778601696393739045534955279148029769102466658993765909732958230673175386992112899940220377204797581809760415077874059773698905051809995237589168758713729063838848744924319331079616073925560166487401761758990285398116826318864390604046241707088012395590184637690852599329929602764208885385422359902477101635431840647155179174873599466616493333518184256114246641261102269488537812000389906728837839616339531648218822443278193389741651578871408595747231711370695591074939057696873370262335229188706088411749942715396268312568974590515293813614165529552116674119432769924548881076362069764451706052721044389623523920101737913669851163305551553212629270829561085626292699061534816036114950252590645476038853881177712225386659961105519110515044592207766624264438188066998056693124103108749592783799866682466893466646192301366039537019080421144806593360141992024212979312654032507838663953004373871086263275404671589012373201050263619383208528488365892854622061792230254695425738646022100066903812924498370853421121017648811992528198136291859638720432135774649447385746637084819582164394774226294549031660131845606689014948222635669358227260521366351398155519306476772396725658778696944600563087902823107372518148282531363484742855353454528619007334685520006040146285685998115244014963604895663754458279959173426438040725856315372793253463640826205202192177719788678293754360081175495732037370830870884014695776351098742800481506006116902510053900895557508489337718110292979357654388392617997585885845346930471443109375966982717555980151774595986587328416255034723705505993640700126445947019677544091906989340252150479076219232990308541046142379721867328527599832690720733201615557752523159400609148787522356538383925453906823122195236791634931090442445914772290066148225854710717376302433873380487035115807744224566485867953519512886129841191568622837960370968741766568554814482026609359757406018902006297595087980622520632402043057515938491944045581749488824176935562548279119453368131788629655068780862168661652412084632468126559235122594057373109363230756232313026867020129022366899635017034813039274808607806965221632457591699861575636120920261233880428408862135444479574589613760792423193670108269870880083380443280242203249641122245898663600984004741835440493867631033527245412785944600530241929360660757672224800733542993263149754415375467085156591769664155304572073851717987409064168468733377181129739473192099936995828164926858508309836496610298954195565659718802493085820642323367627707597964631585610151384019156558781385163563924974815137759659570355293828489450802863246090956817917717790777323591804701925212953211619048169222013397260662802989662704918428914441337760280139678257891924472447009533582162763895322677560001053718481079457611273533481772086929814906288212489107522695596037541938696774759249496002864756364964423160612959697393776610341127901443402456324978270213503646524684111323795790707499092110051675988741698615431347515582150370639218256021597101997690840750286137144172383285450455007006306344394704602513854585364333117824940323527602180123971782540418946737617005083044478402257030797485380376487234468052108787802988138903466782484176846009762364595572006207133489297319090102980091465147423948684417946534833373426284809036706249212357255015626605366984556404155213848131872796879415399020717676902547215140804069396120319236989960240405266070953202282246551976714653494173279555723297182755350923229382877670964987233696444227269543376759464662479411694738923233960952697509095789216194561072417261798850486092241001455179879270012870569402665302476732724597964296577753526466848604173472039014972035872711563160661809999302919617227402460715555610383659092666267781988503191323031835866549181621863758179401320937795466710218587785963879758815821114618698168771536354937399744663248082661955978535210484168384077933626206389830589425888405426034815809755891083857979655917967590740465447421237811248888563098268414479980592553433797521291917076572553797750499586880503182135399206391027714824801324888434694591714783352969612802238841712465724224060441566484987350008082958807968703777678895525896051685215316245795189989953462393185699378733549885584044223316399917494426083419919593463354917778015975352488245848334930004298896506153386058620476967153075493729583258055684242809104127139698486957383185553632602836281986594240854636466775767978412137417084620293225566453684967807062237799589466852029773756376582820169699018515113158535769194132918518624610796560084839333163762129651561722173563804928509618560072725344126245722747277850663860399312632755376129295422110026503076069889949350457336169530721832057105108119153399528028241582837238979195586482584312069860990409389743517452566445679569075108908668737513463706371468554398716515309169408016049753598887069406406625435803179995109266534790396760028322844327843599118386772210205567545352950114400984068868970675254727174977827038011020413827892130432072351400817838720781988199333844544422888133107471960702237906612633596576612500107067156427131279944176794810994828994659479311335981172435598867999897992811564609960749387363017984420672723193142723430726779411470976753800185183675882957404907485559774924675318747806780491090929662142432339205666692767146230407963376913966116958142212128647963344812684897427249209432834099771128097940152297233389664294003458857416223865295912346767746716719504472696356231282996417719913904275999110766446148382207941989879111390010935648643468954991441800439143424280607434811011916505964677109526907425881215676938160316291534688011437655431190149752783014239719860543618615592758970409071544605787400173506874153306219773601265957008634444953341276759632142244766065515860112180153021769017366737755438142563149879602442233996263385375808392089407823960164817043702547670515655078842416552756802913902099736601077523438829998956973993477793044495195299629306778540686709301327730878843640776695438887202908559160822384937863127068381210861043380793158262032819040600825838034779097489221604987054561936724886091536631704284454921082886870121721962906818418842732354498352054257704515610767579649489552079793144143897747731179140479087477653844200373980487503267816214066855792095532942734608486348950142554786720878986675256150137414742763885240392744876982762173931411178870790463613623508799185248596639220899014894681424281539005081510200580499928492979511169252646962242730311347614870340413940392118882241438379918761494252872878427351386887287506027690305027342003077289919285974607163007807812943934342322749990465661800168914164570885669212550015096211758759276001253220866388289418936978381999379801270899777889090304498979516917076816740900288297651331910469803399541857716019701558918227401985010647581646575960988520554275638847785630071669273227054966476561641902298410574155787056518181646574501911753518760058265472373279959425536065944331806017167337438543815430423510244854735900518652125585663819488075942071132617093009711645480279850300815111933806365008437466548341559810639355446644090565169957245784912026205201804245403384342813075588849311137824870904584224605412430507084382560006167027078003397511133842976543058984438085630242015566146909065661571868865697237721361997722158240417678952335691873522122522908515855028401198353948383897732572307870674977396980090671999605972591541628050468092776369409230896485273488770928505538705556360485685947679242221563411692763665545355814348309372427232432571947887246925555192740108689182536984744822294112257454929523865407571979331934566299630628007306588232992935413016794557354574454577313344767521783862385717593574195905545284678822598123117340282372313726410847269988369442142873390850472309018764382435279084660936187227639321111636805174967114037339321173075127680547184650017826323625422771499476399605926829510974493179418257759612344692313599527104202964541765680997201980704549950543095127613147522430432816722474930508304798936927395693429556944951222627650044645413857089576582513240896054628393692903974324566595496923419094273840763987905412401812829103766409580876753207522662211733046315813245427913320006934921707269084740573430494836438393499027878565815357141826087217465762734382113168211010729152427749414902794159619422680142434470158176403670855987241884160720455233371096158546044356282677441110994056152066349579924818970170657211700469881159921914861873503065221034890229434509710456146549938159458307373243792296729573974257183486888183909878081618259830564142697093403675935859299794536856614945244257880671716321346144428802447752995410407034228499509831079240918736549079839723100390734634029040428588187568706632046674124010512004192082348301290623259606325521149497939632540190168417636308978881827925437966494716340226016934318560888456058071990711653852464951080337553570911408741452378716508789699789999498822301337603274834768273291691145805722256963404832726426308091586251070331457649557382136437781771095123820851304523353268072076749308247549494697897691440716595316872965949994857587141177274972889999628370143507618237493577778632436017520984520018869043598424013668480025794293994032005741425170594813778953341352381382924820108922559174914777613778210006953839691361051414900225464762833989703860339758430097831711782801094666187163992050061125334966132166853006770181485419009061162162376955034372295315076670846281558002009571392045948512633583117052601389852565609026221335442153025625873371766108028552517887523190951245371483040113665815303191531348907296237507788093673993926296092068919057813043347882244432639001782013455967811373698370221000613180926299668540954138629181655397620334962668191377045700274000418850486002587911348714182821156930092159086009493667035580868718464287670486721611392793228201839383992045017966134723776856851921391135917929901377854319753325301885816416273702632302516433778713149876416908713050033066204830393882483508483653219690949618863963559188510173211429434814883844482038643387876883930465402418685567687438235339388104067046480182394456976040137872198668153620058124361590873728256936412927373282964742474508149730766521255586967976180673698851888401972094550838666579769987494690945822820871054234408353253558940540044220028098135331735071428424743418237194732515063021905276550345364539855818462816267381846866219254512350631473102910860452253082431868777832600363144664686629215108964990195247893894190750556859154015294834663210934776042944673926668484885428580438628321945003523058131580075982916842768338074825452526491440969949860849749119280096352533810097715570616452885975441057020729241433644355498531323823102139260202525502620738615598919193265358769919914027810505127798873927091591920927455158062776524379537832436870886389519265219760068007185740859566902570461852062527345121312427826043059232252378310569879540719130782569307537557868386079244528720435922386940295671965059114115282999472792076098412738673230477691568832622700870625694388065449790144698000573649038203353519776005200841661089138288000890943918547967941021148610935826750096477108678720775156000096435847287269404435079348452195457018541848624690524335456529414821299331944705100601958613258334929777355003402214589620919823437454591869565003259887990650216781339352991020842123882800572346164085248182114923362661121904604891281017341083051018328838309978749137608630465313079744826122540606749818147563126984555756802494178885178680642679226045165150637320860239524119100033829088677294459318134736422193262959357549959286929500577854464944657735202398868911374801556673707884020652606468952981535200554670308803375204753585803954094332406244563549802390388852842834435508071489678208680129684994323155881582488031283919248063075211623311969277871827424799034147949441504527240525396225538940219314193673662503665863427357368523331500268684194698493233966217808314985243927622495299105130184111231107691979228761162892923271919068986324227082618386316479487534463252728877772164406338073472761210820104579997688739466862892951647993943127894347544868338208858187598097513038346809516160088601501453697385739090908367767981301871275786327049796923379350246223830503815031130051993859275237912771219329064628693772911872688783707020578691467314993373404255761153621967846410859250641302426461412344398848795002797067351835223991125658561727069266591883741778818882932539530868206540768602643882388204216969376121381726788940254546898683388989914033899925650230225138215842603553840835882112824398246763535141939899251832289058772227953692354571652975854033646730558823229160602104913757004070981210467955822000976921116679967015689681171410589877812429596477016207782976491680868089394605394415544676427532845938817467807043428670305070177359897878310276904791796175274298213468587041936210653052819030275031697691993994008667350380114865302491299642015702745667403804656668683075296234896338270866672017696642043154556508633851522931403845240150786080266384110295398455066393262476089519394515604712755971367997957928875991519745434210457144208763569688863787791258958315897346471627107170382455290369841423480078726749156765941950657108954557204209499289663340325754213767839776623827093444711861194853208284994886790118134400266773384726050475925452559219251402515829687013473686844380331936740499144736400285703446196405996969257409334286072400839402282837968098860866740925317751412465697576371269336043653977202278654226272236449872333789302287321677698635520360497135073145250317228991696236852624469441818430238617130552017730151296147242475644073934883413018721027022345481709596336712739771306874035037769086734339679544300905180842289527395425192839999972106630837685583023204229701772903377078261430131384706366997553260709797178670711767784036256799675731903045963989491112388363409150048457422291706985192693316631597857464028712174835218936655340086252119047531382445339716706000876843350310669583011534081837219412068710518673502743408870044476776415200603313750149065892654130652645614460395947477587607108118528197315814416136332635037909117948896170553942856131340454388152707475631724819763623223873503797455018996560127897704543596536949003832917578637167847447476402422877152319827846427605818045426441258523085908268328108642985540915314763697665081355237363175143096899951825871918395591192236823072352333611552009627291655251031341652629943684887143698997440601186321604984365655745518618947958287901035214276555753233157405505242224779255020913146827721733288522179316280903818032238788685203779783672146628904214760702891543888946854125622119137034296697032970649204090991500533623945881067331909732927776875664414943881379821057567140658269078447184367981536810724067367434174493753983906260773979336276113003687069390671871161648294687996049833843942122952849169684924859616596843714641094808723217943673292906620919040301660103135073952667921740439966788793509733553419260211975169091817898949399297168192110360305448817172212140492576027667417103691215597751352878285424244554956568933147537578680274973576953677584375613361411464587638548149115405787419520527346771303562041837426365560946177129554004373773729866525434254185943028876270017234494101110671328207414829328167259817860347359411369869133494860819616726056227806946942562713794297128054428492038176273142641372280205050298367019770523901168722905820533552766567569238712661790758191914510482810270063085525363546122734395752474968196707553999278462518856223680620167992981482197375168290359707046487713529237134967920058572489857690897917124539071070885321193373686280661171345205667947686971493988962387659145948254066164625934013779926359587923522742264546359555475005143184390241879959960775849635824527046445813826661096061494028541431207762076940352694232940121356511821293512099354752310576730394638773472347316437921749406971625841351797019090244963028374691182695950126685957724751384157899388192420917244340951781301457971472439434917728516520035947758153620176577625309697769130179440431669884451814167335532777837206951568708102142449910299869059402010309120778995282985006661361462682587667807164930054679804322213297444399389057537666275242466777943273310898655322852256163838763364201986156256556689059462440016517875076680945287965618142546585670085868868691802220843291963916867760456091688840838364940379916490103501974928877832410571002561294455878104412009248728887733757834940038062729918020550436578076577702433261741818237608751873172416596920712457453307472943412565402412750382690272580794863765115627293244001031575789583268953230803185177130992274820958827722067367482735734512379844292384000654720611471720614434641924279715510338788687074870864199085616923726871662515874424843388315239872660724549009529226239088522612593354745269894666346052922457848919765519165420512642384333859171697239635482702168115560599383678375799142758844694369448907113520589373819172511773494094619749151602668881117388466493952254764010051589221172145426252228669319974982330184350118611910578496190681842176972769690667380583393572287545697252221326261647264627624775321845591141580013708383938703129209850381775549087517251159664885828523985438030943149447500265283798304088400505753098904610712110132284061564727909431487518731364139903207477705715856967553826259231554619438329817335619226996237938071081847228568204312092702331935277030323878794525510510951344983158817654794128095468080953748043901251989390679841081597932270861789906382176991552815625553003158821287554175214611521837509726885776153265464988768313564301906273458674390613806794165608502250550689852963878246617341192295431721675167321696041060806630226461670384125795146649508758046529701353230535777327120879450583594194992028434082837710877135276147421416509910776133857223991120744742091128488969418459722441975955666545061170002108075418209641619725057673185426233835641029407568223988960788533260977559466414668547990070535808030984197093682193750652055761714040500225860419019142625834583050850950475471242545590683864949128059346737324015539524802821284327699820701329483753534748744422981107195885326082200757461999055549240675962952457111942385988581762454442379800245843195741053427074917116797592460259272330442206992600031132749148608407103606296964300862620214580278260916440530521488936917653016026721469709212989029757176959913178135264808971914141487216211879209650407735217297009748378980745919060632043741213325238358188689217847051056716641597521449585018950915935715939706125039193178286631667094841778723914574624002558306606058167765009383452791669340588902302726039020323122150661507916757289675962315210479404538943017639914509895354818963986417116659484625811064775514993759755211794515626404791148894574340078604836415123553304253780010511953276979119204500147286155929580486350294195123282512484123615372656920585187533577439671564456383843918301203859723402065518350228556206324138018605884189411471236787868324748503271924642846238737867626727518152350126854737398013498758676114216105824984772604591059904726822720494240460053185273776347309108275702704207510775749501644764462726392122134677478202687572030059408627236562015755221338158433186987931975459706727293161584600325813914196119258042131354440211417870636016839377370766025064628742006655706785259692804555837371314328402867330958769085004720348374101247296504868326519628975914459072262098064245318160991896794329029479462571883388420230324424232620715814805108418517761694426517010469739978694705169117072674554207264784173029329951603466485297184221915633121170257135694009917100755458683901762884151605752616935092980386428269325576745723920849444039142000804433551819001619316921522093455319563792947792580953909521612555356778987181689183381291999993795066710572685357572911184736877902634775680202088291131020521098480164000802660444443868311417319295054349263695762890252906567154542570125319757072830062311963200230208491929675557914212303195169836649604609173984592198830146356083929309615035889838842130167411532777547575978730184561239884451409827008404485417451397875424984604945645070251206652993557879520054666889864423340507746451208314827161881670144578578911244670528415135332738020233672200671924584643384354844706817072872162763239192382558705563362324547456788426440734905376476402870659616078290663246784953402207847209297580326541817639192604702817694654841335526041906741318160637202132120109987950362090221059307634608522644466513493948010090828790866346300558771478046302334988628887193947676494912274709257621755942997779793524980879901061788125218599987486671870147156753843130664395385676599641094915125341695033704368732234207120324109964232053640336441131886063456428918068181314612011799187852858389176684002360737746936877160311763790002098465882115658560974312990605094258076392615085066103914533635528677772632848718184558537425227988741187844160040997862701740462812081273933489156795546858828813824870851842459908090104227154472167761200995220469160984085394393301675675464914092682893922636160111047655852316949453009239107679286253353531958746513931580112433681221955502883959849726391222006233054378016385585914329142963134779621756081465291887234635987987652198388381477741750595999033528379093353676854349158523596932966886313248162783307860761524928015560960379824944880375448336416123787535389166344974671322428337786125049133453910711735301052344695373051961488444817356474128730716463214224837008947012306130974034319880961647740492097111842666288822162724326905078631112363460758817134993898449550626895872385166375505626526760823729516578482790209737537249580453680887172076268761271292963808559151397344238532647185535515506836674906164987820307098563304208974256298433050471907475101824921695039452039575584933162398103087765575420987574390846768524675134923860525329334510926742892303317432046501663522918107663064349984035702980861153144324399834624521710107139871372145792881951158833869593763160439848139624073801685166351946364164615557386793000041949645332627707944953996815339461663132626111741893454833236471420332159489158014303457198290059615727842049518992055250038925244620458985892370593122250882907464171173088926431039863194254900157433798263409849199088631624738232060342223906214269612327443460062630611297760631816800128337324404009864252813574218019467781995581088661154594930490195778490921784297719278592307645395081146477218222259093675396880300987453454672003144605258112131922276182598775305490606157740862689031143093914514647911053494199196327553679982500524570829470595247402720366512099887913708795637232558880992352820690315836126829215046838978062828565511065954755169390410120019485440680807910881159476307061298661208926065756044036196751093421174898503707562758585930807620225461327778024800605437079477036988593293275329701091453648774435277724802309310051176725351163206452754842332661408548748558353190420028461713300755248027614283960380801371483668678869763058451293581336215398277662597875025579855432191631803738720440987570346459067390708155537133027711925692423759853093215741742629929587254368100049666103559373740321457398357026451395650426802187591176949910091591533578455622296155079239155724537240945757617068663672768429547176433673371958930599422121581863995752184833681955468648111837470218614156193119507605056632179876365588837358885400526418495575375521443723561107757100203391270324438284540386157735968391615412948081510072076900147469198476284122240379770730190416959791938395648284710430484559692046061448770833488342224373830055938912723578725905848832136955538888720097273401949711839556589176703934122382550121944117310640661513094636545489184486474469461610068588140892952579645455702070019951672988753113395895918513184761924704628707270212837485723542328941204122061292058259098290910839301216738743893946694367393306838302379787126663037034298620396975031136220825338593281626891788879033508935994504862351491171668130724756347428016605753437452452691170516284004690103908557529139587635459266114271079565161247739751766496425752290167922537343485656338794725966742136336354207379857124586449166522161028708068356205638340288387166617432227144333580654390018339375760020858099904323476132011968402581803253801325991210789242738731623053364787042040383663424158629961324564109570399540134928443590915879339872689009822194550490535513577309365915953539214661300669398436253331130555427786538142908081693850613519762113972126962835671124511189294372812301593523237125686349167369744146544538702077217604642589725377765859920949609758265560733792006776692083673914344814953183841743538241151393726122592214147509781877478780689312354615343581214685725821866945604086779388927105518478887702927097511221866286412369620638622962793311971278144333599190042164748607148815141830687166589762620122346078552925472137398081239252777879476762847801683913771820173169739811947751509550484965926610091955365434135917653572172586540931994572691101718976374883313023700230106746716150551295758491469866009746238820195919580513390507636571537646520242656318166338097319615591769488287884183684082311621569845276321092798348353635536537768951695621687533197409964120029835928180172895008794045154304698842683297664927212607702068660964695851406630301071670603791646162904348774381024278700275244872901761863520079101428654863293092649636599632569030596836333840042936517496252795265312144314505785627143714184104423552185836593115584530788054659565701748648754429940213185228300189617114015283874143434050188880216818833617525293918148449194603341906351692342101713020646251733201774943601149910787596781682526640247317769309872988299462666344741189187240839705763955495384911941134014295499704927320547622006947300139419447485223845413767583731383892135854620802102198933612301079628296768627698223174319690944370388469051411456539404058457865993579445104461383754733834746425949727072580766068031788841959816310875877083711218416857556897979024979026566618910803292826932016888129515435998578335516296186428205323065368929242951542094738828712835807140113619010419654282473022296971760824912671508617156471939343347587382616563111616817367559055279113416312725425707949805883516468332743929446853026484987871994712371984956688883893213928542766319157309597008742658568469114908051985870130217160076269697091438727909672220583257009804366125615427487858520381824165526746244001154305902895311856865311089794165642869225245166232742232662549506247698209046516744226333139484071511966607181695353814142045978997973753467347081442985520041370026137761550224336242029256432525118665649191052758431901254517220137866551429959963525891771536836515875845235449216921695965658316053028600926138444581166451505600149111436031453987822402194532097967759805139438514576688045384255267818654551366054478070330810768469418904895889978631294215151722810575959091305460450619534163542128624162753586253211002933772782394978492091196814150393712388175163659244152391891377622762122437423600955375362523167063667103542208594514048797095495865329359640942051553746281539342428882718422513962361987951014807398123846246609980348901635446214684550438500758345283068905922721333002037670515951295244210956138891433092963990999561972345132147656543876717272368880935972291179774029642237422186963066294981839225298808354470528500081216081275702208150551462194588353744549712324935078644684903255899606415258824749386944401604874866075243791384312682598640826893320215827813883431591371343400537532527320563736962662963730326889479759519485460455398496800946329047098985282279566117328903286983253474496256371245915672106317460075219915386815800249259617015303635628995754647898698106985682440866482147815456931987836067031916678048903199239399511755043711385467494340891648269965635989680142041985059004785580496641657636303141245506019848831076616852496852416264862441911493694690690907226626453419968477107561707600264405746636026709118549999614714377347838388155074885226491902839811255417777212263497910941530416303324189530661466220502391526326666395122627272165521743392331446466812916432650490495783404094573697642479490806631088984321199638915408226626070122605895789822144850911413694743776838419340483300912216462631966061692937670369841417453045632862294891580608669580942973971502734241040292970104494779285861797255544614928022210831040863677875936101175727621781843663109554564632104228733704374227927692961148171520018373837400288594548696773117228222770199969199080408903311932007090530046722835508166828751443900609290365296462804850666363473787061693990292123795981311025281980201408185195907147672860888221456075780312534551004898946145891546614876979207636233691359454380115738060947260114123240271701016504588981523982597528983903015119968901371236112315910989170808800874590278483122783425523828578937145036913817751165922025003758465097203816329024477485963383753183678144415192560995329180643488264755790073851139938217110858998904906024228736336129849393508585420615361931495901280690425920744555760373638956793747482436103244028098234997842127183349262174534409367172694639530751872937134105151702943649163475366822750012275646088791882301795731536103032099814503986468110642821756927283736236663846116771056627681408012377774223113903393378253110891961716806653124830431173050399144824214319753121364166312070427800407838276022034641064454132761912761234819922859131990314639435070740564401236452570424121853780331574683952590044715151235950040480292939202253015308908500683893090343160446317915592136985154151809271581486685752211267570326661101865578910298196740004676254236954219044388505646514344176436107672299452626040950918165801509234835379787898161381458729870168638482906905883655065770975042597981155102906696786154454453622899408650328038540932610733546034096852586974529498531097771697500383324537952631550079773509436498747680217712714644346015247071490027620547462170156333061713475408878923192584215704686723828743512702157350556941527402534197362567890166646740152286175680738590902937058016184901496486860171447187922159257842846445330407512083173061640209617207046594094955266650882354783063159017970733794121886488714899354198012223748583672914356068877038952669813121911251369034226204743043320036922678311414651086745130286279774579028562623393082619521545701934072050034151554832967994891863188797723056365856193073520666882489019659002013875221361468549274015657290220409115293229106553730823863227837522529295635818340435784634514808968890236238357474489888260761899838111081421091143530000003854318807395381094227614494271890838948108210730616443133609320742282761470438722983773592081129391161387761483971016483347990346474590583481461252867812641907748881098043680446747813000820201202003309228485152234367212826622271630334503579181026712320832048124962406930189067336183192696660852358871884672926699375257924885913099669365675439780153122308494919090045413283020909909580533195553066825100323072658035179388447572507322336371662169337807798290038526171451420249486727264771709351696789720396905372223568006330267617414523245180037533441799884963829647149155776010980436576952318436005048004055161571303006463810703265322079191834169702053596067584142261941791711922295353131009263260026867985764007808255351028459990493703656101731013570747190849723167197160619940687535854016458855006597854946371228248376955695014864007559253972406524437866039538023622600676193579886905288058543022687706652829830872597387236475258100291248282240710918543067520240343304617250911065502527867129813355492903618519836772262200146888449960047665047802520108171811242378329419257373159770645674912291802239449014494544458209004118169487732032210974221204716482879311235091786437016805672495392672454672647908606009846256864604921445828187493793006945507309003699353432495962702818228042670927468020984678827622556806317817761254259150319741027276672913126213087552548472614224522338827829025007153839742352984148238382474690897583508283219713636277638924629851929513865147821583381985829256507117322132732128787655627068387189516849042662227343388627698348494022521112765214826976069587077255535354135819952648003572689735844066225817614425709209049093094813904147147622742259798581147171320602970926145764846075259857766531740096691923193362577352779071836645345052234494074744981326819756982473768101938072077061346744572054456203201807691584163853749360115726813224487591387268090804694751725139475241837122314338618874985724708138437751392307882436833186224200466558784927752311467346067749944862928370345278806238932467520044871545628226268495527558242473843655617352833142272331146168138259762548328158856296635332206510025846555042699100048837566922083927194008287824780182715120143947631503415575629889245047385752532280584891308474792580338747373434454668395540776103251181220480409287404119420074709184898927018539056832340098967017599087882558562849825189007122124613383829057074987062476819743890125035199109995242617834245740343727956702619627383619235695217359671271396209327833420374936004813119765353797806698255654039723476196936027210256066111716004058785623423968422668475095784418449742797516945381080564560615986124706913726889534619489238601243130517363757494715973180150115761667426656927107272188642525197196233942591264354904513445041326937176183780322812432430640808064609511800254239822203407881932823433263277206381424240550949530273084280156262505370987723165917493958508294146446366810239631771474609776288018908444230131866144047797215710081470817409058906429867300409951628317381300914398746445792523242192971246307127586384952964194362486834356388977813581598877428259379700737422902179167066057500866150510208463243299198354190863261225851678155444795576049639795471543981268365260457942775104302477638249757618802846308111187713099090886461078625647005432863915386781412512636994552696995239032897123724064794460462598897860478447762797524942185410314967374462286253957937269924563612072550068356599355249619496189108102630182175790308175299367277183253366755870627422996330566044725888854656403045734504149235828647968714374936559241007989832757049427360836800626572027362237783893808930679553046028740142487085557147744467520921346948541484857616400841583014152322728380196342326225997522587683388269103350715048560649289268318205984185426976037130709804707182756490749772286029827086130379169072424591185603407793464691111939401438568468226391497284812722058475929888983978928833053620475074405487935212695168111176322921010492418061413831893622736711833508573518525202355514913784425711989275623842183648229425002177156112279197772915768416458092019560853697327795964954816898805947367531630446111999985324588852694039730876540483883190252161304986976078385549347037620593771105460076089658057428131379486887932892158694487837212363916265188422301087428406344601962276936494050439628715654677561014569975278213182322680393415852062076105060797803049249270524026528299334966079344800914722352662232339761699102417917719012977146285014625352036180554748288196606266829541676055165919602676460112387523935920464277568881227364224941051938805575862972048254784365217795178589346017816343265137876725085374698018912170859264511171687141319686206091525870014012148392772599657375760179353423143265476801338177636507756570694375637948707304955196440567425014076208239074406436077938031297765227737686547570791927626612891602106433169260632268342823049044519029893044868203733680315266990919141123066951817735672416188918510394063243814249535867260323699989166875287450046759769787209309071202074434510580451774211207538012959302125483936958208982292474228671078759124261495965183463229255748360272940508008716615289429900122621000577580497459873541806665256325978284171964981161822038161717192524739359628374462742560688898666199055184021264678173225828454415715409501069919469615362370098145963824457302986612202358905222449568688738242527079077277420550473692357023106568909380758160060206749446553998336660013184018941008487560024457507468811904422339600663455710057523525732770600299699137657721687055184471262280706386856355409362983780088156801242300844614956900002883125088349383941152117107254493428089259432523829479619463392867835747456411301652740528621400178890271800249633660193755615885603233515939315492313462302471921696623941595614774453388596473190275466873669605572138423619228288900294469126972943337880178367488128947366942717866963488902074044632659153740829374724677051397222056398296070732245110939673495871220817667899253984492502388134140757397729665324588965821461546430994137139838301027550867363933745835557635867571787230338592256616381865893954173786306945078752461038166057458157139476055533361290752246997151035310208143377287449456424235517096054070347167264537179458660012554193382344879850673804472019294665208798317960259597766137410000581243892276800751680870459418610911149513060320839046953584225132815315396225251960591908677835703721094069587502545512650369505868107780545577223149196267260547611244939711874109883892783837097570472243626047274564872018942336210071694686821899885753187497393925152132935667369958082713504297496966366314655646496962055154850401664154813129951521872191397032697891530478586960259491760943058736834698582739592006205995933091068597139250417193917660057355500194212667746118360925493550653258669274135079351189064531444889915769015052017661021958791783785570262790662537906855024321865141347500143900849323676122676426224921262293107569480176453955231616603635426817632103435624938619434430001187317050667756158005837920785053848820642649227330020695038905123503888632265674602539981423902880021132508015838610070388915939744531263269272486077454084655633169323186583824475538907783872283129419050096583658657873697848231865458392829624717302924467037755280467868923901845120094300995255883323045713310926257398778357892713108474459097810264909634750246331817129929672974225173754850708137625297808704257509641174820415483736191009962934664976986657634113532923930678067112725247225194132935888823608231523657898210380985413137777073711293615824311096915915774735288693774277874810467857118490359285508716356818133776835390846661122185249623590583739027312858131218352811899916901827542869004122022968720505672371611316577334476420287972857525545564328884244752114183881393584104517659393297575458174046185374715088748304193644802934796896129895597716907993105331902066641239611974694604132637036603620859198605584208804793360304964765234438074993240446214116993921923578653121723976753023523030062107845627962995632642967768696827642277512030720058193189370854625016819873944064947909045708222159577036149455125718462349269804378107456012261431312916735169341700974602358823595071268922768109357821088612730181794276732987409673043455672230044433885377340953690935128973009739174915012204335006365955951788798417550976365622833523734445641887676702216884532903121673648121765438757234704024218420365429423024954957849581904593556893831641507121330830309416602567861188465300720699390010610535872125897365521026234551859257127296926221107103789734393480389969494854056324617920664484059103982445150047888675327712887793736233320264018940334384618701931627522448943185689872695647386765777021391523159611646666600376256286102879620203687254727165515692037689416553936720813668695325436591164906002142753675382867240429047717920036272456463339070622252608131641873130830026279855668005516285117340398365241181659685001192298662014149806814655432358120297227841763502689139004852781641685707204492188042802776433567443538909102628063721411563415773344298669310194304501427742119893666052351525270152520080558133639193761741247462541808103490301743458549252531201821862639055874467954516217650025491814609616262681929232148208032588909795986561488192496334814518167789940330171857189628056280440265087528761187457621070833290353422142258906844994179397498366890784325121034186032048976899718386687885439915305465229946660202985103907222798998938563982865297243807665760445790042339763786763412974000220694921986560284406039725494199684225915941794331768604538844156796531442229983815618019514090567173874724066974397067945864414344218747531552624842483218131823849344828355490291601750464507898002810105572972067054606108871866935705949004689862643638859290428471682717896273110165754696470833985781605743303618955624969328929544398421155988966278885924013296012209711193052394659670019714981169555915895430005517970926585729677115601169131942495813698577566407554863975097281588610327143098345953315977891109374083798476523319471056699358166223908078869234048719932350879462475093718866437544709334929660327368819072232446199458422908768895897697636781905978352328455790566886281016945882841192782114283575100071128650912149632137816501389727249848500633374927014952057998434549719481922390794213082744473517063954839602511484171549991383624404735308655747602512434191369373588411577410264275644577753141304105715468822202591259762652620087726804868863118461914218723063298164974485160697471538541319451037355804150133681297977274477238606233340941694539636046468001532504657861120391771457280786840153746327673823492426428898723937170444820333074071602002832213526413316699799429179845344131139956878423655247149774255120075107434873856018070853379416527557310393962154624938947352839192467022279488183119628650942477122097610381446877104394364131955617346062667385469207503157175584072154724938891683438533012703882714733406658427238305977174687966256328509499195773531493923263117855951710428052700683685195674532374393025196032817306439081597157911092709896530129477701232021340363960872712915259350692553812435232611420700422576396687400966956764994369022392719622496136653287614787220967063446914469764223551530610580191320473189343452127816215649551287031753305092172748484952315017896728583215741753769905274622006311991353452550699446520623283884073552452582090629511376887595528278392840831739206776084332039712186785078907912986596437328409481846092349895090334897776201241483989264261578657615685446620586099206227385853840323658346774447730333726801297541657717768840759318305953752826287007317830743644064511946789270261966003500878075210591771134809433273709212043648039691216027123919422729058442878073935364540605813798376167240078855657801655770357509136909544139389150439383577483820428212493639501103483355307240190473149236324273099578575029159414162898437914674522693943563857175905969495634529239771627792519881778087480866129658772457831041384625729711139140546639439400918812661888675961909100193199143950144306471759703952109217507643721285429151528678283163350665053174420185646609714822064299444330336166433242812598037401885969903123422037075383931254720854350696139072972879201221707977514873064328194805331695126875397250427010114235957573910770958078620847846426896351527521284717154472870308746875376926870990617166809967654990359278327837952994663389787499642266326399250994487355577964362365876597189238586897933570589891000938439103288799019739919824800982017342540640586560041153984153419541976495345290671884978366328723189580696462829888776297466808161979851611954901009359706867273525614720486752428754306402610059907985104719519981080054719424832213498928130388868592269174491574744920335290101367490653179878778136060835463535701902224793071516617169086362644620567424040916161837689074359699202427849416500203505319296982645670490859385740448468807683330210984824997749761638741188064685558724438197108800021791674797620814345067231591292234465100761117126722596432112725314439847978674245845459682022243834146003836073453726558811793728476112867015147787096070477584289019240276952346760807550846033313934255867066591012951869148598497636113598286691965385463652203111924766239416958614770690305094298447210628383919298064421879690472342804495600791588906410728224086065602101796932802717293664586093003312258459558552170515079060255667854183411214223910508079902401493016035592146907306036755464680949824842430389201103150996334682349910304707572344663649202788979024911585738994319476472444479524040908214276238342902140428106875688797058244653157311786522973724550464943528327078006087299479759169031397384563078815391085221332664207701348630160436387324042473513442888190463993513664931900629559559250183959766770330784924127049827909252503427899832226300454531420644072368286440706443306529401816045014265858419992808048397693702649414579517648362995052433277358643990849014252829174668164337527226038658832162288179328856950280129458080953103485957492175133466708540202167831819386671136674861445666704043551506197945393385552917839172227447439043843238075344507354990415285752700572411448302476829632120124717174356152442716024488014634636064533036358310054592221197813653500068087585052205460795349608790004720282383973761581661807039444250042488195599146658455997615851460374722972189889306057193231037209534881866728744393209519322997449271734133138702905430272785758478586665054196499796970059450342490817197189253553059293816196307500536532087268026796503437716732186166329884087793713791103879767557359959666042876239044075277843813044511908168683061568348134225283590318693713590973798499113712584562346504019002783877419931562350026739786627552603001270391368042596600942844514592821303639247995079926422241784122978935091003178700752750410755448289217721773700661816344633579423506308576628285633571937306269771825308400301883539736491104863132460392117638959612433785794374082280275074630468205384084427097388215016320039086662666763278425346775048080376226387397498956338757968432369290383803063485874932796120008011232910320189627272585968210786598877343323319339160769434651003666902616975927264686045509016576874066006361163262669549839239131675968929385643876503954239625455278820264703380301141885521539815913658738397752841781039755516154879864019241396762182207334503568440588036300776942928034904679238400717054571841367474099902854748243562688423318280494246147914884114608668711558554807046138981011235365756040215639428618385320542722955775021694637553408437956945360143174486863152960972533898332838633998959827177980781951940627560568305788937722795243020429593912548402855703118468402111278958448523724761439776920585735732981341145699555686265159915594244466952867530155865719715201062304103371250047927539756857182750757049098051748788663873035798464835734433836976877348886747072742791842696830250895380683403035164760072693177394425572434772459912364366298785585845740720926135188555695717763381322472469244016072902970953032175591016377072162175244856465222733738863957805053318534392929529474211359537899956991072514187371732142448608225939893167543119770568091779475324206234096130874069960728828726867567567397726009627939853946587422129531774760262519439717331053977811441752974231646784214741244504737445887598425116287092357987032818347898697648119236841477868800896493322436019608643477443749712432009576661589821563434399208788714913925155233523992833741797788912686590231807892096689311580176443051547745194254750481331000019230319099263738565086174206757247789510977722128215316409193244468697917494470459142986635784049388295497865345903366770548021376583134329646784097758790232956792201718440350972680288315726646682642125676924723877795531885318093788529114124065764292671534279903233509193337972518291252788821129560732779419620470441946997215298269082238436906095551677385787387705971128171186039705571141290105777880817715785076310793235564085493551133498951281726009726379086606894126823511528502942887496489147132009313785687270115429457928973953435137997266999361260435710540683197782736403111759365646168979449130397699864778453985100644409815110111925416003407273345004060653256373162541909248044955520100645316514313824551427483530064182063171710392653630305168204410633756851152621755750450332515911939600072623107711682181084773366450528043492056491418966489740230899619701134371079181585618223841415527804382050421562744061242932137910642990348272757464223931746160834715211605920161718804303262337228535994915730231496668220960392014521668256179888623395537297389123588825119933455112282165967756190048966234214770884970570715766985117022948594030398749984085187477377977569825084836068321228114800647168321782075844285630726383265544862827097162605643953527805222965354188133569856289491000685415291170102921661541777593169471518140404601586573909779385907658845081327635244033492976718575445771315469429945743422811441872912432848179697668537548574747796466688739215045959920563853796293109373684945698792220740155746876495323670478935412460061396538837000949555779228843570131970249986452820327586855240382128738624993752812439692859430608866073478563966282914126642086548564955040229355450546818565066766348143260476633866454784155161948649558722239336334325593351919341593966027907336601075282113867599084458424688347391836123686492160141357960091340303024747857606610355679161417006352251293465910798064785081801575073134802469718701479163829499165556157531371650304820416776812547801022778704948952970926192803724228550235257974160337571623873706284332961500902254464621895260455575220999887819038852007072991776529877179587995315611860018626444397421629326924650014072256756475728442681249346368175826729166468967198354178592457004871819555111001219564318198997490044859937658378965367290549757165508833518822406198649706578492182666482889088504152067005988227057833199800369848484859116650280384138885587261136907976373837228898483333940689845818776484420708930082152422000769434491313409857377418141348304427657996355936639421036211838273004233287867538901651648119614622926821938555507968236532809223209721090570200324443047702886752690570423266289374099486235037418055889047166703344038076798208185901521285458266580150830467769589170876615839534690564743089643785320164479550102197189399339657024569220529236065503219870800430969555905630325928628269242384870787728153055311774549530289906646343988817899723998398278788370373322728392220653912644654458706581758056310252593274029841890232615489166141940201308820659242454069139495643684973212778572856937121926170103826665353152645034034662962737215840467627409025274882753685061531916490579088193260461045033641115188479136769240340810336416280172282799707993135330276733749436370804979620339680230660857231159331893745626932077968152584196104636594424910251279236743273734288267010741085812249511123702412749208897144884783384755860341877577149441108617850359097405248615994417111825499402957093896501792957817229686714679838790601894123691951455053523775456951572374653274920800832688140688264804067889157350556487211729784307921342642533969009017196489047266851786179493055265756705280259284947305782596433968200448025724115454444038397222158722804373715666397082113646593519970029308048054441716794116149375728089885211566443939683391553053009233114080427700555747340410988302092859813759937435070947929191921016047327013234618654020520620412819184315007404147256891728760031347421326244065943179898350935985722458551425648248468699309291952905393011130090644947035904515872513057035682692460800990216813219081172221183428711393274336369163356311273122756202463443488798733060874361642142156871239590254773366694902270699895311775669721025413880301536380401814855339135230092797681149415584943817058476329813309126007456929314637639757927888408654786530467693024954220738888279619184963265549910947084250750660411714390396505639823387831070400291889947575596670671642075856496994353698742841551570203102005562178719760147025796814343777691954134057058739250912723844217385957081988828716459241949235449180901806171877380505608019192465531312606783954032311630951879778441160675736522981423376051827393105698536429195608991440340022847694980156735186354964200919989371007475129692176263595784665042384146467955662002002655055482847688444443098092952385676826070509199452860482225596304167413974815243490521517566715208002798743375923982441747897204688289843482184247199468247277655603683843343461252759364753219010354051123002879349930959006313159514950123007748552910460503532355025315041144172723589048420106458827872774509269662748540184428633211381931037409492708036664308112028825425837794821985395649790198450256690453707078601119162155844547519018931965916026591372212016111150371618436771428561155946452212590336774653290340020059351125314043203587674178994574488759727647602594393603222523377337819856555526178519187129263113022777935350892060566507768110879388422178498852950428587729944557247143597496141145313710974175894453884553548458351687035629202545480486535347798322718383172598343169269009906964509651332820273561255739530819724977869142972390715520263810185167364348175737532264309571800591426413640865820727495443609541498022994042190593673208408035198351480878081054438682458115691076696157216265946162647572732790257301322442106523065518658558176574757194554653019717907225731343382639014532617871208778401000654198971398268250119490830520754565443768005754123838459716303774239066327027630466724562161231987720382545737766177079101577971482287199160882299948449787333938445348477565226364934570621795065514175707598428741246035556806571161645803283702274669768296206424947949180026891823672841230169552423664595407048759905386198850298618269493514929552729649200876122710335437288443942791850520671865378223004666708358384135203369939083621006533468749364070626937972349208307027063878461376691530714186318012896141763469526378144249003977174585725376386674048079323014513527065840774004644735079433920307646917014922834518180560943871618201081684108736559845228831214263883498014961238012428876117252485778111445786055853260349246613117862567452119008170451479925620641793783252150344878836024502440652231532782948620955891957709265492809230637238545119686847810316408129512504138127642534817866279430668158236197469165285632771626349620414074930503803419493510369124530231080622297344910969668817557022511700216055203422465376841807079076003531510099772813729674328551018305242185454873191386538408149156378328687635428858829137317006726597626816899258476048591131106834226074633913182782012254962561022283070432912059656084429410405642142265368319860851656901681058864544976575849437328130550077082225280818618375254509154688625832358418150133377955318716689069605231241593925332520514017573611589418643201077371308086784313256547625851341041287145198048357614013952600480208667290314511297654646536306792329709812512867727656068136628437158200241184139589829826485403477954882708161334363445315356874650716649545997282090907506934938962388056555676853933177535375900075949292122199754464684693923415412803805268961218431238680017382127563241767994612991060111591348520044077850069311336654156130741822680948603903448993663286937635298491066690186152116188980868941126167279049317812906869600291693252914536294857026471311181835051024540917666594211289563780851382852892299727670601160776835823196668247734586173219526267596380213619670651855082257103215682265904640930632934161580160767189055818406483558966984408735453780634941361076318642046610393597991869148258613897866556078741338899534093492449328508484826385252630836896224081759111017662838379023936434133811064350566807778879583737539052048603705113942238379639121162010883829377132394647141069011275172023151285815137426473859238008159776380998026194005364459040228270458053775901097547848323765721552028638059001316614686722326135415402430363799966331924696070860834946809634399491706372322325327613050848420424028881200545990896621472877097914997200159331101441960395643723998424541730367307158539667707432472076491189369334535096979851694652256766785368142035072434395653625039751455730292473421212094571448488770429682183385642088039506921712027096990709325073440262623472175438825606311850237586186735018931690675592034254612760182222996980228245167361015582273739324116084981602969429856238951293934130157678647102306444990959263098711400611603015034105844282759204715928670139707037834987656120961548289196253657182643226362424770205206133839242897637364122723584748081196530689355595912370813679983390692403992386904167609091397754753057208875794879698351973174162424996843024811024412903800588098486367951523545742017958480765179796613820676544957706479138315889862537469994956935524771522234923011012663021720399365706734625711627161931213732433624988649798264167986522420068279025716874529331487451892132499562287361106662546696853690109253372517556502435214437854027800813575219180388711064653272943948905346250973709508089103044198797099311507677412298112928692694340406419428013659973766882815784107344508617930606392469325739791809887007473415344483794662961678741327859151219483536976221944034725471790354037393674938413981070602005040055607649729754793781837997503663985726258964152329636013795787085689883782883793509316739550058198247384653178044973248185733773442719762148129586926537621638851189546764023445752569651116687160989870195260851193560772541731059853340598516725241852432532535986237037906748317623122807087344186343111311455573146996605974044328778135590682237390055315272232876252464928240915570296410795216270536602843825290525856583891974120211869354721381406187721502608377542711811044218088447307295681239750278962677909311715571489886819742405853207690125512341613633838096620952116736801627318223999324495079012469177204461278148489726077711491500679653604180975745312212946299931501161159884976585254324198321193526318016553857828029456632737385158297718496137327657395488688238310541818120375033760289986543170935277777754077138094062044876654474989920695869568525277436191571105453221875350615914281280029346218559568272255167390225033607799742965928168320139848985165438499186709898506642392146108902178022252672116557829329112236941370932163166181625059385602831340752244559125452074367616803448311050700954462952124908655522044424613357159485301850108042979332694656239692886642763010224401136006736046791691807851674466671579538535385646925217651780427195800258967932772086808209753543533923638515979891815686298520325473813502752009848428175035752910876005190078022813446459385102971119185674475947740193784531976995060003707071340367895739333368082473084906544896973004363428152973319623279289401693238702097639375368058398823929138545637202871961991560640472662284298554800540044911694594734835526607531279885163744106625238235231188226486740221430011165114274016490274076723748516707809484556376966843030771751306352322021153278921693915757209692055634343105389858228278948780092643660735549668124380145547038926658287654127001282266313238614063669104674296075604861731535537002479438385302376794676488804710105207216488408255077693505029222261739954196266859943274274404356775290382810840452958899125322453473321765396956087526764019186567456658284189337030226302459008727213110078719027579497255497238102556633709080983844680844517373098636501806219794397689713590396177967592231184638024619842188570934399704771066778434014124950753836569327214105671322974605451653905289058018675250206097648315297524652234868987179792352608970987534086795269827837145377719536923349125345428876889454524237584947546717366192137664955680833757275180767042341632794884343235126298793752162854018569279325682664007643475396533735599451064344153238458144675874357716971479905083372192588442341269686037581628191729153121717591814475860909073840570444164114453557045649493860666674846374829901212628588618966551528848410540542222283049825251130820902157793499010027874634584766150381670967483683686113802677746541783610946690329090791702051378456626612511468999158692077247841130653590794388531790504994890292233058127541162347293322170061569748634704934579297729072732605882682434147937184990797017570388324295723729096571985276140222029222491417746082915208244355775143346644539659169668476544194767269677826008990883253292775540858184464771894798201545007164261011128774433749164252053648551778944491090425625498783209866467190322050668989113157860873894543049419887765961819219377729713398831504652126035277094495329840204554143339646085205645495646701668094370286733597033278841384360246917897841313544766718518107245047171328501484685694890283106284147922384107533555644708728348868598303867183959088514212225472986856347428084739121166683211707210243340084139692898856597967252202050450875228026685024657518388912384737738884218674986645068879014775215001136207531728095149417661157885493291373258035652386781854405971519582810379183784017891564023486372534256150149435938038973272459720298830810966977579861831127859624192698135237139228118656499232547832861826508733091673060189113478725727682052357343370325209571299273242208370176654752668572329661922051805930139928005394824195271804440135187944326197442028571280029867615061228903528871113626553463218465878431459018385720010702569960710691355605219084170905168194232039999168668418326508478482152019397772307787407864601844335653638858128031545670524123700853794935608767798074674454039144922556097878109496092501368413130706955184308064169590210711228711024004852984479448014001297995743825664981627130900384580142699003874257500931798933758852584557082637455617749702547099456670678787668849357307967393512591109423000113676643390982500030228584717374431629728511217141537808144256832629170188886015167946688840725360607915591360207867888414138313137796223845582257580413736371268961366125929869679385467527383582916672986859694506310931415240781261793599274217191609974133007927336065661567668839460052022283994765161672907896429586062512155786104170335458459873640138009312290631418395552098821632561002215936799734684547419298566002275470770628747779044593395486546792843219268221630984334659317242225962557309468514387401492177729463929238202351283102030492006268072188199233906716807645593716194461012908916817977226955036567965550114506693769012021975448172676245559830427470075824612115294358491086077713634744796055617128136664876993877482679090931025490837574214622481133363892861161601093724223599483869206573763722046900893975273058355285300180571361064489889204233386773397417508050469557772977608139842592072485399449035398613303565278709280072285557203645704005778788081941577739456006855614403074909561054989163546254017030790802401712167095228055738856427202128660056618111612425583298251470111143806352544560253816343168799896873756685526769810142536993655061478196985585158777550975672211442865998798471226967662310246263544146638611755160784536326510174393272536915901738283762866945453576878955049468087058663491976102243908768641222395534376401915830962691906709770663459962517339986217822121508586467631738118796081884313701267117129232487774134284024889993453909206597182112290547766610146851944687972454818027134255567864240888929192464004122178597081053781088154241934414407030404357435003709688392897409854240964781510402598696138639281740442906915493510301184654871212112584538756922911237058957741644926520138636582915881494606865060803725147285050309766538254655464952134254188523800151603655016021978330840133842030739952630851221544295176988782582040228130809051567417897423193517418417795964001274830455759647177651277482289295343745139285547144392693551536792928118225980399067632766060800438741035179080854642666111049115430448823603487723487833121463554385258930494912789460602860158524834233356106742990786952854438601396706122475458065360680195847801860025176680178954790770866662026438569221616658421333268133518595079142056581217603904652256244834154660096564661317198176878288440137569644766134946981431348184510911065613861383733773191519869848987290390995719959819609237762027762721880286313226636994048695182155194262002295406168191772852778102538231776415418987047836334973132858502308768917303004241156633150495024930647209812427171850190646939118014834038307822971011287098543923275698023136742999696410430726908880812026025133904360902557526152546514008271933015319652559247664447779465483053061941900255042985720354690288495327512499669028632321303607639802995868154057858758638898639828673589056949274163747134182758071537968420251111614499269004318456023010153994102400279973620264782492298446950997213304707828607245630197646982278904721346934546443437625663810638347925202255625164688442998270731861094091159887552896827096852253814281530636308471398560880581004921092607394708555817121318032762709371645860887158256629458482288509343485452919237192975532129781468922535717445303896990387000655303728907420848368208063500201810082427854153640855445712587367353224105992267348969537609099498277457361758856070408686905168944721485172965809024979084877717937746548321458571177223078043436913110550390677537666660687507913021638526530789326935718310859813250329678003625893730495582642046985635925923403547062728883340831713588232728356911854102177026531155990020337623349479946071668866491702254603505370435951714372067261555632171056254593946862204582319563574954552519529080461945209302877409544211199571211692192795829999079767991131486196135731332171685744242398028908761507046472218187471219986067244584483299177642768907339760517474748234318294836142062652072209053193169669407996016593632279446371043789846412265374565559530878387059548476065440474570641119380892527246423988051190829121418474093963868292103713053223610525571890065774904017490808498079109936174078867847857683445031370414605867753054479913057438499694928755918134297527207537730405633766704810300987052079996428680228548690930860001281877937625693076177586387776581686126709496524229990463534670626141741932618376702903969421690556547455058843455861996331266740074840210351843631669117376612242384366863298530750283270590050980251676366690169769171061533292854540816643381610902715474685099716431343691434805343894864277633405926354307131495534376174700978891805880392323263012975652681046560125812289667191701733237359709674673202864827793081697219755681155686986483738392656937556102300495535328711063705486560282933810068965441506481626532470368718640377887694444513005955633949531908893871710926667536503415534134483609916569772179593135341262809793009987634749582226697075699665004065079608260637351826543188572493213167268060143913863987919498468538677940718599024526998338351635559207506238881678149763633968781685150647975832338767849145824667965612548232010800230574276706578367812372594217328149272865990792189962773524481993856481464156469402076855653251186522294274595725614451969278635900226469091935108198797122480139620148431227885324618203326699539398497272557944065978537511763684187372809396311898302144619860436018859885559409092038407108586199157387298114835515170183576122178079692405821747440812550360073517394766874829383602797208570285994686860353356909455622969330318564005377058942949805915028842410505682428702783331373190525907713861726466262701243548209342620881197912598144058185242598254578129418761699040582023107001020641501107930945726321712338200766861757553732823095685640902455082611458899717955928447060414938634184163781381791247823816636082465081201464228167247518029096916458646258936961886133668061094188503331265942856538716117619580819769268589347563306359492211134186857196995969320689553103760976719929997674828112657769408146120114973575467049871009184700603518234524463891418124002869888293888676155974477838558187456585187997012608659069872541788183310532837295938133454700032669090276223675903683704209968989926116178250270138529926302442175940763002520061131280255735448621920262261799763979642799791225658522037900075489535045032462341831082123480716188633002990505859686084032171523966570751978646137545217301191788050962242281988278110845434441565145923317880106380145570069644144354414021763337041053242523544077231817944807684777659529996760718056701438358964913043953543046017290497716787289907553894492752671761824563878060654336605760091478124842853599232952471139030551495344946497415091715298993050633616116048528370609515314002305955094411376616014771559151592825967031538551122249986704731895409292514081404377803287384651212972590581914707258530165323223863593429940476135441350673431073199537205708069666193763836653194297931784000104412910633784772756896062802186185264443314308194450554914140924036394537168613990577106137473511266798877052415050695517350291684321111656395397488938522774229330352052125796531997643582997702120779394535429410592547626856731961011617423552489643464767851930280413816098040870504226283348545592142772660572704751430422441538181953908873954045248933374780024080217678029865181949824949226974548021177824480326986858360412662667440280335062709215906615597387638383297941009754115251698112121456851259680575688539780992898549848695988822230800724254857356846508544575621972418656117940333736043394729282438428579489508317252863928692654713689794498791791555755518290722728064752922803231194269542486947220465264175589431274675831526659239658722983823394114849366333548810673470000568449285998673044783068037946424878798229515299108355663259835512713376391269057649231375334323034000362191806645830998368900926600564175198116265661563425426262654771733439815378384671312310874802307236287083673618489886749087844112730116991791306919623702084413902150613695119531054556257812769122812258671589792276730304761835981186239975940185787143224037636838364039954656657455225604020808986494087411997717850606052680053392129350364884119405000544863026685767009641459254335990277200367714976386559985590180258613872528120729583879623582790094307550700940728170305935089125759237416466957760218404133933608469133626411814950064680482014199944499645019275103374725936505203990737454061507330674473234871918966152888889113325983594178077860677649960206278636811831596978625995014767077835835113467832365355466723942813483902711811063706040494338105607788057516457965474217688887527018259202232903704608725140320282487604766563939486914808148916656517021742770193135969389816177969336187872664339233255186533901544396092786468080318865741554667499001499935312182844703254189821984132797512774652793783573014300945099961347953963726593897077971514696118945310816686195082478665592817376050155788834256156047789052967483844326225882871895179366407880013467444678834760536090115153881442112018165120709475856957812837597520690785965681576405409431168625305143173867679082973840673755892701396132589604217869017836181604466207971520423925027524638827024328387126927007257453544381942268886486326621387765652949644716350800410897485567865138942243939754359109917067862760524178139708387376645591390290445434091586836051459330381250322124179459421928916488709552606640119890219278782347116578328387382534326143740160443692526418255601015364371087427592062453343153977314474031342421732496578802667360033205079459050661617648369368035865942752826651177510081060532484744868219019111429793871807969512435417718244735004210345260367792603805301763097052707046912244898428594794312345916807766757225985285634609955031095555327873243689453068897702858732566809358619703994317797361263549111814012955237861449583557132822505185808164586810095080004552118846646519122705500565795899260977942755765331518785587153482824174905128846071295080467797633578432733045611359599204564330236333702147860449929660517882681973920276731165034437124407476278647349806178964225336287133128305602233201959009393830093443521237516840838024662136997434116330521769368777683806501960423112746604447418617124574483360000620626023930678102313672427869485771496956311023420031750512634491896759872694464675382504274915688916171210339182705576287845584509429750722031317427546468474314321019968693991521745534324109123687745781589467410581359870160591156176484955857825624323715652893018187428613441603589208973662776144854122373335040811399116513852500700095301968028032613332643703531455966884916881297113793119253498605758185464684952677469552832120762894596869104828520786440154096536828233776199771387285800564109666691297481538182792549323258611498310631108110419703321346928573837531237198296144872090194131452962366961993337979546561802676525202580625790990318681869647460455937607750603046934345492544484153570762481563666083561488469119581160776463129905159471711226956188075782279472448155631277817135200278949864580970027575443350172431573662389646694528201053512062625431314770782130514500913775016290554634617944106149818849105234627316182886534858785638471674496533663623285135729086313510451774613837153068539310778049154852847223092793648431466888256713927191977068905504557491588646012724198837332340115502871362164301278082293165126642777220435247259014922770804539194221349351941491240500332751287274114056615981913724389779844981693179607101610414126096225766638027379090088072393064295185787466551020193181618820991228921456898386715836355014109567124047830250788437960411088478575816387705662909003967893941730713445471860055806800952948176006340327511788262032968832594832317047082172881454158407565735677594865696503973757333818305256928703791142974189048052343162137759312322382830757839103167225486738059234219395874554157685977143992274103684817027945129110807316660256512964534968239334051294276495842551837752243308406654680521573070102190119615580417956876866338047268018209431765745957774339792933824056302565765543413986264792052453913443211467075320926061650101934624152403224246269215854701862378585107660190821912633881289413163975388031052798263335092896900707797985001617926799866411347665982731485840394848333414396923373122364125472851697050996453008541592367775751472997481460488114863582169936993849847074325836348307229110109763165506381161459060659786398749341664383620577272795251205109493835367490895535950120961089610283355894448790316123983271779785013637447342898197622172090634281710571808055289063465292382134569315362226654224730843132445381003004449028264033753226846667467147190923262891375383771373117531158387357772971949097287805940399149338332083154913371303342637434613443596400803010145889807559997215262696974522618252541343628345659487534975084831811573993925416053444539538407982152571293349855480824614755637963867196279020456042773541589206907199482525421652131306131902262994390040629440938403022938851510833219514963150190369473094265212599480945733271724282261929181050733450932609201772423171849824253520313636427572776842347927712390468510784969842691682974325993491427889883718838301264124048862144943025427604315291681920752192055693832145442574684836213854040025497804669627441287455746577404227000596853139570655815412770268310217133069541454019883027548602031202847037238856498501147719917708714923504031121864310889095519074063474508281715748001050239433746281046331534205765303160846723484946683423150818772544219432360331400819484405800728988618418976185955959898348137751795594438674930242752290286755754839025034534447124106086868479141533133595628017659182261144487981984339062431677747230910346576200840689969108732970132273507376370118899297915762053416491600663916926763189463954516883825804547367511793499650506860228293635203347521975422418084445863056584253457137013437352788830690746272515457612898790229335476387016149525179126533937838628948415123381951511297154987939946540034785039933678374784028988644247897887082993490895532335915194523368892488505385867708289641196418251639969371214736488724246147307922534765688616377489330122684034321916406804937372188258500097014629416094832770062265648244395761875692607714165858047300622174104649148387592765342662542415152357539659626883379815968686257327777831898548507120936653536044809084592713886779492655606259373082659940531770034360250981419710524489863769563411490978240068483053957060450047126738901242149370656467652996786855521154486431765745574746653258066434344071832603656976095723574229052221329462860820288702329310583891849883851699397311816957927875044041229101543067415091229740732229318893297388290440055272920935328331685449970749960062220239882550376095822954551609265449268487420028270993990492897236482681565303710462183919301033725759447556565705767128987753190569909092132897450502024922836449931298537347260012542203793519708433138729126073219459941159650449855108960274180981346928400520477136543678751806217382734867257731131012590534571159293695669780124164122167966801431702123900638023276215612953718837316058318862931303762805086160471297012813945113654344344422592276701913121973344253680824493884457573103761929579589097785752715835271817835014041469516588081787013722167487191169832267550076823013777197138583205190705083493311506294329668427265282183363256089849970413833138182393323858176154676620080376023071720677287846459561761996176510989625304507165608370141297010953361498355159993672600990894838014109994366633066690650324530427072531976387714653245173571937620307027222870011352378748013042446703103444274164287178481527204156923921756510995049666839110387604497649449714125690804659832107342615947831540426216780169655807685024555454466843938534773785649258655426719348096507900817512452708818147931243857982388951306893729012977779029207476413990852894727449989003659551051031839726987239558665652931429259254298006660062142202021542139562760767932432066353930487424417015796193134333750605302466543157236775462498579819375127102651977920123216895554565575122848064994151408332842013949858984488484184751408093783401495224181648945838763038929190947860485505936220284394841786467912630929325742730351194526195745068612738747470215574683034483598216002631142265905420111069952198428034417338128741775353091623370014106508255933223774327862149939863775863033973397436688355161672541280319345880994958939498846218449377480149413915819243608385823373581595075336557314867198112591880043594442443904823120755082180843843237636691167783734855013339611583891518314841471571567882152752911186918914524289451501627098116945465298989935782139341732589148205401744518002645299356390293026658500447465837566685675319211673162069177544055897562696984274179517455599383150172671009986423367217866531178732198625653316371107155179571480485602817481985503934101625090356898416109184441017903036432623229481179595538466846835723293718189924696563243278314396067358343157235002172110044074066976560523110684925415823077532068090296958117638783546301527418746934300145761700233286416070861085447195344969687272118917206444303622901549476221863249617603223075965333302468819265054830157847405506007429310567968774593892739001667237234383546899605536807891435380111365176884468954004410395025850453020172921944139414598186039703905072521142462920639374951672250341476696934814023508701278146993871089910779228862891874573258798016467949117240508280678226738592745833796578960089316616628263997321005216088771276521384623991483581276229369150344214621364677515965530970977908330301877320425867364028077002895733696029788131539466223345783244947287745119105281874973104357102872621447490102208724424061677813415020294125468802298610021913152331759336715690883010411130160871548388274109627444867140887952446665704404135758306614876253263001589731290615542627510911038206751112526801622545918228221369012809551309736801917580400255151602482185168171396651600598382915722602573896680737164218173976137829259237809443187434637791422623594001922287532982974848720770127766839583565772368026343727873336513055450655161271259682139726086694545558381968462991372139014801500101831328998368596801804294356551881603559180583420145838379953612360815071388940600758724392973079946025869572410037174009109856921911688876414912114094657339738712689987144100807254351626539540837308953009345756556303316434260928760531592811784663827133932602989658450919821277133098409112146138703418670941037105566312661690546219943555264022031293093186185250610940770985098765150932275886464212722626442484296929074497023001652387959710721476075921227613662441289604999820953314052432176670838407062460701949158524078422038902402192970067023475357593957136683478798745311177825197314282608803758366342435440473253069515051874419726693106806086187372684873771757053146076376622887911098236355520721237016233260486236400603969925316155701474872005574690638365988888853530789971503598191492103421882395948898421468165211789030574893428802905024869892910083257412874934936625091839200474216007034234740177644152742705335053446420484285712597731834503941996811300549277567747893808810996806615939837618736876781856618781927254154292818567514122263334899338618558751701025122323803263837928847462112301244075371411102352015551104557942875629903976524535218247918325043206949470529380938019378797764402199171127258449485599493322354893806729341958974311882995912869452298689564804760733838135387498069442274377604333095828544589218712158706476985852547406246885976502308258118357665813566638666343643749889352959437846903593801027142240205709473307565270132338973236574851166382587103778505001383566104058319220163025471048927669995766407512495730049164963523234847082609262662950168683105771254566617837901335950992028446223361573939707114506177860441797926302276120646391002518189030385243111752212040492418373634079815027984528576971805472851974484488179404249792688982637293921397571031970076684717671783607640026510473920718727866864552197674678326591870654497508554665786069102954704840772208940518465283956964533845833831284347230467504978075618181067210784735514358467484755913815389660099196608168549211788903882954689434496921525958235974178198367978986195722892619756397044700541496636680765536366325819576389018389561591901455925425830772757812394504234991270169036006467085122055112311798825335413695475236095354539077225596976429512769080876313861188510776137916442438392313516642508596440289424272055897448944957471897594627730987044026521460331062536348690895669863947808834095002708559982488988247187136573344707388733275193876825680338114191579607277092477809660670094132788667456975189259467571825544944119502787057512090087711365587673870894417333461729661243196953747921050917645783688110382525024173443970500286333605723152239087706901538660583263705794625012799442161549201770869764584934967665330876135437935144437445886043523240845614690573732042883383582812953920192496751149579351790340912607678353835651334142311422266422590516963721472581197885493710703070810802265638039693416688306527349732006928668666385962941233336637219130153892562101994057483871808050597559449237548864194158280170856289879816425785489465244406087962766127125635356487474183292999836855596592421831415692446251301392366982207094179068809042526059944297326264287127885065462107523408405116070270694494462196490447446815933892603951098754431325140815160491279372516905046843649561392361137843142939754559902588757963708817852881941243711728811232126349637673449865184362456857583208925271289512512332653153490050686112636094432236804996049571203173710886126302215650861534325306046200897643879336495280092419132038746871811681868873853626289566720663426256774390242693614177013348399038349293415661183971162829838003230269749531289256525158835903323972266547427138587160425549056029675275708117290639979124168195847498840581670987172034193181716743618558763701361287651491670896865438874435634908780985808160786259031664477268121947512422207952312695203802892777322501270620236416215317645364566783598563102334106786306631807384575325935201999862492416072132552061291044180754521424010124428737796042483530533841072755998998129214799546594794498251116137036414664766171261766012284622639202755681317522469066104656245672566909162299774778019723642360532462881201667923806711257823485920917613959832747802563320973489003366721208383016489995136555206126044722966204249350000107144280251622047559918961306003933246700839321155225919233275347009421551754959387935270253097793891047308788513611223113495333226838805617158470121471782660305856932396133879317722708015082728163613935960722256303377190635828133799023842510373445457106494892909122607542287136774484308941268981123798875458797621962425455702462712083179204755504867468694792380115673323046057477414816081244771291764786009517797064773086396387388520970926051905385433770812964776284931175919675220163292528186057063813841232401048396635180331616142083320489234367618111316686663772681921315605841201532378909505561186826642182591045492525409458727847960485135903291595677016458758620281334324078603319469340797583186011231445790815259895981954562484067682241963366079342449099685295610647567095155428469224699898168012131183898265576256072026513192384770805257782008031150051857640246375417675379149558163689587065250851533532185350577365689663149651643963946154420209975053074065012608078362190429580201122995146315117200947173606447121341401395179819409147119754571014720467998950658137081400958922617187454447491764645650589108025582038775704037425700751076478953465782441759751178238109989234084009912762581223793662002187057487516576536796796553935042916435796877612403765523104549509002048948006418507875717419669198522038136888057321320814563807693374430303023069958376173609801285061941391347103118386512127378007293637914430067106012620629834305356998622444661224685171387316194573482873115183354959741836448398004589825215690287410826682604659164122116146438952395607741528653154853469881576110184389770808734718806082043715232928752067505841453382605480114005884874182940309196134321776554876780152649396499386836797385861144553349391044957260318002933314533163601874407469087683077720588027328105128574848120385654349509569084121844453231591902667916619161034744143014771964929271259367169383480210589658201596921848873474516309996667370565194290519510474013380428443571810177881875489934223013746739770091179172466306190680617273472506811285337129050706590214810974490731059299852069607260252385160618592704535166467142689258703314322080318504490175911471026272337165185207696254534218171323795859150480712713234848572495793685232519176860815706048317280296921064516410576134206959010196995064375379678080559315538607370673009578758007810035729039250741889835015815630595425379239439611445661126390398969864915948807487390657100631055830338819602013555826186305021443006998020298728604752961803829912671186363335167894672943331599210297049824189406183803025029474123255538890260474675605908544329657271969251906900180766173359269442725710650678708465180157938461734185308394914280085892497511347616009424061064954119769273222383172889675571455923501923517175808100959912596106998279911141093158284044399285379263222091179743923918926330977697322805446594599782008346034934905111070483660438282571793955331637711175764181753282237915061232290912243135633590263398228488771735116826584206200189893788652743420331966544837266833580840660600303302514340885045322833181902222749471405456577705778140222560067916841279666847606028884735845097053662103269380768230990110626404082543980323771675736122315780403777905116715226733079510780094400803676053856576403620041942652427875716780478207532214800719948812535102432073031252047110718902468037999560795261269690586307141508080795249954193922222181746483300062313546201762442732914407084685452338025685434302332441585574358737402817653988815087538751823332245407539057881271178088467120139834139784817464043423619899275126116556578861263235855014110976732709735973818457745392246268907987098112591048180728526513799208500407916082858590917624379296290850659924044777209839605657019328892668070770986604009798326145096471974083692337720101225217800480971693661858661117203656272614346799806970582134992944996537980118761153499276105856587805560446148159223206951036703809564972317096507997275936702414736842928538319251424535990819045662351355244626291320866302413075499150440753294959395889671055538801375417485534922005359165044429114938749530051446302306118626495001165968847908819669582308921664309711084684665636981100821053921133959762230918694219068012844718989941545182203196638565982164653429852215191867259914507048559650964276330481603310073323410779746120496776949135490850094759083518136510888368971313171781725625496402823721162286625210192357486245079320237452393343868502176440233773889536521213687416863260854916521322955257995231451514767386058719048479654626460885852112467950564635381357886407999632194639514255691804393804490131682589906494385069888403665195242845443548637984678095599149911187337707498197105038355104398372460194098253741752436314953696018221786198227730930050588921612929012633800836697334077201672250569480002511941430935250936424980176392387646749204566750335738788846730588743778982267800624609940009563771500353179120203222118541110342446113307104063901426470903116466971122703040489762280423420365208228845893389570309738995745181216774683081943781774123161336041746160243577511794959113022074046241502683008330176852161960369287605357512426926829358524470471943886635556693839297804266771358212492438213585846797035522929029061231246356751024445887515927794714893710450251050527984251997506305859755434066532288306985361320108421772785412913827371692706377012076182053625375757348788898014445552278894812629455222426179792644240494927592386530943408150416974043008547353823312154883514153822948243134914077503183395670647656987623846206505028235786803629407636593884551342122030293971339980013660901427517554791424134163496177743647578157424352773902766376183820643037315551922476324996885929715476483344010259337339652028995437141079851842832912100514848276882194474671868502032801955194517646021491537137299662738840366005152727677480414759781644077535693378647912549921498858683551978606485773875886927480320596584187146386412240751741036969812482572548944498771853265454624337315739511079223836710076812740158316628067569438268991112842914912710803227054651703701119168592016329589552414243636489561584519206308030857275583748037020937799895780389682415099338660690990292047897854906457712134141576326478715738044601440028209617944322481198865806558562987455642741178624994266771348696879148186456994268005870593313381740520751427282738663591756829453908624418612524995342474635865305268974471466192383174478183110813945587828223529192193888496815157653164524282635614133895320816773756726415395517094490010515394294849094637561553589783446722530438996575944333731050045785289092905833435099894567543889825101501139371460739297763460477131595724700955857504665861832138053264614587802933310363026559056940125574056640136829658190835596805435555914190907352871930504174626864737259700600956976504283282740158650893960437448442417640396445566859201619956422203208890586333647114713199470581479193024715098278146462340694918147783954251615759204480834816350754620238792677317001528595338084891767251073667351432778813629154691963645402371053160105254289152492686904436267399003488673551953875458216347624679263007365509045962871945062380767018869679860460506147096375096828868321587333039380944577001691625587006950185411561661150540318229665914715297675821012758009762727006971449911946582305955796433500450099710368774213207333337294513844639198129875772890188728275036491899837573904376138554465206616270825879411702589853348268183760137371822367332486821588834671541521081178193185916791919563525639185318550414873629566334165409596812282035104701090435440261452682234370533999698328681085294993872808316798771218386968024664164439452212556667751927154315970125865867429499615674959032265725268878654758319121226920111427352850447163668301973131731660132336702044597566652776449025433123367787774013856085382671476078925705392101371114808108820596000379590731729658362055205492226808899090251404135662086252620332764802476319160344349504856898325119291347284288084629180094065719916023823159763835017838383220866578462867353552637086603504820843786493192826402415417534218895161596333569673151536895170906730656146939346938395958972670496611605052358192589565068632519937035161742478028470806536655599548385761915346333292668867462738228685187537886310169888512026238113203798112970135306927166833469766528616633528808800879322340878157671945558922268985174621142019455517138878755175598129761575372852062452346488182242236536486248746347214653591648104356529882217928211084273521985959352806488159715134026255350120676654270734962559835542086301136590590192435585752990739588879684204020992899828468136232299349537857599514614264043816130528723921198742784073150643375351072718195494078591517430421570267219629956360472729670335600698850838381665541761932227700194558741026052572432706234243867943988473804192023491409960355449269642067364009415422403527559955564381943411378193687455711345951660104901855311456216044166131501369879288309396417550946130948232365940615483577437272347494921777597684006754235808007965813163310010990309834883937547726195675463580590470908997246980052175054519279444715987600126249626440577802079103938488612372950254148537054003057915874376676889103642472314314304472500799330129259204046397511155137583915216262728751620006751050758828679489370078532146465386250195001513157584056706798801840530434641033727355727935386719505239626822558718560239421417516474075916357213331447019570316613373959656255491983075221012808337371402487846051894028063877941184831717868919046334944075617978299895016837218337029591296811738205555253942461319712727350485800474842975122647163008188764141089023999345744373068461218228899094345810596939592473680362200185962577984637308291435574870474974210701621312829463176110932608986493716097095817232185981927629330847355113884046574838290050322843522103170585981931519910732617811910521205869195735243412344549864783314187695908926223481900222886583323126849872870515347366149002395018959783516704865638787064093308872061214269492329410608785785438443202484356038280138695477529993579674687608090116280785788744682127886498849946186739762453567180166678453513591298578193493772920574054312860515509387133649632370338381189847128117853523877595828886975030912679132278651953746615693476515618939606821999411366563889466347258912508905524614032148934106599077575852967451876712793574035730297572136491544636327450616230085511861603249617885736483164979872216250878580045234531622324343699438718641536655411577080210999261759179411049750167473174799200020678002626535609046903560261842227049523516738429300081582570720466084223033101088158414911286723851267876076709645151685418781576495485804260681615168895351293940049685225099211828311373295953288319558366464370471558314503046354727776384587179668378607703619314681905584730345199693942068786749711224653199626995281812323304299921211765248383506704741477522293489161966716358437678688377115418291443264325701918287242004026523716419204180991284441485870112465988180519513847204235716408561745998047103483145994822817030919747026006027204701331294049182737873837803499629268287735061908454997228301113827052922118411550822587851572405325350002757018645694914040038124524194353556795738478917840884402717596645126618961914115888340287547749565722372805683299297802656095488588307093203374572158750952348729012271318788589758564867291919227274495026897758635945656668207802317064124837929026123482666143682525039945147201220713813733161142115751345219667255594399971476160098184109423758385381291680523975684519926305726754813337606141399424116210548142164249127706874511315195653775590072214409481404328081240503795628259352012300092952375057186446343160078116503566765749602745418104733295301572628024317878646027608436307509462905128924607910624807272451354607203095790545956052025540913901623932954447228687196935850893605660032596690468515499243305297154389055676695437075574182673009848407755231818730552862618324622183459544803800876922870803379712135746772723976019863280987693989383684048765020293893918217106563062808984682041003054128284053582099289468654746514997016778746757170959026505734836219272789604468881101500173642864908265748055774758945403830264401711805591705796660639849246092171022556578082506763819312162427738539367853137695232379769053781830656026295752891591748664923932071649936575963126652599399289422473150820434650587282954010988890017914321344992909068798096501276636592590805861927588796588884791763537282155951155231189828648598349522440280608843349214938151396442578659569779580019164074151979975171086210282335306697485754868266399238052163961028331397228501242278570848849795918766787750912044382961597026728400080059475010696411922227202597306535132166176959657967824534268741273554773241325740965689356767458144492677016712904776548618143896215221726637900568706285785827666607854060682472811131387907209793191093811620010367459246729259944494094315762042635043634951961471776189454026506702618075805809252063471043974597635510465421095368809911044819448498742081155810624265067008472876635136050435749529859873910078092502938513842732438102859439007177455939747832513393801134079024216872331803462556535382569881681854763624640887396040828548942371595215958228864527640634196101312130403607394307155062992145721611086049558342821628069119797252720878729265031689413938531648808926887353073798900925284615467418407338312991285324149892251046331069696121548185695760303207782412031830263263721911106309326734088795064121637373734009851601669338688273540014559839088269284214289805385865888859113239528416834479293353157306816967326124958567574318620574607415227965150995840435769981831899902273808464858027065276378207219857762410889535835867045118209381618995214085894546611203520937625754251947145704153368583202019324372707231057634954042986097887655395143613725760090572783743995433367628970687327528017772801706033072720961501497196822721537263580833342670518389752748009370070760026168998793018001382043411629725935462740896344250250097299983023784142845208616976755174854155037286333354249295644421732305196762178600018920549007711734121727550593659818346842140239227714966324499098908226858045734346859319508109751466419404813480361547261897729735807986180956941303121580608163270936946019882974048294429439845045106531052699952425691304924306667332968352454941900475423386888937231687933463910066942009174692780174919875473133889810578252364187325332862850537895142519718425220575877415230863752498107593581839675540820683625106585946756349770264966178075871136648283976562593394737313713483189963216683500472321893951638599132721755497157294294288060770932344173964795856238119290069003603047350597874077249380533195152576730593880300297892806495097345778058583717992214774754508037026774335566434443412783684352669342015003011005093590566200635110410509790183194700593378177805201579642268826461147873666942742356351198059863584394881728121766666977893076218292398833919289839625434442774308416480362097352358251209704236188423553558408469504217352079259916267271200204655199459399010692298168644784929072906145779291121359687585447609260033052724587143928967944554152483157660539215798419616644830766640508348434489821618083454575749377016884366275905594991806434927555024633011691826153149858318782986119594530005206316213256288107585385449109317221899596464280754670617016504901262330386422996128749326722414619096071317006351007909823427206517685762761264199877341750539063300171690100878059405411475379308162662085870140725285176412055079871759467274462392849875965849467477064189096657585266140173536226805436619716550117277006008903356705573702169782747299438544599558930612597910004995844356418986019386498477641041128751267554812557941497804451554810293860135578614250016526790142027248285541555699840018891370937477682656880888389662444065975104695123194853676353308491431181430379073328082019048205319784625561978478199701775737826767879289736258635055987277047296766404554599330397195108136713629315565980024853316247230691858242080702036187951234038178210162157434568340454574858338554416332738449461964334094870251240568345900539392755674734947495271371992844265963642465415294434574159586926530458009732255844239061485310513221079180713883805418598353744235478816419158638047049864787139691482138997395412940327852434228140576925803623745838789025479810470441743401170125966989763715874388976449384786103190942007037489954190586098235027360356301002822391297202873025798276212002276572620287641304747299594561458343494226082552906809779220886154366585410456799361428671118600762221271756967760722314437535373283085807083391629013345703092743935220202111287850782287317123501166262089437976366721741346800645047375757790843190612418136529050705398176489672296265465573882860329248604430054021952453686382312572974506472931726477676940157154307262446803794107385574736116248080710748337651403306878150885738358935588753906268459229731731046929731262132414038434361816170410840727483390110962889067829787754760694382326271282603407402282658524174630074148888361634804863959808730415636932230162681463831140401305199690332572192794755677024457727694880066384049175553616459569058759536686299367053462260372889372097664461659292202194836877240755611510727847628396604020939776362443254762699927528866607801263165250006266821197153306328005047008650274485557175864187210136307847800397882371173365287308912302603205401877426750890730044157825333284758431805128873499594120368443458641572625256415913833370690122063693402727277789337978238155494380481863044246651677996942427407664239298406728444866261804623149361540260630359837757549160485338512836569706524304770512018112219813692815984273640310533041542716961272650985832394028170660036637970799050279668713876223372835900796702230410575398959902639713744570658868649348741142276117351260525882104234171619734219610341279165255274275792203611945235018707015516752814566901116887896066252984478739572747464618411080481460735614276344150371633475873568232177915521366283573361365364146085606756845269081517439820513936442219173812407629494420682450792626223256500827249666219752595290932762074065282943373062182386011705845246583015416663593788121515621947118615316657005362079751118958615625325519723731133700438598827307548659409851756039352337615362583223065343831337192337774948905936821628395622925534833264633988684719129054382387773721543633162868741647743522476501295449795632281014482043572570572179223608256275997865446029751756642153743564331972925596435453443338284876196958387571315987331255845527884946020983243411062309360393220860359920374015394551654322620986998378308808830219552121301717423335866965772895252829825649837336302865386672511464751447686357600962599960505762654570452758078868479964954916059005849513311096285010938371124416594664873264890875537833576449861598782349278736201333733454321386867396991956577512643780202684157676364870235386217134575048921103809716228768588518307102645172278900412213798195536776664994561141581994783887115461568069887073356373559235542790904533541147702651434408175788095773119174345408263008721924457473231414437438140815851013789208310114593528198526520647928235399461683588100478188034158089282893173024852821046834176800991801300313398859322443131717278745368271027546978097306068885130809158341817137937503892297786389733028960982276601144685658901684747347844493349328291681719267422194350006254488457221511802312716439649779854290391933600569460972200306068868609391333349725400669767890313768086338141389978864590819369359400261113571018615541692382268089938666740709744635286304271064562479606171252438521349991056468143151217764247683760095910782034569678187455399203137993286679926299104596904775907529461897384633546436997878213383404954041768612949865731875009514408587032885157154116776181619475069126432098767478912215246616188651511230817347722679327531103457319800096622748934387493284171239634211218479266973120940399202855931819668868141253674442888157015286108040844733650544049741983373487567224297204209740480136435646463651802880867394813360832263817421947880265095464896707245969599865097193771322194710424118959254367727494332578341178144120359048641030369502765969519474083203322435217623547579145751910262274834199807857687183883775793364329266416321383063927098655501841741811714362303446416900597936092507480565601163928732689099480021560369741333849071562391712651106611954611660346981179232659998450356834159406666033950276041716963341234766925055290000224480109099899356325099861648396200029878161345703506050014560724290965821412239689386633541307618264643987458755625978357504813241346871718038259105074091413982057496008642648318960463789447535639464492070107055443643006169229605957677896121684320431834915394523896973670104213621577317303985664763548101415168307979075469752255813168547335381851573991436017763473173083941732539973502344690809758451565191984310781541331599446591829066713072375298021777801960749809732609297784498044184927135044853490794080603474620683273576126848540050094412429716400302121311931176129782809263318515297243899374347820662205452040434232047346408170050626464721126463865099407118143713124327895153727477969896734241234405580656982521528906846166221021376061539103936277600926363986456947593061704636142771482352110247000806449524118590374274846184089811352456400947775546673337510319731350998999874980834196007191409670076382863741670321610687813648255127135996327569593492273502902189471701312040764066649743451578794518181161520230368315722930114944685973212689646202221509264607719653234548052972830441797672312059637981840412087341407516281659911589306661440790506783424806819717319784554350134151562618224996219774316033338383555651805005807812398974860995146037690085514492481005726144283394571906809163953678581234764087921347181151718599719439394941394249939707553294231018075947466610662497321783875136710653026903755702690586232661211831396742473824199391199123895794960084351077633412023102036369780126425574502174660388812701957305049263869882179653482878150732654437458642797249974733521328882898511361651805201751506426129986998007092100822176664600372400500903334412355116543954305612243207548115876488797080156984628308543830540349891718873965942170624767826863422615617419171781900848518157301869681479009130825428012745042500077102280281528233462285430438131505532740130036785299220703588259762156415646200594696548739626936792671660979640952282448535129013375733573729860026167566720537639521012802543934795360973727319754600132764457406544437772505586699753526016141376199533583838571883735287299863768974835928023494822735363684568566354362820690318547845866474040792386121637101170823936270240343397050352763665752162820587838651857090614719098720054735665751744760224408133869960241023739348007025464581348555431558169631652086154906941412067199313225146410545421631260128590272469994162357392935349980410867874903778252845862571978578380989720617991893131230368193439073595241715082806474290146563725496328653867670412959499723572750030191022711841578370941744437775011250140856266011998119990738939090222554061514692223991266459548380191796364700330590089631826922399267082215971767821122767327586072641231908290064985350037908942374896703331430513142276815094587610731256627078259244476173647590430575667921571456892874852128542931867462663270883743094307805942393266296471093257685145733423453891251353690537970673407495935839505215817739550100649552445751341797794911167476683264566277600879969252259245886612230291379775443666587516827312941133425464132360168068707078736642102586508723859608248709472808795151409828206523274331283896493857247257270669511434570003999816968950833008612687025483305701038186611107633512874851093679076730438236547401166969163267795797392478373342764658473734502592207587048006946599973451985495834792425730516926125786016941073983306184718467411439478663607634254754184702690747523078843652272119260486426625702463847286170932281916734928557101239608962377119898899376176904834687364104495120719599738355755787641436786913116553889091200248733926686214549156720177050018746369658183477008337243437322881806741304574544559347135301275023644768258340627140525453230553240430846559214924879726993051749649900084921968514583915296235888517046999665615208118886041079617157451486068379813166899504174239980464855364534088369284301060156031660466379266018599042445147572488728197085732920605543094686602584102218525423812332567367562095377366069769985480644631922723548601636351251959074007294497469782588463344686591865206296812143699456461855493472877633188657568772111898924327808043866912425684018090726881249912119448225293768685558969862733437729652202734307650457931957907537987336688848045821054569415526437289604016058643248359421768930866992301877657617346106489538517337033048352570989670478229098194574202272617224337402895075976184596721651068876134413676553105525999975489576552277298588036380936681906972592529998600393983271539485959900945568336745839760172153324047854476960707246357204551427567314421590784804890548439925748818158360842106760670423230407806462998085037295371244446533936430701800475527870726402458421227898651506948176664483127095907131114311921112674434832478950287084370847163032491138541241410141730442334356684962243053952928021473957675812477141887748470833059072048745195410506079506601844594974639461727827171390021313700784494229375324691275052297191268050625405509088099522351305774299315641805462052757169181515785819845084805168302930715894215895682164189284555993877723545247128376038374073415955920908614314741746312938511451503269585004328867609503514187131936959573689270231828923834338874502993908211181979331660409050548570571253013636223964519677306895309081676068478791936777614416776376131010462659464024057507662874839226047879087055762248985873032130342568574274345793720789904818056873338449420739993490282630163480177370800114577877620223496940540364789485503960811843729343049850296406169958134130218826456461715680323184574414009112432119117998036240231910907045506282013488298265692537609809085698790810731085751397380043954350736991703699512173019381881647761027107835400152451632651737743990857981930400551211474583309357050815426111548776012593179735225754985191874164335920605212630130568025023066118636237816283859789443002185504123873533882098386020319937088367271590936272292876111393394040160750384378869258794872567772416608164670466810552723263205179757844638672529719292843095844762271719608624051825347485116282304954566479999794932057843273250309980864937920713494983803587458570074932237968377402512861668907527655023581762631432723950871730354431349029419220877234343632745267862359129920988579863628609777626930343766528511236894475112720330540830315357846811140833355575604351122156374964701253952780386010412627966575398656959387101598911810563747073595148950722475976309509420515073253940958625354474371076257696017446128844569250703849873344693215670920258297771813467677334540665856544423731037654212509453381698729106381809112430718082910446252152986313422822668031118177843398391924343650980248834742902631192217102178417595984308266893856407355149126151717057790517897741991794597459920547635581839697309175458675363169413517678266272527931361427489007904023719791743081671251081885855513026542076452803920434833501628882779186063744747990414306830963798599730890857410864481337224785160531355439490977664020603064317236621034228223272108426663551220130998322776887555197346551604520481961278259988423174934958742263809981404701048401336670531409080412053452309046025687070559992302076545897796373728552972308259160767098482626150359824863101197084770429239693493129690344366259271918249703934216559602086935098516662623243016388701684214308792055943258254239609516934106642807294639002022397882864158707401635246426549042956077143776963408794930493904299719403380764071383819722800925196926872961019772077290533175497962950678893716338866764853834557847593517846771627469470476767127844452917189581773274648425909628986709647937592757935829304423265143015677361129118025859782958652175507574307840924580606452386384903711644834897473000069125976633137842970697953549579916812004250847337375278321410134557047196242426688459119450288467251195996636816590281132629341231720990898461337827404577632189647654676119513265404906442186272095593750550807389508507942810352021823849855536213672170672825304570552633299099078615879292980492171309078892788127395112393192184289154749247954146238288045421683837351278016478125708755247874159788821154649439021620720592080423344829536600474873339912089425927122940675222258132342372000464169003435970587001155059034401559255490414893399361314164206479756248318834226487528005305282953738565035689959952389585891988166961422546337117611089536726082097097091256961381799868867150978501065999395893166222044031773435295641650726471659271365011731414496964196659238833611396538722509485317103573462315815441188888729079301936449117176978418289947562149765799069096525741182157212321369259793085039393128456866120285854388272638087453952906836699022676655790309366301364221427521445568509810388336331572849611122515820928714626410955790110387374758361542440124393711826393450165846294090230187122014959155771345472251488330380215335495741013932563500769603697592408393710600813993257198172604341756736953423852366216184730502141426809463655140841504250422605490622726325515846203671764836442393701343219713235038756515401044944530804823075946065655153781054167739982408173752079543941290045593771240329351236456944585790577782195074313669670463781791610502724414957866346537595986660107850661319534903480121614274021522905765441997854356841673117642437303244664263178203143275888440945761133690283610783299209330431219249210418470523878308119975900455804765363824651232731929009280107428479147563095355517886669632528218077502390758113457175525623266328649332141638447783509153958940974708909272793342071943006638721208005098197178474506191886635801287586945052927409935796458330866413666522522975974858909332023868462211148423279840546923309054042311992825000110732825821532275901956857711534772545284282055066931729256792868936606630239355260488133314643597917653550647657083514725851983879450705371451692699354773206621377479336557133156340528142262478359636754707965457638794717829158964101273618854431806011667484810675822312789409343809126602790756114051703848767745799785458719078052244414895642846244459658026981805144239082411397587889055248386296003302869751446039161467834788209644148136222105593049317387632203534338909871356131299519554053663136259696001513638671999041053158414325188801251693254079376819939602934348942492679814177172551269349594606800486405722427717165442084037231654878103254775948606358091426992014425625753077679501219908795012295759177659391342148620515128355662319683145852872867211318270842268030435553950117414436259133235067092152488511621589216559547104482836801144304074124348812026452605828278003480295714519551825645322970383285721357812133338196575348977156890309946131124223544250612647556525881159179526908548346894905938022589913200044401310049387344355080881296190111936255043785842088369958452304976573808531863276830125170587154237552450911176521197808196780559191958818772422330482769055187383194763314505438855763851661492245205121837010084365113592061522188522476006232865753530032593209362016232948133161211227134233856709513502611607982328379018671970792079621897987650401121979118686536739813425876232730980278744540583504417436566783305852261316238106405536720804748138959447256784752374738176424090102597174680623759217941363969822914344216793271904604385182332804235505794253590278808701614260557810808450209453350432360818443757967981796906517698943860908627282668253848553066204984204815774148624157849301692822978104060039054339814315796580046047015760528697668916190674466236315139515463115588231495383214514984136203977675609370827526188339985700854214148391539661777515916202590918713618939798262275764521307742239934698722856589624971186021083310230009511876992512679589809811840318583379672832046461933642834506265131721676657408796462784724332852718019410842806534624352490206136348459010713008928853647194853312890143621594655817203750776376503898578663155600246066760242016273122866097855252517550567170071572588523391552239865928817371624033759077882904712498549570705720596435031323831726591291227533737657183414758164730471471316349848005535706198928042102469248014924804175427839952079932554981380101519636328565360161306845031250739317641344350574085683556095938346458539313060128634783416160515856675480094734449741988369319077519845092824369562945642918609938530056679968645072529817612934674491240935052278822021544832112957660652974407369819935782094906143444749309383332991468659842322786677802761939211888506844629195190894050875211385646902823277710258220301536336379677053095118980817300817342110186708791743480204937947775592864784444899722627002021947676383556106591328339816137593449951341159897631442099129827405169033456968690549529780822378029587402532823397760416184823321772401398100540669289756535375645047040211323486487423205151893446058534058575490988063047182324620463966397722370504185638561245635987455373705632907740715161871659037015409610435054627021453500457209655974226783511343088758216540346382071695939687543493569437302780496940014900876167616498878963220766253116214613447868617708163184151003073267242112844218031176845686005432132013802862818611624175413060067745194211722839752235323985404015630118520398717842700298213448109170182645069563627817348372679342295504151521136781615199790920346352082051192531037295321934982429340769586714866501789900755425954251770013579973677717325628427407646286669924677018299322283966719867670030629773475251640124513976657482754771134410318879941951184275262364507085939009722694720214484562285780699304586669087064690125369204399608543041686802120108447807535771215812113978395495224216802168977285152361535779515346049669677483257647157160519480518780272480976092126389288562848176973529750308638665892991018804375145766176396340638389404643462112931467295293493699598091954278378355924614211216263730308924984356559622418493063599425671605875913341508804735979202463146698441783840836629394887127349715836754579279346103520853692578418961323027206713410779487371984759039400285796069522201622779651903700892338520177626025975696087888459936143924018886132271489465013737096630951743267514042887076614919169419509893765637999516557912602471682688425328874020501277108608314549655831691848920053019924064318483923455780300062662810802255439209789772410528433965909702691339634798124250260525156506426111209567902138433146522257182974070557971141114798882321674813635628737696150426805040133271833852605252394559639255231877150437046520851503637737108430225010416694439383571150566461114799066194542754196039782508204649738903851831828119692938430585260050873460511521702897779274699481225984479246944374519334546991456893588763340481112681623749104358339723857709447352383961404884866515307226445337441123772651552323291862959112401678182799127405442657629267532447150850313006088054469846079802992721131228814460110769209413684567660829697530788856566541829096338599921872864547387697824432773517339052430955577534230522376697950221902001627029065171878056395558784913029023323303714367228206507968912929859895082184842912082822344749941360813207533983732015852005595831084593324541976900547556780342107099627133782604099836516036354887436572367504143390864193688639160820888913495940787207884542223631120310190203111827808920659555436873918670308769633009494817278013822320191726540263711883735569863140918281057231995116712421483693382318320160764569832218008024445295333396290583967414617469947396606701428726550963875062975881053950179481500386664153088057392473020892216037558576997285338896178893161235297411248444977068935184682500815732700996628250724820788955309715482926904334037133035892874800512239765008846384344049646169928804866526273427055982910276331795083721091917713362027763117619507321596242553485940364066777517185340957244151990439964606294940267987854411773076328352940472931704403659710795782300652099256269167063654258498181436620639724593600748912766832245174511285007540148674676469082381696595411638797260032288393888340492935454707648646062452698626880685211323531693732565327359968143747162351716196980836099184555014356543581946351407306528158450940740723981260726899371164361206316250789507178903425330797833183882913103054759362933674515985894879229257968451072936852618219540020784273686496922583995711326408237256571840774874353520354106777889524770744722957249007604821284933656479410717756348081749481249392714728092966660470752928717207011925414096520126733521603174441466803657877173535307164843415458844563936449249009534822012968461991173904557661212343231191143355828147450302472976621762584863939068680932940094108314016015129994624564319283491858690169188036811538490730634766741484464647835732600260673036004739052132977152213191735147231180887497277015857476722446739769399515759402466962816046251116730289437503987156340149716519223676164114310887199889401156184349729167928727828753589134219924865995208858779131616115248793480076633924647123118239246585483794349262016896928847269974935748578184283986021794994158115499389526473610893460063793998449776374552674196704271403065771366672574611776192228940302104757069492671924570470668260844972086159304079288018314469096304521755948569959857368229440255529066676342426498774275929603034018918206689120194628616888021318837840158088107248648468629170847501123440384280031926087315782259864641804085772029631194862704284687898750001491115223384176807330405433177035735614302702256030359673112853936919533577533397542261767209968870014701892002051618049137019450258675009382389794800163633554612060783743579536208592656365625491110766984914215324428947261264830163512212004299935731922767492008036679261350359515190217196459565886362369981589750068654298142426921982244265835953225311673684529533512499174378824383257699760542917561608229814169670126842447286314713104377249383290914705514146122948405169550643413701468389813369344762767196602168978539817345195555054768730338800980568419611943066652958156581540928534827348555463979143211972001373549788548676120851690294651148638828602715400267006954399148429155861549666003757262440033944549932792010114251610729415533573584419221795048183793753153749268743952069737668411896132198022888511824092360161869357492798341737547330552343158112638696495333179243226452061919002695825381270895919884123154367795555881792231456482817287241324333901966617477636084282731861447896316507406575278078032106945502642092628146768281544392675488505560593252138043409586299693925216804522199151155670889989836796013907261496865602282801305099918336439935826576407997277847748954119795331774938069803704445503644476578498333313260162030296450055694966026730014436572635150328780099615059910151997785831886378376578483527003426339511531370608102136654937824910400106921240596471789986673281623205879632608409692722678511308881606227169689757825281461454913726650912435814016506733807754799311030285332284252092798467143998683503267581529615957293563976365602032545396944472002274016436388351020126763915470519444785938684193355619484388958590431591079431707779172588936260532590858493482641960338708576219266696959081120678324307399291431990368880910272357170199761913175271423380350925704253918563473685430941892327752145966933627113591610521831271710078124044649523666643371839719667713408821464261269047031092003548995978611783948006041034233053685476772590702053869573811962683895157907000102206891806340659661643108381155393343877203487013406226458454352045390395885580967513606021511313800843522672932182556919856064114266407761884279523819443871737088327859455830053018810117578074801390798745458366117671168413307848192961726593925739147658343837939688930744430443139963019555439646272436941628804560945698576861539187848345412173813881594267445790450194058740663180097629525064494636823913092351311590422182991340855623159665442714015769027696057483204654342171607775997440638665930804865447294498787376743219188527684794026405036459716738353144696302642160428166314707694262749106870405593024561585156977767292664980754431425593412538722347130059165705545482434612769379813071035661932959186702127376476857108094166110131950179302570214023929250297045589700556902950956218575931610130574727175079924737902851817786934957832609956567346902211162942178203676367911781738754622691796894812477546859093518161589834138468153179070034285987401126172873035327730128384639307110339122498671574601929839701148090216275448969538629965513549465648730954526173187830473127240850012912025914540229353177693808037219572144362464333257838744840363314443792683941988866668948543472072659674071971323665379267967556644524417455434396945441328699264124131558881003212062246965295722358704463312034094199204693653278428677954770826453150626170884593758745498679982442219112761178787817678060242799562903891772440528920988952421569440441187467207519853923222855741218805027084139861381133280550229345454320529824771167017724980950988243665500172885738010029169807811178149688744664842527149444620921212891857972828321052338054998985177936716818646503412000615947893936609338867180450397597212677169387201610724608425788217097478449383192074124978604032783650290586271590633183981929487421444536659798055322978496589911682094947116080556204765459071059963600717762088286870988778149034547430366476775942481085245441293904048917239830367914284881487710470357638295655844738556258276225043560770964126910952142517215300544623890658151315633316251514526556510363445705162452437591886582945264599355228535656449011511397625173688681744924792720330537068269964421639062265541482897632990794553904805258553911661666755420069650917026166101457389379339516659232846843317542003558396573542305372703235672048539063334252918986675066047436716832771376785777873490170724031477838368015761644191714707246492231872047112898210433867548896037569953476637562928306674794076534638534868817957815800855336801950910591830108438937538714297209756660765753699919320120599740112631013605049598975800122886275706190042799106375340988374301193094338083941524767389825186732368633790654820485990652559810107554296741438489034864669728974900608582349412821052871600772504569305016753150028221138150879330486948528491947425407192205686898773616671484079633965977232953485231110661503875705318032292315158907457934871226371790909503916029299170982716591004460201705071892760079529551113329293770099653520767317827204562131708520338448574027656363388941922341801224305857425898601074648103589152762652967439672152557983587510948391231630093511960585301072392215069624818730739082614304563201763328814993424514238411923607213746197164524229591902078933628003055861157172068778008859723481952259085266190360500466262080210962074656140804791307871826802199437497838657173634021142553177463650199535215656297260226608293038063933460674871895883692546325747756518442570001405766671395956143940003012386224484638883371625615274318823560203860409549956512003625269768547282183443609291164224012569548256505223686084694531541475050056675205892613042581096264575251884695057691561345726097047826547995554287814038205301852329720551862516970034153075243526651327859001810911971258905651519836341209462190708729046373501314233090439440602665838890121756940360494531444018084197826741694829690541846901699424660733659829844355818320123987428506693858820232074844989135274576106168900626863856295098310367491289195358052703644905279447277996683675493976822801351348713836781956625196977603255439626783010809461124446901367896002674439061809551129530129036888544463687118219249272250397502168853682587988210970772364430419731713978314736517124022817475134143105087976611535867010677860408783635329922273453466512339026458717668770510622745519693957208865091371613148627833846234686364604490884300016702597898221683048129231307238404128832708877325066383503354740205116186494098810161393707160648869824915015538834695313494555506082978416736031382656818566273235637357558393667817724331042996585187208974688127353315627090187025395112461858570669400876734714281679501314426783707813999516548295166203601246435020815586002852905384407258875910707942342590528478360708012501845218984461606273472709979175282682824872676523022585920079112135695428955619915896895760416521485225244739002351573873289334370294985457976204623543787837592805088491662588913984750881095930810702522721046260437683212502384030995200289790926752682861251476560894448717888663122291908102857821451771414071146181860004444505748928480466527415983570690245876939437618243908743725253168637470559569655370204677491154688390896061453452691008268589212973285792981866202704617379213928122348645556704452960702340629201991012875007433482382926031580121369800172661342436027885645871187296292497868596486364161366811912808556269690775558942460718687418903679881923486325561838941035065438229019935748377656092567719926346337231437843144873455806525572049519568412806100395065144271051705148186637131728605587017105568997006036311481794913057210109392945000726211781192410294148617830644437436400067941425241929246043688852483133892115055579768746081506040520665867411627837895149946296711248795783739398104476878486569172192767063092801155758088962300297239075521907726130986944157393174055000757824976004334738421138832210125808769075555323221951711378363476388795911430256167611438774119744731449441907346147406631189848787436883173914872660630076015889854944932919711076808867250032150713869393948388671256563967987968143001861614590936983493173012847700587612233502193077686426180278460393034038833048227193485873888677121196066503995647980334694890591544142204454677794071712733801154168323453658103959749528260310753769136783063269340610287663851594844609495423665971382364317260310555539211312584828590808133455648466124939274947171784865189028393623212015667183785649740173836925694323901166087222368328774645554546689345343963145107971042145205647622836291571007482858660185707055335671341530779550326248414251779914840769832568183889420131522299429826076630345739075499450434710677299282217033985368512890808337339284230363284847570454362949591030917155106476153766539617967468518768000639400037862147573980947086441747845968272789595843913672399303063992111440596245444284404118839225314006862236308166651973725787399423865232182870212299929220531580719686848469179894423942333335070137383578103253464660561882866627510175497943770378080819905428079130752877421357793967619741178481004011030666456344661744096665174358969992668948063273073847899838977649785677080875934451274510398188525128050260696975020816497486948801568959249507906721620710462599154506652792297895830985889403568602292339753649543252717036508479123484587499178993478416537483397290486303957979166047405762719017859484174319028607681836526903170946228301389971997099037206253080664493519027088739280361681269603508308377183072132333987239387577886892285089654428293888062148166555153596532815883256058055324519981669472487296235985428680447601506395968003882109096482557589708502661717162726799225665967982412103723929677589304542328724978962619725409824865983474413303379745970783372712307343275938110637569556373719402224408483883261792190006381400552791410247591750565289834802587859697533831528724917861971829652575037275363375753297542227802353366683922770816964418287872407001721917717908249836818418918589759754630673309549828302334701785013112526563185590105225028943459715095800456025196697890357207504252030213026224542891127606412559148390829278590511944147671036891610991260618727370886258972913209002943330602869857848816472893185293262568086759793543159547340253576399181187480286876047487896780095020442755840736891853986299196129429961347757975128390400740052747032221282126650192324489206457858499317685308542383790546864766830320303375626073180028702409430300252460007331322026379211978492169714334199433509875692086292487315764914547796388692904854214510482537176965588677214867760507913410228952301773559378583880156550260193470633182489639839567031693581530400342052914752387872857528961066645848995849908611876311874739508451605253763736223264734759717555241472016276889220674718870106168652385474731034988602832361151968399421392238964623742374977297605891815286139447385036445886942328668270996337572907095083189410043554586334712500120370319200543420782035105663615867236555175184288958276666314624060260341150200238087408443337589722449017747621868938081394894243035771559392280389290764961976553994023583965625154330159216227145675881095619707731084331479559760027577394199791760412840445924482624971102583992527677645335740920888398220378494770580275003958752833064441922930742485278811393943133613157094096083044850235480191851796245524492861295188004337729009963906731707152220438517565311712804118411617750093023938528329812345819818745625103532808995079621358203444126608901705475123295985854652094194660894262306828181124391613134236472442711545743864009087368702731159430892440648269158301752318469762796973752147465491958278226813030398396403043104253607008244545921447722712455084682992948682084694835096412140121436978990255710651511824261836295335303988003637132338664320711801145466069515429123846713401722278026217676410800175930231294819166149685142053468757016563181769785639573331559167393081233756836790500248842052128894430939727671952993588261457137293826980623466684350793188135455709866683110441690762927561599396533536169774270031170357674298158537279793118234774962799309982422026549066630407036773506710750663518549391411722684501223753826431898925011585095733840914526592696817010381864037454642189792552113087878270212202535355028313059367222890660497007353633747418006486037371884169818149261819392702834267848256467715481678864247115296487608427304945382986591928776386987163694867736649197722074801911873283281051792993383192280608800170162441197602886956972336523474433369271102962125418301603172967736880335185637449366570610120739221613530122115570305569054593880094369147295996363455704560577540596137731193832587824160623492244746923507450027123579513777910706815616468002845137767387074668482559472204535132755553202569585649084810943785994787261441052860330077910016396306268941793094563350804320898875097930594758920807670162446196377372904567538063328741085748767207803037386538479231320037228345105910306091586128836804466456033904928679801895492781700136736589076100749258358288360641421189701356732308517025669825560387445565698947856513445629760345357848485977566291842408910849688848154773400566875927750847781932787543837605944638141867516659118880779436554994993908571819190078241209084106082422389839095052454520751587789667644666480489895287314252048508902444682600476489501663580269624641224874971682807193773689536588136192052034230129079213641038853906320448908755177057166459389818985327871210006877121265613433682613668886225016795821722379247314334725402660579907451374715070266029257065790797609417598669364815365696321281333213913701260727850498487658667753234189798051785723977917790268553012762595155606777407791371467883382141254663876706310603935898310548088483552130741335218615053229358524816881439929775672636813621692077295082305655242796502497591487021499816337025343817361173480513885403294224123299633096478051554149313279767016949855561308373043844340848595657069421623819879530361611461762079835594199700959276882947749735371885649969966273899181264485215343890998256697324927287587204576642805204499451386106552970597530293215074926597920707583879207546686281108098593341826767564621835985668103718736498833498938030243923460838242077375239457065791023432463380012480790637231373946004771990209148597663562062978383293129076816739630386595074982511407442322572142227736769796656038146181402645297450187651878955854454095703976699331277675889190100364164453000624160598582963407851832033857631017485715202969185088147378615615755626045865488445561075371803775568441711254638956381548156491965401028252254688947137354282157795924233295709941983913047949256571814045815414340562970289454415279139211605655008834138079977076490179646712797499360613052458299040883665535527658761409573653435924233072011132804529744213930444564594716618652889066063729714924216828303866456443737235182445589775043021842002448780983675585203887149738263804148182639370825622941691498852617696961489873766377794738374021542986210781402630680758523709329918970497223313183586921990768625729323528744764205089605818610667294551896768404955931632171941583836365179548326918996032337508994992503593917435990657976128906506059527954327140321470445331916989896567855438228615095654510423245203660206754016803195530893193675010628491934915081760837696939873530242775003087801536146419695167495086390406159963617606084750868473367656486429832193946749904528310137598070738022480112022665557449974554780404260827592261515704374161525207655700641871924065791908206931376246865389502596012547725380618110165439854860030938433922792515515107064763146957720861412655988593455544982272436207803625265883223261851643936929336061262390529410838558569310546281061381546878511846537064866339555488321048445515354927901571172739375344562271022080700942391705891777084024812384491834114494448099056555951436960138009793959932483999538423031732439911921695010429548254248217889257402537740598510121555670883512157288791453179592606226698248468820137950352991848022016491376678436253792361829457794367242290297129501675083502278301025270035079794612561034270649120349731714060854346608391844193789029167014944330766421287515918588260934563650824605608791137638920506482793919165277153478173287164728525174544847335857097424593685299994683949341042224523835856670016576478014405333175313909295004987559741523538017529829033721984942180701972933016821264364496363414894441602237714017845515125184171724402413864565974734646393497286097077831575514480509730720740176132576245655082403416350649810075099148127415447935096694684892730615249555357941286091183978956064225951689870041118729311705200507991604117524366546642308257596565349477183253434527231811322105154235406870432276042061901656174429503883764838497131407290779680937591515155280679736282687816263897979914781009871749516376743575680707933616524438093261313878421708650449494267825279444442803291182994823881780129451973669265504316479631082910870869564571017706867937496128811253002041106657734669025447827860113479391392538643857360301393177476428304672982273931303604580481853423050077504195025199092723271255867612931752132369407946379288566205273102142316342036004143880860077280938785909447543655876708805573060269433455693307571682739796573030514843941387397478816762457061171325610505627944024339567611030713764626236208554968771967119120888238254199488044872792659614514714175298311341560506214940164541460621734008540338993165125072869860651297411125910977566288489968649461991818891902080887308864058600234471047980927549566694723907256895831552170329614846228905382645210029369045059962389771775049879886973543045254758170706694839431858076472937845115201752534490041300484596105836553648081490626357200436439742449344718192623655987274788474339817461262981765201865840408310108833702056849689504515328808834508860768902880414929087641488989105657542010872129156621732832907714405568891595926878380859861897882076398396009880982592345589088107644375002013058250044612847256298097811233758636873128051923082484764934463057132662731836773963952628056075227558684456079563253486591835028613833849221525350919337584729206893188863400630670918962548800209089128683113862461050434825830498062881894149349739115054008970869907352296029801386771126076133666067422317732216949113865127075209347373498002414859058944594554121501490662319795490735321764806284257900230286565443137471867484874874711056785627402013857724785447189755688851008922474842379134535773060335116341438205111579189786216652145541472725029379960020677958625873949207030778587981574192668102164198219197199642009767810327182778979519644170334031144214038502913904626561376346848315771157707871615831628899783180994394024180473808348489832123130551789744196034040689519991034889274489069974236112778505781677498263851253708451499097744183828275655224945965495491478132205220176707594161598228876034804093603524796330331812351927422928882346715371202672152856438183243513245926885561368516767362190653823768283879763691871307105288696850958519996318666226897772094981038749655582951205964748692923943890787501980629088079611016497354663026996260868510333544786385492854859021673388821087603065885502514567572611961755916767638469115523101596182966619229002151807566862501784209103248352650400455707633995600508009899329592372412804635145378784282156401980952612939667205583513069458211210858819553304484428641633453724389333493711985155191318603929529583259323848460847127069446955547749532349539562862438018325173966677216142604830379441496848740504006278826054318487933580853296082584198175973267722372731839648791640050360729715986522540192152807775386077884684045794678401125267036677154064454252638505223317096033190034843987810073113849177562030072358546593509585798957059660751062166262720604215225055807281045236648501850931264133236971340592335490672903304797781392667726242956660132431490856673908516931552742865883364698495613501797368369312104657062278636996561895006658900818749628794897558763844234478645785689064533028633874322186507425183295649415085356884464835024334936868703400004373046876719461168926280635610653110201293719415711814689339474617308980623128930570505242587440037808369974137504463765592953612151144098656270658398100776015869330199920334451514379666942519405988432120838429725908103884543300786624166975392908491194426673698130449873388866267836656294874826862014362167407075869124528789001680737352053069119166608055122746378067269342719936026083803275972182704970459424802176773395768718340807520180545688848696545676882124351489136003527514408553719832401819170705941171441807519688942287963350510970052280302616543560779354625045589319537795207101532714357457887619997065261849201436873876393882259818603511420553390024836951131388439781369380546072964462630882304182318714451569515085061084154106004182466892763411273722577912970115474116652221729367803501146963001472927068842512292992653348789507440070615076990074046381419148519259057208646261222362138957624025953529848293327144762995873863879942930235771090661141501661239870986926582239155007127147636187757221643499824738550404316096839112976281552895436461448761372749237464708927014525216561961838817142137109471001578868399888035559397023047092041662925393592330018455335132800236061983127894428691949337740836581499817761596027715480764751396032277654649499417596405977590482707248367462798368202282659013782637886399411390747126790771410432833734751822770615627723131215405526728812335154244275245182014667697094118225249482264296628488589328114856439431343816009880395774864424017213076637930502652294967484213747734797921655477836800278357346079062131937681048468225664059023458481976616522084811250369388646044921797374897406541970841711673787342491368311227763458400295728820810795826748258478701257238226064611058681999530984981640305032516329409161238557420873396039733159132768239174350570294284291181898132275763809137454613678737303004077465929740087418384918461222021168993954444476568322451658275394682067196481340889114635868404658802965747906901788033160310414741565550050173567549722051777554328560496920993227150667891691409833226728070678382009424488575151508711809571984448205185130805277394470519783674187128978933380273456120797719620777710045806779457696443469077123546874147326938908699761416833842604028649275037948665471109157239356469201991066825645093612189607541737331636182325169231269372531050687842791065605691113708912603794665732077610824676542176744623051047620820403693926814379364439507055078982954395124168660562714768531159078989642635841999995096086163448892418927486625218572051243951309284513877630189156536185205976499081874980983482407653248447349425048238386644834318093650506579446553658376936869929998773142196638254822452938460294874666205565786960059780815668520051116286718660815139527023988669794689692823246427244532853526774240788554325362471818751133664865828011798901976502074329069745450041687008210396982844842760764412113539317891298644498921756509362536809158881215474397581424714594144573901972667349691500523509612597562706853476378125642216048687119823844525015271346845031508581361391312373572918613630229600583482761393565484925427002033136230731903092623432145748159620796050105574077073494128740451364733886810046436123750308882557107805264445316451567972566186188059450113967841219241874476291638561932606024884965944032902981356065014391680196759809704950296724659383883698983722315202223384311288681674454617920896314847910848192273740792819993615984713765822735542428342581671089601295975237803957461758660381589798499455476452544077447038772450231527379900311107810101336789897116093561434202604917977148465760539104154569350264066832237904957682473075250929355888506863826878135571016796877792097412439930466299529157783378206763981984094824351330915949848128296512762185041038330915393061789296372535070176956204523154880971642363403098336001268144958654855714967994518895363293800108399733760217741458935765333309895751177458064203761823613856864857659803623441264287665506723360169843111291821317539786940309136727516891273850933113620722107921476369629516607198377151177785607359789064036944168076096408037507633743281875305832472133035098840570097114735226247153487660297519003575910797661904158771825020455066549301504510376565765071865899909463772054878251378127459452307059330921681060709137551014813225226639792769421749168447350718654521968269453629365000064417202990912242286087760205202074397724950238777955267602480843586176207099324527166415041472960263928707192695075281289064710687088713792705636130835420639701971927608650534238219189550393666252168667207468250471986415322773336916983823365754648290090702500573657894031883983136474239266447922650319782836658877873662407427133879823563345261742607646885327880835483195881927854260975887120189313480044573153227318974026177282252076564714840205253358892490567851697536871973224794891573186691703881749573550150439286864371074151661674591706936490429444326850807932613394730126403573752162054166916722249785736125553190299660168417955882405477342797944801170988870703908644633203143849366957822568722501821978557517622171897608227920342380816823312484214743763537671376046018805983565269994519234058608718291530131175731098529136260358298391971551873425957950511869667822858170093679342256172168491192101132865907089791381063014797202376439589959897321171135764145254752661283515092133898640380732370196904837776575002510905679190428166869919569564166651845358649089957846649446608936709183589462038149040925456777903066002436539182908148660312009963635487124118594865563296924317748290537169581381886736249805258284825837393861849664803747610556942157545818494503301859669440651072827922301973587347692842528384575103236332819071276285636166560328358595425028332506509142746402683425135702361882319496744509907911716266316430768551293870682221558220067118689324708681937565498048228400644431224149983881352860910872322508670842216840751839686446623060602250626101737387734314206570618081079521825243190388706150474364148852362587259518067106141164245933307476381448042927696109511631637728158408993214270355193073531758029203602855382592447893167874117201149842343795801714424772640709966311145818954058401093179985929097618992329872894462320230513484106718923904984400807240756186618860085739129278064907430517757943967016995729780239593240607967757164946705547488207569315092980399841516991910825111800540853207238677088464952968574608413304550343875145708593212264746241476534430296701050860360970045708030541747632883448529375958201942265231785249524731218396127610896410454243661782699259809727107345301930828112066588904586737085974737399710887795655898259273678817478874668711626809305904769029813050072305872408982549933608100420811140383451359423192054249586870780184240781236712166130074900852729760531830090081141898595572378212704846709956454928080419184510615149372913588910618756241273985282919832397895684037761493397340604496492270432685708870807530781722522686341757655396247182047738701161391639907918511873391798311800292735231147880404883799940966487180095575956429019884619913631139793572809189797824080248878910779656156938672447046927097242650299925766054232646884745985479011688383260633669950040510692298805221756972065052778587964748562807680612137569389022773553169159408435159033605128124481296046994208209129007820462367834572968984496909220249526329810831582595742108988460839334519000650349376718003915237782821368479780032673996611222452308010854738004568609975481136687408672093155902454867806147507189415836647279780073929835504919835825002158280512012441499796052786064911764212227342120806893417559892159357024255125791508254015579602995163286025171326868518828886606127330868077992914068415942327268456519042849997256382357933454661543888408863850096022485084934641333522269402313562072497760420758544592428939652086126803738654603076687042255706110122973230515801492051532307329831724642443097571928576254483577935265772832548648169565618989343198641382585886571293265468579481827834916498562396565541974988098018483544013836252544168989342751507827545672337017235326363536947660119595447590297612360077883492761249002088944364578142178026467988470452158397963139255447828688232548166215490524100300830272853664356857971596521692982123130903114066384576678423620811379872274496557213028053037336459322223722484984510634134272645197189704560800533460138842966662045384705652878161210742595049306236298387929177123803449546270353623165553116327682014181805958529060166191449323452803460876054817480328323661256409337731889656676820263325428612970807458211914137550927630475962921759969190233973924370638009616986038003953219180210546483078170389425374624995949055760997785258054982978881702686538319667164643892796751051049270926730463871679235979373326584369119071738955297749472059775589684759347610167246166294748802787828831296644458243281778898265239933285300895959259561727312644214586175827406144370047100258693503909003521417045380588019479362058508029121900203566630837263534190991776297817937705536673662766853719391742606757100361871897188059628345643137836991470025737589600233902578183705088889265462384932839253824185165399498835184185999256976333285661183531991062446087207792189623566888064092439090017862589548746675873397155090952998152504497417769604599212071966881861219001491052582717014771137110087236005887331820742284994788794096128236498479864752568207719849658224648242907597711940347431978631272515711233346454917013289632561080992795518909560899378868273886914636709859566858973408365946990954917719719193724968740718372919299846393545103440643785383135978611132449196830250797388040527869672898852133395153702882664914869092297496976990447676070781791308290093533676144360718399776062181777911717343815163171627952067714659479965360467637529557054341976754099876671886552183125203404950781923875083294242122654373181634539933272935185683955468270899670943980968220967603624360634632640893855666858369489022272385911867078374764735755800716908913958112206443970181112141831737149796528381032820295908112361500051603680588975314339035603123145859650690368757138491929579025144788928899545567812974465761355005295850033426425373493955599755324623153364976340379438945351314599203802663696038675592560688977528318446596567369201803195149841410815912785084210880682757026034086968099634086748277229576327847049525295002596937182058596695944534067139815682044229379270357181980335710456007016992470804913249104502325377325071654363924861951793938252838545452187449424923037848891796360868003560701640843362948969563496146789765179988701334410077444535221332885261058702417414198122605037312235627666711114640599767025141175945700991025963400725556847661503118631465610510913107245214421922695480153152081858378683061597957448829604033161805810132612134919981601878883827319224892532370706293042717058332082941972396544997684808281377171963281976747206242981064959894456418497582896221295697303506349544579870303218543891540228208742983722276346719440701182334560062203635273629756093744554988287533949655016167945180964981273579467573418059887177392780510138747487478624231626779279324138393879079149835520788552303146294734198248302709880800998600670314350310566482960533701324535986707466139645819497668850197277964028560298493086977254542015422819792241352274588879366433574896061307740038555318516081717104486160341808235898430982574962505382342780050541361445852669362191487381522467168557697529831798351836506832071481688938328582678469655328895945776607852614722310378770113361102769842585209917061958697085337851672165502711145134214744146681355003110738988750627532139067959477160219363472922848178767380753006885431649458855049475682186402508253514618387024546379981382633521900172392588937899977591153979205340777614529748909491441900667139030283545256652791323545733081425864206311190571856962645017963095013507812252125425034610590561407766953231573490763643223039287209664599251270377504346964759048177012358402005905363426972292551203388704248695187453015672677142957800097052762927203303405930997078516910872910456075067965106235693281475470155316984849786783387967123287803771055131900665991586361251186138458398955767897252747430044669636196255028106523998594200177228670839864095065563407354524771588561148575554880457522796127236333526540807741913854381705688797222057348596213912578756563794116892961535935975155197098043015483732862397428960251555275569612255285265906641143380729084499027747361955315428379253042321842630226057714420607433097149761930143332492513014271682075567587367499488023299336480718878951098382733792877817091865002002123367290905427790745796017716198576887144258605936485421993793694426069012857078534236971736320931912922176565574096577789078343092652643282208440799170340125027848489313244965718776557011868065249124719321754840702959721873544877417882510393106455589615527777587402868332974113824608269488054799532024557589180707549253118426222434415056379491920533042310588505724555435572826488243763413354149106526508906081096702576022880827231389177282076216142084976688141589866823334193598699962820213180416759745545707723029861880246622458882341175975067779789571195940930055823881880718173246596381393940570710909125288119250407541428131169119483984941919762824994033794061911195161705958063782381762794767534440589765791151515575084294925378731392063726139598357241243925322402093046171622287516077532546302340438340116409171598295981138336793790760802299093712802604959775434974375356384776170392233628100829754316940393729331080690496120123242837474571847281461360366472279137518014949620790337421624654566802916915502803037191360520354675589252527735970249336253199995785054685103171832501899687122311274877049806281640939978173167649559298943093116930521064614913807781555056969506332371513846136361193081238233702008976269493513649856448591293503058236942483759888072704070035806564045196195727199781703590936437651734573982817279599148422032800480613695828934618126362021979481554012006110757962421952254837693533152745518623564993694218218097602555677946358325714630762919654877661639744464143776801060827473095023749095354157438988422462344369566383996564127040801318105365300487817267894508050898529042938914526973320598097388363846050282022666276308893955347525760711671964551738125191006101572190244214547977975092638648030644860960553731476272099254327130942196821032046657179582524484102188438954284870656162171542527344762101740707675949734216329754423680379814720631699097160911583387026391074903930292733224675967539672964435705695377288255669617810200975363626411515518557775438733600757941924246268246585186658519516081706669316163857594560366702097729696859604935790606818998700809260477998502394316323959156355939905270211381938603638559133560231612023579635745977157732938591633678499050938699282610054377433263332493945286217354839746833672388013453822912104170282555248803432315521816359207623482633421306352029876849184159919609609622090203873871641281344193933482444878476389798938001467219578202554355104414823513509803341308256718498415379980113370394287503242852321548085289237327174386905855756513437265975724606991635352515880402300479290287938226920241179645132129446862148903356970146818379083318975057620668718779991450561442103549522874910009213369910208165859486063345469591213810888534628140881904288257913894091330769861743328405403979316025976750873420870802073959424458405031444419726678645109444281677281900386976794861724729752675867879214950386536496785101021974282889594105016245063145213237205343556767710533411041393309238157206806733975416614133447739829076975667185830665682622270846350138070701712772642948871343284131899125356386799705441030012832610797636081781841044840960000383826739984616986527512075882941261869948390890189409990388255060123979617616433782064989000285821637910016952397332367434979361127561558085193449218443462913142602736170935898338033694547247087757719039860933282524557964650329628713773728643249908851864173932797428972833595153856323656638135439458079203155352673295429295153419026173774558071218202362887006272671218745061857108707381426711613110190097185061301379753841850649756377488618658595730857606312591582226674845731028267797454273240888629051674066798193789566451320848606355004654251200750135081523952414362159159405577136102868493538993068726004746945953289567531949355072357049954002097739872427597906769967919537333417047179338017755016183906293702900106589125160718553962129655923003611083415675328494007284296940112529593923925503686008928417373676689969770734484835343591750911087155411579594633975215999552851022439460738142907278212732432445823973534638261503256570396560630768492152356976477360480838821685137588236668260778998715071918665721061450862001588648958921669304977024983409971085481538658319637597054326585867845758827943005497169569797388871329882502966557203796419324345103485875382625124835022005729159828072257365682378743294769230495847859952109255137185746616201970661495714788121218680767970014852258278014741993098706008160615690399924605808087213900561779919333403533135341032301071752232640875157357273499311241668119919551787836934824845257508007467801302316387369642690496589664154390339644050627114124667074516924501993776898936588286822508117270306237609209098512502715690107916940804218402244609753297583446304841165561824710708289174695866724644947375791351312590904749167319465582674291229268995210764310770133859000934947437163537414410316994620943043766803208218027119305270037686196932967768347251315356891179511235324295763309186992576315784677689846504148438779786476583458063704799492964096686279837397433978902135397241169786564895802470787437192945657699405069718505733133414380073112081167832633063777115303113019193282623227350535044697140191362824851225207969816049005478551288709414512765425221291508045864585868227833162021612770510749172859676171085577525207253535539030458175808495664923474671132299235821521675757468579567159528655775246796812650051333967463851267583721830115579406001522340566900828960086369788966451699520338167809601328849211022298789628367144602952275238749410032634616543888843717472551036039590727443060092956805980135757333453803670829643792996792772811959603318959639880095725880233223870582204859089647559729972925430238234761927903148503287192583494188531693815912761050124924191072436297789354468464281032422455826847711143552883167245570151029716981763666309065778045535781888830588417690107884965478570803694290005118061336643157065499448712082411468325656334159923857255048152419879044441529876027604552775191083229299945648112998578401211117574055030582170248497749875836347564775303525847895527987730850569642919831277307876812172969185443262692351409780293192187124861855858830475029159642636740812136632579199340123747649610175930978986270456242351216209262737029779486655786351734399141347625053036099538640039325793843754718507038827841474521778589099402561515452008915389400875127847286109853477970129183332705927984925766048207073994731089760218380041718931364129738635004755257316220986103050828831427643291259167452310400283749516022012176660076324540328245940204732936160357134446463620437236725414759198912515665323772985089672293215135460992845010548014707104532097170421780881177059565286238283579251714413547975208895352285837482272124344308783598971112352470763925433988698732659030779212129955790140527240152373138925290484249553324883686507376301352037389323991556779750990138369015521737031384781465934492882016421315796117235984221586530761366301047365633937413363269339885022167200481647272620043171248305447210779164962025119603679644201524591789633447469028405279820196777713956113409160715063126722187241870448536199600009933487199788287035889421815873806768576284919102860482009942308067852426110154546345183133122531843589406649787441169424014119375037425550787920221350610858404655952897374457367858952196364261094170983374214467756171237953120573124491470343502807199151927939190043407686712542239728677560939713014396195304066104768346424106136424856335982123870977321977424763489062582515349483682310324420186991822581101834972872078393241544097282514239278915911894347027681008888543535362320215180534996809383323910406106360224284652666144797477494273199246601857209004531452152135745820052931860470745791715326362068257825912939722463366112451373541744178265905430832291500995516681756529289961261005203292863875159333678524603768958425904641906119513250984674039032919710696774223943857647396695409099855922441756463915944251154948946615596239387827326474677115501071170802982326217177187978684082980317257510011859281651371386995342899097803910513301597091472235460154234186337193793687631033511435483464223816689504115372447245884054993327114407427864655518735120664806726986726539072179781780697956999497864167271846211878027778323148599005648159956067639905841719288691762173870083143573883099088662571820385971059729982671454729832050640301476216536897560739493326659828116285096997313731720058780220480111993764943347610322114466959258156005626286536262199011986052188346162514875694918579168616786855822166527892585924920702376955411872882120897656500017009693221904570498911544208606858207563765896256146433955109111587089829029920248168948485326977492255776695672481630432124796961343696955012498012686155397731710237236533105056367655909237588769234293779791261894378781760302015683613783211155927392360629654599864326655338648149643336317132616701842480732445418143052418821805146008352508534303659575977294811112082709350505033169239534178965020769956672112692253768884513610133028451369726725231443746234312296025722871479922922185831576042039039789007306006260050869432022051795695995717513609541011393591167467189950099479011115234263560460458785492784363653450007257277399035825245029036686189982990678962580261501302078231167390449718984937449683666629797278550080298360763138124056982475435377365967697354683063147054096308072399349547514896066522546983931730698915669304968228861114442371191627640041162712014608473101668938483593332675519106371025303040913969040407351449912816544947990181986427660146144020914355847745334139310911741658424625519136507799516918829913247774540663909706976462424766468357262299676460151856570212379213733438776837246940538412118930287111931363843971115514083177804549802867612144020943093067556431117506348974576512714286788023347959188414149552659800135008431293312817741781472494260328885937556147692581650767024484201414883193081634220504123144730197624643490457502537764978329720847330685195922629924859711009885479709532796224179545680796307335845822981645461170721779084343166290376028453295880792096139565057359279497462750135591449001832167108594640827227224020235262867550938730616608427604326271471094987905523660529717039767118628759012931120750059596171084584864679819605060188052137048640082879412020675303912004842311700773489100065451800250858758573392680700906234990877756496171424220533102872220125256629961272641505847947235966281605146187998010315536515738550779971224868213897989534952101850494884997768306762694276236570257689691761705813724129441741268217543221603584430521669665040957712968966535276303359109952213055631201880180432341159683843569557280730262812661774087443170877557554099317367385111147963304769370304745015056552832259215493078843849442545690333004280933291861766354794867718188990026728889366885911333516142350459726016248516088745858874034939761981736818965611659155950407120214785299459066807840973549045139752787426385914651234837201494310069186106779378069337677591609135448372215191256591024719358591012513131964132329665913654329553705901805327711110642971806083096596328756259020135802064697054296959538692464065743284727127328011524850317790961650648337336956049831813663601989648251676531376252601114056808108869468026695769234662614078604085534112158139842568970245860190667679111803786657652036497365469633783374926445455048841600128289610374941668105515932368603646997242752998356128472495606905193867620384110152832891046351884454514875365228538871237463871979997683184752505284028707617923331503938910376760488314540298331345105196273960066400177765825585997933166948071531846343528089796278982150147628103104519003045093853863012718528845910116643938803184917607038865878859456219621653829050184035692585203424185425964717745775455634331264479366180184577786757000325987880619681636316438129763776537900738575668492202093169770463919050352492939582168453601861749048208246776202312100539324789506147166263405881315738444553671420097201148861653369460463782601618429136962704381254414219475956339469265059554931927230222689401764856287059840401777061208401015343375081023036812714230967700018565515608019328787269837023951524698379409965189411578833813351169817626844214059589461564514965741865873760861591767229865230397838046966445611952536967873758359583030202406370722790065430178980463299249736361114719914580887170954340378997464969516559825729680639124549640946678596277528103460185074360874720020307166526879445511170857651279382755488837847909855991523138934015235996362090640291001573516497771359220085511492050781193717844283067163479131176331024151739150138136625716077919288965545304888968976092299873433628815803357436620535235909573111727178021386450139476252445728262371990143695188300808523116321391723452636258708025420424451503999116752824613462307936587819051030195484228019800699209761481739763350749167434732054948762230996444177968520437522926952486399640701549503820640579758848588920435903969539820667594961296394540163177489437584796977982076884963437305721775616353886598598320947814826008351217371919953830538397887397401881979145252917848560863746179633652002684012978472802954151616147440295398427399101950588454333813219218476147728421657829445803324353010534132661648235752959931550579437754995801860605764751560784258071265233061345600328893569537003311089096433409776418630129821746602884470373358051696717082356712146318598009630906022380307150228726521356984638843732552478935238520878201070231114042242450014716634906686933017157721262997153786228136085516861779014527632587469246831809337282169154552564604088981629167213746115239943162227860587461488516175343689265123943860112184198968815021509550541571241903871983526005341116391504874051155813864814504169462341916905887998676610921721999531975772961114485110240729496872859661606179613175799546239048870597946083871184426677572268932864559373789830472411718839730386700128937166164431088466937671650606521560019540231439173712161711587543627309194411591345466015544749416676285341382324029377025532834129207363193393745489469604657798753289455719619517306478885779369328780035336400384460884812656116591979501178139084147488681319262713542872967145967300941399781385666118518243541321546925020338521385596128618848946838903223061814433587607041198022862254691121908287253745869247604091453111369480731327893988017983431739371459451690089220850994493958616654013928720986120222117383885944407603236022063699059607169817806040564947538743326160894071497316888579103202202890028871492219412032111257277058288562889678828057114919233979760576255508436258271069119033628120955930015590298646225942012956943199622511443453535227807440308205652399560011327612668845732674870961012471280784935170568272796532552052056041432146819084708216404521868601423000319682788038380087226080697470901403493817937673481219770620339586009047524748952741609178485348367204713031688982703776826591688799948587297062386212491745872036006863441583040057222938988780882600745423281984980367724938018867276674923871739453369795386770781360569304666111070499962732605597043795407346325704874188873436621920890204403030907595050070273037901074419346062801923477847585868730998540116124588263300732873155643174322211281407056702758684565135930504685659358109584725981567520875665910892309417490066096825873028293831859122008636803988154324097106730029063992431252996678110433825242220252068725259182333107909677207463898629365501954993910544783421645126921445246810149541641754954916544280951267626334636799082176921918519831037967768938946036354389163488300910083405791578415054993163824998464543938963951721419433786951943787724448404992821947117612850480431504006080264858113718870207919530146196007416346218495737776924195059455160997064399545419616945673435618084646425398416973423602736989669976101214618904914601701203589739903342147393582141220875970295346622770018392820804803606372339014146443792460217070135175865898382368600469620947450409863648910222791501722444761309781570342725847016011399616819747201957842199031921834510643582079007566412040029465451967276065413426971075671289941546665829783376180407895320505373189080964599453334513775491296897012110376075349409634778677282236154554583055105808484447265587565810462005924921289897133663294130864726053701872249875790640634181804289247871210263347218503553233512700380556156301798122977724954901497899820181822280233287204716826818418643446417645176446552079444497969844899819326025644856492324684254835481062501287283926202131760675149872441533573251516647034293203824095285743164575759994395233211485219132038409642513935136573329463292823846102340075632011339371823343024645446232374372007967886578254206641513153845854455937958776888734117619443660379418985898661096365309561330630665075256851825721152924568912280287877620552655418064763307234463602537450260929156877336074591300127340363486483117059989435492514786017620304854206588361017336366440289163169870680197331887575756400798752149655436057226112192080292589735356187722029738352277605206990263540237217221339038905267148871013054352772044353949170500153796235748141195299705052396788642855057743268173067798174948140270197605011418389812163658293612684525232845090141505723511708690158857784700416709882351919714288557505218262198619421828012732879861511781803944274573279452217433759722985659419941398791250752120302712813351850371156916278240197616246497866330965107163191463013182468266863574260267150964094971953685160340183980246626099199782086634352717486117281860717486256271632651454485430369354668034294960239824180456299890526364162024552410794314666431464339875990161423847014693037628780515780305744547300192092452475295958122455281011726133614280911459187077399926842940207490185657685273827324343213794985713553404567035727922584184538189152012625143758201519773480170024715192559163423033750935839184605025036940537937740168188480675876518170500631170624308978098532176095505811324409607884148738767780846193434915264178403886425514180370421383815967125018465600655748959297648030172653927190884321621374753386445157603835989339201027033179767664064133150491557113510226959654525299559208800966208695832265230731525401281965419787236325568915528740258304119309654241742960094678064583605846892848170637447779003650306593822236065877896763743434035597871439546300364188181992208244362304443302230356273149374347683874646869346290288762353516932963579451762833891135047570833701325341393488734011134683256674720221816486856275200284216125183877750474160910329901110647358410016955900875961684785977696165028579630552895892450796112774423746791555772504150541488736980420652520738973538410142710588157864091232221985674616069316925956469682646408731738441277963875833645435144950004283208991224096229098084144454385015314587613593143005132749804651904918667279691214821467851613025291050682691360751632758301985839060586549012313470135725031199206613930878650924738946417738672882926012079049238851131304269039776988440668634620292541880242379060838492332807818421411123129476212790486407299689777009376375337231065956785698191790081975960330440857501193925582438849647210442187647559088214662134615164107517595723034399229257772325753147011851358288755148814455496524879333962281752273223214397572817061885045896024635115483976209951493790346955045187548892143718452335964848229679273980186737052885605828763558301228320068034315989863764165596057387540957002378692294744015663397846196995243946579698030261360038914422813181172954035095140249775074402017222720208036574593013298223526310474118265179214352447759827716046379903663529882259410197768806380392594642367312019401169452350760580221257318200041684963282648871007055174562137831437991099439848810701189095477033381496028679104482492288295381038235741625903518829050541989915246963735011681855970305788592503756126874333658296224301710342915801137126022800869062636213600349526406180829211254011603162558255135421226704115649725997332724612496536636180003424185948313564550595372214125569062538283079189695648686060896678173139318316633822665314947244636602731456926087629860753848017000201576746192184180957619192052613261610649194839695600097603904171488721245099341655840496488719814666946157265785827944813898546634148831782720490771107445913250866541257198524133535195202554094173513587183183547488449121953770701621186020104759076010871321809381696274665161615919291931397392520648544458267163799579522050908885111983855829266908887566271667494769857359365077661962518548220550862285993688094753158640249847224638380159249456187312716307918811638115852563707501765924267635973372745447941573312947363114173177732833098665738749251020784987627192494093319545250425169007152165362669386217943103548951216209352575598798903452656168737567624779635880790176253198829875045689185753055987553231732155221243835322595109183208174992872007492821763337155557306218660395004391883838592638112119591107277369346706088782129220292937137417157137659242023621212197822131375904918514389529103697694290884661470616761478474421251672652425889217327857019329799407594467914611280530915811280878938485714427553194459149691234823362378660502303231974708712997237672780197334329890389032321866588246450899015424392380828748562522981585462275913211600530453873254241550943740238613222341337281890064665369867197050489997613464806518720600880061725111422616045413055370090855228247814200151069707892573377030408363361251002957066139978141330384220520933896328310098008401008626322137723446452983401789644356866751747912997911573848833371774559120478972825757785542849994867728376283272064228504383772067927021009089848190374596541554821512513593263495567812263020661559553029012399875135713536874918304477747215218654961119031659192864343547888328331844552960849119711131973382900516289941840784119096729611199338989329994350030134790341004314883943755218510522399122167368664511786602610467051687460232555405076379120828416942890631648897072095414913244604755822905918103445297944271507033672761618534352074943221581844791466625379905504492292166144249169415913715246131372419775242124138790260681982343734120675508732217143158600686132570175324625268744180526889619151809400153646554840676035817725687498430758782225978226036985280684959953410955342403394086459449485182355426310942621490450086457721493383517405194283250603238877626859401052910321753878716887748414844757584022625001904947371707944929253523515384491618623166279057497658909538786864554169943312157604348060376563003519451813159835769677726784755451099198139464270313032042998597684205309857245442683076603874764765527233023250216123176400634321222042406533374098790894573967564164888096182971641825453709449865177061809880018824299575706142915267194777516646107477167302641315391975302678785310741858628093027018303009950531467870070336321409460838474457775821270012223739396950823222723874211755383793402687477661896244502082754155022697952702566077810585928493154814881546496024693627470192763424260634223051718639390852698263996194720996661206364744978182535917314180765926536851591847898779077123199357876061462659552121961777103507254961513152604851200358535762515651037504126982458780765785672646314253993449517381983529486034834925297989651073418553082666465713575796961103707600598257858875723874743034517249381640953412108096267924227147025083034700633955439773566761408302113631263947953327872260242583508439378696943295417343614719755964499919290617572256631294950916035768240744438390704824024158432152760425596198546135369561741864410546482378759064026461435536253549280910985119726308289018095526542958938306101714937285247189118673428839366790546331556852515108479774798931810195349020019709015958940120161270741876598494746164364766128457118035545977181148714771356943126009912317286261317526567872624315115866855714690819707631822847604909944928034805097248414162500156392521668977999740214755400256466396268820554379738626892475958897336982028716618235804759954156099146377193690251469487378390014142473974790929734596904111525986858552837407798324221205439029084596568124930068420253602968551689559198688872091792238229059826418462322899431522017648951003303380276234323032689953906441299731469697266326714205506940744851317759403269570275762961109542081655088400424693893176426786356026866699512740251234474198855677664767227516564229279854557355300154545463815512254717479831731704056405244684517218015216217584204084993056795003044943150687223860617908419546690938509178487173131537932660302701058247779985570842520572157985598358474493598282743704425227770780625293372390634541551957285274404074901068920413867568876304866808970430920605922712853863206578368049115825480906199905233085162719039806288371990985778529765121559060313667270297676136895539945653925685279912468982724441002472434867124384695049457378224980749955589629100511635798635219847480939812708065150061676962086245292614826963387467377613191269075068486579823168424457106631915862080899895293156921383304547234706720356457919608666007736440156593341053658902049549839728974693559068831170492640289090849437011228968748183079733147330595274506159484427436521913515498312943332968389879966118892662092102927574226012607685867658103007912740854591421574315665253665785007843356468318028512163565494030807366647818116795250693433007783034357506162004831691552195626546476619087085657175551996152955647450984753318006281606331108220244285925660893301441055691822733948160284913772003462009172199567749071033600215648887446357389911597034788969109584082533979686189950027166952969285907422899846525843383012900784254154429548466424636081664916678880388808036339918260927013167981915561312713088442910815990319161631870892177993212218164842354713884816881393180181877653513937455750230673742926977032576251713493013976975948000702453295483448585478870567568659728631141376468454907310664544374464149102968287906602012134182123618101374606219690915297352260300598944864476295091342081128375620950795207415338149358760964635451830045909522913627364255793418395262139196335279275186250531584960276960576404162781505862187349852240783838379746252046558996958403209630580750074361906599183570964613795834730151097669083357642388098213716728522613342576190998883544249657830530915627096874652402993531695865402927595685639343109195603502870134900656149939255764809555915803173428266421257835534429148678355189592638750824640766196858191117911490129312085522312501881262364200414398596300986357833782521555891401808408526613963287605361461959390241862170994183747467784310179482941568149741753882400267743735085106186084286222715832296401058101266015089157304331037465840990136068721423724689259406405317971358534522959084644896229976627369114283548911059413616807065785822480284481053301208670295205768094814563100569763528574761206702943006503756069855875101356767131092840656954082313797896495576465168350477592367662998063341366529278558964291341347974777442856279806066594874251185832213810637864953151992225950733924908325724091626934030532039784132745601858362978140717989501590290793900063701950964269874446630403459998461886121951922513794067996636457422020482057878496550676311403631956710661933649215841195491212312094009427346903751329497833815165129001711600860087771023852749764921548950151213840957595906267240388600565095492194498573464168679627316523030625007035332840086863726019042353894078927340244072723030134358021442842789698544564064211608826362465955180388827200281518965691019794060624465781353920997562710887246647742086529381230783866279067776913834968342901656562067323483666018062668594295845159369960940105037917928505188691482765082158511228503182747295698385007588839362180620856282890826246762714936446424432086472875793070996562486817908098830051697289539586101173121356732999471560193794093638810030030111420381050898915129270902131680226122501875043090477697636640629807557659096242363020917881116920058887113225154912872753474898563467409775225778526726553486615438821319284770023307260994047991072924658901045916157876363123129651758520143244741681834615394537682674898321307647473567645985783884869582721286270236586816410420552469164178045801051771994180521280547839669472717771005030717376651991922789955948415866683695927729647012576873923447932380567520949744251300148936873921792176405722266780845043504744499234563558154785139276735787090189960039109558745032523808191952132818513341686838089146754044215154797285404565422221206147188537259910553575547493395415562974948114766733039559604676419211864513725389465224697956616917641601124788522963228459019972169012444710631294450495723661304761468828297965841599345022003194592970468990007717948766676093372586032601828485155031310399128804884228480841820548858497925108357458121301555535479611198598401956028336526910744377143759633563326616269764942574847387386897189048983586066584896597818448170072552496977793501273784568486653851474536667698396261751547229037551228616223075020325966313727743442763724381199213842300887637239735238706668925103554112810577385577016369343694139818681433980417634197581459793796740587055719429168734569529175101202065932247638491066827851796797107440274905983533289601536975528333448764390316500786912104386253264729273874334033670809598761139847152590645946313907500662161137989555672641054945681401697943414955522682784797116760870966020895580577865274571496270678879415835097528223198853949416158635031355069705535949892454476061714384706136985841620562105389763636795566026365089260023252544588445363772338960272727088775440692714824424403770027710196796412745246194440586635237606881186603262742928595660914118242967823693571446589707202349910323540309181767708195602520172721089624837894547349319032411870653907334674168335775633083815937764442264982525165748107085710222641195280269794020417641576934870978068319822940877361779561584513205932858505970860339642662642733859536414565716601704842590534284466177336858135577411112836239698724889788785280228466360976292952960917249686018638611382551633626777865052190791393848505858240524099176958763705649270382058428851574304355460380848650422352205667313947632466904810732666087124611333402107790276205255593697016051527077364775211824743450505562570214977089029078044655473167401003099563989023565629065176850084596431388942751874612181523560268066094943495181962047161566550485706016013419450940643349762738051026736650155473396051151958147578267457668345693788786959451259109254731085751230156302053323583289365151429547800186338786359134218077850744046548756362707387877183235992172925158373368699890534511322432202438414834398443293140209052909823365331290667707903681577754978011352747632266599239041441543544508352783381738651590038375020074268574956214651609541824334291559043173629137555836007558958178430370777078240732699425735082172741795315081983454777024083512052132168438199898124937884984653058575320188041244176501400644499319356786012052588770238901995844242877900148334686418091563368979028391338662372274486509955239573821849781410351645960416164094099431882301100716980230132738672368175402735728329210687194739969535966709913124848009099760165871026429808028218809936125448510181522416945805150778903523145921402265091424970684901354368584781960487928999371742769657442900736891575536713789811443106450315008758718508608235677757786500326603828945169767573894968464734243394806404121848075961280671466996573046545693474669034183891137292797478224801817512786277154393490552041977116997285910121984152003282391610880644928729130616706086930534652061293088936892858854216756731920089347651053898036315862110638753006979806067642641118170152275049438180218302224261983393893079531196292246415126658887182650330721115030397962704134470237487113103556731283576417236177818938023720259574668303282110898772850794989040788292859580209195017981688864537354105349952400035533826169439478449895963677577489997102705327866165607045769227780724957313981874615709169642249928970032970323475840461605383378435775381662530852618145535365826848297848413556082551785568483597107088030148261765732068721088235558700297908254263108601439306284797128809334437873863320286273124865644412015284781901099825204520914079174769929755351791135155993999242918248678609264324288091903796666141279308208340336967750961933375382267453555608821874593845317181791110314750669057425933483919065581934921219028598551286339137787633807712301453823636182124194905330732786039027856230942009107252960713271635283206530319978600381489760752339583082439312874700381724062683671159590796351128792455911641305966393479816175258832051509355856757672508736174514437485493221042572108837839558035779312334211485941932908848589097161986977638524924327306334771899816993825712119705603126090128805391629994461726603666005998394445476697677023541537210540536297468578644388642736321904479852636427799737958169654167223621899298841726189813896414015877886523556368717503415522626997019017472431787879830599811905791354353634036234512949694134717072281843776639316367508900667925791179383256449329667855524443509459574360729161584590246820633202414566677717865778324406432507731672960538354879585248601587027312665090476232578762647500911817250111583274435149137815628174074171429294850611607268575261552808594147484390099020991050578300883504897731901363470809504789623966130041293866635035323690931222978660982126000071103110962406695982606007313903404814032157109559176572817217310014583064313840124638460052185799473592509920197863276787170946051812840368833180914908076690835721697978625193794188935649258170231029721898519308865569312495073328912028738142401000700663303187611831105665210950560927642422552300592321036684859805978201103718815867183496337246332081408506371251118776714942364981712317266910511186140666205460177512423362197687874516466211613480968077387068899040107536286205551067031135337794065577926130787930548338598249514622126087067452780127539704672146149155591000307836277011413706105667862920283497834758456605145037796241647259444043683694845446849364664942326549692112287451116823221454938300963718051236560152312514308647265207305741571553357142454975637442938319670457618589764128264923068165170060308179284781330138051466392950521171217657481681052440835860799653922170783612196497300300466634936958855913465333931962445226006281626658531638228556646871358114313287961126658735741145499088444658713291595990567726711257792651850414771249809675476614416611689648933462367178441475328482360446932231863845116230492739502559414422557785658676228986653072551773390000019223243680408525417227499889605263876488347227068178186967122857527933742574530236895377525889445011149229252506047612802306600148431199989983123267919548822232826155441979140851963335752071627884278198532863321867653792829577868924709195476675953340454682344911894686776167826290653545364819471798736614752201096703797632915681288575125259285128300135265322075915962904436003747636529109869364869901739439522355941653719182335288332371429591683664171200760971457574369790590035262428131571419100199655969201577826302528057857988067419338985173164805210291276513302166690727676630747193779811702900798055574035701780714346246728131030472752603028737740189386332911254124338921107571304052971545588676142998941460650803088215304924645782183753288995798063899564259485508420838651943027967906966568856105848602273019619447411877432910764287302912828541125593642986496100317179911945701784983737725149563949135612316923527874688371525238723441528905797043229875934944951541238496424057898918500943304294195693110093450412316470445190257261431719465765858338625566071736423748861069571851876034200534682931503592207466392387931772358980318144454851968161710811789594389629042471975332752476290520566443702013072020467214520624948191635094342896717164264325654773123422037511304472613099724582112398046207007798316453077782367420401406903800313540761508139538927035197018900475499647858801890031226245184665013498398277130275243575223121978500974588089639082968960377118780058922018278077674085373609618305833825616329860765698716192048157756213440383379858327732169625092222953826573674644870635808541800929389537759131514563723549066907521456999133380201912075969995045931086514962846775959455477995059354747621944774433328673736027421151892570861615391175768472731442204986123794431411353162646312955077706659523370029620812040870101240568467829243214420189454929962371057775843384984154564857602161198044104643232367998226824740168332466751924252391764827077349749414336955997231326889456117762755128197654147255141687815232128956917435806782952194134027256893584992238761542451450683923110347048663006910943788952560894035876996930833837487629553475703502174922440044494015877102330990695549339524825940460626443473962499828186549999754319631942394225356294184730496920771741432059749243198780387492264145313904419292904921878834731507947569083643514462746362470973378822824769895967214024649596638133554279551028974717633749957840744152336639642277857515240832667744035945813138159546066284722553079524972897314970101778335201104145785397894246452121243416524739609370253999921651197754814341836453331189732532878398392293594949709021709319986954346449413694304101574396012412718887574220300535253755380660919514495513852861846377129303365257604065770212060134577650173114676503679797240353402781910482914978127356455494422571113165731301101892198385182429069905401346754320381056713944144480569964384688461436877089382640111394450304583042091129725792813857608742159676117511889323896356124331315721668592717162057900558551518368442212192300970338517893178677498977853660506250554720656963816479221024871635749523819693576255204588041047377501401047735422789413789539197247083774174766481298628941424935696828289784407069499351684765623854222120872769150593961513038839085277437110720587916087398979443340841586018133306849183947227133548907472301926548855060949711739565685552696641961890837641124058900203182481503389204218263854243224490796580141322449849753689959533190174081647958001288176146867577441320673680647581666572215571217195620242319746857572844626521263520845475674688278274695518971708712266887529358254723984391233326969192706985524060002576555509016733436490918238662033197014086702168557769451084657572978939831150979675400981015462383116900831830888078011740147140209303304183866907975539478644048918444600897941199741348381948503003549232268237301604058150265451482886276393544787087414465163285450814874173861491612307865000926984707540685482986684128773052332527652499226592088159925241550427772977509666511938040823716654588554184125884431289422832434488727132153183417283958869912962605669096347588008731227268880561418108544421079723548960136834053503150342498405407613261296217712952920944045541632733052900069081812192695871645507750630994899295242196033792396766744198609098869264497282604382990371055115090777627185031431371406564634748265281373545069104113195377467919715938467267127834461607771406520318757665942514912760918858533248928201406929661334454441471561640412524041430852623604199047283139376964594665137006155381605367789467623731879418310591129791199240880831714347950630978317796158831460070491674401315237571907486252402994921725371804105838175239172641720323454352706973943533621527966333172720562267389028624404503119785214251464132622571960468702857141852663618776450289618830640353959545922065021612136052168959313426780095735772303682548871965545180074841185531600461048277699098121303426965105970635577222866447095992558963560358954605335186779658076619550920324416726573477682407215703215292726380583280168919091904437326434918188114148868482153971133047491863649596486795969909283801384351798604682925771372526218284081245880506010037615351560816373336814468578496159872520264782495340007618860754338544132907386685650902008165470074527474192678125076506691283749035592246411645018764052103821829945794329454939135662172797788630236061568620448914502197406593331541159905440189672075074224476639975173333276535574212854396340085594467657607018577090156035514970215093132007533696958404108370433229274493789294627470528325133316532104490801143555423629131800932374718417252584012410559117316089608593481702489989450512549140512753702336907554338003660032797368591742993756884850575286576278068942904466892158805662241721208201106428065578432201577840385062913618910531456395245758605632829266284863460801666960517301831748693306723860533385520769220891164414969866262245819022295148887735140002269605549529284151764201346478154651410037275974587064539800021631830939887070202790659855187125821852595185039213199588899920087463950657229878323537760282074818350471904659330586501626701979260524753723249699523781947406950577216732265168617138786146326819991399891327158209560335578373621769547214521630767621623456532575448379186086119397627425980907245805628074165376464611264760295976266908439574100894971927605125977768733367058349343259005078640582537990443323626743904603948613462090187720657478832995230606061067822543416081019120412648258806884359324079070618292834877870138767564650698482831245675492776084418291362635550563027400013188169775578408806581137726182963991301082779476392985244867320141131095474588545211985930163264850293562522955636673548986163720379863897165964953152104278269894927621000697571451295824708225372452077266862631538345441289078433297828890150321496714137496560489332756950009601384062114143093922138880053231683890742273024857970587145733741809480320409980471119980154333475510016198241482877271329389419652565802067200753982144810127776063940055155520786490871701908977697552277636300790998434043391282667575799014569181826281437232306300353660325179646820469146057242640739396016375108264109829397230727177478334169117110061228352662668867430988438454548167365699998133633389330065690246699046428682573038495857189586984055128597832023159202285475309086350485244664231174962650349756457603628908900456141684502355588122092057970664346527771663445464017017615337393792237748288984904073303165191050604268584665314996350373234858325679913851396106819829783655028789991251441204521310921313203350313885275638668475427939917258169956314854929897250457791857394434815657487007057275687631061737401521914974407454189800976757662206943739091662324707232941398288656937256161329603150220394718714292387020218893358038844585487705689439808384068603695968393242273513306480394140289201093030476444150154928124496189609232746050670370183863830922351427513569879435778327762759831074597093815241152120867630864203730952126501063572646841127938108500000227088087126713928756066681923755249825838966342931957960857374017371557948891424001613980500047524021206183945102808578918359811377742686098459426567608104168810946934868000035849297486545993369032511225009903453134037784281558922169594825819596028105374152920290953769397647747456006530584456463407634368681179722472399103714532799849456419856312416755255164571906241736257202821442550068987898979553094869768196996291872622358069235903910569661469996674052139875347794727292666616224405663246090672748048015499047534980653188573289400464912923944009253863413542872599919566812610228432245101260170290394772041667151523569944644308808698220686736792905819820645677258383910628878180725713565195393985416512917091075336061631161516743680515111723412103082528262003407505839973939634793797546316254633361423109653961144438146482770111468334430541796593400220386511840097977941048531862514344310610815602232638325257055163806665606767926468280542581419096367373543119548019912605090161793129695744637592484422832975189154827407176843385984264856049984395189282057239520399080861352771489908927630584631335669410564839215361553481629043992163244179411406901823807113118821667482624399019041715115534416254340416742276293101247490224393316401141133013061191843639402077124011187342840729928255532230021522158739780441546741778029967785937903940703950244078027359884146024163857570685633615300075607647432263993036137472997715428500230616291101956739453677348553313155460397959384949547532068559768489643907049177157833940530478049412702630936067024156279178443308978195523908631782314440459018969131757548504782382516295431099709710504842915457052816686140946522701885680140252193324537388728292590083464426797514181810783716063220410960887478597776464989544810110993434333938843476417108620772048543204164679929381919077035519808833972227554024423315242715320685202689488272832532349540103505344607652439839495243846989801010387531735019400116338336565309659713536644402535571620492006353326764267807221361695366265403732754682277709225695871950589154226054659065903187186691730959459689493604208444597874678257174937136682305958922409310604909611054635214975010629570980844494273591686135210975693693022083969283411300002581398819494623981022907932720477095106464198563844579825227560757919394762817329980277004028769252487633385681473433352017819914638553847635741216841664270625197525158476110686934391633170033153863376143593954209353387270487743139442466620698957157743322644967060548594735090581894341002715492532382633897554401855444719701493915231494078801080562290232082542998561598253943862893355196913545800113963557238550349989317345212092136741696542186492528429084209769270902342937304370386282431925818148618996193229039255307678429464658618753087477825275638937203323944380402813268812116655009846732091795040478912196019907000714832948729374925381827929060456023236219435688944534082481113685188767194150567761512053041357824866071364707160709027975794681363770226698384579864955341650530926478488569959643666742654634238761519079780055412661952199370524382164278012278689542907685402741236950538494720709783075244233691447106646135281148358108321648113870903653588499892679201125729801446122656234204008524784793015226538634348354227496119371223150643189111744908513099104355221331708797731920122631371070230038879863078393480226115971964267949190088134762840915971410444987149012293833095901782045666396406792087962815444445030174310329391880458608539087753054304121628587635270215426881272649972294322242759641819995142325902279919109277994234712690338848836097124422019176691322386405172668810249108152652815907596687171790274027601601971324173140577881041664395268448204732959034065525165424193998850529879879008104584718952434731633234434231428811266591636217109729899826806462552969915499174993872709657599837563261249708358596719342639633284503542401786265727825180335358439077328654599563485201519656279623998232213737161369669796730695383676108661212043155202648092073315989850965236644546628205963767131536236257959716269179480159598394493808874953074256634945642687011540354203817459810476972562714614541433833826681579950137829493490722562155466504209959008940228229824994831657088273599468237536658757005636324308574994302665141105920981742005672142912643307390516555556339324380157462611364671799062253430575111472250715966047867518883024291934335580875945046239196736453753328145761461737152539878849470321689844021074909036795298303565464194611966051028491580415625911126230947039228903936584602558069430127385058171327990347953527136277567405730192211028663897455327414649899005221396061166516362687836822473724416212149179871617802155182994619660877112034198836962152635145640440857144701418722486007754530477072965369364214683598447750036841127065704592313252829151588376146419382103159809343808522708376651291396885812337081269969027266494009397974950538162598785117530461152805014701962018055116522280126657511382534099290890134218879872740484155785745231623093425792188532453607211476203134817125977760327730571146225225893998150288400541633348052147209302182175967581730222454726855026551251496782501598289472419234999196913090867416646842175099720016546029747624484901319182743284520291333706931575161388915915718475062664965971670145296886001945042205584394773484482309675817132909673192717870547146973808150428723931528981669365827820639833512505876599028646542216897771211294749765485937495184142657149735301865723091465340989535947968532315616409567816882242923669747801472629090774061020076306165948521755182653032571672188943369297148243647258350430592760091910396328443082937520869748053187406234350789595220555933353813636335602724858585079053692190683955485959406618871310759280433572727548435107713695168152253174806105716887813144289198059656855803035073936096052580040373353689140634105910066308005619096422734381798676277173097742770573006721985890505035181944200796448470581298666351392565157247677452278640346601109142330209290255981473086518349102638644175992905989102419007243949884303471888028930819951657745559604809299457433624464501210526645140013785779961261723711331473417092828232437337122115150478064934154826736925890447586196933691816969505590317362920678732763938112419473814751285067165912535260305372034173142059042166945029993102893761181533482049828890073596750016155992508143802147224586010574935902800678466013935299049135674714439543281176314844174140735501625926819651857102354807872737101416378984827344741884539555314186486652380068063146286058362552082733743699564537189908717751021075321366016974400749717353324779157694900884963488546145952836773373975617648528259493814627732891590354532208793550524924732147511037446253097374232314624284344880261923518241624130204557579270856340921747952118767337263911013831910425111854589495243755160055126709587859914457151778572014721023654091938777437094103479173263864392360618911531204244060544632417022826401934372393269713121839246235756483040799324472989493872674950380506853716702493880758399069121185572214781543694369235078814626865994407583972178354052837798497303219612665364514819116441957490795001240795082345098804777972569320820117512859887873051805717030159249368535395754741161443403884595953747190787240359812955310832986188055492872343374528271347195171126548881738775145594220315536186763129522617672024825262758277029008852631254806989184964988077692187936114255336738359675396288670964793015803092539277425339451434285324515349524940984372733922428941891783404048901689031833722834006705669940565428776862177338406077090833421453572793299763034556966006027395042015159983773164859363317955419807068000677189722115139308508993172783266551051240569860967177875364430676300166641948041767768360435386874440595637015009105326358810911725920491590755075092518316316699235355980007640924827039193824015129330264675368249647451162685198644057191019147446530393159902618439433759452211516215085212243950015118721593198367469335182832194308725849126714116255173582799951781583784886634770060236650375175628554848690829491470406717623645279317847213781360716080228008818132475247991300128425121056406883085306145778455858403429846181590700538481093238654574321536711773818414132265426135267041304746655992343145020343132403624687944653626171035628807233971045141671381901460039775864462099369861095009125098042158718002501118772082538331545718504947295366867168880424874543944565045088494821131342944360841924816915652660013949936645042067010477044237756982216933354157925551499274095212390698757741075549504912892846846765016802495571280536001233913484052801698201333872772495085889736747396453280935205466793569878557760175392274888944856286151067477596168012447737818337977610073354635415521154514478962166747160462320046759749022563927685467244710255291285342947439976702642833163544622290234475182857390494758521958434060380246247876154269151182443989546199111838957833158463029777250465258257592690298417233816432067336767770844132747204420224791911852952098342920220114057845273235867106666399961267856825841101253975149134609712134467604068179782060044062171525089666207344108897630911758297498005502567456512380698414193475533768269690889800110870953357181694149254316902078879776927076360954395484910848032366227219100735462767643407159174114677030245836614935742843269103901058838803676692565550248777078207474863521384489591595878266052740281167521537528956410828414683459042833701667291387065912757633825431412911266082338597091591522831823565290243503288650234593816823848348312604122752064750899657392980095230005057644521421451653479677025561537846471771156033550553500294091317523357104166777943306260809740885452996044812469367488829944105015743008000319688859946709460025703991403369630456085644310517748060301287841473944200582111984497341625915601413751390379690660007752816248628739209583188127904079173398439390112889835647086157455227721328339350017977837740750130626276364961662403874587690187778664324346370313437962404006569629706976389852820603441961335825083980673037546463588132961444910977892086524104323515457154501321227651755017179002793976694281129301301148331967628295700096993473896294951132247956462205328015665818977346673464578906032009579503094078616412411029051205589041165258402523276321791056369363566160941090827679903134611676854859173476687727406227990950059143320609694552869909510429518035788042674578134390692579190762155966046585684113717072110460834844329453773811704913491162524129165959015665138209776326254153797354979645703972853988230934967563121899543454866445280704134075633742441947827282718709191869225052486882006458682128271569653217492588169635830004981803348245264360480654172569074389445107512910839397760316973371348334768934236838832763819827760483884557728806973232852614944060050130531656380745318984465528348882745342105459114717689161944585261492139648355456039908003693947329353894638593608046337261483403077623165864299844398796948403425904640996469730643746995991017602180393032545839519918513488157279833506954126843486956506403257846749690856318129313704059812049266458846212926428656100485670760279328297419437939281141647674049618388122328010504860108585166726245781142415951822132691200234705371831758520354846375729621225849125383896363379836285416285983870001697619797406831464349045631544640772095853030651602660561830032828065045938498893949523094913486117834760425602468843287690694094452156576196172146886956275068326584209945664694862488436649993410359080679829744109478482767726319823036334105613815507469542365609413748252635485308975433167143165904657126895118143690682338011790099964845490900628965118510301257336881599194666291123660463542313627731667151727988014304514576369745376114640051702874013265721951925552093797360917654895484601877769612888410508650472774178448669372712939354501433565179975763921449384693830142153925446387273884261991512960565617883882021903309022156400897304292053203042980273844725075738880258931711463299763654892647961114007658152680730717706310286155104931706961855899580684917175801088142183455433304671673559053242518166634426780291953125670164630710505663884410857498107022380602845285966053038921394616177966015642657496925017938911262820739979671828733140537180130707481706601543961042452815689926186142732919615155116698476922440737041837591368272904452278188353384693995372206780276651380777476816963212499144513792959262841766477559270096682178846009712065163269755828249287775476444108976611220151649884930031679862565725783206451931671177384520080198375181120357525403155557311509117760032712375928419171133228447480838786866259772686023023565904214487027838168565659640241486436168322642326634847011846953333159633071925057785007491144645938538544668527512534001297023159039199379016307810857971505197655241551159404630799248018912753260015585865310794160359705132938459540271865594694253623323017988249311177536364575318930954349559019188307213137122195691481583288247120408311852936492099923866453346554422542387676064044332350942221854995559776973373695016636916660921461963743661097268148359231406177773445456501366708177370562510148149124436083769299211676828718495191164838895919121964560062973274043548062104344683193799008502592724986927910525209805462565574383797070726773954631106740434505695227628500617781265079349825695813584142776635048817005060399789880706511956687759995534412966732958842594776501263965998526510262460780722844013744624091616940943808081422704847891027829482819480698458675372340628909952300429160870372908541392586394812214621931718954606308530914918288153428935235297099600974469173221507992356329271287459520134428802920409726866754849822538525849137338308716950508675384596245569631463215149561751014305761961113970012392304087243611007334047236296217852948175530732494024527208469085652056414642293915409272981405036734216124731531419261891601904869206500861769296801833901810470745673455678382385597237349738937497405121232257954182703696036042827019638464793939335882527958125054489016943849534021127480333123127411691764873893760948677980410141274876727703803173973978807472068983735706639005894422959318513861631749656682927514813844241932190526462401663063529912414612415576906533726774664386855841667719317545983135411884743324465457322835387337700743963096108391811663013808601346993550784949518587910580081761656423481960558594791542722195449785625306571788909493428168089642049552363158787389629868143592112641577015098414088618029008584610229515686197399699992419971555073636511891720342442096038808981311310368194460726296606391014844153606978334568793907166137906218995022149896860413283849771447461351944817454649075795173613956496251959700782377688202705994993713278605111869589155644323723529855654965768993188290189545968515755747154842739740501169814951114484966546225088577528244817121312407057279143869973833889439117773147519473470428772415818384866173824895350976804396010470936227864316831157806241246395073197330164335731689464437770498062009709003720476873882820048675223863070011720465257333106928745032829059653592021056503646296740441001905733521937324927040355699600217218784597419297931791802528673314074257567311794799538594039346287644710647640980395807163086703011907193228752039515181133853309255887953052893587235744303523998609533625201700677578493399536969003501580221080136371365792717804553477146100424165058766358188042566774482122166112987357229150932928212521920760545237818217352775588055485109118436583730031032357434175848751161366866721396563875003621223686957356210779080320255198699388993443367505112701357398228670224598195664058968871776390154220236204400971897291832149455482970565371112999601855699886367165263437340341098811915905632173013177114038755538070866484684700082953269995906322370819265870000230201665738393058874903467660284430446066764895907758733453852432853461185676236235498293973165223171159066393196138279098953039852618815668616834615099022104302403954168638090806811607935113425838493894306854951243583071812870918013948035786293061868145113589889770213728882859891513935933246537397750770185082839839497916443052732749649595781023914282962518080431802692857243802850092000890286065555671010380601780808146585316627714568708128893410987645699245722812565947760470323355767237182360559985884099357229379142207825477331681403775163097156030947723609547569174164926826316615403837510458162290048077420088030400251369904274647556547700554128416709769526356216482366814463731176805787557331083246359155463173987187797863454372441262986050845109605677988545047128329320166968920582884353623942997131811222563909448405492785415842643955272534087385243934847327524139216728200945846145063149866599172429459543821097725426569892958228665217334956383490790616468186935733856430773877108044513242442705560673805559214385159090759551823749683616929971351047815262084849874255412917961468539643889714955862934462572134442928028040268147592147572478675952056246915280581202332779382595498959552826736508311897951394204265310888100311252772176333990972457594324163590371904178497864061461156068628887940632042664369729244268228883805515437504096734208216529581383880813516281050848518770928542332319376950118648254993085337095253780825097945276386851315849138790366034296073081741554171306409324944490014301419516793800279761417859835550594144017588645458645890013432163025531077165273770674753264944141101876803616137469172777751700957568847054142472226013048659272590290462410700527094598714118361890143314249502700113700085065530536436870384317205931434960700760732099308475930134339673446238678089372314385520074136660753413748034005577761571220579488297029362186254509540369572854566119902143035129503655267041314129839062592305982244431936300044702708897754619802552148567987744140242566592588444017521458469321893114743702778929776231731375981264543114575620224529213794812412644697793940691720009961292513929213588878025517229752799628667692277690439440904141498455008467493398276466168521305016319464309144565992751917959650218623739755196522345554886676166059357695558015203493121613112359429028593067442845378466389937350409233244806946984308912544162524719262678471933060960512386375104650670406434242298918810741844214518461859043513997102756697024866745109719837158968320742177083297996325804445850447166611856605814899335913833027095771084023404048755803243998252265845139184726205370141266417896613266391538698564828270448324284330218038535088210949999604313802284265244932709805392146354356263809306659095650307432740000336213406427420367812524780462743546692858154269499031243840541412510075799995175746675871906169478985091620088794383438811461459377177322481183615718850874535586551942087529994170402468141651457565837685608919335519259275861537536537989194536906527525841657005478672947025652629553931539854564229358707532696387071556247709303104158495614093923194903095500135709296883523089079984265298487962829586573192913959428841445709256748032357699356351144114998442984443027518690799726727464049605050537476916040204461686149499561988549854318066134152346507149430349548588715849090811713442665765029180591969684278010830048105336374255619848485340369392600025650200957324328321938028824960465233037764745632185819411022268511540195686800868607693357352154922681456120634669050507768362909232322219673075599120304202985811814684699337778713328915069058247360824980327609035977199887248852825756869109325570369283373981416635292933973621817315675163878483842723249328798018382962580255428396730958590983609380716458088707472599192700370653555541087124197721334875289190929929167377777259321867429363766966467696824308344928863018232108985866249762282206541338308672349696496091384657099852625038603395412287685942387100137400331751146403146287097398558459366135506405485022812066815714755938777649399008181809275351407687321389603570474630589465368833095436819373423552225205245608318276287427049222990456497069197842369975233337659821056939229889694143004329951197367332115165687683435703478698240320846229734490838990740952274394511996984130616623837724331149565848522065291783065468301397348023578029654839721084956800304289915862863882631584109938904061713253735742887529310685919463298049417956625833157847541088698417415679985152594441949500589956543112063187538088143992309982156949195309781756912892466376106994385180255316678524051898410983909370858765625270726115346792474969745840065935173807532492173147281094642987510782265607918508175774173054048564023596075484409162729469706305140814687123562671966912744764875980710962422206212519233092509605434737740632509295946994996583593804731326722670487367275701786443003902135677332805641245015774240644797538038333952393266045064928867948153485509523257073581688518326468855594822009958073970818806775799634809577290374305397947251390092222270229342072306864153910065270908628301184002826635511784756749479271857647498962440380440037910004257672991201689796981062521837396659455355437104988478882484370432207127013060636944622509437636818338587961591394139001401674581884335931125560426231214075717085403707773750118372128515775477983859438271654660966432893976688284217867165599013645558726785115174106370436954721393739073653134050490866859850603656537858112031668310439766295932660272959576995078353511987891634961094268351803529181630246518039285501170222093969575864466713216648115414706236193132735514737250746697923442254323343112540087722767048760011515702493296820625244587222138284716850732279423329405201319049998751587353681575564037474697858829144008919273455408319079909455413865790514024213899669776458391696259853391600531860161499839611934946872190089582783752079332361482976951796007042569469372732430928637048624756940962539255102359966242343150605252048586263751134106956839289185041949649390720522615197566312703286277964753130923892416900435297684900089429250269047929097260703117228539129070945826174252222532734226525960825324516921301755205143272557745892335403735505424495364494693563966158299517400959761981006036801422974771340416772773044949723342247087719068984180265473358441110825206552282534093166260652329560926282999894029215307338235572538189581067428417586666287620815028892472492297216680201819101968983156477710936760736720091768777946530991355738186983703271336951019944847640366512360592157025783604535894024997467188081667532063140146813905431814943863683483042686626540692751935383062466240319886803324176789854099264417110353804422238433101027987523435653121661279624962115797629021027663027812173523770584431689666786402328116852149977466147599228874371329914177239593861694211035102142290538268729231913604587712457981600437667372190713105478383457758362104809134284127302224961274453126989213274741780778345807758994621785416938601159399881686149114657767318576615990888147376137872773322938898688268068483917157826949556375113433172349345826370282694824829304788851091681363879602310609792068784415817064457271535051783454217457886655348374113758660896530492653447727145207038743530402426315442178804775538728350287409337507287960361677350424802778164930483444618544979791303590819879914632648475636140481612862633404263243890429293180476032708675932404289877807835666372034587232536167017722029818019277044450913002519382005037751804182229997963668852791981663408631582868633409539600191292387068125140330967899813328412557096401450249738691172015225512594514150821390903080878518476628853968191389782895532109063893170618099864234772108002854481562086671711162933413245919003642311656196570296492253907498667811993765409882145541942159396781066060724496773335434624310542017158602959261914733396841597320239992440386448093831028676168182631341448638202483497899088621444126544881149073322962213979142510324091953863142625096357693806394972659803963560766769089930484376674336051797647214167318968887787383587346821492131035078691060229527937101655310621370338008571808893769662887756430594472559881295955513596083048142816736174266959429306066405086001199033481707435546498445316118750929551852270776436794298370079763026813423536675523010402816410021053120125255478542683275294180332002167928219029239125793138398245057485323343363339224563050034127705696144012992364637344571649864391766211532657184403137591284142010526483565137158350583171953858192633708054283191198993566480775135062776030040385308407450251519558936869477059887991186955593806037230643052047995545328977999115484368548568193263142380715869173189893715930661194366794099682424927120072101834341223694341631767584556812397755709577172568067244598184023154452929483849731171370829088893992891481171479047551101520614337309522774787305506286560224623379654135505725446247328263954281292644078143210949493401901800991707894039424599841096610163154354693410547576400330473771431511576924112802297872126583565551344559381610611254243148250949510429836479373152604463573207425209309185113223771703803063398903433393751999849916924139093851851864230801857764859515591327969908277846129918405719340716307298696476886681662527504569510369083884154932634659534270355000418845533346768987929101338533810714812166394673840989726943512224557578958544065263969568431062069635437464732131235266227948856886197000514025837791434064249166317042630211476725758846311660305259743930923256170522646121690020660499821204657761983067284561895256607582661856467898016586547806113244463535900864004719755843530395747352833774208241521719854311469000056908882489788015528760954519009962166041046306808355232342310666060299578207403552581370967019599826641195412289380412387872576708951690012150646151192420131213463612985870648601009070516104600913301515649180020384557504278504621690148293947158013072801757414036898275570330265894781547515944565421409016896077402219940011997056916551023998229007794468268377939282012058783585985832393171613360425062787295267645953282224499304661278891888612076699908875842920317100005112594834079091526401069717087237429850680206907166776115573276395521441117800712076323344331076478104844303563715558108015356408244688660346230599166770706417724426836847458512812984028445640290679442663540138954556400421651515082098288105132465483207786143910533427932755858423426064575689374360274811834871116126546895015879743952309367310500235903827458354442059243197565402357530312810002100147673624656193118536304573350470639098907832003059616595911990399788875406697522918127152201418167887378113380645315672428898858961309270892215017120103548978073749570640613680888992968154451092198792431799145908244788544942670471961387358568071167928961833277865668707402940275432513088853591179163959353006300121179684024433628728947130806634044972869812570128661809152988216369301955981663944915754538919529690910927538508233203752794123037104915927024383384033952068940067709953352446162585403110624989151426630968690975807114872446353689725274817525241080174095827288136414736780358971893406412673991681515724031780609445695269886808795402047990935502682551142980543857844143738878414666916467811145446830647074067940717735879565030063519635543797927241127117196592995581058682574337544510914211350794521043182681068266804492300765942573964454461539764314931530436576501374148230889811968968839962907566600528301208720935444563555395706388173405783316443426096031345385388732070261866598610301296557581798982698015903248627893165064311716387459864847469009745229901285906699880950008649076629779197482859991107931554452292848430447140362968246633183439942330149700835521501410558452283527477182187489909432832758816943007222661170393820588293306380845114455853000529175018484465336305625054706789898181346546277737220220759078494419494944338354659247464271019307635086985244832973622685305524312740277184345037668269870576931293136453331714779004969393558666189526417995709019077445835500551845946464901494423603937303990281860894603992786693635539183820138309054914131811244740056864738504616879929668457689197749477601748843201965267178874998141738151978421922745833089795481006395566249651046896296408410448908428987179629452621605491409099371157826568303785928817624369167056238644626112916856771080520190263727046547624090827971928917221426732941135305560817224911300169015409014346466723105325142421941015504671262011312551256847947460505377142913259904921387766049475471806606587140790985747838117047351901153662795703740287245957139856042677219455224766609301339169171619187296502819454321370425031509994403052662596746639717712048073173735709022558758703714968285489404757330204250934758086937628769950216018888114424873919688632850942572764220547890104135024062124249321153096421251385269898471767537436869102675931449730378650779376779781995621124039861491125208020319204541941231827823836884483095375936942017297956907058431877784998813496182565848417500004148480928589206362625520088208182476586659639879163015043744701491790429915975685621406682212485243295760575395209161054851374246406029223739696472272965535312711992427935325248842112849252821672655080124223664898849859711398036524544823182842341393615491437302433409077398322070534174514897916959588713705657126174347336097228159349124658670284046975565236696500519812817710793334048237575809235008587659625873912380088743103583333864944216257540570248002658208150594400710797609522984650019064364470310474131544767721338305410439699836241908183162688597537065365444226455739948355469569773381698631630368121695059618737699428393462260342067506813849897204689677881777011258087971592538234303315416760229658353250605927347107758775540477169620006004868567216475392483095865241046796264928130250591398341658290411872954786883965748963431729307224000484785367969688226701159209013116451917220407873376709924079598364468725738697096519323588873301664907202143338115596617998722919193737850802660726824379111175181413275289102401178015679745043814129100552216955630244929676624303451941602782365784869546112675386579491116765424641637575794376160188312769899204063985386966919176052658602660958343790487814261348545980389829650937013941311939594809031807371991289970088802313170197674275005006783805980355859452980392369831048257498576450705776582261302412735976087038390455526571272175884963161433066132963476625345839955212235380263566255551449235512688717784224796586101601111881035951775726314765794116525523867422267412041830856505509057641351675537156241513169453037196935503243204873327991341843302626131704681290378484324627982848858371133377487748080589226183999094504341272619880108131983771815629190675444577944364609084123403733747908111925188665569197939611470088972781191658467441813602663445693183984550654200069712191754985140834623775685544423223053990795849093739449707111940815778611259047557775301612517235796642521248422516298001641401712526129843515205829579278306897137409245747250425241010881218509583963285633275637894487193774660592728066569968910334023837850891854122861758050676268683329242839200937820994014283587693319678677696241210361845187602846245144754670580632482065020496409664903723241100613326985854652234196916578824209308566320932439698059391105580330486616241619275869155278479128082181625610361891166762670209147945701301563667812143209010766054536191416225725246056815105846509681441474483202375373769384252536454553633827692560302144551753147981743601548518418496646848538133801876585146336787652931947328891732535896341257132858794581422644271741646025894269551285227742862365179805256579662342966120431893734967103566361699623188915992987581538804326627824002500544733847610908880384700573933177595147982582764655197516361007237646786259712997001408998353533148663114599311142062744809599733453937347446146686731180033795744836723846764546894978777465795609181885837119174413695569383724351273016840889669415393030002530364417129013097062003114428099664200241380688364279406955725477287024603980894601203551623661642894984598523361400128477939521418023087617011640497438319064510948003327893645827188174290583991500746669838125524269829218182094446860555327395113903486682757149095601403277135554459375697313329257673003787048886465993790693425058786828769678711169434585822736474335184438480979290341401445921944524263959178982153102103517221805488839724259160555864504119160177700719157788150460243712894175404245319811699032006668106337909868636044432339674816451106204085607826499245464499154719120439839838787876070797910605579645053870738179445446438678743354424809829454968711841433875460684804616333500478950484796428989686229541745117583124271916444142700876733039695988673998527848324965449515723164337155199230526103810021138986126748373041892069859052694147380281393578905234044518583730798985916588786632571187975924919967100345898855910240825321917088716361190461063578645060719008228394811710668850659468533247496106224270749608320309172174548609112316194304389506354917429663618034104219531469900094165589156004038599240167755392845391028717592362902260410417915128881402357864768924822848241931727893203104712039882402122622569286959246468203801266349354129370170710246138603800888762567114777609182159139134024210707911595424289799179492472321957044389721686265593610108509897403896053766667705691875733530894882263714390955056262128482111769922183861509726378258371094410132607302792203812885363799498865488094728477071367338939733468825763666478688790468778566323028400258417794634040965798703375569791960561902236523949322743340334133308008485605512102264467387231881713715971360506164990578213653573405592706461517946429461533513820422485835046702305119935369515218504774528135975777429776897410928159901939705334765753541498411172427775307572276786741197213600995451507586446812050595134018375179527264599045248949811922870438511893006050659470080615838338494239328542251892673872043219489749668936515040163122007713056503454426175423355305483009220269136310780031779523123539892095168122448631700384221698183072582553687101779996638378477343909908648185239977768615453051337523368862717873710246315345354799649192693244241093323295487206015141158988231693457422036512440549119179877498664116802864472771817083482106930987882474380489983970367838036347493723054273192414329927392233065732830288163389889236572245874203584982138655010136023298856709684997322092142107392716496324468894387402140995120320918675691630484652746827142456262535822504657531401026878550679906717577415254603174048606283633545168627188067535896156852449846183058835991224577685739501043699251626261463845673347154096600778331210645274857480986429152933579445087453072359272311419720208788920554409473950904619944497183139482874940832970987473368900792859084633198438952392179241443871592469207572478083103519604318558769144079599727814593372276935540171499672442970985902152873253661816500858685192606921327495059440244431085109309778521945849733955009792858227713358826990887076880228323864679734445102257061356544289974740984275225617711806842913417554113919174892065232330878687992317458800976948359152771935886510380233029561638399896092376411294677427865353903628452221183287799235573940342940926899638096044588979920280595535524106616249224659632770124924416890121144383467636196263630456642943580815242986605989177026703500749976967714899945455424744458528186132955086376152186169964099563211758005081046768106421523041699772050131672618665851441717355112148797217237530536423541705041142047372711937713950231927834042019369891609617126468864437744828430358305012214049131451181537681413292384085117627279893678125093331701741963846727712342321484749038250068764657186083121091054161891324801231747329573537692489190658484977630738954698878046354014117214877566882110127733022303600394582153394751518726531558138717772697130791053557463989709280468469474637634149468901508145641628784171957637673246650436888094552266994013024900948163300984917992309031207198430614992025062170260275238113352494394747045385539708904118450291956789288939179224727331492714660363268776601186648811756798203257788806994510198533371667262376807309428268315863858431460858040892400794593707940631861957616461243997714071785530571658941813396038139185864578599318561762024299184960396806600632088983704075076996543745753584238894401323349982623590477356449951500110443321148119206914074128298822034031728626702624265893071492612487790664946346957000302091378765042464969462808428971249208197593944888675390713910637393953467427147395960379694808150531240036689723968305791037076607428153800725597872910080167002256154895158219337603347726012952345409366054628613701228430965767832785280990502472085764427217092565425198712287094326160302890661978072386295184012282740560360237003481365650004989887224909670041239421811231101806234056339093596361992893721724332700625120348891647188646991655780563916917596337869295241142486905067503212836475063813201924856330270003671514782966912868637326041888259224622833750640523737803788448677271470302778104806162854775039546612951235378989547127303843431892445592758181439608910433635358376029530655131735315047670501102064311464404928578785522869171918589463604751991413867453747692936563575652938710488248894099975242494555683876496488740847648789749160785031319222437017820795159243030484568307268478811740942001014048005288195956651747079232889686704349135190221618298087161920039952917971612289391292381120877085311534553172598527254954049216092325950633034350229403665447572574113557123297143792797065531815992545230821453157406611090966550608596933164416661786563508043529294638555035788461159210275194359414530213780303334862563850477146965515283245772872280606783546857630621048365034623594790118827594191136485400436342818072410393271234030468315715800472121797703013443111711206991220179466622768249671067504673096607940350172411639263949201317051621834305900169705405851650738418331801045714511279663273520447530332824647410516388544418091636069592251909426113721067834766937393559100373693249564645566763367758300428803001913808410880862405287242115576966433094151044366883148982142053492854055359269556706689693197144537146557066688710941184097114580687418886641186348087962779262420081308507186655321564679113232192603591751896718474484560091777111678628045605665333680134370163665919142783343849200857656271698972325142634113692770169156284858341976564318767887442391982517760922044234586773053963663734554865379386648950898256769957336378166442632742169922802055097834971313637650665243098065197408794843642081060433697231113625885099538098039130835176146187596288880888038583742426770600229280143063392479803089640882122163429380833852869893801366170730082756706694255016181168410882907336213787067987132094419997104902797536937958321272314202152226902608663500251479738527803041605320789923038557032798021920610129334116631943231811383607345881497653610693171145444921469387733812498562840957257765643965738546363747531214279183600739963770012141788041284875218759522954027832439977500438391406514159863307221925727107704779545276601046594076486755567300106569152687248985989408296312562370596166166801382294053077002512147912045351394839209980717002075209339983299123151400030186348291878858117199777140730074281624514723833845249739061935834740871645997740819864636713690056850052666474169665903570439889049670711851682448815401757826417593412061264550719033427049376838622261181642936288341221350677408397512458572855281981543391786269292282213965252748289044219119751776166320818887009688451823268744525887521118079357978547104755895106973177475616998312136808001299150705429777619941754190716782555706650498824243051328843428233846379953319319763499717033679915385029530775449378568523557934023961460745278120697894507851533398265203392936224120914506436867850482998255402964238000510415250461221459170777610451600034193892296468811105255251144474004064651103902436055232463032440927166063619662924869378985983414348136034559475385177105844378765355153451397956349247933604105467004873385150870150290918835976372567023893553657718266767060142935997797854862099361188326778680920343088905437587209749787779862235906175364337509693927525730174950525172861923983277621104162245053090798876226935111426630376174011845795201535742180567393199466060559240292482438804638289312695054776459634103792078040921693227834184078140354667656007096790500036825885475599857822660135251197275733770470930883074698535342507318588269816469868446352262372969204164511964319129744303311222721428872591291879739122740923324695408751029094146516021170684309666201964657328859126416919327858402910375482684032795446201666691023281397188346195001408695389262638600243684975265495803300693514877444463458243671539237352534520243253036736313718307936111115986964424229319304082328701543359330926292768807415511014367700699370721960322923240862102340283256274160363552915895608619698474458073339392490280974365684275399481749075422103709003126518090034703829821816440150640278822020767498683292912975993785974188013446749620157262297285671478729474277761293951705678958705260927968651701192019849567930846736319556847940516045327380998784921106973620630195684183528615211564552052078240707326453272156359118816615599251772109853820991658302107454257047560768514248543098670139930225611254834613750462949235974989713745857216427003828559313438546005239840195572529168430250439693720910930094657687149735610572809058522123343028236873913095784904781171460973928344669462804124633229851478629707534644754260261977056186161506983562230421216432602138633839336342442882570919477081404265144163201660605496204330560873408188368063850210474379525330476114591547595922441357625150342451552429785596387896384965369765920072385230171187726297723025228751136100494563890275884765563459714114957116449174856671354668071265232341632178150120442091121913966329581565033730134999291644765438863899358229246236024509509670723306405374244218039343053321255486988828190561640287477536079906007266329145473972818622685850224641213378292021920036885737725007209183584454308184853233531029088238478169309579491659760074326596940982182588866126135074486349937323577584425281061757229423159454626442545691916091542866143023450348529211975009944283837293611616628908601552461130911268747751978570113145059451490814531792797779414297524155932262888357625910278772332359276375474309577426900915938345983289948707864336708214342826978694100403830278849338088428246452141204766221366691643442894513230281729638599768894665668817283387111896258935445239171092782965005278144056613287202251411041006014186294140067429920643240425670046549984549267902640790645072168836354018313643459017831104326923509843035260236430263683680361653584906634793160665333017703856526800842630660946902823408354550174718549831623807169012124565520194346394548279955660091063686422368792392322775485447054896200314993022036799970314677737272558200662602698498811048778505877249524866062740121428868921166320041493391538524265058244489002882043364699039627652043617605361510799985507519362275054477201682290028008671230502204498459176854250487619892288809692070967237590695471484176540927133755486744732336958515532477728747934259730409304971901582359375510788479175574400569923968878644271582383061782693079989192443020696091343671209984397789249065340290702302707811351390961714510669796855937735389029976185828904430076065081040737609911780089320014506787829538237258470356545058012663614174719597010649967626975555634885718830924402374354994557047573717687940674314971286944314147289542764784908350845969458620414596597139949574136869675438763638351666851077735518265196955591706923283465901661569521298836899496177169840179873190205768556394792204435629159970351482248422056145563522825585804066901724369467429220954330448540241062414461466694330840447568286218142717512754222467347216840453522634246244921920320729709875596691106487836498089953295363633978628555088419796476298059584488979629041946230617144106940617309234319320940915139804279233016070442261267926373330565917538250134706308302252377031647264229632887778734946981553613618410020144461915808547969710977314816222192669914142557991477472980258679137890540354528636206037479597670403787679440230157340593416127350665621698584430506829352917532209810067294422761593422596188524569138397645195848537886606570294842473686891105281617794851866910361617902794681717285434662064449695301173461540241243086002065297164450479904800999695784767220737209565969613100828646936959366193928241379748196759183103518477700127246133798854320286141854710447285999892063348668079807161862857516531529040581917971322770870651806411678325678577251484180468532269550630225067065987037950900378354093858124820552782677052739738308180418416702863335622435420139973728907762864603231039053694039415214061380148113127604050626501941875171403723291048929154703479133864029759877889757248302698897591896909937772089420774629485828214080801795833627025153975640756783635156693762995790990894005949883807950610915874049812477677233296036017113377652061751323319240424941275018274335417485180435777330559662678953999805795690554996827856247843188761158050744576424438436078205786434266651910159051400127178468588064625640988595405709102366092946360237552444449356829034764073129144201215165739023398154825863992758936883087198322846417729936680038974015785419931331826715528160828631421600532537493367509928120946215614827372437871174711590539863499732461645116599319310529800617807674387037888438255882324689458493536415104711019342006572189265495226088040629152732488357391332289915400511531612811639187166302351028298823201715529358540737481228419941340593246249646884157887054996720052724205405450219384328750592507042812186453126428516864711441659771092054634001350626554371931058648380856278219242562674278458496725732742883113397985122125706326382607846394613742816050279244230129389483064911164489721724313493280085320520675756380823827300732676889545916995064865774307205845898586202544731367506638486145434212833041552757873527154349895617249481890879865113606911454970193511584587063682683686369855818995299070600735878541623703859467918388283993650906318583469693368615659097732744595761747769255129475485517254789284230993923786830012500003200984977170028510543174902300765803183510801651463191496747917479458017724695808137705726159308981804635103596328726578286688860049848771326515129411208341485554526079962412246678221024569012491842718100886397794801304069863272523327264720599322907113152902361782718501384571368630033897653944411098380860129530270508135399742693025632946256376376445294740593349583560832176377983649157811032161067932947827937460479752283849690155780082075641372441246118790842785745401424829605876445154242859055320447647811795168408724446436929887345958735597991159458176748749917208326284025666893842525869675453446821475393563038175301700520473920836838705943629488487657762247710545879348138209918793433856061128060205218236146675810087900869535328237285077546627114096691440989100915819362783227275613848196185936247664629835580585789146506223359889187854583384024193968157977344592279423339648701825990655271603199030309278151074241440258994084361680351196364178238606584075304897122098222662843970870751408068539941044098799847966516160927925809606614467681242850977013150143745416125488543575573991737420796239719249052026335540448915299415064248594386727861591003587570761387896629317066511639182090069804226151599718886340017849242634264536452672977335815523315793610538273148527581505075259278958714332024049251147719049318612781724954844868693277412602185149558338476656758718018285613691579158518468347811420747209825470437736237062518433788758575099541344965190828346999458058698107459291071771785270259754285042034148139669762052818742875385480013777926850324343006280130398975513011990175630561984928819843566196325636600397313233780006493779984970142111375684369046403815305160873861336933423391717506101822647498745545482961535137922878780987377194126889517360866800787169505729504753539365152750649143759409178707030374009148074404927051998591339463727767786501724719312118331390658673430039796024640184575800750919047902853746647963881791938085750826608475078703448319101241596498451086899279347159551031354007541646230257714798851050034107195088555185797053895063509052660233655101156843677799088032335331922671891667476216321642666275502165669595430883424012484017592525443529379779452770980435896592288859017906109315063202429134423651178381095542002249800771508947459836665581153515873417606126626644004695361679834283145034040868965998566684367676304928625977927825778624710929748860345684038169172119903100625179947668474382955267944710115311131895428906003119917044736875106595902375987686879863226083407719564246273207732341329385705401706166965156730528051583992549629871684191493221691039595116846029026127146440119718035564717219832942880247310181545946933531833145915111793017815612691077887480657231347517116691947461934467567879732904506201444581739534160920646649834707021609853734097011862181216048990825948208978236150529280332927829863306605318712497944429789133587991838762667309669739407226368711908247882624282636032545737500567856725607713007538983437824841047872881912068546467213647787673654743431176334573738071524266303174223680607934809984247476009060565904005035962519883950560186769456315040511882555040805787330836279168956291993917132972162271036988827430035898539563402364641662980394710598472212724702640314779116502284293922543282001799100635143009717003663674321168141884276814997702722178365643026773815646875315318136789207696957967867184660553373081774602803429225947302470117265064005658188329359591158555250887672867484860963915740859903977110172847397933660695655712826345162001967885044368615450109396342350033097899971646858989939813717790656135768880719553648968463278439120215658032034268884567194791889648467700526212755233274444662592606213796514190938223231935044945420983952231985112168852862029071382306029290940843699344123048973337013105193638177477103966045850408599199865288173847022777590888336381021033016328021607321537657885373448827681926372723019431650902016897175255140983352552205522116956364276729844270024814339629692520189196750407477487924200909045923891463187624557003754046464535956159374149559577369981630574536452088093323090852850135643635692566686703654586449117953221192542362328285233575319361277934526527757215119013961046170745892043583280600812385973176443217956893166806076580398218863529028682724412449978547903462182604568323613767246686059580932338711644080598755795169856215907589115772367958184186731292519389449327958888720686699076377897442136766615242495631847639995553201825383238117425221696954511491894264308605940294633617276399226596485658288445170536470900339768172687492047506392962078457144352006875928450086453352350835184321807092138213749641775478260272311805305666166897467570604993540426393375905190031618042046993768352497956593747472685785502948033750582883150078218072807661983750273588039810554406834820117766883428494397495740956463658641521272753515531783729575788771165563806319952900530995770322653129773447964822442077787764177695677717187184216961987271038365467498697224097338680726110192700613489347062205060417245028683243537562744043394716199507997015786325086855152073585019829665083888960384463426167117728290858593433668408277221626749339975774363842405039763309672970729515783807176844523800903840060100673905514096974167309138717128716542349828858976378857203043187252813988527162453564114652205117733605718958127306512072280659215783945133961832693250157821338621287481280435012873951340355029949166412181763558235014158255819642977985350944347045599073695258605975615307683117157307687488114280970218766900693567531955998618874431575820434655419370776669099676124150402956065021411097669224121436246345901101821371924501356647996906492990364041812932539194524814817910000055970718316942699764308717075693012971812431229034752643834757704018156840951151888620122546712696029740388200549065505257465830606274755790648703389653643007366625894675648123923972447317058121852080975813613607239248160222588442441715013269206010813928647694880545833955062470774420980699374993182607510155112681492270299262702574931053438957592358817645574084712013595360032167366103750442937046133070235606213578218663801442011898605485710426011461774473276941121957269147965339017439668549680795738141712478509100591864385637341435451973025712394803695005026191991552372521445064325066663826457432842770895097019593073334746494813467100335678905556944596058775486792341446660110688764657134886681386582432713172568962271034015534936627106640946757166715825337263325179615942729147237333642957397579259444209042774512997610494084720165821195245854790879169871140075178949115641716363178277304177093156331132319176527720639610576379912214487593945935177172892865755222454923594956268484846682144932095507098132510868042556741448626608106348236973541103431142011031569469023688617534504105463505830849274938454700776279566139277706191440667783378545983854759322614307346628707479309876137255586830474472684325220742344474288046804520816116726799600719655242882838746550609124975375621178576879082249157904925529771167540688631792724859887252387964466971160749962121213650859683107853369611125968381199844538269954772947104189790511123945486447100610067670118481747055243321983083391892873394750701960246921367733829833848937329939695187568778387033346714909364063716926546258580023416288454077921384536020100269843083214054786053233975344716358145582450696961299822253516027586655162406623356191961750715312691699773247878689172554555150083893533045966608325112876380505132007872417364274214242689279723352606990471322173078820128092159350026990054960413835166544933194923622664073047987127782592028849214257547417669855326121841838146262825599548023999451771892234171775841281156513267248869995689441755742339310846259764596850947550981219353237572857387597225992053322443672704929221846073373364313919898252377320335618958656457559867856357627412250250549334545572680885750686530763584190171595814184496924439682996359676063222990819934412949139721876831274758057854045597614833171700033027198629654412869848548257937331705845610495000189147108275981873063641340109838093871365939450504241477922585088134195303854876055656132760005570176978732521038049862331060702995573918428354406536466456035927061286334641036159288743111114876380119676339673586415774869573911338636304197902067609886622946361745973732114634166533769127743309660388225821784039626461301472247678141508477247070645318546111556421954947697693443326800730998733391700512291293466473756020885201999957361455793972792042853587677477388379887739588768424007433016169163562016739155758773156962732686018547000155126154934975985552464582948085539876423120171810438602070665096068926677590023920930267309881846291335188901829570122975283343727898009011891845268758193118104131804342335804354995367451225740532236557303867215826811594168696065080593598175027349210054154368791172231919145695459211484100262894692445874634640501268052925528698650875379696230735637020289287682862914978790849198476859620071653860204844233898949834229658953849004254391516104276363368003840983835183299195230693053031828687685260976906167573779071442736025066729107444670877114862526103270676485049257245698878307253884576066344051255709569866879144296646828272592741476245646465535273694770140293526770032563327490515524143036490417682251168945498342069063586655177964190998357810872362081761260265108960057128273843130093149481211457689601725588260745846044813444661436006607791104668328228637252080800221664555563930984071209311949364585270655316652281952777101879358156619817735617535809511374615457674515507455425478235294935821131897852864767344126164724086433954068864428567270389218463291407170736149367336680669490031593889692305742646158652694018647231321972236640498153210762209432673861476269259473573600683637227705799110188891635882275141913176163334163730042603471037446143630639146448355652675503245643796405060158383322784565418606888333635579641057942430321152181349236476396554036799096621726400527438047063947556275955309385076231013821192688871579894798226495350012969542144842906119445482631606976683722999711243143370402262953207377575785657515893393614504926552776712212620201988718922207731983544406173701203058819983016273348027881508817582307898132477227752887737197328244987996706586638513089039945911980398183965806119100186755564903860787349074370511156965203051271665461909574823100569143188991901468861010063781681865228279047942001616517868047683620181257381576799751244616362664684313201320867076163088208932227720324377935104431584821974508592339947201539753406859567257718921865754193609310768480463422332300941361819202402718640889080010888269623676412275601587403476236425381187218866174101731186094627412076377826916578322213862690723560716637133002939680765493199804415328072545521784244639637091855509944630219524931721710107015275782495222983174386228860544692281084788951084069519972432586559697172113500073431587679741766122940056810671644668201470580745457775164421318526986882334679308919864093617696941371264821708831993320130798781818072145655873354851842944982695576677077671333252494891815309878847994800164685673539334674009935236220791744644846943299688192629529410946803624267138714578764877484068764643056884247025574783010871771916109228924530751082114270657186369419660519150998895444639149949734430263251133629896240688148678322065792334460788224413642850823691282022420453755755032854550118934140849033116691736469949361326078300119469164801183542414480859678291775896586913491192526529157233365500693644973662923554411713964090105492017915250512833166881010786554746550282256740282930370221113779238295355439800966190765077612406895399942027615260265293436766902817856230636468402466936582035715495785293982119691017884749719011070576547335218268560330644555922733521287064807065559600981857120874021175375749323387769904049146204435096764226162360210058483996912229416928289569262545044888973869043016115618613229853135511586923709429488484050105436256159510224133165796467871403810556881470977155627298971288942240576450771270632440496651908197715088257228019093907066268856835843200772769188484794751667755747441799375754457335501720516029460337492886481379252335503673271591477189021095713501070568147233895714383748226550194413011812956560032374042059530208839157149306155487591539666353676593862833058782111798145599133210808247738346169269724665753463745993283152016017986944449235823804308449777621010840071498470127192869899350385332996577000282019824512657527032875027979824635925322568860819131771524168333814272506900436423451587435234968030880644830638457609310235788543944725769189827446171355438298065669066273299503234584459670992105925097004305527192971027810890239034199281252057589399386630120133538897990549061197487981653412712984798908499354857950899628455034168098156723495606950234419438255177649620001636891187977771311699680583628116467881752278106577714409772373694638966890850723682432653396075373214970967349448517122626165626373251258029178096315513855163329477940013375519462094709177499931646424525218764309518397346603495823764613006077180357312661775760057095711959608996003237650951367881969742549689354515599787833285994871058047475102407808167174106336426953974109139036510230691542436579452855869433755519719275286355036763316449713883130464704315149596435904144382546065117267151575543335020501482066556271209741544049178812037720790676485715171962549270198834238108591390901078715402647795700384567940767206173679516437193042258307250461432742219173380860280648823775964135233802799118434859160863379551860821372923153628106872066912024963897675867541581301235071644288094152582669269996901839461840965832734444766115983910517724877709025019991809452576905403552198101301021751954268797811897746959024449762892556844172969704843687385583271631273341682106120129260070999137779955025059971078295068076099450342363462489655365634063728152730330982099191069264851209962792426208113832744433729635944450018269679942206503674531636862408313307843629869907033898340850168445907954124751079345491643103776011225632648737978055736064718400224752052618970480405298930357766014427633056346576202975783885854118550789938320082766669985414156718948736033364318130818237846468864377031780240063525390814328848446350828617608348443321172403658488160552403318272615142912972353291085589234717598485667713308585148967715763911843472610663258803262015420464044763489889784470050740094430335529861935788471535165955960439138771876252978031395795402954013772856141023814124440066824840751089831473037190049425486243208874041472027014763134405943255269036139749204905872243358510554254192779436442182986773491798138040898017291487945644194339025149271597681110478003879411046057711147229696476029280584963900665342437759136107221855428297788766411938660320726679803738376266424468372133947840770179063621368066134174107974080924118967681209421765886928792159146994944361233383792335864546120530496257829004575401586841169996786148773219831352524474104213701101274405963272213099983710645391513640902712321045269843969241906720663181721230834845282860897075465339882988365213716658442319478825688179261452049137622036294143247952055512830268077039744707589580493738486575887623336062911841482451199301907392863985827561052630211311965232708018542285137177248031995188652515481687708779422717819075249654329389977147208535627668812990613897754561593067085253125695783359183936455003553260614771228495443115675637785454782681259341984029284076863101611193537546361413048508719150268059575409613512197802903329637782903744853061251110637713498260262296453763083069125933817691259999303637979168418061628543376937706180967904354467720181311027828587510436053149079253978698668331438483842593988352891965933042047396591203090785557842404659520247149110832975143382270302213175761061356753955126373324526982148590155593498005980155586613819537505439914063081990836490564827175259441594149539031568951694748809344134588017203964327303987978024764737704456443260972501344133581757768285576603683879396825324806618807855916735611965632216083858067646314682728686903545955725805953526598170384676723933275681145791807102008544932240486067573833929948397787974610430942323071540188494123394211493698804413614942669245274540355867066966527156103062826630098624965623661530515775883780427441441076545747626971354542758806184892734825629224569480829693791400640893313973807454748062700163138686396917016460471600007829350618966502844980817898917012803007406777449126929641553392515150130101694964341226291430514792258777822705969359314146462195536736381286919809671481083530679936314460626454656490511591659582716210515560466115515050575574638106281265375643871362619434356625863347526599659989914405647891131711493810303080207244517753850701554823025221083206129098158797712741948548310474344510839413755863052038660134188509681750436297510922048468632009453994015485040498952129426212441095275633419742093203139108534549285235702247848583895905880063486710860913891702192198757832863348294654888317819567913136879190822944038552680649379076593611514831822764459811222966187656158905151879448979197390032997451901922209847975485184948062902334078237397191582453267209118445956143745734775088407014522655887985777481627060974619391462423621989526904276156907397716208428699581274244424266291177088369422739462034641702898937887083548417098567714828620565365933197026765404899951305864670124978252878237567461483275534942330182546708216967731673407930864904978662249814186871253322564551285727093762486781761804263624200371422244216631274392842618847188289221706914967054203250948593702773964149231381177290855045207968735121768958946402504263469873798500232964247539410375190507313970664594826592667029732562870081248621881032980805266605159924106721081802061784896073126543228494570728924421844926495647267979275142686808763725554463480811203598660218930797041693471853600273914640202143441951741050372820274460980262495486860914314452410163788785675224571074380080173074802279178978947002550028227902004595539601389522280982942318463410869147782330531474273926684169017460022900320338981384834044042471987476159271554628929906392503683511113377973383468087521648074283920753960852766434120314007416248022104650455124031081380206220943211625194022413377657618464701051508564016228820653770256127646089884723024241204342925850138742687570378785012503953896923719766339260429869839915332933922154732302019082395557482154167924764841584664507251117295508664767651271606497526377345401264395507159631671246812784846855388022707577167152288650845945896633995061663858128906487502115550134896227393951563174366664743723108147701109508378287073126475281591172624822144338736946715038891613437554116889353765835665318960361462599777595826552543609511775967771912392819375143218073075259617947386772248272603623987928257663123247598301779327174402198227822113457773236292317033245316051985758380925102886119068999306102304628525049838714438558767397912177845986231949399203296055149230337844209436032050513688719925212383691869119602383877908795733439496846757329392132777931974999803137166048847454499204583529145697252632430663045789108695287636261868172807244834052145908829494576410830040256934359202297869358346992986173307291825647792062575296067067103306239159154258036399220235497388596749350971838952128916386414845392319509347823967780297373351419286358364755169071944330763943333171274225972427870404119642798436672465029742898074677126143930382001888405112807107089459671942779983131745921587566299912750239103318355810424636311901015885248987463218869382973283296779367938749240044484908642414992311930744395615809284993180437453940197628086314226632835575375455356750923257392090072607853923857668237916743720096335383459557744841311734129825213058536084104240680041822583979231007742813637503956766436686336583931347935973481800041384414929956175156716080711841048887155235429780357439553119693243482813613263868475709853216100514690925982185664420875915715988643573844703305909552226647102718610902679882365071893676105876064289758065247216931403064917629349778413276954364034791610027727765613980638855407770520192974784719919238716326785932014437612433442914762179610376523237224473704199590145876975731968348506295414301306575938836391235013074893931666583813618191688805976753776023543766337714317273818545849173440554071776564493782419420851668926040653654606650897769325010525219204129490087768774034069866023700032730512766358031639008862019443921287195126967203977745757120466666746968556562376214035967504282007585893585925847373417610799240865138868134602571942175967901547426094803432849346026328769685955450543032960332242434746348005127308560481369565523100579051123802185196087426905044250429089702232570759926190360607100321219703911953031906104542510362436906851409844667011863082059766940439881917128603726732094065998480813474893602523663111702949937920334605552047107986526628362088710528169712484738220908828070191004940476605096681660994965293247841269437143179201446319197951026690743938860022649769405296677045233086887328078369667321950236155261225302441454460844773084468073374369049997895446112764083535601115001337989765094994746011159376565792837944508195732066700431182032150609487332844970037258369884077752126859545664629049371914777817422267069251540446712315950275633146439437179718989667438878974471910889667286803673115142257102799180438667721527839996780734804738520489479506700167740502454535838736076977481460739388189746893454278998167135340837641413897308169782536910309590656761965625094724242932365982666492947042439824559621207277619818785067033635887767792720860288453317321511116465660691282268310235424698229829300379679291267300296556807185605249030461610097142149229829505298547777846777729317172944215002170406197749518893241576986696936124978722487645261785771441988182044777806670108445916972260996371124368489451745768545455909301209779519426234140801962691431354929788154190229730162695370862580066401661255136747583650150089653870513721612416649716749976073524554933735970765177597884150803586459652287744458620994751111027900226348601078940333363777293485034527756225054547176239676508776806709112054076786690194583315307193414594943106412701418517410616549077388577490406166186556185500925788021982291326354635401376962299196198628281755238669299033331095263102526506035895039718218881452805701393704357424162953010048356273128033710768487487950067677168197278315958950381811400666145305730707166624840462691324022019209564229500037295640402185715192508440414849780591933042262321124679548791886212563061028804450416257602068225625666889247392997314945692384746001782922132842813657599367149531181811026158148268612572108578739824128359342846376204825499707847646066579589265170344646730733915445255976850373777438618081801298839033923217980616671096562392906721164732781360506283744147758606361206584399732976854179056476309084094082907426348759098872678786544862201793130579313804128610692367766225648807961719454847391320651380606370325829599656248354781454373573241183354367914288408448216135190931081588761792655818083705221319406211695144304984674715844665282474523952037528708468511753183779061785434476590718604353281019012207165010643750602348202685912589506171000214271644856719657720600224775656924340359201129534103499126737594679868779576567363005184224141996554376237604326956919638198724130712655011069021487756267219369409196118402022689464137679469001134056107547834639765308986710691493835644367849979780010657722605644021768553361457725987580049523576911791792894798965897103126241848771160522807620757559478913949113585763731366891708806054648738382292345631326057978300448899912751742193414414071694521628612118224931293348252143050412651016597542172329246713867754220460375649317074551156582963699990923638367693884723168546245297573071935041874013365111143788177433786295187604845549634821545855276234603016314590946812629270267638761058461036359364922495421250406853923235456503439931390765821522196415996381979366679191700286372615292128507884352373759968764043115526636511153412556613352607467450559397663812659648931182524570450136030873306543835409822442336123057722833714181589456384339482824538113755873665612146910390125894233298049916569088021852320082899495289992528456160848089466913899093499914266171669418513296618274657565576098780726933645768925460651361257396005873582174289742001563937993810034875603031790348982402731208487413619634807167464435477293226722434914656702763584878762392993476723701189474636571958628433081965269635537154549394717926206875226039905493372703461768402386834864541973118755311590820207443376832740175099726911734378165791040338755194597284478300092659018245849941610213166892005058091639467219512586279158999502307731888683247721507905582009207138683489217894483944970605237450013952146185088778629810156212892844566694678006251563138870013757751864948548648065535443410521316325728331778935988084394647131921614931524831799235439429364225884867941932160950974032350324423985976045917998921139138517265153653767427988681632637254659081595017979259656641370634457954798466940824544835333975341891052022590895472948104302133244637360683224781596589554468139895852948133337660973856086620326175694120005875979189773182593997888175106873696950845612145194270301531825502508928911146478257970770964068786373988411445432563699587057048398497256414774009355870025893976739544138355852398143333578211713901098959330421391610912860199553312934840455359519621474026103726526205439274775490310299229700621448253912273394343760507152617402147100440157011912235435746324765289110835411614391241952354068518204296809919035557667544297294403328398248462815813663079429896787864272371855777451863041238064424207303729512298635586827418895677552076245533970180306688822156574962281317568100150816415367372231005706403595781697531546368523046927561075804659626814794346752305034698007070770034537825188511138632133333196569678343411139395551057979309256485283639044053780824634682705568713806823832887658605520266990226860213376236441550331260976202932203732250175378311320367238817312645229828017783724069830704707924135556105718350778127177098871815009629839646277655586567568314336037115699701530114604067693865108381249957133990512020052700722940172507744118908925138863474220751991896166690443435614027371074802210697048379656978326377682022657084883428423441700446244096198317709153488998898028218457520586286818938648253882037146226713546900340293169113367565616493979800103556542183744972647040451547365620723292101795257774653386341558487505655107288866995967760925671442643855116949722162558894988659899247412814325451452805687587719770928249266396899392792810840539802119647242946091597000656798682299597702465695361006336084575971691802913772481807238062297402342286655393143421720180687369601501873820517887243771843314868393784115903923730911932547222321354085467849811812248270473136606520031771681701629407356024933917667884538606791415477598376991071185775480228415041582851372767071067157385312380690855136193871948132545111989938828815715573404195104384339597689734260818098913520327348195553682470037301606433949215841964819678828344940412014159877791117865479874597075884751285231414178277482896754102001057306439028645152410345877487936841570276407979027364693752652047043571414267962219601224107724307967049988179222131482894862145512617630210672251657229172379597903305769488678761115442531386277619061481274593435567134088675384783451227540605497044882751787227081909728662425004519362363445136935801598338877058388392407911928706122229115817270335622762230366990995321377048785738318272833487376451871212211450774972525345813799504759011379482439126050134891004000390514572933328370487595972328691226598337566284986285339779517328637927233893260196492257162046447193101995641426729089285853410845670788727494511410643526859049259640748208743059815728235389542216469244847889074710129286616989702566562666918353423764677466226693198738176119710939346239416692530099018109664319387572734367216337139525778429798339049003008807538827536748814885963216421672961880321749985045124720121074366569159350478529438646345152943309076441146444816204837639456858803863029567435361487501285865863727828193278121379441880577392168680628451561426645011568912114211165304066702535240565061498320751544481798737783316224785241134871816618932893238789185190942169503156261095853620092851967693736520217739330179774572034444314039844937816288552883545593862848686124290619402268049876374748897498989253883296491731689776010273162718192761818037659618822122417266346764080190121030058824626636740393426242037398918263149502532733752564808380994689973418482701853775769163678527016165384392680274810756828269729140307705137925682447793768020599258980896396805520149874356051012240289950871045947298339733106486062335892459256871588550280492474116730428302605913014500412639354436680321460593694276768623413132053121597798298593036167533526981922170979952009380720158348969478980187389341323279020019565848846860105073541978111553495661993744976483678626827463818800805945999204054359744646608878118131049009065725063597842722977756186425391078508865087792595515137787865685979425161765787447311676810001566396012438124150839215875788897751588281293257957908762782554753445210310447127354455481978009415328358725186156663194856195362247360732641273808858130526677391651343401171553129814629002273160483208791147634767930700913748714046231421970161167285301841608476916552716374317300351825361515460703202386879433298731160305336207433212002705258167137485933732342100335558856463589431963429678000098369396890379548967189920362151007947979952091414167035461916005910654285169284424807972455495025236565430814569325255969209349284326383990385941457078007324623235054397993597435154796993005337158080882919887417412205466060060454426582728413874741283615946685326352862137438202035545919264096129370801193010416975112992044477304790410166958184609796364182296935787751605868185419154765360067314104995089944484471684674223531590288585205195851745332728086724327769467996249588079172781103620168097409087338572226862542711186434423366027886212883358392459306803722438972329328340126811807317754866199072655095547501884341644866468314566286941277975675419511301609005937535749134432374777284838720646810122170918460052364428847372536623681293453615663555625699159092670411965625058115046616419991763337413361556216886019947659313145077829880733983215794187440041120334450105831337468837618915022937688458845477397390372306213449122566844225330283485670522951230839845049998617755641825177084878282802257199817317898027875204961567470438933314556178492883840855547342930750638694676911566927479885441418286898769975288173464010034756129996235133653393803831318431908171831730814061525116169304920119733666887542390741026686932173344087281330053354989749482385040038804556142302460108884071644498378044138179641400264490061529153710234836505834032411970000799183914606537129481412334780531842720045353367007979467586563848064474472780371495567923548706553564078445483587926039004049119231939021900291072148002024374152555007148106903117690719930837837537799477321584335417815841292543291700593939039717396695694595202161463370777349053075498614546260025587755314378233624113550354364713499230169354103753541558869696772226248043416484485854426485995437349050369264787202915523397622210997736762077648432171738467017106159055543782908554573048852592282708760554284412171194492241694387831532234619577464695039304682445591930125365739583201191160840679817643787948979426066171401350282057463356443142480489915045727479590921731685013044050614475967747404924924563100539093927709996441135790804701451186118076860262009228795797548624862556170965627853076261588104420929908025105032781251656390684022225004717517355102390271318413526611999253021691903109640876646048141661375319841531731218323286472000911026630171768499165116747712030635568624355905746401434445087359664753522440247501908075803287070617094461311335830582370594514813817844106254580236715280488852293446750936163833972944518026765232032222438536192359209435097839333188844172610874288026150503464697634170916087745045656573548852474117034581093316917772432243622638715381292438232315325472342549051195787094742249941962608235790108909697894003672269235052219943209990037924265004348527897787528498423688347281070957512836808614567968415790823213945197692898694616570832464973396160091664553539185277921883004287624854690652652813293767289902254513405788070427767883028487975507869338215300825877197127894286110106140403787533857262599642820717506902639217027522763172695130803570607429284568937812888643736356714684613126854053591435660957870818208714454994497177620210009622322895688505988550625120522473809889389578292730573576384766060826841270130358439122807052510253285836136235117871983584847955794810450416597103032419934322500972786090595271879814275139283006225446387412282828544832873229026464045268398251338569068316188801849156721260434341839216451291367805925164403766877383353204968802646859833277857996153048119270003782718293676586679766819569096059209667433125171424407026286815700832634460464319927411829942544080602637458019436812918563186527015191006477727007789021613448510321160271805890175861416384484094913263927992440492259015084037927316406843588104316117214537766235509114162073977685373553562679407204913579765627710671352784922778363678386033698220938128824036337524994630806513181198904892713160749296462758634137685651753805392627423136078688655386257337645873528279520460743731848550927178007357982881819158505552708825521549655248973813712899533195865449251485378693370527501322565332904184761452299471568122115545949496971800241608724473595996444444772659598199382760567868481339146140244234349419194041987703299470334399883009560064255431452460329189973715813826689709244429958595998879749779233595459548423347161536190331065384275203308870981760753399280083596073033595209915213112552941045987631238208178352200598929355667644186744210794249449173585464912177775164717747793088070928417585124975431423457382537817885493612157575747215807570870574999949831353866133902097578171303148783645007912972458911960134173144556699206237664822723053458580230668766495391140454108370213296248647327446351047112670552253120706727144842739017584774015824572871879101931574699181040732519789051866270251982295270618404043838390410264099663424561342697479829093105897384573267726141276108548453580703450874040832820957122560844080470193215741297056270770341750214298392258278415010861259697449515723257311043118191446953003954385570650528345428933265683602669621963708517294341176199678109639236058593324437163036713116478032106716254996760228253773296599764306553007690417247548568860988270319329461021438385709978061382452710668257188857833765289929358602718441929050150342717224127773620780443943101392658065520333995993411288168592774795092083556510158142162130528642174231783029677948269902335605604347009296458681469477842084498970081188354813402122362307584462115069858014986138074616420790895601038645424854387620274698558102229561228701593633972975925703715817172871483860938305828412309755253569283117803178092652099966195224217334766927763545404781683795097295080893414730773230071488918095095157841783998525707758860301000460383966521922659980915303379394668263649461410789966318899336628918135605425134496011091221644496415169612987142024233095358505544622151225306164935642959166735128926366167498222472378739953773706184076295673401074664784013432337239649896926127899163423948694417401873154260801604800779079072830612449458948780786640936271166863287702486880119090918221148860272461122379588398843535031823145208964356039751890834101737816119831721806266137314635608525043216661191923246573512838606959449364610906715759664790700373595245446049893940378093579955563464139678321753719633376253267218213644004441389088407878533732870531360297423849571354497027377533991497267301369067494287258596143517360980125363364027254383681528107709126734555228862202403049152146989785941954279445258945629438202308630980615992799847413947894281927465321655677566313746477324594480340988390302109603130526115263188722588962621810789425843106481797896628990766471150593521663957691053138834036271983305884041277631641919801570374255164559756369766498152398422526749438970593593262214833607589748625263815313398858234492319369352621578856071208535085208697297499690824722169232590293048105898054600366273853183171805276024343584961217376135028008891378345992591475598992626298494278558617902032326483176587234059403391623621005983042041547331505973619242800741171237138077656649386161019673573583098324838658426214912772055091182233449646711791405742783158196950974001207055918961970259851603176345214890918346267627497716220769097131902643487754322416484380151918782005315312619216293977391395784620953150455929580273711571348529625902227070230987995319957282799591919365758048458454905381107295862110489904147411954202502411548720128162682410474646633176519943857787552096611305214428892096443488177607220196290758820046660845507082772493667108381094304535655678975465796544518490802357071801782031276283904225664914348750617448762581087927753677347869479751593664467566859573159981465662589676988228098473397255287200447874561929510977770165215373557908628979769236138811319859569828539867199177728400991210910678203365289303403204978708422665725155152709631198430927281167546583378651870083665957167487840549257100892449403807421199353447504872634037479191932787311207700784387236887721823674339134150364740561870030466191306005103315202004017254131032279319408488992694616228358692332179583610707534919738570506188999412128816285100245285546506687684208275363461847146188733076294872241025717812473368728722064498994625264953625223732009548470344267529836337323016189452985937412613104212271617138499959721295034768701218604636776025548294731416110641839755642572712603240689864284297178066781698346137527137625028939333479886688680467699335869236171329455629616837320333800191540006844776241915340322473433105338843548868138882848427283240701618993023529740127406952436619138928057552226995837332864267616732033810636914251819746368340991310100046326383109855368752106813808217243786870602407605804996965403993966395055477768895261991910323026817998185507895905702634358776063577293055021899320076742904769576598055275039175557341322645707916012302296213913129709278535974599849805793031422412260422875610393820989079006554600106218896468823924322802865767555492264643663637260890647461600233838189453517160330252317527422595601781083273097029469331153872708954128648852895196590403611126280864215376392585241465900435768131440937176905526808828038863676383147805547961605295034814533354561395675215626886797093631829238101106416637135571971394108128876058590141513133420651415658452137120082967623201399036167946395179264983158168616566525231237694552264926027576571772606324586775851053276155546568248006117159893775249476998126982747245459053666577569908480665658961508669409420948592183438611679607298117235706061011536170906109087508975412692454221625771155525862161673054717515305180274173318268791286324568059359715141600076005049315195425811506796997068212269559975102482491930654397111758635922925175626840724765934859039350568001991795884556946203649172749766674726199835206345413514457527979892282437892711964030588339004746825341980056856442576061643863035463683815710797896643541309845019854648710840001545515796959987026971049838667022792999599051067820159435905640059947677147121236144146097516103315243574927445769865222514153052658479927553151306942622821222606793467453470609269200911697364546791132810631670925547963677960749869048790513508534996102575961889281497830710352265403518585992084584835792048425641821516569707862596682056379384405227674572044213312426268361838357369135107172325597874677369395840217254115182512886555454141490737847025154752064238830266194655320625063844214974903301050523776611858339559775913255919176960164958235149540712180440814262999961298665679651989461945635382550222542871774316223604827414889420187383782910955342037265258876857746018585833599657796309400410129241306172024180507677393470492251937540701377476449761357195954607249846385274898187986421981455291723101285621496893945659641341722445258596075158997715891063172507736844686925376107274578590333891680160409138827343526168295530368271631263400190093769807318381452914793831453778188319908488061469601888752513593776452408713704428364695711359090261627825720929015700513643730613347269991666278810767891925832844117401164204889180335173587369997724044997106217542234163392598641170445808619463881920768492075344023182278901990232616268650711193635129083885405362139497195515566606615351946623966916977033531265122990063268035535550784692644400733317985353110533064717789095459905202846620820629566936002525314689338718448033192177422621146690719822063148751995707434759241608883202417863328998786875337137588871861673802218033255134711575430027707843213927025189623934617508253415844968519235291982005005784086234615890620168078165143073359970908470685800839880380947802736435009702618848036411383229136333457170431407246375483739779545152077086739921982092102242640014261785057344616618489171735151973373515951382036271606715667515875485747858797757625316707170574552439312662934430204476015317622855711088038061675624223165600772512940980811703134225623702676740382660669467838407743142910537318439762926764453219668524694508874745129440734112371753815482425273408876850350339170381684888081016745717025968168640705292857938882051196754047450946887619615923711933167043310225910060970326154529431017324809656070217762424755628825084151395607493002810470994515212554474135754475392472319125458752280849281319878063508086461721128504006793127927925497451985370992935915241948142379068505629213814988819345227246153056300835335673433390821219918521976687893564478311664655623713210837851306514362491335718487449886678891467522926843183558960801344604330865261841579668890633015603183821680266165723290612173063018709108791423262110887339559517530686056776804156961938484876569257537315034747210611018911049510897108552893568951712126811810950996454051526733395700086607517500258050625396286344207196743144836665339831640866104466334537247926676905461625428972422468391071397660517933334274950421910842818483042369492479708467640600427200861044798076813941144712799011880841023300674141510172553123872629643294852098589461752981150253914532295671520060368498450249163211213779110329942871788075357526366320074020381477148145473004043121531441788813338019975090817618805944937319095624504236213706570752209731793824478888833373137776777446905439674004968279221697553607075125269169294752310950005939196735664420492672171000895382908062572563756409311200193001617263367791657326307889507279943317596998428072405040681067168053212734041010736944811438830159905223214653403746573144714401293162033853594633442156080084690527817517603911398981732440139953146249122240912650610747882004788371719266443391006481633536227538054437369779415885195443804083144011481590965518840810569986636488417171272420719921314439444145562462729257722086044215300293194622628010567946438188925291374427078674593606808870602897946349948761763138419748504507226702147857322321143238793757332947508418945755608187271529001915122382920131084080422469421637685979680871786529206365393909591716917246510589359894597675115601187054011977125961263141369312929112394129040098800538273651077369681926016537432565920723529111294613903485004594642620601859242772012025507367771849080089748083023340416316273785578444617578788346005100367025006053065675733667395271429729704790416882996721488558915216601867387984043505200581564303520632944089869566358657533486413439825730165026517165237277736295966369278265397702742159158881818073836264334579682850169861291681879176399416311148320311962172101591035153166455060372162297334496652343490577812962397633467620057904437895785383499509986097080780939119024903422009636938490847760519666458247015442163721230875480727834862850602793813771896859555716471350772510139689566600599198977502287843689672059129476658926258713513993661374774165966492010401344433142435666527264730724456526112564277897381984841165436234381828362726098356325894477681956051771007634080318966482540538330848722811330627387607292313790378799141620793439151067194001288372904357138365954542365920233860746468724680207362777076920622966141853741568069797372033491988269893265980963688934193699413422353142230034554354080668681164379792409095602975840589561377520298309521003116972990744737656988313502798106545737226060378393166043728687563150086849002008113497532345424889966998258705364774856497292342763528453966167853978153907394699238757901182090785963712485334762741836161232455447261027392498701933974599420877800953113687009917353579718338772015512624793191958717047567110138990510840491153755277540447472038347564851844486650821436149086695131610776921974322963588609367447342761891126437599743557751496526860753980784792212316272847871194592859457146110927164885469231381427466931223159555303553869298656151861762154083427020008275200113665481286648076278215834806225697170612066953455028726808018578794328250406906993452296483516555972622452145004370656499663376049146614031262418971769681183116819684674500939246647317442389212154758657889142972525515322548534702936836764997963859634528857746604896921452639882829039928147276075988769928627449278567138208937023512034620313982154317924404008742326311653402300964415458830948301863511440856311082116095341774643834815378903303290815038408797458766127757302667474798732882838370314348969509932411359322079036558840340606224403162362238463345909371049779014429194522998003755109631808820646954615905418385458737734800717591215053230660490001512100330584219324589777545453049887772098780483203177870460349070375279693623311150595316061175178565612330447853164306103825994646259583361814591916507418080346143121153797831739413378171092878585020910265478079112526700034799436916030119791457149633994298288783958460300737780029334255670583685540654451648005651907361968294652859698379478237946165235026953734826501703702041739444389815364338634347157988755981653962323747996493447687330042520631542310758415114488462362582816695418946177390179803250075453780157142670121903976585222271462923718390613689329847417969408569032779433817919703315087731358901999905139454840464428732578624659695276618934423986584527381687958274925521897342377051430501697106903706917207361006474920234968256535483165714173793533422003022489801124995246327430728664996141759781843707406222742694250878894775803233877481117772576462053741456631715491559246735250133080726326153732393332672123453311871392221892365815393258642852923257482257191354744832330487148091449269704500473706726215770550372916703673572436043116121584759683340209961217248430060941478340827917235091121001658393066947287881804560227314191102031189954112188235351200012951831206980457511378191070750374418484301169066126906187218681583741283708759021093809672028796761268277842750933194810407571676711408802619491387061917184417982714921719115289477087015624132371744912769314383572034902748238766454665303350351774600699393077847207744298568348810888320399096727201393666440155427984926480517759231576014266817660429463474037719062252023358966121434858059410762596469065692186554447135150802138998761736321143752966445025323877938662173465608373966747968490869220858496775452330521602506233056026806778305421435502346418325564948242894992861025338112726532195461428439224101328812710242938158229001321142165655999127834533655479960151270213163007027372857020144630992914447388583631679128151431200932640379435935216515255881145848270684706904322006390132270309857326274015899325537568893969325836456373531147355503446558043613758555598471631952208850872750936696900064610274916675329346052802112249636763696655031660709703601140297508488031986252147733605462530578208891430809763602721002149186889184901666534133691338155052191937348053509275565855223054770198717592945326310656873061432006369468885870835257826467968134299223369851031330930056302109248088945668991447084086992525151652340267017191065279987893423707843935670837755622085776369931728931850097403761621367283400857759885817422119357802011649322254117707909054719780079557768931325254144229099850054580900177496323984215528015434665653181984164226087270904070583181863726786947188451586936483986191825237629546441325154502237597092495212336586524203238111436989878403717864406753158000909559386186247951396216644691401560009868800893305990800557174982135135330404783683436768270921865638571350461552372903042661181451973377654314784427290965296757610528604387262835712744620237264808766467731425075348139815547782944037698104372010232266098412408218824659918540163854694601417662396098133115791614758014061212106563506263025016382543150148765136569194447605081156658906768358477472282273287856559302142371318563254243534474720775998841961760791583515440605556648025106566439593740007418209209070436905980507633241224856392386652421146994653703766614225263237081451695439395011515582491203583789976664297375369815163827286926303147109638479341649880296292468654516670414859254481264611111334284627924583212898281209513035700540431460216695421123367366915213135347932384106940883458373815306753229980069359038236231627337560054822301042849106934538212804269578957286805677544993745602648866146778245202423034590224958598210648304809580435746161197858112251478187160830576251818837372365928028456182044201166805272747674763909383937317610719808670568705654882776481052243259313141334849132701561938952458873545361180381546815267715726797000342317214857127210596740615097933288189511273113970150157340213740442828302258534629172503463584381140083477111583375682925639324639046148176120676398667758343598914226484522136832534230162269701163168994023827608243696195052741764556764181254021432222093075068559467841691344060144943158713580689556371664174772886642193407807917088779754620711108777559029726476952298098802237946377307181016623262782235054450395829304305964969910703261256270043723384607176682688418111782440302304415117424455516408782564268445334970377326628333328897172020588342662905543166181111985411815624837227275010141441816972563278831764968117716042639307549991085482422971248360124326932035319890781573273934616591309282245850196984325937212385426382462205624742402098448098370848992716385667019688464964848824363906323982112846855179330760760135964032119345561725961398384236681883283320459727864729748429126030300999123835960011417770999083311908476939865375928379837526450292299108043496512722560131068069240612166609644364124252066227525792745634514725001511135830554025506426841565827566165345784639022378768461532085336507910382656718401799102688948550330915152119319860214496227076450492435229496566761232944589697660160800950339033451007934637083324049710816496094689401035365283765933524858078128194717731988657851297890581471225715170387657516064841775630473065461565309806579728956008363651855291757430726208493242665296343895317615481737517754819920966932013316416955693266188812496323320792264182061207533360028159565089587321291674339425462552559792717882112405805055078314350902064594095705330542352157205409626958130913931931256496910654293535123678898196377831311572509008906855629381602103620958025605254109068534191437457341674345068129930738065403123553065777107107824774338748037562016761254141653463849264131973405056568058631512158810158986879398751268955892970799557476253016936313299991103433670884381792607442265666292704274406798774989841196538803085074208872332393550828305617072440380994619024875105778785045184803857097143033486164140981944390731973767122329801049052291241021810969520342413620126497934929058881368015419523005449129426774227580119899037696466178280496992524563953563947186964092346217707185870040156239293468531467513098379386080163221147908911025614247980930478991056051579905122332263789615955884109881506067452025193262800066383593476620714893702612043864703433645954333363261288117235843288072720590650651586076637932142350491341592347134637799197854854728518077351967087146921847852020117866288832500871133507861018996009727880770797573045281702793739812321210625670329638978450405700566709787026392385813804524969134581430905842619127693281102412727725906783303971880834294319612366339495243101376830270948566480799189362651911262117606195853202155299391750446735307236196252263786403259280786103307843834388940290915924000715892551318502850773678536877865767771094276978273576735458219797180259911613916129456085890264778626085268344759771752050318238839848857786226601916945464637673863167488667709452219937104325833535129339306778414992057253838963400834151265431204555172337483976430272341438078758464018027573984958557161125272353094461446519180154141349841935963896734408623631076206212593856308837317993061025538803112658072830933942016365448902492364536978276804824631684718008948866552628220055104552396829368973762325556650775600872371306099401835927033885841550755840467804086306112046546989817729302507084142747608296145897220347462286243806199995183081981294835964746119067445964633083452660288939236255157592306323332245104338426938821889024356340480885093996685336331463783546699970399079753215177952884081152551470180481659428485078762203444663677605680939732790823069888575042199264243521171703903217908515150391126911055720807559200552637169442716820498612625585665631450312487442387457974153941313721710215959113604916594548566020059262491841931709192132394518443118721001385337313703124844734544465487355856216027151119228320511677019736878602519791819011856891977689410578046923039518626810209377575356284583468888043668583025904226280082044021424267039555703097264433135972987389753291534983812538574141249780410560238704828608972666934536999852300555575229961315485105365945329138094555012866146844764443771900003253940246253095076653826239894858851057184022023220725879018407632939282741570438018968158127317391514736433364836456184950620781709430756469459905003768128740371722151466340680839913165355193480168890212839138614364197394877873918759513177133285738101130157724846118760859500253884757983055217761716865049187965780682866048687958455252238504951045734185382278928833355116025360344306173600541173189207672291362022351997329866032545921499576485237674120129483379366979724527629960065998412203236482136491517477100470125905096450887731625887963958418543826041769336598845545451943022998754692801263423688135942821803860316890432750771530288559822726189571470489004613301726908185525655056985445952706570953518075459386351527492384895259851109298432728432665136339800340295817381282004662413875509658308029470793765414988460501385530405783749325535698115752519807472187455247736689266528723550653732854909648019364644498380409427377802408943732775323315585770699550915684003915927089306369528439197629603091167438868567862273643534847658822895219405053288148806668125007012319330320764860906208822484539964631121913262589755624357084128154377969991159594331838404932947092298848333939291682309873901902825528804891150794112174460039888596204287756344187877229906229986039735008643191394147425199290885205353668153775757908321109768562178878111309452565651733828702732742293828240522175050708020489075948953021871170562245410444008842761835851433801449629319709173122184612121435602967061531183280130435776331251340305306786518433958736957429550520569665458436713876040887669838846582657402520203995745284135145524746260811980057503462220715200964598975745486242737755571325084463601860804797527825595337958046308814672545327037098476713358785732707912002286754971238014547499857530900951419590370812476881192327639872264437021592287559132602455722104967092473058365857603747783236986547716099560294724006253061311154372913583625789745147682839983602444048118371202718794843922592678776974091287025238477905723219583793164873126444881632143618296960337546320371192250013657133734638311486167254772059486462778398985299249714311654455741304607011491916843922696988096939454098659459811188279591899595018531962774690121588158332877657946168590314880881665573464751210264001497690124721678366315449080647462841973758573658346267004769433455187147982646852679547050892358579446415489883047830066291719403552567468882487636186791417551973650201723946601971064743437572571995326702350852196210551768598985960597417927502966161218581465258919100415480790850382369000251000005435955791531418045759209464540723800262018713098116651706175432396960045365501546158824858218051833384918917269437672584744152968843572247103299603889128045821669822580616049016898783668979443587696915776664570608039062996846549333847431180682922522220053677997029293287537541708019828002995027613922599571840194294085228128644259809673393935753832866265504925780629270418264586212602021781133667714760832599536495278767486555659080034777272735597513387269601721543905315674480271304681794310688267014516035718243063408828237964612935522279514219627412256295978773157965518295826820094531998419575086161920792060870045607058909675214558130264424638463337448785822076226314786541019674917616141634845909961811700513155732737586492423804376210586402067434208453767153659385093768718177386997495681150640108805199067380010997082268595862650624315134216109758376422504210085886124310355857669948674725665352483706684670239703232112282084559361744731142926136152861601068595028299536223693491583047633309490169001449818539050252051923534574976966261041863061923656736095899942200660243276662973910912182109044086891789725567875179827703320261540611608092947876551699821322721620138916396270329484321785614134588497468586052061247640058720543205200504991999115302767340314592467331303258082406605416685159132866700458099548072512342203053716491437905875943844599741811227506554795146592024802811298784713879499063939688646533980343902977092477414194474042152281216688299224208337666561023008030189596673531821653723947044249203738739302191138299608478027470179321224104340528730969651570173190106002068061883529340614925511854980252650671904821471519347267480718539962084254636189552728219406725065092614620765522234938560028678332983230582068344068222525086299712753423763744761952970898972774781836990594590962051934518248390033242141491288428599561769452107406944817014334758435319893952067528205679500311891570988867107036295018884290363545078169317799465403849933542182349181225722655600092808242769208388576897786157405682181927571248705619087890307301957304769729709765662979378689186584434420632626917296120835540594892523992642050270933460939246297615347052632383677531563025661321878346331954465190726469650987924426495086483390874941473254999401264659552320258743626089715534777140275661374615111631057650717989454428045053865925396217523461099836000378887726591948282787053789985387578716136182399735661718115976414486743782634975851049905610043556014280987477070096851143979566590326017939961946711511012571635002772383982578870859799723221303990627925974335525374310098497615814245257699744860651071619058090832586747787531229495299632069122654450556443396608553400905775556231213218196820681853066105793467298658312542561153384770717616403230794024849350097277425427795866642283390713148173532715143578517265779934610364980753649096850326824798911966085884036127274456606695850431968261662677665174399038816161129088246849740383164268315789236139577580050809338922433325325147482111884091001771334160134798486265455665345527809754097791385870737299676288570252147412431875261707863748887875294326197951947324689742747381846298070733696856138375162391746049829245640533164453796770161200823226570426775690946181282802088814932134184687101075550163672588353734336829912082960534314087856016458761040124153371124687325341933976999117577609410828703781918052834279267262010301609385921453958172897216365933315856786696466174141837855988516290554150724382769820232170518218279520292877618658183442688189769845933140421739336989174794054577639027791593896317838347668250568544731843091035194392544623202491598968638622368948915211201574010230983304539765713006623448419161767719385983977603212424536783259102895445250216719537794162002898625962390565871039081957491557468439752117408297481902449564254632576673334069145360883010989856575268625506795212123190159125655989234355747277834083697374371793863739855597000757490820498159892045411345570827995523659061904015888731589494108507693767472425126369800002015378650295322570461949905349159102972757278949291022653934012056868884957482985186782122595765261887160692028895367956954676434272290830749273067869316036689981114588971491557442334375457354911170762426582084077624645785659986675009756525616310337005643925135203095742163063337613878390698641252426338573943062240667144547640287040473610401424507078101151430923904210244489200075502783990431473587862230041804975451706087335366686479889918440999983661847765055530373761233349394738339580532705261775905854569312583120611352364378513998708129764539111312465469603957644215612690992187767381581291240324933608415005602231978348808023257277506938855367968782980047434036740737117582241272836279304830480311389187355262242231595918245504555306450454912584751949215101253347310778434843682934154924844080145198329083130632878900821695014749082618773916574815308242904888720162404870225789119833845617144371052692293329109356098681764265352902487521574101780614466853808812961180281402121214411670167488426349961328191097262832641691384947926131807317998371072618585990125888255628826524498785956287071972140830779452817505286951558961262730239738477696217920313557187280436434523551783450975056272900302843935981019488340020860845688831729453477773707903058492385199159499799379776465862535360203475781950654745731515390283880049310043606357818111981905214026565682530004901226248008106565815907408035654807174831928873256006088731850097997308336254836810923045891819756970205024978727426426664758616315301852133944367080725177929248717354263886348854013181799650240816221577628176101359037452427231857552393391067014040620087179161095826253984792834479618272752822806367158647846463885073637195285190775180048332665595716085345877023677564584053664858480278686663061971158795554463378265858652206971940196684965209081703729182976916106699544676299519546240154448612854224717586309057845772983320118980302931476368196210330069568265714269688949323135442914433078613832393330997704978276810333520445494124401822193128802248062919243222944232437692166725533606381802320977424927926361328622951520919107756024192768419425124457434331239853534267865031863208602170548315561223595073643847859190644767871339840600867019637789627543279496289071995511839118101719983543779454151843795424191090841382201049107683158169659896963836960474015340809736229574885245725473822315434939358653655824407978535590094557313984809839899654951360023759800845226846890067233569720932259873420136462692267293900377939289785536956403233550300348879559966482505150979229101858550251918723349392206668171533144950966143204769225689096171669980348064083825223462896010810621065109721571716129073249359365804436191480754538044780789991671235845520915071960146436909097713224047192550098759826257510461450947707988092327616274969956513270635721686303459353012117932189060629257569105486659835797232437706295818848607714638121600948248429372577316792863396782871770157257467016794308827687099761545404423535835502664982371299752811244950421674276683688376485458481688316532887355737886929277597026328170844427169115965562226550758685632511022871350217409399416560568291150486519722758141032757141366177213910908794364191050440630109900860752425351533157158890825415081044110513175268807789036349233845810643954906768391182706686538874723017529172766593415759708324620461899664801636418393597365010993044261501370739693045029962010271702328763183724823622043707733966015176288783576429664010955851117401791494462257254997075586569132415920675119199927373564637130548887775269207486107207185748136048420729306996270614743789396971610192557727544816023582588565684749930243923701705166758128411393336765718684816641811937895557765826951761549995230406052878036632991979240055475038285379551991588458822280440582857253175895172118736404531121628754235026034110823944944075270463848939774342930181273993999181885352116471364988988625708786722205133602988480322407118991126752663218224099975567322907929938935645988737247924373853855555743364366763772410401861477992359510646964654156961095459738173271066196834214768064707355541718924120729708312532803688538783109002610865290246147634520888702440664627943273333016827710411600445047179684295798928291739457512978796380614838728975266390760454083005740876810660260076051307825985124435834970695649320975767880470907723480642213865641178109674014985532937024069284575729265108796201448296454181135516705238066627306603697228477728795352486374849645662711903322384418778901838526437394614400489708353215281609314787247517706188707476896899790415483484761993433367043297519688560739619052855403251324805675696420894206932739215142494533119351365793763075672963393478881809581698138613128531045494796331045791847257107264253392919746876937629889266121429137567030548405472432978501612032523648974293201130038786377397465455452703176954748757149347744174308321448344514693282424983289277943282820280762742764510860531319216020579695674406843706667368543681380471713278094263960684375812005066308188718572671391376269851736197229286922497547684910458029907783990994247302973719606374736976340586286277978747472152956033778941429037606830449186552769888138497350910337061452417989497520425539829520641377379451364562748809581695461400254279333101179045152717868111390688829726482796993127151631106118827769050646540747802055692042002841502671419191217090678563374185021726877235898526493143513564441707749873294869650550011787486092827168331074188355981086139318572413283524992518398398681001676845026688474182887992651460867282159167360370334076804392547919879037171929005900240805172347980901048333334643880370707748901083000297290142149793531238580382124212981510522426388064373765626868420928179002579326250155372350730875313402399485206651529584053027838248815363882379744043097752695838750697383595231469521018161818981531647815776446161771749600042707451555393852003986825238777361517125430313175387320773431354206340991420633236230818066077747862729486236675991696982651271570114317342303959128282330854625079015377652189600289245906077705280746678386206631717971397710819340737563819179248375753103675604991764356910893672386923669799292279041367619974603425463535311173359472764909132701357045170325838632976986499865663772922175944683648982972594520779550188811183612141313553498312526257606405899860508484059092578919636760014578652593536722804781503801530736878279523091669592792111350281225440083176646521045317549195069023406327965812397578096763891906076796852003091990983301702146414705665204038498201847666270895285299449162942044377263211939611552849385677780991205454914522664223916871462708702642443171713073127319466750819440185023989996161456433032421172993798285128685715488216440114388354900935943174021213364306814455431068954296104383622994691646716883834608221412192476939545407342006610244501473185606612340975519421123859221869185539294770984187865164050199116722050329194515667295524815887059066265423980425353204148867945901215142390734777354851757852802828262316011365868336882822375386316225875697576280841039426078248469802815698502869357972754177523597763126868427435385380273878367778929076239862313573197011868539559223941571723636832385939416748118816853457108361253913761430758971332806152154897173112999900328553222295007701768313935170556196724438980122441162634985106071733792390406641780107079197308049571496403396744639744618660368630603478722646128522352860266390442162461537956950163176099951152454347042355717921533385124752540374977528487314676562428565536924281926370737658383059637655377557157824137152201123008743294465985073685843644452758529646490957802724737447462118765045995649017731113020826938559212925922413955060906527026100442507672741889352356570020507649857062972297847437566357546230824869255234322702501548943050790349486777615579369956012769111507427081744029756709982510473061927337011233352100610456751478600172807291718248181219730393203054769983029897873686089419513825946319658052086083242454586212234841292477838738030421599131034132699627217131577057223874262183197136797789535671157566760712323970738502843168933004200185738285320702327843609625856124473830044822266760632163778890596499266678689812565504093648383552065019909748192043501296146559627280072872052930783454797236243440114225668276175772956997573968065524627740607187325268639416186869847010741743758547782180966445591378965267489442756126030455283721466897412142247416589438368278515595139909519915305757716954885969432091951914032483216850140078812763355712008410930433408957266934644198059580447016949460286904929788818546889164054927935621095526314238050689941309104057404356168515214451041218469192650376969670182673127130178840095670102972451193804480863192666932655829717907457026089439450393042122126075880468511835317682763195820323210680350956813190093710722022718768207076295022699280345975801933204667728825781175455089966771105531659772086736073069178587303917235698275562644988597124426739363661920517460014849751524518044422283151545318701731410998420645931363146190796921205021855477043754684323912117680252847169424682517945048608927086048369389015672138639663907530165274320637079522574918887257776992345361217388465303034800301632487455986864991887287405850346439377385098691189215801819023306594733099679168047079279340212951068434507624607310937610512104548369931325669735388566859176338166754990679457529286057633284623085925403551757435535484367598729793693761864785671582209700489052515793449835549528942235649338506288642104914405224865235017986193664831726055232184492472353880507555162797300830054030014217630702523731987768167530420248973495868082552683134117090922275917463941535425839500908146833372092408631000616179663309520416955468794950665083013123085253568469612444561926912120682455969164468135237147445744712344500763845181019491563446544468445965784948954868763345539810223356166419751492396821379837357888178054654328890092614943031287067226671749261300362660115846219441066287745394734171107476115162022240341188466432187421335016442863449340587490799538527416874065395086157010283487050566066689956265158487423987283961296171705646943250807835307681856367155546545724557553865105846857492008295227737020142568028602708539617915396985344306513524437380923239625586285883645364779959796339097437573518825054030717419927078199913610257845230408683216608556384895179499790381042435237969427338621123201500062553632957534328139910996865152787934142927660303644672518458916019757317062186941607232932429040421722379529782228796427593095261729458867077006174057520393229739570179526743110014722159472973908436588735753258920895625237700496659470705373742985006897037758621704012173316616039396537201685234216790472485263320728561183986415292261644124621601924441932931047470214599943747600113513919077486871344378156249823290811809420627486065497245369924444405437577310621198793303606035065572740645064206752263648560607659935940367272926576675787775922099946258939874049982625341396674613144684315618145666780434366482580058202940262194988388227834943408609287649055529243511770560379699378617726106796678867587943827152558284135607184042168284418984995668838876148213683719910334490811959151200365300356677220419514128211342095756205733464385092538107116090325740887951185987097052161532639189344670027082467641197145771131658590985102616434245192555197591350585553195410908731449398660958780987597343186792989644825871334450677075548484249239601221028033339187915211487330771073756202559613653047209977508906651663415928851422792915293121251289767379309420000224922411839525491054758495184539608154889359089346927551155907166103752653528875003995824175466613069266610731402872441188650203395944112533558940736323603295114889000449725797910858646217014771303077066445646149643924141974922929158757421192890773793862937017558902124704811125696183078445196976119640938510502150245517470594144953067638092926365266159549655539853443864665889935758815209320579513435534475509611026532398085643098107252103392661548614030016698740118026048670060460770215249738388705311779429776571128585279011161768094098529031526222139361962320458754803770869686061579862692952444311143511349503194092762521890729544256473725503055723977504805227344229743164320693227390318874301325941204999939776715574267028670579587321829636159424070844100556258703489394746980446498371736850576779725535265557189836995822463496328313382781642201356376327622181537860201917816297574451321043005730593703397820534286284928605790986099998739690795348558586316864036514826791620781581913509787300573125529843207408670191623458018903871176733488595990069404754700979203044062184194733262258162122016567149473962702589669234972349359263580892552402990789204023666723734838854357857382197628240054795062058386758699964956360289508919364855196183514953578846186395741878300841206991911828261510597067693427444847509934609966166812549821879074585764249361308708937321538140853136781249716773037670595669838070625769300461137250737298377077157492906917094167123592224189442210100933312491347364002951513591875560818173647213587168932155577881432645631106797643413621121486195250257561466733075695818294857168226658865429595223205184778202501401975607396901826351997566579416637101172400286820899309074268300636677162554786743543598321850538210727261316955704415756308133340996441373500675352339929755864299022437734393320711491413162871318871111265785138439947595294855560526244971460665181630041517576311702320578370859799764575589717464470338854873041139217948409822677677982775444273515888982088211436700905105372847504770633882524955947066428873624172086414085561228838057507989284865147673384642889931186851786450340165219028720466099414441058993489256537109176414003065987503175358907291927577402563225240409172152342598806833319713412553774013213253826812569795022846576541162023613757149556244736982781237370668005942241588417874506828085841319205533522673423018554192313421487630837573130229895369811967395962336752285949630368934207428377107357092308853608276138232536603439961023670052867900118508032479367301166496504233277774264759437513943242643792864314517461231153425253752425081440307823994907286182068669442288044449490586850699441016246209665167270573581838935424787233269174496217697399452584370244943737070618207495810221834351036764927441342380747369993517951024506029474665842576192498490654982570022484848948584090861874420985142544617876724928282506064519727650870130435594663189187670014188176408919435090679272169416450573482436484323783828401797826148255081118679701990162863414214763253776274177062854007718023824863297009153474611538002111591019310172823117941842132076489541242621254510352643556912356644419560017942976972406335204773428562207570440725375399341874626232860653384118574032496498076328410565382015069202632330487401326597186924130335776745817884562188559590242121864637083767391968700940682104701073360695497053061828178682472127819908177448861715862910306026636202699335376119301546635271203937880290430026999210117636724658021425872239472929117922352315960821899519059797169909090846788495197241242328743073166641444147502195305810906548156235348983278494614385771765458585326831363929671709007074317308973300511063875540734242461971232809551412619104041157631286883661699026914166721579392103801203411177262164845952898387109543444892694397982590676828372541168323781713581230616541666592581943220018407479875455967018012918270033309257549888883096432683977570204735249682549024806152361929080076545589736348029309471108497576031484441729871751493332968337754748333598260257179295340540435160807699188059020747551151949553585892720035967459034532922364105049888327268954879228200239996501776298146124474012351301198918406918471556883371038037679418488440303487412090361931987505670494543399856674810366184517213383982679470540336215912153207549893881924903765787221137160020909688256772072228967832779621385808705354671839251427041755473855249570525860937092283206641919670676951915410491861779918955727248029623430355330188632846961217157185359908884724785261027642917812825215345173007501956115951877433600807292524509508898056126835238434699684973427730370802481774331650960368096330456237069478435726019497766324954937037070928991036308734071210774079515949474244829110454189047636519179478849940334945378032913021647632120780136328220626046175004534287900700031891607920385744805216579181175912896584380957779083201042213953251151820494669319844225724985142230771513735717508542869732887282992963830683252426911644096542692428488818021842428697029755298941588214068075946968321588310956699286010691518937102698283388523721383609605122117353336755932550686347932237773782456919877046026204556357584465331545958261772103968355176850326990601535783645927975424113861979676899346440217132008136883306110614569519423405924203004447585052680198210043133746653751102983414788964310613823508539244401934268107166827550285504867334930586288858247802116029315616086848255506583756408620953052197325993298307886948058288939881995811597370431868839576051103094244798352061746617698820258630393686672722412764477612328597627811036857430294771652998061910713286522707020927663780493268016610452154666266859994837013750385102665024530926972807560096560947524016528827905611644345510221000174375423655788431379752811436486366403628318151408132575262280194190711519008254001110390153800762851499554095409852380059101073313235585819622886383799101953113802510933534606427218113942657128562887295707916511389358726285051055436542089185878854474909399749348180373001457984879165490117373271319921492699386409236238269558387903842311745847683649524804186546525676041844417134318272486331941997117558635014691240706321457176618742077332877696763050826239795748634271153983043484242967636352503885860748964345488349296244789407047747056910505005204191032272033140459078209333307387323970296891607350830840205047283721971468094355933510512710142874274326577357281977439829913091284485566299456153941981523397756830131251599741526791973177077230599919526518337285489139959685981090011329635980484725996886822406221385073537771724584216718633850816024031818153116905531404090370635859947284110645317550190543446589165706309047992058574988974656006547739481978326170213135189995945301061159941303074260599075696606954897803081025999468489541050579078799915090308264704127701968888802296834350193709331364751167637843573810211732252874288984060325839337239442277629148360327696952832021400480235596510382010531029489806006669115872039602808029715957783052022789478286056199955651890669296403719093323720698706346229870405511151609014065729562536767923872805688326332870794511984372759335114994246285292294628950296522932330520993384835825334557546383933887090197565362390002412475994446528033174540084781802860437999687666251177883864601855953331053510239431196800997593705598976163658374331286706557475643934572985540473704685140081955620811287681152838752736380468086744159782751190583377758256710084795385419055899847263258718016303894505041553224148793988800349625754982566044611982118726472530114753964365842718443676905830280063722495364949605103623887709956472958155760989629033109243489063099271320839082804811490170034997380590141689456640541244839001794258492976048563047577694188339583185106218111383869101047568980072218473320451345725188928194266161990065995912151659723351182404830089734530699508266443408894907339754197531935447933243108112573662798727947984168912576374478194261385827069974559162237122381059579453579545439051237619279553720479413463968070243913087478430158461095943954399941361712279984621624044658428079378690470173826188956801313566516431903326256570875009538473168932270851631647234371897380308451483394147822709003576860518081892388482874818108902299466884726052356686137724025133337859181197724556672801487148451148394636201458385316623970237675014636660853312268198368902550913132616562130309524363962713260701093514728694667905460296054267153361722375409627175301601950814084356381730780753956541649532306426393219392260179767430130347025000900610298723474687508748715943990063772081041254426404220187592434750769026217902412000781707905408525069620828748744414683522833454638813412383596145355618837284499457025838668920764088867143734987426418993588499695380189537991085301157870865812479836031849838389424351625275384361754108171703254195976336154836694499165043632192941621521022050984850385145026468724227916097802549056118812911676691578972057975752405955497783007551604935050659401105821862394137927837798253585654178122850507036779667811102526221807908318104188279104240748259076877783960644021483453814125200025943760477898464249505807298506482461201985541442482323072007355456461619947449207053869615447151963047039361124700928219167827780644110112075955178094984568264487978443341483406130656039950682673961574013104680511179340248473069661051513920720891088733932600408909523700514722650059576563570052593714559287147004260968067836197480507603517311058455962821853488397317799279179521518150122433125683413689113878996168551954808853797393128535026530530037176206679221619121641293395698303256744564470196785687207436386099109337622464361286858208128776586931645084918708840965845482332005994068793071864320012907775050508329377944659486113740089227755313449416003627845748110504065038390607216936066371186782647616402148823654035822701800147850899037710197754176790531241099252196869016944092639749265723880186327318130890167367099908539783266748469290920934932540858280142479347397630695259162063289910024830839633205625372372841309178033482441002775817567701050194036229613241573095556961696803495316311513115778508411463889755677297639308387185583583967321953779740574950253658551905077585143455023687383141035470629214393136077108386385718943184735193160367489802220814074496833559153669727533310413353977288231162557666685969408901528651108049556563583364880283852328771453088501296827845931472350131192026308773821573103188508709616194440860178616416758508855407796303151824121554674995678430456902627137093586079608738305463360355458688605300481307672683430892591369433142025366654217129707758366337420024849598325559118113672952785610286374565518971459667383579622960917997427390769771140626217122516969336337865182061173871067600984328127736889316973939669961007352324912563660511909087348603059608548639237268189269243554137951646278341955547279849209516721669530285588761781036362931443386277141775203199041574664497522536601778296581608274392877584579415257340792151982907541806442533974327433119894579593245419580187047385386402114554676474414710431190453023297304396712520222127322332589752493891746848225070193728948306015871535173674241428951870371572644220695516862467901299580671376760909921666782759068414532723609679896404333066536922438073141770093122882783599229726649991007056381457370448680854357671655190028228335748571474764049393004236421194486498080885007160418437359467851388319767950782526962773967995567300987342744922402662359486171010031474359319688192776101454035366388012751381875814322333609682438062342944976447566143102129256238454809235656452642438125740517116803692614663177101075788326062411801320915368910624758922088466859768683834848840962946607526612122209817146293839890967947528120839312948704526691066559080531321276361204690012899598338575107371291188794879612442417683588020418469266619925107313064851325275270656908304209005987614376658143795164602402837690509139405127169355634867085472961232450681553129254752172196030275200645949242808692049285895729879594322042154088395089498079839946386764862596833382993116311453795107720284007511907070871315417152041137180013975397522764977754101298620166661671254257409961436193888752021342304244538093001557632952211042149468390326810424768836405885185414341081910812310058937625818679492439408182755252788601829643851093177220592928448538757792174961502691916985957452640558042165324222919345901323765761216458882736814860765272304912751691212564429246111607886307812498920339203995862703151908619624695094375258905311901940718078283397854532616380801888265670905593835152656826931000593525868450423248201417475674364854315221019844257730881790946404055614166325781677735536087016204948504726362213727452655020602946060384100158026712002174228786611989527313675650128389093528204232419237039311007832109283195211705194046236246184452544141175879653784708905454103644544309718995669703617244203803753171986240687375902283220580708474301326788497078337275076820785323598009339345289045839873249423308206686828400028662804535141761988315750353013840352212109589190972212052169495176054538614174625260601873636852871194604274598829328604146201526133792998355050372628238695976605137190645665906571926134036744845793523731401339156994702343098534977669517942912237146929669163666613565599950843441554366595696305189805836168152189895811896015160387697222860921254123163769649212828892814650222498567847702884522359682906760692329783990685864140973501326885481446252498942332514194778132499408446437322437500673864968910488513881573605400651312682688786340047418314401558934588355988011000457826733588935422552273213341776375214010828017296619231248108307148816248696398040426455932704250235462559911253853442292487156769878119999759304483897430239086122740215839211032795313368173300075209304118313622640709777305413796372571988991181301010422011155173759676743513193403112938442301817419533976648058151484737048465217654814910873902234614451746946576496823675583180234621761530319139832877408239611985122782661437749916605997615783543106321102338816796977963804943286159150735589997294615484647661404333272267959111453830986382659783152711330670989041908517947321638857962630505200841685301424438326279527761814676537686527391417166814952054908286868864258795004872821421275197797080915336012118134621046930295519373506726212057110683038999574571277096819033273815687282575830240548263404281776973211674495360175602292604340889620448149692557196753510344284242179523912186118163501496559333690066837903264340905447316701949693508074341080966827657941346560063713858980858436439626241462003614068533119520226815823768792304610593826457128147358411249694807073461302113526850353819199219272714321122911464781908469379952974073384800087442826252131014826608172271413394725162660281029676749730115424155757168373746432116057576857249624729298357894088817686005676161539749835207295928071300719693166655588369938687221826259503489233568278283851749217167588691034072456602408138951239924714106082127171207158274019321583332260004471652205425457491557812272325377427406820355086977540992019288083452099981781741479877960174421417526857012137113007668137453258909536567474487489709845062123780682502048947066609451206516657926389105039808101321926584983893954293136457985546508596880587147259689965934463607573532268732534518608368008740269866451132908430185178283351249826359286516452254987344430502841891275817615329357649046505572598230122471609190468486308537041060971308941300678424815840339130440179328419890563866135522830939178391304574867364503496220556098670215150381315309599821113846563864926934033381929604118815426360039688444446624930299154866805320477507187678841305197783091105556743868977748088215101497351742319663935783662856235378212937930289767271412254211321744399648378617393770068066885246807695638863903787876946557359188981332210113106285975870679678392627786841169924792510494208568988709244258605542994805530516307332964215912985141314539300779552997853628750494380334391816768058026162689045769729826424300244006228083916083185674052901642978058750665972953588763413312568267111206701603009700882400260880703445509711632455588814360526975881953931095127766250080250144910719430965300474745796153546309116654974587140658345654124606700811108999689703856089099023406229376422239456830027636764045697906841676684094345912989352060873083901806772211689640225159781525272305324890537282948341743318098801703879990925617340286161344788864727186125177467496170932467748597217601540343466156039931524102942984122958585988419697375490241585666096986272138990224090331637680821158537000192591024082386034196347619351471047941301986251857262163474840480597802700318447703332882681998954889817209018452700214707997880801957501251471968386310831760966679727428101819132645528079671867054160443775565116570285876611368585170966908438602299232398068095485664021313204718222543088740678982369479566714362371339637384174823237057960835191886241648763063456332254027186338209530087663071062946038565737439947957627308618288137754791725825167079882873124557315685707724596406438335468828132285287292908487448341685170133773366474643357954039250766611750718384653591336743101635913664064380526252862797809207460160947373897420749916028368049580987314923295256340396420140816611593060486859989682482242740111964543832000962415280996276578977710351445624764000858246376054135751102935009093457835812588208005330749849638378894423240641258997866575268600284475779467940010801572144417990929107087499756596737092446116538096060788939290359830765806659018164810771977807962148301674132116703665642569638213996880295117753660934478237795001815316616324456043174246257174314484826805937290254505871624776739124936816666527667139432955487427562721826315619559973664239931193371246028536836613294919485225617458124238457111267120490218591836179541883934589344199326871801579703465307589853602695568812463406720477987065404943093714755940484679340043898612929643093443603960293689085150689748382490791828610148335249002369060175158676539092044448506156326774276213693003081673554678741615309292567847320257370520034357566648643772845656603407473087555341458632137983863555427416075272459170138204606502479904879767291487872345894003110979638542668253577930129796696502661344636755432893006574667752525488976949999852116221574933029619530632920249325424039931017400004955188120466502249041384500840602299927756709747621906227186036747923955298584916320532675729672860048733512825707090855914024006376347210167626711723802755833192864860178702898463196632586364625023523431032090551062503842566340376130025361601915959644445824786422858373921798064962050127985614355321134580062403846088712133604664092034838567665213571517159647920393813139179913663968994396683772569009354734893224647787940014089098760427578922500457133187930068720721571589625610896410892410970162628348242251798887815014658422824178680471955190956528642896193129288560678178648872098917768173579064580483861832240268074411463120288654220024796611363762702887585321972227792369797137501012975226063477137042682738863598312656507729556182247369123076998211286966471845243221928406522167122857656088511068701670380758626319349968728245615648632188226616684599782773947427265262644537869962647420116334884560140812542722556645472448823995356046537760741851613031469367336280594015934699315137445640011566048702574314475390357209991755208384547169672260440125375579749079955363238027653255266520283685398678508101906355390650783605660977990719262520631810085366800740626810070856009235435630779933088758588827812473118071292883536361616014188359073444503003032600941175768947004272918712227427388284642954423949360844272230038617125571931288248472077572824951840739015417137018385577155530333399963840825046951508302936509706019584728715867977382351234057285673166704445045206752261036653051375576376256698614261532604454634486402718384639747135186306787672259767612370739998972908010258821256186715689356497220853696524837852325163008697486466969758449070883595140985506668768509962490617941712404459493342240338423790190501514482620748246491023693344002986705563759013993591751819071685795652254653450939768319927450119383805098892481787490436938746847293082135275188297958790362448150614980816916612305305673407285627666410898345020233048970141583513219739196568162856579457989765626251654937873887636576629619948276108355615604266638444822676228084500433692828362682586578725854211184740734655015686762630958524888476167795458945117428814107301924956577268939385011939510284062505755193678132515876824065440727330920779008537576809058224920738450257634770823427005108039421426580845418793617211400077731048889735835356934164488965158246970099589966468583971990910111847939603742544428992816679135164896962309083270574682506235028901544331591131972111602563060520043111425977768609614195378515968577194333804034105745200564502639219569207620764226998682408909537773353241234847094925779172339494537363564297430253259824617767719220798154531504605785896934499738750088835021214459887705774758987513756475449518682890894345873758621112914806245713554627666538767342356611013359462044225803966085736873786537454578244579855142396900403371002999175381496328373760652528559517887957502615163228964053375350230354688933542655448563301232370508397518098957615030238774242303402180336148282492200310166012080962628324140628791291760365071384619680186163612207316205761121926016341989205162521347601426640595276872752856941042212270363381762333258560328667807915415245849470577776448494583761817468500231179407795850937332216122184258907416219979635383879792972415062789666368418028517656401219477264015722797957465471208053622604360674350244183346406433428555581559393378964321507865489153899135470341776992567189195863122136138438415919548078214362798900553541534287825873616266293009356156602459886310695121317430685340444851665125989320685033899018809781016172411825668922693384442242380366611906979028536614697339925693491629023173252900265057332917486495405358103562964656074344558665631924202675942375361332432588495959476924400327916814378542982811461724372219176627136788630948228479111719760542189865992477212677213941170750462073502705801210775644397857493024286293089190795656231873143954861401794360929825030376945076934647401010589497928969286525353105876804883471265052362479585025921335179646506555490327060218548560396786716042211787705265439957214666682790385734762230759534742933345582767647806513453773203057032869853766818357536214271892158696826415024466296833511226729919808160629378109393035991629690778957101695249670843248741340614941800850302572192129386720073322407393455079079056995929151681571893095079795721303687552094470514062446905464091969552502411450473195136305828379444103192235005079928297240832925548698167121233372680591604048369169132672060455967533445498623575339586384037000576445850864757184742057074859514394970963410218388492739745230667077751698295514623977234289346002802388645080460621917811220530223082978110818433278766920986138947255960254520958535775907064505798704252142113857351460632870482833070508471618450166507813594218887990804579934627320289812796431306207765819212805722671539157133600770759353185341935990475715686443705182254746890777111022392550096917217682038133420404881228958728033865408433514630824072729301117757093604970949797982073042094392873671519059709355853828426876535321998162685723578057974687662222736345097010283589240298103765741302849525501302814154910097145693731406334474236809261043592331049412614318175296587471354678907802272639997618970379395807766202623796835602491501724934945747893324478362676294722169523508416874927314314357436298326731847386394624410734443811978013170977260697790436228985008765908619762541719243689025258624991354064098229171091764406289910530173448201303372208937920372442232977521342485853048118235321168743610371531164370234357299732000194687668233940961567106811027889798792903677587128903371315639484599633223476221217591332925253172172215419002857106184799666790956268322805272750931954296122287838151986019692604006170933469381018704022670077320420040038448772617455640193851045465766905004040425357337428035892109213827306732167300613361699236952045018272414507165142210521472479784563680856097972468692984972589577780378850632274734462078778359408072512657377375454784860110401224228017549227276522625535174214605747681118681321644103396990311697576645039144874183645600463932055749570455754738797318142177972566752965181250849835462966137207556210370071740609120011603149342762146867508566859479093150806503610540079105370132245905112409557640890190789736105294750349593055470569433180160285062331033282946989453292650106625164686687376130206252580787309039629389163318666753494346872706123032721328994879271485145303600321043587761442920752826014082829055582672789591985813019371684158059307878116852566389292151584478118298966684877245981394210067974552679950412855711372891518765819710897668874525094935414833932197635132262445477205154203783155278207823318798067187300219907673576607988277696195545020352003435460208708923684346406451041989437054753596057227757168179351648349217063906475068723015365535562282661643545880025614766176492724687359032574006064780854866331878925066205584865130124689674338626874646542762471846144059257343406731914411279246416050443328633189935081628255186619929782047775194813171114419324079550068449732497229415045585319035506950784498606247932222936456150703062854087272789158044018491649003745161928253409199380185407551389473401965135619753731897953185636611877491922836616109796466289217076239770555083821397478910783259329686984805176899740258692532350827079649492973067846636637180657821051381323629031107065443775072134335207969547470115611841318750165894374722106722801484474089891480516783608342169016930862748214019888144543809651949334816612137103793479153614290468530108786904573033474767406148940569853023162676274677311721549194751233538741414012881181554546434042432380365280944700777977243550605028520590903372195887241901765062964945310829710290911133880456174509239158997678501786174754078502637411665382116058857280312781335876874774033716018304729071248367214645951881610509170252234435725059192892249908685457517151000827127552716832068925953344004665642715302042078262014551330422202768532321298489691480763659860371483415137561939168503708811773965541288887752302645812273317891733407568043651762092130450234466722717262885576300847310914012255672757155281166598243027113976952180338030523259634584570553838795270085579778971666870035808241274540341931372150453751900832083388962406460838274457832975582951333400789105058589191807538448779119788737443271144191798853762704074708613377745224806167356662071213221227273680761538274914053674628030620183853619948917743950194644198893732977697421105096001388055339312502443317866677526865917237345599327995079327052678487203470990739872005887659163444943740738787672839207615868618866857344443862207315940953219929683168311298780932169595913083309728074709466230386070150163276626048338368660475781772954636116331498874537264435603451982750473659918452447092515941777171070018098354399711180759508258769736352482497544294045389137987011002076296779944502437860274935530845343782330408721245112573490293034689321261295430190255704507606307428320022391211420698198559139176855850322728654253826530488683280872419959378085340851170902052262237892018222952044981318487857172075689561816546012172550435851843452027356058220063857472214175317491597372328858506743729096196941926729719718067476764716575961334055144381174937510373815107265000374156835379899788945838096973332365125834785757819188694366219993647793900416249888120983271186615741059558153579149298431952262780366833855816109341230936074853208034581589891239245098204920404705104723777876226054145006556395949579519329609734610737832495266131376058909599225847275096978077839286742021538623259732634602921089423693632838582024610095710912967301490602480681571036869156893794761382444757290600882777582542510641854579479462734010000637457172962770791637184416505091350810676099370230523641864496029560696069282085668982233889538199508959658213043634179593815204308025342131549110272109083206338981294858041802892883529686107182765610074953415213165550501341752927502851949806764882687853483821465725003962990060652863439256185425521178715840661370765689239091711384479326659335325909627411924657107905137104661705026999777177152673932116032758304416289141548285097692562424980784325257169358745203559607644697918220640097903645637869012686204366558839434290595958450120920297715779763587462677559978865851519519972168035822117862326962620811586463901620438971043429512183489435791415425257606328563975124833095926915276224251878685369376500493749485615804908056648804163347285769309271375828113649479351609657738825488961986993459380251248780461316737079842770562872673897056241766859289497885114576251280726465512796477499116135767934472483563051291070957773174525144244122207800765963613434778124720381519103499734414736059216836257062348692324508431762972259043503308089647764939012556006352432787943189384783407124960690898956453914760997844607732049971877125814781204380990024133880268941229443263425638916914869765090065383679450207233363978792129016823454611550259012827495174897912643452018457098858198752510430394607753571248442371203870048888840221512508452923750019518004823170396883976789489962585456186493045626082656022394045868488541407318213323290557039764288797080755843507658521795199021939851801702602524459539127179975236981223793101531285877248340464737639117599874038123136687635785016225149988453601192564705963953097447075976541657165015270675173637983660843856797983706695990758704471424615424603286323958957787217114866050021869485296060736284485968346401685620766688702980718148341407142979842430442131266097709811131492232905089363802054617009704945742399311739855051614945086267583749043468717756131560516340633261803231477966121303649706954346916853594103207300654540516369187562014156811414590785854207200156030427491180892405785740844989716130543274653584618615395156421667241455698929907336092224569164741020449212095411766740270246536806294469117809147630692205671908147318834550576796803863905955393750239725381962269101680752222730789263196687122536825541515753738402767461992856435384179930903596480885669879581652298315363971919764234600666976902406012938766914473820315041272542561190437527026505225585953270348890290907024335040405640880314417127598015258966806512639240369332299546321673256657869016113520248574922102632881338826844325324328012415476339373872313630992871464310123757162403017592124786060366415067126362381632999996820430941893024481473244786431797935982454806781589720159588400884825231289541582241293657769199178735686879541120637618458152901697306953064848277235441229236356792060327595108676458103017811944132785244285348616936566264036768622909467708122883274210504929198450130974758249250418412830331779548410941077093950852473054736018722277183029346145640821091752193614181413789837542456752248674949022089788673223354472237919841523388487594900978810690736882432114488800759716130083366127540452306000268384175505251601768577059394300204090649543676350757734747369120722179100012446096067237467610747901595965955319004328339598775749002758083251183325583809313019020326749725643977386195223616915521987907012772523578334545688884205033201328968541072670695333772730601274483942445512409756723731151637744037766785734425005659093196519807081742091519780164960945483012386795300857356697389366202398036165011572988655852578969729557875859936594440510023987334534303139576116860715022467267611432365974710695315294626362235808146694374409077098928833390329870477646537990077986226688662601725845130863329648074969687297852692593018666682838129800460327837548442598577345020063762964284516102943408596262765184159333450052476064268132398771874763061780438705273758393671352014684680422372056366197174004148414501275393426305035618578775497585018797379700532213146789993144133078245229983290240208741900972737016725696549373031863358925199434783559044671856982748825404945694359071033056760872232670290694261885304395428858309473273001825196960860061750652916686116882498691092174161719129309023162341865272521975441114803070903881805360017139811136381819435397144312227643891080306556215427586444234074659620706096758350669061955961683643237121435183824707166769578840731312174522527629978269717571397256691924325429022539634785390889094438930619222245039640556104078584073814882569820453037709746087766989228743286249481599220427093563090396059555546952906120590036079931810347514923974763913142521199050463530259899727267848953055791647656172761391574900402595667234085605402103534483746637614632531330603309692546506263301261644075616611203388091166935299956677039619683740889595397253310595108629806561885025332974708520857458980250570948363514427775104070773923509941344522132312420829535357739181656302277199488847550105559240980709904062631976332526781571305048677647833398552627150867579770527304915255392356864940861671222683555301905173366609938242764947710542714033004334268985517715568405840188134549848212328913428294459654076358342051450959428007640531944581140920106227362110453416023488336197303670570536530077791363039879919930117633117618402428404219080889485009160717726725523491546947351991334393601456569646171117052950557073979053638507878640278105095334987449231230121191989862141486649846313848553465568237209767765397758349370894506516561927228668391789327827457125822921624950004657675786803592983426414655698099985732099844024328915911474978498594907186443774566619710615418076058005090843379661218195396569160157866851797537793234165014329445769852633338362301057251960622893541307842950979760479641836167162358033248984089307749572033690990714948450699090937917032623108428998326139104789346275476894172088551186543226896171152063570580794271674013653341271852495602335691193057199679240351939544551345656089701329971290806584097494468371805576339205535868152705441494721012694467460632220390828305762254815252791563241084434401327199329377706254738343883131591918763105397205072620431797141635931350773607686044052846384343719068478065306357939255218141969688953084817238169869613060373074734469871389333022352335085483752864914334206191114697496079782307359594021823846590278326793533684597979284318768282300401098323214357246051132562973434606539297488761052465017323354822868274447068480982489881582600002839629991726490594135159539068049760856996892185203974708364595933335952957886203348368095723753109761813364724121173060067607971922066181442250254173939179283979746043974131082468260042817372323597713211268499916164929443147618534778371074704873943825520599364391837414119290715286250795779801674166710545767776540552725771347370313760810632155891772758039127826198995830444538507804726336966833899422644618066825606957525159276092263885850227169964478739211591773633336183351027710356543576904453119971323714778538597489404832549466769412342595146555384259993553715521844673474922378054304261190354729174201986132039857527538946640039934243654245587418437376376516477354073836014412269007229523428104693315247235706378583335699898614746223364340572830013677832767784481108076500437704650835919612106228854236943891075791522392632640835016844068946233280742669830062775780598277117536572704274914143015203960092184426806304967694422711966414554694694159804702012409448260396442413638687068587918126637388834805620166701171010768185503332260168707904388039068080967043657804891573447350559880496614326246412117830744152568687042799761298539316917443699808208223244375189160869547560151150266139135180377570324859869234188368106788056388218066883559591138360879056769291201896509697165967933309310699345217364494617157826985665113082727376678707558217356482110688981303449680278401069530791950870974358041386251805901508817968986771194621121233311815805452139064393675988804344472999109233880775590244416749334302913968634406042088562196990544793044394721428757535036965294568029979353584334188506623782557531256572511163449276304947283754652491569458624493742512888968432502014627456743227292524603314392518877884998739644159435976375439925586018282269427977672959096827931025946647683145365437735045613660643685123462421693386483823568709210409579913803895345181706822738858217790464364163037223101529111388149435291999806319734143356320088389944028760325478823042873052764407507457733924706587840109507072391754706738432945458115307237497545252368399099083648600881096610628955040474752421108168043570296167305286880031927175762083354759875132097270790467842229821311734887226006621605939308955355246436586193373026541566070854031134854571893618950765207928500668621070491941293141939044378434292677338425351863772732404072987715860760875290163841529838283908266021340725409362407536115594134245115075763340682168296493642056227263703443869551531809842383131598406117431621154559514216611870816984070533949344931275268656824804674954711411308284589317439812570417944653480259384358847114386433472152287417756800509120004774036544663902030003669989796245512812326322698284359858349300025295346647615363368743479510463239708084594542604603949604935867762135665987466614271798450653273067057764700783447606511835051051565955840286507422954272137264858798508783378123681070520468558137144992972663933542843645492089279168455038403529802532169090624045803393202386278470278908113483659636192203734253368300793233998878958986161572628566146511024765729075615652348326193966394402489198620655074665399860729671603466952774959392594269107169003922506490518289014132711807992068223416600479232988405004966041277106039346720819502064153740856241445668725296030680098783507633607195265318120542976335163354249237655223183371010410475766565452242050548924444301371694332716251361343868764819588125699975688872653118982153661314176576314035576742022548738765809558530880755326870720818558995915007573379587937007467161742090111856737916975631692432483388384800619649984636252792422938711035278099411990818101640905688894292438552419504566059928217545686124424050513795283539287987371732295561848364963281473268643894306785863954813803731626694239695615398343860384874076001955793710196781745310104393512174215257622727584599941659011484143175199180450349260730434208417606604619010154582796796054664121513953602397858483064522637889973796423795671700296989054931839285731373063118086769239323516815291551457671126399826830145450694480498222694587996448021855928492143301569845899335057319749634093735554658663161176972378364400038305079995083942303722106281882038225037639613969413526288721718438462527542974335876687098610983811693090436724212957016851753774729783484576424959773926204562619876502484238304992710856877599115268177219174722361638069472329014945434819305645234835316628226207615905272460953726647929838767624777437594239296524220188757936968971132969872039192323988554534029950254036062249413137885796379800052419521192178077491735022578200996603057250349188676309774026859869810002379547278854053152577756971031642409737573167978418190508616842714669423686794385190602489102659950525146620528189014909001116030468036906491590726020308139081784149093243954035851434292940207205750108803120043834129335645811442372406032857856824682999321950585836848118225348960833126199438910244684652365024262525728624955404404029824475664143404843056573295958594742279150890089380850421957987029175053958131107392532757668591246653541976792521255024960690762776052878306749391179053642599952525066355272994680413834907391089751148275619867191666429795965330681064581942020613196772530782820583144540482009878312313111938675961014620628751577998637016277975899871040286329106165054093537244733794164273512640013073087850526963775486824112024810553728691353344783400415603304724226816609129140598915491099630933608482135781369559801249862255653767069252482928103947127914087985138703211765762833205564546611865814019728300621057221804968202627413839018020550162017606807273240457567701783894805095711224843082400800849210649397850237457922938476227229020300517994142646997115534435691834194450461261126479469595448350526605509750652465426318345521023646933309075986342718482456256160703241951556550602572627681765814071137936479094646095490494245107842229935789513044089015959724311680159395672574199080581350187987685520360850588293239742442178916797600677917347575532487082426662560942017236746166537883557317597901685235078836138013498694064531071152801603419577914173405791629582878240941823707812215302565476223936000447366985006348638169525723378817024442986467662308659547667653508178209497045066847138072481584373915554672591730129178684275221252161883168345508657328658918739255974365256853923017115489028906391478479594640471477287238239134978408672964393141758852750271533533568983593571989074649698215435862782448254064416342975289784798004495997916629359318156292261170156192268002773604514332706522004853028980162213082579689728835597983998658856523170108475857637953261655541873393199143406933820859976212103023534387522318714531765263176638272441798894559150992483435042619818579216980791617945934303468856505008508627870358675583027103315643275037480376009795674595051574887893479660009507342297571080728787038209803754400773216887482422104755387260610579566066907691892192222469565785122441251968637862519941985349778169723916054551096660242319263084877072826689227592384252005102963280943034538318077314485218025943371161561960810300029091018972947663580633935515445835413344108336425422473022372065703108279509082934541131366584618338126435572998369128400701997052554308807331761500951693422221135227566201948566302526014752654160127327781492516512118064882961079721066814355917692215401437475336062170088012907355142197744989133672723682351093800032993385396515763613596704132009046685369501092094364005595575756296232594859191038099040105419617109192014827128294218960271175863965916635935835992019366657409066430353266448350218121807152495162439381577259909268278176316199923231127752206433030165240601835914878868900127954373225776083472041727887805303222279713599569934404279570797365906711564629029178517836962878763817899816254132259027616338783884381336862624653541129857678194354285796230590255790367989299225169444295297004092188880687296894691980948934577924116185038194083996329330619332122822822888987585711511893016960032082069864539788871730753400188472430930356833787493664071917274909934271561631833280384234662201389458513927112021366520996805166984058593026115457370956633127224117070941168758874538911867423697879230954168302049055082571641842825791980875299006747102068401258230541015010548372617102864960718116808090162832851986800582065754879997281838736577208431016873830413493714017461725007751386446339221862268393604258181283387176495762545543043938107440721799864304263641457668047549610657939158300977390395237876623099084213132947995072884480472222310966818517993942761299484141387472706773942179677525242885961595660716198961887598948302725326787477874147393251034075524862633262901719740923061682650050123645794926982494295137946552899457365215816729937171928032709388850033475646623942111146104871286195467320626859109771082741785050099988571021858117560035639769333705262327350875537536127779274969021175672163947531342394601311557205801723625675100761882446538728792920048354231470239223732144203360881019323002963518798406767827615899146519392183172621145544512568340080374812072929357238636435740382904247254208784127761486360914048967566844759271916195132263202387731384646926946878451126710808241828346195742564856261663941512587542531394537460393506863320816242779081486113738416003955538183632783797958727024865385940163081083321464067015241553392420850383420513193431796204548856011619756107676881982856095812529814257675263052673642753524974030020762274250634618876796735983118579433197189689945217427181026159518703652618242817204502466509146998658004561410333341412916878102461063025699083980022777359677713518892649736482429744962382715925153405338660737642543439806236326202776872821563466413543080129836409822169639015969838436488184736850925324882628925538127711587997339203898779941790766459446243795184452347105755585441795087710061023228539083622785867947226097774991298674783894256990413627867704453913649482059342452310823139012260196979493182261756638457713186388694791614803464647511260375629629295259190689594481227755083380206702500586730123778429337403157098082995789261333919310578328080357767859282493069930866488246435495989832707320187786181160856630225890897457100156873129275086839289233979384671440346928312619527473265133096719472336640231856744766073043768216644120259033091621334607043890751159843167801235504113619370968705916106783893671404955985357085668733989883104235191622792956252216243461276426956674753938093373051084451682253739184916911145675461978561902024624385241031138868177400491661958798441773274843338541351927425696095013312635148910986598527454309972557681130198945898525647540600498478642873932516508660226989391838728636719324753252564545862874323258678323899981070447570643748623220467950969497752692524747704071862660455569466314827848320085704460577319555618185303690891870805342510650280306694136520360021879011771516123193684018781398483203211043103271377042520544670413218095224921366088423994921551962139688755179502332556626381685016638602853138409797180094507061405340794955061090916686221593015930144186484709641066435210955484769651762809926244253246612457696034320668916554194949312401807560580708299935988957882937545936175437163718581834756465070350201220364812280752760364910214258583041332731239165128504501473513274383626447861858040971449888911199527554909899661533417339933751809799803944011438824131564610964292172445109789435579647733106012260393093794136265275705035729980991330919914200659619729155526781048237201512657578774012810265792304774363264451139958745098448918104109424656300019620726805665336850570628446593677076663324596635508670727610223971891500399975463924967585208893226131584052620089797945460571672563799533917222456078776427431095133535735261544083810418569332761945826364057737330787135779940862012338624847960378024752030630958362826467389689550468933932542980754601487621424162967619740688192809797630328137261294953182918142770795943042089018854005295784837947819330288044575467494014103047160510818915949466670804140006037208698499703578968075719048215678702595704183022855828510936363977628730818932992447211927883475419790407177250242227803304162125061782502596026612444775626606242384164587555971300477406020018217511200721564962439853738238735634886704693938041151436032470041840068912271155604281932415807446889259193067079620448132522431524713794722535745414145464773035311292073670357785827156540509173048391900685938584899661602460813460356956443600324299503297685800105399349623396832632471998744440144646724301397055617198538453124075239162809598731377758381885382819516767476527746734079250375162004539021916241206055707349423657698869312890608800797507076770346008124171054145406919905243393893060556452486213128867480411168273964694294213305276781103121423888573427041666452849840826058749042139849022394940361229234477854033463485824916801668050492016523548620543832559318538197043965633830603623306897636009560946980483751127299355140084570691378884691417067648259809403453324818443990052824716225917292488006889653110579464543007559644040620010522116039351651288677738499465825803437945057413487679438117565835704251070271415646648274762795632217636751094499994548653247392493327392306802483634712593754159414509417747110540522046907651174166722154345969927979629428850508714685270162846558322242228642438667853159307893856548593821634821334945549164912935962316559964216098089777471383109450897107621178068264154695202009165919910865510833971468126296684389545989985887552994119157304777834632687741302611990368236279722302370753934588370016783940786329491597895986345132982317238024733106308953003861035852160233762627821159549955558480893540395929654065691710341421303510351078862379728863579423487457197840475093366774613010926127857999081612514051646072054670883781565937155951463217009633470284406276770379473367777434002379895425455053463351974136270570633585442627043392894155124729017276168154087182365729531708533559952775254630036936019255364808839219362202975839818780410484193557177372355580612326890569574790845878547342407197808610067644520628019271014834733871826535094275515258523373457292955005760202291159593382193532567363845351642985420358584721967293511497918611162132140967050183782873112839437534861197041566423544521739411943353828372630948040412982439294488503733300919340125857308783800008788631688551886820546003090803779659477039835367036119877305923432675935349363451152740280478824349844207420252810990601159302461039094243596572351800969532598874809848491137580940661403728142164954609848011865459447511726802954319066498280066857856548642757265553388850571401341091722115106451835288709048671063535149330927263202465242055029909663186756698462353307042923932442940817704029008633467366770838228585932620897178160175239432231687313019410223003390846533907513873409637714305651067101860662484666913013153312988979045104246110646279330919601950146634912294511156682714319959434816140283128633157939017556601687493800919203650507736111733053399833888607658385934121152884975865171714444130207516318962451671416508860982800749174397456521511224293991766783140066801644876485731997315878627261777995453629418860607842486327543606530012204662389271439206140227087124361629772307189654382736260822626629299546924520677159560559010255252323116230453582080406814631141660258925228054598168032099733838931547705042081328219380804377804501005307163031710236974846659351088226604904132920074877956354979722743234017959331907756261799221676723662294295432558124615311678628654179796011507289338542077276906247856269795104093883040378811273594293835357551063133386877289676293241405695692022616055421053230296172202416655047362318203494232783287060138465226607512621185934496334184272295924267322986714913372943403772692791077016278505237419915719967933261783106102612702478714921167784352773244813748837957370399302142233220700987544669719504112353577423451348477303882986189464730244341049446205818088964263999187280265533277955517119189092354005095311203791492539699295226339859345386917300168346409670216111665893531409914834344159563281960802081371910677515848245838323713895006274430587027031878230308908621662198135794892309086530731706020149840860587120955841021028337603483204797707136296782996621123082535614444151034581688995272358089743082321557712731992866116295595229872500745658029678881315308372781796055745476854299773232102543695852600796619334664503475514425430657837612827271940944783670501237257807025359736168631963016774885897718833247630678086744571147123131567107658146431458705440655645296579361943973883354531972380970643314992526646399548138538901566963168829437200319053925868121303171530907436371548659317799025744752897611606902289503439400082054064112266792558852058768203165799044084597169646535960237565770855062317954677441984214817915325016087403246785477117973421438730999641982415449257069123431843534067837360025003993260387421171036691497675988217487878395161142033096369747420254052686864835001392825633664782536273103165205497908985809959138892890384989018984498978362702765089763287927167262121250878836113064701153434918494254817722775863277936188723237889505782923537857426038462377170226971988948888420509696575208609447495019287052877615467806930302649839762551069247792079749576915613122097527551482059687967595929868367192264443830140836674867049259443908194565957398560187003227563594921201067444288872731348470038698989147573928422573118852512821433563662631301565449718622654125255936662631296451384465185425220457235344638813645271595517103757426179566046831958479593400509796003627039654244106797041932956791132922747166437685228207121329456823581556502020747174839119478947482808677513523957177117184291973916676446363786184902345872925404519191921992118713249906072362366731734072301227995249182474027928453967074712465280153653412380520175747613265651113142519571458340013479367893276360687697119552562979274005164272721517048543519094002904156831210032389835787603355914762456925512901180681060405398899186489803526613469948659630815726275096048316157394557801828860800362733240735240423990456739057089045137016447651201934767372009615182623579631111004440061072564230474415546806032720107708753788055226092301334851443815131159201668855620429242556820308407143345672698785389376917873419139592165969083161406933169289439284685422613857973447583587796983219995595815540447430128098221043113579632737628060412309964801577353999585123146105812931587141029025485421453109212411095673272054216361506163284981911797376529459964430859077489372289819973904725868070007657997106664734770834910193984862177972913765678640489388601357932064731837598830229234257639025096554468154171801792350960476389457141205745045852099223876050473427262920848426848944894438314235742453476537911824135333698981064992620846843303699899961079574119432111668754775186202779141023795463914925240534998669020373999966102644939179340772284916004619324985674885951806704493716313571857043515440589897181792485114348361600838292308622003432350452165538938397066502594829229238987395081501537213307700473983363495267443418952194831154280895174499521183576343767356051870654522775551002604642740920432865009514121140623149037791109107174239754688923527534264042722386174029277659401307584224598344874190973659174979306037882205396116758658435980562558232361292190779823543731306806374383145403104580450453648186342727029242683025726189153960233043306977693953145295197668975240826959542194877784259296722060466829052703905836605636587308376103814786499415057658088713582814384907268635306338899560217489238301058532686871003608088873210761323028293675044253419319918711298655590068493660704016139892374232181865476896025040116980840978118859059989479899854738132217772853078356118943044003441163835135364408041919076629502543886354682517619961519582353937692712040862761442344518593430469394498413492785954524213036166114035851520822938181934120594339221599847226616042887011045277427703856515065532052019592560779594097510651836256590008735900560347305320319772158609538430393730896238981084572260753612963239278643119730953200626317762133001699618081441139049688815943711916713439125826584124443255308925664440983210285466009056097405213897905539124974537140634186362824353607959620570961835394242808289212101398072699940253268241241826958526459920114760421724176408644855371977119931537016518084979518960004842837256579305930455938743644807054881034364740378545884288337529996217292344079075865611332556379386898691162830168681462128241903101118459027952824598391671492028697009906492240507744094940765291177983032242998624861536664868010832254137948047472311120434013863907892978423330636082801010373327602285501848446577102042729798805311741332373722393323953765717249673880413297434962587114324236781524119796194771177205203209250130593621804641661442097651684894053727978830275507320761184982436182509546369729015744829405612043933901083129465944072980921450144082072695148918585313536781174149712487640965279718083101434362037938098337572587442331884994439593141717893133427320331384576360250297804205927750825437594520425566910530903345907923026957931914576441174713668140759754815207149965938643893507682933570425408580654202615841289354939473082848518807992074386931642916764306024200395924115704275125526140095309829016972995294425535927997215518933909264183432812103346761862340408851278934604812682589904964236790912493268202704484047646454848922410202503993665177012781361783220557336184535429766936649427404303765867047259496794131965377502413263678133785898923306701581241989227576327689275004538290253927175482652403416287688897249259067157740914186328648466048733999905502629122257670248176494752895279091482255611016273438905432293719474971470738895909417811796964662344174786122274095503035042692151372301355093318397510752962826712539901661524719967931364774309502707886826686547208682237082243625718548207994907315852325615651228858099412546674676618367377883615113408793797488655976308567268532462154774915173954649005048430338997157639795566428155241088531282829477052423411214722925356164559575676495146914695925627550282186312523440745879209784339737354602214542301623234540470177404380416262954096241235690450053560498055043724599984640050893755097469062384827581124466680597050372276138733893224394254618145009411548561278534065624694813217636903407997927757657358006517434620385331954010438285474651590419701031356259772996444830885663687460546757842998156818735494521701584500177380592741546995045100798040047330632642716140975728972180016757002242181699458769881538607712547130685845220399702977767381874253649005267794779376488643107599598180753830467691318141670610858691959121626411186688832497362253678407245256501827414049329881696608502799948160867360306964132275559551466144163351134863977380252715480876973805298129418398161141616100865530093732200282409728400959048666100537794221483196391881919277572512648335387096848761174074733958281090426875859806541774756976341780446707460337676983489810694767444760579345540908531938711165714095765213568647690671850327928789382595610239974500247586899687730659732507250684327950776923969103313635937901412173176070479223851179899509049698441934250550882629620145421309680403139011038321139749421849480723243568158079849066910685483228111372701223665432908770475855540648854069197707974186139833698458147324637908868902024128453934383066830211992219457793524280214616361427271241261210520772155382101670379366315748515115604917324142645083190421365105964451790770550572061760485508660288222277099500928273242753125481299488945362230325127391705325647975186814857186924281232865796799735798816479041044386221506539939868722420573999850879564602462924721666087772555761668318095464613412692067407750472909601417087924996222616387079749029555577073765740598147901523190209411922768649855025908653455803624692593346165136366409076307504874922803678576811310812561410030340075094634980364642469225429640918508853211757873964152252490328963813102926437293412383630824894725607204105421541807806722812894895102996110716267350550266896279055645622732315905780065530466809791877581235899366625798542013690656208147774816242372734691382913631855014979557331870544941250761788637163968862203808288524733471335063480192986237138462134172962047816104670719034095265150714945803082473502411136727242821385727984523467182944963319253563573966279366198565553376900439734262452459465386501855745826962325748647816999215336063084492679713011041064721662806468960524854465260771198516624332135418969373556227217038189542541688475993911771464302977978677738829561320158746721152832191183041122018827467351933595869525514215549758041556717101902415390429935702822035177436722556040753573537774889370412227069077949949114344902258152226712829837420139319578081766737230626338119163133642025128364187351082180897382677672215108147062268160615402961297677916736402813846808178606179017266210675746474550762779110074105375355093812391370855091144624926330543585922830926690829997581810923480891282191315314622803702336523098120602129621935325994823827400652265055289515352892810064507256058841821442139320280468672230630416096410208232160364009879052388277142909754725920856211458064075376113408970212510928619128432615604812776735888440723624499665908198473453221618622721984173763149556219916238132483818641174017288739345445737387779500814335837460298726468174451703300418989849918608074911296252182283211279661887811066456418775084204306602259806450713435374188381937232883199361730470335013948923354730130110285572969477369828541469904935925260183289557431409109322179000764766239682176693829224595294756638983146017513072594467962828303702106783832139146551315431429812686829609077215228941184133416820616668449899106184017506862188176022433673932473991325696846201961887753226143242468440251953411085344531960339386608508947187173694599543972906169965462975942207462005697463884804629407066104096409120160326745623093816411101539400665607504855648572386216186906342603177424140336873349900342164567541691671602339856446261636506715181814135346178967712520261464809448034906122311191221508565621639659633189088820781194097366716339925036342017395024907621940623049503565915652353454715428336502435688287610005521484183223471384952515097580013702646977537038724495754861559347864361909605269450967657250285464690984804883298866816581847688696703305862563084918875473429409892276855087252090715029591906837202375443483929144824475290440332856114420399718652537697288100726926404708544110743404093850402638017852055913845650708748129810269841390397154207843958347753206204770615562510434024681390555349950805448419656227768296804799375692124411334533549928469552571065437433826018582756724217404154895950559180410581591328972196341683693208380365129406373912608306030302297436595580787769746315573137802755570896061629129464090889206122815074130834913693538770137228851861770828986609751200020433656546308577388084342187440921143223713494606741733131581384374142097586545377659058634240163949155152852848385528307091529703197291400308642960976324570396314444861895327902540675248787392913211454244569121148277504071970643302258162681477704622832027061165560986352065220293855590046195529111834706417986666866875894504653161116403507476429924895501720684937511730326036973269570253125814753834231441598375450305219384575911767990153495525541017187168539681615394060124438507719596887278359890199947448461345807719146070796477402990391118101100304641327902026535212050709763190435390452268060075665794194367809188594453153163129197283947569243146691568240705792788517002860514614501735964599246325873513125666107987275272334559214958840368351388212335963619790975044554542714461892709212929727963244345359376637171957923325464341388815006054803187590038224022189603093575170483485892218619232817502198901414786570239696810973844098459366611557343052056814745876695742332774965722280456858431556442236031303583168326485428513050304272026921064158941736597256309981092181726431137315073521824431969257934196993201446816015785257060541314795700617341593071836099741018852400747080251191049330982784138111661284901669361094638289645515417628451523827213229961596119152526285092845341975068114884598842821562780243095582889772006225401740348912908078563700717731635792165332535697634639616393750854547626027878312553537156517425911726271712279218051221838235148690575527104450335650584942218634237523244632976294706165546475185494168680117547619301377553864819654063757755169307588669789410772583837973028804764123117848810407910304296092324201513755295086690218735771857335398186159154041221384282331961359747555077476761017404496652195391450980427701181265128562551894941541614535873226765576920103157612864015838565563151933749594077559409586660017404411168739332723625607354260633860485822103435047183994195794425111816432400357454081460317550592019022093819909710281044265307180348421003997293200784918077932595002023260683016133202860350533009510317936146605134718142533974723865421686054184303293050277320160292445574621889954899499927891103218013125279004398118224274001759596685135658414279687595152036793544516550179630934949983040652582249405894305655651908283816814538229573009433925204887318385981775508985435449758097058974094294517115034702723358462826589196601875259070557751452378743277739504709211098394538675951249402388989353092802889869711163185722664995345490130095436052531543666140193907655796202632126110621781576756511802020458720531699390839641032341955999396165665299933333217382882388857001597637690594768267415276237106836612633871210796130436322751459737614755965676721853146578278654506738091417655264534418530872394483962443675388606248053610698473161924194884158355819876444974438696479229308812057049305573915876450758763784057674550714664362030247460854472772302277078339107937595042938643688000195678211606090289448398453143338779395852999647267626463969825109737261271099988298204482471097670002264568273875206951660265788841390506976962903004565947494231728186323395257528235633585575959476830707154742457513545991449800673188488314040018737928161980960621217393967478400246330317671595153689984521207718668660801625388900660900748688235312823991878523655442703110846957890367001213851340663407938588420187845560982130369927292250351029838027808020606457205673098777626563613436172589945336738647970549639643989467827846888587098061149572223388181261540051286992153735744664354975887867877995697637762447285120152505869327571938904814555001768389861875680347415469144118527036949785840695116381504134985576639764075820865652151422208041520015395627134153427032924761053222228290418265129556203967170503852873558347300078029143273128841988270993422096147742730645392418901388103254207576965087227136380176295511545845440579866367081443020066275755806469439958799928049822470009763090692768738783278288481581692560755010451747597074902916387008370113470611822957127138143372068320612762577009393940601752075987702415313034043685832367047482744375273091225375235937591127003885689979710286662734183662548173784662406350683978277092617324628283396328340681827729515900406001688535677332761501476811286754189698361337299184108409923985412329253893622008039210482418845212661037748669085222965383096540963277055331633654812887846303566768439459392807995784697467544283361222028331569906212828279126606354748761297355950939814159407531482603061538461204637778337987488757734668970897212912004041115591657214356344715669200811294238667263358289335740880695457986047342190041255755365816715920565562392242145135536421321775060635310816096648681067827089158696099153612621845933072048706662558574842377699953998378136530888490067998334674819244142590640846615580269105086639999200582317099083765364041034324877094141133840334927980259351512770992834611505733566811423835879898884969522071122827010792546534165291222761462549300528190001069318967208841858335822721413783416793235184286073577833545047118192485457896841474359344515588682871643503078661771842656954767374551979936659743824415547932183382622196587313681277538243589838526961525096964269913347191685618169599434256891944744950562555365783039123817712978087916734770767053002475308644613312483867705666724726883409735901850177779585481313146764047752725101924735452954417833873354049597462546375849434982848970112365934560862621041077717191858201387284951597154563488806799898197674888145028843871561420612336484901388196059437054649472102457976647852615391075237332707992336855850622424577252329987556765138673746714482207664413832877435952244213463124318965577089514151917794882681590363913760485941247773980084613456290390270620778829786818887893577183862037033932019154258398345186253090044165259071389956882127687047049871049431165434415529295409185806290866826487788095786541861842008774606258935651062322652384804505959552381539844290531676650679183310629624399995250342820503149672233347822976586754146376897564753478322443044704798468449656419320360388050431601990528036807049489426132428739727076197288132145681478181907152160593528908881855492127260840538993818438895379906848346313498773273953254121645327806504917446282735264111973111122752403056698824781361121368879125152008208866966992186560257560203043291473491751293363226159255612921228184622955192324469455627855417399139247069071746870477518066260520032956635524818083704871858606560315025310217995338867028452488599278535978552015414260320457796057503536115616928281718413468787682931587860621043411823641471640439810560022584328853466496147435729602879180325177619498557545511445019818536280855060049071426396013990266595856386734590004320102832235067760150312539903670180749423259454726050751937603127264148636449444415335731948443282622844902241462459548687988186092048731966217619114268289939775906776072247837362443227575339140781499465317529633163319820342730477935383440178338456120992396886311741037334684434475390133189692095599810251270890442724878765929200678473344510210400937040164195053536245378237325962223436590596632487271382839849654048620651296499259971840188274792750579519203140886797010515725422094197950791105934708803868580464920800203076416716382384333638352977742915891757870677040708820817061657018601812898633245595707719282783117746438227842650526607123882259025425643575160063858547132475837468254250855829967129857140074309726032123491504049552468372832933607843677146580408837091186124769362491001501155280645184189973520459157531486993415765962670751054287362487363485858509253372732119031605636724917356866441577410951865296361056224682542718372869427662095961952801749162654392984011846243408651496794032560015298778738426725319883559855200795522716422731221329352067183236707040586172400790172862288823639351950729830631290383642940395590089966787077444352322881711478756578409418633580564230105525859270665199904398247850849257598396384185046073742808125494772704318657685504727721105984986890726286599964487696426077634245876529273628363473908922733485498907928926613129314318322155917712275386950450028102169419680972595180357209496090859190896919919322573517545897926311979000274670797047873466931892724124087941684876794737201059374284920219010136031273264046828973345660511378570555554694704389255430528378843665698696975017333276844246300080755278160095043437233292079685131495792973289801708913316705670075322981436828832243371345751132259537438642977798654472018975090891264109155077063253956195442184160794567123806525617703279202009245152068550037143854822995447671009873915393128294283464511789382068891199511585320714585643198312300308235197135675099645017204413221120653253763084692213978608474317755819116341398052863239688051115941739515051512284822436088711876045533596460274052361841326020591159428095248755657983975975958374680803366267367834690885100072008580314792992844088625378023223897455677651062189705451980743046577746165829758730386828687203415662596793345342124317736774944168620447835638289567257572426404320605639072413178475868032246941989620298147925702808818331208016907534205420110431680374015379696090560876157119435170776445492580999181855243791049197579231307630814930734293478339529968717193644587931152587395005198719319441884809794649026043239129003711613761507920706999827713626916747760711364864649145287143118935385387602460213276551818359972959362627224935982823600623288946430762892109174810403915356290821978307054532223954225904293361878365584120183301636078763277434693372030552199419682532370793666062428631649684164438163967032447355161127912052653534060013884078325941553976843985806348205653230131701585598400098921234424939623447201946227847730689468020741436496768710831418534765948671450546471709185758991564714506125997701595239624842264137284349174408083327463926691316144926182611966788765842132191125756742361269091021451408090724435295742648814110614145846776624370763541068019148506273199989178015032149860169346894249458881781262227907918584042490881109400583884538720453670180526414883202904367527465154293139931335801670194159646339610264710442159236152698521033877650138973608631982440410784591461212630707767064340235248642685203466515799814457382964665081854053815163526164771748134099921680669332166655492688135992915500008449559148590272367325969907747469816175120556715280788075899759779453748683859695889860915506422111666109436669542878955353711166403172567367993422188746893904237494533341649758594945420772030328943135737746672245694933636468176066095535268469646925367796821416427750707879394842218633425173181061302483470283831773631433171466439163207062999340072568887894268780541966200078800633573978399580738627775073537737939462011192710650488422459788205789645227105193587922418230519632379422660362454913180096820275411402109496103103475009907066511274199650290899790958956978350176137133958607717746507573789809360778982446907023257770609280832187915937781258774808605637992652972662099220195279123723655858263113674980401410544201819039340728012728916441640180196660083748160623415548624942960947508185370949889178218519079837661396633985373247995898114608918717656426574267054338793496377008052815067658946864241374525672893062178591740817538691130321399899933379844136558063412588995781637987350167456982092578088728598195624919978906636442458986179906639410418554219532489836103056859202807352934652899580426275467972843351600012746909806939992279500746281291570311471070136911842976834968083930458696201818287408334872394297412296976695231414761582116940003456432427594860488313103170186717871044353303172355035884821225586748353762249547710673136376292697402806099606349662590212185689076163705705601883950184537931977162985523460578550486436317275143447935414527962877613878177185415331143634884766908314426113869920584134452637315141336015293764436216343122915038619836038870369458516702901510841238289918728860298524295410638011823371623386641832166718455566421971760603192432999604990178063194859298896549917999777004184325635950123693737433672196992452179456951461996708081778965768706094233602384193136794089241044258247624700257055601681625326632202002180765155772787771087569026178383065978422291173127383917366558491219853418806358082141918271626681824514777630775782681169083016214201406086853426437641927707031344303297921629293026151379795049178901640352697212575034505417304692049764603073451630136536187388733785181323075810339709717786864334252869370591785620738522420044182533350441370730544928724133900545140863733394459912178302803119435332835127493423800410518529805138197816457714809994772899024094362611127806689031221724001265197236154467799535535214453195433174731214963170737600385258678603671598900702401433070541865938155540945199343560521046657684297795542866945663582014879373260896943542819904421083826209516372177140870312240678450116777901961446236897968091189035594134157056911021285948554742581557317208414265369565202329172963737180067293183938392723540500190949198741479960320574833918530466378395563729593089770135820412858664962004649395971187132554205246507262492481596506196458341622542236579534109326955355740979182294293453575834585704333652724378096720761586228575011038684594719181017313441176872471359396656424475211411730594112362484699295874484784609214460676076284821166633603921090542594948435101040694924267221758000606967280154894062318728012381066027691731849218004795800047986173218237132308375011197204286919453322853192490858993179158996980127263433374220085690660063457537631323731495163472574836782393134639735541782130118229507342136283946071392166992355313589194464111860477226977969691203326406692852710084877794176644847558215430893624183551582957109608964084134148169721532382820820265692464964093998596772265448148854687213494236088827354127748428415303864332920779252470958352042868774316486821237513397205040784081027768078915666610621255274165405553953038651975994013701566158946396542380837534125783856991186259358214440151788983308177397695453775734537945912264211553492113574744289359314983479834750221814314176724899959458408097581618251223719917489267228696362957910545549720216264879144834711487696325736468100898012101557484864382398507507880591116840793191343783864254511162799573249038151017356309389195482975783364549248330337032776334009045914480264298270349383399232146006977913842197959954726574228853607450952762379374693461731316289886341818025140890890661514568840388642848430929835580473673767437944999986551415479158623518882935563319925596177603165445145201179376845823391485700444760463804637967672738611974360533916396237757581038211000862070765464266129179702045256517632760240419933219678253505399816202388682213981447747273753066687590072293183394016544202128370570384103524635227588143287600201771068109567576889478532827142526156528189300953806280061959605327196002264866454222718787482128028535814390433504333353430971360066036365712040678364527811794146852468967208560493210015923352699407181731173183817420071756077528878863141879885824747743339455062101617504018724427547348805721317170124247267709406632528062795080801387940911226989154739703873949169528919092679339638812003259521364037700428742006215972320959065174993646290436125518577318368925835875683923591940063038829424671630128988599077581781437562185988618874852546137443038393235872171933298638690187393456338061604310224548160564297959604667661854663193523239922044831495070987843698869080546812616807426539410599313639614453263476473876923413708345711059841464602804392396095217118775676605533029248862188145717743487134923424773287090269852907858747484560051502834696332230476362330716081344448778597304852056705771153555195310470896011123849006634316085799824572206216387627386075101964960052740053513432319026859499311080578243992311275818358653093281285940644699478871790762024988013653513976780885364051058789545668260975282707163500591743883842365956168371400062212877540410887323624206182155872467055313343321046213622634110518048684194376231927917553004614844496561952092196491199818042932158813747158458042031973888523306556164368581256551447003486223122449780278481029795643928947809977547279668554752710870393775917662519443574927735550328184675662337114312522458913623454632353605706513697737582235231227511144527236360271589115295727665745605768104341081866029200405044465438727662678212528258035798428986334484547719592128648773020256375359038155211223703825823735449553317268150473715562646866209440736150407403095407912624809811945736393137353685904032511998252014334181282299279418479156600047217872530163183074997673797094510930558237156311732175014397174840609600721584790030886995161784501611777766406239470112384226759217428445197751392087795577763566003467473417297796923523201745626295969860376347849843398799044508170332482453779479292809823948151791592357654065522448573226746764123092362177999262710887736801883802219957370540154879253746548655166349545987311916686831309466827529820323260120118739710992539680831811664100600259548023432988315443110889472262145549652472250410242472615459385165522719008130715954227615746575153692833630533220312704167857359721280659213367435872279800578523236366946217239734469948509196220728277463490424613219584313083472857922010417854962347481467909701325537482245240716448306443545945821224881159699174309784978036110563582884891663560466463498868294646947784132707811620182016704118104746500297171812757826906090100223033506598118678167674252486071172829108218710889583294116201891602507965212103096908042059967201182109995429242731943931520155341744221778234648542384787520023902494685355142982921923843105018824294106178472651162734992167337747042325772378570728712283314760704567185760453028785748349827609087874368036331465869619769717778316963583133049038973523871368331733154075802045940330315926030610367703726295778964130212974313790795452871616744462942855573476055649931449291275163430417045612687113751291817648374951410171196779684051325555222495037883223088687341523289491384233072492973046273266322564680062638154885316596816516143138436282642143198018889365337477481256925811197771963944622459165887126863745576075014264340675492600802121452464257356002796038168625401753123568274779810392057208308031596092720856629663510606114191457057445541484139407565024457710061137644503871259727442580893957098729128735652922430423603216660357673084410387637751293797489491658188025739573655526351809367768971683895860932525128073303067502537578692448647534764771870815171312444737255185862091320255877585808174786317117475892811752446038381578121343582563595685646078522305942521233026590476628769723677760692293885939712120591512208037691360621297384427155055396919305166899853679352040096623620497475251232358061735620526634367548149375958680223145530767365869171388758245669607680873715449324495915008358033872859231564177099091630299046244100536109070163683448577036474058413948133884273767516134111341058826411007138009482159550704983376373380142711109205041883669636520203374485321063944745537671749212353365139235860369551706050962311435661759358849949176082784394804541850865271676459011531881721759551193033340458244440531224361088198417592097947591853279321169429653037675309795749766028338880537506937049149963220250856348299853356649447818892431495302526541587599034086450980642453164275092134970814524594365039944203620718979411662005314716945599316442406791926668678177072766237503537017372572619860718383803361429459028676857076124451987323754352689633922630687153785716309068936606241045944093525305533632183265477770948741744852723244315705328196873109518254840356303055325869847580164955282559152842284522294229856051746423037076354465988018288456940384588004468220093543378781731533457900647484296723048843875768864433667899385006892453679775008124682652552918989358501902577974060651521459435726624254127409414754574322298728286140017697338438060180509294797344599316849656756746472424133503179870952718086559644626797033973534113831429357949598589210214068783227253037552786855149503354780482952338613668403077606143625805109784325244023613609856998102785998434029460421176267370358350285254260692200862343982527730764051757442042325590386730327022804861595106753494234605144731886093461624588911983400273788226317320157430382534187877651072715335490292131459459079774631437254061157725507466002540416728234711415411204414607971701633730174654994898242418341121433753577304645890198108361955810882268185008773499702100864797690642240708445685769758440632073676021545597160931957083356578298494989001215822032408444921790468905592690307905137903558469268197078552021254359739677384195485323779685048026151736858018156478288089836523096607521425926629623416161979954467293528445310831945570484543202050892887954672358707074847563778098665305230420069714439060534966957005983094216760788787314113116258856695460803104872690883032772654177983611739277396659957322586637536032894737575706409347838732581554406619382382848971562345614216783754241684219274247029931103590975283076139734224842048331757473200684764345696452256992659137653020598104644488051339905827697570052910362864691382445719553779260346015219411429307461731385543931146303282413295848033875429507038384161868671935696499873131919398588697755614545289780007773856098628284805608776711113842741629617118083278860795720958771253752595457095261790396943265106755581264693293709381151503125658700766592863568030168491129752195051671161695458003223663863176381629748712219325719778364613260076934994238158214999230942063247795423321283018214152378502667278853550962236814308237150912852857775786164033396073934943415033345139747344270171509139452473353224742728720936831925601309627082766579808817770089740046643826059448155924567558128416473599705987937810878275936099924818772329536639833812814889162944029619381681024607923665924947709932738847426654203357558391765438412727328442916039456166405021739706219915295318762765990087225675128690617544803222459501022379430105399628256181349633858899721555578686766008233318226181098221976933838739061424262956503990000708652900820896012358390486887386617280088262848185484591293532734276141910590719019473702029622474443953928813864715924300868009770675164951881051429972977441523285246564248406660997147614129064788520036827513484528557137410040918620922276219302742797451255365481361521832993261707756429215973688048602225211404637743841740463932375463002521190653507221354147014458810747609648110157600139446135043974890285389640153084197783363053658284333679025023270142436920272272187816354063859654705253734139386725273556962390992107678240690325494906913084348157512392678465512020547921327076599354564237829004807398900572614411782967353094384261076590404874493274548489873023168348528505959662682055890095846135131775857968124553533710203867521374665545686087089233412811686109683494045418983843388258511280344472573737406551469266850130783526555366859351916920534815301076573093858653892193836681666301571048103670206926471992528106787798504608299138169113584210585847836954410941358730116182133711991004696987898713231611437335549675655192625794760803277756477942223762424600578906562741495591976079880359460558049486872606905575134086313641998467460498678208494008547335674323649407779161493820510257115703800542044882899374803414809568935984792756318734588510136115743846291077088659955266234468975743122021898914241676115457463018969477456397325308501576063265030552163140981004886765012013975036161461929943046437028967105973593723170354309350420039896701940636548622096703069623591852891274704923980344762506934528974185173977570505158475703303147417128023991364950800034827254693321282228635844690260765875793148434556018691277262508494108959008917388650452720589545443301889801350680543428637847850696876995172155950746744994949590807842605923903087824437326838766009048811123798774819715429166233741334143329632367160913803219459454300974221315192531011871222783246157696975251985978902911047990058053577695944083934593538182511410969895730600128473390901850571016128097271183732665633038544119171303677447263083066394148756543288227042348602332826642159543316684082681865804531289062304723295856227069900457106456824330910100032344650507372889615969722307932189995637258421007113940155955232644737899568019584138839185401482408723758296529818862638647799951347444118986066986337017049913676198526721280205370776572931428514895273364972363262798357728752775037221554823729304334009062470994480933094136134523787151396062226035338511800734075920707943075362242516642900370224867195297891654757433428684745233604138277423779923924791477442839690614240874674130315904461447016125217860137445058384981108374352570123470111297716795106081929112725804665915886204874252197291078964925753580627353323694207014456866026575939909302554593232441126833864181266903519515772670058542609604054977078803261714965349243225933766816992568662017715392486201738322240190399264748322984056976886463826094775411045064833698599089894948178504995279681298307380596629746714292138267920160818219648388434895473125547108200703330741175346126556280911999865559171626458871942022123058291355247857205604004999771692626682049457752449929033600021692689450084124765080736654095040263989382386859758303519940221838687285185340002002555413610805724940970273286841934149404414155397197573588349963483114591699860142290142805561260243322001920525301358992651182025611947522611787248865726375187778550386187306677236238582847903458062536659062408174360835222302989766966899013192347437983247736148335892144575230392447810473313775868865609613653392012784566633051119072078200673912695566144358085228133452977972833500333527269234167894532347923512177276329276831115730199324479105022778575030472789657863298068516033876704989037534256512475824541560254300055415871864536214399329416975986405773228660865669990437142945346351467929891116125954377747632545086601653521741936316538285747183205124303783000587022922386407787463387843114388959897508274655110883696897817720612133695939408460738749433837285658189078784536038882096084731102463914404536079246080783645879701180398879527250324905749064778696637565552718814342217153802996224907173121956081690950968540055490457339464293695528710153405757027476415212250553222269234447767129319796347228555080371935042900546728429595083206371107997671684672625362876904031136496221814924608674262558174250022043203027607360326614740148676007953310193320087455313314342101285321623145202944864977294036926028530156067647454799245772947718393474427949672977266100214815420189787866388191008842902517838347700408835196482655649817869009300011122945480614190295230496866157981310705711012872790627581836412541659772656766917717356937766094577991290362335663639997137054250375031648411152007169818439322616221400090779320470174639589197054828168973299761850414140003677517041368764332794693833687068863877191222332311357746140432588671050112595562812450177606370951817952103596953703211870192056720063438134487197845425944931298994966349742966126012120066220908276028190533406366622513648328787114423505566573604384657704381398964099446790789248806956240137953705942043937171627665870549208325202218055415196321618603846951148564884619725132395779858891505709460576413890702630166446992167561246020754616085207929591077255537312588730030831394925410548191995109199477442647593756415505714269992927543420225102908392566649699334523060587842032592146707944350305043666022506995793277434714478155352179738790824799541365995034242794989805328451699768829093704068827869553216936389202802790225636739866464903415961814185315058941442707379925531713568098757598983673124172890570896548662135832183584126292429209830169709529025447801641817445638353060292360897352510607356560727821425321968249877662202375598309412656862031318155633413529538419258306362781227849301281503336684140830862873972443413467340258972549638144440578067428782751286405020669531863768069747380047741245448103700064264482859238490747073903165773324073640573105549917299694111926755447024158283115333390704796317736527538296849395377188413828721727153154896123903523343984850373988271348320462227027053294486486664731175861217698086769274114403311939194097150550441157880553752266326171060522516205844126977485222495706482934886167899725275814907976587525723459304112791602948058784883400448873623421962864857744931376845376260321858027204045818431674022994465497076715384048506361714729071364605091663106412785443327124407281789396284275029133564433865013650963686729919538668092296822014329924987290123627924653319156907385827281026656847456481266130492346959907530373653043573351430650874592350786177459662925379272583432812325248391329150187401004526967589954307927943799519541482155146990040630501831499621597585236232165922678611505799833255246239875738097118764627598735728250601685848685290488790924988735149350394107115145875576812593684753667552246277172262928577417224820151671107531131795530739156420262651463247101405052197118816532042279144427821103963124423916333931150723160839663876587875191214984180652734650080756158057951740391890689124466881239788287677986471349809820310578999303471923566282454065010352509615073349281652952930766786275031879703431532207381401115910506570100386443846938474661974341779169475701348019217327967914314198340839301856554577943936388018587715479969950880864387708057465786656553835511455168617632462429345123600251794277109850700376023606064412348179031023540206089640171214327379233127062191848224552023455841315110716214617459916806841094865837100807746743068962854584646428823792408499373622721427201446816113836975112713913108770742760476983527911119520768324366906289124192383621137559092363919807176284652373094953819598970635697550973445878677970396614587719415837029319857600463501383510959591220549874838828390110462098304823442509636884066412983083854606197508393934848599441739391377198888936351931277190346994322978598896012373825410567331670846608491789756634002190467740554183556239999387000974152692343418955422624592075387435000599624418570898061491451998114863150447682845135752350705525591889738093900524301680567693599034284834198942892407830557377390289710268886616149265824688546875033785426963685950111495644382288992018850715660764684636856643478415208005472442337000284616483129861301412199440007756318600730756965377366397796276537564489802581864442616264754311179741503670949280837446251290343742715413831485841971819732135179667217311311244162270457511592256034438871588970929219784666550287757370589312198659708327096699217452767493847805443423111053333318919839405931854924537711431151621315843786608579807488194890804026884218952234536224933030846204727871454575953392315543151210418104231016257534574004120790996420062889438243453474601513651938148480045437087394090785945575692921382989370366060974839636893012733854256461990616254821773945693256482539911645480937407647196817108173843465948946715480130827952501639220132527182421464397327333614586719638178077196724857970160486524679327588405805043329133807701056021115492067329896603158159353930972602488158729106120816492887964983926903386091259479904842871463732268904304520766256857791479876336106539281787272165018948987715929366654417378531243883655441618346821491420428406467501210637139473870231665771825286969101085265829151285340820323330547732555260525324281726214587512616371932527010616280864113391133140516862605455436094408139126638627608889445260545570809453990541135392037723381621041144179158093585038537325070734123503701314765545847599744633950619304673680217789403624473308458196170382741533704539707679750757618676510613723658881168376083020576568993280006764703013498272149165792435738527706664652474830374614699883520514671625608915569039163874214983155109753568019179131143799101214864155315378299731643906486387480979585736298620025743699721148186429703669662824394582123658492403469755109309967782654658691992937020737450256010539580953502209494104222286759338451250701726670182550926061387354061490016597580381752431514943204475960197013616736765580675038091519413582766081215932919984020718003791854907819851350792162164974860695072111842012663712424870317651182566782358473405496524038409183329483356631284349969598162982469827712301220467420283833840381126395746787836448246477764880370037749840218767259887542574392220324667496865780322562844920300672804751230137048644945471969773133811408346099503698571734505049690666650980492613885489226563386819157778633491696577058554038407226002037618562866929980029803707100579052112937627203453238050281679956039366390778408347579094494302761679540866502729114895426313183654479994828892443732988278998780546285102732564220537456722739481056207351524331281952405444377181813326575385886956805120583400530306104351136467246225372461262722577543658878486287891366190345165855444006807548302010544408148297943254688652145473956644761013563527041888380228489907747895214193067313086526206021349269339327765198024507991951803970756805155502756632721012323833371401893135898785942943959154564148668946951292428372665559306251561674437380266337818390306455893913129869212467847499792344580610323471592575067966797518786980376375427327466099815182249955032077977239902847100069944408879392102510215780472947936743853757298500576248429268003587826251970486967767847989700084204238044891805410810811707514133143172896561475165905852063634765386774880260159419127497079102473197622129848919345714489679446886935907486090208724536296918633210745823719726238554354542099625130954756526347154255892350487912190722450088520910881968269234484411101924240226047467504954147785648393649536690632637029356282195428233576072853402434976392492386209852177302470120338695191772998785941101405010748324238498653736727915405399298849186641547041383948321037737507365572342351331010080024190555716754634697278398509103442675149191692869185654699292993394029837279291735527985408280553831432043498126996236322739943053997270309929533700117627671048506428278830070896734750874971984649945444886070168551276615774854218134728208477649034103431018219789124878916029477645094789863578387487203501028034561652675728227166695389995544384112822874734909904462122581418143781597481404734183007256078989419836923868997720880240846580744496670662999797174156363099521458204786665821792519192229823324582090607703788664173260437332396587685513929776162952020146196382521417338861705073242985683129228144220750060839352503870950341486758597062941346736320755666472004722554995775906708503646220520358204583966450589063930989327443365620810954069293999399490069278621065826685745619900678651417425416147261903798153647034428582274991921184689584954388964774129857085947678540335635032854312715097437169392194232584212604649724240387013446842759455250912410357390665743943964688783252773674608604533693912104238757633927306581484109626701105229272547988204301177554566495284196035793355112377430617311725197317964296097613130767663389927463315613314519372642161311714732072692783146483927715449474577947680841213668861261420619717319219931050204588844923290953540943060630147562579110855056506866757533082549313152379158986784777471092584254682339961813430235474353410510138439983593549275172046338093230122966564540135543685124040701275737408348725401583263174062442750277943242731184042361997921073000632012032462063231345014278030808211554802017336152227366510754805251730174182181447120518771468440790056330916983366245299226881928425550070193736904700531675843766854538641100721817704713095470039985581782028089195395322981805261838675866709222495071191795675447821543823793225286032260195020906200708194988487887823013185180415219013814862600334990917259908536668496481902768587921209402527270944559685276587032591196807794833826465090996892642044332280567931572062614373938209817539053120036625919814534708183669089178497854013549626283994643042420522971705860014622086603922486264422457144319591207755338550810068004836233708532093936955481160427774232347478198373740747232806298439653535466115715273788679753145829368939938411808794801149066216816387126172358913203206322981679097596969487814101803266774908046074041762981003513364865990892238207874565544995960171081129151291831757174580932489851276890024842665523173383562007385129080653515052222652895457294456716141666491476270300959195240170643514595298838920365282463757719071704973854953885879557703829465320055258560077789384936712256898378497848812532449567724413402620821557203457201003161878470071207498839803787247392324973857737672473329260509991610264993276132993433340236102120990808513754101029808906301447923648726932964711310196413597294168841433865448239445489839421830741484398904700389264491155507222378760431766289303626505085149825056349855271356742582160995350294484550617366981410389984926488707506228961565911714377630059881024981370323712771184668632606074947011642489930429158526625741179148340569365941622099868444598813297371935238576591541807843907648796858270461452536771268696400817010002471920934660635487616697344693067201364147007187495988792817784705819285799018121360688273261039075499741637977783874377880290702741721897156052567233865673380498402145461411522572047151136951976953403830191434823578045762612999218743795554303437601966011992412207231747134250049875163337221698611080828855859360962559800276367649841074832245477346287323192033299854236907320627618611813778837176432320136284098097560093114207142669121337723697156111767830299581766283196385771431556215364588245677932017160091608033185684413307716164677762097951075211361369966147175942139265707128706051082831421114039861902519411024265734700020213677257575837643474751777485552290180437504108398458831406584840301974127559229518086430372321357226155812656659906675803405344364371988284779639208253794810780830608730124031816913197432853173569574112083271085180937535190121573684084717513680334139486742167283669045148069184405832420059743131720996879697381198722386172602956172725829643604576285515179989078513594772613635521487989393474081306123318976878669999889066318947322390838526475456750888363974218706918910530832273567694551081853055299331999491575902798712566318461749659231261878901508068853163184690700724226841942115089444238491392030058663453106238101926743953890723821147125665617781109983548251097192830162047889348794224608904979534893429720368585741129062351869194381910459704892567875747919863458587537576436662330255035405883687450373395992626259572048374389671302470088163888790475926962928629448522771627896186813375388106627484656014157359996411512912005802828044056680742288004977253002583073571078963324413529033957542587715688564584917844909701445403743977151375957076126414092520017128281703787390000606747721033055337782303573481153215185374382813963477112666509478872025357872190164979552977125197726154475739804317797994971723681137592871241976647121549353971327319060713756854319459792289805630457108971113291746483884494981710098455401128338399047334186207139447519522915467158077221763638071150367618664920288928790733296438527719129778170668341042070700207173634428911782865828760264243229713386631774060575297838490093067696444691384374976405712884302970042576027110720886000160897910333460125967709176003967489661670666646173385309887238942012355029761172775920779055521559802423926389285133098638002359948217043935173212087797309218311883425745415361422435735825726798292451007386182744138988131873441183901746903116592250145394387203457362862073728482868490262681227276782887247229370810729105525273222423005809793715557318920476921170137970608461350007203586397997010316250568095745701108928811425808013348931417758199215856137458207481646249023999642721828083355405735800742315638090679997390283449559946522132690513033694972782512568354502145628898148784938998779376028115839360430393264461055823472726144225457288359210748296780494038823270156881182904638538872076021762880597999583416360213908697148401231492601679557315088859466098415722784558097407944243705139988373340155671379553751129647196884440662611937569462112625206876954583148082197102471073816435663498457087370229820333906358595266685906792017404267616335546240474759733186262622081981252587973951446859348506948599068237921904306240868324239706024442160647249080284094972473494829322428223432635840981492567516767125406017641057805987476096089425768388226618297516873813123420722678930090029900893829946222722578936434523827261035931411176976399786209354885669632256438367182254021517387530036123008102138199905338489525716476248550045884699275287229727204061410911742054411548121959387027636767571325575226631067444566309176758621365955245041046457622612358409832605543692131298289285681871467994163037729279022723116287338233510084458371384362853663318946196603127974383725517999204805827947939890575512851917644686428513677742678860653134565521331250715855021402508009483739586144638733153618813707755279557216071941266579591527954453796377504521186229641759696188707336370689131111928548778117760857209136479687112531022467917837887024117216714030071213128125630850376862998864633864551379179050673179957313628862877337366010954863280857412657630078375279719915180607783092404418358749393538914201340944832744565711115040335949496881050487260006184331562694498615923029479497635318994651070849320550806782077822244600166739445649683236108912947482829453914218028762782919894516231197709180998083337811179811754148490103573024649877501810287299215045186949948769157661049258850966856303773949315956837954262232165155248056003194587071166689755718700095944552127145518303914057896594894497163373691226114905144064894372709089641231485627997730891983686328039232353171116091156455082210706738441031581254844659761387675386098005416876352514203606880347623700376171828014782679983996952319420947878904230494385774768772928836006559527619896043821794476185895034324973472702458803262422492717755012240322079263732941579744906188307009345433091164336268856904247894927998719575416495759502960348466694628088460418361085815487182095308067421305508239981964023956149889668518598872011457157286491847845798994216240760171830358692391436547764982243435523121077943938613408076578806966003451522632006781716163049164556722304634617552148161481384650213841100510924979695137721857546283817649726735685019461214140640439257983287483656226751241299365477738105540034053509447854589426145041419001424977025695925671842405273545399015364648884736542187479326168397271565021749388519247430410073675025713349019916756339952410757427297120048226533133417754451018680411246482046427056211073983203215258514290392576447223871505058583390573643916019146543475958317236113107078684067255426179451912149033768182173176656295634522585469652460516472164339030368253328917405355577762940104814244873321678693118638293019139643668256616391803895430673316336079911909776534028832246888666142326914332403659183151719796577852696572849899908057414646717280488602238121341737144580450415173542130077712711815825771263575298270399087516895558617227715380945896895247667182740964422141566723531014352016992301014838848524714566660019030289421596750032148291070800723165494875661272786114822812887880049955221439704179984722449910913273824972979746545499988151372641976460224766308242107844426356909897956147193448397099638747452163537373751199392629205777869412115281553107257166755362716317886954609850196019658756408802678867989234182924747393902254188991898641599202803033183981670750464034173777707505755364703726115624655739968731710603091981900897783556212357748172836017693066100763169287824700186614925123604849640756688586745144164104625040050469823281916879638326453556359791795749268481133159240203555043738160726729732831708609416313393543991228924607971828515886439389066179362029102824679798539034248553408738761236112307045431044956940721303881431476868157868824011759057842375662453343338861743707067049292196547212439960576839053648771285934834971876052039270162339060657766367422266049792242253987022290507699246054542539906521976408115693633938144640213518919234936837646966927351500963438774169944530157448635867790180075791845860950656439534265742547542146284960804514151442362008840262213402605847272811235860239010283834938378234822712691956706885465474853418911276861713522961464544305791441615924029342684823642962130826719707760614897813580943042287809459639932278644214747218669507177968730557233940336029235767981432956024376932079835539763409139237173931058367883784155369691754128483991448605078853839297892839491207692712178331419730347558230470357669202439215888114974801889397862731829251951657266650289422851413016490384287936721293054938606246905576236478308125619348399084890614835660494065790352619492085685810937643505819577456024006553011561266290607496409063309062068912624102492933139289954569221246874905308800563943495031423903305007752240430692261254982714566872843493501635094558739718007575981907105694196853330370017272109002362339746027291536614360217028567481793739809010754429827213590217789028026070658275925649690678994288660940167277814134596854440989497254396060284965978399159809329712923590339746247265216148447466676495636163365314795600351721085809712189578028506212229559435700414081273287053534045889123634744259598099236805978828884888948184774044875687123688983797630225732081868181623504168028992076888914127208227466400657018877399106946552487707787198692683585937955243039096866629253083340095233400126773736222128926790705340439022486200097532780198919880391764630917887728486905252855597720517347980011108406312786277423748539699619069037798442189845085837736130891918832151137547773783099835191498530016553410228310001215489348098299805233274050785640239042841279958558584469624808353482788371605174339789229557014225526805396598079959812356975173041090844302155084277882401657961971536972562104784456564016204787365467883106060498608950728407823932108475795876494143203965742170967418208151126276095008538295012512059581234796878235929620985913931504664470173499221308395356294986501337094055391000350182294935153813292799406721713585420027256166193122480679714843270200431065715925126427300651947966813220844776239118588060374669176849418280855881823813620353733974562601291341243155419533078622274278860820194912279596232804873739661233834465849268975784954134687483392747440430769359732731824869301140839072390307539101590698690913292208376184602612177269145553553686337836392189918616723675494616352590494154486865135260795104471387585870831403824357860410671439328082757333379059368994992489422723867580672824450754805654617106358577241347269696646286380118133753999061400763301537364775239465229054550803940415264668038910702341724245754682328276356476115690993946774135913030165067051342789066285888381266350161101633905011238258455909589929793907926819552863754743535791977005206291784486491459392225882288339265808398011262786837082522994665835792293305150181701549120219306803047268327528770823585747223136312030889539825848918307906777569441284752970922207812950896085316554076026834492230832720333839968268236099459685872475649502578758579088452884842122296918700970135361861513002500321046359268585383342686445282973492455328503221915682418330297939064085633117194768006926366074592125675557796049971616172915221556061525736266417653668360198982063022910022892598837178611313728862620415508579842729033587614026022204939788923973437546193815393418074104418451537370123764583370803415804573007024884679674659823103114061155961336592126900908715059507861018577997589549908765991737199555423460233458193217366667203049717979648751524491806470449136943514837158582255724330080348797976122317863399915162277871875157858507219051602994293058807749168102330493452775837434061426792367982116300305266736267025152781246648559974316217766844382987167962370420214546834099335794339970756563353835706804091348917988047271942191513074207026333099396310757370573841047830520368665186430702122015233798816014341661207831834376719689367432208760079106652840593370831898846372564594817975100570444529392359656150215741557107736401551626346606532217639083524797000649252384702388716645235866528479460914755707537057279977677298290113624423028229133341640156364301287816431223403714409065533193232760302339157439997723896717990703830562109810610261619535997073427615522899243912800284598138383215691966256082897647413618626709474072197017833401362423238536504305311405283467487108013871292034462447202251757043323269590684385489307206508302317125614527882010189767754042333249942891681222217273728246678713146509304680130439227045870815787381387862548415405805002381639539094558305753679459521380633324916806387712037161568940829396226730854724738165443973637180032583495712411180301653399325952897392480560701141329516432428141112249583207709983269518003773713162977185673605727487618323614273046800192259584554761939142845223483003554888947311547935094507929795127310842262357154624228352766334727501023274306368601440499476380796346040201890218491383688822919954170817224702490265778872275512358368457048650735892285673851432359284629340772840302712229437077423105265073777825970616627319050247759034414688919184386604011482696895662646659089668853003158076381462998973241431418795147516117464828275329170997285924876565308694544514579345052667289323946965135493947036004114604419938848102822858045996446289446233661147908871232518641884250353647388334743300153950281297415296658298640159898661404552346660609092332823489981655415105169936843105768377726331405593534667280112941374791182689729736748971424906037492677589224400980550263221569128490175308879370293160362909889956433978801067308700478440058912738319302671049750028955122675091562809681423463563752926889914014562671617002958099274859589587076732402454813016599857745863928887587031338317381266776462032690731141734747394366775925938081611298718270564729247518146362019646729301324376483494824833033323569238897796355766648098631297259313161759518359853999617715977016974957323931055148325606619844087499335813225623098727530261508624614637484085464420448798404800842680152044950259437610009281102086704969145728485238193777737755168832424063452381497086352197671109802740382947808613817483302393019588216080193671524886629242820295212087116319352503691868847510252616657295306735666803708467688726781453050418996049837042028634359297973774648219909368685312369104498620900662986517097294458248430916954821758810046319551168806641979566515581538613544163043926094206476651885903999644077708458303291156170773171218642500267497175427482950017136975737353102030927082720525414398895948774506088575718600484716045028480062938395694782261801396274146064667521499027127406156124789265807614904286664771936902137588207144629463733685128916266703481180134686037755638095148158382696575244088647515883610621506834638830995652202240501046562162824635116890122489439018237317321764376033317613984308908293761704910953624467656539864122547915290515528212954918915092605288272818053839283715910458181084251415100135195364713653713155462769787053035015586480889967689878534209806332690711429865673796423701779605328116040226203139644483747869854733322194854605997290794367121317027051567907073123938020863777073767015280259151109736196887602159736912470778075643496788804229927058380304254968213576514673869572493947264057787782467739807999303231526423691022227815061435113654754843910501346790744686639392593239462504970504124328280780565010788718162577143746825308741827444891739585215764662373626947132169500313613821151233083433014241429650506163284710012787804342925804222442435150901095367029488344163584228228404135054546078496777945165719481964856708252396453988018993336037935362481566758447218678357630601716565662864745475243813040512323636541018314406353355001583309375665108773446557888871906648646537636994393505827903073980130133168580455947602515819466439384521995452121174208344937638314798851978399833293388094678922350329375572675476558651279346530439343966861848722662756355118168720177816450912573736200593533791735223342859005503528107239129028775778308378795282539882524525134092776502024279115159592457576955593160272107467270677620916871237528271343686525213611786134143069328673689397542511656736541386443979747614805980535534977133976581752416217850039741621170236079762824227170841311069203287689267071005542157384002101754482336624413553212956850537261923018893882014295479215881759787352480206471315372920089093873818878093074476460789126605574925054426826062378189079757167470194922373765479336169833127505220085051824751821753271656384659263062398186670926907167251517634486533453916573412954091602826481218065760797758885254279000712633718308958635217010100207042866076142930237225023267871844993126393601978139324289575875364867755806847871547931609917367631639931598014535747429394700565668086527791168664867306024643127957255078914051209134874631914740140166321540029271570823801422138061002511737528306288323559424764309505616997537356502531620975753972790534101873777301055207592666911683197841410098502492877279155918780897823822394361592889030448026303250366979892935176739144100434506951184470271277617313412370475510425883798415017029011623338444398997267108349762506614657865387168942851406639372119360133208960708916842783188655360333358652830152074113440647972275577507791831814078847814034998671234962767147869737586484329171231421186501896784716649377448819906082455536827112845530522429919487112458477984155982677170666753219291731323622659245844753413256282885583811214461858855278446400902257101667711546483194157911595338762204183212822513589597747684773303107960052044041304067015443997746920970661843843408199235130541413098423685723248786896427602125816132444349007810300820354773502126724969258908375442909845473713937970658889051851957695334567593283430967261303495908603713678093904893849669112724354107375040980995117102310070380083079419147220416446120350056433436497202036836656650022476755284377044754036024437544675371962946533943532681309806003622144425900328261491354277024713027545300986099606504504594375024817406115820503641611843817087023560071121330382467014763813695819915264508587621497482102487900532922128564766162224383306064085435446467895616515219344256197202836969971345381477859301185732106036874501897134329440626765099159725543356842293618336321401990886310452676612280558752536519803662570306761741395552370446747861152371854166523566966283721557602200334728968728725279525901565617888314203487786730972166202947323465421371867469962856550878208235448778084322384859796194658950476529775817527568539556917805362529331197167610749970472018349240044622749732124870201183482809306589303602742485028372073372893002578031458406737050608640517267254830151580363078861382716888980313996799162431747554755523529294431957900627617157782030495459759059017046798124719789029841738623096462592683185168071425187527303649365414918594602473286902031435929717406060284792756993864890084660827609475724284289775870500942856616443717839250752784105404004315965959964395966310852499426993374697189113995605764974959997752066141282331508019497154497283305499249253319925623125858405881023013483356802794560293596899510794561684561820293322877018996598634196637122962062865459901860303652554797899070690727166708361209276301314758598566118589180674843735734662274778539986509352258664693773066729302781880277582046885637871474200496693341822845948525332000614013530018375021122916387762410130839197867753918100764276400522893301632775113958920766317158682942493963093401547199181563399849493160726302359395903884972273265664340978745075435615378323434276188204822947920052945038329520791221562995849308445803896188624284805315522433948719030073590981079202543487152356846570525414739707860088408448202267605677310117822070134336753172550804463707993542011786058174794808515029281420052417620384169626328505659968518108239006485928474805742360825818305784774684685938750816219257786841730414032026108535368547714657623453537849918168264370963233310218718516585012538035938930796932903281214212571735101738096453647050940356962076981934092873516410505328638263433497263239344597412650199434360227420743433639235059478346494223071936216978045749138982334730587286454772360554957429260497816230365876139103895567468001237232650062901726415620112687814060066980124020770901746310004452741506007270474363688000055546580539578491816070614999955658097777252520820523515708390351856674034207464651811953169304940867839757239168997563685961854742564500610088163105751593330332316192393956716138538016577097600666703955794710556806165367886362530366565013376625382770811841926008629924961319828029455652206234729715185223927027578920379761191442407348954667004038483040337571608563095440551040697688798675488275727863741927400318153587047849592780482919777460074254087136938626679762269022978263426449687714243190656493013982919826563174036302219084942528668940957049871426891868248023204123587022100819255488912557224560882117106337991326677832558433341624326549904992042708661524169831443677360293072214890643895132089233867666918989414386035484458061469605019836377319349273681492150170140307964885541595619184271395497243398383881974835922142883579229444436047845708430192737173080098432487950206675228531648046797771902340918526149598764461891700743126314127513028687290494144332922865513705917941591980858924907831063956958523396806810452512089076220127023113031500356678536617860858149526333144915017439941391851159367144080246854123744180743593773619646521513539221110661203540737374809354200636058839362091310530220634790527765490965801010796673475795139304461738997479222786400440942399583787330837824243976997542897248183959081444143548920535523327974726115660006494479017477639830000688883425351097458790079546057308994398934992980925572442417078813255272673588372970492306928267098254529225692661601005140812506838304043829440453301810111050970571772884685800910632810972007912939200348078790530110333795771781062747716886013162901687698812034877032284213182115539893158642703366144387558665678059503022218808446333479822787082830932333718563814642583527851288977923604948583078942239881533986961760335245667381620770808243707059124478661599202752059103358944570530016025439604060270821897799040883801020371660664592900752989555660759882203820801316308722326457432288910583402039397997750991266702447559882486571874404045038730593206882553493504557820352559840632750724818675345209734571231829973451685435121022268413698026019277167874338759801080069016711139818960939449378485534649101821473217200870262997526725289338634543116958410677366344295043970547631412980568332725389018196489185144711028072504366780990555566125953014300348591160037709763237744051305422003649466434042189622452760260570200222495962140684320044568673166540569175965280676590525692204563388430522906508776573290427861761251802788093576253328891873214430421959660811096834841017679315114411767626811953214485296281523728375669245795093267129310988032408255858709198643998358011603428985907026804662633764799055984073347062068208611086413211812931737904294345672350916355416503567099564265518770927171374425582254523294000930128900806581078754362919189604541999149828726250737351350490980132820760448723009223166719677678022852859771043646297730584861653405571966896568909321565300123612921018144360262652581906426238725929373656961722015285562904831933938301297437021724134094161791382004783836239127955837018629606902183477219602263812906613405212959431671419808612216816883091688333820502285619109064184784304600499172665829647819365660447490984725954832752084461161321727201797667154248355032835347309176929900706083970009897852082220395964688331007369765339871076685335875745178331690675471338243858847023259984777995602233467923700533128428729840404147551461828933692182887093249742663331805721288138896759057056639901062315527273523213626672153184150499007610495107872718881279722452342263382736176129976209347297805847902154392167758990460512886522973725868471343506274018401754618930916518027070017212339722603315091685622405297313522829472374679584133079233785829347117327757383041089024678544396226102537273362958425519954346964674940315825508716244518999195114767217784759236729610570672987315948405162883577955116960205206538733188652037909350655305500718615027589677676976083793086676340227996375820367297984555682614465676641604191278249342039494318060644797174377810184795704034381616746939314157839887045593541476644514340973597719500204018574631054579708826632756252730086850233785215296789183165439969493354366949334050175684429159225710289433152247607392099658618236630148683807886960675316816666860108225985342439494922051890398287654623183637805818101983592790545576271802311166321525352051403959111182706849309517291057784917072524367380631684994292158582848327107866742943920218891436288908742834013299361214611839755538739359124029800634083542116686376490768441760559879718988572226599996950715289566715932768013807059842614208043298534185554690531975738843344124244942704016597540697313940291470533315349042899141969650022385206567426213918832371538188508684030358185061284548170044486840636526206657530101612778845708463062362490696945718513660968052540201557066901369501400665474850262848391744421095771266390874758220112907800509850997442464906040799445174782885912123444416377582730974614026585819280534251616482900707452158360319624171262419649799171777155376779976594943121774736132693532902028488399196773484734686072681223275351132447416629733339746884969241413529796259245188880317728772893501841111521478844859839351695724343081754637960233329185826265027683930062387383668647627832095662493257713870798761490450356390642117781045231239982991586777705978000801086313422059018712702933017320614895252761653010593862201165474489053779581725815263927846022447034994509847728761087920143514909592879173681132524336479828260620915768456319091549307184654617024321509317707813745279499403632083398159843132069464848638540901651676522861699514734252553835897057945038144973603378714248788330225214278223420886884887846581925359782499690408394838966726395779689583348407011771296078214589848614319050001420981504423320615555223057589310497455980887634278871059587310698653155348653709484196389825752647733736288848788861956745971039844516882411967316441500647710769640638202260440582159903969843818815317693720631030524228057061409656862058716862241999688493579886235687230451920541778100652750100573552074259032459581992468701175867212001586724274537758263334966016852386844929624956566371999990742292717144499583034159289509804885826025085887476659443500148272387720402232045633064403428320016863462335303386582969661782516549799972487162682108409720593778949987522061411056933551984168053102425630150184669697601121299522286474431039800686549460075884040244834384098834544060095641558143906311861628639422448089758268785734481852368003423968651661540673958979813960363598232543117207664691709062283183177422928049423555801907693035480948045090797679319609600628758694290831082891770624776988328684559427558805912923717501183764108844337662936650145054145868714391056795468816865693855804679830808809350874668320246249090278119615439411651575838958803949896402100472742609495721040194859036872156705051950630800080539255804254929390299925598021123885027343623703260082779080051492895853154399620069447609163128258390142762537102748070939396079021691686049383434155411779606592950986820764957811241591811926990613886119868830164431884161469744456914165641250856641476578167121099691523760466346583409026397007141644619970714438786687202777716222087769907505726383960644895472815833743904125471321043403704008247738678407306947344484265861987672137738391227517143414796663938385878199344341419387852799256505035488013396130863686578134389705546080286401711693275781442180702725112495108089963749953530563949648938361969644856536253939075990139397172755616750712325922397138624660684116482812663374290323018162799016319112193168043361694224810483375011475612101512938329754957027872332157960814368752080352653176764232561762755069568620068427001215824012296834452436379843146508229938191267808786512114523254779287911464340715461986453160906548192244022552056496985819589670526786874690587826106667336871032271198812581643036066586444193087551342133142169118699489605275700076188624541231829433395157585166634784397029783771199284926789642526879365533782729386429234358250066663059131977100007723894640627320918171197299869129504917497342186911920614854615582124526387651270071690991814341792484707486263177226452135083611430406736280514614948551587914111144930829941081228484755577333463506559155997400898929770067429196934836597692363732433317372326382470790060077246967783826693433754038974976116750785075914640951616729454481858452822939127316603647665854057644546109012774667496460832131933472367674168867596667701458682932059277699242124073489135302614389583063588071551473718516530809372436072117688348559675830471635364528522535164473918021572413409387456742928769480290336210701366531119748773021770972513296458217768011679318041446345496551007768140685662203528302783798051413323796756725295441715946090850573580993206157178261076826032308690181346518074807317273024351121009393385348121672793243318793967036868089499751360735588603957801088822560148128014744600881984432953112450386654350685031181729931309858303378297302293796399995030004533990658447448209771771526110134951865813228994954701272191140846413307735156126503514156762604995308959761312464426150132305952083844347178001861284893827991756605604926910590811693070578537212475055300206282332557026907793035072534549053035933938254696397504184607523970804353527535218028778527770545211227976313295141791259813895944686712795963165042827206683261377990310475682742750063678917970528365968864328751060970668886160664253520261233650360263693655009744880717139075465003280646130920976234475818995702670476566096559122881152644023544530937187614875351375435092240356549487753461588629139106666865444288557940193449370308374008953239014617192879060771030486607410042534475452489313288768679059253785501215895839507131392184801304761551219036853835340257883193867426727813952920732530935100671667260464596488859972357528419445403439937399581625953551663594455817322041673372904772580395942475851608505607204932499800158767965958950451033262713483205399268928155908834428361432506306061173847904246631399240234725774052380369195378743692681720877772323638137648393559495265076030461951666611924613625522377096443042147070406063822290251707292164382356495516258030354525556838200429365144821856223839678254134531822029190315506167631963171378549437699313240924975590850290009381301144934914949450055228814342014977940239728783307441282918994019569439208157968401308938909244273432551183691705252290181943599252830137307234597574193451310314719696752442383609705006643104584509825385925755861528491413505728628636484539296881670838157839547712058472526421987812175475520745957904590332896447702083225428020647695051380314642037922907767100690945181222385495417663494589017246099180179646232606179219084774484681035443985511229319221149764663562956650314343468868266531537034373333860561864876260743843454953108830098038191329063983299866761645749093641063328032582513587378958593219775961582162546064872767033314501450563228130228224304161817273282836825866062058073912420384282509019217539846739631315946068881689530127657703111066678845729139247090056842381181492869929328507968243875115553387335941609326623787012837267911921408832557792080730327036270998293571833530850762149664954858391615959183237658878459232568033586587173629805610859971223491073589350196603307763150248378347015446151046905709511037014707486237635286091271811603683265284723665994166809204070276882076910057045147002805428705632832546316973478814078817885512113379210368936911367706959933206877267408804904769161689239127040683786106946277243368963132028644562412531262606707010139554143951826279158760954064147343594149894222017858085824669766086739423103200624209106058481542568918785627289791281524099124735649864396713007752797472345778384038928361597971412248641792534329272843470298915576972226174604935037759023080608455388011360259043927352334423266787828492105094894038512996193879753181028627595567853870137307450818748969190485317673735773198215984291254465291002027947417194590217023371461027976721227948877228811023011383858216479305973531482340776260330755926143801437090964771584629701965681219730828847996052291522172379199834168353199447972028392000818600726338638976584881340194765805789588903656614045854485629333963344544225877000580877740883574484180153162917959844196474940756428968457778416675235470478902479798827176365423046205562625719105536479715788404394084484652673997023247863317050674235037574977304431554377549120386349463368157052268176258976641755969113999671729290378042571094831924692628447410736237464709115645579329872213477041916549730629100250206865090241012274473645165167904157765345834311564084890838099651720940899339391195921726163771670324594621638738199156672306389533972237459880428695194800054312181200778402367601149438966170054379623748132710539445261580162657841448202618249909575847381866950326138609107091162915409226139379222526419856900920367802736971828766518379378041292432975528474054235013673725736038391811652264369931403506087450079535032931461055130328300286716191095364118638062481796393302663820866057901319425288387107400608076505361100233604806693260798259651832280006247227742699347375606866105726588784121498786181458470522960230813836899852612190542957701775159212721110338811294583712085313593051562713418040123025543982093493570910127414140069980125787912575548348597897433335820467178966187262711729428605071879861231424169570862002865967398897991624262405377223115065565400902817822219817603073547563881123055598864350162862275244050740027700945504417546810461871295766952311012471050279522384732602332352699193902903322042475448128932186224687583311071549853778594788881908123363088951359124200347074007461979521162109630210561050608547331357699638876771400021091394559567097244538277981309561753786021242904059638300854246313963880409803035136011973318927770950685226531422561997675825171077379219278231185214567466256901955665171208277970553197443858105641802256398415179403033554586949199262392655708209133462893111020567168768209266415104585448216956193839323186171759711898697086571612508868649530838341292500240141171467186064941357193071578562554515975301146098481719157382591460695075965897566252385221338949262953266356715986201235826175443054868777843244017596132539253085287157844252209996335356241381825750042786229707327600417799823018203353415014776838084201104174458423811522237263496949292863846625556998093176990264758227249332803869963616278914431812843647084207531609630155735343001993872979959389388944193358325902317934671604798848572421665097130218207598766350208580249742969976811401514322507235266028152257391474913680216545834858462332447330005267728807231355132248912951821139742817733907885847973754331424400015560130572454377603120397266417285810281116655050026667977472954834103473241316401813052317305654166076508735953430244672077067847831373491371130877184093997344067805138178207092970556981814930624496861375994138248952120440455090568606494905514365045762805633092479290876531404648037698547891015836349958721263842493611662280328445798197983303302722070813309903839056666179676904830093924596034944180352397250214645605862605089781075674834648948079186509906165231303250096439028974808260088660834686329349853509475476284810951445843491318955090816546752608475063184474549249368673414625739659636405015753531124509835990114805505130335644951424830413417520737858054798884779481811301512782423142546011457307343258811081357788390407979590547674406327194871085912011602820767757375493956677459095475904881960877824671508441177843643836373314748725235357041225633167074234814251108929925454334516275484666526896141007942777110741950136500052705955563493107462873231087275470818683188817772762669845963581740457479869333861772468066903546761523010064873582919244105574202932358366203292373216810500900833505321148948246819081905190277930603312475617706450037391779395052163795837601031490360021684979018278321093553080965069690195461192794359017861332910247784329855897325502277251235334583534037452588414262667504095490304561148670579004296197215954260236352052628444219132123621676442333060668840499133974085247144270546529035775943333350814095836712613493795366082783632544000327913187282105751012579411317996304873000569948498065851742641526987114872104211179126057252127969331626251225902814111122348087677124870658511144385763295705397628583615360980482266371838229294266365848351277366372131440404125529724757825893452617258704192592272672375710508208900258671218330527099579880660620036766026392602113201992887182956551331362193339861793031560760623089153315271056074219239747263149961819073091235933621879540136421387821872641940498369329013728212864244476872932005254813964484526632759586312341909144838745167266088458952309177814122614726415344997930397133299076098789993952474674251807434549739294557042755575306979946001809251666102943588278109801967921973922877480196578875062023298694575086754793614830826094466553478291604331114694212504208846065057019288069542367283158887869804351608068586090185158362940437992775109810087098689635790778431556311711269247555293766359880647319578877221119254953504199831021678774539862973111743531565935457697535789820590542754039073982722487960816707769975927585864965724246524409513997163026513013613155336153164162542346752782161846325457688185650904518128116203014884931906169650904117847864534567786193606532362402000718649055326684026151223106700467199717647193439674557896208072405377632086452543879842909010077355711656369141599129420117123978710166467135135441485996280462213970097649845022872859352512613605389200029424217247711721663358170568500271854033945477361796197595358233843454832053599528918339352709210565452539702988404635829720263225192011544216859201269762096085758563795319365615744232216229697232414958013307747604291631682488144799080205347868301203386450653255051453383186021027949797233984403867297258849223121544951248881451662541676806515639639503879543100075415758734072953478026581388138272596362816145275917977625798103798137078728836013904936962786749603253078880391561455188640025801145362300690835721283505388551592459382595207281770195422918505480892187469028959982102942232098631545207028805063272760029699603825468701468807306191404397035558327535968834908078374187036953697121567520493142912736900205642690563844654459878325455379730978115106622055146920722563597144320452080756351767060964102902735002667655591885951575601325710673421196535832923380955573128205027611575172641335039648305730043008227302066781371918064365670404410925577315542353260128489580336985670664584566244997535700442621487943369052261681796244773789131812182282435568341256464100339684668117361085713343835287817368082910540207510425676001142135592752221152383167733178621328830597521053208625636892058941818619332320130139617211126890681209513712021001503878928943861473715239320755736666297240228437144592677962088191306846414166302602358500285038182556085783249518952254224945736569201962667866531954998193764175103211489368834831528778886017149231239962722500671742180837731658588079671737519725466942058182940773798838241131236806208873897493399951825839130291355787555537355934193156276900737530525970060677464960416544815258986969687279699996850119872444974089319572045143877932552963339655874449997303599749013700401099485933383153869137832210244313976927672452006109204407757919120436803366908657592775740834819006824367605650444323386578842204920375170319001945722250245821273557171449808511657780448115256699808657244843638445656538780293867372653634822519451083834864386909241267520046288841113800304680511073849822435259599120014945322950761923188645368546038282334534262704393541528782311074468408291356116453884125780407212496824366232489948580718207949552539544983620148151037947139927372761682543648261629815403626770352730608706684294148314409549885667302593940580500004504835488567067960406493512837864974186902305183436133239761825076132711529895125583149054499155898020652850188100559844283501987553420114670158326153440835143632684861372307211728272446236198425538368335841285846542337919672997657472306751915924122027074745907353420523041384924790443591905737418378887583072739711342161897540864997467015322061338007437422192525696840774353573141181579681295744005888846966090330568214156311587025070956826247841692466357022414217586103791282360304692833433408688243324416186074632219956561598520845575184859740562175085906189500665756595361483155298443339642590284443730057875445379669697269893341993438938102450256786393272455637830652623201884529668649581793278778591336715180429855013089481202027139296464674687027763224387604663146714384853612029601730332953804964643370085478588610713939469768545409934677689585760717463954256886624906761092059119340461335188613308176477975063589816936123453498657269364961268757776122326907974401837376570877233510313689645636098345960217014226777656743887992491372889798809910212830029341507752182062125325781740552426824096352007836922436257036773823740797823336394651573030153165167278806033665716884337078101667906857614895306630583021286191831688025054894549540882874910949155179958583759875866498451420420504332506533096000540524197846454522366891280159475281044693853066241743018454128399712114950293376187353644770438177889087963494888658363628374364782599789177149753313159755805610489703136553239255913208897281369526518388242411492302240435352384811234207490701853191504069078274165519264299162364991365213246355039875680472506666065806185238373993892469729885655188417797872615448243126002465058238686081563205840074630442285068207718991443446680107278234455514242603483539409702361204888855971092502720291038094478878144581570488689326941705688261517006426342719067793555535951591417366976894217553263374823415188486501347798575054664084455140183091018325268566533059277348189415093496786783643392434686313359378489904262571033739398895824967712205024628174712038780458978820878789940087994322375155739548371228512206183447869605769855604618274881786456571877789315678635245323688570788571739717281039376294702321555241412423968959848243772933996640697501644479215753357311879445307849137498317742489983570974756013076301212681279467421156111583943009475612239484635871858477789930602395606914932441435058539449561637318588511648386169081954945587879833447825474409045990945232113106173865859203412852046178740350008932555009469272410000799502025219423478707888747097921602275028471760946561401797070059759263633092002311121803309220843055334994120668553363586432589340010914633841867591725456197644340172748095427941768526207314715464407010279404903815621486472930834073047173080777561920470877363294882954231140667698662399767857447772936301581321318371351617765876315570986845016649418221208642144304946902351909714782610473659006320343437130075892030137941162893191478671369221174310651792892823568788477392301377965617359266039974404614643161450711620228586823594021192967928283680810355980485181743142682177601506322174207665694470112295002701332075220756184136268180460572602566494180373593038496098260144129324870871775998430474458161858102656348841496992415952906052006546087331744207885513932183950374085899013086842871136816169826368248328657713366353250424035113398958630711855458409070594668280851003455828988307267998767877029625121880855911466282809919745431587332055648211936982295342507457710254048311115331111037274121695199534434939280539793537500548896539335634650764517925840370484686816310372830714254255862143044991190556713594210005630671542699260887761684004134024647719459990214281708451203146690189277669663676974190416204855526253283706417651508361147529106546722833371124782875595415311510200084350981679612205320204968583755808163088032328581516785544650977671161862039622833505528948903793367106717779984973624571122201305516222831368128107477045511192108968870836786316936006973113915641561361171916478996602878685109510799945113433955857787919975960315831052207365448345606675457305306406963452430146391686138552327843343084229082811107676491368124731938373315032823515580870955030815132813056461112107531942412703888611313746665586089390081053524519682786564752546804143222238776885046191544662493128121495325184862183060299189403732543367361370570884979979889532642206532661612950012889462270394406792290419432343403023025821030166776780555697083640972284210406903309976553485025866745116300239866880274701442046920741047665011598136231659901186537284811651672931749834115974264732630213779410034764123626356452970979304226975890282955090856002461607046837025409759804084862032538686703682672770593633823853864225774227328007433003209760812802349493808384068216550939725373963437878454857646302120780393082173687621057415109057410948404382230613278527713399784399479461713257398351957081639078594146800493266179119927241087384582842137952252785999569177792706900525374070986822358234204367032499337692891474726872492650007008907846764213817072168060702143594225115953504064750548080091312591317684233184043766270406443731400751140733563081309420699037097715186367121618017191913241874901406760199697061287830967350261884659292250846592880151537902464299640357691718398360755106451459202917443735269871661546110886784069538193694938385039963994559722970696385343821737004907422107991216383947800363278557227501581739501242314978793437048429729960376583931045905424047085663705992148271186667703667200696522028316076662025942501678534484857060470185604560980153494156844852914724412061650881805421207917417034658996524293275762508446628985387742865325662376410682051159973794909395172261604650730645715965204989092990268274272018185710486311338912673029254484673111299913031045336394208337114085874343028925350685196515463992568131583401008409928293166820226305775419699706307034363605323927619906749954753195900624112326105085317881960104287529477248174941268004209244728022999165238338850727411465879033598548770113192784428456293408541377309949326462391582580618374356414448682336888579998487961128515473432573115837420786040500807843441753946754134883117975474880059522123791815511895433010487318957157799924879569073359000870961895577888857223210790330993945634074038408623186760002871068311807343158462285661423399871582144224027535318127360078091997954230626756989544493133363619967544898080573565527635210902968486453974641864368457171217730253107692660694950793588446316707842339078798665878008928821904652562990231460014345812422119263096808205754005727620878627106312273520585960116371708240164008715266934671960247795022600116469242562225704033761299098004261524658340630731652325562871259046367049221952527182803876196033090687882430252401579320141907258859214036482329036722875683876531914735253418453671158492525749036883951039336204588406553276895832526530090904150583868243052457340485997549930901924518999015860564508856062648076653346702429441851815871570953203946341916627521528628669857659881175330152635374785482454820251008482408025564766045996639842258852593674299622469030316081430367777009592491206140852587088471102211721926867308319901766111482344493320104153210236438533390236488068193479528158921512112432388536047140823767495792044391795991039488670997853025704901751301616748757987864545339075108300940847812431878892409327383199309876314070990403544487088913552822858473195797292308706124548500435104480085841019899643400531932761787747369996196056599091659889653748643759049177989292524424325652507352763942734569134758284820721459272832403282307378976671571953890195290507727344093431042661004548869270943578476264431890051940073143182793102082915637621675379374830856323794141418154567509400574906493999827944534543311483789485583523801013202009915780678874907553522359026273308846673843484801700269143751857074057902760992256740955990313377389800649835582304358096399347328972390955231116887526161702770279571856995774185530911307553922942447523121871302097594121366765070407906698162185287909796665016634980256425912048515024785354300217151582461629629194717800537671159005863620005931911837047498446668309975108580892523337405675654900090458067227490984210714119131624573945813938496751806992488302629374399251441982635311898773370973087737791916240297537895569519545963880753509828703503535359108826234065631308940715679637927810786542243356482570833716298321028343341613730687952848857710774488701762540595958948754899470677076225540948466174923727174660424513614622684882611318910569333397969989764767466964008844963951424021993515991518404725178997618359211982805105796726400309742115084003147919125014481268613410923769624785600166190938651498073640963133214956498168470327455324369504886787053845512773966062447820551109849588454053614407964351084676379852161169693609265334650055496683490809107671379045631406291051898026261581823544859236454272383084702163172665499843473817781421926782454447518582611603379149514262217669377158235951435306223700339612249535466325653223992158552517967790501004088948928699742909064677076474643210138653201842893581614360477684071851340634335119826989337009950701378966401782450346958711144467766738012293385546237648262267519149208312997935166622088326310525291072724575843079197082290411703281278767569165820403589215018166407824715840051343023626485877122901662298026766999380323379784554151302868968069573360798083232723841978454270841708929239428491991128499321706671862301477634920031078744418111675314268299522056867247565186532251811251391863515265092461317311846012776993132724029176002225239125374148909502648897087333760224814815760284916698026447886846827812507861277191917013506014148667432625521308956523698173131895181354739788506626587634156104505319279775245585183309958263569400408558347990579464501990513765326484271181690233447934522131453493758767874211005663391931654872362462213034463679714568955836577702515476924037768242286298723753277712606945197788899122757298010301477172842011348587531352973148583234813815131664134726723617823085442827557618011716693413603499242497256551056154166144830819488711471611767393742880601183607577841337208781163651399546112927839376595967096728383009265595913511711910333043030561754008162759034720410306941379944619322883121531501003518113694275354907155099579912726094926381521456062360500845423322989263529847988880689472869731973869935946439525354672967748708408772795686467977225587164739099066335616968047478458300477989728886017132509906876464788505912083338887835893012709360526653220602518524565148800889667032827046496051588517038304941855684564771530185970313204182649822345543036799930424329682720439299264765496489141724776615463276117113766800344871619414760969024274592748937416305333443534017864269172330010686176973880853004316594029958377983390766901518595897988881408829353793002033563418684031270940047517004427058122261273882931219392597837162023420878181019116283799345281667607609894785216402157711014637763515629729803411926933463992419442766318620178736984632125436480143356267173398500934196711257347074797112678352355731435869344053260619827773900847572056660868001846361206176944058150229490280055893681628210391701935324747571345728512832499028965161636379154800918638549395159960856312353661462722050062855947070631353749794334053343878910933527170740377052206933258140369124058497213132253563180617071461153658592755888039300545156930242864183952113152347085673106932758012766304687142330480355490333719127294331610621475904716952446809210667587828091547797868352578139711383214161826355917454098504671947899484030682352767455208258918486996787265617254294206563088274354832893115083006414990985440797700780878945465057389417647944392210824728678464969000306472464804266790312671421573531805609047597262249982111394807799388160637165181519794052911849915690653936447339048515491324314023484926930367346738647742653005436044683903793627445488385825006348202053862618071298104926737535620234388303444731336342265885667356594457879084651931599193134931207048865419621128005918219162493481614559517773845355493185751955028987376253757473346724076251855704657249780961442991655970598888041011499493643078438288760557618949147664437268191216652264850822377433057150236756182018073880677843650488371955589754077072389593477452912236935500903056271037170089290116647174309052045645540600905176418995771618586180417929547008944480276779680396953707960953703269941466968976889122502193230980753279899509693679514763111034098818514512979885737628633994935216916455946412230303840594515049812444331671435569052987587483050292511380793405789525869957867526028719138738559438199351141356102125378579791540057906604489759907463620375292027837093584479495680237044630935853528892911747981982766097814015867138178363301027162002951400229720017555158238169036069858781704222864575983312007357670966557300716502538909634291186389366596999093499466708879160901554713904968970873493186197834442195953920553797749900291075921225877033975794333916805874466815524293142128803787213796334691516993837288897145151683551980322861866927942239187645465929083520221257285536067363226680865861662249342566883539022284698340501147242340246397683083592361027998566809038769952853202192250470557818977114037883579251135792209384904441094583143424196334682346486898174907764498968366832916278424684223264575891025918206765294049817901202322354171268708358648127288853269574152365385395759371838512702395083546591786500346881497076309908062460033526752424347418268765662349127771145444647059472171784540952011533308277581904162574400265069649170027975249276987385869853905934331783635866813341030685365533794441789920421562548888961969112549561489336927035988621375225143341753274436625574352885354610149533526406456988140888659774085820597726061641554281798255521762629837572587371899229613657482876282248685646943733792659468891582786078992324015873961470055607347046255863177776440941666277757807804952293788145530784350670715382947642171117447261872162013275146349359436591629840802377670462833562599940266017219407716406099434542611780568082463868054641323402537735255204594898032595871927918572103470983130185859339393651953798012892001098779937187307838544393056023794468941680300549803474619264337276566419498046953708594704479554921749880433761258922069982932412255212629156410257302076705770149232918595770092572313979437847069798228924236848666222360870103699698574120890708750560317989544287469289489420346995231368349607793547836752051944018499951731850051042978377585295948689503277187516150344735748214067396884375346517369659479552131521913676680087583071342140018224761196135576977562608915595177638003956538703216777283828508205835190700124551847436932045622071279673241975230774147296061096498473040686108932744817508002635732849168656474681162775623366994468129305733377320281178893738315292366600223478897492617231267369096683182370398672081068143781476123394914742016430387064827671912706813911129981163783169411442208320021685645715466583622811263262385012569940632556108788254792338842798413130992132222287021380112427417128864282547836639593428057955226079964293392035167554320966361131902480744388439794754361555852465391498775151759354357483229937579031388323765423660584042616063080687854267397040067103198780461891572001496126989182450318917849854847531566345604895960207729515972546615932309062369949854764146134969719395775325528328715021998450268115405008096463220769093222300407493668320374389236894785067760560298840446033265202299508609092172067593704969492650775655645962893144826130824715454436167106302843607275445249240317376072437479640751159606366945823220291668959935142546334059204009473781183582278500465518989805623171432141294224262074295063580150541684947360479459032673399150707702849559512714949793640247112526963436221721764149293971982898678496437675477179678487958766561217054415976398098779572234236686266967663282816593332121709217187836321336703729107300668753230593839101908126028961771938970620409997130832171612384966460281795328203611630171157263940938838118614504658221169588960852799248399740324679470300007919580123563489417295017214186875626000722152997061932707824762937470633155427365240613978894110690417368758868377616414016159130113611836950538013044824491147773428296051908480637653782088252602252147446984755391217602864957023713170511276557107075092011210640439957997782887229946795868077401972919325775719089523843014701090127282870547198659031093208426882818678078840953732255479232104587420550660106419439412350835148430766507497820295307320409749661284905928861714736733246918845253512890310320741761761845047758163157779285654102341219665586515249748452805502208138732064496097445168344827562751362115294579457187717441631742207227512569758990370126129848890917997446725263225281629718179747188117860447094599687423198736676486264270076748585635039788462275521195890409374110251067774503471009187849143157275333943336933641735966015738644928431783390227285674560614142682949482154135645186405636597550744124423945414425342470514268816423386034570429059001799036253779330953239740801830027299005470336009382139858625306653465654896893663812636647341307533567145825238963067065003091840124203409891777334914698996795788520007627688477764654348815831050784866045919078394720118657606529599426799999835931183979614943769378422353061802972401514573994786016489088888281487952640727929764312815316050827772624979154958471585844853705267607460621681835480702278795064841414139945342709740668961467720144786682523240053269467306990515487381115459132179798145961897171258593404290084216251987495604415159000946999576209926029901058624378709203627902004423697584309955438942866916596788978781091490523663703958852153184342424688990428131515677279128527665869313420294676659102064640777958070763045665940614830147530764928260906297335702433283513830463865870480316950872845502766723921057879263510255503043351037035783239298571594895265929964892261041171985459725128975573938402083895668703363529597626028536716266278266462013832749713872596281329662324073625364300543183993224876788545975388761008004744055963941027681745250954205164116227789048127830304082571169871947632169679065945217393484457825890731844752721075914195771863938536763659282426373591001226592801639105025791978831753181169467569852853901061660336351679194956322621261917546746757629466326103186082983686449616163144438603470549570439682148311784963271267191732428376179617909147794862327618870156724850799791987697687888703948582632624369468247341198098744279791720848362572780293085296277646833560768145972261950757555135393110461044691733082688143437225887901357507489809092962905374897465085561193790030382302081360447791440076731263623279028239741593380295343241887961047267046829513233064521813490151884146341875143638763982928981083010293829906491718026612989833214239872679612648346102961960887632826829750195772069918213183133931814370932601859981741348639089950723874094788378985952212393210006338691200425237620763024972597641589005039271795987686100507536208146822354237690877237705089856632159732258415023026466954092385922383110493700999678897016582504777305966181410792084709258637966367359927747951797046463115014905158345162436773943345281531212823439553130324639099934796986707211166767201930315518161674365475001952571011115186951266349995305104231452423825068279574909263606939471727705473740291655374723191067688199231552924203678251862127627719074643422320608406536560033985318546390738465580085553029581174619682233335819801387766058330631593294640056832288047798673294697439506683485671416915038668867214023162095976790237469928752874295715611256846997031093836121154346772763395917898891900576620702657134702286046656614550909462350708872892013770369004355905622608245554193658376577992150326773562996626498558508557136851089533469103357442396496407016502849148009632423724257465023012898831668998655235338164982840342215296585819434115148219331767468854381648271140112867872658480107986977835508766264299170601734804692706464139053290407778561940634067198523939951419941878747546326583369046101526645610321449340748328482840868202000455694277261246288021700013123152770978017351826753808320116125627072510229260250715700296719971817277864306987295876525365235504683648617031486165483659348299283325812021116232870801855147117871026811538889124582658113133619524188774913338684996843806906601221250950340384551970717642406127964324766298271614050241204414433844606573661847390125261781124615273217298357585039877974845449199808709290094181953553099033638885122849799359176395738449754903638914360467791805039503773233882116544469945018642979966134995628746351438827941157579413209398408287009654350765300409597224060395800026636256247807817198938313069016408225342137887472428922384323019499984657867550178863476192106190380071450488562919514997687396726509920290532441496090235971879339331581042557579289592116727581585429961862742576333966577942200298284496818011031203094584552416476162368548351887411925143034412537114596163416036708904047950780222655843490785758158789959992175717177302267608238171208105481713749602290663729675842631254415519918312441849011359566178174578467073219404153485298860373045999928793404479023068600934531832665692169215804634853934106940334034142521368743871183762154410473370251030278321822108822686099759665359691174734139814235532297592289550912815359778332794343652804555745406062721406781826165228950646590108594190814282299732187496762328002463051574334052995263535337209525563741210104516084708530494498070614911089181114767627669116935927690955465532947273058574367874281351806648655563744219379925433567895341182127497766811849585247947092708294843985702734262344186486449625023023738234909288808611824408210689841907887021090241300452789130886389447470327812202265448752404011632681137090166562848220439834453322752411353496412546222442785915959385553979744236198606206803088259801346094777781346787581834125134446280034346974306330925724054910864200957393433503410547506309486418330845534484541961928151330694837339291455019325096360967512713676633667174987538246137867906576901612770651563107876753972890026372223776305152791180779207286637601474635285525643573904561487127791901761707370971916573888098473367123515980089655295965148591557900445530885108580589808539418638766593434741277154594965170211061468207544592590486106586516734688603172506910935748796392278019753295262431225018601775153146634744736008072640650771998763150494869013333399628161826288689489789098790386205757711805841590246837429169461575786417849397082205396755109167246108881817441006080268511178416788824361122016170365379967861139209719393058939342709628628274687124063405795627024326840150665643227219589866770587741750348286684030816686855163689494185978607405002587005309054121796786623378594225130814642240350032984384263012090593116093082801170503747752403123234903874942842726594157222855474159655532860683744528483834904551996800007950762937805853913100483482365305761614969014191944538263649967715597385578584238893277143429177352407804118352071847389034049931085912519495049849162806140270453684951229722792986713806064577775185930867388561310836703360972289860369951077047744475525799090238182427690780363840147015644735546219042940753198928041548970809753537172667861858738394893859629976707473010244533023671263918375570087746637713315072986578193930430791561094474067640732216336220726094477222876419913971787865403707578934096371750310743965300042369312756562132907096564691878608235147743678419919341618373141251491349369234557071824203584097462573542932709748716507540734016435364047632801777554139031981218640363944213246638949916510116800663922555997837131468169209613266748792728055281414075447755329477983678067109523691006149256908300737858415803757767424784549535057643854103744973957008201813341173209358747898956641701739337739681977629374022071611741291749284831514715940316421447577978102175245565231328833571064854237164585483431444879477661323661918496179990259655719168953636997634931159881047184219916877459073418027802665870820734565449159942365915737815293891589770055493557699839291157410831021060397778967821982092231922953049334418050968095488118828236217102231284461528010200709993258037291458446238469696509187588502710946971269020281410130560997224912961256666788395843586234996067171825999080241010262290872757493733020611494656427167473190292887012105710767784019815531102418226120866027604291737817649460538730953322689417505488827677272553607519512347717800583331275203179482275717775816036887549057547800672637071292688110119844212287819729050990732448136554196691263823033113718016845988191951829197027533981199129871918218358082130457572017815623086303787030112701229374796189574041076165994587486162299712114081534000266705525354817926912997059060074246406742216903700235918979870563300583586279850511608585451054417397848421344199133675282302695174885212943892152907905467682216288913640532301742956551265440527305899527261347650462062272116895362959260120626396478730408656890887433378778969457882643242724114861609196174269456547682362431491394427686443737825506035811997202472179453763814144171590071371496738847398686340317289326021227649003228672603625001913861595739346866857436943419798721505493475994884552716570552719527752664853799497316715826923860633734574870919315797790189719513474637692024093627808859721007510436678486169959021170376626871195973433321761331025036558079402208962400912925570109189842741476578120674767647924699963096417318295884345798617523179715876597230873979701618937122392295704058866560446090519059546751901961534931209116240540987436325047310337862126544863167871249995388738123239474014353776845676023425205926626514505351205033818441953565422604321338891427240829098741309166266990405960465891534210581551552220795067022926276795198880320234928005470791155962769837653180882593740586739453232649956767574565395248830406253275854233370205901204417523820851549380034704123771312588515280825356792710580685625420318663147160691001491634699803712339024994381751678190824208501612630631028745932079457921530616928412715377158252139530841791196311881991633040693289776747273185501580492304858310268437663079763913269203809192368498117577180466053322621693594222625290141462067964170941399236301554959599604745661504370309491104776101252874842309841763612892180700766186494610332411818314218999562325845041213616312502152364252696273168487753051574491295041686470543767825402955103065968628373406811472601424845862247077235099917773036978713969268027124188430621849178934707672149332860718337319101401573513126890583729440295566333530901425104583330652361508145997273013333229068692277039424490990127879047309341682169499217060174053605084058969277870132816977199001239299103992153729021749368475750461599840205948777494209949766580196621278170857943433486793784554529610057137620117244645329355055200672794952092213875410139827545766565410383848782175645278063237927455914433869655748782436702264509381924794888688221095617468718336049602216714646644879490047731840673320629670542253127547592701572988849039124352327739817781977527617998394948765750947233183273546073686954923423800875825036617122124522018386392040466825527664136781359868273256279009053522483681384258788533549189013978070124166636776386745834110649695379758749887244595435675269697977177897110831055767178768119834250623950951789241011371818591092262119542041900299174363182597722873659221547930899909369843562436664232812562820199375292686171023139063609801218433795109259891758170949036111523499166847103287077635130840349651050007293588972043644556269298738851791784647540472323219995522140979040214170549362139209699824983952159263286693019240324163968382092477774594638226741551933286455725510105976119783133813478179093178978055648685482397445149098028031064616499180482600725182698190434198847513877179199963135114984175928376746114352756352746083568130910512638321110156172762138013497644942810810225858657932777763079246686251730297499496728001394480564855529674683689086340522896592079454029389970398336545073699415471900021915926461894008866400658581680099242050609256563332556164755020085191683005930840950424174132130200146320146793666510598792820525780774189793551812803805529014650270645209711177823772129996127640415247933846578154435477911955272200819583150712099799499933264805406309268915590026459574468759366587334882960463672208466148409722882708356182306389440246226638618178293693420362157906084228495516305462494159526513090741069876536391010223914591921835174733326042151936063912514322539051432701300740641742576392270365432642661924569880371543306680925974266403340356239109487030621943975816349285678523473503834281380976722787322503060383533964793561208302061824439637222805514298160718679326309586216987200360370015921720027154863896823007906828497405504557207891129539602878201150953554877019712790459024885431678419555931993126155448313205509081265448688597239204658351590182762832588603152771192019986864185586988462085976874158987657818621038976283686874344502492454820909795784907392704762285310509189315763323191764605001595550615521391108375019958916195213632946906017512460159125837090434626562380551236250891368241996356930047149355984826897469614661312220145283326011512850532583148844794744656945363226653359966421217396332049758491300700669363231540086823658464167367974491677760382457065639341819616450631206827697412652880661117993281766022290776644902226134185793363441156605018669842345525998157676343816514319815065082098915548275965226976585465731248943874571225471845160411309073974745638295539984647396998101513824003549663058216221052779017204344275582492281845046181500659099242862521240488796552540143386385377872473367590941146345038161471296644405319463877151704165709107007547436669921833500450169146537921494029403550737646187114319003764759033678405834671032652589946453138601450104167235413946814226023491838044008771300100197384720054500204148841280394621995919425387454279535437085986106279836326956242495299290039080285547949411786149042914893080448349557762309790896394191445619902478340268524978550396937801869507998838979908611789124739646973853599174240784719608061927916597648485722966271341322750891374571925598522762109566553776918042238524137286186006374291362959977174972017570848866205831443902380063111775101349515666590852948712577122760863325724321077551925882672650364305092082346955772896197862823387970188242528989149463269509045388705234754032757804970972635932470364080459997703340612728640886584975778269512154841466841643363102681430617401950472584471930109769074043180766532992499298854636877866477550083136011632909027103880282785663174121489702885749265300526799442185190507808973975809673344061159410186492530206606588129110859840273910875904640616758093960113854878429678275844945303335426071773190814887128010074706205053469635627315151073648240945771642387570745496910089009746743039390140027536100203514254357915864883782522922782250296326773732182525632716538691692262060007197028415325183967397611644079227293724348579560089910798290486945037696784606287554021987697753507111096281434130096946599864846682769981285106790683054988553148650512156886896404929953595801457239098505520206061439263507285135951748053339831373314999794057355035361165132028140001118162547613928465472588236298046504161714124776544718560312552607231973149714459549837891388813747623082597225673433336719823285109641724160201660418327221235020088309184804468063694579043627444893138557096443192106651053748338077375526432181924583879467559880920856901611752708879442556906613287903045374089428581363495619935239770242267666694564505191520690655683448855015157442629982011799716172202541972108855642997636970764172461437955148993374697592405249914153808181244042452837796482250917259074705456512275666509008466982431577617863971759356166573586810639803450198336531835594926165078105313904989736488205289451534386117241576207979699016044804678901424000365918102056249955562704816336099074138091637675965014919910567188649719246300781176541065737631057254194956558516213899891766892055947351446258829857266082609842335314806800325079230625533227019532683172501072655209894817367969421083391989843221974015624783998246710709853385257846619182715894759265476864165958630932146141897527277798298076032682982966798937501657874752423338108089297119378966904425804867320975179178858514910991783956420579261141632517612348093693683288018354122362166890461828772629681546282454524588961776504737767458287566271650650100240392249938771850707575472888986931426670021690002599761794391894353545116339288193463606411871311443141192519671698514655242959076826837666396943095932016175111956269670868555130836214701637480353705286336647006549036241302707408544434468934310072056017108876848780735974757224127677373602551072982791601174755605786997936885374659097904911818597762969192895573557033079006713295315252279586931170515765301921695898265770289938640696601775382518103195007559762731338253047959852446760571883470457101556766236354094880067553621318566678297506665041994908361617781714360687897627500377706205465675939512756543752171153698211906582984699566597971207407778838967986205888609109751794498558860273902604584006283835860344264039878945393202983121015123006826278273406067007062953012028115876909364100499590628245204719199693493888902122493542936980745139675829109861230067628747747764351952256634850552130556567981795429707788221341392712164829279039236691802567041165645872773406632677848642541146868427121866518108063469941464938977118541619571461628723761120773228295068962230041559811676342383111698655921766823368395438923648064364646632050296306745549314403742556617194926184428616681357659726875799403558274095531257854684456574671652978229479488074450845892598760511162631748720608509545889142640130378246318539998829487920634063779832485958635918295781985041437704687612776627647555944422279269963595733037700174993610165284695320073400293516197313633119497308043326405893129891655605077754302482040894312083233930979997995863971223022559374001531223144310656775736564238867181425906806446676784926486642211102526243811022005251757753050709174719457045603366627060219937815367009929392847091869757303016814512023965321463946401176470953002568553278099961404043850889664419678971366774542295211844595190193539451989192106907932214684443767005444301320120218735552891190471261242998108688632936895650984885419651883522479071589773211131085681970282128563254839284242138157021459578914671066212152422918176165034150088725818492001753868775582399983455839429258345575665288622202631033515489985983405904485128374160288192567074798022676665590585332449366650443532634029326463746132245999070370567475370738600371417858722745165902561626117495336292276849732700585659274669454344074270453918594486131663865651650019149494935321993587679811015705205560955900911352658300890080579782471750337786716797628526490461245064194111155141945737483890810253313544928220650793354719410457438790660094417855996390302041250159631252162352946691652381748597318504850482108866962470000654912341784447071734873970235423937360959539521631530606579487848452963267299063234375744252857743268613200316630482457153852729428075297045263180983080915034183858661745169593460346404104530274748680655796763834121890984121401403372216644456533032944810500661889930509653173630141594738410031772288241783933196970142342246359205494895680369144666690714705321346219609246035894034613452457481161709322762827677594577892527791742638921134083763834011726562889042626245730945947262052047541042596646536286434495243072184801014611938442275914457251027909976114669557061291286191392882031971366897583652049462700944535937497401699935665486172145150891057766569196692497452807971183866458951610032643294477615460185370874705962707705824232131503479729961053307077078774359437199489227079591327500029643990876405684938319973297518266520626509836604648411586047547001095725943153304434026235158560192710223976101443344155137830180365398259284889634556433343360075499326040884182517207309828152163592782882506888594108778722035118942423508012483094995835158753659822403004151706784986414604879204721447037822161018878326757277143881713881185661570364633355603707074527413338550415765922192371190841890217355921748066673126171669004925003696504158569432979777658186748193944658096449500338852846116295923182317643992334313513860163415892113132137091196995478442503791271241828258285238336323803975047124103482182695756969853701456405073154943864742280274486443449274271267582251647490252163335779177081388588082373476524617002169616208633806183413430589003821928719471936723545298507410467875518229156102925478426866596720015426196536202196315128209281343911680953976062744479574474998734955297191416434190417405808409062987230465074463479653213323211549746404253030628357651411428536394542265881670734178745898886836832164203435430976356662239166756719485429519435481264948554630674990233267670491726277322825111060928863607640843910792690002307095789042960791131464507005995883632200334482523052677051045207944251808060605923155339757055633554830266691792044491888399009119495586646324945321773216000646162998084958971240107667780063259001243181936729348128233204695911959836388739585520715714511748034455210115833788462080229317182847008345338685797740255376164918914387056401123332193217946091499053987518251468008867815366147986077639428587138903893777331495862352845380427737054290849961199340026249275363300572444355139475729633161297690032909209215245454594366303487991415529676838804258318771899349925133474601651052577923239828526808078570244139370290173428776381580078587221882676508349298893985400414488905401443502086925068417345823982439609808206442110319504985139965096658704987243996147751221961628664449366872010709597488619512193890624713054813050181978029587446129595053256172764578085488088627303390261417219581558848865112275333810181144432779417587912866310151717198784882425159333569611727078245402979539156098130644882915606545925649069900583752387754404134609854042633546649100359582143570713724983811390548235186160555399498463912229355040709333866103652017210978538337636459000045726023492999600360540137893497474918867756801965080140581616358379904332275364904195247615209780675700286436279766798111878371071463511293473680428868654575722778869781051714406408782630403448805508808267999736645330611165941307389714671299526492894277032906961764470527124682928309354334289086650905805374000811998770439297795308448768695524106745983529120518104707752219232279171016805976848074424397000287049559142008136125740980541178447656254121297115078908675042011557998776281362347479738174431215894784474490681845504350184853037001507543489574561336139771419958281878878827016756209307618882352821880595442797671639693633714980871315091456542111574144063495073273114679787133548193324294421779768586227835531739899679062004164825047405153717165109832439467595756310617006667648412285809483675096392561221457041169328748811054749218398855435394488009678522729087321573903053627951786953104280079404324536516635427550215637139685834846548126791265850835148416495635916052049656069235325039821002591050401613181213049879525861925828796631923578865019397708748010593444846367480112912545024114969765385256909293890276892639278351065195079177925085093061098746880326506314068933313736014434717808380573148352934130363584205023051061281491298697528597650865078342509806094753577209255834506297516996143409558012890985217908978493127139303173681182671575680367202561322289363470050249738154994870845607677701573150329289467801824931318152318533393106105423014341753432158502864531429644656369634292742203766178924776215702045911072139012111005334900080566777355229173886561575447063464308091342812771161115809600767937959132411130445640550563156554282136747589167672883134432919767572498593265972521634596848200843756788726646819210746513040245437509243755886400387996113713058066784100618141574662066073906559057554272941771347817029695048223883015064963966574790013496559260937043857676666443851417818806595472542935488622335903598182004021263102744604023969702060592394137996526094806913113923598887979495659662310006736267631785412681756132488189319106432845416757513552604130377571707386226771344125998542617145337173362132898085503137301610685443217697401024238322087282855672785611156930688957417917169083626312353427464150914744089390253308268370879616216529788987100076778856710594564809983341726458092694767473177882401114633157390529400589153618836261851475425494171739322906251182128873423683718811811192243993414980633730960762649149719300378089414854525171835632111356700726156134387538193826883271194292074491097879001505779685626135974144338634804368181375532151708789613734379432208971502777229334122211421160212498585044388532704915623906787060993710639049648299882248508902062924632142515870293041643382510798455270678717702644569063549026025703012573157182753766579683465155336450116984666767520170786789039182214252495002986039453565704999369859366440950479007027203609272018426406581696310691899160024509209399754313063891179427444172101440021739078585437248126767392725779566122383098832914744289268866408342108812165638084818442976694951739291506165951301384488194604353458409454457553255702495248529534309384498626942742036998015694592913098146133366756156753153292385540489125237663006050694909855922850718957590935594932082518646305389613000472658279175275010123720765333403112581578261776899174551408669336430495720670083364115348295883520633660688235048039318237655745633863976355877091802110268130789399244438048937759879474361329925085972851967441885793536882331923106070753125144063086233793439971088121793006715461975905420221297365150912944338677607954728353817007550876260079018184216778187676928802431307795869256336769267923636630662153087055597841465441188493480769918899164666911079446327139801160900602694475976251068727117315858968746706704321319051063270891940915390014583081113293359025008090588784590516155379920363853250116082912094400034153849640444297451430042937472342845319978943006157620950199278782724035412988104331474994772872825276225749466816692666624305024722031644934801570762927997867013904667045231839629074000004686330164940562400438929313162825635767999669505069542649174194134752340758018554254313755316648772610131425635120641916389004075295246058737354061625590972475734216941089917109770342483905638253588645834921803018986519704340114631851738255241253656849290198515973407643343094452508180336548488582331229104866161245268385847465642393873621216913649166251471034432539975600352939590498224362098312464484155558751871719111906448488631188020636459605828391600377938540045744425906253800124658575341469940232146246639532726972354220566090680403797829984735654194464535868755067033267069831357663999778258217320405498069727788299173200638468176670902976861727023814217899110264428117556080561495913557551405330935276992540023759569882821097002733907082122927425415510061033735627665087531002996895627098104331962475016377607049662790017785454231973817815780899623465298495909705352217888607725660068586815945219806173259339652912165025178709273093693713062257819881671172838110026726462242052544115308839443351467283560347845186336657438268349980083157027040332731141027742863855405071029852595879668587011662368262232015989604309285569373554422134943670600381752647535202557307078843611324728514996222811701123053164722091457206281978864801800477765346789639534519466635672634938186232149973789235176743977734957270185575521844774492479936494062107288813318465627360366694545937234148923428756166590498106836424919388871592165132135652843958670877783704362630038287560685241011557821948730967737528444094944375131673031905889364417445389018189340721941185352251887570250682432284087877125467107914706058964392646255123953551314003480902095936816246886351225307298956730366430209587428441365577311600490593480118383069898902128318764095607472827427376261270651318051577947274184934841409105146388344873839797771880723307862395034261384506708947705338119769274171838548939321396155708299428324403900153075706454845218994135944592904498222687651271063567817896144443197602145372688525235251360139608948440540800332966854677361518709670083226997118483344998856606069667933221019544390313737301570822211940585185058228861605235565875718152696907593162835605867389345914057550259678447261628416338872495627541707036206958630012840673401085580487169596755685695076994580892751473961916106072311334209861860663155923267998482145193978832304644919343874689417198730961750405019924408620114833667731355478816081959660163621563569358222058705939558617186402303572714813077363104106224890118318250609710474150831890284770039101670033586190509264852613386774206640055737782771470302136499737127313618038837533214939350087068336899614453435333969052044964521607974748808536784571782664303204292746149005214851086845186360843224913383087020471168929885831812972474399174354210360637314446056598975677684101524062562511952511275389650859148312583863486118736169326826884859557552747297750137591413526581363427418546320218371848246026253668477116250438933058848130821710899356595920007333203756742036725518316480675769067938210747120839419109566205969492893737379910132238687481304628848473494536363806615830640578771699225987428995126934098952105833850642657212202777520020912610696933163194998370947382268370128196079943871413562598285684128208875206306718324845975652590105811029930909782816218916910562384214161503613335851739038722181781500109414269346397227784789164061863847742060732965969525241542487832459101840259067964590078566442475382999812008286974903771811525454951013882040208030831781170518372834330058820060295918819055023975098736073590749653079626877510282202352037977707495205498982799701902645132440856793028522807470272297144119889312978765160018815772680006712689447014469643166105329351332822228175073242824105678895547632456487550637906969879483497323297681740883578439351740639986221020720972186151337618528536248190124605384632347628756747854496334333442783901606930983308509640574809842364213748300411690379063593081766970674044268235248003732904547022520089182249421633872033411709125351900910313305777840912265968592691224594680488160812166267649913583162287333044270190725878549550146884987059189822536753404243930574409271108367056813454204642496019058725450668086522776326416647042218857031830369165609921180662056418446107228118800632998576384838249201521457167308707059703728587566817796917238902500199898093829045121230689092183568645403911282645216841028594115318107026304701379799142289570383463436720411325965863148739863052873688230725912336053637632971386788322458416882897932508703320902835068356889249325908704899944182983709328552938882730278836441456363234254695696572648456411326030558765822819350290543170480580259202631863773826643850235187523239778565246464951822198269273291402417409809402335487548245266193775349245944535910168209445926016211751593118767412416410705832335827263978649929766070826477667867904050126089324520185919281863154163087382921872549767145750642769236954532030674136524924430664072556809909853864017058810511231431439779950082082182321887345136055198469927514817354423707183089562028023965454961501146124483008080718758440771280377657363131011790853505804382232716902775751720812458336463224816984177532850762891196783357615620470913585977358741837108774296116366720621435246382143150794714517111299839066930293591142671908429228359197356623191336036257459326223283048677318642869641415609286604833925844731546078603695897689247024700419405320471408039492640819348671477505638169659422793798839874816401478797812456525396203353479694636242344764162247472276533418049519276794012051952337850194695240927490384514084059355983779232945243738237071725256064331334942476620989874809717947870703841068265344574983214189892767546815618951935650686360227391082941020881506715483274017381494336282041670967204526892206694632575678921886960448916446299287251580785693919880494061144240456827085986806215126691212148569753395065500456260297419591235429382494046322711643450542808252968522745148753918076379442955414145877544473877729808025069707508176612632852802067410089186899877574550713118391381876217057297725351566723456398372255275902121260835218723900755574315085636935475780238863884606692152515402017369368165960488956210101317137507202508732068698915846197148355410089618656903737388100231310163511886628672610038888877098393169038849134840748650328610208722515441787983431844156816615726606586224151337232527720383633049359332756363215907474962245396881741637645964003815558044350299515312279966773249053231465259550719251317487234623134946532276829558011158484826295109379106816741476083514927776264920626627487402088397690704491115622851230568653587525743632111342286911682687048255011733843780283427058634962838571617864738629909375195494463710039592257613538322595066820287496455045354493270477428802773288699742908568820540841141476770641352644702358108441206401266502007262479449739989177274853748166771668031568054794139224719438014107317453427514587454548633438728079260350875745612661688779108552585601946375410675204358089631303341256017857117032858308288553865235564495864332031703836881817098484969539861373496118769249513116013310122654735712751897293815926297266182085075560522102223570791497973838418532705555412937979426016840636887755453810774821169976017028402657954337666547265883535154294545646725402072754336896014946384827564355196230688744241635775233244601369231885561433299545032391472987112570400788124143103450249971843296184577771178519531882590155723959379325185883271971828638401690344595231422902379465412474770677082391794821559193681957357416322119222020628537115627521766955780322678860008531093289754602975181295319324833687631154305579159955460061388242865309955314874449875682146413853188648558994047033938799813337357864191963523475892971725429827499230466477506876769414447362736105445731929985775295174808878118576005562531774859964938095601350550986999448121886414156568716036334416769944603898297721990887097226570816791375570643717450348442902924914682973605731983527467796219839642945370383484500350645998809237621685733892848718946725590478565006748309889528086330956946304902373071705103188403190235097607218817759310226991265202354845666337123782244397397539213327404216125244634817139605954046521421447093990382369508494010296625754262012042030416114441782515355206229357869088550643125925294579833276779713013984541445678554281420571587878858256507793397655830429114996885483323220990352501426868649714891198663390217373592168717610212327189559563695223783985716363013644884629369281811533891272111630335555274353781903687022623350096019044084236877645941875770823374988848725709406510892937173149792857370148699284745635818953084330016870416551885396364268194781243499442593652201993895463932332442605089991630190860199325290439095389318194577426508941471910143956690157724731310337375363469403716012125052941872577756089871237808421884913795409826275829131980878174594736761276517917745796498369653584268800694997471216481458011539852432843894900421409983417702984826734529074659064088540810294801960402424867692840479104023573693096839270633273858596507644367020746450638515417841889278019188044982126114019357355312663854851447982890715752482290619201207891809634162747486065778830928916816860973225737829657067528771344051363793036860310677404272546643374400184420807763188699323930160219348369744960339664966439041454509966517730607593567443129285824418677218004736785888746271345412919167684947590017455370268102631421142761049947616674613201529277280432948365097775033897186015863801133761025508215734022160770222143920793913836730932229318570908424861262588686467228843399644910291670403846453562658320264553637661587422538476235975009225410906924559833119807499036500247175988490772419777095666851720359025877772896049518120384684448023043047046976575482717925387548922512649732405744765474680508075165523789064286588974427167094797207680622801995327498852058883939373947853754116569328484357553158685329065813715604057963518349378949650293273471897174138633757610669560022742655760243189089713459534064558677664105402367364966157578709680431143266225798041551123613146000071008541531699388356833314950046493807552839596863306328989135179858356581201807667606032086591100351578517940189211113854593193145578191261908861008450300271957365216594675929961303341978517042684909220680809585531797563573701192334333163482103267808460324490387058107507563031349759543601430257750935595624899067656042271657303360878087657300700903110669511531546526101587062483124573322570445797444104346082706749270170952087785239474560364863795032396640788244713976730581461175731501424944416590582573299485005358811122499028452003413643620271722232219766641248399867270722890390016558995107669752387062340602598434362762079565784620186636727384142173954798269416116680889387223184687232820383096019919090472384801071975622217308100537148731267560982733663748813440356356961414622560354084083561145264174480199870197792343468877977360667834513583630129388192627046393409325498903905936603053661276476420914089374214178453886241667687042222214021820087985992830027347046021601449468518012671401905817951969363704986243436345172137724616048789237074328587510047338376662053479768558370097475885263361966232756099168718859714958111999508737577663333413364636388541732947932237197941770401330375450873955183848762179785241650319639745669962853122416178718046628341603321109590838527864538074382265442260229616354785741791808540138852774671867719726318722629446699381752079535154448813914340111672403722748809733180433642019753476257288470254374230652804457766051488039434427799409863345006604471598960864186882768852128395138121696909142477563719289645441824722235448755821016736684637128854012644209769118349936698702809798435987776319775965688411737260003127097504636649637557700421609933094835024770887279587367803225717146716136766676618500539746078623314258368156148290798944168529940786228336059610099631253641909314659171222828461336469650343313852630758597560501897861386520630782096755450530431763358093991699035879343044051108674203661989601304658241738698010588818785981318582310365720313890951259721601550288088237372953592909688626523415165209083230385541991679791373443777787193292667706043486127138192871198241059858259001940417172343579451855800904578825477804326970729813309098498357517085030615194377217672359136622206127952857768483145188697824843255827259411012501098062579321543469273640905008116950597091667708168564522810006637356072243804561236820800600505209475652615886994149380589216136594608260079747184200157686472437880585301483127798789521278479540728647980081292522118249748073444733565755875638805247225894059257224346743090314590103231221642367745673675513568987188539569530782159765787358035505317793807338031063218786914043596115930744306854055189864298950049646619724149975420785169214296844001029743269093664979266863688626556699387082449629235482694481079931576415978805093697630862581918770373193963242470549173328118504872710073048744051180086103404761322204319542881886866508417742073540625648228456823888762672941196633923876906598561048465931109305654488339618115840169566686620644193368214282260873868055157252699166442228906683737518406614722052423947895946047277953158201130233799944482334757684939490469562986789427159350471048005068556222460698696269878406589211328546092470721392782058293565957018833815612412538212226654575719424054429202259939258250888105556016976718136710097174138679904788373872025011974690399374838875147563146663854977296036690770476791234506950470027188523583867014631821480732328016584555328446802634739336477173224201155532733472566490071881977432646193015816330171923491740597843367287339499331957233409016360278413735701529109765310769921309286870656196404358180836109296814881071151746592654178992113181955121397362888197352054906903727320559998871987086882979455841724690944147984249913035762727357956395782509764819853445193754414594901105002733142521604594481155060662971050069827962287807591547915612064484359710841283295858268082261578263652712084436225877317228508915993507629927015591153859520343121448031319515059906075490470680788338696088246401092401908585237574172925539044102333294576995370165731166943056321206137487764018652555012755499665156169652209465721229615329235598243379918921295245472314975106424831096457421413390165562453268102847441033759041772112506374257512540002193644694865652889979459562169534609616577833199473635087762718522495745171482343929647965636976868289935491084656421231279878536027489869146663363964872652167712383696151272701389879736503006018657783136375795390640868466974038218544484061876926636516913670533578613758101498506640586566900962928446738383237942632472597195912216459067447150348576905993134288509376974172148719729744826606036730303930601061738957090556375852221553590672681841810627397658881129076285418086702131373544581460004388007396027186061044174378332375650343529711248974337548958052065013583187408119701657922341468102990020390657929722916278140069336910675919959607698902295473977179760785514665369173467699809634768083991584420813384308688503906362602929932635566661176251045875716711627799850712624688944050417706712269043193351623630690780639222239213025164788622818139143606577512257429934967485936324091826715578816497631151297226984702524446233844657364330282998504397685302761083450484404375875614555950235257758068398560427625921379018258702046682345612391437352325537790229652226773556427539982172792429037475540188060021684855340578394407486089987881227425379904149114081778295934723110154122012243290737962362308214889850976240616935507854480672237035240662957774234729193320266354192644237361788880798540498498973247508761934319661435313152311838988257274698740582289715685840978899531160949259168334295600206359420864048715406411121492310551039493091976588842498006575249322211367090539102566296185101901747409978023607006106451065140075195505415477393996208771610546053995286094577837831784056310930995220714456033960773838981114559113961742809332840240146864793643850018636027721450566965156073031516834890157801053883427506756034240137979729533412119767178384451728847691278434313320219582591811823966695302081062369959658804501779664856134198035749309065680478825750865229936545897534278503270410879590598900633180912702774156378131041654985237922341652705544367521433246870871007593505278476810362436015113774621242992883506028664954476800524237496274706005987580883752195917306395274544944272880537498926972730066645390949825207087648626697612521702234725269085214534184872499011850717402873883601142854124857046606655402785358650904515511325072262065605722565183761808018034160149374978629251495711615370553931911926892737875128467195083155253404913640834258891616039619109272693971743397418151987572070969090483993005207606118605544007307268139889614956934686095912956160470249397447437805687099984286912939232639501702971756247874270848693774675079107933021424886753875815418066585890852414387247677270697264013960589589877152202744392133128658271999112990903869262994014478785750590889089558980924588322629654680223510317756185287098422512570211687839473188008772897114805129719355439018815169371613059641740454618964628960138439756664310185334411465400197734373068268157857003107592376045630405453192265208202322790924422328748191804777234761335114729555278260661834342778282888313007209939791862331888662070826541208485120486492983143189699124997744379607185332121376770064800617724890309806761861044665673986290609143665074769842740107323132131860391011924965690690139738639948736869851704070989734528248252760127538871873887470598404413527707775588980777905123621809957960395083469609437810498856462844487829356783956377646514298957216155849804562268943880665640628940150434077053540165749267070642185655718735237854829163022073837513416262662324804320151705083497846269414217195764838578579163211270500033937233728720328195991826117270885870402283163971360836783250752798356792832648126317090979515377961856179384859627712523736545289746123933544072325156545238074264312181584563350093780263062141882864525029414200466205787822955976348642238178061027107224817174867656182012607621471116461305423823202486146969247308770164213709568855396231317429872804832035060165726388688401964419641057475159300142739993902980726797244191605242494082935115897999419990443517010994872496252254399415914711282133660161469384904092524809283847420411579263213067771480238252465082466279083492784949413619258456300537112129470506135384839363365389198080655714345676907618462176539934235954516674221837167433226258319408450800005245699355650153918891786915506576016164140889827958283861449618759894638187529167299988288768175111874430238287491643151723553856696470898038635729125775485171376799424597286424316757650945781893303687666398908813133194478061436304263133439711456815706013442615288634253244001775020946244172191306914231077172066768103640892866913005475858537302092791199506837111521631754361797373801073040353631798949885249769959797869709913381612438639744386455710905721510817309850693492503270771181721951207167003547121931378688775533458711007685736845495356324366466810503390185223170147762207904749022951316469889990215335148890313746358875864748955493883042823733735105778084155941742166535939563437184477220375444784562729317995882349824575853586145830429651376890219306236177487697010546103682170590128049819337249986498628555000930447449512982561956860467685921751576006207475978183259053745824856535034301264325372283879649824116066070333932594444933367776305196273177827651807926540462629709945205537643750557647712584891259320473889587885695152002723841903009929611030767663667996120113047247007803009429114035866972788859532179666600730350894104571352675753690545778864746240144061194067581820842219187135975826737610523264447255149263591906205410074440159721835342351887579191426396149132940222068714838656631199382743018710106552089404078595630598831462699339011741984710358326324751244842525160211507227929728562783814214653484070856889318275935622027031677322523998606895629913966112913629110259751458040341855722038467211067459421636482011570531907597043350257009617703904331143158439036601494411190460784946456471094957271801630037319608908897879978259668074929055869515149932652109220585774974619912077837135541400526831575906721657142347433880084968464550557885579840079542324673058165446258771905571377408778088053164435745137400460121075410574495105812354598330303100583188421927040980708124028467985538260692992623968396530839199137283721668699987725651132539707910725459620648341594088750525094766099707924540538049370893595920218949876686424918378734746891053510030758574934420437642673882596757783778554714825207695326433774250103377991882518677259221288017770043799157369197110976014073377201413180855701770583024860508536744971281418556741825085646920725837720408227074871402348569706535147319115778868043139960377105899975319809923526449840328627214642656716709843727147625393541666246959739086176440102589039297977670138050320863028076723859084854784184467368676630414550536574353943290160618646759743651102995133460376972560600684144411084515383072202860114783032242665096429824346792938401322928979299290633059130220644851095262753486606150070779569152484393075126147496819698519843573370881205726468634298593237297666168598053664162878730355093518763356900627814076550792585874952893143149671925494703256884295467071501095997332686613993258923540979550692226622262472711636224128033377549675862356263456608421511475573061286956661540295115777515939366398167382926475339672659026939202720996529564065431094883628073408564882737373462100286530281169396798855004500235419145939234667407017237999780969547219307274906135214900406342561808390559926859432839566610818044422238839592690220151142016535062000125333329438396438763692384076319133540900135017937313888053382732497785668956281204419909567273517429122967577489209566418441338230090665355612349688537204633885139946699435415317124771651735325277395632906638663928362863476724542496671197034168018125094486041165745384916162827168230853112421081371734521404105003632171172616066904853687184340764294539614658904990500860448774725616937579614192851205478841552680955682207383422823123497273692003881069104267038289087666578848831966148599134009874985536550455323091516558291534444855506913700212981405435580087529464395270805758454986994710211382730777329712055420476353966349177116332131424000511428669925031438840648497408559708969996895446545722732959168014715790089783866082916090443531532860236955175406081313357242158623848146139489288700459240832110921123823251270873724647143142525600193737387679328106076055229157991293182069531055399922557402731345986902063090644649275633902709085234493470477629331861583340720530779213459562601997277522211077469640898804027863055203664556593363227435390942076278151791950953000956250437957865042323317502663531529568943944404413382529665982027436851447260204912849672390464149734177062822570007692211974124725153677711673242999324737207722060632774903978901423790777827459394093151924010593013676043283591692756703037247972574902157091365892172175254368072528362508438933392171818795833071632398283329432338736861360886370242388597280138294664437389048985275940338096938609997328251111797734390948118139954103366019983915841974725365166007514708573007804492646038128226365320761432021664658550237300410594277493388638926619173853159510718672789534433828280398643205547894743735027783898268896796844649300432781302066481166754185857326808744641383306201570339135421250319272280708776591735653256751884127821255861609750475547545092885512414799549749703131902107483828836587506427404951982292603702251200717342258549409126702287075002866330831710213868491135193262165744040959961397235790192005158653079885110650511011081697669616918904955025376520602526377625690732862410878083771334366782114462688326707212939332685289052983706778604952504191280119996611660183655496834157834971055437258338255180064575271837146643171452721637991789585676171198990515782889612662610215669255310975735601912684310226206938730563230921647245388099085444416212367302381965780681506307957104602287059516357625584717339545076629178422581553939895350727085504751845940025997346090721975209261000639282192509752314697256350728380902536175953311193961241060836855076058076863642784523450010676763120694172649419581430685287876699195381811750837265708260644411007015407737710100189618366596378735869019447060567261883611658516306384519600339091206456164721643637521941217850504943573114706715532656489711792096045255915640461973975513907068312121678397799918757593561429334902085040677696356981492121213741296001094665911198967305957297665327478949684220203635747426460095591451286453250945756169145101580118167600382158638640250167882056362014145773048584318989038627260435480621749061630156801696370861873716853330532731385212633526544201495149650563183625441930457198869375560280965728108645797389434423522089400306776764513924433320663953008017731946778491782555798000636226279256994366361204527197522745429925367052922835653801262545697192616788128040349636179005791098173513974442984847883656196220117936857561740943050481401413714957286311805050759160231001278775354154807279128530523205158117599601478235600493987586646838861799136729582341836775248972422764536839492586995673794095284775049563933961549050942698673297971822504782174883235918244842951141755567275062754292957296628108964880432661688342644341101691057717933278694146625134884667633210995269651743004953693400681568532168512258838900234851009683486797294845579295551715716398167247264663049149527360472184206594170869701400117587028104133700311229640890771674805392353501560141821582646735613200437090754153617117013820215736769081965260498180063568221173947417074857396503814120314038150197480964839598311400191310604038903192670206941117411731451765730763858526374222378912476212201819270378898043115282429823685453192759627900047141484143682471089659137243112811310206878655101577669757120043530356819963109614664191545862300447050632177346602052303135401385008411062002961304897438208295289873656470542040472168853073078279967388335296146721372085847137644714649348243828999251822201403405911090394038894848131147741083227313542437407334971262436844116598682513696983409199666363369838917415411958067820549983242462582389359144055423609786293704945498441995509625214248534293502303299642606487339235985516223232005190287715388638027862395604904050620434700772504963521449374957704889984455709729558535461602000487765042796866256342978433002628762718871572317548871281569902575412409922637713466052393655120586801918039577628179123994690245544463486890736893703259124116111878781648446530729581864721123307720488446929874436156122165337697964964235849400578312745480237431978191634310841909774868608961715914678942595929798839071652373760002269501519813724123900331051494588225643503564357815422957807294730943119747592762075996572749669908904804410084224161095528102486434116027672523399155659270168712583588830885793821611681069307022232263409175660379918353316425843700915269067842488100136801017843926917395726224495413847157720240453436895301199673607404037556022654022976243462503054547047250209305783340305257561438136216105167341503625855035735487878059721221870716788732931472440458384944359884262628781361379517819825495476840825342910998287157768042247730951464525347341992823256462710059407553049622512967088066979711470492204251148093676350935634545006015249657971497259935678354538651097797706230499864166757582131669391589858822697088210300857628353811824408498847534952326203999974052979528608349064464181062085787671669495138184102793461191985562189819384560537609756439003343229859847417400178033143510838177407435470864794435538254959571819031935392881921385747466249950786679336841923916553467885142189542829592438394480038036644147068168636014614840930077662693215283377729940958767929291132200768597294990601217398122884155941357397418990526228079513149702311790941316062891492013985027417161640122318070308259537449906930520067638945875703734219417995309069976782191145904856509380237277388106465143118640195911069838980258322702294772119175467887222132194778408251086923740875664613521656640973537508207489628199902429615113875858436716922946405454989327365184999316925634360330169957429582168040244989029347901766526841514770513161729871356337430189762091052866935410092332755219768698105566909489851352961543155700238974079799823541367953278481216358315761662492625390268466701170142414463710835279131922821885233472173396710483616996659948701502404996480559618785377032966819183880079664715166829965149469248261024491948515800958019959556141186370858016093571528149419693879907102228819321413712953839762735652401714276817655639055480039762607386592129664259189334510286450874632751620883011451796808392304699861346671220866753971192296493859375168116221552560703115461641809556508108593256691018640889651102029238214999117753512192820714817044085948757941054452047464108273234803186894444758502987521602336977339323573789388202018514824778271609157778652953461565167742775301223898079882272375793101647267453992415846868460503348362132300146282727872888600054220031396378321761992248853462436814495052118120746486861182738694263321088388808450650031323180534333807437147590434128177698415850107846240344910451870534456394867267547836339509003123297318866784345066617061713316152153372628427338867737117165981843792924944861321778058893036003078258135499499806773921411174179134593470832276038592544326450569917809034170519060466175475746118918970335547034300914175178622152164682836405865217596428084951393809593020047214704917742585997853219127216363951244091157467415293424184365672688392109554425182423060714847329503060119224481198939883524031658184453817434616839849819381245857660799973458647683046230099346764023746387621405665071288686591639454609220041418740131138472732517629210321234343121521929136265302590750163157710887715312789238527204555177711077197688111347828656528589832090122129013149709576467082094071575860034135495818627384624151544890038599732646195991332893126010246549457287063608951294210891821847783480300939558392691710088926610589624274125369370907655228116301491850103345057234870286442080428030792861511673659160447309204020619274373748821248326627731841358825070754150409720813151851495577138029723438192116934128074124070177391144058090684876864499582368620472796016122986854974645212383298418683834305789463749120796908331657426679627404619671862006508604299070873711692395602187638407446929598909941244880364793099502934631186183143789204801792125044982875776233070987529227661254413393571100346653994638523802368848047043355726712081192673489846674460617751324086183289017498449273781247377742604679377411361627550937144533588342918937553617870849522139836962674427953707147012099329632330281935324260318161792078933475810229064011785254750598679893206856767908999630211572661304953144759161298013701365868620167711524838102188774123038300906345088465399571710602540747001870302831068113557204417415693154443213300728006217329528426217404968081392106615748819811951142258824008401702481885221046023322599953190597067879679769576130525973536712798139492037352149303035923763085599339013415366056117578430453887129813622454495816217102298118562772789984694219007933538338752571677913727766470536181975856273499350638738266393552967180724321165506543045007924617173729839396744098648402046924282890433498657323476685850663106086410083214948145139867202908102551717988941297435310089351926178026543011798765465799748890034640345324864158346861732290798531964995819589509581579861959535065399847481212412881327234242759304990111567281946865672313390099074982374506267116282966546898001902092152917120027944650153315987513811098066185676893025438635601649264727796083133164292781611084623180864700449660087483794717233083060645540784539280330522574569356636704294304758857062874152073154288285528196867607591530290918930307225271889589957180736131050631110964146561590088390660905254318404082990909478463088151475533534019473922158191643621452164466860270062954515025010375472682767250816031101525872526795668452409618629381907877703437770657567100259390197215543554057158824603474260793298618000871806926911799305551954498901142265428402561853219467834948820760855681622335474271259113867171228248015304033508884366533664052717481109864795117818005896341519175116236980344490829502532100145513080712410930764222025553550857841302195137893189825565269602656877965342489779694251681733880733278206058527998497794478642127791814278419069103390405338995174198655146341395625524674942851651775779321774282670925798617013603627624302043612360889871310421374160441865441732299866933727122120464680474960100712658708400973324784157081146334183606752458282167209500201861909380644767804214974712944563852484529004064906117341764163842786753979638881130347676073597465763146929171036633296717503164222987730789175506564352328800686855328505221564001884189169828620030578046993112149981341755670237591587450615520726283791340705795947101464888770216329353278936717540080066451647184772106174189512465154667111515393506735646283381907382657469859129958872516092085014937509920858801460129823575443752492166595518697517554210678235843922605189611751245096760719575510551248257281456286278441850834901727677554169273019641691592875056771561458114770656506297103074401085957238531512920406247176338888934113771061350357150274232972020595087110603688380072350655342832212404112484759795387869150646487530203575389303743864908094312885779743913058746931274431444614928520000061805823595988441452902015683117355602819538204037137017685809041275827122382068849674314907877285067696960324505153744544677059027345063676217897538213393238406070852534080361579691194238637364108894641940397607825477515599580080390430551797175856358214574097329710011469465505595955060819980405206655019148290314974468517047398936044139497836964616604106979772642830524481480621457952066945249353831921651022323289889751469110741593557113902263947347756698518604459400321803008985286701641159626272161680407008850342676764634979588519938734680070640091526920348125004491729368899925307927998371765278866782268715397267350174222324404278551261855235482929315130805280670410051238312346585490839903227481656851271270691641936189106115301313961299514627837458750170453311256315976894495733044911982091961370389595606347009930554803633387631138382064457009438427659163487875446288463837102300195968053281481251092701640330475340805635095718996243397641776011387901361455221683099840673580428529491239652775998037595577430437116341751736096161165919022548223314218348928864885613151581837121590142181989387943516267902565724080095653323756052520426662231039544378653346168917589468242090144312561918516881943623630162284839345323623123632666944005954252169458120023382097935773582254352004841093238823616550383020138328904436327323082419441591843343241346014246900186269171901749551636932505884325131408711017383008894102293228571190369156383899793334864729320713473455110902205777258786910374667232135121407308928021810843412717445885651329086609683833796982193531823589297538484033743886923215638573589612299964886951046094793210734435376485151825778429194955442169636397721677707774095181181524063028209936296714020007296913906667475137262528040434727810991859263871597963994103932166809452242815262698411852686050914136382628234704162505245816709444451468660834305048958835282145562033440134939690964036580324699553786418662427905026341484363199090017559861903800427551326772621960413972036208154632245346919724687860784249104910239732600452111894787651268725857314024790151249609892159559973276021725180925340206291018486044924951742431563689887000589097726841518367221289498800105813830828732229158083186610671269803951528984086731939823486750864612548479123072617758231261901356057289673594184592107167315880309394731777031025377910729412634756551292529080311088038389763341882278572378558406288498353198099702525123307922093700350304929909851833784229669677827772108466548109779177147484155414256844810510521216075025552946525656214597516344625591134303808710541065081924159192170470555541312374775040265553467050078766371873797171100733449978309517037801519683544820292555116819050323900961871210925814362410115802505852981929090085736762966720177415389320058560689422794166436107396275026722817801491602242303312873650557995218987484538992485721637188484676690180641415414130167928152759013344092574991195940870420028316084932830461807477834274683669878427963170770646751633550927664161285921130616142823339621571273026377200637071467183000029565134319207932107987439991359715259595251995840015848733493855811323735162725011653309638451398627982734419260737891652734598209698792449301557760769392114656378872242958629458477360801873296863882085984252061936708351364538815359249622570794143872267937715494377146293245633284917567508720223958996251886717305037434740918494707320954830450196111518959606832767599941202834695106512555311351734265757171343202867829201229633070220238797599496426352463313116661542590068683418145830864512338363235062727617892261392691442774876698050421689892968986514138081314814502791740059745460195416965845806509199122324778137703482579109611905590862509340259288473316765011175043561429893480771931608954708113104248620621075676298858707335241771168861083605249148964636871397066606371055225555451438647101149696606055917717943171937870795495673105370600465255809220227006956790635045327013500637529088189268742991550541987047747428754499841020904304268239993894566285501973853026231622322504964659855067436606598200502506408641968441938242785278272799760196441562893039328871099803923260755525596031223825254964503746920628274931386407852154613735048721874747748345405247119988587948265181398188866305085705924700957512576193128073714478128238256418650009644722963157215706167889384834687850853268209021416870441146667470745798162171928204296297514851275951769703003698676210544355691940670778358525807056721596396770760562226921356544888064306000122022286881342630385793412927613768903049067894693447858422592004570971964678962182795914543399145069313769274771325468946795484484732390012483542050908676878447064746828345073944084420118196539733902210722480784178393359237513476634505535377054254083217503201488860995712441150540233763318283442287833948735230117054975230480005970109369327339618328806565885921921269151451969496854777417116363055644718166560833519125032926486180450356088728604291158354870574532410807231692179415487411891523476711428093524857500311781267286458873378194255721231181001722873532566036255380046922915279458666746970283505069141918084834240449603596539992391079682701540949530001813625701301430623782765111754247421061051562632577990862061441321264635385700556549355331541607882184864580589530234152389632845612853146759950398199433921771631904757904148731921314653008529288701477518906187344192131533351910200046904809717062749084302227264658499748808607366828614594678333972944249615746148740290328402953380834300658913305449281485834327943559004371082776541569902057052410897313403379965158711358948824381004117879287451948563872101785110604735368049850345794493682657169779982513579012008387342446305742947004575009952314867440697177847644069409585013427711568195760633985438305953638630046418146434023581491760611637444664173263411911748891555104336888016685485864329233978481683082717066001583331059362694077712615635012012591362201624108008016330057226531447627745020252080274983856895678802157773852081302246999844353053683971738280914885187444387373455716400665883286578155091890934628926728563533045622146063229670064141451846866855654517152210999344993980355910023290899656661098136471401732873774924526743517798009519650977995374352067476775835291388927681540239174738789780774185156607343477427469985346159316475097099488751525084926908118267984822019063564768650204832037059064280889000127421919137972215722621718330716625380497890532482084819486154040799583800186733361506671818056877613430803505543960809044174275517985666464940567204563697464704867200360533135591473177941999026557784291195542424764777267530141759073207385152864489737139429311066219620926552892363478140125593709157457209631837753986626788783852014038960851701389413802091382020849199318211361930173770034081520695789528562408152757130984711927433923296455615244242152827231988165396096151860620988057677662178125692869863036752969856932328025207475899385939234227066988129421881127318073065677407139586904144043058270212231153898520118053373612310351218058020796503225726858901052952981186735879213769171791313592585973098150502673099485472113181868536926195775080534542811260722905925310676770872514460489240782206351524967410439153195118620903888518965194804614102138338377035900397047505718014282771622567926212969601268808784955009255487422503642046668283818757175269155935116561980371615757956841486110091145933175539748074588512310908083098072281509497631871473374432609608866300326999531428784451365107399051269243034919183715321660705164035342215770115889980365930048209730797840796239960893240352941550317489697951278600257066416511441241409795226124705152920337714321551354451885561833237764694153894964772667167152094411670596713460332159285311419510318523562967198752925484514569792457168730144678955187361087299179606728807032112819823231397770473202963440598147871155461791066562925305406651228832574729395204731680515314153859411717358541482019143341379444318951479926439896754339021673099978982912596727040148656854774871280559240947055326715376335513334120369773122182853509729122174370629145762982633547351722401295301790303645687413859289959857611987865209454596768136079566059622861690114870622910916387470305481006210256047672911903309236757122723674642028802131231115318616283880765000777682420258328445045781017781031770584509942822057402677182834247682968658288517046904808283572931746710884449113180966065869912195430139859779658439438374877244752026188479192748556880051754847985972945849744368589457715186306582953959193578033486328585628196101772812636988466040794026732822810507883886097924408687623762698983681477077168236365411411813467211171131610657603780312874837245705960431751140081231300248498898545384097467279281395442948601382487087230023147580558374167272183626766351955504654996034448824892508470970734446313320425041688064516098047212403252183256430982639431160770854631840116708132635876387209052830495194603293455952956987694269013208776929811372410706755121929464983212052384796128486209032408985820128542568057145695367866385933963386636038933947811804169980262972034577919447588938096531740560214308456628848889314554527696315960401916224458086896817433702560344463382242146071098019640489763118604889680631146436355840044946224057962474957836792120490374701575409553358123177465686367728666191256822644567242991955709202176275712539115278752434276120733613783447715169213738677197462191546632947421062793650075991856697230447117849657166071243549153694311289119966380386526352236232446491602115962933957929712084582407992318993055796672628374489167347676976978895095947353257446657423807534231284496706856529482080511823865833208532874470502849140763386769588350084314628354527352793159449625656364433785483226000213874982417731781101115649991739682021586054452368391706302011447495033861939553535832978066473397325051511973897936606098409455245733040839625764953534858899158271577851717075404265898236015207288165373021244425427626257892938993700227377223167365346275213834165217969650412369885801963578256304590053341182308267173151279683266701704856192896573581536497416688472656321193809248548055322921801567227024770801762467113337589404316650514718660742499973196666389242754013418187179045178455909239717329119693864155633594085927952449902884565570743260423573378834044331310344086997282810913808298288975869473909193136561296279789421851398278668105997077025283477039018002330306459172777835494731694186223168714358887380898525711927618069095545678045259397234218363995786043837255034744087446274676366265415205146985823254478956127826022996188349672490498519843967493325208239313102646488657038389035057506329772454334575968010479848397999227024727107808378962361366833192669112896041977646485176875664776602863406114609330467093011211769689532870514961702176041545285178593213007964394819408919679937942623077613115023792793295083480521540489551536215493339005333653718662404778407970144191941245491010605374225800016831264903289103897073292129681234501499682081596910419726906358865055361707902271557403928114022809430938152421871100716534667370918104397136649120103095881986702736862607446033561536286678994128768637935303897392483889582090089567126102528558353441823317052252878284445154070508981082405724634517344443440083399091628441202415879164061759860798405076069148385506225792802663130757165653325823161354848738964836212087932144296038722447538704928937416699881874118535800473491164354409614268977530425338529471885475808608151516445915106487191892067197263293342914211574898516177363005300492617249516937110485810239878461324874945699947442585765636935976253991976235686764691595187434160208734173558097708239894633252824236962717424984250260850995916559007439831805119981249371681387244713081651301283490958266602945085487409949076401429388680775032878003586496032451005656848309492901834296842318588663437927519675539307509531818071767592864223310119580447479050853565218325416375094943289358228948551399108216722380023221405499173279298711124417461798741291473045337998195189312167324128218942831975072916105003984248326298462309525766985933613966662203949609483276255424061470753797992281638470973999940664355173284895898132438201761177673913150817054642853290659870513063829586219496783366952925293544731540029431731127577615593615157303417471034696333382070911726127702300427696542350326602705812033129208342821831153374954578104715459012980948174491754642542829434418864822515114312538781432088880408587897634376983372500628279948047275632961788158272804387793772865678113659300983402092298473164964608733745105665503318376759598739477354756043563448448313289627830023111167688328825165941087907220951420687365540884973676240661227486687250899576800211815815187547169463020508068300021361017019169281284590512862952738068574275446820188836473318303306988346912545984106317088773149779938184234282136812155040819780614384907887934368888931104083517121844009075259441585616220701961744071755273913772832569066397693092277347986918156087904385143717730230846809913762098886783902684130368729100105388685822701994579498122380778705860232144239988834860570364641255193107578941890944831105481526658656053557436805683335120211204179914676455347382597048310211345683412830867183627856453676055512942631728903458701323679379001146941553439132052766281411553336720415535997674543446163643470271665801958045527791067749181569776573746516657006760394149799471589044990935140968869982606154238194197285254800516262266604588597206986584641504110903427413173316398524734575116815044039682538607029537213001459300596983630525429418770416210708056596219282967419434685483466134562589877781612469750001029768506973740431380380768141334823386207641272610222846743093266786719135051513515490614879359836518346564049538225380451344195448504347505876769799064852391012964447372539983455903192014720814764439148447155604742923949795103390808002564307358006602304483035762589765255021616635215337242038856037033931106478029505030046426743143486280510562332149820381850352650330879607954084800068873089689381304696470153040830839735096700371681019057148376891927744220083563423234265093669538770251739369460704134887414534689525911896228411837198022857460672365306621447168494907960160157896350422767930918902439455657275164593314273450764065027835418111164070485637896638203452506758413219528534339329191441956773372624909622518287820778400541022718654879802929063606120240926498979886315421771046657587107136045801301059728102669356433135710821785404786522562909599450196228300617882396186002412041193532060434070301679002552033781673305063973727417983305112999074390308007681624394893172402738304612303486359814027004877182137915526459606597273541092756230109039262737193361095501689884524918524431250641602056465429869784719031323168204257998484541768953203913732796226933002317911080784393190536912929794353203762209282185047200222282341514354976503595648514686274445382090914514250839875701184988630319031635787850227233995241185711730918623353801154082034270741378056085529808419957391524674177173448252599158727219167423288884432785101653396125120888093420613018863974695499851327578039368062297504343797204085614563332783189592743219502564633383915451965366768758521564724653483138970057937448029771968476983230465389789009850990283130439973981163831359929969624843875784339425267183890416720563824144898355642463883727808260091257831613437920373533167306549348510633594625169740497493487338108293401771968709886321866561420148681667763062835491242829095884042165143056257867022897120159756502658267239372881702780121943254515953884422626924426296039321209340633403352377134789522096843202681833343114171352168479886555631536585812555771037225579194270629758834060328912434909149927563090060461367021913039736398883750029781384796977870941536808416671555474859512205647718597889091537046263676592168547267533071653001802761021600611260782162811367175712123893565269957251606875212802602278447422424016439351932300839489100133542677895789487051222372680341691185399166119057077249598201631966903009183233430417083330670326190716858720420061445736355959516257686581190406421336234038307269167833753723432425769980915135885452747817528554342991748324507814857619416715639270385021880461781158074927861310288715297494679303252100579518958743424462885936183210059212617172418005078912857656343321828830471126038832676011275364390415326063919074356314638667167443713090030542494488677731526910562450985737655577194448517573790293843949850033979930054414972540596845158714270600719664513307411016602747284284174771248628224731914972203525704991457785470665142159031631616886164544160732852104782276128033753798967413917078159839698571169049376079385759040050999001123528595030894784514222490893325766116548675050995604642011130190352037095096456818581157642293936254566230226555458465442258107665742585680813157085725960188529825068118580767472561379730544524642797414130552182442453208083226698183574673835930605845800923408243280926513362949165989194717303540833802428259393472596132593724703486191805790685667053442299496525637532091544317203179012403061069794897291254604310569018558457358853735417182619988329579268685454970311535628613661644676882238918252294092521645254458913012544866508610799513693499464026570040029097499973254352968120857133191092786707739063229273988983262317957708259922417605183261420918280022403956989861434860693576012164244083196932520330258925311757640024283892067758060534361252352868429564776571641189881389026869452902495803505094435435992474348874245012499789245848010762424819130531890584022675888836533272176635986572844271899206891872916447476196575625502334066634487704021225726715545691856986640012855838305534603536035511346958857281586689832190274810028504403414324241756345545254259628694420723894597843059619956000833762252739494331506904620342118344644664678659720378715166254207270824016905292776000339089484748894516740555007149852419793053540058102210238784925088188641645262562842306549052624423730512727157580706136859999598119002748828624180120868457782063631838065718055575846198717202405181970043211541888407463737038821940131426152754822248439582601882480454920354987367679565378757194212549970096420661954981604318000504550746385684578811586373175159975092229140516694370634289773508223253351543534788651849039659110275275080468698671504357378730745247083384677705362494351956007036112207728932555060946513308629559345336685763666943596181986975445578855117641392507453930948186271392608823521089763710256999980493988684477536397002636352041287828558365177743970833371977740279816750337313439647676140935865292964940224515800161986969659601404590464260561374690019833641174274966379229141122941386404080382817232669141004777543726043627265349604211909205620105660072433945709992642052190141840974895844914386269356128791156650291077200357520416534896668764600051726615732722865052149622918773750466344197330468236902144945852991265410579857244953695917778958773057849029129436659049198077184682494343609501852180546072698101225470629338893842204543724592562797565415758839370747588218642531954639647410891617373785836380183450118248166203101061788190164175563580536729480153301129985754108158849526604761818673014185192879643643461702900100103156858644143223776265196581846332397210445553326524962648986782362387429869312761117373662924297987511806773845112030850550542896966821000631557349066267329756030411019270643572249920378486001214267641863365321718476190583286134680812993029708185236054116183089877595276897410069588329431290515278681245580731599157620053987180603990069358547315180183647926003711398163968249477350275632356332970296418534567678235017774606300803299504578911373950980713104369277885825928898929722762056217820708458642506835326918728607871631710454756411856407951973055747515026434281944558628428270447903487689694241784461922754728608825237450394926585592112913866916119082756683410713051908939463336251214138268468443502119483446161170654506261887947816806140996203914782084629083028841581198728670044593992251467140932781171020367851807730223220209413612996560422600208307967583757702445595436443676027267550707703556065676763073527830068763779243037210427199962810606937737704243539661468960299405476099198895539868028634996439977706023650858592739792096767834507929301938307938921855810468691266554042850227486187995554618484546418703970867839489968873043520124818848312301185227156388491823716033715086964620659868802618185479536119142113446944179971472171135393899374519278287650059674344916067182461205604903922864127532059588277448636815738528301766366462152925979356251364867709432178035107111154702163527762616072002566567876713332464217412701394129847542895268394027352969248627535461186082287098592355067699297942105740436945077976367965778461753385922745980711020035906607247075035981687992052546035844442356149155630232837300561218024838407637056630946961852275207117734710624804728133380229744789556275476132786749892599870245158109935447459182139649260284719700145958913959753620056942840475477329605980344322432535184369993716405649701268787387646800747229627508469401890862785305695844300658086361548293149749512775919608134532505871780329282848896150035864321223371588127042256170370430410328601678655098564062736614057596493514287421104335854539864597111126518886217896685029016854959798968982268562776376750450180464051020968019549179411258460447802613649631038101161679184285988619414930512255461011904553739794524168747644224092692810759890591050510095282707431745318865884585668365607339722720670356557227412984126563606226601035846156545224069902621134462918885045811788788051900930532621157816550184130257735472334209222443455248872632723976035612133959958876039938493751287756154769597699676199492204612511283690847047537665426392245982643996556079024652649272276833630528733618866220674957668164303106475585838478602356467588122076878956791381283342230924572182112080144953787174388076034993041715775133619296404644278461491788339632543528048200459462272887425580027624735794259301041656122067082828218111354435164491045770793589568957582873616525993512155520361963402841326373535525572470278108576025606182511360531690625378820877013678268618112476856310348335319690458223827079229991710291885547737919898534130477891275839164494441052037436415324281366349790541522660502139353784179243312966333548024848481620690865232481768771224038568026292115270934443359473259203091022507423778739488670215688669855658558064475850160043544894621412343963144131189086917217382423345263348642093023692637775191680836453610523138314257540256658576679439997769643294812206557172237714316801640977254112937577246002022684728451185619548245454890879301018632919708250941320271564765675564186652963481053431289056668365470967397409075375626973513562880715428430732273962074768622870056388370047205715152408467655826752986233025775529034424797238916915557840231953774884468172224799959167674554563919491103520102621936140436451900253768810674092003170678158080302409233325806034977085465087839204692688398847086163549838209349499847664064288906485684987853722666285462979204741179142714669413499279200363009418081181891397992064320612955912369320015493471634913943959268812720890289221138742812723431077300084237589579834166890333882172062452128104810751849910570240978036162556706324287825061134775824190671794316025631771262980846711082734336208056936414124374690457203372103961155218040843142303270362094367614784310407011852513385844674507160104781798010571517830634781029206501999261566915275484776445889911659589966965673114579876164918260264659832001724636692810974206785235601949481773748456843738045558389715277323763968388686606963881370581420779173023988581099940362294074775459427509943717213486725639000968543814217041682547281793257464701374865831284158727312712002372492020650706532861054642393758853698088825410953152691403287176875871894675346652989187196255974526108979235306733454463809152740251541777375108498519545391095580360883130913866334518604860010043628044403577032673640144928818805528235077702850731121538977365778717137319729625663970655997328244686022222012485367792890064944776695058424045190939838401961853444719442778938070302273910786528340153273719496869393159179681020294565926769643431715907669773926338375723558540530520746631890683732834706153181770008500577486904199271243022066158831273983912963433863151585642237007440375632136368249474413907060679622820350658603204740317371153676158012870499636706612909459086394565339488600256798432668047577048405544732325867283276684672014381982181912157375353345969167986887036215377127909039963673560299410908178535217451037461189422803549881282956616766722976159671298024875888367277351444576573934182650563290602297568209932470253961187464989104721449423580358503902162334575553491968915323421772155805756288365537812707685752140741788376075100406523425246309507456752093401338143227927055400328763900318500254261687418724801052271377816047012839877281693138092700622137100160886246246174057712419131199022113676163324873527192246219770097422730613611508420055122470993555396772861815373512002075073510973225893530456169590256266144635535496537349183344704206549085306225672753114230695232486862662461425111042484601940237703677254587244902844692046096472452367924080001073313432553891507704443265098360489485763324094556612470137823591824638884978490573462902486419922848611475565403095202904301518154216240187587104274637260858793443505145118627278084276741527186030649528785128667622182767242759980780590634341460007869103442610531070338513598606388104032542744382539774082695300577047447595234647710563366720389056858077798405700976034114562871424984634363350384411942214206900574752884779518045059097768286663581947518389717438061824586800070640043034343251010971553483825849158566767514970854903243166573513058668893213524622006040067267876922426671632970423870185149937770069390632191651272320606462953808100253461115005645069661878827856025105273572599728415615209681494232882595882775039164857683882017469951207004885568495294126859686335319811026411782074484168117268169590363922269209498149968100173424205470932149923238082435705000090495859161747735912795023938944979653283680752607804679234372825654866944885841827241076330489873721535504398332328192872886969312726413227124824202292321617021622680613364271154478112180376469721263635374608833877619606155834025240304011877147281306130587234969222516077384710150966009389968013300872833155964082037568480616423921622922572251933534707730717823974475892816890970289286907777869207612245667153328050864633284363940153098760917227141091394038579735370907226054405627917436456883518639855292187953975163199086069643336082267355439332718644797305120440386680005016187196746962938967469677494262586424039604503228599523873706936589893970955413710038179056678743563518479838332592056101460562333455712427458742079174047555103034412990094664372621606714452604580893364640003688840472033357455298407873755381508064159245059382492327027677839846631726940951249046791483832492395225737445320776410955102949665873953030719227238107507388301565694204388547049672802494016094248777677055675563888048377052070980408943465323762840561854286743469707244650911931460945165502288025873952192170185129461319147387315547963592608052129099559407206323080744534548917346874946963679255427505260758613314132192264386155705426958264069426199269596345748498316787102859855052522358993529787520985823794637587346781983030566892088201881325876037709691927651715358456479343533571355838684053690776364785650348457733922837886999863433808571161469826437039798889747391788640217421336190196976537386949297080099009771702606994462477255514447733492777109043036301088633147781087573545841445616966479143095129259175326547236389699407020275841993557873071903248987372722109692163130933909839630369230698574669385842650480499263903569882207116876714068148446416787715183772803746155852260036405072100835706578616424780654640854696548534274350022526781267199611121231527935044485153869830123947798194078600411776445847572806467740220516180004199919538446510998805663984139663114559757780447961909587403592751327771022527220218985204179795858126461708286419994835915722939728535250153719525158942851106542618802805497036457625572042456077602700539947188760982000103420878711006484392266846805884342134226341780217844030092820623246588596433690496357772828581716852069228347077573386012301550947023191930131361839846197992613868278209745889448226048122317289527003749635861496528869910251688793738901764891357101037915015796730169309066468365229208279532375969439751538502119646879292635466297889436436769002234506340243795691752144140912283357869647684777382339164370549091841685712119651171306542260533543881199652927025518510432393516983537175830936170235661277255609125425603346436049076285617435124751376250408007132364816892932528012901226965731900304522536034763247381513331561363320879223497225740899451478218494654924314925529910459180894315440834749299699701947277535475920533489152481542626832307552936458218723356326801662742516870438093137116176421187936630616087005518414879542001240787171696930912100199035041334536144394713306795315940894591485807946244494029468434575004684012759252839460029619194708989713931213688322407167075436408163683967923214499585661359922942351325511190545958059691177768011521413122845977511066698260942250935185840454345588437145863862276712761576650258464645117506703679207488649149529787052998660073332571137247165212828398537326657131513150688026870913324711979471974147347994933468512075615805940473690011884260616894649508743371931873398183880716708224913766103702924331226986968296838194833122260755325741596678119944449268450276092745111346911724933444652536216996520885288058553869928765651272456366321550067808129356655067136788112496003031856338332560499452117032358161417929581333228209996543912567663817422560671087386598646241535335665876296632859001241863663630406911955296453524305935163036289240820115014346792956226788139598772636123491550688302447125339928464373764795656363118637248244474007224554799433368356111184244264358446821552118945841643709416512997932338504545860125237671042388956353324804268133378408271983403748343834669516196806695731453269610288963299534034634496656476101907859769848119614435822910412526298569840431727841324382684516278698606479540403479061064364377337741075637603016489563726474410815881334302174348401931609911462528098445945847487853871372883651330586293214483440333455583123880670668223022067596657090344139678635812209699677481521419665896279160413750881471156875942596809417700902614663985003487456813535418744277940214627123050607011520220871989936977835430131282771576801856728724299986684649250457948213692914787232239319589852723681481658231924276279198012774460262626791107190843447118071870357310359036515579133305045805772125898883644525597767832563922634201990361041966346984951955484790379700551029076200600652522394589619475965734031426744836142347596765637183702975763181632268581643356934730807661379710265817108670665593375499960968967842984658211029904296132433011070959088310069995031050062053882637038592352490794072751606956803688277865373999476306405915445675162832633786520912756871789711289723410291194522559106543033741985529136638515982341194821426453623707743559417112489776437611727759420130834572940745455393536068777428602903231279531662572822238397297620024404951810553350901053775528884983650242019331682918687537865719067190371680488293790735975942030074459671929419301962393089951748014279685323555504391981179228932728015339612703304478265051545093835523970045540172498837465922469440889106386507577878159859492624469589987314753888285330631883271844067238204329492245473437584359360984168062757032709010131244111594442574133370756913684167856136600353626181585422592024605624643137393058518995711682559409316057140456311013156092911196928003455309197839502489886536197345189513914268786736342924538669887471572646043638850604536696596960918291649289650766564927888328711374661191789767925423681997417218780995995650783019968673998457524750764292001433371621782123378206754081241351763508504959362442975482972781946312384091601212267891576960549539813722120820929326029375710218383958735302234110629141584435951401500264403562375968851470426839439151764718800738244982789393347914953415149962170752233527633568064740262039036342895094705492282092918557583405221296909096453839962839314562069960080482871809877401271522872621568431420270571030900897920824540414904429460293098246566909897722607329344123954968339354589605916337002749355657299466931682097865742492096463505741104800418573688497861203600896512639601076038202864120424810930240846684207489913098970093885248958806887462184040441994980242591936123581744571571941813003320593274549481586964179679479411037824087000036921575124130136878058866481606038448067589733020953047076977459853912375433276000931261956642834243523365757888176144136607275594088239853683401465694577866866379024626300293406917024587948875714730637281147041828964927076185528090390336885727549884660242245232715406232321738030315017902095080326292412523197651130258839174741437182684112634720858380943298264701479806043017814585124396123648723003110064387907911200712707796504954026648619842041705276035971830952514815682522846620772453785958969107499019596864106119110058925926313903267178523767340239441218496807502672894949888620595086349737343296313982909172998882848120203725620201884093335198210719696602342997078637162444673195421727665511355888615897646104346218817953286623291992008226825642408251251868438651320631108793075589791874529789859631865276582212433086747778699662117786833367111930884431461203323266504668782743042488530299195569278958214707570582204647012995532057752604660376962425943717678478172681432231403168362205962548983151712792557834209229010398663785542038439062920703640121142748221617325761050352388625948394424958317733372024268297907605068570553214514783926362981775156718182603425550890723404247876564013575625055110182258895487662605582631789525056857875144827914612627332204538784093898596025623970542302997826230648583961103236174412772638296156444336329898056172268516016720514349221763061646833966006586723575851372366320665302272858944013153038282975901262654157767409332790911992961630171842827060681912012259629336175711330946904546477955067161237350539959358979900171708862358327708351932261182288586656599453603191902137931038776003069868217275127552363541337173449669566283443085800705919474312867244778575930488301385595623352567675944963107400591978570773958368228269304272408468202045811309956559601961755900003234029605617930949926490010762673332752333926460615328084643472766259808700781426832308247217401975789265636014747225846628784058148763039487092305244781537644961233494868390861109546270206766575052054232726445828441644837153624514307718005062144914177508674143088400890156789232765413073491982683920115114745188108901358746089568669524665770829050134818523311201804289146175973916517007917886951747156267595630923161996883532519713391674769939849091310762957689189687905897723815002901445801102526548426036284390070118510849279011889519409117648217025226887267239346995369956311178708916869109804817696113214832465349801795441455507452264049882463710758653418834831457286824643321353107047923228726084397576643069153991243261789694532268806596549776112890724721160211526074069857635856842108573423295780307878146042532157304716487046787467605714719822637888128933612947030951681241146407221926088045513779757920267592074422275360529846877541841186882153144507746959349583659639342771309490577564354102371556321234869116292938049529597415591514252780779663515384493697062513110942041479414703449770875922224126891120577906777413572254029124388318125778372567092349785748692975611706457681350953695803451616669812077501193914508425647629118659327567082602184807399874525870219302376449518773674306632124038923217465693578530350179596110541671418290924957563623052259575236042152022565419592589449908611472464891822160358841581085246460671337890793830661356055007182237055328723916631277955087499958943603038499880107377867013432226670001217042075265655657384697391288425124974634850590257577926458160105860164894006029795512702129338655668433166461118691858813715365940090883013786001925746321046279965558201233520112083320005394514903528225752107199568362845646999706108964437091186093230890772052846302398492354907641821905594628598499609749893377303106817969731324075542622165317514843231339810165237698577206304704370881999104429666010883753261295232729025631306498349386379792573522897935519180572478983735700914848330341585751640358190653417152218027801517392425051889012273441799750073567721069870724660732523739110663243554023833414229176375800347624751984104323342264238616129261586295996223439201420817706272554564390412586439415175544703289746792512615425207456892958469945792821196049845847171256330781218463937396735816618728588353411707750849452924195748527233019901611286366904291745652682489363371174702300155105838719854934009603007078366798536828763941070796807228849301020635336630667567318429673582390242325982921190553240340328983846104492153479390202797120107349029414110062398469706165239034234864349534801873562905604713306769226255550111617985033465973558216862833404847732219045164675739526129855597253171326162993521498313239510446578032609120118301319477461513838267416239123012598142937533039368010291556217164744756325356031537585947086591047807246070649348955537044071860089756130002917160758362139399929538503193803126045212927707529744484652660874484488215517244820104384284542789096643915490798466751866827710300795517779883551537500341868548849309426582043658778950665729115218851214372577119320729283688541337517297840430173168753287333036052236700418767391477616087614347271563735146761209648375353231679574369231778923226642942199606912928852626994074085245359108024323719825271549041772618009948761327149638265545134106809312540545996067549414307302052752856947722990735836067559753376688508655041898960894858374931895554480433309851659161683530261756784755210050305820139983685989502007025542299203965672443286528901365049320354970923393521593654307780966839400338031723241284669508966508282715662138721597574426485383873192413170525442863232779865044723549958773997824194913961452075958895916601648340238091386109280520100539996993419705662186712050113282278406186050878785336157679030150494574729217630110540121132673534391524600679725710963738836012438896276654170365894443944197154437913672356341554598512205893750337290985933760185117938055861717049941015390781284724880959549211213982299886847943281611104121262311595208258930380309719108184329997615706562759030723952628984842537368586226565633677345704590321476395361893251032211566782565336060729102412061215620139493634910426256158750756669552116556734717611917648049890698112728486221340337605091138837022905731072592430763567316172497647215862935442482426036009188493300273799308611672145205793948982108775814234624887339568959086089126744832242670959980735006923929488075130552311449872121394720286549120785119728660701844999534108377010371738823692724849163225238993531311829888570856176489427594754052482095853960166744081766696641262939915305584885126844886602639815650341954853223054647679993642626028981903323049427878589515561411310329951252768910100250095411407512925737599961942436312080053629503124792984396962340319140440416168507094456819813047564608111713974380295729348929490866130951525042346458563385826424081416144411819174559233643151396094335495839974075566249003896665774756427295894598832044088968895796714700852496319736900657354406684786594587304231476903820079662917650531159962424788007087332661321979099366890467708794512685789345191609747546638565748540701272113106160551426500246315764969489546226919128303210903192203829107224391725383728048470101152266029071547503543772175880129532112621764714694624936926857161845073905653810376280634920936583672598631448863505938511527792687635122980540982254378854078020997662533688042031670672542946027324783544019029919135673300723162787299758958157085454125706294971404037456505979979593085008582911958954807587719762908323644973387666337827197175685575560352606114107477820230173461439127470914587197492556327986156711784441335623990594687139118840653173642351377988546226088355798997868105485512609105552558602478984668855119718325806099210499674832831672242211564381768105581296116456736539557213997961647576970246167450803838989232343247443229180926730519552943018033496683629495261521924475820136493409546153443714174916970164681368229248224073115859893377432035200881219066661041625307944080737085822238234614011578650379398365236729404640420166341890730150194514975105457155860974865143666810547534637315132209516396515048042393239159293387822169960263066928892440751973039059597403109011416329258234331108250193161945861993919692418747409628156349967744966697688130405640626627678844688178823153650767555975789278832590125773139247842550126656661705754988287378463111762851671244877997281775319417204625584439460612211241328696090306232450055178930894786035971402543105759110456499074580236919945791054434516668057916495634542788046465162679045793435876526177247708296696673013131202496039754133398812397212806635298224852711158009459981688596067153607587057903720418403077593113053729718627150150359047637592932190618460071582356996191164785876240305184748952647417464161233350095875799217511424958501539154637919612911835343410102625229579116653148920503448133064171025979438969689797199207303483498772295416661384636800133879982748840727769276521463822299810741145404270813047807101830340429475756165417049573495513344859815273488349357773297804314536030822700549720139947147459420449819263147456513002930262234623984444618086312048508910789266395675628626942849496897129832267718542182691908040278734119290213930609709996937121330968610584996632276104751795905625770894289805321089979947422110638914276156743811909113988989576083433542548930608470250260241580972893775532686884848252629954828438338253391681442748877373356436282912735167848234569302333875487627550554490914652586522918704313098115184220124941792590796607691791513024487996702295539420870933342625099485506019965097997777134613397437056855891855497680797345166916023830761982196539646534681978728615737379981287627785869677922728312274368959565118126228843569556143393127134165026020746366009254052117590098156889076668180105916696087568029372976399167111767060067797711852642470463697919440560152426016318722930589310377633193787489864977472871639997112011099005526375369916565792836251740429659182048307621129820955685102434151778813813871653466790704724168047921245468350082059195887250767732829487501368730187987942902442517567902705770896681970165253038884244173330802916599553566234607636319799774688496435474848030278047512975161778529957833455261818354842635222517902069850488939054374138403860063902228258966466979750236537246871579833776620580013896822356980335038022418513248445650844011264378696142275348568548123960584928352113114888075944435646906345315241063801128843583631440252481131455913715950369548374012457858371547015112305948175190115789556427472732235410385593675789795306742071434054137988312145323277253099690382078447139236572043133744496688135666944850591634031100626164744590550960722063064246887226379967464442537831574696795204235204649798558766245302010689264773945963089431731955166405946292202011245752542551423377069887039168219027274257942436570933584126117551709770972635236122176083012347192179483099609285550985757347418074907147460460373601246613544373286252337912308587404124428894714786284892305065778119184947373703599958884555369141265089326754199568870563980797931956776206366331235657864491046510062526935731536874409476547203552465793963997360658949095347317926271054831812601777493731590065218589787831228980347418098656406878166233496733196053141569691512513054374907358541927277607033416178185504763841579834175658777781526698434488501003426305594339130049681407140207385033817322830665592685641498097135253969630768303676613810198449483702967950008997122637763601273024231735854679874315720531061419894298879487581489872964399870375477667519901134289207802867701780118435373010096459036992698529092134887635645505993041335356817504052231246327450206409168178751608913512453274909798928863420723006031935854119698347000442568765074488876893645749205179251759364142188827419031054321214376072860596959272472317918308939614063600061580006673448356362804464518114067997659622309735936812486544290077984583269900275384269270739577532183174092627923351301082486734559452003337170627536710963784108234329549593554894410784341069175359736795536592145562378789668058687129951180991418040488382854390186535822063165127927070575601223724782606770608384534698634972885287525469074890860414244329352955391599503930030071464602657876241865728751366908017929708008817165856086606626945116102959597454986248719580290364877795880639319597725467780069454875665729226362015642729791524613626541084960174638241395018018349675223772685637159755394983055510208601827938563727174889466453410063007870967325691868335825391006362730994986788986889295789990271993997275237093527308857245432038089174070257012614451383454433355142084950508693886595633280316985271390836691840784154431459587929506805835560554884480607640970381772970560504902955216548437838213528686369445473619406454399587408610867726303706430298964041547986308898251409623130756702625333409198086822983218971076617362242081838574711599089627026000321663863962642477058239325246665448627232630776084007313690663543941318733120966750827429510451724082249408716111028825989022583066360520711944011067362116922381887965730454147082304742652763520247494433630808979840894929541000056653842342856582890553807897417294382865521605870985115185113761256892506532088146561653784294554291182619225324428000475422951134716799623896254127382383446186865655955733681581784442363651067079277375918377820331203078300966091740341930583088474287618191437146241629364507283608150613379070942587744964533785677598984032865626168091605683233663881628776604093581642884055246521581225888290569177223383728547058103182523083040157039040095681634604453619477973319064042679751235674405252464439883567014103640300992311422435648315364528155666313495809198398998626424937846647085421154681686121683870431914116387490572472187240713765364587388402957393938170327131159330789401582950645769461826648228619421647398289350078625739700804659709880598014428343614015294055765619726055024980524548119205501877692216243579412064803144122994688604296322569875771830030701315791907776941749894448913066884312396811086270971609821103714905685325850345071621664274373493057313780207893309997547731225975202869064210896535855955606651486391925111719105702215807928104110775034017249706679502779617795684320182410668964257118138512124208100028196628615779826637356031203364662867688760745759510959054606517646617154148366657482076911960983757568308460690628559414900650390418739812250214104654807779023935401771041580043616770278431035085556205417820653829241280380681420153058199177882500683701246044754524813535820259008257919382274465804749765337753168379149566176360789758308162983496490484620006231001408214351013749073420661907448755817960657921820415305307216395514038054853745088473636069121161502645982974298438333165581767769889523458961918649672761148601976180258043837045445390841739321843790658554069460319099989213394785012014077297177908020156767537365733056887518230913432468812921050725408860874781154931487676477983114820642230075562864418933761711390212550402902418767060082380340118927469393325645560789950265236519366430404212184538437049784707779977985539982570412097826988596584136331852012666929173712341163310770934783572661425959342503181048387724032304693882889260666968068781199847269226639247155173133463367062703489741813708177872136242821313411729981795583443223039962464902330347417267934069077160176542419697511136994618677660490597388436197903491316638328831909260166750226059648429444208633965877600729472521741404966739222601572105165037686239214815335099008734215278290290843160643042553519614015997037035712436221821510258044723815152755066394979185466399656255596738506185506286727214596751670318506872068570579441502862872380778870171937582319336478497194262833164170676047074151850443788735633181289194067375155968487953004306502378049729113978294987582325140562279166873341793499475099186087639334639242108833444990817112559627599713162656360524665010615463057646882225730687490412513747377064346999867682404723317155250968384072149093166032649360305867792998382485871633037417130243372181249645370941409661041371715105471681433645403799251321692556663787064620925210032909211746394720376780074081247453343955863074081478130423147812519633550464039710277917437006492912221707324329274210224048258065909803091637084605608471339923839740990332446069243032079432332425160994305547338861835766093745073303883886507850567768580671889295402491878642906138043456550785778737606188560165843288378822583625544103707945136139152742366689018300172204746358419968849677845933680297120501449267307537984968886421491430991550452076674085240513930308650494804843367948893833729561067471097315048896610626688039021216814601685037002716163604295509853843544404772373961337194478558796312417173200647549463854967522955981246044654126821794686273605077905995457683312017661158960307628106225745300402046605126294407123204613633949311459985661803869659203456699939914006301605323467438784223681958881143961713658933726474812892229907526448072682352076468002445760128904698833056444909937014790218013925267064641939231940403586218271944214686534421323451962107855353359584641567163710071961537490353290922222649503024829184338238533339876843548413771950410099455175538713934882624612009025960888664440294340271520776025817284060214127149849220806708369820010385553769989607992665097280995253887002927517061254540824144337243805572701468322597337355314928419053535951238397958898775834186130189312394576034339004629444688116038873469827234049465990095568973418199749088752785293795323143640977271219465806658365428325331722520787482801683114931979147555875547633703571764060169031410558192264090457545036604189695237015516578649981102299640512262135655156176165199134618899324912482586481443226831086475022499092991724162663868863988386917417243826143219574300081850589851140506793134729306061372146188713247318822176000393659716977797496511711544688014259836043792500278080190413190276436254320459819585587724108630523099815779765994022513008081503300964913326887371974216538311767156716203091309085760993624080923640135921858608299335665729424714357444250854204444603587122685343514513666114071481951638893499598970812091114802951845357028308173807601751163377741560087367876416131312810948453512652609117881802739599623168459278242004432851261299879933604903782526523668875329366984113686288131376109158664041918625414147545044059819747835029553967380503162810702713202675292196022805950899143881643857462309757862764367704084236553500508200318309791133471551576269904158978621429452235288541477248749479689433308619258093884096575203464637026611087226973628570786268424437315579755267913471531574044555149429034039207223445270151008176595692449085345512674824607547112938214885036465444423399975534324636045071157155691320857156936569318053438138232372600864920122435484829364830887154203792191765066055835623365424054877400299285428855286846159742821733528850838727597245296471439459191600962086141712080019021901009892416640613249073820796794102671223186076443957135960582717324343510791237230130516968596197028066573848828485051103702967529735221571758769303656571731840946152714327650561947647811780604788761738967118346532286924370708161613585584444489501621966035080186921716399621298206031192316229304624753771455350108257836913521217342194894874217133598248377012403806161834690706954295690263021283224025460517596184048409965011019245356932950006865315013666088731873584306777922038363512735134229892375778815932202208282674225554548934111541704738006243580909596600351366284010553756582358993676609717319752140559508620055032789762376018087329824142979444418908864199664268418019244427615911491117167646001120337228447519942147211349267696670004242830652948427337754697902783753056633436687597952746221928703825539395425145668433519845799253733315194865255067872920706116754787985262974682783003714043316066404971542529496299598465832593506728474400603470915993374238675446798912406985097971331771239833491810625222729404569577099855880443239200500223842245161269882681960087784409189438920701161196659461411211986845670505703168146746992812072601653772912618019367402062450789266842402716804532130791638582825008679956777818895642441723771179633160365442178088322660772754604359678966009358649866305264440502220814658830408212722405636920854764768070283929437038993028152553485934616453703118191454113659580531379205178655459353088014371097954522371223811711028392440175329626999030688016641930417001737596658677964034085555793186640602390204904431546814541944077944084179485151313235696203946814438305787325821388819521142856624391277766617943373043571974984458358414251118548957003001595049003250795858422716903384312406297971878362553404352109129429674614690055178550413532465299123297507058822246991636524554276198683458685147605651373254345540480472189066800242885215460156112550026465244518460037557652999296977968416641377912490505677216063271884474516978244819025095764660053367223305402524414130479086233150270027663019843084676837723746105366812473218175517246918649029549869202047628425156965074167048972544290410809778802720098469328502373187120346227328449146969522949226275870797943870750844763669829087479803622640762762148211106497029509978807200603453576192267220176735697834903569375732917312718206453141083329631637095311510658169384333560037761155969253123688671778580935586542590752849613482956556445970539797775665830177225277719874438437448874189201525817228472094794442965682139513572689956406181844736941309217271308085877522203395540098638485302852423165603166345228546073293249306658240099893779840697195945019834002595603396504661577997898957627736269788062325739980778346138476822847533009111359161987727113730686567064929693888062368588863842618172712757579222954115154087635030265226806196300695825628346450249771122444115224181317513710684036822740569139530370745718241340409515243832340435987473057093570271571155052860470765216714407385714810666368882074663869725943206426436445607794656967467404386155280376266272836378235408372923676853895695584756025982054237240380013808910743892292628607183733803058658710787505046515832879806824747939226284941028744790768197419948663195826478950080185357850964141770768975272713379683644788903920280688165850007791703901273418345130535685221328592543853444588354451675841981672326826613992141050668702004843325770277696040500573904113068490188145233821502890069411017834950098147834177025419560468397282298570269585445932619142378492276748426566894330525954448856315612955922265933173703533588519072219633988554410615189898904201160830282986525610478814535162117199280783523129179050010701261489264437911249529019210753979629505835690454119516210512110313075251678043569318195464141316223558011464166656264397597125778977174620652362738115781524733203889577352857340995723012967858942879450823915006093991636960627926395129407402082011521675396918249607631892874251357087174731402387341011997289091230235235513573260552841068749440572391024804570510554164729168894327424156705151802672066649012662156459806743330760886845168751211293799911229181034697718111131293051209670421730931447869397061807760934961417083307956451718121600170140786767503461244335405933008221722747958930547576709284052450482699515694635038429261272078870904090172721514208955413713617586509616041139361949265503298961070656624441680392310467667287725583327834987676420478362806269184883476860425946829790665979570677554118354890674818401191472366003563950756681865768012139771031372691483470290003823439005941763743577763084834368629938594161095979799763693304299762524382128692768230766950953568611451287313396056135521443282317729657617527760098421157957013112562572694101428744579345515623293560311870019075260433745767657797263320307043976337919064465540160675089537636431345168578999860272212025699048621041547638692717896381463849143264021628213358148743527601891160576522620032419410322356732154898318781525473522602937911843797526689652857841093065849431182201184681047370789962310990386976221820961268994895795267508741410740804307852084644037473522562129845963349157672926408661616383931437134029017080904774379541815053070662161900773075163926986549377508280952318216094454365104610056225552693895245723353019105938464007153909176821126822774544551785736057162617614795465631304958353715129711519019516016445071976486410685486536347561680771534595708344557816204302483680204029124503985277839147723480599947327944943049650291714704795813869507511740415634070616944364903570730978651242152431092061227232804028029187776335638766705971819644255225013706559989981237488539262309431634638161041296381114473695759700193288563260285827407067356653981402875649152249779028646244246478976670552870230983618825438823596546562645270973277902605629600595852667271232442767579034852409553998738804624978339397801368187388701352661976549821815207260490611731635231876490370936800815520122722102440881798883448024733947368074769711188239758091116406969287594027874764960242878120588345839740176659072630888319399479572838931408313669378283982813772645795666449435032865587095855813795081149663849249776169920806843200223025532675280682816539498124330880744438666329467515000839549851266106179164041558556135538264491300371299932944948880155657963928361100225295320061342217833373983810435884218906910877996539609513876034653494764219953898197633367547868243343963957794311066772294749585029627069498449833882609080455128212287372433987503637107841557757599074370063300262570249351776851693840941248703771057855223132478425349660184463852668500732286682125678763511549712646534367101371633027969102006824007652541529409691682371491207471013831112441166525459342640304393600130108804914447062088498490574651951980180593869556262232369782309192963680431467767830758747096190917351148349501071904641001971826237341845439585174791554596529650120515535046475484753892591249447251153526366673026240881440861438226285678045183305408558066641121131457074905778925380985883480604349154035511040040647388053925499529029972835224701624333223067382938233356886319644826420567809287696997960048669497855098440505448630040891565618466003163681905176247699597617064655492911798219465467584745851981471509456536447519628103548835373501195316321871600713140733757214239780546467003500351320572310994884546956333139311339657280698803303738879235585407631737916015034382106061403336893819501506600615548676069813329869132198967712459356284207894064673003732766339122850948455895290382316781889789395953324113100634078701758107894327253100200163515892946460762294398044564415355147744573081014185869706984973074747363394855384773490395826456976262390603313091752870661423372332464941489964984053317709664006060480576419225888543275058702554977010502083483318557522135400043245366984464431067043736380637007973485595202490333342531400049833391371018877270227289381318824433736367736689959379393390120292710414377636881863785076051914758825581573877803516021741379056054132603278396040463475105070840173496411095387852692959480723428965137531320777300785487275613679470835534673365708616852994979357757341737411410704712799274715053395407804983956900126981363908343944813828302714762251823994085867598484228434937673328469936712040964457839128043072110810296909352867397972558051041870029487859746735239791750554514783243153415626490359026802394472504946139749004432679951922866752170898902289064671176312611545501113280477784099582826963700608117262225726408289528350504773201218402240055672216393201573955151957204587389363748273092732756671455343439683735394238878157456905075255610295094400947816674081639210197961400077872675464031848902877172420733375672269241516990932436002629771381959141225940016985305944756367611751468099817333266233085204712405655603072261969106255362197618894562476346131916408193852402411008660773565759938760274760556571420842407774049076167486099417857136833328678431669146346927837479303068848713212654391270293985712749354972477730693348929803340533500365059440922436219259107940632750031530871315277419820739132047539372917653999213687398933705024770854303828902108922685728391921784684675477357829148861448296621263978671701078665758685189797662799289049910011255510308171927302630200718969196613104933753388735210945920693177224672340888768257497062328737805754290997434467852863604109153014718962847191981477211152822291952971676639428779235964195484586941188214622510147825943584064025182943747893562303938760836365174696616455937441975991629985902636908280331726348985156161797768786004836648844165038947742128208948028973103449786686785306796370739602202558993956559580822035673318375749196439096524332725418280355078153360716033860619650042662724093850588508747466779346991093520018085703351909260230577866512787328903107693000944941813729620606547590706549745429461115712947749822153543114447920291334550239606731095391517371573387273404262682438957362346213164749188101069260824702560530106473021634265054441277904519175792850170352139946278777314092095148138846332319748526132931089087981997753313345203435081002647865671309126383544029465336031838717362703296897842913128199552353492861186849651985335614800113722333087254750846097938625198154253853626824357090340152509309256914541569517106926928301695541679675162435568651546081499422743530982362003032407272103936028244243301551943403913137053927178370744357073227496086014860981565621525223463110187306950787204306683776632301297484006206438677278506065268576813808767251428203426784044441299618194567230587744677238802917613922095743069732903187972200745209458551818939785412755277564784642058429321145645222713435512978879164641006585632391130633896019761918942514003721239077982054403789644910117625786921162626566221443648796863470899143211719093712748391762563890030171730856130758008867323450147348117829821160554852794619292541654973098842152295475643371701787560464793996248449876925983280159672295136533574427754941021651841037238742065023230872812927583519990289236064910693984493819075546417827268316675909458168787095268321608217475305227602131530534517986877272026518612364101654222319283338000007398046495494901408350842483378231677274960189021654219361600448334688391202070217793849272415680036842828962897876778080005986909530118427047426557025957575810810359809332914798597958922983925450926096141061057368227729753961779854892175816568942720931726026182873811709803722573777126571269506946557583585755552067777344478481826309072592651598185476072997284034954562514840406519525661712091075690832780720376304193969332087022156067663801026948624525474995403045411907700445469959114743870125887219270300919821823588697775967507405998315183999181809716784383428221225098536946929897773049724787306325577732578234854317746136290595829325074706351559782651330716324305255605684733497840636320735438044684930107989166150981262626940868902685029192434976711056180648281123064902526864714094823837861152214892577609859644363199256783523271040687674257913646186947449652767284778030400924818383758501498929835453577035597229752808312226783985086586038673064515411289212508415612936753973196864111554423402507240298816755921024373999021981761684312348470662835106130293718018818199675220710523705871725655726376153567545160152478680251826205911471569335146703503748358005118916759329998682306291783597549292986294361570005956445246765004938053821541300185477853348544421785600981820474228579589857708191971994839101439428207425743067121157597028304071879945467025181284944676854971982855532024342472887609875132234437990986430266088129877044369300882948741002584529575073603634987174691296500519725836875181629621867180101244702182278144833622901690949442237041763771468061392339792530430159183382938496988399663031678362383714337789196180486673833504148526490826095321930280051528886194043751689149679920668572638975133296117866347674425967234850731185591092298905198927612950301104982878864463887966743141444044925806223084795863666667006494991059792310336449143839575989421394838213611762916404831651129418604955474103546463125815541576767560820813037861657700379568095117348727618116463104753175302704564735924528310162978981258515266491123387770453735764177125092441380341228853018729672712148858302196373853041765237087749608193459827746351568346442716558290439387007889226710885880262509250078357065348178045448237537460006836973646535803850146776273928643327050389935008101083115618281048682114171733932105626813575172397834529151367646742063798374612830329589469036414397062738230786038123014504126948078531942687744740458135338187721664722273459165661373398738308736199706103486836565720543185873816498071227814125200816010389583730413901292759416942322008170293615431017419327436143078447457853331391787072376141769876033128916659472451320167252691376969213532979446614873529492134729491403742176018028651804768506318398683720136891164287037736858447936203625441503869353760401606395559745585769257429614830478523838823626325619338659480118699555618041927787419698572518350059313974551875649601103889969740524761927963258890626155061724468299308225921353015065416389513940451521915339028366624052854385214417891778174009017498137469665794935822419894383806094313203200909582433443408718666691210429668501664401008642202017354016569443604604272419057187916068273865027514208158154788015553186798461921708178324789032384151730908289800343361352777409692493032511454088767686640196005868185274168149854774456033260303772959851480344507006952379991268775253679116970287169026106936065451254927920943883870971685681502702220673558485146481904509263370383640884225535174053743974830374590482486121122582077252710737040482857162647431508149442134676964237647599338429227810708235392451868563341566656736469541476320072443668287114669928741090208169989807601451570272081867858766129796428656682207669070216107132646242413137962721542297561375329313838801965192131760008164743222077853615795351163510146629474944416657732363868272463134086743571086467578557697850820083421967396528971818001102634650515314266674388460360162270375464870356048073957831067196410142405689838463884529387617561880651488709682340951354404715663559907356468031821530891360121221159864085934651121267386303775940127760480940761638926781154822115460902482569027942609183598028688913045337129869561632552584391129036695719419569131426832251748979572682732257288499973977588059294011057241903112139771950207732494575239731317028127926463959769043508902645720573468629165435879537379593426704296594579887905867371608201327175987220428775598006503821071028254145480589595722613866044245124301274680048179982681608226272370461072034883091556662331882043846644986726615510089591452952770135989071841662095930428089228379870645059123952531553587111928048527029254288351387912438585284871089771322672758714630327748209959775724949356037637529503599901804576718846183643425094687232640925430329450664207760578103346139208685335652558992886114598944710393911000798015790572324925710303521090098359250419585304853472047659398305594988337006784348750883979863197017022020692749928164827684153357978683186857280937337816190562414837753334635501637902611695532068176886002169810297063801762175346990115724737340390280000995650306569705182518068850464515892438331257594614520109271142471099341694794242199676137672426977156841475223812216129140609475747511637185546210716221618664533626869386436560344951636517894111353599895226607817695479908862976260650813141967496279607321028999865502058799912134729886754598186238714273699615090635135574066062789817441758094234205562601422266234273406611771109913938578351759354960394809007339013478200510408605377914120828759577616470713824240961164733318886973892328083559953064311408088530624459698873491830370263442584570128862939773112610734849679952231364248790268564349976473952233141758315071828902127697667073963665229829925266835547430986646560317933499261362834572631649286602035249939691315440292815547703602710919726175610381666770352655781170833420157728837473665795803701327831821110933853911239923431837701922958241199535705216460861690571834320644491576284895096945803147083357506531614939501452538476225762428783402329266506395190266529400871132353412490419798329901684369240827929196915083415970256888380855036077784073260669917826583799227447498357994935810195183189855813019553093859347304078562280503162750918067937658131381361845657236634111647729366556301734103301289181254223527854529600163456776916787748021866969578948396135386670855495702834335995654500052917034394716448881021097538782699552852419806460348179465621456998401211438269844182920003574124849147364357177557380560399992112919432508303576839424019037806094785743068449688507783715415433123533851830833699086083073223668477051094557143808171128583652260448631421320800564164496095410024796359230238543868227610165285531878006595104402465034011266329206700993570728387442357933021698243523019621547522346811716487966473224076128891938810393826011189674699576789425196897840106395388221611381556525450386960880367216571009332021658651828260385575255416700235243169386083191863274492446981202904552322612753310550357446454104871631663485998408299630631453756512672276560483117076184081125303173512162335423817098342636265917912847681051339084535735566559279638290349816853995723580644633276434525880401769078466604960196695258726675268646409220616241583453450514542895281933397125885357377876020522075488990241204954821083643324213685480688955633157320538668802879008928762147303506902163655576101541179265986514129541399324372499262911743073209571302089702964686843060888174018385430960870607311156503397927969092551475802627991017959895612375494470388075212823565771287019429554126310016505292131707340314451375191173266677628716882469785674146860585711762098566905113859614079617181113092233616551544993338187078950261980407713082190212004106024234635089203552783317987859444643867245254796467887647975990538908149250266972184319895354558561795879002100146921194708160880553467067803940570283136244781662299305863612783609265182714042037518031999487470637342110624330105087225353615983033190670144154217749861734884734040206653791606685242312128994777586461677648703713552326597596052721843974861574515030952475544406929359953213919839361549674716579609564634679434408807761483824725123216979335674635226364153303666797041167050439079433396297481587937516595050087519048095315219968871613829430548087381991799736015488851768688379323224291355629319126008952119305597145948409421785828716641607425015408742703403568975003292577803438662034769288376891034511051018384368461092503990662288660313545217597331177841499752905589820670622048575683284062486660808749656920773008580904616922154671976138718794232377288575499573943233731207996563541952450696391382026313685018181427038397011963681199641330021421900803495907994356336877280443914001320266708970162134834481174208034211319393259877543960441883359193934464041382330861667227026239540798178951782414864662057321258571780450866617420429335944105189099414416743129289237453123894726790956563553054566344576693588963480598025628499658505794223758934892189434066444549837147030664258811224719936688809045213510104408284832137190280232788541970883734693001370499332551822153040231414365576075095365894096840166818468510553424054621427270405742969123102077591343315311829306078424680676431148756874736788925720814953851684871755895997092960509902885546678385345819508882999170099534566440030433029186106379532699686868521614620817316655295083797898140048630124370292389793044712424828649007541099008640925565460961224087725666612654392020593343616693371285963175248195146495661596127644516878832158899170404414915489015046216005393189892974816263793477667469695681116059684263757420863005778789117193361559948686758753030237795053736561993659766130335850932223458957268380626831915000987627984038148246730802461701987752339903380908947919215294916138183866190699176925435803345701538525807254421349667618232764498709674457029449279595064177240129360812574530863139574251167921051009971105685846012824838220845718616071867881370758981063169594208504007250252131394878462294155831011406772651375373162282967725643464023766457220456973375270892690208104915287573942837156415074279566324920954892824254623300872858396530086883481436466258386226252767283225270022661615367845873787667242506104623624183529970977715393503496231996624618617951574606852534939894079112348454794876335928012931937448603755117813823808617972259809504591684526713068614201620546915579750874324879251942277703934506226655526055739741655151368330785448178730550490376805695647060386075429553693575949957783196973070532181705224520130643019937391668337647238233010283139851773889086178753896898629825676687577263200440435317334028843931693013979133782808501889226474080308790445488381498427756401311018125586852329005200370928546735481041176595740412934282225755701242737933856135315949208444212830931660919348466191582917551251285764127592145969743068237192071185164055431998860287110292352176608028828174579698345321126510106730396818172903062300338522689278021164870976675860467210148820718305339036675139753684806863888943539923534762441855361936215213119863022234104402310530061996921987734898117168389293632821225807373825849200084082697901822550314950089146864435331961750917961044566171946672780773631173956876376736727399493719825095567770621598624452580849686382103908212486351925881118376309584495213108224682886491161107757375469458571142861205423617684099533119124540734958875842284134886604109141603373155470645841891888644209543923938114940777221284033099000742209775558284694198667771315935820760754449188318669490900163386785893745803888580966661645545222832608491984354539471213133249876028679302767375851136823115724497209679052242307130916737600480762128671079813750311116183132985425797128653918906706145940112950087490661407446123807296788837712515970135010459642967070100566491604171125213517710605499254657277209177613918224986888240862728746072923736397323530972039382860183442314733996223690397398773892985341039251513648825423139535015464691133852457616746774477945255181689371058999892958219094002077421974772247424288424249757489819231153226663746335464174167460632146638382075819816501217026220459601952720427351829081323608172035583107978812645340764297318114234464032079897538969074556907191823678984148985263122185990069469619178905408974434441977374768356574593501965291217333497493425896122857923706398817091038731617292622969188577205869477288596515680795312950901020257658946541978449357769827918271589082369661245980488355735298432025306698022814831272162701561388914015247069904505049623770002988625167947862576243000956557090305210057739987407406984153561345782563677670001425420218377813563663065307454307354156103166001200232450772061804987558571224353791670422824097024720955239364404226177026931334661926445756948328014964086356943313737405676400069158190422992723438434612830902480186633054599728794863728871042922868417672772360776075771517732785291766665002171321905608528421079621848267756266785878340862964031513630025110664998932176038159298636345790118504434390134428012758914357520571934362179123746884117663807774963077218979870335464882741609521595824231231805148337483938102813674014518953250607748150575785159152271915589556052392536525703601927756748677792614521878909707803350153513860506531676891092317888602282237654826304242656118565678508509777366997861373980351421498912727144091709133305885371095787352564392808963054367578245393398925692345098679661029450520803864163691655478867679507202012616866923066302089633331538106427225867968966764057101384256590901879063684014209613711422198628789661155860431563764985493842681149796594234572652397188516064140400189518942957820099519095651084248720611871323460506886290687502958400544663279359825195767894302871595150766548025841291743619964887828042140552625348334648682802693461930030319211350735288306899687605024213686950091398724994581718518417608120789402996357276836724379785842514906587068248938533151781247204006875015960510990377387150655007674923244916593392562156861636830897496460595760425239465344428327832703279024980540681525436288595466095594699151642821916314455403516454794181608152466206038937005328394052386419280212686813071703206419269274660952864640115115414686544805341789236018057398720719065366136161368095183478342897522259741534028237638786911975346106627443954722280396060732930754110061767843408167186468158812304771564341158333711833894614109786281130414688824529599183024894345323582201587791815799200597335053506004262712132634452890946684508957891261332695898042493891847481008102438299699005847502500608693822940398757306246198547983748981384836995849915072457405829972611579840109438529944879090562172940827678687646412315264309237411894979526354669559200039149682799238037238454905615403406330434667635997937105031101675602892370316086186567147266120312208456817925998514802479205729436198777557370417503283722894269258020354335091100841538958979276671094436127329121703945631519770348979306801255848217303459992318495399710711415276036279837244848404837138483805652562982584592702577749552725494392477178665892482824972727688582191037599151954402828204767075782958375549237879271962649937614963395984102810747651856711276926040180635134300859871545086633158553244550896440361583102553701460307669381255740313603843001134999731449744251908592918413978347433389291667439708623695639715740739355008009064148438276157276692379686187780712882593665166939300922230689234837065639119757144984964589155158511433903015609552674482281071862912442713091242200550076981639579959390893659132371114996225104662141501604548523451838445521320519232715250314926964333169388636103037462858783704553657850935349681030438427110319322746152080669077093534445822627895199751959064840385337462993819121333553094325959225501307413997069313985427243618372813284443115807683777824128535281161081023041669698514289954091853610460302991577870322888760949642592448244363958009808977477540154400299302536610186099398091052302731487767692660889726816377175520637085780797646608936849129368358041699009598909354040161987083969738798598898961094257284748463197891837575876628292990575335688566469388399994021050877528182037938454966547132668287227140005156946284054225380722915991859593520912532342350825120283263612777437774581652971124989246093642564579897455771575160317171077305110697434539565870367626175165946404976407471636062328270432142510094194003713673833984378929001594224216491451753724553634418428367763154934080715823901140621760427427800453418291624793831901029330207869312429674985392158960106646814343182053902191036495669925422659952504319789003274629291771491778713242267811131815230275562512305679813727548566083292791411708887766786174798304054084197903250646190735850232105481793290347682598737875269317956552542430983447347467418804377458273905397251379369040321557473590177502490994263363492604536256095288983647498725078668797763505794209653894154433568124166007485143502848627629849553402409644414754394633155285446325898077215677353489815679460876874022597735491030277751099303787469825848758694991683449982276985543837750666131069770445358668299580116003892083533460307648347365737053169143275517606204325683638851190610170097163280975554486024722051009430077548846361952483809433141340600636610725491604116962673727057003303736061941281008455372746379179573627886405783833752813589803144524223135100122839586595678484804812487676558961298978673354801461754652013469839375478956897108711296799389538501673189077408813697398500009497245803746965241408701413277393024414872980877391471153285613474780536989515775702988118111961474458912157332047688910619558694268153857454707035764094978186853209406531395085831654505669764298641885641733004635971124627865061079280268185058795069789575065696774163910128893176504792994533772895962785771091113245562245515830769634302321817017372729769048906127401623762791826683461827018042874947115815696278090383771882137256837729649643871097410270730272779345068919984061434643343844134734255390089270516104327926713816519190410367351473012538733635903629251237717554553987751874606884441885084975250545494990575896640903770573871718841093542632982888488394841088825237925048476563602613891989103943517825123885661614895938468701760354679527778113523342392313465146231956644701878231086558555536855798920344091020514478716439763832052745293749013316917016786557535043713989325605202514351310720105076879171205276775461743699447637777880201308495637169536783736063240765775299376324963598260011166680056980493203091542460344212369335047593179092920384792107572790844630059802253814388843560055518398030400093693743547724640662122711080954599333342288710986467049653262127974289008773750269569233667245762879188792328146876937655124223293601488465937545113357821988544883184862824121009807624349243759505663562354584035349860109863269093513005976745907139497492579585724381694032610792279265037001839932322590061127371730150385603434671476156350142634167685885990928701719845801383107345464051150503189469604344950269180374319084738640588484332586823502858372711741971135958932563088564746993971382038075800979799361696318535327875492548669441534181515427541995219598221982898166498588181561726882936201854238958891441721107747387474273614664978517580482479336024399415045741649734283537474717335119636577506268821321398376736067982836222991058889469387359018214333407994162811403673176244942619971978346054840579638715726952837793892483897424824324087919896325129253672828990898084186673260316575595965709704598679883005741335957885600216153643449629508307875165370705294245125396551391594896842462968725892022310747896414209863051711395432067958828153808409525942883415585242470937204014033292098148771116289154213950396878723666860283413545493478303754211570313857742664924140674393514793964712913124744874705867190619136854325990575880676130732486006154569368003077055268204687427649983542912484006220426935614075527003727637797254410035272156599587718519018733251352351637901189502524045670682118467738206778214107226599861247373623765476370143127213227571982411514086140589053807546696938139587562523472793044770471166759839635134934326240007149578725451351375669366056547322907322769401766107628404248120425967533337772831753486139350054687612336536102575139766220045701448605810890731708428166561933085475505383864202195169589696634980122246709376080600629122826964383138075366288571565699625239354864046670655963161553954818998975986463436982479079131802552000873491073384885622727118523353130671932923898301742680810062362105998459661497106760626767994691814423884261454832313932394180456001050669639730652983368309285474025886744366686460130413657021452822785820350655240378990017918613931846087892788704364390836464406533536494798553582577088068193427690126534909646694597951638167455826474689944934500363385120471377550455547739513015109948991647501177738676494158796876656189000615504267418666570291942171282396217101105088445838014802807597393365107430403738221375233219583482496940709276338355581757371234933432889913760536981643690601912274387304205034654336862400198573901368816905056288894603534924118424259389068688341440114675308197616100987320112293188591410913854923375179242729922279217825877010649496033072282952622786895699833126405094250536871940969122115794418718298323237235767241040990858185926552600966205536970710283665279002036053091635871728680297339195340249218488911206376464908009201764919995683084541513816654379785279971271989552165605981152499750286909052595974434514703331064878147502039008270794973866928029109962968251388026335624782908775228794403532573642538250274128996328428186642375428556102557027464335818819944635054249660930760443955330555776909612693661137474114287037273799040717373519033556272391882768833707046610872997549236250776417346612715916549209166285995796055994317935611875038018355062702613897573608213815109531589903852678211033297452151914670464894529657160467401635318466361788381621033626674367227058718725480309500895805989123716541508513083818542505809572428201774478175321592803020689856256503217161862819868210885292424701609229428596713025472592061808983073966560847580416305504244898746673008514515083562927444518899431792721974439263334699552541164368413186832901043201256151351640420330066626228723134882087858911378441154707741352431136864172577870780411979839475021289257078861800686438191320128144007374961043597386616212134553928190902087064750466882402468243528334205995120671078773884557882007744534022446674446058353675462251045297576496480709836387589128692446299285432708855646335126511298234322491270649647831423423515421766269718855549727168485590389552341232856019753233054581571833191513370637039078976467267353333667460671233014306228793922738617138080490806870914806998441860433083473329439005297991593290129336331196494110913724724300718829938526966269118565077504230381427588998154551090303922677275175165691480155602099085584008225057561888614475788271409102239227715987616506710298187818080146839173623106328455717783294962197956860827812361829308833300939304417586896833598633595772544574339701715618686128196562966274775295291756888525852054157303196463132943479612777186778366344012867464643284802373668079685264664587282471416923210821722158316076717840267594577272594720896347869644244381081499311879360435971035988501880559117679826382900623942556711338386398504508931962344908089420904289780944602886295452972656327484037452857926573550938293902130042886269456256456184688482830443124096223987549437954147051190338844757329407814190381757376128062115124597884971540077510653723240117086279475616191587001827478892679220313724318155437905613291716891213272474339522955249230874681072698864864666518983109434718004322224054545578474673517680790864054499551680065171247397288733623483397711913416938600500194588979606759490152204678631191962549312708938080991969026325361262708478817965603477872233742775617653791913884825609601630103337481655854663659964393076775841675089377921654929357637393552989314085664790113276689274453689661716031940674961378673577958558827163019660321925939163474818394505975623566091545911637193008352122160066782161798821176327967486017769470475585880424282741814588474765338985391954789876819095897684821869544648064875895355318100474590094783859371585096754795015240705155543777410606242648206458747938222197191594502767934367415043784940342657694471780444254530601564252710052092815877585139201269780686011848738240721812232760861584403760812803133683710046139508397930448969541454457692215208094219911487120146617473504034588558870159489125178826530629494851964288755307532627628200944940182217397922036150716822633266763568663915427754013417567700265319969768253653120415806215490625831357986345160358299306499119589305628854081399936743846885401505270636842042340363397187340620177576970734088904962648999501422556747956877638009348139755563727660428346078904307676528931135682300115657397688288555221187781900604668644666084398074804393850212782663016956830238195322424810704547302405714043286662155074139520355978388913220946721956780696036212285137469492162770957951220133568708702733013821829182343746954841227639148824146785803906435784229975608218927994802281735589716144481336108100276751403238068952346483128115924004497153168603517417973803628254427987133634564924513678051811976610447366829685658159327189736889804393707782803253541993114692060979440606377908543101896295489326063956762383501939119528784810059270925562388302835550544577703898892572272934277646888312190829321523418834293051731365749674540127379724351164207141350759975259220471311107903749265249124100166926704683285108314942245768003115457158445826514381190259720210916349629450514595706350340049818205516419082528289172817018214352183267675298039594491409027106560421703315435151696460634242331091290235110825172922946089073415385092070171044808847623996522949743442493901650965194451825859857729722127235022875578670901096996223291662803445394680211670763008642859594773208574939747236527052025299453902574648342563355615345203420006218879790831257386755726192543495817220827892031694125948142793157368133362753401838020427753308978617655300262562993738456451447845859088986620679007257587806052602028068975102602021379565464977722840175861329061974437122095648341930661001289861631219902994067579517231793908472198182171284376686543803318064700125139183870970424923299205897959022524041396149614802467826757881716887924810958608887644135271514978787250682783762964875917361137918520294188483896688816687372168162594765043930173430535967300856818850100397492964842404323945129055561319006007091409471053759284490196792750465270468200883576505666317119034208347555195976403213847011503574741674690688238408695261364759823824925642279854018581930245629773810161705194111185555930347193651375417253365323028521697237528812450411708690109086244138366350087285255541878522837809025805547868261311633724039635634592479769178712991988567555493542764109468977665968160804295458456919312405397358896643573116894645435939640938435658052253326942379703677644386763887156567139551421330301238536696318563141540271414791160213256778248133418237108243250694799090185245931517743434557467688034553120656441350491126713353779435264397853335275968315538111275779178003044370474150724169514455324788334122830117032609839403210155811868905837557046080585889917801583950770780989399311349762297208973093108219701673621981356983618237486329330843963997562199206623114536686901693043883655669967894486618449926151119192898992430411750596336471430339718268038437041121890530273527597043840566364517714359097922925508183041110859766794883479257123673593646638412712196111035701205997535705759180086768250655860800947153081471801799347872939983871202434415059089895095613288546928390843920110792066077815926443392496307611220364469476844489216700911791877967047853428259856112221359277555549508608899064004977204406493160497244234031833544273480312874502026001791298164487748687019786140873278821356413441219552989320830198694498546903837014053825526712740233898482485557416527597765337830704900734330277996842311395252740354194058929200618997098324633566342792876817206606384854136741765851053265470540797669761318087329142719139072622249340909287210764847864674313467145433673597528001215811274165739905330048918730646379903523786761113704796973792737329278883601622885044961853843240473966604009264777481561913687011971586650463055724168125099775221234335003574554732872838540663324586099409307705255973812139321579223958581628942511505407757190310165175310393036464841825205362047249182763646635869816736612612896505270777851751234475377782898443611717039670471569416196815528598171804488301272769762113222292488768405236468405104587071563989964571618289590688275461433542527202164965906311483213693315636950035386862056250388698303044925172296071957160984828226152945811186023372202735380268840593885576322454599578623067013985973897044396106795898979529319352906671814396671356704719957353516299847700847418178073050159130431717500358197624491832030107517454170850854249089532946694428132360698871328483152938880909031715367847019008436813339092067378434275917413698778266390806279161349696085408333069925419074558245417899992602451183510041085755472652566171749230328146330036339911888900484161999510271591834027945334585561941730888455769724480685820245882601111039799068326273935898104386767092810631099713819063526534849765611356884403960265186982275451204039374850096627896642255765929219438519768555499586216895711695458998323133410443172481023035882585791675440197409094122925821866551536722484585454818798194375844480977830815205647353493116455967149569904784475300108999037908811552896259206684843396856459017076847258211853417659377174041331397070959127457434910811872813851543380031827567089205461328121294658616494485966892283774704113798473891532513992209659155165141370550676438718166939503450288986979527680011503325584092426248430460544309281159192222623458945741640733509673805446976156191183597351527174439774021208344605473849560647602732165711382538363604322634619751549837092587711758341939578069144806475525761711376477921868507302842978801508379298889231032259631166163647435293805560944200207412189343967296374995207524669094099684317414518774981425333847716702117573914977063824315638034257717627473732854608479864774342388887088747953938142643242206187539760926323599292667670877363956186031438131598564978525472979839005604983390622576207419053981529085095346080324268190967190885266133194922055480573651724887530461014841226965728474732687924498392177540788072547659206362368624958232923828613806526698580700788639921562619641582327127320008852996494014901120086861112904743094458042429607429756640113430310010517387055641107240312553257843367010263000925824689449119032833588857869998906601970374588119951480393192174194181831249299143204983628741597509415380227236001309558571824983916940677782023254021328843784510961764712786533123706658369072067502172562718478649250334310699157100154094727313025350423440826642374745564764323751259930718001784394078813456312515989877607376896301799715334633331749634951083876914619894164629842835971476506429465295124988831266013837807831524634355695098787706233796306932177952565834583716878315808144752704465768474304489406832061300784202491617204652681865565665790109802404004574630121038917304763135187077041864715669604136447655140272903854486492949479262448897082236202834483857849365163382722306364894979438201787865094433547000798420589782392042768905630094355433205814830800012451850063337775576292762427804493573204365031496897648008958264346846647931446475845077753464397686907886625132961354240255945108174661182150959597202747082270043936926634307164663544663657898088226543749526019766960365556483484907548395443132223572129172416581334820248964284420086971547233525891945565250319929435899382104583643044922333464018150202557154477335536349277858119296435056366552785634528233563812528235694832697715592992949718965796177140925682706766692653904540824051354495728476280270435226623974583035396758050196249600845816923781465288699640194213321006283587030452301017836225429327687871991164267875220017393773956843187688924371456596099345191886364760291770735231076209452090942670834427155156078768353217429677128286572948834402193577586064858337893767731531223993186324407000398790037090174001468687514420061403780473918172529871925155328329363701640346798836557956809634624531320820775489024099026757789120509841371795115230882371703311736365262614756434855408074089085938715376124232307199030918649570531245746031397252727957952167959168150927837250547730346873469084866880905464873306508055115668703827372662772692579530943978301300988560849655423508650675537091174818052691055945607320682652797445714007076234332436648591831141482449218223121187368266095501174067968140380091946479887098391245999748569993060318672886801378906098558514114575530389845770245490871294491112882262560201136226970618485526170623981187855925896536202293429177049142708611448664252403264553067168075252342578084853275367795337239337172451158546882132800761272436113996702469667644592232730516099486333037939001386376148623674363894078845668565646072427531548357253279740820882774125792282452090747870640359446408996498991726155273275817403418007950741620783688105624844907173041283845134013630233560926431877108065400527515067390815154381757191501463440404462841776771188388366916471485970642957098378902347156739522225157139967382261634078461937750698454525211310791477709787420728291335619430869312301816062632191119544509096440938846432575546401841924393858035812213146029325601667122262989936578381546124940407254615313227425398598354687283290032167296947090652497836200749612322118114699497184540320268522925352802075918928142622066729858501555988858068074572688881361396227034062741822840254089716371142740627223822949585339653207431410405624574774410313396560102265506396867780255064331858314743192258144904495333486855016430465602245913320011493426268844085163004138048685822205823333825666699660144072021862453198303389306537159475729269990499247175457542932714517739584221293239185392993201086540908270925257895272317602977463030371188094483065732539199957857330063791159036245277098690915994637028841466190584160271224938584895179182907107346974942668902512602291551192852171648824904306794367270218894093388872417152031451148645998572482082109260740457163209626749852935322402970851229653445985989424139727449218425689680258809911827322872380961603201908931566159236974703328776056374327068188551574640582290378535230922478721146150753719632367884140716111249618307537176212036692706723924138105592302302612602129773254976307405121384275100395248616214136088821204356408973187304615659930540946986367712462709705324826658174029523735246617316762292909386164564726998609067083065154930952280908735320307871840712089085598439703474463313228196874431362913252557269136661399726044894532307856598215958934738815022091447166608304336885269720974470774270628004486213019721789334361962254538856920487970704332656130763621620372959897981451553541211893668540496264533525940740917772709776994619193884592577428833044756323316771423665812564586844136053144201235587870349038498504354090453830735293222889670045892297963059853040237740196188104533548683184169228058487779102084747925526889621337377199007086231959100793678961507165461807753411484986531025581644678835730552087125288558485441016508739330942267865470587233378096010348605603759446440401835296340641408039938401810448698472724148410142147263340758134342670271019170046963817818034777672960197437863785083749632349109224771627193824109453943691563482460285996653775080429631693379842520386525811977891073281867483807736712113013537170243026543353946171155022101421286457401303298159126022068963313548836942296116759587763397977949662681630171639643672963263066513588561095886309863137323348805979471044028740564567275826524878435881654859068487685621680554244589581820977572017025950093033375196156877472800341011439722399894617176134749138841307781328064044386704286351253269889285831175168439768257381668534686618264919494956034618549427926251530470956833452007902731282601368106134935929661860746267789689788661303301875387694025089443328565273084696709029010640860763275949158926024981437246964697672359865823709764347250780806390829930955192799221744602990009277438059127737730975119254696002150198708460554290854413603031377955289762389714658578491844709730408966359339188405811779058873611843034097684118033326233794093437254445681055341726321265501762416912625732727566907051178204414501328799036537627692506592446599998688768425755787455871464106421465919016841039322656428806832252354608049239556128720022286848420094267174989634699889539150129292999479914252261495308109099292896196692155647652213843526810702762806248395904277342145966995235001336608874113541613910369651051305867732022553245917925783101779011223687874443069314275701298406241558887993251374685729906561356832946615460573439503271379127716169791375755669277774761611778412374847403022303731198489900757895766698807249564470703444939969026129072010879534815258448942874888588384754819884021600248114167962240242944443084119623632972927804479502689350588818003364472743806354365973217370985944586381386613003284732219423108569558071724986563433408411777483819890406051704847554822859608583485696785471524682925156283525618669882809975847687813562585965739141274043542170749303539478744344776144000132343418683809500398847930206721908054524886244537806833897764154002441303610019347127377979292013188000225263609163576800757405766282731576307402179156049580416204444670555987851451743648571431046085880960570505888380248103728144229250443354135454745475877937485972338227841689340536516981445321823471132754737845380255734919262722847255175323560238428936249724117878707955679749766855897454512476054164771153099671926492160069336171687606362737493591822120248796678728296736615741399667245959539552744960899265879657306267102951666835704828718949118879359573463277168293022448191804797944716911711623928567602825104823185127485132529715703171170680457005112159597837425700044300644148263632772273896130285376012410633266921896610534473111420668917304558763725041472342510327705463073304346101346356667443265310789834516921712712719907788172373022530210863304788314487767691976649888855230106497991574627204785761750935063304101967564422613017475386174730482436059601778765126223680025801160014224660107666843884466692638091811080212863278519496414954001117330905773266180244617972925672075501451559483699312541031211802615410182480874586002459012983873899784122289609924659417022520072696816025828275208659481405149917856280566243644573959511565255504875012064792854281556566053140107006183695538704192525848275711277425125691223651798323383134283686646208372929596482161464939225318308424030163521131162140031169906249660110691492318184950073817579269050917051434946870777405448813738278504283519830383647675293253443063626839411646263626166630630280980007186381024957526541316424090649732608599289755155225604623045826637274316127708743010676104527162219158211178208479350048328691540955839039631006320830328125355923651418237414960921998479271532502349278019557867282183650650225505553783523727107101433973834413095725632536609039433399020957194952727776491917673479257893148535800893955536056063395999900132373365341551880382754186121063615837676060890796262353364171186932150946723190160009579813949831869087987585393772645260561676940571366200703950776859703860841711441199599250257700700826718777076595120279827483944689831583918231714347563524288929871190581561489096886870015728665190935100790536271097996498677645955761131925831455367938237844218903597338224338283826467641994864047842592950445316021644310050746724635849268084610481446601902518165068808340894232084836636410755724079040413801118687381201429190053099926417355222503493028353311462730877744226793299173103335044550298614008367179792220871875348914012612508338383174257794167788326555043978425887270356615376598185856182937159100178065164423949922345831226650855252282891355895722015155605734146655977672018212360489459226039346683218134884140630104025756567249910947937476733749771630053775936036786382825805188220387483780037926122485055737649118206386972235394478624570789180962143594406029919751153994932911448992201263861861353000718002058381194097068161521999471201347080739579880440144152912602346998180657311850447621416279852013703953825366958819709024135302988273663467019476782990046904461234029442411411218420505354519722826752064911725631257285671156517237273189436704802717502294952199275181967418633494357777579961600436707435625721021794728755979143041776586866155089685466868783648584413440116568913287681750126385660747917772070785411523853003943579429509049391584730928731144222203386009402144620622932700977678700983489679131795883534375630414689343331177000994858898435947746978287683070402188649061447370597133633942813315652950779450965269856685353095758940056513431171406928171372168638770065830641220913138023653771100244000330857439799871426616261931804593792725989120808677434724233525069701126236230925001709594862599653458839926446657594607695541621521392484605593699909589097386834848430098370119266406376095228651038068512773456849876882017820816619506166997054232324130251467325743240140649426336778757387075224382911160720336354221029008490652760025969536325902579583543302731406643978088177437100578613888791391439269713300056796581664982479788441528517785200391951137177540256068019620733173404225536721221927703351037076976439805681430759490681631006373418746160978731718902879013958448091308340073558257513052299053210906800050653708885818190081606145926071346859530043225234509642594797180140361482215364525571867489191973122353906833405070396127353560771480040447072285796809132067653797303540521746381904930542982328306309324883830779571402023003343327065304992243465845751634849265938663884032739644270635765288072575678220929445087452738370085768964193080318996058418558790775502060665360188591194046353068620785778196893213843664291211029410318785297462482473544240533885233009424654405476541674385774023507558401009615163409215303761162592964154647200119066261308046275379130877175963037674134384302224698666220008685511922801463288042192855518545739579192735301801398366965457571818826408254963510192944398820050348766820219356505921010081997398683098146055992764397105717905785812997702375168065349504797439911522305880877775810922533288117128255704310854251494723079920147617651424724572016255239027073761751096215594027815241480619292939994443718586166537049099104049826680200905925501339913920343207230781570716968020887947309435899649933666330647372261729424655592701641841500104833370242128992485202087046749055110549573886821597840174465213251929885552756588537208076348044532664846883173859793429198506835313076848189319881699971779856945104935938864311418211303594540742621644469368344757569068236441168757753693657211919205297657157652373365227473558451222845146538870740838150471753500377162312632329224697186631278216966898458409316415328771729839029585519299306196348998689671495474458384895172961404985853353119946611297515788716941969591185264810761929265322484748093944317407982951456328158510863428305207786257038676635012128289902389853019364051397834131082791174521128548191762655848597192448111432453377613368966157477376959404212898126302967362766505408494658006000105935851296334284843569060658223999314009213922985965082604925696646677334828635841968385938775918828580047112656442479622451920551511354143316452199418581274372070584740452762438920294323247590849767314640877702539843545154664101695078751920450720627144111253480562830521203177548717426796481633263287018528404399205996867471422002078164601436014612119994781161124694715003096243975391420838036014819909110086194709614911213495899912877795088903155691865639714655959691825455862133349198330630356644836105942612642404067410706607618160243014902030255840415825540101033180168019062921125958927255624471978411646259796351776664974011131074405531076353750557163184082256383039623423745849849048046972102387555610294335083967492161765810351221760417573094296521408905867177481759353291845980511172838002147584751811299841828976584614836478341700883678107152256647169981261745341644446457737321436173378745068310032549899589365522272321388741878138142080317890790792572102317962511146669233603672233221902080941956600005040806750940632232835806518955929897901130119131065201690606284938612429294611856112405158987684094338260034431416508742467511644473198898240469400124459005775021296698491206498802183413086722349024109127226922713779348373947037310906000484367291680767386865602902267009853705677954233676146006110243297828808694201185984307903606567014921227021950522422969273883223494272404655471158842197918332882961789263548976614976806267736086379502819071780471693383644586287602287011336881056687781930392832365462030221705082156068260822762396470705056839572314001166843799611314577231639545957725296596739873053327310330494473440342862068642417395257669762468914184549237215133309063162394061085028459432079752483159174365912256580341589481384563171768423276256390495779984999060144900980308950969125905769302329963390849266353227628350427768438278012354655905727662600258824268252137732495838709808131389295161484066625047737212570753662938857947940462809521475236825998266721506782386523579837147886378790651189100892823224531746479232023269329856192449051615247000768806261954078359161863046191353460991766345768006830473909680552660825716120632824040386982481144373468998775894999979735250612866373734827405613224276925718896172669523197263034416108811745145597530692429416731385971647289978700121063114516798138900971324550501128850818697147742021194899679689446879506112474470290715244249689005070818011347219311199506998277284114899425167049803041946955434032062663952155680432029198424302530010054724025045402523435296508054512107728212300401673727618804482919607684249360097470136289298384049079530651828104044347985050446277533736715023192556150101179269271309961907938723472365535276185078276952195289144536549283651090986025879312974113271806257134800726910651027993618699018208133846341052982657827273195695486255684828778495857926793894835103596096607677813420393065105902688904334054352811410043629635509946016668766679184177194140624398212718786709715661775769403136914212449698928427956338855626201257551143021011284328626654070471379151956955428228763681417870156832628184710290042720037457604915690071676130645736057043588981203551235743507461388106095765116519646030242390629109589861845119779272263707688762230765201552679975612644932242575187406888020707150513261872104722955160619585092685437912790033201705600266215494445821459280441413023773196113306592643588388901473650225579121911751867252892650864870818134608686245455699326749035683636408956436370401262864757882131776548367529358144430036663694696083400568578978184571696502397775373664223673136755186220674807920423061584947524415756766372017479041533988109588801646699898038813285634585076120671738279622324131383923202742295369700606153800346160733475193694622222803727625458260082071737054883189330043248041715437127684367020898082033222657360725145675975689905495061637459351981159406408153976777360710094272473460348260922448585232680131964825862976659371503773065566415364243052687597136781897254432756437437783258487994398040327230925631730141568169914446357921098035047406912811404976450159264202342436100568572977073989306728474543275964022850476199384976071601389494583968224757648816626616340206283292233399038139464603797490876283769245504430952548501123708214759068230987769259090431550420195409115899626925297101065477908521671855828658073067068653935507453616594211553621424509094696687677887130430261189019438368873919503215396780067706813920304335461824692398799459614715332907000871842954943621264091332970392536296838641450377543784691669633407775349782602992989460534320177006585841860992422005365063397948455821697719204344355885092951892752990515792561506818455478923669497602704359325385789071256374720359642833799650076120832980175228995714736562355330118227744658914469826589270276714855674716133768552442789529984877711891626135763257103133854226843992420100105086521213291439821076046478964682828948763406349462519038387801652317606331951795679318668219114890808257790502449895696021778088720446804766446199203059054729699900910067437231163825590262193233761327406615255973252860875767077227110576714664970181793138700465840592672052012650115508702780809258637941762371494202466808672502299619002464876714407202411867202314957290990431032002590968190869189579487307737806336291414408926893899607100579819296063694905149333919180806806779317482563312050031546335431571790105106280297400519030233659409756075255114322344054715288956722992994881177384927647368378036481884552554163380327595454996468431666838741001860093635970454149289071749313306997486824378688267587400569206417134402841972863040623777388039518849656963161066236686689230449238730605971960809147377269857100100242430415090206941031166561500112107736176714124637596836292068790500232280075205868776027372025052993250993728894801225293405532887379635121947760705883810001601768769808712561495398012156198466942233753299491940263260206515348064674605403873504526167762228302121138413655433332129897089416256966287089774455642113269905690421002566977440426639883504424817698212859943518138727650445716457618693296519785339991885595553783107464512495003596174294948791665659641060136712384014886439521846037570729891557787935951719077658381661061305107718466237811293317039604302485141761041278967975868946767476626563513336965568401832982364624909166570037175456568121713912551418462085738738688699114253061241689592638212561669095075641750114304414878691109187823433063239528304683351622952569250616702241782518527338772973923040833915978589259893421335979388521370649250145249794191923341662716924369387318754393446528182611841729132946638050860673282608726025251938719092020961882975334872494405162414405131962561482335013826375964811395762050786447374970510188152800597510249613431918007693670320437269108825056470065190584347834730977342525004065018932184152198905084122577653039540540172853263336522154322964780629291249446469710220621874415779336631116466898253161470554353834737260966685440530880011321147717660097563946676775505444822390045565448323474445471119797851217876343838553366065723076957867829972504438111434006037518409027082155131299756225420030510559220062112938865489094047732557861410867980580201793170646724228252517935464287151102410710759073933970810314328791750463790670004131379277569448447412445885975131582107727993589317455444798235960339353747583092581012090189663740892374984951797569381456166194812269914096289694134180073447169946677928850112274890666703557718156252576975621966361079577300256459819771953921394208879270701609097458576119853748271475109758257906893194605753745554086168009492483012129779519113017127702553243471215415646079383194315642899745188304626340970709274544255119115029063344059216940568638445051482897237613399927420080837189323095356538309042013914037555115758307752550090284881862535149769756975157580208824490716570034171571624013556701830270174763397586271652248139995673133104769425979846805681644978306254943120103625603118166615471127487145023433181761477740790203858750204249644652438432169130615449151958026997855166489309186473271909627107623828749041331640623975299292975373542181627085836635509426531559871286604318512874856648059403861743970833879119748054130783910978488350366697596695840369371915144744658798225506110805496292985656421458244485758736568813455519073486334981838049808732714853473050623509730246383744461256896004777585493645735632947358255890881437579931002237515905393973940046961166297317890090341082423971341479560196235613733882649548635856711962445141077019942782695229434389043725882548677412970267059503699783949375587312063198978240830473596199594853469075403767763725782982686337590264943366372283825712148781722998368374341262552454743524501976518212857515926249728112765763334122977176193028185102988654430435073349203658871908671078735661288568518346701311684301691662362695093136703156483199797416285739422788758894064179364682003130042857786281838253880213326951402125838600791127524243166897341011484668331075590604577604222913679137335435529567480363236221681058189021038103757417409818133281783746974285651982758240963374055751788074471305493464564549879833373941057951229347880922279638352257918444418977949444428077164363754376042846115438117625302111098239231883993751054740334121578441525416762806535815921599922990711624421276878365517825854425233499247840338969185345456895674826474801894673811332654198201647824420167723992353961700083854276779370251628817085291930693420096472349405160615213680422793948539071815673342830062994948970403932546766784091695408429581804983993087119112639677465169551522039404882613853499819607575957665426732305446633410209614308163442937405609237765957690693528144733242511141197455363956993837221489014578086103148876063961176653292327611036573653191426451734882580030224775695273514966133135405860474146384430431664375406097907062018638257911761097493745383632106698434945004051583413804352023461556208125116192041122393716632797310691511318525402615754472251082273017912770116020184635217847492513451730770145639258123894275680619641982516676951184907806209959570865654529595820068618123881722676331914622906120967062461046082003172684808156603008417272321613083474936667044865877651696731478739554015470854947061763204203368371429006634262026317190683774118152356155917363779252018563687113801497979519943443575089356533074872587709481864416266815266867181662159901030287748538723396912020790645471338980270206400120016643350787606456918437485398579816579147605367044076088046570658456761637102640756421161372098819595551496414423350104391210118429735491205007713554949237909900217336719102915962676090543735291698310454538962455219882268165660695017330514951660038838937077645339664749902688228534421233524073593792793917914228376298625167433557629407813705992705307050543571045532929940451838922818038690112082726953913834158125057165738732301762507879655503516336005956996034520487920467393122972024629877908016086984299484854773800252301596461255021635290892255598773876706675972919810532844009235107507234054075403387214437172978304892462279877266580067993478814523496413804724802084067549975141392800901613173934525608509674106533971939705814481265015556342189217888936050843660478391210127533541305253474086589856833000196211060965414363308766574058694797103413904962000430262591378395468495653066125205551925481668027815232609744119596974668964997665943476814502673931671343098854734979356826540590074134180122269670897454752445295099395413687994486014331152432088775141565380800491004401768382096437870897681652238991563695929499404692499428754317067227812336671760520547537305922322792580245185096307491696622487417181498857879220706144398515151424823783410249460162921547037435305725582097114039413837583692513266307962267588081987247657662038074177409407998118171543379632047026099649994871107690658652881129954259325245112380430084125432498288025643866882922785241464207809885647107783251704814870274117932646814821810142110967666769700514126381702001107166457222426287154713449923751297033794495107784017546621669976952602502941800046737789528027016879903256102475406404416318176183012097415219395583467887120601241804240008156792558068662070921548513833261544575147898241398483268178941736223787944526234605827614275823571868307210902353358456333977155684235627723950479592275499127269049280642124609951900397339288980379006971305553414076880022350797125280958511194036821089795372560041707991627255333801061178295310305726653460821638092504030534295317845534129570235583014652391350087662677977225421980497617916769102798140116626064924640403509063547143749709678386262641038788775979805298013399701420102338868028997859295910948449682940395696372742075353118922141884565519492367493424602622693565752081652119274945528497937696780699473271357108239347804251305664424385583160483086591089020022136690718105135208829882341587660594187517818389499013110544668368197100703964169940341608235379189827761700936961336138586913623859999953016499209429970901079147567371918551586511864855217775710812438009612213625740125074045802374710555350065493888969240622101509594101530771293765750703282689673692849610372561168960927946928496516104301697364214212452091034759910833034904382748506364545950742747212332499741776227083772823714848775714138649064446132444013478371133224692075447937175057260835672294533411877892433719528643028147611982235241650078585762586497110895061451253522905729386141150239179975633593007974665501467435518895643504204575811596197485611346646570524944125568354893172129565331515054880986561262663435477819474834624887881817396335952978975579628001113842081292935460104424623231967066596142164779539758981513217464316609355996931365130651145152571121080374745034356268487717098792363460014740922112792834207967891728720981108078493770870955514486853974015196166940859464818276986250738448776682611037975767315802377592845206467043526813753104556134321861506857566501713824910350604112441471688126052388318081616418932589904537734480521767437570072769589971566421697791576852873048214185264621435728482223162572359800334742217776039259790841762672764448509723223833811514065973659618945149014683508248842819972007985265946223471245594690774746736914888774785160141681012359160889090248333096534491026503806988815294252043061374157719896472365662282747056699378992111934813117414334794774271151524739613173903565462812732181421763614298309307973351939007806021842298659005744659714907110003682273918300430142731963761165356037296324323494966718816076101889292946760651664856605042124791464749660386645872372056749576684905208194856226271977048058051690360645292584308580609168468761953637018490390401954259577163254725029928632954294681307079501835650875881026765464377267841046936675325261999263648927161998916288827124180843070286004372008492562678748464342219822681268968217429591949694802149393953539720005830460911208793789600717777852563820626582239599345291736407776817596406421964293006603425856533357535407187648164796260408094555279780909852416093413596171963033707588988813866863302986288075973885563200274868246326185189762187193157064565056064126248496919253848962694577788482440008482380086113521462357744597394426902256296387677147926023000132832371816370000830538618684601053091480598427201535139183506450935634910430018747521116918187577142419566062181333694751395050222705079873694558652098330286235668607427544695695477820429724501029767753371069142846524710849727464840770637373499085356480602909489699165166457826824373306734061365097999753316372085392681352868916563671653650699508628338294840655985332027523493714225912673831676480246854691895614680295637827815530929207403951198160332894611641456587445352341336254828404842515041432625862654904570964919166845667416110337099097392128797749661368504670310263125538434905949351702446178103929453886493265384458152499248700100301909245407262152545069716835178828103876159018787614069340637190948508600875004315247800843130959892686125460856451231830104764328009171200364798415863330808110372841962750143504038608123824419780862630909531249056803284864612951284330442894832343618579018398333240892499569471111994663060246396917893198836469187999360556501204105979549448604539992987137727806925437039596758498394950181272639014699076793039930880115839540248240909311624273700566115359353733574109480502229133635076672902409416084393487234884230623144420678603150770887207387465387986545841994278874364538764472953758164276478565617348825840267652499029994211558199180555675261591979400791841143713190008092943752165438214709084570828242295313470271097888736305489292075023717078248255987607113988152159348146142012577613814703485432160660251931545210540881567242824527301440075805674167903334759587323424669740928971488165025525593872240263237735326666074520424692597390310926781233406318378492492824871807402856556244037472134934891549399726680750348033806510193803210683750809281854542645971838446241638961420067603932808560800714263974003203686118938958424376883949888078272151434997174737157469590714569714306090588909207641605382606800969159863726717518159537307664079936374405785116311875896590352203022204644274740933018588240421773664787404239394966477480487229737201672798781954631702383356884261033277199042976791012812134884523221933308979783813815854819723667671007321145749910931387190749249861830501720307004661414099776527176121980613132638277848772045917330378515816973949446880561217074933328606321108213335791009733000383350384557028926427470839803814961580866710008161459459076017618899353572674462473755164176167049726328644520667021496038418197996731141787863981907330145604770332360024926914644017450169148211455428754855768303283511147834909601727400359997239419118627554890621406576611283657230596279415130891638324948715517406837073427255975719094661400978515741752772363639510878700230922065863988059183695935292486257193750531038865212926133724974075895717072753362055879284773297385363034737185319870995183409248583450982337742956451220432507407144728903630594225705062267434899115251476276873831177568620732377817485270020884516690571194263672762014656680184168437189643985032648663917672321797756436175572249693536416886230181958939654155557222887753384071594223913224046591871895912161342227500355764309469984714503423641388025961273253387332843588719651497662923737148228398181470186957899407672608534867050642668078150874928007373662155154046109225438059120609807672269326239546456309444246513532324648888609936283164799571484304829014866322239364459897716763894972177659646900041580263078869020188621367872722343541968086812076587488804896783371421631888101638500924868741859856159555685950675248897551573249173777026923156986271509466827652298875022597431797307191482381241615312989926130804905043075369733052678969577885798084340290803498021313564495445806200302982966501793151511879302623919529246552275648456895081398424996742330587876381502385055746640234015605999866545961239340653229048056289899593665961112816854688082659249570986498430813721901581587881360684587447996896021380981013112403994051022862568453700590375318656649598219862358657653973459639888766935636474721728850450851364712920770317247115020777018376529114777275572360511476222755598627175268474841924533010916912111139956076807253267309498039671326309257186093580696146988757592143021752417778282844844909645042653468429323575432377770866940606604866092158049709282665457265943332548682622997516427389385642539863915429344763709373778847474069164966787337273180882871893681778111553343595352216855395656394111483273634526648227872157063761515246723963738610834149736067995152345881409254488040091731829866032768967213573636270780588168005994403115159272784550828646511619630502291482256381264521018880386805695473972775555845768953013669628177172041923675053201621579771321312324469269950431810864982243455973281248832335300554993592542385965264845874137911043390122176662545071505527339219363685514765703052225355154251468400307420392044121960541531938746204603190107578531288918291982578100474239926114171621567524851946933483955114927723945254238192074949881038171988234501666725613264059067812878909299277899528969311165507698562902826904742735830196510323226481375721977321395302045478601829331810618674759059255180136764256867754880934383717032005844020389243870232880132690250215895672801493494058313716747409722202438120826284714881760089140458661404000578215156786761603778555878789599518899024068613700329187908812938484899752136555608367325998231177815101017154195863570986417715177228200475319900860021196386690042687407587669108708031881153791910908127903915512104682571713332094452398781007279125499936916607745709776425824748667374877823180973756692289583751224412388202828780037425599183869079496238182265892708230920139154287720286485461705859131008264118769290079513431651981928462247770645001076030245093334481951305211260277858437665043107518109960792099266443793770179750996953521230218257036273876428013180476389347351346009977193840672665170199358055255620805447877052832240168656262861354690605525052385119701679610606140760934477236092734454501230870970774672078425104400359905444826106788655486801487395082858900925595365959537994484853719646994640184248779012280997036055119791289492748471131479384980296627800813094504770688432532365525408070837915967759145161794397498899855758577990007497047633559676290954911943875212209240043239855403439800032961432537830384934973873347707417457306623820581680992759018043476342782194039590844558751889509013588815918984633120493064768008269015874189775087891767739270543315780684148507443935266234544452590548662540885626625570064346557517891701921874276649211861414134498748068928816924910890817027225077185754582112310245952222559023295362450147354023553239781809432554714772557986506959836012954555642795355440896360576672580704711472698883612086892830856247900475972760509146253377429066719140567834638766946756238666816108136313625796341647809569758362289151310923695183066763869574467055117474267883525452531678725619712042302339963797183327134416429882733334746360802391582714881253824173585219032180104197413388610488346647036198359817816257040478134216362025362139405235537506321883916914084194925894340290702723700637708220824759721090666233020498084605577797749859968712777239496860192437080124019691855430184805987156604251281861742587982467036338584960055751023443918955637178567658210664602416164050219350229696098260554692966026997624773107261922776721315897089219192751496604197853835753144715262356229180153687539941778727768100266805673795808888516259499676743941617871782102763356536451956361120710559322011238962668012280344942330584079417010693905020030877491228190783915342894775162207954124547341959580093614276682558440367376648035352896972925525256987552019953431077541256589398560138347635309738502472244047821156799328642126596457755647880703764646147075696966669866752176436175872103329252134087057644310029841755272651900964325379882646144274358380912157271631495215501767466876760722142267125714025343213174457935952746544748946261730127056692086230087886863974207737596226258616564135253252623334250051672151749359893165770849953703903060808364513273106009939489881786908401694237993925637425184736492433191466756064444334367489622505637894378266501223384836090936495581442430571798526603698236478221501784671933292002502791111173725028747708814644038987754645483441806816338725171227327933936636863548229197664271689839580318562046836070713847682571227321423447422169220027757463660776502828894304436127874645110763833286380414013883763896746915310433466140106186421055316716863052000415172150316491226218204970507565402773045033218090239065827633027279903406294032841063423339551189882874540367193841299438451619480291434956689961198197046580866305577170065106263877468800556157705343965693072484929900679874472143219877610835911061593867667512510225046260026147396526924351163245170026522445453843395799824672507066597413173441441407505636565388546077684351669689254321131085274576786169431296691745785167625750010491219466436512244469635212529659605580602997215325339955554908676022658381898655517434574871585750901594316686032797361568380638795622655954410854157364210204588363012329146322265217120702439040380218346406092104529075754955261053295343035886678689740257148170529059687626736576983801080415073943375477277339938254295220943198250640574449144037929441148993489598171167544715219578255770587641689212542994069639747403056070063195100191573665142360017880402421905365384476598772656257062973988883909381608671926740564821086732624677382611301187869083739695071084574836540543629588236183870066961923141843366603261250265181966628713198410968647104455950602024054138611085494838724518755908628426640582990059513344153402613755895201232254020487199965823424582624843611779570266693001303688713820776439485064205171127956715191289217008935765841934274118285063632845568344591965659990013339046111928759326188863681076432948484818615673459896554131860420503212844823262315030934749200018957156562741967513855924048122362472864795786209446641321292089346360553181811273261894696147840956687906251515039794552910736903212208456420273332816237439529133394888449554165105429754331970706872907674453031585078948554528731569312320218245130222059945727535248471677744745982012378709483330202778507695077695772204813797388702868918419882612965892673866192580536442961151259212615246972936191579258865948460791316459175689211907018879526465554347352503509856784044745085773176258944744093178272235954016576131824023477591410697936701656391919145916370850775890984652990391382725059962669752702362366718616843765964968399484239457501421109990810602253025095765181633902066247086184813107489191280141132474627786445441134431061435638626484084119064711984831578158692846901455163914805873102919070588030720375407574390766597964595324589025262185948390346644611849667393053813323648603745219079779923600607742863767038248430171628965807480197393638119209581556319991221674932251891218813276410373686443753189060212076649761018960527859119002721239101241638610059824025991223487684547959906820953574442963604296116467322856105787151938370465491659491937200010709807680990209572223262347482291019732795749003527229229101220501936783627845629617091318320845529980694919416875312829598543785560300605005753596675310764129211735561899662446980365175066862897509082395860586619442916419872086041449427719167670679267689109593356626014973403600774566440026684196528329447654979985157138479065989961557709934312612576732185820656780405202632303604264772733335552926405220670184854783439484101416436864927792345373218142649966328116224743900298115242989845280701390528670210911543305499365848896504443638852650910754039684172242921995275656885188539902181381859747787972865088260434951080917065184233828010048491194731841880262784179098170997330013550257245333150274119729599979388101344517331371532460930554324196324991381209639538299672470122171728319820179783994965415912628830564074620494367089569086695763740353844229151215043312350925966411480816557175374589495016828823807243009734982002254841387339789966162286955358582824507583928409186645669501880587132747097143040871232122990528891172395045489566913113995481660790406651327790159119778860609082938715681685750347296498416620252902319706562483038742682238733752085402526459134965034406951269737876314494380152253178518938107589081676554559203292277344683514683969117903505614103697164679014526149471189662376601930722444473799875697473783740229028261287777240181277500129299352506074260014428560656255208479406752594343072523743289210376456234983588442949380533252924229173854892458887903126351447569288184943339751154524106775843965813524800409419850779454064937361608572713569747979893775602985849426206631902341679686897565080548724895851979778227904115566336513527238161677479296452989231869752211146227008609890978668728767061920713240145296534249502287096291060863175107011622120138892433392566331733410282050983939540241401125806021134419446198458486794044172866425491129844203570237209751287546724622647628733777018211601592801888554588869128411356706918796981951720762048140267302719184271136949039560895135968940044926827648889420831454727773363867997133942673199032087819257801027893930868286382668838005587918552570104906533141267138828631660316501516975294430954915252954665889078937903898675257055716342602661829643270978264780045983976754496199678250313701425936790326772951900738648359107116098158250168956623214677604056625629155485937351648230579135164923926693255049047185537803958746816744866876985917718364355752383950327937171412459191968761281465968570051185147544277392535552725774763388918334225172037581891726747931288342316300231810564997543196183226654026981126713723142308640505506309733650042271458088559016435425815846961804331649330186500926453547731093767942687693462578964697215883641716857741768028627046088266193816557653264205478513741705000423185440443157035315340846957934316532059392472842436208152741371205248503636635872064901624883983753666783215136371438988729207231739614729552502724139459407919755109345125393784811660121101241998343877804760292350274584402398405320444852240049979220540484885905504057005868000311816902831752563447242286544690588843304132950297385753441016643336113265476474873890481850976056199868816288065935053713925226991671213827952549369912867766301435200059174760482563828440016229165883752486162175008966196100273057282408565050490456812908556256827961770508065277236968334291586166052847404297904628826788074332621021108234791998360024189083714220711619530626090291878139057897099821590324386697095945848762954479203084564702784105886724930060812209830764789794960323482723178768364306379673625369267426504478938749944037612767144489382598232318527555620440626546061912815733082175641310265744826213484510232184535628956853342013118134226962336548334928019120342027640941409890818679051499741980580282896727596825334311391003163059144012602554648092925276973066309865938133374515570094010386375574354719318186669689851832941849180464907224987808481409923258619623284491700852987932715129122214655027062755540133853886105471834423765034315135572559242211510691714082554717474840821012612139049459421955351547341084810214496347700539562742478342935952075567376108515908720372538795676810126516043307127721306437445577469149677091249246494558374979464934177028904598363312718019207576221159087713104632963995693175592402111834088253686751329153274703329780675920279763399231383379105143905919163152181332412006862140803918336388457903892883050570191605495355508562151573783753761824306906964011557008553039127263755954038071837649468124129370638709642634786973428018526695948121711933116995815467292710616371552799316867145576889348781712016699226817407286255761910250575898224922823268744005809683104826868310075990465014905159201398172235223011381956766570516666927040533112915056526590245320539772484666802573377932251102190341654155714308208528294594791499427000997511518920182218360790269106247059673356793076121985754476947209792404928892866101666347080087590899159480899977055208036941712937646240442492520434330782052013745545032257055722218656326711340841838935813194468549822875973137474669311144465387619536060054765976205924280476278704604907992100111098579569256901183035171419006696363726075820799359908492605194278191712148351917960117241781853588151491049293968614411771602136958280562965084192471646264216106579701759532643181790758804446013337971375835011148915275858955349347094909391449449438719288439550366044567377125412610623916858466245445408883095703381397942845979563609299358295670350765101132887968588318561231687115498886731332551449099800234461286997284775910289486324680294011445581325645909272669298019073651898789641582607850511376059028300642049365939082951052331920691903411293957527284618267691485979234893912765383649708858298579454506407673681082503760752289220686658940993739275125738707113145796951748141116625318775936273474423159533482236461765283956489434834924746748433222132600443477641998511379352986859339592512463369903036689714800819543327486429895884161504528694491637475530680520181525044201198672550140467185037129636378542931123459237333381127812185570986755370980666707566121658976501456512862633808660951804201671763443747454257789730850760467253758359440433691249055351290093189895441911710663444001691822549999597242609683174215644479175729750230182311774955325566691239746935000144185494720296212932271576935152591488355458134304472193858905097895618214253971224411984514423347806080579289316956024244802583156785363775664083826543102243576411371480232624885602113405563977625802412814560181663512638873687579954054859718667664305005144392277038332399533303648564980810232622945865531430245025790964863671794747556930403455375126285618992492953799496057289660495137460006141342596137388624343292091820404342955203896974862341331608172527673236212223067014611670271097626838515804246392645468520770197608679112973722405643953825163160101269097278372726310624067721343023655540326365677698023968467877864204388207277095226406654007704282613206697736836338066093589835553889861029035798106805628210360300447111959820793864059947745177014522530332106395026644092451899483757915361901212389518741339104270976246889014597739472952141086190967453793360558641097861372027750770423728027710178331096410493204563674523977482610447582270156521984561039161762790364399340919672188342442370549442302675137364777000050190507305791057040621068900672663840974686289930236321227591706063911537655325053909667180090291723732678755812221425068365106249771365037483294212377900299115780659012240853969893209628771871008163682534967625958910357213641187877292348530051951087984382859642980971681684780330175889931743053842579101882772599930149142957641615877307514931192782742661118593164254266796452933514046736583106015714954492493639891459174809177705138572206683132319830382179777552671559231850500185450297861816785402602111770492608826884458078389744937835164480884424629171074293703341298737827712052704900041318836235103487550252913560676618644306636445700094874695693902066934006634285570176249432496795836219070991655988138905952869014181047317848220786325917606790537276829276346294503959701375459101292307683360149257206047193535787880086952696266867258838984087136324549943397112773559099628914137910478354513705396220947235550761304869149488864866065770517451805288119878896623640758442910014782832336173317411250003238368917404954620070731952220231657903774380640780747793634008906890650109047718699155012229790913375694718123161632005506847173369316493215559987431305874744607089300207691177736719042609133941770087917466708833924754714116413011594557204757513986043628010170829063173260516423142312396570296576515137382299196783619246377805808011269169721499749082350624131643824502888529973971241244445595485452047277876878869381180192994087584044456164098771893080978053636039009237407342151665632834317899381356365667840000635878384800578093521837109507375328475779082158508861705413890503334310832946886315976315892849384095505836568609227636266724440535934794827882925243698624131970083531547616619221723546102049473987971164576363408184956975472995704341513170174010644250494861439283506715814588274650434603372038406329698816170366594487771026174335408790816253101091225451975552135023055053717540833572348781497453053231285340686245700954344912804947492507497589407494499083808103878987534264740110482137824128324125399501026120815109549611974714570547007352941371171941421150940590613670545198522381660761600393908630510259687204533860703890407885647919647166614418749240012533625464945693487678781333490334767004265695438840564881732685446377171664380543876042572365608199976892884560170713894292324398489659182667064719392575172679395653266784161503925347405050683648887289981354310135931988988577398047667118415985571790534367224909749884345835372620039234651424580422719769896705114886866729938383021239950091513244574196532792884059438438255626389810928548105818550227477171256193304692712419862299935424863015083385894301351291425217819322753584893687120254154800621964732722793291600235838246769536299541599234993327376583231688342277704820148940647600232735800024295944373480700865567844031992818531865607817878965813751775255909305918436544025778009968372997131461377336167926621514905964132588796383147434982849445834237708309085000933995120234612624118864063862700711392186323519687210396594569227854206724413830879178151083098148884672203201708634129081889310910567738954489336405018769596274154002636526077746193579680809570209006197150934149612352071044394697925408944327424578996001759403782197542625723914439475653831933178010950445109452981466017154088442530266019952717272963539344656757700903607579021262881133046057913292150574916935130219777049319107040373748350830711719478641300180299987653711009176880119468620198037009964347527927686637835834418316590001041652912460962636071710703653412530585531678862342586727973605010860625872190783045461961308664933760040220733874542628290305927077062992251908517280745479072105375469368426181954419325464445647524706077840429711830838963036497612200366535805470736386521090927797744354851998997538079769989593540697033727719098457826907259877182206166368449164020931558972171161925770909901476081321899180176450510558855101860873732779365751494741470364061187966226178711101118319263702501016013445784499175555932112076918033744096606060452702225139312831869985306448199607713347526021224965703049007778640668451486381084852634107557148830013115678320430753782499189855651743034185217669826388444411607532703764498440012839570052315533709952296652948551540596578850552280394290134178163875594392066167380777634258699003200944722870750284556036694471388772971130714528189847043045516870813658762145075127195430978066006541762234010803553601369001537937083707983133984342052232415171854681557640110948539007133534701577383126343360833354870264828151521887497772646017525886149152637964447695886398338243828851158484512218461611395377008149227822634743271044193477296201263633130025889415575393332690477014823608704610695309890362186818513361402217677888420921709650021396349448678419449804207627501389252726328411948720842786505516913487553012898074706012252611531379588269348917326021847071373108440218050395288355267073218016121938325414243913153237587326119936181938779836263323550984901412464511804307233231426656833449585681976187155063673655564363820562242860126939467191736050255978892117193563741180100378128408352513572385537556657502020457211764957932151328270379538501526579336456947691936388500259884028327255424300792355331518295564627851668144862506103391748390467436413269496695504206575138274430682289871025932779067405755026412168612768919736395721949367994173270114838019788489433827503669280174929896367200671794202394527337550180752654705246886702010206654305097989796111090742314117544084719129513562160842454078055445914888744974194750064439057297233354645110204794472032506646998026398095542288323678567771828366014835240290260273621628879634753896185072018527596677576626857786104017513332617433623205015371054887665871359359145939582917411387542421705408137823420418031069676245659003883480104971977163738931099560605153218186202295816265625788137161185530622195421026538846152027058406063592580332302729913884700253801412902753985930184950584770280453480041037546012988180234816760843667028368703628549510312656656894416466543627968430328824779901141688526595920884575561177365895551188142307398794760243989131218404499565832959608843010735067692817698557618333061555939927774582536088048852636423797456418342546255386152924869791590101145383412556069742672404742130469161126686597039566325130288529010063514395642108545532374222662462865800645444399278348893144500734094809136192552139339498831830478615639295563954959898991234890868482937896573361250983117904546635822585761834532515209970654231513709231968488809527112548342543474369449787666555458739965172232160660373311303678914654813210853473692931283666426587867490424139802701937777204825224909323091206096480098295083015073283018182624364646047720724359452814841402373289908557059875261752791859294951061824586831649576945312525253125615009770996658086209655933244213805465239879458739537718256122266822505589156688062557464657440910610097722617230743696413007254497209837915067428149428213050115858335800357023047915378381701526720790765368791019473104613784980904513210426378335178058272266826834821995207006155064460369068205698973865872546166031552557467326767352005296068176294004697732621373404462157421069776239753734828438345982449734577028427305988626718603330157948726567762842262916188402784096274914361052735971363916293680198829877046551900061123516193948924305136274459441200141102991176641254366794326727028104843352071204279157120164093014035462227789815365768977874364442219622075495014077848893560229734275148114948617306578920742788302121516532751831405939864709168019366004962897610678869580744776536081056518502988065589721795163274589530164846655856162215023050887467482640186163040250672740014359157019131641785511225911953976321885759857859004767830709636738631850664002126323421176398722920379539667198469710833278374383321243864708890417823160588337514900580311252413521899899697830026383368991249163864098333977653836198453082806687653319093222466677704309944580673654570875205509755124333797492020590620761171591509434404121680525889400445143702564622228313815075260495984252684728227444122967091654174552145484993848866707662317109282415542466662178269857431857822808117055471513488916177731375694005109747609540679255308098482275758156858844408648395108650235246046773946497353513652445991650772852965703761807611411624665713974548486515410633604698856787761449497416345046230258726243202836660027144102063804624730212560011532773250849772736481233619488405418475550627439797154579130013625926873951063273307669029910381937474230833631969738673186752691334419966540709377156580725693225977169527558144933182379386636132963972668523768108710247828385787245179373998764772087184094591421412081555535019856592016236923286684343840087319154228133926286911186768430463304295367081006753298750199675089189630395937797202767199836794306022420133663994051739066856611660595555838247225671882846730379868774115567636126655995627688889860565787250990075669964158753709828873559458218745771285596048233565633060840885374093947087916066767655757266068246758857035803964318016615452389730194811034415165089800528970771454653333137722369829919427650812217315450739375943058528452792222989184597144203583245095762611707402770023080972565377416383875569413645996221460843404087694396195223756403313528566635414444506529063609129943110602778877845743485902650131432832796026796717282893421845862355475522836680215019842878257402457101750242490722117847616412120740478862107786205130011884900901674720175288600662340923888673848839116289185317069600944012981309816687082013931243385408467590901362881272060645538127360611391314016945159024164226295054992112687280471762120414678088780886851939227378894543239140193333821910899164835476550153108928475405333963839938696678812666499088165274593539281267419929888162192746198779105978977811899951422257810546802750619350195917919877822044037631866793622432944283904230622308880149669756944961093978477033496002844032739019535540283499786010141042012649877329261173374701703248166476768353647922856091332881455052084283334411559293013702892278879654118765284619977314996426412245436773137599904377428404141487972606110187383438316395462083751203095167132784565311816646003332614364833205346520650912460764694665351513727709556388608495411364204786437227092276955890888535416797515752042821592622642580433851954032351630242664288279773284835874306962902231758354342469668339704579114409850825456722601186835638303641918323830463009318483126655486753359580508128348464214076102796479363453357931874375718636134412818735636153669003838276537464222721646136011766207385823568307243937783433846035750063066089620825816109498699797925736692403571425099421551928979378734279302084368203611037277376490771400125605206821879759268984445097596335080426035065564458983624882250791726792090448308548334462115834733549443810573013736507108287800944812184369620465372936331320722976028245842736414025999114233347229568430959092828844643017667642543703005747105814695239530997987246316066560001403745528907692773107971423910227282168283812128656087596986487258834849286250711760004199096944353976661562392421888648142692787903443818781020776312484158635315966170811104489018223689625863041569840629907520184171165972486631240138503303900858998221374311654763603267540768424522275335967695334788492957038521417430277155633093632268825974399992862615089668004955916971608811228794675757838950287142882884358161484572059521689065532987225870138972160854833175500713096834331220242249213173815189564454811625382516124890529639183605459954198936411002354718342777750289402136734386164757553012374124141035981595427137346051863175081523474518738468435057633973021330855386221337571043952510676271290535608739840310274459155278961767740374649104035345172996587386152526384697253160384629266544699769750109866908355880953921092015562186966540059329253814471674456613245713783105816672949383668683263757874668470333510859096724356761504876654853537656263428755992314352633689247209582970546441218298066934553394567101851174287257089828031253776243666222265542480974465424274859384101919904739813020505863285992407888403361922079756716750566931670648313598559149887698623343926751562792178065329963437814603844079438556188062549808616618594805090087959551405492040833301834867336577558983283792498864410231711328787120580715010118514993561422629671719006767394497415594432814223473365175321543579605397751030904157229230095079261251426579895373874831822196976556073115803112103288458127311677681433121464569288520144025542317729945185928351508867075609286967075317149661265520929450644339486213223531403169618466710151726787671806703845002623042185706816603205497834914000428584733369821511825841231540103853618747943000053128127837424075787960961454076719608551077462650199281840873225565616010588256846418432291157921348699006679151048282979887457910722115960438115982677755404888785953606576679418072576529844887702168123894672271802861073657986724295062817950992677181232960118780060475684213113013325102715398202974303079846547779034432900180888793655134507232597618457745954584000811727789726092821203760125243463169191176998652042844078769291867160346858412468365349561818565649318559840725498220794405350202493571807308245312945699421230881201452266987164797610233309053326321980852639370019655808056277968580357496997420964765933852635474150818087179451174651248634919338108086739089958616732689094365327900465856408509548530710760350934051654344797791990793223956807118245809393471467792943872884056845932901218461547429148558208754472680829355164532238073773385994882451650481248972189724999197872769065510629862665999493451796674673641972942002571553889197679311444717580993024003457630747183841519188187037824555283361887613030004392717171227277040474341244744280769798768344181660156348260658711374944009975512256165218856623412718413344171591559199920601540309206094025878119141898469848586208099211197739553211162581415553035019128983358321867876744950038495461971165426476702463246760675998549606332309619698256023097365624667460400197267183707970275047013273190406507539614300020251376163909580835177163804489177990407264903785514787271002087525910255333646683311604877005351081327596966518100787780373430319033694095008186808990925283270572374616220423255361962714229178386550130927091949033772823292879575840740803844212697480430289154358947124652182233358179165858435641922059279645175932790186841114810028990087936182651118751134939008820660803044269570455893280361671879149110086378398944131674719829122641599731852616520421396457452371632117456671509826264310169651652418738450326583617295809734080383714093417946564165736029769166498759296918767595021221324510813083022896034784407008208225042660032938167075090358971141876707682131173875412231038900687373230727542351189686463461869531485053479138845635241347265744488580093451790991330432812103875356345617918420077637817933143104846319808781996007704810225721961759197925589969720129180733730572955353099036243957339479661697758462402780903583541787501630805622355103460175135748472019155127378237045129741913038980703193566122751626885002108902651582518150739853911676881159728899896341981718559423659284992398175355455303568592855895467494644966831223298405856094148030745860233747162475839369458917435984190347066253915090763104787833035001272621793056757029594786654577764915102112790042978280202685641279728403893047393613157530497250750000529659257287708601807557383080818509326370808886476544015969051911465042037584677262544140851980697537905049840652138172541727668791933271268087986845891066426581105845268154510807359038388602404644467878834257921692991163689381971425306364414377675055057035532217698128987459443710745934813203796437399441604437803752954535102280191483116861884657349372112276820204333563611458603587486556297368901808818387093017659902355176368782001376670729139369614393688163257850678184324437394101672120470370175506658651390256341962796288893241786460871821863128419469203693876150467285973347095411222337896888378838973432759216422602344317126942232979089868682771206023765986400892725166867723867143887461282130805702391095472579204278407738128232809592094894300882407380407304967045663951343732855139308833293046780673154129599133981132573155665608518429211646626136504028009814984201231449512485599432807150255112497886026460623731220220177932124862726926158508330680105364832820158828175873828096449168088413280729249685462249580108440738839884971138571222337609724622484521882360368143739559037447970018008784432268869793516101724187313164682137773691668996924303556463383019445131659352591312630186657905326850547495232972277996257053331294752381609361761482077631669619681471520188767251482034593556568552422674914721083677617761294272433769291567071687187388379447799509030000618154659234079370987060014530618515781374699609502368642645175552781771621874095140061630454826208131244095842470810042902229519471127470817900049467441076221285818008662956213850766865890265510573076571100216654424434952840710292896456629003215894875878168484565197135326982075820767247887520886406197726338649838150398027725852321433855840325521254830609282641434182508721989295413512636504052733059105011397794553472481554295192089303535927496377288932887626126353150231804397968676492838874687311498007168749532665301084347480700968804492975409887892541915004543534772875292425416283163946302148123981617153761912758874250368134845989754698887933617379148845973462355989965379116681190566381874186551843209654820010051267652805748801254269434183155791995456276540077341880846014165861333640823386655338193342687311617817475692136894014696303624494603177123867032549520698495019319446221245780789791683497951765268703806321920907489823762956954983663847379419989854677560951702227014966380437667964991441988496787378372315694293421273689173462432391492569756866084324654523020671640060113252069251730222547200305607628136977444805569277534237119346978083284651083533092132925695772065390412428572592401190889288629923012933914855616478184170985180676262601665833282325881096657408134736954959309921514034912399061847872993764754399651862871208675028341996091216815817298048984023019808644487196081229738981148813605699084521135482769045093703007078180651321575367024363505611051392270527223797816582369762259687488233594632629215332538823528342543246900660963262745951721706767933291956646178331506895178294542053594306876228928317640241414167245950267419132988542712168394719602408821543722301254064521440446106174244163910398230706765622866316748122496892976281270741683334352572657001368577408144375009988020922209673459969398501969277571794065221259481495573768913888420684489957801750269051526010490741350181859634881419050298991243554275132310654685859570117566370540366123809586743641461206622609055829981365594937716428213395808490806511759963108735291380511863257676982514160256706255020235344670045273949635164823335493749079057358664512390541059781319633492499668377689569072939677288288213892260336521971458517546103595445242943187259051890700065631963673874684241939464118921046498339142193270746353454525133949721823131960089536775736355717240572096477766310553648992217401179020767717042090832210879524730401071221306902920944623385925746060085904274919966112587995711491223216810145554206571190008062799928927945626043555151624973983701426897072392033485956287704990442882014826585785461992628124482371826630887989729353206287146467756180802387291411281126790068139277185609502858432510609419378209926589387418425655474794888775501918178658047199431735545661962538730446188914386853094225068169311856695913989469764229615220515467502279870560227575053978442062320713411500985596919145456620256223824498334210642932835124268335052576275775660625607809826309561775929395382459585604682782184661706806975337670323821162831454803798541195216388198030346122510835626802276507845106984138079527687673422988279383358143282312105000736086048365695735863949979616444956157252430221230466039826212541217141813484733411178514398438139889954011907157256165712365757472798152044363688988228792001531434966108004317378952783589719054465318485288667370716675881186906787823856571953041713469818671905478271357571161622541678941200151724900006129535596895064033067354872442876270661125758981273734399598278145263983260480867921668183888838991398959596855934038466116309771759197904138916726210275570344737862821115428277469380423782965228002302665908422430027608040873901110523494545332653524534183102126133090691803817369148876030115680094341595599727572852500455014765997472187073929791525955055460236463434377462283922063569590469425053234661341885813175463244286746415063900069515383576892410243428050591364594848073013857016097110254440794711440973272422369833650338372205576905242439154476436863733462192716104045598232201970127471404076466653707108254603370297611101569096777977041962502669326768818815442997244355202260637926372143050265673176355968033175918732949749744900408652673625526902684721088835438238201359752732851125481269018953678982585172092760875507607580717690528863264577773779030320641023634144941003226914809486812344391960901564878954621937840097085040787941895815327584683521180226576726408504979799373605057145489187092329627382851210402619421916321919673329708383272926840076102253515472099526204885086851693511551748364464038709521990698519001751105095607340000666998074554189222064993557234205745245320967743808537322251249427296081380743516943086706349442160459001381008631638038745080130269670913303390746754618180854417414529747910375611768463461165953913911669942876300125927269417973731301779702748064046802474375772822325126758525767155824669071103772187420190083838274439815029103976055347482666422674066162341077857775022498700276991963035628802235523580584605296304811776304059636714835649393831853368055211816427294632571763355768055931020802287266000862157360548097076256324815722524968060015240356653841787008928489905350077834649459714552064586696271147556938728332252244391602568329533929764908471047736229629269873399400034533990474574541748222776967461945455659621488400340064814033785825292581897657201018320262311329945754395373985975249057239108661654164821952802602978862921347996273419664712464864212724961401824450766006749164742992626908427363608464913310019102358917709927962347541191872826644437526580816351127415229525579530230126495871833368028453938469960302131108670857903636679430844771745489485962141405356967039260208660706631336469705679967941483983101641765184156589664072305516972774320217015514484219233580660229554984942794908021273767770669866174485249889881135548021818088943232730130557358777472811462265830056010278899916075186466456224607264511427545810507389791187435073587556259701042874211104211723998205033542797741493573253084139129025995103182678314809597127821541888450138352991456503006646309035151539922325499989552048054606804166056417677492271627087924833176688252322400483462387527948276436493616346944557928884236099834018432715922631393651718971498766961497397657753450070486402160690419807527803657928216461337278325478771347978063863975449693825680521081990225325820623584540747091017198830113687850255265177940559472728692728790909428492369679089245792979930858029462329888189934350966367366110407185986036006068620686722792035050002930728645798756817219303833142072395735322203095623782433187319879662456003355040502471091689887430074322974280793748315570285696368712580891887133667417768742048603852015584826246142368618674647280736947168856063053389723523486235305245253957732229373757574810385459432562116379800594044846570557879546371098127255097620495263439863764559088909815901270403452976181649005680836441760041969305877847093449363419534255362169277552906665542399783231157501656001882357135193073513566330154657652719997223591311114050885133902538878141269702022886917720135305102854032264004868560571694160046044609015131828352485698893053083082338963935649654516743624875219698914782963602811578495390483816480575787430936678755510781483366960326870810935428052924565053940547113776695758697094992460653709603422472850948214767660930657616662557457866635882303917774469480108429480563904188385578176894552225508587708803234528473663491427898606527471330314693521009488061677623579950653813634434110160681834557707947843486659149264243941329298251690400936606321479044150634340420054064798807900899693803590277883432383746845597584788998564156983444607035911990701493205981561957826391171065745523443767870068792637855845642765460391484883084042488289602958206640202782577274777864232397965871020358400956145830769397257936672861824081577548677002152415027712428039430741552941101006907911872883175856302817706355177318062355482906552451897282998313619551146229337732277828181283237223659984503678183456393811865095637065644275982174053277040650978222430851144345158529408808553053603879400752828441928439968152662963666711984353564425480958407719059477073410712498330764867547569049019478578379407366999190095049879314258859492793208841556508733991395158273099286064486016034481354020806572261789871550285545529343796222650363817394223294094254129028157770698529452317217915554414439682265784875203489331720669716664399972612742997986306412876475043659579239600076882446456260204587532984390492146996819437849311713813337236741258985201658442878232112835008929492220817428948508868203636467351496995400943348973804239926521613085328859491381607652850397900076053874273149462263173359609669485983566498252038509982470700869888923029997884457786183027156248625274629643342616068311229423346503060669034693859468743245941139612339857200115549238285740182317390809842741488754932145913787500537144336027233974322629193456297763450838471796219943579221533998382307226122710696268971287669504140274206391157310277283555297856854901082652004123107601053879301914192204147917611147658133732523904443723211861696242951312429163720381384071575520224703193366200141631945782319999255343068678747165340727144269666766024161907317983239595260984239517264064477939098997288909536539627936517815683079167500543464366297511401706994467358339814202464547850461357768402503725044956640845633445114608641348824733575206639932012620305343877390959409536343659802887858604365657341552836794362759591822554721836204616434228364751158825025843500701553962321820662300383130434090173775132470346359016028627893187472370935878158168092892754262927624772947119038615677765125378866956930698998755914715674955924702026723881644469484001683439146432534623275362480358928313335056632782689193572950904257570965093178347101534934733895489879539030995332600808904794578312463209445325660691407805036085716895705244107016897511966359020890131862167262200975035471007131318663630012733613678783126214472974167207457391202175395637495942316872905424463024287386670142511799793476717796123446497507514980838107816233158183570005202142131996170140982285713415745002404401619362782573553876781046432146751916954892146249653027456089374211843941001867424906718296676116886176622567909603528032784087487166571430514944412359355036227685624088915581499533015010098557471062501115202522121466520581843002141231443492464791375726860531515667857781480977849779960742807816145771775867313973432821342359191566870501089395286908691403155761863150230830657010441031244061211293873972574620034244060437821112792184166205270442381241563051326896973377948532189700303104822819040628278776236545514790274633577982361641743517282896358858646163016082002426618057427969609838668881130712460123233838549695091682509654059562464192328609096434872615403508998925422379583092824078782910955936047323920124043696636404383284172013007026769739892426544848370584616322788168721396622012349259454937890764920633971857572819350052097056903086076093073393192368208429705883078870216565986547763451159503456654951833145074146224100979848370038747246883440795871455312279099793578933138138893196152409256929540956908244933416913394900275557964087389419584055127134882064178809725257459973985787563372637504952307334013220614694239294354238132535044233496650197534320014671255705209062701575459490479130147832134907631249975555181986943450297731758469294067727729805891963310562794216695084061945321214881727288405546872718475381894628992828572865939965745083518510357935413153625809070186282477345104922420288634831852197927407795920400668220786093105825017787287178858989653155620631249849362827951718435599746367658869979320255450028084134594350378697886303837938369187287962199804760322363411603902643302552901658866743826539916209370531346620762850461513028279139138830473697245397976506304287195125566156922483742970303640457985756458528608846887501082004715118595933668246516631349090506846124642434097746713228459215147157466664067380708301696332332173206980162429663387107237122649894684502457354434245880235193857115058028756472866841546672626947504490574439821832945090273698171488261072709371233117772511742999345979174470628172619324835954666109510528266662422039858224507747023795499219441606342200128869238748188816721472127051163549589037625832720089342872722028302339109937159541193540632553370590400625028306217682504883771264297717779946593100775406226244235572284141362080163810931622597944598520279888367061834965577679516088548074431966310790041176091030437733855226136821058128114239430477241683304325666313178203898874668921513027319251005622317423791499829084658979372749858022198011422759113493515052568625435357847787670526706710774996829077031551497792392838705288737022531101625299058437153547490921400589315701580268840346089290746798216360168834214742890794730700760479413265225247807123701329812156637726207555658884061257186780386550323787922724768452423246273190710639741121608252309928806352528893315058577155973973131636353264534138809911884608383445289358436541971749018197344275848967365803842597297359206082532706254152385186060967437583233160646486234203730020944281253661089770813270109313324935785433694186899800265788936587154151277042462360018392861527555322299129114052469093590729752688540165629592543133533210577397593028335180659120554740507594762531052644168189987554048296115009016511475513258352198295543962402011624460975936393080938491145489202384291013357724698956307796899266141782740408834782154312851933832667063236545629336345135799002421000424004401147085127610940827825032297815951341838673154466980196095217382332194631646346787991027834446474050233751303299606058684690199402638432768069127035361645730767193849988358805074722324564984987883095888761244916172961179214221198607754838149366745091690803203611921284531784186809624694626334436019006051957483877598195081318694004419445562449122097748834306598764049959982600033504166413801057742869796163960320860999824775565304731851275671134224944162074440395254509638110827540088596027214307946433832662565940414531498338522527039730524580949290695278286923699449178011533628007479864803375533814703415810775101157069898391416737696561017843196644097457673783814895789649805372815707065376122169339049242224010224560680740730974796264982489208313711675315398097570405056659205991477591963843260472195124556191593457054228374750393688613948054079639464060466753674883117594916239015160003597488932770897687182320889605634385964400104742247011251131687884078788271056154993797079522537581251106705862904480044816627077810516911574681475561626880655859814631979396907637614463583166836906279070704045194076632054936640821184005670763275643550248529692466898108561280753002751833419674599301414624062854885410999063618086324369621465599716656199387072665621751594992019237011095429409587838726404227417824338125775641917299432014162145101556020999253256831257784985453647392999849635303877032843063183370205676880423788735423465075464936186249780609328638812764141965414795001839386067008958901513469659822663322910184618764562796333316998622433352807548172839478210896159145085361459684078288369433874605724489783452420001523343388522287947644306242438463860399113695983955082508974991416873479420834519676209640021064392867962786194397915117524675672614648603264680035736081152145133248577196183028504349474792126778682182801284785964114167671928805198913394156674224481721427935726813537440150453309993791676435861090760969684465539064945784704723717840849268881032346091829115405372686547900217030850562275131931657080324113102550192731923989368339059940145132122495982032311990103969309140432547888544791728955115452813205117363664092623241797906767001080688208608686154714570815057591170514795184472249839570699024997591392936911033504001021877657642761504227193102301210224552816165307425359458357099479814504071590275874762855793058557271744924559019248777192354132294114455736026703376227680199063987799636103846807724322557662493128855087173315126883421265090800593212915906600298187720111647747311309287105772327708128609519342300460744991742053035447679697554819687534545670625832003818626326479462539483182078280732008323381113829843737690058777478063124727933886967665368033747791195229035650168072804501410668375701757958880291221555240423280780575126382533786862040791157253448770852549642844603637481617898817674045766119256203753965089080475983013126983064300142775937273638050930109411456183305040498475160359454926418171152750776301666982124043485642325144364873014055992713272187566263862065526134395724450519974635772753024386587941314852481269413314723999564091200135550529668176245080659673198591596740020831469546784410026692060931082455335968771715100473757152654766177134331589670272969290673934916933924368669241901400697446832155098169983401294204546252127342966158535760870829491656334996171607099672265954696736467167931077358522887078225296131232712764167901036043323914128658102160059102655494982020840181006272962065280529976956460854659154596882932668871910475103679959462165146001554744981166551549340524760436027631994489498705401315630696552084722173653005374813430443370526765626858646410935824640284939296372978230069555643062243201293176249864671155854114773943054717668516132897120878828904851794824834947463924918634273778652125212506482760977670649296529261553245891919223602435471136903950795502195607485079890508452735534030370576190830879388712893985983093981682475661836963766444815123333036830007217050037439474836051688789263645736133146771525024938799200099729272312605627261679956260956846602536050929578816829659337012243104855590949906998421267734274292596352282451915645944828460808559331850426357211040369112818260918244246316198729856133080624322379511183178822841101714310952580992084774532853709509053905091586084565286877295396398962644959335887692807197143661601657618704557642811533629304264016149164365451097836204571002686987160849526633886072568486023490477757690795295624358918846774308722932716332064045062489224651691687473740703582315311107352816145319752454109131815918103191311401242982540967427198010806212274151051295223303135949599403762430555007039708141275476314004908277147758140248061666499432018193349506774932958559348832264639458315959162074391883841775473565913355424263736329685686119962030029012817218350931952467127501283752546103759559998565831449192055677815419738373207020102554533561034660280727427035934266871432503524328329087417843938091908824649338495804335496030721203114322542023149874926234852871735572644747508172867844047666285030743026451280005030942098891733046271400305575910459390755556852864248736649845480737674909090787695002042346827183035596129290256116586841120449511127272344693163845938936450133594873976372725429511665598201764378824889909774394729314637584937796754563076523978879144938191696664350694854891748975567245120553489803532372839750328301027497896971772173739971859362233900866167738752756504750236260261256272788617244438309239943560878490606697373954658622969679707061395930635620355228142876945984634237335772373255959445248034991778095069523338881828569662743955930388213485028859981341702171796573306847873985964355128408511592622976091512530463784097112389997955822880808406502530235551554219470530528250585157898806105796124276161627023841282660453923017891292964047201076119059699444397791232170367145990011184120868670358547875466269216006553079807869982483914451229132827539005808711587786705913806989893515237118333553869934775109298396797145736683471885139633418277303665139144371268504768676060054397509723152377104196307749332848160841250594139708458612851840091974097179819765017086824896963683545086408578037140682353034085968233486186935356254409026820227419782156398083767844500391886281356891024161179767526657788457487528831625041573204229942322300795049642416512255500721733225163365825378947473886836868581024102775573536728652692764787120854007601004765463690401474204033421244156551697986161318013166162012709249040833805608945979230455644581924866360561147235655162785861650344209558941015201955197927981335765867600895819898767728739231201302408859384038160422025992493505036067072823017798632675247924713537602931665020770396851712290329969568170979503384745774885385476333638429559473845191105499395328821234312615489733555244388924136778159633265702430487477903034027371788279055485256487136446158132150544794474937944077371165923501682576756038557774838371047308852791742259388720733249260023618457499556077958120414347831295858673371007978378667954388116288262943740735946034286559886136085960876427080240614081796675553270797123414620584451829197693102968629298437459419763542827316976673640435323472883816056056973571217405174351147818301989173648958566089612863635885703357223674146093098276874752581394801671063600245526801670108747852727610065057238463735778937203161828513068335045591871405291906807825937411946346993579476663904161998264527782499819633465435454067637615256420160202228916700725600411241571608375231174918546102719819678999717231171499547374467343596815634866661239529015983997894261970534979437282273228829770909421637049165903273326766118891964102322719046256486794288481339628598393560248748875295334914363984198111309066045637641276184668251849709515990709652377183811146095640908569832899838804480205986602706965436359085125451733300738768041049907203478444716143197178191647643386478042684997431696023251381170628676506581311776438749427927469756402621969940907586129374635604427772982452096639203371547948838950694656609222389673495117485914697560802413420206018058211572834324449079650673716232122905166907708108018787904273437703639728714102804170142382786060336451487050365276568625775107023337484287170178868609829662077052015164221708943558314692812240508579643800449694168137707670610830563907834638316374406757465403370817255177314321152818054459270641366759010404812465689113345454719743717863681654722033117987491321741049733067175407888585981365606724731744022501191878553331738808793452070946422234547597849149356137008261985713008937767580289294620806790718301475807826267654426691011818930032357515541851724059251993241047281151028397929770352628538774393510779759305644099165503810955961897661096598729107703124812871906859708563099015455671688396851210237433792545257362571334597060137750695630180631575097332721631205548894678039139921266479551583427981508822542000855558783056065016997903113793303485649992059168429475662285654821437013536967284095471257516162544707646238819424089250539025694798767890166681941315870521147186774334274917126896541852405645610633054048836882364796086939640177583607744713159155844841010703822169407447749503707514923254053934530926045519525866428383025746890221233879909366565842078399885959424673713858070694403777318784566185027312843896416579161270950455607767322124605676136676451879914539613413442067459165949105203326048916775593616440174757325837130908631357417179459434257331386681581418802435386843001770053431338113895817519130468449244048051169250983735362012337051321715186488105168203019523728923313081221828645886023594189405600476464675834443560994275310112037698289213380589084898137389232020459398284060460111315720312946624183840395625934238066103879801440173726423363859912435169531647186504534384172009778715998058195779954539218114881587454852099530915259785178019041801025414991622509748830938088183677882186724394305006190650198799045536689633700518059087121754349159393175245668536937854677198697450255500250175698024455941434446042841606211692292878184149201322798055597150477393296422029679456675491041223927463296025174491266476780924277678558464557586838359285998028050082403341514694966969071127887257936107655483966542348112087641208215782673798635586686213667011321182229077448823525660583060665524273170970411821076423441164455023785157508851085580801960584046849108823958448500962853053802225993358742954109960726113425388455573779999576572038285841833349705197776038001111136859471073760339969635981370523026243980405066000358464150268171953799945683044570945562582722757569760916711945705728946174235976785557757696452168563758116781970106337375411822412287769024488707561736736716101488439927665332660109991459275981821866389582873038550797947684353772845513507045827910768135195213673128036728995720938994004474441597629139536555077015939227029767803517060264045758976529939480936308739603041844434711591984355103114454657458081810565657378554785469416445367878643101805883558218624929346418454310743967605622702679223270694975717185427398641325810929635313075323889373156636584191221640923443433911638480728920388716317901118346088677597346994678596545405073245011535471649381564150518225867102667478740758945496916336092221696637462919338627613788081711915421979078870955196415875111431584143968326638317393232990823814929403722589540346282104213285332830272892539877679249859547619142728196551787184325695917790380247849408623058071531087661484763549339627248099133831859287427157391118912274861178730547306209471632211162530240789850067430320434089731120307407070867636589513086995674020904135960691297060293326070426159435543122435212372878803425579775812412201301324190892919020897161479520125220259343838642541747962079561722828712670670511828615752109813427435311848053358184779858176023955086935892671666382292448229530351193785253124723598021408220496712056558309967872512789810498573748010255732240996296622290045911094155237358995703812268580835742072837440839278393578079550507731276640394450115916109473993177790413939865771571697368497195369353808244200841025663748252718071432333723807221363891297389969902013020069851021746774489463724196110915653991858888695538317382544528002884037154789200307937008699635529309254783011984775406369029238967007272232924709019935885997311247692502110533288373934991667945456732730561452851136672597399229446038356336735126960929786101978554872602522897554846595674713407012969022637073706812802759243746602349669719626283365849984296548062524692536663600371621337035623669326173754033096572575357235813524964725978106820799673263485619538608743478711056210194538301491300837192402414241180382438832738933487580236913146912698074704752667173252370203305814708126326245449286815271226950458173442667035542801756950934657791853356475134066820052929459945711938425121853697728530364905573592151498405036760309800230679111486646286348889988202249778355773930726325438539472080804606223321754804346668931613365548633616002163932984246103470760628204209552852217596446878988818757039604801555382219561707541063296673049498026588390692697414421049539192279813465090086847496441056954189908744370179449352266660162344154248799152033178067710767854544484791594921520134672118334780521657502666225954631384430028445987534475728721090329283128617072932808912214471764007151744220296389193895489248694312599880080550947501297529458504077048812200852755837722352048256398166833409877805415377098240908835176460066271345119093145092853508187231866587469105665549109134824596436670826134130768252014448903869392562730433363358041963897055569593770563219464055404944387549970159127362857471441064220216938452158986888372250186880481388995957525054112330115456859848741258876355434231266774278794103811459465211705193615618119004909578546525345333111491925835005580746374894500837158377704506485926794674917411705996460583055014683338768625969859702450657819692551528672290274608948128148963437977150316112061549848082448198934901115398267626786677419818914390009012628675215921750388600034905972723381756709600726034169001367391165997038763137679918728249691866558545883745027975903461978746140648317205250871940124622819007780671283757510283281847175778001903644537529390219697400458471009161109818482119842189923524289846460568622699550596753793450260042084354124762172232841770979492671394963049425113461864833249454207483630107089781240721317404776011415559770707554528719877814532802863689088957089719979328034411472689849886191894747626927538084759376145376756753796391906480931286301687373813245404828551264187224458556308295645895756872102432649065712094550679034180920924578332057302029610567863411172540763924661237136996084907758945632544073776382245921981797323913126519865421099448982456872016119908274690760775425607699308801938115415716935321617332987792146472265201141617533595955098771364186076113004984480758817489974952700128447452944971092772723659549273279630137254858581700634552547696759704005330209921974585468738961330618389644906338677356327156863207009098296841229394042466249212557705806694260162404824325772759106052943969610073292402924676184384304469620616061436909127357815188668648292583723305403169969202178127432551338139755512700711721560972304489209377220053600438427504468274776390920344033760506273233638206247615158164112024994493641010384645005090387939662036561627297646218130438979660389182151842842635862055898575435829687565160899450692470581530164555553798842201691451409216192798596831829175751227205769158923225060418692256169130410111072988173169624592480929262259090849787506810274512643779582740484477412481340811938315194314414719846978555953078383525977124023907961546647523906886016250209850566341066310982064296170261486314830509689459998574016006901078707578174220605031919851228068446790381789325043692619117774474952808944099266308223589612926860331996208308451448592259476643718588942773390875537128531882599774577247207977703444491119580005191569257898211892989645095092084023724781119513121484160105498652845052582764948968674142440069261548893925750267441554064674202437853385949867594518381720343359086307658736383980593321730346390311203265831034689070659120622966981305318017065198496108633262126425768048482822654298646652028983102150858415434179847790224306179627362727301073263602391530828188508043289080198896782592044173347590380238742718892769470570510673852779702314245226009731583443757880496769187684352792423334260432821273704861347353604815169050080864250535760217112134416404767495778500396580570213974464216479865664029734502761352382391616354810712758410007937036679533406680615626501787157826443630591212932007829179291187034799412533081187564089057586614690747058904407677917457194514040990299277931173403885474695064404961231567793609839628665488883878767109156799473755125820031534366860829434531862470932512801613709316780747109469953146393984719439818538356570776322986768352093601471960585190490748542235608339347534294126632311670633276663030436291256786081953796728615588388757018508581229088804687091417132196824652414595449788050038388654671053819119127908675930504472176946302467705242046145120845466604176676330474530601033107089186849535112828348723710743631815498485577809930297182307670416964638721333031079180019947790972715153773527535997023476538211275710353592077347914532700383845003367352584604279263881227454293158376904188838331129620813815585001350028676597465490676696401569915776895966254028921933916076868706167538729093925209076095688898051971309169810347051702574284463398409203059307535208725360640358147193360247184650950795193217760634222834092849281416864349228561706837937180059762333481360317409451333384292190647204697554672258979707956825054583788263274936807577361930435256644865469499628083571966803615840092540742057901569439765909736410690220015287396207956617470849365506392185135198094345393827553467244322757362249986679461132257736332276569886211901135522460386538127602192961411856936386754028377652591911561872834517821440829509301902104700213290607363712903063185888104567724738976738753959857854281047189817761409187377119959489386716442865161816425036724253137843576669671654611941553080883772510062696536297020607200819580918173411041324113992038344486472975022966572528618654825269512772803102679151046876368548989632670606439676112403502886980288865514491155713930638741044889387786734024038158431166207781555022477243946607537915927305315240264331097085573638762952941860650091854064643396868951660339820936763023193002647683357442347146540487911950378699212030258252852939294580687020539139905994956499783226668741679105946877569634362715368485649088833869820495276470254904795426120555407230723760833480342748518732804915408292406051739312614684833702694123193714389156207810096099417666719809696552145278226102674074494186553844270777204027781990448371994490801254079681725590575645604546801482678694379396118082416996864122306089818892260368971153683339803187934959592589339614351950760413924226148628895761280044466467652922744902064448024202004509215624135575887698859698056136500002256229452911217979917204162861035967753938313045888714691569245786806259519979581438149685651006500588782770292926567893310974178589311092714482090683565115327177246355988842768424007616954275981713145609398924676179157884900350576620278872313346094375473337165158362313411425248937986864401593496925123814695445381092918504023514625985891413541989827133821855289883713916155517760325611611452540966955402862855260870848963269311814889591846812949824412105194621209454579115280275039879908603878919528340037328249698538004472073963869747380044670501673712987076542842751206393104418011048946918161055529690664330295609445920083150787013448406522606079330630129148519136673525431718219587890968346512155895154156113674176823521151222856255647905359302504279964351356829858117393758314078439319564856997696101703373135774534361435073369193285342248622707351876608399236343861230456445399590866607255266203729318758077556639068722965619140324364453493501906451369662138991367365868720834524184299947329212171350295367447125328173576133599274409050914528805930791224477452104499562099096617543348327263441028983792554139486958330795709379061358216382368547441630759058547795872351493991029065963407531957153392183273596932621245156107032271474760213672821371359209621714497068417905490908519862120849429201939374144581387830663405817417650195035519748686946679039810246953691876638424351264649776068607766166420322953702321177634851569734118599233607871280425090189127153022863742979660260063978554052030546709181068753425066528741695036969863130801853945384136418615603043333492474773608443848452064207552522548557639192888764339411638247406116493470056949396253899850100847992199935002007400518172495809836968931667855867335358367264782300668434030695496341598910970634906983087511986013438742048519868392371709073164202186333334006046277843267961733451159396668790518000688252296022638381899883659659866678421515268526474290424033643697846651245647808264680964007769414757578473369629683565732348050544427852638637052755105510196872364415226058321282190147050145796308231985863904160945611901387797376380570645933190880991756991385808618535250478394406509199087256032598479753356142226887934437073745046492958518784808144474403733565646460616067345916509345319545614000561238522252585915346132019616877652259584849412489385130905728448662455259732299633575584456536902129833997186474364070927475849449705650145782472300293310897043356420349676647543247841021075925708669065784545523737220511318062043313233520461192823509646984153337652970540129972355140540687562458529923594811851211146356441939233174384429666364376821800384290396579034156172740682266042590556763404935769639941922373083093367139711106204424495040252914744221893984217049304050991731721791384889713147592573546893169300347091065518099595794059794736142064520634998553517493098384858374768982351391019637293126814756679208912757671103356000891168376950061626337580211996750002614234860340356038279225283818701688966050502840214028299375405187886607813634680323575451683262947964349224692076375571722515544720451383527820166420819935950798887805771714385772007738948554261697534596235351490008749556181473764228236305043443542082158544946002811750890167958085067297682799403925190260988129928369511315525858959911096004648932196567284351510801420748959140640617520294923183842593495063600256729521522929261006143412488836589424917784086978428354520728570751168985240408467966584302744509247130640123062813330308436177540210869558527646857598174293001576435656571356064848838647264689682517913781664971608745052570662948324978760391241193687904667155555170528484520415805074952330005552104058544833445180905739753338269356714886709862196384296615645292496749530910536583171065012858849747555235864302741868533565677387624934484573796699625806436261832371141716271357081627551493202947776481420868648621617474665286251192259667878842028048804310659216280978302929899226294251768101558150551174694341712199604970626401991029042575237712635169223887898875378157341676964729700587736619718141914043428639082526505671337906683449397097038710435171979796433644451826197096914350506465709492899495151530109940224528429639389684661458590720152385014373546172661064839420934602780139847439288466373997046141579155045394923645760816567528527332615687548291957476081352735630986803575948765649213945482411640018295515157391358953454854788617469807358289819497738832876461800353645414540580682760407939493057990121659931478160865012220480642290972460937549068068823735828634387288369434574774341925547670566488164889025069854660313449557361236244163748549812168721748227559569313666816180831329378478837912154382450796310868290978862873376596827111768679345076432960497769201817467901689848678341152110022971454077124308480593343202303555104347864202082975370287888768338878990033201255837564653940938586494490197702310985104476679955990419895856207423406103379287130642507993120104242630988896846885693706547191350423218631968081490580607889495975266713822456574792606741237435971411035986524487062460712345893591538582709385347396431519597772256570186487371052309751110920434635275099948243282182891398569968075268151133921067159342300176412987808156713684196246611533084952478534815643937456907225661735349439564513820006725045131223852135133804460771520102040475935224908459838844281232386860585413969778052891732491211148445103072707831480614542645039775131394217746443390599007135084514272995019617935384693773884930504355279017160632168520765161884872205508728749106771875922109353769134790911886355527288929432019942365504239769993318594143558958732237812856335259183345735191704692024596852335615949827627970890883233814394009828278342211421709518128365026367233014516262629286409016382369569530142573616249787819007593225886090770643841289908120696899803976341351467363664338040309174868861866034240196328677549275136084566326694748809061877052780090481111892950694365819696568755293452167190645890626953974888488815548384221084877174754352249623842104229048252984602665565175808451875977869608076209851706488693715121356284998185071022107480390904504487088754267446429671405848017049171854931480712848589735052206498538339592461093970438770147608707786097073527300196126662554188593679452271288582034721589016105786830553908074995939652732334593953989371895040784115628721425656414618296297906870156007143567682275192995914112107090004065005646915112320032889175364208961148135463494753059099985847808449659033455390357271147568092748577796440914928479890731579959854454467437113994659833645530729880376983559255031076568424918729868563399711822971660247349280956585489639981953993723334841632639580704610143943022579915556679992840838117706815494807253789671733225109585638661838434134847947287118150955373817892486955273102877485735020782548257350543681347050522655424946083471227639330653698560034931080445068702911727944592971073139120054225602880247222655448563311138976646083313787556764261006902124640209733726999017468267717725994064754902770872975393513180148718795264085897889223084482394759713320373457705390693575615934169282971557561239298607188090235901830685803963951508027231725685490994979984897889583025717987685757360963593138500014445373877913775839669861176410856348240870212052310343618220172283009924194323454903338363862020015873902343466770636766113891837541311497183436996474485121194697514643702963790419620908075280090141048308024403160852665487785536649280102682408070870876487002029538558279174406356666474052625642195663493184844174115237587027707069368419602388547767027045982639850321993408573155271560066372875387651996678686886668640973750300027340858538463065940971926711434063690919978409183343209008556386066468262390284994933892801996532860115101270978968857056781976385685043318785755132350055039986210062915655237095759823853280338564850610478980962207194400800475591534664476600709937372499287619406980186641251930748635758432782785113019573312259694159666762774335190288596113663832944413188011637443014270143316455595564660607614549689518475651264662485318617886004782190859229898995429092579217949841434914907306725053500884751763194974924745323969218181709648255065911953008092269522051771676311627405857345514984228981835730482478863981844117886616853791397950585240157257670859786512010869784636150650808222214923392321238923504249697058448584385524301195607042101133066613703337783583393490748871225876433893512048088393568996466436311020350708756843318034449158711996088660490916795358815909079497555304681129770789131438907427087428565182471415582249210220927572633130379064660607239589717606078562296555014955748646109202588007420468125649226265904499968929346317385398939721214611245808888519314171852224477200370879408077833285003440572863249277289910128252688272252847826211017471710430047383369553422341680217983913653699805582289906604533623782975943500644361358055112456593280811182713517657428458499345230623900019219201180377117633577238837901216349849787102736501283616259279433268117294927693157375592806293931087547958839563770332504602883496759267636330552743334914758100623314664949641360537970508016585457078051280576324653214783943176698261883297508809069501147990261489964712806818404693115574060911704870371316374048211068416366947235084145471813764778118360155926309799941934606018315522211384950955722579969440787809049610195841139446596981416919788847470282801381488717400405747998759539988556493045306703423715015763479396747069359339295788215011905224053881912707247191633652048765835439807281515169771366362633274957502579131302384289564777426511715997390991958851976842144938254438765402569457951595985097797286922660779993595263438614558139223888849061814136911052847894421610659740632277095854969523359463661669064097966107847060493606097720246564514584861483866486934691040713890761022989207164817610966192392879707013212476906597163451981004506369954916034835529550986018793289472841714718792399261203047199412087404226581392259331925137177723172351193874557743132659830367701383924997319014422776278112866395536220192269003009929828577117429533271958300318223661528268317884747534878505181114059078865136903082178682191865537955153278034307492105726201046063093380160768339379050075224278233895565603416718204378494375599017392185252309747872294826965464994824152103837475399411107213554975291183356573467284578363656288463512886471066376035479615081588768911735677766370858741053708020502383481341956022307882779057983992316710930435525174558380812227178646360504599686322189370388214600888557127344832112837391882847593994779553465207095967788234396448498467563730165010348928505107557244155501569703752908219413285651395713163759563970062520701931398798109463952702161818254256426647318137683308962396797689483372823409922571087824013582155930768600979053970879510919485235558809950399086372508803335724215418209989203395218479189097952890992339241313973619859541383664699178959209123992781135347623538414058526713238281014177309978312173048204779934503877797917654713706099701056127753038141183380452377073076843818570926680212758890598795200431703667958615984228816214842242024013183317567938273215027673072533318964793330172301666426110228941179264867559825428027210374579861999828473117592406014782500273094195573549821944438871435580553907445438737282937299032591703869638381233871246216038676644685172373880190973361800438559447919976596714293946552856656712678601628037856411436249782763608023935114734560925860121694284215255803183097166371408732632144139750045005204917619575206116826237484591529540169195200587724533315452453400642628059909710588878114111292803181510019296417901139746954534734545101686128366465373060877454470163177816277896117333989851409559006975445640996133563375734508512206004901184865611527953021843605491055097631450505231091743241763372822297726857697078588263457518456610455216136804258607515314957586057291586360576699091242261537534883825120505257849527831538144925521329168711445001325556963045669069939387373284541544452598057881223931357861636170421936040363591552018890591180821398479942307644727482945409242482636918538103402751829025066852730723606267316903557708695036178176365605737139104135504792255410452248943702739288884864301699188634789161601593395895162897369400958106871422046474183211688690328522177009907927707851186328968751144276018139708681210922082621634364062045152482965449785985094494060916741607459800752668118735808049165832862175656864051505952151679588268275551863761346686357567113256447702310936192339154652648228525825235256558599335814852960797598058197107573307315386313906952947226692875724587277666841415904404608963754765917218990940127843794791668065813623664686007387298816059461806131792598151015372410892070372731267034948037782458954791930055894305041599697694678889061126737968537930737573542447267267513208591956376600235898894189643609595092509820934488497903983836117740667872135596564540788518726352083403472988217956958299998304976284343046506229227234383919871736455531314497127756746230319234537433422261091052118002949134265677597656759272702632697153459444266557526586804105219998346350721719236760223574999789837291307884401322109424641266531920498608124351128866135398688089303552351776894434771743888503928661075583922292299346800604219600470836573062368777230787101018613819698100838179458095247832593371923433315647722902909205770576985089621987543949549095282914094983957369753181736148859718144490005216816800005372665145383710176893642498773312658769917530544417721462800494738166883725594276909992978101330604628664051068090894991244981792929889141448472635513492599869258668886431492419201147545167542880787039359573237240327933113954190788422309483612620799872239107242989922526409200903682978353482040376628028832057250352210714472723561442687187714151925861815786611896232427646609708000046104396418271784147400438628682765806103858892314641291110005565602499466901544886290101104461760319906801924520495497031022044389216433146828670878948452320397146762652864582074765959277892744004420882557031185597199842583742449029747851565838575407678941203121839744161043622046654648677889839155374915499679475810519555455867145864543337273561493003891659666374382335130788255003038316315582030522475351745454516506360780662690242135343703756497060940609913708077709895085155678535595293643864010903248997288227146094313380724533008986953004105987488731581470881100605843096442833863342320928384526240377736704969698316671086331356104766296627009999717055424067817031166449356677189883751866798520979550053382447598216991801233468008603229419111677631428416419398150359338597565825473500138439637695944261179366822341462970619684100336267802300804074432060857967506698472907357888163466369088955408590195625878022008417775438562937912270661341198628122742095858606169887428134053793156133390655813546661169513099701749278416622550525988021715145143100183114629170437814878021956922536841970684428463057978538603358173037224915386576269765397139674544028704418779886404136469809098745629289157671626861467052937076834028856655256025607274254193075306364641319457241957562817885040529098868923938781063124630417066980827690635074990588763672939499100625890277389963501504947773224098147034335082733382225042766690166600380966248064450690582269857744092182716554067861596386567692716868030466612800905910194096487780927545571606527169566912899216647793117871830284858898451467370844541830229304959664332230772840603154864182941850082106374964182239546005952536451696345995574778705162729260044250503512144945705481653121267000371740705707577155118293747736092248079022591229820582904341561445578988972692976679269147804465826297606400883313006238808165321001340365060364684251967199086271475992786977848514045094721652438869184126982580172783220900544320624090477296583706137036592776065221562990071564174534663177047383828385557409838476629083151548254611418624010767381811419154714911559236654408905179122837497411107544241675166920482458733768974606275227233776744607170765516598561717034791305208246300589640882566488556421165251538816257623196636835470927249214672353519335172641608086246815089268640156498588877723167731614243329939456641097756089882339413824260461966645874857987598849047114691997716856331809024865394214128780935806297067913035332638983442032455181362857360176588929142080462110774024445027256352104899108020485506367796681751914272615484884459402383023109402146340889923814695837677421888405950261728725353568668837051261229903459974317732835324199129783552743017630249500902918365025767661389168716052364156299312039651926195577659623345759779790669725653651534720231375931159113171579558572493617354522191891270222346800116183629637636740401824874979718172378707111125445585426344608626168231128996745140449561240898159381359405134664058443997240111474053731697067029221430909566522418875689782963792111465541641347718318158804131369272619272681214111854610244475393460605043543517200395710840385217841550156654540301191755080507147349542448724383536685111448858150759428621238825440698988666446407017103114496723342125783722482596940552805804632266663526580600631087019787204666477046212245852956868448056401543201340635433370254993445988543879962289237201656083054083254393902125716942989488254504500001798882330577945274976424184944839163094809733793098537879421326404914948690397657842711611267300367487191723703483611073741993838981973591865611276307910272609080858961853273060912566382854300066883381785404437827360573208961626551146256922994878389865930565694915067408969308168612964937960151920522158672392966588115438488873965453757693639369764089845631710019450642658378110347387595919799467069549374374995472139014925185437742804065003787749477240337855896483436251191727067245065601651976486647893567651468621096757077606466821112838518682641700558153395737730628039840006652071306193857490001302588348976848341893101091727790822384604753433883958491514077614590403472030441513063137703011002673923384984924000576389157796830493831508945794988853634684116145485452484628714240291482862939631754550779604835547879001565575740359709687620180788966358587335221010943886810611027030635794325082599511708188995685889129975723084899593389507444654381597226520040395570434772492187003497569453123290446556188729923564543110344886781858875242424360736909772417100697479256083964612980005055375782385239625342300350102699680880099456078675185802471820197883020752432071970618253648943116917003115174851141343576157472728567452693660747197423995465976972958306483597163948987046824055377701167567744576416031788555085610321490358713286793302803789127107273363455175410010454822849462437652882088438630549899863041208252019373050755349645889498857613181304361763676518350650412678211218150948927684760672056669419435915832035623442700719823296692626929750407640660953701558425678787816289035093840526691006996259967606649918738470017484867593916938649600677514229447020850679189584296519840023525512860474386018990275349807896953387906024489179152436295152886343393733296460000852764716415274843510594611395973494639676469494456235003260337707968808182219220911793849787455702295514199484436902468580668920013563494317847680042651349738891463169671987590113730024492148924603769209854855635059078890066896600459574467240573909306388147410038010850848858996889593730435827836214686564482303726676429898842640141394420364125384211065435164872927436932088621949905327729372067085286664750110192216301401706865286413101291789961476160382932381496801858574750222921089164108848992295416579062203410617859584904515807974473718941508284785083627212174829041479721262112447539750556708210697248508157612873764172301167505771674207268974410176484966623655815919122143568422327005907631940599434924184842156478798939857960692955806792241227540341198117691976840043073193481136833715081097732631081005088564489224721609859584894388854554224834303611711677913297683435278453433662979450799685681133968569640328531020526850462636039849883518465426738736686043426456800476975252624741944450180928240403825938358908530212884121426527670941571380193285342643441495963136084728829528492241362490295649359925441650686562135342348361985900334379955856633528925165186681380175127758995151882662751796156287243186806402815611345927394462536248863649469880146197664984330982086466776248268138941951032923652002733755762021176932174306904739214526652685440195476686107136424349751415657589384206790360785777692074144090012204427373729447764003454489189535656490992408159123189818124218176557205213674546325075073662169540112096333066283554302636831929264488087709565644265996969127926722757730655279346732703750353792586071683205876464739466757547581737923958826980520934273502592088494774087613255370418310778927388363800622537170013178786250059471146037129867556283240337924104819284499524609599699952017479672603066897278058028350083311100458526687258815943614832366526759141885624855155422355853318277114317306035617944986583155218034731322732904038513742172285885348292727362530010569168301389099556823506094243474086448098006594911860111419400544278311562072257605335628569691834953357623877790864024048563527667644669331222208800171226053795359705305888791270372073984372970387399031517882237537101914811213423337185172703005860277387253759629966887629725846166836261091834542097839708262270975202828720352459003234573643168652155668195088148116060489762800981805800910892385982297099662066648968147507755531602409535358197345847079206821103489625992723002963991801062150586037483973840465644304630129557184135349178433962358371760058889774681301487525955093937448803157484501902414611522015257116963431823278024610167947849326912618240656896604202894213118545338023508064515434881515272852560797066642626864521982783425219125887540355929558408674952527159928183959752916677277066123631146371274329464490340331126008662556450579522221795625895593300880295719651507333801064859006129526841180092068443598094102008913058300271080571825429860050632232600420575380532770375357531536316927384083081265192243067129665577274083492638647243414428652963623395468520394873118362461027128404693984946740455706650686622872567806884889133579930508250896777843550128749086383101354041255495824899214628730938866260511789842339557224944842983771360643216364442780778471506976932721976779521630928924103549580399840450401403648114537100925640226143734589546881714974313889004763255430267675362984074580657493592044142123095010396321927554471804044698052184545845244574421424406378615608513350659358881797826155295512137092455450997516991609327006727435638853016399131463181878481200458291208504269145714683045216375941731650786979196986677442641786521804612055618799238527461686843514704948899068123481579334247288929414882804523466797062033668144166129979857603627086172953522165289341879411211789497265903635807361721955732474836924416969512597191447424266711268067656050288515918424911769981328635347171747862621291605028160632925173392888010888379557572740946290612412602312461152701717114468198706384602947379802572997091986804941946969979879655688681786452607501782193790647425678610564372069082528219383980117302315815964086629773004470188509414770768085884559943884191680503490761774056597563956164045550574133049986546982836796166906559040725093562875507900416684486499856609318090012145260426392595631263026278318713038202816470116136176653734033175919817722184921356484379370700165378191606031855867082959044899975957793007445495920484755576846681420634764115495672120402539705681910859698423178276520967647081729638670508616799455784254537409543163663148939628864936632997511021508735469272432119959299367877463137807941601759338334594182878317670073030043016747222489121639644480364838791477322552923474650734004560807628790427184533742681626346104269798752922081583105117328272888366810142459080374198028464152603801204865261786005758957980570558639543790504369850008393368234949589779660453451495787352925084006675240517635784785225111831768829615068801138025078876129729290444160281925399692738245097975974462920089706612276140431388868654418233759625222864932177920791236540168319207876039213726639716758791251647435261942266057890308389805525422156109404772983872752210800210401093070668344008853042561680552458392540795296687536503820782353755844531342333719462843497764640668390605661931493100381779708383641239602856338423534512125192866403473321425583778440372819215962823418813682533031786935020263151045900309175710733937899302759640258991350058178461289585253914939199588866564361015228507270520573456729714785358207929733625866309423244617663051846938900128402840020744966059732861522912564723341870258118232046220801622153342921639234329251704699737134450829660131638502132718046314134012916033864414631092983363821554050495176007499429959654969151866760316282206419909997408396255618639040209084946427131556124983407980353483796480327712706114714064814819019266659097823254430365427291690550260821792520466574186252134301893487388019843762998187029086377341202894629327656999001034568347584270011406613400225850855906929554126487143849315780865333090026616450757969378385656431313329029590487196184662309862146279065476118710709401182068309699401476649291346529710246124777931896336061187015412745388463302288778852155092520656034592946433360740498018070573872357626620334087086780079508626271826165158127766107823103544164493832785653909746429314437488528186875917129052580684240002046866431019014467388847470361190832004463287084186188948708481808634192181833158171254654959468621428318383880571460039423263979076630448421772371672462981032768929925237633893370940132786716602733888832536691693171869608871870832592890121228498747055376656590909306996397936069298213417886294042860607768970200623954157999364636372376747621092373824299314074317046400490556283501552323138318303348608598314206820615909172834656627717004819712807791972872891819874832462938338831625328493219489851951184805220324905367253051185537240660784391788685156106363861427487330189044568628816916239264735630183450096547267489325050830434138113443370261186176229308033999825330299007143102517040256200678454105298759836918231991583054140235302453816451280589504430910026791202488040824917751368232055360788576126106409109679122359060176985832793493201182240506507680539772952156999957443317178543867357642199448308384879392464856360931551664394083117709622874142437964454670062099751299926065064293302036344689217340520299741552516648375798652632992588211455513637649329801321609718474940513328977067100250882172345537205661882663959121966828953246102804914947167083778387445140534870865568970277830825747364944610216519281222159657818919230140395897227247659563952657974912560492075594568925751992462874993616404612752433340142012514080403127900513951029816555261430103240691080783795896591220287473957371998993657215650507017654995235249879305812775451799302530138685099985036119694314274584594056369400138338059267450904624743729650106424362486816634066667050128294494331876247727135194705202609645023528759858081068764992831269610541731865959911606923631223619655908023559479043378443208078184025740767731389013851543907833042153361354757254907454603687447905434012734711081423813406037580529575654198362018939988914536634175949767608906294367066818186863386384361358295467962519050330166340671256254286459142760518396232921796592608414511130655155242239843623349751704464651465931842252403430924738575309477735182588231871551575171032591891701387078192314137286094607407324126938601034999219902395379265938669251528363851237417410896494925916656127953623733020448622967309795858789328015051985332148367380214200135217180832973495629141771192790305391600180819471409562109436161202777490501681474597657041888821488332149870017193826564213001751506095112682565813258805607746737865827055719993109956632373248185135469850440993387548318617749568221174548136408484007333589221820698105605073632642611552683479010095515473388915054653737251991168832441389873855478358264949140664232178796692114579093049531969321510210219739546227641900967377492889006077953087612069902822369838244709111042097655729466368909783386821745458658539704657664121600454980244231946888649116361036531809948753430359391774292440788975171047563328267439092738869394634056291127905883225468853822936204558340499627539554360155164148863301092035345344381087123225575918923497491802827763434223648955245896517179802257701881103613500171257243274524647363737113300954444965817504229545132169765237526960425419564217106063097413317789311926358925862679567723989249629221543255530239726516949637537164232020983732329129393136603816963438669514589493515981493764014386482253009503921913774376528292173802561902704895302389162703101346056643997182777719018882540474692074053330616887885491448890056296089224706432663575745708579399939133892424113883794417525473003906263358074239335646582460727041314333734772010592340258813452062021821471983884762102198497111327596453975462359791742293575730505540193849278568779657417835174639062382253562697569947195580683138016224554989958702309238119879393060670561386362671336192669316440728672067762722386318498504261219701902354824592776794228881546483008541287547098383816335684707797083276779530557724518742680503677925849847638640960475551866173249173791426052652408767663698592834861355738910465273034095962813647247297008433189104331681862411702210483248161685952201146906949816383498610196195074996244978472203633333482284097663245449621631945605819187857153651338896838391028885113595968854182919985579700278759371700862134097594846607406865027614386651298836645603620694615849876948979364539561231997281367564477630108589349331498545346991974099930715335873907340620415086044593207186098906648107505095413519807806433417709201562272397031055200596311936319012555895121667659825032165766821719378810783984096275816227838029291884591005457911176493527034869158141203618138084636658508130415690044392631898750788613368311299602994890782713166905564052176165032327363361491997434695121413766966636760995309772908840823358776621845546655478556917082882225554007772687460790111364372893042912974522544212550465158714080124906277080554567248367983363721255261966293800714283354684604562538335881482269465321045350468065650792855503710920727129588514750128840951788424045966714059565529031280385703468031041889451190054404664938626852721942816247315458258868253206385601997356170205895932611714228611196138794654813366107721416850781572097450141961071322826192433694991722532021078534298188771631271389766219029565324299457357153290853706301533252683401294071682427170615477966774644220720373505753834508813241554722031149468792231371475078339169908067881932098372243828144745831422594562618583772409302859024129773544205217830225272425874554264910578112817285407624486939291312338544575238741378223975689808042048605867955447959883383433489625847729293902336588160816263698526792616403648628169764973279142959863716768914809639510368393682538726214742557853899114070513039278803151123528730875045586063952661928505615173383308320264289467457419669494939670604577677133324953760060123974267512853879369431769782264898575426036990483010293405049619536173369920562422254346428317581454149683297863115058397067946951779199494019160074387709740697348634062845777909886376299216442213917991814004205123239187643107564482628788977238753156657172404567449415702135424418895997743532407030074303987101754219521224563759376208723813145604797505227297244235550178471307661547173829901364003845322432413723460675366702125342848306959463874666991865835910285203880912015635846632171332002646067545332215472976692585288501215534773195825325836525886279532830478327755121354218831928109823595342967625660600263795015349976299991836578717578360464297892733207626563908729029084862414416590619937317040363654112219283613150514843809431377862603878432784264229111742091159418884969873475420521843105810628745166871952464225580813655689334814165298023569806977662730551372111043714956036969645622630394645585553524836683203893625166568636254169546774147643255641252745086886645822605335084527683806386515210645961871335051621442351203957646410543606163389039761292302765503152015497445753167129365421254999381518315601925155176199482258557332596931752674234042197604956104609373847049411941051039737868670759806484669353512581235141313364037944762205999086001988561214326062852151816004431540543690389853903876432858936529121187140564074232467652888954356819699927110032311291377015046284956107361377938684925371402240327727343482856066993090873350581855695756773208446089222271496135940815823662718568208227385531545831335065547239009920673053762647778470430707368322841451611525642659532052838306216390501521555183474435923688808389363128121400445593125906134562538279798450428612457530444842887353963391719152589925358159139130530330869693190948395927837569326480196694176001638173881181534492307984637277077032194238841855099798860280973018379135953191053434840171164492531048310917544427934493402787635549820726045197343805576161982488807841660207200467399387977322895169234550434463006006987361011339875211868316892308566987287253214500190729909764583066101498510587818320760412550165137959023739739867421190375265914746433366353772729376354319571994444926276597832031870714175832469089045372980446803118537187552653806302021173910890596037557408854222428362160360439584140008022342422404738944553433084048662836989972381453944216710380412433003335140386892855340665904259771635456880576165034968317044292726502602092717072254415155622154849522775137319200946506204587863055948323618709353589359825219848830864119383990539697365842782136571975240234161362349100815863062365097650503848795029391344123131783253859451593356055917978357681573189509169251702446624492038935639620759770320969226860103026728359838629933016117075396524069359660433898709347870933890888764459296282009854979848595830171592534769719417598385700347002376612040178879807251101212978472100579221239033446479262878526618946533614494869060261814008042607576748012435602696426699157550805498520962708718268964402178372880086620285692343049119623185550966642529113622258019781211670817298968887947181349611734834521676605703590454458524278714803134008346968793304239490252110797940586248320156604582896795090310202770134672485763422258879063705730411248495982825103892069794413999078800310655475181952599920141200864364566254714176683818658784593339763490493487032403277799485841793400430048035498034812327863143234922041344883880749570892852410027195308611881264256241458755793893624280744358994708420929109140451483891219193651780525812655084299577910469843342683091733487887064590979432032522363483057914719030297798216357163772559518560878774133888997237387897978756891016092500077403425410177340778891153808173282932449781865490334970026496545391889663527293846232961204649352762079514587723455722336312107228608556925781428858046862046564013661290192350461523742217555607901576212947810276686094855515951433635169805749396107067233731549628215292395292180764078563641652780634661086482570876866529591930215205229341429106827840503940313097831556159924516063887814499568827822131926845731642284903256584182757721475985628491255790401608291981699899799494183511060333488810949517857520030862652509845752367026738692539854357791472816741934730771188932726610210692378073090219401207088540748431935645457914060457942421793385857181984455012809534167110881272724720796317571938233712583297408293413494310517483865176277956612426794203588733805372387257999132407619216720767241065345832416586043693578265920875220100842242621750208648340433423641302913166270053902099084314793546453900881062890025711637398963555455228470353203207609242809431281787145130516250482541049901732360654606034481940931136823727837132987636799460230867384754221519140339297508336386461790458195781075634303788789224158111514418518803179932045734591738684793837113615048582889238353155124910833726579814082974278142290894723951395486877050562626745755788521594211949422065409172516037174736345224090095554740830139471917946482001974429531399147979976308316284309126672009273475308099089105525673568723270735798730990713767808977504792950090217915561254385785701035853899438840764164369591023105475424062957979653893895425069699373002941060199327956307851297394826860844025103936918345349821237683066198179405563299397647579999283722841259833882118022635804003809097033616742961585262821715148262410344129873938736940951145850907515302078533587093002960493392457719242364775968425812732165881822847443673149751316637406880594373221954320965997698390272226254552252357398355119070739924226450967490564059249659317199774775911210693324259468769290014422617969319845465026963092471337896149094130428592554418884745644020446612673734975322734742201252128735896956066603454903682301601505313014147716906543872734815021132923054886899097928809987454772517711779465123995633182450678692651913388091816828585070454797480446991111448583312198453150648152570536682984533933775221197179227018975684954582151811313214156874029668111760614630674948967111532973881485608906880951064317434632671120495134139576984017322643006981031503856212437749767370631458129437245035185107618549898133565909018474943956732484890745327625105997344254526525794607153692210574739283152610105141291733463641218118142789983712242403449689204935793337771856741867806687931292422044182653156500807045869710669318138377184489721273992710888762853569972518836906848627700989674859272665819649268070170126534341686133749308305421108891337499890038218559017028605029091407926769699155379165486855754718473202262035785638857859256269561372811043441693759034009530615530621189375814868957540827603142203252635906275021218567321248906025632031394089678290824435591143512698063010512575040401944723454690559088878165575576811692426967223141014415120524723132583928290951686227116829348286456832037895075318273957985274694283801201043282723959052121989107865231014016471771249182203963602818284917114904563450036790349153818092988059044744180197430792330616105947520533650739729005587442864526211229224006338888880050093028976565310702990495519284130660667798243893947208481413961484214105126341672848673928097159433492028179666359325734791956002706395399097852795568431865551266315466244000837045109200435651503814100886135913115804754103225867209546137111484481100168965231017330724952027032520714014673301966972805509146222983668217008329638253369202684528373793205695627848645196015041160606975059628662988525816808047226675303152728986524313010101117515638367518668173931973208679884337501356243543752540938467819193679294107950997261096853546197994657634687290349992753588781048218370073789164299592823316243540501744897555356192326316239208196739489458541481506837806048500406311281518664563319594734910485946696541986037651507265029504975290424408773244868420981188124429806555287156649459356614798560212242920371507163024557739890630491107736795783628188578938886782427914417407967117132746521429805579120892199592769483386484216267825000491268836153809382218694798247760050708254656831480856670034661189535152973442728176889503879517600998691641754997109088227254644606102151134959637966849431900850203213859857393151510664248433689061579731866059612433292650784535672970509383007191040233513675493117447355377984600878470442375232830221138282585373639457118634342115905691846351889508726589830354219524929471408288825016929708526282177652951374373094602038752476334727905607356171500386876470484437540988608606354164348849577625216252162066325575840513521317789056415415172107434953579136843093873926441120258416894447481120658304798468644340747452690886356063937196075229171670703578452211649094843469523649509360013210652157719760504445168984077068383812927906720731895098524475285500450656398583785136302600647143401329537660547403830200035674619136332880753978318013948275931743877135957549465838512694165025196436891122908045029026639162270823146913071920817634376831308519216287574945436577300859187846293410289497600701469676116506094145707296461237488373207647661077441430896246239231231325961678393818938064888849212193762929233795166128972219987577198238630773828210351536339618012428993788975289310749065993739171079897006133221086502209607296671397020642194555701888518644550550534523508787880226876104004165849761343079710948646964518033719455845894548543402815983253222416987328808507853826781679494624786280578123665616714769091665404492452505280014056061455831903523780871535942886351298107404591715159440496956823489914856312562642661017310124999667725967076309626898990888379445689287708994030796654019154113816930826457760097773738380605611125120907864074311030095906745087964637634798121945659479511088310374229590832514257480671450745059478622466049593575697911333383272128335466414062466968797108583493403426181284355995852667564462089717763583180313276579568054075510581332166957905418293322829100202914841942649956266705536797520803061922907435982616835843901106760480637485207031714811509032853487231759004764750283272316358052795045365031520449060057268541867665985216454231865786742468141960409553691890772921875357865881478366628763473174472067533785058689614834822459121460725301180112692121669768563070454280357841613911218353236278981902392828116768174463111994556275811773225701959923065241968897381249610261116613527967082520423280647441182182274617078585526357852145041955045795161752877831331381770068027023467936754451915545472305551113007402326229249045347145892944486350486475254259547843263242130743904441944891406129496886450059512921003053498733754554620409446708788707304245248409847924889156998258688697576985746004516733066595158517691327878992539662263866803692192981234063498822590072091765978766782079258885266177732909101600054519864903827812928440061658761421120590358065260901126781934915178957560761312589181086547711354654450547840628204082560132742308506340640073995255435108417139304530076745371813000374634564172477720816163164561385752942469630580687380266655446524745195478581003393981489734023944815054043634501417710543172946758096276600064571160961591121494567729406584089815958342012943442119285813577701734894267823575876235039492419818549548181336717347125522343760153681494637800088949366066933299525230007026349189141739572671459529247654211012639513927569256438858512494104769944980590285891988878089557751037708138868125013911182098986680773324716266680072349813420575229974309004113011045656969809721069867479647802196820813157386874303260025791899820210795976414611969546684424547967790646903544306283368317700336936583793590745476621331356378273510492049704547954700576712056129128090450519563832839142268270446061409109537780053242404726371416852647194195181845658946309022706673677029335441837457601937488327615090027943105885600432562519711158300365124943454034838068007182756674667539734554449534491628450140066545753345156579582856820685634480614508490995831110085616129993459600660513081977944833911250413620065644879857216121006278033763902014691543140103511093474571431016925509676258586644436110893040416457028509561624108337762615772277382247245290608364116978811931211987238028635864170256433493543790840693432356664405408853306043161788656064948108596633759001510566182597001456714086182720545608531135569592638000379033225255311167761309738789916847966885707793740199647721365206199568732286821454943396933405055995209427842213813328049560755286465375237272966275252653219762747701004514006209132758258075555477754139715542259499607983094556971756742857123439154988561929264444778581851597662579386725029167091495958682912702294952361116844836530565763941947879972956192989848820229068424810846777003126155853061146984655528533156494973501991220541545277259717322784954272947378930595159482396273928246724673135741027722515168560047584777663407440665834587927587340346192976665694156930783629376280163866159274401401357983106656243939462871556778006374298624946849886808955281585440190094188077899634575033906623084248477595531521937672846947958488825286840941108150444604210809881648283251690167104268303564598349724176792880986237487331682797960845352724166720374224433060200505010154780429924586863519293745913671761364050470595835554982976796325080181607587916331914552509533642993005247884349129651349153990813575693976925796636395725624909272351180830039138843441320681945095093466048505503578010805378918285002418475659317670975408470376184826570649939194353184140327320155827406928250236393608889949204560137865040482434490232815340347090948683336779400809104913329318507653888675376956154510890068692892526959532687568784855690217093801946011796412491672134147482167889762333808421767157244343417644405584294866631265432740930445747791263599109965159270523740847568780984725006182402396776000549496725777638271880145399830761442335879648176787881581211574747972670117755663725234326809571290088793295693003973586924162319008560903005115318053761654264879170268057527989989242890377620271382760993461315304694843822174487810219079946547570229243335468073805867497315699865864508168310597253790487838391475498414061541331915934441081298291964435983169249338353468752315104074463020814596203923188616782432597941812538076775959749518487660186775297274250618476329144842076280277277651673493632787623648598061470023014657702721945417625736075747447310822914876747102548339548189163726616045472624005859853208658323094112125522882168538637594122385418995025284837877161473256674634816323214053846701945789045986017668729870184585745098231297982205321654083736635069350244378395789335783009249664980125745350711274508306613367951798167289120249783191157573189793149537723631474772176110180094246243020931751916700799394617513969983155391236609179373125712476722489283215656072930545639522798643385318203600116969208476709468072310684367761978476939622330974526649040302924104973891186027068832809659610457386708177202439271480601289768908295360015297455372152687074667811927575915661386418328259952705432582604509852731782727570990191659316123475740412020827548834139311605816279351393172877482670714813550022418787707348508031826270229269613480369012528052231231478015363610367257447188521228706467398843621170076802133596768264120632064530521909487551956688184381133573009413756514182293806409826561906860484445800065058422505600196132281376712499542934905415005085578919461276942339863954474676749749733917064495084962800707653278175941939366960659924755114370055767009530166320969932475787706434247109289700913342950194279910381652432568315515840642082680768932355192788984161992068784441175388704293099658274829635407910377440482318119547056170188437868405932669535707375762285042595556996489159720304671768729664859060283282551940073878241024028497220819851994500672725545134054317033144348735422489594225435480925237142509387977282637586490704863822198184363543698676133774949045919554507074405471744134344334860460285560921594374217748362646114356071760579978320095171398189488292666714907846755029355638249570653045940123205048166649970559154683424946547308390585648158221823595782828178968787475925447050692498674020737672847793895204464886763108132992145146268233691967491256389523568196430679205528028547120759657780214891379577301475128241319632789013615622105562135569139130700383934421075061923344780637566921278429909287301996865122528926459480105380699060048145484254410254389157688753577496647443061377646985624660930015763254881984024840172562560873409996173383214058102478278784508438277186572332599635791444225693397087038479589925244553038191205930691347102397533035121103743321567778013539896830576735036526761490813996722373933395070768555554336939797653356650494747033133022269904659732970319513996709554160990714750497551390005464089152610034641638186200096301495000718108751634729688391534165013378439883473833061683940248939028332266529305793698719972476054778308115304634521074378773332564438543775869936226171126275330919128661235436622459126432756101957946812389144800688769742540338936104600806141092971917855872990856426284994605689157699514681953617570615915731857364172809780167938763422781494572804651759945426120169260494320377949607572360425799491564015887174881145919985105082586013759464463185365493383315904849860291371421156358196294326163459145732529603201664834717439721422577122759356708720347997920346809133269181817721906655818636940779390384424607647980207420987733688902488837346146268885089680057073436372873507135568799630863820023650012077300870914552801537539995834459023860154324226656126617828953470218703106624619415914692911103241434984982007272989710742556450531408581738743411575549690405179894289171089636917343656214030534056205865464157369024946471248971433003373893854059403557122735148779933924752514992030062762570184883618365782874850545896370130901879047062943632356601578705086616305872193542281832853564523747277614466691463171514843119025961298669196836266972671412589088256942729578362458830390012112888916260031913122416299571046683223969549198166019498472860683486388566503101574814299142209842867072737423398844335949340576824281203363706204995825093245926129218254194198347919891110228316287041052568144805152652056432685320727802550479367465662481582363419197852381103783042197008601160268542207721023282662717962871084641549710867034168103682584513593753831813441258727216908153994271272783460897375262218023387930413229547475995413217820427123241590787792763371440391685265391190056888981158454110918492097509875264544714603734477686720629238092405855008308226049014399852914946812863488020790371786780878057959952193356034725516474521997642043760267071799152832378030133929940318107718160682287788472480729022167802049302346478902520538396665799600381427785094806982817545609235467511228016646774989755188526755219239688605276739415623472889466676095527251099116729535371084238048841964800646040627289224682359769154183291827092250660129057462435916388828026020045712785482865829185078833038200858362864239590164980000502549627589093052087671507466435605732479070216567280926628717209103673664676098498872963897389677276513506371937652857227712153892442387710299012219456824493528776419154651164500765444670931575769012262292181949850399404654855934358742872327440951615786304674828761979648624067067825256940877259167955014008662476065552918668784504691333239328603693497567863677934416502538594009450855806470387677595732354526266958150049939720702636210446630994412330466202994089803105863158892908518211825828416428258321724195146360480304362956322552689944920743749288184394731584297572277529506366582241326353165914679160004003595068407931635619060344489819648474844911358617851869659018598503904527887260773841638493134044495695478599627552856672971242443128941582538110224261469989699801486340990658016619855566689950248135906652064176889948131075851327965385131121451685226044560879198448570779160515064072059804514941486369535393566736567993360623132537484877040170599308738331908180930498392446637291433525966731524613456484776429494135195026806998159039734612115761288898049376150667527013986490863129963602422656052887736407145765652175787450026079826489035250312528349187903069811345555412270425258691746840626238145021897468267149500503497621616799079417674960017861219908775483973905448145709525884147723566467833730436425718168244832672787873899024809445255518315474343841102507792384341461294708517800521363106308304678025671974286669376772891017539912237026023769341087291205919539174848957071506658743180580277144822831450343923746248884103403148547507110363733015012125028582588352833915206640930427912967099400462388578907546898081458248838725204288792685526091858455901074385071816854198614004415932328241890863025092645443729724269587464894767295506158996804442146441843434227812512506385443639304007734441080730018680977660808211083336409780876104740419867245770798006664865303906683964374784004038069495322527675281040169889633762549570831190369541476385199177304940394786365880708240660285380793465352158953522209343517818334240225505334184164737151054089880486008419391618677192325636229592289526625121263933010041773208447198016837133529803227937871372983004126367379932490192429517377562743533115698283939929512924115266432810167596721138447403656766966583782647292914750821187708763633949278431747054679171319809356014713621761623811189413242672156971681201578691525785745681836904887974709680143009928326600209409357861400006699278692678900821221509482278158656221286543629582949864431756931657375276615497216083012244470128955127449533349218846065074145730878593793851931424294532006984735182314437460469131119112514076468355057425508963511120461733687418066761365381074109570104066555357124861112425347749485230668085532756591242675137944045185254487935640087798382216108266589537958557040398928488960863102234792135705642988054128049663906355985753481813273769597113578305064053811318209713744127960986644719168110523701843450481685920899986848463683928180010659353952575731515246727279490670277113850914579405697662643835272815606000736681120986688120595579848723890758303393875757022476519507129333901819792133201515706188629333061420566785459981697541892287910986345149012840629888006000893512210711481337489106517440878840218572855312417707818345417034453866671379407896300610268347058791256247248521078935708619976007802929634916427625601618964501570609426326245480726731339616086264516642228178525915096976089257456334504244576548085163414309809650908327251396174734061842936535306154591006784722204434854630511597284378183857168611870951355474664618877028560736848096824725091939152638880684804483846910818032337273002228838501584466018063942168822339676032543509330306605416106322890871974004698745372026414676945320226967421525807867902391250420368748053138954331408612920625129789858258737647559328557353736542222380003555191666763676618363579027040452822569233553627615313202352092247111604513272553814090781563232891565779216453964857665582922894700614471012402176795210701044673010290842787859118574368229991003630236522414978943696197078689503091001341640342606910435827088832352366434926264785829989113736057838564560691342083894610171801941107762394168996143111553547156520092573880839639606109888289802889755877247976396504237971730231241137969376186738078947546862230846073762814171298616028581402642219271917064379679832857950278075565278921747735124992359593068224273319361704075711222931147086986344181028458254790484856650540762186181640992674719131932606220388725448791568154384034478089810747550917749755929780409817669292617254992219816009828045377264825710976647980973475403717404217494198727865435759673684190843226792181090884462249491492296686210619052276496374560545966297784420098334111779480750079996135985926325532653792440198974733851706141217912691251950735665008369589977092128107475114664990947959853182232752517861197709940126929732164042145422246889059337466673912350758359626467250337532244654559133533095207119798360168461716568041000290036317642931456406095604084486546908475236953649266066294286157288814892353039251221193823536813848769610628331348477798165864926325708501043486581817585650255513634475137659956706222527217387502746162241150877861924881840158302837539939045243085719178379929265192381772662254640961223323037288281728486757719876874975782760818269487728992755201955381297395628227585480901522293101378603859386406653866714909645448862590573313222638087885557149154280448569023063583308236696530217966504198257144119160717614781210715351730466655119321968769291471687014214935685072158921540092340658169558795448898343733679191884416655868542156813127815958033992741682995239408637113707332230276691666792075435043095643249933481543019900817281624152108933183254179862443453143456745379027340095643233403856178735838392089425602899287486071035392792222137146137735364468583080524234161198549814336297353829549626680232501344165490885582865689920788798888043620791197174794011546257396993706227345866655619905653313829069390997310235587216270592607596846867623687749658288158989031643868264326705921532314204186535579770809037543811511055556455867477009195956549048627880289895975519199116593767171168019738163287190703562447568708587821499834866035381654720109642531679652400356105201290665768941321100011869529901539681898553618042718810225348203303251231625389060077029721458488117022375998312323981125973604626515178153517997112977699714288801672010565083360064551212199560448182653633751530227151240310329137720503053234884977905056038436717414343280451611770409956344648648506735785041308438363437663908822283310916915691880813109659136121350230002470075573057681739925189893302357765930463793266066974682992136983190751600637925856242812603729584221889889099359013051790679191593121358114761701098702811333118017027558906955653930056875407119778022223396266962212039460587321516722785189627782680340148433263931715724455542894304381289622501285837609975670065164522386155246356409604320970217507205950951144828748259353332977175139395621743780370751518273610932619061758856527457677253123761087557783697568344034912400474122156908537347447724265940610134935196884662308922848877760994015068937161347920085768607934233086469666398289141017077809566519707662294473237829134909074414636562288216036253816364777558455667776706727761287796262878072643387199209878946228580554045489940554976304241366326613554416374299181575226042691033155485158922363473787371374249926268813662387276506645089498788978422222876776501711558685956226140520400360240389605062964133991181759308581363308524148767493892259292804081377948460529004553237818974447662714248571704948939692432954867362101878156912555576401393397232290696035378316985897760357359882735014104179315402177868344872502913547758609151931749812038584651529242340020542634905645347151293704558148103477217712898514823164506972382141029304177381540888171358255794332160673827447243245653455649776295509144806750558869604277723830528874265435577001925032786994608673071771058344943504071950679872025725240538028295785386383239921391624414839784971883772090812575632433905612247806677545740971615259242413105390818139249911676550903285150518602163301432296674224205852785838809926812074069979772712268756301588729665608751817844986123817461661553745476617202581683752793947946112022430537404472233229986326921452964527319566002949455187315432767953947068405353928392090293908613469482246995617420873534265690703928492373857959257907278553428662387073468717253363665828833744395856988233174407713850343467958835932703167509732731102192866697836670351216293581275252276407729000169010629007330516284703474843770074397234078383840120132020277510024397075977305440338631045723069708522257331895630042311943504245562147387470810966959860673027885618899835145729036382493977018743638271599914699092267148641061392847703261687924089205503075629705812670592039573880111709080476915530945440845357144676421912250890909409227228158792138657023367392729422870720793080096988504068386645317255538148060788798824564858011443705881844047090384850732935672004132407993142264289368737240895228887742269534427453497955040742167771212004075914208541637931800181742186135560843185486756892123919353385711736094478376591748783015196202547635616390604952465884222612473701099316659496897728836926268017517587202976378048226196059395359167288799467350384709476777480765474606233664173230936105149763504604658191747674076269166136836814749991876395402044073429828267384558222681364359004903070997670470313125993179826840691467948180375405068418234921647363227242435091287570641559774316477860096736530283077998499811680384459812692887934358287152657034289351503924584796841305544151867600494124756235009351636224855763697542604396013051797024636761794475865263897411274931572411484737382543203910032149874370747467262395230257911653040162501991333906870077914863933091199039118371387820664900906957770567988385057780948341210329046514570235200311113537913476074407750893836944997819367916692842725478006991103115305894541902192395301409608789392461778237097478379356551080298208292203148557203678573411062540736433306841976205645138224136972809229147462907828291968354687471668476166629855796656580083366372725536023873117666264595794827935716087800238174713750409537053023759030348956723191787582498563679118322397466067288522956150733925511296387773282920866809500876384133610724775755580110389963570729140139023197275552695856356761882081648401624419425517317169267638483193184490896537944576478007911170592500137455862934461281266023584909776352586530780186746322180245898143684363195541503071210659960721411734419970688222564039648251125646764533347331834637102461248796375326736514604835680773266354032106745853494793654398378676878863484831545258846835369681094528742966285502345712672571886694146630291929095089206208952030994788002826233533635220561550334958251476189857556909639778207022418627383621666454480261555638554108734702045760140203645661843812704609652984926062989102571867771516563342692430681739613339472075146457139745971983223473125137063626201597089810562446413551545000620421105728408756659140447298384552039731180095407761443694598475849211130904728526543649577641614530285673980359368004061660942752618592795606442034604732228833467087780019834503497019214069131588206077915596161576916999424395031666173809338630981801526802292868183111462489122219763144788964025013805634115242424183527743705351632197944517899461624671632782824929122774011952086129131511589260109696102601697738982522872151833603584350730386400837485928321801097065052292807960901108035875652709106701354437091706180953162029331918911240090452492371073345500419234603956242665347372968096797397730306461838107057882298454595644522114042001372734216336103618839299131051417928764154768320872253476468510553847214364571090696973801635401770704497950853098283598426576352716651358041478675451141936101421090016030104646872420434778154620567162790380505382228255234657358245097587354716807379528452350039553357047414321305902716468341633429027921952731259051313271302145721976158650399737153271813451994615061612119368239582386498186622157440508550007737798017247189119309809068615248918201205118960595560102211248382021375586012699405277381302050558186632910762432623217720246140386023504222491692822152081354487650321512084824832780880286342395291219808243747342683375064787467990392648374871711202233164365096939797510451400725826003629403623054583458713524167508277519868487510763040135904712576065289861399144409820627351013422581335505273012232156332428400116790232167745945212401687285614852601641330775689506091975120538677947866514472414291520303830461732929769771240338231538550313068725071065790297225900560629836848886303100882520136577482989251732175788401411658489004020396916480451476379067282235161284911238392935448576099533107446574075614757309794649941165307096368276350716840746811206206843409638706957302874962135813975443065081552240815241302057920023712146895822682797061957712402230947009846241419765958017588920434303216935403337427159367842632169487435133261871258171693950066000980361615295272991693563210603801229245911008404636215880270775574862785769045222926218901637486831791907434093483391719485531349307692224090855031575704038487053099919960983253028946048137984065052165052528828320963795258803992252533037074228057501161499833620980063231576283195960423134460994965305332681220978305660881389242058242448363560693409089104232548483751425979484961825361197302846333256962586856185822551229277172205798079139596290574665740761696436575386547193683909376082755570192820210532314378426302373165642796118366336445341507934766886677918278309609559562288250038428005201605104422178777884430573889618321384350999622655488292414962288339122252724253643489730865930248853435841370594945447349329302103914370362625274464157870386763784347018594639271552199270443863228329606657354798283528104626641152491264583931508392546578143584038710229375841258303712533612216820768337503465359980334266064994945154103720704203393565913816108964763528196778918050038957305828158306406324892622297033492866952259015967199633397471137431226871250332717301606378490796327406517665605483921548947632233597195759354350248140210886319020537908524134239714409652976089686897413990697418581928180379486991603366261598866169878615256530750359222086643297939614324127251047529635211684586926412854015763050434574651452707070176353188715400316009049951145346542265002225962973473547620751740268172103026421680400089114783745818551376314876936586610724183340352549570527668663231202940236912195711672689909449443718443379845983249295240140773438117258785539126134865032857219862335118899973406436882369059943472151885949738253310775328405668820997084766294527296897694722667124630788076590162714146552406944275674188957395343533129840366111920569618098483301467410780281305602817883919531414750206557005990817372307197732116727400703301141655136138557528919028906842006294115235866144792393003430926612152782884015094651567157155108388035529986473677448577839645498173952899945359353983981983571225766683245935346425971962554763258711511711213489008096467724275983899142793038965953234900246007763762708184665615263011010447301325381278690866717034441407884262627573874024132013214952562503476407872192293750113847206867127378703735124575121462193836087998570735243510507649808262598707567085323609711967721973937755517012377675524624936480235094907165901183514738482640938843310482749375153687860074373552093024664256033437830314299947764081641849161656051445085070271423438238503376717549825022778830349807828375721477746297005225901440738253751205680755724710572439387427404754242134367235892982683091555465381057167458352688558259470015635102828928041219750120890469824376073004862992338495744431375255937687814189753584801166258279863488720863961062824086798639900003968729542212550364455727844338325028278205165075485314228442497232534010217634919884342973901838642416048767360808419081284943156841830007116488073302527302534890832155052155228692686796125545324175440473800215938250801443973472107946380304357027476256073050440212526579494626157553264374742847047180513462708967196865643352270653429000622812287240141074472472907551965050017050208102043477199198481654465961715572531755520481409421199527508607166179817529983765727315832911960853905916006283063250876775066832466521026043208886762663522042622186753018921719890198133220052556838098019020970792966176987510431481798753280336985060245008178154619728467813635312508971170211041225899389378729439377490842481204337026173709244428463784928501465795609675783084091228950979232302578963780797683954920912291441033932612027812746560419362603610037929789170158614235633555187435936269545759799366546239711918655792050161317130363899462282353024002335779405733291553043587941262839344021018493573499818928503811326370442700127564431965228938542714150747255383709797133416753251308142996841574393134291900183810349777300448584415458550416924122573223156308903691851868286125185868648514302652179153032225357592262572255571335129531979905995068278913572357651650685587236689282522579159745882132592969194662375735228502981531265728987619427110360025072395813393442286484591884230649937837200473810721335671985381518872480034459249369007122085844284549677429984657627325443677879520926615299476047596876359139625609559249587514391035368138180445405412868932652948710234539980040119334920039574434381257326801390251089047255966076952451235293151439371413826266707574857725430163031918829599635879790430959785372358520422455042996396109340121899416562908735241161943025186602928696114495341343211080253762395025385267475347494991855609175424295941062724246904768273506378979992129399522130726725010019283220649995449241007923125186379375362970774548510829011033178168016090730012583593405410459770047639504752165681915003567377326028255912800295279124213066965625201734278033388087196111395191573326036307994852621653862941396520942337600931264521672730399567006708595813899440919458191397251406837365127878080751624229090394892083677636701705773118242706129800028433662866149443176566111575939278491009117072357209948994879658962504410945415940175077819777708063291106741667489259797352808857507053313577503513639999186160474816367765527411337473973565007817761413180401568761271865309791838087692014456854951632379245913321731895666228790536606154140088404677223590222443102581349702451847689124272452369099981685865309112818905071041582777823966355189373426201690763621753277334144071148117806902114001444216930044754233987330889230066301271582395628027809246804090060213966055473427968503794239120472580248079505066715991287590064627403291794058696635845122691867574660484339420706651311956813131633249994334188782291597060335013433590754091200812803874032619089729478311772822236147751387136089072200099295281275812146149373527308045663854927875666741693152186406604166468002396975073528430050256082557321964107565154625028169094118032500459606563190291079008258555474611116190462947725851193091702602871328001350139060251546226496984284139854998817839806019287603020071070728399001620016361165884762539241831339847235018250865231188457311014455899175152278916899859459080871993328312884709195966162858002623553479473033501440240494366350582036775951882005808450744221794430689483012000361521291190435846029300893474033507652711568858284233865551190145293254035178464932513791015693659821157686739883952061542443739974459707057613728414467172449951973222787381341741038214274504893453963194006936648721377904146086229651604331649934199333667768816964453614764886127135572029517323403908961263675511268881284411357117125114311700668058562027002327501503280810161575520901899656307286024188691686560151460815192520293104336147142783415118263795389763821260867397376703033575183228503421074044254100312883072325817784674902337634651205410375142650292281596471679530649782787583720208046248607591944183570267817689795844439715524289767507376616505739811556095161368218684157134663383229280751719918730157783305844410551757391620238580375446610380970275980832412338690329063524117180131632182199565959488254541664315572841491758714593961238396668005419878066745565800208069940247306853995464390868083168324130597201407122328737031764301042393472231907435401160318323992169618802430530030389246609147139605331085731637816920281383790787498981445017747888069636045460889312920584378338663139304337462101145439319410206766639764390480602111520904241757564224175855543817754231501670994449590616328520321718223858256666873036880889931498319423395737952663261922305451815551832097700635558164309711743218727660245400424794807064498155807743198745549280529767330505624242158190306222470350745331732142521172455721168093521585387282586194841073600431735481918100330441225362526474967753630436764877699604999963413160810660164793708065330566149336566403216654680913187035277258215840985724522393282952331560625587260243020489402112504278529781669686283269560660679953045824577748805554547577620580723220417485717311155416458437571551308264095596661875499601716417879720301505032587311073784071736004122252954559455921947531092997252101436506196317729061962086002800492788284779035846907344143813823907251558032605172611797301659730302714013514279991469725212774451047543861600523375801815247064179350194258576996454560471169576783692604147593509086481948447842248358826662749801235918529904447762439574705133387606151934048529909706972415429035556983981639690330384228180470954354810029408950180312501475554269718734203615016696613081619762570641429756984851388065186047975488004401390543263938338577978831196232398899287218720014768077303573247405719895168014166345017529493875701232818593349948656298923435149683238017614217186286803465162554030370112152987161864644882120191512544062702884011202700520277865268983495073802005927615302603562106680756923871947070291774320023704039347273769620307444475442037940460121756961245329399625103851920336182336454505885161815916811644043791783497713721224593204466594570588535864789781668373846238800458552557114297039001130143557318006427334348620470345231407280237833587280455824914163648032788133965626067870462088312829208821553767889541109244142183061621812579491208782926548385100416650445611243841257127546883029406317366970830577612053567669285512099446552740960224240376388998899596666142308594483654389571556613882347194576073315559664172884504674249811013358703471657833152655688380503995157518424334618534527574110634426856917150962489616437973038482117586408719962045087252495648997110256848367936861170740173083858666205590575484432683107879429071326053598590466882812530120066524073362878770828335437619017912269503174369653284956428743763529970232072021316841891364959529950365984504044549677696159173318489656507967103629117914190934049794794781536712468588662511065312780556973879149965968910493928339361306138120034873478891036520812083570048148084189576780285224630600953153183999896864567781461821258377090180123911976350192339466239270450832517947583654500066520822140215203145344702064770810688421985327172145575407750658508147911353424090150237814729016819807568254145850486834654702855645810410427631845972123116821380356578106160703303818797668680632346958026460442526565919504496986091181380736307304498924149579642578701578006284697334079828020696553500985658313433882037273263422191918966338134747788477684288550120616732439984260563608501099189271259788833868719809365962522489015181373678652471402344457993784858527522951226972208043445609865226876610326497312157573880582742074733659247697626754214055840711509976585954092133156758689214394470632184736791255037031930028018063654232446257289114899281400484167671746819009656623854782734469191264225978444806830395893062140067897214184408994927037311939676031865274652716203471978437746803494452077508459195337254595011047071233070644339364455670985010199883484244062467610104373785553068639102795408053817291921467679759403853463398130266662915444237981407859361051882718884939219677106332811581045422459115842364506327516184970931337860957164837166549290442643900326399451976023085528589715127889797333341283267811775212299156291852425794677601190603832819941902765030648003886788232867144944096108574761288776404253515593746019061212983378973475744547445722005494450876869925733615038812921339667208021783620322211423744086894788798982851142721127651499525518181235551966417143168540617488632692973188140787238811979624405209225315039842262641526799861697331671249377075339844053193819632183067036809307114254876344297016875370521675548193564970361765571200920788238809919182846289654361261505587026405521060774334245472330897826585843812421760063971713491208328788811468875583053867426348975420102916245493387442590560480689196596142266416584602973658852716507593923397937974373208722400306375404038312335932397146035453533390293386987102088011551613768115313903939689276182329713252634106422695519942815265365155258242331305287252099989308911066158544572095208337682947222040238806061767418851299086237869686823410227213977548608396415755531886380884192365721429931858374060508056178407470011053285812473452747238274356930444394562779952028220930776860904364410173782139432869293570588335262811741567937652684362715402314806195984814820480835692751355771192247718416132912845319602060337062159231241593431351496487622651737883480171290539680052569617230697729972148258214116083033927180050062984737362558222176450810194720795729019607469181249601286850467394069625874588936412348110549865606348006215378563710232151031991299867011501931006260967022234773993826444965085544600632318829255531104755821022116340698159313649180424720747723887447993963711667195039301370060069098044218071377328129007219912445303654323569917570406207359366598965294150167563249836022379316989836786679311766626725361802453758252294614154205455384434052852384804772923996138553875376207550471246973090893899358428231518036917682758347352159153672500355983632414724231968870127493969730664758187527261176395455302436352106778558698696231483861038535016167656841652453786672164618620883618706164213524123571328846882841128503561724483035922327027113526696843681657273587060767631951892625033154967612219194367389659150914699101676971508409356907734583720921810248152381184137474790787824576328315937723126804588805154811428074176815028321920161325531760657635360484609165348998800605769146947391565578690310812672096596454988518808019676756703388816839649224296793309105613884398866982945938636983451366094954210777540182218034954387864482501302434243542460401482664516661343265491027962102655029642810285912213909782173325979206192547365085029940578711654827998972215278972424436091898447221172055350024445478181650198953480095733824415768962514868419266275101732261673440828582195163474953642041193619607468225238177916517936471607359581766701277869674254249325703440072254189708726301777278135359098187033635955440227260817591469496785851069290079826045779805942985688738202606981701632281431631066533160332910934269796951119163930455938393664902029510102531493688185849319480962888636521132511608950014569424331572028618801515874700162627554931183208072373404994865698275003271837501379806192313791259343972476778490063700590971794284086183068626651362765341314399351036408366312508248217376275602590168362610643225705613365404731113106605250496528437374102888206682227650485390184201106084463851413776899848778584023896319006969545369465841859335282255127231012370604658460696404494250235128928608205800823688779608493063127461064393170114065979879077027066524132600561807272992370753661023868409192441343968245025480144608087146315172227903734188119749745961130965027819874675756723748412538051575615311205852906943083342181517557659586630776750506008045259343490595464570919453366299912462387110472254839153216164568435177720456221929490314497236085877422896302658680438978867817912040343582824395435832534448771556830466027862504295086942839161977777374627854647793640213667853587008074228919616376851830057722018777496243926703991707918838326175944204573230589617581173084164998668053942434052077604113342973911227242549779476111869389480477499216265818873737144878580107403024718833520711053717285339944556548459964275154967540198565250426370592870135885892438537133998860884562340538167454825183349819028806009225171708338876672524046135826903531825521808908431352098790244093748516447939219517464839215920382088244565170259376687851725540181413578570518640465758950417299560006012485381211985905176985303548387537234177541501470088168728389678015221951194597426385138593585854776980344347557604838690975619837817282075332815996354999663261544266634636964558794476601363547886542058357682994573442663997631553545886438047747157881470379458618367639169990785630494009609854596857598721263761675037108287521789743832107110087828208064670393552392180138769408159173435918786164008301263081839151222379486853210398193090903064213978473337020558630047238247606428472380947355911634030580009448639664334131011926813539572144592896371433237938061346435705149644271661839399119579451363294674300413885012495726969689727400924012490232565213477752378213988220110459537823054841514449347050895963683311159323671601647019704718069874026732975743124312477650726918170539093345183482104272437691183790909229864476058722670568573375040744969484121163996677297937484992243433793045794678812542525307449262398594256228246526955138787335674468322600491575561864795055404521911784713907555491370685083509447891820385469394632469036687438280003100884047389441246457308470328700908889184075075699045566056557329799797381983867590422777458173283868708073665838579099545662677431075467066945068462566170193484100637570044671693754980308974236256120192679730271992204121149917321686520370841852980592832853750283763418101424952744341093665026711652023023268838056532356613732869676292022782293100436966080941085398864332316168061210562885722775371947820663129645630024588387406699427377414287589355697210984471357267605810689221156667616125261310178355099224078790290109241867096100320136946808273892514825679075910236406607440130173745355716357410139807596295237232136099361621166996344929899269568014247932881896728601226512892085692153335194709832999677176837950761672243500397639955490938368428721369177986409456732113686265381053602524589810479333398574141119676316531478031571870955550148066191082596858890319704670382875598454019549728815680651412940393902173308578343821561115123206054495824581806726611349336272732517867600359232394231893015946256441518611985057414825343497993783763560473835267007189458382006815651503680353464139070955762936241464719587499408076450245962396845919040541705995732695329508251289900783683126889397657892715570101682852382712164253929344809474262004998154225983923404568083614247808377975461906161750588002894044545809077885325601012971552325456187091729525777283127431917980831640305408784676441863162647205041206643140506201449072119824607718788944249849239708649858955816277422860944015540065958578270027207464971458384906619105647580644006459511886915434038118959033534412428579663671717072476757862610999146409706919894632481843558358361076064306373861577466982679655909720714482195806183763265417186451013675782389438824691318794242426439252186913326753579247862724111693738013211516378780442230197363387944935005198234394600566227673625299724540460632899466432698496337337139880072091713049790873222528300426648380912314271844296047469041570595781152954147882101292444682769420554006689541312695479370793266108782566737221684533877699751422869749390129774415915622683331216097870882837080372722108341633638827507226946466488755881584948831883804137839483723704540248175097828639525058373695613419336158258684819252755288704015955843255116430691691406427400075094667214289086437259204940151345687722545659957439607248832554228990399557040462141308778205105117386372800479632703138235446248653446171106098963415761529729443967715325015624427897379816616389849310098044501090086779407535800062608691750089748841324854146130632177752938474399615558308231084806449489779426586613447132129221793127064405543364582592099507723947811597654609130403977451642255878245747616234907180377019125413529152395542919998362216533598897978627706879168765490206248983978517111604644015191502190354493969380625016778358796852389761966975227049770471482388965647441876450725199065080878008365427663328465899688969049012084568489231915969381288623430614662608194607045944167310401805034651920957019445818683747383691339773722865027802180737235810665772077066210296569531958250760073590512308149507973566978728443086921338671518163549769166520671036929474169743016377332748012502038082865706811079801241450547732415565903415122967524045054422234000201734127339553095859375059442173106365427114347481622436708227032259928042825562466210680686654103300549093149744331371488830870030662508191042227411190670432825961667836973888532776539442705078176789644284452376435961864890145573961860482849754748777088013115482932520143833783105969904284272703010832608685266972207941101058224871842385342673572430390021957408846044809477756437573611817209256795324453969810033467428890678972588381185849489462836344397313096099296415413127097401908130479307417426447048337242547019163333206414350071412873307881617040794064686350623404213727523123309203466547735764854965570641800979536801247042393757744335938424877930060324961028400747367084890528951240568125424194077249847932922860053810851783148967284775889094982789830572359366290622841090979941885176058122590785851084447461038970322451004715609198391993736127494291695122841711879539652309897720393388673551395826939912994333415633884979576887745414080103508855823556586940236980690038945726604331631108309225545066661111994938025295485752690825618411253093228333424422390281647317201051257179723931893631870564546504476379533343809955189409887782747817573672407166628187393568687128717861347347319385789154736996936140331787146437528288198792162115578975312058284494148620749187862122650671622437604576481026601313008150365227375725172558881558766442630241147409292035722247783199623706887328667384958831056128334394810351733732165897386947177585502633260051954515179665247636609165131616142494971390022547797004250803370618004189310717434365061748658622547012678841250894884908847366673318627962984648470206740506560574336921185101868444714923747679228710671555088321112778367920236239254727976080867398342367073035314066809438368227351989638456773038185779300141487802636474976775286964311088787076683460115527948615543312974204415402735054283640508629030431569735980002728035418439454988912008849383615617477982665637909036610867130701935524627459043768155287945584292664591445461281593028751292574981438541492923240141948517162036530994825700954657758829672674329072462426907336937704367191977794675919689658749224853066131409866864198712255486842534601239226090573885542434969799920168279825996703990885064354794963503400550954007321992070085855981941311416824532284580082421812556463270386752898787653623868116002723430216724856435451746608310698172981890588478209156184811808848354100886562679664250209757779474361815491963645640034150687346990216572941352212181107976928067009000293951123254209414483819391318184004860627347940795846319198002220911741751814054349457457525889736796908852938206631053668019719581943564485167096800992273527251055333663247621853272808398238554127277984079499086744457041668364187292179348522492815307173306698499059576666638041451281691305119171968192688682173414137955014190592178721122217258573619341612746593776121275971035281296477491272977662589038891019588150688536352900003699948977511262068116686816465214996737307689250388363590389022327200963186831041031195487479665801230664442540261192663675479811354416468486610461014385445935210922911493917506283563942036319975416117616124219827357707462966234459368616692980582954389927696844941895440632718311648780978003235989262541463305923715918305196054196080918042982501325551292457089469287662467338241942240505055383659944812127204260073404238603868054652896952083722708288378226410343938992315057861064413057857621568822139147501679514633566407330441044350867828801548806483718976813311803760801751702701601371468349173298246045447119475500127447146739540721487779449606859843773726020870367989619007276080422986151450216486468164494985738031872053257644264523714454650346685972655422072068241112265567217258453553592550812613398160188363257066916246935188588629512062274881267898392809955945201294981771197663101367130052330445770082811404860247569409088751079915448228813336478710093370324445294482764209747696861100498030934210770280068088614420859708860350758514208684329931936339549712196338609582820492992557967296475782093802146854400598873496078279985244388488306182191777599749959398494209035366726035321868371475410061992836119738000152552999436447715817159534666702358520955843042606685561779565757142781632961069286686162404015463197559120432432851669067309239601580069692999137431865905024754062815962474850865413889990858787674509855423443095004757495008973375568700903873302076140457912460286062945780342753381821369810733970626564056985989504375252297017592884651030428756122269072537178629341431323996265064873132244287001194652132999732423711225676816061809526114701458843561980988060800596986365883462802831352178964845017632277991370732032402817752323665117059328347009912857095132315565856942619935124233122001599327745383805474413717156252766501847243736201227146920209013943395732123698241250727385907010565017192048302698601770078298484168816620127459768718694683277512560852407366048670249407726477299137846168884199261100786397014399214592419318949094685636082079193255642270443432653839058461079202277993527360877460909700762315870898559776433907122911332777477679109855298266349104169989506042657972389820468150975520500153771811895044298056934196245622935254834071184080866081739865775882890953878002970884678450883759396326566840844077570944491239720967155442160511126049520697201561960490212718880234504948562851252069897903122025558337474889920863812322990367558672354968406352880866145859865726156352971763123454196755860078397829592987320815845790378722406233466419296933725307063332940517695412603584058010656451650901861185337412124674200210588994013195608218461767386570597683830152484242135721635253819353602883946738889961369683409734830195311819720100282338089492481047348467876173361326013658760619500627680957357373894558674229569815748741929133744608458383916477002691302084589933235495978407423755490531065508053028766722220199377360534705894931394492515936024591249535439303336008346228282674141233498552053158132777381090835817826564234119861657927694849856175995411048423711274090855259233736880363465655805816869928785918367256498376655190234454767942059688650356880441857191740801304798090952228916808226750267013075970420584751359333218060123136809104086128307985923872259109649668358973962133475227278520445667959431308815977347317521371870828069770537130691275242696002799044682374458939405984179884544619163025685267540140092637560941023089555558811392454215141957219489300848553385342847821277747738127159413043521745821544186195021739513690707147581741747611807274051320275573198670292953577882817988429689492845551701470983410100323119286531157366774425635911421121748128757247077418228409511059574464414338086210889168335819706973101251654265290776266299497990949950910567912877368111191302862648037391016860560778151431479680106478258633877901077059377051326781110528026727421412222842037619612964728250619255821538906792702297731058179184875509145374555707893856907427482025146039307163000074920809907327260386643324764750522518967451408905841812759687209418034094020582211430289816191736880659773982321033081619557927415246636365247993536344426621397772236113307898817778440699868008127841398659617635213823819796794049638957080873816871252095221789524869011922235533445097208763450679614321926931110661963323962795627932024710678109915398983531738613685148719849298999003006258676004636243662910792721141833619807371886002999791773553774506081325811643938436774975840817215847610295679250558588007825601907954641400810505441113937442234627842430040469601692736184104960442967023917619873881938288600963103050384238198085334720150378300151872143221444913233889426497150273636113117553820880408941507729586621565760339258964185350965953177514771961127622614310712160192576117215617097658123497061907904379977895661249812484326916647268259985696852922520896324147300389915738876869515999193887877312781073762643913554659845039153061018759954145786938882997071238273181824777794520569142417736114950240575674196576033327372402419533901473992671757191330204238136948659237023550905378695833125350998817815101568310123611146054918659777455147462770275038654138841729880729253762859304402345093413322145971541913346703011465147625563882890859115781716174960903449378134555919743137313040185177008273103320354709379770232630836780608077471336539291956945606544279026002815456416298720659111825600033903229656189945835690131774908949212711914404932611519959279509345761667435043191923230059769544196554492909146459847781780713144792805013395902139530666197496245392407637377386539894496863453561227683891688027507414015513381006902906630443278005254463784619337000446290030081284462864155832099656252728179696887883701251112988670298929486639282945810021096797295116724308809360138378476627030815532770322339176399114637408035977344765905941279856059365253991707729257136814734028511510817147400272201062718155499880134823813046940416477003764228063865582573778736260959646541270415614226797013926118785063159463575519043477167740908758607979409719015304807697436217058882565546427285721563999471262906625989840787955752485212077842139495234374514665893367274935640056194115422742633555180413999031300803119199609549788775743337997186767315728458589063286290910909078427296405369093196443977575941899762463166032414660633567843034442573726512729736914102090583350198969902813497180125925535403944921677717979927242727408814055107644424072843057294430222497604869342953682490303687312884390892181489471815798230872530247326006183573929321727308804211097379412421455456704842917918425212410781331412243095661177741254137141189297970633462642929466923396333123164753727482108703528575475944139106325607170629219599886450019267592506155325660059450427995624474281596392277079127264184652221728307663345147894721303945217835877111359532069789007388687589306899677813883385057804122162507233163517141287264967629161683824627000702157895721027272031865104457825557480286150998616219022646051541187755192029291410258976610774022038958541047985418329485268848339081466496444298504048210984993343922373502035032413789556236186795147000267726734216330796059893906467248290384124515262878343525512617327695571089900339609109768724504268600920215574627523244950441331317430030135497493663478722053219707348194586944671114213269575666115670202005122782331662736173765692718240689196528643544673227951779990897581619157656210304523798183302753926401549180218974261102824026336963769149862995516707848609798585758473660540336875079171287983690533547886601399917750731784744183146190739053065875799257824744818286981010799085157892142938051331360734014648497855887093621763546750533234721677662492720371143956068942207989228127806849080501438388568565693722471690754493911069603897569681868821910720342962000048735683426000780751656615159374526156225423723322308930101211803228175993016335030733223817664293701418892547951121594398853891213907033528250738929346655970484509933771069782797458307352434919234995700693797137435587989183562318803637966162936231058687691355479939446356527519481829201283093294708700786184676058874245303868596319817655913527718043690135360323317781935694192821623854682884050365807063711011793525317895712916953354544070642979250077759773474194530605940767830614817656224472359300322544658428976369957524053786543134238135155611218532077016040739522707700060415261346485889852148477667435188995771042962719949276239903137622976695395036523297342852194760661607338222337944337926823497769125758888643549444403730205631713998927321030991445732029757657826767994197879226936749441381936032629186771254715366906982670626688669944477854391305189035137854904408233573325370389195614253041597167979941438518696375795032130427344456170611460571170604320970535407329796465019177810202074704179223580568873517456264874783590254743965628534070828281365083843249930854925162799716879354117409874856215100190130450831524104012803640982342417034774770615497021804856013517595516137018320868716491884830512170784589664407024211072378490156872384846982787580059088534317568735174722506657671759532184517174507944795700640393788390597465884805440662378238361490392603138335058515620396789111355554881928469773572909276528226972334789285911916353194885984667942806710394955247952659226084897866114347696850392408829532910525461323403849881066677331196112724271501607448882566854826346482130945974580887166109042817590069608818886233547612066589063563529066246769207055884882244781970848210013136334335298063838815112421171057135234945697124725493944714174064242200141997461341758338633359237938269354245581082860979734295814357286225267971429435412774646270478704612672295890461189439580720517063768617727323781809877835526810766151814821388841978014332888663244983188311022570345926560806921787195312511403094325723056793624121266023839304149283789088391419938929083772615664902327098706786583848110891311603898045983328174915807869815231866142648295165719368005739040591084556897118493501667670255499866836763039461997114778129984414131325398588353873606308595743792102976696052178535113396577101927656779582744285097677119540221322072055488075312572487270602228752407911915945367323763266148354100755279064162330359479066318213341136315554592343442822322852339778612658877582161595366632383046905039794404528534874536691290648027660107765998928728070144799461486425689596898207510344747891727508114176112235552487625208140535038314397418776476534001159259660246837167933700248811003305468978271980052442676796863816238825078797276520011841794774600035073715226468947290117727264336421077023977184044351429532908147257043522615201215903909592063972195406030767297785604666889453557598531213017377989847067168468129988426924344546185729625515966127217908972758502781195146898956523135755944950644664204205940310386734650197439266459560185841545604317783984726773228950873425560531293638113034331171395182099757505442809366836563020109556585473540595398791946592247747427369223744014476399576408900533214341164910641942689139640911384467807291048944953346601675653170102047602635723152656027108266950808041562311784652763293346497192384539817345164411480786309331530197838212558275452443998145760646728178611870028684823237794890750547800882807433997559823581365606659176048169704424244989484192808815648851600869223123008834386761734083758251912261395758507516974257967606759659571674539645770295206276308535192548301269691999633634209966910710244853803798445516089557620183160656032622265613873762596346979943385841451507371949161627428762348140018248621497706794010525502479538576600124930921769996422771402188740733124648342317179951534663398223817007481207550219651026954241527876092006936268929986566264994672228880712725239191253123692514730126662695900530101879081599316073405980338113348390164935676677291708639121468663850857565948566720261048367057161060395887424369478335276971432051281409592141916266135797542346762682074064813470116426149743719862710748268765832061139768102662725845465444435357282838577636288332465303577612693373831545605711145126470954468911700938892049286591138765494018003792688957323269791036608977932068211316262054453237524627160472289291054753147259640149675760293402558722275842587449879249707440644401492403297663759531392248734618827097279268326208854049635403514275434267674772954127759765973873493290508561105054949812404319363244750708075260653971668985458799018557307784360154583255023491863239454985744538141470343188998687447399055700039418344223087153942466655640310618030263240293500676535005070670894852274018435426966763752257222540027291206087819426709170897089038237372225801350918297121018555955056080243598466083384664366156853862494901507285060490868012174218171268087105332567510215426989283186415810427599268800303385444139394358128016357852025963234078093836702956591273726481838459218931169880200742034451901692452463950940485372128872833449677185126969349680868056641432225525635897522807910553522226428129943307011761182108054104706502402643476986985580548716038620229808467812995949082691498925412909694735555944147110942546094033416960421796721041692984316158909961032933154989646682910504217475734784122915670996993790214894465510187920090718932486387129430629951158312138180147753877294477530692674636688984743284114199411994350489209566676091003511189728832867703990590901305898088487987775268554938507159717984149799901116244758806136714589522144952737128857068185426436138741873351052639272245121203413870554348744717201865450828689262150445031810905918765593026905912229720671370189431553817539874007804197763325759224678107892438089661154364760437626895093275295229979824522492846573115705192467871833070657513316082791137832776294137412371729305439820068916931847041121302641728782096860099831205266559202493553202767751068540114614412292298050431497868178173395459754691552178438553293805695474435734860657364844180661800988817551815898323631787575192679330564938885689247729940321587856817668245694913040709862036666030424911436818811916610245420510629933493839379146403796272684214324761530972403929547919768423241296443743603945216896814753280172503234767554385852269361268971074197963814750006158773408457348189653984313701223288321698355638326688874363014197039644851176894147548310830666656745703487941318380378923876422944557226342802319949768573852726550037705531249306586631039065820454089131388229791288484923779358513710320712079938112939652249179944035548120804754375166858051558607719942982119994098130871762504103986363009405312344243682667840285556722397295876816674395037241781325870603410295123255025728367159472908942998530355608923803559560661490886927795948690053486795569416056533489447344389078778736291268547616086108768324565641055821952814390534950499054266372059331454318056853912178434414974456790918719760566826684062582685632956135979687827986805556438917537793990220728342951943972201322699073889811316828409564648948542621328085113533783071054784658831784870347922171921685731896869061962266502624744146733242125795230111390258803759411558540101627014943368659272495308719996270188594203360703888177965039065428447080195197687276582668196448047270954107303949621674771772584016202733376868595210560378811171747344979468866181952133243357124103694366949454566280061920819269233277628273502926845061435466795493046232098074005119998214871891646109863367456207650792859701793904393905297828800943609726961021621562489261850016722453357013060320534641025482434117028990993538354956450913191729249789276668959424831733146844226133741062911222996021623430954749829297919527716129992007004636311353145498314941455477191630260329669741654343010413190097329877266343383918348979500833101776373290208075034576219213113309243168658823909407626471345158427108034494242847923767282146429659858436474460131641151659779200887019683320937521983807623019144343616118135230625295222019473114317798062888467045664533511444834461531369624962615099136372462156102737756447438272426061575707000087249012779444679948753540750588869397586966305418191901713138331969309102649628048255890778842478239981674887052705965605697298073427414403598397751361483381357222308753300153025245749483935299933354867285956447980611459733750820826023575936525853460971043504921599564676342223781694224246567493493164188151766450308858579361116816638554564254146079751155053861417163867965517395980763623270063276326336648307786211073427817772175461859725250297537063106989244106600303302214087677186019583294151879980856293110695002779667552938324491534750941443903935277460920358016077190881470262747651498884812841562237821412344696129721951401151245107030816895909858816710462087070211465723349487143062573142903570853685083290392396050225027470000592450884843298528417583535544808129439903519291208101076524617731190396880434075510558800093742921238867334131999529007854776394499377692245143716468821002852902012761524538469424565517633967971830782017351498340174374699519982539428228060597342293577543370180995180020125977148768606539283913766981677482117427703442398298449899451623264119641063685600026757049982591073452714668951137103366772058985579022949451943431093644301932070671401806918763482939938157937448967739013753368412256075206473666232630870319848863625819950560575664501749621105535503972182933447474140261725412843107522486129516563382910830773480339230607344740845541993508398623382994171587782676639371249975186373725882572860425795297813319027699659640770696330120319310554663860847429288475408869098017219506286828796011022416412010949736519697693699482707785974639650238227852593564646078589346184553082553514990462914166766540528074207775162874214328419438256858095993016135029084807875655750074951172944201980184231072755277060022996082900532199407987334345154511914535117154176058270680920536490409359982104910191811076637686391785119879181954986053524274318336315686187667831749086757726848175814581224107772380362938110961466739636524743121970311597708028500740556815450430193659406517286069632008153106527187709174029436398981398689180847374797189609348826535513200249008677792339295857590208809501483361944667241969858296865394197455168095757953084435758348411953794220530985671026825089822196294284504022186012725305044585463331031300743904185827165542682436428591681605252327206612362434291696134032674935598161843804944757815176236475529462983465803218047263014545211597356225535721260107025567816856699810349817858802201310900230299292216359169690535538532967687849845586933760126202729923632831450417552770068824218237155215498103522388601594716400994495526565334243461587835474628272080314268159365353478044701845981912339102061777277555761951386399382351209992415032820531067250470872670307969097175569844435083172480364428914471611173083259079538218281021005646459891173203476532717538216022815971392988239754033559794131676163463893714498617630003564495920658448927026188537203903523115355918469195264188143336776951970681804407177489818650009629133670255492911598554631112751118905056880485009857130477995410442498844773995919910969903876255034602535945117375441846329163507346868729671647572073097839301881724334768556127290883660153922834095467270900871343657530245511038429648016340692539810535048399210447252070922413844779399534812811600929876342498439830785583441748489390022832926801305866731152177990327704881342335481504089249635586964993463194815482709194060857036292627559727135072665973961133887575229013252998690421887829680280987616342330147901377690332566237615133111199895201507757899164511834322418245512094717182480865106708488999988920842286071373234562598409084464174533853477113976832971390459431889398287633197410085208885818047088275752078087632478498361946353374178871615918130900374757168399228288078375729917719784223341657770396791081231097965911890337869128799433147418328999458663350848535210310104977914188058727960863621994568020297228116083280015188612325011773060960433428738240670039300455611692997319787616586186909467889505423876826755571316148454332511561284899381681992108757473713906864163547120242172305561116490711843846160948001452321442475134238349344862349281294630339505453748564601874540541863908533327177054466124517421477804421601925267626427075861354080604453357690586102632116592093937940312435802635991076317804938885207773440782346898764324897820198527603803162821912381623803771458181438643078033754217255195142404347725561680705284814539757700010884860129555299215976100927776895035618646052244501076941539351758425079579327404895425972373992845404071903767075629239713138908488014714371022403379169552558602317907499603871656668928843058872180353856287550146670129131592720713378011192887452647398731074515490544343662392935857002030121768146118235793286234883712050616864288004389945224140080578507777433902395067487480695740423784478443942691020172651794562858519255050543524443722861148775752399369845513464125367707157534357661291465138639937422764519993459739238580729085958678019834475141362793747478644407417772619119115793790548278402039452338670767562924034859249746153982263120971393604620857717109959003077347552980420783826833595102376754210275906635083230013863198919265250788540695437055595090794138221852646133976014114749066598590458529279046646073297514132115947670300122996660462234346999852749756940272874399202603437498637973959233255420349620333978741199503470506662258920380607918045996492722215257024540432337193091589677539189651509932991504636592858466800357849385513912003244679527838223625776416310620611013056018303961281895382397528400551181810967148012783318893944668451998078849617019333859299558211635836323285509340486601031529249249602894067759281794649999226249841443566719463470211323543784448828753083960245727276205209349584879264501547833053816063006944681574743490646170563896200081516600069083364194838506263691020666112986538978728356022244463142999818609618746715713871121245985165454841888163569424895641759555706965634156427268349484834758068473097699138311249683519083529139118629852152900096090975192766295657007665778010912170648122764413091558209606721465694520959405914764974385587519043994396327914031306097254944764110560329908025743967135698266758386144582205742574463936169509910509249302343429890553915307749550450902533072154632700131079492371192055139617051471062645306737654501237675366738052235956829711957715090499900201967625390410332421074249982702357843682852201922808512149542805186232673086267468548176733666742083488252660940922671118912045050277447430365401484593992315106881343866514592424018552635495077974000330145533021987175715503954635910050001687347160493819272101475715809646585565307982877035433974333641146462340462603574758273833858577990758943447203014693589250449834354125281325883761468791140997952385382943608134454400227603839943780431192299483853787562817180914651850333664559212856507281330228074176244136770765540277368600916778111131312147726107554884641470272255221316500766095661332313984345749345456171178103371540810592755874090882181714417127688805132419142767308050743578234277466456801515290805295223674943186688462446794063044331496931521080524687476573021716980568035515645512192205226670470304122147570185595473006608039358135291661493622695115633303812389615971042860874268363254523253793586030057931389096140524341157751148763263896813705359077041954047230605575318812496890574626627114337306851319610084121924746408454148517393416006217634515632282272285668062266876201351942156286066926107375249210328553405389395412492982152918657343648284522313413105089389650837658760921919040661333522826804553597092182247883803436849944914148129818998223286197372502417809009386926771875604688651502202697095032189703572795066931354018786243524204609755318861876561248942233862595666731711819981157169760076346650345968923325283899915914128213664055369040320021476493474851282250286999223467418989816744065352311596254181234700428259247475708754192930926775319785355952525151910893370061528887051791011814182336973527154220647092153636660268629657478985951459400603590219882606233454349535277630580584942106269588714511033694753506636118931332908803746967268741110662125834814594150052894268537410152184098446614588950212962289560915218788142490861535177236550324915154672729480369038705434934154610760625778502981401147555822825196553953916795645573154230959927121166802844022004615644807228115157706174115659309260166604894223879519173753016230501398823634751835781684981870562884718086902358423264070835594526386089121275331242440247648853299958461142602565590957735255386864723048622525663529900026668505911616130094843156487419411416804972397235857692841498620245750784561507975542079343165377650574720607223484467309330222281079657070810098159739862126808057123068826205962287052671812786099703441496139452821819345242480816157694576769777687281479368691016886909560093580439557095572630844701125584060075945141275943484234834546220167618129621629750418809789969104927956951537515635985561190132992774077667799351998761373746703460960728302798083564110590664819258044097888211065701280774097802945657019950448632546507692887505831814276483240338650583247278874928218580106592250291069944955718120957416876128613786853865188910226315510395033115276233282736804596216302021945754751771412970933333199243373398891836743932114560958883426906906800037325099653604915661352926715289313978989161090273117370424656292232935773319972759953564717633085387668600606772322264399197300663518629055521958823203113709696646553117315202631387854562348039949476611890092892155693623199485869765540456722821056628019802819088226070279511346956754157572415772845179955015337415582817624456572904544764612190067851672466404120339301415782018056856311338989715422734355443791263629081736904306293075118572988332913762376937312653585511387583152595873824281094780751768694800578042129336842174126114528805835304878299058970403192047929287381419052553748747578982057796757869736860008969948170476262047550867593768223505882734102563486038292990659311892400467536019763064127705994779705053509128521099271381114805232004083955667152439216033144874555843480437700505519032033517485086249340638110366874939644716162788414099270054622941248981375423882726535985951990071446417105306246968225493280391734295418545990611829020768818954723039726261480654395932551298052328393223634083078322790383293853786739603797737000709702106894607999224621982607435485866915926628017592161141178460049408532337757129137720748687873492936716670618428477525077731167018625075794895441431395050590086970568179841432907044995444904170064166955020229130716393912094526732532758789499686749054286623718877144277140461248991544126037102431928783881244414976147452580397673629354798711226168945819911564133653155602255505030550395879098933049949869025316397920697581039290746936437760608468805896147463431707409796779655526875954821977266341343202823282959692536929977863590558199141729278314681476416149716105319409461990703597775327256490886160843984040908864360285022987033440940561977601581439471782490435314169031359619419366768323847497562429408013118379414821551953635263443685735013200728907698948695192522716084884979613106898622968619715495441312913937981743733719813854325246341512261894343590028801727115787712090981027981266916718599594871509579419333312418615483783649172898547686419609981227419539670980521077828296941583789525470504380416285828911482972186393713637650379190624335077407753140481448539109809040300475739722781474439807976874842625138249574160123058162444269772673376610996403281129357937752353945510089538915925036652501097659410251468050327160123887193617499580102221890133016402337318278050595434452212964467657271214677448063585904029708134634380063278848964202362126032654485839656146096359065492832810172953556041423919357809221790506243374427988417907673870320067997754293226117907280361310280327000268514362145772850562729587109659938717227014725572977278530775359115930060469070923308776813258814417921008398118211538995844709916100658303993252122693394222849824079582054616632226139559298647969150520895231225385064955409031138370891868473240560240570667364092088971515926800816812544621655537866614523283019503254944657119063119381656263511937620459527581519475843351771159318536541735846372741911951600753324691193822690493505152172785314464620079439491832495776405583512979560363884889806570382727559686914181511669740286544520710341346178033510511395330158757206597501462395134282751865745818046973643439303199191560116837481818102199775953903053503285948434729968812554735542455180716244801191844975502371019240404441328123112118499182913651880131502185073023019890114689824302941413052982458520697112767857913157391606636622233829277431707223082542921358035690043719997390586338257076154107602452147992851149197551091892382067980136626576234505375789099401234690111619740335034471441180261790423257623795283440640035120635823383892183735080083103921983014618200082490833322701912820319781621574809278213847787861767794863609812236283532867517718090361567139158016125819480759411862236708441541876970301061252660296277847967417427535761744520227038999481049142894933726481513502279360516387179086745218187026093733591384163514475764341196053802110322750620037086433645183640659568304288987725644842607965352451500753776570872221070546923709311812597047891406510568768963911668286668433690582785207229164766039876393244579547705435628346282705583608838624073637191206189880657561996952866418530767471153210679944327976924721545022897750263681648494376856937757776891903130287626918835706589497199879125000349007011109882722368247033337702705435142943296421541527902907047990470567409904597854456684567353506170640872788344597190415663734792863448692500159782751662126334062172441728455643989375400618853516610604813022500473988990999569486365824199275666171514618162386293642479025345833522680050207126927493286320378431724869871687813395163109521590970319127284053270427072164963459271144537335424183671043798338227985793728165169894833442550697138538673160461271672326323142023942433854498519016767845863680102969716915835097283664625723046760234890119907384453371361307831828011614969176769722281648117784753774348471004852537683293770933549019383499089583135932007365517155414576085413186422025614523483562936739358588337743823056480007750570011379558123695842967196112929395901357668792799030373109271357465438663186673493616028916060770866894079935112816541963972671251464264327444364456334073848058133495195085344412829530259954734837911373220063120080720077174693931177284724638963262374774189480686395431638470818563956216547286290124091928036676129153726065965823768446030949705979018230546904246207363380673585798028620283768382233843210179141547630864745027165044259213540694291705950548177985591179783016217317724154253206620536156809377494401839025311354376385552766856036757822100131984223194701513695080316777485470078799601388590613240129624334452501280116499631069086458697639407866366364211215916431440644578673329562843009570435135389788512894900105582781808530292171578910826403600844182594797975520999442531288898333238001326745557323296384625417991010611294051293169727445066071243315499689904820585198796301333888689146652023179115159134425550406032615915804538750197101772337698965873541366465192805055640028930560960579113860161425783071042557468674368449395300951628690274365714801648116744105561114549026709284288504658618870361641121342546475803234465717498005746123785905908215868977989747408828899264612541310503919528105812072757719745290952863008689738299025142528011708743166106383602649292270662462979634928552493081667016718143336680902850167040920816570159200640903920466242750607310309965596655729129133934048344212969989818392266879583105387400414983777051267598006972129915609604566604035987197087233807235635286338666261910565871631643836683203901386492002620674970234028323072236699115168545293542922558978608906930461968209867620758910036827498693167008388947497917957013040062383520641122760333748203860331315706361097796614925340804609527515171085892215519231860413799134936241999952865517560766620263743878911573359506926653669803691529696487102519711460759719019262411811070478419231314650743307877285484478571346102866375284693127563083902038750128561747294146372325952642291679935443298677556179149419342053833585101715659151100332074073798409499442921799147635738072931436598639921414578468583835854757133641064212551622230539672759044320192613408064221973833430330452155060719116122981958592162875848494770246228804267527615916234640408215512287626593498477563789542874846633248709305719270668156453699260204419642484231140735346592685442105848617963317447218637536135293322585613535968277149324263776715643523952620359640304819206521848950360496552757112977539258016770508554999511419673662334512559366974662269282233230990512533727361008505070280419923294211060895205825082327728226904026920143123821614898933380792727145447981893786391195894902639586834373155026509628592100240047767915219266822479417376866236382030037099785699849797572590548690953475413280338380488947272816920780343516375369860537065122673124141919437166340257729082181358718099162601665482074833730436733530612774620983334168815326699074520940865121548803976244625361550782354681685789900259749374177712681161599992093740743346731125847654211587369281620889764748787509916100706244915931957505963420784717293472362164262551531925474090385835804227700247575171136091211412110239680353483887698195500768079123196469389470271839926577058584471895746863281611932605448709258885114045199544980506987556674814438027114841479945539752683983082692971836542125820256733088421862985190731952192164272979232062865123190975566347828765837745404331231191574021342909046947079538114561704856875807668099131316926988001219615118892921900928450933331397224643802065314871534497319094820849531528176987182914825407847817265316765879459226753230711417985659177357147409694341296921614002342811107500289074141788772991836415380914389660134009434435468969204630705249768446575202048859181805527899975590113625304223455367809520122808451597900902447966135262408256592282893783946592231400511386339558998118148675773384438142484204932934114223502699677617799517391137788629339385592119794493334340476302615799784827800905764139135390216220628863121519271950784773550662373648116211049667583431040564609045298504726978699628374239356742879986636185256237156343473769235630550600229225155477337287692717005214074084179103735314705776100181098659812122452847321704644593642877066848082675237299438560916288661278970200509034959951998544147900131400335127556509110437921902704085583338861142145986315475804597013085116074543177448576150251397771829427850137882209281157749023344768489477721072875047444214524507629539844867564736611949114551091732676890443381497759453028328641163154914102570670605587655326795278931047147584214548570992798099112975136831820663336683701686176108699704977456474291576693920474487024632276077241429031526423321808358869875675578236086890198837446054479364922170401624670235043729597963738136715272078351800090705382309934074882419593500189014429438107316463539117939906757263914782309980338166810541966122812917768341816060928456855305459608260567313544296726145298783904418588143191603383735577015424127036490610995377061206799386548398864600534345981327573523033027832054426246486363729671912763023239616780398122007260005524447972998693371649538874392632987070620035174919416653581267739474059825211169296806203800072327716047286373832680297582866420081078293286428836400410043400278409405170074799431570888534448335799524708129106357297291050404927824401021541571552899202103472259098269964358268871675854768053120522288895135474540565876244503070526027125756934846727470954188061159095298681100716737129724011752403062977818687884527758601176399367574762013861889487437974390906670744374845065303023033593792425898210922910138163490333582928304285417244667926740529832100855589732654444387189886289286445550315510434627729165413620588262638358048192851871619108134868979659707935310310677275406854817172364416543014656348443089678496986671149725059858694377596374268474552484255373623751721821648196433176143933943868020133339141972588723422531876115386124341725268844266433711427085421171919993031631726942410068726592509015942180925881297109065780438689670211197252022638639862420381002938116712907699635554922259958670149996928295587340471172777098408198706254830717620156456345614133726552400504583958887805740559162915614243733041538979279739944511463440276476970083563004961399287570612020248005512973520336021379752884778575412821652767590189022049081555788063993914234975592755599344211951883500041952957327797682868034765634613766767019354418717836126408775220419497683407114240377674856901182900584594502753275210850517211359432847396400047113837576096903952159178934124385488241224329013359000308569809013202484148462433183273078757583096843242213082135404568830554804411493216263495489186264098991068209606452399269993127753972712897182174087127037344844959808097667827219849760629361031013265604526975044986507826824405067476731548189646215045735627670453519529742741310144598420288295557469646732012100812676793262989679038922246754867965673218421313359894692525423235363528229574774249326501991254013631891057544800722109406332835987791134689859104207497803919866337272574234742878570822019240428237204716831686057950333103328039874871156161985119647545517226458480131796387230629568222342956298675855451996772914988603686861693941063407517763803622543532780248136264106848222439413039469122355897841373656543427439804394519155843454372337872506342884384698642817961112554078038343058265969996852855553382944623558912498940109829616413820637646173959506374006605686637265011409384033005810013109063604766432845205082885516063149116019810804742334339298878835702504709974249143386580144226443408420414429827623264451099717211542948485733452062602463265689119460357022609232133019865951080109927884756524038628628818460963616830328622282958562509545028855677949838496443806411674015421296266928689378678302587046972552219254761009467082180661510904304499764777333969092165243397299559579713066200033057997006835565784813464507763987115235310979157349093394015047970551248044032173611835492612906736558687827120062669336976353184626336453513971419036177634563639824399582527023880659303062069687934371262081320745824490528980929686334030698171313259379769144408724191690548289871521433106090346845548181025521287230863942933087021516373539275274541531490208347865782599296666684190125918015038284871318527382695644863876506230372097168651525208068914656248137468421409806105521688511426898531607896054909493260515951305035197445511228464810937232748787016588293361148770026319431061502812807653600023151080807175353988723524304630308620520126805687963450434807459022919342933285903714393666930808382144680149410107614790782626757520310828438091215150023105448056567940145302963495695792462962291249002494979806907537698249965886003693047406330732566613008184361232440592079022704311947135906056500106695350846614145503897758794614228459969289275414201644644176260636621270085814367013157034397182077228449579091479568270553509489611299751450935093258360320809045987940215766127941426848686489628583521508500479889166384546419049097402223278531453204728281020992553613695032951622873611537095662631259486672599244939067756164551952154976912154957923628876669073580466083724694350214340543773593070396471472123802467499376147679652536440556116006657032409439745715715224309931415585696528282596607991952135012819723239022250148793203977263397414403160054793506149523527070913124829528368162897089542263915171471200288620806340263547320441554576583867983628777610397714509021808803129605132710447541825593844044364829122864410897154895597453591677738404866601922931333519716839909228824462678068865862926235288227796617095855257451427013589206993914416989493570584451802299355075746815806515854582736681550268776155534076391056925510466978989309790571864813854445956422973412403829489660584265541008816974175836897618621146782039012495485453767011117460554048256695992122336876556376818667606506117014662408842994195366568821768876004577651763203258809246273875657169085319661533374356391498306011736793038832343541608392304937735558641408215097058176556953007643331275609867806226745976041674292711126744438512969075175938369644549156529327351831597573156351652491259016619917892712026101172989043189558899543443620359807552414247387266053590524751906839129517162353293570232862363090281364411429325225846273975321659528034613820178819853954848650981053836526585175845038753990857699260820599898837250437980910687467169152338963137110857901452541136373817904095853995382656266696951865513571552024978771869119862149549981413170329622055352680345779387989962784047617311495055469482182619709153996845264143713984239944643088921764962534642273930931885607049917502852834355649686363405059657037528749525002050050860542160545494432351595525433524052610856832145182371294805819013869381745205644679431117007693614452913690354464637705547334567317728989479020162967370373653325765713646196203378426997381185166625122861627573028340229751108748492510673459796452281318017276473909416547839851848066940595027511049415442800102173307169917176938467408355764429164976810194475557078550688236188850700989184017999642913802227395042613668794761810100727890673254509449925553280639426412795690652095275957180730022149347357511873492884000495857994372579316514823919681932559165823582029994937250280857378280839955424920394342104428768274075032999499020847891467556774017931637551677652217532072549190330087698685343090403934328904897183309349099770488150478319946568740175808425190301835209482870930878884008776555792028897490127866590555161689272021940569497638240974541643353366233214557972184897003885568282506396113184456257517698185900325654964902872184517055084712641037488358849429886488134704693514562601606115539004526320928963714345607176772561822533155910764096221111387004895773979421950665306987838763731507530336361787715306938016208364421978386078570244601485552321032455506939969619073396559219451935810209402800929387204721349664301235932869581903414752527176912977217107990229974775127415548092810997718843179779440726833132508722944404829237982323741487637435957338201056572977998313457935694804669588548939777668012558319403236795429401320980259772773222826044781260647906656966304145665279434391586200758091157720508445501235957697878903439668122426746902343925564244171484927379334914208905304096626588415554231095145623298106341491770596712188042201544121329985373502417985710675581980321602665799731637697750847964885179284295111164076889396238628316888921577381752027147617835951079505849576272219010549039660394267781537896636095306924977382021306475097068018191560203116803850108789511979163950481760545139902379837550909629322234254110466469740148119309224638376606382166645903611546629756749553258993466175563725821147779598085482825278414295005503713220338868442399274112701555474498717593783148545425685521301539447807027532302503967200007160343077375032737096708838790779193864134938936772717246854824010873900488329732730469000834134598284404441752052316088144503532800771317700948235382048789171040224187033658113389838173367759482611443522757315951306422974295622300951251676027018697554377133054776817073285131225831636785059092595897441115609444903570081481013701720517280124843562364246996830803511935000504937418782231454494136034114347177403117825780457940187653809334555626979878947093953730063174271440666286999828974877119911990191786251880908850282155239381836584538589417401304190579007687815209888178301410841135810902331874119974297739576146238301339181832001190843866799841371456430491293919957419994591295348599387389374308001750492863722177832248227390879091429481087972357451704179589909369573302674150772134501397368853331577466704484042428010719208122171061167139972330789708823013555437553649397516902576808808459390191177727687051312442818920535729233742766798664300743502598745521789197283879623734445627197380423602614059724285655440810769075452834895585442223229089676895483460364041627058207171710514425415818291815203148222844665581036407291550465119296354413464735462340681328708301989438908471127030404360727613648161237942990243552488479971724802177969847394834242830345338565377637653960943655561481716310190620465946984255597116502875059499370275200422176204336950033251219765621832300412050723678335307066856835539634176617334369823330900814231501718387622590435720114016861705015467115499189726916353862760854113216188272976068299786676321720069233901259735005906703795439571450276856857996888671335389186897697544575463971282951894712556565273797242112862511181581897387836069535696065094856211894077907882690994621117501193905956422738737801562352985613398845159147143709657528601274168543802679662685515058587268013086304288387977968388036942598462908645391914557005814683346733915868595535125636908858566304038651421695974884793490556338999184267482235795328597684559695559369352159244121716163638462455446790815589400741220391383698224660103041796617567228714609361422748003842047590068309605057496857610620379765631222556656839463787266773871234966473563347045334490171259438645282868722435598457639604861532283446631230782434465985457422868128156709826983873607834072630948099847511856808738110976503552490419728068928435194156315449474133366232645660677566505544813209716332645886208084019745507961966237136961828309617200346376336330549360285529677748641198622484348421901071794923120313253082135469064604458096501843051299860931866616330705255802687922631768026057765844368624650487450566696392714645148446584361686699680721433862763964002876546103780628360377803975538640170050173856307878663429571892761587918542897644484257252767943418966271520618573717408992928498004121168522825009417519351094678356903133007308397767909967484873268010605326590984090985961113843298139835680457890030247351117030087583280761269151357220776222870605932199595545051849512506073866666652133465384958442301601868072298609266141402657638775154763318707134932115302662910929892467280552081471154207483559738407070526653035871996530856417959764197128195099158122871764612878465555063060465796659651093824849533478369663768973330204145113375354467603579257496479545986000268197380269123264214358046587430421140527423500763774954357222386136574763675539439706940640598627083181352942643704767671492020504966459820900372444577408708511785744951386163571269062752476820742226819025566498822105416268730123331113331880866435811120931508164099471466998273862364222244031109051833263052811746150312641201291476802134142749593509552112005226122957381592324249535318682552491046364404752104389687330871744658130636346242734368802251802550076371548821006788380902230517750263840907902049334293544725742392271818461484480463597183545188878556901004646592123228504551143007461210660671144316265777062815603869757539131910524722179906172811550750345750489641588857888172797395626184776993672215976872597832797627458026298480070954917748037428497699467491005763255518343425350871777530531539763463583798285192541279403152376045952066202375234807956552611781679229859755394871776407676347549244625063099810408762853671310750111522783811498638764874507586570791406965814741634317402163952525860224822207335992969313005214325123719321781726852210473634705878729247551819281872849819100568782199969751361761589526393199677862948138886573758935104721515577600679912953132318974808445793281619809831585092649431726889693868029694035916027886571578621670612241900552904912094223782548038273579464085035171317538583023770291658316197131945511371531196778827135696226785719997614870137944829936357977384420189025529558185265303628725594151360921880476455369812308191239530955538350366687237139345235109369447953786617182141294340890913454939786581971405509385540716040299159842337999023401308070455620365335776464567989428493854857131101728909591838961325768176445374394865202923728269814448723016145953676382262028851339856011593506618352701812552285863591170505009795102369685323369087512216793649723849354191963718477905360900412359691754420534871681392280417667696783189423607283843853707912969097262866275800282464073375931622003865728889563749608665390683598188113790721603510622999185235655166683775222642437546554307468904172819994299929693494700163507071010950692160676258712059851655922547998179450504081047236769157462554646880003786712717523968243524536883128144555501812482058560272770240652092885266693832630982795898492925679509283330579675646492257824747494439021239533564023462964385084628199363230378797798607024132457048351420247114064550258818864241612926360648674796042399826925418490791513489448962130864774359659398391119782774670163581027518036817522245026966113543935305081801168615778219057562336877144752908400539337279887347199011506285467188029693757083410098609462620628076571095226927862281979197637160412976562031089901713415885375856820281576916905432443052552963442117268689224534501973758422532428766155278981537222534504268914778799478918472474443663575850874670181273068525887299220392619727591373117216082201090235105381265165810241883786656042952828172522792376202976847849847138943449415594575563410795932787907656667511546845448235622378393383367578705693489382948963696090125835900709661638265085140821018473647930928051365551291268802428260186626618601637005731243036043266492989559385695326405120626982775584136743885725849452147477625978398900721654117714032155292783148288038159160377815367506454337520515232387166837502037266399671818766212875376421332982641100668111407223151727967316362115334206900332606912201432422892018010639414273887881949524715252184306691145934677410385594747907751719528401101965959316488234553431984475367267634297533044532654404910118839718075910678508860195706657301225957892419307111541414294650372959211609024096084479445423268111478022793478011728645595952956144148521899951521698911569727563761598809539020682796906491335546648853662412399520591277917348433970941124737156000036438245124709730841789204017721060819335020331462375028584829144409764756242325512973546426388427494592178226243895276117127654257595492655127989099568455425394331011116879883396188113034097953565601173181946531160422797226437552907598477265632817886126465679227647288733472622153185315688101901702823915396389148188513381869499566331024053879776005651611691079014975228026195697385211359234867121238598011216233654246351836971995285289976099938133972525766226232150532236057018312979671050383238907822995909736814202758182067797977072420823110929089279410072640158669383929360198116454787167044389625188257605988332944998130107538965377947447273654924302568233397625717919791311792781181226362700218626508343062480694585122982122350699928262143695919459484649647162922803075366584160916103872456216756253136680461138604041721823468060792300449083526067501213371543146766499896754791657756501747414906164084836990506019748039791556319873248194403685550462324602825192102250614361801885273921882049579442788693422492442582828064389291595811956263644298876172875772621714310904660731783917887564561382151412206739821753700579389373842099634226934724920812018764358752382882153375253144047969216325591787049253861111889351609625534575057845078009389314281488899104230093664945064261047933911203339774495788089183685750510263770354457861699233487194195713091481280260047757357696954229340254247126662018043044663590967141734909312682412218362657508881284013849673700089427433259741145304824659512534275045099019184855697545651119591202148358702901666662975605304368478602611642832881063646736962322555681630553723597027647750594549958738408673845507079780006808462088125275002538730386197496750343932662565223690462713965550384871374388160572211061363884846524677511976741185398096863698418504889073737203231218270862140598000499771575735501411877787253157286801910722674672397625423768329905672758097778165389103176870366599605513682896088255060210651530980921925195698472678563063801120210181449318716019278831699490944500424315559917653742534673548305807338380334861945713421528045114162343615746958702687168466434841011381097356697982221344676676799112940728929445476409295234312486840580012107410356592701683468444231652750575562482738499032318503595107642256921593668100654727206637475737782008982607321427195732069631984719530315495733644483166890117245076949966700254494525846158792669077525527078534410302669949055957949730382488318071123689881268551690808162139793717220748401190359598697209142391545410707657871664160914689206426224565877741122640045518642742276290958798207365768333894940920708988674403560368199719832947159300208329200774546358248850251716655024857569168169148214183877708186431769881556694434463979472584698901446342155207136958727092653875941674417184201249680704324631000344739843607918353440824016566000333483346676915477931507367925101126738291119929616945346001300772371189163631566883880665152460008874241260913166041001794480651652802075713278945407811735964184367075097327770036137087388596053820352435498120130958983941668469254395438370675506029989712770658046096202239394549755071754326729438114332186487080199443766704128350541192977334766275877833016339389654736850614677972106358951771425760115029594928858495893661005820979882328859984137631333244167819589116858613018682236553102457344628875591473868068858014739268692050746578789991064441856592505497696095469780795138232914612051344808009041276940646973044805543197846221028046149883614369346919162626652150217474986854103296571174847054280600796319984870080152601049253786808689519096462436652307304760871526743244455437574909078988145003338346899084716972255637363516320109548555522279158812509984122107139560873780822297979739163473639346556959600224226587174925311764479092656344583818593273065919869705353628377423330923328624117078623877030095657552897643422276564168231350739532669197421501806732602428131606284300704988265248169615832028518246625940702865168685587349977068066557318772471642484274785462454191245902700825819676389538848606446113877093786654184387068240047626186721907257936801507948412054689436839253012272867362461132804367641561308871254584268868211103438937685634581184584527231730965623551006017347829525570919194236844472226296434502861535210481501019176898160828561104540446773655500940972998137527395633480697124809704856560403224020779854212230939253736411901524219423388234341229149959757499962357379385272635506021360682977723613208320403222864803742046993182121786047661034545426786874941804833268431339110249319847450194145757042648097172679515000110282632270722218059783666425461193253507044201968408867435616898961262854296647334799343349427212478070728666401070187480272040081795124037745525146022529331327795507566048093320420161256491836448134178632073016183480870029682955676339073541515718676520156347834595353198329412231172597388180167036071917590702529682539391031838903265672846923729387127246860327513859683230398485660026208997282435299631779997861505098804730011706849633778108087945738902072612115868104946967183345727181180126968243688070469031644409791780416160290428887321755198750465949683122794471423400473262860428546670759619204878626917604459024047882654992827497615055523970551430735923742872251921607612208878306526128480641216822556793832378906792256048795313515140590672934106850160065391447160637662155613774554047176780110818829671534631027163211757370178850649566915665472118852098445411811887494188899716526489911275401791350298539397264769325665833816186479452942851020875857433631764905427690758140785727417540649857764949635387163571692941047374427534715836143721638194813340007908726461596751929600737327935761464491937137782922519292527327497533112668803579247590484533602525141833171996682901050898354554961419736992986731633143200729653269372239574944725514762079355713972429540205777480730140752169143568592619158129704719502605974643197782759786709349869964563729672328039578338498348170765392952422809825910176516914021284339955316208139909826536179630022603585208952787116266689133060645924133067750276569909941065934368447923810460616785630857529970798880428949894642669314578427602695674608162573982456803371943212439543459078112710280503333370045659588166317271985750978810953844500737004592996354733656686182441891696072014660434425972624515039318838440880384396270286841613452238411633955953107826095531200380684494091466970647552556526386481285604864708414196126017922724498391918595229099869962660759875446407743965635959064626942403687878719873006283073898636761347133742642493302033369698087529442224226205228916775171893310480967979128699821506367899488747596282193910306035073955324677539007703519516495411484831834116894104568241760076202805712252466803169452392657476424125002612343019093426015917136451785110259170864916841770184421497764457620166587546520918848216088553241402991972585660461687100828672792303905119132050343446003524376209751468270821843062485674026823215615526370936760178758761362865047445691144175847933351527938575194815831522399647891968821327358435345635701953561422270677201560593244106534768902218855957996401465186395984499629641097673171636339497958561830497868783925291191460402032174095337671996038226340177579220516579722376943220763864025790686683297009026241609398376305342011753816448727294351854301044686094369459663166214946316264112760877877258316322690023849735138611904054404754984842595352437454192030263537364197848595120711905136196475656084322244275238723177900922288979411217269709537552731642954296802547322358705911514622582564547777164199417646363600185780608001274880137826036026349139493093098368589969599364180572080444806447921117373402729573992826663502854069575496920906089445431652762025355593924563899777102265128158615957636368398231304399530274017519455009750830560458674586690419715015631734161726248027631739279225186960071545000560383938055446151221254449612207984169367777494867737026287140369517603625067788100169961966341828181801914025161609700647985205549703475439666386031954132266431666083117805501545138747806979981680412253676556795434306090891477014427042505837318735152365286578828790249771958519564177240016143899385935839097573017622149046787177087506766663493782206875974604173449609231405489960379184866331168892685574494205589580993737606564018414892706154262767285909338025856037380346072629503081523012030604752152535720600173109970868367781572843832255896058159866531324312535400628220003040400171281114217011455010505667894988839403531482992868267902160655511085096744128012162057650029797917196615853969070249698952542196186324952606923984073436445696069695286771062744853605181355463736109948266047629046143133922424431486987569494908753612572931804240539436307561617180507327841153831948833020683142454674920522347013391521696490101171383673934123297991626847962192713448933238027518504882934040057080355431616095229425741116685001839792971893135074301670920894311357303722687676772233077044350329406439725874279017319936361669649665216457001539611190401916107810672127539344472105151731732722794199468110287537989803860433406368535757210141106795182315969559096098290291044327681441785544980189358587361944307604249020732800379001954852653829422702580161998196838321868505489224575472949111635296113740734325212540799080530350741570003657467267813037443805113262433147149444333444259317944267181584969128060454974393826700333931074760059018639240305930166336360337619855551509488173575079475590468103438293748520697955968983237821131991724917526740873393234661984958909632351755789502400378426093722351439234742486740437082054817821711627716366029157398775168574547976310990391612876910877798149223729359442838763803294501778004438219678350981199046925341641277093411261423447963679162956900305643160129437336472619076786034822693482313538171096362600617134091690431121987548063073695049478512986558161055624142891677243234776717624630743858301083459839074892383893914273896228874956940570299231922431284763587889450226218086004861036762328564711686948923768076727819089603131487192032336334195820185839800064290011732864783695956979796550737885921816240342344661763694472426609936199918443020203865862346720834846573524963160986043450921951094550042721091654754809510188500694958470403867337616746151562953963239871345439661783994915722362803133124315260500277385147810900158712879204049408116429816159498687459803589195077471969435543610229105636789079286930733596077300481380209015703979060918977894486485253263726530222808418885730049058741903884137711705631753358466407522123841119177798739193705933182335002944482487797151643343448302370418895952305642278699233991379694854088993186255518435273301801174441280204787598487747735081584122265658687836340187293072177955326668947798992725080877966885102230959156319282054723908785777964742983163549928344655236976927731006395599100352878764969431299176550834412811801138634007958988656729901353230995847618635862227941309706774858790463095642371774850685733552785687136146231308145926027514203747391104074398822812508355046042823081940708699531827781675481382490864401837752826523769984480572641470286972384139673743690556779607526451875194128591670822036815855857859457672172118189264464514912996460774666636534203638556493090733235670643087321307572164743019583779930297548862266724679685796885560472729334856297075805082815582111973419882007966233648888917435039074421937991801191838794535348096683666030625133387022999839231487619540733282377915330233021615127581585588993437641581128581841525670270030983389079174186628896750910192328671331207188588196364829309948677581817220507438654960528107987415889848248896407802326465870890286114114531361144225239852307211274017002177706284199245823186809011172002229031032609179403130677097052555614421350678524558346212621489482801699845191787188247608069011874992789340586088790236001780382271423502629599721587280686611194734015188290765702010761324815649126973720989971511564916464235298740978922898990363574460939533758156410572950269057003754185666614824731958885145790201523233233539315555667321305963763775395721130931686131618265321459486395090233481738640291721493065379282446348679543302623822963720021520586626094079184682682600091921241712051334590020376072915643728979942541043120400046515461991618520805542075712297993832292115226749314154813034684764332248269384312425613506581380477660273733263884720280746536329489038681836938566309657490478944718248612895784256427465013358065593786723961412058057955834202058745451458440466747323745796687716623805741225687735468130299736096227788820382019613276958515671145154505240192156528557504336813104817390708778266842820136947947286925065127325893347622189012276968109698799736857734727638405467863375183667391533380295831305597574800372487376356922191129538770625881103547378898927559354448364184920230477626399328909127831623009114786207782934240401380128500450933349045739302399033308655025672008425478023273807714812689600083051170011409375826829373727843521680367995251143690272408039332785590426810190090464688468898055682192554270185685338838405437209305724877872565747578514611321666205620885656542389909612563847252212201414865016258830478560073499629991916473789251675315059143869789169170238257727147554538812204292498453304222909776899800153682127598354864220551876774609678289107004855281693232032665841375136952620648682209608398966447539876393668413027920301024368621436455936814134402479692355192077064525595595759804204804691604191315960478385345093894158173916777117393093476319339393623587977976744450146530282175638168124722200904528678434665515908762890795575159080631308363926518454362902405476582041398173794703805602964955692594179607947983315015585194442193042510799337265022879301041964734069305140178734799385609764254615898276240821464785889606990058634179911428774929115978516488986782644296200262037825741894208090568750106213635508591864137997449133496463737468380837556667749175458716705855446630574843612296709084657231606852789536693213192677541258599680982445768055516853392960442645806729955647873015823017001070948293591232857935826352025591195215417485811089819621390115087519281944487914010535187836455697579794843025728674903499933514278722455958257329795065871623407986542859488171148614822046887034395172490428487577238063168882050993833401156917562150326536356325461639734190096118339838777536302550992445759179087179184831521166897328976127333806574265010538889432666539928964846063305791774818312276812745681254523512810500143696487931077737583138464263245843743416266260175663278430101353355212460229520250750751333607919816231420239204250597143997901403080730169576214772318762804358368196598981243003946109363683716078155545467411399685859722962063497201171424902800807031666002142465988722900306122621537102462979038413862848902158099874252342830448575807197572218525781169745001408063657184600766781690693843000895331368376118783986060517922977773856359507734806841169345563983741082087022914993426750117807084025091580785245154698362893380634687675750018001042295853307003228699699260624895434287342741582233404560306071205761508724779985639293051911765773369502211033049620487188847053682991320110360352787513567271222573826776887952282795728650151742905476906392318173667695874679711056956209377945963328521542393941835035058973925251421859576268630214756075168505989496322793540649962435925620534805146193185390654588464229277662113523444515046934454521293247597477349156822330377692210869058001417798606977660488382581960428002646520354833599694585740339123446104556762657030825187824895184698424454669646969163334020154004123066978505740102614931796865568679305812359447151630642118825569309643422064684903197568511380054770524920097890807816872528537089636693869006753714106556561842249793554397904992814512631050711772886440222783769502995521329183951007797194108036027542965298836704177527860987638079852558365651747043220864414095808876440965408401480201565201544117212951082899838737673588179861862523058825322360961134079828243957438153998767944649588520628077545721801112013300547236551992786209015968652399980956381092758958558363081070824931963784256892991027181948008318393937208678464511427173897332242494739828193841472044251849703371295764990527637162810131735172759026415586576856759366277003672120591853442757677608693796451422088071180169242435276522011835309228577057832291759472084225102830616793838142222843724730351141657187671370983472535479699986174082773683099942215454053775788807917959428283631992624091168952047014067534484942228307742524138243518270130316147868511310688465384652568910240334507307465663970279695462049325375531511384901618511940036404931207449288149091813911863611621946009020295693825273843242050505673948949591701532288506214019542114465926235854462130788613284129127390894333830535034745458393455544205988213172072288445937929951432374270641287766752244196401430067731270175100526260481340221712844637903371193011626897191934149235040888426509412517850256532077764380464688517517683927011115046552072385684102713360138545752972437390493477891479840083649372652199792619847808286306422105854003837229021580149545961307891352475593009322553293131756310868959170801629444408334549336900767490129107034437211081264969967912156489683818480393378450773766765661412852187911458035114005925044198575321545591059976991018505056352602198937076539155755131773050291232296839623273314956432212848090605420355826715653271502885199149556169655198652853997327749003583787046610131597916018037890126120746509933195890920461168646114799678996319717438443174154364712571966194763224981403927877706836425429659664466334922079623746913116050336121406186287367317001466430334921120722399494644086341983847151762113847135366560410722202640925180742803725218052527288608130016750881810794555700006667536441900738495366154779136373023189215614213171688293887332292905245085052912193527021188353493972022360471788823451176834170274082991967715240889842208585006028451657768171352946025618403311317536911265905705968593614076801749506456828517102457024101438848327442227636682876839136108207810287940103925237476094042985470093585824773083636797888659042074823967744003226598467752657600845621000059225598556965767631314309651406076082182447891150718577867583575234637014850959202537041541862558304703229809681924256124332498997015832482785516710217390448189164025638072780714292374224778343650375640770292709989350909553240743434368523379666109030707077573247216722544238053461094347766679167144401838616154147121513705853634817749075607145070167164015243540753608479527974266982646425327548176545277818588239726232512478648882714895613707896571167017662348848061814550141247335298128346187099013915703421653598617059721496226413043635526943535602721297092724728745073450927041401131972117966337706801988858476556369114581627155146416437183293932320687839104958257054761886536689237410297721247778906429854864991732340078697689304125179790250899664418839634805666307759872493484282798020629531286055064957649727057962874591190932647769734696134455385471503700054447241466883681887492830953784968525067257582317720596023798459527475546235047785932736244854171121833637728282061572121714708621622895066266460160543520012370010996600958839595060312293639646934309513411380870819655035941786226635764902618365716520502920787937392203258424924751422493857921232949122305007616552475073832393346948380311826628115649359419000421238568492619443713908765804856937562817797950760119370995020237746117421968363225190941387095121225990436157981296595447810829206507187857935467779459978386817703893433650113814985760569995492645705030112322089426804889775457344736763864933282964576207556579901206259911819094278778538927326370800651883472916913752741993500024846309582326580281271339095030282773845684388664193753318122274555567897390914248520279712461644328770519182663752820808661687807747308143404283873094315938723506547674998231040333827547367879860382204991387613373716587189956777473033364515682875210605138294982495509297496655350806893415532717324875376400426807347757353564083241016837289887423357357641030625850426578154251856527251260033800106891740229590809648310733385682339205168668323700574454907477776086916596230764880962318373420463072646827290419032313807849652662921323797230292361866766382861790956597978187769470633804321989076551247680775962079667031114124820297990008284852336969666743935188746929521052143692027838337887371742279546721214670980792679577227049625901627035813750439843615742601985091510027413958532298449957402055728703113622859495479518106703865578967952794461352000464390985397656172037990179766026842947399669456264611219023925833085158032878951307937021359132104788529446442832428139106011249108511499232316489611993054592775248718162051877694972185161415354346212315916566730455443540741462270535409850654449036031976281235171617832662710787017314053305307917768719913029316327546893184579464827387173261429760916616636203799833169344431528050721761918871814850890224025212986238309255792471234328330417987309061688809888261914568066639358061390919850376659354950731029534887889203250527833007809638896907518758685530506991408608741796824853525029977252701761799205574059068942501437598744834465633873466754084174319240492809404047540421006104060667849593907451308857031088026089887072354630310605085076819880584286733288566962332481017136511317384450167125850571008879159668631577648080836344461537442231222066896885276714189006174544860073051838266308627886146177297861009740358071733816347385461298110557349809647239703597961266493394508159010920263140899474715094172078990661383068354200984050259867608709532874904285091226772705999663595525054244566247751361076009800144098058697811817084389378741946430086606164803770354763559713150960037989842493176230710588600630534344195400744779189683501077125749513061540468542467662601346456225033641726842225321461339322923492076198287355762864532005818400732172480709646287490034398442824809427882075720876030322658500794323653892965763446645144299265900153339437070717773929766774936468022213424803223861078401810367797888500062349000050712507276249245957025071636655337584469459405279858935541493311523587266729784632546240439984582920728481151067248696565757643666170617039515048535385880245663527309411126966117881988292324696880118498861668056287646822619576908256880048771151775557797874133126782702121833071367674887037112473433161097775675793194096416759193135577567746071342807527533718139130474911507866140755126952636472347691594575102332354570278050767929721603755935955154882849254758216040527510443051089011766000507437894008528896424327717173880683587493608112221346665850481495197142473173885262226944961491352389124434197264615684772590317283925845799858950586729220123809280750078231824799190170435771696809402978286424265985003528090765695758558216302812508416787060968447242055901110747626308230414518205007278044978533318250314036432374268406624428533493678322553094051920749326153016452970108716814772624595141262084602324869256673121830068149200417819209836644157664158416362110521535515867946319991897917960715462198493145278876388486310474294716113364097114008745048994047690585562947100453911578512877607189537957428466540814172322591092822888731502503233416343573155262404831888578239805838004166362713393809194183447741536349707917182388020744957258967354638906776378404954976396433219371297212197994460167505754893215092378739089446829576430321581713266491275594001650766192674380393565106233579099358187031165961750944716882957888715008610498909434703031427738380337679064714608205904986013424082010950521041013709995174824477660466997343975385527733565692024967397507637696305305284756370117637312974707998653432668805481639772819136960860055362277915203858112846253084410095551510536030030025595311747105387413524460813427186121808005970165645789342640757848086327752359516826660486177386805131362226939691868711148362595207165354083731144116355653866829952088385075645661975933050590825816851581250700589642501303217270347778874629427895208115967800538981418926921866194268832971197744172209738132421419590698542055192794931885278267029592274033191779800379245573212827030165868948114273236840713478534637810510783723272320664863617655418681795695509052463284021700595416111728722816222200097446012699732821665114187946200624817965619111774567481706465947804400866698945180027475963810613900692630512623929302669527042645037854406923827860577722721595417218231872490426983053955903314803902013993713696955425787792118909196747427159346430005379939794734714046086042469413101759605992205777591323566189330186081289826793553320682661667257427786877400009548950274934032217661893852275422091884092337573468626840945190724974669485701509129066285605167630324886346675065889248669102155391062293442537900344336404495857927878403230530786625991546965523122495454656419970219622640531702097202877576731943093557356854904628714924847213820180282100901664016370427505782818079179785587507781691025796706009130869450429311198653118149343395293154330395743867443613677662819634613765375712756609720876273994343883700123306114370157059889116966832292880708914087210129592125127352699157108964585430761702905290226469655241478650532954327157216913162007858618545551481336081962690162690227329362794895190990780256756617893973873531073817881530845845750883267824031205250095214421160260000251542532198709727643360691882745704943498871264378855587121054676139700899857568704010732189958673276537816640116291842239161706826983507370096530365016262609958494805614381367523727219062345888737811083227012290356516099443287311402744456136504857005074955059216018038701686168251930302194057234291178823146467084289219257300211571017826017780544947799546443820274598293238972244632911343139818131880154078672182914362078529311404549656624819210998281081678674383510491669588447296173554281143611475350755980344300759694681792616636884755822142335856144925338875314148977663338700548034047374380345138511176821987868996947922891179789479220998594584077540515391665640140926585802669119931058200794700709887458876630979343614543783169095165581606762789573421042035819707860011877050480398060234139745705898040506138567448173566021106253707830820232045019687953101022836744845404027510705169781339874612028815167524692656023540063333876093042615020319050830870496938117997715435974999829584184694757184106545276179240081995598758461530963383549910878179159635474854064448354391567884753612221200774902534098782256760432420213903789800593665900678952868935492864129456894254564579125568813850872261685626723106758726313233363544667109689581720253585485392504286654588093109394466091948814149015191059108712458437762419329464488937551437061536245138052622178912208805705805540368097854301969661676598168080350099611807092310334933975981905205476517020757417726564433464993911465699325761145616099061402413620533973104246924903141827113270670618925684018263203551490971902083078637068294337895254241105764335741591986158994464945039043497214004365225833065750360897180533387620829301684337373488070277331649678108094689266806199993022490449624177898061490856029117124421007803836625000736178526104460050670308204839922491796799917027783127224723652157915855445264088237225556095639294243442775061205821215398125507966566874195869747219568029825724587197508129278437749999339798742087523933767681069839244040648101003847507780323110076348997048680822889109701545024166942717079191973023555732072967144217761853164308069569251900986420520522019884779111292927818309965710425036218154089966137079498288168638883581904670450506409174274289435817664241773811264779302108384508654068585519946288465190795715885806750536983924238007959289653006782036090056462957679559152541750150276257472530197321891370457014137359969213967387858645609974987352179845812202311733962350668801230487791105147242093312184571223406989881517237583395599813532655847555858756891285370232973204343698968188247373106792659176280006267798857058502049634155569932989348780078949437019411482464542050521725184025190085927809762069346458029509171465422549413346069489290791469134224470014653158754574361365190794139099796322075480723137592693414927377089733888861583870193504555424138861983667981701131767265302709450621805258653063388837476245276631222351302836782922997561339405032735167581119005574922448734142869097578226547352412225620634965083907952286868419257073751954863886244011316190732563910047517567085466211903943207651469781692938849746927752472351206638475276501076802393517968308857219491703856441019172305537667078638980149998677983259392709416685567929440109114292645919042501479477973735048771450302771852967258553254571304956068148406584939440528318134304407139952075104892048379780020656361809977055578310465730779642761325086565598722510767480495472257757551421029399262941157495380973446762935860996141000610186445604995635403600523532774072776170895962579304344064611386058524960629165874252229655561417959558849648506556690089281528571693372643821613116357134913911367251348366487589164956595097456176012204402487496602229128499009221243697486204960786986637834944237595330391069180136981174780128859081968263975505766905872744050088114753453736896848734950618160957967290996363498202942269952116372522265398409024290116326676678042930146741911269665233590785522064698537400192495852600922466478745899958082665828524615939145545603881125727589467363003625665850398316159248129307705964587048093410660553523256854454848064482864713222429157305046121980823376563007549183936535336866647831965927437869156088143423625245876607024408906038605129146886050056789309668271106512586183204392818993393513170316934388610377834764822337822478565273366386002343408838986000963030783993063417502569155392459965560906161916619206474768163308964569042725933046029498822720224297630366103124184411109403557511345472032868383395166433718900087881011610215832387506270669348548407597442129090562658221812937810729530502572856938075066130378811102537539723131992167112004658181422235138907791459446177604638082339864356528832955792806216402715242012457381148360970304035782298792440714947416178831572270081228438551070975314450954868687093938173597824182583728507215935849932260471103843622534864228990760581737457189906311060360441039609578230595418247087334428879000181139003441961183608349850183626301261883229412043706590515170244628057492347037055513177168513798549143023446993872181249931905167914225299237424860492787946890717728758591189103391624104250074079668848942459617471699233398471548586185475727365913706074704486322061460888106701116786201623120561816090896760431072540944725328305153114895083846037516226234849976745201004384338979441868230226209989624356844668883039770215869164554999526507390022274842480285866587173046617086222303535279193947023869602287353954227255020555443877074243088804753771819717184408184094187790246339632714720550949347433078908450630871154490017630143965276362103301094534976905615596747144326006413678783315029727462272693478704140678246318889302512914799310804480646988634375909473410938375733036096919029407640412759122668252612920128939597883651527293324074842757938807606730592939859452029091177026629066712003549685296308466141493262259755833633885092858759379911886306718764938830099029977032902827521866801097005696320255262407267817081778292378504783199559967576514013529534603785316187996382543580523759991985532439149736518785258219049802319826096134289688040964492902641898375052491158213722333361093657443127615241073703845661423443290152751906233211157546661023912807730495027692484592238190529703095843107825540293882199066533965560596479138557928293889738198709722692342338957154581984433730477992628140572039279690955752551241771687794421971351727007735592716012839241448766358600672293203742476528586339904825358695217333515928596618835257191194968906201599022726339648929450720804313698099900821150203312538896971070295206541112556121962617224882362846334953099577126753936928396499750629381813707695647911641744103780130025083017623690639932794331688048098265622879647602413330907374152105193495333857309979036114847911419218449661580046782947462352897356993334413522052608418193886938021031070234942488285525334308283537414353549000808684978721100440025295756882084270792908327901868935260660651168084028850495170385359715412588168599326574844466749421395356734327605222054441141774787481168867000492784151590165971622243545234714584561215175656120676145652236430427664472369711659657019522412243039817701153966041213503720432425746398931447515157611093025861385585035302370131406919555285203623707996568194914585396916880400252477349337718801286338136254267820069649439715511550736164261740856837918838269894114374614360616947091615416412430656065225340609898410082363470733261444223981912096638261709905784085917911880915029759236102666137965499411899412510687742004233753625582552771379430805168804432418422086358088530032690629562885702812395991582381885809178879004024376871694092342666373785133339258288583249788737717990323582914987166127239905403252672738616876109376272954037149379998123824038369608562420988650723370736204460147171345930993093661772629665701646583313736816008115577157954691392001670953337527732252348708106160632066766639294881512733107733214669735228729814682883993859037794722073457781321336377773341079572149727598010266008399822793439900725474793985378242671208192693678325769576431766068431162118494142321381901450829346345186927251372364173035351454985920910669329144269490651487555023385422131048516055231377806752883885273871516960669364159873738891830015614228203623797019606076730725425155840198292720335467795557385308192992138916959634073614046752786890697913773985426281221256193112549540888539399314954473788609851323863948697856742546770442163181312525607726174307512543358446975045589817457007043530084359791582038822749498921898159419929109874294149119369497305891333940202753709255395369190618970903161569700228512380439066831714565287757872788123890172684175773806282912672514118213069679166576241836538289629176278885556606148003271126150029896398901647894408603393720401404876474560532605643088114808852240578411772720090739989372357527305779626474947279052772099269762752272008642278937338911878567573009062633089239707584008857216673416517360176094436338154830539443995052299053992244605153544234392087387887312195669399938341380860088759662703024781321013774007877922819160685510632463995018166781864433037794487182835696331035912950839958900195931017862517148491270235628166032066548794891477092839568051166875703460920201306932191010057661134949964975750601472585821047236063421878623822937034684928851440412851608030086217352066570702817105644812647556411906553668158861181540644208475728339562581510811779851127049712273505754317609193019482267451491240984945680311561675254114153330871399384702132241566152972796470348533142469551783515948584978143090231066571397332439393334653673497371744173138909754582427675140694961833304397693365202374199338796134957163282143497593389777338651031756270745925464087309788550040155372497530927901396587544550431322743336377836905227299326840312840551037242757028393171119611994685014570217008743474999020067358741820226484712393881706844804329841753203176980066378484312794961026971160950815156382235199359243485660499755872882565116535638527358790316061467393375389669054115010042320064760407271058793323601712986654229623432839463996209506799575330547908852261648261470274964104554560967448202827462976971290136070852048999845008936662574478418233763905210859787879010238227173878185855435717592979084426641503324897297750446563071843615704895501763637352841930228324443798844747231417587480907435887819404205409346516880668747126957649568788695847406339729727834902473749055917924059968493877426972364709098757605295621628448404046393424326969585619068885176863865093875028313245444107414814904764920600519804258221009932392940205373895647488724378943818166845351842252802100823654597844797986672928684430697258514455805848821800571940222182691106418757499379550355152998511335689468445297966544130444088570878474992952248492489926053812011810092561543891850924841237934948726945197639048930312178303501674707361975455613292027842853372411684457080102336019085547938766674236412009679096172418164340536309372206085285429780368837587394616192018377054409167190145861815028166986241728258536913681941365096730088523938081929992075995463465205246409807012475621779944254675768528303049076815454671613389321958839715930782756409335097554685698611204493011571195431855568533226168667531039721798071818302849541931445641263479963983825880785681285482590822910271391055352556049039782071340307104677431209746551945562355867730751572084710910459049247944693345898185180358606307525711532777850803720663455718392678405501614676878099035911631276735319023747984074226541551053588040228436680639703379876719507398603257624154815259375567365844123557563712092450242457689654862649482848073425404457388302635368495908554818270828688925474925181217293255158112241702483979303019440651203932120755376270433300986831921308631547288120062367055456203200749809833451088495134572633434351090032345244001623611811186040889046436308997482804368659479518337986622086667512275002566078191048381584421480671148689831906466133153828001111186496273870687577237322002688513911259752808270549099432993930369677986097071451361804151866174864339559822286259810931255168398957451671276354769856103115653945560046121682241203133763343112570908002889054679468854589093235675110809554877443921363705638757801219165137486926117587728972895316665746527551236861840131620402573246345287905637461048111189751168982788377262704141971280083407335731263784463745697023887957694529195398396801146066400033741536525129250907940924383324837719724378096363879291014651048890273674755351410361294058674314116204470634963169923809137015944606577315979385014667077696869975316185991028086311830873664645322618334387568464299053625558545290019239925239206365815761076728774665142349110680636874104788604414007369091691519622200786837041220040603259575113677034176942448825475104964075507355007431161164118000955038099551208690526881621564955204555078058235470769226556305099168726869044522738531551839070101855328589529561056116592538556791012913714879229055930379899952864530380192280960367963150885297238045845318356050839107359151112704737535372660067265479445002387792702587190370653025536208224647365675797106710418051414867922319287539128957144656657217277739457453576786371317524612042980732717282758793742137919396264449188540363618601740624654029834495065121364650687000779039714449053504424721916936621890164570337432517528985164873535290517107644136354683837605218867966738524613472786742414793994240537880671827535516807213509402376869369068210657316742431301636924873816439056554754954122662192043079967138119391826342333007911464006376113234264189936716848167191741895193118475907120426409091528094117824773438278185361378697065140186927934848249767360788509404267052921529150415091777250412841852433411500945875304953457522663464798891470683803894474687440108143180521783168089066247640013408481731230619668875603840456630997128933365947404972633364738159402198387364679091212235184590462462333877127359524770896730221615644799233242240540624825873845258104632815234891587806954785690326365745566933097617483950141676927348130265220526422939190777723435217375475547436144979197573319522810134447750651240437789135597307572315243793726565257890447022575677365178320065093388719757949282154249004925447637805067440150081073608502617300281421946686823109381264777014099158077221542380003757737665396648167090313379273054963456530097711707137870728015465100411684788335005243393331997099193531949315780310673040304676372922884618870779629501735260787130009856436302557859100064340909856307621302086861259949971885715895078491378644391519973130830386510359012116059995655153909901667586331240357356475083035076960176085959513451028399278565298693578221246238924080266259326493240201644901045472482708428125214177106520882416370929700093157948056402366116057049506604242780143845007701439817561858104055237434563113010850627641288765428509814334092278278840435252164912805413571299068511069749606170787127600602721362446181515525547579915342664235450482180670143316275731080089404701534062859108411840036434036938840582300325129723472692828693391125824369654824418533228472888556112102232632734501087627664989592850193353965238988903200148684888395264427611184233600460022117986269281904322565552438386026327180284549851054283602564023517428887197558796592936247509838924637848982868395706944116050223427365170328348201769376125029426062988582956984705837286867578865545888734416986544909830475991248841824584717652934453266361005150349131787802188150611430162832389100085983702256617850645895499829275442573376078429930836882309748012146979693031388611097686719684019577436542292231461670123048348216286862454641101071523854673920957987513730638516434721465244479215105662248424594851926582317260240795626620103330267462877839580215113193770281078140113607637221896256346852192782757483751463090851327871971044267177439398453885873916133670398496482282129289916935887764481220240495479114616868059571630912259688478933476368329121265015638764128896855871935693396180558968509880530265308570131930895024173508919969460426551807088304565250428979386340638482368834564705338666708624601324769707525161016803572150778176866484873650307544046485213236050373415000808566448478167439464978217373278984774353760994447553239764619165278666629945256415456964502345034393618534479963900854832309025172440335002578343055680194090137319433587592897333236614784363100026852236654678207711807765523051622878141074445299821041926024155496686932124019589404221069567052154100146575913789470542745287082477104000329800524109585839632643427059981014225209092628330795692082133255579572968515489891232718179106456068619494258057596604286836194508789721328015378027937329888602133475003903126475828714184377584661907048788843109055167202568157105208177980371342182513301889697804819868294634405533260578394146348132452160273603065674062706465886839927495635486018212783653975390222906697732036592858254202103356489944152965810482579078480381797769620700220023299033389717981613115538174567824410389408621125929545608771697381205906790525691654310888560456585171425203691096300936679840769323978114878723942737502620661657932586451766738859524259986152191479245922877930805879032167102019421349429380485378601925953538583538865373149235245302258976638472796953506573034398774765450851282606332392008242294331536700113812211556766058294952279475101435882447339950451462379854759987349267493743644829086337399919411071402415663934156497208012857439912029263160634881010657112497146929527479097591286219408781787080142794980825544782305816984546175920418390136640663806840736277005765469146794406502243103981036346925081439091615131754837058107804898061325811334334322901964380044908608724932948118252342904317568082152411919281870555681790690141189160571715196278299534718911441094234113216372144683541902425018691879260662942324330443144057815631643131962665292356527385887401544511455385710468138320131593408658518997894315507106430822383979468287279162065797035086592906430773839738076158740314867530387103419407125336415211172707515616408538668955602035804700571036065641114413156478218464140348395396533577285602778385091884088773470317172832521489117623660534177866173419894143825128408817575207888609827923557273182543804541846106064357848356144302013087669167689976745897169388051841388045309673107755050404010189279384736727097091339117980877202768462641791222087780889310485110367326797177556967624523733738332345699964849698122254978574254820705816797655912871531755150573474246681591110627277064838030562602349954873344133549356163427148102438313465222221049676226708873347983649627376413355035631713629563093097788998717640463086924417312039115112447764122957641961112998551068641455245929959445314343604688180760475539717689731500456654691702524273936667936555823863681031605005730255703202795529187520946959379522280864929571101799442179605858264415681122016465126259799178942153940392015851983995413316183990028728182852789829044498802335163883783269263030572552649597689120948427288231886959746485508024340343420969094243307303915069624948942620124320315605361790219000890836717175246827173626016606634457120768337792102509315273612110013398167439451791920611377369815545317934508262971794140331785706431093070889272895025371055138269019132943257265860589453845761747628230410868575523976684678603285906026244925581937764405599630199943792465123587701198139720021006562874713831080044769813766670657493712043715984316241837142193272040634268695470557486207061582323947445622700779063837875888778725058645231369182387022335039951752226849283752287835291355454985116286942658030551337117358926923852738094192798257758512859234016116479566367149440435549820452553327098168244198806206736325110701126014939629763217740363658367062838480714624820733152927169347594420626949074666750096561559517608907241578917895731732127820901862814441745888450776776054842591169615930970808411735704638903243299599706580401115211277038528390845544618650172043841233852454302877467723059573546897116889967351475596945325123978129920207078858273966061398218801383485613499970319181260363675824080747839882505967448229604997801000687325628288235763841556917223808512192782305209982894066127546868506509406945089469092599278958828720732348618967797905389755054307627517454112576725197476052826575240629487559296901488620261711278711222769920755153848683342666739492231821398062281614233799843369860006865282996137158439194662866387959274203009758003071395102720693720362501831876982665114484677908769540326021775554629483445723889201086941113172783220494328487390029661034739597710030453277529969898618097010613697249580698209380137278636877725327645160262178871163956211848649123382915035030548614386338733897015559592756533900182007571324979087721581626110931539841937945852256801917276818479750034010147389401151343624577682170483725135931246690921319279486182826306455913725267805463132058070411282397215702762548566844077127660192142157966998800010225879188046868244007577292267720413961473133599024159889781656945307454419402244338672011976264565663326069576078700525200438407412828043400335102191377383806806998011183343901500032501886320553108044578564344115838680898780134456697145276241497062592251706099848204387925667363511472907505140544983894485687531735603562920806307331691904281641622641980019304535241367061128701617308628552313803077879953166583710317137586755048905945801136019631250548308655262903497702540684437098916210172401922354437879594755255510864514407075183094312112571654651581846640905583243833276358352588055051776606478563907154868232850519859337305658421969048668919168337119909963457903761811943328132140457130824391002164024571837357929747322693713017181724184311090085330765264915453617203604722798545490574027555180736134742106852326759988367149151372754780859040352510452511840804044182590834962321788255836797658692828759072202061274418922130104703227295696543510792909640986211970505895871395023797727383100881810849921740919304693071847090007141101297676738728468661402036883330272990092225286398779487593205072322544776267402651952428762659077154466884885399925049991910279748773475034548881717945160235866296543997015578035714752071674973238299532232939233739637656059330066675812234703090398751749299241328520857699356977574016197505103480688169588160319647149904266404259341249454153687401710336596296705752345134891543133124421410707247803237813685075423817618711497315312279579175811209872492241463441686688560738748334584816945676070938371261406348337959403117665265581291453638568604655040757320566671725120901309771453398471732566856276915085163725261414066978021977488509738177891499713857357411193108046440023759611279023917228578467376146173679971176444753841014073928218133854674124019592640797530793158488894453020217231716843245444824620089707467829136871585881822313159149625419077150154835382073369019533660306276593442999929950553309156878551675800120479464153572841938544490185674977077707535681469033246207902144572261411241048312494183255432982502845349143873396029895327692486919472193946169570607947755258374212948867837532901634626849402500166903252369560435807586736913878950433431232202941958837346220632363800998762268011101537505380135191193754524941636613889088684847705610418775794732796045639226819976806616959428626336857991494817489951052667360637278307435487878057205845499550553012736455484446283933157844941901379825104356086490591348276545230491089668278645480347353444996123225939173004337801600857048487649411220163471523755988125559418985086454742594009120399184101452409379208163374210406706424282976652054752495407884132648563941125720116795638726767737967502926363812867901186162778034380567118942096643092718223938517150316307196103064866569842924339686643854558175756158203771914904244876552357446045138375082183487800647149839459473569490302545620943222795494338672274105801040876723347045175978209511738602537063036951488910353154636983073106708043146968110068302617894476360937607494947733490705417593091788059737086383893539653028890248881333188206941131052913325344758931174598912847838307174580919152163172824618849932864982052108126289290658752758843399980409108550142764745817036245517144067858774208093213772631765589790737266296497955934949102706371740416982815110430917272370148797834940170858283162413738964548284759873230144315048184530442622034009808696601109747747124802525844936030382019151284134859705587212598986643847501430450557593221828561830064220064887454429377316437303286708055222075313729689183727123249735849028899022043217751582369647649254039540142344489326112935555780327500495710526222845016943307708677454640144440763348049670340322223934465389613840739105945100978629309205984257281068292174926982383876666284842291949325420178763449512737740899587307312164602769428307409739699458150696188048062736348217503639367656385022250307522742311781738475366476096093416662128524460116279651407583607186961422566700592280032412911882900371326095719002327929056992561262218688376203802168088544904636632989189171386069396231513569933389043002652417009978763777813018338976989409755334974830222560991321437611586893296554327052791418502656980963484718203942009929140733812716631208721467503024174409953034220002465018159043121016621294611272426408806906158250746768257310645819917762232412669037019325094121610822996897441062091206409508866106638358787975701610055116084522753465661765295383335317422009885564825001408375210830295943914974502447759354440822239974925160292470465377157870123138684328835468361606086368617399263508413108804008726825812326837704350352856193884501428151908620114641257322221596676839904369185311008456200554630478578158480891398194238142416174431047594146401303417443439667750515029196661515048641411986638503848099803290824486892891249646405361331920269480942076503048715196411503369902662084123030623708812496505844661925022458873715871952827710199770131380705178056541486223142667341405898990204208537012011665816797067356150798806569253154500620458366194128238098861573790634669039879556622350890705045716365671625631794450956842762793189079535046571619505057730201746001960157986959381404373769520048793315718074376091035538673133874475816591591752529876737758038682405612100168915960869177446261643239190499610012764374582801628484190460964044910704981242921280499976699443083850696324443539601394884796975694994502422080194310352846566940600896533739983604440325452588193726545005715715902769407875254800576371144463256843596163754474371918011863422979981955277811268679514730963093365677674294353775779817834201364612766615230218483820658300298542053285504367188389440335947187702884635073012281123687289106259814347139463835085448435667302289981686813364561364088442138631945635326097023527643604134457513610612065095322729894232479133681645889798481644086121895453630870586982389819685025536721433178605667375097242305706677805424829848002172322280365088626582916148261635015462898622557566823485723002293005837889131066043240582248587142075376639300755458656522805697199138081700915987344493310116727031020850442318994084367129721436913044643767352316593445898517994828734046486788238388612383484740601137394030717658218928826814065148273786073714928401620006662705737738228152186018607739282053684254803333184014025331911612681718895405975096929965120628894450458035345780415536012030745025720548483417035187924793359343729452515390894971455160633553086280897894719665763577347196527820161896614882009546141076296677392724466364312239831086352497447918109656726039951831103557698350255428187677863815531225442026452505677562455092291322627846682291695294668741723390258182242801762017843820267279574468628672452220170200258339918358341401287617192891444049900191075330624443797012119285126131779692399868828244688872296435794544791368643972555255166722276927165288139991926932688867499074924177932451437548221338433633521510327882958422714550724178736021234270452423111718367731950170872269692307023535594392937616733721136997102383083337142831769293752299405013499027711757026398140610307813953082813311817674519862514731182916072997233137027644844320378882147670874424094226401338612501761925252161209940470808400250410315315110995196460307531332393884777655449332860287275256214139208539534674711681273574954567724496720606621994778157420579906894686725245003390972139139260670710410840276969260701998038207364370119512074519916547720959357497942613959341519873827158320969674267154433898418751375572835632439864362043993466864494956266417508527441158907686230621885092289149986406220327121080798974420811285571621723915397646371699093606967342604301386879470345780658264264701183097966684515891640911120433629483096733821436117846364145765226328368429946044229823330463589641309162697318452905777667035463513038216192936892890609846567796638339814034622274237460935955524542017446481948293156917438173880078767057458236553889777457376253416575543558212033908544545149992732564787920022995984520950544330533716223618623952261295428071205932288264883519332615027941933274120265305961085123487296804098434935337497360501963943392298831488984013988750891409556197377334983962821315472608039378986356372763659654031971308323049538782702292005992740217960602393347640368902214645922052319022356098768686008543193789599543733836960290417465435103784858208730086803211192194286573668899693043851249262209254679844018684239571171628088320313431836267055192411861984068393656326504060023072837251026034689588415413141844428253726067926618848443754708647051232026424335559471077110047158414984569216044275010775457181621881887411770623671322820505207736511352012388980872383724290296318434425405576137958588302009669628543669270842178376388258556434673699074597014028444935513675853631359051279184366803549445202452942646333030773994727678394950909579147174368636027827064862128370247805367917235782991766116405633755658755794442956213895624210578725764065891913901700978137278601144174705236987989091645475295965347022966803103256296608291066636323089565465364787756426871262168994586230838367333362426325275877840586538244677831167933423069827627078707340825516480116146224364597172980353780763936682092567951767964831636545076329897783432662011114977460931194463194453150969909449481782816854125565677997053125181137045771238334105982620836960308302641868637183649521845948949250403252549976972620405762064372565730734890003577756641865163443025497674927612489024448488041667386501264136128509645427921169666615245842251401320313943451416806549147600647937311950742099189116753546229557528931539998523242426906095278375162472611441099060838832248905136157649730851852391309130265387555073856306732948894040160709434896745772542127199971095840225196258602660952491380807001135260771556271026868591685863319262382292549014545845859750001820294892985932415645980607718911290918714159336885386392559078609809783734530184015335816713344612534393740689600903116045335643927893337204784355871458077673185696687284464656478802402353085442131404706295228149824284613755515796480365461100170217504747961315411383454153006716822877181891197696054971778293344898180084629897580305322600523556682745739625399249099566764098952579850001859772170930385891034017534105596564254361477217050301400745994361759624497022739795646362321831584056397665446762574337106035204762398052687273443131952598821284291834872035612825156795810725089528429636229613805311545820685265654080075638193233704534203898316493286610965163390876476103738367220180037851476660539058540908844939850960597137877295345575249933254011233492341175069910121983609062661285555209810611177242698703365037535188764686880844047768892256189349667121861349290906326959797866611733697213933008053385582181802339311644175481821865784088292851575308514182575792288314362870529803426946174173554730796661497706013780068821622261831787529265560058797719633145162471569818759490095327765710489326091833464370734383496563414915154259914792345768730338003570577185108855581305862303674090076971922535879368589038232322227404302205427016192314122698641270602467391295816592271567308242005883410254825328910707472904567932808653404586987115312396666950959808251905404312292085505043392861569475500741475525296801667408027974077665177539444948542026599419497091219077754609659234333049126149851287042608837888189847454519912924353545562673499394117423239738852823797946836763052753620301056190899827825730842527900592122744729681635010042720971307780999288066388055859734996642490374364316390691644419590950305123643880684267845840956700802954503470012833393066973597823034304536573496799073120315940947763732764647793545865183604817970406027204053667671357608798964255661798018708940510383513991618080736571085589775326398678146607667838538568295196892453694223715230669219644421580628185441087154477561031368340960107954640247401090235743573310150956155100472148307121311838096489640646302446797805145270345771027682833106646250064054355465613943872751526628743807407050439670711461093930453020047238147014391577810846077254410164840995798784981348808983224532994740445279321496252145364783691822595407202920327187059498596587336140081485719842238103413256105243512937497088817267250154532852230077350871803908878899038059955796234023482695729909389451314523637778918917178120748465039641710914092845240911983474802976498042779617614025060216918815124264216744038827293179732449826804493951534815430832486704726566205949936992877947183405853682975682017923084475814762944373877717690569438478311623526868368490924365492412478640723257446947525413780150870561338254049449807786242245753916643491290197699369635589907352833657723369257152410402597442082170160343050110450491273098103345921839832046409576988242185509581362994054754806496332645747706322104940843895244914142984245840709361471096105668103966819784158895037796231168908257497846901627744392829077092925545170090360369868275349571110153206801193583165006359228692120643197207264221471612742391240832426777788005948694892363220726201229565780022258665640152433879949592499882368455346000161302449986912139172378885909956294565967503288335133043668669066240399130243300864709446181703288955664325213892389007835224277701579926589230375156031469344676038406798042749503722463032494587978731491027210014337517398181577078436677410708690814900756450468835152304589342741806301044568585448849725333796059987081949698676809801408695049294063959787213777459435358797350091298921010991093787292262949692139295848504261662497762164864511847043899075882003093394055838440607038548922662494723458131261321437375916516358929851974917578765032175545223556203547355873918518723448304942753634170626091231489724685602476281042170779045940535894285492556717458232228907257575297293515117571569576602208697207647368526272751606172160938560031991963344283168787999747677506691267159402142863698472458511251280675221709853533199217866424646844881899390823224804809777189092421920728846238973840595749181142929925462699741897364140772412986933572650754495590899575855730217777248851464322249099327479082773294720583376315568362756712374059197237176750449768389805280453486436827975844045267811381088386530491509342563119089309441754813410549775933989957803842347344000532781089589995388887567159659159918775434012581351339650781761933468871846915587376816472021693065687824835526829133030478800978468173897424318319075231416900864284965002268288584141231122602739952847443642151096691658599561709017180985154694389859071117233418396027410853581586026563617636499288891454313111376128666026578574952360733866268774083696698130179231382397540314361516344400158534138656658513309031999418870364086603083385487147037041328943728658741387013095063602789580876115772282168710729877433702170905399021279887633678570539614966459642777054340725520555000306818396927827764553171749312257939541944754652788764948023361882547630257432292878026582781288755167955503319738379735383140280482861884551295328668381789370449766844591746957531694764527064903803288039354701160155838888481883537221314806229538876028788602773781188448258941083101265349422600025748654201287376954342714969343706352946117368329936020349838990223224667494407857133791959785218063500930837854539045134997056584988624446316144291642916855062554499329061221252694568098624937920239285302835834830113407890105041412093193345305534050858781882659648915559694080031663004847290746245185206195606207755787053629486193838475968230577213756534893775623646580353122622942346578293271257186382854276403197533400036856854748247344941835800141501312741924628606339810626674452397430446067494353700588010293286082879811069019960209697426699553457198149330831069965178702198154312569772693506329523197803618922752153157769917504108980010806624501373454550138049576638556248316943173334816688169072211161477794403349667577995054346509421436507392606517883731611415658383785454787848216722657199410740430119545073085525640495241758767696791091572395248418145358079766631190004634592978774938069107372081494635297516980986762862869553501471081303044993439125398048273379869505079860310023525701611627734337644056673297940463630090419682897587422018207213746446576640042372909302886242105640132950339839757627201629678701861997638341874475382174262773232475249771204900985741055709266854598162696302326292713460470384233259713007606359470306256207302034469034257971022939685516828312784145255831864314140184302682655559443625551779967565040791768932675084901387217364247010674149167939394076203991363616924242985936959427004630487423708302787904828494194497544233266255535658364856805625468093096815421396967405414053998545083134865128111859618687874733873241606360804938934651102954583900622267552947793775633253275308168367493676796663082668230391978968952694682439219328858542774832780000130951967077061094661467934887082213249803273405519439746579265886883671284002677505553444063815450364857484762222943143577936614873830644721688835291381425933716929051150097325082702996186372141140985162227505509876380052202897469406720576588265659184736909476855306527559080626119666762554443909286489649135716227435148206726666149638352618090837354710711501093138978869669750078099361990550999017200537430559099407921825635208356334500566192405257122583146952036856690924196492208124144896576977701947342522786066067189360305718735608907584264885177497676040891234174646321945819831274935375164569396089803838336426093470964602342913299892249221332329382937539780454931579028433960477886128315606828689445610118397082874729529028750985969019030525822161818974091890906693237008668486126894146199459966981922252755257436123568192432662285537640854518034398193448792783538017486766620209624175108705238228244560237280326226841540257011405837595851254366599433721562309067848761790667138994391284691634689827349556176154363247863140949391968824632221591433044124025849857226405930149048908231011739956156050996246146380182547309210035525834347191110386958176315018041620574830141037585863540713102497268129963109721942886111146991885126876872538756291008116836510853611387470661983462297927411667201405195602375117465722830535080266312199426216831762202274406655760234704972989995246266498402975109954255253086521491651535007636366525343216965355295514754773274147913387813450714470286590009436245980751786745392403791765868084049701133016355820912513581970974399466389266960899452627452601556764895775579020869012301140816741609641807143426338481988777663431909372206908127876146246968515936108310003758795520167538338708280858185754872475884165766691389196155576857341616032027832645069657520561532679421987927804713803891502060704318532452707339266842078730234611144195585062131903537687432714700593313026955726186840372132888324257942323163502622211814938776740546611374379424603373095545293789833058561417708147016344521088126889679923299777527177553532793983755255603626778423645726801591607991835577534767946622893576187131345441882067447782713459130139947376034012183850669195623597810884108486158825292042393257924700413550264026752556253695506220722661871116429816491645985572393145898129531792569279509367492338264160054069460642385753051538688633746605216135012616939336707979645384032045412478969203462652019213020397977067747709318502095217556547697301460806851119222262996436037991805180178477552447321149921755877745825661053294419795637741497552522522404714350651342914416622211458136762679821353713063340951959764495291204475051171684739746508208286296403770165252847157604876727429110576783800089209965823765656937460911172697028391339968087928260068890735415485055573159675387744845772537287577233862433154222721323697749924057065423409822937998664483905424416838292411571606554106978460922665679110850069815161695783982654596909754027218469148343942089798413247089250794929468349477464860179947793992484496549746611873763881153406017302309705919003850174860402707868202531756131178626901080436155279795891942521031553417859841077799693027129413022098403276342821617432001727960750269084225809252682748700935008233655795457881078545117707607137863052659428724104055689816799963484819483409658250588204385495614269579962756438767730596555437719601468550845126855660807854624780316173738862283731325252365823190398762182857243469582535238438731962682612911574107031459188052745290546654025188634354424944949357252572907429554995239075280390711308954145723866948861964754472442037605715561792168847497791792347064146862710677886451092190067503766587615993917245317886957514166306324338857995232359296489046673350597924015468608403855418594324261564373111517100407687745477195786801546489372393373868927861942559018390299099436928521955519650597454488642392519150704045633903496634538647294803028098347895520950130584445237616175777011386880239845058540108734330989513676005117268194127230347703298923046443817954418622697363141534819331727443397261254490088066966021730981723178507520385712367126713958074540640466352187395145805585501306843045786341984216517646513831042128093922507681226288785891773864210609286983012477356438207408777742443828718719275144614178046919132596445836844300704709940664640577130079075363111808523563590126370248800734853586145257428718885685555746158301144314916221153449985127438649880107390542705975686084598848087197147277498515000290547445712516265634184052578755400956997433236078307527605699595078698722278779789339042685563638644685476991623159046191424651156212193288166686092313498170030740521410849534795762057560813453794280554811437081716805404487674367483096536004355433422155692090223807754927245607517945737207657345426116382646287942383911968917367612714212750738132334760944428143398651865864458273742810054293384449200458919127582837762324441799927468203908560503670189809062571892400263340254329545573157414576180196400048753351879452889682859008167654059728273897394453559621835221276354320935666200852563184374270991197526128653236337912902591306714380696865472605283219735182265147781418568339074921377773411082507039474272247771968741308216943146834786349778165421346486554138889091315286481903952098443675420872985453600889986236595409327978437796330809049968185276046932398664690710138792944002534412810493339250188747590638778549327519401584662048050032940221710393502031943097780321966046440786469674308582037083956448430131259364867684141695800087740081630853432076103301186312102012956063346176126526977210896027406100760094732909407574328130728593198100082399525611151425569926239019497673816428456641097208650366657824041559100635956405416466399557678035519585916754371793387826901106016358199916985998610836243718741452385995449467992830670772379329503711881892559365318453211732615136908614532820288898771446288422373034137902496480668342811599188417679123782321975609493539299956313513015985048932707334218678664205250918608007719119937494078717496715276563124939613460987565285049478897707911243578415260022478634352771795180209638038133985475756105403502162458231009592837744708038089981354096218658011661786443129725763509482254042654427019158773172794094485821890882718341504786744923156567328294568201551803819138707300473003587702914531842026102177593963957914631063365455415974453971150939902586550450763122118093731872087054598761045913720770825170037314400081509636986761465902934485629928387136600314388278862070774491511397213455533052034722642181727107782145604095931383997072404660394440426007350937893973052092114039806932068519622420389022076668398348935069203863178405661350652634863643626293326185340010582082739965624085887270393615411143117675960780096042701374787559962458080579119264026032821632092718831821665413115426593889503176063281671066529946331022734583216012020414237618736018551923303767605639650391918496650275807106179709845338945919452759533998115817302373692761687575198464060408713623228048753276024036883168345648057995864205236382421954530903553333645476015223474426784310522789023571002959464351415098162257281026010102327427934934641503596957201359279093727402621066121212400531125445853093827338172847425965157519533404512023465658751054268722146589451513171279159132705219554076626293856426969241832325792884733150410941310682782197715253867960745978511255775325069057406315390161480716056624563014853973457750186105078419348976833110548345884316144196537845158146672093745141060348320953634268656170826650564391281916721704044625290675462535402066349261865884181723831322608375755657766313777711738110592101455701693199222944217261602436598743288306851116999766132900100879399230363326508537443236299244532516945703893729691723997216345132302770980527720242757091372416734403027669227180877319720082904072842747136143663583518111303679607431725583275673842126073999198528295161360864092786273603115446401781233596666468263101273026654722376608004649345441888785910145542313841317125546257605336106520654597938146995315212055807266356689594696141672889009857935340729434360260831284209779291467378960298653868921549297489235774363251670584871589468045349609789309946841370345110648595465573264382431061895619567864066219219426680474130914395171482124748237915337611887110333410552481997185633630363916022354659114052999091469263930065955914539264986446019341293825191772731171643723647871294566539131233228361783030031018272530491445585828380564048214268372355883950845417790327862659012096060557751723177491098361040110329138454036013089962269238119705389955279261288356505356008294648642098889244600881482229298868172932742455256966182698101753579473983980646255748163398045568550129972874461178399841409696252970023573991321585116162893949237726398966227569213929521732421590026671801015263386900241075296064936457572790592308363833960232242510179772133100555081170620132439057321415142708918701727493656018172302734592868611282013853679778313674732469347182940731553452449697027805810525582055979094420786948008789577602001934864095473424563513096795543322359251751662764381407732093901817779482193071996764368739261378413979691988755103526128959292084173630992888708029217308492686810327889067550322845037475461606797934837806500711793250074921511186081904102518494678608153328725816121228143419661080389783300117398568236473167670944593756397543455200663075179084758903364783613793095433568725872518379944765045993688354550816380355052040638562141889001759927556735987532734704132236806541400354452451763124494881703897989491395052300331822609238230124255824870663804307465112038906602532415357067391167852959499676312555419400169607733326811867131129777689448159119346819900562147948927831826972635950425597655771477695552309263828733361398943007906545494605297565857908233609274145749562276321184914124799710057930308796303384536878129734415668013588789161677435933345412868130391250840977751751080559730667184880282603382942859523707216603399002371056870748825476701400500162254319919754470040725254432900906612831119344206507348890783900931536674809078599489655652375222274272273343348175655548751189234299412431388818480368792139362723715411228887227378971485958667036160675640797487573679123438305384358696942673698057447107016903084080430685697322493530609470235130193423927838241022132643654455585375501050897257236031405028052509799320016978495258753219086778500859779297734358822530056741148580467682001163259886980306439043102844927741253279533296466204434903204547221799095428181589281854237977881615974823520231888006221473556685957208879686983647155399133268410120267438137872859460043970412144767851803156302192203868347441725488553875630227271645578921432745219262492868469702305978496939275883503813959889446191238669494066432652376446372239713411633187216605924101831028723864692734332200410838225803628335855487163084271935623861235328685466693756891642104752468675021841334347957784828819691087153109040617704228946861690554016424644898774333523293068039990103752469227604231337715659071317267019746416772694968976203206653802407546675440224174547912184479418132871874377521126352857530183444311980447441953146068928628583886232823836485353628293664243824583175217781792519761940127987209082478221721367013962008836235400970544030835047045799755730156512868944604719474257162312864444425409257606344883415655011244774679464559621267887765954986978261513785340128172346156759334176508526592091288841929963571933999369423951819435538328521917912588279869411111879468174992524669160416837269591156770038959039808678615886673438085121541858741310091985520290920077667155988669508650893567905398635918077182314695471873831176789115051124685038083553200667222704935606388371930641722345516643669239386284051438496627877731557047170891943629765860014704845751756667128238924138913431546377748200672784522711515485418073882297043320639295040506105564117220184456764454791614365891625022912126821916899502142479000415087336754593867350139066357802052692755048124479305386715636871267137229741481254491974489452315332439487866631771267752060452754644628058194285014373756737020531625707365642418073524133239212285151414718458030370945116642101049117766342858678980390078027520369967560439556074431648810239495818167629824682302160180638619381528288320024351464842971363276649630012179948457147409093267884109727088397066363940485637442216503540649231777361398311410437441323906788066536075522673034615570943217369468998637131645563932976252550219629882319256058505027315929523501187276855207921429776422260129179916060656133966262860188034841727289545676472350932841898033328498064746245037429650209725984182924749997020315917479090809604927020068816356868961819054334030035686778024463019405729180935086948494695261101429915940900156607818905153937597027089694328703461075496784097056546195112981042300643608752953430414930633187907414038983669258035068936474197253382466148358902020526926121446356040201454871466012202429910605883737868558899258293850545313326300006474071862206499807869666290778650456744278330641652292701119394937713518189929943616940812939223507728868573351937361198301412707437754080801073038407091921420696681450630075800987704548417801295131232604021186949991473424833630150593578170430171324071907989726056168565416816176828587703772697053647138652755689767783516290039158230373736087977796095087387250194524803664594362321029463068033878630403999562501351055699947077556773282266164296761533159012871213615834747352291654507405006926115539716494490100529554640073239560690324688401050324510692333287394676246594063373497657575921832261618658638572204855494344344494397088519803206571100992448616868051481005854512180108208510974215847925836963383038717198460470572169527822507052264269064624311712977035528256998940383023606752210959886757609120644562938470482268159947155658978821970829226932309787217045962104041679467039677164488227676827625644264839880827213277874580645934051154912049451118000589711900039735851761320356183634266089340137459869446388195959666018873370371651217325880022469342724244363113871679759666550147342918381484100280534911023662630454131906573025969426037235723284698609525933069981376420187866475567131501665743933216060616312487830267606871709625810079554629927043713562820601076873669168964978999900807266955743296592638332862488557447100404432976962245212036625730548275306469994045031349287172380096866241669540647184243569699627260278714063667944881671692465027894481693322611672898663574791219330084107636159420097070591146562862112357797025557011983574006916050965744526973765853070975004141263012901060821402878138280536197675121061425037821976602461536589904142539726291414687764307405792681605658999529760198431791668183560019582846284370198587919115620222017572305697204385222882889860619687894110004362746881462871605071598437523445286521317302999938851479383925094119916797499034736036263978290450771099330830512142625913089633134004674483431682531998464151705795884577551128602370809502552911997318604980956148970304225251327188658889480249692462308879586840927648192819229818713993085674225724696741737629833080101431978256259671960791393237368895228811290093404783988450375218431616279742404238308652140062948259481912573350833999767494821113972532771660959203605648096471452074988980535438127552122077582506082154899477800680420825953270297098957834406720644392035804094371242846875823187382362978428725597358776667204872006267472752045310618807366121920769564173593629904256364515503420373457799005384226893864810286667130480920692317049080542498618167577514766406696363868417548303958875571322789530354982262757373934526551176440576123479015566697075516974720046672707596817248719382385634392782927175504921019758183869711724639746703935088605627229643407327510969708752704608108610630707836691641413099657244150793834685495349243128232823505610862772587954292619130531654128325594399798201507420210480976334985496499210885620948465880635408701347375890959001785521972551437193045579606304983151591575363130819786520738701379015162941777961012104539902024079303873623309575124827779886383068534705415618867320739713963130288302344347535636628343942047989850152098529852584270375728696279179847302665607602004226849830896461788488037740897821336714017368598933682836856159728819245300535295182614890531842902995809772024534216111045193472414397575057970813368766900776390874827967557705009256505946088821598390733099390373500234987054922423351058757393028561718625645527046506441687840769569199769019421793192969075656271213108892474641272512393815292472143828087861093819285338341221050236227941495503529251544682078235288617943796711085858971712971698824478798199684032410538203886537410474380119018224194847249037062219152567057829815726847786104333076935401397951388188406760615960335368864042340525270220653622168904469520717814277776251794376980257131139697651367198477984932094297798832362264840673941436564047682143229116929091803123650515713016004673474432189697018718574879145834700637602770507990415487020628184995121454259016454616469461880447777011297631734587567579456016734979875959891137110774534247496256513642737333967477594673729423092556987267429236696404555256940384507989309362328079584931761988225308179614489346403985696627049259090068627012517723030830948905372840111108926204885491904824990124950305555172779549549050017624972224371261970320896846791718774206545049671912360274552573477706934693845837479891895911215587640868337520615147948263104183280186944044218171058575231670607545201966000688372559947090995419269920253727668728173856620399345304834055221512931665175358931466676380890390492469841742518890732653254633930305492664371778533713248949720651468711118440493644661386812658673348755213731886439471498037589840424462007610000494926233056718826560432442231923081638214007449571676316163584729880940235809526638346644143781022306181892078635544973854789809464796247615913108415624578639445938120316017909460905248147821412423863103529654541976028318169838436888635385372828388237426733897986976823130028382584184058201993677902688863455469464933946591697545926586821639229228381276286854627471053497905093898394084338892157620246715758040317977209790775156306118359916624483008534938654936683417144874983057081389240142891169197748769383448928394358200379340576036240376129411553503865278875091957472037400247851518780162328766641265786456865462769715739528781958472557531301770775898124622339652800734299577379733514352051453275640582781137678511989701496113917278886409516466149165168460695700312551719178673718598574941844026397863031654324426438175190177672542696352988405839055107937531886245597206608640388328332526405186232367032790534152421851381250840019915001931746764122467341716954900896474543499135772730254330316119782302673975477691276256867037681239175598974311983812939140452672229137557716352627219998309158363696785463045397402244477866749476002180268731504875253237165492563592328226256196827164190707152133633037384255175101489859781547782134577240487410407376588610652547331352749713967513883520718194868956671455273738239881537613540864538388659311969026303737706476860365632506970374368902730806336500136424992923109757233809084835427465461908297108575699454208356329828740227683548046809377120414552415897535166022914499329439419819881827649938833131376866955029389332061667400914737030406461760855242914011547547613591580799817817862519494749249158539936829066358540745640012533341503015149972148875195412608764307531426326413055220933996863542161151947009115715133568738187941109851006428421011826027325910756001773971314277223685164263244016186340124731352724068382255524864298446444652014559095658600006557799384388800519537109316018205010006409349209711685548908189180339033107135116817679136645674602645418657875218906782140609486872598487091723973462808452373539671158541834311858749097009034250093964436599850672165085672594896746110008263905265937613924681063232649912859333081185223138622705975778026596835112018668338325290533005659210007415622069442178880680466503066683805712651819862681465502619642998692744149185543285262918740699661686758500225219639507896705162070146643933050168893113751371825070498054993588103124605233248122298184757804018101202143843119199303643282962436207781040706333839725675838128527366194477406126339001729988876963876232742959413329388010119995320777705671029515686999278109883394946795169557275945491391628824069502886254822459702483137190591628386825631028534747801507399976504521257807472436739455978126941935521396157392046469774469405267005953112632941834807705293138456060249853174549289882742408244452852963076207822596833309188590511145379919172655403788563359705263745805788895659944512016775446350151926255168250450359819090969403747640695462527600801733328047400947135658928186437622965701645230137476715309570766242775837603849253921586512168473042462773474497130000013789005182497141021933810208936208464020620242230341121819620528993643017394657556084944424478258002471518150236715360539105541252634443609944122112331746582850514982663627093471448895790174014524496011306493029241577040782737416259550009447867586751299666316557033818948344287411787341035676064370786346971234020556809582330384363773119863116535654349801044060118883206130320017242562621754788416271777577538101439880972729461830658450497773072234333921164476188126333035943160070957686606965987855258763826936611891958899334035870694487801543920298809148359092756102300262025721399812489519513957048790550749519840256689098407497160031784545448843016126691348160693073282961997950466865993673515199436825825474820456299722603541557748330634570300437405300545377440685925313289217910063870620018212043066827320561046618068003738099003127460422679474183694443949370779692574795524904989543375861575369052256061870230754544553593049120984085371918615985808348902605356742216384374864866465965315728219479615948926618163405009175172365268887313335758873385266784474518220371718762287488584710437705244715483487495533502727383298295720531750627136994268706180794038431296745762524367425518071465916220704488919309374943435229640872488433458501205628566256609464449734378152338726302579389000338786692832781122044495713007972354887426665435979689832327978132183051962137116223237130915889145190602147526455110656543940665614036821758257027390880398346416498830186250247117040048211849194534257301386400545994612079654199775315647908221812319551269617793026970246592978482453001894544148676592807743631593869062001731903649042442472332659474365179404010828934064466585278909726622946169280822640631123355522956179253748508994844489424757440645402917022926342377398157310249574940942370117099423985341815776785054839830752824986119587936815979666500620439473391181658665564039683295325467862896048471447407005567729377037569259594265798782887303299604966172630577506679953157744615417319130818358912964096986054806965189309325539613101682365910239325133265156096480274371310478696932900408864596447767248645402172217239218332942492839742549100219462595514043503073211781438926762921003193886206901560179839262668924569749206022341582898350009639485720337592725470065703987899934450556820019651520214183492828305328390769463667067352451690348805858756923079639276957088587458001363918166406635650544241335523894575863556344130181445152753214871591314024557305595871634389749746380567849781242184672673565853828224291210574036112785487180099138233035084726504708576607604980449613873465580340095156056461856083795211366412423540547084362748030405431947987361758436536995303107916875207976395197920094405021396518134895053286494237778546201083208638245075834791526705755243601029971344465504708483273106438549095366941399172032093601077363041782187695824368369296316646276451417242437252521490028837912950176922478297236762869606868321805093173940361675046344202454183714526458106197893133418098822495545569879832713209838379615358905650710468561672122211990970558666578318250811547976590385624519295873724775637061379232664397129068697524665825167312343398016577547150831798888055222644873443476065877844104810661551556148228939209032054056583470802230391617398558225125882917300365822036229085767955873315268528461569250355816001351278760261471842349834913541218569106177128747052431245621004667985542274266949745679293494185475187496176825228561225586785126554487189178934718498655578462705636560123934589654693212222602901857122092624032553088728131958462835041988261008608963626430233695150145144882270952813673748703282825679803667373780633865716560513203329928095941925203635818237834473649068167865976903758204822886737207798432767200102463852335413256328690416015640929337445444166720141338141958770968039388952478404313722236192465132540890912273200523766869217146814081769582276537505884265651402750229539762350461475084765495372985836340204286948585662096436038924952151083495862362180463926520560176900458223455380754129080735585971424562948918429721682662921189948046326166188013716399099479371176170367483915436553087185355739091725132193978954614383392761521505491274476510155041819244796829994845941183468038769052639511135443934600443304849512851202750339481277117766021369873819106613911630893204389462955502930750811307377230763311221994781782162475210588964820195808056539855026045339010509252152405986891019796000191570996014926089655051390074241578998316004357278419941164772891164328200566823085430974090267227348940799146379328971030131777360893373791862104594721559288667717148347234415559262079791526960108490545123262823605659572752672737365094013370209714175115413226079808440231994112022371527914515636608415224407286394732651793342835129063808467784592019099623066967519405908780542506141886613450469580892153654982146352531453356708066404043677841269150308132790022225342506138493926475214337059018636491297167281005996641920651499841918736193948971977658378820603766533065084826283860304032033695707708989163161070370246166240259871397289448729855791130723863909289721898255905078027255579610696586538532992418309735795262854234582472691767711297170198188524840410713176161259019351778812712930135721936089147980400801487170215981286444968121818484899592267911989445828444972438948154989214615032857064508913382527413437901678794847529783782306852654030789923073611600887394811520874352428128195345729731113152630576111487831526448865788362966351668071064813191223640139697307884278438446157483528401606404564752165117549826231625608861515871378412888721362751817261254210541105330484140950341757984316643657828764211331619484894563183391684532092774685281724829291960466703712538749800417859838536164525813364551360988916396152114106854426035882944502784462358279799829593616754150795641721344994234481831773886994451704383825261757923143416172976703869448375906310172336102267419902906074766538192656452362822457058073916347641191088694368359047510012385162136837205566988562560298216271952855603063455425781043711636661510142299976874689090502528202036511168518657193587433194158807225514882131634038641763242768069996141649940302327877273128965729786063451446492195368781375559289042539209125525023797192197485355827314316282198435074552265347649111886225067073801817042618539760418219613656756780087451269945285533885716589148822198297009244818337437794376157631235289739694473684525970669705507766412358983720068616613761462328299561098998161777865018014229658584370282331051762069900198490636403789097405674992390378344451848721089782008552571687809801408126098899896922048344351405300221304083012311222337712702453870336077573557617546667179293074878045518598306810671922657629950958464826928017573419229449834353039563729530457063367512444627196151571896051093692396878152883163970157989114199410621267533945559440141843612483225284442587336231518653772374524737036504654787745871389324152069611962570419358373509052640897839605026388339759184271170197704624117897545592813566391041243621999885015732425834584671769496072461069448064710530418563527173977994543081239176106893301414434616444703436511632078014461788202092762402792910184964066611648371875310177259442242570941424365400175374431199276449551329168061210220032056397269761522085050192270685480163879859812683872448955055220220901364048018550851354915227476513928010215529065379932179989820383195316534123665081435909322704734545637157991690075264212799267597019149480921550610914815518586554502665114013661596350468592400466378776748296809701196105609278820235701919853871993349482588172839617113227294362000169087225911229776782070662963356807595268492051930586520215937666478430475889554915439220154551537615402700676208276846514520386947792347896658449260219440653792995095239766430873059147595985798443186942873672981700124159031840717958609717458609383089374966258592405137109604214079674655976959669616926120124664603749311084275558180176521971178392115433437167095903886749989708161057851758809381658825544440664339001046534191814956382842881926216573651394081649189771574672996392377210478923127590821626483904522244603781551684691349170806101733885162154695995337967619577518616674671273301028680706817993317295258057534263325586288151134289586587343615669988995396049284988005944224555427212557895945143924302234941701245492543130263822997278852658349323292872280743756307804569244198131854032101590586157087181544872543338859154393257421868402415763298098049706124820961012586363017437452559316178365563945454912804408562808619303434552733629446752529920066266458390640331359756087515980435478095209490463969318873793871744148582394723540878530199366038713890201399710727370386319673317341859777313486707789637659140146127374000750412043671554976057686396223005230204984194339422006105418060094522249178851117470916778401406734121788580446216994979240022091211005335181276753310247069023476564626339319649435712864540873858284726887325512650048906984012506132585541984360975921250484880859189043004387745056744135235994350782259880844617636061884494101890432335061890614335933003161568271953651576726191030274416124880314281872586277002924911255153107286047363920353234518951390208947558053400050255610714590462756038285622713509369804905113813177247467228094126525368940291462370400461838343589519042523806163233452779814213688765730599248639597502581134013847579333418217480728078849335355913482094366481606653990333478037663301358425652311498761908292399043880049548564684630171969191714227886361429065501524982459080691391688804836144537889606796876931487546733587476771773366362442828502104906703885780119583032758996440350659029683507125117985560953948202130803860466317138902467236507121505983851664309482216072084095698865898483129042699872750694298086295649435717224521132899409917973201015832988725119634975214145047505901265828119230566251891870275389690554613367822131176287997160971116055576209387435207457333393988977423385175213091099384218596959918742824775792209107650604927284426146316093513717340152614823562301169839114370453862424380922355495734052857756082478894436902884871747935050085761200035779066614805075744459218368809342903529201956786379646188505487453225950402677261093702375448038975198491983655495873719183889805159650938476193846320109799419241061234542570922781552808665511370135935175315551128414220106850435582471905527948467282634591248731780761719919566711910119608670635355781949222650390271227260218786178891870839608967253936262102715419925387069271120010084579435843272048716105691654990750475625591230467999549897484590732453648410326168395389435150487464567741196269515940817992664403164566724567292679629397423749190276341904642429023273783951680580378624263575022781638737267863089252761548636170742423494477984393532818584167499996687402240954179245493326601634911644692459441555782153171428747681348943081953723673910872803330856919952710209946605671650717788305237539377087847606849708197973963248424998755047188368994054096164632096660813791069945984862842012785726819498398152623953565962212736233188062464194618909524160570496594844244816595528362504294511114775954405147299717349057802937853236450358300723420502526585795409821582228161737637475574559452205874604274675458873049731401853479119871442763904577826806895184753466700220499481616030661675850839672042693683138273607683922105796514977165535532989244675067129980268779691737191030445325763261412906316306973752757455822875731939756507514473937736229644705678510294080178412136694981660209968469230227279457058048756441942791258069996100765014557748108567708478756609115923963795588690156321997188872945863178784589501952181583212886422166234853825821075004319254904877594877974760299860820715849062721174285486275202786959923904020566942078282667844256830943296217029598300296679354964510646168044734477430294319224131598019740376868773414266092958085834034872960139674153948092067898981496639647995325006559788848690242160688451558959645002190168523114863551437845015791415476692992069221921163433736241779860537422895398881038589603981824528750902340070795954999139513324133091458808740272226836041173221396531646816747969448888050842166853907721136249147988088093166317655588331400928339088440749058449240225793004196410446840940307449516786573837456269765766232718807259881398674793252817145027326399462094838431493414420485660283537331201356231929574386217664912318652097079319304848851882814408321824820766084167516484109392073820973299696241749215377388017847652039039769781984985451915566049478240343980702755875363825407113646910696274982396357065920744399492502224409297318530471471662178040839419666805131201811721117682464426327578173748888044265279112004852513583384768427026277706729694468316853790220847367647755801796802454382443799171376064787649513876587422939075148242520336197096180966043178642702430455329513228961561819364447638922270236390602357975844673812335094843313341296201917717333479427069873932793718823973406971309058937393583397493036175396463291248393429358289015106981075732687181881274700826582776750489273781626974593979023710811785629255434132575739284625337104006580457715432061842606622425978848038698761292819199579521240953250273439863060602037919222740225719695136930757191904946374600383437069949864417897565621465138267993444731080478564377349596529394855500865582605446210680836186119265401678524380867795563057917709784794780810305158373908426152156990374051739898809783975014045706499082677536213821384088006628913890476345255775661021017989950994517678718218043249738532328161491302689067412414648570406470945255399527046268629043072261318689180240220485808640802417115720409454107346335226651786059413393236554561144190641385214902632129533097385807975473667629170603515230195209903912024246808487955422570939288133337199785454642915443023476110748469951250173286518421394104669833446533853169765536285731312143707507158248344064951432775723352000116858385162594309491013443504484544677521074108103138436839582084612304246661637036456270145657125773647401603110090327137733042612937297438978578502094563729943373304879198561229338842014591842317053678511331869079570956656434955115199352613204643180059029886356048412078396833043973348873569551010703193826863300860344304351712591126972749754178530888793279178163716057621715233636562480047233050191361154558473078301022952098039568830878299354872063026867663396345449566232458000965147749429129882268525533350672071802790376472927833847063236246921194542290971975900533880084269726998285817919556806018387688188470329864556129746844315301654499532520529196541927609582427198717655569530096980105733115205183469672402453442487892456193737042455349251220939444659392495486192474135909569554011037810889774575833893704396290234054008952038175837320975447414821799645292917929476200776791457396904247433241481099500090103439380676290345414817883255952596451166324569403407481213752165003022463202693431483603603322611522253583286332648064393477131023489443430341880541226608273053133013724170447679846842042901202134904868057731666178096696329400413036616618902083885377648494142235863108056069080164537780513133414707211468275879750606460583760431667116070154807271514456571501323010085132534120976470046450410180641033872632072715491824087589136670358250012742087024467663484455459479438569727733470963918649466518995825351127406722217687145014143767532735735750801080399371652523240152388818708552906347125575975505670572493649539219713026000656664100008990796144987493725997333372310938971948354858870830407747408996811298567315941805184461881876515635596211158693853153362532619868026748250195669827154494987291427733231089466736409422213776532717866234582012949523157841643714949168409689705973096375224657543266469553207940769262664030308417526320734326068473514181749579491387784521481277262447687786458835096239009172518631412841989768844656871152419749398275112894383114630639543105769701169959604447783201067258411403488512567419670200348139493398399046458018807316927788789438053413706309981138648988304419048998921682482264130195728126037077416631425975893031406012559684174668628201734027815974691780083041033515411731995678248410764603535308232594276906190735725049094819892907975265405091674493364281006814059069369482891611595164650283887952112313250397651152057975738769408562527003061725973490354881593217609564683415459213765481830501372403288249416348891943555155885934745531666906422091340639877998336173256370340520386303114752088243580351417948938284126218851012248710180863791742780945754638791408751421651914693395571234168067238974375139313379639778665329640340440859786424208650191420070081003529216858631290713957847887813972875825574251535480744358142496991447809246905272871276862931225925887408068281560069196868672280826324716123044138470221378430648078162723210550799168003545246692756778855037087937372673256589416642922425797094864241751640115983121776729147259551091928640689582490905771579567220300002867093993698678145787724555022908715278507654749360427517592953534192794701158792240458478843840517942966540911125643265621504473896754000501104502779529635884853784945529172377316072587858716769486876076122517232874698479987370225743795576160004067672658601759417081485820345206041822481194177399511090657114361068927651572885213298141732871090409820479418768023665725315355645071117592615651832950305277318239396295072252860371905343761418145719473407338564476444620186297525413244715242408758453585774334650151102143053533069414034861145152817870814683735861824232932871561348677815365621192699303886895526632188490843733302857371186024177777595929856830002760977872082297683182624567594726503301524723137762193697036333779035068923520131256586377213765767738730485587967377361256735639774374150670664122630489261092384325292066801347839317685556825156738601702528716419375420193605329242543966436229343412342943957115672837542752091209074780381540331700483393572203940631182583476176014938792813637598008979964798517023623831431712671703409976523136568197035223069448126288896177055809581862488947357868705996958075723624754604796792814435601433731268112665426276807558662229495705405676508078229680849489377581316583288301913605835294346712706725135785550683660942591624748330751962493526847500713219498490958478411254001846437676604322026019070594674961211415601191267113764496475358234148097245582031471868773633954854037459922874765371781715552644462987095712792970846901498860355001805756157603663928056458246644475521855969747418907815422117947604128208060462991079026616636217512225171567834937498424786464467582209725621711190263454066408184040066034437341939320129079241407218863281956772898291683803956725584100732696300749959065196869342194354793008823214413900806373598042966174736788639501202311865818964684355551657454825472925038799322794902736259255552245402461846442665655908979856428550658212474608397629334519417060364544200198869783760746551663113882751328427653198231555933302227362037352568802710145440289425373991942352323575233759763996410935383874317863914835173514139546660098742178420134093803498987208058149968865206614397265886112059239584851765757538598117625151951976399286343915501320322014055274581388778477374313805717624375062423982591089295341519771719381027951403277700433340891315069392900729947173541744019545937157098990953683048444158222512991033338634412395233154157152948165181452367229824062748572135837418950137155853030151037476361544432981949279620658556865288300078153998214439488635531497575647787414541441092252911030259311481818130542803332995196395004639056455981475150488422806430858399186905170426786883181445686976732944747892273924176596775794453037429772482168819080425601129069557852499391295755719674739959642402792917425397406770288261858861949039495979356626928552775761061060923317108820810984833603760788365355873472639806489464947794230061603950012550033623318562012138009709007912906843320877350037223665597305495576652170430424923334122664758004480912928986194836673430892402212513527458828865967004257386479489430934782386457225346467647264865340786818124380950653088905811819784555913193600750153279398303999058680742866923606312580629295924662232975611618839169085709515397284590681540116207136596077042977389715501418074511051022381038659893796159567950459079287755865476287128927442144216587913398434327715838757674353654023212316707890493984916879687949252762917978829620376095267939169056110164774624311449557319698947044659197830139955936758401026850920302329834011677202468776165616360084647670265362696440685546518480889740482452292181068934002455573988935857832355152168020968358354235489242308787114188835408802322057327007549083168461778928420526236933624319064782918191915700785693241796621497061664467492928604798969865618698097013195062554612476224140232072488984633335861572681548299210844616190106993473218283595583312992923019514547574380527580928006011552479748300791502831387891817313047852710859401748451303818672235975996463597824699366057223265705904757470496384029149649527109258537442416790493897682032753900739285522847053919664892932892392348062537621066457984642599125084083517764168469603702780728023675227994342637311553257141181805900972502428898849536957118027179801198295348856733476035320613867328439216361492814322849838663423555961134926010824867288383837827830497648673263798479823229310488020505192298194849618493746034414533412171953828864903986006799250273186556998354643984576516859523213713358478064779571620398851083990448337319105049401969165982959762041893549362930844533465786062498271701781271924428828516454691506914600740662657717847027991433647153548296146274744680463947548501831332624118725539498201179563092993182940232031708298493638612251185367279268660943966272840631998503010381849395705228225156748011055182420823672822451569526338537897335108175153656744994831288192191067546923497980694281713359340847588732009872936663910566481047651173648248633449687233601598930688706204968160318465143672096215776123070633788881393469472367744957870142625804396263680111300733815069677375780183538243838041055744845252980384241394357985521714407064212371335627518621933607610352890795418796182456294927793923408227090520575217543264523937946201697122843383101807955238175384829751110772643033810012309415249752391536701221563600699387832610458418099511126431595388630714482586891624083537937370316619949886081897128029414920541791004260927025333778936316035994625872696647646462847176342233432607166641606296872373503526865195663046553440174854087147827315610376374062255835736731022490050661839686924861028818316348798559144601600636969049669349361477023211410576215255062685552096179286243561973094885666415751416923075389870712360763037556774030666624187416238087709820543421150215635686824603611735202716071616026063212207812842018813320527181662699536048806734991471924691957215851687803857893759033356292983650349449485952966189692097568873707133495817098595513520193612540474662952878163847161107602577545970842534413443658995347070206117107708751193122429631180029218557881572380823583989143803492693598827170838933562447435163578208145995348353655830931396019371192736929475708862770157600684241616159425375844333671226647033929569009376397765795667702548274036010978535823920409254864232842446432954880272728505883313834237416847851830366218266205738161644617181678236173391937224005453749878157973368367574207358452576552934973585791918196096045553549360354491451601311050159495033530687179198731458633002802054352650748992342975318111342811161511385423145451103291939565989689965367921381004046823113096884118358839539811992830669328107772776571776657175237343566429438622649113304229148412079271800620720410609569024444333407500554723012690775726834483174725103899557591358948260698184827213998809751281214990533776264939223372615320519763346825852609651929092454632885128705390156394595314666271198907207776045978133884625329978227560741598020766039981404969098075727900708477443023863320998743623490085590873609289058464997003354982016660252898875891431239672327957052261387806669651037709690526829884560983332712554127814180769097843602828274854221968933502329554223824143308034950466926226285393535905578486773033829963681896611036230210820269480875157154380031087708718844780229314562757808330998631816887577636297723958300609075962162276395070320513334214215434216101196624133107288695604513365269764942689956939873067588067066105348166063003175288637243279819455589091262707472401620836915547167456386583652929610234485525002646870057934880181374529801588644655254563508873026913928834149847471284207375937417725863239158638499270040795616878369200059628772855060807176988458482016109975708487118906526439390301322346227272909339286262023056182304353485712634561566957737449337478415219151419538128862608507909108970024353276971788415926304190225404052144763338765680055772696294555847459591582967102440754943615710725123414480128558848686543158937430819141922484274940933449388827410403291618858594334885682925358292581140277204586680303933639425904570793002008782469650258082646162577878948092540752840126401812365313262084957796952546709519919779504541492939996935791901959574531624920481614480674378727501011175647153276987843161409228926935308221406424283295519225581792351417586755601127666288248248848138308697435873770054417501386769035472344557362893437982198473104449655512684415918581182212299514204032753008134528952253751478416959065957068081723810682606400819968630950826130263721531088501459559410992024883241588310664777949129612871188834500575829423973775817743911752523512140284294075745284354370429657239770813848679206616414080638853757681242598811923844880367805106034261298953140175065343704639134863238031011294401564088211307261592922554097349200738626798718046469754954882269037608106313670596428310005918661962360220551907137785140206959257109985393044416087521592140303618616416566645141181403651219928938331214462797011457955130843828869486645792961900810359536293805847622327518819155276296219939671815803816157280788140936398134912467315157528101146358167518031240296392347732614010113950013149967378100832927782511198219564986462475000386928186801751189357517655829051674246108000688845731015727878637487246927145304728779340494071359758756449320361896804751941499071717135088341938912515925823786556711330939603818719911804157138666459147451154445299240142102722932336417101719218357188850901509603014650201430774474087935683330984453541361478915192614395575787581186597179370102054106564916892680546516742754440160397088769023679109936333685916763265382684029172638949297768068074036947638270362479836588977134622020729112439618602096024087343886631139414713447254595085701053534744689770801064107195852580653924524000406553066911865580944268194399947359725064456279497060700721307687665596397197129993098914790005970675377809952930758593593369806130946643718077125354112394483973845477336328749366262946773495115397483163093768511028320703483398282955088860427106035568820583019602983365419413839975533929036177437101664231300635535229076344823587757340056728470385809258493574595390602800095116083467883621433814724095109222043056721478396785525912559281527811257848261905855819736286759402076981303499433455771828937700561117910679558416941216570721123262051668695339574217916194800354042615860344109826005838445473324287924370020189107269014566855097367998266147651912960533402323401099630357594510356415467190594232043809972982031154207645378292750607592475466212462538765351630491856655678684293716595767956412611549058615078910347147570563811645606303913530079231026154742436957822908931809817516967375229580007042736260104577092359593310328969246400906558372315013539035553238279583070035185797582742004467854615676827343532927685886431246631684481864459251784090643501603242420750772079600882641254143093282388831503918654664766092910007586185781302368141573708789144109308490997482922995309834820167557595907610026958122702461787485139949291005215674568281111666845239437386823058853519833351526438741764234694893704240009753202178230264704652658098741946432233829361493803883875014092004212780354836768761801517046829488024848257983848357780908177769066917465277555718502951693085242538737308243088466417670209785784785953739794932811745359864224212998523616693155020061502523191892939175393769229769590226838976328970389209887158776749169832104079862581117286410909399448974457839466205639583156242902224500276698042090249501768590755263008349259303029478986098825416362423310789270747689050890015215103222405404061307256166180846505209551106196877304184944326520108870691789239994576780320956021086846537026170111736952787994547769309013208585604017201966173421609947074885018246350290322562422119643441787453418636168945274852638933074961337028674062934440487156428499492509034378597071329509948955745734865290868876026481794759213241041201205666810218921859690519271775316277071710808752576142381492739071053679031192291807435106882352986696585465188445922744502139938846985115808534800382536483481984445507226802069543611439788747626568203354782427964827018413692945522946149711605849811745030731597348912912239062789681150586267075168840383423677482421372117779703233525388061237895738073431646371092293755880791875414684810659494197257583209945845154789694898494369004743740383006886224397317130966642954446370546123976221696001939692171667712466110051947121491601955737119588290501988297445051615832158343008555397334847339124094282114160254173193559460265505051201423329467474680050651403573735358141940648002796463711010387666836928333619710399382406479892843666170279565308133379831791460563940177512847060285005964948121508000030249741879603960127405041214814820259527072420173744869598401834138199886268220634840084182224477700568813164846123908846871108070293552167656081773859458610029856516949195167943194481170068690229202992941479337881475260296667676287301141825496761321732440201962872659529876454222085882755199842490970213739920314546689483583649695518098931097370550326247930713481345761495955743913631974611669667874202084542781154455948724334275759362240406066878592228038505949445223511970172363002476565938024948668333414912944285255252948117210929614783080282886346502436953800768374119659084428855609618501852643105116724818173051126114919494831161215549943384984880470741984738053741357019184920866808882067292489138121737531726590225047143646703167951442995362161211145589940734042329337273356276669155076771976038728269858303122277330325288648689074200310250419776971533897063250419894387295233702691939412819441888197539630717752249780845014941727044353826698842800711409012169285029505134768310417489990422440777970918794146609662259538650693813808509197881378247356942415237458125795557665038642177895975036257628047416228195487373580013761256147367328160144848316648068143360259480828838097112410515519979784652484461952726416827615696643462587587186082756148926668728282676093412055579323362336331503545980044863473950552631915715953552856039843958788393799926129478045080918000985146793133044175049500986602246789279506053746366595868937140076371650729866950178827017541450922831648566140543220392267962312280749447611408020949331607381439323444140576679576840984691431624242371220738582826554808537073825967292245966653605770545433192573106669663002591715851142269130817171880542349438628299258649563915514932288847943992116026018611336829257841527156838285821489694649837914950350483180398459233772807451523819541933236652827385309870521445777845559412585754071180470461172156974099908472686179101500598865942376224392013423048813303596319885437854068980889890455367214957992286967970731151166291878320295998321767122498570732491065407900913128244846295810627740875009336950892142200576206960566320877984017650887192298441022746196060889763820884669685918497072403326553391768991130788825244163844710706187212295542019840742349049481627599336682657818162822252512212957526922547102916942143694253251316059929203147401910141477609804678134195108312728079737983482726644880049967893115588737668606232439863131555054565442956784139085591873368341746839680386392633178547048003118825219087426753569665664959483834841984188993698084215794907379781243454093001858388947972716934236214728937563977164853697633580032316002681273887067617642841393708751596444244834827076371961770951501657707013077634326606590406830064894986743580948721663850327606176656725475708522870340002359177911151749091152754921718509513747163355426206772357235308640971408517896855080939919685210406306585397512510317201380403190591280276299226398858943003851320737786421880634119229531988947924277637483468925241874866653827215936561009927238515110307906840891584249078685889061717600053327339463340841970352980426120951093157625631127647847441457943663250161892303002625096169397632386532679486616697913626459073891525414067293532089864750803313865500988874602795551485693493790244069844253273303481667821192896648089859044163484929109998126618688514980258993016922035234383983744126767462296927473639125544001844152862276132704707240152724103677118782910259147002740485237494921761962395392253779787296360555933021956260764580349005836112997185240259554457385721953543665471854642784746864852498447327941658869325443479078325420465318930592746983593079445903167689283914229800570133255991363670379614037253206944400574363586257415722977633855359947036413306314416728097362700750925780030168382874752198923992335426003506630491223301915424521295572887550857968679392967837158868152125887670376780918576313620674024303285375373012148792617343799748262004805185560833844107147823813396714072139541531602456360817406194919334200456951162796049628454853106811156016680035941578391832868712294671406323070170355420950507860993458750633020091199775971414379404043071497109661065465423313245044849874367741863537235444283459367884811422839058800732182261445097089971315315155581008190530921193779908807293415320261214737540913265846623648388411259107278328678171299953809457888357268989679173739350403459098456839397503338058445295932527275637216865588063999960772771305545793475402174941246639147965664791973198233334556921708858191537378515871202021087525910352263033616040583926557596440520282271590765874917265800032781753038875047112380052103325755888042590724453977967903743292113467009505138124170034172028254577457706574687286153125911817705178069496129175334806633832443897498614424278893107297974701125860150263261492973756924857955807259453480986672518285504920258320609799900602214497585046740123615418961690814773904974454040747617008991806011107837737354087976808021110093200010962528296848559351973547949691275038444330842915677233773533118859088704937330787286793531439820504745019048481154838176527780868716738027154095509811085234333875436439612799748679463548469708309034167877568275766412995228155107957010545654125776635585965579940253065855926027854957700578901433394913449613206719722729961210045127159302691675061712508538458347419701475763512338700659711929245734592999106143449165143595449223128216351027306378202552091060791239584807838119144092058695741654407440039559777458232751607124304317676019707761434674970153156866207909913984164119176912513582065315245152929059765022498107087480020964719683066973760647640134663529544292739490499736392816805085578208170706825364921328081145535935712613714022733944697235848171402324246915306709444416785888334321627995055646392632590055365153920786006210409304511594443043408317678776724482762833244990143369810778641063268835365313785855818079799673653724457000005637503163935573249614636142183200302997815087086937995942208170446949187544170866372156233322744075241457457438765384963833158337886326309204081087557334335769325498545358995610735337726717663471871217029197005228648924719213157550619071459491003785244443286271691938706733819052573330188116036240757679109766282546040373311752221108814646098497418199293737084418730361899309788003102921791166882161231030893676144151712610220437907163219716063403668328442772031937587068506626944395008316900229744694324048809743611191144126951000968944273774245875958800622824842946128900851916482171398270317773264651619367720155585650553943560973887660015149948211477799873669637335285123407933120398671451285537533420471398110108135590716933783738172771606217534143019819318197499163438678480286936929545853082553368930032211254533306355931434521297822049249230395668044835484445145935412303900032614830587151383555746516309136242348880026361103513095004021381745438712118913064371077781763160188617732983922491318590463028620217895055230832640995518241211709101106718581320372320427878284780999866662752749678715398942812307130650429533193064307399904494537561744754314297087112001825324762075506099234984235749594362343693828402841034719305562137705869786170822494396518446657051216261366080524673609805844821428164052967155274646181023806315237694302929844423819119385127945122074959517671762792058991518081166890124047367365644072330915855104282521833438251693399801133477555685959352252856958514112851167635753700767209653009557840927479279308375281941206177217849594679445644654645438088858695113297807016740379036536840032710933665337464636370120779419060364991132473387104837294820439597474637520081734453991467399686739627519195313946009543293238477655750136452881384973943874823180724920703795998793669577205587097766087452702980832864152358247638794528959163219595155235288556628130230741059958775359485665112359369525148181215511980824650279514952895399787827468524199968776178895868594184470295681041773144551225832780488139438044059428408859145556433225725222067932867051567454883784742649486012374011202715286227438495052563462128510547068421549645067947795456591106534676339774925141679951425604956141296447624431776197845509302554691433592631858259981006007539446441056873203939224950122235596344857850586006736561213972248612610966193362233163767109354021084611421980288558920056481740016096685585627261589054142533726626651109106212326628773701094170092501856812178032880830722448573589014546146523912567149092477552639753227925880774926391061312133249545501966215147576023975068760520056091974425344713832822751811478204524142361311834282682346075171451089401921929802277965482712994535655710313272206205186875315395164340173834382542044198053066316631949994101448358078764580516846000064698387875675693250257268049615969399245937935942527887035543765280088476463748872241747218010498034022942991633883609034377871145842815768050272887946608614380241802100948761602134066670593594972432666172331599736768275966210754600453712220632252819582420700738801455958508634038689869930823477018633504857142648235641838671545182754309415605995076822001705042062803584588332847763494808942811795878297404093407632366846470555444751684662722149060752323531985350344981651134787166709178806956043185551161268025665832281488002368575112829450078508067334529499597695676682760633349471595679471727668194460580908161834141284705286767373341411189300380049731577541499306239830565315358300781714135462025723649827070482649841949234402629846208447369192356471964428577186550173315978700556772090208930902056139847387732954540186115612058465964639076646970136757498321669985910644419617154664726246685393657310855053508449561301685124799450927137865668568908757783661270712164944610503522550420115709141720412265824128973977788513317521501403026291151319041799314815091613530201535254117084867729372004934789325964854518387993886511544214060609444163375759996697574615245044996060937288548358707939595037738159291729222240507566778723163803298100432214757038529096302986382055516291552678957779031840029107668892700935897639702551581690004137502934459106557629662043938950618912720623726622684783764821613070104262662684778014635067105230122864851095792124673855069060247795161715535466972930410924079907973384983118980104459880330024821224173773619613703166227158768711574092469973985321145392554836824845892068772796584792900681912250698114396726052668326841058616143271248556845368109250893967777434018199681621078394904683081521992139464360488396348147151035977796687511715289548538124894635206373319446676036971804488487523886469415306441918175072787054946631693446216458405544384199115190634339692191745269196151530771996105992904607582673693928454302180529645374077084945454528721362906512323812150291517906026037823483235220541823009246630963144180161647852761473609171097555310294836592160706557730329610249024206825689602444256957371500345918680381855015264429778011012692390123547934912636534642983732080593220638199401631976126064821751711628141872859531767251806281961881050667775591407818652969166321976499365771300176046002557754322209531642330158329286871743028036576706151926798574441791321689981159186892977032395122569566276419683401436086158065021513823728432069176598608433738950352347411764172465504050050898396841855591070986848905612350871599386540352563324128228590493221468859876325147964785917044605387260156981810138474281008914181435360810660082657892388968404073080564062324992068537974462565885156220194800394175456309874582212272512344725690380703816795493952291229599346304214693861260988831127474786860647040227222726970489363155591395126636714115077812919682831295137153068116052036681856984114758879185739921149758586140405468724314605218789600685444286219156893265894941109565394766354371456110482984974264775508230960227489352624356706356611311133176601546254117653569828591423573150183208304648383204107438390024025559796805549845349685010234263545297515812668647973647243453245681437785992078040313073623168758208680228527933832367629682794091150275639397886501637741246774889909818144952564697766955160755612494035927544196012519776190175944170867633277857819456394726479508352648247746003922051580616871125472778476422167601609078576350903815824264003606752958000885479606874849698356255066558841459226948013983276191316380439961479461177730465050704730341679261474040579261776159011102596702089000519677769728909236649596347964258844993352212359099660525482520009328842012695945676348453182082968499745010766284112920635625104841385437527539719075004363612937133416659269807040781982917356825616714042572893449110351320973205800825698361485168606042154262344821356333080474149901177518981767967820447924889254699036403403248489374487127334145055934859306794595615159655037841377282593213017131409184806363380525655869855564236200473215351029121214707900284906282466113269466003448455177885144321331245906325246429124027378042677310038217285896750353736008675723302125070626359867899211154334917564145609511804321345645089822549980314615555174754062301889572691509163612489635753613502919199313354093267264194283493659133102816093598465897912534850834868020725381585265987517488375654136902206518134328962197066244506963793109729106951389719906373244105214215891531055430944689773088413584094553272479955311793922302248819529769615557666672965750145811395335774698316363490676102281316970979527472187380428120034763084587005774259654775122384711828268523393465422700999079718896004258723591061518301245355538336224371226567940399520776250362440499796113900931945601954629304973725560133876029481019784614576115328737928400658020288269721500996110269368386544876965803240628075189281491376967111909191681190599403416767511759643450958556751595613850328777152961077105605945764345479929353344862988941955473957995913072403740501548204325314666739969434599426877201605900647423588961269326767183228202502906715044687949989392483062556152280541476425382974441953775608593018516397300863896514798123936802771660354166685787527603318053748511283879260762105250124989314565383082868409220879309424151978063570317909849461949526803395112759973191744672579418485590971447821844496552161744104602274370734261639811650005760984047952546143146817634410541861082324390798456072408292986925091905347870364690738264944868352673157132778306402178072635156249832113552068450534464833556121715957850668638303468093729803130555121086860179778675457546697597486816944746178034900141107891040380345576454095441428566104850059215040567128857945367427089071667687383732660491684618088562802847520271818006166471336071987602626926486228675661999666453585236341116688956984379305355063264344401876262988766340196389846929931366057504184750773645406258930807711986715417049300485165621891112344527171235591288945552229073009507282458460581724743044123076175290554112931615135753216862464636751271039196005219760056401991960660663348543904983699749153774911906072909644567971994108171039282558227262701753195004300992385657942205062752459143291915203248208010871115026500097609895698400880535722011267570560855931404332830051896278484704361430590106082412092665197127562836573307299364509474330049781172816458678181653494003074127876546179006035945180845683260776644636764551868390657936873049072684927766984326452085612886341786562387951981108880412250198808114016872847238215177813209651746824026793134868298157696893754827568264007123321852688352632298064667884993459038573171455810759212464079885914051787831817693629713650258572213684711027879548677748377995264172545466078952031437674259683945350806679758685179052657617460162782838814664433090626351404778456971599616117681484745180680268015506728208423091024194318835888260639025628396487363723585912945328002069513820302181832404465213238702326941882050891296262143196943794996435565676618684957596367546801550039609280339085715334453873686178007700260199559764297201724092144061748078222298775436003657634406999067554928842369499017306057994504182686940206651737508742219714444329618292538232790585810737142561140734319697528745350137705397558496093208560218442156111435923875181721823777733998863335863592359058401547940983804003254699476177671268008048658652693295836661289679755714332316409211085598962966530993060221485655605046314613118094749011365822519159353846206535107563937691615011963305369932502144827205391003509225411668828759710317038148082238048926587561220807642509734497735594590364564797427420252707184297836548960346533221782373234549202187947203070923873211562037163824192770328661845149744280201051724860117447993151882014048391562117580853853156045022709272763880264385315019669079292887771443943005116979463895848018990956623616114029557157689872908463435209397494934601561946217811100965087724711264399264752555977547992789784269760782527739571670755446135120717042224712980983670473435153699215821502596559180263153199684219371611220987670143314332096975432598563401046228432319394998313366774452202998729753407159046436350244455383365823115659299653386185112169280801503701189904877604285486775949584648075172041852731995107422844068154440462213296730176903790792564405836900977585865318788375158220497283397880053135500666261405835660078318473638207019709876973070121478020475016912967850786873890633964885231157756605548917938763889146328678755337812181506373227311929615773755463972802398419690189490865941271411154015862278599148761607530403745681305649519156293975429765497518340972267493197345818534087761383815217701639161630096979406315589807470414905417394690358527675049862582454450094769049281738226514792717549230945430268961239473016334010909211180170220771725280094210570679083143326960842998549398189415548709337475970380598129931713448194980340744935627583038199169670544233763026996422536598467411612323553095086397510413641015160178260880778900962616040828077280249137579494077489331310858123755879218265725641589573335260458438553559630281443841845583690910772992690667547282232023001584690835331744809063681700137064258982979322621158520248384104943092174800094893033785617965103219948942052688157419187224529839303556702280629377636468638615330940464184901373528423275663336916609677669548762761676028630721221584599320015079190801753676490405194301426982805546932975206834259282108416123617063501947701137535501979568309050074480344873140943635075793456383893194740984614660492504132904751713391747527245620932577893501291791231419612795329373463805613352657446377082947426029761205431651667157925791864424366882020203636730525540963103962836379339477781052438746090906911357727630167288035591900265025714943794997616516817077228270810419737489480769723101294134726514669498092476465565606039186861998095820845704372185528947597274959930125976546263499876868380554889592181391195112551784939733789754692954687131921934847380106633594023505215517712541413201341136768166361717189984368949073910194522573657234017371832898356886522150101606999864362416916248528105581978267198929791616403706363023233304153727883169839259724757198042899398402142668125922841821514949328841662975285802813911352886465612071672643994343574519322913738814578427516305473210936902250183694525920972630314036773453327589544919397739203169136691934308184527401390326917336850384800071767355038794995111658702336128176157243264273018358719548815939017264440767867588004137140305171986824319226486254787644720686286269961794501890727647499766668701864025064863660002055566291547746850290102113444990690617035485739106837580875861302294009125171161295692332159003901974988099190725613354495439326574964698811152929641736981187880466424825308533260589998117502133772471590724162161955323109530094871494991105534216093681895584635410037433723771019258261012772979237304775815048595130411711002797566207809703257278211814623365967085718285951412934501573827403863539173828276060999285317551646492276004548520186342386792674317844602714551997279260421526083287203252386846768532216285931561751198309290721362760968035040363429146471010280198806794366441579587756578896771690998384260721373643826848555203191740843054021715654802742850505607847674307502159392073692624568831358603361049944083973665869602606505700093972969601763611902512310307438553646275315870440361824653369846535800857541482077380710089996550914767151010456855867375285451969447819450606558157817473384090362663260510555421364906795399070852948661418483417304986200886103709840482027178189257516180792469232832241042190322922612507612196724842742783031276388687052888899214777723181170918915919330083072652338347384615674195746758182928509044416993738299732809825347114883225568971294454285725366821663885310368564451459883643368755999164856853002618345851573690787495962862350320146396336247217996046446261559163340258808026254987396448464827026070928506626147318366262634742146401021934892926826343726381867870894478573594160507657115621403044493960643299000339584870601469452599113914983352723592871271988594227136432656978613437590675969732721447839227328977193373617175765980844783226334039340617916885139190232042019272562404228465688561302600299701853730642909545619068589950557482741322981237352387243727910821987934279303863086119892910258402506962621132479018878565941241692302230681734328834923959338906954948382724830179299388740450117233772158372454909195363885630776936744509788062217027234172225025071656160412850717236381421466521854263555014179355010315891691623901038386976670799203586459496186807763788036270169270077877328115301604236069802355070226813591865004535185962325918685807778132982431421562277649050280839486107866736887085093530697092961549143735344901967424428525060704487802895519699595154175556897770967292880098827181492459941747499861367815204139480148817510811049047919342778382916330821873535238501354858273262401297043237716241849099277160325331010822987659980471775227737501287564572435738557862524514798743779733050941601776714255165700696184870320489679552279483939407631490783061554600316547392073821625767242006995607974282120290345891282822424199596854498497908537377210097991479807444272490713897870545080983936611474354017733045978749891920081502417647293055256528853780818347728935265676959523674038193392576293804748009401759842815886135011926605203168775951786658732077472467542312569572513737564801428914561529168492108198340795897323423906089930443295490797457486150157042510825814050601756304658411600159696270562420813141379013865731814159871672582979953575023066230390218879687630690960532879607293166390432289560647831044605546549758612045456438136428619714758697096333589361815927839875907139750151022378514413458281940062987782132560249429028494419667274621653782843810467852269133099969572366530910164879336064878482074419436708295096745612627465043552436245469837321288591418416153335975928237474017869032539967896309861057504182791240742847403926905573892348085641831723687415829910099567759929485631266907473888911191661978170301165468263233816377738051952124258452469478109973774301734330471070960977433886769614143099413178070230467956617637879484857431854431439069170666761033158482433564960890856977020469587857918432570095145109015505585958169882269203921558443928327813086557249109196588124743633737397881228376056359167685469570303157910774990282832538944404047151025932170451425131216587162333880786140850994745232858618338916716579047906153766343847465456789628213664369424592755095555139642701146576298497060003016663920588169620847002745936669026015286459849657848739568575382552447913178952008832060949704101115611465712871989467294920897893443638064816311706848791036113521080235151245914142949999258043658418956593358022702194351408833889185135436057460492662181086669876873965291623808504451354463138671479933840368167367929969144870912241540354177527408530186903128474684190357662342479751374041204165346766763488345788251677896372037686986252088292007360902667354439313890936532969547381859284662483243785680611151867376547417683400898215539027015858986485783558502915022635688539289878566993987569511376251136060319286389327593342484988931992159168327895148886917720253463709411926133061208880139423578288878680782395480274039094001014118468325791961112253123978819288464399474582504536928520808919075774360482389598635336833201687248841231350974915693542225425408816067747533673821702009819157594705286189294353678489807814590116765870004014661158356096204193330081467835817460892358527603155419342098463011962897496056982619648203166605267167363486772343384042138919530858121481662135896855191566091259488217152856513537835679138900763081734684015689388113614001773482806711588092106989366217821816056184421941790728391592123534156710889647792018234011285161894348480831376973911701500718869191146481929320739784666424871029508575928405259101991940781429099682670659457233669975259533191330792960938244839425231157912431698700118619165125670746775049914120942585387373591661391862328599498848377914453219732057388071773395414254060465984840406685023996407721801840913601913476989282823840732618694355415812024182523949147083617079772298786306649957793909728858965836965069537188260016870695040252023016065532651912191065004353231775467965220774135354424548942933237016897225623274196747116147373576409320170610557470059508670561493051136060244139083353879154874130162301567947177379097508650674210747885543646213257847937308074047391316372792961847081136740466681778821667847903279523077003738890960597523904770171120109206930443520486110777652178533789666482082293905082753018844812629810905168007500063009203428165525413141815878000823595800674286348432902470516429249511369382730513672464743535186041284891742541708113690013204367000915924457453521071688237530286653656562476265773023654799881093605381219055152368889026083698746884316531546092584376036828130977272148687731963526644308672340571020746124908947717487344995472182791027066931296349992577412693071331239697105025403917148371800513536823686271852569229620815488534428377585073333745950157150375008263423914106525085726392385572650176865341286708037934130867971041025031164584344883711916779212781125552451643731810517890905849645891980995343389208178072220318222561907619975695087658414415008823320555779414143708807226367670252740581014103230618831009468899453107655257631209126156480215671712671183727815563292468495138755505737993231320989322835079644742996780383384962574049528942851660473433336266269869624819405347260825863204563263400542966316083536529966132394041791890755649246270064996542334494208101079457834299951276095136530905801467338795096942568266837854968627733160055921041531073685765066549040407756171896407165967318251665317728681466973069492035171855381769458713036433653685177883772931833938197599456038758567491722186118305870312829590877866065963824266224556448833857072615924511905212417165300757894822070080293555171134835839959906230608543657390503462154184036127263596657634381037987752051686563496863085637452127667742031444693462091067757541816751292783434009020335761640305503501664881241570755102616055545534070977355709976408533537760878621225344989353762885332215704482141926408955821686253686034463158660486214030620757825670841390108858448729451644316694270557590995616819745940311017809978814285635612491443231227070014442999406039990208075790803897945862479825383809190369064356952710314407977793373389782787445440857680296898553421623743813637838608881398474915126506455290591089297956234630864587137662708381832614902227319840023928916996005601969468817509517899368055861684187894048666299926648327319326813543597810134567211610695787305064997771876024891281272035433772799606149558336419528899800071712523348542103265589879155555031252193287120721738948628868254485828537492230504361571440291141565643606024444368972805196612646444864741777073930224317588480878219087917951321822254628548055027434331523218215634219814639972067103467247459086504843639806778043754332253576465806236012655618046046222204147519076301255886341253341840695972902335694541912617008604143602085934798032419040588803089599357307242710613512892524601971522493273488809912311681785354952935026464331448367586420539559966213581453967798287409307882968984603163662797245076389046913200581354292828821130405989929450434989310484835748994291701946733128587863358028173844990257267747294059911775464313395115710972801025503640353848792729928177969064816557154388056480740784647308861339660920305548861445980334454743199766196744884209041740602528220375304296354304287894747363945989210301502788417016514013697877267341083951492029664857460005304189837532165028538722092226907837442828562192353506472372339778181049461601249930544620194428669302051819455434198344766598470417458644541602262448433208035666197533667626282879493234702548695221956050356632006802717662546994960600315350184407470011734382012690161808015851926495686931796145700336662138393568033934976382191867286181574051132376438673590694705369223105666736103261695909672255661289826240127416740477937657488952799602444915662803691616585154968638133767243369572346911484524140914227141155177656834166195660783140297111616952684351065289377139610733516146641093254902123051678389983026382874186501128828482687686528386976062596910875490943031338861052641128491128471546288094826606840908175576087016466433505819441828748780429972193223179318108110133166034294953697453117797191201775911430229116247457730943085511676910857004815780452203893446027263083959981199429283822226157958565934166338798161411216003164809839219843366163623226158237138564037484079188568544681997729494618936300958606503023291555581663630103912553956424384041333347832901234079763485781121485332384457415219899508961329582113331143477956988435685470517592453648125208316449543419889925147916792950240248103451181484675359145053303063448530912165146357401398540023180649803530235234597648147286614697264888856569077103160527805077746299385781126554990169545921339560712062719358159016690021868257566778031664706551339069788355928941703785457256206639558370057917440425599358222310215967522148074547385918765014276136857963373946966045190843925934057068341057005724456732321764519414532875299203875009500940357198262230393699715071324332718308626241819326996811964599774664249148624028640217543358231332902153774277387540676665763030512437799939929679831916241781241644992816629849393638776426718909867575371541275318076034214802003464927803358691159774937001196716312521339976862651052269139484024370353221900842841757358142601884846257168300887980970701475546255260143254880487321328489811996832276322267059093214553525310049855520005263416742240610326619239287612362000357911956825338097001500211431414771186587740047368494038716896973853984984566135045770400055659827171712666003516142542829631188805656781624122905628056790813111244281943268446451626227827070754897077214927645758636216883283859739855463113749309253566531844870043472080697907839488559187389490895578481017380948908646107761890840970036673645538542855490122432477135963212712805434812714737244659847782294551244201895423793766553926971958368967596447428615912146218988817468084316667755205894466884166403110071450618736276563307070333870508119678845435350238964360004567268276216164286090961188052040068832954196258480733319075427914625479340750614359218097682847117049543914254945142613910497954689912859917195429896895538757010674011911158126241562705024560608438441375818429191295565243412373147789054003058776198303101071045391408831982015898401472489955917688002678329456116531598745822267481213272281389064429341161025032835819154760935405176948190237137316701160951563721505987404503047891380491409396925196781007027292577806226648443072901836325762016491535993386172019437957199669194039629268630988078454817277279648991310459723598609708544059522701294063330248609131008949750163682783347621149574840457511104336876315178046573184747840730286719159695868212220023380944737091498830167950687883289154444494956059592016500581408907652638771035174728991702705542508423228628250633927457645512370971824621104588181263093855149235802431327874802522006952701917192967653417978730489764898087460579031151237497500932773882237522735706758773590420075867519228724047221625773655169302716793368704061058572634357842883048919323172298918157304087225443419732972930346162321194196141434383204943430416013754728909034170537087389363531187337319143385745142000649093038362921764820574621788414560171519915048338456113884477526123825215184218906906192438295142048614996049323420897279197120004433926727863346863819270472298092332375813103365376292017874430553855532758455141058312524847999190335255239549676432062247068370176441129279996942730439636865738982563286346839347139094940784657840958500421991609481934431489708068141976504329506678941547054159987931281553492461532676007412895748903114874701786130088293431654980503436293283319382738336750649550401896695155904180533619309425324201511946088155606684101085633890472756126041391969690967846759500018728041695241407902944831671001472857786741275578560494608986372817751803824286343202018210900128229079533193879132685075124202067592657001341830636707036374005233392368061798830996834766692685358888930516779475695652386218435923039211434614936523582289182439370820420599310456837908466519145177960429170829289890249650485621496269768865563784096245267468411438264322117219277505848328444856729038152729884225395835518330863820433463328691278557125539729083644677555292455132377498991139363437140431727501995408258976225861285402916791099577450766538179649779140971030136079068376391298213757959295343738005636341875809216013693639812094817635101421401484528279190175390995204068825924373681880287594183909064393940131467721228779366235095331829827817199766899804813559219596123882523596055460229679062178951692410199787930721286103948836443788857768039122214123738596529508537855338709954237633696085574224546536095326667038761549234082327349433863735186365681307521171201558277963432559395051406221236706271272957384802859807044891128123619108044445345913048650560824575427309598223188844082543091191790133064236035588548425719182911593475170199050336582764504252738925189098681627392405400499374791033857712897963171572967582912450082046905512710148414345155660129407709289466856969499001940708071966762973508879721302351775875598086293696431390119390858817323439735701079685678934258083344386701593937815789101933790166043880718498964719333222045013260121005305662215900127535944868797952241994470587980341468454860629042135329657296137541244754912965686094621688125076552322430020786493315034653249893123981332287058737225350830607106467997978523520086550171622792404561683399793961434321639396256781180554300091137891770328074073657407831470369881229508457489713690753088115141870472890827545563407642547704039922879425405213433560254731600586104152005787559868707626891827726901455612328376061449151329480233556481782747425524839598400823213485056184160575684711313418659675260922909273430058001296301252391533477400022335046740261400292298098116620310753526029903504200393919609515586988990276730128153324526326154292998707603372908127402970814970468299536559161784847942010458603764867568388798681880750572830593976285001125988566287883198397697158814915521293786519888671440842081113050403309633605938749012335526774107578454940001308282457342931895839846181921375409111467768026069454104899974089830650284577306718782237227278896411071218868986362776038636443585546161109308410226285772998027120914036402978068609642682029104217074664259008924384372824079868901438858144014103079636255502872922029175811892071655475334322037672470899063165876026733081053083468788282921478451427887653931938940460190594209601940198079789752386882857424354532000449721554427085678052447484257617219203743722874248422406614046054075626468175640702937309260623516467385131760991752201057141983320778105408774962779413648894766780944206790602348727377736568532316284195908551778144042489015190030161156812955762561885066302978075582482192235529288617954221820183611113912824106443949969276395404472920921747220267341626026738747608179561482327371376676211962217528788476125055268233248663039731029988935067877770945726919275115861040044686949242922150545327045718867000188353912130447368407615651460845629592749326014372609626536347913908797265106082260902995979132027791849374489527453613434470748528519164793454835345096376963849869754884834056495917548789142415740109241848283875352745631417302054739187692602140796969835827950018858823939398519843121644307151036649769740749791632189233780206515583659014435732904994816008717281366957349454128711890267119307991734215758884431469775135352872181470170535966534013479460326197611892907040494280622012746701929361829209891767550784458323514115910079133735692209593930531529644963487032842646952199787738942504347648989804039852575655521406584457278523378600700388202025886480322518975762804163970965056624589134644414933250212670024506578887292012754145086598865040103149445676187175897119881723650153180185352128808686046208699025770723666950560803913679894587220014743893134229075665704426097586687261511425688378150077068803084913610999929098319195690213318363374598641883246855395165872957806625076541095023698935115239765633191980925423375342781950284974162329700953358998223781962673345103479492025920831445646334438825122014615896583934010645537131809169840196093682177089976718736641063930170939362295319466999210600457721922936178821228309206538260764170816512184369355667293969031672405462614262190194514181634733484304543842688840043839108645925929125362802476080942054774620624498880476697587465974120084053590695419696008064099401906685050354394924873672598830975792667495974299358479574635938438369804570071920448526706292351280612828081589009161572948405125723978349823365014784322563148198220783353599197357718905475175976262131802942382364900032617712899711870361208220358380936665735001296723526300980081787576604095712681059091816489655575926687471258347368474750916737476942733576369101699128687634823025344990194793421283848432759221152282599615210643354749958204881163266713382073337413770599271245799223222599018089597810309628323810221838158508339907709084644855007099940316589693751945562194666680528201863128073275974066163258504086999632596690830651240464435314330062605804285595659034410421132720452368673402049815846302928448041101419425681148482565168065605462013204528705170794692948180803928722389395131633130803664269435492936108199132414881629780601558035613887925703162147426361153172335582640953185412545345461507131587897684863881389985043789212018901278039050313041027630869976341705201119333870105383401154747485259499148728182010365540344246610384392853409537045936480595832240566877877173636989094093606777394901784587869319863987716723665828239734742881914423375146978510946644221317372033441405481903105113230621390167097748836505979863753100499258225778928485117916187912452806373639984941395958014000519958035834140879167319738358519340389699727974046804544594747204872259849522557790339681156237770736354652586475561119040459091683232767377468551998968124341628834957383417308663645205346609426113944832642091915808883391097387880300587090276639495893359999374679432331456952017712526621246144919266055442452134642802206953735731684612496540981058795135413255868306194490575584971296500357539892951489358754766047598694918061603679633571847046882593391340960192864600011518107289057998479311266469723147024582877868326040504204859661562298990053757083921963937074267077328998933466639805098972875114538696107374192840657418253235488864218830299456561069950352411604883496979211633056580162079191126332498093116317466553257699519619408274442796639409541907394490740355328683027566321096604151673979068723185725931434229236176010295396742282528044168095986945129718043070186368576897647126046921259044219136653306366773009957623859170671050168556157726812432908854282034301347615137583957253430289238643310729208013963399617584756050112344765183690948130182913024909302691092575203525161236431924280263094571556087831214984749849582015082275989582259908636667325670875430289039730765720988700305169059847716230686314873477252686482954021879379232004711648775878207862653438652712738244507277163051604203298719080303324774484418303469306436610761335163674184804901641998172250326716561718858162617958127585816709572145039554363744677143912851553197362057777071801754095759380302984941321301090436004491178752052547267224726323910753969529726271863637989367402524908114078596901242129613961869862562858828796886888787101554270057184531169263849837310141726037229519031071019002492910888660325389939246255016447547646772672079649074580174315012835028204123263964322644420349093976588707655632636072295659498928877760500395533642039402746634175263536414523377533907128884462828764001784412930326604009722029274014727433581838959713461756131869028648558562444724432710590447455676310586511481702844882476108820775770497058380290831929130258346140605164901161713749698281800736514317046907779839395975682665656115489514561155443145356725012403614425990018048437203192094695104973391635136800274887429088034577815088160742926315398479438970296582799516007606448719605476582194379234937117294658650903878504034250811589063515428566609247390681494373725888398078190039702137914194131541308883459620362928943797175153765639122918894046610105249424217333021749624711063598470296246184785140370442314514651320201741827572321453008954148109072853283009744344911946954817203239635650721088473326116018632807622822481689989229749464334359772288081397322892073778756510103324737612936880706940435914478907379560198443936565782976262603573823043126776491606912033963108144187414417599562659023738801253420036263986677598135534214281814933558622329777816333398782294483857674981435097858927074169409764132675247748667604191162949698880715043001238224207617588789274932185576565914170311973034709856936741048575708118785338751277397741960834437684745645671105829580131053568336224409197495596109422894684289004132278357215056735646380494834045109981352507468029931293029651981033344053212960321072369859926792875808766306791618161942946102123928122247431398825580798617881479755433239305131727742863741142891371493137996001270835393633951654879473528623810948646948940070548477128616904519537773522052641652019711317965543711579332067747820618197818358482054615109980720702237846644632134320255895346366157374705463081482255865413007421205402011206333943767615548407706255414596085976774487458640971565441085276935449712904794189121442725827054458821655908897548201090335043534774568149855352211546846853985858076418412973721066406071400677546658406177411907809350528053936937227578107922572623286102352382726809948196309889227897105757960146739341865434587799243652765458221778594514343312732422665784736295369321399645665150268748218096734492232920938357463888215753449808046996576702887104927773385613383528588986257658631626006459147935917415301275734017481752322051936193222564023894233201789333605564065339431355580991761902893732804210167172832024483647530570553415721157127359044690065693575081680737061997211660560532236615096112436316968157568429885579594910172334801812893040100452828822778788377642789188073414088339067695701530883000245262757797875502359109469444404685019643111595326250335061689856236435418127856857551217493498334667111717916986305485390064176183021867049494517258799824851134499935069511496875419975510006656091835718184462407613926800213876806587675980114468189244414232352841695367704562222789408893792039699569402355057334436927280810709425186853049760626204880899909556863938894483330657429032400442997937252735067666038668787509800995584562253419418016358453902006594128756547122209264528325303672116324698311638607259178190581523114266087928839377679709738264031931461414038997680297439900565960142459798493135867505230850130181514539079491505129119426085983696675163574531397393642232222378550292178772261472353527640495547147561219228066038299219441648290982582372476413280240850449894075265534436351092574472115168414964312862392659786440034925320436836484649565178634958014144703288256655611464689832642661593928532186622246643322277140167022092355915698803601529351506347135287654186170720595487688906084598355228805156167482384034712588453800452180849198838944389165453266095143227421492736489909789560618372348727527371727238775840650712290860957239184759250857248318463320976373241625163877359742658710489353340448553597055097989539466901137733219129462039518968548895063315500973178544038154037558351036947924881513566352289753069060223201120740587770237138446373804221395822259097527640273197765075950185688337477933551609418951836749130439523196615560212416765405931378007986432741323672136579560643139100815766633484833265300513186568748947634567196253804655786974218455313333659290785811771201989268248375357646991637173296447185761477969161179291998007029132855074230817575549176815608821425670608041427735792803672076499160343002376865719894848415808879968718507577474887080815356832216920411037988886051009884862335462507411983029078588435690382450969223958927964902032964349091102727741932805226713686999650740258088319492462261190240323511828951460484081885527267764534033172367277204341619314638708776785057933191546931870353450281204614645281932936963043072820215229271618959534683806625547650880232129712992113041337175698561120464278203070291445457975229025990509438160994514539610818280327058960494465300763523765873543789314565684642116585296870035899731197535743003121157468771181892480053422522971348780802914550769683650638579624503060111440533973941467844237708787323601633640044658072029582822355787973437623273539427341238502752359067581274756191803472118999631457468197584794987214426635377221520876259202587197072749496280306112595946943057810518313065776574602552901227097351316085097534769361172855574650692139469434408753723019163193862466613320483045763554615646049221527458560796774717440074720073711335550356909554144503452772535791657173768688860422946471746997723696709387831188100205479155650036427317540390844226008020402174632285201840192993363791400380679708726508351818635962325987717393062360647866836087189289013570171289621057820352272919726552449455616973356876033039720310095016088928320317878728292806381321700705224793236372642100328715966309108964554480054999030473890493237152458690912899234762626282325742407922763880214078830696518180510030891408735724127086842091075544958025082694385827167676866725380641191890337053993776123217643163010686185818641973785552421544486415612560510512646244725611124006070742262327072242359027348408112278541705341404290719762075214888264948101539204201815945366878353618058187485046730424199537335620886405541997890697119617004227718233180506315042115327367891538983433548568315882988530365401823432767685137540668037021141258596893698046384172862309351610336003506988108569003420685560083573526118172550947385512677966139078906880052924041836721959071679111320884581852694997622739814896668153426112058035593876641714200413580140746123965260740996843176437409465601913768614115065152499819546362029888828656411909555469973540750206207769367987793113112115280959275326811348563344985584359314345233082839249331469409563984866755417143241291648406778901693402455373223719995166079174457932548008476750012999381090159617755423569261623046017515184789430346965705731266364370769647741803072273647472107573954154483840537031224895935754464847586451219719141228713213554477064134191640022941426227747956735269561638970553581457712060540917441989792414117037463015105817351536398161601037010766398098482899260617718251494369078347275444747185510705465990032383462558691621848938410403030667146388692808108130352347565168410666290468929967488876744576340162094573116740743325995124358844451574315187315259497261081771786685785051561135696480334179883119068018682631785644829133636774149136009254437368216405127090808822387432589537888813309247571230544998411917121843597867145876943548865732409309017759512755252660410645850723273163546923918095635307270790795645280028164642819667077459486077464036250690706517119494690511977166992105494841660158920974784908721318284656384834983711353069723780839601176244947623864910428634729869413843390013992496976182718743248097438020783706067910993110714330010728491118028024127385450374994798767236693840041422540458203787664992880135950469717104220595410566319458003164245512175367836522725566684537476273222905465002857563679640896850319056187327327526456985466891682587083065392423397346548610914571875706570121652476102383186609956240272395410925123977353367952160868085514528088861341323591665812484996472575682922662461177576982512147173061874753438262845586528655603137982768440663758320537832353448290675685730095644707952961077658039204406861115016619384938146232792585835368005657631460093786152307247862352318933656626002776109416984846458710826415295641952581346512695440777667820188170326212145686555563060208569584443766468048366123999419681805013298627956073698732576372811358158370874730035272219611926068173548875265797047774654247683579856873853852478940778179446920209198999386223341373325264491146898489689960870555833099638967932818171387779347787153710074672814963915130092558763213791212474590198164915269620779988331046832309742770093685611225590127175913361636922211358599798615803226814823714715736402515570876162294731379904330592196503498926012898243291971039797268929096381138817812632502621438856211207719059789547389538601360644649412312312608044705950435791160117996417052854687426873144306291490216642498800067172166951327109897329224017130205997030429183897046046012945266053278557723579359502910134390230270159299757485249159226305108720163740665959013294559019803144625143009741763638771484716527172334954203046847676593484638501562051967192808440882469319440183788623571152471128203063930386037082154130376766836054067376617900811618492193496063724642889611251002005154329142227431930196141209495568588932222473877914463197419230073265089434669060296395556193457527578128286969921783433079350164283572390834744903464929418783072141415886732594796576677856865987040025125685663741103255819051554555500789099862228286627105127486156469349926152064690401592643966212870155758832692678277389814228220725516421960722979936820445652201054845536502111975650668643740804525512946911740341530686601875764464081420525948868344877674034949885509030165601058368702026201617913254507024379174974859315517291646040734933892865205926768318473115418049308324104629618943306729829383746796602707972494882928586036427249847904000511408192970937592622777505114673605573006060344827149957998250256324923067316661579989269924093442007012643133695095151607512926546475054565713122761421723745585615349947138178069771072220020016827359587859453522639500059631383228816222713431839763827380154017804099894440023340161358499659885710371804636933390297771957390332826459619876132881766327776473996571027703240498674945213380890427782666899355544914133985489113105543355095478997714577490511259278871006185232489694937692747529378769308130788525649253903462596583615845006401463493683800681328160280184661260724483593332499486543556876991869357317805634792840709538751317225851783861682924229962665234473068161114467267913686351440612485038919954286186764189553908494542662930497614661145104880644742232533418210255732953987079556014839842617148158792430411152466165284887981441363628952149107787927962875383257881886786396503181801213736723824700976998634014472029434828231615618947970170865022947764192064896678099225222019183877952513368764629459105405486062298984649851899184888721445939277493065522264962377131253703503983462042964717015310412326392877400646437651989106754376179557912323416647763010595387762473635976137228987762562716335651803166410224637815079504814067616147576748816199791227986466112453577367419519435319102424301944666791688122600845545473601363051937915575173346082125933023665320754279276960774684451027998880237512053181466749643432834103208162482137624376139590845267988477370949177938852011689700101687891752544149240688486337540683587904846657671595929639201797958954284013163549078530405104957107515917044012780971996612836947097293660161471724669930100764067374095745204581331202348026376089826914854734106207821670312213623368212524249135729639973707231808581453840085755891866651577407017472620662360147010325834192391868726915075979762554044693339811898344810618153459522371678075812066399740801792783478655348219102769918296202566377907043646074219293391261520425188321962636134375162803510995437938933167852864316386273814349870728806720581211054509865197694303931437467318248011962000070506524222804359312362498898852715231165138709667899778543679443662672369398449016965878602629035407529390656152215297044377970272775508535504171554957454565934433032202397275019316885195184566214673898863410261848073610678721378433777965757868845382097816176147607564951968995955772940906378969217463553286262113970717091558410673503118257423341791577684811331136870032638356892928815255067122915918100911152159545776572344431266905382934000520878247355596051163920666295432768329581153257086507408673524044054646985129885099812325452731825438994352635428536139520037447033699973496726206427866257985723145532837037084649272117314646207277081644899591505081789388239308240320796252453936895140717393597151411380346296456374789632518603817310054213166242151115493114062724613247196843598753939146260717634284963426123485151922460781303241080787348772827164581494762661602877118741159952162418038958469894833821346139370158626949173525901378384947624804570339962610359696924370856334640334024785040275576624278945636579356377153316071719442892227364038932939896829153438803353234210382672557718134645973642519479138970448925258539811528832089991441693027412486912882110332972104131579308199800611363849087951712958680600772415486725106644136367203968725324308131908676208460652616944918757778636747761175941278623702760420099297912265005861113869281621644849023369100896473192908999274758314171087447817754524406210327216434130892082985893587696225054975531067752835631912830494896995493216462584673963370676864151811033260446443741519116067558615695244810457898016872524388982155283481105329573097164998152665429758855780528994541255616041543065062640227079861431742736272090146343013197352065919439418627730676085425601757978923818490781115694128576976407748505299295668309314597786441519250457827540562625432448381720274356084788296047745020313526562435938330228837013698479217509614901251508227165561111756299793034959044674894535210197751254996786612753942347175273910587687622434818400538136544523601906367676365248994202785308982221899487639413949979934649168304907618314190580246050304614727465784692088900254870451582395755841539157164011322251592062989707857229552169949813657811383334650542835448277091299350769014472683849574931880266779057418835690923484530054906919475442708246888777598612753437178275716730121603298401287279494155886088814128008951860414868833089690908994805302648766334363089324977841986284307783194224665973220506692751521231573540848602485861410122824385574722584959585355040765624389750868530378846719918112711887122243681485387294691649058823028525336033123124060951643362549251112387355770697701561825549217609103381034992843604067131897708126859945283129830853018393697501284568420421364182922625389015890612288013864250925642488707674192960614053485174432680825543314164696831325294240177047905745632865751019208868070156327393853441350684153216317822695043910116940370805513214366117218091260746579621944502651800456926963649101152229198556187548809997574429916109140660808327399707111823942526450734676479123691459583897535800641918059590812180003157711070488837987572303416659511420583975100284910028307077231833106231340175300612206670916018503250552427385526932457812540140975440733862194082374392356820125383183858341714557017350733530934247582322673389171193700184556126581260838450647497373067521971266334057421884948872372931793165639713083733447421292511704259703789475396272610078032091663644877205424637952049433404468597581993761268805844419835935843578197613384947994951509021592833252161829873379247951516566367832743439866095684112199338741983430213335854455825412163564778004914774614430809867093935439328621214162398279726463829487428185443749701939999537970005844048202372955847879073338322073305779291843812920705383653750257350117847157746240223726071829010201964114886202868127444085931003601943247882845613557833984613952946456185399775993451632407182676312066499298589715744299716530435113959025677691164487671747984077094629700215086502272104669324937375228289838124608598635990572484900431953655431405327081335131198767905596421393210329667022265178494263716901386988393912529702923485385932973699152552754118329733582583421231243912983410451025073273291270158945326256245443933330631801658426202491233787619171124935400154476870102425654602099869358369662137211392012441370823657421121709332854303713249025564062162920378773047159391595515446547123274143270215129446880442715528232535513538043114302020144258877528641771850474071110583540576013641067993088028333298639460069675424675395720492006831606501902307379321328433195247871803107726364856670398257215214033966545497997319269717350929980762902302947900148835163942533483506411358539714800595133055624809737876444400132522813564757183549208031177830849122554490775423836963818916889831500907419371006023786086800624988753281768821506242315682579457573046982044537239523197276530705243082894200108208476640416522586816889359948441329659236122506807583091520519078187743028951680334664736198861237477467886651829996993603606472394098086130455074160361731976806570965884364662463131232610411993288320045604131977218822714126953734206789772984078603022545837008139604146938337910829230859147057819046973296292660049502307587728161511692343827555731415813991916130941557906086812857346362578344857952798271599616659640498336118297511879299869119685354958766241934484391873107831085563263511467344136322558271251046594333242955370454827923998623893827599454473266962191377724374142564058356018671511443989585083023862846951618307300083161670363698434268755948138869787753316870394332173484351967012011351822091351263611376547723549245744119233405533059416520889753136170383443065622919895208244749586859563972524102664368693841031667113609579612069688370899708190822840473937354850900351079385479584109820318311239871860367237583787128982120144799429720487616824537361408152994232069559803583825588973895942576214507616619264184824809538100643645293838063726585257130775252321642320188062935900391903137633643661972370386515125902213259701699827708974442740081882523452011844967961974002864299393260315553962215433204722128010103021604283297896311416728997058085718441437276991805873871407147314595693884508280647337266672750860906930491714888782558584419292902313885683125206089500997706606719285471936481248605776580012004165091649823641621833771581699725228119808713534966926428522611317889024508233266384563458750286347228321023746191500502181919346069081041801198247672630831696514729445103692617511252630521687639248010537265299125432181816449316188107649577661591549438980643480019850227562035005772055085194244111475892394044480737579419894575341169484296276877943568514662456674483566495620224264656009330938093718782896247820603143524109592663284364137035100902412282411578976068955588370736015087855256938554436112262375495981349770545446927386316312684789043826035614390752150626054199401688815234330377529557610149489210083106738982384055927422703088533939253304768356310419998215476640093365489712127716310375658548301841018562841166437341064699642945945139215852867227295045647183039892968798890613041373224110207520662351708176921706935746809251037865323591175117716192165139889724310667355015318686770223786074745333479374549002179521467346669799638246707781680866733398416989216886026984649718239128728105120617896409806589421402982538258285926264877025333546670583838832547344604708292602024425317663729283691501247921769521823735252688393246997133471993035985822778106462893623200636181714717619328248021533546469196309019807782912875986053617756729816850133835441454360517893122577188433398669277226644358566323753809801707139026043815758462423659601631392533053346622113121683393515134489016985309703037604812229660331575257977321188550991596647676740439678949736383489543539259738332661457518806657545102321408522826046150643494072035129460899478417353826001773855808916705879591011298930275958180147544732196105934212883248290270731823573839700556242350201191980613024992751245197306988021863743262488364794594356490353061565850733021423119482931921443995520079569641081543894103977048313213204311121905803478239778123936122810203297019836207260823732907664594866502237022868927518835390046217704187780293612658154522221470420375157590153247521655656445094143610250989277887648409490585644108886860280695652882876054566348648724109727410581991040969472843499299058727030799301533131048826108255426728378176821036888492659624544958763949508816123981158129908470146138636242119425922736096890064052474284040820732346337473416302391168231964184810635163828520108540497345802298185576290743465777554064427847975461884160954589282605398688405178838939071540308168335580439387623987581631157809259026912930044065600032485577143059813659229070160022246783164850803858073920008992850874251600984852796243337758730679071408032409341711530042323752365480942893654531868292207395178170468746052769598818463176031555238149794649092777803069883363952111510699721821789655595994822388941366047074606020217742190595303545335643413221595203733594041725308735368468011511148326906170207630890632542907562671499460080176561733426784480759115043392213093693837807598502463361720722256476782158607864943542488817705722964572436304890647365508512833879322819631969108155967920197757481659324243737305788880649437727076251794617976758878128633651466539347550791150277594494118766115590388220064714424908196455629434812943187731667593996173906359894555845858660730921878901051673276493388768832689377314059861171925195492809099768391911486925114897700377942532630442665431713332951201569263357066779294469963838831698616871280362118943535128090457828452504279360633569609658198800219415079003340426984973769891476344078199238618857569898241873859641306949120358661680058596137027032458951476048942526133094780651310958129327387377081845429075462914044391891422903195937911238614408044420839653338525101945270455450293221895548297298967569598900149162328332246382035758736972943339587321535555910103457249194650916391316130854449942576568512889750586812845214718676593496134780342927275971775956615459577083729685883751554796685491105146660069625902767230482755142145948892275471743298738202100224039542321680658597598317211185348128152252595094218937223651715462673364880904892367698531053075432111338635691953542423439178056844466690960457182018040610555225199487820068745444480446694445295820886573665750506704189303557873707422343112962081344880578701188975765589784986722449643398291564810932934042089157795181387588519011589694233058303582350559395526283855750958322233712108030270557848065119138837788257635191896202069008070773913710166009527235198795689562956532617060316311315508806278095749748391429676330712110953683054197478657798077340606657971488975381353525678338611791277030934200477197950859149586605258804585265186798396993869794352848347959291962167025544405616216145449336911404942690604182441423782371038564400045372286725423557634901931511736733875181530654235194823585193631925419794946550154426829245782741112358195684646729683725512535075095859036871393565262682487177738584742415141264388339261683652214080380547130122725898134247430547052322961403572468032932015611270367699553602331265824121632984858232100616186988387000869918310069488212314639184217970404590477140594129008016593438390506358086154543229811640693110332092714088908563339035181040274919445538626762589230976417796966164273610820593124298797720688424068422101147151727960439867035663800849527380747714015731517973367003826345009164098776079173437144560150805836804564237567528515857631543874806009400138760632976126044389624019497104392246279098526763679337260949656828038512745940128155656705190023707306851750376345622480515624806126504904004654270853703126745907943717303042415427461388090534302778256416769859613684739994845501008995108379656465152032968222642043499427340017385600929439337660219617358190586448326023396218917493429492009486678238387831804424413942581001841885174254368641139188963392147811916773409065950132380979417563641353092235892303097225241120230635125948893817385501034635701521626831245239574142361110159663697240620235190502840548703490088547852778694786734567185395383684034719138383452879019346563798050266506280046956009065528799340333121612063505630750162669736706511821021932505997122551690614918241322110890147439651342655092486580864011163675935894377757605858655836832367052921782975099938643531912486013674681221525075832769146239666761909169357904870178531398193848575020657280049268345228515598865269225056132658265028330947973958293024355481827674795799973589497052319545116636505168723339946254954861035006428605772006623022368739163871964522538868642396626078712437237482408514249772845420659763981576053923070255946893232545265912554140787135012732201429773136029913125709842534210890021502844304041716826144399378911988306496361343783079570334598001071381249676868666927867863862430075613246114001444676265669671639156846442585297770784127930430957342969005917763656979831999324905180778590746272776904733341160906948208525063198934761774158110995555982959763604181784427020851780917824440612259735097001736746496141062725836370031360926526644134862137726343309731498360154266740848847498235057091751599385295875211610663766452932235229928496400817255606235958918657965134349000795577108315444350618424076357079537145987735155456200525835135130279366600524076795960292770937912996712692669694332006314480545460380622469323619303974620950329781208949516310800358869708355408849473087671380433868720395974955349612804445676446458219637539333950748331566290916266002595270121864799002105300074116414356827493657220175866695738484688947152258855270819522914547621645510551546871722937473543169607185732329205826509448072178657075706756438348732242728507040542259625614865151379421850741525733557897556824499366607355789309198337564020646257532482097667709997300630917927917062323854345468751327950867731390651359585717280770322941104527080175511238637721412158337626555045299382991601834938071534506349213494187002062920199230501338459615226480384485308779171229841432898306111498021206962944379364690101818432252170378251065698957224093228608197542835774966475779191476617166049900598376766727802461867719120974255865685783627508656078911910483519438244836569653498216791156328415989629820547263214720568708709845579394995421614060367688987405086049007567778513925101611111561065472277828818067866334049519051496260685451236109404155083441713133133298237165020977698858635193304685981756612132297029993543264599918895966550366371677766290119989914322306683616679576486644327999269373056666618880396511372085086304143472038275011106149322402432123296645171096983017257127582044882799427784691933482065510187369768490390167839218494327964098545918285483679475662568476598211540117775738886698280524047003477263409333751553793646052790649986290760196190264097258105344258722856480078573222042908843557562100252223636143825372149289920508174826591814337826315991975019007932058562449510782981979237479648930717139400369590978445198319243954026212859090474338607985445792737034755125545869821024794307819494996448205543508805736619878912801062788556948305909964374197964272767052551254803753925878782819928013978036028152683745338126634961590893142635186199071568906506553257726151702389814528562594967706998513552923654484718882013731816803230326425090653437648994074609527030340444060369266621951337439875037955031654735057886450890253262335271604012943766721869264126867451784502391304103257816868091281058131367173709702808641896931964419915246840915794788563417650709502167013536919492406485587193046796534137785783821987067807012354018443754633022058336432934037856270153029269801028926851736293308960444167720695969284060833126011093866302827588130576001185391595260890883469591064612631172726337927107037140116229345954691404892754896882278210936804425132952344337918037618881398345872124100290377458963574965547596851015791040007714523048358035650277042381629724202711503624071754957396867361112540898256439192143957084655255880029441639908645713370488343981100656518057079360462675441949434002345068857791939250604271769725701224974680643794956416307522910634154009588915393559862612966886313629239412069870159243318413666247860706325761011987789757142386935865611014183126600706942102149261127536521219617023083521708912907963131971188077910617882724321459725520882025915604375854834488005695542359635275557716281905441978462998685974906655151389162029443654175987548355073992923264308482541810909411073188364162821598934758469463514064539774399549242444384456191136605301897430251762216695002611773473961283566571457627414490534828834161709724852680288492782668412098473719014835552925630005915875871535100091806311196299716309974414227818587272557028150885039365341641033971688740588338211358810195647397195824879677632129082593803923097647162053828661835658697861719054525442678796251891252042496609672333668567592499098030314900586703128554446214626384641148289071722174071888973090070585596434666992316630180971907452711645614314316131004577618884141930384557311844438898722917571116382551776248126781809481532367263910318763882590980047114026704686757589099196970679177976932632149826543383602733728445242547926672840699625308118521315138316953407138243500992493451078546477911211644285374435005924490364937248883891008447712450314480944767609872265102725321621136428113274347543682800749874715301404561451113120549677485584379022093494523869113859247228083665134473470604369226402468238465115211526664690681972775802493858068658659178451711635415538703880366877021165616307911196164226623336756634191381547340498198702113674634235318648968980355071638000313643259077438287464720116508326785498822998511135703208416304435058361453685699407358952622995405357448962207273790710547813821763231208422892647457062945736768997103060862905192603898174094270670736891822457967944156931972181420325265446989355256243297082995090010344939917941511845788516273494506736237888553102183711592525373416707073356641020411932376013175766074601205556121436867201207278932211154844868012278881788963754599396673937920789544597562232125305248381520945356251469023296189302971790070823895413784900295822442544002366326020945824657943479688302851407824814924240998560958638881556344123676365798840509686195775221110247233330915854943287657950656570634475070515179032851272201738818216731455416677880919513757637920103213903441383741939873832277339591472807520341711313735287634370329558844369022862234526668377426424881572331569025132386723539314548401830149198302778223485088499080284018938784488839031220114509556652418158938323219018132280439888828735933259734163780940128582216831993797990877163119625419887184762943556825637874492906370427714737899706589478693672079523002202934313846959681647770992314016719193733106792369349754244819734272401499492493666919444298019655939414663647198816624117807428518053108428680864284822248689500235541980832358900556199711455402844786584067432274665421622437944787511258791130779617906132877286349317535856207663829301435613849291118089544709012089643478222074953024656285011630445319449562364408855443773634803596666684317197385262258427194367889774769102971730179223226382638652802023774626617360879799839630107577228628702379675890248075170742409798423189647895664475423529189392433656231218211740193530636470259486367684801093052509192886837105382424750289673473701277031926965064080953113969448498001588139467464492958200150641970386077893327171095077802866999512324505162138308764802550646266511248508239708131844539053176457788872119109072298388866026553374804722804627740924455344620020644299973332716641019131878473385096754588913639664447510051290774270177553818070873732517401090285548900943921559081577856896939319676777871012396295945476403509202610271515789980500573069451440638402410937168342619043943685693738379619070227061809917708741769104605954925397392293841730178658520048175133052071098348417266434029812292326191497936425599385061273055106991441723844975546395638829948210843276044041094898059612170376447091414467685877372919195827492923474350200316996532690937538501641833036220188307008381834917429757198551780550621491915647941645592276663005245217478103567950683422063010591164896425262375900659538675618055482342902741802786427336858099558045776624762120908173107638544396425899633662510958499124140182108682008306604889636325791360683328963019390811855136920617044247008230331464346288697267705635511815892996052429054055454909184816467331598129602690964127421876246513676044921505630201820014786810628330433348723803975549359689969791163229699978038130228886313166516349065835177661089782100609532281032161381023776801684003019727604475454632216332779731526527403619666565212334474851251163857305388382035475630204545792937859176166282468902289194926531806686250238276077608203451965642763996043969787079270337870071872684041981462610329613121496234375963744858154895659439870513625551522785354185602711794943559283416076536060566213746732390093123318049889633081825118435653479744303428253978011550630645811460916378605570489295641681226913814151180012624326892073015533347036732221018611558197452005399060488646004607267252439797288123164245466833753853946182862206354617484840813903513278666188556928578835101586044342505064709717733742236948068115104986882553596101396178057180101381990405602029328841635350037533288378683593148225853362932613829271292727862328620955299557840392781491696532091217473611929109379641775092792057437671536251559838727291281253464349842590146150034407924732105970991197447729839950814720249710258940824087123987977010679868334142523974841301320449931282668967304315168201105524901710277179299484822724946551950638870860135056909044970949129225414960132000663481908632413176315676609800989743115485345806470365758656211114498736517103100012231318854686164250773409730436504988959738501420943653513336625360360257837804324986246551290560617080455341947746247856771679077208148468108516142317805433132636250430824263422833021656491129897254271507072988787833983176067824099983078255705542524121602172723248954967088141899652574468531357373150351239031425723055485250601003631925323105661745760368034047464499783778229597258524845522554963882997266468283462504553237992410796701533747067143869824816900544206471383504290049776289459659857250532211383813021267160842349366811814726355015529775239974445286057821645940859466813501955896065097297888398081972853920489101818964249114919399871273216170294278864859409517798305127402193617235853293093580564377189487184606614948715273082567257462740791272572331623327064860093749969947752906744270180670042869486762542412094537417543773027120565992984086566454078917008787982578686272036354684499491890464656503047309107065277182656616342992657184401706392336675826240238541874444384637888474401378417663576819256997077709786875647196655355967959844179089715244997699378789195783205941916231934465318683960885514881013272575047876070030095434790855592581052075045871883808528498626912861677160440850570695612175824329059560034687934165371071855541322153976738927798494628091615501091701665899827278213207894110311765663936282550597407233400922806633859380495912622783070171905599952282077690921969587847230276828925182823120324092089334245536817022089294264530905160508031112670105611579660985018318672516520414489017391371808649789268348472385461743813721645767410020171852864148793237643764036738817615206000857901012779376355468574874755790527286414866637308125393085113907849258926287121964974362884067822100007939344674282310509248723824222944175363775341433349475224857916977608055722619040116656596855294926601983394069464886040257255011141413256938763891611523482371176719865194694573085130890257249369766134108463558765470700715531516673005864564635336560803224448392702380107000482205521871479339568183095429241306155911466387375783453525248689175719658456851099948377492729765419997880803118890668755932763830870798436738139849258996948816997337202903581981350906784168102452341299552839564616385638133628986705152703574982505999854984971178329491780827831410972189685630427505524837189853427295718325385499189374101586440744516088997945240671268410717781716288837327689493779873102264952390804499720316615327078751539055090242760467932811741448497743815897150275745468920012052421416229415336462970843221986061777172385153100179222206047840848500971274273168454765571267525464859363322324357888348172701388085825868781475590796802939958990788165276934319495441059169737570677940311460997115107749067335764601444461535526744808777306041952441723529455459672136891275788216497089652084357883696421215775242369323074364851019969846078272836419638311075158399205440919999425166744534147292811055039184038104111365354643062961987726169286533811883812551725754959933408668054149704814262278169318343119686185097649374617993400429157773256280099039962749932144113286768280225901875414869501777040846544759139296414281151141303025194386984380195987209198188236562886496327630101093370008442098891498694821346652765354468590354447912254792600950451671907371960915882780681767967661098026604438911968313298527500539811667027697592863602667244716120556465120723926999614898488129458468158722576253112685561317631578554257697332418033060431884382172516551688957993811696366087651164581040919260419180728640996445613471783636141554359663671361713459242738721663167812581331410683482213635351760006548029143887476082305744022665621664612912078869256072011269280869042143766691574096455726601812097671203627704638954868846523010199706271971107641627575986165880674681214765390440355964573323710619437528282812897861548343347585079705334403372702805563116548196107664404259206551361903793781129812399270783327835573437435655581842447593266292040047847981098168010529160252138200110303081577428361098457580166134423268638434701108910213130180846230620934109853472800374354009023277848722343748582620823601982623823808271784621384287351714685594265155079561839111028099016376140126199804558863876632083857558353693218385691582801915074810353928480553402865487087388111381480265185084902243529890472834778030577467581347298794862921656471242125166767823211074091323435113174215169493177565040745800049328255611007993330341035269872565507679418976932267994736027463654540639183863428246695541628285999780715734256531746976472160984456979724155160191914940329401044943884210262190913013550424682113668714008390153821141185818899797437650023626557766435287039831644270139770209321953358452858041934725952216970733779481376463404497339300053666534198571719168919700367719002293460873293735842753553674063432604477005200406710640964442733972565696947979254306071075313644520553298489694595237536551646036694360833630779813238636729403973099132672192360632320002786107350382872358359325117625327490694236797631807326222125873687443031921371439233300535274643930602027942045531765067888956238050846870887641487410654714207008241186369527480869394682756710164715023786580242003057152650498611454596779453382002919075168867652825536129489674998303249767309938648156057712118679864627774576412774678607062529359462902908097077591712026787549699427509431002921976492089048703402376128645602151882656301274378521816382927521443104368644721746512021349376557979548197122764959374861965107983327768864484736753511804975591760350380320273754841796221735912047092824337155969632917157266232277945287520937621720425747691897994681982628286256069164293180412095274739407479751883929722049479241287458900880971547005095314029016754112172058177027176115442294173437105695392686696900564839905544356475501131628306215373222768824762226160030603685219839838925183250487486396428542050123846639526351886682503225712290992504380299838035603235083824509030839377961254894955003104398670018077579233137546645613658508833560539883511306563837293171438257124909159295939609756836434513410361262500826870554662022708966614657891801458870786495864881540585213896605526073264224487115856080579274892825281212015179245759041139156457432781467970414412401238811007708772488270065229804123961668570644493326344421321369927209954227444103985916304926387644631009627459366710011036682802209457618941285517269245835961472738495436982043556557856148250228113008543032537064178557515573657195683096161218653511508171133043593957107225670479110357603492576060205234299524758519731802698820440356103411586472034138999308513596731337322363092540536678406867323680493466009941457118675842562522613204580754583284375726767387618056792042735147388282415891286972648196120031800498109106762027987352828479078946864026725648916003410017375525101339991129772165256318601746249027082538743674121329333592725906036308972879341703141492853053539518855618571475201517296009743420443976151986189616701853045677120721990111835890245041007201669321857593274745881436198785797462829388785930505619251881628469890588198113439762427129386820116057210172164317725189380258567817029020326909741430328237863097026183530530998395213308038007121896296482973464603726770640925392191251035061605571169821406636059174855660904006547547951823693193645651176426932563723103107113056100654736100063578731368322811669243082278304270565602520786139644693770556015797787139282993359904538973873517161169837747373103671092045229409556808439046902786589112062986851556570774186016820069381582445689976222614708839769979552545398114911583339077146172051037806199454867418524992497744575839171968642611209909486030111658255528324122024400626313116224993921934013582394584174399748242210126284961112386224345973132471202639944398407734203643238857562854663264191384235366393402587310191606778394537638827822902752223109485687694494222223716159904593380646961877585767214214357384107577153093542582170592198813805522721250301303341284834975837155355347412577941221417503243375769228323784110169055462179232960982744365115634755715177100682721864225523121120468514597317901003517810291909649522787919876666100006533954017683813304421672854625077409648998648710366818178693802595061366735234573073778477846514268133794007705874417015650257519166646890129489956968494143872242018760359294889070729656161253483512238695342378044673686941200538007798382587349926344875079814117650643081414780359520572018364915296524616816643892990323972040918360850130409478023000507929333808201183374264599692770559950580677195615307723348199634415050992970940035367099323788191369918212537414820156277093723072650220434003287074537884676659610606694030477742720147096860265913020220814981535898421968967978444333877640916348358790702952720277993968490244162171792351141218467773808268036276670496511103359290956941234210888397549878743202161405414872831019421715853744687657908388433339799989427855655302012190706605473778351266567597333004926943738086811061616753558381829567172288440094614958496140744161100122082464451533049611797852540407983098257642545800260717268732355630823957111858636038757840566399065782882517154422873798316925014205179424650136613856409569084533892997638719169233462716622942387379728750984814006923030714442296987951536039350801407886869424031053559720232578822955411234058054642192719697838174929186345016146290090021093134276122455006184654977508158458928123452787917154157871920278511018937055540976664017687013995834008191082900654265238590163538436510581225884712390243757418183510490811603234326365649255687441294254591108309311208149796630357432004058262116618446026820844391032399762396256216573152133350962596383279452170753575939917412249195143291180412567880335090644611718348347266813506143439885751551098864580640842491280441197257976037412434238932251538907404127234426977408522179624024461230941596986622685758760475768111942026937591620140599725970625113879472982919250590225052255844034346748611154067082082550016640445978427106325106850645771227675554909598973832557115641155230416406614713507176885954660970236809431292929752343935991722662750660403352604202811615857434072209543289449745623509705635041919982135616312167700662454240873134483569064387357802446577739224642319627192602193256366506192351343126600078628510605813724918690775951892912995734189209258904211739692422682954845745314292236126349528709990670389979534949513675682047284848124599293012380610795792752191072271049383511356423300352350031950533894854943910896658771540000781725944058109110360189792967687061840665024242341803517769078428351255357496311606211086306670714519952705286079874970201823501618774517844173226469953173679813689075881877036311410500269637107780380423784346854321990878534655746304334453027551944448901592597678179919311046809458761283730893975511518508823204706563833310665674450161473880060775231567080424189769542895681566797499576029478414635503119342767624168812384334238445549062487376895130158962000705651500360883629395754596488942448044251058514496349871787039112310564182476025681609371217592667230668356563726904376086633208993091380927727481080395463038308771796796294410665952563521636932053873865408281013768438549287040145102527870964772512006782966664697584108863305723406347168055468392910588202497482693537816299669257730269463547562102557232412529517977673705551490115955514308397608227687806294745213376144923396981014829421363033227292100452744497111884577203176909456772298004243273059613536207147248930633013638290887061893796886373126696801913948475472922393278028851724441864072429213641345231312883080464389095893212264003490164716570815624897908456068832222696573758673454253369323639437978576471000235568636647823048684537154564539092106441279022905233062390485386025681144861381024602965371491458306274397339039080918290913168626461103167737431523825468078160845755831561192886603375324240841233239952136290617491868878500009436862390863292512130937824576679476868000466752003674464789038936058801586757725805970846261467870409621082344756323134698625336205890895508392746790171918686897649259255224897566252512873446204025627145203904815160725969959705129132334523370402818540119231652450703515905255063654922230499164659170786363978235628968244258505705242005311497487495408021064368551133004794734974142990403505315332203748597007479036459322751658546411961086399026339250229318242707986448449793572436504860400318173033910565254101708145917473714388770786948383401730339119345111860621617169249806520012753014587821264666842513216036736346246433615423320197473539677016321041144559204418116929619371718528956673257588638912057706621978511316105955660089283707733289723517505336066677346608294750071289634938189695988618774110364235216378692017868616593513354791118416335030723593634129138796932255414325637833072003569792418052742858850735762005221122419945559484609640039159482154153855369659199285370212824973238456190820948302913634050516513368572013740901009978121377810923469414989764142571722162556761534092254464485749113273844254280046837425846032016268657551489148252975513853486538910311008978815987875800105623317248273388965888083903777451495994014971918680938242895535740021244924535962852676591643741446994211909235505311536050362844864371930441499437547555917959866455229937845012993300363839140847767900891057040660495149788753154712500092549163565992709924916735515069031534206189785744545918278594355226578656298085769587764927843019203193167551532977058682961238889512972304210154396961323350728414968664775874861396270510212867317729301882662739809908314448408695246529941202870863489011074097232743274722216209154257756566104238057610393827776564299079241503461628217555940093262087803062591781495459918953945179574669403465023832808859053459232350538380942859808321708786561028644061998179195318952700730347166171323303070883316073871067310900515219330778457439486220876447681947517853303262657428469233539326337354385721322360961176811408236346928329784693337192145914575414349501586497867373798350296553886982428389148890746099679487325380928700446850966562616251913044870180988381977880369883917336469195008845350782362560561037718932813508309085416176012186080311415444431349394952746212635085379209325446565144689117593146945863566538543714015793321809246564006109090136807363620806967331396827348192738565760273061315010238210535926360383212767133131234915823389284453111431514001323361225730612506010761134978461475938565080907121895078244560490887713927029951169738547309501171956192695521694640530207844137182398169316578325584550683323491775159020209117240764361825235914318316962765194278310209559559056115055393632974497325472452474379906866390707085987892247932749483217938498579526097049010650659928327887681816068419731679611420602796639864980687410789290443003659311366319819690458348790658329901357218152122399715987991279032006675066443050531835105265124200235019284516990640598720226660313658962154235517977063446433475263740028431040223006206252648913013359234440842231988113340991940589372047024419067077376276160805842673064133002887662215857251189617997338975887286841813723581507086566453470300257915639987683119460827105182014291859164185941231424245679190962543189489838071372314651667113722962031557199642838236816826047590995814680821927721023939857071586555966793089344705530350775481494076911454011200849251780509614781239994915510153736099164331592657532447590878379292632975907485136945031796700682169420512884906839605401517629380753316851914586190089106484601972990301967994006135064984997680673971970527727175419437820928883590275213251129141421991594516083307909866418758576041911693270414459200343900315428378706700515050569984482317958046017851501765251392225472290684099583643790200279547212655744365685627143329636162870760845721225332568124499949361611505295943351547672764173299350229217160627729007923214803379263912233673523703716880353419005914767056692760983520686211670698756314539007990933937601829886789824504789128848357951025954493172398566155813481421555405445207800854035210752939762141970355889311540018084996866031395798586573782467454406528640176814053851204769675066202225352049709414931618288610722314204717779639443445025172640818062773577101321157895265813062489217066650236284647503820272413415574906509925659107745993563663749112117150491009377935861086329268701510755710134219010471366167861484160068382913572019049596965183045632365833729718117230629362271488524629135430353073387412173125004377864957251858403752667264737498529118309083068127244545615153407284441254420636829149308290250451693867279234355393649857709310885926210491488360762390558827924799778288112456873689256002682304059143744829380066335490026239324134431577910246127756766796820742348461715317283294995823442964313174607619160537420282062730439698423537508166131905604023823952846956756990853557258369157120840601444633671267235106754674490286952058008852060839658364216309669565875959935963158546521495263197061890101096283663300260653886532467872063918413891700915757029107065006561777457563074813163448776949357210028899680006095915035650688817224391884783962310103636800929915548586232228758402438413799476907555588517829975533355932422400291324697535507361153291642350294436110406891488051364154518634380275905667252397952273567803583491277803583945552578307977515227093836855927577673908233009734936466585604238985629914295474075299243292061038589422184992261953343420339506138155904640628547448960960692350930373598311008564086846327104807582198202015029084493324896891893780110928497469887406242556863723287995543703351331902728101307059678567996221662607412695816146047236793654133533360192614447352047798254551415858865755507547176176806117983676726365531508113592954324055228020187868778683676809280223819194483695246960779165702244835497743944774631492645187337468230730722472057890918431362776247508289208522688600117299283359932079219662043395260747469357784341745756883742997006744797510665060850957285630955863147123815796048564760868428167766863087733948671122012724324470124110241232592033534233027188163987239553510144834004582838254410499822441484681283817462029379421632237183485865775821446377846733994588014765055979965780985997627859502572352716087551981907332379673934502472762541358157758176999183892156930154889887031190857551225632517495836375244916751884175125037984547286075484720982719288808396929197917298210050956022122083428113787866986833379721471097269936899832322448282747369602077170957917768019195972571797490107527056708694515654863095396030459985180331740998965014015944666686815687931071065047350045721640166261284297948564509224898004119405895475207494532064058662017554733580073736851674727837117140460912001888187579800024179070717093507172513239094640732357681012462465042044616956824544342739914587333694562445088188572236547966501302538579593832178079904571342773885342535763803227996110691382678704958879688171637192853241590476383165767579998751770693856673406537893009980688077547853379812966713027257640068189971528968288971470935448679324835926007739251344077268283736956028514506882492323718737779281916270305877317602462934950246351626060445179079654263695807703604795392625621968931798574653948978042996615095745989060471717934816545242734628508673885874606219891884044334751902712482994258990706504388729741823288696299873020721764003976831360013847782761703514174223221258692218810611582629727318236503265267603776667509238406241797837798800544704001144908647427603962449859840983995962258770548000368515562524217717732504644958771331314164627588612432438869033822787182534021265456301914847569377214149773209270780022918255694642612628565199611936360599269139089119356709716036157151693926690946970643370567516472115001425277638171722700590932939643837746457220446102741693457096507190758668410306646739360509632380850769968140912158021852576885119623404324824655334386385580977057746045126422646937928702814978025066496175141255533515278482916717032217066444487871715699104691676420769254103322301707681158541007973678640117397307869314745442561932654591218340899931125377994743508329866154317926993567438633294783875027094131492813383418612738453784675283643061154224256682540245874293417616278472819726461690569823611319110422041314578318062799214925164285933810380816078211889362285270479865723624009787738641237319264669706531571574829067087361869960646231989427929933818420777186200125297998523944070789064414447679072777410315790049075816746672540806970700014438919111324603858267257226941732890795997375784504996648538470105760201623303586093309647527181770292516152318656137930698536718593999447786141015047088324567182942766108884852642968690277820726388215878491080852059073816824934259052871137234802200822253149957736952495316991448481811776147744008060958231686309631082123441261995202417350168579871481873848563308636740847878976336981279157762787760150386360546938726158741258663100711173741662069568542725711206718043038198908018938772241783468937392007797519340359788762790517433348457805676508617100407995450925922237818020462300496253781102946271157571135599515403131411187753713739253892388498506516764036670513483059849589784875321726771306595088232843364632008905574045188896543751684611755947845364365921878297773164361117406900270542044621319967295983053676280865826715273068696775470322699747260920399911967993371533224915232583665421066854845992201374503286110488518062851119231351542444958610823993103156557102021368753755542792202732734919556861982721033890439618955596258895398910478616721374628008256996982238673765425569801695267641247669462911226263332557324970920496237258685319130812954976969912117273264125471446511405755127939357540981690834169920376799722306302716866977346381056073299315250797213772376104567846593593783552956423017336298905133558971827501195297643321083630435597162477698608284142044106920214181526089486530413664557566179919265771981716679190501040722428930582494903730483620929988720442734890461289469672042147733075205819019712887383930287089562459497749362936670896034635413859010042142244157482407417342225662362214937203395717543535826982072245130812788335136780826196321948010842184149267667040334559476893640481810518982637272895714291362651984396040085259924607243398678279839168468492469455852594151619043135879153258122043462625485733388804550678007790240553376151716414003292199410494837440894314246504616856191489036569434642717969416430683945388794171234821894954088091020940692539167301781157809282036185200895573135460477459350006883365834977143808506260844003961877482337165824023827438352741740525866800150929757470372308666119947128649721742923902222568654150640725576156322384424258630504851424475678505797186521824716657540306982265237153381537330130757385027946821520911303719339745889645568527123185935408149757229880767358332224012706970720799012198953042341496454649715415731448091928033276963985478472870943871599336160400179419619189679052301072277319803357202909421326367498979638043100075019771656340226482551413496692258092044372636906824233822714184326619243365472919529343122681708514213425859577091078975131074014642852052006973593408378038449985979048277608144549659157145178205928512807969023637926125548192406870340056719473629381854811038337983607605845048022902469759479199058568332555591866313506760808521870169024652170863474646292936929610449196686527421999827730810846178701575911521116299783625704413225183928640053380368066735596234375259445050170672224587229298863475543470264237962063465531050603124271066768016942360806748054442633579438899427868317954148587394157406699600566264624793477981292911461026479570490736466775308853696579761194889144507475207609810507139630115052656073971434170709096792929296014186452725223307608011541227844410059758878120573306025173130647500205364292068907528838541379549991719846112396835209211987238579106680745666755664492038755795061466232283684483808925793555039263645919688005949320803007874350062341012573784028838072394002580711385639841861445810094466191274437582184418795613998422816608168824771016117218393319422466696151924338577788983684123998036621476706379623917889492365976327099100090199341111372417489723490848892427518666510290487429877996293589198555870932880259755499728400394424388038955251903396253321511818769753153850800412573147467353018350749679158356765551901687800481457800274051288557537475334590299788156452048053426236011868778411151352810189665941990753635670617443168856208313495742771065526943697547429063893269892705673367169811985094503306135967463860351327601857902091473395718100079905815315723130372307547669093752817038868042572042298734116006805222822653017649187966234482984884639025722572335863326050854295821079617487887445748195817525258650818182269900094047422528537847576206385365225469146682129221442272385393152530625853224644932692167606286275194164619364526954804240724457627323533073125208152948069930858678042134197186969136437880104783258751739377458702018915576392409417382716993869678302561046614579156390714462230921549509032311313026200192788731775714772310247575933701710141370826260314968838103534057485781312733124306762608276251953765067694562341448106275898706952610628564673100822584484112293399956654268817198145251485383741174456012730579600940488277877482007673164016424795163164732291949612035536068613849836772791845843733196542243872987112922511700722769019885151778418096689144372720926524810314227211864432997744762688498962247983625599557562786591891018715671090797176272701222843436156290097328825654667041761594207702778549677505101136923513393035879959713085884776991861425705365993580824131287033497760796212642567523469670281717597903211957684319155029504747692030051603254528550673673382914855517970372998241182442217201150366580319689234832890856925286425202790335406331777033344933019182965474764171161824663427552977515318853010385446050292448764404402520050852525371217246013586077768396975365543592095092753248722741925002742362928912759297466836760569675735414262331805815527730609540401075772908544208174100942782134990419484075299612125038352384909582217272688543641665245298169892251306467867562544162736053075156476449010816610168827307508261940150975487907892505652313919397256593417360758862966969673394446894293642179613201406899409251308993192471412620827620129063446871351476594918772318518327555561395883692197162635894125468716617207159402311161209520357972312347007408978888781090200712420442538170346878365832637741122018642420452966261287207129190903075009449109773817796501599084242022798765129318892292115053733148110582923313535277406668815712151029061052974898334333463906785956440210877947370606299113747101979060590188884802374523879357362585323764407872027690762191493945269032255164974724685153982214116461707902079212983824547811314224537526929024757322451887521862998272900209496892517406981561505098297086244483599962329940618449197781409717828059962913348918262743033992342057756164763965381047499031098621184946456972657538657379781684134664719123898370496327769289168768539338039011429863591427232336761833859829846866034714923618088573572969829300932815163637092161043465957747982648441177790111430236786453467494501310326420306246441788295084084637663129843722735601520286945399192934583726646369254689533420217418607458985497961286179408837023977005998521087366185943972839021191122444209319755732805943664306570406404869267610267635915787272899653062081033659431711538502565554591705509219971401585206762107322183419839286464675188581574143291790089604223677746407279925058477087884617291667607973863617340956937000895793937042933610937488090386228775652673950500924832656504161127865109260097590372598849550807738155837666132747426856564453096884859860574457240433904992148662292461325272478818995941579859601806672747892328070758990531607705328217009819568304557980332102576980446659673131871170575338230604736270647350780045421307692657722266730074414080196894972407181145014897960233172655637565981436765878711133831260857888483110234822107555953680253330978491783410737896800853829687647113777881996909355516264145531892333619675832295893402330010152815939641589002116368629265084434762818558051490642546659146969371990325894846219480272943803654998824188798284543208293977737184850757921956198029478962936544015204561136142403143031303437831869460759663597581714837937230778913526905681753749297797424175578461636858016603306662147441788386821740172227093022183616898602661840492875867021449095549138592230508365183496492941855253695294901977892644271842221803679272687676356555294819229455632612534978020223790756785736984809977677175568005471116256457279517871099668119674697229482995351053478693546680765886788471790086588933800612472421498755752083053428215717825857399376679964276782743399678943583802325434295541346566975978629803310474228011962638250124060202664947531625286465903711178205765853731200547742114296584358095677732062856798034338678834557456332740432781759323526463242581702991374094408405558431679672214497271396778941448158329279564908545712126592922186978591068590397315551146980297318616475360133513926326024329070712269987444251575962270487529426964820778937177958098459990741548572364101089690117413451558888835554308442744751995373522982229563040971879713753273273334580241144700875123672827566356318118186366621414785994812545147109187696166336379930268122802278576167961820942744711019256763705290490626690791072673453328026574131123974735120271516431547591281266284785911827331668279702464148336416188488241154666110727814065542601233601136189821210348172946542029240361788096002788553089052242033284081630553211964988227564811249800761086197834762470519221072738171472910697692461368170569167046970880799219701246022522610868638555169709045863156142016454770015027325300759533799355774710845920117393372942189214576517227270961744549000421127352032702756783785535643570136578561613323429624887081694145097145007071148371089996694401021226128344500166020323855536669539339753575686528677363474855325579109368778276116288385325462557677783258787586129114999069379038735459716359614339639186906148336173942165425785929775619651651360134128433361587658314954097243128663341179095984970664184950575244730983660239196527292961443415564802016812125733133349784336113842163695016148353105855328335404258244064555431780435859843014976620090892522652232702841493795215655396224684424616022992463822610312595297232960189928044933807466650854378934023811827565998377180829533607059042081699528911711186381036669949337905556202936565111523995646470318761453173875927481240620173594005020309053241841241909986238623682605050447923491182110027992810857624826636009434844669597850512645135928474015510947476612903283943422158158535402680717669989247318527435789218422021820354764052906638568673390872130305345722933090487300123402052743506406978511876127837641981269244808554742327905743376762958454792968816341073592603766795545245909641792887299130888380798838895926275429683857720762302714386875050569715569676101198669145570178819081983428292748245486231296580094092705966549954126934357964036265920223009200196696627490256773627369080120178929142794430693682886480068777456110436134631970571041317373066162916000683894554578387297368443970327940739077600947398183173147919422335126669225543574921588215990820107311278468555227628626250290309065171990158112997890199124198369201419407168744428322086538477427013470036548984825684995720889305482403337492604072381267165225070997174642768127719751146239170790471034787378509789030728730275388239918548072166976275204315567086255164284947413829086382949675925353109755553842953052774258132811500207486966811737849903781356031181519582332201398606674876718067383367672885915189073492097869044805437499978061062236113087313392638599372347487867944252171855349371033723336731786959995368102446529928658119406200339452878737875985053831997096534979569151740500525719293192821679783244471371768289456087839104089588743671734572702805474273086856458892712005589339109398220368931589810943561611000753510347940777669632236276300141375149663582943464487765415755108307436122705959703068764796619257211485175666378613185503022348657714838456527423495760281328877167527192197898532914482706430060367516950427099080724429965892080460134675201690526426592246499125186736095524165586319397681008758881188723278490450248945763970930499007102098631256317571239992501014360060601897520809833907541564190954539698704261805313937897370397189099464605569720148781320281287909087913853899562308794123165112943424801572655840995862115480403408057189528511516685567155972400145490754675674459345162700875976510611168670996931927846628260000601402653903893763059319398390408134604070055766014797532645354516694569262864133563534329061896343741366701213807517980255876513871670087024219491225707931933284394321454074361275302760122626621604242231520616501532824376877268559973814193622915862517113265333773079937659796349787881960166753240135440359393390601253077466781238463210671032533377843781528242927540841325177744208063184763125268133004179126786681580499167985552880150884266090893823851734359351347879963320542480821540536794596239879108905748102587188066878160978991946315302544329131594349583365973523092811537982380328056727989593581756594521659832685370295988598219215740349415024359889306756759160663152778806701037431703687999586628989622250305756281242713934276495982849081238061816109805210878634396103923794952379753905368377544523137882851428749270996725027483053349220320789788436442410229565048862922022455387379005021641260242749615999301358405287680785567848254945649986454258072662777404564351380886046738967356791527668196392789091566669933615340469912781777961144685302690907226640288225827627741540419863850567005219142253454069402985177418060719302932549050298266098861311733491198169032494578248583422220637302002211215498271596340301952803055605367481610409317911407935549893502158141480517952689600590989319783990271925234285020242926022173380545718148859243695804197246709762234940760402012190184022432089962722157917230224311951262311468994389880316445468060937938545288453132946127102384677302444128394389622958982224490562290480528139121442003138046697287613774568369381783888885659984707823592240610591794789798840635551652696088311260264410705514198600592144403170709243201734045880900083201690610549136530460182725575424684849549289117073950938031291408333086364987379457074179358878080116012901120928400777641822030433483622029217256699347737174969611647192154260314435653059157616054965218744024969103778028354663372261490448781708335579678492283480684665432104423458225579081631717233470373592009660661630357572450429646611958369875987156369600888425282756655097085922766260181633514367391615287094301895373207035267702875024653639721271290752322747071486890502590528503103810276333508464545962927271073914092647477194748306705213857366950265277689094077343439222710875032813633308395327222340911331743144148450435259148638511166288172875818750031074918991666427193573519592725875667198111153535068349628110263295622098760738880075683679070440738817489250257827553251584215281630031866395945403914807598045117442867987587979711345424862634330794869406068779148311222689926854825104897335918656323308917149495503354247897020573736635296334597296206740487287998946362804807710387269753733604192903964546426591683704960927501629557691648669881254422289745478863454354717041378064491426485624014789024174120747862817904826486492552128375085290539229385857206261756026337545002025136167063045371363877894815618623875937407644452533335837554780242455770584511534786893750085316593534977355006118592205112797046584563446539204116992024206831445170908037983188950214409400347005238617319713571412587442631320844585780451520452436383096004119605754797811346933717675314928645589425387308619205802790604019175472534368086561805241463914806282779083302473988178736607892304488125406402377353669531373500297662142669277378186610043039073718744314135981230927891266984955475274154834106344980476940729353972533054346045036115767182050627785453535432572218815194665870396711644445905020814677447542377943916376788676687563249733972926495311321512658734937234775258248917746727547105195433734120186661029935318535981282714763764567641806767819465394534385527169893699530787412653793919274475238941217936684056983478615964737408346355890952830015674395204852054158801598450385630581532596937429017246752017128718874968691952119507162542487929001720408628864140132700382558083851353975688164031937407137369289998296555346234094969094649808239540269733710203024202981852517359153517334655762355215089731606770504436472742199668460607628868786486263322007703397489295224628047522281065587735972713179329013229315031275630541240390117096609342350715311311867609160638058655340682952831696736360127009147685932644599272803811177204384210718722083208179759637776075018184104414454665506586019667131585899859647290398726598048386779047890043784236096539783093951697056039303498367382122808595015853699928138496170444644986721604593335178233946112923113560967369797525280550835063188774956444038406802419688154416493155195985598461111297720456093313239746047782738941382890528932578895984045005741302593462439034919647844558191131832917077696391288363244181006957894659878580069771187944870537101637704119483480288394653199172751490782610522485847011312107520600277027699318877384142621179758289308943593220552607917624989293186282760208974850037197858742350041533525566866617562447585335146780151426938161242065181317669585116523500735125064313580352692958069303106901045296471491902691109113866607075612004041477339407615833285365758639113305444236215133683415087032353466921614844060911971812853480796168099517904274934657315852169140316035305825268321538010131720329276488769416248882396123147382469897857222216038381693524007520883637323997214512407310874621712670582261010943936987132331044003069319582043416634227403675423630097551990363465759486254911845531241288209777789037603802281557184715668404885272526962544362157416453769661445120195648594332861766331533315903681674759233828154330559979524371112583113373435075948333069917051848691714354435716482938813221876773390832066273596805761542669954588853584158354071958172161573054580800491356792290542730003803578486473741842415576496872785937521412136466510388816265554363990048625013098291703059494694522283347617788982923447915581248493254807024898959579321950346932295327149053870023487587172862554182613931186703908377992991160279861125088883424627660246084472247338807290985983407969898528123903284094475630542449866600752427975967696015566525562890356575921598416612887072483711193919097150533841016517423667104748385224628511240188442670790065098696938275352945786063178681523254206355760813233717647718636331555644406313745107726506400554916436691008171218975120272180628352508246531939036568877534722200910552526703178451268356981407362022738266710390628782867483370727530661930476824304361623764465298078798894473078447490137267903333981300703626878659648790763859966447836527413970702329773316613218407640152788554677560317045548945551878591027112620298443303639546938277735691192126949867946107776819640101142031028953187265186968983645968929158172459034739890255240580375434283673223235054203741131999246052643353880590787975789862445747347934778564274032770977901923020804294239242959758816187431356037668541369345100520220457719750179091804650496419660029416157094113875910137880103192050297001277016875844814127630679330541242182160639344009292253297898523939953854533522442545871826089430077605718417031021690653816285867053130592859544736478318463209174519501880968851803465714484870206021785194340558238153935765378683036754058353735607688473501404583275893199566070518644500546663449698117223185442446882044227140462464124636758310427722053810257265895268613103223374720556596400143130677665011538536449777991596808969934896195297431255332475130402366807867323169837838795318633122047067421687394444472823028927841265284746924654351892101706972548209782548762995064397254199357049656241739157808621869832761409201214419429666605004790576596119562649856016940613034089878722174902694089174168839100810071269922405882189813257516553456887596578788667569908638500822192504584860203115487788695864086290072093122223964011720478205187291353685126706967417437518374662314911405163867142551285426155180965318806458483101560482632508513036394926861617243875850132235949029212047305571139093847943356623064615107234656639066105375296002469451676902580268530511403390451491493661925942648193010808258565383653630019465809342424560884329255982741344740997094217248552334211772403270629971002269459669004480855374064133740776631190437728176329310636145116354474890562945589887026997766242059252409575346302450956318275158361746573330017343053920933497929025308176092371468399946420688518770857775994679124575043315589333437012045119093792055595332863569976880063155304358271548813342853291947079226757777710777739739634883903698009702356304420688644904269418727915613520325260455690573603621046278393505123122933191977379220254628314703444736612666088617199754419663226476536575216458593615628314368631088342227242392821458543065390686660430101150992159498011347363796131826405591808576217219434631085368217909067286472383092674519440615266047362477529619295714844139015617421221194619739160584907648245450280516405826911446254851060635616117948365183125380911137172707896421808220352810477160715336370221400930273471039948256020433855353007744064307127372544764712480487979822277568389128874953521961545316056395984162755753972651216752498573043804962007196799645897157143408806981238354676954158451290065226244407957969235866288429090614854720501322485663280061234164957104522947545626063283060363424794143457570378057724491042417710957317224376408606209220096431560646165000441090637330030907416623708740891848822957740475117213748958217454754793912795874080799581934440355405498955900169242028660729171605629783899662351324022685322855362395178358567688540866609455629679343552051633529718373730611219782708564134856375018487615051900823451006226000593355557948138106841571289472314344868093668436966544205149700452803231804256896301194480453207089919516611575503202037518322309980412631785589238220592045059107487966915405539242020688129654690183379938377335533353351821799615669221869577107734546741483520520590485618667642848895970782227066317356476283480874644629129429619044124770103077237041306141707977362840017369656575068086193284117855037765008435854118787203914512739390249569636796208595685145016154791443815897493429940667751754414132814960454193253178186680861149317727229964972418165372200247061225580835018930118443321607999511727625382207005260561242225728452257677918094455189364422422711114055267083121478136286737706095706456261740632648723432611655712939510929648503606464443565903142383736248264534284359345479120831341679572309294270744885333412229661268910692102612117807956006561892987933984729554975526950257219146053519700108383400466802574888963583829173615691183837573983196579273378719187269954262859812120857862905986983334941338513119906376004663559868610740525395175079706421783786639465761575455384026734294732645165743669861352730039870565792184350753509321909340820404127299015764980365480284789799043276937725590870050196038744614626273428852273388306295040656084786186996673280935988274300229230520423431315274584606881544646514257166912136323876122827190859958872985143544923794308832012221010338714315656476326635480454658834975199410164920835713073813855080327745209371627472558364384591438406087177713843598210519040753880947774082143757441722515723662959403972064041853074658762519582607553556462314706365702115123174194666844181971283991646429504155891301114974175295775435295309577652115560882512056013151982561921149126799277809037993854231497622196849880745481448341306118044828180570167877605518766280898577414017469971857637744827177190005165465204669496488039140999738509548869793608970325231672897314537855851007696746288319775462609510217704227456055011623751487489925600246705011269024414271315673311898328262071902749180100089282870812597846987767973872460902662741232037486842358861297154444551677887551806746638207683239287508075213411046717777707545936961445304762052286742095664208785305495769185500114187200085637322445229122705606755430924559640886785438507979413120434214210225003357857463995361736703208876018483907085601011412495822261238260317038471454625241358438554613918525054553211359598637588447162112564434027008581897716279979494624900269639287610389829972030485014774616434451435327318280736628667035453510502250537508333343042679244943084131972571975133927865478953593987375786504288540952598712433128483286129505567015923749396754454184118262158720650654324131875600113076660630897460850561270683512856676783375966335406648660067901845453958770109413199781174296063832046594721108332557170786141988274803550378210074852340602274555455067233229488241660736819295837803648451204032680584830544680902699118065163848391452048047422395994996574850625917300413016092954699036229989533487478886483540523978893555222498675997741991536268389116587712316448701883989087215023838589637876776906373199518767331119823195581992173777403115582290168062982096659841262035486563057570173170426136307178857809767903516964034438730639177119324161519688632587893219745382635471667119547128469451185690451357997297371147835140593400498915074277744538569265909608905924389393196732969828167755709697357269054496321270742401866032300138865143561258459591254959202354059264727360749569849090906255771085184363471422778162708181743578168999924154159785451849584053698379588550052613028841849833564042906940108020602590640652411400483560760213755005670655244128535617215616408531787296713898849272468475235822439714582992198003303341727570343769620772404853373751718066151680219629610144094696056235275768868081611194828913405438168041405369694941244242375932446918276624077653476425532275165516647874561491734984530250783751199585935442571823897272839429153596505189167078287715694362636495936133941342166187459411060129745421691418192303411906866361709311444500821244409305688253246667912918013067871013073077261933414158622367575125356368120111254098355429285858408539515758323696283985819035129648648650425455897349109650831291535005310687315051047358583055945382195357413986022962171008947081892268400349848116346039191852660265854616629087567293464928962591289693761176288045349664124076835573752180768388414665470286158940626078171220181203574993170943287019683093462707207760217860192623882587236339356608893734858030456499500589120641429482732602516070539964112194435095890176082518953213361393125214494928708708577998758940400527297527043921106753396694240976346945323599492149723210230243444593144481625951520041958199173451592466756713469479186567132187999524907003935099990399566026017983148885174891168566735357566701791933074062907596818939167992769785054301754744995969074268121322692569863480808341475087742765772465958899520314662308736673526053802827415583698945770397319192386099017485935367147949548346703608173520653864834514119323754832236935899263482962871034612975079713179418319866113924005483859113960466607510154332635582265715440313690517143851245470702345721072610568679960901261861119981109255401611435445053583466956102906832556134067006898315859497870765061771687357315564993685293054729339856953460050438775011800513408065645549651609864748309208089952765619321305666973244531810439344395950914894787847788809651807221691921077767016724400427584913233531079203586457061311900126527969307585628296385157038445577875898223805717205411923117130781802881421878328749281489277961021078280020343258074317120678808975741317503249883663739915263581979807148874367087021658280148804819411345371083602055843309579034695212071097595385888585898726400361960576802353635898738188422302620333229925847096121998714552488870006827268112918763178635694471948952101636750053106047443472477158172891293599095018892507608978675407758519493952361637478636866282694778287651742248629267677605671718197946408901551692032701529846847734426057505309974631744193883069790720714261469815540514768168008282246029428033238874945617365249490947526366339739197549991793967104645148763983293417820553109300366753375871717345654662083922715264289001832939465088825052209226922046580301435663522360376785528575101965747486573272733778905838099344207709426039543085211089470247955459305852646295573495063035775074662192162451717486557921379072553088627632223055600751090279481122708163810219042628637782758270414352787186230064772943266719099478110293330907613613571767264058301507856781695259044737074586262836347106681719018208915901588889190322504446231631942306898865382401085067720616202792546552392406750482700083269661983055592510710072222653552593769481990776956265289011947672929918698221690407489363628706414273755640911379006214493509202598236394519432006373478480578837748123334258244548561184877922159483251813490267663034629535623987651705328993139698947376646928996044161087484178252012663890757069692563464518774608114696325780212308441391361182631655201889185126355786797467077394863634046914503551945871330455930563743069058761275113430679530081206391281410259553285875232275264902396264687775486936908087435702747654854585371366192962689290731033534541582740754397254677078343137388334129776067612908345932683759623804357942838733817906977325200069298524015918383381931817073026001556617988185857648417781351690483594889984552398968774617647885602959602987224709297546471545632328959837762105491773819894818054411032111591998648940892300567735211342112303076189202877446687019657468463063429830447937829454754717446501397730102105949461378938130425285264887899606663366451174618503584477901022151991001230702557986953529759366132698513991338929945448923814033338287963781966846575023045034562692876782508335433044201462406265633480152998690850206647645007974848218512213008295257465070796395828271919311234653775803989776574986581157240410968600441048916541655270499836318037906061545213040081001318941320228603001691195728452513134287730044684033018596580198778899269949490243687116685716517185076992665231340803195824050970686686983374420205142749969207932365840111765537199315563069068432138728463841396185256330004704763780188531785740952287750102408311826322861650030753351382194101642133372332912336410684185120329040074831683861611186810483893120359176490793006192413120304313381130456855462332176358000850409477284259997711222048523027643780228539512272098990758055649867268616214958681772663567540572241800566086701931360117960396199413715926294521205990015748116908029215931224089160118505267697467483725672502717335441696598542353271924362093115136284446007382235875003580143233797393839918300159819079601909638463823744274193869801480391575632844715538647034830400449417935858403463348258989666026083762793578709522640345917589612545325613871819909198200382383577629411786379009076656861825024220325053051121339607142247206635697795386812932991068224885232340270472479393753836163586558546392529230831075577561530715373633190222302659920907886380150381764390774072875047838718616604779901005060350181400199268268645950860469528252364213373967818457148899940580979596515382597725511723627458199408213066431764492297477351069088946056751692659370144934967496785630054978535009616194706585998020748804698221594225693407196567556804821656881862270654244788135119540600476659846295627560710556367296634721211794151661409589440603491412891779668468285305524947969525596799934695336599771682733322558121396233766085493391110242218500213278715153364438592665629096896361706984172001012180973925977781941509417844530071379850531005721152999967761293555641571204209140262601572339451364873116214630653096470721847615705504430202749624184844063577257821669871506546923273342774138997199000190141822369696668926263597491310804539586581498621388328013826317215693994400346293986261863820639090049220200942876643319982212039467915013324796009377913628864283296646295555826030019067684665186464648480186150912139623270618056011333282221223643364784515784567049418348365258430457883282976373922086582136650984447078281051876855287051125784471859864640104539913620924606535687938074609085561702987557401502419611986221747486183798807742492667969870704132285385281481774184527573939616545418110790073613835713401593486912580172051207097718682199692192320165587811664785304123110933604762829847304231717428322256346192514463918632180253589615614257558864370471670066960160115792204860036721431737099203994847651462575940113718848068667320516189507976053881923094281508711769653945322600505221723861910358213669080842983414036703138607018780801541000567155723101616638327699866237974757161346502670627922827863552685505989532240527409709271985078216603250005631648629029897368669823907907350177457340516405877115540587050865072806329493027841592409207845726177012983237087255785774198287177322987563179904747344180860026460972058674524806770960332532461728694348693161629411545431893349823714634170033792488310082508535184346923760161373407893403170465672924627323466429039999430180977588621598453411047113153089285718502385072240646663865749715894580309063856890743042403004618358409641518041406819330292341994577260514802241645086035218037691448196721142919696575572454699257868680601509343271497057326524871941328274545619769112817274990914632186541047940782398305671334588211547342950376919838526841980524284601022579633651402838742438789429432024771406733158843155035188585599822745315095076197571721494135958937122341297833055883349723247712995545846315679721844280467132792820505365012773994340623768599684755560742531301755259331122024919516635670091440967466057212146811328044694462163541183189762425467474049810636187704548594405010983158214111373940462475467568090490639914318581708656437910876104564239549059059082211933749585235718661581594677025127879682464730420923116648953867593395661756174079137498757935895340454923835578152418978607370989566199151958907926948419793343349758819082426218041681049233079851594118625435714873394434989952227039556750119544522865267530933137977481700657802953618926814583618606633095839209128643651619682432747916465129606979884045022350402061825898274023888640681454944271449993332857290548288075002760169193481972038913008675821360352344982643547434408975763626974215238482746895193839431859265985331844131312393375725971268026276192279307635429634481378211610503875022456713682998883657117759739335120916412500702725627018756964619580202454933354746778765887142797257685357329247338161711999978463813214093673623323320336549805334551981554360161589989978132404804185943846286639551982601465893416300518151295643961586673420832659616531843750259306379724092563773168244930825287375048342552651613180841801711138755186993600689658041697594893220214050608812722393361272231958842091329535353297083515543800860594725102041873991765186360208748451571730850743244505639619330067527563144632113356591276854806441594339687805682168908855517302752269390954163746045473739759157837405014471944450515197720091538262320047727982842743724268583857682010638281570058427753102838522548056935675737049856091083641199874135640768811026332906260325797829198439576106147152558419073105350740059601693049777854663361755142548670849491956235599803999181011204349057473416751978994990921889210576662432362109339911090116584501202562503210551821836191938321962611935002044221014854402053643745130707267393280915500469353371278463990210097628208896159108800637632420545188307048943895329616209648550245418757782719311043183992232060367313528643747037415568072449677752502391794497738171873618763800712252409094988107269383612813762666898619208006825937657122705382636667631262360477179536185253463326593972597326736322137723916714008047509540102563513759032786629781873583345892423518223113710682115358969523650984055893983039465232150296669765722223658277480169984947037548965054215956338091962714968633640813975170832002318084673702460497950515512418508635059000765400524158734105647331220615900862792591122871138192671026291569095659683167973202768418663296814085437426972736481822873231962326173165150190477132929067183170411699425969702656802141032024639215032567019015309192893175009349870785069505740422649382844222037005958445642238562186809782210142719790520226285377753284299546116879949999546835482475696632367499574305029827100526729321542809094751184174305308770653414030046237479338235914372139350649669681731638204046419332716614991071048817221285706025206857551119158674935298374825109871148008768319635909215840495233890475479832867210987292427660182076610287954710940321567859553070527502142068934347498112408878073969641334596849339414741724710130587133514221054652296250223603499873410286853698306142716155273029455661246522457852060086004036462846666341332031259693602982352100067757059554329300449297488301710417794809343548341809599368495090535571632390434944770847983046729616349731444754433016565613162516015871855372665500197384242589907616458769689154255088903302978711955246738039076146727100207352656395964136412795587336554224163062067989414718649584676811008542136913330123050767753405070256294148416029766990996163549165618539004205417180939387674265906767709304226377102981016948133479884775736326054207837744876088183472231816346539173206151861008817640854207437881675584139442569817543574107547434326648046407947242796948899253501502491282563686820516413966802725079255360421654883119599195118987500407223164965575811708769323190654736481315565076982821765039491599548708708807663615910237680552712442869351384778053553517309098830487409691811562970188622207874567007184959094957131480375845139381809571105253361558175764796609583357423326612649562820104816728233914636305340064804069223835809802080020375000112982278392733477204218984380788562942569274860893086530468945130975818796931677046489394569340161408158180260908142660944964051712231229267951442587752001789163672509603321203776503810296397742771600680500659924277381525418210539959258786272827708158374691695293502014968577858594527601032476434578723687834020478636460833783945908268629049224837708712582332487063249993831514623560714259488086804700200684556834668427169561636111885629154801673436720546185309590072028131730095829334737575787435008635195464091629811432085913952447503364198603082075658856406915796758883030511322937891097114195885893398640509962824533792763834863935773127134969699630720435081059702665248195764860377450317796518829876675231802667788901083235380242354531880734589641808626847434762953452633192900651494453182598485314228348490546336147649945343733666844460491012118295148723953611622709169030459138590885465820023096669205053933146089359653503388093121246833340102791712036853436735310703478832089137131794406857674743417312429993564181118090556184627742574491769036447451235428959434859435045469357772741830360014160009897805886910045380235798368518838525556320754426327759200358565606148078361618479235574815212691741525385639491700245160735671052965441164767640242201497544983718973274410784197779515268865784590954035841982130578338175277733328014318837118672284568463482241979474579732082108282885723801672332231289490944534016547815404451298488706940811017804676734116279411706225536947457533489003362542819895482743344240267771380458699402708204321794768789335117357719292607416527658002685582028815901099151951889098709912531096439625224790919003585196032461631566352594471229237169251458630104056093488238032946327769545441194779505867698965463098296530462378871984151491483777921061156125336213482934164233777539275186602982814494667889715240493372360036119411966928490007047944488923380461070234254023494818686239537737034508413953405189616754763818566009796177615758226031192358665430620192279692248461393658920878492639337843429180264663560620677729691106192462552584516245007008113838864286114534194057940165345066897814014087695820334436802363796089454048740230112221250732050293106035925885382512421373384591310518252298399266506667732569318922081270554871189014780705138323886765207483550686266643993114958265051878591829934197641392420888835895790455213733500761899981935653494480988167249934225629892905697900697207923606076977027429475737937975514748360777430945618384450172945965983408284501959624928640662265177939554972878443319602066983728042233261455082439930866181899092766550128575342435403693264204087814573262701741600384497170326875072858994193959503624817342130396143044287841870125517774623158458864123045505024010728303646017984775913727695510995343764111967931464763168528158199882967431371169757968997088704516742884060637497347796666421381062409282063075912562241124645555742592201944213865477480412833585961815922461609209339740958759594218705520544161155431298233186088011692431348353683689730714247445795568822550850189547802330427885329232580366533524913767097690886697641839226343197186434599206026537927796195352649816802409314485809964544422666945485823525271868783806612464396034089955700346422313547188798223659816085880284187524781079928686893937845845740157518639094877924147275563839383261663880972645370716834040051522194141403670177104379436574033439879126896087128501252004102470012768529616576789841309192960325275463225590306702605996830895099875140283686304999872362260743866380960841868245780625038846601004390078445507358943463356912863269850876501844559303548626690671877524966766209996607877767579404313671707982275486063049884292031205170188322627817157797224305304449005343675254679098230310217344884775676198928209765245808981601703241133646171322918269896242448336175789821264909159320128214824505295748626541982247581029359016235176764336692852987170902229062605014415523406587527028761258773708684506652631008439238483437947590910199603242739224914777001434032723926667249548889589974313801692497268966892600979758648574109521256066672025960056032707823480711000460128310128659537689403135639369991852766489588342168655586226325479095102746142199371392515660462103228804122473333904542033833614464286747639774285728420758829712900551453798682202446921576361871947450717599524053263717668948624397282127932638417752361032178593494640158663905128281211462576738629156424733149017606122120958074865181334412730067062771146278349181474260049108542556299893511885678700701642593506772181879820942807675433672245440596413965908028540993390012597929862913276509029009949183993594044740724650508365852757170163017176102313584634703739383380191632026785931333602503295733735445276143739945857370592961179707081560364972035067041975213527443263019771688384492057942460121896233948481683683084037383156401087035907002323294914357384811369811486325421799347862714522169374548049612606773083536861432330693921364443202549418204339890544699577590818931761815285760703230885784829319734392663834982201636323529227836911599440461438722788863223677624363343119435595561019956946084465133239112592321772550425528339678427347574077346636081283334076126748975139339727554065005611065550984149547901245754276245723544551879733241985356573226425839681173266515478332471822352745088696014646035277306485570191781046046109717418111059841118610399909928703933905672886973217036124581451059886494511681882963835102466995087300420966842391044916993109707901269914195166583285824235992554346709350052612343380559309220135254316678737111227770521262438710828210788629585379478047773213569149588820572274248851975154963110893325892929286242152467147122428000352217754044756640788038258719684321946382013719414135443166394309355064454692816201237844318861604138302369416699727378034012347415518341124487519043296584170253541706377223564447279186625541336392868565179569557690021461092946710392076311413841266969322225282595146085792024230585511038365947757429176725211395075298103672892560556171220177073581998249629809689319121750729429235619947464442818045927729297970464205459407167523886418101763648885520061641327545127018077702325883105551803075168159142618318046724434816851643892434039368776116832859226677261701447120562009574517780619553531804609885396408464240988441690049100306586897640917492879372255616062546215601135325067812896244895847788118015187640907086688206633778567886397103956974920519081728993825365053298480616023715049412664968014698797440161554083189032290843990564776008894093250460074111673289635210212902396303527803161728396537882492926143758242376908400988170923514499233340466803884972997987674205932720442057459568994244386571714886468206064214504105399728347168419972064613188363078392723668979752599508984295140539735787979186899523740587180067842100227223235406520379445592912147713176182441078888766809740034339885168009007680397273043038610362437629428727623257246557720884745099417108154984523085059606854254681778575931625052622585253418109698708406303694804209972030773677004293474520326419871347418712301433988368530508680788306617124263652072786413391066584921026212892974003897290447626704148186632364226724802259151377819451878329788383416877980060029793709470397318166057385911457018921727267138894010099976391452167899584790928964531335436998479038656646486937121672524923619674428889208238654085821084687363944173954389238691730171654806076903223018854969572470024971016275943400254337890458968832757161870163050941728106336451431424937248878909100868287809574050556121827242276613368786153094033789675581835829680633895739421147085268542156044369404106065201518922681628820009978522569868727325152854968889054288582128988451002133705578344151245741433550227291997108177569021855493815232419292252100225493566850541131419353618153162836370784991951150615184596576578786071378888513775886582110914180159995890744787869239183003468491440933331863576207385788984463886612060169996360393157246180732662233333457505605790272874682565826100858072496558108179246943511448726948043640192308889927366328484552210127915456064143784385827303071601642822600241146155400807417832130219176664546334539541714394510845774814449919669451781855151302354681165820601259030427689059321574992988555070700803696441001447420874460797193171981803517353806872005798071412668732602041802091873270471021398353454212372934905204406433367222152043992956050663720043273861935528590663958937189336272518947846105759223566892637495127349157403462381087608218987869568239108430071169104778009230939813055906256614130246392979825801044651969379807144513011087245898503851907300559103993733591768657700247997948998233688959061713968703270061042632168848392380287054521673925381812661532086520553288042915495177521426887786826762838631882976370708579241635094411367139143795140056522855281441299212080953408232364840903184405755290674069519284507087412201739593734169684873698738279450014355875416107683497539876248418749765425951884261640572300397308470858463272497676200469523249267377277199378938572755290982929673122637885011925339378089074337895151726775516426608864827576023890294265161561704519346737238585588551910667802132967729843051911161010913480089608737960797369206994510653124213347069515685763699504005829391459480491736102115072687144367955755529155090417055086307192628334674740983346560699050915101102899172637158365886472987088518131975245047249417906477495609782242947001980728480770470323746590376498347561154092961763478812200854039759863230066951352273646370219391615514256983936281032521325055850880424292623750325150116766955477009007026811067845377856342431392671578444324830339937772702257411281790517945729448141441158837381234639129005063329271765151480339690340563068428213754023566449225077725150711175669514428012285743757182227610206367182136534494284909854322679453298115740249465318519241121286762298377894142653374052771360533092156367706773719666568586410148706206346716599687816549176866343808023547117438415076500995716541020007397736188190285500708148870927711058115071210233025903054665869281525425713563273980358390086815238392828473289183390281957491781890720602965189251783834068678093560341817041827597011678836487787613929455278517455868351850139501824529746468010003115679560154349354888668512134042237640750551679494520757987975496499056294188891989062360926535480562339508745016966205228867713281925915989679646486858102305166234670546611036193822880236896092511295132387135581907591864858013367780947309938334263725850688669620910431392649085164912784631550246166303680037706840137933538520981721935771309278275255824872414666704331943571806396212059825358029800344042850515670521714709156504137022287426276861827499425875989940208612168434260919029366858990953769312644939855163382046354287356852322493784081554508846655910096718312440110462776457733465708476658607829695924676134542865852600455946477578640132301312257939726728548622578103950454394775012501659007128965737274156285220375492607491579033885057231486812963512339449559388504179450877781274459250931293795738065917670550276312865509509751420786949737281180641921089194339585373425888277569125800229836101604083915841937489218838835022068338163433458265440978387025050403715867662483161019863695222524439161852086055977085650998379999130283257859389996546664643974497564197955502323530211962802092815756357712781807488301414838493396751243407877273340460349850590711659059731141723713917036380887316192462475315025026540897228738804786105316400241409636813876237510065023277591617686236323387262265116094818724932370483049042311299101857484727627408135246888892398992745298117506292978958649438208933733519882528640386605781097230718801365764364956222816995527756505521150020290730499972463181410551671746435950861243539599385196054896546400551107509852724961414833683832369821060265110313906888489891996893941384790646697870129518908191567845097581502745098401090432634695540088614028365934038208797176846981635501492984780806451330603459997048494004442168449678786174368685375996811060693172730973067981435609454109664278723520875513795402719344745489422726728054094687392721057511014986799088742069430762092543188005126164039137217291169178609632689907338189861525718683194933514666560007728799527813084837679072811007686491866313345989886179743448481646329524940421834958196586321775868803249498045971765221568319866834678004301689251506138912560221564780096176433305137942783879513789922434207043482249752009294304081293470193067083531776454104744809014089648623596507360124811992964989303623293861083186111499094940596884945805464478091089768730103790032048886710472504924944324751275901576102359266312043897024176680862380996125007966888094906158517596237331369023938806234223782128868893338747328300371633988166642390086581748662387522625613762528392085135296908832044498289119234008344569806241626361064845389130715901746231037775512297366134370329081382781596495183487825897498659279883816473218757158065302503179223969281339944518793627879810342890222874314087624689273818538965775466174705477884534965436445940594524999421194360207307160227975642173646213613391561730509093568883026817224540542339615121832085415984128137415175705038866807822234947281397096665173862930671496178184910080136993414081248367142847118865496797430726334171677189094750786595760605715051663844289064406531852824501985309626177878368259729072861558304244784028466340369015177862924117723714665172316020419175672006951825803663112744910069054640793797851380025289513954949863063049139581136337169505458496733134778773106899657138718975737838094279567913022006367246567936727041808479108136328228995470789634833677852081096624828494919684047984577710227931157360585990919359982951936767610476963771558242988812644048770555970341676293028605366870631537253753095490786895648318750715532024792284561582969237500073048767586345000920539592491874605561316089911598107540173584571345262587439266615106632846483817193515037753116386623258303337099912791319481718904310119687023392485019043451983909338336018126060225104679530459794112889826605082953861577405503104010629224526100614092542854041716176313411650678322920255226424747603964389368358478043679369700989612694022839740809786075905264453206652469037605483381914776026885139191541530483656373621673924575193677363044773992964499777547059960869394878055669308583544498766489888021352436389958685160351877303474122097209223726279388092636608471765251191581507079489544596746140123418703780737861277990736029938795528778044344785922202596940721501942880984232898045132481701162787830703498358646499636286675432539261854309923073650934177125372399640431209257651863454981297441083472621447289869587543089086466870445119337747547080934717088378794118433403694930480960789662678168162590922253788820816491119721788443862364482778771595607978685024877161362279396957552044482093232045621323122908023267063622786628226780878593834271257060008963144992932166037072668461565547396765138460189894228073491828982879205644036656650208999291556911715896487803191119938867291526376994384464769772038820949681228881374083444705863021722019068994372452538127846879648473232681498967882863609130033258246975687510366227151388782137472545610146979916114748017354935202565696349575264822149389630329751216999418242091523581398082072606971030723363135563916540035425942363510067711039055835571452611286734402167815433284804738030353710736497102144340903500544850711505891792173113449204850605198413889635796477654888461225951391128942592557846841487433087617507380847093489211306005273976897353217558536096142320086565894010683306987478948638532676748843682987193731125307025849604979946095195370732282841109953429371789772530310439333289440823784614361080602805454669810936753723320849890414136367613355236664101775563628375733537576476697083847680600007890348039213973082216187434128166871422627761199449379536868899557220263445829354875700769114941181278285706861518840939315259021415314708758140407985133952022926821972446406409966120248756224532394948850574968985432004865132821576604042031425683679529722364402152966702637368364615047893207428173279434291773764731546758087262056101429129316961471668495939224658913532341627008047260181669784375803572283231412944296658829913242464938206170174556362340665311436201410962170424677956132685944386596211285491893294669378729778971219261897288375764138120551112259125724998621238332160244105359089769575510689182953923012763687596182574804755188049063090771786575398961258073500826849343250977468002981318921073284169961415891083391752191045786229436271963634928391829779694208012777087771791362531818826776921628988498728921813914105296778745362408388256445467492884027427661549297612837194377446916730253040737601045673016206473118375919062299204840371607404594138522028050851149698794649871137486205473417379029959412192072708125723162956802453922303926592233476465008853169602961139059935078985460698146457196380410919191725417824764133978883311245218378307688318007235143031570762484369972086631576684634698551206571296015307966281168548986583776172510061312798443802142714880109009426616696381317555811555767084177417061746003704884830179138230517444609317162041214892626865495413843195376504002350387848508470887000154409201368554890810235417367555509670950989002461193627192995911662722727645568951353020001612524616459537003873491779076787015223588080627320013697227557005261528165140588998192793254213645524933973789869818497115541207824363155029308405662770485714066105582084660584140550364598863778204927508035077242709719625131146229822580674589731390062081532445901998687658530473843809067741095003591624163757200830757553580612359426728874489093517783061085173705540647204168317948902020140918211569941783241647391689540585367078035625158037964082448167714485089989366431759038006085646874166947870018723754638445997685381899320568350094067608624950155961375423633554035912915026599270941657439650071830951749008326238330819516016508803307043875825720419130760456622067345389746040935955181428072805156427236551354593293988316434331005292645169517524078404115031955938911914273744771725526515508260919612175807797003960747493312682089185948726603776135201513018015241584609624901693578473830599267922824242565582029169618562390110523172990038447633522764489629578815676001101977616674002053334971432227461321266752029478579795611824968055374692673790284817812037870288730029051964731855145729589043219973688518379529658227618189748239268180994395928613902381260906283403488812216769257294917506267231479728052431287414605580579461544054446687986881281212095121787743730814109322051112877972326503126799435656530235154992803663521076425342534572878386290280711604663028243166973283391252871582370163226927107624072362541802387372703359549640528375018995757262013964257154163819886646766339369308274515548616503178646255445649734859910801931009755013687797001104706945834623312956568297241888948428921659383473201742090643129357133336929458798269004786877691877178209740461113298342503480700838956780664443279612347551465489525170415070835938042325136666359744692973193038575721886483215553163711563022799407256103645278482131681462368069531251231462608211174912421001318412666832862304775825504035099004387139257468571558837101376180453462438064748064270113021884000514870064341354163564801153158943516751741847602295018385148738948683880478586989070610252686821566845923102028614720040781251569090089814446626412644578107285934204313317147595270489289510420645601180514280352136008782635341790162997110228909504482411882884091068919982180752446786594943892270354329738416844228062393079286137293806586914286012556979321636970190690607869536796212656915766241044699378751480156673800265389941789419611294991840409380892302457403471422968113561327495238636693930729499515771178732171170988616155433546400682097566020275107366534108798030801762896168399944896820995047768786969392397975913864302813786109846425453362645590951387506474786284593312409856509477052706390268120308613748719473960264661172232607787074696262938497980088698411206264328736115474984946098291384496621321600689577987484316823065771355670846960381609716940673451130804744665134065041846750116027766251923803165416605902510685393855913209511189037165539478037316642223777636484609450773907844200860146554229377682228973252863494717191304466461749478525775179213246489816478923373777814519296758349061417302396112773719323116806830488348091989069243183753797651015661598432573797513634978011366040778211335799189996017153722433225758877590587444129553145598835222250621703210846220422737201948816891704805865486118644147270436740793613833484541780773236998024054150466234830761206706289670397526747851059247205096574131899283239401206586225982185286685254654770277523959943385908027092539277706286505647828433718318072981584982387235723185762027306857599571274818121535672290153496832837002685743465306459530321674620340018278317205205075137106556259546941392262575361418548322264238935699999033628533017817304482457179561953374793023531500570360228681232093705203855836934349200736338783783199618789084578993157403317943823711038315784943973047106380046159759894794020988877147656496939283446573130875112159080812938638710858046044085428709470033435116938274112347351135584841797443016275403901948938769980822113805911139538279372556767510997451493867444225373004198778538698295487462544435601360216413902305961036582003352111046057345446753223036348953062573081527230742088971488897881461885570091668512395554809291972756524482364263903177063873358303038446051284943472669308850718829250673532598885077570412369700688662924015283207314176609609210987807001189503709544085204777936982237793922642371188072956004441210686753445205708636074980083068584527560390949931291407853218485218644204233688709489965720616112873246863924659575382948942557293300027080852358026278389109774427744883241973780199896703629198297265908294668895232525603127680319001035288863465008291427875474231781322771345624985760840545393558863289818111490536984009941843199089232746921452678009686008028885523223466685787316231832335015750202520704499984929568727765094987807695329681435160244417370582068923084895217081800266101065433391220267389473747309019771224765071149694794131249925945110318595773410241139359724056842014097888351359590120017281151456100584900470161082086292248629735449977186772208171618980529047285957803178407498454818375651046252506266566885719802570152263785829448897648487539412482757942045678681608341471607834302313326024793872068747620532434227424576302228479509576956240633752727344101005001557019252769626490838554805132664320426697060493937441588118537319443530969381851300605394361667528647874325910004082604429121303945423193159469118581227217265510324502144109247953672109242637794100069479389533484309777146271616922937542472143562524630072796604298083494176180681525106011577371922451682537000183715937359132873777031991806810839298441951948745933044227892682977501153722211760352855900090286614435111345134677118494824701097074979317741599895677528810515970773345454495457886881920094899537644018824557610883235436644244917067637654976150394371213978393054647777201310880808591183824997808666029654741154782279552931660865051298690797330712590854876311351827951101124866750280082828625843934485934352041841116195624306005840517096044626360166169642097951804968997289610053419843812394561473050904780319344436329801819588963045888801226462752985347844989240766656508539817523059501450345288856793421431046147591168457843276310141305626437761909272196929420583372162584220081883553601289464368654606533393754110363464900342307878156291934174244701471372273446701923146854745847713835393811853621443470172871320609681483270569326157160006754647666033966273508880839207876787112207113856347542266285696314542940003391736752065682547578774935988295828355569061837673764383612754254052658545523816872869284459895044770523473809072597171758195373175850471904713624879883612016776950911566492402359262066554934145042134534084576159442873308635161954119170179220022153171036877389451846272848029972007510084750152426089942421888822543823179541602768520882860239113737443174552851835960491462845384961912186549337417654848497288761374383077489754931637881337817552628897074406514530478446443130137018511689295339465435180013018122370315110566352621524127880933267630102487948593508974129835626638790944388641162813407228794684027864665932226007471387928117595698589734345553112876156595159472383344398474285330040094675760382442069673195921388240417826043936921487763235101588914835421379686484900232529506530495079369610537095733851543197805410376355910841626581849574864621460545038099508477633546251713341068815387371044368522174641079769826059234540016299749953161344839105469822898059985712132229385469767867874195366559908951667238270622581464557509619240923048539911925734501387949313109611398075210166004493929637812598071608049812453325106329981590724249921258553236914267830718065924677025551252569982533653285478260318435400085149179570617064153864347137259043016635125513244704604581582481108414228506440367271248825089503726077358168697346573466582680890021454013280434545947396009108243324020710393541960702956569916129513800349378095206045519794770037575321393463039581727947560666544046139238953318523586171004478724450228736502555579767607552391160303613188467370554050363984937326474227089414314471094105272793604948024087721862646072189528387020357626561374562296466964360480312353182201295700353863365867015877516459299478873211165780984519300094694122430771143948680263720355620934775559576609781940896314448242282375528765665023775203485710292009296687067541297366607108242677292639673052898202796587518880414864732715808968199228276457407424269519833788209210127253235160268481315927754078492026356550408832623300527238798562083135378567310438285737739863629774336680410059890836874818434897409047088149833382716998314929269327140280845656259450312710139488254071277595531064522862539467671101084214164746597481123799882240503905353064060836686150185860157985401236680546564969434943977710581055075813523907743610175149041566083406238190654673161979534353972036209768261346871844036791104618714227895060183814009504253798001355015995415997130269206183742770218935210668694284647142520600199094162425341538766099373321170482812983613765661426082614012946865674254043832885888832565015486620212137959646431167421986796000506224381968231093880772163994947373702842366143612280507971294164912643277132750740403060383834992602241348898591983759756538207319185626551140084156383552592688680298569749959143607956298219678862892159803071153163369261101960282871177354163833122289614828583529735704045474120835921672252892227763355227859070614225245731411296476455394708450486811698701450447505329617301927786520803005883547262337371410631077276896124171212587804158402647122016493464045351669202419719476584564944240101384526294210530989374851762859173329334588322369196542519685820925860221660347543914115887234761377613153502402324105809276165369255589051585138761562261753622344151238807633967819587403682859638487976476566609641003836894861355880534360306901603204264251786034272530797412818505556546338053997266460733015082465680497518838453752956544754813047878326339247290272451209496341328371378549773848080052330197325067327173637874059732604823544056742276477986332781612964537942312230721695189641461608112975943389322864996777875632176400651002092609486773105333262883095463855943187646453906621238382201181351275621477904405276124707320783370463775811463981076071422589555692364834923447133372529040697896369093921854561452386659416597511301301923372110573999577323905891861979572511660003058790429792442983648844440937722307484172933915434817857382908345327229289376978530827946678496684034229581580166804494701796431995692806740363925579147943517435147002528625011060742625225337582482254534528437895187605385135374475726524248628048160372748983949384196131608882373837698465216926487736136011596204008915424040579739852780338234630434556086215504251933369609589308268988712982284936912285629481611718846554535075545264128781690059034469169189920754675053754534191604526064336011542724343965822207189457511179875509630893104582949479446156312635629596150360441060684867966763608194788975630257891146008249331386002842454007632480209922300993400720598996250589403146642329831856453355023380488778608956510113374854719741851253680188263850643761515965999951757935031931828565283762276256078560681927507522917121398987222929826956508062015436289180585579706059269308117271377595622986726411719449147686774080100308804360514089345951771704092047388479563814316181046024485101462410478887693914466735415610472894862740669444596899468975630755365542809685093115129896535985848937258518576470905580204329859613252313326255121973294118522471402873677985354513403777816280447215844600767931375769277349469692233001116249249469912234175724218661384761664967032350576087382975879306432342667231142855325906459659479657266469370393596745064114884672933508583397490845622657113888894660443010338041116795577474478034666619400548805028507643746903162145619751191699073164920851778739274860736620648111118446701014340535993244957045031617404164230075855835029318485107350313058931630858926204685862055242109599020607564847222104816082009777012453364592219579175387618302066387300440479915669839653914743794293279512848010108154133549284636720739894590714533873462971587084575422476668459242089142286252549886471648293256197290094118577683533758936475776463163230536667890789452955869776683932765966671726745435863511440857798924279755157447094021799986825993115903625702448788624993646753673186852960856320696151507654835361290923427587167260028937411784458675268533064504650402046005604588392606959537058840751637521396718811689438104572604807021122926104083749809140561841296908257112165157985503403613642365466312955792531131909833351846954175293249635375814454034561480811942714403794185391944784264201960581143017104503583937616285470667542740655281559672851408270394831988371648438190504993369952637984812191362577659106959957539439132181028970315022702063633018672738572396022770303160702765428376418970262896565390163040625861387831752180846477525344819055523216154355860125415554812924054302093206320760747050979494866563168817244469149560250954093268247788117236890039338377145394363799837186000392338628273601316459528492963685898202489026879080487263103488433846384483503996886165798762658529499439371751134760170284124285140899935098820035715382461653159434567370772853171495524483671758164880577006591860291770257970409702488486371239435144049783979657826644262589537558591209966724990975104528355253503531864830607575432280018394101270733676618459609192032743270979534650260226098621834290489078173520118378649514192469149286442953937779796027440643194170187237468675184374821561754459102316928119953703264783621678718133976999586303380606399171863904118242841298965548143363647667257844722249696196331479874022043711173255157935123921895665467146676182503211245401075013918343023167183297755481004293697918188407228004785531019230803034211684414215784190137727256374314664761968512491097137087793987721331470640113488264320868000199233872340489157072133167093148912838817247082228347557180576090785370486790821586517533861125734655854939181719422020627855721186268100635546819602379733870242368638148464688967074446615083998683119489675095231868985251825764416680632458512396843575932172805549966301029752339792008125663865475069316073534271523726978783363245572224060228654052351098499456055222766289283009071661529433901907854143670942461385857856022679318786117328805211733429492907107379634479727003289656999799217701700018966856675654965914879408567822696274537468939147943496569115488830388728400204717549326118150052929675486873812642356143072176998784612913132146157007588062849885944747168597706730641738173321466527832932302540410348450807692063060139883653816305500633820955777201278831704100107047035516984574291117075058599145731276754470350699698226777482759185511931842957301406391990172163700031713356121648393967755561047392187710621995468491914761005790003010991404338305161946619077790498204137462060512919789319879413244445374204999435149143467869666368590253981334359003837910880386513016253718555672678698998133238309129879187391320326986764361413780255645424070818611776248607062287670169960169840481612769616066338104654034958045514595454324826306254715351259731983625855356700145224359659953834121409773957166043305024653859048584552491951502492556016391533852922916166477557677518574072737193005671139380372980318558556235323477520562776421137531441090936579998197745100858958975954511608184578409600431678240093964545314314034746984787152079739355567086731379929198164558335439895717808674932450722110860371332033373196061088935826474903982254730687307372354899750056424316838840736915042267363382771804571989343001029033648743401602460004915815178189770208044148743259912943763174249870063715325027171149551002704246421986908290560389984400663811148235451425335625693524550889656383701816728835681774979299359971910383443840101100416176540482464157733703606886590798575765435966810023041491311593668236055562436612321559170120986007245250592984234164147828375612225698513372317680823568789005631537007831317756634010233832882987889650388761853126531747151163565536994715105728218527622294171370706044856712164098509616748165020368024449751800670792284426449136787886405497440042404195527370298724496334626315160836462229712165849844844573663678883935211798182155390201587761326767500926871901703193863833929505412252087451089426968517728882844488712034437200723929286779129712005383555812013473593157858670123965736167116730697354711965156095883287569010585174188519506868845417016327422068518965793228583260033333152524207615566165857192506323031711897971534433557131662727702177644949077665861273805121465837907080391203408667691514475524989959518374426977185804534032053705316614813672528408871916709276972817307403070992821603272610698594608371155180880627692639438714308143600337101006355580151881531164068945617117695954845755071318788248881450448912798881118403208208957390002936258387040736262204743797042732509927493567948941533779468501027723948058495044296772474786499341414047704256933313341266905724251172540497469567061718526505000403380755763617339573688944193040601385117140568396241056581707484530028770593912379647009497332519185237817396493640656164271176009810316223084170835908804665031725229731556898937520863171696640179377829592903698360463010913494765756401125501132429311224145518107733912038930758318579505229903686650987857196556770851769486649482631605039425518499605828872151427914435876317681914426800185111757946371568696531682772965042822582596130386895355561840748908054440053602160346738184903912987972106469952035645308181192049835885442682157353323442218064455716412535983842409511417268494900728577496192306143024676632684139546534768909647818158823679473652262106623370063972466406975714201362824898356246991894702049397644879913933873245497118250402040923440702075476982164807114787060666939925016314799787239234700776883506140229567559205056808656906532360498775791611813312627311239827641819480733831530954124326728123179274912118313869293865016203128852617097444328712386726556400975947293812004603236201437808647406181713657315482679599877113962025610619916575375616071472596824846103327681036912078561119923453665882677134014269277791729761911538671616710670612837706098115819627446305995176048371284820807662243366525751155011704876807559564872736110799154732969889999925168556779120845846669207327925832197809867429903010075353552675381922038558932374234059420408000008602339557817615503380784703656895659614056680774900096020039416540463806442895454787142074771264840868002243793212775455211466910394183639913410011483572753330136835994392799154845196799931730943743152335642021330635605993486048207266688339980535492535454448647912987414666872689976732637346344400220456996729628965653625633377669040463002231579978463525674469564601723947944217443685418634828642192394510309373284495170979492229798987367469953259037616594160052630174015257424136679885838252852618534737392058199777836245607457104819981395257336692766339329409612177104588877140323729055919731900984640591446100103534374769245664739412631888357122838945852721576526234826021638601772458508125648653210005871903156949699601281122100115144457139690759136392077842737054782178289097082619088835178255422998047881521239036443691805592159508494041400074050862789663647671382889265843250494215559034593006277639677426621083471377132051724679551029753323031389030199157370940796689109755340480268781673281920928204539982078527105000854032692631804550123011387958308466449880322678046302156941106036046604818708238018578757690373110988554434575144138109560163963597450534525944383941108656602302249646926857241941061363291097793644199066001118205252992443227092239426146434936983593627470519012088381402109629750611825138411492603011239820078572974450318646200312989364208909690776888391147886723829836024009252083276191221105704240230731667171342470193014915970101989768102686882090325569337231531497616599075707907287171533579178770909859687457357637180804356293247269270335323839309557223894550778927553852812476520355668990362044281791434750467952482456915662300209764060608864603088585057333942562567676314798085373910830207103826647372588628011357424700837533018161027273559728005532443242789365844703711147183330389643948943469110990473743195834055559728149860341830263477439985010770343093469262791440642592028516128735592889170663843639047384936612955697965102113617562828621996188745125586706052483332393661289491383409589591705546938146773148655072434998437448857047943024707840146311881613159558053486632522392987026043145553287084901723853751438330927128053670165487076793136374277278266836446672336995381245617848306628879284825012171027436194247728666307090870184041049251487265544406929367291860319545693637106538817017653737525963607509120812952518405596614105515611803937120139249691669707783025871570523938795691256109251401487812114109664353504148247627941259606888741923105440885951205879156326938384332645652972672978066356740890059203650886391305586085474604685520362302681694555975435863127347610267724564366231623160198468824697444930975310385033341945571616024314422493381242881850382386176796810358108160738456260882137455784513573085570761544839472904025344204875086859285981205966497211516872883178387174105009895921205638269733431122314676430155040481875600562143907424421048059307469699965381472293950267702881469769281486817554147515104715413650177659201080516319449393107349933713951669617555563177841119096538062008230525758382841332537721360955843462135855835682477685158918842438479000404003943139846910861294904876150646306846504096634456582611035626833499955820432394474870041386120082270079160636448462184547980671279162737770637755696840031813179038025888730313197761444196134927607856772665638842981342220298957489993142957060794748146111381413339777956075943952428053872096591301043324268039207338122256296834342629219547295233793849677030166831123994788028408577376550081667774675089794681600013915616110479528693653625353563329334009003008460288232009999084036163615746623463217795661283352488331073268462108511271067112613722779128960614473600175595652274630922225545312759844145585065995219356608090250585006650179567611209628941776981475377826174161779153534182092875314453375245185766854293033064444015272357816136251695419828115420082210014647020214766005115621689759349257762165287256360315892273229488293475533279975141998324832725318766164545638414579094335153207188845511456236381965799763187253029150168040302401207713938065925879570674648050729209009191374750142201034781363581969453608496723770430920725859904309450829952121771124077039200372604240452093986914172583649373882997938413149968806181783133305611700402507442244076315501828357133049763390420305638562708899819645057669700511743605516993810858064548329244184469859226432406529948388966601601291111697189526987778858810537509652306756049001851444490664181630304500512169239984431058262086588737018297299060528799703093925483612708672199383908215182496218452481831945451444935056788713689848591408195501332883296127080784518136590290780141022407887622804947717459653028054349653308779329422815755672925766551181367696630759592789113900122768713849531935953737645779986411168716293976806673135595506577368136522089977229486065518800051496612591406929542895399654855181682165027874365096361725677139823252517464542654525284194506046857175152696757470854660815386944097597561011410947751721573505224268411449431882125317652944089595879785039274326479215108649320949338097936781205861378624788211019198984401166226923089931018112295079507938021010164050141721453400800112610361963745427607442542092460755348843970671106940092100674844496185517571148886192667961905606402362928435052552725669912329078104809225281151326124574494101238256943296862584085932027522283744667746550732307195995998439784131323511325456996701144590436973473765117482601693005387715697745525390916265495231122524624515929519866291138120194287403959792478389155989173632377372697541698437971102014408116180187823527517003519529949156943836517049415613926017087514507972102501270224463109008377256317809827221263898331828991954139436768788993492820303688710730520576895162709403691103548478780870889332537223883420954167831175313955693079722322530097947767797590168433556175341664409098617642689565343268130281780833763328777068756894560872790231059296195471212015566556599030505330944693197221583930314898525168212866463247708797809858768345216663193071184184639623900710454497194914408835424529402972404600810275337030804961282285136544750283514464855269363425013409463771090561231495192917137451704538324834958059937824696517744715953198418751773955619383874297998345976475117454530059010440833907727057611329562491518242844659713156066680106816092669784352421703985944727664114056907734199633855215010741061121733932034187689986677407811232642661690380641941609192183484262991748795383605234017607723718680118254731104178541327950137895107103358056455628982498543515742685302801132557222451310431720437107090631195643362341915113320517733295041028415287091476890290893747995315296102333832666726280634975513780370380534701271907417569673841759525894267673438232466329324475632238061664481270780632368123085753407334192646534882393322583507671200241902144979219280839604144773442836653914088822500430314408919288668326389166100759994032226762186453983082135819838308967989305259721242803302120672017256423031940163749822488644247565787245478021889755332611860688322591234806680174139707590576946905270290721237043449433009084038543050719845231588281782810620149862765176099866432341872330813353194448447147882561283312911491195865212728421371311035008786915604146188268886419854102294337242321697119905325506456987212032560751553523812031372524247828572916130081680249310996600808431270331516503625633566287940027534195230751245732494309471264130406832341184935096772180339021347558754961746961015179508380080011361222884729405840821060983495305584143642525010072197472505377368682721984675469968828626570264421008031967379921329305536432321096219692503110435518875957853291842045353829906681031149525779157932689773916112970244276768974641009976024222848644922552003721153807069718014923188724337131110112137059887525858496116911840219209595311912097055520198672952672784421032861672791191467425559533340246710444903633955052644737429489190157678394297345295031998210397706774248165859267542510934495220122827040422958192805639512940796067719663044717434349627998807022300918993926254973368637087246111162861320699304865418291542245753780891721810359205198318083326767542975021169685251670367454512461633984611561829885920666371806928938764428005524805911852776399063763355551910471853723473830102210112082971819934866570005128449274036628721751854645821018950486937768054508970425172442800279689882088062615953626912252838190235158894026089944583909896999115830640938090011032764172520954823378466002659591913390463049814507079933131438466849920761181072876391084640145099288455615405556648703994467190063821059739231708199651301555276578455677842213583883175816491224867157194210418772827868528522274187132142815341042115317280078450596597992459621629245871466664559729107896185732103709115713569841313619707190704490092419017337072502526355328139535230910441179661961777450786575930934843046536915669018266540492877774754055271125568388387343448051660542791797425229793715531790794778772242312078321443737599765090505574694709403489547014044814041479474549176140417181356426428117268014515475965958212569489135392981469362245098082165462135002799668672745077899363286841900044426008420755216046221610632199717344077614087286147128990186176745396866128268735975045132373800460288746081686075014878304688389506056277294553686529675769496672817852907451506854793718323386639335187612003337690034574655387564933523460011184404095775433150398203806475956975982574646748134111340153647520677607421548523625120407565711572162530198316720002811755543884911502599707247967230908821409492898990184884929309658953429363492403626384192814030300677803293376049731055914693850264535118937722526798305396968624573673514533299488792860447335420076128089458588254725738654152535089001129527296659351350621118119742352108774430750999532908608550693118425088133133865425568074177060074367714876735973724819746509887067078431132347489332412165575830705375612073947683474601471401532274935055366573681012192690066265079361427251102610344263329708896063677217695506725435851413260718205934404683023040759232819603118965144264912653043567145864956484234592247417796654106779111655959114324535840540698245622378244762697998439452796831465145233817841885366927667970010113965796278723168122221064137066286327339914247621326157412526435198293425079338286910092618900421286143486809790614874135599049639753336493910165659400742594126559793932131198007373451757207580528357192953000369380816835476061337407632349853744709585519125079413391606124784909905527527635438052269118953903995282998341440186096514805974869973612161402484940164297439381636846786986136755588472914898625054906365392065083420433086860233856183947220933029006196067596477419484093774037988546447130280974457813523696086080969888012748017309131311340961544546917325864963187420229533031221452367545947603160218356945220597396501243026790987379428243485230694227423967596600992043500750161735657475542450558936638904762065554093394693873304605246012074956378870275871973547027323041409818973747401147244219671468582888545121416206406639982129952085475024325170917220035934554731388358477155198152780708026919403231605511630048548812814426075950347393998515947476798386656320202636824682535066737626971936853572087190546145809079226895842193370084246790634340793766726875960078073670567892441080092053113750752654148913047884945533656450352388398894424694893571679976464004870799577448621096730162413444553122258145220422607241834034345066791765920014009198441475870158891598277783715814703949153564712383766886341911658759578441246514657474862284260342511059901088945867916991713083818544509352515318119547023036623995264632199622935146360310457815420632016223179038680189063874932341422636744945940087156236081968171367684772199964866552943856840632640440489617003244756606182127056664702447632386494120589059857628730711729275889158478006928779449626427465182931641410551777135946253519136142867825870357258934905218431292556565285347855802533029648893774704853000489028554980667819272490308387622300559661740504952577934203866699664117769879597329130374941767138576908995577413404797467202376916647034007887187751893971607698006595242005439085798719228766893033885039398595160438057133981879388296429288927874041599950314623589149218755479017272496514258678545277974623825504607305982859288746344219961352931508079168366068133314991722888789348934049271393318722773717328381905084032469090128857697068181415733895631355781249837189016667293145030591668642532710326765099580297999360862449480189100009199831292212263150115430476339315676761107798249426179579362698950287218029490176923868546238293914732907009880211224868301535974725904008195889229550668808036312139319135214789293812798125684645601374772098799600387938201922304796773902629817040056431375809106432842251173601551478357807252960968034163077578991480539387194286151738869946439601692228958058515040050403765439748623591910803417782424070000638064227836242369416486482572445839965337012843338984641110369036672645856632623406407950411672141382577224934199846608704566969754768712323707613267674619138927498483814040561594814239681526495523194493121091402203066608297530253137742478577383135543532007393914131554430283765894539212615853419858315454042823415087982856019468980762920316308184159509282048184527005104061522175302421479060527483916354404063135161929631329753756873754570471857599573563965555699309513390762724653082738138879804966965334802728273042301292244970712833372767339966595353105379204049989124189510396971014218200376988653571496717741609208247704724586857106059690232877615626598960871428533654314243323916339633809710863603295306509422063066719608288845224358230015753216207108974887803324763907709597974564791065322975085036984495006323739427913501658149663278673140499868637258490233329163854680998112149359379718290199894006427599050541356922023836916644388093008863514347858460694168205697145675287899794128493865105112532960876346295694472311925846973008058711056524286652651205989104244368102603106186999995922383803317275063015057577009810325309615139218759725041788189124004154891110802548459678187702110344725839317373170023230231236416532477210071357544981224890518848578108366715078058360709849195305454916916721920650147150251788618930007728123282970277795117973041970890104061293450679442831790685450339128119387198926253531283405531866850083934035473334983758843179178704306805123178557512313131805028564400034952281618483127373404243676864646477782416254598770462027841057956296549321221892784621686606064374687599195128843605835674145379080222418566653879881585769654739863217183798620298159520825417085891166286119979067696467415603711705477449115155279672684662524812937376636902767907762570525181610975897732190918757010713090275289100514381596757900817285835340467811562397620695139717472993197426913996055172817890155422725680808819106691823306032455833237975945242899770179822364961992319352779309827989236979120424646626280118762852772552348370500271782399276402965520252052569496684336842673656949419539031672257826427990492785789882099224301104053931620081460534503997798692457838007960002038864321617773294230220848426788962689507291777650800934989775022805046306860310670552875799491165272620490114957265218932316621820796437130513637756576376240004624972454482960560297398461779278816289462226349781032843650428993068076924726883918583218734461743697743698846513323382610264236308870024011527988908700451316506134474143623507895012843948945274248999804345437521714967880219929560561583800827319339743586874743975785538226304942191245748849166827336498686187940653434826649708544842151573719033477761551581115384543842504056395715960168744343398850104694485204580890157836684745172237489107356533852470587557099419086046100126309276723039177812441105297081820149306339567036327180710701565265626293468141810535896525184474389260253732040623475540886345247292557168667842313150248417962765695789913918358411398989220633140973313669737121457579983624339022670937246697318180727575663977610271421285222441750674857759770109091863440118404679362905783300059522262099396237005579906888786148572575593838731263706150361111866879797899143066501160046592061048126125348508662042400389569032080975205064181955304024405342504634570252833687578406682866510532102125972534365929241773641694824585060672518056671160136743173657829007400474705496078725609477921638356900064992696610804263869664552702105954555291230685417628103352329176349556795639866038994131846266365696549282806199699789894548033826010688222627592488947069482914655273083978125087235740089616935247255075415603042888644748283946539106962322353241068090731521102829753363587629433049809724190818640473074519566267992111687526749214390117544763108129169957160376739080273034918969686179491533446058002859627387417037866586820927664503001815581482338931897471887971080774618996637439903720842143711689426097581295375532785376648895644481899472460294964170427805223109016799317263141608331375461270420870072542893094185784766467358276692912902813426965277607351142610980664619559057496312754376034316839723715475839631540100700112176540367175301164207859359384457144100265628166372651304873704774898287265586967692375361169180038689545462520623785217883395663700704661872547957512317585493643564998435457284640772532327656586349296407884401493032933773623958007884810639531183440336392578835062108711457713293676530246237183208561884780678650574774447229098957854600251527684450360585740456602857039795020927631603936678305337500896317861778843953310310401945561995838034350514086036170721808089567759275077408035661206953027898113345094288148411806467696865824705843784020663692428589345227231585243862423864288226799459824106026809280144799221569493380584948868465675939492092172621348765577594254703785377916236840104950457972858639438644567115162934672687011614511540171317772932808532724719485981226345571443003968382385577921991778557800717895654000898470166343683873046500531426397773705085482928029610521575203454710487808671411477886033598975215594135264692059377574505092998157711736796548709685727330835683314553018690459576981614522811946364683694175018287652321770591666549864712151465987910491877853700821866721089467242573233032023116358225979677024831439080149489668002155333464398639191500200091577642514837422330029758082582819664721078724764880041874278687418587582402212146377373473783288615935414985398151994246047152192022247345805210658472009180350019996819777104692259826842325915188732556585900831352197420153865644981200580603312249380680979600884881529286476328809114709973217459999513909927536770434424161902670525081211075380093442189839054559099667432675759834128305982600568001099228572780121586937087944120835476876263351359235072399182021507307040546970917409081062369336845703381333648470936911591731360954740756329799436598349653494468147923507472500346658647504520519317974950287277810775584987440132729119472620959325516694653199865483141174514491046457922379179356674815289233890930380429019187063839147919583623717730443630321905704494503399561166414834677966974537110121030102547326291359654684721203768905674114135164850212723860016351455803959454535077467524972777435033705137151667408498285195172184760622707632764372104048502729452879613724474761211340718358582793390668973916215482744835845760183000862159585889811011541169731757694667657605295823916981142014150467065087483463919663165041295503854708296065063901026733773153253937525810827444249665446456028750296525003496756301405545591228450597369005131515264509590805148983540199607797176306102142888107729861611014078562428047004937459160378569096690766778514684396008165715757140082738844484264399598445616410009064802405573185692271296663319435216145407228211771064736658967103311853102125853559683438321122479903993986632872127296073707008875410206309791919663906882853273562472219300767840235462642604986232791258429522185254231442797760496569237421671613867581773237523917705361230718979602941223860636179175015543254408657031628649292383065918706666242986200275852274182521138751432620204000703758050759290486572886397278709212063919652106247661562397700066573501842261019524695891489294872622530213247806786098739335054014590319505812343489905562366103702431384017295461976678309702186952291163730096416515237317261963333008437210748144974271433731491426249884851576413042824249810103211826658141103264467923243699540833666344076771696635212102487120116253073219474097006853226376131246302171610585776067428635136337969216345209263999123831019051598241559541017111327349348262846018701495286202816913157738314147359370646502490649298705926642995321942397084971696394483953254872165084625712472102890543484304390215559436831937113379644461239977725424622452281322805333311501176805964205953250823766856010300957882853331274907201541804412595036960366799777096624660632370718133047688771480750012581854286994242151546215683283961456219441847225502756611948740392577191813673161610930957356906789757959055606130736448156449580392351732927704237882930378992215346273085544353205116345980047957277890020033242702032101221877359463547753857830300382635535541803333816033862849661665386043988484182062535598860648187552498047767694295867352376327851153528314163321506423580861373054799544889154943613631167580170971730096172524043917346357173110016563786204612949526724769138300981810175487065367937189763577247509864175718787387534727289554957363133523854637708689152623082826392508412876299299170340286915701445415667101618523813613926641538782335544748759488232981447631121347847365879625778958744086723293223749662586483799958833744805617050178289138439797032058415469061007837659300786349467166473900051210449002097568206606987117543877759117203901818587543374785200289388549485837118233780955381225120432546504172308265778326170566034157843344318139688686968221485288434242430479026968128523069725133750249746278666558686462192906872054228071891988382254515956517781748654097253612296574632967018903118823790647750945815768890741825068293497930717327028812681937178975614560972373974906117129095054026937341463917668829808543277510265586576643640946957622440286519565783451771121827669881989639935177233370417525479988931184858575252409093876720937173141242829445010347233714920176427588063375823731217532898010937226995443405555125750689138887709113311972401606870671539858978369007153473872093332599768775341605476570531152248522623786003235974160563695468428782973454179835303054778228661859278042734201451377578010513791330829872739989454151660210099213518600161932922946257029595950746443770846890084149277505089970988970265381591678920465572963182521237267045636143719444392174515092570327964468813080416226138294616906633096771468841733851439681419969885186372588864325968480072737761663214341122225962578062066322811386489301623944872660453075821337690095707477511038928609418366788545362091719021563961194079477791128760643782482788783724881481756597323091146769545790057257522069890169327459540165578456638038913881769416700192068560404718728184567732446543828052981601946193377684460632959421436377690669359829968887928394921367363199310343189611527991660784424599765008636571432284352498513483926450906934987968354095432363525922848534005697908193430665961943309880769352252777570604624041842010464653948052349953853423636994926897829381726726157163701799925978445397327634953522756643456467795365437187060440959030901976996334202095674854780164181434204706867572890904751262268848505879618035305732353523072495627679033447425314444349027159473617506561225507789686684524801130931378001633545798504891901668311079617805771491412045562491125454632051111672734737846355388529381740910674009064520588812689019710989754127002321161300946923287070286269934098797813725997431317287405888852348860890066164764846722285287503998981837047264509471569670753491340501647612322444649579468043462501033423851053134414869929748668685653170294960935243847972576831954866784177690979642875797335797418148670750212403068712395575527635079080740084095677152101321367145095589585853013895050788698775090028982540291116601531817266714686280353757177013272515996668741332908852639651102438878277257045274959193953035341026991718235043501057437153062572963359816309208313771645380447422619426281032494488765407449273221167838491254372015842571287884420073191818482121237580454966262100334380867667524344408041850348883344393673009372085596562244175070859268119365609366880567937647063023830538889866007960553690322526201859688429499780084272740643235873198491613925194993505155628023449114993475009377662822228242378908071173077551809920412859497618307483792076476213624371156825865243564015727765347638802944135974329417899919675974607286629008518167744340019084468916121965536448139268904362551131852651031724141771322680769039314010758614597556422497114673052168105516197388890045336653572160951948541949349204100603420412822606811550925285594204354836717735811747785052048757697100250815316263225100331317328416520447497051244088810776551948057115125800230164814549696891919865050365415426262969393504136343819887539951119228963482484611581900322873240337153942481942038722145240395099591117091906294630639353399914752682856469646248401137830055084115496665831723052392225497693374193053560839161138431112984740370577290901358612544377904297522464048481165961764370036291530902796467423721190969576481735272421987471338237712404258495584524161917613570161504414700235926329475282328435374261676737095991897232868576448234251649536973404507605404286223723943158335479084200626859020328882975388277876592431232846156266554194326188575247637244555647904870542843815887195574733785301306968697431543185538657592406624227368109806176436068625217443657086556498629567167373823790129805022608301725836516103066330461219507242709250335972052164917897776127372983709102275553989489923533082591574671825688972143388386904565699595811946701880265415174112654233564459335474980183205891445070266259467141898621442067750851105499353116161541993566971543879026185771330028817371269750090579452355970396169862877464760770041256719827860381753673918444152322770417498928662020386114426541071709728048766514583886320493634233388672951925659531603920061356831462847680165101545621494583468275374676249926773645989531625504062954345943766179319042288365392590224053993355430577849081294195357066070664209591022435367531542705937945350133447511883593798944526618492295373157743945367186645176699243724895497761514800421108277151126535092668167299529021883207200727882240510726884014999349591389267081899447543038835085446890987491495165788847849051717631886208771041586114917825718049956683689204090264750413991872234802396553975888967413690690440736988965890458149444285309166254257084571654112138112382571943487091023647881230266877519228574428466128729164960719535451028472998123763049090497856085295478349779036306365746295127924060505838451568783369049107169348692458509543209736270877217616841892109057353490880917105376261751215084909998357474189181027133801614350718744479229090527394555434431283728650041539632568206572977266031578542385669066188799845442363563374492478953335169943584762776671773193297490281017562791894043185938244517124083392947965035320660103127811645860699593319925523505033042235320643408199553193664397312777173326349280535909071066387709836308104219944787572655171247433455595381414263709950112525773582140547200368377837753689007936762924960735293939106237598428854116837353855072300480194664195388112953015435713809467455120038069722992328232005981250482135174423142488143778347981060036566105878669102611984291840459178144488394183120950940407614939440947718970086088574184025919667718978000434899247069667776798718732446416075138621185612244134536323190973178433923610649631134971774860116563728132965111890767446395319817887538155069277013098513149130531393916387595948879879075669915534278915723781799768023245393850095447445698737318554997638217146274298393672236767148323973478851197314273415439095408864422155368797819743830621078110623725998167972824341001462053661398906612797278856737168183397969553122740795925798549198099820113091306445413555670768875124572080290877980702295590761512991064699222678393215852839801363066342687497523661669218904785866045196598909462920218429362192078387607483089810869415449904589497121510469693059887807363176447688554420543245854740366784668342847788986687442673990000044212227933998071832953179593406234549757926077289485756693826455341307528329944042143914710858872377302045407026870887308430555685065820335056933015758062678857228777943164671233527084615952290568082968006317284222527305004500785641775439978123075266715658422435229875377852638192774460518266223968978061014212451831432041055977632905702313681092487222622655248861589023788386912791696944145412502031006945976221750102150165789665820191635719786279401548652114233815486247326472301086617122195713228209922972993642456994243055440964500409069332769348530324828518580006770002297350206750324382600587491448072806459743000576753591791401963361943780986113445120203617652147225662132272642053152601410502016572191480406532423214130758042588211017584073771712919370226759651832107829021345802302284453371265307960705762560297556657458170911862178354519410845648853234769820671310532492151061154485647980572007139916156245600787513058480771124710439301789599256633185985398996534810401163926141340009280759448150132259140177308390725744365677551333480077674420314518863869577744834268564793647469596614950912950005157103935358985534710875015981209222601670893979107909334957159667680658794594871011050032971366837901887109597222591923351449339337463240115932475107479130006282656647791217845870307143456800407860707795959750304727835831052448458462630717218084508320960652545720040249006258863994172053293498823188137102434811502265007558037019271517404944125952726930308041223710246867404578872013239910304089918358126292911645595531773946641777091927204786080816814741979065688021849115052074647620307851160402948117777390689134711114985973178023558500215039623913578419675491130879006777128052246203595153641888708520844342945180523171987488055706555424031395597577031491966713600292206744816532487755506341900215754551573656871978342998591756653303855791748092299251684815819338983708640248675951186077370945971039379541705062479513680130365123115890261617141353566454407664115943675085158799459068026873917371370973997667651056579956369397651985841948873448206714944739607547811196326941709081372536365898094722586396072418759761281514404934067581608922054676389942266968864713820855533784847627595511291686759905857204478151577216757377020382324522048074165764493679943166508185072702133523113988081297325399281558958280363695272447432706998933918980294407854844668660744343149790311318087684285588415042816225425757604616942210865192657334759273623356213873620144374259157012974153920918979925753502661716917365389206972844181384178787542447280785340237913948908544621579818749055293393818193858078418392436369450006226069742153077534441350307572662096461461637053808257828428667930112872108745899111366084470798978395325291447778391195241272229212360230548164742449550395912414579699671234124461672232866892475289496064172616934526919114261410348614682659748875622158736222648166302494472360212361404815173545165557167770069287082946701684424882254764119282740418381072490064265242214235894895712583906389604067192799998631800168259048677906585893138694186572941103562765521786732203858727039436079224149792218786286229399036654456463979527333391809432661930600791570353388685763494446596069690871432435703726275049135911694120500985308331294066437096734564017868726194457567183626604363206435908777772360937816007591805929440814422867275686776752530205058555798981949243771289466043665512961625796870058963213514096867510911599030410090581885520571832467766463551613802258611734253329313933121910353904068574738572635822543306821930391741380200054301746558044394222006305412730873150146451343124454867769275060068701689071521223457768816881309377951607866328792420950373297308374733528242574039244674312526382698532968863083923870308945696883325868061549394743227048584319336163863669047627199037450834142495660130548022955533061123897761089949717688013054910477219888159944181256637104390540929583682071243858037978762967326843416779281596780265958138259130593532603221050914043515576079227316749938229487772978354393703323113050900305743497133252543659151662637665659496859962251929034453614453621601028422633146163119103767234864679678723101667343259987773228916870450472997385329528135157941719926854114541510205143311527408718531571590295901961505592667932394294688693707853488562688812931982984903566451496716447450479059387797403862922795173156030592918444532062082929523858524056185142598068239247761591948536687879480603821915087930928011999177993783239729611962248073817660099921978095182286945287396477086564177171836230600534530535574359544966268235975726443993716686014694674797845533037689695418436528729308832106418274657764635564164192727981639195987337823560006811339289083047829038781319973813875554889012161034733656380491535612676369576868549273995217171881071572745335931331592460092886630369513810137062353838200736831002632804227490987618313178093191698264331626602161843261083536596558444275630629154420089069469557671415199864375247601532657337970908554496454465404772767215773776136005574277563094308936953838198505197682730149897921636297504205043938263315975554523205283040834488202020475768833985022533480906703779622393108433854245729706695343479562501989609682738461339510008515710531902286349696896911959170156245217831840111830910146705860646592835985260101054363927592978428601220631947210153506006540665043344718760376108426334369783853567577668211358517805421398882718111848283097079011596035345646886948122354896938083996156849154967160933211563822976337790227667521246973576490894209352260495800200920942055068795913873947717304992934680099106086416505282635693787911148278222682148648472983277177553304761714966362456544689084519289340702042502590457308303547222476931242747765480965357067046521849418237728890244872998169981572859542855096831562838729547443891454644807184788254374088335921054321574291992560404282532480777863717834964104182753921845349353581338336283991212786506697285129421151945363284204769300148883338660658108250435014906307747065346500698024277379409840608923390339535328972522089238902912677120111582182936259720726342098005441502182292514578361816847844380130044953403596977484332299426921265590394119143106280306147797477634646750185156435908932560376740228926076824454371065704206016891242742253278218701920102258432748074257509342265408826699972845714311195530501388835606978427810909486489850455929084308951464483263994405498249774932937396005450172139324658100504817604071374321536739603534399398112461134274660862040233591108439686538534853591011997386376852117750744263943890758194447813346690308877248138763160740431839584626610317414309793689188969837687001348734884202937159069823910195825221965322055068024767673646697526087495588329779733440884557522870785795971513447135427820488555681589686270309299044139382303114288013647864253684429655881623314780273678977720016613775074884540033908854969210996506956587954034627627441422984604478227854298009702921193964483756219127487601479402012683467635685681373616377384611755271072590588810715093441561771997931810386645489085129817899316792538977677427057403634398038745308177096817225086856210618444959834979220446100641698606568822479617747758839282142834430910921242038722525034233549285803737196363718477931910871691882989479825300517212152775217770238160509509569034080277642828274674221898421030759442399178749673933342309855012994072501073361205102183757080976466307865021967435536702122451759948012944692194435801917208838696509404187449387914830870736140534558526293247078905153825298837030978969302391864859970619661417297006431075739293539050956066279518249756738502323877071259631977241290011908677585939154575989228549044510562346241967184090494840107890221046212285368556018984487312455336010265529643712912015485234696637282404868195580951541976533409601112716795842174913329848682972419647270390606834931065690577305914505585450238234290097683228336108735797583882916623583654703513715259791295504475009588721226562340846252373383247592192887005386952292120711515442695320687173775897775916029519945995709944707900524386830525147772633951553570647560888565209314462751009533854327855325763795205313533055876230154537388975966412924499359395545694891464784619233086569488004988337549332178456451033108880316946444363707557201674567622143816884571756081609827191364519324076329421374716456522475742703299591298667435685797723999975506761143847195799500322901607528527450385166892102810442209342372004179508953473463545052813482799360948399006048626832155125874394116314319864963453928833694194723972013477798472914755094752328570238815393892287295101192621906204794728031949014966434515472969417582345876640657173167679044298857953153006268921861536413237418467392708254417546430056735606857524846484798887042044726176244903427144962665649570303173120629476846095616945987558275746349986442417864426930746553533823307594934528743095490616915798033959934179898013841402283970259742319435680223170988546301885278623332881017162663142207864753710451954546653924874922635161486185018945761431376112333818685509303431642374237064746312372291006166782779908280858920020101507266179603742426911626550662886474918001610875801974187908160413035497536641278069485401200177961272072044389248460251397978806805902494332463438691214792360348851389118472518038295638707947418659806203507916270476945458895014208697530375054082450013791867071334184250664524582029544489974892939411365608729197043811357061700979812407326543259667979389882913683591321574456393993154574831726989691610905242510912347279323884982665149575832627302218873080717120691433563601319255372697778748018264723571835676972171939371288666828593411635292969624891756054778193017935926887405060986053739993548620991030487120772355161287369352931114654279618579947089798473353345561434381037040354612591609148201856747330282829474243976988131381124009513095055636994019320139796593917920736007075017103698551188856583640669140109034781402080220753017557871765492592746532060048135020172637561838185880441720984462860341857324799787322830225138621469659033535614204512431473113970099095296703432516448516715045876083738464678850797872709255824475481783713076342035669663065554961354083546576087284778209412097137925390158082473160246010217902896305281374494148615579998806331732103629091534323038097909958311309275018946468387481303931223237828889563586288864780383965101820267255618125124584717131052500637042185264248125486430675454287747823553128186207351253591364799245954496538075545420539634036019215777167662380842173345950581415773391053702974769584528389057839696786373726328457855498368828986424053853769662919397297145938980306910450069545893877688147121761494378890634902846987122226759253808027421255606869836592534972129059856098298510745898848608931509987658650111954884389641215670559712596841153158648291613756279384617422873843671176844451661479863801960929465730969893113394070842535072657509365659088201779407829203504681163792535397968093633592288752715648657084000081449785086910296049184780910645892834852099007250423132494879749614811464011405196412721844958599624060659265582918006478357132580139174673190898704352384600782439874280933761146091061498168346828354143280338745777705520802163235988608677032471386008281049830112227575162349009159055200490361519969748766114961049320770042303088126436270663267454820489911122572431635091961917181554965750294288995318675136712285966606596600738006548391798557516272256529307756979403586465400523560234892038314628349557540276532307162453895272528263229741318755313433414737152933245709863113671922762549522644844151451448427844201664046773356072697557679974880030679254446404007298400891371442288399363226938721751160765620713563353990412744012225142910809221386518296039340962170267271191910671882122686616119112019736309503211377769792528143881170222133669401491498032647862226699402237397927772952198528537011743697456187020594619470983972895018974530586420257313892382853120558144018252442104011926178733327260562048171874515486997660072447210714303222689475614226634581753037681272960824930980745744412819688842176706096292883358481434483325569546398297681812328536727827530018226921805302753967201715719799586142812946825285356315957152907555930899163282754800580065073598664903986519273089079588233364773643337851339219021430141828727012731273924296685603304402173431062422034525309329404164923034592892817242306681732456890904548812932980255123015331674167812469832040018116120764668145781816551841551531467548162499617143829668432185013505412615008028976536846089580176616527236877083545270862794375445214255787578199952293794123747123490841052594432477173337969291954400922875534957135703620853694713949752993535838191405142034192681368046191086631450598868272579446568299514140932987500932149632198027284540158093406940394589699858555723761526247755233322881642123092910241310191214837825848768196061504509302555760440359717657851240374945605236752442010067070224282199488436770804150905889329531770082910904160871190347510270499347624944323684345870439349777233315216964650108406591102235218229745986279762140734706240717417101156567074978368655356715043865059976630918767411265297337111463455943923557339511750321179668633216639482237162754731553765092943976537088529929219619223760942774631105461605766628806757998611978940216234563950277658663977641633596516633466558147764229162913792166681881822554107375715872264828542288765894048797707936091220836254177132254848599750829484051525379320077759238888695931994243745563628389753522738869630594278000692584970522369189348115787536266980195893125919657305572101576952337066810020882931639996952307252860745639184174437501320976264214777194687526079531866176522236592214447344228767906806608613557578604602027427564662639084929502657447967005635966891893527361734235047590222740694191896478038294845627308710277353534443196949482117090406149155119051026086302894105088403887599175539200767998505552916342304694402625093236067183608940344903298697219234782682056334017908361932750862560222686872764589212298480274791012967947792923100949410883956699949118944118368513762160912776891253769827797580725637060483990079600672733019936398021979864514892917495752718263689993341388330941836364458409979313020134159018838564231569719741715065044350586363226344996669064200361719140730748956682570847605063706164193604397092152407362823497748759651641591780742288061527660119337491810757640599437528173371927185719750006265408723972436154311504637247105513722473848195750880661385202257408436182795948717938889099214555040770529073522999783200655662854457588911810850516837789480769387999073974646108810165045813921387403200627145830244862946066664196301604891569990894529797797870664624921258700054902163121295237261127175744245230449580250783262046764947150599490420558784951415753146706817054007056841921167477782742045888678427428176656036478743721912026792717918264762670200736077725670327450858367044691335154995209810018459355387881729694102432858906289046860552511806917028346316740111488652019795605283977218886447042914385269026482264955931660319070643183895804671685293672049100451264248114831714632614036595931307498848772365704006610651579484318662514265308035836740946291443707162343063164487828542250756174017643140532014878560987640674043684674840342670286749574513851106039131795128083252876858124364579021366230894615822823147573653031752699632871455331730695741970585517486022823442216805850183177828999850862275064313548348465537317958646301617551956783457925077833104257574836329536130230949477098406845814407141868711897729605186274924379635059528389040475318072335648091885235922684738643583574233924808397689950816335988735972562007731238225731456364682436668671547496841529073019847049906689218564955832520676468613984770094103826240542882736703054193737397654421939015359334289516455447541944395748038616995011753727319079477781549342038864570898158067206927351338026756310695177220186241961046498185235367498778337085063214715798165112264238612084494696782731100667385381138484988699534034106542649202798877542114775207861149869528036651439305073930191913571381591592226519715932134774611732348175829238660958142357807000641387993875928179445062100700499601601030963395863579764837053479126739285215982033504442457241155614570174131508967347988182529730421168467216588650900150967535059987903217010133201262067726374654235706755690317159171133584641524924371531027261508704450477442161946266261445748354685036544725838085936722336427808275463806688127131316618229103315506727884017057174651493968298771774361147754209578360728063933644668359250239426839787906518441157044951429949106312002052089042450324661086369158001709379094748791212761643991309124509002183598848185359385064688096275104813503821245596378490449663052308108456799227339930342845960529521339816494424040680483405359851667924197789751965176967040215599965208520860845650584227327910997004334157412417273007837114550238883319519049522779418858118013995571707622539232579035020124559619894509394050118855699352974564578795621911256157175966367737049554738420667394123359130508539718832351807366809479359324386695556021246373856184762365125096835174535819005497319499361705809624808167895776220259373106240453761268061519583592262281556170991099795647595579795534023140511768217991695354357570584542177250680142773232319633527801251768125056169044021863200387506153539971450794470457382784547986231027252197246253369685119602610931097604196707259386364558695375225055687506496972033040405842245922731823531537163856920516462633525191169120451104232371119793670647456823572800226348726146308133723809031716959360908003839628922784923969799234046171746496760211112529523472948509676306902054336108818807751581600906155021524765545686098574902070395036666308859880588116312375980415300383260374393258759389211515534610012545773485051881446583389962530515609801961845225709943212878275314119590225427237435391001104904843207996544573438534474935690945349142955347472594217522976936598935658147481053079343476885463065682191553417496914668329854947054965286889504297402127661268029762411236829974418863526157752326398991201581769345740813655439321197836026580055616690686464017965079582454469314549891885946043677083764904601682135669491957690960245792394364402752209140038377896300677445778857270380604468745600649521926339501374519391214822704111809745688754689161156023024721944362164224462591914407251607941772410946783918089721960951404302898876702963479688156281401960245321838358103258791488380476740892535299229777899544340665984547592008420894542650386466665751211624587895424322436817665778674176367242539303376709866554642464740537599769991895327023517224850330016589113351846503437241112627056418417874105867029165785055695285364424892260543074215772000055782994000478580242349176356234668885438239541840686960201057908610652203044742358237048906839946311384170957790006585246089659582845153527309075475368240420002264478186450014183055329039845128210345992770628305007144916289672620779250509636810540923945873400050701872059513303678077549011625696380819905630849166646931625842090081866349205192811207046791207412944559816779220235003345499738566153899175484245099794886419839713551617475357186068173836706667874329357271852652058042526173389181896197972060082492166245463282378148857437389588199443603220426231136767733640567349295591469449438538860504886615906371418540018794238364543628077599985167943778300443722697446915475661014917589679041772864217239717068551355826086249671981501755719802521505114244140978192558113356248316155301918902983795468100996390593179576638516712249415558010394333953447012486526897414410480884022966499982917014615858090647984883017076204432372499158227581974722572465463571783171599611229245766135724660254402518297915108076229891737030057827482636136022233239747895584455147591006268897341677343964367355795863008691154609193621073246823228215284157435437335780354481211310401082499613140991211063258146147568296367695624220399203743361078907748367551059195988627398160200581692416688494786750031187635064816982218060741669840443916243639341896135365069429926971709543533687532744974450747114472421930771293094700479736490894641663267391449627596850427821330915217419373415838977775065491662161827233598374752012961715528549417173897774680713144290160485565878862446092519944117367084816213379223246107888209702514263160258950146664421537881105580683811691538912996052560135969930475027857126805941129311593679178125732056372808024757889289864927010672849254428244131243613979621379313844834522580036868129579638511729266710381947712447317786984752797651892012198073294698152944460027870476907998288870584717925849129264768413350036374337296030954232108563636540387280346619991063761374563727648010820860766833321897244636768005176863511622739563172015415995632661502109132459214150078272688289494560231129985130886629818011583360435542470791875030695482658159834330742778856118550289893942603694378763104646802600981159566177351724124507834940743163114167742020152488280561554135795044282975080920989117638722826203021381024873146289321181399397813400834394004050664258964949356141937403451861385203081055626192957911650801936383941192025468346764044887063570246422741595080187325906933485661142104102863092043407556222036140621191453188165803416678992615416673625533556997500975113452828422009463294200400069184954667576707554748599034086597602643201805135157286161056085679005762929412650731881299611809415284630370193692877503526437034531280890847805775252124605896235021492291113526177548281569729917467425883365586112622958388125903907124981353523608361650202342667044899629950685887250805025567017766907565085760130105024263962629501039881214425123574252902852317415240139217886578951333095488434919242789992162987003892190261947128820724099517718454543196767128336693204978464651756668451104954225817066377586062704505993781425987978274099582234171347812148470051604644270446456389504455924087623509762662361766750248477445626910341868299949041959043334926686323129572511716875839842863523630280822444800779092967407061361765695985206697871732006146916242323077311156840672801225415066118424455342580907733543645189372994808347480159712000232432004265535371681655291097176834872993374686949562394267724402863261785000765302313498360779600249163206709374712207627465395552770489020445822017423492408506890349330539091881766263795225558771750031522095775806830785388786276225207506914074782710572547966480471357065492398841439149135364779846518595981770227038375531118492522372480750201446662370463374243665348968820642434714270003448889350811004537131379239937856029467766779373960741900938317470280271089636090719941435897648917324033856382642686676167805515494540993216293546691658339561673196807365436289916367150342954303782985897111006091462750703525639054440693349630452961735894287949726137201387863737846975705366178563189219159711237318233839088428282441452789981172455801334643956518783093665028946670728347060936490239850150971468386988219248054320305931927303207043927861892611353371506500108153988675735756123095961872978337496276465514625019292069742168270153550765107369829571637197801430996177754003012314971725581980498215774188205060875043394228537812268638265886394060670335587200340924154600241648701939271012539968119687773018386538259202437110030269278344222312465100850104902336509493366335970340650313650215980628576001818005781418134629826142000637013055717688030900842303081190331703816089944092282026759951932533172079417844458182955613660321134793308654712309828292799454338344934665037343567167586055356590475755974972649467824114211307878030484107131940861084807713199061499426336298417171968420006438751861166838921457453976569981633925093804588873195385147373590338146186636818779425153436314978555059669021647756918021033987825033166708647938398356156162510126172948399334633921478494428793540777720783805490628404661061073167879761527390945546536386262959789227807736782285894603581929394483392362922776220723431266828907052304363301356677477498899175934815430052200863167486945391986077497174772628660226465082231600203790052392393808437464076101954292523204277338222616445936148202816153429221598088935256626563803843380655257191248596353946025829695011424051786656013828067333622155002881685974451951419617122976903797278187059429405484326004229815266853171613324116730519930603194866457676522961422711931996701714149522878637253392542308700619965371820693615775877328766599421518991589984938483602953870625456003332306809508176547386446459805123518213104709670332026965876740374249210530949707988405089917835115117620725851705120035217631171392941013662375631609484746834103035355495534598393016210468132107358254583212932029614316191916270801881603951798286411643209237539740488197980046778488235619454239119025195295715828852448412665456236137459535525725308746866598089024481570657865618176935365451619164381075306929228423186161487861586222563434601982166226196736918390181123552718947710385807134071950361400715539611194086321351610478928390569815453061385652262257152761099651978237412061158907589818374682319561490074877326846244770618597088718558533559610720494792443756824297572524353705759046932646510238171175184286610422630978871560825312140354256576145550348781559590088581120922308823140798691975634214815968937952989338449999051017240249597956247366852819050576813980928697977858806469671910906052840016007539730207253424555067236656351363189639066369409629028172671105788787306725324071814039273634926277176013487004746349304989749031742677429194037340700988330426848807168952378487689775325592413912917347163153410290014494920536727525035833150750104549165455797234423473545379105330846547356335249822092875094478836220249522686416724025678687743131746369086828756323089188648844422223398295799186761280831150538321789328347965510247043486840794583623764957470244764625050404979000925283311180478137352204910752118569861198131490885670895784023626518759405019241374153094038330728313774585937762615794322982677929952910458087974430248143186710133285023655873526832061389164010797686100889268349073202494583587739869831275120690627180390700520028564028027966493576641427829154743150639029177102882110842973419704318253048967642574028697640208710749878645542521305631551182487314757646539805911761765363274842776558725303417494300545660157939188910252007415597419072165161217127476748291515013600250112709322005722507516332354365817535130129070794589348987420781966199153485426687067608348087426796551563885491097942417883896713292518166616426311908156390446375781699044596235352506835354934636202758125042222934976339153367778651339750533052878790460796957228175616454781007682587294504392172168490211203818904766220344103684206684542568967040940718524853701377659782941267713602046637069339713826041875129704972705930592827511231162558966102676621457437006893309848735784932605993370518531286654022287174079199559681379293575660767028588361210499222624625665951799183336315275122509797003185552746006572400168364528301715254534188365618590160910514279698894266646059290816115530206316780592272703873916405741082751585758337644039193106287709678471273569405988830723274020304264265894239387714428613176094799812447800673967377920245062131246930848036253591031862782533601085542877913150167560787445201396202550252076304770261498166817246870694672651770133677427586956526795783210613570224488593784622380791604648020079492822080341812666897903108898853256884887409201065646398918385669861278459271879468030427676589721794957351408363717586049728069281574190972908887334857097891554182226369110971673155276006953358170052977353145794250054590134023434067959052071463678555836723272958792352292799264851235497144241538590379174638832033943435188830310757266200972993990710292309013781680193532731947406798267984175626908721250905055075370298850579837984946797425684643129232905365351695018961262999636296012396697449073079071059363082075097862768137276423001867618478870276885571229135770116486620635029212200571133829247768199201871246379095135659558712303973704502519958002459666276390777732871148158581301395394816467801032238845424523811120036337394125921646875654699897697863083376287258835582551383592931282159783504003530851592780817194065966375287605822169935249863852024119933502111276618174562465294417827311509380194648195169039210423155318911067818072544407053041137176981961326214608003055836200717372526075567444783562713825350465589261736127297293602366113449254992217968815899546753293484137828555229281708267005690622425566148354367554861839935307279658832601280400816983268323073994586508857374163332706612580554619468131039245974526701086924593076237614407458608699304941198363261350115392226536693895805120240918659646095189336744197683687027818337134434074232742506916486583739719975956351898089614197368620096499247819589777228113886835540430325130490812741328376940721472475661397190246122965949553072788883689856108254751838578441117087920493251109069255581368570136048899810724129374412609262366891737396677529083405145348983580565476820755926654127858566211397513385228644200639597563001985616866100227558093233481828856375658842014758453507327586827082100187676020689651047059581231610992304687214408608073299651735892825797006963116729954046699416630870224207858835207543134998231478968091957755617379817884116160577924764887894581926899791670204206594595005610887569196091974212595428603319811753332891954323984440401212764939801159114667616867943150914953047208207630287245691032546259189209965718934877952023998334733450136304238638820642947757122946260425231339064891862103258796260241444839007895936423272953379838048109587414452210684216427088980813526874271002027740493905370904347390048942165199918108338898704257244473290943115227030332079478431907081678222365210633331211202189586559824216937819459164447844488321105713342142406972263495362513044798162318914341666617044588323690607687968045619556337042509140770699828476007553467394284359409158402614376092372835787111868543137756314523982301477434721172148096612531989681478716636365477321636023269523724297666920535947601667784928646139446436194892435329600190542318159370252849374306484222531562516919262112199588853707481091609329374310135573682610192036746040821089630784126373655893377328477574629878880168216025929701528777032595620325190004076413065648097546274033538308394341532912123361904079479587623411212861027869477829732241877969916210979504118857176719389023345496137697649603019579369869591712458650412775580948496459384355434030056749400518417802149396248258298565736921037628575801166404850772529475075446173637183905652853104111173792833240733255633105346775166249434080759405054540688994569112446436693647984824710416288729363157796209116331147440722497606106704788943355062527260835872565386023894730119443704562529471416743263702555223533230020410524707441302263893578661149080542173807654058387268939322774513489107811070258933421077205429323117190184907542271688219642831242242991007739673095133958665334794827987504123284392094555627495777899571117650339967635083535725222747614929478392363013949014818361305322566923923776683244011711775194256086669980456216730816567210883831606790503408323937384538901715164412691518401319367287350637027651791047966396862674872938088868924336917842342080040469023833260973477261729571947714859237459667033277539681989510116507846302241186795220216299724102797225351849107430812770409153094843220631665358492729593321438902952095502656226001721340309246379467264499668074678290178187312722066241124552112977081473669995418719377946497887823155436778500275715139215055632104317053225788503389120964311308737623138700530741410687472898347626258724459848423099394213850685361989582002793661289212757124052485758779104861598293486452141523877791602963604765806803543486411483844454381652615626649015109484684745903342589499488748913291679055191344028295195118244227142786870682987553472732175316625141211988053040914039928234377851851299587577657120886573025778432946855942350812245405501432716167941167955772111309820511332702190764390048748898612418230485023203745619064770605971633572000001533422280198462033851981911081178021793994132361768898794818744071058290749527734124269134023252756488471330788065640661856474586583243042205339700719737320634555013707200364406816866503992375314422047327286575089228169326544175524771476345764605428185448959284486764797428888212849664239195415302257183652000825812080253403354925945368536570126530307984454272636138577640423444088707546798859326561409497218500668237606593898255422616698276874538000543802438114191609050901538207636108514873274945961669555609186506902922635005310282962740120882623406287666541405686261355241929925422749262918876251088731323514358200165216796570346480875485059492763982625953445967148298529664777080637620661258660590144856867233977234227095529644967473976292552050006108319710445502076669476590355610629815752602772035511887813302742690570135924021775340923369384039772785168480228340160491826622622968416998085091559371608541069580044171094865470604316508530948300136356045557862030825417004457946482751928128635697531014074149262322248492138413986648145048592729194686061532496218101180759561945513881904976262380168371266573929608477838640582533650479768743619395413127336389091390147092821203435363728938470994206640083020897128197895033317414011006834976549876870162607375500430724644004230356293120607554287153533933154164353954797234209151088726890207806854568495149881621915332339843352669791292845673205316635235874683050901277260140019812865846005525803268390305931785947315704099661065394014609291835167256500888911948012884526786766934140176787095980965707757622836562646050862219331245711625909238465164572664812300013995342562716741100573246441595486469211654914206201426947294780003969545329086180354015385335072115957753953498604779498963069055439644404562493948008531852488084736755357129525350704714920898626586907578059576038978343589031677866903882335788143816112894717032914599186286461680754035143014612046564442549046889658063932810420543779388053998284809091655440123923836751187362573723680049816526311770053899948754275228671212091213300824138207259658060657933304272382998202850560070995066889782145611123441209883366428860487917198412063520600620212107625082263013817921410673089468217600650154786409104055624279031282228959842150190824410444235947792218360079602153548564709461055228773543906095569766402939076455285057020026680959069525835505220208408195052442190034338640206698333459526969521409201375580187118464135838924677521586853385906859268976893865722049463083654056438705314673044187851165788241610834445487468770275877532664581446972858060730190887516347562195160602683629939539358340423257055980419988252821140961729416004545329473908205917307212468975294712797906552478176945933540158567697065678739620210262047412446853142766230285109347423237553211474798491078622043527686207839956510587555191479250397990243935456708648624110233292166502195687868441770612360986813178947193014437917653461780568884750333587920310717051372360742480808014235056676075867401748821071781073050343822581893812060149635114609877869128421598194482868988849984058072522787852269575281861908088307470884442471359821252656682892931415228770082946969755036312002929742984858784853366740261141651042744504262313468540653228840311905849388789058839511186550304325815775533829748842730897834294564580633333754076053736300284476383437184398266479695092958776482085320755292415166553227196658553482806626043134620187133114125947891601082333308035220563337914612026486310334326800413507439419222691651652388183003707808434459414931909588916596345962645260662484656036221348630213684275901338420302308434245922508763285099961149953538477196010359900419946142038903288439874578339767770906345410645997344803118712321615346817279799095002546073743379898525746161632184767206589380265390665033198425938308445203072649124739048195572943156716101198384052120831119430144175857023897860002612350859521564691192367623438087518382564036909271673898695456365016307147277389410291286326820968604098588786568808823515242965587228529836291279015729624570115422658509572198845489524566001334148475789486767810977218481622496319415855644937211015094455471410184632384105104554665674837131265392409929562498020038302235545595044099979750732812983480424022711920590592866054422457020989070343402127117351814905180041441522954437145537329450810248110205863973439767550435508388079453358442575711432578744321768734299312435874186230396196568988961946649454993054561028011176753067144452002975056428506995183821995459691855606658035922808556054511222550026741018075607239734531093046167581356033327759851510621226227498872939117460882602749955821896174107599600187317432268857852857564511121423405289087154093693620924686290497756934350823498124910429753593872023267446695265168002821492678289638162098564551055510463141352183817204691522141800526933129105111381910167954122450162791794880568677014837228125553251961816718341223691961073977191067924413390854535974855384020449565208332847093954953520237175986891024982320190311476180342414760802964247887777382613568248939378957961218134867466563276030239034562372267519188190020400440162861450682535868280480365303447651018608212668075292971319433013747384408236350339563416907851281548293230389804553524509499917408884277527121907693128776962319559823481609968430354359452752704869308646950308819247739822549897988764097051920792104263683993971814954233177323671861613709141465310869158428710855250099916458222130626568485511289485137964057249632723988406139644327383756757319909426220149255795601360201323686900859642765067600179985191681007139164104159117400165733667250413065343858356337610471700597933162147750358752866938701520622971262404185575469200111038855886580710893081663997808555783322619814143370505871113119037056833002608899819859067201804948583275181200028250816485125053625115184158947775530703868071958692019789574253115253154110614092707995064616316269766972831733130189396034901319439003875671076892305496760810728580169974735426912405451649647150030419903679058810139140071221196955705744435692058400292655490386024159813063685250618095709334396660694758354336733916584419830520045547249978790279798703372129746686534353063077629991410821200375879276300273826112059817215140308852826707886636952038773581131277588129851799802267211129703734268654619558920579004553220870416324073724171820627918220249970893353166520381523395096316749071225105627441966108274309844898446158562510150782026591810795030150718287681654821529681071556546772601466714626092608229588653459011100938350239574776898428701957005202787408654499862893267278942123935025216758061871121489102053074281417569553382292279288772834854090040244980547154376095089560347396767178405288796236530697994974464301186039818923000518739706216418259386275037134709029407736124281894827982723970391320830391511450504131622968770280162570587969155388630805574330143860997186355522843036189459609795201061331488239944034965496938677276331344523756829777623810541915768818903500308546800595893746800565858652552622918317323238169237249495082918194323479666938086088034800168150450634401384855152190407319197492188782509556082139484697247953510560560196217287812600028349005742419794032314790765476715210094186589905899775424583115851765487495692147279765987905490836302245529158377319328673719902469182362878205090973123237229283420893428027868980841853853233763153561722197559438105174151558439337075771409564863252354391006565042757005631049462804338987238477320205775991971434248020401784324147591361577952784942915889723385214867634598652442948635965435663280557394348438542047605596222676178442653727672079201796585921377689743616697327519252049655484210135423289688929833334788517089969831149641413873991402551172375847530658604122293140207635901641684559713851483480078981092824975151675097214676417598446607562274585944408090469421405054043259730076643362803333076508609512608830992158444108117643316641466507024765695987280556288372045695701557257073062725305812697409831918780935746717025200949867024269460156511823766749861781256060375791583399324583510930530938590186278288360947168531837212538907158562001259329091603967172572403873084860285987309449709196211740278051678336006729244852633260723424087960905652522305528521468415036573465930730777343720872857577555587233862288890190079867211368362659446035154737672218173454834627900439924163409094051446094473836672852343060711996904918409642374044646742097852360510359653231118584789516271933019994288943003062781027797966519268221693960360316457451465220707512380701977000775992210226683870529926900556560216813366345509732999079348111714342011280626948689863145235277095530549046229951871947550826723918061180254827523933090303129553960086547310645202320430353930289743525086348692755229941784712619698443055624622135703133160487335165937368294321037430551466393146724348845103698678422188401409389913175988976023179570290504664801037354794193481554309379453500878285440668697208661997708458266142498378909007581976265113063482592183837032766912450529071925839634142910570498783554989877736483851648202950510997968784210863548401480409811145909653389032782869590068289004291525866989510437575077183062306975708292441590017657327476341601100755382750101431455083290327891264092555515920475015863047836270741106637889977330388865607608355394062040806235207501245341103218629891949673059635009991638619027132053342877159405720106196956412120112184108008072467376796090910464702254089375360567873413230770815589227908204625818994267202600551591922950854068819442249532489839501523426564038578112704250794382339758233460701753746946096349509587071175298804645603048195748092956882423633928922105267721156324274601706200199882112086249362052557562278755953324557679164548748053779410029562053041164404131927554002224738577008247639426458951438343948161821381141198383349584576269824143881392120270209295791916978998869423332535306283768783283628177077894817840938190004698419351232432017768798592159903029645103852771801399731585505897585448826252964843799887613008566565877981002637504316465788880837310613207352817389635626692954345828731792887852444514226204763469998399540491350059558113050720879043649425238314922967246299163091467940886505247048669550423169428169793179237792484796999297374600453664384247359607906455404863003037800170824663509205875086774275788231325049602840541679813183339348620736616276964786302675374382354111109002767370322781951827266921450439819106751791417635840031351164258863165223151454609039582133640680539229941831641787247551243037599442322714430893637976768794599387113160496958974607894637202475934255551068841992004141493169809601661738207518149250608831254908284194086958695249454515251351299443655481238182198017936579627035122108213986990046166323204884389387549493126946358501013163457034783128191266989110213078222571510840467828531043207547995073673744030399551221657506365340605128062950119945681876168247895016499555288367765393733818935143921044087656154663269664214005532454478046643430914348418972122417955371468183839455998896903099306314134495945979009370655247174956477032222712550266915956972584864203954712833911765264951997086850722421236312590749171068861110968128895027068433905787470847719007592644522825179042218257654144655767215115872231762410245905469943345924347760434555646029598537384881636751332806071163963543414442760367819852411363857114309022521460065166401801838578898465249634252822797042713884302406082803378564001123165740616654126660485069835958152390671179548718968998791526545844957769347041990327788609032546088069796383400389244137543989158239274743502784264101410358040449008066604849808003829334012078788331592395724396579152245077461933583645036066875937335331390331082166826293392054290796034224637628189047716647490393908488341829286527597915067979218919516389395188597887613391907944754235407424911110714025903504249531634295704006470085780433834744798669908417105150529108006144080679253585102896064509295036178519021250516886552110917497989195678840968011795608115249118326130514841762418560284013904589577906841997886422410497473441925132608273756189913069284487801060130034033131503240136033226696231052472467598006139510273643437637982818570056189679402418707715647964596171804964160506824218193084410179870111540146382806663537957503498020775389470321114776855986443030598334892703594897880150599006386722277125876361205100121025332764879982474349351620135568049510483922676111521811490142225095981128607555273796814682713209368044250665931588009469206796500540703064478751208110016401340573015165210352258181967805487069232237456854737262569841123800255118901221670932287074534540174733810819846484842636415371940527059886032963002233899318596152820457568778991104382078386096372434907220697446670757912191518473406779132716687491795771278001399570087729265601902870227289916213184142286382150531743961613170857640408359365919277208083550015817474850845808180037609002815242307419570700257989226828288824157271716617413277867557675374530429975859686530131714786940029125525585070302036479523179903624733590184633176152655355489946965292537953798073598296506929129843726095786333486037626146762275024836460364256704639719737469145941034440752764010281233622186477008421317110808316047502514160664820636349072689496885986112549510620486068637263941682550748262922396558156476938297960741438751039567528381155257820755752848659299750679185723556032629241038260521658591189598781303158740995477596549183510660563290622565362125957316997608701485458065234297462626623241491987227596053341730024730359318576917984659567360045710934254961231363202353214435282493131826971830346717594628830410529394506323649125330098817278334084452982023935555233265066261343970377957153677651333769098547357909737757847464124602885635713515588114899396277819905009484243568941212173263095845821963881824522105145703779270465206408473951837012097743409102970326205000889441185865018076450281523838551001039249715562386417636631810500049534670052902177331093217383426342720753047812717669135126420414009519172111055747555527976539834493856200295469837679612228485781214811338891829402045340817479224810715114773126839406582102928893468768060371107106543375509583442126889602872132304629686769728616825677815361447729973948858622607280421024111055293703585955263344984164837059142455064830174507873149540031030563985062654998538908228790837892434690968843233533356234769328235765527393723103022264806502247117974107071824960551170057673366158978642375555628320908400061257178236074234900531418440730081748247945180280319889109987016746911480325528484868124380745710809158609605554116143928704272640094849121047210884686858265481740668416353070722045002634152387870425124463940034671554689970763770020656863860387023265043226151689124241267638909162604322597891712869150634259024121712270541057983498644608623135993443305091939828964760747326623030628357068676172413559262794519795428037616031615357304644307067942063865060242009984775998389493268617524209393133153870831171342145278654789560737078056551445914506378933837729307757193329090415556591693356506919330290972178706604778221633591260705023457929404172711468314127415832634161988453730791616599537951681293342692750915444023177476112247464069671302427057346896340136436728418592761250186199308054718073967156804903535402586253359181445825996916827394405937347141112050057970982364805651392486884458787815014874167818516147122980358569691642674147372984953356444878227942414460316321681115078222228504413504504256196083815822856442945700107012813138725412350439555526997472038046421520812711290497568850733329586768226171702682549421929939219301077453007095880258349280468520408401974940622144778536626946979432200760201601773069817266052581838419788311435114000667897167540916440190860837358572751372933664277856982340820471411824882245039996562243675022202692052693502260117480809239160674218477962703545377414437913813901748592102361160514894396052663956058511596508760611803264912260105197412956211987843525756293362660007479340636272647242062265006280325685344767264098589616342535639683412434923606538371685268874450402525650054964958102668991984786212221013955010950717982106431412779030300263724294002841263108614518334484683887010594074922438762863986710718468743522374417730517229440792390718012525148955079699747543739818784048480320074246878383047835562003576554127605626342376414434267183250408741700635372935767011644734766949827044429254344913097206927576586600539275058520908277067298582585966725907732074828707235686878759119463424536779451731216394499020934986376130197528872165426752900373698711680511998799983403419233262686239811696319865442102463085725004312093600339328584952279041891394405312498061024757678635115227429671965092289887897017097010927393022633428357833784220672243287570037107293248066764237131289517402208971885113015036861082906942843141330670457528481766418185128167265499708378244277820439162621277308346396268543106599520964215027048579136931134772698848051653454747083513972962928055400780564696851482839797877613513689523561266500174101996984459440783177725711635884401658038984832624684094289676962204136631657817312331632285611592576690618640353136202504493083036857194342242429960797258433749691766781284810401712155030039636987772101139377468870350777921705228271736568194793754633581030664504845403551305439937959966944865623059929778172198282063774155285804935823087939945536070505655167825205691093715339423776808428775640992305808451370632368533772814796885107318351102521093592860584439095356628451203619053320196663804948702002809521393478811013689229143127282489245121678950889387113622403112419408225576984112488199404122029122965469152219143796564105288811103608639493055693422797245451977560492287850380875862947195616307374364026626901593474662067773836039736314375640557579580137555971100618442035286580511106047202397363797389796274879780955779252092721909983877577186196918094465798527860698867396005297537384177380892972925869634446296439589213259705901351197398167505902009529998499216732018624893115757727420688159286834287194987977642836064209763645048289902152375314030428423105676469428980981131648008854389184144881948825896057191795204829804882953320727558123049839921042469587383261915490329900527353496097962387420548601943879461285371759403440051426059412585921807634197779353502107925513046412628163344515890284245465896227128945076916637313944014133424967357092692635486214046000138713005037963382271848439351561604347425586024298229288796408512490650070829339712296179922285299888704008808342110826954693207300034774305873610932684326331372183518183922738023836783259180595096765353746990449457507143243385502697788198558644178524622867861436304875814808150545501388654098778658342314942279453668815932587384293248673454334687281487732572920228486044458272772238897347208257143739328701564898957667447932886088470655555685748284034445079565554998590253234283412367057311053033148925023251239276728374980704287162817806730843642618294193038758974468568399167961698569554120374375925511447923078638176294844255026199964019903513961274479295266769098704073462798134615448249533218182296043882523415349440368992377610367498856854464748087008727685574222173831825446160102610334278555286900374966540581192050038636195643590037630099959294440784301926007737912282476072312910822398560164846265678157464832005752875890092941936997186381402355600482646171685908055332401510761703154251333374495654489254489261450896383342290726088312495516569147386144846569056651280260092506302985315123493035395574785490126463947999831472992081755511555386205589809521147154874616665094558012587669398043824922428660749017773992027434914291672189310392890514425527653433551907518448868029692033543644855947345022846080224837698179126543444927058212848483002024482084626255635933262601964181863665804753440998422000749105575713030712919714354989614418185206751743196733573668872487318587931439988363907573055276191642589585470840816384801231227269193635425555549878554601234710407398722462599215126241169472501229499713109371028593590136614952989336902533468487232089255506080559366720505422507185826750614459517242041470746326579980417000222039324724390387755176300862309663333878997199749097617829444263598774864255544591705491061351472150090084846509644154488161690035063264060316043595508477959189603575468216263203514043925125380267493997316941177375723475685427248809566489586592205793943013524973470351205192784124763829944353997319956186098338967234543021290184625651717437878981649989087210783971678117026822163901623638547167401741883284109924719173355665048456602822515670341385834059562043299618445674569866751389281691081903977299148460777779074748553730412539891104020277906945355584490437876432236069106549225429633957547130310932753465102997776709992749865963577735417248484082848846292451447477832105369562350025711315810024028632860747303624592581688888401214471386602951550895515897435313552541893608063002293308772877839979454181674549374938736244617164293510348958084875394382923207222850013309023575915312926211507838389956635096788925749682782184229620120386934692861784455898487928253542955764056908621179329405736982135677328312097772860617455814791620704340878932083178063445468758819068254032042897411738975940957974690521581530064706231004025327619425895956084872821633730432894807949879930916160690637628740127690808648471620330739768283619911262883541279408565452997678423640635678654519704060323437726619141495761083737629650738203930562266749550886571582502799245291193362587909443222776793679586975409484785480627323796334333923427869654064413246254997244172003573821608731559558294770938722452007951519855471157327034224324254690666718480397707165577251526225104780579319051013231585456347129750014962446560426343927923182581195820379874787582187337822102135278766684305521813323549703118866312328087715269558626553308780034616716446866693600360666999277004971760489171597749530756049526256251588041457511887892163439295431637533360041716173413351186234964281773503471276930732411337514543486819156300920424495400402664779949024957701813839854111455887015464235844529810217914588228388550973491317321245770679766697497137119760017207275775319008713121049626766782183109768092910920529786518072896901799518703023404077059236116738127840599629165414110395280920887978909281001178593059537135496673695318331352798466146077925641260690346121119849542760957140627803957434013282706885798188629051398262986238330279068313414606352179886686852721191685360233890746065589664939685151245717938260401244621535443515340439290638123433910564040167671923176794734152873206646975960058205481983995183095235254087949136170839514967582765919745388222272416151245872431531141231666836835737733048270009915534787508572906762409950786673165258512049487690150821912891096449322699999277764852309332038434198212054369620140211509576285654786686534002618171628153541290848028229678862232376017436136524770848064690227482799916518059391129311102572320200580051290643865994068781662608142691576391663512667458397284872189051525559771809935826992913414709441222960328258004774778161854443720428997325845029126857173651303878392493831657596835597047019035521041117596365228574530272367458707995419032310446838814041011611839067951005035053886436746514548710017345628551737193488735033420314020917393578084578876996088703386735892902058962427040836005613788653782451784008939927566108678749355514176770281618302255717794822826961953546799170545470539473242437021938200592558742692617833879682942848353503490918088010959974368241952796351557804669251299342394654768939098965793136702696485126680814031756931192782430108845835238798443778582643202481459403788802784742444224487689429901064892228623366659952443481556484128543856108727135893359233748132791470142912849749343835330987613207460356774670886501849336080490771121000798646432235011759075017501889774922981692855353304529992846225410359393108489382317402736977118995268711373440674315596939727778579979634929361172492732393759530819556031830459781497656031774683432364712841734750719475732006298892369448280851928276846863790278869232784667177557186267917018336731636546529134759416798409544326495568303386187109199974424215027636942153687667932004869227404804093231079890432618173751255339514857149732634134819701873403203047457258933559224598771756317409325110642683587260378863502145077316111854231004872935816251277177768612886713036174207126863930451748196541538140008394032619186491881987035404407019151539129309867323420195594448487432428289698902742556353874902508872433930767903305766211957239015661708099737344914216857020246372003937225680235800639239261560202491390901645596340225775212460514589765905003916958338084729933335676184248484306555713538067925756010164088527682037197324378449411877563149306987762940591591026424042314051305339480066775022999831317920025918408924619501167013764192858944614115568107454614314471761482832047076968155704201163680052355147986472083003670180945864063016700667161446061048792801800568105759200224801413936371727386009370847492568283665512148749277412601958191366499351375100654011635238804215672811445108907880788099693300528058080345028218293541926939466516206628158444869915936627394524296228814210750820171476371350157873436113187312427310863554085727940056541404517900143020054630028790925331306400002878980109169146951205368604469555676096852928414423069131292373440537674945601883934379165895193182391338691440219880815531777932510597407997817813041325346227080942672364832070798117012798183360703504682261853725500784918053854704018208118620945497887218601380895494758441949051046995993517255569425216678267883029042100127714159779748080853963760071088527738319650892268807266706123996748938631057702086512943571624807647384919932429933237890396059456106223453121544967393113501603070409377262606420168086916409407837952658869137863042826049868895704034573041855806667235889117774074840228020199565669653206097630562621028928045547070959260759279732996791031622349612327394714922492296459981736646071209640595073349616571010350886577729738727890508630788413559544309115785243166828029682131108919062297797245579788401089413960304309486445799555305848441256329713516715179912848528170815787878924484777727574904210558951928456294713181457276020944541348957363577599781500634513936167571531099734498861527939295585297659326523841402648433479715706954918694845830436113828962982664602642228130523633315629878019832496637618937559053847443541552244415915870852582587485181130327761828419069591947255155841297825178637027099323709852342414490625794491700993903945505764091765487424152790952847055557731794311322431272149148872492501002816398905690082000569813958213590099949931359429317205844150593572448089909423880797615843744834128721628538794574990151347600913962171277725890326313540232562294168194391746825730146300087580237730432082656827467485362890201841631712299918330461970695494719703356656326633382806050318152271810368382499802005719988265611664738232476692909446201325565998718769669256963616668428246819337432321461160493773643002402626070523980157476059726016554900147269033511659730542726495890942562882363796488677443866288737959008192280074493894950281379534518000449741529960847271113092122448499048141282766448669723979379062645573814165797496886291691555557385699984349744727808852893069423414597145628779994264852746441272036331168984227535850188953503539016319820279535265579316182960664888007324896165988714288263072726399621289311159676654626907956883064266898556279427430434245201417555115568724535749061043148283020818436187415118816962612899935335761649714028543247248555994097211672606049835681470194402328076822885937510823118304500355426524250057785989919381845379266706324027422895109659794365369641182536623834959474393063730553779984259847102864761685889291628503732210174304565503286630508154412383040226871322473614487933405644036822968419655447957566234530045378299640637302800328425558008146815263377279583631835301483786349485447708305617356394916042383791692842662767003139345347113598849400050711401520538106515214828154304918035414863614431486653334239657122348421884660613419621615012753300967626625067593922316114861888211145003512717448935240547551269260644486171715350684030398250338784997151372678604959311455549627510434493512685548438840084040290276108073529705734354109858104851309875014867699460460043259484997802078065209974382535845258776778074633422986151514273266493525085152816791117191553886194842668061113781270213360302108446228875441155117788083886645051194959092307104892722671151619489848678053064319116122275662494205186346364187094879047053229971382217051399549796028701189647321022127654849015076135264305774551710872432635325989309335392191199710256547472349471922779357667497460657620423520562003463599061647475368105497241934272762458086561948892012155835514816849320583517300616832014936986798501502605115194820966331134079808728663266946009072766669980731410296617956838040549308280261658334021393755697178166290417407724551810257772641243292095813257879510007702237339836724013127271863918913091651760778654740035183262833928732530531229866514019353143488521205951892635466910176389329405638840388200129232107903096876432616795822819629298963770610042627879271439233196009289188063554028588176600920407484800621986700218159450783481321279720615068460260428820547738208582567506886650840822401103915538337928173716008058773353123864829003097424293168960328992825060397353945079355829601660053801230231082541537272718941923193933821892990032203681755771067033200997960802249203818262021898779732267751236331284838176860008095169556610906842365644405291312775506095231157671900957402687439017456187899555446345695531085734986386733147369903642835278355851308724839912016275970120963375921030728167225650269323153578303397336464423198739853042284394430429272949705010641022643272041524510226852814070846905050751884688979349310695044434084331350471018998248314681753813246159683568084887136832437887112179230621112660885091362496480694045995831293847125609674885927305963389406127729664238891429988455030923649710253028945412073229856403144374273886420068497083467953442211847682872519786468842166081090695127068733186972685664170964176786319246559111643657223575614381288855792993408670730304686642617080316093507813496081663334800898812045648228706386467297292668261194870357221271742144534482888289622567603143888764038331365226609173911628625345433839938628405721779004496650792120114630680271747058880264810991725795594762273693267142974224347788063127077732835456872327136269914821607774856653792443901822153734064693989230634150257252325619194760671670510270504166721689173939981032439988767531356666609208213527804967853197685103657854995327519368865193366741735697907385915858194518249330779005127255182242668791402042909674269244424099679672811581241380226388776229606482543072220009899341248162305829083583654626950061069941528276146852509169906058974494385678531289557370690121225513852479141367434896433223238868004331321586497806940688729244865411554600556431649626000543378609053043859923994208450715438359638233501682757635245781558491228658582720356144250945618272288958653948643193941340048956738079006142098880324404400294253843311427118547334323015711577844247249570071396797657012214080854662916836810205229922075900368355620820268504990175851800658284606236382961275464281687565205695500781173132597906501595175565472542224843768945709560076269359825214117311751390327877679815572222839605270940311615968041995287061379599030524874200889972952611499414216329696740355220004766967780215644534656321796053474828835075726475977892389867892946650856912349623420675053760344325568622529603615486766057893679853826981144094144316327245139796698156176879943324468842689827697336860213683620484911142708929887058664966569162947498405399438483535085925263898726801593933332771221808605824700815878875041042569938174555882330341800587557850412858833602927007490853361043293043580274269606590512908462079419593223536210891711574561693267808026247892094778167897050126600485590898448188710914455715750077184094032400257014739703814679483151900451909813476075450262035762556104119158326662995794202504648858284626847385327400703684505510481578856890749720506869005832711771396139441686162033630099374800646967670628206409075497155418057995056808506687069241599332449621658507110401499686849499779662210144535090279566987303684908011394071774601752454917791532153960970926852369769655722236065209610180783327901820672944171718467776651098803961743807785214296592464073778617458142157230167380793819209283146539946966679543545239340006364507939298458274273473179633501187940778655622525208779235934246929258399327260996568397778069978220949782553059799007876894375665838614272289278869096343342760957988854876301674363856228138424578427141048590613640997616614718467507249630114108420273636198251740546479386548340411999281726632756185148946718054893095547929288911758155953498721889839925180774268412157955300965828488364786189089906043508803505168661545611349214603064252631248269187389007778274116300591849353069653175179194405578092019426027635154011177118845292274954522170006643067761468812621139937364730885102461273965810224601900609754835967420586544548281135789219646646211818794027025605112232886353295409208916849803411648951824551693546918230285464585530637671472472152140677542887619680918884475674453320534564717197844149286048335590146427573756534061615749097955833770040067048853814102081640954454695027407585683195569537558422444861312059268371789199393348316295571434620037092144443971033336210135847435682992799230137100974038947859506928144297628859643789800849289513697329801591794949135779798671223067925294014028717036756719020364260731980951076210457221323399978762450954891174948152367662027143352446827075629852649830719309733582591398360383001225040688814605453053052084875993907469062106266059926573484469995698303966078931122257716395688680732532398148555275062675167801064087563382010980348941795391357399751382434437035904289147471720054331805695395975257738827437119086462443378946225804082957866831514765183450188690790872577509211531758358299699456839425785777904004750228942991880117443702725592627060925356553064092045028864723990028066906656669577796888887902697436262546016155365249818077445752229391138509981531560883121096331464995501208930206161730013235893617993642632096627810818248846469250561499038140066430163821967590781800362170547737371811198311412518699222608868719152500134018913774717028461263078695246710652919376613209496895285822358514668783322734666634386918609613824045379368832425965908139065418520385202697336314839534730152657169076444086127229435752214741301443345190348968098056057670077104245011305653699665724472472435640919259225700013561272960147058305907823565274157785816293824721879513983601763575003289706000732741049811882331599106661391880061733115548978255317770980170529211048658580257544353865738583321685683384145116869249887072232905162811579639884051438416842632525587936819375883670600213984590840564160177899099939387688737964362523418295180955243141576118223393367162217039760478900070616156008886718394457617906124069706136868880176211373000915471878243972996894181315337915343976004989847829374317505193955893786121136562361760820667721262462053118601117670051472021256881160520018881408969255701524401996877812809092157790034419382912247748462176322594649098661498667696372651577690146453037690918760992113014002463476299113651261695018500079495798074247209642554943453230442202895394978077040207128574712190013959184530544946725751096507482728310192398685674561417956445593275022456971041100518023472989884173045084705602165317569714737978002008220422147480495237742013466122742571946625463339019522436419118998021416570226594205312331123041736666726583205553455081082376976545663308518008112422064883273391576898047828514987566339846593444338126887999654564008046512060909165551294440246113364464417746441760442016806464463302458082050036104615360947780994465281332527589346925497732051192101647020396934501316467786369391845535812126648404825668930065504224544012344483480988100411094298286400158876191161576527007636214812326597221084278009810919386816382059945004220671765124489509935048399806131088792714063501977499087354632948931323356026846396116470471079617719148295543661778480231647695888069699912830758093382108784207314810212153763440336280705108205312937304840175029742158516242606406610934076421755801418629961988560080516306467706418092928082453246610352678880880927850276543771117403708691806977504369581799945549873707376479021042721632445348539004886179734578426063496147389702928992783314780184972614385852607149845187847656878141589750632920718017812665417477608121100497761186417082583706585502011110322720909583693285299012858875507370582528935312060824762943576195370010187623271130035202720881479911261567102029408701832565703169019148351904767104714915698890487027576072622009031604051130709451857315524950426680070450459675222997999506315969148550979353668546513213220629090196645568898091954645784717888209835138286103239325347599593990615612754532398010283501876495607638466242883338089253418849255605345799283071837286111454923462221281810286656218713169968937914708103479000840433059544484694220215064319517275278857186220965862939574745092312338154926800569770909544629622150628447474003881061847140964446004689381528038605129620151043062170251813746739645601664526675412309616179519419373966140106751456651497574794182264867596577478011197717797876291335005119652066676375433152002934748125869906496279292154613241068079663559650481800144424011799407836064695422920554539776987289666320021790088995544686967338193487845136827924551789753044228109952242163478396562275209852037438511763456291027579165157343140561625855302223494943725070666454463414654242504590284402838438318640930413232503384655148870172207370041831005768242741657401839397434968162736952415933429861058396413404844249927102838873677444550918287895338501805332518769380371691398233763188312518724227149693824415910279914232821918524792905169495845289553955935421775619092845740795680824793048632982385417769489407128556752229458260611972211073965214457545987557266137196835808463197957674234578446146526329310801841338794662696984222612898255656588424815789041807415203486272684888967568190748677148839042250031506846267725924681087875075266213238714272157781377245743155611383252939235198598609428421321575259872361227037844903061686371727205080749473386306571080742420692759672607621700314500635609295232381321727838953405867677788520204012247792990901583330602002706037073919716596349855051572225523765402482211063342257296687166668550973912386915956592884500149772285687024332808049719611784023843078464478872141743267191147681291588515383520193861222452928854663691629721593394431342131032292581783358835469318089519867124967131506318351949248929601993264697354269072367209567717729076292278412961637634302255266009070836022234185754748742858318381009805463018651534938043560157594680915924408322022729084987730885018326292373293873699442805827069878724067297474126540960204112140983113301411360726808560953300932243500039908168464317616741711465843858689905563898224828624870274000092954553681077572181866799371911183157132379878366759213871092959411546218195699479319774163715143502599031449364716130363273277104272314508681859126772550811312054244666719419926506596355262571156970911591299224824923170088022049559391086013654678496331798383445140613474410752075660297093794870038883663845492905401109782640663538954216904696871187524997215935067737339309337710585195617103059260787648741292358179326243304003780619045711391388772114129953167095342389886449613075254105892126582089384913400953619345704533895263259074247052240206058348454867139596976286665213945512375611538040927708692603074332730762059632251734160111469669486578419930877973512409392414120922692561972558184769859252618145338834080845247925428934352018856396063651068778536900467282362433434152265637406614279326808491094638197575586756348718140191051666838645029501935106526597953949658142900044392195815590978257895225815254942556790795661009283601991888263937073901365539199227390789665194856009732662950482882666979311008799651674880502386086492603968786004468525381718108404337324861032078929463930036989355349891224472450317585657070316755713302784897000998928707707365224074615263151902497684732569104871905616689299017484059415793640639660209817426915093322683550632212214364904895038780433642428761325615701005434446326786202178156251094452214903438322161410676503115503832556235229034410884917037159136690385239737840518796706363717973541935715925187374386374085534326610842818292801888788302461360718776838117862706705854264133851816376456142602556696934506504842880619608015640323273217419035380421769872325857630552926441470909399590215338560118865436488172245592736068166633015870749785865462199036343361567492295491737881672414312483444045790759410466771942021048559650730261839862615811335278275928602200367117815494661433450883596147749128479731185632702216732714409121162848765499453054460919680876376819598102554859808414719365624271861232316777566854898919650716814818685686358657003640942684563943982581921274997703567611954461764598338489608569012855437631552493189042989368671400357947281864342450575332511905532540876666584031695059395353155891371297823590365318367248591163601530219457440764292122870133166134696166393051954303953967860633660004713873489813300222258746275394978456556216302142546670950269454092681828829779014775278016239816766455291891150113923793860840763983080522344570309826514778605835666064973441681421841913332842830929434494876049693183092082993909566814073018356898915144374326780384630889883691598097278778622503478620183468939344888225314330200698017733614127615102588829423160987146292966068772782267228456719415801191896444915607950563622135949762833447150143914240619194183118853116624222518832599369123547335566722639542937301845245813561588330044468409216744995459198630900698966459187931960473461254473887069831942782552872014433309428061089277716509870593236068063492507091737581568702547666912382128430635920810707541740814964770628119673702601414352725319797436642953474874811020670490705261988636827328241400669892583632463301505228800455385445827875372163114194132974896391061010692445701787291623462010738058834784529428211335868179590706127330576107025129820257271652043541233557878090279643308614849481440495908993100588000992253675383298163398343441403220599425746731541356265803128060699206680556403847659009036335330892382122928929620718548203375465381219447073391407353040285206812358551445249574732516587054080161208854682322380344462588329316626050102578293864241547773051070836741804832971306122970215875152974993027241107186041828720993019696702918252223858995255784402577833857576156007183598626621467245932255072110834895079550277629173636668601882329167224326920728873988721726788304606851419863308682931169785084774986986567217063575122615130220374161189357592765347671894731177116792660459689568423996302078981044311328983982908456477673057498514596320587074034932471093333134360737747403308057910063639988794840405033998598570952203190066833198165702502151919673450791676261315596026294089787077137038136128985068781927768247660193502828291742065179397540162679720631250945866589787526381571968049837085851171901206275004624771650536318339356170974061890281872301523783389796399673624206867395586356826228849971289306242205830082438410149777562245812233924281801691535942765673386823114560917880403804794936986877370382941594647008497005076098453898201295134956135263334098883098402247448309427925670041067782472024516071259636568989602167925971304194505991847846156385637220474263353919072448447561810054343915002994233658010688721156278879926443511787420836470044562752716931777609835241690642269065761805118100098050688996967370374508109725445688146064285496810583511177527642819345039627762973547930558977401901246977398814613452013214989829493144844927413795446088163866572939978869500907778548671258578153583621978302851154340710398992845258014371044778958915078453269229908005461834283880270701680599916782379559181382649711174170913181467487833484324084992204441761166042537883359823842818453781446122137134484259489070101433328667087236977997819165694516218117468988669473472400329324433793416698214593720234587783246364688904663579281916035314188930714180379646365651781576485888117978100985176295592940590602253445609740172368071236712742077934135688379165348439682805380746311117956144097201864261852977039776321459037872325946549683451996206436683330464603344271356817898160868701935517309263427719577290550305967747111847446000073535674343411846965562688458896495631933888039016761707516084118078819311022208429485573175528665222171052773319779603250682353309299765532197062865204239183395417597314322262365771061714912214614553771648181174681989941858964399670658282506497871586488528767472008946582639739514857795517683489975223596147599909690568014873259344379169677231816279178080622950479084928258595882726014597453408896071253131357760872757960168744714887219430237951184091435602892983524450516943230276514653945915007582464994315904273346324369043647395063900509764059683573328414711839573830031213914152833400499295040267652332813358925886783141781336107051117943670881026780738444719011854507536342471240569463865265500868855103663942219830102055074906149808247532938126357251245114985065789639395323481667231618121605749438771835663429100370197259517655447452583343986560793219054832208754278800260239555161812366986272157437721065908378337382134969936380672126430694949338849122390765214437481231328923850920186752439753946583476522328356402996781281793834637289539216755972631719675914012398189290086481547109086555865941211041681440087079196942725817290012451080616920036584593073248088797779023358606201154126778307832911975681688757140662315923999109883626451697187526596211392303208739056099624693804773073291135696205774631933722284127770194091684428299997785180969279314838533564814246358674683685568307317938675128937982547698002641600765491932777219492116284537872649433097465216665137964132113237176438420911818628093111723527646993571191097982189593562453319707069436395490163166780967982556385735994827149934872562327629705386428837077107949062021555261446236306135904259133202769433702960145572569432145985599577835267537822980181704071454055204285372844195812310199435598302122234346325589607861607840408656142125877876207486638830546321112884052810952763737466227544523885988302983806418712159621815964197214216346937909080322468082304661470117159047235034381935983825870731326625766955645368221927900009228650040136569465099599497544677997924618251467886403928150069614041388595262544369835126763023331667236536291058089610420503152528842780616235909182964647003256199916884543177828821676924594712545683074931021988418959431055609228543817616437179076165936668668595410113490861176433276089466745061509554416967891480915520930787276734760117264154002808915592599534048648716556631286874742178390840413009620942004603275719262596472772023741508684450631604694263491149434681478335673598846336579746234653751425679039210975480530298635396684877388163792668247550237061837383098655040099457363918489992196030701043528501798903172568509103935052537262389600589027270288795147554211243392719777708301565991101964145598940902103121598561425847164503053133094016794899475647187506550619256948447680846897980793998347632509510225816261375099457635461051398525615195446934406427849333775995393238797515591995786770612479401545446334483654766844602048456887631493528229845740459086836412622731017420648361415419095786338923404057534052143102566156778068817476505211902702210592041026452018842653580021480226848507399759418533442848361804876318070535035798179153634324337603527693311277586116619866251912803580499572945816869671008892190838039513957017161263998465757090566136711114210687057774785010967869433388694183548983439446795884361713385297035689521151618921695640449301589485066447140064621805118814305959002659269773494495788929127837184620459634644906988284963034356119970741970132122764191257988321940533091437314028405813261894718974175971067401091287714538996453967465539264891889152443084068906753297476480466464445259037826719316846885510854071451610105991026395018714690786688455154794322441780477788018672895987654659215407412918927942240636681493319310819808280266261732417743354314568384867220076708366710111025585476132920597996858921309887680108523699992243747419628178504298057196598991195797625002823712786743833068334612644492052953344147888994211063111008709852984370243437883028698391581614095244702750719228704128652090300791050998623521686649375727110680391856908154061730576899774106368163082148059193009603443197163484897391111454283119401289422270673100878398325785379587251754155128221056708120786449252511681871103547603760367591589706912037106499010668462206401909478392877760201400606378564959869223480319641437408551580820173825960769506598910261822210822422636419589138988696255506340472862954120938610879160764073255786837215057435674928281772762371666122562804822118387485686707906264990922819686095638726085198184659092230380753198700836810787043475535231817729442572120300079265791846816972133004209250388841261734685465668598085596858900020922586648523070239465722910968916098466008949154505382400424691819910825153155065996621801118967733491726261040377861800705911992081118513080618224035448555233012247142366393547146469744051435545584983552465822137405184161013505496098534833126056599132027431177023631253220749068557049265268755160246125004566213485908223416893725623491689783931188396378611855147192028736708413629667058002290353513518573962084188554883910561214065647170748913931679197976937075529481889885589899808823848091954074546679655206775646814064952052499878022324369064850499928442300550200633823901035940939337138137914162467244181726540613440394896450566168859193152107186994990384718954859807808965735988595798342714329290637602446133892191655505788423528196184408514805444448738289127164919679317605292759594498685005371191170529750080654486875101033290779800000469508926858354330298911753385320821172996864917727717603781391763109153122403146211582142514722682207593165914805556209418694820449159079437257978897985379404798282234269413426781773169586448648258538734800386218736516789624618512266207119599638537197380455074551830498261270012215151826965232594575638925908607576984142139105696078607891439726213195826316908931294477540593767500457950015840623846569101511654846438055008680615034717414334391679843541154272870788561961951763856119844644472920843422046262756454916570845225179772022126417694969978967341180521199316648506390665411985395116424908562591215842239735009854101149135421271519803417512118487483124793221158141315511457927584949171133356659704898140945915968763014238048682616509993241836174700623566180967978931330367362354797648765946946926652487699036325234574987906642999359253056998341628683170070526190207340863506045982153685162490527634901472843854076175957823193335394017787282421464156906723282259297797786021569997458322985045277174477295288462578703843530408439913202064517747662371389255470409058582666057823975139503445214902019770352967555361899414834514626957405643488111856578450252463372113973864417380362940000153638661840808369170050503847924406590061510385728043683438115781672548156584311995712461641380813619458246034877513054478794139416221726393527264851212341677484637168374650084170127099510996329045878911132482636033044196580258946479391769562410636601802024929852373012389252706182144320757052684062312558499047905483465587043049773002225319504496170241736144644148428069726208617141715480542955158111756941058852903115316381402295841792177057464335742795606057766801913990014874935700268760829006907209842305088571654865972893420618201080575158004362510455256696724946512508460959673728532409378599745201769703942969579610992250453584972049747258323037775567734737423705052673033029163545100480889824062651708922678462323156925820777407594265842013257261445264057786926707367001387551946827762365677029193416017574751792304181411812517190564349082758165558317575320436120862081625633662912519712876449756379505659180410902120442236117171024627478788081305756767885228126424588173890658023655846414782456500276240680393712527116103216582728491700383446352966516182953705467613581802779756605550120935156153950027323307311692686990721753958751939100754587760911721840183630163226520992757380186469279431539944028798502501728803315728952150772561083591932995011631833259188642099798960045177275121671806521846579353885210735441391949906149572532680451110781439464999196692465346720437312348959272720212627497061731933998241150499280631114065191217977697351654688185513579218629924978508930208470186249230471812784622080646696370408853018528018592179700518012922447003482117111606118860864921723233461188547802498163701061485300070175117445173157226562539087397872338954199738047772924848657844538315213833307080122483067757122968037542192179878180930814365127233276662006008806725963704219428396795959179430233005353286868929172613240070923434275155703930814984111095165787411381356235843234036918992219479037594494685028194704078606249326838284321969794579455642647647597445924494193893530267810417425028639595893386879485784981968277709136289689757043578968042103362011146122147023374382679603207127464186850613847346389636299752094886333921266222075158102326650912600835773665311520829175927793193493094734007786820880992371639231454075062545857849678125394811940823958495757589013622060103782950557912834041956906747041713417476149389787088685297471278961703939896603544772938309287407680387624480692994127467720227488033004807701050058501697451932003096428952990884042525376460656085183066484953639648899311044885423085228941114096830422797597686335554368767300311506785537369288318946323863795827874093538010325784229571895231188200492217502683986312879319570320012125750818039016094213488397950383812468192734566950583593939422125096696277889385375871150582756731069036547065831261833137312468125064032052067919437302692461632862786367953813406443474787090994366159447106726952339167595855475273829980761056765496378470475115754646228299240486751775006253541729415860685831810417224027933766333329224483679771157388623731817145340940836067645952618915795249639533917618316281934047988761360764507171416529000112729695422365331062178997385133005260042310571534989874316052974931894552746346156455724382618273593741808873433474084710056677867098788257869458545740639905513749182858366016209306972770873952093616501660396125923716892743092105640269086412228218656649441562119145672941006125665546975988295959141065385466464095218601613155816991112299034905001856058037732259559478571355606194721060303498690847118444735479991754281405441704569438575824115831286133774821175591378972139958121339669183243279922719294646427607698913561569296496920115022506524408676063957161307485952856081354891057289013375236873587602539790353720125649194260777061466706975385882503466959566581770527815838189909038439913098752958372375287069642970702347785019237886091817077311217234821955525254630785923696700477086916300715050992098062254468887238283163691687699283121869433967793470928765872851691397546992904696163636488922200347996249683250664650228873195131851445982032546106985762888449721129793011304664453593406296626599364318426559530839317496755052498455468387343959005589146835042874847493057386689338411409728826980386611568634308341756128061974644569188098537714723146591101716391079828041176469183240426863730650139506312638995033647150020474616401493531380113406550500172903137466805904729617436780427200831870515009457976491786813626746162278982683991112570486483947071401265452834564621671956924115305795256863069195299328738993961306810214824772943536242924712681929590602994438128206683325194274927721085369708483208491646118696341381005894559982216500456167282048722438521465174500932637352598742156939595413129465315882536919613807220905923654700853916108589643839445001399403873141421137164591781819585733237314019284216091836697475255889767325234562529353284163299363634959543403687514671605978767815958458160432831874354840855166266287677997188261848474599189813271461161398628243423578336090610778048802389843378446359044162781307886283665060965196036918565812971980225781161756210014472762484898268397113762041432642600440825479583285854090628593650829807954063914162906169355070043191820288991978266068181454292629105444244936091528030571319884398370776561631928919496965999346927647293963757570839576493609686145252223420349766743164797781277985604141645369281937676314922583830727844500946834245656719699577508555343399651312503653912079291010932104520506754213604028909121316501767177428992969380780145387821887446027445177501030561361567770727697712947443398018727323702530853281999968640278107918366459500549210403723084567542444307818111934140781052190212862779611640342781730579279130176904880337404503508142574926782260973080755024512897266133013032667910568954157847049549499311898610441007462810070072688365280656825522939173028027886949802336830360319649175097051838123968849810259068917221070024143288542551347503514831853347126570483178530946987810216623456888603301918692555931016598751876146939702248657818788930756598634961931729964017690710784053083230972624646395153607456836588393555624229828659457096329459758713651799683220826500717352065909806889739835881614963508813467043101773554845541275143585890986469640834918861426676917914378895404137956848149515677716016322668849180906124302325090501686998788251465505111881386688424783640762993720266230708550493373466071515380036756451063223605852123881641948640272417237814432707323447350796141018400902880467881932457456480120722558736378880611474899988344191923374362220052470942462518234225616009482777308829545881586792378361210449802075109692229845659066434798015632193606834916414598345391750199906647649980615541517756960220412230474690793329078286975724600323188817354567162726066217588323137679900745088606123813467518420768350188776314082505122016165355385520466574094081531778528123797076899809505519696332969012040978863914479818849026659252692102427181524914214498551555368790396309745588491855113466763513584620751030647366708903472573066795142365989423391775658417763599474051821923028325162326302412482132709748531187795725416297897272532070455446832224504058016299739442934034106253563810715904927560077703910635332299445506934550891753239736665529814865553300240848302935524031225531539496698123599414195076469107118842163816020882725118076491335972575488759669333919064241418569671119980824325186078903929147385208662843725147456078327344658662812475176478030610803085850903222786057804217894566057227624705782642929961913770172997157664785364677832073425706921622832927679481192893609282387012197495781820851941481329329806200022047978461745072174596501317270132920610843376883462384772951985050581963056286424493018903977213881364889389600941938652622788514880948735651445987958882414971656259084551100239490335514899338487561316180173979102769788103439539879542013534567557300598883601766484916585231490496205120604499194496285210494180414245550218239405359725139972596663066631906550461442340362039256289541623647803818101697198063214243150716330805060840282706747502822774003232313617327343122716415239444765660209116719487519156454459469887261561905719579137449052605961627414850778790894200206286600379040673648533943539581274021594045846604444313633597242508004863030042849195467645569070353514577804788202643384610830005878599937727196362006705898625105985350083117246655610852751831051997860937715623255973445479427309634542458392317205836584606566847842878186532560506442070585723413879133346858870276758547934989156730559211381275359169805366930883962941826900611174701037661088615453992670486736761083116975587176916950127702635006004707306826016538085403148700494377213756363926391694643197889914884294597944331009385533425574045351414267191673740896024768822527227663800272361546974688501288919261531605458501855796592140723171046445989478204539513395900947841955059312116441439465708298720109713143630615936299864412964993350350106792606712611993976844973507085645582734482936893443756729685621077285815996163425923195855351629232799718935673073311401705024496901269649535367678064445640342991702069464362288945747807807218521885586362109571749746541809333401373467561113251547424371660373521317179437101650032887142872582488562526479817937772374665348227091670230669626149827524911665147840352938288105836474316661604406800300353708566731929398861643803032470383556330094181342375626709201966950472579507482522017554208699622179300358684371537140610826250778894641646222328536464417470862678743290179514889916015951064168244418249619120450767369601606313023663535092855981226022188525490692518121327053420580746337476181932770911637946999422260211501029125096269621300796582580504672338977475795105934523122359947597592800789587236507807236975580494839915672261211881625483864538314682569552050861228167734726555725268543456307221993251266481983100286037194518013194436142059038013140090299984146011505623737801579340188113948242897268213059330508247523734622867491141283984556077406610242891569463222813140052651612145707369376377223673580829458919545478895467775233396309658016135975820565451584969786284399100565301887832860708864977537523211489987531411762629653099147760821563625159388108393239751326592449053277248896482400167671519297864769063702292984549788722557740964613181496904133541025254600450823778343107245554821574012437169596359998584082727548944530411095396823153166222005396968621512496023464434524218844817960331109413103923586228776707295678189757064268962783962799699536044159576610994728946268434436481561230958399974686913267819787081791173785845565161717819160632589422438203006924200146962973298290849316592947540191282500848868256724179314998294795848972547602616496312967564028071193894127764023959060398849192164966061604484474151923147241618170048859537872269904931921183543963158123201432731149558861415329885496568180981214793050983650017245168853008284927441971097377642528386717228116661763928519726778842364394474500676164859337447489749153637298698658044703440820442145820445785551049646624472433093529288050159947551231794690471401239024675251779152428659237746459204177343784407736904837595645462062333564513550185349510058969335330712586689296045025821928542031674968919666347850469573592080159237022924230979872993550409680828465075253295176533957377725646247319135147464140834823434256359258702894278630498148136496376653162908216183883959620151389352524216996013401466734791516351695468441390473454109566878287523014541565451442062600565264185186801229270105736617394108317479686267470712622976645424886333900926123864886534990900589613124657161246407633111633726923001312759171758136994282244058928503342862164006759332163954290644284843816570391512492054657381706612663585156221030201812223784657687270218879094012498412979219865848341551493691625642089903828809108363769715950105067858314277246101156759030917244189716856556497512273332033176271262498538778083280685117992616501209346073707084395323901003042058639014567134881097844592858532500894119317062201090292725032404937618997500676909299231107276410555564546412073094958605083717007068594227908570967486162750215698467571003004285847787214214317051019614038594795577002063706654175235630408558440852591224451881726551415383706047367242416837463580691731807678623229930959465986331864083384544031466965841992486884830989704471606426460115949455715653794463167109146770696851216041697523144063989993975634017726800842833278040042630961604017423111712026809867128725163996425375958088613143229226820305516047399817043912958104497034798381439461071116268557128291479612373365208063970664581113779663984245028988268674568808718448809913668024500225455065430055726083045142696260158365588443511001146303131994028271153973636390748840753313452582869044039306337630011496580102811921593439994786651422953229133931243955884302303161075020844782000976991022849787023466402522943013258197684559928663877178343646322093274376558151210242923250617801476697296050874474657600473136912539829540340187337078598561238255818104614223146790412968899718006411424733663356770838793889453109733178384136736342769580464263553926735694667642571660346404147879013968003379145587491783963477567904849813010818318130937681344365449239776020650207690782646883375838310930803966610097939821664463375323236948156223368814122117508044132551242527909188291044504279127273778238823722418497173023126567451279757742268785675018790094123030829205869921699040929805226882347803029136123717126683697397125024066223340253086353860762076673304924795263731564203447333234597919161855793699179955728041457681969826992573502519835244579975831302840095388754405272611825263358388665079461129171120889977825110005123557981688629387547891408343013340668483548583311947920201386192122587716555598381175569655027750090155880114414088109080446392208857008919082342584163219819963392292587139078000907586976491739138127563226876130309348522858851160430920161187311377186336500275751938839782513550984306674846275289928587286075003417148475684327850392729380542097093620372867602611893064867234129528435207162388651606751160405788298621772631076192587232404737064725294060239506525500495381436091262100505496027530968901928864925784400216954172612068456029108494279428662813910933586406458352096110093652456129968215852579793426286031025986344261361764104707273978624908964588155583280405974450833840027495931879994492527210479236350449442109640016121767779792352932879191847150266247912391131833530797908793828990224762215924584812225211656382401989653044305348824098222718498545665527496701402308597175479822660692233472515715455096077584944942315048280840159427859107629689088688948984317808386501549214243683355264034325180474469026524803890966200331315605849860024297502700780561841819850666020680273967700948453566768138040866840076220405919954608990856700069197536229158146248090850035724452198531559343993764065956480876773878584250543784642842226432182378817265074497460794643123621671767000330265493558171234105462932873000811789262052853579116411473064289613785643985523628679454362043834499433677034952268092555027461015046319024829883200927865747959067333131348520985314627915723494137319571224832259633161938065114823482148164402257424897303294588570180136139793653252148849611840740585193434833690201746387147369747073403354571958079509156361707491341399085228939245124862184057620088156738984431484537283645492097576875006221992257191486524787605105607578487167940122248713693505120004074588301937912641554186085493110105663118021786817460058778591361146818664231049684243791549707026137528176346817293317522839563941728838150805206769695711671665276259502784085073744843281247591691938741800226049444886843480592329604829954865746725499088905314539358301130971003783644935793765492331137010302744965270735752828384987806473018373540270388161249676039893927852244029191655257768503289959719430270267818975963820801652281194171526243078235727897469223995381142660129496371336918547096211893542400882020087326774222407511167924615431321653524845674349645799012173175128135777861827489444090398357574289228576883823792239772064671118281502291185745743763287397267616006940872236570205951400246441792378801595975576184364959498643215231748864158989545726508731210230810233496789856874901003316941950854526613625610398902061069366857322211975055119340690289736025000718384953969761717816231358477034721969482557682721734010358033902405641945625535347366624522748484887768034077453911575826625691359739846016429277533519542306127918926421356952850174905905381008392208959973842507765295149547356538858358042713680832567432227002842050947129280891923416432904511833418560678695375426117535982271774070131834324436232474633256347657963653981109075703962076811331082241981760039963474148651027574828135705784524748674402272192256038194014336065046187704984582440087057919935899982382084545369658387163154439775441574672980363538981532635704576742977902712711197789241928397820322082175715956552398723764467484832417870258338464369286432362010822491837809867707477632610111587258598910493730404817869949566729930967848807634316256765666518084556175967681144481661648075059689854608504937154213148058287852075218492478778847722148208648146106354880672638141744254449266432623685325592534438999741005411369661203107755477385942637099350989112395754743735219878275123128856303040148556226010795248566285998094303643190127871013688466733577551946084575876374487086534879914020821555520619190198700224270497048309202883613823412917678388244190971348894610007512936704891393221372847441716155991926520892082057795493746058243683356553356873991413628286113493793720962825064382198795142038244629677924231268767063387121253152059903201073022800930908211362789790321867138034980461504768222703751811555081340307698541094492638540047436909905670628996148790722254995791367748705564758481440257453133187095588224801098314045725919264447572296306335527118682072848794404498329599444811084602889606943300722968867437846817902242371596571745042707381674194644532605796141300878473148053505201761768085335942691360152607447953787495469667980408036196992505253826089070943360203473280457102648923493319388881474020876186617884418985111773677641772351749771359310185450153069459421102050072643762335832290069473629368113793365972674722326522691917093719143983814068086171448480071827608998092844147745503097544547691742981454529934846922100720930600845964080008454963373268793735087205854289798761181532833614280970023688135772525391211766426166424574295422377246906936376436487803005462423656939305280548807319493668624350645140707738649168935621221169680595718696063941055570922787206296385738900629706095747086516588401921438288558965847310362706519494045417624450406152784754148679832639734883428454727099529017860624053556365723952423482912332302823282898929234139343616357687562220458457582243759816789261351123030705504163833380102879674735756685757253949532715910009253514574820980268326539323539191568026369921578393202677921874739657841361939909158298008827402965838605477203603680614414870856090009406540549887107618833804817958619867148981759516327193571108213704702280426393083962329136642386525732895129897380937508769206892595511926121093853774975341170342275800527829272551888564018532668213349614039944616726713835905003270102755487737394303313122591477375534199257634019404467938300590942218849711764115135467991079295956156372565372973293434018003013762795021324463105455820120423465073260210169007834845382230360168804475339628173726110254449788217018674596752745162387063974122561474045718095284350537566870199352106660386300266532839049293210575141309091680444148158351125359472241898407028379891266101167694226438591973995020690417349354979460113858454355262892100984022781061509915631490151004961255454110495499774193644568628683308703665029761817708769723344735297387226846366397387076422350333585729117219447939046227994481699854511249556248647024920475150458549118027656147295482587331343788872425842144704729914214009556889343756551716842702997698718542416055236156564110933646427609628909955323127615658555766881265204310672227230881063937881286615464682449676063706028299197306536797330381611070817432860100124902863682381372375774999400791207150549834785234242965913633154019092657697467365270144526818934213403711415653116960236633590112785805667942378632958417037434488727291851519932343523080942579456671561149890965339021798218616397096119257355352066122668729061387314754664099737279407163778351688781927098603240001694166192597296180110263155848577569140255611078807389943729538684681295841634936057753298052117133492353988153350766009704464580514544813572365975881377581993600227525579062422776952454265935097257725806463087466168824457205150180942018138272649190411715823063470450095624566171743225329446147648024034361326034620008717851195759987129216842709690592953004373090049524284348125275046460042365025507776292849846259399818014535278286424411100791450957616891881459530730542172747139198311283772525875689629188024280334634741311521601739193392775742424705197962439230281960455742555352736684776032158102727150521992181131182899758748924875126198967165899584473820030396866978072232974566141885001027865323496941827092690454614471280869428964636975280394397928135101116157794798173986186941385495833066201491996953965071435239238435367182887817457754820876762898884163090158392485836355951666011079275338871187673184560286907911563621372039610686662854441689049598625670192047126131741413104505170860053355210123280812793108089887350336660750629361925515574757768881458041177229120493719383445244617942333419913068622329744337348045047772228535863321985054362926627845970390704017531264918039857630776601369066173980020385543270118794368372585745235731834710728344487726151710359344568669477017606880015590752824565952230484592126855395806931112407835346774574672769260909075417491836009530352275450565321152453962154104684296392408270253663989245655479743282694781401482453730372211503883910491235952807554726020825462575937359873709322733306086831110061604415045557440261926117112904099287182765180025524878147549271835385801662174697643319796818788932966135762642360486963701707319756941578823933830851533730488132941837141201592172921675631675348407435885210777279288374187247767139447502260550787583459820692686457964370359101016016013247261313219157066951415106141658576642422725016404810027188793315449766912878433447391198010009397456723145233095842041046795989293090704173919550792695722850075348238833251673980538834866446394083097422735810166013245892058672409912045850564676450690787946019736481031341447132408399290127994638895136504030916114060734163776380500732362619131567980422775886419561572090038114258597373778742716478768178277879692414543655515520141402313676775382552017884040547977802629432819365175345674432577570743073382588708350657679815159724374448944495297989683735953990066027671805311417647507477114140244825340799648560320968700865251936748632959651443767571254662553644319931638614141879073272811950879550591317476179618553644313551684430296801894603832674125388371406119046111054197357564357873260559701476783911709425200314523044315113087485902299135014332558951833886375032311350354260627266154197208666371174996197380596907945986820974481800627870741796476654334579965967587480563258675605749395191142783587848093844355626529462346190382796469456844939326947277505743572842302707110598657729721193709156273410349642942908317816408865720818715096496549576528533538405084833244198646012003878857038970778067756320784767559776953190523126086684691344677278268632835913547175802624337380559444963072240044763409445958772216139456425504871140320434865371653609553877893247268045685092256966087930091084765266852155270038550658813532175463716773830746374690549729590647040332920507331134306705675270059094943707401662365116489273198611499151098134957420904523964649723416073344067751976995508355026232217018507433237391014730218039811748119751390452656680092758508356241694266556512202784671779276311043459672521246558766590095871083778425406252486082596691740810994177429736753493495205424979428830718223449113194824083581892917667287833563106875057584630610820535056935516242830783719789721309003306140281859141532995273660027458624004078827960423009870261569190334469175425404270565927731406246259636893790238603746758004336518813144361706587489602268160334604730212560334324520352168241623298508510121224580589855699674100984835320790580307452155055696717838526449258892161498209642514667770206265130780943273594721587663880308196543309178008008194963646956939965695323013083801042438678548913021148888366193635807508885652222298904332945519903495407595964691176681951241302034922369577093087651425941191920510356982296492863970347933318537710262591620489800143539150225345205822712720278894877406324060967206444349182462402661738547409813565584148616027476033669507027342534901649548964719213322136098639609707295019600223144360168357168354647165761476327002440819249016701656169681706349518923796892009928003795229479233107900283293431180020708797732331458252283268598311312949039082944779409785400578031782980196983960919685941661157897187816544017774471089177603816602645692748122340924682623413090156816930257180745778111080240558774100471460820540745963672771324535504255813886389357359773744410519842731216619363247872508485068296619248381561564814634029655167049437376875446179292135589905336346285152051346888582752554602096395424299910891447280605555295248243128100202462731513076369153055966028100954299020972632678431578612195600775384261261975442599226965199691946801080042880056202160263112196762571669427825794401516407345917311014106461826129254647204740333633062329485152049788003439708193827156010398221669766589298083543794623920618735707350377822797830748157629499020248900863383813505666740927387347380858445181818239021783000072022221903102628648151436480695004779376700113598179383007830590551003985237509864987087373213993148959287247924402624475493130374015950786218877969760593146241466263068456339855685154112124445437272930489924809455260438003799833841701465401409583862525567421267365563967781500178014506659870043620030168554756648983359602671205235185716886809694457566044089910567982314636601620226979316754713070115827430190907661511085723623849501449627529476652072814299934237174107926334331557624542495764050236757675261588255680112757686353235501236396448711830512679055713089709277203011468139442045916894934901656571778877628719968776134605249813126409500312073586120162800244080034147999214519409011939264062068313752178288963617222105986356190315370338590068863338547644835101162345449032607681515500740552429245107742018596418520405706111782509541439525874722288550234834891739830389619435988742990167148894427832788843575534964269285178691173740672707269873715897801485606008055282713191217150906141242088765191953906631726084788496823674856020525453061630982386415700913209721331932226743001172655418007756460291644665696599199820996026374906194193397174353287429644957286860607193486842825401385736618295864674706495599498712790050656486798626165928259706109907646378278111715586766852533926569420269934893274304417498375912610869173317840113148724113102930232523328441595640647625010349669009843781475585530312153582730401182507137375854283514382346600634437421612460718854333312909853163377457515239024847655213385509664551352495906127039659054843184920646806364542448559360343405757668973663806940130123021227825883267984684579158856635388024914934196279880380046782944368914272682081202714620965162724087207142334360092300111274454367909377957339093163414634256043676854970289191469817168344128591436919874805495878092029648459757075030131751066451950040260750663157162654144839279016927421670724266571800509107922984803710992781970198310122465802073750517384743246252011482393205378903370788871410563093415420847353161201391952511233701731278161739033229301225354227730097452675473918269831169061707244750842223012119931944747026112277797057260788843167432405798375703959993634195444066257465686575472081713362384980294570990163305133685008259774814762511960769527765657112433745045017831520684202316298802934296196870366873002827801059160710175947073228519479380263201452374825633474608046808921390106476538186158401803954843181140456999961890522211623077703656822725522323307915608437714465524514134940298185786418305512837545895928888512621691016909329869935837514617352299662286692552705134739226276689240771856114932043376853418164995955546514042349219417516488735448824788450193850899416967285748429274267446502035556331153106268469044313021261282170296496273798485092832377832593964366131568136655642186974158604685567383725920866123885814895316053591194418868335322900556234712115966122611723238502932367506117934503080106893411363573385392420844191179166233957947751253906927066482592020741067217532736443699363229840057151661650319288953803496585529875775883949207328287354339751404912719421629137523511349167690952319239855783400445080005417573688638493778547540049334087561095019778983758100820002503102937237787731491544091050548084447671451165119247185583862403575579526723620316330209252657355484683286575802997986689121670018867230809820936282043450000054574739918841531920214319310357953476321459239155736714670435144907585411698829899296646260173369820079716890701244356163132783237761840215755219593745042945605494191208494610384165116644896684724948245458507562752891200702309596862053719012972141685641962510369633680169420401158197132851442495106725348867574492239792001854938601350793300960610078023687114718832326566376185427757573573975912928005877323952277971463265531288481821081587166082838566388798944721581432540948693197281246837522789383477105796245043591437545603164476041023886684859722276188771824890665924830487863021379190931762725376501477245971556066214661632240556289913583213288904897140897781934747956354105163450934112897503505650643283575311300619554037364670770931640195948266694538431416140701283581652183760120471173913307935694535627353250339918916845705051627825583115757724496859740574788738872305144652679785574258077402922010013204959562771999556147902637153346982380946488608855682579644430183055990289524697961048132498481558379565300138303357977162230993701424950103991059692530038719670785981795389283036179417339216805881569375276415157366793654796119930536141389692027117038640068228816910248051044906659965212106500170059430687796996348360978307737758474968122841438442291632702230116110230138195172649970617415763798203037605123042153323023513949169175384379357239004560686573213868697036508376466025886512433488356455192057791419395932291480583539229823154999369778196522070204625334862700433361814322768594719606075497611876029857623329672804000449404168948660553115909248438459090657498252216243806537169349686062092129304351673822955934839982333094170947876676424782956195525588997191242621688492149065023756082362457890191860892542211901855853288499265832638240274186023992806713001678881900223399902648635793527180644166448556681996516658080038612446122313884651271483883577284056142886618156411894759881133933343311976553897828327639171492984501243055684021210325412464899385826983686192005540428834781189303391318763354604334329225879925538944132986153534529629894362425669924438360762342050583588859533170613404649881361956418776709086741528550162981356615553527789902716407284304208652724570686208672520371565888893740123276978488450009134998267831009735077684232897687197266874206887942937845219514356156838957562015110506384151731385287513845780817205013411575799845561343516488658643519656802286271637585032923121565990401968528771706047565154620884906020290933112846873230250989625043417108670386802111979113925034144293155402931300976950368663246088450501996696221118198743613262719005588004639301983839765227841465163166634956491137910909576420684628552379834594897162048020734160317894109026350108861447203464665930348212358825752274583042474494672271859336752682961599813694972964961835078684376657003746503030719129754632003248213208319194047314460327691751490209226658743573045349582652512577083939594813440099135398324592781582472135038986236547651383024176216175867875930474467975429563158024925138846817607311787431274950620840439350992449696730794759165070751122039260397919374697793725587770879480536093763327338417245176941787861782695071767549794963329540122203820931226189057088459701015006960505180836667469509743397544942507914814837034116145609274876717299305788911940255254626299183966491479197821494910999012408691903572059668340238835741592372723496376028381952213147670269852487038885487330198522911070304352183898512406076892731588535270793918815317163251005761435487069689777542942983769492386397664411472354018772157862690737964646335535626779507598742400720443563235446946652934084178070189133752405644525102186747938434696167018945071768627803754349879248483271610490215464929677147983820497358677635710870810766779150291935164025236060836146085540751238973472326221758532189391048460453430624271551024244294142816518031148468907719659795691762076150610995547960256321355667456952767468688469629608032873300167429898335881767079309776894731198712612337005047031895472792167594000476503962881536437844483574320308063778693657772105495766346036671849616365964058436172114022039854112915292844667396630185691096015536527930849885539952523422231920428804541728509087080832961126212121828980323723342966831591350856887319611077209171059172860536987320438549037917919722160243273403802444993102260144040171203847682960689272621612514755557170316548370543518793333475433703701407262158531268440872957315640608621352768842125469961816290349422719459313368980136453291988157099838431060304283528538922677578912744045712368604794526299190261445632827046339508086617162288799704763835050789467320887906089652309737917370314418118626082901239135029950472484706083769226127005277196242935032091762349065466069557992683609617878253554652009627517444834516032549045160526933087281155942934121173598034108624860298896188322537569606419146351779267198261253465525621456857994186832867484559588438988962082537341235544310309230441875664090853466042909430058991686590165632536748694499309819970909303624416484193469928612495218044819741943130327573806205372334317407165490361921847721651508691871177378130888104376777576436622838076065274903589738754136029581163421404080827240082658116687460030638524584410412351491490504467772466468317795720200724266565791593952090417980371265150929812952984349073578091287910211969478334879216308498612923759172359404626287757573721397801593300380427983183538620896837518207905960796413246573465932962737848755494131230062075486531992631583408027440650303926970951494973211276835363875684524111511540798022505982757433060711155834724040551274285295055693857498766187638062277113700046855305728542257888199802550153687425370161707169312194869242473576802472070976426052780219187481325066922168569838794107169941173872812418939709802815186322334305222017087243800974904789145294885507259564685332023551749483715444227628413991982029854670118801470483521076177798326818403351719874354228971264834483817889430592861336334598594813537770491086207235637580392136720107408796734847943170559251875396319802942650930612934042866411777801262619091330021636966989416131698747713145121955711515290459473163968175400272390821988815642356020890584262957644907596864945433304440323765427851627910572244510409417522160285611881669501339557053780642498433331136682510799123169808782259734995533527892738092589756156136454335552787214437656958337551568184850311723333314901857909632736215068900002495088905623911150591015724644118238511052792291331225001308495121812434235070052680614669762021629032902487695383711905327447571591415957838893553207810276345691969358108203043366729533879483909980268219179483718028466988674841834309079490130445658315784930470629184535023795324520132501911571452106427168924550153175396977325952518748914038352314948023719613766376254428876468356860346813085016641865825885320850684513156226921729941505424541951435131881844482011442174002780149828356119811692829363545186171319525686750973152125223119298833136214384470174180160055133903010219213557614880711834800849684236201534141977729210524076163705165596883940379326014590875898070946326991693641424473843218621418932642459901772966135972974631003751013462278940789021528898895462385847529385960067792484828710855010467797585714949389793259685296293843156215794105244166366827548129437573984333177179332448335634103678074721227362508905079647210512809777746433623909782939388287411372632176751001975292135433474523922107758739339614570955719308786459991504736735897619717675383312313435099257262266181753895309432851102163788205641316240506345837083688893434988130871368067717386171056870579959229561735922767392708823851721834242599453753629776448812854662628609909279128951215675312852522062268530558847824900735609951098704963698376761566975348824744301101385844792745402290670271987641752401374152702480343849759721597408516994276076811488925242648334946469696521038747062077741394547988372037186987394736327911859375680977308745746656232248581296168498151351724274988408837624499311609042578672795090768178061375443814104651418219368508716183471224729312896300495148000608088729711608702477404342950792676432600861448987039706403680670512592414423716326137404939458902099092541773132646407117274382041479416828740702766003882945340338218635583151515658192346559627751654018172440690827167517042081139785324903580622938658676011938371416917075514683068846027519352653102651966347878679113066863990225397987300176705094939484781193817511206070683513912550860467714775827736054790646166152385059905023986270836543482928577002608069217277019935872449113670293175621286033191161965197335605913013921357343163920984905967241077191223013197712328275252982922477822064247215933432991165624264617129510689286666062821071213376138392149676579838947961086183504766629279652678625737512932780083332614774826961149672043597436555477986636427096482513026005968661709373184464129711283054352204533657027124724315612126980674180768458555083539551123945820850138145522418406672463115022170712235267046198665175900003168712293531920300501358410770726013728050006684331999983694424507513820224153526628841764847581036658933570942148861006677356588193396471597910377271983092977239377542817223738017968407558059763108197865365224005665343428119589113702551257045336688194893011839302945871516502431905307365393447353003779731858877218004671915373498424259604656450133067813076108777179704016615779180610089596467567321136051017933036722349751065593169804569501498185237408291678394156971799736796553791704241967151540408854148523895340981883403167407631357830160618370494875765122756125609523499760015440364692652694748016692984015502026395282544159500576592150049721296659644606332003396504199688012416513049525849445048059887220667310377426939568801365656216839404799155448258374866987729055966761404408954522277832604866387206905656184523187901437700867691983095222930332225589003493094717413102685550297425529824986341278672512393430456925094546200272189311397187187320270163366356747152365558322120509949994422266220051682887716187962028217152108364128024353706999148326230443850676554108120515078528668053085655840282183932395383015646497163132199000208267798540595141987108997435775393191633651004739854269833008636777691601332496433332148432275358100442351209750727244153119469253051108799554905381042543991073637259932590962942161820619304229226770233996155359836922464938770780368690631007835052607388759177732874839223626445527578363697097187894697966851636181803611830817795829818425742244469790726020187885524694570206854852422809875494576661014660155221937736816226964393193886750462882138070449063975008285414903227028400318723812344289391024041415152430353665729169711069607649527066381576831690907702467415219211539211632955510542189998594335322459662737506284247119971184069556560957718895708170797996457555201489839326775190159835216269337091125836143780728282734035386596607652525034925520366399720021079550405311311233797297891020202961793653021701447364825516478105893194644969367995781272605839362020953216361661013058693646194110103274045073279585644583555457364587672903503017642622791868698352831454944580131350215590646098986196704314609576518271951518570967544064831867878500844824061438603504288268797555972594669091943773789891649169733755763951183753747021831969075497211751986206582535727123823999663400331106163366798606667452801612764122875665306015526489289996351726709871633370590067132121642334599743555644281008327437230537114074267152547235701949914302189405948406231543496145954858212017688046127570116787655126453462279060583744923413041976745255094722229957421279359561457079763740005440700771782828909935446566581354392016207034476772990088966520285952197866983289538120716365596493635020839930947246458286670839019245286260924746524629184570576810542829250436237827802616005057558754762159070918663730559292381080006628030967313478733136560051753344563592826370750189261615790797118584705224790588875292964139395572446235951127666425778075290285014416574171090369297580542745464381461866633332780777065790277918465322028896464585342952551943812051947826499268858856310682237813166656783951608100664406432297528595231355626515225358208481205178898776012762318991587706624892229672970717053525834255821544110010528504343955160320101502991970175791381142051315149796719816628276275183962488806049881716744588813846842394507090368323058229967318440298817491406640011114894675671857775758834780360872721789886922266566554941478094691231868774414259381666439819791905370921628128713927834266507289895611230366188265856457742404360624032299510912904224177801182850875636509284684038432342722852912958344752126265798483845371541500641669458692353658165577129046478952326135298824679389061409291125922102936558338432839754093671808642855974413197131797638583509393396255497469195516984383846348942766593443734259040574992206203482091271055030946756615857427877586602176630007747181098795909817758446406061458440065215795290591163044482881621520067278529147630521843041708622499504378203781389473850210861558936987895407685185736485603448745940320089400653136674909225236180557327060006799772428767672930848533248271876247582902060993545850777798088338846995537454307520718944242945987644258738822608424567034768125772850269847048352467516730001256810008255449046313957874126637627689300496534322574345501053707298351090651666900301132292388951251182941661342044130160050078730310382835610124178616537859850379416101049488220320634477931920724284064208852072956462084849693365086821063670624921733343913509188063798418445484536888598754586536420296254041208066045129094011805885447847237134539813239443642340015287072026623519086732128655979811496607002366844319916500060191965229098627321862854000351862521896592617317631447751932070512881833291946668674262011348887529963577616904896501633332214886857359843510039772566220734115870459677754085010368332822407142308099003087910103630833720043829377915083768368531338382833733277522553617451118788464896699396188190039168634433969938488600297994171546633946479960558695705236494891169453698150731683064657984324876768796525251440059170131635601048205274266805495933460798735943254323271607511741862184116165267192569083655114213470660313542968092687187271175115980138148274389110201113771056922822842394007203944221725786793092711027560631194816595716269135938047449091548337590686774376834343707868796389146889357000698623769309301335365477065300788323194837073133058925084740817263497588280542286041214130395607892358493402028956824716954656043615681633596274164231262194798570893189128528760466609562475923803124464897397302155267693312429157866808863260860346330066885549096183703144423829782994803515156662130301126493105866242201071194110087129020191981927299049138494056641784063752997996518278772546019767160704894686396659225987731182396399681151259653099066733605295059514052500802539215494122071557847542494044932626484884968128514943682071697668435097844013151308531138168194805354002374937252317817946439277784180557243267683976972482472377066277252231784404070906612100037297096926585897329764120259613471666230293740960926812665440025214464616959107253317682021768303913757708853916852760096762483357083752900991349771823548847898677361101755133251128027746031595234093653733771488888023266285494763400191994303226072828544413344684359334951668149641332302392850706316754613147719672845678501256471011016977955787300000617167381869992411120318690609891077783061164619379223217453710161161761572303150394062287352004526561675634589688348444288697385992743582398171578610255801201849483319896537865024950012494065294752753337581176132802556368852189779161426019432981675141694007472719300233708340960056211916245946386169835936356377116903737068161975608950453339756413051624250249266266314068623123186776668503783968145181462361307786788023081568955173893335371131165328209114440516033551849325084653422571384732458040534048282197720136880707256225127952821749030991791863631163742537571990202449141885090765246328771177474518473570978644494913527783089115667187859618371894649623067815228264619205685425523094162732137926324619643861988222450537305785629387233577203138142219596878877052752034540498448617132144438442642317600410382253798946877674235527120891127560452783877854570929082139487200381261646918333775074016705798673199288570985250206791360428704163146119683549125724119102906317864480037834753461243452748434241372671338833396370767949373165924162330707803074294220940842348307091299711640717862474880971653052904049089667831725734149709143012654966680827872000194508720440980427957726562476525746667389166263207425776732936338999715225782802080853619261622846491601227731339128675514070139755205531626413865903344029076739528545497714102633321403803332763668313286305439860454229093007075496086938512085709679050961226220174991755378575962710511454843543593244074094125548431566922959265502161357757840549363847131642423361921449316350097788855036751980389823309236141621265172329519004103931886774833235703704078646399978943789189725553709873089910994391257650890297119223960429518089375403833940876341908600760035443297392548825194545222207622347699650155140330518736404355549596432888569064289049814437651039373536333554427150723293536004306261827837946152600060250547497138277983272299049496020892047283043480603540311529407007509780060838896920765671027238954880220102932115283260079435876864123322266135794708869581863474913177686442537673181232338204638708375979554245681861037204110430532493654414001889165169861635485305948626612859181219325408041030992063082281861142432316574902133019300089908126383699034488703774999498561058957810791138279149976827511362524337665556993976793260474208478192975427516742396030212839265331010402382992573979610961782458601274093610814949854838522859055639441114682481730962005432641264678763538456513313155920983436399916981904925970068865440867615685201616700292098453234173674990315389879729323185057500385530812854133888881864942644908885705165569286788038980501946425905664866985332202729601103098357745211305644691268555228942530283560216592341771282495139903055145205546745596209082911476824396218847307290404551598864345948915563194116806057941674822289554638365752824846579113424070477885772013806482618571299633330125514695061581707476111376863532958998199812461696346100793469714045221725943671832702439772944533374665257029207032627254537761042145508341206268154391234171451794870959645679922066764664994187943548884912480448413998263638032147657218601529093722224919574506789393821756786837301252756764101951404919689257942890695601992350790720622358273573271138498503804952330744758591658926031881884563250617330973919271394813176368472083354783085610849312240751004026659416616996703395909396413239138631356853042433655880913811881184630691628844670084984615317508599668339659731439143827878210476187528005556791765227195574017417604981609089766317108209032268694653592028070704660970879616353038372801541395157395146676407748452273167565625496190173137488090319320740107191026711048033465177181027931742147315216511472903722630411554290231480426215692679881645645610119071802887003375926387335680835761451301811248882704948111269915923189370035177751785557050766066008854648659814749915308099178251167921313441325370584818392302280891269549296782829347699296996549015597547014099239928522364037954721878642568928426068395729597017573711533856084555784035817458360586634244106033985974531210300129477720660667679295308277901161433301468190272775857165910942654141949273651081415921364374870240330566317633277131718160986643213174694405459325718562018227704498783298520431550572879891281006403176815105512586070571367651197227588288825603338299120755584767315365991933802941003789245712981284939126179841437579866169148098847972477090077903168643665865132045233499756903946097707527420991759182318934616088064653052621610887659877656512171668022218947079104923118952513536479122516420377636556593025209056594298914222181427239951715192775290477020789315826843480967944702659926413550534382997960353260007765387271201141122836313919467400222075870434549132291030806687939648870435186237275219430323806038395104707664558779087308383235274541300642858641295645156872796290524369253358434597298446830085577114420254210893402003790823409630275377484223875213529332691890824483638073117309561788732044681393688567268961169824330343886916780285660674470028126972172789238561722889946337154103234340728180368993407370017703689607973129782860111059566077147695372987121593441132999468990575779331583562508901265649833731765044332306817976070459105965521620192496800906785584427799333326258300316489659587312078568787710282300643065538032010612462747262670635450869581890033810804313333787469227553203534404149224064502032631325994471933891392714348906009994919150233292880977585642300572956641947700976606996485848965110422017736446200125138797195589509657107539457162685623972324370913595973740524468056368085709057319182067415653419140558889842505881837022255518152121159493146526502909114651263753771398492874311865166182309496804010702242539875147316728040606090924044102334107231411148918574266774954516851116409880762635993869304752458271647654569591302003056203417354447345667109325797096181264223452085144929598912703420136053716760846996090917125076291712490874176875127088012817606503863780451187034647137552357074941280450000659333234932651748497885991106261313763561083213367253295018565328404648977318460834739988647231232822780099128245548591583185943678203878395995118487061056094278643616241507151438168037260987790941934209185255632083896220884582849085919654076275992761913325921952172247030432342807733564800148620037344705451259054766031515620633624047509399183467856909427151865682632927126651877168775816210331070729485010238287041763799679692558715556702156895568500446154617451025592587662493669131637498190713652948310885940091212030757364403044772699582932502737452234520788572705836240585545574065825342144514192948754917328857792702820652108164824450375907279805165748259142708565960681660991186202508508681846054913364502691147762906552311606642371945697963480617868814049441116836380233855741534822569605123926038046626928263070816480442181417690096085516313586025269576456755684935923455186819294427525539770507159199691610669203470605708426495519132948718098203821354177920494002661995431029404257448281353424501156183879240589267029645480814843479335438822636650078758238299133151646276989448215720407637381912904841991516288821751251200070634554355854782300545676412295869103383888389036171421214703075132750714479036124417041606289579496699008313354160466695983083048707765282985881459780376532132111677691021512530251841593958261805716704342569182895926209824280586044880432078263770873450182082680562339622431357635698390773605784749277973449266426942436803138242073846521089110842888057703188176600591180302032477259844072783901542037723080274202159635836464358432972237326894184936462120210284007776166859031411492575627989904996503425689747368372807587134413068061364299424576495495656011920224620471947395180697752117576115647528033142796779890179414877863150321744613082759484645509246255317072877131757158042992910714572381396363020483864719499447707378583858933117638317617286076028378204222306997436548618509839585238615173251324713984578773725893094288536545392158202284508000120854430988923738698848998491793066010532165114709306793527713389782069557880380431587802806185093948351784005596727291459871858089698543276452704051108173260198383708564800298734198666505969754643269603572362682669464746807327053325222102382421417778966766191218377183321959064012909389503242307950154783910540881493057558699383220415299959350164212937151246423818433990466157186952080045730525077720478482297553772505048507266139930284536689784247538696954257462486872132840555663804399819111984142614895997819350212701348248051474802558226164320509282542396948377005490959780692170397458909690839802743450711397958136027819547086018202923764837059923956057306078985509887366649126603137255578495715232990630225071621216677976247247530936908572389176573066607541102125419235935620237782120965428319075228259514424944071322828062578836912054975344090886855486740168694702444298835191580960286474775666142474223467715382489461729612162398175237998105163762780016147655242287001824805911468475367534080991621063907908726516576885385686657064275366026013340014390566955681146495380513532044489932207716185337480721413410287903876872612599105295331616081614333223679452806855620031405571617006602929393496576396354039815032642906258117582132611674097590766611242993410845383091452053560850557509081278565264071173393867142451121833481818767089153487598258803427211822748611888111729268523186608539893705011371791094118144009883287149961211388428484089782681192421808815565473229501210404400935105564035812327071041104360449059756000778900712493856048927371380332684291360254991636634010834694784325787404717338170722670015212289118560211974325186618770584137880585698705403411058995202100025404680536178135967133058629751479589304115752872463389943652916640982335828480354401274942139358576214506436648922365911308607219045579956301345577032857557115677222736839118882653653225008980997508171317126624862100965484044630900138915535243645873403014482477799227640844311377281839819508702456154715397664948181527419404578946704448336790865620701469947257527522582324981646635615627240020273160365518177048160112465023976498589045016747612668675815393827628536547947395635254337798782922650123347333630350104536943681903043505270480577453808690821106306354422822575832799249614628608768714174390253529884055165051117509368395954069027569536529159372025478358879487743054150998256760198732078907876478648824952068170684284806091820093630329255273029899369118973608225452006108113445117162090759970721404652931800134947366513557965692854104385344305386543643387102577598410545454716578800740768854549340754987754987150365903877867283403936269262877498721222295484842267895049038077628203059967286127939942712090599376785322948206319028126506305729911792135135739531923609320592770629526913705820508775253917889996184635381346521785077434817705445379846486581747859746049721046984597067115940618266984017988945934021801791629646502661209868449256937716425919718616133828968001428531059118291667859887281733522418030861728592198643749987203639780327088881019975824689050058927356154162743031081872233967480902209571974724955817359631141987638060781256482098576776201752164021125100855582034979093399521055208695987249168681508231104151988112968639976277162760639190684931581002691289168433541348582335341269417268254097642310761157134007908304914329314939012574361893542405639783818474075915709906199452675764441354113962224732764461334704324124579668544621746979285744196458593560958141405878790619572710948870849768369334789886696036635388435978017441219072466099870694956954768744915176128894553702031101303156908136051768646539572050358063533406927565542794229038146632268466329274014430088281294964345993019211057701035138399533014597822159577153015357877417413202842524940305235206217227753208300302728384557308348840758466918319357900684326825143747842470756689268600428615234910375434191823291319185464007142807406249138688484237164586642171673633082909693808831484821280119901462471036977721514321727899755182477531391672591211148109270306713593083997730396283555018411851789977719077886699548629925649967268049683934078518988580677252667413809401474946874372640975225456428569243517037943756225684225816442000808352588504108816177538439780172810186786810841053890558874103451166222247801215117985719394436322347626239949920331897183487451866705430991739489435860672226180484611335482811625916062156873145215095269030310224797824983055710873531600258499148894055408200055921920329167582979278469176116262400860320439723911156713832478708613087949739081975612475491005122187070094267508991183780277831853586192699331036720269165323358999796052240380969897644331515558634185388922567147497650161447904219771095886605133503224307777032325893901642194379462080845643209397316032036348927111759733367027569679821682234409342944006230472974663839776189982074242083876083761476920178220324888489997160985223256860558261307757042110900693246303344755382551532136993431938873473646297675578684834081168536926250248354143086236031640196028761188923958074973298348449614463865791242155797089123292956154102206972635290171686646184498538306333297628499615867296907059961844381213433921485123567001266539537054595571611603318641598697629756585436013304259466251575232611121542290515880446411698512448627114403381042651890190097715444962301746096648159347483920164433843032997248443949805394203568834223852022248144887566033159967253632110960956736642619670459844187772909646198089936923730694535355170259292334148241478405627470553720822282744809784015476066272595812736064492700127609027592270726488390562313441893043851107537198767309339643015164354303122325719751549435361702398510088770523107165087600876224466833867803545281630723567287369483229758197963364036501853973858421696514820337977617935344863295403113146578940690619588836083244033240303383301292912720298442475234779537222734912410459721540762612151229308027133899077252234370799860109010889594506083879488655542094044383060343221525955869071887653238224193600922960746992851785892849785446937936395746273721695452406250786508702869304448683987582271562201289299680679432202002484182836759961254423852389264744653272758273772493487785160708599833292360166938664490223633953868970068406817428125682446903328591621826095050190095931986634984838688616739489289133572473565346723593412017604575363098573244847889586678733391966424142845573275289091709326406350566444527785268205133457031330669614669133704053383184934732334604707629734823388959079187588174855864342389182431269789235471356546456555693194844946848662186890255010282813341691172647140105089409826732982092098493541050005555549861006087794297368425436308366023133733509369689527670291338370994477091939136532433445023780938665865064885078912383226160092247653292314840544321249517575237438509368457158978312564645613570772223634658329335583075442146298309005832724002340284605418851085742840443791844711279384444096638360237996192018208642016338529282503812078399852537958712214572824472510999568852283710417413598016580929022089999429919346522193011935009174327723407610991156091410965264318056401271710591785343623985805843443557290460305648905098819295440336263154009530106119677818010214460932901525906804420132062847699862731541123714671279314970916539311099720462599691868006234341102303360053788364722544055649557337832801680639145391762028910454851487448772420653667686845231138150532627557370518298689132617197241363155405031360485194825991012799571970986875128020360777141253047555672977263131665676361564984929673004618579276121365797094173714506847467201540650044542816784726245101292420614587875064268179051898819311450577611272211883516328252980064120341374513212930824988270341982939697312189994833759024439821528130185060859525622682932545839469347652593499149692654480949126021975220227366414774380665067316113864921312647558868778514898127586685836433400903557433804389137932266630200155822631915568587656635586748623554508031277961578848938201091537752529409433621233251901105975166521317982053641321584657171358633086679209786978398528143768120257980024350708769518328685380228471759126261669602157966677380658997141193315984041272096362490473426905198920140684536008454851057366466103575583607515434620319213876028896659053464330903136162672204873134692159292016702544564899671040349976527484977842479067105935228828831280382747037834599133871935167946880506361837310276996302879517212344174168782050004645241648712358250835999857772548329539104908191872152448244558066296838023892131267517875458359584959480510667558862775023962442417614128497887066258975021310657419214946969652858242597795929166592836653362411375779334937932135189763978583103786488440906710440455851744006172606835317789264360483075675819866644726227764648521373754705438124727913592276664449250452654112848045996363690279578720172332835069977346990011482300265510689546719880196871550193071250840813102772479609387372768304632330578557193857608311192066761211491949115250184895994749082526171354500238181383018907847202581041191063028083666600841811314693469485502828438009075063693037513883546897231512568220233828482783639657331141544857257230232633501199785149561244769257953129828047819703942922818428108161021891398005648514702976321234466235245239331221796303607192227552972865906296918987459831118509042949004204172564693868184636035346855799852056836085062095392990558909429531850059695987166497884951835955790415999416420661121270898071189355346948421124207734610676935886318022463565255933273595777422605568402090865085417068164884602433182860944249731171400990044767452565125447226257208640012302005663460703978606465718894439569521936951603681236738342188147217410636104740512606746417260542867356439101876671877599090507054091067693883639328312107154295130317140563600701048025766780750838297659055823656872901677731311617679185792582366335293419727623915306245859982053406078225576444403681105545643197475504721769193829347765777831710072160277544094951277269254454553135501054946905611870718684478343290292571397544726023568196944604000865128132863950255387243706487218813131836734922355240420105416395132490352311625120787515083816320700596424965111976007188289278317699145085792180586840185713035529965418763206680368666951206314673152429201812125430998365406925938740890752295885903879638718325940563044323327506667911420766754946758884461774334975082507841102994517696885085147884626185914830288683173053064533993344035973073761204380633662554295994403314906073755928771525974012518013034619903076228531150499053318392249633974069749746832629554596725818724116885156433881732840754165840234725104679729826654814727977344446071601187686392906183626476489385924057541386260799381768987451473138163640055637428548859663494700226543207086427016453338360219700502609617403974458910708968829436783881661853255408337247651344719156423497639534266889715868052046929337779491038876716498459988936095319949514991515003139534493007935425754208085624740120219540675961969378097043331811576652149447636009815326608484371631716023388637158031837362482726711707379752506354360832120684891503589640968951972827513849357774681551121292399620776148055633815314727126476643192005336864203549356952150180823087918829307728767769979293122486297569826765660323305681207087924161286277434089507609529470722492564279440925015150419995047225939681055359769227921976333395893576804912298057631697172202489110532806734156026527164536866250085371871424638097656137298995581022909626210463158726072514937508383105784075686188287332973888228884878805703842695215072917211947412003048419625990335613886184181283374379704081338369998081780510382636609511476054547262335545081093574419801139367453529749724871784666127054959047864523854007303326049434270699494594287170619161662959803402175652098266499079354754897261997941825800693592345379827400661558783831815627302212218327033733182560172813834088510050874100353426281671456630140222739803309498843363248194763124233892689737748820258764661922191712232257072238055111858626502396908423762009454651451922739800091126328135969954702267975311110231050987950885036483124061228099446308604786624226908790306883585004889165247966278863893850618247164292165384543522280524543620022502551878258411429466457799712745334969128091671180166141747207196433576704819894016361435996603866912273344557105209603699194568015944406893446749809256197759454299959540566147006670821841666734242147974566614304001420880341291779511403498022511578081787599237690325844509197674633229230349241419755681612433401484654540749565676064688920914190844864337116283669037846999971986963832379203297978990311353743170053223093412349945614525157556496242331474254812684836088702549453414326631381560444316081786879939322082151859985385248136964196078007223671546840534243016294839416812461853830158858235151101136843822125473671831404991911362628277253849622170122711926037415035485775507862117896320643494445589810246549815358429862798735509921947730770928898944915884522557126989284576032524592719607764058582846255949057478333037706442957290869873077322114434126524716951364403579794842243826208944645234923052211358530932385422707690520793044650838184760132906564906478121714522451318934127254206683733541311347255661904254521056551768485487757077590485248843844466752282403047376617697570794180791239662861845711442327158156677141537216715126205104330240408552183748106202803236441702952935568059653394689130475777343960316159908813967124247308786738962934434304919409695278620068039315718247945420430774627657859587186045238142617385207578464972316367567627270850724702120478290322404172723299687434269264214173433704053266146162633818696937656448052572726127688280559764980210199795366013001572183180428774915356280851275276400582944847159335371869379368420233644493357891952984758814909349994554054985013154381081224241129629132809255447680560748965981014010138932002866907012981894608903996575053484004490556055246010273633385160091065956806187687278888528834304062439299214623833272260767190058833708019841604246033517521668095588257334377881088494413960224766609919346719535316439610701654845751398375542471035852333090603343579995642998233754136158050666180267131155647420202867893828067379124244329441705973209540935906169826304269022101860789840723536103840538173113434846842329532335735701036567010491417252066319035997152983690983696339218250858697190456332121938120380543219549231423712193190417721568765840341037415390404785875550042566954146936062552584928721997881170494021448584801430883642162014330697153242939397897611114664662896446384123439104080359633866521078921176552452479052565340952752520277159915531682372466760780407553178425751793770159306555460797872605210360504279540323824933734311144644791821624968511758915152262196987716235689452067974252500785529651176347920141438627109701444533917134440794648393745045996742302802506705338056748367223871343424248475610274800592773395387679974421420187356079840347477236275508547382612338424826437697961429307396694829891048324867527686517062720983667390816826673833292331625691023332629203379423985167711354243528278836080830759777239344898993148350035266946990824272924126077781854998645917660105467280064077341796565085836083448817824415279937509009239531185936437305080146385086645224511795389597558284260496722508933256378443832001277322213359013814285934941327130155399747910443578312659810955398836658765569642276944978569500960679193538719933315920409155256853452209555248314913119741021646062515168694409014107138128372995326020733696901187333850266659241091730677330684584079053525349896093591933300895155413737559551053307665152652904736726133665974676475175711653725416820170959389092096645901501206809493769661442327462007626786043080640187375432549811677000831250314709310196639925766582656414501832042905216658308179111748818833010594527625771896748914436967009311012119286656581093356965288585500060558711131164127311830142428904171055860435944661620316259260505808244542105191775324662320841075769277704218415687912064115196211182089187788912634889732959449183815110565378378415183780112674289109832755647774347491653616592297978335383344239936715512850319805938561202972942570249665293966282591355105757533943044797979243894410468170930942768569644164256531240711785287960687867963796239896041536470973564129636364032871672548353175525052848574091258287366518120570630697820374957580744392597054797143276100601248412100852372105631935072076156200698586106943132026921340203678734895312387107544068863371112003659831191253904506917086682041478161792045154361580592784319219536890124305350939325068122928492208607178258698140987300310379629890162779976642300945349058821851586875520514295405984631925802885716293261371988471731405021960865751252545837209479056680020894852151140061690650539362355593585596497604255195908326660111554858765152853785340967214824112283947350124894784769290147669530847658864200396200047961577342722561225704664284007866971853963459166321811070694602825706133935679133788360582621854967739369291180328086660967689407666712286396343115279136772983963359469342569776122487845838572309917035425945585658260547156157581203037959305969086424811624936340797383135543807460964767191296349914610118560513720461721191001862081525397454512195296115706285802050646017163821993310042998851319797912999305171951581253690887853302978881250525097364174312514568274862379320870947415232530051918516946699095954713953355319722007289168876716702260058252915090363050508575407502138958150807890270381533997171483358633736875497623774608466906859545389624930649692490577007475237329243895622447942078543572656072635942904764097707453239342164646765011042499460959413367410139242615290872641729860936286649767963504129615327222017358895800376991136005046448489510185080166183790467372599575579734015078824656981851783204600405158570078353000867586818667020211491524674324055021807754000564875104489096426790915721671159352281231634433081278488644122968175192965604035707306076085535021074634192574943176467360726189500164798609665773405929783246662763493362362129101923159998061676871072105941656200705474725915750168541709892955703970196823156739962259372442144497693322008125090892979194419278811017622973656002470505857930981834923632439436775379809111057355587661212993365628673598527301985793772746416341953669782358009601574339288386061999690827444977664041377073510928231659436041878102524545834895969974678820788594000997276771793200307522120400152752807206747563193107229948521530400667720922543476933933975694246016555922175934232161858249174861746262471912852621958422063795149978961816733976932849828366195691995387048683588385704490874646995600350656427901887269790020050156667322772898043003373052403526402454984173073475530160615752226519038116733172124363580353004960219409763696411201425900051467441344781600308861453639719027466556254191040240354829563717034043432523071296635636732833441359190026593574968666687595686317563329890619406610102760547857854269803499480760267780915642174379298708949771479891185466035762099799095013737749946871378703646006704821033540696705773002369183553541193395652693321125590441932952327395601406837712403792935923461560523919604677367162358673500691287326409694782360491262311149598270659730938037264571894184076942941525986515540647213385606253480769831170389325973518813870424508874789460783977033895456573471150060418457225128299479448015568046091071470764400028732460896965484304935318898284776400786459912687581216744200071619046356042624617505925441551651485263565453022130744917543529814167210948041524265509653951234895342749800066172254432043438311531963363072651842307314931598944148130103998036206691075574199512295477027225393233280419085835430318813912142225742999265087512558870096181078333978781633794741560619553491655118074684803009642556614525551741088787291656748710637567202081038935732976537935087642485080031253950774133677974379097083909963312824749065317109533691611752749110843014306694054390456627551113407672789080735615195657701700783709975715525205077606998658425372905842169638152725972495602677700175739666004701204590426212349912177041660041559452890242883604481871123661019728215195823343104233710731641047107189711746703832382112684344824337214256170209085219605741842094118017104320570756152897496527831895989816766795570900798120613042278722209378187028807402478473371447407155112712579656023062185172155167359890499346177076206026918858128625787865551412077977900694625194615303078115174565069416862583130167131218219879653189199372299712064312599818119466269607931433929089379075719135870111045691688856272997122673194663578729553655597417853979411635790394494797266722463641195939801647549514003795654750552618375239673863837174955516650031020312950873141707080197129163886823289454418640041271098430009656107865154841312461410910343539322586706770627043772200847282223445913983520139535609610098054868265882224598691541501962712099575351415443927902236678357506036161837948039998852037462181978318529413403541100735457850160080867553881818721408875708097562025569964122778941870211992902806593051954207850356832812529827426096401805981754354810519934983087537321878294413341645884258344305558332135988689479579261525964447127302526237660021660966087815071441216053259003994103562795506351036381372617251119273904116756066985632170018618925777590505770395741747427477195716219019367918012912126432216441191932654397108010424743880782748140482575666848683631437082146660904350974456499644255328421781848071229137259997090067655953748878010260116611279647150452986943602980752103396471499786519757318754798176855775174157592281444866790217407177935316337348367354927118673918459537038736790103424567084020005696609144572021767441971766354782293058807341029443980626580322314825154410237614449429301516689580115239501012682542025217903720158027891199663195437449381140634813520897779510563061287691906709935517788780307228978834495730337479655401865754125967504259583225949453106646846321826203780178385217148195211776776490588503298931873133343604969646339234592007577192581132849910470943264937472323713824726827274839882288964685179811748795896285368121940837322557379680241478625550201252771295929111317782649776376539175956879618429143098668537868082294301643751265928296557682561690857448226838435143175305718386876563228395883277242406914081639615409630481289346419054206270047476124809554086758293208671205142337136831812795788070278060460814286808048996163118191712428988739605238112449048592940840476089752357893641253456333416379772319919513901105166406757993819092738421979236822717349965984206415606664082430370238678912115109477118525219557131862206720784266617182819421249066197185996184793468706101576813974684245991006882756712560054622335506590868447424031881537801928475767984000753746931380919168656300255774521428781797194442491386098996897757851650677957886069144211830774103272659881799067551188137215691575538126136199511658186025935781295467087522894712037062336479305467637088763012740346746771970496204769153327334465705170628692335091771786219630459157264140479168718113315399401125205344167578995928347921998712837748860609425080967638618497254326703183562641663961921622550362391280939202098415308065606599586082793327647977376586348688037751366916922563606882405625259380844205737314708152267984506931753390207761602899226159966458829547056126795559627501785476275871791391745581551814277467597556868884271920951777754324458554008625160083619184454871933405307832887800856359799854014796110646229451022700799926117878215905184483082709304031247895885391629630302080198544984243641099103051930616852307787534584354195978346893399948087430217604787039147914753882805504991922948892390228252877538590665927998660888928224618572790190321356502394333233218793657080874682305802058859519781018031386577343837365079118190003872831846170260931854652975951984695447423515459476339062878891072984089792642041956611286650594685935122988762188637921866301262959130595607784352879711082802137164857804315327747354545498587407723866894455855642758252255440042177874510545008831483047357456009492081510246548344554553066087179539113836454437691152798471494823503791097028727580380109741980706443233528962642206531946647554307892581343523025407633064350879688077005087998203305398648445707861866607571862379516250479184779994287257718896527714266163118272612286123301426854840617406955382413121741493850696178671777523391026112543548516586923439525493058732975067636426059355161841522208630796722220277523987736385257239969521810264355732334664759294063505781001953855015579307155142474509554598033080140633545734349237170396281971286233106497983880652093753193386375583361409526275360676749493757073999473076353350231357293846674551428348945365753831536735378538684270773826024768372729266657745248530728303941229766109816222624845511434821487604724423279597566674197677924942459628043031065489666594472793090087325650902087283243008205800837969966021991314328944568301413465772641897623263261079398700631301298972985077227589372198757741884804147453759485316582881402279733968833997731834469693793144298593692914373846570744378430459485041870847293913034962229635677399760712957625353237961079280944966442498307519806956809296744430372456617811086731580323638365276228263278768529799809641772511801764802355437768039692292626530474074630862766788662705634955090439968158422530905699326099145908133233958716209986004339812629677705787938324466784090322657901810428455351848337728075444907995617525425638299199274889688071722479206415929880909918779119822555094055677607771711512754362317632189181508841199117248825956844807968462143869447438527734665140569455258877002196373420664848117136220403134716292908752198236686498730677426395278975907532066172161351073156185967219450121006621338661307961746300564981720580022588622681567731519504985205925331866482879079568838215021840826681857725276236946836644704289404560336674438264522580011257470259075677707233194173748102881215782882153610812029975424127729885525060479489514214225419632331316809384951494537737913295645172134031096831153974889847436908811334681525428052580954386502261527030299287705511898067344078732639514583677248617085961983965767918760676532951161618168684064870750644073587770079000934375634712221235820288575242843108335551902145403552455934189833858760906361667537713328268514217438022029418632985076083779128415681502254387732445474020566417989666616041813527511941967950046744793543707499646333086983358541033960272283834372018133286221675168470616110152388246666394670808541813969684014475431120314146135569268511554755079468395995281198734284414771739614457058896262851853856501426763422038047183863120743097794365858009066404181437912214138867989234376872601608776767631574698941180229749463505475464669866350182595000569019090338366649138259995364391480985401701987160726757312954169895239970482568181683115473289377994806742475744974983236354999342622838735546849136031775786119267658083093933147949904455015074609274625890872757613881990063853773014958864165222384032369336701335721737698752746059932701844498291878103107167852605908252328996848650511873712084145247430917683635918635887806291028756480226238472069354771676209817680313746556834582709564768474727559604753138113306427526588189783432335306618757681836190788574727339615878733192963316127513317263927555960704316498673376554939476640009668986254003309441202247965197700148714466262529285654273116624696902742179353513561672275014849013901235726528626015982094314087224545751899663614651567550994018147346927463580771369614081247157823573603725067551876124679519432331947479492491956763069454852592711795723596905432442111877115793089964104075606329879276507641571238768037466926512795858298714487798966669113418288656258395903129807646299208795773329183401541750398483503700998261404201350957901800743058487161151655073225819602487391443952750457932446619268806660794104307694436126938468753514642080439765690903787920679856620610179203548360683409581859691306105206980820404572940340972312602410354399114816826645186640294741774505556074625589765555871425113814980334223294552374750222935440492365510683241384412448783658839709532103313896931625298022530658816600018342605113995659061795840418894315803136755380433640575564146535020618712715994027257674748028568234627558168734777115547249884640356129961986170020551936571544480268762859357373937286946575042681231727343138968391957720876419495398014830426255891663581645073720846305750940969639769362108252857145590664415375548288045223754501365328580969789631984377476913846586649672833226488839316980276042859274481788224240759758585605161309035792797601151687145753230874382760614405179851799617336303136971475274179334042518927968206125552238752234647153317805989580218703953792502679761435249756330074796071322217532478792492405606409200406555961977244581574850585543323627614207212547607717612717412868839414939788075981277082759115949852215221105673500287988713063361884112357507497139869363054433693093962738978951118681045095660111109563294556053059084693375292701405484784203292360906213492563065933969540926324804468151169173127896336810224806159229355307115625899007606446390795998779231280707783134871784933723533289986381557609389460114575870710220502988903347705801424979889378180579207360892649164126606966297697244374227119857194054002064464635881376174669246944761032311083706602129255767545251611187068551132296451533724524879569634790618459697946538906984424329192522799828682449897247649651566076365057192559608137901072490395142599138931299576257015453952781951589755220140157308898282737788691563384260090955444326010470804131648755299120261200496850266373056867237165122669065005586086059992380504559794211074920845889020055511895471160019658938688270306249945965123561152458092598498144657913819236183268492471617518493056405393597736653962504103432462469691739511525395390748214949834395077148215655479805516073409943907049602892398550021064934120702487035158226760406171349854600937258133179727263968283734361740779029355389743806835643457351808322535516595978444776252254535598100550281134913374037508570824013897683976751419526443042392481124623113809371680586561273242991378324280730927190294356655919751083903577905779597459175177719577725491211634398956285483274899488468877709247294828269657889441013119785959440484572931998955659115609232381705965204892693452220259685638934301203826295779554936133593746569268307542171135951402391377053745955205099126975784016813429329645235810211524973921814639610725303530387266288285351187005530476759022049611200923230968991442899072364743741393162064552518963153273678578320239081103953435008594524883058516104406224474052405489786162156395297838760542003503256833887764900681242207599316679130187948570754845129401193931972605882036557184535875625174381544853141537263648162007061120340051911305907506420236274422990856065208589605929574280747492811519512942607832271194337923382097198297080314082805079273460941676782869853237218262062222517714135215070746754139627196668428834280847763144337403456892448135065389869842461119016758425340919738070361966813653011812272702641933550577089369731963071032224957106151777562218274080373481692715673022583201448051600194378808880506609757850574269195233510749982237341222897067605421708758704755815315765772393752673990562530138222274573957721892465381133358122149786793329057065209534007022978640182468757629817746022241951523845551279381094109233243592840392345415385490379590099385068778716394217179596271800504521954052304830388008711994620784451623808864710921462262109807769619712475918738662540016454284997662332022664131441604124786680502636877921920910920826671221803029675964840558743307404167035937478571855398083994750712950682621330252444693070984913040707677807747041448832194329030746277127162784482733822406784750930729708113228719158567973009845281447421034680548983440480149330501684709604317948642726955900235751771103470803762008207327010347369532725331911690504474523267733147026769864142187290280331307601040242510471528492859539193568473435916776623130539576075369171213193316980912301384023412892898259289914416350353568251410165589417565360049025723941476311455625450320397674146190549326291072814475625029640447519873510361050888816796901152064281852279806048768464772294908323705145578129531286503833750156549315508466431640396228994369827500473621138608319767667186509683864397065405905978180483117107518290941601763496544428946684024102186545198585356843412828334872509854878857880473117176504437601207125561536627548472830585657876207951644770173552296507721633099640014260075456411258096323014790421847325929945458424393436824730573086350902643710052705989336570541696297341538359203520655006772071801143570974813503175330600002301506702879360434550428101488685873854107421846948309720950115076995725626901768573563763859908928316258778561398021433168710853239382294606415909537992273079751342571285352829133790520473342196539227931099981926086369183731671470320931251478305279274368423655508046205759864663409556002618083239582840829084024525635659814687098558655667069240446479037673366654901711841536927997309411071014666638556822159466365454847429059909022830923590998639759400387072921010000493203950436638423870784288032688083566938035411921645566710873479191744504630884398382514078065206756434370164028711173188471271681851035958398409114837655424266993033918383674063891097328426645612242066827903484075841727600117997695154642315634906305689721381897914160355080311268327789973727756912181853031931038662779475546074206369025023626808527697990799832399074184788166844739454443878887070031117722204524571466724562300031443380538729368826936167769679380680430910497736773227641381772907536924541320784322227466935520977958439778005421639814671839949261948447279334339024175918188317887484644485432907707888081580215580446930080473239435748822100439851750282850392834745843595951907998420512429858826572101150211707750115396072756021844716614271214535086126166663741643446366870286571491888997411417194310516372539296787682484135264466977574305933787050147443545898966716596521018211734439412556107604862830324797356670847322751058881143138492577651382192073590693196422250773125520186357963626512997185221385889722241385480472598362832724446296148543624010563572634524028049390878681908641590522015982180545349646245107652435948037869680117924422957874732216937630060398051783814596778005192462512496027239990234847792553074344523065353808868509228265224154950077088091969581980775274008783408885751845983346443163134248806504643928942470170628095270386640134766826583956095522470011809088555878010141981575051466157801195121297612990733782594410829157704835589633195460100187257189751937806081143825820845282373344298908686165642407630295580445708841106047190306844357232382510326598067729127903274443756373474506696019890123179761665834743685317439163458189760427864726765437656633594103585118150947677082559911887640594853889077685936073669177103771068099703576436609643435531267686552331876003155819691592027907996263719464163916739956273468071197374522650833380154298630820902334205363956050416026533237717395111579828037514376524942026192531564073806059191731495891859148520125799499409142682763599997986327498351459715021029603450144719127695628804254941651811131252381328186481297339179896139539494042844991605326293344702463839253938594598460813673233786259865599172070555359041590343774570796023620608467278504568776254835949996388684183726025284346950061909766860854324444015831232319049633672416531474609618168491626673049189099885219378921441405570398159779475463676067705618511714637763663757695344768324565996409112622388633426321191202329514089880828567814712589462052133744356391092741733200477226881143755165480803811175003327618155995145860379310321015038834559161352665818804479969627968413633801354379334786988037015579944458956199590134578355412292433788880391388249186723794671220793740518446842094239068620305323624774458682841970409760313602376612934470162706001540550547203750328837570614641074652888342068787009495220492315299654215556369036081667579568460459322555237273344618256237079121077566102837279258607378012626108374077310887914336121713791151200360668678137652914570321333253760823904252899344904832053428753458310392675728006898300248931828269485883719678298367993658378748691153010277100788568282981407391062042459767979336305640020543927494225101476046511963798968035563131147077647764148512398923541935735376326617163103984684701781279581753019593815475035816075922604741132334279807368898617412595806945098602672438825333566480817618384214238945161285351510523131427125418007959717215761413629012896393154700391843335437270770014589963995821767217316611496732126663326913749669871138443708674796704660953437010262501871327602677490117952816992916368228478273528241593893855843979744947052446689026374198480776709034320196286571419278536723939421935715157731958743606683282953508051012457692357602340744002559041938687306608856863810562541452079611245506659968080847288536063120697601493200186706416114603217253907136185022368273368019167349505001261783865263693009762059997092296693540128450903854893068888400507034368060495310032605232524596434674730053123712455469970231631915950910386545503021417928241763118102728125826377437146548565499858475925200216094649553343766262930943419982079900383296954461614570720486829311846340190128633569328538186712145291486346200395784695071578257501821776843611369306347415535252397599490884322080289957759534916593753812324854963670505437496285234709888401311629417728448492326091662768407413012531383271309679143155645228050135078313227302736661670009415272396017341162932697970092945642481442508955613174245473198599077597599512163746844017021558942238890382661754901883631135124880819402614469439545423125030020849318823397281557747409691103140560179653495273292687537619738295223851346244877310590470564677445409828881285778289469606481419794083625075741123624559344209058491088148795721453097780912499678011785069573448650299664084003840715746056085861122683303800996869658250291800623050303709186451309829179892314043612821740162041367107861061149752434333374972782032462962173572765494919183149848907697333064154001454213523168244875763440074217602505062196444714459913286605116424849216731465799572975727886804521479410820058090324078130521586939736243846714241621489886683774962559298909938821559180202880584394459526874577125051597281516048777833866514827413955201384738167713719258934083782190279462392282532451515983413367383060663296316746277526755197306049259251144971495266398360420537259962146045488430722684927929948323958006848381746391453648425745806725518027015184978628160114474537802988490992958893185007226977617742231753858364738056403475774228947691126965550242168816972344337778463575780717906541801976031981239860833397738628399026031409842610186761074176327409693663133820839049695835639787040353821020560194463100270839714443355686268816795423505531245930850880175341086494883953456992824591796015682603576039272622949449877417926763724215961373152260499962527090556927046944195613096160205971876492175905902371954206943304496971055093063805360774580280334895680554334431059406807390466852443482379642732121118875748705397707067728774819220436684137848910811338336817092971798189504606923905340045206042584523252194144014656974702817503986714570864852903600888756356537694800760898351982336430072441999381152691566224843695653334471076390891925253027453653664545025506983063016743227116284443606322191138406360445218611967091637386996006525640354525944623684796471426624475879482711912755467101991812490545284477294905074039578306123082387006567081718705411845564139070266552115090189193402313253193470319664790069892860532233015778151255159347910728983635386377280161077551959812755698897200618731976815926093357714782299801028971834310312308822412844181344661291870583967068901844004325329669039722607375070687466821085715626822000991771168213417209338973580983713473775210029083306515427861815598680238526005872527369209291146660577940676784622108072600282409968515538367452196395364002039641866471873305806449332116520886061181747674610983553599275297756127131304599015051005790214250710739614619408691496039081329342443286308375693063264456145767565999836842731348000948247463508955899112020201120891489135461509544881309137577695373946693342814675150792676250938714149010794110766317956477398394581979764064375016481769865413828512795871203625198861924730376499128720256707565658071220591814043537033597181286951714184877724992712560333506608231428707240088690649949714330726053451111988604949966959204946590456661082401485008229096176831973803270222602340315358263039892388745924825239708717279108948843659327939702697313023481019184548664249577368172734007322329175963389727944228580502067897560633625719292542573281822835556771678713942277229941048158968409516750112149991310793721696636121173330104556030841274627661876113778296647111479196419999774381843670097866566666758646953696027300961696165877773212258993701005076186361027563505425552482806850825646983737161563826584179435661990149203781541207275196436741721951233721841183034144993024894766715395164820157837369761180570708178237676750702902958374587295393203335997137114539271678848063095650285406098360421613599104928863744487110018759261203517088366136043155590883627244711548429052606164280375251771582690789643219135510280829735424680240889674213432482220053071269586501479330551742502045603480221537531838697683446984138149047942779605542750629464481142926751883679349471958626380285354744007420430425621484068526762788971425517315632935625439267124580635613546326682155698835204580287096592785697017601349480020408017329790880230950461768699847710799441075976527051651577297768080882557921618251645275398532210630608224690828415698729729124827569168128112558964468686321951259497919224191381764557490237332368202024209794955043325643475106524861534792139828101781384427340354989995032386542749563577875123090355811961490468221162743284475258822548569214764628477756650485016084707372976984508655697876115234442071038991735300740190968949714590307865007340021228428178387101224222795858081245463948276403887495312951616469691476448940994459514734686892558998434945481692878731423201207323996373655707693167614438095643744540061521294045171536642620245720455312416859824270672829550495151189633113982681479798735556278833150325434045866366276074871570610323059872548146575667791041763941806005856891802085556793309260817767411480787446276485944207699483774852520531594430051451743529594565051414429902330864681331682913464419527935304272783850807317113109755459501685659361444808333619585654128770423404778768239129589178460027227127010746834195423336277365214107763801257069767121005877237033231327261647891233838254216778936690149397724673463750460521343660087121930232885525057347434347405910880801428354365481592378790731646621362940437343309613178528344423202001347286595786462843731461273680846729423788365294657502455071675216757446986167564972820586344957149413270805141693600910804813713676238348830877461000731711226189013119118913129591891774014046233693170194739808925554357444571984712926289068659042856821618098638776909420701172472903020564523524362898298014507976407095470765591775162576352661410058653858516364033029517300036517053960383846674964401992088623659138634119080662054334190525318659000547108225195631238212004442639352914286948233548285319382226817467700105385380835031306842103012784827049030710718052333340316260278077013040233782453659521368200715499452859117810859220407809423917190004809758798399667216481758558340008796858924602735409871708637796395994463196475297267427228610402256290195988375262741986774526472992263518372180679409976475221568007935754498239927121670169878818963120234238678445862715339648274036137520475688818560405159598141028209570787983487958520201023412887190268602610216205727907576358573501988576810053455151846953811652732906124828659368890716982736596760217412865259651122772809183543689190717121149833545176437258570988947073417867560893204429043747793222305806576191657320625016616012502444325017921011654660367906760997850553731853805734977049260220985883969441799730693152172881417162085112101487171949173683884148568958372023895847139853695231966176952341165238679682669964131208507837499776521632712755332013683021824479513031876772545360938447536059343068456117034910174845700520491145649565394722304554375126863754352844580061489535258920029426692618887533140290026720679457609781345524282305619300320130354305257433709544731717069919326727600657981854471139413938926933215149512601948983197279483863452071169927629652515618877732936446018439370323723889833709358676790900449635511711554697360395038683165798763295999987881389790875686667590508976194868764876841753688519750801895899490366184118483724010888879435022115074976872938594247753790504249601241272077035646520881073442398426641891884630342189758529221347970268397940437494764068085415524921675782046789871971384354333844815532279285313077628698237300502752405883064486877125796563621907034793542529084765187757111142500431286544047329024089654677379099622715392912497941115439750390755055531648766017930754713071008854218919758665899416519608564869976868643044701749987150299967221640424816116174616930152079351252209069140842520717124264991010895620870255413989988023516201794791675347005861921280942046135210867847654886623187346425786509371278362357493147476313489244304645033371622694543944695791171766769389676678931580436598135808603205393837755151545155213405667017020824214311378815251459526910042418407028892326800213349602982310123802899150774106721915550960813971596465349309469535156058999612320040768610813911183982857533665737190050219191479449502590314431869335762239261931061246859959097721148717510427823418849498236201200093597623451199372895602769144918452268464374836601641215223235556080339781775047904718644672680694310164902814547487839268452230243729462008788297783492856890891750044669887548575049554310909382750039316170894518799249269547814743046591115441629027396775502618855406372508550659328159197795732898556006006180741871959852048850136271497645621925039391511974704760849146492011691642423592808812514367092171811771063253360116875408447146293144969404035380607275850411622067761973631055456572318069363634929235590806924671527679574951775869165952708385374848691834313998251422044905378587280721593754210305330420902359832738383123248061064431019640342542640363198689552124297197656572810618935329904113701886217639978498096033551199733969052556480515372306868406926000160829122378550837741253868385903781422451845204334944487393970933832246869797198284559888587053063944314084756608902779176737070175018635416763414544544931686541669691836165889732544433315360375930231600582782192681469144081352508420676549980858001238872132468040516451762527369079419858188285778596131741657638993921512849602446012010782532404386820701601506536906633225656336771998845783198162922587419603120330150379901584611822586228960357669761237382473009815769176668776937587135146372515824222697376009137965432817807340459728120329347779480287195698647159867770965638027350928521381075877605298670755186191609703328826739790217728447938262060157313761248973071154724573685456455669281096006693357749335397301390218320709631653741916715166531711186468789565326919071236240816366701957768463170098608725692545944826390316342785450595568129676523393509309617469637334029459823219114143881992044695175794856621269481926438228479321570297628759937436018108483372675058621869464280478170159592686448823187203015332269498754824882488711821842696412147219364632966695577492911212386345160112836170263163390582310592641189181763539764418760615812800719478531972964545740668857843659183570340815275718631146823309509383211728070244578233684045186178270578024254390297084499968780321633832740376642475754675423250725058389602950936016369484047377433937114805730227621836980045674558711700898844075876302322950509653474136740192816866150863165615307016962218774462450982541470563414638693159192487917835015165888193179881145509810858535904401597174139672886014696272265332174990575994422487041445315429501447390510429589124712123387332047779360325440495442349547063409340675905786620510090918554254077561021362983702417363279341488474183438272598109103019009605301726607970511812556630491745586598862142342228155562689506921464954362314556881709398488415984763124585680971368839977471158603557722163624045692917480262250282636263672313378853285771281265323285356346463118662272418942369932953866363921294978270169145498467177392879644281654790536942392776918558037254277673348566961618726526540668452893067855888627066571892040998492871891765515176377356547832962294861040585088714974744448662391764757259670590709239602132392370977016825827968849976845562481140893766574961722830748947270471622668762333712148826669032457215057260661339338123640499962094440833820381720131091817302065428388665731625405111702911853848636741678354511180042187469648150456055195572512205865454329941351835957400280576015400766976278326780891334870364406253630663295722397979665706202516764916548155973134088438515623988942181365813459034257877609151119128255254600431240249136442238522175381934502582359815627511412637554865116344172003583118228308625365688735787787760855977484065609355880608480792010983363054492599557553299930454208302507110206584590680373566870258441203562433765060417981575614651141672855765169288580824207540526748438476331165734727872485743435086675310239021858715671994031064941098056245994344144819580471911841615790302898122354042826111977876489411051825729957085728512247669670070995455347137011493716774735697320194867638841039147799936885508319528608119547884069014697413866464812612898782308378957827724178226322752564247850213652332738280909858645586755648360679587639819916700684125727408750447776763262308791945940769962979869236383866498864650670290161725338671946283754175270220008699508447485974248206002506466667538817507027299232571097784190956056321189389003602024897147445823996279278609104857160892142789610313709121199289658676010102519998201239884008002812191211669682658208867339087676201324529178843314527563468890020549762911444644035145674426939830041193078459229172517431431204569277833176044064910785648411792119750189720887934054155320092796365324130876001700019409877657460684779651170011500258426786867187780636572777805295372110767744239668479106130758639888967998479072477562843081999258810500440558744700927816882029136247131233150491355753131412145665777092404035370096251864769661302924318739779957304079589357419791080946930536564314266909282667976004137406626347407675406622528655713835443132114751016225085363787292376229836056104536782416911854693907076057807129222454988762877432671429780894554528439065973897734202329422672402292536805242999060888149572064768617338857746728428253135484214193725613573029712396880807651763355915901159750729548850172909130828831488130368724908144608600244130317409544758508541748147713169098590415040793266419957309108003027325966921835981649653937606909232749068135089442497949842977005787418746342457846871433979154505710120823892790467266390334141197310463877098571423114258386151560194421226379792738052143081621020808694625721256380876481967450045434680351299100670651684465103987587158301706518121756291167880145723626125949630982552631405157500541494627093896998889034277032044035323540075623278648752156430001647050126799775421197251763666303249109116381843135922764712248006433540921520166193747562463666269011739671570979675543814487976192282849735429481676791183008516845378097469422805034524416481466295285740323640723878630377194301041147089233935368171546924772282900144362189425057855297124063333486954121723480361795820628456420831918283876947203877375422461142167396917550782425862682774187815004996746530902613966847423577284718946033384878825681720605882108054128664220274763826969492453816347071096085281596001141162806629905192191227343971679365204572616822086008882009852182202847801965674110209435764836203388985434540542877405769981425036509941962648184465317322597313344491815811704133070081977979014813571025201677202703450623112111761010229083357213211761576920515499683018268378969744337438030348818319885388288357426493948171317105032449435587905551842260399729049817947055149211380349148813702129266142355637918604504680739688682792414736297370612547499882268230917528873598261922631910245751489838692565507040713236143255959889595038288949993934373065569428430723974261802037977522114979724067385635726663215529461711231073204238855622947776264860248141812587797979128178173139908340888774372925404384685083362703395851873869334259147379452961332406988668886055686655993249542347973294760677706256823955361288075626589987712273458178990417149767559336012472189834282203596659565267181902926142844559384984489002364625958277413361840104865784425558782726709627059331245644068937714497624431860171510126834524299090377631074596765075668027688903861120191045828534018573539951573630310501160599995697173402188861387305893246049450536615105785842042428299824066824169448540977307522226168878897606229528078525104294136159809165497193786626782257777244399961002271929384709623853275941606158797284289801728023308347271771828903439212717867348915120993717847786348860272539844297203661982149104852031329158818393431993110409852926855479511365062490815944413822113493842839206765286123717576481393047032781460486730268193595120014605717095529333303153569305280236668689966747121479872155784358244547660620983747560103171138209257842323720458527010110121219180775079064362100303085650735537731893119291679106044627988275410878659657218245643113108695271046157120450068516161961429447004830655378812797559320198162891114449965569092113122524099776618160428247206324134987176395962893600958263431068878442914177387528784043219340083575798847280257018185696790011402222645112028545615938544399384803713812082449377526080495375576579638706761407029601335827472479956466022402044437498885186706552843588846471543706285841551927388337618777796859146600142899103478857118017830307739746265765222454961713814735808411599156166277622167293387731256059076200815254149440850386318792201044046437719411616315331474925774322035432639991456670621364106559380689472423146765668003977965281649970344887909219432479251804782696542599626686512632889032600674758134859218786911774578607800915436333574947124344012056420086726563091664588180192809534035040150898206284383255459182702964360519117065241154356789373462695748402409640719852054182068806507590377311527558662305419521032808895542020193506922325062093091865479436960913461138755792282814211569666860810408491301633406433725390819638472292563948126066441373740834884393942971339062889696587472066343764367607004342173096463604921548684027162629523364620086641796739042476398771901801003649233410370967612823416031148696452242781395674168419686385269755892425338558858699037757683632407870752369259377280883168528400089316908560839045255429367513479247183653366726457750783627716148068119742979996717907236878082371327459537438105882160581308450663852900854623864395577812951558607608170364360110792565540008009671210643730503841526344199571418137723728522571345785061976648219756051250423372297891692128671303193085052674253852852226301256496510017273914317884841622153778721382337485999868565847430435044562355608161188138132580567752788622270343257359356380404112269251262588313084008516435359659502233435068617541436824164832587741933563795527672373680954780035038779218304915292745541211046668873830440356832280122720979234532556541993667771219847035533444394289736935707755187596670271953013070246152698570093575461886570954762642747614189366541896191869780576213072707343052592046837854871764127377504167731032014951296633288508149576248398354315061479006945717302878819703386510163852488167786234528969803196195152942759856223910945750085778630884805790062892596154682553463585580018133309343304303944505399481878202963021566251775640553461760927207988781476815895386161934440499307679911851218926155851333084403603245122754468376585798345449470911699672330861522076850087164670857762796166477930149489328813507047464010630490639947599807347521529802083116245059714770953856314054172223472094082011411654844970902536868239030126281317278445157388125068394604490493778778725386653894457706275490059181605879820203349515258137376892405445719966669532560759399060055824423831593500530727577101753164246219589594814764120937122262059597644408092090872360078742707821187958661971431814271040075301002183569951498079152051432185545714593909230284126719322907618817356964437392380214218357609902277815227720831283336227296532965119681313923880734602940903396683743650774108478267900795001624332461748697457047653758960091261881056609355700388022133156926979299635278492915255795656661615764720654229191692524322798991036894643429870759045905116586571840957566411785577455904746519984863622943577534488808372231596908565885557433354905625163486726574464713140631631742674800567752817708324413584927932889701302763781109781734391069711439139940982339740998319385348621421298101086140106829479465650160249973614371628758025372366012577181092549309491679875541420807060543233850872379418924775273203221730210859323063288792846525345841340165809954947089562977239029315447315115148563107340772158452135506026606732606530416106653161966787936443217504111295037837625918673569710009452319025852055089645946804035012312957740815627340855289336624150824687882304265932431729331147099763534271377822286323644529114747009283305795947408638194621478703321414865171395971952900778874031873434095244302551267593617920420088664934154510830692469396926818983692436409750543868976465642697250026065871500986487823675560620468018859615630273503602328402565673481781668455072063857909749300883648716824580273820837335860411239656336390106031793938029577501220031572420952850509074618649355988820756220644936802379548817853346417258495448992299392366993440341947757113711852473976265184114604259741098282019397663214857839485913233343465527993978308193273871772768005726678248034948900871737372583161629779425954960704443571297921613456670110363925862138634624273763854210211933291051133782046812617734297565224254030275617167706028587215115744547522851185782003799715127117785467689062832670876974741667800352246754638019263956708377081839404878984884053492844547539388623840144359916731004222682197131158352284664357187046932146478065808342291141866050324001072560728790745979826721309833731917712349817969697371587435526316221530524383629849118698290469055512094989929889625560187794196586598898528474203370142311603163761299284192229741109951099739202735193200660782217613885118931750146762097927675392062540591232427822432846584695138458385211591565117861094642016772293792047617797569653962355390797507457498387946348533682336207315623067250527299931716324103041270169482474828451473964413220758437779014163412572918108847667137780208147256320206756057945294562889046476192054353426274603103274759992669695223780055992765359689398102776743817252388274728774927798606137539079773253098046417916320658867125827352131347527040716702496917740025139989436839655054450196206661649856996868792374449174515448751506949196471719900264429363955543845471477695269883763901140031958788935165185254489395440107507070741853178633829834127686228082530293831423160819679698395801630759074871738467163844704156874697975451024719880789513734808990839360237158833874396981634310719924851377515757627301359265547574049386626987825528540263627849769584284701344646409652513043930156629338306446737332723034755593680013090625316601469437181653654490063285331273329899949626249529238449999086632757001740449796389565773332415627904367160627350239835185147440336975891403541388065408646086543782997782198981411827765785963888439212040166871790735563731517959628979657907652378494501597133290925120003698618764164220774101736279476018769708292479009616793958503178485513876784423216289239618133376360413702027940968151154150288562660911389968886567351656461213308767637914664192141150008094451690217609953848958926174250413736908339358799344759038495205623954328823697111016873278404706241568177327276566099776824299423724483680081841625952105108347610930831388981923986330763857476687610263322627334868843149796854538243279359355508673872511482499200474373893912589316737600710634702620005052997429462689072389930552566639921529762137179481713729486502296657044121786545683135302597107195964577068602559591397322278204116557546243424608142557417700047322353528441451926394539901844175045455235145236930413423016001125150717576117611525920736490195612927221332516916492810697339550179881776747163502533378368086996553292213541946364695238449681525152246915377011322991669257828513505025664864972533403111909111318489041642911656019125700835914113447521873689428291099989703971701983873715644587215739596482770879081155484222755681181682853914452286140353679455707190626044323611103949962888518593093311512150548755143209363895853807555819491793154136402978837584683359072237856160299003283534185025169888238945827453165556857770760240967815104669313161571694912799369703239536889671455468662357042354263600161050371540844722654420807198434150963297362260775803117859808636457988469711836764371858526974323499775559081156411647932124561257263569871149378649598124621353936803952747925715529999264407651205256967871365962166299309838347844878474074828633761847746652403895972112557805539141518750421515068137081844839674516339398845015811870186373769440506190349304175396986015808765561316561394903100981034851063578726987462903135064830876625983634183940548213199438068856123009670027659036836590315417337238788961785202418405779407695070953562892431545105798078231838423623081797449813920266025620181147472439685851910511323594190104032576680820061976435355988735564048903346977311444750241518854277143442290121020432642477576149433215879371346848695600722526332147965777631624973953315031198147738302568438021369266935318411982110115555274848334521826230916610240578697021219612151250167165806441468220492685317947093637213264806657912667048489114419293324374374201348515636733968124923381708838636379361418228410949837666841852274351695066612995442321269521659513002088191842673151011501068882283281244237700480516556461537012579353786425797775116811831375219655004529906916954022331975175134079644993052653231460434803563037626915171604245294565543191512224188066513651571804531585971153423636102231578550122570500164505212720615207011462122409480219225853352392151872609521070568031476801655911020070180672030223445854151872097495656213145739080443916023568330076269673944910361795842217372293934149404617112234712280752362394923621957191294276762819737910613581042073536760120937851272739133290410462269868244593594179217950714303487939543174421457188819870249172381964559922195603893127838630460921436046449943417952136903140400930574573547073707026165646532505570896491178452315599646110870713141498829137887342370028984287696095904143686946501639006162110840820768219215946581484730797621507836499681580245277575091204459016900567423043771185860888080790835052219020539644341617160843646332872488395671336765717927440097144365006080283421721605456576614211542859583665341509486312191725021132693947753225808266976473648846454391753630468793845298493907972216272201924834861624806841680639258556149965446439054014081462169644874125104321854922146106906696725831371802800139547577196761356872241231173795259250231313088698173853307355740815851452071034137551339342323624886294644075083830708768148038220662407050540098250244430057865359316703415318554380308752096495186283329199571224405158676678632174453383018304784731548640494708514611113143516775665975005366661290193097864539300188645484129789619122133693732418719681063038279527836009279910778225699052193417095814151254017972478703995632043593260269092629167237144810713358725587423141233227283745340354571324540215565849328464935126566326769736588867785811681888094928192331242671706319556869163776548745629838833458373108856353954685911557657158446917357790730758809349687858670829680132186074845318856619932036069846925361579030884747659411944632065313498083004944403807843755046359829157511519928537017266441148639058504038715273886792310155026413135410967016987979255467978863294386513853449357672555915789816722831612946086166148433932350075643821553106531516194699659973651458912573565629804060288946823268329983533139123264016723061577991098756297513859002751686391683103408618175302782239507016564154677459865848632165038403694993184931955361782270400352274345583490394315667424050388142436143721298971786316254313591469562673234764059911542302024565041716288779441162526368217158793760312191544965154556283674439064577545132438352494098568088104501947149476037067131247885111355979424261183226311976547125676343560665243503395326243575200202517122456125858682356473812897527734754362557302502234515416184193444199448711290177484653200338959695639994397370326798698940709774718853831735363156607058602190367516247830263701202385115802544303523171928984717169287481162851237309747598073904452052089534091039022458874393434768532391541448141387312493591229680820614494359837274665625223391631561809829686286848482326244703167784883501416307362365865901922778566673590351565369006539460541426987703202125768147026459816936195390524550096202317116225779356428936441109749388159912564350471764161150019145056258964603433796841707056302986359208674405114043336388159961340605218850715439622200629412473500907118051662753881849335085812256098469994174616717586342381845368467004697901167880029324948718239906349725787006623268033822622347087498060631093039178154580104801867604913952283632196452160862826179179756911915871410265664607897318424172244711962628761484183017030398386068087655320924458851545878367515914920304993501239382283422684197534312721464482839424242464752250744428549020525678759233437189150691741928585275875730585809715072338692324082879378756495389487811837858867547038430857169375123400563736402915716850969508330628640995309316806865181278420540186860133183678745351784944093134340199011546650953455852374672273758385262334132286346319011162919671852636383358888448640597163939453098153805756538277528953106845175894812638779649261383789690863906030261858204202792189928765769067733614847007220753632154670899069542873281225747714846858835044090434427076423731745241046503225586779338443104311592873814424115338160556230448544932659891738117691110016135736365337758142579714683313398854321084709580481284020775354098810890209894184962330534616021226996812862698829546559725436413409259103492512155789694902896666235775909344685769176746855302386051632289272560803981598772918963004019751723934061447132331244121621125240508236207738026146656973403664123207142108939189741622722797735749387256014428580943131976085949574654636864555380084341989450552568814146340797758662734159024239191668286289318838857391743497559535101277865054059372579616997583688061804330089495003251761614213060443439596512408990567394635285488983705690257894110081718369617555261393302423462792763253158371120388858775708317262930097161526526373305960688546571447593353947173544413794612921923727429602569432365033760904640995132114926148797154112208613042475247423106008668863152633224442442829990047516937921333708147127453110098596941210829186683584325956225614579198737907440384431634787110023328502338821161187385138287533405272518713750457698335755446212760999265065475561705404822576137126378265308205166249040163238622026158947453355844024367624809676533869170204568751373569014990839025328716451736114198786991660136912397278831087674694670454187283599894184794427419742983135716068914453849371405432567245809838492499250530372861379220282535679339419817204993397793505990827946490753046065273794104507200632230182779334173370917343872678491653746208974471995211325128211583417137432982338034884121289686056418356930145433964422462155431551875192926010318474702333563093931930786818361943944157318021467880132820495703320435656883092734282213096849892363490332034820630827901922202781486197572215107477333240635133870081767030453330861924394010281377802149576443604954387934680014573786121592578782867489279294796768767974922931620242536060849028483447290010701297004975781906931177062945308893763353199758762667564181642827648114751114662434377880694428454823213117020292083572009551519140605143107852694323064349237991159871863041982291721806602022856979173811793037280735189358999332985052730656807224655680137416845869670252419509003813420621714317159229067766528349102921970580833872816807642399453322232777960854730455015201762525047595360335798670880462971082082638531770878308166683802015693548668169699867555031582576204457833133946430969451170626505048213844240148967950514755711820482945847131614263957517344461494893098013890242853746587858401600425376223510870969448461522878501188766444912639476184140883232943443821278878774009973942825535173046046850067336475978549057871608802807661792192837685633076499101582240520479815245883627257513719677402838985099265360853329992726393906355623876283475321084521514950302568979412206614849826267550072000756724490530583264332835543448488032761031345815892159714713852704892172645193516688909236310149454810573698790233429737775771791996837786307907341978687167153119544216358522855474898064798566379700725388564883785306313007047550631506148595068429621497966084490980065933174616946404704021646830410099794539669552253757224890018751902705019119803378034902506431886048237496499715674339113181879365250071219928613375878024942831386122059515575278366398261522729856940812823515548980597886221820656668126545200228357656165871773629776686245753171557821242043442519943923106765557068787970875939678643372041364091650285923195950160415763844785668658015544099405308772466838059188607008444462890764342535144329088587913200751066146793470479841912761614216546703987610786889584970307061309477864465023316841071174650052440677574998666452651157872258458877395025877654514144579967886055059677728709773999444825454106912507236800392411404805388722221998761438651025805329594746992134641819925022902028848528184849329701153352595490739842063056876437791159643195312526274292071068624891630297158218272511819394915840114028510632038701105451124890125212054730624122462536677517995584650048218413157300171169896123653585577387716755063539218998367821530204097542847026399008536697628249812215623930659496407592146467069073448995003226795962561877144343682250901103214035400213571587551033429323651365101243385563732263986856767552076494405402259089612503143638615151376813170433572308313972216617139373215058596682382811587463637970450259156768045155724008801622978640827610444879183685619408420459680642856911999142087629681616817358513127350358784864026199601050258526053856951974056186669289144423309158659676852116111733262316686975558566893896380955748061008594921268747153599342078610129393776462346703159867534182491381126558141308499078770552524681883686629069072780283301543629398923881408928534174023778119663998258175786364941521698711086698874340029786363429976960502022259156288649029386118409584154354524400362620217686551648334850822239841268737604110278733560659892057739469509019545947106027203152289930803516786936301531996822303638540884362646281024423462852151426822138136395158511443945582028399700100471203505683306948846767384641748486777312977271645667783043671148341186886026988483860721203409534867257100188824713928314303640001882191966686385203556794379286246804564549974742442264566666039327536212462226199546201575298036780610427008707944862511562155919556017150003667676384139469018896187778390286700567400582000169036045471871403525519190676006801773613007910543882501824332777585543259659163199648944528098517325345717017631829231770143792380618327797092928897223634983700970987564764800712871979180322233112912528681168355854946809856766780202722194335880360537814538033071930307440515793254451078481302467865157828275907363840168101485585446147923631996571822545920414001670750921757682306642479528388581358236347829385889240264704564813252055137148831064545735652280664274510910163866603229319997346712772485594606686770350605885589314985914896869890960113061688631590539550276296693929167421923707849057316499610150895430363188488012073126403946196739924698633581078930381769430293159479819383250618378245746121635622838075432809027753959903905323804836052177639717213224489849136182267633072013957224897848906060978307585386227187536193493364469727474067478998509741878401869282710592504495882500865020273653150954879287704707257977251044967080353785460753855272843175814276682183476880505397912344430254143062768516335216415321198827646981949512548566700948309474415314408966448530333540776877867308637159857242380305848015838153935634323950539142142055263890328153495973028428890748126904192208277680819757127661597884177013022292407809502380962528654113720356336121482355560664659188627372752382846538291248961779820438415079278742696939974454702596623845795857449778770272533189004790549801631627528669827945200031899730860932758903853574792797168947164949010827265360084215985161966226676224222233199892206711844050203255072044191339942495396364879633009690810557168482019249332028141064001684356296516712465035549889086703352019265168591840108002893583397541620080812005093749019326061867366973498218902135659453064302677654640263731735608945021940882787346486997330171153355083501129177550220844750556373549705501641960537713394747248475788311103133339085628280797142937127063219230824300309491916309850960243740677655661048990981331566203739085247531448551703085106983275578359628420314629924908051804443849599868108058369825730340490512049054002027134370835043661632885788426099790012634910736738574902048006210313093251429448741379382708413439220361901171972764940825703999239266806687863102184626207747490601732973817962409550357918933164928104031888618629032797062425934319006925416691987319414615624912154250419898768838067449775368111127389740465330494427171550057887584887204475172227393327482710795596073694599223378220253399901981393777481927759310172168431111456664925341907476575735358846571921573935460346265213773359472210403721676508175164399224297826766704102190720375084554538178381569043620560010314684782020241690722204156220858815125301430203749525312105101578173717907241645714385410353713003866078459943720225623438638509027093270927800469832672251598303428322397478975342616082176230248012033017153949435699549641657827713043943194394370491255265379077200814390533358552029362043159201494193773250878135422016523932504775588225864255215548022093221285609074106671901651624871996407370469836592817856851060322688543750974663885087006029806589441138174522409622012727335221374121291211714027842329867935530455630452750417263890361693020045061070712859337771364341529859409623084492422101735672447800840442941065989950037579509515475428699457359535629751738043584132761195224491614281843376169488896830233944678592943000904657823627519546647723947299532537900073334510652122365031509065770213429075182292503518244148322710118074578139452155834539903524694496140758274220417531937902611622655121719592473297349010856652664775946034742170906504716879861168846128763495308791764346546263702304436262218926078962289498242451451248629420994057980961946767176378114010259965554533434239899054715474736497996901179722759421586012617740742893470952170303844822003686961709193386775511318486500769718766066579392877839145978150593981723794756441747642793853678024473195687542407124140679966346717848853055471618861380962422571774843568360842032153718170649012935070120841270727620737354065499221247244964710703289144774729696235041394271162960882499640022875179491207234420272818876404054556149510947546127348605072734311667321733602387482722560790842797151575561319533502586058130660415501833075346733655156061976392104595378975223111640921932623706006833114479081769012086592320663526732453842459488939331222982172922963347714251292121722008476157410425810739680469284983843484611460399757887383607891179316638876218918809739850245450269327286365152022752881841810744561302426619536073089634294936972980103416166276798328313713451693161514568932189032755846999988123717136908992205973407229860061114476628671871319307241900839216358196659381472656061911088486261724714041619311018876287362123698466903384587806743430186766131625264868620963303770357113536323429955524141642116347561085462094890747524627311082676395968557391508343535783918674670189452039162371546969943155501485175519881553447234444333448713924975475783727502177294474889538585687235984633573412506765624783050346645920604416705018158399866596512012859603304722696226744557438909169108300511898818740384106836673035439515140467187566327941457330927773872345505928323634209144045207055994358651220480396007901216561013680713043319621516748342790631799026241633278380904306200031226522480477802290023453037688109276089718745289095377347978974646020041199376578657844359509447345526949848032047358050604899124406339156616337261112347685126534956236542037517991759463290115724940544705336072365010962614516363745529952556841398256275538294247780459040580637155053751603794949464585354531360124059139642524885730005849307220757177095606370687317547279592848730357040458642996171722103667550646569655307730087862229078581840803059124340059932700741174833819239613424634428864364430633824754830200006891738363451533409953789053675030580834889651426473219965226706221664218171198156976321705532769422114054142014161051615084744719716150831535805402591836935850220301445981917537362848925234273653168345110505584877663135264213793179164616050193566328534745662641424401863408984649511274348675149563513744483477089440955153285805400673013466076083809311308935888320621816042839178965169167347773191725185977943906324287820622683928791793103654623982681669895804884418798537190665435501633136506167561790187948145720438454877811264548583674828210998857590137089445075385664813022940106526006198627017424000719060014554232477696216345886047902382747897637876925791131024596290709328707725319164028378486279375174943759685494495140439838512501138618412110341669540379376027184444682295852936073205502810927421016962896491422111886651172648703496876979736532941460607824210434059539147756493929011180663540845012873181072487959177885087363901132587423520913845236870110016641353066065965743382282225815480056283423469918066539790455122061446156996302416615273623595015080650218155625436802227433570765239594004061966929578798264797918456365203236877637012592491367246556688861549068119919957458002982323832418571826157681960884106197898608995576279480513088672717674037980769878068875284816278202351481155710776869412709938403320317416460468761919776359204503205887340905539524262088038708841376345702938276249547190020503070756016302294753302642545155931984071727007087526549143337829904346286748328786323479311402462591909600291689576607712451931339676519590480214661396501213317251466232948097110877638222268743631972815984730462089917688848518642510646957965901494860007677761210070036186880963097362290896189372681347367101956144891814376419687148675936391382062979282571069069396343753595595918727545282869727992226749806468958864366792813227609403320075925781486242977418460339052432508199612421355969623485254744551913786649185808772238572937119374659404449751193992493787431783543294606971294445796899353640754220282446554756997620289189445406533025094905503201664102624284736617593918124140787883469455519356172404963420065111131579053243033139041528504745100119860694314917334706057174761064756294150765261819720919593840217469266621336424878669964773445215803071644958184153154949033014655961560930452877841420507990783435142694940774358019178220643004864519885405354466476666628257416427424575653413779041134716034214075084769980156224347911335396384274205789963817148712354136925432374926577319314182046306041669420720559242614177235775488378310226311075612983480470227811081780375966355654974648365130371150468112771101287409094168900077387874378252385645738364787863630844319091063171756694198523469151255473943215573309803429119845223273730268758499663314814795087285522874490504519880613805342381898400944989519407761947173259636469314148668520863888976634317183696387094037094447493924139840272798334950778218597568761686978793342295517510770301666886221723221116659046259381696130156164566781363478723830930835438157555776794170385697916304688222437409801760979335536138679123685328994700694324389413161471787397583460593024633668896646308337124701797261999022247899318682604533586901405572061882146642002887916527489708850551177421686147490673912374033667327378423945266741417003861017967145394306575832916694507413413968258113886605887099412987655061825491737793280009790967957971347380959461579433716125103669419618415416038674272617239519188610092042322780603555459301721821075454873923365550049272482303734821004660291940966362979473270377238327696045907859416549477139601128015647020216036099768519302599856322971844976825318997637590873644518958613158587167160583160853114779625627550781416522061206089426667409140712430897777896309759641200549534410958215499799287094939584917266897146545747089344467754282379817901088553146331081866263895583508048337687724236607898602995774186586952885760508258261906945521743177799425631855789751731570499296217047868198792942656939321621318957852505722759840821766488958454520083232780298717776938099152824533495067722617717002842806067538319065091362536681201265373448942299018220649628026093637858866138693882032587186575890489546683244102477509537097460542761220434586282166731485979040492192952033899917638274907783841453083182008142252624608367233513382093047688567024358499185076463634203110957381115160311980547201396783696244588364718264211942250684301212966903467467898866382286972743905356903190213284299850161414376083411356752076471752441036747285485225092135140052222994343733186567710239638830818018989837700737261272080582494251500506196438100363867046165721559569516722027498202671192371642835854179563539795820740155895038301233012790239446018226793701661938826687147392169309858097392124084056798569143817747359211516616284058412030970191099919711659961470617555737329231073568584444748215192511059904555521420323981213621103280227728393951908483742926631158457832951548477779509406762894958121847665780622682731185269666687308174526967611937581591385415765590672606109383061086843876561006593902324301791667235458417701297376821878668461233909193217360343012983677920953182882250268042752817047420462912657904209299115446404708945784885966148046723274347843331575194873948788060988673798042836841516399320847797429867506472408673791939696986503139555233070531597879739371489439533729159479530370809355670744956544191246520952705789373700333168791382451843753771644344346943371540307455758257180780733072531739312779058953537978253407915305887164520992448866891645925291336158348863834499309034888284717534531812936165547742012951255636352052465665073286748936107365277195261738717369003889642590009622248197237331460404484181615417092619083925953366064620351771518600556812682263056980836919679055244438517953828830002134131660714975228617586507066856255834367871431060458303909296982173910383855104472029431910982612179953000005390458365795348836597266229239305119720043669177457751371029926430556072775472079004857763779807864618588671161303234493510665612807917364690280396196351880697633568831863912323705783781889843160109405437202096127640280672865415581390758916730589430559679757843291928694832199557675908823585527885787141745251366883866750189903935711307367081013080539443793329603587323586913740165009029680711472080727666784906192954755943634889854629425727680243037627391609001073145290332403919228766975752274079178737635130512641262370150577263053079195819378219941365000458770153655035479309376820062660529164469483885305780879966421800860617930342871980630278001920367641581055322862496001743949181440133054092336937855522636617118930440235638526528675238758358351761707673950847595896573393594912638780171612389175810310724861201219239130925572001683686217791060383257301795370629006945023079810528697854743437658414825380835442781141553635538232487047507709036500965496881842281753527211571809374599165242311558875463444373281339370578070375910042916861032177272100985503522274328365748191836505638922590438606485896375578404683117844821256582446646280296732829363212584163115457551375646466516285369390407455982208555383780858266499451951090691573494810395658513510600109856416927997795409670364398981375105416856289454869205262339295876303603852389582575632232050829102386952668291445181406260966544218714191987046046088675586510248748867763798988230098643128173276791065937889026404765620580063216686856336042231601336110593766703890690313071608326628260831397909258348336870616682630814793864717148351644150570679199272953085736048735681397106017817866201022967122079592614222953743172746758075262387644739438842159453466190796280956309019900721516810314902128256888338586850295795857490587104686444542855712102712911773998443897102910048922108002678431248485263999452548087164133265967167641425580434690287671182012327311068611708810351411252360734713592591007134088655006765647330693155019794659085064010966963214746880243924527735924242724076658253311058728008039782689356197284534830222905201116405942776564452797515000780135618356502361730889342319441398167412754484029517224006394076768138976651994997610316302776718841939824879409919555826669581748311401102504969248773103456860089855867340742118566358139275365552369589923634904307029746380695258694653935179500117274426436666314097936697599471444576269744068928308800979015571991299643968463707143740592767660503223147941247293573298240709700006767726252002953808394765380802040924110514231806929771376296448251977858502695849593082285343663279000630697787730947425285688628354672584078353347083407227262464248836082822983009921878493019452070409263729844522664337677333121687547178813126395999345993061958597032617625392997011951841523891233787124487026109360253061854278923175436280569545120140297650395882125437863041360838610756096783601244319680096189378136724651658702191941488605003547004458122723847611321375906733603820481443591552326550981712278736171267194644151926306344636548998862589948634641711035127126015615772791490480609628410961523787118397784328910807403297764148386913916189656586852414769492312505689193450074053950537552900614116937972317371824378701289127194197257362199389925569937423449709456115691127588537015321732363279922381104750723825378514013037087157871552255221583210538981357093606222246171642605926287708591868092990574966027263248011584818226507140810156271194734232365657649239793108665949732696236449924564149488968068839370472662182980307375035960612469390815961930768282543285135456516769267445098708184324596254434932492572230595888753316709813256035088752445912089728785847423461457291068026422172076236172378030304986925317728467812426877483972909699377121273469717155804343767210350503265670103211607709067500686180152680416599635056984147638065273975220427977242505180755588518568234697319749127668420202281943042783715916442864216613886544890559773061355383016328806116301450073628913429791791632719596142877345024398113941308798577663076177101538127793143427803113600485686003845680803202935409454466649217823858191867598890967950436857760730170313698030702256393906600101681528192178545370542368336142831628424156965355774874434301216776242548704083981387488954463595377141409581263424983058398932536116305923147835327944417936191605457046405850720951617940031395477688810516306279268225322143727344734005522002252445211732457318425984242534255680077595374508404813829069232949801306107259242994841375170006203327956920853400978041403975201098107685254517460486475436115035694534855432934268067881108528799816358198900297190513952075954480897835044149007406353972766212144877960868179693397824373331810946558908901028139247828901591591082051011671456112809005616505227457640837084841919437525299798075758824619260759369795998853131283331254215556829148508327964559360671192618473560350300187098670821908844888523827440690296995144849281988322767610590823902052604030009820972202485749630994743967588201196018211630008465550285184281423664383002023058171960154742086545939620065165582017054327072208376408080135360431922162626272960734418398596749925694723582034286241113932681421809678649086649612900775057488632740106913878810163234738878794390671575341295136239782261355025868538381026154167897684269051914015025022106028445440402938923994404363496643548964555431121640775392048978945070035890411708089633499864463249590468973541499491333868718528719299868786295898458654741015103079712238799284127737710768246362480633995522903296525931540482461134643207071187005661308508969022946088307821704808020718089644635436057872054599732901523946997300885619359519535925794819241874438972444745969674233712159119096367223387132682443547390236554918611727700544596159215652746377499988378106907769219253085967998374786936144041966033288464610115027958977144406390440589248481726401761152668884268017534764634103654743237352687267306216711250090390260147129378503684777363931354749594275426197899779596143769459956696261974214837289124810625349473339416321226786769838484874322372875252373888986544654499508596990322405001432593864354367056136584423325438741454311564405333753820927117784973763477272592214698200505328247440152856140202886742053709206395771140635487615508885966363320038534789099045388021479803482719108782576804322323647582066530931043655995344380613172099271940479000675564748434423387974563176086216535515124282596939007039769098947846861419406361863536574443603465703404451228107153161008444023067032522494992619947584660722882202251174329008119555032279121072331646556485124404251633957924209913567390404371823427679695592935650845562040378307217270111379173523576594438527733090190065068596563758049162117438971038598644234354308150318547887145755765735505461401042631807376825620235715703308025054952022641031004241089072987465641886521412094142140049660879803436753852423113412887345021555606380883500936417016394551202137463431853211547953172778659367537952812285789641663068786334192125865190120284393025859948399037227326598339576007142084290217740988973588432394257900030531607470067563115777316011683317434865691265235992609313701984950121362678270504549114575547035715852605671510434324507392661263559954519338179083813244367336234144182817397273609262673338324185037523493224367287211614654488072615494613086604737222567534948772989751127366686287289838204471918793347794054523646508043807299619556924454390852299963757725571962150077029780179018258483348793135401256640450555368509708469774451680533685295708533587844895872332727787569338613863465944613153357091282347558734919584501228750025438851553544379928814192711792695407898180905233862711531902070550565536518755820262297342367228117397672891422888970033758829575970490493586525774065113371412471247438037208147951044583268804104067552716364306758532777603780295927631515983026107524392387481816100686990999398727128251090903990258803704926554991534612930304182634786428023986794231975999042483476039590465563730162719371328053223560252130732649525909957271578516487886437553754206658010086636149981640445326839391590209270772678732414224454211390072850948046308298324356117563089027358454914558410097587368072284270396073411715074605220299258926853367066364691436270880083839914406410899950407317991200837454771473941439267766884817392390618975704672159844010015526330935665003888972572218425509870275804193837315949376517118964233140183076572978716541455645103339689102493849657870560444507692248404122471014320383019557073495702510658456964270965625549919358692392434487968699631586978550867414587881395065556117831734147596816171675007501023112569612349347293301910612573003874571925017827968810461071679957898583074645501083306900537663838695181601379716926252339663999600800346553717501549689835779544861178557361236290784623338173014777249154133650642295646878578412842500291699164189209229191913891398941382422978179285512998632869741522354627413437809227747767287733419671234602171014035006823624416103295993049126877529639806377523904600652394241877957880126798440670796246217017002539562531321329432890264489613011115349091056432311483665048081118339677516948117645121985999874953090168658026549596772736584378208121171884129150885655302910957732505853778286250127986154481156248072808191245839596598587116644674549724044087073126448488451131665796411791874089242859966970567185628584463033398674262316739289808228374781285466564628622022782304343746879884469167008588530797657651313322411803537128217885769150629809697267235559221665398488510797311784344517071169423541549619666988497430776939265358966515916724233224669246690309971850247080846774438168329590327419686213685429711624412321943443159819978918112240471753729702630711043119628635300438804774689656458246137323101740855168769259843451470867651124666845610261711669092257566605017716106404272334593606418020051737048678547556130031530973677477404383731456202278394495432562165301160346648594973274564502770316903015708682219204615107535823263334235976614187932385832979373078927413876932944686813110381197505602943546684566090113564065551360595539892204174512896642681426014951925284521551680420212536442560749395456799827634015405036524844355447469699763496980426363642847734479249670763626517037151515200805392768956453816724676320245257294501156671524965039818982875167033122442831077357747078735386890090904487660686122896784777475588830865720248639325541372835657961356817232268522303879318718451397564104602634885026884950341983022903425294419418834192862013482748280480328503258112222866630944545280758360431077803366185804922278556266758622422772399562751665067239655817188872412196945367299483339199747958262237876229763141073254569391927615017959296663480324615029191538784348507321247518957014688026153781997558180178813020713850420079616857239641835736646495094171553595796947359196476634284954216112475261181226269947683417789654355485658680563028686910786046431346540167880547042662114587026209346648988873218855522472645025419235326417445070769905717897899051056830573088520504736038952860015869774784192224214650935354761055880859094467570998987670005971254180144820529231519647850604929492293504876690163276658831909745977443170708436672951365609691080627942524872618707727722454148622979827601543323736159558029257552011954274149798649937735876559825778158846220484323478616275744594721700181317934618688228926270608333549473934973874816295379916542809913367266381833354924959804128779474659990372159474876791633476538246808479370386760694605736367133149161086663032569943909318778439156710525887986060673465428456912691143762570326471151323223291489698387200012534269596451004275564873559118247524268915138690425750740423989486285033842405156900383338961580285281770648215173654215202373054715767011439691088569907372622909111153937927234167433397695740707942686016765879658976964266775905317428780069512637131113167497180218264274301601941766166721812273412536538071261739077106951603248022552067924559520172788633590951617907182923801127283474292127054889251422365470835796035886794738989994247202650460963982065107793789446499425520525397827438464763523097607373558859684166237466078052426604657755352024220454027464852886092755112769953546036745969475319492963187188754199026786741925862775795889906226765847183390614773407912672438562296755286190614488598784155882815253376611935856747879215039848035803680990644283291895551023335695608180490089420932185928059048972000550867116798178114756160101600351860081329991730992666107544507343648334236375592299460132896599427797234661688224917380447535828607797466346429585504250939676963949095138832498673391767366491059347451679798973222870620799147454688411797018847196617594986959960401669183711809610681060017573153650994138416724845085932675504003630860671559338196161032438152195885929684933368281823172839844047743722379746721962687399378231064913037506109135295199295992964461886071965233105050083902431292663875935906437017411817537751095344153241397413311847234418664338200905894946751577823892676290055307960649308570356880205378341818000775641703677493444482687606788835890223164810882362888048147537713212367156537780828921879906598475636724255106169825385486779512244678700648361222194776708524271276362824450376927957969834313743056925383883148205167827591614305787072232929419362288199742047358980523369507966333723954608855193099078403896471219394121078505909232196601000217230612041976573730787134492511060396939276487789698200363122754977051906501870127299943215316967069475598396589770799334589734432818093697522132874388506368266878787945868255128003329746519058546268844636774975128844365010697987160423402047563116778788728295076026819808424201744723226256169749160434143405359791512495859962982704680355330424646835027786975234043794591578766850174654113942280399969177772304128396607016936131996623648364431915448258995072218952276536317148253814472382195903202192016035536656911909895092350731539755754987641705620795236513473088302833441594483093635201008656403602966055490939394592148252985459910888429379963976675973120380856025374023227071742423823163073989630749536433393498450423860563386889565182792762549041580916653985805398429713749262388439242929754070213213410342587823927706424019036228471422662020568150831134906953371609611972230460755856032455402394648021019759976647268304632099770156298523723746627682929886978502467489702458627022699566896211051893208466292982898133981964522591306415063374081556648774352923206540325122782660872586359060452330052571881295838722829254196497332762237728532660156572807548991748479829059474258532463319529508920828333115867303677016546723925140631057235990655421175101384684371453011026304675753692920560162236683073904326622520338460506014687662988212022181569806752593835048811554923602294135317697346671735639004301632932778528050739205729367013734150901109250364020053104864235515182035722644932487791903056562283920590928048386199808131225925827065971953253942109278014069425918551170253450998833784127738736314666339923678716348739553573832742134798784491640594890352475712803655735571751160935587496853244063266033277849484804639897650460952367009932899039172147158985041270182886001265377085361704132333894687602461958957172812948258116214737377437489232205043178737711784778181595092398210076580175611558540103979198115824866890919323687637186709492780734807200776292907073382477418474954576365081909641796894859142632239212363278995148363607626806321917941145829399549117541685501493654491400783490427904266951907927946023825826195381946687098115216459684030310469422943446399001354620900434573868357335809269421604686946003741131418047419133809125791051650399473258624504351873368628130225113322394272471897939151881081912121330125027463647960787706020623009720599253054197943424805552081618442510668296754342526901448708664546237689451868227093589100468559182199411716415304576497678288354866777069547617721148832812387236554368853347944632504518005535218786134494423799156462999804887723488171598962597559163513006263359827366699925030948252806951888098879320357540671776719615455318077182432492281738656137056802344986257173882003254298131839094792829092018653192056499993389007516826522044346684160513472631839879595904930951916672151498005215074649472787139875856047169700792793254476880547784678576183001922847969890284809633344557329677420499322324444656370261924265335104636718071666052613764278540985267399806005017927431593989106828051526733621840518080929414816429464346279860702873016430465950799618601810746209725394277585476436631471464016977942349889910619760149670727845983540276061236461862845899663486443293152925839024257672120732761723494473405133287942496808671201995579316561300161057182261403398533849629934968925313515586546474343128779098248983890071066230444474221768358997224244564536311682194289027030704138319870942149843404008676124939233384114305391852151179504790987756068764841761718301037467099708160167249249955102680804216646784296182304217312197656579015348161387485849935314466431284435124093554246867360803467314614012871631291380094535242426790652804491102935030339135165977654389178489398159484476025516830550545469959986449570472160021605566582175474105086542680979681112089679282268463722841109667041767222230506973295533265240708351696387160374221780971586788532799880926992661754189794971717028475051957640299322993120047220460068013917887635086468052774020825869256921548062507332848504131142153452275295673137969290203599420865434902922144097515250709910091172684062153875665261737045059515950342398963042202397157747013106601003700713507298069314987487055517599978691859771441856246142720181655318805756022763768068048610098947273778835222518115172600985476426543765805332593107912824758609752053060253926318809896160575708635456674436171879273611268053403741894447064500998400369388098075433516615783543677569219705142628324951476559828586931959065501330267648022134978921155626890979864139110200138999694166859567136489585656408847939942030049830183598417703755202249710465258306911790877155315696551544086588163248008087920995492395720536900232563718343578585837174840525839634237095019965084651197501750567548248904409017024063148373317967756247654206362128750134567313208726632198997755585364823830990185137887076275856794894767332487354503305786483715996360310150364774818488020079101537789766344949388984165486278761596371584568156865203298160143209342817639270273294598172402993374104503787972300549143394756864077429791217365078996589674764616840944627694737834360559894117381510911324727276064092223777453940019812390416922996334117409560766555021797050883549910887129672125005774878777437782261141342983193740494153799763827070665856871552270808225483871646139473315454775825795822281279211894224842737646779353545187197579743718042074837505190711668976473694604525440367420784604099172732065045365690996348984243654815082425206531667573082407130920865371687119429258716960032710257770914634210539794313074960265194487062057617924298126611716013145065537592139801482275608392718504347011447183053800333038960237081498544994472009742236061723995475789709020473319917564691883321106025319142675457966630575484314930645080101668371894708574535497247557806252477119431788259053704718658796189223556059619925968047697711985210003793551147940081933759674625837540746253901245497059404176722159950849783618782243988531300983096719464113301390391183574996621391868791940596116895242305718920671191080880263268606583078918636793834497584594446466102277134655402687369182572865544873931034307239321868177633424491287278894874286228615368552315975467713999254602988719589983968126982974554164824415208997061020702901630523144024227681310950888491334044778860347864988724423822694423095471072634778316330617168574889015014305831746802562860189389154223234876358555654359514747219363439018920399517685391092135247722548659060167256449843452166281111891736630199095597550272603258186771268239083256996421242171946240775761361865677679043002169289845949157266494415156973888981251239539802596302081877443204626003813719759535011445277938208480437121846762719382727450170248349339313149445450115762902813405297028084366807315919330279030813958783019145839136698927910443406924029953922960307468594947424362856245705490731596419405255680800415623933359950042893265144365381481322540859663616943005190087655370758709620970349580320728428996109024441645046894330271687266573580067142539373056213389465410083013136005808165750043843683561662614195656113194335123552266531566961372922346549345937514707388551775369534335632936751372998258875805208530949575540362847619914047054080765559455401419909605763771834884419165857327908370074485656603931325050040370292374606069700815125268105926940193328021976070782910058544803981887247133215845777248630651003437189440327181916192023448416645761120493320849404604616418635106135309846091238463902478419269062957374447344162528688134552614967848173329644675640481595337829421741021820604670266367832571256744462990353961764487062537935314451759785445748344673499490622504119755488266910982897451388509353416945925384790114863527023988131574330797202009390122903140631340638730998359941892285815472614911314050755082811444955924282945986838625791148074021012798983378631486762405913725935810180732061210638387411486378463534073541819090570146624688325215628569815107089195561116604932914258914737679800823627723310322534792930365556846953220342860101831970860777108182667584136841706937169285950099144803131929035494560776074347400420131306886780977312965032017615674975609865691287890661326617401750775071862985446107386003045058196879851774918225489626917115214966073046349358721854198992591512489686608369510418097170733631470516821796735474254057715710015116344973956321109543784111833373053866309672002472405023238225958372831392848199852018314456554461272544116524456838791775143234224837943964086625040278891745736142627742901270900744050643532752325839812001128574479007245226215340882546706240111625880945997272040449384979767850746530497420851320789715456369036178223767891661161605354961452617786949921747585952635969439852615028485580989695850900884247201099831525356696095866174033152022413714455848103281192054626502866299937064579157817766044542735186040606305054455986967051174586706546040409017090276429374126422002719274273802313716823570426195770683194975860734805669690697933690964821096032048215731773003412322216122209640345572837560711982334597972487260820329244490817718573357452016171243736366340445466774874794885155156235945399585718989554322355917810605271153566428337522347673336160692778416413826817889528821570946194077416241128731452156414957413963501819967051890020045277916006236617867683788149788444161378090131928507878220791580055292650230784535981777141194235178555935729926262914604892149329679057912503126428211380819115507879667214403706075247458468282834031205274142101380766407906609729809704607257401067849883287997362060615405049618513450478125142945032246594069236572883379495900349868859514578051863523319897479425106540829777898212730563548569436212151114719617890071618238141146648180637856196068404259227027914045086381443411757381780485593643116132395601740417024954326172604440630167658760417481401616667790836977665180346534518798985750514809323508759647916442812291788105668163454375080751511785167515742262591993065302395796888447446923874316215948409170276329827246776339661659922439950472277985857882821405813888965807067812724481271942766255799242589753633919583917249487392241944974917276447951119205830152415878789376909494309695532096129607413297623802606137931234182001600518643751690509011771976338167708367957048754720441512616712490753829980599534717627937499925703644281524426813393961354883750835943009904145986950019832185754614040215670751017133516012219738251654972574169641333488030845656858218054601111232038298053274128232452008896978413147287230476243068799584274059600726005260007339424366254301632335635094459671350342729367792166440761347790487440956138969996331760644992266559323221511333670849389008379602012915846770037003593509588192379392619013194225519796342352180088849449786547875237368745216752951010417454110453929528294054540102553243065764820564085159659732056707434984916340378889568310425945810205987998385409131746708445720142538417619304293094843105409930235652914086871983922310123411662283784621949190430496210276725329073563661335547756215733990714039700705009841105752149584881283972263209358659791881301636931135369968329661842314208439260038042112070505755606913566411404027710951931709623686411514912297484158944672448274995293597278820442223918970903769208563356990985079986127041848744769292570479828139176731449692363682109769009828015724663192581991031119237026997396711933608794336709058999995818762724920888247046037580099039020587972694203538592574364076521202018589845091699633120324828998364672409533455760404868619469508127735012965890487888764744358850247161434339905306756788212568836328430888869953553489013305581109177966015189080222213990554295996644671793196550283516010891128594734466798960809782481141546578049996054061304110861356374232374201811459748834496984944438208309725361309420745969082307060282910750311489248285212923124611072424877116452051864906559025733637764641162918024861377553955410163590329877375293365664580441497348552326209525076034452333202399652897672322258036207260142983906475080840632709276073572358743274070522782606146877902637785896336376822487596467259395221741542407093873149322756355214334318837234919715890595359905623297833175257168586100402554962294695930907460053655295313314084722638595556729614248200869320025977230371597581266979127295243343749105010745960180001665745966582373073400939047954814605488385712697056105891012212159294315411472760922720811402282475926331515711650825772839138025302931899648175033895983626900238127460308303400769284560210148172929078251700476042231395931482140480784817729081795536197933234084801926256824680315352819095521437583471951049138031489974952772323891110593102275468314820732308972941519878197275933304147691497232455733834639404690585475887036342289073889950789271034321430883590593741397046285181594982861124754373739714175626575280046845270553873940995266134715771132710082501365995402127245492231070665211660485872491052504101113214816105534986257083236415344647708076540330759809243893069829384691776152528542903738062171908539665693768896749294925987204358469557413651003096851343654132777574905042982408065309459000965044772210275379533097562952265677532486034735551524008390501072729129186453821029632018785148870774451425019543109288786339506634014004964882347455436482652668012318219141187483348170956110731377420921016350637856926387785785349176631391466164171976777319403462627109205326510862833659102481703492056042283424286390246208862314054197452046025938311484021239176808863551246648255882549359988111535267441258057185894428758611862561570897387716837634001327723501438047080994307720149113080540895767071988487320146829631906986050184331454321104995085547707186457821181229846475424759659282490693059993211589038847871167332967812402075555717500096730711403520687802741873005568404636416836427089085963353293951645664161167451119868084410977079795322019887673152891492547892355904813294309961544861768561951174786595388640459707854632741834206119706168696055706812927186833083805886970837275784075845619302013946650325745643330933492262126537971380608061531398691568078138478690375220639562989177284319032514043779368898501146872224029589538237517485623216606787861566887907015466242236189393805416307464374269796661594986410695282475402464677650595475781514738397552019049244553293989092769896553842567194071268389167424794739138890601879089871677719435486970673313542326236862360544859365156397011654007706842521831534694547480319155952517841815912599470765896242014759003755037327332626375854941705016225581244323979473375300594539620848064476429480259315079461629417935881991885202114951622792268609717168232871712702504975991314478242428578757945626047069844568983592363158397169649295835484958036115161616474562193705682155410335808558254511473548591766373772053008550265940894709165993155635009242343714670469593374861017635674857822954377312048735082036119913933702678102038125442972298763852021150684968787383411958116116254782547382170836299008736760818919325193165195518872635703543707703308751637099330543323127879416144182692068645390291102847063516408298436311222300487580393145686151404880078810435932309012458614172261652008720166127837825982669498654446015065018284973358578038664776174001160074168707231961103228746469284746364794639819914663740098103437349234730856486218807458182013777557298621154761424169330861789314780150778410492301222053522683609784343859280124551279235130388867878895014322907570899751621392168661659140991973265247148159170632408503121968142741737217205697827355376347775593046258014625772710548669800223735503899479387109387907822909847740072428027445551341584223839809264930732357281678255962253192825285865218108421668461011168947737598040023188668057975736183264358952050831616088227199242709044339245589343580842135470000199156048166899982992951594714418312108922352265235957012167414662483687459289744212923713884022499622193581588694797398240613862674225777860152241044513097999346173183043379433161458606443337338063072641823792815236674573428312366577350474254463555791347868165541843508360474352122879242657586354242383283937990790148806006182120285942436747784627942988062220646849501966841044974460975468082952782338079642129468594942507680516568158596833401889593495375086102498758746018782387456632536911254169562842338063381282062009610222899793265474155132780482361855534174748011986301301428936378767309278765612793567797929735848893621956591495068210358844953871982019336038873030759255412662696824663618450922256494625053715855469764400687082147165406028295415740047265516311331218835102860005219132940371796857400513127292514424280553425502082516041434074818992300290200838444542783936608283134916948346826939366934094021718693204573430494998917604007229444181935841216127461330844138521302812081482059977243467042218767241270681357477318115280281165865045074824015268549969213416118494560509788440967825216646094347731576765414407224225568052926244930486975835876516264332419418074557419763722483280743858624183852074236433183324595902361389758594770309145784191711453163890655316731918503568760762265712278493754726584288335269607705760597776403303324401476864577665385733631882039808949594779204314658814614942739608147593315760488806387628934179634727769880868804493420397477271717686295696257391625842826386507961208531068649565393516010099979130697089706959556160727375694146058449611222810121700296975348018740089876605055681834896299759032877166144867488348164838354453428707428920797588563641078891493077768321019062420998307833299423378018477218474746176156606441587719861098484042241949024796094904521130044855251368796021205011774325818548034939273519927884901068347621811230962899548828435585985272189728057092809254399692611845979092390986823599866733749297065834204041540328138764415926719908840113555074253896143795639416241074840072750435931576616783141865610060923558404983330202667129949351395624440304068213718067046431314011685099540810677469753609322932356221324510490040057465790961895167535769450679096877449309649039526456106988472768834708341742604923436830286719743742346108349948773723309861322246360940818076521178233231032449120387862384090691521570852234251651492329996386634658281135478499553680997694534785287864635707646362105719568340217065297538382328406242563246793989670468214413609660635190403416972949150311127437794427502919405512137268325336691978388989083070074339121292091531185564735713820166183245116991242885167807892983441192461073749379693438477594759095074975870319494161404984665029553691967591431849410480182122850686163089821082598560693246643538898752553845326012773968786639119047851342524353718695549376827968903570265056014021983405484931204121663003358738691154449337584259412806243194049972817604024040530564817755867227493335205764102341126485820332892314123521087405585695636246332695757520403832382346905499965097019089403192345979707783095684099089794151754884388313016557418156440554471189363524564373260786470657912182380703249329859911751349991803341619853907364047529238314871758962942633051840551319216002898760259464733730708338299326763739524341301770923313365759466304853027615090452274844643167588407894238703435034933680381226792929576340412671374067290678796228556045261692705612958982758244917104787058442147836976107887946916926295340627331672324770235393282213057365739844403434191767847736081508908581026523773298328239489651618831592695697147576895850846757706560077927881287627068450571129701130973995420695562274665035946876477458898051739789573067529312384553282171357925023180510897231575477395096101675512106764851229539622309633305524852119372837161494499692244096128043804990885790063639079108156971983352862781131607198267202763182065491856936893430532315503307588577067878626233444171888673725335910854346525754674664316148069296130465651430295289324873361446535762545816125545388692083966791559462651600932703518437586924695074297742597520797292900531097482358134752851051667990423756539658826263061578313596913030758679580597607012774682133150378859680414853051022175500706410953709377793369562417224451158030811958556929850360391548795492838937153658111180698890375292512513462561043107568522458451529605100349049019773994784802735807468908413238378866738332407447372877023014398840506432213436579624946579985546292374459247608498438980981668448884043973723099645828126799961575785199417156492366140461733356933467021613239382138487005027319009932578496969885006807666465520956889603308402651492397659386995787918303948509951326335292021838987733067881747420355016051960709050237332587711721444910661425915174347768340721657437732347882485456102805254685619164594898186831132978192852043551205804646508283607211225400702743974379602919131628011021210925230741679277184914123029523027351731324499396825871352542327801650254323013793381911829314655020375766994978587450819529708837373789577786738072509158960297798552141004027233115846495229345567275016306728660496433386935540729439920499376079136261480319403014350439119348174929795201594635362300425619277531871663488401671544728569331444588906438359748391532113342729528785009673712236741616773171138701650033775861913283885450621525517881167388335529180928016751238934721200721420692781527187453783121468892435129219208533398129562529955065934310627112545742365306884450947747398476166071256777208635019361092055904063999529569263125298740348015855176403182552669256266806957920748930044243620311260017428217751540970489760586058405152736840841195955284389439669945254807861008416450144605023821551504658960795425508827558111453119399284956089323841915455119208917964074250130762772628923492894206856415894491507705368487302374867296358444053579675413838288929196692325501699477469329499436077275724177741166672059047302018960541178848918715382380689633818924466822932965105026717188120310933776222794054164597328315453796988181995628036639923886730199270325495454901035955187060039036150422695836428791843049391058340521519341927904683899845053352527151570387224360442330295471060972990426316612965361264500178362287327241835434765245081221526548808193050630488754820585865870314288002317681269282957531505377374311864636865746594939197006011836561778066481800510530714859529164385666751455190546836889466544426505438954355971874721817457043285343086796762423992080775568906399176465771047594337357414221477124872975126542685502743949034500869371732153107698832254154241071472213732868289669075885588695711295856313550992983410850319353953072239181450227529277192611839142719921695038845695665505075193717172760365632651598818601160574512608411569350405233738942567260856892800430212404700147942903193000903723376461542604392339766120309451539056241490944471114896968128384006887595493575472699622147030788318692392147943363971950422834845755031821327533120762962961967360157544074295170677746377000960954820762847141486901403470759009073070644706266790412226635439990438090558957606826485907732366844627772182986783559326528288248895779123961426096349658666082780266364593085555254387898873953612685638270154118894735800032057432530206031117210843693565122573159543463039279023465886063163677841251782414565563569899335193263995492857097075754614416781710080688556490024666277690615813396713657581276404185761307778755993083369104418230052471965731636717941220144821983276171346115899098219796813255273218926192934673097606082947376813246422268240317894253473175006189212812037099344579945588026826768954872770025093595994863958194955879010858607469668659964825543245620164513813395619115974537391274047880359555976437853447377374478721268816891443639508527280074898000430378946061130124981114970731562432622922483638345078119824578098971743070612337830156982456797941636598585454077339767213272951793964228006406905581044205120877456851019945084214234020443403915138685300440558402420526258635531710598137341780691235642711703612074565775811536982225736166932499888606944405226098538691774393016988297545527121718375996818704018498158821699372608940021272223759943058854416918028943462166879762758711518965610355355871325241422286064472142045045693181718406276198124311875337514132046286208749929156077393213103058537365537351010058083611615203867771940217117511795551786827522132034031590908598392565127663676494751849930076484631976404394778890303730301896440898547862823537006537928427177088985618428937699270169213606236095754694113750309563824032905390494273345447117526309371987584466514185920316262281204995687579573308979105518703397164227700820140414180181207532269368942546901115576219029749098997358886828581271014944060522739478560874323436020448668062404381641120446163721799999460334279693656517957097803020868828059321231443889980422426529391975885490195324534840647576843222932319724557922901327046943060226861943065467486704012918730759328407630616903789846438747722197438853173079550338059543285386832956991129482402801372112679834856163243715432163333657715520064752595105264256249714175821663650938279187280957251034222521277258443138968211011210506390726948862103292332396890023046507857714530490133119690557602033278062643802956865462420085775437025862702130306386293358634626468565816000000599833448269537003188948839005967108049222084724381934139844459570756475133658265203544344846728607956371957845044812609518075087977409608994854742827740121222475547089957289702428436259183990299953543122957354268133406303758280707240566470446586859295528693769902187514908091637605255636056266087700703366099566028474338564312397049411515414342202874516796072979686682307414679586865353018939687954625216674337539267967029696812589047507065742597240570998595572999417111910173996160681453481758009126983887952252806636413866078455915514993286100320696086272875628298046245947226487689486108135788831984516157529277182100660097712669379610513005132024197099503453146461555291089003413439182156137062009624576857216086741916015465651660101573242925062321698423976460570739389822141424728740908665688226418343524223334674338328948582348185162912888185300175830681426181349940926842963564562986769690664315593386568952366473378131645957977012532756712303664323766850570958142275277903897765543490958607509766977905524644320961822237836609654657719060959578516612347055899850044063118687444276113880127649599301823573911326148492981600395606388059537636396211771822695871080131939774316205096561506438455348329248684119523985052528038250632054213897907194162322138433793578687613781036005491141226592885633709795280557390855464066327108713169068237138123891815741345164060069435872207004992343811049996174881823577562281443510722771708711734037356608003229201632449355929209037225676931008287577385347803464613931369900598539011430651683377530762875251698145114191979450786888103774174256913600771492338250820189629091717753462803297003467058876575623600007114598855651817911658153231470127652739544020297237223210897269452310800625163550677170727359793331972047634082197142276011079827212129619830873609547858725191141420435519192896087564944572554969079273995763901256684940753544749681176256774618649961688193669888392928922602531073239420125324131130186174260118391655238238021623479871915753000733500018536423478078959600483850063770288907202806501515671267653590006918729393997247389412086474941241205901349485202538428919325289184364329894900111322874775169730300771083398879290750576023670232704313774976614257204864590965076800819815276222482647828543538851324810675512747850689944490135403848897037872904462095290327857435297868073789909237586885951910135308551841156443389786032400814209106502380001813862934857898110806830624540166400622437606574850376641414289766918827519619938487235182908540836615860451938633923791766016297379114109002666126568785495302228427413285377500988339223209227207039105386695217334652589489769467458068585319503510704575733815174425236977907083626054696766332764880415673447375915456600993272619160284777673440462477012129849703161540961403581442683150272687607813467945459481627603154246174916380318642650235649911230670232492821914548377120335240882413618085887585132522545122035555837133295876751338562474635543760626631560633080677295694562627825301044825996904364994868981769847746684969882258550578780542902523989195845434567432598712537984669170915299988748895169522026657345892822351637868593014589492885072406498854307091167391605967304735017042558103172413169798954986416269888367578381136839102927440162565277012272587004502287556932272941443337880637789039935553817493021586002777310511847233974621306393259234727242521217631456093797967555342253339687262108428164744281917507219883034436157943146143050907625393599329336971562415968634130982482711724527962735081568140097870051086728420509536634403341541726769522897222757410149310409943894206398448339308374614399140093747120056686028299151084682966354877934056634519895439205018007148195997840159076865359644988792184051082696980600901585202110415394041226205353032613780471687840764660079269239303492580267340955719638169465954361925919684551339610498384748293682433633846932873219641599696653388983803938171897626695011790612570999257121939660072386173657365238453419868238118023831675027531225793628146224025218241824704646562327406908228127428725986103976555333805118609614899558574722076977849651154199202568407618292683553429999276768772554055799753271212214778953750470750855734223498028281307644399032625052416133757795336031526205713987998818925253213883771903383449690735255451519153204016260110099834366085461986943498068413137216970725221207484614931924244097273562682916229853223785412633484612560174508554883804008708822858210704249991497092898093949614529944447648446307868854707516647343800509618466922920398287358232701555572268163060490209084426333474302264881344172192550694802820881781605033982539703187019006735854772692157124166633377327710387398167157361993258534499500365909939782877886838946905665194674865774458414326589189599719583083359963774208638422284313017163061513078902223237021987205365752839265637615601779876532305847517453741960133488519582843742288119504299827931510713119830177093596698421530739206453785658075354901744835721215271771591840298703200580731175919910151781640718824121962068245317977850211936707638488770267701928834438519268607189394626770842776261220663495530681889205355060647975873167218576545352098801996072354786761188072119525890720987369140016804941437792610360721923095761971499222321887620704313454024083987993117252198540136654056782912787217375744918269641486231840878172235721885129799769879933291016175687954947688350222336316442822135561259299648942282489488019137625941743724946805943705862041786711040549781337336699858765648226271380593753040236031190413711050725522326009622591720149582035243534763329534600361097436281987479754385847602802764156572799391895375042624322201429654477043042761369001255577180688101360395041985954192643559350238637034683603213577097617176170919936259308629077161504078797086111351594617843532193815685279995583293648905405241184009173780133594342277897260354075344650294764634470095314591381727771663736200209703807735538430318080541278549426906268306879718885382535601333863757861183348740171593983667037348053814305349073144958623682746350450814037789598242755693466525064323900850745622160264818468527245534055976688679877827032565098603360730773012732600255230624207696117961782808285893224419344126820824338152644625556402660623451163545593742616108039442434476426658633213031025694122584638133173187595704787917052108494212275853220193041576255629119066385442903942269879132625748501889889525964701770103977885305482326426132650969454951980413097834326546034127801304845607910515738941062386058897936784750508368691439609907418749419840664570597395513542767057652287215169406342123218608545368640448032956469238226632104401187947570267628039391610492928024253372536316221899359611086782875402727090437065776612395589402582096400638953717869185033512821085973877179458057511282424294556201435864004465448664239403423609788517491727129627021707863618982824864226966158173322641210032003955994844839065850762223856388754177891570596067877785303470543179119576007441449296307558929423445463482809599963433001088243215798875067333420384852447877205565898281256103787719032089369554623708211790196736778837964409107087891723665264424451452727737910785845021087835710221891061557870180319566491206364171921096093014715536664651631044260913676373219700471814998059516520263096317661653908167785422418327434476982222109978862781882950686967311021354606239345191260029124797750413377140357181889924539280166159847117063442044789666052097833526767192625996923609170823908112192233658179616498285680559335424581402021473512829213342054077412281530980773499185554420141095211376166997264590198056102687858098955995883068134060619721765497183742864756325415398183063834925126054616426656794268833231833015204887203385810220554183159786798725551928179234421618124021843841610790146586149303133114466788061952469426323747533562785986258361667749945263149745971949562686697060004061546274200385312686628306673710238726431786629799473140797646931822316265781750926708673184536084772656549381438320457866885007355741420256438101471486301223526183542953956559125621187267315922538634416914947717621387277218579099286536720289821226314250481275266309983178858788268807850721819556226057724504059233093325743667489242316525061497316949177784904412130936596139410440062470545930228372531974060991798269000121022285430010307084717575454359732457111942870760734152762073622158680080600264042351743714004366203829619573016744118090108475168991535826371435474182245603610970472205692510976500959358965479699179492659428095938313897042623587672112712130513297303123863211334414303305818268053717804282976392618358218963386741761260349052543575381827897594330905313419166316576693344602800293757467990604780551933909817014251421859830560941741036707909201605256561544042425276547792841452077532296212971373943082100095266635517810976467412586368263756950794820354109076349455297542555051776934274555904812768918050156814835650605731318396984284526331514365497693941649187681378919415634816411009984711905098865267320518299446183894996126014163048117489135979901294331750799088142858222262618179242104348702487774556603063876820761932766996810531642437680572129735274501256272936730020522840802015735519212343558915116020425845239409058628484525604299178701588466516145895399115268466241204983622414437120320373293810045143593508877298613842800760158772536704756855475307379116578638080474326293753442405289613254615954338275564787019438876875447773030339199043433608292634178333347540861781913746475205974717659882106406492698328236234932075737948215099124361346752941197636256733768531012698855880020256829220926133942907553400592343797590371666065913557650504722991826203567014226784867721779285913621971715574384163494627660742489953259604601264582605095730364075461314488739062310520692831017388909090973320162036373266025316976766540985138482219920948966284660658595493793691709571033778212444912706160142112649275211289186293302586879089138888705499779188004513583727101257767540909086473333151486933284446450738018245940848833709440357050059051433610856763353795189860288943032341119378580786438127781571622862199388996767582032617383854968577507334659397135438722827732698450340527660196509014100545059482937782279870879831257811513159989856366505853492812004490266427726894465552898223341738083554313350851300776761286312273439785166059310166480154814693715517369609033160229281998580816373756045817192010676259418784029046611903892774367907367499279070646458798820406785530204768344312259915766011363855506449998452522191997948180505389761378789379580079026894264678846849843536136414897059343613962264904211997067415734695270347179034965506446459175293581372859058128485851209783966087549395070231443742492842535659603281744463570062798098226022118455824219162310202008351132908687607150455313723458132362857869360920573431973428752693355684113197736287239103129526900536195508047892456020257095157628495330850223326414430826649121489088986830344299134447427909156400278583841268520196421837464304890184386397271645138742271353163836706944937515824010065257419012921956341472894913437449613275224891726583146864404616346481535242600986278444533527388066218643575030432708242364306623554458977935891927202948713775055379605441323512412171622564041685114082870801006574054232642084457768103753143682177591342159533825288824690505433174439956150057006475236315711159567935335681820544162087458404240454790199679336844409816118490593672061135889864778447019078856424311428428332346815288124374926575059621439604481873283518774712659421428447935321376751536677708016057897713822462846127783254100072968787464514637577947381132394155997116123152947907566833630420324164248380885370420182459576170352422855511423495534039251184557303099138253018674740306634359109691748608127420655630371615622891002291279017475005415678539616113710606879423404268560179441771021219602404761170256549992492989490754201395629988651126656591373522108904946310843293200168023149551170693885979901728766934412651896818080410687270749972806463122449543447485248369114667543168377539825134341373692740971406018629409541440206618308976330795012944879732231405288921859906677956727779799676323963426136431276104264015195250459820703291435774482575236494714154377238141155967320554481107924331187598273581265019073493901389820176851386975536028386185847309677630415420808034742430270191584281397577322218842150787102326336333469311511043392814969393937399745185276315702289934360485021056741055282052436389872743847871296933090024892710945616557458832372993682509651651237538502603301284841058132335764970623657479999276155951561881275971139631004961476973833248101897698323593760124236450308688796112849323400969598323584047508907802910948461170675034235747601286054676159658483285588597208391085677076914480044958317441114259973684605792627725398231046951413894555727134269312366798862845854196223645527960312616408371514295918737397320067156977858710317422567609441446020800987639737691898483656502642335053771647844703320830611406134738845765371347294993257018420589632184380892234289415227451355601869014657430382693402773575893576866548388291765143693504894641013367508533398349008607831809329580965091409734895479916445851227062636587480806821380131213827416453687235565794082928819465195006861316603796865205302512799480327549180216284192411160036291170349830756846480962999269605907382560680187246074880217209620665438649071784746502494953051180005561754674871085043095975085373192237971431947786300048028075816648072450112742045005025701430802716263232016797873167322854845280781319090820031185524573258834696450191132766343779639193423283180657303732666750248521883166530536667409684198697787045109565098936802672906563177695652151516232308649299644506025684488349381283416732936885220552436396508170985292364884128082978589970395033330482703923462555523847323728714548587663506020215840069804361974736991816257339453826545942888440318159165823971200413893536044319396886227566199201230392632812466007740035066144109516954375176860994575554113497477960293034280054067901841143395136850831545158253905553005993876923272298550872241614092680252241088556587197269799738624891429157328678144175806447294800737233859914820507575387520759964095813991337898365686773177453642959483524329742190092578944008745263798250504492435562938857754176892597524157616081561050158450563532508044399883214645125131207964207646131829867845822007002991262667101123554397143208050024208603962225644129239064618130183379501041928361614953987872683119175479176646334490321667371765414100840344863941975775046625272330070296931867862582199007331700188001727802682342062074416763667433846073018810523051324487463489295557139550666522590480729383147672907011787534512521285824069731748389841321041598241106560618213682771421226466127731030081357758857009652397314967298663144468143639464808782062442334722258384594567817275544292740915292755928153035477066224548200937534011881300475629137484606697700735662650336703656696231800005345815242922144607273471971665433350995872266965299263201102444908334776518512652625976510101154062988697485978415475994601723366496379462208450538950428532832157848491525740315752726032241580639887257588873766679766589915901585324466506838038145708172940319258125148266828116848143672122036175742487906425999350348195990861034469392572078963019318805922482561412431393118715327495062764893710870256789554635771451550974779890353174320797547721463100179516134377996093178052773533769295441563903747168495854252352992994925535138473305608410561765172442059428425023417053267125642175394734846252256752638677834731985745044863937546067164324323911549927380018602984087777665767617948410335513341952680218728125863493775410914338468456775179619580095158213151055658621309575839098400431311837106486672249874818200348374204879039594226777874959283798865168475329142009478618139061075851313333591013869432588698193331946655750106165548220061420579410287192275392848927735191956665714800653790517809782523102482455506618820294467311517501263159792764439533277687839914003667394417674103923098052285247659197473839046360927774610526169197660311032006065580718674306043928002824037406926146158350508897987519453780577361570630083933342353787933220480782963497582137275142951272819849767846512809967850710843394107310423506674040598489604619601470028355746316585575264820382727924885779634045103408890912001036273564904910685114545519700942591875729323435839017515018035173506452554320544177846718438737965703350993410660784854659380984849654243225324118216758494534272807858778625646892572466082629935016128077956329502393083693307885884596841360782643355792104027969652055562394057545035525666878767702860968937710483089541210829970969225211038126936007829252207213879859631136323427034737569264499375954739774428330711231994694191513995522048413356444499207490820205184019529024043054654858154955636958251216055173551943213548662141847161358429984003949105869433096495790411751071002858718470972068704879926165625801963238203005405597240184633168671986544698962995925889844350692492592522892516814759731486732648383589281297943327885742851556296019547485517358959069778784785465453359929536252900271703574969145180450365520703396200544370778424840256172960077047871556742849917163161033928805786783023502645319019322172713040878253329159118843056740888264954730686259973358488031561761882901148961773879339192923575242685995073806408310433087521892945893296091474726559167718466255258831106777687212812373903091288080974799826820641029158049097369851705738499518377112924233460901545945873904718157647732894321456540566535099407828212900777412851721028535018736974646660455079752883366695425104183517827054059089773088928815369567136332266741739446229209721922382356144711484466169973050816439501252047835790508701593501511023072726491487957873774650308212502166633837529286201178077153498149667319949969042333274888548199909244776500725104996926763291856209939171660329176477743197711676804444086609088024287887687464919099057261530831835865844076785679322070623456067525843791289483182152908307241257967921003090197886779385098763287595574904675675252105537102935630792152017146657610903522776993560493205979244660265687000732235308981972508191244041616692446555274279958491155424865047532147686926720540819241746116113577884784550930032918975177628621809150671202465310149880221974864212513303785486847095934886049350936117097803079596118616602595061643212976802993576632156999211308391969304973129362296012578680200574962848386430428581045822250482257381474065892196042822501235025011848192577769095759863131181725585028137271330559471582071292842433293517528632912983587962191361318638693801547064666862907521532067669460279246028922073052996374879377207140967537563307118556809046811589247370279866705327603382550626618571796112288500519609271846909959170504030244687452467537745771213585362055579422787234303269693834238926507876461191638808899666107810908460375382120709580936403028734302969479645371453377071033075452926791990772963937487186117695804203790217478509255225842266685107472750298589120648925148591650114590632960309310388636537739383054174183160205819303274746163464096479995413991694909914061618341745730610652858448395053673517308156455203271500458033226545139270421388740523538021725848162339927305889934110112123855017433475159570388552468706971783990599426850283730780762249443652667275168211325415670515710715411684505792787492890304630243774967251971227204181089784962079179464971131860141407966913618453170564457869134749822333745496777449697033891983209946782050583183536757292862118062436873160556945051255901616866005170518481524698874593413018780976466241738483588217418799049374774642976191588549253032545391009644842592567259800780227211317675388115306536002323582310086735800817697634886000368758351746069637859915409139651089603452528619942625245932342234491551168868787351260362398276330302758686706262155771829888758187394718227067684995004105169801956433659316639633242270541320324872039267023922544746996505611405920108505450003504806367934013952548601331948187219134330150911230483408373905057542040754534066536145200209084727428810184182400050507736114209320176920640216627030779376604537725222199901987799480774715252948405440515387885589749400762752902877416518911081351735028331212089599035196541473822194519490193192901943538632214028419739604791606802106737837469108203790029189906612027830685806467897162510835021411962183105092125825155029001452173420468538597605934040543356449458934684673989543026994036467423902155608362075362987046268167272638980499727810957212922402214868080973065223364983746600558072056132965658790026064510488349066703006121787396133003787726509288926015692444115800781812633456710471013495457914721940102431031858885079222554957367828867486378836013294566247535467727932923170261879423393634933711269871539877441160584980673655538726764737067467062171761177340837926744101889719255226733124756626093839668738490652364488960499375519903301391389546012033313678284735414292926433021282084897430647135956949793098818331309839594350007652827719639814956505177322604196781201828704755680129865099718208468354317276217987785056495828787026912534429211770175273486459305768648612948302587542688304470254180353903069089307976189102664228485869450667439976446142108193728572086664746536967876675417829806372916039449320664189974415445597000968967726535396563605971856940260397389809445983544635974569346368301356475143405670376361470369627994715610433296487010640253367989242527874817567025866658295673601631625709314455898180526779990923992774214856365160181799153518106192739762175819746992424221533518762068800933185444269161085629244375307031136312661675852744411761774927602151839550452144598057581637770506554367457681435474557230975068561544729898445362167089630218886698844461802558274311472409580059629691711793129975356236937997279846736970703687668905151865547586569620884699051564912966670065851174444923555147143584414737733033964642114664980194366092424849800729475241406004834649806824918917965966832569822048974708584010590410429804386171829425169939711227897567236448400523454152607551860810128648412038355353528458316891716412377091595381640853667095038409975394640378521609865757994824838601566097164368081178384401696725092435632414824255370938003516962575554409271334130519350501788933701005348701046765908083302500161964193309289635286184354812882324780831086209559159613768075671367891131962583209711892459713652622510276392749901748389387007589023543356404287609191840815499568677895348836878984614067478157489823371238422957830058037230121542991854356271345388258706263299034536704913511372971091355383173344192158678749985329073744953631375330489200140003042068810507993316865141570746177993534630079607767989039336762673382496812585128269655179513632909985008927029634420549642617538519855656229299490939754687050854409404321012004157831236162630989145901752129178354276377229684984244340315018018514913005908262111409224582945234124912724919984370245259693609404678956464969769743891773639867075043402974111747918664803259725872418904443847594742705895534179157003084590809064516916241476732293564402152229855238435004019545428990786316455997747088467218243200796250009796253001515559093032915972460878691540748256467240735739158001924113828821714120202167422238695433736487782368778250494150775460663855647562501347369381366505869130776848813612281938734369543584540951468889404724853596409363315678082924899048020838684674877934697500498239317123563170279698607014041651686154847799852693893129626380635023885488350325545850948919932168874313096267727076356470069883224618292233697743202421903105161038650091585318501383008843645254200411125763959786218782317049101358466469574590052677711335078461852315625461732792920485753471124774217016769316036843277889606577088628360752113177427040944424681858341330001252273828139293894271894277542803647614506774474249370781794048371153225297913788649823631405473314863626765560890528512029858206763613529067831786501754869650520343321242011037140719135277180288448419423869582574942573175048556767338675105314200985928019980584223020742314598636663141222264592216052811968565109505304222950447545653678723772250700851401827069061158561812409548278428669385871826420962274377340523032802308228090602026964111775147398525775066542055873865219494188187834751904822893850895178091954039518298302232276150660354173520427274165879782513073045148313646093192506083386141899592494629308079285781859772328495742224817806286427642263558283416948803171398715037302488968670357164131340665507558984326863221682185422474498225672193105443968923516735639349133742028010485502281633075613664320304868757424435499108540530616493291266762134238575390270852291056724136513283385102022428482870079077323005861528562072957177788777340311164537708257832968007448361627902684496658085550945259289830218507724099498900472310769722887232648120330515354396350836560932176378502840517764991876399583307423428694839101664580605678226032287569148048748758205186032274564271325825301184800351899416945905333842686879857242597667341949349812565864520808467324693266220372673043932090897044762478558642942403063554361266121720903373270366631087411167837075035308684620794018630098196159022962201116562156433495238428383619775298681535471812369988832201263668128123221715552803867829443195459357417853606633300745806364854971548476291938937863771095232167932854001780082320839185362136789160354612226349565341756750683139012885722018338719862565003982756338072877777269880103677557770227095137972476448794439132885961852100834817886708319303631195866146996149821840596464352387004046790384828092452929273847893058735030093858027500348631061080255982878973418895669003619790577938318977589112307013192674390805163810977925702610040675319406378030214046116052254794229313921083216271467539872516655811321421753384307514692570642531970060812913109352878860145179112644107825861562979074315752653390089752526445031501827024657591796775539415212294114278368010849894253827956487656393191905956913833613868467925161447709364581893730839401836790333388910462723578496963872013763230464746053674907899614510185833990818794096248691349729410582519490666490579510844784309963960208052964561307944127481815622790341607263077223031365318778990901852286728806358796842863772022703255725929584519186353068187647219474432852023823906240073461673315783546725055853725448524303358230069741891021027145449407565887411778244492449182009849328556832697856390851893203201179691777181193493909050277239754247045076837042394306149403822217135148707089481024610181931975398269718098421927070895427800730586761146464583847809014829316162952522820651132946980104994136457996548883480869900199607469524815902630136061896505481430767854765508755419260745036392618756553674148246601638146715998690754025634762475079834913920001322284057748165703286083695919981045112838285218861498429643289427298001548203546322041511106529010951064945847807786562327890159023298374815610473031709814974783861097358078363434893862239953461723946921933005714193492264854412219992163317751021291674338608327006597141795153112813049229189803937574993161397005485632980877509296130745109718601380766236428350144312891560861662194495438569995698041145437202734670297395458061718656975187005456867467499288630787718500052329285509479007161745217979277467995314737803103999332405447216714498371157922285485549528035690514898870568608011555175856012618849065006795552362374392586001082069289525629855537318008988541629204687611792439557899108160786427028529345239517335983484939207988362597038932149756524237293840110197161881629290556533899798357858866896772993213064367061858031202056395637492801452309642016940191466062384437175169347742148171007609858593486506019250912429275886052406248861272390636478677686628980138510162664293187893279398301931337163459986101981346585228684820547899529454362703427092074879200059664964190364818419650446941397986136558276540814556209062420128439253706514398564853340611688650740615133860575067546681593362805129021489977593032583187789963220805989614354828904118443621862266297907383230039824584039045248672927142316443581685641017234220779360812350237996522964959319069274275690899511976445733006639305704229561576960468074931025676930117580607070190282016592647110095658519535159635173975143593981813972131647870990759041949588705247496408054578133387215047964373257251681457463557654123945846482252237866211170188964658303868032915192079307672624922985211347894475897572970291285376825834620980942008537549304691075653383768406534476435426609628366998758546826908935966334281346273091397168869810874941377504849808656406116509752548729493193858297817633306078258924304311009791370285716330433188893618330658669246782113791311278840327811448728873919537937937541930207530838484822821903634747398051051945031194990509032652023117286926301461637347252091814534061469023195421191593645229041817150290196105055789729504950109893335571774247518390623063300667717538594361207115110857121757048108010710302397338922415363624903383136284669329969631732082467441399473316818305357910587083745428163415197592046097292376824739325329244581831105701193334890447839804744610754708319704314381911730306956266139881519344800976996790682054219339737318572434786030739175989352284607839554803318964380153514182103748964403189585897441259564869382824387251476315459733483019493013015982668297867116282158790907718408085474571227732925523339201728292386015175410919320291149664750523097759248460976803510769326870573084968835644329162145648624920139330092483493360172942805891503489845733386142518886844073970638228726532521786615769669021046308833952630339401648442966740543354425250781803789955068236503404967791439788614319087401062685554837258840615260466551342142468639080659062900715419688583466344467714499107950770236910554796357580235067450748168423077335889378318773816635321981564355842096902833715473215488925531724376750504678089327018353229575225112547675559040510285379675741323646652455844524475227784022538141125784393890341509768874096443922419809797365966587184393995275516911290099986029508889354866079727623731285516951289734548048254005998045226629584449631123522698129817461100158658137788679635217183491065512491551723108550634986022301652497882912906746932066932310531659328039012644741798852918628066735482040914864314186138970981961328006893457466068907030860344522917134682768273987701549062223928528888539561293992908319065427655319697888395107664433804501555520627494530573615630467360643465666103191622363947489995465037382942344688666800420033717028015458281989923935741747988704954102312995727841482103517139391460819932772970755259522708605252052602579128177553352533646097898051042625918781366774720764050467202602200857736985578663338598123877966230562379430539517946094737016713415102090400383289571840503043108970822238381227353463916539971777609004049054811408708959032625031459261432971225178850177602459053313054180750533411035300040316353274060985900290506007719814698188249682966721010328874529860924619794806154092224719817941032006075668528953309451905741731342805270405755757415305786906859136340430378355669339820733056377006168926530865052072658484352757330217084254224382677910371709333870257695494217283316174134166563851395256169373354348185000320056305025693009754679577948296093356721241447799414002181040155182817559184143073736106222149294992695590217889084360930287624014519314539864753263752894351078266317272157551244736390950785591801947914091208768273712199586714490777059678528364942830427702379735297495842972684538447647749276235074283287956562722022603808077966265618112272405981803231207216658175073041364607524454290093086604402699731772890804005593261953506259020423648182948358237884307574464424402782583469951251799500629714700231297036500091394299843053630423530250627237684497151106564914830185514845036434788785155722178643276503423321852083650553390826327646029249088095638613436992509249889287721686749513081672284324241631594030150850734815430341068797775205544195977593573398788013388241157338044962617897073484660258598756023256539851097443084702529364363206084822216928097623624909817906463208251295540875883391196168638057676599762562567898231139952212086703375098736432300129550866364662248731734919588580491863144316670673676842686615670433425242218349786343703564870789457950842088281261482510289115992588526218128101972936994638223329301573667761647340612435026362622722403417453200548183734880087877188985603731033491157971664414687178393992620323267471531388691369584271378929494867021298140825664384754584837064424718766541110991159173802927154863217150330880371663130692317425326975831149663440839492938054296251917164804121178037400421226078329279773515741289641287588737960503613100102321410930476763907727895187293531878599864999748227948086438430294153780822854432431860206137026851863640246300419685929704930437788583061470002375856757328507190898575794038510740278903595102594668507826114135859345750161595261553633508018154798505628571751971477626176354845861229890432497687191283815701536636527883296818213017635168520442335429374305479310520446908144831393746049676242946438948555802195497301293897359586609771442824745663330812780825312613970481220758024765697997047846342409293631301270265444434450125389802309033090644025376393830189264221320915142116642493727667014163254529616183472565172597998646792249900307400335257894828499990395390427275095942128898916117405747343694394454447908679315618968742127328844417449400762826475778271043948096009300422338788049557219247742078559564149964696572339985496442326569602906059931417990814303354761169249533687765497038691745801028639570250822012285008606327153778710095011827288935786557568537972953490864467350245058037585950410175218952745409756153415990739027770044055014622064229087231307838021022486701041709248415421563237812434709097217220434013923782371533914279753339532849026443969198284331623013487200845739834800520048963521655869668500465944938035771052870393010516334993839560946234637659886784002560125532209640192909453364926889764282608588508382575200370005396939441169769241244770378047925302775724766653032965675869428558845332558296570650125574542476648714449513333183762401273297586280516379430308602175536973286804198936960463395040735129257319181038292724883068396429190192476415487654541849783149246756636102110912179504937844087852153777939031054204748784915893255130640585408525189640911929780444808951387551820567962331097724709295214606311911557808575441762450606624031903499616003023556204114777661842042386528659005007067849826306646331308795256927110286325101108072751808783794975871747740106324430716532823683882772153487991783685934014697185762614895380869610273658848549050413835154535049623724927921112575928310022217635866281113661273121020267803136663695541223731020303538624603258028746081643214876895341257411950310973081771707862755393448793721852730640120867334625632169476519474129366258041370521387834521546038812760873290487015280172279056787695062107129539609931074007880010626510417777029892337980891072660607618975270257035881282155710870840061555085564290776484649901027976534313915271338046757190216512617482194002044459459598473265236931995916484141156680172133877467349954647051395926239992072581010414264702988765427127025878290339468544275432048823171340065749070173585076934136657830243022252929528289333941243774781688660826248162794943864594507530532679621845323929306919669148451226841376764690085063623156065151327992151314298655709869455804215541316112886557583570979338967494456331454097496870819803957280832440908602837574031989665375678712106404222586075679904042831482019501759347253570064006842250094265228794283504245480010251627602686232771797260306735439127671514423584347102262344822629020390842755763091538817635093610846407536145510052837897618799920634705839603499317001954585489840481225217006841048545529055522231045312635361882762446908629454069572292729021794851499494691997707653891391075965229795206740280126854027767058402929234650718474700327102187415814967281026432944244843915170428313789273103208782135142150412406600020732052076470866196816551259131580572134785262984128528860308542964865803258004986329165420131444507331683829289124092661155797243030518904277477055806643066202035905676321721024051898180904565933183250880419368052943525805883282740853030284171937203813913809911280303721437428884037248469753530707568541549755626778742125608946420760593317942825058006888685836946756747754158656907131519345472448887272601151659455628394447617875575358437340101580562857527479811497936299194076337545062771087577305806537421531243264750767361676366471303150510868900407218112804029226360483972863229594166681616383118908268076559406225821521086562945627051252348469947091886438359881847576059455220690823791371856308071379803192664689945874070052650978164358589426562365130292699651235665692840441089996364168966146963634307540636505763308218076203659838595236865397711535168354922410551054024846429018318495699544762766181816519325758795544803416921573580580954169682144980102360288233781413637191109886180965236980435868820491687363363917933186081047156316206318509708771045155012842986910925065634576280044782682218995417494211454496803654773773870560545011664590864913614450971982540602442569188165234467402817234326705026472401519195125731725721427759227946044313275236752318570267087221306736321043656960376873670205008217368168937417592983578045966846135767101547754280699153783413392051006993425842386746816011034392659019013593323005561353886516683572671324216882282276092463948322513595839682346554114553517811626373494772855504658786603221114805631877430975877258102044523789631293726230313195952815710654218273685972559650230659498529274080732186223659783215989569558484908535050943064467602541761154244405451206574586012526703855478825098822724499709730615409740766942344101877376322864602125527155027457110486360462848662593086840542032069393336267802966963484671777046412418694499712049668799648032377689186385440416201760499439684889637579703316172737253463939300475521376018485678747168040828053437723517398164508548762962903663010060833172348270940199445134903738592978598103316807607173569746758312366947566243061095407505467680331717809469773737284036395438213303646704391994615784383657114274524268189013390147827433400974572924672087119828007560325061973892183199843830379096949691626159434075847708132655163382668556273533357352339261939252078297697710079905171959271671281009438569696829319741833219068023934872332234554596213566420022652130059621483317490264852047790948076227545852741804532148998883116105525780525488460427158042004623079188721422838234437062922008261205442215033387065730205449126337341375350016905021424245774038180158433240470398056714487921574727203733448901557491039907774393564486448500848163178250638134726051338342253190902402172366080367337575624429006880541280095425155521702452897761154278357130736634406942932842528732143384740197718867925134859684513534006448581460445128582410718427155082868781777496746808212322044832589606346762720136587924044781517749740547028362412015540900951647582083340380925690654968121100006812885978090830837301889925781666790909383847279075186776529764018384577778913283327603815702698720318060679856870991848519014221299408311312490468876477760808179361247990047310646150562556544527830531558742266790277507610420447197971445502495172071240673127848962593260523844414365142694827361183919430599776499340474437684979173720051286870543010390998349273375399038543893101921410806312398384329954919364770652447490901866684537518713007393279377552597481098435004326439872792821748396412385989993859472578711781535886191787188721215538248379896368094611970474347678481056129529142181515602278005629607251722052532938727771810917593612756373918095411963582139671601045117937710485984576128297371913306155103321921507359774980761844651343983651442165751649736720845964192911516515098284020309278753593224618566486246841231867155215054051599374707133585142287457020967728373826816589578898796750980290081700311669829230191039321107416401341162924675081696105835967525341203624939429253163023786506223114000737285980305411113644794966416167068496267092878688863642167221343301521221790049245223740707989059246198869461928604313158632444840374621272767526871539718766073241706586740483743080343739941726544793938692219637020351720051699069742100863269715333058390475090871481213555487420031859545296973544111388923032028254259130043714435184429629452176474274447607072939811165269991679849951536364204681225370738947565564168363512923732012893109143428608180945124591384749169269917371841028469793979338187789609035433268101873854609282188915707117315220032257745561524866791894150955320357149852262600979093099086816463359258648775759870430157207244525973752977893325487400048573425846635810241912419748686292084183196628640065412929339316380942717662884273575435652788612770210641163545679309325646684368417729714868093116541427369090848518701424610116964444474254730647336837678758695895390359491805412602638945417106172264536345882756900338122253699534702465122979826759535571216228725619147974241532726624947419904124828404768427239067942009022485554883314963387579993136868026678660752743037216067480357208810793277807643433989839897336329971429191156736462350430791033620601649957789398030442261770147479620521419022348845972026936554024169531459143086767021078334402013106419884994713264768119164919295445783707568139319597791714574285698341341079128781253575048962833157213189271070997550622566324626602525136881943120515582531001391399244314002640835034286411309471920543090577927303070977703651592121502416134825177315450987301662145922364185338621918727780366046340337437461892439056728530592877251036078481351688443856103015093866993171232406971456412453562069685554176234908379780438389426610316465091018197167001317134541526755001354783115747695041952766321166558347458119534068508831547393490797812196601442308134304690963238892375095397835685211557340415963917288173286792106757751339934599837043162411754783779820989036965716157085116931682876081937708984142609897996061346453580449315066721686789319060726622225526663191060860567064304445725040857526206725345236743854259758964044405615294503324804908184530635184245166620170316149492424584987829329104391191646297622233995652329460495907304116628748878591463528678910612472011630410101109992986840660011349277550495184961593952248098619870835459599229612658436732293432756510326312073990000583802439876470308557403617757781535491877137461516351568816758125232547744564377201790372520649127260193118222930619785181648920475071573168100149832045245932882151063171967696433682924993493359499109462328172227018886047221316033593620754360616312747909503570397559228494557067290090202192013312413252326924624650967844042768463282410409937292058094500676546998295427539025524150945785001577672543923497885394471075446930858597602167180507771379318492908640919177768848023093474676902405675770187064456177773921771676321739265554038870084008267638257853576567823120685080381994066513862316940148733526420634807250314204295432261632671976163931059557924681197081946737556625874020402081769626400091374068160384576165763567661478034250693285788224734452331382042206119919973940387072776057130088354300342767680989456679105098852253184753356049978510025588850926324733129675208922121294178032581603771999954695296285897454282842477028708937728536438455237565745705582934345180226625172114388691103948253394837723593642972277234913207062811732642384739578165073526654296229793933515523522164573519847959423367902542679716583922019351108204570829461386896395606676790007476740361057587357096326038937775614447103506646775746219427470732493636608272043592921022181809796251739935403146851705167258437671841823866467900796590831440420453060799639138562756930715862386837561528935867175786759962920368156294845767623431261807844671012109047917527677289170891246493549006730096551466490647188354199279912113679792910150412836888395485666038767065320455294413219110208159389584554142660109187723658341067056157423509929625410379538304366412161097883056216227948984960261639348741359096570447692895896153649605281730167901566489750426104060967583459966809353938261720407144016018374490623213643376107855535847462282580141701897682061135508528257342537931076266607045843365021640991990322224672521779319169981371280763144826180920435060176759425019059142271242725525219681647369126965270291576899872413292488088665686810747473623519595228506996380768311394031015994582752245564869821701892080259326977392790031404030782586473336193619281868466211328781771975608001342287202979084417329088154897793494252149973338563647017176163197490854170020404484320727668235167622674470154793950710567371812705833247675741426030467614329668876678396968629362520416948524101788531194901736116529692974118397824582800628416446707681324688885633860416361423985612172117820383918207071980651827607828814767492688690229228264913993166318614405246627738952358401684991105512275276446428553197045683562456717732260746996605291434552612038453324989872110323725069596295954602161333818396584469404689488828749462476155260676076990274294597684464759728332130345296382964631415665732431458247571640717390579870784066722840656972995273650727858856666641373227990157453450841247724964873483858088188488698584052113925846299140911230848826310993411061493385492842588735098951934267560501871224316992668630498827166903464766111612081220877212983176068208355821130558958715991481217367468742988412204447422431229745230438994211831835992462973510187683210740702577128553788185591003706405628547975588185316156218687155028224196963924135079936046786947622444704593260324527880939351902337884379212371140348964625622517460434542192205631634817494736052452626837039697062635539659069830415559256002012961286833434581656757870390237929895193558254851257621066573109057272486485203328115609380093770771461865052074556917189294363980524435457811819992550131735557863161087102700659401210007969857268028749931541063193092721059148128527914794513866965102026247026215959716394465752973367629985572220721749139595274504848144176659793278680748062351058116002676139390882522937449074089791622449031063560583683225699952703906103349905396112248500972157045054244226186244460871892078898226243730733736589817299254448894935130502466454976414731371531979250148598548737530514756198771358831944703559341837509059109777390655923727491031948814646811483424871086851254523230561015376944706346996434631085057666143221727570310483509118515761886853812609330504632254218529035814122382531394542480132719490875264790127340453393346083412463434670684733928483468726354574516194086145352046126443550117273046306456620052002250777775021308382246934102456333360481948932682719386656347242968640321484277180299848371095077186027357874109442988974258642423178498234219477082275768226157145145988812919524382370488382214757172111846699048037497885338497550473516830770547828749576465495613208215836736714178098275816296670002879656788368442282729346659510120003192219695172648710981236530464913056452838184836149025620865272102633325539430603726762527286417795615163074887620323580660852924264488480551167564097286439145339846061007477743110185191945995719934820734489518036687147609094087547201802310099761509698172937250924134708364785886076913107853790136957019489396442808825491933812200963467251631349483673331298344432396075712908318497603603732837670722815366046203142447289586095272331717359998422036073719585555120152386912529279539336269040485671873178586058602571936881735691147545310911683770351805697151268125712070402151650218915532707243971435490387678807681546991368113906373959688580401316344607207206305869476527173763735558168400548657124429121317205032388936767690085221965954472288499361950296085344361071641376181321332482849798709500807314839138145507504738652970990204152057510953391325848924330087116061791864921889129987036368126360914614208595052136281716530437590670186141565985808500000006450006325501538634899563521165296667533623828318346863927235841057671944447528226099735706550268359254348788157599941771408009839804386599160781730689174280853561166745940727281576926591039070132138233438406630284242382671749426424603007407518151849133659284304742857849280167292213719112706949682772877100304248294085008218141638535784517593976373602777036694728548017356177429649852450362280919060021398525024551369231871075085082216830666376771332773316638230507291637559533545307432106083441453622677561785571729208845410536252662030272201855926734856452255304028322758069563619482309642026982668573815873646126614437624300934988904321581797482123369465975535171165586820422992270043767200887640524162509140643828804607875023455515718593918417867634816789986157658707157903134028877667674670391643158718319731263635198461152300067025506338288980598354593789838498038205264828452648240487737150286530289398315732106310927450148709591088493266665903144600103215210418200781464955414792855722712832251157536907772752697306600375379468952138766110995493098399122930384093781873459997561613303797274345792235251290007211619252323781926644284216390974398321760224839461735370355699875979677917547927089306805997465482977021231664954548552326873638185195952958028599697588463242822848413515410533241264013299173552885161163267468634509767980857167345538314588819045863856389678891396780906083223019704188114165500728755799838909154185777783922706678792189083171741495007802174478404969699569675696053537880675889733346381550619800511398229080186552309270436686134680389685025213869700689630190498250560522262592203412397896528058385670482409988875334978130975661366300106652945301827968763445948532860646310233304547498563252680904557406286537214918340505149061877839204692604924616014927704205686516948144021241861693446579478055153225386297088970285561702383736314405063284343490496322007263810917078018415455142982445584511720677863034397055976832038413203564189644466718285409307226068926059108511760108186281655913985044245563363226455725207377655803670078558505377155180502276403372891376306388399653234153269957838676983544457232454228293346957510710394301218592420204107898160117548730493378954508323728448912631841890846551664437921561072096617428279150694403221986774602769590055147065071891322507276548564470163342689528046565798379951337335127672540428599037513486564146512370016594864156737447455656532604453710397817921251516467867320923513445828564576509119571013480665427032010304175813586886888536722473262106377895667053320246340129701574310359872243332278081646438086901027868508618441250027723070450520787874978580012810518090878390779978211871702661585879783207950506317448171946840615631504527415072163119042819012863787213935343544861731862260358958947184718926554081313021488734710699651959430942081481625370670923172563487586596172247338394567355076703875072985049833082055116480690469279897551048030132132057786307957299738070861337143158405107090855443367467908307405993801139699491937787414155052532082037918537867926640066752217514724423627739562198194947911031036176629505594074050010433903948325827241893533464131772641070556008143817600965352148007773453765527483368254626515933268877720630311249437904098118753045779049056346381349048882136270325693085817004631364208947817492502934448025641555817012735269446979408105782987371731128695589279296026774785098980512259451747767490285550204161279089657030802961374833808376408631947871045451303505514773080660635935302773496123644747704131447596727871289263525221675173295386169217384755240068815408777649101304725434013965319640996196261785716345997726405988144243386000877179032134142724065249884344999749612793266089936168796055497718354919312621192411546444555422251318729352483476862643331606223733779742603230775111387887676713513787884555842129752248873047719380936594457530224915444966237790913495249629510673884283870903804452465855914526819636067751936117858260926691566280589635255722691422776288994139516159123710650465978759789494764820663005585151322417218331974418045298724458851237502101266992056209296960319034496309144330196434211333656004662968983731327356953008553121352583247786045407154820908947089099499542025453923356726151626515479575483077856888885524024723496767679700610202664789569409353207551883627685084393474241441283329986871551347462258052604565000484624840568503197261910837291731037805911141509061468258662062541328263055595043487534989916921713930535917982705859557403041739144992703126234355552001159753766772090225006451132090725209934610574178351712439069971324659389281538548596905675238319220833909011424993279420949109202156392838682431606908027046054735878723412137171135219641651673135564777908119932650211319811994668906564267518804479310970475548232727675469400237475511916910568133819257633154274085718468910013259283540149907020496795581949671752196328237874683796121440252250706748355123007784673117073727960722920347869503813100523859074984558345828006277393605107389032492063655530476617816696941077599006466771673255316627567255172276880781361947436365988014713822797107214561344722032019128034474099176146270926851844839406771973641254565286934404992404343487818192499701298480232627214934353571152152661706546128649547045343800079833974743792850313188768276519453256054316417677196704900922126959433694929962679638526793825967787995080090393739289815253198522244079695479341614022607483067090680487840555458975836084075043955625460570390902599775522815598853142376789399837762806440154637251102010011424430383707103883292858922544878124934644061605881191095701240988259446207744421729546849130633270702606501962033651713519742989865054322935029042239376891966896394184645382344938197162813882928164864649702596478426711085137558099703984710427679046787075404386613409590688910325148576117924092533713499043187619403133510861139420488902214416879760970695440635712830887068281889584841200754702806947911843168023985856778609275324290865245236963837231337688471251601638244848206980669328061843393241456667224560544967379281409842288926553808115630070628770742866615433078001817749526907271629486470107115069485530624538327961826207918832235352978178590187642500525015735133247435339195458465184659967067972111015094024874201615631396085024222453690325626606264745733895267575072896192559038182650775916932172741193265930574196892728274438188089236423687872785773255937272905013922556402092076899801265451833107061230510044199360045178379641301992552021173951424189646341170927344481435785401939106903660017041551945936942860631876186507354517863919917753086183804043237729942125708309598743502175925810786629342023949725902569946886757866976924857282507467295294129148375962827955390364923349758533490924378612036996764749735914763715692946354571056405494014215848778846882211970532365988727718226370062244896431476077827735101084248139046581770366334089969681731832746107734835755176774429568759398378274867119746158984714245806050037546363573372832533362256794803159228502380254011623512611107146652117371633472496239917436812500685219359651021733275728274649284890250062981529130968539202837121024704473174251517976583689604543662838460891187082368553176486588743539951836528454304451953837254997811805076624342395608713513640278002514874455491076684053608444860850311594645910785214876054812122723729314296686764901126121330985077553310702182467121178173204654517311659328045883747118108215672685677705182565340558510082613315134524105863154761666157029868880269354902806151616515228882183282380195662098210231441317695051380650119670900648315492243878626233350413165230511435323671282847461746081355187896971613760393100890530218386621450353705320343961625273851886689866357437509733126040588086399996633615390155065912321587461940452456702809967774638387210765191865092130043601715755821523432440854432375477846518076799790332653871985582667263573868693720247072471258375244492647581895928177512725649389306546556263439233577111609357593012851890864654891570578887359974434477859285242005751558096797243916812426539352793963606187548573225839998478923880041413047094401619026873749982392189484614806624756825588535649000704978039411503268847105547327466800072953874158289604568767947863556804455813909110075314492287632573395893773675029389441976572205233155644388552838705195177220841119670504942920091880411768849684508000267948570013024239415675711731261242299164471594317240131964692453579195948506638691957528227141608627533397805551557550467286811940408452986984248472369054702879439792870347094790957458132900083191491527463876134705417497529717973436845165560764381897866319581066451269105730359367072625855208596726811193280087464495006795027458168116825859295744165698157429951001644998666850144754807923157427934951234663471112117497504355819945387487803832955831735386691001447134399458403887130849123735691414391487004591124488745185137990037006336920633044112351356922235228852655389750611799234511109394375420314815537602448555428844406728566980680097446251543699475016969439238880161751002721336948228187465046577676489893661423887099047601303966424681390154299871797821550538703244118158161353502875379452728060331982797667877750729346516838628523906553379082268479697891186115952368593375433533219392178471946536647765058480193161332346378805722271147743626658673302090230862106160055092671223557057430031796339520125557052153952605070028100753257993062621803101404226574108112948029979101084153252880566687337796660637683667989689070845107178351748671938358022060218731159825089554840625438021283164024618545294653839589056809212676593364092096428864366500153869129358417918392257925285044951519429132963553483703115493717395825552449582576430973873423395453561645594411513641949552125727874993499172356507214762107210384566264595965398314922192676458405612038115793693856929014180588596253786271300995537868648582639755382366209657597332716868219786526861773188716886030770307250277943043567822723803869028953470722143461448779783707712077721839373006338813268598820886806129072889154897634415642820814259984148727716867017414468477944997924132691622555001357874037420318753593904274876190555870705187782457789264085206638069682712678294099443221203395979608312146365995160453216414653881210630560260078148841794670318462492297000343334756158834469944627635995224974029748222244168713395859569726972171049698536887591323034527089789531257262823975327821785161028915986942442738987545426828427612616664286879503245044455704102506589917421438018765080724508434910858571349998571497204840135906426728954331150151543856321985766731085905265807754604871793089277255781100470035521000630235300118747515003749006683989004969679428739818748619888644456914928739218473421721669207653417270974332309875653147415570134604291088858340496415040061279746839259372977437401393777375347275155273062653645216070339201951601797695049391837107567360244559586544591832818013763331359145895613216183785532267499693442069075174504418151702238907850515288040912450023103271813355077212012281898591777310952334614351675312816372164074014479196757352067106433485504029595736046182857800354759292837738353532188329985491922262971574348877644558605547445849142837489828207031009004133612873510876467297610328236447616858135726686773975169243699551314375967566133626786654596401884180850730316669209081523587495319016440964010645511766902536174587712715515830285964111310966292164405769811080327325786906404083077649137711258615967538074060231855074767784343320276496901293995780313709985865395777997270799396359606346616969472454750008560147017689766053798524411284728503873448717537028790233458938436382689718312333194205349999416681279988169085361689076680868168010141742326830527520367176494496422815149284065493298702827013685298918739433348789108897713534591223891089900273747841700514828144034523859182448608702511012926990875306929301056216283109673591677329549885147602811816771388079272827878163445157802760204371418363198921352138999169485908871932694731748454826948368751973967533240328826116982276894471300359999168604721826042998274162616576046808625105763283983215467402636255767135337258154571390809154040517377077412585136036745116435396962385045715580608181158740227914438030352224988853759098960370383957654180016879950654000721352726723257544995162503642557930701899664634135471648991747694069962959420823876567927966546731565056855812498732516660118983030053716358450445291823064744238544286227444753472204937310726390099244883894917134448520778024257153076832578999236153831412827870950336986143721201839530872940938614097560234115739092947596633360545507636270547799162181884985760840134084514712145043688220779580314868083093982913342186135142714039754995563617311684916624751676972881853411023949330415382320775135343371836117405505043778729462641193024799678524436702647400723766219677606733964362459491502741043461616089011711630841955678094189851585150122009645831149695456946751671675762895649728956153148444172697353398929021374854092552776403358220821810220175542357615231714501089398198080645341104413586977463287223497736870660970223988538937531330761023396599577774635290127692174508132686709277050297715739546655825877422489338460753726184468421341459031774931178827012102908509159328362397381122330523566616281593556168985132554464066849668967287448443119246546058235254505561819166903495925650772090825045375392398431228561159597067305350024499072052353029643175397385129421144598285723970094379545950598087816737787055943154691858605833476865710671484891245783723602632265842453079670883670249738385184133580418899538869505091577065732950400217053743037964588351238537458243969845682592336674214846756855545168732530986536133529676416662463610972098124074508113649941143841026755764712606466475096013065839417588264784308196943754797041360109439406314236772630445901088287216208526418978859347889850192101672419635485237168137533770729180756870587591987470842547584226256878768034159299856923859880357497977267023164768045096097056385004192907185051377595837037990976274034088643433407715028805955358325550282943270814713047074336947120630117637692680402497269945375128690027356301966733115559124232500459408255042864010039679896550984270616235371323472360453620608395838165335918873112949937405569815893055616002672665969483019087657829321889094697296869387786660113658438055955427213532811623696529339669865730001238062559864837134180379563064559995245062672930979617660140565547160716257230580722765727634912187246402782036616386470532838371551958472336893868295876976264258836316572191791167662423398025305102280371658575636174202054926166466140534276977349226769835075572515603035024469474987845023307648534197017664952744331962421663613522523714278412381568462859680624938221327999456784546682682074970935719391380841515369537526413794283623629209577315488464842986337394949987301764074358794208832868880249242986653395638519451065520880016484702847347428064509335929139535396210007865843249365937278010454874351399254643945115846643918872998899719729446169434914922022462080796537603232135521175197801488850876772087114015043758973631040620783285732472810455994739134988717010371906524503007468342063122667234821945421973356702804568282443398386791152345621714452417230681678942036338254410513404380052039392961800618858077322392802790096616109878012131648147422519515143148133176458218252985710891164609843644468708728808431385757903814685384009514746091596926526211589603130027558378699572709836312038444657026744056387004984094450367747361158563109663457535622831336869316652989024241834155751979729262338796762215710549969878522295483664272507654585756915555030847952928638323328922578146964127408398327960853263949949337912582809771515547122218755100985131180398220694326805936457986750541583970631911513105390526336172408882881201540754499393920836783770087819836596101878088819432260947926209037791218787817563792704943454774760450192463826355862203840081712683388060937056458954506867898162834326884668968180487990157907288048818648773273739685850501766732376373932720582659947101553770928258416823795390108825495409838260507102147338987698788302794271108654229946278463945359960557334370108800633329297430713629466382563138222245159433189024244495201030573482023830880856957322636314969251834079554202098767989271808563807876204744695944693235356526017019965646197385591797459371944483567627891889620040881155885309504535060100279246640517735743178541255317538506019232322794004234398744521200934066001068791758334913831006298529930794511784687786682375030716977449139251608050556030808783470367305034906910939339235678071183512029858383434432332280535169166126430470754918690294838744876333670600888372658960057790626406031840931591551047132437835488352969198472308426835198674086726333172991073899783683050046790110716096231035258864077066386733610804272744020523928208316844437458845447442882636438214367954147938365119913934948073561441272443333120738358658238320594710623587036640467668170632621601576446892664198029986777042690413227631793661574321680269004239044551797294829579618331608736182819967100949635403963740572672243834829072824065161360626442878052093478285259903049075751721007816717628259323048572461747411850332591722574446880175254417611909280609689798373581824042002903907345528990418835001089362605670826879807578115819984120363220081393354386476261764435478925322728917599538391795650449144793291836195390281594383500911759391691819779217993764692485295083859573938146053264341937464121874569177816718897391595371474036367821471634837240516158022997882398692235546960477992179459380121333349466878588335716959311269598171572099465893817822165386001793057112564128551422522100439431705081258230049631521363487610040954387239566734039152566408155395034461753141731403706021393651816340057829690760470126227267661970466845326550873538491473707882184021438767619638667673533885344966965043045041208947846427323736118835315909393383076900400463610387434991011156492199338323095432645789830645074415938239498256579939932996909537453293510590017288364975930964662948122682622123565899149509014449560597793855392618594864086838828620384088902804847823197951004381808753333550072571419968288924848638333345678188221272357235983608008078497393981885312957183685361198536113918483821924653231882167752252420565254953829143853344560060036418917304944261928788175741534638163682931951105515795369743036580433571879884558185321853101262587226317571071368234302796992668343575715526364728804313063602932025752109395152145540643726526495206540798543345537721675250162674936501972016323475710438323800793101594314169861117075173606115510656593562499401658325835003615869995523703544992958540308802991925830511699932151282053006728719862039601538864380203106461125954808316395458210397285803816639011056222513277181488975340291338952422687158025238583285312601102553742094379526231213072615906000710810426910792335956457616939349349482985555683223832209281739359234451098322901695786896424497134211776201276664877461576040029206682241860838891214614385947140872380193642167067177783246562651924705816760686209552463723596951442254818116126906750195844247964812468755521202953514033553052687678134056084088158871949391615935791593436743503550610745441002187119142018197980369453808229161331422508594680969041073695795269584294680876108887748783935645270283507341508196303038308169783897144391676409397082873355321899305980787306465291694325242039779300191687965375411754280413542672388540723174927494323246207795255086502746343018570222274114719329470240734691487784935362872835409003923266615100418164891340978784846900177424741290013615412569139856806350419796169140184696196864542742596382060512787834830889016371524223123202367607443241680104003165213508290665200878524447770357886548960437766271693004270403405732069626422989400677948435278806843029426661545390003172195305308989111035177179008498909504552718309198506145523792070828904316933093211027508960595755562077043650622951985389093533731984070382768842756815667855090153359403341914853189647590354779669679857275191783417898721385173338111497882662518533937915336178711463884988703476530819103851788693954406481039204676220795488382055161477311175272341036519957901768551038465832184552720875899005543350509802031640220203029090503089236202303784417945133262379152305888436511861847145510367156406740648804299440937683356104714287286742124181391988382422996441352841330087388421875150412834420622592124797659381920527497804063499188025953359153434322630114848412449900019549196822130258389490226735712967536670995904316079468493267350925937436441132945416387150528746312597879800223526956435346439200666793299616003282806511930236458076981533098899603011359705193342865774568235009026799876499378229181630232831724026267522306607750513219596585143539657322756987890609647714004435444450164636967051313114925495885260783265439826288361816673120000546059886433392225309193985639152584980025465573609458450882526771194303452014333292424423966762064432470456906532211893289433888259811806164610220044952214078529532250503393527567288287635701377780721226361959473427813953726252204093533307256516117327184309010208891195226944190938238936436847339998657772865563743427728395547716864112175698387572826280695586699200560910264906644167141656372952744977454250693452484797674581557436144219399315895131033387854403660466730080514685083473712603337538482225838333847824334696130597740609411185013002995083743776639843845847955046138402628490607760864272900074022401996862742657933880935630512814615525736974458635147652330901170812826655320726131221437057721262536981414348619373160340402220544747045376235217224715177302547460992104146908773554023972439777587592170469437344618547112544196847871187826228408546995307146164326289823002564587987539222369094911160542932558790360747270503730342954701860355694471707357934961735811758669570794398544390041928959375367894582138608128988038390408100310363622081309870580354618025255611734249226404619457163988441159066537561606363024849726014436631830074277805044509877167659671824598767278063658377091675654773311803282182948229961340468299393567338470233633897437858985749499544187000664952418973540348547458451348852656420500517175054529394161636688786037411672885477053114758203596400106311132636468337963604785111641321155620184028681216799798091629307963117719545191574793489809649372542337972851662944406371182199821298558402311589358414692732205357646237668201549924677279147445143155443098279583209360147015433769128042089828855579919546094933452721810043912872793861691017025467035009956190133135479476049710252769673010064171650119030520645871592781982019786671826133000827126806424067122013800729047179977840370678315861394897064692620043969586284650118240639986059884860058455619438062346879481686011594366991221438437128624386951783604558558578342169489850829800481268419915513641294916217868923319743642135507069465337637091231315827924199952996452163497907135060689632059130223532475740578076757792831206669990829643719887472377255103069359573370983194266354150259165131999468425747270485586417995924737570669817458829939428648502535919511012572469328299720244738242630694697902503543053709706889884513295550569260549358694036892182929790124576748416975751458518798334497331105824381930126384961531492107320851703700508130496677781541099329922274571708966992098742111755942801062353193481145006825341679575604426314131901326348473039508343711846652389276652900968164076779674575241414765439163758044171757158373906769441647202442656848988161410398820736215084689257213930820691685554137207531457385687686708111320574156143355785113870721135804670788322868360864181780637620958333630180408917544537022124674590254443969389786506183569035996143120634062867034067084535062720292957776391711552803561187436717080975602395913200264603840931857104651211387006642569116023428823499376020385686159578004991231999822294133530576049308889737421810324368065902260708987768040698239226044130884494088133299898636651929752842617416331702839558236838577056605086241299311788065786386345269159789598042065884175168763287777871360584656503038231909207917426917674793834651787093668920509501987516241843717505652913007841126720634275211630743426486841135731437353531649105323495018778007473148481729571826144149952920507193312027805903296849292846777406946544092246065285548643998449932219940100072927009401868853902244478256827455040320626804909192493784971728656592293042297148822427388998614048771219464427061329798451530082768764119843464716015371896789668332074140041111145706741637331277407665860627973972819856213888125075605595243183602548677949574848802075864337231583111747802732517890687294224530694223158159088497369502527098743807056623780638386571759138840773161527340098922559414859883136537694158117158896313223709485899551433351208557096377280142476624271093297835367687012069723308128090250201750028497176574252467197672955974102715197131970274187013405461580948957576639563738329621569490231640593093330173180400376005088662609013442710714279644906648079948439335796939100597370238463945291124434848926790556140853172817827804515647132373205691081984015575521532635132086544734827444782700018832613819950135025811912596629921247445640174448896074370960998091934228533787987190201277922266570933982068130783384957781655425890546995740876895617332920848893231342866918886652429629158063717228938741473376451562160705618885021790615995344893908557218578206717597122592959548175552983533734148193454799418178367266442507427613500199227197027988811945969454480776878910427674377690979749102652446037850117452108026557381377409621955120874506184429459533050890924997187657514296299537770161830166285854915623272744905172153052438177919363846491429275110663385067716366948655773832307257808534999792723946776560658314773895763168711518708634025680275641571148203240335546104885823898113825315414827683481936605214583826254097164223028366995124154488560969165132650487909383245386729563954667310461319732080240047691134398951981751889565966528824728128130076934969744113308509875927595154838454521733801154411634116592097764600499523085900014057421024928192689710371545969536534883457018816574946881442084453858450465858591273804088854799320384286101643150381258804209327424939510407119022051667550588773855522528345645939736519130279455396167948805172343617647446857967958483071802955722445148833820585710827702373050317949215735835191843590761607362688017865514411501593415447804273790786267905949898473276153554421735886578292747512784786570980174471895607098648756347624097781966898767473467286908744378165237172078109743534346590305739740043101026206864410584411634404520723052103385350757794568096735657115674118880137300534760242779268470559930852453391022370400386989129379010211844256066637579724922429950164473662211881064156490206710718666506127890362041974031376043607127716984383194167648385510391563168320222258456610792445591969926382423995842504549578242134772234395401560557033285149433464647566038541366402283611253773889958256910703227847166310765496568147137492064316486406574393652066470063481152830161751695844238207118636224756540499587305886839634377423900143035453435835987698140881210679549859585764409930775101369615207773131017725587488412748826627903927219824029817841404241952135011311484504068758052330156254633024249179259213701413171922673480011778621836656727098520877236822266579220565253394489338746343614542470849955892475335797202235206071274966538817369241949664735859998634035597853105471780977148315990382335748388018353922934824864518637304528005380264626068395707066801106202713787332833745964367825114540890987418773563353212689701191291283131105297981702894459053794421237953172881184622776823112215685780503424387070347163454422416450348642393630549170213293279397150688547390770996740345321268655871836310460441926401237725878845141136057573062113904112553491541045311489341928041371873439320383878050760379453771113046428417667977725267349407034415009404920591517181324958444687937585092639525241076392665978049855730676793165193076509447047764968762362225536769833592747169579337928984257414471782936617068112018145176729027099031812669156740763436540349938961055176058364456057070689648526502558380847009240166165410055896996472170212854866583458182990243678461996815822765409164143267188862593683172583252093359659035251104715607186155691220370653936860265206805119964007833800830937428056538827147318692645126243895680027834290974936078610403502686477073122889039119462282059315741174263449753062362996883309425108996438783496805410312779092999521460511969442666904019674374428175898392137783736218689648885677500865787555184883532929067541267628751988544186877563086266498321745936204498493214564704592603567625223174877958001420780257735118414144731776216700623654012810146586168625811910105773365975561717488908682660847310375962553671006053565204078318747028966702153776602605428710392954061950828809367947557454249353585837917183206621345528058742925518557039924133501062928687766359803767883068299101909815549452530534700673828794927568809694696742140851086294500529163365484709616262670184316645578757894513296662585739731783921272316664956801653198557357966571954114329968332755066521908943548849783552311873086378614799551987603778413650718622855439526487750713718265889797038461674651512669642471004211388479421359472381269619836867047640950110839629091944028911356520190581328978862746676136669415840341385698729920908598055967088587034515579029461283965671844572653140119719092931642734268752653836782656228158942095927387232487864607463884401786718090521252964382667155377808691013025775631345066957502872941368124305207250399406959876740700676154853432567475356189815652754551794529894130158581039283517514282194270318507642495092863105661827245983674943310039443954443101900769251669990370517581322338370964063378854439124936685939165926116266049001723818939452631135935956344541068049017069533432710408460618304986170267526059319308301184602305465641961098868217326304956494099333332945406809189981319542827101997123533308033541330900645871006533863330475641493620072104681415880874065800122917178880987638685593741935271212509245069391800601831631680742094077234641428266758414736444507863792656934300989552532277004172337083774244486030024037762322167920836487504535514111359565191806159639252796003872149442639703977067064072681257770950975367323109256422955909122309538328778688761099221424457683493880147005447529271480097378991985833675695537881874490309401449649947476726041653905354446578777573327412294454294487782377091361360002662222972801059922091444400510537240425558741203665638278251848445701350773585893977999300583529054072714568032682316980873439033985238382576482829727691718654752451076299365843794188787694979955002191484715961222916288900193847732190434952033654940595251497352704888759569586294488370972241316040875641288406696087962544170731882742183396845554360025389031191421867573858736241188574345682755267447479467416737047167253859097702904854962624664169172454429461029703619619399656883408837929349484082675945264823855529226871246390462576241092398266908822630135918993596765633540200970079915340103831990368957889255619116265155953033464605784732029912471416494164877410127228109952356353142831984390671440452734424749412268937317224330003922980062828997561373254370149093595648274785695116374281660919247357957261846565385282241422192687512118569400465898461125023008275661655820133516604311120461381178992056639942151556431346302132717024639754820042992017028176025263209486659431304053301280817770775057946428484737263222106652299231586182848516106119277582708003034422111162129402175062946502769558206147166955777583743607642979397067077539953579796807689818861881197509238768325678447213096653176856658879422832242359025192760708502142352199941403325541330029712893869910935100962052799708676066518545484056007579194830207065845425829359163740765927888717949704332155239749493666829326353297059389432360006363247340507559455836383691390421307093499044671466915521313351666331020973961522525443435821495380740557712945894593150339063257034746440153703695716558703212200752742383278450486053344906809686932431257359676514294056752507735354564762384417234232370494154653323160341242753018066892145351559837263356464795638814014215391317593251843588060702068724205961898344789801325794189785187313094984361814180649468730090496738939520362645093586153282651901809738512618524477591100195046215728352340687158355536902632193863531931464851171638777424799528191431597609631877067067862412661944806993787412108902016434190586020370252264145228787273487593887608965686778206995924053278249613898704937306875219648777764905830629360892128231535320217086715576489163570355719938767144238861957322628107860943988888892412667077610488094459539489298188784293879862622868081108558871095025708137833033494704753470415086689144944331314337978324182996257936640530114400089772692924272852416112131783551055809818108773132699910189635694750478075288220643877666052183277856034876216103196476489801588854666678714375088332918129802553220923593904237943762485287448280896917402875793996912784898892175098302332659453786431992501678082607938743365584409998804168228761838751811527548947279390671047133848465714054367140670761830759392635829358282125106475245607050335709024350313381404506404784822644563623133242478179725298861809053307380659385860267101483846141404312715491967768266442605638184598518354246504816899915625325698755948438386815114786584617501793093260154406473114956128386889945652670023616162633697079360158426445883079852052169854883258952983971199822946981888283761703403306445078060988430258562414079036646147720534219720217812619858808585795730131491679322634268227538418803111351125547789236340348249338342927047899401128153656541151259827243937689130342132107829734010927716067648094058168772959293049721699420851312332238696043644896037228034589234401856093455085066302366402093913868693991237982790506929243099823579418743787821631372561233805633442443973445250511472053225257825854137740091281028633418610999821660202868179853662938273911635621533179461334342037749918205717405051292838741790217202049965283203229125919766823842365758853205331693438738850732412808954771660316273603993244182293356058769860742128545880312304787631298173914167941912494009005575089349968124785510973283754110925172700182809478502811634416726268849821660746016074811583969702188368557853714836796216625140914821539236865981003814025758690839770201173244445554076208154927318447687175104270118338022866121764185927922111029053677383631102149614070788040940890498171064457619717032985283146173808224701121041351524660299325835323876762451003251134443175131112896571276427652541716785282342840326560994024288443065436918281694210485449923929312137720610517835588557111077123264120990739979244567362147782995079133100627009040973250460774287364133262087364308171372763430916082560671306881551422023648497356196149252933280229048022171601575927995201839159607308376217096054557794633459919605579634276568195996025221633616293066741515140058234979195287550008339331861345223194009654751571552989346115191261890626553259745479643498446766616023625286645544680451453191232802283359214299257121689492458446864595204822341114039491394446937050612425531027041490666903405754732387444464695333517386335268743205770037968514862001242402346705549067086731090920813480234901344736615972044459895417506592332259686902035914132154451546926135744427204977726211491645196239215129860687286107124962465250677729342064060983492729007736211037653625310481550364503974767778906309933235111841203238606493666011252990429892914599762828110550655072939676030163867290925332729001343160579846602172398543110797172086863683598211822092135065580312093248154192214164341748156583649259774726053724653091570763921506264300977770106228277277133334245575622762802498957460297493532648397330495088933029650805873735546629924185300718631094094509738806427495224760105665708371670731886700016459000522263920611936352981747028154148330459324691383758508266023933344475435366208096171392341550183504382685530153037175289520152028794707996356006435836808155709102340883303631778102489382050351324811662639734614573636226274836514397503052635277904025168723957958628386117102483809778598727739574598868476091098197962906289341198554770798014253545649108446632516478024372062041401994094995389593670404171288739549044992583643466403263169593971054877033693794142210970919210899597598168412310157728854008097734691333112475707841458512158974833359682629740726930278588510121434803181650464706902779955760731882067985093114630019303180802186167694064955048113992923271639270209710913798732114637979211349140302784550721013646444122083088701983252000925008818151746643970001443772750695349444943278784836358371188878955938905109196730958404490337600657732484532190963599207526525016537355596396853013276344136737619784024426216139634077053867423117866054719329954619746935333659074229087016576113255078109323252410230390884815363419343695270253142163433722109545943760674214768650628258812745218254776787556376289400122278668875412256062692351962628598965511377776047272458336253044460376068393918715016114956961977633326471100141687922141375890616523826024174019780163751798360419577720538680209677966129677621667243092266350902997088191406760406062515682194178641949290502156567527691940182453030885013529936801645761341065594354934733579588764457138582661503519615657106399037659631634181830820936352965817698646551400289840637659506286298371271044771742536372449816970505075000142639255123280375439293645293917048026431061869922148656846952322185933951107018531105407997908129097640722943837642137748253038405897981324889003652499645541019745626700054960733768693558322074976347037323511954961086945429629746956189998367528244379032881202550813933745717698510168952715221511056791230087403690315971245479222529163097081814048091425817703675036614715985721088079136714608002115432323816177422148593235315299634999502638460928422504530285686986403600730782874015781707012827481246289049488547492757220626689531193804748621679006253221057678108661678327510180794766381841935799336058712005577777851321093980658317943402353785019028007742323454902067290408278762758373537826401461364979440035661916559218473853781474160843459896590784929035787582919965664671378885472022070878538147609017628604460370568390061643992415222835448781486124894580880287144490708347568415242176829037620453206080390194395023178200340896994729856474205246607341810125618359328663009858303630310124516603082266988854680248129229839059994801107111887161794068435350865217395150657539396213893080147897191891840643408747488997721134543908380259994955622544501611636888841415198629152385738990316452096238459872409056171341519695455939867058925107918225764327615789988043083673048639544679488645372077388489770604481310152121752560815161857095764695327689863637351441993708317540772974780800634650033422290727950114905019369363639606541639386772856183342654297183161295348779390745976485441196054555731313033719659015416294555842086183299831184790717971849347890620960185064413938570265081176390651209140968086105603844416136052099390270698171394976408279678350437280535270082360021437587249155996946510528269431861244318558059187767081490749447977221969743491357473093444587991997754237385946544479060487832149015597472159261805751248480392729260957819999706902611544909361619398501444002665374176265873397856921649033139158142206205312116390999857379272350991714224929937446315598154420950458510853830598223069787021919986031380529207610711847896983836124257391053889515631881413200128694767957951976211317570421576519201332035201544999385854865918103940371966250513295447616536889554588445063777422434739570925425535374029477066242779642692081273296993417582561692395384743291520523144404804327769331073443177128263334354109804760275332709567254889077990318597883309199525044103798862230000736064968712737205666485831573660757795705512665636508117743327465873523139516440800583007872616555245003697229760621367974718248571925380161084365789550303082273782240004184764958765042008980350794842257637159392876063037051733730799713804502817925923239879049239303927330855881316433067310847012019477032055402362423357244021937955984505149152739627425459328573317650328983877992305285629626805898083955887953399060663119842441560873624456008025969591187755680180607401715009136135861671059133989338929794456351982366837617215100262521523196683408229577863121559949471289850313269001912905511770698503926739021784219209968162212968036522330995314109882584784200050904625138077075208310698230535112886001932141308816655221327372603911501669681400972732397638374591374107608098573839904833091431422743521633025975388834050342844252526374950378789104438899903474063263650192463815996688202369584270500468976096700244994558760398863923207545735461619262500675318479373339978982438591155489115251581786759992709972954347102558382019187744839940333533277154343083365024576290900228056109083231502175730957842281488861922081636133275677353159066776511359413113756441861409883419947725405985932349726750885735521398348579020855892152627896384788341155313548958258276652818572284240205315568464372625930872161734427844057000764711170430269609563867762449626898679645965344927143166603337143728143343555402964330950635056599200196412868862269738717205439832947108942018896075584755608900780151270649180099754895793161019647185937432014189291951923074915848380522368265640736541313731786024189509180441937661763809700979145191102418000605599734248998164404511039433478430718670889174486911345173853772869379815298349473810193563456702649114832312433711140388154945098624308076370319012466090205206099872303676076306595772516457417379010713338807085713135895463910641488655868328490325961949061755359650757036053215048338392148203845322073673433292318685284045441742858891867031370510154287162616667468071356932347613152600717170941587929529936038306739393018164621791156031567963181881170971441251605545035486102184802126483745419950040422190752404419552082512003176940359961082250233063745954789994037512813898939939566281119895711188281026988435425397864045635748718878335763948149274061022370859083065697004559471299516116513313755848367338696706009211932280755607204462634196448624698933197937464473006225083571367205344188399778171216064124498428644024931832994962060133594458011677996750020372026161699359821641329024665226561151739940738428309565570174709237682687634514678808264743232092922621070032621877299277838451751604853938013354437183291636850959493866167308230075287966457856354968436720569546634397124057371965776842279580735844650764488197443285251780654898071900134625416250000297881307147973439221114812270426030739831521853336336539480267933140935796541671920999019827835108929151012857578858972225539350112648760397338097975996634430691165259435087299717546150716419494190805977433793409748351797459676881352654370256424660906305551766779184354413599798255704763088064498453342480925678365258540290139954407414628044774124396915912864104448987868642450563684661424487048844587827188254886937192944286712135506276713399982956339622731083926195001000559805351169624993224118477777024525012662074033238612897589058977333894728568364134984700994609275828750413034063300521742138712606807974286834453835461338998547363221033769652134690126935577315500973339561756144950501168261121406579946217778027324691713245460583495249052786126695263082453066527196603703029078585792210051164581181371027530199047256873605672948716892036014635572620591243014329054742769544243299493591046083329408525374781997702101112181141434069075505466207467138288582939230637877495503935599216721483618631815445424816740978206233959874647667863187992324535064981700914577350369371043879591954860268375382158612989066911138297530762117475055680361331381770961103200724161498923828640989781004561584949038622520105969181366631426803318497847378777587689214021626222780734782617310730616646131214871810291538321891304130746883556569121049973229014470172419360467043230125637960892025613556993139749416323066304425414827046807835450209318028323708491934459460343499086124580262207091842771303068625663173801485002824590800441679120996124080875606120587461983931809405523635522952463633267210521858273197070773254470725291759212791763529890243372623311033334911232595778942061735784908349103827620089749640011868692346340775999509058060535989273037933790589532837451206166965830453450062850229971071768107728951506314117193127832865806802827216643036833036645390081961278288241704242576506877979317200267811967772241700533930888201815783117293735238711032921010757503140131530343281566049688472493513371638380855350895075735449890463340596514636491268018923618863577626959433346571580612630561805650653320439054310196678774276235864880492376836446051017318855583857388490791043547106049550909391897592793974588521465014168590151030457305453500354556283582895485873138598716709759596179132982021340410464510752703699065184294755310906363433113799544830861463378916970004464820850932460708247643904337970829506390738160440151555807442609054978318885063821816127686867436678222108110575708434860704246684793884614885638824569257522930448586309284361842942947623110999346196112766999075381256470775360851974338696764484341029415374986890703945823637686717578412081912776564858991131535280301727854460010991600831038375259765366197169529447283934872654072632676665576873021626586858222162060704640502897028765669199226465890403016764010737583655017382685722153503048028525739077194403138347811265817283457604643967758065678113125760103424155064650987845476311052680480468306190050697013892606641856867182594931551306480247778008598015752859452955162491237761672128276257671379538500252693139985150681105820231651482599698701810726772349194546913582865056169133971397615469948521318298310158474415929095003046949498841157338923883661649768073391945824605146640768143495572546316322671701159942964563243830240343969864771144034210493758888674873701716621430730665791504258627095903366468315778824266486650658254069075469004308755646544449568267354431822470247605303009660120989536707887525702781908709788824432293233013776148536768450267200215864244208502215070500045342024140157936333859200322875868542738296367516663542344121149471609019484770883686926762073510844699475181585766151404850649094146931352609372536331582764557900671806433444263171903561028037048260619056492263811504076613085396420954446753990191751119412741345152093888903793193856034086365476901921814483262343319684460597471988766253234651754468510134171396970607589926064044469991574852489643916517147597402150285971896127585634191090315177394889085663090129362694907045757249114286436354455412792531670879491695609402999601832816480602125243887631821071415808552202014255094655412599494518268670792309631090708842394346798187915801831230507071716205770419388554678880825674357044870966539166462382349095908510007831884026842257412342996810373873929094790768053279154753754586389873910224690236870554519100846145142258138395012883069608588006347121646043583828125868328130515869080357165518341722765799131202169060751732602178158884412917745014924815818572311524673769421098913603732101208368154949510603325939582608874024745105568494101554144358168410626799334875096981140938897902827992185462425246193194047250379731048016733050131853648037663623613172269354417423614716903622176707412019721030736648138944625013051728778950086220439754061195348427557348994238831548398255510858794939920093939311668114393238618469166986055819092929102665057576352286843967846108870152846882343829397039149429526186852816721269558086344298124950391943488853974302264510248383872949577075671829050956795214801625332556184803019567311640891475974681105219024088538769444035685909988568055398979722706578127182106861513976526990693263965341416183399721228806170844875439976337722599190654522533230066735620511253443134079484130236253790203238389202435389927867016326662539365756809085638799193357202702073035679731670314034269266799346310308487489995192683503160960016513091647164193471744454513737843355209581867183590937778777356806827600096711350716263335357160616790209638953829630761237950031664619353905754628798865497651646459440645999275285355625575583726583522321660461901425375265496148380956154699413988873257226957822451597128976951547863125511528708420769259246814798699077247342698150934940019288665117450337025085300282955110329560365231928793787318850887938395548170193917882120097894327740722543429154153489555719417948368923405188104831912074612207028142133896628254219346668680757582027165448418975179184832185515707983432826429383127841309999465527784797257035599533483993548703919418090676038589718365713317948905415542746605537980437963020551171902173565273525925494973621115045211587772746611020541246603120540108584696916227274870837536698091334928375836730410708725413234534668026965320437500902481940397042605096338767509499419568524974568537767281555312438459902930262224060096806776669044579043707411848939635226559499529557379562649895582170615440817968566208341788143045804954634914082351826722235802939996263307106770880405856188822072221064348468676289853258396822475324068268807887926258663868682609163350538701827445940090191420611149223504766624924201839344715381792805533846363122866256866734013497976565209570200330691322836343674087032429610726747217022402697793025273122974564166827434338333676550287193387640576187481127224340401792542480287772616370517260343570790950706704904760457621346605607756184942601670338966772047697835202628781553887236722274752617521919964274231995227710725511954900650892197871521179556973848008170587533353570812885449673824980573262449063658164079255187254483786980943638039927514145196590784594006808825169282208398902402101961353174857586668832505748934115695843949657362430019612350623583063199308169955617562406565188999799540186416203732512477162981526094282293421749812695507836155744348665551826355409503492304839554975978420961759632926099358712078808832393540935258986910471204056611193099981063664476498134972350303516396046510446869102216624897084657332770959001584359434786851445637901701245325484084750703254976595273900470975248952634733794297236733750149508815005470003811951165221299310918142617837523242578331987241959773548267981968116491850817711370356238408463626645675466763645768419725160673487472112839402076001803599313772806533539348285680803552031401992073164316215695055630561047030437749898568819420082053306414745660624141198940606499288558058352744740778661261733964249681691761552903628371994575399451921506235258339818012226989014204434155366084760880023200217180429895623124357613862062920763028553037674776142201371493812377105019672213019562820007204514339791622775828591614534036556450928427877995008252341500540549804837148861578285622856938371876006517246065252945994884234491475146217475282666552355575346148405444215357411738267892123832637298751091439508754425907575756074597516104002186728015854119661812373754454807151375770545110486307554031603248666170304697463517496416306662463800595638342228754790469612986367727517038892061494260838982410490749710982217432710911295951522841792570431909196688774059826964828248872169364846642090293148344892751146046437734893264164400752293821026365269436233010693597904157948346811013833842981930496542022973011491284589711028789881648951106242080681237857103176998662116018643052168388262863248696900907728350548156839410643723302562423486343367014397072753143001621429021512983664973181461563037280939862580955953198930073809319510454494981847590240984899213300037383988142769797128786256916933997782037449078455663683699027163658525667772926164462351913395096200729129353731704775905273468034539244742712176424298265120880882533583555795470240786449444941182435877191886753838535695882693600551583307216722147781553636028869403570082966218941190010555112076583935356213391260160064711105506989501651698235889750386509957258866727960389326195309613076286518882864314335956190796905019045633079310324742518449359120329609176607776644471292377215144314454023797723647604876744435538805707489177725107641073561038009180867257696900882914901445385025506486300796075551304684709554968494628525363681457821700791096213162932141213336007069108208341456204605487901973636856075436748266695115422906770641605455596959302933054111255320905143840727935406664710675951328915566372098645002291182471605510863495351212580223493546481518118661870896819714813991644941065561532929104850334025770933764509765459132774984201944200223110791172214049061292804942815982466293436138782019640064905534968609748926658453576989782918404695397100292266738044625947971898362797012772440998243213641472168450513234384831513372359479052566882908649924430636224543111264721433889115378883537065444781637309468315719511184849129719358935637361320326480346617659470204532197107309140544418542025119523376797082751003312743619504135527844283560823102243171237940664395803290904071023475307422731284512327520893253939666077101020224269398114841815699685780831151787404060982027437027135587765388371390931752726943466775607037938499418849591497862528345302932623246803949616797272149476099330141853407899327739509773790858636817957779861382674443131410132231475900744276820191544422972524620409886328202565800719315996439759712569036267754347008580338967980920812926679309968531072061923607682409866490030295949749932885574702551276646393647856085638194492265308269757300807447931051366635820859670420019886462937740805803250752910452675917158284553203884541959717085746175200780528433344957082667476125780774676758057904573073076148914846270765115683534580738309771098005282392720003993553966261731484085818322865270164556747815292966138878225105341679347091560122796560751786705312379808216181674379750396176855567653915247085363329290274451298140801737822989165744726378540002454450243476921837253950734073340405964675148079725608610576707574958491775833138620360744023321746540603972243203477251309746480343319096388519571997802080900388930063170489661400315375412488492661576125802179176117754907476959193112840997842034601565131767983453690226531907186820105802967618592597445892864089881771856033773818945116731593922499538823128212176643779605054046779376946518675555146426179165871683100619598940273316795787223041987704096454868587941634818281151713657019277917672816540921484359095014157150728438261416260882081950889906700401649650291892350213187590132026464312945001243071772882785521296436978733935876482850664028412088972362922404976167857258985454275771313369572716604577043646067489514618040597992294159918552230173447839869540751156525858488504867793670376032047589898347497747096460096659568579058713365466534313123367658500674982508115437656574963905152048240607892061077860776500496594392647631132888913740108900074349943295458974363295494862421384155162995951452878297418867109007842431319318746394016973361178672705778947108164500370398175193093192729987734778565080934540903216233273283782856275607937169038197584150040578345276835505959862835461163211789599646779153820405239145427063701991058982546895639556623615363688000946054823310194572279889755446283430498891341714426898926929347980701498968504194416442714140355994922887285259071509474609064123301015186609227107812398156799277979790341754703988290809727426557753891483421294438175570458670272867564746410322777995956675218475060316409293588583537539376774098620282851787985597772354419014018565966049589627317282683924286763285791081769571171015497609176863017728373883985428285990480243432110761328369795776216661070359692046696197043003787917030551129476004773675954946174716286842419115474898609783522404631328920189436199345726732607390914326855117858290075565266722729289839986733634908180925979596976219639193633947045422949670292792170307236588934376265167348384846348206528454484774936807014593773568302212290378515409279830250118344435496063912833708782073579450603626537912865921530808881389475374336374518822002916489173224635400260974502485200605044981096721377740574711669017477757459005497436760956006390151304464983301842357546337754326200188075477033212660661110650991703881661732330727760298289003110338954208288042548589201716098860768872653727996605317869419315466778393958292263754231474291615417488455427042500827962718171896092408308211926035695452480074160829756222971612477361175339453166233062593695174328486066625706619981660958218122538227240373234626642770991556247374169739204003267807504960191813909349350543330449900343465883706663034992170106474340551646304927225640260396300765854123075458122026746116259476063451151573145607806982349988304336962080741741517655294688873299863969306508124386443017012110623868805926611333510920314595301159680359298989373242122331703238988709640731908132227523550738704483553833667480517836732670595136204675541920101169374175665529033128661942047634646915779266178613126239502046723807254932996825485237853915441829217686473529376692439635675079727473902427141456196494722270500706359758117601833198054044244304712060495470152439832177128272388102870559087688197947393559416513882209555244673243470579731801962527920125035516176237279392498140300797390757964295039486311307216436917016454671077282980065091581537495971241036986299621926788370422484333304038538269982757430894206078397014952246079705909445981937172486455631998612185468935086072406902518825745847833848969138803996686874831800898618950243003880400684742076807738159091091067210211845710287644010913491551035886190672145744514710665705511444780395474215131723198464771163065559794427239554621102173686747430006736222426460430129963670202404778969645171529174644217393668316440594860995972635583081637886102750721506608910308376288897233012511317232670166029668387735562518159786121336237254656273493782088078641968905989197091465840204568072645503380476010417551887822710807222467653515018909562462533571096073521959706225676359268019378543018638106432552735570561722811600640998003807574023049812425367275453912052013692042505564553172427255718796871346359331749938025821006417519378448322072681116707150198546599451162002480126935638632564866270871128096481220716581189474876680681329413666543685127261996971505336341971974904870949031102112150952073156589017693797687676336119955767974983006499742751524458558396137550575136711399431273820153162341980556248663835385667821008770848581516093057372402742977921154653032633551012902155323607746047439365894951251434430954602966851620715169605159931852490415916357133618209430518046808849890769034884208457742320171622183486670743295054335175181015587588036924641779827118006656244862654438346070732567608000490189625368081624506596249335470703018754660165607850198776259724777284952964985898559387850397327963554913200546309558121923551017154282337559096079293804294844053782254369987082122802340504124758805393587513730398095334903068351065141073624057700192096911305176279819102942231835942702372364009252114551629872507069164633450190609114702599020635322355579041666668153730422753781442671779343169549047501111337506683268824066813341743788724083824487890574248718493759617841884806014418300767633361544680046044503326805948052075026638934498931573369939480757650548245188625341526303227519441631332611618336367965275707594334294453113135350864701699055259435457944483785724004751874491609333570851060733585958568727999660759878342203825870607853256808825894566318550964577633385557771084642227354364679087979605638146291025413683216502839087166921218425966768425591168201622202666769896758710738475621589430283049277391304530871390410005009047327621356685166117367620743516083123546984961466853417315136894271243774703799058122553181040240125169487564344512282339988142615598210167950196048540140352184144629333143258392356016911287644423552641041822427650109387347014730570161545527172781770514566557813083147082548993852402418946450940684056012517883245039124615337039378463461737874557711834290414627046328200057341979251912919755365422588286272591137866936238401224564506037184759820937480594350820413200767681479856661015509360598425649614152694754485554599290013663949451764156297858432588732169316182147813273845328333708293943296861697632678620505962296095233693007772876749935028507054587847203298633952037924761820745924836735258042390479589302627494186705936540383436778898305556190625872101815920586573361951764325103609885920666626797345390204761608490980597122848849142402420172958255185186290282484987844125955990216021436174707220376430202652952602974819045408895819046955312948980410508088011253635555591466349994310293847611535606208198773993100623394798677414300381040617220510491340900385158622784761735918878651335554351310489980244827155039419369274577311571969031759937154639804835292459861224034872223907615218485458206550028991434985789935263507526574079164545030482816234675764035625150014671916393031690939274973331414412765135806248654723410360795586021797325658824188830963252309483037423919091870493073177339006184906484664229782492042304058592283099121124155940924053227745187171151129544405483355087803790976393164435318793307455924542608813195057113201607284996936297953252612502141121169140955493723799385927648692131214691072020731003292959745154930527697582721908983947530748653991214391988080557160975081220660895018481549354506551378694941668647145489296233807166269407935639854153222801075080276252407646412361800124476635644523240174642991234768800684276025341146190206928900982196918979134068635527029208307957683862877745196743956582067675321503985103981722704627646484767253613640901637154635223232880044321490577585887257339511459640009199433059906272532314737617618372543680558134778685231536168386752685879591290568293998413776315222208351602085100915938790962746576283795176196295348754977603796335587764530615215110146903282842465879032324124490912255138535638899173342920024797283171921205205128851462438247375867904165462863063805722458398351683990931246442252816855226698684209009719506769285370727387017459161873203781891390326282026234235134036217080913817799071511047284908615637115514643790115735641745881402357043214672072129958539204731062876954662395514264586864391520232554831217515357786452993715681409879039244865027360684919926050549393099792079261889664435184113523970184688636990007834676840168393959625841761231104960190481883711925618220517646816685299949591723112671152242344169102834052372702413097326844611365872758667324185923812900869105576117586363518199754875030027203073628523360028586763542791236230701586393231655476223293995344672225335988269714300642734687748344087730315272135329902272643174955811849743072519938509122638150058059162086588933926150453270134801403079830994552874881568475933614884438475547044076065726634911753821175802225990828899253199966100723373372950717292653534825067238607108207117681432920448687634134122216182446822557472618494200497364515172614879139444277491061050280775440703465470073046993146697509515611997190655760682412407760097916617026841019647178254846346595611914433085582741080600920318713649237992158530096512319381977009973161488486240513741864196801959504826417851080455465044730865238946620332082413520154764858913891665912048676758596627927837268989550177902126504425001362764688176773628781388346976558074052371602127024773683595314805799133466861655661950715908028568987804589270233192109072523798932132920864083284465664369594398438942145265716008522902281516635628728472588656992479036101765065839027030183939426630623532629811465001698831917478166782140967247568406618775626960611095404802627573065339529360330000470873902961761679265805648442381458411176078721361347312739340489095872800613077918739339386186056860179261361091337298375169222790658455442169768819818373756945174416064414789001937503426486745740959924008626799169760874558163856693940652397368925255828280016335055067690243483632139541349996891192330247505119431645398264387135287720967882025505246138143947399013668539142425233945820977454713543049834586256673533071604123500520675833623195335046795431751779773233410107427127923415226601808196149572869420362766416027226631438029402113414217357502207524576675283283020082500786551733662849145342984097322515264524177916353371161153695022010738823537806758612420443095025094731138418165624558474102894595273865115474403456049776612598188407262349775176625000422957677067202314993239444859216702010416490957062328131199481329236005462834750528979674537837978632669235164824794360259936126902485776970446403581438392929278647052448019044945179567998488788235653305714974443662725604147475065833171493709466231892433260070508942526059504436681778421504412101804984934354932511156270728539701423419519860946513901135316204306243659167509437509202459247126627123184240081951257862889239037765934931319888211118116158285642567632532168066147803020075264198749713476233137508965297932992090600808095926969099002483679426428328288457306324229589061491421765326807670894454854057985643375168125294904432884576777868636672998177361442148218724800877136395107876587391490398200389057778910031900564806945492974076663930277064167630591854089325374326704906484172338593908892185676913023794895331035712068655144846865832777771574237525285552151155786449075392786353806401222731049688505523647883291314180441094249096182488323545802170063161776771489325029348845790780322877213953814734767909060423159754373950045581519336203488905076075032088709164802858728170412800239442714177574238184202117382629970122818526776038084884567574649626990234969484842304702205055085856635532910957806331540714989438300705579254602747687819637739411281019407719163570651895019801681676138134944823741589696495730952165972442916370512686294549178217808283972043657461416626222999398441120932008181500730826457561760415696310653351972874325022522821464051603950450606916976660518377359661277180167985561843764262419588139669434701850578697066830450345879260209983264070655847316268838649015411148563394183647478660621284585103308843065061356285200599508674246479805587969119742256410047509124617101590241234500577744111195651898026256123590623933207011031150745671432582640314521298596078667858481515183785739751021075296491042864148513849897102257888859881573598734017156851062035278271645759600899774311964739937426672211311110372472033786382902195992669936073552035781616800484225937346276521886351399846252025766456136889513117129227518718344791441764542560326343345066328405855532953719685385073405318588918090829770310526254442420007429724010768319521152380381522063090602928044531832897635882432057633898170626701749288754188132703194974029295205345070742810720747003105850423556233313274110982923746724961215184099859291556631867802760985116082347557072257908268277427633604586724956413487461807222732533201813601551578863211646157356620993800691593027966780492945254488103294829171613556511739595183982624127339892963566669736792861418286008385963927215551627070692148004009053687376539862350460934580003695501477453894164426505787833104224964425965170868365910817336162946490972430925260647473650465417726399392562512887183871153255458497102949676639184261588426365314256819564588527102980531184938704363375488667725677718367590016630742022286752598283869712338138876061862997429442808653107307078049512842011199770217160023189469888869090905219203170539790044534529455549519787539104476020144865907842089235090480067610712523083035224657482625320531452725907465705503696078090705839219704693811097776433436607742024967022340930991326546877079464332753405356882259193080241674387843842216193592642776269107213468419458744490160955142207415034618178568107137707432881289484911534540147827498958588771981209031020857785980226652027172604585291999221766834119001633085823251920053301734452085634998087295786393670045597884100420996994434166232146914090159812632533157835123790088442295777590109245849947203562867595908870506494394426094906950198058654247072211413628000896680253888214819740632041551443248466188298982225657989905243062150900335654539778658583595508239157277741697404178969858622378514339266530907405691398157408673349237419817440613441131340503208379566492394986103116501188442846404116842511817690452618129030912163964543803660746078643763560837645518076767309230127015432989946047161003644381126747377831550350177520127854363868821066997152247339046659993241422271771420986498960935962986023313022794564457884650543591026616181480245476521702131584666368641339665873985268807924949782766002460824426563776247861191253770340365014610951392666431564573230873156548285552159499441636361970619205268386207376713681901319695842190317539336327911522095006492260241109034013898181947615541120468641278767855848229347896691546841468198526786812217505376175104138104409353179775692797938739733692612592374967748471268105134647700395331855167923388659258218954665957379073873253282231464768892980426994904479575335943298961998106997174014663252907400226872358824678622127515672726119008567740371902998209092273150144174328781485571777180073090277011624127780112021812708983584985801013932239799176476494038144526844805138325360163941234518817473819299931555719304308704099324039657345872823003686440336729355230702685293027000455525674467790878941018076038558612609272611037059867898584430342993525224683270300238326326131811321097107974094860012657949290570803207836178255202111332083384380687355252397565589091176243972973771866310658863843166888730560288027227901604675882281205253219295732418924720315832484305520596019286031678930548917332930881190977447767778454320499769288742113706336307589849134701477047542688465334609599922637947265774037452686581630095986728971762941064666342804455175689130883248147923932220416158072916604918303127687575611057468138841762908459852509444659305798528807678056753795359558710050928058292106421647427088552871411031375254798809398288498736248961688126522506942751488965981354739489203380735665439672228846741883238671284865506563665641741255288464120298243505611887936071239282407105856211730915515015102635450803452578484370758402066990272640726873604135508291946535733376187546134728033235609585258730550355012710292525349442599370681123486974175615881587238168936747352732964805047791804291510061971026590707085649856505567332822068829614593858684750839063493414636689171337179384411217751417466981149270095608967794983291980191376513456303880716958392935762191613920047213158692982939722884676062158781978779326123935596608348038786402988688960315358701385140944562291159525622025093404393839206198916298707480004285571830191265533611916552634918094026932667738637952246113308652620934774420832429035249079714658911616794877408851860953834030037577314997908717595272049846197764195457394201280576051454693095913860377419941790691137078634716505768811142553015622099010031213257272286462921686122923120564695129034484805686864298010891000643285167998763060613869403072350311335743256255311616466517388866502009868925178498573779592729535279553451351775453428626045375560442983902413293285155834495422061792707494257717508326877890142253084986594881295361145553893704548605749818754486597406332488620410624331544975707999756211759681800340550174289467586410452469695235771675474177572420957269014789492861110404304115273204276332656108532000195976894837085862510679122987652375187427885943838892005240179470241177029673185420300535209614346364733219654814406258943612800897169127755235581141640846148498146452654388721731782274310566548155238654389926624689598567486507705425910752565305904628110412420523303144968942311598434673209735556725173065493717406447903214424550110131244249498367892327409100608717721868873784800543436521443825684860325831283563147178676985577699577389966461017949726538147484504464995312199348012296234183221479637987304776669047918477485524922089846559280206269908612446145645919486766955082471890968080534380123084597809628696611304030909966648327326458631287269064212275348088904294169428023066944170693805044079958003504102730340997705161109872076310749759312392086165933588163745634962168211415461835429994557276474549303516674337205823192185668620491588425171832204974315849052654219015255033923714106322373168595033965103095299513011427419024380344087793226617256221452058871455469054401112243496904472004677325481142460215125086772881299561154475706034419673963342682046865403577912294987409600411906401896282048306566595367502443931602810359791037212448744647614551130531643977295069826309565928085909307973325406466385737327259926795178862253300295676464928148672538737158908272113889308087782711735083896188479300145490733618464012497774804739206605351383760853748142539754326437258507882327540378383567079786997169916119225353989606643516156974807428673489520898425656852097552900405638216834055709272726247075769280154386334813097960490086758754585492514732468093594027710992287145042049877119598780313023929304201835787560999018507328616344888243540464332295302390529016135355487521776076097080411232202451785546014596788467539234693875268992592975120035330719800310603929957020375271633772052820302831916143938845623286211837239140372325665742175231863903550639833024957718574981668739530106369720043024660099977906001995311479147918888753024463420659308024287397737975822149815780296521979462323914594661517624410379860719790369787975141991939180947949561907092287414021443183720970587534685549890989822892741052062915105338289878670687622893622919795437113887036574201447028523967534746627145983301160528288213027841878966317907328441822471840857193139662667004652827933440807427984683537205620793448100860020869001413626629094038304934367580204136966219473763295947571502744572663502828910115028107898337892418573129657279419722819645849353753518937803156353922952604206110215762822006365328782273725023462725326046605741539042968453388749121165395917575703106548562369437486280045029870068944609664726181516135464461135519883168880008443558381155874616376327570701258832878066548358330764094677914263037204772033095261168515595230916730414053840552870067097552992322257721715252271558786767303324352497035336142504109375676574951149161959727835993304273607005676784125946476541525459466716297472645056143149176062849516424838749991483566742019683643490399878282262878978607118026021852263159729264608704005561168986138574827522322675406489102719589140521326499090832326166955056907628810726327737677998463399043560618635899146579988169197562991134704735249763424445244813790857102531958961826958274079974172595506032608658590207023393126578568017154723819083813280970196513186058224964676596016636943800024433018143533530833639874262442323525981475153697800078367689797788908312616159453952610449762819839147701456174854841511922830185371069356629548608828809061740119897681025470834699386945752977175108238658831587230746183789530819682235191373203466324048512914394973936232329781076229403433783052939708710774918114826666957208672697735502503683565959087875360932584954211732999628766265760145744843227997578560683851324610354279956218060103589269621259535625550346675427913353561203458915810894870574772117800254964147405140419808922567391187556468111205929172411760711660113445893730951321892369881842515885975654800384044821681568729430947969963391481099463997370272383029058992742549685611030484140919599033401883589747282853180489249841441301762698281833535542007333587767398141031284714578965436210312491207991648004859371229946046897948867394121759156655412583273311476319247810553575497291602496198921212471093979505819547875568767418073812071066933066123524527876937593115055892301799692872498570844374707272959227889709449022662722887697011716084004590996723364533143020115276871284247565911538989459113266876755133323163870555427077637441646620902465581120833450250845853340508855235133069815760054068034995778596207329669742611731682030455251110726753098560512517627427874345669154690240914719351304041104220641423604860426676147572249834367262638913067459818263932498094751477265187100724961254041458481457535221642830613500274737103679214491290676782504559404462910797827136142710783568205670504693440889306746466856022075056146204896698570692936482743616008042702890567715467480601926041167112880042649570691334685199410467446000542389034714680353489965493386810711852668887815063899931458061973701294256580810843000651531190323684364947012901054904166454867796042893578113577484208799317869250589769232612932485934055655737866231300515809973988494825949994462494953669060259942296638886396264170637163088917934054367891615469997208521665420410504705400283609354115315564487857795507680688438421756647196720973854827379141121913891865082744667301583903052999965336769929103512220757648000819088670823764174753498857005558823360225282050507320474417751000507727654132670828319111526838985598922125226226551196934308392501120577796349742643335524973365953142570203998709772672440702604345890401366577103999873120628629511972181772287094676744418087366930012953399668877728807898166404227150196281819045332000996890826902920144360935067388901445459525197862757954007977489416403017167507038708853352584284155562016720078938029439704917616111114757092214486124430335133196449050560491789800069158042200285312905135102930793462594859988290229259954113141571451427167053900168678498681634460395597384960835726660527078623636665947772601315660028694916296431456473893765266236125653321487387872231652069322803746287150291739398316289775505969389335156908883177267525897687037663863920065666810281393551012940791259436017729937614097621915669078106806047779309118303445551532272287071377936506958579152849982742029141304251764777994587734777849406757728371570557914140976582513597788561658634894549654340526340807265726653093560177453572703046357666936143073171299436376179961040863932337585928160362112828111666195128694499343997630130890757064471865526666524682862803108148952293370450844777627955861209415137707814771220339091821575094172627495628492618046832800557472987096980659890158122180230881693221337167025135955706787849542530260298302274057597145228450622316741836797684174298853126787830559357359620682931878814308151987593840062818760761557491077353399477877404289072475341136972524815268201221692108683979798447485325256949206809179482196973269363831867630733570860478723238187687933852157733249477329790608220221955215379403826472785020896139083616662021711296329365652928715431275313522697808231521570614638991664821590128479334515262348631331572706122967625058117818401927642880346720400207083070952329672007902056452229413365622223201956569225107285316222498047807156488270317357472774020772231407301672861303158277919314424192645503409501408620424877800652642458183826882703047062276563024759280294173353821053244370334033357575977734475043694363554840105166782736997995361764426710641830554574395406595290270095095980360188077742445590956784288902629172449555194952524519454466205481156003895225092814003127019482617443059247561768564048529978073223905471675102635415559406051215095546680876261558291728156334469186862511713899867191137161930850213652058183916212522911017703139179646160551357978788356755435902679186084004056827944671593647196927497084645633179149794600596555528714459320688489631757909167806190746150994347748009681925298879663733239067774814038850298981387400983417736610579900932498108851618486869905603541554809497255853047170571732199759631632571018658356923672012064975977932275752327790199151476380853633457957308687736587188699806031483887635654006214944219051810173727987875536088864203985583272147794807599801229013237886035629036606322524731553778035242568902027518509863343750093282159863855735398653497260549297798475117636654527703795596959079765877597293226801530144512234656994773849467361866003981311444385115425399394534016475735197903828542146262670722343425317106523805839000605826762684137932553100848074879941178182187706531528888180381859805573125682291102818149676911168892985002444915741733453549964843350334236297624770563535588391855342293010760601272152119575908217942814220476001445818989911916355033597808668588793006187399449839322504632739189099261265682776607510445807586993977989390165284485406511156661618835001190807200820537383418792737830090373942377767374517451803482837827231009078173288231437401417600028716291564440617862111674285466563938836659043365257963891684243875237504790659107294738958981761079081363991788130550170959045022658186417531515916274950146009160645674787100037281293883975291890712740884993559807778828128405587540844052331829860466624434902509056330567816866356248757017341915786404150510160829587437886272706048798719281046094752855212445592838892319409064706109750603508059638197697334103250442712598302396898781669210408387280408565658590160295704811811474029495243227226242341486037429636531593410730966054876355961965606136449855065826788024543105157300856846314187872223137850661702535644093680579047732069184988501392416726916702591739532777809445470277896406004230910998266515774558520553156334201186206355649976272752165470586803302608165388825503774346179398669452553220182029113993722570209768986996023152094193287466141318048026382404896167556482263934988279787446159977875656029969436189008211249886655098299540832098680641557378697668717178899419634012655379002202225692133454734562678452016401545418486037563048274604918480709763633754446193781500417657144296941841703393594817169781730931538423008378823499588434516043947675922793271046851566438219793414175400812028262933725435223204419162959682716109341143310894881739093005981676901633306509012713196142866161797752723022961923368826007940682539441802235458701405859192170505492825290658857050942179894455781138369515123601995326931716784404921392760434539183254409843967415810113529490753071004087697290341449838319533449287266017204635948294567940915846606877045017864374394005583777505136030930727902188279202835046470385045042320675526630555177311132171650312857633449168321197195045676674693209107324073520676529812579871450243419788910136262244432277857248243695846640944107631051868514542696284747837707237154290724225106472697621568658148940679623427193182429471480396865533184437108179493723379820071380673996114523473288499425637973282654661697525048163594216458800260388122172255957101852229454968008300414088425922240815498877799513682231123263757720686830783126293194146623526794708529663572445720322394395406489282623864664635514756125752391893096652026262634109529145949053562021942929641909815412815017849560466321763101582840771744918318560532271705223323591030614504872813546524649618750685840997422460706580202612829295350975117801922505644117617558337081303292372320239537643243959450663217669920089594013598692016436929267228975618556121315240646053390239299694123192143314587075483009488392296438098649735334181591740202432204410024066928698027381120651497018882473120118370037539421127328849823537179333645288680807801343119133168077825599424972064697438295971804144523897630857739260556891312335168410273900229436189981932088174888673271032401404302534438291968955196631848071132512445521434736588126843809754518510155480551062145390167652869367942901521957527483458625342254891131891343192668657333189433286516177353599338337467922554057176814056552191509482073396294499040757492361859224302332026566928568902337407317652262154239878471180044386698900537115305435581018711871742296253905266452488602114322237546764650340339050176957927209175754072535499828955104483481270416984318605967906473392491928365151486222689559592183697884418447329645843826820500280428061798108813116772053089126413625708172658592100741420514012929071968689096988357194230349591946621308676650310122636689226043414366703946791383060998122210558724116972614041833170001332537557368548207879343454777651194890280273036340163830379473306801675465905838099737613308211169496505913029503145263981156744203482459879891799830485489057249470504305540503476179197584193730751757484562430476526495938948304453236188634041895347358947061582085684311863346098978165917953354419344533220951784237001801001003990495186323778799708534248915253832901571545877957592732301107657207368205607048075020627069939161245418036082036692694972834761945844229641970350305995280849740650378026557191425518765675378347920153593086427524742023832451736408316866549855917570304756442595097345099488145458651835068394116500832541179321385302384960506230519843816478663315284679934380925933619650502797292051351190272248405440818782965218876710631219569439605430593114645954317874371324914665077648775099920074055074474508424594691214910520742173415860324265908020353417611924081605117090070712858411625232355296438463588549126921243614270398375204353556263510780783281261754720833879835685038953930795670917400923512953315106595879100003544803499785753676007458334087133888052165171357444776562093223988215503871907288300814778103110479451981460036242013995397621061693713396057434686239315039242772836537037840087865834941246083924508026644914852547025919774123686963869086202295254946138872404666094955527379868671375907435777378679668680054617948027539501532189723877659466757444493291551910043299658381688841370707090542864067065550372745718893823888268955970881405284113676886716147650663272815532936642368200244220132849387904391884164489413133280557326823333240816635243404390018212661286963174078533763417287061189702671162960284694550684512128414353293204994276336316371965288042508387749302367340686434248721474295506698248061913524443659218067641552862258328981300096702854047724791525450075411656579917214278329897257717180231689233672768705442840188187974350312630365215108103184912648974041247531819045682160584493979698341079165847901525569817461274567413119231245369457429611631347161867999134444504818031044514086716414910811128397060904812429606499149904644119210960539920992578141582390988947683249811069605870448921976760727709237588962877501533151898445047031954735669893924440466997306091398698551013222135020044371776271199410093694457402013995066269457892291219312685574125598044025892921065792371857372574494546719067371694494648913125712920459227311460341365725802538179093238630320490265853709425893902458091144340767530160745362198269227787578914677126487259796302549886167774896838847890383525850886439482077639362410843504420850798274229714229321005537190605069660774060547055678332238443182324084170333098293755069367524639332128892416036325977702172560977997437418401346162245669472264542988781315340909142354759314789367169555267432253561047266663117700993465594711834605863936317002576597547443933343980847636172658366275806839371623287570812997103701082736488850159511799238858066671902089699684000701880250945164834912304573065629364349500127808417164579263507766832048748335070841078753513154766620756004694571211518216221588950198002583668895931460815767750231169341518441149641432969296748405527391757591569766064747366727681769374736628869775411940869373182071582932644203229688871760142054390348069927218382078910621452032631033474185364459653370862181666515984848111260460129334114325334424175684068948092831270721144481981188978355348057965023095904640545158086963208918927769939595714973464482500870341342129466670788896886807923799918642839654917871668152729191812689833719486750882763392222549867127507927976908004651894333152450061780261352393716506105054232105473332976296041572468442440808173472091691090073882960567948061392641375203093409807864200363597651846307693031598006013136069212055780947225961864332540496058047588125954443530506327028913973031491968425634526376521281143135979287490842602118197165714574220022445724622575054628438518026137482280522180082861386159519820106106185658107970653304893505030718359699763185631413529481658499361031954794685800781210986519871841739557193044842422842315485022694461051560295546603639194123142297948032694037690106271662520714027525771348484378528069146027962271221011735601005623878954000347079848946835172067168595711682244533649755379423894248537688528851256495185007867777800577138710847375758308316032325259250651459374902825108507148383069271086230532918063966367143780118560690443523234182737734002515104790329325460057090580684967813965200938151909985797407651279306148044702745709837839238059006440442798822690630569270313944319210062430727700374321242540310648444838538566156923461371117612370869670074674576491572454521532900139501953138514547200572169865598292016307427827922318084973282491381364914092792648491500648438904917018615760264226377534117644505735751199579597793483253818355491305913904853132490315929706834823902382316879888745242890971784188813772335914826334900531915472362116451554130036598749322773561617138837862732266450117335138463691999715113827957289859757087277128705855795997712818941202241433205248866740651339745336873583167443634204405346377624873109094255965317855826637449258391873865463813353493953032953929931671497787589052175293475570740956546560204985950559346967652064620582721836360602910431447927072874634485729138065962412816700504535407045246100738001923941281020040914911019656595792393227064233877955368151933715799791077520921259621782265491510454994745228106564269157833300090717916763022235124936440156133904861437612012226715070311864847010407889543073118626735129993871602986860549936375112270600960433602006290387841521627746890477204521956197514329703950728661067422158557556652346350554424426833477595566137107041537345559727314444018883357750937832358987250274549436383823462235240228378133598036206885108926267586424979124564665143933989932193612542482863149521300852043658320916490075534364388705286483788277033063014769051696425503961252404122335698022147404969426639248461960712869871656561099627891100060847104974124994837536012075703610824714793263747448151293624820282906463439340849778015866981585727925330559730388997193693603034056880505940845915294826270556836123426663440441213165241859340837636427698230668372592424978473194735273649264963296568651921864210271364130458196156128309892637749454395180739793307486015997214059978117525643148016177716634950831582145161554769235184115675705726694957116696622673973089996740194216763415166673116241526091311976908755456805470173896876991237732624707198695940418330320237243318637138404001195394329026996224332058113307872998892855037339098696035957149397068389347369559241587852721773580226700476571895537044373841333337901126682077121522577716524073482080931996381491022446948993566102146270809311453624959467898833629758263421190613177846654079648517930731200012675699819429706490034134652697497883806283207607974920072094084133138627588084440657658970353596161042762804607347467073734288921452661889882213374777135470378267417886136382803611164849918514056079433421548404821364555231854016689677127543835579551307647729603467117703255127939847276336885812788193639656985172269902147129654427787798828298519334558014221210920899555367848672330957716831712038134413488316380478134213782215136512252443420529292759771024712171127112098675381180191073295055263733796486607856988470262415319738188544062548977459473395535672599668080546051378310993997445109321927076864473308817116147848685215039399253638677831481020135659501569431292982297909903930972276931643727698839886074446929630392105946359152788841474388444068099206105077597899289287213720079825009356653968767898220148067468669874773556966109828651249078969433553668734850355423539420555346278079329863898848561488802603446015786649151966192314560486831301997053314435304221108753112138252881010287709160450707701756680006904088740804092528971163960434110640687779522448699675716605066268100886427182287485021979582296280887992908025357232569779437034762606572399351133436604235922905528730068122902801365065418869629669449357069097129328978814963387622906546739396490472584341419651683338700568984775906343582731593701702551453901101431322509831579975349677461706602761436186658792411956029490079075669050679777704079893791372516967043003971389607694094578303723835708983772305292703081593052438628944309635993272683812925006973521965026007135623674292292596937401602210329951595681686671327294357849136009116149290931960831392911049091731009127573424079131675993261910520451770166555445763659410756362242284860552433225892187038329235292094733479726460010560306752275492921105701288820659026206331978457231225926800134507292995629127646024008772738699251307882052905485173108132953296958187397702681132894034516941427551745283941857627262087021242100893319992041258360261349170095922312968231497018903910478282599308268665419046928795305397260561199212694591539257364561338195508621095071401763528385143719605878036899833864834550909402394990994086865224246704191883771794955096180707596101217299668225212990566175789457362734075549446146937313716823125915087983978569824479711801791801533109056727918390934123623414922717166826041358065953713892041974147844007707039126750107346669178759454123808566488709513305198641240318961070298533095755295235270017463498230891784576699100149890982502721251432417691125322557703987198235877991073802204667941952903253039512030816517099729676112134363679438586197126824631579891689837043376680918317978478551644106747195419754405836633335243665431873795297559944473580213649964403361032925982633286951022103581137073482644832615220725687861663259261892147365398322346070080761384797754351700991876515847701937669202769747585377328079320978885930434597816795828380380841152369048708347783483948681463618414986423320253030719972768236350698505782663141139341038430184797299782429578111868386456097492152251896632708183478320434336662177546066718542709798726757195733977004470559260716103135302295339582162840992527303825077777823817859515967679622017152359968351206424092671720533920166396795541741508756065256462432289215111323956112189012293845420681525243915677739645104992704097525197452809742791841642029067919876252578841097425580932289331776360078939945435012246821690238766068594895589715889072254795852006300870774112650357348628317118088615011755444742736385301320377625241793096301840942331361428673871995209718423334152556396835223768460756618373610912552940085816524607845154021877736635882143331277603656760432114864292757410548348675685517215573786551825367044205943419840417334215308090372659892549120444547922513898730302048022023734563416750067271829770287525364377180957487816720531329707686536756509181948850123038450710629145088264025792039654533683970861145614926348382583777099462237398658345398730387943063314755501788245663376588480551000113458659012921276151459487292568211228433685712774068104563613672805549774928773727241953109372876499587888330588134511159490467920039749634808289773836244197452128630555160325653245010363036949590815615589299523927194676636960989008615875940281734140881158629223832060185542231536156333023594518488280899848264222550344961956888304842169714521212379754315957194131798780734299480494905451935593985588541712506991349058264134000813009393446962214801784816859618818084934878556985015593186968992148454851892701956168074381657590672498647490133020825752934163257941228939141056386758973096009707998550007551745824373025465766530028332521446742471346314662105762553415952929109274679706003361828341945483186924609663340172414562391040281203385153682764078978183456414660635582343124141702075224249145694326836454000723137603839247458068462381961184108212310535700084802929132234745034061674837598654149158266029734670441240798726058499953961575280569947353791760367291326732262764704073851482256222753523193975363493080928836232982058134348204866261013234222673831259102085658196944147670560654045146755818151178921190601134962568867025027495861965791875233995601830934360052474074873117205352409445411688959249843421010818091893815012765608391895133662986166624881233552481661228816370979440870884255207234759061994770676558436640526762564355185333562593643540453165870980725931760858629793299346446992850924448021414688165680812027822244954372034303783735675133496513652835260209166314586418266981076012329790194506963763775903924786047658870830792186721700598147021581929723321569004287969243390433842082437791659825220124013430621217774588181452288909301106499513059979261886848821002667750968554499692844251723171831276842821709325947694822892610553275564190530447709066640411702982367808417151959259282700589507705833309923870769142683946528322170881821358209112628290763571867250837450235708866871492188377720317669552837537536066612284943452128838930493682348188397103749468898601132509483684731402740566943309048102068139570105240193289484891192515237482958675655678066844119143952311141362408330923384020912555655172078097427141851660761037638569621411181331404564619384972823978098410738472266268537004088868993771073202643555388775521018812999348817484725645635762670317206716164264654359675776618772244542164929227931670332200497791595707092200418406684655141482401254901466472021580213254615229533250657748233537932839055104745169645109323001320786949650658635368803363542872555775588693609594784229649489963208648182938203012683621562644914311058608711497010828891912426797977215568583890461557474578468430215052887990781959296926164764807391047135951945263216726621350976358565125077426645875557738904768371595661581101816760364275745035506233289059605137790963035606463253992241229094374906517700801028282237841585932247037155898818235611745019156145548308284716578974820411476256279961942500718414449924159617917110342312670884956287865956899030028742482057185175727035620996675405281284599281652459988684124470229963305267078105772327210065857567616236783582203452973668875331492326552881300631298669798413558461233524829639379238654013195585432183479089042905536788091378384014536735598250925915453501658100618535604587360406452342064659150566536532188284279638904149216951827452088926011296728167000534526553641242464634298179779035355765424750160877203156530812077512406836667404803833954277111243527131459796684295913942388236128709372910537539198785423621452283427902177403410675887713183183241782472973079989407010604489595715881579486556604680541449892897407952856487645402567790830804822266596623497011803362873178344557460643734977873475579524059750079590114173090213125601009554505860973103446329292867370493878651287244920011821201775326057211694677785106352770064628766377333339050495765656095990497883447419964572481973874386486491850685725770504223072829899763862853426739872492516756018641224412484182634903038821154907671795091826190754911028969579614478374763368743903093903250224017895418016736049748207279559821913523702929810844026684650520529831576472285382619823265646286280864928652337293748645758410647885208303047531171871034100511029024917643328564125537145538391094143656896935440453372556076872576837319036351480731976461454277224853785918230692132556278728646863171359689750182859918059699049045919067476948189805240981430868435089771193680031374259728583399539494599737672952334004669548239110260480614292005234057178333447653203586461470113228116763054257576894507983362496081161131070516410350031285694390663328888370160114801147203175452363569492663409902046758779439577754000588763151822598054370676053968933038650633394137747769566145897000145310201197053599654149088041475835220677836900175672217040109750697572855060283124808754607492281827846217291169500857462087442079799126619973633493333622886121608882353533950050562417333240643637595930814279200063754863573382349340902782489800063061398806382589823885499329066564777123416759294537613250234443522489856620586681703558471972592566745650428750321288504101430673249162107697706517233801495027735087258139125979188812908490909716421712478714215331070142761074136147378157128396325244951712823623881095329392919174976225341124848452225295345601942297638245772864244194302944402436466157450936237897744074205669371716219221078166375910052245121103940863419418376328185266157646754500522595792609099033841860631419843431212594605273866245407886920464676661353088137541644893204806692737610073521758445206727561379602669485495369952387939147936753635109186741178241029348585513043801992595671788781176662947965833215505407320012692054110905263264652127887738116510220223909392655570237691919333015102159865284962984892796723748494352443231655337313029349070310164130911379134727221011182574889340578568722174193300384370239960878818655829145594932724686215265153341596429656700081705263748406259513110989473091157336783380229588752072995530379600061420874008774363747280796109012837518398472630303863393495849507090683714372611954158781075729530408716163477041566929438371065012068098302574164288958031665111621546242608540025926621045388263305017416792813873888911179996088679014445670944975631019867450852918824507640013053658000681315645514270658537304099361906285603065849903161990117072581817602109543406206521760854307301053731051637591561688457513783505867610045920646042162573337409755479843820918280120746630335917390928360188077400870905140058903182378687626148926279692890188063298075390397830737909114179733360568073378681703557730810821531361464111221033429003310341606002899425706702774601193703080944534181400085871911590420868588901061220743762277257816870373003072817193590502456961181390244713031944734447878111696452354405383819972130152603699032893657239320245428718516553876146651139912519144441064782028193754394839595881450669870409251575754757292683453339660152141569852726406243963100580009568071951173070302583099995965651799151746819726571337224436608778209962983071619959214669836316122127115853161478355292293171556826490885835964555630260913420782701024878287952206674113246928877512314663604146204313089318570460751675459091085179875076594610749022307360606371048258099723409333429467747735788760215491903818710700594468621612435395047360547111069851468726983709326598674363707378466298962586555407759603857863740958266369730504641725040651771858153111836155540735954011906981550378243105101327515620910380110177109423978079640673142823261411116850273726311648056746888761155085805448337014337609411149088455876668790621720655521010676403001502995382504823237731671435794785822471233677809270832902226776166318886358308047694667187674064390598399952939510420784091951650152384901285266071432204999449082278181453356305962382244597434879478489986791848889644321802778213668714424968901517879646071943536739485860032843138430769434462831912001712990867949561797583645796760708157851733529765961843606312895877163974073927199606675167993090305099847656844839247113505314755658557834483305936520898600476078118856870121535903584422752760309187027623640499893741233519924943702687461061230552477792926414838621573076552099662411651234537214931435975645382276568183208485418573698070972143106160905632273280289068309303311013765330472872500309242221327946101686181750387042134854945337579019962625766376423885467950269577101610832945061830176748950074380804413236726610044333311497714584948863076179841564916191470601901695966735876092535662983987419444630936043934006352261487219565696171940236797348360859403984550964257621316691506155805423480528772571542166347095427570024546580316852819395736508584706109281832952651973547044623444172920248671505803338750651991479807132373756092051880634274506219325828704400783861259753607804540770595964360841187818614791641160388597452957717024104012525371102710119966397500645255179667033374396678556068891629263810835233783746070030513976806318038030026920823152192359093630590462437560563647361973931520673930671604394526835200480595619155599568441895721900820807991383637497220486813437405596619617450119479007107085890922396869652234387708310636721452460525262296402133029227704870048224553630231557821173993421888612571255172328804261256748572971185626652875655853569182181077664077906249106967553112449924029457295179066454227607000862837514004314729397122718460971310965101707980739716485889937286307420793473236943956461724303382028439208786654467023772565009096038714418494750377947075813937461922647293013156753852407292663609228508286105631584488449926880457588274630718149339852392090859543975627263553038164708000890943847446123076058238775822142990980793548430865356982087431478167159608724385528493523441259173157806879267575113838024392399789941449636300464502299454035116998751249138025210752359600277130763683125239952325437715429933035897818100442493930338353078450142343904344726637734396795925266007227087734482022895051772753468352433661327281502393617149670520331781679485239777267578661361165293410296180765672208666058516959700051873656194394495183331852068603651659885044075345081415333013999910873589750665978123946388275513802085915498938094362120153356032347931737527023627376751190768720549711447362611516351478444657136460884548921436658436044798025082010703141207460837331965989051524954774584473845617752041526962853298980922972287840627325643181099413372992602852827348801741533048296556721642888569787476153463522485714594636635131362724988027194070492360860273617995526076686669134489159648278668983714450224530709436610887526576048429828101807001421124819454803871066855285221007084705027210023558101278724898940247570935269899246872160581569090775882860980298371619815629249426942851292862494535057536928757449912701920277064923957998902292559633982828933182165642254972885517282486040023351751592793481365627645085561374810541075648242764526497593734901416075619999447187803445079452200525378025090271832015791093452218748850213832927349844326300689953392253390933949274952007905366625651524852504230781100185989051001437274536276428914919143479675765001611934308359940553345522944136688152303396827329074654579791213120244890292470038521863820430214136917803634063348983259508922512652166319512380371271303189159393571302897396144324166977803220224172485203138147079180302995265566290114780525519875438207602415593801828128907959300119095279448594176233572397984441585794294337463638839682328253658149721264615610853284096812823615454178423538512324293037105126050305091566972944999714460817758125395137645010829404126898657561652611602540192874490495506298893521276389417172475392475629761647430481273868105463357385457744062508353794826277624257104097440863671154989133471407102241105822515095545800036891540959746801966145269695603137192355258217355966753477325504821021437374972927844674789523748052892299427400724316751074255348036787109730828267501904470638904584332762352565434875704535317643068512196841698916716251779217962498310833375146960446518572640112764456365835074370234227795806053627157775254472506768813964900956880296242288649482295172366971832702364455061843438189212580562055612374803356225926698836408713127752327222994583698670353215244226861334033047060738484697766151967520512374707377697963608442525786597740838981357829196502761233016574885701722040818791481461627937974477815110653122115875795230080203030119201280115360678331694482288734699767839874035864460391521017372383889576156478119904515483555251475795450743397300535194234593017997395399021988278813624571182429470983231417539619494291730258128466259500898796956261841296075051022347787858898463010621148262820564796096638657351390371982709496180192788597959826209924220311086323500551555109071598926143424518948933132863390388531909493732101754545303690180140310459998736205347686001448112190371233117623191759183185259886291791486567142983045009761223548080076791123788788789158481104950836560220765353162757206662494597426293348102871283370085571655538219792051199172980506623010147031069994482978157734211048559198460586102705552600081181395442046127504264534519066854301965135786669410102819446532589740351414913972492569723922777075943494249558169714582319484729165995373800948538272830817146625352583505086383237489718655753194660222957269935625305010803796684859905710251805566952201921506021974752924736857592734255310915296666608436362872177756514295062428467150853516725065588128870906667050989917393092720518184344495557248675076788528864266487895072653621707747208347223034438652264968740549703900225700970271083488371587778410928826348201127046136870491303157376647909733188924030253062893503504909443430505973964075417324788270497738752457887011434030389127653543685920875155355671910082674663711283604458792176755137149466509849849767114551111871727455050694377948333727656336415034058710332590450649900578416028511771046740811715105634705603628071375533156414550910648292299900327370391292214135081382501586111673998938151398489801786439500653307078213743061279535734650328774269284495257765408887175613230774615566275021979944149700630398761804802176713495096059700577308806326099411312234161717428448367098564071513684357444820165018207073163825836294596122835895258015082486508996748552777833998390840372297186273664679220954184643291849570163799464118395657895382640354520715133953196098400160002189255348094425731770953618144111294910376687183881418832759716394940921576226382210329431494853119167896397323277474341941228015127612867594197180836148181027216605940557304018507808960798300330221611067561264140183005380737828485166588039918309679578327893498208144881782306508745918856386758106863954591900959662725071807499708957842161177957549039622427284586130637601603890687098766734177949766318124581134216913061854586815489880721866009633928184313446583974585967359906016978973822443314390845325404619635120953785009362676436491770051897440185079912189456110191512705782293914605726906007338075502548241164683397384386236980791905446089847010931819271700979095644634339313704973555419555599161792080596222540151758637956902840648421318938948002954481612644205703036639340417848644002848305601254422120075310482989175202703865191875468000137318186404414620714596526861057845034055977892553720401717772736609194787521521393013269639387729178587551397501340579319594650098319955839843292431261183431442504796392056050324166963563550725367676932628126489665129889780365306033438595316846300951650504137944349904443281095627897832465141817618980186864986635008800018816547138947925811850704106277226453173290363349861943918023262555835642217331557416616379054056412196944804309722684041339080945821036300970272370928131090891532560337930044837873147330139193159047859361973210115475993466023150880940344334439121024297919443699808474991893910652247167353891445946024609586423111054598170204195258090673835334505902944449899865054912727814382203487941818032167379248449863576535354850416744340131635324898933297600892535969513948934874657420084014742068445540435514152061279700347941586520564986831207652253280112451624096388155630920947733558523172487675699944005901643751838325563988285770064343272386467582156434284330867388474082560248853341266940284027805275491343888307223156741050971250714871594796590626965864962652690616641167093119513760439693377374838825469854130086579853376583323326630064140972717979983413750808123758528343108954349377869756349478911010704195778279430895677336210204829799012328187061230246240455071189200475395954017078933617018615849010061562908588497863442684232562557432649380147292398450499261394677190426553564575904333697956366159398798251853732149116013646572674434107365842787193122052312093705212415831296070019091086260080978985541073138187797889893492324299938721574264332954091311562913589768396659409434963848353500248468082257045479012165223085225425525358159046391321035707061782186778832341953242728566348677411727686134879895345160185287511805767017831044816764030901985117171345817086673817739811253084123304056980416189909180330971597841222274944607814901253168313891422496649215088382485730767840090135880767376279104419980749764231248647559962861770370083402220219747516340098042348586120581484502659734732700728611031935799422531574918276775684569948217924082381762432603827173558657738537729509665379543546297017569790797639060664241227563338523916617498281878292403038737634917631844453402682483971660136166536524485756834380843325553581774322842946550768529335272045432819213834352867272753326986376389941994551189478283890077148292597283909559953256425090313404972801733649718031511540948672533194953447435019179754228658399806894087808485569923613505748854031291702386118208585825241442149107869334100208314221016737783687579706066019664238182986599493699163312406593558851920440788175781997353240214218065803159467469289306895926133012302887755904762266034423134299548057951635544591141373328268161240481195242860727515476244055609656650557479338496930328647546012573443433229287717552252375992206609706350860823626333172353597174825222824304063922815415133189165548939354687250463501993575793537965666864845728779653127690134135166599568446752563106955289839820796047332493183656575061073390308858971302425743378785039970828093839992089196716303267596271330997212103383239290748598815559136321377300560132082785389939640668877458886945068425787804917467674230045797992459954962411902666150726897155457594282316847938523795900731076737257810676201409805768698680161530046584027487376661269142899741364778670866191517575862847407272889874221450713973156705000457280794791905217068857811308669476730710154395777455922431277474523077464280146405385743677198981652492013506344473277293760138746248708588362121160047333507711485299018822647908234120139383121122200023754881571913929363917781102817667234016030907500119036891358161787545308059838764553072637796738697385345675752592273223311289372885425696990771238928140138452053418035744896396326258224038059200594774693265874341685101694758409143627450235522573534719103722691545812347383081000671872295975281941060247346626033082252219559453010243038578388729043572937521359748153788326443315516203145489855792650803670373111805119185046531655809944958113340295953515234262837361465639092576975396932500965946776802351225952402431063191304476645513692840992712954947281780860706820743929978414863938024918358188384330847233497159652721157460867432009067347011623849059442304045493591053352940991395993057278307042786780160233195497277339051163115104270438514726929986026029411051905415739674196679031547183904125739942705125785455311174584946621745577939309678270643263810239282023235045749213603667333228343381180730950009855432919106566784263567565123238694684054157277989420074250588207569451876878379891656477372870620043516786550184098039614495018116335984608232391953239718259496946604570571932765686583137173852294841589373545597824911844622297115166269782687833561420601939869762053983948000214941993966267728453251798856587407464134343656002499489562760369261456189136095354442641007995073662478811210115855370439248143274920614951572172622529279596240695261782087257071590484495055822083504690114482938403109961236908027303539313995600826221974012396370092348620464653711651784308518981405582627598686879551705602835987471016864949702956933077901901317067085119483081957851323581436563547279122786699785091642252246834342667232259450774754862410414145785474657521829313482452097228409597040080239334294290470288594465500414146930740675664392676000418253213655607897893079876610837817148486718912132304728600473856391092518756539156797908613140520972132160879083474239917552111737569074472360587628394407851234970774740576671987008618606897056461053932967124544455603074639684091008706861734766775418928413828125516994728367489584134467106462073981230868557539580054813078278262664978600307249488636146846027154217903077739751146340894784077614932281307380407630677142966106805077198900926288759951178656548180148910340495369456868897516297195025962354719501602286764358190468113166987165984473178039018026703280653391383196797218877030733242213366532236489647397075736820558407861341923294069368728583337129376672185899637083058835679313729059288893942437229451963949963701717310459607546795870170819109209474714163829432056429422348724668645174790873190256829727194536700481305729610415631684070682947245456243591121469695372319471303646627586885469120630983591975836253684670946100787522304989827208580838867194533229405051370270040078053793128550154347199088722282159812590153195441340370904684640647806975848410703010751086309524924722599140990051942966450181241609377585504247632524772984828296915968618264098636289107626088041251652655040064168380978949875493723123104609771622039302081914254163835443409328424842208003635396299173679267623056895748291847259512702698132886865331761799841763417209787856600728688008973732419402833373075336620997412127075154759926494658877446566582762467853489465412151235944667165039718941141202452595738752647474126716197900903582473225384872389493789962043000699532594986715129461025638093458495383645334285693287479628419193146329347311991834942147925668524651202576828781822890865755147047945101637247731759640733883629611321086476203907511510335531117220866196588531763617534538869737545183848686142349401543194731652960505761584212840536419269826713721715816203084733263826456305002328537439079787570821427870095199337502958942675514793062771957630806540534096896024433172020813602906514753052450262163845330502806338914814396249884244534792584658871144846467300948127948331833431124860605987177368992530994288507264268489588672249160397484805246718146465667940453744208725653845404517060821606219711855395250219892813186436096212713300117950918576506299607763895016736816290667306495354129176397550614530466172413013156370163042514540661330931103332697297652437988678512283329840625070621959410233810433279577870322507153817811629732470241973545283907208616104357446797921174727802170400603042604769657090821994095013456705913570350248137840902996645756428057827752958605665443679752292389366162259723337646643288477283255075187691237022432635605862674526414710590953471153301093526110947357233917496848535253630877605924428795708945430547512026316361202059835859647354029132297131009617347448581453949540609447700966765261650094424526224380209986644822834975527723272605716382329581208965696974920633117081494736530627765157419197975504905514214115408968194685097231438908468031090713734775930814485939242029959009676080974961349170887868163947344056172089264060805429064000806292664906250354741137844554249789202989755453302962149910623489184221138939921157834742485874042969488280529042495232840892603277291691251815396340525771945865107179172524287749013226129652904984499438496373058924762429657389310746458098261452358333787448898236277014378683497217283931098488680347419641644743590282852832614448056129330742854852695544976751557676095160129644719040417930102335386244296914270018523044413416928904546933938966575034848891662298686261380934376412631743637191202530966814634275410505329770742019571356952538493220592867436671026009357398001292899105684706587185119622007773780353967054497177297557885609842340377004606581825346689810792071251131902991901322382109509876606779666812616153825690863817518081647668504064930398481438388642558097228656265150083486980168301790628535062749483068905382421342829967978192906511040525709326683131892745907348605360637109543326882635828808371271465471341318877850894849295876631397997332221307279348828762220250140463263924366661392318456161133366514350517710608330302221329972000057684160789520647423556939008263023883026483201656200240031636831672052563547685402559427617781732902620959260072893798885445767135410601108691997145634868162745752321710860252164815185308247441229280250592602282746986665053613895098627078176289317824834389119150394988206360578782245277524311681529777630890885970252233276281412178114519483763028746406736431723178323294662243470858527428491317519036225972543828147997464855361223398370205538759822491349330108068320434781846865772635586446644927427639789351643098820052312882326156088392141084223917846803154030399926516622904447694127569153127701915654675357151542768495942339932834668939986754106875787191334715094995765466262289317753790685606070953863868487570470526114313179837057193086913370397451916526730851514792473006548756222277662844739327650444532318164218432107304116347305458992646126141921745440268216956566118960180303481779082651435248585651157781492432462722178771018239755092880256124635985738571329821380228776930656114608183005293989340952470565742126138793373781146357527310098021714534164315274176245883562504813419529892997781807274615773720939935674930049171287414789312879946629256003208165422940125594885615772569971809258879148841010410816313386220745046119872299689504066698084990983967535879968689183765029090332226642943131175857628555967347015735505682088566799116901290436064924614729893853488110321282658886771599092633162873346888036239395302790527073333249131665248528519846865486555349974510689733655754256550993145199396732760396940155565911041147589047094285903496246502849250085635458146267791383384036521771396543154685660217560900362701174003160880525806062098388853492688907141784797892022392746015115225909542328853751840130477408513254240756529599843027981112605329609073303329999930186476973774049191094856890118215373639676891548201594457416356554370378436787136177066465413285557256758185969515643192611993178898521689352135940166605689279918050348797190095750705723258403243076118331017727754837848547568492983281414638270951428861698657639161700937689914628655300664477959882017125154342519218585239352315606619491109469316271948670011615531898216211168214156841781874819086506474205248929320236272584493881822987193211865940570928180400065585335572261064159163548034973746595591278570566287384414789667822481698824650140724991357668070851189569001671157703148494401168967599150906533207803866281996900832977255661230714488599223971505527376720774211260032771107655273127495867268474782494654255449652351357412665659879606797578435979795211238247180316043543649822950675086278840461182168311122569800915469103263391263136993973373682000089189974257104445177326754951966930492896458279343668781548653414599335141179932953147962549092856694133130486402010550699894175998708893170536371070927663139888404784598888560519585674800787491441407950802372610155563942234418212929542494243555506545419966972688723405542910516962147429178373073434478816668471267638129853001915314416914557261795224505923206172346995224863693502062126371949982601852326638305886390381667110620318309779000959586085223341318985476131610785005738220720109129275632933602046742400451084267589057754245675484826736711153636310069505611066839758222425977018494710692867807203025202325013427154283878338099305911639418060183829679509530827787724908068163300395922797496352622750354451052379242139549429951992779003392166121718058748842778370099896895438346584418760317180495800184947852339653957480773329705327559076194851518713606063389102406963683747510485101260421757679162097272160178956269982244001957844542174217559914668080225350923497305842691085293692060060737122417376575876782951665515370744099495322379081494370346003594628799648135060310227871583458891623701566169133346827457927377774072972302634924594076898392774713532169426307483952472156920557950766394105339510587844311904391256371388974895551703987201273022299131647197133118772342761093111239329725263525422193359879818162486693138675173909977423964617776707075998265719888185241299093532748600261893122594457503500567183510652978523661022286627117130060321510838426387515648144058126640499648533857677884740941209003627055358948991582318187096474889273236850437232068575260665879409574686637178059355160806762227225942399985753321472204933212677771485844121745001280553886755554899260983404603739017547772703044682180576098164384141623575849697342208300492479820253890916917118562571222446010518546175172774783823356704877763412353907124062026340719930817357161845945793370941840609748170760967691822023169321414818475256227364897385231159414367740719352006444535735294839637063734514092653819974658533330249165291799273884875113780950033353451094377635343455601573089253166606577596738834610236665423962225391468997560525730071038089711318139835809727539771056684532410835796130369728446440773313178340670735851635622985751641076239381570471103165100953143476064306593835366385231159409622643113064680965591774019780084017781163219499266219858303663859102922133097151800597415288936549383789101224113981904609670513763915878080711115657623118983611116789250959836198072810307434469542127741252890800617275312939513917284468400404603829613973560182286056464748942086524893990428472061496523377860140844072662008457465607828287725425851808776878004471972411776186692464575138782148030843696890211052310640231449662337242909646303687541029415135349682734247923329995551779954126756341839473634956363916742296599591261022540904726932744008285163834116344463793282136941570522866100630646037872121465226571947073516985277125273529930234108896315140588368867567800184741435554843620571005312903881934745616610624160125071628643333155413430689954829665711737451400241907352697431600888605470275242923957463235564937639925381207556122402876069466686161584832716041211603872236120697887924438856642820944573552209349624189769546273139475391903207209445573664768536669616206750126727240504460873457488002623761645169572409946889665315330553834042994570185231280853985456159618664469294230904740309914959993279790599775001179748548766843509980243558674572951085434619365770340681753447160805807614834219076468457626166323361384625476651760570789867298099996431628458872456179087415982176412737659253610213764319371673727204727295499417314469187666936514852745758018100800735599427749389498409113641726010054201687399008835381645650806805604570409036106711417925444833952758949627514180032170619112000797416204433523642123127748861968703921516209444956084499187852303307658687910082308780102404191598289292918743517724115569291277826922412561168347296069209715789240530573656700837100489924521288810834159102037959731996436726542742995471937478711350781807776256625151895107599965616874915702229013672778145391131050791135452464908939335710548497847485827232261188603410452583000391406049585285589784979779210961537772710419560748423755709691737563619411808535295405708843270353616645058625930467938848125831396091663120974818474329805618383828297345570411431570959219871253993694651326387779142034283426446443608261476036564260988201420230640521017591948464328520236307767935380019478565233924046152736618315164383452701132666560026509545180893368785670394038230233732335740241831052751647871216538718784933949554418830566415633295778064752824145114155332653829390548893340637342561308457197015873061094295957768226926656499979458472102451234325445463466949897483519941706546857319577703518480513296705991227067179718402461563417228856072289330930147912071397304023577187649796104182857549989610074030636552944954678723292720431090223256200050910217773063167956668707555484319990783501461312529630298892680301715932043639017877339118154635708027369084867773002530472235601256311625196923959343475158459569572787614652346318031111071055303115847490001287096919913980426650838465637024431041164748469874424061715433969642918372003992447822916929068678369496099873098323197559738300699587044001454827135620773315583428624238743470706771987045529736615390707038097154976655145721680627581761446809426897070494737720424749906692232505234964625276196496338018282857574106091654501016214389272741013817862227943889044993212830787318919501502576001199377670929834895487655353740982417100078727587969888645091288924287246394795178590772646618095737635479750008920466197437945097569398731377200117161237557912754567347754143272618597280117317342985829441283698157991059640631831365630598554908176828066361488009467435184150658621026860653475021524114841674311171880194559692349860611720364171560423788989365262127276087280110162188570276325081313984463221053398109480720182122529699310360989935770088007283401989926675602824704618450737003638364985232107952237958807650201317685125285992501228368920918990576169102923968704091180874477144373815344971142152206271192920591513202412006077363225763076518568160812950403142412512619545041572061443267893170230486171145002632141765374432712656744645471347566870005956552849441800641129796950688026801590203430718729147406001908691302429768274183164887143338899999270649315442440344568299709155878951835068855538364266074615655681895483966559146516903969969925511625394669840687921914523411885134196451665363455415790414046048469005598673504160616620625160098812494707793557111681653052897249343726147803393376743599787498473230034745309319819293947769526001459870874400017610508688163705854641709048978690099828508653948209276464875674915972818736528590162202790062891694356837835937899640947739844349727937255703848839312046467888695316801474853637708017328000540517986177362082473245839772668509467376723107834228729833053420419635655214733832966729795407621826792026992886528437971229110871697186467057500258634190990272572765696173968751811032626871144958230797356007610182558742423130220112761073068690145631465790752697413193493254348722111106062898725048106774524711613807859258685398355151497957760511363713150893218680051893021783744337284496837862104452765147510520012452260639604831736532408177405159306572545252437863812314576000769317328710888551525163311918272191881421965367055729164511153964789067009534944791294983503882878270535231995563214229104000485241281303939926533340324455263541320200593054679312335913083971723328346700998422345545203866426322387985525730807907479550486025143470724354323081606370521680744909819378942815183428246621562987098288952680439552694941839271081418088149193023461242222113224525075564658015784144392620810387426505279140266256711542486901131888661356401338543766357690265172490415908884772561336236697037322303499357656526465386778996628063964848601109647098514375594438986577821464220175055810297718111359343533580402069101676450139610072966090242479920002665003481813672363576034506205255096611348994998550268490303025133344827026024684101055700779179044347444301839739970228274148779466956517289238192848825906847706770405470472813715384800110787550163160483434451036089726990505662143159068390408118181486308788721128805342149763153934534822892255566813143050299280468483092268645800361280012340567077620468106416975177578960119582117004253044208889991328007029675220559693462360233925243301881448014317074294720625340686922264462257545240896670488745202301745093150415258234800598387930897480045851870612530837309216536315872888035459857967169546294266032559124896812077335652387582214828770328627253522789976322438101728251252306795549000173775187479137068561279366631110245752702273750928549910452798024725757963646294306042091688727089812123615406082932547972040734621566423238023687148962416601997864410160242035140925633267875812629318627364761741967038821739228546891136606630275959631241314531576764440451857442344583298525780072416993274890966661933119108623831057660218985470027246185696336776389365245603036711249269488277939650887183138729717991988308166945804447600981598005757409291886990488912481436815545709950787823401526330239943560536673111913429725324634645418865557836460120781434002246409727211834400297765838947686155597960369223751654340561746041169261627132381835526009811669856961317104441736985114286733500572573530778607533934041990903843163029597234051110117201706870259997923426212425038301375295544058901106881774026205903148006557129898154996065835195521383115077342195292279715993936847191006822396945206764383917295805237123715822161590325622298470551798462503037938550968242853521498536323757033926627128899918250271043011581012444665590213002107730387825894193398009013071982603521716803359786530972861074724403398136304363299927358081217683150023070302772625681149569222097898829276007153539915808375166894258040919889161068283404663900222643033012779928981665742795015684410448620987945210096467865293238895146300255989767854927778376380827023402991036681360136293858867915244007360868593956143373326923977710823797540507843868176946586135611421278622442859782406141245226168459334925626281385606476379278561370273979829385976333024068885939057975390137274099610876230733520446683776032125341628527337691843006427526760942410614514184018060279619012085341383920334391628917351693768381896465827036297375428512409850603752905848183802445141346118189355868304495219851530956993073942142596284086798923360823125030202818438471782597876869771787696006754979177857233935011715464165593327262589974352867072889518168129061307056153623952634512062858456315184888398711239770716420542541359176520638213166077393181634303649163101677078789414155370487096808071384889999885599667646238922660620046067039911263313641685805037326293672996917836244763583351398495279043492032702373743178326781635086540642670045984304206843475308494779729999493440288150956925213307317190168842686773275643257441197727430133769263639138761375372638512893110961253477142590154115194044665294515844257830871921356602567248346080376521371961538092097283911150596883882420433775333502866231765507194496162392226503597797862073938418963971461928633984316782873021007331574264148590096440624643978770283711039320609746472798231647264793333852553727380957670237355150659463253796291786828633322975615897888128970217753079851431406873254736549231948677735652027042765545001120705489625821814836685680573431501598808615108755485558000272873021389285561126349076919239155771530168303749738655113091624567875839291585147719418718052861388569994018896607703632856393915000594154099724296754512519239854493817697032081839309641487752072964278546941580741616139356147859424426150727410721131962962702165398912107361736738033626848325744080003681927121465155764951119008270950965194298644033972765987811198814917994601949975434988133660004174669128198387700013011793117566267453269904374655951981236176679059586073632966516993010435856844765851566060792785842785240767044584433837310816524659033915973806465604582870936480988822351561738857313363831963002153138222909447882048968135686471435360072917875293485340342395384378192511942389898433652263530522557519723875912083345350985897705985852267040743724730795110847297630640713607169634444455357390529193475428237232595990524993424696907500909158687214741051967291026960969684091991982782956289159185051656731886413658936203788010465845748939012591525261636810752490075339226361964390313146883199146173699646632035985623406615475644665493026306325412836342180302756865256336339753438324235166468246149438352805271660500532793404925792682788592923311750019615482187754557733978443190751123566043963559166824429726028457285676586698037454282578906015529732028387500325950282592232395975933407783212131231545894682190857642063046298501641591461746163293301037205420048411245479613302278905620740172815229030450824338245860331501883854447470213420070249685435083578216493000699513905636172167944317255995004506914687514294038764130703650357024627459470544706222572257459123435687542512768372604547021063970741317625004967938281721414634549473354011498475564383751910737968488858202909490481375661405441577724478285814118769685430424880102858519319580912696923233098425635212999055541704814252640080167086263622029654502781712773603691293155100241642545540608364813937147253525921581023314638253538268896635265041602174803496528628307351153322172766869918162645487706037508165219872625255187394061375235966259084017177225275957711288677197058769840351070206152171192887493172752097970616700486232645100950401509386289002774321280638629620745467819987213431556694749462946013984444143416494938082377634645692495562237326133449586862470364851990836638083646793076335034770117422579037284428806487785439872890979654406320626662743181159329010977903051612330610757073457166217398366295326465070657683653221043053628182764106270456484145794524599470195978027839483456883253290691934638930473805271331918295007984290150440603133953546701978157943639971604703468651563707051848346330994608757538272315092277946550997427954291673369824824008521734850781955542567355548533087098034880032643700560022030746072391967536671622299453869199630090243233558101250093968451135620335575886004025326969191967436336499458304086194329861418716323886436102657568659284347723003542068584982136333850027430889318081849449081183891670405231927363785872014765432442983802165997397732426461632264021320214902419741225465762165440639063754231823267960771764809133043224471259484897569594354591496413536827937918018954371928139817862424556689493594287803111732771608267298043081902298537834257657859208847902977661289548225890519890052323586923429223782752080766126292199419405970884686699064059321393251203117956110826261942543944405063292284736433270590039166826338711599991075791134672443310966114590432512964456534663610591816080897328922646770583082415417617935406427596108450207310188208829526902559180271527424985378090092726908583315832835026103971081683260295190807029905181095513120689957125259103871176102237866139779337990206976784279572895421028314718171273775626456701252788542396377952255864815153786724821285195626223304901785136535846133950124440144067544906604132031585400280165707186723236709679257985947644648012630786076306170586841463310253028816968347976710915389950394753610863925654364843585109035966966630369424626609159057976962193488727304088966930162573398368310901977492195758441971072334829412036565190810211016161810299049386788402035453132720583719011449713345961698071095128403484777666852685955987208620265893103960607667470686542976400386574724375857337899230245360019839931575878884873899033767402754778365310685357904635571276013905715756200808817391501714518663652912182060131224538328613167319691945065950664899307279946696458014587428968492924967748180944040834417892090958478367929560660707559116469198552860293724583521470885506943432570469934792506371824210979600134726258536604431692991587171985330649643714989006769112263599257564282295378844768973434624306918405578471240948433534128357220628845091180919033525186871238088307887896911398653337731021057600160376589032374116121913083191490709073335556206374922489089187246129599437690645795401898552809698849448347143967992009435455140263025621145334177945029950049126184532472747169556354292922466122282330116444269395331118030385658767772115361554615626547089348467831683237468337819556719070622631087913990349205236292283967173537460804795998915241777379947316943369693778768884044679409789126009242649226467918679040257788917012308121074155089156901560597149432969043959913407543407026423128766872175356142418660310774515437457828192737232424244884773556808002185147071775210063252040678217133079683013861863191303722578741990435130377642755209462636417490487340406432300346398243779774392277976946296195217820317040741883229879774054093013690358450579140197700542680032552272747352818055917211958212061926192348148060716841262534765716439995210130615860550850254467890307534143009749652616652549864195255033091847980875228405318767785137455811210203462176892912392418440087278798992149058110099786733902128373514065498250098182125185542391009634761705215708542569703263116850274565735913019814616554126701745417810445075343834906226305627076155355159753062291278609375574394760053217970335124089739817904138269317598479735539430072274541845872669700531477512527713808540505812161458531841723964111600551516574550950693679119567030271906358432308322488872284628180474980598838764142647645221750438608025318251736992923185456180560565312420092899856787909981737934657096028217106797191299064693233341381141367655142103881308714602982619961595544720527945547315870133444147814749451220334065527442871142692050763635025909156465879576685500887274816930695928190894485795171675259184054407718256686620340191787385386009060203040916089254903227881204083763701248919765473498055502776268471317404376565149818125925016359838553713205483486569365226024792987453162349151748151770694584856756847040951641047605719143122338400738822953494980821406448261466768557796788619713846373609484199893318582546055749488150536204070686693054345915899825848994943720720152667116470077503261126953490006705283489023074833929539763607165930227051350280800343718588702637533916467323029530497254114969452281560149732356826698674064567771555907910265690715443546657432521566298437680113614799179509696430506178921538188127391184270410058672302669814313092501845668165623363600337103540214813994936023877074526686210619810238664960514064258839233720828369743960728282952553348761077422224248924732063845263109392861065717982958105692541826337010623709423596121631039284967804826642920650195403715372045583761754353829424565569216484251682179234453574749837926765066842628240486341950999143723996442703879092268321317898684636337617702156784046726856629592295469032198538001438486254574520795152859554605281990339181466232947541242293576203727593474159376519320392924893404493660683665166426201425027132055759687030360940223610378475154364473104311889718317495628841041940619491709621737954670977935265582113129499808992534162721711909783293903138365953418882418493251772377372679551665808281238809383144636825407852006142195862556041763801494149757159170208575000115258101234279895459409619356333652970900129746677075158128315176161386454296485563262369818707186921502753927626710318170541415729924707411948556475469796110590512008583665955032930781942145296049513442148630598408264702776994841048359981552805895858406586203147524507778192519357925045706274645757294174841499849296859076902370422806691903592876047236560075091680759605721465156648793432572306214698881390917252098903901294921232911365718949071027356832882335684591956321597136628209096123883781520295274232950878702867011636630355202106088563081747209506365373082342672694975524433364561585799483527502884914426126347465652199822272025235886098741042770983482985250327344749137655246236929339493045808869768600099214233497933870988664581829630098062855542047921875983012041518893716815723009421414123985091539637018624275545422870214567354208554498671775142730139967806413911125925330148062901532635106017260386891628824876214208439362863570579432594809756765587106342156486287153138538856003861420927898516946716555250503889431913855335533983017916092446668097350572585689977303807362890960256099748177972103905290918501013881247095326429006241759973145803518008959438839387485682835720950327494958493937868808318845308212270859531546393329620785675270327094514531261615777649328942430313196734095380869153716201044715739433214113271987652048287581997986414010151529853265814819316253998993790121911460546842333372213307856384107453638377506284409216054467841091961363686638047976392252243227557901641047546205190298315780086383344467966760261613570438765857624997656716226552711268647938383518928166786934984330763410441874459486445199189142376092983699451288133442905436052472963666353007146199418070154871159110824295417752383108615263213377012643951241394862524628391911748190245434962481392645534308808113259916116720941751017913150616786063566660212566297532902530444062365996968328845446666671091056860655642964812290650187439787224797612344660221103868165771552112376274381514636201990200834762071715983209211151117019581129055177290693520300520496546320395060995628826408760001913630675619376090588789927295471016521307780627403698304807768485311496931949148060759296144983537375815501833706877527981020039730725165694360504233212256856170758367500810515055746088584642957566596485449236785021789433429640617751658946141088170771791417642913743708576657583650978141030215026756277330289559241930654925977223396851810504150753123560014744461390285253468965502134765420037063543720158988406742318887770705511590200185638923660370131754708757179104993808511071824269062932673824042582157675312221874583978052563260999872554561568558981826199365292535882949532455298925194030969675050990275126024675170336880978802320286199295025593653234180413029857571923549620161855867194304060164639807287430295580055286672111846598828666080095606939106073340398799868283585164093222866824672870536682144921024370917204755049085721282398251621309034087882131003677856800107133846381139800122986129889470005210143503181143582151472728167539623979315229414875315922316595472923638993071410102993645765391601339947848849982677770777483418841612411740190938328892713370737275168957808443539210478194441668711186586579666488071596865562710570398925170318204836860895993497184828521386736185120122219328663590876861721615295153747545320722853996592023064674610402189039506481133088688179171374437274568145138960437612982330379390100251953213554292862517546916598939397480684890272943287021383134442622142871253132132448194311410675937182852693311763178288399078623727187378993997715333370107087810545586203396587058258159771763948804710873637437271316382780138135876807548356295838496466376173706192275023093303473761051671162849821764648889367808606380685143100677026250412604257718397858318943476055487460616990771981710262867346334647592391363588110470005875840352717301635883752933653178072495183587878954876357477109316103656671225580870585040414887587650700750891669981976203857055674823167705344611765830562783681533073332707486727726412836543060768837365249554747216814077114760485165677929266576456787522334072519205011479061725355440366962843751279693174370547091569325529543506575057290789650332416802221367980594754415053494911574466910522024977009730347840468965577407476358898250068110486437544829651235391382287378486910702087065775829053564992042790119705999307666305143926564253510950771048415398710488245125380710782598368559798432643003382437502332139024922941504300191958408940016439027133795433948397330854810495262150841147176911983941156554897480567226165768393439619712980297526019160734217207204429262223836490477915589979987199166240661826950191645913416269873117806098483097580609626672209190368403264889795220804864639468751966303753778568530536597349012220938559723075993418876068951680534672098155182599629381638397387821050931049809233243490401411755143762026902457199542040205148152480485330674897580041653242168529060820491169166186331046212423295603848199119308595730125024737468860322872959200761101257119755836437650116858758786393916130426996028967139137723134319111109831083420737020194236838528698146437082714462858127651959119933173423289436721268822791403994882015305681009759594435241845431382462165876773377681072399212240798415471839148261603853145345256972699699238374200842931599411814743468921938226778033155112962147060402120327798119140015596536334832408966182162889501778349385367993702713415926420802733608065088485494624529875802620927468088155774250065566717777713953420840178532517819129778152315255879878564817906813084247322605328171280080010313014957552599491109036907754838178310416500557548150409618589216924261335363236129526004436559827142988722120008235588174158147617068502348071112784367296642482362969108078449266989922159013078398532455493547396716352223238087717038680566204125842248187347021882462192907897189860865688287472725718025697351453584649117335212353955533506816554298258013810111928524317935805046773344105223628717277561708683829216039268749908371085992689117796571579701247488742449923479428572910116896496193806344692853357474974185393103509796340243447431046292665982624623564968804862956292219481644267203923222320661597268904896021919100451585896844154209852485409794637067494409138272552118120620759298107030845301698507883072784090468573090658427938419803329238909803956267607084416842412806882416519494635993489805505259592432835893652081145510522049078601539533983235936724028059608975184058605189005714577987542016543855995267452254978937201228809222460974784554544432202181916750548226050322346312811601463909100723237391814118925276462437411589334153067414406616087498900774665321281863100630860661147447609614840089430996769209394160667329189373538746272084057528884843519512771205016269447327241835818349223939609818013093436564649365151870568536331664213667236128177826227838315786139913246078200774903010828672348891009505769359021341564051904516717180147286339999926371430385165381758939191415220837159543571954115844879757209395202837880728652792966500336262939311558301370743083587425168223055701159446806586889608151260232554723512033744233293037601118397882946005015545764958288064374921933645598891147420467145865975137428895106050580578087362743301391554828598113019099149654318742159985679525383679660606266294564744805293735096169655786626111955561181395936029230918778391403683354770025540053788044282723310105338558670823130731839006127106076602162014391790935203706087814726772522146663175471421369677364395818240368410550544984193492579457286415279824284438631432244101667992528767869329245768908277659835836733105729344832210055402582440758970926724776905157213554215618066075479152832851346621484783498340777987223358904172605214273345379984891018903654153405238070833853373187660011193730338911309251296883053677877504617923764893361548362598565186420746166218551291406492374357203180638531632725769180144742198796600943447860765770282948177764252377541460539239640199054696799319182609051523030382812453884247222553413551012644539230061392241441132746066549543619488060184419379848049624713452614216647879280086801782682234256168523281696589772774927714695211638690705176491902744365360171248020482293354292386698095945835899187710343140526466437578652499203718665381364491034852356558279044678843438264560963509062849614543849014723660771354786181693756408708222403143882183645837877518785044889872733741980474314548947670802465261985683689493947296639955118536123902593103513492862497363995960576703080946524559731838898341854000596341784192859847674102487607110241638694407420546430542941628189746924987694848069252428971982221985883437656289015836434166523190236043377895641819269484692432625687414707895348263583911678963358969416765722153670910704536636953405524602070108921365055711391230018835049083886216001214182658612884218719946902712789055612653735569024469936385073477222718342274554991514694364743968791916193895285679226786570017886313672004799479922940651139306271110489500928671416070614073903237700553180385267833103534528359420763124212424692456717053597593835531821442487284447592211109123114261042833514038613800365856149349744441868883446326793433838101747488746223209576375794784188040825569026426793416774321719174449924827192608343563092292284135503370515958144299822487250058331341989196883242267269273601516330706861508475670370926021856797856754818170347242498262831341279247652923673440333237203685198415262814320309394841715743309001968086021411055571073963022497321723697074806805426659613354677001481533495465726179747677586578933458025567742179090511643571274206342389625075978633969166280008542397066471019867775043520745492688489451088338468132705221783668847222126875791200798687272534803947396177141833515329947557382446699528972981870801018130927399571628623528317987354156671735126280400826436426198044933095631331982159184767611597985058485281248274760295147604170740083902970908140244420917506767556822053707159940595566806429368315432465770474904461370546879839408059807231826524977694734432958133660817302846618107900932229516656495120677027901022905091909857435891017032351344861556233000679856830545298334731952025811773657413492466172293465092967691247738646470791424219906914500444673579169330984404966292284345517719214049335965164027597615905308109720346675290542692787660872391307485320286057685240844934224767328412528460863353466634065275393048504651170674736461381652433942041068392748490294071761748322117494566740734892432923200810068654638486164398731364725593136726802385801056603351438883015044386597598162228584496678977202427352785976634503528627294034362303474236368543522406819676084402235767504444670310023015456118454190887693003557463032990786634407805802874591386333619613178045324931646838779323791141787784292955631578008240779680942299534021648730312624452656326862344293720205761659799479767013419214228682312803755574497526789654391742703832099552381048241288570659965282000833380512249532958888016025163404735885472177815094102596466984030966918527251756728915779193240815408605231539161542514073469527972403233165687297614793379677614032937913038481524654555328462607537319848875024450586951285852517311161808401889715561535571554155616921469393732766189993868153266912479724083062381494184269293213091916207850110009846326703768862616966424746027530608964930327338762789531461277961058558769978021667054691470233768301230581058875839158303886291880156588543901798869723601683864073335298917759693483080052998926343843936391272986832542297002855782348990295071006782264605453353468849584979215758278390176909169730792397248712400234633445980650214433460261109512660155641757433467144709229905639214737350878256235257351439600622948636236799327249701195980508915469690487121721375940846320513069851424361198996832744224549820241339918473959006321313383651686377469281253694867890822938447034120477288898676716587959384904554758128573052790742571530031215692013268172908795281565074829649587461911224624359776847965448400483397506913990250058900893508043679270186278677866908663053421583806739509549295228416164677789632053652648287126901132325282086887413056692671597077901028815229165759753378668939782079633722956253239343187572472759886439707621457731256972708283962523063857556883033207894414864572551148437167302438589278826492754803701801211678226333482073971549073036514675747407846024308835432394271873101720041595028684266103029601099188353007257761048949477128433470740068918537838300473595884390646929219520925548779770872785719809976709579930300037386086411127025823260066270202900760749399832893368905499941463170441703670963900243796174041601848275567215258079520555975463669546310437879384398292822330985091998656498728707868945088497844978053404874370407528280270045897064080975393292487216604240474555234428162232777290730465251312387960924299668062853249684900465983465113131758644649502246587270073883562974777387655259944913816399357868498812243877080359074046872371948189744554291156914374331540399869024253515803468749785960253780545833318835369154067247223040898087105410295288851280935027932113096210280424691453746471220232330633078364760999899185006117817310267102070125265199066167264482447402172114841764590988467627588614920057799167751607905001477681446201724692135496985399984430007522824007358626753415660753967645418120572909104749213598493961777609527011542423209281265650822107630601440153971949783638110937985606005921426328993623804252799616876500745205280345336920801455426423495050243871265961301175583959838636004849104401978070597583764388253116468763065867803652573581171583427703389745192745154583610163425395807727125995393510873223301467539655239960618130223731663283010221114032837030716341434959843742193770970197483380628625730765724435421969619464321066891467015594125494987452289180668303939014647038448293808453194780182625906955438451788606245009376260686262400337757201067685980818974313148491511709341553596146071659390934676623153709556287157070818322788357587236506999711155241427484139280212810897494227473614989932851187500106089533328961469892185693945390690099618243383354580268682889760712028652488128444348720438870195153444077174512866275716955138913210099274501815606140928716597433989836448185287421159142514419466337224501470877343248250036467194601343036690922952621035173950285847568362352484384389281597182423508088228282733895183622485515431164328640534258940953491653531299225382843402534661486769731955077981291813921852408496789282943368292421175874449490508091235390600495106788761670278899129399417948483026087423227274997944082493319800160704717808779273142101132609705250841299220531983136911399628992826473799390438032956961686968330304242685332608295572962064649696188435969973111291060473146444100395398625936043440744353777329328372898771985170663726579720551541395183265387301150104167606922216175921743928436616987780800524638139408476658655354768671672482019422659092104584226651662145289084482007347282447183068209747238279149410324586136730745987147845224934269666150605526968356335907142432798149437558801005413477519764122585443171494540882387104684873988973626635725779562098188155198885675064114709529068798196106163933601253823103876741721335620504404264532451375702298881833049292222111730421164088080433881131095441999132966417873678857199539650311675517602633158899629172445906460114802099692415839453190510266497124124492631226680258983581225826642730531948974713839008523943407732224653005533373684034458438107359167308318130235611736007875831618768156264976307345167136974711850147011736770695886656386783472911196481507672824950241666418324994055926184819816790715464701466652560870376300277493337205614373079451742205054135680887384020008223726133869311378792943855029568021886211515381995524428417546861972377405842246166838967188798185282321471273528587202027648368755388683934385184196349300075002739137703419329037633458439519885985019743148478544582922207148668083079636821739603087668664585204530211262658959301073239695181741067698589902591497180593905436946932390918267282102565738484407913230387205742791744216070236142882088539790605345084608159849994193688249130923563552008136278562536077958596550757142377490782994815924168763967294184382029096895070417343892303746374265330328137879340406855769289870773227136372991811406384559732064851394988347902169554891569383776458320567768120170010846614377521894663846187475000845346147870488810551722130637186731543516770740727814182782567646562482760589843760770250380646726214988638419188482908285897049752811532158734557425351927154391441343310135627867669138094714009143464605253856918421006383883003910823601110715644341823243381508337644699358569112460064120256784801147308460578819382704354710685133905083486456364734029159293296010519831910702353194494988252088314103705403056761936676773395518632300262731979890452939506236594659788420746639634809784362845820429523905867792652481559288869613483663446563190801869130767124168889724261747332225971940222258440740269258876943269737638174052941138623991581081350225579807609830491817266357497099854424985901784996229391405509775630824808282606068361824765728738297994732945432021649725793581329691473033103961462787040456729173313653769374350545292986646429593580689010837119503247600291954882183236523145687661931883447675034405139798863000434605910064836351509649186777845310761365507454892595596237744508505574764081194574442057795776366286527185201271723550164641334223587344607252715314230547371916953910432356686978097296924137867409871890555516106505496476606851366207657417136154539226837817398645382746810929054868038153715977146501278573950066011648676466366312549538566147825581786900192183818192252088207953687062999304097667754403345471184422422167090772503132675294549949458692296504395037980065977456258643303189095776611224684781286510025658688193857514152693133137142739016815628885413958228168356022480644780485230289952771974235428156142525954261513788509312756523432223213866280106103542320568992429596746301051353382986982906015482228332944423310983033853718489049755720595097376012901404779195267576643994616285684392505434587041908667264458169655616196690129226961358238454565664926877805726793875687142719120505250593248316198519820222339248197997567785498919904548303129327959166848030970951952049227068913535164040903461203363255003456963866523214862290515076804502599210697878277226615093445747318222069742506652566182012068934621748128679413640463163487221755866173430714253120352793799247610557229985867005339103542820055310577308382757213933044302459218244617394702828620514631242817562738071011142728162828686449471218421516882322390349959445226896034687885087510888681341462240738679299073084406981565100527050994760155261708271337319235405704534997603862052425954533532360589297308074260701961024766858788806237059473549176765700062355182734984738475931442610662339913742965371632790802527063491228667444137355819111685275760985876796585491477837834724633545862315567545701545304222464249782246983471223467001500170717918856634023241991513747417025672549531302212059007730917990682736256750978209016368289963690044688847499145714754896377275013396723614432504382608657635719235049988831736761119151731304744222464489366151328287972120671061484350722780557632173140653738046758831150736641670730466134072620141373131513322400220960175550116421549186819427619184192960409939661902447981300286619230038026056014167469600621439472994684307294312342097602086317061056990095322394193491818591426761662347464486651433241369287505422921723450817014445688156564981958698353993620458028500354640074846172361134704949564832916400422786958317515051731459193427645022147638093019432852336473483281062570318676390729494298451307329310609932974769076800734158313159121263772244148824198313502114946196185775402142260144007146838942613379628925640574431681684431720687321971314772151553049448091497992254028726115709456061359937861767987069838455656644418523490439430180449745343385882352975839184723138166367338700239848753041209724696688684152554443313278986941953800777216569679171382294649778988065044696065776144743157605267302864715044999091670884105643760736142273509144261020507703887638639230959126023695277043005572790721821376692250512129995383863265542306468307463021556855284988339381833357895299831897053113923309089237769841254159676684303137439324408897022917470413048059985558918923043443972184793253775351354840153031945170506724756157086344772404087882295699209184095139191787897281341701928090786372610093356458003140155930421399103370921586296297967112407853283537038520402048669255979234695434659249330049130000057965689082204680612358698873540867220525178852099395633580006449126241761239290594585363028105376036038103697771097552128045341295024321455835911780521667036884320413055891316005432570145070141704505167494330354288743864804764281493114457423943648534635956870082227412766688089778053790015349703132919359899948128656486863736984334917809516332745939581731571965306673446731538944169144471979725265086803820309527589792155981771075350992976950940351913339807624288403645561527572107726887213517089545419756935648588571403936984207943625837845637932920551967707844878571738039703651579521889152282768612625955295830912158766377141788528510480139357684728323305712645214878614156104073030935256909152388962733426215053649822044458850930642055525642979360762954318983026138098590540702976449351647507998477532463146773720195721072341580026365181904876218350050699294805290978626812643097864012391319332529939406443875412326219346590176585489598505121855512630921515571198512761384592922677352825864184612556332385693615830943076022175102737282821991379106940429463925624029525177664131868474679575911001074311711034050262013497723782140523084362051902889398797644599398569165053340343355622755190277408155450190987122511342631442891379530755901877767248376913034600392676480582280843702213915781173778421822597416538802025943466585365416417057441053540441992942408730155766721078762835430651374758883986692917816460363770804389975573314240078602235893136514913218624530259728251922403990571580808221706641877244336365162054930721589816153315871235353606038797582324880810436002140915116695897465081670485626281901943197014296517306495551779628133684024632848946600103247338994078317108690085189622234184378712497632663773904656547177046038125256153876164691634415969050199763476785590966788785270769034226868712876487848260002256716128951572706657000523470728242641231541161738445102147824754159985613365213111655240544212451638129357173262746808466467339923723788062347632446407986851146895462543993706248993935455224830271556688707364465481666423147459324652813402048321544915386817503613628737550826725946004787483311856301363409067539602229151705476168523508246379684655877565441919529165017011220813844975282417395591819439711716473090148490327474031507455005471573495923771904114514077728858960145404052998545084634709802426521162258815251640823894652702538242940470792953009218961554232994256721298609587592979900599647338799659350004083162565989012933091407436153357281398614924150099980621406371635470526800547005165693668269375347023068040451259721676156335600580202031801827083410442142383890808037275899177824767502719730742129397102716489420273620267404761966349262271543234456766598468853622314425138433228769394209167414883354783548269201402455931093398599048182767505948694384795362975604009499608977219666048525276721101630481441020903758299035200968715842081755058444171185315311193565142951968469959790113151036977447575362925876005455473697605781778147935310929712233340437503218191877089753851643452586237984713117651277264503780614116271553366819936717090407048679247998501183560362997222861942647410229575936121346422879479348517477558532709086813028860086498309125591913664175889075638342905748864311721723365855627049576143831540199469031973791849165205250100602229535252928689863607630528749732700433785043907561121648313327630605112508091282383493942495775124562171378454175489141354119772536196552904831676553395837389950125190516281910044153916686200874506425109461867685981110342392823062041359427200817036003301074290688777553195935625435191769311070984661769140249106971570033639354740411058624374364623050837105924019940922156907308684969312790205511496590322280064432808841857352579985022150999688528957261813225542722847501804584056427031451193213836248382467241226377151071053298407816587652780960199466399985004309173147424429653404519610030259637266978316958585266343403224324359080744861315955068977043556754082882126058252059455999680406711433083981812413673084172949913446468409312661176644262658469059572248811774476327848041730569091306403515833346088870177783734217036996214603711176881690468406023472420090027517865294461264870822373757055900681316441275791261040238304680555650173897753216549778382401546587479714043493529965662334647190754282748705170276369473207495342302362044256017908481489310716362966057530519059258801557287563190982345818974337395772034581492700817489530585906689437205420400644938124529148226044671517827599860475291053507455451984215690621587116933706915718622664330163868305395718145176617731047635563275137773782683780501004297779387283694979159175075676189199320015420810081233263200227433125688757962668207736106291056260736885533728472438114548377215707035212892695146027940433667935886531132312089422613419141660569889292010127292059927229510456869797810877741385747553007157360804767526777410239984114986896927402515695826963824430204517231682107841468878218088204246706317166590949072090399109579502940579516852787287626737107677250144279936886064307129130066068117064507274430917411514878136809046698387516997483375329454705749850284592479420348872030265408035712344764912377594699230300677529628352963800719092473231597613365087876861820031574639015709201288657433037925368724915689075381088488212295902898746836845809334478878148658738597087307711526875353759629130721436789104294531382383802822234901846278852426078441864970259769845832960699248721614546899660317607572023431188020390755536770112609319717425375210264825139314979695944780973996894910018973339274613295368109692024555535701915492933941776701472369004811483536699845494204502537990278132051284531946908357358027973983346300606619816629665704672387683572488803107986539951471602689887496823376663229878835929557696412465235400399901261425567040404890716261231531905823324466241903833426452349890455664948571199759299482948043065274057342588437064398462644130758924790970061151697746881353466022938576762550105730546603832565961620292027224638446419568644814148046454129573446775333497840248534635770072851092161614379716033131164030536168393139074216086291200226702549785636816622226645024936096265680454088333488954007162114061359439662849147217699822547624213517945801461481823118415882599587118946918001367365689872325895528168740458993888996588549778768912759174606723390710699407612304968174101106610768362644655966295393974957730317232933180232254133036916246332658659709328152026881466556660179488392149044007304977682209258502059945050479032297518831683471208692033025601937101010925224614090025612527900846240353010559716926773521526584035714372757376891579970789095543176616829583339969503027905703059226259120471295253983779478943024279002504942372194835547325032666706318328668951874318288973666703762103375952928601150638612800498517245011846157389095810346763929732232128000583835150272199100106111233327081972849694626744215149138329621910800131918094479678683581111070925458098282136168796732761913664018387563009505660378923990350361306238319649230369420360339010720020075786380500290936339228832981644868453102860094479784316592573794514551085389830173067167382149189521303786569432474647507139703545005864974011769034988053761440825050311610458021513651695043560119535880111434341618580175862647979058502203626736190788026617256137429267460363938376472319705753053436948966805198088122473993194481575497745679468516765572835862894514364837985148234019749863883704166460776594788164673359980190287892361217206954227563392324589946217211036565486956560287779802612653938843059729269591036823916977733583501526097424236169372194641366288848914044269383907439097519746989019465514612459611133803959231602293690257418904780573711047825937266942616121050085260598986915350197158017666343535980637459520785486464612314610427591821803120043301318242824823457191565617343007435982952877068786421319491233000795379605218180228067322416927954395306979588462471775058818292355560833605572610603573967735767334576235415504704875788365043846554893992950489141204859922707435932699037018061219082222915485345382328574254253898460970305998567616887407651324652736346350239820025367935647362462152916385673581043499063036347756200027108524486261118642079110931075113252756688851887888419776729900232701468105513886605966107218831769947844993272174958159226694936561285780448643226105377264403857072034598276584989115891868314630550163918540768351447978824306532304722839477288329266232711191406613290345042935152319277712060784014549006850039604836241115043430738614353952134798595862178498629393679676328200746388256021582497224606163174098306365725501528800493875945974848197581917895544410238889836674767205982673231842080070950276862513068681580302022019293187666843213942005555139023174288976666171239409037982774031701374199691614906176991985384316799263242076219526795094321073877314783296688866206977960222733309823181188701101422282130672735317369422819398449486481843645167785212893561493015797261755525382124110952705242892264068313865798960456199394612281466487923813724180750646941357251319708886094075278021635959773106154145123648705369754629397753547526715982490645117024589695712660284873977009977922271412751472657218215014304476448170813225379537275260124796697715683544021281877181409673685991267469572134293471871614830791860238631897130441385429308753269966729757147188586781499794802288526101341206825667035230133901794637068215571087938407305814631746622228346225030341477818276120178495154133198503930258078971197511805567567492439684372983783517346852581256466967226688645264529980597558277779796325009800468930517562822309034947915856935909931029721680198912544400880368332460201470766917139198187387495867057844074657605740693412344521185431458313728782737890773282064877839186869153437219330563676238351257233543441262923005851885013887194556652402175631240769458675379053824702046245338144663912927417762410006937100009161888162743828690736224179564038366280284065967663210967220391466590224099877386238822578088664601708860497050184852918867361347662682210190381111154724302441978222322944446527498446072509733711345980856340782500387172826456215105427401525360616244299892598921076762845808003428162572529114506670669500716807834616261262058643908800292017418127506355509615566267593362132556051196359917527410342462941032904834081532382230079774444206240139882283031043612569062575613852282764142289261502817509388409094574184689539102870218658851845271852185921493499393147731106669497478226579566235739476572054710167987620881986580468485879798957622762408629411331353137077217988652176946826321208199556259820278286757549246580767643965190429312511700737639063070098555356445334256993324685716350028523826216427959142938845327741630358967976288292886175439574074539737461031770957220503633415607298212510274240827892583939750656811712796925585645063477974326226379353079849210576763478450944196380661217423924921433575962360025318816946254329540721132268145677935386313568845570333672165069769708249628864270659958225585539630942286571220704234700098839716625185696717434024439661870588456061443698141996645232981307691280890890023632710885197729047511182038218853494093890444376732506959616155691035920225326111139701446166565688973450961448788217997092234074925572039599846662112734169706997134194538070924116293325350264056069655564931039523542298988207307637920831627951623848061928626092826009096870150761724324943468718551342158863371060109188621059240188906497969560747901455843887799593135690581858856561677369890649819894825507377161599127839063520430874203470581949301633009199052125233459444596420467565647835822598562777093008317881215554884436460163652968180586929601909545979905761459733539478871577010218122577360147521521104098853755284397714370856484758973367219983619754238601325086535167064030536428081590992783801948056396705549116663529220917311001407080035109436366454396354919575857818191352768048701615653628146862601934358896566628808359989103000340023843216418637885567604714592435977246521230214398202898265515165868351638656910294090410990995935480096430111172294658740869011515649812418219420691761581992537170352247923208168887789741169189679639809969041990309336533830911686356504390892072687817272706199539284058847530811494727235709002215182439372811092606131806524130579219386135494616472404822313417290265544183462129050086022909273498201666048240559935112391492767941626296622468536629488231799686421203559235006996108173310471063044697866902127769195775908374933048209997182088801646073675981246715649372040156099716676432206145695336229581775997715515255530210307185400779179884470427538668130023937602008222177560733134360336282097136605638650315895649575536958912068818954246281563670513074948998901841104035529989110502859282265201972926822611338132031129881243777171440793700932723214095913289321844890133043831638315412435356111486843391523040720574440919694079715064916726230305890014009796039450394177108155553729071750025113857089808089434651964827546798388792471476726081535727433119258608697392511804020640789530260720595286124876985356365513730751267238753341049384854203447876071624143583408741413376664601024194305432121727702393878723781385055368728086785390641338949545215375283779220660049971060516999228957417269063699855939144279192720271659450889766304878390484432110254032873622039695893797989654584241628935621445967497670904701282779978664507791558307026069005841700754541272632008762349151504650122022716867848991705060184765020539026667153713462329675916689556972035796133999152310634783680806256824512790578223985115632445157704101917846022114466920255951348567337251070811923108578730757360019118541564427715005175755175079416935431934822122559998169364483206521729034790224107134846151716526276355197236436418961809329198178546291717217825665579221910669432161663396300107940584132688552007730063907415963130466609156474606033833678563076903841256157818929492556231655567921868037502896926275449523738177574350558781115164116329414142841806810174605883170101264414251804011664472349698902300062649593207169412776877714710151477725002305928141041994930221112979286024064090800667925877733090142277696803999005119089942317244361965073782964040759389363276190724649947607843274435995026436101651806225642309095864070639470207501575246695442588110630272272230856411911557390453034515088374178671122495038722709683208497293033125743187733088797341127992520844293739559279313786729575918569969475865351905175113085193653316197422984237233247814559438409062705191727227990747574127854108485837126358013907029037126490030204968616563504187573021405692993517922031374857292412751534629766973393105520665419366411717440812855283739586986835771794286414417948870508109871252947339080538887070142670251257831524319791680183767537016668532314781200680413131182025495678346418591098287675239299703310804340589317916296776012919752657308550696297991249627260688220674136709682778236206005844447083980195197963668083932255122964979956193521786136917272140623723887261942841615569995356794743214734955965146403294352843514829857304548334546602631112136124990766661427071626782432539866913794119090685773283085220032356413769918028904923198015329363815289709222166477320205979653552182583375307996469529481903115841097003615339025146372901913164138786182611055231075951254661871267878371848323087746380784074858915386733708479056371542546537948412824267469201399120899376750300061354981153221577667651546101130449342319116616006914466067103937296806280099625663571305191957931567868184990312120909143055884154890810210720497247722013749243427383237868623083549171384078431496709018499423093674203317899168706947494849497368118348199996051882523195647628369032437200812324459057491483842861504334064873596462370205895621098547607601407896040316939966657540181650214233456403685045131530434507107150528922408946648196383358004167141746696140421268026232372325237736302863322750846426171044963528217852449598143127727075339506203965980381043419955015490449457093709240669297023520003293867033893505098706795964961258462242421183209699396247833909735875805095942360228691701635414833402999093207501763640513044672704140293745889172531688714753179353074376823616070744170906773922504447962496155990176893549118626093884385956375315979014471849381237277947376066696029082233401916269981269072770624271465847302486395772547768281914025714968194746215176604032145044962074951091515786659051329573154746008186269793782781012178698872358325878402037179785299352541430224825600202715802473715743695953042044056710468495675394342526315694118255768068180199669366572924260380300823558722619302193289275162775994499255452207400616495846643920116907603426223614907304473717819888150136302078826855768575351661919163555062537396748290685387009969573005802049306678186699212156559816391838013526591053168762163930765454885512839738302516574370916760263202455395270351611463948017063016677637342971959487098109618616070667195438026881052173490382584098208055491154425283601136708462374639167763174442111442898439910002920433254441722231842596116704899886016583665030062918825785640773421250792384885893953480088550000807999343173195560233775887022580650211679024565150871331247576777532104168776178429372802849158780265317074421099149325987359571529106222915781210242111346924176918694147454194375223114951711135021540261717353167128123658826165839316844744956871655670015366557250056260865316977497169096205226230619632168011671858672735496464163145411851342418485504594091914028885308797208178266464525396320822844644326151885155974504414744247129010230352800744785130002400371664586842196687359491591697510541492257418118994776586143561139484063068674200769397390545009973167818719974556422887826859841788112899517940281896455647527998358441575885707278764864654979820506808355449338407924091399815518007750702465809932654716785139948110888181700183562388846245485019475399491571356257611004593114417827712315444441385241070407979009046422698379694970695222814961067057522335362816109453377020198946428909509268046144884895685695401409523144418763429175677263651575025027045946595864327235283772856449192675485780017996319280606953229124731536318241970260154558552465034480027699415246972456866860081590960869595237900308894131313734469122419695006818325599933350165874830967824527792884822083454513767466786887019726010297807814244550220170700704204260930448214811904513561115841406833004616529417808021048552528089509101749543212024921280661167073167450524224461990622101632632909547434341262793450852539336537275575173507975656864887984656304241806169196095753440791492703127026963455838631114018584821075484664052783474910179822193432357433243846415938343320380754606294762657379539187235176731109238069320368548581883073595566064762154278893970014154053180323925347152648718457792123658467339098315899039064342660037439850427404125553517499869118102334561259903276176416398503437966412600163275289610646139898134004823470070305161086767610631345377303334521460146207113877881939245306779846925651004153313450270004431446100915277107976271579945196530366904682005136300926989917298623786474663376812481346188793176999248268968072096073741656798119826894226972251545314148564151934451186187626013847350114745415928111898855435641207716781589967479960074060584245722306110689313291311356814585090444770044194256948233082514702011808859428301542557023260173648169808726253736202762624679406118814149351498828370789653972444102198967645930263836694433621893584991343784936994373435329462825559111046940587728889012249289145671026205491816781003315021702039915744887686374779225918368081903589514245407450266377015356585040529807080938418045691867523265972298828877056688117298495343447972295781257210778111094015678493072643930762108013305822245547516847490444709774988108688940393618508957825225860685769424586822534439447854706952121505988289164944146191351659586985241346138422145489339058678411491348546662078055289201993472926384564492481376939879027253851131911930091834003854467218375617121804297721243010213111156024511858285655680659421997075004505996743367028487426663982664312764886420965471157869371494115367170697522964382789984733578700435053511903881258767998265322249792478447872617681701639715595021384937069351076057294503235050734733230433009636631857802945262458811381386113478984387890413455815147939907155065452811546372633303362672732905261586939946762046310256752210437835630920971060572376867958007554674373589179484789050469289382819489239952742956354862321123466033889022759816320069710800986410993364225235073380229161651047962482837187482769864140571842002539021490844193884380017230598067063287465527649840568238316926931970208482135393273317450270594434280725496294132819791617213923972957731759360742569975340639959690721808376414368131731316537989667849929988353974681417831677700247225891163212091552265875763599128078814136177417435988391191332565880271233146564815025493317365719167475230618877287240647637139605226754922073962215888271299602950025918893424488045750983089979679877642647391333125525481352590031794008920614334438496145468884236743489189962116290475992324647506126574793327517273504219029148629157692024381075692920891764561820245094067472635258691700773057752297458447665537970566713012767538557436950910615232262986105777014195837770563938750492038246998793484368841016691086931282190084727861049631466568366109674592293669994674727392671169751812897242399054871409864468210510164392360684677904796679140997961625262399070076441735861960285640685694319408575383860535240630050191447481924856720333650577192928607850671862326973246450609484431435678165686172506672703585968426910066160286446552258477484502116947084078750590960474075974321402814311624712250106471493961817226865894373514803077914001796577005079935442401749980451733133793514445326397399988012655395585521340037669103645823478789577961055702935980207485095705887232890339569971431251476978625348404631270951083778018100350037366913287278761905063353642075377791087353937525565955830775849462903395918612842387251453297472549222311699953945736525495772355386392719484614092369448001271089400366862765468957047271340919204604235123359448176657947477520657776591305426007649405278198936034062317412746680845426052831984820658017181021770566430927557095733291879876808389632363348096165473335040656159825218819773318604842520426119322802344543361943659407389274682750093052419424634071994581654938867254784129925364594953530358890682190771313509513709789961870417438056749813504632104345450232261335159979754794881195243363302936326725285784443526234541615751588950783243852669275653384430882996696026541130490146118969134928996492152214637920562444590511285236239782407826836289883373760132110582050135703533298736355005431394610219531997027261282848768566210457740251236315635559252788653138813364046132246628077503621855400489851200005605084138217331023867988488453725545421940536426386677273082544023259872105717471672274658714149462822423346533375370206504622397039785811542228241180380362261230062872258607249710288318429447138721406321096501641775003723245993584500981820335715488991764265194159665920845219865222501908180678843424904502997657505169226213527954785802047244940824118740443617551572730502487985293014268089528952350220275201510087678075919389229112595274987216066103774144135882977850519497709540266927307857872146579461804156274568255745959925022301256995360786126551487596500022307657270236196694203582426039906666829052625738430201007208911037457275973577250617438885490806328705526616688409465011752858017025247601558417632506673626284106148952784174210647557010243242323274785979934033165542745648510471900533676108840859715009287109725906717464371483880703058336752216867413561998067398228955930806675479377275975537463719479564641812855936355071668571859186467172702996173374197110904617405331319343065133811118812356469293558329477319160063475775112160183241500224174739589436644092830073029040258133438168318674152177680845579032099898187707569861614145155376179415214148903666091678494742387971471132759868440516725293136690736070772340813063667810972671902699960140626021347862294982586390943637419815853652809749749679112031088499127955592493963626845851020658737844007098989618887697117020076153505074500068052220301759316782339522558193203325282293167735318771801545819135885305395209529725079490375473401672298790358647393079344206792698823528645750652516518735736258115343806904433343905718713203268182200653178118193146832260764876184291319477514290646522389114412531029366866422648381399028462608133898612359879372178801104626635860649593124640454900382091684946296429539711696468751271556328170336318450175171967026347434619571475790746916465603040490129156665587373244997615404581529257826005031350627264463001054264084577294945818802378965978826784619021301424222193310200833074985519425506863951895202908965035853013204288072421060633928470573193189366314792708468750552049124262375107025084080022161663984930630434920808929318842507838868854504279871835325517380063994246007362091976431626097464389560994733794501962535853704515539954067791566619514157957718481931905187935212978706609989181560673176371288001276121512682054731302500901132809256893124642190696393310770697042541054469528273159073112034901575248858134833358964359924477941162075110164031029331507371575138857850024800824706015285002972756576341455348836985659852249067160308483162597381677121196252589615038676142148746724695715089252415749220390010381274982005702356182989783864924429097395580405790966303485347749277439723843341427359535728131658792170159034172817142975497615041682960468280322206761001826613984210546642419343073581069172755084539090810035540704652616593794465207550712935849566053914354721978099787035904638532256291518243708282889865841101582923758049115298477566105609298405399955368558334650515654667068932662117455945883425422484434399612884851966206826481647088487891030100619106916772363168731956953652944817713147772431875148422766093374067497107677795529721925585976824286128717452624696673896948370356371082779543794694252687891190940403250217495344999135904543381975330044302150955452793644397776292405876145379140117782616836497766974332665768547182617162578394498558379120539233466963428395278147429086616438340313970182152266234835584344328535796371304640578082585570045961857753578836368906826571415389120260095532479291542961752360597720690089549951191902354306150542655875520056642046750441134818503926731848243324785794021747345993932181163503792199168707184087332741977664951033513454639719070920107884391138155425593255941427499871228417172675487236598781900092764925317215193888357075488859294077231912467610973434685840501674865624508755060682524423629515088624549846949348026822755381818883149639669306146649951165461598142492406567808026067410228264226076666910446327450860851885562881799837814222775199816516855612735792868549305525132176958953958635197227540234023464100444237732041573091245249064068468346061677166274187789204736428457364644922556209600547924439268821480162830070496525579029589589390036130327944566297489281271177086924425633184174367583019090515231510441329109967495241781677958331871627332892270364563312411339724277021905405053884769672597217834054562120741928686161648037146318127993912752297665151179452026939579361632310337667691055395954522259947048956564713645838022301760018430042064015489854512112379345452533884493346581687003641537433260170234885128413216401323137128794787850571227516656660578119807998761221588851864351129162845871359546158108359364724308350848548876946137767049968728013581136448394919090005770300895732643957834658113781459229701023319859429913639282574970506947029534056999047311407983242798757818246927508695191033316771017834264863879327822949735150378587178821667995831143471255754839122713169024840712750038096076503185060822104934954447558495379185132314249285208054951347166840921835065291399830007024059696480339514904668582998924308165862547356008835592105211100118041335330411614135622203591626313586692141633753679740296478888198141574718037894571452149877670101072125344307764655354390120045922863777508124157760648327869746989641002610524995269051030312172106763292652782425233245802571726618712822741795951753603097898077239472413412112496905626986975354240791248679750843931345978661312299762233094243991470355966350098534794427512846739851461762427916630182382770690041501284255711243482936371590907265298772714657064951373117434080397133288435622928900892963049263846750265647711579331980853823935865443800131286266108356563645673597557862026916719293604802674078001549631600512177548587198415089343305055625514742208574423831216041468721709301392493302151066339099301342538320320951850727796068606203705270012233284470242991380276485110624842566145730685954498352775116186886773910405515194611932390990601565131831143761320875836038039196897312092194139631626908298738725496757041098887473005682787189137753676679912114134940834977524532864669243559719839073681992667327562515570900722834610281171838555480860004428016322603945640738141117479022984318115535833574411004166209475059079938248945458214422225295089943630822522794884147342852451736925957608436508275825140230104443997169240820518525024101296039187487945764655023786614364289641505330136161884421163551633265660224420005923198154620777377688823161839222189466214900229624990027231906757869092129614012251485418054235935096040762925094477101906835478474897472013966039607990488259537959921173747850658912770205878586420022271499196985985268894300122359074834990209852556463728510459424309420334836552279986944615216410137835161928761126717537496648032038699369729634147340895193358782437193208244877295463186113302471834143343578752892627417492454964697292365389702522086057851338412348808308740212330705955365381618791295937893035461293112262332338276008040038254294683542949309999718476346933710390141064634218452211614954763852001137643741117169674347358268999436201685612766900778310666133822516732093433819681024748468633560708437738061327783029186428702013616763652857783408852239983106524193496705934091049523223834229750493074995915763235729968504483624552373102346715221422769478127661862012026532567562719410596253713538327851115381942155488288386897077457336854849586939526860657178278882285302718843892186716327018832611891681418296255837306631604524531356122840464914146473082007824202994870314289864063056809130013541364089769649735466308767023278304284223081154075863005011901191930977607199288340847801887990453979151476767528258642125040457962985883326646932550181182907773942074423970034344626550987932178987867219970909937790673943625850078943586769511568929261805442826904513458321763224497411557947532289306920562733987859429524454082186591742632517450276244249845744891745661836125412755528910799818174194985114240269260113346402574239425412678000000836128631655298783179945737865761046929019905482673243119286418271622595694483045086784902425020625184110558314749165049340190730035374430890385476525576619438467241859893717084202173518991713898803436650398602256077726323008879107574021679828489709193186328649088992930355762740430122648349329252386878403311835778360194677405913058684225283258956130860240325499429608811398795531400149833528999707935134357361262088109568264864710963406525694484334556583403369524898794008866185741850930632482178284737281143034827989639293622979743052164634081971519346416890586419481665273351805650425251669176605686988084734257120716480853682801542439231482411725473370351775474446708012252879071771749415143945040566026145922625796494445307526489141196381224502262720822147542742883952289329156333577327051339006196642109603580640027249068467261391901422312377604389806591502770408669986432150906615933871879895117894315474687209406951150380708060487696808355801946636802949212525752371017748511595210347562216774778354327826424780741279449592860024306631999426698602804336932748173466470870521502985935760042562582469611666246871916576944535777031249372213856337330478964782533834256010551253605126101300106522914160257931607848757717032714263178113907384126369569828578397295873340133121639191064636468729520791776506208453377032817911852787150728511422776922717290531906568323011845236184056560360430850613750984427373689696391574743828529453428686209387145157709246109387114258055328678690816321565656330905064344756106029317569861910033583053795738064263964741761537664374306788822681116244984650798839671712613818751013028989689213091757363227924278954703512934933515123759047914416029054451741873227713800787138351673238114158666920993255493277860150529487714409199530543718832688691737744278036001424758525010741462434502543287570561586300505346522166821481336843147319062482940105425030178110780621958476056448409446210144913706731929274773463174715221550115069517489289224235421967953229934283300558164265764141317262642969303491096344722783499603094729025905543540084429959728252532957451946968674375014765131844343877551001132508922153231337708548264529945663385601529247067481839997161814131284380945049622907658889432707091336399680589469372040859937432361918404986458283275279346767406904177695565233835349744641967628745046154073345141896668448492254586019556476371559567634137803181584500082694345566266481462587367540568085355169068185437912544733777375187664018815303722101467637858705728913396798540652312718280841434906649690149493589409887140614306903114460810350559444622854262961338736916266277907856970148621153817328541152266181964488664154152273846181057702327917070092113686068605610507324710149039115262384665100434267012545919264131588345399510447234508326759072401727281422325723306872350452454749576264992436811009290432326212134169035283188928310433952168799285240467347076463133256199364301002228523166724928689990466115081177646958165589048346324149688988072696940011125412993174546640731152759174396143418293130396311616944361932514873265245613333188371362585330571632561297216262561701271256092808404873991397463364605267338653117011668284531347146819492929619792506639179359020320686637246809336793250442633971077079395324022278708412481486351983575853841472473445021872367521017426840902935057511331175751451658232587513232811170607250069731349198312896833665070499292482840635830713147754387329763637109680677060145084389962912114158618259586575659446655515986045920393150646715409965900743408824257924621283535354996725396501437253882556300120431718429857129368521519302598463497509643276576442234272732976985751428965268352626099245576483564717415144826541956687695685882819161231712214562419485654535803919159104130193753841380728454331000322118114323487103547148360398435080581640028623636394929168987054691802803101388602177505233289162389383737358406255598054051099326676838190619491062723815169643749398597938054566157881044939640191822599711902064864763680232070948857239298638518052063575542207402408368611141250390722023646475773587793388121877759071762398032618995049470644805968882263706088646850308964859128574170317277335249107308843640613015975105256230778147294191020691694803483861488296113262872111320632862552427927659055722816558461656621969695334124868102889588884759252107298013865975801804920112351368117335556368670334230739571691967050461527730391363140871403330922697787104036354355713739658674430463761168669404399914049355210917831922756452201121384315624494262791381185699494600240690271404524376403472170796204192924780241045807105543987429166275928250939237223136045973677602410954747111466577353791187772071933121969767587687173201877900426826281985316205702473167222507384092990776223031237658252974694424474924912271200635924366779120108795582571205900682581137639972601809639385806355460993560107832466760968024833439253022912266331357571187885020878554072367411324468109304374700045995176588666848922472504366509500434829984265226665135593905678173501083374408459215470851946429132003205020467334476163631463994459806754010382976849165295995924018690308560870071872000816159189860070795906787095116305730865461228646459117308847566381877840320509764657353581117276119069830939515828005667606390039625420279028728815290045093934984677734510104682705395520566846733020355734907467459898520364319442411914696839772978945339390463490530694480575687345516860641403009746661597404534255707531431313182003742879551637759715321467654976748526645163223584313052304382469571502025288749117252987898726233121637226188955886766585245266285082209802927550420165092635886074475699459351821573476595473260402251683474456058785569508571355647420786632816240368651157811807948790370933853087834752517134300995973618781133235887317792749621071169943334184113596636735844520086161626773264104649132426897252242015119313673899827336345493638269313097111736182092975277739929004012025743022651287609028478681348297970649393454986067171967547937472646491245762046182435828142419197985549191386865719867998740603688509509510469317456247332624018714174553011459681041604382345350051384034827286905808203403008763054601705390649563998741821134894690620980569914959152399781972667408911060583638210577116727520613861238348793549778515764765566772520337849376973989517664579868219530539908582591149216150656905352003974727381954024969010173542977337469799660059498985898257029201635071165123753903540171618268973054408786042603917917030805903669874493161806115868290672434132384313949299127151602418653358295905771384850715897436821814101913173899215043743681232697379726491457301421295173265140025964979827351907845454759479080157041285622929253171753961347165332440047979233906080236145806882097050918030165702625339145023782776101250037608721211731170616173431056352439779096626441736810102760255105802408372132201816446477272702461224950529670645474965648219382771932156820747360062836284822492359206209968649080160399919010301147298376728285363933157671803312374158478755030832415131432267387505314254611695851428602660383002349566266640300042045167604221485956564683265865550215890195184213344886427524356363179494970281156475126241914545152217570583723564991299057121891989789606874581235346530303559956883294056653015619183375559487729833029618282613894287915379523933756553327900268238654061017064547520469495279291496023771612443826848898439248764250560256005906253750592690015685118052967126771928966067694932983592353692307187153176609966211572870285385193471522246467563184306132182042278073651276676285856015090847909943230275522481590042620247590234475447827979822891547671625351047162635172286713356708766205496525877790015031702873077706299597032942917864973730960310621616349886218264368640359391037490086256310727805390139569660865872345178426469059626224690031348751357778158258744705036408478555829127034854865394702903975256587853473389227630366992935738505259816663947344226425424436833521595467074664235275876098246001806560925302874183960167350444421276731970458574225735323692722651527943647571074523478488571330179311338473858891922824734568537433472589658255770638320879594215371759400168750796243823778052036266869737422477187333397634502834145170817420311314054075296069926852313527719976555451115545291536591216911423825421860161635477282917731685593319730059105416529396719173025819874460619341426918254474764016433918275312477116498435966898853800670723967465735388178878979411604482001396660973593809942116282440348712635035309130885527101160440180238174876093939040588170202855114910965125265784419615944492985584874462465426054557810894829845491147012670458544825360972816426353367415300667971297422799034146094172710552963239058307430080032840682996759107521745651673751920947454366596291466650217241671714689455900270301687870929288005734006162274458491104767282428720524239541653320282075413099978499240379425002969725236443470372416958235640864474768197165151411895972623466205765708013514263171042304888045518581771854434657409597793926505080355543052062263713154581917388036692509481329122624128584662206319414268502715302218479462089244388137390561931034767304250766828458122334010278179142632909989572750833423029117524541123183648247146523118158621442376340840026880755812998122191511290789854586225537594861267189882506066141098399358456074501874234838863607706239388293030966697997123138732362448120277929326275663652749407963404468171310500765438922593502122782400877677577555371126654805246948017925768363543254283860576379029209537223839087993930739815986634771379138232080317023562371613498626009395735256253628072954592639487744438973582447933558962249456460003911042860633479502217743796989147192486753418540227905217378865060969422849779770180562230741976002238344793054738315199662406051389910201081946130112574131719060038569753049243228156918947908891376491939201719234660707232516689039862886241950406930181911785435953046023494475250814130367777347031439029294933454465670143031135773768420739740429673766635788400387760206453019127886042521160442363167673467656467128991720018062757395400682501301206546080369834325646248193181364626574323988914158469887914999489138738401761344463308355159463782630025228402364196311890633927007855115842154061997440892074066522955646150700651324220629383619116826452371537890235645403280193851973709147588706549719496731975101669822962341061292784639926052036682170152456591189646386338725568368424425040741844293515216679769848463462972571976629881460375376793330483274878313074359211594790985261041184138890138505995290822724781965337965542842253370528086751948802419370280731073563583617626646725660129874266902107091439194542094150494307578734382471440215471796238360641907796027300922511427420038449328207591016969284248900028728587469797257637940962834991394402812623884529503999925876932589343104588473694874745993026192431153455969509506150382759675195123908434939750865718264212265842908246897212529903347442269337954366329496166127988999792353038206103832960160969506190582941029624491579659914502654420961468625051472060199793636732817553744040820463227788193007966482471221098134389794682999464392862470481717280290138389641301722426846425830398615310532931130403461106715516364172007528665258649901693130482273123011679192643707807443717781657130384046227649387270291428109011261516950041751639110986158397320760254877505795295288665145676166597133106096399578640749543523366140935142311579379222437899966901254017124792447295434913468103405790822014115838657239759647803827174952966679884877409038652022489931742468876806149993504917073625258066240480279096000455236448959234010436944556148683817235138088349522808715305703475121492088220427619648317217737971899682245941905417221761458953944774411543242097643644631039127109058505926508320444917272115269032621453251627062139400646043691783487180834717181434280271602644245229646608711848879101194515946142139304526417069824186794945354181522277915098692983126929499271822343550972241814951891304200014897652358642711726371762160736923098206357932549125742653407729900044844478494586857432028896924651926881369165439227891573365098797492758216515049051576057291461289142592671018379988705189247939354649318995119264376806201827986012726052745704507733138191948901269501976927745859876102802578737001155829694761344899917221461058054214863857338310168330895464536628329561522012609642298445781507453049099239444350443583824038476363250386366317601677300303475829238083652415343755055247561222364281041307919355397686855775883076661205103502123346948261143340117482510015261259376850576652612236144285232441528792468963282723185700465662284433096247796637405195255179930973359487847171148084318481350760196057681869662994452427367727189737983541266818417420421950438244575585734210297261423425775286024500908165963812067403271144580051536413388509257054672771347998989333408757950772769850733640377873190183196627096707786593830250848000066829894793566790934246403233071501950942851489268416497761956072637839053745970191656118217521610466949961351207877264774309526524444261864389834924532683809648311670471927472898044943230014846726065025350398028672433337279243253842429993175951531979848394022610686522300253151292757227956294175215695390830136518558428410946443199374685189205506720803385435974243684146839847631327940865802048585666285171187214040724388577816206412488964125472329007692155143243803206540939624670021605963607734574619111473807134048015392510513550669971255551120086533400358080167859057342329690082835611296813705125804861615347137220985580678162226088614428184654207449936306217307957405910760174143200153695752107860127389312642028152461365581875589304482795749688969109865853782571700810541412556334702033621345196207920537991780047192436119278297920649261000978619257309862296557591769929454019270586553928933663089856937954886782207162525476561770412453229722980021346815564691866276410870361595473689617778994312288954444406596767029901778865236565647908631517986126674172487856030358405349046813402220164301521408903269182405143167510254622177933473708510904236647996361448780151284363983334597926624010101218390749962743075204236463312649417831830962631369318876056018223681799593430285796562579854616732876219653365777941836508156452755665440635739949620307803784649883920636630385005567359131753455907933421788432244271888590979148479479816372546834808302289949879917779666832884625324002899975429261942371286560968824503094531560425712731085441304869066709766387776984115225101047287296858279742831965002302345518838139072377347736412862044539192852524065813505523399573002744937928911296157974432380602783388492789680940481239915133443199820763063475748861980933975616226101966535971623310501261402401657551367731360274851882304989256776086478637201806890835969350948916519150957027095862856965683538304944945669108016238956988035428496510762081182236197658629263473989910241133143935536511392046394019602863815626491075965607791610999199866443643856319087319246805533643778393020119094741543231564351477699125206812770587695183385153438728296184318451202365210898732436074691474828883685364888714079803088572200037830173634005781707516582310575307501144114641488504232124091660984930899689347130774988390675957916258464611719390301755721764166855058840226740048543905643766136949524332538448253031316918713357516806111922525506846935780559796785117455624306295948672920523082640715502637783721360134293052729371702655502360349533375628450372231172887869460664019996776547358941676770543014147209431751785327085005390190812041024590615511814152051897563029234076102873988774996196716016558706496681037719668815901774779037110307347197181383984723841173892867021749673769208431770756378143820878427125480197203062482416811063822653111460463187630365185941897599826779934941062768388089007898091881900512589525196643320847669337505642535532466658735227114577817675710035808233666330734205111023385431561151027811119827810665434008804246820010238407252921197399981680832408234697146957086607088306506726405762782519923193075309730113810272823784353497630348561064873047842763095619219946802359781136564524993540974058939681721997909151917346712703639853339437326510573108262851673679909718132670541703154221383778412197486197581278663301905314033065045699945484681124928397675484945194277464362589180850859343407650658616931324531713198479035032022994292037277691881763195083923248370760098774643520372716520335153135751689602334708983909197698143886381697723964785181537051796378472974780552314418980680893868521515231713344011377601091275929491184376204250530459432542100058596958639681193033728658567369008957998316137089047741799536238617242103304649450474110917312335741136870953351740066254936637113503687083302793310419725682660252316726513391889160896455163168062463865159348194425623378665134045421459896043910826946767554989707705382007372059048467942548409046847158673768306575465031254460299583293165135339011356068499909591352740775573733665611997351391765624175344419569114972927525484159888709479792854170546268900273531246350285388188473350541496906302623547522172354029011762590188636606088703386299255172383778373034556852215402904390292122152934002627195442111481775532022850731067045313012190453603489944747259161633143117635355995602399904947699242632574090992323630432575363499824442038677771908884193036668102411343518614121128486450831857779815153104971042002725419880696963437114846509287958201515242842280552504115874795485445990639988659184353299661161108289891507283927512110825890953777773086755182764748792647018182798779700136092704650639677903960987240505003355204210053656849322567120044080304551538362750628782070217004082611872045453951604898896399010877774646111199180798791518567315370178279279569211787409736219884002927110342970219824196794851092287692903772108827461036866422579592366108801634290934848575180185177519931983399501076829179805217899075345531731175351898444945120997209180271630337962232068396804655836009509636209659956912842212021635965894512690156257775601601848321460007110105730063349387828247769662345560548760305870222283872248185350823773229619184470618665085594982455559686473864960226306683580704622166876118053505966951480026714931878159646208209935173142797031475184777005474104186851212774211955608024134974406462764611842044847722545019433344584188891418129553763234714861808389546338360368090117918095363764116853274888607259814300512947338847577712994265383610739112376344381542423285675093528001779885483607401582886015238072481172530548856608814485001102570637915457598116970025972345378010285895583559669967979124701696370206782166193510411801030121542884239085091777683017683345443860723300440776220321262668917557716230382067979373534542933935865508262189660674379838931190033538764424224260911858429478893648056818240095820166154875314315616158773881786169177948686224225842700501112843807416540556185953261772029679473059444564718892491159194692264292927227170559277461396824497252528199609537175375683414999107591468233101097445020987066110923260908641555824066169024287554135017378548808372623541399780201022994571508278731993115610069041285018277477848657536602869785319382523785525052104070320344121613823485074942104465338450175019647810337531181304875697995221041746230979649251847253340395611177110679829021079458633737536322552690515254966940055756302311958016904485596966913279730853192274551209442484820047338095732459856497102547650352079556503918714177236556718187924358100089582040299894718464641830534293301262815832794812713163418755991787267794162686917891104271704513039102064829001149479653923868801818677056465144923647103880751467240119541730752554358164091687965659073097672566071779592235662065808531941460173613990936366325892390369174082300554010333060431087564756306136252077228884105760128261944851515669386153174880009576157620237225534550429784390912867207787960556673810599765551279800568081046336096928875957778984711074402340028961411424004412705041671577251781351591880185134249490163274436693499445542778732401468177711487121917589149880552807699991982300222737477686382058505324568178966925420202846642859153694434066491797361957005772600067881118485797439935716863983280537869062450735962915913130553252413894783363920166725871134938668690260978086806673030287269883495377208146314228332881661693924932660201039592711122009446565739850182751774460761044618681784180500323296539040382430678087883401608760549806592207474487421784430016438577653859717353206253829707845683186405818435241047689380359550020617486115219425602210761432169584886818575188484032967102828284332866330601199600686473547710731591505250197056874413601873682962143435524936302853884995785653696157261115935240683727576431750790833832433121261480225398350093884814080643139042953449576991395659785714365214776956030302797781430016738158659157970652576920510560783417258410627108435331455314539105549050838152805491275658909624334541607560342196615981908147011987166131229721464597806628770060415463006733359255306618619070840559250034734336017703082309049724248362385066782468338132198227403948524302267888312353045929038687894088017798821488584787348887544324575888015008781209159616433937206765141707441314502264498750900185904748891558562799588504040784269859761454053487174110436441226080143862291209126905830883218977790988174667727946432396897865237927223868456926839039263858952664119604194459460192763503453852031280975725502214393967160826842799947625066994209542549601593308614211807401359658476827156992354598519344547920138703767251250319672416010462821356440446840782648623666424076015275439685181604638797564129917573300129965806829015150446714575046032902437550837744767538245545815905624122665643979727704337115635359293484372331184468177247014295259127203586558072339715124924762970815374654832618498803742971264241714475631085726219555423572806191262184727579734978910519383194055675538021920854944163137060961617355265128212576616817447728955876089102111703926439624541878849156232645001894623776855335539584114932767493328946939115419416939508960607345504037405769805830049182330851520943941245120053759596466663627585425588087936924246235988787855574580533463615081822251856327269796104432059695484350271505891020520062827238308303180215529487324612954086071682391514794259064581214974618000303909775821002864016352379160059558289713938347895968833247612295463089135688262724369542020046067091315274102074130160032397017581910677680970552093753111020036967237350644196444567002957181691062969571032903398997361937452375510071878554593224832154062026584389132702388803677035356780245525514851587747675863521251474296116332553958547001662321830603904466214225542082366500278119579494837795106955647237786698767776634459659275686855788774738054277338349549414479018714832726552297725025725666752799819128914695893125162494418925148650786399154276874644073186515878606038296923993601548601031261774738031976751197554271314320216526806745104896869615572081968587857791653969977197069158882699734465107630120976743040743172626533271831412007458416959950259865131032305719369858717125343564698922433288274527388805098893330161704032419829279856180282782172566944013334702501065225142331606800307845481421602507933548070136293851552117279423088337035600883240576899502909533325274053972427389930258036470268007931670675642689051074841989586679075263300642728981970712452704379236472814531437543860631823358185034306632454944895393711050332341943505820107018929523328991892542485562972037916889976597736920484117963259926493488304347129561607776134239740007415313332145160439529821840512122583196612877992445170898027028347396572443306499910445536580062981874784810833478879642404469481283643267516694528094418872798004134338523431801781190228291382068861882488320348859915923059294803743504417766859105502527004268602176189692309186579745634108627579181598217849622534788559412322454674041899765688651908389509434410018552168610039826310129698510049352857478103646646301912484349611012559697144287896847476479506688153887004964037515889187615925646525290000857538066051315495099136085302712308458336281105110380656617185914910123982608995188813672796926934871019098177023837580710924416600616709758602821808339764071542788149487145396584642378773196137796532842157409717366491532897902189366279734962596943498210809722074216599701662085527413148571543984756097989989893734165985834992605895396217836923335918536451458824752710739294029380128124079956056420646168090785665540799632579765824105872755223474884630893774301297624801782906791500882183208966871551471639730653129922299493064634141548729174925096171516826514767077423908794526806928691731745074387421470269813935039595972957312835024473855647665120241104777090363506716792689856884176791677761248050690970665983395507624713971939075946150591140021035567340269825548967023431615503752668508751119388979270516223758267095016676683551242578042716583395579395125846403614300278906089100200277192107122939295821536262218232377602771008223917281873557826393963811531968816028658930982579457535601600330371332679501424401529306313336415239154203261045745175094340330212554676498619787166577069530039428249139581763044015792707699336691781767986652168237981968451282165746993200079901777489801346821236743997936631762743196134078564768168515559507564434002880380409049360423352159126849553106402289327203033178755684032791905650125697293455165926067841942309213629162270293445342417924591361766119543209755906888318702029042397241030125816292345206547806341703525226208576438942736758610091300288984476677777713210166541372707352518169077716685774146147266077813301814414064715975695419634496234996602353638060149140358674956532171815284083090697614151086098121354367924419291173780272224238961680432829948559601783111138802943527548001668247753064047256945200757831708625674645916302558971842902495709403043670359238496453012315901769752080802112014413859969641640257196848203541267632292728003981895532396422513977348735622017413655125275078079579403545257227844942454496327819914307578270131599229277707421576209178889723048878894168349771645891838386346960248901900308840011165700514329060655461539572251759815217715635499249883505144685829971617111779930555923781362598513513152876240441526858438285257701219768597287936419879793235028380128807091980544739012661603253895596707924427921361551258219928582673946620543044173961461835551668933449445052441017783244818597261031949167779745437012440756055155586083797516361090230384180050744652691203106633918234538297996507586988067115261408105527865981050155001552187371840359686956355418088408508055803081585518743439897806340395145143019119390065194722164145871151317652528662499791251713571296844643164195245489757149962156563544105820798626009878003818504236587617056843813796080974475558244264664179721627260750562930970860706747988081925495644939241234191221561579738250177009034162871883895918632836343212252986600772693625717506418803569426660823538174848272191127478084180451157946004028426565935457756013728973792963731078739963655404746476839493132793443800638140308823777015034477341406987230290898163031185952997422708902690977530285033520115745395447845943826635306425213029965166160161036724280295666039578970455295156037548511256115378037055546167350074486966626415595695378634232368185506032011814616443937420054667987322541347933064695963890600726703987571672271717826556159205789155885345922380473895273096775261897324209114223042543186484137694908146802374445412054715339179738205839071888116057972374128439902255513545518023553169680360728248619343922889972912661350061055303536711655788283309128253013182572879095413462813822631107803922445260054443645940816815757793961793995182596080556234490797194433938926562701069355775235695454437561329367385332495306576042362060370232311425654432680161997316258441082641665640048041635562322982567971332378643788807044249723769528835490115544691282866760581641229727474307050523037396541201636174396823179582623684897092750418388561210628521798493043863559708276745448411305258259459414484319839179125926718364480589983256057020055328443212894515530967236790734973328562533486278430051629486231940679671116662542928775983147643366915019217792615233300032029555835086262935081248551855664555104762339959375392670619464578959807425758911446749917158977025601238289311111379721730964521071870024492035046177347131151309133265868809448600925540060603992016570237408899083698074790825430493693721912092482155127115955890377599157910448986676777208030531856630692182862342065565348121403401608962831128834543790450498618404259960232740448615714076347469680941307721622766991972759784626653580138058974957376502155591764608695514391201797669813359961152902406402091428412214103589929346277429421265176580230182361644152934017816228136380875093048254528452081223337585558137364037405977882261761107825017643583204501081247682112775489904332483741637844285298838424978136844104410990629239095631508522945942976678023070933459204037040346751005742291681913091535915490266911557966155548184792198692932958184814084582175141991683553210466370073808948310939965377846106572374246002559079944734339781643078523212770854751980999137829359569965463806983179750502330711062344513812566102205726797497151039719659226212377813165956079308815995491150816269690847676019480601960864460737429412270465827069237250627815882582372057535449949787728227351946624113448202054434445065851804158846224701127711662630993837708621908735637318559350916346515332894432809328846011691317819021601183316315764447480767872742408021704370675215262082125249346351888925331213310438998797766039626938364966670989899039498853767230273573358702594815652545045639033830991671133179652035542039128183319933164132080039874411854026052568590948399520604529181103062666411767640555224796337312360722803158427974785123242421429853498235306662365745099280020213841427940354456208808963922701520882665761874407205607823702867360688648468917806566133138252675059556624322020861865599831478398022231868504503679993961075640384368162860221491652123563390509697820535914237177316307628543749130479447668421743915893339087959310817722453860778273802109339199578652466585398230272311932876769482476722173312415636782112141567971638053690705696104663533837352915427718836445422862358982631537613924751954859787509513012552578387824659321508820442034531167849473820083801351014910475759086282969208914073195352347371714399667167332519078949205583637617953315515526181374258996893594621809222972259055446031207799782636121769735577379334488729780484141343322407188072712544664086891003557240087982259627941028701372697948841136018492449712385584636442578956330069013292642459756518100073234857033892866378924103374714354703567541483946852590648034862050824947061994834211113614902776023078332931599472787931470234867396739769558921561640480343164897759458558704344488002667419866285096460282306114670475386155426097703649239834177053174171759703412947532909949882578047734564599405770490290629402993140629483876565823002844056557602135311820199781946884022722821173898568409464043569342504836266024522182325595790086401140958637870139503667638173564273905565317688048381244682874992357483499160917144712338066696196443715694989093091575832955698109735083928181528348346484686277530705548784735427131692724299392147081145524739527709424987153287764766229753445761515552612165255026855711114104175918064412169200623264328418782818508405452458227964591596623873235903319565488486505974995229098227244581741776181396570341790878573766428689383778912352972677391888519030124104040686048457135668901914918246455580599326969793518579491488497702962416811838390311968604592498306819378374336933596821174659154916994509440609029247809974922657125476788724457102349556554060806922734875941198800398923664867664179655661216933716405499844847709225733983466996984245938490525650945363271136911726727190753585799193788175913387951584846317929508849346519028221833597539942890775633618235548504264517883135870549205965809453831314440604958580502284306364957837087478458223744555857702181982127760083459762220503125032046208749354593665756852796436128261777774800083103657781777319980489677038045626078563787348425699909332122617534476776416913560902389443558075167284729857235995665727385073525222447523817571578020878802836827040071774602818953139380036467035611574912917879185030875272487735860010259157077346209391413768324872237251516395798815279969975496208525847724849341090983985645473168509940052556674513704722069381731887560818246463503251794811121839278794949629339977547821539847238449742695760852655126290666437373341017967788985825699405739908231266037871386828762879719198203790307839252336977367318585345619567640311015487104458911062892679795364172223700299280352934447644479396271469215080670697918049494954311109125596776007947855160536671730082486763383248446707403147465908683185453997511119506823517143797155831552831019396636899663882807718155151970297787560908319301509404729285987158686274467081412639862876111469693445696155999872125585278817715238399497222847554015096175353768197579836858730302104089855238023163992204371476834310658617166786945381202459533871073715980280810874963763838654664380641027877824381833153156937342069588371056027053820290677672269957525881819976480871564207082490091049734545381086518807376446854971086226718469542833820870411938765456030497856516001981718394847981436870112763188854816523409304713194596157179494963769672438727145745902696744407570292046857941505952597753780991084980782576031452258174165818689551810887540804026089590775857161235367720079388075800457518803503944130248297078721647999817624386631821147131176824237978872115236747580938617491061461589047088374628463371983577368179667441686545970616201966170536682890049978026985245483929978578719805038329301239636373066351582109436729200286826799730134571943630775508287621881683252366374514768529710047160967002001829913009865606776303247529869405856675042890939038550870318401474699650843537922395746906755352543440768210262200161412515496330190568772320645258670683076360357718302677190319450551604604174556322754321117689182552119764483971285512096633081859045865907440885706156771421161365476029822619023366006523693805261948682947102829648308165645469418201957025001151912622250889513524389180263523831961396328515582092842684244632260832813746105495025433746869088772242253512057623721950024320927362632455884712458971051833677640024277228036962798345631255979478920277599971955633754475779714342296108993834397398569458582975342543161247141167352360166981053079613795047977648849895950917239944048804902502401175854592529335368647697640288043154494269933003145333349107055776684562969537855853788500869048379304035050339048044986960414936670785405291776847031421376407195227099055941426684779183590814211612869204791251934381569393320329570691397735383623199307038337021680990931475853065082943009063319864855548682781704754941470616795917039868580344080531649549814093402737596805696630093271135723050779934657294779529265947879427068876594966969235398190663916559880134103441770583723354809473875633814585506543997090238337783442999709032731117567514880972246675302580591887710457357076283560446348174818937130150825951556519583983622254799107489838213361651623281797926740491099362387275263602664110227025984564509394762877755221838223510522588836149352335426294509338693032106854773502504570542988359560418093160532231849718857545352881585112858145523844506605290566466743338863886385947432441293842198330623961379615249014184538446906703070577255665561884334737103183843367654689104520380696027872263100922932723332652638044429795999173240038876173787085887245749875682137368031973177477438727027467718496624208618471426561422040667322819542638849039665038062816942170486641277882162345109980982289806461057270617371457738549324845676164175812655990756845554616958356888951057436223816060917526232705731839200474263357535074863927674321473369966495054726775738520261723392895206994599858109391749078801238038252014100983275847995487122018647984152717128474801468681350963413471556242058818486593999315159494298882482313224281542421759415926912451583846242960808260763764085531639684087072290814832934408549907636811554539285980061480797037700993508837001788189102407394335185995439519457849309603574198985417848414642498127500915505396659723672679671328220420722973320249988079029725260671486927818309599504405860789770927630289264672581896361948835497856281657541338057703149036665066447575757987135545037811553053511208892424996737828580618243820084347892542679843731784759906798712732279707975207680786559537218803819785901323449112362716700965277562991032323409228988340066103665805369726002733130103158032960607744383892593937651634635095518545445777123639464786491540494521523980399545183448095956201019470596284662628276007255730062514329964878697401892920721927650367033294212384222310172151950109177523272011875553603386497801875856532843809843819481900289349981100969059021959155864571315381718287471941777047939296224931276866624623533970348593523927017881628237391680551754624166763207704366172059180381935718476763197746056177085765067383326268805626068171084229492620141654034665099121084142962466939687102397939045159414976355332739492173866397136496739195087422432626077643993932291253524743653400783007504670221963991683143859382510372499555102176485121324667524380594030425909042974208595658542974338211039084946594143204945507026287197678276504779180656379695522992235689523997834790988324695401748808130570873586704289581377722902499572827292872286617344329037006119294091333344888460363827838279453564544856070359187939272185490408497615774690518340766568084426409019163633116008739641884694569819261866046252535879911201062610290070230722727347977262813712762548555756122727879454910197384568422110772509950723352018023942863358708592480630963715180346575778643059216950777756741824039955639072067211819458006432910670204833639344165993429587446056476845020169474599927993115436442577812188436751538748601564814402321654556982898505414666118244041410975066707233515428803682229555108294420146638306642219350367729518058503821948111569145821183996741212697061151202689687338274352566738003860648091398656092821846406800347722266493019532351220895629653361287516029572605612891615584244547191397418340329262830775528699461553011467826673727175336949821848602348313911921323880245117027696508606567415937051366496274748122983955058122298672308610717760188409732655780506723104840769197695545402149776695420029887733872179209528646733436352600277877014791849524278996595783521741440411008838381099346670839969662287405428914387365707456661351590724802395460434981431178880938170896549821155805538868912811967441908327373248383923529371566399232903858885152237340948804637472331333508544306761399353505733482263651129600730801054926441249775051370324889940749010047800377892002004970110151428417211863845482852234826973808707718590827048900377513784587975444267351109649230694707919372975244870732014354753262637742135775618420882911829096967737260290705865228926127178690517525520774658652058397437922384218655921598626432215567770409240971173878069327031873458381584255670746901837320549182903709151753234274330973244240135688793122658853184669271108058170757860347940833880888296671786171935146844224294516641243628036090287335203787957439228325245001974829163808221310861971781789834527089087516388952377330391980387281165751159879119671367717867925511751531292313814028516044791015362523575902292358521012381189005406403495680245352097254221407980935228368696608627483562400864559578379475727959400631539397692818301483813534508816015676484432473761467783129857008905492452755102644783148411560668345851001500253432883584620093335461433672117949217865816599764442606145621044337837615536804888693598661591760247770138337599766739404400392478301575603592526885314440498082145139506472188213659835870766514876289810519441611373377978006441443473424700423164501029390358306506370592591449367610444822664004130908313079543580969548226297380934978642300527339857083036211330574889744721605653457603966297912316144304685587492883224156466188375354518622713551894729503748572793243903673085652976952439511217749123023044765687445994393056666930062124266706028977704287900423090939874770634080182106085597459962600636976262724582952318713758453182475235513708273472034610942748038789761961451357885738618942969533495154072189841954647639308670972337070831998900414469005657171783017688398979809474428431540398873534715252619493002590027840707159498173383649475224884297076011734284622142689872861527844034860281501017696487102698886517325412435448374558620162643197060324296157206269490146767558962964530633773272216935695738386472728696232745247629859669873897608021515269409115606167575600710576782426779032361469144961347112881611657179744746522074940079143506793313056392122179612106034035874188930299686354118318158484394549464665460746016289825207341551619981845312904191243703160632638285603402027859128829992878132666744011465069075390588840600909170890728800855162743278876059944499463360090475698124905160253903381242402012784236801152320745386745961402755548373429484203242515639149728478372064420030757396147214942595447252675162548846205255773142666283632885765361660092811600933787990963751477276825512279488573551311679740037554117111324303303987093740988170134006575152006079264799121719866236049129785979271848919798947875659095391166255799694794235779546693074726861305079141361282897451565438815704329770171744045353609164894743106762287062352363371944581372748299072771633148982314767452245449888326205052424107148602344218378225704609603015437430311503119447092997265030074628277668445248951442787282847037312087426623054414622667173953750550959220492023953360046461725091170998456809449381919373884990369400707866904605644194988668412754790965410436346051993244424586298458951216650939837138309786002302431232394615355130463474436821098576288940522995393417665370813869368763866994398608354092210205980173455133628122240890288392615970602928523895995241778964257813729106917911511215103459198466986787494608601827517390240930785545397753255851687775491620893666158639303845167886848546220214971515151477594973030192589774532315442614197408529462935971662870128806518354167809745114411564731241677572832163881952238286224722981886226562153247834624223134086612579990164012018574454195894429411118266766205718368788236344784940368627782360289556922519407404959880452400138868515208250655329395901447567380562514922958289404028860249546186144266189240334027451911997771795731407347375545530309428892216949704998916572470874979029554039711905998390256576623749735466618204193680602171202400534680380871681922755023586502314331214738350729600934242692946367231909886993294802545167325078750743500763400492115169650754836953889311190867513485534193462120875793502857494438820763154298015202802256285113597991629705422396877274919820259656652384083353735722042679506761963589359835979455393963498618377760112572004854788187812182224275263002483845211623548639507949794394058440044657968072493843061788852778403040427716677025492682452498331830551295393016618134326600849799388346950055349324153638901640788833234506941472640812868373863325867289814849333089168145528855479586708624237134515267654708540699714803212897492965567907604970294886327544734367154669256282026775414613236262017013288221700510487850150565598316991168873629178634820038275932716509152142806202383324087446022156492559297449412489134346176144250946362833176363050833019738688054998411173984247186644582953569048073917657255948309904561702254282218928009465086922954713386837767353081268426246380281837382659729575741619840990557094602992037127392486700372518271958375240989067298524271436697725629475382752792619955046019205499914383951014582345687904404986085880456455954985979355662022286668233387692717389719357313907199665433838617167066432249489396302153130060528293212930790069514726138470170714530148056738522127607749540995440582513886757935751505332233470704168385571333399723923837713293800156544582078419765776857024478921991398870620953653509476353953443955534032694355194968457102826379610039775617219565886702712356052786688983913442336005746865054851354454323063578329829257200866455154475300899977928637063811177900066745926719347657324005713545296522326471406919828444437293415287167683002282371978685529435393180185258112716526624485880327002941461343577169030518490003328058591084760291730511983740352890094082421944111630560741714996531863625054432900782364253982856749797343332792745466088313839353347822990856398455327453396649517423930407329978242486019688760968521526675504121800039979678677242511925879232769104510826327705097585343128976309004372799324572556417992517275737625682832049542183089135569253838824472546368282710296275628665467150897497418329302548054480677446752783041077588358393550529911188097456394249237511131395133179188371266538102068118185794947237394441790833010977472514807055100669434092395754917390134525293700765507248870491813739716254529472419776413850531598490682336623244221245499604428401296472548999618546171684094934971313837336568946456476218109012871468300523733599538386574455629599618630977462764517812427844090291245319984026511041175119357731585450968812904704395261843634951274670440191573284953337277385737126483936570302507253366626772918429708719501297069778382869042976412088329746962245523753418378224102671965296023057061247403904759406263721210498947702382663600946588490644024680231569647334936467722254164769186941534861010079564424286920205358557186923608653509598075419531917443892955370768649495642370313592433223347208456377589301586558545939279363391190705529486659369372977535374004141075901672761738988370979897664997877613255007983364291621550697288255198324044850199942977413425068898698375946835688960918533608776001510727319804047170712029039901162351984757820347437218564047480069546221699470099867258321146416454947344662760721399382534904414824491456610154276707529223851815154783291730919888199748149306888297182101789967829261930825371213363890960648830791239150327576142925322296054204343046240016558891941121220617184621001213215333446487504659879831855470328936555440033285183714923421551103034854863327399347947912400703011647832272401954947694514935431560385465957776624128453409292845536216984949827801704344789192830501232800079834213440660875223169648468591870715259467617660557151900336186333152352761138242871873070192861944096777969544709335810807457568337258445806909933480578301517118588568194264619379410316938559414669646110552706797885320431520729222988938057643150130852290526072221673216215143560336457436171405083988900110565719326609754420493447862943849947437996504927302361902556309533519790527148122340663593672007647098358191411396657267242492169391407331912729214628991432878114567549830274556065483442826316524667497912231731328541843837313999866054485890282320959137944245827253318987989059004002991183734512986223140358368225250821310631457250389330557402073270021291944320072939700242058788443341101639129996335965239921846741861402342287078528328432127244028025008156501184864634974161633177329008647785237063740465233867124192850159278600158570142431080521207083463566061529772027605314396189910599305045060247164529090448655013109071370730972187811013961782770945963871794167179844867939562791019962078809920008660766248146482302536969416021757337487594345180740368895692995130200245128956462150939549316225334937368362837872014699291555751415164622082742594046122505227774325107410518075522966988506174590911376832357544625619322090020875194101800950329204360548085758482447388550327859907476643416377665150219994822166929654732048218138676533656135793954551522337630046024408529704148250031664965578489514244870989618824202160271644698599785579966730363457247298507554893501243156523720579873266647200219605948004555882250992303739860766697378510048713832817400480877657373210821695137569028485547490046814977939642131614595824809044149426490203519173228321908428638293495253734943378641878282560369001984125950830406059523797127551596133408559344445844159583648006325847955071678940792064813770171693320981854327688599214286777977316512083765406483406203494469316980180120665772518982001990013470129307349020775311145857378640361677255633678261993906993183524685352815353807327469270667535501166069388687073671928713857027123654843806141369145218616054832158348111396389030476475561748320013285641680110120722590644814852207004956576140834869145614504213361112966814469933129355620450293249042238473623069173385037136315378953173980251997338806012287666917658552766944243661612257174228831856363905802022896971186058394201051005388738808081483580628222309636743753028387677691989641136360274055296550759573615391921197356873929206291156990394476782757893924743728787277886906123522111125809892342685017192906903699986167096765279795852850289830407993887031288754385020726472490134288274440818194098709923201500704209676220062157952914095784322031451359459384626423089595643578136272523261455854364097439725473597498562399596174775811563613825849793938935962881763117765554986081632999342760613976969979278897937628345551527141800818170373563545101846496028677823961107618321140593377662426072762574013124764456861091729331911055757437650764743986249649572664460063945947686628039082665965022642487069350338504734622714654056315733603931125463168407524867983143022488849169090354819935341819965157237810514620277413807646830828133370130732736670372840101531623368456152344184639098741283155951842189711137741540709438773174045643030076304879014477447632362508201160591514919553219723394655459358071863840817623476874253329778873743413155966378886781838000906170628785617174609640038535963606797037330178512770696730976080002774705976257134745815710629542173758518113205932255021934026274431483570442349927269913331935792115759357558756149507333562299061627960335817002144457194320393256008206683040991710309910579766785055569601480215864336594201588360242014879021048328751866473072063289503265141203904514398456493373407698292414662587693562674228846687980136598738132628631696296684371410441154851006140555004084577306172629843915038934228718076120788356931154373856490823586796365039558959057224109868665728554812123867967120992640398061840182675333915341669197215887232346624608162807812508436993549441048741242339666692697373040040372868333706959976112993272717060700823256092846333373297265939454292638377020282135932513705525754739248557588896756552848357938222153859512614863338780025896169766010327212450417501896001030370578910411304598183145533711690382243434673812147189842831293414780632992896297615145805375474906198496253854035505378037440621681133633586979514103556633649741929330749356313386992737921111588348164536729889144962667859045343050966703484171074546649550046808168096631342247313020000613621608343944653130576106268765619225901087911314917371749624883727558032397771976458783721008612801303383942201938748322818372264299977571901106811382312112528258389873596955493316172912194771079154443644613440994329408461177693071148592355423963319506858765706399581095141741430070595539018058943639107022382727129689557346337176733399115757699381207077056107755979795489141143704787052910481299531444618882446719995867732729837637493339090144539563067064929960573875099838359042239017651931584901958804597829752040817317256802045276535058455015691264430640535714666630928459478584603929564198833512405640494406979666344774381431606959816186190697286738139601156497969784844649242009796066089582569597745557822657470901131517570453853826570694532386124550001173372079394353833409108954511153523755887565744663557882103153511048568058052353978425854614922791925569353878367033198991652287598228911266102070091496044232477424229977336971523967756648526011720968470169264741885817879045658254756069925757878609776932051233332251035175703529040369291942712228936732647480725614915953348015733920363373317963242128372693373721782050239427546932830596880326645407398985995054290895362157439136686776433450493569202996670889125102961194174853766290195820740563132448168200996013739499796151747149007023837108213811001554777412329795876922486885005915318775057978851606579742601810736525451236145381136046876634934974651235289570766244672538119143512626728708429259921307448700800453348453797420351278344326526476736860919317364586063760398829325816903047109547083196181214903595966758234629576146311634425388392810903614636024451132847136114734718649917601137737144806072684094164657675684271017014628506644791590872294234210735146962073034593384539898514987006410528312913850502680166981009339283559762417038858591707849069797104536087978110827659782120053583734814894279548733449601152485418405846822193539313744299469021490767511046938126168230595229850477916675903985546585489190347790651182347266331439185833592127341323272306006244256255826390100922929933700537834402599284438208494914751847207057906358949069596638914516152481838958538697488392105830007935811321180767674216843241127724721219531060652874907588891718948265178191713635354408784534086282614545227140084734858881609577493570877615238097008913591628897059646087051458269705258605926743637311919047898770631852366736271157738998802481693626767092719375200573855205686295171698221779113473253107873412956111248019759824833828286344811697041397248233103999644120405952558653678084205435215226029279319759657029147485525253674175908969414300148335763009181996237330418186796142677918774881961128697465921892376821442888689909766508291086125210746540655026219681667801029922362479252882468744946522099117910076801212137447370589588326374312630295644823340394757638322194664747905894958287565482369779954168817637356325020879760455593989985888658690033295688480049124219743409814070174808302185671122025864888382549203761174269643213058025534962339989820120852996807756824417594803308978086667981427050848278651044755736827265151886242266598904393939712374713996816006606366157421568699051433225125613803149993010816868181303027694555034853373753811409025766777075622568224247914668651528393756394898832000411518446961086558421903527411110222428324786814229831752796200665729876753690857585009050130054409240975330008700101108703446780595625353559185764029062446260454458326119574879051524178714292114268732579244355481766166209503589514316123310768720822512673188640695575106190745097391890501638198884325133943733098017117596472002001373116831409630712054667822902186370217187974564869957724701053597382476955808612736023393205847622210237403172392178274019940935147134877866054820865366263491318810556307286921626122236960102073454564926102955693924260090703134078853884219044643754105116518350451684223373992967510386408031068625463490757611776864436561592687964851132876798759768896334285218122785671140715196263411432209734695915856604496063914287368694392116852134675399763903831820771128008156718795907542350535417060521643616548589767580304420581923286561336585195716266852257309967170796936637081655411802567563777363915070872532351692750804614273264766700919721648045581055860977790882394177679682968066686077964925917254847500962668714722582521889075919904855832332556898132161330022186109540770449233113619697207979227519672175724030850020293367036804893332354130006885809712397931314482763610433305313514130518067314504757660686064392721541885659700084238819647296622604748669349892591021232673773752661891673312658512044591717562069737701640715061005176255307250177363146069950239949451536943251379833691432495884817514610199807999214974632283501357168073532538865736015649368658175735591438557529484009060932655150586984120640926745114974291510106515692649892187938845270207733758874436962617808600407219965480233232769459068018226608041107935220204785677623342167128605071115488097030508836979854050892891101001413181755618386417108992663398095863083306523154000066882448732086151761544801951582459790333810417148177029576144803620779895548357930370047268574156183326075262034816457474133907498559056273538969834464401737691694305550627610661844200370605013849321342362159073865422005741327172023291580105214114234751381597699494829525752302239929363839207002321223795973329526805979773968030072364299100332552396652089646539920708614342575322735557054202645457593806141119631294834885546521263484618444912581092009863262131171851439971174206819318621380174284456957840547817406292843042491865115862278498916675021921294124862292853721495519923623786581779451697112068125915946560495476511252110831190899672294668272093053515896107757075862568046352191055737074328428352116403539956637018217095785705343420493931890853031988253093598313251826230598172697765751965758863155615004285099310170766981660569834234262260814522835704401560176342273958744227099091624463902492314088114050191387693723383480019181818199716824860908620760281967712435095925651275457579127084282480622006651085699933370640121300015748389147876026548744846084074269848195523073396956815792613633697755875075891786941672684719776703081690304003412358806833680769167528529385562864400243965171648462109570309968619262476171516746204407843030663002513128773204821192925956946804775084086404275827237374579536533649050127288022411690143879292713758882498313546019829727214172709140468355625178997772818660404787915694078222549431672142655483540406203974404470506700365371059971972128709871616820248653127290995836129793550203201203200162896614031451530814710223859995504491616264215200743029929625759359034045871859621612049771897624643481832593851370686616187399108631374305381331705516913235065163302768420200698178963741477719218266707136547799167375779797931491718740016934869342313094936012131143038480957705403327341242850502929738379641969634017584257175454335187900027797119034867894757850587014291810556114008724205464392096139093249413460124543841430949570970156663268686223750642845113000152116683217138693085567476840680984334068303838493409418678880122906922176446369348616320159121357581252297139857382156025630817953518033107068600821993898396584958949942712579965612223508252591383112317363807786838909236657058449106695487691886036434308458439526740417683573057190980220753408815093333000234351153571614257063290506622870735894964816635917045682976698971376261757695371799018677167747117533367584236254523433092163851781693000106274347301103957614689930968159224213846158499386822062210466296277649284897049272890784361826108832417016858925479953458336586392168160128037048771084970895289580437735056527396892907747256030810615278112387319344135330756913324013323902491973369286513262774654977625242257493285501539039788731829629850818450271985039186892309553451520529865506025137227225115512336449755410759061708116149099968590340788502426538862834874903317553443301952224909877267694321038295455736831661655379916989274932975087341007731100800247837824829175818901696848238469369879109435059875797324661439219391489784100701981687800658964147745300204895557675795543792700163259189802433245337581268140788365227224293039993501233398981008506621864165568724153667180924410982980700612426963816203001178331193430396375529341038022714331135371455227819659343089936003602698470054128133370297817488444377631484227571643537412046166367400308038771008333551924154098244202326512521449284421646326932836244990392183309372153756751123808303342525210352492203556720009538201960695594767453144210144368098119253179705203909871025104985794953469355125786388561255321598020635736063985938214495066179809828475225028772226718225037937485097571850203537136022880884506534658963093908801698345789361583191017061024143723081779624325283446003321779279584303990484086982617491290264818934484352754778670671887017609291851223623634878363536378616160060377646167767415268296542958728818326073432496655589259830401794770965506350246390334763617568296601375679625417234351689756673786612708245667925622832307862780121275932338929706759985020742264788197848678579143589549379619137464506838216413767413572097507750278508503107690565096806188751217053522359769654725802684035774506959561405263710108517297835839694706588625064899226316840879134780598834719311704925051739293326930173090522106960845233996220729306233577738458982702986057421806487971180344708072902486547274576384608017396967545154314874552456591554638813058289496073459419615949854701218047048886568031672428520088571945807561231294477476539917811098708417495168262610187913769291391235273411270247968124212738574729741733099247384664509832937095032024556295204838508632207410151939162150879236197117148120043578619380242978215824736447484121448291365422061816639701807330996407055074241446658208767966844041255261128726016590481012259702373225858416320639534417561328590272874101554231002560773898431722515411889918507000325240010062482238540235715262181624974805266738487431125097594620327833104534450741371645351637207509831475574344279672442895518148828348216803762087623542756289873201256445968850908992123718518723356627471753842801334004235004758694060768578724226077537486234972009177911651247302569484882832869686272848866222854532432782798595620043195348998937091072734134356195795876475455942557465173863878873565046638829075750638933060999380728314920168043287252189717265943952262911591361812472689005421870469052567237215538510879853190572787848335265717364489716060628647215003877645875167952726094567548788524929884289410064025030868369980332395687090492846439340212881363709335905018962282561089108739340200895262511877954887766930107434525194799663107710966658833037566740177346981366559055673865917094122981715924167803390166260696124779507164108031353121692042393103166892369832090405129660654819215788680782849663653008252600051677516736486918377549584966416327420870527990960102997932793820755968306430093162029716562758823155603578877373929302354369011421718178024311502308932402926749301135318331056210556787283072766086424753308642093672744506614058923018721590909954092153274484138866849277602724749212243977206138340108699224922212617258493756684386977094219376687588191360005483449987875489252804692892242562287427831033304619042260455990927552522521871200736984901750089956528058840485458380761114580569747157333188345192071128354753774161747907715953719985193865054234807081054383617030191132774909197489200392825457656038670739478832144886869080027461358013448594784447222712121816814159091716530772163667727791257583752187243497124262972641274973571847067694212355718508471400871011292812806472981245488500667882541256563343919967996049896629373359514951774172941860440800367952131857468055393982377220564063206040467281057400405844694137891474285932785606719780553015773843202598173268211735623632103829081401787023998550811066618250088473889261825302415467493382815126774674576946529291239763109701327856798207344673726508085693712131830627265316659856988712514682227418221211551241451807059423103873819399525976749619308676869282347392461688741387294275863282648345431946238521242480712958514318022849082244061392695786576291703345805339334296410463081431850573159498934486785574619105676525275928875808801751311245565404468753277262833174543480643006896664849824969421734962201322683740540891153561347908971128881370321395432197742687701882184806895215477576180166445056869896986783427637484510150788787147108452577361237393230939843498567158989102703696142119722689810322959562650817110076207011566359338863944174469782029736588455126169813540441105859348586471583916874184539569998871709456710889304623286940853326666598539690148269873638250913062089018204544523886289242645848627228814326603013527466644178549203308358970794447982177835686459261355840503874497466924379233517799725327497871009748737300137219157524510705772192370708749732728003484028643994241902665785894486290056032444755756185542616840284620649710821531040740376363030680774115506226515714628641453781975633846415032533204166668267771390452077742271886348124844978158570306136576811483716839698496372674466009870817591347006778898614071597113521387616705368321675842677865449276217565304600637403619505655949027651422442178819340406896499741041399212457215371255168523644352482625454884693328507311628418539848645416750757836119655219099508283489227940088658328088116450333610528259043282882960578788600329172020105932592345544025878650727459684140616667486968640890093559094581682246752119038834045817614839017292710582417191275821498489259535362594188086967243149986751236405180453089863777783341341799522431130142287269238004224622053855857310450413233526744884251848834416334488507781387983420367364971214989761033792191176295036283547985542903771664781146575355293092663462925548451891484294736997911009032645569401072532895208298921508191101232751670683838052886367794959917008112923494569365348531675990560004454386171370209684370002042766219058401972926040746192141255981420075049793585549448269726665890578402298448090195256625198037831042517935907029183395674662356356500499154147984618181255574773350587107271390509193416058347196173745392248695784781487319987640699875772490795419587636186752041312201758017726344320991294496281699393234827686106860645127478395438660887652554131112090819771423347680743828880609053001917405889426563286486080352440057207077455450624987763918637689726210018142810014015144411284486370938762694231863311249628024190689945797019501091647533876559315287211923573919549346125075552539569010064407648770070571437329220784989436665451361023667570555851280685153923174766708292104178678098440803537394556395481765620926650928782840856937191950245390616040107227819561958633559337026197598775846458066553971131769028153904377350226757862614898835479457158157449876851069638669989697434736876821500408744123810780485746746051574878906370117419596152553941507126049248004876536509461419860945386693568513801758716350721623381321302138326844043905726146344454986591250888426045941669596238829138913083349468510965543658782914784119538207318391140850591806828867053445059804745042514194211862620254236958793933680028512003084821570469649092342419104183356452206976463996627289622588440207976415604790578301753638491201961481864885717654173630794345108586576504214666804402260948739303020651535534871400245674477183268739524093236265831013170786208316534895336047285072439936805064406148908735860144349537896506874896514736726168682498552176018582574318049689238429762965557032266573140008906763097102645912086915151956193111035762788473723334429973727362887348221238001539054265088544129037088058929251744182790166174310103356954627679443594083437748664299822686414789493200473121135483130856532831580230836038132773906871079749667660165491401766343600035524046740350374341815511759099435128398200775226416067797989455803336179686362497408895424254493250764619991352485519440138317791970081633947671771677498600900311569466264588386925314361445593569443527308300046187274340800506050062466677460324099865935540429929236103220484136868546604607318879358563909400411197228059625704547028562668330256759237684379690701674602536660373921555509589766936366341065718415627425264280278406970800476160801781626072461930150791411591811993670552941994294230485433049029960125695924725159928752242832123047941116689972339989212208916659395258001476785594241912566885668794879830394603423923905353650850934424651638178747877845628994137533954336652191062383312823382007453444079782203935396143551010399199770403302307215047040810537738322950539028477245782372060838311962030043776157887415657880628643444932556232859623626893183446270134222347486697258844743859956597777931793074378857114027873067484192564800322547905648933318398728056661154254312532102405211973911667553533906983782212565748724958027140093777437259493171346349540898334781341155898768150742656437683180662955699290435852052413456969251670629431347115931890190436233918230412096933339607229366483629660860837901310310544898923313032796411896508924055631808838465954284995412334048448261352531182234189906476067994561592625571288023254421680776929869045787919303301630132662717707505991083725715176571051812221081191031619264066404896718006543105759032149356446790637982391768594963330729053245498015722188149650517332623917260773190603843782160113166551418287166148811329028518532022629640454276065312974757144706747441335098837310350880561125983489833777885958709392204201918428683271651782055577460513347475533969691212717777527405631168464932389442603103648236948966134959408971467840291618541063265261296011506022440904899363866899173178058264574120035986576508084091989619744375947586021283923290077276601868768580239152412295499920587108905876761817923269580955244815051017826339425432002414602874949849596857251889331974087315584434389792178401464663868068297460563766657515819767405675691849982665120293662635453454759108610934590529759212049461945751749808204717467332393048898686079595580652376622838464802165440421362266813799845883196186012065747546180842216912945105974068064090603782211371049705063949008653027880264229113346226790935445918815717140135483930596389964325033201753083346066816318847012235707551150543169415178114929901714673375811896279378555931487101585516009802656870388136650781009434532165064669837638730945182910422392752530864563250097368796842092921511159996822778177819696751825096269292933353800963981129201361900710352454177748195288306512864593167823989765937332798568966957973833901648871229681833734431010783230492899394856794588020842501250130748285519102990931535292032132616232088107490950254691552865615245050031482957156462667610913648725731192767946147775763684369923238460793558881252855105618941424960063684293927222466722153368468666223495955917551899507451735238943546574827957884621159357876522688914939930671374737809549952271667839220745503280493838009142232544607942202592765858220731572478743673207707460715558034862342171007583486489527431941888503842213951578228457778391994276983572326341491104276860876888004485060365781115136491284119124847073886463547778818349496985858708166974553978311906893888138583804163891700173609778275810091959575640723556827308972962099359994518097578110859052535614824148677052509503112262163367146048681500730036282405524229294135065004844518227044691053593420514216046314377760080401102154642548238367084351105649480253337840355939352410773652471570795600488764864560020216842840680691205484683373634136809831508642120676870343547816186220994722883766510215086043536505353527946021090747441473924420066959501831724280182954804771076870935426748812132407894647213989816376389353106829294476571082047060587746090087916175432403617017203788485556651431286421556116021783042518455276272258065141432954488516917017797102553947404983238491955425536525280533835121831889697871008081680237172195654620947811003741983963587601874553840057098741927049614819524835428840142812683715085366231347700640748861951308183783788171991525682415926107898863141762187651412655236853694600525025225942902631151186943288800284113471973106765063861620607649655170577406076989985176393792888211550563028982829835126017133189822021905240330516614391608182944219652820279872867996536645784692998773481374395660076492055735077885847019316747784296185133930442995347982059421441395256869303008608532155390262318024226767956335397952239845584503909686480970739838896576979850514422984000658858333250845208214420740594676157543296172356580962289362118356954933673477012281527102282686405384551801273447266393673014948934994499886042234242387283349422379088766463821089613464655046567039497809208989947223008428760947561313322189900683584434263929973813767868619929957908294592178184465711181260966075176833049796102468311564122657980991252580736856426053023897529615885005003159957469342000769548210673478056265415322585425571318186372862533954565103227608121958037144580157713519563485099313760225359579259161444107235774786272694162169609695588718028461739331450633865252330286385285936563689206511961058196861509776078143032312749166036436710564113703389677302754944816039766504608327910083868292130707125354709836262445097126616770082618705871230340181665392000420887428135473788526252577915780061617212150897334628313775720839158357430330553318827648659094342575856928797070200578841778428579742204243756520719961613751437434759208822301271821872174593136350541242048014776279618052963635167014108742758016483143982561434571081328371271433395631801084055148568092432910862200432167071095075375574042959678884541863697582568667593074387480106361380690629229608551819490456826977164626804666865789486688193713498364787530318937762853906459403095266359982455251726064343961774648278186188575868448709116561446629022602361626584306069790421055946415222933053163816947363841404035044716656732745587706231324730471276220897651547957541769530240895282423362523756883125476705368671554968637613552629798797425622350861240019357469432392768659901435057740815308585907040309581488060170381963822492654241859177730997722828853075379567512250802272223055768657143143408329204371400155943403743432965495851993690761746267485713293023577193410786101240131046168583587775595265561364453898638462911588936890182093469975215452684646960158537755703680255938433975216534303940599526267105761751668508852562043233799974552583552173192933266792713934579188934452229339942166354508668911646135257067971012343677024772961906433926916402671767912217272623210140166776427098123567007644196074332522694005676799804996921243486168496763535417272712188358273736298769286798952228258188973105292118148810465166766671197033298188836029550050996353643560721284164220558958367331860848035549024478909431347154629581688794296852689867078680914746703960166814850085329120143195010629916047996563052919156871368225679085018238210531555445249080174409773097245317162344748306366551549577364422104486497284649134180761195726796211634486407431982177527962989324469303150863622452038292400621055997179665486821373529045237574309647843514966196606776466948187140886461144494611779914208019479334312574423337241727516106460034278000492412409946227344172305538968078016525555669916820350825755262448153419494464295091180408995782615483558876793099042801251939110870883190706468688163566383016919941320571621350097499077795195743432316909381733245673681281194656100550043182503846959561203751284649562311749954711165111089017368314140653224798599454431278136928051450383255411058215270470862908713509697262291862190832555256207243692388869124450361779772767894511842797953881251823842065300629136421958561699508425415909989801756472230771276552842844523939053902287708165209731581923289231342447296667388728428552587295429067684667193576041575799050551968194158679619486283251656042647676770334476265898686643502981365544606985458964480695621856766556228518578408516669884924598404398166596492039110659590537744723977070649399077457325985945677205222291730711171896477714849981357927852533588531879367965585020596374462924417044518021982135101807285459652092486338974239338917981072329884734955157440074138914330249048241379686923205276353544857357986803177460976646943396001062144939571933727002199798500288971389620389441887610904437203466881177996465946485823992950657989825679523213626203466349503790453184062800455509161180425378604306020888153010268082229059517604194847761656621404994595571795978586736414779415162608639077262105676948291180583995650498251339204572770503388357818642269459889553521932755127669502301512549601394504496608124409849537102079722798935288342240878158116496296092431910207869681592510655194858772471346381336777951863427089256933736515280212312274153841770172578454539308257320153049934737778690439614250202142011649012860739425268850838538628636022559615230771690245465560529203637062673632755652759669552221511205621069314748343329994628210740664716897482139705675479981667747813851462086026667914824518320004767570667442441627886622032067980809784748106438102355750724650970408219741785134928703757071133440316324039489366840094189267986929111748787709860753743185722747989973824333836926523916891440029696105793664996343311953452307515705280606842906111887472969894898209057693502319393346203958048528576816478656529604216331725157053722852003845031734033990604174053633606214945643769468706195709166628641984748759560445492513302623202367194050668289063809200362683355057967106818670415990952044412133572635856924951218534764124239131779215637870738144282860291177000502910731688124587799596339468414991704195100110432764946049499884307936731048300060298879336735720250278259982033204219230997112723432010915676369572458781590895069651519878473890970196312231953495907030632495470660534367639471416198758231184987383759196938586394900358442707282905076598429081369737504881249673863408255146613353294726471572413863777377772567025972614547879242504538652205475847538729541066882497425859765406998461398461845859269345326419046180045894858931718415417937432970152553644024761454548514659806291623948521461521876672491246871615754469742271479349199998484696679625708945404598149457301771889677174349988484596914897226077652420244015146311476416020661781555290133907505087304517184516869950738111224568789997308828516807066002771322578824170571213533368619051882698512036414942612250221351962362753636043963816284616275195161721731447381391127143633008802966757372332521970901818958287718210265580929506689585957083497302154515612767533125159053767312856025453014296238180092540368077086347150072358484191908925969355765442277331666338661202813692358510434727036467066989163048740796306603417191840805406586403757389002473911650392955312881491873830960309365736034293722508646741493318275471388780859194795502495336699207403684041340894663115228794763660946935103551204596600053563933940220283621395183261188839394280954904883038968137804285191977601428597581118968082122909466262296486596814215751723550827953421357723579655033412962167071879473346617953294904717977144445634458652431380735546133527880558368663387345306151769650041119859058036533690781977442530238238806753213446902046171650713253962153290370333228346236068563245396523213993926964871210236173857179720240597370698101565268471206815383556081511738521121114609373584056483457360025679923412576599598576315114990819479296829307833826708340431521275662058258147323492191652859124105833378850319785421646793801152322769043621665460034376457921959121945916218955407572456441613635029656793562610740862342637723472031924235937197635396113574459742074275336300786259209223197487310694107497481194034048270194964176617853349331290261113523087076723081107603433228456877223813193279480036841051273764253626606694154583681209890400088526086035453740227603089825537741973820498393200706189257820281712472192308046974836868129864342449606874200635125973736846629689428022385200933524266619586417593496086782566673142466359478572238248007132100000619186015837010846701174724592638599685972473153640140984354299966207420261641663038529603302669943146473422807261462504641752379039364920633024602589368876802447182152471782048871010265074440872817722378368639011471541695004387604352421715018113846192804028441052754512412259438526964386976553132554840823539684148814925722650897815181031724130210439111908267377283457102853910616899042107688886969586488290424181807141451033854567248084694131943028799807900215431568085430586658175980467744068354106352699290336616918895219679620874879326352526918582352213935180008213035698169369996060678752727413379292403561396639812579731290996251095163223457581554346105125786243710537232665561680075085871475112254852992668437079309528859758355070273591266231380057644314848934912054058623615704796055000990485279687351570116063815184881860907919369455632707085229978081137160118329522710623442518842127641007709765749982272854242883272869092457927352113925594419768537402122115814242079431061255935293309181106498289533111934210284706349927509797648196988124443551782021357060078604931362481813767632176400157474680875119014735868565543742789122926282582508683565179673641628923253385469688907245028955072908581351121404681621024781537235133799428249227438207166048134595119781157580702765053254431387851330824094393454071115291812055380412790841677603602479506537389724435987167783518549957871422328844357048532806232029914837140363444050718526496090254772255920314893217620397289780249899278614454794725146054283949164201764771608963203637169905639317590937405400765083016913798409679594543426722391387258241884194349922246984775814840516776389479984252559286768346742327775525667971659173592618826847500660260964771490403376735881907016628388567749687362015197752207126811966756185687787639295845977422343347064777419175677781869845229477763994733963655245699273743070608607179885681410497872089312783112912283974369515218793048466053934693262926176178147068035816120595053502465182991036278521388443274135860944385761886392280880457674652083884484727677036503341451695010945911821898806263014884538364420758576372980774712147316790251697348105734918340964431979697859101424286086042879294652245815749425287973777358969910422169306864201119933860532440632763132391423380969616343956027969170914020440823347142420582482086216966231951774196874198445554597535129975248427461981409111260598048682057567701261204570497586322115270879460577107798983592671882249558272580918659637531435825760461024567425625291475579684392400982616964706285434843134928979279108925649358608181201805937127263334496317437556014947147750613414269294389360069464330626758007023296139173918367754453317883965337799155043239426678116812846568180414637646780505608918911617813768101563314167540576811934788443185101629489230226801519435008035125151030718106477653426114794739558534939420092732729708222669753580180164725879565405984822573987698658262793774398351133625699985425450229032623985985354056430750511646684608802163883329869577946249121769125726068893367599753081575199747069370127198406737722276722582668540943096660822841751025941016369582921163552121445111043937798830219697881643239728225904816276767451571169332611166174079335743163717678215127149889570830008564475033513857481395663268439009830973746324910680390867256215125854071054096176671738032681091064825727990794492021389093237660854317790016139105055656545455620817134529896321604449373304792164711508183273670713806734509586801292281049093010813959900330593162974802846308872502838959132649714554451581722131785616674309053843664948641918727626816240799372524818490549357437031913165463657855346650964158750688589900550433772341635095386428003616191720588788355048971986431788852855227715912576227437954867714938641765980330351591256673563207671167899539814720100195377354434515362664397728852114405389089364500551437831042310302067046963512209741858508302268997506161639447892377988882092095427745954954243923749880361146302006521609769681953346964780533254269245359806959753594519000465590693273931325481283376137311908538248046520515187484097677996019938120497080209369118346973619095548821470833886300993851517345181905458699261344823882265134729083102172199046154586097592719420451283221844274313357863335245177876988912112609977502985065589519837475909759887151712684505119165331538997011881616349594336321516338962439847321532246699621136726462565406358137491351943798755867682102911445509127725085518817896584639139209762688462010681202454610073574366433378915910648472836943855338469438047366922069066993573759947992222656498139709882674757629967341135967233540050830753917536637153655979776903016227387142102167608607332302755156730145180354726413471403355108733999268651807553161588218887384172286851894053084203797438154371515096676348833812667294527064597129164144374212394370922642384599912475204080253467226909055538662918681704702790147411821481857978102158189445295161038445451033479456633646227677363718505298417986592987345428601246375964178532567769145703902577501816450674657836072059715623379342224978147409358575679918071167943822846730931692548016621182522896614734780798805359483443993436338972233010601641986547028411297926606086477248671561113306099535975729617214362927634559876397350908708689125544703982848987595494097298951607452035073258333994864845383430424164807846005326435907113271870259204126603611011524168245126585949389062735278735633885554391146254865268012837217251403108851590970062174532296567719629826115630497334819657153081870428838791325955228983895736816197018098195346945792528517483774911831816289235398094392168427166280066591787479117629204597518205815268167815989517596380508800014032344619886148188511276006112479454744666448428676726169595447252617195959923411571126987038938992565835111691337114801449290848879339334359698290691806917406139729826488001908188115024728152024886300637175516828082585368782431528247852326921154760116621117931332354797601780081282771366092593794503681266213032842822442495778445233554097897806049913590599803230506593310575333829434297167619637444010893852987834200767922932878791753616897888002839364819152623544182732686801932425971758477822789254487108192717560979505267084520949904387467680836254226390696771981381151789769687618315039599741354949727990458480545807552676416513734771748835143979483286501784624614409587923240523359758194895480957070981799856567218391782461522517038035983625557448501984150546676601921370423460494225920473353882292819171499402686668627448339564042168451138090343315841258885507438104465833047706253074702884168445934108600450720415719101026174816385637519206548060295672176224518451317299754936177089653851873984146271249530770168579082478003298971905432465763428424979613613232751431874563710292973212876796960705744262889120377684592530808573520974750893546854444634495749846532540456271592528917835239317180397611150833673640203111399925359433722670917019488334807147293809075158149647290350090585292300274532276610689942898704316040510048975275614484137009013410748507328669882954451038112481169626790555282217987828005380987019875323651927577274703798091726697491292113019689832592055473684983446872734391776516789448515150129089795497816759118388435642867373117521645788561934949583158063469612853509396794630917268797577521061155898609716256920090590775906369878871935456129447932946675323265065577058736893333728934969018103356657225762111258561052762407906730416559026660041825456358137053443147699042863154473692407054825363264361204398250668002144995643390409081688102450461586342200683838382004376287160285268751976219776031751449679782450519578054631562896968264619589506066252222833140727537118921341876612207079200178156522776151169115661621225195785008769663581331858349908411233443180882849453513362536191658366906691316723400221746637526861603844730385182094022308650250829753529094243661897309788261447030953400896018857052893456804155397755127769108575343700555354863043692551062028048134223009859675582530710126845380593896248221998643811633879542713039262249221970560789041899207997045121573920541631616836629476060662126229377362074723646638873221534713263707919836694987010812044259891263756928776829624149831922392904759339290355193801568535564315758450488484576450983513290807603014146170660494084011649305076519739886823091623656034438435261413684634587865496343769007855528956381709384127632451867447131877676605218240273404144734249483226350495421865426337319823069318096888080179280547618125422492439613705522766438822346234581135983458803074811801462113811392907572054885483784371843946404226316180663158147622168033525583797569376946405331498837469030999645998308310792300034648437855663869844557708408637682070175685020032619971570481103907735867201264837920629975849491484797048506676984982150790938461541871196459123121773754531682529864766728391228681059230258822211080209113244639265352482404884304929888203146519851090729405428656080686630844951973788543058500705000838906522392053126085433483295549672989485697046462374783707035919432929441699219807619787345359529466235671863766287292619284770166227008362338002254939137384240851219088940122555732300375381727333111062932599812191706338531178327748726159104177262777967077893255235412157672943458245050689494203663415508867947223438090136522515404194674346592907328668998418532918665690342707453322651500682042551138571203157266601541417909768245919860496358638121328455286376658919611153720199586171502033209635965650722188487318003239677487041465994285164099049960958095702928655696283319717594563088192479628274783956612729054206643910378688691093872337647001539146819780741059473754282032373391269721482372603543130718726641265375376281473227527443696523073225450515272937087886588466941997680852683537845446728979605152686192671204032310746774487279904575042753592044078777124873681363648706488311522803231101804192408021276231283606560208176085680674657551312139308588510372373215442949629839077294993380958716860646506335975318562585076477080046784284721480464212090222564423971335581001103590760413852690471780132584156098040599137069833253772907897902496853342101567825371160887576541852821395070643040271111573015806410951692047812875207899554185359867608457549156970449787144180734575871074724705707526357989583501004506466903549422791968324462958566712411571710889449313293525081942366185426843796756121605395691333045569820589114752943166518692655026017903323581447024700267914692394409866782724737871498645821527674168404679528245387118436046276365580430674704305101361521179398289188506831933905514324138240724696687440142100295306010250653688619601400180631090228687683755118676410650547060869877639373801411100597073978922699176055444145474831239519430385044211960555599664008457287949814432503974546317513963819575917149781462947812016935723581684870806107883540747459067609683448001109634790810604817212910814343717143936159284790619079262408545788838360151233337471926579663959476272694589833314427728194231414749219054236073293959951599769878256844984248835233726035448861077630312306932636127810227769163717575874601745287496813203351121472624301731232103068045139522060107777623446947867800062595739882550932739716930600680550951718915634909951535101509828922946974031173254226950658313228490839658650778681498202715287352111873744814230246739064751183746675255247121441111612209629661610506876543420632341034895233462130590003544118432821301486703257966724996627130804907326918153566486159872670729947470073933579060801640359102729977970312486497155644524828247504575461659000609295200223567152428161609820612156017980546709039337639163867760686683588899958665807803901743650021977740353170840147660411250341948213753036760817636115913943022374718067860544540787738795079385580940395065185460865684343435942212603995749750103666997136122470499270399665602218388165690741184441119967753767961560083920154384387112015843533438431567429147372056140135500615331636400691614400969049402477513639058609404327095523061850287080183921558368230486430742882564242824425947966862335373906709978198592897009372569955847558498779041701991129167769665863681960817655699889299771330119278537469208203876200241825645486809944646262589105184319263087753811015016173929465570171267346051252398020232966871991846335411307076533045078768055591932459968530686413711292392293952353176636794568735337287885044553668990394575322984377542249545234331154032298854042281845796150380167315805572080057779624673451329032619492726204321031959634671190891515389426197925682709608871004374208768569580516474721680928570468676343386057852856350181268898225615833671471047888331647627010209222087109036448472578905160790236785808415455064323616777717337989253251392862034676907650382558245859765943648759136603062810181575911626528120137442322176748346457916578219174221098219352274916562490567915980120435974657838752372711957857772654024081623760205298536834898918406694697177027815863042858647292019487937345084578608593163716805365680094700000521597692613730898420032182538359270622537235146274066670271892599532040647580364311526234727944672240957356787729302973001488883304692322218140398181861200566498339764868484578023939791187444572043401105991127355083346518929657274413382401958349860819353322117205835922674467086195089096474620807177510628628450660830858187833215325045992865381399481655233894652537134075794405039880091223262723914732871253224384227356417354684875013059593399218018903886655395329186349881949133681351551252983954200705862564893453770697698329069989508318527382001409586405793160669709350803739491249168364081817911654647025941244522876981900484267364865365365442809983950809151163604828365470421329440685350187713087300556862659206723434445554543551371925539964813435670564694378459103411177796737772728431910412054124033990309362606669653899237872403552474674046466492601737454379935508042287422993190604670624678061425791190474289484567880057307615956518608573600990399731505718439350742729855428688355351586537120840742842537011582859275013206134287667058108609969123758888674538449415941968885687631537033416161061757309224010002707115004807773007920505882065449287560392729633452366783283302564917023492598579975615143868259442683298292789233366775851740931807030176985832230959773317068136936153336669124216823902250010202833319658228283132850165925523900427588408937853386944079915939455279419554343469960721535247931827453223461881739809310943097150369573063568606825780487846807556834661176914610551072267441173958889956084662000702347410935509795298293596728892066231848429746556315938580441211646811943101348054561117296916813158255697056304770286361600846649993842154155030844615582013288170180374182879834865384808302665145944548041922046948891571055761338365206032592206022578665126872048258444381971351798373734175038382207931410916744195404900886657468689173666649085802585797794645060154401947973799091405250708577768979875522704187450017057897702061098030489752478873350785292811864038442719595305691443710944193121967351791192678937359710475915829182212473788496764536830582545416404858342266008734034051076376550687837242209042305165125373535862646992260305500821775897062206771891695195444934895536022943808068266699584251340236266724711338337174368319688580690580645585736822956778763660936760131616758801032840100500182004549099396790814600822218249020865106710385933857959794697012160897952739162919264461028420675904284829898999831806071097297165937442534912701571793128219466088015270381284221518549113080049490940484874994073745322249926806142049171874482136714048606461089543922529106774494002080038545902501429066668435922051021438980309803296367786378086305021976736648387048020282687009573448961199936950556528991050599670526434687961477088277041192082954862741707612527500820025920227906025014674289273889659271475950700273327103709284267104841894427321256495441622375601276230451279076157284625983548854408545209023533639630948672353760805640763481856959601819814613372101758359689457866243944770536001871701739335173733027501789903171009303505941768798426832316652935920066163843822228999063551049078193271155625712858415847434817113938666913361167432860163278999423658868002625690753480309172849622807701638854974930946344214783871284873663095848928300024951983844972327630919236189875839499285026786203085986467702622723137501841251258828435053451327640540872436764038948160621302340386959280971028715196744310873537829423091578460050375707084619082327517696051213195991718709723698383813573363317696999919530585255429270876190260304699964073610120104192798372622699805737262025449895145214922694246674897931372469328244944803004571018187165812962418702767180520360245061770058485751166818784983838358229091415639049761962133067388682569299483006884052157086948478137082993368037221440328987084460841760463870841823897083932020821530521640847352304785831247168867443158501673840206184709162165078488589201294490269250308771042723830440514622019479411235491939865782840153530079991807018480625279916134467864032565034601168537047286442417299603235715303015971635499627248082477084026569040017760685947260877602932331225913936067994374623648960311699862493744346157625964497350776171534943084885787107277831741370589485149045068952118699594112704491166900098927141981521536047281712124805334400845089212633581981090848192157270702527195672321423820089456133981955524363279374066521848948256201866408118348248656387594947073741068200020172978849803851795806204853769871390212251133948631920832187821239047658875617738725244920746944534001173322042786066591441967616313243165729095804238273312120346429281513522889612216320510669244086550240769723518793065990664504509475286431046809189840076114670809984902181158017258281716228407872007059038525845646894351359388198878302034283214386791139086317362858549154550937139519585190243174430257011867180009259411777976702302685665328744079278988396790772848609911137425064386219914407867934317544467415774081004006438166626583089517925083523659167922016185181787061637208062831057624234420750398397238797098087488640682941680145289314385208414732906221673710146187418785557996097698652737507203170214715681761626317640483684353231862488405456675198741818638618052098893171125791366190374652546565388911774512683676458393160178043385438425868783042232543881561891498501629251771834655144116740411047055027183857757453169090176245557894148615438522322204270588062708501120626862695221304493347689470109112194999873292924891564538567327543543445297412700680485037653172402731691054267569716352765591585505380271955945380744780095578787380731662986514864263932995079729822599223358129978293213447486708792489093319772439526090448525443451366292798990610746511626698688658313617374416656213331804326819253506245535559682044948148260626393847059536276093200665621426340322641343966483693212976664237831847113235396556229910208602477208664037049559311997635810728599984237004567140421830878315881428630841457232456668685880298163774609262289527113290389968875755072154638649457442084550813066341969725183441586784882159790564563659452923712752841145256507159574171603082229671478579811532951408574781489534322587141929080072430682189490687766290816839740194269237359337674517377218242395555994145330073968010149184929428625096973688496585337118744202750865729545025053902489437129126547560221933263487734938483407077673440270781091070630894524841015988329862617800444873509243587781631353781669313377548117914200147559242746892320166966156683205097370329896629647532924423211742489733860782154757630300599007320506443626845495159038940298333229035112840323236396586243146291452175467942016675049231169111125909853723960469098555323684902448811282976431901747411764814150535909835736931190417216045976857465449172024313931768248276668282135947071554926442129953304136857412066018895654383704548737990502209701373947468359655246875176960458781560891166879354535830129393389068396623392294900727569579985217899642800337964005426874737943985962057251231073363501314947525210167405908855086151314879128233588097889935287074083459078946667252670292371380024676045367928084822453008223540048444749181125062831218018606842738188025757035893677961416966247107549123453244618559988667050889607821070961045819289037363661467046663365812690757930447094010299888880107807632660557452274099935252116960989712910504790067308435041020798508416678484184485100119967408892567350510009695128142046318055303789205268385832149798339349229608335054780298185152800120995076593297937365348107584147120330968757463640665356354812465607767001265749092840444395013291498784413599281235585012405374103843816896542271104983480171808034298144178186016109120145279650872749535854351130657675281723166983411312078410719556584479855587223320557597167204198785854105018005047591259171866805363926606848693577159667396436610142194914552843295371731766782334568141045239926762295083267299466884570571950974321253983647972602992034083750713425908471272103872956014797534023226921607435759700343514787489805300768756866355739126210853154524192227389049710010665838009698414093271858380071257365762353703506813229259702684760635449383313039661000176801734267140456228570086032823539735315537010450295099322189560591375265472669601103564249240836556020224462822798400554343373410978569017713532464993504104692199550545320564699019631240611433951854331981486615443344590616497433633828255050914958571707707138052495530928935644244158258690222306171030137586556314515899246593967271127078987998057255706293470696143230490904498049260781028755486937129052551706953293892392158942866119557407113092009658136411703088301490208413202723282553544232088275286054848477006553328206254942263516982755074188350128388185209344921138012009593777902536846801608810023517576209230554070387565402311294720622884945338290940185893065510239479547209165201349418550252383706686918961705799506591882202537187984542273332148262746186535769070039895290591532605148903651368600091209397915155268569881834087728637412829832539351477050647566085394239550307606903439850195574566271038303555711925671107567870986411665503541014489725660776020326835053870061340658812142229724881624763648758096031414447070453248091237993393566786139921815255916734967082130468962445905030447683626656441732918837400238832290502669161396384782317108538456095017148998135993548521164716537650034232112137559866228495302597275094285543960162175255682318561210732861392725977428108945603942466447771833037271140312655829910597495957331416715416886843857623145437015249641656571603613328683517249470265524534873667296385287018141173711907935284519201916327995994320029136054484834527170677269148993003732346022599598580825116431435370907274373602888899398773530810688114022181699289250895305625429342273131099025159805396345030935039240257271833848704834853268020534193255336398187451439801106584785040301779746299462059491204490488672899371830614917999931835294357643723698666966282621249175673969696193300700274104108488999153471042102157385911784311653984648250288789087736311918201805838395076802239685339171404953605945185540735550223332357149922201833159487693673634600441306292617298255989720589351393865910798758554971654966681444015999200137392792314301002029645178490483535299117330570565268343576529893805865237742990216359221525222110937606109634283941231226258764023749910499631965264099873318261884110568476747895294030611129023475793381011764764062337792692528789492777569514955356139549400274637188374203942147559715135188102773191443628804648070441807565006531148345393904476387014474390972838706139103089295847688332948448335814427389176621102777637053267241979792712041783726936028155383093019256847238107892590118883899618286204490286751055271101552774620451604027007845767942413087868684600569329097856328510723000275008407260998156235314064265053362091137395907306531753642567853911142674920693429971816317798419141448245363081649033639058336179204121214979833302898101002753105146298286763306828125603151595449736233806950927954213080085744620608652325319495414424707234091558721342252891208295619559954773859202370274632805387036195093395240731501848810375681202862884451236400462963326346645502491047001870389613736478217295007421153527877579439069040462116711303229742553590199897982508350523986708209372514979627979592647302137229510371240666655916583071549969260366472006022530788051565776261366078844128947230575244315582946317294088602561192850386183125453101966018796484098816891283558937618698044046953984013369724331066835687956040686455773850205933001377918002929953279579000498192349067713623564318946794910625819822053657541509361193006750680615462586215729544262227650748509884956624322202835384206790408441428972736910231273280484867835840335854670024375068045899959048741367666680281014336337698485397897024545676928941378634467929754641161016957436850161941463262430233673778624752610824619003260651151089463371168871253577704906520006347613111658395005476751411218816670125501912796864188055676786846342684908452734699743252388885555686367967892528668226736400673603346927276740859007106590246899902214033712432668772058801717262556737376892869071370276921136972878906263926654218468541637731673258530099820905591113979191327111976278640303727533359822413745292653675581080210306128206073743764798812978665583306076969007660895276335353480126178557624913004276124432498598047584574185848324151755518935188507243035576367997654155024888038827398078678075713978045762739753330841955956938550791378912725175977160122751315390484328311165604241518367351971684522012505585663727688158701556248282500205302968697371879926364777569583613920899508669521214463627703274714463915949417693656702423017211399327242577398663904710906604942451452998578906629853043053694024127726271633053257551910023322613619784128493367376142532875654316218150547697565514193901284266245730067187348126999658192346142914562695635064925378411368455370901928794796609269721818866722583002365460915796889226450407771544713272977100031990084926837253153294223139755101177690610033963915796415447023635192390723631509697077966169320879330772362103608585734731095006839554129347121192774989494670000618461001269119764637970957203583197342550701840136339631490223914356064697040750659725286226101455417727075354864882196362133767870414535524031554595361533987419515999155431783614279770987863976596342875070994002003516565632842108126475986721451270426429194639263952525993838584512646713519580620703102686016848735012495881232799374979463932977824945421575950592793524709286739159827164545288498596207306229316608110799617448481003831836418279304170801612752609425769722304494221568749689259192247202931568045114209914473102295970140393553270201849256306723380375169701108085576694637212516871371772273966113355814797991626227477119259885461988995983987970785431285781323303004535209943147131338641021904943186599426239617198455023158948241660027247621457182150282406101334432301655422584312811013206985387139170504333669827723781095193692067562957307135497312175430928576372104897876169412856229655774868600461656203099376484550332457504069893219864417335492817789337939314253259057326120157317058751557187352651679078863610775484917074730696592006494153458080504730162327295223125601695944630444638624790246906576693955405663966821696560445880969763328441743070103951617708305682734107161622566550061752133087097213991628122576261970897189480891814622858925675406950822329779512127672091779975720935879277826051349191037651778661818809824757600181665730973501368899846753242389665016510001659981041109041451000276502231955256379935692379365381868382188499665079081165794022214203798947722014860938013135447358440495579832382272982090389028507307517770063279293216399227896423817052629005533920303667958395873388472957173955688352350139774197165792714672298921648172349866205796634038768394386697009362960854471399023911255385045600836852716403808646839752398436941379429628994321234129817732693429721625051477048036449339778677848539018902532536566533643960229510026725508106504661176372897349382512175755280842166859409619729440571856566005551225882029046200647431128927271680669973302361905577801831848564736400482492526414991437200653688276289864594338333501686757656815103045189220855254908918446605159686483630991495339762836615564373172756109564832178090663774025215333340594943217496725560076947378402670778115988856458076455801429858068991210352994978065419618259782341793226250810486368137340711756283016673022414858179605070852612054340081229805700133198626357424328249477453202136927715184509305052654215990450506285912214939484527101083937483811482691012571726002914698133141648760740694674199883084662725728288270061560876620848299172760576550231262941513533609725208991740104777780523685308271990635358175717753514496945305990826318170023661493858177547599601035581574366253111180375055939220353307679220856209632460063997964363846620784455576384941452194016291594170498273251926537548285822562872826690879392878577742863348883596321602530918092311841325107890318304149604294119917609547896238156385989664669211822283202709096808438749428578380708314963627374103749613142511623550075285524261270591884237703583544880954812479346199411079082750914722372910553823171990574735103676215344063233161685240269370654824810241189824304288233656806683809940112281919895432071572208327205650894834106052599755906454712728688747714891682908328793478616713147689396688364383535121741942370803172985737678301347908207668528477202462846822279990019028371457049827063963138092133395764667367499646596189590390754791801860236543476837871765815584601767026149846835126587848245409514589493808167999176069342180017700365728577245602362924197009583577841555520830140666847953040357509187191009897900988939481681589499669225102215147846883226201082541550988501776742981655949871985773628197603594213501740962430019408239788267847171350225539041009111460252242672041398303586529652832799732115827840751683236311964481945763862244560014840889683140504037521304739595228195254969390557935159798323816899451677972795820387258814258327118036162652471005499212045435107464123324478864215433775228882944621436902535512415269989172908877755604611563437816353420882123660417821412291551089149083081508661322082538790924071980647542623032067854814576118309146768249063073575546561308074337989100432567702276191475359226567222398383281302898183125854333677506914901193033479865617964320296860555201309579401731755413301562170058593985120898711880846292632293428561765593132855516074262940903780029963792354374377496620765101646312330027058430693614961904724064831139666232325987104450444536453318811437822937337802548955052687812512274429509991033614047522699069414082015317103983947718178922402251208449238741462574024576805987969055281627692726996134037602110481652579179681846845439665788158555595583944022286100941529800580729484374216898904630866396802045165519431672612468346363211238381422136807827271709374222884493201296812560328388250441045978302523151712847061354148316416671429772519845823630327957540618625476172436784968344256729471787243499943553994459464770303053188765047783292178933114850813377301743191722002719328335461815094725749509865458538649950667440986977169688678070444042293309643165401225015062309154156726989564449421079338882920823456972650154869103824611936941598642171023030881985397715903043589427934602017865025121782175292194071685456833090936932078898789392689614797269489275900571998859193768324607346652044576957437871195991000582523021472596587305386019277393201815731533144633856484880105089381689824176754808785810954929683344360688146589195617340281908947031704488552604748299807011595573305203646539475981725571269302873790136466453098013539791888215857487974882019595111429261786345314064146767854022966442205478631156534853781574860730688982738535935094123108860599779917434865126391023350946734755129393765384856498188550536762989179854848793683521908695820123265004932225050673378102150871815321574322688270850801340280362747179666790889351189809883598128770110712196623884726744455633036953138707187138685018055292830703291310357152192369191184213729962843500620456413905417430031798105678582677458868641889877549297708118484237959076861395171414284908978771636903818687392641619914575540154964528125812507408044199785676546487495253934587698542163202468271501924715255829815226777575474673559023444907420101163627065327698369534095779110901438969906630289659505352022085188189350716044517594953726675752069294946557151375270560130947736346172256912083249973248533174651552286496498482469643269569792147778244982527649165714883973157681438348938697134003001988522078358081210665129430328020546413148345785719264614121767139192035582690895722067123717658798742236121334146697809910737294831854196643267984595204349708416790115107433355400522691912210871549475455286204733903880665089051954109341197583223630885691985950485158380986770923173316037910669731957987258787273832486246422481045637369299535729383743773837968510922867667579745514657835477022826110826210199323120431191901124981627848244494704461086701149653983981428100512205030812093104216012868876558299497382299458141341206540727076677018113139228868732006409231197651041223209836993736087302832379449300485128077238264400404732069106556367709535384147512868681442509985424829412762011671406959940964118480437401508449742775538751796943352439813872336469452372599299913810560044708007562059878110527044876114453758977783533100854842146372081358384961478058116852547361833906766240406085886964614128230811167188808201037305256375894565274217189147207068388637456851149252064233705656234739212222484675945144372666590606300923097442144631867027497984664566506670011841815174362838176685748974137622948889474948793375548579822192461748429249005010904904276218618558510621523622168207589134966146971879190607118138413359782776049489847110214896098963725231830093282038160783844757045849964160697563881503237872592236827696839714167149178730386059372820624301235425099920226076622499762662366126903446285255041251547518951859936861540894971857628963805696566006418860824628470052833006703331400075083477463504435311716454653192243385047754818328967925577455267428696322132578077863166939473979871942195035180395660481915219707919020507061917347115921505668615170199056847268615022931131264037361040712928951450708930521439430698687722590371735782224141602142240668003408496667676633331632347287107393936296897997831952201137837818796108740869509144741895633103139565566121059190062539493666946357932690392620851123672333186187441791808735082761339250727600875608271685349225778172861105661500099394522817980994749643042348748266594410667244859907051235784503516092143392380570769513310802942057790886490116800239133566219688879310117205251167063123737173812254251795373035257717216248855433643929138776188716355542653469436162368667937112073916112323958095950678920531999382636966619905700786858918926413977010558967316938364821243231439194231833763902276309807392028948590592555582446985052257288102909896625934299675595215104452392124870662246548012790669278071063479160281343284853234769046219772839639416058326212955419594267723811193594024130207504796357676273402019193220453609266788525080069020420050727163247393680187641709940628710676099594914708944363392533271837230700159379487220148433527689485766952624034200399792271073459012603044142803986480909697433718392815296270494182876316244029195774573869947595421421012855452393118232084418253263693609512809466707212905108123235720276954075059360563368031437372855066134816239753020243182276693373860669805834667838820408849517366097786428341342791925011262488400245837722212518291959357044691560501602596335212295522371378729939335566061749860719305645381651063757157598963923782310794215732449465772390468056712147828935956416999670323528854808649523953772949759330729115746506717490613602777025505751545664773455680922214184311469686713481621178737748486434073982269230012404244778074575735932138336780703658933651539159947588424479352869174839578722613509954805359885468538659074304845176712611552307895492499531977075127553650126317094631123893827146612940510703918775268406348986199504143364722156358602823224066227526300388372740867944676324719789558110666172678374956261007116493763062469397245318576317805660106765080351584769317050821711740917731586937385777058101659254741180959679662566710883103236071514957631535503041699755024836459443340016006150799284403234228548517946281652124340767467750137603634592932191379362950670483679370463009150024427148732482811763279129461474830491285159108619067935936725276845714552804809733469220036481063177766693287373823089485210119350678152636207150247897819783780700725770912432735639345172057791662270240789635535233170666428545806115482113469778305944083544294216498512917476108954186472996181594699619616211788070225783413750175312260849561308607304344068183135815071324046779603606254983509845284766378681470214646405848808219084859152202839056544200300244966282580521378797144116581021225288230321157217288276189559865216811290085520763941940531997935571158882441217108489964694712571249304602788569775054498679878575785469377574372792593412666228065104699872043412677031544668410347637302181317948737292905190961627180752876676465352764621085109760403220117951662764388184626365948391959004581792337421153428005081343973993142743037778693060531909767860798114009264882672719131357453561795963954668320867308484354987019896540897000061904360881665716191929339896691705636085632520069258832464949666924497723614129702828227824362332334140483218908130909730718844862089399642239872406878561759667616101711200378660853284857247176431160031971670613423058815381405167497699161254343505044455711087644137032725579871877517821379556840648100022685208520643051102153242389437260272195370119511817701904485585120763494895582501601843158700552914103931521050801382617987003891446941958847864828472712284475634055011407446381090877860429945599801222078302854726646544052460215303741552643319187243509665751924575847199421209302754339061771886732584390865515125335494550091990777042929285444327056858736400947677156402435962625105762973610222217467705155265947533479820481468088488531692395035478463609504092167570806815612601049444350517222169698072442879436866582633543215065458055449598996967181165688844977077114911546549683785383399468297821165841657157493828258549440961463098487669487890962563341427528769866675024644385581652917349412024549550424290623788114076925512153168254375865253828650635638307987347420567647589457699624989122207861191599129519140561457999622761949615599329297472395336105980410842857695800002177452074547346893105441254546256688818620984208134966363220514885138136753090823407212306985753677700493376532891963649264673074460873361984251297856715560338575333775136277620311048059896246971364840059042681412520405485453055123706596583327371934323718512649360488826938647379902200257253974376601913955817845866457076137405575993818283880519289844243688131032865433985957830881123351260062449701166910799039055487009160041438478432163109844057559349484808102987676727196594285866827848655382062654531322807170238715280195510234047128013640246152007942406278786985667769089387246429443740900486138322488525077397520877252502791523306042465803855724457499368585558455084865456105358881602871947611903547701996127187809596615071569605995860725405375649362627962782654417964697922051195271602077434369651875198597669430976157066948699673713925792919767818265700216202165966031693050348564991082500902427340249791450861790558938899162720594907364495850280866194354215073028026920959949671293976888580907428281429837511660130620142812294856398087660789365886891878290338641069407015821256453056053686021308677928806887115639948341608737961956903566851271365488868089190506540015440704530023732631770157761572878389833536611732313315262769859819651858067095807154767137129809128083891259326457224114628959468483560299951124547031791938801215398740424878858140754854862578126371676854332673404808425047022632917652150989514203943584566467182552790010091865117958759146680283686449098098484261029564600316434412457958945153869442470285790380770632891820185458969340300169653544497098249097418719062155560884833689009820322024783083592708816932764032482774859330184007733378446437115891777448984603759680622856042748515316179376753103511684191180126364624315290028352180955822500408612670725407366396110894575504705108449083609806770754408628482217832912105288742510791295007603155681157645705997600723612049975752011897896059570502054609811211335082280037582348040080298945277855884201233347938090075220989694884981753463819955739946283493114863358974869773816348154056037732493424061620033244911221804938941809553497091878256238545134972668605325086478854844908221414219559279440841215774164635879600865987252384553713065053990182167123336792851232468796214748751951905688483020347943457579088265924391139452512577250264257470483916431916358467900311264787452011574774457673523466894636074551925464157190033005348188029739332478295252835330015460994122216360559152219623603947266496689686151931862363864037345824233407902198072649601861908030419875077466495991532051299932751840762450158594307846038930872736831376745402763795413090998134042093406568663566392395913435855910610198439506968246305622284760926776594582255144132989005293464600871856864726020053113168575642743787064788850474316629241021846553770051061162174661094744925465210604647900845848619057475709778755735463665138759374496899456137409926008095498568774729106978143702886565556422433973619673450309752747635270755059244721676190934503815132414595498676103690883622583847736762351963662091038485060914186593276923312110908271794108819200320598882825762743576896138886199286491285320496975098614779144488913845339785446074760476229449463574537786597233544059509545015661491437847708255031918400342697606269529905585927133232083863146380832547736432930297177392124097790705776258432796421433214995415996489670378043702890719759617186938647922855171367589001704250059193291262482474863967433309124035287463888490943932555579492119972467324798408286775245259619481869491972670693979829692452916525495208572946541439332665942753315365372506288383096819791002596460944051468490697124905387737210976272044220561460827004655685348422843877362440745290597970790728627106422451867863340764690944349854140300010997281138681898482564632072725577942597467720109517491990999372106265024796680539362495080500498876182479753050964136527754206148007475989215946654513189958490931482684577542263040780084854694595713507308902348990895458865921265900527970279379963676949664201645366618792478843381855345321690520170970298827245919968235267118435376655079223731201197268483886184733122224256231802912825663765077440028402714004444720509800148206238040002758176330121239519181211511409033319709845885580408650533843929350958097354076703641869508171258324556889944411510835647839841510508572281196474813299095983190917805889534670138851008121568924931274532008285081648430107808224374972936142945862330070673195590264237468395483947609801979730916339624860557373396193882536371730718387598773118395637474171788822148809211957271889659924990780857899616664898305523920745464813895803169782432974496509233765360724134415518650872962119908868093212514697817023879495475219556668663399662395202931532404269435370464987234716516375733210728993906136938756448081188112267444980063198092076352895976933350802695124382217722897770014044580317320932273323471575349080167323687284929885784806653471815240373342220681668326079774510880694486258256985126585331346902869751016597434099178692632573037708435704585061533764674392453319272212891351412084592710632054714622627119995031720703487635720383035439979549915511098575327185832368070592347514651187026284431373182424304971653996388447225936283491037803301707965190906252818725838148419420938971010867865151670494354352693644686282822458774413457689470562620560985825357627701951939309871006235078589986905356021751454347864648057496008913020506508091377592162154270578032897298701490641735324558330700168450050221428357910960614853606403512008343821969998873170151228668297421196947580720535863776574850366030562027510889957508723671679890741818390920716332669329274204253975690421547512824829778861883311299985307400382898110757009691716281228891396728680983286792861665798991884819491351330572913460986147833313212435085770365682960570216992232154400605205744762785974178265333121361975135137162520652034618656714061481958605981470780114239471126169884239076803117953893932791963811234721880568221404461301453097349539127464759186705858603012978960752980723738560672923838770956344237911880054324848811220220704322514242289105840893504190064268573119597217077037246131377486176040356680060369969311967576635243482006579408151628205532856533386198000767844517572826293427238168742537123667223884896757877098545057170759116618524055780487166487157562012067978403646419639386046724234767874914868241854149404583421705488147347486617653555878162423984330022902298742658941666569301885743131694114361846246360341704764165818259898047983175995843129730015750781153240678724966861084641600819536297096026348302403432699500602653571872244181070653198792572573524854070817735192420467988010158385979807102921504366786899214275406348369995460384462441275295970321970991281021111956685426465021750710227446578927010159642176662142517738255026575379583030378442804960797121750282628160126583219594301588628644030992680731552565745604180149748954262564102692174259660581340042442706419821427189117284655360449292519595328181957038167624323823548942448339173844174305242977147028685485760949319589600222237874996870783791280924493831228346213284345706425898818618791192486431872347148538366396280115881543093275321589571699953378841842208175072334453393302308418593235761769329347594588541716591091726476554568349800821379526166713268360938866800509257183027808436183414724766870171684136870638780094864283827704431073889859815126818303804465621999166336902788412306284240754914482343976681867394487715064881172658603361795718077200621545017272102075495337121882416037732193355345017697137558644713546616750919813055525047691362956588632746330201926815516053813833921641522534294036543552736484946895046034351449863600397336946262444900300349084486522836455398800066258262453295189660283872581849736200363459828374599488688487445323806209747165579561188688638957291287818651684332464637878391141735312030834219671649711763642645367792949928535476435719900151505662169042448639570413432506377272408747851638827623273951049179289602366750786632039804941759889253776829513840455950134857141672176484290728908031668789597644258215249613512575570608241728206190194202065190640380208766393750441491936390801410657405155761843999115509369554590619324172180892043315573522380431650635337355733730347660742529559627093041553707189370976241052148820403133004884579786045169187857961243136397996950480036985333821254694851206093837268810623368598357793792128161710353112867632166765973955808675524941072662896796832300036709293694860013391882291534183720624641009420459158371239617508307170500461657156197335835363679443428374835142944810099257451944793877654720137159347637975188892066636505816694851928602030371865116599520727720045274507511656050046993891759059665177323117835272449275568543949393375631745210244822843499400866734533835986970545350815486554489122878461350998159292914883554464945715271152268541904064342080596097189749250744120101413153133074995258995430469396633660850985424600165150541668036694778368596673419271426362338892618117919499057286717113951998328231981106609303840077404699312072214879014193925875645673637027296834760946939664816727541740944710927759374512693510242675256964971145870000424261282679630699382030461927994019296641599601178720837114724566777791002456212577893224077262733321448874184439565200094110172435587488748968524383656432576607494157772595682491150940127804140904863899735061528323748572552390705251897740991192414957530626171209542235901481464477081447782614491511819757076948914895659432247872984450308675701998992299219082297415208109470930587277332745284496967557309484955879200071168102407091564704831572106309017520183584683977510278041374705578674780085654892992858363352234672514179171857177160684982394905962686812413540636078332588767430405571016508659175104539256638427558295173034622998909680267216567318970532545116288806084734068607856367051563116013218772998528049539957322506825533954086824842199043165445224364851474523215549329481234353264431062669211501950560751592389262769482592093358553857614546393881744049974059190314134696852613300572602859030326718033473176237135498586518401183861863799389331340047922016585604591105569337225310722045256972822775058429081921272854770484187557021355954569414107567704911359297681168073639392712943141418709356913839175034263415349343290158703793822482599686520013492009923543271131658051968105419314380370416822951421033243809002115211900529452543795333282393975155788350563713343098834317601139533512396079170005863242992058437493320097220284739483512609580708053981735419569645851284933545284386852500966601264199038285263653278501364959590240708699235457561556896850511087806065098737296200843866828389261224983645483923274766725147727640895576933013031657314329330666703674469165945378760193183411902188319200959526546542722671755173133835714060039184562903672978921354633539260701438238401681875398968712999722072097956340847138243288464896889939406666877039746887284418604893977867609173309364228160912658572608665771217070168817799730319465933097452614149001466946747628385281078725445291529657248884656463926030368875594575139901449300024465234766942610382962086556641274495568297802818374115665060434087225152204702941894977533581103582410832527255296809061085688238295765413498918926210272070836182091704919182666876696066733971721581155771029333939129282581783280388538221920216333387116754275256924441133902743906270499676498944134571294885630010800104066184372845426346586012691583226049875660733513540685063979276742370823935925614834913825452967275826578960340463386634928686532195327790337004567987972828248686220405224839909591636692058364235831807564277001659342637740309846085369214982421145725084105599159847502000708960523901799620252346975201627872006572435901970219602899617610521536412682616097507514852863798436837520264742511282804602048155350118240680526693756576841598147782852109096598239134038269442180614425595452836654138248634299704632704951325877882932117460174741364583024241156883668373377605579110636109131332712579314087316880939763672457346330461294792202491037312131537531442754071366820803337525397251009309220153416741573369438960407868095791525257975236991363137966483487463847747262844295236954973879185928361829889655493134407061506544319801954897840054998383341423758975048521596682805682920187901834338475483675893238660878649398921815546971132824560231622650015591971211480458804205163178718283535807551972378971718709497263437947689335255124368740275710596722019939057091433435660544787130742613502043792784945974557057142395493943226829100294773159257284016793814271934611059870094393258974010086802079318489780858846248469442203600478066929092615782081640522385125713442910644486472690233254575726001553589585516993308257724985426655518483224138527053968845523619936974349216678953546973882431756911371518729919881120669772409025419285699633584684141559709006020607207219440667100030840514450851919129904150721570208399895051040052696720117639958116743337123863880172070273734645485646688894975115394136743728060718306302279319195627548919635242936847653862496506814764175480948460566019808615126862140686990627438716270002371390230205011131903493353174305882762088837568286762956226226018244611332343451021392925279094278175377996015887631406166251850109873950873311414363048843212401981052904457924218446224172491815440946069051280019981670032897418585171241536762168092505457681161236489417738278759695175091942717943029809864483565473810862043661500115844747195847184747596979669605457631566870584839574039525534974691165342054273807028157355487192114600900274559994603501946337946102301730996101019508573817481118930402780023115321096730033345149258556593745422850536684501492977008379849905804569438554108093339329401145375206420998821342647130971650385959589667520767263408249930409031973903581162619430283498112772794055476218003274466090157105047891836778139319350570098602827549963700220433226221059543528392946631953767028526527159026594105973959502228236800577327388537960562058185990016217992138703582400417132104742638547173982731393439549602852197840627297252673045473554689296944731837803549142252046166041148423958020907776631648367829547470571857913529880017859567274298000686014250449269248514857237395079020938725531573462789308839916801242664044340820688934173092838179337014235972259428915521399742735976109647627912448611280657770581390754616690767836413988492910014845843732977695488172283868961148894886908047842322498264274228757381560366044265453883141947073871674222914366312183131414156121355244890259251765019892584693222878289388967134350462236105434658852341980089152812518569909370274321469005258062238797893151672291375954180338666595737932484675019450054246695226105170075462200493983108780263347418598204744060057869299089525845606125698054036133333328478249602717880368350683994247158918671593087401022926417364771515552514928299597447127174254565279341333256028391476758699023651783734500499259232725382193705825499574371639969613227871033192453097978829123233866883393727006816313744844845639723683033626681766496970757637945621124027820897048077706223062998959979930880543224953155792649591700819092135746709645493190481019501784223458982011679585306168581714580296860769173432887279532751883459648330348380662738801051959840397317139578833029248138245776406867954831758693817332384922941916628726726828024583899988160312255457549187233533842333712172445667485761453126194326764372447603350916066784142171555013605091983964308056226274376575705773386292140669520125122140405612837938688292784113498731428206183872672069389609639442020416627664773571425157386597873714764008277564081281877698858515082905198518924968217739546222514629730710923915181102496628037167574511220564515719840827017727266597034725323171655963120279458646803368982205044902750805681262982550654772032899118257594950307459743288017704628543444803395832285796835501280943442849129175839022145674603131249742482698117806073149402754549994280988132186171002337175259423947361294562540575166415936185227990464178608296303327116729541084518799566556413478573354741541889985454960596176625672671029716282990293387911476305070448848351107975425378606236244616562754367318536399955802706622071403437580640044866325767883277009080176955331460299900049731345574828137416913081427839952449347775762432788865343649044181806340891662740856948509588944222170514551229424637855870857857903196490459226298115037384433174687968703248456298317261468513082220022760391026223689635396715667177270416285039656655047021258272118332239860523947714189893965973929575460058043733834023029540803360576694358957656138632152606421168054311729647770837165415215697364879180181170586855081722539620535102371643619545562374752022529068533132213388503169483007128072307779363399687679097386646407500560493100404805908247360895201667565365091001637268306798930355404582959017027845552357064137353513041956654774034109408724395136212025673570933470445572862901598038347916874822220949288575253802320145104676767846658692765516248390098634803725452286144072034696358320799200121670076900384277652140220426861021555491350117389387188439718469480583803634891777243634700084134267497158353924134224796935458162138091342295079067308105263665591165875906242850384830220811405312625917575299857054805280496585406607199755940238970844881697705087357475178316194840208199228539113459527890732725485780601233661775713191878487266815527735409417149047232482984438562093545713159398816960116967714555320966549147810192903999998783105368749248267807867180049531904603791459132889074022338039719702992379777088555908546664695871225124816941541176562603186184025275876608033721541289229995279595882160520542195230774763649654258594209345627193671380870684321525407142563958235832673802638632888265522696444488353966796460777247119961983974424839168039257526988481805974770646674798657897733368534840776689098277007971088286373535727246974631957749852102296626368050266212081406727371801161132267593400945417713120669039079210563966275317415446553219256041738568067893725281097783735266389017397743744733914769762290158714267559591753311179677760989564575463644534696630425412536594757170310326065261040071038948350824166798594127136439842962624339074821703137091262264098746396488615683000178814621479421571680389656666763856532597928898784764781538968559443781600816223341891084039211161427221734456632849828361680331948718532999499250268191659485189503868145381696629661896397540652558538715042499664190540538745944155020598200914176618944609086374675124649404359006553476348514922283491385380361046734363630101677147906796213714230992303688626177270505088368735602978546402163100619912376403735933155293251208293260745604760989727003415746150397687679337337475133612166371709873090154614161023028473405478707235922457954318308180139725968327545090058696630463798563911336157553945641445432966619260528826676890168343035436035124992868557342989881256327238037596340092558432097756872959555130793294544916101390348191802147920697215597249176547711341276700864550937810813606668174181411002490818232128610649278093183439404559283627005714876570291431104244882893512252765315760713527996753848956121059286438901201920203715155616227248410714380592927144982604461399839952591144982785870762780674769509569428705479379932879993595902475027260877787008012903793319986084756647255506739379101228875807048559012029004857113719280011441904660684882857327104261907653347792326339053404230994981168029524694397535389530136583243664294036998277362053551736809311091787729016509406979031266076968026274680640160423842686532459405625798509716782244720490675168367146431302135870635941280322370590636557870162502911482925790620798774100323469144208519428640805618887630690494306853567977666631302508903461805571271488781916417228275961254031149394260732392622884287395310524890608008956772386512934829931778377711928840228175819455819522903714683656401427053081225783392156684872404687405971611304169313520622682592087653840531654815725843220374766230513317535652831638538719551704959187901353475727417537807628528824007344967674822469859414418689396237102254411456154044106549434095182551817923470757837794404923135278689405980355658849869739020334032025980800077406763656794924485718120235368124605062038131272775731860381780531195161760074872947766564226139624850670884333061374816213592994965852939208261880654077506526030077729695993091622451973400285188408413677496694430641712324824407982780314783353692451666920879653821828384144151510305743674905305739112500615316680368775115803204956806243726389900146006581805329060704225423779499811981719685824894400676129578493913505817140601396414736656218676912545904832577126406254733517208457656923953683769019102651163886429963214100761231782650685563311037876592702676024517483575255945319575370516926717757662757105262979817828563289447938988642663752124863631799128521391460027250633904581901668962281420993043542824626180561921027020984194446690252593026709687131829256940878928951570777267118060648334729441593658909859498110814853468108420054417018814405863127350566195528817276035433857485421803785274131667984468032120974390534119387824358494107459301211884162997824454438573604183386809660492621053177934027388825529946320321573619200368233921552879913443653316366205898358039792503518750626207541945156640856559586716871539539026152096750206252693998025276522129798384053416357043404577800801170772671673948795451848991328362387447767123565840912581225677543702059760582598547400095819983492069665511028970479518215927780918870456589788026643536303694776827055618589148816863863902054323644097342722346714211728265695924191580930303390127835019234701409061593377349791918117373335485508666587938618625809451706404183975693656954357456652172240708180401632695767084107294409001570255138135206890544626786650764700047710254037889711888271083815873902505616020674866597759783714774496522602256281067361100201419824265868040757342609672029880224712116034055738687996659556956484760115418501142720189305350041958541533144117011014390911557905171298958093555209053121669610653013572775348776181291691752538473018031883297018166548310820910477633892356882497879621429798682861551398640230861472734018468946780153918134887855023795491240958510548221619835116045382176579333057069227956155415623741374736996558368180224514265762321069528592241474828804903984240006178631530687084576758815270040394813407799246003556945532320116853205456081889576823752972676951821038826792626844206418171996973584307281467830615429441326291885164741966501802007906736704648214577326501010219155552400986887548523837011649803305926028996154865343064028642578760130630426060873816992872011433069181625723353698187766935980640270661771412249958921863040925176948734312916198247539157386513919136778830913967794549743453579769813567496055313388182172369068919944185437437620103746609511749048976196641109165664786087002682410884312734844248824260696186621147996105409903612485394010971398245830848960219286246451492601392409639692385012867691698859317094169299558629745303156069601496623104623648405954300235389485382717522334881241516415730497644234662713165577114183752248118403059382540139945769161715340700829176141153852380351872214078836846921232129816455108538282309189251251324314305101073661550255893586325896427195141727899481189058110974512227739535799665143466688805729712680159170842104045050727290991490589867569213042067925900710207440734414840444459387731734702926822884669288579603548770108825300397030362603911714190261717410230304362004074281009819541053016556780797697993943179081946172791986423346214028658296816002336563287058499552125862811644020515936098894060872358398860225049665949036737012758350240598173486882770431719859772884605763447708579755028014731747582631138686846934860928233593134285841002150148343016465026084753443767501052225085437969302753623692683837206720233368907858930484799902798466186651112299431919827119437938432578736025589835504540322279988357039637953191762333432244521798532223239620687006551878804447737102623392977345551885413703563045171195367402554124316624557837078902706347385940053789635055681460426405318221727589972534143354456382163118585177741123666122729307424680396241930192475392272106162378462190117225066776658844174461916092128295517890127877984561562574115388755840362934071803058213268555123200311203723020476881276229272530717986449592093853771128861885466354709142513305545195198047769404093667878441456463515413014654042329466426055177274752753876927284905507914043316550891968348596542933398336639505130651334960145962048862744847750962460414365095506544825914846827486772807150861881861856982110026445311292947337084963153033556729912535086053670067410126680257759536387756460758564719161848037518550773471219977661835922651689665823032314395133425376577647675721700385532227292833021038607603060806577264983082788280272053279947125811694512615014445464425555347143870272659829332408782537848720051894928690701398691382204812065579318293768311294543405150599436255850903827331841918367257893209069523095091280221445936703219505689337225577051908337783556968759657117885687207665870188670572712906799704691612668838934110573542930844247680267392535562386770170527984745919952656421684682957679510291995267175285703797962093503867584482726317305086745222891768752900794168060088025913070365304659120940471764084062230976054754882468750410902036546928319637759702128020578014089888643665079593151321683281665843475198134891755218049123959102654084670779137897663094528297376742187142651600646851329879383671447014540980188557466300381222734082719643262376185593426619279614261089723386475310848245464603821416190460321506265420626493196899635868030871441541560830553152875059933280928283496622388582609058619271475544962533735870700531775103639285164966036119391007912035011320231685843157645291515339772769066857032918490349843597253394285220485924227152833322170518382270024978845083553651388842007356968992540111348764546529551857882353568615217293761488644361032010042385976078368452752234546019129627666795131174058106052673621911234001377557506838340662874125517489658073675434679648692445981464736086934126692396253010319934687440782607005169524952945755558053291831747603456595347624484556717726092380323105322189994701447522982671898296982484479022083374753511522351509390101612236517957477181230027485495003440691165838484530901598181781199342685709318879365438711029040880299677789693427245389765981081234743603518623669457351753583542030948605789001795846260110499653659869831429688439219907425552423062181371050508865510609312191309679403019999809632811694522778682353422837342250349382550035493805495192296684205111519704371373569300188229904116122967145073048978447166348689947769153505422001857396520561900286214626503732073364384296776394566024328140093271217889698961153211358655617261994860076612064474601494861534284742448974423641903884460962801539562637234393782643930322361798262177163487209262560700219840623365524626476680528582644150061342539598531917671956029945835940185381894360518282927975232322742272464688399608863248258771379539217125021946948604976070173661714528649395519818647421433716553872321234056351966445680191180022528199728480629303024961056030646012612185136344496662031442560525997448450804096569737016228750528508124930034899398511524063412182367494615095434673828724096825179910116743437729883677919974396888065752189754323909182930704608809328394129212750757648472311236961078290372238992283693489789186262458234574063141016883056805480388633732261893563392676574301276176583515661953479941434303713081095295785863860554948022468563394718763195853203386996390188894887165968106414859124962803758378657480981405673157487313713723835120741676221187867201362625891843441269954443140091016552194362834589790470307619326111838841988510440982693136520096353441666884884409430215497101756511995154172056805263300050503930077327567408829910732786401162345664113519375686494645662123062154508077119380274731676494795721633524068084103270817799842146184584587828521129132551857646098163400230831231894016992459281827852888397340635563239301084803617813812543197814527376441142990380279903145487517919199127427733742979283698387506421979184343268113588550460474882588010438773666545319328405047192772493902539763760389301474895485052927631944368487348137879511441691468693375623714161201378370937608326375400360692980669419370315410819929498719642167611109316302684527162561359563077264098865927089231292708122421981496803499020045123690719452520632057735332501697900737755885707194838969037339415669410770949399245952855988251307837262941150189289728239379650338020990154613733054321302944503279444689434371666528267262204511933590867640891184844317916942649298297696908763707734650839695956989329867600429957684764101975223987544546177433360306810426937965780467574415885228206974164878931123436674240024981701780388893506492233796403291261664872304263934758983488469724217778977274004593318524780343636109402526887659525150044180009303160006138269966463599811610566499956053582149695318933283974339520847354435269943216500140535135744835221017383020355422884508337369662464039901560885925597483510844978079693227194565563257648806136267247876220809235270795332170832646090246422433270754227308749333863848623971083845824043730440646894574681288957109891680173933632322446186983758199378843786752364729734853440318956473605940482456851013472528765020302767171847922382064918303137139623263215791089001118062469578741646786961363274650916748361168252122343983795623995870653723103385624707703147044776353655716178983128373639538494453481517930235669508230632641684878314003191010881465417229655616045033475905208438053738200068228859264394402148860277433768418866608643333251766694771275240304950148558175333460408904204537202462054348410752809780922740978039257434681994151903860832042104778999608944251692595301534699049946405806566167054080327980535831111670892444312394587045540743242743503515848541328147597515598043878811275816528561966866413865516799681834821917777609839459355757708119897420846876699556191298770730067182549310079894984610933260958314152916894507039517118923690614844333491092641003209517509504021551647789337023132145423535314014465088072323408960391175201465499928422676465510427317022302463146195516937381906977751302531744596562744589011912107643499327559876161583369188491226764942563544501118606950112174899264245595919040665518167914637884670471994239811352769172122174783004967830936564636320863488531056752527161749824761126142037417368289587220560037804388119100228206403164956687947503580493548763594709831992973021305994688775958245771022139401255069698962077845033339230366316194548455461387996527954910636182149890082307959752485896386144120223262425748939456282300772770123163983508268487851846475958396707312579235503829439623027651704480636603746539319885537484929380323323420788407245074345692039252712004805130864276766262951697720127934357645289168415319597412604743992563610907931958765180477165967597705299213849956821014418560598935969509402944933792472413246365240186376230979679477244309162765621845638941910501616589848762105256673866811102509473979133007798841232218450560521463358751444294293408943953875761544133586482039162534717920685961715720017370384538943737953578228485444057634081992011212034516753665455317726231442366969457165946604840383194332319444637413559621197925755589837252060232307252667249447702561893479477420947409599712200244413026595424345484185763731312646867867091414849197301426898715110724263532723439621996687948428927868835354880087047379247985261759730525857790565628068462451935848882732914354342491670386701791543956928533598522405443053940261944540266547173572830864450846320678628956558899852967420272950709498202251164094636644228730527769275452171462283269467480022460503638338891609573794130869222656247476742101747909518455558000417131428035472181142074236407447902943672206968183278355469843016001970757752489850948980800497947107223147194542600986260668071401070809070440595504500493348322141749917525988709883073272879237511859993368908947510007383576303368607482964072131485840266919431798824971265550735828372841476148060744927354631694740204631966320162885336765161602341969651052229229993291122962420076531521652434559607060293957042730870051958578962777595640014881013211596773949566440872118036658070100128378238487461872540696976669831200609555061216236901110821842948775058649101899936728531713224177983838698601900101472249667133797933958753254829859274390501443670390361625974073127095962573290362348030719248321463003934507078982630853768895452546100656898981879827136762769374617889326949253378982543597545802842179455940520109049321912710521143833751023068782369527530750917882249524535239225077917735264987850232594107720361506635181582948975894888215103795072002867156505846280701552539229753665096958823974130887772813832543296360923899909017768540515415343193950062364898194256632423953244880224770028762700371739575884883773807034067118177854297424015366982341074916443942024071055271482797437944303375466571717585537239869714803464875782939706981352705786868233757431101924197474685201122091357497648303069196674635495476468054131472163011813280390819120854437841476588082727427067776213125674200297935241040420497048929620892749687388086953856010609133538305930473000603985058378213177939568452979012713220452290684373636443948372224896965539714698561558604376067126276851200292077154897779091136076069637598299946530712524138881779655900263948205274546775279111328234379263182001396513765554426411229026958533695407000287494024413841600475657244288395504155428827587384757881422433971520925018722263615789296436456268596994635510747290275374728748665469140152906547598150961877317858297547780630235173818611878735939325737772416049405673110486361677503195356630530754645221234488772401217579489293031256583395097834030878597812421825958773543598493486277153671833937592790373013325615897147549555709741095901700066974210662655729041134116673762834153009312837707264610034986436404183220615009119574482304116835878505897806149181463683896119500118579250986451036959417336342532002000785912561335145776781362115347351145795573562998647860115800723745841980944467156530576112621862141175567063358065306365201918559733384536546570343817144287960774025964336844011387131644705112045408605380817595124375810031302636214017096333899659440354541695800376529880125627456383573431911306551565485498063881036693108059072428637367086277808155057606584292073893106083752392569225745260602633544389013188676797296952727665007460767732121615983676275481617395250885249538211221033001015804206960241664897491090942361668890638716169431763390562725650842631722774228835880716262457780426532737295041529965555932172033467004503747741125899869167364961696726260163953564986223007606224558659577013548142115231416709068575059914436445022225985469021039099035074772996136966183202022279275597312427156988319697009190336066652437038312837146331898857154254063137658673365178826717697185996541327383773053844228695315222680420030424408908135164568945960634300297026208767597455528640587673059532640125849173758799040186187743494788957759756307075557732130956494808140815991513331079729769857636483656992647161467210056708219387615156064120003561704296979235781635482044313529863291194438469852432680790860387755036252246356563089670602629226146088607005739683120080956770903786779564448215637077470153386455088931330344858089936130884294307945542168400871465779853895344078630552360400163424794748124601245888456405516106180778999436432159195977042175930494582880333528717610238213381387890702954280791742860062388881213387797703448384418379932950791441100589443987900745457659477322898566595227445560484340968854082622994456248657234207709882292414123468092235404065325394025592364756785797014587410269692279412842242063481523308934031180015304071802996779121601618936619620676813348122725052062585648544545722153382610185733244137211245957462289056778530969217001982929017355170965316997518209807315107359804599674939189538981457310213397800119442522236492108825220776991787879856331586846393185395897899518212627100584061786183517838554186371268374471941397091087588018136027088464220571846744431638673311592339103358769569920247894816818327165675720218476241431464138606764385743678857596678165808312883930391071168433542149939628128353353900543615157875402062084986137474888711333523776764100076618609401591251539491818406546431173195107560051749630324177915844605233558162032075141889387503441064129273700007577183388913822624593303561709323081441326893949691379398199845145106786662441006381369686758310862360679559132438908363466401842883316454140011808299871640798941904664908386982831731103543751113439778109747605253770165478268569198780407130960094161404899721633721697754706026969778395312052870759570337123468141047052455724639199065075018254391376551061930387455012270891759628302802074220358771606906708079794525633500150156414731211103477639507824823592184740038989492758821311905112984470467643247200567221228164316726462010526799366690464070381427136401909845418217144592955186950856669194767992376980578959489274200542958772029788736962846818596437791300441222187405752106704876517282954938667796240389086290188756990752977754114045876004369686721637558323258943169751846411300185818629114078096557945111898427237306781164174890146149620493561198157860307293003918924243989129905399549268920799734191470210755531451789796575618916229840261558058003440688617336919542795868762186647035462832545227077517681967466881651340282474316129723729310520294122971916013994884596023086663813270414683005745314697626083231189429476837905934230286416364176349714520430869874529651856604947525898986726497462381507839915113540756107433356795444926680092940878983836770841488519839641377178905277135844403091263677212227283641168372979123133706865135792566369151644140450650366204000376539074630216403475132907430731845719643122248142443913994439328898338630101384571026007943266440455173390389539936849069731320779710444330643232239290936292017722942614435875837974601099505397955103109126977228218065248330456953907794916373120061278888716334624344723705003452697024368376941195238661870714216532821925368628169329506750363774205516614647611706643372317405562563919977793118012414991988019797425530417490249621879078166184582315434590998695910978314090989133100718944481570934142811381363455208778482177948291276803944434893754053832872829618629634970854587492039655332905949967622387944338907077365344759558521461975955627681673020336212795399931035984629843189411081887427390082432080599516205073547334073098568460843714739804053826737494679686705246699856406346901168658262971766465126166098670190966035700383284225147106702053522131888031972654532199883416280904698574764325019129517755485239078367911278904442500746376804681737367439760702161609439375939787372025744330126382465331653225145626020911311597664275107596517544296706045263966158478083788815678725893343084837751229471494926918877187559390046085702862296418910576215905574695552535441649266750265980391306976621167891348070727250045568184217267507823610868049124707809250061314861288859493796165844102500882642555902101147826537228345481163219346435521283149948111903863464641106253341147865713561430296849710207074397128827570045955739820710792542383049326103183351182733997913402364340537198788046233221434805676090212454114644404238444061204997691614057576535839825896703911156332363088237715786142261253288924359962188367664693316227249379365660039298070435134340996288666825181441669183210456691685736916352991033949037200499163158879738253742726291041167287150332211304905097742974588853645747471857320230578515448424627854294458166541971582727675466483771691617273241051468333934352328051701230199430614911598099643181251134242585146132106492868802383728858307291588931786034442979038537811391759473816053877314310717957835791261383395247778501332226750036191038693521653651273612988849503417102997112820875618928403945785578291312337415168496744258951703050684506326057145470461722799426448467879676525414812955367820404129073294020180650629337078370908746305430321496089707617767528280528777550727875031565771528484624286409120349496453164131049353014631059967614187875644811705216605500083842014348741031887946687294457660803867202063324302487691472187260804310265856440599062362584834078768284571720311860303124181119897037724210358939346252739838978452218682053981951510881642570910039147913956035705350448080608622715008677535747518500626643560774572702972934664566359377272834738074098327965573731095993426933292270871814627979936819444632567592122886463597212908016173020479594821667707469355605736676394099445248779777119024927949906395153126451547518647834407718052912538628879797246935781482700000119362664058915718654923963889448896545698298236249487785086320443423082729332061464964319519988268240868149204155316658210270062490034276537258223469188023266858206364639497682104594808428168324489760977646817255178614091116994584490035486603954508758369329803085114415899767162484972576147802603339981876942479985587556013313564287847975276114604606158803949114224343041909359630460466816489233194709563217697044810204074687880560045176987636703337613976796425262765530560076585655961926098292348953800611923953504706711777373346687024908554636811297106377944612567647668571386543964231857684444154170492762145216003672710431030849686030248981641613683062020284070532933420036183216318518440280363205886118233157959137209897660747485645495243735267897601939685425649580587456616784358009834503982956168228776959319613590585201389222714443782819918216737559101663602073660407969135795171098031759036711083172151061559822676176455533408787628706804078099704278741115773800710777589685279547481293710867870393145870624876309402058141932496910980075333359623371951177935170010781701226337145061329375997724262236264932772965553241320493337007309918418378168479464052772783468765067399432455346122425241774034655754139552056767125773923610097187119838917500082316477608131718096170214023857664006482261082955385023405380027601606018533199149909454342295026340832683752220077421698250662123530656238029709605789332451810082298074682702209528995586202606348972780320954824459490546272906784211662863698515185427331974215815916091105764052381798727985101146190651137468284000319884227604296736784849091541986382950501831933376741236511616274342534690697628110186175004833528545138566363882243567877214947078034880152423199002194691763928286513967537699377577457357504292538734843770533420522449452721403370273588466422003786711502401610672257522330797424871834371248730372780325295159079469967782132658979350594759277125379068708723149773599502511661969436609978700596420551448059156702246049004584418599196999017857438154480770790387779671820738859756272241840939791567235232150922909919246896156561297528033956624518540364718779776463476928385341611484910161285313905033501677519949379262138937797372985805558567114078483543318480824175542764878005543608200770465822775905235450694862488120864052427571231606308069083091171615253335329261171164249325862746825418371424689065395374974385345312484513682710641738257603720216636205844026809561107588271080588883346957141902420922978756863869238214443442709536061513885164445507492666535527587007129656894109595069098714729950352191325969209656576372127054628716646470894899737924727061461417797321455534200878807550949813193944616039326307564994756838503125886625901887122812744576840853355542105960681834481000255377209402379234957265712978117790621794049504927302324239975093717927437128597907229536046434718607622507224550013156423543961643425798831864944865261510264415958432853584826968114498852434082352245539371418009801679969333720403521827994871293311970967417152034710402795066565596709769738700994383288432401474204399285919175986341031030763914318185646517720687387186226986550451847791736574962516716275530930142876249989856748026489716408873342019668074436999500938654343156347048742660817271474709358315446119398503077290603154914514554936358454782645362520992608954994984554464156168611102578400252892899909218471087533875133777243898144846483744479723113556121523019132669239400903650234749555285218057772998774250652063665319579261688006672605496684145084514820336017229457645223259484487784565757323145103970967142989825021469929144805549293516888084141064670451886777417814040094618745549078483662966965254960014036505508372133492811681410601545776728785707744392546941049882368075168694859443649640063839787493711851027234583527439056618739193073545678393653845060104694024450711772359069807062795266149937586642583486275369726190237823540255166741455994196618796668681894877225842054108482167648828079913288663235905165949112113276280271095042542422007823544072875087169230415943585826982793610428087336615312295121463623669747248026743939723165530798009991623207500635972327277941444328185564248212816286721213160271674428556090895887588149461106549307917211834907295030214613953365155428929914414362865716451595998485059783660271360455880764165941030395497071423650361414340194569262994488137697740624364922782462940550621156347829203849483869831432588300857610669557763012104748306082921876280172952874272170319593818995464524621180294406038921837885756062967756916254936196426352869324954392837223044070480199737899795661273779361198475778729129185719962525447473917465899112588184732025355722671929688471402347251514913276360369062474151880163540590345536635384019467477038350202297564472711039309769932807821534915756369276007608070663430163612024001405259068921722103175636034944681695925593360816275550662790687570429778518405995808086024224784734868207490490262056401078828980599117646650050742803949525493644195725024332533121981008138223641288055729143141637276536364580615130496353425243970588463273649560664399846277911982429750057523804321258628959951625037129637872265447849365191780017684833462776365245369107573121576526718825274264114798073715982766555153107714581199831971212049584897864503966384748715467465969297824943401276083236517713292091666149642434207683591970132530775386267758360016290572554771356286019300760151427227164000079535145833454686620714617359682848752169212935566882959350630120877668032468603612237813603967700863989821363298945896660418711217528539019257647760881292565776336839850044146959176488538297123050751572965302413125158362950765010276434739896574558262490557686687587980274044930018888705825577237635406676701294088726093768636006467151558430642021841181427050299263337489320650561182340408861252153654226699992818886278983523215189875730547050869523926248541969290463544348313582021565054867123628479125604851909721855384105945219309373805286462210841435887853153760758243330355642199790420793514851204402415150636367517825732955558263586506938309051686598928813807726155331335122909968892176407852799919432261546480009127374043138769949866981349232821445928920821872260861893774141984737627264015830484163248532828060155252618320621826319983009292625546989329090257664737349524589672845337329473730548466325484861473729876728574492414244507604457570271583483856689315112581547988100417405031695150373761657134732619082069517165553591650276170544699214243526007983469398279105606175757335213482672899439630676736549337188497530878331933846775100965483339214300634506003193723650943605413507313783031458518548868381377275312928414699454146341209765448693427921461572638498165625300287924405389893080643471769180606174451877327210274659126593747063771703163773059377126018026364638324961122517449559693153181088454909000334224785227020362325905720770670376730958983888702311085307127380014580963893614722680982777786853692438441645472881859763255906624148418258922108936870966200610098401247559507783571784241067529479245238849494556920882662961260841472548499335473906636039297937691954654408888617993648779528197526953303932350974336605148596511943711149967812726201821524722171022997889946954230926253439842162210846460110998044493451980463642986630943507870263794375699121728965027553734285325055105176022862600738540708402728043843379787933283679150076174075644458947590277198059356080025124340920506558941411793162021777053017294426976461939628266360301126483668277493689325865033370975890400756948592924225364682679683661948673405490305371785534221072880384192198729607676271524341617967801507314489122002610849674569178739211061599442533744118255542779272009878469382498322382343864952105516922149217750936979389672341041681114779461698475031047041771428398181484350771440747528256940067827256064976346868007984815753718271442410490028944473891606563356057028994294584312031428242531866619648372157032507405486661193809029437028550076089814425336684354714550917093062997470023678853547182326916967371658769372413433967108253512484952395296603970133851827272768497383240448439969931173358377158502709671756085381370826432681216835072206751446726296409963587533966690425639571996689368852580984463435569106409776355274907773909849826841749669557733283902121091384048153129133633757493770460166691961322927922955844481732054818526382671908380957408543559470234034177855618596682067109199957346289529631190716412824820682281795438981985161222965358960511699613277310009647688747910934796209134377870544219296000472171318393337055847988877328494302217551728185936060396296768985078345431862653811006159430542802957195507292595736433238351669488786932543896507447767001917408998194053978173292801032795697989375956434303499250949154200067537786642056661350743855358566014398544881096248693676631761543071552636282590885708982456633697266783126960572468328497172752989450284793390053198355606579735849590033471745488498827559442397054332993885089634876913334727165010162014889018963208777683667402689412958969174606278701649702956112158183334970037992573000510973198156841512415728308917103087462600556542322046065196887062663279601655729042235443461248899560646951095976886227728282909818580612590841615536269247989562411905797576244770744982123030553874255608552227003405218118020447308775533062448741488622459355630913560019021046433600886930949425664377663003617495316708617358023528963756612261010867291586289065063207758807243735173538857410671702276728573007923334689396219240252538922464148059252859859901133671120478826328221287433658186306938569204454801750870517732383496912290627357940701322347295579908749867379876126163126897564750281809448987166828224352052913914991089893753605665366778265373486624118102774136006827091366041548506880241187520714595128314269951889611523185776311600568999435123738949903685547204878888768900480403836860848004255965858356670966964160374065552366214531536566138330335490476769550811489878794960376464344602524427240059791719038985108848420416455839903463454503409520012545115673613514242619098537435419065429585727357386780724650544506758188748754478016636244355338054480841910054165084600490666560945257747170736877243433218857386404876104878079329181794951562342967153481811894875740176448363437511401064612863166311589310528502764036333937182489729635210610034012258887483974708917313662895300790869840363376978968047696536248123385923358644122673459777356953273009182783718998986678203352110101042230932754980135540856750774658982750715578997146516868796832120075926008876889807661685180830947533635282663006424335994716927565431512545811727922677637525138283825548586557379191670140366610430319011974258755096556165043074771058807231906982225310869693164852104791257676750960952399838942058548282679521668151293771636803094614204708709382067606823989245034827020298452411932877309680528916100259513416691720991268022715576055970258826875047516286174994566546767137603431499931704249563757098265995463611525124890353086398674505543844587060412418906079507752745860621525884302886852893426940218172226024103568463363593949465089833315148812631879931487627332933854125054470931103723804542700141040636055401318814912582959418244845639990234301448898028813454134078248836826202903290533335868964076257196951184927759947854818056048420353621133571517307869081500872738070148316546281641324924382415169273663962652132074885779878492141869081822032336396370939441857924302873886529672564335838070204387822427736180348801917414675506565203440315084380330907787403903240143891784447630534030677201769200439974604578123932260456391872910283741643657640308214053460382303826770707508276279363313094687476309541529684527399241282842205866522402837558926273062749316640463585943144237752475419753914005146977472400770704749817598179717730396455852139946448227013274797628815487305505790372104469658821426863287318602894838557435950002426601502383720733024951294893197688377464283705051230791391163421594252979385995911934124607673613664627518131494125120700833106070129428917904165836523457265072388721248205846334509468492738690468653219363003626061665908580629727908488825576365122729825041442727283897290897950325804354242416219078702238020469060301804121484397387984340524482840935810538464697907164885247177993429902833387690502780053460953587302329833024365521268873487352966246663935685070904196934798207777629822130363018236881627690429344092635747174750454672582276351864163498325216896313275080022576192522846451650933255156012095528423863840689806032142028052642542936101679456255510038566214041351246521481333667084111732286273941270218279242892036526211687794591165468700785517845336945659934291138402355343158970100258099673136082891130032810117077368191694139209440447899509919778812913647322656591534017394478968402511414971640594634781206233296397940635659408259512215203210742466637285668904457304671008635585446387274388957962262255029900993751781033025002608509393722713833371898120682230591536603195739188029376032176359748992008917463960216973794389317439555475496647085612446409752745996134361685157810330106117993359717256016579587164394682752651880984119524274463304574899816288542371037364998372588790118275975920099042473750833262828964971068932969175476342868384759783262390647552370099108266343776620662162471170180618201878898281925760806761921835269207341910561038223300037283792790379673337000822558100765486686431840167078303773633364189157364764683773079741462394220038324530626627328830418398622365851025156249631528996838375421503757819736028047274544894094626750027278266831081817011861995042036618516928338142303647391110543210923039103938674814266815499763800748285704289156595659134651430474162439493789630080936735557930508993464984609458620713823278238926962325830144403833840862894441361822822773143714735352476932043979026524572096814269009618751895641441892148501390543857355126203341401248975064662451283823198224308760217166488974472436250065518795159498694585487096629470423553906811437714045068293830322418840142724131471203214875574707478002331617992647301242073365760639018499221667385990587921046544273334847980291832424894007858435046023859848168886941410111538741867217350951342393996307514876664056167544166839579319855018744312506276424833347825051325466854325292141451374492436748567734342507587553755737500196608380836250965869186805105185239653499304702163642400711519815914162554535847427297125150080771442253092850138936357609223926232042697635472498694648479818346098657334303713315038398064436912716419627561530367101950028095433439012563563525038962514382010050895993264647625281106006259779394324164126221258682074489452570992826286865702818834402057721729833779986667384409534334148456312951771819792761391752214464313016017332994546278189406163552279531641390451322820366610760553920907005627453112584536146782429827115004602471733742817085859876959282139700642191020668025800851589046305630176213225761964165260487522565677457402027480976841961520007070175955692890967916950676827406083364732056888733411616165362527070158808776130769320041009485699777588077335530243666539288149378031395693509932296160087827319538058945141497804040772323407279910038653909962919270514860745770856910690858076861446635287232683813291712742369937586189189709139418685640921483092972748576743896652892965817158685010053987642000051370824742753225095507727568945562320254516076801620954984912980558415210518428562268745358368531526421211634141549591721000519069680309411808972784739151330381914236594014990956614959754708603261256836057338116775006019378998033451440887922318228794936761727271695825594532300110915994910798846464549249025216094620928400356673935257235405599920316385918439546187700502721641528922576879981158519170120467104124284246220671095501416773472596951489692822028756578642282936877888993750568402214471408715832333921983275416007775522506007793189745769843749534746008609950185100857766610921012846821504336380469208334200700942110535359057194663361479806831686953993467207748775545317322755764241956577975567588464174137916112060672005124286790503939236610338505225685032999702901408644432828522958011694288090262424720075965368387258580614675583130273665164104812246666379489777881641568178865330895686135779968392742013729536088495679517561626411182310203179427240372603641404878617987965698526560551650819896804514030584800687211305019024588535470796492962975328962577957235720810683957550795598043828646698913552915839112008032522686913798532102230385048623005791504844083888535638729944559571681636620757994346131688743460973122657438008051320417163951705884958317986100293971553917853281600980818253490556824168254095170015623245121062163785813158490622419558242034358576009031173291158858675336584850136936780642829242799465925651571823179119260911341592063259275300978254790544865910145033893490439002086519728403420951796345540116175648703880016396863224894707002760272831697841016444934216034676520658775507522341940979405571919721559026706778090558494845225510511098099897482725301857615570362301628882560546450182031066945532000623254552805797797060871583496762982092329423549632682624469583638373937728709316293701439629203765291613815024391317634630869416121994381551268660650942708855150097815863539461360754332826892152493762000710459160836985790848634694738404404220080930550378368302048834468378058694057269840602523140661498516339083014005334948260169437538778658516074671496699940379920207749168939209295707477370461944710582874606050544712462207067947062033943035315937129940326260191738481189853641578595949040481347649227992587111037190040106257899967252604807719781562571515024519425657837862849524897785263241417669768166519260829885514746929406134103936510986353932384926950577266442449443331346912241237841940182866182348632110222551665992366369486117666787380500939820352154953484087624597311355289518014669764753154635839053352464938533283466667638729460141506465797727006898398007044248263590841881361789120296257435914837354726755611448662720405000196606754522091961851435511519347191736565028770812366389794962350719797309584395501230308459551950657017618768151143714227343147489764497796880372074968984795567977129839991036432034758602020071111618748875585444525033665333532432950251750803898643982602826617373777477442529150483626076947806560130603303039908451663825264244454007055343264329069723786301941501993656827965809120880394075385766398247165478009439189838364679320047330245806618865429979243288828356195937325167370527334621011032450394738176129007727311854971435592888487895601995577732258525420283210876491579900277196403918662261016727529364547148779083182870824778610009316570331260304349513190938678052128786072944271490252451155649979439471975671536943882775777145297298294291138718929291281928517155071569667367705045883758686596338103059261276144977953010430432569212788245597316645675000598782272971652142422191926210371087995105956361103647302003492527695084175863892946831010399003300825172146302004233211764403255353985679957821773147372172834919967490679721342021728546934894640251903872895713279320711279651633077987712839760058722762567099710787454391781724840083795088788303360847554103824148637748448127405907374967449333256718767478012571465990261395653127885164219655912423880568870236039871450608710584293452456203773058027433703150149343724068995221519133238837625254443596974835142456399909019788760234294929860894096962984596047672105856428619205259145526293041175200008113205828256449381391307234129891283709072203693613086876059178788354952977494345414822028670175562759527665172744361327038507695989066435759078126801625917959929576260661390740575589204719749982937826543188522505945623715573483228625336219214398616083467600124608806430929432440846598939213861536856819855663466686248210896262577974950247359865595901290696609507521687997357497639417653504813121220920755410251451894120948462545223633041655839064214140121235412110419567230814679261628309372450735379908404429438243359388034117470888646954873387617368770849538286591239186438987103010382481870244138777583837112952842413250777941524226775146429671952019207200971685730161423248567695985710771683645004360226496650667751007979511422704952819844173680875411489603279670592088930334415948703089053099047058454074393605274154886027594867606265065364147122516783757674303853461015763065676874386425589872491400592355400296082729731590422607792520733232420217099653957889354646427776607406314432583306002895688195093311014636670527358698705355495541143237452033283643989755815847975206611715288406797245631413261416923867059603431536358180795933321970792842252195889225367590527032666200825129475715492772475161028180935025619498331209677894620832255249577829887381437583558480406363873636244626466278061584779290045657503193221829790742053830877202495164499475120578165588031909085828480448751224192761706582283960222393136621733594376357313355416353844315578099365689364696539568264158311548755951261360454176589654937803849810552178447199156117032754560118129375139284901379308721738072132591335407433554341869779485027645175964145423758476992075146450148953018014418146423332730987664403433418250850402567453885661033962261339996830704447820628954954804788979983795206061063714807784987098086182605468947496652386802017816227228345521148746383907526649303630089740097654955484612403714000664501215668198489485038634699443847998051431530993423131436579656012792702377327089513864514054187799185002538990258660816705228931074719421344551225363129512373473679379848660738486547175411640642563796718799004346583108822504952951561058087697460356085121143899870160193954459012828751279547216302660671334224340210803798044896089505117039651593763979244008195883496413790310310089013576525952116476167479236768169476882323043518074563160850118741891439411779195109999543999484128136468891038869547207579882195816625744951482214112025632652611511130184660344726846222186636281011383360650077987092800927758866783635176935763466058376323997156817811790385177368566686988826386379442022946348517148575391585579053140147788178114949912942344482970745961677837542145068943658047788971369917779619139721922097343790254403284973142744353318981188270458176880890427851515480859300457873241792408177047732459965940808623764344089323172265046710938466652814024937798422470190460999674465302719447387705850775212484514976221466863494240949675911078819242818510602860224693413440752135844930449093397082504173279760576059844766141474179040969030709351244476262217311092863373600860144690246882066947991248512053353198851858117277232667538509941731098106284739451897596670021886737622680149689392301071075048167277710438384592643460421170384697907788257166686352733700452659324634795180351288235597059215116824344154078162151798226218580600729116708686342028993354091757884312499424143189081193768825358874807651654384893675424202318592807453356009525891077266333195034785117798483648349012887549684145277830193045094899179807329903885075518490319892387964257020532905158769398254848950003716547146074989742771080656652079992754077655256717401999942767745951027137426613556024899877680807501809680172952486589415520477573577699168763852709013333189847667195358386869269885397342454680628803229279872027675070822299858676407135438453160640806112312133495020006840139146395000324104679036472192321684976396934483315331035559835939023130070025367416958208084444417528507376833053043341777538591523225512561714021605990389625357173496544940499114628273440782910292219182427867363427950515976963149730577782826065457935497701870268517425557556459532734400174544587905321961916515823193927331007926046481808378379434255693828805651421518881171260362580976581793549852038738898574717674640851272247173146831957164482984457390243918535215924088895706358312732561235109636834099939696340786849596915119617274672496548532152958967944993304565146785858096597656618620395666540402147974552158674485830229524814373440872294507336882032213621633840715108510318624820394691214423456420446268203691097912095127105811547265043976811900284640416347362583786305764347380987908664109697899737680837221094945645061485580020421877878872786473756948195638134405212777328440655659953430707480125842425548381149597250982918335876170786040485391682972062800112339660255726420573973360764800486367478989201836488786550162794917976949704549621083036621497715984597281073388892039388834464927961362912238822401424541717329435155245208417586041078535562789333310653299989485313386135275605112425381970731878948384738276384512691900034380453971938235284593934067929656241535408956271150409567423088329514890343036412242877190300316238091404139395334599719472311403867676831040856296217760330573254193299087994604942568500978055698013981114171933429530634516477694305851480675785174347688386177385142645597807458512516448567596902863355488766491413067764195045513202354737973563736812341563828296019315228712618738007043226984851454183970553764797894292100127358348594309836227116071538601669204852670616678762458178628452652130067312840385491517241896444238290278606269059821466911221401184322951464066337225720174139651405315708522714915405932254948309946171695571078490420107348017834436207131262563382584255474609876509812257266877717409491715832234191086724403747225448437851883475945566083977336947608150306188048370130855798523145353370147850330636892185907826430834836045823589531817189569460747345651676970513511149764351095203537605582169196262642629424501417015353483053783025254728788983437462550356367111803832954024789317673423221783070875922466919626067628957775548997669466710757895212771877158927732604968950543596362721752013867465995031972678756648459352095073119351791426379631729686498914124899112004130900021079657389346266106705571559725848219988018695511962400807900907628909620231065532161211954598320411411388928098817205079799926144949499134142750308602244927498301015700104919866242310575062688072940448637274164278919730604123657129647202778790296059871506240070486983366836805625998992916075513505653164128784615162303258727745487951778392793582954310034394722823435364907080102807145934627212878639223521866254864733027439853409082159764262408484669336531649297765696298380261676796411541273840795907893673771656147676509670195164841170153516873935949598169906298638240887776525902622534352441736837512156171885729095358884382516619333354837568593254970478725180637897499205285591268892123527633259576700218044871560189954241688180971253903024380879687141593421509464088339690741183912883778388017337966470594501000077878508238467005480230018236206305073608543052922423256040838171555993371217846090959462907453566378088666024842272772816494869190056978923272317136137401777299761082907369876785426133130800132658432892869848535260258608384591217149269783307840993744606908843542416672144131663887950646963752971557860432906008726581992805840090811580794850330165459255092980013706880782674306577772519411211891068110825724463633548557747499598408256420421150332442173553647556617405578809227773973174130331776043839068522613750043616499421466977592067807402691781487544070695257101857508448258600953707801097372366455105840916749817677825426930954175999226989784169160740479243074374702511176345792050873832222963884091360987376202795916728837158868971229109798349954782917867344842765439988689065365875952437114542315768612821370454792928776760647481522127467054029942074138579442775568427554203530875225378764373563036051962385026688742136252690194533452949573543739215040718653367294920858179679663302974803190000562373083358361097375455029428958728378203176018734662209044110380612261288500761813597071401514936162091836320983985917218909962967772243425934883277267824348917851750758821050427362253793469741821773351200548706921386035962719503845534289684015213173910051906709609097168452659231082322594213244767665332884810154088207480479121923375512274906754368868693384099234195557411923616474149042687427436351627019833954544479163019725987264048774344363837279884521563397899583640191995821205625914183239170408792753751271466638615720567347164209064268723552334967423965999691987980180098007289981307558727942765338649704734261128296916359526669467367487208821953608661917304129418951501937765642672344470343153452511169198377926986181644374954622800988807858202420861274401083842177565102644175189236496661777923793865544521323880574481592200997092544294611689473149554750349922889948907454530300364991393412280007694165428784481683867203868371495850195244477363249874242251387916504170834311501555031441014235299181016010733821147714058518368860719159143592210900566816094036285365311467021455435459991411122606145383347497680375118314770053592852941014913288160044682237021589788023467583966542181086884096761567851442627380080394698388498447655193643869484160661025327715553931581638911744989160165238176723385300587784845055408985774367756467887325292880488721479849667729527434547316100598154609597179918504350361868972921266936030109408666936040813211979417015978024282834718217209798667472225781329703767415314104308351585590233189032175707830164321253226480485619924247128524352320159169107002582934860684348130781203081988477290863606817539534492866948165962229703337219575609228897506756794612506475715805786986914747369798212480578122076001226991107567761313850152880876296686617602608638182246433085830364709965542625352080017855463243133416303543944845595045839386605868640032699190812025124955960896130485960487087086427067235943531958579740204357333925212148927477568563112880901508510816892212983944452046995111834029779220239093719365131249702556711237849992830782063065943847788303057634801742397637368699203520075187380546171126868389588473377645573892976076164259082976579798506984871125066201326324199069283285116841112752488808334299088866164652798638636845231884259677499521276780044140695487085671500532173212990584787042173620070109996816402871922443880208449037916652290563874639687962457629757193140743773658624002560787067016000919774906590459539060753048360503868122555177296767360513496881168011489935562869884675147801564179757113657774611274964374578536731382854450382387678622043305929639717993332439742143566192571466485130891913433801237612433217474511828281001809502075639537987497780994083888341568428340145956437834752051886743482959502097605261142482928920431147013464566968264895978457850337127093106061710728333543002143590951685210444122154660394468664701519949037305680737725864096233570239255119217895993981008358639989707089100786586814410250578361222610473376613399690535685955536896035084833884935820720166751411789428231976761411701574775890953419174271379437829530670347385581988046642698562843028429133685711932142328326904191692780813895335804284735855214712816935246738915114029819441933586581749222733848331420977948961904686364715297261134428816898479871768900790575524935153269810712709081603517848488440238590881075783651246721701142797380902809202325266707211742697587155819940854111117544026322770914638374794096647786558306929601875104682276339938987876394014851209694190221606018137253477999344531399207848727054170181801005004172706496737489998362063084361332526729046294615787552015273383975605969595002333216946994510423786945475717068056353154734098412599305702097430275816867992832411426065694436464337527163686548252446536699483127780570606837358146994691252538340762475074963561616236465376212208552059593955542058691835553600315352707633036425514678432645246230178387024478917105688705274284844736902594012850252041355851874874724904767277257082363345247888880948910189052481240364379711870249498764078560637355076453295269185114733807498928502540185646345334045173638400963143568269273890707327516126327089248052620736996409397936086175588832626444824048634521392521827234494927840044801416469600291164598356612527124257198350487688918483884311132502476327540152813312791758694079486090760277353074013526741197805119783571695101346143927483870027298429571091353624100022219497006960567661282683267693591061198063292916877254239985467058069949807767686396171411706906606768630143002946062951717984858396226340271805513681822195661546194342547881994962581687248998159558294593998641005344952696834668425732542105504699219655476788474968610711739364271074014430650641442277945965426267821371758479755641054298621118125834486654168665253979375567700696680874030693694581453681884618741481418229812910864897460376744772888409095820288941701065208648456298952591920299116352817196597586790993803115972079029081739174610548503930919380073559652184581153014416455000469822046483632751864902532239265126078752821597299807479115682945297438310656853855164246365524343790271725653962054731516815128103432452486839450375620206377283935855917065716402129703969489578383626368200643388484521454446320236343797817062701933944192306254559517709859163019599760963685452170474642863540496655251163824791610858253220402023974289090182406235961527491898845143259400871784719058149417923815121042453864531840774064859105301940436463816747193322949649434136540072887954402697185387291561008431150997341544256654148707073261601699849266992082418087962107366401792611334469454630602733768133919162651872737870859191845759722486051714737379916234381223994901290004400574326768009019577452924898526811798238063109100951104161640462692213120341012497599487013639210847684614925586717914843323877554987599780891206441763976715839059911374005306845310583768677150633904450994515964845060709914913471883136914462387081695123596646042210640720618235946288074235661430620590618531656747567214405511619538994998188837970662726876008495413418536277222280370530844365738748754315908447169406216193692029035745100730433963423523902173922393273499980810233638580370987448518637520407461456300293334869223134878307631343696613279306274166594183279668990077384277842634222874056696214414351658620438281034100053298664380561197534005229374253831814429496830277363566794014197507519734748147807320115717674901734509861298049873527979438373509814234095905221970567527651310287666315090499452358378867922913074435834067305926541827121263174099302492158675218610546548293118458201900476973198079053226367343362106931767169434473300070726009491683780546755972637654129457446973248343838904273730649629884705336676197779827549152016004412131476702677562270600772535579020303500394898376450774717233081510922997572748086288350431711939028390661401179489314227098604892656738064577540375352280835826270645377288585191380687862492278113568605185886886544784102505363948584321512039405150364362539826280577171950809667901491044549634431787634709451638169213158532550058553772866478458468301526605220154674857730761792903298124754208738799637331109813330867299355491741915886866845108219483860041530982276995110015687035407870349979620309364892682181956585205728124003902161806356542077021340785647200256606645762027217031624396188716981811353894310424951531315438761256374454137845745158516803016408116388710446045899226967002036944498511518290158092176088135739501840069250147862202307122378111778895893297192455409926365676742960064956476542090620732319852030751004769670916444575235137308797436552038959209636404990540073744675831977800539109699838141735467290766094258931754888716674762550512142346849951106066887662624633438597877230346669815876777807566991099080623399774338910442183082104166273768899838682733632125628362960469721177895711733447914182019161439811322667672481451398587897206139122527804084311006097884948927442121105109735918937006415590686875102999396162385407902385726071125016211476857219033052917828570049887512356465976740056688338451389542928328685400864123502772889544687474217419953144655509478245896270652076405712762404314385075337565934425724855987877465521220475484359608945410456338484216948303986661274072366468040217695819130515218467281448551210647304266621121632202693053610728878185588110238182179941616668408811031130145295658778476055257158058135962576839863019300642662690822172785541289392424861083177177425182194831428998316756502028203411350485142402427006909504841669558213848491309158792987387872785237477320054423426049335155041172214367032357749259974330706658978356005042864966375403270753369547868048485731464041920494501900554409769867346103968460775540087940710199379475454190410007604541619855875959177576984196946967790226149301158005037518010403548620386636351208602507269279271642088602174521659253253910986598433804676377981553629233958467999110166450126496799465935075854395111179391490913756501246394444958577456207722627880316998351648602574538395669262676845154600608669909470353733652309847786996374417187638909866764136029332880969432250322598973013102556924553856391261207031938642262156303825554606878662954198665616488551027813657629381847393488104357054247260396489940246894750088473220479099678999899948726627903559490065552653104964718465859831555301913450052054759203567658261349746801898690816169671465835223687443654889671880070488605833307851856745546153339879838541158209284709914350019953527813186352059777747792833410605209613106800887021168565528426883342766436147535237317918637415491055620966074198324789583465257491036806311448741773874797354613272082737982494945713415710416882442909184975940893554211111928472821972662754085008198715353056430067054407932036388204394666203625213701615668584771279446791936800315084971403093199987343776584569152696912992309786359516666940857177281475530028682595560044585358410380918904049167378486094090994747986555936007071831493616144690520922323997792215032113077526272304400470286415448597967511506642581206031713760132208288181153564119796164280269202080893957754904826716321484415031389331405448248305716542600643613062560354444534780222693947020366325845743339028404572730160047747885636235716332243848544241211810976206200055738773016773987834352952428756080450785635715747696956063590565020199310812488029938726950753107043067066528223801598837895349838195266658225330258247347842232128860692656689369563697146274553385202307411633356935625573571497793329767455257198865441505142481284776158408986096811616822076319366716855251668667951068913355089557241474552425116395935420882873561385430132039646236908589055769376906009321324030191497901606546956782471379422039940841684705482064676313667900137323028452720296263847406629529146264014289392321316557744449216812121736921961118956222690104096145298840207526381192110490398926713251410368899089591643143004854624440697306669018526064235207953870286064979849445197574103826967027747186542717594659469318900306030793075563389173356323925881713989462809879950126178546817613817302733082154937954069911137753615011156827142771668098121341226406459467031979325460711764386300705587767250138696189559659321402116967538383135836737392376709453314196074066236321304247575668734673469170484076466507115433605064664346960713377145143872222333566681278312976763296386925206287282858663879406141337279961976857103602692739752780245469134682978723729769897324603097510052325735075951721096565464559110273757985516171976632795989581610818846557007094767581823682292634779966100020869285422397488170750005447030356502636971102914647575730002179332363384136582083870751638812241541298345173221447768091407736803337469488001389885650140730152128163828658430959302086740151809881045319905146860957891990774001253593757069086920744088878470740624601876572129885699190710209263336197246154277090745740369380841864687246375087385069051735923571699787866964625762341509521756752807630378867839991012306262232264348903951547926836952978722298404652109142985224913938493101962902994138492885882081635744866162221340596062406620518644542184304356366585459433711689036141837161911125314022511125269393778254408729064474462760178877695050402095704654056626029568075890242122428557759583488511237267990249349283291189176341830518830440101256162570739723715696398670479845696359782641500335031054667062588374849345238169242701668775582408852601424494563925442383886982614143575801948967445620381018684966670893267482019233068831885812006735805510263411734054133977872397124905334854875875793249734427559354264121856758468286618476506402322315686967965420818654695515083013160420316935956138030799864874227227589992351357452585187485268683460094877586327739887272197206674238223286546653314808131615663013128982270488113353363173005750622176321370122125045930313891023493996401084563636209350557458442610622649546064087051699158098207695654037395788867054550913330141136884332802310865836236041383940246693346753429408885052881899157903681630350283206067689909319524031552735017310549234204312787517041121025913831845789169653375204807890963183802667219839508338637701110998316472206865616663243874392585215302986825406708006786277016036997026600216441308145946175525809871493825571602738314560004680044180071806807147870127698932545565581439786443422950155653168165524531631581358869943372270721174772216820881499466060191697561762741559510240093545038827640610925952303758052491418382581466431531056974651036601432559413276550708996179781376314342662254410608937308447204901428154108752231027243212901121265411423051514123818564366788143751246429603380266437292511126192882945098853134289071899306701326036454797503235341551995174996549920840523489333103044257842590201092887814391409987527377982275617673743137902657927485215985031858143127775803818817263937159103804207869849436611773243772117801704000226830664547697149784321409217892455659795318030024586620628236967391217218507099493223972888650767372669407356590253258225915617452389452597651110732047724007714418206486084948873795666605019758617659220729332543548333415628296950635599113903648136841772957047192044627301183423719448784216261215875146488597690768237250535454687634016420205361826966962262607997536261156764536307196847008352761954683956658579130272079050350715662154827823543196206581814346489798382379896934301062733633540019052944372855633238602091673086332128212887443664985705622137648171487954381185163864176962586540808217857677108559025968093542825938287819232585671372238773690694602882413595485952743081673065434947703948749981568603471569778388885903075866839075530667977059056884776605676106077461629010418768533577130093400320424076127404721174179478929472634398984959167262400022006002843884400011295762833321205474799770485396451183165246039692224810447818878257191684701154654601743030409359115898228696473732840479033075920400495960457628223538039715651926052094235975133666322413374357231066949708374021302153734755713696167239041160093497797975317228933728895246095793089142628507505189495165201334379494301823991862893177454047631707467791578322343548608213295910228493012872928187428862238148204719474025436433902783625512677034801635018823893914638758858151316076633768307039205375001184169410814287791735648602745910719378291608719605327823296254165992196034467840288450306354815612359472592557660198947764466188119248701046894620423971943209904426680759656051529789650525037343722473150253146251478775111593871947590927486747404482134584884018278425138920238593253721582374597955126564472532323127456877560817344516318294026958351518773023255732619920753781839730374343800083631737346409090731606658762139339967866861168339140195930126978163965968329890549409994270581898194335400608521968747529589130727816507601441080853763081745337825551012839905153567048962840599634053854305994789479808816409563697350979319585753350943011239189982036289046427630894321994153769211397563827677948819100768426422961179505151519078564575398808359836615618956913848118694429635585077417125764478295689556041966893288927843324535157636139699598024591211090734783898795200758299197956074473444424386733277706832103038397646554175876972689323857720179871753372754997369630871087166717266657757948388047401118394557106508677694855948451660254014720139459109987823828557723267864035424924108975748494539267068495243712245561406279288577037225900512814815870605047177537615098891989565090616763939095597693653373868780178439693048769228454345675163967224454176149185530534594180951657471174709150982624005495953498727195843120174205271801911228208617816002866152649904428378314043603610518586411898450242136258887980104652198331009204636895799940518870344710929775602967057514837069700680150580526418406350836622790180519138266891114917308796886568977595594326330895616651199730012251989974155912592490788278017730289900253349163630523872647986119382304236348848725294102032450191137924356731329039732094345093873188027081057438291509556533698493765967652080247089658824976263996466000131058749362798301037674491084201899028825865523059786955085327305547676267554143499635765603085075954935541369500823636544005569410746953218126549841012455090465769762026274198366236454034814984471283456951451921259516504238639433200066466662851659992699743020512807164861825966459145373026427541019250866223721311366096245289107815035478101069240398383919745320665530243217920700726277401497521711698822353032860486844685136553340988834419379272115436610903350421964353817029608345644745693799578041215578076980370910027768295018480306911451467851239300372647063489926409263195943023204172302408610695225660927097043504043908768168055001549735438083267892864089031547210363881570568214902880391445173811218034843741194043699820934402650149016214283660409579218799109920742330186450302771600725298449737456498505145306092239678841133854020727336183558914130435412495694546852578265419946131160422369075328772503815491737128753592324333157001815703689672338717134884872328122611285821600308252220455191670174777961056844944212894175563019199428754691215574323006648642806723728069155554514037589277348697468041497490569627540501137230714872373395511512311300035029815287993862689368274143105550474145052825032902249580733071538070065941985218970774705581882079807908154751252019110676844397852092889108185442367878681002886384257037128428521564287315223795800726587507197540712178152565356447866555333354177674669341874941542995049266409794436181395843025988059809465097607398571960996554103537593246699932338816601926284386631791211879121410261423132838226722612816235710173182680321686798539097599578248188069755247215055509492764721625271179667072418418402225479082694600549357148480022571796638977164328117134249803039928186135742594263853819163220722657679171756825594416425320868460761650662808040554528642007492456160572374980101217097249027402363402024121183445162053921069378646914914502570744035841562678904132360409543931498192131219513898131676203428254984670970907441263763338762853436336534440162824426158179826150612061287045645352095074877587919631733064370993380225287976267066406566085104912865878264660100900110140825867053497310355445679583414138329500180809206731195831633356667394600034558897788742819520947013111507382969795460293826716088622402316312433237801135431582531694889104948476664471239791047260778196027219407563193117115863414527341017137514420506235609496479346514266463138473472076042526451342666422383773075122443728227140730411697957211674152677395984715872936625907873579830752173101267009455997617454159276591731190740801125743332539257579402450835219917096706202824066840670396297001823633807903830714071370309437415698510287304377065983441735830155583692557287065221076179883886300652016282671010978903029446903746145012017145789490652131821230544492114769395416584989929539865542100344760623331826315087466743613077245758064452815354891627802965888706133132420318833409450569273171380304877491514069771424630489007771242845284696058475274513567286512449949658940225068998704528559850656824077985118869616445465529657365696052568750376584447137439050583254330636486698970894182537154146428205877369852793231107994220544231392220878369590614574271587142955777140775606233338936060782917480286793160509552176306785347914456360315208529928693866484053017956411549116495962205498739136994094917679839819070369442900205165779264509990413531927980048806253682001649699573609925949303510498266825618217560260248280711506555072487579087250083661613465871278810921839809578665397213803971705939610218577117344888263656804608862126359056558114301074246377797281897782649963318921977652314742190291149663983071460180744783051106388120544588105700502213926328649839656453811236082067854913548499908540330360291230482230755854456648533125894058736281833305905590592267552603222764328095475832913087982408982228476435746402300418303742659773595262632926250699214323833014953536440461109132564523273840460440850008548972867696405274662969037111083492003607428680486916876861163129786184408835317541001619126666695426512032205753098409812572658240134370125629200617398598103929439255498161956247862625656900675439001014203282652998704063068438435199848376634448797056502129583713973578149023378298777758317352734887189463321189591952213468190070079947002630841770456151019013322139790694688016385130677913635168378408204941969047476818130323129842949638357131238324612464229404957373402874460474545571703372885237969458600824046867924610375531282544383043213372195623576795057921931029212889063543003019820783984147479433089331966106230646126060373608331065925998981496008726393940413875923573007418369117833082557930383924952517330295981970070242725760500804288922993806974868091920609346656906297437301621471438449729132510022777623403376646575724504361539755653450180134217417648390180604650439675034639694937092326200619012803979120693402335992736635361282062469356285671731960687449563165200134193732107172646767068806545304329144541964313773399710847075222959552356272405295612658105750218851513985302721554992085783669343559138491523134592536588087511962212966404151581905905917503234165649789073705332035396196051444039698169899541265119484821452901652992232931980015475324289701731157476156858580102292496376291885696089075556615626548184282767259163300338445657698331091779965034412244211279705006241073974668435744365294023813476277536468514555603988440760953281686177763188693021171686178957765312723660742205617423149027269576290799341107770943148076480262431009794356791023876610382219681627431441059749689933495927545405432084942276409887333552552762343197622741446650267447011143457754094084583135315758054156799434326309869208632111065318187329749212764377948855233703499387553244666302330554609427757921832776437560594361565634233822437083741493794378277088226736501854013464895937379629224236039737904527622569129190904111207916180677013897024064671124472493898506901394516739274718426955655683819598392568080359216410717570398370988679604451796221763211057490505219642760126309174692154940070241966872087017120656683131560392635315418989825423810297137883685423827959828645184818442742043442866067951914327186471781511870763704222832084905985978266633011705439629439740979105640580365310453999267331333835984717618893507893348980049297079844527205810588206405024239836305231935507226106156972328617687972935390991794866051840232142619360457454841587234993833898157215811219703499396556892624474734274547508364978396322784208289636708983035366576944342582055610427222630317185727660881552586973978434836839827730695412270472351783473367704140960903191925766384764081393775372815137633615298290890555769060364328537921196724718229835017465535413241222516340976351585772234847082453772741339597046403155317470406133553362529851874110901512732150503823576209376500337373501486845947359082119184113949993155826732121360722458522092727299597397941191757761012967051449252709647225052429275814226395746363369465729361310652011380844823404600319482253235776651296417465212470164982721838100871278480408621494872303758715479112137234535402264124909842969365499216041756222248843274218836173926293314820769372949757256325152143825473004539022147589405673160773501945442049932198650894273120392630019276266826873967780566478248409271326538678392526509328649978900348603032560683297264156269428341320114849764217991109655346512116241098364229559874364217610295125447305547222046329772654656807496770810881334125792032484794619851489353832255708893065820030552342249970058653811070547427892847462834398912201279352514480932481787928269225282490692309502053815176194064887198044822506648074023469972575960201139432574511996275562560828056109791530528893097492705195608020577653811388194433946957566437320466540570618626516506220842270786029954909673493053596267158018422888176521940769795178753777791911393543040177102420107706610777565698959834359010382471901641162688320676351028748304464711881718831971263856609623062433047077765578716636346388198909977143591169151008962182361780742230717590284418194441516210973215401803779839252916081737663448047594096202794172013046782111175603822049776408568271547425695981721496099344993314684700305894382691959634860264161895388287022574959579673899026139515157177936443180607313843397015450406082364089740606072604016848194144150358592341032025731738264403527997354192712164635266952975207215154533867141612751923080676618951906659881357285079903480163526989329627790724539740834203810922374221908034790500705079959541234039415588497745342208573197207705634484275152742091428305806213259279396493852878208678215489837371249000608519436361875685693182183208394590898084122775231748537059833365495632350469798763767896789374570639497801512024853086658588625768434833937647291970162181887426768329985759842572822302677309877159150271863977075055179934149747573688490526989186187154744050186676558650525144351591706987193829818022402690942405438428403204547872150180967270262132822131441245950190698140648548077509903878670137086160127265238571966548211129035659139908776395737528318831497369752946363004677084254193071583516528728520459902324847147569012718861553590035943403431868988840580370371825547449091499144226920669741742204793095610758685718387802617635114671096488644230195531872404996610073779203363504411778085073835149113087250224721088668740658862398045776236372222856630863730851935772807831036526091542950568863459507242027008374032855675689292746634220304501207246564686371917418196113188766174052042963248067319137634108144189370746941513787535617299466304762020941778246574097318243189343290062195277555226680329614810999572425418291933466723540423520533397460041191337815549298397971757666788869187560096740404262785282055874190678311359577503395821183213557384899303055980113473628005235895644048577893554708460847383251685817825970780762059570981145696103117757351026038133709642328139369291588478859838392713214018899912087721983015507988822265096003660650076452132700589173174449494821898210166946092946926004626968701804016257114448128049215800282258901760586379104439880210392550001790575977318376400593741145704961178534261067014022026129076061559209133490811608501991755053891333637790868662595699815160485684141641894043938165482955972012953555621992812584314582192404604690510889024936739209088981098871407124157175929165479385457979471355270336229238509237513164718987834228667761270993699700255649977688840881356159593114943028314069900221176270859498727188179598695304355684561837032412130197507288880934632817373874756490251070825988409441591433047218789320598095065939829068031770012002826890733512325980791790536806584526882901469343543987055366300815209387032502114987356875316164491365318411138932824432835257162437346378549005006964481553197786088364399450096501695900588382168910625052938953405257535919551408934237566289759688764427883856579107144948400159839121445578474150138805308254340131686239491954096396132843248378234073129357285934841191503018347383161096973709960050044028964144584779910809670272109918194169522592142646289560096603990448307115896836323334628250918532857827383614057160939290178128448419364143582042528126280381914931918120028652342431276842414929486160724780309907172415095734994495467973224300053948374727374138478942124236230053068193432773303230378345912057821970902258862438577477583254217920217684571808706101979359816355222047424303654803999002088530682903913361741955962711647967905706901303022789087672856367304042705667583910835583140252474338775211694483783874810955058270307563275963472156969298297057757575647048354525285649185914521372458823975757568017579920176581436955899343638750427679105677536578135591924616554326386584666151810084543131670066802673246963230193891729121568891693717851814016026113859131158887661871097517117077929225537026972589484754830366274142303839022231676985176787969803820818194515685141713016984665031660844808023129063514487492808903759196569911355718070423254951077293317683334755783274710857707871104245284349192236950391194832647117046197003046616625720763714843817273551207469277475001226112021878295138041205708350131291558968582436583883105118520074049306571855967420541556584513546808217682187716914315802323948003110174151055733744910978704269691168295584716242820778027517864874194565922862318269377748089491976682162077899456404812974007094790717107261092696101552234732614884361405486001739546534397423956864461831416911137279860278897921197089648611347811630660839381994782167268779204446342108016409514783735920876784700178444505116143463261435904643278326064699242313049126723472786907388875865730045250974993238338877412745950293171407203083449944976719753827398088886192396380951834105913468902858552676200682634594295565510221774486806668517773866549325614617437939238068364723147262447322143547350520444539057790916376942317536387811063881490483155173055985626413101178923644362608438732415779908197036505385321064674814537280676627901690317866987050359088258826646095171967209038916788413012363212621506219981490729039375983113779069193581647397302692172364663268820313357266080181980027585701767260729781211570856157762538447054317209556477513694203432659526190265321634270611467384599372588909728513274571138325988343160769282894015935933434640330431739087598553935712483734505139634109017931910477339498537594102042505168871840804938213991568318298849136629125501969453814598784550155982484869502897371845261479477192277197907610790241031273009577717501621702975893228381204717173339889610136780707326696519435430623578691796787022776193709654032341529613476925930207471053156111804458775863411566441682491270466861636679157303734002934434596278808175852549328802404362829641163761308239219272529746980908665772135261604943121017576714443209676484993082771504371022304603563320287708198755112632957177586478595713169589596283848635641991092270674254342831317406896351843031489068330936036191582710873962010886444085855483306138530886360254781343844021667467427704545628181767640913426311730384028731389839137488439989054597484212266336036549708701104059090719606927264215630279708569503535369401666072712346353039225709359117066369091836485450503380501081553204504239291850394098069537919502748619046017722211574591292601296216485643988165931840896588566161280649281186200372384597740347263685390862915219889534607000446620987520376184599176819888712958132339502088164185550543194224600954580963805553291963366897876177003044098229362870371059887438665167791164929298782256289458877692514307789204781503089457606315326004689751675092860501773975033933836032258974347209056651449715985234118161649447065065091191447801831590687592026768440553258562064544537309739408438240271380236770040050408493792014114723445782614655943023719226562029586784124937691163714892025545085138845869287255610297139568179304696809219260592037327078437226307077502633679071407584937864956372265768727026871363360237542539302887061141369507551510463338694206175945126583150593037435372583086715304992164868657419116538428522036865024927925076550426149873493733181887061406793908912393174901915458266083752564417974008957186395123179823410649074800302510439271406585874834954851875239435628943169960938696344555488750922549279728163104221919604242939219774875799515860587309193208100400922525095830309060691427155103208029236873796238777865186893727524030228738464553803502191616417304824438846069385325415986666167152608403797734216929926223475266088890246155027269397664090357787300075412497641013345966814124606864056878240813051436901905081611743021576230921149276931269133891176773882455336169906915747298882580586760886937788071344639885204211159178722797590590603987872150554973328493091384314093091683863628579164288976897753020835261724113184001203801133420033527151343894413166179544276787788260297045276293502925278345305211653135083189667920932746261905231341948763911957462605016805633878051923260449240494891470256596798333361729794825986430112942415817700137778765768661081942632853309424738177113878267902581813715543331100482952733055528449973314719208114536175677806588109867147196402792881531196881462176039758509887533381086618338001585608415158374097771381802156311063009388038247755823472781691518627823743031034314449569122512083062969605663528381557962005515849440182140589751968895713847279152749242844467458003928756113065887334003225145129731391662821046776820750950304240810596308067161951309994598834966714248154374590759758598820820961439287369002068039250111069221654292212774109526103286933915990300026681806546144774527715851077067086706135310182760633402945122947582484407758544532860239953696189885010798741356030076368877822865103677418078653756369258175797157061871778933185971837123483246445680078319768738264533943124447193243626207584172099330633172825601088968219741334557297215919511019527422947715142486945455377573546325402774829235803661919497733494639424583655864696789776331691106433888217225010733455690535539171844183537426971857881211637814919573946235243539357452720240764793300678178949353537758092455531699963675172486868482906576403375871292054422235421158492020899392634129655567301564703955934454591689691438571488783462060704437118737391329268404410424253994597278867951729348671870539093772692196771263057712306345476970934208843223276783684022131673396016876363362304829428974154291035380190603977342798066007187513790100805813362303290095708266904373203841612356589600744679272140106531490272998480341874176730840005914903144630166173160200003601632042955703572829492252841770549305568493863528722908779124787690283914426492803788027733901500752477589555316917768251175018602147388112400279820390412266884318193752813588412869587780488027501251355329339000235083700830528830733036152243202381957329891530589638049516263550925757497790139526922156387548037448745113936614540187976948217553774640194306885702918612159369198351379951950599636447263377876865316738906442914081855578378486671712241031897771970266573753019165346203574318589016972636253790080773012722298717639716560720470737174053368302364141778278256963561287199371624653645863764530257732940383148093943635771675248656500622967326965970470486669739067746181123061138571141941164490377888315383829521861434693581061760471305820996143171325179039767470016886545849754476906261029975979221428381179528913543829243664701323556701550875543975850672422018748542114780598658047062433505695913368811678024181412185472419451019989617716555550567345958351419925363434109120105661108746580564676427181993599475560384900014735511471256087034991268969264214657182072946728652417394617135714523606768592417007156054623397041581587237755891624592058296179400849535595836444776033173747493381005990848504666504042064075909825201613779830386736027890294579037419345226337587013679480723747267182731043304372018530088160668555056983793309132119885687028946741944757924631362190222801639060386473452659827474733474440693605012539848270274567740579387021178362555901319101317303392292117445737305291902363238950067663855146985404208037362880519543910244797427552944709484418342055721109770885867429713767629962901957036220239022468372864436639686902998629730702064187302152710871908232388530373732723237846968329356636794198786702056142025732447941823892509119110232510029224953234100883544897998080222216712713550195304556681181334687030193108292057816832086406020434111653250555067777683928900595715557878103358179059209853742829255728612609767995847664230991770188403977186223088714775125170229498795991865201077271730540333284718313870751307353256247702071936490740729230262863984113960837151228494049624842517817349927991121483719815613429326243635986583750404629834906107685688645300932896483269434798287497266572850762243281626545980985129831662510978282403035718155253157409293509791426546209091388573180822683293399429967917189802798859989890463074341364403035092270703828888832877249647681427110606327174054339917966696076055516514086437885929665421970913965482889889067488356782966697624477784743827590348526119780344144096574096519061700942758918873539122403046004568795038488410856320057431908117960757785351198827937061834777158923507987481898528105629186299458555608863959518031054641051466637318919250067179520657165087602443989598342799134316722047898509240850280769825038195335638092150501549543593651680310257745339716545117125161286746700074468276972043348615640179295672212955915123424082276362751935450180108160831381759316754676817349399542354139053949278093378445195057886004984703769342120490479132522579539338468678355792630592879839561394493655851778730030148032179544641754547115723063878123568626224671158119279512114037694263391653227764489148548006781551626016885562591091085451995330313141213340917008864721754448512944265933740156368172452787037519336095079666234294090963883610385873018424292484763682575105341594059828573405834035910326932626858231763158309597709388544216451650970692842374202892281007246219815399235714318781413162552303345418576806091496285671035242324779869272101634585448727306192523608885453850105908090958958571895372699026173233057185286522573647435172558874396217140899842805103239217109375442016348018988409940316320692161318348221833348978286720293429632360132817738542483031392471784430821148273834753085320098047298955886944265530659855683545070443159887978388851680598697544156495145795797219753848660578827873225309801488987286705673812589410589549228202871709137143293026947289712408883968299158399088004162382157930299122308460549218875122839987871782864406147630937525115766135811970933814029479391347107496516490665801857485275868198194166281489512868519034151877637798905845772306709956175908887041376893782220313702228209264510632762458660841677073007247167075997504455266437507069479718635660550999334921375357021217549641186358221942690370420121571084097448124980146815704331027583544605253747990103140212991959637321772461013953812403169859665108638498581394846554125788396664139940413515740662377963339111159661916741727443908971658536340179194915195251166445755681935902381761183384960897423592884144922841794518445179122546900644216419975162697289043024831821257937602575877487579736688397251021141356336428723894873218376014160196809330832526813052464195248542475155534993426889127624094783002462653469463218837707805122893843149678372977362872110433331411763275889406339719322326716412208548823592101320027214649102635036618362457179548786181433461610757366030728598210573264693652090520492258821867366212235687211674286760931649479280345029097505888420666300572510888955849622808779742066436296669172208692260604050948677891743358120810055884465319950234260008966083217374668511568501315644403916526890234238368215196438650106026816942640696339227834775428404836137887894515484371674066259011498557233344761592707077583852831177659890654187615878268127686846414328307229719428669787523429424687156440713652437634666681475933372165755962854550376111049971954921805673927148560493061335150270589287592200165082030077993928726348604220376408276779187313408391289938004968135233862647009673507782311450888605301102364137886324967844688014529596506527449828966655760644089744438312590506115434690473459109775206169639698577115527752169690974202205623629947105535832402020926605057690238607222039285006791416746133873647957305879838515857901383465413360139382781079098497612659113080402191046069174155266597251022002168102507082905034470838548758867023867952218566692164211399264560315882033773661035863742493493826699764739949528947989899192277428422253553102925531320525563850631202836385362944233206158254799840591368967342808041423177955360477841401487638009588544816970543371735318447685414857597317285672927300877585773592091220359575129542698936454738015231187618422611306306633757783144414794051706894280378566941952206668410666603418274491974217295517917814393180492161521829432754141053244553926201556686923923694071865552873080434594503324743973336859758748794060962249236013841344070071136635173268002718735607890826104953469929888809906078843377913319968432375643662614597438346679408422493763644710581763898251808297657581906787733364943781814889763540978779020861119957624041063020300561769790434567850069049932319986260281495533784062508095594228200837159339364069532071720973509957122624764389107678812581096037075881359276577108079327751395895773510953099662246335616395443558500231857706114526730631564168630090364194007440732842936019443164190726677950394897659378493338422195001887272576553306876346678304717681745962081801396158233225953625241127263826686802305891155546268064589639473785475825488082075021835788785354499178415323269894556012844516065230674785384144675170976442859902854203003875562989693011770948223741445259428824550393779949090914037873300513044238381463833463828634073156480441910935984356771988573186195370852601710799934802679380516296920514088465495571614360421364351758573620779896488765494401410491413800427849724342712467302468730452960608318904450141659979842944767866291002753129061295387167626138159602034910865980279273904325252762771617135803227341406764288849847774229329342536412448143351762930392207613329308888137975639860866888338204544545640494789569889064983434181126187110341862237790063079376376682417524182709545622429800733601580208283584030173751670669645730953096192232673257749823509441676465758155043596354104534101392772144447105857068243711222787557984689066844577390635508384951004441565588442401749385878755143939322088373681328793593287753545106680144648689949746969359408427469392629949748138589850855816017293068629986122024447362413099569125380694861447996529556205025530980728827863150382108419735553144920133584056592293579540001429120274977313333288908171771883335206180941797364756331328765882411735710070167090831281447289727550671396342806693072699175550773926370413584831114540284778754650617208205899615091587062436924800027989827875663527038959052228850706961964204575372037358722690397605046048248207496428893190654343538118921732868762386223071304753853251380430780715857214557428675896458667738054740508195213904357959876441413122833438183531452758915814446388550534507931059659861030955673352754760550709747914785077432789012850881720532589490879475216550904288171088034053796830705630462781650650203186668323256598719281994852435229290194571373359630753786014669078745633580424571724992065181719154613577875707836996549975081024607683179092151440730447405828146392615377737512205475802542915841736526418789484892312120440524040476368097432377452135971310754376204210824886133353605745966063981894019576194228044569054179864144929248226631321677636829811162805886079810482112421300906940176891826620438030297804536144836937790188939270333350991249474019680595793999402234389331933490369242557866576220387469747018714686744839855044510934054326794639993094165906194040010515428796968378351278805982533550708122565172126650163299071921235544638213856542617381002340134528592735492187275610134198199332929311363546460260447086809674563527333614876578227638376863758247680302560200063523127174822476772205122881602040463819164197158086177827085496098655243121943329465881524711365576450208470913042196071727328307842599011673597082526302742060623754143677064858670792159787823716364244224931898541084525713202955304711071910353132446498057914286648416545564611518012754485142317913236262663983145388540255778537648121569382991237387890808614168790664375324522474309521398534249771695870999166390935799142580481099702345444304323666387702126387521371458527814398432554001668584337831930940426337972121590626566209881878503817763139830084127031896535785499393827613477403949195990661634658013904064883322369826337769938219810446337571930103080187922206974209070519592173607380653335200919781810868083088573231397903519626468693347544269559448062161328636814673216272623911958655769443725274106844100616279609434118143798655405697496385688398827285867995010348896770557414417220030154812970784450772480929618481943512553014132081537311399072556832521694039775398676586547148026510436993907589334566926035042894354051585339955444720986771628509390085563458181257514278154620055119231721319287937340875157858924594662250528447265213281304855614334836999753650277842681375686384209983157236374665446286880760527444966874645743233198339887854552589027344188366737845743141626509071004215562032095638112563675679529603791715572953969829210630149531894995992110994748794473268801335889788904295764338926386526103725033820666343945401860277752933629523470905563239739554438797070850505760943143614947813259093838122468918844919920132566821372404023691461142931184558722754412666568168607277807876917092451781958191149121038450053585451580991265870140690628333115096140975848997632369574067812353031474816222426444302744947309296879979226701169826694523968948536411933295893112557494467125170166592674977756876319161437855128030094176566301847273885008462656817127514669802692326294885743670989813957771532600540652364076146535969053379015801065128225174027077856756693849099531021096076095845070038069360619167477474964104613649526577098628408677089426681411017559393580068032178030341562933024916041898614836358484243457651013029020116728526849285585584561760313090158551352200683388407822783333704031186664639528080770608930055093785475312227160059707222687828893833826830129115344483209732834727453076013243409350879946368010092408506839166281387322663292979427218059344371891249112313779712777543352819937559554028844282564590642994605968617909619127076777096950659994748108962824515356090222057510225457745134061720840265035630816460249089266535413930665767084399469908260152787484677140696974135127311622830219310861015714501053560541946502414129091891475220936283873022564601865252176818153490441027096300519456101889477659123815362410829347448289468281603173930240412152201576156297401306212540906728603559360006681246436690375198672481418787364284977828884816162521591347918125705605674863238543314728487923658644446726200847560525682740095715373881494621836033010006901550877005293899913707024288801425975440829962313748685025890441491179756699248482792436982306841314150131227312468165218551549019281371398298768058302428977552259105781873896795170088299901017103330420891318937874191243956206545705888921996634966738625063885955123545138396116715710362320156108687325969602797146332521179386265725367091378608674682689534228393507778081321736866613224831255116611588644303451679833037026351467401929470019029746794506683609080798640384301861438252164730244286614764991300970581935238282210508339165923880571802722937785376243140629010620592301406261703621417834217135126883549203609809650947432598634844679260681305737391794689697471691556033104997441113351907686870698064266357666250143496617366369653939578396102168463083482737329573353501229049252929359731307418839160675675738399129842487945334613895039039837963215621680541042942975920054121368797666889672352438879437767418366771163675918224863227892484929170266669744695751258065759042892231618179499518404035512908899787275871198579713937490142658566754393568566919496751638947187019038193535831342050387396103674195899700712689743018639498808462016392826634698916458907818943335983964843629529788110557325959369852359293515195137763370317487949853442935554488506113205338201739922338530122923981047487419480655358000661420541062142189509973133613540261220969271654956405768543715764934835609251482586745270331593102384124040738942122117472562731504332949751435218136024471332179066786600120503763009200795738527734475341548582699061761225795372294188713896674928154537924162792026757717164844020091061468743261013259037809186442479602052578765455773285750269441534194257402267743856360660702319377263068823845341272450804676182596657612978528269965017700387358485438497770549614815654329492641502254355985591222947418025092418322396670942599635753469305675503632268595347991399887240313249381828538394401066133190729093647025698604525665864698502048272847601868399165020997105581103891618526467593237609568626903756407697139491906509458281094477054161960783367066115568840601994044699279561006135994804396283892887156246623677739976762397137742752316610194845946431512438290175085698432730917530548053167351903343636050594573232437106817630239930646415321845875051620586604370128247649520687754318353894251104383292351355627889793830299349446534394376356607363555521611590403149115265605875635648566509974450667794011006548538162240285734508635227634390422860237097701480673470751629460416727236364752736758451196975500472824472871309547666942823176277620751895080563494595284699380802198773977738051200394754744371686788627115529069559186697136952888009231393909436837066467805514888092653987156905679580640064171454871514249538662435099364136806719697354120285783586708920478527680642412263536034125677935952023052268983448802026245562355410088773968068729549414617584689061895609938659597572829622268877852899608039971739341928921297412947405798375867795577354137756061252482016902944778714690306488616816968834299099293544111730004303511992036970535827950310205084043166926340538957456991847054824330253433252962210623615299364961567616731914806252738898596053534902389605196869627775781005450573862455087348754021652252735086978789973316311983032263820678311343789186623163483264882548445198875858646377603339690367515736881773925173351424619979632676675578470349792637057585373022210462348647108220831752626547313300913938366687137570155572388375794614215130252929499425370486547382383557256625396369579608150293890904886686702661072819783005157495269465211084139981190384770719935310476081330694489337607873660098235533530426036005778064153175958224423675154931828281578389379752149266424344261240930029782034443408506597722598540918433424114145952058551098029722854170590006702034037568355410901895507841230170778406591540264325553840770022058739743377636234074293280832307435409098083863596144543086145702719789143092987450831451180773978077192133448811163169286425790846270092902263497163367204235962259611553017103880764469825329878705677897621943957566293865422834754333530943657066614472156482250528325868304560537331592427641340017478049758254113141136544355010844980977541252555671517351816670457953278412055758966358668275809863346845249729218364279365877051417975943980110068280499415925773608491236339852986023695120316642044948503940637386119224233398958828388235677719176775030573995144670481138086548203059617800736448792792421748033461487536964456926077543796744393886031968640413066506425046558066596302264644176457750882768870130873495707512597812404777086403954222361352130159774321033631219092840506566794448557011642319745627093120299442217672245800182409339202139320563672733272002698314587013120346304202530234157613919967528129766115582021530048888636505679128889013972212530419753415351854086604027532448129618174398355866436347660028705629473683205447109911131922094168175460519154384348176346372720876116123850004540132420892158853647519258989687811901539749471857841024658895891242837964341688791654658771839890583458744650794988530873024804807222946306892027517592882407153816238667606845044522235096660505212422692911394464734088716304017427430290803417586781414378833627390934278315425030053067288454306522775302356426334170078916935675082530692662354275786361048636284953852945006546596785962080503016930453034439730526214200860089418388897817864821797944417356084653637059122410777929007188985688516034593031165112323704279552820946724897076163577893639486205081655981268180497345265946670601478203622753923690260506000694929630971392375375411410166950190157420189301195273339863004005692365510929342577796489718612149788608197562076697436636139144784878737305959849671439096443797254906474806622873136897130363786440138810950843369597715711012047382162989848673362238907524907181547842310271929289328070462310167606977954335801813678635617677673200479269184513343827251068355157206392636623482651485080218938690558208763448154958916495705932171159945860315937467088496597439278476055715361897739134112593706633285441776396691394575603838722229527843511533759692256237263144416798516850985574925032597508452114307351643268261668359948630597405678425028393099873385277902854105287581512250854517165508473670087164132070196207206575726263143761967182145323278472729541332873748117699286440081011619167459057183030094545566238015157670280090073669090046860328039721275819756620378280638722243023693865124052729156364587459467445527047334655677132306488137039183282865451134365683259962559779024028201157845162047045413694905895173203736190925407416777198452361967697956443464910197622878032829010086348897647890328411458664877036194199496296138630955681953132139729668970367837305246291391410306797554205558484715800071218234568447601823836483275286748150725368294221322692809040653300552468443847704739534018568513867210505501048582386872487675789425962117523343675070648411793099816484662733421744136369790395320079429145273466287012654329096702303565619878478740086791821010672579429121600274215271703470451840360248628370876063568344862249827550343216195590477513225966082592896213286456726855576828193897607265086071061512767631503161961262844174415649318269355901683943461185077931248921324683048515950533664714080708408959589617510471497400771881252912587269364399010796231675888038253905361102669868163044613926626865401422851702967488488646065938257867319588543500887185714450757657718723421894722198360975043996864158057761798397308459516734318818723904248967704867762514908687722419187235785456473049007317723013751180213720562084074263982563302287388496791178102704001228390779823897432027913316032204945439932166379190599762418457334197947711359284068361906343186525958024593502140971999665236342979684876864016805706446113342449519839605634429638531446363153438145157018549486801942004388805101623422018061033751658412829654318589430906525080855393944413352920319509149978260875222912996710246148421288084344849187701428741711944386712452448994886360690665523983086105638622512305614010679129994352584757664843873244477202095524274246317677457607528411671374770979192577380556229930012913557810417967378244525450099733446308467343036635295408497132926810143840005393172180922916991639783987205968275321549833656223321436899913103218591225489678580895843589316373929133650483053774984251332850711755810494376328634316500744208475036860821099679522439672729012901098770346189299290781275726416890070124553204314337557475137138702885181207142277026637611107071174928036181757710783403738510913503867179194191576719680724477365781213850520361209158191064953450578149395786972236534003713977355455784110960599384978999563482454767748342860958349030585952736924883376393547588635459900938208104761985625755949803110282386853843203907201024279701089491245548245250018947003418252036186504394731513904838933725893736588154608671468210879598233975623163123854812155437734189586897970824868816457038885896524089454207493803419824597039240115987326138208792746479341864507647082470108218722529739043310833211696850789576498662959977435927718304362202042648213902095481694245322525590215091512128660306340560559065457081175881241095788871840178845090985216570719430850151558174182160758298054050645201030375773108687168524083385370668502714325911901448281967348105550584754049222308011812123810318122960049820240101693595773180569801933776529225057660186637271432108639649184091479051560554680104815046252201404083945454034287101406672368756232228597602252761056764847059354710556076038485463217028446980918339024408871577184882897970445450244433313704266103019457274495399551679218877121145898375190423608675813898801521850588541348503310007228801534454482995460698411866281794177576592198098704349351270015465501766470257108181381613132629650100396252506331325460624596423675503524681205980658542734443405494564694263776075885831844507792109522131763710021806649071888834787437419640118633806432818627179159457062670461809002011331467646177018035515969166760512726266473259489764013955585641501058860106616592820847423764507536618694662055872312638391469851472181753637686834325517109773112272824926994281492969451046598727436712201610366085016024190267926078529206912414166010596430917298692276424697146346310478769019250222415646726674340129609850480058120966221125393585957671833327860755817671263825481603396913451406325492997322216164524535047696498440155159563288831549942003415633006850507753691988638872786113744310145864453619830609232031397930113213209535278260645390683944352557067136934565845903669114010260532152906991896353159417429991978204499659242515397094276303141379272502023856514770406794341637503111672908742975488551971900625527251697044019047247971332630445944186018505811528911531687708495999497495688932501135422149628300388498854558489531544438893302511633843038278057857507595317365435631369883850617219655652876127872641808576671263471098850071574887521301662740424095301251301510712688313478038457845451469431023838212855777917474895609461907418755966138181528052864847396882348771863116123106884968443453577959056868521557628834782017574995011362418618182587907720557955904164206687224724093567004220821845191336943743335762323315970828277423287984771630966327770275992327618791507052603986645721063895520049252627125172915528649467516745471376048694138588751197566690678757218233241856387278669832348638470630118020511612643425425517974186230841284926141127200409007405298534360314772243911876496090338280072117434699453130971369080040288324499446870097000131064637323792439818022985253928357980682427217432605479693024684924252626206572294814151712763337183143805710232747465833942911901342918017781627590190136417064916351269920195768656182266359968015446109359436085969877444113214074815963540475617084291435365272938118681691534525962679298657530024872238386469004397161873703969927645310779970152762161313262676316184162430634322608885666331629592091057490689213965218983234083045761734475468843916904358540993549674877870207704132625465470756143118900494771617943680581710517123905026131076789734079095059704666395231618101730479430322099695480784452038998407347034763728360739755425226368109909748128880834879316763056031836798079581958323382629440064442549585068789824779241150129672449273195583557716123422253572112939012698676494977325814271133980672631045067923594022015019993192338571192797808844104626000232371885290050946934604494722370956266491348708178060664466907423804218933001254089015305372932780649859562808614848483366630200995903267632844709675814141221320413141470535569462187581459953907121233439944582807805698128782792117244193346352588135402731207260086334439552162280820235857629291319045890786618714919631676988250423854621597216306130851132779851227161281200394096560188835536233105976043030720650882387963062593656350306589463522708621094319082268811273098265980153422715747235711671071223331226993580126570758864791473366845857828409650935351249456502081502668760083503303540936252427956195967091455961861901752617587242448570502513720149888751276812402164030275612942471773084253047090920993246258382780063941834582041546496737613043128285563311838346561447984294627833669884933230524736876317479371702393542618618764001386341258012075032692422336507497088690359601321971856869347574410735614210727354461402929592590061593041924064077162170661542405704589312696801305698206864171644919724688527536453066019639089835130829402830008520289963838806321295427030951191784977086693249263846423126417654259919615652523968610878431900529840849104227496164220340751539020732917019773370635781934242088939953698591760330233874564760912186017201126951677540637329701419358941994858071290452705296437859439600491499044905350732449890761881845509172606347584428390602992210619823819419599758585188587553970412078666898960216645217042087145324645129304242458847125877671473503308102545548372826443074129824794126768837425171527064889977494110928021295783865689311015889133409634760854674386955282774765582272749866871021795584541576872206304436601071123527447826552262451989891648504043549428535862914401630936057061847375001739666932759481640378981272965006081477126626177496435909285598976058452917488337899015420672582497553318345734403179974392639838557995679860177526378034010341927736185050401844462009704013671131336328189537991918146629169143360880938867359467205843129216355077992978766925883611218727100456955027210165252759962463537965255481777924713475043559323327293553371368140453124329832918899179299542049452644221600651920090545862472556846429795636573663329169692217601630117836231679352708963811661634594792241352744922905019492237004278218221187718388038929275773298750886058064692531793295050889288223546104427126859702767789252158048014222826104394251689591363106467160343927908920159013771328496281029483055201748630024654959533704101928270189269236543803467860037971643536284535126919858414358851557352553963342152110491150549273692722059573076480217421282863740372197481840929048225567075083473860098907523626113470686935793189988729475403135718908542156266659146436972091833044564773921208393474961046515841703699954081628282868607354981923664429629079724197899915012793113038043993438943013843574281289930031811478125053865247963747536863459563269680816000955210989508903121779886021942968081727457102751197200627612957077714842346157867514475058926316040076395139589817710611525915739580897504681741741303371953521782730312866114697949737896686165292466701042410219797798213108399777062737538654070785976224593098701562048799622044560235952838816280666930297119517101742630358955004204478016152203514029042317438046765473925651466544055319310568712490005875666277800090555470184790965661664341334293545600330221605625202425528490967234439605235727270495581185361727525923654565003413637330291839929295767755853555411026711594940346536250636622464020418145576267897138513598361671816049189038520482967634234358472772325910007655767149621142108049101168082212392230823884497474378223474330717549754159381247902901188119465578698628807306919844585407236263728429622571809312520989369603968603793427533891977089850147979944261672913232876092794924017398326351682847631365318704988866110393598319782036487525910754107153219449026397398856806883558176678732127238965950000923389108397948632240910853977613351874877158671100631188317462701241479957077075660304358472826126405785748952286930462079686064751928773251583078841669014149619729347220088983757279257224694876481270788174384571742163505978332814489495021799018881512116086834565674889428034790603078110614826211315227993690464918942217267624860627217170906461255285123033424584311228641852191964004367649562598227780801086997218279533052247207019780425781098702300326278751871006972041216217473137490507900937350335614292391427777777871752002476716942231936778451472940441571572821045401065884929585565576824604448097131849360065234798415853930837787310467099303188880527119177067884584524303559424529317139788422639857793518452885701382231035614795502693766517204068490145345757475762445898445329866449514391609099264706625328656007503665672438933085348518313525837549855391206409790974194109075153458580601311458727534886571695554883419310402805384870055461422250636311386298137989929067281885359957864806158330315598278670682801269533523850231695616546493753010869971226752811510595139343922250175904184206269072081121432458609651738712241682179532444964216867504640002292198767602882879221752808345593029798346548519014264301290890072143667147002115830819258706571062472555615814922359513886664118909454863043514282256661323008695582718286063092319914588573756661398024207880942721685270052282481430911923973593857642513498791402880269080260397963213961563697389683995610383988406712966786910584413683848896856628128574609381675300842303269155799458678510811012662753824507524817100505822151303663416404822198322413903615042604216211568006291802204942008991871802719967408934438702512502032986435695537323392594368678836688100787064372110676678756464167896893652524882321745638255054756723722879480610959492688878112050125169471018973783557331870676248221933057281496870198118540736591014861189593597661370753256278262282229045538033391672968622012664048980621589085806233676010095329738265800539775975947640381819715566501605447756196203233822349549714562046523972075065422422410396261552863938301253032885682575236493646502484311250669180932808010846850770141140246065975135254076913162992138882361951344154882567683776404589924018082512082403201104298479510393713618027845295349047824672062733894270735291685058964909843053258172110535602734124023760676971765649899400458338076473789721079130325923056142735434845015004365958616293352988119295172017893927088018961462978722116811523708962584419776065342487219034055132123924910979782995356328949032555006020510229060082916556731338858651263052309450310669136517971409142197483350606643744738817071523913573985756358821509640307204529088826762273625784200587120234036822981038380173666802109404667879222364342341626037312193865491781406736754096927553239202735159700276409630190668383853128755210090128035272188160899119164382403747413268598734422997119845184597944185685958766541921252616344794302750007473401533620701148851846377097908827085667043650662747947966007849870459264209282659475506360001855496605846916057255637594603473851743160556375800661100063998025669701930236267504098409500717796823245197320593392185700546439825147238718115578124568177363596566439595316493483525393339359223760245169063894464679508566528238109190806288499148541437266618677452107943235365123460108025963302114633366324259806185924195359581661626987740442570200865115163013771173723668880702809748095189482667567676217300116270932120800192578532739392909497586040150909324916503593240778401670797014677322412213497667160200659319803389827581843870904595025431576120629220773506837269037681876134729469076082602591796220894623569182647354433026011180114511776639175149963934002373114308604827308557181631675385032371664012231385196104154182858576939872177608087114464922034652262288452171724109979518528117484052049664381729770337952669104675423123041852505022519431753378586546970064319963922075851264179695881692894936650814460663058487089756929436405877081828769204054642746100561657902774423261409923188412153549799562631753074601745634988337848332847681293190071815830299124039489664829446741092596892785274276579817455141885808137905613626412318034537395965122692393480927545205568832963896461649756569007036171151536571449206077765495581511270136654071447374213267480878168734000759954090151652148647663202509838191527187065904889043517683650001574867421490488380955665042859891733582723798456630571807510898418143160458055648510212529060675780588119531036745493268903881449803116321897028561230753082354675556124783201433711818560061971872250620328773490507600005653551588895648031699260371807929456993435109604981532703520749703466979809364332922661672150766203755123486906877720621912975075718649197768690477202771210383440584069300459036760003661535385318013509583492334087502696386055743647170797783116821718736604613948529342529499684696528212883869887348941192028903593704104361509547132329188266439125406155205433855558714837453916825945772829458531076823876670540650185410002923770124078816909674742429118245139368674849669846666148203628168635917188328087812779293481388466917726971293700053779730577244449625399130784182908831264140837681184205599829483446631800699132831361226482306162060010280593878277818564481778575072752318799696513291224855947154943135999319003299386917037959508649546395080457271330733372404368488864560384874420351339023886359295347386626740980228184116537465085413766660486649145907674034209752743738549943597571016563395948250786852022863097767910124970305783091991780158150567641546613587349526851575694618367951602507568122993554725904349412584334458744901362840248816162693162589069101403542179876737319772315524831538558196581948135616716605741561066182815272307463083107345752394530465127270675210144383110490549202974890628437526933903554906305524889445409301560329086640203483388124801903774673298143386481049403090442524753617981761570348627433788612432942694314675249069785640777481741691185612574602279883314853818531363234467947782371988075587354981761687307959924543542920800357030779279395809320537118615035301657480419483972782565553234997956231955080985490013579932893952984216929572959567909444474301342266326884932169266611891845830399096453683040731663233420837329806223108051560745984997543029468572671866504295913369040934943776576060068974820748686653611009049484910047428948106287196587251222503979821034857211361247820392236788644480135350487903611424308257697919275794739788931809039760431343323875834247424799548483562020210263547232952145111115229615993598939977660057718436217315626733403289433634497329336674570916039776415219281999879065518035682627408267127076387125709406707074834850907480075617910476598813202713111744531589084600361066436920491171849352994454598337388889513774587557373805355787707440605494597586813747219923925565390653678731607765504351672099038784205924315802995559378549633566065194795060212086601821415377106539490097604877995791763320263611237212115603443441177537598687010607154314163283326439570095357567718295442319509827675904038651398674435417287156496141124907268048292634808063305428170624225465105589380710035196487226237749849636258580949829277941757663480781233756102157177725144957704257115028735562827649947385626770872676702301060590267993591388639005976509214079721563165754161497574893446881039648443907527708706362391844923785852821404945688951439614869243960401329485942027300371807255281031420580761780224267905879278510163425068963613854661034977720577022672877511088799538484682774384197168028080865080965552587191648384155278488106691360903417234798811616227057328006136261588379164857762164871852762879115047108892367130236401408243563336275655949334268829940282693483536366859275737964221735354331329638752417170303900299871194244428530201315855058871668576754063374084786407328546762391707108053024080894148128374730145320447908585453145385909695203131065010438053550704539246049091146645169465447086030952406917453933566437522163011134320048283871369129222856225802322221634513775292130787114375593681081078634706843143603762343726097471490995043859761632553245397060971227435497587835214295859057481364290151681980346696869602469024285030762426641195250131867615194014234100249841072149738707614685148769606861244620119770695523241018501172371321719712003295267326834502916716281870750128305481180640044283924066935138112621274413475586622169220972728985578942558102368064798023237146346182150420798821302983010011154422895364179353400125421545554864173656432460458551261232554086511130719225060832933164295174380616148356086544116279493507524919423482124498234965923582920973574263381421008849382940778690327262878528636914802999916200308838960927987322784320268187825689923509095547685811157672839837013268926897087491333966456961329683512424256559538732679944673782335528967671472093685421899872779452992468160353141536613975465708279459130106524982819247265312401089343908072955013976345377248694175841135413756058507291591151436059836960628578072919987988321784316052959313406645534343982706773532269911128376391861448264849193508190287364047089544734273344290102826277563562994896128122484282499870666116309443978978561283240380221618959113464775309018847039457848470672466547262458063514909362134420975078682365495255155408991173425720893129781917815417784008742492665738407484579248792662671634011665023251342495546827716325758981937449525515344902053065522668683182190954639578408120741139157571714405742310484133065352116016490483067258213584057786191200489462588072091759229144233523282156095100107199456161320847740330611498990630257024068468170563637844772650184120633136518262353399262936760488899003367345030135156229139215624813075257518890212741270687696315264840085359624767498648105556356603480645807220354829028789012561900101374694935178359394813556828700156546193498386794045477230192630197047875067546682253307230398911843250813793313843229433686790438097401506710175156993561338242934756282678531937581728243445705119942316067037144472169138087620208384543901029135890052319443631786779503847163114575088202855764993797411022936361882285681552144181744525678567632843679764405990374336796209022288860742327184807864213931837234480192912622479460371408153714990347879158209078824332467186240083436399838378599494374595324161092479440933223176395544793494601579091068326471183479848916967149146815084162323615407388359032346898464461568046226134426482648802103135145103271423795379052685514683594520781708132660996999603867284344236439942741596365463379195612767175911975705957613924299723678327441660151928827737742229492508480692710913388760045202205901996925925861024582422260749971866632579741257449886247448482701307697839510492674993637718943510232128607516504410193962618129422023198898630366761734501752115222351855056043413204693554055838171884928415869346300175611938334546086201781234361224985780832311748667855703197460048302432681154481884575074589921820139327599246684939562918145098534066387662457443230566360393396660572894202641882896754350924514637860513866707719454940837863982424648503405251542571757965133187518651295108516581776560231048977683139510106110040921411368576525017570850216792763000561645339360969390521078972376378799636178462723441903822810541894319084805163523698702525926475712971675226783775804691913029465978158274644677823261158817974244714698438084355788877421536235895716690471180231659805049718821223338838011500025751078636418499256068721970757871297851378187579511988512187638758343809105564520511514564340919559105428172221782746830087293904028147673755673314139947177613834048610126974291370729136521441993763659605585008515140110781471719082680862653233100229266340424447747457728381039579383102342922863016612670088123247872916379957022952008249675183656206231640951433957883783415007002076696993741614503049715270597187478732656643885499816550160905732613848684929593729561158021934206834393706461787557380407875034976578814386799348126464273189494936507658085693838642425577229949862836522198494360084478681211703622245140328072068337734109966619143696001364529278060960731255165722673058987930645094405812827886804693853705850126206928859402667903279200050262030915116457327406463327333262626900350167463353220920183790469692717670328778480701941528892413407524313558155565458974527108889658797092484393625717990821280743412232419723681881775969057717776807919394635232626728722881253191328752894708204404206475938806598026407152284071425617513741785590707462906332118653962892698343063691856109748807919868849965072632153727167760842978425132685129487427452960870120469224938016626922002422492774417783951162597697807603980375765115560631163720534186293120450411732230998152106900032844949817674684844258009654639057784998835113831624020236281486359136984246011324182352799639284264420560117230039519989938177148224959891785028145722502794928532943222571829758103555052818701961684473686962829090041936920124450880548651054323857103275369802471056351987405917716307404413601841303573434226141022795830812213312320373200110400619796367591573172085455355303879831392030811773205236842550875384359850271427918784741029899605394778238112205541019611792059201121587837510449003653131589279985656823425638468214297783571017206470471332725159138534685597569495808448071848646684400175400178334357813165206724725698002110459834867102390442999474812751121027049136745173532122501534232443175686052475164226966399808785267058204675277853540284648573055827093754563172769766549460347167949536093379210710840506773715232424302937450906083234155198933401674182132411587457425425820153376626064271282432962258472686078911719754354574385843013502463567637120325282025889393350102874317140036978361799176279573585740528870374970015737658177761768139680615994677805234281180633404777933056931753069572416248406987125733765295517106085828233291173247868833823887820685780193512700043155012427098035383919659483985117813662245206810065677459047798545767531536840250190333863971888327158553027621783059995454628432938644333615466508839115565707091054567210452625263526570086164508050367671817915988962837100106709073709120283217996741342085516401051472229528281536311526343866633864139323358099724235175710002769168669565895706605472700603114053174335535479863531867077235590702245476689955082833838520248449733500772475671736108005866056999488085290506588703408087557600080902347130063833961462062285245958509831176945873913115361913572972633907708723582137463475486598808710761093170242102237140245066876800446632012700945276242889591540491421035169618966746369709977667986320053018727327850020693103417477537516961176626751422918174436199427976750198212575397221068142297439880435435711329016543090126867381438129896043135235221347194237497459093684496717165662897340417782898766466668108187759060629836957770806771297387275184805567660270876642782396038041225182914102561413642640656660049253941474304125881565867629689970089347857666509174423223586226890693712399333393141878805887154739070181301307731674331183501476599506742600649156407433553809578167886317206341669856508670368293972657932141719438767736422883848699865298665264064949516201422943705170749466841603055830502099832468554614431189835867749234631315140470865456400048566391635118396695943077440740143864401066026324914652941547933853855437027914169520688339147294274346027492697490507353986967261645219983549814633198078622301701293020682605128298355133334066397886744429632132212222096713332026702983175015317087680030877138743032377017031711587581341125989581299799474514482610194623729795099633394098474412509555229986389472671031700015351763354060309859745550377379986437950615591650709134995769526659410098401757243983199315939937980654955725012981677267178377969208336903261535144593786600705648336075549308844964245568849559872242566315040180417438238733096051582876508986807245533990933720897411619706213509845374848312677422702372425785326396017341797469786997814850512919820179439401296482152771423857863675521593447212782156630490314934548164648529827125046152089683777714954484057201016044761433865315498280853448449771409056433186714182166316824027114457738570129190743429148314680079006163236508560266308262010747580045748283199606882433540107700152285543652234759974016899034489993160446249527986733480473050762074349696464578857952344075335012422411887139712375607128143129415198124006303274166750001083499664446586614892473117065746620173879077581928979705666705904560395262467465607518069695115635091135066590712044764168673149529071350119083558579192745586453382329383485993914200186128470532304872995386597062837133992968262981156143703696106331338545701226433172365566504699574448940480154172328482679869320507201380877129213448313450628228554279224542822667976492711216308176226327489357226736914699775709169449452956844192592087835615676410772464637466566203134159290443588694493298365392394727282793127812980827424403632879216851937314331773105973104141777967790684836245777559146828570258412745114945777935170538773918124069289175555366302856669874264815046584053833705688353680924616814457060432881755919084804854473768811413337965371151545515369483209252882821562875071458123763012445375421683058711195972106189984433893676740787542783707513870025266267825180539207707186959948282580157167978420457059165056119422495064739902596903258854070011477925866199792234323055799295588707623787294549321621404498101840118633225118196139569344537322982651577310908545142072533317397076462244433576931153359531334957341121565218299922804517918804531151089110433751920279385403217097798316226717054251184550216544011879623767135587039104895050056580648514946197026490182715529109162058954042966021269823479337544868732565300830368992535539649529918832706895343598006888674882644781843487076709291837910313130998514685316423214654179223492350332682842867679534942652986065078112879652267287612529276980101721240575536866702233624472366056215187446403572713008301546836019984049838403306716361336697368602502141099159828574631558173391495416118520017544355189364096207149682874382662432754959200152533517279061551499150098454023817292360369393205740331540847946547450186325573172194969677685571502401977425080844499460225279185935907404822573015600534560087402501585315046397595954291615923861503998102266827431367997497480939054751537417064273671042123089967937578059989009846473967970734193165438440011299996189881749065660502241977064523152281115873587104442884522966000136544914265043876068145596737933881109807461141013455473053379285961023544566401923309922966112556887614774741077298895564188450565287064259061878368829296261848105738856511667175792959238265891030326994519749335922297014503695808445850016008749843058633555997777693206381204766119941602504465976658013248341630382491150518216890132540940350566690121931130411592144180825289922693067513266725749507723941538527357066308528526844931242102773901762504339873309714326084856133116630586777903493545230015708314155430199115564124940426101499408338800584916542198374674285212159449409346416396715987494294981177185020535366591056147155109785345406183875777291410648635623612186332832253368180242175750471090342061710931809220028433856245820907802599758377784701202788525052067011657089784389183714297274894819107316761959061794451741606120659330298198951934659735921530282727458953273323928843529897042693110458413142487525039861267394242698178350176849350602106415848310276480355614236002589496713629851619285678827244151214843590066890932418035351774653122931443705839169713732728883158171308003026779741575936748799049559707358372696983054877823861804185680078761528069420915285711139103910951686923154577151733274005313669058008262355450157053566531002066468694731110147100308816061420925636600281614627614249999454124416317881668674696160735577866936512895049490647267356248134710552974223291778038178219737523466536449263738601872205374274356987747447265216111567270302196280496405646295799397192823568246279874071875864210069305988320213737853741964745556467304988468205877031080662753535310241954651669284481680046154716868837326458570783119832751728747890152813731146909394948889516530322974537527606375021641480785930807012451923777150159635253186282985593394295309799686947434568060349775573685384174724575625176719251173968985123928113836560728778800903150419259020783773091060921387676349934918529581246997988273303199762210150350091444190578130338794493943777697377011137479723137643850508052297333808933033310275558788056188150837633850051516573092082380454448736193074686892912839493472319949035364387908878273587002060064583483668337840336117162764216111295468386354787049252516644663357759160116597253457501859031801172808368430276824452310042511884551982458574665807040613848014745977401884886179557532681629613567655944627399551655772115256925829680265895176852260174311652583790200849835216024071835412433066073990421026641397463152746885195995014975849669812012660406841444339949326626295247687412248946705226287805062236859250343080707135148599393564504764697137962947060315071037610199995862242340069699987393288693608760774528056168735385707730327349256359510040291195969578960884921947067982253557652223784571440957938847275455033273130972916253093870791633393579566667999344388607748741831923250473783793155796132418260306571610571184731581619934025697720802867161597144116041849661508836843083563369320022880076208119042673463295432831776377360266139674564271423706193936816214796534991871946471591836158726600531165340302391931029102684819615073050924809574938296578439581206029629706163144681307937611913835388442128193535854168004372705633514295893653869844197412774142262861368823082430118823585838260232021951456585438703601970708920989286331174978172024705444751190121335557981899326458168489635518827817194747338710339773875776251520775112786556658901888168449618134167066986540109341311786012803496729754813483547367676846439508395399885440949599790126320896994333861909327480206089611562960978832544453993684903624640132527587246697958777637430346463839731631892536866440412126144971884670919650593724778216562700601844333476495258368636747577964200051933602083898914920242056361465869111329647018897574690355750432239108097072689989656756772421305159212116843244743222336661122988794297712828639307082773986499829811799405043193527812164309391383967335906190375727305958410852610298006986612562498807989591111252155247282802962670936366449396256187642427120662746470771905905213037396068443555033062262432650266232001947964251285543441268728700244957434149108470634957606967015368156884537985560251070530214451870141651998910296123845903100670782455936640641833601685603491698124430619092402106948363778204788393082735154280924607915861939741580394906560792780917122170867575407259999044912652612763251397946114931966020649936871099975610902932471726737242674889898100954322113698551506555647520126954074082154564087976522651522965993431803509225169772073125126392035012231727018499558400491786995615064130869277368368048277164794196012738353378229570848186916873452792137511754595905563514490395940343823455043313430165287456421244351448210943751416961036694022477079262290111550627622108121975284430158535735751643896916661460074019162945104126161024050060103870715646758517768502696067688201885322702878681606264823373565875812345695729396813711349812971638150531399277164032328994343124495785374298359551450687574680423458519054485621135668505747757329432872734288427447485644567633140267075326952958474487270254445191598309610438789133445309104668664332891024201065760749825890129832355315430342483383487309231429863819223369824474138642209322985653668682784080446380009923045407273922184543281367778070487294871996115301317168602360103786146600537940397803451972652790146852241336142768165854031694733237001111373891863327719546185248022566893449860585124176265365289652754053197958368679472937106429926124708893147898436186331764836752076408644123856862539975897294035136669134198451345682736114900652980525607540464369442465820384939995091371203793249045836428123565841866500129560214020556330108063024256507392787778313861856741511978527099619488620962479693577985656534635122559921818437942547253851969123313219560641665954889767458139248528607759903555470475154486758733191263866552946858921416492326298007527411603707683919513427756680828757036541876813255247433747834770115568047494305196277461039137360016553082413612218155706293967674480326234444808808399508474383680525266662175231954301911234629295374959872376455431311053340632148686752421277025940556404802328103672591270132753696878733816452764701423963999326839849085855712454950975469753147097150027119144001102046316994975761863966214320189733232091247295481645499639608870248987245962455292218392759546851943787144490510006317793216969729427989878690154214835806143394235505035908662683395055931195111182592661064544231171484499419447722708864448940067971474449572386350165971275245438340540425466240750078617745056259714560799023728186794300429033214361904360141522389315810631802164319437534493509618381328110888507235117052933638856064237797766994441654156346303550704249162345710873753927422430371537510451179898767386856725972107152717109524827536566001561063948539836784933341603736227525163029907025376149381145091500750161729472543360922158294204544932787828954759786616766012278831836325455018458738985051711500880543899924535746631300171295080778470413919121374919869615506914396743380476876998901976427287861340546188415362164957870907670871422722973514219310615019114951095097754457827405164422383994557091364699650158846575112158197751562946650748278937130872480154710389286032237173078007692559626882621447283487625184800346739163088276810381159224296818867155729464506318378154027802433769128589518401083431662950101098837497763414843184687084205436722531496019759937905257857474795968518062888524192023257527634332225368100726248375352046491904534648818169828192305413358576086883642270002565148308402400447292840835595092491569881262135366541901965334103098710530947366682340833358622521521388316895337796728857939000376804385379312057265645610490551952450391199341364783987010971185872307785341691593998990936512973353736127681207299523052690748291093117134725145381510384441949911410449601450465175623317087077304913765680214274326584167826269969149118471901743608420213616927729845696247965420361794949218976235468318509833880291329435558514356472053733845213914827435568359397406139877612229280786936957788778478573645487093106337326049441451205372415022034197201585456599398240406293591228801957747974692955473068264365737575775417113579448604965327347500672207105512543342536197273475255915814775291542536203226847759575153220541031004932555896131581644870875165118720150817936246010732459104756307940030567641318455945829437368145233817397202246137238033170452732402376850516036446952549039532823561449200643654358106472782385988445371933359454108317498764471989928100891209798131704668209719754113473952466188755255016429552106473402398435186911669839864868579713631863000007742696042765933216796555251023371227572811583048520589494976313341362784239141733992075275112662707419093415235673749757551600403898359252577205336562805312246302536041417946442242941094731107848601064236782439131968618220935338884547287859966576789949937503835982723526243241002259511237461166922904429734043455538872881623103313554347436968194725788737161627153418323886368331415697129643946887557550822499081321815942219332718352358148609789242471937231102963908401725813398816192781470833206697586771456711689037058947913879153919651439860933193821963790426626207901973320025100863346968995319846671128595704097783498526027536674241176063303980782120502307158924393994675491672960453259463910402747432643629085212101307964403699541085297901999300385249141882290542449472006441827984995068116768464439516413403750825697095835906908716316711109923779520338800681388854799380734133371179687371874731727720099265132830917025878054875298713435879219127875640383470519232002382508746090505149198617092984309270157448981291543030394717562492212310065397080290475940450265101550123102017542725946738328505429643110024680086593356580934374093317073628627751378455013305595492335577730145070777101169230854106298414945110607346362826348701879480193086896958721232362210891862562226484779151958825780503813164730677563794232094091664610998002225347710446588397117055130618003830096152696658910417494408816957054578056482679154982381413761016017862755033162300858141956667049888819470008807356540066845786434382899960919486139457734063698992208908228425992607079724813972010023578709302429809493307732710417898830441964119047679244592477401382319880309399117216241087473480216259903130781723022852720317662598527431611972411583536973482650100096006247734359590620448424194973308242990142358484006525742372846900964102636423806646589090996429016430238480910396274232897944748391651981804005901681652475165358126975834156361071501297686689654743541602825029650483690494839693981351613262752219616619307266555323744926642131286964049640091071579373429363550236478195377936574330607229926855467467959678746702630895103436443674787637993344483819013327618041402810765016609288816415029175753577654520291701657615163471636431808416483511556370116271143318205973471185137765832049617984830300882507357678215799454445065194983281023674141214597982850817119217597308779994912999481779853018711665272797194780781327079406402652971129546321563144930696632068121410139853631985359725703386902805514841518186143299341309739899441831909845536623720483505790984776421608780750527963546207182819749798136662519248610903778231528377401815605887726274290746012770539505222456133126397343440128991014941580825944040744381830473227982993092533639360745226286103349024084096555283518075358648958429207447929650801334074346681905310247454627969716064906776258288337876643124912591467299357609706200873081602515052878542807260874648705014388401140852719104222661183924601536795707646893936342228808974653416799672783207602756539716639932292135543057160369096756519109907517095026586966767401750906762976883562049038395505659381552479088328155333494763576406587834188757908286880824610258521375117415229515980375581468902423098479408728007592875656622247186448268130901027543125354480232012078319525198689944502669880215432503575667955246575675570658821853149440923072317458226620239421186780560381881344832189337055923839427182873761569757698463453481236240521679270146434221874735369516225163104452457908233431733860925350524201832448926433542689066824665156802875561325410007056256215693531137693964238024650926367063063160135088305296565623196579262927383303716494441157396228247539061824086012850957770155226657525288758502422669528957653418618917825931735304557008073989445331468183721703499534338299658301158127548266132323292029073118066616368267573388161488425443856404974493517097199122963058815602480144887937500678691268100774029088336391405733172985928532289836527777712797732857354725213578356217835920017211128128163917249973639669997070770374823179981543060146337614247359635682300537169917480802128863624677561856426900355428790639015538177664999827248487290599818334355840324602437629726044120531688509192165314112040622844279168947067884743679884410052022210022015417885037219718681480887529289345203969715608266223624763113187049140266586339101358441104667734509157664422634833763127178583113859657944314764809063751156156425913220819781810657328456851443430511273636921806022675430134201104097647134900504960362914615788685277734327700724732767326092549454782380365928332346978412829778504966697297268131130270856464583417504415104400047969035596030495627644626810937298222523830104965226651213815990759552803701848984614929941085314014962963273985635407372536863417027491340123647631830503878989177286771477720970030364510879435889978174977721923777331894315301938310273970716020067067290276199149328156234796902226152463052599504648272744468584904545948442135628430362649700196475533071908538925217283130344719065808123968271532602198094390007013230556440137228546940058908285579423175404994117259286684003934225323941933960102833614017425041195212561050596955512955908363282172291078001415729273873760964046263970170982708765309567493998648011754701881626467841661496003532330409054041826728936345091528270900490005936015179695275360766186198197359831502641805468228875566516327808023371516103906548888879135771444909504362871588695943771723521199662079615663111439686872801174668088627157838860083815015851547948546990780882004541768614681423715770417458800289955717185509109022298106068374437674507773180639052379072344795353852899141502396471950176354117697981085928711323677310034103129728483849189387196862613341061739752081436062158466257241045061636883530702026877140261500785068502453545805414503225942260116711264114037270326385243784689474160504573552765536039423038909308484241263011586918679660930415248714830167281276169731871393067550877638285354646226373640280255271018154307001094260833163580067743814113968634169389067224244640796078423366813163457489035077632266763755039243733492384631150302877682744009329545749077942802099217415949800529967537637793973523367384214518330854540393317529211252401167464871754175920854568878671466152002231389611437933755115568210538622454724170446332041732646556604458618195588271341021169323440121782822031920172200818220338145208751747401823237371688492825086968329110203475888304330707663318963063733796756800448004922558644328140442440738747971623063548542703802248114943506467738141872042809386308718316398187719169654057862392423461872572984239302778333425223262445233148757682543345063099874185267943650870165998957096214400395290712669306373514526003225715518888953073177188717381751299801664110262482720739577838957908458111129778657815279647515141656871930820924379850595720273977364638554414944805951979234138043857774345591028877689275310202888088569403418717534951793876734874977125171199957572562732333720134737808574502280763448915868133369789002783740515437776051070635566825678388731153364276997585467755309663102731609129882937781113257198692886066376165493668305379869423508068574235606064244675624071029775855775803580180900539644762471222337972286752721974555711403402919789306788287564928163056984342116165277231641668650350511033043740257124151450817585537877424076388954400502161691129453541646995078447136668209897603180406809323803756627097176735389348079636814559452840085597282168609211891390076178813200561548104710707755772844229029481429344797499870922776704559215438110016591318178765624088688830744153466959879312755543531176723651372103264577267607094338861489165646224959596220286547895699723310571320915237946237862754027396955593636554629041416942835922462048760952180572983806893113185589187679748961904803192236660593944218506318164714585230280183666468531749550223939575392100220841018765705158211267946520419248392305678036716259572463283066926820780232434940895256827102418443931604386218007527105957924074836370038371638753317277733476820568591481072163462545973966883044827907635503342231138974632502695060875580401504360055943927600311021219385689354129998505706281728374321095089258399902702836879789864036401805399327157920190069592378218591250599433091038359894425589650121500913058114043877650845090003896568685825762932217195251783618764936629726780652829769622965013724251420510686569048629500186972464668953923659348565895880198133530731961345808467021743527356569575578323985296952802044971226265029434918464650239804941938636691524711584072815769497620358043326050358597212667968567614581817439955030032096214510785571301420944307133520308065239799303697002930379122953114690473742292564452707949991652644410044970610470807222214634983788383499386266247151189830644295623962306998674128973636601214404892725020732452648039333216464644939248913593673477431814286498174480735999746289461592898951717975473675479956596308976337759578098735985891438921058639735654855682480109495269312266328293600091647241230953439962851686343884593742465619408768774846774080076362482280311298551271859460740649780690752726851286165255150940752671156140786597145726056603079131056484502275516637131645081368870098799689706946252315185375641245388516698807224237024656749626122665624269735378557933243787137935147272838052019243562932457717938150443094046922351856626057787232408667502937949675879798614201116266589472423523337356671787993754464487397285399484525785214432709031773355459580776240103700508024922730605439445435080464698997064966946801152186970340124371168267452017658507291643165123861233261720429628872521191037160938219490698285024836727719195133900160821561722463974432389212253470865615338229626144829132350272678801859294304042874794965397633093224042354953404564186870510870109625021642414412396038633537676931963199870901373448949597542705584932564926296043211235885640846506845921076177815652592114859528406422996576130640730159291699257477285768725760418238540744781943738596810811572683185576372067941319675891831311518528910016475293964884622511068979762088000833821162906537326771364466382779907452188593180526154247576825265045180439964057794540803008614741129169945711688005953890924406679441962230275953978275118461271067314803226782048223555353681135298627470748678236499460830172437260196565159815069542027382200761918570279533628010910814525434022999431396250832502222019446560828568209671145185793788261328061569814815953445359092352824508249478684524435375223564982957412157046281781639588759296175491535691193231943575936541910688415177190985485782258639899475530909636339876485895459648399413953710438966335690191154299108218792846190946649315433159081466701475483620887052286542256654618951555509363341805673238512419993061231082019558505735344499566334302479476805774038326305216351528969721984987682650328007148931193357471204790838343056388699253169402406299709710065339300607914927830408007256312865755338672873904947204143505373299965600056530179526930633166649492826569991997308576809987204412549637801852160082930884161512495451500487326457847576026665264536653628287746604130866878553721495114350568690632374416364494526895627382307739932590768979259603109713254729188567822746023620480236351259905256216797908584895598625015705537838038717496323561633502010567688112332093410086768685432339445324396554709210059007999454468875474998868187082779587950309172682452140453042632471721759049031839384594825073188119713546004453767484794479530723442151922449354923169411774044673684380085986605649235421156319985751443817997867239685693288540470691992031198432382167533338650237527182056587028854094185943801401564309575960108748927156717625076481587062296499130532801885515179906042576802040959366798881436381051805581895531002922565029530277592986912959766649387312168233333944714473441669520290578704714109812062851311370430371396046449376706741246482336393205485557412610380635792990335180465146888622038488918854678607060187231623391591181625356674623543017654446889750171634531593590777656237334392856951850803917191218978426703210678171435288204153448474898071193774244938851364836282715839365187113009408750164009405985259880095163871880710299159143617057956620841152130012786695986869593288967494811213697524799091328645009444008807212128933720626127989970791679666524137933524479055203542850395502734727089769878728789569541288563302267055480046229211741271571646573367271058731942302136612437426963837849313529220681987099476068806752793483394506863662919159002160770552180509991058400633430315324998820704830966242214729382528133429180417796307079236477669868942197612995852878095129071392345493099075529121481155386639296759124717653280955395535646761814610959212330987624081292680991094511163801760411749887721172455244732639650296020751249826099827707489900493265534342637075397916751517934728196001208439558319168593283038348017342279958689508787515733800249305897945365513517033714066103451434170842006679346711592848592778497013098203630664787742311277143782188447763668123513476773016147021570223735137768099857379409962588452091781681660157660159189834802772953331999869296950079212674719343445258733835360628245639742993046182585529138521825990746516492281826986515571555485245256932646840140363718085871899060449286605284596094381038560208181698700978900289435181800566707384249840196124107726505295786631405854265668246938285970297036948870363869251638600570362919110322495438647846774944070798576513471539291228750943862533919224383711192427851747042534409208410699119197480100075399509525356949500250871331788222152249487688133116462894286608032883526680733148235675136976311980426423730799683924125056370256145544089117256710599452073861142986977660731439239681863604012482339318884302629202184510039906563500633112050545972389852435687907141603504970177378722931349897761908124453045457227698800530925013410979544452722981991535692066258989567961837137677261506305620337993528895792103497531611197497731761006771764985460350680155964341372399456628469822119355683707498248184676899412498652980383728497037878047290583205397703267666001523078139004881100075766855872133065989077028283242904735673106326095763181453824458032154688441391113700282949693149423572011261473612008382938959271772299951474108969447986274681494577256084311346402900753501556671196756690805079001095170740960529400005778566038762169565988855008210116748158482058357366513062049011062298495361130903197099700481293990337550353884862536814016992536688703645568352481486363336215120703724217234776275316686648731163630421155861217759979499710395183694264765371088929324416294480080693313992024880634731742659300035414983167977338542387961854697192325861043389050265751848165267893807986364109331245994698355963952180074530387910370802695174012726652065061670014659970571207718472257196958309613862037066338521307155371958707379213968783818385468638844673243530860238338404515764892999850275345440352537337848125320118638333496462855288063709508031097396406080356420304002553309400723843647573251591916528193162212336778786837181855477769353315858393169576083949276164361131363681593788695219992665836611527851826238725291893597598341107293178101657066340526908194739934233104536451393736029223507915477285177066603338793968368605916070190208277188717531757224305673780024690813687277660926822633236604158518940758311811261079681059566351407802160459544124902239076334707229811109426712149777773608833389666522332862876431977971980290463625943683332053394847610397534477798245498567649797707427508350909595039476507130689843847237298641256697128353269915082693448242134338240705624557969383664407485059069555186689849997382379199088874144984237234365201035994979443022678541158157356260417034406997926354840783950045869633248572328870847892735010681503725079228846929315086522926058124963706696522847967919515261286401258942699166533192462552211575538493350236976819125216094921559676197447711169979650459690862583987236897948276100473891318617819440709815684479137387535232334204355348948968717694566615132457210550716383462893283012784319919072180447280087629641076446594216521151048405416433971256232130321708275524854663565690251587428322073202900446874557832784251592292244034668920438248876838284415575363606705298299796622152357036683175996028489501252759648644993222335006811522991280157170450323830822890693754645794829984566591890476199195607841870245800206127561626588480073118383404967118865818715500645450239225724346526345277797229123147496144660649901985916029800655339584198986891825376809949765511357455145672177068213494384465559795690827518433601809371287799527932411547887096117806881129764486668961954671694750301230043432613971051215407433236498066299925830599525834665267740213929636968246150159889812192937782618293157662972043690498600414336771750770885302756141184378229663655570958766508069298835625340625788737167656613022971181647819214669534675374694673898337565195544255549167825598227487748954951317257162386842392221599949186525510484943959350349293050608611732234968032979551686267991421709682122305367889129067225294285244840675686837412677050831550641433442482173866902417661734276177578564640853659347832441465916390098607260863361571480601215341268893061853234980388674425809550089577843065312133725712559733148020882129761079326196940574777390061285906949080620531466028941303576758589177587872137165191700916606005448192167517151881519220404156106898048225951073916630465135356637038428395830058773471466106564029414132721533618218351980570155452142691359780523469347194842336958884344548976810261739712594822986767984350216608009754404057387465584030884537421780036134086537474783485101602975596904693511873792661397930574301239699253380180628062915003096928868898968862236501903520965816238056023448268058312658525317399204037046695460190815319105679094024330360261897503469455199916188200877680361942953602883902344951837543120958835683311794268017090775182599698086936681875917839841993720207806547687263037972477247590915584377595470969730038267836006840252825002960812068988417502410741052731749812630108772530327451423284682687063145374917187832194967036790584261515134513984178574579273180733888919030040245820787633784165110754082038690477627470401796517793233060078760998173377229828581737553420863895585674924329917796781290711149679079006191151323052175022289016757145576528470028121692948546706638941528901505561936643677336646582338906237750712386769188471757417197955198320323851666657356986748676732348956457689400062513164435758768211100907082678615761257481399977729659393392112161819881462556250047515233931294738135525932202425540052631295942703189840741521186194565814605153798658446453685329199981005038131565791110964626923062058025365690231074678884538936070271065679125618489126744423308943921417384045303677370601262084302652755421197127663437138364264871123482462286530818586251180037580275801513386498786232887809559582381394487323328582046052581478621279768300543124186792086065497177963232839176312852805709235080872656829831440166551447971416588736050035434285381641089863645685836635953040194526889987533571114647954872588644873506786112490478984726563386962891357622283977769060760260777139205672949725355750551248602731119029598468388576102954255184514770884199258954797816156607489962615822096429067068985176233863452986037326579027138083832571402632879281217065631511135105665115491779368934062201269705645622255052285589203947916300855664674211676146596584977986721062414962105226763142840230306892352061771992989762081232134671377869986222962915098798064400086347388472988209173292072927308177453585993812696113902124920322484764538714585863785275668884619371916564549117407455683815049713656604288900091766117163696779846321184958618628815160814000792734439082502195610586358400903068268090188712056088700356188435124858905368152664297777311241479525097739409936879030552553495781607286766809767311370037649954871831959787301796842854201875257757644002732218116815576227033985746467943338537118592541200804486626573112627290276525248785800005323913249304041749979219870579557805101375557376127104189914135287375675157302119896615169721976493697921048281461958335280665184154403570240275911990803676239446300205087262888001070253661732458934894449886786967614417487017832709708561993939330070143775718489404462394586283873660706012703459973061771343802368616690729089443247598782568606305422257556690457593822796965468604857175045151856506567112492881037905644782339066014518935220054961608709914510634096619188614710153922015509737891052187318487163201556658691052819153986569081678598029118613813854362224278433791393265475824598836126140754074903591793898435397708433955713466835117839250931200106875810853593737717056759326340011685044675684417720658738765583956702930692564384161269237479725945349202501760327792785328450156243250284300823608539593078217720292814236229469837361211817157746563744150599516929241315908375743551838408040300227484664720615816347052274850011924456592562769863081979121942569685440553156663102648592660132132369545370198207312290603977403361496058722789913165875932874089478067310728064455421965996801668702504442918762539038963371084514745229737896977386382822904625397850981633043040049155179117975354315140710739248947164671361262772554021626958993311278395091040553842816957597690693981276304181504772332246749385634881047920643058555723405246170218994723589936908194116101913866377606720361751721706526788588981516063557658345392958781770909156454553017072320075933191827752521249332455277551821873750527795488975151575274893774478732438851005656663208246122114884404136387900813108961191809800571738464334374898643574503925854776672007108480628958087018845528582450145542514970757145423015274738325292574473561004798077695919881943136995431427873141820865379642852068267444753355379951262889453323993661837589694333047120186636442127508003191708388763992438880292099124142874388292308319150879271726898978560732698077124351344600294624936835377215779717463575845448740956357340450481714073283463438222120279817935822713590371400700434146321644585381461997994840622354897933387897627638574346376635661772448189634766192015582696329859062482298355105437943245419311954087339122420587083974312995716440363438778785468120831392790200145497129349237004283709662681103200035250472223215233066942493636926075858183782355138886945099090784382197247270112027917533300117878467056042634119972593250501167824058598853520100624542609628530767069509774078625787171462651871282756474334918560129947435927128506916570987128381464246124174124656467539236798679647020449866854085035552698892681969890959154563369403045675248899403329124487923356059697792681569926823520366834939052153105220807090303045691133503056469486058514392504819887203190602204615035782504199257166295027026640842419603784100393865006087236678736233590728829304604235266677145217565559136816104366747885689285688517073772926186728309634489598211650086508468523735348662791665990219133656298489861610382967146046603475384184338971073525347049248167364668221382440509580988113019461602882733966147605368155841196722757114473839333112050821754399678986712701231682843270388743007008607253552938722755689904869520228494465696830899148654869038384644168753076423933691797019150828535631245983699910910860373929299157124250598374837859024402665276921072582475139999317972480351482127048546616508782200698055063041374332390567654870026402091881960711998044609331057417688930658262925956499315160498862242036418320428210973718959046417532943927766823975913977084209958992166084790590528452056515885221079300052544356134319046745945810267733272227504662488064710797130386677702911823421956256232950482180490371197160624722183400269110928241052702951168955604962499490069116323105510855398557467079275191332314107782463334180065869096170414796992471820400324044430767697746081530754224408677190779645177531567244574814023332477188917882756251930983898940548768995092473036731354932093969553354963403914160002799416436455100037856337864615055899755878522882816337693890100518924253992666050980854727754801452483118717349032158213287200829055070748338347265676593983026535266168080450615035564723381844170667174415704201367619808571349458351214353016763423467852052673133071050074855537865344033048037839481689606610188764126562113978305090405500879600124102388812516221616610384550152304621375004381785956972074312763935141374911140994160167291298789143274543747581344003585426000328899884074246942550434140816796526418605310067596033390210880970075847914471656900021396529069695233360048957014052036033862213274443064332190448107611721569033793602433233892980237537901803499176961958204208327751846132012073305798200870417512161441024901266681365952962951794568729669589866810981560380466378259742832540918910686368563989927575123257767418102636206539863813125158972437394887728869877173125930180921496812834174494421892916741778491292398705508854297143554252144875016104171575439896104386944356008210882976357797361346926589935733078886578826563852234911283687456061777518452679666035395881042880166141611748435480332143371827350410118112068892871198046734540300564863336640689732709911312594538300557704546794206980749183132036078119585611026591559891145586895490306513699479192250266906241120353108502617873000931553403824571085244103418955064235588569962153358540624538465182702344444055674630878019424689236979847406218334149823525583283923416289060162271947412600951874691604054398416474236414020356682410469185729642711262674947450963444494910129619352074828225604637374735710668940081782146231890061036394836638452038570192181558301754815516859958138546033066997930307137988195748523570649921430184934852939242116719019034731231933686112136957346016461322002165519910414739891030357895690603954848807565389369613652175377244700853902610644941864409895146758600399568218078681982858010809936740496880286054559377340953484725011214259190842550733124573793297359586070755893259769054381621205953157215627615537870757118933119386795302198884759973953367030310139862510501059717230394535260908848057014914357399209075494096024534729967141586501588409520225964816342281521260510492748885314260733806326876490644271401240076782459672817533605395775349137410916529805498424914660232418431968421649967002924500513339931549799590469860512861821518699988779659007052259887869519542300429524544771731067676507249760798629730614477572548728156751457739430469132301156580470016758527654120365602943180048425621382685862015843728241079745402567749263968878355160300342677657687594207428636618432709346337300542956817340551863100780433357317396456427992292789421838079749966692021538310601101327160353027536211099955457613145865982860353218404006211108149307445926722927514139853116159141596625672240893837150314839864398818792211205723425750054676828546821426848890732658517931491670181053975603549605859197078565992606404293433642495899017326085610043084894350198232204930175491827571498754172521804207447317645966510676562772345080123892131301270617824138744698378111660204356407935488264975833074467840075268589570265056935701078365594842963153862417149083694586292571593605945339600925286493184522539045735247481371618056716854993351174699369618901955342012665720991287966386508402222758511140367889086861128349996218328483029118587968468599805571181482266351228685796699958335404090531770941771395807808580170432648394332223898884373581845474892910429502198702657888190639352033613625945492516360597500172160162085286033800703392710105415276215647292864239458948765198126509794717418691003278231173807868127506013757592284415400942346597995712943992568469816373355429097212619519002412077097989284199381126272649473377535960838046226982222131146543578722282828020618081454773930659014445377865166579205853736580638020924667869627602670874449486327397685840076458989383726025365795596062906554209578647413608882820259357883030029602843442595263662335634233546719786025776784203059010690501280976276592686940047040902983955876885045250705382759241854402762726222004687522230359822189895632975298283588730192635408969788825036136651876260780394429793531594749089673160812203208143415475097486316843334689177775392403056045078513877279435146768324116212919137973112269156864855667501254131219012535673569620070039692483955494758441851638819807929630273454004318933846060854992843069332102397532055747163527032480153140110085710035141990831431189206241757795891172929904210776506996744425417588105879056283169780395836791273246139617221712554726523029619746009010186252992080896017149949355253888951514446913935898398079212300896567982587953373370029949202473360546093895479598669542132351300447145899501689199854064692388371722870400120726837209654797190494670993709236759255359691683368120994099252687543621662536381697356280309606314026837338594142522396069285968404686528903306053989814733697400592036166158376255207535150886464836206390562174228692813760524322608408460342210067292584482458860052238411033848349004697970204914767945922676811743965297775876895918174055300353717708863084033458337299046269055295877394210587583501884963894374941467111806762693981210378108815083031815131500919881656753220471512676476041776573542772696994178219123324187837288691853979136826604768068753454700744111016879198529046221079198612559134797013633783782892268439747510431283827414822275930542028171050966828858218938145118121007255541322037443220336529042601565223528686722940911472652204211016953737030195816900871050223016717786192764432484335598701860326791385840541496950533466485343946886744998233849735165392524934629253209865467819490634403325930374375131235345679864526548407339552041674126213373084128253194485367503468664050964266224155720756493219227833629517816090891005723482429524964832741286857876215356659062728154180041460306224919936932578567747921966174871082999097624023775262192443158396085694535574163109305346049679537660006550401712685163659022842618639767105289173008862612986840879883515285867656231796578398177426715334644937437183267181105871306893745607651086657825317541606773093531676177481038062608699942191421563255782029993760537191986574567754496278485557696130618606216763198384291314564488758866323426974604826635315850497427888017991889356240862072603561115614932977863485741039538047851653923650070294506470580632360989056811554519023114618244312616273300898214845501813774585176644445823071227718949933468074945084038826216169402524595457399584224281094373539513118133395358182135472296102212577962125778879728002680595777949313596040002562014317233055093502611261085004899430449480683931070359668139677095912934982004391634202482499805268961940907567981644292612133161461818780739395266312866610819513042510162013890094124158782532859586956997350603160822046177898845435326747512022524094199242609835581805835962961538445915742849388689239388892122907318146755653884977322680222899965254322584311654935686843745255906549846913121175564925059606928738441473195054479548629303420823819350650215773055974486500616109108223019883736062346278571992075880757787092612628427410729702530119969282145611657239405379266779450596941142017666736003358038538900921285414407945410995355032811722062620824917730167799567002743405335224380533481240771839082885346827629271996130534350142293852048321536912730040381547173698148975177510551514204955524837610383169753246206537935758906933376338590822303597367420300164390459236994471310856013140260656844609478200891417637469260200652559820378204222767608070623177018291311463939929890543899066133780167853022670129104135881384169130663772050519662043992056701959569291337096846531363108759712534529554663003564170406412394830915252602989729596619496784598167950283835893076377681430916648934176418422384212351999009643432629714316775575102794753827716208980592257411887649084970549002558252714537420505771935408823251077176451555703268133003031318071296878334148384289698228043489357096828869284464396717202276539327934872973110363900734168765898425624451925263645413413418755016811198876149252990170110409146922347256080632314593570757974856204014209184777813737003688358689021850610672300463320289680327763650169700401433531414783512734619718864781150808086340848892977780327524019701160915017686189445891177028068687048396105867212374418786935645971850152945253908144788703955745239062541459333462146599689773082244316633017308046581940949375129334411545192911166500067667871969006269582485246145233676179075657363015255077508640127137422977153144431240618633896014384365021722474315342331596428708325643090085642544405827859875206597610156247910730966135287279564536677245410538704641486076197406606406142969280559165788409143337417579934654237407352145221860766462148144853006259711380901910841894203589756541101010460010048236200941618806980341468523249825396985482245857588641569313488614922271001101292694143983268628143418781696289076730722511000618695478350379945097338131211095745448231280691819028414732646860142139552890211580745334970092673620479124499085683122919383805439717457490645555628810636424920419327935903034014876215169082734787319869457652522668585955565267213813373766012329187244692201650872268740566461011309911669276831541423235660524483726465556858832206205248554957722933331080749216921293882828104279896408325352802850414873385571426405559544059071763302652710121747473977966048313876176604098946440666570384040249505171817622547600706065661374130162192833771430568853883604114927986919958248120076577507988564155662821787492101669825145936500665461399904054680262937813125153726377478219280141312506735618066905497614197193739912345217924514762270055876361211756073571247617132949111119067598537356753362101367445992670277800228022710156308924046638997120067496318363422762827314339853013028102940199967217437500885498750393187553758842533431543485199138598047152195521474663558591213563965054516156017892989697744232772994888822305760397458322858889584942394294805776420174850682485866208738511110432534881913742559088608409442991567021136950431933266328862679778453997088882982117791418362453255185149018081999788872180685673978932889460547089265838834728292110392875938527856226696719696450022856902986347678564330452594593885655009316325970808717220503337958386928816193410826890338220277195426001330343924541198600353270657420424938180827173812268150663934950377612481163923260347996469931420573361536510711062868910626689186590624169434906590904207714355717622038584408034538552054892197660204950595016734191242690759903378996348467200113307798578139152710606349703511104933931395253815210498416025241484011041380184627246834829035621477221597250955610706765020920013659627428815663880010899356255148008168789658681934864094994048388882033255951191691118282221813921135775055709359464522843355448858010522180476005093071943245496544714156267080579300309710643130994714377158357893817762165623003618632024595024876712008491120892144909627582136869268839098171315279263724988074816980234221339271241728271739006429679379620632960280475865181341249687316471677222999026826860016584155203557902202422696659752119121268751561504302982758494840198460458721905722995493127735237861380219584368411981634950173367343438063409047041641143649141738607995914154372140046878478840229584155932172471696904629831109791488454355623702057446873496524613147633938376531235727920884308570304482625294235496510447128230686457409712031867736345585366514488087459282844379166889029593625318032818932330913876000135150250348106821793254133800451281515547840759257497408091175538088134319481678327395848729574028340010582742796944728228316321308484154610000356124109700664166518685833776797524776874935745547742145965218221961565952971467170590239708079785849910756239436924748519533800882703973048477440218165813216472071252449380579335315590186928209590724674893985850655443599466047718334183332184336036408659969704094223490986685674181106328588124962293852334245389739406720713525573963939143451662818972781571957512078785728638417841766126155420771513419746094749559488926047913218744515256934870220363729371981932430328265140525506428052021578416217700793386014750209795660308017715847236447101322867434528633704015484455934363205270972775876828164050484456642926498993419886341665027774122771487513841414056942559435752642135216478005548808593025810711792211268400099467047154849915769876735164611209801763378364844478466258706488163741906635645724384367474120736212779062815365929760287980799529019961348678570545444726469589212868844866502493439909936648086027535131304112071346038197161740814422117798043823819072256823621478644944168712929366127540952202108183130234374459785900284552370636484260949980140690039614434699888305401849686977214328799116549939144833297630303005800952508462320526058166215167138224132777924747891085789471968329283383904196353730029760983273457590989029507717433106805563147051168388041773924468766937932462973743614620501369760028056092097503707241959718646395925346722038186445948060852128525509916764776695355057295110543220445413668735841435889492262929280261242941892793418626723549332249454620469347952706861569572469165415100767747671719983908289557187692840874050693641137021279425445344196715379931785358707650975437082929155677050850151355536394115992576945720423060650662529840917089715865818986355910949245822353073548114851231181501002436802594365370221534868928233988648199398182130364285954357960232874986812429789204480646363195468116529893333251182109774719511353456090845622828866206921308096819840591340121370294763751729964824515998525667205221012553191810962242433383390483284840170213487843734822209825036935730897260240997227613460654258050038911334704160251920009111508212680609954903538202454794873030349602058817986326426818235764030231053718290791668145571620782296184917531643503783229514431824113239799985944858756395768833439538414395497730689743492242767291656035483838676996579069612335673896363625141166896965940939912461670974300801680657596226759640604481429628179655034405806773642996128080304374129691269963637829988149638027301100598450996735411324401241937302468302371735911392508141990360233423725912353590736381885733764906518977606987996421306711707764512782382831135521216756731084542373564069674115462320610119848006770321715904225243947989340985729828673067149055546630926393664759517664949808847276216993713817943195991289153030363669196480973286651853418694213004690172122689366138349703813912266065205292645485182606472802600183743744346059934315801975637295081128267334170988314133397582037106498967828485842474259945223037994613841972403494123908011043232369787420573346699921349373300362051745118569289787190408794496786440341359957124105811012126416435942332268021608250859890933411960352508940270786936393068614689200662795512404868052634959905994694479757693474415210795190563829765428857008546858885264674768794522110077626844294048747427492768242854695411020627546731172337746956561121515979013347166873534506073672405710591343404060652574553701301438755934248946509887884304793762510747103429970951275949555177461247934626619995277421964216946540694993450215482969791037597335550948597106467690939313899408025673835419818589573245189124965102440462964617582814596615959635040116196652294679864433317895050246859860056080935275800781944379924210131994966446720052785120243418620686086085687712365387501439062725304243445831957315477731772041527795985123894445215115151018501067246539898928900674887935326452128324432563603023174948190278720615254760421600605005101088218633843110576413401337424025114139223466405220650463771914057205763848655067379245448927011834469617204075465890848008071206656285906261812301199465103535723724647806923999933812896278573457086554156972380915323154895562519822201442214272714172769641339568403614085855116545682374703974215461123784221249917810090908487948949043559312259509577413772974783185854880199106762692421481525388132831526008666490087461939574380022928274286785099982557758423900826568734733402273086144171804369409550607575698176620208488252335076623868877167701436494806308617919553052717741136813816261883062546437633876125040552554541256859038054547926449977059397869411655392408739364748055432708230388921508221834159670695788830815867360567594837309554598267675096962530166860169823893295767995652574722026648251420215668449650462970055776199954320723949189403964592981516048918667100988566492260612025859489896518172791340947293831572451112684744241384840535380981405040512252905946520974335439834613941060135914216046791647586420093467952895416820156199639879745616123718275825264102786389619808443197300297684215909427998354193925286796668849571624177298964378909422186188659435625946959956556930527805506092195505412516020770756447583058421322118353341047022299331143200263231666142851654568611423223104465723857386218778655450962260633734819318431572296005832810312821934130351712893201148170327398260828814289410549656300898518051406948509275347718775588343991523840810983900564180459044173922383531391266844770820185410118950012646064820018595351379231557214878614603365026741903198916853289149062214548156080274026491367819398094643312321290717784712129441508676158442560005211672819546401081756362343550039680961087899681414731857016789995503593424773481976546758709566431261179375763192166429065279833466624544384239761897718464981597659949538409293990618172501072607569420592270670727670383150986408584583398688645887019295178726054820016506737772561065947611786104850196902329681422982118136335202242718358711893328752780703373245406994975176257511163577805190420538226193227066381944915337544460307623983520502671049252419818302142485273425722633767886026630171478954084083627886624659903302552149152474414849266571390437624442568085425087894240472846118195397123874010194475166401737421642857704388160465130260944191386538002134189353440066018960677367299579929543591833681094675957560890137546546816509974952172696072790719178504486020613326485434913667700019682555334684755008584825581715805995962420017256297890965407216089104427854006440837075228814411840782083305026360646147902956389915045644278120101654252907335402433045794194034505714339676387187218438477138702005878563452825387045709122900775660434921627622421959241403424347779008572112575950742747578951541279415665230195050323296493016330640796096121861362950719523354519418208068136901388162082916723610840004322854105123237756748104667241985714711738375325500962364720815462597137011890216525611017530676199132565278295983334062156976310794619137022198632243657877698324499821053450890038583515164494929932274484535823063687315037425826140444213929542865549999919023566798412706073416564348233035067279221080044684526345437324509535132341939818556551647120595820454695798043597525565976016875054884691350597937757265087215483011120366620659728484223490947544097905515729187655646380513829844450900744951585893705710656846718432857442237215698861194932495425924166407131769952943779385180161145762897257072550495474204398193110308098915340835748705194514439117746030347331744976827425087126651349099581106250136620862763179907200061848505821969766692956591926076948904160049220160811294457134179763305693929573868689692780356779013406332545700841551140386015378316406902058254496432159136746362240854393117296866865345224403348899676859516639981622910573399559379437622062645594267035423801298710700315936204261355201007170912242261463189926122156362599586403089853107435203219546748580452368350144987037455118061802498272026066702953096180335888222024964439774702065560375317445749740688098607680174179633541042786747650850292199497164101098575295779178730913963947269622371982973658339323737755178104085895245540050583836919392715206970432127788481193112285508947238891312768626646313569512297473149875082128783907476807330030482698206181105943804896096951307509364595281107394053151590264777602162026147792758916883685139722382095924725944547927577134606504950021852996119625678138152568135354049181786170728147483813498034904289270549829223317311984901582582223211442820231031896999135650704132295838052846454076357052050523832645928628450419528221542412467695945527934333115250453799784503621940052098749452031160007125414467953196528409341144245024651696442028458435210722683734059266655883021209777470112896137414967090230022231437154452482450491705296118270410230117612382442356250917726064173308067157220883146961610306707518844062170619241365056077802291357634304156819637410390786222768500967462509962693510612922636942184877285510427668621136829507341496298533881075042134842161836211067174369647631537379638402748177115601127573124740293654047658004774989199519633070449864009251622538070297931236853097166727031485139222636893803033338419773406307825385375403499939050069266084539822175652599765918333982945760684834393382397044074431129986148295295913770277255695569078617887452563427545586634068878619294594618244268590290922982784892530592956417732914575306752578273150899648504822644510949631467334909336569761812564179454624989269805992273916562760630212117311776781721108397015945780379024389967269466812224743714945353849901677185656743549595815814089830083826166464175060262359594603701717547804370617910745450931959416407589168458629387097104955844504167521066628139425218037348753544938635803379485172439642756767217676654648821745128296757761616519145319313071233698181428053807155966295261768221143942835183934742100078893992105748855462793209414992260029719937509850902516396013564824930926411189424948213222149963849642496592761252909020063144644237187873780005553098703645563936294770354568176892515124262553031024530868307204800016616289778478948216520354017558300467871631099015758346345554191093948699736083814892332189953336783382862517301446398549011223226535538299393411542044883253509680026140904464149100306331863427604497183533921402656746469590998659263393784755258413658767650734311034116438617208882917729887654506754364608496370784211544063901873681443009460025990349799649912814272875518610133835873273079419160742161820786106901254998394463797198114944751185424359585751219085506746727100097264775536162623555860679724263562563257963082655511904830920007887861206868890424901327759084915406907928656225252526062203842025581210671656996217207954308049461244150028232360216235708898333688905785067908467526280494825207756694921650423503858573990663352576249574434069709764719143731758520168187792560714609478642561307011543758692133424270869661692682087796316294505428520507188194858117334009129282736487410874822718837388433233648236988335771438088382567016167668382709392726874465697706855547032930370406010918470011802544167868198958745296624795744937616609348482625465543231288284460605496246946381371997865281358374775781465207974279577822634880356117677042932634907800978605572987674016350946852584589417095233580198449681716624590365424676996419809533042206337328778380815862240271552297088440280332402071248481959676111051713103447783859025267774421600213349481820236498102385108069890849176430530795583489825380092114999194014506440449927840742020855977334166785356839124363768716323221675602111027219229102298333669167326547266087769054697437854264230120005257185064201951690947235759926296301587431539477062378836877522644046773474202949039719430893187714731258778313584474706583475046142105071316306500649080337338497794928843234797922802283129411359543117573112820998352154672813569856343675616276574612363035012638945709534216737826944542038705827637187326925211627476906849513315630715758709594723408324228571951934181813836216850160274575137138421840445303065345261220922070695842583714813514115894061639777795748027873242259202807430625314868563931432165155497863065772854194368023671123276232258449792710236624642611808362614569741771539704370640117650718378352265152994749061707456848988997238090964367592593543548671371815458354289225729196201046855961225701375450777667464190780319987793791322594622388682591891312190892949221481304524545153615055327630397432364107453002677787716562059905114448791427211065277383360568706702545749757394791891949770888383753846082451010765886169153473938130714788730416972254325247255397751846676293066941082800707082293913670155626885355384265009017169222932440825238943827972968906633188358836982928368691444310526056894564172553319103570626834148691290557976206902471311739370385981534573959905146247834905743957304170828273962461019575392638116957332224958003876747855548557499056407152440635867500655798370447174233579614946198696651847404985366541564420485140090807105051887780213844548408481292773517564912618325525852809679307568397648348709061611804397530445095626831274357492074986480306241485991050446753086404254795790200524881347259341514119685634758210809718839887620687564948341235060619008317479621477937364522482795542487756260604227779830896526401701545591369737116946050972104262660067949178508782060022483942039616194198802322930020918140816518053196066701242152085405569225265503546237714613641617136103559435339430898289714747350583670093208275567550695604051928074831956467315035196985927576773900520616697609494254591630580629035492184625192655635683907303269866524759646784483386506706263222605878144652185615834667999079166700236556371056461379961678733903944176237837398874631926875923118526530126880385114486221123672923544656549401145630893541873587574639132097381183250451648117725192373001978298385643340340852073433751189203060125455202841264381640650687334495039394093560922198308302817327584485127739738313854230892000896923805525885505802167482234293885953361369190642965760500963751647620969546080434271410502183596953984092153601122395254908603409381215229236276891115896537553258604268347012460421292488732603808855075432759225983073332648394083022872551121685106588190805677776723150522781226784923812953327106194353533312147069978726033961105162238451435380788274358540445142110533410071981436882880932530936780777839943140812997064964536870205368630276874608020980010255758565543570945541114119849969833571823437638841334431529653988668770793627639570905583254896156693111017701661006453003956395258115235732762815461410547837776440723452293341286569045816393858779432988902592749939979707623822417135977960691502005446605528004507628947267884127056311027571214549485514295884124198509696450793447800630248584446467658294383518467662005920203916094611593811907509660214105596643121058769740885692687887837149477431615967560505404715294951365024176980002425914976403018051193123913268150132911171661678658271666087633148775735960134561888722987063813587020782288517293480923386405600689579493814880016404534714220437971695568244180726928004117344874787038826624560429754818828802259416434753841622264571509674494686099404432028395589882993674573287017538343692189074059146107938713895221721135113352451620704143399744761819235825272978961235183732029535646968765704392705999357657677319661851802512260108412712004104663535934205856122477869553028685361061910732859233406585674702739695059959679656425580545518832962218199405580362734707332559917943370444199327211414087521901272060450582000086739347586866769894211460095932097661742682146319342616170293787218970272430445523505714534325827032981799677568083748365018636610330634430446087306849270416622973751335207867740187334030408900980055668721331119396504881932753121090398636675736569784762973571522644045738530715371252439235052640002244764741950025740373091433558177929939903745196372977624594761806424681255855113488500712279933486991117920627981068365065611489009524845287555775223050185013124452412512773330079804261777812326816039394687369461971378992764171927603073300183740548188473575843710067322430019808271849363063713156960490227697927168706620145263500791196745169635338340901932298249449735698044091705930402783748973285174998108376785153288889030893345580175332731122474461881838428138019407806883224058526678122362793699920610781432722691144190316603855335181603595945766821770510911449858463579884228354496408148558378228549214544146674472531357797302109296153061236873895643290300417558115372730700995436663631545216906235560462981417323812319626669576813405104378068017735668830767586122893631227226511446920342515099838931453293265802480146802555913712006756431341668669582248011094855817217104184688885500137231294939673089461785299320132818240129720749099089691625872917300604278863488194899271407954354006104993257139010850034629120850046963674207809990839696319108702234007134602050840403031490775588726114169303968522445997745031348872367099019817606590414869598973664787981769820803741923608955107230559199191291627431736585581841395271058493493967373643178033055212815707874138057755324467234135420916843259108939809756390911762009095652728040321496047238203222048508378895694570376883163399591149912259169374643264171287961126890108330580641432513872528686003267083106476170160520996490363457819087888639779146373904911416975556729886386461382439353943463479047654404794443577534544153963171097767878235309929650802377039635720581791263709871236643255257520768258688168228307329788295537824535662677476118217058186902638413974421541672535475207834741953243867243191768716451861685095031359456849770107192007643008709318737374847820349876919200853807609737903218576945492290669455368248351554258791034299132699882320193818914021871884279140416509496643265823324503940651277402659667030310799117804763406128910575440779951238804089476966836469534990768610553133547351695450242382082691861377656629053358920051989146759139565705958145229981008399768533491409282684552992434483058526800266251483311560375045134040924202209797129367880855109558728786509618722289293371535906144241584716482559646053049473930874690273592392598628794156204661316577332420079532906534999537737897197845932457294523390717984641945485782398335306041964993804252071683852448149757831749627582482767442830795848548657848696191596804619552795036137105437502907744448206416250772023806017979025743859501923417090334021474449184119446757905899902618668281967432471105161906576814048489388590080485613354331937853976039269672406083841555308230181791829676677636753601602404974343539460651268485000219450935042255657260111483567255771419877156196157248115322816345357750255354965326251787863089097423667376662423615829231910571565610078206010140455763707164996151513921367276345554627890143687311059125140643714279275908255508546897618044475922209069474023529384300916317964867977463373870301407405621147102105493952638032687374170714636083360287749003989787656902885416029156702890624883837628810797749841073310703126823537883962069330045085452439742818525763285583263433800930592294401989190890583137123679785692952838954125330427786523465139452174449771416013676866378288107504728887833806992289528457299791088400763305036293459099282154099710144016419104887109079294735454115921657083718619354376268047224416788715831828931584934314294001607651879023114996674833269574572694437445177604377150306110254235354848556066504927947532534035307866675596488275575063111925775582282441891141588423194356010526827080613216332795199479138941772277652542318405970970897555099812115583345873632091629687693303891053626719156506209993307163768274349436978127005288584693156892884372908553861081306209698466824228961884357816865761530699750403096301702141269312370111195496647120442586448100418874593440743743729355846546228586358348082837494186657170179784395358812716133343652938879331280350569776813206051322590467285685445272743546045911611168476390838139610332630475414811824349835706191496612060229154127222679898350842193363242476307462328593657968579058719422728225430470045284258177431584356387542719106282829331954344363036337669599869379336888040108109767332204356601684334730766487101843682701555852776429652326900614663853972588843565230056359891085292829947873113033818941747572544262865742928991517493676834854134366769306346841445157883625286655673349779930576722147612072366590517486757520772104257199549765491843772016553203997453362297296790965946529887239417788485788801978297597488302449604108686227193895062369214311749780667719875998472255078130769695706695874091396875396751070807524531384482444747205338926174210091014579023431965778525879091709170744944433261266798476265549028056162332848345393178841876021782929688809232555013372099691393992801869427396599692941014936449141250457515943793649454917800894252025714989701548762395821770392263696295930974114863695731490802164227893306126791833663267074717637308975023650450293957073493724305898862359796390323355666642896214766958777718454604552326903572725056955263474490809157925349116662700657407333243454006960761926050082332867830926380089886058923874100802436152504801405996780588405997421024192902785884053681716511387418737623699484974698724821901033168713299869008442789822340092110474356171186857800163793325918511487051511964219381600617354201447242896605011907968884128104206928097625289932813008245329949555156229610282568421181002973262289076662921824985245500032151085473084380127178995562500401617031249707550433875637158732005969085134412993852954586842457454579592695728149023169950474881135885555097045202148024304677016442153316938073008288796410995937273847365608328931061751538384676528303897308345060910316316625854448978676710928585824292752603641631144041329428729138189745652852921896073839741601503781885969775364512863214280710858276200949137820756958915551460303108685180820771046361345572347586866668808153511362100472487113627944027788976637613771408571624151633755991901316629514042431521174644850127280794502130494566623215436662370103091883469980010658832823962750942972840770251434947361214135574743386720012748382076706747919806797503669312987440256880190547387297330764058384780900582280095442012297984865221238729547270888991389915381171293635675912684336737906835555292737965023402734619560392391269549747190033756740840681637354260868889932206495944331201762800692360636633864232061893402917949470013911493461908926788457261355732941077588407652039927550323323113936832508554041758110872794327194613443570067397172639822413475714155717779533940379896011962490226767367577739076782740457013872013879391424211431302669432541344332622677038051282376764521249552122375256523998487530364022110533068054661630990550684170810376577001237056474524535441729764081623842576596217128646573078757345441605910360198885403884756981176084612366370603535409280800625506039324594267674662521019703367612353966406674862553035816866848224734665375148464800612366517880143474156941749929559921611846835919009864128543266523823935877629802061146361065802383744529426664134681275577969375365582775126483860588674657537841708783570276786499693271761898039067200923016171789260880915803608877430148352725273738190450245737937607559583909241238242099763650010775325212018478681974165617183209560860071259866279587412855422876217356592559610771677332823705824088269407417051433199785343496535359676146348208963396142111949701730315667308697474660935193292926555457382911730223563506685438674029940988620289786125958941052969365934988346073964720006523377145308648318159999547089963505658701186960700606558395882106375109419969569921151756108078097425864514120201619215503187713585861695132796610449563883929416888163816181158429081837384601555963892344781432877116360458952750410140466886799487774239247568290862071434315311263313128497050413969207355606089393674108979958304626193111436210075195871768603496018318230258868964915312202218403331532516642924654166459402859948659165924674150279571536890069887618232162809935473702629450532747166558032321649481219248371251284114673465536262204216802396286701888230345951237755455549411232528246364898901119412430197607776297129107988910949350605884718640693382251587071172797097988326214285248294257092942928158675120568532825306041589589893714489992506067717999866160245075475875320732915391976380133238571605190428985569417783398321351178427391480557170913790806350803244533109605875759392697107534775468106815984967232912196118202694186956694702645369920815784587894157526158529318284037863252025425127324569304344851352140063522668077595587849011939194306646779505710715036215080553867155695706620689910395442959203685693178041894608179514194437442891819791550756549714619534556314625622820366922535342416208366111787921189193494194278861973486129920366901526041205251142158263788972174851258726724843432598467648961787534312945959943972121291960876355636711174825666947429019403743334961013100374802524397041080658059757338459413695365405729012710702242025044209755469564886817002629891320530044642407023249518983387602863051583066197881774128069225226514908401641749137604106163048950429310820134978340019360835687286623052071642598338790592539316644959197330406957900295967973744969919308454653846258361581100074082599536074367832644836237608701435125976331034023125833245274667701597888055142264481246575496582550497482338685130984427652625322239632486622572209859798554377816944721600603351473992264489361212793336138825413227851245623612863994675020658449461132529349098640689509275645058042224463473724591765538044086889612582193608339666249172559233509487260705800296042566090331012902543187158854468729960466642855677629938179179508770601856852992575356710773671675801563919473910861800770279708410540953087274722737778101008188285026891212363941719432849224921791017801755881055899508673839935228985577119154143744661317322536572585580656003518959759467474642628393093117176128324630608338086229907024730198706798001314588042806205777618160398496222726286127661192090295227576580429553839331932907952431800031465258336767790644828117844244919535977821534326758211823927158216852614260645353998166499351023573025950554361179082512800321131786213100403729402669261346505855219440788639587307432109617207234076907202916796079865855284698925230908009701787730730429219264728654301309041237877498121441722385839819022218594512901058570421302507889681269573015644632427169885926559842052046904050610626218429847965207236600786898584267682989905355625882735798082456101546510319761027133448733399866269645986497202450960407404332960169543594468972135016859677068111918823714434182929145567168387341584393104370944410374778579459832790741661569393582530501966015830853434270593942214559834956959461621669611871096176346037345360488404012788007914154051820987180704702330854952507052255012412483216207597920927133994004059779843605152958465686745900667259323549102060739813456617340796128997348430259013602212984440993678296783582341028411424444382450630873622977584250332111266597924057197445237321947978125346809507341661207280321207943161001116295124103961722989706194577927392074717835962343050667597777793579699213583468484759192976836643500088491699202414858877359552983880128034578795091019514305310140715647368291780403410370477939361783547333191566592833156875693086914425299171677682388546857402951983962249465627874083151780784978570811126773647502568304657227164761343130204931224447932282088633523957760634565987544329416160035087484948112180993325826353484200341057969833090358142379999816747749698938759976321375176268535606066521687729155656088606795609252780455040948725650845872572906679517118935011033180877105955506281783497196900603208984561041798030591964294314005599459527899194908539470098793651796297733302093349999054598400494445832727053239072711427883521799467649466018335757515530802103013456499453063296334648728514956983417300913857423622151648886051219526345841985170654309289162337295698486754039281459439433536399240948866367540431559012629500195417954658759256609071728663313510742023758677462709922845825523193690614382366210284841239972500384486864414760860306978517259751474358570947688607542716089024351548897079615612105651383618840304225081283797577966332044458854233323984428446793140455149671642378735171912002501079268634880765139187510473740871661009482592375837212574451858457493841412672805235277692866767134309762321399808218647442859691116198974597198565104685068260394794850719557095313648745652045596425719862203067696122884176245893060281164849623731923497113160906759753366965642030302257904649892777720132167069813474628072546224303896013840258892542111073348715904779376490846212634920594042222602986694096134749132914959864415968011139794541435741631329715802436227646883166800762879655568362498252967682082926911597552252819273375537623477677121159804543885080066624234546905926045010811193926788299354009946946645703312931884563282017373290816748486439677710608962787994456025271324495994591748944239703802641271795427317956629781164308217270116179628708201080537976708333422000624471711356595117039648847634875596411767998986962203443772364869907085806242069893069091261660173195503308527920064671847994682533181388257313439735361110624824570414692700051772199223487672574829416643406165240773695101652079967972556016825599140964138553278176890817245484224409507391729944479000097286917110945211530632985608598151398417557046889961031751392047848935162323263028994258841663433116068668125976835492770055134298814244748630516966182639723417209974712027271921947331243449652246753964458825100634973363270031491131559604348741379925424546150785530397355171975187985892261555402648370346305699257166202787215981345445660166775386801085626790838268319088398974695329555103877784747957367684556134295046117987253173280855381110747144373952128200403867100943729005682502325965393738625307976900652901525195474176689853056132526717660570764830148179743074757375110010326577869811020486732809697848137304733914376894570703516215554174725956132090321774020935556460872032117042073439148651233312488683705568382026227845248065916713274413776708021427354894774338825603493622322035383802034854624320322609275282497948395904675681035554154299980405818515625435433658110960130111157486360226810556443531132336187515869734141222638069622102053102064387200772533617176677084650669613214846610302104501199593745495710551448378734613634038781616054276737378844466794867005705350070805214061804217424881512369235358089488361234846084904402833870255120240567768970155909492179418724838170931964211861534805883715803948583629173373406029877988754565412187030972428890975957739507935356607350925337554872482013279543202682112514817374785343449957028480826640831276549356771882965593377920813618900398211098546500794992312038138216216186719679963730560913685937696971963751606896576653306863411927792669243451954668031902901749509929433221456766013521222668721223320425938262644325789683057893509081349494422602581643359098371881395112564816108698304887465970251512829883234961928152322526061658586150393032216402018797383441078343522061187975533972645672395934752487866759666943223778082337090106943100267444234304116664747549922880662817007550013920028812070511410941269299262294487992198450254080660261802518587872087030242265728660408966771997403775792314840708109074633448782638878255370738640689381589618762061340439655813247931318966282016757202179457903447417122276642325581276059893345591095181001028382670851840319550009834382949881076264713317330910951056047645318176859064519240284583417796308317586140086757165411164353029401395139855044535650700146069835111631589622645200475465035895641761889085996600074188476089280442371477588480319289277653873648365304645196834239328487097673034693180183208962486755032675234687916862209495160125688744291511437551823087540615589045817269952995326524114858248364207144486620771823035335917370371029962079235447141013618263909684246396706293215122232465095025139808690013537934383587641885107376541465897210447990939237760154390141202176202161134750593452555508980306545271870647506594603565119479655287721317408451503515740124142038953654476610654748390787735357252166135123439827046047836431972040587110600056661086031287965851083080977041398343953543469612120529288482103576252566840650308837894969756635301930021128623505190846817467492695715793459849194057382767703781305177926021704171864663942546183821684586572256986607567113124457536597161657990793710221818322333146743715372547480683437667112629554390561904640729433060536309090219272988496866103465810095330621715293840610088043270356285520719643573115269477766719847859813156043418529752269828636866563959005102478143848668974026414007797535288746028122753314318344831948095023314404430399817426717439854103561828192957024539579357496919574492314219059134818367544799775183008096821377591377951988580008865174499344713067722433327002291350833529681210215550751204309733191766944479153268034326793009498629590474544461230744092834337037013307307354298474732095583348420605211148812565709075227322747967412157170242847822050068233498157749175944897073210512099907519441668993008408459610515013654743076081945538562598815038030441093467756805816049550760207849403544415703757804802294356984511417920710019131007403827216583638977541569737064678471920986104333347269647891001497398174525383119761219799134183254034827434126199884589439265197798315853511250623039552207258536620821812677669728031841019533322481542765233783080779680148239476629820007142839652460774456338711067876696337916003281644371543120120255997588366111909732124165640723341878887317610271921740137990812490812900135811687635256363442386287938052254553212508954516973794571237349224101934835772152073797458704143553490654100023956643999391459331028092261607505544439916158755987687461365337600166628077094174460820039324985884392245662334025349441330398925817096617941668574556491959538180113364300214303045714553612303529202378581476218459675903429508349926221824663477074054790197995708558060588053796584362951270813921442987220928027312317278115880686488591833009255464063564130726975559995905303234711177370326965447528358565351176493987176952877173513576542991021046434072853690634704100181062325542064441755699066224640880665658803996413182971267869360234692682400739562782247251119457802302130255046963630532362860552000986496279444685238246181268732313893771484316258084068835018864277130650374681646301669849372446452288782794474257012494057133048263062390880383190158403579066277376943258828214689244289450014883259752730752754230867703549144496605733390382614218492591510368876973860145198881784986057849028633810108811608687890415632795695393270357406078442963979812121999499593242300275634937381610358835950386114385340437517035540755271852145491266468500586584120363716295349155068425031120026645488931408428392844501149781136154768947156074826961757928362617046446236708458245849412031109933734069892901846797118835587198343071826030573684290414032642345460743743705919147301754870114059839175374694104393984690094944593317627963817171493438634492859487584316981860854244385841285706241835742684102305498158860280650815156894625930514727588290057814532811067544153188847924118145414855771638422024674056789112329940739047276548160496511413556475555188173374737435945536396687195475104456912128165887569411048537482419283493574632287519885635424446006422206737607510265854644940736182622831077846791205209432630744491998777257877532726255812100156309984835765212599860787782745029908994245600664513263089033933949039647545062823423007492206489783708506636305358339065223984593298075445292142423063879287044143147892003469188508505297726367793159787571572563444715025753257633610108675689400204878400436320121932059336716519920727686943463497395078270334393300018930939378758972877379367484134128917057529665509296750614876412147028519752065634118960707376226037213258898303617312952433097678382843583552912125261045700840816685057206177976600466231240871612940071407730952597389106286409265280618600628779629500505979130896810223444117180304955347386446453892217124857575014184182243481785766135273472322724283946124660434681744520797110354803244319144867552619106672846518738296415851747011642523329547716008744671232630467127882140809135235104390736056340460222049619133447437188197219971440007062540606028859023445144837167863770785032381476226610963716105537310770004875123991086900921516846835358434967339773196802363189029190189632976270837355196292000109352898545140295490989160209972139273431383190003468048375115130556266018257168553673915461159287538327422739360194016598186153962866129088364466207856132962338144860348574087771100223856655992158752288319570175377480949454670014094174275916285491420027107155159353320161353330147538347592088773213700829060183945088943167133922018356821066455990792447381765908517001389310650417546096297338656880916640138898067535456099304305457686898122390607489685257846212546178128862964343267500971970954958027653852655471365494055620013344120185137604807501285918810299560156709354594837625886192095968397005881289955526719120861264120346133355458075207951514920175801160560150866471616815741169626524933425819534899074359210255598110697475729945111503334153184153140886368664539837419487854831953486868611411113957272399391167390706218820840789444235653851061462017257821545441090260768552674556098425564229203524137600506780127623476912775684081371672209686443299094289139218755227221891914610715986262147708511354734424971335345614062202119922171548826407985163889083826844156850651868092362236491760231327268547965919652260026882966064529231522309471753308939245095078944900702128236465791333412417341434083545348323171917702980167213231918797474505412894981326501047093946201110080384774522706452885902721286388027859233908664345182991386610006814598677156106143242350810776894077007715309214954680813713530841856336676400198173660112872334953830462818344184048207157652344382645339000228276709204980073589528140980018502590830053989840322443233760880122144468817081994639482205422337858571203843366015654631082435394214020684288424472326623344137009620639335993060342204256445325914812772391073818631277538919888990786915425124169037952858805815298234172090481821075411864537929533048846058403375943892866950187587718787089613514138607397000199827240853342638368036618017822413162686168727949206486145208514466798867819647998850883127163190428405573338639062155435964522959769663628611104202972878438453131542916318887699426322434834062488595795283271860023319389632257993849716838406658112889996371714184821319278811374102032651587420837155889769713273586298423970326333664964848067285254293936971537422765095792090906243000605238358323275265459810730423443277918706186138596276804888154511104221743851331761586737873978804511556422588874176823138210949752133081843227305796763047706046540674660692747144014180309996971379288119805680144865821273573346302381103736506003877086133828987763950369712333258461847958585207732219176617079042479921338865340975815066812189665090985824273290627031580964227571706492882450755141700026381610778755432943629362371812150742393579846200025562361280178409009805596702395663863981478645273935829272246639331995217244275017450403384828506137796795969069902606538344843034799482888579752377794490113833818511325547528622331810683276433794367542992542497860611607402128046419080742830503588596737209278657860600672002386700794393576103559386694082098674222922060573875617211054969093706016233822169214013841156669954254235849883690734872238705110759958666756779129674840984936817768659914439362290237677668006396777612208511769463698555084510527531444331975146064861310446578652611026358156955079846876167303318387715840738169406059933198316211637340175893584942016522090039703411062435584746253517743423769282508993097123073550682514566326572585820836058852543690174159411180929006683654472537775155479737097256502818076938174720752025517526968234109048304809451217986673278352959864080803959207214068657273959461600484274678578755930057278497988508332971276931056806453307199640852268766397815568816431758508050873270094890233737749293119519510705988983853275367034423152939450869944770943737880695008704721127155516232546789385821029051685288183178117442336557140122431230884883362462492110208112253628606732431732152320163402736729413413619834274061266378687733705970070278978057181102995812436938429400737398549250671582606218994872538654496749322582912783354935971740394284516358070470374424097937271769976002828578604909564629403950227674783082459537878069807018544913778808933150074032589534162150332939617715769071088562299030946699272647344596272148783506769468194320924502339475647373118297322559545259223666140635518190603574593644269355936052355054632147323511789252959037049997159181950619920061011652805989945221473687727529959691573753646825338001744296554549909566696439977033768899654822881924752120477612479280647841868448620103785406254461075141230707714117850689193872526537971055898127099502119819881923443652355226974004255802364843601736539708980162388409142575008771508363261541918050055787912380116454142645373242111386042218945951901646493854004615799322433098797859504106585345623801036108870606720221678247280521463667424545851655345117691484741224991077230385306801393277636399848704903011260837369587042900578605649568489160571233191877430677931026087186414355329099121124233762163976723782076743907590434107055298332543376981273149957012588659896285203193749775707043695386999298073767648144851507491761817632744745846048723347665265604508608479008447594753575287028080103849920574073531990990864284070649338231147172800863027762741589616843403480628677020481494396855477360024001312431977709373888415618213673993073050350235151972898229386154493572975372674733907506532687601461058942934890526289458894478789720542723606696552048913298344173327277486436294480955411743579859465424635797345294155740143174389780678416438061683137118210187951575692654079297324586446876620192552096013993198277784290164986656181211032562829622241526748104395846335650676431943550272572295544274027040805358644557759788505355054484773533198264359149689098195494604764288396843065458648138253418951366220004764074689875339198632002803752807215432232051358922145787134719588540693026239771152688005323089134581090101277793248408406043451885256848623929503998849593272484374545707918784976380416761655418214398894538138975048011232526561541562176045538941986573961920311559787396504499641931911629574805146552324761242644399085673318573556884389650684285241460492339024578786726413132718620247262478388490083687338133947868356604907113209653092816269057684436262046853254100731093040112393698555305641792275200861657210967897921933682847925985592049789060814029977045596547156976823680922559439184797169847528981904349968000644784778267019077751009887506659840580926279905507249464310908671738951690680192869137737619665069914493357557298481970327408980209949396345161628174112391600065876522441629457030348114206918525552044246063582592408339790543882335166378149894160837316937882072001313312638061388870840074018928481575799616271944747983141680561006175742712347550240502762152707147247084824915182512349284560423802132447688180869517913690650628761847833544264847618714694777341349122271046158169635500184170267007895717627674889775218820096513608627313788412531483474088196881150636828362589358251976814761752899162256129374936366207334553840725850174054366216416104472893960245809883555489916833796146351502384661642668151168898098864735236514599506318308891246704784228125625637032929787610716054470247582019914843711411178149871547253702806190683565205490639149008541808646918622325609814486879910953444949525351883418421413203433036915237723061920000074953982528742873373931318670511384294841415778034961641421091772737379454648489767528700391545490758050640716389342610339371220183810770677481897946385501433905846655243680887063067732609391515125697512419489852985157726082013185265092320629222468430147970069332371140579876659490739319288117211774122145512661323177119148789971408170980643305091232423296984941822620215345111011260968166061958970127157053239183531929169710578133349218293581843488187474622034878776753441196418527132113377307752983843319887621751122655762356549153920956371078234507491123791356860931770185120211319690440987248466186409359853444488021395888987843330987225595950066794223224615766016648891761954538232810059679818584964557716825614030277040303700933168550570969587526996791322929244894979499119011846671443355477262610845133893906886060018055786146677160752670712034008278924838480228618930226688450986495455891625886896142626414753313248950285557668211772574940176220406634283213213669281278204538326995105986003340219731917928006973031135441896580460643399586033342047698980725300655844303801734481872338036567939425452430653482897821189440291922502305176531268364477402308389287737116964468207694155643606566522372609380001636302590351222744340163140817627630298493109082162542862408631848313197201123844418498540144099907118324563839463089882424582225284549674309255547291039981723711436510366496422956718053685729702127593568873463600178729469012287803176215135242729063629552284025004065328351965916234913679720109263261464536117259117920020768591232717957402721586134522660625672388030137584305834018895699712729701001961213422166391397220084558104015267072304089931253834762865425332244303855628786554061971173263931029189138077258318188060253558784654868195636815477451639722752154554289715100908986732169037002644898940714044468477636629256543737559984853423417710262066381805310465050490441245065407342683337286577217029085903653152835233328798720190568431442225560230038975472940124114267194668015814422647217852996821152771079406571142316488188352006059681623156828658211091462911178813425087077208323349244410350386134648343122080685547109407876245064992506125218605969878151913546888338681459794826813687161518045247962169356840626650603861436132284706206737177702909243573506436426521894246275978726078609374484847885586963126349292283288946479344305640977174260901234565432926294640462746804644458933781901711502812007268102819983258501184749540465351247473628293084917605401623742511725235831264962233792373138951325578133895840740450575005518590986557417728096491845843829296736606770133594434319270998867963413604750451097627162255185427540428030529721746999767813443156235430541058713661014958667374180312765219678313287961267764605737191829551459000223832325856132444320481482246722419853856457266831062484345988370549404628974662334582238427697194848298859887154580280996533227585941467301209546627323701993481128524343163565854107381177370217535893868543992146731180869679015068509587726531414379988351980606349838969728542971524366253756554974438328279964278793457743499071000299201157047153251340239173348278825230387630942527522544940054437254220972399935791574815564383315214824006629008614635700305279923363842673523770399057027693518137005592447601003196868832263587134234511713675577863118471885003398397162944279255390290881455091269407887339428564629533411193029642039810653968956547387232710068839497356872733933558170936727287111931595461223960151401075529880663830564382506789158692978237468212359588274387771457825250886574711416593115855387328353641237772544721330967874774284956665540076652576841406752714981970087429627663418944996620037421948867258942377926337699201084076198033377714890259844001073871725066739436772388378091345686879446397262150889357434373120660933680594012154343951260413518140822324451433025584957889581692351765096962124614159736560438461339496780343709366053777838556383789132820980919122852810407198500504035575519632185616354520582727981568398223777377753342641897987225454406525966152782805147708643821503284689625340757520938382015081505666083036759967504471097998205196674552402488789163554080788714629449770424511265548837065467436644870054176078423038895403392367664854811921678301737143241615828992931143987064978102912887466965261157774945453939760600889091084747873243521783194365330352560208172495796258057125892974986590697971762812583933870898520619305509330226740895393634283982424049512791673854072287756935634812078174132650027211004172892209597426017533305541812084497835212642328261907915427700237569946587512005326666158343557419830202669714827288807809631905601092234816250207566371853728878004165356207793063752494002410140597944081772759738041391091249671697338266315228007108168172308705759092907205051769529061748343026649474343001413060561691840746130644271090385024840721964206487210108800252830048711216634327476286922678447293590779583645948965367478714662237866014076320484834825837190864513393263054563803776173712103884682863551169476610352447787836050816165071260430021935214657017886836583792929468117920483047257800757689870177835267149563368262634115877823432828360769453704121133156473507819193616420477231971637087057698799842128857534676633734245976924310533190700590091467441935825732620034646738741569728507201704243617882122154036035702845314741419626681357131826820052595207652189041056067651949708323631364206151881560917969212069697429608300509884727851979168660291575659849598744966572535909624451256137251779413964928130582441784039312674652122246295371363182467333605554632328930533721826418404239116479079684331284048545400260545478415173214808716676277806044713767968443515567449280464600485331488581653121106181151253971058188012644037908580893627955950846061941575411893824981907296622396168133613992185764049958535587486609082887755023825875374682991712822201070425650910402747135505481076881849697650304255366012762604903022135770460763779027225365234506994870455848802409235236272726673774886133271445917777010141061047223520535941359690597576518458576706082411713522200336650826278251150837041615777685170297317185265478025152318792345032655377902537891797865251165018850572465505444510990047575728294207027165041463007205311219457433097849179232403769123482484886955110208437550621002093222208559703027392986609433758302259773254781404956685074861243613647546857981742352466098038780962824360723509861592787991086702181518106405841926086614395273531415414874759042799397626706372508135813600920481579983682069040033318288450273265062596266447832075897955454644096174547068150030780904472453219432900006404790081081235861180777000632552882207731666865373503845025290997918908037980746919692661968953318606573382327301702136516365278803521244919979724396471235813282197706805658515101409864826370045356509482551499935604526850305284757975182334050739988978733595939031832385790910309752443426946177273119512474146402280974589137930399757569751189540360472156215316274264762428942140522789534669911601879134445084637916093605073938677347648561048204368794616502408255516980003429246057402572899888259467414971576348323896262584813843187287458139076686521871866727989973602705489204529195134394095391720002214750623327076352242822975146268157951548573084715967004182648836148392953125776498619306389634150583467116065689839601004953551488358216308191554830901406631595056647968980391611815614476302528650367906320424901006905478129505599996817685493749418143455721577909551427174745700184984850892421816815554893118077785537885429700386497860435705411115845971425949335608405022685541795425968156250319314156965009727467867852628943035130198098186599118637547170991632173282889399328846883732242215600397991555507104747041535944024756240978262413524352683367281202708454455099376086178881561253488787834910703297773956030277592369760855635057735054796822068501691791842905734110134179273694867703752783302990784807951016861989737938609549130734464009262603664384189696194780341702800016234493136809564240130018800177667039442791066160932079300946004079862162945902241313250991882346890575035422584585161512724902153119250656579668832572450096183585170934078394947654208838983513072324464917140052702118695076181539867690185624391461616302593435163412722994663290372898048846071085754254958653587262739769654823685964694373749662105331460106025504113706867957258146111419492068055487082319788433503335540864033677823519999139184397855921125936246033785344449247478394917609821510274423657320467991497179129637812915762874332850578467604231120660751798533693189436847693606712011061680499471387363538715181663492252748897815710572501717025559157993645498966207288115373285421006932879770918319052568144103494040252986176940782208150001352537676027290168304877880829389346698664626788789193777160411581510273188823771372896828536432758465822484042543968627646234011853322864872274008867292667085937791482461261053830895970705302294126495919225223780493134849906089951152159557906661658654911538667816462452597304261959999556721620009319832093899788631894062887923225732751069847759167590592788837450689082140502315704631424908212062856748649902940557245377721588445572869255078632990769394202695183677298596689463791436197771630494713029255561724862191789969756708952411290884917993939792763959874908423546358255667192033629524835571588059863813842769126089172312995735992822522053299763929276075049578671384768262492054830051413854306066879786182954008521224954250903753136561292017555572611142294844295926434158968092460475696224075460916710440463327414554675972165022741670389391832106551995529545951250762108422008298030438212502350755125073394321633097128244699927177766117268752671194299472775323101535680009608501448781053067657756301601903101790951982570857345045553313686071533681278114434333093482026830550035970426825172459848572024282500275638654708596430337197809577598921176057288405040254243895798628949682012395260092372455060664257991326949397080764740090588595527673156137042094316912398490521681434380032944610988245139556598397551882678022674382748852471703867430301999519490572497946086394386475579207521828651165923214774186331565596933896441878015020379525638310878529148825905371827804920863835571284154559306965904084231896239642999633339058321706713163650950141576229278337016207247667650904430643469295094989704648481898818694785100695980244836125302105631257554411123699641935712219181847730821147567903481770911192738140620782207732571783494500498782384908535429657172976998475226490717107087691119808851274090141463946755315826052719183741695599077378466206390521980240844573116247999200513017752843774350909316202117287649814127518439425341106296470772504668130153004022568188999966318459831740592214008819550846121759749719161114549588928900502913221929765544748082431281086141668101039968712107181543225299301692071639638208101092478391941670613335906307549445824721372545144428141910371842068948395265227103113008293018999194639560853380752857301101421107293172198533642743575493781668500574806842620840572438934957442045631670032399875580042662897760285155452202927338088269772276919244076746294622805901952793404274285734789335800637182642034088055727019325070190972568289308029653027521482328459386676832818663190581472860956384422958602478227861718147257163579975796796535154489360133369466027664384527816156798330224033510521233477983990952742760641547199612368496581499655365030318373831645393861653917828298608549357989212385848252035680309330549525385915109135779771866757928152954610975299154881972794728029458083035832082974306387796459054878914902709883127995681238540832253730736012909202087373184355705374557600883305477681634011309703062033750592526524594016950032942336477821017496619658726033989624033712076512100234517283594069608486841363686358287506422155757639991852014268887948682864492404805989751852136790444406736348313832172824476194654691025195671213971448270733326174619635080231814226201462262296867627445645034973871131120742462174768050658755012422065492021271801185928469281153900140360781083079133397910198034436055220366101714801417582841394994989618868807612762623624613699224580762923484548945518719314667731314211803144353469607050794625008068130769232644809306645077429800126428817454705879433855330181976026122556684892216510405727105269348957456222687721156169742635861381630467733054740806555576037043747184026784992354610328628030313254021710216257987452460202365317169350275178559247608118563937408751240467502829604771335374955280003738382121925909134872368803169288466473581468630294188213442366272274344615631203338403201223892489251376825017404771543379205316138880429331202653464038664005677573622222736025680433368152869368681534128206505772000575944099250762145933478128208677968491609279006618879631635964620819891097947701417832506304442817041258700641937834364088896746619548688348642116963043554476855209401181021941395105502303427150619468279226649106647185972982003565305631354926073506181778084357289176998938251039484917735961666232082456789021145299620020103194355673469762531509760828807975145161501247519394921616104859895841024272912183461327203905167943224271609448809043768960299090041618269363497487169895092642896267294452708879677764579150414497866748620498919291194686044265230195566030235806810987540148283269865797357889533705460488653363760433150426513165842735330741123887118353849783310539653841910748651053834465450037525813443467142484182968693878370512477393837157378422907759776166039853695109041473536083830770054839111049588472310633648874241292240828442976184894635533884985797461454534787202196826604586817908444745431736273764973171762913437317492985090225142188791002590757370321154027307216371522338623263589632682256807508018102693191156948949607170273066783455192579675217388223783458039660441112629632433415057030527608156843788541761814727689096345194950662860939347979066433975741104358290630501642567890156440903072974387384210153963494153331317279956676894469053864975631674117454955605285908959835127395263131406168637828514962141770815390658455156963893181605729325367787014043308150260244133482672828974935465781771095701809957989132243873647845058643071647586621109613892502738741742035096629386265402589816781877341578487405995835328761869318664425629424234182347461232353499342938557031388891430991169630518175219071998890356865100982209685039837744478936384965537483445241742150709216877322215906809261114454526476354336439795410075299537276961671032297435139407770970299885567784813333372868408266059488599238470536817148687527745560958267525040209770147433919897042514789998739779030218167267656932310206947583772202646386706440396883366008150121577901641696820805938466290659901242565136308771306449988204707121907376526545478689726956781384429662321313629202988861852461231149135379425890622232416374185206900018503252852069929343687279180936718366322417565595890267909801045022875139799756118421788331845200817222866873724625319807618450422440409807262513560860091521119894765073070234822700848018835349020406360000421627237164204241128089695328184049955236638423349020954806351559367607195411063422923710091161945983678022693089143713858179134650763059341030498591676636428220302833633248275749777465886382247382170510906083496268571919649711302194083184537897397649259780564437337430488162057704775650655490593735204886535970633549725109392226963379119265513226409315549749447305586953380989882861698519885958103021543403621861636528361321356441513071953115367862045831393542347582600457048729049777509538513238717922965650045534661071571221202443582667354101332446360532778137825698604518150111991333946758012346712694877551821350096460722719209059374459363838503043526377004533339954056409766822596947254743157756383081993257579217401686535452592795663682951724636402205040320120922919394800125476677463842214222861384550965247644066332974418597422922594949916468775748798624354703088146745634539072148431328829709588107668292865819312143600136657916179168677424041239495469901109542393398368024060276579917643393852985938780298559040705745826273676294480547521559110065430902581750280927009994750908695335748047059280542048814183487129475216081383848308229876535668946808046035274794681433726798644241450791738328271639559378682859808366151531669079095147686476282041782959372770988200293268446348177788846668107136744488338184593581671106250433225896920935598465169633736032153633551426075627496148571279634056725072750504552740760447932767316581649694571735969434667592908049218689371358518415570149976872222667862604682924577863556948548800746692725141091332489233198066000855507187951088577426589766765503628715910352739227179770103368498496532457934440932976269215231317102466648479202984447279966871485413489062080610568545736478463013353104751268702634914498497960924911746994011847168404246687807045376583250798955429224791093806041194668984231194613254217842689669817078614572307518776694306988546557123236935098564903249057212764362756818104465500039646272060956664813778147496081732906451395978249298391108391681583143325928686972374287593707397606035021615180854946349459476422625774130134490049463565434270914451309591890915868487441416860193713703510406142107240480920198735637356336282235075772139363703119968427357540691554399921192434290364464342284116718186404163955067136575197974340091850462275557055926976242384857789051951744033323911731520356917242797451935220607280134501734680306033434328141622878349230438199666488251720017903730432256333701076209379136488025329623498656463916588865241646859043475473104364109814323678023640700677876215540458884829833580907741104026161548431946913767559783297467094577043768071185962440253979943396738305351225487353046993389090135791317572155254118720940362447257425408534079618266933853881926311218877276312889058767099806933974524410793969876537972384826043631609336644351256874135932435633680089575640672725149208015067060473262817091717366172851095042807969261487702305726587674492020960219857857116071365567435971330310808524349148151175898197685360192009607527270524455517644851491134995182528747491092041712961450854128128554220930160422359496705708602246083623482232758600804879397463194971865723492450239433027743982664925881079578801965353017566785690854424716080790724756911246062249919931104892855819742601013965064658013036469641961105389702721026451510947406214502249492336925366304141475287360736135171497027195184768813694978455220626972635754846605709590866012821478346201145149509719276046569608245767743605446206829238288554667023618566032587388783147029091817662194751148049145216320645511951660207357828490627101882544956636993323173501268168360632785337275465464301529690182586207237915671519736739579189162848159319289185005198060257950376716898178195770661657678724790806142253341542226550762625559474024706572734680041556749119927847842975398623652936354206239203058185271816088578425022837112633626873371485151818784341754831540918154929431648751282465752845872318746680290778140014173409199238611984019921767187307313620433822855543451103294224147911250877293860789227884861261549753180165222507036985988473907810797141965448034183137972309256259330274010397282768224405802702529876237828218452852204248604887385870744056110350337774050693563363060261616760142335499964163762072394533665027402630754524605994677967184921986504263279603768479815112257197741494487214594226734486154330576541677146533103135795994959458921189341580838184316992572419112570693965759460320719443123887703432944371350782552653963027158399522710844140090871432843525120162254910576339649308752756560646821627974614268297830547555959093075310361693488133241691783482367110639153667295820761986977795206988361291613925797601578895070354323815863747470206554260215730600360132241095710498921190035092673188132612585820765179538945151163507615969809674185459794714463325062133048341464212083181563428174443846491515874490688990106088313505142138670466407663679046106657431210803828260181283315177519168654287750085736668908163223899147249850571262307132582415992195550211840461197190800718926583771645086446901135001954475083304350047276007844308961354468688973306074654672595814513901039970316435313326482529350077280101751781108734849649994911676351997896649852915324091263931263357697038730665199382868860436450033514829975616639104415576414929939988547425328726262003516862642408298843469627912977156827881015253292015017825006461180357938057591190639314998298884286230822929912110608765491564310816479521832855282976496663348794648515890810481323310458275698907960818916109912365427953822233090936826069836547539273218051036245694777757303678956976822596118534070996794768554570824169918062786173000195170610764984965490918449318635750223513517452389503813807910954590696896097359767221513105385500415165309517582678894176919032745156190910045395125342572126599473295355265224935578616146866601388132057453360086751550327675041538192119734101498750747578131688076906439908975672472188278283210037096091345404182841281798260260142429824316595606340772888235166774519443099251927740634682627651802844588707283294012206420613930819943736958825261197849473132457619722910130307055661172969428667387415991218027720550132026554678901404384999972229678407245229277008759101196065856270052668238037433667407230271440488246079550920623011078887314958095264109173502473797521129357272325279595260075437111994596617295503807617528888910030478242932301730730805642719786841035317130387691827437434598395611230553053197290823056202576080624042823940259767060654050070962000664950705836174047865146310280791185915606575083693373241810235076479408388979275183751995602432780369793963558344203106778569544347152945050994584964742447765546140700604176482033483697175829173586560546903413427447091173646798684736430558489465304041123770426253921539913710458817253164083203724712741085821306630699207291593866032911646723770437845091011721318688315437619875414911222432647489900644325551301298463838941557284124448742116199574501125664498700444149664249779184442436788286880360580059530435439682019062177152933064395386025294225700713174450571697602106641881919954137305241194504278668307909650695045497970286940398650778921342011671955486953006416700452119279518490813706837801048001392999563327516417145052699814722530193875369229997301668616927989970294676284491016796273776684886275357682779112167261462616341854056103891747807147440622376750018373502903099141803650368551159865871415479748497114660025873533790888548228758403624142684040456570571383606435283525800206755343510746463421714124113399968311501756368958481456187539831109254313306888115434815574450704796849227510504066427642378378304705127736495887481153096322306580206781679870876059217641915756616637110529996504784166019897470820679940282811894358282107219257462710438114347836415367901839974961147633216203692962099134705508254924665936052303447988772578891923775823279228739790568254777693080201680740415556958146961393792567223664384660120087743392539010591861342154580741736621028916411837825387055785699145207442646151202503822456689518768109624208339263993841836334113086413547264440278543828188902726176794598906211300745811132808394344842472662158025667545131702470871814318661911001562231587242694506105504380011629713838587397250662984788436000507125282612986535967522279249301439589532968620368525559241543201090007794049957482583141600772238732761300902350008310773567647037397166717341464399861004333990475137395195115190372542478700154648811157956442357945364289536151052439520238930574983063159870048476442471166031606537892858323708428796289294814732852256081030328357001438157732005959356998604693703819467054558780193101895860923756621833236513943905555249479829407221550879670937426049377820096986800037292113448454924276016703874072254334339986506370146205645294447734588087751777575239984782067045986237194843987087674029125517303326395768323215336979823106839239640129281211630824156393383699845238065972601505952109657985711213821353419312964503633949165855149249860492495906595303665432296439880389850033391323161886933604483152456929375349496405180020138910068235716885584281089219891849182098697520635363799125238124995859014846294905157245672263097913142801142837793648501425714129043766107348727572957959699547894743626123449055081870469886278844924848960304700092799879462432948899529564801239352602900071918928953877070380600604975059071008744655357806970508237309629814589774501367011134659485820402593450378102515375989502580817462225535352911185595491617625922454677053838099266819891650153569143095173012360269584208756071893988856221513941141245456250738751867127476168979563471297613602916514937152804209019914858821423345309775978851162371125072042346586410411556693829631642526298324040998620954134909947761929041079279603008667630446000264496766712237510330560208235862334583466482826698469783405502439646594607641662112284026562220394042700409841597965300735525392514634703936203338080179590768492187571311230113362394689436777955864349110632193679454412873730452377669263254292102523063815228834401173900322184393508243786306766678466623475767327810655686310742128746211168622078199627060898267374652383943617411882474381153447628023037028603011757300289635803467552015144905994973409362107696452001339237209224210450951146059674002654175918537733505160176180522173138186419708812655678000712363256866627815103423008141358270816737920560081135825281155161215598099461541846730166033504783906251152522422872076438036162821866701764800606641142580055982357944995281450573906662642475100568360876871013949337258105684988218583927032960638191549066910224016105744963585891874874709617905273138951289479072143188379987369101900509637983055138056143630329022462013775647489300485920406301237407705432080864320604563074127122076495275105424280385162748773471309355105867411467786513681758752231101534329026878404401129984403616748168768457174452169555495357835124923758894250195958542686540203259311680239980123969483644136838656951226973162170683742750865838361818718385112011252050639285645107407939683321484497007926793191156289492145046324456572130138613058515831421822028092021781053892588465534335476147900438060297650507848054166188935024833341152373626576452607730952687461268129915283316146362698292079342335173443738613647419897446833965410570394259328838284009852649391160282706052736413769057290511130559576702306899845407893638874028510365379238189955122438432290747300391248693371074266601849577433343642326235990878484331840412441519862535168308167216147539390225967963752716656979593207179882170269571087132743160383102377127631263425566017761484453767858667737753732218568808257018461263212734678038307072907061743346872370883569886727685119527672643470205894914235085166333817353368383530602507138562523204395172139615574900670957470173625662364368808559403654677626691467431104810892569660231484201580161592518653484546514711588078309474510544551230322459522792003810921678273037001102738726475328548351689538735434310012182139477264684759630107685871040623141325717301147339632224094197398846859937524261368949461231687726989860186936661647184783992057400390247629872445300358868819598275292381649734099361011360236240672281214958400849359054136827568934850377175972665744794965213759275079742611541238133082209287650134414929920083281016734592782076174951234153766591965101737151180804309653179016133750545274314449557717947471636134958567844962877132029546327116517930665600309574202157034627216969629349034245715845155418469090584008697254672210260756238608020712601008325152951539378078173767797936532342490858118297758239101252259533473818570810279497700673447222563822752953649757223172682767842916177935991744231296249354484566396501209519908034333626919627968896857963744992133518438893625439439685127174920022016518237088662312809934719654064325488127452091611870351815725206556998091546083091282083626537000566602837992026506786963437453040104504489380608459135547204949083120061892164120959090555767235916694924942218633901734932343175654044517346313946544962022536541985895600400941741722097730978687803862848054485237142038667327069674793149423527152366097918576880223911187501837608535999307357679328060152810647795743424163543801214856823567973051684684725210684902216732650348716287085941772205425541187926928262696479548468927982940071171462050956126760707746790325997398680868501805007766224704851298938510174972462000245658189623857616257521511369899780724676258924828211962037124753252351816838317844599163417139234321835060926806565355931646770174926417134143263965783401942122342257669979395368257742302967561055006093969916447182289900099276552349866551351528018836987952004377430317188013224861166730692082881922070639387698171367934303066792053010859039938319030389358422850041804285642973615883690923666535828549618839843520387209390352519850194092551887691941290768387889523225730618774473289173430153238985460767006587584107035063807436725676747925037734256559719892315659930253920449894075512747366874602936533248042547202821483867311278101462076015955807897874308970523986472456677590013002363638179421872154172928764540925695999357093672722856955101313315250153521233992084431141496892347017452072083438522028357730507752551423442782409071245947345346979688058863860297969681735177408153780180894743537431477146870386970132075447383163411975764159066010845046193624855259404218195634849590452428976675106305661721455758589378298124473546458839143763227903507421429398580375797522915176662379452975326666576580902737482228213854905995472559297941580261998324373780655979360434968253648636554369400714797507208094910050246985041629813407592395785115848230384509669570581502968604646029728307328619770882766379545117342033928115758949112674991923870238878160902936941124115617591622424558812177490276774721577279945593281254147809095897618753445748127939905405306458559458355084031332006726180201805797478164170730488429100863661688248611760122912969561069953960774145650839529528602505255468893811391193858860972407623742913160761907744799802000847728021671279011187456040604359236044159316481278234638930259703243095809771647458386061337326512280458309653030326299284090765677719604444886503558322797949283186229298592044197935754834920224652951122388533310164244581809124646637578998260424498274346393372409399669580790805086970500997247656046488513000161922061631000852127911152635519016914839795123330354189111917579018116439375527934658365743067562849631768007517630356713049969767098402035172242732822909720575254729399439132060850326056745712760811892552943738012491608017560130414608357158848933717749146952176676134468857686702175367097053994288837808597195876374632624735325277658004201401804320031360896518902453301149744280018108191074409549564357299774932907857555276168815498023648335272790719399028901550437305980126974757253842454277053554909449406279219932003094180867571922818487130172220091160284387832810384069133253044038169394820739417246168049628860127539762919521778593454351983031427766492563617410561590487940531873085078614950793767784847663051426181006466332502576991265467749639329681192218017589871609086024195412287786718729559492333009365333918715178327425851788833429601237895135865412338257790062922114957375681929690209615682931175913084031285154759450381472496861911969644416935040123388731656282427961346352175048670037183393940087538743987655037399125901212245892372612165286784416998074010570790488954365615864087823687326737117227710684990973720683533007255347453763321222326868774267802452151683162541729815079475495119393809482435334355187519157401240452660417063596145993346211092446056255535670522493909222044022303125877196716185110065171222849895563399086863610833013347743521202415439711834229688111790805309646749226622988409026818868155747402245673234104126331199835617830078867549129827043072091417966423907102388842825860234507316183415864602458154884595799033283427704431571502579329515784626898727029585856213879450692877056193683191707284685187539465174400902986999687075878713270516279688400435887089686050861848279378928761320905031574715868501998642584089904651438447104833950163669825431491900327040699670889244528746761414060720108377970848074510171569702755269008562534572468353213594632095212254300682580075130729147867965800493273034077797986601559378360622536699889755235059997728499363446008797112023029712169583586189079141369572681054254485051506516640228009052443338325999603355798634939051094428519369330770124594237236311054493903808223763240591165791741407739210582286654759334347525440261104282529366610866240732526912412917001031087234759909428432713393728879667838871191552636971707720917611201059769061581403931141521603524481050257167667520254519466147759691834433848202547982045513926890634264583430090987064890567801939922225848492101137950004184979753382224392423379588423568318312119462251940211025733170777808736115630019920456711869856215696779778291009962490125804541402099849622385649756572842805773088894705318157748253575021939908641128555961169976621298272083487670221239331871372408548503770749722394029725254208915482079333919397593437727241612333810669250189921919115310104269391098821167837132259328301288953370216184768566629756836786512088882678777510191442871649539238985207287377172898766014511511442333852377760669622762093875985523351555731548742715514567413756751994879275386140948350683324783893947672285755230904647239832262401781317310194541081678294325202512134770531132568324314901184196507258173300568059846588529565661035885804923247365575725603284981835734953837442512014852621701508856204098137381220254264891507640011986017143514354202910932463138311587537557332465367261821192317539739949249368760246112574653206812983830961708372422916197608535443221460744040274271173108173115657742876872382712044392248537260314088571236476965079209232119929686085991289717986895952854120524134824696185804778900393886218245887278687021667726384089058355305348432070156193264741975207878913545120658038906489941608285234544581727065405591235912285766787427657202470194058803563885721691887201604221571929658775359936714674502125233116686703302627385269965627740854911775322190974416999351242902023458028653532343003206375664368263744515900491316506364731717343742464822329371322043084326233421851185398936552629398365360814783432629296738561331948601491079888977633958402035005890711021740754934385987875781884426965864001231448878672555455649967206245795819180784705008227587440795023064066957210887732325988446719164594092787910901979883739231929857459727301389291207352992631149477676008264927670011457581820432096986549445819767343377391186840812939059655712097238663792297331810776936141323533439628056784204514980864435642796224145604500038171490262474439376097949502159226580047510577000306273495858659516041883359710368210909004910578472360787339978802480688595379277507792814436113426342649475034550005475726666917618143686937296097603889136188815336859940813197557140818099807917795372222588494743830968922151997147940717214211401963698417311097503183984834796250680093006678621197352183162444155117018739671578176418622101286146180243906851948813911943936138968410758621485132794378475101626770887629416839760956690144037814832917787907851524515771479411892221923103509996485974190528461532850014763035911854450099620272299683584652852597352450123204226196617420480302177167355440442591035171013767717265907878507919877856413321496957808497676083489030509860768050494127668059126139666277428315097576992194174615042219537204546109721195261165384722882248350857389125119217954463301718558117670898141689031359555771568152516599481363999684275674414717708462523892476977924246297181079110095439439636085543783517355054675295747060784562427375356659284537388704518721609905380278424783497477459602403734129336629095026658526657446278807281924605653395305127571239453505379089605345393177177974227071989492616862158334308611307143285455235885513925686359507079059738938014764073438015413097918768259565293659614037144102403467368898947237064998088688324073382372696284809202082470976887532269848327722264912465579715298027736679225257542854731796955305504807984244260513942775186126650704105192861356033266445751691452227888628451590769747249387952810470311965507639952255020229541525477184088878780895988397918510062741478057878300772473701013632094283563328968572584134650981810220398055535738701238152884712174673344627185827004837329672638249735041970019338210134699147014507041120298380422051235756428822702978589640246749496498375480777737725448094638725364312451498681961678650786212396617464744452018693329882009879800579890225492391638038156958785642207802227130805079648553953093869338673528239563815161090793352222192219052457157112385794670382270225225154796482473477676048581783796166964836600686297649286275119724122751376051141263391363486169626795634179821640712128902158396015437401685033617478895339940475560527550319020413790927991924588376359236881969338572883399714656978199355180725382451270735442324276314585396205803236491743113598685022606927268632891351053650967404925915590823512000865411350398289657617779072940525393855175926832870980304470362707829152813707858903268402359990321644043977586274993939415170815697754741907603290378005941270244529424273606035467852690284855316270385485798212733515811626304175319436965175871555127421088727719468372092502059401519218151060858564913716417464436502440399223503123975851833688613471622031166377666128066524981857104831311534107450438964068234813937620771181641251833369607315829935109837127819511371012048658465264660227835628070122742172763308864770465385249470940347249840195807441192236800599666784241004363680344774422348112604939109798352848021378368353214786888890634969885196944488209565375178576677961337239425333388388863699105847181942076056321506458588776483663420781012249335110001723378073297638908044692966508502405505997602134176545629366976976245656420958088523978497624014438214236517808830364618104909242940418638106405548507041666193899638528329768805900519787245482338205311440341496078081690819680387777550932400077893813446610122733263281847245385797439401778493149050754909478576824444229387389362841740718546053599138282205809504756764845262250954163395575129733230551220581002462360985015957682750924651074380904217888501308177804321487887606711242054021832489716305570830878553144143059286067934725455863730021778036407524620459430562259742703792351271088722002524938512738311603934511208551156510404810958223551285736421072887608136822759046403546573444354504450538459079013536760328078463948405508731946682661156447183236501780640422700158976123641170803980850106564412257499992887770378314718543890171705654998912045078388324993294622048069118481960984197528243346188725395860982855577672923460029250043881593819780384320679247163107442024884059335974876898591645030458995592693821480300584158352732828235871136394332119274241340680584946137114914284354222772541320825304730813945709668138587086678356369687876600251151145315695150034021531296108730795946914743929110651260329307065214938138942322204097417323749988485023893002694534662876156736473280187948099333805534196765001229964520405363313357164656314865172295258927247589694081954668660800896738365620877236859488503110984373993761151616754158420478348092963963591851097633283770293817197908521701828561451473673132996182652819366873165765371676479844945833894310746476620543227539558161672535079898752180934197625261779964443450602174838350154480702976479024769738252391695622543019509749441262552047910415115126211086161396119773410528167293391362792735813575380714344239408202827869143286285706885124511070571428345658611880135561077665106480757144001706771603287880959514229149340315957259961426744983210650566485050541714447194161342993224327002134017454029185822994426569530480014788485715790581881266755539637596645951975638486773943901139298124971744168585832905436787626524043096570798867626560669156354586342039267945723707267164747401074462847948795060232260838671854783906971902372577302211225109761893184703564216180108339439697056364543472280264349324911344286032868234139123922335927590624393078810424405268420071825758922601135988739514245529517201974754470828690335823210439711241718596510940342667483864326175041974461789497262236669410304708985973016827168510760579382461186811144075711308643329702292486407258752119429286345048964356198882444718242798579545092466795812993999468317120767414096730002944670058175381178250608484887183925678580819830519433490120049552590136574996328281729907460859779420880637317402617723932335670691426110535257949556522153243432414935613161408965611920413388521124737227107051246676229024624198522142993592353175834989977184340845927438278415588577796307554119979675331705944987164172731469119436374636991362437648622681954358619221339296395238278536352573876196809214373955749211468780523997467382377019746022519023569290386568363704635232846623278684759604777322878598683588559639876999571743808218968882277681372373186905199564580849763611268332926488320235804840010901536850329302618221151060117964056728819827252232222542527033658491552390710451370087913502504066608873104865932054713017904691168244674110928883576271224365703964644969923072231526979225025198492300541482240013897722496898087957442875534305853283834433203930273299622414105233256283187595789974550189892510368071835907588988868130787042867010976716577590628887516080691748388689250632266083123419435427301577621252965191009016290641469190354488898599122559831835825054528670052192609391855806248310981556462274495753433299348181928547600918754110770568839645221543875858762444747666000560136450829523399803636059248922820121080602791364550759579909741055580179709567509909552233888727590251488028273561516974700902697929287136294243515701599115174574943753371589205649317225735956008841185959981032513302694576711094680255733212749553164410272949210735685759385136635753996182509393930801075318763965230467834133835251198009529679725892399371231863649601495274345566924577177693406201002480788135074246818276657653600461557255819179293414970198829373657397924526395810374821024298291753774755159441166298447218420103705146510203059251769368497598894657003280312966986527410203271939911406142851919670850265621882724324218297605697274245338570512274438132612823532135740312794238466668850173775353211620057909454982676744505603371410966298266870625506827876262163497754200868548778357835576547168545043711030567342468968520228460577503688848557013344148802669013369044158440774858272832537754995173687128790554553189301593049196794593230619868731193059425609159393429105138632450707465454188938424204972758382051040908286236872610615934132307790461039569472761917923298541256436818604862685814974170241636953722787334218912797597271117374889537321205302414039959671843984769865202354927807399633073427951381597845130327443143250399695682951461806692760164014216014559619348761595261375097478866586613162081446715799552763349887479468582023460822230259689664907173479449172883225699407977940165750068046634158466963136847855112547109001448068631891557949248590638374049483841757104816846667407431326557271929437748126310331347344269600931791687778420754567678473646996568663746285123484193435542116082579869235893837689360402349393761231304967575387850962537742300367842890448731900547045840176940453615921876851935506446853373380316400866299509325987011257130777520331726449672261191117208921516067137841223150122020157004446186439780691883550839332076111527443891985162875798336911495393161709472269571941578840962356670647970920239656943925730365988928225075580300156450190488539894810485141664000011086366771729397428139098329414236192821654896251181142698246740436797628482069185557101298635684438026186653407329455413556661097778472564433032134964106237188626798293271493137236672721977314875830290195940281550018159067307264955081188073496570467113259428404824513970447175784811421811173909554586838527827371602890476163495199585153878319816468098238829297210675845896198844356334551563915308489932455425878251966798257764623980905131532952856365469267201125976399195989898445247735177740124633400703800833184611328837386060800836459720778563929126238102214730773976089473544703182386686201839467224577538421111644391879648647993368550157706192768318769471684865661826189368247920161292884016064530414780963188682094743375937455326046221921914805559095247579968358326800829583444397855057346223125089258293866225795505967224927755380619365914184789091794519939169141151965412591788104102230548258289623873803432258827220088341718077884338464215322811896592622086725969295766755591951548750079939706764936488339056746747625719872491198292609371804050109192228487845557002528733224503720246303215821094371916713299773179949673520674049452354361649813729145584932860022358503999213435323372003185221608606379775734682781814977211838993567701164485026575925000440154915369388395977062525462252373025522650375584682583328419633969836490527294619295534851942663013360399023062061127554156015624831797899554982955720589159985774131939863344868244022748288152138743688039580612805384198106657888196525957240050091504177657052214275761308176603383421580136021101734326560209216954222370911306608122035940367826997563652202684408894004066109504228730261754722303380271216369388578296170943671559641276602829087451507557306559922491422129942935575621045792483584380097684934544710277270986866185317581928955450063285511449366744334939073470852993029850260565798553096211512563333518349814059397008902263299288046823210877851763920713569259992671155062369233272817370373755324653461635252955353882833627697362003337856173511654300260500206585305047703337664457689649741138398470012870394612373745274704913183277670479757102360871015828001074959639770142183064346341484838406104989016499880754584805633793220956500062982962568363469386095946343061627768386926325588242004308801654875094333231099991177121594585483781967789154061403787987172565583194183195667002696029439964321159045977850020562140080588522816484034830954379620761092389611022523749239727512489368186222494420248380181707762604051806592026358984738846177112047491917398194617458038201557551939904841008998933691830405401375001120231854268923776672560663558524099645130769078618849378819059022677554915301749597403035098786978448839623437448930417722665825562922357231400792123251899632158539511805581798870268438225256314277110637581140499991643706110929401058025660723068080899224010001892245245729062766691686313529453355084032127310249576143058453549379703116027867735516376860902371450214244101291673022943250903713302271846084984762837942930961835755301084275432722958181994344688511943569802907049224878169370006957616273333208544345220763783954157178422061140811228054865263798232438960387158899987394208521286890913864353305362114124436667326326990116198076730816438475416192637136399830168830992045644901406355529334015069401779431459379352636157540139631823308546860837605813283450234592784786872610174212213561315675181528558054592363221864892928136280254768211634583078700474736368452780017033923477770675861271714195820783553145140069278650180073049392396300952763748554259214853437845671864667482749083488426554095938219662830634964388765415579547069843604018056984826099046274754910439918854847407500095723627162778407127273815868300907090556975199484544503449693430388574977181299569099279642994140459977884704530278067478825439891026137787501883317153491679659105915808365255965340175389309840707836473383825436932045729833360760845920192932459774464880422970241861789921413855156051426892634738084887554509742168837869801924102833051093593826873604713075841614572538552139001488607793381923415102942215327756215215649129100976027121540256477899821213966511653787827526554883310191198779263046114989072029724708924321678858134800781017517561291636576300042487221107959516284699054855352716042218473651531260826785108759917771882360759579197375611853765993082875921786984483179471470390332590910202933358564728820161005075805907682238677719101160663991342328690985093411086755832473087620461795973197598414387994134996537284957934223631509810129311447536085454525674460149128001116860615890630732153710616802749790101247881290673224059155651068403644831738494261931905143741087083860999261654453419333698033554952119895905619035246904338667967013261090041718458415064303641459679076614631925014438932419074296816959989679627620414917922469304896182977851135184395568378772428200580114633395602302689838587724962385761490181410638140257115276842980963248154953962654335799711794573866262427695097604423539020310555579214314055591082259112302259010865751579017501147680386064755078259562645429851710953448468313654879069917225216397000476669065868106272997857188239127263090023868637895752552818319426944792197830216291580413025053988265096494160938484497900419168366041431938303736229823137503991807895019615096901717690626608675305738545357228508105699673063227785963228606903732230655175461662936545782328895340527647404601032212015352227339713483462179823276999441828674220315310086595933724472305708674184635619420355206598114985346926712989072951233182010170299855780845071361732253122637204453201943858194927890702916094838410056625307116362460844191343486206489509708507029821487603000841194308994415629114731701436793775103226324122003727489432594583965127589243269124091029337109372609248092498041634890409652919191403310695830895314785024889663143162332467310113630265997219083577693103717861792179477068848926011961002534521174295083019444265142320555134693379945011471939000745456882663623724183330257765663826553341927958710237870352498554563260514017987145382319777231045835912260433431389420213889166644764027995907314148835396333169804933660362832090027607446323816613163951175178900548419484552088584163814983941076557280920630085231772554930528702845325068373368330152543365502373160143960419355827445244111537066515335507727213977964332878762681119133304672215395297759670957697139712723444018431108619787039466187774867462952442428343021453426978157628824215501975327508463329499714479509877810270036691609300841799804118844527861966436910794787126884151922775458176941193250374203085724224257927839751615007285219746505159872244458215423265364746831006724929573759402940853313859876760145087929073467672794370208622854497324046659770292908254770936717732846323632992962916106634092863905949430797917437571670532541585944206926028371219338071108795287677234926994191614388424746659151261437010384415596225251879265685027062033663864382529463632010933344527440516739060674882658274998018443086443522306098540267157334442700660181919135832349881165044569694744824513622043945094806944834360108685022921814539380111283429302096653481980167014770563513153375272764877811935306513929702705638724930783240979754357668552588472172619440687302065058539256299805034003070755360715151111449947016871780547679043368645477316050833908365719716696380352328694158092845910334816595209472959489196569041249551981244244613950624727400131144835775342183399124188212417380904165342978334372361832348323512308129474367746638312757630225041068346090636126453401658355341242691393660560647578258100597670775891499057390044520753529475957146782400389126617270358534811101440529719840791505576253446038332904306707952604591928686852604739995341123704304249555828039393244479219478037503344512192212882513545257735773441224467409584307502790194259286774865268560098017083966983452837975927065689486747636282171161851732809010215736775601998926519989822734905486632333364778748938742846648339242852579892304949347988232724024540945559812067012762792712583718294972117902271210525264484643083970159896893333386425634548391755118410183165633272252972376347048106890311991205779117356047097251380529427611392289430873302104016676663338890219714388419786181881086471625909878829054725315992408468744546478399164096411045841108500459079675095886449534421169992962367501784893089222109377245762775029718319134281018694379099739401156351545385769446236157513212636793154129401522877150980934428025708842168789994758532451382396101962173813003475591335065364370737861610417755937710454868351574983101786115288526845598219998170468203182782578019910806075683410945237112461062916739070709366061798088395739252054019770388717654644395496684499088694691852282388045522127770968427594625354252979834911259626018370266276291334590030654526572755745355443350333558925858279667864186730883815806904519559197548522079251702182716625321754153713703353169429904730935556566738007637869324934773289189565450263217789564543878250016182691982538997052464900671598663209983559261760366300898558173390602033624419035286841638517687048825764765605754140779533194408473248143526336135645803339695808123465663340442146620249078112739553924177606092308582110984048370595329827003847728561544611655096335356408110262189407249255002701628072822414489019991505679962131754468142709758838756707276727905297568069704089936457461868513073919608569114046150213098746208160015041269087146881811657118796737143716481760125669495549909239807608638916566399963991861128098346494664950338782348902099402273893084083435916466866198909198469693360506894394860010165406394282669287201705061173333933145459288598701715051343470997023956088424692511065716063322194208347305526902612542149826619402148231886999281745884308177355715306388099099993345975405153178647684147847455783723581262609949357010917900197822163941432389412460538420033857577947641158443031625073794765228983531584720940133986521341189224118448272705242219004426945419443407426254270146891504604851308457300340849992526977781913942902497461193754491389341166222951280768173872682331910606505350715480427586510527766417844626346656622782760386907582512610520289802110639310735227071114150249493743104623956352875905208267033182444284547479902094427017926090028390800365650442780887129044461966940929991352894364981767132949586787547014462048252228412159814140315884587897961294596211815405889429308367428205840005501191963382366120478345061051745239547551362494433451350115598458773767295736253379949932387868309317240971078520627038632953231851752307298657637415018701594283284732053439163004067384386023007528945414036391542420429866770210687719714053161932620005617696038710348433552424592513593086788556542284958713453471745485436478647956488401021480099250848054080553186807965912829220443720806100492818877856337195786375809522120076278453746399544716831205336153231753810504734884720712992165055511238753534058732468557712981864781074675152171138538746586980573995354442535125733451751996773447312443437812378331603599802047215239292501586877735413281682238396560608300331497038498489864804087647742750123860925700587554690762590610245238283085041104443813269041649455292746727641068781784748206730627129280817750514467669514081697046276675147149846969256725375569645775116436308015576855794396745184207536970415422051721311447867262470521926165268159592080555732374835363104024252659088154479989785875378015295938816289707258037496211339256899255043741097727066556652052095560786978721786979051013118963976219407642521250840185102319339488845411266625825473681739127241810242171781718010257431388911882989908529215116422072083122005270194030506510354341133727317699504991725481395123101991928786056246043385474245437863326679120197265519530158201325971721043804855107282748295497283452758304945673354285040240438826604131890889252149176403714435879837625823517409204305744957876147557158376817677212217175424842424506833075220656054647141327566493419246157440422986313548009064622204936799583791120215075719635392631556306385696638070020809008277877511187361671063561204034003770266070188296039273949083452734685835712709102417685146418014681587030057399081277810493550811380277042004996100867648512235034840092913325959759383191300051470369962864982148133048918427768901244024594663290835607204121267266708263023986947835057275145173930882586780528717088866599679422497601118400488096630815004345589494425187273650235874895399574924724822522112149707247970817032276913175559804814264975745680647250192929759149962226181061378857548850841663674831894223005589325215032117255446100532306358384808685575775152542272561985280608608776638863887423247653764896226356906445398132059048178739809511367224646169297880615268620386161411636885778829526513193466317062058921624744446431622592042543393443501944204294642781277089936343073917989407821180343896271998641055047678705329124800870056179791540561939045074579455203401264251636700503096221991425865321175112733115725020217061426576681916219542308020222888337481839625086027772888118228697252389543133740679026738621758557766980349648848315537048874013468476200227347413626237546190867963210527628957396337614035020749828974417642230687725625120945724532222914212346126260087557235280837301389851580383633232694500927176285316422679270787989102881599122193539202292422242967821905691576354716269879860700085911361365378089871532016120868342468685087261731112382714694550064309472861589822022720208603283966419842339531350866535260357201712781169555430114247967670822101073161381987565991217661815959560714000260689468987145430636835654574309355608651657602981173915511157634846662709208348429829929802062190293636260018017478903771778436643104584201388065383795558812374094941140709039708154823542562746233383436862856285291918257364304989245267200134462160742168430712095928918780201779043072365057934462940365783928742948264251307412422093372809326717712906648361285081052420742369610661364408282518478493681256782844520496668408484795368806118658512501503168934623265043100567502772682372128112264920018280509298896663182517356374483363019973597267492077051523675196523175511713560055979681509974889113992990060736270799942382649346602261678259810282075731994173340682084157165184919153112127598529998698742428096107657436986044682243790608206211418422430758467215074870226270178016570188868513248369613524562460620840579091664333006807826874266454399157345662376849942556845805545767775597742388857736518050297004448894802457577723691259440255126183049064083017415984003355903704256917101336562317601583890997479766420054843345792414884501757346248420344940300662193201454529922595060881281591982758608925005348169131093626584995602566254178274172557811116186604529500612179656740510170404193572644519035398114549013782553856454570836098080165989206566598544945556203157769156620549294747987813264141821923443612521758539217275751901065880162205075752946450581435784771292037107210514397749180951069728277100134750293613111735682455511365854969024761137517205090229108803275274593059917338766671852601212465665498720727336831827591948220505071380109960276334313952395921835559018727126460327103140141104225194727414665426430916119701721733402339271390364103259052250154907514076696474660901584610987706184722111613784327052635647757792527427498524973653054835443720740025273508618796078127552823481273507407577724949306034596171202334202545684677553564855077215654077799882241362434728277783685567744180721217106642876957339556872954542154478851147090675836271263469396208161866484075549011095381615553878567136497693509256657854211449444759986693169147387452588797904486072802977664164542737064536263748589465821878756065061891056941723117554687744649034981260184157965203194737332671764641093960700941653506387098740502768839608765985016117249351674370865408221006100494942974464284113494594848401827807806135388488604133006382435083392432177962506146436861760278340694206111779758580349063454183992206419194403509314475118834236165923426805136718867406093725245244053244206629451143160681951443601566377584113514788154483586726928863507641196151505030028447613006513617547409422742415880963035617195986627243517278213700093111344340698570727079949741707033588578234322515118837073753773052215174911881030183463565817026732781624390029276085469156818966190610263767805927839634000246347665407521351970083123382437246911621691512355198237654315866998453670260329054159677649031101884215506732710135613474760600101971081068326414854576182923919410133108328801896951193739355471922390335401829986549817190240058398857925243247158152194075805902789640118428437713848607819138722232080274451042309899930212326477340170906386761900567498125997580577903918791105255473400622094841762662964385158080203408847247313067803882803778162061122401641087587731513189011968928385030660694303835248631665347074998193817476092463655583805445304982447341677138539734647368090518149281863656775409536520819706773712702504949989629202602531785011293814005256849644112986795257567318692176103053564241446769993341090997292150498302096322674560339936250569893681296945408413440787413934391744694609169902618990832940199498824673600360885244913462258849421287073845590489570873848106034300361453595367433918908398898294482797825987277564836683312762292848449360123386633584290135083327979336747570603670099927918969212041734711812219310191998789664960768866440712009137329720492402422781264749289055319800386663077990790413523903934454000727982311444669292281659971247588156814831400979128464043864396086419499311921542690222912680218785211201788104592004575589977113797850889978847812806662026850045261417139063003522863373486919542943258575792071109574655723015849581249662454036718646741939279767302795201815000489597264807076223933722360888218213731595941671247916581180125640906331943672861291515739792807181011005367234774450303403761520553056676661815415275422550064539525280270793156601324151316572264180496918744517934156751235473839796910503288172263720524256763270661356373210209645367246028722680612046928225666310201877599216315357563786235863598912717129162377339044238295337494305245205205439696817743680591046770901136028260413482647660201627219903564980943881053173412956679322885739915464192863065434371298927767357508676955618377330371322397637860405382816066500536373669503087194605196366085126909349261945344839591870422494320158091698006104243099731325797310345168550054602605215412104759123026310517989782115067254367390095353940955329284238060277561153644189578093666636402370119740954101590608596801695058957207514650380446566442231456588734456843214470560350427625611430199193280818384833619299010664122270446605612174066782787602705901951018394529063151574140280934991393906777956165261726092316600430316958456583860900660835965999531877784801616144958249349266563098070217866665189240723438484269224589900092838167485350850560831071229253328305583692299411348461220268470894514625224330921970240498239324550028932110556122925701122362328067445333140694021385672416904553514819642074928194717541534227828735392132831785875109202991496446982091351830856203897574406423623590813947325357113760969023468422392824609902396501846424123323887402721650685987157871860294565771578160845342479689891732525332375077708142528097389676150084034150110575076252323089782534566652874217304373162812955085548107299409551344048675059537900849801725928289290517290716207223493872261859994407177108326196596110367222169136594810488896881155552282833690193036429231399349408837256046973211252814869949811128758044740875397157994687674646593331110271065380995784318369727571130308555876668500415333649411203937131199525845957593816306381163994934007959083588837961426703077769893916359916302003989503473038395798206797976297986938811039804849910077233076396990659494353247549959691626773398345848034165618381068344847055952096419785156438756741535514856938874335488049679108547485575937937824063816629119595825347443226579337059213352159844169700785224079832987352938490228342542665459228657295133841838693733991680320880286459559801637150780065916792241953112915502303909826066191440700631045438728863711105003476248166483260968714880126022702380939041605556507348218332646437646124638843012322213810472603008432896320794621043912176974602910394710199408137217546167822392927017642426130918538676174345428912885519962035123064920062917989599733936027313167906491891895896302813767042287628859066591599102070840743140238610938147990497709834443072350898932187414047490519011618361281452751058500815025819137079469753535330458711141684465193060952279806980565036329153636118506089590339504366484060206675096625603170916342282962524077711419924753706077996098276969768024472770172413074495207500706968047644458568070966412277276789931900649032653603743770119447138487755785142949799456861170843872998470257230411207658153872899677375793993007448068303734626929162151971163155022057061134415298837478251161862264242500594122315405561843842630088147423455188787202118661834959166102824461460738471128456038383751161323894851602973729243907773517778787911864783203832100303031594671508821609340758644059761906407079528825405281161572193975414385343438298257344680692257253821399806717976940007942611453031186837606225491994535615109211170354066374182520849868126430444430768176991718528879954279591922160285321657800019261181530415849491972400720465949457826922640965640761817175002507977335676666090169174114230708441015924737585862282189964978725161993324695729380983444383960196405443070406104955905864212125672056015697891068499980621266231884047075072919297766884068928031948242432207477946056061699756985722278359814803271060100330058677263211150964516049214714496713336706932098232786232208141603652770258648358061006206580523324275497690203698918595220381212848529837995696337065682370242028033041173647653021884816699405026418425516372068020064402485929960923959467819130536421895268055010437052497443136581594019022129813988474318918538111845959206182264929250538011268213619377186939892593170569848087286664617517301502670354056509287454321737901368062628140232774688846687876811991288556222256194019303660053705665339934604540131832299529588025207815165885395725678231917162060094891353951394467642590183811301511733839310281791749791534285605783737156678414580516638668650750823613167065260477086877124464311710092180908266208003394054455692766136305599373608627899444249062378166429592155564159890154526224339919382685524053894234315310874299029452477147569463739393297891155347219247843973300913365034388167728541352022363781230913553963426361119524823089827448057125570763653841146245192322714633716385601326429874213200015592863508586251708950590497070050695185023910275555821190255313100369817286876620588176602036684794197586301013988968407287570067553869220211605611911731544406250157502128854631491422359772912948381679670943686651127670267603357474646535103665994762127122590659474940063031309599023710413124178067815310708100792559636670453084367297405056667924353902614102760171313493787380778710419449341130420010016615346063201863229828047226920035986422976774321338377591933694412465330585576712399411484822948861447601985228428570619580405952881389317624552426327931929947367548303477009367777870813611167352610955295302004259868304343512237800029594176800511957345766674673703100683315015073305276725836098855641712724814261914830736713958811191885047058618778639781047574238939612799920124761088743477189795670900224077738671271535820116359137743459490594729741206206739401775064760943353155287391904886694161913793251142943807602464342971978785735513894747473777888330132147583030273882874545439855216990202888304177428436693527512629344464742756769029338281021654715019905450485099518842746068150535625160291559251239388396977400771537596505494267213595895114141676599828545767173692834737474935951958150239872784162052235481764020374053182656602583319142705167486452484954940047784868464682711908665459924406149976322373178007018731356677629478036206439534942656629960180504157297647932705341156630245295087112860115504675076839761332113310640385187699152819698146842992596843568626312628167555302988612805481522529422964269606205597679986477898486755456767084497896002481321147682371902942650306888027925614877181266296947736117234931251376183620905802054316316436615752005950897324145259502601809630961339177744051194170487637950390187899108025168390990440204262619282617992981441838808751173780291306908545441022321481106875639881823594385896078172530171844358519847602333329042947277324881569973615595416418697557685117075798605847504406937411020556577392890673905514252912470966596572023646307434816402472157969146157402229673198382836130736597512518278527333306381140271152981507914786143387190573327530394103050177187729850850101911258282797421945622029929663407870873265500640348680301315465655331515117955228756703843023146955913336548580897326861836006749696728494575533040585146186700499497359016105232900628052292484345886682071762854450031090791349825874419902796121962768162820191655600705669043745371188655531848477691568619294942479510410349322534513297760437795605745419018818611821190854143426106881820069547933292107276562500143685885789811894963905883086725918717727142212213936887071849113240780290364406014506592741630556004767928412014177038623175587365425928636135921551005557295273038897017499632758492294053642197883865274806415933461173636605911468191213812010177201984335713002640953659516155771216024543913725289515881410534618788304926222646054907880974759168083521510437385706335864972299779533948568239852481426091704450571353955534874086268860323865623541868462848850886608441620621902020594602610246146637781400025231033305447134553254898028422417762968477348842436233382186479059073935341062607106861387007967382929151406757910140884657615182642601452517576686189793970889496744368858524384929593566568279919409710950869715237385422713460381202946790524692219156181853501342748621349052625054107317509609653617072328757893825563710608030251560627452315037294042375964321990285770302600362907121733427151634877920515791215645365369195930416318786974342097901640754762441776092863038076973293880922557931143913762449815336192787269707526163953943708331410065668950517889608169536456928827856172739316775712070761082192136605619099756088755425004083360751476782341665912403619540121080831644801035128177791140587486555866568643543048051525645202749230155143131314404701013335926242067544474433394317582774100988173705401754506231274275973076956363087927745495630473164518903799408442737877993783981528529367631393346549245251177545126207033607378884977570767975346720094869246391996809190164535394292881297738545371953683062295638335765343650067249166258756210458783126315402972215500518752314569796620826159349386906451092364593702221962312441646847558207629825215923865289893468886712959854346274642870751353726773153243970303240806721285376711211789845717070039619834270824077791360125330459170922243392205485426406471507296536305564671993229808484701339619481419284321469923964835754295155749400062446084434672285181083624154799594590390656316837080027781962566432158982254428451284913829026306864078876666410820064361601468724126699158032963045733744986809829276605049110576244528088409095272984296021279373849215645986007579922701491296920768291270457921523636141380776450354930149642489170994564812103413275944203129286851770177267603464037263115705275800283134065397042478075398973066488989882948809235790775291586780515034575807763819572521176420958225437858483977489278253282943422310296652466326590418165727546037849789664985347916612921101223395724460042272229077297651409807413927620742577853021039298108244518715087824275202808398169929096754434901071489014549518646958858541291148524325707255825471240324495917856318573572617499281867248126820255981227964892290584502924807745651042984389042534267431882664599952278320179059655828138392117444069842244789736771393857729753960767198141311005090855280433922026876245440309843167584468950281968750186974097761467757840550281481539305574926886731805129995251710876027419406707131255761239124501905656144542384334731158193633714254693633172447488603130447380902153239240002641479117302478568372729476935115231928518748534118749886413159150083729233901395032699176042588919264917756461222084291740084148772452702731515896821720485313004133290969976103734824830760674363065491531880877395094349136412993329051848152040464878946259371216546459883795706668844258793103082395015544015653293355707692048283174312642883133205161969109397586690463155523990893843485640352297923519898272967545866324161440650689162797857048354795899060237314637558207939546057097099892727551204891951253261480617389163202900328072909200794792214155984092683654271448577683890667911022345994282959944435168152692428661020020057964002770562193517100210023168754344323802004329250151734167146349132983609080077029285354465550466984075519979893868994081190383061112647810352236064948434257389270827284190804357779886287332094238867573591391349703293495739100788059286956843012476201063591827179755619892194196263726620753902519029092654191462036499874242174899651187101587055157309987169410728635903533602872986698214899828914915472124993559893307707783119462725903771031902459754167443492541451781878200985472245706460090122424153673268121730800379625659823118628740967823828347321892015240239874990291975076808438226722672779107397533022247642107695543653218839363790882319130670595489881895227912333698457985074459809297606977157438653653157475639914172496724852177262277262805967772376557600870870732101786100095460463907183406089969884442871771968202268670163334732415351688391195220558396086634996239851577269066790772640940916172648055109522061296110954093669243875141210711198188353985458766601783722668572312643431009005621338471982955708773261088743964361162657608032320442909476040441861205094532039029936582906148603308686060433119628498789960480777927675577687634137555389761051316048450807670209804111343478717429932016987997036033337594170656097777246037464628103088100674982606410051820710300148687015882597559346629968709985145532761559364583998521693376264874617606085604777704682710392267437380540384234463363092023076677125347980553077053186143120057060064260980198461755225562033479561534126760503174099010971701079745589939546046257792770928122856233704845335684327501846289575915543567028999130165573756521996099372200009773219446902581821287462461144432817441250448485551404032494824934586126351627255365478187131134852805868383193361745033602614758339869433170105922463349783332259613211837268958793636027074763736762968253079275562446451568743417961349043508413912010726041481745850829138844139875356605519710401652750484715222537278632070257110339258376154034204493191407152438517391649568149983047531996304166610096443387890836171291205913615529715970932598278051907693142929643436417541981683372312857520704708075747810411014074907136642399369261469595358078928654461991315669942070142663591439163925114599204172513309481610924742809758759128547910234016860872181291540135797659765390386383382046176208840202223979946791695879896537191763757633801602704636017140337637811320119460706812741227590506890824862527636161181775054326663330913426263282723966071081946937984095487936357083008430827940064710805618484098581265999919805518641757458686321239036864528631138948982436416368761305078566747490272328469391442098493636031773800168544157319551159443370824962705754263877875338464282915689641778861036056504615181865687032807860287889509529712582532999467829975004589112938615321385952546738099186997749056242870913882393245074784842959319140153807675372850670026114838455241755065346029376163007511970194452260030720633528331320712093391968532365061503187539540238962239434464219510846799662114696081399083052165624477406281678920967615080047200899718751643489361145057607608757703886586129644183089339032919476269147884574851743257743843665495270290543273510623069399591350567425750577727037127138242357173103796048815277115626613609562476820686507363961272360679023174455771128617173931280607111721172772798512461869545206216184372915248532835446476160732488362834334797492792523140107410265139664243517550487284175410182059795624575600616428737588337131041320962521755871053572774754375980905865162196427097884231161794230061868544249398233323926455765512155681772561714677442741849483441116650318326593292556332193403332105504863129522872716326873762979707032223094849698753784015331929939883913794656510574218810594417607734139113429434511554015316663495496908750587061657501219933559238713344188790461032308997320236130255993910935737530330278717139287895511201354858504687595759697420914103617534843059290840846001204980649748405916460497812618882454758192165670077577625063011345650914267183676640988324215181864962237829788603476557193662791345655506894352746727701292414372561402660365101173486784896409328937000779822867981416038189177756743326863163552092556797326509347103917598171010512175692602353442833795026247077511576647982425712566099774552489038282746899721607610746255645677703781883332863805873313908218794696611357663800587648415779397803137090390641732665772035363867074758764656594588922757103016675202916601842791396393927207104046710453714324149772926778793534666673817602359304266921650828502303666197366106956816402505912015571960937147389789733001670419364205845933750746988417702743089370749926404544566745022812487952901880699752218524658880729835003316093613504026092269826629804766111554058888437755906670789848621205608663883335187755650044538654666206561584377359109241751233147460980260425012438409122878940295223531420693280641133052039861696200349876533797798491122669600298101276270039617874565655349777368418970035846882502708339902188660562018692333181760018211697875479081184031309876568075806138449114697197294153950492325361934423109405812793411774739932042668586910525146347802948138421642863720008407497832537302224155536214517843787461015826857548158635942678632867562954823455223410880668034371751434367578102795548188677872443136104353015847239710581142590655249881803461059828417842167981818876158499766742184743018773959007743460231349019165598586669651921071025801038922361221563740995526075041246305103268735405792616032012809495989356118687513918674801626891927209389385888896826802721704760717554841407433779626666279683990223628328527180544255618987155147409780149578560986233741494268320252217983100077442001667801020218700974387939749865977335180444810552147913524006073659302421532395714829801201206791164669588291141004660276230385370465793215623828747443795644470104876958547274059655948235685402277392015098701250306559764461173250055822614174465906074452797924357658105063548823956766628738823295519951446433017977403486069841109032070266980402108473231245786637954147044152950910916747855480692629562865659433969579165219232286005180941007675154866577377518083208316527936163445506588961015146359076534412822801440535614355761768150376177575499924934330995150414546305537008936558799052271824901264037842813475857719185046211357416900873860818798158519770275318431782735361661866217403086891561573312028857941231950206296355307003480313237008215553954335042412153035370975506019185199810775096225100159692318670795303961373395183971428664311582020941656794340454928662125037207903441452720325087565130803516007203480226350556714471781282451878428330250274322319219029443276020758674433340624960964760460894646608946394493074717767526255369977853728718495771112864649814079192359101937539584964347650975891179234728590301408659228017456325757477275318663635704433094372606347035530189889991757250736806011916834594362747924074397538700046957842899959248469547934672009001871320716587956952981490455613269737082112655572946663393137734179082845691213783726198312638256895854226594370076513033100598921079294058662253275219406121090023407068310101188931766550270812002856732501984381339822258059584577546072600721960091749500673144325567710966985505390064333898637176845381290412906079284511108503547250577488777614531533834132636404143371741753881892881178526799132125257032397452248262612876404741042448186094099608424470150295025047355723037894341514042355276565937948555238165782533853029096869072171454700687946357792260227536314458014131828638289242166351703870597043208018470683536249373197947144248918248404454486442978324229011811930571160593608627007272863674027719984362418410792975593153381646819233844410136130009596992495910708589546104048228720278572518494159413344610565585671465067465322908662337625946077527806004535004166491062430530922673945198239922592555152574308331857167583300984580120360347637674832883760381397889938735783017261537654560290630294484878277748806279731341297554622379861819866399696434085723707925150735336880505939119773102057736814479092224036840170100350822307317656702040472609484140188080708419904194943859335173017009528392410755307634685883119262611853742968289883015385056370215692936054285240764408990795021524919790472352023595018797975090820084493974888375662761322358450200434217323040418102993118432775024542523657021868433478657642486485670758807340099303289655339900921181855743814092617824843170898100310494082985186736122292701248744824449001534016975512628255192915391633267628116481326903913955115351261511061949628712977083516441505645428741689770220857294438730463787637020462423122748580240792599283144954205025438748019897686045528836353808006447837292007067044224758095582760398986721292686773455872254383684150157363619682972154840669078798896208926883484356464962821056215347853589950859949449014040515176849423540182496611922524588359160005013947610892750561241160683625500275074203859210728143629598762873298509416069497719502364258686892192121035287395625062503963139987523041692927138782737671032062100149596773547697362074452465667465694700569706295856381433453706306422965212317660020925877063113907780354567741658776767090391050530589757505191930174949711052316695567687837282471825293556002768252438485451986905979876341118704993531501024530308502352456961851157179347207114265466148136273094582820775891859565763079498078190896389179936144287840524886593544214932334830181033964437088140924398903956770328804124322004595596048851803312960916198660339292172263072102837782743452504655401292416795981198417248602644229987796934900764634686866433478011520866155457998777739683441955037976186066698977307897125632125774359665841898820584276546222985065826499425021455800304049542728648381093109944922502038003536401216896387080571000895384468710109832620115201651131489303427796372150662382154699960001105677388068555571534519276224778605816053429620912443721902499224554762967774965673768803487268843651235978834628112449236075783712057102702526730780206555529106541879753345247343603772430195555004699279190018939555032524873875221471508475681422608053644680657659313010447615652147446774866122432922028487180461212648715709213020299102603335643217032721257074005214297030477377120107250645375118267871826591847020722009611361367457143125628684692419406059178837321474552720063565749233261017128274744325548804096288156434148333738923484409721340099280004112252219844204008273991095067576952549306033226874055862154730207144650929277045360538445675840368469287389671953177695295475991505067391462210320740678464412402335516307858991634756887000688323355798375063001425925049096020431005723985398040249060684676040730891918491212401103306671931166658400210758501117234096935101945103796631790122167474471196448218340583104864994859792970198535213430472776350442132824841016464245715817897536742224605307731608002837393177695899985086396607220624335412349896832260868915975040833423729967971069684416528197752137828512921611528656666210756746763973275097134212068225805196587133603798359503377032907299732094121115787059844028620212678809069611630391279376835473339552419886859693165450267789363114832087524561096011093163720227729844410181393614052906141855282252878220726971964423243960085887788911034175073654373075318418922551522038194960398656166282688459869387088849868243022734558984448532253622378661592940783199200311093769510525461154236617504341332455747411438906638388193312335442438611605059736960349109519429571000991969006408663702762813880290718866598978102501628721386032947975999717317593946901422274647007566971851548973433644767285971571726390598576491709118817893993661056605035669613082614583019146995848406906910473766558497309265765157841962906097281047287392872042099976202407477957149617788594869289607344198627217763554278177406735678231972003128830689647568522606745754049908371249374705596487051744316545356673720011684166000042354229813930742674385902185403705604739621888731637856577111744764187203227214278268087292106161068997164727691054523478699415417574570839680729069884134361297079524163909505883106969062522020584058560037066988680460226290799570313504911262756398783359019695978599096156143181057108968076951688880592452984975457357214953221570362892900782384807755778094116547649809830396968897487449933974747270966086931147265402659193708755599306848868432105471409777586442735201519570974046245985312866746907073209893814629930955486312794155080766662709995666278125876262330523877818091294477939654327425354084811243144643745597087990799487522518352645771454307708968107124092993421859649019345596462440626664874818245243885961193522373680379205689747033385974606382613462962459540012455311654247830254219566240709089160050209605236037784233193839814096335248820626308605288188002570088680360220066540267379472821213680495968447065742192352816221712823507428433762187845790369971549882528726008657662877244797014529809082931425199712855712611883476818803599763393624024101607138599818181163030600154526340218043517280568036258226232487364873156695983436322018501965818439261645876609755110335219155528768078694410976182764617384554217508490360240081858114714028194388395797978096609674845345270480296974812367085113954126579596443517197336450103119737793118879317407135973275703054889030277977010149072591029702604547281782915637806421345753607558255182789986140376786050596096949433060449826564415427466652063910827735175305565257442813745053882850314806205700023766987319617471311435728340344857960579958929617109458158287702029368624062731014964893351856496806360932761854047623055841772917234735243261759529487716839900998259029769443004515046085685075048312716051623182426154839731187103221858541334625431103960950915802895275866529030927490680007166138140786449684964631959241263003912415546290298428647670132096003936630078536000969472895982177464274478231425387632086188714738780160946630068831155733808792975757991671620567977887148870451024940756628614701702541633942002442545471529007384461293792233779917975054410250817425327328800027041902585681256376526533762672757510208694763965557929245474290449342074148321857827750635615218978271336097065965537101664731517787359181560945619575859310081174088551193341256777410724476207663151989760184236501303876291198352382969152154357342677637816291005580010938861648662441258392755211259188905799967230904177227782872501311312064892611388241663019986968005356829766961804991922892696232480644015523995120022788375379231756120315531966223418489979883425773753918862734243533976909957554824641673871368520329195240521095658996101148895805735552721323894221506053001297299004104395008661755568015543557696907064890278684669383889108896532748209089885223560146764752792922272903847948382517920112842685978423361968995380394751160624934747526216001193999406067210215456720509431172124411722678476718491408690216368780941000298125398903277724662066129032293235817698361509874028734823058505959538046554875326239109067721787918776032697383636123050005472070871648690966571366433497786206179499240046859546391785208345656775741077067190853294585722332726545033224038268176797990421252087924368546427062789195368161158210561171080249416735476908212990662096716817391304340316553794268000145779502787534476783412757375932794492534233272717112923065462602295879529923775058090796508609006590389847308534131421256972909851293060010345035954357956972402550796362449306121298272751706395888063518913990970470698099186020827531345635742036308682529815176980076606607397903028114237203658050654555201694978707078674990525329340697342152212168430964430927916928065660782220220017443156901990317192050707521894323372601235226526440597493695348926664475712053589227496999060392080206538145323593093836554910692969790608378540986365345666236788410194930989979809148258315438672415782541536707608010189065370813963085115683878943892656746315654130718816278583511103481177812220873900238246606166829460701088267045418830175459987709827553561435127328521879716136400762253340050530848218963869088253460160342081102622757691572510880646087979939559042867559203875480376187128764145598867968958059623666570372583896035911980635419885511196230039500473987160596952826421498330768911733241528181724943303485937971743931263985656715560324568015890850742791446206940787956047419548948292522103662739911528230663797937369543873304573439838914272161268812138602821757700632957886326211103289946026602129677920782562060225644521501940764795968249182763656917399869353853668920011268023090235507419172445210858645230718644941983239022288915297040971195978965443251692428439202841839143667563671799957483578045493269928280939469388354339269582312621225289061206588770396154928745543146111048484579545179472996743241334218799752892774201239486254445837054075378077043056141677884131702554809928305229419675529031090723631778090249864169220779771038549429910577682972581143018378915695648476323035945206591536520841308057669364326485003659922432714639327717041283576176321017846293786744079875638683519809951572962829309362414772045372002233816966482143979903278743862345511315331935807102965008973795468838854913992126405039480096435120167926604201779384363112042675159000461278330520573194904521935030094399806415523646903577587590836383941328311507320598063942443113101080866827600930723879843401886892539720695344586783627271170967896833785911927576742647343939551173946997576550454741506763244955075884267247102673147658676927927235941262056068860352918416980405182555938490627949206352112824177531976044635994604949753984172725908129418297151608040785783096689095075938809923195071439502327776699835540424662982275999776703493509920981635004751432977851942833577905721611383858923461789617463217478540325556427771855572496726070671162698836496801016377645928418137167776942183662465530793026759677296860624821518390747623771837825107063094181321937659430259536660478494363549522110142027055354361923443785927461462387644900514969235203736242276766855516687339264351863162740088670541176526241586875843074677464660118497815221350127792875326280315437433154305782434265046752550685913954489137513483522217057730103031612511407006901713866546589358487799926708630864324458770995282184284267365930055345030669638710512102590349236839377101211360994162977133247270206681161920727186055274099044377482532395089526044243158605951655121512118732058854276162222919122434320240678286983621204900075093843233872002790241794619848795720406089428588302860529335478732225349376047707385473029228691631770918519533970234273128895634800891527842206281416583458347716594483601665685249897900481280786964740198046081900504149996177381910645805964819005039124719117391622194596717113841528675810823961160320486273813765722827786714112896233610374864094756674184064128368877267243437893771996761845468844991424036659472543443611775174392894121215381792543430202038273635528553420337660666944474816332378401030520191759052799038321887315156067684764475541668271331118056052736973521450731613894841324391193401943468011419529957962341578839386816984603575044468289395145807600742667556319506722557379390159832397647297487233209602056952632436437930499378154667121770356826093115284694703615210212584834254277461729342186765737114322396108281605538955941167647102446225624904419247039547688399838702979594726387430267804757760573410811791164027174300884902136062007726901393403330733054411524329846250412932310043203405220202514214379229553217135522829246109798954236722643031570617935748610037515464108580181803396948604903432951017883025608001738546551628613350441298221236569487919394037600513043526583418036446082299569625431610603045985419285328595498225317464035311416237732009646580505178286675669847769199775571939991010208895878970635601231286020953754229666879510151501561466084034319579791254030638433463546938121059512281599226031144802342613995410746033481565373131104194984377708054558872340804063817479971816678060342498356975959500633430575548640129448511556130628283182663892961688524390752481449422913917955768526217572676861264374508119521045901821701479925152010418906723531462736662518211173258510106341502939636938989184990652677805769014872463812268050841568504949522887975713055174989824881553792960051147848989672893835151295275084872577798265393863249828531001970805720185092342607111682125410153924069909286288802600084294340989804851338098426678240643776309657750573846207694656146083638378651961988081871184731432167442252199922646074938699135842131514601946198795422455947984285637595352014177682559595083877061006137927758077041026553012999795287006118113139002507249743397122932968456897168745539603346739039138027813939223217191960959130914417753751513308899922380111737642108389167564086836365846064517609797883078472028918547723897397130202053529718889582409976290070424924176062508033531552060956686353386360541578189260168770995056423565539580466423706795208757842030375263033564148927652931931277295349476680430675060470526644256827496634595515454986176676769157483815742456354601392978578624593311154682374103331796952446574559056985126259931298199418964983512675465441418118583595124921959434636302085194784728426947796440750059347784741026195995918617902825687636803283748138893612456707819063821837940925270611008822747638095197940863425329358955515904686752606010085289457012645804820272870127872594575923445914721274691962903001831161267035414760189482711493274875869657619805538309807080475524392713629852969792597127962547845221478019146861771501325693561148006375384356226807210084888512576831503408768275951476062339700805146577336874264643156756272554925782971566661520553104001192199492274302922789288951850257108272035790936088122479273378855611984261922839395425300907680565368087940993962821631811122475748417243047494858447262693288626798790620168089542733144083918218403305038031897934323868319836465515906172236698636901940325587647333361789518644149241360383961800442705148154596324345703186005244130865307778742316514768685657050626251071348377065061425514618965168594643152034000719109353480870207308286143131377964313581212170405662198312354765788354221274854676303981386985257911441723185125354667210114677707303330066334980962001243761470617720212117753818052862015286749016595940581125020291101726097835654612063320640082594217596720089995029122192435214981584624978871638738274604865472405986031408088022784853307450880540520736223409143452661155149991989626198201490664392913603113035416689144511492344854394484785185924525076875433168395059509514710827178460828117739914771575861491593103462020582513501829306823956096618903507099785571639497206269831607541817632522702242963586826433364583944333502494944997625408836955269615846167260134282603086236697567140272495142149861621278743774344969773352141649026426304800879562741530806857466360144467690443719367432340343422197800745467451714085775508375849627121317017708616676143401354042540699007741696038802632099236222293071099426293035182272106852526746473323831846645983214267169497700832873017197118917662203125485279341851799586851183586915041179065548466395644966568913932184256619455030146469585089842444872542675412740166206965503383160264317021306620962959624889634478844217760456844906006521286653572325324033018696672300051391802003321175884788822760194486603737563257683719025156071836970477300770631215439747444742413317220628767764625535457512604601948235883410089382849302026224900841323975947167710587390923296363014052873634786368219323199376632298080456919914369577876146226412034371397789047162255608923164709060986247471727078877946315315802407837464737313988380731303718404667988567538265599119917536800396653594323406055641456779292750081044430913443943435730666535809078389376681365751946881329720343285351388067542756610454232952019164946462609703820829765544564432600091426914744142224516902039404574501361047999277035409878364401254094020790201458971393994694778550961644302903908888038487908921916277695637952209986097081191287776528032844859451793977074072357400453124645581902364707864647494855777062605864782990825291183261429648628927741400916075135606507104140522459923262681662932989854927519482984143323312676575327259968277627912907660188470069518545786991434626057267544196524529120300699458739095293983595631767795699363563621412062711448864279782446721634939123022048181117268275343778212123103269962227374462502991485135052888786135334262219181644082827509819861387652256842840156278343817614049241738334972391259509774750192226688279896601688213132442198379500063598698006811931812189677735583543908381231356684195551435179033633019988202296398656668563957396594496603282192168755266505158225726031429519775709473232094217164005973256995661695190329141784056632334695846386501165682291334467130172871567672180753509110969886558881607118443257998253054543418707624171095898206819079026424537603589931028179903395708403855242398754193012210730235436408264766814226772555467906067053113311022100115738970665053137943097428177575341431245676497293165167279970517928029949227456746011645324200534329332971614618758361586619262813149352712339882154044550894792911317152550916872809029024276775319973281065567146701612653050267836498255873597938610354232126665959307882666987084534169035208583195372881381316977654373430115773441520365389029792682677076215191407683422411069444066004000571375785847951568260700717390336884381959385995587030210291411075164716563015260470364327293990982214789616111597203990389075901330707656211647780077528880045505915447669047167633774607958775636628180184012121342467678532897014665582831124902960987729930806616911577394041887959329806859405071403753867430035514062978117428216297940800402219456976971057323339346215915296395869686082230930739214775853987303860578928504899930485542856543974262269065102640543806077689711604672903841860142219756589285877548292373127193015463369659583569171922764514032272606325138455268708019148300393304618569393208237924997674809391051034463830116035535144881254887031707164904973064104708535435950182135377806787226893289680639812426580296274011192811424598697142225491771604174114191365116844481716648981095081787859376440008193888052184672027124991306392817334200136348666831204728799095834780097978360542689205644543948773230719214538397816128321363554013536994614463398959489509250726657741162937618043043399637064640707545969427027176485983403804394053848437032896201747496515075079361889578729637456813521568814153618734547106027749091497643367358087635366456830322388423205050458131050261113105407241169012317745199487486284545177097542810009551707866825308650918972866895656163999357758967078689721537307708354460107957469856768688766651369862097555552619273480731512837791383152065041216226114561843958669189438450493518329350887798414352546206610289101200043581259336701935960058822977240668965498781760287792856730700716503473660044995606602961071268493998133180328285880249714602747648982835203886999623196287124754559582494132295751740543533315499267249966781567524375237688946441429499800727960056448537604165059165949920754924526604665012696942363491678977806171288649371129601683058221810143336994004873485029023636400223002580319933951832137025508036379723906748710340803699922137310533674136666423507337193409470561732288249627360763466848727824495667878425304671330693981587158734487932751159093913725885395714324752133265412603484349439643640230527755484413097653478680901545598220103129984462181492190927568231972283628333718303239688871800871913479088206489660596131852259130247051541741531964191648648012787209062172713577755837182464804768921476019196253341877175215855428119941141446108448569872624066159828472491891800302953519914830372950942099922557748195799226884723564458679671092907580502654831663455625376545291445237584192758262969400652563504988055105918675252596476439126006249314951627150689283445124016368680663758171635431393813745767153646234058049610091553704236783086198402127244877426785565187585257345815524017839906975091076384894628304965470666195151937453515848375433252083236031863956897823418026194794187055973796773350005072037205977808282597701400248226842895901248194852527188156490223268625770027349387026839307056760384153002657824111469569468021095909244046281177890595431083610717133242571112458202302410537469097547309195595021771374494473101612821909566381567243778919653244303825397369943919294101831281739302515097428149439929507678757205441998200938207225900605218366066162562402908398142006470944504495095959271219620930175703096269019836217526911606072719242471661420466581691944646719101424480181638336704607073090986939403938734847645888319987420425312862273288571149224852240359134082857920565876824902781635414975525574197748246696518127560918042793730164159333300191388008280674132520962667667690414157732923430591284985717493503679256673347541971148009148749894024018446933784816135054647685491701273424004394071985468795149314865820450989767744587157052811008448098187727657817039694360072789666962278597814018148206893168110591954414689642345639042847193449406666661597756434830953214373728234232853668236241605800210564370815460792231093848368784305087709375366921105596321097472795997187433507464752765914975547848233556163157007744457004953348240829118040345256884550171629889869204836354980640032414495264179515370425334991142708014720862375386504855384276065097381463982132461193125060932952873564864785106464353462282626989419446157462125478584800673027559493469915931291311921666795353717956461550401607637254202557205178561420017585261053384692045267063770304630495296201890024223315960169999405349450795103408006423375428868272630554570439489626736338053332063589188036322355935402865176257041019570211517475678776660029237885288391346265829801235357287421484068926165372814621146164237883472393793198352291827469840958703326974324868695044826774770141312057861043946172901858833970219765671116375402069841851404540034932579457358813071982438725457532610851600337668266583180275925959801187115315028297944394954302016516656401508562668200166797585097493814463523351486393936346149289516286491035408527439028069075735084349064351370180652868953381131178582970757163274585104091215348598197995676281514914094233851050237729874679842206552328161604213649146918256991968681201164093477124967067554874194462747678725778126828562615752580305427052204685419278823604818411317940763792737820212567009565179363455272763707474934829882200451230779803273337825537085711546956285498517716585678783312301526744990970226134467949133564864319511527374061342147890015990903208460084601975781065468737402951054631223024197808140674364065686608668337680013873275742263070410351763597965239660619831096054447284122335908409403169064398978654717001457451569952507455621642247506965175038470044188892436899752235744523123218079787524757216583272974551726941877117880285365310216923383189582519262068821559959791022610104576422696789889638271642028250306081493696519763342968525292853514701869625681835284985163654427504379837728689793606242024475254821350945046435540683897178140331306886491301042840460261288545752092849934584214661601057819105224489425236851115146585843047929433858390339833358827657529504120185930342919374319557183402371120395029539816433062428066949111339808974306477846875699197808155904926758275357606404123321874260908780037961492226576556935474960164435208870446765681396846245469975915409244626064201652690335001177042830319776647972435611842577646535036407472799433385976532171329429508400802582725849047831449264789609742016777241330882775808531950677055379310787023217855438774101825449386657145487303444243907658859498350482304732369318235174253147250442182093201614463244650627126519717621926450862449612676661389635446315907500386774050903810803201990257957425968648401953637611104322755141328757844543565311679004454754413399584340794640076767526878890535660781262620328858482910936660787246165494298135330588514966392218331283046573399868788117384137375143053978005440216457470464541995599014221547432654523753832040875713022130698086042167192409660673376913423799650747438952339557764012312553019191989204249135069564892284350858370216705082075059011547034805946541252755488296452987176263417306088145125947779173515233897806873172928803766328266674255488356291993973337814270952888254862271122007561955656849457573006571704013690067768017217032863357017946667993900134669933433180620269482957851309470288830247794735830996799879563747482206728622790763133513259994836733199130069404281609419030691769834287812162614481634492939530521449174697241982289166526913218954444595898725144523298145982651448428558490103259746670577482301233645468869960275861188819421642690277148000245945537432310146561134222606031811129896363331344115127695572258517919455986564529202943808893891545256068046136900417292721219502738992622550276451935037649234756719409735078165236002504117878621261968091403846864196789470346896421796676645263286266439248990286067024018415306150016785969927485710737972209462166804377973326118240172199424416406026983000243436922265566419487604945465728106513208198378201645112465897207592983313144103124313327600508572976586779745852178016737926427045966915495077115039749140463550691202528022183129801933970960182469580888702974562559553559933789235187785800615317700904454695297188341595258058116694129745992737837741489727938249631593071879366257276326312906532827378163379455252646586693966750126595211833659399511425914021017206450979547076441124543669990769644167807738241535272039975935322911327996625865478822389205491653848711216640411463389439746308884550962804791360784164366252500801615783959178513579522779678758382522892052480402965974475128505649774397954424575468989095105440055750917021295805014405827688399495227570273986335968882482093704152963575364613110026471174942822530367866608664575607819469928813620647599111591138006265725780345059585791336216962021792697508871722058929774162956075616709468362626244315789679820084315931050642278014380408614849267194596830159734394484713074281681568362042902342096598861374991640263688369978015554387359429152962941176947631726083046797860273622459671462871324626267181206005015759700772448028887574693597681916248205096699568696087900355723664764479116261626697305544494709476018132317030763472529540196241281407817120042063237781331510450132257480004372330592629732036616071336936240653337202555850580302725096750707842171006053299364803196661668016630826598857684275023336842367002194572047320555705771393647850848505678611509301389704249825304413396063315819726691994610322130853201415225684296726763207234105508040812056976977339040079521702103725808229989094465688918295138443806505524019266664247369441150774788843178735778345147523175357941130405250908994663152578549867980831400087849703496830910432727183765757231040770198647094038221424371684147930073220634023339159440112290241798399294948701165799468965548537310639490238785041121776508390428420540227067892659315403607142998036790943983923513512806034300740043066598444327522140872354091515417845100369801725725875612647188594189521020034409747318803170803805495995778400539329393815323651282802395948322288185434220106692261645644717855107509849879770765273490317342848068658620416009375068616296172985228888752368443786665949393870242797421186888625590171337963505988509943574468536533203289236754522430484840410882428845163817734395134477615489994656780828786461356880671286986840350647416846566820631504142936629342411823359994844381178315837480221717795512316577301868216683782774840341194247910956947699354300103244377804291586145728414431992129865174187582036894144774510522560781317372778815664478218445366450916448075115953551294077163000927820592663050059795857329004710450057501878583532236537768691878528616230863017529400542472891652609120278513111342978315847558584137358056345421535969655317830875185601071116075695622369236388504500849939595501150671676405469405829479217322663289303941029431888792080124553861655265832159026195315168195094837237835228660267745411418289659462050527616369304961403785176473863272043542899997108397996658338893700797355342543652092581085047549417581687615598963368497840257896513108077572452110878010033586921365683431846092625731611171783416976871618790964983342219609794427545054096538554295169638898472393825295487376175401871960239231110767858547975302354912646950568531623429384515803247396917021965832186675267943481801152107236417630813290106221628385159189506100283962184339074521378832504361677727034128396379051982636043653178290477168829641317067936216259984796554069845417121530081298222227882115861286171311879923407337218928548997964954335990409918543533392437754122115058064611198293864613170459899161995983427386674672906320150753227771708165473408049867940716155634299187380490635661283039938708675489464001012465913823928364851767873184405345799271949508456640494417896089416960195882717972391719284491111892656306107569615841616738802485129767918443036715489844354677763614783494945578043869681843423462647934113571778254497303443390284936376179687658196419231482237120399638187208672918255211457282953339221278851451994125165030251399311255753750287495382774937541477752266862007312729603224360593181580711261256554467210603306507501542845148317407540998392096474898108209218158566480343492221886887801721085054826998662258359802366782074749559948122289347361499472958373127172474294547697057436936372105796543684980252379795905174532764904559676927039135172103223399466867279968626616476041290256216703471210431398801972987586579237365806678679109775609175827516153089670619143460626779508727501041609278672932522273463394996313046844236754223223442220984578205356386472212911786628354924538347000845330522311481614379118732235536269988118407223042321685953626270592417331017744066712671527193650839983905106433582689635549803678715261588779229830099305200951795767584097680428079426549802845957302577286073835440517142162546777679815281671644235403333175606318497832588983355616024357465091033994670442960755025094332573360180226416474523636383289732544265105737358476353987708668412883984451017543082096368260577219660012370602831105993245337312418147319662010297200267921796893284818840125895665823796105603414153889212001907872334090917404675935246303837070142250617842114635827700245951719529117887156229207860963036876229988815017146178252545591606313865821996004854286777383219408248561310094236031706869944079990674541746030969227643110948713745207387362731770303075679249175994997527336840990907635123245920380643671115593990056766414679644825681344692897973653429178941280259021906459576810709669876130765574204086728745518849067385507887473837771306378710369929298068075809770939891392393898510699582536779644344817823883286039490045425209261901163448963159710151865282714517793618768200622548705663672801234257740623172670275242232949970103402538952942834345647931269931635027340694062012888951799544792385255088939947706482722531699196922598193139013403427330727737595542598975997681497275405269479730967932212726570437060555542755251031507862839742485770015907530431462647245125364767724925687026908970237541655697880958317823537076932912298078588921747026136802748426735097009422774946907070590076610660534427722449959430656909898684049520028943595162686608755727958092849727829000495245288724394582380694646379097663089389794441387815589500585465820247875247015337978508477533803675497246368357279277950505666039882007456578621378958943433832996653074011490646105396255302762957099058088000512054831901873639358419212636438062369736473274811764434644597863711721884989353014104318518802069525295697876628913500925885160682507967957167850455124316788665810299210304582576556090487887978086227438942194886986149904717304743249984410890680187309843456873140787607499789287522869579541589810820242941045677538104481212927695609936648643781555607226616502130119843288434866377497721000363459503068947712395004307291628988251572551560791045089893761660184726382671942364738418673113962001314468616167611155390048645897869217340080532368199525373830467617153622326912641210006377305083099307521462333073887309686883991407437115768201898458648186124187632229467095799880031074431428359983199262824259921275843218413603818479281591776358827972961265107093579245599339336327405873973539102114785228326142334084434718186515296296868636356099356107646831129805322261798826573291836112435200387433275803701066632113335024472366840983870824454070371296185490479426632761025679890070204190145021287729122838062080700696561742371971613709469602032613227412153470930221596824084224880207778258882356768672361921563511115982286264026236473874571055349770778386024373170906239322104592165539586315657282010117693500061820464345722058241676598306536241791360531320230292832044176969346356405850714779651287976780414323757714990573153707610270583140776242265193934153036923803505828507690124873637524551681134887808768995045582700285306335628508395541693027273238800455049868668701935563781835754947669362977067539519586399148845982803633917964910650384639932210006324420971224638987802253533254061302737105802994156694846854401665716378658106850585579595824563766541986035760228121204832674246727555563641453298251005368709510111631346029224170300986372576777914381353740557737527537911875272181023043000428571048709515698861841107897869047000958201666992643864824571381712337596060565786422596438999211055389016758457912954997223047258661184921822679436761948929387209354907929691178472290015932503861070162362158283455383928083351881246091330309866490936811866641352499953523017085073368979587377848077095264132054787334333590648200022902515586372300275680242831244527578714859304793279356868931240908664354508381667505573181845663873620719253160649946819760245943887898508006114207292079644868521075324056222972977100223768304062691687530647614624822998297730744169964790927986094670825185132209928110662595437967521594449365877120786093502471739670827317110497918609627368074973364807935311065486339450375965593515843827067608722816469369312691855293780499881833537331734155627676868810256474538210859356584627647230216576136731658807825061361804230138151940837633112237164981202095877391668328609661777457588546287482211203809633574292850176869527039264482597877352507865007799234522328060034154700437754438718581607808097688039986554058493265009701493181629300833008992840198066940487649554706583215916825286821477796364293138704070916330174558887476228711776018874285746764606504053757858761894288072245535899425732321250121156648403580755526031258974569207694957546385864707286592621121109153688483429904688002971922091926779513187905478274348616437423916727533357106768568246813840980816602110186916992373065586234691788839290840259199464808929469319145188380709363493049210350452428553478318915061187160282975121127058258132150432159809204124434433118180477999007980468359263882604785923490609797879252520047152397762271732370846042921977556356913360744624785689228771371838838890468424874344894790630377712480317892140106851773587772889146096387160903980866360731683205530463366287450736054523804033866212641879021199112158556729920023068664827344151969771422888638177065415531016149035726197229836299601246151738574539873146395159577522696082993308905412476233744641614643986800324588158572185654318241713152255433838199726441088248052804405484005078531846636266824041914210310524285199199866807546518185811647875235025244260150203240815963390958713241387435263823353123073744324235064761428369360016153621027215984898328622197832535824992704485945626935044266080216320549244190791959592713201590808927028394515077552885960778206653851512329422413262404375580836523222873527606918356385591672486802008710390967754252444895873320718664667301888085070040639395718348314169019172319336323830547998692894035834908854914067513195943481001144231202565524583825631641914919853960027319896880553495894660943243803477182592754754017843447936178083826218533290462098919702559183187757885272174734441649890007434871028656766011557789360587671399462006798398268731020924317904419155854715984022874801565308372263063516144446583986907829096449395589329947895927176450133452779307300093001711830174162206740066831515378438052370168515969678071474204985907153536816567586359491128549082745713913365683777263250546726401681252932782248001527976681434898709281021512675995348278448586946689951130933529988248649898738884101884686511548974192000958979862575427841870141126528161006672573091162705912755884181255602826142357994866037563914788402950347592005981793951974921864563828069565627168099614349491682930183945638017887887965382837160627941275476646193859883268395502193000448644490605785498981892097072924369994919268119825245149619206060196929727701337121081222350963864409815765754499342564582003798611797430158928572539158011393652211506544553015113436398688705201786697477405316495733696605669961446069351714964312698415729055203797288253539316826500649165300179371086235407482382188415905809881365085338775291084932198872648155715372637869999392678551478530739237528480723035578341861884511841604460537976460738625964632067490604669848711958215493415460120658083168831412528587631818357818377847013542357340020366692056801618099355620745075786108713946185726037351406254398420882968047746588246294400570119195827218651446051305616416999239417644653535329639230606594322648078067489664536843045285325401373487700645301757303591285158951890693820416709681783568401324924015844113045383179544491398311364014650932048376875659315577663384253260359453729636357119741117894008228054742144276561330553661425767808502151183459439929416905089937867640565829064898883424930316951215976110258931156560265542485274219798389404791041711174189569476747724836760320419459962141569794531350904688776927536451820625784978763725435337714025385633771699004391762353316184764070181318377705000200885399931668003131954926185057032924846453912249758137944801026446260729479680981220012614284059650451295560712850471378564284749946137999763114381012843739774551540552449453158943834174941450487406234709918826787765191516520645668334782761819581577847962816412093322676612511952313729215711712744282478128747968332249132889164686511357974016742117592851183203842628686306017693006609123264334440742378103718734188988354915328892590831227371680711738013862315965824611217648956833232221275535350840804044525363766601842701721838439866458083135399439962818408663082315800252532153691452483118166338758482840936164138151906664073092330515993333704995569051466485164713700953676143441908892839241382993755972039565957654602475026310167863391663886336141847790109707518242180179493682008205318437050378421880769597837289822904913617966469179465342321655027659293346658562604090258198474514474544414642185751998689673554229018163892378440768716630262832507857773418497911342681022593406816458497150488828564152293211904332859536535268662416263607250457984853820951918947672528388341391913528828960500495254260119216296874877773555848570539887669274606664317328019467863712829441603294704488533734492118554329905880975568559573285972904940170308979211323971964937649943250173823072420631490476245755079608733442955527727296573273089794433835797526183685781245919955500935666747306567969648127687698226487686525083719439621584174285179708482507281974830616397994102605538114531584515389190465656669760489855761963419948214708041445441404126578754960672048552217511582540402362196036683022022257310774380912318612157607288939502619664503510732639571648893230748006164822009214279492359620035947864519030445224942684552754366242651323407855882741586815829228435929943569685037153462105561653213377430577441039445999854385757142919828421185106409663104392963956663422780720470686606965475841021596111563175949813395043830074570394829100112356366835232622803699019286355326346854270906719854550420607157922844350259892416003579972360881736532974821348222894236992170601784138184055553284281428587173060870045638552235967957731993240027880547613716263087786165822653926665877261483006867377004713125366914738408119619323764491867049041892353508901450922621314236210996477182749778507312289085586359177122844249005168505622076897444104905493633622457343645490668724079293630999230369921676993892774712648883760086860945617159664758189840352376115789384909262958076499892843055044486175409826914072652417803192101369733639210232637498162023814708312343152719913023955935203990763382980375908794727691633174392815861545852973058237247001973456676300572356564134281602915416909253469969707702988047170873675302938233292079276303239161485495302053274380793924661901437550852585341816488859379863734183586053460337438387175795771553848383529298341098798235347569975447411892711901037992290913803194907633739826222955736441514918783294402161772702815090658688579285060501740019748604561699416791844927064170179158841487828571536119412557770623560704234053420273037084347972200181230505292369161375758660338058927590626796639901593325511564604358825861044356631352340207826977302143218160614381060993631420314458374860261153558153688553576590893247407846232843553930447027024229234872339882708426253224201639816612262479258096556820227704899837982793820077835563465376544260822570643580699279936068027417943789769766691419434713773927246606884254968471252913316189890508818663144054740980798397003546938115284661579215479690268538273164873114308715157983243510328814129372831954818123832890989913131630356841124148017823486264785364140800991322028495487420082871813412142377517562660173537960542138287152278064667062714535672384079619454334249716005750150982630606786914468665474337933429250374327601473610902810083574648185775916676503117987552365250350213827314500013421810890299217500822865695469211343568595593816160962116021275646212354977711506161192487312259199314515207148058657068071913273735804038424548269881911243701028014162835301061750299094990230280815526934938169601157148306828762233208840902067666826904811485802998177465860848126427809772132768536748306652871211952008764010755807041483092854294047082727413362804235942317396814399685403156657398294620147031363626569159996753577283113592595117912857562235798300893555066935986486060785857938325294631592351784332188599974981186332820181385273565073353955751318290255227107400244436154323577624497737228347406846398654448711465824723874078264136616683650075128342535296546555675200185830617242533572481042260603460559727750542271996384775913248853701392698528837175465102363698137365645838343936781748923939107019934655966213469135095413613382901747261362179500270829062182123777992782679703221772494403369740645921475502658700202409304491233794857638681560309974267382468118540356684244357655635445693002809719024158830645421298807464580512842853597265555864533783134330364963033310698679516889895047999664997881869248833658980896214350222675649964647787817341142134037054709882605582413338574460071372098312199145154760722265789659918862574311179446217068359246470371080806097959522595165134101021953824361183806958275572532472583634587858178411289743725821633713748421858997711980170315208909844681888612120395451640044820056892917201849588829536327177237171507223655353040129238218349367452002345343552033339068558940456711909271665932441161356115017056413294325099168982633103179336888096801365076092801445932130649461659912095809834905659154978435303320620508368233804938685829315295284623376664540202710162440604748762424163076351364391360161333693084319375491472923964662727367832876121481152644768699273482429276595883649943031193346489421401282448962796025295268689021671542604832784123370666647923352262844592857666536028929332004572323573217098386802321216043641073784784461728234169651682070232088620049645086451984578116144503087056447142814257000664636778658867509313945310182957932967233690216091309173061489112704904336080886736545848909001248335003918064656708201400723275419415831682117970587524619132308773428673791241083943655939606502549799300465537035534629201830934399622126597026898035714238962937977428555084171253209323176792445598413587048846486330221632847877688306895883080700511820388829051679061248177567905801221814735156903477621304636611338150036273624256546824169825391035855088346049241282919608713215536276700398877750901307372704270211224127304460939285993777182451745237504140277285509609815609839033573457431847783171677508383853931990603806232355768418020889441779866921975198254390296914836131992477624928419835273796341738519314856393105517755581238333102234208269858339220495692578414669421190983373938327077223141890754066984270560356176136454104990325897043182887988459490748671611670140393101024066164518740535382100795424099503897494792292975941932723439949993724049958232344968695866759572292220018118167751502315863711774762323897952964522152403206749843137736135115423613275719490831887211720341592400449653004924676846069356643778528765659615339269934672201489026662695524373502944461391327507036051903426232724356586306385439091171256431493895239381603703152432026668512253153226061381709372323528476162121096487774180551442959347211611980853983838999770998378266363941648066343942095723024724166046529954387070173433152803784105886325465661040320039624405879082526914151688997711944949736840717483324696131606809409995541479137263856207227093451642309103260360666702375472192662623383397365272499291729612242692750975990622774216240407126244899755412568819528335362576906469321462130695667395508425177699022683449599114829155587229868614567129959098011254945354162597184130599310829938037580244016933944555522958065976178918917984354520875534921152014153647637591976147431547032779839784948328598240296641235914286130165931192027171251705011350400263630795115309620578035342261111323504647982922858514005425293446758601590704232057725303010607580845952959029880761349217482154897469754448200913708317141632289842530837429390591851259876421578224432004797071799322181984908300023155950758583462990237071299146227283695313232817539222884680513865478580517515144587758735662870549509487795129556633841892150578906134699909618836818629813281163920463028250222400252865974936386741149133677993382510173588213842421945443191829846086123357357159339657458866234006224235010873712840356810925674452263288798260548613744352251018957800812455850429953085389461907565595369773248471929316229688583734239843975821911880605283521289144531966480943982042605333922542639623096035688224034550683948358119488671881782830392523379788138625370788955986595790803222498933513246560106186612326005650216959414607268910656592172520733111462479401290973174561077862556698890038393962452761135749823737975219019844992086121862366525053663271271428572240442247102213932242907980302145366714233057992805042912204697084435926744881027300491408727368292395995464484269710596690773708620652627922483091051155117008689660788893924446964944287656439606655259818096272852461303685565074439852130288375902544382003114582961668406984627391811510756660072752745953292002429614970095954631568885746789557692611051361278787255281316049128991759662284962746264348077730538346586846771508395397507859439919649097854710890229424761281659132822949765601316092717578142794997940077927672277337238318000233017709478602077758726847868686675399918326838669875415206361861449008749801419485898940849861491986793671533038551693301768120971288932214968875694427544391506328881459832501075408801750277451109839898884485039253031391572371905111670015983260061568196505458029662517471751374667657078694431147179818790170949669674375651580797492144991368935597418663354434434662772641737106815057729888854761340475976531787874420433682713331080725001968711657278244397379630078344397332921892156487239572867205328984794927441035829427327692657854109608267917171567250701018910754241113403219272857547525110808738304557788769404654012837429700347000209356587080860155360868170233999535556891755413699578133226981235470237144865065860885994128542248546103460756504638418404473835026107463357482422004818486307110391210930099473855478974599821441352440146018153365272597763049365350330120401063577044333112612046292984355902432648932597395091095751978259989634602415988686201767695486166511833056938779570687654991231041988909132386874249141362899587491896763531869678652155695045318094247086849712021415066905367868564413946354658238548425169896539909683301379625067248698822153462070719210473044344207401737676902368435129041879878667514148442039932399884448505234296326625092594233605321146757214856396789895682313555152221039870123161382106378405368405643024282599308625807195953684822447557041509644904190366046455259756956976385575345391439670806739522630232317065148805291357030867008560489518225146455357181869827128106921231532672484737354244559706077815289341865042322590111283126772313743365291053521601827015056799734633528093284780757482865313112718256689266996976847347300594096706143645876214414863072883833501198693144683763896102693755678537431910113319120021678597353821704336581710767628147278490923551562602111397810073102059548009793912827708004138105391900246575655559320361362204773786604360883130994094104513367630540839801039331217736542233563476667553649229787734287287883038737717566993031985433164452522746000352755117338914165227680772075514175087874243412728830641198854229784584050278127675377126199997861839598633543286972686747016639253320232257550252434032027025119046693733471849773650485004697029667495516897928207615715408650102860770614933135335313472409064071297246794560132500998170666231269814330265744485888021258049692599458727954520087214806863745974601843765775681017681743739731004930925329092356117650365177471748305882712151895597663220905639525768758873982927979682080896300480548690674941657740745968157956958232795138660291283512434885422482724272629278659629172673757862250524866990473556568312537688878137408816800745360641396441370883190928013474880660973717071082138737843122886517521203342774369287778346214927791509805337125094510176956036334566039619564819623193686543655144434011625432902667286071346356268146500396766617157222606792828712993979483726856459568954780327928301659164002155795343889421235655604560181990420926264231312561722108831969925715614215090715191299389334934352995036742554939834091385528886327958560657287524906319673321584119327795308667091935251632550578635952445754968785685617422289800313259182808775153480510139154051865976318410748839449337096339473331164514955888591035717577603717983580239074011233499623222396469059878676290077496755197837562978753345589902441701661427419641616420550063226259739036592157958075478555743587431765684171032796675769148703739482583098085644888139482723174669446301216763732241824133462108180225365697419932840580145256377440014025110977338213384676088008830287037557273426288262960328569828513834714225710052807275606425571449548700814081786320506143559834739422400659342369148312513841244561785662203476358964479456096976056550112833307975050103595275531369872394058838068672217714723269761496382285920177119461442116440034779709764211207928914152078435277292731484182362818637200870705337203070479424215893792942881318011835572284965017256204361865467434463535345952548806459806746342387698231221672806116849107383739930166046886592586520869866775518766274675389330559743001691850314060435128993806823135153158887521008657758802843043922993483059742366326117535535080310565055477687584724420735693088311085310805988979666288162356812787858931334935397235018605254827526919826728091630920697820906821415180562451499921222785809544996655497742129463688900916018184322184657499144990900104075308490551065258273821582587624975132305540593824772780199374475028916365890300280328669220569065403932304863630735926498142459191278226509504665809976777815437849468202229323287511959553192551423262014611754079802908798331281265743405171211797871739467461837817299891440786085503588170188430352988834332700447544735374928656157114681541700595617183243509984561130349757626359855649916807511777496379362055287071284772536539777299627487191580781376926354794869618445449550916561210895084865968714939987472856648210741492380710628982066261588940039690734578671742512405886623400268651839549985456864209374723975480595341226461100400435368393328349210701836437982628230128108111862125746053156553169315045541015934565768807566918585981938971106246744765592035142927540450382211963255629440045450050276652638152491358106344298683721451369099766400666581015193944613402577837215972135714968784215037166096401956983831696380169771696219574711438304721126556077842862353279381797587498011351735411934393673873175141340958908233613291348160921965994983248402338652785105269124625965464045396252297099452203927925652823860780804445370839771779916138929873699842946967505073914623086118434426567392961640354858095684318490230874109651968911893325097238500815384082621594070959069592065462395618838014884711695070981387426732261796040865634322005752759457549384741992839365445774572948346277700095085518609580921506714314416857037867419423395647602163658055213828071418426263524721381941814352506235388354665000249698923793354290133404094887469795191389529069061361774589672397100087764225425960828104390429234901172533000216339406691943974294638797372349926588380888291646846871388037436512841830771465613995282768375574924344551440000258407615013230620586278823961573898117871905830886465111442030124462353769391544878369332902222932799078620976521082369882452675498344746956606781804060958986507345591018475872413178066899249202299249117197195763971631778006399166457132031951097888842323225747481576877376405625775632284492128457186949998663108335944387123856808383536782227496666016780058943066660314958684736752320060425750166935594646637199782361532007606784296520242630345805257641599412717796237453459187369452583589912257790804158602774786889261382849118035174543890503906106748988840845676414862594120448002040839648743462990622912027339481827710673044703081211890056793852116886492751815576062047225756589923275298222286772160528507858107003934948280866080290580158680201543214527210609983525004703046106412133298221178487917162799898991674088698834191867601516338361542395968961538837013399067244783248215778270672916190569640383928047329058461120387161319293141600761562782293934204831406511457751032106813648396634023226103398597318969693412189658950992244791680762318456912857621015331090076436574858544054270094404797013198533782599017200929056283569591932964581757683962345794626502960538064297539869758181212667544495085147441956086696175376101779255880547616515924858874105991921522165073226663276289376463935139805664672239829472050563100856693568851279566638477963622054579518505173048683008413416280375992229254449622167657844501710742059469633498295183908048632505974454248881694031859061910451342720547606574814491658991804769399955003385892122087924051394172159047525304926845250387027635619336777503441506570933163485064567718576389907930951200514920918746738133382691943470850181572305607371840255954618962020522971798577046153761011582566647908924866279590032597704663843831087692778670543550998194289907375815389526700002691397893356140594551588241466498845636841123701785733968406708857887510831309018940290175167609631709452205275349459370710213439343225650534718942301816957959246515985751970089433689033884107987003039795728210816893549847327156084282043198951856542168836392049664115254038807920201939017862531655228409641824631129847634165801359547117671892350550014392555932437038250455570046915841174541324983790127501040775989186542263840549695442363156938804020190756515079621897584868918193323847151825905965679969072107709579890076958186587562947394995021825699484403213728929091198919605745248490076791428895771877262035769658175809088919890307898396612784586587772249926828480677252271048442434568027108711304536037647637224518784322776076275130561245760782559581460779373063396483829914239135622215640004742137325496432784535512590677480895740066004630924100395478403811968952716861429470545460792387844930492239858672906730672359389030624799939384088774870088106398530928376638843069036489993759603667277640371539313037585950675160294052892995633323695144796252394293139098727068232892136574069605180751133744864639382734162420775674218014195237516495573413734846352993876848796822210522952869392044185571992057637264090546531526362362180648952338049651215272511703915125813664603290667271093662926703221846368865102682977367834414546847423005775679247709903078533979478009641109835208848955370539669201078376758553613578971196730584592863972094173491514993904395650628054646839676129379714345569813324166370305722094000367108714053973040739536867549837570107782907640239944972142921696461625540515600722262872971549275117861484682159449358912627329029540831826451601657499264555293909796906138649543865399228916531381526719423239695756662968092113885789915611220449098477100840169658900648238134087396901558048524689877127689491713902853547214606902864835257483161175250358535099214084039242410030396086801383352606878002095346316860461122073482476126523613439923807118369895040629855117351986300292415071157195053361753137329847479742007997739509298993546288936023151809125563820495012156901056484318540812532771499107944661162317712168960425412519581034621932790232714443325139799758139685955733783388354917260971348822082213605041750931433156292067137990450921071986562075702279546381676762271293956248901714134514022986186198734789765622715573084640271521725604149376043664272108519354048392764911107646615902092102896481877527796519879448733657324012285817286426178860399574524765712011974052576859838184936902356572599224061004236130591871521941126195580946520066648634272690509539974860311948107106506368344555018481911594142902229322845492397391668635100185247791759226131335766069546550566310730166323347425648763835170511160554470442139422813993836564443803722928845387386884281269626141566542238268549771981435536163155546958327392585985104374359936492749199412631303888733260825983325779120859384257663005485982456865787875843114514398040711033417673470083314825376184921796638507560983467505348740464824694612045387671202034779536480918362030402017533255597403494888498894940251811654083167654035419864782884807548348788905168460473867229535868591936852127586011453407942750474148844333479105519360883929162737636382191836119664332387543402388640861169916203996564868506659921881499105430714691314003610497829944070562532449096930172763566924353419932655672574035758765261045164258221370353673232394150818815890545173867848898543173017193246105775816462850136090409396145589327293286892019323801278880852739127974822768211410509744503337732545744760915465893239252571070738093727882190150508400681554272830566806989304282811198209346206315421453546140982199559975154999928165233989674672201950244642060289691264295870435313880794273755606552898296515915871099898691876588952314364279548692394026847765811774551090596628248494452834189770504543437532282788534058956304931065456212575005519585274845069148689858709313269240721866056803900084849054057433038193948997702398133843260155506676882968792212795812817283454527152618634943960637816381346637941162531413831131166096473958934167754460940165049212920973149770116112019107084865179351558312377111782599324176843611372772312799541927825160231976034484409742065960757348257455100347610432588586837387871264964838663086070717830120587386775790367624147490117892771853797186972329072258616693405235977906089729990728194694295161621819900385486782478735771232580127712437031771130180631454912708557999821093361967916349030435849478943095925541200664182610473138380464194724318909335881299936741790354080304737538401810594526958735408084371273130955573357105165215801361995274762207474342672309876866496408847838964532991887403717678930558226504142637091843517377447650159694809357846724753655019512214858632235691378510495700284709991905661724989362147639425231097908755544914372578956767011911043900716255288324888514982552036735934232718882514295455613367621743458901887398511739100850338515695959527734507144890926796906414078911130342896748689858607247941954233028016630520584843838268948910307463264158353390374918448061879064709819319005698039727327218533451073709114329753614683417155259742125232775228873812128923408806986185850120321563068987829395607637467576468128622971208441311717779989331261003307822870750289442511696751196417673734667960802302966638112619179558644910337430862674901360381244257086957560436321124825527006200274699608908435272701080327100922394063953310660654497942703319207707196343236458175160338179665134728685186355146097161336142405055897692641080435592556168240275967818187965526960649340328143786281130115091504847752112097529537379179622934303211265390497141913769231113103366119440649503789159823327824195633824582304092491920473349429777545221509164165078240228954479511320896189046831670758318812363925141550821065927872170519596159275306289685668505667698762373759691860702050693995546791309111309040007114951834406327983360408760791100517989737436477467497121554085995233122090038088727354867767541775755507206291275600872461524323646682084811259564612641720098824722757109861199527844848107541947949078305403710687254714762252655690289817466175817667207472872108040953851221236464848067454423537089390959414441756632678358377222560294739398391671342227063231841787255681056544816725415645799927526782920400845548736998714063452033915188015171025712246344913031148349191210884756576994641026517205077895898768267012133454175927073383629322282758375866500884927239785322989647746548055975931525226862094982395818505823771898516130561113087235554865006581911397378553614354191190037202135298763180232374418032134453483850182604854365785514213794198770683643570014589158465605576088970504940379505348267983175978606492096057179887919059642980475603407431771611713284742816040151735499113144015358264084245146489539641834860732799202884654642092631393307008435279346591079325715291929644921560277251664223889744510910319416439116360281419272334650393565713058820312994004392971589375770874801121281491951417400100397911056724984868632468691338600272417520467359312515665960068954444617447349317704674700347153316914046914860424624537249632831415902624262429261496205379607867237689578106909872108895872811600824944687700223627906084853548290829293180441714695708793973563127373856594025861390610985140599826275242474107501941996575884345661551483611363700646971874742756884499550348338963595683653176014335719743148142496821529367275245301699511247024138483698650987463868038673299332228488718099575982881675182414137597170306353582362976629049179173925263771112939315435014502988641897987620900939018292636786729527404389014205816770600537277546529147335181216269655290664804503601306167992706145229882186732550240465733390071058799620381792567201868669701211751901099326790891185222796159736416710001473338174919446255517106776182948517999328269362331836013017436663241937892826228245393948412186702907743254166181506834558823811508586980149171757776628321608540139471026299165209981852749770894282134078941490620313484319266388753451969616447018370045605731279832917970782053165233950997121469186582892750401266480103424552508751951469479626005997994509265408438898534369897839642982778913733546603307784149952120248659979020665936740835401370780122605102530145969677590845807747933276509045026470474971809720112655657516098376175661652604505166536670526204971921794973549081767268977645840308218523459122255025891800996277001535287369467144547753851862855012755924326025401629107527235641984638300105869170091735520042609179278187401934145702164686711137142035135999418524816433717759890049291756096612665317785704109907316613618737062700917172687924110389598261894664113449509853248988774285348438011102412451790726124981161052061847545970494406112035706577850966529408526690383704044380667366175221942614019035130175673248272934759148594731304790033785403908784449041716764607430429851287092309354201168104620465770897915122552947983290662287124221951525551470660316514307893019575184538013536325084087070809673885290573016004514570333905795069886895781899744894128263170634996885294711165313756395374604430397104367927906450070622923981920244134456366662694765572668587346577481804977605074326366782231702100050696059119918695414851871139084476831382225439911578376516983788894929464649997065665286094373369184550011430941446859120834250578227037396897959396757929552684414718466618929374961653128848693475385518021108906053519004635518101204196686815976683079766463670354120776568717680558191651846960576733035668117209512995691152875082312418332794023487842886909406285383466314854494937942306024140421422869964348754345741514297896097668632497358245718851324506405846822642515994646959118865761796259052742072232322028946728307175019710904651430581466394115524285354691254523915318900011969476890646946425046451207173171962998764638597814170028953522747364934161408887450547482250309520515307323799865784711373796758447834168676235029558201733531577358398720749327051637385763844396624685196565744826957140447402742327205752059149968584366321424937065396767379677225989623722031915199812738876405677859623745831328311604553267809353604311385744163844447862106142915866725832317051245527831588163457187579974420689795075908671904052121336314603036343303309797320775734130688269086071586854529418460384964115149828401629089400369955237572404217278164737398191628844862011314329315124679561248985735480097657266424963789324174070798986033701351608117082289998799619773543743556541714514557017158643717254021132845007888942371372190779964385193145931923110047042582684549652306335810012415447528513558082172960626452876224836609892236036918864306316837466089475697964726630462910030355503095289741005087930635752003190866978117398850627882646329701145183104304191764833955579660855095136751044606175594222718989939466041224540366477097895903045874482701861716498289353971829343144417228164831825905332039104061057564519978930082576344181669451707514458377216362934293991971223429666003574065688611576002812211280752412501881030141736759613498791011917668908471192743214392848375421183583100830997508155020690073494062806645574072466419161124210516696212642609090261040229031863682899246306969430906242035946077800202628852830102619771659355536949463515030362514623117231885293868140232427900589829074070522263637952472826940269413356139599805108792133120249519306936656918697520680709556789408084314953854963411064007132528279783415364794325761010950050078048881580548079809647227693667927842359994014125671590824806172230559942312823146906232983053572041724246779155552776773032413960849485835822995024654892976492972308938536055550374431459767190007542563704031551285145773271584204888720017399876923161374451445042997873909936272039756471439038057412320332822670135705863377515007100978907589252475407100359457770421266080418361705839545488475847476196130212159823173096616612135995909417995364280847583056666839544421016268145131356218994407030339542405382694494977779889111410766211874900060711676752069798950652499526435607420653090421908864356105995974326581003121109386088218162728205974474669901719405455047235294506342964531485317313827535702152459186373860808284744606919400985692284790101113735194661903727046243567990757519717557505689776248945214235734209909908356204574607612291303802931681193025764222781855119658622978855258512920688221019050521798617319600842904751649770079352989661978587142220675212573235198759114890673268784340627604909326815314619085193731794345565529486976524582877070852723425951817061766048448027338243567930825521577568763430268568470782280615104930217094558057479084518982177323725838323091120016747515328192551384124567283268279299249568057745733953468056173783099490256611785667940096123709895376882206658783823700068069384741585619498302298892385778533112760411869970246985145440957657460521612585092309063421520033326064273739629202184620994275150618799029107581487741232328634211909087481407597782130017075474224341655755471662713531993370000763423470014408517154515299450411076909597057271365714267327142682563540604939903912621221089862570717337399394714025805040775064329684992527707409987325494165975445557356792618471973809156318058220307538703488401724513749098660898430572494566502974005617620641801876548054923357550681566488403316208007271418744331116884227530157381078302487415259465088406782500859133087556180177648826861144564046179633867811848736015615812471722747559751828768749670095171980305394370225015923477573406462539990393611722381182854631854013263425322710027504007123598037851777345295109524684238410511863340457699379464723838710813457607536495336596916931370686392302052773151187834417214204359624231272269456276956655526070287770178827138215645562295477629588256287020542271981701607328457306300567128155289489118728984594688705742679516653479449926609289583471688398891254647574617838634211775813997825006470512792195697322282973997881796788212122178814977670292075574781279334667533677188730787636941968583182907860576066411343841170065389887596589425348455037301735739841972583255430650410714319528631743916978583951570231560141475420618395287391649657207962154695257648997718108844815346981742624810283169350401341738732304107966147229253682512564199765219754494222170558401604119505035491217200479279919799975851692053341815432167083369202782811774390162725292762924096911218909833532773224971958107763551831182502398454342291528156435344863166623373550685849137199732510756237730730645699959021139102727716025400220509147606788427211289857730834276332266689336898996852774030588678732612060500208833879455702801393751206565444587422324374112937074618464055084383105085510984852101762974790554222053436465708509838174640001437989043786731250570332956609182858888419876679268143376020782188228368365375138972779289129944022324622205678196141413996644202058860994854468934570007300036404432736256583578274099967390751551061464944755899495059366028827037600150784655681721062464234131301652150977477066126326110404350750410816919557236499974333792538917669592456476964047182348068670163392594215715726589707084750565589590454576805415623403235453418467097944448798084845734196293944907161006571313504966528853531776026777428065153498282145687651740998983049283228570322687411411215272223312543761510577817355856069370540638310740168902691354039102771461963137321456242222564899246898002066150952538104422460941569811039344409789500523965819670288345146974954369401331220209676969185806287972116298904261937638381646434430890841461039914805368194925700261279103633632583263100807949994031427552668215787853902663922023753466254733235017550847361827515105532358567177953322692067936960423854565272415592418517809659333540616680790485887884752750886526441549213527651873663780572572730486753914334829438564098819234241517282955977559577962844383943409572140864997369464289324421554857704161005018265612034035560513431793342838005045195910048530559341557330514770326872510764370747441336051496747603974477535238970814969941793968923028909432787452695471062339685988943372984406257957270754294404861951883442071160703364911941064395202727461416440495806021006311435171557852256524282303776748272654663283130008243888503873558187018629141107187840966447684584747604597144964021774476014344303231695258205395013005730868290101517031457817988505189114402066939709360110519690204976806464087089772842028930833885565443136482224756006887831240135465956462525844462902390216937010083859519252272855310959757095455691447558175051210055097661622347403968430233467095145087937796461953613025179038553526711888628801591669034311042106320789720942056937238750802268821951599193727578746780973389786887523634366220968028058611680016142270735115316354873614610703287503662642708583825722890437063919848946005974404651301023400590997977206086815036803030465960785666891434910974216386319895660365930536059529651787245922888818490112226731270594670706166474241444078272294792074675621624305778666715142394045190131764517137303515127149355323484977000395604645361631388375190566081520312133870017825259399162874244144041618335204666760367427976572894390284045214691054849285134607122456544995813067391359084889506782793753933198267610134569682446865348350759306562735336055607187623068684470283764201699504059189193190182649073992475734450157293007419770991078562389575374974078424125945213999008534493932202974481536925011321131869047913771870665398423604002111932431802713256856644370954326963700531999393410830968648003558077587606514249771651045708867668019780376502524494401654637181298934397253272797416210104332731587365881941077905000242262801034266472930952104451139900865891151618800331821579664685388279262659766821557263780289171460746327283575775553470854467704823821348382007352505940751046154656354075796840729996970245248772782203535716070797686012184072506022682220567746893663435513346157257174597342131105316255017689179926320875117034081756311682462981121213949840776635196243383900577177792570303001408275565056580257864538109672232627845006906766749139042907192577078731488190704152685973930020054642333607666662148037963016659948801638966552075932591252768265003371119610329766531788006315957973760594214406635155825094360423402215938379744617157105922633062049696039338375425215666356747279589291937237525723158548757593020796634557155533066494413805570808049474638709753794062950596013201483446310502954875987311913650833550571756109785459012382859412877624827296253548145471904371775742989054461892866899466994584147448197012626358615271022444257613829662951160504724047610331799030163776526296253037446283691998130810825851724585671910468050240819911440568868108290968797725686759130463199340385440040735452569941142668910544324336100177084869885018255866077373845848832582636993396402938794349088874138860207135460188535455497623433882266446301897628621684571801194489797104396020336612196305778591248382680018316223668263728661699448307778571986898222265676929327714621498268637106259943898223648994353065797361001856824057143383251180570065670126507908183822709910514622097436694646317455775346297600167065392055455578822352229470232438841040341243828440032276869471745313083538645537065754249168529791074672000296111968097354553142152913708262485034436736737718554969475044473818239321789531530420036958009171976633685239395378452987237155632265828498061947605165673301208199718300295052890210781082082671198189962858096568554924289087371723129132391569273858717471602993991852681803298921181491454982303097259785586593155830811328183974292795501096618605262161889232526727707691017465086977012339320204942274150940770595926212446381546301994968961202386812046836126266197769572008913749000943263632732586278618306169877782044393744030264304607638847469347290402464352672953660874797977504059933109373937862174648000747972443716351241267859363534836890992851428313428664109036591774714430088213117229140803955272299882818450988815988315057966050120036688457313104732702991530878223863703556948353997955218607783018703347829643258881891389186431580059648686783079504321593224460632900654161776158952493447516150035485734082292482585751416595133211125269362647748237905271614747322690773914692794686392828923840725080496706265361437465220020223050943269553743788778372836544127188362661317619801733942068583895491178371488200984365040522701505059138712012334167250076719062798042882385183871945834474377362609093459731018863648914057164359414996042681759218568964616208923762462934778601909740300060624255204768391274597090432095528975413798906736909117523571641045057347520873691010406928505390822693289336270364430589330147595333924202278428310877924104177471821795959085881524374635281757372855447114583888469961369201607459232078556960311992743998758784807486551554375665273056740017007670779933684505199179841872541597209040377027647677399248507632950542448008985008037813006317414022620188189902374986011847828836680979447151940303255407466160199529709553249808267890806596029038396604597006584100970904304241653481639278200551366176210148133241054114134249522600691820084542706929822361732139432228255879746599674430063526685624017901926482609028564028429321709774603304434409264050902847208687612278549067990673148017785057665869001363692022887698149205194847289908569983394935359113785045518263772903991616528674587690326458437417402494186104830215539079247539007769960154935839873898892205719403084677837210523875916035580071432152520265489627670021259263866056194726913584375012158865120529440568990017228290089679405463580314860097479412737782588250788128221945889794201848402937010731943409509176131042265205396285129296936654957216570984076119630119450491349746737922891326631990008044063685246119971014471969084394563928844358917835541000946573640381346754742581222618865290665183399089833579729718137025197622715843418474742547968221277624624003560429974020458860240787280260256246994654042076012657392187609916761887967311956898816026246438877403777758947432555075230240341461639280353179433858294845194338330221407975315073963132456750949716615056077009822775290634289221860618337888602183583553187390718686422643903052515578404072225670736415870509584705318148604237518390068982728951107670225274537201252553311449401423254653604336574365700842917441305363968724431307023054946068165370709454073763402639478664504867565791528093658591318711738151937774300104483401510025455293012025884109136529559677114909845765473528051159063482290890171363078553001601146588993971662881783931949941286776925757474453090142951424013460428744058615616673662540601131419408190457106659107631263248937537911940562771121100414966076698492429846389213588217504768522430445168150489803486483045671262209467492769537922794410617894107430385148755726862931695683821215483758912454802532672208927365069656727588479206006156907453991571481028208126405013765510167179439994322159643012199957275685811651203846138354036607908772061609567222459253181031391269217161713336606506740333614833580415805070384804462953853938168009732646301275191281740578910903857776005791130445186485770871611660716898163438014445101519743174803229541839338113330868739262233683152333846458245585705688912230033186195791807666841336244423656661486587538115320785440363097321399605090041988262868049780774585262776740735075121322007367155027535178860191671567074290609715033818383057777314985289098151062975169810443482680550146627472519729229113998119086208647687871342355017533475488357046371348977964433014935331708244096936814138188779521251567740216163715180874798949973045453712445529974381420484702355090899489862034228165463092712103817150273339576951187560251548797704366587318656234137765208060697079645386306170100254139412163306055637135462288601431734171661524951364413362545177483944273448921733053170353321839244331388100409439587965720031296924900352337179404573188536159613634978336149947037980439771870701875068500805249508026832169625686583715700852553978909519900043173822263751584574200838062242267174157630213338756040987656575873324101782860328455488573610667599108078728394409048389336077800904032763404434970229285939352014140627908306608816396468620333470544371980401829029746119279824978491684615179622452089997224587983770272487280069280335706401131303357414265851034455646535725684220957239011069811238484402812101706311533165550411065446693038360785088363224448841374095565095995775129701401085835193546766722966672967792325912392458723918592285436557300908710081230698193008761068971096605256863178306851326479124428666356753874141978053717565157628920494645680155519852558493532899970631164669204592859092901942932527574431190828912096476416712140358178540528647380733019129334145360782514349789529158272765933313372044090998283984399255349783584812562576054609492980128172955010701714686451822597245082850227108762871084109098412095213851245029809463013185032071131388109894880529518222067067643643081649613891878459137235075080750411786754041995320174634617223843516802983756626555002000020718334870215237981784331574574630185925415242388899715196679448925783945386827476844828282138720544248969433037676346224068622384377212414119575677622869385784456985581963000953129343808651324855586729143260052058941301903676338191774382299155786541846986785047364688664240823027615642729539736302370494514755928659660850177061639719137279623478416501754345631166454027229549684326979984983745304018054788987457624556815990964524299939817130301951049273225626207398585939932817586978475508028723774542869821539197297583778064711222063022777466179657850772980245327486934103683878483397153151820541621456943559386018118092566621432002938092597485990921488588057132708205157627180623964589978412044451277228095577320917761439033047025379242686375611925624556505903141256384616799076785920692167740776814874757260695000597524236587038626371022380191765565527409934949673645450585246634624144477830375077640557751253053235454852104693857473247116481658726590316111473161888109667249907099558701940163268574880853298918196135222404077937729445142997444483930239773320583914562488036470806020081101393681295859551371000374148554554832453865592129511059768671828699941741967378692925728468054933506620621904504118588653036892894352853840867181137244711735792036683337542269174894070386306477741727206695130104474612884022238199304775149495092573706868699284666029795160196992152697751751184404705166605242867983721926823972943065181626038524855468406148034980089988050077028531595916572384414392973419846090076483856308660466939238389421777125638831031656450944105992801153274458854981237645860720464040354418103110158973848990541737394584746608376894956461095679292562987385960930220951652275833326930050182008261026234337277756553058146710955412342555283498327149148318777962605011492344543287678724011828444396629223439316017655727607009282726864672164814627444667088758737900590577003796192189429885975251537439926755544631287022768296315351558522087882472208505671335895825706641010888111314488333037332290230861991144098297830989853934634407429395288796165316250236116921453511140489431116729064514940457505135650090658128965116521856513430996642528260957399487600677069748841013923515436257287038837305150389436526247895242858084547458775524801098795898842632724872098642856320109427062934382472013914004722436718282087969245075438533911610846327445031116706781789156692449120151084212832438699322820098920436732093988490478264819593492943160516841597396254397040350677466667191951363303950854743264140604721021081739387968790443646030459918698861584145317128557619380228219090946261354524387430259373121392742164004350956677326485520610104681905491725961729716766399183058339319005490455757627080610246620100377166533280920043096524049360005578245318613207446634179712160984547171825598803500795852449241499701825255237230763679718493629109396462387852898300932219054283206125889295918570362220989055436696443178793812699077420427436539039231584079911683482251803236626383637889180171174945398750638926349945265399774413864046830614308791090705898222758215410534696882145462581585074968102390759403134607888378042845491955438599771177582088503484212351391359032234785485636373151733996520528746054185132531394249175946169037262597669033343142482324336932666660610014233894521129353809974448792963328290759807792407151734011584604533904747955222541293167214538977529831594207371889223389889525041626580722531125403618834114048252647361463531134926328295455622024288409524005665712609496159564900947785782470603575006056062461891523388841109020705295236088250038178888728933248735766581182456218709778016803183127390373791059372564927755077021822325262675609593625497198356201673597924787595526636522703213086794935854311043296212777101372773432603821776256617378133315956859841616165071717343536861595359521669868275637382924022674150270409531748072343206344424356136646263417883666346909746520922002562595929458452163912441184145555837103155498396203254148305523917752776705132512380223398157667900628519718041870877534609952654101287001828514995133309558968011725601356430295140487378675364450171967571804763351050057046092156737436062926311119631811333969067651553819056740550241731525873121935389647704769105630046175624444513455904130003584370713497685437240494767333445879630620220257548694668338908383218727712838459015159618600643781905846714990262117197537288073942522967900766178843476676288321243409012748490937531456862907479223858941075419346379501991363363500811366438510639033736662388582992527859792902444992315788892137877593412141836752680703326233230769318116367455548737593153804938362923724677142296196578508114081815782826044433138343129188496012869733008774127884141479850735417385676661303601518676175164089235907445189937421517456363556175092243315621051063170302009150669811080246949240335690433208289226015688800337989035958444192843099968017007056005761097262639338129190756031701440274233680597300785955488028489434576388821488965559795967143071916461652137010679140251800829067198833072351403000207563024569536498807302261171240175978701460908062947518540563216483446659964516356496397440645362147966997825092687644130154042513542646826558578239454581630731819062484460686486501492877555470429148390436016670729322148312635079678013201318716168111119287874454223937217389011273222602390496594262951923230875670026680025526722101130355387649520579405758625125932517590792786236245965658164575857551431542062615794385909656466428563929596834134493457286264544927746212686171605306078503000922930251701110988320099096529039525436853300163006967736540261902106498312821884261033076751852471513020434033390129812843441847345462483680185478070615524074058916601736288086497828000308375544709257260799660475325037204468004074074217834880440603322111173926549855822665879857572936340546241050684444863636977502042218202932289795010348963579006872706188471713566698471252926422698678814251905894720953998047571362151557714593892089228786748329465030361642722958410401055281588908214120095244732015510473736813675686527905861808499415848310586917756762340599350760125716516355236566454550266694816079668079493855158452955388704772185242612431982585668800823723580754380352367876856731430549856452081463137734830937317017472335976914075625644776538953423653572184729055701067467072398180173947850606542331666285691758028900403252992297325882650429411147396465484700644296856489376306959129006451740534552078565412461231969638402185193731485482132850006875455701073600602772323575867646067576319586181047272743439165396643332582169234751510491682728608008242772955859905570034849204692718442931856363638141058077191766056327055369419812475844688430784662128739312391267565295990050847654433272249928409964560896704005928445733093780944248451136077096917839462915786223161498139196891627948807749722608712043578436105866519117740925829285278325977945107564113954068833255328473778610437468630174744249125543398925743137971735395776608355262951901734731709756230205076554486441363944914882959776515059628648196372585755444145469350060631321687039372232416494875410303093943632410030674104053179505565212722889853229334078994495340970206190047820677158095700324690772255308408817720679127947663173032729416623776641678296545769177508335448751749364988588926600898204105487408055647368573778332234103979085011212265355678745449148685770818071730264160449850472327405331740957021257891671733685334428925269462652935594426302986641006816110598086148472210520746263223480103007692312166945636958506525643395774266298427022541622723170785573172923873990940960799876245562066805918046044106638562721221958801626840421805665004581368407423440735116655116438887172025627265405742862252865538661891040084973206910517577943065008648994133010714857202209068281260627479828060901305106281665499860696439527952551946245171090090670151374742348165523148297675448862255106116224260074981986930175421201258228576043174928749538870434382871696028115455455483408964127088900434245513369226010199684284823442156388917317602553608816979819616335925222365822206550733827174518387814676535059970200333341008305967532907024276633981893102256548243949208138919370216106885947730427991414836108698786876991088345421609100978665060670722203228756225582679257953195904966733939132307156616576906712519307272336625335613337503303367095725196637849436948874312461830909102079703667343833975410226584106731329234156532760768910728154789322925962720078702504527238942280672561442269374711754100477368036937562145915041676072025209252299410700767843110761466145295081589426361095158515103637066136108215548704408013186555462778931486289798048638200667612065643300412398401136976817358618990889490954398519460606471606737383786764737124079841937831666385938668878758419052393466310403341746321897971754806138585503993748737602615050999916372299668817113260579079928456875979361194839415654406503405918482560812537184923643927523108232202655819523954709153572942839494365141101830239392488111737589104165259456568315547784897027529484631875771851900382002577827575055057392710575428397460968021647172092428584734216080224373253158953704241803801869432988702378794425597114009106127598322813575516090153927733930722096153968282514563256094968656977342942962769307565866417481383850798592714319375695658397272995271425649574881672106072401585932718802356176019455279852982652409556135056507507882367571822274247586487916719760142862519099374061937371093160525851230046757081951549157274257177312961045830677248887515626456439479183294897987514599381284349197209832013349990059724164391416365424468547701775485025974035448479778235956514682053519871344553817273655004095090529657393310549051543787070513791255753860553294126403040116753841298513709833958722945457027939983358873672899245092169716384406148550145393598121939434985877158838591438518156226410994392804049637065247607167745849291935360645433200569073188988749956002417576937536803654020564793750634762644157578947692478507543696057192600184086647348098886181816917642636927754722063100015567919044267498489323341502680744612348684197166875544159522828998175029922061055427274634067695598787390459217338801757672965245824566451202532587674968892223158033858312253713109934320900063446369113029823236430637254148760318496266174597724099527356334576070862202475671706100910074722127174530853968175640228242243582663309361733393677416896776117476551249897895838490006828252958620443419325802871453185014216300554076077542449696449374336782912608885012272145282323598562338225542891388020600648357005853813357759704782754667963582579746212378465892321242775582987233893416534730220795080837872461700172076842189941807359146859476444894639342791338062902083436235193813322373468234525371988300622222860568600331214279216209814357662417176718111448131810857905394348456450454479595441321818636903885862071066025247534424407531459851510161870098267587465536312548611113712647674729685790550801103817757416914753253853264935192612494555829981569978660618604755015074640035287122856273969049485343759789567248223161567997054401005528642197775828952212782359924486933580021592824971941811624689804283827305130239960712155619535753492143403790824379819065469584750677673718948510641539595709789352958975314248985416549437614901337427478511886041692702393430524711587445877225380829719141372591221883183023766353760539537902066842856114263119341538984261034702499593730195884396819640712211856591035884536365912088340050811441121374703941338367150269262840414936878690414192740592843200071304189918681402214693625686496555753475715674552282926188251384381312790285112039720994397062130130693501454391116489522577669423935105690636771329632562009550118272901098951642655927496750389981074317652058454642351728878099835590774364735329852355468709733843550064495794508526512045409293451844989311416792956262060210155383146841590370292500938022245740352069403031177959956659958552147483416620701940528127727176171217292327152667484371197296060306908621945180957573212036568101139128148822141108044158930366090746931300977500591677767142170708285594521873852339630036830156847479123942520015131377355740741927718965045096635030452120374009295100027500433091127866455805614221285873489602244866233640414494768495360572646204064570888578812924850454112188852328720556669478065049208124437144987397342251355135706795611296553216184935676731539529412992041886313507709255554166712077437042643202073234332742652971902058535287840863193250727132745467007039558408320877916066505619123883325093671064660308794449396452756980743300986466550099987316332608691441690619765703903924117655594954359174224193716343886432381929144272115093964172643411632115593571777178879625090651580529863385722731524825208073815274310704420644591567717082255815309320232913794978885912154836096542139904611917552913678724362113026989107326862667260737394122828583399416295068801679208313400459241319591583378124859668862472608158285173513447411439121935533988631848532065988410377671435401188735451919799037528065275652752491835042722892601315057102063798629873192358141448213918321970530106557476113912857744257022217705771193748603152164704757291088501991169505257972933706709372535651040765260221949108021289783357359233484321227619211673571668114996274537918469763023078271872588306358759109564053521082439587792585645897409717697173586077618502386383290418548833611567917396108309024758869173872868104547451662234403123505791897256119703681222396663816248680811388939991704459090713886596343455427465872069453441665824170949976645311245110279291217220463882615511982681336147966819411127084633476609469908114687403703598962463975520617504131490800397982702647756961521170177529195752236824358828251605775267369875878679868684473634867410718126022967091661029692395231602492410970484409608193984797835264743129757394280022095424417228122131068555793466775466384627273233051270930643497883966380020526680013948307484656259497115606034626598456532229359183854413600385004875322504880487733396222380050629212078601819849441189670413656858042766718251951235804100484711066345781324272634882054112433257421728292411212223562815939734892494401226559778361610052846056935973978319512743625320175131627650233408970296518734213295544234026398523167764425614775444746165584033765889829847975322718153746163546963369843183168677642927356284071029621835073645263399045795876582201040122367362820115284199545467748858849033875940777074308770607758821953240719335968365051021020241209782595866770722449361212978129938250481021056682809795049334860451791153564777654393104953566914756871277733903406058298504295706753414157130667464258757312201680622730083319603370231478504922232375486422524487622339069719734499930371471284393643688694920972849422850208337779038974765150747193612470452437868187690918624675684266638867086702803255623019441750575305115806363052505913854252763058020707441456434434183355316215933158052922114965780734536580234244498424438985999608201684469873515754765023411916171044526045997466113104491063067204087954336876928318763126470308695881322750934621712938048610901841085212195136929892950463007972043252188275348240923971071725025247499666185699713373516713331244681449418061119776182704883614286773359870058293628172732493610907913717273254467842806406020273451419838642373334594209761727905244077144927492307977781323634988767621583242471658761379198883947612446118872495717836952053657024316980841277738325555238821397562913430746824565450065200676806465793493328712681254501214130070998911533698075279223132494225380868372654218373643950315608096323797209115757205825457724136906789976292861636567200086579785535488688966644443175851117363060095208962517832865009201500720000739322450966181127147452546608422842941785912526502186111480253857292764358582705441039152306398079868981572349731779424855851927091567256968909988744862523310744499403817740707750567529250278624176653190682314424664383326439481034764373934413676903892339307752205100700360880755668822631024070295849663755363322306549641455975095574799069179619033100922128349556035511321183812541761337950804242971320513677926782709592991990669214407502655980186763061264548853925336487731704928774529536912964539251223933274765080153361869716724188773850636815462463180131378785580782549614414899133144414882639249978937877717316524065324083413608040538114950656831466370782466110867339928760089408428088826803442780266791210576695576514495907948897060220791429646997280902902355051543921969091321723389630273796608936305883408862651672831261373895642801375333625087326286428078752257344023296962556887049163967540750663912173594823063059133410178458682708424182164210260976332049867171857680240035497627340603176834064950824681195044561360241682680599474485616686765809241858177359406294958805825332028852874318938773584352389207475701783562226087673426732077463744729612134612374214589920659871846120871384874631236226109481880920812780262041168443081087353784640029269343954230219441042936031576474328978108261658076372085578962531324751918134051590481970591195101767301686331059987940559783336942183137048763331989575296135847516468146996746676132098439419295746775792657387823413004238812920556728098275839593242832262422222537973855207710045032569150120282503944354706886751346623680958966572731249216873135895510621300336683245797132574231435113611388936783513007530256369495423128910492938103467334906403998533450203400499864329799759155720587734895585488976114645994106546233580320155527533363211746101544791182606547092079063623614371392270730128540356493457458666403931772625024501909699917955418864483783346663754310666542052185494502184084451170662259895434760062390356788976895892665588445791160298714690930637926811628912176364891359268079105427560891310405339788237449346027071746077736624505844439841019477010963806213314272028053831611451212648470587031532421627780808322271096248190292490844802154552394810037475692464832852501948056798343938791675698254824618412889236826693178287303359186094712477871504739214464168777543511288019276309026001506628683085040603000694520941253118057896831959455427043620699478134024510022445318538240971532925152001143209060085836550909529743215129456411126354527851527487679936554022721076814193840354867523747417526990221913568519695248774764263515735028716825976766850354677924049626597060002485213830964290544023212650030205056955494336023625380683307926192799481953614722723445291142626606102488610950832107164205757429165563431076753645325608600441718967931679780850435126508120347428290306222060681536894598624512316034358160319421570246750765185644788747885426265407766022197169061568314277918559362152936864771028064301213857894200313432595657630650245321694102347224212497211186732120798764471925968565360072977145737982671827600380369247216281528395354554809986418525025984007700431255963021923218126058227442476321003657522258608278522162079203877405762665423156705404450389567176985145543399628879374537385103320385685861910847436431633563976723820456946801646358012997108269228158565323605525008465888243350846410838315864609619589833579274736581815633805749291892191005384665347076690977743257284401241230952057930963374814986447113250708907673685910364047555115226461569499725149059224535577643348208080923034941228163397615053689286429452202250620681166728547773661582349119440236611508873117874209138381185508283263930330724011447361128203562769259335022025399224998190178922980531001212142548858625218045021155590661747434093920886843386248477748838941544867995815863494759326166862865281078364776631131865224795538094202543191327985388560089637787709542305797451332862058849894945800291482819906265989101998314985293916851537651857052490277035292577124844463651625524180504888716378545538145268663938705202369652984517676790501867159291450532065476452056094349078151659127609876824501365617480276601619871418055730077936741164705085522181893220266045892182436960992007479821571034490705589908477263263247995794210760867319524669691124192963947091506663124088563463359873561046093599298186265508267845240073223004137663922473930451941481405669157109609106255824098753512805334603260240269104706195939943297048428316629936379023048771230855154662421344013853964925257194350309284207993147428643045026320024223001743357186904892816077289183207642936609452803475754067529914532563787547236009655815121656506745421672715057742892381113683828014990648489492526641218954986643120368150724093437067593734135555018305968893315735213186266483630722553912576995970248729350454348091678851257258503834948392738840407365899055208937520233617830436335412464804408992012256728870022811998410295411482377343922369518299234291718225829783122077760497569446443888163936552554429102069640131818344815265575406919443555430918284026319055016937818901369608641796498302050718028838021045802335408015215078880116897128507139976954294476116166894166720387123889458818636546124211685926206365518804910329814955079069108885078649650299018155750738269141221064651345433609801795048532463721896870955674421871744448799925075365691406235279797217838603769602141569140300082505349369976847939557178385097491958959625430732563320390494057514903233029499606274324707676169572511914356825805001066377788194688446869045766033822743257091171088060113176890522661016109414044889751708074525443228614991134869376698136873298176990959561970540479714144681569259181006319961521509635067052712174202996961378904702712337832621882828333401928205615543503068232416218186770210640614935834512114210196574147992148236500596005875038482447480229772914333699789642153890398629101227951952780813885283138481731880343437047391548913840279830637191623101808744026986282275771634917046573853138200226460451560292401920930333086983030209927029022185630721153408532073931990132815580650408028641107927165206244068778234946835084523791941812751029402599517208101371674508925946783950049885228517447052681763365621926880598216507713100276556729325584068352379553940159126262243692299965642352232052197707407280377135520038755576954368261753479026589569080949744105413967032785694470970313987412920270342610867904807206361037063756678280185878927824177382947757642627598043540583193116978198349054480671043966563122255964744239688085787403051178892342883455084658870858546290993798488762514923631995118855375377984703413329441840685776919033355951937249639099465092249388741698290341031477238555300226117624820514631671826221262300674492657506701386167560428142581946354792333183584899450634809208829687955613123616225182676616298456769025641871141516913875139106493532110851742599054901899852275053961848943471746992348145768161154387565131556746989041560498339579772205618568234764983879962578916809449751695147633101658549632484594942333940629829830958426715257858540952322176710444402330924018900486385091907641772766652378287193318267067248998890191943967117315631579862134268975597259634044397624074418498529931190722014893315175408387595851557367173501515049493724523097392352898186025133588030753401054940887757205533102421210121199669778409984806097889123307790352795276438576884039397336004416098141504064633767356177971670098365315857325197791591113011064698835659569996157215977452338374113549687135252978867737726887756812111453965410883150856284312500996750824256092687417296338005441772096654305403711445949611359758343727909016847255463753047370261532953583975685574823774308976053657379282823779024679564880061993043511679353976872517936458854966990452291549493587028759245469453310600338523933020788505276308265262218369079728118481827246709457357000355206142506048405889046685775995895389306439748649018694583346465052356102000534847440985883369945743649768800254543080997055722189819098117786977960787845968879631026832368229796850442458898422210438199665598834156234121488030448418599837073404085508622872041450096516511182499650748617499981043084478066371255766936967677536257994661413406168478027454035559127734476613202421151437338007770366549655405417760587593882557360302062209591272737138027942100624630951512902430593882240601860293219418318463842245405748522698178663354759807374256182525437236396595151639869448045601007668958167997237415304948284818702663156425010735214681968758504793619702753557700091263285834154888879363988072422829342484950843798963315266365926957790251773396533706544110536275241273863473678156811853041535660835010617869807034280690123789021710707357287870185803214959113158098148376646130563513146518635695952741817332902662113265952193125442769302795073263745951491221727585221227311811526798777432206044209248836559595070013442538346036294634910994302984393021356395933174312845221919229361472091097243194431142811557758416891825660801043968515566321869544801788341565141983172982564552001814768084993027757539279346464345913209476691097882070305777669757685067711546862203992945308901960415658686507434189323132798293185622531606283116421694993465751588178903910138825882848936158917456575145219549549555149790421291771052066532900993079608951801801053639709864501944900611291170685231209933791945841521936977515737803029404294162172610345871849479188204688991748792482729604044091072922333708555459406784792516496576724715070371255095373113285465495028999618774851565962862876124252876993032095181351513591098845475076281608855495878902370668427695619007173883627135528497614932396455067162793538784251432263415015918280865143133251065459193187756115601497408331111929832883330806298735874876731771726500209350472787918738795886307298390445649788840480503470615033300384941102839818469878638003560925824055342950512754457195206764000120716449444400616082470468484481260115350905813190341900795200519768652652286478933473757770382278034215647050797685897818397127396810254051287214679777287372596334626791974853136553575683339753392349740160110536242053567572015821125679802793336895322585156795931430718282144897757381964283702923301518483462069956121648405766873623851790619460542352953869289836336046397044319108918841383921040259481272744838260637551991729402848353252429076496172555317211803052244030556247593582508016535261882004397068133139916750640997980748062408360884855002659538217287879840172019263152586648176518096799505270965215112496006378702435940620877069190524858154062297311024448787238884058202791255867573173384941614456697055306887771858330388777268233960143728337498855930044327031419704820209433378045326352913366011383158818021698406401734690349185478364504091176513920679668720579918141558281837871975033561682440123987413222511208351164731795999036993324751203377352994196071951607899690761764402218002668135276421907942437848442660847679341341451712250862289895893743777929646383698665867418444899321842704572972089826812818941165415141271622981844819096455464782331047227730902528597587599461228194573862044600457702548753417294798455467363071615579691631415086142598239430213362650856881819459729174196125591292674791688425300040841123741929495910186820154195227173630562583405381752774490799143408007700709269909338007344734345313328372986569236629895705339431182600360519848097732648590098029513752864421760781024715912512169931763565661196515165869722931308158124305999575400632940475158228270018361225637576712341394760020476123210914112001735469599548967639288388230104195604431837191811542558322886057699867790857377668420533782158237751466202436752860859021698190912613326113585213248958774641224347907218134461208403635408011270146473421570727046535735838786414338320311478211765994330483456234866788961318514543563242199800150512678467906875293965690614137721215636053889397969947110522483001453192440592470495530891359354101424110896858969547572585388012534866664682583545781261863398403991163908719482721870145348038051256702787351956193877882051820614190012661975888074739622004075008786054031616247024913602679539976576139533041027487209314253744500405430385165867295269389687381999810635872880939810677657389199676691890989751242922575681354218890709090579144336763790981775806586272637505563528907298362504540183632640413232958439192651015548570768402988737447148895303826761120466245180999457475092515276181900268528117090852136128054877627393873848953060057710329793158405126444137501400435303863158388049809750085708041284390492107824877006559048312972734400313618693467699890132357392448378869120470130944705645407543094367318755637298246841507683266586974916536004287008850916007547585293130088354496546595635262350870001703216062433888185971484950071557184861333107623131129083105258053520716192634691241449144159175591599508887794084197109683691809745233970195444691494242506936060425144327048103444715846025308137671273902108217584981025925610311407306602053125628504604408164087294977975155526371057384705621769442175866326164838696875932939557854016226565504103086386155687722471867729625246907028763180678925352823959539591752243609147764260751264320329752034357058164534639372038190150672788691999782764323014447099882066243100953845291274198172292595018717287537405785968333270374279530805963110969039431490727189340217505090316678866487823159489525975544221846514779128616727534912210372556276847919656320028331653837149700423333032101134424419065618964826502271899772769446762822235402963846886276255344503182098567458784520065778652754090845575365641612227639311312575033187091765497027875118046593192679679453967935436165895127904027991270421700329953385167237863822387235979365110448308381409924600982536875292432186545829556919899244613275989929139809422874609378071544942204795492632791871369798867305971320800057331568971413373262410323595374084640987795859113562945715877864911868303184101792648668589014464596460743679851149777127600783673319092738120600048489717071107743614172689669183167550594285731914399003325154013562107473417023640383553336660146714730715756416949898175525290007965136004282417837031970027898003460111324795732694490209308671115666290057776921982893211474593236113718158337403546490620915613634784569792757360237847095228045102486233203459696115581119451477674321371306329095146542241397959803847770011747121892974372112185859305890479575876461435278747561982556595373002696072571919193053737097473625321760810393099430445935722534287208658890052981414318761585338170323324517187569985004953991073349648124662244093979296186158870110988030143204580607029472271149399021671072814156106937983302614646293190993437449706031074218087708348909374263485250696566681644250129335650182141514703032642542511233317568331689366364662584768364319955733418184825979547648565689432295671084700939205148189480732414283034502519816181856843019338313334158290368274068055798699510600557312596885069640306693512130197593813585823746138159105928165027050534305775505759622021323929230744059539373999779537635744105952393133555915458208257943973302029317801876622003492157515597525730711534482761774072282696121113550765898171300753669134556925611658961412807912541452193721592841763789924674010184292305485527956991721155527753230152577806537854126244343747612523217788039248200826886641579948457815092819961386957985695774203160204405166141592986867834751268679632157111773992745364761741621155999020949070319950097078812485324380367955423620069285082797359155611992346402416992582490166056704536896239204638031767218865723972330637444990094788651445209894355271165839355442534604284488662690397946913097075229177448303724622067873685599499576839561877218999703661592406224618120109455927904797181384906579743257951008981495935764003254198001104382377013541457318684665434179562251563851562047339327474139404598213747387371157576163326907172665655756280896389759210623527348744979853653516380288052025935698695966773855839133932179784317362032380850866933539523849309899044375687968441707370386502075002134410118545813989364360671181259037536400961884866956822408219891293262554642533564470542300424568225825695958109789802224604570556277139017088781340593339104480829599229851942644910943616735097103076172661011510838383007948916119060512446158513584094710565000958250025477101918129795131001970037205560467461743722256809722579596682542945092228719131392966889861965628088177397618556306480689707592188173666050132312316488528186885390603376567625854737433212181702211646582013131220116409759839454457212317229926080591180183491158669807940801515063514284452844956328896918017767324371851147652936941930361890551149446759947543506770138228315729507200588077355518332010059718322696373398309385074864852032875044544059424060749428044177492564594515806778253052029641727347632697442752224865832266107616689503532581521005002675402567499367482936917525556013419657480951716019510578523275029710611778936791720852392250378492577603626106898899662088663632808795629329171517505023986934966780899488003179786487144096855390413122057710295564195445333456117851926984564115652772015764041426456060183482889703690138588103395043977398746566324199759492546393420292587201706730430792041945230412001914518759651254226067142227825664667573332481145693083989596754413233419104899300284537957058765840818898879971025870088791720960290034520906630659336213078997494996741093685950803254704010247623460467930223668536538266046975870439800087233317172458513660465426176047693913684409877025690365964575250647617792581185204640663071017162455902766506008067418522218710894931618127127185530181092303443514875969591446373031155813892167616707476642045133941917957489280710451923146434474937950471949104576093003278887524073476717004991634981904557227332612137114675402870560356635074953272946786707439985588938463163350124485630233209065537591268580113460343208744895938339116273831109998043511725810749536205229619361230011261996217749980789933530272894911842187693949989148859600154316121210967549157834257062722907619057382282815844341885176435883847592901602773551360768619458215139087974401642573935119192263291467632585220239383935915825419539188727856963995180269438479185110278428011004779596326498652108599480868220165530159067174381561874177766499576281619878622922116176324796525647551685917777500801027222406468977538609605909842293332467656036023283154228521775402142181128787975442036682795619953078157829935533914500035057271457952278141596453815620805730827292336518163676549007133520312336677318301109997421660954031069089861972748268246943156801937726173390013155379212003046061092260940977117643374293041982374864771960203607650118565977979387398217348775318558446465440786994202362205239315376792332617063339664379568643864757686311502388004697221194442768368438600132679237426214031766080322562702467160180552251951646611202889411370821012323743938704599056234645167558055572557069445934291786242434227182223439837351018217734599564942098555148774567850436392287331902889062155383940824897772261976635485369752267622521148378729633904125711045996526981880866709268977274972448572273585326056810438374641501263095054789270843895591770482642381523504720595816389454710074673878891708885868674448431010147508227226171204520073588414080818844101562334141217586003902507756015223673848364106475891873211552069026230286232518614458577281013932090136978949920272123020221962477740395945892838367126780433315148102816046068495615544181255801183673345545700718585296880646559317262682211545305830313421306235406960112771748301717297480242665309655135266948891545276594310023100884714741647593074702645853445950696516389107360549511709915394831013515681567875169490611183111065596552682000061651560140621083539988336635299977306518164107796213556967079856318408970129706599211914902700373024851579686335893198857075429742820835641526822883929856066721288587476193929866855374931154153523908392757074695146402364365510196364531706009822834977876536264264683307347085604255767496077218254367493177966691911763493203771963823671061539397094022574825825368841919074791452659551862571219733048520000551455079363466161020565585611065971310519648905050528097114842995851284378497429791870721543903811786613233747248454867579478151022340989675885213222655413312012945424226343296653316492754325951087696993393415239624095858860505484426623818752006460345170404634440380947573375472570284640583563020832766094327587990032315002415286788965196611942683431487423704261019275111548021164894612785569857279793393754297771947509552453761003816028817413864989580490427812853677558805235597146510793556269607778981173485409177385159741038424676757645873828932128462468831471588853656907225468842838717256300264035197664417492830378466540098784379589402500942809787196250474719606274765319329389625712699080409281717413539435946495135932788196998655581828071509144969522670366397358567124461885194237517709832917048361941134871690383302828019393165685524792745988610181856169488426816464444943946365748195444201244609957455800225797609959425936770175805126541451315408461667335306793399711542923502898924440285268385407416104819241019719734700987141569829059714113560274111278466349140379099385982111188295670274756930245956101098845027244851573439258292477695975644028371466981196248213995973561376414236850261149699224759956456681670003521522799137053404907884868158208151084412509453222819749719872278258240347245275307714980729781990045980849267330887189754611156092550455575417458221044665540935941369165800331390578963098301071086042284104570982615650710622693586619863455625038868580179301238664181306688005462364605629953829528974960204464072170318030607910368499656291286108752025094484440721345403820473167748859981668286791107009095065846484524653142741831476030885804476554039040530641065068048818027288145229898201252903198244448721435015316082117494815572537053008142508112850950140179339503526318491753414260656457463148092722583997131949428410816343527663927578007326940922311013750400771938923645761604739713450068418793940876072370533423812084508459475147074384632135653478323419082567559048212055515472672213303509588936674514067356073296745193223544398861249119478057023015926181637398944137100365175741210288894695607054844774566261045352119023780596373451540042342646317110448366911062676049862747454032372153850766246204062041501391514233220472186010340796724669596096290107032698435856093058662361305870670468714329240361481495678903363232856503254844173653895919637482403798246515494735949896058458356286167148017460807285181212993628053099461239861613667147346185500569134729984921786353342232779834132457687921512449138431784157154720676170728636928724077998442049484782642048410331326835220926074082563544490057090637794617357679455941751281925716838259112787095352339383470847968567904683927747564202562421288077533848256202008550823204920150826583560749769276769671558417642556896368603224061807752161803431068047261273860480282176897401171645246171497038655054933620897674938071282633814605593307843314112276714776108177843081892894062971161108455345820496578458287631181159463780665671679684564445883135045933375849009271317260032465811237168464916633440573579462098136862326062616320427407098556438600111478266520319600489575911151418688713724702978565995392872122814494360600975780419560286803519153556805638822487945043174660772294803663255851095421507104623523127608200788628347382675990552634339207146862790735696488349139356275481327997376281210357290820211900970248828884618973812759107118521106823582416058528324496805246255850581358091514517763394392687228997713466712962285696163980964470379055277530201424558594878199583944474840807752126961544810202729097571846691626919440954251431183750849958393327834794685576799708657750277350406551451369963208717748716481854946330211560919574619944208987989143775281833431009008534837180002516495275860451533360032234215185917072355907373471282489508226520095487272854649800481613202592677510370582118830024091892615746388332612074704308204750383653217975399637804960818735921602991437947744828010140071683420641696781179688893117460304365177262221051028566316287706737508506957018291687379605789911261472648448450900883093480231753645169955502467761380095126122364755683060492381781929618446853461419427155230319638635019525097136029065386552720449044375769419110355828881870040428482479190274873559623349799434979759970891962375987886185908841935770767614332983572808725456989909570432023146577346708366913725464078356601577185815802312125200026263594528564676878312864915624082243084891970548899768198929902775420007946321761019693342115899193949149969622813188874526790585825589863166575106041899972877581087543409410578541484387017056061973380144176702951118046010311423820744359941074283957344362056166536627699117007295771462998443638144719768278264694378250239127599515267099512901486041892437766251083799201640556989578276435759551370001034477926368219891969041128121210203737495400894018895364128883619240587864953063080658474373243296357686350271377517620222770446727498229178007420991933849503769277913698390058376381173349927483836559059297291326373875075245128821242694037862812421215835476857058409387624834948006846535046904546401093624936656590237783592542102289211291201388082899282974175775566608490805250124479931063322500738071443990108043314155436460516092854344068040371631114948972839399505031693937333334471718632735811885015085855866097568831366846019641760668368315030508960025381125961848999745645536087478595008334546204284527919519003635367703052415712034021085689602651384495333201248282656591870852617295327276552259412258450694333566117383192490211749703643393408651973511383918575216687427424006937767382414368174133162798406850384230472145353267125352754831892884054944605186121953679381726809462178497114927541004250557454566489297641473674522579587966147550800441149666417348760217141741842292321257641703652852609466770592200380783069295754353793806446618089621381239890871489044437679769952589539054700639866579946017844703026554863436343295860331261233379157682575091536865946093075916078010480040464273965411111656469850324048663348540117822446901432345310087407485895033341299165567096088634633607516000037372286442577444202822604586926646999050911425931731901930160157406556096994515892177766929067889574276393883594102023128826821892664469704297169173174466934180977230061454587577941292101599622292542014447560779191665631642020446321975382822598812504442828899039600037085588997807696710922303149555744744046440291381496305202020691864199088871263953240827941370696285346389847472046825736392464738327691949150148093625857670333334412532692639337446981693519516764691382350552516588557305765647924554118296474354902432645301521830187117863624363812797188750383160528162563299679611024290756898554975696456052723838926697639103996531192855797402672299811050436354260491861663370740031609134298346039205596044859409234297095155221929331853208775965681933753979743349601293776491998408463484733592270444203998905337154124420260825891289719007633717948593368398246858492634641010073821609775229833975678986328555895302442732637291326295367218355773723162324293624684697959312652682288339304676998280511340253427541206893627963056977790302953025367802423245131785608833827649645057115504681725312451025520398356470229128944112705684488826751312989845557031110713985093657945205489108691955076005069200437788854529078632740537464605686429544646831805494560026161648023760421492026873980615041237127226634780220942302546485134268823958098760406382996133014703633482401570568019448297758901458748604671748433568258042846979849915892544542609525752929001679820028954597356144190447988493418144614121795141361760033861365163239232992137325855948603245693417439995441738403459926765704612132949875388954326547783820964134403153009379610965163330755770996515634579287013521526471242628981501183452756340457172485975187152307603749718155739018637046755225133120932051115406181331684193860464898864444769232737888849350882463867875513416930720710239746866783698801283464149942081045208514003122698455058033163588834432226754854739675182585142044947545200933086981906390104921135268498473521175447840652292182718619020414887679274486777648069558371899913238222327306607898395687052347889533826970840542143728411609426551934474479085100897408669098083690948168597505492862941441912605822969921031248569479918532421312836416725431828354039325943622784720335655249202150766874586332656913092647787267716912007224992933767086907339775696474380711962419507574254387099992813769585294594462438566240637706751727463058387951813201868517900572052620340126742432474976411880434479295972887955295540733844325999589937872957531646820053800396190611959685712908732169560292413869681810296533322913065077155974480399798802601828003129067202580638620630920521838153123398383648642209228111890233195824076763829782960077889206040873418773781446079499461285208728401205406006052846911945892062907395981158710190771586071987086508271632054163599832417073953726793872027805435417424931010334955664476402889122214072370605452946330439613356942935157060041794746486778159647614816427276168163641883869489390634358179540391875498705684961522545842228542370627651469596651764471557859402049384354746620320677095232474763501175244023873057460884321963238651840541132581861494035354761021316919367679673549155113315065873556623516238031790268354793527944206632142856413469200724822747798825351561510794184723796507361036450171786997543033553727328474632801894363906356285316898556771990793323272857677053147191208041814977457008266099348652944441175398307429882609374803625215119221660733461269566462683908301812188575003953950804457649417703485592697107719184909695139455184200474695108227420613851944338032718127462156934250642600330964963893225391267348450986322699320267458743513470685420246997760794623398122484583811649549318935646276077387821923511348477488200200936903481892359814311761708417294890316312943332285392654177726998838563496570375386085394352479849074206646319078854079269629710402876188801369323609426510023649326283943983170350686538982922009128196593266966159509001600035909774228212121876269504696848955886678750589007313395182627152724675817621948070924185012351225782517097438215489747293451407316962087608885295796324448943411111812689784311467466956648032752510504572891330450426084051982053974113902832653688487100007382977556243365380028019566508369373781960768642311208614235676509347671979131001550367672541341366483577036597156352239685355216915752677941878836236735303232035190803406651699684628605416959033823283852386294711972705665831167552373102321486667788760536553969811382350848024661816275600062534195187518483705705289477675778128987031301206933703892917713697102193365859604510499578137484050891614070845859494187448924668668567645132427406533463216127973023361232819583246700716348991457439486655504826974727198844945975518445811871900352231261105622607159833126171076516849746264461559807599943217710779053154291550079686175636157001246034780946441824137915313559494199825278423419729822051514528361207077778500533698253276381809663870640293654160508687275073277301259132534809990946128250294826722515811767828741195041806216145519390914849448509180742832400299043067246026578475811727712489814168969164526088386024351277110939523657274521692300903467734630738641252072246654849260386959610183756677390514950595788221980506424306581570747360861563792164746993521426135253126241165428423162787626099842442818443361424583539004927693221516723662471038896325982448785342607740212907307122121406684457571826983435946508037354934315772522984402603906056841077983013867437870805134686869679626556361745835757753936788247709024700846146176295778794399683745497404287819458130536314869815974791372383944245647610280385775339700789948751098026950967602224684583748638964438263959269095683140671692673538813375190889109610127790251432652347786682043705966318312683983406108337374994686553238656729184117813914252436583346461231105979603467344109552802771643802094047857273768436555272949175727318883264047560887210378348799154462422159025197725160019007921522263569190966022064727750376273284938034462432336049160964630829924376174086936533710546586840983376367151215705948447404050319686955509909800697240834634891387673285859859025402828853904259574686911680044540072417457048934548303856921604248685274818952384171665186572797416865444810749178547401022977142621223633109989052825809608861591404237488175362481094922878806861727145616735733523902135677769914127608655371689313747219637519794890303959706145831216042376375156022562274306846159819150521842380829645333919706178541016989555068033312234655279616283840063947671804022175389774116990038330098232330990856372870069910566616828954522638271685471140192706994481091731182782621739217141801980390393798475027458613520784189381930783274043676116263066603692880146727844193530754282046113592108101559098374059221308964496321858186276464028451546170485431207540482955123303040816281785608117807221403304416499670037112065388266542997541948669778211291926814284928266300685124438316020384775949781036770858656930110029020013152044837377925768501954931795521015665514716264174527106622073406048624688817721684832916568771374997038163427676619749502214074482127328871233043581119007735253981097221800823535774400721255142091458133296535124756931921160995605572333525816663691408777201599843249358447080066176421970731809410885979991052464029153616683510504381935630615773604003777484184478450861747302119150583381028464302527579505020181313165626385633855264451924379714775431623945443470623188448597422700019681813053895386939829010406532448037662801090187018813669033937629802567032418975378509493913877859597181489097914809064745313406018808948531039553301874456590242567221611048854864478923405750248220468048202258432742016609039553585063186475442222118513708197936197336329280094735864776292909638555444560805601598134002770303383680205895492568743189001175278852853228345326511260760485415966445442863507664371692755900663818645861240787728154147655689601905050159199032634673504607725342780695524558906712496036287231268582253988177784800376465450272052050755268242809971487131456171986047485424829925185979194143727389321995331520326504921268801535913023719518833394676116100873004222666368797846222260574750970049632940608924556338223825937918373203028761641449864936799529280009742458076288558414765695120373634695801889596644533351608267972027291324372345659993904033238951918891704347399229827820948488141596059564479725670877318024934801516621076224916133769069505656004588325925042208915162966324917895021938236649058351237289934801516751551349278003750776705032219773187113873544177686223982075233124877119608486445105463867591325094154800572269985901449145629148137151082345715337498222525940699026699520239607837757880279984470959589585471472467541620374878866753579304280024682004886752768429719749005766412897567143445353523584246310950859825713659632546149020087155031524594336071281208905481411018817223792013816804455510724148657893153281922224314619028899842853406818242637371778514520287318222736131429747918585541188104478536891918959747600850429978890640319691986612813380383036288040505512823912235612924486679372051030654678145415539260925693695002585099380280738371393687429641414708075042203470377010997450569180322363958435968122887130610561758946428809839638542259657433787814081545015539023943004623172631677724827504691900687753858820313702659210781699554611577761646919611659659201296287186304865801826358222849203503460090066602265659798659973804708906212183944071600497361426690435145926149906460240934780287025511111726860168951217059800071080629013996346232104340057369384386708835354620413413040288436842350522678664555242792971895419756663273466614372180641287240263989513158079828773429049041561394838122349353710144351689266211269882722780616962336430577076751293823007806751381671767717206577757765253206675265483025707397055453590977003650587697291421766351738478405526937339462427760471753220792304478634593144970481089078492568201994174754989949068276861120594666929564262470344534393539105188981941547284138414517035928638871868459119107460036097210942080625127079117791096826445873746526992688367709723516618569219215552058541362314866608230418218776079078391889140806324854965165969612344284758545797840208886647435332373333483092173016469948277320067524721869033753297524023185159463515650494104357704388933150091600521769669356713184239757867224197451460990723343747777314561534723919070949427201227817819363633879643367569120095128404770943597764448456410951697801851971379177747080784101469420384461102774897767474294507711416273408093663963028811455345268769536893831373536049175822562474397316955273298946820012312557256632317046949893760763090174986570560987394862690924005117486708377589555481475572667597491105932523233206436986047787470796212277865604106993050836020511589375235779029333397683861961547489848572670936190918951161267709843814740625637442117481729285841022249866796265744942606583320341495983599651184785629277111874460390888904250392393669435956063917766534549856768678623129296783912916037595854377964822867116878647106480085659623684186603466637845870092954498814456893050857503981019297926786916627071978792825473418645102146595053619178225822580368723742159727539804073419101086484461997271507992591341086296620537734569499391216736614929157925507608313993665046216648091925880551277509982823933873211521164933349588748464795162084411167479465011970405440148942769557205278617051280945429287463629279232812672711353021864935257634386760911961422078656010157076480849338137749939214739079295620446303755171614551624004543965888371322224566138339388464480195836281788608387744253536042990189754636978030953660431318060171712514003045812075531584008693589701580062055512298065973879765633845629844723238869148543895502101741280975081453713607063504208885188213934281002066746443697283137835329384083154890898995734979554457914421269432473568416024099629703953177506474972875966693472491687029444198660798363812427004091818672844771850479396589822142811756472321244044755928157825850583462739474698849944338533128044176842936889156503797394439430787811209492771310924597932771198077407972631602063359031637923552969931638269533042274432937128033289727879596388327830600107960691955142182578441603414366975053065829003639967234458963016323501659683236170927015568036904416359236841450146312434660824959060779845517549334539988189332744064452110101956816286182624483138520378884265156089306893213456094531158284494267628811922720091360228096690419867712606032966324309245474046214040126370601654284134198340990678076778793656647207728902047573090866493734660460943306691649174622211267422759829871712592864130545827197157249190300997375927468566266708247888800202047639120093479325206089715399478573047522009304654768494714713547194054560460877766419481485369243203292161911074888729983809884175875450413205199742338065991174946261532189620566893245882251067139902134580068884219471615808651402808009241362443944979884136698724861151841680402233336004427825491577194605448945509077737061074322660645558224067643451658081598865508504321831643188543200436127255539691213010090436662177494802491738849969761253670324404122042164022687010361091945340959537310648023821615866218470371391879695497470765460449458943663102559814759308634136653685953665600179452416639680159121171548144131744317856522599897598480771263250680672756694209041353383619714116694169322616529937104391784513080722482201337136202079201416331714998996144770763799320549071059620490530351332238920424282463286034412062194641900133678556230631465270451154519491536410878293269070563010047384702296189892362055418167663296111806652840737863615446300201880226553590887163619351073211654928545899584101323495206860825097673355963663762299005819792908896507639942921315863199379473849260751644710198648938804905426137545966807699194173015472544188417423768798512780127258379215811508673746207939787417551626738188102284290258749463512347374254421497185140937294987253669157033538999855294668056191476373677264227080468447576321746186122849908226395621576752444189306946344853158911049001299259810301828422050011519389125265472551616258860420941410529003492604015406114721580339092597428966862663856077627757416029917048477476608843787112838207163791329643817056215403695041312827825232438023066473350086913653599315735804930111424382276441650362432783720951008309851755087182140916087145046214600336321406408259618131643358524985809754091395376110015680964113918610734954792464582246691338851701801038141519305264423588474639708608080103192873517670656801133507924272633679756740534072298331712689159627302846229294822098009164307332122422792161731998307579453224659654956583915193084093639620070432185948267915826891695329592498978626758452650630415647739373861890748364721371340566709999150191691607361618772895214303560925098886572475856058603201054517765361931498532035357280870241490508213631338053811086901479942983963393344182248671912269126590420489395088262462206704949505794648760774941030632456730656535522629058679630799300323907061266274728601732751530345230651738073692938054784919251296278844605178566385887281614901634547984425814808090252573436993720320262239580066008886086505727331395755579982720338948366260896018451621798519321120800059552658602602179807910443688202955843627879641699169423123304620901702716609388671950049412876030553209642926220530850850672354783965131786797034298784785679946653925838249517740880141462663570104448093189446902857027474263306694802513766231693884932851820052021654869305526734350978221811269280740228771676467080928835541491187151107301461007545566310425423833266947484710118560974750384370474647919606184485336871163120228176187675598927613376553037335213991158808880955229248159959628536063015470815299605889110030762262267304672273860732607478223742462182467850495114623256828485356360686749275564232052130242030545044572558784336427544303820214176182000075487548838836545642632855208939899455490325870081786803579873308875002962226899038163670890233462133419504029817602879222829654829947487703686657155767758781170444600500341602173201550919465127029539679730041592653123577263823116599752968997702111680115144137029928992674942708064519085787278837237366812603560419419228561304365366742515885019118356385450217764355804254868508042150811774359977231000277119500044381878387731145679401372423264654703923112515777138360123419236512340559902377679885563635344454942285611702250003127531938427697126805003259202357970395149366495878802480872609146740596389729261083999788499521644398606640789423992036518842898190516238144084752800447209992367431094196303463382702528050021458312007229757668976712741104950420715115449784339920506000836917484677488821097187240347403596029201726355248174689967321400078833449878169499936283773794755223402647560768206315795670047947450387120705228148679608777461842130846726815113230989978376096498042443361821464561806407927964757878933830484650314990719656886447668345086048998890042892911150058089036076479678193244927940152030416733796247410092475891836155858056009119869322190847426941682596383908744887896105227476954914159512460048843177389329194632311475110948460717797677880431493253019935000087046495992069317383357112563445951106126653982001188721066092002176916533606109891206271917085590150305488701849450946386400597777485013302619997933019812304465408069323785979742029826395559383785197384622489630139202938929136202044079389692686155853021113882068813540216247327701382010670440898518413480609502001635048125564268361591147039412839562943770053743916628539696717802906682403213266170284041403114503889907260019535005632117123083266547423862730627232931952554094148920476985582201692753566092936867398134916056763537667669906549515824793030908892253267438184829531451155118754863925160364591790744843132424957308676012646057658062297998751090269461487697815846123507317569442233969040423389175158053974393887372676194332278910482624132034581786295015980157383149920870963678710800026740552116098878887320929139215797978005397614827295469739778738786688124007951275748334333420705073162501705843658327350707630406012385061047079596569749132744321485777136052923476763717990240909849256481603436686530618431558341913029711611526843863747803430371758153813246617932445026148677988423769555858224961198107786432232947705878745095224723476743301320969781786713942337684331512769662580926491397669985057903790393417838922321214342027066699165774590018387502179906087178396928727525189507426390478064330873093547324878273533320902130272057875376631752651929465462436430302418004019154128774685383585861086470620929840758154264922565480182380367254678105673696333236955300600105306363798494066511307848409399079869535440073258764045216852519568509451228279548425927430035837184110984733255429887961861126833335105318076640065324802931864021114781268586081551355488677391697491564635405414263133983200093074014257651489395883171071543002690865668646662011887170742443024167279913288505602145732576016541136134222020038550061559760548825354532690924625987981668315360854959299604542967636435737187618414983944336347631872735202925631366995145381538041600761904114886678269318292976886362156513239586611900574330781893951814936453959681595266082173001333342717046024254640158542677894066530060563992237126246597582163297595997813057929321592602738392185700165030408188287414198280122067242333805981984484675674448077873574176622405310826513056051443931742039321250397145185116600364654673645857325980047254769865369079036008232451614116106918262135743204827295111196314560630663372912262170042614808270120632234725818121013423363517532576935028796586701321399253133128341820479677169149924749403507843088762141323848266164556799904273333378551355519604898597386762782050958461543624528655820478220768980492397370889965499206497624672592480625610034667265826384531637569818916008637929585090284212330759276724056698192842873657529142884961800947901980472804126595425898883685953621537473346871541625761143192634598455092909170196833848370599578697505877115761292593181435559395251741563810906454732938918822775217295368664013280786047294267579349816959525137047742609006136959558816535781955977089246175011830333318766693925484619652476295005412146099576946210663833169081639392138272419743197228363981538274804232195602613493976207129983097990191478369968949696958360861307041354493146947456983250926675168353912931767252517089382285052819563922279961690016510939813959697684770870907375973188246886152933624996348857579291597874636035829640493658938225741242303752474111860888004811087448533293657232971747515403727025210206342650775591929539867512479372341741627768737993213273894483700694026070330293437794973626272863527817808717723262855434714617239634289061028150299178945974528732719718348500480483903296604392883793481883108492448684466941290338107319261781786384026158701033894128140666585593008380640640258838917384349724949392992168816644157393699471108325645968716853790537602592484722041805075158217513488634235680370979340914080414558906569464748939971561130812482896032228048620231773237249216803405643603209445787120484841175558930748212219926210978318861836576138870211297918013787474140380448426909225287030673778490987750096893296305976791298030305639507958589338171402179830647598777108631620443198310518742747938222761282005443162796607635095637910832407049547216960086117629992472163165845661555076564374883528310819393988565926415658968079321730318347456837728401908284600271985621325469238528032907522193123881423557672767499414150486053373276351630057978559347997578684114005437335978435664764203657467291945784487267109321105007348864782764335017203919758558763192161837551881840926791511123744118473969646253065680592463980932993945851856647131512713356254057914257496089954436700210645900394834850323960505090342822844743199782366823854773140351715766278699343406588032187592063766756177540863878372343216140224366755515388469489176889188136094357098889528980128824710846917628960688352321908733405367410856765127237778379221291003123103933351376329106407397056219384365170163629631584020878281548169490190619466275682166514824321626931869834251048270337031516061751591564874775262195202180700867747146436688767711313981643515620804221079742369725081703544693088803990513547217564501896778634513270771506784637309209337659901733319052552592464169844293821859962657955233393390114217396216418410572452703192968076898764278544955386840996005199266341127428926692936758631218699217907658943669074565786283667603233271718006436086913412237168312037364844016584868050478296106084191456650218670300589361825606173135117854797875252092154303720482113878895312243661766983623214192957433270533233738041124720624668475147497052271989181436646444839008300209459852497298976367541691526383254977402413115867733845376865138226806314664309261411385485049882275111958257514906872902964504956131004637802133741025188554547385167522839297491497577159281408552628747795913684362157831657204717282305645972548102397177568812569736865510863134484943964735034667159994568816216955827995279878318016414983010541630176668029374987480387951151359715008172098879292635133211277028719520627435825355562743043013246203907329025041389216502236255625226064571511664227362974118007294510637528124218274969326714539461985570270011050071796731183540947759311716092137647399369443101956196289613082161172182872651822334888150275457446501820030222644343335484611452125570270245856575968958622583803651091909884593800526623798816987138503266942336675355387765701938842697748145623421957897035544324387941775620479664063402020061493055256903445977497153647827401803954304486230042744756504316795492508599652290746467794146183014718095832263222301602053380156244168603990242251324266137443353208021653083393127852451540063998559475892495182352999892471317626594468739942482719345042914397987725196724358606688429856208327700198133681211801013444500292459684750114002860115443671219266729116106078750060836186815957895245615768566037747465280225811255566273399511943000771200934873411112045797469496819880646803444223313930612012077216814639706766646287515228133057129415286124616933730648546964687564957556963627749789374234088997396172306944728304812548149281132819920276677211391248551855626787659600812498499807152287684164428212004256385872029510741862357117493344211494733353637420835327943764737273302204236983579574176276144385044907376023723832468842126768660552570160928515977358578271622653722503035540015351701980164199978225864172650791205457721573412510841018416695994330133717381931876501470562141944964154718706909844814279163611572067298177982718722170301849675642145969648701101584536858578830355590228393479325095044554272220165671861929151321662751805901269765852419293050457685302418159877385730308082031277444133337769780439666777551717066750424351727039448687059149100151336836121058484296088984035828665094405749594570268009124247024036233708138714877062756089597182768981902089936641138785266374747691631788261128330271856096012852933971840089488410001187123569014343065733484270519466455051211854579653069982131686442140691451409605012861235483754263569973567583353506930948024924174679081698108785489293512573173812232210941286273708998276460792491102087412520035489773182518773297068129327158703639159741084562595481827484066373427981451062478408440727622982691844894434066901348036223983395259789244897135443352723016262621592878317219919324580877800861041925317949596043459734123549285365650382166968691766045052183210846175291000624027382993283751632924326671955427886079828688044176803086652400199055655763926141029572953138624327874837500186067116239681531922369043870440589006249728340062553482310593423698955682843199347674370678912879952009678249553545836501121817325616164533330118437478619338641750533134123810871607610489028488860109547969305228476231986032955185647386634457435737196786157971227842175718758162588750471129933144532539420794159098660765834552666347700524814496000575021673073368190908310308744807255640613478388942306419849639237633935033888869460423140840964653513663462315182833130604443285719874435994892604415855676275566054325509829883556651077199321128706644484047863225151556967712844636425242046629358013148581527233614515318818488746810034767004291058158694604308982279517460809637012002065276594025132785634751811320093933949120364889502210447605135440092552131395093922889931200661179182128120489334724078676856010490790864721163343686117141888937341130539945954372470520846820507855076901291199595302105041910013564095213085342292549820322643782407340200711602349430724815429716947062438225349241108760716896525576729690891066998213002553958356075212717509183956775907172725681030791681795733537700045026873998998618063409936152698889916676788338866261628227687878910586194555542985101675443050600923478827446686006808125643794453979654913367542930645923546725977053501751326719797592133604350150612968981265654863223719388006300264331951105410815243907008619945255245483200816888230592714146705596126512721361082054960964621566253270703283504724375513076521512738394614591749054677043920843490714204325171741262250588903943085446873272028831235873646433125220189925464400411199596092507803622515988967134492798635238483582228989219995174525178686041492971589769365085872930041413410636606227867365619090259886260068667140585547279178817952375624323349138805432359357734950750665465604741708079682672961997143167254394626032754147301867377526009938366804048555308395129229706787313951390017284926104204268062505233598212998882776950316812084961045604661206671024332177152747015349081308411786594409268546168361859873846629080916016340228923853568963008517544616332854630728078422932311782963189508407773916214867041702291649048693062092098759400391798849175068479792924961426378795977766137903691556702723192385963675416163837896149765626969084741691977870742382972726349199983242912703425306220051676593799002081046287009595142929890536026846771789910382059009892707972511135084113424203713488380723476528777835342811303311177619671775525279710951797277468037875861267057481536297656217518233282785053747814014580630244214768321234640686379629589285363839695422292649291818105402028635939167145459010359985317426013921543677206074816267809065992268014158861100176760633254097417918989651929733052671899648613753880674997182156591439024967919427864382764845858670867524567390277429704109761376218192716119986764166372539990668755904608445216022666979662479293813511623260660442189322348403432290400108177568839042273419243299747393240926322556080585235811989609544703563018670030596141358816919086850216091508482203003694195024418711522030662146077997268356270166634323157263515022820544105345504045023313424636837823026966497614876971142218860785304454552522250976156874818540816298414506033131317402279985240222253112997278146515158713406820908294061295270096611714537040681509461311104483435998232774886282672758631074719913045554814097084873563390948990217093403774696873099029555044231511569369328818661633525468001611359883224280550700609087349860662309038208157351021166307818267076795237874661319118362363228270180965488277546495020207053479430193737723766993441132283939112994817206869900141750069054961232430943022909747137964826702591453482417571876137959595474456416692466333911438927299080357340178683555693879190812980357372574212123935440442140260738881657201229489067325749519684617467130490461841874727960773660987089631437472503511734379529743365624024152367482365086635708320151415178963439194471542126106644519367855018544291124305216811864461646905269037781981062865536736488169625485401506024365751198416007845955449036280853373722545680490715359722597658213433189900682420605036001580224153313449939738405831754204968377895416492298505528861236464969586695409737948218452781269587650181639370222427281990298079886039102732555793144820708034776481964850172512176067071898918038794307975228687066276414588455038588201364544218197946280356492660518950604299272578561299855592012622578494254679959724141868309065364639274674467509097731942453214974126479877751600203114589065999371427671445464551163049820752946389652531600257704077982483186625301285164220075789685959959160582081633440387366140625855335974141173560060174643807116345963429457048571257265230218720665995093578381809839557848845343187446917593024250816971286979812471897163343011597171918427215921122438495237490849590980955707461551081482046366114532018018030929997108559810357216157676695904690892573452491288096979199210590870446704769611686665204036847006222136112193852105954551844979566522414128384974711906839599423512046278582224273946103238207349620045581753065214416260672399913962699899389833046151989324073629919720712541977631147251631493758131657109699513273077126429009079696804478248461773295324446212845860857928978394889530756388249701118572162385601957760590503231475945891132452689658288337959469626455878785283122217731484172773228770091129871532014548974326697486356202438988463638543169765041390199965165288742242475541654416281812355408587534508425797852513649253727250915946452469562723045482525675937443504604323171165944335778953474522517045015840242212755874524214781309505755483229921432041134078093050179159615060314027367232669774128496780815940936779200393331170398833804608234600985948526506148772664654976653119885608280504314022243332327040973082076275922017129746812264887759558163403663201669217933829278749456208163260134598587534194807900143557934517701186422372585021731175587876695852249183052850937322069526003647072255839965269750065316371653952077294282339272093898424057559998853894506413637049584444994090451374738202524878824247233153444090776535751101167953009391056744245710632232286079974271142734543651770477478792394895839035657205825367590763023865264159591028342112073249926748005078540351138014559390402549201487262882207458139224089382744913555719527529168716785814051544934983361145466001927729527037338160353295128297336542565011366435772648740043791168805662699126841594694867277716983393801018630090607689896605959604847840229978838839397949886471420791144100357711596004916070033974059428010928655135317051760133603969404227020406574224354100497889566448226630426781658796235140452511877462613227333723791591135246767702523520166870344543007117956424490489536017511623717989907623505445413096925801231472336064398535400819680994334775941726541656044794767827993924947967635949477063927642623078917065186592323286418317656712775755022703847894073756187368216710640977938583324631228859726108493748355695814617357693082850446964364575298638762856612887418470815348528139350692610004201441248774836680644066064900483411689135032172558718793263068309994009879766133514856949354116453551277261680379522685865364660089760284073053641696578264360086203412579569020788805462385665857671230095422203215246067969478088311434326700159179994964374665710990874311964878116796505997318077938305416519028404191877392179132602970253287045642345962713683830720852106460615325270850273663040856553071038157831477517676542964521072857700150026766612120090775025005850861973742184093603618189177393656624495093247783446629662897501694451130061808400277180474895123010519866106611594800270747205023481375725120672716073507594143948305241370783935862365396439161033149625703017365523889435974948227252566298240383972415102336759714884102887730118419291108401605292818075639699563106883998144715456495356360617879397155290411966589595982021349017569620077868917639383169923712912119673379595917374735995506248136318806300325369008148223398909454246402640026693198683631223870264394281210882277167824682830489706254682723203234412029010448650618586904990850496364485209628225101268071938097757462125667440976650024865238387866579901105549213899212025531211783604950223490041560372477896206421069280688676784901937296984618119237653421522628861336541847209620473065047928358652485797109636123712696455925339037229373933640929282275898014721499961870092747901160688014710015911075907130558218937764057341500815466440753682123425719483947355458359861276939309411118998136034777376150027954889802171665031088739550583035339181328923854749095014534960446703318616022035288180311412054310406854221526933265646203154019236733905638009285616343940320435862517319110913358841058353251168571338900184366029857587115193075263649686958321263227119372359260128827694427908428353966993414568261867029307591424022789901088189828919785341351686764080502829669052951673158614167424800160006564768162606919722597411490485714397960753488351277099390921748299500406620194980012392466980643503861242861670888624574926839871237461098838012555251378502334721199895547970437812484747792827509896897188903200334851290384864490795660851467839803565504167917017630396204021981501332523767425609748287651356794371917329686984502286238115439283415511236800739771450028364127675771759963786383075966030127683709777980253391797995792551927281684900822256704414672902052011257817444326960273832864313940373687823878213085926240526138923241521041768475389235606731161175744624167021988016786995887139564809521276196786248251858344687020428577731613275475110119712831239458034993596692298544236651332474980241136295475262407129014175930866089886220529044101190612469216728894591850342944616337439081237304216099771512056766126648352218157709338996809349033191507842646588536723513090124992516728285308823356334153900537076401838304144963935706322594514451558952645015553405042257816202294535153569569715869412775785240741686451767265256765023499168297067607415703377732332955822473987998537051637351455493318446930638332088550341186375462066371222088504397510364094981031744094914479649122693944067048093196364695563118244226040827924409423244960364297655043972602677027451946950341001353558247618892546096300380559556531866711324228355808455935959809713263759030738572016756706032712495957987696467991683831504629491910847631668765051024475712139491825938852502530246277157983453798931191526348423761815287800979203795996039140599150735746643717797555373663976003740809441933257555394309366369363561273656671226312278798457314173090461858003277533018775539208999219199913479216709858334699033357031001408322915992137847314336837029466728054680704615588929854969824986745501300857195828190951079146187959548100760868995939213158499570536980939270243913423491149042352886366742410349619760493275305281661548550906269919276289249928757577137574540106663821699078857538394489229482572153985837300068640977161010837022522368137677825722464569169332740663959581471625459528983839244765305885843491549020702831363358407636063650282659834819800724797900327321760856198801137639499206858851037149660531506732185803944362715587644905678177868520312730276175888732505670306588492741280531316922688145840506247578814370544261073935456618975770113960377571230052816617248509876938779875288635586523414768031529825436773407180740163798146802164421343988753466699899075794541151712259962702238235911847428326800993425138364725221698171369373108713957467646613224754200173351639552324944866823409252682449166830127404650574021126829812209764918800131484494485136244447726828299195694837074532663924815755907129877455195005009016939689793223639551076055688601941241357139346583317216094705305017443879721557272813205921634807294401850937755378802846806867774899309164020863434560503012999418679773841045212530912446438078543458053218380120378415976933915455963316408705761427133073812907315123795918711534327694577808732758145750431944044732600287468522520597620249735591681633687936213744308399230322295841866925875715071232620891846612712083223590360577078802372681247133970654396927041812946422235605508911267817314635940695581362032953446319082492624683811472594586737740947737702768357790067156273673028020900631506572833463009478421231846509933460496088902716068890919038922335520452619945831280868275133840723788430378515339865004043614700099294306498449469876209992449733077760844376807030455515531184592736062742113551890742213015448736567148666275299095763537214190025985292132903608637637487947775812472928500644490820421743932446636492222428594963244659839892693609515025126551920083683582220010689195029093801175847548296604092934600253849273197885481106599588804934830591181795006439167436086672778086329031306873758185374142183023886018053331098988713621749541026829117035148498521540850066485677856751847987496300145697081845219281629730470372598094446622836519789967250799084123570885859484317207242617520415750072178656273713409252351520212822328249064637366794896823111061437044933521305719928255325671156158376513052766713779504505825431098002093365159926199131285829363067732311076416916448034745389452651202310704540140485409200197849664069857272169882816481336069624894823731217191320299493538979661136328710885441273187639989212465455874062110726722139148250194982429232441324686608672149393467520576651594256236813728910629188288681200490488981566667880786275713820756531905016351930277128737667379789087080543334514140506094701071582946555006213685510820023354826750054387335577804384188801640759846520733507572214826524358009390736761319545356712054908962892479884613579296065466317636223646585593483602777931138934855169584709481095135664493348977154572720751691083872845405303799611546366756581216741943580390562136079788566508394775879867546906963155486781419419729350561690061720369652135300614134804500703147236943561289128298701913690200715745772331507334221784546507383858364983491968482227089331594614396124378265456120659197778930161368186126367409876929698926363629799261876946544788758129202411077469893284408677249133388280742228306892374659846347569026731171466398701579009341189853075365962505153555422508719138266920520452408241951469806461908551326175500355890212923062325421143473731630699603008281362987241916256321539425609758052038497131802461873710390328815403513995241433991068616226803601037027457505296476163596130005897980523913491303082830272241489473639239198941283759252486416244433475396258158582168644668561496130998168251132200121497008003800972410000520771375697306035597470634570801671988665197450774231768375111597429605199819118494462708545712224496547073394592136755959373191135497519702895494728313522716090594365606078639005283785703422123909898157743165790064738723194178317264579160929158389403499619453113361499626858423201944028736263815805041965012400236367661798705068616122802443507973954324537359052535266980820138771830361182073819721159391098023656062913624130981421455258936341348401504777155825390036816208899446091306425919113112898863749403811764185321891076415623280165626320390002767977429796941717272443178950253602063599279161534833745302512676505407690234705165249532652868081473294177552280442314996449746893937719977707382911853312347745159831341697792935328179032572888276944288728698433966866227794742465322357403345889909372125146454149634421617284966936390081852083379342888013678291955711601771031273515255545878537850107862476320523063504644759118358751736397800794194659261686465764093965437113237596677831954946695360401464793859448443006431470683978487518350585858775833213663438727552174478905150754652220697490127806373937404082954961809148363405534971136228656974504807016178520667930301761207521737759960807244726945813236831949143045343459949637246670444262111134495514608396550577945963324128682599327553946779255350458233558485032710651030734132343616782808740746487243865404548999348640299395728102138467651655092444593642360027398690402006826506506541626072798317334960698748238991746294897708786956121366793385225731490729836592306508202604023746573057659132158937407052447125175145208336742100157240646612934468260393212152687018553116232447580673124850105166901045259811329611666323542592128764326995815753783524532889985802397339269383278491771458870266055165721488629127182113711776786822622103847518363242386528418665760799547384314684815610363107607972615524395574958796283054018556457392129768690788314064348063982746576846611477645223235592480322262880874079351386368482489501616147036385811608915602322223545516855424146168572326523568531532763511269192767791592921582118942457188310410969152970746107855594058379476660369271292270196282703822390027906131931163424017782921775534665828002033332521594796778667891698605032603877193394273785700512104298094721727253952508550830061653971497720683005394493112426222824324775229678669352697553129924509445543068322485972927363155122626721646079726264311946529865047716834250505270159903639702537222701247793183497283753116017564271030820174784699069559018177800966404324255560652284808819769132724944241670873192575531417376577353303620135512733534647071145612125180245791595481971665842141296655668841448273427529908612124478173036232419568665954602293190802240842762664173126524896840996206130603662962009569858763324011688276475412973528601546720237443288361792331479310823751876060674920639230043565199490299347562122930019616355005597751482026497386558566883354237790934872615962589614394654944551202611554886326202854510801027013633065144253663807443074394994311153628283007544217123973717650562870871487387072344186180689918940444574976378245610543904328930354700850142954610265207718046863473847127834034442531818179474550143877772450281745520484850440366927414037990870364294136379743076988955256381448029618596890688314491581385126697907698685486362355072466014380118795631983648100156694117294396737715608129061748504618025874554495262058940722072567103255033563001647954289935755576469480318558317775315130069001838494633244895851618647173444247394829626097165409536667762827813124587107356490757999483621829051498874510545323634864093404720139627840239546394007655220265178855437681467068640091793444082517656256570726029073881832525712711785423888385162507600836319045685246712066822798120943951581710622547123666605604896600777583586527034989161523984125635353166672083756670164476759730158543715635902535626265928754427929891413400616581432681220340717075224169815205166253410180209708820995929650490135818647981876497501513588969828497711251613202906719364975878528959674699266737831184716227972122925141942751540487703263462041344998290808629652941892163539668289263418965379692263912814469393606684695770143304695420429427000178667918784182329558864401071867708794908448506358338472543756568492645726911591188552245010381352333054490415732444464187997192311640428858184026576958797371490963506822400246652844978153156497209289972306413325715864036281606568941903635109837693682593095545483447587203053662566387491823566753020994550517132916651094607877138238969367127797651503532131243899323217230854651344916520498076301704492459599169961508527650995356837568883171729974167470306247598625907021093470961525494744329597728775447664812403299040425254793329236748996315949201795257449101942706126395085187329303751313061403809060737313804037617797269165738105372310327596270953121195662581414876566500346697507690349936988644152387908462069978255383667784989741935925186921765231896205314880210840326262616050988077379923468433598148093855794557341341195778718110544446563343655785777511225346949264922178096807973172339337954035904995522273789661955101483864396238103117352252627007875151090658088652354245892121689244530040062073766034858097374709245624017821467417341321709564203916002303911353903358189548932791096701789660999734589763871482632557492848291797297439295707304654681758739710779481590680641446840973063341382072176622881289517484986864574446281005581321922745937752055203328915566023079431034599212093202359636489837279323558351978119813405479616198022734205173393825615626217993291578860695284600890844677270124494672047239548058994633363904169079626597195079173062359384843364935037376622719644701245908679264747922760226662982788671886619421714968973063363773694155734841680084927156960035778649407042440741311882033913432027874491540080820122929255266072906771587970426997917314858254504293065491348535726494457768063060659388153739312083114240113687205737386747416662989306216202984678131943281913300756936011553083260384314602757727464498756002591670672522682955110618927981525327221092612028622659266184989192917289409320141705534036489834698161293512977143728174577852639716708573585218518549440831297536548741649811434895939012569993286893115889609357376419607607443220028308554773004663987045074807980414658822233135547701096318897267726196863429749891056195348511909464591379866321761532282771261919485838897721366602004284748262177907721766362581074387682986404664281786725053288698764950432197263320707102025372632067597255376325612514289872884314588027513066817681856488867003231394712840418919601412248931331992410387658797518212866415879938864979031867913992537765080248414292859594320576995189730239779195567849529078325424857364419206386895738480040135899986440288100726296807687298239945389919052213432001233983001059115159700490542463119252580542457780515825627050186588194290696021191745602296820901914867404293570769270717905358965228812093770298324524930905248774913620253172507406932166712238429234160814609683553265940959133609682877785051146336965894494804660269463342209048879487630920698556342010876211960271012828052423459375757579468793607764761258543479760865210685317003851066004388771065524151178110301675696359595064592146948758607014624223682754554820313500630299919356843552036386085064866614417386432850037125173662342851457198704667949076450069365992852224855004664712671293782180794792009387569300935313661113063900073411013607864908921849962480060795471859955983223961569253149358578604560643500874988855113285011256601505688078127811921004055426806623431222433070218927753388546207966126154791409458373708787915415829544331194800038427207652996600279359451934562824271295320472600684673126160535998214279108187051214202425898498641270666983312358312582602410736323346874694929978622219937911294745915070293801534431011800055423586182316400391773752787880638646081721422134154590549173313622650300866407932388944225680686468461506746418801945912927283266673587593302921245004769640478841821899546504417889403986457135703701217586886759043905406692193463540783698233603895531915540828364719154888427925409581943709485722979672599769805438865760260531332318426036359775058312187260294863178765658400604593059103200639862627782516554605793459066762822471209210837368540600199188323296878902188998201205396751026457767567241317998721955051270792631600162628449830476721552832138910342809139641190556296195692560389298751958761810606099950276105886738005334864596262985161471259985742651366555133560584033180802719610998454288298259648426560982011922022089423383531643644351051167431436739241562313698010226169762273197695130000308124731492430599906045100986022900764302838531492000548012156628056361252775807870185792798211193349235879104790170529670760730151422694448541592265864848404826414587672215506669012276322430196941255334811644359616627443974212193932602585823875582185660372583458036812691865460195295428578530932595307092339199873139331157380659980554321494484457266752213167905255115664502036536411778393650139924646783388862543460576464262756191074376959706508351203770404319265306928247544963300796954770868987383556163113766187490199639131067312722989216141406348728683021819477570253693994455644064711981752959535246667259355606862085218200383756854530653153212329030264712220824757133152852843651830404935961343366860834315136866060425561695727003338078079062759981771209603216928900494969750973384800629415413706799699203797302706799394115794284651261892026710365073537925802431054785974729138652594566300864524245063228626468372587169314967971705738991570719596450338982782329528988997059266182346250188171148577007330233150164407873867267748156510011386311396444163726598455549824042439691497172239381110038748673435274670106935963736092873849762863549822048091352895029999626757637923779979689443514514101186905167189342392563522461792523531979219407836004034965338830068983659727054566882584930135196470582243854453486657480475593332036088380976341949825189233297302428265604066736410108094110085830065867379648350528940271152247561248627601228744271898376367502318617448853739217295590056629967457925099609026493838154003034085182682499825075644315641804705582124252620518036545315488562362106571957327781831382140176466137307963798365495807415857247572125639977748162049950389599707588536644945745742742470600974093538131887578508820709972630171464013385573842718419630428850733484486017901800637940256912948536616472902018419425773689248464774396130528806364981840454457517171380747891088825492493224851570439032632237318003706867342105197995946982650121511580476847169726380447073205300579126393423109146723823369633829549154202299002503522499837137166190291612088688474044397863297327229810174350004572343042733768264836543411783369578325732175647900207582132618510192163826850773183436631230319938358619139913778642840146505072845015864484886571827336364983406248461691388290560521236731506031026218709460731081810843754829357831680498329887179104569475170147287609703420745099677561196806694508789935408195333741036949404022897555523472340537701963033925753293529728007108310935155678877404865734748044458013379825163075319329002500729747950504342679770114245448259971264256929954369618549398215746813613934586408875308394925023230528727313437321631020194802561043524967700519440784256398217032988869937849935483870718667848261379037920132764413801541484271063480051334840426689641430840493948710383302356699438604589617495363507406652219381274282997319350553975174231007944539908876995399763628181349296233424275884456385982900462595003120824006527701831306566606245960223779735616542832113104251757204075420597350436720507123397726397375498405309598722205057843566259125225994080261881816113488637089915855468933665949958812566460663357409535140841860654470193107258151206389137878704189815075264517504857465053910464221893605502477405311702784706732032766441047498786272010120178969209171474189537023052874212314062005136363963581279259930282644165779992945626907417106788433444354871989017676580774019875847241378301689406393797006281941901339919736799546357795451492911481191356131046270874306745984160706758487337081555258401623826537230453741261692985330244775661890029232434442459506808539482642445749904842487394634082379198216012091971208051561709624362931052728277588596015780565241567900693101722498589893619339979421347396036153986002114676861105556185117010515006581802830972318872549019932194665798563652252676739271223112652269912886977853669120689268033124474686775580560900935339502530592620215945729152272264085571140890082205870419418526393126669894619702237711642755070262685993505506254894392782463193592551903974858510335005807509191497876558876324272739967182154727328550275572964974557504192678495440479612264283037418707680294512586241274642316884404862641217479237222382436730144003269554155126414978139842901412756733606825387755226924111273734290327814238937464503320840706918488823359722461628126572369233196109762155703407434184884319813728182609269828548719338274708171486026979142143136261073130857983490205836970551191674003272017095276248901821099088457650804129591311686866556860012444468126668566034419984585950358856974585259410583085128821189865305344840233140728083243494779809135223162230210811124966616673977213415108351760508003001514146758361328441606240786848552781299257637396238100918748364714147109413619197103267885785610905840503073126451760973151796931948012054686470888173005356445909779251605980102620962253505259672731735000280716847155951654129944317978263414141915921528819251011155343742514290764330118971305254714273836918931407546164798477768252608426638662265888373533139022742909748757591861543798851621588483687537767876476506203247261657863609898532504084604776896519547097673931040529031169355519894784867178620969247202568982216762410915649496166210990557281719459456620388349161787401196457808166102160565773966401490343580675452974586675207232307963229842699393634738361188038925409776639645346646237902984223541635941847069186163546258988804425634608635929801596730536406447150367960709192930362968567253057001230516045012966362919232658872542907920238212821433999203821039077976410095737879732888643518565228209691263817677318598552336859558871149109391504181060228011301726648367455206416170285173034460553841116497940866450142381401562879924777811237318047042854729345399423578517502526402240415635057932125903093963898358653494675689392732383082367295409370179731658885271112446350836149484000811891355397285172296597478314818671954830144766179397549408596258091748430398822074990078603251571015666004159517613963674850042999701761402688463600677702953690769790533431932091821573415018426309961515231980876863792016380464516539188666696563018140231645952108657747516189926084590130413730491960449865412202342185192577562248777943063013030449300889946546154289158742045804365727515931810281211720061041995944223645801253646088590601110396809608720205907178949133086057089047001685753340676455820433019464962109140888635814484517614688216983563969675813477858157192169499607962818772433193528737382968295305504857229378372489790189807055328446440778838826664690305134135172175249471799201431879785366918002694285964050093311704889604575450542075004261445515226546826187900289787192045999949875841646799489127963235838043642362251814029788884749134709132894835070864644989007196330748466004865027290652841656870376037157030873951950240744494783114130490740825490302965395898060972157059042465672405623343900831322255198172402357757793575743225329380850799437647356391584257232931041947950425364504303642211713500707917249619018094737251415950250850665939756524547641994970134613840938533174354344192498144584061333796443979074098657250068332584283933187375197031697061873372876673336568262620601583781798501520171952989868237125698719300909822565322837965783520297203154265084459646203969636692341377110076182339353093954917163749521846448674477885998488063393681591598723125790286487695819170019600958390071440734870479914019744050230324923685865765514731552456882681151580847566596564347133768600446024067029675928041051086490425459955809622631010834300295261034163798697132379239283697417700489335841988824383602495636624729666317612126570459460858537561276941341149900748342675987242996177817051719878631756958454185683984273769022508659857549351536595255487235466088817109701548855938004452485709363099579720285204906227492705181579041753246459934338529804330342130678770896137048919100755076962841527174725482472009327596569885499186702823117349113543474451942396864541167782547356974424613537215851414760015122140972216119592796128879029365111534254757962405144940477213288548209127453551815199703741873327460924986919522027255359350600482681149315757065165252477402611017124391159625896951167578724751660627972209359928050471933030062673975805708877367597731833668350214021438360079996633166277849291117159060024307959849348292384906952970948935248512320652903511107904625047934449312057407761383126494623277215342650470339221238576514954566069447793556692141822916025400829943859818656716590167325279359989275811433727715007433512442453057821030203195264750501559432045837591953244271189936125071322481707618845917764039393889409160897232166856142878572714226218998554553532602686723309962935839774007248862227930419191131124848190020710227729424779541628971348489520839272899209149194100867627464324123156813379490580695758214487577823072581615815187973845873406811623288264936324688218055671010007875328254925534808547454601872109499341608197964727738777144329983048356469466329134744613382995090625141399753932727802073208059636426350890559672964939965859827266931051371822728404017662023792982017363466601875780404824043073365242700497285973691026816506751074943760595108402314906473178447565864658798860813544875000547625201470381319870322633522351002699151046558972071106626180048821464271483331937386933386740715687987307879105535629471808529872542762337232392422627780904295610621712975658684202573980318373450623741671647558503741752871302715576952351011703565393203828603087369568217689318949806803030547925220682888638781853687784827745390306071707191919902299606218145311845143209080948617923872603420429548175365476848119252733848214741003277597432297087244457095143288677794496182195132186279147604659218580339425799452284167569411649882627551500896848289936661206885445706580279683548323765508507358972718654581599226104664529174844285843552107315207301071549476945382652522528097972837761644152225249059011781119020560306565619566613992087851885705635604981115027945039782158451117544720980055924880049958882528408882899147107234653294564769405272453978879706085550331762162779078166413392409211954701801012130353560152284209915861175608187643208088799469738884070485852357764612816237502291671740002579393382771073790067840835276050129008708977928655153049293373127375358924580771874816708997805784728313381478963097712222412257849303994076810404972872183792082394046025712764024946155578009498718047991454302191895912120061354096631566044611019269057127206055290946245310508619416882924104275551853620550954879064158056963066060751197882014474185769784353617235784406575268211786081188012092400646142280529194181365521684409384708813954204495632017161147413628270608985721865760426917469931056036590172938098486987124769817943972771765153520078845048823332124823700771871938632848208162851320062902726556190920194966043955282400755541539179347196024555538718763225914342345801168188610458146747321452467505107150718628842971826975552466487638799683993616614869785286295594068446882183077531899052453605763727319448431478149799692922169143179236019131496055949129190881768518016741136161812476482474622475965343416059105265986679839320100051245116196959907572878343137528319094143298452802053983539204603907443015238449129924311669598652403026310635164353449843604971021296267412437311728940786046134962315155791498143621150323814330578443562922515848138649087972500775691519960867493788438971887964224726694805636137376283627722200427335808885522281162458284451114646027214082959964131151508602436949667669758463128321705330687592743350495203725573312490555149760763509482414235901728800491785549376949626289394925636348714984998135968434471464838689274166006192950137232911678855328339532847410446755158024401378046510492793058809163477433858607983196320304403894356240677076504975666044071605767292716827626495446347136685322997371311285343234789620111865423304030968479135577435486337978773515428243336192027287891179033468099717993996728546728915525882091625301688978016958081947677901383193586903923860167548057762037020766192300604754394222755030928265357733261743640795661024495650521767333152175242836102941427031984362720915329483942049965702282322650777018719250857530511872252825407166387994223014367178170839772907475695250764605954211958689070737154449112653469807685488711293193727919083028481054827321874516607814605597433270092296067853900800476449312777462468732583395066029380942601434345084699789826705694414613329360104122327168731446101389535326980427241058688250579920013507963181878447396166609339531566023550773469302557640981468281790981500285874217306457003043090123322929691022793830818589501430152085353996697288169401952856482206236400602311948676797704391284346394274352285431271077504572833785712510041233297990655657028218388982585856285233933824128615278459157467021485983045545653089233355965020781303990896059152981252326639745344463452879589850965123192626419651844858119919817409175691135171566025945188353103438669024311195516528277758349196228217754257785295636174904011804772668664817351947010194070841152756746734616536033769157802997189185029369974120321408817644692980041218496535735823303398507879142699891768187637493642188189397489066895120592689468338220475873207758075661879527053810825002245355666019250268941958883335632973652119236102423443504557483112618590890450885200171265065088217939734081551338723271423175203759779634816992952897865518406441850587909725389407434006367322209463576587808794632079408628446242482299540388310330216809973312145483805199171676151355707057725320502155516411437583767896519072905963795300570022774172222120932294695888683412354196267080006980446998801648276522554080800349955285639744422894505943775984042769860761715524568177013623926428156214701126933345865312696591603239837161610052890445880993150783333896714937925168999698911978610363219482773184286411578676291878685151208003293926347433151284375664768278187111193967186830688362638026685036097646299022052813278400001336159897802988206341866075222564765198664052077905307344791639596846508983398442956853761474080013617636250739254155779489486083879040602510210884491761681457549580056361673210367205388921890696064711068607898464284642800431724412901657682219933239829510762079530518982684105096389636995439375693766487739839228137957517716401009201885961140115415692121068709542158231396159624490903920654357029654990973116395809898393811045102980131633990403007829444161989419413141036024046969527532890923694001093234954821028818939300875933546080839671398312226482312095595915067135359393775058031475273500500666242393949308506735905557160902604809942255402332818503701730553593561318207391419867746937611277534281642158984161535630791881520360030096768022269093888514227431613807258788588168950907840221611988598704040355018093677650839460536309822590850981564481673466753445291224898253245843625928217348038120838906905745149735360980249831349208168823686843935795716707899870669373539881476897711294404957613421674035583430819304941513335034045759470804463458461512062791604376901313869216609600257778744379898443612208621748456234500001416280883331692399482576636535744200645593631393703497411940275006034241106222935761137289161168110866828184023205619725527829005090273455576911457956601836383385362926391950458669258039412465630773133207574079725534539928483221406895996279966361980156558052279971911255086052299503323378834331380605005532980423121534550063728170151280768141760161884337615772727143516578893105060893776257034191068188754213286495373597637520184779745024733952121654671490319895824627963150269782913640216460512302170980640542496352026470563998206527975288011995821494126797954547665347685358958492840341044835387004267058422749695660801463602394341290760171609395248411962781933002715024223734489212727706988238501730451617605995791138632381270514927104226657908958980416730442931669645173482745254983342433331219806703589456229554480816362999619949202812809314578930807740335327843240794283753068663069032993036398944912640191542128176151157008770793613093562641399949842342079121606635031855745728522960899992777563591236373811358329016081106747828149331757502376166031699700114555420363204191860571775543238459515556812976752257337138029383014950725864018245522930857919076392104334023062527629054944871841111039272719983954235908047989655935822845694547037027330642033724890969171671548931125931159539398563491216525862373021317948567699029647305314855084789561125339762718588605549740848741515678682844950252049826484541919101076554780038835456000795427481972537456427258300839645066544256347683837157012074991825837115986907413937109532967001327839434623514985354702636944819918799328780292646770769520001991973085283163861013475347523947107400610046058709222583828186456794975022267885683330411599976024424984803190201620316869413797297695502823409888209899634840255152314408393057180482864654059699592467572223227582310428479251648141679610142853513499830481113515659015849457814763985530355658258760466878353692747054651811687489155920888042785903220230329649559767663384914610714289620228229652767879886425889484237720714481248275074148646812287824910951848366662709031608407557583740805722055801859572820071819610065627813806831426536933465155177938514530126937571310163240757867721274579828121498318485985346653888212744290739077798665223175218197503240091818990746167347055774847319646282304376057672194114199452249597107606611164951068418330489569376134953385831531220215106094422912181022947755966838193269644342294045416322103105185994030967737243536844995157510229681934806617010422812706022230523418272263836118468579797962955211945764397090268963628023698317854410763393326820632658423236057401690713589698705269853104119938967527970352736464919084369604886604921410982712212944041120300895720761635359026061125877738441817195878626106030458554167471110097396290016835189126533248812274881209634490644618986524895056670602935700335284249565496089574908392661978937162656232003560740311191227564372346683593727266030939010364960532256145237264068888720998266831088458020086407125042414205790838165882730447271288144959322226498198538667050454040225288486462005340977082751800685684344095014025632630515373578714352117675603387150898159807090659944201184170056893834702338136393060605510261360489719180788130148557553153270619594777419619420458042200557653962671609605707367453107423671040137614380461195876083444527455979381775893581586896545657179303066342884697461136029399124107493572264907368622328577639510727774948547828605430226227605469151358627322537191652702551868366829193304994437691368495461250054568378451325799819275764159633340988212497306391522895009424844890320340853097576791426940367461448196022858039752951134440554966488403603692795918899285221104099747847612174915017455385112015026561386334962962974194680832652454995692215282337816315177159472227948770794941252072966313763926748468440528818079294685668648260161180806474116511314194641589576870872829772447845830854976598709763382961045580396862564765314596876365172354913930368880059100238025517638429317338929475456758506603237260591808837786751098189822371013383221427495184941919808562759536781105284483106518961414066098372984204826351624865338909663072010125008841367139781757520288370519146518486349575487188113560933186397895799305531665879717147470960179913809835024653762699251162713548177967144237029052710195050799375682488103098232865122454046117340391869489665255886668189528291976783236709187809496325542058306722162124135075513125497453354322790787679499141355462865863840576743114765340689319762528032756798826068463348973461116542616400591802444027706808837547292555382386070408109655401788824256194357268139484729293834618071679821694370086860265939436896625138403397999275329336825272415751280987592140710440469043636254293204189107388138137903371522035348443714802307736081487362519731053767465389879174566213298466205322949297021076425109498660826845091877992960678615509910684983726532104016048707985588931265327260347541935194393806401661786596681861949136551351221781535779908180560477364093264772562050843864327778853717656686799809500532941857128706592254382474494876045218029258285100532001557120625454477058147018757241338320634816393543243339469186595466165573823812910504108805118725044455528112221248061558614846360494174596127211105118005177935600745521034933139561484554911234581178974543915032109995501475677998809233611274552253236458715271088718388976034027052892346996587951022782000752513399054303370907986227383789725151189455131055996539023010030688125550104367938077919498341148396371280377232109345744093319593931046448549598998499242778387772881444546952248443086866399885238508294554602023564226068123041887429706646255307670679143408446491916862202704891343801888863873640126785772872982687071762926122016919140773847185889197263589099887666618339248449422620148078237089529365605646910700499938916068462762572382974082989452931303396882049615002769785690296862384526871049296587286705929954900086358590702476681543272627397145889900479583680379553364545303494087787012432157313046578757494981283760342777429014033264353616023581645220584861125824318496334857408864179433743512503445603515029213416995475828727632780063888297048960701854661992893568706062752544011669108066655036514649467870186509418677475064569941607248887681344848281185479092036730252167054172461135183646498403154353828893677072749373506417038874535798252622029758275227740878875093847522339498775056609552103760657930939544388328656570130488184856947636491032479122095913862291164154582183729462007034880499717141172780854544805416160330143751370226619815099666966861779332254513404427763813451966291194861235621630941261520864420649689611356321172307659471524488012769212769551594614229121520998674347289014434421642692392395560953482365761577606400127372287655325522682051318038879101475909309627471673585076418572678518682574705088407738339417346834368866809897547645568007699591453532408857345107721782128823318400080182664994271842912433508628306796671019346946422675245060329961757860675529137922425391095544524701615654953125848000609073536157509738406501119090358102872106264561045641776982868203515965720760953420621184851903867286278679346785208518424105106542915528565102895696544813324675813349475056130399503667899702454358684821031816586510058608619683299574614090589768138496349467129082571024389842067176370426426516662311559245116185306437079622017027705269279952496710245973524215274078767927189945720659877622390016858267741185694713121271444996825722184900256879585502828670838229045280865171445230384220778984436287992095439707351921251062708865704962916391511028897920256128748132880749846051672297838479644509492463424610443263054444219765030233276189149087992206015450236998001011265775489352875496965536079159044215146216673684634962383673049436946976717788822883510422455180794520321390041518168129897341632312151366893551265537934565520853911875082539672583440998146433399364926233081707002440681746345917177568997079503400665177107078185784247706723209209830755212628767072373787762280892845328382519186385860245432416108070256381601348051447537899324247529410028430713092649718069720458366980643074916364637166295129473128282945010783078695178936864823591415792641676509465496448216536291612653361187860863232294518706681955934580544087623732753433548920385693906422761665578192320205452441698631841030994539319322974263328996856615680868004162418436516549130132612399322420368243197967305099201244224880734166728755824244657272471368499674926537899997856735835288057471929951374009278642943449831058464374258474028887161916899510528681604355647643090625016216824583419499056819241545048827889860545945168721618801480477830658192022208827586412923571054046809629525030796901825567336959870052632472671689943473631193761515234984949723826250244848243325021887720886134957070387070176371306083646245509317499433176608941123190289926955881061732602336235628187879775767499360690493148499943853993999490294463068416143005677298505369135627725663877570475076193720183708365633982491552505509877166634676195871924041693804241041170608058447339890926177007048806069325159601754747351412879667239442642205962756805403444935657912704872770040271418526425993818048497753848774337382103539058006753108021126814706797048148801355622955230289817877741151113995306259594368522883980714697335704599774782618216748966709188390780367902010967106518564165903122852175649430608737831414463403462796644616722252531330851983390488470408362929125926557348190130443303468447752618767036440711993002877123099522419797604032905738941073352286100358682037477647987714759697352953650409119777637849359843300014829707502433798120565726279313712402755542391692063962997561645397377687642413157825595925613222235926010395453817290892827725156936882308286190974522151734198343121784000652045537310895859778623722222969654440333313371037094817036085032971283339114526443879905459138898083727752053205411025450204126843212582813967683546712748844041415220661400236225229448129720103720383459275001568280230621411425770882969315581507309417238178868752993467584122514186955669843810851956798903328397808357005166404774598821734919564930110897424525698912103528067663128067447025554942990512242052191538101188831715826491140091325018754141097166419973743253326953342806214370179051030273208472536424011454578780507135206890632917535240332324921955732057599962856596398844201911713386992674681354619060981853561988962714335885775377472247200258584191393888333420541408195839841638277474782731121871532711395602025056409192694078930193778014779520696633656019051731437536437999547908302013588499519696882968329247848511586602311753039890497159249020343445043797775720291552662210934034768034980810430900091752198437097455920751072358932295685252633405250198897036895161796671164280618234209818146057683051537432163386945829561961875194305432817760993531263366289186987229674368515707439084990900395446878537699892972552976976327611882472776603042390660572690753576395712925291034623435888488233395316362505448290671916638340954586199078682982888978357213534369680266373482965662123796173718752814420847529442232132276043880632377430505778443032006984994253134710162923342100609408296056742797491130727730046293497269072487249924470078331491121811800988895735568515335723628483039842725637733093404302740851591542358913047243294489886652077027077518544327897741647358286929435931519791483866384663579185304736797583798403900131047669762527283641206993798256676285866300573042968920628591089341024331959786163671981317844138813860318454602839182562060680247513147299384684377824451318773624400948571983563665528902393941713203082590274445972110323170444105744005093976299591054984935902892377368161672925003701896259032027995044048467708370971016845229464059603471023807153518318644040084995838275313686485366434610084676353392051557578589912529359482438044546096258047755699994331108800798616422646190248862290197878707573973844055145010835193023076532751519601420664958754096666695402270415963964040857208365987791793908960775273226523404489644306015226374180149922158144252131185265063211091743098088554457065821801250259220472000619217385017625698333636112230427214122508383008585340743881970767179422045942062444605593895246570036040132981593099469821761297929408317908607037524580238783681024370874406986479900180830006089469538874390427517109267703609799472714261239283213450191196158164051858775227036735352631272775282641685688738819854498066279098260244712099011923589950457119379538271703011566044967293317131778436040570609684753981185625694959939927060713654356395521634613983446040858469920138338953750830586770663979591252645962408874676873641046397050684255474741430089879155359380297983540852589204576725343306417874607333159409397642742887840507992136197535644608687147713724359071851491297217145350196339898002860732402315452013079939893306987537195977700238091624047287184798536595295683993480850135248463253465977616071046332874793788033640533268180960007504362737790468792303017183726190093983508859296588543572775418671629093630797626416933345277861441090653790438891420332667258185088292432024172403220030262989941639883750029893838690757030909358318469521269464179818313156290075611256438156273941944852324277130884110353543169806726375991493688451641733876454249325458087180532439469186125502567715613915247382328633602584281808044257225086931063586206654415494062770035245857436270479644956050860337080362166446613784711751093283512275940125696453114210857706699049806368673842084383014901055931819473644194984152271279563839665604763125916062657187360011584728411654544921331484962556636587362087360434553183766736664479755559094377002336505623588036610712895857507978184724572961264981058827422306753433090227415314968912209423026216938745536923288538975180878487311070580000610088895903496945679662211719119253612668468715782844990771283192406133802453617644398301892126133826458178691070058564122801808044533143632266139180819952005823784028305555610140573384025031917740963557688662479718629314861378642617512807832984893909220597535183040467170412299341329058793475177888997376504325763139491470146247797614106366357284078865757622352055014522760820256975696703754880648760065036209295676755121830845741631732643125792812412477598417996014464803071914488685747055884575004496394718215714856162138521171756302150953808647005037369778696479895475788541964473335155854507712117661264918296535433940224208493491577236387984754667304369307819980086589533805562159580658266592968342829917892782433363622938745574198407191381593347144660732608515593330748603500256272296049471258083533779014953307730937481621992001643902575322729444999675845758815495474039896691212959451849930631852847320316548571979189446075108205347814329652984737997608328726550096393320550139839444887946698371074989777153659053978444307488554028560604260553207164685932145521458087872597300560701361230371873050951239870428490069824648256100036736238423704992027755338292292224614941881779679977246438324913990656129071238632861569982892425987447046987959342057981894267248863775188271200386491763809961397297851204175521662023475843862538309282384883341974352109854419241937596589072858624811594448248998574559706340183137320271722699490415644976005230808560091648395408488819267934519228198920276456738748648916012688021955246875222726358651590148053233038374790394129737743462910167845279417242373826892306808671906633131961911135369727873058033307666840829090389226600121213960577823665645026206411553365827249571990014644654830851510540865838736497178561801831385196921978393959139298170282625351596924600572364741927909281730346939888635337387622016237858131338864383868572409492672745643040726213033773665691241495856893888164737305074814739051864013452792085820470213987960292111544368243993420636553004850528539067783745785691548013755873180835647916698421055714437750737429696443519449454233342834716015970366935663707803841708393080357441988367129667901432524182449581933838983864584964729338731245456260295961674235847617566345727225602528227779197067693967280795951824019549990839753205249969058183042873893014162118269314175246728825166633802268867409068178714769550369515262982523149463960351913798470840578172874975154719427525540461864300160593165247028926063668240428590008630751964278515945383502654851060745946067597038578414360567584677739653494243968971231451985172531388023912737105295488182209613201712309028626360847938889799063517622288605196088177374192782778163270167759729634834796834189894842826301956313088612976511265187687746024236881432401766016440706543407612807921043632098701486873199858023095959218800285729733567066653434122801884563191069187988228971909445768055952716870442906869484981746331197711267991122108910528265238432906185513784243828406149244766115267290973054315295328910917598328888686863663835191238823408919448833335655901700035827274373755393639895404802473888192858894297286989966070739453480814723748554969253717772002421455813843343254012678170663058588443129517916270784620586801314480477782411773110697008201579477987707269095542706915816278050465450011537168692259970775347614509998522192019860488034436107945842989172532596633668023323088518162382444895677141181887183473218181760919125602187323822471324896354130090062869041417477898768443827290918666108421135893704796106006765631894025827514420121635179376595377972065607103848882962633905354290131658258827502218158601103929449858912887902555033419354587493205148739661550581674902916576126187239972723822106321549330280957524804322330714956474542621147448948182831794001317524457889133059084279281393185281111744167376957450855214339619998073823364282396063238107568549002033226963082547181049767133585841423283799099193416454383110590924041263414903502576083659032693643493709165681968370682190864099147518192225965243836276064699409692105960987113424939850788767765236604129859097981861012548266554253361979806597548902600465192753547168586992201220915351074184689681167313090808890639682076789218146463119210099110092456472021847895533895148119440624085228420319542505443360124430655595397250840309993696017037158681161610298507398605494282520393021373923679881791602290575582096551699929461565447317372540668832538998719043000161765106615845750487514591947834998990025747585509478731359326884509086878081343573917030278225962694896626790553872686982136010110849834466780330456377418056206086764833716284649390145351536085033873719934861600799572324762894150228571260831403345834755077659625445922807593789993470768920185054243770632372059919883078625870961840808896652983157510722561567748235953710867664275629315016314833582041262474192707865088578885370524536182788415890343313361992487750279562617047644270630977751936808408745903631634733568971928931266175639678726409284052669016754107551940268695515601914179232310657390508294682739445438813580715597294254508259310354137973542268456534512006690119597490059768475829870433706726356721303211172726109074742561294481926738312652553909799410890875569343920762628244426983862500382822385555631524331236505720489527322417565938972635206330787108506145461100092074296815067801434300297388703738981953190561423994513612540033268529395423155863928683817605358121280680123372373789968867304056793737174269064829509114100177707349179723498458603044510101002511884935393059709734079837879090375586197854647203153520515264998084255802773872942632080098221861802516882202229018281997546550430366901865205586877146433002403995936845991241124596868407051806276636352169191337345957361598984937526775270631686303912207232157815848304704998438221337041235557169469543088685609732074924349504131823302946136553144131187517352615239628639805441529529075269715709955914374654871081935530563167945308345994377007189922792564656450374982466534286193372444521934901992208726326722096046770941971296224967518307414638115286494520763850914361386556492966494362556818204205255946655915985573001929500927325556401490763821063095238328611200505848989492120591227294931358472345810349602153713494112423293304377567796563151722829808845342550924579706285949080629952420908738643657367881007310657393689842954721809659536521373448911613503575658592905943791810884621124373907460737571680479430229665537611597593315246378491058861326012470669281071939912665660111564978978498392697804592295870643237827047840344099433142448896277810883014210477092838587810081492642644699674508044582294797689748913060829953684739642578273510914902142602507413901713092547754240203948664702017492836787335967108568582014333739869416056088425313363666795612470346465247763444283344071221084942989332960514126991288722721802420537471708180438733631953495971301083439732390126842036090562903278074207708852070214542565271348443853159378509009839894149751550551925370103055097284285660185057146709628270255963363441461761982452889635788185929176923821785753517886614926289107849324628697604348832575118104903500973609510256044220781013934026307765628576894153779483352601289180873524559981361867046720655703551091960714871772165737035306907082466936667784281120276897540043119193884009701358838778745522104848882185478703387912510563373025932272025308948034300158465677227007541193908566330476920027424105720984744391855769012210464267713275862164942000634423544609602957127430428953631500617481077969204694229646579642106599249818402859996922082681635825008989525404908731908173297728933325061442077674014815499149560160478742646554190063783432829383751466770259560803475185131573623668738900049648692808028065810418311134757484630158761971770116124968689049964253444747009125081461457869709434347436079972589435681703687545737979017515192981578259079335032077386733949579930554265587435841160414366077716006444822191474355424334857472047231407169753653333220274119610975977766402622245774783279600424642478841850974915285166223100223748382598103523669896602537886421642510694985749324026403609991585553017844319807197494015183879748138596531304303595627321386721395081994676120295333683341587259366722595830485511043462908702014246660075281917317117917051368725142721175813601575270769755388650620338354365564996003813319155382356380881202194861175530707709994786247875584393337058704603328680220404746279759822278093483239666061449630142419651900653057163011087847778671123603967272930120410730443707816694557455650207368702028754827626934628740540049318550431339228364458175251952817202276817678091477910184808675352756212733314286476309322793560641332821407681557873041027087116379767963312124252411543179560661594366781434485805847990315789921626473954051029337717400251934476079787360744046305444760142051156430678552240850941126935365548303304576931013085369490792398142837910899362912454779192303337764592682627496985605928867691161642607709844031075457904226927950576907473037807166080903952561885265570665539777653490353681545414718912257361039202945884238424796725888422163841988572448459494028553583003571321749148414987186593006513536109758785549680410066942962524284882569410573560202816303031123630610553894786179895046972163382885989427760304306427386630841102450610757493816746694740629271321925212751842233855495446379376827067844725285789310388660274865959500035678830939259232510535021529048945917053676307347644345978719591124149419584515588811588424492855966380527159959754758319044792351414711217215732172083566116151487334725545770408744550389117014101661671946658746439922310982446998582357041541069448091008799285659322243925060454778489888282896856099798310452640326654386789343388280668199910195077028660716411316899263833743262396740415362965990145733130239999392438158505322755883070970959462838338537240901998205007934915050158328315152018180336971634437712577868632793277948531785717103061578539373148766996739959869918706642611369401299855476741176130865927435947835872748667401428725004087332069177283532702294526758121534930371890048296331545397920986095981422723135324848706785605147735280887924117604549260740146169878012726550880955177007280001834780460863940786067913634512994700626677948123844693118218869835732296084954646861343327922440314492696768653120606426190715990032666636775888456342089248221166965017267972020347200200056640055762452497605394983002822528965055243536315694446175997419890340039397591226895271545057782640906543871766666817027879732454310463405349380535837114640635747028533629112938657712753117448169711400789063015323946958307948970620139333365007445045871792518329523455624294045508424132175273957762169715754804752152159553982391229827596482047701072910964197581434715873505393416427020074400126465183909502133467547651268588012978908273943151656948392654839511058820303039084266043450928603961561374409439794121660672590658374944566595681359613927646312299019406766519328866428136314943328041933120682776184800233041894569941472882685157157724091477077870970158945326131825286141494216096375902369272186736376371614427059074058194911711230993172385266662744925731130413365052353555689416452500577593218556509065339531080723092239694279018341915068875516586260248393457808949638769985269754737424530078667242748010088194922891758000596126391538856553216805400579343747604160033823104004590200621047098670734843623952568573210482694822856124671873534357863609007096038001203220584720833130228753671858226235330487227962449776914945360673290054270039449422161774659765652120633416496461687245260977175147421216183485337161889843430397668958627320269242303315285721180856571942563143281006290739725048603285162646181845604978730848704564092957856030234475044708620356108030793262805930168445819489986229842995181810084287822294990457688906946231636530684899493651239166866077874816282797368953692888221521806765628985580312698589915242239111182016007599822803893603184209604343815541923215937737034793622600923825570369998319696644258090992892304917343339334716928674037354344760920207205721808890797377515345884162412451986984982941823319136038011448425927317265606774534960605853871171750538052516913594986957258363460015277328207760312360000026924830446099082086377760377131138174739186410862424980026428448493223486947593667469648771640952406505461465069145249778177739840671865990946866574918284950440889889988289934505555154880907772216848925730584836802814492447956543274137056333179110105497348705786434071290054702499390465889516838531092382404779714521225566705091379931505348697389343076402006078077333810835814035927185635897133488574861239351827923600524166022076914733011927259129320639659640474393627399070389416996644287857314792533316807898407574907810309053413109839783026202006522806461687179186267331244166507923889822316543908731633783981435465516389869111259774964388045812916667171770096236187186338205041128262590693306165174760360612194352377385066526416814284047518086019479165861122932261048180544030068660928264936646707185600038339598323656718817247603691070004573933218291308979017269847817861073740842843982508805874244489628702278254310344087791675524580884117974141074509419412203127764151124505759714944888010951122308389429029470644796870929942627522869798116313443212404031935096559937753406165696098940820812005920963167347370766816927368824010686994143204128022711428464121684951355895974972138846469972322787606838973468581915464857502102328882857641619279158544896223169264679462572519202724691134411603407556206699521960934634438943341175712113584046681655441312480078794864030278328739818165606031149719345147067625598456389465133040478166824311621146077273511814977336646425514971091606829363120050470568921034080093799435110705026438564606755134787525076229458262860353000560262034812847152190392046203173395236569229247380445714024090828435630710561036223610716101177575554371750112678395518808096311458520377497427658166256865927081487494731724490700672563221878527554661625064837487731146214326343580915336586000482119988797884970914122139989902937533972437054515206206764666712446403096779882108309212721380097632439486965493828112475707707248889849700763702107647779322187727280910571852855915147287767256265581992784816316739324600804534804197397485107150073364453090592992203623636351901144448988099499588178046253365420481327146963992892204897961205151359796769163232111270111368861444361648297640640141753853514589372256889341759129567444459545589990878746742026335437221987748581343316544980881409697166279170053404140692870747607873758350329646084115518486075408761434032966699422224727149560353852927569238946309897548285453153714527247625475881988530667173179597769663084350118512299692285974315444200993775322418721329542395659015539187307539459919575329879490868331238440088441396067209145097182086681214548155353766443427518096475964192969413822773020298495493791169335753706897466572532551338517172019658558616566064711941667000804607955860294865171336363077097834142727078652769529798040239629073487784003868795901985727095515663997486855479560736822630594280537690402548942265825470263678111664208471569583831457434075177735452157609711529101755934532292537895046727175615635931662077507751823754305190767845816979956984625566982199309397638697212359686641056270076410698298871791544211759544244997074729496050699781373670872202550777113725984251635679123817605289434994194372412306404146717774922459778451439965979465737405751743185249056783595902743159449228273919482864650584074012433588509088462241202749885872362987661992878135721860550597842944997618566674484149239904511823918816503140222433597667021086187082452646768796651719670933556688216529245343132912727530047905059892698082338954566621437150419936746628770392328043798408331479791663714149013161374826048829731067366972488847801782705316441528896123026512503183601003820273465246130705848017420252708041778633274847003431250060344450271865819821348308589711472299278152251735688530612062806693333605682719262349568998118654115546830566961546360531025284580998718122102756998253043045909209159957042498828134675539479120400761455614050950829410816257546278103435831784192867149636332838972770027645991124182345640876622715820788133300766148984790445473622611026403540355637560229956831364932828473275965517898876981454484111981934069936273485368199904582054488350343369133649412045459832194644487128748072518288454326003766468730248732685672711006227308074338411995810088742017280537153297311164943833845811371314434163582647159426782394680137998234523594760485198185179861150859502615727547531098984839648915200685008078969896993342786326912439156243726991505109222312165330202259430438244253661350862145261208540889275630338816036868107574505786477109011812485932057147565423850687569955669346927912739512799867006900176257001820444370503343860712353339661712263242609543363941745105264958071888305156028408301983487881520881376822685211561797305108786521784432588058233515436823803741553918521727598270722291328522275525634841069310444059115467633025462624754580890886167024925542621460247671358243921366027941634102740663793263741288869946370732636806165438850513903676499610225718637319026204389937677451519149810212027712765449187860603204237644969297496672359744398575747174194991792489608388498404874465837321400221766093420173954562993619164765256806543280333607563555000001146448606695148483485781305151064774309827781945447270879624566636044290570175403869851941634841540933733417544120572586556430930259281907555498040661678820562281901761033072637897816682201802192829260826686455362675898547967216661171724456599221359826093781751847946169092162314193209154553570185216600631494819936154063330709134107592939703425036610486754552357415225452203072982054600642536111516808530467883792737479168928317941325721578302691972169395840101810958442180644059196096319828301499943427724991374616357710923888024225451965333369314762353311956962706635735117493486814397067267546830273861482445531807035999300246997000003402510698606027739299120804737870190049712402210882191854612424303894615152363580981452977980803333044561398429034232170221488592437568001975717713575117225986185815653778248014079107555948301345352506213299601990808388290647017986731043000953319326095479369601544002184108963839855040025869014938098499359570449925613250090532128078349177182332196673324853331443160743526854085680837150267334867247168288766305011484591725145335607106399128859251452364168901782244534519571261253628117069420511920952577333466689250105754609191909460107371235164384834791761565941982164053512463004129098405878663900871713054620886489331377900050172439968242107686744839252876851949360076346655383987388107008149961147402704970913025779840161351093077872983782151697931170263686140725499662317809293580354498387988301666160892280705171282941559055504082312141977442489518863960249968122726047314719007370865929206223788479900589562983311700594503634398933333785798455362580247964269459939029207616926494435944711984468351368659988605876511545621677034107122699915607361643379658038141659199618140587493963354795066272258282094559572720199982034057449867712715922188870218308921906989941804233740027346866144449137236469294218520947443806905973329667571009303162633252170329016787704344252473510688969282517789019966601162460419937709083571665542875652770141397645273663003892486707452912936564246355497042499292876929223340520230090233897569510965904619513470975185940411629890197560488065227961175439626580183836490142565587174135850736429832770345874157612560009612739177627727517362547040597181283659681197868466487991400494633219079069669577623727090270045108677500137833102559728469619441980340661108478678712912239736364635831002614753979832211022551159813250700664485272812266706543669061400296346469774300099680872361601595608603237851112027975823662915275324813849599063721497321474912153960320533651100726976506553862415552036221944693651480495383392066410646688879428858935412570949552174213037696981805183854554558196540595937394488204372452414695830814077872512314529775701172473004614461673579004950414515495373103142594637703974110147155287770457945164364664002216790417759364960695698261603304706620507754254553913289829915265683194400452052667200824991090077236005507744185930270620434402599005676817913262128307976677297067387194683227760434380337592588244464301982928677797364183174583153602447210265585477507085331799663802943184456128138955309077778302524086321723571911422190707455624786224737453549411775826235267288384377364991033999128239501806065551649058194034191373569671649194115030110615020022744858020408702095569497167058324906849836718755494254403808076214565626841995067695064306707642874806133976662157106418607119540527218517909748185007602737410293829688569542274186832216556645903487957151892222687247314832736560247763198897993923425822401653867549591800099277696924505723303517932602933477470576616375731396274346340493357836066065320717516608657464729432684728773815775463525837055226405037102527814589534015350027244088093458747840600598012391521625999907332568175949986601807271517532408471783223040404413637988611465834452311136387407220855442495279572432796128122004107888655113806485590231998247759392800382258367348307527503554032598861897442134791997921927748003836433590824654365175821098211461406928978718946240866151341877481872638859059338455790108257763250926104631984377520080410216404150753544472295836965781386229542670715249897984354949264615058153326688087606121476989095650205056184836313533420057689135764548647853472090887364298523465649032483000677619943465314498149018220479329134368538085595039634068275750472342930373998078135570053186996007192721777904126442576380097142332252311393072359731229119772047467569740739855811496757698545305891859136169679111579706541324716113181781243168339918488866337501377318952627615465177568624723955229049963280538663853136744028086784671959800633354679442085881544502226882111559411350169839815158141570545858304061396477574837688862524005721549130904332578012169414270778880187041720545664783315324354728464898210826448087843945902561954663216337692758415037669749861024486503747288855524205643068083663862278065104773748437827109765331007240887436767063654482385639445184932763786296962809072207172626043984440946237471006600815008285733991100924580869640303956974659241500599959196688708725172543399657548736920871848305882384099457946562623576287226879671942241089502609449493659948330606075443097061391579862150868946225188743910621835497595391385684685300223426750196441844253262808774806246954016236992823731774886930804957596399901915306253358765689960034708298152556297582644940306953935981796532891862373459290158328767763313930252329776928192347431555918016888262959592693866192643222193442598728625048917689822658682638362255030516059997241839602041603780257792470577671501163823629515904740730629451917602520915877159559862987905260671311164598329537662409190772870414749059807490609258189394712047876753449351742134790275973564984303195603065528742779508530677254022702022296681973103200315849940040023754075774150131658071590349562917010665550728566330562145406728897922293432575240568197945596146059480419927859671233156655110413487646827924742653646219085578057897108955647379934108558412219136751936965406381127852518731187485733595438600652419200740539691894617063249110950649035005373367924716339671483629385122269418993479060344898366174320971344496371393678724286902478300087448794963467843344728940961547404821621872857055477724681526373868617287019202296813745633409386213725009956849120821441872264164499147705838931478331641693389079394319872362563278448135307095010062474797238707398528255278045116827539130549769915570963051728594364482279554608102851148197202868280903955402233243106494502565020968940488172425444455821015589188169229606024906150225107681935412095752250505012620459127947473526647405575212232413393431976736948459771755879430302646306233347917397307180144279608855243351320304041113207673373617572846424266729414399516693263959868181846777768412214513199934711870241966582136383186566222952048451365631252671273965269978569553971322533228524316748627097638416871921320098216298155065160801140365743884600179955250997161893620805947743165059130053141868237535109102444251515790598771339295194690700604777090557298439959787521654151206903807446303025089836240217931627621074101823248134571689738167885797710956592985464722858419667312187334100833177351775430800154538475744310755726439323202733583487349897372522436940459863132414198440699558570623686348240224364934243069673105150866296460437147184647025401310037505717628301137649290771675065319398260871212182615629994693300207472485160074340080290888652887510192451303388408825533350005208939059568618748582804116145044375928882438816713538717200794885118986148513138192843010987385177317603591733208209262402264848223878014791357246724012080198328965179069156464991542902751445704906723373315480346705281912290890048322394028914699038886902936698411840753609055169874081775186413605927854904209501434838305506599263426529754292682716720379429472491924399078715693448747041682370287796747628262286812173834938356979723180004507177190659555328152129765520326332184056968581722735273508186711236849893518753291508065034651357876141404647848292350767275949279095619649384203300363695429323702040405480678195339581651832877900018039890139119835788141390588323679753350637965118532222213215660795339949692577656342153948334976200433929730884623190189229796665053210023082162197821509461960612332119814700850282598369147171271283191066472265880231564577024569611756952048799911908735993793158318362717045418266551678444275686242194592439440542766858397745878812127087748971103528125146254138092458522696546822979440923321881056243816504992995949731841685923734813615930376143833696091965430446764285698061351469071692962979898079478129401327157129228205638614873439496459365498046979072706448725599426721543685253761420452080708248627907123737872636002916453000691023382127473237316945505619868314953583174503709763886181278575842414023205082555579625445197249680825766214787710340045995914304862344248471667465167991899264832060644541917280957382980091573979809547536233349284248706316188315231235139501485821169117222756434986101284038535748465985215724786080367897049587834928136608955977375459964586178968784894854763369950396079370356643008598554105788639219681587258544453633939058261660872107232935548171763253160092212559212526678697206153472800056056944608164214531983312486762163912967724365281898860630449552980140273791818893007611213416717540397876935805578079044861958024245059628042700064535668477016365894725189005185796288657520206899918547920515265656160317931515659317045260215327760189143586147978579291800315024515815094361942117694020376623990704991908642426237680657670898434550820470375968051489442116488584294070096988861281765181752757641750922634389719341011110571485067517103663875686737547191634226763675365502282595758351120023377327687285047139453026031677971605944111440658773624887475133577217781063221435561618818784917152720172256511364368712503715628998818707966036593188458241380250651852003145198551706543553613875776303737349314309962836192674157485271366527889800479169913567175833602347004864646523284681406456055802371464834972733532210394099683516053122412621976214619513854178023244446522764313938843096755121080821601679899862066791482198893171918082465461859541113390232276481530255593538094976585652650230585580057273402031242441159892829628587600224246744708561744946718178376111509275700660902694060613668061600984652524223869858518873122253297773394740105284320895200262846564229673482036744040813876812383650004167365232156536912890422383149080693536249249396828576578320656909172715486518835114471622433255723469004888560020446460260902932121126913905245070160922905704693036927342166030834138077599859753104145513865240969917810025512799830389126142506274795836841076054643682714233686309264736693951872174761686538103334035675994189265754140068519437177372623763418337435191724623196338381509645613544466267825975230811037278997532101223882762687181599901259870622256209923571989028943681221995920148426009108296678108435807408011428269143253965542602493917226990908346452623563833904393667378696348497486527999660349577207080532523062818832408860050982247194335107709204733888448808025680396452935936108128292194005021633089151359617254019981034359976194897836188050812351011678850703817250220892480489289385676701938252745900516342951385440521347515154150310205197938203969641717230297994852922048953125493271371857010756081830416083418813714764588634604421116003864089352142910864971750800468688411084051180895078977784908211386091635618378948252889477106508351884249612970492289501278016715144945340455303924333912508052169146202482795223369977118270180550521981732945784135894564665652829805111528466579016848648957343828469136949310759815127637540274605345102219223360474188475672002348361813152698868484922482103163244439317630702050754861280050932014897008596100706860840977349927667039118896263214025821399062573545365002077590259559247155008033475504747128140379296656804923977578039926497043278668783651140928689997691909565583790255792631847695188518366422308216338989068357242186331683518185621767354731610666938007147101019562357265254031348278237608901127776534935629213494000149037696154717032622537464664681054283826864152020372262380972572311674634363883491837870136298564555660222848615618399857091512148440187698494661346208320911758183532882403728937396115698346586451993742007678808060918651852029845520657827499513270145441723292359209973360247045436313194601768361283499795310494064944083853060832504365022464445316218293687614475696996725101382046993744615037473923622344499626518881554413209806953222345913091689533333918260077663485051271047942355858903302637522632589378350981319259319917019417191233512679985150831037886821826098948071115830129173293629447958809432929917241989909281403430937238777786734053397926502766795467972934638093149537761807825553879841386683413332256765793400639125217182232659875210947911404092941843869502670268078910142123213514256715867893012907559854108710303439810132937378509853788615310718381245025285433753870954473512817788147318417765907162737327385108961621580596572005011344733572728349580176089179989887967367106102133972053817651373330484228500245948362944373352689371772673738625990386157249353296170892490805391346906856151912015003020735789297422473348761971520427992557367372529845381953940783191755671521491421430703301155620473595993504469769495530852555219688615439805540708028404590472046975435254553468389148877381621138280543291490927341040654001340613989409101912103326037710149827830886408009259260291433078152251540953659858772231093234913550594384732537191989978812249372095791966866247138307178997435160030608827995502493687774789222715479375260017725193797525851464589404843362183397697126326950253594020107389197597632263553955397575317024257297660494775924803837557793034808225362522667260830585306814792842939330464110014563095082579739223315363591939567852755521806541594654733753749598869066945060359731160216461648809274360364814135698993800948918034869226731752899288905512084692490826782064365094091957213377340689994953442638763781118113929839662777029504614078953605321267952408740611228390644919368684153473648683933764481605117060496703119979700342201932673843664182536493271500726420044962072176435288228019592393395249129245672795832953767901198382555681279593917408963732855920732273248137206512629117140108132447421660890036374391883234136753808524096759626897656672350046254249845004262953107204862607450594682075201556891951489436036784022370050650336038868122827732809015987285039042075787221163617853050917193451255488858068013145311391556535428810478313717648620044015572946474226903113238958972366294046840397106594351054084574567531150559118675862325722035525808770728176294552151478529418151950575730513513090846116510827948752577098131253850640523136150834540210369606600819799976943168073869183268224240695047688240999448911157328270812024700266775644768522600176573576496295245382054890914368606533034407868914721089361870586212742240166497644231519055572160292971725843008840280779618850591349396433485543245216671334341524112079971009648866185366408228764941967736759194438778066647978620209879636701011689552964081674453228387592726364151366488631540075832117285067755980115309583944645471679248477683957351517782015834821741285250708917633192962103488919991460285608927682616609587324529074504238497892791785226872172431517330942583538910073837513415527496620227094230687692301304828163455445397386130566357825923750820213388933581510693648221987018131185830342782219093370170581464576224124884904884243088469375392755393956130268731958293804682976154019915262623279661282577396783140092499253645297901250495787170226672300247098335796607170064513792575685905746195457161835787448035231034667796932955173180979280407700347033769001955942023028417854965814985639371360738320134956312469823513911361857081465455638097178530286809989068342332034536424186247757871828587501802795455934067266458407000862288419931481372096919323875737195666462018594198303195324438595028065526064794465755001240724128558814695855144746951809997091364953988097216747028901407215104881536383496778070256607770826254720049941873052266838406887851138889392089821083496934485155045346126824197043005087454640578239708144811730263676107641949794547961775796449802160637604690572663092531837495746286562515065050069302920999989469826813141022116170578995925660135478353984278083659422568293737875399294122198766632048073557479958341890072112622853117142824456660398825548646071197588197399558565410794219142100061260396817702296636733563109851053432944442670590629786974501120472138129724945072178981996261624829278438560639597553911130971048030139995313966622196401952919535211748097070612246605815315457351463061253941002030849190692351116010250038424734787286149870057047895521426035115806143276995333744453450754776213450428037279786514355852219934417462420735148179163774241513252881699446827715584965801687826548499214028827699220134255496371196815748607050295638574440507665157912179965358343822325794746479556936184807810814962989938944488376359573448759675011129078997640123267521445554875705548848888220284457769512258270411866848719633704842038296689943625963629638919639038230382735039868428577610012995387491340603602301699282581897432553501308399018812800965960479606078957086225478492857307374649875680376166929880636002784847853678071443314889804911891517718760870198564337037235614054310474658711923334029275113586620702725166062937481222568000084349560723806946865842867913566664300067990256056630616293036394778866444924181072721920151433959320926278417852393099283583455508909855142533601270797829376607919498719111216872275625681475129941665769515805805508899503703166825591901310814174236321640962220629102181662342500436740653172308772422324090919070693852180443948770989696862177454669243395008305164302115741941702658721774943363484911174532855226369524581724942407414441240718763381051507148304310120533663402324904776099856050837111737104603857454713984362640875302692166486157144103591593774011870570837238232649175587497020935089493271326635495153941375482636476558332066235447940808301451427094373906972877638902127849040043281372886794177171816242911297887360709827859383005503354841374127803700287027548996245483286658037720074666010020749372509971145371275623290810611587787835513473206678982559114612231698806280970641707201966360068445534720206224139866875473066636780166461949902751835562785350534818580172410568385136368326117797594887738552543138343708387510563313092996681020522151587427741314198604282327160393307420860279014151480903142105830257789542358498262073130266343324306863174591038000342468312355657222984305959073586292160990813784247391137256519331405965213726029112109100761274789394893889101600266668171917590137488187228382718467351821472027903336123179664610303232183824273079067129653638532478103911165310683380944736528133034685822014274286040046912567992585916297098171707498188456177012639293768395655900747694871351011078283494974361959655051242113653646610829099345109234215662274181237080156328330917289486931306406406204159815040971407876522956062677475264184267700101882167564120481545400170802648023116417928060937323300736545134081066035729553454863239329359272631461890694658148589422270363783462906110948637604369465171013697690479453514313792834832996311340355675346466755674376598336141833313873118703487565204030250968630428105694465708686562912186426124457810384605695352837354348787209716913897538324641597278689357780129086494747669100759077846973317533336650982253642788625981155150444032483248639290834667420227524218271466626213347980149244723106057587159705890458471941262009091970551219053273663155327290537758109834152891854421161152616793902373112686596218378139548103323347205088161355866508762091857409108564705136539936164527796037767258535135403398486778111017208409089778835160753929069895900040294978518009234888301883260296404209906411186174819245726342230877531202575383081041269467199961158207237366103183364867812927191485632922548840339752845191416336978987294150863211008971912265603276990281122807617528364963210417095862770146456811660520273347590706647560587040828862333832040284620431696157474138203380668128350844150755659528595875602158455721352598632576932617553877264060382057874825636870924524718297685542821917183175005438358860647565182292463835834243461790176355871954454907467593751084962123258486668977160233641459170013520564813305553826210363775798322744616621748221247325227668107747601290104309557997060285243266298014906488885837206593223310742210925377988553024702699600278441347951622050427774754796080657708097904833483661483166725774555252830703349663534214465790323600745329814121628405744460578064600466286758143304011857693331155312557087692976051530804610303852678387799011164261396547700800944075298225884343717560455266706427315503323409009547646438125869789732922748697679716694740008595740497103008828320140108270304948805877459296444106592482755564362060377295545434376301457900658800220706289293236742180988224078055195506018094196591626326606854194431439418073181282160827379991201530011056036900045067483910113083584114320336883547153611203249587765919698857135017587838722536908695588716426567941622226598968525950511230211886767284494181114876714888669888075891299756677967253433075073714438929178005732356604323700090157962287320224239270185127542679960855447419177592754708159750035754251962866834631283298754904707499372787658959432189794792020348218419391437202584717088825842477650287310555039483354663244180009002877895913333618325206651218443902709481088465995723564124137951080304604893077909482068110653240442428543076332192259096500578394430818647815155209882497624340366105040601272382900050855928149560745877229649787743087953151523073195356121604520239911095820792055973042229721063970972457588634124024024999725587553435316618462224990040381999830266566306717424104715014849076018428913550905035911996535063490135411984631106354266663782607609233633413990675205109417706597844259760433527492307840207698814997100670048899792806901112254961985237060541505591021422794620749098612596547954205733039322404218370349734128191180870024094608236459826086013466656658885725991046336852018508300064439536566394859681192521028536926754657974718133396168687047385304289456677882924391098617842338643044809671796312245090232028770301683033671686342792248597464318871549710006232951341608707806578674990382009766684765528118042248106551256874099076579616148039156347245405545724045598243691031337882089989949200708718100159748974538228817974610973749531221119943603575503124040658461382821708250285297634751277712253797088676685858309267738708696629471278662088451332998675149758942613988330533300558869109966165734065198850491879917386557376373305248757431228059864457806446726056658370508570321256223873544850030868239136543823331040822930802815750007808818634113044276932052739035575887248886888986144172256652597026082778678825017413709463599752910764833683503716583619574205322766344070851615190737468171430503414439239391029997227662939901758378159081473757857390009805328676767272360912713308297119803274750385578379148386273452967547883562369384974198930158061834008922966255107836401427354921205217155995831215962772803310663684493374037380444871560350305758686434535245398637685135111796036367738771904848917740889870892022726550886171338084401986391544572524559823310366639464363777240559561856311147139945646877033834707150847390589359874349212734831676930588115110267081633736481608366986266111348727673024708346653175889978997629263781000927767576722904736877788012555251288743314194189587245939886623416474473399865370423767532863098893874331384711866083185702830096064177387750339670397062224501230643721345894948248692371861095829626915547681484838263197996441226529955344522170548834169138827772266346372125713661889728672113360787173213245350940804894831790603218791844459042863066825953901181231701240472805996347032744013447478165411620990380403527930961582792929607153321819431507391049523631803054007756911842075255204753385497857225080853197682326074590901292455453911350572261201182732200277906261966078323872800092247737080314843687089429241383341386243797249059090613413850090704999777814279279893300641117307514482405722300197831903248494767346098181919223277471789867381626518817221913673478815543852017020167074622562337169286760201800300823091906339056045508107589153520177470281995646209417352748835295171020979496724957550057991015605016689033696476470739769323587936395193222848307213582272246038796194441555433054885070753211372069680106504589565449955185524036905765826435211419189023567822832577663646122919962939454183263437005566778149512724362572661908431343212490885345488795203550483828115162921056733421610106782270463696982735270989974601839168287343978189715489173214355007300451696738753178051917980865381271279113462108710594387077884921713178467072863183237290904876538565422109623743019046729687392985151021529679548645352711560077801000267501555730909447288311588471265546253854579353427016456411829020680951279501295162017612950976948097045942854270562233656215317783567255425571526501910530593224003512740809282407614848046893397731584471234143749755791882391318408469952545792949958176803141874790825099067281331936787060952688602725595868293386452033449525045270890240457920505800279119280476823412664043442646984053319008533150311298949293674663287755841658936394346542892175275548692105191278653258327405994938926770622732112536667547327784952146610807767978099961312520147199019109163170740016573315134797705076385184348281501395090360725932906401786228234378265340832868540730596907835651721683824114149306382963734889539879888461673116394027563269423114035228021397870256993174152357718922514812948745234238422684902216103380485234222788293005654001066473029737242977742921630068485016167700382847633214785302254059250287533336120028235476761712738032533221891481927964205697830862132605948644806754541858565215520786101127203491859701556387296614696684005118502871987686165922186779816803776517087904898436926839477341066778596981073083881689698230195133110682657222968784729462516171689165060711852233992516450677282251476363659964706640808033616350134935222409352767739937887422399463671554228000914490169631829991422230435280699057391323256043691961744935697598632843436276493076919556037121303821540954339016954846455446691982715510497654659288609894679645859963289351372627794215435277567965690816293770649509015821436806343497821202618789692157382157505248489350423452140301926181427953851115867343728229177431580492719561446612364869970573193837810535513934636363679487236958262826398792352641192092674449370347546169765251938554479596694887839156150607236340856366434873578962684163219716751680352351707991899740185851010238139764313689344421988434108783461932905258645956031229496806159718566690442289621833671551299035592496294857559217252015465143097450342266187621178255630429000132880122597223232498084087051683458958179837877900421100435793403884656151720723484728065972515344786902322398541041107325159682855770490110653811480590961593679603813535854083127832188948657245026103217693959169758596125191821409548511581907152924637432788481478842559657439752018754480911620803560095771358732863380841116672607884505359139967551122607267822459079279163817307319576546369949163509699738119906469816923950118644805241967451184494362575369058876426142835588138617501779109702421267179574452847571907147156640617927502407363857104256118787443268947963398317698175776460419078924337582228673967106764536730641368074186575109789903014336455562528556923571371165847742118322188647445935559147114592776899405933438919778540250364653204989353299814538535845598353566146443799209282600695848135827693566876202276756597236398912833734616547794939709453269034776435133239301413439577254845963629409128108981057319760736569689433243811869924981729898002370643598397576410860939276679206478222959286452868446726004967171086678788182453551953848891905439763740665079499940436697348939369280264063860467549797581008443107853535598294059432209388030087475408273794420371047228454649645659546953921089527347615599561035241545432349129912576635779191063111071536693694857949420492475835125725414295330770587660508804277117325267069958205606254031058388562609739594365462429916750417189199625530318596533598782764761616522291788776428763609989398312982939258302430542863962196127399518343362644850230760038429992211066290764029557316664597520689150759753406765748543275428293160693063601816894654636595478394583120943538756342670721609918408330035677170014194164965312743074180409815988241487641923779647803166088044863016612274069963640805782303322005290506756636805383134667368686290174266665093496895299718044915825605120161476782879078715278368377819963460306137482319843329985335776792771670949855947945755076900506520521155029643157130405582244267243333997365603556173529840757820997789394187026913815644416625191942495420703469668732380392988975168287893611417921419205233821921889143722766855181329541013935732753860429801821363286408938059253782845628895062165173632070723942944748539268359335768752531713876320199369018249362094244509451495564452620573563560657751704820069029256318605876817413190625043144352124549044838803597755059776109418627605255981644882834277620643906391280329678742453793365557279220615602935789343928507874329839348524114141190817118238259187412632644128474632357568999047872243945909039919516220832414901906020356230011889190945958434040172126119662294643600053981249235569995285721432278710210520782705942135314947509052738325967854811270119619583334545338925455797470814657041747042522623790645592308094457893594900015710834250017598646164718426763607130308185381932517086415897818037495331636002188419702411768772872652809252696138084841098237512405953944299474098194184028460464712573874615611875924635342950020654735025323207624563332225336431501385418843322595995592362839075009743104851700094724813514210617163070848974144600904730503624076237249147093301281801071024876740065926298864340643048411623698347101444853874729764227264376219542354597158606453885006342600806548901897574421206628341039307751026926645586214315186827079597826885490298887367310878144379921525352617142401587384729689059667879529342625505888245049415935704849637844748680731141905113759200016826456578089864901357805634360327957485781034149374344961087342253025987439113533950139473743072625315951980901191392193923926530250840681919526805459485932021781777973031142310441141076774743406029636019468347026023633100215421664815008008704550731194265586834778828262961234795610421139878701780565200139013163255498941400941997875152196550217020210686087004028640810182422010827319678471368226509450714053423398314832015677730506187816341160119827856334628551846646828613216316173087220153643929067498820596729268872546813048838672337300975305040421053703265261575575024822537372704220163729267665746548419537541233033277532562706887997601086536694538698659282036839196729400511669979307302484653967581188003562482964355390134369242209863168880938492437364322127304406642619879616559408656191038736425338070869547227901910051869752249002859034528102390312473633817485563952622699391906065694820052338324295512939116039644710263417189913359101029765960340311167054619316359240875231552769718673429842875429426006110360975985441463420340352894378005199309975407957650607384641573101876869379115814686295597903812036401911907197675819725769393444543161763859002042735345223610984100887000853297574830856906024351837641809710392007624728055577638469854015845443837715784926602101973530701846315631541734703137559778634254661720044028559451022004528814853187756624729149641451351293394649031531633906037221345650641502039359896064256810123475983971424307126870978945928514992482474197387791009808077048134215976474977116146788588818919484517727215458287330882220704286846435047719889954705589640747925824837288602654083150988892591811434225434657717321424677007882471683693838096896796528323927295783069926885398852443735797923817521671893225344014195605461600519326112720601706577341539886211071947388960087859136846103962548221096221441978713672563350714081936708411962579601064614022120376208769069150531324480886771773133681747430686351697547861325382011759270591685844387351028956458460594787654742358574463433430348983010614136482293039837348402242283614129669876376065998587922949381739533364603454731793224513111213897242925340164254391438573251953022419541748916305740813399083342471481973914039945610599958494008957611959130615809650569461924079178992905964484690923781542791238579070876343881309312470722459088571555442575339877398712891960116676012253381530673827799623509711736322619708797073638749879435646909330309459638125152218035155788173022846541975459520472121450652697746432347963981942533852094220286040801249931343375346783351152227718857433326761011665577403777111900023893725941181771217700492270369563395472854197138252499756020046431974688362296958322166535701587584141956535202406580740453248376748460141719642536602338313330390335977351843419299488908510783905163016750135182131486522435705935864139377075884321860703886780960749727559705340293215062818790335235640110222026008530660303182101720837971634994164061759078597024018275630295371179947584295819135742660512449065823806337677628422225242162132735586028809550157923683225916898659447446619714613221908720202031625741862407076827399305251825772437255432437158013501762853649167302680329652398566813230803627075954160710991857735797095376167931668335640656124545524836937431525876508032266946794291352825752139257603094540393633361117899617460355866061855538716083562497330945923031492715196379373244507490161967060978132807110558441995688480575644289229139257830455850713017999245419067461802164738544240569137485348233558630723047790646530053340606394404959697753994970102930870296082388598256606200047783716502252859639985617777463317433198698130497744370514694044956238696069410484709435654379440082217692395662570939644856546721688132139431016796210572941858088743367764619451779803494616769976177686571903467959458342278631220624396467209988803393873228519443947690086991320280117477860494323046452250757914185473534731271264890834720355525123952687102869355631330293685646389532721018768055509874478472340896785092076897108773177241211185145866112837636614606452091462060698545594446518746881773660846005306795346696337398044505161081942667547290322094312403533450352806814776171721304025206890463895559503265800077920922510705578443772398454899729487148861499323172934309780040636369664551553480426701062047547848306608738586217863679487191868939053550447742006541898134934811306827056571539020620376936805863887780954031138151299857319405065671805741163412985329758194575751394375537369121557709722809277871041799196115455366579864828214215694756204373869517977354582310373570870534988384110699116497993362528354244230645658125437437191994002373207853472548057194705291856800522636885599493756562026659050965549453734256995445047414104208756739000301612211506239402134194658009434858039521823604888333469802595545321909529650355414904062587292578786541167666543419861001120833057313221408111828693241340312233296402344402987008629175708659240957394731259126351934187785295285208942312660938477515704234500391050129181683805507033682327268801220261108514864512910644799345497354205546067316807728600206358722964777309662310006760645781263525481979371451103916200504359704953799574819240518136660317140891544984269313624121010033356202090706929725233981824617635152517832365304909721264955206876854165323702959906017077927519140188398826036464400938985071157534951971216497923994413303961169170577691224165486217910011444427897265038166155421258642578675714431691407234009464447562252143435585976734042106980976590991174765042754531194857630874480168250345558947273977445760453196512676910027526838317796963685233756171215859799590782648975618800849080601197035856718508522336435081465273866630321364614761251749198891646592581492997823663671422659343098780078171137541933132452321787538405639056947645824283052541033950128759703632327054824397599629315099728188092106743970896139958872693069129827588546140400967510454925915508317558457883655848443285635677054489585434954233798454085903105702148084568079729664229517908984344563151604337374646035869111079504360322795982213218801957012435282850110238980742549185056177837277228200653371239238905619277508150956778762963355096590415931703919359926330306085950837737132794146284490288423880746061168711737304643167939301621351757455915020080972465620874217031707970578922690707345721260114285952193504901297677719002969687871742469545400635182987600405434202551742257886473015822246484022159383450905423315203698233851066177820568008003121381069242386487241184395269099097951692149541536278209310932176015164436782354572655165641583119570354430028414212935249061246873928929836406990767224432509801611494331377662105329613144414373974312456993614434014960976282139599822536938374705546413895373880466256201476183455221257001474742911581684818386101753121293111855363602701460742729747841176861021688801295698356282466906726560193572203870872716359919241971721725362340791566552369576475853708990818947019652593485672807398113457413120466500009815505541697396968934941706097721591203000537230919297235549726103435488793484120757975599031343300568679591137062504250118412164211271656389088368107531379011325952892463906412855336256119554025577920911561331183102159817556933691905943937080445080668098929615774556510344089412454140319093383962283034929180911496141698007118518956365435686946235096771683529844630542311939758182116886861069658884627636792934180581517475511017783049740338349114986387598528624145654534952874224863943364590928231292794504904177192264947811548294009026605131832323223990542088064534953604894461613055499446915508767012227339820754698814666811968666491272489250676116009409903801066664227619057647948559115027307685838618086715138606273866388723384927278556239656593757476685126325237501485353782812557499310451683323208755931723392690949507400937775594331501110311017769152076061359134237359335751403294667653902879395673994051322973089016472380919660551196543110513783798446895220930105156075035255949343867551670864527691571719015959119798428551486031230311992608768456843913116928021285643994623076868366726720388682322237328729985489329562228424790350433331198319251206412173928145139163775633619133434081153927423875528989644613010530417883728150931125302033105715211376367170346943075007028574093586441317059390534660802802671711728600638733015012825484790741731820001040906828172868255967922278099755819819086219984349105430290730198752343903521427572929727728093297968988784274319347794568332749905064288165913920054477246949680052072969285442712917766955950822575325589057420434101584059837834248138933031373203759812913625643701159673115997492218849565277089118909652764740254768693605844124679080772139984736294642426221629673917380927017835674758099134011535059257956722998098004871324919265241033581768886680938473183321439578475564575260324913162979345811189689141599497026996257109442397031626500654858981393807283689136300640228782055433478659572256170819281156539545375245870685725969361362905799469497050159208066407185764751602828596668175765819950731713669238356614549282190516164264438356257831071227426432445431206089572061160026816001085733125496837101694427098406480419362236121755020153090915813751573931526289934049653502576898612063681031250377741293715191985250043869274409373715826419755627536629715515327222741801858386280410058241036069778698918885877600866920102782160354494077670902991007286197502443224960947391300518767748707499005925438236013655189998409260544864804228341828940792334806862602084492857343627928849892823269764883333512622949457496009004492274517021927943041617795858922279246351732694913903812910719575509485265645756937349709729893220498025824849533988691028619089091281438738392224478203503898868612429681328101994218285379785135085095972018942717614350945518015080697172189779499913570351368751831170595203373068269689089236661377107193359664489608684650427720612320674179846074464671683623545595579828104618126812432731278597007904877827050183039839672310955928566736911180991068388726355523627626474808473067744445066374835580169498660111558865243513773098875505921526421810404823351651861746303508362992645661833758906322736328307972183784592546943651099631102702423176614228613197676618871351269940021912813231628616763770386338598950320236921808257626941644936250513887528553909735531938077014643557806494373666939410036204238162909851536239891233761839764631391409935976036824474414955560625433011118459839787663051657197439042442290688361498390866733623331781019029908827822506617858866443321177701511262977881617631502123748148731053422162449759528632698738950066953557163973260744603825568068466146723028592073111547235587891920131991683820161647775270101105212117783118206285966617996456626228560616403244161387958465692632291323969929667267910899175623951124139502217829273193256951809236037277254990676634920257563736067139914422378837239743822811758888073108414782099614633345352955519857010517055911142791863927270331538208325640541264776217615834946638399753752567173939689983939084444240105980724457831970431353885860604967291420662013162945596100187219941334155142544430376522798388563763174600970479434596207230349231926014217695322641125760737170241422315624642609972489446490016452656097308080363153682799254653730722132823398801976926324045157490048233226217761855093733668282792390745607742521614237890214771101894005724015029974460132249179857837383639681525550541573436731883502328624047318992423910083513411771417839309529391162710925770896214635163332955799899592412312665023419565895545290611714988777075741575806384042593407959168901508854143354001563735749854145660037124532560349825655999326380441721016098565795850091355786233638667788498294311401155405843209378171665511220656269012732045065904728825416557090025699253396835642425146437765034399136033318096313526351444387277242174727329432987918967181510217784820387728993689157146260657698499269162782810224759943479978184760442938800795167664602972888771162847068978821927128608549852624109371854604715141349958427770829139336464387274570959957217164012912974599364577582046395658497282363513092428031365569164553703775558658713906635071291770760007310797111854877009589233853209544634147797778950945504919788519795544190351188004818508584661223650481863798729121832030989707350347014621865607248587096225504468204771362635671508243759334765652897505891406144268966470703277522512129306805103837938839264479706227398185887917432366641033702492193434085955590003942055509218859966995619863055215471766057714210969665915111121315154028145863839265387270402737310236429662078711928362788779036194892269027911320431990214627843189280626018153455564546170073464405554325669988019901205979461633848357230007045316366477426853846928068881922008013860126792099059714786004925993974405603651161799124647353448359485862443784554764716824402754778336334280260455469977440749599812136520064328305819598715139702693739080080332267361355977835459931023325797823841878865277508200631112791534392980950007800280520357519728895681260983978269052317238012018976544898409644246132656296094863594914793285136788899379535203187354973747377773426231466484848055420246637561138074763646260762088906805223952371057641736137475004319229676516741963141516355206073914061172506050424805842454424837206903337119368235835011440947616943256931294809431060788412888099339082751697275625153644027828556505582830074996799732355226420997112159150774779094363778202072332015325459008308125659679816376887487255199582988921843905881615087360429521905447880921078455443009675441467245868049445315733450556974503676324998875236440358266766509524769256429817312036036557051230021833079091166691718617045048198228685526914701091017360550626998131739962140461420709781349365139229334240876547320038824346981159938618475943655394488640417097154372690778115984390182118258693379333295876687126972323226388924311803735740668799691711648536146423548836693302418718556620943757881894075886487432983093960444468237500388643994161164221982409085246545964217214020261328944864479689066170703830469726596693303946949790373957615224082951772312091984454083669312466710982311244799949244808761930711047098828436944562885385843279118869654616829644096526010636016429149374809753089566846995951251012574912087419882969752662265948792533361717652962227447174490070320130617621557601770209293744624660870158079493667241665714115847578234063375418959055557610491381519611816569731068667467002919356055013714093445061353024220915765260231079746730521523860489687432410672863904702481876035178139189388628980320840765048262965059734627195235566541629516567762711557485321326620597173504328080673582724430256159512975167731992078582514560184450903039187313391767788704546880370239731832787132015399691597351706849765354982629691802187278794693332656429070599151499992100446084754708433887450406492736461892551941294547636484974663535416951162682897391142284743571492510183454320340232417769305721112232384911732890437124277680701155876570052601523780416307466626991771495970120732529189257272477346493875192152423050126505974218407337534320233497302484945348332762900069399457617026642838210060929548988187541047433944956386566980584129423808955384885967386934460364329473514329829288332403586272886780565296398711596160241441246200807577219305243876735184327696659335636678835498600480972341763640157764874751156797122430642032896362249845836088182627294759829120849271962719388165549366579101587719372668713912684973212938026529653510557024270406103635779040516695864731183229040794014427692693900158404786700035951855728513906914635065806819748874498135686659158505978585021910910230937677188096922145690389077739411331975702235549113749910996085291205192015943601154416183117666460008178035160862470696512678677506365051165077631058415285847500307681036165382572505585352499005784359921238782813658462862320101239475302736413781109564377287561728995794353984085383380747420040261734501060499648850858743039872825408653262977869183042900424426989819121975780304793406727939503893892424320794824507554261922355208024424031482823719101027799428088417335347308641819981633690416395068070575963509834721451209801804754520974972555422382466870230622681115521464443865970110245408638540400580386258344489297986426628298656491704065831248497664073163378191177994582827832952519230362994413592417208867159381217858680295827456679346107267243611684971632503029407841125727120958478724265610871377149482865185640676497807369508440315509320262265562104480703851221001039808713163837864344883788430723710580358293294049253622045954755953824579318431013223609222285672754370908788819488263393184013569768231309125481239349033647463768641480037911365357480204504928704313858449073249483547543906906442984105220886187545721719771617706628166271035179682921866489956233512771192121839895943833199824346856037441077221696555533086765303678149135674811068788055031968170496666955790481525517719384927512452379422513650925278385167077089255346928761887699060290564171243222596600792920269485195638583179261352809936115301738054107170772596522857231534388004118936450454171700158531639016836118667187208829103387703460263555122925361928010000079588219850964067381568571122275970664405759071550017046178258360215502981399597519493088746840728271781678984269851961939678343839335408928227143396827560432923927497371348345335312901611113728530429540057348903989508528966775801649283330966933256290769438778598007197075949245399254917094932932714136205536283349715780612780941453801307573099358568500732241148553444224302764225181252586606963514903468773283155522685650322489493406374649281204050753688456221809401969695813963865888401954379881726774951338511704872509563047507791817832433524180509770106438632394715154984823264678333843284843855520092409661406496285780429920675385263136812608231314312564731010930525564299248756373836692920286324420700238861331395468863963752970747294545688731329432830384472040431993457251065729858491069614735273488625583991928363453392148885431830374281587583134700349269297002460945298049006414359641526802288098844073779779604938892278877994449829261125747134740495764514845233650490026241234733056679336267536515965395971385270374307360697351764197081133880364912223253128689839430026833120966297529827855849969272769741251989647032671140141602905249284440454352706774191057202866897455504160169916483917569338661224385446141560035998541699421692984751803794910979680158454738497439875995365977419131769340222489805683040223480282819279402172138259970122012790251091487035703986350163265709777820071308880440325952797032252316875648712276299047480178968412167990943705593670330412524826624167763460555961533352168600355780371724990493972336996135908133983123826612321054157540686740110893702559799435978657882805972097224493113493825974557756045855235132339818041658879099818640052055464105257212544068503276060094186554943227154866376121423843846204381072836043628317463779272196182551520855601403480615650773733273298509135527023450335994364446247167031890484965619587866224201608943537461534367703203466920391611878117265178388785294042015405522202986273150152982279856876491040462210518690878652764163896454674257785772266506270889834974920034931058571580192827990102198456662474665666498534691684054159930564640419782806408004797612362544991173795779825007700701370601029786122330180828942496438677089146246036376763301289271024408867549205870432163597994520144008321014562341227753766385564204329642325030409084286557368482870585632406399158120685917154663577210221004254357493006708279352451408506962642336934050145937107503751228728312842691859009138513273229349189810529552584095750943560714086104911507401619066627205995991652035559153503481071600251088269849989566734687391324761080542680372251323946930477357814788193755773428420116608236100862846006302348205794515173636913762788156666274450178223604348993838305805087463318753205785840571077988780936159359214274043315364915670796910991125886518466303104955428380979198489854915366149711651444325576758061005818317687381045643549691162042357011240616921830310347811016650521279580327211797448297321186552127373984777492098599166640835704254407910481048189065185881654045646998291738590703688937306907198091394787448468997105190700025928379756537509232885877302482881097099979705790484104882536359014255975128528628610267604784856814943117753112560777982215908680480494689135003308885116894164651340020707199283493651949582803303255362395604795422181455553539813210196225536477539317899871914570677252182225167849230472014749039582828925292406333111113833701133796312044059591528004806628787785691619375306772130041080893088297807298347447577374596656952556415398222994960693813633614514365874892284727100449638483726519792168021390378752009890907008994248908346949777225930621554252164859340803125290002304678274268739438049464233032930268278910253706691769103666685110072958018665888708769675329306358026312066654835094274267122240254341207678667677252511750656417674796115008170471805321252838412412443384064636345140480411772755155034532397189284623628580041542343379801849959536740718647356886305974044241481309114228775037729692469728566842588621230649566198495276216550644537063823011249854609620447400451096974750685562459047069966304532375152617876375006832696145477624793183149639518106311996972684677625201922740360421078972575181275281327931822967787527561329224012063784962874980330759237612613106974194032505753631516623189219900035124194242452704772726956482970788414304380538953939715851612922699458852509677495464693664358537912395272426064568956841206301140241977880364826590534628288314346026407144633524728123677836863970572158270579569717000582927818060396689714296428643598252390795528024367882046758807060252172557558465863518142364821791118933964800395637746487359660004983340479809646714435821395899536875844123561992369962396017542959005568819250254631227974511621878514502727274198721498971547934532243699965184481953477946763244622736256187627272803322158402914233537786842789862643899236837630185332143907833104568502307228492608409242663875611914032822329979803864504112668777637040312889682466520375612813528436977083933584293245318456102071344985496882880732986588129041073134207004187571897024526687827405811867578995483128240268243900973524779952768945415043184641879327350503826345885971284045338758870392687365953878022335377550907038810817015812663086618305465828721250720474223476182575740359764124249731285975918992544828146970459228631413233703754505719875335804972700728736175843854627723678820589666188091355766359445924254029204461328962551861586513444856916033260577408051344329883815837263761385121314148291987875285471998159930660660233602444379124580193454343919193765863969568354439031999938269495479770241512549200101362931049897575869542152344122808132236883943052409631772314024017039857261295551860823321523784894564896025975436524178543983997449242345202934030949366589593596057101276934650650624941143087327949443054299976025748371359318286693976382520517410085513222225595296515178808772032592538444954312313764560901500542668460817786454285589812401340685737888714052890779582571166241471437648938388774899415158495946572043874351618473663383334719232181765428347259105692117173045397617166947107241761355669668986657746789940760494009445740796022738042337596008129182931000231452372558127552532253196375246568210577170682378256131431412163414608795676345382911578060822922528602360856043961712968968844042231886198966657858088827974320101080476895899236688573962878325089763110693661034273677625499322022702987028588127559484402376609984970432890026910634779182081774703607485675641552631925287419762375539494610163143125621932116471505350029156291864074063904136147950194551837460812754607694020421250460134234279732259103858633987666870409722752021030502046272093023093248272019602210889515035978559178522191543509721922412725212377088141942210497414915568323868030598280279766278389087843453535981571612409290231448062764302243244616266787128986273893724471787789985777709903546987515310790449576665847731216438693985140719755494644757203544470918984787877972144762950557095083344821776923879328139445509368875265387952782675151237920678725824329653197033931548907837788643281633013981972723815742520628205854739436045075949540290561460812402102201109241272350986861285294207868138576352095699072076290089715248404868938234074150864782094310644780051218131424318069385340364750811440254619748251923510814896760739932099041910208923589095800722418439816948512604808679051444189669108836520636256316391986786359398708262741046932565489404315163781510751679174185071034445112226958417296757134700318033391570046682637972895767230177285321051964655839069637647593753507762037962343158840003028966633079115986215551222112884732626229353360657109633891234848583286895573607538110040136651608459265753958865569600664042445296118165364583930815853041266692928620993840997029747572093197932700734060935243057409826688534924481783046849007626141217064407576918199783653427803824958226759387270180446397620249302024257009036120913677856878966104731015399374788516018885662012019837466761511074707237361578195867124993249269056688638359167860300899830264914816712364890476579734115880757021190273719345959296137280218017854129060005088777795747422193403539961876651317448675084967235362250494588441333973231611493451758741386824016255074474430133893106874030689585533034581251465817962590990942419723041911273947404110365708135699245877460829849384396937688075592690434706058492969086044250308289304770248876668226922249879093279369076114407052531046173034616258493938185222073462802339684903559010758916293928696079890866579785921522106582692637052387935000559276958588482506872933545430934763047571647360589634886620576755200853621431759522027148066519171705699387318027590341645438897252605074235268977675796552648210845988583512778745050213572361973381917763396032877488784506732619717808483015996356343876160047369455887741801864954816226393796849289662678269308555241758816801111177776167328724369487680269037617940675386917361280267408483898715476594866755805784481589857759498696800241694273632974318691316568558548127776908983942612926227427628397754926010833404111594131216036884787686926147948178321310942600832126201406861881277015020256196976036196319495954111364362997552786314402291475700880803913998015010092267438988233599540055534412127240230455601737651606745627483905706968806688834424228735765441531671575748416232311800246395651102621766825272671002512904459315935433251797771623235657859693383681935826773485338122800028888159968113316499743697943257149728942053786933596766788916851945976254637649537330532533094921276040169159171240742279334974737893144548695976632201262548553767778240540010344791218425269370383620507832679991749623113486845901982426924537080025205347810628690488705442000142090666717227928747058357603650174184797160938596609234993307969932167875366461694702759079323762071171583821229717750567476085947615945913433615533821005422341177515707697734686597113688161793226501615842448645590445806855719627471928094367965734788313293719174552420820624940707429738123696392303839018970638958502216932737245687560090325972043141568031711887076514801923630672941158634140129739512651882086672306787860334859109310914714161655546275425109878056705852523526536248974125333621611955150558894783974943097569663823709636007331298229429183038126526124627725101156274865996565264404797144265737885337337519878019508120707629818302004768049507592676647926180316632327882934871273690930135476910756955414237700863064045812969623355397730589142913755678833270923960673562727822186356562646672593267486787076738623724739747567898511698239728414294204394487999909960900601924398340948142072302202638219683865707812361549444548411184053945210634813660470572009643072824885502059359476968297890884880299571105364163031678809678804876947548860870331568653583799118325010430325006778456337263426025582954700256159541409963962722280394768700453482828668834275059827926613241909667200515100342591644683825816013290924592750546463277644221203999575849906255724301640275937705122165880282235755198820273273892966268854177271662448767030768804143378196183683915809454594936787553023420984114639230756656553298379949004870496610256540234294343960860063984723764677291500917885163316670620730313957155410128278786159554582349589327101528813248028692108615440898642338797702964156899195591125314112840461765774917837751234731249644603628835547229261837857043960392829170578685808434451139253170921361831405012155605975543871818593477068038793886453156389413663123261829068842199532801100040126543892328779832964648462604342842061562837316257798449073430373792940359808942476800466710015621458712788766702356391229641043474877285038188000714284922022611013885280029464776193316971787904260131296999325801395339952584792970438349443880523769887774773246622338064095517548129014929528984586184409030532810922977206928303508605068693482203122692537934229846482929480884918086294017628330156016081322775905072924209896384861925425740319777189657408953257201796482947058702912955880176054147518462494251559623554462652826013577165657805045802975052371898307737641068875604276894155370166234897039615373938215125985691175345749521623204554372708280890497267452702404932926649777128091709029128517598852666989794390510071085189546152523162025809688501706837415617623481725941913775218048535216336645178284539568382847539841721800205146513752773294305969207664112270566359173958252693315049269600162968772387835287837033811817258434073551969008942142825096430154496914634066081420909951442914516555831187774427526344441123455539334912296947080645706379939457396458176815459212407201672546296804294498105390121707013261202320104760736625242735144232785502999399510256860078227876627760414211551761584303167460108277153813134402728123469423882126760885153719256672001895714593522132027002905450068335543462448089486149966752903417310101260496556860762130941800848358315906588988453924179589407396079184427333829183635681432599720434969627877011927994648189043892007553401940848526426127219138985416466061891562630926566158830046583422917769165840545448591496586432729201895566422197607582561136451551859772506957174841544101434891385130063424033228823314211167264003766630603461720293078963055013538634394712903297832593604679510910271235535115080388674859608677798231624016477673043465846095291642442270198097329068579470319392983303342140267131701037714533227990858088937450521440528771563046631548405373290191444219384847406314283496330149733706687953375332576365544316186785774748162923031891074371995830650713632506841084312946907976564904241249667348135340718577535293634178488700250931957919292019141583413432848183190556214443203875562036569299541454664975583758989329601371185357597557939261349560472416976864182659657639434119175938763084755132903284365974996491348281814205039539562082749237155274470616866305786094315728642884023396055677955147284713230958762889492766107134662515938893693130331890747272758506330705070998250783342912279218873040433429708136817944036477747994032081057810851264220301151902790629198275492499879225200238769517876804268374482601994017003241771235398650659512068280007352416043768540761339652833686563481395655149422831149931578880935270663443936089240058911144589844238741219949679333337854673475289702336374599248146852342600519620271519850763191457493942648100678314010467641479737923500064220743300351638985039170578645083668896255066387621607156256935756847859462159218246238629793504747303935684043037480170022701551446811703758325893220717701525282547725217622457215682425721374385421413128407740048796178130569133738037314595128736938785689880532892344791578106238024767330389187046056786832343336396364746559212857035240115400405209058646134920652414840591718010317226671961080650911547575591027532015453555137552199737021943856389249283770915687234393791939863348691272967216404008632697762676654530007064074339140531975552965967157760806301517437559478036772494518681683314798229361950815215932821288418691566249373469871402153530873780653644892248436281100252447953641824173842799993309413101511545088065434976135464666057524674935417808663705338717325355448517912148563433083383632405331755336968875693413752140018341314517810239762890544578915640362325591474757457794738442748275944727183463574887721747853752494249902924248623460953456830244055612311788839251215531201617471683398794953083640255436977475838407093624263492991770512123772699387919016849956078831436378392459379193874570494501547180200587767524026808302239710609556144112792727149556102653780832671270631501468763089342591970630599751668345322377506145485876345655886259663256589051844864368790089594365120606800032724048821188682897881307720240087052725077758050394087191526780907031390583471739120081070972345099711114135997527779463369594669180470556330898721783581075126469737651300126176831473368277781060385148000500259980333412467609860158865431037547462520121948709547040124239514137409614000931232414054300922436072917956063845863503666503340698407449267172541219804587047295682943517881038163786742018643773741508405991354180185904928757247916895618950798769805830043612532271627988872966369378965306667129576770065340927478674658215885947257769116005652586321018331218954666487652551440446756336101789079546660079571372510119138971896656204983347154513786919004682220871661910595500301160217194083198942241396065129057471558734781199339385742103437416125532051485160358266578201026608316482542264198090423864843743613245942224559543957592813486563386519228848586539076402113659761762564187865818613787897526377777090749727824698746039628227470107569708025879831999695281551994668879692477821651240472854641488848220078802336069233780188976662164920524355186290589906550835414064891153885108329988648299452144709559540985638607636916277727275621088836360225234268294897277196041407419612790745100121014486047385594296836019654647311730638222297657665465504796961247496243932665574210367215276256586185186025984270755350191398052349084932096851877675229812798317737542364410001705808674860292071758202844173786053352888307173096271407831152159277570505895312525054980889143239013935950809645180614315137674656359713317058700035280603093940607040561541882309175931900743334525671332364816543032915163150839037670876197387480230558765661721766899775068991372488948730927589572073505733110809911269318653638790650437475757573435851900480339718305040704103189624284164006882359837421024431874453827746127836253808747330440069483793434381795140024640995351753868992661487445742577703295902741029151795958392189900928925970700488078545233649860214366795104163358013197198440272195964905218835938426909869515011663157223207207041050851097169668894114435137118718104966027949017269760940144094993164070574604697016275831295540596781569179088658699111149534318160053976172144398679444335336248959715408786918076176153010013908078307542388928838538592526233599613999616386679935337736632285539912076540960039964842506942843395441266214502653985784745341112221388481275261739551517159163548628117765102299798414190712202168169449236253508167130831150580071465775040339065845589187090331712470812858793538090808368536173085121165329838312982066237572500295001223581806938020447991813472492894914506891767748795531135937685573316314350245588448020284801295162083518181140225607082242992297534946167634046155819081747475336280981453817591471163909721620052088345560075925737123633407046782750218392892228048205119042475462640676076807658393713326377091211980449071413792014317709833811808833216901891390020408113991409740271871437473521901422548312249301251831440802433198661221510973873207019330223022223487858244769378675276292823235949135840615852740201705096461388307910322804761145584178714677607804879059980568211333742137908942281903506047115849047763814217840359716628193739778758907759855131076166075677988373368559632231795102818596820818018031887235448987492436014403602546863071714734321069029128198676923633109031044891001295869217831328289731627620711297209516577462954676914358566808163753178612576080855698883533729920091402717551971113731624369688391459891256560472973359648210724057669901097710645610244462029869645034045939234043714313349406245194301800469281358000775888049157349926637786093659416349222000193825274626280439340304963319151966634799649121694458396992759238898744580011933710380626945770084473419671431310765057912985727577091896118163176783574374854572483076235679820013519349092913102643800583482617602654720412483908945838113335195969004128962124602513096160882043734133817210425632724221139902175034320093375556103232025537520349185375332094575781273372133668749446843012879150985776792000255848454998916093834412945375877790086533753374041438905536755087927157318915770505258094887109949316524915318918821260419574266522611073526930809011523612600631265156922911630560659665091152407023981460112362218010042018532295433583592131497308825964156550683169091384377373254073852288267139545362456608993670453636370967912717044693964423519538381812476892258590693635870000918873895219654332626645760685224687812717970907884925895817112486752171585431599202406223853332462415211077066043743450506041924323313147854459834573366455778429149021114939826846784000813892300555996522253285164102464632026688004460362829676772533517896732531774648921369534208418178486490440489464375566153953616376093343400809501000275718715909633159041883648520223579380488243458203623372478070224744435160556415647577503055803996745999553994122854813461364701699835856505650773055991651137293710795491792496814086122517563726712348245709113053139653098467003471400204824170734602290624746111600812739052137610477591352257819247784899891881599003390160783264817359454904090037477758825325136445325677075944633859800800735606978055896023244959145171303314681207935131602610152421805554855867598786608885602070488962881799858023725157110377023328950380023080221611946397352812138464933657750774416147917129563482701152906270824893653043694661003308460439621452712648296676720702268356882192207865658940899969794304780082249629898161008264080887661318550295587102651812979915930751389897616301331467586288913529097738245464373394743811799847710743097985885036321750585734805980467739695527083386845320624354393040556276199623924064350153284568034872765135588538529329359170533181671900927041632933987337749488490212319040059794367406205288910567767226272112454223960451048564228836483374510821323731980602782649964952631321655135746636119221785748910121582467407027094895992373780802203311840273316916425012418236454849349943149754387549916521595572361702114516588380013013544333940372224989253927154788000841849691368392258392168068940105487345760901113919819512818220908904952100974833393228534542780467985173479356064258343674273313573658051600950003298396679018959900921694414796506492186453334390186612004387400273165473541855100555896922268719684935564461813428173639793086090651131626782210558093109091471157131947769615347886262448082498420538695845128636925402198630220338066057341748805117834644883716293250102909013143138976059072480564139593610975157599009319511627402899290826511376341467042232654939144422432287500942957498474717079600701919423740986235544369845486817502240334128804125777311224124365675231118898802251844421936132705018961777531270800503500073970804929461061512747428040662048116874859009528487764198880890577915124591824378995401408767660836029018542001331173288273191988482638892489516134453536214468649820495322633361709043392610735430556516644518103176840706600234262806887126361898646429791848068949975490255475195903143033816850722638403080848703074080592438337595294134341615200175765077813201243197976589935606120823385944969069409772221935887148712908533839526700061227149388261073950700816721571338000203876442367824229609216008425536707833299964121851138458114082114449529464337547237084182950649366423117460886876617493735736319963021173188364399305425748422944510202856831378500638565176272493423868087573460297213063251385582309683416606178964099204856055276276868061626237755328791915952930658142018840757042346971542664262410723135947072586942739848029322413990033789903070988684102572430900635997026752808616955988557735384880009834745313503601425776353981130397825842296007297361943405452840529562016026058359487169777106002414871222013060748651951577449410281468430924776941021386595120087022906104073987978467499386411481721838912880517384985666239655609941867350357926785878069772140363149511792208781357142731651600548562424220251714970139169944606431356454284026698181627251032742420520989145768194253128442182050988497562435823862375035623348524846664018813345047578778310569407313689701025893088232179469396505791362754739610273185230907523539187493669303324467013962216439936623723028269920765392414603624580384844789855153572707349906523446301412999270744321939103174734159005226412178437658269248108028628551152103381339493242523745354932569568657501249244078362683840165880371840212579955326467497282292831973696669385786372958362450514705399407778063725125947827702691777806227999117003593825213751798873176710330476332837283241585615131548380308196946419610384909446102911860765558492701073751562838452994509311147245847435980468631890311488861655320784752231275206326676681278977596879879115145066375865751839680914091330939358752341410100820240741231135098161481308492300311575872502260068745416507315282678800084690296915841128577454880814853173228353601900200042460331743544587943846754066040958404866160082673917195434471522392573385314612111326969241235983280286964510493236737789027643009019410919614525432495248070425082058704286953733540387775500127804494311201209900869791555070036994654658411965564370226979811892620567465394908087528789505791805178750268348150667110271164658022391160617720009852817883888106820460783764850288897268551551622894939998401514961054953591604361381701701688727355675389427703814337715006491752304330809570839799551925784857330318809948990388795288872749986766108822996043366266814933444356072560978646451510052698925044743638507273379499869772345642114405982948021530940024964531041005342689709845736321353631147254657951816410194233374868155567560952554708775457058668706306031436219246243656893063452047405973904440744058448151004310476647126290752845241305160742732580094390453317364215968504355717204451116509492692748747157864877368864655158396845984182372938213220731214929474745418279174287655727562939623389887650841868303000390528979243715560647977567398344056609201053576199841123922037401662117543829190071377078058966477677372869710477755132636024984826809126461453149744095323915671067227498972051017548399718909257548844104751616807126118226111121832998129292900355982870848051196644009579519099613265107793308839471980056689735417155274468542474655138979642557264332508617488798464775852021799565714138300089746435344033442908747342274027766705918500486132332667619077012148313275156885509979883042366437317477029740028790011291948040275903843800080614562271624788649684784422483118446727471391254801088945152185918043859192299547428226892757004849436140085785700498893348571711556547939729855220086779628781463275690066717053193805673810080239411536295520947940106879196212117915367726677709168744364176505712122302914072007744721023923750964000193996088943583531482609885968727057988215559610227547457221817229942981216811237376343454867225438953895192881543743870936580064603371405114520248187116386231050356621755258132055684101623217104282884713808812891710356772709167036993941887915019876720661816532366160814805960436322314866123634697141473383565823295180795586409007520380662147486314223579353053032166291584630021225503743473890389641343296971933903607930074505926574854719710247803672334349019754513053989504061912037706396499890236950799621524130451478579257821745424273013428221489043110101594398073473009648568090389975373089700440459099859941938272568931388884107576613424889148988732363311354523219883887878855470037420223463248948509263575781898625218521474896487669364186420206839884550391923885013819056550588366967291453785169408880790825414273933983748804285319306150926346545229690567004473507349127527271558657505592953061268454690437870741737498114389069215193361060850742800834186068828897969991444292073157628049920636965791934497519694423290138414291826336142391127577176792283931744596985873189252350437221347990708477865430755967501031358575612213651492004372855014557324801803110630593258283534807766521491650283872690781849270211767459038328827241642629944824766047359877273545494868847189120163371728011777121390088401408771220306652164729923763863275943699284979871302020680567281546834954294064770965061683816959051541402848289134190435382660989975057855755525167552380798934616331743536598175800025255028599760143873609199478758949085777698452563379281024625332525467652569120360523374758394738263173609331661885113695222790030067114192645216545898418095116588819715847773011366429920232421021341580218044345658531582900944866776622796158221865869510502868772539884646498350036898798585474053241990031165694691192992069678640637784914380234821692043863364289931396423862687583209251778352078769164538214581258335848718100140421722043324669370285590178022204375021918618017178753300971516152011968623779257864376386122391789654314854906169428109654776110296428669718877519319547698350478281121945249371390682109506501280397209961554795944061077367069951191680817749405158841519804123556382451328683840022043391114901596511327625090151188190573319005774959388746165261466856963849437784564980620843404976427908697034128033699624645851618429683181400854757529407264845861969131484885662845395417405096101465579012714269138662027055421859724599988279158778687379468137023836689882820291984851643287348859506346275134125219679043823754964666743690471261627155756341088815842934605572577116649609233070021427118590224358702031653385433075787933597482659722638392405446753090814862707301685846397241514506104296435379777323363103186525862541181490730015019847538080331132486619156037495752911202824036218655314985144560959829307187662310978935993387394177424282524188238044076928244513950358491641240042861080792322890778153455453308527806445558213796260776663030072923055536419997446704041842832855099887835239225322134829559101107216015895943765301515623909459038941647143115104000988729711029967068971177249627823883832066624509017131378898950409244955515292598810006565631558437250327182926983087355638024177809546628084717630933464061856800483086686175777786132579144577674311511360196192090380655606442563758448510461127787133141918855604404913180691888422774333073210615206400012800891530798345997345287037706436054240911878685223035319845857204237076120173660442675805911304191503052881468171011332888146406448313434773923105355793313122205758985437876867225675644657335766515055632561122154430782575343919651890732131321923130406422488078774141316959835996054723784841859778912402961776449542801359408275419376774963486425561888103426157011867098225618053277232574215057256442718678692267296459502652588959272721796685721541290936637209916748797257752477339559885782634974852731587687586649020849211025064703983927525969193276701334526490620803085540013712386350032665612130579263208459943381048821514554094596867259702819800959560269925305875773639743440458204443007984922326441575339739397330096248337697192771040873057843224321531196063636648049627862491456148409621390704225021340802649657155479597075545519067552108448017289265256944020653225701579594841739341812581396600525246744672214130492331041430278129170523749006339873985745204278129431945190486596166846374919510709873947590275103947140636920387095011621916165316659658656440848591403603688807940431823801255489872232632094122612566560234012486421963453651107520325530526505610650468670572651781238689663863494529667203029729917917660072929666370540524157018044542522975496187743296303622158991849722020209088984544244740610622487476142337082589892615143432071750280550369531666798625448158241494043704043471954525501222451966034631088993167661541411830199265699270752492481233611742118235309671220957453606328981717962520630851441167460558485728348982005424779192988456139199170272506552535385386541294691566139624358935124616657279245454421467406616062926392524689184472339067602188339985618188653374270237937683809975763477784645166595777206115639679033568036701702822902518978645080683610165719270367514020478620959466621798937126401108890522340643747271970296142678806699362045236076663393079035840068257785856574376788875561656908776383038205353134107226725453216748561591468020096056874364849469980788434198804496052941443241618241663339435940958050741013551859930167008116347671178103875429820453151262303757891045908038169065097155057142304903578996810466038594588239472598418848860747905881168059854461655662283802063933300310808666396516016255271831926677933106708413819158425037587143911326507424247240118830646696331144124345889843626879920405358238007654986760970017486653788542196909162459896253823713614474054863851911531912329521167120042737123886480071396471277679489864387449121039246437130404141590885677634967186690205964275295845082105098201924019576639713011897702629780564132985308751296533454624847517295644935141963133220348130561346635368289162208379277018793895807844405158067744288516938772454191254114220869117383746334797710759622504174851058737517241206693993529438752358657711407674561219443066896576383642166720601679450082005808278062717652979275263210821479933802305701735659743797630317324771896292389744331566838148859434148209722721965853188174934031476646982592733681941941440792552253782505020572217758635032555627969466608821206126514221732296330262498020526205275274861072979753087458736555852706319303246807453213119638749459468722669369250079195685497304941547871161779637459178587726073758491001517527508903098421849225456927193867837603791257519077295811245676582905516538025979829634276612766510808461043538623424646509991241014615062973510710796981616354727144097879203650750369835487460252778244021263707915291681599985038766168488230011164155524909814284915273378135704558548790303536585899646685798491067827186973595948588789676731804480424838166045002783070787820001098124964657321274958952226972891532494862229325348694050424794354948198918014301058574599513822855174016716431581977554494932063479436818220386237921869956726695622289125056700039546331825828306368832191470532564812870417140204729070492344671935464219664201077161130352845077284445317579501775470135533961606200649091451885094453805561271586848595546785072350268802861172228920258248584778501112207740425424984675488624793063304771353829646759325475863787517736040198850618239599898909405890328004769413942419764594767566575420136451956632636235597193317816744086493025164306368850106957064229945300908583466544215907260477229324933342574070473276594047336042118198208371778104382719428762717441238590449451467398048611377134964092973413461252466814093579588226736014716989888790610238574332043375484742488806607766678178127504206295449999021819362504354097373994613440162894914323064809806822571338324101806051135219610623981457881389080410479919296440874154548227746360964956537351335350880142090430339355931181019998918700318885537729250370804545321575070312484165964283246011276092942982168858315898649921327915511230038109556876648866472162081349053050530652777453076092716718934268560310747133330548752070667446076398190031995074109086963420296360135434182457762114542627468176326707137502298976644672274047634247738291337636357262204298663524792841447812334309527707430708331945919791156907307528297238446809586094078040907365728277083021283747939243166758014546352411366734972312558193560387610128577010773224509507536718553870798889041010935645182798623685356969693248919080911654362858605062126092402052645406283821252502424102909087200201055590090999386252611764449362313667685352090187601673186505511438217808946144142463060714566876923478732708525962133724653038698298847871403521788168267002062197247042100809068452665308782349412055673795456666424484599269425335578224701664126289170527768187809336610592141399261935012589364492959635367952615417692669006714898188691724070366336119485726447294857811735151242507606545009408159480515955558969120206351490100978599021609667251568343334902338297146872815778286194652414291172100759208425078130423769198786760367744526422564790604831884443075713992287884505808170199166033594470222906898029295849172458590435713405397447474842411933431768939231393771502835741934714050627124545484276224227802955048781835098252667596239157727565423088932735481026026965601670070125721374640213125776153046775335720867300402363673957262015161502424014222256206485027675826695814116247232024527880420492308705563688777764683973954992421594798833325598922854576835335492885288720824756228679655948248498710538430458467058608491526066610307095408923429347658170806224774324207647567316940169607414238630953888288459132082754075583930017904570036035508152381920223560966214941546498523876519369617263821987324826110951203876869973498855853674662765297971565793708030801937048072905782714551901244218923108948449374058879479258789598452457193535717883010134723593711868815734058497058115840636636899035351815018972132519611521884337482765310077703986138226850542516770745768441665458231942269618886072716459249479836625040364053240576052172189172998172059197740578054777437684476937330132646362161750806563963154442599818928463390755989918420128206316173247614987985732001739067201033463575732554518180021334910327143386932618043252945707864829359445881790141431865344569289891270195560629597929596668199809971495033116905349460843295063343636298001071651205371264821029086558819635515971822802209478848286525211019662945456435841741700281607257315466402604221151863423455213425906384406796202999926807355326241507344603587137039814468985978142789158845616464968379826004531358892622676379487637175929120404202639632373849234683549730744332343986628381525328645063324006331552316573099884358110177675202050105778046406058591204565207831657519396720724123464951813615080504170678186982580302452906627418310656590672842506591813787612940217967234514455624675879364549239091634157033166561081516668767790275383607144068164966396275752589495604795115313187446927021214050968667706928876627522905248455197148819787624829698685001075933805268138510294398105312347672027043302477915508672553472270232551570015785391971451090738768680337674463172349946862971486889943944306019937293584417798305855378835692813774551926288006320734132346548212546442530631639644574065151567543523671214752960718814727719158389959380709167305270403595091609456193076135305527225738302773621336577696570499526593049863199028391168105770614976653851229443828715362185936349544950299712281708857312656083233126709002840904123906785268230555182838971095934523967633401093523070132600934631692499113214768229058026908299099401630000997584509590320042846349919007798111917695519215503587098385067613744363712360158147633264516344542586564496453692593980964002776064840610463267168156008418913965309400758920518674955556034728102815312524234151991101745788248130110459515139719555080808563028259592237407892318154682084088781346742835790822250873632036246770194633354016930079541537396720450651052788148434755069740098133112949224785522109698196725111250066206638138960385131941191624481579005205592155989591424699711436620488372794957366080539685990444862682776822568585552471043724791616588022257164604269047849503264072466216932242792382837016923108746471845443558687188345792172324449394768674654727188052537578666769191621989804557106092212145143504742655463799724713223099872720438365593739311290745520655478764568816697271960770046442131972409055860161483022665270804855213413573764430767717086320681595036716186062087712011585923117452774862264950524151721373169805057152005929739136306476052339458869961314139157649166208354100094481142838619767353167363445334425643312434857580601983319356180583345959553287994512892376526017697301629551209459848776061420077516290998483052029303467436401430938011601761843843873717986138660285314593781424194499601798585726616442350399001828877763722682844125557545977797628151012379684667704465472350918726481672140846076492327360549358265578589019842888101007882154186026981404634077343712231823209207246251151662124531387020411831663213565128084595542452306101405835136225230054865095737264899492031115227232791309789695221679318586860857139554311328002987590900091919482548948293832916004367474037186407695490044616172802812240554867708158298682035671420608728588485611643334405208357376436443553523678029667903613488849608604767798409330588902026164090881568604851148698588735980400015066256094312320313996891773364145356344957146653981194991035424603763638648698745385434863049551755777806570292006047890199969190454198368947997230593706465923252417107375173220882372007979649089410748015593190407807826055989511636494589179119472753679141851242929202956049153537041766368116122307290921463930632661384431962767380815237128294004166149043428866401125785794800244243136830762471447002151008700310487120608568084417336311814880516646631781397464664362409969905239112662136392276600727360946956635348143841894678497028188086120832739776287991228001648152866983353771996449102028484405430580632835891270864237434585530496383966795071094408239773504591041776888385688280352204295272247349694748797812397093989963251659951078769320371704867645541471789958760468261168041687113599178567471463914168601756382317337248270196255855641427253290567231480513195670253376834074769327046662922595694105427634204198993462393811793549668820339635226208960816013308173503530780063782683823754100368711192161155289763310712076976918315833917753062811876490596121000952291476884775564373213263669459457949892349101580570140518766890639497681374988446557039133527952953125784149361781944723409195813932189252482730474689080102011533054162693916501110411589989042908083985385385319596888595827224965745043532354642853808237504912674969534265762420535537161214577477580943136465300663201949580598438178892976324040941235140450930090363501077810093099421408733341172841325424641145008367531766620999703415712100686966665612406684325384365705131249783499610802323866997083678448007775245608146974316834465796944306025483464054284592539631082136595499691850415071344376959054446475590074636149712667854848515732234183719865594942065169296778814235111121443970450923797936472670877094704204784303403125844393607746406534500142371252382601653764524456373153459635654214900460976051477956431285295628405602073989837954966320249803738074068507716808987325794305113635146159869486057715500208514634617769584403849741985544966996490055641067104987236330878594131090425384390420952706126194719901926937238176997548613837091035404945091640582730475856224667514552965649637267659020772013432440167909337949889022865914259332069975965130582033940732406375765424058463247260957504533055555063393411995054458318811937732926684748783373118226171545088804676834425064675200821078760863263265058672820645906090598991214963765154538113907033458015216477289642586486698746662486947940301891540208222236396734856161364708477188754784605729183308193744737305849740969596959448950626342118124584374567284252427367386825579756131734569834423009419209297218602425474135068239184806632242713070154062256417359938939079059402348629385682290127609384166368727125330621816588066880831856495140114764119486199930839925250040034069885570693637319406419426590154366605234637348462769355459519759141912883415316780952775163493922600471780102056204393173416657645743775823584991210338574597317120191072908600497432222136125841842273627766685428769262663895940500346956993054147940324184680311813022401286474236521587128656583116941046407024378878650335940261931715977086385512453234771829110934520678905962612212607097375174132524361514396327143646885150016813241436781027396338726948662990930330567557347675759511657536029595781425400646774734027552040102750450912108093307924291004301483700216286826661150114232400645918054339494005054302926299115021495323159057501945137353272889806384673805388363279016875748308204219605165901694335487540884503503719469446321897476744450161881327522945130556569917115969670138021541904300908488199430432910098328790126876459168376639260265825876077135077786405344472517958208780045258496587555092183713636157987378156586411585392271274444649893521389762091216663507773907513562843938853841950404489576791837181802682722787990325225727375228521592435599640429308599706804785438858743288278683906036882553158000980878343695211974861739729854610874028577430433644176871205757051308400584749607569577543901059834852076172617061458471492023781044480434559349607202871274887100222326813392463522382547673642631065271030799103720168090771409184105445300577764506647849486347011803296236262327750142661873791789900607562197000294538902141645072629199545948430910978972535573168041772161233756504731281852470868153320480608361508819160504342671034484387187598117384963888774778300985071542125756827502442297561688777508860080750128063308930309216609240837215885476155048854279205704301284751896694872783149307892039562193888814099237235265821884805597284078271238689057474093189409900656039585894248462763388678497974841571804210043286436904619975970799021353038994921852854151161743001298593712813358766574218305820546850266331785014606607619415526088613906637135407699830123445219910646166918426793477411951709684996359150980740402429240456756452397647590410715667425179171565988348697343365401294047058609694926428108418301991130726668445510781199259218856774628527141879847164096845133016084535374387058430989454864584109738958185473587922266729563781161318613432132146493133330624233220958927202521695604378805969079982597067325938247677307077343239624314198866655436578520444380448262412220821598253276686733668704128460059779061015920956580533302260170838462931559051642491645101045168659210115409948221880068470404049101007548746620261463413747877275843468340781231818048473154997812814307618045399303583206069572563270104470260184502302715717503450544563867155072836839736909185791243613323468648393866957486125086594833818744081604500356561086244037807099702282099036681226677915968231678629921901156328601405355403054668682885330311416270451936738274867650462581742097022334309038937108289271753567414106371928733739833853189906373826935455174232675867693428635494357753130512713933421634019410664797507806146651064233478492327594020485947121724666467676731837706552181585543670448124024306818480079925946830855559842366358722199098518678115438398472895478630593859964421241063220418127927841781691061343172321325281795358663372007536509716205799531006747231029391682627361358058314546533633964408508177842221972552574489003133816691173077455220379892375307750758729907349390612865748230823957130701971971730892510980058860632672580862550832902570777011786468233812225484784530363478871084490422854465567616801642133451698316503898270761094257620313386641913964570213201783349392964555968050517549673849269095127495606799956940122869883414202164107634144635824343543667290956113160136322434392594880507375227280100293771409655818229218872485929210623930378867025018864132997259998823037022159608341528761435707004636411690421454769325587037249503361742071808168784859099627423217769951213059236941581096805255680573666721446918198602001524315493561676505207413244371470113675358723113651226111081111887419232146102873586861039429079565117810200362957716554308264683280653899026203286362867337559179651827767083775675136034528104667171371347441364391169731167478529273210957498239954380589257930366902574539021247523405489380766924978727051708848485627705806001048020372462530821892003632944928833824666520494350258831138215951616814382895734772676479569809437300601032838351290656038850578603101941059563653803977142840041665209246060921980419749496366041368142746597352263335429999341489459512918586757657569457449244204578987546331575921832358322989480409347495471688672204208802500476484993017120069654495539292926233033223136615375922244137825689986325540087083008154457251002330003161801804219861718777364996385225665887916897648420298846796029648048735049041811848917523430403781187435222839080801909411330017484260589074975950578258404543233139804176942971120075192756301600952643851362458182421319319576360057293361918948583606804600837052078472654900283412637359245233357023518926712680326772046467853883072450307665118130928530556054318634874474465756636302205636313806117854419240517595510465185805321902705759096538047243117277582872155664134987048182089011540112665449050780713237753436843495506158549251818088531495073677972678966554422958416584801963138006587130499993443986639851488350719768665696164764109179714620848081090405430330214528612894702611071681703587350286845845464762878779124193131909245142242285250409656403659409496578983677942446059672764357314627486355823010182994131077863165458581700685085760079430886288104848645384037878728034642336846919078791423107938274290223905544064098147614323963473459538788692071922633624949724817663630683187441011901837921536501588418996735162668581771498472983293757146221691723323579999641215874672504380503102232466447371141819692690741011985000922884660706895041016757537677018437359031448800634166896597435014335979733149968954673517275123774165422977302665135329682855499838930330391561611785111632876869802979445312205076320640543339223376730873190684690842166173400729367216426846970566122715130175501903608923480919687651597946357364602498081317594171919885653007406105564781780704382909282125565633524291730566347979572626035958710087822831435511718458672694870791216383145010708748087549974460249235247667619545226509201846111844077853123122485923157023346140047701962470721303055902318123600532544767815132619897630839174486582057491935372271069380384631903203545028919164423146352611106395606348209896128253644102633838216305194985358894917090938975141857912827154481965696548077926432904449764353715801221457451664616480233637492789310438757046177872218764209732110499298387509676959117822994001110600790221213034669163164162208135663256629745899566293558971485303354252884565809165659316359462121669110783200519868032625093615358465649703566650599678107321448175130896481298431877488503511960265501762206951441285267029668608771673635601399508076132524494965035383069457577018222350414846187962285267283219970402853083020071848848122595041363378386326660033192653902546233565961801404366298802433653324218642173772457793312425493308560416643416176033430456424802566728038511208414010580046936239111649020129727968467724089163549904648158311322185250815810054549716367344667955719965840743106887801878010016846332685112861527257219849012687109346579295982924539296114147263298419893501695912696091822215524434281046624253070746898190964666131437469853253179161425861117980434396278671760365856910244899631500231506633807599827049564196242299977255044536862610475979342601930676487195028299308577950167133245708501694992925215543625119613636342756334655480508984678784510255870017254800475563299819281017226059865315471514967141503324617282930956859535042211238610989028693840503337746001259519835209720905441023078840523748795926052162925135386006943661879801664400900170739383425698064852713589394040573696831278787952078436103409847063785135505697772286483973559453870603139827798332493288361018033785174873397969397261351845773666173942023795264942031890529444158995546051086539518884868216411531461254369542023008506848330569489626155396165455762625657150409822405680129881271198081688977889076458602541947705436107321221097909797861740770929272981294772131195753248708664859484612026820725172068681210302138199066510237070971139101493319134840874630602252799863176499345627410081660120773237658870400303106877193480679546193516112568020999897643113740501699044284333028446102773033095604472007465373147370573406151636784611010514566888187966535719520446848700393633343203193325162181080466313404781334357899236025495740666333206223953022117309631052817472707787517117124199621647114099321079438958525762555926300944764915840420749542626451204865056209609436455269266466717083809282183749875050875980840693881798274199097283122311982335388372722982023774884701541113069247382992644041265757472831193063784167387590450968636253243252874774427630405896081221718281990960573981480294128211363214044619246999813235292565108356849189033219812211872396074713803390158432137039036927395838266270131000668799105843228006590006020366711857276250425335691588665579275534585066367303957762919485590795500250891516087332776123810620643146432861397036103083460132503000420598003846355453614232771844848541153710388273764921242560633837571402062460531303789089976652187749928769508092336204620233808132583757369700573077781098390978612803849616340081744311219204707062239805509249391072994939668816676196334838075090374945997373084507602663347430460746880292735227859660163340133182755066364611993993019761079178225036821333319202221829582328425425108469677919399796947843510593752858934444730594009200842793334016112198733703942714800425985867182156840140393835064452325686934034814551376744623326295720284453999812623398356795811905320550290731671777557582532615969580156646978670079000459184385328658027162441511866766919703338237311887006275978961397739232794236704491942961900870330992498224208075557745745696750774548305429766697671102027507298134784681945444854454486620981363518747641524187994174724205661102297860206577272097548964122803387962525286530634906698764788670122162881964906417780829152024968560775484131546643779199203541502282546968425182813925904083721243747944000014157124003994947718285612753268228518483964573708901000160438117156876544269307877530179304906511851144435633215423596034455631298475691511183077561363006732634574230224633968111136479795284331286071304188286214249002572475444219663678853686515127496870215438400580014657621958979907937126194391318508608097399333537028835096460408274284484864456969641202080469246044718948613312423482413807968374982285377282525326025687104383955523940866493977721237075822538119828713684392958720605077139629370086225840396986467638118651881253510570565080257901739958516367550035223949946642605997035356703196402325772922829638410092659664454592361354421815277245832724227645656077366845521009977033893926062220801568129291715877119494822648178735740212683283948281371259483351845780645659096346904642812410678683785532930476572084422100176220632885349806394507630932500576908604872542973176273908558457561212164886250162647102114557899636370014339101017802370073550378490861757894752305643135656419613179857186125199710564106662695875168308883555890550875616669973923297924653128694218345917405978444699787822177255868854529303984246569722895095360336557105483658550896334924833432745223309108937583413235995743811178707962518077547028805956628675904030579746244763998014292466004223333329577132557307856394072391599560569607882423154142461573978211049847363856217736318261611477474245287121865434864952339512257076143742215895832235010807967399887397694819011993195216064184079138601178864632559915399972846637956239665981078587353332220332330577858020647640126218186164099275653643407811111367219767183140392747646973083402974885073899030557194817124628782904931677660268212788481597358457086155992807033792037406862911318243865853041468808094169698954445411291640668929032026077335933580320947003899253716131706077736457368192225654602966109173865826350343470933818099171409736147557037859267970099107697427570168598433104466874658992444109638636383618898269448802162353611381494973427428738796268780573440094944564092506441892337811457971691004578541904888539882899727791598320175766856068642469253614820018187131305184543087562435991713195349692890326140112372832011889562683483946754054499109872949133694773965558357791643352808479344618340734252125953745591353060415138513315359594204637906218214089797440909523201939183039168956380599583328807636341452015415213985055564787603573272858057436406328610782596578036230876921082003414630368833382213630054299456730732933164108834973895047373978739023416566096999202582173723498089080210725522478924802049221129042827817111893405647359460205844997993968379252027879839385415699164486466050981289202575550688844929480772941604034003844202280519577409504061656221412933833359509078491440861115531106606205407042856189497730828905398603318042716059007592914374237942631569537889953050641784563417882470454072756556059272873530748952527178148697359195013859905704577873542488639592513670479576650631342998680478179954287030669084905400655636660511333134946054349926697432994803648848530788877012632728526377088645027297481286415170693297877112761486764436301183693364159963322960630717700753425818730830762045973974072820313114735553246829733199429070829924433817998247475631169073714120456615408318247292067656775618598099614560261908872564757118283430349537053351867268511622140039041823878718154756438774998390825022320937468257188184519033772809151212933057240080284709980433698410717942858155772498608133216337776185595240932354123326323456943756389076876838332332992058896134994233338534809272421732059003228871125474076520069386804173863875591422135893491592630169047539924533897412467960257535485521059459104326304486992227008716524261338497403099534844944307501512652732596924668831476524184556379170187474266769627239536810425283932898637228992186982091235782365515710238010977665938440789220719559869106989953599049987968878349976480922610342884225570548067573782966036298176598073403454413255374399640038960691131358494967785039870056277348125244689772127581517089404322315265352502605823903341947870370218406015188248876987125977607904680203194915675858997937120477187422469129723630493281855655996760993126092006582104184114431959711355405406160780748278190581076574883480766132960232306855385048220517630298742422083090282563090198600012754463466201541324114031140415019407465899148452669558715846858395449655577687877163445797530763381579570774221249143312512967181632903350812283766402760968723010672729611721152954332183861730688258774400730022027600996997000813461575622957336433013376160685175731253173957987757661027452572429532559063576959399253637303021896487831787566534058019610962134749018103914688155803865262959299164540934373351736393361519632223147960521810823385693997471968482862367762920942857730682605888174424354644104604158129149056456638213776915716822745875051708427744554389467017990248559340931947744378896477059087216612647926676860501161185753043992974401520011021596384450354650709915536106851231574573262379450394919055231133612857998699489868499088012138764342230290883745548321516421521945538190881436167039594232426108883694912095419611419176406512997425780663939124673827477764301655333812025931181332334747157440205856817168222533184624838712809818402363048192510541543004669909988561429120940777974698440224986057739501953700872068840158276698694430112920996334499728876315437359891879032747698421554832693649380192805679861534643975788652652792887255484502898072567528509412402744645489783280371714149543737424515437597912042117782737103108920354382022782743450734576174342292260462402532889159358954457334111196941806383586775806775037190984772704910309185249855374411846730723721377048990255201432619345509394347384818796440093124656338258501312324956446947052795616554262599556692613697478158772742959843373162996006667955702744089892155118390099569213866243661057925140132476412924293699123562542489265016630796582699941024317272195579577708372275322040397215081186456277052416654166847559929210807888943343544051764946089358870745615121291014139083313242393861707365553604446543447342961051347017227656779596663289842691675212937322799507283945924416407656384823073557405090438023882276479650486722279343347889230568896620391478837348687539061358434711484052775905913030822543769926834077495651639964080958467220652621740449750183743735830677317393808238420411823661196844374596366646835778436343383857974435986592460062286613704935584755197266032464670166822442983340831566009520775722469263764832963300810885447898838538187080471959034198290650068052782145809442417899046549960307557571013462882108752579655794959500760598802622638814660799017602596901531895628681682180935082379321971992139011707264490868179589195690942680747576330260644587898084751544191616669082572700699224435709376757520207330677758032904964051376732527130444828128075696535081819726438911232710052622266017156395811520080960982473370902430510156865395883792446717665049357953960703459108277925571981984374834368658848215220744340325508177120238393744718096592864276902540499690587844286290979696025681444126351863383040771207816062210572890827697850790059849742721813803788934456461570974691021175909444892247709546019818376348735179476672970946792002785330420208068935637267100072414580956390002389162699644156753425559046186487771532832157185831260663409959635342041340455294784351302035270254597763109667647627864375198040449030340062774352918066418470732498182835025885235997637921374942073082356478845190584090750207562163135979089765984065932947166289154250049461223426382968060097546517353139769293182041550711148770651763562002263248255058289197555970590410935921986539854775507129590654501613857860064315172301399638444933511432183125935925740669235183817488300277707940613548450400284746380234402201080611866968338430153427088432607266132938216081416866204190123150124399905366140669826814325968757853169410430942767028262024566375569477967451445196059396734427757718959606286420701114942707961415798684697338179216447124425147883992912792846197109216259503415212804976817737901510753292293284589070262304651259241495914789096735726486419638780901101318844398872951518296634336198123464617310465059930703783467969529671248318884699094305486494363777606181864292078274049930511319849805624433121517357809285568447692428834669295743633295530190650248422233746936758470353747902323364676817991539541179593399807963701523283321686521891775304692410107671678371658798364366684684097881810364546669922002337087639922292683624013328339744571134751167943945374535215913022348756415813509560318069678931772827294684003558892058505952082436096256486699164670896633605020371607063870322068058607002815454080170123359713699374269542019253555779614048295214205139865143327916399743951738035510825967783689404165031989458702238450545886919695810090639281980735872469636502210012203501121568341344458872156564522313669876408448634458515609289904488941940074684950693203522249634405176054884744322896492029908902226443644619730405539790492477905917634100063601647373473058118640980129309726545065834686548846589498511656432854765315366939076624635444414830836382152966179269222992125860590798467697844451908305479429620931293528473659984034581654031431678433769909674745166968452209517715552027356628313590707322989993919227161939832324582321296814220780857732845603713042156360569797004610986015785113033481140344398439892699452679891874554076311717925225983650171612185628817535939843778014961952443645765369982478038054488172586602130864148145192338458993241829745730004552687272308100575344576805042659759648708897630860324195251192427895301885951039414715487137909882344332514248281637872826415569267440423249793738849813367664810210486328574955425801525883744163338084975087492817353136440450149113405465444258472977246653438783111236992003687026036777610459849424095492475058930711324878841166725024758261682882256123530882285094581234397378541036548278410247009153175017049870607042219407794888572303392808117850611620437743128997069126517243544721428715869467340769456723515565762025995066415550159608688657256023139427952751926406299371988502251967548601370180252121939233001512536326332537879845079358624842902567374416818840657258583171855596789650208115156515058094302722816059834764912171147684175364826121413867687739334551875697402582458501261516961451006677691936694601326949393999600582314000778221251262871973988745455440841348833508017722909458990442751388517161882860397855686584771311981195294960520569123874193625108085064432793515584427185056142260074823866358429719840077571828056551486050390762539195535193749181742081988908682528911103672882680292103096455620731496382682235260283055961335305574282978828677996486380396739167386865037051573069347334002628811103507334386373822694700348424080306717093278133503083090115581840076381090819735935748498835808101888216813209615692906482676443956483046885934077435451190407846260880954533744307054064319620991180471417700217587549776473587274281172983037144909703189377446025364364019260127451799787371598143193745563779370243513840513932429265278781256103972352436015493039671740409479360595778100336174374476674247891632186925668761266001563975756019303161261066171133842778623582471869854084607906456645236514702373557413420794171049915893072061118890771693522167557013285511426236485783526848538483675876276089280741057410024319940459360002848404289643049521037910313061423557457941210613637944255281408671776476519933272995523713878941080745625448516159393793880840922425441145668548208783586275687803832451108068430503098021767789012334599526198284211926663014124145807099389937854514757556031861482021810833478494343107001354886324638613008061672952808156910826130872558896655273696005968127702416881226694890297379449225595564488102999270793263556030020422823944263193458059998834444120569380052581706256599188999230848093689350118362913772672272343354667386969622039935618503987578934331700152335246600556610149589429313527788497780657125450794517874848417617303852817975576263808069222213291517454104913615281743190117673821767647939941835198435143300896430042834124318187532129999507073483130446647677393556650033849765393828442518877040033226926549386999289890772707412731033585207005667179234696904595278875968708923224310951113161122474603023637470009043114900798591931528983324593050983803012713879866491396142481473900699370433059689402451153752700394745534560506606466459176847599985189803363887732234112038926873317600839113677377568297220378697263234385034559916622011998019294654338745288928613946594180767818612404959075824708817041952879510946588118362822745562714404786426970409532850150857903902572229821493118440492836495857183907795904044816114887233778588122379385281776956937969431507299729074435295542635205617277189589873296370355962394030765369809660245585805512260105458344697209938431803249391690489215837195695442987966671427085533289913014740943263573481780600164209278977488451588311458969862513605089177405481157878355203297770048736011847692170285295904441494123556639092983192672162298380448064836551980758492951102016823196529752959828262328449498955745140567323831479766692490445983974210948588478533033875141581786364440346324440093362341907019210789508378633685057893147514840033593803063109388763389158149685171784178707694003849607158707159041551272344858386641767635001222969646334893509953640127459327938220185101927211298518246656098351071081972805277983549935971554788216228469552940006378196207034135932380837129146622397838016234856467114281841868192376147740796941760795775865769182944784671281529713821183767952245323997798770173779321247073793530569853592769749097214829482457030940050667094798298433349417184781618577641216869140319629503612337149411902365903607799027206624508354872971498890328341494586913292381272689684234369570108040188723198348118037628356637365798346588375844405420151468512242588372367762469638586701276560381827336316025124858968903602300443390076847429479426241035937275902782172550337260099104683169063138431255499647508847022445809737902691551052615640215053588144584606034948073061132185212758272020910725447168251442731379106629424345728120954931191747107993168951257706860040121587355209780773736293665251231156585688001791877139049570566165961775516051463072324617611666593826951539110536960227647630507346738509567609231730068394270672002389002091845431554799044062466352343984124412838521263383579664245045995605685897892744891622556343392937445372090307848264061037769664297785573648536495661637456328192224151762263010330824097263704077177665138527139605427148772316577805717475721642641945580611412515948612906658390526968730402323705167245195927030239625096845638275993160243682475139160923643808818068797734992151116728578879599459547469146213163242649625856644954253445767128564199950961258199357420452613546141688458383893570085988541674250594224733607471691884753607354439409189414989511844508416611143879366897777536433047124262138566940154405901160696246074756418232828813855457499107724546868621904478346104743444245406228178829159463370789776981233941752731693052247222066488133176753917636284396981279727549401765567363161274116690801671967786117485317869223897722151520307242516308931472654656335934996250087149744121840070175937824009597238767613876759423894962303372768605043679143716664887003957947723535365017498252849999065921273844312328102879976262376735580611921556113804745441812813193346870879386231331472562976831006553556029048835209229957547452710259702046912771201506834300720754401992481434329132233163984880944829534842641260444000304233607549745783699559078596772281922696592622340715326463246917518318535495712395198760673565968554979344238059440511874780651181474841150008147461382777311730217946003411545853888327783639568825766689133297691727743897849845774192264912161368990154934723079680955626037199999135028425745621184724818374777129820934861152357905504870674876245871385771277579965151116982238612181886292636439503498820433299157728284378702851456892967596524541271604825142036666877297069701115898746319867021979142449112652479705341949036972589778097300888481765810763458317125527414544449664071866416430574091026039239525294373272638353325710505918706094981478277205966661785507209359154395265231379604154881296710555881315124280509150636894809162165089290242612737278039385720543092474460488683841284809146360189887227842150050430441675592938399118540301382183024325066467217233029579433091630123060033507102903939801646887893983039986122686902267768230358256789028134859110439042306935866668532371148243194303913007885278305841346559720116518454107736568910126906208431558423042653358966608401669732721207840433696443058997436756424951586961179495524485009833851076579624438510710137646931170493532874784120871201015414736078021259853370202128956500410843468438900301539672568577972375212201697496593739660501898869473503106701827677634795224118638846377808759803487553894907179759454711710685380637080814723068053351017579406110636130081708217392943091748121481148162066924464561175299611521070040042005475839766114855871345212178419288026130643718607621062644255258765574646934102680088068698778477472235338918272136156935223786530370491640828395189703029920126200280520961604748581343937303465167171649417464871099175868255847790435313943636141671855411899261892797314887053206495837928946630294310272202021294233380769065575923483483779557369818500972365249328646701790186407998655945699880965798551687341599749893678735642635333778104234886239695252419322492358669905259107915488739883039139873352986888752330382705210615271999730774021234309124482580792168439840618556883047369199737759255152066997258894284670577661258466077960211650173081300972349911687045599905844835324889327415589749520901139035767625823898439321006182500939589589002857468437120079010394629348533554885635238316381616991549665936555269175858185138615988459927391584945710520512450660637900673786969948425229867198191247157684430463031766621360007834326764500532865504187780084870228386536964876401691569453539233726383236808241527851750206204269307298848021108288876032816694629447642733357916174596453198407918739987914233983399948484224235794941920902569545565664307788648352521654734242691133081749081987713291600492346232542967329017451259822274458398319392471123234217647412015760885293744773838700508980183799870224411585804888893066322168398943174455513191307971481481241931305622247312795250375121770828696802406755529307509684846656546566224786558006678417297417454895316340562204954398753114562389358949019916763517561964421993263030713010049093630210986785241539326776539918193505854189659683596596520437701630731224590058168976198157771481407852313874067488109648815891020829027987638869623271141485689203921023228833117123582477740125848314092295640014993320824452331439351205477912766814958940188864068327614168937049434816108481997823427920252348359448178630966342843390261456010831535534777813421572731128299035645635135728295097579031757798619030988111836931923852930267705153803058021694048768462755807225247283819502833839487395957480343783838665371441316445925203640261458940906562740409447428661196113908564701108409732288959190373719993318345092832614855488875101324559618496800635183539517747266507664251134304370352523668445358101428566791050639747536078479212412115704511300844751381858742047395221473675500173369496420677533663498271814151848908559980598600440340988260483599445987911124840954560215477765033044968861824653232784128189926908990660311046130136742714787139881904859987696527334173648071243404830773797644588801629651726486304931931538799053462467781209681185294837192246011029964207779064311036671330572457218822607470241465298867595130470046584595187303569997432071413360742726287784295039521927217125582698897617423882451027102244432806095090196516428880521138033799137276174521566378531055400758168744744944464670661120643072910603947546855020705144941239613255065128834162660997733179042807091419085504028247482408662195026572559054937879846775120709490289028884213677993678947051893374806639360413806870779836574609760985913142153734234098413235382242618575467654464095048041259643670557162996443424379363798276046439793696606580133242546292312914475784093484404027164165229172710726977566530575766112640702461674216467512468926821536477087564778334742949510410482645168026979040836995204838482472076114668944340310801449850407949956876647978612629674150677185798811738544995698653344924094586409557793761559936178815888504829652593187665863054690389681467019528361509322779852130421461777868744947279163597555636228624846774337921193331147137781037536319141722053997611505303649372222315650196019569961471259477498446877867921828736160144710096743831700370632730785823228870673724337003412690068918194994326044611913411690338503058755094133761987102812985243858976750811559726993992591751844088351103256146640097940327086742517911240755679951077758446101795600466468326854272143362935567500151012949738186403581584837651775326592357315674452862456865638706820763876122479292835584942651048010684836757894723120959703409414190799462467158712606199248825834021347942373100422870086087858287141844015506670587438275166292897410912027451728234120809631470629345305623981520629175231768711744139201974694395223122339928446134966214002058881622474607447939231350538907284424360938870296947990415407015792999127887676181310393699181336601017690444344913566756672324437284599284059097640859621817597589208021559775051616410985708996162163506712887230849216882261072595109037282876794550666382838482993319887993855508104572502850035207080517715304676722741940014194850230708675787377332320618827601313315781495447553741731242681376759983360506332597131566749622449206172651276135924113245105040490729174642420620344480590593404589301109677286908340510736779846222534564268853260045676903826982902089521496113593330591582671186502552554224713274155677905177965677697930417957475634505453896567003815781281070481623141969729915907551866294765155818977719205235488692266118171549532961813584699918591869680488226476253570221657658887529456279301333088489967553553411204652464035363804374269971166941601037456885580582468537256607753762297217916589897446657685584991596989422926982411997171316542594283913726848677248026014560644635597538076262259584079947825524430753141376710803489019656155130557650335789436881619667468009021904317175099753986859501755103020997717047808482780007378301758252532911514672760979034048167892216246983625556834423572375222463736990860896622456852156988026592534096536076015309391152648100598116424594914978063959746200204220813925408287432546811054759695103249919377551787736641096788131749620515781415513255010886758485571896867248002475965134328262567862635129959910046777332515935908759819850079716376214718302758337397984068911319408783342166687000536494598410167724431434056270759203613595678091430263036283552950898560732502491289299598027831289140895760145159800961259921287076229885171860782994927894945810266931678411894722331639875653894193557135558988004665144623467056091560671244330604572545345653595629233688785767898560715416601757740512157409946711740978714485153967567383807401673521339388713067748709744764799771152288683714539346584338748136647159277319043177159173979129206847788050361818370441793397773753383623582210308385064122908800913704212305721762718957851212554748761179273615199667542831477952692135134237265244570874746289537479425207089108255002944118668321963913008996972517941348287941790086514562280867029029818699957925375355268669005724147099806068617161679805537564344693020045718879036647885376099374604796169330155782250229093046656946960835964398419397958722433408130378050339593790456558749970210452164040371741994198511963339741499237237701550336501307174247821469689464459368186914897291741565144026786713331601755507157223959545428016148819401471651082883669789433528654560629359760508342452878801336261961047094933846811082895016439049688539083882972652838661460273301558422862193276043006560499962306286799357081847224533275706463873290173911455997351168399531164087951588641935924319813060919359109237799318276874205888841401454071651704750338458866505544183105770009906634004447317332700184930501680646334637357341964853306597955395290550998961400046878452594851605614170260086125475118092286672105429011264709359634865893229118887434770509465017191240021749243622155347247470146046402963833379040350157766956992541629871794746695685275514850216840187595463169638130510421189979279563711981906920648240954801387922361171439436765469727658915267026235467615996271472558678897526099896240822635887732762872941021606040957694351290225814116392818522595322660329218883200540762190465542103114150798441671652155624482661379678332208728207076421412555534443582007043484441603770777574272519166128242562492082372900998843571549263576221515455627212686282401221517744285027630881377873966928572094842560274439491682215211438647592877708191554173190167323387429275830213777608486975131447173327699899319102336165352653252282458530598783824058414479168512079719505898753773459704017316452656730157440025439547494197765641831810263787062647848696985501942126846665912225153879435005445529732125756581248562383485481351261726144370622531768744973329420708147672930175688292411444543024924352314799156668840951802767857670451964271709911096819533581108081942861373496162888334473437445799971914339109137818773255758051122104665232580654638497110038756007054471246324467395636743010878080905795722778346238858437777135569564363060995873823506851434331054419471623683376030142963755570181603720729513801092552765617208046968459294020999455611537339401737012062194850722739837854803927000822317191591775730754255073338750788787933792732232079566928351380386750706743775576945303551644466162472520073982816415501164693497670597966675971747808256281402699301210419070308938721341967755260358511198222704633001478779370083509229780777618848865438126407758367962683814803439164728279115228172625551631437104518152645399948962351866130614292247651842282190038019580552664001312762818355637001922236247672902074523664868401606427470397571496304047216941121655685586654558373780767022945171969482085556986395698678220958075918045755323309689014384378866370034620023904337619234929368587069216576769286488330322598490410495594140392284745730817478517437044672113088182865032751130163925621445059945906906984172755090615786203333771339187709193419208300204873670919442981755367483630089861998426275921227998692881080397153381706206621898457931708067360599094337092189356814048641249470179851811856443138651372489919834039295512282482848934429078884171407491382355019542930008144683672919177323054186329894919750221594875279222794196824269357742647345306733900503462078350329333012941156970218589953693151274786984990870632076180699578619031354362907621929051331867183143085266805071800742496190223059349893297798554251250577663889955172667291765534734367169083611838863957041362477897960893890368311005130313683859239449896402218299771906284980723885408353252061708104135593330804457135286713952411955223743222233254224551171530718789250135782433340470479467053180281523778431635692172299333148405728299924286943787408879105470746488059679133343315397931404868181767370136628655723030397821819951742688961074252427629664242643384101521035798825513331018642216932988138162144992895349752864465958499541038584192533655289266422495471840646446795667854033095774681497123447004295515951122835765475989735793943581301929787299874809201765165147938946373649647342587645544559753017692715444939565710702253852370793054291970688076586315606833925249508662415294270802227964728315435011898375747167214642739389593780674152890994744880521350702605217009080664650582101895175811666565802078020878448139365105720697088060905061781182457581279117062948611251835235300582520017129002840409459708067309383977662049911863383287769277213882787511472217688099810881869533375907716014865071426185503272509602257069107042949135021055307940200153012903735720581662789706702199137711804975406711334998080176691258568681575605001453968014766653160893686921003693972121650657973975630512014580814479926308689053144090092899860524699774361502167892269316431074961148295692571515021535337685117806379474871780860909652383601054685326853656713660141580002817108631754210265276485072736231403171421609621359219505492399805469165817122810705220577222284807753153827195709140830393416333277853729581863690588825455014671877053102416136169343646950177506635379866932493665375894866621971686083890741893338458407866567922736912622838368145222815103728979835436155911553136296137818274735002904412254695504642803070109909652853048110159837672992671989388757708246881445603067772108254490250779099416260717468921508033203164568381044611919425784956483795550397969533614677861242056900785268027855998880683675131256177019763174080812861114985639162067241703034380880819308506041298611655133647865490323924756585933559406193410020502436115320722915747739267301566389603983348148218182926318096955031162588074055932890987545091471288152286275416849577689560917384227787937648229892213485643246697176258661458716509334308777816449113673342125099753771335475048000793378186761990346268675846621871345778930742987912336636136082383564270482130753654876123223056888469028935368282059144699276496296862753983857364592551136411859225449656264853711818726353111159523968515500176063911272539370533626446937262729504062578631385320623088807919980440080351307819652047637633506529640418193827910423402262237162308351138064777869575528740824635310744310428841503191439363998353985279472064766347288808829457426316958426251483935513152463972439889439709352289202280072206321372876658390579405066882210921225499700226552316307033022005785888347631384646838772499719280206515237108115397221769436937369434485607338415585239516789072744553384532924295500724338595063072650424894150370237147130724387860119388044016081566154707054368963030923497653573000941168026904335753191519827636864775410598009633085213823966292793277845847136344480382962554546719696753227297346983713579648573343224946068545476541626004165809176518508128184340795538922465461283046477260483445194268805672257361284039703438509974359591759751228985460404754005760196185911454303932076167868308971878041661632010231918390984412462755696695465632607093770982346348990700143197595407698566080000088585965602068459132044953619572238629866804388318272447663460916430475595301734439316578036306436131534399122103578012972245671501600711597459213940612111954922620993303346638175918550091780931621979041044022779210888323934696873250675696344126498781925174250932243089909312824074240923811228055744229985191289159906695745233890387379676301359610951184522454145752017260603515947731513863484934512213487786720174011208002137823749553137999056833941457744179813072334410988281411879789935324046588160703318391436694348160101108093111979271684372187031346883136874628356741105122040851982702610605985396319359041040832630403757214415300353003285810044820199980967003518939837009168767572728084181103353412621987986343010852129042373663715066388560261994918439012513272040091656887992141641486878520705049098587997411902692457163348215905855626014829454416953511019979093085197123286397132947634652486876764917784872762242870575353741201944203734587013986692127786749187957375354305498170467694183296996609277247956969905926085296311627293280510401456679309533973479893646090369415048501951617529618963287795373757437590975695570082377187107557746793471296982373114171029500510399948081708305224668446400647584414653858492959880393321221977895822000581119988574737561525646819892835289698131516767241964109829394845231525740295038375709479568908018515137624695494261778121801150250242457212054460579643243983585407813160345440855606638004206008313428913752833594014792367998459001887784578441178116649020220238433067196303776881038469924873164991246527385038613452511004921244716124626075691800754640265915024986224750774657744933736936215299544490338008575634750569747838020008371069499765754759843686217735851127422249809775952426470365563264574809599485439502993390824341890471211302561018744813899847162562556069072217412061775314252611025035222846853428344939824416018608891480988320600042183805919326964116264801726294294826462369738615208480170491531685203103545048090395873108094223775032547630706581159049787009336992402158863550333996191919105537831191882229584467372532611862472886085480559606504775564011140602343116074283126824861591772786644335199260591142687930476044548757154667399333836278978863247768073237891066157071985426310087107504898255600739693902421190181879553253308246743630605431098768207395020490187353462788099873257406721709313637007232079481420068112660188925075679941857460336344011903780170691321000021999631624941847427880434020655165365705629022006761138388243703940935293863085788988025083266270528162268024766674579964815396340444271597490140292760639778575188215034906886550423123416705962052366563447804360426204383946623429239066053419028608783943392137138043546218577211704854576985285250075879630193559828021166312509970123606898004830831449149111239941518567362035320524685969952711125678196666967507702724609110803385893788521702113970149914915785290391160196359936653307271074624510638070088289996483634340707767025339463349938889158540893765433807909752241586363888484255323845477869709657701357359780698899612678996259587235399109734363913598066845153975736371063970299336557461431439767740491918731721161567733815341655743598677162206824322724701165709955630415178152534312278683538864190134661926018130635632806662038598693545586525116366272024584082351865621393371311863605896533580108833062346418208314666189276451848620277794295343009085202401091736376793829643424177145758495848858536368660196873193801996728896795635593652516330956593701320105808572207795868126465030456436831768023155568833656708758420443829036799270301184721990796306532464521373683592418355904910819396776793037108762733126773626174939249141020869280332099484044506299543677494540522197286865891373875106172570785370204693327904005834632078846946612025146011710689060592137877210006599066864850962570194807248224432776032422889871870838543951320546769763956624826654364490296602441088081653998434415089769829945812062757959040720393849715023918483015447896384113750065069819756679575028119301648746670707946222314707826613175703271671819001755041870579917364519363033939928273271280622169817011468926873503348032379812559366467287944868404027722912215707809171867857213728626178411612561258690774691606967125772550306000428928377140686042946526892744416463822092979339205295796549857635253633997467168558431038999144672781673661236090201855356181588255249034968984403354356963075879801257582733984261255417674916338346223980914839975166033876858118471002899070357928551510707668555145314755281335942490547381671623813959798445258321660744264670482167904257189492033700566503035087811015743783802289832254340385523112357740799140326466875217460175347768098646121267777410397335500096842752585233013149340184014432874213308966482254904485305420657835321481292965559535353292742287497568684179743551586486491996916674402382506604999348683256037619535533805067188828620664685115523107487647355629144057979301737294439574045141359769429415925134204549256484190861843737049645504084477824781769885210420462885356718321024754544917098968462746947932931556277434458085126148370711235724229805852564030069069156037983498563094283173588075311653484804738021110685691256927824682800797293964257999691642456787584638508436668294989716199330098970547356959184328148864866228274569570634424721301461537946997001543073215934516185665881413691403514014750591081681487266194174279353240972605381925844493150537102508960877550703429190648133539129176737941253098844023142400353800496267480956469456341091188793459062822805047706045206691730524059196149700332321714435643347928694133166103665868453450261840990703877045373485397226373245285076474798641612453979978047191838810588391771812224627339529558255568324089164584142326308350796756625333312773998625436163535484365025063927837286789907003625912763977082278756686037906178409203415209938247369503352071139084912182931628330943145939868785472955170463712789031860078465025512232736846021030447983310278488065488314164426309563916398672265026912973768987562126844174755494864696547870343387729584491815438712929885940333087342097094797684259445723112477282444046485310321202409581676944858172892278701441745039034043181158911793330890538783336179529988509872539828497536881478517566596738875282270169316148655265483531302065369818582554745458992784326577153374704485002160898649246532019683741953389995815700644731482061372185048771878409390435895944964189807923282528205731913256513838476672870315600361302482251066446028429255822889431159292381846047352460339238700988694737010972809264489118294921120077031410248527216139650655424936322929133964594634708879678997135041842260315197626757003669209626324868847966704988816842814413177629727650061861206983688313391498681051698752456695403613199433879547065605466310794560471196725233334912972291543890683934187374897375026910113920597550827252849692462636754837993363500748850137251933130913156985348947315511208812998629577621085856677489969271116519486845503659755457688864581472183874318099973673037945160394409027995753155257746520940216660997636103799579145220064822243835842234831693590899600655220673421435024812051376460639100530705931153843186961732082915364758490434289140492999839998694319143652393029093247658393428525200023529108254808137191505263204247693699773577553164824860224983916942297780075070754815374649592779070827080153955572745575639162804800117451035743435001312145294364882393134785841458743189192002120573967324918712188741974717007905017033601768405231448030494891361999093532172481173494043830186455997108211460495081503453697740004038575217938744640878518388222045623057127821177911213767126455668439576742716731097567148780037181201907974962634595881876897533302052241252099559866280824035468872536787119679322944216801870802302520980297307490625792568021070044337601064166833010814064306511213303499858298310780771781363002648239731692750935782937686577396131290710879705704939594717568706955666879378245711374636709610720505244393013877478485311714001160866249736531287022047014545877301331832828732376659404195376687502207941750776549664560794005699205529806229569492043340009236221525517501603982502252704823878497122993278205885611526287155548669709425848894293465915313234102787221386225319351438158223395724426836243326401626936480796232290815316851106223125855268830019290205556140235972426219153032415622741512697459359382406589844800652393022814045924025178170094990931267748905746860657679481620234586211329068784131520565993249282263200945846313571540534206271669455634146225175349577766003772140945140898951289229320223999709303102641135260180835461667609638065544881879200215799084511519443753823991840538868740789533105839611415739085466570120359510760556724290955692971196612927335228023023163823391837478364300627983504798025004814232266114196680685029270360942619483110367020559193758002906613576381036051168705790186686236707866505048236743471397405637245957698393266003126060336210068833491823347601777503108832353913238896357842622622603629479115729788879038131151638950367569447455466531070126634114294087546599558646163673919559852179173035281637477192539685951970980437586897531606473363639986095257561449928414820928086408347077296098837109805897354238537916941143534140649273565859732262413291732322032395313619410527659608234742635761234359092815175827663835056904857161999413538048645583718538356160542157625436208519444637495032825363662575632136610746338522021348372213330747584814382692134732713800881588512001180564144997518061818347605381930360284269237790010573309953286716339333641730026285797647745745484593073755473523121236683959827889903462955584870160489465468315067725857964793815361682103720700116161582943574565600250008204585805005616760719185630556302476019404527443238293126431260354580705415295855565830210549767424501824163949953574848722442606243286165470582323617898614063445490571178610372188390736438224079181355122867563452542279792465438473593251988052445370793840340717137680812184103909721434991378683725355224247109921658835910281110659820413259327844370527009642999625535443129758963198300409547999100789413179140402014727954436195372435980403698817693973461182787216548184644203975683283005788306072619992071371962557170395054943541637678190030650181754929820490619949584934534797175441736888613151472667711873019007359393986594749942829914192268558038990710773300427465648728243435727982262841292403912210816418510185890266661642729911186600611648375724743873725312471876650576404787048116564306259394594652134372504397783437676151353405799844769339737124336645632862793019026779068807542951454508541259281834244158834284144058680930532502306049102785935036948316618497576829447476158213670383487414930551128459639297496832871039905573414137871952248440684717797535223318571602739760216923184680956335319322586179077854001736555294358047813606075711570135082790391636972330060603676362661075236984133060410817239266469727928871447536656441093372397648132342316510525783417618514181194961644046275732239274044429395587875875339609164049438859415883238552518086260841330743673956211218715921814828147190679482200008850433580689965477506549362843575484211487044457663078964149021196124363705888794314723086468980453620066280314847079783102715063283056545362176882424112088502147413989885525316214831243813181706681169992130667163203909385119691093964117457938778543696740382398530925027367911312090522013025107623461436522813549391273978891685494091993636655436564322400841241794511445606721334933673344351917161474842258687969235172104252203207453906707541027901532408524088941172785966357962235118079534784723385136488196096906502065074733459068446280478234829220386826705532779079725107869330784036996804109048978086809937030300175530889471737833261360464897401255634563591735495604223031701924765505154298651353024102817255395665571686538660681960865071030439285526975106446824183445868362644701863340133759592372223706322884881334739360741113649442374918667690645298577300412021536337849114061021277271745326279746907905071522458551095978755707155906677888754666957749971273533421001143787502752669286339340787043223857795628621431759618330689711580449419681408506623998326389100150037000559266848629961449836276904977746042310991237988111006338304348960070914906304382463910281821835452030689279717831278707172458667303609632829059765247115315943218687436847911042679423785238148385586088326554425494491097450542179281309073595002470258472846609747492068614595457374530197128145051719708764396415426807541333048171427280834583322822224212943235995435513026997938586396793244882546782501515693710506375989917800323500970628381516484423191413659297830831884735353810484189570505557343152296061183781254074910238048503738836966259788605953405847207732275140835489064955811160057231585259261418665990128523366814447142199002777069518767130442661100641766864081230772924119805876851784067591373453072175351253205611690634122746310637527001433128906204708997513429289867308957767407911711218234616466747874267282321698500943684407139778453875101826570289624930701727289766928528719386479061720189435631437972074053920221680574436201058877066442307908015664008297381509307440597209409729184239874671533028151883835533049933512441086385139864292486760415294057767780465870267466541935342617487737854822250407649011239605851980561727732785144026603118065531723369854499601924366506898246453620872467120917197092175923131056749573145481192498174778668791943662496831807485997749303521144260644159672415417336066660163493775173863541802775052130021125020516133702950048161022340764792238915643259606929189226299069742319806736383156379302310628996222212408656550982283841566041881128077702554187651052125387195788635984258013796721144275181453622968954042437137743172440959486778627008276732852732900656753946250720686839734531684432030952489660642275996985255380829531614820436851066322958423175438159539653607823555640852047828602022465353435290595172479709133141013485788308847508986674050276468308868776540423919527629314963632341479033760733746056091027721546934045617060631410031254349611387607804236079158171247725001929787517885927343830923347026531327303544456480068754608135748938902628121409788365899637605552889871612040828878491039906571905783390482643975837696012530618741085980485883642683242215149368844303928110689498151136608386859043047407386220651182430256797128900257035809069158588852582207083490064327492675799362213545370237384354377480476682599423822000784104842518117203153377821026744022590243114911867797840656980967911320950064439584873680311586062858864169976823888598551742216247596073519602193878876147764631149900062113292402436653831508424860926480384700487218955314853508599328211404990040570054180621830070501375163274438090925532335637081482215967552628870254681858926972953153242947916746376196941835098648544795883826496743484680712868708134159847873206753548780877430904267597100627825638956541245210806982663275864525814234915839867297800553448521179564209815739463741130533371118365095981335871666070519611663842299799776195767903482571972659304528490064290125753868253332720309026325115334957900681552684280297482107197576896984226838131743664530750994858081487479163438443927211956997455439201400873613048025729407842500710218323998189928290276432952945755658673603866383008074512202848451800818308402184407166399644497131123275452544183087012254105925949077590821261200266795960536594311292752176215969552937172014199350279159756485050845873386420841848250886737164592271806530287872949506860868913092220166498789366077618295235660800561197802498616181935776296426617903599499583972749822681439602795421182912517218360227995609507334709000287746581170346314453224119587477728146852131279158352838894099111748464622683460434519803937386817383855163320113825255278298948040739906124285164781207371831918265444004708116571654492578878961175381391798071081338047884962541905706938433745928417142153109977602166866564915412312758819511605999502706244356360209904810072416728565171627739451369869077741315331074367092602081819916914491827002610252513417612149304420758512560893711219620641273557348588215206807705847788262005815468958712273904303207386996024177525761944810313284895763971922435238464379959296997036671527482628786249810708323362588476043401138350483978156078928299300077596534525843156543441811976037250662766013310144940233653816059675750128255724028847985469069557642052453687588018026704732847064466051423410848810554316306487187307293908234395966364469959145167587918822210646604002633316093615686350967395725359154765252828209045484428550772828102409025473548717804046549755702149009251351154066995929201061649860218829756939263833428712442275741530962234078645550195826553748648878013848728922965083188606427430714298354647006019714349974211592810285891353527270529241438727049931798145505885181185789738089128267846458506818935720806883354160831350347040526432002585963204643114687701774512837894650347025897584214359833698682337647892229843577194980917814860582433835691929435778955240850285080022495494232828581781812966826860647151849003035608303788166746702411093384776627869348068157986889712486044853788543557431053283215391216022677634380563747298910502443112149251815101780632035623078086269472930612534143494208220365110646848588410106274715769470805629435353732102675687411239854358355460232036890590040920850742471640897815256395582852713499488963096629685201031493625060579057477864244727842598619798971648917151614145761442621476901044183099706880207258451535665616604244973338850512347425790496449320286197399159309606810571791378150198998185413229798332408256821036773780367795458474921924760297642368683527399259654356558399023328009041766720096014735545650276486969679222344500849284411261122195330021023745449003100788825998428537704213961516437388107194416703729256924089663441395214658349385377746016340131017211633710399579436753558157160468046750966039434088647917225274815471326777879545000649138644098720155948159386854807061394937854145053165478526223543756842664912500494466893487027684603250228643685060513105764668597743851254952180783231146212223708364023814650333142625292559513692947567066427331204360752849101227764451372032866503018344481828555410499704124258766143652649318850388084326755457781445932008524161008935776095329487979744399536024578983566716322357665971935476050829941712737288272369297895603231042208662721704832221279725886434911065023141694652698241222520304700652087902028570294073516176242114294520810095142658413531636942772762336921075955469586227491769122595847290365654063440027314965616614321923404033904460437481781037109064751257701832178489320422641357016165131457498846541028818802309344890849292640826763490040678577269072476986550060694458741170226839929393636653270504082812554526231745349355552575526912903902263756379566396650803220300183678141790477047630927039697480232043694405926588157922492315593790799631160937711638710408311423524117641652234323550525669695313785181154276355964587795788958352665434997759382246857935542991359761038927850622168651633345575252349715876749555623611215143058306533270673685212250534049982020681014116553992201512908768121542433443052468762196188729502312781329869108212932140866886566047250842672357893028295436677135029756341389083513765005108859898329818835577058408537109615534667748882917945724840547432302306810677812752434944965416783591421084991024174742307043853294562401398021870901991299147545050171027627557577623135724168567590768466446872912946602488927761453428095428507179142550065945531416641237048267441037947779425841733200675465979911206085656179089029177252172406281873741890415909384082548110423678853745715279578626367025304624406167944805025478777046625871550649238984406222513974768280274146725836044217745075928344186952257126815642101895782938728226603553180098309159811513018243004000280961909225148668798381635820222751686329878043114380432526067925731536889822988916350904406092092384476670294905682089582344478931450007056727652619503348632010380188825739697342154845862718652719958926498818767442604779237864149543394967849611130707765446814115865116947303124468969537290171425852202755416697891845704208720508595904637529383377199372563856229879008202081970324961941559094786602918190400059307942417553592709134284118593348169896264601521664265983228227860261089050263289501846143285415937764391294483414614203995439570187662307435416156761930068751012453713323749040766493405441179175346383802036477515578136370845001835305745641749535086918716288622464652602122065310738589108217452132381013226928947767766712956441927699774662529573989138035450592900834298095521678807442716087801060260567538722270217600756679228494454806755804215376149822168924442246391845215702964015905065158544929503332198166811958553162524270697294274556908265875209722283018812813863012846657008146138632990747859864132427219168930835407702432910007077010135772439961408597782498688775342085262547319706694484328354088726628551303048015831520341865890553959483124914281192904459107516145812762548970053187555503072293723056150585369268288446170750482566092272791918638708697955615174696732096683694552320225402469378243021995345833249101660319714000277005114239947270411120998798238837187062960431981904046654848447267516623051170292471360926526226803274133247516501062732242816132037443176102161278578142838158793753661996346254419648642148530035513105907799871176342460631737406967961208493364936888642549474660756441985107588389310159184814472233450970972579854449601669755893239318505033580645809049974012347977107763371493515160286498805560155135235674566611184388982199589795924520505901667724892460277755320009760344509636326146074553330629696535979837854577509156787581107274764562489049298492876036937064006179167528587863300775202068934425716142385187135623461675031518284644722584733693221757937874624634832612582407848833662017975590025042019689300257722603932762683683047721473871647707942548697990809109035883301935158569258877002039977482394034334052413476694315816901333725114496733602519189574017286149780200002068367770031445729809531264153648209246908845830354861482455845956780082652516505859477682712838611547083749337828688319429542927096506098188669941209210195939874926722916924319796705156588886150143563665594608582747656914015359137150962654549426613562692887225772562959226616801603633406299068795599922282326620787048859753287131097275103008974906485486013697360154422546214617460989026943369024994650397795059944674811063387634757832758935937146844470222424343006965345788735886176756633774039677750130920869356994618135894985310789227982497334398477226528284457157668578159070633642293137646227022638909282640944204237367687003558603609389034488146598087820022145515722906023719326635751601844548524764018278346321919853110458406872473046874941155507403433356419238941806728973597604077517010386516850497583479969224715129243350834135837185774602937746114137489898746407307954178333113307655931601588246267475635809624157034490461291465120032243693508059960958296151593820309619247289468727779116830119116006343704114161673634750819301945196821275459501897540376111070082832975946979315029445177269657448519765142941523769161589787354183159773501918677102316013939244095627557010085070160509799000232234554356203507292693933500547726053730321123834734502208853718498556226085855744714098166208590766792763040130006869123285335071341649488485897285742442861743764068114188427588579124691606635329870836040892970356555033392616420091142768557374673722777368597526136328385518188574119100996140902361380791920570803378466641162131856187146350157615575241681586224718941761249679792685659790194028727476168077522253594728204666512629648587186491149324413554974665650456646366875063752663209052439805638473429046671432896967099257856437154879657663086867002693043244488260738347462137396202898641291473401918139969937697730212933645904037923833769192694238627148307294163380105812517275651156388690962574336716626134528855449460216635088690157539853670979210069483446646243065749904583479259455089197457316571273436611149326011390830721867602921100939188377886447184385267156938124175888297684793782563224723909642463148250760021391257929781291599209350623989921003426650933436868988619830650358570213700663252691485437009880048430439104211679429182036930378727556131558071554584294785099017670490152687999184704702507380653349576772965172861194595976568745002191407720423340439039401716264512844688696481855421324027481757623881191562827168870986476357447719175638632046480860567160615605350052432798944720429824259718258819826204952766685181068425015268897879959081702372105235128803876943387527420195589095047703281567061251571457366250519663730575537146239275525047447319423262998650930056302366317093374003896802054374587997643382140496856414916292882810839119381018590791687425730016800110152323464233928190777880337441435589435691023880750523600233881989034744125911467009529525126098927509783546242027068740111937681822912370536750959842806666181753548976107796739321065680879980082560250014938455243146147279727687078192581088746002007259832763927014351332709680647463991832617056441274826512748822104311457761264134210578626702095764036442198516832704026315029352644339527968145633936760701666894181892393195653281765717658882032784230315256752614437671830592199517591394287355743602166599327842110061556882242681569620702630052271192097721364208633925087559575723258645605953975072928859793627499387090888415823210336424327241861950776648098689766703539327063361888140071274129971619128370961590051932256961227404490016363324526474954136276970659804172350026050691966144195617681043248397627767363059985259353246481986892458216525426290039812931313519766796201145898037858957417995531410942812777649341349180184277571656085737603827856210144697129944082810034330319222111698161045567625177666863230021585498226246324837210495761267558679187640896739528170354148108829982545094281391406867033874472866452456584177808611184833011322489204775644423365394418127530437399198499029609690813021836931114101968688902166417471241223947571954392908919082113860780447532264280446923735859408262774046441545140491803785226465542175835205122826040265761473214630004563104828584655815805796053027459428082852585863601300282882755748691499635554670366377039075226070281504637515090752742410682341230114066529648988357819127945864653038276514166686062724459249595467142771779310251851340785971464867322496746204961332104958115616888093079128003581474799927463193425577728691216959951849398683601669924834542075103375862205211432040830400232558692772147597767605450691173233852999991866539771372676537794474361376537556394076679099662282710019587275739299991473236650975820697281588705516544701460475601029559180686316414075827431753339050610678503468052945182165223078564246327324745929819566768225379228917916749918322522131576779315607014100411993066910533391748006826841079507627813455222425473305308508381135928303454759052772354641301555903825567026439928482559328504590249669839267700857815654734109699152629291829221662934480798393348316528318213944408975366809719580339357383539799689914319557861163652042243898559470595338233669271774628287672002723020434472418564533701086122894671619868322674753513149909091734802090002295224900398818205164382734419800856122638342223316813681513482039350258117669800980342074249010677573703902989003434809759557238643110673248035965051358897888985060792565700271083545403985114815832835595984807625889261887471307001590771613224108689801257567046210504892075076787272560879889192792057985756908731461280258629092516662805337372019830134884391032106498299042881578584024659777793620827410638843050387646356058037064560547712432065478515488048920865275938912268724928190267830794108034165343071555910771093831483888598220887736054144903578905255798879968446732726963753792517110392069706949781182783453256007257921338588231068960461291752743709093779622878345358815841981824093553919894743989061544832599580578262675057466434486924494405695935219548916177795195399247231618885980216601991941841032580134910441641472435227377556068801867688940922767231223651760986512265686598161054002197369427427319814804631680635543195350272655891751071368056427010748445869763389821694855370162227517870664913200474976169093113724702724708243693439947890702419594714830785170744569265514919324229515911897460079936419774742109540051795745365500718642437707752624501105443870146724191386274556078782233151652015676166038993910604797126430832995716044004794709627556608976855521927317225294515200131492126560875891079001602459047889034844687163871880903958595909830416306230892510108682941955763088992831685644962372403828919513979243854030890313827052557870236480506390195031733490211110170911427112550534492116721354105119645172294333561777141346621169554924610071246951300169867041901828331178646824290124199079191706980478871212629928064562549960054195148962246261698253560208363210557945194086692415104889375404634665430256003012545535783480456662155996047524227401197188889685799816935935821787985645186508706759550978440622295827646539700831766331805875511838769383976459981113649982756463278330523459377046081364512993802726238752166275322249955697720161697319556090408670061298734500468287418908098846578079072365059781082220477337628725307015874139666424786213504619044730359642163933838642752748549785305811870775632252433697962970914749448484006837886476619825159982546537327221347027256604678841794706674510422293844995463099804065165600191103930778438857933123433768451473535546252808746588166350628062333339368556624770501872407336449060677748369886068274271896167809784144315509629470683576645594114321184419005040908498839695645167087025876201859549214486436411300406575796699443959272920750210479116340780234773478702104239660464169120268335997793825820796521669359651164960225617935040658945555022372672946345541559980058157551936377484747137166493197521655718548303351613273122243738203207393181691298858469191239400954198563730860026762470141611804289651508768451012315559763834533697646060864946907671058779907468191873940205275673112603414817717769480582236113065421239089319480712919436414501172091381957898750158421430387238496782019520551075808724714044572263347396230175570537504714162190748374980847616751829393372896708264115671239464582768744458265219925306247128865195609016907412948098437591098895858790785317181846937296322871512064275518634103944715130586619537015732749480555679783852971677184821002318633254735730728834921161481646156828906042672738870414746906235402097833226644547996563285004074915362253908753392671770493938864437127625072627679485708900940595608901816368541737420261922015477956274814538221508237454702441509138590215671576619163487275008364844647336384322227788302623162812866133945507162594908590444065930520790238235636942606226002182151245506350205496764418244667853190870667560202211147928042765179794557089094052978706054408641856486704742999767746001461458418464258196531914748590723075219064522554644155839256114908059961755574923498408384752411251077432507723757255459631396899662419905829125525054305781516914622338076208075076358510498518961103752602752661873982128013747519794009472857188004715191038927933509317874079110202118776914891533432976826241260801471489572649210972051490961393924177849982308998585006440534504196072415671442348740400368066609330057510536396187485750754155841681286948193066923218877349800978900893956260836509428265519848485449125327624724837037286801282492434578265076830342465918984233577759002663985730221303973281296856288417600426925982340428452561410925776348008022741440146586758250161211602905225481027654626255192961801920879355105724729270451419898231720539948514616901417699047442120741497806425333518720897888360503422622523370847290671535046298247944716584902870245915606199705713426568081635786755028530258263968525935767788611059264263718806839024114499244640588313674609481239341528295304204217466415392819327408399579265908677225097913810677554418682505116303198616224279481811739093624184147992440216012954418995761806834894671920065351072376589124826635352222151548115924098687428670522246054690965693861538387931045897017683296579486782304981734615730475404849546533730360802087461695681196318385569615652005181309192751761861300816095107434981452536257808405522200959381813240300540535801700104128324059924392843580181564065928456893508633555298150629841828393008903533030342198745563591694880392316213646681612956523345911184358916140342893956806192999752574632281983735702508905396927639915353962553080055264681210578444970325427176511644222261461720349576972778388316818373293919338649116073656799987795462690259729590521652605559600997525999469445330138013152844854228963837414834455067811938806980281762324144817678037907032494805386612656062492659547445572317244216951747108766273605472586887276054190199192222216662705862837651629186271225581022660859968961769168905068748087194544167271754400215222445034968489912515850358360782333228157858134946430762738489435566345705137399313830581989253825744239972196461130445049869477159430479571831388689908052621767813271486831507925234077025153702923850083861910717527185568800246174774413037228428913624965120674378040387793838650711780856036470962394468982260437622438714010718821425223526228027489492833911731350652407062591001326526871490622690187398435255749622287041001675973619711361251429741418465159146237382135624300530111303749595134841027994270880613506030899237729543753889507154641112216303636419051860064508428165978708773966891317081688322974035311798527691264745685945071168788732013184122329133801587151134416034710462430013529700667157385007611451759012928351739785591198777015356413303852599259239742414160185825357503355600697293185171134656057634101342246892784489238360683261969516005822603633084921243586961679412710735019473448459537606558733554659064678996480606947513503547925407107388306750511629047981624499633850860864338087836817973975567688108752157801715098904605350842235388894671625425701027304063645760020179652360083462892345715692619260584080903558623154985782802983028212115935612641183527036966985409590491251080444196118469816244071221342557496725533375508302093093793758031885028821896205167391913616489187228983515427098468277041786892719966984096996379742734697208143651941849419634570522202373907662446546640149285143666114251790537622350933597358375270166950048014253171811050190639742358138407307808194647324002069604436665842970894553890287153592689382838473604812931525719362412620827874995847049915725263404937474847374939991467836187433326861187050162221336572937626542295951135963679301640879871063182767356559286826435622411041646920421989333041980156688191838513475488290828249367827538807126869286911191810075114066247844564909043579797317498368145667897448390198119166709709814622921169225663442913774065937653409226803180240705813258926269484379385594127243987835948778584236191681310548373276507249974064418081911033436192630540503399639730205595126557599686374226689105939851539345046746035832778966642874360286057064832644977396849279503150684883647198607007179133693742473150927579030674145359736925292053041166327376418364538706016754976406392689037974959191635316001271461951891125971254162809764614042596829920272813517765971073097659402367533173998467182825552872665039066788985340359394190283755111347239847947421743004190216075367272973043136112014887497664675405614734299511996971263078454759216788156476003564731363351650118201971304808017388857846573401499459567114356847242885241268192450374592732579459509779071868940083336738784005069916381951265674352463901506672397717152546216007306967802040050293734605288765821034156547776817215447632529989923661803310024227995304364327020406692575798741439625541086458838300517828295873258147151633793120054181603598812062196905790503221730679464967578677160502029232797739799498472040671648094456776776796789558371526088255053451114969296840062230444382304884843494630133813279403986862461997323757705843220165662401239341593001447483230925094558548981907521372839490890508718336348505258504718038694154501230909274610511248491757478135330175971286915661198963589677340889160022408143665473942341121781793083240130740940544264684637605679027014395223394870632590354547017949913946298453562772801168730104835755335736488540527890784086519687906432716330718972354914210704391799544212865875222602465260560351082134092515360756634817579885452249845638506006752426970498279646612049433203505469941090345356193493357200701827959513051642844941319474662133290077120539376259805720839839444227180745878004294856124317320483649573525247855230271734636289603115933617642882905131229168819151684241902346163244074226898368728985283672071770799340073723151852398662249544319423050142737148064566526327869723925804497392316849683930100028680032958913262542735369465055288835390777873731746524264262417090220993131276116558225196368630160160023638841563443580633872021862007988764947277205936350100586474844507056220180640754888814678612510335042476014175154496213699702261086394114386409399054119384449146714981249702095307615898885343105984458275310461221890060002673127931318977340423282173909782369452053952478197781287000446536333590251512203961738536550652705438035047445506500801888256758172376657163690334953371774900297624696310182365869730372619818590467551512602423133604580562562123763936077362084058777371284093825801138953192948761049731473948211314592869148793357694736358510862290573981833589945605146088802187643575051237143396685538415005341486892327752588575692273119620566526687223624927205896356894026616303446792391373396576683290132536766086723933907290647977032628150348797825734482190021820921722649831483274199542986792495209726614240670818978689817441412628026979500901968596872533571080255018096926476471182012148670045583413479005479483835575887063420166514343589518785953740505928071582018349886272666519048229153577333089325676676793814066554240602870429217232756981518389738036487292248795694013577314556860616263885054639636566235067109683524709134877431997782034521005579801082501349467837093642017673263940174915778401618321914615065773965020978585449242743329941811595918909041989881414507343096352675713609901674469183638786170119636076940134129190542101157418026368633877565225321919192484511238445983928537889753428440740286731336313459367330483833270873442756149725354270338858977738152217888972923156384353937195174471336256725989219555617535295136248533218799035411011042479654291999079418906993741824439591304191763743137955985978866234203935669818061808264100991337557758742386483319582632053191514725180267489393484799772020772484505701028983450555803779751454048804340915483373997762186753671077647462354005976973289271139579341464992439822432954491844818547066111161040672034285816839883121150082181665740612025453940897592120566252260919791653673667122744955665622308163114176018408690610610535461692671475392710300093228820186053746720080587793298477192322193786456738860144006392070605374707282927939858215054396236241296384131750548646829037587326262094316371484793164907555172824418126459033915516002077178084199772181620184846299233664764749135929622848345429724710379000600420407567600621272676181311543887189469606033933632980610834416576004524015791090455416019740812279741599863786017906885355139947716288795767254317119088741058274708699570071941269381839772124933893624642505143751969770256056491490309781584129957063126072121193471619766986328008202160683454604869478383968260751982906102871897111417352577836749545589381114084142795992461271258484337336487322155119981853057830466985266477004229872184698062920868347949968921589669186146277665699076210309821121311212266408608400117725078883004142214874957384993348133206707854633309459834131712518757500044047202309713391610440578509431063468767428237834861062210903167518832160415823500370322859963609268675204175818440368437838782818849660290988838636045164644228367181094201352946589370986895087653740666299281149009056765616258573760737368881298364859169377652800129299216522469265923297774446581074689523198899525608212704784400132124216325123128976846050773288048127820588633787658557095298856867151327442713401548588047523632573973689441571769561139048522528260636424408913253909697138897211462104036611015689834485949502945428374018118968557610170174030935921751437365493648941517399905867580569632739351696073192858987519318650151710586229278283693254631259521475409796221598789856714342596486672671524752606607523103549955561226438999969548003693318110564456311194984338523600489442088405414927108411159926546392447916374897112611304670779893793459496291642919268717341176103037500382317611968512488262088737217352605803654192463852545927235494769108741599689987460354669143601821799722832004998679234679426467710472957990662049747320836073242659016956750839157228748372777331796554417659440596783644037562630893939724138788932646008941368314703512071754863823532126988204638016166073451039547597506619314946776872459503939553599307537788634976543243998601792881690857632381482851655636460769020749406500725653364135439058920890860039329285421788370444074536091066464301017792201859498121431611961595623968873215617493335791178383268415474587390989073065619339305747157488768417663215748735086103414110846969377475568975112134426895010948922917211042711136017938215526954880714058538134186351579870619840895578421858414874651734471349880902607458283792035935521679752968947333251796096634700478044523578086874309073722604495148485924814006239094163384598814750757349048968135063658560302856542604694682931465770999530525356787343264899007937115994390763816569223974516152266708809252916004807828538061735388959140190781926879931816467802143087113319854163429761985864100190310799568759920745982203519750862503977794625839679228875725181296973227041645576545019264265834630909624924090499043667411037465652950491696189012702996579543854327368078485062349446873142957158091892900459180802993362486352452767919520603779506308637793574972904284520107945131275720307022180967014278405129689786055850345995734425683612807342292845553420901194888756303378669335984720857731567793977165367535866486897905973308775210196803833300245896767316228968022387514160015098279036440754420191530735185073793604600519710251940966819707854765065101710984414613943596922195655607589257190741221332503582885598922163872035874889142743736128522814753504390544358194087492870238450119504471178847173894185018050043214062145143322807911828760069584421539807442611973614484396158291353848953540813656274377240534783315720756579115008308076402052395696696181734080717635815530145238700356521877509098820468497396192756769132758589093394316944070071146637643551867765851782569030030542257855315273673379473857166058111420395125885041180076514716849616175816957940195533952813214316332869198236077131922640784350297915477014838111634818454507470650228353209358029116081278506338438981672019247902638838421814710869179522344123386955807691238439359808713836205814206884652463854133017090161689628964505675313517109969704087721759786206025005695339635411734430672638285630875660014861229273915778764586008989963621992816737914151012463906960883842494631649145031668385058611192541625794333539046672088716640313894590909565476275496203626539922133988119969913926441144952753780719396816703535818583367025715610943568025771052029797928821905953327324357310717211588619620188717863380968085091268533044466593662989277207978018316025696599828277302403346944871772802945265019546436049436947992862516484961515871655146091633266727283209848446745209372478370533511329376216778095423127286450123147779443018540877223207422645422496554772757759318547181283418806417648951852415940456212961838935699434191861889421053420134618046457547033232511837750489454888092671439366522985838761962968999077607299809226227927929420005825498178987852534560369545772574944996550500195561661807957393159381764125227254999813444338444735365292036439420860878151369984014563172021119004096518391668735270052065392872733585574494462567313932013102236825976008546719628246236159165042081166256931672180397483048121985911213694208519999811137243477129603561666140512143178905383438800624653385186906256105897009360381999509621282449758226240362097155011313427410836856541937134466735649667830953770852710153382391861439215840964218372175433829094867840934482156412093208338490654117980428143804882668017673853086422834245753083495129311473845569334506355093959209091529186026937850507272094378950763929711451587028965569844894599060323709810006978142574171654016619760663370087501007101291809995200971428212516067831293470206273969557597115736961745894392534420012189068661434662802728736320857318073807251802071557288540085547394019595449187608498556814394612542628777973359995431860303434141056767724094546360336870734767911046018684816934181414149613456125713886228430992812385831408879556736816726722108905323229256108392159276486162801095552233949401042565747110391495816245912117919832752493562932536253406359780946244532683054204092348135125012800955704465227973530782286264317894838112411126447873057004353565680430872200020146730097179408478125938803411968557866881101728110387528957031268408716545821269009626455807855237485282709505012770969089295295503062480587577605418156631409668429464358140403904107182803941144983898683208504348976741151271780298653740229191497046107916935577835179912186155502686872543759862815928873638115487003468140677180627522534565432468283153279022750896132385123639217780216328484585197900149924735549293705363857912621738375351833705263187286893652953865214547641192557319983675112049641890947596013683383725094575784347630929721348468643655165716592629475923905692472268704122225703425399522366897373482128393302767236686466862977545996326171969490282000122251741381464104511465690099452727244281089994321567198809895265738502073028322265999803913058699398799831259008530567486505932027693494482926631728990726350139547565214095249217119467498546082795094977903173898798939981829859505092896349423784430154131323191197029496993565119923007191731321113548813759517537134618770862924373633722768639645602773902768744481330648720904727894847901949038110146239305912895340029245019114761924432891069643492619979520597496797892288501477834901170235184467865964033022232879923255661582538419182062838559431697211106254659077590721372106590455639867706429825031602136794079838896696606326394949397732924446043473599106552522535865875038223763505305596954251182051460465623188066063035458039160300455753455465602100143093441184491150928907238059482768777458821804866801519257883930057001126902357440446679612963381746714778017973647201576894008862242879513669940287821093670629292074303517431708668578283047807640436852769295569030096049339287399413857884692935120065406563035078259127808964717157432183962718555440880747496293495147897262045237507948205056944721177166752704206687105168107109311380591748653544832211454246970263202824275128548950526128878082956320420436780547296830361645077576934106528346908530139384088001458449277263534698554966201219861742032479098305731205255838397259170926266196322384467520200933766157834791287608710740583072734744920489909837140693958352052090198432740081245102884175951996354969791539745939944626195194817578845740468365764862880326182659058173509081429475683907798549626296343421832434147374501128949022747995818630895746266751315608893381870824481584568779293014419228782745833919925154843963781015982837675597195229483309182769374123332692105997967963304366683951627303834716910538224467475058146040120910606827636608353218092146724792912278184796618460869457347432921536994123019654131622681450389355556656105344639544608184504632037935470676456228014542429066027544797127742826414924836593419629092998373991081921322652305161618666553487238779593438665651889422262355498068458877688123308792271323788899137481460368184940421934958223671820630067734404841016033710681364984578653361548999195564688549560896123735370348541136132988394328800151569867630192396020076673300603228687711892821860521022758072221667155665874691112934588780933631113050576505874403220310862311717934844592508095296577534474706298282337272881612271925759124401012170453593401974244958988097191762950724356516223898229533045891284019072979020728776789687128547126227561724970491782131586460232641653765942549365861693207967356323311540247690042271703921863654164377442466335439157522428069431311221939878000741373303218016897856652044421922242616170331233360722432152218945951743065789570583510649082485387726764428168317276993579764841078745860534289624911468387779639137568264192620080826468983453523232377673990475428543724340198307379968137141844280449761110023214468726386810016498824178593475857275530469477286844573336837608506047623563550116622928967428535052518566395944427176284753068667974538840039784933434418298544869826858871216324895079637770341349477569695442169053928773274404702526048867106516847829838646615166383929484472811614587465519781329486367197618284864387400575148982830914876259858302854046418304101136461864068725975821107780094421463900716496466904632812056186919796567236833929979947844671617975364888586864190821305986278245877758007558035326444580274433652815544470680641704091289382133017836595771934524441256214022911381101341802835066539120473550660989729387228163391043385633955354876337432342026408276407812502789613633022185761905756247267934656237215003082335776206061823981029509153493013625170795976673926921005102002431788832135078741653108615143463914827037776207536669537354319426845732307033046900884518111488349767389279764438622862047667220358243904302204656801319795699901582614721411875388847774137022976823770697704143935337952796436227411093425233220689802187268868460279300711567545112724915946926468756391208384590279652443961271203339874614154288865751164246146873100512962802970866715426261316247018579704441786574492947209298048459957232545625699970979118453418549163624813408787290014932265464055898470416517010739074393324469144523545811736592262025755523668629728314625413530786226275355122187110545576619403378115925511349906779960243219853893955039349875455864615898274637624474642065261927272223724382121514040952383912965706454870507279094557406969219750544005785775502984876605220442120345630575147400198085144812121326427880659782426720132792902032983770142309607987319379450447300908253519171081835753726672557159730738510987704066619998349547782028398597009604388138724679168140363661700146595388608798751410581978938575667033612446403504727273608663671300400717347403034158330196106902999181733394539135131142342427183888049394123562456890920629503617585897143280837723262078244918199657522453892424225051166201904083871440039604769470053575739888946621115514549750366437463273704576810836642722771241270056318105805486982814181077190318992234361389784506236836102760192676440816895777979929875209563419018319798962945630512665619903483145634624335264604339771565839323826995291136701039007206863296504283820574104366894992197577532990564632844991999495173138233431792780420894767876134586862294590281912271906138772222434324872643160894443941131312846590357317688086047502090322836316458465119905194956356645259225250197087713037367162513953014311807282604644034450537233140948839075147489208125674704015004409508892558432531533602874520672661984029330910671641856054260737209294046234807646874223448050469433326227681144250951119928409746771562173755415693110063455237850879023130113863251426103496985552281140807015533963920109379457749096963481786180318079864008189712737081268197343606726594505832169944567510198763147198054587713248486748199308594622844020763020609256855884407996597046466999895238174991643105503634299410036227357773956737194728791085805011542260240699960821940210943207480128521112557355134806668796069137124559953675623782128862881832376062159132771747361552602044021044192546399049554636681561470706161258071835151939088062582834534626717958762959677199472078695263286121484254681623757923744427166478501384297741175679240273517704051393288165342319930019145909587116946575151384363477494145986065071689860704547017394862590236490796834177336511250053330791666430514871076688076710415387482555536248781406498770420017129972244254778659481573459643943679509439598077218327512254942903884594277668868628422916251492782128140724402923769588525561924906530385556431167904488043209407332995218438307397553276987288043743977381468898028237567266388825041740109847147567323586417855936781093505524684431617323459471650308622446897416170568013752375073098623470812949560147753179901472922154236789273372889419542960990203127550465693193916098848532986756414323374415574883304928154126997510353328508363471244416235750837181809142973823470240162763363251217034906398076129758390306753099131854444634003848553653559230179895599573952272838888936309448450279992607868948389743671927985494948092230996488327292608167762839882640000492155864425594239173553984589538721687288529814994548231703074944793884278375999219725746024303729012025929198461660924338474194232226474174477704011277739852209363524008525603896353475604153654953073281185086821107834164913352123699670334335084905929271585081352502208333322266402167099777298459559293551498106172293734508712855038519154753479584166643602380136003455358706291470428924016635764674497306658534108430926218992990970411175339246989330655104460709239993475792053111592628150324230011351032706160998192359729791407301961446251706307010427926319804945233553089116264540513416948475479893509129836208237532761628991558588157268927819957469249015978643169134761624494304187764355078252230528693441045459256466683308524080672835767900103091778043986911487053416787247640787771927928611672462148256228241554812464481686115661810460763127300966410506945911399677699406623870518910786012935900020985223864173217686292229252690410351289529768425233771617996800667177697907765050882494025723290987068535762444849792666049795082976451192734298315534186854475373141345854411985484825925843507000614589113031441749648374167803606216153484940547192178967803109467225576260632525677309176959805756557082067998393743850153650861906176128294583838157276918161071799667576503083745115479665142219986073185854977979115458890489030182555281675681217722861168426736965522954433918811541322187625337672645325153102978952732093409734758002617448615984294433276560544485834002704922626825177745078404579137628166750507091530973794646859664645059700529244118839343223664613200510209705008076639158985009231922148412166824641260817987338781543841763992909423447660167467671142929845155626947235344525803923442597059054942608916445371247602693982736886254706761858549750024376855574978334110169530966332140584111652946353527498156243786720482953668322931800899197875687841698852305216743573719807177169458463483782659756903419547803107417363515567724829879030283501596754062469606347135802539419476859031713546625815346258277553973029587057680565383379393368857899564677432167108579491085855735743632501705918486405822776237173966744340475569375848978310844817190060068557280177060092050389656467830394799164645416544861302637443589701804468625104819936721730851952221129275293350360215165955011571639724697969978451335406793008527310698777515235541468650726363402916915581644461686074983702393116369154668029268068575065782249943956938785450913160352389398928286749611826481144936262989789113506122311129938922337257950833750938394847552822709288299843247007181887754172005001233581019124899323687903630905382873033473157281401970991881582616111929897215747793920383401321826480160131024096439844924101977092906128291563710198922743558340802518151260634334656657387632401204243982670878801560169741609097974044536538152809506760378480372567879920926269964915386621078874888564299037822640061122258184364255641590708008046644714337308315916478905735139237445230304783052203737977386037020093095190014924558325413713750265383514055648952352076656864607263002092611636492467343043395033560985627986725947531444908899392794145022279413681291699399081771736037969473580551603520327807501339271700942466705970304708171113354903059146027007040190579540486386290454092897854490182513134273705757188902314004438220369742652622218013773196950776037882661833419985822895778296696474010749516317814982746848224609160938930236517344104241909219930375679991710088426647678290461723071193948664779575618976070575823180114210241111932088721965067483568542517490710718279149604286004510262273616760296969463017352913143140522809678017909842696010604182340598660214900109186002764869165776623983657629055479532820869189322985211733435913615004386219420998942396460199513915885268851066205438931321406469522055444871838711729373180343713484801831397043993739096017718419052715922096526187751490798143891699918967060764161559006750589172806338217290283876144967727998281591129598120096436266416780129642682027486505125896185586128205118987407386055544659159336944327441951602234237052560113476400214137386072172031131841106912415441021648161165990797203987462578524892864341592942886887672154359460963203129422317011503838990087877019445514365558460630984059149078146459147242680955257597001774973741266211544502972617099966094212526611803972207753798091487437468113221429696757700692220084310289490681260584621802979308300316414501928871713664622675280267153283375661362469514097791894593345965670516008852416700401260589232273477503456429237919780025832409448414322111534166498533707563821260996532362198619504954742381247948566373296977901519038679787709078554472515379656551089558623844045849796480881553620946924391176630403485975308490822909581370271555808909362429797530057331477812328283221911692671899804576556633739885511236013588266983240683940003969019785767905537845192955502885481965271931613564284207182496705113451675860080907560116897533943483174919444937942771679047617847888800150462153223563381600969188688759387912338261658848416222791464809177152518867626879864047421935329357425286069335542602657423900797250074018105141198695794482110268877613491806501854988849526606118389103340340401367057840315246120770249431753057298903788830316031312548363239679209545910759454027555802093264611103727089784623597750068790640264035482307790615736902330788684114601709389847400445428006990392719919973369057744313784044980885640900253814541003648987732346455278717144787721919375934469142518900694287499927629909516465681196532318105697433547196445699210924369796431959144091703778488465580390365384594216920858903502643208253727209775299271438760264411237502634115690161043954804895479096364032881725679155395659058813994383709675352280974168415563754839365231484000806525914437576350599278386142138569709352688467999684552669844160607918772900364452617016052651192197882628902861721798625626766577880127248083569716210165184987008907455593089198907902875490383628430972966773842041117652058291341998832494676741375266016671759302217569069057166803219672371734915100989982769105928357679116357161656180645981020471411310660031318154130576294414366608009208750015478413961162333317302005483837607306494442809612709140643551317752954566320033059320751256604957000505001309477326756068582671840182563365487431230774883809746352896964904479400760445845193350180036951173639168894277934397559812971602455653125931151701752011151236635493779698331443657750688264142870238606639959648187531552903549071759986780639377302489207961750111747277496027601400064606346667736392911664025729166975146779237064067379293284925981073141378572439980621648543125506140631422804528769846235268291064064943806593278036820869224848615665987905536640264943378842822224969667320568835675368714066174041899765873135507607553423655657264403682465110779595922115686068495714575367822560506009750877454538166333839358913099425505627056715841177192700252297730872159990715095841676348787242760957423434552502619545825854860423018990046920085465448629735176877635225505441418930002146537459503237526785008603237324362381002188838630769370301196780276040226425392452666979787934020032490219857588228521021338090464718044083968742051059962026407774344387185295341844057930045860052210156841060061114588422084070029339515701296975882634751267171136138606715571110643298581204120640152959881964245093250914431323030330700798446952485886661893989086272217623546197962231792714447922594550671637635642590992267178410094710139617742069260148593968682587263060478765612487592436975890880668182272204064074559484120881195349437309212120935616135231315921902390875509865009073579766502255649601681196554101312883997488499592210744103155828113636764864574303832285972532470583749893526643747789567936662455290173233130116641605621178727047599491421632391421519842060974772936308582505400315055405910931746825352022172680694448762996778783648475051704701350394724978268873200421748086150263950292895605126861646233684599574947865235850197906415273188057769462532641624286180996577192981497256671556620880468942675914768497409526930785463251363987519543610417434525206109821330268195334079711647926278192942346218943762458749197964640700328635100625217461414103388693984760740880171063717885883256131675533575228644512014361578935161530834520824174487778141792177235764111365721554226443928602884174949325544034815912201597457699303004265398569579687031223103381476316069899281994406676497387791175037107920349318531308514672465052566086961280803838201910284478076717351634633978034743156184409393354803780737235290845122003573009574163398371127342136829827990484105128988458888252354519735496060149193363435859005494058003069068296858409271077177305455959170165095820589802801743009767479872983237789312013830059000973817362639614687124663910171318407239046868729289876381892916939082284723412965554398339835985843016557465965644882090170493484608013992161535570793820363266649538423411485892842470934156939435318791028691404878498619385637788348891810620814944203088477710203261239932106054018825624990640313498091408902455777635336757108197750951505673923646661518988711221634274120104005877458397933720065396828580042021823223200074134308562378440007702988256192820722839975543008624949692061621544572315977748505815290829192030923727602938790128655168036976940641760686287910351569497687895182274672385723287535780677172293276041499252930509349340078308430222017769724515208189145947488316695584530353686142612723837896623292911751198667871140223122648139108050520889827928580517105369013164948897102174853171270029185552231464907657987902738393531086931495479565026206052421671299329619925657049142007165033000879624061254994911869917253866933943855189042592689524922126935700960005639514940777411568768449222928848321433202865174550229439609160610718883637605688831317805479421373984993606514852799345846651200010759768469068673450571379707606363723990212557062831987274603551514943102933464334396325187523161217389482979624628740193650461821624481112316260159721770902170788915226072185681962058385301428699228572561487884212959775223402080130596732526896377821662419561540851800305210052169192255148911994633345870709063317014679103491872919355269330246037247498372230594582886320408896375540078506916327453857454379089869709041830149902041294370976225820887807785487809513410281835113697113709025468592829242254470378331462712014744851105143222400814558564031321593762182380898114443404760071516893592048716159577901459252463703248213424298162828740542305228301221307045324928051411697794884660536834710605782900972626868335579545590627660309815741436232520499997946744459271627946985929513473101807459892307596726537026291325494306744146034123755615145332232960316034139021587775239699534121368503217914346018169282028179552156084224160170533441589199882389426302908024033157145599070452154828100724735902846148130242027853276463926277567133927601334611052890521977934784199093050605520012563890495326575184272210781592264247877504725549493465998129074641664273576561028872619701893144802777197355209853450559695574685975809791022791365789596843864392326550770273419275414715040210312090302727622871622228410079099537592791821309448514216407597280702324530304288038034250456015258747803545810623316283794377757079868197654801692138499006932283765302827264018884727888787998019604844072416922356253921002715536829198907515445762781796969718180365705538497664593603016972807235335040034185994562195776457432380261320845910532521367406253015676723420122142803879717476732901730974562476718476436464870831057010429175898303843355492560742226469841451622572303720696882962528141958502804463682199153005538772579173342237321404200612882828757792068196018156518253514039922102445819599398677161275854801820678867661340146212270836421232004621080322473448056886841564902934280030594370968003818759137329892748309972825212763989438619755709596281292981755540639278109029966100728961651583695767074504036798371406901848284097103998791786041220588681467174757869211143205498657452085097838239919676839055652385896396236878828775188886660291928900057839873091043909027036640162107422492541697497443253897146500252371600076945270123082205726208680760050322166678558623466462500942767384119771532935770132009403026209800097053314343469644744207625930297956402648976721001674620732187961377319428848686661724652901877292567827566358296412787508266300834377423755643104982409814328482606399077596308747275126273105297522951234146120146237459731026347483130695887704583307057695788366437626727919509688709143327990011764589990669311625374014303167087829795638029628852452486769480723447172779469960057651016687478890533279756314966827176199644279715703914539463196903003395308352423428594829126201313514076194438715081658238855728955766530121750291495729362565902753857855340852353235786284315317751617261541228828526852350981209686784517561409759772843055607827674062981568561244080534107623409763877824219518686922554059912580750232978491686527275812619749400474948217261281980549089799988759332211348354996275842899237183884402064760534629330846652085746667705211225619434169508755812284991893660518679156332722957471102390722491748789242698040987948777133729864856495819543971717816239591728945294241443868675724011663770082132033678580644417807804215208796671022959469739869974826273973738506759940570330905747414933977585267713687318284857889746005020350968803113327943613345321643180007152371658331634417018590320870869127014857092371232393316281741574438419037677285803207681644695560035779229124871902088851518580990766429851868151485163629186645940601320365150321394044721737264343365334141748365005679805542876676940332811280426927021230558803625971954347578896621363873094474384178247923153546421808398240854166805186218552573685375880156403348908260513281854368246219231426286616789626651067902595809686560958722662675699552814819973232160108038336013208121374709288158894708157967894375082968590095617728069199190753442655186935746104347063583185996340529968941985950020194453384640694739163604613898575569022702815927986699602602094747458714767839498324308471888997082400291073613985035989065320841359757191300731557882943345174694010447723352107423398996460817597623236294792747422727767038558296465951841454953313175300367072724321853573135748748290666738672622112480999450076179066041132418641285890140932838189404332311775339141455565220434911382105912627887171157434888600924808048954074601740328868582306842050757063685304479880341541724817119430232267042043368672938078178848800485114544953597632970970714459227104854381021529635485139673618707193990917678890922794125332822604531431331088553470462052080428044775908355517762646721889511219663266409759363951596994312364677604597623570225945534273967729512639551318841994797523806599018273008453074888383951694396501266045591510948378865273965475952918845788402323446899570913873402323603612906707628727549883599713321316392573935887524343741129640153465985312602482956090129055641508177741964793928746231931611271375689764205151661194532170775386882856388078150966881839182744436832036213435219922812923493798821856189772129457300774905996017334956518699879646621703541123304647562040548286327493256573540963846724784466296145975000429968249035896531672909205514461503258165375975528658963951745755439603096579655476492859984404083423769210790937888578832731760396044861040844767361684149272728600846347019118522538494977286191635431232545871704754213404471458863489091624871468559625748408845172010139711322461101918913845858217049947277664794868951041978317287219596666490436050647565318745115993351963756899572073760519534817731490022210503631816391497206585844820450275625190567639181795670989546346736210559203758128156085697970812699198160821725505879775796338682403372973358948084492633547298324258573020747235177603764403433826897016506873545950332808422115435622812699435007775718374637571581197971446630063857768810674678619651061938396678693598647657859066882948135505037863692097282671077760537106899868797256911312067144621971803418973681350874319277273813221607881875305589670016419567132667329532221108997029410183690115565895999838883422408164942399128308280934599260892582161849416298953619976493612936338288010472853832092469089693874904699654033759996005183236437113860886867023449260848398124574380195139017229810743535230534475177158253688810194730180071481153367311620275211665493717191290106495069833038806368897019444275885741036475776672014678362158287703349746980122460920400857119092552571231586058249412058321273316510080215477471949954997906176070788174908010668808419219026339289200275869031992320983632474583311162855730352006973123838283863990231613607058954023600364276080999448767531711570031672386910747150228756165172215333646285410486053062575242520690006091654383690501740383217622774793261580673778314622902202942068853445989014952945473388999091941913228203194505266172286531196629605102476185289256220631794705206115474054566776365529395043216067244192364090385649477931532120657830686699330050080913473423614626376532970180329723306656913691959691074170557235775222207307476545560816615781054447606088071667612632460787336738435158842363236069027685320132693288535537256778934700513330448213698871684378395119012407486416847414648425031574927387645450994484741161052567580865056431109056671222344471465838323754370894878888803796982884812571511255597865018847237951625680918155132672970036307212550356336441629269477970181677144507080477701356950427574884538199107538927878409486330412239645803700375395586565059327097119612466527605463774657022962106165186561191772915076518655278832578054009241382084860474817609065260956251848190552280254991264455908984480175873250151901247869264188635782711239580091964457707529872211819701777067529587210878364876018441066204938028397030697887166030699878852303710600797235556247666514217836609359343151575527150362542172418504642211935517856264620806111252965028065148469782147064250455782744515410465979018440915943905011770247007691175959719133362664982313482592359990625803984407161674503029134229025193855274064616805787692379724837383344523431799654290101305472001311213982539589518838421367702820050022188005069430714270090781800660387537608728959426621508730280665493345831925159472317894282649319074715179236579195133719053624830288110685259107420058973116804935947109537357682862972599888835511781843402473592612881700574847237795720861336794306259881388562689160279973266979848841127161315055611726534270373808530147041077612356688515882801204612604936359721753624769197615880129054787587071526935563639962122579607030855971392361894072609572953622471017582063087561059285801516009255199442071772505728754739225986251832411565834856351628129411705839765797608399845704629551396190945563195629089463615463723024993387615199997296974871397360626471236667242208968771582412943111941408190234370446326944680469558786147892269385365271778952382507238862451893367540393117443210817750075516039215345600872734259766665231902196335443104853820369801556933013476623330982375388454344267289187329477973265921057677466016766652383034410384845694034555440835454564977269329033193453323123801676966267435343119333252246051236636453388058269688027390026240826561148504710044972124008881941897823343384156783068257373862860013859616772332159314360613352824168843822023539323000555965188003963890494525715770775218092322372690548735525176737183837696138972074403818397819182286586102043286410847380082214773231783743839908716669274691371161727700622153602749123274325334818082420176398071763160462048410558110117145996473537026709673092339659390425884500484379084696829151196307979366005432293208803286828614006664459549878595071361389034980730495849436138387726377931077620177199171417700305986743756110808263859758118762819731238613904123782742957842942477780633852624879369693042774844066889891454373941683388368839701961730384284571728820904100558469614849428972441683504512011451021857483521090077071390747835538394571657052739474473336805917432126800812119208807060057211476708964804626874040374259427987515789158073212172017697567798847014195762026425860809083675336040279857744197002725561977720451728419782824236565973111162960462917592592751786150172791075916877580052125487842042900813081181158073277607494017348050105115839569777271475743872736180188698546758183782394781146050464484081675243051334521031346129655613549417615187093771822752512531589440502591893426728152000449038549069694733788382493462618120973941070423703163962331811423207378197176148289518416728824510341119777613156416790120807305647185365571624516339755918763451313799169705729116068685037898464788394074979105698001687121606092198574002819132224548222401376116091228199905531217937295746126011648676695543688287617349110039644256416061449902228635689696235955516294178558289458873300917248214108531156762873474158875441252343036785927128183442891560105460978518756200391465321605344205815625423477484249737503265070088113644703398854795191483068124426114076624788982743699658295629117506692782542631136608665715583370886506844857751877178203886757906206447094718876684770319969463117769509169921687955813048854960115050275700984913293621979603804967387504498857114892769586132911317866957990421111481162905370833733979778916432636777351067141803656180891896417120778388485277862747094753136744276468555201790186227326672341595510181120762221787377628367080925861520760453590038109398474555349104580802010228673499041209622012514106150387691177469734468381949555855342450198379183298492150647308107853683067963349565390529916170607453906621570673164218925111015499085776658713208134933963104901520755019191577633411508811926300694443846708127454176308388362096670171827916838664455728758978906342011170880493143521492237186393135492565542329368300853230118608037867686987616645398736491366585086024506247178971528435332030426959857287198207122452661423084810570531539009484937577766770882872785167750545635655338032345572844884183786785139855278495551662001848588385493495615683646087050875592499539632828120939804372618504110957049930205241398193986741075265880108573322574204605708233425556351264834710992261062856295695769463329485310673557530468612735368104789661632079890161028407902990695882881179198930242677064648098300861682830275187343073281591744904352125454919726677258093289782402923302417593036032221978091907346289241162116325989143108970974869654255209866678438266865561828982917934088688029495641745296248663698943506814686009397549643316422370540706932336412805159650455438007851361100479560182814249492372679739493332449908675825686667488884349947901326412062708796100987911414104019356387871889629308712293790774426250127716594633999455044786516563396362351053674382421517466540728884500682441973520786571462860028948890638537913022249484959343049285542572043022557786219712546779355208695718666700735984573080692802826639046515028385371149151851559117526574403827362711808567566038636787247036427836763350263880310382671841560763371864773869914866832016776871136860432375694866802602256849928656010049047183880601611080835439742253271986591462812243321859676487101759514259096403680570584274776098759730139685027801437043062548646503044616364989994989330987230104619958635522128587800702264792432853008534334960134182053409734901571019391685636852216910234107466422498365703415752407321963369785250488335675977554616204747828740511355827907509919151214314554927758514013894637446879076176584237255016221276583453548102958719722552584602013511248212480335911856475925023723023336822565890084599550364880481306822464750559276478875687539722334796891066795086141221199734181968540933546263534799872383099887575730563047048622484518029558495648548263387568371612475750189808378812327638521617683352652387006694159766635480327850206624787813300071355280972928139615891011431061812801177850840555891798423024446854681264421802351242624812915428775200009182569258631174119564631062437579326894832259100341470633761622402987508811679542378499181379458283229298693725031720871945068986568264001266407745845584946934925416016491882364408722645109565764352470250103124293006141623291179578855714125973875919925395721149958474561443577731931901861328376023802753089250103301300469096559617749480272218534534537363499280335435424589552533423728168933873679177440912837515939435381002990820778768649933619549339372096202745568796850089001054337485294013337645218464701987240866469630195964732802743664953321324763524333928926168492263948590355981884055352210127995676529681995875197128877111683364954136236378980013186971854507445444174000546918797592617698233046216494446246048761069016320766285862430840487908105218433592782134743613094746642999740428224916026729380722615759141795222994609932184142221818364684193380900402577960442025414025797850715280655828510507679530735031311018958769994502530755505674560344626470121134720174060333130655679245638004407278493813683538836968877984326306501880380738353452253008396359546863080733574126063712084393467099925611594200595319492742063115880524607171073228859015796745980065039156998062837866645855736000815779828416301587737328134148418627449635564277947438235301273535028608322740004251626019727505468492374541420121153311823252347324135247333840834191169238647390282777100071197669244890463319853980406983403014565486007402239329637576877103735274443241090668838286596139854305846335561486600163930821149636490944454216048233460707687825182549808431839479456182012662945029997023366805542948177086784562363180758735789716651915223029110972944696364932647649182746132079166567376741644569590464903956546799521845609453867405003060329952796964931006105327990920972386810345377458654568044692223695882709245179989182510115992807711570677997402508036833930700968991696187760774745108559822605790874643210097145417906267127692750348846018245857424322052362264660806683834974903219278683535023867117416705808699207074829219913213141753775596925227794788755718380185916291028982241594496782513896662278833278337947471902756522823548127357235805962884689605425407291385148634549159043413273163785440027027882796361032465212797282058210610058575697451871223697574385933217079169763885176384752923355892156183976459828201879396119887784002395680082664547096141972553584827416648217925017807689610445774533149379507401150815236159703485275290476690657663534836245398961050914050611125983323696368997048909583267726009033326289509013867182422659836705572313108384770554239079666954854115884131998977884690019774998781751501236482852445570995215835193012991891940240527014543687386625979502498097041030734814710958045045950376220177366031858977714060741017207150721706404998912753099515754295498886775427120038441722682000822917600382083704440547442544213516098545163930331954596546006198396593692907089470513505107541932236413940079454095861385623997813546305460051750431896139413985977640854961066679288629349941423977160718807515596890133227347928364464933033847617873558398802024797499310079934127674357528858890763789369219232162321486608228025813013274879855104613588126877581891287891609184902144076103550919892960603215278702211374907085815438437482084907724387668583575059815040370000671623645987752386274125389278013065811609175110652819619852956047499336715563103203148813242487190588606536259656895187167985116646874927640326804692958821172256074126538658771717749327929032409733580567224010253365017844968790504413142989933000362849607881814955964797545528996200818528950261596362288143952210787037112621024510916589214573532028855579831723666366495680923368660544041225862830730464752707282314473906893844762027474640354659618420835436657633418611442004096544105676346401187595917683397073337107892664015370196047361419385397415332295802115676365380816705327653872283676938346414438824280849692494588334804235185068861310320272804677471269917040777603078925251173909347028502112504338921280600939110078438787144678831261899335321169572572297285216201022003879097579202206775614552393524829038170122640810456215873436588988498397667503462001754080341976092725865907130823019127861606734599501044783535024776218832206162549521854605112685535173124396328364548445151885370912151581285082768942200909732676369566753276533763931738503961427716588642025685960452023402953672651965280337863029078451552852702692863586143472190589108629647018802379974804957660827411096657633881634843388874168577993535055330531331696975621238233552906206723464256447148241968523401106500781250526839077593199972323281865609098262498707562704875693408890986182110383913315535885463827179239590143889077967123344969454863548284340840192728933233249378280161164966350985237583702448012823071569642926139627015197971278524858542326586077233061749457012106628111817008124405707573570014859996448065865346690505081624633114092932878588665012713628464487839485102469863309974338019666371713858597891103866409694613978086602966364957681794128092112295547055881968630466965485824663361432038807525963174430168023329755604374312452188371944644573352397736407225475883677527703426085241867417072090924913219998654853821882536148343407282316470642046061910549654358631941501074860535902011644837933375632105356206440964372661610045018763144694580205922134920196248265096225500382787112291639601833567474120519582903324584776434757357917000726483021032231895980328163627069379607770514094745882620410744794216327354915958898983967522726544271138801540829262319084970191192854401499297503468036195422199660762783618260344823677308065409341158843124044547070237799841413029539847592777465685133680489508173701314368947482402820205588956083169062912035415862175567841745483652513970293599495217522985580256018141182768482375893855295623455363098105507470241313691066573107376665658349963495710593729474269468267846992549020137948370294417493978078247304469381099213035740012487879106353066012244557620969568859379039433110079394717353395265872165219389823238799771985095418321614750744560796686032130560177835798529774542176273379151291125891078781915280629575441776027091893863102994061655607522346933867052021090867523139539999723834135771240694141609453744467781968812393383728203686895151194101878933114135155958070101486338768066344669943661185295203494040223856846037575595531858404586157058423935343366164445457962906853284735816850555492579250088620115131218968548467840296577453815656970630101207885804904649762138124552959495762928366730150093045343519749224686014206985305117737741767577796561784622150696616420863322250850709198132971832752385722994503220106466240965738435534361449518054116661488993467343202808222942066792548889275875170261933577114442326641588682953191220076382273360844530405199588332019548531755170763157109258494756975114992124372891398135326281997827468319063861599086744918226505374129683081780049622101010842910217166898704371282913580959563537934027637261086969853488809419584802827016769460193320434554340812352867511438615656225920960807093688572475563652736566026593284442063224366559006936230604083303568868296511403927505814675111794221226212957531232460359184287569388922098083244217883338346229182805159656309147619017949733375361177640328626170552554838752923255442802000993305389765949086263328174420493053456964526837944266498113704160068196175240373317241027022202771569003932147542042867104849902057474989627466131139712420068363924009880220868374338863922779963498937999527649836472683125530814979138972467012954568095146855298291385709890903882719951212950862941304111514676366609691101178656213564239746028128417163481709754339556550367029264162740718320342386056057122772733560848548981236201760466710085205642432272522692285484902547234475268999972979818714355041396116344960370903272134626666302156736127772254566118164887137211030596682204182716357724379203651525858597910121163106083814259293133551303262693193058603998784173580155975050374017147738835105097751001919136036661537609837451962449291213922100708719520812380411921005941647493550799040097915866878550454579813266578374430363616790366265626120942490957686940814026161455659388568395567943299217973103901843283857632117333302946811084510314680762176705522432806654943216274997723945341513297222525478781494173794832664910294998025680236299004744983407762855285077610569313449749912369958922988525024015542030113824302914405901627592813842855215287822972450761074352758894507594198858956544498523878830778228964705355123758812410563091727814027358728596427838841890743773127972469410331745764790701475958430174274123682647278696286447820223498378546913067292706871184981129373301730508341025779025281604521096280088626044270925719024560903755121633655459136459497540670950633021677385943982378029074312498429639699500572951196465855911888698223083266926766564559573419221200358872665442143802891282328955547628972127281351437336918218680309950956268581728455603918827328213960950419920283332543665253561554744976467370061897283313464219754606139477663375148254601387802108244439668229103423115494458687923264120181034930884233793964881647436186717779984161701123412959656806014751326694567470246503483245533545877950694047672803457451521978617265558129900837656839673613659687461268330966442281062540751955935904910692543868230920263009876839525084357891850223615780662064721093573567688062528547852108082400913762512056176202142135576214971287227618302845989594374601887445992003466849883794935480643506397854494619162784981329500746548494022992579213576880458387560838378640670293810290899295980687301249726553073616000429834118295706449647511789006261743094709660683882914604027297881245635973086025840616623624263368777976324380899358022899852210293349392182370775890652632198313357961971252098054843614860005952547994424969348436467046114475057054102862767285319481346847462752688325059249092626594722448972487192289667213352300114405802324105337781159513252813642027257742169132698762634893218569216372468112374603148491602134840033916830567483927116061538267563786413103280418791304591949841577058147952383766958426958974747224603650861551915217078283101625302888908666651426848888669373636350154096693511493535280750181540788538387898568944881149603103133301068102864923290359058613853868720892793157459413076750640972833289925514936343005294554784354485333337635838497344987356523924646146345699370678818201649533563720232304151234355822299887944992887816184792694809837374320617195704983069308344817341086085471294069677958297645881780440233568282326004311437211842636331975261369864328841158427609266697300408713250615887272210034664890006257619836086956047917151672966298359189443769240315261250312102897153139645027231465634968748771544958618426688333280128946783467635409071033273825673456960234822340513288254813345617432352856645411708448198883897232784078592280638056477545912843406496055320452955609159469121738096504174946475864021860998866104648479885433180630030571819752978633791964348596142735737679617340037372024493648671919995725526945134929250401499575805280335115702721150041849914827258829313984167806117279668124387707681730480581130143844424274013572507174957598173809420086612269292901220148490555592989377082445656089083870150359871781188284793803969466062692429299966319398208305988271141450763487779976081649698320842170203523550725855502355431113999501799771085386200436429870615833557442664439259813307050539341687748299103845112956666006695530507613473440194991091620835948250609421196339296091270096908823298940888984327952886738555962048238413403912990810926484260917838805943043144946932977773114053618061560917684893701147134929759068580601017210541526183398398778614424048070576282298379818478568840201583702381091026411848446100892813370023313792647390412095649548120791091320374153753505385107706960958192861537828032709456704071027513429509245649971473889698398148333254967154382707640661089286430582137736661447969315868581770608513544341360795841865685567600819879765241795106242802033415277748669612923068843984651079578181277531015138688737289897416641472495141116385300706640781599366951450464636529547892213203458030688656716186917152715708643408804959626076359473516053799902990914129906283794271398190494952510769574866056433824403772934916917394409569186869389539858944139441033762909427674516626749414475889639900936403021147354575760188046938571220456711673732548476635203533417429480881976010737379794558298159249775651225126886215650018602390651246244959507704508039972993018144754178368660357576972413201247784694715955526551428503057052922126097046230417120437338425065032807662432117599893921527764404940233165170826186250574845652014292441032906482739329956308459498055790508683978055176200663918108545533776089882619024284436768784662465176439971607077681161074815284999020766848495161733174213464582009480235460964663762224308321615576508268489625292596308521303526583479091284322581876015629687214182979869444667600540236485564068808769329502987151458196807181204921004734574240581949481063776268706392487367150817956267406349862735840084275948977793545973159180970582522946304622929551810743784013001567720057026053014235933698245834147498175490430211156235193762077615562495845918140062478719093607699441207429566065163269172023505523393125654181246307558146224423124803972301367369419584910318632280059762076891456272583545910419409921920629928615510487834173731941188004431929975372976460171527254124618232269157014687614679645054280730966008327823489199598388696064561921894157801813909972541690906165851170866311305559210805807563791685747367544664081999155208638523005270660089121512725201650308052992711078680044297741728385936968734815049001078763453991717053199447531870011684505624795230227531388085578397513018353971898341936127250221093830269849592038667263950862496158043590693201243358900065519047438858813575495505695356208415691942837334755011378937505857200034275875604801023411224665919428054131177365883296479848141982098059406156998471090351503365906656381426291021178925970231820312601399079958010956966401655114764456557216478838681159191321513358719495869700683736217440123868556668806081120373377077700999693774456275031448914879972575054011123774041223042932356687748441870989314271456480443603078680601249243651150505331233528274432563815347120396910247179558892523918506757013482198721985894023110765584259346289323709226598857233384552441608070422487968836396965887814078343534715163090755729658473984355717797560552973341230411051539782790909890774428483891932514445557174093029473748386855790885009292476038815655600471268234744073914846496894556517574963569484143371460350309432815349875890604067903707049751243787626454344389907506778728910586124088951594528308012752215613788038816231820293150072342802870765961384857118335592151145738427502367775489809989488768941212096162829601604005303107732583452931770720205039995658604451357771605580177301580884461106257830382025120730781875229230930395856354091327884236117011334108523973044785347988385363111941935758935265121355883480587001940149689156291914183653048540569019756244413544752496329792423519641108384171215587881181196622059945403105865877110982172913945442040137844128226644386265221064623952442552775637736184847852299978453866271333821742385123559629233483645140148791445677355202058391033308165781813817229493480637989078796922527856626080539737726668384788959863134780452125575213213356201562032335928851458444065015230641920387415065676217505514708392949795086323475735316144824347430241339485776316369391522002689788770800697533774683092779288203353445731425793803367143996226694356836518348534576402674935412232500840988390923073014299469039299119035904093776573839766495133159839344155925193236693864393400051851613686250720996204795245442010333381985067539722081721202350443353176739139777139593684638969388695319453172960996548351024558006856979810619385406528508965114778026183245814024410543783083032460121459930940770798677011246875889542207070498426078379117350307051211225314736984434103341871286125870085961644830669199740654955846565503829131560422383856653261438010282374715600748467203707291689464724874262779510951069014561624155592824615836276446588247732466366834010673357170306877679340265012076200266284172789684089664646511235225291741801963471783258027066837145599973539937819096083096590848483657107296086978507634257532976982550207515863200524973503756366489742073745024986899864917536110933056645572276988185486576530250742465083799837838953883372824330122209197396192144646834594255173657073201497102303274544571616292293089732357609316581476879078527130126023665705322046454769922042419158921565630851376397801071181491331439385951043557882047973223275821993212616683481388009912628700134398935516133447842366234631894045071662892739864872857107590649354261615588570169809603398267820376863830737902258788178622486474940539972004413401380565810421478262383934649665887955467664633052787238852176404902975362446314631215465690601182731481515513280583042135901289314667608333086345876995470264671084154955942752745241764892317823425320601688403925064185482482956100056908876609548068413288663716493213387957605885775190384161534387203150612056179283352012443981478017533334740983724455866829454877095889860660611810419482139405404399387820545461843924609941576548814579105657114665261011183621760311984775790453221884823480925026187357046986307618554712010281228898109084446846092313202847415069888079873943629847240022575837257122287753993647710444940617297853284622355873429618460234227446147358858804007311296335544885855457967985553428655778597204162426581644594698296970373030506677784641352596693364349442859305389894054439577644900042538751804456787721612756586766551993196059029303718486129032388606631166035537631179567718812982246152265831277538191263167674008190408060518285623054554422045005740440673746120979916616639138596211896977591653362266593183753713179994242154756003027157567992950750383199952111018929320255703424958426739654721557050163173276459154388237877064895391139773969291385678626633590064350218730442629449496298631515074648154108579760193058022320942758078647386152285616665187279986360680409699391426281616842680783932706273212404365519598284011040423805899689559474387558149544109917153054035885191321243621183835936446152303846123689761910799533427464987767147152812540203830912717478650934682138082257973200628622653819978088267179335268378500616490714779618411702152462745329084600985023538868875971990210808819775655832841068572393148352647773881110784272224970982824458024700177894153917511679189816111519864467367580676869930285355912824670865431052857212277438079654308585338202522136895885349927450292950526229642057186860917630020974218001979405891949183787801575642929327179998848244245379451580720821330257085156226427027674246969341902940516492468977383339645418132337861810195046059861562544125344299791165105904982771523806094091534825794833310408349360062063926413567563308325832935809482077302668408719838911970375122022251068158519518094613778075772758046134873177233157158706717846972177629514125657070522355772310544959842550049142641369661902032070172454897326726499341318251950153447594426057769595014905740436512298657961251953745680270685872962394666036340822862451066067143900692791396608541985829936880909459420053927701744241610606141520650660766371205832364467304048253894085784689350525831512984524743976945581003684680964252122930315804500990964149776169882209654987831580864324096002209746169591324003707700611082916282198547587771506505986176790105127041768834635669621411993989346409597488939949699313658431443134132391650995410152502365252073978603360616495911529388179546701881890346323702193212205495366836150786869303121731516820736202434826530979577448170359195344037454560116369086873985085156686373017050561197364084086163803504812727288100832330947740218035140865357573201100801799241738270713720804536014988864762150176701308866418926019245441653253683631970228613221900002130117016618023295549590646888682872013730358576939949586757659123364629505353340134184986080956346193359044943484701698444477225642802896168923135367965115794054417227040878065879320132211812593592608287361709352996533425565642829944170054736806322761282304710129796845813350617170497134210920279526809409902207133418916754975988430630007560828007784100428509352141353872383921307737679132573503988964062061585417955685637203205154348930302695526639534114296043611303005728162508761488110814734221190244920985453976065267633692946117437229504142595072766754065765070104628742028412984789901272342878652708048642072941573665526657577731194374870275707874837878265678222198817536058145005380626796218482222515686405705102882652272040431466911495702484303032700872956456789427536153130498211329868659206568010859366143566089606932462957325810292556902481980429227390299320755979367764940909985747454913183520083395265299954707344469972775755087037711570733496550316806291696062947785902491710659313243866653797957293139005195375342088060790161695700498554811841798452898349797151162211955197969528516695668447486892849630610661962505929010241129271664121795619872867207550225557455417854304647287892290774561981428188712207361694043756655822029437634590836117452002911507774862885256466685510688974480900864003857218188656858213480321350530910739716371387179613815479395797581876552485076387541796917509041650065077645360177360542619214540310730024830068751125351182548464321283570574335808215498651288389251256023588384582873118454470563393690829077392504177893567647182250811237834087798710505785615765543621287453975648186407789082032138365493174642928873020605651693099042705298195919585759699178747336983137056214893866527817903303154250662273473086596854118299384194848815638539387695433639257694322098585977463397923837996094661763492813907993985062330929565243951304605505781774671561121204111151764278812599056503984834310426920281856896973230915458164575369586200980659965390984445685835237910745075908558635463702858810041342646376862457322197330321346610550719486017760964823040351305715215201745910017147886804844625536063819425029901123871589845084178993042631806877208685358404871904405384003747944074125641705435093440425669694633012157672051701070359203358291604989199909204912758088899183248493012867524477195657293185040848575444640460025272009625768612714106262636980997632931068531927667435865765518414001731456324166431218378284382587131567619584435853323726557913406070814987692777471425492251089451323116518569225349494871109872774860913418309243674098842794771665349103439213760841913700233228206866455283677105551792256707179361295266567766590787667061879906282984353464948450213122814682534031379414544866845756703970456652849946118560647911798317504723924776178975515014038252844645236437328922647886440540102313037690902224380075377406026970227318359867726742556035989414840919202682446262115605576788852849631370711050080162506650795749966323475579071041601565809095818698762251787138418275522448921946738213257721589673508612945313761463002365636612585421918054053834825254633580942926153780958489995669715337659045769405933717486799215392959859901952427798272623286796839233066506674155234369265921641625473339459946957866073571428509696936967422247453051728962260930230876167572600274389207688947092426498765217601685285256560478689499542396550196220975475684422287638397727933257726599614318124344795578686503551628753284718137474005184300251416443950393356769335280503365015877189682504580900128190856731642418955774880729292524058558640627642714754942223382144972040392429949531238399572696978269405475445156442970490884760868564293342819878992382597801017040756184261522291072434478662431861544909842138078989326830398918995246436946532936321514778387487382738173747752326843096936989240984152028866207791847415258549039599612882676646972303532488802830106402998472332071997961623329737909184828077568708787059754322984997716797220495323682662676371508147457436139299758263812462015047860209672033281379660046228138384696419020018364802590605188135621200314182616450217489347310423395328093883394392688363946104918616027239215318947006873776984339061935745722702848290337895614911669855661399484905470750357088382294143277172527362536733552290308359594766616080591407633467563925284223315504695327906654067175296200198964917501530409849726983825180064429124299634914753678587028542470002251602490607455053694974804313468938828334701776336268651528320595386406729218986120706681772197866701655658100818825367551231993379209105902627903164890768908426966861144353757325590748718236546511984514392250212532628571691078421192042015238257034289878639845649328729545294797106878985599124766949463397978563201479525179361862047759465414697189881240418174349784589082890113863363236803014837110200243169550999439849251249483243621844029971481661696614545028027764445554622612611303617682363676737097302698043505437759057435694354115183046789325649569254452680930515737985978330953784206004019950298151889047660354518846422409282363984988311627898553070721162422841378146494111268643045235390364015062779733305532197906289839383885626610642904182117992655793668805496520510250521969933580417010617625636790797363954283371603870213887659914788574330943568979579120253351190507251616946627107510909755693539381570761249163567339697181236963198675691312238376719408842889543163204150134652358738681396040812544638990923840330426833480327200490971326405786802061161801293110193295518083944693120795198973786707820114802847559554074355954862693048790685651124377108484212347574319698791997128213780665735496633652800556093208983512001399838269409871879679179750664304328263852136665786470421260892045038232875493150627057901618871476981060768292405159850386014607909702400194291985486834527407459330525242473495537068783588314504542226832599318882230561726792322557370768015066163335772891895934665038217721195438541957699827930178550740207694773375067439320797078253759986290020445540012922929067518066575763664909520720484743462305073542343292556212288067128739245365097940477812378129348150343467450508401997864495313203787761322404195207545050011386845289091149657375668694776054125733866476628840115328105065988598091355724786222259608330514921232421059698261688773164225882525191116560324394525987686147993210082531903077809582692255822447568983118724704581768378244803638564181510722715949342796219572222707524355140521091952510339264270112357540878334986163563618533988573452625208856289689661463778049389785115144322996640863516992471091557050308301711868384540930958358581884709356609900365792829534188651596693570251880800557048510394155933763081803309363169199772712354130808981727435918604694261092380327440476132696741643081287683441730620008426226478461575513394692182842505391551386620594978071618565398506800349662940036256560243580953037806016619730518663435748617544139728104901347858314785515244008533740589262461558496615393981435555069657936752960014996779837991990405194395569637730090765006411702846247963004785052360010517654532241934630124951719558272744134372909595607873322174124742080439363441355436853795712947511928679611045298657003008640969038069462899313142907337584724982336916445786231106056502187182412152225489369570165625327236594831909815959893564165885902254725931339765082924644295773994064173035331139713189194545657290131226221153279592878490293924795262695835733289953531837722619637292005146451334029094153912530819348842067133668287385891903618914726406620221598941270263689721609058455706497613237859795259944828771432183353512170869222494965741541904135589441154501713915018144600295998265407879263093777191814451905669418402482663920973220952119430821115401396879288604619829139157957553925524215644513339908631846721381037215960607882774493657684015186456154135890721881905045803220886224518395730151752774982224604420336025112266515903213173494983327247283528085988104717627398961906409938343217074096719493988068933552026581552933708394662306636978320167563087531510455186232378641452716729603200792641040313080901014787051218330314992894045266285152311437764811010610018313782716716100583041581612990235848876918491976452858746113173571281019497148380241703484771606010640687106018929405856522973795960465759222452208994519959932326419202997831174663162266254208393114543598570051192064819109547082800887206836136577511778754618522356881876665338995183375606558156433662793843703297891018751159956791567584132259839366268109048177586831028298918818171791516077764352260068806006195999378822664170156647699993333982811913068155664784640808289282901392352644688294009732731170890655479178505882204736535074032713509146337600649698742139771993564122861602172222113733142492288515134338849808375571234690876695657579829507522242118886631545626262347147369721120463941896468600978562408320452597233958493311015060058159641054999616249036079144386488059324612851720950273293770266989309707275776687727222981427275028230747826369275778006147676535123222789205607562819448448021509513256784492452306985103508488959103184804143361072872531896412594559784831511720817277740496956180296372352711995182828692353347225199950170497064369591927764610710296558153069391543655704972770342224058542642578494705492674509073044614933349432591129828683098618608001172406398784605811021919810921707449866249154759084585933857137190126046309999511092697150539722521236243440358252966505613218624670760164121102112586546297389160136317028340824438110854369856014965192472305296061043325897958982946025972738153608469551439641712427695797483712378849656396118341246344055206820837442027436036991393850817518751274308794040946253397886375490167956177590796941919997268110765352059033761838613105080861624825261423696504659006198722862571457981008854034163908715497356147796207839049798208585045773629009763873315752996523394959177273061568659207700708665989780253382691082168531421851788838373527076497612364303144663520771703880530201335171805381954816310012932924811541929008844807699695509315450343186289410720514041224919027768631993390189368547363028142022232392640123130250042754631415538733403879851624122498508969973641872438912924707547007071939339381444009584542046481022036573796005540478854995686384421658809736932287473122025114266184824849381337426604936258768318334110671006128276576179062897892429260318945142900282250301077979959019218323209765997089142000414476597645159753986316133662871215687056043313895678860346102742790186759787950818436356823984011878025750816791374155923873925634596760562000608941557667901169992526256330727874566975409060786422116035723850600116775640812734679962701318744843197970285656807664460794163711158445598998925345635509925827237650015043426382823259987088030303265829896812245611047515501794250310660089523191135302385087921471616735718032333433371490135393178904330502490580388426645033499007900506043184992692034494347635863388683360092951223857380646647198933360587077987433158763739087821053433937511720101778699886883527585044722545735602495320404057127051318227427189627429370501995842369995753857823680297497979431248402551444868377069828532583993821372014036916430864600341410831499790599287369405147700865686565821612174788660516079533432291751357615107702410102196073895971406160388203184998620094850560798214068683757834375272492199814038813832858418441587654730831105061695138468904331640224543436072112114877466834783536444979776135055077400269486430202476878552927031863424767763000378895733385382221271428349745321395948283047418366927186323948307566035616894540169094110199386059760781807680873706639788288049124060918973615759695254832981755040012767835970963643216854759859718522147830638714720442939907580199657859060326736185841043349665236259913657491679828194863541980575559284451937431584654694548266280441913602291920901152492046636827586783460792386461650442097147960512224237610085978393001693406725132489291796911430049652357223992800067357849455013397714632417348865306120113674966971169674172885747830754393459227561354907570612571334767072627686259813112389577774790863184523329600667360537595897394865408315592420877831640402048308159730926309354831582716845171925803129713108966080369392135422657139538223892552649989439152367810579637410828592563414023833445016647564638361092887616968400616376280083455907547741317788339187507100288104666994713761668945604875321675396276437419861440401100600209186025215222176822643041917058819821265222070915456134560381785146445158103617432733871532682587602373692501645500443955589898529872214938597523404411498933652214165551125703617593015803201861558569977735799693968360781535370165823234555447583776152021141538583805438206610533170165438400033094708294473567842269113787478291221672411616168071770412205151566367186664491405861406438465036827438374902310591263361354794723658805665466327183861517758023990107491346020986938614178450576591000249910601200434539474264489042369995555313234012620106822242334006748068246291389482250562289202821904584963141274561281097048835202825439032358341002035166044256214484543711279788342468292437757717698414083866711793901501675651276569427111177251249567561202715580284064821972773121763302500960955429967593747311152460187010135236799667649892839923455689152223214803501705233495230565410802756574277414920488463606729995336308651698312284377068712349909942900493198283322734740588544393170263585098742266527007563259377452212939818902155707186115656764645728535614956889674074294071659212850425276913609144919135395826446635404426566603511693206547456180014593433118102748427076536016997545884237394687234533697989048969778127588947365266622450430564103094715104372068104427957666261347784741535545692809928773362145005788908198803864230475662082987411724467960384253518871753281294265774270694109259616323976402961949022907431269638570922483465176790665584281244408698210625116625464048181730460526733853688205661541444024273487174773209910599161325185425470796166826771388338697135325911403374587353176747056385139677764621919381100417660578040302660239101114719756762565448320528767217795596566630436520154414431259200816516247908732794165649487552439295905411556483564347339175185325831409633395318801559893186093850931470305509435746501903547179036292409381879164960587990282839158680927947051695351139114574391039003952642326132028412676937473019773249261097878050104268503902965093247840555987801352618838241969424689055202078008318710594156474426875641510715352566009228321305533045231757728485587242007751825867877219055801561311106358511815298090729680010257380923113202484906063984315957249090094229738659879655827775192958338534338043409058222422406432282539123573886155026623876399300848497874591658372293442250967157427193424408211381328977204774974429868653380872487846049539298165844313437443631063424167835400884005873154013054056128257959059754619815099761212443061194709219413768442252781387049831454515653978869591696599816262655655239531604894218443359947768317732687467518375413851503064585128737983778203214806095987295805207786398730654339573276934288691044711073334759129642226957144605104928159565290514637392787990132667427291083774993613645268963535425307408527696975519389493591091240936953958549335932999037810196993562826671446675402527906099216793118000739638254170351883122545880457028946884546586889820489198350258805111291160299962333899806855090116409403703306712588181832287839667613178258555774850613229049309173082850204262111004040152450450993997562458411974353188281807873984781553622108227227280044475199475519163689744286379736272136040678605354855471613840399334333219177177697935653473980065871563340939906148125102474029802608848978285685818815999747199232765491648442999718700702620157874085372615049801642972969570703702564267845959409031360587838141785832477835463289599816660043747123989869829810644390331430387616566595064664656526172024713284609841403903508831731850887842498580557358690027019543252907249797446711112278627924708240452731878512196995341743046924669914593598855407957632669179058128269607805831837585489488955051118591483030680556751945998883165075049996913590030856745300316805593168884403981136822223695561928998949206166319086037023460326072254613420178697119804514884347536564017630540308062541633785614325663305334817996053746364822539756909203067090395504339406780535756982938579214578557498508244216906659899569701222316009441242553255879994982931817482886660830174428304863658101869140943623005153883554729739003051210485834628807677346589330145245674540018487392931325268461881994421461258113373004171539562932310536415411411028834475177079668135309552311252971646624005047138488304451674952631351433242261395910652704043954649389598876726075408414953924330366539546416325962594398114100627606061210899736234891058810995494423094486091439567041380154828257455740718103899800924336794736219709822935390901100254188199919019827501702202554819943047706689747863490235182119100771600089889154839933948803535805830892231300144323371416870966535775730811910153665728986848521093632242934748556749780081587077262291723683750855229034445472131488181899679992602976448358562673077188852742784990848843246304545191834356189640937423378604940760937313228860047618973136612633159999456089232970948907470516322438512879195811490017853355940460383145789983020058437161817406229014691512408660723957629273302789831009790171849543919369011080047954604576825839171093539163467333131028490724829640450792138741027547364566539624637751359512025926863982221083561522404540119045662059946771978172510901395787443343347600339284290272087122777788582667280638043772001275242254348199768935040869733240771144951751415078046122432252349929563483804084124770162401337556228479686097963088516819042108931087225245127813413828134622382012365098870911031966137852971433265112396573156981375241191121353675880933431325314281017357717434366703399948118479247881253236465693786800363939360667309554488116244274519490819277708082402226531250486296011297081308297832749228473906612076051598783802517718701961512705771715278819698047235736068074426645628883226854646451544273961676593765421381740225859360121106639866196908315597879704467734983893646687637942749083711561887996847207668568376120873884627081324364734508312880118146593939475059702390936675023237169620327712101705943745077086535080923340400211386026615016536127045801315123057424163892018393560804855746548599827726741716209323109017009540234371201063356559604054079839978232193833154644174781914714644727882649569409778068691222102741524353955345114424381262494437072678690017351111078125840766308396243529136771005037170465108760413449669947016809823381731346356889011862842432996245297805860992311536677353235730344452555248228665905182436159192605909465371925555527225321642493966918679641593608563875020857619963491247168441409426626778906986571520280302144673356047392908415748703320112062620401340436567219908429411722478251679633046514581419543216718304622985580171825942962966968477591317778539410427402353348957229409067471172484563316412904397414423360265471863312656339021840968112752271977526476336463616055894322624486857260802714092226367580889430243315410316718129893444028415736249432025843025730044686065085722586987430064853308082696653662198019489694661701386836018067974290201438697874718719930990362412535743113177237069733741098452534774149945421998151858775339695848701039650369756816649811700572579701391836948668598386424622310354541670682678112678716826836680188556187711779274428243539170369806007226081750814800188725862207253838010976614140556596252290111242056734798527036527415186331407324873305209571684611891719176834314326038161469919773880356569165019237572011342201532463609249742422122076538313368911528753022419815251162770975073418997280803038726065286898116432644138692415317759517615296198058982472454989067972090723759100787911354660384081753388931160969606652308991323720093611612409615093702570800601483460271250978261264017890446709482739159317647483111581727088225775318613849866646969022677404553081676329203736736839116700841594789336569431736551467009680674953876828525653032156733001141258878766993529490006218963635775541124931495343745627102547500883074308195060351467367019489794813273146484629901881439634138963044118736871735776741085485273339876941219972916105005789666503982833150857118035757042998370394899439263603914183044431790740618558854331157283561876770489291562100041720956205283410245774928254740293325801993398524713624520275111825496919143373751526066815097905148453494057632519109141857742124308071480772555792459323946170897102506102749032700396782722783638973952831182772002161565032611260204318883951059988642511206295773594869589282576081663573597355557077441137444200955582961469381682541905302813762736252819462885218530481389069521817830333549062102948418344027413932659829489198677806185554517889959092618064888969185290639258946949076481559291987966265825869505178409213676981717964376915207708335843741443912819816108679091722085158273731477638232302123156641341618018819416261620111339497132973088168498831305923529113052837801516751932882517658601839628125445427200699260406688145426599626013696992048053792359038231171417015745354995230829706625820149029679373890846051090609906823725805554223043109716964387512656056543909956055266467596088335606499571518930038404395621094501983538969185972986386563717442819850005544042573719185048390231889033301075804347032965001346063349019718271770941807954588096173170848782734699595875445997752316177223732978166660782154340565008700896288449677345106317137028831513107106361859074879719213428628503727538107167279784620739936329525767789087546568187493226130802999939051811133360709307992619057112949405775492594740462567531604077320411521496507869599374025119386351679666020523481522337104624767436266028034086892147397538392831703860752289187280471859588495274481658566788240942969248597586956760871406353608649408595039992083211353506231959736597773171014662280812543965695270041133732545154648344411021286683168433795140140876170690905280835435594122560200192284100190833339301861460923891006324525881070033714929988276621358138815475094883298227933778100191974417672564128707153666684745753110352344534035265184446811193265692815303854409098917977385017884186370251741608374172369960458792006638807049630116369657133748851853960314851846362000154593444089491692432746373106413235975670679850593933249211520870398772321670930938974230388414520578741079055170246486908393466939260739813876102806118817703924279330937790788011984853138684649480251764000848147353638296185433847272803006387002216399118829891553954241178092926128591427937284616491376151559816240033585239073425605826517326030326153161383717395153782764186085111873127674579115915777790096889589633290921035079659334146080042058731766301666506920154836199970339332194419557520368016617246257438858372464121811329972690613821888298297842684047245560812670682378668419260093239400757889221449407629869047426827725620897707025385853485013632841380051786326617668725130073173967672299519966364226973275108656895868546545783186895411376744080842155406031147765170903719154383298402586354964810523159583244365902468317318860826091649347878119361639739359298125393229237862480564413260172947887448391591819052411794370776682566711356546363137558698431730997854295999048764105707635535816782100190728374432628615202806047581749836504292432364053930106865772991997412066655077780231501409321476802270907939699224037148367480052949059071197196633355473486064214934935075425080575886043803232546448470997973931168081776352507332124416879021480817693491142201225948639844606226699381514806845924890801871670014136407430462281814805472133637835041301174735806571755403930838035221362611046087409888395083466232148038056893316125306130285953232378893730025242433530035285570731558448670461406878689010242278518509433468498741221636852645942726225216157884054848546111116574258849826709492734438034218528620583319659376519699067794908576627034190583742667748680938819014379346426071243439575527185683967854962058446343804183532081946675247976659775944932565617023240671553707805640771604276033775349675257771655720381952204447844367160037190178358671004627602790378254567614648997436360759405799731984800345817452047637157572986363548403556531974832490459982329255840872471223882994678029505477540386167863008166235229442123183788013268783284657240807250671548344369430715334912792452217173049408942084630395447257132320213062206606033743706724922494317183362510794439886130239304222174240400574053370828005599946040845732684416115636769788871204569653064860786669883487661258793447859517272834658728140578951557285159426897688570013221541253405413619278843143096403142498808693391654121462569613120306645723428888285732956273890400421416449835399752995776357698806159467332968109356987894022174271789811630683192533619130918160296100118327673380667666833771033557744878508400170976032494331465570932316754718618469083031136455890630308484109879249418075012149706679313362661462425981075628837549221130509714263626673733255210567067002725738715634434312659723643517205114648775255937952148492953569017847513072450053862826781193071290390886007595521649308110850267813790918382531469104448364513527518745891900002631500933268506132122850872929595160153428866114582107303527100099562633080011959841757110920574744730240116044477683189739207303805346839138317249547125585260331792163317563642368227023863625475658210930766974859143877429700160843955666288505055069503465915852976731930474113668434874968035338150919291909927935868705836215178422676476141630132257761636971499609474503832631805780857130734263814123654490379847821973909906887811973485596384634312421726321594377396392254978913764749422977624565431687172031465176251876014097984016527218319994613184593371836600654389118915279116923335654916800966496890512095743468513496828523840286039157295757049699638380643111294062012062273359014133320304330700208488488602946581263359113836191630555915552779314544988669825738701658365676671592022350026662192084374786350493058776885802788096076306747339641007830252024404763799937707308784578074832609474582532064055505161202082892972354220750360835343804465059648992002930381716498378169277005754467978157036747366297847377366182809756786801096148796163576760691348882928806002744743166839222334969685370051377391505037133943384630093652614573418147918235711712747356502553024429791671182633856335029812771597505359768547712624892411263478590228266613401572207631342641876745539648788897627410139269583366146373033311513782225997668855925578469666916199000128876773652589092248231378619231316777787018556672610900015048638074733547587640528600694811642402849611903336503643121662285483759577115123785763115679119596256724834375556682634946524575751459514295416832083497867135185231566122921340679956621129790878032295839227943721636927320455109011190148038749438624693062788676845347411353744482083875952520131505028124007843413699917748737308193964353494818218747624432479516360969248465521142796393720831641985816519985983105035553743076417140583549103356062994931134310011249962066852911831294927565697590534274686961465580787010477608267988984705519742107167646248617315962162673471869439412880564869546034976300638249380109227524735499528521199714814636928142819009808741949271662010793954204636611760111328534356583923545226041329872239844365844931430979653382177622298707813548722067573473056343736640639011662081444178704431807801976367341803630048246939543580350953863665434665272223035993778816946498603260592235075461668542940854755428829701181921900320157520525190899129895992063991581372105840192240583119843849073410229320311266398106925301265115170365786660397664040870688871541340124469336001892698745133177118111551503469104740295227520617999358321242651642852191095069228427599860680266461670127331091718859654075077791466118345151380798842029849923612712316023377862723200591059729416586500546599463656164017741684837205156495448346176794646125397114255320337005944899119379268713478973648738542195391475432328513335449522305502191657388736672518770100836605477129236162006524814517047893281448159792007261507653256423128103805274038386494943422658715979991455080044659304387064046133930926459426900092152410043896097330788135061974184275794236526870935037562536092476511540650710145196412425369547139386990621771369074438712896127535949415220512306623113183045158953401771867390613461211221853406815685895637537373993571373599709116387165157279696076332050296130106946987518798540809396226471847462921974571808320964414327103449404468206874233998489557803190045375952082860652671325412587511944059014236926228995784317292861805506759569156332363329102597541376675039252507535438229741738918224744485914244134360587715677836625572892504105763111082360910204630570581111756440138885100348086522129009699638072248533623413921516386941878864845117644901115331581874528549205418892493454641028403568034231643276954010846924695799689766025014808537298085176493579362389218131665330701976946793984386964304572980974554094315903974491734369990375302089032740223171357125900937738547645299554452066516894592827305239700216550983852867414275906240798518433351847452297800377033475416523790173170566846444024008042284823470922708604931636245354079082841613176013379202797825650736716308075935522707795201304257188931655092904398375286585482420001936065128719073801374846760785004987383172122087834612340504796294155453293689350922397397273547445496731740832269298292751022232819801119384781979893315479356974689530326310653307724121418389145453778723405668244204798776891443513100007059339162449306558114063114523545198622248154153774434441936600648097117493927166265723265942339098249984223839975902238853939359422144835146753901931687808018126857036964231118635757603810253468921866623308654974809361532362369446679571275007309314036363997084882542863495753254476501919263674537230208409490090431213381482911670874406816121301706815658671257313044073582166804011896496300661994784956716789880692277151944844202297309257634257016321667277722386201295665645747418490812484665201476878159268267573076197112094116196398255687764541796234464233853426946008256924234270581396879927739059340172591638956981273336639749687486373468484985674460089555300695175353661571348377492438704725306041748819110243424180381902705475270880699556140570380448087357942110665618069273773052110345387691817135538668644704495979917069693747249542353035468688473855059748764535766168906590228325583750749113753727544838531028445300215976787403712178709135040423548707108881278019217979218562329554249638746043047395207302623999715866656405281046889397808478303044168583751702983550754730890849838521808667469951653475401042200183081145375391498749941241146195296485934747640404747454535531088388539440067160823989379410130607433172814212516489984173211992292411746638255136796578859243129271236684833288387898528539063559735720738406014454064503708473077745836826979678219481245065353642137419245237981617443431817018586451994515178063398922224226995291012270063394962865687794874496471674805680851540031740771221209896924208639080555558370918672701927741561016199254451695149843850884561511161563218284672822575587808631438261117624993167204875087285189017474181977034800441222427877591894397741700866240704194060268520868869578430392395822842865797155537457355698738142775816412063173804858785895482014034490466856495234758071314174192366589832572157514030138405564298221979146030664500197570398128117824145433063055918897638837712186445429333070845417087696338919724244090909482448749971299143092551590423335079614837059490852865385283831517875719437129604394218861775773103444663127703851045353939025130681801776857322354587539640670672118415320864777435689609592796504333815467502930054889384232289906789808874334815307437736513868955416432656582337476822667441666715108292088893915467336784494189118452601695995035892208688879883642252502997577679154934912568970470242272892052529681266435920612516621645387109251479593895575734069606188110265937762331181679234790400960858634124568848033263459052470599474659477523342377821877416419967830709518390793889455348853304816931987049089505083329239864688504462992262562369210902958895614117797237272530196627401934004805956034082008257975951590867807420407137372268320371633818585822684348244004657558393423645632887074181216962379391107119636951485863958134066319614527467873924738659457115092816445781753708562949686018191499951102108786559856283630765293361923045292353295952854945496190077534213220759744659581557927816402279242359842670954396927305491152819175268650411948310167344260172714113592867967216177591055026210900180284979794364277609617710535210911135188236390930971673629763010120318764016018232604782712301909326339531113185366091499675838666805634442489556623041007859968997708144001315689465018899548934984816630135123995272254613271859723969214336426373785729376013808393947862601376871989160990216703099517655901950897001683068340129004488594378013838895105453466695181213033515662504491688970668800696946324161714924782279166303731657246689475930430233958187532068574837662931608796588811856682470685551427847298619196160666479753165751970966905145499659912365093133920463452590180523325992148184927072541889838275642979725260849686479698704571153238294564777975725451046967556236478517871713553903910253690842205910537334194902456771437364160945698049182208363254203191272276513523490856374532297249772816516332355000820946298840875195472819765490264614684128896413291801201316712215517604585569020589793311266598259065373434545879674020758486679226292763583177780869871446714384044340047675858807094603431576736324382976572053965538243025613004151014930276309124942470016674277594938602974596852294511176248825772989349088087935430005125789962959950817210208247637341678763861195925230051151530429670533696533934897142086138842955282687573461851491361699176291570852462825570965523326423143394162500988341540702034754348117880259197210804768756601586187990450154238954164418016298094921712194381603835749499218492303493739971985185379673820081177902856674466319789380479070254776732238280100346184428252334538780067202725745036966118769393394594374445764826383192275499056323725205050378048746347695701524827372129475763447281141385691955032907840699457507414164963394901932723882306359252179252550523150251149462461349468681267339875273860837310633337194910428882955297486177222635513187715850463734082847035634586224870181640011786403294819628882830601242374038307858966526103140029906311018173435115268304929995763635980877708093961204655499623000097075256991590994253914287483892588333424625123085582503060509729809975559682596697051235444950494965121992930587382527116050925201473467625119932600026640596398703722255007529337618142214840508769735015998869394210340050854661475286150915299309716183701404273537505884450332482393126601089821721443157853140886968100955491324689578330345924753455584570651978673094745518313333750079904034606214483580831013606409647408343392703491824580659216486460957462867785381787626278549083599942822691657296494921758656312235032441331555010191562892965687205076975773599901577834380414111120136807306370535247436817336863565079019028988424998150879815185976856464412559181372814607941200419010612820821883246110493371458546625428338398094599338132875346126705275093505709360406324234553166381765002573560785398951453780143038888750155779778928341202742842463787444179293884028176508745027480085946655561649756186141159393817134022127563780853328544027716292320176919534837258326618114420682298441283637851920366217493857342345110345980083476736305581951699552556097139941977221942549780044229796623986976297154609781485419729177841157034076858195946212493239281300126533388491601604862062013353046824175394461392924262228600238249896709880084130985520372617717377810310292544886612079849091016618951843209693742164463714204159325358734142623198152008275419356076939254228967564783094152473558400641180156305910630516804007535349650118447033697964319905729915132792073862058607946428105118063787865563711964070793792594301988322841600510419337818448550827358494170139148205495657487508214949463818172262496518127987457843265247413631429752958227790396806763748866022045271173853876328631503507620864522097701029495012866200619467625530402080011887517235413736738995800594959983702542751118571257591115934212563219630576853111089732784925947712729515992418449971610715522386099398883590354561579098542081748760151998618539230465415707219536320769699611243816731253681479719679783358925904906345458082910249543138029544042731551590379446958834016905258266043080245598099376490767688930778435873853241846805077631979001810605194362325888168865462992449817620153518219079493805349863479227241449351006557678298555104569100217022278270003324569017748816780894359416711151793204335158834943398862968917049055015145404024695061864108344303632155431680976691053205345967194731906506549887264564813655263954669458745652910786413038493001825061756679909329735255176173199561497381542672403504720889286155467682028034874333903695645559018423412897750964732137962662198073142490364875583277135614432115155348222886778359715641939741049156488652750708714091274753025415849348417623888796811040156281233301412081012092834028174346576561196889794989553732419588340705872236132246874181015547944478484105358984293372963871320163162345866887548944884748354246746593822503187016414439147951553854194217198615133111157521300586189584130737878017127521628669220398580695927521319107407327776237278488985710320209665423139021708033129534274955152181578175300152172401958203034044017896569769635602012169454163816214511395909030848027264625897881599598944440098975703754531311241926955376717847143649301079563812341853414907795775904784189165564003491954432876528828257277481278333781139785126604010670110020036688696978216472101886449726413261441193927068399486914538950224577615452628716769792878765131553230734392177095645048566199006853094475258232143369112891215631905570036271292451973383388042153379513325646902398468997582007957428310979531564961632673801500290535443444849721093402911065494796088772939994283557208313335017099455546668553716520233327287499721619290765917562777635460386153906293894203521257530480120365795144543802917495423763666829116251539983183663865016062887034785502979135586351303197468411816818236347682625406240448522140530436325909615975517682945349326119561168586297998701044489085380143466167335272384961602009588454814209564695502260750492204633867859203878423079674530874560956828559481992627247736228426065968319680100978418902205871517402358662940481302309009331713884191845600675431132386528646966871698400725108620740821981477200284305493249849342139003009179656277466479483247022478500990461169217181848174961671179359846120779650252085227413019307429775969372514104230049355683440135731517141153533532308008150427969657845906904874706181731111704178655831454849498596236897313586637480966742993498091653055494561124896708390893152796743007372778437196474857981048757367802889488232768305988388869643380395596361518572333933832354057523414055475438122614028779537986513160375455145419067080295811233514678663418632185106295111536834356435061514339964314545434377778579702222153408193336155638231908478527567483251879713062577897113607518226221971466473865914306300070531290500255898646218439937086156215886583872891481402775989567806088848229924554844940692228914780890927359335862871102238498175042551108553361304013681215229210894487531080430974544069016726632522916483984149757125528584680298913379582744005834828350432711278116071016618932551210187143479624266633546998453784702545990666090807211695551144576581311943762254736879023537604948438050621513962831414378148804382964881842658595341254608866987003859872167626647789011830362288895123185880213998836789979071612895337762431366682521916249310684017242472215860940906290516267992803832920767240493524079888360770629462418720280407441329962823931552079933497430149842327061603633211924407961852695655322281099996234141160590476807992384408192939858616869380597661192780183251284522560361557898944252570143215552336115977721352742434535827545831845597006111463070632519858687147988382219249647488661254258976510554240344939250731840968807041905699552149254522377946331441927599335633728394739770519264001913946935795092991132496656785596243257772501740023730629510102199041067929313067223080246082775647910053135147399942747612288927096790864864857632281847812790489607914353670802712145511869132948983028393044379514026166174922532201310179345933755149709977256472655946388932043150073031202414652357155254264033165987697755296893946986836710021598345766518607957275572409949715005086738678587603894103167391176874684893315535492807049553709881314582171927212152023890838150983443659005922718988838438927564824203563943178047437338303427772030492913211369818037924640451606148116536770848279798338929731586002605407596936366425494049965488570743569277808326780194369271490359092028450496215172752540662413434377752070075282082281156719390512372681080000729312539613174584392094252421656666020205634646750742002406138573307547190475083491714158989185112605997914012455207341756650617822414728741350125047467173875896164702080218105256252886352923766364176633476502983642376861129884263263572033000312999902361915637173912559931607652523760584252123079588729310621775342454923805100637337733896996012016190637301747915874812996691665554012371066419921308716897103542319508363773771826036393450518148117514162109801065961747428090372001433764951364292187843133849727647381459646634556163067880199124611799822904950807116706600680162606189623712948138598250221171085494882380315672863070875883816316714273502016880922656765909459426171187484698111490246626934418741026728376922030907212130893191442185598477470079831599828304736761171840333064905962273053676667404174375449099394581516643391047486198897223407078805268810431992272712993435073209314283100084848737913139231639265447382307941717997855636184358045579114581344479239757649287832714005595973025937054448644913279171068202529826270620983857379829451369316791573281075334614384013693177062975298007035186848608134024644730721556475891582023357990505625605128877354330756864124936304796705263481367583544909796825336162832263357688275705991450134184965336780342465594749488880623014869601346838976654733106765581355766349749428121086984030357373631878518069440213773341334522265040455275259645906861084880326461112374432739995175499203218179579014795581569626802136638679559790878316635675422766116203941045888686659430443705746096054680230049237574002197954054175021437996286528886985264069793947466460817048986089240882410460559746735916350082643731221460742171125460298901370122726880516641894927923175345131554475994432964876813206427510428313936565909049723959734333676450729753304309652800565352853150047345078245407706621795610223507114896648698566452600895609408994197465076198717328527058726892734740808715961034761254934506600585931696525252269620909496926249565217325352240158575388627536349219993611128706183884527095755644366313192854261694974589450648351312034344174323426260792323886425529534650576343896541378935133684428395383627404246151757710827679549346411173248875880230855615971728023191916256310957254610893810222561936185590789697210217924361246695804187616752771062831008621504561229614580362956573918479612395471743494634262366733007135582404443787572369368677980509204204269283880455675952741088604119567375814362395827630737773867073556183188923841556224285438374963050676999542390337059844333172343331753529441442979993661799794338481632263798823153298468465692222151196355318089336585712464356157984851768795281595966084030377842581980359002682683694926081278089031378641655084057842778127747143330611809237942646684487987055427706911847260392848335625306705467239132939823606862251818119442583490534289719154944920717168212009723327749365186456432496978254529693390941448913210653638747937770439882027940421266992087288673232280154044907044745193504485349434543903629718772992209209686086775700281673256921068290583789466530592842667788285089989876813024098812326417441665616777114193210160398377594802037368727846450128025635391393601032261191029557371819589427060860752359716220536940929662293272733592996333556512858906803903935158164153149721557603007508330473922856108417575799775728528436765725954883817916864074753473075644293655467907080359258233054507574363354863235452410108341867745835102935438610512696578003070407447472771305849079879340278007119396699287458977552874963154875393576503741796132025436537340667046849972727969810291806497157402366435799430548145136949728937893939273133154640347199296348233563305086555196710092890115098830863287088347311158457597152468618100647188681477404927874558690882552177827141472321978193829835622885340043262486621842436802774020288906673217158016735411966427275292971961948504710510287505185542022630319038558188535286391452827232659449501784874114315181781624270521473086789963982717270584698916283646858503533444605960176684052081375823610135362302294101089561002024422652042982396977685851921832805292335960907122168567086369468093051193617814399957188002184999730910250407828848686090647166222757871470790701682415788700629403501011462680685283041651872201017108997208592733609090547782436764537478056585673883170478888878886699730624573553635615225312881450008171628159032993871943110506710765923475441918955992859002119906139908452034532750015176906108275824231786711094079852218579042731975861353802068381060197459326761202738965166376183053157515255422678603380819955749849786396648664237705094336998731256479475102483650283207153597540672919911207399523349704476369765335072576854220188121154737228475397167499312477554383831590470450103623904617500043535105397334760987438818041825462274840324597691821386044543773431057434347975777672389188806403707912617160572086521013783163937259506534911113194586943932711669821777631411586195187853174331445575736244632434110406221924022120949664835142971185934706034489683418783023412736986656764334773647456363960840471719497520223542170898339436822249592548561847814317518667351057269637389841026338964299839052797146916880311966412319549339140382333250463476485648025127359363546399851198198516100118562099613457667357207713049527746423865116153673927268128286827080907477167200814147285526093701993223355270954261531699880614518403624187748110784130424375114736333091672675154965705652706214414301654369162464562431700016721121074400583983023492039145868554721788938474722291449892961826094779303334587789583888814764122886312784066127909698936188405242172699597799448033444189207801507435821847317782100426203914764958700127813500313438830983286888574570983684644358573104354024077582795228666214471177652555704648047261694202479448048221755451981146175678187444667034596667938735329896209390405335656472255178253809876307044746754503135075659527283376970579976640885175369718551590625103074542044333475075722146364147042033500437373698285761303471327509380739560236015022369311841635785651795203540940752264748766640240477779206221579743901308655805483990484582206258401717628042353484899583458523776031631365984702649574992749586582472560002940760848733098826932891016093059053548585523731869838220656801269485460772651123758253830134987453763914906933165050853903136391942532583045998604090113056980378708940897768571548025650992888514655806466459694491656093130474168500138210164357604239627951727030106623103136240757305875605536987834380309181093005909487742871368205092132502522538896772418908584232729034924465801997385234362695790731697663805465805287121381070650076417611490962835136345163125885839001197155576055581516826391891889641348384813883898555021107948125172477636345487417395133417403841349565351119175034710988324353808834832454021270177442868970367431864934655345766825558431659179574252223949205331292729507199651448193709990828171660886602718511399890449223256992530759215946749351491026971215745433566748522026018978061452449216923727889256138157238333831708454271704197502528920014057401575049018505258359869646988260214351601322302211486836930178745725823834922900247461820369837654695515568285161062277656409930607679572134696310272202857376815880992270398752204274757941887799942951796842087630157656444757067511038943253788770536226376912794366213008051370327852425108121659783310687730841629751335202991367390079735324746451237197241918087171150354089513692949663829340232879409059515194244369324738313483987303675066544564739478677825833827028204267621433709655362930897143790557867347956381482059486485038033950652341784733299285758199467737974158680820100335635755863676116781185782682473504017575622475348913141088694246393929532724666739911297382142165151824582592947349591434885827028050330510510719860767508902525464452491256678663562501768966119692817411919303054650612415675061927294994138870211370504529600204741727301576048735543293431568899697415420602205226226179120245344026820088668919160538854870929906404986755138185175574733472939564468632738478931340323017119487485582970451636002197024722813448515267321449587566886219035329211590281808952416497625866527578676035631881905960849035089780674319397834138740149692095006670848716164214142692300115190848004321747278252155422957039086639370174309847687408947253983004165423136602235626563907920588562221752607919487375593878469381521604388691474601668235477551195584011824969180838409019308642047087817416754841201505564285904874313028692564131938908971108897517379032912154331954909603867805496333039792529616300380516418013508515572984704692590652210305892609317439731888235483846427037326387120144466530872719840009310900159194379102994766549454471577252334384676218768224163118283638487686337205177144132087189632605689903406351705868393414495093652937318397950382232643743356154908121459419764560014610538590576837709125371482758994019513032864034974570442681466125450827100301116253959348957471399395533610497636692017948538924369728321042858140128314786263307964988623287377476430052096153136317388228151603049592725901388666250714457429809380663305273269199441721964965711285502409500111882939711685353789645991012767632482335595290756677308330290913127626634657586564219885780839297815410993486024341077947374090317280415810945835168026825239421392608283740479911148421603650635729740843654767629156022186289076929259663502531273204319245981217997030555148994342910997165026309761566234838511130766229032931914851229676700049186245693840962039565444146315026146869306482127601456745566071807156484379682842286738611607330409185519553583937477681766856923500939573764228016264794441827610291299320227104941743966470540511246467564089570084217984646844812521051580522240496273411133743207455697094918400506422259576075018697249596924290208439099313030514856655400275336963683128601255463191664633735621091205715538621466670890297465846195122280688200215626991983294977211039457074207967550004796603166641029382298253398603024189590561309198547532655917074353340017659137995604101044343896885758634933291915642849661088834828097368150988320959177183477973227319167401317730659461537286146765311578502481907667725712894866168395980228747488129294934041286970960962427423979812084715103780553082313876995219748240271686706141518343976163669825500768151923209920359046816173926678574671157936128486866289108299150879027626998927179130841428116440206431974543715391061153719528760886031678008592093562547741296719669671287075332023696483304986273842804506489587426505491649885462256021337398913635171540045350724060252724214534861106597947827427396363922866415598827061269740161361623279302506997387069104854418340200382761191504153324732070409455575425413363223187412507901103538510607916866997011160094386169088188299579675433953853254803322318375780946378690441763356736033900820110734248358580431043784174884990930817145139383005550837765889168598826826972875582330909431527531711898365309435051238890386510337889660017451747934207761070289305801000304354459789900858796554750534962379640539254970577921947531768450855942297189763553876902916938340118662109217437196600050305875178357642854896665896501606250678781410813715319849315662592234203631735949809492642358049262832784635978706015402960689958579539635473892715991328720457071693371726934409157166899933852800598189181049359606689865171580771433650777451357830026909993536679482947941686240667332273341713469301090071982830683901502269808862548839517171245963401072536690844098767482982036898575876241285222292316005345418933023073210818288482844582682100993994121287749969428335316926847625044128069822550837621480873658232460517156412080932706494137456965552662862850687794554094622318765606384283222678965553076101151995795052518905399088467337072940357775199199934774237035722602888324871645538543088253820423025317328930761430531944115848022588477403427518972529195293108505498772002446450763687907610361912676457145355323783503967848144320432595928583518447134128517369872629967080247507550067426968040793774260857346632525111580702987667241418213394591025980832463692781729431200823958967872983954245940318963965264193492740904890919205020189325330081763332375368995895130796572840500891762593779365810608929350223211612891250439129972126810617855168721057163356245184058098640597595712071831105249758457510797245198806986102775718691408320284983802564576754904080220242888791537140573071214983091345018219367315550647534609352278334246673879292473969071010867647607256136948220561876813664578668568487478743337078858768613349859963389435830410702382418446440616694255603111051981175428754099767659478055946558135164001816461599772727547551729999253428855803350466199679463432944166333733180688036037238527588469422422700443328893010092737056903395199411711152131586887280214203583613849348485904144554930257989263181981572973680426319441010234815694175646641248565938091659083899340908381117298420349281520265343641115938972789994057473284805588643075280666512557772160993546876090146046322535866535572293995025314499553290958949604842399836593345029093105121402082576418814734335562206026383850540830093501251226592497865025187310335121166251444030311025265579364275302349299046718638280228014591999367697952281644119306128640253873397650687132286897716194515965403686239652302375408660495723107464655663837259405321925137073971204341771067020694608892813289531745440463567649432212415465901572549321907541192947759901094093155683574314657867383888585119474102875661118838227851801173510437468856459135751961801153078612508611126919022308376028946975809216038936200258872268577370389321136257510094746096233431868529222617033822737757976128635798194583889321585658479138485642511751168291346882289011921638015678534546359416001713839494888301578139700305111379676248706228976294179290903739879591447241075148326664636124414796959811130539172879565263481090014563204662022920504486819080382169134143771101754611439340491499348117719841897767027396497394792800828166425589699700026813028359058442750853650516352686021202945153245857754739943282729868235269645033892335005138415450760290983493842752860278641120875855692326877436507105548644898071766184322259126892185094755921347264028816795295617774773018034534405043884938473557640328518328873589265535946722984487380163240082064539073916009452866506532779917472771480781755971510961609618046857535087231209879743184465255252007706130935985155345466803606434391021773591348551944949051872223815471820246097845238575924856969509252157859293482181586333745134139404224879676760713148419919822074706692967035027571638469439870229416267595331968567154629514913567179321374465391440627701123512809813179733067924788619002175594487764802522322958308540648059100885428086765536710528720996485385729962378412439119485774893010790518191448670137021868512342619668697483220651926049305447342163427953793327516292664313569127379361786114310853742109204903295954891690774873328148292127049434313526062838517131410433333977018157103547042599959417629018582462665472506591480377711632715646468089097489217760259145878606992347540233685645677887471469480592531964053405499285296895094578554236688097436057212194096555243567492123094695110323345987020732581794745613584285915952719892463707144226381662497520483008042539776653570899297934164717775396219510938963148905744181659745677048393374284756062079595901481881240322159744768052127349403411060327970140166668413217719839885447892682707450639751844824643062066045797143985994938222277684060558930336177229839934118931418487732107850580484187631044099512596538799423563198847014572310582031684132826449250859364362095979833870235345909388478971804582747359392742126338415662827522132047807234646341011319441245641319277761458542129028093297708513502913824340592004000930820027902562220086998400470303665477908799226045971630899334939892830014528426858608162993165735696575406064234453392286322835320351786269092167888858888933593805546493859189779677129785520720625944857258112706838837348795270914530378591882186925934893443815216925283320502770183362093209092585426881120975493674254167541676921770077816859784490138779990120446492275411202563233031871457896211254436529651709270977476076636376889391760402163935815858001291920703280358047308636067489386548355109959066463338886430663624383186738795608884548500761114004860773648566444646169131236842949747490521116355494520640284723271696785586319353949812933829505469638401119942342814894643803996879437661065441293944650243091033491971212572872748899984312490450794407503674122822336277849568569282432197287700159687325256762114076870824136268948802849517377430139422294718490211590488518421567341003764329848574591827251418774838733283954203949427433519617270738251195917883841153665396083893862354675822937508313500791426721881656039151365262544512595390618101875786197977669044894422146669478982583165846961165775849071436403078358714689591784699824201168442053994754031182628457153810954578210450003568794019697697239171213029960276897227764504707951820223151138388199614255279692064272103645281214870626817835953382569694574255859148709249858587871056195390718743098083872622273088870966554293071046917683440479796818008566204592487119816829590679537128790781491729221874278134917842518693673075322227773750420373221170123746605936873487843008908522434210480247478987957118578157324250612449621670067942025046403583519276965830453287680839873712971062180183374521661008976254450130477368776955673787761249969848368126097024318408938314753741129203464858507345933035896136433876720229877622261006145969152680403817589543202360722089924314860201499073033156039718682024255521084442057627434502019692433997301914713153773116132642205615649981896838723099975327238851754788368273862788831641654690833030046885478569349654322226990516148977469978037010951051303639037309755173934642208278509868950467469154821683089604792959481344175530868403359218404574328414882887670612455714817977012674619346499423341607839775738237023694112535285617206983130757747771621162148777736813585725639436269865485782185220168847579670592466329368458285249629968810397067600696763718457608095581006586900473181662030354619479878478955003553810733788598214361645650762612953454968641649972775919620688551710846780380301491323769900339739825929789302956967471948278207872481075808703442520315830060969139224868205215424018627914486989509702469903004099408644165332385308475151402616749532763329905462869128173711231275810306931943938674511891780237038531955248539554080405323424055797812098511752228250071663371111350825943670041535976608124059243459454806906072811712177092592415798177563869899616993737563842742434723597659790151504735970472454824039953714155920769866094653069566359340074300494529333368461694495975247276914147776217995158813306259600737084932483444397924898040878174442822095029250968634197915796094043053211720740088171001371822237376838891381499803799346821971433000617636065928168976277404841928269922885542829009689322759451595511492137330490102880128287770222329846943113055817830225012470567733316572585310572204688758278294077145048773852338701928020556497347631073465915447568301373939901891154665587486705913336951015483616921488895924783124057232395564694986869098679828545291058430231759324970904787377183591141892713157608015425798788209902401775717905622449601265087489526663936702161789260796251417741919626118075657374203312047608762110386465726360029441761703470336873062515719891670050150041249029789759746008625513491744227593558349856759939579722973447227181967218099830190896581366175672702018899040980738682728639088258059135533675338740517015472903271493408039148249701100040886308525492066651873758658364596613506478764547299638420954554019457834291701562146364172715369230442905346071110239336433362529666281793238277803593360325626520842107337042637131513469154267695746307646570262987979077282075399869524641773374553295536527186892987326557746389026990301075200706267693134560214802733425205709559026870185618153310922724904927737115366880144882477934087544307501312183186734634332890259129813480105891649556142828261763782070633305523673462255197257920579253662835609274209070420265902539522171092548265958647038012482109079606998083586684999938658771796616482716937425331617473359103766540852762128970164611007470694304611992265789334426864711357810672017485820744602119337383335230277225747407483408046664966706731643140710094683429618370511823047429673294536223382423066939964500046483315764950664989696709944817535422619161760275813006203624295363316574625044899302603774482927272203082461342053616629817041221927271647817933128973786069366493751813645710647225303615371891275585915061315903506929642444741167151597719987526175091597367206782635548552738137008182779966205369398832386626628648737139707382115445897548463153516985932560681811915662178168994639309438079000265438528826833673211891282636678741077891497951916277949067262443122537983696415482767979174966958859408013189490932869351161284446675927676218229568402673778288354289930820775655310542710340761162318915667051211928052524228465763927803807874031560644445943750202816919660792100326588650959110078865293038748136325245029106566680212777855340706385162938083295258333265963872494225821481200339739072839628666935560691402921583880441557465617186257770919102162507074524617678200608603716145029255122990725094909748114081196475510297049412302662107716026627979824904603081571415591290408798456520328596791874051644188874331375665476544198155129380517582347496032207042876913605202230222655864358714132118278496146482702853399974973981495310413454471062529942148835044522790108002093174535374829526270315942875492589391806906848035015370372936093709712849862082261100552744250602381178588256797552657897314785277359789275819152108315871587336258903432339310595247191619407975622068894858116158013960808705141396821310740727092136994186779816024752870678981839824634938404697316705122123248083036788881131864312823167844752170096288099614268380576774258783894378017261807826447759752044091083048646581738946540346482676001603479191315739019552297805746374416125243394076418790908491164328350978508582864993859248662762734578849053923193432894024646535253161734593474553187126475889557788319509447956288651814505593003134164407837924719305482063553130709236836740638344707443411958637042490376966840903941880056335577174735850641932559193879432617896320568371123977583783990929349991028125066484730372466924521682863849948875038301541197831611179915712396066691760766165745119069861814522931670906913410792410021272090298833705858081893200126209316106352357376218420601856264637548900467597412992883805983350965868274881484920101327721521643343105846852951301297769685571820718409773100873094672541167916704427462257671180949372793973153998629578641961733555099658808959460551414653581199224824901939700164788195910911428891634192363092913085225904225633904637971599290475334409082376891730082715249708464490429063035597286115078547780503696220451397303113887149231241883967278710798348028479036214088168531024887712812561539879769709763837127397618890597692997784966172408347580868419562574590643163096300800696230382236367493827795453644337760411261387126597776552804820361342950901514904661654890653006618123564200880043458693172933110656814298944898109635949130246933641084019673213534434949480628816478342800683255836165094483366084058825823533226583004128450065757476489862567017581989370120954599283578351792152224153193078826212208180104571095483422331229734760995792808006626233879901377058435139010709144690587233764622554359719599602182298076403011536853912489015160790647783984645168759653637315341838157228677552103239287871518326079348852951196844440860981967168983120862863653777610345260766998098313364787884139790494607128276910627766787787866784669933629344880211541767316467746628517626921760512225982100034451867258038917815490497523065451322298498150986537362175398432713893882195800728687765669430883640898043514111050988020591876700588735075645875035827589253387882610190967730498507876008281327339326190816324026661357543755749397857540920349732150868469657832851071929571756497755740169231797568054990542154450517359505881347623012738736643039212231655718882466058022281851966321671200878477330455593918694736495571276308264709854059859363850554778761659189889969253747327575022935473070973488559385509896604806403849628540761522041977898082266299021511459087202001273538903521676933209511413689936027205404025635395723341715001211788292892712464432483548009344371176739344489506293679557769886675673319967918545413040089612783991933548623714400880023400203076422023834279473051006777764946419075846761394286632938221162738086186990449778910681183245690743934402982415352056853688180166827948941432783213421787784184859004459443698726329698219448621811427834898033668805499369258485862689354276574931368014766687321112542545829281804146699803217287528022721787002250977433026475004357588100743458126602599731102803860947646132390498365268293436553444379527232566560319573418497666520942822494793959532735081505254816815786499640774476494439139994095572079229868075598092114641274274823092612095112287538732066269108507805868969980178899009149850528121616579728178032595192079342841336404914208671495116508812601606824875904027993710725612006762343406140101315411702479678508960005954197544220722719280133409760500099979875310969642024843924922797003819730739037865857369811343792604401205754486744774342943468382420047255304707784791225037110816123344854222238623308857774536596468656892508912746657167899908134888007615387655157891281161024482742965071637047933638186931242146754893207455250459967078713200330775690102990203929913412755873577679849461971551414147949836162371472523647559133402553347145294111010758134733764703959463968690179096340182855214259090489211348659698219530688925576801214812594882346509351398083122199452157257903231863186442536715502478189730281381596898698012409393933082126888561962581957189731065077766452211155951972051294640382260850834701975139301818854053778490780663494589240775569067955228947214934410189240166656921413722041198944764346932269759917718579667370522328994177452972955785923135462378418698744682475498072319429924923556153484882148291944619786941739791444449001010593043188269389294274249602168378951302230545630842888030887006320698761687106079096332445834683777149500071832156618079835861986427632763186973509319864639552337575186951298259107781404827532119987368146915493457725011197898416664069071599397290778074582283583258362286172145416191218120590173657591999206962883947458590572134783625487606270826593246359056143169118268334278493405721821046358081264433874526959205757935991756555181546677189986571598671653791187723662353956267226899818965454436538987058539757297955524235152516091890541308110785534543926713163078789411987408347329381127523666537432451315464469916602989511438317634489111484832294737885465539770388448517201379806878599323888629593997367162333617380942519088877671426184887300581916500651649111997357517132464287191422817072057207554919155849444646672679948830533288571730457551648912211757462775677737438417383045579136155318330945258622119111623711272977875867559124778914585594992990149155699258485849754526919411080105871755891387416677548249637029133182766554654742999230840466047325641571136381119850067876671562664321498906532892607197547363410648304536032930368746800322184851275616223856221457320804672748651956583209887848366252537477875522058288615991279157379871034612309259477022254005100845164210902345919517183712417880478095913500626740419342373210249953156520624749419600999763212934750337232720511090524196264600197210330995972592527069261477534562596685859119963682590094672154562700703978086263762700218117794812729891780350896563079787474542245319978929991320654196203498462719864665461725051884422714049027329661420029394440728233424828296593600382118567052671855102476261968847307061030234861815942222182077086559722782333390550954157828428416758082235878874559371246368326668291360213975759015995463265980876836285948142909360431914689419372870880868294925158310770283544872044004420665798587925666238829625955563696657176250902725635720050252387531100938709292048945535107997907756685194124056156556862141265987515840498966906307126781336922230608041525192806886907303314668103510175039148018082259370506047926782649915947646275095110860065135103190138198115791910045337885039469438560008519196198296460701141345537663009837482919071624445003464816039047427231204345631622960245744182946536275704792506799932154260050562103527368323815314335673027714738134228512760316339763369848611447400250222795141728224223937315262454049882468698103484720631285813974405661875666685031035433770028941307762227632235731862647246266858524948361764672799067553096588318036767252141227693533773680849343337433155663052883819945026916643451203261254157833963788545810831534602155941208807618029695536613086732699904207847603661052407666516569231290113617019639592037890355195937619368812921395211913002748202215703827693853498207130214630573910946922856129507927018865498659126823696454824381356012791891550689010724716207188352637887876075917158918139789106031422538846311937085790422775249899066650342519175804542500666464673929358797640766174758047200034194725999552838985475676570081679212292187889949155448514420697508298860747463085427909172701293288265743844969061944116635632368665178040071502608200702837315636030096007354872146057362005310108608331903715400994663392656319693063742674228052550518500412411016685170039949366758402799781857938015623469354728673266366438232539882782347237957297076081157503366415272284340346533587059519530154021077135245275360056981830024103220937462488175439275686358970323420655183674780638987764663702842606034741419289807922936677779599442015193643886863998659026515955512313919779351152453756421206577819123035264322821661827140439824843738261940473136543597445451202076263705286489286914464572150798665995139202421305654441960445630272635382958461365544792209578982708743590317737855455342781473358809976846377053226400376464435229274455474513587532288344210068885497414051325588263334225026584146438204383828749105535021464784616391378192374662842359687538069221964499005985148265777659943022921967408106402784552379170701284610088978085483109347437857621219673201816786955807024590384316365439086585694839731115145192045948104784701726116828028806760518435970872456831203590828657198793227759858290677360613544752606928183876872979211961736554179635025176030866019157456157184489724845490959010510455206191459915272110329180905954844976696323289172871556158555845573283486629488528662191127486976057668269550726899353809667448760151633638077091521279388482155546991254517012611697933396845688848197291831258439640303991569989615357598849093644674808952884508124733488465350231353408447679372017105377820130642780376721554229001608949005799515260404783253026654302246360074130723022771977614772390464514160340715168247590712267093544761975179750358561625499499514249552967056393955970925643637175184394298916003996324014140746385897191570888839432811155033992701151205136477669221479477925843408090087526989175851552803041443399182007251638825583360114196728473586947544925081640857543234855182988723649066092558844352333555012967513547512081100237001010082449969077433615576315261022880948580938138241876602210620531216024112994325023162145540709538818740026499743003965753900045056336194095204815726498541038653423350450627084431520392091461962110143461555824655568005357403351749549719179326212437460636737652814803193953483483488374635292734526823963597554999802587537122803238821394905548807711926832990466656564926792583796031093135627897668096913354432258160518766401747673946137898541589832173382188852624535368237961407606170888799835364340858444974095842715908920037639717188669257660599399074486528188185408251256319673194653102202723996289430091717190297674347457861512014750425595587680809818330867512516693759380889002366565790567497213789132075958463308798073754244866614052007096310118543987683519815899426008269072196747747281066356382356382143793294654390056218485179383669157164674569416867273664591259090274132403309205991958832103963089074429198624448300582324300327052959222179004101147573561291965114841493821223766592343905480579841753083044329410936234574013966194787787464336014520834282786803805648224336984295534597254548269941139217022505546238920699121057371302430079856497242294483100308507509988308719025302807120759213866224268070524880067425031020096156911303396081286617849394300793104631359122126976880178915826603719087767380989686712893274836396546772745314234769188149337106646230695468853234206157282009391125149558753900508331599313692335688855718046644581074578973821136479334900081782697454760768252016750949151559162824735938823423737384771814033863341713452689635416806083195235861304762577695655832188679922910107586916890687895316468387915512831841736623598720317642336400087764361602915155228073051929388060324436346416082058279514190489144154445634274096075879339776525588252292565741106769751742817821994619879424382869921728432528743720857484498414931982304260972712933576073325882665202680602241756035194402413536899564036194500055949007188121128519484823144599320734014748163623433507791440308553462667004924551949068510111931020742965376231681948832943535703354282488678492274950333469459845857126190940102141305295882305079510118195293374332155279726290629532097852734073876467358554524107430251146307708910334893805738804094488127715572218716970307088706779330476860003818306158657066988096742448657711000887154194826270928070775667075549372522116309410780019932047175339119156014307104851574365052177410364812674585241421416432335490461553412043312467034594379708050186364410201033813744808426280511558201471219024630911840645984762737485052500071486411834359637993709119427581536515490657455259842934197495269108846666171286115596020294712756378614997974579959169483514544824432992402903336503084469412777877614222414880884842204350651069752130060381620169640518341542240622969219526143900988153249643117926703750658272311983356025314460187533209284403432863529809836061776977965844592823714068103713662724118635601011022847475990048085630880001869676543069117219598063783522544870911724386542595959485449660387624982044499578586147019543145771758167879598887562279602705929368759077797685411616319323097309701397731062597843686136091980148494429459940411431881150579276802487467561382821353332197737167726829122702866741444505605659605386270667955965855600321469133191698658210200704183734747209800044790060717021419363940313580129871964795378527771002903898777667415252401698319791671277835467047744313259687411595463644980612406572966077734688028471350358450097349304370046316260691825783718672387758217485288491573947622410794581921053970618003792702703213408721770480542679198496277115892157142877256561107462885160669336030179561559296525389740517359145503215749291574000492006278282295012507228681939087573662376791748123576611275564764404163153199354049620162455985869592971473081639572368981102859041208843431406809034185893305946782960614661055404836363729081822610500293177069621723998877876924030054926496827030459003764218241547508461411875752850483451234599125644454216417362315270623204613675923468767578949511972452064964882659361416045407265114788764404029652736102610486737080594556213850231851545959485555757116561906517753667256641096764447508407562901465336735453735051029291020157425892419629209631716575679390428175618910557831435342439960848023014689858199898999976463756350389669869672020122190212513407633097323750303641901129959107938435049850014716761301721905094082727621566863657483955174136274990867115401330636465974213042155477009606512724025987577192664927799633717501600696944876787271553061537109893426496531498621262138392142845153584829423354809336895796879012012946048893391246069832356436383418038060578054748084973048853476670286604337895444134343172359722596695779295503177280947932711784473379163238740961486529541252445206719492482029383826801833691014027867856055383179107830704240795371157906964858897733229086374570438752330169900181827356670968869985320170856103495634882061868953605209262956795279394654062158312570731938575022634160348325062785000943815833259007559728544252378385117113509175148088474339162281830837794225151827954668830146564828342968263929416480658192787915461178013206513014649344132882038877352110168802756993804850129048836706083806102268500749856113555330603959861322265853327862938781583654768177638061142266045837703393208631921792708915771391814189914421930135210917119273122402053012460722870205052434688829151842441717457800299441411328348228308130914235401688991710117644980616713187513209304160734441837644555876795149836530607462492366825044554237145750839972832079136964164120815881271381191050139171285001656811718289322308153277485798353500891660026918342880826623179742007689069607787044348456348284959751292495891869407001586551557285493225407416669045577667077623532392705551849054044317234550148890248288429157485247664025728084311485424016069237708667832981090294027064785779999277310723921564841659706981437700937764233641680089527760723975726571874575931055728743671223577504783443165614895537082074213691003942322458830278907453921844710124874304799202848733055181434694108899022506021249138045660797358936953299091680805712835539956940509567934649336328576314795724549157921657414347288644411541359413843047183819900999459641683981203552368791963777306996272765752006859200505747878004106202213137702257321003323274785176702404157589619401980094852808772190574015532331885532828223399048726589738175925229332925665961231619196147113794635125961322360573925049890863588450511514573719896908693190557120325962708842189857907014317384343953748002023243832898908066774625536545725326512213313824380288810352166049576782093482474119367707234942043822080421132445804968827413028746800140377761281960891159822327626231052808104239373771743229197191526920897997589570075099707089453051249170817375169606732918475014621614905466723165182044294213898618188212176798148888833474908269749172879563368523747826114886212924412360873101504558176572709558475407794809285815542496893795999110496469069896298143643288495408469835000171623718646425993347780165656390729181350528460379345583258274683009094630983625612460235074240393138962503871064919060692572462968698445179350342111129260287640899465430673646530542154887060282363904713365669664010220303858742766743002167505295725939388675295917810903424211680181394320861473166490549871407628127050031532280794864692718951358983588711696214207643965440092836757142565701743049553625452865205036880038394116699519118056323213150191010347461924329365512453624502506903908658214190941443347305932079966703593345841087753857933832238985691604678122378793262559687245768652944023655907007663977325707642559388051758518343041497867070362106271046968744801664200612345768470531662308840971876075785477536361163812427580567780532925797129734174603109410682121585833192238282079157886994123264878736008880319588339298119121179936606815068488304526446755521213793881330935207104747912804852833085489870639879274414217827018937303648867037898512676215210636058691620501677658398311191833940314396693211248494604882232137562119231665318121163769635228682365186161874148886646082486161341617455398044746401700291832470822954573802981220519110149191395149382448933597305979967745372118862706003038115127460619031587230013852022502555700474111493448001317294605413405061719015359022590133936475215960256817786827057601086539278113338874422875411888014297280148252750240398837802854487191641267856016296649843546310633222361480597651305792663910961402192598833651598076146577366297374241492152271975404772755351496082288725123092991538005269537993810749008574386104900019637642570718967852485346388778087915907895240751972119586824750977426825202780151149354448509777259291584591046947982198504062969324683850530471176997437113068008978673776932465612525248683284269098200794638035274879958910931011232149143030162472344357077993277615958306069579545192728347770904758262879040353199411013909743689952308744205548540490771138429351801541829321521196799559547236994038802320939187532991771889630949230797002915719751904823529871734526010069376328096244056406659711876409096096693538390856007826864001248658076544502219461278447002300234663009351653783085196767412818444052542264003917844446781381375776776052915847457379419186139860982739580628525070585758795927701630058888509766592129791024233748601782842981534296560706888755941458134945247986376729198356567595576899049678726304919643146310237775331252918396807071658643286035554004184843701558161111661409545126546798417199803965511015194975333165753483991698618051452209336313854510328916940281831412485426440604339190620182231588758887378642468798135468346850134582184018985119131087827365397109860093562120219528208379525288144110310482652757247427906152756911083782857405573595399751007898456337020854651846025617202630608220135367489577010774885229667547796377713906905075851550254626583053744604771736961363771615574125458873905898270013037361835665621286611158539546535382959772364727898835931297377141112986806682689069340129632931339214302296980078453314520055235263003147878060717558388973998735771131718150552048113901813375066287305330213842652967316907044640232106038972685232231692680100161272054078061466474106849036997246215467618086497356507815000763445764448489812099647696450847656314289551361278972637643971148980177914001483213833024598974370720979959945193544085347306861031526507712771683182879620945110207276566386512261022678386593573726170363603737927799838572620474783575585706364541300009475854428133711108603440587138668502030966146354575163601126380742461025021097371245133246750775877140114501576016870271289441904033346445309838448527278999281374020081932999293145633971046639963487877110750481192888253809369762641861618701471609443256837055434425727733178602273979400371447851048998145325994885503681738092898205312937931981886784286409813454820066103792372894963843638276178524830772616766592211819788989450625457299792445317827789174255205647864585320930195463241673326638900072726208017620352819650922756378628081131330075751114567873763544927818544573102160376326813182280875699235316002192424222484371091487203523135996745221720331318804657630387467557715034111185703912055787188739122993755634984977587452799242500188388476838269227195632626910962542443859773853271295479642410173431358535923109897590078461712277901874479505652356038298381530797469739381298974679330227373974842874104185228872124573703986849633145359146872468500726297360340027559550938026156013026824642447834341267783057087256695610630100836857455831263629201518288777838189944746669511231058017303981204483892570985383397073727184434243502595532474840967661651297915109908898589415970426856422916677026238748080537331332215297339370915647973800145436666546757012880503349167734445819791521946897694418786859774575974824532619862995401033209554587900546535009053939944413089956453629546432410587995155443888766170636507340119285434075202189745438538907652695907320260636691224175430045177113424128564840964542124407086871816841089640356911198998244888698939873573267249230874539372801423519918067716750392057733275055869784863374542588556010863100635114986155497226894121120557784664959925861132538091994240743333348373447309453142627487149581663942463187312310125705031657867510668474317353349232031089361714474844969878574359158612304509181637377948764196438390550539967143615980496374802439652233989725021432098592032818916793053583490476868019817158995824062924522038068695668979459585059508418304548702706310149533459414980577053310677514484301835831580985547230115088344715653164827778981994166296529700123809773597544232956695687876997844817101895370435140286550979665134330091401447678110239028129301185517552523921045003070999779368296348723598172036812277324846227726981318446031388388566512143587830753203275595393949759418855073099863366549201220483806982192450775778056039753398244397062682228951529913794289947349769532125192704410201596551690857057853615211724001979149153888617219110520456581795610891415648606688404381145051047364532601522626736155827162681809000512032099489607534594598851456492845059478807063404074282231931068797699934246958014435402890440377688552315622053424896406011759348720601083116454826137308710772219720826966389033688037081738541987035316078163272440847688322512776264369110222217689461713173057339571901754366325868308450090067862413311804656471244418144378436290574901972479193006826688989570787011048684593878933783314948172556044341222460435681340198452933709723325574603618439473918124996158824949685219285776162344246925053052398793183386271193098221986460233910407952380198096315545002435164652273775948914492524611179162842606576285950831761175392604510519131709030640708184439836094394327808254268624800370514373675708763908858687942155804405749997184231686848418842354658872480182975498402468705292730273563804801089292305205618560727687246049923614768180281620853425459651598934463002927932519249578225957351745415321138494802613273125696220963079559371207952826556417787578654933593547850849446524381069086967163526632595074060551029772481391367482520624892640520990608715316298440941618252554974136807795878287779402911180761941063774285258944447830362899851063132671397679605235207492958559797114186368244533335897460080902683690373810269349469358011749933315535906189391899968008990444243577611136997484660184399868852634917113601647433809138661186596582103959242026826847099052600330194788761908167908066079752173527318566142255572369907787040156674403845592548194022854515084167234018280864693386882917103214755521245604334510127841880361376398619514285776866118280782258410078188846600005296477089737272698034666083725943278887420181631753039271360812826175191570145130892196346936490563549139854201760807494403281856854661481303338403844056001274646634592639370159737722247128534603952826465815409051713892002266554954822400315095664982293359673092658131605104398319083473246596339503767162534565252144531513043858500938395535781812273259002000144419136845795088439578747653835210812599790295929009546691711582628639991291284037476852874505545786549183911715910042330171352988090109307196496565041350002269340858016027185456873799886122871753635238623413984604469828412474778751631592276029223825855420639462887466431453312146405098359510442260579398772173120274084764924882716045778901590026517529518609730896417332780088056436895529668991844321715412148334248556727830470816111796833840742735312143486968074331815054117612709843235785885235795366096375573090968507919537391031955567271484514315276643267115277466734639825574969231644586623716615261786643815995849592369859733473400815248190861832734648369117785137133083985135870269081049031502939182286719628490186862488430790263272957974738618508131879664376077068349082098485632152420701000930934578907370403425030686936996916439197567900078655447603884835532159310735509920841390723476044565752761160213705451249805989866032111489289563437883426176298244283009527866527503615970822788327324954177071547497603721756377830967199757255205457842237893565104887970033448098477214586684209712537049776941799985449607766200610424465631281804550622536528853729900330919973979668927462799226842792531948799344298913542313249297531929919647167733118664972396567301996707422021731229330664018896493191133197667885514738695263112100473154711734271523751567322285768345637088889565230213924044128700903565985425098468125018375907036271163586504902789590789978323483271686380271301085243739273805151051465169792341531237155790456114434609246230806118833789547447301850852129118320131788206173328447300001736031398725124105681035588677772435250373118838951638207406931562728733977231031803818620545160174742216470745505552928475554390478983235620349022176444949420652596926059819290293715841515210907159973289214095749674308649694828608382949760198466611535574746007631002036203663029234358727040185802934873857142408108900134894820045064430324812230383061267908454379307432683788349902823349665227201929672211276120609923777662878263333375177422749540945101753427308382435303533751373847702221535116159439474056566316081144495074904439811339761719587421381931323559699283006517712428187028323269868032609557714188673228583835674981568006616420899521519149916448517529388276334941499959975352592430391420637704441425265161968137634529731546106722690390767932565957911455114131108965260560598746929676218437412870492509813702448006275067365811494492143392549601191136425699064965194009453567356518499701924881307549763845818013293707894433608699752671437684095293204761958780539866284130797686815332560079086022416812108268097324205007958542848084497614487921993017488508707232218616968489842833817673950769238698433661197790715942186036629449299740806009258482838845084844756636404708171470983593764177408953047242042174667127640571064125741864936119031627664154699517432297365192374080698417497404847010240635464386071925517775605260807291082114665786054491476244666692462478879374830313223827899019691539702341450830007156291454602128869282937464906180032652313827338729750577040973768230280040471238894808478281882545380666580644465972857375319211217879591291278325224956509505288936888513405178397799128835212583639070649664168131551219483464207393996311448054525294614522074987854729496423752202449043817535743361735805064743838873730460374899357743603404950386229215605206066735391484700313844081838251721184733608301852815810610747651832886388788121751859644311356697365220186690855396635919559703205404392507045768838596143726652020060971063397426426364974758326653110121230960087775563825623002387945031730870068986854654183406173069158728948689626379717755185284628309627592070873436933091499612773297946123468448509080419620134073693118879442499876044974568342780141173774352320462086123412963338955057425353970916541764860609768665841023585556796094632849630331675450986438783780936823536464154646491829022464208757157884726168729656051599262863809893906886022765008149580609083439201242614873939467064021715751274571943708966993477376477212763968239797004888742892503505502956971864366556573357480724552644048941596232828374811389745039953549720612766756842033409364132030701005738035027288186794524397252101099732918976738767827684149068544168197584896116122434275790506629786203559168915087650908795511147318814967562082004114818670143766182230316710473146987453691846801506064815637153863855557633634544037948141948555920786722800920845471460924365020667624979017891261779874990075992720946896290712321586020774909722431199660417930066725544970970035358297830349065859869424458269371343027560983789227989143037756498192029122810908222217517228693180734501625999830935593204674432116968408436348298623232398226465630691881515650176778843514307777204711508935159690457144086174305216473097279205339957101542182570162483883652495455685644264124983277809697712515492727051349551457666375356871559088613805628108256831340207712068306173479921166335558094388902541887064333602916717769302765692006511047537281669364433480373294546959679166958672027268223425236357378080511790884876897763298245042703120701361394540368820033979332307826831361315498851422422087360367958644622171992209723867195342965745122281662520382791233662268780822540557379230400161901309198436418574348008262173735087327845138853910932979683959943109254590373943439631936417836239391656443736570753550214831579047265525862850702292429249289822349857010831010069328664475245659191444302739974989641320587697004896939676355281663969603560903107667515317633430889481579307873619019077117194715394217903151739361262046402463616117862553050232073610238294211524635602253645742934690702393922974914791554965331879791168651683372782100295130547154175637812229982278449059429739308899574646530110154529739895356604114958104355858541583922696583877120555729047623018043701983761222277015803205025195764709833817145405257517763189850459089194705068505686424635048620439164776647095628672181184717856163595669378766068101806715402537050601350841292065384528627297228480349974484764776569655258024198679991933349847360120701409905891805911087884347797166772955706968128779730223067309447594741941025257831389165296836291338087076304885435309297885165073569485573311714538295132971258449187928503434799238032648420220790833670325903529403403175452144936235444480479194694898911241942865852120884395774955410528436022926358409716287040878909987951453756563293705899098453284389278615108107931649710496848235161385933163109773632455864701803969060264024537834689619122172791419669250671986348248893832182765205752221110893287568156438065084979820551312598112177532950057225240720264264729938909138135138085107746800902325550864591020347929136691655561977353851457775251951970951752223596288654345943064007815948677644773618595953646644250686572462997724758793189065452149631411846191897691297480855744489966529481223573524137961603725954004403324341414441531419728445563738653389228496346033989156279333725442869535536424466848086474550503128026363297337035918067459077892615145930018487093873659323621434785828667908641159660881957951683913237013105882199628096881242871608549884445217671717536742884443464711839119216424868640777665007832591544853262377561218324294521107334405807816046655690520479063413292481515509918010309304466813391745449053418038320351588353750541161512487056758418733140319849444549333862374448500674976977648711447709856660340049853405285251351532524359479138275419986248083419548348284323591502284516642484612327651231969305756369255115251084883826153359890252905706423747756628021203473876715585546404244560539704133817758495131703638142141158236538339487632656158091478069614483053863485000282141053234840208520264764060976341980130581651307482453480356581720637475722805388709396024771571141778915858752603591635035624192666911869423246868646540242886925335672644738048618577712081721977224546495307451454409051465102609775486087400434160611138819240117561305936577763898382991884197155154082187347595920682446798085878740148146122953332950375078959432691075605904973068111774058852545814416190875791425643863870129535826343903788544101519837578069896134927662973458629118852047527368530721962628913663089966342286446863196182335986233606080534973470365426164161774984233205185555194756280364187390585439494595859327385481969094903844488609288155606663817476962850346940752732382538461831134553242284269932462176294842529882101626995634107223095546500495557104034268009488986764225772686194053782986034739328460179568530724093360073321459807720542199636220387163471890847485682535481459034971262287962505493821984975631623142057904409156641274704340945086201039815575402415410821070452321019358930332920359236534270404421421785202351945274806306076351116157215281118689704792995729813976807452752768218639460271314036669395037883421230356795466764710349098043940587298051352513040965680435026690309036689318638408821581829812697506892609314954328982107277215188964743383233870980187932044034784277523465074827450256063286305317329376961627622825365871734760372611557361570593849501220000106952068481797139263661259372916667290204568378537578477663025019330297521928715557558096790096493336397242877524020461148930602867001711007978812740428839079325780751327923349210388262683576159825714185366686600192787955917335030275837264183484882132284065338012608761149056913089755820225991666174259121321976303322038670336263770153341902988619470948639917921432359801636909553303738662598568450301690149395571057697610168938677274922808894631283489118231984675930444044180519032436449151592375260783742885752958031474182411062402209051824400207195926581540145277073568424814213722987948939908808372549524295072643339139297350284872029979234671921818708935541051515889576415447154775537245080820038533376428175787016407977416240229962530873584176347592183694292855164980427741594349946117381120197762587836841297432418722640384803515666476402810329032317226657510148754539815096971935820470704619420978589317327237492069061361453309232879107577530119617808683414808388864343290273567591102135449047012692968621795546382129794197292852801354372032975125666188949065080003012738320281657923289772071669729703996784227970482248312998248138554682964819735691780583624958395052978744884751138977622368288819882570645546180469003517326731289141720371402734677536443679726819986355477021075615699878459099303784505778769248643399485166421006174494600122490274355939834961071138442801170722625547329871357331296219393679092244272846342258171210486328627792367849405435303422058059339596135856121178529298329111769522629390680128907857741704128282190377821164391967452910943748235466572499146937663548839136236648857051137435426275541092218612428068795985493281127359360401917213373153133605683341132746930826034510137977986389595844147825859217868960895504658440875120662611773938853627467467561103824431399361491746197351460645367007043299745525131278583675450174245776062709125009969851122961665585014981942484473999035771334074373987624160778140488593221499325788190904921646958148082229697567781593191422872889803094792291767392379281300884871986889494724464608143288688337859449899282854396628379244324684845086722918095579633211402708703429687010468874898250230754796966324665963854185032142049768199686139572733083649844855722597820447395524510713751052987668018060585297331610801902287352792018615572135642130600508485337332085546140685824986039366805073582075196712698427823403527330397876028913320416622668815595795967996448226381283454207069086813627153950044721222506865057180949175130264569379584224221863916000594943481108512869615714346680619585775147790105985765920413759163890604223961950302590277157580952987301255208481595465376761775726970282807480258799518632770882627779111661293274688828572938712165986904998815778801224772783039318667120232598735134969241572144004250098194237190673206709613887865534653644380039426503624825555676104491633076875825039661440285652149264011874303659939692728948641496677578177207749043756708459470329694982845118379153722630691211758963605234241735307122164835718171200738532488636526571901303438898132293805376503053108828208309579717283459776152444869833788316821955979258734109765609903403675063490524797588981736905794158907978009352846244407349513139715074709001373760417164978187581633693629593142070723294448977955872331942672974080203862100984649664278147980287006381507459236076997407805582543239417879343269663546112446617228788400748850938169565168455950083176493190020239282049565666288376302518376314815923914389642325640283601005896517199373437349496844919145639249490940406755642203631566166026712708977491537973909557809911902322558286227995340360028989290456547343337881790386855600675869663441976173489036395027965673603802369874472320952142450523913327910061699357215512320827515458736872717392807009152805303982926346102848089033770923470718403582646261028298868087872276971804109279894846937328622632141228332925414603705728386744099942960413514278517313433760110887153997017515311219957556254673702982755731748120748462212745280081827444821813061509475484621637058895084435993765928772318697414693827729341997718665425847695033033307016578657650873798339697581488437989828448648227108993250257340510859374698339191598087983334723497366508477005462960531250007959392603530910644824460087678872115915805219575715348469252454178655282691275016624031217101888498325353741314987613734321701197036277028736798144313680255089006689487781869123812814233655437767321297329788471160117577029297059471721505332210561581693691475272430880019902612898349824130132010292592843191786341381005219601988383903576197880670632332913030090358786772536611488136893726851943096923523965960302374029107257277637278242709831684989430817162778066580578334013472374250957577360158270197249161936649970076648315700972843391079034406330481413366680952985053997205192236443168057200733724249064765126686342545233719803766343697025434426766989710265715772537589160959725249441168847919770440725901136634858226909278218307953152448323289729192084862002649575428267285869539974674525722138348653997774744653568317822575996875979235165294739678749749820274441365331979184085754355683044739171057229320527832626290995520898337866113292723467375839054048448032138920455744736807895923667661774765811626639664464284345972893247809272812204419623340187767294128071065713301214331012001689614210328339705291433202443491959282947413114523496780491229651757013353699808033168690242650966816094341153754157020693658468986640059061384721731945028163528717650998995315958815370031265289320220500927535142514812847840067058131713605518378132721910007542510481343044317730394996468766356115364103658843332726501765092572239453691829741899422525634565917188971967317519225912140043038922907274970238676930283948213972064484025575666137159870518721163612008273612473378185331781193984696636139526141028820484476204898372051747476558417079081067310951922717374651370334998353889050482205849099060380048111936256842023328208315499511963196343383461842188545433074131380180279831264395189492346155547669203630708499715505510676892985154656977838100253725064016696232372820432675601329494828705612135598215763776173868595318948841532945163205764423048016177757485209681823818541830568326295706243249612158204238248565234751544165859647522601024206172884312722977726536540901802270764856087803911439769298138621771508412039026422005178830159692637830821271191444880847010894657783912863670125248078958981001397283579558986727049459586701760026582361938062089700935856200517413292381911223025980784148266581161777401240755176216270487712820263334923104954789808217876529677135291429047122235543195435896103521809814572163658739392427207342408351936837092522159639180364382753101929366391815485533485171744218364273320282439237322687581103690734991592870612209009061614208988012797318197717909764852985070990443807982176586739738630078491509292031309715041460640233854447757749248072159002944893191215131343803818561622700486136640711279708030417564194150803442095883940913148275998369395636072469196845566501971178021795480507542684667374419768829376228858933425733697946106537131796902178163140045261768665181401716420036464866793975266798588107685345289571016044213769346803089344743139103047915734105630827421392878716969544232828720794293679280924100519747968203514397908614352721124870726542792049044813244818807873188611075197396692605531971719590003289731738015108699616269962300383439373165480790251073228031027348871025005672219681996500774869710105934465855954538818250999657541057802414858244524794196301264229093190755128196860358540336822769113976064319129940007988565610404790055082978543042455202853955558969266003750572674665015645355876210870359299375336356906719238197923855435356052905337908561177650321474618741966448495753535893773224389693663834910057110333820092424407340541336600676400225373799413005543533096508426685781967689999259904236523974077135050227539553622181069255870234483337308323884125218906877439384933610802836240915118941540901886492309686931760838207373388086759101315697754625362761239355565466103438345656797975360066928782639928180045457639686794938082302343741105095257668142207227385496232615268137957163727462415428631988900449904958111877365794811439951665947551811133853225692234074146119458046552395817951412501900968282821940400903288037852460345074429519618030474055523430270797858016990770014812930398029989453584110910079878230196739923594127998837687819508463461794990461617730874953556393211988226095094685028563294271171087921305673644068279661207002450427567734046525424002256544768957512009202379471345902655915483089492834555505967910942244783355780046446448020455372686579832601974965657689620474230453136450244227115278063707624758336291074719169294410476087287293884919224390902272247179153146052210343290378878887846704150389435837115137565581940724664837865707241834370865342405906606288637522883186899939171602588454210437637344017517845985124559565756022030900504058973828651953884144713078493469176463244602044249806990279978460985132328924959620708235249168311940939082090578698402140027807378384128295975775782259159811454211936190193955080433166603700212477953507071862684413303405204797819871133388123551283714787142304391519509454306973379478217434855342618909599045646471944439148598415081451289649968537849477585728749391639734933383887715246988512366453848192749810195954572821603849234844452801227890611471961398751837911899929881847971028021034972607050951502185852884931306554892691393633940026884295323926499125574109193584136772805029843515720414428843084981986071232782022020573425059761392981860668709623332577418263309848701928441274468569246433737548927497271695615554928567879833914606632464753553966067472773265813741514414516742588110430394493961401023786019963934782552033036567035242015062030926013586491945143040648517414040056956923478093796701859066532967992441556618179025818671899979821449431273348367121941300321339067874482801636863820934232035876268632479739556466964354483217776982385477470577636235532840839050844476193592019950628628671933436208307226557554165436171324245220252138432808800269538250027968884691718481220794540130483802049634943761460122803871234018643138744482359356582140679509222583686219707106828555803642619909498713449114462434604484855311345319854668376545407517863050744921296941444277415329224531556264098288778356024067210679685215550478772631453661399735783215431652573069441039138092403597851308647138596078177571601419358482698598781646507055669067324855769396533917246514891363531401141324480555769219921554204436873463851635335372942868056193658330637859975738060253572839111411323502591832569598397092666099375238576697428870341664758887234826031424049383081151518752097138492636656380127690665774691585998137440509909979178121875694764675490983929661055088253839647064594473009815878024784734919951736586818422874184381795098949319802854393771401860540469243580631960461410105754516123317946333240630007585873587389626718340288170020523247532298875159973254735792910227441447310116085228060966091342563295631838352899505856995020600761506745554312331680101513470606920414034247977071038782540075449172070050643343066295819106933796401432471956756944982349524627022205604641942744099731950979330280106900029499214823777106850994122745928083079275979204847789565228512657823079603476698737016039550135375427575369539276301623033337098805543629479916592727089164522565381000122779394693218397083510261977430692023255464892183948683818945899696478753718458788793861824730727401620711167642132135378223012783583512338151178625103054289435683373989367659410894753756227535257320584580657436166808479103808287576689088012933277773186088110722316163749125518461133075805852818093422251562290719434970825624583127014144302625182783672906286807137615457075482594877415085860160422072451289856254151086944357585206599111175733051995114118426974334864379828758086807336867384455682385916854936583017989827486216278420601840204776700685381437477562063969355402175124161884085037881914096150147865200208009234650711464472355655825317828856106499089074750354860562378753391994267484278905923892755100074914962027715822950299409654622991890086153489034749662851664924570650945068105129171103215747751034756571279962160298824979025481819445702051575663157141309551439219995346430087797055768053821994817227671249199638282486988982374571733142181315402157368826493112683356768199078097363980887799983075243364733348621200263529978534928962486331276520463106976157000243459108817602998722554297045817696821832171061728869110186394158390087849227314925860636387902956045236450811051387725839155971654512085358328528727598584489339866385074693426540619220901539738602639443303215765955667149641507246893249106728809840703733091112484588574027031673843621050347786871925434619870348676467255123704450047703236538711889696585194963580116208367335572399388153454413411398809504555555133109170438959812121469821254395981211886446610376243245768353016414447012705765919939497528180842334592503205539510223451230608623030188339948809673059818672530743823251412076345950604842837888448357608118559569620592359446916195531851593209457655227905991435721616032854603979494668878413344822274856916443523066366220969277220271741168475290659645018350187329883600082561246073976866188298907117126872525050859379761993028210214702224540141740107043569693952465058626804915157421688889606210969218450856717839787219245938541437030365124028609254838538486132597332677562922804217928210138444591343035163245198596345725625495205393471375983731247752183766525060558291674520554111275671224904320134673201279304466457945110655734496716346139400225929591218440419432637905919172206035672826050576248611003637125577302023619623323422000978222248141824792746022437476687700820866462578866846349947568484159674013128957317864959997611670948707162121787128991663058799741109219491491651604799706115214917870161031576224777220034852904775849129214365842403104496608713546910059739469363553767251947705711220936185688608006076649252579178479677667592932373652723306714526346611567552218238539436473107801078890060163511269843583988668199117674669398851534887720125593658085977262133015353083541398965918536945218910372009959663702130436629944798682035990550217338168907840037843033969182781709241889068068761616697369812370327398301404332011675310172292243085534058485365231602358175403366851724345847842307867644953290901552794885487613013414633081465387582516882706145266871552850572625418747199076473729335866948719940640194686414651937033088676796071296419569609821363542287832812106559009321532912216626397954638864438987572960415130909009219225167662809269418268306436171843489405879135034750775926468412849446570054275065816060023749102368698437943539596829695929127837313232985996080429464359536574858719593346269793399413900739241205159084049430202796369267574955590395981040860574551650736643850551047791418005020431065279131584202483293573163052130884128049294984802014036043352679384855305898220847401911746169651231450897746429619820491142145412164217713011212639561915715009129563783936188595929542706101328325034457954530223711829652239332305264932359970841119242339515346908946670870657271356765409948302205192379108720056221735102811132385242799880915652147957185879113188484146282494393441013808463581602603386294191252532516614722063781294615162106423007077326495411762102523329264702659493838238194696389962394800870218564311417418240306496364047760982901987592682425072381206259155727961089980766184135114328210932998135189407717201571328120841414207402405900573821013978893153793685365562968666370406138426600200409292406736729790569218429690446791863506059351095759137977688584734832770492296566117413353739790339491990495709343418720928133198049511265983135349904204441308182657105379290949970580994914804360112236970006133846933627566900594669403730099261526266707060183296300881459010273081796204929130213161559786511014601439861427446882899448430204281251281621545358842773822910157701891352995216749236480768741123576514878004723382317705968074928156284623719918534717866828731636732761809529069268611328343832027450602116981488503964287857604962357208363073721838921073776015720375303098368438382236479803397762998396030436186163234259870558180731166385392294812088900133508917343472356877835171195207849826786205219533076401816947220142470184842171988431487852387334597948357486986870101409159487545817350955947513724776758261214211216100467725599707840896971535974188889701068051796200087869188154799638445848190020185143893005491115665164884439444731878651455311076132694765767861243242567934510133547816194957966626405648351481003469567840860449265969440943489351364317023740072371944803826546435149511521218492413470144244923102719236501271637535732509147806626117246625061210244427541409856299509365718360593415864959278513011757484860944716030166703277096779129247759381156697073978902521022500092787717901569820641679662739007610181688063013384755753885957129949442218465102928146130778343266096555199045153609112490535215861057918521997373627537188000632287642695444929526288414516645727700639338562849014665050275793007472166662014329980936715372759670781759056243306687526831443305099182435772357528263981969347074593017944201188509404470500561359643913517081042534778698180794327832036524413095583752842486864564991808205305129768641821956217638273028136580490475885501043325325710971003523199352885554813934444389005171427902457933860742202132817437350433795965625636527813870169814213637576998407286318719543246110759387115985938178035003883067999788949147895495227876644684063896740636319363704451824948998295645942565769164747054644441956876125200010878872852534301280943751777331774667845304319939915123729410387250807728973828652125400512045150066715912338709687534891903730824433280695956461569646660894642689505482301816587978032937294578412035198331859012899656165578073124305856523418539173753343076375211725244095165989694511666737521483161454086755138592058886973058015519530816567747663687689734722125920595293689482035918891848522904250516937320546153218527994679405606093078684122867238550158897852833518890144825838078509887036229507731321220545038482341683564386994179414791020337832928636811624172841072005433686145695096494609793528543362535457362977348737725825921940328466332984052242368750250630986022456769467139797481779015179006383336234511774946142897389566065918913461864445734396267508664962136442469461614223979137563093870578068751407357715443111526519110074201740136163538788267405627810874698251837770315917214429130728657799197782296090794638984347217528335148615518437450976157288375656099299425280073956602007165529812080167697197272463625773938596998991738329349979245399533807350367739938280496271525931321879899752128487048989271664139015313825635730729379125713301153900797804620684332836199806452561303418984853000602776711458735483365855720686924658975319994059039439326538619637470887536505391101729278251395682520840442556773633449475300120704129308084501193843526053774129186985689735562381980775065494176749160526817666482186004032905885918037315633030377419576568008448245738160029698253367903384126584961179233363167856160725889917578959585509101939953460850430412175163332389177615799637845238881740725417363768899791920137781382545778735648384286132210151252076306304267566515911408172207779165047612063634027483056515552432424430619217496439778742752196175980340651603749972826949299928603274648009995885777362828180370879470430174634255448138834101316247830441285444092342029188751396683371969732866799107762625580319962608257464179103660352477858671034125343452336241988573112949645378936169848741843736648320775128558841044816597764657387816775894900775126292824594616719490294355226043472165119372549065980083681601158566872118866476357289954981303098903408760123629843960128735576935346387683759291887634755018112624973726270583478962629332340791577568525900880716718284406919147813924285009044077369464037822249954160508571144426196781894760444719386639964247525175416392247730098550503957593649747621594271943362919445337255864818627973115555914539170826627150423399106552609102972614831791155208392428480303865292075990473524792076701199689351657748111755819147764063465569507102616648304241658441745939946453381067252036979841480817508531223647433145615792749341671747333755685146009278209504751482645524375283550935126298174177981349250947389921321306388715743523925104617734244285397252129717205921042813899813784710501018472632856837264072248048757509462153195843786833961552989186335452954780913276168715538356785860457323790493943174421980571888191331540526408790569124055564509653635870131085679391359388258816668654547172670503944545180070958411565073474540867016643125256211066034345471359141183142459600237558243255117725214354395138487644378499237003225054535343559766260249534541473711549469787109542109282850284208714497396073577951847328711622537124412701861286458107336715494499875272175522394753462953162421330555065030189871254607407369840585490412590728025497688026120501380198510850109577592571215159766222229122583061363254853673407228842452925235828895859286763001568058763693486749600758067583341025507766840766526118745642562128116971248722845832595617694042389172290230815086137078597525019035208298515868516600739162851640677240306903797648553690505204013803797399835560530134964631461076182519408310058614275355815461672797213666480752489661673190462453630905675018146158169729240982235229213768741139023757190908480235904691535769913627286181332173328955396395098659879188287659285826535807338754055380884102092318531514306236717554687654774546513448585980708682166813695618434520747509685700166389737578273365950468189244610186174543827247120063335591831213964521274083497227434394316163998611423260035474413265178043344033925426451188112218333429951039814581354626454505129534640015760068086169132278411213190475156869877425716081907775416638629854913569846657031674835667300993443994508776832639896475888977839537229343089419015306682974980352743961481214148296772452856974267733994615674022704069941081881106774911938067351909182040175046417277637092832603263732976259371715472793416275043098403399648734320971463768879940451489347286501949927403325177839019949993791063191601160674016794492129750087616524070552124481663940962472599577351849976632275083720772027191727885552628599821042048690152019539306275933254145523627886024590016858183497167567824282025389800371544658131873480767666096432566927531386351442792654939585549630912017916692996060129462929667521592553393097831906657318609377849011976516255041979059474774805564249800829971535410574343814344867836484300368864520300145595893445843945454766288587877812895092945252230323580588475384267836658202211532522114532240602528554667606639327282927514510556861988410803457961845917040197228919826357539495977985297071548634097989357005825862391247315839069175261831582283454224828870091170103552685702843679206012151140420323514124208088524140339529906289012499759989184421307174932525849341171928983378492339870668908537520540490684078697040355156683072330312714730735948301148152823495076444836150339507756477479228127926532312853246868843336191970103347576924524533019873977875158507041329507684910220621756766788734594996362283730478500588669907528255491146994897505908453103754302127433313873403402584566016464619168319712883890202882931200773941622698721387249044301319230485828816913769677666181633225082043982169957287034322421672212979463167368227582981115101930742091073257035641298620241896904091835926174703238751240487954127404127734652498460163729098291175757427037977938822764063197175373881557015990876821348940998477012887756577354577907183683014470879229808628590523168102463878602414731218259268330668158835159277178708821112793921685989853132078028710453662897721303979349603780855560861057162740808825924944996536188285707871021698996344504610934167974257561610202768539356636256202935134834815892396188469322745220630260423865029105010569336679496833899892588378691665416585355372773216596576945998229881306907124284140293764432039068183927349243207570868103462445406050523522109209188677588757332994454079991415277571106786208186857054159632252268287384616779660856910907320907096868731972704063248529934440679280417662421601644092704975664064865508854448530748991423489283229273985947437295324899158279788870164289669938049917412796489203054504561987667394692667285867312702213726201900279016301833691446713714728552722554782367743337458057806702596978578799867841129961429653808494193403136187439036959303145302001498721246031356494077855038695314571538675396986353061000987947694699397000278952061780450687809009115165791716244606740823873038747629994374048706384290583050322246733007598846018196253916451638077246998625042489714732778308297375733239725032424717427090112726691045898701874204904769865809990241284398736550199366552010835916713352934537038748484924965441622754226109768710350680258362353987949626421266168065430422621616150043563146893803958241967115680992307681672795152479969719902697827148288366634991729381297260547299861712737826098391812184646199725878406329729775080498414096925506870990478503635990396301630922138851719156713932254426427303049427886874662247228597039177189393116220322011845475711561811666059722547420543406676140155512316798891014557042530288705713274685484045675738655076354424646148343090140709151365997549006890686613553241853911421303875609251414222264568185398875231071760773043731013650335375028629480562144937124266089517400216066015893237681278139762643519626381755294033103069148542310176572225752023176838961911697367985303619957979753841798536935454886481067930971270176485206897071690439129057253215945962817004542818141712472568749899484533347480935973841579701674990517899529577073046200606735456068766490885267796591389529142415693489713084484090574241161115953537034514463110045318782753746720784467269389792322014846420695592860137862015707138773632673249589530119577956758905857979695869927434792446996719678326711240926528736910727262918444362956766824852723366253184370773828675301350107019863646486159474773246733313499138878192488033496480484330553115965012177821186573989260051274681185276923937637424934292908948239132828349471012919030049012636552209752383182573418116114124984510304567185709427927711990718121926751430204860680561863973756347431680010257736557992195178908724364019533143011455308922286168930293924504178804320267398395776507728112284436332337335264785761227324812567826504442170094206499701690524563827574244504433703033720805937385103044428410074328459701702114266385936298253844877526197830423995174411555713219752565899495867714350113352265660750238369428963587512859691740877008200849443088048114456091596841055562142162020550496051176886899587657958331972354317201731967306615021434470304539730322540526625870097304443524138415257206236494000910097939119179098447505476165546619958280541718792156082052168926540647661478462722476225421824388271495103972157403453469176079801432894752806374536811059883285453219211715561877139941579177803966139752386175379177584626398306619055394233462325600336393363535610756930029780168145450804527949710640888655359513232503490284090609653563855574822383736897961353229910389586808394675313839864786306702584361363859240999133647896363580923066702045548536735106205747591879184994547668495938562152196778322574255798691421213394135646569964260328470482556131266836152052859403751172366076278037482825441252306092742715681789875819684285844108579672734720923193299429194435944496566431892317204941256193970956346355803625460579361462497520086254920973398033995862212277932365248498704669877133914017306979705762142713379998366006465400135771816519782033717430019219829987494158865054237180111376722834000020041662820735110969755923266147036166800799387720744893317738082480561843263310133422481292571525401519437489758643938945442752988265469213908100408226242132462415002128732793058698946002952287681487535194514243087238423456351139118211877888797114137121063209603851396757458467209333230886592418677833745600456531401351853391769248734436369664090272544792084108476093984366216743314183597830054914188604744919213717168970135317806927766213765958265434743785700885325406373475018801916266976372452968494073580383729973956466252196619817489091068457712061530788963894743543527808738720156095154675976414871804333222645674368629828112892994744308982498981944270819620617539041789761001794717373918028518967906930700671095615836164909929299685821213359262095939653499893222295959314328837818906056341776847836298312987774205468260511870466829646500594027936584448118629697764416960234834510678896488036725059256275649801376483058147298687227027435560914300198105679048251952979824412534452050714116884231720313210153580512673387688262212957532566369331953847085124856378421747657689445717251927996074467589609268286344448929028621096653682366231290659620521602082960613195354170149413538877778696626047778144392071196187203667654522516411522698866774437638640215155846615973791499098851867666528464629308142336330897229311190938407161681039602325436152373410818670988868181176114081782155394707718094404960135593723356757601988208182136476189413914553555248804038276615071048181861351750577913034685122159664767497767803187818929666178654631973229065840257042737527413923210892293947648287854624505974009157470306082265566796818551034431369948013907571158505399828609173465835207464432291016338554100470608853230459801940362468454858182666587447681583071926328685465256502204033908985473587005925991142169019503882505279650364199461039681750759336775538359199753214273886883651945801825008583312100970112444958514517050192614266644405777455058223566789735970772756469756523398649783352433777154568063402498256135894135440611153127380304900170712557331142732973074582084673468332107189987653896562604041704054791033464715883536478640512599252020665008978247864355145653405449184252431076497767329919974819342420400058176682760460796171432825730274231623382739044698736551150239785615620821625511954081733207868547332121944974541869056962951343942571591500198393653602961545114379822481994560183368481157546192151111436633162572809632876615938636433857921757019308521320697437439650898614855906601570811871600414590785074281632354995982401015771906833295505159060844702084260661516578069073274883553960320174691340797870321460846423595670763763774393427206071613606378884010870196519245356862819765042399445157563531182200314863184510976206860478824616594564097083911815470149416748963615025242013713832720144902732832678593712386034987230948291260109835545331634604693638764921140052243165712614835546442236848302161664929424315762744320416038600393777032000795203815018693557132930749841437764098204670549652038835137864375928269447711515140010362328359697944718447664098459991044622524736189384476414839542429132899703477972429521332135106544704508804910302097601529095772880410961230951556025217673981269200850770065410017063079821484178592546020521168347142767939468812085326458766950308112367739683903942695254084083618398056495065205236903748083189041276875264977666145407375063004140626400041736271413165919021208889678312980017339206011997043301443269297741221742421762690335377313994686243658917287815298852749248810867423673845762498696489517115432088873497856993197311723558637687361476352707431101681476485667075684825028991581820110493719628939483409472193207839647974805068433271544933158209734638743775611097429686956195903791122616160026052053401743561925291466007738034625311987157087924856336137024780565142728378960161147602474783196295570333447813774131881486070239279384367100633779006270889876092968293976528520403489858387888130062855956958857791869216726890781123483405854331518518685616720364571025244762455066975509473003353618961461111828838564360434910327618132504970879850079021943436449074733782739225401869794458981480438809044154430287167739882507347048917699233089151226922027316122055556610365321211969766642485030298625932579496562553506505494576612159423113016598200822424690968353179302232283366330080010922744482256033965068693905195026378534224149092636963471330438693958622103727504060470080618864236443212697753621841475518813241932485510786840459012479716340716613970243965384217851614931578029262949177090418431847733530034723681126541162360366947431907507800303004802241961491705722577778728744627243452460245473041323004696484083566225454929605013165824746777909078891574465113216321300356580293297489669779268678632391402508812236701060344667618557092961985766661499404525956386094596290997062351861602517744751925164587204766343619831092962224796999760353468647393546377617149721514985665206471292250585373193854578654617621411801640515347860097816284385775994749610440968108497465482884831931044286249830434334870791921110752001314214132704213936366719529309805353372766108990245412631561366808272468175395118152886792056231598231421873431728735207063970307240767137014999611834382390749363785808749392129548550577275025031751910494343991822444948950806133082924084895987222206610208362643062705163329016925333113566226727898539153704520531440076154812617857483209812744862560221357590251649228556781089335052735855127861269660706106755520986192681911688146159452413479868416790555925353710428875455143640814781577916438177237366440158016656351642625294379441419043350017741912941715389243048828355752750319800305582664438159447713405659355463804846874792247584270853011283120682189121536358535599069075957138946173425437552828156902617684180312966110112202264784755909215799105453220885755069215316346935073218555910001911876323110936295917452896051909249584485777432929001494060636251725660141624152659337224642758656172642400850306991045490906549013756776906830734011738702090650977522690084332137136628480225852807185014915991023640852485211422077397836146666878078059306341134136825359289281123617661665184883134524758456386122877448308408509357920474792287244545985461816053498226446522171809978099819785560508884731583632863053031650496060798791806631544550151138324541660311033685749157671548500275347436964790179805316264985457719195877867272084100804982250233271668266671888668623802426446081747602596470663705526045490037208408778166847973637369280773041835172669303335253727682664604825865633909899830966105447200917869328913536601127827694738192482050774451979198966109152145351605720945674607166215899771378463822722818191510420164350971155227217682015717034719858986637072632181867281374123117537518690781216144816441466822551238344934682753287852973914260037017023924418224261161499605072542330056257116991124509909182510934938412163690333507651272163821729534241302881249394282866512532730888487079155765279343625531433492124324575482713854201421163425719177422500038438889558230616841407454649576134689805040477563402165293506963270944492870681401856464544608914576942640085310316701524663843721538550483879851841179523536818261637475571645501488043887994338157536391179113295677984514030443899749068097634858233786941513820652637777238475178526202158891246659334097970452283475133483110101577816271610061404145034165748838903454500278429785331975943797424635957362965617384934557413102709289043748475636622639394099704940867121595425364776335685811435564367046515554076217184401244605761661222904463654133615252578492189476553898654087434472263765566054145996956963825272525402529701499885359226920685376588228868802560823850813685725775554477609591906761780918516571127965497360070173591580460281690827791055599033147422922682682054268555293757683024681794619690144059817642669633635423406702631657317315039851061861498381290439999620645198047566101004077086184240068432098475323089136601535323134994549441791261376096203225939351103604537162751566806179611007974313835838133821372806981304418705838338975815757544133397123401516009992493293957383655630626097032389168157986134113522764962707504141438608002185540248516955501997251561091567497866893588289214120223840440187234859247285452847311012191290739856227930470797929615799568967290847884497261804199076680925878859241550551994760656383039094993581455325074298647420612613147600468204791111974929592168504276472865487822632307647907031446245245698247123106033691868068222160116011636584813058986172910825560667333719715629153606544787694383581811379468446640418472546633195480379059888508115788501082338175173391794467812372347821439945888337124020135542061328150420917538576632323777243707095063896322698655711672396546940446759086518332883177275127714521692314402085202022416201196506868798411550855833112798434686100224970256926307526632609781432447041850954671331386521176478819096489055289187286241138445927776405145122699146848672572344779760652137374769676946246577208006400519600552157506087027870505238872095222584117866006597288560719502081099707014580476009383451265505202329192339592339043826747576349661991410238407995287445610900427208877815348518543577329827253011364782712715603919671328387586418204265621744043917819473599305409011983554317176041251187147408371020063122342344591792485165197053639969737822109753465235351487687510918384487843243776321693987124923046090421093415145354752484353211352505169449484565302509274381579708370248550404392266412716214430616723677809687434326858757081989445377394621779130614610156844438446564552984318068695366753425618387475966879144536636295089261969093714378705890513024408713870424983491758111356671408600314604422431420272399644935621872308438046493863623928550040886255516873141240962351475950973161146854145429986375483599818965330274815644570035894442341448974634719545088891472866196807726447300956919989820962401176573446477534272852759891676770190961783470557527620070059885134213499797156777131474317289674304665076251016103870395483052353195530675078656420164956633941576728365157808910207567001308086122442392479121184775847506646673576493143410764493211852013518203136073035948041281895927020959991910541664476869759019827928675309642660102673006063216055747113657232961308471575654392139296536226091579252221788336039005089507393624626072782212278040091887943820556303657262088392273719614872608771333360509247454133217356584914656211198631600026526265546931366649848521282375491599041066071826500370557801245921248063068020198657335024849747678559887436743929905647968553627723409938498889082166846765124550832970230300799318901885633610652243146887789765422249879385694377180721429095767986875654078294880121279249635913817343747733286417046964292344667293965984117530015823782592946504616162255575786385953472667042956547018612703741538933623369892649931522289542842040311664602392266123099705285098570796868445466992108431770589781163005277230486663364006727504878940015176857561652749502720268838860669898583024475675606362148153976665971535857890585693247894545931181878097544993421584241035315267691214548792017061248756812838665854187661948258803699014509769498307575408586374686636379211476461282082699750196516874608262885503327866840941232296038721672604155073581683705652232306282384850001324086753516823476064575426042834897381308835292078756951806308927816696807459274301271819045780507976698251725714923295788241017156887907331615033983365955067731142797883529405443767172592217397379526695501718996325523345010631175096370597680126442502482188257537997482973676178314115271707416128194144574748513981560728494671128668965019185772677217146414851468923857882311116691216498021913033599777158440186622771990156622490689146079484092715015458785598304991963115608307915490317851402022286790359906775753299041051221326623536272160899271262033248136465716553251002186423204665945632374362854608004548510709944328616437914202496660279320932702439694516882556299902727999389035186668369808446447668259555825612091221039598165864420565102018185584277644865818668789944964639973548290191861174901764313144086353993245029181554301075182667290374494245685134145930780739994793510623424898928485002500369232184259291801608735086103690319358449763635324481224385674447824373995054251687872997139986079169581006079942361585528769874290346554524882305611208874728897279601936342790618103916069904413778286031185736762920981456095178612613859957821515278550423276850647415238903526453581449181271632440937067371699170545298229381700291712623255478672005252201217565115406423923146085651843274370600117845646004734132291425627663676007782857045698396385341356902350891534007040181082960120016831109689364223354358542246548079883110920524707248386117944499609531208115929172887581578130738369986220622216729355737996946310338540284896936263157620008487425276132584492715716616578670809136489889527430051827303622539404926863000880413160556477853082091524727311062434745219584934262570417840890233617238659386980960892568926546450649515111488519686116339039639516865234147910520859492785068118455710321569836118306030804616047608502517460966059115530453940417092282313568587367515536543079654566374049981692262965535649946542411013811098804824130247791774946954282905520923089102466522287183200197742152723006210992178927568188050773566451279932456420098360161132195183320921610624476090461729874160789201129535111035453511891365805039908561458315078600211790118470972124107792407852621046099097472614345747510854537755487315581254812327906730343377005073577799720126434413879959102241851484619718195062510748416391645511887832019507547183084304189383985147538436577810442953147685435731944791821787016862058760892490763035985544381171617646077906991112280391486972393717022876957291687345133420260233715083743817890762328604683591870672027482783090483898810787235317879263817970221646056606977455684855026788942852674078028875493147716198951329366568248496270243713671675543553619903472915361716024003050953132472095852869792648340015469570160294636949447059540014110499456090824626579791302590478897847442560327875231783515124482186328891049780026541517692206914729918238424248491635035666383749525991577461749114214190080568544165884309299345931082025299716390511435619935858975977565799150655699619579972772115994155470294905001085316596061999317483670916107764744758136771845122333771429517387382478088951184828764942581720307642317155577341926766262384881203052878143591132736925961517050474168206914326581723778683397178594107206119087155087684570271048359430554582649145119032903880773090547332861422953529813596144559642821949386058974699870092705783456603307727876355132586520460914212389004596418043356191800966459634735323299218229926040282781515536741952643891432805471530302176237029503237571691056881144177182705718859575092096290815323123480870519379381807237302924992943743642398397281555574621246181020010083545597104605558788258241310311244860592629936476084856911978839811481635103609043945561958010891034820313803860230480629718595236860633590503330527046335559098907312374379702241110240895842719898521701614603102728772483368974915494556964672470574472537226576079788942137004376654049834626021305282280814472664644659627520598654209971188516297629821949188191242267390625255408102767384812487336461312931585940734073383585478143799280748960790404106894612389383054967130256739240997031477014541233874683367439577394995237646493739053914230739173375330765047338598582768808019470360811759545585974749675919526990577141894149659811213773246917874837901096378783358694367819782783836127116000322125887018540606989380336222027744087875610582108755104032293152640670739205782556000133788335365464490265620179356367247536477265907766185714001320030703468921716010410025732399628265948462660330835685379774557574303562911116527275261918822354887105732477260921337607536359730954681551917213504739322562507263212718006841173895823647270533564640422831599220852198774000769127192695759412426721522173842125963450098723265760076889572475564552064875484195313484181376080870751812067001428882541436561674496527851162980521518236297971807315102526281988446811606009257692518572185906321927325531434323769963427914711950776973805757867762927342931903800597226495587295490164184282128902051671666022214094075852169420259660610033553242758445219814566065409994696543197836920566593092522222119043945059465710736864878372281511976352372494173559505870078188929990817211519651008111806767799962680151726023904804046851529575379379952498550772802075060271430423462513398140268655951857172186675757643897897198385879928414337063718369866675791318069972101746475905289251073820802448022167450427435048480506246566813906070150974752518044422642330932709305821034166292761175573024733682062385249185673599929520304060835671399563568931366283140940553986024035791060547752905839470031243523658012976319052327047027902416556830804863635300778997287394086653169796371133622769225232522354529034728777959758229526638027146677357461566896770770169305010197210332353947429425191511985238799493776972370865079185700092118481742611462082809047607631657492467263018398621238818698425624583971204851545813106804443299085363550112008431904867289608988176591708264477671277991400476865525024435817222489776406159052843507889703806851913316142923135396322110143488791577430209788515234827439901788407469445350263323462098870450206490926033504584991066501231200661561974829960261829739673385124121362375545876966583112778736002249861525677515033523204058166939607054744049617871983022686438974318637746478529343784705568957086862987226642754202937003843103662477687502526452880884880460875517712068152682099943298812058365345471928351320690060723085068813881245663607623703488315034055753166541675578298333864955267748359301252901023111666457955330010851133872330801233787370754197751708375871954316540798548130169443117889956053294347940309252717896521643691973854502839893084801303096270942152355153280174760061039821448138886326905833978766926159684751607310019730734889664088838851865840426937085973929706664445620098766567667587116660108548428974034448359967415088588041700179688961011131219760497638199660689505967776917139060550379070854934747243657483822701471105599101469417746698832478876534012996604778074712930113428991758539264941582722955966547402949356646763851710108170111129240535718028994613102664256152891369001109170309418485720360684081943823410534293245668810683925563787293613734376703796895867871945753042739193968528122588409584744033027371870394543824823719546136983150425383556599747738142373328210316935431990035407524722898841908230020398968032260927386083665234361963421030312942512521162422074334904537435866577968657069680388274593644812352292225244550531552876402982416032442249134295909239390921613336139559226725119522919231558622304841464980280268738842412080363769556570663089312161811188944366241610092266899158764851922639558766884190440484990636943453653263149158571845995847654447769284190667168486456990627188808092414754850974363570340366066781111918679465209630184355298354021553696848286697411989590550977684053846740715765078771251172137677304590837339100619151573586220582379098978744078445130909523275917898710039528981957860243063118734873314681861101994616831013104994639348951395726106012060781285971953546190845036943454368498067822210393505926494080380143197715272165303708555088763999579756918665805347334435787696727955074889042470557715576174211422966722656937999837500724451901199800789078192621161088425059286136989834379039714077480289931094331155808401050061249982637872234380051679888657701323954769822025881083328412649476937618794382520152911709053859891169446412431975717712851976004685702514196173885026034171219647351008879077849693239957544948532624125016005573105807695074637775359139915272749019147722014097936280583873064902993274202986177542584122128466565270983026373845772079324561301617970127721553010201160332956371581286052593889342111506882100957243054853920824507822303097844053816422807520739570699592395220424120609452513615034892801652483806126822112986974280335495551541178770133845316718588509315838987939129370092817515372486272104369427600883164177512998311557065382667429978075859846990245753655305149341451289555390469637938959570376884664444262051134885420360550603085611386053317077309934373775678252920320757642951306677707899141891865709388237519281603496116219203366601822093775264130107265985101172227283385580160366087887727913548912792776889113131866377376604936360892227110812887492597501316250554378994641194580519940128091433149769281934289881349304709329499037483355226812965980090235069606537908693210568856339846132016124117240307987028733219609806062938314205431664764801968770858649544348077994704846023921304973511131689856394804583421302504986274271401752799955259355323590937165916240047718151904041097799798443573891231173346564335183874692769220240092012455029913103255864931788020641227454656621167583567329826444105809071938565437000909392200149949283199036733755521066926485312586635784105172285529994043144396483953965017084611219449200724939875683680518650607076452219985482908261533609721141731701804469973673934035024026129547389827937161054051928788963312148473056069814108003839517885548008930537449954602618280509331599371123826301086024062938295199092766158205045772512485562628532771251759444726804228383090952034569969285212116049150862303294483557687258720686980231055322585846448409160696473922835363711807616828443439579789736909892171624825098922694330597008040095205439399606969135567293146512291741910307525120927975453024745843869561789850652899333246613263958889912192827717533370116601097678835691872452064350667406001627006475121808213530845057008864078456683713258746901139254836343362409141347198139853057056279679086158830666497319744633807177194141092307541884784156358753907517694139917660859314755734560307276256763810185906892507888826560215016616281191353067103378832588467058910916685661151815136366687944861276883174835109018240158114576524412013279428456372371499710722048019250510964345618091427019463239235202707905197385278395794356144816545749145414405326547991737135568593632305466188332208369642090570721170420780600118757398577960425613268625185688711836597625730683582946761157977974626277731867926016193173789138398969967816509492734828438948552134589522640873437789377866362080589263076792212303603499859706007797792278085608006209177217877410334245216836902491108086505545734199517054875080319406457631641949190308939859594907255775870565342755735537255728709263457229502248871229145875970197431439382738579695368089045685032100629553965780123021894492036392271632652513514979922510715509060195165895357228168476488188732170614752686030165451033801631891975425222176436243396230164912817731890015432461724943432935318876998541469609831899553519365502574059730170829334179648567121199775122257828759363867842928037469102236395259159408958004395296745054563860880264226387798945760104261273074197202841448840920902684088063523976731588962024666552115335782285646148114893589630904032689672172010244212535845725286276064895227284124041686952683632163082452534725011880117146884094648965069377638132929270133309461240692637736665377607990213857154783533272422681448357796599829021934983230189204722491399477396512409719718747353929240208092339501222418563834316490275151915378090687676989067225743035116198754527578785314187903855753631905387369132178650554192168436957949842492298366918903178652826721173441565790701116170274731475003135547657801162330582690856939603160843051756958247018741682232579078038542714530068838355750677678682675011028885503810869977825164462597526764633216624124439788574985695583050802765155148510453665462963855646268964011095944622678318181189550950502119298436214687989890948694652609402723328612155013907987438085715679561731687255167826671512101035428384541673073879306459284505117863129468075597232085236644430328188819370441220682646145924907741723400225308870766650143984041688594804637165908896060543520128859663372915656961727904786146366668991811526895372046367140939155548290526107556095717944027440906234083376067326935640594480384151952111029827310123451432377935893841815471179513164847577015485991837427000784685164713014884542847293286501932620459505612853148891363396140987164189228481744448287536713670972701447999823633252860528006651069505136336635916180975693029592527430631442500046841696516483475666327787728975371591331506782898899133428462739062887817014792385364685353912182687036466701949240845105305620555705212053917467620278967075533708847232790846214812929744304012612558298996668494330590886081979614214692360013709173221681286610230183792314436484494270638246361966822950061724083241957085324280889529109661970570590070101755609767487148341432548036759472867527426139006180492849719182276140305966598180581506428265984800069060427527577106819631063429919208143951036117012802779473515494189035132849985774584571362376103586866009706664362725085288329878937504388966720866306749598686823893629895382065874413048898620875073936269158637938229197938487567739622521117571938153105565841340368446528151513481272794541686934795177180157118965112270152227039840484734932197220802250572886882724309521359758717902481339857290987188475047916190834026229737898991971153646164727770276809643266611216441202429735890694255183181084643769386025643017260453192380083163378552266383859780758598443253431024042831283030608270666601234585732178777125494236183564944644917651686929442815495046875795738934749596912207587575769109621887939311986531959185192075425185565847883266612201083260032401244724082326843086450912103247624480378994657448625524159232802788299901824020447746996174191717665329565102978667959672919782724422583465394095284289679911414106840841903862825727272204580460385168742753741468872000031204568258036718873919889289714363655364125359300708936395655168101132404651664169557496654120926047092669751412953052360885854053346299519370485140315228031345290551415604715124530573536405524165325929627831701775701611810438359668439678031024198256362635938240682175040675118481753334557544298356370974579378484414716103602067397125140533524937541310085511185690063016993461426498091212054203959648612811748326790178729092780168813480166151244221896248459204031021312740624960412672600907694528343197264101489357592027079042960996311852623304348395707998872364623791024968531080562879570443734287353722292712350766863968543544308092731132454824922558631451297642492372030199045820159528376282682449491793225197743256114017539306394804184154920668210139406960588823038105175834561796156937494304905711704409451614483180893249866821382549588580304592840652013741113361322009330421578167638658284614249064492580006771530557894330457643584111601455778183132663664100268008353432021520549847040270945547233654222733346849277718200330721605300126662108654726462986449950899826103591531036186836908773964263043728952202950513599387847373600592170255547406355265299367625512633075634720894406045437879455529480267758061957953155200473660064216586589350489467352230423099663916759198185232129466220174717099935340272374020239763654042892734621203837496915702969986714818930768602015060410976460373109749569209078095796883691736825104290708293468372000850047486554030737655812764272251067684761218762036720780860573626252842295564558036434971266746914544353463616434065570778823984209725795893370685113918290321984345083379296433112172609863191818818893002636351687338890179366220792542344434267142270786208422628795020802089372618283503415868235621931182937462084948727931049158053398140363391773054716319035996225995202688850644900934342177404588703809433765429213830417117764153263941976282216153056376450259382467439640134430313264596588638050974869585372458364448368876331381773578250689717793749892221601775575957013007693716727774141667279058145494233736992050824324522655527037650686209366352948571018281422302951469584050016214691303007575161633167597728836193706935144292042225200528449321849180060639314603886284827763384428279009285578636362240460292330636571624280992306204615438718321953373870326937838338413586849322819173590509297721243148447806864712609204003853795312438426767949688998917459213535803309699597547095543689306065095247023424129271924601624135563713283413850996647143148268389788811560451809797206456558377035464154120990507026324576978894974912110308283047704807168974827365169018260923665683042888752507790420919929192651943611894887442772237772694724876867143074043317956277359355402152766816664773815330825809718826037338973208132077326576029291655763371795611871650915396361885064752175177479042452367097903962003989466786724198005313845086892039551972693074495158347594844645062974545086729255656601725917697634409861255784623120339048628194688953054275836447386590273763319903919451672729597602376844090079500578673588974337338464651092132599430321666451976378257448731553526721136275031717770227259122194861876350855895737817790337969782053948364535671523464698439420031053241167168497818326965345890285082041465383209031623146204837045901806616116752789069989634994449817360486255319790457338678122256473416111274821301345812351702645153162148255128510342115113429518759655228942103932544030482000704925765675642547878304886917537241173470023327127896360408482715015037977697495810994860859861896881113363357310784621255661350310760804962235183679155443791772094803199426453464931377684892060232095521411475944617973424711967764530654050317994767969831989280753431608816223851721873312851046353831939519621114921853636375979450430040552815174830205195662330453271748875845323714972999691088002261077759471183189947202917722617141696213297690432550717930721980713338267794223645492256421482511577586687953887154269903853881158488954461549562074000484434664013988310162885878034880030107418457749159366711046965311458882275837589150039963490959824873816722450063286300781427749073133379762545496629300999147468169855658853663991301873037855995211311584847145240409565919660691083329330833912962498112390093650083628367601528732099051676897012723376798759732115609509447298142386658567883449592007420471540757713016699544607619771813222628664458226380293829114034890815298438585207787623280975866742578267151126819661504332185340383240824186526171894629550352300551276729060759676596721996401241154898979985452941717211012785246746920255531283547268925812785567438546567126381523218654982637164467471160058569735749258512287825859438228370914652322354574999882324698799163199133129904151849499956938966708824454301256686968618706589420546310638868989058488472948498492459606475321127829143709797276998766641424432179969833171257292567911928220163793883869788063008257763286503301533500322400959385949568307793798404879317035661997816545026898773448972353439068933482802776191420608847230030869599984778875556629176573989803805798499281035221779558747177983378364433334459614010167957426746941446247352071310828206174747920938932017579613795893985196632656563551694131093582459037992654430270951876037607869214011190271004106309320483818210022528449872262289075889525310717840699901758669929118764894392101396112901513653750206227425565176647666696161684211170765277867047631614204398934883655944445090239847363834924828503670390342525927034453539521918942688306537548324159190298366443787681031264927379643406431349036608370852852303832117189039509846310442661043128895110409031472797158441854588570310632568423166644714097585964893542223203084695281146583546982473142515536190560502675561256428667784203666557676339540176342102943705213458705405185179828656008358787831413150299427624889644471306691360342145712029725423446882889746572209714296006088784968700818519800055719909659757090376177501898447526129063336303943195814606909008902498057892692328320615148080009672134462218861131692125244796707761996177026081897987266465281681628017047063709962436067139547176929413438840541930959347516307990979655286834397806510798328707997457632103145147677594160000685328193880863288588970419182627722611157099955059895949352048194036578364191369896921490827292701937286482120387283235989159279303955386818535353524012102746737250052647041244274795506176420779954654534895053491249559185748476103220381778851084015993675137798977083263211786257917064473875911427685062150991752506374538204199416932206294803637897389609504817276063257842210273311133854676088500174092288598828651135351565544665659022263171812082868763356612233049036485723328100449848149899717879456697205801058824259911604196737256260182767569167205944856997854052698238247057809271532260717347872808915709384805344187783659018047677096668287342665713897988667767930411756164042395802427969326342390342169027292529739413292030521574831173208912638189355672397954499068797577860390498154179477181639967281869494269219149663997707535270806690021611622103738116349109114860615133106296622962437438813250694776999913576869466584047183659268568587811649570201870503555015827060287128718810547435974453934429797364920218604105189414097479549248025265809772815451915440941938846033466215684599418394898582508702269369372195012164259088869547686869692437101710645768402084382541451469542895994495251744468804173749485245979933221256003653806721130891701421511750005399175785515289695190082982712006643308533313594693208570131758644778400293268338226470002441566514571701707851790380201181633068112600884311225517608058656924467625689037529684859393055354643857731518849663138369641480352012735955376019230800856860346577616432969371585893048972837335017909763280896337256219711562355402192479771003120567723189330404812185588712692056246302551964749063564354946055649895760119874962064778575791320882503216731437822393585851745188456510370852466005322564789259620970736357039330945535576755798190167239230565918835605094318083842972569282480074427015208597230224545855409760558933548536248892420207430957270802237364214511679879133182198891452385744080085371510155456398317344946836466875529955527061940375410327045825406154259202955099454631217128723394222839707435915781139415873044571832229620515624841817914902321513070963945973881306038588146379283586788542206888942080156643425083426856200138258485272611779534505904952454843791867974542583350778216794170895588955088293677055866829126220217864434893123886267835118703685781767231608947924877670621172327894361035481932172801814814467560805134981994856779442431457938136323865711029547967713479890558840014302746999229202740319339417165108465336588482052474336910366316974276988318767385687360772689524190469191124407823268885444268014376741392783927763627511432471818570997341584423225248334959674437872978248787022827554821506505394737412449549085001914772403179983407307987948920661107070492223267073743906025625021697685195100803893187951954124441186154157207834655917860678510969029450659422707858248707012429638991910099732968455236812984092396193213647500286227597782951228945857649036779762530255090104192249465751571870978668756623142064173277360284412567076308370381949811963373884524106733093779292426742097126252239189230753929786173840645078309548226293714263515799086682067320932980844064854711792345069991328263711411922269244499355562364626000592801380315322408612187815420204563128318581419214593511342883103688047687306333120341663285871591478740238690041256853169511825084410641569310897660682210493045271586294056559706967527516600981266762080870581952326793570707589784005596472611300220538173977897160075498509848326151860451171356767771614868149975111065649072973781673891212701617633692388687921081040879147963136783618189586057906483846085313782601667634131448021999631794156960891025240275069976840132844755308400475802971575493971115705492470290157320750923438466087385822206569201333555746319276792258117554664183538049046705244073135430482684794523586621215339010488546692566641610043603701759366556602862442277008247493673281876492402977549760038491069560704489681012519534847473718550068672125987687941086512178136726109642986650791042555015282516536127734211358447212515282090766191004952320842083238900543977088716380814236647569842309233153235612862753428144122986350761471177709718444969367448265450433025869472631861415660477388667197161612125741249298070565042344299234556543677462775834275964031259891093517782235482160193957823988095514954514456196425592166677804250306922073620841360039204218428266360056929663339835198110825992726144705473583049868453340589569981655438991767122139910365025001668260333388317126407603243424933448981256481768978449619446572460028745065573463394502047651914830460627193312835311587283993662313457380038324593102871868132063367207218187155114228971546426457104517295334974059723843545590384930125360220316085843775187314284864634016984065579504642943921998356253402007785488285791591975436757995378504012194159591970209933727437365012966858617991409303629357574377020502626225247516887685996560955620916498084512131034796848372086849909787415347795416813372513418469908551415489958719034985385867934835316693881509494145653067600827033680737910663278601602879353255650323563323604475026436294892887508912576232926009830299082135120240157955451793599954499860187094865286538947880788649571649377365221149912801634166777178684600991247235256196161079556508459987626133892449057378108244835158676264653086057821305842882761537328019414928518601175062158318741005401082583288922724147746891362177053523422952182909593629995904474991783258142968903867529236942835468410410699527201419443939737346379003062197100520020412285857952887735109470542567567179685751808830088404327064035970478068749455724773116829598994495452531302788961573625618299311830716022673440650973988818431649044995978684550384261552548027365495343979421133029583643923740119709054384354281194601768620448023275987935088734176608595017940848958203427102320862335268688749448075141201030934613357618737503421143935459377577878248086501613986235266481661498379131134871297770855065257789814959572019016665054556256845055973331273080243929967907919473803713315103154618414227096606954772998841569342037714130721595964467315021838109913985596879252814243865876446472908998899345266223242903868769403270161471218037542771103594539235743218082643542941776266549488138226893912422292006788111725561940176498336976230638548455460393343575239415380751878953887331899728965222571411178217006257781695444303415801271257813848302088481336584732967703625945951448201199073556583106989832262738282846031476991030983892579776509388256505159533437593483284422840658149276094312696162262708574684936661528631242828131022115216133141563292135556472971310872688196628296163319793328420257194860726625396487421865736666873950316508936234408642717047732536195159196875818129514542343123178959439391594107020790812499206491551775587392545117353728973792525298126684665368564055859927466769155359892793404512435752384188416910231305815635249932214400697093050369945298528012615305134094332443207049719596303064812124585678621171125021266461150385734059447574883782294442543581119430489775664026547216665724394502707474490503717403839294462634303787993422695766646923698710444740346757814939809657962125300059596202205102227667562827858990006684914124671198210800627278989969918823351840409710088625862791492353527865801660840336508910675287643835076583213265869387674064014030950612553628479911084186561140126390138668750560958022242573375138008195530040643479908943478124126742734486296269959042065679620073551577219360555958067706317724420243333142388371304381496704187771934602718802282586704754519542363742197418215465006229572883729776266372583400438557923923117605012668356968072967417767824538022449333026111559500657345894698748440976994894108823528288826760476584177867147670223906459891997211014666615909781467787030996915933820715997196962063296466872115645934797478607692607686310157351452869219190188248693117244983584064196380567679790728144066694374718392991300900049396139360476708679128177012476920170328450540930187515668552920446446023754612755734551745401664213325509664992618241870174975036719730426771364504291482095652803243345593839653914108192930079799954263076025568903251341367177388356450820987185568896937286647845201662106259002556255045681478046758033911928566848759954889573838895814204139181342337450472541638504490549489253370316383723138933391588268938886198533028443845893863461083875337468831855736604711544363477943190259128287339091498483530658574105784186684608469130512717024009064137743931421490577215191031259593186631565264594361310465326483222023435228531983144916117090176432770170497663501730783007295307774316734981798127016876847190624808047684137010372584416107649470431563664905678804540910130607147304093774937995781932748507715169748433186672583957114643139788429118440580040809404658776156636442409738646152396569806526976941923016281052622675831197875872334460233536323773370394563150225314380789663109176465425798397595591519922134791954173891415280768214328214167127936605622700634508414695261162461372080320821486627214602004539710166047558740084198745676625061334472958731701263769206120035137809397199031178211538574046434335004458302629057881948904517141981600111298874975604073495539595581198479375847994469622953842759822192071564338030284747172291652778061793390885318417651409948793250522875987039789546450118219063212758439499299531323611375964625605078997060531969917438882421115511015831266513208405375921711276483942708093644419514386149813294092844100359476754147408867390819098887077974485013967728541638502243216355704023434294597410558451449049125394142390720184581160894500602438091948553114216092225034189353708566985811343104328393894624742436332837281142891668061464022764049594465284833929420453356916464956808106744354145590918438433539799199092840803649186714676575639394123168591885710898815403667140398208437039212023998020056481887416123436623143900047169371359880832117400432231876134021275217601007688369823050250362975788089324328380488988774070159216271715287163346270594969697938307609004272141501863113971524066855369463564481899398255758138979713816412867350610730290829529054443489798861427938406917028265580243853758752482548756421131386433947284629957863462796001275075003708578509648959065399750702232538160435502280546274614830600047430554514431664599622015571189133974771998369739207690631349535531316846828026386740809255790472392625318983587496430592400899557538613485834499412572611746405660311504332544000992805832511539243923957205916141250501173171260943262627230362559445305450717570333916708193463225262433958184231175779822917246171316829905685360975040258606879550893539177326377849136187152195407312281007698459991679473272778756996771225691814901297012146329899501182114876460269308460754760936392032044179730127020862711114299943927021039622721541325748495425057102857482449181781774553231930705088203810206492485074038378904808632497704464971709650351507284384685065460841223844076901562402621487600613265727403245364125776075854654313491580549836303007495514421205088946422021108113797977992834546060658840676128210275088841349543970398986790217688091917448753819885649725789171741722516408183816636900223417704036819217038635841403231644123309495708277839649706327068893272818615784272940679947098390624465607135736879617955715526442794728594316258406837188105764484622378276105179970998573353992595069847820116669719106524329994669032785411471815130691380015040783892427148645730353110806165950833534457345307906678541751729280869338425829008789545645338017922409632239141879858844552821054252461597701542796211321700017100039022516192962243796804484750647571555815195436907194061755099118723221910828075635436651388019104892726216401754714530550088441807569482598835753211329798581943194688763038876804334154004808108069865532975741668919616278379120500176402522726120936144753401423021101475670877939428973484747643368549971653333865735760713293007988105419821091940405137684022707893253916323926646476852437146199864626098241177416127617955659077447717942848554019874609856530384188736122481963950664572166715237644691226625939966130012003897748568708233545105242331370340414503027190537569664797503878720444629280239148755517219080502828255901016448733318213239368162648810866627434377425403049086049603615569323504828396949799430874366900243403067254510889411548523245314334294232400799083651164057616311344702414078096046582397666441618887319894400703695413877555735791542372647722652495913252468587179153228625513857339700042149315771069597618241011512734420348104983374132882860932440176372594471052176613447671612114865072547928241786387446058140766568049939126041385067074427164755200640160675562215147987037183379122316889082957586052134952197577086739261198098433697158602303060985067079849345035734361466547910630294177854237904453006521232104652914596871408521969484735663567975045932233573412452129559386161326666457375615349036089940784247540876983883430042666103122713402308002144843212410068264797016173905585571582888903546087105174924755959120912622629949889156656412717703619663914109231869511265802540834353084219447399162443843772779193212446150149051404789694378671042212249947462838823317620681677898561252952130397589820209219049572927193224735799595281821772165637089307293301145097963398269727266689946154777759360390497328177573979474322568505534772630841041366955098992133192158836985946119829434720050271069424178855776661941698649787492272627297558515011349742346904029661914113162362573694388830973527380025569781078433087209652025126399676402559386476755939066149185469428214749172252140276253387620549171628269778900450076116477002331107986822028418988364063553706944708473035399043270100073508909750718559676144290419921502375568476672717713496484255908875605732360277915433888861345291502330266770263327016152941198106648887468686949532489649686280152181305617026985460504300244487228641623987615727009408511557909319764983060039719644079359790545328697129458707798464129141925233418353958091440811324884693360450594824026107987158228980656806687513634678812597296856210549233806871321817301114669081835743266811111738787118343304531849855741948113622046325521440405166986934794545269433312749783354728556210815648530795376640353734345874681651565130634440685139474755266092046048340889231088957223590095540906377032513240709139635337695468848205907028971863477692615511338782361006982614610639341368197361516263470120922811126169203314359887308221406399247701138831350809123229267584601953618308741191562081567156179225684892563299224268343406035266938267587806792268787110330740369868846350653147372992473165285642387159135134730840156986922735400468507418671328271110923395775170824175515286784891582468096241875307158322454890129373942534775084513226297396869006642755482994334904663280736063975209516496570360856925645997419282598369847852321121341297032318562185408830982572089324198405190976069179741019175294060153968560254120682930022204819225376314133561076715216519843488248624794470831212474187700394775335900439462422554883466347155561239857882833710125965334555593767436214205778891635358317126629752614846813995299341830183687405761378598348156386504542729978121620151302729612412297076441614364549893522951715710772541093505486957445505711324699511325291285382688438693203628719848836542140450466706133059735288169107844126995173365999257034532795698624604816519018393712142134997876316662699041760370507628294778774497170757422992719903006100137028486145572314080165132741489589153165478210185674913040932670223828095240842422723476294502334352854348360833779439234460862290933058220407946948917402481276032643613784731072029380165417289279432599263121245998754865953657210307312328152465248067177822323210706159733161830677287300324936074992769388958950255801694193274809513046848134640053858611664523052892435641463410059531568486789747999512956460243259741943326618932255730714073794601856763156050604609931062944008227799607359975634791456135975530125338497345953460357263334232155043940023068328504103922722897396954169673641055746645177489507580279079690228636392370219239002981435889099177109798149484630347653428001727071267224569974131582818713407147756202925227740769158169908741508485902754902275799035518952434350784171844160232729732415753327342530463060724484673221988149415541070631313818235429709487900894469013689188233168384229046815515149912969297356573385894887075491845417478765776652235031947717535444642250445454927094686006056431217639460036139916854350456535693208729592823552668333457062012455794091856361044015557374891764236869105740035003440792994725593377053504798943808760105091729022534076836711667355663817518522549063523234110577708344195564070517045495017703499436113915733776804296026883534227258397598678561032794262582251147793071463441578804594762759777642381566729743411967698212078712221829572753526436220121229596336427476823630102696549662340440645608394097766369944178884979976986264611774192702650578576015473685624317297231433851882543537104410441455414959723926602355522870205810764900504174428878146226130034884287278746625484512659989541904773266296951765102068264158529373511093756844361755683337042768843861363560621270506896518261132491931331828267518702112883412967483415420511923267540315684163415985858960912513763859899886805214738365226324115633206579293519345487655534215496995605827736541146111141307515877287570105382673799073509387070824051565139349221764326460219773763205570829285145070982230617942554031858167650054355178134892580532026249433558683033676987492094204568852907349107109583235073425333039082506561624929699960624892642560533698011478973869262886784838816617759429840765945072771339189818521114111200408376476029752495465038527666954553412811331105226390571139207450121411506155459356545546895874658882677378442154573526510078105882697518706330138543965071212609827691628816961954759742159843872216279607287904176692730031433087091952051155151236495909385668655265528053153966853163049813369828959043722139036942160705989564354107748744026104839063259344430151995342581052388384128317263166401158670708061622075708127519355415519900027532456852383250393239911000951652392117324070777438335318450833326771069831616076541534993163677180186889306250469990355511801272445524906331250015326050469227801390813602501742907389526906359528153616873305198101459205952943766076741361318987148385597854342530748744830686170184241076460629646652848618926769882527419621933976890603636053538433166008772248951538684845637953482882920788685426759497785542557011323533495164354605891550253795064255745817176124791687353467932936563475408767565270189261149216053072336490042558982220755350494640524023318298215869531692966167411258819271199520134164362727406594889102073119748901632820906832109031703617437413448717920973788047755117390066094227267899770526004719336926726719640975631591790392268830909098090553108347108385443327273059160754913894033989945726993699858680734716832476488576202490022282268281214722010464471740309397286967932024168004059522637414360451034197227775592489473191821790591781298475955334286304893350517691871425185708659922247290726155276868761837938509305801693270304478759942821062285591007790606477084971309564168275835418882754204736729414899745769641833725162450909570454865696062865386534572306678993234598580890936745331919256921788420958654697124135926167560457721844228634421619248018854026000063717226653180770002837009853330783676100338310452638748176331075189435502178175227135061987783479436024277549094092638657799890601157122113851122425589480903787421573706242657271193827497302292530630713083348702989661274561690121708336817672487918469869780951002572781199778754521852961025342352548202723528075345205340117220268737025419003103981082320820123604509493383444899123625987275043529762498610059831566856689236970847437786096360014028806358872355092265254160944743981155507812569456232179946219597137637854051954730767598938200126517242606518330415869164018560224385405300272309284992444611671916085752048859882681770799340022203397421655400426896068603199148895726997406849093433627731540347016744492758233875542745323137021334733319724620387466558945277962699488330787132833996735585766712518102808662592632333751725046606737639200541519553610930365762552076135626077454379867846503705059737796164309416002108773833250539966687303045188826257953443844708837349515345137284718351546099151424577173933614595989842248838088881373519013002045199246694246449543709955470626578326803876891635172148613396930017937325670073779436223184220324295964091944110402256578338949460396146929777315658513387204789735269934852327676576394965826935555808570435334976000974101374682896315357836959048863752257680105357568936444394454909612878769911310385286851331795426905244374431184866003240731562556663293726495791924148910134930295790628504345259342711127118640910393267109961383394195892356456394695672880655273494343865082960558357396276551556049304227910417338646600143922590573785114746768909707625783828470264199733357337157275603829095440565934035286823482392804356561105786615414733980189364084607027391826023692609051417914455432222378218656932318521357476635921970569849276227707761871752438353601411327858092832050816750859072285029238814213769714684032316070500835547440022674108152783080713119498157407975973967467485370348542572646274608191849310561332603863816210050224953520364692054077676783459596180188844545878596125607616331639527777560318723619927399816400976088251071708815873475476238239475183110376232337923708072131481037348999393435981433054785311861073457599930092543310641405812462553045730679452193440945052474717405890394470115294278380325672028080876106967435113901640725813811007101268493648797462387562989297649540390573729584743824420403141473606084240984521142857297639079297878691139430128859018218766934460152908483578978744893534295876409012828384715321130648992902120020454117326038595836895503073774987455115953291953394831539339417469455656154208406359113808127199668863451508249276563543714506662334458476491056330875203016794210266520235417578769533751852014575664522540206873705177303849767060550216659706868644055818785311283841231298431038454121067676176488865055747372946639601291150765058023303369378909905217579611804161292959667345779791635797727146249080319680846464428689905520693273741620197902411941779863139264550443624193809075692822568255924096317543623378321543403999220304078604122840243677309549957865929699532019069049589178371680585206034804221070445014724385453094915926586730953683552772132872962101395076883482283332331270475202596081748524157979456632524618962111153023834554284377292286122464074198638382096913036092480282660644038098718351850582734470146899600539743209886240765666400870338423523023431381237390818317952016147941061946219460657246614816608251304985807827405510450925128912409429030802997906158561679939919000946364792641137812166370922372138194896209033000971954378130149410880991071090042358106564936129019778245716795263877097981093844363854928422145218949860384257779732695800436926440093271286635460937381015221441104936621685344423206101950170187714374041700923359626331283878707928136194435899341281582028984269707058194608038137456232543239768738880224848640785344697603320382759716899427270756904687802831463120971175881293257051393906349066553549421235642855908841752352000121512161658809883567762284914190608660081957907484922088637071307712822035107194003189402726311456796230263297917563869569467918756425270043142401437526439877503377925301076832924387571904520994831584113691028721768427882813867442846412105623731178751580765845871150855066900474673007777609619481858305735772827202485152797775698399589214028800138085393492789439773258029781304250474400613706838379069488930830857857152952693407514754044221790307958003291244260639426445138206125323765703586505335611068021695770717158112648377040140166925523485366835591820069631458317383110420323980479264902995764574093905744521664412743807770975260672687864935199120549548854371391184383301848973697901930265205144733111564033533299492585531193964602086826407338523705915873143379283794478152349717180991320148097200780567347681668727958441142743071461973715125946908053794515332217869691542496086732203162183246080256584226383340429069559900952846628744604239739429124269308329412364068650538326877306089366277185859855170337149248855566679135788241676931694907653212551439823881949733309014485040264946212418098930059733577015631849343912718448659256113681258422791672455878137746874640894281408202113284448750967203963840080963483182430680363751284880581725498807362645581256726530177787182124683039932153997699876992970375663082529419228602193246663380944796189370716196377380418671720479084937837595539484400419730622709350820280673561222729864612964577951779625704897883156032614719075930500753034881691513302253358233676535439630027355654184787506292415392757180179759535911747529414273313922075422044223629507999660499427513603870119427303967460888093835039430317398961252877884794301775383642011103658991335492897569860211277269011159969546360535328938312182274115780153422935468314825890642570044621197314326015338458625908801245756658215973908151196525771793136602607054597695639503653731988732577149682556849171880715854083141784968791546007136547887518752959327022368350806021738110791360508894678491163406913736798018745642093917066688751945646687631367751047636534534014653575991653282224109859520592294309428121820807705604076240113932875087129720660647337105099561065268523524719277407739361621045629406463390533216426738108205673637355300606556029091696916323642923084156654274646696537759137736446160673411361246962729668039182301760487885383955213533020263638232085097682035255265500641959459432701495938580214233488527254024479590999168285653972095129267269272391122119669569241044264402736952937845429471268354376022324861371334231187138126586433616539017568541200501597620123810147102553808985012899545690518147202074989407771907582058447557559321306200228538393616215436864853586399675777269885291526459526229225143097341548642753465604058366056995249500861007328301927808184844561584361285134927718094575432258373928003714382660410704499399603201685180942627377281264023299913702870187182845818480080158367863761143904013775812982777760369343408566065626360783000126850966171784520649933356621781080295253843930071098918834113284349401353172449029746258261971172478798879535477856735341489211839994636631199602197062451197945911284492855084627491157153802276275042782701488797350847023060410206331696321038060938198767146876088226828664273111146962288829492953400582148812481501669017263849915161260404767584076256305043636609424446530892823380028655774831493975336431553535644106811279858253112555381609468338240592690345475527043009069128236371380116479341365023617858205012483529633457368564082810924616958105795310640845346753938310626521722309940882675313045360211364843781769393624379093676720417581545758831481037638898862913786647753061847139413468385886676300225593775746989966175720862467724240493655511028977560305739894845302269203678063409567659952583963762572183526872718608848600492956293414288173851474477503777399939902527412418281961236915242656321042500029563304139494298435724782794624080684901485974001784650234029611377299842904372605522248974558502302444182540111031537034568713586387585264541150510393831660580074944171367269403261252103874354077491210454777450900737692302567071895939215044530498032404262728068521148572596359094942380478644668796715158423835183545578736181836067294718291052923679904686539294389825812967135124375580949221329743432358100918205352812820955539774103734233328984240070045844201326780883534819229755660340932338238990333992508997037049713106510736046738988639949436845769314822994796922667625483267650885179698610516262606136777257015228772248161836121615441537032869976710611004961395207413384592410975565565714772080401000895121941133361355134522164679348335506239369762570150579627918290358873504327172610541857411730878870171543567339689241031643747219874835071267792707681126259672661809541693643893220487614471918968303644825130558120358318748967095161861421293608821166473258090821262031042687637888118726350161448119575969554746230137103840523836268117376513530674584513667672206904293356129425661559927761143661201653685453144314486734301868875371015386386731086279049501730697611255008235119755153273237597340261938037462117023579393475508066898910676688060053572107673588092699893949727665946383036580179022641410177263258191905931234179280570907578095979177501974127546851939771338908655466073675001075610801376090611630648868883746332688585665391972299121419670407231245084673360595536471114620878085702903326940007199155044293773586978885870219554072790168499785086872504702616169565448146046546391984596597645262346287599703963754609924050019187105081718166199012135672326918219340286730282817471004516716447285939255359128296822715370262020372833368746981567203691305562596714744038193713076003418226028731019667548929777775450913883846657485357687613775671053578569016861028847104692109487802488162759045892111391453134688576202454427083815367804365931111520497719454535455583623949665735901028259278506882824412928876684662707557009411169627431815407125024544333267581428701004173114523045279056485326070984760077795623061212659846794388381200997442612739935701524462848046493841825988294396870795170396669617431783436705042899924071425311459609478675873474115258767152348446665987183443972248591625376347516921829768234146937253588175491579543664062362367769528396531564419961970134901981272863479879452807184063450440326434078087056532274137647117198378530165349095521249721246709553590986262461790938922063236377873474310809225509873652996082643952807442733226404490186467647303323460158643655507574948664432920746181102742886209772460619023146396047003863354040995433420471352227879711838126056513003803350429510315373513585184263178947791156743428421952068548773133113607573943513595587979461817349053838632452805882694504226460387962189416185929319480126567088552788911493772604210176768738570518676194197802342436592289923421456789127820185243685757256687175818874384065611225731131013437544073547996704506631055281885803963380347088145987484995830581410122839394629640906708693416935212362612522860211499637231423034724987913435608828936088063782435717658558108134194664508971838619336890809320515683124847536643373071655327405558381014910957028317421667044327704813047942907372645084879651041955941112430809994778667445531346550430452636181115031670991545227484430309769124534919239667763452495764401684339327775850696225132540624963245192283354275489057831181673001574054856602981739677165181050849838195854897767985035723890187277730500076055947918979152337725599179216380105964120650546366212249280024232325572091286245564507020359928667872939262292472817996662026103142031050955676159804765145212265379995796315937250434105745839922788310721076470914520390773179421817304791480350531752823521752366466059985344749200082670959691570673613827615539120188890153708889250600726370776609505375952073151953847696704520118205831972043342720021799562302848559363768955453571205745801093864877120076116270724237325532792616862399370532509466295577251281795549580255909835105936418097176971109791475534681311441597264662212873227130170016438918653278583250926813944308689794042284059383793150161526256132054543520821002263431482994163764148670560930226029388375471794263509807553208205067925836346803379407353479081879676604547588494088894321689816324880391067845699431698894106082909841880517945141960862905195677217972214891338888816468891023201059073489905785124824632882483841363746397997253824156831453416246089054001708066801293213043806415261033740412308571426111626459047111400285369289122445451994183790283211515822272683716642006749487215653780159620031868051760709711309313360766921051756562178312503730924538377987120344708270056836242179439215930698311751642043094743296052091591202686524629203232068914461162012997925378673076583928357100427183898730799181919452076721802751668197354001479033331635139642819175335804650019443509133470387903518734541020470718755590285970267110677521137056275486352149438499713893843255785379505618584778398833946497398753161695074624029514929185214641835610105134277862884727277106798626917449442226540397838237873941648178278852256556712109192895081197987330385506630661954080861567431223580767407385198786754683084612638734415636975551577303115116196250760066150162840369874149689878501462942766415196806016988875836224016794394588297633760685677409743007695148708667513624199902348807816164819939912779233893245494300353944575947821502712233727532442765528916605957814320770879782669342306040820600727904373162996318596118755621661803118062626511732062367378303058806005392580320407995865056008425172227264241838948499932208110780335117227478558625091819467071363829257449380303748782956616071639737659143491961695676132812998289801563448298578786180556118203426428590082470017098472862469534470657252976086209495715459459334991945751771174469456597607147599203390857611506136737015610966255613746989389971588531639267924508192188782100206705547945902078972460545944673318031544097969516397023472734129548492505241531978156011299603347535100966933973456045855741434766959412518339871297487076659438476989567238427081232243776264077344238701149434523077897404241491088578671404494669220137949319839709829765868033524844868909246107883647655389073922950375630475151909033078726661763278243366297238699742426574560415812139429076779533373175936661551811171894348536388170591086413054355811616105383574972578601702258835459311693524149471108281495708758675636336573978935083804610803497039245970594299024245244040602171058925461101747813393038061421396637425556011434915269586920626436526461982344342006572178164357453691928678459520023594468670634395084066137358163467412735134409410261212664830392323374292113583062325747339432125248443738174396606965040757399038238428370917398605117517348972781423434562489489825098336388550761026587703764898381175544745124753427804038490327239051709381466417854811931396396157356168211205704035907315569029181969967521035073408432912957991080413829779240551528601169079318906808759963230917473460323862382759209488335121812356106706579754534497187280814648720410826141385427915410070070278834301975541697093943408165548086845962291006084455275044007871931666954012720621665505065692235856390411403341756286685217849172972394582192960099291897144872573296600384742452838748735061078881650963296438185903167380858599655402243666723259120226785556594137745520349175962351619526986791443282154901344109304679896147193147764105337054693293691254603329223357227770375496322895553705454914579399484269325177693350193532579589052053648387515322861662980256902236239849825816161658330333617664019069277147998906713364313151459863390305992148871673355615230740699974468179883304753714041775932040027039668333400863968181818291199483542685767381531418605214704281761291902517859535941650319652983288275911802216610443520905244251588411730887004819905015854580638462940700494508218718359390075392183493251467240113877500129039977277090829046828369764454577197626339001690158249300180867813215315266814114927207321153963722935695811213636667558497393119118242001371256092602439754617264167583629299559556524707266474242921859428079102527015142641767021838368575255474524756513879900070747387233234482772474675009728549860521221949755671776505286804852607405253717650890001198468511702092110715464544656074186040755906751984561550236259537330537473099903500172270264746724952753985526111664272974481949990674755529086597160369744117793499491506788174969829082112077331195816486830207081939132725710292105948070071768217655061235795532104154746725718570648297840706801822964003845479212546870011552086976175017496628971444505969735917764194194777443070509765929269471042313640845187931931437734824313274422881082105376140052967424849727732029213038321858267408683608288940643657247335436138650062763977827551916261730690546193493860622110808294074188041676322637768477150413110364512068917604124529544257544502331721939836252161744489009526578585357256403152875354426598362780390724830759575818245240878155544054361154093796947092567346058283796875245284576735972921502624214894746887768160370048633735804099605513205671557954804093859693557561014859023372849932419655520418077869860169799469865603230054356472579683844347844218267646181319806406633244001271224232875082519330258133181440625372293009197243781347788975030216809961186458461373027391454824245000223105197601723024591788028218701144658523098528067075776489310638159027101411817897979882692151524973867666400542539810675676155572433231198184442034306844509807270446120026694726922637953162762083900021288953203492898129993263689591855122881773515818216043501952904071474608405366661403503208843159250228400700870819689759843046951639429425197015233765954153788837646122915941540309702905821327521852412956025644789118963393762150963232543474587859321222022035668882928434901786029202034246159424583488247713705822464364102182689361184451379453737180097228546081029721058970677960014781515294298306907535042965441745334288503310505759600423454366921785120792959596540401065210470627382999283792239527512844200681231310995501378182056181652753312543023948420107834977538831627020863047009853265292666366877654603982828219863971157948200168715036432838752064951095166543723510606514904024986085330881421188446447382488757348050711955854663639409697864634301905537438539596679135317901103833301021878913871263611578092383835578106075209153085070914314951538100256661295747174797480974228674579884687566852419212049754691345368357221504382234539076325498909840595553882790643896442032611081107923106299725984191467578832965015853583980486977620059722863018577816836153397500002374418588179218867135688551323237481067690857982716626766615078651654164318970426505790002358936927300391249585327706432274716217433486626709120667790018637202463255254556742427486980112575843074658718230420803756904926267830337495983370637652702080596411003889593415328028910063299413894049829317599772571818170258940508282981148757149867356365086886109079954294737700696147461553563949326122486793957727126441178010090204788588793064289036412963580313978884412682895860999822291420288621113434332387880363213360120846200749822139318454424952314874309265429446301028538843811650086962493339928986060346940533265663962983188872796520921289405748779979107277247058552782500120877868501937093710308582883096302796807638070889405174754780832262884207534074889225597045334414951496498877710108961936716779072744866424448981422951291020270691482315488604745705013360501970103364404843411691823465223198373150231076892037350311391599753579360634697460063054378792082244335943009370679074370831620374584126843931609682355785166828579920466014346204630234965115530726654263765238585344995414074132253027729000998633079824062756937697349313836181018392695555952237254905526000878950262311401159002920917580891636677991718096556038660677705145480134078237149920503295250760422266422515581744185262066877115031077917000116322965833921339662548615824039865428149456179177614342015611208076907944979683400463379148891203681774870653513748012933814972369325213026721469359245308305883215092509091077553176613775473037152243551822145083432256212444349997961710893995812461201493458426451433279800916745719439850862761412491895632208681958490669231607057662254815067920749360547370876803780696492721357855539553820485811668482479172274343164998340950815332580691865387872614604034557884603236621263210897404275362166239671682908720049883586964049484552568323669303137075493681453240556622351606312306759360355363976312176395991067352866736225999555914580407300539303007947084548865197876389851080909783764667481746159752016701449198049297875791858196777137648717002238950350941301948488091030171207904692440332178907475422358574499484580228742390617883873379050436579657322145350687712854463827766769929322399159609413709554261567184741567463052465723962527816405151334520637138669142253853468805224117260964865737867237231495546803202177162531244964884705643054155452699586632709305646964185694941430562422638857959234408363630917095734880860996297064897135617648348011236851354431877738531671866299490582069677062236364983366646605304073965474492159499071684020727294237584999319604954676459345126003058802760770431825673350706421545724821792636909531706636119206030431490084971374091088040210043080400450093684871921030445252509913171931053785279126363387653627599058242920965215351859981084002446847552440131162496117368223207057673659668242039523464254043931086078582507529851691205598683527290281925897121458344515572490116764044568878325004701130797503670903238655419067705040916883099789976724030567201435399044094986010849936497516207012005484830123449729731337884802461394188523510559164650722017936694588188042152657366232231667605082467319553462041115415614788424571751465623587409589356224491744696538743438584339884805414330163754295695417311652759808798387822198425640003568295200255822301571828391949305491432498741652716722263359981793996197463421400911742618175607200569740393544371897980415045311022102133140705203978814359892951344450138983429509132250938593535734418724169242548661831541770316272811151939565030099516408767244828722456261910739585982160865046003378080160360079309266047930758717568262399868093297013086711542314596803442402997088268464861406929218041733828810953563890909739834903853787952300529594686078403185838096710803299336092972456618074185698280156952277443688053999410097596650725904547898789577600694335975301967390421324297445864756616669553707585295773743569542126895100419165736063887632322646774695675585793100785277540090262900102327212458565646040463697439126954210907812155821212735670259000027573566116292895288617471659807572891709030687675361152841455599900673280355702011153297348447788067467702730570896326706168561486178788558847720727238626852959115943961325348451801447527622930543782756792224258063438026248879864409311063565041865844879912611727644950723400781381415158687182596763168425496222113882519015055726120373913882172653852257713247457381031553188427160309377403902798730188766079728407185259800739547962405696407692907583873307859567058252449179869401734399758052141121044966508791038748289584925460550861871506535805234605456093845780714990788963315793729382425118678359225974400287325707696363431219469205105772162268068611642648421149940061435874221985903171555772806795718242601979865282924283397685059590509194378423615657705827986520579807617113981612327914587849037999234239419211765255401881612654632768245273121621154261394355360197858272091486937528556234808446483876278000584945524548894196141091111747092241622321484739788945824883202091311280185759750440115322062783640257282952510183672482302994942267123984350900931242108780419391926021944645700913832957429669192274724769828314670963419685902663037413205694324619432817129083121395697492403994637610139583683731100994062068685534258628425372521919571806501935488244379528966892621153615164912533668810433824788443567044856818391357743002174022748913257306491407251322456515256879280472277470613857603832657992726896116814342064963350915844675604694197899706033788075551298636507359771469700105615099009551964916677032607289940623599641982679106178259151670870710570305363796090559142470173578659419398125306916345846960342046729418894793790327795558479198795221567892360497265590939361523113063336717721739572528311841602779873824306586589036369229549408992905574668396540933193474872882593344632746666218576515461903506070498989891601549278490203860703401926405933333104799772159543061885377257583902767352623552380407876758034672363567249064758875002154366243118931426220178741257139178190079008858122907759996667992673519835919160734399372077807472697820790459329249323545804007987626018019166705437813166618453107097327766351234534500797563396720729429889356969916274930081533506730350231807547095713131260984912213251135947629622739813628199277534437297176010106573877276950150540740299707942399368053280969828171541967087507781526244429216181853040517446997958211483977643304757785644469040480703284403459750745518726863722118855185134812208439279472774031785144256788350946353784297536634556251276683808025191549926041702178038673481464954609217935269956069628744893316277571395688314552975031188980945430514477824056973864728404262308321907703953688154890179494592597746260808372901653568926852566548134143721229270821427533836863859188667870543409673876965632825055802749637605714428529682266511436082537802619935765204014774305062927480708453052909699726982546658922127215466970266539143678726533978116551616307391510624604288389080869681391073195659133220886032797115958896505558480298646268921303381058239240700621264435473037317476163855423656574741359394122194015914138794401766927175865836082162561317095257580638034457852749714715038425727627890893035556547632314503196538883033545447029592805216359659381088179989484526845828472304193505471295318031250898455915209701868078761354084793062298572135214924400707215913645390189389901680009025639186918230570040408328556307875753432633452676815826949647547569860188247942099549527630553147963242488793197727698443822080461132686720302633868001704654007698173241589492222338855646683050651938330588827705480526852062074777350292078473264201037000444496298274747149585846131558257070257469841430806815378514022630621944738069244179715584359050199854732706032979490906535704404810493131886911284395383543067466569667836578270541240551180982304626565406176497376596007658146318360066930309798408515461519162540609312738244005178649521737566275542563674783163617447072993246222771652618748603398929076836692081988580782460680020715749490675876896613030048120615998642145992139744717791401811441887128035446722640241557129165361585241388427934904121386019235229087062484997923795619227309384565251598860528866347791763419246458477265961535896838014682539295980806453924423136840095064655763260251684572871574513575793447081476510791307950231324830103262977091537903320127170839752083958369855014292213291302133173735805713370572955209342472221116162231600575788151985747924339303098188297479555928478441086806449878129853143520093886726237697251948978914397456305707216237934213537448687411421168916264761520062061599118669400175973735087885435910537522291766518887966162834104523170013505503534782096036026688737811947559386963278499798165174143967074423111344676218419694171192754670404207295163517353531530143074015829962531970368681692298616086838113003748712338567412130706592870701253590442799600361765042671078773527972212496546454821162409459031560483554180272399318276153274824260312189791377990535586461492907764314441178198052354513696353440801186723240401043139630307367625621555505997819720822104299143568644256375718569419266535492959685093118747524492928047605436998721350675564894813211315769423018543123585349613869464061044700138526661429792544600817972081869829903676124249007811546148573455642602964146850913500201590721150519093143483568237286015252232171219561069591844183185933672998201931184112259414440592323828961948064367616348871260959902530728792606407734487836833474426510956185535371287818525700780485122672805330427695016100922201095653637367198332734405202650320924082982116492403436502454789736096983275374902811387051324809696290484876942082270849995738781230705705453142508864419141878088626724469012012758442637453124753457269582857134207862124154018354419666855551743996626984218932782750202365647346581019692290046774335688386777507310127090685903476211434875030094328104852873384521590094616937439902446735639858030443172261295622836474263853130126985208034666838148713093349998164555027403794801361890886425534035059747119654566601441006768110569395616043423514090129734843660105107396923721481747153768159389473490147514150646679592252667241369146742975623439852671886521187965981229565385637885642907305622096409099222399718963427742061813426372109674044704764438871995644059833542655906614468034311712448846148620642351526007257157106203852587307490575937273015926158594300404615816258592608391160221544855454432385902265008700618433097072618613455169331027817531037870348412373556327328744334723730895033275047910561816984455657717735841938621680252375943036202378165139176046433808466919514955458715435642926188558871138321951686176248486107889127872691442428234643799028123737726907334236967870895711743260340126777735266421410959821811106337607077179493043816022041582451828284785464533673981525712860317302606846764565477463513759135268922648792788891828106570731550832409563919180458188071378760685070201993133546860182319960167040567212089296473789347189223269514020963007063799652789341459192839049210567698265026838847998531673973733257240841807998293739242241725561809284222627174760339548991041166863779607030907551941864444788075497538261886164654583967141221271698122498486975491301953339726892230799003539192771484690194277475203821935660528808126153182802681373934693994937504219121027843875171526786929396542187835998642827192711753014315970527303314384176177298635464937484862187641214958510622493170782854972639658771640751068379405752654847108009127643313591406361196586765944397713257575589968544136339882667115715486844488408364824515578572406499400252421643654446914195091847203559353994837675000180064647625365097318329901447929428892922224116876948947467372488915616348021607706270944690559496628551729173418514001549753366843678822887544554657339917005963616947613493217638321417557891073203200081751939686085977735467687216808981683526308193598947332060859151015549889271995948516223601800926649408116236638597115295074119712993223942719115722658126005299644885832045451850043697847136787516599890551466310112633438018907824065467255570272185619788265306969269142645443160967874437729789745872908755138187102195088524420968356517547102585736581396468783457496220408170640364698307177990099541325022042001325896659660652295334100026347044658049176305312950750179827569937216145141529747952866659215501132913077784763608922365845016849944328292207255284658136234095987008117565080018006133316899459947331911618464781652728918140483180514510878637504302164077341053985157175952065896404371511067213263950633380126721625306513449689821405935811779924813143013118865774568034399876908024285049865365305904846052261665287873515287183994098629416782253560808884363824774679687694746301355298886994731720369165731226548016009551070070869933938305195183575519743677439504768911166450402147281910105647742785312770145580571244920798600626940342886344874145282297630596140853961378443277250795604362001975135481323795925404672928365163482450329588170050876948497328289902631366192001502635686589429617694272433064852421560724567763147039582227206529897553814374719128248001406770946111924838416049834868649809552521216436566763572991941215912186121231326978071255998841267135486250504121841149209187318162867443878804411087437211358447322463060300972461871419708378909665432572597200725951279491662773938244682002665081180737106174161169309163670293306080962972142398934830992904102099027070214097978378153427202980671264407536175078298719316171269433137814565104421394594842991333501513966897069169943643743789483976921306483027171124541159581842702431015767904759277515836575275082353210901869007951265523072074373775124615071570673767439107267160213480481642375979121776629566825143284048446672370933960853189552396914660516753497881290416648773773141013804929344266118724492486458896737468420075760716439151705710155253490055632510725186018072539589493975797163014044346674991992766426706697062315423733790057705155221525792870489291398652312102327360206611976507374941114066275534090430266815172370305107172540266197108421260748080495246455565641774022119953389461634043595136948213629399290801553736530697319831709107655023739772931747598067770734668572577840041594710445315744812763869902293293178252475234594125322972310068496623798657434721538186591717291610386486705322248968192065798536061829491357170405866042626255956694737332713404443074179015120287230882601386300269286425223094126230882590186199918653420829566014362934611901719954138120171987012947865148619833123627998370084368352644541981156986621081357236613581092092545923893807834171947960936801972112439377687023927787173214789883659356994679810584315225524815310846752563470898914777909971022500838277124198697731193963804525032550386079355727624163392900244089984882039584191040877302481184635768160182393639845312718440872835103424287827347770072225103308468471216392247157731078952435519823307436407510787151319716403018204127649256732805381349871751789290074269561856611913180138261104149844513265018229625381953394506519262110470687749918060469958853344471458732658126096381810818298276463823989674426792553886486637364689133960583808122372006752118345813655690189687786554496663931412321300686600555776740834888724041443375755134639706915900092892898592889362595859509166137509000033383862792782548913808477925599416183794813739214650518561864386452460660431411804739872045563063048895631062897601854923547861672357893175218484957928888522542079462325446846756352427765518144866560820269433506743121111124990158914473229417388690879991225181048621248561436565373559918895593506558879142261927026269761365306148560943794036447961551791612519719176769549771902771917358031791291747910471910935343324606327568995756094428848677537072996737457089976179011050175131367971580476263908329104543797049253712385117342520122249289850753267083156147806601909890829657971328914649827825291609846722860515548254650652719930882451051328419796966077748805131163038628010554360339545258100726644086076299697672672619039451496337550365387612296154535948427953048880545248249185582328392952100605041233110343269930761321966293561098557072968991248287807113296761399289244316993080002377714382937717379819820395091923840385288050451308593735985713459192723668474877428672634097321588938781002510219826880019336326148090740092140555964307676867097683267128650888237872454917526732834625800710076090517577408275062744241249388274476578610449760692647814083688162870486708467502275383358113962007665963971466621139504425595531349830458414825266552196491888803116286002008812868825838479961869675162023632307722202131604084569248785372280196592030296768716175939273541765410380651023236027888492534820825485014239291451254968614877486837556663655290187060508212674563492279118484183444934203811933350906518968296236356821545375857272239905258923556512803877430456845062205162586226074702876678591065616469174158328635709463413549929813046530225370170320669791132481562737915912584356095381523739921274275934949783822303970175564501571392060584223005530314009221851871508993387283312966529001136409085470167074185807657453268903429006544357539650437902873805407446538076561653095040575247971658297498525427369251810963068844495279370930956653745670427145434364516581592895849464871859409357975679007489156309344316958170999690927059611792862061085003944728260186426964197434136653688895467042478590388662111191838346622029080392167232160154522719601813548957943270087188402817189239082597551358081366753036562724655215209615222431905577861420294371348752221744498410036362233911130240325424844773926357006863653245068285762422562189793506144840110977494911878052889734622833068830209032122211930475440670421809411947232710851801257995423023245233649428007928865727724008112225104114184301537147116211726696828900251654129267366411434585176916845107717386486395037698509797589323915018612473504195669246248697879933988004753296267393817280300224357235613176068143618402504084515892072657903321921085756712517801921871565553423548148344889968431061209725193099665578501295967609157731888686375536462124776257161195277520631265522059737077109767060006916421133870478542426441446763402271386857728865046448919326804497864643610229654535653695377361194814724449832176211878078297883532339513091412884199949255765961080717042138973201249993059612557045141831245356484509219397743235213896679366404951811140636884338788068836130943320558831071651871853049722991608753061525135791045952616247706707313101912442605322823953911525044971621813726085925829989319026444090114572637900264290012100439115041188157771115738538588885249160498789035777940809510789021217754638994990955669346331168550771617131201168941797735028262306022343645552081237532690716037857846556782495256341176642106756491110774644348948999048634846986845165016242636839800720376063790927413901058623693474485396219349350456217829530086060138446511541597807953651916990194184827563677923411897820193416474853986534997269206867010289393472994852896115640836435293902088943540675409778051608533496195496533331697159457454618297184399295721511924976764809127152062247651908624455568013560148278441000472329239414651540837931902057686142215135875679826250224114459019562377116354545557656163171894237151380907524766667947605068563276823826703086512481133475716936688031603755632976424745688877389196165834239558539760335047684570529954752695640849548299641828040782557708631051308534071584812417807999561696747172750344633697266229830755855867177658276400587336990678712541406449921169371578320227349037247790615467218108825673143567191842933134867404982261069056456076974749304934881661457256613351686385368287933464086916464303478432908148306122854170783736929371982217978856845341814981087135251705982469511278574746446920930036226686322125560275856267399697852539198134127345886572676030958476290525690783309343764934357640578216562574851297678411820080884124230512258202933272889842323920605903187018028164843005185950925837309657189170986068651726699504508318982010620533731722440698986706568682382957262375474348614340530440652540279878263224216633433601498356248229675905658540480095481617804084794522227666166563172626482189185644046328956933602301881052588250427444921745552874899363030014171040938581568079205641659400033254389552048285485706261358869644354100609044772723884515637239470211748532167734873450574097392988550049486908895416752768998059662376350363228650371642889301921339012093918569695256120366850374299617244760022101914184218654776146768492348708717395385223882315253470339079957348778445431651214605227478369051430762067919802767474988763400549525492491668578555462830105703414296743405717595488818992414676315368276772825463094851572697680144523430281142356222895846448950799248226239097756965642560123637844111201197988827151109688778699628449412517827684197394443205218712271375545246211212630305434090607228818566868979287898723062470569716506146861875998930588211387155267685041082920130257024418233759678431245408328257805614114972172156021997104430629213993289487679116299869044985396452044306714298861697184154361279239344685768847013466708306057192189789786108327168741727336140055094343899512747968727770210661043701719813230900819909374638847174827514146882094564727243266165561492242452516675855677128415088107149213485799864749369438622481696382425847894936545756078104090319738606749445366768011182387867310020772047344544086207766967052910428916663086589511989333124892979049139454488864671326622031376268021604349353924855026528492745482953884767604826955834200483721432812685617326290199118241180725602208336111617960823366770731593500102741495457637680379305106633493001988620715205712295379738395497754830554670810844993949726903790050163173320446858983649118587090618561094145853292767632450097367307320371777113114313076824614550144674941176535092196975254341565171971866622802597909545821211483659291470810484219177358796092379892343513664362217652687703723242579893746344246840235984341233011141851139297426766990057590552925464134015328319835310256205894109302935832147018580310068765757070679859175447948596639768488014818583193680544274455051851807006335194832182845782728972839298222475626594629544906799129724487474381809484786515011174649633177650434992795370039041909649331001135110588891856993812306523747099627339691995594315294642733455706200125599898303308978953828536654897381633571216212500097740977558407998990682385701954871760110184851582916680611369206195740071605428465541831191758770084852733239806308907115706775042180108073608904516376396994143393424716293412901702392682623013522856006712527696396303853743428433673166081911969239652860508802285653039834200059731324998993218190900070272382927853623095742244394511118625411797364040718548815452408193686205118363512369828929768962025123133568784029725483943673098023577116829262056978936008586394602558977765789830254321384877347708929635477324244894591282052545211778487250711420949220292111100008255943495320455924703078767370215501009859635217036677706067222877148772667352318828707054150722610218486289813893884801961545390761529353567915800698469401517901207706921361663008026722493578337677230149200901411413632658728974953372252090044233639933788669261748888995074538989353677298567221029231312468356588431010648544427402557737473572031756874485497409026522625764551692675667382491933967865841580906433319842117856650198945847487172398009632041189196101902356126808835338915033217599463378960612921390838939783441269971919923291622190775095545883777482638192814189661810217167002379304824746529585099301633769829540723634636945493655823830504495571112633218782847083870668142345371458781585449903033697892848056750525998813954310020599205594539961686117349252883320957322118423884746288044085406449208421414659031220042865991567244939186851157970366325697689475128745205093224131016768539067835263721033629423986158024441290028921571804201814225484613720798429040038541944880096960716674985272741920487259052024708951390580115567478005524172060514911826336767451582898515319374830607835220973014117257331103382703221703001617379173640277400592272779997180336398745625613191659771416621978747969820351995641987218690322745073008431221158002377907006287529867802399204920624418804603224891333041309850142797584834153115422604673527032411462394199195369832603331056382509419893914458308423240471831464252197088542576756114709528413837329917638016612730342383668150580398992179694584373938254620380903681829970906350345748493556803006774289563071791495949134184155509326968656458765361258633088122850910080520722594582432091187884057614112287916638548131928907079655449960502775551821036065685988670932011216149815762003971298113960254659704383150837505122185541025908769804714106089981141854388813943504802942666933956465087373454588041610154291479664579683413974481320002975894698287056680845239551763791079520065798255541431683013436396664712906660410854074343410800307873652077136716823035773743600286545876054352760673546367765536828057352747547982903921450086253023258428858943365050285877475174026115632444821011864861347375632565803404132678652966714457884390707536661074995627433394663783919319647085171553854800420849019165039722813504660492044192221617178575179969778628049846611720000477132414961998308578316148972519804127593453587540172007489100257652317420399501355274244267009256935250379106498931801146488399835352476994271498141159325086938146906784530774731262291231018308798720528700764619482051737147003432949347480646788501417820694532078189211422813149936042331066787552839494510056287626070376381191994630374837973194172417347157892871883864935915540468731913392816336746754099505676031063935566508292961890809476357560784883218990984399012691474613954302501238095849833607331230019410803883283645991577322723183926303896343505660295397919767653301504282355809476656783939449063960455847910949574922695277540192721721894057959750931299738690814784497366116758776258954971191547371067313531075662694675148198928527661829354700639551711023882608888624347845106955363070910732578305722950458787370356315886914459260188325172393722683743241932172882899444317896577847827781975865489701158568470882692314736236329172810521791803872137014463750720536309907667367659508226799145512669088897716735015965744420023535293272925123023941749101802846125505268585187637313957520512210652318002342410207508724813886271711461278459458500201538220515019723169800076663591614326638552510860413636237412027668424867863698206394638474995315802665179068647987847990389145583232833755071379538046784162855114910853482216184055590343919170974734682474217070869561341987512025256045611678133806267628021258392396058607603717331968401493848235466976859942978349875078794604741821629218547088535039994994134452382737645517105514020577728370039023531661732395177352496509587112277444543666877993974297376468718173016424513811025901788866754306958517612472141608426470359934707453436239079626695079272443700178275119856836859399389489594356100447380346799922953293416886752605797868582205945679045491960442436772925171776946565779133909401264940766440651669310480218775275772734966703925429421686070053241582376680112945609303800348312838579512519820636608304250881325691939859769921228678426531121204612815194074889249694936286522417524096279370537609959189015661460964714760042642123707864215821630740520748883077382241230380174161740918968348969260260728185567089279665290516927319735523665340758107514179172904979174355524619287321665465332595733348025107257446112457405811731411885962082015757280686420192771422377425486499389725870070037071897171641903967716600756755758374658173678057523857275623561729209204251429039968486672453408261084042784639420823255333108503010615849274971531676108133968379040300701302022405751095539179669401755953381189473646544853294860279842844462909395960054859950572853839778483897449148251417683515169961351840319226531122167947538288636700170257912263134486024116086079429626129227652783239459517365245260114415441677693747208849217907264277920311907898938726394917207398925395680632829795866865459249754708393984020743822133794793838630027498994935160488995930651773575304855930968686977706792770686702610204357535863769812812491518549714607421629521605139431955909605278360644898119872557293133696531948973504028872711352907388185657993448240825666828326346330448873338419132535496424118373242397623083650746258318995957639663172732282594420789812087389212746040445247761946505022114145203216061047423091537794402246460002163497756870099454449750865536854890975332907692436271438615822874350807205602816307207492436032295773028455179287271452627552313443792884973679852311046129207675351988183464930438266469934143119102457248517631649115251995309114651369647649657769204692209987391743370683787840821723650899198172050960200795670457141166350395386255566479444929947985066599156084343551255644645244768514999778584354204544649997065002799623244975455973316438328248998855662375228087725255652795115637915499361746929638364291240233088859001168323042688958132191865780615904874606317258095875282393907872906517732749522944698377858233557938544959148781339700280359159639708794608751482867239628500442709934320561816930253361109316307642280356150287037219363976852304692592706744571112843367353978135535647840588694782841349872632210453650880067196892011466769053299114397290198937641751287121721034392738883437833376230375314281517153190909147013237599784361153023895686151627181681348748371756781372210341467263998560784040607513999268965609933147255241157408978616174005978902920881207495631379206075423530965493562005833516071742512677701668449036987017142308071354971421676231782881591103217566059318752398820832823213079488697107653104181296180107685085342825383410177288352682345196576814823219239343445161533254435714825095188666503651657863121992583471560008120792073017059977840477470283408633107904475943916163539053376988986929427946019701502421625837999204923459789890306730778267898213061840713041357630020196222521383747682337969534734478175743856752405043930164890260230073217923177894426687874041558254423453964126023524019555622875780349774222594733318857033231236612710886486217867205281570563368922690641697328947315971858281352021425124001739373608186614302161288172080912722460155326615668713645079380835431997328907533960238010939786864969912512227628997025102404698216792949361263775576661543079441440810893744008961683298595887956515409972384690386001191935292179091588897417931697106674833087225892177158924192263655304985944994308129365224000158524269160298444286380177530569497594850534029749714769121657831803786373084865111916395924595376590407956125809241487753583876401554286365898334971667289112243560048013174751259383739324730470645063083728220938313192269350951839806147719139295423469312712080532620035713567837689012211622246747700869479039143531186351440836522525987904104737645322369661279602042674903113532988656233818011897912405205721441914452817342122144763637859498004576494182906714814188076460784118632948924036077004483252847408773622698354844775427598958714915422341397215043014224672782645999849910425301022328051540999250034302724995202701034313968066291929640995461910594801896970659837895704483019185490639742405617582128055420306712161073434829399641542091159268446191194996284474836681280442318119864939931723002825964696991958372761486426516933678495282793852078382704198209633273945813916476835423125786615278776985792111206373540688627873936643735068004172666018944803196747423128251598374309396208361922153843989806282337252019780525199463469983349715443104488988027137846896772730076903957775689137326885686613706770314623831182134881665037483972481513081146661627004535538994352585982250626185138848515749250784563917237892695584928651447625208223738903117957818989482635607504428708440329957887261847992657754691720670090703572428420091861895895028645904471342332233913201121349480836006658311393936255141202659643816983826249147282870916069446349949677599209999004266877796071818880677128887185659872149205431178618196043711721435247738511634202640444526521770982888838670432074735276879362052497875635479241312521275934223909458377812546580117328865024082214656004482914981710638130325427399094607900449422740595433381931827015293200888342543339719012947098436066088995278154249883750956905367794027018831514920771304654757411831381069006411385112123230535860811321518052390708835804289202275219064456672991364744290798473844188513710552595424654766971346325821262194465211814068806254297923562970843885126563291912517158148552772405094328500973009137297845029318808139318489061523063576565402925840874864468060394594533040901232253796791967087154086775504451788155587112824183749833869031563164941758309489859848726847611733725466442862150542825276777073323106976546536480790299977726244320426285741123341947316173863027613866411549066889165922524076457210433380732806111821922513858435740271752401657980528672445722359510495876520223408875435666527428605758318553977334376162562796842308054420933304109469376084284385399465402049234574317451111655254698514081419146319854912163879575281975737395626854079834262586301089010957560776087195154270849962240025135879082241712056409735144709718187835326747484142881806277937423109341662613072073221492002380126403354593985319689930036343967180739486368312191950960463603686440368465088953124129873045406724029614022599104839940549269210973268904225359780720822885125791621199185486270427083440283233303933659302198602174201523663038888843225603540942973157527167476559654933004975698737928550828846500124952808858768981744894113100807522383644749414413092502105440326699699059248544170695465451667413558373538439442707760394492735817640653149019307636713940550839650441001738204238889332238672688166725512889055477967709595447600008273680092511980451803966446655049670462514179704283138629036462847590167760083836627112843560234801026699650835417376363756000951458971051276796279692673413767756699128366808840801873677681397241881652886337019638491343581084546715287567087288787855734292896083999871811159768979908502037827737241914307058946167312310146464360273981256446443283157331249394999962709388013379500650109190419573714502003951191409303009696930720857956545541564268506812181991584370370111769398026358441669664931762920145125362618876380795087366989257830112165929714825447116868981465298784651089648155346762429027218231254585451165999302041719673723533757273587241368009047559488675684587530985498237505712768829530251165914801434068264640052475651778954580103909765120140130182028543512888010975439792783871213593911124008680392872102300644591735839992091818586128543701350829107363048670983696380390364148057196504273609811238354110566352068522636651942280648560576389338069948470665218157164664138369015450984248252006334816618165489444856195489486890857269879111367554018317121427238737626602197908143626325891382010937474243104371896994890628075523427436744335667191994920222279074192848000254243321967901724621746611425165845238369376691628010766996069446461995207675004723003196940067862004141564713598283405465785450843313989714944109088258974788497696724842170042617122423342559299217038213211336800763222280230461115671372749561324729624137503585706473845832732738494272908518309557949574681519305068147203932976223976530739485334840159530333761217512238198550096429204241718961482637148233895925994725538331324628472031699970723181138976612753480681534005421749476079534337007391148147625220764712825905510170965331308782458665088196555528308810031191141317656280540533110783686329141341716509060707941915520564322716389156399437983727917035968522754054561791617026980941834417416993645059084886753943924438480932253752739859167237989748287104634275112472582836398637616266041414126626493920433712884347617043421823851627019424818037710694152215904687325044938878517638388532935601085657625200060304285058335747850936723842235181788595296893947238958478794712442821405025950210614284921472214010947256108064705608064305716090396979930640227421379415223744880326235741257888794848929478256192284275951980652513573459687961983596681544461925469193003565221507314696018084170237794588837120853175065358451756666368897853374525437605303045856627338744436311840433202333580304374114595742398186664249883618549591200143497643276710204162913678445126554733433740467351676411069820061321395867058268823728557568460755844651818609505083155430355785657481604902408022245086968920344027050097379499334054503468588827216400739565356485744430491499207427644465921929636845621315144694320638375088424805243623472490511046442858501753836553532625852064588140427178541197282732323353563474125426398018202941975267234382593740296403435447868635979594617425894297133602164936866385183185763024796023779074778110119822194842942654010327759535293538149187506271794235829424707453553985525875429450211473875534425685070688333478834305589147372551960480263727111700080296402257456117620546108740211955782687534967111465512767478200376676094467629783694025180788033176351389350685772883852351237872354733141888149788202970086050087734212904127157100687890965562421892717062819861956035511781381107051066504443802517021692576915542361079912000350541030385506254682121969049514065847260965058812981577675612234819294524650496421094400343806048419103674897572669612417104997668075772236983938838562792135303732042362718661439923574269449834913569408649146556161971939833242791209722457240516306582662125430792314908531872219775892924447767006194197360254864889860650848194858769220609843672670450518081991152640940353368012037074524234425605512627448731224677665295181495986301647120859813733863100604249649594977605101676841481155579368478405237413936927034955305052091795182730376766335693984627134044510397997447090493000023442178961344996045129498386251570290736449201797034610688127823313407788444327601844912230921635969096120828743569064402919676823778556120889482397085040909499076466601036903709632298232209432055758831522540880725931779860359204477437531837700505412164450259172375326981718240320000864580909761451601109778452420058061405961126869112980132126221151064681229699124093908869439048399582623283488877338089341740220901048912070322493358739164727071591326999474411046678517669428453084170913829248743282115436301304044823406386794563289941168280265468310700761840725926674933446123414897667984245780238561446444399543494586000670445424798842340845190933647400340760964410582874869573093482423877807139117397258230826477324334802850017516933252834922973556452913987748294759174059275658806788993950447134918254406710440821661068885213837696629685330920655371298717903809586029649021950504605384097138745816659982158913010889688214264139112616532258052665547614174979377337575701279897975345870459839793926423095355247985911177040469336231342071322740428466454086027503771132718767505393162889548552226559608001274746902151711094209489327488724794320675989984666647623737048829014678081360605006828629891957482200469971009900028164051461734891317685330915986207704100127797622877501098925693002656817771664239523975000019027017580767716937079801830619536191488938607422867585203180774473259737348424770436772826085635732420722936520189281472626934454802764474866965922919070796250426448644752004715837295724804463867415034329702658222464742287942106937890226031362777284448635241262873125764867415455775884912788390168395798617965740676327891043362444139628789323086688703216773319020362500942330655889481781628571745777851682117233773842563838070840762363681209888274824148547956400949569778226172375348136703551591083168729958931537252043876796827071817506114059454406712553760400006179207629485851922215209991103923934215946713023359805041878262904335821010178734886002219092706318433964637224130095008527337323446170200648863937954573453249720011893875237392068682092628268669076378470456196981027260931361090118226297676823056741910687763059927198394459476652858824002556950506812596100007545211789587973773241915976383142345994829651161088840868984965474739728650623008983875122114639630983789920655001501137184706407283100535844801398436659592396107044530774123265745403977149470570168924825641593858188255863524376463544694056968638234410762325918140010018880971522963790712946416686340960515665684911973223616474271963071614681603972980284087668964752165709330160269468464071238584434486648571132437668322606580763109911899349665215058899993579824653646341756803538571768337067842075380304159115333022223459169511677654981276461780240227632171179257836306481981311125817104982550138710290399329177369371800049151507220163105119046092576325698405385564590935836377034939775953855420369787407556819989600942463383202539208233484319020074977295767164736868149794693467574325583314591265316833080039091003379267216570375692869222465190481238076261465713620911267140694229526466085910428171978215919256680095832377377722041151091220588710059824831133708260449623913064612164177228158876772527371966149982469661120966612034491127904529858881268616933063293025471480360551168847407984187354577997874477654726474663927397759379104613613104146366700217230422108893770415173331875508616783005302090640545296334185340610249203990767777080046819190071538401948693005254893139296668764393304723136381787457831000107630570389186994308261242137713594201354829590707208474952519127333891072529828870084330147601599102529934513058713647469461251748190478031087784295432054778633823046963485374654678087087241423941654614158900978655723504253663514897043402732157551170952226867953231694664566971957089838036569662858164180456855706976591913927716192172214440554912889391409257489688994890782588006237994075212764335820045750992704759104734584269961366634144544279448364925890821229544761195877727355621301994905976645060378045744599192258955855249801383190280340072346952173710883118056248969058673924023173463321949902889204443222084671896092518077939882911414286756949051775008785077808164847471014462674898154238993313317469722038760514443928391545045594253000902988596600104163008857845597568778578823205356525151645055996444267781532254942228683217844500665044500372021806379603723690473558950247648129730842726720866773965233202593953097268024363790327991130279154873547923849236462579255401825531627918086027828084331698609183795350625875195399921261890063991866608584416545343468745801243423891092400130598447094274531154957427023235257729466344222073941162759227414134820579862231877864440657432361749314451928884895987274041179243166185849810580906870800380307544755444324695530446972552158477740504692712863144369632451829454113928822723522955492469330876213200286654395457915328521970033418460307231407839383890968119829521893732755038936704000538259013273097923956245145497543105714465606501856143350028721601048289858329554650288813535473113544936244586307448321428036856705196143442756647766171049473771469271718284220002401078384707674178465818538748572366540802957642255454780418787736243046850416517943443695131268665524713760331116936954628772715952386315568107633599852134568501015984593119858181365750278238994984873549751418426143565647900442756764694222983750951120492502916290019004985322361992535028696202045346220123424462937337414221773834694658372885347283360836170664565068913563468073480825688534399979266396621031862755483001287022825002925240241431052991682085622803854864375345777782083772551866105024716504296373515319244189298587198220745633001774059488863260550610519041988675388394588859165013710147377599842046158896401037134035903692724268175935749605530417775626191195160406226755155896517551937967357605493551137061390830562831867679918382336092782476189941329463868012445926402678801073124445014312464282821043616433147811931644444556596886619899037236339410658270751548502075407584888277936804057286752907019546800969076305244476750025805361705901098682792673156736187692632495665729940576772418335666845405583522649317103344048940327871703892400225913530459103117515923238569174782711575556377035651567370516392208723402688663771065861108185406892113779844771762821353645475653841295977621837767625037062161611831503003454193991256396167126662463869448835193859202850485323222745106333759592097833222356713253502246079533673941703016916418068215110452721653161998172620653273964938799526191475751771449856260996024171861858841165279169480687018287291996226879993164662498189825052172701088656258553378383535240711798845799566723615484411992947038983769585804720593995544480648076283255159179692858788799749806078727054770677075876816218670647986743748435912478458965147512053203410844091656234299499143634057591111067916020669545753601747344639947417596796598327934410839889646948218715820683414695292546341330923847207641848779711423220197088221988514848832095057648627573366433163106530854636059029629584799718217011321022978338004278746559195870846150806979080625602216854091675560472592138004235350782792179062701217286924852057262327462686455638614699572458898609832186881708486031751106591597652318165634233080794844675949568460207547303920355325312968842462361745684980305955066936042682586339100053008503991149212316406271803883897590361208045342109749565121125055098039372848759851572623053554361833526795208085216959358370709789642602296665733444457560676408153717606625409861359351809431455127451231492373246340502385071764947830903146459299625357889133533119882220157658484268367321336327574682222618503651274617201957262638360234715489739179529668056454494723365426067712301930921147907207952502201993588615395328047419080306318426223015359030138300391942165214694827175669964578721103335011831909514107644042734891705844223475849678203933464100773865852118922993398084898387742591916511437105219629954687268726151650785583473207525528064607553811728515163968934529857618353955012032635900221273032542544195252433651597992161823617611498693033985375864586192864439856636192222697143825479504315239081073878254992760604429092788241194344485541548342778220479932214007883125138078544141725714697305674310031716159066093063614759172134274502421265432767580000430734142120709747584394120240385550794487827443570143863714783494792025223806359855906344374384832485714692227765504232625230264325777854250496144456302438489834798195962332144367667464323516807040204543569240160291142534994837461437755516966043843411685087078190583183705036563363047741450218126670664284638777332989036853288156156368981890102007747569353051154205741486140293644706859045364420165048800252805248509424896963946947876157915546254010515795961126927835395314027601113102413483603483733878260786682774877377704369369620658947228876438112098557710471903016842963222634866270424781512308432947602733708321872581846474357629561643865270718427258297946234428443380724592408053763480941798214428786658145481781269994382601969393832753082329701450503695419590412161629024604792612697693318330681237500322193967991771483417795284684663553269683903874407401891119457035003263042559641163568815870585361872039076729449432249406219180504245812533432850396193103672285887743052186544707770354254734770588943799371871975577389703129045454464551419781043195868568274460091485684497813596603235217185918863476149090776346720222181950655419180324168999079694256426060499860982254101350831511141164253735223832987505208446458178947453653613173547127366974627948749701908414281045735130066078845738058215521102065395747417881476588847818545281665774324706726852622479558226997481334349937528610347966322663042520979116756267016645261695747450415760525995012213769461262629634546684083956062552468347315219282075465915121878631392347030210949625385438912309739926066680882188910206024533706497543513923388793542713538540151216605754127383355927221084380317861064721848945592915999413693275635312352414208921782695997715395447923063259030925719722849410405971576585367045526369683667588876901190744650287832618134278677017455207432128723262564344254503828143429341967656008227260162698895243085768261819611147072329253506886562128391948486601804400346717336457743190427543423529725501460020771946190711345043486962401089342613720090581812725384255498356993609039458894256115318628148052510519289255219450079085576679653460115165196192497254060803469952446263112757895234908723263146904230669983924995269216108613117991407050032251847716650629909477614059696681740302925629912037786309004268054649999557030484256270458557368553425299029977570304990841549117538294101793545526067349218249050976940002537546193727929374647796142173351072660182073802095357727241418219709045071038920871302123410158504503292291564794620686378285497968673075867984785022894891897157831029591088782394728093180285403300529553764067062155135913537812550369075650285045359085528469497238499263485429034304024490888287060919668521666766918298204526698413080108643574105947384282218400037566261765551310197534570342816512668977344132772440020387730299723373358851984082467326063283685165138689621825129003983886389597369051196515936449721353290682997726020463636709071175904796165355845116683619372258114779988457692596306163318961480062826907364940591056531549442832006491247789258702842796661365708031209337218005449917162232806531058880957706059825697410672717415273036314980396442147981930844159183138234911976842014511117037588417035162080386547705941984141749311017721745290787319681319757001405151478752504576981201400610689785374983707301913992928242202081294067525755920035451038557456442804672025882138979112461499539192813581977344222373734910713351610255145221255742646049193549279593460058290326215141352449711183169496289560404665909358478486430571369938635357099662384379855034392387365469147954780228234003201812977045675818354956940167011848923152574357433137933269931474448596369376769272313960094185597844017005017355092593097234168059005743969441121265109571683015343363395988125155507580917916787152537883817981957332034766953557157759917180196026533179937696383349621177346642890094987956404928366958790496215896606356138607447998768989718252745957611069699582365331188035850969062619665928206976911116254328768663333255242876498855933111111345679910929164374151325992320141109251583403610277444785293136114933790026854285796996012230046683303895058271358328461187873745435123928745349409386401803833735776894983973699617150979125461400408221135222497466791110171681968664180361678073699973613818581441961646205020967678971863963783570524259424589415660081594494055431146897283390874679458513210670117683864803375700618730307664645538944401950850135776233719222455492689074553198334392515591651507725741080408880460606355633988333208785266742632200958231743868050982056353592450040955243401952737763604288266262997765650167022583197272082931030938060488360775871649384915208442098850623276526873849768384996511966213393020802242875821595200172599921461602075695733538683727288766079163843036986013159494032720196641479741504184842754755657892781606412767953291648391682737444894306626321581882933550966515179404903089917185277298814936893090459447787155101585642331561517036801760745508829982863690184724306467423515759542980365835364809330534281416190191574006083803301719435487341463995322183820492336274485409941228951784009605676289066687110350168778594981719125568762345992904634504978570369419613133732288013243509355396468701898408450774680794254104716409969640041621147282082621304709581247656629527737346347718456653722204569736510630896991795902072255890246362181181344067420981751690618091699822900907812612893886408696812116355683951129203313586529350323164800725833030550110234313101340000564343102309047658143040571441269580020432008576205541855303958065489512493800396886385563345013176813275859160411495375385324229674669566162692405500957526947672689788258143261561232854088895681492980712503406991978860317012093519293063019804340775443498910704609658983947172499528268440962285097357836956430169755181098261538473990387978774716786860341005208112811811501937548691952803986602587620498845044110392745812550031252248931199303421185152541541764225014454065258810418429878151651491916668117948108291568755768395213876482869291183763918823594459510375374861189814004506930648149029480291025033101188956848861995277182706100690498057610905866428508230360785735254281311966291414953126650825276607313730946827291118584956335236883010608581103472074397191575200041486850203984051350631734420612261637646522461877055822346856261321912596438126764335916933357951999808998379744620532214543962318144886924523179858806204770515215333846676720555193420485719417868297436813274250916401603588346139897386838968911137406369036774844644206103735657327310348833435135487260639194209270052548855573251796298582611507563229214904242742240327744022916741999559335687818081457865265034492340970808237885400928944447369263182766983194436184350968802186527385801401002024202286186501005854538090018353042867519993588649820168729999145577117127457724924629498295431316087017631940487415239427580428307182946593716246920503913103988640224972790193823344361869212643547994265640044152884792899741055507356875127844684565670740286227507444851117557640508902169577099802838705529242637850187541997251358366197318268073582231346337698733414307662618256564518905077950746905342219975101645671398417719479332021508432693259695921120039544259574857984448091252239047319216845122222380764866248696288418449374031242822244492994545985134349975962382593770866420294004100955819089789592469323240691174557101457854984191418022941615740316687186416709164788921335190404007786184029372945799126819011607372560165131867869423059273807887242350209743228206290523885241079293684489297147944821738531035233047227775931116408132602229860041995259944375054190973847857870103612463613888358438192465644206968335680116625578335164901356358803593109565561510555838472057235976225283904011059080331486002206376894491296740873046831030316773977996095578720670014739185661984678428864696192358307878850429625397020850524197342463718457975268828261913491709400476591797257355672542866272660895583937563281065753902538361029758041779494244938937185463920268366482050467603260561039995298824211585339586716706448547732781970456631976577607055783837779833482994822313863644374500852167320569993390592856709876513544597196191816298761824965870398736274715719521023003578783965761132135251850566336819595935069575868469210160695037845444424628696168335342309313071926828353097664600804645091892198417329669516870849243716577816409246921410653415917280328530169301758770760427033273543589633272874312560619967725805295240419006388333378121943731032784902462821876792352288341842471922274180154837535361453232581004163646229867580646809318152777353264760463297587328965335421095789910638376356580973448437945765507326808145807250010113670690598974986086846227430514275160063027281105453643252197460267111840855955102973307046990465873381864299095179600469714812595447356612802609224492462567640388478795830563072290845201578888786593695579509529375518139215837077938581909390584082325534123863744535541396616973365382795692452816026022058792679530149085963017156010454829350881383311778436750604030159249484906820062933773937812651824737700770982959702377894992789072592516111356818714252803819705953658125492199346498240575066730111768604967190118194388609987562614256938356719687530630779935882746623214857101072410182960813526070451309354579493564062761134304954707878661379704014113190278472213456415108792508485446609104812365756954427710364057618303016899398224380192683050785178830435096920014458375120497688924048908859250920313951822100140672930174747102918781924956920232077962486978620975236336959200494917234865595971987812693841502987427574556883171436363282479808014863531999734056813678117213973543888529449579513618045980618956519543571245759016091756160394509547030930911951194699566552635201541914920390048557811018100821836054381955348074752204172958480828158592707321348992113618243637929532170871832565873582466815562604081960238237201212527683239334917032294813244510950175754117225937164675695748212981017872123617943137848655809063756339927505592138408185156769188847462018365747139581454716672682251862597364970164810994441594056195589267008797522431860741600244533489733942347948104977346957779620244656910109378393388791250465109453830981333633939201950685042638552891940208936685294726843948462284252932990624940848162677310578336438253659664640215650442480300573734996723875722808476522107629971033977573948641108240444144062839657522126708894078756953126917249749539685692301844312461740774411935842659179895426841162655048528592880661520956444709411417448109559700486294228914970032144060910478009338959044098783638626733464557112434539775655591182603876204338821226020541480390464969632226575260008948993141115526337934726712600989284080248960813955443772741727635996100937646273602031287291541382790981184028349259964853854211766374476420955744825829484672461941456927981199817882565929906669266814362815291250101416094390341520997294668566951250564384653413526735252435875541275131988410374669158006886483371134689154601155270926606966667143964059403649158795648051941510244397296640391173774016668371399181347618922067985223028782873024116092352383487821500412167554261505304197420793431154311782164255440836127136539082923544044658525082874522105570707723209110401143816701545178553882596155338432325324315379469476519296505889807487426976040432784320389606472291746168878302127243349372158151329667207062004759991002196255920367100008777317256909834174932496826455120998603736523047590724371836847263603566084086437075486040819722141610681778228574758665364924607025273087004330118035614166327349482574449904050272893440512005616827292560083537682241496982518565089313857042313052192825281838483011442737944954353948769058404114685370257573974863329964049939796383810502369810052032692907216789443743076769269332130359173746275311120608872406927777254544063200245061200245706679989747829041135009455068629018409227601784047608022360111433719006126419847258017498019573901053414823290610183254826582164264723301962657699288291849969880592861828640837983099754125302834248173683342838131052860293167785674178829759988993257275853403984091038364936238221594779520482015024838874970084982067850169109220741882607900454458192457154782250750594077861037169232172722081815678573559824089396208521458046570571108728893540129085026843723414337158484214409078904746404693963062814090832106095272820210373246288734523675594608248903744168419699040675923628029877371897417070959292264298013824034024003413372571933622635523495844132114717130648611156362319787361767739575197073523929126123475715377147586911442221134847877230851263853855043454736867012172900558842135977983804130867074294021670620265574268291480499529547817995617578586994050008572385789275141062599059944310102851629955971585037954279512350141254622185150855888443621571164284916818190745569675535400747184665050459107581870063035503544652226496427157588227375536049502964491098651837569733161992001872524953220505196575450797234394230862653279107776449570552099219528245619839624736526488387487984526976765356476639167075633593816302415439070290377849008495260330502253456302882619477278207458573746313592966221458427982956363150865399739648512893753980965183800379951248742664551439790021171463867078869696745512002659452839388338286634729563363308170038713175336434484248613147249103172405277665088927094398759965699667487998043069586686838489032689174822039826172810021609157638370205986327351414320142615440007012747103492155541491568295171794152146965118229960624899225223595224146043709643158907584326639049650147519064807488792975854128397499777214665996338055733213476348964916440834291120459362858415995104628562479312509139063760540061448178475101598726069211805450212689349023519170919710337688800944435948137517051637811932397439650774877059125653294287747883681398493121656205136323108144897714800578122797127632241058668132455566806543962731895643483964719245318174650312192974095207952634905114672364182570150538334963738629179072126545990187967110384985928586192064818835659948237627139913337854537433986384187282628136793331039778469841983652158427267658024970007655069125212682357217885777293751100610895203786247021530948560852348705551379885085137318888596506991832231598782190923397242866437548479586471628841036362149528846691668832269959939396244715679433819526583108144904304919296923733554879741434252914176703603606281953015170861805396645965647555010230410732945874418245695772745033115054858441758351122287786507725398656944772292193509948731285885456157990235508327417250087766472761031374494071688841989079422724533842031483850252752580890738315919310814199984995032376433822926227042295527074054663636163536383433365146604529820427537873293291591671130765624577595756778961386239671869460972618959692402269179258190011000468246248785463910997928747225463655985829389852944413909673185163017740793179183558284377293465280794404421645872621823186818865175799832278549112754923823817393758078391941848859328008955534898548639161470170152238732899863567098080916797374746365626331496838633961861546853928898655804677341713393788233105712653170893634842064455117206558797258406999515218141362810838828844815177946460666660680821081545631687638078595978716254770703416363461840995630438730485576365852826265008660193725348272913580919846295408311883559377278023969839355696364841253683227740376463783044923459146850933562570012133431352913743818331355308922606665308098410239139878100463023750716485415188579207932346373175513124993553278191325930518549316084345317503620204914387286045190099933836891152843291410177864790578388295531574263954148536449223438363552104739775958181424412191374366972724470906218859106600871896001379917951790698872158030482213941489299369709131578693247452433059991987305958524500056372879203367666945979944066105169314037596377770781033953969970526124574999985282181181414630076536786348085007858228678873821289432094292906234337405125307470742757753375438875917219167230882569480157378315459846988590069899429730521158822376130611229687369254472622722532865439414969734323158969748296482052930333941390290926843388420198640813117461305420787294342833608771045037626573585903179457311886081944719588489710917423638438681390692368019049830880524955370496951425538260192623484579626034251292191469965280768486733052713603633900159625272382775643503792665894158792545062361955106377810176522135317998863944744580202221100906345063997813909604159336660832613443103459583061390902918617840838393193304475380194493659643482842764937016947398563573502739278183970771994504036183581195258536510834131892658648284797564057823641412073505837452547639863363736676044622674790348548990664670061547622194391057906080382656826997876102704168770259419223129630341933391073091893945729686055847724489116503722212018136192883719873056909449976540186744482143156946713416751418199163320190552732154501933793703307341633073786723379904289941876345398156826367909950834297968024095765493821976883336543773050231643682329876058838030089985940687424046971369978847976398442784494446813740856626089675683045862814353656030445320336641880769688732871388501367931374656779560877322029335903510403174909619796893450024815077497540321111322893967903824062077650531830670822353197244524813692004986508694719314383027751582462666572591043680533097507872773437910631947872231656193677895227092025986416766895840997493900588637750710320821948008732086093231057152092656762504807619057549179028344705229015579247790353821630438195811202139379373985107570334363561354371702361508314113037963645881048706721737518299708202539734734754535528406012716564499292530862748417637586729069311344666514037833465138762140458860365453583040854154383922406748475255452243206452085664728587180542824610826943001176650745441417472846506102968402379282144236605330716553184773916137187340487074087955244193029953303211237238807191635600169914652002142064406836003654294372056502263083582047296790389136309283209779104416374696014969506933341649772402826880408703954477171928047920735160193090904532699585217498486621096984366069447287957611432781452007936654356633856584161195215220219461788712325254402585736286688007131612535368196050387804577667996822872878629947675485678486815616520070327815893305073341515794922390772345231061240240044107092057156400681558620274712636512441281290838645466359768843247806473473306324729524653401773504818671049198540167131675918314626719658482626791097066532540924110826020951570960268996953756098430975050246396007427449315306433040018493422674113020513966644983574320432555911848217994786229006916464967909389462548739577517382771469392292521864269922293109138620236530593170306308274573964931522858225268730605751371583847503928718135239568407167969212917074947001707071638748035683359545331029656928582855575497010500121791527013974503652956710882179218324236826591375841960418840923022191496162385997671573077795286411988546278494517566640901420583443000312969501111858664603207675918749252991653519704690129002215933727504757616456410132072454917050785427268823014190637677205019255858305623101570754065930226018462927303297355825230921867016199287163485603185016185666173708755280851588480645701647862305414191522203767188023647744459809415088754370755625454205467229645318009039794809214493693935462716049671891145104471252516266989947518423114789480574685159577223169719644729790698027826098956792255702282078169867612818998420596889210350690674734363084475759641957543175023399572134708354475776844844200224101036878551989868872705768961273076287724776541266652908495926131947737232092211194058941818698340869473334751253530054700585247313670202206459555583392389822351651133740327210799877338374735828394722463784860557506964248624622913283323734366132391643098856112044700638961464183380988659345820637008595449460719128779374148091987094128740123157283277056936262813585390954613178649048349224497072883511530787861375665449444599274754926128643302740668506105222875531520204128684501467645398849351574597601269273617300909697904227282846590601126150358374791880018840369611765000583072458833923682886321957225719133234166991638879625452269299446195000874876131182692325240474034223760802036709711872773950067147232134193967457918579032439835430887118953606168361938631651422629173118264700573092081009306752252374237689621916819759872942718418208971733592546557280723119719469069044610630924352391789934486553488617779105707939073681536121257698015824264196909068885852455032799339654039389106858678739032690551395740641137595516003888788321547137863172654439222378532683340288744653766520985709379495018719634304192621636417753893986811186412771137506927013311299448442195830292092409773272070437110691491405016269512866508032187206759817625715283979396964032916172373330357920837531319647683541643897021443072434391760667964411028929978484364618884570149715549381652648384323296020720210325053110665201964608781321017181311222299705700020954519816342602580161485328310986084551235729474429137566930441818612635410858328592891938550287497065693028182142527572892873854574950240350062378094090673797455171699183665199117235411400633515934902468544422414383631430529572165485133882591553512795662503181136888399523020905505682107478411002929664358296898451674053502499938801096066146130373090818323524841641577979939706744034328638958084457362819520961394657536206925872721485551986409838640286387630401976824648651112381580648571289237935695954000031969402604512347204917316607309416262441810027575128918302657249114141472906833264888064045782511341605512871261918171727699368764328248142758966720182647649879816137329180108937362048963809092652447093563621836508732162752213086749212578652662227595053785386576110722943469475098840057015064188109658896768226896490263285730334606531532332918536520060208013967774089590783451652129975277918302144766312109181663798871320013652207985326834832142340678749637744105444573925475312142457552492455130047386387711512618774259518066935144716162127008954608394188208745239188489088002679783523549803831841158089955172686043599517949807419781195395769430963679149964698989981547919106450516811666959277629054871554976729141955326166101085812850880058446986810251652210681391128782594745102631471771607116826859995811599410380168179050101870604446912051726632183041127407286553156484264241631693164052716005690256000992299637985072300758036721737523732950823632555225635637151661720757192644551053503016377101525023483137527804180272846410658541170161576219907656827616016052708952950658223481537033045963920011023420753683827101882690408683039374728629047009051396158874041394751275493097751827498955241426723670412700374022687174742241183977867124707952156491263961085867305218346477149744945683163289365906945048453799937446872433351198917632885517116685978324545170232064604173147303189487281286000173276445171782852608435851019174661422556629939161403458832867358920876020651790497432917459946202343749100789374832732162289497829323593517561080532923711891270468112125821933537221150006614626381088459292745158415205993504830745926588933898311110939365990986792625602298099831824029578037732208294762554847733856366652400638752168941565416863475517339727353478894745316337539397223415257113945820610486301772816972399000693746789708123639687300328231198158748927916120249091199295551745181543669887111521867702511208634014432468182109538719527785197529685295822295434990573855164968439482195222291770848632484948676067145494864913121664693782194823553082582614946430090515096703324151868678612511542785794270351520788550978126359112555425914781904150350306559213169445340226322167193325818248417296611274877465457555938069219439996783050670964031324202428729241033243490962237902758963202330227336287544625069652913734654278542655029877578125381051734735146988458371100458562081107696467235102167413388479260785391743590673510876412832648500600281007744918204346952181531780798463543247897330234159476594965695369390273419441674594509601051572779231246870567329632315744183508277734273307070106249130753840160820731946036506395013024771729446336815698596332785343096212751431215484309768088690594144803753724967927526981116691936518462066573112500907845376478489201111016664736547600378689035569697171577470820026878928179155253445845202695763379430223861344947259028667890282736775465157203168138031794329555729888284146340337242367941211963616894803846177630641991804399751042884045234860588252476483130431817133558286440839778826129407445313372785522179263957103637848047598688211306358972214393620043780199553491775122218305021174099979208375560120828941887113488054299818777385922847613051069994667798654153971800281876683927810677994766783606925060171556718176926509158810971710280385981555167268578991625925772043204341502992499322270213277214598674499767863782260197940113798344798581521176300276443369154489430688546348713365652309430749393421556932962041211448015059829740625615572762098584189401132844822716453761750529071172354029785241600561668384843911228347516041549631591085837851270581605831571370605103824475403180831040480107527129712349611347770839384656732228239497134844728459341049135858468840388312502042854824985331478596129386302834096506169739399899823918739743527892678168697235078869076791439204819503754257460704416476032559164375958198286906504394309974707826997341607853868429131090180319428393947645580826736497315171820796836837858261333292338313497678746332376832300770111218395881575748443835312571056161265236950241206586577496794679464908912555878592656368375306672658080583589900349915794716158261683839314111111955327426500657788842565672487445119619799278131349672599212592708766229536037093532601341411323682316046435871204828433447725449582082868503723264110786364368441472131504001162368406723910535645426026742562154221971880078019246767164310308233499855763572537486490385843615833371113413887888216959674079606611754930097759360405748427993722481693581902843114512834437591838623336373724583770618939126403769063577973740720741482036073766812565821474026807097602145154258306445168183955156647543469439286657966954657601543796216976504506858430465502413465785734595414756895981722456279050325754902388661526266356795066072645397391069148281845476029801904756874921375091436016943066548326174123213097676693009871433717736384934395815259829849030199858283789676991037641775476077767645997105748765079574273870063042809746027039160702215496960007208611410046472790512287415920057068808052521001371443473971115515121316246420786917535295929930452218745589049635212697012796157271930541663309929777815353871471486400916387656720170261685740525288578883560566667740829357506315302390164832984537474102860936747623674808385372854490676255445433240174942571193601117957631377851066366576974359262198969926757815334269557947640110952839968091542616531342316617221341730400738111727706541504414813068776611953055533104175304895688915150482758306957649575296607565799767839087448395742690131954112668932681143279593949110089176901478909787432436399856922283958578596149995786156782000592963122357667460045990401617007260021718906120696536564798241606522463403367259925841711871455634925961712619462231497939881923367546089770716855641251482408758297075431305737738087877966674132991119974400662123846664265183933244904261751441858696109878595335628167994840109621398638884604998476218073469762942436604996659248613448906528959772116629413410255549863698585310276875005283766398648929612612548792641349407320860246840861872200133908418406704445904528954192558273887971231377424864089932483339614866042436181919874246784038713259340295462704100047291275773591890493400490950955507997529096655031373358837367045920018947114316830506745377397651566038468809519561235274606980338245798230721466197146207338679573962593715459736674832022291125258767599930098135152714462980297084735216863835242132110460088866444932690201252076753188002676782445948585010148904984723027757491812822543143338557692967982421028429575953474434859074337754032850605405453730600868641037150046087285246368606373332435980116082977937870202467132694574931478628764556024849824632465642172273446266974351006083876320445940266117502425064535952776265532670281607599386651195304211424190154445071203145495419392041208995849223932271661222802185520662055453183542174651942997952045952080048325118944802037555108210068159191190353497830861488839056304429755269024055835490996742903283492977172821046049929680025119723834775498609847387453884268496313359817095104366658464236999221558508156476250132313359796155752270423984256189656519803089856355352719588930474054517242754371883066167223961568173787385793481409579556586070607764091498288918281105874831164953433779129950536468879658813321125497689180528366546689588283195034459378346712958365813989596893825653507314605568194189586145532811368381718279115441205788651663277723849608654335194715850950435925504335621837559721100225935068053296456522361049810164222185628678865179262860749615072426614306542982874574335533517663927159465570001554952488122729125257016099224094316603041159399999029063771391274726302552207601984564067309210143400104152781620671252800523672544265587403813176189941398796863736644263610182747893955722258755636407317525432746466663921511685899199273029545343132991727865267732154537538455774218947508734574141839751244041157711508301441077236518410863166193364310642692891688233754043251400028655685393906739062971882712093840611732922412452508568705400554890183098620976232547201966805346560378316543306469080982808568160911492747416456429811881865149167321829539572198013484378994694320306122865292602067278920149731335884586897888800464914789028534520460371598907628127645293968015747867460680079188788707863635141171038571955222516226585216543478915388893122258100348481000607149689056053154285350388998550600049416666700108797891041609780269431875506162803407967712719651052269843773835574028109137976152818149799398564459126593025012653703688537120060263528055799714328296516267030340480197808896785555666793347941318886783015620499431366939663142820603989144677411155866301144158286513865774218242014820268455397232456141751135999391900135688786755092013796390405989771603530718118235645547985963242730932515281595247053139670235596837818715104892454828584581299418377491582943799487337106620188888105371606312772993223639598381883540606236204251213130715324923492395167649207059336311625072609772276506172104572632174703406611648623947806275631718230579325158316776507078383191800979994605717845942456067135570485945537782980887526859221139280976994438079839238856621782363160506448080192605501839494572508178736501783603537580519335081486850627632028948368961566412972189076726753744196085009958403668204944161002471106479202772268178253428908983986258987880522913208915869963578738346769715109191054351129194831935660044020118225128334439538140754534458997434382679823787675991254595827937620746626726615952694385148084477698126477965786550280652620871861030327269491430321811018606075597193434604693947428316433160455343761479596718239612766123263009494183752722307966933410801960864381591968076403790255303642203824446715331541204545448105653860898825184977931438418417678723266897756241544456063537202366420935758983448472744551560437323549128222669324956145833482233027457411977909649335048597390563739207274424275939796164488966155370639566879821712096355111816461835959572887584174494958179124311062151644194450003832895910590235782318805570323211618763450566088739538961603359626161872768172719455026815882229055685316221918131134288679056756662690560812712013663879686090371008349580776036973113818943292580051323066747501661612462018322435915802481232425036299498590053167716139016910166408214923778879115151087145793365588288171777602247853154042638077112654010756907135475891558210970287731799203372106589554847617635059512494450016110860082315086582846463941489166774358487181832884946495805008837925500556360087255209155770504092392066516493562053410065070484829983295321413853797270940964472458104463473833021838777240001880541422795242217184150582149993245299100081944543044439048364645386028864755882762325279087628650145964740461855477351103966082633771540942286891217353251926637440864405904288366087932715049750219498759321183837386411046268446907941898990123407603795365258256395854319993067359703919628081596900375315266664519079625491368511764078033984435982473386355119757117480798399126237307133615906667121794102897344350240427861043562354998339772049150188546067708819859070143480759419699516551579138932989774731257444874210557290954277864349923693481142616961670469160210069460224047166205444363068039823226697015405494050820226635484297362611159426976119222713225556840732545570017405921469411120330157265934320829878118372441018956847624153357821858513215935702791107651882291131909875732452967763372113841419061687202245079583576299664175797744052073470724643504237533084511282398494346999816598605024384739090780133976616930408096363007693628882141971655148219723686047905181386830803938977460013908690202565867130300360552058658167816206197085027031369863915019425983544746332235442754911851456530112386768995357330617023397879599910315976316336433863734723092699536818109139657971217967860180479794504730080090890169399715095685535016392362338716595820770641457599401675755227354275851029523618351744786562582232530149775042366863184888394748069239215564206816951786286582907043640094199239038119782059865602278067249916778606064775688163422615661386390317289094568821686190868168244269396916312558062505559847159581630878041308884642821034005426551582740098239427290064639656033407523937706525668733858815842891394413873203938228666965054729169271426046979253038805981901438421324850446221184435289019518842685571775853829845279179840335921101793961672599933701472641527166830033189918890449779344244343398549278508281003509102192183793676379501014300806719805574307158503762583955361677573622669993646799609718220802884719352449502318802750464376165230247752630185747982681920841927327077825508048704189220416499527944054937049207078572506388065944990195268730759157212728091666761886537157477873490849516645787673138059915513755196691876884784586857653626048887180765092183535398519827634930516668146840629803080443653662696522386149481525142031059919337453403422214665904973767576279195234495843157999406458148804153551845584626077591241964887829861386784085512648845955246861911816930246324648032153049532262335014625119877811581184738731626991629236169118366529045617318824255349257071034592498389073060480695290624202422152381443684237892488680393081485901662424491700981750547475479213528302806100034467313121007848745840730181200738629111395849249443712422058390424048193627663314575028428044737873366579932803547112648449813813584826479793975527866252132092939611241584413566884389907546864944288713000276225221337281446558895999438803959949082183350899496873868983172825333121415789253432771478335631515800865595268373836929722341411652509144826060814621837666600491656940570631309350687702811466240250630082638815225432269976696452302823267206840909750994644149476307249025221924881921064786368970668040518648465705768652907297348511384907560374754509270841595993546285390645348935329833608118183192850585061514491420862765257565307225210159661145111919326640437743901885933634555545511499052143980577516838744800691971163539780771042906300316479973796183013573317074413057741078671234353503201568112407632595324495802685050296097034607529185146817882105345800345992939094940664989968677328201127854427805099225153758986877115384073220876142413635474131353150616674834926125349473228105913907163899707926640382368138841945714862333028775504218925795840710383670010778006192110559800652142857038247767727809314329213030985154035195656016061207565373424160183881605005998523010310769198888732392619127621248500868076327151805151302076236643198819536484762612019055243548053670923402866655601245193067105403217352302820802658288132558512806983176739940638950985405249363736250359364515326138478638050196311471726809854146774718819959690303609320951183411336761413414917909612734202729825002831112094168108804850380083962591864156259536421786886830680450403793212434186447856838779995917330086598549919791123913527116684986324842076713648105662673185737698998233606251910998668833727313411147121564671501756969685095812262369256195812526806213295042865258921037046172284573053165186962310143698355192595420779253638432616397867341708569997992164287468764390727639777855101316095147875622490756709711934920418277272153546813229982345893184362547054563347864376842516816234251224170580880479233378360677650151486384627762966248318508458799274280613746885468341057529939718474322357247968541399413112095050029845079804710283074205491114615958903819810867640945671051733058563606897991293934341475794650362662219214968524273556117483094902117454691438240957820200591296178628529400454555153306806324859845814647153268501574485569524016823488296763606929747139704995152883060599323816156391517658812725921606040226586507131590577530634939880580472200346567567096617148494266819273638313991759663746345632357188849113805327052490450538494671611043914447535294163282019515033507024802239494470494028515054732140616159396345760404286520865146959702111196085572410816067265579311684512672134648866578503352820752423537353863440922362429678224320450083219297975036102728037182625615914369133340590219865033025843866100033490264630930667746417871381663783612403676526215495988777879766698567592509064810908448768991310412420279259809016443525930561733134828615116362609328511165718093466117398401139543639700891145577673740695025961719565746218600293997915316932044589998710100148846189932137516490316835223244169533718552238601925384854419764096821492949949260095526025509275933454333072059676890868020545923878398768042553566988278189849495101470447367635353650926596950421258643914078618419854998471204030314815307451561478154502040072006066203286982538474666278687012716184644861279676755792993372231765534239866140987542601702789060587585448259128328254834095323159614819252210919310231886663319563259773701490310343536613685337848068365802356642750093861599720636200647774211871852588582445644639761983002753316382529550219893862292735057263867424058319708123751612195067057956470747653005779915190787201952846520864959066762376689584977207342770194099560589996342904209921780521550715186202886394751358659823568498894857685766787906397009423727021380335452037440064103485118409514486223816902167376356003031193147792137620772634161630088055639104000248813515151720932751153525833818658647291928252244968496897730223876769765186783088580544090861651211516394491724404566754163601013351482283643991857915910159675032111751527856604063443656300173032401498817331887077531519359838610763791505092881785573823429420588367785346252231395016227842785651176696040620462452982583228914590585466406194417722677317959462051865718183680536218935240332257648249809422872201230013528415209086228137255250802017576893317411344681982775006936089702843410102869289614213107092445085328984457472202403385257078867437079353093670642456354079061866251479190260032719334775184087128719866649798528908258023055939422089336521796432569850681984440607382556955937604980499677101707928192766134764072635618345309560281008491696663537062658710685014265885890041500204173774421055405169705956068260869356960642428222867807771864740846081306524517696915008318658457685184580643610781006043589893961638396174380579876394423789771978696609615709914361348317235437962355071335157705307487582838313223305875721518342983246091642803546233798826912964888099798868227790316106399004595231272860806494589548758510958770398424040016300796076249894830412775853130880021266084873899442282967630241225380274175986645165706716382478287262705835797726109981627993700296360247840056076823846062043125512120877663299577846887347347371158618296530878682036255382211582317962214261533739940785892070725262681902818952751497531739365315695789378753231695510401788670835290495460708590228169059975553893046208954231321376761917614297483890192133242371002272644013144866379227916891872718404388022427708013955744471951662300687861646879780633135457740947754229721330425528459302461332013026821929339440572795099495926904541429158439225451522379373699048164751837218063528499613310874733479996538451596302716251917765384328088768477271472799845784636702448729797346160316255207198696882541618067079167776496750685402525226027720906312108516663527069052317707604809351789858537998314123143805934374619615935238187870053597107920572191068188336916490781240656136206177171747732974540866600319825674862239302069915956655212355689767551379549525179662552886714424161818744418229355886863473397686103289082798038462075950882879995491412489738432737745071617168542151789954364040476745004786463552377305336481291856272586766181376933354054401567725389898212319179650197868539901130437896429398204131590370930306119368454915211027329888981735707325891420961602408794252898580130209240115041509656285397599214864890496660043251835721002411528969469675092015305387619243664708856768369461513812816290252461130624656646056604329702172654363188716340009451231393079698374780610347179819553711783833604598936430632790928024201900893180697633060054337868780755860455107073324257639108610446966707172705740266965595210892685945170592851847741821018185338908989911796581318672511673638452035158484960877252082834856114612225840151879793069637963000491992842924946457122132445287302192139889089829156467465794779333586937199002563139396479288765914403645847329485739597561122908217544062677404869535250103069062394103479639544710158025718802245029660199591015081873609443430823648885611667893506332273983126434868439342658608896232404568053875355492502378639431885044771240839949236011928306152902965919072172606764302474632437545408792302259333657711728376917977335382091122585210093439278848408689899180801360293793262166681488435979423970754740808193652156033394092780511442212059435284602284354812760046788934257149308291148770260267882703962753861237163454821976139325066230757717027110455326810781324989806243123179916001552398696049041993595019860119328125853548156036120505248833905473802329729278709950056819062247147703229154087527431054238798187210054754382453370842279603184146790305775486695714503619041884407423393554834501784149867387557746367036481395042614112836652175180749543050680801698997035089177640644707049748380837740200021573831157294992402025988465044417738965241271413682224633171126836381054676479087308079222675575753531374909890710590292390757586180209823234581312467397600971943409457716407252491669508343232765438453618205776029338019986899617178138720665695169565147473576998994463106421707466023868643202621899036064601140705227062734825287037253517859332038046096754122529628957616489126516724215129885876360609620165932975337248640755992517857490319500363487499489650005403628426015792021704425979650349777279214175747237782448447655918707716409491089336823782124302053610979656586794773215564246561934586308735325337702038767718159220772401879085179881466723043336422644674827506377509408103589195937157175146131210353669537295980848287236965585281925554507778318716994264191197020130336512840848280299722023451830326798970539659396675447899395774205684047415293010890127127742799036844975730615615433871734840965354694228681227078420611764743443724367654207497361902001767576010248125947675095698152007267340421335254099834127632371625296749986401601968687228551983143118060461867439354356364302456223340913728740129428811122516653493519018447316894664799090748268641713752979225637216998659636170702088380374366715636120789217931745818073077309236363372477002012046890089088793498396382351006050823470832945886388030442496036535924102525756852464612607626898849097480687253562616410352952198704827017803565650186981157021619967914927223008680913341587468898248508704070187870431954519452850810521895208215529001159286909963783462127347391514651689285814062832631041181667025293139600136661153950124022838847026340244963779342183090768231703761706272270887878472091924126629550078750023268928573673022022897939329719345570114648551159896178735868830278337958219281877321730940371858272402925654319836380227149549329396307745631003589784488815852437887632374145601380372750732462564498057726432450817390183819957087309367406986869313548411875997929103903169643628480731995456927516027185468697231052187123283283166105395083329780916076849989510129903471208521819670943477795649260189411133291325275133869130571536151525727384334630409600984555049170321741252876879727984977733562224954322868817793602303398440096941327083015966233573663520610543277451294388156670447270992508105925838630872199505117462624831537038767763521718539942997984396442930888541920141540220200678214744711937171143906712590233369186722259594228093863209286876659675652113559265569664865662933026212077697293684701005828064662811131775313773199016611737743559443015299436713081343135150479156095063075084212095010575937014892312944922038783264674325580942505254495145500905456207108809757034439634309038697669756097874674437288273505375736109218331783512229181194765053416124399010731090205488244903435538037662439631070888919730294239711402810322604716663073986281044477885084014071686177529252334871732611874268442033448953800039093762562196799777616647447700879141912720941430657332542574458394737051614987868588351013680224338174272612214318422584867603228299358796125158972027885032405146162374083942482233698457578131836175652633003954896250635166037523229046946333831911475536083206202703441396442642604550803482494926448575696426003566145355193789953019666307704391699193407765490162854647826588612264083716949842544124222304294523199640025379819375911210758596394632013717349956399201044761228070236821451093866709357135136657576635290255236671816661779058415239214553105176640012276753172688753987750174412372326656765439468165939834749534438189860875939903099838434110602000490935500834965720436335588723413187065112732690744214053235329831739935399855953476701292003310541138941692153978877734017589042488301608966061131832889593004895116063105718623506913526853573112908103850962778087750545976987911044050629110941290038672706982307720859208105224607736943254189802011541075802898683767801415883743359399177785126706571113502987012073271804660175577737665418570247978630310092762643785894887024423402481735524462830774216848342080071771800012968692638922738786868888669301573443738351181168929802349763183251291401798763511926696803221676797577203515779744974670408865868956946498189115950545307976838592471188548021788978825575863300026478022886364976317814200676002001515862403676298451619602672229971040732845973128025441516814997868871541339006510632825419112712196452767993062905173722947426420455228638671154029480888309648665635992091934635292675150734403899339355219117916006366705699092616115555388859037155589862563399191539997664178535621883372452145654074267370876209910466567264089896085115255607882450805333186275654263993119588835794957271109082584961295704398491933262111571715957418781181171103048726537534072751481290672999374774858958147498670165377809988460301949786725685590891814981659140979949443418694419363949802203227217440625137233886181182144508965548881261482063372530348242268848579718732753873384266757288046483090152296792457122539989945585735774543154449029214069593546221526326510533818395382660000915926953645004351149761936119109480080623275670688411652957675127886876947946522749859603356336371742356736650318560464126081328237923448143237633398345375254400585072366750375136234297477749500485273062655516633673269182482530828051803090977715689387241982336073300372338774463070039762333353545317975164462356620700793683203629084432521958035729903391234405575285252195600390431648166870536799806445061333919153576595483890498044760435778417168896494251504963498311920685066810203426130177312121834601865840939393716275272910276037453289839617771076521511135058170371801515006938644705407252455440808241525863918521698984794423473845600895933773449166334215616678484862562236991058316297314874058903822127095679333012647837155621581442462162179859334166853300066489890800232882136574812018713078498952723029344983620825051220182993789548449008057316920823912105028976536842993239334858674238258664620597571039519503521328120215574916481053312788133389407868840725325864242938643813175860087295815956723316691085923891493547757478733423076020365845762096594280493077733555635132215912218700716464000251141164780876783498546413480611549440650226333571096814669950077741323594643686508452538518269309241327371246150078288895464649184715121014848508507666884130939183440301733657170466324161238033310055551522824331978307006956178709546379349668549661839551543122042569074769085258968839987738639604177044009253542457191984889037088259141146556420346496615830846863829362044111270081206088005550793361822470435352755757463151749301970676091898866623108762095344487634243817096139043695659397359997184551490517087289150591219573992478323762966262941878221643959338631657846670146344991896336456818687448316444469327323147647979831512842232331746578929679450295555266494251909443074124599595989866404182693530134349671967100386353450603812624418468235121588368912693106650294146457852697585220832091370170842758611444511042136063302367399731981509649716052380404527782156377872058144707473455531222117991091287111439027001410825722235901274935634738450459897971873214142348229145206502527165191291306040881446649487847495227082529775573301796700526398514266108227745531588592929700315378212792417008458833966965366775022842590105815965472583775678291787303782153430986157329477911432364944734972426698343570153688684135107960438314054660069457183909838719669268657785335404269384204308026131506087549206830703732439385657938199474296527010105900525888792337220866704087426364293543473643312604798052325031861207458676016793153655135505772652984221877239502671666001862109280683269628929824321131693094405785697947993737184565743544571253191021542570061252631797764513617990919659392623215615651290544235309573087658462033024574778034150844481633438634420018974842197685288130570726299652327389552103773049595074632685067390356260807873168164634471286016202814490038147793214303796488654248357601687290269478459772385085657067463229359676032347713304028141728510435020872852041081724559939646854284280340460694472953273906846522215928196480020722082228125040802345091276149456142183146339655141447800746094707318497390915630074950926839660555593237154166349463588994386125864541866198619085711514640816888466384798456654323099134770419077813701677398046279055314213406575917376030010874701401535472913623434206728350480960838961514143123752710519767341442354712653538814751199968500713736325646040854831244765524981227965446691490921435629618099909216029816172108024990055058506125735855685485176443220537472479013323014063171108985728130001909204962511779199817956002990313484226302797737803205955899212902056252732288899200121272538720413116942272225455381734022261262538549030444843477059275964573077428230749039903674200055028570723477349127491111991544368536563459067541637494399019380969084547612853467641814145804228935982511089948245907348030972946183520246444625844742030670948939673193873982675688622938344527732813226256392813468401564238115616460348447971749352530805047469997065172328503034931438451287999227172556529749769997487195270453492036633674395107229638585257606756288519188516442680086770498090306032221439154157812518780217670187383640784878870929575624068504659618060463689534946296631409599005875177186576030988865023196816825249858169985395886527453973141363258756185418836759175366583517929367134765255281603073165769646685668108096463261969852160412605220222140272308220287473806826884472754762361679645797364355137466411388129886949176731259218305672045217814922520097237173218922518092241002338642703960571211495507471544936422659827225688508340013229760838712278039627434015017261623525743914766220551409409027731836812719665038885976756066601730779314422497942467478521719443997308361139356167941558466406104466214536223962894598875623155588076942424392029949672385948701071503843506397140660652462162738564439969111714541449649233672923152741128625973618244974148634959125785603510394171693031846112038136935203323602625775245666282340406997216145195672149175101033134496572159507689040104469302332984162390541853505383264926637176609697915656308445154003730657449427886705152734506749498203788460184120427753594047550673511520105266246498125149189602241260541669678363857628413098343914431846671197603616984559475910603438946149812926175634291599491798026986080147275735659554624918425786734060531405340128833194855601252326774937845650303094162034106951379045806956082164306619771364559619847374580147901425509330783015165592514240351124221789632856402458137653353758450135962680938729338205401877450817694723014539366665672564998043744342849021606785003507661391929918169801390435875101060207992366175785660120283460339732436358135408947102972692920857660968046114744052946405392201040946769509275174915199922243730796867344367472714522592412652448463249302528565967051680772049822120645939499634183437854951907634511735076685577168111975059627212187215930179535728355228484954768486818701039337910663935227762988427672748761871174532353352710297267028123470263288131087482650345983369137486754953496188769583650838963422952173438294014882739044679952457688828746237705647160795546486077362142107516750352071680037801066983372675181134572290581857237884763576233923316661861312344996778376593043717507800574499914566932820790133552548852600225692645205918058470378813421338002369634647179764608885979014416876267517739864681400945620382104073673119479677232189380284205845099024994266763210913318719106649213911385481218459556178008113849050774010052152572231767394423406108992024973364052389365723042740090015771262152135531787336933006864476025003263303078016137997983171403406569489513851275767754084608553008527579292808495301767624869689772050844634864069396002060936662583885487140183392929907912613379043663301143270027938978202172276362802074348041229014745885354247389909463274209451521126882027942534202078168269592197467340954388337549732978446773962044371231720892260848276720243827952256986451783854358212662363764037822572836800360258563472296485273128726964186590963069194280155006363263338640152137994691052168769570026063035980143421080503940149314743043082551392655473079652705687604335155686004380735722541288060420872432986252680732051321250373995498292579026782517974704786679616792608700386172758810580617708571327128498277014154470104280075108242314637622595937930893538378691586728624325883963208480005764307618011856152162438237089885905812489236489142494750306423297595761092196331550553025730481168147526442529135104763813517467432296307129955096089709595301342394856928361090702045047895877879056366918132636111625458254422022247907957548540272507456008425163202640753829153704274768046599907785312279788431733484230636745658476118405010595129010804145822669604782169761208380316459827775259577366763917785238852144059702634900133081156010078985861140635343813745396413448797056453478416579626344249137962826965456174013456647265998347097231499442499760716788503817953982171116607585412519067621721733084395120890995902351139522663613208541355167005646931833204482284832209054121281265465872622924004252991142715226921513863965442304477468031506478882805209424409999696417968056607463732839376442642326145790736177779434779862718912216229683459622955273638726854973922983542648141643053891775036599454947505648071848394968351012764154014654667483579692839051953563452635249259640484710631782507568479024398535800698533051591714114467739972614829962101448128571703340223729667063161621251582390350777495786601702071419032079139424184217955662152461201824136400318633530760523256116813066112450418221562834043481417366971992812786567920716595008257229181047884332468805325391203017093888046364559257010683964615983359248617092686295437153084056767516670139285317105978600726793009009331066095526353740237077299969866246364148323777752465081500770336784074605724037369155324898867385494026539514315174487410390301006218754279695142694877934633224226735944256849114810976201299134087969932622834104684681391527886474206316421317782681595883063667656906560055708995351534829381395497076296080797865681152632500442178420895182210108367888728787509082472424758830096130442883040953820717408492992248373408640953113155882959131058685035445078756083826304256397724108358957599846226327196843595026017093192253855069315170767185984933477084567793119884080362107033997191772584559190920777185135905178688673038756514176293949871729395072994873308457915591675282352058858569806768565825067838958883946885412095141278333170866493527468988033136035916731114222900391075540829785551730941643606032626278043917473756433431795848106402923852376482539700976147249953086824049393784577098943992968813914494511407902020340114329911240757296534125398816613083675923151043689239534562576576780292159544173235128981379995255448310510709292902234777112811480228540980353086107110815894127319291292002534870272971568051134788165450443230785989183987917727714799670814671827715512349038936666221945403891834323384713536729468702161851504654484197119659521828039142966743046450109024832377679941615016780193827215315716807902481053826393514387534371410816019078527711135758739297699778106403286699243157243244623818350797225294920862792212552445312199402566241860042390714779736501260462501140062212514038550606233091006348670481137805037589524752801488483204640346708032105553463039294174838591790278752292005738951219368282376142352996521869316435965155267340077348763965015111771246518760043475546631038530294367593150817153506180016415317085336190596401775400293620365841107890749197264657024794041748526844589652560092274862348276198783772076473263845576893032287165452130793298992220391914389802292279332580291861022436738793395595525047598182638562904379019486384771586961938956020023563875543540747206921535613814000722358297140004139250264181048165026989500099114719692834988170166579257863385794169381772071215437516737727673097292091925602192970225053150595554580314668005302929141337748953142956875004030100555004565465159866942161245312339583199558703081406451213007168545738445337146677186594295131117252454935230668408015541346428525592559715281374006055392119898036976120095529932289729806895626367154916656928989098921214079671212080604534559703220957918468206913549519509366279270377587625865342731663655730658253501652469468673280378471898848174483215744379956127003497837464004300899031355084886077402040403431957787257990747049878927184583516825020755423105660549955980307031423811983897158057992737507848737189160872275049206634297651602689213813484884925880936304786905400466712327505444118603054703289722235517765497611403049849593158533842075721273385518988405099533503077058531186011378949150629998369405198914115743939405257947454464923697625714601966095393080005330733832761660503188289667009632735494600821780771905449459570422168511721421912756832053947348569668353141761616767436413947580062433400583191038673234275934385363060884689593889384753319848146091286668891156199190467914926483528246002638344775809989268719928768990824943798886373276389940996042391036748049364421052230032297614447934743261206234732230818444779235034838508483561996238775896314989963492463109965599379775182882041810048603414340666811309154519605501587153615457966265078656383494844664478144709576707956399879729212989854572148805675938543683024498120158949938041643878536739741045491908837324876179694301118582974547140865310152036872637827648448567226914172105211749836935238257337272265593322380514452314095279843325710362780746289272767463004683363554562451120493294078030838851716228632663647906063836748704135245825213549265127409225650363933038233462623880382205342504084229132898476625509571495414148542476107143705022944177417985399363612112750415673158081270405254129757704465940310314755888737368001505034894836430568394102768540058493823929547406216031323990950520435869410831604722261507975326483362240122342663296903149989188777150818520802834827315184307867649261784078701307367667427714713995630759838130025980663592492316579838755463448661365496731864656276569136647809655318958955217504510673740597016186312255752979311297104326234724873521761458516391475407279502036581633982156797370065000792147596774213029398924013024329466493342487733947951513239652168839298191373024777745836057609903030289752376054264635183242468326560259816879152405465832981637086139091912777311404434657246142935120994022532111802331299105249083226135109151473216958598525437196342938106499586949239545223384344980128349179697969332304170872750152016429250623375491274964169945693390794568521303036353223148056670800824005494639654571405073456074362517251710155622729055845213767716477189455533744017280499215181788331663080214845731743930262934268243961157665553553015680121704349653650543165009311980860390873098869358959161617782926738412364707835441144980749098545018195936469945943231307265267870406093024257586217973630922709884623787950651065383044974748668000623784281976005786203047465907530405496921815875379919863230914466603040111704642525397242425597343205035929702006981158062241786849585524974889339875983584330532791981389325602242137431031667549123033032227852131702315346286518105332844975813288018352307706122950854922899334444923222973261566559606021355335753109444637616088731915406610353218169283767318943658709254143096921719333402236896860492861316964649775277741587679834376772399701129841699780079721609874144428536224342114756316155447940993261922163870080472841012620732771966593199282083454466184576242760264738152052497848786410764441236231526657893801244702479838670887676817017090965339276120045503953850437135752022218599033318233457167845027748507012836394768955543222366727863107850311282480089762972029099706691787512654835192293742856007826480739150756176234332785789016812404963683074149844744129732428879086853827819875878934968278138905192865699847823333831187729003072409338811782385099785811833990903179639453591582059236866456905085156567473868443105809031732599253804207312935543233329297521837283115490040922424000754698294139330527513529341365719524648435213573515204403882513270407747890448084144965911912430208742694240647832305371815881933704861326000420038820440050655185262540341741582411535418266038542151147125046641341276148018226851583228821182692194929067829065764825009376952237163083015413808268103358949133961725248694149009874974581413908478893538175194195766083207321947294601840449854279582135151380923529083392554402055616345862660287759540009066072186456069077077310721119309259845390888998103380726781071433043197947055580091632043669715933555614157175981829390279865140220564499379994633148752933630261085159319794989373527373359424262941562910388039084816041087440328705400058819782361830724348184141725580560158466536203569163258554100361070609546981780380306716935818429870599211546849191157184898244111662142122490626811546291344453120935136638013000332371874003650799759973593115441071754500511564119075730831248156433546880688298972787126311709404683836214368552180428135165652322455617464797757403782648302518003299936460766032427040499565426651775614320884664454015927726290623256555302781949812090783131288926387005199611959010139104346664451769050450864759243628718189426988565984918571448618651804681921573321490662011726215526507917790331249719388071516194374546923994186267567574829751649137844982501676672853066891199124728035898973565547523607717076155266988596600721462592475506628798768371501305363510772158504555831919146473892686394750911762872780045587171503224153530445849163911025879240192768208509900879104832045869461062354676560246660497043890950994046766493075512824851936481451619348176521634555064679881485488668726829374134233876353129941710358988954162683028646463645537499731668755730047381346645639293632278330504465010896797762231857247951774250266469887805082971603500269509438193270454373995102815352612069218511230257450155210312219547301834164092088471095755512028639038743579465137420265520660891790012623862170236272326395159097980956592415335994476480383730787268013033468304952676908805804265691059658235121239285891371555094569550266370008483469673663393115491759733275757991080740068691996534476825533747289060335487223806046962388476378886729375806077826996073656821651005247150254515946182677423948401523124199727487069956498148493938303883685167498900408237884493955477168798564574658756914269469218032122940435843141748276845155625023080426102599175981952860091938555196409655486755059084585005259314598105024302704606878793549688520807537159573312129787168630764094095132741440235895029067622491771585948820474203340959299261633464277185216731994803049817582831031988189024571462273370872045636618598394568407976912596178273617020067742452115149254622545489042355191054460419636668054854621976673935659569973387566987922425378508324246728624020540939180589585137819671761678911914238438973368590267284551612093418334887799007846851999552163625131102823145014535790458935298141194240528467859166061936101149699070735773959737617638768423251879676104485589742100201109746165468064036483969617554776844180858873943979942225430128782062152509300708974173585818634544554282111708931458596781921591211833318338805001288068020131021651280649940064610402521761978335475274131731766832325825975194277844036769499453279829230182885599405142519146712276309801244376098333757212129814515379509508004388167607673987089031120603867585421957979163232468375484698319233399250119289580059247598105912313892469696413405570610950073340121318508179405811886196762596779056838979702242484334344477848107397771272863656396536375509614220037795376809514622324978979044203385209780348064888748445257972310381975477910930585043596307600210064082917732219733284825300967507222402341036474866914384019473976978050313157852372513310491282031732112423785913420278773653624917024902780257560421213662883457238463745774592718824589537227691998913185147427794832351102954392501015416961621202755927197654392466832911037649199739017824883254886751566425028418115468264867827544563016961423867028559591263256413548980761071524166039087440804583447095654673161813127867434423142736669088745944135443385170257945557501814979095363849910772758203271266135683057538874718612812657362712228307941384270454385872550442931282942570400117455870550953953539757333899806230402588307764319269174426766458989645386566866423500999437200319766980019889440549114660332819100150562449637667868345940191173509791573217438447460398062829724934965569825862184165469351773114812450578826981229132067847974968385489908723135238317822884884846961317069001200285788039702226577250596976071910831694965148683223858568616124262475897844774751799689653054522319475425785048092421310219544135661240669324277382803135753743760679414650664675061666236573008696619842044260262493037842432953611484309328203435688208630715472186229808994959281583423916667235606241605292266274313339521472471955508081848532763738571875526109873940309380861671628525557700746935077157116922610671001115390126091524331363169810289334186968060584296503197169459484745197712834204405981495194111386525084534407652041056477831277860005635895750864874413815890289466956837670483752677450436167886453146994000209241523307706600881612877539633871126918574775877436486839398879997139419924257991873670023450450957847392020132959690114165350235038942772177182252099897213705807056714427473470422924397057404316195961315480689017287267754829724973630508954592759542895079594616748739798566420328868563534013107783146313320989415724010950144535426159876048704263166419880382601146906179335455296212132745544142505422819904494852720610190435073587191786443193081268490694202736544502782337147144001021320844711383380277265769127947378026202982382070177302980203302320651448949560402976998230766956263219610862411312544164672775757663616120817284120202532293044072878694210228853306710550630903972361747563472306277567587887349923960258422119894343276464908675213962593536943289856910281328623017482344202621457083358630018714549347730856460693295467637285084232563773863706972149282312563163721710085861634167599407865528334475411172774331329244839262732450915002870183255227623771892025533784472290025369759051247716965980472691139642705891865690948597268525789162842139055922647415539527229349576267410392309150797656977369426009424221700322448990138025227565796256564303198176923772169602765189700837077160585021410888213697662737052595893284611234301091035275207327142392996859289353019500748902325440977740209379083154002791896708450705873586495214828636709709386558253560059133519418468497717549632213663555909270541518834566424418673697160367053892469798893726986522713255433070195800392843135818153387773878136078717900244918183797177805398882820605866094838249692587116558955473973896479856415593332661939357094466935457492363579852894453853098732759085745525733707282799735323309317714957315036765925218248665937170511036123328405379665079724460542128650294268442946321615983939850608555860933562576298215680340226187956231191018203703693549244899553394981740553342787628656233117549822179496362027142441518136819484169905721021762382218329756189716830440683578829812156448731050241424549434589268395722508954531388896949393141063782071802420901052689233199243488661704379326559420888618474064841287572615500607147885456150334275884672883259743342778397589020516033101172838432247827700822727257959021995792453451756027041021013155879091259813428376157112376285204158893818933039216151521780963825334256352856948254976356209452010873732803743149149908493231703916944421156268386297153685277914932300690935294177260392411757505762860351064273978166978350701456538812129572136498742782090863975548560113933184320457153480635630467277629744301474627816175044795131839434811024958609466163200739912374941846113889922816341379078987626319580057013728966315192505612415528215274897188797802531315816075029284100920935997880405295997246289473035159620307734577311079113110496027616723912792128925873092242032606776930639123356885744407045365118573387305519289222674665807617352037602536509182214359618718290059171637332310165545931614834027175462717039494804936585362152085352466129830403787782808267141067771777490529711251313460012902809896328784148276063584233006819670996517536457500325016272617684306235209409389041222710430943894644446541060564268887414387660445805080052017962798227927354564888015721766399923142046742148897444502410651376817750536121414502201608299008859252175152480314564548414789498572805375949145749180277849893490508857000768569340786833549084703772890737490562483352070601271393710378433035612686604413988906687140724563842496977988457444866358078051616067656068761289936295748054341699045291947197629572238369986262207526569765722829790742105052452618818271371646471059083871521522782484959998531346215532304030214981094685648990820734357003057583053895667057877718010492326620619775086739820439410759102445432555917895809467985277322537471514826441498331602753574492273446601441419541534376282698278192702825770910034280941486982515746891425141753975894864358409059652167727535770128406685331825422808709012583769527412307735397970644531869919540447733199166551609581709166353992749416573494006499015394736844822940773663899777666104401529145746370298498099389305742088894021850690881181469176168998591088355300071385613628206374464582443595166194047492369551976666778169658097083055099842102180241262977515188052178197276542499589778643785892581643447075313569474051313758646428778678130622840157669141136489293242787758642571390630224988777779323580333567621797860895716192924449954117438860680794720983024680667995049652757962711003899418458631244802679407905838596355845075697967228028802992705743158345579302759368475446853665933525167213980941976636425029572901311037512045677547643964890400350415276715191780501975986144170014740103122148239490180356187777466853837745030899281692240354283232985477857686805497103505178156428452090817983565215170734416318227797137427958046518542080218130612554211705271403868336678298597550244859641292929990296786509024056419530886428553292215210218003970910514537642004093220735226820822731144622123210737923591960448158210717993211791537446037361217222676917096987379327794652403284217312975273097798021305454217174170990599758630424347571464991324720183011170051959656710027059412949012500413954182238878093046581809253043898121828121910167853969156246790247795006552075938369866387957601545134825054877960007233924391004702887067485564908881962764396071756888520355562624594021654522156725857163342284493557629796599451123931137808327673126859774884863045599814415251228856878234381917429111481881245887865794357489535029901397112909205073725498895544605967708301585269936311214126917889164862632981683195551995097056223231661437834974328075019365246681849897732618884785669605446583355268074092923769751303917997204336014065984879391945970449251645483771812066506152151028069233322276458022210755529939644182151954028175004627020560717202770357166207299549417991852824287094089339931272487423244137804956016431004958972293703062010565840035915706124152887669539151639353389249861983582378171394930963734530415982661859634699451841686915546665861805404125910826122959077057135196400255879251596961279570036057125347102232667593957799551829829177036877461104645425508341184376408299422365111613752104522975900483642807536445882971771079030907028523777717206366719629134973739884002057707918813951991841551027093107028690590897039696791327547608626758762591877109378325902163786208060845794835783108590976474211099718222318864872886565017847990207943867774016781823372090838423433974049839956461883733661526313929841103925766392964414422515226985225031986696135865997498220876355631845210078897409425783447842920694346930765496302911470195131591047422114422092926628043315477400990630178564504390680446273081882608385057352014659094936654782917021693692644800959393807893557108399368528746549853935004710772449075494010801220226529037432891476021632954181262033441615663328532502521149444541682490592255651536846416873674278149697513677747419020086303603761431152389193326676050189638669396012501882218302628275677422698290513451785819699114373118890330451107169635213545056211293789843881245493576454729817442814893217195831496260683334590591928953077203511993155601450772888213403678408535636076325954076472118967795844975091695892645757639361515332693372256756211924801471025176429439849842551183568811652839623595790483931278168453001725218695787134313651685636171999525916908422010997245561629193978578994127472251697902518267958917610159688560024208099260131311684123889593131008677799714970692974965108492267753911290495994696152365504950462686497656225696117013286486321212205711354920888447960848836574173948378352272590992460562149686325280199991212634020938820738128202791976419525851880624195364457942738756088828885968044068997072702292780340005350572163116525529626706671252282337193836231273588798157596487041439161901406200078939207523157185809488762462245830027433870473293941845217088436335813169652824042825596298851349684814423220293253255323664367173698424070631125822226090577419861880510716084645016778854776249649250334811993752336108287532435057352497062404920943304542127288452400469039883104167745475440802588116787775780068779894873050235619964845815265671791146146035535019920252750336767586109989428396855896187572049164839437461683989873439059549283602577659087515756209891729588925861985828757951846955906157446020846427897504544912175721777907936209507424964759642734667282898861062757527620947235268100233167810916333408028163630819400636531500746930204268107165860414737923156310855195317013254024418452352483906137389521724677272044832739544371843641145136856204501301295262958247713486414271819367929133608750549102263993815035284374926491761713868796642166339257032069797362677620731242423899323673973723526297220599780771928079702477089921550963209925728524358414006399149444735965846294490583391346260197307389283257599734247094403140366750210489602869738548983414102163936518263963345299788627724933470333548467682254700111724978677377646520760097442475098853803857136633861284471603774238481600659632619393224195953014381305770447919813810463498392685426151410282571645143709239975014213952725838433099675316132398471692694069902506744094085337182723632281939791742079460382091020428531558879189942014731007043814726479016365433375999371620311984938626435808762785202194946833320900277588248585464193496428206887989539657278096121286042684125585277531884401961016858738594532912588710387691342526495085254821447665295469056281416660519447791827545978836444732336873470899909232720689980025606399931804355737617339071175850008749017947297724703129981603546296827353624964424191283284931987641058469147909746675672775040918727055521473151613208643264827222773281770262322847386392444588774205048024680777964145059353494556924918492107223532755289708394761068698627101857050137650701088384376910850125944588512229737720406377803280033394170917714289043971602267738258204962686144785952946361420870035331322741682766755530886019273788034449097930664132858928570669512914612925149813391166345345197563796094076761081220976515712115657574754088020116352190127024469957702893121414141502135624865779354517308608106183000210112347767251469912852540334211037099728823545223884519380833880398231162476181102405572529090788867013560050188742608971915169240372599505094926257787204627195092038331879933095174036386704460713614448783898906959758798984792281655559688377312235697504845277928276202392110383257201550620702083217205428623040925719258948887253809990120795570657298086220526929948362066858282251901130332803692225573476924626561071099232573852033587213777734651526922350103683331863940360170941675713172639886887006694325110920118367758961482532979893679369230044397916785598728244300559017801756907062920850324777732167227987906883415916351519689487994450502725951005942043752817131096631382873051873015416262397151735752936881646266192264967324177636917161663343394675577701261343348609705754275357154865137981270420848566125008559185810825566291810947013247899348250167833597808772894494297907390843005656595852620550520043170920598937516514774482824454773168659304046565104070002091688664814526317384631865146339993224725269037651393707376065692449651380084233148714717002257181914900565132993873626025242355637361210026995306294148540944129295362601369505848272060753396809425864452072068089734298165214005696231207708851757515676426642734964562469308988548188741678454736369422222758151828474637088734998988872774186139234466113812482314471695912209324137139061738934830114398822291926439277916181730594076270581752928111692998071179323443903834507126050068629991596375189242323170871868050865874208236953640515868076170605666806741983832709328852909988210888858481107215356056219580538442720843814413166663902528190808413120722939308757697174877919656863290199904902914001324175311019285922198925151170387177195710731905032627987248257072414303618838461188343205995259456430356918936390345233542689415027812218542394686194120781988251283145399580960372969422207082047706473133534612753156443450898068468613142474263113050201928309294636778176676543819764132624149031257554969781210677960758752001490625504460322622418278744631495394782403194670394272717072160683684885309646197781662346844373094967735187698200607437311824480621881101329891184060876900084078673539655243193240186779360504174939207754983661897887440399404775706799637249493483677888564947893848104922033882327578772059972341051026153802231194410058554650752206802486648397290951139008658642665771960302920162936614432138810006117769918090991202936668715582168336074402944568246278023492749833601109596307255197446378439395164042621448955647890250511364847663928195759251777887765534583962522137603724468560744551865461410275608848415326947803278723688636141854049222455819310913662046572250798348476246666797738536188589529617806098455179611099090158256301220930700703041046370032000070747633215176161003770656594705534319465885462661025911900013666320656021082720676020722436075234700481863694422708882458216999600103402697252971123997464233597653120978450972386142214931898683643062042015084845266890402081110363435355357785983109505067236429525600746653246562349219643246108231120571476058927033111004537551657250791412138244086870264195852587292399516707505079110083668226247176396133764256986783730993972349688073732315823599878338931285421231532652396007067177717939030306860641013402020720050715485971567558589590970760361688128517819054806928182530667897416693868930145038484655055707202878288488856419031500287139184988096950811634509288787137602873491724635756525416688860243959811603872436099347864958079810571881954255323033115799369476671731551345540711170434546615608001530219226258295432673898482070515378982307970489358251535577155829158176486158094165853469872348835279717956328445117123704750595612133537905960520655988285847765238493118361044091896508956944763536596982294001814469102849960496755341241985491641761104499758386981101085798852120016887989676018846756348822927931337505690951469601604859359215870221682190139969604448476461814666271290952504541281745830450337132071811869329720706205694955204436031542847511734913674181795813355996584932566132272415607430628207729085333309963410042672805817768228598547176791077533761190293831488839058883221635841318589746933912434782093657786787601829247859905024003326556226483575392199011780206590387318624567415065023680283922911634356308920980710474543779861749909052642239202654724043550649492948680520786030196282084700511610044258283003140524926492347544529760368000664200233866941513985857499304683115993210377953367658878678618685706232089892739594695269262907753686422280175300007013107368481745287697473686695007890207295177313802398172118235605407935528053166563976814811929825673087815008792044824071655762735776799371939249449513549104310086430971480106265956347548783385628523799883339517507268207481396165563493891903618270663312293371286922350063942564214135976747448075544334392799003580770152626504817346653563291834869811589673696038438587379077698340003555524145700077321838813916639087251341980219511882833075084172714509393090332847007906500438751270027864221240035184053537600194117906822290083150353683372307238845493464003521534631581121008479331339491882729455518693332388781272925394007222980364292301527459343219870277046653459001316340097127439851264091908224337263523214953244788047433219479180735598482212754869868103881651037544393772457588729777175727549024161377945189528572088570060182127959444804076507291950939805908507452311125763684486415628082166959200965644158096847036134343170981124559042171185436644636340881645283425302178109091661632403318856375142055071008051086917864924626747093823786897370816944663109490864727421157191794132759622259820260841600565546553353592624426870541894654230034307551001476236160227268579517436601425930982398143994418354288556829805429071512278254528129805742605741052027914471157128045012737096632405580574519767960221006616582318228423459350389762487204617781030139877396855339397854924641688659550984554165826374249729705286937231422768128728796123002889837708455272532974620895899609204581229573656889047087740371693658338566289163873025292204110188767461114305109128107873171708267498805522719448068757762394310561412172230477445597604664251278836957714865821640584560056795771535163118049929348754203671642109498323420751920225936790531496579456637892990871068367019941426145665925791482736029408100393470049343911281208195570881826044417435322940694108654853975342329806606288256286052492588982354828446618811848022248407940142943573623906514102240600565120996364226332456796692071104182975599809405666550832622189588107761978024410779418113834821049514736315671356217374586362156135579525916111302949130807478036175204093107280096515299768238585761656068340096829777087030111612744219348624276968815801593030527139727281636761716376139817080723461834888002605335238195257048183427627815081776896017593333877614718609902935402121881813520358472016927405391131896686732242234496090745510856755806837902459666042495238204092713260360654613056261590436774963805985197731823250372096641267911931713684682982864923579073619940925880357657829870387058759729749203288323953937801036891117957454779436487155107236465905994586943818610914599562521374347814483870894340562254539535893564684568270790626856318029901155247974380877216648958260476696339356594311027510889251806618524008187732308249501098759989809956186684325962993033396936664279064907553465032112051591331844541675423953846868947220278194279813173011382175225989853797545647400151533102141259602204429953294986811305721266841855760108027090558397108750470107953815376793318435670656960675165150155399915046471750676442647192709044986241874998450638292221552996525736866461261018663211365585704608501320814714330760673479140221016171851585786147028691287430270296873566303723635484985779646898450064573147460485524378525611195000404212155453068414587545098131905549561475480607004402258041329429348937220796827302675136001584014837161716724036024969975499876844600099926690497306880932064449680767943709922626375233715156300982038865174645908712421164051793668265870839381352300388820274820247106020029014403349659222397890598265766684921800940933733497000389337895922436057646946616931985995773501108100220213393672813521876655190103423108738151394730842949759090387117188561951324116974260178239632367206381733184639285672166721315526228495489209044585439653648816521350814273989993692831933830527901791594025345444503579238714114063521411409820288139732387816163746116946260652281841750550960315427788462842420180695365224815315121231628371381976067729950164735164111270234116770548376737507395774932196328316287806441319695554385762835914645169527515393363573950851339158612938084685691194111133961214430170930194389553288924600893344398629164999656409775472606751667069525018736098784643710075222643808851225983474776818861146529563560790069500729099602567687279097014926876752403719983244780692903998549304921215910919228740886460231032504174904402188143939073287167758524428276688138960006208867908457593457310901471455966053840791164471418566371516908234281935764238742908521818877290962732791897627132837603880748587843861639454513018046807411570572487218463898834332793158457037413529630327524937109960958245654506826242516965640493932679701631742088759954969618532817513831636027587703429369005194821170999645891638005003061790654645849096154174727039882106314362676663991332011682066634349899264320168470191792455303159979528908928322512687566336930719755910472572414173080496174755366874553405909385834772472469875118783044688367644575807944987513917269091524406457477524571880260214325767645836810028586095785349692386535011585284068413024455414851284521715325247945111903024562639007350191700488692442915471839604134820654684770819905871761336896963371017826681841759631405863545132311268549979244957581579303807009170624740374923371026457406605902615767386192649608395191254548815529116424066509384615160804888148563289468530400920476411090601678346662618782547700340018359369557281213680798525079945569223577694158873368393328386791100530412571429386190230757375476843635765041217273842326634176417001639743119619360396543743494128001153983406943931473332520519030554186979810094761328658556136874750336170457408597062601603393681094262182271733876569075394685191137530249516515096688789873409245979730844133374700899406605032747155405914283217317941334248447145099115872432102496634755840970787677042230818477920478840897399995403943885167057510316261341132470550406812389507574027269733123035568863272695262082340018399124925320247985817775973940149847212972742712362092061732479048072947324399181361619786064498491206886832441037141089019166856768647220310316857388651344505957765442914420189473761515158584109889554505051927533611384177154772372345912340666027058341883924531471961695528806549532591893902855426952125355525048340269471274815153106111012097993248848009983778287828098097251234039880668767150839984717613243991029445945309331022275082520878479181401521470676876958957039313940398999831010365809961893370820222469598826728575931895127564690678222971470685824445936155803876640076765605892991207321787418415035838442649848678358185558135574904907230464908254266388712214307032623902568303234258104805303337694519241466604858080118461176270337062211031511179786355352921902054893553413409036742326086703064507389289944331967318730761233228834267378361483279049054451866255887505565815342242041020753783553242147970286363731346972155434684830633886456308457365712413408605744098994519513970396890515451921742356843459869675467877657099328264259705661500091975584668015944612774518931396241492260875294852125194124951707724148422351844110978789204419573159512673236602045504691203622715530263320753607464497131380112919207983634157180806652002665120033941441345674033704253483764376477532494074683821306308237031273858167695471966669663493989386394115341535028893128416725648420307532070276628784029896720376572501233970114162946078572762103906283818321324960893523189480819938889835381656121212651556815831573546159324321589993986189006357139147225284887193736726554985307429887713932172207433977604460746316809868834956965857268662995404121502972096177692705289431713777941937576030440922751267990899297209584947491971935944607028438625965535018194765604567383428145522063058993137524761795449469420791053391625645526219265028550730544786962802155165833850133642014861896468904026273092258953344580781807823062976899654895914419467972789767535798530937766111311212489322128839202515933808270021720451089318444813433772176843297872393903102561106035185826082279155631492791265171784188543862697893833873730604695220499378043464702474123975137778651723655062411083682037757620140654990586886645429682522416792611765301459443529996750295519383861522444222501076051769088266798471535819573679576783172120089516513384597967644767363166374772236423005246057843662192489292688219672212866589668417414839951430447935773971869045132455907255627360374490481327146527216515029676594173323104349915882290008335173825091185848830813960818966426389058713485387194432927477082936724438530136245653412913913792907435684391878388364984000014335199760560846433378497517098207232984810759841553638118267743353329209906690733427224158067077556451941861785792383680938917881484851547204987333071044134438237496137081021155381786024404346057932208841921502597728096760398539592782218743017299813664045029685960138453150347183676539061437223858958209008685029926524514669390056325134952671345915445804869797922025544963621081285201983857106994967710042027099205839831914290290624552659457394805708795529497312163128540055213934984493149296748398232369753221839121321341916314301141795557463534981081153745899938720562927756946443123211724634054669385996276123701678819879835343059996023840112207747986488824867991926664781809499250934462870074698024710734439567088269176053172828703928716090438073459527529968998590373217458184759606507653384518625133565432382693942688864875136771175355255376878833158292488763674972622125735936304569692863167481721958295293556281017834378608090691339790816430795334174402698485589270886458129832742585322088408247090151854780749649905940029008792103550999590640042399101428343843459964154206557581638950358267627750797329539051922609137178785384826174547721980137364658451861217231511460519491584589704887018346683626731659760987271949943400989071989287741423938942838650245431756340407770462682308861528222833865422001318766632685881895561910921448813931851484482664285480032051207373428439303804175952855191509291549441840148599010542883376435877383394437279029071816300338150965647231003089395282328878421855832253481431022562004021137064540512053677572966260035606049007458561267862356581046305099474809025404241161207236450098465948622326614369629774603628818528211959613588960421643084013368610632048332111731033752954798292455395303108449509492064649040218914368653530624253204042732525831288982194496822626730173532752330474782078674416059472086913487953331219788885907404104267828425389267918007832316506117094584839902729636244564099640509467200118470637554191604158106456880533629972864489255703188607544516572871092771986409874855470354984644920443299346145380638167383600609393142515569084043444204990980832941872504421018457534683271231281695347381930288347792492960675698393266198732569187587521425385760961968091995360173165760966962918060859848529215418118126513627828875179776783813148788202988353719796189626091236634732890771639600276549284065769835794874795545504330937608038912053546869989238899104631601740485418138981069833325840361308904081161280018710117806851219700707241201790041884584119044324212199200376106218172108314281844409986608474608807350556021130188048656874414262211167271777195429352441176654807718898511497840273782288162468359506560398673058869682890434099500775036809409305699979131602653570849756370418864450562699855697802032261391928320622748232148712503030683621116335247295830107430288100247707611791699002126507502881134893378529608607265661590262342368801168792238206878514337327334777835189095082751466223236669693834163861069906418273697644856596096660788377751059092017870049976727367432207406840814523793208565294918736313199193934587929996537637553532451119284258534700895304048365752700402753908743047031481161959920518273929292217937214040775602052775108483769063570307151950881481813593933768413256560383374332354284068831466648389893865804520442895207611624442687732877385674008681960872097094643371695336786681953995720578526977960152654795229467853640759604275584448871630688160503513446022179702169180138109318796199768078519048471502443620353239334680578442583281363682084110590965675910666823471421881399424395405872939550305547289628895692840313984313910766733180439807393577361920189522848830825075054136349272215723772091697994685873790339010411850414636683817791860417284730987127976312183702199919268058481049621593827868933617072716108525670301374731280786281478146062429171508989577013366257418613929394019789731499269321033446506789707597510206633784232716927651482442187431426006159442151679089290004112247972127071503002048731650697582221889280712125127775260194614830348648705793769903733502257113603266720082040742440993262140673850460790138390201332355984077844550319229336647270859572326885885152305017530552206418132547999341412561617438340982200631210621314246662725819826716570106821946463032992835724172382756536243875207561872468063838967122420968416602073961464441158982633204818365361384717347051814497619906927741021649074377728299176682848652445168585699563364907672992675516269517215722557344009263285110653765840575299391577758410320472342928001896463500358646696331975074875113637870919165714703146753261013254927997255537219155024854288606443844268463090221197290489280556285418290681725728370770235229301771925538433172695349860937844904154012767818330662040581193749868577668324789156227008606172117905869597689973795432498854719135990267708306707011915461742621821362924861969287770806555688792961297938199044521696342778507104184055479542819472697184070101488198636263621518843937512041358238929186271172888249899192659357863681848179571684384422982882788926068598962858270949049858233501468941851020905399847321734632922414201266964112293232244442962296414969976623161857837787873951622018244992096779337572608172379889713285259817093559803337819118017277385104451612529197462807423674032907775062216277385386286852203679808607155992183493241016257355997534732911576171124435907489958064884528675958804627844592114857721367745567347907700957339849732924338137420000185294912727970982679876813829291332985301722644043308792832020692060317201859493235121499600681240832925782201868808301575320907207990545942281033021404514141102907052832566383841717493414711710254861880893526725874282099373742753486580211902203964555135314799806939199485035055738580013927391320228037602092635362860515618423071271900073023097642762646256484041186685625466549723007096534106075384136892964548023209031111495827657795801062723367937158566968671718025229752279520790065155223635414965194771834810214217070998997747399541755785383932872924139800842755491151201779869837436565625699833432405028059147632934578002262770191198635061705107505586963418353287664169248405902540197458234056473105333081349837098478525708687283624511199386674196937662659956787076583843715656764637651884806266888757092878619174879069197617228179870269633962012297611500222305007643785476208173429574571954179479909622996728212739968246454826662905895116309928660615036012714326290161140956256189213566960045708472824056520401569174917555947344350094309495957060035497072302751669152177385155266949833161367451925132991941203586105789398976924815122467188635075742046864064948362046597345760497522603702422181489818295972591786238487791835088860273652956031115119153533230303448292485276216433703447410250727108816586453044301449658607646190001126564183119671563507384697683193317986835156581444992189662208765339443482384585261097736769093909133270856929874039230467889565627330481304481117059985592653053641399969971124718986045708251844650956521361160622091302196503876923625759266589790983459453067634187440148645991592291382772593645844101668570530716078751575540582661444006892213165140381478818044140817402125260561283573450019876856380086674671991029664164930816031153074329626266073962659756029661161568446498305499402310142637196836009544727275994864906585545779802472518424514359459424561533146472514082003298967348818732666236572750151642285786475321623417382476669555809768139622424203865537728801477893963294098259821734673621425650312149352615772188612315428909367588183247385650756632537135782101742150382789743082260354532541917631131375305646374657241011177917292860864863806469425112557455413656545564957857396234563927540610620630830397802309663888853802063153167069642561568742286359616606187532297178672356403984921350420583408164725639508982549200466271241121284168502206051776539541951493199417799459604006112781828324499662235688586132326156402194687335843646893526363926004946194950221687871761277863977758268747694422598708432048396630965181923042306513540303277105275956826510295942912659524752389912565823916265505616221435360795561734793554835804421378488982875249315337225635556854882470718528392795200306629152670698436241587673871409275667361187715970312009646192314137460128689503579654003038832996014776262590558839767090123086043366369694093599294468207060202915826906977016277697592867615399063337097335695954596190345968414252595632650753797165455898934012774785118767320584979859456149426958741110814846385001583306402002171301757496442528495948386808496486186095731874909903924915019327192955300540757510761033744823459370092039715662610061664115361148527800467349068836684889615433549926331420873119862433346973737661903243138486267814734308633153096258187539796488081347907874438765971225910965000717943099653035395551260520927816417462668560707005168258023415160120596835092120548785564867841172885869947509369148139220432273545640492021033253103065110324230705323085322751531746216237466581566832476559222121019065738403949960210556548791303491787076690803417679041506536693098566816416095358100473973140746591434518051003076662045853684200981036653697285803714086322033872204228799167336096397056213518579532494290420487923130977566741057257566984136848567068252071643093031055901628651877641737224966397283463507785112603472331068230799697214718612433025359011671905121361941081633616478749256242152169699825069518503581622099049582218949736572181819631933583853013824613181417029094962187009608902999005198484950161546655359335067183758133905767279027837667964119826192126747235955268847562753199030632855049890153898143956525041285698102439641750753740678751208129652988952199741873967654132565932252095785934807075909494434983669634222130165968691431760003527242741651738809702945139346545233605320535042577824874916943032944419174917780566444719037473513399089384938235326923078119761058551956964815504036483015013181028689497189947486806473205468136510665341196866459790184168421192713923024861740542627918824709152825326945559089831682992067984143084069079202550273374309754846092559113943935478264293367636652821882807854300537713397693741749358367347252193895975494999629725583022502505215959359100454779631658090630291460356814501550614949711895534022877065325468145036603361390485507506183127418318439189189382548083328947317581354877478798666992214855132810637474451614112947838585959056486411641176807097007758691596384744438714015107825689712161964716516371553252944104878342748363770034201278543753307909903652751170892344945360725575368852400073709880778955812524071680721060087314134236029088669697578693787591827463640653170467706679551264595837180143731528298581750198906656386163944966132507579727508439706015802004941129095984593934469765271591406287801280881611585707570995772223136830684679707486258457086106343049824045649922956566373113155956021327867972700646970221831194706404505159725512900406760049906171699798354507138947005313754220963239636916245501041413077832259944086920536274816406663903194510505053496663481084490567229239880342207350098426852850734143504294218022712149532794405993299019508536087923663237007801936959618088214845964539364574631119312299934970996633222619119667720934669099761171311781848072616912319572840582307125109427326715033771171267444436778608587428826939461392636988341445596401101428822521656059431579331855325193247780450269028946658111437232762012068579470550219954363771794509306362672396259883955922407985117506489829323105040836121225552540223196466577643602838695855826340756758498325327976267293907801351356782856690489586028759504213392097851105376972013425073539331939632050880091558960191235565650911868991217022393366809171473435968960505566843983320863369482840062380472950430487481404448096595689292018456854785164786983828438668510545799316135852987125020092454773661718610528023303268874391772181785999373962366444469604090776066212411450192548328485552385730277049287430842995834519665018788812166518967877500428547905246718491722233720726748866895594543748842878785268790273807174903031740145081852527227813071251389789818160770516317022496270731446760454541492518788773956169665007955705179669784987666744545196537023981136882372981563056122050917566018667834983995379276908164155543081767522131719131509839350900789032454860573694126885135212710013524144552535280173671680235789289083616497476057163528038537738170130771575342316515607849261379888827145040812906090259956158710895400680999492988414095850748584625285227775996807350961196506766946844961706960055702136757780026626705313803482373077913574902285178746489048276689198663648286517702144227630605704493773878651544270935784553610407731864269282632831821870002849023383067407243832317480810644244162691809050337276670385143230279237835581770878501625196342344681672701176287230951489000657949510238940817438137926585355430972864684032900703401019095696168931098536856899982456636930051996329183546210653942775817269206581839886823309675199719336238398533960303110557775771075816454554288350819621760760919729948885759218814904295158723056210276417299271031907664562985102488095452075865244801492386859976451149780030376253998979263378838285117182759877576533626841420662833469214495650768941610022267454963763223206372465403201629809767716887768384100363891258598474548263375179392153303753141538045248662943997103031331231213437300726994786622006811551360263860476290515408539691809499335897073790441521307785168942320198221286501210052822814192895905755896024362286370088559757821590151501580591823234396886961510646397300473259292360416630625625525325708410967738820099519709065739011457051444523135010352620163822727171188053968080447351710380455419955620134143283251802981298643953270283485231605570661045724030167822227098092663394483145677142666448522739080798063225508566662135424535635319004974557439058111039166585860694039868746706958877912015082917428527065050733836182048809866983395759890713357316748795980570833498820074864240899932130283904634868997037677987671650901476736785157913753663981579340869718968593691677981429423606942754871041339957886023692423757770029809604909827854816956789574117138619858420478386486961425523259227152892104777002899607914801147326003074767067139719219484004455314937793656057927743034364054933886674688774008605152061147715114794346548505411240731219259898093814026887599213396801268536996102093859279492707212246209916549190887517752260387876138523296480667889077346923450616243353828286214700766450257674297758546996527340411315776293179623043421404366894078113600657102920908642712508702579220721538659647021415722762694929434501002445736017411142897571914408892112192340117898366759828766515624963675277473248596473142248886982535259896835121625920588715702435847694866442969025090026819441144899590407736497179227855258218502893648125458042856337778772131558741806439160488677168714064612245484206423251871638995161508764850133272788757564575763045876225602059891498143120445655591038469184397781514844428057909673357087524071139741910042012309403789142624469594861020947180536583796512579031596318324361530716835012223940861827054030131161033537231130712044609545138023296610496242781601532387052041142906887684229575258151998138444910522023653723469304648559274117073708502487349635757330920000260763731478051951700208914490787937886592494889281786017008503406187498584342421401144569672724940196121290462411179565796017420831812704438333003387271291562173949949625166405968285711347236371431758125355425677286932549363222027149819973502326084664564924492859531792637648510580887527576419005384546870463059686580770879075237148945663732516607526753179897820962030930210839244751516218614049788965099347958602489770820445908838164423834059436767300287165400857422434715219315799145464876918680595524390207775275048818611220005675394501788859934295515261964363846689703737936677981937023776482323933569145434975271790517447650467749225703303508697277816458546818445913377978715815332075575263621152596705742008119952076712938775531335005883487856064382819869853357788337162849799818815073857471635697720304649780116038470372168140279637546946685243205908292983386712464562415982262973780405597139232139815853265163795495867548462904130345863016196703880148156343111745349690985992591167850824171293450483040413898263658970693784463975705655264513104574712278268721844584146341125107825484938459244580944975871364540932472868202085458042303591291645738223692017638964311961968156329007515579078301326326769185932780987453354649939427337239404945471159531597201250852821979012091985450933018298598285975792917398866090185470445724859917378214213556471764870659317991965935322252190226378146484495805963326444298223380135167303311170389691304736690404671588088682120875505013357262025926593516060579139448188777453530693018911957787870215173760895556201541738377396426033324028640758941434237008918627654831139681273059098922949018977023420455988089496001123717637467395064820132792486589281314983158564471587981531752025038980080223674369296953585933035069371726381920987083450362630377857443874650932008291735605447917151910017320780085353366189159895714485532150234368390609145729076481466376113149899260454958693604117589967313450714135933947053363507266946428798667755043726764675402156756609471935719435537421434809396920234611398081843029178256362606481398331911529175398290228000453004124456504140507205617356599208719973345964666064220316391760321825610643460164024157841134740101927251634239768634654041683381421657087533131743543646001584079861094558786055506926914813910587514910186899462323438601586819492891647557066963934221673265949837918546415969605368494294523423925140946790141320393643486335061589793012301716914084535775338975746771371075249491951625034286617080012609331337025107600365190405132798117766458018351274044114156673923168198159747619828804359985310089216010252660316981580786427974178309082197029685869395651591654331472533192280611683777159312133635430408631709093073359057766021918509412846675429927945833518999141485644869102441369202342812994019297707554689193086842402612233113766575916638259124037653186603433650040112909255527303060698722094201809451376863844847065180026313658226181765670473192398782240515075371730111299133770778037107580955931179814517282917282417881596695573124860014094687930864009540525196041048916125967784398507848177631381569646988056683399211670970651155174580196929275710971742176339442609928768441006286097794188191682837052192122323292734529646468520092188139080251813878674724258503758643479785847667674820042935764174005685097141691430791285674852710488318368319610337663783167989723711498942451632885417665637379415739739097773183051936584114617753563965094134507546409490653745395271923530551070705832363374539999099894445187141081390609801150109197949145114525182890902824013542806336675623884401425027583751479378787757038367125351941599656736543104854874731725936268544389235958626542518031219317656959072677475901861301603240680481681544918286151302934916359990994986124155488217573278116992380889011858994862234261388756365227499800858576882267405027033140830480660165174421484032781481419349525595189156865887035661847764597566438019092941796068751861398239720847425529918372606430837081836229046893064638454858273106402694048526889597074602230301638443275994863994663507050553287773589392541568309665257675999806277834493483254615288345135201064309054796974689596510107890559629576618425580891393482152148147074469069211505392888181358983936853866548377708563887805860716937981963707903575933551430390529424275117024862949396477932034313368521160734375944059449462705949376539136366221429079699419825540492453992554182784150601507220598116632387182183533321005191443125642852324562722293501038007134786202654127779478944778513063170704023522830576581849070079999137827585296686974497446331050251780094709888512703701116286629512265626377869060346979790641855419870211276452063396395056570460356573581112612299820576584971085763946845818377991187721003685493186501317936692231647539488082282890303037236370086551566624581910004810168998318473594342183828515751251434688427064273511182275533919359346090248709420399535353468229317441528248341822095844499279605577159093008038235780358414376365290153829043750091076941062888403472460007960966488053678401121263197451761236213346295026102308385127160269558433773588587544808906072855753126660960804700210249193044238891720363417214340283903213542146816738960743529318018191597346638113290713340871069643296740252610988553309648377765441946945235473987715686573318742221313488515495068292212732414939321777571275965242873480816778249388466973968621255403111906246524660309239872219404207237817876078364607059120809547800037576949801473153988760115957836607648497695215298515040701399151931353794920726784236366302497200759547928525375157685866479579252309574180186307468684455614720175747718940675624125822618714882957766462788377082251114483405682921886746336891837600162791714265295692813554363787224848940260533738175521048162060557385613429111137224105726425571205527388616459258929035026791261991927756217565226120683107749814836701407195409106353113017243656792860581361135403524827871653079332011806513038806289270954145268120623343269888488536123711227050461230629091412041934206797049348914602123419464752005061595723042780928439505853664136263376083183111085314074206289759683137600122211897166848790591343526950635778729355226283821870584610001799705640574867896766869272243792079457860354660707325962183133450620848248849831555424654731772676129548354363654040370906664482533751392638262307873059547820303811761500383471654353529593731919545215973694325648061306857818221775821739945161572597392930077476791398055205231554481289912449659339897290478416706813264871856164870139334143203774344957809355971352976059767120000224710819998338586747369682293448456800762783762938297507862041051029248085540734414832145876357479310371251900668358991978996284493910897192546620086643160189017802606172877655994551167116919817431666745158096802731429433451111186985611267494410514471313215517271774213981320483720478900345957631062025303559882644694966205152647925861480781280349394046289735503010735043726516601484127309504222295514873018060996186974210625548512361563058550805556761348692609181619926457996754968488673113226516820226686425676636544634905838400787614997567344311563840730916026885069306085066781220938750232204528717833100638607022946284350882934891212107149863943780482361631737376566827880482614850093576002447178811221909854736445544658341053326768648245334465771535801855171537013766836256311281271385872451829999201486731516392140034968819793929356525340708733097879779854015728667895672377507264467755887931000907787931712923419815401076404693858380169838748721561435362856019898968544134317736326890292235109552277415044591560176004187872317324983297195745335177740672000206383236873643503022594895006171205764541825261837096274563950106374210504873161315948146341773003329345863571603958934291485506842369127258836506817207520215633297507883840799048446495707173858055368853741801865675535012334294156207851159557872112045494269627669618216359029839512180551846928784812545763543177765662626137316872380750248863566114545103943887265827422952138658967556213703521835276441826146165806803042196139384016111808554876661564563730334024073233995377018940228429352080108224325326157990810170929246171061332230630888859834826654091804224630308604377214937057251961477827555306624231874118257419752435162346392172666961841153486991395096738633858774674373047598074373612923963328776951401715928452590157018622496168607266644008458195266493414838681132900999501760788665019076567638686534235616376096490500999549742140559551341237283019445190535924690380157682922386797064728276465868112376486338389760472398943618413433821271795667344739209241272590980391133577018402185245364635670152609372748994190361587270349387057021402886101011683644420374396908940005106832409199009136305590978047410410411421295544622927014892187296254138148329636340305941823510788368771668398384034055570097202837264438359869235596906352616936139019192266247548907980960605852858493648661973536493451611702512244005981341081879841341570697914152938052902435859777166666968287472021474791695638954101164620350217455987691853040894344406876806162202407202386227765547028147560823852355135646494669229304626746482895646867983101698466330523091358221275621263408580999454079604759703772903814262157249453420555636361971044187146729707210899602133265424983824618620186284298026478465960711804079290658133571584305591924054406014535011564079358416571722104469327119960332377791559795377009865270439846364051398556076239563375615021740464827523763977054835761045620013018511800352957620263189932355037359687839677221894063761963468798979428127177687648578590563459568437420288114591261872949577798175412543035492940444019754977373692821771307182397951985553097145651389161429355547182472081070428257143984500276584970532770439373543953867802026049799769822846887036586597868387335210230395153968446280179750077390929646847066187041297595641250927734966764361042682044382944047021278862884434342564480088332575706392705247793438519635126696097352237633229688486517180515730611526410542459224909132700546140230987555431582661636162514955254955805243794623773258876567397063298022829778376717355958196004977074856843463664874965766553250400083514829607854979123412442231025783644014845487184510105386541224198051356038439729346032079455239509508626578999312618786944243101390844007132278758053557031640137408527272569517953465629624037117502594129225114936262031965203176122503937559338273149765808719745548005764835734289594901596016693678552422262329404680595794499115182528493655371991395316427407685068998277843797411663885861769933701505034973326778548894326384039318036371786140389675000500469353720468716066937826271560897981280051331286761505383428289565362822877328253916134283252240325778212687248096313428271906682651701832219451818890790863213008205467897545307170302725500808539278967755900795729288295283603945375479168617485551951038453861995834321928696336605686845959459990118993610516188378505463337039934130877398439872190063325253890284695388201506521359648335937101524909069301856889414875537918122645272252312984307500379570946998036975819589723479924329947361454820857198531322723292894199988473189323983296535855156792940349518758170107312294874583958325250148125558602728878286582944640452294595982969147867720403762609808130810476754111774161239547976206708730754138933226083519827522989200217488551144773006694720948457670410300089069500324156820488140301191318775309446600153511928171320130592223273238285157105700167679295174241875785103799778049872087623441333602666812020067590636380423142401754262677247325700932047330432971132639449390889673416504072634962193935983293616062720423712579160175611368182484764949862729247011310608054682873978765132826795205420991638936971455448928856935212836167737829485582042074095257201471003917662817891806307782647959598922025202675410613360666971283971653595589930112251095046866867490843496157162445496977308945962190776525065343524901204137390666971167586602719754420354390301256334402487611987729463767773322115795477972622495549140119407916081905468632371255230659494026343156171926623355061103036692236006427538726255452361856185734681228493078825621680440876737336829816036065151016064785237078427809223277797006534493696095455042687750359632231479353005920811814910020256022686904826031728499894302562234596242235916293388729438086723857117756664937721004193593331959816476759622657238072630079253517289585686048466412968874426574955905453908151727293873481938978830051527462442613650191828346862988156126933345410349347713993983983552826087637308034507602820096504503364488721673001747027174772168877042809252556322495573713404986104002584598343419436299525029969726520925729691413612833066290580621387337508020250572577838464078378435257440749100413665581560318168798311097716441121910681308003709230091887032743765481405102519332109990399634506988676240150586116082158025820376786324473196293478652475850520792810660884421307225529668068343651465841812447497918810397797440862252942265385801738825224742643290772222569965061554941272135614637917803953856946594115749482121757736762241114791952474063577818594837987406016903321826112477495800366276805121707761317055494077085128140236022264977984530702707169945716695680848948357468651587183195837077117444120379820274558064288631736093973049881085028933777907301199306432354025868796554692536631117153103001486649749018570053288237709982183058362528928451238401272274665352833958669192683060787210051040188034711005223394431987298581227299650530619643077932603238061160889541484822870266610695868914546767589825366462134190056983271986289963757885087553819198864203435842246230590708884758286679923227743974576666783545287247699370539352007670340080672097690513413159948934706002645679252622469911631008022813543210918280711818636163096953264800695199487649569381029780028350852049151844528769481332111452408216373149440550923919927726908398733238113438498406705573781404459621304671394033185739591244895721155579888877344423915472834928582270883340964879405859552014144310086218868069933492104105508424297901133847052883868274369059118600790326635352433350637312798882364590655960039326264202960700425261561586036073240176362748456464448064384624326691377664374771886080966711675797943567062621096954058138065437514325448019637509151485874209171271680453968190927388522519073479131599251725468801190619735745945798390256681382426229055926594168286636691859395382413302620819381665022306442690700721562080183602234598162916540333787578264006925999527230534497724243178175282693429077606266791812558325907104371626817502476864235771271753628160946766870740969864335047163871976445142463147774483549709651854033069190375858955244662316716149912529176694008690348078752544562156411182278560352898993260154252317197895663295344216383687235477040331289502919910545719163305081530546053773996406177764621263112963932244864731583150632266296692167956157620836751386612734593879577922713597032523448471315063326897113192151288432303694310433228440647885455569975013511291309404836810508926060138664448457922482602000827192580348370077675857655955918692340391055933020457444850242037553235589482057150192539917569517933150821554088462061882705546559385385449608398166146981677826797391050950350176380105722476354745775189580975921120428117452223120399068398386935668624134201908814121453830639021032048085751099484252918630569802517374026263847735057430441467100366848481039787302356881948971242281388956140023687897083684522267229208206023698920818457619189680289743801845055567312104110970448743060020415797891504787687293309449801674671274934986212929150752712872618412972431233951079882216400877334494037587543013326582266871398615032494157538432531472746522987174949366955417375381712557965845645350218734486252100972097609017021761062765414835915434921841402707173777528454781638918789908623953019645749002038238432005969163148730837582135186825922876714126755528985273510025107409822893310889251656317075616388712105736109512147947274631226551437132279070679414208999408172802124861783755622048689277983765557934343825489905272257386075750958805390605307333233828683503898998703946266890869335237994640161411252901304859115161808383386758431074616911494854986843193780854283728292103573869532939725835713586545362010485828308009931487833252962153190959470985125916446910281738746436613125352245819996578478630006901234323211488261400439676777412763764922491495690039724257514469619528119154702129293557586894169021321987558038537389132594764531121019683874854390170244423480921818284827473372102014126735489720402358840231682312669307810719870996872542560763739833545375669166478927564233228662998913608458191252187360679939667294084141803113823018974902330303747703083911776827058884902565120293844312781136678630763578415062380934892444302228657376857378598076630680151590018466762825569472634375342453444904390029921807498663366809031810577058117082767405971688088581619075199574333438186111083496427570630929778889089027635907347457692124388485804916542069088550522405154858873488628485556287872654528902905207818007643091037928486076000537625598362439159593449104120643549821702910859425126231225211723801391917239533948146094853592702055293149741454238640299836725322368135525008094802184147427768040169773920941407273529032469018570117453132957921394931463342302384195159767463729964719230769681606807839453496216892843705451840977576340420153446213586762739002872648802943138828489808803870201542589573270311557922618603046997205028873169401636982397916140752647501160472697850309322705327365858298479005384163986680339945480471136724564762524994975824511992288811928220122094554381274234019548418689740661591962377916993769381731503197638745302361932162308590449689430549728664762908643420910025867611307386957983987602157914853534597115669510483007607483702925018445436580373526426430537659583830696475464801899955828922669089033669656108227241234578900564379528208791029991201924887664631017916272856784011798009360696708094659712650760598971587260031290646806061174080023973867817507687478880838377124865702092187166717076875004035310130081586060328041118842520098741582882771748420801291809918989884055983617933473621395404367569959950514050522218928215308221904972747413570369726537571482138434462285820532468822985199882295580059365457945679598508833429888656709549245031209084306697009213204815092668223106036713515164290773597621998532232012690307700160329391606325860613119962814486643122084708221158964680812497421608759227814075495689699939052518300659496622261102869689039991817737039460588151506938762376328007488836953859616809318267569507681125736755739138467699822264191718754448916920560104253760668635597197889958233944450817111495257878406308643669425764571988955547843743566602273483240160349563337829916480024175122494253686853829814651876840692249872721802257058628434949720937241274876851000116653258816574342273165629098027801231669764452543831172946429163908888533120386409733713625737794574594926664405625336963673886139305516475457035600671953638592942003161957083212508814188260272832703586612481442209006950196663776387873795912399904429827028772894675966918807778027709321796593577154864989204814767122909190338910971212959336720128011190404302899476755201650789867996912776767331794901505497479704839160933535060287179587453338347534971646350834312338286831919816708946726600212073851717413583190884232558455629404213425720921139147018944387239305682939341614236105653172106531496805065043138031325597542256534987808225885170863016506881808378277942543624055128258206053211208356181106799830292216266218958037077584273673804338021206891851617738383661661703900956984843357997029376807500749575730389633276117403471645018771120002282438762280140604400231979601386890730299692093171051672157475333809386949535911742631193409393442629429861862842667702355167949742586159409045382159318894240856732428174297385540645070040971695842447393458414252775596007525580300043027720345071592756992473878885939970048373862949062182692169893599964114490988455084618224617491506633073056592390037561353030935977801558193672799411506032094283838158104674174342550229694454217518737132995327376808185730813353999185582635509975470109078758423651508263757776710196158893651472459228154640078217007024251955045211152901862364781389679125632990304875750998581219498875863404596807800970891154120409227763324308517765779824304347158982394862355252546030765924119765052075895595121540367368055606622179152353086277686478768257037424787046675240476850639962059480383452417238255045930149864904535600384003879348694133422025580976228603124887754045309449886703262464032842653222832972512140406516227036093591787012284344494028543068553760212695626623450215244206507457682605880505888738728440946567229027129322838859238307968289036128927085801069593313218960707444776126663270422332550114301609354848151803810532218425397869715192020519000970217024888430066175414602271866007132501224027953387488630329810868204121335651685242916112506054031173992245816062677091836275908681341417851477785126924461912453755759661678077302985409777162914533257440046985119717740942507713781772309064955228122343743538820351944498270412023340235893145385769536459417386577424206273815906413704204565179567223944909709957505189919966595105280100784566329236581062842289652228720834103474690009089679344649577765859518598444696178039158359255310214884968408996920305751959653020080223606481920935471410318853968747257922305563568203426690484497260440876743755411487234055216613645022367177164544722970051466216150611278777041807507405156313969567400158018952580340063859976743052964882747826437535137760684226187451651894546296425728737024855550749394534075810544334642908883208799643955728286597854469029071607762551184199771001654164759147110154886559122311583276882739740214732653984911255903906528459763500007525187357402311022815666266604867346358382254518723054825159892977569616965462010267984475885176294874639594419976346000196152655558411372979097048006661299736427603306619074293383972562100407012976333533777641816105301319241639308307492777226886734143455799087980876259084701815344056101428217132340535398858780808750642617389906718382834633703384165629061920650927920185435363774302781144574061263414378613994444304733942194267298322520752260883852921419139296383799224865111296756990380653791249890151067864135144281945314811776044840546597924073369385217093154885696395406802205818104660485868682606503811513482166628853582719516551261107396187265570979246185680267625905787224956836370327327103964000275006367445559589197150839576268021679495633683017373354592864077685333621628943047082043005168289662597434670287804653342256370992980070703303778470531349646722732613218131548659390625272290399476134983752918406052309092723676165759653885224821406285655528167322078634573728045475023131362272320097404726117355138853742313064697014923226944845075775087738111882771106843887326703998068466921830229640849608770785039141274089655130416923986763774615373870911231204140638902093451439972273909623458026242001832570849151578188941378674224939586231141123222196950790324653091299712070503342017301875519033278133932116468767138497374777393871674601076580638486450726528962602455840158448065424043089907705695137352668092398155130934063873516846561097840718189765025373659188746176753898641279970765720288761921283726145645077425037559327438398753133576104643055510608965720298029104465599036740322696260401776734170899503021596678439503064943967384439277178208312742666019848308307478897114497388401381323376040415327383076263755066653445794443965591186514551553067213179511709730004868441282290293847716694635145160711151221973292419659128422124054193830343831893740084277807475604189453536818179086717694038015085770240924417164272086799007730264700695978392419682629848679959945586607579849206460352549382807595423018854222149837942592478238323819866550932594684568201775170926462171017200956844948582407377450852231896742180897326851276704494461298803464278418838035666117855899968366877238979721219863152245693371965468848391787734458129932241074032409581391806645622136218363788315493687214989836534649929685699916692221554530436358421073010895534193186669746281735053046780115716903953227702080524633910097847627676295319009433778214059647013892489455111808611745904998967194556700493586749631954120197084344094956964415141081149910667588373864487095685172665295009910578449648216149288851506864709781086409567489597825331368116381720172610310972715569732288125446916922099706425126215905302157568654455744028310042387125251315528010477385092902564342096702533243594094040630608469472082076395168735628502624331790374671107863839672723473816004897564308337605584796917386876343314262717189069294510746772335426546908048225200188612096642234762318095742568730873653079143831194730792878993081329317414939616935856036160028143549962754208314713619684947159959736531872931471213316818704479996033900527600819101580526524433685673694355180511655410692976026283038169416713591922313737654905978586698463087497383618185386431296727115767831202445896564110559647480938178393619539304657387832444382077019622120617210147729602451009853359528672365191959737485815972610720335695788768555224667740007427898219502218581787603841002947143807471744365354263653342497543393522032439958697177284605656575389150479684038211119867932533455145287365575553928013426178820731380859520572600944540458392750176947507509218301327584440464032697650490244392913746298081675098446414349826546419687381245868064595518637937234039756689402050008931017171921136269366434161812548605880771725379325873441386176559486136245222297822603033611276607741109462948501722541842507038607820709326690665118684308082927807358482898305534208970981500467542668009521627047359715439600853047778368647610517432403189152027096127810312882237648137464168575942062059321393551199752069477716576347644730344471440269272490189986586291706929156290744929555180911979262251759107700110138706082376170379775163340686945314656679336260015768729212771161512150636203318680310668514826759555976536650162083347410431732659536140354333223768821907499687998093457116078663557618020483282173399929298941773874733707717582336190929670952357758281821427505975233730760193534526032975567376743973300495692304209198225434142700057481804960457443329663374378785199825649089631669459380762221157796146385334909248457837338829266848012017942929184569546564376103521428601553431909415953277609517353792439860607348886602464585294874784690245059074781300185127007178026441519487355453886280565787008920506941125623367349395696716687273844301245112993981190968548147100184950968389821677875064444582931207893290132149323884139247547143374960620659782838005104266772866891033124527767771669733214755921926280428210547707417683142963994075750467299986070311174536556218211584332387812950280048066424827192413818339386720828633051901511288316356309999317411831032050726695062311253864480083533501371328714085205911098074703768833275545268510766539076992797848187353596598600308313754052423199885859186874034955611930880523760378776603911987253205173451528090383360682013911299128143816511967501165084846621978822236286779328470333508260394911577303895323308752134690552962885588160460908002640074382767614354073342230286382266552481490485523145206430133151741094664049713251554533919170639358944504699841530931556160812964837084496607122476756652093057455452241807078592532924287612684340051358179907655019014735470579015715212961161400960313481684163641849077333588443832957726837950438598537379748602377238088551234576084556365269280389114299130761591962736779672050176181582648274551814959657853812678074230616717178853336887151003333754465815710629474539126070928180740305432019680944008215948187618170332862782854169127781255266830011663500602574374943334255585046669352169704970979594207534867584476065880437686267807078167661221564038388267293504688455904942247563338143361443945947984110202300575824044081913712970664591682093855692421597840839386628768920025654426333110499396607164843759977295233707970731257981209161871754999498672001970838664352330348370219582851970255704109592883315396605745270219877172805525296248047801064993373622483670424388967430692647010714477889476483978414120801268536323145222886388547786603469726098773371634772894066288685820600187305782463001278455707664137425235944216887167920878846807365631580996195609165969463759613946446841195917872133174411949474351690296136354395492027229257036732946544008310282660476542144138578551610753183823471101184358733384090149341068881506960098405477983564510554169248174720419639807527530271024398556015706799167184558925110085323815663329780098554365076987510581368605330270030059268314673828458754751968353927036433216474850543550032222029342086990140878604693950590253110134133236413324826502522556898099364619587310302547807733092372205124314474896278094800456570313336244631089496403369975360614008379096017992142373657201833671701875704064477281806666196847886049989413093071413906397309389860160287489616733068212484182991923301255243122956636904738670852101678338494072069423518217379547508661812714814055421025302405895948511280772646061642319556567815058770452196967966610982059661874339139036860312300390304994309823532588506262534844615710368666827358817723149730204660252861898359092487395654363158272827365310964839108186203899800355836519499912722975631175011273647244232533025235916512124762406463852309452777867985135769172809039133101980285700507773598260914426025175855644423203571150349214960765710063092773340969561586791913107904525579494901079864606130860099041359275376292234164029386091847674922184088536219437828749228672386185674170236020086098579123437862237428486902898060787974676335688445758232303320462275489034755707174951673992082045685234113846699915053326531645646811087959133794600149864671479750317881542061431877579015606408131235299100019623871910929226254806050795336338934228785711699906158352396943804615392867558306642494931994659491471921409122570515152122939726150483730675644799294662464429532080158716465837043461040086771329651993123773607486407432329767366373477637769384211799524203094586904623216930877512669990068524143665192513890007149215809370166500490674035653252611578539033971872578989589674757146596751249409164100058929078793886056765851228951499576106984506969595837418080855101380338659158193445495019010642925917214667029536483373935038968049606312197345758529945161848695944226241058764049473910862155985750299012008557261975446551436889843471811080519704207136291456107269863299856984955568738582643946862880979762708560794695756693187303237299060156202599507599547277517671308867702310219401036302216888431006931459676911945265880564277373926285227109906673148632139959006227629059552447478940663404796159759253388407323951016499596968884352882136596715016654799501003711677777154237746410862397139096629144339111326499961306717330058086623053138629169740498670003350351892561780951768942369150195364362883473841514762190122871161264451373254779777881432542047059763694311498155488500730082532569033417145472546615355825154925195161277328422589784255092929939598017562136886786841234026029697310257801773842968736346690419366215150568925826851768630940356649026737410415006226677223839420233006743664351855661314994841219791406931605628001110232652479580044254549017920798799622324084140485240353459903666600779060050783496331572497167875921918066042773425826052818144165688904938897463418774388848584639210561272782016565784727887359838685433037216085114084117455836018475676507510919859502608168070876852957146068135927470610047426876802586177377579514536142136100335581434413159165009635652302040230484180830199384326758850728286290655406112493577763003947122996177040465743992792337791392885232091119246627260940922521747265160295713019266270643269649178326728048620453172187165984476993194676239318321581050328565022650947094814141872493134485130458805454942904303225477626937788745671043010479919501987244760408660132815824208207789073957946885449954108260130961082374453678685831382212524320786492235920499449425253404833786961838209146618643514863501401120305797127511494499380742110888314520205110638031462549722510909921221558082824866760614822705971958988316646333156499808039420037505644107034321997772309379553431733954251608893956281265079697287298590691687083083450237791739736692091496189847562605325163718102616324879070719184281788323766192572893280653701349606150653496849000199020307516745145482876220539650131004871673830309795304942722562629899228672198389913949372186780343613373526098440323295040087009522547468251190216067612222832278670627602652753274396996405768185987314221418755901077352982084127692636576934266570470338845648286827831838770356707345193324106652906705019909583257603740476693011555317921903425292921202868077709945718934300497564354886218515489661941646875021751354440070331050187112678546776135285767886387744871836148569615943034454500367761473536352767800011987931298988812612831367455403305199097428985826232702501729436930622178408777734449720369637614304532332399080941192916107235833146433661749077463457895036976454771737770592156000401366183353059892132022671749074357213926317730197178285155029963218856909143558729465903212596661840296212803940663672782812697060880835545210141766107889476359395527783260261968923773589549750345016223649655541958514477844929756939220810578666119368361072924973995652461926456671164541953191102434307767205605594757696873118561737782537990441686222542608608830736414874434191317218630154521814555161430079697801788590807779229318671290570517612627702389568351494016279677637975769994561372908795715172380397678568721271222941429211419255938261735308614537787809050497621091269436055482085066280973964264270654546791810834054473786687123996510235525225025239242114394104909339953384498033432650745263886399937238806883297423866329735326266354377432283754972433732647084518838647432917810216119889256937987816621068470539393946770567780924766435378477577188187313621658241280436826828467700839318886201685634775845641611885464149160760203430799331389167007659003611181012956703256848282859561245212872994882983791348453883627112918359037872068504817294942509107254882300671169448755745221087437213647276097371416408049752068568439792747330723590734498801961734760692223030679985582874787730295765723627366441457968577020360165006640711710997106967375624431250541106882159645536738308802183925003733054083738796703644044503653307770666098814295465095534125440359169433029083248063829598031372000786148213299181118260455337256320214286207904622653816133717726862415301654470639275007854236285710189608447874241900098818439269920791198461960154398029400924395585814704858058014183256471361537678058115441184053048967624571717236695632849895712882301514427395848460723838808212853332371327234711152597458227166365001121650492350221129954585416382109262852787387539586729726762276336256055434895908443067489206681518437589482496666328005146859825180025847893741037805908050029518916818925907428162887409651953748734537713772416108008700379159784153026771670085684160684321966576907722555854742470742075100442307141188079419096178297019853664731320553286613209365250379072751137103106939610574217251832055132528644587440162875521320871687909763302051741610120661074758744359253402576723983556366199726786181685046581422760323053462796427342285862884538527035524477867882154029463195042636936515164675689053175708333839995032211906853329682646806248339279108964970059640964242080432474687106400691434138682057369634902952685683036978589802981216078722951582846941773852186823561188555893339398372063838675602590971404639711400399999041914482020718044626138388291436017366465985142273945270673010427245854052041452525406409755618043339271100697092509189587035211098383303857877514731835678612532789559122155244302117854087543226533276578711792130173296155727331643096672356193988061058864490596325316215290914753013760247952613822823074651384764697349118933402447398655242745870216283832688656175741941348085002185522209180013147188492369347141304755779540776224111149645786992617198869668060504567943640279147065019190525328447912081643815303988495411221143032108767603694468857849858426472533796833053122772192219976957796942337207777301733663347503155107886919501674354110997087835948185221778626250940784610459326633799302511814180075044215587864231737490388294058676895184773918958579860976537935909532252082973230074162096550243648330853764837360464871381392821164826935727434188493797257958312945935074588310217170868474636773055146282379502379300390634928397231895412055319371820646925461043284026728287767022770673631225662551272174302258276301911088885332673749703381247137626831062432965247337549786711426258192908059187289710132951075766574654582998700575786243757761178460898117056195731912143626175869684482438675027888615945670308851341964313733979299272122124136642828364810077218230251460732139067658865183517883314945423080711819385511062581792207148876824164040566910327191140489244282672129730832009499838680245489252829498545276976672992785644998254744655079491271280979213340356725696705063321923326593939571967596392458126087160788579425592188845194384353684036747557075284814611098052931736719088179097860767472555111610598088971606192376492409077184514520254375318745836855496091934447300098506304568508388270037322128572730795136864592503636080305278292992615553684900900827473601469839326451181514490173708593273984208444461943842935696376296279458392326023955087398350357592427028922782933700537769063068234276256089492366148377630943712480236567670268528344460546872967350757678225717358498380972067762309297273500924133407549396809204337710733817276051948840175209217256354822385508972529527663976974662433700673454051115378150524062808458403380544418688113416709622140745747897881314304093908344918695060288451562172219428810214400934576951437294896038945418843316315383483100413760778495821149287534546309785817197557292711852976398201722354188205980057324855681898029717887513898719685746716961699221823876865139786497823410873874805235089583813661766756722554960411088211209412370950835748678659236562902132002205701518079143358152665236476509075686059370246118974838345759664919543613725160213153357730417871609209340687034229671133303789185792359569552448048924588140090625764063475017916025805236715488862409088161069820958271191565567986632496976835287223430234695202848069217186715303916656024343317715812834616410294539964264495088445355543677173545352794712234688798171740375045389119532201404261964641781568584715186974533698855396340928832883349063277929650091253118275436655006829217408217619128742672216916526461944056382006686759775534372277950698252199079741380306051242148936603960004323347520120347754534503127118772208018502877161654322571306981246822061544472337572094575924775693236804910787395921436365313508862828017316395280453588224084566891645431674690900678030119468990524558617259612494889791242493026959593724418261426410859750571711806485139286905726733403039851861432349517277133513420779256998872633471202350759369897906322458121787729956009321191294485783550216162018091578619970210334998578004028794916720272607803328049526527375438064166644759542322245991202905583258922196963001825261571504869731298482904775113678647420669519276061167714363684710041379847899544556862442955013607460322205272719688812841281331511410087204712597274163229751530676261027665789789777976750634768365674347037156135038342642326417229975003896503602851583161540603933940961727899907668425952895824940034617024021518704659606462713710187077354993168589211918210243379790120011908716705386441252609552327791668576457486963785854688620709763495716319776755726742575409012903391991809451254445646216145324071634548184272487332194894433894795095276786022042068738473702570402427492714885509764384309563324753123394291312239865505278142405642140167272152302920633920933383687905045150778055085173805982490143509715681813421871717639297975069861822762104965174296694797995559847039810455516664277127442802086898033602851015685723238972697432878605888980916094167755324203579689949124468959269773473417449115718465795218159440992822293516989384274908901203274635578839970117360369705387312823787118772656983878516607736356470219304547979516027238475304001176395701066425071360606974811013118427141215708709657123803481823893677456988050902922014595001541824958590619253328233757066786737688508884207849055981823290630133569212825858358263086123208699897102117284360490980317119806253087827800348050435297806785191574018736523928361809656143852196068283948048403693887848096781712411453222229019026791324193600689685463869508086678224746643610323051402755599866733477475931897072969247477880434803817243024903193043199007341650699627552201094176285384185638789580378104544106438238283750463752181280251703703984743921656226782350103928588812106752147978559263854917369146128507262525252213824165171540901966096987215442809889550969180531846357453728797550908540275109115881167747625891475259156216090824602288469152678104735027120541311631533676254385381294557766933529727186230842125498383295399058143336748511009165268163382460338459768874159918176232556632741384202620433680804381944369549144534328011080393326954889260541335332184270074957153504248126091171427827752076708286700705227317444270052082415270256410887753280271109178433586317710192980298081897018287659906149272163190867145450571194131913471227719542302503878970313125940671263349127471431887194232821044403984158444773512431468312476578243499197137382214037243570593417436820258794342821997992827408190437208209466715503339345049007515547946329578053946487062875174260640683967221620443801250598672144037345076492770485473072330322935934569748593010499367851760318523521554455960425449204056269734833246467868070925217639938912092758202476673607375305006183011818402161913420985295727587088016107939265827301885748387651374098638070806964930053279347601816723127010840837215605041390990037148117611864995411940368074449623688294055766943861105789272827980853168881333706333624058354726491254061088201662547332998570053895141886250826949133306773514055780161835896334784289658896361233409414766461492365552879847093459816837671728377153892303815377375725598503001068710678370107927698755506211020576879713989920668905390547973616358747277640326188523337656690720105063495495029803696661685634810337865105324429881347901453995123846752974708863103936421693827485045197410822570386777901409342925796221984012807644904603655023022422456326350094356006511501903610097099854821409647417293200923615384690705947490791284629457460946479555685999786194715977538997304851101410795856050082938245251447047931231509185103397134652014291555062254277543399600703133867982915171263758952902155526117494073753239146499205699543123211434960046053942764045243924441443109750283237129681377803857150032862993796804556420964632557511909066224062383956466975637972722081714433264007857516747882185792014463907204768660076058159458852866184712331748720246819562124015993154023142590027082475363369100892028142854017394258817576490651886750494676018147012718103458811026413517884378301485818830294866482995434630761436212799462922645284367009728912224151676826046803130012348542406080241449562854053213871476716663015211659680882508339559938635223697308554269662679983720216644858236532068427578017001697614153333526219213396608520829357241989547437130809251329492658289434021112129078578254980142733561076952636630748786099697019060476642657075420838709063699816271343088045513126730605212789073510933942279447121987323254292186008602908737059401371591548689591728729653486461410439636614842124524892097763526811143925853150349670654646139429003716964021275493665759914095123558701268281299798862002637931818450791584868825402780126771043125920553615089446149284914968220069547465850834723758322444971883067613233014120779712603054391981087409972572646327651295565674969103527612025158844134970556109979537785460382431456082233606737367857104426062924874140025169917899996251039215657944934907314570432710033993190318354061019664933341326967613482815111966724227297789098555102738262160017272536568823732281533983761550426111617604485027539042588048652124164565894671953981807670287654608070726845976854022509775854259081599829524130968854313142387026654311436964414265636013755206303044920326616239253786577916744557482024756577152532467626167798051670578656801099729143136253428548775551708081520792289825164333532818829011479993733478027731136578032616079253826901581162905059385921690893023900566546230733269621145453800187895981635485346926552957504364145434974708339838881699179564730663593285168230516464615638284093515066834217501875779856024863550569670031998362229716377317830700684467043488150032430012678406020004953932433998593903193649487713125617786725458402542366975874651465652997753000040726034883773584624871322187449318808691195317501740883061027123449317818789621569610099163693565303788769881695753986744225645737134959727923215426488997270764349044907637856322473887343985690717328025999284365630535576420020137016008690076985620548274348445787291423582732678861455374482258676084056212248093720620171305382425113604250920340612929273109723776910954984354337765027056583704707397134448576659823008896639782027503702114889039071464037493445406641334000742875345123518195679781923095583707795546366129109635449654713167051758892485614320994631153114341610929912383088572755131409091132459981068882639013424151933877055506791743063857455215636699650654168578989007789515104069573210491924583994977943303657304204171129896420543891639560256541463423002776108549938401227824836055748586214680943885690382175399790939368481413386570994965452103073443343393373131391961385637853996864546761186175306273755837472368203859515334332413824485803680466873881886814656415154229735868725549637061947415605764837740982626080755954717790181748215326643376914532198437906767293516323794949209335918990656550376637851460403713804640043532352107740645188220945424913701462780714155744613870051622663909640173530193065630135911380283187068173721045838411910548117810980433325451189455827884871162606423833279368394555210172454588743450499864875174363364923163703689435637782542726490902284725206672262878288365026544092333455496074485907122733991370213557749084966350657523005451777151778763940096982696875903864424655751892014103896744767432961693919994585516933899164120471291825438830888675519780959723160257121357703838663578210552028736241716420133092460524077264460299514920465558842983826014496738031833651562687502704309744052225530194753350410189092611803593560197011613976400240067905287589999242965243171886849588627176974063112983549692591747068889971908223329386080530371912231517952620477687175510081230420644308226276384064068223336231501914816723105384138347011647573325846976112475309665525102265012177556836801094526836476331438097352444237349409406311801095771914862638079396262161756200276489414021827340635671490959580047103308252882761012557958781040696637976316681566126058378675572091006748716759903007283026483004799772644430517256946205038111184479879827747100190705810476338477733406866824292673065335329549946326763364682125322863108133175517300868263509618872681252412697502368064885907049729344312802547863800928721983080019250210004984511117109126447856447020641670681366110883838647485930321178832020760053323765519976858976767750096721026956169312993750896523116650201240899481359106930629587601115804506742712111869228067053510043711889585972213234842547997662503103245747022699459687371216731259683624223691089355956805736446640467783783723497592148304573947642104489229061942779275501604777937315103086565093949603070608746692958054761257350498561085097653054913295817006752384041351167778195149748589305990683492705841443475065231525402880727011118399241234524174181100429408807092648211567738925149040456793540745181764073408722710201527744566464922098705366163834811079724896390307599034883724227219433143459222171581975755474898684612458621150866817979848098656319249127275870908117969393947313307686022024218436810115267094054853719639238745213467665226293778780622614416045342638359243516846898900964649667952553082920429920216747398688280889708672293146093977240338678834284809954945286464377895112441508780423663264230444781863116883243837949786596195159932570380460097017188745318311866937384916774825695544304811519580923481295384128426454961277876824256863044622979274822273484970519894729269608656406485010792426329632315774855276402668184608950357692692592576966557265005060838710130456683759323786352029495555965918782450090359276032114493648638703039229255015699905923254535835900537286573290058555717921372135733067374036748694215721124351566040258133777780417528199835249906005617101528454414141417445838984985557686383315749025929822512931031875607541057064939369525782283224636047817204848675334449317213595754975110060245404738704599908399058912462661256671982484993938662135424246428906762746989776321684414791446799022467311259506919683780726474381554238384103081202975957576272999450073201470883383499033480942921126838252927420190277206911601500693737012345801242105318459349410133623163053364678803106162376071564720564737653886682622440448830109962604245133928081763919404718323248001109911332490622924977494239698914373804608627758560338977742458495992245845961023419993067825266475957008219285728397567131895465530989021688151066279773402151316580960691132932126724881299777070006997687006688878456477178762571278923788493525996827483214317355602827221240512495646157003409221688549606884348148956609588161261065421733373441967672427410114043112955887587148081978734046562478570057380212057925953187585765615683307349478244901192099524273626744394689807896023508506666116037322071088330517709811171993518044271066708924476301855511585886419334237883755738674889496330438491960167933361642828035354629125561823070408202517073545176650702353130894487865821157028409825472183736121367912904930120816795731486465640638687771546693177315688218023654880818924093492558125312765978258967974680179530588786555625337914914874698416936224229637247461449447805696499149765829428827860724456876305953925129510094592714461056665417016384328524690642355429511666112296317169452063087475341841275020376480434330173780543963110847627347122573914609575843144684131638368800238671992803790600728631156626028324209166348064889166693005269087377735254903638331939082855564906862311386109135104965214552728794793771538579797375750661278081775534541124345410803906725045567769596560531649529583773752806877409615367680880920991547203172395530469818863816414684557859642971699892910365515783994358209882231096094460490553601572868644745837637237795714249437741498964760359721527120544481130242933606947676630004345719795595660341085372185585839199962035922948563362176244997865174233113908743344735645257030957974911540964628355277901676598412028429540970881252292948737470144721977519712321837519922986948729535304293350445118821067959310100538232861435805248767287894859051974987533647890039899800268830796722982869752830919839521673156397274625557371254517322518275718471106588526421966605297281530890340325905226681228556749574625365188619502785126271724548235000286247063554036961423097341603652044544038480960713273772712514192817294246947181445696240010688907089489702657700265601866467924957217981593038817546278441300122446558869365205763063589779056906553661984646734374904562217482986910048771112632274487079039695989377467657643971539454482218513258007094139572268386268884234565335054393626524071022204655159777939773627879865250712771720900174436529552922147907212262485693413638293400939040118053792375284381375681552802278725837952096496358721224461145251329049460777909644552215302010942940949181006454802037515232485397547894740077504455816046570159307129375207104610004755729479847938767252061645646489875295644280977040420033157361649227791843898202821839661517860838401268235644288634522231201066264046635744528236831015429691013649211527907750631947970026771900000425636449160076328864026059793458492036582918486955866647021089489652151296628497741391640119175908364471927090120786319991064551840732491083175285935722313814755925585254504707302853154601143642733920771017008687279599349059042417987064433616154151615002868435355830857456707059377819832177501345842507196376564421074515471762935210874119749515899041474066764692868679388670477360359155223353572342444589629776590852783184575775570373291846908361817473151000953324015734786686192166721682466077997557543893587307543965144231928419438144731454518217997482103504403389981726341879146424047318587952898712842023081811169221382208541701098851088778120676988415139785164508733474656490928004144370188988103820377784567250355137115189433354248953906133052562180420077318098353402118978495249461393772545721760836262612548322541596124560492923222375488405871317597033021226273681466406898590923231388197985370547123192439980981864842779417306184269455486942755439574581688000523280419013250083855107881239094727002912806851807580029114500428638714860450114401505031845076558574740027706838958333733090492190927743526898930792431901582855697422927032833993186393463244438325437557879425091800735759466032234711397952304365338097342949936669415704152223704359530531191513001082276903973403942936197324247295654539230427291506406579679940658445094873348564771456324984502091608201609939634214092937978061869481160160362916934381574267077377750157231324711325872478828914559194619676844216909594042181884605486035087977948114067572560163310652198643706192731220206493557224917081925420884742252385076885223075782798685186429680029636662277123750718435309093772684861796388343218521046729242751676165134646703263997055529368565503395741925648484808301937483287516664899542215287440486437868923538378956821520437561947532063917533195904330332999950195649593379344938924687289278785427329829323814624392721056900884676068376331457177156192993674663968164781917609361556448885820259868497540623191131899217709029827679089476884008011163323478158845643884772187986205998094366123367870985915866300053471778575517372183429487771160653127012545978129453812555898245401120534672629273788273118511736892855610122414123756152621152745750949749763031106732690812857854541307667406833587269165911336637164791369909287370563198520542775213836032255473077182733577374176964916887269926451887370901841195492309570533728405494426705986637180634736813544873308983797733561563298254647804070399998643663198401149637209469923230786483804937575091770173249197899919887538010496665788758482257323603420821572118397884493718022218277982214240114212195437042916982735820572837489057374444798354076718178686205673015027915437081076876425930388469968520727672655778276164873582497674264029776945722668944788010709357953419130453943189876971975285891885049663505275298529365457043784392816829065697484875873882262911262993393914842733049320934166090355151014466982827750333947386116058285484888838114324333123367572479025685517735450766802227003077688272611140009718974973531448461510855559790586226000249159886327469542961069487233642211166129157679985427731712802804000178244558713240031241618053849376533000925068067378130150403358702170742619576114138975597322667536418788243878479978740999250507180451660746327505248058079130597603951137212030938417752155925264915443078298090267458403835325718685412229295491124734526903944435888287422379918008360301942534057300262479620073155973583247138746435417302792773582433620207557820489722903361209990620165450068672022640087374563366174199657772106484505935886245280162175979652648354543206605310301646755794296299015200956057840532915033515468087333120081648897664699369076581994237760054230868381384253719762923233722338599231276334334249396924366619810913151756090952837090758376193614628758975634113278041052858240598788163211399496569281519238248794423812117214098219927196420391678811939929082930212568971859395706565384822477058266945335151758489000358802997856718164503944061443156300289820898285815733509262858113535816831505815036818887090164862804528231320082206765443655091392111718253646344586359655967491167002182628237521502324357304236991707465436680622411338481875909172422891411333550142108585254333405624216014820811065752628696799792898974554390618701701732248484891601301980580868442381294639355621845378070263106159394973172794579386955529495230466898571309161877043630729312177751984078172110888433945907102474723905480763885760693221827146369152538725048490715145361753799335732228371562850525411844183254461911949213782434857947641698756719916114346134469523007878631712132404246166085817433785737777842760583743508718077652755800673432295790790003124442546856805136253739118714031585337807179421155128978489340398488065310937900316889263420792047399692563372732430025521706076707186055127499562184467691976960983924418248795713242005392836204467542037775187815173365422812794884393157668489530891760230133238510303475648777266601805006087826661740229785428064384797358573316747916426288805143600264954834561056067657457782421799150309101549941803882348965797109130438399843583563565922189364201049960691655814525240671856945229904593052060607540764269529457446767375239173918119847170490491935514713919654537046629603990919299254324959909919933763309454786233034835417855159826768688230971898833441020727486773033316087462065834643380127396472563566978123436829655276346584656507637842610222058219393853868628907172115924934072334774449859849130984941164706090807645037539083578529173911710223238218406747440271164618637377165619458012806383309327817729041273853622933760894531246726991898904682221276952139193690604408868938564744533303819193437228571428105433837090742945416398873786125535142756409374077302813064735257980044063353746101871504391610772409421961587805723482516434688762010512798132924087642665508404122180016347172525063604666497739441241483269499934680895679406499706140277483593650481092045086380424089474456014815221913359298853235218104617999021202106820415860277314873196896590724206147977470442576196493382679421887946741485667984958146054499019160397492289830001502086709528279079615156592999039395911353490185781333117178678926341889417881916200548497970826527124813872542476802699653698454484160612437510828016312515368883509923858205226330159808080241439742429418866503459679669704151198420945292909873303961328557633209954862767997228506976467336340328693874471894721999062742033877304984259422724730625585855809129719095530474165910227928176311703931226704461216176512904411694932793664843887998054696869772783754724758767300834865262615240220467198184876058142284576042468393109306861184702255381352873997226695305149237712354362039367359772030447142236628572518817115422161018968910029849619845827713890304298828195653497861391965666044101801121357351702216044523092845803754226400416248544213372996538867842977861976884858678241279424508854319063562694036867182628801838788651316946337656271208857595691856336523347054453114493113178622886140739159291225136740448373465981490235999783096002552440808725189700710629388607221573802403172411803539911037671468866555823982998899291344675954121552690667727266592494290887391230886951377008732917002672236779844868750597731679288737800354326955466569409466080806148545073958432510781930497719458143377324377788363751808095111076867588368835119310032963198198955856457254199689270041523639241031563994886562621659365087447131128812995648057208756899021139374188625690991763326031651527394609767440250682548754683916359841849799612570207653183755837715628210206959636155479393273736039203337933156813374996760520509131106517012353864859677428801293324023242677763093315236668226362729919223137721440679995235076595989821399139664532027272139269397168461122304518133527607345956395456581122182590609905722127522459121387737052626363274377015979061102165075405117177331980702645044994788240877457869547371733075049499391810128981836683610477024853955150165896482210654365690219765024830595623410638889452187362480748483025207033987130360652380972231236838176639982564060279573383149949282294979160769754396498881661006478626539688645763582505960508499412330805348331282430994563198062632633335982126039103908351457054258149325951273841597412752093958465715715882946549719293225610184966210246259273163250507220615930791094692390507622880623273134790137543767654263365539771025934669925022792826053907805244284724570314388929696695263664360165547998825266351905459969718058332718853993070039314624839399638972701248948071011965177969748028359391815195727221288061248549922653872237292797148326373077599922829988372138925957918457838269478446461123672087021979853232188307391984053042010315724444745608555558915904571954507742553495824340663467195818331081203561747422606195765283070203254935304407909721900385307659257819749534388968947037996758217670996429438962266889576621676419636629848752358301667386399044756013555464260930799359070964927674245077347147583352133102031101249919106031355371775060506371484242367923978986959203796990684585800775651582040544600558492309497135416287578685935425662780261675435138951028936209799943179972388494536900761856283958372648740691358955404875178442068365760047787921796390530521860171177004440862344167131455408432228688376756335021865417237748923820803999942011428699319953192012790713596466948991441615935250214410346394741483341252092440495486347474099316563377804083264971300439165496321105079026592924103123744475640558666681705111374563812036370844918535991931715258461654402439404405106449991460600224768753217163876480369597697073568470977539631559509311865383396421067467028654722448491592214617114621430724076328951645357547730643121605239915364436827866804248261953361660425654405598250369035330564584994141201903067604067845242042465752106458170986274795166790642072895518867718121081709797983575408004798521562119959013590566892537516657294761520246382692906067229470691374429964735002247319410335172624607819693680785303430255884060762723174542009013265962486930574685384202092683004487627919512848111074118268402011552323563616574499943065905551529076620586846048035595040690213485566024418483899290671147083416210203732845559314384258404534614052449955229598542012555167763243154076608748608464462767482542597529700081018374754963118506907225172658332537801277835997398055281516127513387602870482486153470468155199515285450169377300768835065233568540721877502081150133203988184780622377388302826125791585885494383670723824762097880282911351467791953719473416154729982230819803224770399409072455387802329333275769110388532769585988984451957450440699976500094872815268816119420690132280912855009239593541340012569434226914447350707491776769456472148445165721413534294393207209691571199981917537781624628525134116784919860497411069057405272131009795312488291356330846479618401752729306910918220805532524426446128765734586719866531406338700580162496561143477888640235097609880299007980937603197350939564352236885372406906985018114650999558219306561139703915099186143168859051819827132404183109493916121427248797256581353479130798923032643496243461737378401336297737975631693652501297080628018034455061249393536516791673456132773314177214037805048899088108430035485895877099886441001370286107714867683540169321280473054187075573719554679914078267068378202984007391294474378946522668827070544052712052021872772573831920514134203174569673272619410049390587774606984787936050636687576854523512978701308524570676924934241679589280715441361305170785363219780678733599681758336654593752984005052510449414286187004329394818145405766487511555623313721046164352778817535891479509454529892549908114280521743181183792684021660080424691894744514712889758910321671905665430640846060763805437569538944772387595817107865737998648784101204636081537028880869822914674632951174919192300602205769372218684516846647402573367908177522168998748232518852670291259450889651348234922655506933389559691358285852942116897211982945472911411545991770253783159791483713910097092625873152606313765010793319112115372736545916796254768483323146765261594904872321751289966044259633858458303832960999355624178730557396865703235300440044352074811181043834682204877882358492959167527727354916101703137029898613341665039367232835133588624914431435553341926502929125745963113236793461674629147037909236753491201787685093655160802043579545466956155454356156566129318891688412698028331801532800160499898469307076447960443033176069007870211876634688063950298791218559059630935459998364661737774228834771934916216146179907529011005823878543343481384915669886304878336112611607124943971309117970668502072118539945957363969105773724200975651167152562126838151053633994428732263152371591893761381286227852840276083917832010051764731778023220539910603390042556530060473690726052263895169080197093782689127248542153508075330672116549244026150206989211030831470475449316906708394644463235237399401128941584298621064330179200178437478860586667037556054426084669749506528843178424190168331353558211074366394221905889831285911365180904607593691896189582359127344824574413726578959089273974458505526446970169718490025058166055839842434086307946230526717306248709382637397583168208360912716761184952109428863376677324653876667286401769267729690108139217499084168102032129962746833358994585375705301688727169366978913114422141113655508568632620765472034698497631833241868065095037615744877747523821608212665080007087490443417990512917286786572183672140679451007640572875311536630130216361321759298962605240042238165914258404063759202647174172948596494328685719304025682724796523439463115170100170200424442007535085047533713127639386140660311446628444669032679395744916918547883433580627551867564146999435248842185772345306390923170252400155063261856084106748044797078756217920580150612899907401147409506187128765534699150143110586474272804656392328972520174468011600861124923711157814233360836856155561550306941592366138214606612106694515356379138061017187071256165163434436119705684411637458622928510494811375808383972291153359385113719877142067909277191845373233181434925019128629900483549114249321681431383639755950477984798485917774926091294670267187671735700387327492364444563255039162320421791709358255670015670294048064807224412559911447439529076664149509126935011403646549575803880743443196428617838731841618314127145376382081241029702037590115714598652924035280044134498765182375398789275999442026342407870643228210227459746242778198257449458203456366830321006319798159734810861656816282218844104059869896276642748072500994114433927732429641662225263853330460082725270810796004254904692591312315962689914742287524371090367809210405315041412860994859216143534269418900887324900146583619732287386384365771382143893561322267486356675486334380057182291695427757159959592017243171918672884489390921425737073823377829245087542981801466490791869867821101191708119951813911108418545483988921199629149707695685675700590525387618747967675810813808882766459616698563389157203367536664891654298450265067226780545215853131053208825537969868424277060400310435109275898432718412625681484060957008721944288585466787777056282389537775597734146752009750277791713007453530953373569009021692520489264301413910367181040121768474325584075474244531957934923345499466211880575597661998317095094344722406226362196236567148817889609693936762301556057798563630829959579453607804563263738475206807477629271684509237131183572980853018894350708991189163814130019667810880386936713602833768925292320718764423537124748048436626725712822841401158023940797707416421838704141217594062798610708252041285309007705133414429150541306308614097300623602562786861363466409690648933559413975401578497084740883550342103727433984305039666367118335076612140294626750200482675435476295851734220478349411114406189805177694688786528426995910456967733658612019070772704924264082245998975626011033698159971895625176930646569740167140017589773797544311089566211381399850255296475951385402838002486117496630976675145259139995872695089374193449026523561802886972216299593514222736142952815903951478594443084391729935757715784018336218100168076248734985480907397952984515144720376188329348642723238379763620846465758337330166125293503942362496986381860504229959322530155758092603043256094932190920591689687971385874835039414777381366078887117648444179761476226912996037588569957285346723630946125467229262783201481128032210026266887725315530081338488691476161779373573015654312659570550429868545762643243080875270012488637144864886418582021060235240005333819184493756938581226261619997802489924714745114641911845446303722799826782609467298877793758344061305845220795473142867962161181231521113850869168671467790835527058964746315575472746549612908332919048583002142738560215022947504848945701006227305677090164897517803034007974107344081110258701939858023190075754130811877700691059171655101648635921783447038757978243484490532291073144496921133583674635692087481478047008327424808248825637198494784654050528489307667830025427077344797945339998125864835416841495743778878171972845864445998645882689940725434852465619104253404985353543437786963776934811852233886272882417189334436453948555825890700113128851316336515721626471158211100941259471086717243243266687132987305699307754236143486672932135588514442842335339233534116746157992519501652584071240586358676420711252776696986829527559179154936302039076885861561899788540814037991276160311119032985487979950788387764418123878201281447185005894117761783894453666076183614841917849870123680548813156790421494247778112144490322929210426362355388528479469887746755200934686348367178093973691779170642578272889315013415856454291732041916246075385823399491795422107048133531460535186239001705126834465512919547843538622543049560979392180343414704446711844034204306972225769255260704832147877756412421607480949898591209948991230758099069460740536113184497257848127501620042475876985621435422352350806131013121324022239908280535892349716293881664278153138190085715251487149325292353569780906296426641076337705878506540067882012200763680256548940720808845746983941917048473427677990530118436227753153994454979763187569611064242569555712190554991916061387774769398034796137003728188746049703774637214760729029192479450044163452186059202434315046872161106298866860530793069377372667578245167489123746366688850222511001031179256067206321753999755071740119208633553583788572494916229100508716033562533766447721441743931833642729896947792175325873318601301302474563151239143910791824566277842150655271866774632791474985169034118302358703333016458604503342083923623525752966633983306281140651141035923346059538531819427424374240703391056669430732057980257885938680275881817662007748038945704161694390952573515381833045310874052807390193560225266395488411941145269156365448547493083151683158045935272136819459546886448544657708559518312652188504474632288322959875535552946936226077892423837797297180854665181339355803428512436245426218535411409984644908223456569330860796034452733373798074683067138475327165805016342063428834807681191440239583750583699367602458395882711672225108743273117180803249447521943533442139959026235799953955222637620634679917425384165616381888195846440334646551642338096426186892598559006452942391539262610643237610810857252138827966487920538716110500371914097566651913016691213225121467316281540263338823680462053043739763914569693432224690544991689257309006396381058346933746058687212938061226026192594583872237523927284734087808694737677237448210182194112328131640742480407020834405622802284284403745528947799223562102310793844939408439166406880727246406855845332611738398925265690362288683580934864233930195683132626269298668178232302122603968687963133988566402822206992911421336142111149488236833137408053925001540903901495980143487158948069968383833557309621308867052013446671679951214309686285063230163294244957227080070176351446749530307825755072452375640665761608765758275152306982210858668593544223673558577821338592237535100410638789718298815064488720285379959314682934761461288592156013358941354093084056186845861433509170681105116559196707651014089086801188247467914459811740608137915864060675493398413074480527181428974671543079105042252970000484384912421779671000557744324698851399199751953144479609531010964491515500127646528923004042485744841981548215768343763572808063159393640400538448311197086029680308368341389597581823507465857337610885367026267054124948820890395780715369321080990164007418437481574474525823151750320633507268675156409420820382869241420806046236490759177194164883468804264901445621552488564370710085319784250543490436868546093143235768705098272489789317832815378451904152673327747567024700950494401502121590647385691451407219194163986653814210966754718999014904154916265369029363080285944757214413587263218835880114605015523821507976975754138393555942118107498962466825773161653253011620627478654972467194322242500781462292365171727838926613883426663867624763747416986705332220881007236839491889080174832720986115153657265149888528761796989366706781986317319309197612673765320264973690961590469739171590793682386273825271926218582901269605348341882603909548780506079432908511398975795756091632272218987551245572690911868233444723815681432326254232788474033351182190142963221913544065358488496463956126634964612253579724631741023101609030838629429469044569539764739351934406785733019016280503860413712826906457668871235580580240779877848859864598955615650242692395714370278616872267597335453245791020631693234612928652626567288373428801217585324090579208889069530362851757912278180840884843907557181788253107630507871932848066406371588006959130936250273125350294536939834283504435997655844487365356305726792935026918495864378850190703240009589675229229983343305555841015818384831456875601790043854198820211616439645162190375735507629693412358493095448403979924194995865201542949518690642293352346999853284388566622259756438669875076254487971181039250640015974659093564392299562709780527252876932452567134243503967653411522635919399197794469384479110206778967991227548691735959419983060726367828583206782066803963362335525451784138822931528728969869612745073511112053119236262114839933881377788810879857962945362539975934401731600151983929902145679398103754464705833255168573348793104398473037712970137163238630615615201111650574073979022125399810351298035445500305986563780188610226898727160082048085531371792138887234675876798588630501896263044688491540152476929650161334568585271635013725512069695624269626553273026915421628717174642325356759565986358404326281803892390568246520208465256025781621581584771762952210399669955205396820867371724928164133354801853329426837111526756769291239686834595190270881274983114562264399171948279160189991741326401880272055100050572432725821222298565555710067754079551040226186934221456244167898632313594054139545875299663542366909375581914832684760238062434650480741149841263550657548885184194979215255927915425043648954690658192243542139102873236671795949798243789592352020887400987235897421706264996867467924098606068864741737696553906646334248228132942929495425158077634390054071301509257029806926437695441655592896387169429656255605430434875276675905513411437187282113602905271248352643089345331766544695931415028503511965885963298456605316107567226690053994240945680909277317223315656930797175715381062702182124276263729035391687146699504649546893562430300037284602017072489221010477110615604939201839051439700744035557141263497968689054831376387877462289696109880469109471001766015100673699784178538059669845060684505605285003771288613490664836313358385278082101540123749415681449871319395757657854773165333744429596207828422227320553414274927093473390852426937777994077328377284903908969005231702760758819388723722329213462890976004626190143163102962269639766326403396842310146632909196341936217575324600943114955440560283795824390344153099548845182902728116394942916822319067686763554483023188839037485217547071863950907492378782919103364844604787066741538188115121722949440855418739837009288515578152042796519125023108157868672016681111470195118354072605333192741192170835493570585852673869477614227937966880213034656552356405426599222110261093976882108641289163173544212950079321501982748438765024638900178212972419235039684695788114575945249035555028750951081860676791050528536479586730285261822092912753481343682156268412294835890638536936000866438310681664199258776243735041930067679299809553908500946087948010767290766747323859772288819116080835957032024559679711522944644641433199163874494475595012765217267613824568104903680411806653219617139801167551969578745842182617490383746361758277204903672275797228155375534994778469847270603952048718585202542623525121589570394519151672752955309364910160021457402373522442210857433571454702821040193975754174312564790354030331432338537326701093454823917859072188443604896168597952197450731141195471403568365053682336787123365354781930628899023215862348055704213392151057321153570904593115912153125356480262045369788139357801677503562228585108552672365045577938222003958273673142196588869709129860958188038181006736123034482337105729745849827788631600275806776105836960155980491576933726255536003068824297077300999112758342905352907098233221379797710021047337151098420556622386536217771159541129666468260019116871474973250312473310034071349528227435154395185568272107235686366981528742048229874587610485135467390377834125246050251222473880125590377739301447979843371362419823144486229927231749740337998094749672101893542074905487361472918852580056790385133473058232089532559222778118314571652512987827213606691163335057311454917593123021064416198260937702106374036291143541594640065899202828273185553587487251808621602302899199119545760042290276816996113941851557336609282245391950136859718927065525901447275810580173212896886082862756512225194979978416299916901061495765099497675005357455877132224424316598394968333444422857927126667846910855215539237849918792974913032628709908042230246232027345535385612740640046685134867604183610351090605101247451935898493506094858246498128695600342702246894996909953362800375220287077727505260773229206998787898088731985375624663067481884813115185677477083917361787218025038388113324177085275153861713387819719486610656512459886952359073736145235659793106457396689378654444224631710508148192461800112023333048241181734256750119866311800750209369516534554427541880539237825643085802454089247555137821660576599020737990258235576252339628883985997036420358944469722671485175172101840426117993355831575304692807366512761759388784559211962371293037662615088108674731335830595606235443790613122276578266201849741185263110698172147029484580684189635792865610708220705952716380334082993118695551609860895105368722875212190321642767434523386627513952554755268879832806411585306902453881744334345867755092533533944576698186359248135856059144772337229179294791717389083212944901490281581699822231288299702244457887483498715035349367277074698539679779925848352821194248551950827218254677057343111970775925471351268643501691128471483326600607868002654829313739078812272316617465110134206130795396111364659193954026748995378212569067517538310508964267992619268784104718544700442371098874049840166900013981672407970925389222201823123160166551168094634700623352486986680491447604974710370544814814070690814754442892174876347064750754043136779784238460414431238805684406612671782768638074939692256388262731090182758722204793672258902471558638357576219406527337490236938396365771077603385041529764587063964182598554282426134123505141692138554902067968759214040270107398141282055164441063720497989920162445424412008797270406915873497852511063712828552815321356263102294405502687538691303288314856118313614791157165630633601118977156775708421583587059127576779120521880665692112831020755121708208752622983221844374320075619099649799310548657206829699522938429463444606185436579126944630820997481381067230096573867935536333336919598981382921085252494609066696681787532254576806150094518356558745574552326013063245462239344843366802042854100446493894017693363138090876539984113772261497262249371065284510923025295205033099382872661122882299105461209744693010878113892244987794077314729665688731062949972041305951575652369988715143352099098525414139204448883895511111562704102445060005957058022399485653278032952630313162933608312926563420414002220144472891015094246760574544957182793528944184158792649925203191012824559482860846870969223306756519121062617063857066462031852329298195191360441690326327765505523962970136815788275363620181480302960212400456346224328406888869965488182001413867758278575861308205006549475349240437255060569087529911343446253708285987566001101315321376506240217544976800542340538985689077422221421619927995373278957578188633532095538599347769883178330283493556055739853715011577360360869311188296654732675266224407446292915747708768633501998557432845094014838044219299154778918331503980620208747481730261462275409793860145229404802545389996258535840471847942731132709192743045076883046593547212104218565975915490441536275296648351694449101808661240293211025649127869558898959664737225252770623846764915630488797618621514446224784039656896787906698327064962511781332472757410131629707701237439354295405640402490317178952904234499092102724317802717392290750081615987576900783542158734228693109228248655501526610080748190614365884030289384142072359983608522413429453050981926504794315327401888974254657055693247201558410510659727905053507105379433453514342593378571910539126446887215476066861217182616587430704922750877433128448306872379270544457589096933289552246511748518889459230633315761671442985026866347408892886792522104667892825407507484989509985779557824187514811648123003361985777517446013901706749135542470032873647160312186077435915048950416964994477253156182619460379049438964535758194427526272158272104993178906241208607724685225528854549909083892658460270120598207208246889044122296534244878902901533005577114423674185862511235679896621958724485444078937081806294091899741219748180963375838454164176436774272966581577143971832158473185724693083124688023041617061089349109318069179430065212320900030822933612411969209430080291037641498557695021535887874418574065128155446812660394712966171274939596119427822223041940133322797097561169125956034014577522659654571225440606007696987245019785682109643650055259506279968904750377804387341551356490717973994868282611169643500069215524750579679546634416543410236058984696544608237885507403068410911543448422837292182602328483974656519812086780846674530163794543502731982667922822593654109261650337451949479861969656218443678848853335180293141735547680291427784311320091842869062398656250078549493296121801671883560303590579794143549024558473421036992518455728415639297869082715335719325767894479604667097015695135906217359555996739627801344483375668970338047452342289037177578997048888589015480651532299112638533098305827461191049587791166030447410661437265219806966469073079248519937678427996062515856622571403589459066927838935690724554151691219804600883393048311972109800575079166876861930862635256506993038377428578223306711178734468254187284923888888632210161621780849449126206568936105056016756518998813812886568252281303475211217077984994796635973481835163879970226396641707398778886165374624666972785963784404644972630332697904611952085210366790874616166835026365851251044292237237440756082604263951149775107607468638069861413613442638500769664335614401874243743714059896240864972446920959011533848998180205816038232744992424326715035304421526375439074006992570299927786540418761059253630202699030929459825688653691650387902107086158676332448787875527005907344219502254048102619353991513014746062889807301222409127847581446074860952584522269440670732654831566725796286235290215345625433707604466961581503220609523639425767005795967728029611172141436238363112184872751885562021272460793721644396407077520873824481617051798350691661126116263966568499023917120341525706861921792553515515129100479897430638019396936144616773608628180327145705804834548420758557812960023206998811788850463129676291518645445524524244039080004687610105996484155773670829305959471463231130849856045547903509575412008673178736698252847460193558350430811356918631539451411006572921323949225101789597699531036991604770871827204257294372592338115355083340561721671520147799408841537943604681017177705423224573898415558107672151628696217398902613171327070626929961706241807517313692029861734262423156589166037273023753883187508364875379831124856578499062637423256811681443643729398190816345991059917178886569093972951684695940575601731978272873996753869858520444042066776367713950330635773666949709620905709545471349570112594385128436789969385841622451251185736626122290333204449483268749788609541966810558467182362394893565958883748159542182532565087152193385359967642875625937363454477112337097324504927826165789359565622828397407449324354807822018229140734016179178368894579800461939106274852005664843669896016620979165048622679236155873690976108612050374930647743761917103936056001722133809971668134315479029282293943291231706660656238411092763714861473020148012530240337599438508276620775549757401471587056297600817893983397985207516306106125950849620332259369463327713237163712616222357502303259612597082106583532624296655529624421101740987859006268348893900837111326344884105757640570319683577743744006885691639844245029878102271050755538453350169456337933571495405605849788490603724291206475468266679213666694391172020117283135636091807895843791182435360381854266633789632811592968397341184779728977688817494598306659559777294472490581446492134745865806309491171054795621049592021611485718852794924800906334725885593510937974355292575845364892937815053050528970305308888019199542785965097045058092687461774284545202348368883875456343421114709837451161023407162900507918262411342270498321879493280108368232494756852077279293473052985358759814219133153735544312608670293612389971656197254033604322844342624313673751615356153988980935841512838148212762256209701984263420962008980723906062482273730091941014621366689062196206843965530860970030728025709627144236107265451613315546232590350132936674556973588811047039869234027518808942755927309493945108406346252129978043544279800360089819740821081723443668275217364421566273199972154885830507997463107860520148407714458639133800372200785909809162703822479755273645380538155505311647028791634960512487228833973951672890978896449856821294353882334179123174982481699115810871702807225933195103961082409929776304617541007486474002367773723400265793528689698621593112511249150075012894326964131513006363180728175991059775700340694425075765214921128352810595269017607335019996018947740106986572642073298150821672724901466124119676983835568551582221907122190964791451375197235073899248394952115465469962058759073668012261255815312656607369755391129716502299861592795576533198870250227509327020448533694945844223907370421189388221271754836225782189037430496070763003346265827665623433989278145884156370005783403725443585394045867297766610454465715494041717155583563703956387607555726080174912789552770719724744080921423262017942311772029873226697085990067440001254122171350670903983097579739129993830576307552767502417223777028825241449560601576539474116229314089000438720402661865817066144564836067430075721802909331109043202567694503151340095196207146390376705825530383882774924917037693243646858030007565764842564977167899564544264201952993745904914699508532007681219241734400536408418537330016391109072265158701512347589840934962006250371746323042493229303850050086581051610039819260279799315113615630044935936324337024350427053521212230265145876224802363218395406366330005530369901214938810154991908845221576012078888000646622169200068401448377594868506944841712266374344664604804735385089671607187196055777400736611123642173638023815282536819289219629328857633800963029844954524924435901301340043965548018993849416295379383156929026431809637346861505037308398523784601825133292861764125670918557628165146466745248457177065117056487671100364102871435749593132003170120504217641998336815128930526080073892804898042989072817833546445275284188420282157543973390015386234390371138663018184255492491486022666181362032274481656390444551289921014573708069949990654513067495632900468771060224449224518437172987970959064722825785799979567915849976267558600169738532816240486649246947758959196812494680075599018518345224698988078612981124398250212106575485567830302950303920430156625803628898872787773751123840372018435519086999089840414877070367418542801211827370978963835229339261501957425594947251641409679083023902542173153083516146019643825814148541535182568901324673320345823882194825996449848556884356455189773668557371457244936900033566058484714819630874434912714651118192207614500611033731815254140561394652623113831698636945080142272616254604668154246751842197709869000382964174704702268302373621323896702304620568088410648064836947400812929693080279388213763028596062126857631140844212494964460159471343801073229373154100040826288399916768025855714716362270604520004986310466284968148196871602635942610939873205021307907097406136940978776080812582980780418212049787681363482278304884282774088008836093456132897602828457262051323287064257335461916189611570820432329409440748102123084526135841023058083691653205462194442637722528174793487058775765191855152897098581311005703278358132166262227448416668360060621457185462921269880547791651904048578445828137944198015085504454119185614289535572946160163781704297463046685074206507142606562764366564466726706044800811672003931873635930951004764301840378949039441916933263621716521235353229386056874254497761321796668120988058371117909654353776047509935976392520530502511486863686186103289203922927300773015578126711231699027258365453793285347017671214298691987338951140703555729308250361057888612565467800078097855959469129473233545137322902801090280951042133436663724667323745222051440002725868264565408621904399762756051874713591358409713036405947376520739464551599371450391553314919301967151052393336225659189270415350742223708677887228806393391258035678382354535427755287491667025122427302893849079220694865857977372612965855772250947191323735190615912437465169682704418338873925347842982738733921559302168925249463994634391857233955442859829927885546193179732064961707073917801504815700788355349377167877966662498458056150273762373518790598193312384141519509121937440922737136896933634835508621016416767998643010578546700838930473957870973227801589121379178800519290325248160776896580065799291114326076068292682418117746940032819739456899035377550014108436021214709704650464096890154788570574394795229586055538469034488477422703464308517291445312614162316096934566586220145770149570856921620515932861416462015044690188340692896310318530379219750222519218676041873720315597543776065839998801189709137454156643486118689274978487772459979552839642168119375776764633139156394993358551028415189260550890019803528539421980796364295744975987214784279553159950856093347228773276628568388024786033722330585470476510980615822166327240128729151669817797246794000426964829015140710205672767339651114442134861508967080325327593214770987251406596152592697082641427080615162087479532895882004538261890791932014383164938809999841232671128355843862892155978549699192432270472130477821959007061432672863420682302131818143761156997261929370742466587099421201724873952470337497214928510176374659780048236162570478131566826473535569666058276847298163711308025804226209597801271737364443131051364360962249829314446461394934769306881490203928967150394367488194080686475802325552844691094899244825643798653538471770411917081132992954632762211105834679902802164952148765408155666908323241578552806592848365361829756498607343987733312357358335123752489077380381011907644951290683918040503850598488767628894560083039751024935858054529594637322610777428440548642469429097364951503430474663007714542605978175915784822174301626383906008028791180791864739371098405291049001807634293770907489881054093542837753095575791862233543179535141417146113279221152472993292554873300813443547646038052314965741379708805703906238699652501161964860603677055161660566620919835943727237814329207063497972240624583485873699963129701096990410470457637137538807675750252564524617567391800695047873121133065914686195269331506444376925258833397717529749010848902828849018329387090227600301963024065771429091289243542334818265275257866518525387054308834268207580839959619472807361684504698609569755597003251847656278358083077272330139298302660556581312634953106217217700119883531122145075040106486625273410589031850241120717867433283326639652038993116448975131988968954691347841157117436759164946397833895182749535163973596803477847130836825442108654336648134577427949407438886388185006564040847401702860087916154220566261968781816166687288738052107170102559311544281584659478732592363671063489748891463542019390528588466738771861760869796021767653199842635323825456489518099848754756546635160998185376351628512349266451367090534140850935072199916667764130779608209943562817705721214911983081017383477036923193104931085978456335088273144705955661830369138589665185023688485543173419326305193517062007446226004797287920686115353986295058254204346870307653713168024584169805074783893491828224425015337529754983971269842392534323721105734847810225172580510013156254670072766269265458868803262683440749876645707185760110257344888714335459127931466095422700709805702467307987796627419912424099660484120470511377124429309177607931319024811765134171085456751346587482943711980209695792896904057038096688565370057452884736513610363303131137635153209982860516936197769893105044101874703020022104141402710429207107709302669561974770079995888179675198897945694868826460154630196954241481724973239702386967837894278132086170433437593489383419988440137233218818776844254871755003186893962214680585060340456459502952935000115966121207275848594933946295122515902586748468101494778456453693471915242969679300386064346791279724184749403752767559415013898154515196887612722162378647962797016379935783811935903433640696145309786404322851678909774481756953228613127717619994462498476927289373471354888912648882342342734034916350540716208703173097091145776073247829896973155363758259220861455413204220144398796510834776690460297254674652301117497271109300326574687881558875538597763574767904707423716371583663021127164361145812421589789306518192608244756454486364862574890932691880500724229829283576229013586648957641822629922500216464007728565945801189842153987364998785665146597793364073117484418379734073845367022804484428987415013147811451230447104929882881801050640103476238078573865382178060907379294557307819965151457327780353033586229251706732661970497078427344612883691852664554775479015511972937038816500325767103744669138820960441842342480726288186834763436535780857893938557376424757325936053712492721598224283324778823166631298671180475726882088680492664698193496780923831794779034504400210899493520902389370023330040817338427045209476330010412534336184266787553894957949896840860435543094295051097095023981885538863953988479185907607201066061481830544458119180759094120644482936178101862982909106816039015765903566261250716030931193691823335562575791002115838420924766289014501993327360107304800021737900564820849855480247243740398002012456310318419850976591468495995437384368825254267218303678003624291602325552953151103396586355454931087529991573459308981249033979510412928596429950551676043047566702655740875421393480655151125965347486871525311407053666438101305555254038497163536965599597661718770960843910733942874786405364010424415754194840608425692260585260968521232017243418030303865087255932006037691350489179241974786740907859744142459798038477262076558922960264002919184610895530710351227225892688522045082253522228582033406144542287357171849521983079913648133393467211993141323746047451198875790688301966973837836876572163733402852014883458264199542334988783273034138017622059406628300106435996422865543970518435107613682033304805503320237756643043469178187102610563612794252306713790322081440173415784938298836056845959300825075614274468665420429442452046639335084195870303593510899634110088253468111084686770641362908282945572729329803229672022459515006857804637740589562134665639016888101700887248771410104005154448678653718843292713079386286708603047577444597779027953165665695576172056323496915932169935044954868648428249122882353609072359517898446124501137632511800237315469564555939653916449989017280454067430585953609000900420702705278714149277774992410702584237737318645133812985144130321464298617138794483546611269706820087537608998574339374841487393766707172228034093646432782543194705539769422635616620246981093636210326432382177511135877304602213678517714537107090848038833755626626069000086504761932974527760411579090868315607726899122755614635105654532552406478383860572545324236584351522980774596342106847628123134704345939490595872746515452036842558334423610062181074510953672961379240636684568394315303215505298329028877291988950156922931813150433332333755102643998237597616537351948918970601418131475536927003346183496284901601069550263200649462719337322077868039190122624329793722060457428110909808907408817600324576550460579116471644796279412854881609788397623753225037584622515287275941893300801014395248366988702060688459293444204340745753857702763345714473770013104160884705815680803318049675104597595402273346099325604067669119598528317063399668678049408638217377770104248371938313067108598723943096846327801496330265874034815056899882876370636337372813857656248427289603169582438437816721822753275277947887452185688314125280808250517609214306918204874630886171470184561392665126780150382046512489408677711685849813599890525281991166749841926905303041703439994449921572307395297766446325144789563766058823624816840241742258753579110704315128369565392618860527161345749376374362274413047356231898683919368670670778315979951851430900409313467109917814331677603003883163333548419623294971847544459082371455559640127721757145368398269587155712765761065156446801445341463663591703709235780330315328721614479686786309229554102576042559513205057341121169597118003096170801853703977792889989275570940568659956594713061777900387458448187115246121488026430519094146858267434957706939583579746979920881686627090637911282607704999313985701856390042351786197744487090033205920998089987281581000481821442019754697459107804114473506911962345390373255170276682454106979420692871938468616456363094160185415462459223440541238926324494554695187828493982968924174138784528692935225614820588617280330245055570025750588341348556870047660418059606351561930593798173757413057592985154319253668486679522829454160515147355855986123605471202534126226733554975614513466608169316722367031754496818995632792822157546657585627506049667390870362869157132146421083309418701244565660081387759707171174433206681544436672866193469452358536302458256397511701751808469555123570742043151439574702944195259758908608316431621816436938959447368522645804244359802900806531286914349159927636193917428367637827876470531409071798376745596654880116908606794673292041115920451092733556910289798812074844712907050678460780293500070595700729334906274334660423745920670033814108638131658916979908210706222975857642809824093946702139587150569239635771482907560314044061794213982750360873205830833313242161055893347959547847250545393704953571268832630966966526101905961865555121962487629599327863790977676628161547489942547719581588554683508732541763258826077276449290284087644334160727377790587042629931304376793205115778799064628630838520839730295147504298916723197758888269403758742858716027500586417359433223982865015001729590825566066933675892281081573375017275616281215732192129416749859133323657772804422173332200129022986428241871485020997120405588751514115252596017614463692095637628334115238594202706711623067462936646862707967261395756807194765397718719385670684562553964836145681380846551089524850876425105718955602281964502839508014637914549938361672721272073574549214028266330787254134668803096088183104629306577549937205540646766646883703574035112933713025264885786189520165152461506740996021776797708023275724426690783338343308940843838775642502278771679068710542456571370972836145984896840911108279344527602592772174610024098134069143988149653305577882580408436249364129278350174118482994691618954223268589986525477158148816191047089376159518993538772673470724180221383875215150444735164414113021303965201600329501385403004821271279886321882304772049293798317529303309615167399959876561988641322723841846527809105189653914737034843171744894362498804922769730991149513691316706393153101136370188591821475286860469133791357915136612999534824471350104388007907100194944579971192086008021143900792336700231750207192848105601780322973071002161900542988851011347389614492227618986765571385441256186246392568277744055814897896299449590156365032161462847249881793004810806318912213890399352205072026636596754216825981272946222132538801607009218376842752697259985237286105558649230735247877167851230664857349665581730241633123894437480478097498267367346936578854608101356268423326560000527882357960972880344524472562526706199261410721372046732234015439622084751435263908988021681554555829091070372783765113822358629520628083632650335878612653962549009472809480944806484555668382612805564414790057702338302369290526397997960766444423386669763924275544750055502218503578025266822880393306834473889575048059099866379608504507111206717052609236997483901299775572231775906534581173256633468684555707295851028580279195428430823547940888894745513023297044169267586161037175749535929621786295101269375514955916735170908046965455995204068439878146117735329151695645605428342739374239422623142960185572195763761461707230128001157466333843873291922242609024638509143963851494591686130508792533291869288123066003082099998753342224844924394029462337068933244768151739149846325634687138173921212577933658471784466065148166185102123229532030498724049296288043415007497519509275082745647943175458057149401947269770330095806293499912566245290720233590496353723145618176414955724528477794001017527959342360753618402683359583730166487745809534576856241933797497957425642371265249447637634323344354639823594489253037720776995631187958692748899870449857778209305441203661852770548265745847412097434382347432065713464023068732036287041388027429883175357734407417018348005786651646287802223094714707046317752495777375470068259549159595127727067156333479843134767025662151661942050262687635305659412888297986024167019699416419824428967751157365704494724266607064939759656959647186440011368551539125948946145690277174652880606870245732841448950786447642651170679107607312881307170258916710885626969563599368020005142913517260769239416105291417288804559051638026682286222806806910721985218794597063892262168600671671163404399290042280951134243475805191554950424285374086613853721957196724389749360071207087781172264689967266600901964546167922945703895143651107880345796524972181099946670138894549848045598107599033546794586627366084024272278990746375757384980826777766091290501740463892051085364247393607639554023355230801341694925524123779674429163787250745675568493129440549664996064479391261670591734606058283674859696443529218401091593098077896549307958230864352730727016695928726753365333826936136466571297908093372815232106686281111656367473814139822721985575828296498976433151806881187048045333760895558422712615375132947587093800034937270310735534859203178782304191906569397809226985833607852253087373943387919750863084868065079731205030062366159462735193890593236502090257416646073282906026725940203916043841704341704566560522548979127475396652753080270596789040171868336605068967270707019374949905005760420176623498041569822799166590877416078266899617252576691934811338649743699839334799971517577140380483318242753306885877204323621799256962374763968739325920952849634438366780168444066805607563467396819724488280953026328860496226645458171131936491866003255285593153171738468553805738804137518967163096287109223475745598660391960363877047635547074276840774355274958846526081576538320024022564461584230832826357916248001689841627286034987368046033415729495069854551850500424212406226289478852174372967609118661501467602634192490797788743285890678421478540787647574963342348246805634221276700960386380138014654926935145209519553345714447293127744613176023627920586680991260024654260879427268869516235372846701700996420463231338673217469193680193854890994632414488167638463595951158083730659050351768928629718703296220588178717417175546801704135924127201468847865250910770690845410083518687745962505087854869563465889820803680842421726529002815395942608622973523078008238959846591718205468802213494500274217546878052064428193446172415061963968846990668859584227020553568658868206468903378164986484002449483988963675639275398992123569080294507474323277213761870425290446550655646244965216788775207593742275086252973933564265204185268735405733355555854528198305410153416920729201398376576475228116945072239530945097771710783069134760351789661577447845743421622897268196530659200580638331178838159424102130602433971008909314880176454711640097032777505669338997769973390295411162413098694342437409937331848018845969491318441778595571560587256327280176580195801148621660464773598849721721012603286387115441041439376910943989385125551044562679185470691800549419963407446500182057499553532287561703474123487583867078295494734567676201059233006571846211510164055207663823345094001270208701814464364933644036743930220985255058829920614683715816384124733888850939097629878540568729553595339587043449779898493596209123612984789840082475440130134838735548240173008208096095958313424839190974191738356143460690744538593174227318147943458630919631555642949869671109852009136498715925848903481489334138625748894466806881810692082987313452766399984968487019498507016465329942441363120510374687945602495566108720675314101692430678678228912576085980707220913410674379918707428498298390126842104869819297893639878590475969618362266809578758181369037754825127946651759067455302438017293019632196517401629394671945874264339114463073786430845307018572389200949149939893853420621701348030563870273649153672927468546279669529572273392543736007330094659370679707003644119585913532131228608122235509531380950754819295407718754608237871498300621825172177430296462434196255887206979368252373202612518228368448195776187414062998500308916965644720781147937198739015860220651472260782454061211616368566260729729974504185124483054640833373460397499292118276454643248707536692201949275535137754329039233301882081611195152253114670638696462726551118247188372188271143288652889523267756510157482394118179775228484335755558022232026185270373375367767685236025629948823680104047771418282323185540392102242910448276097664907816807773083717400047098163713520757751053141816833432658169156179771880028805490265529758924147816766287439427203058998259885877416412604652517967526325081483601073613614607298533450937872924475592154117942388120526616454648413788794565650446412331109764747886202322153520724637261061164862610452379106956792462407834148627253998989090244589597912064770414684972509282952054374363553428352796064563579378150376161829457196220327896878579090154269341860744867458386890312286774303866190124758704474741586760545696342113065447258249021838347777163344557395611678058689704381306403770862712085547320098822337862021576041999791969273771198580110763533162346898062872230739181058872618307647586818567871007118494778859434221675876266712640968884851707684448732197279295805891392122621339120036464544101474581006214610302180551223020470612012689005131028852538200919679555827388828361142793489402482856093493039047938477687120606024583240443684689742100313451137389335168180858534445771254825990273603660047856127729535967805502731839325685784859442510328700398359347378825329713277782500902219045002965292974955651200905205648853360853597061112797936738861232874229542637604601309309471674286189022991277030778494430581192321309722007094885002231019594826883342676075048363648851485680045141329049859869282208310778757417834317182799849601259438153343261585952283946275152517638595360651245361844286245470450540843426513690066871769161018028880970150667444563761019598158758255285908699316073095241190792865618139790064011882121722705490853130040768605189532287305588276621995000225243028087322440341808749755850341045687548623356760506744147489549125786611367884454726414039952587769822192731932536082544981019312002005712681128297147614087196922631859315182248474815188859531859948241419664539669775194194352787407816583703824154041737248466012660491884394449332719657260251517895507081463415035646161774732415631589634276097393769665832535154239162088508355302468659775729470957138731362474306637667972309235820527126924042062739021124292264305220590251946787959749926658462133428470980510268918966581214491752085161700657855985118363907570781232711011932451848853972015074774634712388754406553584527965893210757077283268013886496886037335882806237173001414877080550969661820852418826238054266778088406131209591531182783937899855242576175190220787437378713629857243095069426568036244401233299019351545027165379055291829302700848474978273049094663586247844989751116041048861584015397808641247996731754022039768409811046817997104095527540053255646372045402860567218870631412004957664412577877106880973244134633903477513340700166081282549987845219725216984401925095652130268720410251391128283325023589689438296372214225812643888946066022158014112821182723843458473061907714268540618803946588665578534876667827484634278948910146322250952683969671748982542130710821620595533072764396570623159006027273888745492741661788372883712693928693078155006549007861454227315888379915281063315606298158109353338906951972250843027308124926996256230480622994886764198150593332327260454166708623104230122504583628973880461520411305599384972980051532082014272744205821766382911772780875305454868305992240997929945551204982179320638131686180861211881366922160532634647074967846827909275791988072865409903852859041512072777864317503364295658879376726607671454324471142778463679994423203574725108776749072897662232971603506348336892275480927111700753370176057347654077991619544306688122461175059272280757882665380954381732274763258039482682925048513746314696163075283076315117529775874271066480269463436068967740000440020005194256896762133607425800434090510377328558363708425510551488100904069137068415934563231290384587011316851469480386460616502203812551351685784292325380649442764263131522835322057728893576393323747523686282980464134122896261681266878239537769446095824198181476954061560375864899194941729001068750238046011700364783343386974666473353828575527090942489601847760293318996558371379148099948175060658664831426026068415918886368478817838587495538366509984749415973087719407587348812215296551476210300388623580635081199615023376815558110888246956636128680325987213192690903912420354841217156456938525187830994742528620602152444303704983795078798757863715178560674838897904010545984909320315424875803858853715685569274803358467114507268976058867490339487184559387641975605354995405330451731698206888541579449895527170843772402072537362647550927743881324295771319569616039389332719642520985652911382895147521449196929290463483501203446366975214391665400937795585004344947226532934712236938795672206130148421143885143724805520334152031158417039810221271407108574278139367653748842260341962664870175121216992298287321113861318550362756510201469156435146979408340066326365900512571827680856540248652780356894787843835084081971292790319920457520279171447564665342513566160459333439999666698304550359331916058272770029305495712885546612001726721486744964552748248071777394503223524284706490704721408444801774340007603836514528771261707037143977973671237607523167441322482252363762777874358279129973047477304917859912886886584398111698838109745194522430337739295440712798094551840001398036637753820378317999207817510668608315895210145110676417819243072169553403234337342162431880366220497893032924594016726055414458835899617836519783048816531366828581027883251208654931809276013515943635013926050859602528950678830748795104527940762823155466738422650271717823377555862905862050327988935208451427413840658047145277271337265593354625806546840067904997708396144681353256782857326889506475896372726527319465359819518766190092007578799525728349534427800295495850334030234188514800685719430123471125352582751656038137820808114541183835349779548522580677273276236605136234781690130676424160689870625447950197736779847520810231928978078120234212206452064124723643718950879904491527397101981666440087420984161577633141417948748236278176597488688948718638717466458603703400814212206546237584055631947080619036387383013012768142310488709804070823574408161893431791875829843477846830212458338107624133351830669695837278989396504383368106129604571084172041759151226578838672124710780294981054889027645655629853418243214710839048176867584175338432101880523680009108960822893477359037657386707812629252967286110674797931405692751099768092567095794811501628046725029894635260563765213520989362567383316892945657499131014030250312319318762680738052158483185177133217781708027307014887448633728694433762213806531368195505543911725428446253025611123644185866491936764243880756310757123804316775129884337169813518838673159332033372381382243324390498157098937010512529003689341642888139551709777887303964688163529421009376539950975618068741556350873359272943373124722508579929272119387634520475066263062006849640065383957953533535663937035743344545509192169611440620028914246751781050893159060308302999541212152500358797947847732899145760157327117341387769118224017362255076724552624208725370532952695517539538565830731693555374862436101915512739594430780725088840107251989135896648967424842781789137185468969716365094628744352363343809547666783081854151794166646128775573836209757207699463366181252905118419174134796129198269021234189886809215679616645822721882624472867299220541592303698816692952024148335998934088270792420298661775368596352609039901723813328729551845978041800024303021106647191230932750358998444071828795930357359690929440058619816682975410383664183382987327762053365479542223670715520934148544212426237883448089124585585901600525379842363228019722489857360131028305144673770044183227305680347058804721987895926310000117959816404366860709867200832369469987562859634883691373687868758723883086982368054669894839407759989273502524103509061792396739049495892180414699650425063684141031248261751264061368916528746050758177517172703026926240890954631488398008958556032031183398913339888394287687021912848643478649104907530540281495829824150271900927950911418225826544806834166854158229474823476055734037077876202174435726900925997582901690500300430055489900459242698364701052758131128433565486010422830490390138927077783304212117524649605585570303026400452158268686848471437427712366149090970290325919227728586810743444010703234589661526085267988826790583078003417196838413925073631522112766840114418123300104384494266871375778453156706155365708172665784744694307916104462534702300701343019273818788816188045083944781097522480970760978759259963355882214972298780630228897505394718303509304767394060335852159184180395646650596995324246636715711727561479667380359870457054109042485455170259578146987052176066163294340743402593342314557511221017419494857798923372135102061836663664151523998202146242679022117420749665319571741027584740933088765120856745535586994842317722082525793897493840403649743245629485106716172801451345278279781887409772969604605318771540956947496835895711557141683128515919918428449851544208615107972325500784447512612132206793341333622978312209653832222778080065004033793890657306879887339351557351205147334539171894927214155451942542861308011325272540253662910257884277898678491363860267942057944851278012440663698771773662761576408121704464955290265764799945115649744514301162688305670932159745719290719937282499333395303437212773185783175628603750049274215514577513101455828110878458091117170576951015718813115865910081875246489490968649415189927203262267822549721057887042588534182485649406846386764992625071470926034722379368597993434208985295352192497962926858406338026079959189057786155793193786025648170667503887868631911359576733875308167288928854677079426864752515346989174890115119670756584578515589872237410459142952870596554414547452467529378336186019332102042117208017006022384513245705645707807571560026958900236785168194859509432242314016004479128457957176396924434223342362898867634634164555180936181856462797351992790788602223291856842444394246700392382360445400984329477861576496387223462088733228643863188559601784635838536414939401718690668196665524460895631690092709896517707821383910652147826970659822069300571252972595784634078884767421924343520776349321303943202622725567698861309492553435934693332469285968980947792101187050504830146628324720287328966991234357432999843307513803094498809427547862879950906383874334696984388947688900257295673888711578726910292726305038815655444294220933057354397739385596898150210110288195555612426358005227384167053238849529458163091810829523051094364520756114150791388604840925801653533880821688401869622834151921660807630263106750180450112210796672895797888891242422741052592162798779475194661743803616359230210811607454523099981226680195094437749483056743021050498340985553866849041266174393184300509396638756676088590620776518491794384537824923911444179061686086764413418103411898072400758429200762264518519334453756310089751173810311210094328535508641954559223200235693868975237053752271266862131469249984531568450625459862728791943712288775033427198087716795031015438107002095069892603415613026122759900762238179624091548228108244207604934460184340981157222343349219805152750310496667822136478855177491071779758364244297840309232922201450334020781132432468494058303543109304924563739210407849830453581251033648154811603805534251007662824039174143759484165644470881119151478741653903689604093263151426126168788022350702998550182604353454634749171992598178216953388721902085324999303209484026621387721862798242221450375744086226417879949507201365298210384495523848054444598461553572537063306306699599640459708372459442180156715787152320659531787818093500805340167621376499977193641822903347801803593568467837684991419724060186015113291208603956665785956619544980767222310463998156058940868086634810795633939325329296898635939848426093279133589212406887610825886918130471757825444420057060777598741142102628850593580510460464296804669525205777999761809992445550265762669124184339546524672291180979165140520087834022270802740525340063542551707694833040876189542562072333168769156811719437165612015388048424576075025725003216598439586398533358145118226221183291536591421035672397993628321728246721283749290915321446108777308526814292019227667906977931923327477950977916135371947307920121262431720527016919176555377694966372333553609587926861111893608552222158260968378192837169820195901167031431131309924807856512189262344534813293182130894958297555677563855118496299053191747907099477159919699667178697462641301108991065289095555021639263877485049596332651074790426123344102314912939852186384061986582214739397338316262952668421620841761727065440569386903528087567993782513168633262789582345165670364389194480770309127797545522675114853274464622222025383110340432641232396272891364420721779909174546503092325753182146048137133328673555831798361259387734465878241591695411072220156016535346965207793133599457805079705859198588677949477278719417495097271283971554643493749503070474626653140311057552672882210082035922843208632901875107500774446826002988929372429782503623882078244597165105593152798668861431080566699010759850027566251054275519445665878589918729950784615096328353557556320694092920082412550545537856459032410954527736506852157608568428221023825301804938328576164390482680428786546867514541120869316269566919353619581049003253645175612234800539603597022706952337656921305686486661210905759044083516162424058915559182858029705460316460189531419101574876216234326066113516161901768423190533184127707636770444452772006359784198883810147262733527932951457142105681550023351880430732213344584064259812625435682009971540058417207577252664238623826455374868781105485095228633932103276680144223906738943502619730436055997664366468444390144921528070626220802325720714813570704401309088071348015129623812583917773794905610979985808862347870353605900000545766554434219187101246454572758847074534573332647100082883431323558067707448679506714263761403945761642324222348196814056070310973458102969523295178560177650879107110255375575871698332092224520655303541673487311454746658294907297165396695021452998370550198127849464545263159617686505882333486933440306045949980951631947915104104786132680364572441053526429211295048321533231591785733691255208138355909151583903229504684096386628692560928037059214108764364454783737110320852728199354291958625325411733683225819217427749580936295898451026860496842843406980793135665471144590391775976873327363175328614159781047636193252293299451122556713272969454981534562497422536131528422712980319973867045401671244455240634230177813388820263361945623814479630022837252801357234653764338392730329585321450232645380670441355164853727447384857949683064792124152883344524767486238626342202530977828851781252626809982347746415566233160278511479493969091673863845772809638972085545595619624988161417339735998167805018020674303511016527473379865154139630641928974192643505249660018408969583223345403442672216820776550560266281134433839055783693291004079798458728845977651846643598009761235205402899128550918929662979369408466832753214570919844971611048236698713851241412369486350351041299657030584261841355987577307508728584873762576092680372098406485337835221426254796165543028669613513274806166670801555205008528458969344773191408552073888302882637805619335832268193692402475775074466069863392033298849802667084708632064456738953104464309916156703745424946794751918506469338210996564902760124631272521453926161128104887329036134911491927128493879965643550426977928917401083636752977116825668717392754523391720526739968609484125803000849941530560444729815017463119186326121336198430593813725164391542501383122973799920662774010601789642250607662410243369112754096197435235125746709217456963585575240390776721825307768531452907060276879643279442664879381563257196790459938776715588482917304665403242759592310616977111239045877050811826107612816907358288878495511999952329706719753962969840354177362447130492066121576928568903358448261094161941703710537864803340357858180503883923407683958577215623127153645672712184881745857210495101869750346398308526826116118139718882634997672016247230925986693407989567217744626788034234136238706856524406734907260214704269751781152047912359947448824816979121105450684106654348245501373051042015862128998022039945681813085170352748050170003057653475911400013836294232012089474692943496842865041097210349304747537042713020625900462810830220774136431507810993312971979952930856412276017359186318457019174359612789550164714899459107133867982626467970782241002303012096161069155596888289841667101969971345456873876650811449448662863177311021853633213183892267223526985233742403113425563367199797030281242479637750368696064718526904352342367748727556707150982822005650167677844989621939684477211263883982565313721364489424554645684314214200562197010355998721333274673511956857518193666150980163239418475414383696484216994955019916567592708577237422152712219409227084444351465414226173707150165874104107346127724607323804465885295116978558668040871435519494486833253030406778035273308589709103449101251635421357656713044818614783216664468782975297803289306829760051361301801301907893260098944641369917809236172803520547406668749473818140509096616596840289318146162228057231570688422292298672649515136875273118719157068871608689592895634178738359961954991155845901629407037480421600486937079733362801888048470874542311045632313881856646158483553585443603328164169387189252849863281281733978251933618940213275112400435231201055781381440939765835027171516813288985650108347221501462676224758691647127951865728306079862281145810783738739431618122257751730932245195652708212733390393589426365698811097896103744387576014032880042673544194472332364668203354486118681515727808017572534386915781133679011703160036151187631208447008751220503522275356459204534557478541029990442542983610933564501100160065778548697485722924962336525203038364676518481564075047998428650811349267936113652206929069538063168348557906499859010902235823969692037880118262447565511641568302073843926942038916635798693966392808544292867376457946305785221228937648007805454740864755629213859953128118856411757358401194468683548261429319873264025001833006174151420355137283533230915546510949012595760744078154490480426466162951114570333230142615588716026694380617473165116184492923417010100616803969151471170589794396218627810502552922794091520611961462785823386901282682343920598707009560128507878072787080353658092924898207571211688480838107194501507669760935491719520317300248165791228884150478335289392306875578012079062736529354914089431611513517641212221193326673124227454260786594307784335468023972978608919254736236107257362699498658540586036474359066898895583261225758470319040876463565580615780874000533989143708534409966768467004226679280208271261639944263877037914835338504554820949340180444496232174578349593007222387374535337862238840464698789839768147433838658748102830203806721788690438768394842448133580066261863990270684430907827760452618616441941356875476759963361102285223824538755209613455837503026074366373836427023851817205419214090965403282715930322280000943838776910810590443733886152766279685153858862010202610223981232220528007147362648950920812311400183284539389480671704486728208030853390141153107671506964020300068770002306808467565189741900320074824668270443503865919736325424920987960785024258206396550090147535638395580080973042942122149423828756410171523006134958190441099492882818635240736755089910672169798765665123409813098550829677692650735364382364847159548688937787163043404502311144089369355921931003295690781531501757372849422122128796261647395703941746094943916965494944019434373794578328475861066838288128280905852539859921576939130956898590506360366728886971537159992739767857217537704014858234602853023807031117751545593753144767331388266388915172270832023935859502493592090616440177725120399035702040293012328012436033015432924859693973975823545156558685048159535902711624095000623495535404619666024341461117400885091342172747871541559018217845570982190941954957554857826786988180939102642907235381112518257887320302787548901461714910034287034544859375231923217523709549974644962237167172601261370024671982808713060802336523667894044361810374967901622524161299095929714678752141445277045443050570140229563098341052585118863488338154297068637072002818814285573782986196179608051962412620846122881289499746658330630832378212841713260617231213601973658121027385109554304535670804999926408306224672950796047684409927536247128866646582729033375769686751821952884961855388484380425514212243751011941387734371556895254120582975952854716752336898610292033962338721016492318951857951485341162089970309077061474109362681740193814189331889583213972138073988632031968916195539877684282913221384738089973400075993166464387373197017269789507049856988098766966719424644092606994818814051216948616506520161568228444132441757406662209564000831591156374207371038982558314320415125546828065936671460787777072099847383056423659203395789663816932187204462036741288013285530509480657861414262268986181617010361049821949917742862340885669171017573441426655375707803014779277349608035576204903658037808078017280033312697108085939467066709183364145679338372075676322580618600168288776409706953192627842449289274979132949841046097011867411146439506457164803496040077946091924348992238410223926337008510719135072082638819346926357421236476275544362176767188163609725698721263087588784230246061552460526673454617326561990186321391246885890255578959081005199510026608726805803414777639021465612002918761621816503041588601682914273181480131787496546290236278561172240307331885119542152638712557004472634557351880009460431486670626502608176141785532139434470384692989125487507467489469289027837831049783281659583571585085655820923079907934946717314791000077770620425689904748496282910970176876454142410474907126890685470310915192132479805440405450773745992838531573649214724685589740786263058881447861587857594583481600260929750588541573322304527271730311691807807836263982418133598313460192263746866030791259398260334959139392564762172755478738732715625553580348325490557547376733390718394055779908282973724444178377824224240395751575757458346206281573393864188848078177132913002632796114337251408482910078962152982657833776949956170081640111434811753653015643790719021980136987893851206038088542827097372686401355175745656967976232220479166598580819443394782723478874023388673745782193189038051355963775906586593267881374959567568882638933186896769693474898251169165075361013791141356958154450528539855074234947295770519211359684815948133007960596333238882147710479014326391881289245357223066707633489204944895437459015782746234489540115278071010771442385188115537116317422068083507675946036273523242535924122920033795268160881335317870320540042431447569280396262442557909550830655547085751645233663098315438507451311216090020431884411523345043373804795367279611434505345317345781037073968980402745397764317914959338860043978351703582351851925745102400227597797257711626874087762592724077186589151463752717147204878827937953062511412303448792714567522167259457942871376421523854022602993697566573313073845753565550229134144036581513498548736079268303413261963831327555096351218141253943781281432259522260726162470007868060753110951559461277395422757420203917600285029536385705284991764150913210614820813781131655785147619365339198585777794290793050622203226813087475929563747870976650773969795056830789418463241255881582820311150528299047188973323904544538125303902290010139900049934557190573418682617432611585538547489375259033494085716849385722472614704308224358967373317378084863826181563755729886570542083471839133374594886071507339822546862428476377807940493716186264304103855870853414485252229338259734843325201814838717546118556503885111639366440217568554221228811738375476769434542043121700669649548627940496551009454553468335873571181081785669058834999967602771541017612281036223681010955418722039189617299726714529750937450460915785271342392640535347116502378921138428699451567071555354379446047687505559107061370574516762619952426576464025416923320517127126766001116733754872507568620294976578077061680617774471755931230354389098916537429899249128236372988361137621381673097514500693009653689379027300951633280007174977785476105609179332411867070197277524186481332686903628928414738814521912602124863740516715412614771005667879599827452245270062371455811661637214239823393910592419140645378324165356151619516754660319279509749997653144436560769289523072388559975020479501539304600612469899299474484017247431636831534237421761144347335761085260801283931994108241895362995735401452791367108527600424752172555041931082916774587654399520895659547353287349029916741438870663589069955619750867564988852417594608830074337530942448637206571586793078966542323022073110466394972906095071239640412015059630498084268210600037500584484502497724168820033874897994510043414557662360124509085630099392384633712587665580890579980886609931535013126555389390826916060187818689051457554634588379359833745596680356497469971110178242212727922469159587519827956849309852520879742448401784359506378419371361770105978281755382081010865729351949481403731538836929064755208634469874118595410483726917077155006045237997904518445580624391663070484315593557901770665052557605544370914270376450058958267109120282635902711428506680051347472795595890058324595873466248303930819173002651797765340367772524264604585941604899711218987586513762440923703686322715456988692639869618298785830447918972880038390035110814479074252231882801381296780618979723761390014996860149251709605576290858150814439790850895327654388112701439448035117586169315262816533682032421950107215704474189286495310494851005811831899946674195717791117583741973877783557829367237728774343275603656242681700563308788358251420958172743690452918166299709530990922404663239490382937728508296025796541714293290930464548252986827373997481767539128038068750184116855540752965105539607695563939567175100910185015878160711273246595625971037529890846673622854833102981671806080900279633379248684153677030955801128485029237447848373095448386573392818973399574569759105186209454529184274904843497355514346377624406834605922183222902496548125915530023250721336245947103170242038723902239053579046756287284877400305962970556815384104730398132798586322394553476267573267417205370676023074605620738044012405494274700345029377112503560205931977595230552207370679372418328331846176222214232511920410932714508623193328234059567252359281901079761655184031488287255132692214432301106416850453022816696537492492387597248633270633219553194379825732202849734097686551571755766180537978087571113747428269701924854455794291471453203502609258096442678926904693986282450206715561212478284153343368105962180489815669820808462013420977758279121853324825919033580451700157752800570189495889427469791066076760994069936886673681502119280008280842949992457842978182114154324872181398209229631951259593528167105621919839900912146254551733733190532048276837867702945480276763088670115872931977503233488836668081720357039274415234137122951393206325888736620919899531601780940658844233103804791562122332509620795792607260171681336069944820627866753755668861218414067259282704251069338056211972685079514545992354472412241415342324565579920465604956163982849857938539822047243833592310209388193057115346873378337607825555127140831708600396429303155645437560264450245642013900311876458468163968406852191685898555842841880096466787434087180109974880298318253686056233554575890621368572242659693030540584448833007445633881715770133372082537054408868035940290443448582468817110062582876229427752510038612587646774582201343333544502250517539545290433292296833720012865004976956163463484875367619654670078268688359835359664667700091030849136779520925270172736671019075751111753430326268326559299883767956246442559820406784841870164296904322603561320601018440476622284139969456008326249374166882333646119118425969056956231408165368018638105896276335512367415643608071108721713602817854806600766336456968273141426382654531555867564323769521785722375316642111818239066364063084868201272559962088943005551748856563406644563448235112540455098913549901761227359946461707302736515316888659576161254644368938963118911910632263607090160598442367891969373026948208027123179092236815610199531280837439787606466501235763246479433095764082111865087341623741194523979018639409985750044621010913602271480108506995817582905799649561062968138080640301362549683358879233246074505829929337955038591687302932020156702757011152789833857766127263200721503768896367147986280958507897601375130344067359257377612873600412724772192974706272226886656890292094444216040545050697574281393007790414877311803251302499950710377079236557089155662564851155613354906710742249911775137883039922041332360040834635636882510618951000324213418101494385873696328297299481564260555813562234833550413407850110936795359736431793139761839697770329022266220037770792545593258782424800914867598901855349829769955302352639003508632530132034483043131741044345156005596234044119458276207576233234327456783459542029628223504796447765783570877406268258548354908236013099880441949492493763800025293497683192892698870400551845903108644001575512114232765645982932212976216881022344912754795832711837156036877789232294968773592019434406517412547795656566274388242602739176463021625458139451724256799265192151698484521754245021148256332987724138990073534928639428036822148406896461671904960573530594904696592312583073903804600450884749048101769798605309130628322122946135182496954907791469152281497480077301941611346161244389240244030508094395295087139407916578039618387337668118469635422577975395170544284262045795760461062653738125013704936693672193169919916884352277963281101042225614729964198754960690439041367722203494969801548317061127307251676370435656957767331797321214077371758201210870676915499329717341888562591609392229897468394525835056702822985775764223618829365495363286982548781963904835071309515089879518130720859957676371783382235983945081930337716065654334251174515619236559153719645007678199588277235607194000913351652341022104238373196075812407280728802669019351778139512493782988009581130468933642983214745173549622952863517223883477319802053878322077381549234446066625520654451768377745059704113098170532887920334084379673062759013502889511513404405661975506308688230903475713841797857787610855271640152825454710850288069178401284753296403837376095870542599048931125297585552864146001577376731833870363348068832270129874865262612760992223451137817895648125568354099394039450757415716247150955490787264201018893593106355706896773689953642614288002590698762434355053574252967828791132573930371160971614172629454416562300698333151871994734925002003685126050125388702098543213163434910855120278511794450624556583682394267543596968354195125619519848149152843134945163067532215701417668778851107970065641179314109785340543371590426071756606172785029246650968546577427542318980892599589999003269620046412342457768493361679287141943351962837780021812379310582268102490167011548381687158566947377812244092074442979505204079744466124640404483904648623986623595256773782525079931037046960291700736148182673524195576301018773733555141260481357351916912639397978810849715740200783799178607307545047547799426567356941561634015980665172253103677484138311669604844182761555336452845946727976633280786988915096824767864910991860370962284931414148070813322076099818778328190485989452078711314253368645568783188514711801233760611693958103331008148841822350451616493388261520614261296064046441058631930858537333841154674898574504152864553915862592547408510100250253305705146982692456929639035512388913531590150070514581770521685952546318274982942629242013025777837947510086064964297072911251583890077429014469797260140988129060193613887958524088371294251943868914760492552960252094882726440647968495716704422635227761049873692801955854273602851769824167743223343843031134580239442035440771138194897988291981136852992647791833242151349676120843057394280535523796131022998901527430467566091241388373453651092641767448894552555581743469712377748967952465006328759261934796127139197247734224766356153485540736883389291516353589350451686121102746003188054079591789685891501413252249354474596672614380410119617591221388801916365530399028509532916023234034878707998059119954903975720442955654818881199145006555011707652978792568849168606245333181489407468079812612754765926556326424277171564006938867825686077560643090191366667963787882950270456867453898096920586811282125590335745075732471203443760882207084105727059873332665521912555517981656391023982223180555927457736007092799195916905481762855084473511265065749182468168995725310204636899363684083933548833328836540293226945688066025928971251230289672717920495680928215718015468818407857974548845375116979055853485059169326964781480343009596994369613196229872895312950770417700553645347183075133492308236887840985823429917761503545398550156336313363812809202257779089274129127666220746636416244774139024992606818776559339256561757091347071303109015234412855366451613123586740663532841991049393283046110695289608547717185227961816849505958007214941231408278437191421581206020366721737798019749762814648656144201049063755131369026206732431554384122497340098297376422656552972691576103068214169667873708344567359174380769376662791110597764912838648416028322918138185993118404461935600822805025864300206919317779806036727265837363147774046689986355898884839890802543058257423511096270632546006768378962288003436423618183164048744885711020991868551072672659192526714330399871786237964334073221009564283394523466218786017259900486191832764193134687989408375661575294246629301551775136173542892861963346901007021898257155065009661560478674917999781088005105255831128065655770613859228828328096220310277215860343613527444052284417882727630237397497520745558564494345950636234447146959269010730406426565313105372762556712833638513637750519095455671747374224168875647900676799783503199910235489546533584869865415716054530412199745916278234453380629650240259735117458829984194199057667599400425606118884306359981243334693953996683812457220693381153671139054784669926184569912690169755602273127926327068073554618054720943667864905819720237613468816750958441542791140222214816617383827817913158042452431564471138144561748754204592631756947308951768920836918557959006992760009142268139469552690127625300833510487281106350778056829615398834051196291879696281044457530045805610601740706346510895342056955588812527773517906989960045726790984178418584691771086421763250424796804350855650754922486139214853566720244239477130640680977758341763654778635387039581207661715171194608665098142176226045499102756003309081287365718794022200049475184422044449144341875505022527593794271731833844307626139590484072155000952305384449053773764032258788931698943950679167803948632962613047061592178443834140942415552426386021457427987558599452925757360449224633445060718824635686928137663119145585160267457109039162877840694341877171133772596882493054381705832231806096226299117475673339523457125266797441113975520229946817455178034569130879273278610428440261146600297064366367893154868709039850837216276823163139212585742040724867889489695567732056528128648442867163706991105075900829300075215697845730973639343844083864325218506892879185624897572421819684929361026849243894951228805129638383317883697333797216260776335121281580671908297205169110777562392742127875734995806201677024296960360386811049031073452905859042922707518737054518973398963652113857493138791850514650188572698297664113620291214587413075349343570618170867507783591567409585503776343185436636977953035883350896631987252638172381746574908416865729249138861569551995824145814721266230630746029124914120812481330990036677861633298140819498733787459755193532031555206521408163255289375263326077212502992909755290926361294725928153497082305045631243007173061367158350623054725449203408601992490253613079074988923415491693541596198271716150425606018381835598973613068761207003851343887520166753514415902427606996996494498226056006736124164041164464777847769481033863414230518681189633519665406352907187838642853437206940384125028051923536317769078226771571310980000921139476763426016205088910046416736022949721533958931373673466656339215848775428123569726979057135176913667111471214427753816285097752427813842279336597753822686601568905658316889987199840407116960100280658337363457464189945485065600625516691921768880264358859933412759576001699768301238885475574983680713509084057063349202778049764102883612548369891625245714664493284612286852614967756826321113244294614515240977209673233518934054817665004318953290730073968531871938921795482664408366313462766459421889949784731651468817059574384127884553041823003828725035157424842160882085547612505632703036793843244299542270779752490262553922453247144985200564476564357882624266291471069019606692160982436786246555237255970851535049560364727868173489581758282357129999518004147826632821674166160500730583861431294229493076255180034180798798590133750999935028824222126572586161484262096174991321360651167383915400679025025576065035894410965155205721239849598841491207794197560901741251048752624322235817249351695072079389761311493277509718797328440698484054540778543577758277794587457594538623437216642301598135076228660494011371910786180048488586199443531631606705129880117822447003661172547878465044596291972210332747476837973256279995339879932310417630665267789975942939365020509731078548176424737343341854312842944714942913302119294262533738609664753868841226621977342033156261938341712104646654918037848507629429437119731813591791233058248643316051611475858239235069368311089978061495392939796964467930988389398699984454089735186319875034114322593226270220522816204422931600297484617088007107015209056929175264983599787257091324992896950697632804736683331360929323154620222649059542640670368496766753231099467182416476424039256420269557055547248237984056638375702519409862320447749539483685059673877973946413854947396093390912972182141882717290652096377136561465795714052917080647413517859163196779719992749615904899451384935054518779059594010844295369203591372196558948200482391372815029660453354044386569358050371466299818292808793018171339754230543939655527826260931153756705203832532719665240427447096958738415866387272771907747492653616574628883780721505117740479049645577957874161257889309551717096708740993901299046081757306659517318881200564366246499176222834064706936965770192174525043517087677876607898235368718065421744056691007449742848283593745437282810651265325582496861286121967173738358881852085918137226767659403417561460145925579466335437530871923500619160275634220589450929098185959425477442892512096520901168354933822246869230240437089303597658281814951644930827841085442007013751241086743655177504798375368954781844534600692587893057485222779168482170592761296300649710819827893496440922795997221660074644395981411674024457287218675333753292084210610687497961347849814619524974307440177205557578297660936558932102245904477879680449027706437334365369817580053089050132103035530054038297547174354971390227037406413915124098071519040154873519070993050306926556901401091194308226217913578342599191358650084264162326351289942650599313904711370368842443888605843804162658942917029097048632484170833908894318215088184515921883515566064850724969228515577158940337197381553326106614430736221487903531952150729345065761476949197530040979235252971173587051692910393568749164124207775044220418480543914120843956797211575481020581735209892718754977018593882108269280888483591260256300914695422427901062125656620580371987414058884978281506826577437815770645167934847629991152042645290580713085452652339354327064742512875357385968130206575065818741014700194522237147403548577602625238172993666163353587698541006299255629063586163049288691522109722626864118499509877359083888007851228982132974161434608237723134850718890959446700077496281217678351457979690426726333952858646422645659452415182526619829294317197681116228747672277164001613425668377437914211695290225527092056725757586623291700922366676037803239276297327760523385460590604210642628274574384753015660229632299291112698023097555322645319954164888286041394673659784869131760767581844301984992099015195135559036337830656408669210529559836774352218903993740501666896073348393123532481725602995462813865934685094516239531112414216109370373130642802801984411184330064212152731665519063801354960331576395185257161700343188523332572199272414595600112752062343032906266544499785981649639263651163348242075454552511686883267704098283907045725360804569601018407777926200649087057684135493115281191883622325615514850336251618191824022670322531249942067120400374415617547506893378069166705209905145181485656419082787160324247885184350984048972676541534709638323358479913182109323932838018622629923726908772007797887504096051972897241848855350656606484050078544058651519858427378494131083548694599645243560299585697917925917242972314080279385058077532865910589839194214398734196755189732747526675968213557574686749242758880487821101966965866413943298247202900050889743174135890845850649731971818194824202381694790279326297041387142732983039553685219429113334637948212906429256602127678873538010864756490061112381815253828955243583666325055270761854197320803381853704995027430448728953374218075741356015835842838203184616351154683321197472465897017290465223473372699368235601852425370684192566050532022708177084215837147516725009145171427504137122953712530067269182207801100768445307636234901590882041957195906763946141894500324464941482445210285328079847296483346869760193056091481522203663234300631446532515452491580460190300623890089133440252274815228551959306741042568329140249035556680139039269972425146964301347738609545947626311783122013588087004416410507904274844190744789145610423660813851560052077985681168437865743231685221765436162030504039773813088131649569489091210393239643637914185441105286303708714744765569787195730470508169022672428692337690306583537953819097311653254583185890446154660514465306055774923913793140259073902444150766946635580608891676119118770341541669429754567768509848785842919749810622503423432715832219317278506311163312803686903186706972076227149579927416235623707405248928662559187869471301173799227604689796273686212710131290003581166054862517066258514545119448169928706512027263773964742741104617985132832471342570408227070193702896272453950352042760764153104887319630448216968922094057996271337256301372946251302096171077079400675857850294312139757262182278372974528100865830998832796192502561625803124910436398331923005738272569712354862096341168814677253066543437798282902764949696746910508337535556079876369601631494941864461774279306818608538476534252162935238377962519988529023550794732790361513950491294257305044818448458437830561268574707432858162744109633170429180463157780976420014881796470035839252903370663177654029613277519815699259647844221792788669094840811557614515833857252589604772262852727373872852158239155017438900842915236408448180987063290461157729601853930809501603831604874495510848101197103371743816209916776900018179468712004836914732151603790299580778810783626532231689798736261703100453243351906997688828105387471614746495481234518957108092741215500070044257721714379879000966354718526850050930390166959803593873029702449054203192566294157631360446149305206806762068811617774332545134878173053114326417290277694602799299094633325318012015218926368640012055908342088103417830647610462049175086545754969179411318128114976270702507510346943124549376528780174134273381721617517398592237164558094599397612277150819643596326649728168183237898110936502705607572169201874949956437298903874954541342480063203102700641120904452990752616505593556712973570350722512698699031603966339646402352236295459187742667794394904947957769986833452369983111749473940152971561014949742390281638215733163072676506046851574558744675075000499868135317909206796552243307951780500124539729665672382908723070068830931126463495287316558172275078547090150782950686871112135878138955888860035429837466548485529390901035916652212832591888172302568360548855854734620626079591958199532324824823931972393059052114764016230393826602062974472635901170487837336621451875808272772089597416617336157425941868835199283556718017399739932661654301753305589145651669676135607296100518848802372524697294977854285137759679817817845264517712440195095273603575092722652393737324396607368838744309582972973772090186205458864179872128039401576498226008230339529309735197486765824666960977445672106161256133337430855162622264160787695024720307574613624822260679068191405331928475751681050958625281658874478341186879800404875445835544650815241333826375037864567160890884971197264391501567600821625775791179336150715043693550808949238032640419120049960596497840050268117223845944056157935962964633043602631878512382686845992500100029363798812689248126552397717132468521641072671932171974525242939761513517359172267673901219962926830180685924372803981701065222208286015470186768926378418462553659538973564664312090314522160551131260456533565689296626032754034979658057018170175750231963834317979265355761985310495416534532928291513394584107599012572336302926951014751034458340339826961535541257797987630424796961391540667196500598282321942573885218112285530946082706755941085174793365209188104653538170343041863808722546206008911821966552588141585316629311743477529983037259374484871060169749462134626191006833595647684556230226614045342888754330367846390314992948078396011983411530140665350746847804175324962825167192179102991960166681062609283705117555400063399717887822597722561957584878168933010779110273144814154216607976206145009967549198337766029365860929193941326954480958892394588584636306430724802876564429196004424648482652909021684684164483219885502956050869671959455902712570770153304280169582972076938171571463776001966627399970243970112671848879856346529020362148624852858112735842248145553563664561741954216510514192866279939150613518547864855675460430357412106465992365147826053915807711805251496311041827653793046450902241516100799291003844135646947703429085353317605263154840631073836366125329484592285614763433951151927323560272721628774930014607124803977917825351377863255781734809948112074793330026146100712588134891074877149401328592171230366220949796818213320043148691087601316913058281752335025297139984463955347620097640821164631591146849910277174645904766097714008752217312499439333039657528339896981435586731595657196290001886496202499785612913593976481427165316857244350132531075729196740504575024345661882619962906807242740025325383384108883952440830152319907246276743049069148329447002633936253040235053251489246015738410998473112567234284399382475095728854769213422436361404799483200203206992804054055731239163573036700220702776809425061568979927976418613037863055496314118499701674524905615552347889998128792324942120144022169795142488054642392232422054986382504710421378621599190556528257878404047638484785188924324434765426765450709420925636011716662452610405444487656653242705953891977653710711183451568337358603068091188873292011468458901546926384590653847348035596105363322770758445919041692623021933477953414851339190955260179639889486946889079149027257689038390366426496728059350727354949494567207825401993726745057458675570802294841253792760632487654411093721666776710336699695306022877704891287779224552530900694374351391468909121246085157331264844372181850997654040452128369389226307402374462879180688127115783841694401561807437290819533735997315675076295646269474806566505137639357037865587192658806714504641009953291625314994500817123199442036713008935222644536913201875010518568584655198801127794194115396163623287072036934428096454644302008907457768759931307692589037729187921490796857795201133955679334089499447399158742890918811802221305052168394254420441029992766142596139620542213851321325247132815685649654862974359165978290094662002569504060300578638942264691995073630597442020834932743270074467451397602678632487843113674391949208171709362699760847226179144457276682313980217895244685530590721923228769137931093754454587893971275120330700067649323988768968572254518763694147658610986063985880012911298318773213392204758610949183151656675710250583443258572395097233610769412566250734315343600873200313879727191744182483901900893074649448733296660749825750445130063721349303509967891184156327690496579586800699034188151140593269645742956096458212443744781588923716766468481596430249550025139508352393902111065416641993068884975008234954129776548180023133379765776039334044987976021677201868342655286739424041397171860552037528280334617817646856611129749621596437393363365796507623265988834433599350735628963513882590164704211803176162435669034668568061120220980253441055931129119114830518250470623842530803801716735297438900742542351252044111122704581782926485171170343519257266498333351948690283524630341428079127713169990437431788834307357667137055798653230242433619281500792027358479879387489292947257247345849835570137578693869863436500208934339631070175685244016889346920068313440364775617543572320122531985303445546907407687958163261603361607454738258312930966914164566161810572918745883660010024976067672470169166075325884511407356956715861110070253211006118181741512463784417312711364923143467316619611171340181887621850595293286481192919311808418974000665158350331907038079969496420555860428510476370852198309415648433681032797550913456087841255013781317379839371444679080622804906730373297997365158021141001284955141548388841953047706562816235180710837458892737340135233175486646064945039369838408444545287594713060880404167880516689036371353353604755756495880016352452492396615380665406872750901353471793360884611872982726433345681869741534964618546708635784370987741870755376446942826385415442096455517332160718780072185987204327612207696069425431452714547388962646351818524843684392511501683199227747143889605513376704680734815843287428304822041960341296392231402161276116041235435911136398433089215911075011977232023986495109839927205158850034898358163658325285514555400975184153373377551215430172506096248134883355048267483584844312708948486503410575157911326020709364187811017891254279125649368628167503209434541697643794109970932026729962045872540975349991369935781058721477323082450326607542856716211078618880352892545865648324801485306624410696692525753435371128145511295360184290295470451786102231017794495191878455509854557793485324981617615696611427233306868402446166794454809197149500250452137043311191758545640056552097114517850628199846999478312398828495947914488670867838121481159002758928677721913886739741288156070932817885642760157281864068395023378912118345535575457232935534363187711307280396341389612847584008408432721950185772159229606678296878600771343867970025919563005351386618992398594470133671957861568873708876804865822294180215360899892078910651858983023951223330486880070030130241529529524705821953874693040952580844739260606734343331011633368553292789003934332931814629831654154143551795327613236250928669237148539848857334427829897394471968533781583756366287768088904286403699926501956148799999502962145107363212710163025001038278296548137031877687888896244384108324303305276613266458749305937491566188129098791598028315194741689906348074768040836968285124081604870422963968763731994562152212273168695311601451824433735727956871694848365848563137690360218834682090865272096567067840861377042752740450292528331439757900727113570834834791154998989788028571865916803527550373505814494308006114039623959880837024779533877230675566277697209207270208376250016174121942102900755207908372602780178985034133095038090629406094473717279850983394021864983081051739037309196883306192432947008662909609090906631830663405455117313894552539543883398826261158733526892131116215097125785737307114297047403745896604940969729470395325727873403019016092644651089137347938678393237138536870941947258705042837065519592085219845848527698931991903512959269161682423383117270570299846878921073289015377157579626068617235048497665667601557312093317760690532887671348801634341364758465430596785735496639245028533343638324271942440522151681007261963357592779607056572487330870346420868940983878861067220528624416363768229184657382909839458858937402533072520897629361610784160980460247961704311162912101670002705399185121318820155190150230754906601887051210742156685917626323954001070489246469821632909906133823606629319422628682092588230957097098703393289365838806724672951802877011004241978583797405875320950892420819054102129065918428095555165675192936146412111996650405517235198652070339819495914002279629099540227349210133583877186197859109876141859694226460142024298121842772703155636774842277739122665608330879181301267652143545213009196130488500722753046570981355480723077363528134341277940987666712853437022736132387088235646725754680546872191542609656843200066010372946681894971861253232913090316567137861489380788248432643512844300125412450155812781408797516266830522237868359445429827664870827165884396560180259609547446846188784569891002569052794369585654065129786584713384711089950067455911399584450941120497140385108475055346826684102577857867467262369118355290842870687819786295503910477206900897227424453366756637331835066376450131222815820990148863321737530414852741502234431516239218692935570123089853835698850096420107441910736709625577573543494278616639766106979263429826726955126834094997030508329797829672772615047474022405350284628247992334611003786398551639076916894013884145727345243852933013883586479112632684083722126986889975517802555291611023587225223350570411333803822446111065768349331581347851419705456555072756909209833260946508389025260347162554471999669069741573271948524465013716017707847882363555049291019592410199219941681168836960876357597046111957875699496049626183231670305425775041340872195119708325703274443483510771175889974950705966861412569803732129693794151144782955739719845930909362743515976891355803619400699238503297527907272321382308146577074163129108030609689324970339546344419838783755439438246429240070512883625280411130253359635471419336076633101248899761712450599470681643539701308579676817621092300670895504449995141369963025901736716925452102800186679980444822086276847122721087705540526642032570485476525811291733376020524322376985014596739044745010947441105637400513359443342998119944054373450134151107557886627598400516442716963840766080651129249530184344207024709777846066235307858978501568932068387754111241540788894814393260145578779664771268031620710064528034970857161723686217430589337595185623808117725267978951171670520021645380122549464111392465003046029727477989279083434006553971909951944197564957089018005822444370729029556733069054695365946071674534438303966804096927387684169997993958155423745380541810440465452745289827899248532207374328115995301136938527545137070571592211921210553074916825016084512857731812551157999271106425431956405237130255190862194117100850439408890106447481294277064672069702877593996196165112004524474142571911010814979605517583642775921034054259623683165534977835838709684024192762930360096037091943206875596509832734817940849573310948803885563303984574121136001169717899645880916228447338841113114713621839351365054627690720513454482074801720718667527289469730164450699504446195565703902189979123168996918423962815481648997034321596277636212370759418614593096744323288351775511542511048593476194075762023536082352109077267127480149536351025889859850552887687723587195691668967607260059910207885419839857527910884280553342693108091786794944112552456037389485828592723892149221856702537402787558230041741927864079488274835800220441124923995190286511167900342273002613721472079671191329322490753038772529871596408956280075084876352498842522278072975300866814667142460624342617236305804643414966150045146731786299819320693381861533162602893086887208216328351104153992030524306610615484410898114730719797191174384868079445723442205377806215446078630733482146224692621108481827881347736509880703943925355644067863565714883917935264793202760520015916707490559112406672477238378128423101717754193085366422129936012981303917921113757563327166245282953826039855825299943065475734209378896495898169040342300770642111269648199814698366999205450689108432714561720032646738823772945128228792982697632362762576486045016867770091301329454913997474764358778664032915103615076125917585404538159744008506545554916198190419803884116321601314397692773644790801385485086134231136739092386990717555235325162214380156509449170048112408722328472169340148911849164614429474834636411842449767069375987542269253009720606303887983220383648060176180315848188375488919039003725527155398895189906479120842054208274552377195741349629788955660330116766710691472292646685468600979380555617819464738086867016224960103153250425884173392107084530138253225007074456497357952716338516220251815815427214388491035541346418826886191723395998474986295957023326087194083627844583278382113000443085624145227030442966457238797893684113624384118702522933375004846387832132014212177508862982119768968134770485759148439019884279671548717397321083761289155427673715744120411927741608718217416488456207756940332173174878344597239836886995291652994723428257722426542600821203603491528175780779082267561168763528610088960843094027995534544032105642630359350205800031973288331928251268626098104452030486523231333320065164659300336567675370625826162735431472154281608455940568802434708581256464745010309862110426673983842684629997394480300459964543263783003965105002826534264934805127848825644018075430990475789599634211516875528408602602973933911809821757283320713964980025428703291659654277290919423040204972364974062638795900302938632288639813477625727295862296764838401394747902232734614510093435666079244505166157337993076713151853092293528869753599985373914596830445867997334988269107954731327740770225472242426810235416855246305210522156069612820280302153939167043002295378534552433847593560575880376765243018730764371418980685051546716229725081089674913421717582115317347368532902609203087207568720689833360629148997799282723106600935723148059825356853100570905021636512034391859200403965302809532317285685495357488517121224202669692275606627720658748016155818377647387968416870888555586963423102561874082408795529378844118963722420380384092423665421474065783436092648755785274421962520822587723301272718478434068863470511151391927764924655015308218723566455600173720399845065938964951314254305325279359252320630112212632457297533691337528982684754146594529230798596162306749611700490749433215737337446113471961688534606276751592034996652118425133846096464953886310618404841975463475618598041662628316547403559009088214879914121301895715142056063080841334172401477300942097280949365793304401354696118671113030711390045962222377170695248174995558215998480928752410915625955193253393171843691139833963466093401658321945419407401938307939105025159825825200254654895065658715370606547902113529201774804646976273694802402142975062383192848391924295181786718801014258265884882789903226868804792418429981315506409885875956277178927867143993491997199753940689324175743524138922125148143852080994610744577448509194664324430985033947877313856500673373044033384593624216740318023636654400192993704600328333396496491984329662997700428121855294284968240668367800457581458352545160290774892708437526095486697825175702571965823887777902509264234917033492133921842484681945078892209908617973976306075171519933698731137928426291017494442884407285770439976785420004267612500595490236282493574697221620014711832520872790447335921746966550898422563360991575346730206930023022318098487911164647018016790661738405130264401298117502152281791105562318658905386137044513205736761835690126614599383009221484755554793854981748961274860254844203172625304831958682387131126239616501626633701353736587806910933553672269271132835076566391165897448172807537716844945399592387330992544518766264416831085875776305087429711121422931009616466703439035046578558160296313986100697096646499033550633939915868918285028613760482334480667460850841272775205984850166145337593365387103398486546510427615604617280723027484686258846427947542260668328650137576233416680771017764902858028978389626098293382677254444078612997794516298648956428006853069259303200042451426951381538949024976241800150383689255290967957519102831155437401279873911507585599023036257615782983841950576903895519015192306783572185460008355083426565339612418550899696108825137005253932884235030298995601746867596859291770961960871092964178087675243269766831897001137434540717178778352836049132335476662181881758300458845185279857602872244949469922170526565269504043138555424173497192822503586923770680137430241575742709122747807031866595015416978955569954526685122700618435767217179270160333537169875859911053923783720058602366384716148284309921331078774053995021497283515182640303764117326228189204613852887017693012377201846465601765726133697156311955400733625588966548348630019933790703089835565199397648727807312032016617221078417178024833188335476982522772674039848027178048749984119902971984331945431681288216148858312772949119726132425779067020370334026465153370251576778144617950428487614952255527428525427279205735396856626228484913675360293708748793967666277284372342061317949177149275670953070271227831239092882391052505537386508017741466761390058979135671925075983839015060873753836788739000211521270130258816303641218705785652517163626848909896212728734036086638162386736090006396784731232080569686701208986741605156974830050889588876112641061745178431470758512208380325087107981014232687713808457480452102129946940464635750734953184749171080633743146460217691052100757957819720962381236125532299666570591501893118665086352178379685125672908764301972568601086018801954936629401810763238952945447990601936230118901233252917873631193894312421466511581863286367691414317602319827585126272765236050186336422129511218518939356993158366534171481071923269226025868289496516895251578262677751607779761803350622367105745034543579367495802217305510606703312286424053946087102017147991802755658730998715798811171800092734295982879477904411965971917665527662845113314244817870961035809379542597126591782157445025257418151471327378160524371366351221395469284668715832468593073431490811412083481186426029575689214524373017215530625431083543495244644141501819242643640765975183124163679477927640901614785769444122293020935453436693798536010458513996566372856863202991892171205622173589997543703151258103777019570083173413560951538596205971357445930224875796308015068561585364554114823098783687927839319562722099819526001329059729933385358974006695601057737309079737989135547848831489676422757399149551947834735363177546184462247034836868964776047251457770906945348191215312339157877757473444919464392055741259001860503760940645061540140677022281570622460996405810022199472922324220812876604357987497614031548350626105251414879561654235817004207883285387346264359623076004047318548046391974574009434333233111620198402108983480449902153747684053351120918928239500203017432911752776641113265965965845746460985320985389512125325238776917408684534420663314063558714116268329954718144239950854157843561888216567103880687920577159138638904011760967647033437938365650931148070803941304651889300450192856493597696878889880524236515546186807307064510448329928331148622792304068159268865624448528285340042302336541361022251599392732355000561291667596414156354814528664692946933567720833893937176664653453496646060720433230345320844263338659652355433091883636268492814926085907477062033634126650291778218461822430627809346246654023371308156033313283383089481945971893939379318430790618972613077349336485603634387888152718149530345950126213593700265351935950639631663005732477560007143411967357163458076400648939494636355919202414909933022257151999908863889746208267737212474914893020423738676017374239832058161617035781267287096626646145954201954929079014130793257209273901846514962809835914137156685316913317124592707625260033087250861904340311065936318608108148608942150517341728707892037413481608488860810999797717657959655126557444207941537015189293365411310180837668420434216331349904525137875528364848416379093338399341080130786086439966044962702297896170224798688673522907500349114701441628883408681161252229489276161598319558657597624808688588674559219398894064328579928421374436273484675637993635809817344305091822498228410948373398153513871217888762212345071910741328250135832236262632096690731877965474231640186112960541492147412702089913890996990735243048524081302993222208831999548510404321462573113557306377086148874412198179602319479958987370905222437029503127613508427451241413030711255570471335242097860261053478374960580846019857056255617949156239725323002364300618783770777119847137444374335726420014810814977293071160279345185186379390674399415527249840703376137985916287187635760535530440760213262173296001283507093879889778772295356414247716644327562186320449238784032376727949253430277781113419640823167695751379186212055171784611732794166708716577654347917356754184985054128475747981686652668039688675650602222465320727777948386001508708226046419767326698115547762434344649833476995176715565661809481954263254739057974031994971742297926226680353178955581328888913306579485629283391055566457070249180632708150237694167819367501237797692085819990994500385651430052833404667230309498476638632733316066982560564701733601935727626516492368711576831746053638033308734525030581953600743067218245072855069915182794433805666601060565074495820416854549796482165608220814642423614539379653991149605022664232253552135570028434624545028938576992463267317755189740162973390361518890479082354720292485248038140325311880112955282616488308244797031662896464700901834522511263691190873877402850578737550232189680157267462674979150197299005198693920712746280561390320617543245504109588256708220401119496408849235946783567996220030799965346316528387970117452396024562429157714157752260289040803650674996443898905630969834391872083455274997529763260323944073666639248443170740462963605365114064785794220893096357191615624493984683080550202255547227032164763075851203138267317824068502865286823991782750192260040475353303580957261311212212986604043611935775744789709937984734876670259561516537616432883984871829417857091698084985479360652249044818129011585055872696458969496474916716672276039632471955522785935799679971993693494142947094453158780171660383070510084829770125092400802692130113118814431887469779649315549457430456858333259983298686155232131262222206790356562981719127161446629367865144768299406342408493234126532515888344125702193221301930415862296006003962002847633450129809190494704037370910863151913665947919909276070523703096942969858301899676650668363375399268860304703204003620486541494145381018082505110381079829485112654332967724767918891770678256774593347122845373088815260924819367050947504489412192010977726273010789086220788436779761573537258130868166819223445933467807357521417330859060513850386043738474314239660936749449832144775813979394473290290379286099186643954145066988011985231251301668936159888621736323768044006655419307742682129824937993895772543330806724266362157216758663930671881922871970669718887330382588535009552626663268170614637704522119550583840404616141346870754540692305333528520283684444180965854229136478640888162813384009701742348940804056478447159903231172680069745855161996349852385893169073224233681103352006349372496812481260379821383995794732280283472814429768037592490875451037523790509437064517330457392412279775662649638320270064101653847032861066860233961214542887942131317714082483981059595743184369935866524111782114869673091712245343759226811856454279349880654638333847709815451317507374313405364077524858523652118225439089823141254822422186038424799069383199440495856940578436796439605725450874838088800319165143276802145864336727324410573755682914527126081463991043931217562496732631684957699580870961141154262587718858394059761906943403805127026104083640507954756618874020336153371518759280115111083678628768367899822918052780891131743535253095198103599715664327071574028778993721776150602270708276371983074007425195818615565357077112303901174732405225626186321686315358299666650984665868894588894303326760526779740192375157142740298983640883386728108029035102761787668307809055301442412174905737588136524328450694856864072529079804942802461960552753809815986170184964945102896757755532607698371920271899001239426683041844135465766849904235121728346829243071401466435200301567258678431055275466246583222672413053374307630643423753783364017121448233429404471382746698038791558279543160534562751328507493525329711200008521366840434811189833700331906701860493987775976747698403558260582151542197004475371653158887381542005832169371247647993346139310515617191050110276268687922199929125718238461534602996723191405207376790554458635307499853215728903230288946561264344231976172851997802933025396217974671414219811058788045513629579608943282828491133845937482135882016440118368960470149331838801326883655045953036898053234407845134129305884713404123967585361261692152307948755556451497581155097562089226197269794709867046362468515945414524573044923438750223175978584629164466999130181790234970268052697176040422119570923912029600771018229692455043274776727700944352657766501900279447786686905247776430112262026395623108216345921156630802625774694107606187278190812854077768220553765327933359427246304852832103072023092530640486829535027823156332061481683521630574265244720494345886785587009154087867947877814411598372693766260590267069593943057233519433529703746391361469636973509828423824519275855536559864328066568793565349539928475704720307102812146846904826212420703549853989351323001484972343171429478868755024739810597896609710224967499697572595710052133031491461729270050636449929496255641234319943264133812236087789960072416688433603965222797528465392357829628919189737089921949786431813707919598482015834672629401220748670583896652928156371165526165895898516656582736204785029713524764756901105020922490776928522333061365888520922250010488202888590956927585594729701124786357091500541557927453666288475894548515803122806513712051474506575499579327154753111066788260827309670835416279480924776209373976042487374774165276032004446068554712930790715947673431037032430874368162251299545055288689414372232201109766385803902418089737588933128496252983044488682852116505982248702751357361508409519679969358450520952014528269471128249397605330146806141041805937233869278258821834023787631330733806265181190244990504722470599408248399065505290980336797813196266227053020148656852646988309657375905398750021248434408879972795447129774603960266000166667389972525614368968711821658019612567894627627234549119211434571011742308262673408759462867314474495736233438630580531867590391997567597675250578491415065753350803634942617961148140401409501980655579498285557420719216945470375279201934427161896209951122174169636039427588969013553415499787573647725212632545949956722023598213431268001579505137244468205771125061843138876750856797872251457579788986308739068821838732000014925523164308475091256410971875149742928186070607258738753586577916139930807659041828158323730580201778523211960784955738277112365441383168654669159900471823562036356004044696627838448995423351081155919165525216716113004534502007390866191993791177272296794445404775479921904320527409312493990381046104666303368969456378065486832105135663209865017617949524679804789811441304179548310457798976107485974971934374040330181141653466088225640001795521873913081527108631797503758228435922937230248629698416441429340382941069035838247042353656846213017491119171758618703403366448149893083709329520161332004243241689185901664172837092357469025058848678851178668066031597569324329205960740175211634854584624125873044666582755840794963278437596325579335725295048996196239161830349596731007186331471794212609601397284716429683657080007774269319207659805797097371921499096961593256981645728353160485983602912160692143345805135836484387805447058390505218614137902604924950867554778935034073783949422214589128074278970345922890868465079292461824744569045548235636800205222425860610780631367341774958733089311631006594966008643130877932895583826678110475474574589064100906538710335738550604088862437130911338906484139282487675287411977822147541670722534199030005362595292374600530758680659300817053623875829103283318910339940834844920509835879130519142249690662964690004209101276445205462950231607007438703131977662051159866112340345982487959433348377370752217951367765642121477401705771978592170468194929710573543235002706169963970396556519673084108656515310590452352232198199501089635952181203824957979389681830850438342151795244093395408202923506271418855219384386142991564089914805238137453774284656457465626978954384344582734217469145384655260785892929618413986985972279239144162112696157255657011538883040221820900132206832819429094131969540042882256842851257211727116525324841091889617976784278092967490201489387398530281236883406750625215767135543654291350652239051118751237486524930923867084001233699898118718048853185228814342887848907454742030431274726440296020495827353974480863855373508782065676340991482946580568029174957255523925807676904936318879673726906159004719759855560497460001624750095021942038301115806502895446057446785082888537696026910593166201055447929640452612903079289573246377300472822086428574458057470910168593553996781262939125980973032825562589519601882228758735720779865472287013764003387694148500846583707694615877849099965955689996558221705591281868808819468680212708901407746003671343318199002131773185899641641516388137949647334799954456802804770163981277353495320740513080491253853920250592275363153677876317132288813158109938605511354274223962213111425327081453200834467896572603752318398325367338600334249899709871283807800255447622590265886788651878767983280444965623344523647843806864968762827219362848864373421218698162413927650295945787262928584231148909998759813710839790680641000820279055035676386802772987732521677942629098142973270730408008396186314016664036956204054514356224301200898562344088256133217224177645630058893567414275659353092164128518338241112337318170637899814279859171688865334667878233983648513065677000742034390887537422319738412276579193675774409546795223895735611324998515671807404780831458663982653001964026504385289202844179816107981057528718575322176791370845338192762513348043367924567374195819595195697394580563992701195605466142089242031480485236760043139604550916325679544970008688741698810726926648017138629946565532988425788227838585013673499998284766199604245323570166569874845815720228924791533050473673056704550345840202205365061985076504569966054060671355330081883609586880163860914566970281379985006090700511513437488427660572708023427974680288779606104578840122626916385221703396604523751091627899108152692327386295931392847397838104151971553214514404639422497952875601949610277964110963264876276029036095989521251946324683561848192895916156546278598532557098126884587198189431317182394676768400673536028394609205568992402017191848335836503275885612069743725484545513928078520458084782099673931402186220730955442039276721829834679867845993438445176666135723184302998365433647465922868195361962198423881769702112997802267031873315944563930025885435488652227076848766061107972288619569882169738357184420814958175252721834157234456958550019682668200952249752144475877141480668352168758613338416020144398621131255054259461218043059303213515750280085284129781923645769106428888848498525237103490465373321604201462377484188916303382642729384550937954302370458199649900555947961336356524657194622039877082464476058410360477652592831756475236182317511623714413470402088047878917888336695457146431623213320940141003316255388274062953165500926942961006851067040587653776747166728157727979221056997270031242195389419689968089470661921282020126208306858427081021636632299793995661085813197792660019981518739163228904005429782270615324023777657618461044738278353659229941089301547407888509358490131381143231784871567524516945579105851438343017753472840168357326598150576704137039896161347359214195210491824101219165574843870826053670038876859454996697712474096663892625944702739142204284300844796468217965268182383675691728896102075252746255061124100273160380624763687591384832942698812059367662385911341677842421953202542897109558621475940283889560809559379479700062954730735566770472342513810350083896698913555772848966075918851573020364956355732475372604296018907033640952673668138395703210363958077241084490400018260883198266023612093753918056810433802483661310738646748715911879062470800169123795722217991871462142685853816483682550988143435500753355669152917597556139922238405135260879337073125270179304627783973773124244029176433059437764304714163114939101521974707284416664015674363406270318716391104908836278103977086233935092209303560647551379443616630851564724909700125865276151574532165386106683437656708589302649821535772609596482728405639504087864522442110737540277807590367632917842938432649800842694159936597831659283112167894191924605240495170263654966317371967147380334122673565575052453860606727312557706626841883776024533202092775923359525234083115844407617473329357062792298732044597136036742988362115638588202935007116178208194769530934761254068873860540509207047774982558245969311409446209491280948163853288605972472837299457410408018613218232475043515402207523582052191856991426830959625609106208298550455298395707959684157783961423007676713227507423630713169670891744889907433872946237928731712807919012635107273620771000780840261916310739812385194376487562962574419698474291907305166787709353105030714274807115480475257517743881593132866361171344176662138921004427852744970496347386214311167306750817620124646152810036946284671945093876345579041955816829494269233260105879666944346606936364329960458083231511807937038650522668756309552754982332526672629446054385353268611652610667030136681319839489817143743166700401710367580894353401676066852097158824429748607620925485758167836556925859162432408970938249149979896945849254713903677482241401698526114629892584894767686007191574510624226286379713441272219086292167966877336651360826601732359013513678959630976893017827174016410071981947299465230268237262455423543541261756867930693422269910915833293607038731389125104786990930484056371833062153486266187698502911407529299294673818233176415103209458929505731682958040788715870495964987306684577273291446664662304757953264608222780135995896749962671531140313295258937778377205173337135652351482867836558725632958121459044840193542225478780364835340957520839749550993918777813920577364243611477859356948454111619282391611414274589466140382564419411052471947270898363779515714147498510454393553835929942029120590401999394865568627088409333935204921571456465970479297887469539336076421349542398627054309055007712963357679662701058179016065979964316961379166836407956950890259583406717839327658709532364561015780737412926829764260327552976412078982618660723725878811919496316089616131993331888609037173846045450112382632551304970133438331826753366255125922827759831033989764200149510438078004214564789346244326181053467135257267693166136682482966015221319047917923975231376161205114988436286038019790169143536919584912548770929011091910520310190460708345237327413017796398692492205023816848735553970567337197122396085216945673557856480278751170089067421591213785134032289141468662289636587533733977256633698623967745262645016806446634322924658495160574757220405051938667421683364313621667506793972949564201563426968730294481800557947469254499223797931014988420451356938471727819117123035148110285329069263257897125454454836661366427056383320715595600450606003802869265592691726216511695657944064292917506666993166562970785154953912978476540250372076594773934923313935898687171361785050628205569938033134821025715687923351614768795739707736976551977468048405316886589585823687573864198588008299280274700131320135289567705601323471586721884119663603828396185981666726021522042265558594738267585837189264856644143019283262019680814517618777338291425097104581368319325501150016614634332603518430657402899771989181147983001996654381552795386565691752550271081429334050731322322056347130197738513297687873623639673533061621088996897829565683043950747188317731136105762934665142428036961488231106022754196444952462339196948535145588988830836083410108575600200139630442381533911172020049677580157435472250861722547277554901102609195817997887748696244314491861336569942087668312470374946570435623842977714272218206588964237050256718110302873882132394314942795217002215354440796667771690869084931732872673680570779087728941263431551117280383411542119860096136314386254690967177916758844728523846357134303684920240892534651013321726857013054252664669540531531906287014969043820308708548661958859497992889133486846740006164985704587948277520388072371074398608074555029544218657535400573230191947144912595962390277975689929696642258964706003724973999172748188509236853271494223897399780434685687221899917306564663642164527975920717478949107524521384497575045920227517852178888192464795992190352044932850976569862865486860160227643167118353363540142767397997642573418771957758332789274286424215422674268297835413381588394151461394031578162275130803901515135526106720557583537235414356643198400955904824510585602707488927749022023582890393881982126336857731055827437245372034429942063551525145407303335984377681002612013806156767248131336398510540778488536555439073494380914331271235286192789380109686603970476737544540759232320447520666279715436261735182641996049710938765208310214811874359679732130134574095141835530194166481829663513528737823599667649371015176111323775151885690244891441620960712601820814227846635311627984950837719120253403748612336397388036866380558799767314932872905478082321144616853287890472177909441797333751599384958783980767052960495442959263952339539105519502409426582403897540215961357179492718498993332036742516621537334062200519445655034259675315041081574745854963354690725374437924215784873210484525600691147614435157174217859241123534599961621052042524233962965030141269027490843618029309533051498910044371115228324973558764061256559424112160262726701713206335305139989050345073364274117463778794042155979867073522671193654755456273259223561990899177243260436726059638268073450308591700241727812976209045914908036514135679754645105811149152184994103412286072064964967446869868776120835826442245911336154759775750451142034959320008772305494336378442384632572200559777166613174544622374498148615765308385142306936921371292187651331765214493772099700554514380080883534490427315349939241814947275212044004169588939861338238203873893816914162517386669421393588677212907898662334313636856343959092142374262908629959407264010880326013622116590719453287908806084310005668719626204801737439087753214709468875003748158107880663865870782620623405894565684266293076407553898453398343084973343142525582405646171169241240967744667843845135361531406903306548851916466589019450716341481594613273559007385472704874425908872458861689586715150973052330381234262597660866602539281040716630325185554559498832849079824349311235426852236234366369822631631031146386239259323378954014858184869285025534387421205678075077337776954564729940390370078455383236398556675971535472297829277162735320230592663856721746893951266577915192120405034996881300424623433376027308625712097333933876507303402981551024153303479526320994021686790466456883261848744863670146454330447949701138515741554076423073727611296441492808935812033646738830504260795029683256770066162494823427663083825483778667893698197947112801357746969907558555186622739493559245689616896389375999814279063789638706305445834915408600028163850961241910692882665153205907034649727590021779902749165637076101498046620644209886055154062909792213226938881652802831746303034818520124107398756132343680774358426591017831917721953384925275664997866934163627357455871645271602885726071304582904955443348172488999794297531060284969034203437855174539637410938781312558519051602961751861218021802351994962289804438699346935712362207833007664118083319408312893116735897860133467425911640737679418789943503114124759178158934526594594620371026900864949267819258714703039039630754751684797893764575941965869023613758570284305567382499823107991819356433737373275565480040881174074302038884149017280212082211586132909919515007550947375716410677200752920473584133254210108281292229435889935544058308413533658765087978218683535283775464217208500433035724683262571878997688732011713008642767793220733073720155626329454337009333361358374054531756372548327752996009949449422581453335780658240582648915405781301260565516421934070871889763805709707231159622417153660737980577524062828857864178259932331920826542575134590757964960894680714183215181757912097315865488954036081719336920512945693987891453017115215379656017165238549792500296832841662726500484929613986864459104639829100179861927148247049634031465323920921836957204555387620086332957619902745579544449162849626487674118582937020807761148883173564071342784620778914900899769039765092760855205287870737304485733934457722070464952755130199494060169592309940001609854365798645516905965505291600329489436406575642099837604051820917845901820920721881761222565051008550896509581422636406145903317680565415823994332248786348286612498057353425068079782036788515862040581225929975110944310752220240185411165570291107143977287962844476462994014155873118957604203425495042029568029576819636569610159454369082290627742274030167736427471998683366977742023016686828297713457612636009653557586795917433387276613896059998236826481748898806239219414741735539171424750815611430226826833542341493510493081719368179206413853859459532604138271205308122445526338729134604573133836479884611827080237066443137713411483163509878339040159761932701794950811335424423521842968645436537049919828835260921999088877230168928259650734020212567328665750892579796994920767449902632184548015988361857804321469618123663305287900795013742130095286922330899385208531246149705305819807083949473449879310833307003565841089609470259339983272463593916456267816997841019686663413979016008117829799979179590160508183386041484170101446855367652221055362799587167900844059048553400591252440844704725254621668748477856173054454558298615402562230777919164254778038023633586898889673914019327402001153823981141127038223399091438614258674220036365050131085182608580722771712462551476765457268262155378095426427373020411878389902096602594223205729681124213319363903309676608316163658370619717701084988721989430984258012737061286323699496146926741030920481876185675078896284457167799899903239644399577005980116603725464842193519518944764874037807598974199488605467566395939963552267273770260004234190351489407338739346053602800222857144397230197026272581886381581324088982069383522893107163620145342137542182614128500766663945496733804419134485837034483031662281009340585635133858220046996878915656021234234106827733299868555839335341442951658221509427398567669713249551127690031746161659603056785462384073196850556433305486793106255913261119962441014725291341103566017906714369390610102266618876764659894068122705065847680043621640439274940672390387316470592979436515445682641663431057097030783970754487633995631277118677493404526855359978959513380577282537582502029603154067244851475736170380211847692290495005031634600783069088080996384910467460396783380318262729825969710998315069871264092099022819580403571248467563985929809367127049642944553781924640921898753689994999817053507695677361789297519971853337211763853889138037726345525101109793629260118412473024907066756072986738013080009453169545643089005468170724297114574107038196357695469574073944934509585923448324105033027495876738735846648583916873607093651077096999045942039253723133496051905759434071220377324301171556207961107725241993317485384258877230180264991766577134726338922459868456213146213613617356556552450755715444241534704755592423342629154773990334216004832006401415639225693260361014108854123787546941384000621565993681657016597093781505926865625788763018017192644503446958800203999099944355764639889740284340018618879190816859491430689774493403878493327188229879936382266706104144697092165024982001591097908938171118491762468547953528809504283779193185825909583472156598758577250311444004865999764944860940903822987599438397923735155555146727698167542942619220413665044587291841981676734328726832852290026526039758469466494924600926705305970355376415712522723390935044507344274712382041069821266905619335731338789992260507279763979517373058164943872281117553498707744015139271281679967028128498584899595301692037166275781253107338194130313699850604540364755522305929704590261454498926575922463564587958866999302910431291861113595648208869883942654535940747814029415922870521892354305896017319083008574915367970266214096975842962919163608561329302026856790948507411850814538309613638802623118913197209724246728793037384701830364959385113740429253616305972292659346222358669863681223645450521446288677640651221640093601079414772308914923898221371750447556495917614815749990915838756887958824907632500437829361313093442874464830763110201388329714815991499247681770352998584255227195621941025890570891008932949438044227656241646363619403699900701909810661703044222309524171564695574572741271402846548715408644562691051557045111481562130791070509773979987685072111804063219935031938819879060302205128998207774381888012239983159157950576826592121828191238036169860863355528419728378005058950650286180549817167371817530717966705085269395723163547242931741750125706184083813765647414672119359466812502440164885835450005407474540760584289676314749610301533488630913241870847578486127745664834898860792256257700602638930968951027477102971110793274308388851196104533422499394879319468201290605023699604556568564238245518907507871686180908977787446280780956517961479200472776260330972479277802210494397598942980239883493309479073257336560553018529503946865477182192600900191931624672382023772129428310449888713850426684136746904664720010791357063491340518578942632101370056642866400395196476916849746557712256699314983290477062578611747520999754116586391609946424727337362645903540272408233521839294960084999034110404667051322639834078252383285848650685208265992316927555991351651897231737560308461552654487159955898349170610856099662790884189241974850624862165624640652616183468408963003757551643915442016962304070229343705517352672847998070206787477741727886136726332423898868855603046596999846104394050725463942160695221000344796891218813276517666400835461161042013207396976251612107513238143024015510347527009966418432433588584395278033230079041017236454104980886551518852695267798852588869529413296910643075026633669967512685301193645118476241366366935195477111581715042259538301622894919629675434389559404813041541603505767266318892767632503253519883203672404432926024629327833036493014226046453856809923333508508321359587448023374084184934401067778986235076185494098851472847613427812827748890135140815546764087848055203973152413146633722448831279056202333546300388770189448983881393468527122643230741754062827608135472150640290708033383185398345051117761693438765297853177603036925676252948287911467815490159492630664900636168837244138833551204498376470756005599170476389384384096127662476788289656424431211886202794765372265834956399967987236322459799202084049488581888873745198617089298402135448011476216524698453012199583583594910261433622879681844600417042268097006118820040849306046074454047980694488284013074648197863199751802776390893803682170446008987404121911113975092451012598690464937272528558653464317885492452207672179387481024670306728649493645934535703742302310166028483576293073127888739108933233883150798838369242847296432745537202257614396791325320398823275735091090356206130458373267000940190835154429397693188853805754942703165267048488461932239143594950515725438834690882503347372893111980586290377689412610260910973233273823752936554874189958022132464746653979545376786540946042404907127748005711199031617955482428048122708123613640818911118248312036617650217821119042103487611475506151798832885545163981254976765708634553338691673947529248216528083608787768630388865209799157477382310154462474966090947200990201616041815861955748377653680729881608150356088293452878060142839125393687725244673955608183298120041122861681731519058020725519295104611233133581187788608543212177428523699274755090277308900111959139171351634600144613433457388116056036343461090818639693164567270872948425312671002217178310913986817553893017207135357996028990384185768796786922483657136663980179838361532537827384817429326627220049188493263831618278793857439345185097290695454625896583220589256278006886619337686666997042836860443836972814799384110105125416968782655738120414483875676858760870183172379058926008731837009585709032707171179452132294534091971344673778385015501875635792318910095813092504166484371141420801365517808596466759937825819311511627016600224296186176049100134562879230772853866671170338691822810465399536467324416238949653608280291491204943265718980315250061958493491789666041044806806983228478906792785458005286497021853929128954346979635591787685181433687326854978017809693333080772909907839600056422130854758741309110830563129496408540604052513713257561854377569834279780347304384256804837230953486814606944614057301663665214808325720030856833976879713317006688747507707913439730266363830058586172881344999984604209514949611374589435170471952726421431310092648685867176478962919215005280768098217287101001842178907613801023875599819186788569479048523161402173218457985951064571547863413960134374440237831969945877844610129182377823277343875092095272701244728196898112586706631033568770540424672384300553123202457955898858487961413937964880885281420622039080254538191940854798213129571204863722251855320548125635927725423252169606557834557410939910731614849820989390216655905814521203935938782530827804817173216925987044023168551991615283962960466898693551376232315364245000396002262036935942725586245136045063431378275512988225465431590057603292705874417944700052500754560930392759052471163684505391063323717559859306473743037842332877456190804735682943439712534904691002109557283374391221162205480411991632399828044243130435740604512669553746735164704236407662842399471275945798531364510656664094635099072815885241526539848253981361503484187837444996850788707715898432967213425358371295945246529912661435924733897014989408547134993487497671668494657296251109633957610046752592413249238191685004024840611700406682960085515768843086550695847458787229663625927198797285510516487477388157010056717261011994560120318577361024767697137971519402465280463658477221450577865399312092495096704935981365797655536628970824790552249065787554799662426596876692088464408184103169692899379361091087942235863253721463689926896901681689251923602598764489842016927480626276879822510647971426047454878806102308982884477596231845250560322913541090186764207954793950016149193960463776782952072890787986457069560385537101800893758949646732621292947918232855792962599152548606897837814511738232696690108772655096322600890962773041723777010252273733955761053931444064301516736957996188701000141454782153034907297610131978487201587412948641844199329093584244011118429304986533162255986347572344593837666257868706535549759861204356675043047737366212359431145746910109373409773973128347939303141041651098969053855909445799549602521127806651810357879087236696732515926067485931281010147348900223153389389953432318155787405205163450334469448162336121256056413811852659856189528180318805571521259189793703281681204516061691468169072845685973927830836986433375379141705443830421145757405554446199868680763885609069340451792015068332358005363725387029064383357890593387189775728774815687060011983685810985586612025305734967264317453840438338596663622612475210871649205395665499143245853221373818853110822828909618335952068713306465821941839342403924223455729761969140833433279855884004567376928854448523230240540457279080206502444284254920164792205068248460738724797757088839433912336722748859084813163242693510466677428401034570703572110130498897356167726382189718699167854207120830235156821958049943537894143883610270328827060095322160386556109221333135688001888607089521173068507875580586108658965028310636756148892338342058958184425861792693992247847553062946765759663548005509428477266889440717663936669293419106889469707446483742040996790477877362504348273719819586751519138038407379697497105356003213281703648855360569126716694214201681600404219081103238338655087586302285266762109304788524291341800356150025166293404490850393018960807399374801090795574151200452062993612677529738441030647433808797060811000307744410113123477883506151338907074818713866611231397504052136214760835258009695184728642750833124594254659036606941090472511068906233277717464336820838991135544935749781895756314091775405156768327149257582014243668205464570188341536178793608957380776501899408943984010617448801972624983237504446536859208023579706275413338302824036014812642099299927993987173939999602310479384154491487819125073820803558729657923654960920584992561935221439516663273558040744998673850595882560861220204349106530977414124784196338881379540464239364151565400351159836739703177541071748228590758810221708921074585568826674111688625971949592912033594476892681578447890893694333970373302776302260095246731928519095643289738352847220068240223762643928886564629759033894482946575962062234068769035124612162417343314834331301600710669848691738500464129452898749645560725409980113424478045300550631003332048600710741759842513863943239347196239773878464093058779588161077654265387623657590639825983482071717191281855366094706014546248284571044043744459551104326539230090519036250303963012561838745085767483661713731296551512143892014983310453899553870609965144344855430611434095034071636816194245593352033247800060089637578184151289216469319677954594499204374400551650407055444088091626994116200958666229303399055282009826030325469015225586779693743295336558357154421157200987458990333630718726129165694935949233221731815650636111285639779624747897361682854244033533029161896559694372756486558798226257002933607278463594178560833606015894150437486322095157494187514587603180988406389691155622644059007453599374754515707321015766694861075424785746880166531603816061606521802937259776306534863710154275629105697084340889417239271859103258338193263962999413441202108362198768102542494594505975735885967539539724279832662268704990352965570657325023692950690447431770580598386447224616559395589782170559663564581181921010309982582223029246036030088909713655149029070671774308446866640409352299024144273999070137759412504879981798813704656370101124666555810592079330378874079856839999794278729703538346191347748867661824880972085517051963040429624185927746376229263563628789328390887983686628157217642187150466432058719951515876771017756205693826226873064500485651460268058930526341831527833781223838904848812584931512344956552050137350011457716334718749616776476507029363167866933602648539046681787907597616637346962843386387732952487452373406250862499993369108040380060106522837073811628964983384268751180444968037754342853590614186454619828400110104746531252776222854218600393797882610923637537926728755119357869601121883351009236649308701145013302746274084439397168356654492155685712799440222625234689789209743351646420304566421585945861537731504258288105936534120999322221122007788955753492196933485899854462505150604604509156612546857745925459338268044961184370360425506052697408753913135940961497236216994715441709430892927150827210613088001099237972565876458675298559472984800256333079556401294647318305146633634023668645556706386030329576855505926349841647034825080149759265009230660780562142440883055757089372296646432288647357707691332805419654135121720204974954560824297624952940928872377547850862694254155761824707216399070830701757439167122499484569418099512601611582101042834251846103876493531269341127234049062433557324243966763361916185104568435165354122943649315583904879153187991339387461917121150244992124404802709121405704953597408072864861394401895591751254364555824558717956936253901162617846045655276042026365425595063722345549181071379934599776185029127044780249168218998132561919608384046695402679547912207917599065976303327238626741342900653466283041733031632142438971874774280843030637158956103561197112388928240840637869993818124316400991726116858022797654614900093373852138877621792364981985593253164736120062272060756601340666291341759163571014720255300644972277410634562535631826770389144502290106006223949297128843160350280743562767698893282069215519531285281730254876709348609575477700528261734459952650690812094897878488220787328161677093573711029051072442092570189506719213690171227960309233808875570093155751211005199513202397958616265861577553045678240131885038997231174084286863453057502315224462079983837400703108254786978782644150185003941056471491686556041248820180716661835211249486745959197232707121767829481353785518473955812284277611689479317389474980017906318557839803598428388138937788154084991749778125835956032380637844053263868631789711593525365623179233710442653770472552918914220314832123910312366838523896395724195079514453015695657277734189222227601762515673660185942893517702771192416975307502896540991418071458296985382635447799038886369048139417826914577292994442039357595935617106167853496328776805128796013629136987145810802620274316326465769340767036952052892973774430743586832007491394605549248424771235301026229670109050994967450592236846861789831905898659512441453935814372472826260558803794913065865418652571206841026491589954652433010164608406995058644440112754696795906280633616787792343945081607324635862031742323407179337197077154650394727401337633250682430215442067729357548889180721813860042005204469539742382434622926860810708628022283653887151165330034848267008581187447856992345195329054889969173441549030961117854169256168004277464154801752614730336905673302815000955000901539377464737714429464488013333555126540259029413397870614666029532965975344885968470391770145662508855820372125521954800044943793519561814557897895229176939090837006995760740431447271524223604309556385493303499839694077483578444925546814813331849135846237827402193857577326259613128745490205961841893211493877538112863949790739289666559207171637440961713246189059472571376065532628825987538548616185449727887733052360297837937384467616291048541881232409803788775383643291497713461006772822138423607543201043270415513879587318523611884989076337066767123594876773641886404550640992124060817227614661901710832682807459760566886784326682924149914330480660159053742634529682648786623399097689419649575851096349497461485097512743075863212877743790237579244573811664135998058433088018706499785784696631414868497103586040752710783878140388969821131716951849496359924512399163697843502312452726487231163772411189906333069391274279535695050291898390086137612199521497346337819360230164636656167254761596409571228672827848464923899742378392124429449784911423999745449489483016285777926748604939956093119183015681285379675373179213797212244338527758753634228860580766305595986890296161529428579028333254574704427012013396711070130602747336623507848601037849394039273038833780475904941871505686003335812208075602018877249524193000637279495214202476020766511840045935774191162514454048789654443057377792758526735504036143078253115895717175099444052575970858514147861969004600412931124726403057287359180960742768285487588646222399366446951509809626854861532840842881088570669957540101036558002560655137899530714402135658428838279167665992867903997005736151312012646516623096171867787596363557567099412648577089066361943158793758569387603014996598972123143657608389047038922770282117957728048357072705425994679822298665081197483002898537711991794878853960875232330515599425311741342464723036729912258235217792923074904659107230007883898545219627641227974749885133858653968302767541991670964639086926641064833662810590667155296475592400077430416705700841165837902748848472745041194616619204158811533499863271570251148184713440451426775205646526702928289353608801875280441560802098532774433731405310131874207205942096191098382357306903300055471319686619871180475584986769741926413344684214903899816951598940483546183530141756587448994463900450095622564018152526070962659708970057980227774899539119235122415418758770593148770500663469406390038464670225847091947375442769683838753339624025342971262600760708869324340856272140533857140931052948774706171717629209834236705577287614146802587500211578775974981549934005470388415857289626308998376845289655608964516179860749301878895850428798069430238321178188497153595342260894410977386308290786431071031534531994201980654735141143260596959089141227741135426862224824149537990121428498434154566089384520687604408551354330267783129935241696716427929935955379986034992492258113146994009390399263144860098665188954817763155202791287688599783031836695712044464766301410460428685674297829673145452835358270776297131371053171824070454000971526387370432937949954424112462966567192883087087665977371201521237722221716105591913694180057695103716937141660749318657179522805287040616974989625550987087422712700481777640688302576407245533180779265854866128720570421508745199906636933127788609825635595023928984867862437500806576894161674434878138112771858654937476858528967696386954787207076278719293308723407433443316924363127281903688772899420116645722445829507868165386637291014561831882347081322792908339238647140973910104936774590779181609554246070718691593627329186400380628332358650836564968870191497421696350546464194898787562604659620315558956398588618180204639332722959738292937941521940294848085808422961385283984759115245346357172181470614721095408047156108177780140330454977110999850198834236053167213835995098380190341999734860304563243679898849540610559353500914554689646293122836578369867386996748833548332639209951244704462004751864068192732657506259056764349901373893238415136249038911227960776733615984065664564547500439158768088672793980324573112459650638346890492226639973369563128985758678087262041094936583710356286144459654161101286866763947042852277649595856612428641442014700375531681160742463776119408784117060726519327437064252962906491457313162481806601457681052119905459434666370451332567808385241189629083398614785462148566824458680129282743297830825025181177774627845218890071620593500700593404185639988990366474517724527748162444441730062721175723033954760222378303134466779301726146144958999471608920863758612382064419425688108222945060543432803000698169388829185694265767609987815788237597433407975631130214167000234817924381953602782826460795046630467370407277688818396866313915147367193043464123798657506973614443044795343682667232323089563981510123369578288949061515541287553107605853334923041741174168738363837933215374034427706771163955796249099115870211844104359618700671846903476740117047540499755909596569939273397558870326938874707876240627772890989716851160078180775606453310535472951586473830759727171814537128417931761002135772546823242286780544425525135328327474532901078292900290416328555685870290908987621225866992113204203189198416615635075946109082164789015505785362273994937699675583508029174272755210063579834333243308637524904478410608048087639272130308389440026065125242920103755522173779150666294264513792701529199471901147649430213363865376576773502411326852039932548962275255034804323813845216663539440064723523938021638516984506295574222209138788694118597822023150369527835939996611090320006564268662893508457214177553480377920502792597836407168703700579473425350647508972303817442098370805287595498351018043947454688619834521179179215887782555839782776229013836148405685280671439221838321052011769478858161326799699914226273549725981304327381760324994357938467947431037396006178452738806452622438385954043236832618682770201161208996690578045323737359710742645049725849972747460235438569373706882326774825112383378825366222353101724242354095998083954035151123600229582408454475641952928414975773070492774793084530450799661475544220959380447436395867619757589048742639821043845511736371344565370878447900685178440682177088747703721795056371234287703727401580852765809606437445403307102206259180481596467258558468332242001974207705940924815484823709335363341442820017007186584622518598915007886700342558758066150284999964810597636330781768866374510178458171305632825810482449183771974300800288914777478592489714904132904149388142283510928298867372672513040282077587516595990120016661004053753505976172832618254577659132632951510953764556287527062370948840679647765622239018645406061370588896461885365980012222990963341398894873942237629721299166369710260593758215449145746171527420935486197586273175534913753161566280591789314573254446506100476221733051606861591165777685060408361289018737632788326611784702698332406335840213465576113431854090847461987262730824974307290178665581472506376515738240784134125821521792846686239463812335030517015943602172203661228425737640862941306776001608700477505089490364796892471476112903700807535135758459529344423372526162113214720319439767462666114097001335710688340897643317573315330951489752188918102366010143724334000940237173909576519703175406361527274842686502685820152959314344947574889494218277416408389564500123118560193474868169393143133551280516622130166435373142746756390787523318231937182518136387070603012714914754343215674689932810914957126222336567655381344435699026260139332860201324100425858739288808490646752729312644208830769223670658712111440549915657065929866174389496289256448989589758458219600301744154188383808041174097736188318239357344139369206011386378177979053270672662441866102802992796342417043952484781227756683619424945644804306007899930136456153886514048704358460385451401063512843582263130451690461175700075107403556876356193534856102687262970804537761145989714045992861494935367197849553465333878189832200954135247156012348134698984721407593853224873226543204302753762231375320595124723892938245360237576459152262656585995436737434874397621764868168258182632314482087918345293057898806798389564729648171765174345206765938768902178114378326660526176971171478002852925741602141611735977165392330626862240880590787494212994118976939960069527892639054762044378701799767319621853384758679378450044678228838994020923430387380185686756675747884798794099723772282092149499501600912485012152390131358690451714883650239399053022300005214959403833281714843487781796455580780642552375203570679124608194252532511976495414394138454230427778666387372061251067022713493753989356852737669804330856069189628857293396877488279013271369439769588274547970932179043887238458980563335150721272462971089083509214037003827386224126840623821484612624229733031152335663290509334349856168372909558556423905696836385611811116482034041576328055893223103866283976223972685213383841189656587072549408311007323118794974910683866563425564571343031446122198720238891679514113909909205385253916173065218601129921768524055592979395767340207415089006349942154122246445266213674749920785543469117736756112350617738701040277521638139090909083341327962380745454123246242308676511986444975454307232237675188337872131826552598915018781183891681369071159242997811999821147424628396785329784936406658085423694630535257359909172583201715400352853252228588909628593828912894984131568252142951607358137800128054164682357547484119916497781732498243042663686975493179873429004202702208991387254561791448041718785741029159555290956341358820358429164739212485933861309800519238352142131812280483038889277783070448478443775076225145180937381465309145411208332594002723978271606989860841780081874452996984857448996542776223362953430593735857286090689864460660931566649862006868143289222434603670572196337229016091624884018491527387039482771757058291024223663556122030688658459971934199752232442600669839270056553091333517893706432675290221240786529378368727099070541257793450335697823577181258857123559503728272013460962866934069528798362742585217723113399092464031845901466331491100415002224919507344586846725637404404795953545217802578368520827144804173989223574090668634557093937233915532087820928809488047004000943076688075063875930571371325113012875918729006549996949450433310632910535214304629712550864429358451225162902261324575250546188833915943343154521615790260576981006194420681341819442086029582665331329927088961870990287934641230593788001940455405494181896975882464044931736339629500551803495055868814073045795016648776021415356260089707835990725527492396344290317694986792424985521479126211140382878961724452723132575083282026165195881340763349570774054832814149575974267918409480945291514450889575677945000994441632984426675295256909720081861074132254487881754307890471236805550084552501483364063737082751663921187264604836305333785431212802469723262168169470221347021511320779879122123153593332172976999148204313584146458603705113277780378297695638649276694601857402052302017331530672131091148594270944877854782681964808175726220813001126112386538443764353914410246091219548050142792231033392708315263303613937001205780536068260701795346417526737886656448745195866708793028875453870730215460898396660827193502127986665690230890089924696589443260843233567628159781952671154810434139644728187208871288569932886308180362402072745118419967010248702491068935336615154102983888522597649498169776750263694760464568156958470935270416448364674949769122043360147404572329262266200864244463245792645299923657376769803723015553619247962241928336461419654001282161013571728975397662967712858455056051421817788577272028557375791464880592421787232098100635327976768664684403946783722477059500543978484693792252350166550109091780975674573473636267711993295958374761661357168309862149801685438388301891407927624385254611328242409293142780697183527081176158904098212249159782258568166610278211732959432894743284813352216272377979600677626097855817337916271486180284622503961012655546093597881197123623061182500190692394783492410398908153905496678917362962410445984736267190020394298436867561627047137225167571505754544131649635280600507574512563081326174450904741170443485460165410478192745658501340791142963220778096602117284956986029966819451898519642405474993220169974122934593865712570751517342603116568291063478243398214618843638629845339795232118621550776104905653825338924416304430682113677409856590878551011017512841587685088716479248286682681716329353160726188023606782816840104539193248509494715002397469400322231569886875034278393496023221031656426433317846048713150380901866919685611611873029324322893011538177403540309400555496700777377326407383343985918321167557229889474673864727799164983076609860097505430540826475780158764714741765222104131571873115662573770997686239791981515174620602704978412640829767491724026484687189939827628570473206492166472182404826301718405688812912338258996473368431582770331174641457789917976336774633694956397740348471562708474662592360496522872910198435213676476497899194901602498542374440288790787463850981032855127277767987101003885835351870234081701399322890441367266042512603476071228582125594128683419774962988599378564778887444935598895479945358501795145441804957348219271545286688839034403304925556586530237212436175335910267695261799013587093172298024784676208724500574621937099113662636862952058665354875176750200716024645234345257609048343633918384105283464452883077510862826345566976076236206513316622391314967599520130454013824281806289604654973103265261264733228725798659303490985751464503956969367207182004480529735638320031259350990364516626886831319315358182344405631128703569543762366816911137453801831492667543596895830977992400414049360327410641369397344636831509961804768394461596513948881749824134092603355116072526144013875237518243064011052989140518678443836820379509453506725952546875356279358619539407480247441674200389361113039893500791878094041378873929414808464729617094058180522476602284861787336906055126727075143893190041364288456826922102590552780163369657690552547474357788849992512190607163398392000277229723836455193612383450319338382949224830849305561887659103499125317927085250503218492829821625830404613564916437929067813684788842148616318825026681889818254639777170498332963547875423213832840178833718791413336561079515485946242824099540257441633442745743304494131181395495179619777468546397243281613211444232491742267145365226238288244902425804722164068993432698412126579931183139314726940248266288732976397776162047903244622864616895522377606655533996361167530240663855786265919399230285206138816846770355515107186696707216320228121345577140611327965819704432559198499324910745573857101647595933977656530640503797817318015803029214809659259490269968426973665368232294014020218219667023637573054290735996373086210825199694678459461962312576165975951048619791951289976322020161534469896609252508906505732675364031955882691756921380051204404201026972958331274325711001390601492829633151662657713296465197926731174667428419659785960288990730990709479832633361534156104625514692125679866620871675312875280359411515127411163974148691118235651522080945853808550005640777606068694311457929749351398307699415757413954665325388135632512385715353027103704293688332081596991066137055335758867246253214877047710734538448040843263108057994898670964461945188135271028829994639268439299588735955959589029862645054226102456509380849627037002859050567722388674549215950755938116268483822150884312673632612728485635395479663628527105700081507657823502798061133286497204774356245240326707934401178965520252949903373676806238543026539856713643986164073531907418922681795709811234167756264867277618237056393698467694103335453456486008429490851343331548482147764742354993993473501976059773642630487687260142572553147912721293447022553652941863678915538340194943590491779516522757426554450322523624008905479584186785058236197761776785085381390716776166629332352486513530600715083187343876558771925832742668115788732002436171105343949575634015127337666607899796054633585439857469692449547180564387433420764087363791339060371478914093125021530555763780580172081446879290675272423764321559685750842061197412391754446762261534193693236697525513806707742364187481904926843214876476745324465292620995790218245059165309814927161568138915533255259203663088619956538572252456163052933131917061546383331220762624809932256676482016350059203038349072115772669313122515182564358968025369411637413345551021718077200501479156478436896502076911486576758798377606484838909014728972250906175676952026163666558836305624544449872629438920306341248373872877304408928211462708796351029803360198615729691284006270606924193010499185850883193262793314725309129546956191242871636884864289655425383579023900392222020929740762421343296085652640830238291263613294205720429745130565308612334093331941302947653282863295764037640914315257593960948430380282874789699903749898555808980568743415359171135237955997516940175698092998993042637531799631776844213865972628126565237608223386609268454390942102065442684045937109061565029595312706326314815563398174160740549224557641889518428885039342077648899802755372237787007413130402773022366858336856505683419720821749311966970760911237124058783922931026726259369261091709584218075573308956528726555644900783638561339682510922093227460780876177246986591603037252549616461897785046905944179436370130818940402081891742233410308923170383670678266192403218084472049137999296789329997293192192945092050164553007764018894003943918150101012248476427876678465233488628671561059558737174365035489328448486106241061266254485441940341275379747131447797539838648807076114506694720284381490333688915953982416059656951212027974964673142571196832838267352125964944780798163495108711520596693290679006145208394968099119368620405087745556677454444872785388642365016674309283569120589584137543092204861875014996005052531595579168282620746408289256276848807070096737647831878625828546441789003490991899084586692141585074746358906989731536109753664258995738748220976439617539771779620864389721121789365145418746405303591458608466435574387632918264685075455825236134779582161400633980515860193588029442234248894184382049907964199252644683180014897339700689108210432285135978313339860239887285291450438205106393111571115785409195670573696891430954646080345293814608289202845057681759460179074953689170091848027790384068839024817067570311820163297506595676981042362086265729265300432196706670233875398903506374305615208481463794911666136233616459275787373291691825707649448634714814366370372254509262464506567799148809640385003253243169169775516651899359225348878892452325837595955966654253625520206304584146381330546424723248439386630800599735412225353704406091193044323302612124150329674653521323524683677735270072042850528782039997321721295596100130479415900343239524162984528747259741754484436317568130572528653819582700376740262209331793948740825032190458237943489042757889851284290698978275863248098141506353947531313397896629685529892444403330773569119864148039880965224074143969319915600865795197450909916504998257488816520376330496914042666823009199425024688052297915873327671453635377140425106803577751642557287657735600361451564227118925517682592306859053220041036657321536107408386174916985522372959223319054158981975568848010989417929620024142935470023030049066489896543924016235138793593386233959076742843696808092589850964705189965113323233874226881505656060691584989211477010086174004311414373191166386874536254242000156447481438784704423501475985855835999310510524003694957195763125690567409349811822342518003769325239807193322035250839512793436181079857359795064927698503456548901923934678122235045885127861423990682054322165778109439704452437071341282626420416651212308503585242176740033127188397001194935703802374094117537547052136004888746117142869315628483679836859037080931807765449708738184023670419706419317107503271450528612289602411337305685780055288154499390947116418756235442356507517666423150144046895691832674686946749827293223073542925185825139297990948058306945864554185193261631682464042005288976280099578812340821470609185630944373602476015924882758237507468291283062405005725532318360283934810462300753002074442297983532202932615359734148221465500630446108464409022701769455789311619859850736657616815882307006667005504748309156052435923234655730028542163322747841766080181029528429540375887910871664717359256039871417997738598569156338961330418493686996970404527462582300249356021332843197962383348036837420589649009736382407644943832375925647703586258005084548580590934123095491103242698346606690506044689204767776344967627397396622672811007699523346728753912259453002540984922471228492848808998579127789632769396491166804343995243415442745443636398813189125144094130023507773815826840686753085526005949509993122174375857642076178112149248428657722269686211453068532237201472043163896980291460988406320309302431416819151554145329803800895598859986823286939111769008099591135010078408159875357825489258301136675252575167978523346423820416210275760603288163589770188969028149933752306386576888898669477075217791693683264446528776857035473528147321368288881327657642346587199618176165990596724532140789016181125267961677722154497605329112494797891691631191781764555621214738990284130127730312547611887504770871971430509686095455944305914675575673198738951643099542440914743606581140786063966721125797312050403497965517689994273297271624344725069500077144981923702121381516036042700514501010993113180630999780820388080397674123795993006242531556797902040996002740411851190210898343285392627133593401061510168207239587860013612733864127830440856366785242918598530742572508898006999921477892654369917627844818150613366279050454975287302517020608163811670470906533115842510513825450553149636692023250912014835347480925805695134315058081464049684934144469467955465112291527099342127567058369729361011422034202481245766435134484612169977918723328673288444403912264065075916167323131888474465726244695731768366779841693030715234637115032265096858447302302561553413644733023994952227010543210748430982942661500433013854453051987326820372067488952483666715997224017275628138195229563042781780755314057956876326489330986507504460363390135940341973686855092860552908021392742490627080419819752352586681638522942752781710404862804468277216588734768243629908765086474729674335105821657584795718685953025486841264892324515024586517931302639303076635000930583736801681068160294594642810404420795815950352281256550010065010189336796182492632152635184597594773103367570221210839760093321870448758746203781610842791708550844411603805170946554387879319479972539890936092121421687413962813098205058380806619282712171475349343943423850873143860560297172497908985545268030941796749710562162945465656024969748994898995328786057263071723808078355095159035905085671035333649388354976338522623480113176382987332419861773325858333777434569603602051809857633191048117293546625000974066305695374796475643639680631077303204508749464701369583169210603316666052144895563682239488533928441692941902351156950610767865030439246054001889430309431048621656512484119136856527893812459093223807698811557450322030578065195628594014045856838018653118996130081584856974535862532176202335604823382015019281416412976079165243647060853211775778081089102999235281331803548929513796766313819865167898627631432775216076598900725932028999547192187523392216024876110695251098807745743998572148285815580076187558949938915735234371499887640008728656990908335008112359611071086639586822264812803846627536977550956338061350059294874678971329084870029379254861366150373498281328854409860108069978245190501453062088263734325691665181672861969670515512181994013515824541126348800351102531214983415046319365901437057928980207516117240850390219399552683885259437073928369510735696703153074318392407806686560669510032159414791637856202061808539202928082947746679025286692939412915771106133543633395159857366761791949996442588121245580392642781257477191627029354916373481268826569660875217668473992863836183871973791002006697801132456227424465731569318239543281209255384625326917190470306741880924457783835166432700120052047750423368366961789684898399300843943002338537740647247408489882401008916767303327410676259644657710555516688031169446431044531310678759395676815132061307633807018396078814743581604500527139185269455619085228844347513741282665737696230299143804722869583374449772913754962683355837538063007754499291296880575369477595553787008541998830780608310291113333277623047470968068351151074494040291785418560385692908775782192850372597910093213547958839883250190602925024261334345741885770701702150356515285438819452621900178332768687016566680694531375025327462687934874595698153035885126682040550772423253335829121861447475422508374463007049806576637349998800154488895183997575155116283755644395386798252835346503816136787318857338200513493576061344730259670315185335902490578647758895621676131295115491693632830534500786396837836361407550576121789046386976859854720292005085187473716217164258933640551025038135427001013646323181286784215949018006764420037385526559010777621953176081859835004374886751867415723565809200982705581952485777306746376947360547217238772163843965619806060612009128821036379101595687017645890552227636694995541709971351965723843484351460865140998989749148993375265241317604785631014317941231297737030724454465305192198006701093698870239636486469103329728845103604370572519159151957345586541556708575816667132141064424269246679239325697839658367961394158126501287526900468882381238845849047469786367918305354446864889114796403967522554772231393336035436656773429473229504899939823045325944672497773818662018273728153538782232290519978845287598876689236224755600663629133609691431994127182438018740406832587718372064031647614973267506371047154389744960556092256671944438513746161334930033108600507739782281683482438858485654367453243283877571921542151689189508550184743585946872220312900320335759057829776480481430058691978441947806745654432272001773397707944536581888821857154944226686086894841672197693633924608671583603628044422598859728224452153089665823281233987938472641985221874146483387851261921815000940415681653199874526450320197909604733948241491834640289289380619577387812388368060548349619077270629691287065969921749034761463207709101448541075030082555373433570461050659971408895074539282443749117145707373087087849390271731836950663102369529792229317680365609193766795669547143959515164479694218010604322473426513736254751889623030665851628573570091273266094440388149779277699599763759613126233069407318670804617567625463919319531985485315608801353041282878671536785723491380812055209026384858295038808932190722347954480941119764893848691034179843059367406761717940668667746266343327907714959644842619223461799673740467701517917629877449852453153626257869634058007293125164863816546113564808404562867749928227868569721727892333749952437662364787349431806382713943412384858690670401770970275849418493178392959360629365071542041748590918322473329752848956267030765449467997562944979027417055432803023961788869712700490796816939052984922537224254419517159549369839055771268125068292009145735425802113009585530952184245930772656442746079966848555567936840854492271168452742260019769032747616237845062215328356336951276572766679496675861895126007902625446821401115401853503313060844015730080543761886651308962259093216232707797199792593017175572223330466065788417765682560671502445718934488083146447699857729418306865667835415475590072118287906419496334103032102988230575690123788435817900061682769553098587771198222555501566343310292709855247156156860188232449588292758984117308318941224785595766263642432590925810268081060134587393126135022277683457946386870644236072544930811782036345150663134342900238880401114247055456333605989185364943999543669792656967082363042171618684306117938952528654817770931632861492273551132781160562050000798104309893107416872164460441727428984699279626195942354788675570665640012043786770384125669386102089259633558490022198816895061976996791845970700214439161538994074515327242218400698134978790983012415461419670751117908139254413407116862191358976935435561493093739459000032145870789755328956258621081749174383811991415244299170013926802379056334654146033153669121765841172376405397757690107510320931523911514877985473579526011893292264532203527870246078510107740610471465017690621800593640195639329333279715475101592162401566483709171113822853953760725331064909176151130564408932709760431610214399424275205197268298532225967905233315918013262270664421017276090826337343894661392770713098906511729237355419652130699632090627560123172070680949829450036403638712601943495543881171187801947496916382185939339864026182464253460576770794781045467215535505068520471177767758876459710017263341224623445657871430677503171962467958800670563736721466986856482974745321823862567703115246824750827491037337070337504971851034811471067782140590337093114590499947654060571044084589891869820070005793746927672511619524944973993561403227777912299830145237076225049016543472929282535561709728681854178772264236157387167763502407077145808502219208925231688589274901625378545570020832907191105846115364131238680064776860134877362022796697722847319900740610831892243534815435219129172714202327521912733527238662613073209196505563450225491831390317970523621114954345001805315123916816112350287836763716877516065220981550150029730357452270432323749001649013021689142468996271796042760988261523340660853769483708348946384594280376645942053583614861141320532035464255154550345225784766470691414776756940642585079349535966334746493241967112887880374206985322801945712683805333388464123203062415996071744919334543947033910877409245218422628315813576721574420260787567823110042383360142990654429346526133360332444314498814219799750505551553426400155433889658129459054678036243569111982830403406263430745512708837985653396667258618393166219342537943997021121026526780957478511590543837655885983733166306883969919820586930242669133723579139057980872847476544237425172669868860199096072665660036221431460090511548514619921546196473632767795594820996963214256314268189716105700184629229048147941971157423571819843078634110431994231876304283880549132260395551582854550477218087494503873633392081898045606418784915896492060371673653695932643181156044915736958287734756181209437211802837666543413470485473397754017603093040271681320724350717704432608240132693074061488446899532986025588804312163231085490911564752187664461458204438268028158267828710831439759902441274406961894341207454706801821826331288774875431869828682665519136890428356243496621039106363766113704518545170386609965366487886265481965580847653668132678574286411549554431743342548134385543431033686379127923406035699288987911928563812643726969678766905435283006706363077307111143229129547151891471764936613088476927760069907199725434641134594153984491649320730704851904723595612034118423684070154784262464991479860154787820387572601864089797709991819718083885479981423677248937678249706395991676651982686853557544090040566077376706841972717129575799082308894371434852409283924003194069534132559338327626282861819118482084224602648984477749016409828447706232973700842884002786577726350772165161515880522629987697017190336245183960425825177188250749707896192861987645673897071808302138881283820606963044982646862686343064596001390856586648864868994737870077868346717514256647802154665428219661696270358112553880888600912916134280930297269112963094915161023710527874956384152138219966127100818720123548696837151642417927889856285400175752785893956536347452977554431137964790665345994941395631968440345392968830699824115023486344978062452501405065726859147872659363772669475136778622189154182223263315105601874310054079639797189282063837481049089329239474968126659374877489310969533331879116787308640571141224349117491652508152211284293056280134396056649879683561248892856429940905085170416872653255963460627412466750480942012231017505464676077635795036278824068384056923702546654117759842584913834898986412180533753463186630273485328214852740903285634752398384746758119107077171062991231766145418483029985275962456331326596746744118403304735814688409800741466493415609656777037768139782516718719407084037336262714664863037088950086287969237124491524915724860326204063116688538909438878150846637014369131423971241625611382518888433073823069223822179066424408946325282153103204905695841017390695329156637857628328498827828479662546275555714256412547394067347806863648987277702853440187734008047711362115960647411542614751201688648334639715283466891145294473179474578925546300114734216289364898391552380056103881309585626748016085558231582687882249137895145741673657767642098841289795748654750861396619974548284354079904696182712039476124848934838075323953459499610319575349089651095252449209359424701312812920402991292349146239058797020794125312947405898278133288066132002160669685986181744959348831889637873099401030941890543760055531405633425236030198502282160381913476424791015352754383943904714503376944191130543611789816239295826196335897332687350287387945645289809830866256454664532032848885688280002188677108064925523786151427120333637553004629628325648111327324480936418270104598509613039784430680054077534314340612813669373169037076024234012709997261208556167130246568016639555915431601615270119152029720527615718482450953017815971887849324315708099806222295239163672663180039838510725522158021886042077742779860945166424588478034212106426637932226848281754123130510481037373744501513187255651847388520320967417231361751170840447616059639331315975971208441481144166590736516605123591420275116816839951734319866965008973485134142589405689940683647638815934939187102870510000380775625165544530575685044086031831275516110045093451762422201222792423977569341771664985506055886388029020792532225157392313616276843402785454272037195370418007714045193178419884691086285230179024902041463434001187874377270957402149367926789064247240008993850723986320369281726351578560481859645270418741219194364412367769166206283968748470785618166189024334810604622194811430634719262309000049302981606994327518408672596446452256227471645711927176631771295225632024576876665637323923854763807334980790774419730129782592384865831733579237566504149577731598018629183956355170041786396978126493782672069774944649605344942982428639427569688547453347618608587101251865960085561955088944348545349172574749847267613131707136271449030112601707200214198639542086944541412516704720560357343667838136755907899557985846441319034529210988504270660618264358794070817521375958095850739929117398639539231635106683967460555772028757818401495300088591548543464683311423693091546685414336135517914377088317836489955530881957689024750330147730323011776193300108100509614962159187449105974109196319681956682141994320610446714862094680911028710288243498110583530086226600199769934521216349763771228638169309383404047619206889448785417243897771217964706037839645383194196459019438395658722625434911019394115556734277521436830468989241859054098211825786362099959009267806016125616256297486899203697843997918485575226573117051224052918181404650444906474698997073140122318760387303023353324895453917256536920760488800473893069163337430103507569670359157067113809164254522378196041448072865088492775064151546901282511503117124400809575162955785853759313514617267709234537526892514355926585610887508895215408405228267467296280365089797493343269833995005025619580147635259113689315111157612006442000881168460457248542576937922360569258965413709925067048674506881872817477885039852848501736475953759592134116141567706187830202627139232629771003590418770481054721901809632040458979674295506948179670811654303673602918077599016837225623083993844421840868882355036646196788247566993257962509508596050128164441089790316141254773699835554235860154953555270096799919283398908437329925749121793209691624857264968334357401017676194615761507680199179873443870750380192630634738989354698800999950217142815352041544560856295967000945644974128464264180573299416351227775518250615194735571173042944802516988707503634285241992855209698825732480787645747810169149496924710478336939986826211840427152230706406223735690405419978345092241737684343499885813361013823932169713254000427321710340873965673098112452365481374272254751504403227413521612320548838132119636302308969024298978684253481737338947233884322045748285917137914907699162114649677542192893641015937065371430563834273948870018021134452138113161996855760525885846873299049629927150287003185140786829050113503877210104227314363951384896443785739004496742479262205698005740165332424071337763736270826883159821704907682141605461766682637969938291858128218049554433913446633706838760429707217010044409437425809028894889669714248997335466655526541049014227528008678180279773904627782176618427794963045264940065688311957054283051171161212279387599113956638336876370951271912963302912002876738793004147010522292608968683725177401563949952993521404201397730686973889622162823971952031033564369298154308086302393086974268911921440861521201173399137763222198694937148897592848803271067561293013738213840844247432619670316682089143391410236294432893472002555513633614845102310713766700875686591444020863981127552921254347018701843558643545318645097288920930727315346459954077711915588811982987012204107999600248308990281084048620742110565770776975990356263831608173762915091697600771807842714023829224272750150674340840251055573984430857636164795623728850299055311644296957150166013611573013202941667944069790945567080687164551706554463893486560450007199922246837221698852686428380993759817812336586782623264943442895830670653241023841102496988449339019399353570063892035695036870251553100738250255644517536813081473984572046405245317061434837532781471696344680580269990556470241301666275748835184810169155889546179481793263707095864264454899353533885996554208270359469499287529533140344531482822797116008968013073536241418300494874103375890483066592208124102354257227391812657865173076513526535194931702614034403617982700041354860496774376359901701593055848441210704393605229997091305800926152924119000016065848552091338861727274615012932468420185084720332230932516578998184536930362421798518455715941515521501029500429264940760525390592852528114164441736546724187264756435153290308423004731558171927315790702716629093567446119821170281258651605180653474460373790538182466170432983435372590738729638726291805737197409347369321251526395244757189344342028599328324629659062692664282090366385100103367938659902473241821596851372614804800775303601534026904767359807148457621883988004566894048959222484337241702407703290386747275886045327430661156485544733041915232655942168138633039023339753379905004141591467673848700544082268875024826290253453121528644712258919280034323157878945880505777556104422713814699674136366320260737179123407577459620517542732630094854157883511154845725016156328189631802195426821207837974748099456370159976642943814292837221757897000631418322025861763649181778495330406018699145348852457836619651273139676440613114483414474718713924876880206153362601789251889393992456769520440565545938815238377231870449541256011328914976531964826039517578235299391669698159445584545162835796245547192556260628988224932147925502275160575235863130525646435355669274675450806029779317695066469955743119570566696596292210454293270528331618493263549040844674010536209452621064100984416655393475311699805749466565118370784099904920459949850941502660884177660697012283495831157192388843634169068072641973574105255806207483147195351875864493894907311094666330925544605993872601362893440405395129556108387474178790219642564478768509297860665937051735209821157505148524170615196970723198277550804152339350310640194653757054400133002107017530136321024065065559352379937497186154081049412820096525876550115240787104842845087541185014572610393384333039286028021208533202221067626848074956840821277090604891139270208555694577571507824576712070557753044193091621502825872660640838380839592130203885130721890500407390729509563792047842379595776163129532661429978644337295784951966470252829339504645958482568416825484802285776928222483027920538019642767509508493619217493586568001486160444819950545081590188026593509982913010680123812565673655691267050386924437010530709309098121968907811676527690664333422143200207245270777273614164640233197013841258424771923069801010705199075454924365890039992946346905505383537392953470503878849857161833356451952544762182601219039622583988884496689161655382500408750283632378174990144147808862859370718292683705913376538753460013761040564844453633944255653427044250695454778593044376857812322389821247412497772522121368331696211892790852176737991860603662703615362382204046406580875116980076561717397244720223377919658994849577755978609908761738099799171396319667969602077408244813287865510389505779286651086408039862220263491284914997145161732477104570904076338458187209158012454611020608254676965748597306316823821360117951108983715496091271615591605875484060894796061775591751610724369752992234804778060384324521293499216824362140650037784768568672967529505796360764748119945449092162909710063707204342005931008307553644492540457018327002349795353375091736289467878901229294024984124667514670276786241423503937968062225580171871037903995021434390160994439663252335797251100827738801727369018999138877946265697595352425968776131392206975539408742479515407416413756729497675922367913597291631156676651008890831876522891887241450514935652606116292794766036696763546352904729232084562640464433837006406759815478050421283124812954290185457160196197959625597014421034486464507535412409657368393074754131045411115428538942132846055255170444521225584488013356743746565409953702533925985657350809779807486641172566997483479960312766875226015838757898344347180818023976555657277809318932434605069319060337273289960930579950223898848539128840347287696243455604988222894881244323325136816226359351435543230348564208222977430057853031931956960989955195926710787917647889921796818724781704591462846888946440978644508652706250045967413948369779087171332597071859146944639807707404323772341706808190137489032611390840868257129385831102467769881670448273314915327749679785782977241216822991182084371635951694500570787130906298493907305000639784325452764670852639708162957706257368795894148744130835868688577429818346379088151733307151749708198828672697757711664968332205357327431897069231988197603677903476885272077082589576317754449409511545067435094816701063264476055189304078697042469838459547177061222800906015488124032276750370377314201164373151037627200185237312366351371527893130292278831629045623357645690631451512764377969526359326541201593629029624129055270953626207869718012905195793817410291553639150024261481325590981498872962175713381791755791663211126322219619249411106584703999300361395454985317452597216950872933028547924852328197091638688437369443186308430732773326942889574730907167328967220082371170348460498664799744663834338336125400588381698562851300279851417653208965979124156215869042235402375047323041159001801741444719956765117004940195102733444005711694177305101846609145199529048274814962083141478963299225961357732859296020510469760419813674224539904715012243084811663758771294926732602314612038144396571917989211571629634457189198663189103314926598388548800048464388777116221269393225711170692275101121226353559482151877903035449010774908054066185016578270459201341540817830743818780592759241137271760268725580645506290320229502014148545264285404766132595836374531499080823944603074705256418130521492560735017965416897997221242413612064630344201327276027356086306347150538231643961674586353743081982879548684080466630781267578505890623276705582244573389544280121917656779339969027097964028309772427161105283207507591337452527807256583435284692650548389509908949875019986778665451792796363987795589578858661632062529142811289536898332965706221217114359693321491430851675881838518532791944229423139652502802342628461506057269725927188677738799748550424236554369269110542023945746927565763242539418593089665263113684868022807048686871624408127061988082082818761410365658585771614787039596142135648495618499878216592660463982172296368141310268783211616646460814016909075554533061629428245847897001861902396140525188995779095345005145635977427840859373820072280325815957885325025796487742675260963016834659201123697130257657542401742091988900776271543436761383027773916332165263786416099831051000951747777638018537920180954930054244558188555334514544674225287077153868246078512177119972435397118568567840876537850586016325271783146286682533638134570524553158960586824054219017490014449047189893216855327374026413855332349283424455081438912809185020191898909008579936309272914115346851437281603691314121585425888259000803440127672708290916198074262268354299591102245952019210288937660009920526944721991805885376276596408376314541757170705093216851247177138874804793381322350224307372147930140380340917858874644907313057590467915127324137511505650957263680682576994743451438314500278746705375761772252935261080183984853107648926666160601722987850929733806534832484345663758247274136582202383686636497429948105252211150070348203682286650678652600066774758572027595758300399329334666023390927499289534943016839594397842742100562572799926531478521764870019914813260119021397001532520867963431250864001215080555443922133875632131236274472357091227521120906951730888364681603950716508027869241740283097631417051773370438656817060818900705820702056765313638879177439074912945068601946852975508211215975019614691839804160019352449312449070256955249655965222413475102866819181698200718314346059420468277828182659352726989370981141541223154155068314906279796699968772814972788303015489489050053097065148156505709677274861576786673794069661061230857749537633267157709786755586775459382155577618943354294489569968454221766962840836131676642252700287189030773781194458512026451937607972205919115943022537472625732604554203064677662165908258245750595616595176099481142044422899961984231222277409969126249894538565455117286057195261171995506171757375650259186897763993030026776283161845875489072869219072453473842072984090317191694208284772634638140972257965953578901099798863455818420315882351011191220915089550612084999897777004999744961897029763477000342263564102482496033751691610462988083840750458225871092091092012572257411885615720833551219342028364512837533715011123989057079093082757339339634530652249060266209275285206823534569781604449359531146235325554023095825499005922567711635566250599845884801523584546694420464590627254550212605519056159601859110701937076330978080365344849776338874583728499994939870173508972620990659365622925651867818258123636120207770640245649633524173836587429974402356349472276170385086109853459533965153096868395213811837740718089833380926762397356417541515697867687503193587230970376275360814697048597240714797210481823150472548856993384458268557618141893771878575719469728743345075055408352131002739492442640630258407540500878227284129368586296998170235700671978047277911866511610188484145690478092226389879373296122248643610695897750339830517579076842501232146439754794711791248674680054219696828301528708233878213740103855071234345635718891440378854084126846255880360123141768582339098388263901858340482411068445881868571996366848148454448417149626099278173860696341107775903254084916847320261555792609270716202258890336164628162930340320445416150174916416611534490416136183909792337146290363175964041939155976160598278364037091067325485196280680445316009502531769607821802494478318323563223801622209364080524498345392219383037530525597276425501509922162036591079554636833712775510135518380195667817967045158407467767451694749686357196544027160601908599910280145295225343790041710486794071805512786297371368066286239434390256437907262234330274281626431725920220209897110254465526394630537356045018179812315905823930258656118690991370222964354156385638088515081735212595009565035045981375541697988462410549666531158061214580009589090059729196095221232242151379226165112464769089050350126516395613567756031865025652921129806969924580389103683612577927320062120064438263030292145033203437324774586200407000867190490080592194237224058212208893480581133383446890195219551111058160404354560035926374109657262870617293775108110608278506656955233540925909343353627984288170278413704693365822162633485410153288502104168824499009515701272868731831159638303458506668564996247667516445356210848358838576976713579677957443246036994833674159892345728919614168964294427104406110801504426312771913483614075213282042842469405680466876316319801865522316016915996674401208760032195352905839150052676005776568586665468128335293428318183258077530468954399391319177922265446604194088408434278913647292867410126858522363343442863944249691186745977489216038208189751193223444084223958999473966253218671738633067863531466230689799994087418284759540840062577266270619553013738251091864306434384208967571569797459061468558391871772776383677454608240818303257771839123555373935570861715546730442915108156553158435189666718582317965366648437465427892963785960151924487925575172297548104360964058791783052144597236777560363636991928420726201023139147091814664950563387617685648769512441529903636634187405508378899756252374684175789452199423132719091021982701351384482025424804425861224896579447449414203429960785359317615543490972426224057967669139179263197323945578366196095869281346420437800976154198168211045214469673332635292795644895353116629398471255082092322822003584402516814121962724869160381884745031103105989885525425358483992403163629662678183929181095657606122711569673840631092186448637726739154326470548845537037480448107533596601033347955907209502195675485534082912853850961933826494881975029446794736831280448437393208397174860791045901152568900235212918730156868289288845272415301132661859058502442037199836572698292129350608061673484472572545468145346458772090028211924955815736452760686839400808052453098645420548909784051141808219894231160867231025520332369590977346386933393727815072334990761041051388463440387043457235951556789065892733586501216333548787156960724118879135061738786158814198081284345742395608634498767044555358967358401329163654157999917816034194505798180163448277605351641947032017019685272936596486218086502121622490626335874865723489242199613861212472638569798977905283002314847192110230234154356555716608932175902735271625979552851432622864838435101821234600541646999402480258100632685395454726672226741454437445600885635932344035426488270698408011350413467310177139917242499089868003641630946140071662966532035641827829487500002297855486576678986728220831810102443755471012302103088236612219186010881031621797821586421164749416589391586608964933469912484630768345428732148779575221510472752807636801713086984419764709900671229606161311147492029329588049597886884517254446606984908779904590349899312285570283586559909302466083060583987996598764167059226604603816138247169547338823663719403291736109905088241475561895714660640081936149810717395805873846149641970659532484103201920774312112974262560222269475818919239244913061976754655929672547549297259151227120230601514020498679770149726442957564766324217597441430795665707761948589573766090181429517471702512833300605180737305114888338413530782046842763850416462880285628542959555807684763885544571771160718073995657844795197762560240643064359635553921440394406081837077028206137167617801524218609252883895367324194275602010332559935161132889980213825675831490715026552702116886984155027804034235649155614789009569125221069032709443181204785302795229308102494285155431921976551463306253397825858683059840387960521167577992549351263662682695354373645998251794547722724913869395882981282233510139661791940902460136113587426862534996572599291276627712757771690106973633685017571586151298386205821112797823213767861303728108409063897182552155702338986158279387260412844997479867726024824220934344328322037933209968831135652476474334792038493911776429057819824909707585307897839204083770779706080603301327392751258501245574411684761039695502923427025148781355513280790333313282843782561084595457696217859646801088112575808022976594628178540639896758514617131071046408714825845373336693932628612608529679736983659155595205437175810449267950520864038223504096516776900470201821004844605488907777550317082685656098849395680867638703806571974021214750333570470869266000906030473630990263838321626436616265316888143084093414300547658961504768953875782235143957957915230004546989781940148478711959367702320075347131336141552069051052231503229966026016155835428168910577313670290129157938984033542148940921102291345489981866081744492199131029209077884355247437666533368807056562105343523683031396094545524432931234200459286502904480891571612458828936190708814999901082815285745984165016745074831801185900231608098274628688410706948588295832518371930095115550831822743993763297372182371710519351576118350775790901837023861756933120692318026165149830073310157371680818328113282302485921325674000658362791565712540372629205230244187200519589809684288116489273455734222084965456944479250439770111298536467207791226494683914538883225786722529579710763621057841330158936020058431250215019795747081005250498526945469836348395241809796477163672810158229930444507935074288780983127489238418973702647280301405862070632276146010212986315442970733977762946372878227153293568532551841580027216386817764918180603479007524290634693232351020533668081653423377835063508616215557519893823229654649155983055337732166299525205476448508393574460129046278295006007894171976273764105106226976941361268514114440033532545482934387834818026200190357698225678758093273695575621729018608135432772783592234408208742569208662964357377484028945853572973113078077493641309634017762740399093816447546311029479571870558411250642432687935492350758233196211595308887560121373550295345280182829372727142153301640878047564133302421506712442159063161348501747114308098565324316564675759948275522624138571388548307501985750758883263691193756890477735351001357519554160969966006057942186142872731582549854950313953895977189242867599005709539870240812909146225655108526336302341564346715308174216213300706997651483927381068559514861840272375376082128821256957589878806998957462949487619036474589735787042805978748469182943275700296788812915887567494186610787817636760483561559201832371797668934287896571964572638935056304128287684741319590910688928662473105673405493486350479788524779959179337362868479726240111879071249256320489054909770864736040020121165967881651247303913137412687010703661985272007210863867533582930875091879396427191244079227430225866459762920594446628838621941387702700270975086323768635426219209504790346683416129709700520552107743036260053950191782243520307370359360082839208523481391142009152240411311151875814479544321094610529940753271374655296021969692989190719426870486467450977494231211323004380984494647476250975833237259768250865907632536137928757222033519107728679733943282735557155603861543092833642081817137992580495018641024468106722509325556024266279163428142496065469534955686229800803215296206916033793609923102679758813197273456919929467915179993653920264311026093969068701136956277425700241646550968739352470419896409973852760164729608117219342884088742147866024110979850973164891867749881168044262438703963158608192931878446086622532723261983461531146727259142063652996429270070405640342528850437131016074865469404112119235969891158665216577900245706733041585628644042407657321269319585818118855970447942175957341133670826804716531353514311948311011726345087203096906917405680421074307521971029666353491432685072436205612814341765665534211067821089300674868394201468125056603255164549255495775436513242914864548247769371021826850030896497363378143981460722154462688451139253046161022085106046313863161066035972119046032346538021375223692875043610193062832933059716213880496765083953526715749441979725809917444750506490223425971332212353111322577673667721175878533042205977535588164070432857048588302467605576603338668974008836207561954397988445012291382250367402958244864758754716987488830651259051501733523343721642932871951586038206741821465585565833470802809784065963721410659114719085995816643361719363078912645091100175568479864802683938327453612246722791174711692651653054930932929609440933643235711243850835526833693518697670125937373189810312931743564882115372051761827273584682078980820856737409631385846831616412289677079942014890815271093591795860491618143674798931452308206624503000742269120213713597501771981053612437928748847383796026695445061821433123618440900418625765111951422421368564854823558965997840570325075075939351088853865260795793442933280035097257995447066985415984922356725766398459943724861822700771704248249569319441491432723852067259741844517190678512123815168169027479155673810585091950785514123181963094836216143670229165837327663275656782043747169790182783487588856092544390248487093015682614158583109925965190129726883936463460810009297720976710432500777964649413381440068839566304175729375989434476628729367279147108685443067326710673167003016916352300159300154552476662574611508148235382271705125461925461558296265688848488902251124846832419775512219675828404529509692381703296678392980321639877805402825217219474605189347239010717223242982052135607153001792968147610972001878635995649524699462837498866581527840619974743375518924960323621910467199422037437761582873149354905352306906774638680344133986043112525812038139282074115353951879730899446685670751034665087315538108893245470919943128489306172391623618939769339110226463382600050174504843368201768144125804957834040845420646758312150428925330717638263283441258180509784466550071992122148352702183139390419746549695066825371509852221308628621851621799213018735070870001476533716323610034863728577954808957988945745621711284238462421203997424258145497534327950540548923767052260782909470346712224185889722170789466904945127547634105437471874259849222191950485526353193274184163526551509179423816745849989994164314398918087693103681400751812137507314134169793245618981662774094185878131112220451306525712178552183377819138773727791144134284746124960046350372470855662887983304433921308552945138617619381172009256376405832559868828161559239836041236243776114362082199708911589631501678478264194274774529224339320693225619568672291707718021832341217267424900507669309166796965216230279709812531315617965700866744287613610218031794428971564083637717016057214579827713534018252632918624848501494523787356588754070697665096824196844332261523722806824585993526425234137331960623274017377673926326958573865491679431924973748862600875298106191827819816985929815889495199558032137503908910641010916217752828474406720088451322513325943394253924755706726025844097445740236875552977289614534966716964700489066926630308868962368896269380841178451755122264530576881290790355653196827397348789954905049490388859054201230286590131488447244981587005195546085416821215675481889509140242731545937324649115805007364721823374512432439662916767482424809272094505709621644199100429902564218127156177226561992124680455214599990328431684517689691047120001494143628422858286217801762875643237934919128586944979902212079676361759194838766347334875342332667524847957703123396403319755263696792536177210443762118342646254679431091153373182089928206828402733275378976423018973727076811454319692590281309678926173080013051514543396771564262675251024892933576703568879402774524371726762456419096560399567613780012275818255677182738435815164714276973166518679762591452907203186852407453723074249115892990452412848474027639497403167716502398845015661859969351614031560138243307276022586132744477436512094133512823039179648730630739749150281237447697952688629723493293841253811366269791128761306008862066942832200875905193824938123888397417423907095351300921708281767431459771946708537645780152466095499516890157811783300024793598371575390488307394158118351457921073610381358018088549976141575339730633178799373188203355200897504057375637239166276056119191849733448420832322949856523773572163143845045880494762245964274841847658944214437249453451965061096431775885559107060699705047988948917297843536855274496292769703285694152804288512386995810341350007257251699812035607380574768526951837679202856369645840129111338981577833946781790810721082367574055450925072809487226664101510231044628443522740775373351822306285784613809098688057198123282971682725691935198686527294447549291702072921820525731672929774086781667055440550698109756918595964869340124023426488587707067196436016195668853525497554593610208801894505045104821074155607894087667515923850487633651238894424653044243625950356743643116048615373683198558066444265923087189862982465347671196361765299794028584779043664255903038900662055639119351007680593622913384252184395379521067641860932106910992075730054999037386512793628668630814433442309996782077867046841953156255108403623330687054841949711714787118994776642734693928029174059130595007327648394505209215190246451674932986902130039772470470903086966981396721835238714062304729862352705701872442312453845816498065539496548595813583845356001390980680784496965216382438647664463256718359216198484825145673677607872114247378658115773955589028523764019679059618348513548444299661356102921457310275447447951291509139810313009407007417586180918675043708473746664539747631190688428267561755843399229792907104516862075150203677032577653795226762389081581930707574730767183657876274584585995097966002743605483337536833176631519576677590917439846012180142581022179656339118114662718451623010160540738663986033497568212387115994547840553244834485917669699842355393474253324690585141985964523432114490162829023063288345424366160764892740442342630791160398124759275292970233477087879255565567101666902541570523124625630693971838949254329847267061761918437727169086283189108420070190638041582140379308061098611908546262522272544097514658352962643806519382488641483595576749107268681693987637819647815858081968074966955053065677550166871783527278524725503042462251876328376597675319523844978122822299622974588915727546496935708959116949012352610275405030125782918499837297183595838592834270141673565007428957363250716502934845805511579586376318727413232059283458761986031382828939055572259902295826334940791243626473441308085132014441794263337580495639974802378291323750345418320869147884967294896432513225027576881903566882245308574700044345152604558144042853728503036700844712052221956969030822595893012855101101062346037232857528015899361191015852756521879491178632225392076335571145550224389099067885713232474458902520432508599433282060183822768933142660479538073805412337059539670852582532199039477233997131610694851268524388913694796384878060915457063214660070817271239824128027243692131017220210807589740441015148809289451103715445530875052962298315044234784598182328863909380959715239416695289660251239024443677318985742885550304838502137212377272131062076042537558020741957999669568869921312231131739048094792851643323229457032349189484796641163446641844164828453600196927941609992776510655091724422861895226520422325188440434849112233657967582104760854153693741807950466297097712995040050095283217883733226188499591442327835719193260240788251149869051766993362941087053134208561378180677145520623518113051568208747670784095355452983842314123028721004256319654933723397852024721502767162159541310782922772329738587588129290236794482987178949645394317503939330194217770310782929110657800866704627471903800164188608283764716019927244907283084197875812362357874298153454036432550051028605082538919872627885334779973837643931755046330187719263493575216390386941228729907605321650047762082133232409809447273725773447388721058517653302589198455221205445972957036117454940950538303993074738907641057661104875597527257476422972690629560998583069813973311279693450528040308394944110346147488135444143055413742378558791843478240703018842396917537658736506498300723075117385992516659466415460204405307480312331680580077623207394778797544535674960545205807044968525828964248128802654860237694715739951912425266328601228921526123638898922916790532864062623669183873167779120365565663287269049025492243720421141944770884371498001009820063329540935048118411816955005359829985919349008638132395577935408965272093814023521524729824040282842340833676353090201736756809237194604031050651620805948589240497911443591473902371685799753907762692519696273058548088067484677389032885465231904999701100751289973638134857340416482341568414003991720743707604301730610135685362248459369715422948885135305746820188456621864327217734505705301590598194887688458890960503490754753840320086218969183188793676322554336004558444906059768015715157201018819286498059775154720815292538892619413098307626442485706082461787515136900688178694753511882357544127559703250312825338768379238216986101387033204177502499983695085823777734622869560465456679712895620039521110020489242213934195180850961099441906169215574683461724116800524491681955426879353213706985933988192758565973145955133711395397646608156674134647268527465719336501463726634103566832806908591025159459242132845381394468246638309002041033409641892388030221932140939056638385287198086856652546447051932107615021569064992435228433257814118331207641004957281265172530421093762679516801672712020916829154005859736711837398795836921367337614612394982271470859296022585126676307440399914002233628249145657407486331449134886186397073438967915749414370214658154895769421485281621129565610276576255845511924737458323167456169165547763764912357366939481609303061604040970091820713040866522711123733119524663233909726455133221950939667941960117096973673962371264426191451297602400582724833788388097471445799938368171088735035539641016654041987707449087329491567666001024079216919230959225577674945676781821595007724503970660741237800532861786846923680823474965946885930376217581982978834538286424827443928317458862282029695355793083706688624577572507537580150315069423175083472408100950739788895322147940503989411058465020577179586895772510104569770113488638396789637110289760997469545560445885764820756321169679423066725131777006926823202484644361276198698590296437855442079539024832162034252849985773017208090161960572429919497392383993459387631948207105397452405140598248369191750580995719151000616338431029309594105548848743929881122005950918786843300958569087110076940597208753799874875843663257253469643128937474827856055093611395442114741138437949340056743271979165159263156124132081446098662315848543910370072440112680606459063578917491017164971436384197107547177611243297626035589288134661405564147067958683382080636842133985938212673865514460714272961559354940067354196057309699671949166351097944345106472463471654856119770107375766045611517053124043743116282533219131254225891105120061262999941343643925875188803568387204957201765049660043492309082213811161233516258259254310445154180206698067394573136606648172783502613140776753553278276378563176146876521978467913369647796640358496347502219837355689413866310858378514902337381433646786367687122491556830450550430979805381877782833336013396856360003127833051159369371524719873362301885381969123490817763068067446802790522774040805595391460417363142617610512673591637660484409937976406204379275191029570125741257627111871101036682540954636672445489069206560145715969728644713104379778168032663316007458372894525965142739491536506734583546437281944220365780379903406447108041783475351003305893759338337846720765688536935320461554794540582055097934557149301820414569582123952217823609894133753210110776035817601139748566828093374764782560055026148151748038897714808500689951532892928244408076616548148440180756289759584165212920880472943601869254452922520107779249839353099140179560657336237254516842815839647794447732465562406873206154804003491603818680019562359816616222401018788091599179176307177190984379617807626912189538916707808676945021067009650870621988387501580832192693320214130442376319075806004586227307235403794814799784721654045209129892116105654675208880635587207445978157438756743337696228203637504976018852742598123505317059603394126755239551496370965103892531083259696489962394112499051507149361787676402349810140818712055549945124076711190304655600484797196144809089511173700901056940085029936285723476705539854730630482434832012052071077118575622461189519496712524276584972556336773179660974273944277802081124025120662357043969312734479569349616532451914588761107967253821802091026699800365330511536834031949383369973712157001942123111554640362665447064840956621087000638214394439545490401836734844421065772502561238273771010923299251825882347374293618410368616715188881714846731850243280746551813476611412801168144117348668839891935532157726677983008038818373823971123883023474524896444607255652403680579987047631002365329821753787796129697835412849019528913157577764970172673094625652052394426657393112233829228944277038197125000689830711445832383890951605100635695519522988529823222087967075385403316807654921435071201879101495172794286381008959342702315276891320181270878040128431638658434793617026020299261042332413708895213002701787839107653523555541593347848704737732128502311057546629722830258244947108060603454429797318132945191924387195432712869117181732976684472867238640803796827597230268345200592463844156457863512758500454823360171663633751079000984137169085248318272569193839270883487299784065780662595862508870447431987857037938491025373392369071506526668467053919256196781325003130400157254529396254172216481451947750727689728489242986800378253127107275248259347792301665127239938192939113406164823271854417603193158838555427620677467136877160426637655953850889846795001336367544930075011803335117467218652378999686432297309789234748829747810583697367519904298580736426850791642613488455413458326781326322744917493841410096207805641923578520904621319932906811188618984446950806596691533744146695082409322621763410268878369757789892882693020277021499470423830394244243753197056828427562710280375089863015687337455033153834874360032770158296912217719881132723277661948154980649911679627343279784460668955436816699426784022747242516587610272342840814272855821876826807453621029104835969173387927980699275243409104595732137587901744496309630637039267691748144532439453308939922064069451281939415251223337954544482332831268697789979827305721950598315599337918421431624443377897907232432695319614345817899694987469255202533042169449696595747691227376135805810392725021404181719559910559143735648222524940157997746528403995683388475780500491226330147919794661188011124322653433109107412006500497517938460306009550695253826598389796652773593028606777952994064196343913556267227132106529620533597900078760581982552235283477098635929279278737187870619599726271851274449515612651915191302156712608488249918596606561533756400634269418911342455263121348308527000126545426830162289781838880890795118645557158069569968352987145891011377197067824529445727857071428369936808333673232227173289532490053866872621631827084649360579428860457285692055509101605410896858461235780422868703248283960639681510735661476007698344911036932530173774307804109926027560652912565492090588227569516239513831675651626473089696985671776370147188282984713860507432174352332949571050357472127636673342838737496571184673688687646086158559899585999764339247548777488290263048176296733033314977230113862713280997117183072372485766139523530931282580021800814534501078693625947108160550917436807805303656958775002019142164292152690112884433806540588026951356309867215429834933355887115827700444076105125242270845189725023549579784267248109343523043127379745420525481298568744172211266675230001577087845166784161571588421334027004874688879787166666530923450621516767468499172464760401967932675425648931534584175228909884055789538051366367106976806837438097887638278389757682375382805805231826816605561464619983624528107915434886768935322780338786627466887757747267140508317639364950825988249766954219747976294182703524008245511050460548897798267835408444019226670381147735143560157148198033833693984419824348275591999788116665706264185793483637612331511490314063692308850459456538020885020065325162734348173406658702199306545828417056634006756538215291663672587524013387372674327755441042597400517703733404226157034095427510676588483040702739717736906694001400106777513089324324923814299804455013467434412267925405504858586369986534225654980464819189304482149651157769174997345690425978675134120120242262603145427375642565995470065321402290269970482938592800607865210972153141875392374800035899773836729192431097875523367751467286843093512808883121036750519670799580230367210848575920375006959729517670930266040039660414718699521662029353572720900767461791639011134984922567091116389830664756279862457912380616130808000505421116417339264435834417472143368440465254872741405119093136989387578375904144565114025410558432074138606888108594318073761722905117056498319009879319298681360424639933600198986384593478222209676515926654926897345040043545989800748898026666189248122414558339279086057545792689145877445108690862338482400902040175916418625189143243754585244243439257722911339089706518898937417345238161117120550589650080587792310592272429566662504446206959279588660903907037148368690512459812780993678410427218856423976070763795684720715030896969719180425364479903818858284451264064299150723871921266242945542128629865442813978397137567778711902756396350301172187824364233100560107526256584419316327379216182736986189952211741105089750905934355695147192203184890690459750821437175899348628181026970285336616024167735369889444048541265259673885967943614095334763599125663043296095030040538346881530820963728629784130065161254621467031603677202384821253734617508260904564195285698235619825815360120066733005306554728966391991701915239663438135210446876434840112747497624625425710030198170959168044419107893545254887497024126679401455749237179662019772676019627523257691525962724432361795867947310387664186079155958056834991065283183201816789864967482642390695053801757381588577265793325257771616493548342128301917614788087477348044111260788842411317286089204522654182836902897580367319621922928535402586639983630272411952361614322316807309627728743888272084454425169876742837872309983467272800527967551779380465663033064767840096448494350430999788476384307056152112538831496839849988108469092339452666303253871325341450820181886557646022666121214152261518944856183519827962467979439043561514886543604617544117999939300397748303770095756773894929603835449814589218617295268921097275339689486539921004578895441621824425099864927027444931497263320034416268767210448251952723997468891658147181201410827759477036993255687666714031467602247870220909093318026804144968173819798139949912454687636692841091564236140909048549446611242176556850769069922241099176231283073318358902270881317576807765900021565290636388770732232396988277668018781883724659931651806503094448688329508014830442216206333231088120278758653294818402534183290994779673158153432689786074868566652564513771004121053118153223150270470400163142240001610614963084533074562188519747032623827931279310972770903250916458822926479010724426533161074075185375493305110671542363863469851305597887234237873730152039901689287667375662687195614113713205684438693663725333935000881649673832495078770581116043824101043851071844067694810913557725564205985682746567766517421011517581766640387001884821703502498417972046410393869586901369348224931410421693768259600826062549371741693687327146944500534126283542811096334554926820396381808442004333866734523284790554167166609463662339296348704253884625678345778012067302712270327047885496051660134815450717726844277031855175787397083404277702216244462273272928471750601114373355429338861915919709376903604154481346110436912418879603913682950886466435986948920423029568778806094587451594059703307607206193514299430954430299804550945521778464666377832106472132552572280840692838974409549222822028010445086092653201356417267726233148287232974050501432362497027036836099992582128473992775890890782570111888973244794940944104440416549950410562145678864340468127186731167799779698674512490907978615006162086878138077773720844960093263378679657151673424634456564689663971445252427953014192641398485894811908743814953104565638015610052282047386737239716066855105453584262613431556440195534484264602949229228560399693763768902070422904878209959050489623611290806926362635450924614324792499310558671889635495189702964200355642448772227406644649767273654004623693101928316479630595382575479208071712752330135631662202013656464656041453722254379803326590312858844822566790283035516844249210803543573570727851377163208309841769535189139606088016232431242441106734880764351381184310918523996216037015278589348882094431169177376209147653785367523952859221287180244892569788586466773605467573440537200030159927449736228812528013729529082019851277442136701795484075526745421103316542921303314393540269551620361626941819346941824913325401840311887862493381812251007869114569785543482429126211455759014981874246486567656677652622550740437680598203609355750304086054336938408997249215537484562521807727238836630972035460003674123604358944324964192757281535387549767771079311075869251133707963409965214304349183785395249587470682390810563229325899762062651148147847632983835475534315126052110067877884580563848978367311924222851051003674802488703931253669225599330760341649167848002584281190598276794786410104766107965464336228562472608347268005765696333329171828142095263084586883760614666715252989800943588562402575025727843928280946651973894108641247885621491026712621411034389122692905097026229657390835445462305331894880487348009993161189611578192630151951228540242419120156817681318564422681184438660675466449024010132611375394869851897099740890651150102224855410772889190179794682101459949336510495953915900618290212120107966067234044121716467687016402888371814553006858036085966575863461505424914357134225393925059866627635061661347158071972194343758230119379722408310821080496595320775854637257484742038418785116922190431246645477548395564555340132730552452541748504524910941533435650398558883669481951543655586326075832493045470250811340948422433492446060125287924976002154154836754506878867039078035465404096157036554121309391329758810109153257096114079228069852836783025209499100961237003926559845194259373639901331491650681501595388492787352576761884845122832110297451557886777400037599849612532545684996214736887099873816273415990544159587818408375198396458129409229436048070027278937495319034225238691251421732527688281313748075847725570593759224349460351970426217015380045942003903299683760654128921770043769051983996686243986126366254154663556020662052985959534979700752666099640300562821364135440283268796902995228682661162553894775514479161768957725895240688655085185808182361827385579502323624097394818911613936910853613623241060992114710921429410456642358032566136503158269306806333818926876284665809445887645849571554324962708782031289442606234756023871603774435479558104857788980791250748653004503825308496928756247106889622129849362795914820140860236679167965784039455887246045495107641427960388682602402390208217238589741806651170099205576667232660897954903579807790932554404645105705533404192422944619475581723423093571268980716854524685242120768585619014874680582177635224615664284070073621753681119465220337290331388016740852895949410149485496839330857501581096544347900020623289430798198332481352916177672199454287138087772337981201780418938216262503513604985620715309209600445964522233837657506869748297429450559468102241035046724347201587064419821199408030514683068492147501427513974838763495891823443713391197733029442671032361166699659465004474944626921551629819502473460871031919594068719831671892552463044910536248995853471788425626614863004086070093689280617085505530547019527780478392829307487144672451598863059178419151133540469596282633381419998870960183091043951304154050871055791757022679778306136761250425045368173143846996404172347590897458247923624961841547451879570423980522733145330962293484158773623857690471803300844131948319294571840335316567450244747000954913328586458890814263239334450362940157725498215655619652149634218900920381733554688257407014938034492893753594394985978805417243838319927802215189676317512393876560479629644829872947809534398061141528780076128168587767143085077607031802749540472969370578337690249850454998294271334899593833001600024765027579354503743311518121348638512500529492888994830366885026984712663043873306208299334144536759411584915719409783170244235529137378455098519743781137958127379328347539271515986725571628059209509751854997280464540228191783190189415968735663673280815848012648064276344534853996556134912548884197252757003898632663829205994431009535788331271574280170363285876771876349957694042790991557654477727270908855533022733065644409238028188063326926222631242146948813388380125395854333369188810510278691818027578810424000294695622896503829688298333915391521119703447168855959760980250008669578352663161946881022379924998096297860133486741856092818083861201151894757936867802511659036871656006860233884596014739609780751586213547821611257153223497479625728242402281254807857169153413533245709343744579536729223142643379846381022046610236295074555313773204144863596572768963462488979986056261586310991772556178278554451670756050513915045561963499431200260007508925471674504037121375789851878106428522839133414331933887658026708383825828960155997063032840504769585080670044978701657443329121981125534546758923786024111819270749587151001331968655467046916824007386500107271859411316466479298428263525232134731985668845474162142589298207741032895544136181123425339679812031613112979571848342034034738277194864734501221035384018415564240713659197646226932907897369444427802538449544016602832348897452861804437387268552901998691200387495198522777099091304447559138141669150365080019840340581541142489832933317662601240453205322026029262296227852809962367590628301026113250779291913852908535472645415799341057928780274292724922903054576292654201742887885482874647945298309503103872081874472313389315027952258269739597237884230524758501374739091789553988647679678128648211636806820369161127064151251434501973538770982817463927265344760683361391805064332188235360237362115904396589143720789348276684280355664181180317812095114298530905929847625882436920179027509275447832329945332458334523046888185057748396000841511659204039240184284616153410586584830882339139805027112012771507296264510657423870190108959967091052565676693123740123769297228319631123325947902198828145869443894539457196748508312914193624320094813936174673560073279862385641192491425164277222715725678655348554556465820889586568567141451898715535872179506081739433231755745546729002322920461280507415987007233039381907475557007330014545945890306532105164121081422473890675388953895869650693516001099285048630908530986107787942885524237346764130247652313206481815416942135688750839778841917632718203821986023208049805634828446580563004166368582356408001440323032052491799364405000358677318273007632886477640910251801975536031439203925101398674311380014118299589702228632949910668377317454153361088788211604131044168391684078331969712784421308329908428311781468033709002083338355812171339171077790301816048572761764341098715312080476542528672975399167738206320029591474656998713220908341316240756724258506082716888904682940127736982133205215851058341245083406408193861532568758868618142776089401818291064731913389340895521887242088649261742088350382299296442840709375500610121876113063971893202512107625139198089931371938435842198661315840523190194830927433950595878093560601249094572654984452668342187019009653405158840789131854984620452422977304764175100680727550821498618948084637033897979968390924192640069846903155005904075483151235537225605220030413792827200307691873038601914107226918183512444300217945980746546860121957836784394716156823403033922987786081629082718595969296040395478452851723057048436393818575623487928609951115804863358309958574877834904581781087479458792995141664192955048766865534714111663999810919518867455301796913019408687696670174928992855356991726876158814881940294762845591205582289950608578965587566699013313815748630934464218575693809660436058498807738124439208151103890974449277320463268303398053395249750238721864847665462214320596437605561960177184795507069955277428878479984713430580462724974197980362304500016155037160189896413224263984579876447004883647683196815384621110283291546374907063176917733712301234143884196634149412140624214863223885726783057405661058308441811968682875670268821724629843972003250683070414307113481459370828730271738886985357924013160732000087515529065034502380984691844831817687973540917791077705413526184702605873635271803524500715671659264441863927597483523772421777408382752027006768339254462984559172181326614400726256943188689283027109316790322387800887768561646814741200021656297321486420542721262990272781074216381349874469750847733116341153248146569510026344923558653332698172802677178615711612540740002279916200925360682749786862716976173146749949900142077700617219023376268433608324491842612890032217185100264721130603639124011941392276268141453773890167883615638298267475213357390435449822498459394886822007371956367139938337509417223181558813998496937935500862040516723841247258510509559583061385243589355412673018454838661631313948311512563587936187362224369062662957817019035517922819236921284257508812049097038370758386787485515467020476631169564960908461257788973691091124455419510781995593585263272536430561777770443604501049362278514791819295021293299125972526256261638765943892112993214943832126187155042282964697679771582262386640336791130521700547908151710311712597389891509100324945682436940600541805143588373966843577969319802760443781779951427886037973570245675939299351085478092940984561140293092817580106426838845498385132388160705901662138229559221024107571573989637268836252956842229789276649302469819952467818840519063155113949692489847526906306775863136083732573270899675183021975269712117113084892675414020826520441929135348987799362490181632991934477404498032445627529213632898277681190216205641248843692962030745813461853793192312099828927082672464024949783236897000119098876265326732221237765606392621226463183242460545916640949533963433910930790870564211336850421888663764245812705813277569942423923844836542851938178264133150595721354622857892595461213914967074946174597454324280217134403412398328993972888367922613894768656604102559284465429101397812771878901788887370666913594955692490218872449244120669461954118871085256108728632312175424814591176753091981106122905501540346681686503596692107960315049365177089766687761515871084503450966431226970202056444368158518079474936162378162023366222398535466604265846866156927809224203726121862585168737130774488188317130929062433028410821401285378949703028359316576880964271579916623135832988272814431058297592655762793311372449374051751112039602707397203983942620307310339683761970809849698231037228052060330535391559332273767502813181758838860827881542841673322012116265097425154165384721468145516789978507964739403826033357782532495721562387253292553054182872350579897187779673823174968531156525860293489298734348968693131983763092725006125297111528885175872305842516452021468434385432801999128298246635952765662973067662818140033037528252256797815234225306692913745024849558271712439177233727836782046832156729405513535288748413615258638797461278776679239799992707798235156546668901838221461914486033669081906258615296336813482668813597983480691591562983815723456440277476621135036090963481029899076252176352030460324753099623342325260047729213040230762120921694231752519928721354565230124699071525951386036581740134837480883573087389552983786840289008142006871051855597074910026121317460681438242290278881792415718928224809529644320423162233166246723453976262633919705356398341985618354797846166586731345147996436923336236763626564772097593685226035565396616672719977420367246374026588804941080967926831460947458002662405542475066927362484787734416523901992137499937680823170550467069235402133487523812702057805367963877566837597346063118471518229932394653846185915197300820383506380797419207173034384412906742414101040124591030722908732737801183601577624165391794206791665242414368354155793724879746503567124970448211404645531746885734056760909288833353253891830139056043602158106710984687827551611879282145593790407836514904629534219597894230650156049797273659716826069777488183050283696964471768950124554013873445322502306385050210486665189117734621343450464263786246313039659048398806453956858127046261572354789598132923750586626641336365805647575159497918649486186813268011367839698595214656866923746719282686583657604492611609712841489918379275593841778922222645005532596585185060071771227969140612240948505307113845624273519244339616874190017214602588950035093916481004335027731088209646583998137247123240987813254561022732124061025188559292837629128191262892425673873794721430434222362734628060847295884931322371351653077904131835939660851752364423404651975613610483138884384288870983594674177022380802780149530337563840944058269788845427105457282409570387805647177768348251064761092700755174594093224411610987546693262417332064215277647182928262384405108029660147577570271698303208745364134449937394033640716414653435060144509290671005540056050951575287285888616436189198196200616849311469457930961721985640214711725990447989882213333049607307397076175541609039994222907050774828265216417591274668822166471535316190723309910392971979892854965343009675834038747214922265081290363521597737360747369345866161168254398386115979302109267876884746786939821711127038722955191677883430645132492855128155439348329173243693324055095386804916870642634535620962911250901998928857608770258225236118741970419031556845431558232746489941460768176681507534788880483626179059984510107793883820234720220090988207205898328792444463034329965932325024223545646456809902868901174851968410859276273397217442276969502988377080799722309328217748194477318765658251743879923679492620240455771769058700347628126592458841053106121502669402180344624831006370470349352434433280422909470200311265593828149095477461984669439981685728809856900161809572789823941071611253626832156660046280027661005959798426147284353575775610813110102278780666060970406898305151351750470491730778823939400405841447612832930058359313336729952594771755162336980425099760302837002430302561035015260539539954833154487300951783286224439110472469062556844531833195773072211226155031701355050959967981808991605934101697115230398214230124447070119455786781366373348784188248414958175015738931708081266832163968651166810991099597434480958692053688152456396302573939651710923466431307992763355388783523806284896245105607588100764103779951336266011892536115670260618276672352881726612612359004600029423504833413462144311917346115393151623793441135185205317782363017545597043294463642501518100042615822948645847282263032377493725483182252736488247027109962751469166842871637361382071137855324538985281558135478114064176847436566986051040960631554437254142444042555600761267037822439261532199318754774406186898652855121199835455614116348887370883597402864071756762697866898484984669909668829056723666991673247705052752747960295913316423380078788948862248126178241307987907940703152583560202833170651649283094671177088680616506341188689214523864989558531817680982247202212052344080615419802983809086497057155517591958424098746394176413424591331058025732305804987368767640756186209706623075013005281036123729545963999061621473862643875442043295283419739379420718232090349308148867691018896519580657335426947253265433851994173116147509094010265918299035485924579604884171880812638039416609825740249023406806660747657572488827580735360864571411073252063105408767702410465731722905224290366890110389424118698667885748965494182909703148800307375829019693040584470836433238793341167278471102668539190810807330617950395480863707119097495574168342847838823575611144456852203840954635891836108426793695924718565847562645314069272488139326749243623073346086275233784232852241520273122487860523378242570587526657901956207716054017502487263908810245511190653568135020379544825353998544992620243036819743665238207887267247779901257366086592714420908100445640907099292598416575160139007541487131631977635364463312245759255106523296942179805502070931983029920394823336818319232725483853656461914419841590592273330849495623826026186996996881839622942118899778483249946016329160168606143762504325790823278900482839849764998846244011737993987347814073552873987060732731105644236878965177612061063258762410876010669440503472828972082738345832340990701078471479581731022696708315844605176160264948282067451759330795175798030984375728192385090843838385694899493204498282962068210606503056219944768422134051942232851543624296798298384078109117764680950023198305229268218093224091841887320352826419625210959915686307387810866092573145491769247211570719719322625974096799836540965066054419965294963656811637273588364625295901563966210321028143270357435470859149252709567180084985076205983982899539435326868419806787573655471978303850247245631272184094653841517730367768873873517450981367433906334677287332133059466236622373873068881359507471788943256594343102464287109702822719985821626912770420631451615408504314572770308593942795954383738561501241855002692884403691073307478835322220571025742818107071353702921195245504441080473346147345724192870257166315764742509825694145318992281750548529247424542977544734167741466410494876859705942098134141744207982311623739109769652616799731971199619838842060923367129668518017917204140264433693912276047860410012902178688782113341182712297227500052155387977034517236343682972194481359497222204868669449613395985072772479288720316567985544892823345982877363588567762978727275328498648404777054296038353545389469647885529931925024405484581737085299356804785689616487069680298128215180203678082577908770350739451834169257767273536586354860791680267280085078663691387804875971774780893971318100935352183180167725800908491099365522352925146839868699412979789511681287998235417168844213609984031558933521224551494139400981542179505713557930019521030563272159242450309022133038747373842169008759399137948151481804836694182256460662535632474362625721340884378861440261773380796564188434598778220577177601619497083776846716924736468244980551877528766797000088418177015484695318160501192195531078243262528731356845663622131298653027387012589704918336674290138010206477887221711355343736143284016622551872917794984463363384511056932806649680065436146040024618404231257411055719206526776200946966139758275838732022237639477428813187680731266778416842637894069205763528973409628702669266330378017565819113270475450552511442066523163478345684536069907650222263009151521337865055880084227049049722434908068981026276983647259049366979127236914846307271733241792916617307203969414187537525197126268458630935371019329004685321038649142557433381780575770815263441909026514385827164457911462330400481578183970111201060344817108584184644059285287974235510443929772596599419053700829335209582030527701183873630643730309262731037389367938760907407493240216207813877989625955455059880116709026482808035902306345795284932094964003557838958120477842291922231956912407200820873663748696845544215535551524755858334884920040980590030469497008832642657068684565749191225669486623016126405726221617550584381532453956391993596469630371413289715252118952378930491858977450028981153069068927061379816877401022793453553411124858838154553093964450116198692092470325577132650244957682478029499339802263459958892220147265969422163424012666903127613864224990031426175796596156716489961239782023628716806820819319540885142657892320679776730555689657599267374933273385594196020633898657550304244660474040959308555950208382759772572243525635244395944863722773544609162556424253764757284518860512076973719175029808774529630438567511389095749227376690176116051122921802515228902357597410408929526063754852636189815331798837244916562590423159191567272892093170303793210434560592266276030474220088295016655654460069790110966066558736023819836363171945601805028632401345502984540416314392681386742783715602613304169280119141203011827767444137611397924552239995455137681849528568186517215907543779072069562275843669445181158965466249743038416396809503210057391277723414019850776114286920144546089856400011871282081171844071799846733000233580061946862274414281391634995320913449458283239722066343686016556172767743153241137113855230378130802306260666488425899367157877658067695683000441663665026890830052116953716242423233356252964130934526552820161743954997780741338529480322785518282951725562119396845117516749061869620359898601276987464998566298129306609342114071217081827112041816456068772837430641799732803332614591820433198446332316847920273148286357355350705100711917256527288825880053003858751080947773793435953090554153605276206302143782928923526467741284571234775840995178439740909738508624121543162350929987273543009696771232334714446956161100192198457355771564933034157933391187789129974668181830513331953726995053268367294001732701848243115768655905414172667792330506621758154372708736052452272914658722291193963990901430956504823832673445031217381420053124657243300846634523052898924331440827992129788182689315239831928532424299664411755986695951521218780135353268890567576436458032938751573197989483991623949059015541169520160965647281785861001897709211085583135190719604029942746365095832252808683786521294087353196646413319331324397111395266731391170761423280002633120666347651976498520553562912332147632641505890193942766003798683464303655969316513624220696703349577656747456981666429639333729455396316676491077683910061075963804713403456327897154886722945037238083254451061029438539685295566291902720902891064406557704960905838204252514018855032345620026748055954551786121230709517871297901159721460078533003059150679818433268442074592736794687937020558431931768844888242773857545816558845954019908781734024543820630348049605688602265905064561738885502988032730436768623003876775174866881292781420570597691308312104268024993785623976682086469099425379247019832337021834143577949415555858781121822741681307527665252601571697616054811364053898347105630484646623750472797765496739739030834458643162541093923521345012976075596718810493618126329961944543402784984278091516092047705398303244713877589884843023296653362870773552303672800878400485588734566782028159943648240259271247432790364013922055752813891128422253892693078818439237460584935788610999819171860883136693293981379418775709863201735847799948981177546093357921337139229814014331390762799438361973545787529529451865783015568621849244074899701608237569359992333169556076104505284218228459815468981303548124666880285832537727192990130337441025764687177359980663999760910470013841937660504966898160889116292149974581187754013916480116911109472008181907103803886071374614176246059837137308500036756333147582905755270895783331742425370320005654017680064759888761340447531159383118867335301424849118008278009753323268854980869539213307963907917167422054958994396381453481627314696681798579525041855234047301735107335534722631112783124877690770670229939802825043443590799644374413642043635813762702036462542795941879024489737959079430778816841542078712950221279456538831182477475099710615615262594123866857112445908015850464511647599836062882888579823797656379745927569162518311988412436814415472855680433734329275513339768889471289365147420515331392271011575851650939298893258818566765362157244605648866416848178534121389309773152295620619591801293052939771460711886233133935356115022641005132195704635662570647433906892620218924511113448779307361875436999550694464976382571130590069607141448008033115033221811239705563237566954288247528417778493096345075127420142747561102301072512504508727728214916732923389204838790104891907984267892602294478062082356645212346592595727570101025319444264900456411754486986237668728146525579418934733965359811759273185299305104066883513377163216158522136408387339062224747753667559078248095980409171305634091170944371735417711439909462414965442181895968047629349105680965033199277463859309589684393725686603029847123596753801766002895260716395288035268940805212702220482291530379813322651354970220054733555981297829739322424957617341319157374380312606696880839147639769702952420657060281873267029287676043289718836538327978698483966444000107356541825162649815924091796480887437461261617308140257554508533343084021499980286376999840638934499450888704471486065235695071727649275139790967958145404383641846834533024027010635338958649959088324551205242382046717697078184750566638570984880270267823403781116589974248168456752487599002127870759123576752480032867940659041301196114046901932227201417565310508965954488310277893371226657125918504388878885684633115701670524369146176993008351831111093942619491668374684814800560702590184389890394215247235697314067343642867021613768264196468435532195917062268844627789664174235474817586369466124197667337161770612538558884881724000510816679978461920372631413179043967355390209827298361731228815160806341988334446304888728554086492542739084106688993937200234361728933236094297089100704485267069617939563750864782805369629650072650877475899986555028277359985773195629690390040434880019743881612495935319219630403008425542678231360620958399863383026473865647731923337962875654404017040436154652887165723656599635585622970006223667510267345291429089597117306469475548834938256218814608706353390836454830031420631367228463761491992803432873874697965635005531068188216710449460462942859628486354961857000353362714375312570750252500385588070181964878929499895967099066599362689961912449569399083740975933201264515646880619618496504337187546689581363551204541683236455698508232119080533671835220170639262106633017458185951303743611288392300018614737220177353479679551302532962404526791584183375618161751648845021297408952367629540234342239022024573779391655048066812674060295187679779828211554272519671702488537683814141414045272297188240682516183844026479836250454644277023964350242702158757643970114054596740463759414091812947901519330401175145275171133071414790425680748281040339542854402733090784104432446534047261247104197683764707990190523317887668278478337723620275026821842911988085998470764110279243301450823449899929664018575717206370363122421030707638108206441912674781076008451474405194689120269197948012975071168972781969550374894907794738420688039169877384308872430757684560398931022851545165103486499540621172465007903974310947567057429864580027927638728909793821406351776491303451317916740475571756398765324950448152394649041560090385034755517037881088824441120525035440991157734384932681479637620596227834632797957503654964189676639962355453558139797029502282451597966518188697924613751558640241564002859737789162527125975682135520265706061988209515830181676907991087931038341247871173422671559226158922135513609903273182340020392341119779576651584164068652600778994038630169870814145203721154607473346335792807591095641835310775025182491493035587860534228080742805368332165465915240091141582350006959537678274780623933334352200303510830693744425004475268636283762276034097812464849849689929310890991536207090084515425789700038083224669269894204484776474119741817096510204388832050878803127781471257859707276993065786902318816959551988383682225379624675794350031484129781097619421276807085907906715359552658383143349643348950982441670566998741396010217163814252532838766456895980754818325346254845703022071680399860495440822449185007819356823365838087172213093210182767269047277230800175316840740051726454199775610263045652511952956299878087004297917400946741804444860902596025887245177954460451741014183458005982155487521954582350215066218505835153379932186162209782721504272528840986221090973853656100273017923566482290362988659403322987988037417927510348477348777662263109911296380732199825869657031309398880350503003179450667514502211414120829496131789312872247175089665113985341375762637156635404057168142689788876985047440627564321634985842932736425143020284645235506708610906991649310919520034055678784673457445811805196407045232598142346510084075414159299457969420862006876834867674637236145379160687694046538588101575655297142327802277414384137041537365392593748612369644285506548695848931781851881917771991569165815110382822615495745432663399006644273167780694714112015617261917396384225404092622640758834870031976247712421258774780699693012312724016801586193361628807942182751742103821207067404421462481737903851436417208302691304998479711082860678012792764166589259365930115035552880717747646012521961715964090820866064874992526421139031331940085083614252882161913260652244328190710062604123912891297702635828661068825320662381268873129874251321553794151369355399646198946733336937031980333003752347261586713321458083591762376696070195696237119762300613973818042299873169242676694957955392928074471723317136491095747627741741180729561569285738539972526824463511668582160007748309442514891022666276419923411954909515184558903841537032973368281824026364435051652789601832242257422392939792371109855405621335558155587104332964981531396507712152504683880780187680230690827097419104741564413015883742024807098094186856939604085248221907852871245168352004548974783597081196629488816085038701039109791562188043714942071035208650794753715715373124224118187734131340663073823249580655881553692703296189672723796495991176602108935915687254158046885910196452677110874939923059230803047626645217987058743635993829237040780977513227918777889749620283890208274410012345288849368160494512185388465037580355351335210168484534138891946100808323324024176962994483932107398299527368237169072823063151287439772071592531663258388379165550929106157281432260866073869364563309150499744349935360243351958268248761749457960771624940934169336770849101455836590746030195478434944774455721128282128096024427579108002463785766758733110632181596664501055685481824748063346703512148909583739704645232973203692312403538387282968874851352855340163303129226826147142103814603013437276473554521886174588871643660574406068201704960112880984688264390953518295064290455119864378877518873738330035825187998709467281231839819266286289625156865201982123613126729505354951725924629825102068592222981137833268295858234345270968866810673878599935955941124162530050054009361290059374469389919847531126156431546226591720724394137322206235352509399262228660327034178681898715234628917538948153606649012642503241356294766838785669103641461354832560350429840916945080772771556637430243841558233137684800893897595078786090329010674964123370265141041319971163308172758112315543539398429060148327176023364419233562482701027596146880229310198321484113707522156313747068203463282392340231565829997285022918506074360911085445806412674020541109256048554509514343214773687907854712956178877778120043425766885015905277476700359993233968484217667851981918701743804336135613734790733657863146445214494237006355355643543003241364083810188602381382392211146975115248226825091268182071258181856295803368686038807255734541404608316429234754947032765091331348006890635330579700502730278946634427122996176566507755752722681168429848940026909970790582289739238668628002188455445017028571154465663347591093832432602957094786557375953168923377638807711233571621034175242973757940632998025951060810820955419480293407504714627634763463445632389892872363186889343496729086572515233478940722933922760918783812588151070340203495583215663967657128158262477606471700029074565773687534561572895673253821973216633138733880538524168809819165460248839087794068246890137980418879169204144763267752306078779689024135167740008363736510777715920157071052997884291896954558236931670365547423270265609263461604601406693025517051743043586643931191955153186755802657495799061956436630232852123994870657075895933548170280574221590360034676802420728662076153148608658901836274722818456284526338479209130965491198451857849299820728521827718617444787252508726037740317835917074075048013837415449847842309523072275347348792322497897831612592347517778021934943175171860976262665917399254483714065195969617967544550020899966297795396980763376220604436783434486244559958543236182266470636698170560755660815211020734568751598563106252738615882394350328908291356793256239831788630970878409734082053542387689377879022437792570355290281165247450624064580930725072692514735791369144764861070797817676730618826837883486583217038374907058590818859975560065734990635247870443299627445276645828153220129077427081549897842715108800437235998747680394095244569895540746798849068826350422537783686647409801344124780790819607414558500527208745011201302270587765451801955213330214060544431502449213836998781767558704791893256298125814847652901730726173261258427345007499008627748590069687638223250984088216408834261480549159542416279553798631954859443657708354732568758224320368402952321653302705916514513786568307779171078385665331729938237335297828662319271889781618125348739068253811061740670509027121179008916417869912523655906713982312075534685934609834324860304628240110076596345070578521457721447605654134062643010416462360902558644466746021888712020670073241147708996851896515211626857114749854863183799679527302138602161462152136188416330902048286376726663372810611678126593783063067639980416281201609301114328672072923765995484022690324934259745417222943631604035537312302931724571160167803806520878605584455024427219734285869187978173753041647328911254783537749087891706428263165105111426633342463659136746231679567180161433895286089609109516088480913823713018909887619153889040545845817838916923973838827662875258245579757168275133420068883512453676773526819840190065900941845484038926514904230611236674241194406423449953484277778737797984082063989281027932264779944965464721461738788180715137504755725666283876617128048612838565525265332834726346126523390077364619398890985517150706073358713405757618174872118083700382150550518609932657247042840715327030337138950455669336914605788914470932758682789260768815859536993078423509356201304292008331649470243862629230577644475257419404160810298974046143310519842251947219332984405124918766778460577357639989598232745301354101638466241960917723858966183099048193147278221664821152949141316420076894327834478167276364510497610427348665438425187475657178950383796276447161472032399350706855031757660911209713575998916401249890450153309360897337172403565963769455190056259037880909609097016675694540081960813921331401289565372404182925590716269687594533354173005506065747458129243910623287722674198234665396985677541434166576904874159686689810584147900448148133393645963892343668786243678990726283410371234287811705774926890203978844447414781740844787371845150312880435364368839218405054557595179519846896043753909489883299637348683612107045507131916123330521395222351272091573932881040288661602469105619861971616364675133128763791183071996347018110689432427094453619076633840035925765317511253770645905925556859922764270866999810903173562046296174171010950358215639379914086701229595412525478767927961932229839004123511054608913246190752846861058428008220923543217182960497232551361528346218126178445222029547359061637658952609896878621631828873196968542721750620037373514471984634237894845241707957436182199171657638479770678138491726769502207543000706466503605405494656966492084412837578456528706204333311345067885699509722963547735988535531061235600606272194652134930444989807381728024245063900688159516902885339676878250429067010685081009006557106997643863538381103083764378875126516224048888553348393210666354210851694770452750765338640016524322893437145003028044570091797489474377373597125312484939782268761393899974442178786013929165460840802114101798481482898080477038888155180281943248879481451046980352819196930570260910485290648636322873925471464393308224105982706736606751452414022250443363744138690886058340551691406742265858225960169441856603130723383644126182625109389026302146440697411367541319203825079962566088755423318251026740141891508853028633320304989235364973900587490375273758397615817105768050292621186855694167295279997138992295662276215657040350510048359480057013732371188454179329885837948480286549615808188011588300371660448265717647434677326773745048056951604403477604471077638526152023462944174462177651990285490609406013489927699650470410198362704269291362334311961243988507107933362855190163605103073230901157307231414024492255253173477041138587435188777866908406654650011282395280782457871967820417014218196878919857781684386362158206619246146422617115321946960590169224927236614688260934388131250810808352592132889427918418198025130269263563200744242072790622600577664719204541313545951578839657569292421648947860323914871796152860761371454856747705389613062435505889794953928303213002764941632361849252515191155685945391452596180828283165551153980833319081996702183392027726667036211654315249748772042837919752580147861753058686548154328416241287726102922577847917036872787334563267629595970880214655434049682207566676114577806704856429943443062780780563711005949963764574814810807643030205446738102151702883097778709806921563692848908834512260564673872901680798296293129850351605590663892820791698246316950381705346181042773447720619248877767552735681011516586260587841496092913368900174992360030906963702413629751003159624993605683746803825453853496562905732365363512070930849008079948320692999688861742470963822916742984875942335503783517657029543081815932129177974944771937282440433373192565813583581575638371098233999221226170692992862206448767742023431158275538199749347487090571860463521218554790457174371937681449604614872861017131766157894768346221037665416393816165165323145488989063766525795221781336023122782139852942627653504930071844805031756996217560343087934238387522618431266904448343507233208881188406413001920502632211351644303609534503889666171482032666392328600221178528443743580655385662736948446093558700573661180870214868315348105272433309370468130642937223733215157542183120876205344412980874889975811937519604726919406136936349877145073458039478425083539686515727191515602876446095880613524398057907845594757282343693626369813480039850981188057777727428514201631493927774760239952110280688631627360433572675287272749752774005983037844357439338069057330437567409003703431623881678095688241715066160388378831371752091026621130436792046961371004230057113091505751169218918722964492428210400478367503026263920182619598717560592608210888142370302694973598008495008356757203335931665730649580695029399254029454360464099746822860281674552257954559903813843061523151434685497381449248805155128094471526230795717545000331517015923114733876774550329230899692422200114647485367035806149586437581193715864910256232169972208161479606009599610525668660819036590612579771257799812521544611952052279000562710299050724002253202183926645750539106106381368775073498348405514407438187431101133310505084304402131770080543200454248430566481525635006222518967110937868741440925963184912846862434587612256546145909712924643320867106894145968345580465136601884261805935526458039727489145196085551743205020090616599509441429989748527565907894267804058905772240513049656339148315521196038236389383579065614290967631997960885412341696999376001528283224277593246472418797909863102243650485820948025938990428717721937220688129430929390489188367105092307772752295786397449322038972155044357740141787090798058734216125975176853703266454777782158315983996635707670039895249298343620935859633156660783287671033188083100867783619929580069039943759713509065544670457836373871874143182753995203770659760693688953382085556169269005076479600368220108673717877083083403980407523694253674145618388104846149617150175453321761376507888059780991859849156519646406126548681114105357406800303234432554016332471636175344574078237621564663868449090497809554389702060345466473436100344927903733569640439855525819198776281306414957285314240252661774175078723620389499089902463228783009540721275259445962971542670014909388512098385533770401755026982609337307894910381932544516052609767033581886595674614062459177804964663204468293454242322134106457456438019521582042534920703393157912798345526892887194591819232338398450202880347018821624314729149835483557478862993136366281260103936532159900513144836345748040901415983187092494645310830484549020416186524261829512156657448217710927737197385341088818471421288915243075381806017305218658045950225714469181371927235749976385356323190661477078721238363723797189207146978604979669516932761158504615167868462330713054741543674831046644901320022917946657324523864406178146520240845776871237369075906389835671090486764095508263371869844752573958580191889770329959890604734258119116707032883218897301803940606129140171037886225634173862178457817691617995673728169633414383098643300235481940058995661856907792860766797834772258539334147243705516651749336837687745980469974187985380675611396175569854147481019639449557580407664351815530387057472924995971573375982246995906240867943668034097687408626625541471559364912679027848089457835952205140806919254321577829875850978410572803164505985251516925444991634709221237293785837690880419209854331638691967265102859225225822779121601903187709371355947341271915172654843361593283836522493270771421546448347832969898422071258853160285002166511439594926375784802720780138972774210523464477066836039697244633327535950511025161425093146514741927365057678237948922238610510477550402049760199197209787031686125904128953887285303109381570428115105807343966063479420986422357229945958166311876208342870138566559373345123157322634983092842614711968602194209862871972956021419328535829371428277501993399619772411697974834773233150401596156847881158125362348900736757379246771086027659562171008713004107817948154176643851103229191072968209023931705112070428881995749806925637831985606817941398098602555435074132658643309802577812251712405289137607447837915862472667638821414620934595264735088936267593535409234075896778437263952864244398751805229577256345217297727307912904710157183752565734585609721220404225069297588795815435922801443598449418904475972783341213998072964662013712464566876269025257969043369320936139640489422418963158013857551147805327524024674625926018001984723572571971412655976491113579732862310786965011733242219308116354808789332042488969935341200061276088354042125686159942799876266593396947742156101691913169142750318588602536609963556059117185818471465238747327411344475220181291783835214930697185024016701965909292367918140782850916260987267580481352499464714992377900857419545064120170753976178867148383765272753425695066502178056436847519220507554311346741674973390272212940992962202742968653556965245719143483538208065597476895757508373386078176366305567338566066088746613329393310534413474528188118017588526938518856085989116324140131158164667873808534574151458283194647510794066337823320294736307173757190138234582968764628419287973376671112261374564448277837810335346486603704963066684577674445202375786466926968217966879477902224517417303677625355502805414033839701913415415527264463321660219153794507113766273705818129200100022723221495915548204028979613290887370859984302246507101712238217715586842155001878379766018133871322835465199153246571164886251281391129395278188394079805934091232684135703279465087805963404467286339016957277474905918055544392034865527810581858757615884660038819607381771372979590406927419435796687785121854859785973039129350198254140324025785209830280993396987471803028768616078911397459826944362528888853466715641857919467441245574723695839077169993415894473414990615153867429688326894797690141204729348176090443471340971700980666867147770180482936696827684860905620160739798867478922591830941565038654861488970306902813213042974570202385363870927390867419861336656888656417714063601277735956414578587466853570400785778668461566811284774601873167797422412777595698788938020979312980583760332051960861833595344944443035340884258566764960469839619552538902590183435044913366965257957824873323294897466908956501220892431533311505116458084598034653737321618237069413690345972697981743617289435325176849785575274235883825464102184548844257695823358491164659560050274844556390200793563027202001271855284500502392616712829046449686803951318895369363122947712035659357824923857139774600832091253065229149725299304929933529736565539032949146416537690054098198833220724078336835791620021761919994786177039633567382129704942156363549132632691822769231344071653070786410261397074849591292444475135150572960781920483573290600211904479855091750006684736904142881217863546580871103572547708095573053120817360367148685758538292536041430025883544987565353590499225794664662490451507581567206376936450888578370437739892446521065504183526499182201931644174107392740963241376830053032051393246382974845185394217363933470902697209844943587592930262380309898239960630941462218229404814485206955424461385764451854547674796468454535341444963512299170753029894954305657321144881097482416442296577785033376974541301742140153569237223879863934057431237292511939372759422022577944306758862731416100848848355235122346692711365809866932929843760548063006850705463221017346948864183278601679133349392972499074918218336679601031552813847282032430251043369714621077593198214627046634238577572258826089050014551130197440872528579958471367648037652505829796897464964827560280640381173871789175573003759241452314502987221214934199186863261119899964154695439914583635867871441062200175553083453391456188777058929326659449332926324930564469076770794342181984240397729391664828929483845030320499383647608315050935027345422922526651829780184591428205658125423483194983343437764123941026213519632243952793263804856513915543282902578166653818933384762603585140155626376141932870797156354804928942199169630724443780861100486224465778492747431530553979132675018107983967471210691428168572244337060995470240051720550669984298945720031508241230794141551055592444409432171204215466907015662022936272890058739819687955835950505314327948108068401620676264779588303586322630671552234926546874037180542241519141109699067897081370453772442341874823686846392642984854143585383308755298199875639210059028688699803548815020232328480741759086317699532144867458168123946515883464927891747848196390269725869352483932009769620076014454260849143131608475069188902972675571612183176093883639806331968459953132663737233096422455078808088181123656320297963801544648592671086985271788041258638978359536753320244370346753580402906187952723944763696544806345418148835382507127879908376153682063456090857547993162664369035282153135747613396075160211091156438899932612118860086469854746993738417253814681809939942609691048802406552186519877927647338083760268576966793640391219366821826554945885839685333698650059112614215492759865319285003239133477607065036996397160454261117959758032280429024007892289424838135532782673160049396484817621359488678699127153690195578776215940096892406528475805919408772832720751109665964373029873551250781016813819238485384628999363687156879613250643883329637047091770015160096421146120289137486396770852521412541129024628716060497667053004460936324264836539164432946840942407492965342212516445430502054747497133797149576423870280638823611977869655981262253141738865347254076644096228948972453391782808162931218049244601598236422100581860741359906800078725039567226665197100374588850460758948505103012710545449963878827827026526093484924554385795348595014152290299054437325925462671550808375609488498150414210993976537382828470991102973754388979051320796452432305011237545866525799770457667038415353047437734197321633035466669589680290598557957649012184988043091803447385122023700700180318577393560397771338083548663233769854302970958708592716282464345763982518865169274099523278361488996004294061649457268508730376561516446832626079799621098822765307280620723787065802452480964011626279608607317446182822094860766533315342648100038558067296854006543394430054457982893065844558284728993006943972623817505750527357612040713466409727921630343895465649114991079941563489058751074623618044787021608188015085096967867348429690663398617191924224605801686633834918074560517302027392216826712649526973293893850898782496918164227857715248409448543265873414434159938213396727376879837901232600152291513312678109655558568117026212862201746209122755422107338258845891401928498902204783421953356641257453285308207524847368490220598551444544349954507276821502880727585179223873129061976437965947103242213939959583766363957096060266424410718959336734060965206124065504061707701962454606357321221920787438559564648861612885583556394640739804319445413174352655967793055857425092342991653805583820792920150740189640422356037981769563199215935038024016319971649704036206225765592559141154092582136106884607574070405677372451982481310813316712150384642122812001992778581784163868463457335764906635208774316285659278513030491467723069093812751484570037368152900359600199639791316274391127622704191249361901722806371906388289615352697652792428201516924621067735918584132084805837063365210963763645807051317589988399671415789603671483915780206240181885428696439648962944738156309715295094520982385801805251050008467997357307120574038569355663184396328657750004366617822677805718003449653294718016302584128303709728765886619400058025693452609164925843812699777609467720101775265569932058609739635503539865654897836564834071562952176243005592351420320920506157678565876565380488967598524197020272642362228376632801975127630187851505867049365862145667084044471470204607632041122395041061877956457749906952930434246752404381353228842885274147607079998778278050244662656120128841376166512600240800751996869620063127475507086668569773133131251520685726019722876616689837891576152461081263853706647174316555757548359108157542415480744990902896497264849828530216120269369737628842361467466157924040842961333707486130099473057532350765187052585331148341002814926124137076138583198585196405290177326547807942535555506951537766641351372824695599146852210112165845367846340653496798490918096158249048639165113397110924505296960650086026547560795335698918076491044621381152254610473013542334900720129347853470611429928646531301373715417709401703676199031473567078722424025874442535848620317278348129941470904773680355836930885615511941105087341526171263482212813843857691498780024069748617412502202797057929809036774174039341182226637974951739436670108218140848319044000045574969360404744638334366822529322140666413152210420826424940605276575079978675248581301132690172409085316534083657359619407186682023176192296291527665070552717197439690795587958787762397636466020550516136690353862559132335351393840165577409032356497399951725322339290421776149926105178893441320049330611353183805824064706336347073835761480687020772296948650012423609025868113108570672822200252526939199981076813716755288355213568207583767448749918895231336768263860995491888372642739184164408978811231753310321097038610866601009552118314195040360660689813388223413498546435995263803403296770675131822954542360641664525246394321638528714023804169457596841981852212754289689267882616337247435542858709359919187324713552791939659995198608870732124635275840463988961697731451170709017876129523998580777738717257630191282561082799856727035713251737753356382601782428245286222380902527775891565289018765049766884065828391385095857663000977757833934891947282515401082828667800717459362719401158745939367695478593975462343761378350134358319003825119309380903022084222607617927114714234238924291529784198903770432795112256557419235516592222453702346854370959020513488847924148188510679224391223079178942821498739155567360047201425906164799049891604337975929144597900290616607968532687630397235102156520821867381520788935915356607838110749726711334584863273812341037159898162307425523092370109944737452063824999810852556550747911419101525767626132816274079499256977060181732387054694314698258205291130301988682749123527725040636017165258898143175863596117101519804013205112610433740098541690296997018924569347465012445020905673050101640877114595626157126422499061292858762568114338652382426898061501556635957752210688688484889384527905542592669874742372507154387928287444065361580785270855039080681748334326084218484484745839470060585084469406086982999042077938526082374325617162292917392905244414925358445231290734142919521915062228375476171851080843485548038024673936072865252215159870175966061418740778597431841554874896658609765855941566001703975379436105993431343131049042903528343666500108833197940893552117627304154389723845262058431859326910693669842024753003848121428025111789517338365854051822896269266463315654395975430939525286493472179178778857926169781661212658174629732273333781071324409337028579196796725475893256556343532933021001730159773333790531297348847716002210880255749190570040533670232541487521923460109435712174977437650263379396500077545428691234205839181340127940001955285860194210220739387849334740302242847765604422572959965051584723099298829382763514553753200821048181062331369999029275068764283908824896055688058976700330584490080558225781056476777770357112694685655937383679806592243172878571893518384199745380651924653176034732208084319827784486757394352762820747946486398908054789122688540875685824912214928962272661460650072055234908891090951035132282259066243942782283222368189081326219097640645492076876367760089293307983317509921831245505508373351370165247680415801874475962317276080211051875890797991385210539065408138512087386004743506717954632068496266144582684738957368011704813336775990811135458513035773668809687564409913553534086318849037080991483864036073456455760194692945426622069241843295194459214260391956588397897427774019963054609660705855861601992816330111904111860649512066835666894439182872455463358742661142147151224524383752967791541684792709208021177717322578034791881973681622911973192408609802022996466173372369391516815981316544468920326170700190843933537175590444046778565022962861984465384828443040121717676488760840525293175972354195240128992977679617022226847947589731850495831431414165507822430780749420551797859923318246950222894504928380875801750355660694417297191561194532567030942046435926514070194478514542517017204322772524314039325933654923425827372349976347170147182307737822958805544476984313721816131489357434639996812121085727731844256192969657749640642517422948932095173309350708882490881190921281188121887671137433509382991808260602828445217073305384866771461806161753978551378567749015648104524865019417513208291705336777864010971630902017643059872615753864779298734655776267867307807662032031406322901552901934249153590430628930327064382509152085205421433043611931367585776564016183143445224100794198013196912554153200162973501042273093409612301525213300329218524087255950721569805102374357045776347858848752319811932775869253203354304061990650579875048740823364309284266703254667500317219702206073967788423787474990326051990898842849419985002076110875207705595568853576400239393491351349381282568943043099338255091883643875445939163978079270466891367064214284016413140159042474674597256290586434020848156224721635963895980325531968638257167936639837878433772265465866165834063064619378324303229282421050269380045344164817339382231805957224156664015185697125254289641612956506855337165615441060190627213033072785711160713263918192875699818438799510978486024620148216895376502600001088357180124154613002899852471514415096729353389475686111052172947944567998827178021487956120877512607060835836464288642630073625828598332348760218028715846604121561033557872507694182115025306700455673044331989352698487409431599128139765020528436910981414222342161075710819583512848236405953496047363999279775419317312821636742738330030185192875891428212134208298225358258422254096845981116299748035755931780959111297972949224103378342191226964715421997189384208403374477504856598580997903303137549192461891305733692212125823400692670471747462922114207434549826322274543381219824786339752002860880114257787623609557757238469200225690203674177598877859107426352926771423331819416561562347483126024205821524882709584281842923510653700549093010055687500228541581331290805978009262426240142528935014899349769270335335186877089548892213767638066790239104634851972652017637038290569105593065892844911182605178054984107653535519671471378915535085855958726376443745298216959147843726186863459650102095708525473987295486069421035271106060367568917174096696416360224733752561589478444149825080915513322369391824994704577333266679492346387369752191429508840217784097391452784308148739821257254398664862219121524479775906583431745836470623402235417231184284486778454591197105228532234431469847905171101625997026968963658226056272329278884390649438558406879827542648092702178428612365785130887950976980674568338326484523885014222513702852217890972259897798571737014626696294857529882901373386849992323886032173882107527255363531452534844039806583447651765604367570918962227997072678908906506997440262801751222340249682674294658306498146963223434919525800041304001717340657427506697106570772359621969871740454958007680652701057036664897221532215366916231791587035178489978820003647266265910418241947089656561866035055956187531702673047161811335600541096862149608593218727160950909980356367375477335332981943606645264901530301772879402129738752721071152388204082338849315534503366450327427221807174335308924287759729792094620939744389828048517430483930325877798499458309739047427074256038498891199023714820682105796435944308868866528965390852485314161975581528102189734342674414217959481019883986846148164581819590238754795884776092338512709855631749327841326546495960526377112040426980946253175507607404452011439863199048890698013583661573983688503474811402042380962392890151005765947245189461488753016222855882276903601949701308647395493376771175443066975073323868526813710564840629237314818364671518833074158572278307565661271595259417384592531730246808326382164530421086756352771142775278670738287283624423138554598398478123078894649719692206495779764541540864952787306619109879540538248867751271341572056410092726260974762913569920650453518065097811809201503708565054249008993000382659367118231341624431018973903813630117651101716176732317248573311997479583375688223266192903670537104908440280017993269268171296161713884735798629303504057403936245677372653652255610911435113216708957469701377437832150598944077619823377576031920277470134696713306096388238935093408642420127367881850953126876411795331201770203937658768909913722456870033605855009461685273788281773986848679130934450254071092448546280570703480728135317681733277526743990204857634241295354148275414709098885313646088593818949126431764522148483969662626233577485728605814387386702429958327069658611301750837502269483076143739351443109113348824835369418546720894462177931341358198445471742711979669567212355552796372170288250551635999499189803700769814596322514315622293654580924520148432511182699964896437332461957515940581514973353337997354628786734060106189746768527474534379752827468581188936739541039840440078242198838638639517166297950059194323960986367532745261674160794139913581208629261971324230855751685524781134280955426020644393336429677090026484189500906116594750443808760096136128828104594483689995714449806166949878256446818630101299645476940335499384754606933120443344959105362038220952674444342559085686931284175369917127399081751219916012790615339794334637843372526998542407572639350663768825886360648310105419901327398528817338045071703426683154137789485000786827859321526051176172808606889385938150430718733265923863176909763375129931274970635413874814996448934641541338978218289539288156586834007922524706634861829874311568847519031004328279457685903574058576682725490370873627060950576067589023826920743549938440584301355113640428062810454453234386963596428015555891456954316644703436629441802021754647484444501756376015849290232099159508787135604094502313291483377501009172634564677700615830465418607854024965064643154082715558923757912059801004739172807275182728079419313349299868091766815564445200596412600754102441583883861288223987904123705778120297435630985014939738367970501647604913232078736605512632886054360394389452110886287954739930874698973069728267956442562918311064776315801045856471378118751130597428672656896298808268297222527319365152507304912112673309107666509396748649677882239078301334548321482042954522509648452266430261181050342251168990856965256526470702050558736323975389557476851162854240214173973090781233873127649903170179453430721196188782395299758202961838914417191777691254616116307205852584834442784223526026584801730908238661711228277662435135138378006386321135237830860137921991652118082657505432104436652372345068025689315349278586063536245376750243086220929463918759228912791284349755202391888497096616894679125498529848905283028593617282626345914492742793929838985194624914300284987383050480306868071440275828812105036187175530906446774168397995726017329849810161944691264529135793167733640352010222319088283864591738705949941401848357543477015732117096010417364465354161100241443107386416911617750976598796200745990360875716671456652003094721084223457963383295966417984153126744150828082327412315400804647329109656420772241619207031520886914763220823591188104615299481089426337169882219685315299528316906186798086111557988948385850057395122564624884614620482320175453362894785097844223192099258040429930921352627807690520818320053494223252897178973261161048259867506152385011603479565771384340194243452358331746447407302856262694536447795167076650857454023997088888942279653900123453690530438948706818664733080541081896169863122139514712752309467407541395421239018131782158867690266970846477443795361993934090579631745829548794244851313431899813877052541600856762731794970932199256267075865040319977336908005509726828190678533023755677794537822518425787798254148082313096724113057355631996855264655143167190902018181162221483422466590808554361722321689730984651684978206839016805575909822488079813516075788282156305664644229589526768155057240627591890461686126874525013427185997224387243955054174752507614640726466696518361747825153758335020040635401485081450771416237370727173006025629136761551975192067750817654306044767557459241875866662582350867581190815507848797830926749381304765091604470322025507883915998194308961133813584194576720971789426824660736014754533838133227157075547467118382439507484535047959475611396434881862325603892617636979424428810249887426921150147742376317884798752092979062915169983228552701597246436807961359534118611552836728255042384949591285208986187641239821415787714866294854042608863453128086486191943863980696792374227204415083376558713083736497452851074203187828888653500161349934930697625040403000372929429956761642440277073623226383075870375681825076663583341339887521470354273790972746050758113300837867512438676093321513362993789696296989283088053400586178847525287712458333889754913642588963162202652779365543962407791523219295494255134841306346230948549754302465011913794325721225054636401283207766318433362252503131882317826398442299818414245012079938998642155085217257770480054327512490221233304061242140694635289317850101970061811951302566871496564433319344496406011328645219656598552898486485971546456893185205777399685544555664807551578644620784699067616150836229769659276244469297033320370327707035263664571393594632958183876809768994280944820283677813551057972708900911545849106659397917797179351334245699713540251589446392984597319550338148189677947776262586635077815202039140933904244064548689962365689485567777009314144152767613709440581315858975995143915038031281470593545388666967561754290149803503488555183610203566766380734520199101588510916085925067985429711434357807474933717786841746061437428926411275574703977960689073410227197367811090502605452297829825130520956637102721695485142689285518110420450083064804751879470621520873057534056563612533107754067196209384141085469876265634793888733502142682788272851929204279562550286150049034508304715623922763921448493173655824186748059308720088533339813674137860445306190106385441560413673949317893381132277369136907768981589259277736423170213899711058030588698243920166780872798281260610641874072979919999400547644302027487424047040780859866339132328394987159026077927472033918961475075322498331374798662089719379573162003147755208726956209571553846343399219423919143042956895738037900224829983760086388026473905262826559426472071069624102163741975729907692612926855382755699696006220696960925708408423540148778611071107679143840524331399961409618232077544893071691945846100810405272472586303666791422765195506092674553609180634734424966426552924092150076422728333798645292184426174730442355856483815078250086454663736589364380331398397608982977861512691535472856757366236868271940068336725323043171993120019100698073466771915663133661818113096819362260650512934416193791856677339631870321255559786196618716404836642768683856686430109618030375517226980193395070113431208663715562750692701102727467469423144314585076700856192279623769490638103321728282385530744213280792393782422574312099170169449597048080492330938341995209213029745566160431394303455115926668564035870878072681016315089942457450764290896047011684895998935389081142485524056162866686721417339146916126714261008098204642697213775892132626280639013185819970808519188452566378136972029571349313770948091503399774046942972868850963400597832188531453090318363775685108023438303803885480927711876678074754640971941408475448245252352646958095001027253572951799934684109672125361240678729998530002819701325402739851375565879403758519645178767615375804164431777537104086361376581702818950150970390700913287875197372762305026731463348617027804833782520329391685669526872790405383815515030155585474272324892902602996277073400329721627800370506800793221020006024710287302926496888094779058984540123702395776523840868641727498986631126193258102776109557496942280358631529205683757796216429529618347861020318857684367617140527090516444104536302645288664993293227222018474149468727059431683523468192643233595124804725084753035477546640812026338141908178440114892465343694264796710302330386366356404882905072625135825024756324686530011656180837970784838964289001464328466510902497911299854147950006272470542285696448987510330142316554733947332300082883037209316575648290606487690396790167148211266187318809198202396437215621445226106299899835344096577670780623043034052828627237611838054770590012388104545200594654514193463084355992020644083900137601525685889625571002972375258138304856832921961665417095796998271729914556719949666104272595012841925324108649074294271570266598516880109064541564715505929662895643746446051349347748070299024754763663669029848653134809415362541139283758237912269055060713496994101219115854593837783331554584347066720486471533084280177471511006259047206931649450200254385930008992212137147543828775817747574559608778436818560991357146256194724013332874420228478070774342375188176810399088252941220201595358597584228147381291726090930889520720047527131916839418024848135272369130393183254142894613818788283334569279591199129299310102296761634350919915594112667118146979426314072654413485862643834040964727445103006850821234982656481282320220043511785438210209805450947218396394558794198842419272295625849685127893987930030512847892045515333577309748422186829039279865109196014751795750031355830304189187139186025723401000815386671519228321679704133061996726299126978978774067238868158687554568576653272547563890285015141623001417699530097457750743086413752035978176042075822254403253881682339222550010871315618950798220983686725376586222368084790341886435919571500067013237274325951490697732457877095444802637859157355893996849306032511618566489160043900886794972711358300404285688612609552965257287660632903578246243513367602157525446651758573658205636993042027972205112965524114867213154451066588697132634131282256227639145026960539733355385497877095229786412345490483135099436898145407293565003420485141881485684316464840394585773355865586394031991413970031488890174619614462098501468598813482779014186094101747926070478780750911341854613996905874082317851224363159540407166627729859732612272260514917727885950162757152282420111465794601804233905925481968782454529744277412557043406627739062541231820035690105400226953920015525372490982540214137433899212376852972418081196225977737455381531878445916606289644739686637733291679486188393698347751732731104136526240927224196823514757117736892641156992653302826924348220145446696586148608360072193593464148592253699131078196833163930076220388531587393932582221733504853882345049024237599294838654752001993270007900082618015374264383146136699223482983891879970060768331909136032979267935136736072611941008179736582038274560272988295721322445402155781672537765544538272538232558637501371460671217722684410676751872637115165171204013361153409302147400344769469312464790387953117012988688624806058305141989135170342028438431294330629018348259227183926056301560048591326744283535700045515322997511492936114634845982517543433029530562873602060897282263429023358486200251967039776513844678358542456043629199409086018438709136067679010888683995905650073708229075652887038780212512973883934745524892809474178617717058039397352928480544576669443951876021041723931527394478160540427799664050607823821731335218318035591378756783696404973233207958694195935815332543218841989501219183143041537960359375237890964359874752817300949698523282498188048290596116357408850436398054149922884789709634801764715082287156561958659107079956894362367932929712659778695276814304213302379248971695396156148471683892701388848687002984555342239414681693341107643734209892729040251140524845688936860724825296782289911944356699865906327178183147103062456375590113638999019842345992407803016336982713781625312765307166091463657136286098765962990544861052049178744969451011760863617054000544393325233480918477600409961746539287782421193584765830844424969404095694205166670512099658542997882291629493182373072941166346777572086257513630915472893461705918591048471098269983273365921490565150809329659299222787622012515127656566455098787381930259651764405679434688321873435970374135926949570032117928150488457670218936894058473343841647077498760202809194913090342662728595351599860793381655599499291111851941953385718575603238475888655926343840274507162974186425765587631950878977176338063207451984906467480570934541878346627949131329110858088444603529541537845490847509817917395728272258800189633153562193161180732950080147541433892441801208950831339348561286970671127985537840352934549571431868595544974342760314968453723604951499653042930918451620116900024679720897899955241126644663189271194699916468768562828610137068996703478289814747864677297215664281317885021561503270342684939956228173409008916307387275854437077326195501682996611199377826612980590701084856377118520624673987998882670757355276539971138273235615248663179328009528457072725418908475442436802439808862223633193067194650991028441332810462415907539149162966757475783248683030763588323106164137115919803200089173993811162030389777486894643281422825655041577156573577688544428994845281851691445082112210893534833593303466130905196803496445836817573556732723552457869314533853423016395354801870210930342814709048528872905289725160081173204573841415473588258761817715657141645084183994489876598123214321671469175538439440670184950809196976131674076558224598831524840154272714241142279086754450531444664446648715109007459481615117089575367381531988875976066908672631670060343442797729515529832010553609822337803280436527735311637311332631488655293123359428360727955627189201901888687824303433684452205927491569437281513475364698069388963964088708520266155357862915837089333894424836022083244623199101301585112662219410942574718142952482096665472358945301568399375683363771407865628151973369977428015849490742614370233837379550149700494896210899341510433093566794855147230178515890572470684621130873342372821085758479136211270353979104923050433119206679599971380740015909834419789321550897530783481878098474272680480248396550221719771902914904041136626531511774068497677710624499054668075980375649368908142211080479880612327501234451505608851916946894258035712799628424865968165459780002463014326011141034768583827621148710164286569785788395707620227654076358453555701323259519434097502515865574377150178515894306044034891279572767547045485513773457309535906689112719874422256178672286609995173572619899910877195501887143394581189048309031420514660491462416705859292475381834613146462499725987006042757428919465089896451920643585929060975229581886502563381399012707201313584572646870617669095945720578758345318168461355900651503250435641902124428683414257929475037492403401574918797971325549151765239800244534295636210100585672326834317929730899368124021693783736392114542201522651364912601296952172649871012676261746896987439075015798052479500393421386743315097848204949927107228638371119425908201423048528309463939039854397400942515647401309448795986302740350653213488479655086040052278084995628713716019689203743648549241332599252743630727396601638792265501218884098108560258829195826553830251733490765926797508723775477407914794388296103014948846921336697873347708937109760997388559079295354257245601235670395909928958418305802579201922898705670741374686460014432226019911172859806416956888370913186020473815808361161323769964983654603979309700048798171202152204794445057668972971020742749196572403417155556929114082467634249638536322837301558558392956971044259895257889307947951149808223500406124137463969890444920439696874483112044773064299791158760815144806029394910334446751679057564918478531988203881390636329821423077118393012944206795447016251732090276831790547217654295729764640714803222267843036056188054354474738393218247987395949691505012591855049057668314131184624034880847093691733479865019389799829157399078106753112022091562668480702888417954029138267888404234312586149150012397695589598718853804285729481744519738520678205435309494492711454385320150333972461360280964701475508499733002613465271060514107553329622259924433295022319047211970944199042946139527912216794229455418879901949455902742582165591765889394775196213065681593516909941794640673689036080515045864256923662117153578927468771999914706364568732504486429479163867528785649192735921271090597297561413343558037944195172241284655710436943978701304069471067317789961382434382429136844844689071552455788921524238500379097905529672591740775367676540835473686527281993488623920931108779555052826152246933231593992947908512878629199329061344905502578346832742246608762781826244566810100644037585389010708526295271916521634177963305712446009830939449060064821646859613986627773866307274289510849134989402680137041516028182424270037009277884034370382201588789509288023593503500206563592714505240620599315744372428079876670823801363468008769020438006609770878049565778746774273745559058860469468690440645728709875983300094275437356436009763287383907749675577961010161130085857375779474261634176801288645547078628885308252471205128519788653763736266974997603880270291517168628400013413702631344294662226501741246881837519531372469915790254501543312388348430504161528196569096845907504335615255383804977468475413875026774519465938474498805849064831745928791418367981708030558547362329666068801095992730851510498448046090200843312495778696223680980087766304224927490531119748832476280068211221769224174843331599285790436745478360763171943389142596390563507386429896690266547830890384757630374211641822186508083853393376714824185097376404154991466067681773139734248598375328260511522552940813848029393021983815931016505511673457302156331136472144206079930585778262615513591333969517522562469217942638155390692304092128477580960996668751347196929133896707677180562490462302257238596017537355014906982406358825163464418270898396870145451274745427621080598352643059145867837821198768559079925163015567348812186832469956361557280646467716456432996235047676285982300692621210553359337927540372946528345627726971702203128519084143712039785119358086991915193646690765422577518409464360150547880913394666094082636419393426718642091013057251743137076310341715319778965579575848546698702966477824671827385170701930241126668288019764940274771926828605835134117459828297697818595565655938772708966869306946410630764503814543450070596124038841146084298827350806894513307545254428569343091211940467725496676341939977397830685424001673580458679988181167472745614233382171327093623254450905671533659817510011639021143351005479921539426287244821605399885199070301969394689036781124032559812505544910177154169126550611598123607125362481957401730216080294417409858011314082551711070456574139811864247339044278090849166376950337649058246482547599506543472219116958715711417110247451316417571840184195821589061416426639066255449008430517061515786843795067590412500967714410147936503349163517273939375552143235226355045256032228383113743856421267893139937566367672866094694086718463397353603408211762672182234863056537578165993203520114631521801858772303673271910115604440150346752478673841263174817773971780347716007962338638454667315210477482458405034607298520356226521740532767422370775458812489774093092860401404543232834555768199891096364955951824119119173595061298315233227797523150736432149873607392797760874028488040867749512678660401547850422896495776205579792659830556254498298840422869221054991901585990653768806473314935570496075991188650537792732815716022060375257959794109520490874603962312898646975286302267555488629172070522915388069617185280625441241016467157389816919051759150022988621577809093586353871393310014000071683137557105760234678134445316913356373004268661387780650370574978208968161264612791924566487587122333194177275937185228683904720911522403109594050350348246427396042614418098024921766220513639306665270645501844735699523988046893386374364996771594712280175218244117183543482252863219393650815918012323310636384860416167246198249377711530630934826561772127520888027099685250678782385132088921654499440881458155471301206663306919305811015146091973481498138807631800835888276576037095061031564387951746445749710944028578724294273587083555054855833329151417958695964749447238243568354591816899829764701781391787285627225585216449137626969576163064428350404435767403192687750260367850210106574218872005457646278522020229142814412194991768953604579898484309607967899551528890866117196606146869237423814612141360258975096511268820361301568314704031270917517341356565729130300272892080197273582004576997797797940737501648017194604767590924850705815503652988369298519636715535398659656308522197279236624077594795298594587819072471105009426188099566740486319526278598663803931976695870786184462342353650764917109030775262882122525110042302714402500022173388795039689523680971766484222755890324653845186185969873991477745176082781572018948417116509650149105886686910920573421706499044638501690707812118102135976237010336320296696301956573674887788033363522763838816269003744371631334035162485076410259422103833087097760247788972099604737201179817079909528474581282566625396258774028634214540623754933152414784221668280708871186656088030689554366993394180127223740917819366155866715556538514536411200841085139575295427578386954677135153294580673269640374734993127938819230874606107940273783055662247264416364884652981910418544207131967306635710621127345717938525442617789696170190637567107764597648372588130539787691694097256335736948435256366183663540914885918105501640109932463783645184782381939699367890358585004268485423421202501454157288760161808698831078672448613944198534696169221773043282996477190490628944393239591244321840607202366895725473436941353962474694548728721629179323178287038774662889505142693557626750652376762072787659877218934371353428016979786014531269832547212057172756517629424665330028078961308410397205220529454403427039895406831528148342928099445643643665006602061406217174311600052826644160651131714519252897346887107616177458522620341495331791038188348219891137319574146439260457204352919603221700089079497043518696373869750574076439467202300208283701164112961113469123392147459539194793821536720789686630546346251848734555225749327662395712454005689907286634756773272840002732316974029707216452235172770075485393996034282511766580454890552127386017370827655303897049637864856137223745612478960323679407072817877702298656385745721376557324888337224189937269223415338314159613872687858768071856992536302364745239408340761208593293534985012953906612662380632914025960565774094883956496659711782215812638321281147852024400193217305294850544390318264550409830696976031819283613924119266986888071605728728209575941012570035730710909469911405224728073121387240096288325197708002804977602603468105903362449866503978424685634963500808911410360827619025760361941861161707868296834609334280929846604944381287470238146793190516685332554587588481680622109863184844149183855594930194265499953330557346156058782992779081020142083437961622908548517413798176337281444852602520055008516899511781220008796035394387774160813760314533161114846547550985736827412622852069164559681586015468055632852725157215652142632574659771492861590772303092751685944424121778961709438759659372658480252782402838038666965654604281944180222495859726252209711310753157906903254597550495487456293732727001036409078658624126867593994107936671501026392366570693408184636443178229339378878612798698833262792286275791853931121323666114051855005020172538638806710320630777108098469915457760261736337711607995596022875243448481243037778866862849761766151262402035631745092995531541345569222789069478431946464049500533803697063934741875947838845275377225154833059037973804013541633163443983383314116904745604806890727746594044957194643218058900313106032815925542963196065194699969307523068538133163073145863568729847409101160450458733320359982895886324572847216263252180827088618393272437222246458778810420754381392908663340072681475292783844777637631989407420355099330108248031060085239939678729999584225026461042128547270878924471511266222736795899931241597210142994133743052517943249802885032603730739652210022078354985908103105609331502714792971831085801269082077060450884097162991586833811264136412652865587105513910890870253261077779196433231600515552130347296805826957015658092528852481187394129948771383988826976087991501924936425726808715541635594090595200855125416266718148641416940196584175380866105932541530217045949097870001928211933699032127470980500390684139771841153054977693850912658399058291794407651170026898668905512526505367767075298727181182354329956037638304277244946251698018933503559428963556690859465968693113838230296908421826310819554625213487819852799503970043807813445108591952685392209027278190876980993307110341067554664229707944492532165994795172873142753931542346194110719166917013390844061184968261798511377939863182536848169813179846137032657177595349811654267774904050382617367963823147996572045210874919265909568771460918217970042530403644574615896517026248397349655133703710241833549837568667663228684433433998673444639031864356786292771374456324468465819639589358612097273191343734872891267032523680727651994686973718415530566772243471240079658749773713311813415883338763955460027174434293065060789760144333331363837285914069025323969022575824886852313682174153915672906536990324018164794703057445959724023056000093857215877782053174889461262016523164434239997026886814181780033000850104291207659532118384991250417401732162165540318670706308136992613194523856841310673577628171652187762820999431063953321087621521867596998596248251280184814429998764732171427411826240027709398264646379608828973440502119221784234113431210385744470033834754368465873402588255205431152611819752173417748167963374532356045642818517449939045916218710469334460252905718941979378762571861422991087677144710887874693057384333651645813367686620813050428352974875037130335457195601187146445812259213534421337435421990829044928641815923204990071195529077142077213083956796793924121784895208566218213902942799087518728269688028790711588896022882572543120668637305853207285775807320269479344518733100740081287816791095327618993852068275434072333373830156086217986585440300966709538569684061640230088487637310020897954706412819516896950933451659745856060862544780744559593948749633183764107123415884664860839628442658201471336546877943771621622582804213288836644186962549910908281545337584238632028008955950611328662157873977729881584485267853532803748163937109071790573715606280977526816489585506335071223136081633156593692078125209102058032186929379381394062817136184088000504688287633621060069771787719757018702836937487721556283011630815776127873901106721483127129598416633777417817340956024041094832493592785266003579596809459596112212283955484851719181944315411455445575574048381291027179212054647904074593052279990810638979915447536079310948461537702468079730793417485845575372931555837277983053132639642218987482482479680759022227722451991222511384677607043311259739214390184549017797974872721557227154988833652932603384058458993275890512802116509359712587660483255002948342940865609183822655481329392445094731254007131822590906279813948543468531284962080885695646332946708795814058368381927732645242219973665968570250973839876010498456184281489090604281029872025934747779027801736172869268381869379612547512825379574097469642439720273420588755587600708851063097091217970327803378220469546048061966738102592650405997701970413530965915744218375984959413938532387770810613264768047366272001877725931105740692761642016663040429874149628885181433218812241876314275740778222395475563951721567634733430015034891590118526710775349484424300944844422876485108445411571659943720883039874289998278530545413699845250131360825068431501363702921870271095959404751440985880955014485908778956006237921415628670014475548492667658555651751366853022815275346830988160899284294720737748175663081771923341570409178746939992180375172091035474203619173927994603694382145063888301710163587324078506365000650757489954194173985806391806854215342194886022390361271760538937958053221147348909720457767557415810115027449782422203345389708217848851012774646751569124597509461555728833184021247116376417632375837340072123809151633972685436489646277646502691455658458069285373315615320708560566355995444436820266470701523017398188720579437714887300537640986043839701142784344421558079339718128766082813094180272720388236136944237867698881946070019025794295640586682787830847719906733696791884794296437111491233922853812526921778922425499376387395962179070131410084190588133340692385666189106023219019972247531784980633487535177627832419002530743478939780364444342517160668178747853062552346014988226749299790483760112878420523314514357896433351300517867419391081250119428345742835786079246413559587040344519448200363406658351217847393514451888041583237966637684671040909794615072574307708031564483194927773329592210118138788345518142017555913621173088512530074581465277794088562668039126401283651254094279032314299291770894562407668121385157132342118867934519474515051614315351106988648262611065941897623473805897140391516079230519109027401603331629198570830898196508478138747566049709252657092181423392115661949735653120619313408681032868528241095783804874498286803365746012678836370802020355539619818400554883296283224208162832583851674246865561291295536520647167319477127528010602156384014955493510523817251079358820024239732385407703806280620365482495053474963526384809857305098257171768426858723748505235240729755640123593089742064418128704055608265097308983019874274279860210783164863475311600002226545491222821182361707922699155722610818292013652302171854983467152989334729731823790001852402484666332375989760743340537600783091486395128186465753082626625123241496892518082270397205438937590626814957003736488808185292678006824354973579490421509276014677941004416223023449940995868625060094599433098766938012303796032552886646819634442039639096873023987861839377529250324425043242391169468368289779920878361344928152240070590611485003277198092885520037962286254866768051846666111997231083479578943581273139839952111205213227789908297707260462130774922149018974952390355416210311101797249356166263593356374528435462475605120403415804995486706440977508259348686665339448614066557286632550716037910734771815147446480350611467763272868884286507731413224809435302111735281171347376816767128068148709314046492956905708898080204522626589985735667333950294111578840519223301563540951193132674599614127262028473288170311786758661474013434181882351718808239745244230899039344732309367133956251791481490216974340515990757709684642060859963795570229750555841690650653195055861234837652373679596000155221142049258187270514260520360075088718297980900777380284821565445597681832882138329941495604728393715683383398437383746538232449366184487166355050329454251049648183918236045349361550571812501466314509329651139166227795277250755172866504282028137090872547111832135073753383315304220960040219155826907350014045508618544110097987234730167309743352309497872271334806564627527348412679187770757097751656482732837036543788938045045463536094590538673423823967374496489010122827401400332266550679951537121272941298323533705902528866885354079259037990431747715822286120877419638449718763989957240089215862886165124072782242302134262006909795314313064098027787541952662680262107915830072161335483591350121648330379258004395587800958869151573124482177135168587785159274140005626256419787910362658788861408268138505194364784056358946485552157184539171936111417051555865507250930710144030193258399152173216306013857155206416134936959594414420168083087351383453344804096064674638815136040565443676255138011040060251968268259416661904971942589069460445979560111857799267164164975197770150625375015878015475800951827915965034320679583474187731762452131065637321590867720676943868336296413145550342080891268164379933414054606229421474264312050315601001003386544224309691632723369868954906090886643910213317871396179675124460239371377662008509997483726834341332371499080950965630689972862839896353053485550588575713644732949246108022251206366251158993746402291294065079584977109800208933884150231161556055822604807099515482148999506919585255198073450719967899556996294754869884762677189664925073307774837516971462649101776117052479180569523197274042920246602900753104254031525180944821592702461625245826331875851616881768200756328564960350994549563975599554588343005032697527438322752637926905710552387685047909851888441096748966644974671706663069544933598173169613404976324702799348246215796576110397619972414244866526073535232625883792633961054877091866389063884654235795168588728552275082769610585026574230516670024761951803543165335420283481529779645718512394691754890605924646476630835660661849046103079037090591286162076083868324731591288339994793631249019701924559059433884882665985400295758067159218208422202219001091026010492276284580431633390348107042155608041235570401780919008487917994511294239314678035023557424254886748288914972053626513282694768080529107318530214294624685053092544336143538368683057861779995536319506439015894895340842228798411457032203574057207421709353934853824120631371905469759650512110782215345706912575393883205712256312718964726290910486886994455201445648882923523307853027318274525392193298995119335104268919475470090873503485741932372384875229630713741319206658672781584895979250780937255067324608021979707642901255596621525151113241880939464979811124728663680772357324124340963950116538251149442556692425849305436525105884361995761473118529673710085338507659661350741959453366886519700677306856797038704141580319566120344696143955475135954900919258710571999493335785842777285159711931036217162083116598847945221695534712869839355577209962395626514716930333517368444511929393556166941482566368006435869690306051820235182620464639776732821393125316318386316760660894936778771134800179676935578286125091472053440868258329926690306181329149032881970455436100334670256090808276058942793581707019223191455996630395596266449486663088472002486599250726637611593369267818245123532728970435043258861057558391869474142117856234882947607072345455007749082223069917622531331449558213824460386154111902984108558775062660666136912536365371619899167242533709118454415329207973038864653383258311514142479273104877934000686283789642619316449862710684583192464639582472229110022910710681166559788870404866801403413915581008961732405465454704098019236052574111439571433150006631976406216122658336984304800795610730770930777324151044038027888225245797717311399725995273555554611692983530785987388386996029729396251091130800223367430034078880704364283064725121503096730106727821763493173852496605438246607136585468587880252885362109297273292189376572755151692696475768981085268836037594074116641589843038704984785814935754989928883074225766694130191236733778372728303880926881677479979798413983424391227089841061426143097893730510108864647052916623586729924541625164423921024059681973121444347426265311141729371886141624666729471191675964567750101404776804936252610145881831147422760950690560777332632897153338504203384310032413898038412439395121987819641956608199067761281507850223296617934798256334194369071202113663316866122082762926526958139403695907927427857452619895415632508917928304699357250757646507843915168097231410775880673930544223389763237827686299075917749774865045203333670205688099676649418569271290050306258482813247462418247729296066088162426288087945677136522106659963325726225719904987680157392579509586392912181501240090443522684164683810520540494636385483312237828298762955862523243976028958659210357413999461062528443279919052982371286524511212800028081986311056124472315874879321516463100340281499041204168973710677095603260030733170258951376913545213857718259406947396224439658741287253352729454944500007811617667788537614443207394785868679085168052554467803048698261417961752123235905723871212725247983404366493375663259168781881294571276098317979934341749178866033622736450340623563365693317871983518704626060099235072402493330273949429420664174653091906085340511448616799499318426159149088984692983593180633644527887329982748724595114634477644667910692304779504378104928933415815833954139854938813120173062768973640721518471501369406102626166198948230030788411153183731982385647046571749459630249546849825864177150893535320226942703450386186423131663525409082564489609826793684479824158252794693583277013842230327578479255632023434812170637415054581986229463677875971108946917067743995282593701648511809698052893469430452863066416261764154859428485311469219636188733372189265433328388361811821167849442671436546660107445463747844157884079826129137543670702320645663081251798032872657405737198887639586986997100473848015143619872489747552567341452930740531389435982557404090718719854596436842176909362332688171274047758297386677775849768872449067714523296088758672527836422120434274369439250393959362928397988343492069042552703090761628895940398471294811237476276625219553443296775150493230086862458858688022495945723020890225313527172799670838793551791175756899020961704786879690219366441841401260266209278876528723052050992295999464097153623266585971132197061505061263134842627423610696449096310213901217567840582241611316364900318367343831964029225302428727700949452061434757530652246462554655111160845783992556586520458367006418217948824401933905114834432748573407480251902866561277514495245324298208198048530283184003503698398282867200115763081911793473636021730397362350216565165565744610369188101710960806429128508672867898174701985311818673991787522397860653328553207931814553174988535524276209783046020934079585724171434879787477413105552968889901012037504519898746071466892804035675491695750365128943516108616747778971967638142211486453967585670589083267021997657055041233661813056335747197037161175858052420394931404026519970348089668557478543065163913906626626271669215494382108742263932035954712865661692882766877955367684791548433163860057462926774309464389423323845300106633282108227188348067341731345040277740899093621088519740149443214011746510188927538509177625619119326305756616371283476107111240093231050261651960573116867858382848105914388314310590137768921031519351213483333768518798885905752150667750761810379396327201411427197532137553313708114394839275326593727069483478029768168807566565182666226119672901691686367184487291649570840547429088447196230427690141521181986234900942815780423378579754865036240039681787086785714027065051942971366880868692171306227573645412676181385558406472272457080284298767115052535481310852507974829720717852543766923256898501341222706076375662495687289046851424535775064810217185070114216868651541586149078739442467463903159114164684617901184576130905190161734863099794819681838563328959825779667115057476555523368925692817628476806845904710154951537304413315010464356557519152922518709289285376741370636956704913781558014954582715085547561025334144265710110601657843312233764440839198187671382151092836455281097886227479800383519103880497533520384903499578288383739976747825294987275478613637977575943507958968679791413503667796481774968897298114330966953142837412865155907654842349541855310167074680601903000490628296712483446275216833753030834275439823873241379390284967810484397056237831520457115786369216701374736230671208345449813347196218234291760262062262489325237131955087347195962294634871910847577893091360556961285081126449674376430596420646369500975616514038593495197123509947153437304666963022580242208811505790259185859017313857369783375612048308478990323626897323299910244924783284319085443533721092250173646579945241909975529501108161985548749392671561393813482586861981893049303943756842887971864737165201850839495449333687895927680562901463758698326072272110224596324398404636645009823446630527639160250930723735064350828746658374644342904232062555969456582725127646989388922151069751156109654465533712296863631231403338513015347137762927646350387122904432227067665466932383496876309779574594977156326166599897741629554419218988552125420693560280194704697775656483069200194376331024268061786630348159183768085143160035302428822895454282387960083784769812566018675166421607404124899203464369237636011359241450008293125924542703366428230324159656660936883830783709327322002343901719949991610901056705126795844722785783628729143350823649966339777665070075139777642651438614625450729591250027918825591193015203463001843615266671803840282593772362863232478190213159865537015212552063611685853355941305311948122907909218388465590763418943041174149717973318919841004986767246767671507545064457401266767777468973413324406340274972699427791618954503306053810405382609246322720374670317982234638178511439033866313449482028453987087501206557716953565816373362469986714114392984378744380056019630555863163816860427709643923883217434073517089966994663006998462652724835819314269947507246239058341876089145862675530526084350996030948602465970501224938418544080694520619695394437136367193608044013535597724792075628635260382952007742262636853918324613461489560291671481060173639481616852281677960876081135220185477900479678928850637842069988086562203710937387271655135563595785300310631750814489936719916574309321386011287728711059187046447477784371498933938314232566905963034974092727565844167901120818056206488842513099153367109828405376543767889366294201131153197207530171688713347650468257899029264837871309316849301510779120454557659973080002262999323772187622188844836139339052207211314644891443195560583863859364152368662420816343200707128561635793676991919602838944181424442609071241872615225730052933931708817801160222821456728287616119487924387470488181509099928695320568714506472592856453235638286379316541924075127501612380388960605612030038590399805588448502373777441188958526533556011452604739040326784218890641200284670956984226507233145808147467258057044322474851282801753371716005074357476650734690388934943034180987868067572130606209533601067737553926168942468497926107071121772704867909437463076889497800266644412924269729885632212176214955848667615302283032964110652775169828580772324366255149914484809202124962193456909871796857130338874532556345784465009796811753861667871804020869424620216420541022654549427597505165672393129233295410866572741231338406980286475521285471200194709567764942897269221648302296533754723358081991724917954550934398280479288654985426208097252070028425474110003942464413920003380428425774463479159179045478995198660022297120288305303332002645566292537053101087056771337786951745456858065894667393483647690919998784724811161100591175620508748032223376760689842020708891196930891847839873523796036582266620830581698867473027161813340122222925848574902407056218757990989146131607366753689364448924454914629221456400441763386138358123312073580724102107882581459319950030058594706627217871216936934136462431723172100928157602195626298274885525168188573185417878162651411987646587691486529570749812619190225301323159979559839607988064269059094410674037508420237606469301361238250627337190167145457159791885313865949409499441982952274273242883976559301752811210804324886656243970260154706924642847254110235979206117073145630605276688911276471841792689113333892128402593602447454013712654207517746205423070015252716779646943415992279334111327363505602378675214180369462641829187343823540959015561343750379910746966114955482705534508515079141137994623732520858688180852266595598135256020593552382297980573908099767147498796668576598103974211330498114302547801991687656986296684170899464970013332582260116806356354618821590709466064233730060665175819865570122856623510027686433140234851313434689099946557130281418305352908409766876961573937439957253797935047571845387715922425885431704143001185042357249784942051824942702564361804056465561088918460785204802893617560884402320965000975196143267032670141451522740586718282600533649289590397413168566219046925941461159926342196317274676737520045707760469703430735286405934231359530947776173200752236693072470866709586993037899588809107971040391816931060897112696612467852092644090482631107890953334819153419049361371212485999848336174314528357793511772286664103934718154050779612572632948919223126915814004132431345915470383101018367619471402980581688014272445236201716167910233799660819581322641208824814688881840311481572665079732767642741101765692188845568235008713889811072858229080685115943514938084868052689313134503827364028178114711926208670365062472047927351496823873510069246028796805396351390751109543180761233542997113042708413079244025448538224676611534078107417792274229054847801221182395430054878222561425350855347412258125175524658696896765917413960690914392903312606247228748842216031421605880062900964544523462036615580381464909315465016498194737125250347174915000980363449423327702544158259547855703139523503505586971048248234321400435781460693038964103911340875583498135094697383958318900475510996028518395514209231371472440121470942120203022804382624697943978244394399817251696038353112349154053066628915209696353925074117168138096402381769330158918797116584094730240305827513958928637118242723853537024307099797082042694836568584389221019684305725054754854726563892191720381710706118968262658964820056898081451726162598331172355504359190387657239733447753239940345400083410947355691044863832317833811794973943315751591450614711921269908600249627354605594088372897356457799640629365051885575127556104121772905224465688180878931689664012302637295619815791761833501011695504573285750369062254420186558617078181701502168745863028796547294890019739636506097797735790043019461420428178918313091002430283393673095869719753174654194449280463128813360913054536815792279176639213715495236529195588486232390746759087564696078714784912381463482223780608576932060406850417091227134957681495821075851482263494068426824392545325176788126730784978122782517183034458292195802445843483257902773730521037609019627576484901029575122243329159585775794589645753790417587823370543061757320507361704255430490897045240471866836368654288478605406836181008382814770377884957980714412600397824575291188480835695483408700173535439749198694566896903137520746072422914988632876292818488633049320144114304074887728146671916313703933077711393918079620644791136991901097556508567527829070545752285917121815347552950528594880343868477625465741627899535287569166417989215317621082932190475140801484785549706294388038759014988697635187464588206511080395799979338250149081672356249881193646533998191077142261585551350762323182491880799147539583904280650206623087726697783370678784115975066592206463142030948352314506897350659061765591777088439628506312596811032905009561539361350653873377491673510669082127978566928349998411812694945674507877330094916841673572800476344807588678288645270269117630319441232969253901211206978843937463567104495057602883114436877692900446839434738737008304422914812859806981969011553998243268690269736531183939778735008324919927526666474294920999609371219384677106150796680107834465113425219293293338502794012156523761710239797153892176195934885624492337673860806728199072800627346263505069375293685624658568249442529088105330120637406575686571816241131150269221324562488239853472866182939562183663607273922899695459069285642221520392707196711258977955331565881077656681466049630840624042418496646556989356469155647052062029479130115645387228205839588988032752853815891441828312107085772804347506617918521477213273795434102826681877282144552640998219168275557602071063333813068739372058863607460104187581175849516651979208175774983566552118228201248131878084575916203199510788446590645394698293540550450708221732553820684096974991101273017168445482473678092028396828477905637630923462481231306473222568972314687283094631223763507660866285745514338206136888685062418336447911178829605149307510806119204557195086485550642291505299952126420125945796937752439167150706039305904721630252089120863373516564021506496274017190322531417127309075885021434257960807279244844440160180165587748256451824547126329230856003377260442592010056896283205555460324753187974596583425931408461283038847354618658308434032970266923780219978932728008598573668740849030986059709817675766208915360402538615835889235828476269674361839432456080901310403385972972175920633144495355154448384939154168903749472013388072436353859824143162891590035970257960280542119582746796015152860186114827214664844434140259997699316333655128186670411863879867132087336098921195115257786214503108364749394899341160901018820878796206572417993703210547909250633392059827956419867382429294605051014828063871380852191947122177644476722394638311387670597486089616402851165848613192092962013078195809906282626559877691330633189182715897580330988040145429494678169089348174540115441179171095063881928358884296779148761841714301217931198741749186867772769087696603358435695517943750971670005386182688171607396974793339598386389583049190630437019262092437400765177438452902945206146475414823512745137028446618104619218212186432984839974086555840155599565358869924556905693239207953002168817728954694206357783419098286036142180787457864969386787645721052062994824760046944797325019087501564725338343230262838520772440804973410098165886970712576092828252552184203968720838074494741431967067258226859367617945484211311270338666295816525575299019823502996088759320521705386629579486612830440530251430166583819045554039299227875725524053634234784192623282800560095699230514013684902375223982642392717144895266850044157905327777528146990369420299806595796069627414349102347945245166941141698087157217093811855187157343996341357603688812968586167435447733054214099711962197103039710444131616165440079056465354850514528357758981893697735635414742928919517435993925447461177983632533960566261101391420694242851013367555315488077886208938311217260223146919897485770750280809451383938385844194524556471750168704397999167274383129427845639063144093656210671347265519107812918808015239188565087572068682555562240326834994577457245630172646985788212064859231917782696149433773351220672758947166803834127804167381755534503964860028170128052107976027439019328710446158916943384725080627261968772956263090027230653548602795375422783502224334910393005691602147799674095081908558622629382274841574413273521983866369429061290167266204541817728210498305868716851089653900143174056812506109867387817740040982189469583096565696946339695249131472181002693690087866150132005293283595002183266630391709935560843176618461607165262449514881895224889956976433550981084633099019894242655019884245900829802130552984757741146504577104576365708311249333512068820166184885206936919428958171831275211273215047338917870800755419582433514955749445502647682322753233927744087013694940515938099816863793623471500434312750045403789766441440376616828513112562562667253370669691340863427601647039951290865036046653654835689028576995077213605793801552895561520255952790023656167555042393213274173196650920119474307834938866913262341887716523081969019667595288565891906227608851015331384289478622602566393920531195252522878896040702684999347435842475859823930224754918964422795631187899591502114232423218839201511219475550443221658904308934148918536293805410734602811115867816189566751690266870229593296335679994032164420606445334066937715709876087334243105007209210840639897623213500694821667016899020217929392163044740505090318774804040445470613032697450563241848137029397177653975008712004165134855823793806691171598081724007861380872603430000736465185164008790842759642261428185050757860653029453218298255629329337724264542457096631884931667868431682134923145838094208660747203578616605324071983489957510217582912356316222999652149701744834655263865375772004609395423877610473738163847389751665195250719725304756040438828180432017357255593722458833289017318739297961808981298395842117612145934645427067086806927436437050945825065968069041698100493522767778810145052463938132449452652972102180050890910469480225033959717618195285102308942547481494864728903782171159832409304522349113839536977889759184378683851026533899263789850899063383008470798794154676272060957161282818279139783854918808187267758388986266641534356968164332165385796627980044841115118890563159748944481851187124660534105546199812175283684993304392157444612190212798255717208048006630776654673265947095838766825247255457863305848834590942174538337719328521160176578548160949272782112383472006865031243924182125896148917559184959284461996095424938330623819203431137527713274106890991104359084480575933015737453232812456823044431472437776066886284353889283222460638758294626319468077941119733395231662186824797395220133076369654980392747730086504072705047936790462509705003847444479643027253505582993784979386733309747060370901325853031855225847084346489486352592489145182627028599756559255778170835740515766583221222727192683334860683146823908605636895556660901247951360680871610946489692289874352625682474730642324995639796622909635382746822332476433671923406737229578402729725254156931321772547545461799907958311473362332891845277805838054418566708849552840991311069938608128071032076921757005299244028449237665014238222345292960356761551347306507109625901234543143472300162704338128282061981145683764733430193424925414157756785609067428197792985352307716520492233953597784176358572691920956990585292834754636478440842095161691568169647752208956852453595802708260939738309542764280342932686300781290550532608811660844149337142695686813661270029552027482465053488092120284455446420311187190694581143913834673719755980708087328227875481116882335389177549843231541674832267449370208238844629196772846664132219405375280106853902155124989295857298683478511517058058512712650117008139810346895088939499951001187834932418373103067592921987236129128671405825867312747141144763562942034330344171883286429677748281429844914058682329534879341069006598096333931429330099334441178631120439129254032581912175410407604968277394354707157747463372955000425185885152186397070291963134639145287221734016034508898405255511690643183315464950735171226132084731127024395713601406464163278384059210624130015211424044030346333483359640114955305024586981574495652910906251214491411899794224673352175233744089167444242553883796053687783317768084113585268388486831573496534550625995033744776983288147222329286191688888029187254281782220524265572380661603275289926484864605710506610145623666321367084101750373125356070229134889275117266798299094795748679793028637570519504077046092686424527228804725589857973411085711077581541785776020261980673861885324622453756998047169300905391098154887611936263944839264437288802049012681792618465696613009524756034027819240380483962320182479651776470853714734377964684102652732074843327604880544195058203156340774624950136683331248737865458283487129792672934891850906237356764069889898174748199258264088419160615780104031110004642256845524897861143018576417154224579346080149163568458247654721179251048913102180137823620211743902155198835381535342594418847245914706972822310241382034214497751259572406661730256698730382178551439746566225959361098349528940174319911895385861967663365616923683892454564841176603005549463907968916918514587832358571032693433845922363561234950068921146015648002959415692413940187607969844538785094447783507551139011163541740341745293859165187658162775475126157608056726316422364949582914515620151156160014310524955705023053140047868023948021276251236434208777684938571143436863952802504470918807477870478162872803240783790420177510807862494360142719887948480187020546827127287580967150595322844663498908239706170433655507880891831368770220570372564872076394464562610289265003797925924135293904250637166796772890549181021920366235970122980203613304216296361060502554320733469492511386869918563590595032968368200074520040972079105406271858636972638716821847001721076463600892126741064630368476128781466806620135880263828491330837703992041667089941132680098491462729962612727378343541648328532878195385833361021701278055427203032732769798387766970542478173792992087508056627859091060231021753059684993295621224125657476824187321465465006975146124205130453878794022041404407704825695057498222637093357299951959415747548103640830779083168611427098010079096487339688034356639051224468677147851367607873151738365939291160479894535943923680123260697157343606920323176675827777788425796833089073773219117362402164834192634926133797926347333370510725575281987710278327672331756377554967940734203797284473269718933800097343931796286900628586651784019010457636519933572986646580849686126099955208444397211260941622712171956961226701484560331501194768531835585316522814740565772396875253165550777006244527112828734608146319949410777003613109893106339821102980119669158409443420599372668320982293229623492852681018175932694623200086020630378086204936545109036555621135579427950877539599808688294503851539463037226849401413133411239575001744821305338729555064598544240789248208980260118716758742177589313360614602257970845585161630824838256187062877886879325905805615051543720200127545713372966285421232653817883250180186802611592519503360657668176886836787475046172009574027962301513228768524875655024086858890373415515950799796859440403759936259765658733875504931775623751415120856356051192857973074196867262856427672766345194578496370447784329295927987438587332130346428404593076093790752250169148405603529512280336405687207166307292720277192313771910626750557849684116886744777403787223548690872029538144852822143596515608109906156036802328511085104690050813246334841319886472690866259087792755941145348663889593604937425865745800409968348560088439536017741203773871573160905024663900504073732407560670458308070313073004775905771546185827365590768986900269943971259426913444443060999544556973225395018414194252502505107695647353126926032102837395754598350404537868918861635333487504066942445257984887147511933354668303538437864045154939234687272216883557722841751670546782378129467017063268888377403459481326300483857166605546690612577914137525169763200073950048212976987986161806194596011242397385564926317380393678794289099169386706485652569894976834266737067326463692408634951523586413638556307939743898113787789951360555402097689179167582367830618587924366349645579077992407256727891278222684693801807966760771026708289342526016197610364357405856792896193776178897125902417224659461788869215582150708886771488845592980717866229793995010584881257320053110037969236930491369544640201468722526766668600685495678143010930343377788048226348498002943018391214601629787274972545167731748816114388625793341649122315623072373411584451414548964671659414214574059261432569562952138425344303042795806214529462980722844965314393061697910912013625720683676587639582155908182202672359147096476296095677204799228950635721453351252157010542673736124995679708356259644742665310506366989633133447912802729096709012940658759975843418300323178427097907137659750139875453942070027171162253361419250466057744358315015519256992007581943801082968794812231992414925430219474099574216961839088786087724517753574336694752656128584754474091893769494460313633495067802555711697269954104422587429562077769415195378251272844672658580397166640240721144452061968901206584881095951932517229729395465707473900028573023621436473833824470668176142792210061514275158672550045977012183534963143325685415024604529070898689504627036459631654463801832267101650269782577118775929826669428685194518884923647127802411151080974782198183096408335236967036817686608917134726082629100777825868975423891232009703461137698167651911544986372060356945768834956851094511997946822544942104060356165039255122344605405980252724097347671987086613733765165966044036929616113281019966703534530636544808540418651593742144098593824594078246088944377337700593562321447061474210963880637173175703667600147282483653055270900884162616920362117502751222565460440104287917378222622770839675919266341867915537348946853420123921062475114759331828250880251098081752449169737692860941902969100721246292909806147780286130848542653625950760107269952143329536944072825711038470188916904721126103755993751870045825572733514531167925115229006516725606647900946020636855499605043570669742275042537741591873199934940140311114152390869399162364516668778143128388402899815654216806125271418860372929427791281171134797012688437103435018005286401143788573113934394515436228125624630609206498844281261481425737858066472347769092327322076026632644588857793408660547857313809906965246051166464573537621868384605258377449826486826750420255577682044761521703718121610140862907228090492478104347743670294964502149159715443510196769839970440061009663571718259700940190820534409124922907497345307609155114066344603166103735796217556464599100367556141957661652221800987615591041816642438194624137581568848842631807118335067677901978035869705334501959316848047576750445569209144321739265493363827413291757295792710280199090981980982807257706199405240918249810545582359096706689646215780189690251274125300323856023041239377059704502059108619483535921887504956196524216104421125534635400487295774842263427280390561047766489929200310330066828483635992045381211478780111170334020483181830051575252735341346782727348212560393810700173848080617348829453606525549763432810045422830108669466543640089310080247216785203805790486385863606109004141569816278900748920981470062005511698087787065543884760935369082221916761373791268123643349599898128802478018306118380883928616309775745724301934068127825944438401005985191608750735651734922241941125579245313587605865663324432408799279322826874471279475611250947099403242558557279243276042666070226963730749487964714389382549536663425665117311294565730520244522599802312424489388918631128186455597548562512055307465064277095737134541479294381377711425546205289610958252136753221095984883427988854956850440844846565986401603365575343727742732813846102997229832640971801215826187877758264518858791297334934584463132900311698414952410799561030596991417698001534363204255691232582362154944471011206868817952431407374550607905690976020427444820735596286454002061113442824562799185321300317699703416189376845099817114406517247634862368646760494141813725841022196386800103056434113846163377148187005753387970512682442586938380086751345390430133626991112035033891704694415544673585071181195569370436349028795984425903912355242748627978060652879078998754173608740722585831232473861180556440056651720318078458032940694591284034037404840659395881235347028574196352358935982558684102684056768763770380001773228896445400786613051824283756575433154545973731324265322263913001548717455192617321000646765419322365543456817188407185047668459771961934629963965441576732833882062765041319130284519385003263575772095216884590619719903524209584450360162195340588756374425519601733486199799208629069402339293922384561183018818133033331969197329284050308616962321743923628886229266302606993731471286130072688716051685713966776504042313953049575128231736024354705343887765673015292790461575458332460954765508559550646745813406381425805007724771660012267590610167935207835362605180927201393345725191943813849529424224129298805667324720267977767893976072752608175324685666219521722543318984841325994463195870147089054574606724685046677315487910385699133697150271434394354397297351114919413455330934272338238850266923181054518842842221690207034455476034470299750211643126958536860711274406466903036011801605268288681606063024621973762424019181389992889149010665910363012930928859515279173481380622112706805427554159047715497861043337067599103429959141166582300092209308672657758764910213234793205659377502293057417061204652059597379829644951083645857110277204161234889662893735555239233671126302516716894445813029581216713617964823264474839205261585925669141729058503724581370255464696127552143904686025020742868061661499250171225300691029557711197085604175157768129067098050144540649362759945712424636179848433994651822540188397521510914102190574845316666925074551970743688389449764386288404978102245855708933249174499765435445702913912070899600903980766230846974226061809523612605342825938356698360173518768303121848627525930661398602513779344066560101988316845137815606657443162868281373455621652717528675088134898659142787503596624505345187799097463339554216525430389202398695711276254596110755504809721985873590556062794002820725994585849367516624394311791670085496527802819617537926191543223377821089403707810134935482264224998748291825228998371143198168083897640728986392127723288821070075056467573588929998185575015831114967012114815536695657819494153764209646476155915516733029395153388436832267101676420203315942967968222743322057654215883345951572752097591901660556972742414738147628838810254530382079618582921514007324814751693796971981047126194310315437532573115008835165972257407730653498774458458578896624648700076814472113522404501516765213085686380357493958940967878353769142696246739045759148953660125716879993908832634215156715610780513606026483994998131386540490289298053545056612279031669909313485833344767058671986980699537464725633341425119488841215322407682439159015827098361102013194198279129852250431883721246097733857016905470238860440065534613806625642640336997835997590648729412738122104234201832020668475272626758706741283911956252024393075171608320480347276498276610543909120016319490875782468845606602339756833901547672975011391466613952699964878246051180393930878931587206265365557732398266056492845267495473521668510185561485213959539006787748996131962206685708002098317736367003677691759850421712574784941676012539912549130086047245633679063053241831246604563040904169506457015193930404216645177056078680165141790453307056321206539953763651124997995806937967183115824306203007074621078551596599231268802537358121421755131886985850842165726074875651931901582327281627634496834017133100648403858476278399674860417142475352929698009263145855769122298858752918601631267325948338655866993808996759652130388063249687269185268949386615355872518188005549761647723384755942431092927412059736424976088423062169082255194987235415871000459670781774856889901466208168764142980263547035558230314561288313483107783706897699812568822262366300434290157076688440500256412367037737086362779732781290953224420368930977610788710231176788587481469421703844934947232854362056897369989684167748675528578969629543911243008246587383598149806748896074512978497872776376980009957178815535384084518038741229767081184217170810114880634319136894382088300509680661298282269435667940125784409461193127463852911635707614106306419075431030108273794921945969409433288544135039755243079860210914259813167526951313392201033375441106573250553468815026780780348455016052224063077624861492456575104201332142146794691354649274683165535561573905949478399190692470531016389564100809501792802733415752751698710878092660755600908231120069980758486985781950443498210317189485058791382951439627729204637491279652869891847437639114882043329919917069448358821820502266614617281407844142395652053951927224294706966477714032255659639404288912015995105913059566550968289507877782347353514183517593398258596516331861815850896181414615768948571555170941539205519860530482184902757629320954323216213588366978838136079063245842948424789741600452634311860440328183073248494661711982993823081816237826984376374504035717488578596055663999325783273964743518604030877029024958181832595097299416872146685687866988425231266860847014863399187738796642966006185376565205925154584691338616206295201331461849833539650755347539830348393356439019124993806321212373807532404193180744858984398306853889847361635689745634648314743089489961396848772191915300370667053292383215524430398345848415377418437274798319516735981308847759041116010251591761333035232045701706353005911893469085608962239645957893197779850922853702738272646218904012505238136417334241099810453420105952079642825197000768729621708197484640941319046799230625562336513264921215620969332827757916886185316329730060585137613554610712629233393818452530124524822814163682995852067752312774422480041001980577781622074287608144087935872305104344183925594482999153921818043506126593185363868081525455942231631464183813404488921444887680097260921144759827301022875251316600560470887123893751333234970360034239857882393939421351383440528613298249407088571553225266437264921418259683560759282935793447180816492640679402174682085512976140068366994146213869181314069937610725477553421363994485482591187353144863521061494642384761671225601639908036105649195781035420695344636513400686791349411680351917898306272203052130578843431508118526217853396867725891382890277285574472626714003753057370445811784508782307382821898757878578236583814350997867201441392561782348539195563611941475769506746698549576877397412129287910901618689659710569107274253337245668316236622048538797880389892539020758306962446138181359700506055549905795320367042087603445138559301198866482273735237208203024036057969406472360016764005147366573472836899068383296326398528040300498861782172284312910859528349998691687561082808829440036193611950561770437400297401854102299585243833418416904646002680957396488377855869963258670623773460884251663659566980902724733064770638014455085425761098547570587988612423654954592955177983313456190016443857582155793975652747667362527943891791943942579995507531470076800877155695459743653908746503201474368378436331538937260680407988966875273634035724091890045573204361812208701481137316073043263203919214521346040613786282204157123967429780607471247121990797111597544778105929905936212288030403784444825281590477844456286409769566683033793181674341272468238531568436953607973141895381645341515296882818947401215900613640672655262591334104634730030735554814816060558902045274550738870859125690164679376153905936987498797799511175941446764517101779055564500270075895921886102655352304740741646858840226848697180196465063025436199278691471440212569223866026524288937706229406644990971600429775490218042349250286495982111129111148728794858313429201532941824131213517768420950812355588670234265354119954191571450764997570602597250568412096076883841382430416157188494680351219026882671645786889978600386472693895592828056454558998541316627260524334150426689938928353067306054573683773859740864496451386564833815646677745259099967902460757445990156616916669853530562430722954922659867782172007987680346019306738624204994890808085118499221569529665569013613721753533767399745702539626686950763355647891609147365361467029157226141955872496765630910473744768100244500532914708816526705283231923519175459011874800946850104616027829594781014789832230734192443117744496663494601025121554909825812594695746615039594255536402970732326126914562972181453808639593548503178661494846955210649510434926677707874999395585074710606021430620035081969755764399321117620365071057868105554625617988244917834462740523691305833083722796163397429582247567160229661565174272553305875778867735098914556417358876448659323380274945702612739539914341006301348051365024721177762317036896055988444635894943298266294408584609150423400357367338255360771539384445595349210929694183102171079211671503645085853336099638391161493189228558259379617908934110302258376807453060381851896417350502634388024391058021813607549919894800002429366512438552489888361002320247266581045954247004347933772306389799615545736798214109921583722768132780686978387879639011998695890068427268968584526933862742196604801469048972290172104237771966248166875650579256177645458644173648476419120394834854077832911370107752459786840852237582666568567869629569812550547820987230472894628621326980333243110714440914792258949457463575888386858525573617063991742597862087583438752281321922113241448156529611509788760318480388157735470607558581727611466513594157046199711705080443323784644611898671003819954906259850046007744698187712227399381697575801984772247342059782696790155102202205232312599900416531183896568629625654321140759063249187258868259424881335215593504240523329493160508517002237059856299179360947811596743825390581752773071174910899310573762175996527178556205597798175268451505728164660989537161869667938838382001067212904717016696668963039658895013294779506156675277105544729076566050066273224777718536558886178227853316835777902367920141738061873627566803384529392599783578355708385605221627133368613640824275232392813488854235579135388380434074312352796068777204343110026098453320363169029945489104290619594485479504640600903393576325093942523961894047156301466624303054882965844139839486671889795161824375054653430233807090732459907666633012693101336073605806457451517575841825407111996564968173346145897781243198817467970836374890907433084047315250943085223326840164684550158134134710677177089605788446019153322482401872373681116876004704260960810591458839321308177767855430617890846162089974055371047684300339095398720782384578403316436082352308487680927966952894206103086486727053307751994155811284646634138024227264595506008999379854311714497011592946587602297195102615310864588302555218234418763808615870267138203974019295583813916279494383346497815305983744463904580836150840932187725478177624164608334640391676907819521025062087068174500117983451653906486123545490148469984056864309770080502494948804471384118869250043250916572445227016158597119920045811968956473330984267812502926556096255338573079381799362135728235042510480353789328181855628246238096937458650091399024964817041878671857957047014343346388231355858137692200032684228526769393722352443035293058834323255668436937862731055513909274738088067517932347632751664634781989047383866712430448386082438449346250966529996790848532274202731462062215127827903288227444869794782536299735188316103511095542191884725138617225472328553733103686132265995757621754553276013527215892778903548228601585951842540999360225275788135117002200288534132211063152811137043206130744219542263468477318920545289688677987323637371378959160840083199775538511014088651005521974637748597927715718618977339664283435694370406979765467610993546665340395278060757146242537922373216038351311949382809640195990526791363555116165582397541776038367784563515065821678620253700154106644599737366521027686135670339959921565597724430148908435309333898387079434838855365455922951752265386639851596720655383130562828617418609482602072648926363325311679964317612166726792135861985701336180748097799392408794914365532375704045122787591475119501888332365735468706072859992732341905499799736118922658872225150915559324799319145936460010560000025691264197499807766229733691521749581824466472680432257185273842415106393188407689891703722886706706088927425263016671958522076093992789486715443099631743064378047238417139959800356249496129830545960690898443084075479365219228664234957303913579211410332786291244248882352342882479021528672856281062516587409536386345010278808696008188824686997664135732801005920443101040920983382563149854215456152696846132171768770359452437108065558756397387657557387711825245529169106719454492347779893150987512296526168547166222155660302446284719866933267375752722381578518958697404330062125628584299793939977149883629769847417220924841861541858067442665227234897221067028601312001051876913093032947460558704183323928716504306547457367014133720937305605736265519300482269440313586387411591957778067246628694095249715150738631618765007338160674812302760452622765768073719707549276413741813410650577362109358514928925735864404144861012777523506873735553937609264578687637222795243510067717317590664617461972779234508136564319542616769729497806333573443276498992245105419442144151854413018859464579463092837525660974319679255733172745633151779980788044818938418672521770914177388460797594834015797644555265744387631603804538325771138012233307726617715479832003834698566885109372297568302719893421467238072096030665762722209364033385839196823080554049644741031071926454031729251018159379554933398675797851409530067400838119104361242322081578245011157718349270835836272337107388832851275212455304393875776867448682279704157206777552851524518354722931540293727484127307453667709428695385793490333169199372276803767620745511667950417249571863474948491001117620892750939415341487887552171373865396323316030215683208596107259631416771569113268021646872961792508837707392697440990274792315390752415231733217535370135258188827545635889476150389640953332530857823843033013757112495520315745539492224768181724361333178309452027060442929766389841658806077126001246241314135910837680690834906826554028452939182439657911430273734485567895043772814303575280661825774242606355293174510405857253590443587327660117123454755296610960104555980087914879762945523820226779639072199098095211449391161828278757515786500408809912020703097232436051066542795035676917403191661883228725084317220462698770349384635720259323135462364414511279473870983156749101178587503245429699864591756207427907860933772007048593338393714359115312349574979791698637769559353614785703611628845201413726543633005207791017984789339670839639705706298168179755876559293860700801462518232256585557755742675273772789443031062819480967339955111254838339320307653256392162211643330419305035596994686180923586103876024238574801906265607411119254774472017274594556698839726485443862989612360024960946025121082712089229360633771852729965599615887360543456314021438112711818053425403269413650216483116039200499408366594395465324626794165683889047288405071652605260626253568347614978278575897488406335845811257172048822691451275403694533458491356732775062895592917739809942887521355550016953627499531779427322503236081631354608927467600030191691019293763942066617137312133892682209860186205816397441870608642811761664439227606613414117025125747672631662516221590106768649208725611463406538224814421451501044386896388546751912738752811499757010457232535196066481750617633692428519125214881012707389616967172474872511385261018386951920426772554422319700541165003278471328557714383195737825302956964303726588460015602955812031631720009440215702051211498513146335922404980746474707699795517069631735464317246060518886397541838681751098885908618288205577473441969610634453321338998048803189053032527742166195665003031265484344710802540160700018824362741377604303484880159923435889934165743999739330879238395273172608032523043990862445227434082530608625891635709700321914182325073898700785897036357222772809115377865956685134713907146569935980808929776871751948847050476659510504562948314896082195493091282143983820510442487626878601518116602752263037881022406288582361015538464565289463941714993544906125693080512179516289816102487926912314863589731073473530431026238362846335652059062492659694589420735542714420754045098210179844435713412043200536398752258916389186710645913921861758825933877196048250996580874983365331945769670945552214678777635696200831616751674333448955886897370339490783953902898760724748463596424717440202664964704934504236715472315342028419810670955755423210020973204650007862415311575009830504106125137993999366761060993208654884150502232094072720238518623972088419464753525152401875611673211462352922538708769630793033571007414393630322596108532108707081354564037336554722964698435133099996909763303774280167010596145876671627487574523184256832281758917745786105064367150524504937352782660943042492618357826261553411985748048116232805430437050255114881966322355440457592457721775286742733992127984278672612752533381838643192016053504065156425762782281140116693716310288276362264888970803839341311920960395340217380634576388319350030924297984162939139198159743735139862645260887049939446384148212892620420583329322337114128448264142485814294329675253482946891533127144981142428131305366625491266920520815777374884661387518251639975303258447291985521218517475224637579849355589618659872360380884028559141114595135771740321078465055961524248724229588990311188397903839174398323166334416207092051261076545316791809107322488132491242907338964468839464564946556478922443397343072960479733999248573420438136566149317393061972843666472932910506774630489605496678315141287480972428763447417918231808048614314168105758243350534215438941005128029238996016527132155529138772846009247370855153077545334564486174827687696215871293073319911028560451639857668050240931856882734608896468028279833911653031370331935009451005692565661953000757849735135826321216679928108800971996958956861075566274351654612556798635527460236219438011934055261038271216474523192075114315043066491625006106198688640460570389241846059928860422753268846450036998599541269342153547017473936870111409943256190157373062257186453745258702108210645433546550022141219782027212932872900148090888902255996507173592314888589705800467381319735939788172844117376329685954373565005087810327665601399319447842829223296540931494512799346306084471011066851286395471591503563104369046012557643597677171662568198400643722583810998465721210181282215583487797807979452854576975913593159363377267893735293877670327063817421124820154888895761594753334731913250316548296307388416143953403973489015852956643936571245443894835836995032223378864240940650748871504800748543446058822139557086825339274664875024038789221586127296111429811316569658411369319897754198500041884684224520447408541277175629999223661237492092514951086878485365059202723760794195331694370458706663887838124565923165746190398768754466563361620470063354414737732027809493382956779789669843741764603400167398466099484156046040070837663245043867667910066200360672642673641118462125845604251647058187903756102301010354463341899822472719451903953747414780266494926442318028080157856513499817230601938699840076550189358035946560337600108353073170675700005022857231510543934098542844066304788812008600473326761577534712247849393432124365694330171037781160787088378149943982013076845665938664710865068547176270066313121660002187477022987112950347259484882664681533128261770787133018070828415313423503014088496367255200642518428104810729403635941684912717635231226288871945605421595399867710575560509909637771180665645669768795056507559838888060267559265261818899167933949293518715136102227435792949398293399485127236780435316817786366996427178880771606208114071987287136721507526429047538727157615608212828387732552804171129951731142066977320316784962036974044048745335432410914454631160208962133311543187936752216003777682373102168571591292806110664492224818546766746572057752844206648723311799910655145212845690328597525683862138688814227190529669094318616035227047419557105592024083580370791357653298216896312413205667495741110163157411798626617453919362788527521235428892411229605963440741661533793718527830720150052922518142938323866494178038027935451751080151022848021523890636048000844341687846937034317004564591454339581156168476812845307853691200922862466520502755016123829139118007587342603601414590951682487070887287582020847546157410523049311466759668362132596286702707832522050037352618820874238799396951832928268904149473130081319950267765335238884337955783704425104222815273825133191920467764920314018042403656520345051342660480741505365666251080391690606989193151457524921624649909280174869377135407898207463957842158328136593578834247498534090963170147870617224031176143523885511129926800679510217723282589117319189575197856591234889270275011025623015191801636178500012533339919615839572704193636111059392952009501659713361724033789329632930066007567648123134153981748908874473488941898488057780116119876597444928244533746834148186435462537798129620419553297192715241596998274671451063242347715298571694278106152102398357229225127354105829134508141371267059191732027732441601699121895682264688617713369074438207630042107251934827541758442541521769731817834988818547103899340115088012734967323172783085198062150585960704273922202450215523785920256550775076346525414279640261809721929884330917713461921952816481722431746521076488728177784017139189457811854315742550792255591593832478039024224210383811508085318765697388857434423731328772781901447695720915989180017940146152622252025766758964681638760326056160524148085771520022534797000286085934138789368757269672993034564227175622910854003182564179760798259272749594992533527358242862716955192481576243797190239195512752198500726409518975298150884353157579496473681134856367943911342788081025800205529178316496679052234206270126345171019820480140314647648183721195153517936799814457961373682177050344913773186592052660075609534356219343414674334619323783686846941370066776311463786507104542171789614971542582023487527367843906494357772913120490823445026801302430787487222023116023782570594563467048663737913828452340461902176440845684851611114930027112211618941977627721209503609716700708452642065793003723808347429376744859388158083797962934242524333961099010587312032918204758366481341507461998439865872975638204471987688762741164484547625502968000771564544901419982340902508452326894807745070624747334923090096220028677201339358136784973860830148121810805097239261509819386175171336993903743025215629707337961014159357605591440040835683104207334031381669653778025307045842607773357953218582580876514564698570336291306513037403372664446916039711339728596882902149628147067594006282795915816692410214703267909971442852604753705345633977062808917892987437825058337820707810313094925397991769932713534701865760066797598811256846206610947250282767468658745585213860145349353969449355581837346632035768034223282280294605032634653670256070463466455309466296011802576115192638388167722651640872160303605305203323478825357382857675929643017822860642144633339266137878931414897087566990428147725765199872599557829809003073282601910822655778781078604212032930002380910054614379567439477345691202847513265120581461698186186074084795991957674007743974557090096463537745011659976827563342254000278995346206379614480471299965497934708080310263516998069895653796362310643122554890018534799469517687212880823548829920273238096257203182940392915493135529689079151772134124438384317045643921959622261611369267986241477738800356818368234630760205590293107814578073315556528246142005499064582599344826547053034374607755499340120537902644229891575037927576363294706880041921951027393112768210611862056785282521345729630550803406986495511425167599942769550045084202903835356406404092965501377167912744081841702030692255676835779625871118843931522630172040424044183974269308764180167777337166563193677851744706621489146526433914840598497041531898803656086478844104772804400145177615059489338324794251080332734177854828104883670837159280068711194837338521632621500736944952714757182351192515895865053277477097785757160433564915670623187775253777786708619417909495692673011610474205380061315048528552191052373761174651118870365460846504863468758615309731647332562116739204232064589744031103426129000172878695234101576119412740839690606907637563720423340014195653496928385423611591062092150196424940244283151475576194887139968505964612774502229333823811566800713899887514007733038175317588008880737086292020202266438641096625272858214752331743247356992575612935184854666935107176622666430241103737794283874472700165539320134789634005576992112064557008771821601940124806736208475687142369539226804946674920754537687613777473667171686039230936246475611164856986396850135533020025971223364385994795281066070495050488682031030158000999654210763719555837120200946338689773120919490091606370776870700777921578870323548834376087318291769657176031458204856846122197504535262535802510398361673807521287223228042812417903143845159069432991032520850003435164834330187538580936489167859625317619049032961233315358418603343344012459842455621469059461328264272557671163337896755195403023219358855576191429993909277202904460487789905919282509569797475844475376724265457658688140984046993372288602790742332216018403764612149825034875210482550309126939225410957376992095048626923748222420014542010105236132145132406670921196270779762022245356566537147535850350284175431523286615547391915416837000416635520723211286202470057552304910186092749904685599454827817067254746046715048754627737080993033554050004959482812971365997909673123928427222633791929284945693265504686046806605548949570110327539418280793345658440858667927654044939949048005199659231904886192018170579035663360506092957391665970711004552281163352132687626540563384875786675199656069874220486027862069312119083794279028480909117001291860017903825246648356692989506235981253850635920684140318404815175206576881854507937326522743617299782559624332946958240692393592647044315846726329158808206223128503721375546977164304847418394941673379965439851778007451675237795526578850313955084461771070243418755575181627005165367762443384213116589217093221832116891459702599651827343248416504492149153467557463318482434043917707683269300015313856492149403948889690611983881530666658162831594904892183960560141662920704549981609367015958315847332992954855855066782689095145710758693130320752973312272218132407142770784447787806333796817039447990683120063064298837154058186562308843174378540082751338837796234144918270491452091580319884659680594866383776908458908595786946427800225484675395603951407389828949304539574336167012083276783992322652260776186331990833038686308840114332802171026821444509490737505524669852684121544905271680117946169290946657396926554736356050930315220157461813561854447435627731007134749989089960455926969720967593367959931815046981745013888330242465630053493562018317552566266770518315305014328374732476132968577653250664438925467471912198016980597848846640353455057694209305236323261561642753996571262339467378591852068779781140406087642626691612607859288144085902657813645239799564689545968411743557328330550393602450626165789771054866086844081096873713800603183528585149631529717392370538184446291610238941350999006215844916855981302001612462944969925363992449492850972318046334807532910012715713123488070589613472174737128988570902843926394822364010925515893039078624331854396447413860169799349871464664172615240109002292191854151960565713604085877226301655243115804939385159984393442692872899783221273274410372405867033137593809626242184523596660326944835546332891242873227357692882568680200652997663278396093919805722529665205681374174341847793610416295559594656154137886639734127473686030785587527591776960950820505230256281745269849611140776900766688226221946587431028200045012578451914676400557533987536860803523382680240111698001150892534408317288493881237370807456718137356450379041405544333745222877392675679847415760711757750547686746028960126156270055917200896618961104041982800685412198574848209661092151186341669609189223064875817861732972583054998899723658185672406226719785405085617306085210774553838437351304367926235538071394948269945647201187559447425237327747069425155488834877902733243646149429868148724864324575576668372339998262442247597550335356442353531432244101267203279692641775085450538078870101320060079952720310532094644431091308572393296906402735313871746620332889514061273476022064306321721278874684161857338262190509740100451908400729793914752150396878676042481311519926632940336602607181343991428561097498193795906727622335306104158345929175965434784235967845754327642579366339851007378186708247141972249711685510450557731282318515721723464847623937365820229561712907691851347759972387109522562691198290386823611593066614947948540352216718497685867784614373011980824912181345871366840154801146386277063965828420557751092476582092560849710262487846021236535442573832873215436758076453426772451142403270670476933443027877362582211380111777632391938887084765392702701201606295846647631626685370761765948815155627493060422601344658237859130490396277867108521975244299739120342370281921417839023582166393062424189880099295782596024860701353713877018033068504301491900285973360116447723035879162811478213038650778554179729150574879876237063333200122969295329459348044623201616539873033986781144852175488101769593767648251981425411715620543018734577926641000549315918572983432372866523486498752608233409531218537128514743514037612432341490738711530290186577451299663534487944414833121388540286473511492387656172760574203876412609399017406519620083600787841091369215107665414187939797175559777637709023855836341770965730026060648098459181563321040038547198540836110252435160953193874984477619626158365604507642793454298684482326946835270708541907843701905105960431425892359609703737026209825177736566178491678497816706461706804340476830121614882419832957316749945237004263016256405133201586186629229495309626251494145837234814052669279742781498349205847707970266648121417842362412872502446725399306424443258837340836347952404890190953255210124676766697994092574633670874848314592566861000589841771282594016417341023069805353858806419732578936977324712922255238148092989966425988698790376104231095023092517178448650628950526672278438303076468291119733197608059236297273637779089589407025930212206956417581324229949412269006162749633248502745973507109330034407313722605264085335837072109067129512638418891673618452168167412613755778429714159167976348987390271352539840098841381198677116146779381755416744528146867962207889183083687572016776399108818598153342852302162272030338705694945937119131135028836034549766505526365607312343063066066193915821696203235719846972581310554240951666950041701963841117417947976898522073840065490741062426428821052318790070428860312474101732059213975702779735496734435036920072486238586157901197755581998074985418047121202247010309808947448874864796914201030189105459310262147500295603140110433783579992979530073100075994654950921860291152501900135497087737560514911732597791268742816911343643467095360806945915412612211439113416569046306311197003925011795493116557901300515119951899423298339994432616674005866499003307519129693504293904927110067906441985588498955431673302097196904976992679692837707554232537569871171675859120970956167923801607709020678287566423912663618094753981617036997404892524041392295954082908735037174374493193561120062540467901556235991923589852731763648629336348492672935672699572681446160598010657265109722128498400214995710657039278442545705339447745567498913572974215622325681505995046781905697192603207367493698331881199679023811718553767740320416022826148945175847734909475012221183300474898078082224635979402064080024490584816967923934340226918747805923127576905555472346343153045596694448210934424678234677670933182605052144133795749803538364624221677673324728362978933355916677435074274054989561826515484747511975399070047277774272370263748576696106195741723908643865754197058535519700120144018076318700966691849083055317661382180020061330188334400236852091898822996355605519007813261893754228115999745737873284490334895026393428791028029251756768679990857985055136745724417930120471335212040018352166937271019004550615872022312579607083648017934704696768722031866912530295749871208179067257449448908933214128438591724438770900478139544040941247758556743991599005021217629032197414211603736046992098369389028742752696458691913358097375399108683437910047489455784952173768667366734095486104715021819097321653459812390292697472725798561994169235141291291315214442509518344011251203034748602202709410301045565523188557604787013261461402917610362580456438770840452172294153977460582715613693577939187800207893912702099284999172092076690353051718680235157188421848646153134259295321474702307760750889325367707934062793270645169100723124856913249859313171798760953728013959945416232845725205099877611055757281184077057162058860536490982981570839466730258051833923686176435300726655055881754783230401869930725011118133483658628356883257208127626540874003355243251534248538299769551630295802042787014620992991444075188888926886869464154883108452757540325831391022536775653351490755102097202056975602091453833385237337641724548473275506220456492162248935298877049282466073578670815921823568829098730463101832232626782622452011541940554779384349717950033799227459098833994748553448288780957321178956177837380134599862845268291093649870842468847823352487265781852990482871197288411152927705091943709545361161921009272026204034984108758858574681036315179584206332344161310165479102197878791720688497607467258054709656103520881018969958326475085244507290887098703011515791365405805652401509570695329702376258578655793470154786263446488383629790812213656776939378576308301412551729531456283566942017030879868323352272864175291219840373051583367532436049137439221757774706566742707464560755396842168654432362150469863771260411871968403656237090213014594587620353997142450990093127518631858868250774441190152147694241835560477854336506174782729957015346729675993364766635300048008905950446421306590254344718113681604519182687797622481468335376671672032864414554138065436665031814881824760778562242485088278635449228332887319113842705928903865026814604591659759431270270113186605616098466627925412651639396825820800077648788047046375545463150781867323506683395516193422850067150244175097613547326966785603902834911485109937818836372501474508379527583104835557083866996620144055673243978765170709809402279276167567087495387954433308266041019384848406434561495773596568381801052196435235248828173123008709379660273761678313706323763236453536265529364307760433866456241919169442590144100742837234023155035030068924778844115972034849710678291644729751368516183047430861955502321706955620504534522156271788647982825265395584575732001049249046781010332515662559504380965764928998788799584036981665910542640232062345019295748477894069621173143504797830621879344502416215590101198914791857974121657330072836936948415667643783190847161329646725293465525251825314442501620371771673975918004511820701486100473155389566742929670062862683283860605742549026299458092703670680338414654689307830391528844680866369008110512862020171767138534223320309514789466143215134472680131183626031626884586880362785430074115129812228192417626270284072357894864676839380248336676822389901764184850194034114232438044470611402168055857133450413423375228344886233219106336188775108193543160787609803824842997364965631441667591161506413188612444471643209939831676571358498605613278691796313219276300872464558832003394718038586040055987793087753401161821310586154739808696701667230332840637463275547708505530061334430699801984725076611519988796265950663021311187238069005254181932453399098633704333057883276778567412788308161662324567200452786302328191979451156594085601747813260931551808501969178728918712643657546912737727056193215775852600080285675409357306439659028909340629541973640432970134292529718201257147364496412156786624829961199219781589164562934838089948159123413966212386561707776921001226824354381509464531474735818575638585954576521938765805424371319249871074612033643195597162901589486840027063606043285819055000311354381826820329756243929336403435282821203836644129259493814712639943911901812798782088699929384002773815358227821938205695289505075591542007109768931578626534083623529997629122620938920356604746637414787646728488687029027455041096875529492584573593245485345855998117516118105843603057910531264709838377613890856595232838157950167599771325520770070872591467306995973835740805085926676807244210355573149546208163431838941761227293330126386988912153818018035840527945068294156245360614017821962724871072242650309011472103253104846304383919310911423898861215471474332987854421795447252327381510564359008445662765784703324821460027221335085600952689290937359244481479091450663625468840675779866834621370642014306095813064662810752159536573603326284878746454568630728736801101785369149085042893649842625294190072037462844857715278503432706142578824826147172327347899051045670937541139034245130427508943968658852597858864620053341038880295775796256379329897709959927822854702608399165217670085951794502390644845606415360268989039891498230698122472529568606468619985437769383757284829141565399569119035957665694832608791596799429047544246424554554043423379388657335559002664096974186890228258510357909905868281024268218584047187653521801935274898990489886912971191289429622582191319541180317256372220314587510096702594141369668942103258106872618757147343576756592785945565311244412013877017900807177406005522600717595426673863613649650151169098890189467947987608296980204688576392543134458665147066104920106081277638478978009607281563711853155183652494505324391144941186720240759347875107660430498259400728497967006826677273082125603409062065328911045408077537747294509019070913819406837419956667398911137064166649976317510884716331347951939167533882113713363938454451448589217461718722318455212159950356439272015995200038268261576279267375749258865431793149257804157691625463780187147073693657763254929518068128676242296864207563187898226273387486412444011901521431247847694064333742949380853986119763772011716448929740452925379505956481760245938142297448807343767799859553790052555358555823199562611713722124326008206713382990450736925602429632984751576668708963560248101324846764275859028306936490315052164824082147930202716230768146843384755295417875956068085980882782045826457967894017987338290670454072266766353457934163819156617606796157150732679883488106589094132643233114986836517455638485732087065729817179920378470569931719583242464005426427496183273324890173598886111105575500156291925815067689629737958191214366747631076778866878874363807231356280899372448343983361794303851863755144589306636795356123247840017232690080246428899381462877795911118372071367548180281606341217577024444885806012204689108421738255011687899690691422020830438668200954667628581972147412580798261456831926973525988699358146848006689844715252801431546141752237824626424317907477241007429831425140587985786685385201855192599556607562129319147103549657209355128900923748590832177275406960684765957104804890704965850578684325052382267181779625393259842249675890463743877752393861299620118682756302692003528089799485437753426663071898499577826789419279831185717759381189179355165772236659148149327112891159001529331043471853756198329009672765812645246058334562820125590638327949012243156027406455659276366793270660296223783141989700892594633895016043344396770602872062432419747139272172108121269826359886830200095738009038429447054672397642971432091209876421407888801541288546363489315559367961940703290618316079896432192596312011751085169000541922096799632555188394451631420694436776461285871736429991986840393312374588877277536981923435803959617440289780793470422592886454950157500162229295833152652473432254236281070255206290945199997772479940374077298193540620194277823421242353061303229545267136551822212627552849551594138776623625768830216178574935502004754353256346324089465140996016360176624334441541269093142832764488466992574873382685952314631358847578543478626197308275728701594741606881603899387683723192629540646119585695598234401301924321978514544489461129427285867234933640094129977032779930797473810583073635032945926510289587834060946204415643649601158268630664030491935607627944315884576363117751110746337931165249525817197890212721929192586750038290038738768034093506277309985270082555152127673449498764075514542285871138707831192595992002701833458912758813730104728671003780963507577773398055610736521952466496959833934496778819810401676935043190340649269644134329518558100432154721658218970512683402204602339749800303598246230568925147028958177626017715750656658711760430696491025142245484318197710489207471902946879596218755800771628849857483004051008793294506284626510987970846842331130836510647457256971839793339655986865422305070999522211719686630358280129401453474990046803681532659809611321145728302472367222294618137661783223180774736516679572692508534809066943389264771834185257661226215378770525030592488032275038096512395705916226607209691725081192971344709208707948902068434524503195602559923539907123929907868764859610718198347767413475436872041906164968376255767002385987223893605448751359687764285259087377340063614743985194942452868502318769222816028786577722289652523173651905275865799071792230202477473858095594498276655427077517968051732700065762096531590103356047440500166122260778217281357678016715119986144596943940535777962933754052345941246494247661165956721591530229155305656960722792809745444035640558477785827034752844992763871798274724340782101811225195848488360317591107737435948119172638407755261515901019090667976060130393307974110313294823753696408233274934056397514637685197685050414203230872534744585995118967832968100160881847705525406570603411538456561541512390797946214766487951814178794885956704156058491904870975499492542622931566631745791124916227406813344733784388668356733598547976384019889115990055963358179572163373046302208246517314180583721372115435670039433356445982105547864694607838333388811032941704018934005605684070871515343779972574728783207966708881612286616867385868150602376348610866321755948116287521987121771508113523481615443056501748418293587777483905767691576868170540146119406180609771691294239224093012397739794884574368067994596008611158927783893388584053527355431068035658949828107050331599766412739399819961935213357765973353859979165929222683617163155697904229715037299794353532514534764683078918992000544478972792972496320442485284738044853614961013669346514603840426302045997455294774512730407419336185995570548775594916214786819608699083044604565789335586091458463678276544314571722349872485860273699403452035463915059866942874079959865853341085538520576385239539752798799337034350453768156659192948147806301094469352028481292714962426901102321806523242605130176851816692038625975199961320630579529162612864463483236131398515874147658832244262001951021327793227610824081586745369205446885801812993272043509772066144841907177090927680747808783803895831459279735265492695916265169600523531354475490330459455815290027657516539489341986182682768970268481949825465556469852780544956485407510388338449612781900814293080520943173119278449293628507018119220437506632256538998653697072626825364466150535114291398543554950048089992522507177602782751924489328953570156580064156035935994216980539873185017608903546727763626268318807904002116067587401594992381697704085498099263412882281202214137347926447389547721511185767233669608899446732166909435599163743736065756334612454482820285450836823775182465685750546846211393408849708583704857299831578763071525418441368420641890263129026737812906590304057664725946967098789868210948579710055284343811492478390813545426205271815887914802550857231870404986764253567431728931063658866276811628081972686039729414403425248609211092199491095846131636734708257474335054980343511389546674675116471114801981646448084219721547929327656815520910801728743996693476882367517892265426462936938437857353574617330945615383292356541151095261705777932501392808677782180508051408022674102801701469411173273962331915403066172194748692007811422246621339394362338262433581474047158602589493396615991405547672111134312929444294471781604173041588184643303743413539262401282640525524612704685958607338016272337605941804295924685085732320191124544546098766273533327620095212465955952674329595478315532832076076471676430778665921432452837697277054413158164572479009301079871729168893182008185381541555595768630047020766631047793069128560895837539341332985343565796761732409948768460347289722069843041541463077572154690880051106739100599455580537964777617005223862042121570896301338828666879438670363502886915539396304512125934160255648528874551730348395386050119377265242855482205907257932652348940209487474585751764822078052868469302937758486949242458168761696514476551446901129445637369747030345351438533151378606254937654241116457211652527642071636124029961270304720918213558581861586483241594676691893919567401924698565685302998270410016633146380175775554877437201025772644278813605093877809883327638364087093616803468408215821115023727605296383996443144602491589955891475855833832818453078899381865849273617684508263304875479504819801728026038000626685320419229968857819677441523188393503292297814844846371974703723644095375634031092769076504869379626261667442241085451073788473076024075628455481638201729300313639233018437311610099780488958710840670719111469632314699659480200210643787959941694222087445736622379555086307214214332655679827781017617494209174540170201885556193188868874000562714362060334538434181054486602717831167659520104284714356624306363159828462828380206608134933023265790417729062783969058705040284729460322884824623130224758651727163036167516156329346260150010091310430443194470461035348770334530187415455782642423984033624309990817767042809340310453213569867533516148006283842887959019956540310591697766928305861829252031331277238789130960424577078220841842095082403143264815489928980944293234107299927592479748497893480600793266089174087052598098216295865142036354642048515012437109207797049087785766649193763701160323625189825681709392983087717545669488783860976632713231633189304492632254434025803338799529680935469126731297550936876943746557648888983075988729934632689830212088839957984746544280842024232637157342243087463880687602146953225411823065484084175744453341294954620793624751358013522442588000281426781625121711869990659114646160598599287123724634481450128764862265381757399549482573270414540256066767135688214234867128717085717624543036101777719206916643787210216821124405843625806394808001051152798061881758707503625555959735279281060470071310528470547968215346256940624347757292623596325015384853173428858126937227631102355681341966977609525887323311751269004333354804031205291166625151210424314586793834078530227156905648700246833360580665876028855237039234409735169993931569369469985632355698776801515033625571897298104454720331265898635921733210886496540870828826108310929274541383422852444429793905647561764406827708955218752234159324278031654051740913847152352101413030713822632295746025079823482715902847151594177485074040500030768904962356597237207717599737761696227476938127253278580351740803768370527218409558957654962857033453875135531754369584884193257656169127353131327054246269691893303043678561878434364202098519168149213841856010956514493875269338969685956720809014355840564851428954372085140054432476124719181427842420907151891357577978160909675527929140088543423172180808342652175813987998235676556797703645877157366816156416463555546862247891227236796711526116182385813589757879988685760556489546412789590539595955807168896123524976494580693313769265188696115171589077736702736473704168412155235735111314540584636074188893200806799859715110149745386061644557972800340122410651679309234724347437767884197373277028546951627414983553006430100069061025108410482158507808099932976457523427955733840196051837097526282832331598545389978361646788130563382636489499887898408307746268878490007150560194072389042769969665204719680411920475003762153075867924896583988367376324315597520041182653232790902298705571605043283595825739815800065748504433477322085296826582974733125403729716672775352176975317364425425807162133569739232692850202988596633178039249347697987675749475291469790868275041305263181625310107180188986069069737701821320080192731915494057296862311196286718683848620606437917638075911786159371757937779327664043391803513174001755925241929450241694637140502459526747927173206661433416315334706462860015017270034444473281057485099360286641002016673057335143048767629197053663349700855073944427840168912619049398150041292145039053649252961834758758705444581703195795008106193988921953843538660596643285153124797248135755405433058585154761710654658795744418943180308410675383488156227451029098776853879820531837700440669323267465041576789878331305378496247549448757762414546348551170809877419901234917719307729640647968879621333486867728178337038160531362914430636241367774408686012664712653320382857795923419907620769693770077691852037911938186912732322587318537990127195216685735946017403631224305242356005938670941500344337851857919746078566134058510299631736360297286304883990236098418250631432440061983029785951818951863675515956587925307139291826987514825518809906298270264605735364629730821709922807369092567021906657008350302820081210002688081468354751187773152042229971240889330260776381657632044823401425605648196343218328739814491385231421608698158014860908982635820702515305524637547730030085603898644848908895032795464614744447754862057264045193661961177520770347773612547611088908814682053928847849920988560093102610036850121678040277650728007628275340121790375289504276909746578555179570972170336958036644397000812077703346786288372386374321488767830372780298532210760418041564056301430814229272892074288035379395111094307765585141211749275925929812645178944727460268497436003959138380328140858983552513468035666488806438689895306222981108707520138909880771827411229329872072925306690345747188922340110315604749558246253999704076269683412067746958100477289408499732238945704899727271518805174087840721831648455265801530007719009634585730281539139937789150104615467936514997597069299375707186119853166345968053678295672322654685460159492349443465062267596372049217160292784997558573243363939618587240241805210836996863178147652754730412867703629908775564659643810344535718097862476303842874534167797225463967401783544178548286038799701072740236383559023069286337470616017428267675601894109480733826299190069623543839014656593341336850349335185534782858277008170320423170788329296477105555840184518609832171700027513746475510489281388551325381010345856267447757410446889147889838269442892735786764482013868267485485549009154461107984340803317267229617006692910394260472913991907548358777378390304078545032000927226748699678098406306841087958061047188448810493266889121107622686079171395776731253468806148469685508359653335776196737994409342571502742822708640294651382154051964903969766494220045537011517910307261914579923846730132854196202118138198641485154299863933523774976253302196031144635468207705549680080610275662948560772851065790324602410705168440895418438384938273273632372522470020315270458495268045456285758863893634964397633328131763314969874849509909067778397812648899890852865615201779465175235638448226485074358793013468049904660449523359687932859782428999484475278680032903302117083696362532797395712943953316004863291045466347390690617589026912192445289756201501462816143614158927122948929958024270782958444937472212584521162423035117550962733944449648517002479739476341939020854940694638700882154534210073124355643597129522500060816943513367322682174098102040479228891310576467098952060997178096961377005716355147484025308508731169598393295429331913490480446919490564992064973506997300093226924727182424211924180149257407016185140380014259561467631714464269223886260469722599071037491166848669934230034280264599750888173914461423183180324370486501205016653674179871811591381020525785005760150970226995363495315160595294031978923868825553569874907990300354016240490007257788002207255016821683968363093095230593387171856991693481826484663878370059212843163763476219471027105587708349848025491562188129994446813406043551309206819650118870093850406067627730408266937926124195955462664216240086019829312980778681305062745546182451632673646841510376792440044283071085953669837180415366750177383327303272639915526927050152134894942755236694956467806741203146911611303654272380430457992293819598505866918339735286935749263789522554142549581564584727316074038516872467732210122407632871966642276407514070341606503789095342304464433716890815069424342945675281273196843451544314897332240472976925386124208768530643741140322142655701401666674546025076455163127116656271312712666399085677271486039881505723349503060265343673181749804060387489269292392922129411904013953187967116276868408598994934510063508577109292280746505942478621351003479623645803129751805814186902789325161046674485676918879269458055898857774757729202843282423933259057227470563695005428496467715223378939384126114846849981408108514363809293952579876640526775239046538749602539138676397747782029927632207594031166691751141254496313338201820871268242791516072613386397642631307865146367256809984692769983294968123881028014052397506928084422722222669230848164677258669667677753450384314379053599309448879650389203916771385101608840512532114844955344148180682338434668030691159926282799257910222708495194614019861655243459358472921920299066940642170371408487679008508524632840542678592433336023535824708589805447264764083073829747415561993106424920256925780386270865154519039469803641950341923544152531050706071647491711607081725564211090319498780165279275698833215898322587529659521942704371321138483813586024008297514548681444549319618019784221697885043782061823609419110608051321857541478634560874488432887680136180762361628157367252406883009476115403541816187674753322555167240925635570892408059477142737995733792364706752024505161990338562913131847459017691804506372307335951304394184013069088627994539712034108904224430546296272012108788422779453131966342184686124697181988121678114642179957508171702401579568229346841004016847524653084556487525412352415074368620312599654631878110422688028803069243425120748199231317534065391032871165096334057159693604768540503988428631257585348682433845684947338457510482012861987654467910563238366137986126689390585551788150989249239890682854334108117431755229512635783283815160764065020274880606156823703738135894432449902943366260284217913560963452945584194428251169509381302254685013563694622015717731269002211052235949394432845603853858866362686490039157441960410747231601668150897052616483282713110075772463237345060068843198417853553164605606622283624120966424938986552450167373331368479347452677502219847466634019706395707757417217392896430855199236203977563761482224945529884360112517176429794771127095395008839934030776268825775100900502821534044858000832687960004540966063379597354968130186846370439904796579524285406361281730734900487946295218152376551560971195860529670996349230515298000705571355747687996358280091317818528069310511554316376680300654070598438114796170759608807393234022230732213635530168622808251140659178433280069892810430124696355214253170934675194204168894220548873236188322728288673207373543539372429208255452986432678169635784565531556638408623841035961184388172136474897012855406051468975975806217182953822938918558790770320198735017554892280853209531589806979465039014082164678073240805637437380805725827114175691814263834406482578392134009558754877362411017324357986849138627346559704404703288533786293603953955707612230436118481467429398903877037487609762703849577450346466589767361406602559324889921254503524882577987607990311740042805430507509227184639591200794822240208150734554495557949271843112418418945509777009729568292146154331035511405483548599934890521974404167952471893875117668146832444707073245510866300500133249614175461714490404279652245369278135826291199480561212687107514250351380314314888952409620229621618875442534659546954637128942052526708045867052659169858317216554336844745806421025002887683503393049227874723493313209869901339266040177301916963790077755975115053832478599771205032943110113095269308510002513253997815553290724981362327021568904595541994103638564035175666033694782631718465812776211989179991986164054181427970029443937367301115850587380865927658963468860877651270716552061648350692375517403426174931858352080604696715785709416953813372190308760183781324159199220472702240804005495661064362027393766702088691185348884660665266606263583723525238040394253019347871961816456297935618643364215073668297376353411294605802581595725635994237474658962710694046517520754530247671511862950772723091344850232359418565843197372785313113659399841367644511330627030663258216854774263139449443589662621968490913300438374741855592742528577323454838984182482077728275725875744979524079718421996503775875746778332685780048529701846408876040804468452523288333227481842839856311686238233185390904209762185361056278446236803568265766650476252090542692435510745242778575053781576695919034895617283810903590050086802034190921041468428689531270616120001897299794985343717670297593125103270555550063809496371712831416182669724288785224976151534890970675799461713109085657240672677839632822583754241815480519745039731549113597310363021033225900062856670157899738536360617080552491431192708602003978298291018831482492150664887682142363400789911476901022064209872985098953982609867420463449773646553898445695534875249400369345787531891708876852109115919874522224477515151325255455331819079481486030784778362479772688004787788222952554508293523319204524412635835000412986987497747024768692082963322736965788448135161308879932449146046415678306504300352920476417220235280443409048502567048009605167721482752382969824795520225668961430515583258385950834199854756777434798708638259011919159988980956029314945709992522555190117629935894039244794109390993456254831441059230799352210696694839769956560847153187448114134014563218073085502728955728795998588693453198489764925446267091798213747979957190393557458188371570230363690360664096363828987267620567538265597736308908343258341958424614614742040459247863180221378491623454651719562791057680006476480314589635239260711536713163237644970259186749276544066115288236365516034966218535459924118818471165469767289334729224240002199907097147082255710813426494689339061555319993911936177723972488042614431635098482505634855932308535808169604488429453480734281968312599755121158107326210234669329561975875144339425142491885554565365318147607638658166944657861429602415816713765001598666992616688791227827643765727910192260324568840777976170192590872633219863712955311723232703052895143386436036929211618265859293075208949808553830599098794841281962987575071554662507233012382252059447805213863227397561280803310865227991743952874682070862164337840667262206524807330850768908126665596699370720090746791644803676423106670509608876871614798541172987996968418630976902199021626233146750135653365038383452936751423045653555874130827960060000073087616690806839869930275637342572970724794145919273257982194226479056765037281852486875804422997533805821577279777389356089506035379856213548129289814252447746431351099191101921681490490351822210279141201157015671629323755537831601945845984258031484351996762262113700756203321714496349314080423463987787138178865858848400320097084006891260337946924620404210858952095029293489393540820353816282741627797897642712392705246109797591445625794546304733718663435258432025409914035196398328733762584155943826032953516689794706192817233403041739170213773100311177469519938576540391938749338639210237783782936700244358856653411587251473454508661006633058267776830474641675024202345831790587036800027034859194735865575375654992434077493010379224611138717422738494098611755688657356952342132339609627778068417706198312367101697074634077280957952401891585962787829770577454049035798119111189473040047688892861379262320812102011527373634198060724703185990797436659569768408852332648910435381278703619370709202320680886191440322224091423755711861994522795871554143046895249652421004908365199144453791390020453698653607086737822342597656877837400577877878909893063520357744628385124846711081887881012748887426117839414230102195822257675028156216133072174299342103722256685256118138474442026900323382793188620076185085108816096194226362298430100159326450700833844385965232056664330298307511250606773951419668756606697666086611425344372002249640900301435590372894272256178330362745505878170577817121550108839805036650855518025931742152141445254293221298985730365063251860428876097151355157483927864111997811237924748619014822892999890834010105969912918523831778303149556995437554431902022085516157800538203167338839324709702838729677265908352537714656407668313305385130740571890788754375372557056436468942926627587779308248847425832753498229787986753217101950397893937779527796928386675921538960368982358352148304357857615868935614261748945184923094447707153988093458114161220463621807033764948521238863978477620601016241845000280028893814810849741938030775123865468901459349690163959289467741224307000523274785089822154385385316986926406621109479403998903030084514363922316139161436535790620644251653125020457793566335158525271700338931984288276006456220073913338217903699197385026407597104502017607729709481510194530282175107686995578024927168112744669927091957613699559993625000075520986221948516204527604944588954821608298283020588838138826549782855630023989365151522857414700513154897582170935572136693228401800594180379212759811575953130386737026741214754860218226762484452907673185038036861271303357363281787081527189597670016039189406222845046543899053269801732115413445242358447440200019489339210434685258500582971720559020081007420777622095468625886298577676377043885424197223480753294163349454809246289157080498673937122909833184935968018107166824042238107645738528915373402379915643609770343348885124690518338328953694568065041684004168491298137653990982820699560535368370829764804884682187363169663179953559081575893710797966739483953628500012748734417583020326476326554355026301218690624993122054045080989980209486471041597434577161618066542736769851205802156594793268528204688299895845105538516237570093772821009291126674883844369418218278615268625842048546590220444865410945335720428953211388540454812638855431082286631153014801572484365645171916096819176631036388459370970413802621752821634338110292067436561471954074454028313639284705713944235994307052022031287569005144579820963818204563614855370471078188746133334587382442732094361892417991497499542283127924991704680510806153149987200636600943347772736446224497299998414126353621498246760718085053744724403695882462781962486677060586462354320628108320096616749664187265873090671740447359202686842057076761379568844035139472237662193353395082478089570459616378898200727058959413069118942761574617739131324555466643585847471400353568746307857817020655642922359729837677187491768386294599285941142429225392458132075828793346417882956576008831241080869411895504590306540853522399830634913316206580959555514346527886293695880302342704214511895421741102983088668790864474245396714753435365592377782422801943347658967990010549242867244617907027013871675119878491341132800763920366483419538232728094508737528086185406979863708822344278516841066858543913844400433531654136784186181066609241249959215143362371274791620537635370012155396050763023695255588798805436109696138171135816787436845738639105462320985913818923592471861200108378673325382234132597263209972719775706581913113181133655411280520609205753280834268747654206452562351078151050138455332170819518783484217004175029753114673782354622230398662209124235000079018375889828161720608644478148943565675851396898794192203559955623091539481438360362219145786168900077275543723899900462452917964045992647954457278379426262289635304521403236482261527439432389570533245076355551787519873892997854835139309534614754553893836861707112430353434222795989831400250046593267413386680527322604797869650700172767644618297428547424034842091351550918268439037519027582179000578435211386866901385391346628158921144425134127925797545292056610737890804073268637138982383861219127524034137546516296949275226944030275819254330748012988632405075440958075594683851756106014930594884700460311631299301742774616082116528662156305630138211889326876049690317233909351365378118444253611082488245172456440223170022593286929820941510408360395382867302655651127680473876864702510274986530490398884394781334314568553028906055049988332897209551215666721621218707482131680808641287920394849832645847010063599807716006331323086515147206244821396921417587435648566482096116982421742987021619386080265496948598575219586117698042514720787404168106210150236667375056491276741592054530391321448055872107785120966283075897315170526459026463514771311532367039235425149944845270037525850160309526879282144263475437336973183915809289159864193929483834012006096277165927384343512197533356386464513036739051777189084129598704497139359632842407493016675108635696314197355154438859696601104968193810415112041661385024402976469764918020954783739694555687690337204054832543073267667832661428719276608502709406823876915602839045025722321834921816321240768835817975291352882760814856933223085674507085790556173068947450168908159474226556674045306539336913473251874853999425137299859956767563934884753494166450081719059345269502817988157297459776494106309902937559835313946311629939450274908384334338763504404671850931814938051647475811818856342545132291368016704483343317660625295338022797924040971400029584537707158615045465660565666014858377009989355915858558107014235503567056097248939282792893750306123608963293652459191342488195823269317973779279099493835240273359201191095770034669245018231756121858591572899143242086785060453647161655432366111048213776798456663573814331428177578399103280272026992750435722657600671141882009176014429618486446731035260518935571989066425563425703231350578902522212689876698734854135237037753617250296891094932780385775260376807023755254386647884192298784303123993330714712503513912426434794280475473311236637753136792166466157399966649911871759823673712718737332842661080988959769938041600470060753934894027046549561501932586535971208309482334380815176593944973008022041036751666158697521181938300524524179042369207832296652544954471217825495750872830581672040499949469660415353690927634139177383913255557040480115951767098451561816251560016841813698405308517785047117179649091781707760181124295990274871259737622592529998100752250434696171243613109483266720973873732349693788192183233820800892284809095703705951412701606609075463074287899447087113827143312295259512321303882731419888915149627160685303445796220468162197140110166375544594092728748610726579403774470466092377278743448342831512556572985700803028822974874250564601354419293489657507950050784198153176439003630301505044704312028404712110543273213070992537234331494082242625282668208210089995243263120617192844391993683900701567916850381160685339496976944963315734211396505319848398640254905015227598343106905836895241464027909635048661669649732436460962491591243345084510879374126115322373905932819222765625873265143099448977107586083941185553158668310652508727035217320622326276499422372634024930472124183538227394029598833741126351111982347212377479836249836417723807263181639359620323795022437769739649951422443432435469265310615834681614685174843791959148828405840310348065859517216431875884806018118120745868875385320429341424296747975748621762707895731247560212038480243190248248453754183636512911161492236690051603965122853674596316849823475831745930388828761681479043085514356889264517651497362428417977461469962290552182518669853345980187909043694332487709000214717034247485362876546961601583940439100218075419563412392573737833726117952603670264918765711952272716617276879062559063273485698774453059255382720672141583776554088011575605916845122454994418660672024415405729183454657288434619183900637296160715574887942645189829694431221859987407341222320720625537844135667732091996616344113096724505189747789194781705890659832959434515919052298771296232967509244182015984765167928011848517275477008664862711910555256905986647440498603938876234560089522172528190703243024224177229363764938834758072420391268387123837489502164964927963063559311709233845800860300971146708808263637716236213541912231310710639230468952687870249297042998712216063525902489568045826787218631342285512847157735980309129493963373321742609444679452925182034611726274817763987202650399954148459125005377106808078722955584110401361312131455548949176267624100990862127949384752964641432153323914805800711937320841970354156574126568761659556874075596828489726714904009535775318121613128342007493595214776145790622761810727427494390074410859460323907496110237348627512437965669478822974356504122229073858439769029973416802917938898159472569107732039567184655907362943735956837266166288284448737419026429327848181884731788625518110058123042686523375802649356932889527577642911930688694650832812167782459960822537116960369216705676514720811370430461104889992240527360914469775753089034815317981266530845716808844932261747020414401139465674219789917181375968168801876103638918243784171661432464773146300573681262576277279567579565786545562135953230890492768351643005049598558527287595763911263623417159929437941028137252028265927164912185323911291652861935285467153617860981813145521790450656969158311891520013190688607278660817480819306535628789701212731385061583997060133572177976050229547885254782911202209878804166187640413311574528889025622023600527624602635162463611625974546139520370115275228208239236016557635345200574409670119070918196521584631716995098658613694940290748559437310450725364625555754699954126892953398479006343932827815136512835762077268211801388203456480469114773774497856806659343413030862636428228892534334000334785267608912918376433350801302860970956991124981362474015092474725321341566569505460589343028161194963227745868914798303314935835302948832077086370058674080821338775388842664927753864475342113291765306917653854701228981266465569900264783169310920958519510294211939390640406370511162860648627462641401592281661464388632831871918221645806504358284108999353269773919382185454994702744567678291668429209016938122113271939849071368688580283510482621036701593965414485993494565503231083476495815957792514671105307528186714366384787805351367436264122660067476331276089879272496060952250832271757383753311173173225781620226143969961346719907012826597606829712236478585261880956029461531303853858866934973804767707236665307152924671441869452283615821143005715772521358543849744580442404622916310747843107728479586913654106233547401192449436163064841020259616107687085186617825418629927341552580052055448234574367497023223281030092123516894811836439535525683371308604358923729172989799909293071205072944967998788115622592110167947851652730376747433417038545774649268431936382279852397367069544863796230103303288141762187634888289076607140272251266318319155294033607676431925324554492027683747677742421471336979054534527139662150666596246758188560715473623047885098447073734456825061237667733100819242148081976502473106649888750279049678257497518524724942714412033873427376033062124625403312439455367586738868369777115115710199385180919868121688628550416715175069925786196903477549674798631753636203721023925921544999030475723879092785816593474948116302992007177169675634014692194470782470231521492695949035109173492562299058607866386916076920353010738084137307209115069744862514331283526309924145225446161294330106918288644137831987237775121033062885698730465447685934883043249407287209377260741770891876991703339646460405317699881617375219066870962251208020561099654497883019519640421490858235746943471303712236557724110975980397919520890330379908902415414126134671127600071537002680913723648157339321797371259013798453436098858844263793452645561140933070221642582983769344591857761073743456026610538457711070161972610821590243094240074671371168176256095532985776205792903852457645357436866624994343871998168422183808781292008851845002820892477486614395020971082354124415930251018520206244996607848452717630348783153838259189144852615972969596901223129917915772793539236289261104396071693593336489718471462252250868894705783305517151941220440530447770624526073614769349338815874121134829515806949062092296663702681920436430991937964804613940478639049438629218694355427997322698701245724396466310009404143559507653500718671075971666646864988953385904598416271016873824353841845329488623160988486513928711832702929893852226167732589755816380176245301311514507326361373011953286805127927292581337090389045024809989217498498527815011042000051611511016466624303212945149203457235070622953177068987432168521938344525809864284557221200627102118919141314526600814913830236399462606000330246436955551623992669017463565641775199515732884222708304594476652994300079797586322837513454743748145580574687602175570861103978741480146766528744889009765921592086391225412147134141355271267072200123965886830664619399168209685964836074125178974837629482005251644135311972019445990767395956001489426074252408138979850252664515936568840816986471371708544295731216873474020431194268404739758946836540214188674985783008473448131806830521270756441868737820411603092068414276530771406330577770462721870091968779902301630079391576286770547850614752182214886942173220843570552758458909595475955794545623591634683260106441690972348444427987681767820943072305654019407444523101883862610561828318705717818955252508881261870286014411880983179146763894341847038618893145604619481486854508477841719215675288071776054474444357298885776952623319193583356656787887649328224573019097017474512555413010777028417362240121896566060675981768853380027805413708979410121721289639167595450555842919285773441642305332641648333706312757220250852023122839421358216807183347451621061258565668126448535361457399223849648380865227787250259094673250527075979317852188142444094447325524770582119445768891621737307486938288409677414179296778992794757238958228494634966329667652496151151392980866314422003031287055059728003349221607998561950329766030700296943808927128861996640904540268639409224447032092936518955496859659333337883108258361552475350620831191202021542443461911178208253692122491889313260626456222363759429675186502804021504419850548013220458987442047852960655262737596846736437979202263827965126150861611271528406238412647679209613263480035355221724850858599244688332064287754659363560650122415470207353453322324117469569510894179656055032736520912627161649906734442627954347231964834047249723131212825006381303590557383895975674659552417364249849636880448928282863510942743877701125149443920444432027026547120583112983001366594228689422605669546633566803342092952150390478664857363420253801912714708488933001822279988596646496744024884987692255957901411773641544313750920909041061163751319574667550364444880827588092124291510915749850966301181343995424209425509594089266042677727535985384080094998491199273749566801597019313994182615977352961013924860329768888761810568973402724980217523832887631743283823588384514179444761897727603424175123143825762599250971952886391063864810507673312949128593927723439659397137726088094206119352293809646372679140779098461385511024646028184362350320806776661037768295055559088092571437763904346862234693268536319221939650490776338344959187735419049172412114113366944113791821647707471909326155265271587333524386312668826317376654938400640440032909391263031682016473307515297907427353171870305216620110282792681249163322656037687777260787520694368626202125071631771313010452462561317582969992899410464241098166573774434508664778760214938019820734991112377894798294163067934780182472550188364490853979930740110091956898316064176917894708498448471033341046327087199859164279539221802253061748865129474729046611127078009964276844418552635244640373480209298855491313545956690857089241689638445634278741437740334883227543546232882635539959280524068406719239945037426909484785771702335052461281477582654365464561259240775588440201511570676644821636501675375633260985237626159716259247683583188765846080080379562709698747557189636591637315520304139156542227177521876999363665605837854805480298029148592592000732060879937451947148463868800986004616399486825563967530560335286966777346107184471868529757220317520748981611683139375149705811201877515